2713379572224737521143347586103628298049139657969301396693204791650520802658265397215910088608091793083890908512613798534536666140222871877451165249355572658450742805297982433685127461533404014984138289696208013688841099616560304694717021693185620017248247950431712039416479314088922589598661793064039262818097483536331638065306779160889509033158908665492485966728119279805379764670479931040505599932786537809536951720113044507450466187633155994758993775409119857211841471337667191126581072444415122971234160118199542738572924024638604734530056314987300221994779434634457173939642739301641010335412890555446955483689907225054887709716326323685550296491261367417957475378199024844885779198775892735991515892030820702764149645128099672244307360871696783299367248232518715281530052728899798295685990839432738499742309916885378962776424601280337335068458972403196593857055387772041381225609358744508568278015365340281521976249266570772049095942921239701670045262669170253579549158903814093267571202148594929551241831391115537461023957366703781584023203097928003273889553341470390188576543347505961843622423319232553372106076676978076856855953752766106636835013937748982852455245228598331625756941032930713395847722776428586384769242417337305802435881354303724332353600057245026876365509511094557611420876318951596856207073861451489470930929792690929813122686615922004343681458171650492869835513225196358757999814245669802481897639016488528536886609429566899338644771663105954417285370961035500516336277213477757589492229762029351007866748230297741886548795152206166769617377786607151721697278247351556372418413166521809122640177863559616361850724701452799126283269605909872769247958521644850946523805105467426835204566976826901728922568277009706080491020085717002675822345759662981589202609935080305961816027226386409141094261033741549639455741887111254477307379352621719240275935895717921733375151306481177005084644099912805000526224552873216988001950312967232792041837578697940150862383141574104952977631432553572474764332352801208678892869120308768284881008312554030726152889893550788435580008921738349746980354798198529550237980161136898051131770914063596379697513770808917923328771022465522732464226693580103943005462069599743699031033552443048808851065807369748057312268806071536081380682378669433334178343882029677145145534508179567673365938837670163494848768489160782910893120302419024162335059307254780142672501645632732439740020843283030965308196531459939129921845292144306300380227139430703948773868210685715979078523353943493978570040426434957495314723421843110445872883133279184537230045834356722906601715625396676466661535675066451874111432996339902400141500841049478777000135058111398174289518586113506651029803442431409423476130898323309727416095986042673158332436689289449942325591157316303683352793131158145205796318050606110881454330992281555412445281918761875078996709776833581664522991749810283655723645952885285512104044480302309522239944385353783273184807973268969478250664565616644845396352909477339803167860547044422920281064918447735694238371245784253616872732353534481881249251844290862858482974766161324243039851499634693977224053111440614234298964886265625982252124951197864517625207612581458914391662022898413229575057603588440771946995699059295674475253154925965352232958740134612915357557161245365406528858876123786214420686345411380884542666468100339362008203448153671715600441656948878865465509043434948473112288643549572526299983750213633043520660855642738607329545737046166285294052248873045856912848212128229800370303797940282341150494183193940924311696376145225892428341070532438625863686870703071368839006607605920338081943961769241582498012223480784278570774139052501256519454756610306703476339956905488648164054359925468568777358177857230542927894294480569268564530594854544228995681905538394035750418157859011650229554093878157658659820999006994117511141123507445387206624804711325150461655443193094806006867977820262104439170273403086842205209809016202661641539352987572146840943128058851552243421801482557643823179516303943603124421988927231347689004047798360176519329271165244376222211363863448151704147637445855761347241636160438204944378431791031402081564337137763192816738456482712868120452283574355092375878011297378318255762040917981643771409474315815850911324640354620858345802345356096870760916247440452754847616934667419064330499066409215618507510735381056688818797163527566763756252837049503421119889296319078667159928874727729961955044612173858692395853132159512051085944164138452906681800441657313895763915960506207812451649887783782481086823594316228339767988796665556990224738018168425854253677102218105139371803111621043367804756695831402538035679400380300122758512869560641029300172062813064561689997778818003609352634531810758622763388636707455635247675145427129382406035454343200931885207546459647153603149928310500598909236706859104688658113370078498051987801589105477629455623413381059587552843014047872213787593954845136761461738220659292379533084926462682729155612322428366861672141112898887752184258986374674096920658520986462881267019739230464405001618275068925481302184240997896972697921406850129741610156728234894450718680536536353979867990244265023464937373009873904711007620338138136430023176324154736709142508288142271071523281895692170017645216963284018579178417429345333711810706243514162088177231612977352071127613187541190174434153671681943499864975804197275808987168308412506928019002503457432593561444801046678268895117135029519378102219450538099319915458989348657922009449928563510804135390095777863852531692421659587222755021383940944054089827747007945750529519265461869355576332860543047383953482297033337257626051469430466366362152795911750843644209896854299353294057268343732062901723117286597215836354944790990797853996518994352380281273922197602146805654778569929158979480144662031094056450782000977519464506709452462491914804660889183107801289118191031493411154246635580978279786441129149508025655917645761873929921500821285970821521391558694108032231049666980666219324503798030043388350316147739100571606631880211754660207360707163044576803134188435765140625572977684887456034185941041101284693179619930827959600146038697764923128558891866079341626203325040831960587444678808006616127030205628341380640581464402894151124684092492931327402246294926845650108362704804586703534300798501682982668520543938532938092519595353029943783973732953794399396458403787221678101719488766966424879295506245052957443232824851963166627912606946500478329374726877700239214024005693210444483261348681569286185744468413633346771922016298943391336626345760122735584142415709448275069936623760685589199008586638556723082134717451366720397431567485761048592984809613182654721715480807822759468269110158840055871037220151029992988341670311897178468086296281074064698318729655328723184544073698869349732145154499163216186009248751637387897835236149324594990048843568299943645612304073434743981783663574903550623700824278173449820013569325317978613363057915345641089570126358742838276473545763271764482479646398472672203731199974182663406527449368031018330634194529601925496874998419853148955146662271240659588336769214918735064580131759680464219743341450677255965267668525411886556277262366723903404418648441521183547258930234910059238613494627121919967554354226511214004757137981739275984691026984931083579248999184641429861841266890985147030848406609959911077651099923674581937889651838181930231906870116481779808385151020299388440696536388944770984639061013136126082447186248283736163239156162296286091574683114352455379201783010347775602859221530689010027696554011649021537813619822034187861736403669475754160017638724336282515886124528521054093340910064476827816168308388235313175419723550711222801341024140818892221506306548988541943287024583060043802109316842766077677710362326301256439197943163984858839897471782940989648020306083360403058080371677090068933269456171081573846240067624454829348081122985187338365793483227348921708234162386772668306176468036469312125072258886371371731268682713528849340771872799843530628855619650370805196813860333610111633637174776602715900191087021977130915989809808013858075425449555100491106278020985621073469799510562282481837799781263037228186016684646955523121898566736277496197336576864375840117913137464737656455946008179542019577046944142422542572072062520207451717987826731779167418094497441934625692578151680167070117484576882728516751722673524093977275632699535900801760476901325075868861638369687761171253496141441005146261549480348855268393112225006309354266603671102353047324830726274667260529620186184892751459269732272878577228481898083218661517943248993582639077519677745620071551071532601953655744933274608393238205008409102152016333832601958819004241309845941915724493316906728643084441267756944344946933890885613878876097944786549092336835730182564697034242828867431474846449848682388578780183570613981909445432654030964683700909253213555310859578209075056097565393446356560434981696038525564591656251797532654515290225329633659479357507483033380975909034274700715136082822256760142072088004573616646460567874543270268629392820435033555388855404621417967211674420252333465721604990533345741144135666866786186745674627137393663533141660202600364508583880499841112056616611313455850088060852030051865199722694053650099951980312664672891460377448007233346626490596928874379708239813342627620789524076419660106667004510464934522654181394645284633906407009719416481180149050161285336447587867960001138534090537692549709495904559212973173710528150377256724680616860942692176465044367465210163317934876000997433738298462103335806656736985458356665144910918882216050864818033619629126073063363219543590840681257361173977638820098461421830989824618720914402789128086538161652875335606882554332021293692130843323657383224381379589933601473566697345543214697972700877421260983604230186252280919569933804388783671703596796211278583712937938506534575418544598018169097762389329240334920644990047648815647905046300581061315362083662098557031220917915909833165595541710734031447242961893083867254092604888516879755959796087528389304291385508784627958570881221628546225537891053639354594229040852017998079634324540945693076165815654899975423935903910289959915884852789717543642554413499331360067567569088551955781002314684891333817531247438475175427213153380683535624371937655779824651675532191346460396231624169950339084564569059323726853520153619611705791678846382981547295918735796654270539670428898223501431451538322625303448876264258796518998534598178508307946010205421725766742004577352557772154258454950823734332972962665853966145110037217113820560489533701849341542503621808763988272112052742893077151090504287084644780752235084268432494838765577986496955713579473952020097697651690587698617710820578041125839883315097515722634292692196474144834104133486041789075440666265650794973715626972059987155804012250229116958441945679366643254375768114678157816269786330589729436455475235200012357523987746559016432368324733127201584674777116621506165006128680353078502519342044819967121907547739842314602197833310868616003533261216601101119144177587725625181042257182305165383189520593004285727982397982643071636682795439731736846330373166974977364610039138240015098061368671924728789079316206317280234886869682969001967949545094141696294653028328974344719730653208637543099280941089797345310120526212944350732875363634675242742483904214529864093474530214549707660448860776911662479593077804860133224737485922244750487121792799312681899695656507898149850594787200977088615017754803704735689138684979522468367378777720179556971300785153318852327501311999007201581623865534014354416018939277722176164719153274288540865451173319982782531868780459555932135325556121011685539720462515536582531530206918674082508464557842063264719492182010797923994406922811487706863111001588061974831004222246481401253476306509843487593155292350299594113909790600929271393161070064570420573836645315912673677344426916910343967307421314984727665366277556426444082263550874904843888723751986285373841195395583042877922046642916065224087251428983781400491461757819774191520949051057636634217147072540794198357057305326037663612584264968184777382630712506621773216085416213944333004206053616385221079956819864037865541158179597063108183341318737503447658018672581006963991392733905304405255650943807525038586378757442614619772425567861130722431377735660200448167617951274021121970667509461254440365839425901876798329575629315334703820326778336814354832169248015144436988961049152582478089024365739102661193302646201347030811338947411163963194365147016736033826101689670162611046896195271311348570393443709088522592578781375414233485333588919465300494060200384592689730348275605585981854899370395909478852092380835609566933860454262132419679858698388345434124600798567890213776495713493042848191759655852390015216197323344988434719848568790407103986055124571938188885579943348513602105248379980501960490480102697831363475813483727811250665160662471264309885966309338209432889830738744757110432561045895110652909843950827715771182466792351352611469796043472608801528882475062287805984326174525151800447533026906757466884517982030670240454328434765608579382994310793845491199735909740530428315674897744516505457477755769189703074828353104187314779090601322695111116182382030217116499734955431289563727583480073000820899930559488430636634975052121180817360724348625123836229255545199055691099002775430068685923273294371181046799980404379281116721351094410002554406083736207689896173367410197341685833740966519475097612974986113422497560906316579727861087932557123741754548679325194684828977696951121205332853324637900151624331124005653587539950821191356991044423017505695505234228334581598378457241931724774802324772243472975361408421998607891105901129329537361635971455846134792681334524704078550555648847079950213155473888105846473405949782490675896811321130682776461143943051666311646591681046880014005114431955403552913347888878804383210063746065277624392697985865163622992572559108084038522853279456118414171878095924374025400057274242754729374997792714360095885309179234901613035521926162449806590567437238040532915963135367649742543453655425547688374386696323552583890455777323922536793887117349047978169554790796270752207778250059373374047338858886881395560507502712651762258437708318821340001696437480096173318101458949822223029001284547619302324783551748953890675596088172336460536412066695975341616878384390359571670332384247474921050511168770821974030095343649377993417195212725418626881038540236720254270442253776058384228716999425876937260194947371864528595731623185830974937052163233020224125454855904603710813731720077973145032177425285781502701282846534333905814413827159086815786397049023641320963815148094814385682513588237254768854450617869055634805165410604120750655314879731828654906788439337372777452456645987856020464226205138900265349731620955868967299687593034267286231236660181990107307573938091574509633928981355906747076367301463870535432336223831512229431092049857232508467574656182682910273718801205204159205804211086188001493375326489042794313962751810590552174828997616495189478648044942115585796931470323637813760720601706384551463579955429872235675662783941248292565530820667545483563121815996722952742119676250193950147765987089047982040865768069651508122922728506749435043230634644941658631629112150915968744134039984904183693524368065969257238481448375638741187306293567510794732798696498628876048688063345742798117765055142552061593975284889755306880184188515419331334908746273316585263463430401102452404658779852845703618727430223371358631534145040936485339455528699955547247880583728397986929069549655299953878029480266889539001286343144494448603954489614907625951374936581856805871741180304513302420178251661203587132276785673759132390949900221996117186813252276911681707807077875998602564609376772983084027419914030605707273087355690732766262098700172946671407804824559832271690876616268870452697584047433601882185591665941413122199531952768745158021559128231192171579639879348088648444745820178418226625092360322444820082793284198102663106116934589888865589152753296550942852825089875795760496050062218598842475099960642754898140846280531456721846398451521378372589732685869350554218757028367769470930046296546132894336133394685739107532225980964254495071361228130547705031885571813908023918410949190978107370744120740598053189583268584049492750969369955408919236497960052052592907589067202549636735234851083584274335092396332985041024143854671117297399001037036641039158204282500239065988199617296491172564970541498026100369891261681008045941134333682870555342341347496135756885913912215110819435490474727462928735487669667376923840466025062730054459558387687323361780751541923755127629421211282344477584319029313083700131468886639298217224581880025595612563394400868927799365397077347725315385801937452836367017975597962273910852334087541873754287123833884734937253004766295646018230136850576612541579442968855792370064900956385627994435504659232617958296791865036206715939565542794350236706739721506011722671595575559829330349417436901699506509419642515828549664365958590138528918231903645756808886131003772075137982705828310824205294469027684783592829054599487318795399471173977466768041179129964281573593523973456741988251003778554824532370334110164255118033472362862613265585763158345550927785310934120043030403844422422926914001568557131782107175956415740525181628871440812313716742332981764071840587614415666751544870219507072974791332518288520477323382792996297319238881823095261565672021675780135016237092100000299565936799381194099496328537844963651045005574096362227326024955668413335351909447380703684267682066954406201515607500283151295551341881412433125163855894908830407719723941258420838148866715023813391017665676749079605640034050966098052853242911265149392242982819772522498427277161656797130750569180059719968265127224372888630178339885760272742766532096345422385989050429090563336981000342713277082149039875038056694258053729675988664018528921561199697931763661763215789326217822464005174869427656922246341192523950699593689975451083085012820434998064416009371654512485518559408327261782753346004209005526707398148977606299103335315943293125204322915350292587937919242707484547634603831520611869180523089758497603281859404441560339816562532620159041263647199593029692677401013009028564086906821039620197334274634269312694266266071195791605014130074271058762320013431243577863137578679008154657821163933397767241394337555478308033262724469250987018624319950101963933965846792614782280992815384541045619556028216620843260826420262232174124131592341988607771542269604366348142651346103021162430472127267458450658745989027252675397357119688453267759328368542170225944489675940513838973706756365704148935253444595803930881035230455223120687448491484229269285499254802420835303216871346056703544277904271354288291428422867092509410798397649904512231603558592066421006631496055159432961749555646733294915948729316366311556486781724510439419786388237722693726697185994556696118986564322189213030408489736944343516148004950751251165763487023867293188062995576049035105754385332131700138546460856979996674331722737629335329852992954413707678081153300271205271007004025740065673647854987186453794182783612213851481059979319270626108455953301115381535452078132229596864925894872880347370201708659764187755677451437766701261265534294740012650350910483121859162166837115303002477151329540212564105287936745534944077748551452576853371179148059054833025078675012548655866780242662235043744427338109886208548020733931669168978256967753616915379414202331865516554774626842020480258422714673618348473516764586237248799024312027169010116624057333997651084685062278467595433870576755430827190673400866014748805781999436483017427073378469749224258278723282782151873829744024832418022442996872010184137221655686023912069950903775992855698683446071950277846668465609767668604268968976939323974289118202573281794506631974530289305317495805198491786250789564654792448665522082709533022015837996134449086257646080068143363375715756287649867174187649564581890498851970087539238749745240880746703651111584407025770636029832606521867401776965243426928603585088657881170087484582608018646165205050269384759479330120670305369425088279410287956448364419233438161969688104676878078221999746797516340161891975135910962928884974845959759206522866462388835022849535822403196829546290544645291004897871169551998129845168537411112100935689787791116002301395610778041804932800473228213096959455754774134851353571946675070669047343992858656512394285542244868673527561819968883876233979859527171819684242476725368734549261348241247265268916405519059677366583273433549920205741656642332845666887683791223195395082936237511027360715536304938087884104892859382323201466397113236015182729807381134838236327184523495774077212468981252541449601765956157414622625374056714846273285397186346652792535592996283316438804668539662188376677832633275365340552215806531050955020787453683173316565896859961500613696508555136058129099077414378176371799229034474501248822198749410227490497662797813404412004104985948941622128748046824923118486481448900250753641091121061342057642952778826729248876019749691095423811611805506645045901730162026801869214179154016231246343611467284773641321939905831317677189688682829297536862560091271245146370544368201365732899755316257059480199042080467604666202532201557028830481726391958743210001343774731641585232737434749555219039408145703489045932137166002793017381242313254194439832464709554778253335392890901896908145393397598597337105045553309666490272652722702300827218649614261234855149057800474911622194524333274141232249536611659231737551299608900642057138135344876290106692364013446686872835478245356297083564327323316035426030147410952063237651235608770406986320455019284944145112666567167261096178077867962793189174355571002127602966732327426358037021929797427722049350982888710729159681595986695552973121572249217088997495889254412278179497124379056452988877082480273752242622513536696595815429549529411504544161963905782609914389180351040623366691432289184152524575977431096486225398597091085676145481455252519638632665823878646176501781087249015527598757217011367941248599498017205206643981992113452330761010154239807516634457768401897612349599559750600797106737171614821225189617961606461256650646972351963549053860552959488099723879858214389199078156763204964835972539071277818532064831055885542735106603976753493565271577526195643774604778486546422882853334685815634777675534857045542626059864092257036111841029156764760621073698728166840208236078648748369836550670122276850369717907286955454628966925970259311797046714617954688440307483042409920745400934871622456523478276099352232243843935403609858961862360162974900441475400593370196683934772744512951352217194028567997205979660027056639390360098205681873599817800777180533478052271420931661018819130781063922158509804170254028140216084850239256935004146673842908353656662135366234933018508838508683905249117357521292890474515177295978527727141014333380695959090936307544235277025811449963187184088770793094653134581124337970479152966693658674137650405290801615332622026916158897740838685200407931067677021322084187699062331459392079549392518321682942073052818502419207776942141089942854144228059202394170701171048165338421411174985188633324231976351476636386885322123902531433057864328528007279988577845934073965432070759208290992106065180524488191195575105347104768681365717345014534087922024823910592200083751430994807860797408192313317306005614812072656181752216207160751284365561160629984680252690849585189274458838919971787207773999139534269005236128489958509019546268369499598138093541110521985904058110422314858231631958925601362065095449652013738468363178125764606000444297544858763068827949230694718517953255226997082309012428828541852288115499297058830050115846051777450890762753427870882053626777945685133737756320688816964982728319609896906798583312879475570939865347052364617543095359613736802619500273597029066602040940666550220921248037726844865923698907951364129295812814456180101583608983144932920412248293470328100084268758174637626883725376810320584316099905001623635122965292055077819617853532477845829696764461705992789070865074466156808312327769964438990895614401149582943267756626030664970973764213390300946361334600606020676579321264664216608570157099112179971217385172004117048764036676520610219929438014839354423754006379837889588616888390915941952528271085170809533188607302061292223304700870544025621800921812954175568375250329457376165526438667931396782590025052373289123142565636032713267973078141543889135431676564790606927244777906650394180967344681150876864209358537319959289726618752163128151549310016481873272328330486524461358636864154653290514404270572395829730448364753826247868360369596591803463585936288960020946202631342352915821759181633642683802800240393052740193824345168865259526010979612696260735442944783648893502503956651491905009412104726110134828282672217420122256410961925573600684018507378254651454282649595339616220752360642454244361967477372322359048834942844124289927588077813655903990576393151210673960148941791785224176882601846958667699949402330190503994579679282442764653767608444963177861089704333555479020328743074433814386780157268014934616641776705895251421716775849126057496636831796903681202086623063930788841783312655593801978669856886506217718966980524207659445815454762030849509786748774512062920991578879519886141325963180764802959826841494263263212782516424569133695775175372712326657062314792052350822757513137600047826486005153685261084482373357454204871140423983659893415364690649627693154544581944402068725617430498394111082141402976951934375937972653051346002593578197220922245647282610017416606764978434947952155972383261523993709572649742680488115233078323570366755393020572790969961742110640235936159691561772286297632579824818536630911185247561285392781405145915428966194416035486956397977901964211553304580479972229922718100132711255672117885622593739498558495374796221258815781527982119275232916838639479042350222458761445206831416602060036325046533945408329368881187316306648348542211660114521470852629717205200882207274779664879731884183062249669995308423015521116986154734758537669109549272233872095568535154050085109714191008611717379255103536475057350409011485165655760051646075136978693420060141615092995242505646057860674468987065901630264667277624507055258996389152636142298050348166746427897201507451664877171935347871284990083356078511605880544659422003588933056814703534006036291937851662849666221873574716999934529282005721952807555824542295821482181726203834703717265833706738374314363889205966471480165297252236068972855055370345912469756225773416085438406967918699394981925880821217991400002929505147695392558762368414692912792836225105387470626406298658227081409527770611555059562890426592309807460952491255746621180693456512013027348031866064548010936227882884934735724885189320674158954156036673827763864551799888286389401895169893211751982548492586222304144927822868783095224223795275068546820335372929443690618815025379184844059781698794821222200993287030410486052848087431279304933787711395282896584425057652682151575538507243462662730184771830070938220470663437061418290860217145431765319199846127208094463202391601493385040076895958941676584268291266359358740786473772699412382372575103393968570761462073522698905079368470488694376347582972083118380153103666926900797069611809623638207442609092809785174737575635751756979802965233355626331216042940801239451557170247645338213113802276951028722904704591386203516743132264520750923632175187664272655995664925751514607012632164674074555032719090015819592221706700823094088870028705689089459351087772531357844124977370984823642920510020776269261442663498427563730165652307771344641727355930270672701567803614432609876369040086612645448847039197534008014754778943325901894701863774894159572445295865314806804091995895887541071914617223893716483763153205909564325895859821930838478459271979756301082412121761134921323469335668562885696170996668670347561852353656840025642733041168793543704096735595495944926602502187090638834135509450419020996727588023045306280310689527282454358341802479447644024439438765712040223055900316713030044597555050017662086565904515260392931245782193584503964853316838839159360486511821259350500274661806191597272584010209235940647478541420601134267845300926546822258796870196324553409714903449909735535131338428769859409589534846239342032827059415060103989250162510774965598866739360057700259901045953024217033172215971304224270360685644198730778251923622366926245831523937654639669378105093902924460692478947482023227411658490993653194694364397175281272611197476667868367980853137170139329798907488129222293039271787986952280664378095098001005785626880461436597837950854746646555104560013222285063246200934072564340323154240823377169357258230372218737811705997197849746131222826422178138697142611614226744509058714207509005068570894190118251362435011132043595850752204484557184830192952298795566583327791401347827279587701426919619149066163211952911440738380964947435819628521841937535288172961815367856038104142310110439655143310594440694731663192468482317398223207783761213425490772860304599877629551079824192290945223968434461116383762038517165956247542856367411558650754047971439186248203432900053442753419027217339045199974080121958380520206463734255075976132850504286500607854617864408927041343261516412479717321588445216776183264891580004800775772884219360054567757375564938553336727311521695055551035466463243573105526916935001737747822524716772077330508362812453342737333434568719458203342027260803720086899089191446399130727810125485916698302208622061873649078117061136952021954282363400715536396869711696554540051749749185964755933522485495532670029069516635202720148092537106700678319674198814347431035785448806162492840122799178491080412203795380188614702466811568808395592162894181528846620345306591624674604070928757503267563989715602900355454597593748523351877881019364734035876486179720283604125203599728245348829778538316993368525914117649573991873867517343379830930283885432332402939353776668205924166916450786949211818013794948040533296070934102010265569973602385947611102112687216693209525076999009529514601211478496473246850997783769238717738819332028813720686691932543703866835363312885794507768017333428768345503662008698097988107908027822278129570709397309666817875531289874282319446156453794019996187392013365820598478351181494395540484721257837201417293247018589806106384523681736175483633587899664714291295739676415693068845889544882533449435649950237349446517421377084457272807290158068020363047677777338148489154798568296473342134174809344122090387424920491380713220034902437029165537079596243123983175222321165028663294800711889827779982209902790297470792960725069696490713637767613858637632149380124574535912373741375761967544952221387353580766838708545789324009353286494748027674406162292566634447269091695232625013308419200094222021473578759714724874373375308749412406284514074671156621713724300952387416821386663243411175188200218667749053805156757203176853798650667170222056594842492485603395934170786855177312715088421355030646954969179740890474191296224907355907507506360711272963030379732021883447525211054240950947846579611162230442899556223598423108979218618013718158434629757213049458786496076129587226058229276352490046360013725381448502161346660612715971671735335426119632901504137316457786515950267344462066139873020650815044858068702924086169317341812797720033241467977834008896790661281068117019809069851704340166442863599129065394813000974030774142103864685365542354058968056519854554968021588954917098205702907609280748851431353484911600024590569205263130754063623746415637575301268264243363403873198851594166394840302138866221509908775530484877493422056454745427086896436851817402717277355281919621289556467805974633978594439578314049358108276225720876763710247548913932548026481442078776985664242594567669883654820594421249491732062868193206304678757306007458265945903771044069803317494173961893175907312145457756359103805430847874317005803429377145754311855618859390716794786294547648729536589129213100419349022260517104280748818819741648022814432878738829302129749196566379925278963377974181525752045300687628939191498307825180253378526010126292591480860828520348104946708319543199925239379145507974968651961217089492477303406527793766622201667797632334718674561877634639731022025701744581352309317439402360352749354587375887298588817281683793319268843338707707436073422260175984889300216039570714468721120454173220893889568878959987898713373556100150019521549365828497599277756037222006492880309231484184177573165977862389449868178768645080995794303217108777406673117535417853308376396203711214484629669008663903123968804087341508012137032534942350300181465932004956272820342073340789669203668396463794101210866764286969749641674555351102433280099892256286906828032971861483868863360946210735449091947184432378805028770793945292883591444457522415135560153955710619073434577203887630170885234835405893348420672351129728801945516180298627399810838138445891802476605636099306970909765283024599139876271914483420663455834037158332340819311365042754220639285777937561077255510486705381289780832986688432950463450688387016950502663731594413183037979063471341014390352662745962531966712702421038938555765191117444732525705976077453123606574518685595226285005176516281215452642426488044373831409808835986507306250181293024821404489012200148290232940849246398466677092458094623886810911766953685848622693529158705231832183644104187230778933852600708195874110361474758952619576998777443150436008744368649722433835205437648588158362136026689643045295128018336651055029586997961868731268982480258294441704287669843777935557219341540365474044217091074892180827616575046876795523686211440040700147346035192403795181510683904209590829032871931305389720906838895074073838781612648500208880379466832051087055802304635910156382922193690858514177701291300671305253196776117412546521851988371068697155952791195439269889197434800433374775715704569206950326705039238256656635586305053948243608748795086317004076905494188470189151884278378531148766131286444041993861323303132228624603517905570118235569773671554681105467362555053672629553507921301974337137014714496973393028506551769413793021652905200105649479871854172873767148599559169921777451043797319226104907795630041451125006483679478096822897827459080572287282206759964928404126003987085566741731553799422107740467346753012025750512000349732813685555252426230383852141892117191727191573694184225453766746839545176887764088614484677211604997549141761435724123588322034801410740912341849379159709218479828587352785976571110947459144941827380304980771706663634632311504628944681986449838422760419580601922717840177438996372311725373458838915906184764922034435265414523511668924075318847484182065085784167740379459090379082269262376859625944660727105309438846173151696374362809813992316818307294907140110881879547474115140421894249330877186892452397667667690434855609022107466194904457087711609928010831337004220271242720036381863625397197678716380733635982867890425809434238108409316606619437035998570670248652364561754679872522748638239455860757421098322413645823528234855234129401071201901178545712104193659011106190575209910226624847055023825945390696344111212023330596678266413091336665300624715881241618722514702053704169377336590733623423398475435837003431954520128589181996870905756073128401608815702859346889165427946398641931504733756255254444272917055063518993583117452841354657479355611084404730027909056810762206358215086834596591555190080789078083241070662025966183604998905179658519241338906124607747264086609767799291511660708917563635938004980372178059498181525081589933445027216846369908488941848930042516239430544326977758589351009517873282286004408992365792253468233502469123390968217841964299552377810984106742773966581634638416294566145143138738479152924992059887985905696989088416926961970184689887443226439983570152310711532029136613187706766710585934825112396896971841113652597470723263993641557009986915105592490183878097073890060300723796937770906001977629838795139710957811272236506095284663197314678473345237360913777895610830256366641815545809915501260539677772970806615975481074170209345035040590209535853651342873760251957750719237947607513740218653848734083663634297325952057208534293616050963846162847187154733737505323670638782160973441148125646094743894120162153799062867563175328599383503532702095971077004058721163917792867499116873055010822242321000507840785150888368124291126606187308144281770186165158340915061884115677507265634542945710255218441182182316990133845583654256842198046453023654435814082201375047275114813352987119340640654867108555724268832345010998776713122658803436520833604866851143840140773984995599974417002579176986002503315027821179398246235873507298823828025918864187494093408774561600766115874304713371586583645879602702834170030395846639669806977612200077648175263035567736828856239067633437643991439332438879796845928243516386568628804997702526200908790068830783349129773888216794795999049300046600891389319087767321191732997312389892819821119424301637901321581573788055867880924878575298340801258097948514696411643853605923899934103009213462972862782719219396798351116284226053202723545430215527915802886321869306590766518071368382941019076341706366794029580790638546337618779923570861684156230403096526877491214741448015275878600462951702252473654185676979367407743543019405988517762414773748040886215910386163320777770611672619648896194657992347877912571171979601437026804130375209802365080320452134789758893573442106035437679700563085931148789429849538266313707207420275513884547407016388055235088304698519316333502738767417911918031681483899568286145628341651304542341583182417521394972693411739569381446678838729006950020730679250493500925232455674098631521522618016805360592744458869536954189658601028255847806180603719338328379972581439965721623599507540069196584649291912698573173345201233532817920591615726903812581956786753897058811235495823705201889160946644145439032685585166123663909205456200531804390240429363161772922745896925587598424540210762048154903396065918419761454800172117355177748028298049861319263811819456714073097372786248227301066542256421787343661100149598553758939833429247958363185865430475414232583161580267589110983391988386225676488058290840518182556380121491307850082685650919101897117310606380086204418645544787337190102345672235676548305344355775963090433618347914713709502232548883728884394487917776321790422139059303103822430964130180932703426469318978028800718538958132740710013949921273780273498245423537717966856701802470627047237279856610368508616846796730344617149626396964159734107314117494064466982370840516855132396527023866818621056968062497611514265200152438986737432428736703887003726441828853305880377555289120307335348441159808233356471566001845165823342726798746831163116868735289194683803759404439216799967314910823881118906574355117356452085727075205584247259121999348837709019735507180753013953955225587719485610801051122461475374911018044737098253576877399814462102485757931224336967085612504304640769352369173615552534720062760052167090048893469679791545844786146545036225131139252723135764037209895725431412622738688966092652216021816686846020678871105414528884885815892836570923184327394390662994731745024126081624445017611317814341970486573289875496264948186556255685325278677814623643833902069068372777028774694363551720698492926275040484619089427014031005643883464730562713062210044568395677296629146597465704942640746611301382820972933997501287608073870370845080702646292181253919061608428669629109324740975719254744748244687895750466533447395979134099183131463613126749652317081919744816836804214714210623077848658128328831631346236582965303532655393462452536719010243529391809720452929625824156097167139352844227119794456682525879504199339582273369577687418128340326894522149157336368336524355675875555758648503882279088672914290410692584478402160596342569138414910946435773763042618142611428867537661878270091025136321420570559751264587398651034910869425982766608391117485994004009667459291906526640568522078470165546736393326341444885478156506063290912200996402288491541775074936386806102686902656250158953213951589044250819894393480392891171735911818770484936240821582227771611975839067543010061817707257777697785741470650508401637834204484939019227179836160513636043762954928927646722916914030195484485513197213331230084879097229246618881568415942068818591974140162207304342734998469254425399357805512250967007734913777031293200626490613884128125725149027047636422314491086592967665059748017577940128322027585233703834447225165149201106987059598134169706365205863701572314346819771847983538750240907875422688236092576775025904151204041531864418331403803928962509286341039384526364455635739247546472499698942845129445161418442501566029240448132291138264778223942583898081694864956320791745044871334335232799408072598786596201902825237582839583886996077657710255749487325813943455356877824941982196871393481283653085986012330104422397602280578473463865540245975605644044397659494762270856509244150564501662915512261733397634646633642534571326454102548691939366901174994490790677519424879339632016823412689569191164005266523729721875589534796534732507133166247109216417288586217761461412066518416384844704785972321289306820344503806166315991155603310105799375835695886996982929000298482416815142191071890374961841594405861748490625036797612847826498721017920610641850043334798047338125647996131004069266927240802993689048212334630064842644502057888887867550176900099671030288618304644674399519190446608323132403626958702275652364203950368286305368075214038854576460889418515267599979522009899040059490566626533924810462444853834494150821580435301100115968472774803901497766427660304678472757450014932410683964662888823250417353493039876087147186795540944727066001245902775601797926761688223063733607485692993765732319152426421200457892123872302804598292730195177185001562574526156326651233466743861257287681172636527522239688713854440016759605029002850838203440134392636569802867997560329015480049803772138475531851529990764124285549378218420791653593711923864862595563515181686431452595659486080230042107767429847256315662678317843315079602346786319162832730178397085287823298290380682410288351797546076747086657780826267687938412196025481411758714710413276187341954342847425005856605282490149039376198338640853207577426630128246346612381411383535150415628962139009411959066774156686166660444233676477217864527634169333183161510868393626577611699821848822613065752311016203079434335067167590564153793743726845730555893305473646136102123733889569339421869518762535307206526275121261965866671574195027398357844147968882348447756009263232505173438534084450238982858271896338482083526271842418734039935149671744870410613997346969294590124235045397147276297934290372598902475160850176686261261794035258575838894785831656199004412757074099625241025195070705604208131055546976285235382061254945100067529717265537560041528572475389261726078402782876816568182156873279970319590213107316125326971965065256900828914630196989100789788653821967191811204453395897324181694652514810526157356435386060208911946125405025503872082107728547541080287703427419422000578353257329941483669164463725396595193843434664662773450377032573216477150950856207493808568632902079015109259237841396152920708868480750296830109866924446032236925678158081166731726192079883767691444972121102697183261060145655091173200243790563052260998378477485785663515208321169312557598136734927465989138501962673260912342807366303854802872760297401570591997822115738324119813640961652574112942871802819489754861516855379899116828205920189132293888812177637847362183872665952156223159551431142667858872770275926683059165506155248738568350505233902479707743486615103117231242362040564343481739982974515471534912197757983877148133012074716126902584919189609148462248202941966294901215974496085673088636276829317163689721838396935015413607924792318038156147953163711965116088783013025278254113955936610334261831403271104514445876138305122539192009945214562076784948729663228448186907435925105894592653686898794030050814201067351947168593784917643236149006716701843061190138810167288438333893883012648085508900510682343308766571846121212561362388818152833625064412137449880112498371413459064012374605234089750660261978298596939402926444569836351582336440789424764719784917137071304137803940703084079321603762463521148180804784479799224174300358189776564985618652388837125499452403617705090766842347116672726118357559975905941968792143862750417757999684414806068699430284537770246001458956230626226467764807747523873322346236556237591773183599588219762508742275572517560791585745111136950353872934083151270537858653772604906786122713253391869911715840088564729030942571966291701474306615168200025943304436844191112975518000897511997816435638362571288980783770990131650757618339200767222208871046230976780629027100561798786650154947887579266722223013329184235901533379281613286889855180653458002259679667310648527545572742475690759963056555285089997777008443685201205753065199900884661266983644257129203138239524485202249200866030196445319470432194884797167982651576472618518761539817441529052702361845367139356449258410476220746417149337915584305152595902315322712424501458385322733150905410054841798239573688275325216312081680673394332454502729695043918391672646364038561027988066794200888093919163479809018176845884197010444354127658419412363936949373960781687085040069605373018700154843076859477202204713883884316004954399784185855894488581571683831302116546340457884890965565921911521305178483859233237416565168184037226676866679600534704064088529854208334284627191229930567913804157357222213799883425633027466774250712414155987959545498445041035839764577309564973455148472386183250740628229306931247872417535889197602375858587725499088942773650028694720309031354230792617547447431246212057313191583166726276603284661245459127959605742086036992122181664847191130156511180427904224421726386942578097324705093616322860661952672862517243039576356953017967952842324282240504323742338984685666655968329581731785864451933675879925036941257778893056981921460713855884253834839336955826288466115603340654397069941317444896052050348619799261672698181958689867902441271454191585476385200717285848777115806846064323378671955376578443769006063834489032976088848743589892920209676291412123025906066054799286439125901597979395223106838717908140989174674135759486573508463027728362598494403427636888897688877583861437399812445851256621526734192215710452403396555307404320840337312581608313349168666574194085787347994803549280902794534772760910510740826492067135267458032718506250900821093097516738846666878542486324116399855487583900220933780296470971477698520601247559895818872869964285680547912315119540974564362545664582031200938478240543011531936796245981038581922652268694165344485753431018885411808731715445609065673431698734345201070934295238146137059594836700909360478554972723915756111002680439337885959728683414340130203014510393953111719678239148773312268681153950925388368215095940009269048588220086412082911334317570284875561976214733674854038774036213450461234368305753646902977757225007106960761689773903415701405057866842717404987865086722375082605918610197255218139905751367623873749159753264202209164498227302315236724899023413681076246139327575815010385134156387834958590754577187839470099220870534684150081066569885026171851566571800868135817973382346804366934972175917215338106902982816582083274075459093926281522118688990743523796743342404783247112151515315275863425091879881948790591108454826990604330920104005969173628789587023982211266515822988465176330032743799346333532518482105437895784383310920084226944538366493804098188883804935512530111060835462679545769757485798189458546623067581093708777645071095158831581163317968644110691527764796308104629365363254143246871642041303215184393651244831523054502345698049024608121972988119544401121187082547923671245570592484656537181104549528659934067061207806324933888701469575794180291403647708140526683730399529623048056479728027205404850842589196778360854588186053178301150407937323782618659124442522516015911775239725448075418029945788211058066725929789337939547917684618498063214085729080332493256560205295958399783684990801936227057428333474904081277989435782708997091175945934713728038120923339123358846620662383956526499941591354654422904140024873567870468781362998993848117590356126341021001591980838579000180816527847051389874376252827722820531225232473576413790398884616390376185599129563481498827936402787983247373176772138768219076137676857706232062500130331894258308486608936054588436640633776098053828012038547757103766441437803391866629174060007253970479082723351752466554679510256918987165416247503738236936355048539889535404382731914574035690746573623660148605865303148727940898915660821583598507857136098254542069001506189594839843723334866301064310693140595503587872191617374721908497580170707224329921380997903300772788938917226320398351629873597802393620413663436771400935729004377307851034602599891152231650005365887300895901820862452656070757946376375144553436279574206835583258578810974854455428481495916133773454905646598456500177297274684582860063902828152732990074301615351260066266667086447503055833953667418386193095937294805357145273296161315180287265614828121022427131632185024147008855940968471307076600034486564713797057297784114590305056208232374207607875355563801305679741598319772493475078526758478718504245629997181560684372241232704685218479878617754532686088667765650586120294440786796861601217744202742316168607678424189706771279384048805139067263746857579210936517544774980147392413006097154317947923050064621645127519768345464967465333433629891623788899247779547326994745796608042341045066933842663782498564684622877478231059284287659615565420708406159934509434410913775353033466608682768406033046895019675218871068905738785762229275128264217926700212750313517936635584412794370513521939966133601107429579530309521975621565168109346473320596756844748267189773063434179553417960209251401552941338447818637739546104255683463908236997637284195538324854352151154644028013937099414584671223257230794249420382892928992267899196182072997225533950183599201306517223766059112007423177390187768320062716111780480585989894233308617705086223252707030568537426160804474331029801669771913694513394923652645684664807577468621484431877388889248397314235899840369777921158151691411991488582862738213137639050770105059098164152246749073081853110905056851683956341171759742790887706009874639788402342750533172104877313652693547640223151578868319210399153231788843919974307575551141995496439869342687059287693501311738735864026214625315339293761385594470428182522942736594668650381117291543663771934418248761633241078962206815732974239898168483201215556670369457748425236672608267807891857659287680690261658470680843172631147971583492751953704562068685073398483232952757596070005246416577952948112520636940172723545640870968608188500242445215958430956215086757737644687282748634475197773886468718959114592757629440629734387909210232217811669230321394358839882571063022906964203607610081467198319239283563740085265088167554808405115605179392945651607953542595763591215838399146741673332990807073243759375039541922226490776077597368979496900731178654577020051642015659291266891363879431376075276137996795723159710910586496738008996936359643655726249454964591963365122715379023849295363001960920509428577776506728709238637288839501555903197130011491552371936351225305099528669189800344594090264829582553988404893542802865520133638708861687246550822053062277030624698809671878184978479558068371743168464833295929569074310262570467712189443168403770384636701259767781122736269371674150894203273110150562023470667392929747702997512941438693210078096481782491468650759499435782509702992284486115218335416140039786034500540070501311782544483649182066460674129476139530512098425464161351226397662311266529361178868650595519433851981025912950254577725432502678884080085373885674815276808752288123372070223337401597355366720313224356457721203965123651141745990921172262102902796139492323978558722937670707050639116597284260107447001473939174752343301915539333993876066521567117329819197049226138379997197777684050633974596671881014726488427535555124806354711256959665579902503851957772568127477574213785646755935099147110739872659387141825347054900124274630391337511194410282253141276856333623391449180956689450092487960345419288342455660015214320601641754555986526422760627044579817020198849908456827927565207842414514747936625019651524583352608718241200589167113863280484691122862394158849120698298798688342869439424489459547662066512344470529657969045644059045050541842378976228265096765213306027634684974120615082259561727842477172650113753274496778475114875902137995980147004714017835983054986405173955596336797157379647484119280485311202780576875019346989456423812282812827650224903527613430385976472182054468785068443218817227274223232722555705309437041753883534558498628514445751684502609973136341925216209139496177856551144052971160533106898219506317050152241889056385477469172169019172009276819144711592302112032365382614659801591208398046389956752561589659318569185720122245421455543470449839752348983568150716169791583828103509151635745736465171786717605487849328182582119595207260215969410458018385430205573651363788854908322056508901757157295891432407221290316642265022401710389670742374706251330095790676919380805198309281998855131195101268171388892614796142965500191051469015924555117341005369002916614864178768649323560016487499825592668883351971562279624266355041005903700167925363673711881002864435203428134936749844288202176638513328369681082543859868974165135844360698201968336832048166463451961378283136448735143762287061127461754111190741334500077053333856048182982046094206063182605500427633075611265186720117805289722025138650027046935412014354760729616030577896358069988866912538907413364461298821665657553311775716224260286664692409052428207988753348259090604348129609906736176106925499955248495965462556896992564272563312953720840376347141820584898285477281599839497018296563871181124936491962612823530283472052539364673238563037531886611140214295964975146515419562361445183537272986186635680725384456974823507243905833287071709171239687969557138580413073757028019862528447734429844164016649862299946225930683062282104164450484714385718321040209086016386214969818048769119926872366006784541695285711305843705086078666833658821832020021298333009002651291423529263352777298588103766487217872990110937490013647365445783968098629462068893450876950055435087236858919706641078209117191000501053837736671089646126365679938371166346673125749932139430638514310375672015972355548265558640172268556299366515275154013591571954524536495109097749307361204843170530553213534151522229084929382153661888489233441603024210243820557484608257775261068317109716007523554859112188258053286642301863826664658688042857711860826976736967277018319978847614368237782286957454394862575672910763989540828842770285986943690747587733975476335724691778808988798155586585510946995583584965421725626158342349291463266555224476859328786863892018248463729434908353320854857368616622150926854844055212011695948916382035842516082765066485272278562197838227181321805222595416070059532996486227205963189081937780432369257410597647505118835657131933050635468596817333830121417101523699098483239660760456676302139772560959780898430134930988203957120212198363401149390292346538980218527166242510702485918057739288832015748671586067942599684508148306350136403248241773938124961908375950062319478768473831253969143550271101842078320235517463026213404008728997280220921964485571834759311176741353563738222305682517347135220301352085428228881879504992272264890990565738389880521769546295719283765493898029759144527735721857067334704873165644240404216204052682759735291163529706400729384006574128434079208649406752311659500536847237274042107850018022519654238326568744975596043463027441508447663022003190349882044671743230992663912429675343979225558788914378042781892949466745482540327284155663107994792106522089862419277628825456914645188499526445188557666131020991689012804642136346613070633977746795452950337361971458655474089367128517753040998812101024895247802212550289268065849865988014229947058811174491797004461499508960549417678713304096146761011945211547213118677410061297978434538417350942901332685759324543914944742579893196744888689512411122465615880103798009653646628401717304679708306782625132600196866748808757727356625951190005340001896496758468379703284739907730132233491094260463920529403074147510219788694852293012131155499918366638196508908407973768102658704920508680789428106739679276378230813258610346181376670619372780426355976900168833118486105464116430429380309377448109686850692831369851739036865459752311185219608867129475740646353151008533181201241035645933312689159342414196994263464408122034829881717580371104413289042346383958321919277320951501597396991596905991519906479687798872830951040950284894905621372865053780764051803168687811670578236371683976359203375231982422791766710298823308236200405169273224456034094311007757115708462758118741924554771266689231784168908144722852853213145418385738983482376682695576599274425129085516967617722352015730192643826996003870335171832281605169917023278088631988297921884726470926386546193359513506681486747057255497601556617755494184058509384242376195690094564991276938722854865979565291182311660877596579496953896318285277638768803983425916557410556861663257014477050748015094045514214978343094728238140115941684658858266360253138210313486463733250177506903579731023137583546580884525121690003757351778199251481206897170503647023098327657197843696048512744013180819463531959837200810359401457490892097421039302006837532847400900690525620584681713310278026824879886852551835369560007730439230851237672360502537818991932730619175361600187782602165673129147128860595248497630809467040428465154518473954111598192763069291309993161449361901606765406820931431811492459393491554459229775740551346840828106472485228777417601112835669547654366497753388291520500410187503071623976739603138232559985828433329830758765625176140139849493566765645345623488193319838261915166014350895019201171161199477979124063127252243590828643478714355176649490229643360884174465557499800899759505881855851484291012926656610404450762302863733513821811284266031075256585528501435663339193739808024479899981571625604806891013404228777461375338468205829577298483422455513666715330802915538772176793206209211714093086206684712568737646988960828789405341038705964865065393937670034699247990304334138901461223361095956017728781282419562158896206002420998146311212386252090967396190037733385822055978231905257828007951342186274460714674787624067296995455910168543558321537985430102833160742826323770319797839252349581328181259943871192834856759546049980506251375084490575324046399355921042457235810279567501498608612211628910930301741881434346384376558322233659589127434589819331907689291142576453171016324725877068866786857431619821626617866398416868921239486400443611348329012064152409266515473609044455056301234354604152223686323843993449641501398421720566896596975854421301263651942566043628137036716528315612846813887416730628371794971026652764722804858638126557118427482326543293269152937666926927777715724363092740995463885738179724963462794807580379490641903998945676545684908003112562351853539902995343410501882317726535256599390492449101653473269638263495019968132426659488020113672473786355115583513530075779624518308127969509005929992859018711298461341689325110705877117714525989491209289832146506646943534006455889594269313738566125192339100043907355923580419104280283072558256191476989076044481384867635591825051513378506173895824477179416959393256575762334774275281848561202334928566556148595307361951452022609194660381872895233880651659656247890161082041358756190647573008683529842307004232448558194531855698657098714794120326761381635638919895632285461662857660599726832547678281753858816828279251164626998612993380748998107189531798433025193171125116917084203161010006860750206851615825169328017473487813783949672959482753455457487961700034484313792239179871419993790098204355317563633344868027020948176789009798832697409097859784061934332504138723070302527152631956064047973468107009767315548044662188364513246101011675588359562749082797096389271689494045964959027178989121099966276111262478601854847400553255942243598198663596976817015803469996676660157363875952477585405840301315994086402620711044044747902774273164277702868235140616191420470801793697619891664609601275871001929845388253033395865748657804682283570107708791681662072322829285564274956677524241214429364571216762347981276356986671091103108484766948573063810360656111068666812009832842128088121532857887605341202564368007892031705688136865530070267272588613125610582123888611611573495870326667675275150799019951595397895218034797812388414722658660975505496569711507403053145155850681679665081599674159440945853340105700523944273938273955055743196113863244226691137126869390801567477589853902927721703138827708291436874480604315115763372443595412737688901359646752816010285313178430101838322902097109971588405802531180028644878921582018531386787661125230219478514785131513961187859213498447013563145258557482036087168704683882391556187631068486093401407335985205125216564857463389603890201539878739856172780783638871212357279007655143739492539541634553364591897544059267352803918069059428491344932340725819082181919091936395648168045568366772781805739758324656301309291039380288954522446988331725604903311844760005604587485445407540659678648269038697314495044044489511216296151715794896061818450002303503975135697566955010463116805519154887577410179928192575816249262231877899020413042615939957078378739301601911100438162076995319655141382990195427114163221710010827354277510903890372318820323041923889689113106913600258318392898251436313994412799341847967284660397425773160528844414389648434438151874583729661717764757751228617324053445627994965255748277266348646077357159925922351461746504768546596337290083114871718625990043758126957251615279970786016446352567277167316216928027282618029404285601848917364475594929088298640353648111070555070792769821632454323032681462130011898607777547713900937188877467792085560621729665436237245494361266470200631642851895178266587095827863562332083521727728657570914457787449149970436584999435563601601639818850699366764856912027194636136347785593355846084694746260671788675356534338903021651349282877675617566423347424738186872396940808166418013828041924581961649790203988013351468566801654727279002746212692341366083747435160007696459154944881599487694261131812549821584030999464946264284746929190904382773175653222438947642751504317206065771158292162223548402556956413425979039321366267565942310973280604093149900330797675659392742535446292942932115841776792012552996736809270323694844799628665367875313617325501752093436830882917022467113303934580727300927114219392770094488515775287004916693640031731892883905645765060268026753638609498949507173551204389265509366645531196130658073730351893179376749140947294623738030571563154085343189676635470835226387368001558753261651351648475221945852639580989053020128481775551796444631957456789186057106561248841635456633010777239502614963524750985495743690694656313828999384759809861202402698510025141093139384984682202993427903595747317304836886748687780192883734318156090931333386319686891790502239816841045762867974907320662974237392147426101438821318913611987629793969160789688838683390817765688700718280547588920938204992543827142548465292703142037709559382740814113327996067714845867890452534873962727110867177317479069521618178464139810749609028858688836984329336173120160845835105775908226905433193472885254903103359331282112000998695960173468086019939492532174561494928126007716818776971392693292071046398617481100459148573328694838889141918139432169959329448117398489799780626689928147064384391701741236502790764204681310684264181444309875228488839346307571474721667593271272377239541609092313035908463464106589353210117877642259939512612459657325138003532167375894870122551860850878063450906025367376197937467007913264066122893556681040959611798019381019235149284121365251530201056958683276452958389983720315110200341655583695440693444756887283781427444780137998088279509502711018295618053716666984706972568359350647364782563600254387668346340557595718856593930914507833037191361555089287596651917058624337761856040317431635660602997234659820131753890574848574221855476806473641332190221516161916873796106406924442238744247512421978979493958041870196424659115213882857439923400232709592843342258630114183693954874117227263068818666581383898257297905652047773016318893483251811446311672270583192456571163875727070336054601970981357161156674015847136743511808224011098860588155390902012496438119469712493327130936238312636861623667456628175620629372595620994584656253245046031590879056675744599541817909413890636222475225587005002815624714283935380503398787891303716801540354442912753544424990869644352153197653560166637755792541517260580583958354548181828191205482442678155223935461715402743593128312805558036184838960364448041604741976537752936333367568806793868644763205468925706650819081438189763601294041570123250818587937974262570821145917016326047209096020296598425319562683958250813536853300002978213281153407048048780658746205353946292973196368787573326690893809623935461410754595915497118134993363244681653887721933829500445403545210943197859408021431781854288183821069668088006178775680870099097247874729291043806804198435181680647124807560634546601558395433048755254960105715410148836959075442180548639668211841185052801723201358560426338962291583979295981725644272233005332447352068217532405761681747489757847106296313967923488650198727770795912855478377744358790117072974767564969376753602160993188408566164356035205827728312303043178184781228105249221979859033683986831485039475723524592918339896935495497576717910268584447866745648503886637169920899700056172311376404823532388144631159504401231280024318399951507553603470403214657516743891654870180543907122534247929380505475547266643287581013966657002786635133007474041399968635899919815442967951234900689969408309399751664694493699333249846996096463156286657437586431941245790265343845977208745801842279793868031615508915196033263584414008203181210781987324762434390114402401440585062114006287413762167368334703274100502829335246424586638605786598888976380865010405915724830101191918589637553221775875760518563685387590695987513470762072016768472244867494358517407063795089519082644910670317567396885683454166998785959394865387491343654204820409011263851826823941640356555280152618002468641332008578112513405407081339225685554793543943689480994989850530568455643352129692148760575226471242365942680165549317790224296919240551410121823142524769825817759672140793725401466021340607065278414604136751494942273450886544309042479963718758541070223068636526059773351373205247976595839446107591176618969709557917500627457713686351755877103639965931446875267239036330831583053258333414174447710249222569281956508947373613700778269873769014464936649254772105490583457549081982458638061183110477574040689651531520787024703779308261518137163292368629476838368852598055762133952666715418378906734702468101064507387233566809280969320291637620652301199112259647623418841264386395887081567468770679952923087838608663354499946655928321528781382345266627491530503519791423492832960414570136483967440527821543145851252802835826024941458604383231514144342201707031344823097683919856648065533486856492743421091059357474671377831798333319410417474427705915764694737177532089071370752423263929540926045086097229060271855538969417481357535438671092735563139732128483473794897875781572005864134111249252241795438253075316020725402567518656926325390216444620147864418976777870683590127542897380883963524113134719500739423152141727543478109050051028755094168682437007418161891848330970037825366057662641655787304940164112250626363780647539156878047935117002823078746721127502792258896764032334520134235914171595364279353884804522199043873458595264309382450336853878542729729905089115834816972109876050597254764750261582529481072203627298705985389184053488494378300927013072195510492530576810649370162643090952357376213694449245945832139075749389317233420707904825449016822516822396072048212224148307525566689636475946522310217544888396837215444771840002949803633473940711877402992734703772862896605541521048765958223587001251878385476323752872574737995987433284592688283694266267185557820109634245883462836887541936906594380642966283134845099070614033467868601044226004896866745881383234373343153467642427470634605583355106488319425483819640552368483729375067244097044403684106531141202632210435506164370973689990807186471292110687540328430582344630748477164257169864824920156209281820633781049668365110405844463419846125951578350606303124378776676007075806977824827455328286116155337786951274271326567718957218855361876958241263368915250597716910563471298188569176437026439228143672539827451452257706804654720580378373281489205723127541379602629936401073444141161238961209762988757864415933891389608520300550293305316625939213547737317565733430701428649031290250801604500821527936977140823542832118084667875097118789294373358834234241608873807277755516277019691727393670180674358717603524949377165451893537490468304070881569492715221527093242696022126121960574051646974818196022159799532684648005383392404272458531500843589253484917523367246976804772108902688453624840847085335227959290342921889078147961192261197420441608835553869964910653852787113271604959013466947597855752111480913992970758647558376387290022193621698655212230597737219967364356758410708067904344239175914681455972705822040966217448441883379416078554497269490442073770991471743118691712536618579682453235508863220676136114021746352610412843896271509101921026319201724678819920658259459406026929298179426282660738427004296971625579493404498746063854452410149788344630374208696003612026969961961039256115226538821071237385857417073166257251558846242113388787896012754542515474700022069113042897895779862127583540747603437800888012827262435648471624473000317959884885379649923012018507335389928816366445635107987960739774857334414304515688463183547162570931552621952036492081162210915834690471085959101426240544779716654952022084170533927102896327959678709868497309019619501900205923209239707782528133614381804338200379135212455965551941494245733301945670424342394590403145557103964665893704081512778800113470478598628349291904293018919087007381079523151775151853130514606981628465035000959781882976238863960123828288039210700453919384172778609451320361820433811858345716543929140481036711510678933418338582099229682254375463993912285134574085914018672646354750866182897699312275247144071527525079767773759689890815551523729140216771079970087145856636843814629742389733010984166576302061186524405426719990935075928100568343334972811321110148402652778440074464372666782805300693695741432816372048546500875494704003105394797839801525962533145701914360045098429135349493705854085973375992398854126731835181120814983680713139624099919483234447290796658956996736342915380643606371796315462364827025815281272785324392697724204063292424663977753221777177262894595623191446670206138001559570795812688542633954538918469457071987502789959488270675327300034212642431917149804543097751492531306197317375522239243659187156481338662589521912361883795095822742828758212475975208856589224242654362482842730271987503997163020461120939559438538754476939151152052332578880273358706694810860261006666278276049669684497462477223170633747941582430325314895336292744798573571321833759590811348159061630478285493680364752696711667170921077699978811450420371499532144866640919332448786051484184472907642159465783822473381356437716952790022281936790491899512771798767335638487318380152530212803516298325881242266606404386751959698399694537034707632254456308941521242311750675792889402289333320191853647157916467306627154173308965068637483778207759131018729938184261481059847470867498365985614067246658632433559443981135573831557711533258078437644249786691426874574423137773004147457669097908550482276594098523010865392840845411177143216991489546708528922799627403283377231648593459414320501005834150642578626220173935755764695963027447483378016960322949716092358738097370573309376572069010075677838765796697397923164295705518494450543774688628974432837896342575327540037999338311422069087226161158663746146470636669106073380714837451921443557692511602095798773366289776609708922199567088490025592814939870980436437016632663042823714061921431747659669920438281316883795352964409398405730010219725911060295785481383843253868821186408830728874850437027446981798052937477916368979179946514964305767943980655683282130981706337300606674486323304623932151226978604862390031934406259783321265405518221337805411740142463379660463649223514712823988980806123721356166931314188131178348603755209836393629380746651276849565558374957025663578584880152215397544265253379362519512670332988835251253470042263103486329795155901509103015566058245401973498820346818177562159840611608508856674834830324412328964569495474896945054409838679906691808688380290129259135503427822745214053096114661939112675230305841129896810628460767651725104321130104022732422988892807598754964658370778160164311383781186413346856856020638175718148941198248923636415783095767811226358038822102988732178943137848344098323555030975978155317907382395039021064745681546482830547742863185740761964857990591735349346237824843938495346336550244622171911194295704867394430832207895933239281199727587850259045892480288417386953030944324635107829448236865013249938790072491493287214770642284397140318914759915628512063461121229827172795785879661769452060648024390271067392957310961559140216400860464618588022806694317078605644238524689537455393330066621513063863668347283349326319895404961135767598271441311617408008886445385018632023469224873893351619243226321384815877573260661938834036447343909659232064111512382220775782370941098291618328796568407563226342506241014303258218849715569188083429950229998179072088255427888213781050171739025878393436790522758026069141836629691060532112595956052147550131599925171225374322296902900974714495260253897116038103145401244491388639278031216308093539621027582503899283381516195291971827301959109500648390195752576368451479408354769581270421362035558666456472797370284941866200667055885708463689917430016523129513994266847694819710536031618253306544143887011690574858735573835784806391720946244981204652661425708726448649446259864859227932245386863066021935987839388805311451897814297270238875404740240026485330299231074303846839625173795877037433475101519338096788295241438563282834304301779691723893209782958908502218032252128769449582096335560357095928035902398209989560889720664406744698683408210069112635691293937595754004529479885120378078130476839417394877803277715987702362156895963182907577960399831986043269597314241332649471160693151327190128430667809687281864763842212411608985141979804398020501454901049064543897586599446450859197076365372723037295395635531376625901620355231683046106737743925375630244322808223784224168899131226654712479155004641390156036571284155441411625433247759962485883654334637790201395629727578804288165835201022420701266497439105175253765775003824060290262757469339398842919408367765428318662992234417267209127745994791125971743261254332185356653723266108766091417963086629000932713976847949227217289534885343927267509853938594734533872709047628033397413056753514938655844358170808067477573396813387203161531336878779647458430619283728927426701887695792957758196553590008573401497330634123327910602847260591814064797765912311170768337101385349399544079568050806921568808180517252448289175775378275846356640145925519357679068707432093448382022731508578920396137884194668540572794094101389190893330223543115681260801220115495918800343043408130567826468805907504463290883576708439322799839198787773594228143508479519141533955261054612090896534020918974159766381671706015392095808471088907547443804354353253944690319929749458506390930293677603137773097306192706375408488687520508525165730397193208649723944080780678157768678549831139438650161711177985741573165564486868466862754546299605516270291214519929443822363289829098044631145444865074694598154901654435918695305593343310582887709615262055773320409003557572576532331324180805863947444482796390929821912139905472828438824154556763103778165691665657882532280116234151149791874075087147051896830793615200413996535088002749311010166670429383231128253034555783035157041626402999845119767330019543160507236263672684435173666839518815658041737497496166461767780163182956296120875208061999372007733089764333582146852222442880045570946508129482630595757961984965765710917826397534915087483656093419135599800244513950609877994661627303987344656106556530421992451193617236394609715493743272067622778127388412235723218061651581428965573045951743298501121364169295117222079236079878019780999507235848626938974513282372494864763173204309062273340811390836941110636041890757897594820566046713144706141837452179158016295018547861935235072170948467821629723353420760909572693760560485497598270597459456665243641220689015463724307208386526443905187422139592950670605731412298377254309309198578013030384450601159026901867431431551908886647916468545980751076122364752477349556327673146843790878748298380386190529735249834498608906084525677228056874879902012671879248426487815432757180385997255099604726111897794251958664284588138806902350879475569149788684255424627657847103588432380377907276044123173099330204130172266442277370409527808858018911877489369807159293264548143213759774545341645322931596049396813238710588658357339941023705028234247957203417217957567585788315037999202006393114243058239712180474134103103761902008501595760327839510732280002289061880420510151632054005774375409587593075804826657896875203585113765295162544655139213898442744394477874860844490957018859156103873568201151521058227072688171240252312159872400501693640079562287706862703582850979004341074775019628214071622753750594213867503945635215621468498971789091109595065728986614419281756233160471931509043038509475809472484839956142286721592883079287075000335939323867593754391781793747549235191193807259198949494419735529770124554682306305770933229507386172044143029414551989938582879361826059676595369753424259954282254143725716266532092662224186029759388336000187730076898987974650176806694132815574219759609816188287298140533646743800353633178811848334315909322524894537946967536989746603172073730944674066228768792602264572710643738380837623614917898068858515358190549095393875430245508412364065689991099136087628721082867441512691744814812445216538325121928501809139954924217979516993802496083352507105701662937151095411922421480610612356290008601526223910745132481037399024689195107116223939382369678579837137932661787020570174175738035479114063114267091031414980881180854534338103714377173066137152092224157738405336517939177970102369390294187561023215675234773443318098513880889425220243938915335780114739680723991438205563843696638510682670690087545706638918348472798665916332547762247004203749060872315563530912748052021530812195667492723538686655848070159608173018012560189245435174561930728159753834927537070988969641712290904620173167340392139130640486426656213073095859933618981653869556224115456775953081922731312916896960411977821272797807191741276619021664325633503117990520539203521123458620121003271705738713780774807853622735975332369062823444715526968776817154909658918043681823331869625672027515567337437222714145191232904749119949259472275238587474405621744105655706135250218400880770952977704438555477797364432172850224323530912329615206324769038026338678298449910592171121946011382685816866874649076978584800122719024020757640576557866602492784662288356991924303072630567658718877038064252076749264597991297686110545921101443459754417868300793442321572798065800120735367574441141376699215844194438325609402737075128112877453233493944429746127174491344430364636067168527551071282663879557196960631153559068905585977101062103974537867064683093966283112904858160333344058142500608999947836898207962449241976634493120760821560497627890042770169293976403748120101372198793206029471223592235447028273116184064685052972510837241335291745388032507712617633494233155528015440690200998601800104806827047740621378083437233862323989276771739924013388788387103985555415632760714622983404164910847926217143227306043328684844477623087769421525574858518743104637486397860329826543841030447812267077955520419468898451448556405841400234088100719346667619132957122625970800888165088199135474458975633048341567803943577057941217601029266328438049299417950090675415021076136197994365907034193528054120705031325259727319197536934731582279095411626987709367286494108043958152862082664815997324266557264570997712981090932876664190787757297456700131314783840214610562188597167795701496632484607135769736552250568736430383624448318247034540085364427734723392331956101787858566197493028720737966102911305275742243266754859507841440481550933985537620074856739206894853316171490397324830569552060362227230684087808807122873747494951282582177057528117327266690809491918026755021289837777510565819219329495229361678135831749252662412721666478024819016253569018604480957955437100615344240697897102976791193482068639174252107999662806704137507162231939008053488963036881028861441677296054376212051309911008586391021614087021503694557694717044701122656758086179849910292235203888578301576170574348141550526680513191211437113913381961276449465965700985853136365306259311960423766705541905482991411435241236656123042835415659169967202250721076165076374613579397458492526112765666207435822097297317627256468337252991383832357135472031007739370607780371278032951658818007839221706354709700722816287332534200084311352371909824170650559718487645418559130070614994660990905702294505119039496323795741068443587786189105014513574051520186639920203325644563323336295990233973987605128136200569776769170166023560613933643824651744847705893747061587987234242363777107529914440784705004386154471440197148459786584905338644425546779104443643134058011315236945399477617642714243740035474891427897222259918199200632290198415924417611957210524989375271311270236635230389813153535914623161287898661040033199440272101741309035466148505303525512923990096334466594402797372268788245528361607622125437851072696629684185302925975777549293076192718861065014946504630722549806455467028778164162056880093043109961743803259602095060054157157434217369703364240811657939672533277883853561338380421293849232887404663984262533519366345843735792444649846977063558157820867588035060239433997803187030121972101268248413276443928194913101423285903288097452523004560354586303731033542717301135906723989282266406148615036578482679647756109048610070225811794002887454748312331913119837208129122366647698961625444911497375987470164187655104061378566333165310473398001173785942763378445499432087027045817634303664343931663054920798600884549366428999075918841243478964843091239235302315237916126600734778351782583656287440032486761593087680581436326016009307639446481227896649675620519341816899216416291634033258214049870716368336025959526699739475998767164181542170938731389606143917576889947152867197610761316166641721934746349809581280755322823477247312388552141877021926874825923759749525820156658989371443919867994858389386247875160555932513533315819317901981906430047745440786073654416326346326046214523654558844421336060146689587464107499799356019036400300917288883006080771147430122045655686326439737501879507988881496313364068878955186249929623468410486049867670625061614261520680421926886745289405802278088825852384096945333562464791883682062350798685058973268927715890483655924071371225300339283566586037025303974473517395083897174586533852792161428461078896558368322316512932720278098806299444501384233291782894033797784179559288154638673081485291150120685953198999420670569418132434786899975432345874762463651563496112640507892163966938521057728325292484609893564310900250508493683168433450464372422643707058508089468963392122461741575745688230814417311665131049685206114981455764634129522654072041979630432638014005771648861789205359655496353848482495552899437721845233288772758696212252465348134531779053610318552245659839223269882297657437407671434265694004101323984346692846627328943351404639188730629923320512173991890445508443264698383856838696443026441366401231103389423492034207383394923743305909424327017722646869410069862973558312338668182153545020791727608312683903675129414896472354244103558374122965326922115314500754802535883296714812101509457667007332898724053426102953195763691631215787364631119523922376247623104777815649555508441354231468218959679840684521085186179601515548205918427520403658575660251804770732053538925833328282172208856090253168187282459243063532313022621442157383544934436160556137741112204215342572296884326528389954891205001875715593006124329254208451495372805105203705099685649095796526237799029310888443171744729037769180616416342226852674020561219844529838971999499228196992213275589394657703365406252734397275698131748920433851386844773989470677428512226760215019332996518079169812409745084142596089982033323206726734412575403312817464208643122031193913160694696290496534803491320750017384967109109147868686524783661290375354488092252190007006049793926303228819086345802534859469284033650225123972745320430958621555063651192724730535382289040118559761399260628372736998245325487426785035900095210323791123631573751241257353274045520319271542771479172743847686594918886748884454045969964233132319399858727047232926491678336752932438271525144995997262911670984176936887729267413449347333229567672040996575813843653698793558243335200654400291943766997575097851676374718885314119183041156591759509006980347919014326516470425481541800791961711380635148041601589042312601998337483418689655721383509046343707400832541614146228246074749572337378967629150768457730675158485834484170798094300445917982329210247254267854187395603504080886401962569888534558708479135859132424755570170294795449407656260226107295361988453061378581931709625978881176371052905707811117808569542692482896807041404194324648231208862810060316955349504467156390233317748699531597202801811790766189531623158669535552420361580722062634077901310360207996978130599517913503683058092210410721065612294256456283443677594707095443921497922494594631093777656751651742110848258300731305592576578393816093553175566166005603308935711458719502172954691253338129513507537981070954587258207017557091986918243567830834827801922677276460545749976135815807046682297118938425344109924478895640289111821025376346810552480612319636848329757586992159852134073022318234672830176548364654381797141745436636220833725300409597320208718253257656187769633898548495232736800831578554476037058266210549730038530013865102391286316530188019736080362209210566794445967822691903845446294122885033590355603161363375107254774295565935577650676848053022477477961397619091409390848660120342528690516366838282811662821093195795577704309554019968617277400606176332927384281226138484623706993803229738591254284854991787062525183120243166303131198681457728458807328601683499564244777514744521728389100482965014991010757653230194777136974172461289114149202088596488888273534888246995795562326944670171294962733799433622539352416149661681175653648217855587108601039170179283763959707926456855591881037101016754249764507589033780837092306144468220414877619035787301200433739212786803721890092895489306644482987189388802734243033773318955149191318957161977544660241621735168478260493252694621828876091914359015986164606609527884887940878357813987080053958712911416831285115017518654446687903056376663806905098250976935400469520183131594801473323023137883291127651257971383609949311079892353269901790621417358461272426410262084017654746665805440209061402288206191511122163154819170430032278378228064297488504492408009007785657270867792643092401688369732241781141239554387647824384054129098263591157717385404339218659538094528109954252245918034281076658413204644589067514917742556318303640379667017855073684970897209005666099213668734521927446342025630127659729396789462248323206761008695775304021823932446593331984673244445216860649498204375433635697764733500543777729472928535003401343551233276791377702337093964027515058034782815355668158459881455574854367657601471305749271613272943557553286878229973812013536691053859747419687182201497193391202754872735618044260109639478757953042422705978638543876515709664403972063146905185168495666154348790609139453220701092679129855443962553369769128832122057921581760830861942194144320471873899402934198280876047246811344811366108010904003957256654755509913043509855785369582218608506716374535521483178494375918799680327781539964266940260830280222886502232571756161564401026679943214676249216546864729909833211496440339275964382652345354300983048905260107162099973041666045291884419551971692936428677320081686080732461770204325770719388692160079252432820506734451545571028916748251175166171114166371667845172872312258688345733987393224115817924302914202656553947892821443726100299224513423702590762523217205549229433755681299501260852202043938682273083801118156883999246279421685491825692570938909798341700195970646969728513117190688136558852318753669858843975358935437362432887028243171015786504790206371345315039102488317986794924999652653866794164399395580549488051163373698767417230139076490348594842243736342020733362468797086458949755520945559298426551505439938782361653833531353046461800696838936626148004955420302595043851489250053421879030232623193764779828551677870889520629850571720092347330655315777261195119625082227103577441941530396634625745122154744458181827107326467855159101122654370118206431923384615673967655764361646765162980490547633977558524163049193923288399643225948836359491493854295501623292841887330275227248603482739058153077255871893876589667815313093691070971787586966739261288706853778761739595178981142258027344925241065269247938606669049894568978691361568878446939344420912003671289004411579410530552707722304801049527407793047347084964972361939236860321190944770772773504519449082418479251512595208087547647141037818760328147198272944969454280150082508047555938121909919521432198759577543193723252716685865606752842978895310808603571238512306361402296151726612860470128402891057980067643821657835004534894380582709214445441474902780378000051617237205598863322202442266017006897546171533563602886327016396073541218003528670049489813420748383827718567307528900541169579023369794466757915442034869268739590961556644560370009863966185472621982833082791650877808944781380146473060365386681480613619677484520283894483479620297279854557086703157844522768565338086729524466385595494464040053665600538846857869131119225870009479130032417972499608744536048769536248180198603851064965633146209608023304562274683049041416872268786604657186472561290096825965400321549696492868031562255440870343329600717776418278185585788681270723826137145308568185088076948275563072067904020932011946762038200197570113596701624521241524827073824111477462553713667780991439483594404268664094710566864063537022209020981994996119714518423203373824908666124628601297483698939669642088593517463519019628343693301299892378730108415493880267644237054522981601249712157274610570137433440637146592707123119750764563879359944504471822869607847695161273163289274193773708035240458799299368091817617464111328035313301735214461824139477940578101023955687662017135981314002411006601534806730867176211447700252481662717015901611007080970463990243072467530848925632691104315426205595239277886570026876949328552899893312538039325234996302133092528552298240463884940348096996343196622921651805083501073789664898091982381499049678581067188084732707511796221717808166166237271793860566091767703532265370051075466277118320746498252602953319386075905840263837916250533452371113940815719431561933234431171521820104759360902623743240976663015456397023854806506299560083172414144684655047624870787023630095709571920739882878882793812931497938920665071679612820369086595086322369525382129735716479727731877114422941514602274677445495782996151084880248910119063896855031565775462222031051267586121676720995516216239572501458910949795120078423686486948443362442816302042786440247689952299563989784794914285323439009445877287392771486096920093119221950183526801349486135089461978793997049124300381377310074812300134092684974558528748511199705945123115896196304901524662255323208966362350270555497896015864577389314060123130291506257490588986682790864066622378990045025037495837265554375244053077090918052832180085597372594335765552027864664206023760077639497237266349833649839811094884676262265511195769828266769536489116638223237823146821983438255266762431027542670942568265288177209510117788719818161261316699842704486458084592553042052273987736324036858915078742286776312164601195480044693731699421857083251492190623768157989479402123570705770187263953364930090996235040623272027689213263701757960767168376019921741790162277931383885567918069159262674699745813476924792009016360568276295685740509396060553160508899209858964209325022128822899699484170372025480541909671281317599237716773436376382736037401677464720993608103890377990249616081801048747492708877947819192652574197355551556450616359794874597401635240587398661447657542098911269354721624908581261725301981080862332729093205547937724478929251935220479089636837140911887504593901997708906199299460246255342031823689488001651765681679991694115749278165529081296256462635336960500266524572217620199049546821431008174716986459729571139311402819851897319959878077580481833453302779024881912536186416615669775726530576356719124185071242606560267226006380587783189571471849660349474579794807671628120461776524617378434229919991874638484009876433962356091743445250682276841570497447832616286396376013540929736663738008258747423312049825314291803481920091298129353717909910275144420069231893831392397545406006477170018855543410967746828513034845171048698044949063416649285032507217092519646414081116612704031501401095682254273151540206454304998991974174183388387216029406127292809404064186445994344458847715620660052198683324881522924983880049986689507647069656399470029707070352242140013781759360641117174179804195842281710962810564771077878931081116566080373081345557546568195279331089205173824643492282506567490366681973036713794005173398128646360070470894583614355302383830141104082333018404166297813255747391392410781632391818012089994347348049249214052227252296944738675663632551755936803437696470347724241924980466080305190276889925600409331348877853919744893550144016940060935483568132443800818980438320178551543341947947241729087441205403674248945013541792355995726463955127107407421826251743131338065009381391094667334870168288566202753721877605755292498670367675743649830476606648354805781071652870025738005121043950527229712483352298649035858281604857656344372352054108894992174122519891810245576466887495222606361890524851719722187299442569826830602051400868182152210981874347619765292017101458842927753805322959094310799566461235977877621573117671840361404991423337970215857200351520804505995771640034926264258353283393146596640999389016895236569443295315381554557266004411102420442929544457256382348974688990850976737518422939551103651090603023198545843355374607858660816669741473300006257554205782245695392156421178124156498420504435496623389898097192185985631674702403520026039965292080307411148640305773054821517302830489847644875777518650496779856531560374099247994360045091413006325760357956333539863600967429025882533154369949663303407224848161551761661319573751411773672475496927108604810795522354655989963765527068478555939469974047640762176529782435747756088402522841562656515773019210283533005745540257490407924736709313920473979065070143706659979417978023239887593404050108544910883711469299674549732387702309799847167664677410514321660069917209846839545689195176322150933647887505243667924881007769325611190731966705412009755844457404767340583869929503813980254156889700186470899315913526922202341943511432585981748805047479820619352517173540907526447791965536701806445695599245470042148353308260511589181171107506892687501062430610082236601601252240813035661981485346743009090790918377790075479138700377916343238470052384594444475066418342627107196679929539465409136297571213847817475977381419687596630102275384124928826661998976221247400566175734524779841577358278904758272367358640055170452410110175074042006713906478352643414327735264672258614488464957387941494862695643819224648146791936448181125783253230049807933221676891814163406550567286565746361501183758906476335127163686053162883997139594307831260213735844195510648553339173675132788792295372588606913478207085101672520428722343581053525028220782911073949493732067193992256589661891992348406397201588008820202601450558313182171095162843062292303812028280347948437106240492121070713990856707964816998673138394000223536950447810169073558726040530515559733689142975288537131855364749787142107361811307807123607923111084092800365846920269618236982654927105150685383176076216246546254860811767850907367883281618474784202687045963520722458269395762437022204854594086225832559813187138768570759730283462874922151135032874783556330478847851196627702241785250555029373056347601530081866463186917371863340014950889467355813231280909907620036424983757802564007320599727614010390227223090135665679614232012500702906808115193603402075812249338306820870856206924925217466408594294527176160576505575217180242969280697306766281066978262726630744148014547366591564284538565192866480848019659960964285298015646783835792965147710373975067541433477894881306596545519289961933682869030960131824775478720399254925495626482264566329655131699780908141692987632478400961939141745637942245410514476432307634364273697155869878055991289291820377336009344755559226868562539602556407245476957451205396479665519925256506543387295362307734068319450859322784741609960577669137430891988581548114115664238590399627440993229860756384032648603499323672184680293517751021325534510435528953146188440692856642284627446968465384180597585232461101061575309637729237838183118212234775309195990141174475786062902205873020265205170256339223328281797963014674612867330513397999435835227058411792374332108915710665313744929083286198994253611305187517530528911290035487644472572827990972942569420345511114639246449634195507049814619381241212928840900925113318797659383824044020835906114766918284760894381985055526177574700344181307352443308664484410224285627322280442524134760327391200518840120467230063860994956490495320600349398198813231138338814490840701635880936036418509994582572037726060736224805774184742145823411972702572775900959521587877136170903432310040496074869116499928214070530613936632973124081553986144266130939815762742457827887810410237120807295971017708973569061199190413723550366736439912604713084749586331732699114732866512010211909573663461369033464281927390120767658293639631263172233524337490654111994345574079400956869410390422523481236230959706715009648002074980132783497478462554928146670357013924868471882766852772976286307144574352752776576613963352214759696613841209410465637192967170048773196463657938522626067259935862094164488535889409681735525138637487663072667392047101414710480897215945308952458540777127726272232668539591377033871868545875935840526378586472900739118172026087233356135365150052021426438035902899558187760817649531261448905100775570851228372570143955198698498540497271004109229753550674471932274572579211839558727761091177377365877761824899039386062817801271515496375311771603024654638725500094308847268112402958323551806135796990435738474717365325144731880079566149297413251990894871857417092572731334420086249896169332314588102199384425386083052942311748430811545120919232540366240446933929946577135476093793379063424893737163456889873022777793574861430427086768813922257636975877702207805207937280118467065294364241954619117328629633064071041360039169054510121554629035816069577998522619365134233932182205154739597208749529213950339419837645449441456639142089046243433144906333412674761630434769759499911532434812670235395928009830865477119654450740170024022769532501403072267359004042602533203287445601110831923467641318393545181155322218635160987656748074730202323126616922286452433227481914835855844841981827734791557494934659067160122914905302671841453521403478974982372709482018506152809435211539310502995426829096578605513613300091874916405046192331984454646170933759622368554541490468979622021035302722863478146065620972290548017427377234712175755762466628089729845957322401875258681551356759519974431796370930295131926947431484381819971976670855176566960588168987404384014850907812488096295960211499156684757861049646646059612457050938408094110770828530331216154673538181011658198498366107391028902169963892600412162238628546813143716749164806897919964445433989540043704110820108182422351090218666440207801539725628433020393171556020266224642559169991985663294769789375983756301710321054150701696329933837261556991284555096120716533878036084220279357654594302773788991999835410951867139300055704401054974763509786486470830597049724282062940898488337756855029545033806553759090568468763742081798989576326813309279392328867437096327915546466815260851270120052607336049907894466862244006686943037275175676720732480657955893819934135396840518737540393800318654793262732919375387165826138324885364155311916279251486295060022437617501703388821024520759398142467797239203154975839673030271614441659445211877535185507445258786674238095844542743730830746209639780259867616268559712500423586051458107343620959065263215220747957494226453159385544454037698962168584364610620436455937807039616345540599424203286275988046104090013102308445602821415351366335023323120256512567871117780269698989907067718135906305008758394707125055693826799403269510004621091711836093709500542454749921369842343932276156071378730931048925997239492205258816390631292112004927001323191428414268097942648073954882417807486478414355956268410732364783995482940992661899113281518729552271342370735343762966754520670900886630230266885504825212209298270764355650417285772279811231488346968714459124885218764253461887103870363169417886228401960601605314686005100964942554785965747853884734725171080654977106620082194737873497097596295388341749050560973242297106043444560456745093415575412014573935421227945332006332917516839203889374604583021769571269835335953617523431465373234609773305660612504378171693082616872082607140217351670272801927195582996666358777193296842713072465979598299297355419568518062283212722597121281558165924055305010781374820162168829993008050168091110010741662620066113320762727411918033806069996457157633166646594344163493102779666505346466700237513523053368969311591221310693022953025724634439563757350895297983689962602684026037919753986298558382592553284763635921448491609872540572478580489184487276560340984967566235777052772746359989276631652918930441858100276515982303595354464825800147366579198683998432158350565304420864597901220550908242927899461556553530691747729701753283194873320737768638568572122262645592364831927827529731706166035904840404686088951722219768315186367309198957911440459117819851989461158635334434063101738997852029740832754742128937819573946889398246775211505784087030064185432991676046081612323681117283959578043283722688539078827566264878104979044898896186697452108990679517337850955456065629139313627674589580942634208286024295187629870277026619634107087370543629847131357341184134997032740536309543058534470212562936473944519850561854670857295788108083522232284913064586833050226857782403107579717786943162957693861450153949645046951401600414777070737003233424214319268810915683464472665800291139601933958911102972159709495297090087994886827704371867138525491937354373945855915494357581932233812466794471037324856191517766972793886942916340231016558558123655097479993147487646257749734815177377960774254940622481300234833666248296031089180976796658748148681656765139097968313630563727019976925579035034770095763554708068847177555664896560235950488187858102144287957310528356011308822356422008264266805564219052309761787633317322873646233851106703380131384123862456234174984381368160565377096792785053605249870114505082299115627309864614145900735103994317256788613219763961725682055377826926302947103977837676585683314010293508507156880750850178760013397893025611659478760923894934800348728920315228498626341466017913146276074106570897289337178791666478506305238736060910472410028608919729792430729215944619186698559833527675328790255426753319766989867317191644343824184814729028184869705317571626741086948625695033615052392660808747747938446822625623423112349503100482568425692447413217125196133512414424397418205251970918640691933550425195299076428838320751291504543436260264534266053198483970904012777224941427271720737551727333577624142845243397154779637890272207053315825978971391742546244087863143428712724297683199924687207100810919965130944870866193037861971916359540573663859930426615990486028125817452832916124212424224918567054871736114037118667954006021764454727213824521291682557969438857738642068997331589187764300452461932517547649224137592459931395692905915595595915312935970477446029578077231962631372710478126698079586181736679103256954589538759268003558186742256779831127973103496342186040079129575156527345461678285139851044428780831113112722469768078793648373266774736657557696208141576567222035036867605203310283006833984860337236188517543606120735288004646661668967122792152409054517550591481095574372048060881249278974923039463066696240736458965944208884937594581766996027339829290992498447897529266710508362270990718294104459099114877910949883386515829710503659212165192559013073278309260661882195187038394718667828012976953507883597481031907923730224994140842186734898983735927490997117813375472867564177746319230878828524249097840691983543226778502562057757647933902390909285686590823300012736563403339140737627586463389959400493336797339376092108040705955189378635251891189112472758065047995298305742925991479230292762146026082514534380738798954875657741721305197836503172534973417875614473270022954125795170663639522059838009538118662979941470047110980413566880458430572887067087394040778452562906681854500029673256888608239922843717526010209905461152084401083661613294395657133505825127183379707318674539424119740986947292853021480463067212835269098543755869989108637870166772356946031329896684574640049684381190700274144727648589108321405665955441328158089578869806930590827192868713907956851119343057887394059232202239700203807489776173224615055199933312806130846999491939406452974337543784088901554738744816987602984923654327626021634846975598519373785330668125967922320439190895035957267594144746609751669810426570763786030023500325302225598201225281304337659616617764728612821647782273508522236864573249819332281340559422231738064555140164076274082920131309413431284199348498567005004329891051282952210750607923123919906024026224822359329104524787513058575246152390828200892446817621056583866346739869640614917580503513661766614057020223131501902749256603053700070554908827743617016689234177589529139468861276499994355041820464656596075919932964411821259367467029786854209884641156209783392427672771833100315868910557053725159128138081988453847828866602672117933337847447949469665020961050289774922462873020562191313776243116576251287888542119811143501839995992221060762533082291810642280698505794620203476337215643519393506248953186405777294116324480232652280584240388850919853687705732979023700529678791434143958849903740029461467058370557053115828010140155015837177156817963250527415092284323237763077771665431827047326759449067741252305110584129260775926203240085346442758944738513297709320948808223002512603562198510907742341637006031814359773759330779283379438468475293932622845780676442277110008502453961819611997153288834325597425987594226063983924876098247743733904156644771593274263869659446096133907393722841257660468119614682778130857582129381500798475475226432702190330484865295766331791866661611652366892495071545228672123743300560932798529400687539124379360754222060870719052819913684620747298940380521220476403309675835338264460254872065303116323149113247665277969841521587789359005296930042434973049037108895408497066245887785420836355993785530352331639086840967350816406810063910693091994864597750029242772656593243955297166410981031393357574295899133754738365954179629696279817259795456212817859290992801234113927852390329687239629830072983537156976421952533543396654954723151765549728587143075688236041322332692596338950793807284045966340188969203307106301056418679980764761663220688033173463759987649500757088243868240124862663635498051365413775416799709997345220300572667397626893006093641668485651071162869253625276632270729805606042847776804727036801223959333820866410110596822825454379718488380184743003681807799552176907083177392637940346645342355782157376061600695059591517581585712674450269795071464590682430756577862030092316019550335355585015174727208736652199947535818183752210274654570959672108086180505282954724841158017338892956487420239376843766512083173248237361747148580936227169822615677590825110738425774841667914128641414946035924818606705242759112773312927071436719231886601442225918829085889120107955741616001466368980935746824754126458384634057401074738619696677868395638782988416274745021722200891282879874671246514445826855379650438988280460787996413793762325229379879908219968308770272506936655737051784018439907394136033077793551360953140430673233414400300681464176836089428664136668966015494264651493810358517700893608528521252498778240924932655262268149807400259330515057197694745307850342020545881712742257022841567920113971548922049718656239739664605592596439105601743633521906781298627014714424089359551426597288913839583721087582330346072490416753587628188724804386650348285053340762964018062549353233470471581494778509069234098194312882314680816090462616393016589481744111276102660621624306324514144518074333464052621501573101754356164287911677846630929148062291476234891322594984316321005707543459265331812759462586675078379803871833779460623324436550306862307205626454941530150448784906541750118239610811935963139538269751825043459659767222350480996577434797213551508132097814456955023154231859483901983514861336980331575352539418057247232775454094101206002325817506533794298075175347075573654453985126668440994687274486350036872674249507801987864782846506762075190430418815367119111545428221102208173681069659086562240410460393388646337039706260714183725792920098108122816736501999888548495432061059592420611390207415132938774424122184745118023923547817484174485347369718242928177820259473607312894429221007411352443869459694298757349782284287005305285052183683986179140051340421813248268357218192306744210249106385210139890345643620106161121424094949302925461626406512200665354874261866052620651634965619765676045797148006754798816054020598853911859500937308745018907640285847035605665313786062235301632127105241074492919439771757742516289243843354683298209861893414944111537629701396931511532325214166015881582455866614395872613448185027029251621250460706483806777038660974737968009340779804248018380850610230896604629435125760375021858589832719226837069954998606572129926941247484929999011154847936073326875784514916909847165723029722325506033765443683172625563560610568744629145693526273908545484035630223894086193509286574669252926158604969996771481550489027946703026837232956618394846534874677138478714348748071011224609080734156029586762022725924058026641859347500347842417292415934933555723318102627213416288499470533551265257922438332841893448223605547283563405566764075616147164981313170658867093317630711843314157335125453272393903189872271609045286808095331780572512263601494207698662926193628647316153094112324104763498739797972621913347498853858132417879176072521782447312434695352695912002363637655568315304934401248160286924704492558927542528643854305628160365740071768100555591052062928444125276210626423195464640961109655388454831597157037048008934729760504614793704912512912206097612006654660589605575562996504426849181186985200027259323320311130037848721353280011743375190383805878702939791636872222378298065081641297404499980215812809587116003955867667489478083027432840491912649111091685761573500471528298983386922386593192748635884316753032252801309323935511255884966730755675706063369117589344348371548745674162728796613021998519025594385866224560131000250584894726739022271126321128647467650508796134352450125001207150041032063176461964826445568073811063620658936961296976507904001182746231961514073115135594574115227314442207809476526711518439639183910101306855431921256854282104248616923420750780760342844444437625393915241096912379556688546790239385290033361827112339628889333896072235327944682879207903751779274657701655497280386064003548137776142628308596582170506656420333822110050098396384389191845694129885851236663716482566409172754659781834460587306303078609305480630078757550274082040846456458136340534623583247244131635163396398019055407502031283642642751840700427733335649677077498693563787954109409904691057439460597064169497187622337228744284143402219381666985366491335586956764529439471367720276291688064299099401658548474426887568558132105929347067504128177572881740177485704259627605444180222781925260396076190875675715161032253674188497135977720709256210854088359986647350272093605873001847010591161186602433831340518104493082474208941398245988598669561771539187556119249790500663594390720308992914780318817574221099430194403508353755537961837992342194673666915459532957413022958309001363841270917203214211186950336006596554267328695149969459999576556323829489376772164775401336505895787478512844169327530278665411870410159335714491591339542277555171071235151850708773276850522211650581980213779811936812932695199969556652381397460183142223267237465585043653878283710900863648339252765042602338455962321484518379650601168635458918467169715220264663553372329780059937866907646839176445695801435682610307379453282532953041792405497753018769037822361524982107748356036408959974903607203662048462656191247247976544997263825124057466646432955417995059780193754069815934852427726951692618365565767675144428252251004345387272227454838779044043368213162889075795256854999145443572837102940823865711305197911893567790515758446603555898319577758481521266923088474830719996278317062318045786053510840091260277359962953361126444250540007606431717696264885598528074425543827589248581321898596836708519335548591416212525706748138244015462994105412382292965532179268179161479684766391436132573687161887770051734380954501251624930162694084809070960106025390399820319938843945825082116590360246520341713985979477311225966275183053188517666170223493059085098692027354228689658225041159875247113005653908074982310177392157524501709037174353883302636749716069938866953879383354967238833419572977050751699670770290088389841412999016200979882652697495787726100286761604366398088328906978300987409276499058709715597717873271926866587836659369407223208214304453242780606414568771925214530490168056317521523538452254256643836054108289414142270167166641657742557833787475661700776892898189735800304436690738811422046059085882568936269512825158192481386950120235508865939158588908087162386834017836651230414951013639659218476094940605330850115444348060530954961260468230269843487012571877781726961660533488902796370461384506834249360078441464144620271701415230579832423090063372973867945994961288533477300949579810949473533014989940349517013850025781625968070910205970104502728240620293786337076048932245984392086196144343599894391203120188124648969547362878092348331853858553876846289598196015962499995260877959789553155508699769055923647038190264358106957765812977395613406688232202700784197177340636412611592199734171258806739529836986428423086141177589580259743289073413941234425926583293141960967523380415688699660573552460383955839378618601014667618086677343499015773509996556996622172523534644835756250429168600035524822944630479734918163306706214515951864649302988349582686677013542334450297301492646011330913051873285946346004410406675042847591955623902741193428284350567686811954839030315579295523318265679904419549182738558296363411727287073387752935817329999267487526020287795510927199872858904699246431648598034116195580174675696265620081635618335442488050800786036596623537780940674651553278339182154258320609913905636141151162568529896818003633741966392341721970842987781501106419509960566750460701077299925809646164440814504665141416277151723288872958714663168548232608409401892940208178591463111981737819180352981615686725439271226363168912637771762771686685673235516564470420050396814852717237579052385331143453451563383584565230945961082411664557008022093648172311706660631122077696185109909002335671439837810596952926552575439463124064820603136783920325342977930425638055998266614755090098188918936269106513271045509093840448893297147983849576628243306050724626716164484046463070269850176303619945657781254800514186377570177335554730140690156861479406277281990134099629573327748851264808188289002807123386112738287679812058635492645595037865856844266814160813650407518343079067401123913864152227525310941434639794379617009811852235924647084172283982447097883654043836639809837756456257905643319256969551856203411379619761668048513396155271905935623438841600983602149184577009321093765512416520844444686839862661769587856008997336938457655472289777913984412308786314203715246622058215117197210723987612304790936776552202510035795151392017711486198573920635687569191740113114024098341326471492520078005847050571198685803830357640016431376041149239120441912744878275752242166121946887087061164443983490604446437856769920941937836000068700174221920332362009029995891396241754061781717901634203973991356997070271580420933446377853611869874182013424889625584703740979879819132473417866271452948040157661807881037160284326534607738924209310418413485869417879895498555335770385773133322248212601358991622494969383199778257079635631283525803930661185504417949030356752079446900150343755385178851579535415095983028971668525707503248380861188807448786302136188271452872553880021950189293044952149953966126882707851763132987763253718296881561574173070882580861053123238542859641458988041686897632167111040504422210836262687141132608412948349027734739748737116964524700126819440041732250430926970634691335241135500087140100211570389542617337834206475468406265454661535094221805388792129443282120349989153730005384601956254934104743632888892400679602456666632304968965591532447899207575589072134721658224010080792409661056703126447146914684222799820000934869267688782788482144055552978559190455950986764042037039654683830420590012427003989455966115445571246575652225819031246148673456867069200357104724462108878642677655230737797892215240425566551597288085398826644974490418396333007002719054583493810749760498341919062374716711805663554448474829319457687134947470460648746714531435543966192984901969143035841958242494220727368009634874894739888732110132275288737019065259880500768485634162258002835414678785820308841930919444281632263556456865294872983878693251281165508767839341881517446865873268505888378652784265140869942550783365063522170904192119832313251724230263752187128428459385754797224631614646402594011538169223132203529171951175412944955157559491647740383416643203658669171763190141856082335822440158753535424089725156847483968751617964044683577398561596654690687684599799718998818347802603261822771298221877967953559722401568379022847814390118866730765242444901259131853675348012066757250865030060492813482972959842279595655865451970636230433356250913229665492731000938046540798563796758220614306653778039794791298532484326630995991293775956600420653314711965729224821051432171208041776467718975677637158532208247132353442945795834604019811277560767898131930859196818906583947153853014143703239506183393492715924158421425727369428030506881383756325492311823956521237425140339917384599290412033413556179726317012919024460575359280639288206347960987611060094918000842949726639174282160721416425175482434078961794457279586584601114581975007138675442163358349460238567847929324929681210946859031367219511280292290616246788382649801461659856811185584631281826372047855183467123920568586560022585872890622578838791050581830075002087897801519673193013306369328054687754761900321316465417018196770517710407153834773766461754089054335065891857552964460265011099782149545324383161874619311801316457217711668738669866479202656491492022497434543837434085242332455771020825951158607870770190514134512271405652018047227916616196704375643538123879195367606782793706857728780593702560600754885275400925345759881288107507596355383547758951709938830163537907889500487524921499650938060761512190103145359366423448955839013663805662350929899317964876225122207812263236861061446345924250521077670503506089717431857199117016643357002992613812680045581216658874183967654958556680150643779717610588344909345155802797271376154622367163316712725267746323996209781634110363690017910626548391070322332199672775586196028821428698772106598057490435848961238819355767160785477739830354878144246858842504333939938152506742866101995725030177838183013534670717458928623367459502477066701192779058503113090852799765639392300017364017222777698162512605699277180416122593920544430782443665305437320393276343032820822448810250672627398429467717370317438381399818314576344437302381128346312482067029928977151229358525858002321473272511561844481683522523686405007730572238760548742372448742633448196887694172414905443089325621328948444428772746187726515900476668729961509878156184757400330224898664859455166833310307151721203068003142146004980152012300391064010855674415882048477303596648064864905769435781675362659748336221496887322236348319866630125872398231094499456240756683621890049960021220078686672090706811828199559450152296942750579234276409927809849349213472825169966097354572344967794283990397294253983694986681159279920782332037873752021740152748215616461180706151290944616569334479822761726349513267956229908031797564468622667058010053421456856711302131676173530864149780135832027128745779170699620373427966131872302165174378109887749254144812262550282551988040716762443992914215933053725674884370204546562032222607194118050418485628027909381367214499309801139948178028545731343672172740483502601781949303459129722169293990951315887848600790220760773637433791985462404825473154008295083535839178718115652657555595596951644464373320739316661779802729661792247816490862809435254632228724118020892801356704550831125307854488704875471129197733814357339162670092274174547522282243265255502019478693105069568948619250028742645618113936719639950617352658140603024219836705154282192552139537874544345685960604343658984085957451673369990460040292581019958761445528269947848895478003614478559373433045470758626426103272802027020054836310781281781633029230669453505466185196953895445278892433782763090477465613095860524616051211520094066353523058846851811597006120249990952927303775367409746412958987707497349208339730250558232056531374247875774628987493280708694449145253917820972094125830878338951618793826271946108090461272082106873817087636275730241945338742998898785761263318422903019266513804904833089702465565862869353914228496008292792108457930338662834012568877896140814238461676715595432127752453952156953540456845186266119870431967686154766607308946808791168333473789588687862944016628455616903745014884134435551322606316177605481648361593742223366021762561185435796637855976842995590045727072025457669505527238018076687548682123583523384944816258314776050657766943293984151337650312954890673928883163561528948882809844014961782242893880033142167359887060875221096713520191151010101158786979394489002656105068582000339717704979469808760597321370658227814570812567629329513880719847108199672783763774970645153243792613099410117038767347397923166521870899957724618516884327725154914950310457658386984566499045836831926441497917770093448712013663683006050311941923692538476545046431255912724197275631573909658875999395052254632334736620030732526274772238327746643915833334998569922359970079871623784849360823371351944957919765254715594810923501296801656986900397646948369203200255577749049055260873171274879254551949815869403616145847738391169530323289334636576963799671542620469761227065723144110403494667266735349485719800729216663902311075312267163510531303208134258350232847097508139884375524581649300882930132295343105121667813152357526759977411312984330240903718060324364961319823204596509436221594804155899483587513819127771832894722380974164522171839257077331259978062338408399917109446207704915612124857903812265197542037769091981125067398991671125973331911490000465465045528250928287859877501732924739364617661805319335738437930693721382722848720672363390138449852687054883533417247368084794020959834658246049394265824400084130098232758544998010859811889617235618582703463787180620047460674690387705542541522497065581849504352409799628702402032082127454390131628867587658988094711933829736473438946940709931572645226027589529423114594233161165485627193010693229096525601840755457766405334065570457327176960120779326944678370901497167858460867482805716117522774451883342711898573252132585810592072367683037420626911666816367031373320436437337734554960387224634611698870400222054310495030928520190421087188647318566798243333371514527951896789313448082244897094261633255527055781569300017980622717007040061825869623128352391060353991993029060412663172217165875668553597141230190353628793773905031080586847480067467855798179125124564667661680928403166604333422986108467540471773355856336076671030165298686426215297152045478759815037135968718314359822012752764679202374646096244601135305750380893774349980077158569999099738919751685884188384559752348092827605935339101977939492378579241400086692374645082697956283381554712996903517391813093140395503533537204244140451565425708091563269523073908761608327350644806948098141896979520624578649368167322036810169021076266116930659574896105854231459436501684143416709283678299237455902497343443969431250729858012648204491227126540737077737970294747248439012342844645980119833936222539957437834419559964675818526331669688018248750338259962756168986220272914266610463402568275224679160064142100785814028446980653100905088147531981978067276549931280541413637395422549599763172182165796237532080791470401491228849805348653561042197835088110963188342731383122685429834794477626607615407626504298881450670202782149254856642873812032361638876334572841765277611177126894592699284210259526900716993717233332389818029514255543989517514595411223767085711570760836369732263182110410836189046769290549816923480244574021206235169595226464784439985794894026755371258832577346388898948385122493470840331114579901861357145252502955128042864757762484387340931954449784418376505477988302729955074496578773457629576224507122589717165593069427069058048614903704294379873223008674823485524073035004013202685963975958256595984404460256796435050739227630541163039576451574269453502871331336193695688528218449690672373092815335684131600198587919289687269381356002577787140222177060662212464414194571436192101970850182971914397674778186428669529228036617169067584125422730191402145232119950808383826942216230524807168024107419478950399605285544578268033813587934153914550597223348680494039587100569452901097419370217155656773065642470730311344805299274952519862451404608511320794225351774492763142261423137942348403859976330243690770069473951127296613158691700593861534998244351698343890067590361921692922174820333630601307381082116316452223492709716712918459932230970355682559833037614733533413930635595059580221112530264818014185004367674182721757175277551890447696468926658285894488176835402346870180009755518809810520242698686571006586818535208807096882620338603442011160138526730389412658005886531444799407927454742696882071000673527427063773460611901696615988505424724613296473282719978268809947871661683146065074091070632156606642593814161593969256806709657894481597548268498993408733184380995222973368563220182375989972744827761358738921506126532521911156365534601960769853583003680474733567037321057931217005913963389434035684360878471084820018912145040574507278836713590860361330919594951954657460787112464409605664798160113005596554758767044247131425038395108696313901576534644644626754951906916092140329448157837876113883328557728944207066209270059290662677220596580304131118779652313728181101525613049270668923746609121853269441864777059609850316358695357862905296138214526955980086464821893372837320763353753058784779531501760724362150328337126691337806879221845176722343285510258611043862091430635610700311592335563070542396391655406288650658118917112147032085377588327637307661388109145263883546973656016678207306518832487679100873389989374524466801062559533204241006895367736110808980814896478013265099597770332286380549674240067892743084227314171141857127338474041518733792314168883219684136956212294137914383709986807840437658223684592010117282026835586393979634339683831311026916275738893801806346156507249876742902978376434057876574275821341162311305819335019229389968668920927666052457670366587664730085449248940383241579049116433719089393137153592487253995350957630786261952612510900488927947545615347566279915320359354544497751488908293541363997417044219710836446160605792838560615678577442208148803731162350892516786820407780826160795467091665382353947360541009596263899461782838984180691222027007708050323379018944853315937615652371538482916617836463713534928492647174016082243666289186280345761001943004322021358231273482255755590577682575866624693853145596663869839389810432614972584480465449593983524861779129324760575912040319590216005855683335716011558822546578952023021770376225680611605663331804918851082391394499618174413072887077123819476069818799574221467323340868680897531266648498258859212231752579192392587426145678184791442153558018836621045342786943796086752661596518436976919660457819327079226409256446070670224824675263637872237304890006902272570469281760074909184732484904791091055682704959772872374158930952597870716378302969464582152399701620941248543668577668929934325730706845806521190090231064273249041279066345376267519103386765521273355838160255470949239335031873470208619501222868771717178235857918442556570592027300831387993791202618990912026714716260032479900135384761559802190164860730963712644359381240966322205214837056639445584569432770526460597014341810417149440287795270403542506339789634439541320053532368705485994434305594555564498786503783587908572542371017565440232034571252053887574008116869100040789069705531365950837180627442564704399831460055316497351714628745570746553361535750565519537328445648555511097752405124754620114220574324035818690609370762582441143470011398990534600364982250618346738824827680914292750159227628114314134972003525028975148499988284921476475092481189712006788086101316920743651275861338979891293423550973855708129334380723248791966375573438843450395593148494595738000388131161416773920620114812435311382928212229624997044719189589706982435980906692871648098711742273095144463051930153902422411291539796258937599205109346037133692854887026127824910946356659592944734235577104333074582887394126742447826285397421814440401425430445196186716713180816570330031146851317624476365296942213485720440209237826412483901335772825169987461142913992952413235937659848028027294059818295856465857830205304956802732759909253696165731229442016742511369646868320110892276399632994061798046523033473351407798412261613012430428098307457581109046420210284788107569182627281879801126010660448366305316080085892665779705672015277774735119757657363143568989445847774826377894732288872736273940500808489858304721841536942402068395283382959851023978452759909515714124946371735899909842668332596362007135505226550438349483312707705451266817892812956292356180727769572095719377462809085029763144298136600406586377211673241032671252496212979522136047715409062690946901079244923254222420455996521468809610801363308558905397916018770663954666298932539981250129132848062636535453827823290538552370446373479900345143846012457885937431211035277617847795739444298446622589289499353933171989393932092441562500433170310950422549703964207141874837205436669462827079524760409271167820150691740420615041467065795001092599393919755323119825495534324455508399513258037336018125235807273538643407151554372537518185557335614973724648374697393740004082406010998556582185341551997515743138492622384021723560969813467154623765359137858523548239177419088848116188291839580606769585164126699866452398291642414933304061057129560799140646693913621426550747026965553650094810679468693556397352786395837666068183673595785309685347219481013012523331891560077727880324855278777295439613286521605981937883439009167352090235892006174347304302660856616741778345550004835527406785715000473707441313829420963569677345269924000359704274979508289996862562662747710348322440415797089225978586491634003116046682035163766954917464492414453822069412591167044717287994570640459943704418562945403777598239250061285935403840463471668650347581443251483821632848726747756022448568799366648068051718189748322188705198553517470887547974416168627955472829169111166808818760202011273853140732315545989487407769066803564612666769279143701705222163784798779506745184656217926509582460472351237930161176247257311839055844236535017500759029963907117062461749653670644182331284689853808976680686175319462906721051549749083257416042972883763175574880695753211646383620376797106694182719770225542482587474191957571105241692760093406216688154207076130669022327154805317138958342511089811140716477501196416835962741367063457862672190398182047684553067484365756827255847077531103912792624098302625069081370622311939810582250155009253896928285773462924291614060745751850700820964164130092228286199906117242536410996745187270004255461346858495621970024126016655214895591819624360969326167654216383256034599043716394860836224319846147954287786102134607835030664119782549275490063539482921853488461741545549775861269538015355038112737439343960771397170355047358183431906779170284685053614807989996610605787690024160636975550960381754938821964084914315912310834184783374418840657460602253236532202583327279609902686434833128263082076684873333686363825563019929852495355491664190732312986735272789662554278302910271460233096128725507481213012811553482710078906414138778223253040569735232712667955613178443505523890261049541927727988836428548736235685314233586943605473893491598627971080097073963699309073335357696126519905151310367934587843985342249776512553295165068230807706209196759484534969509031298207333270819588235043578656290093673658773931131946740264808455381910200786246441391340216182362695205983444071790479692854221020560254001827079316464140880359419262274899893974824479996047066702896306040138887440489739207554895513475420318800044302487332450570298759677724741901534576763970631930579828969028539608298387606796909874416083402683434655544792988386188635054790678312977246367761776152964930065036604403634209188857639476772604060087292939532624701210482271979327023598635013839890215887841205707972342581753703568137602970241099410960839022998668765633415615731374988243250084705681789527937915047421083422132394647021306276927183072133431029809748505558090730378437638605234537342053490839551754607039379891297887124233278581781741262448741517905096033255829040897318936610464355679156137148450053167934944409289314960960655046383561456711890575174865010132349346583123858172310596395700165424754156882411464798121795514078310702626093513614890399680431545508709354696274984611191442977208865946758297510511274613018342961151775998072387143779916092150017309748570398349661647908872876837006698386684145510474529997934041708536843855449253469178415176436379243545850258958247430184626789364143742061201547502679441716155274835015013086163788748200291470107961243928693247210577144571840044508188192568100724097018544416975297855733111424500354900423856445975158270207315532803374333601713233676461480080242714707941147146993753240940637280407715871896816432461656340409622896574165066243429597427193221178892224411426278032691961822271801916868939422634543677099247998743363399034842920498934445590329777562304796707315457909482422324582238133656195161234289481697474988463868768322408601673830075507609017931415697324509426051183349743772092752854737534889339069016568667413454369431762212939289008111998196403334141588436694721441984365143859460509378082836730980302282972264846186370177851700489840058456302722755463000965195949436010458034140620945717314769318669865883881676451140374618085321999224550245482451931426787676652090879131543332253559831467968044278875046944618186234365493285360426277872199093719472420445337106000290402987451994676598000413062980113324938895006825885611447204094911999180939072778500420716012556940240646462435546091959048065610609283012322608493726974978013719881755335027235897866244614139881220802730273450910080017413983141190400771786786659897245027525906609152709200869979431794512663526686799259514484419864509597570082573836908337758703402361174735315985036121038802917472570527652215669484276565104491384834299385646999572648969809519498910330322267887646514508589732222781865398568168663857102829862285528791703142626512800662482647024495287329799601520332345533068057361187604822466552391846580169655827968479258965985300319421586078082361703556565400256846303708787577736855411461259671392673416847017648092581294613394461728687580667623836089677366446351115524695072482237395272418998004809117263453369696573931517115891568923250157605103353411681755364424266752362829076779859667314205445748226579315601522581108615922060021945687229055641622067936593036312166499495378744505960513023510202251106198826229288747005761247946702452458850619159066787031756658584479631295596746969948240563244897841177319987397936079531158880621722899120783449359670834048110954766616806403571699208636690426804760198555210333570976415854192062310412737368112536882351852253616492276539068936779794935112878178674970711006426139643928221640374509077262344012431292839261553437703747352436863785979769773280723950358156267490208805934911404866935706683862881095456353524066624055493693995064599450456827049354366614811419231444362873030121795700498863448222987822500120999840181579204317093988223245411487513059363822478184637871400306933952616801707273678253849724788035383975717116760812794978512377446104709273857673512744317255327428194925948587960390840196804003163922695530257142172505294296875136396995721688311170017378532303367373620366383767944430266570015184025468335023208286858709925926726664336268548156698499651477184880455888585558871993301976949021958633697867969009639471114187481256175062231851679816327664555831917060695214970992940528098864512753757311066310171590945113362214147003625067606667000468125489241360195420080813196005529612399634514385575168814531780615224214638404873821127026004702025741915449392369891892657937200734074379356350898690454932443656105017835415039632473482147152748282241481062677690669139686151516834081400861466959043959191599831465170849729642136396660363847480884438742474594866495679080952304661119747272823492879896311631032007257609810025900417391754928122985706065991220649847044328230748216632993865363851848197766109679943007329031663661343530117296047573388599483350003712370297959600690684816216727435977103730305949092456548994868065016236045671892032762020732992723875573038050444131594102333329403441561069621454919222429434026930073076807686726467856322228249812925464009805227367582480305424124897374405595317344955075603355059439408829780485230183797121687729518759904277638797630297934086557022274580475036477459584854289452996044774622881434763848904064155708276763223948340804227637815509087780933644931759703439676110967240100628490322020860400846831913750746608665030479394207391984746898387522499084809146227335118514929828764372276062514928127889992278476702503116946306929822315138711170347166778758425564617246005477327117957358789778571447525325770931042490569587907077269991305102763185817860930874654071002879339890925150434878544259478832392280555365381785846613696702729994109564328635037031904108713278381363772907026195186579708175003714452910827338894577427078736120930335032287345596022992994472075170727077047279855946711731369369427866913652951035380119901055453140443810696630026636742445341633373897829543151602732588112261447825851975446492933275060921824072253686914155629733076249060266342582990758563314540405530955128890014993258928923906819950965480848117658676468188463564148100127860472814603719801131998141808954396560949555272991310168170363824083154947916464270709355996636492189209648145763914487284557231558133021406062210835128502201340884961132021003966915573104453909533217824334250245555108664983998612523996025779311107545768150822295838269046001758230396261462038529489230543807462320517023924575603298704236181272519992505933292565384316047324939254512367585582743921701242416659015453427723297355410205241540437780703362175382648444528869855523869052951959160391881580259777580016977736179673019867006573613825216423944392080998333908182135267277578369060841408186026478151824272154424878229652964060276797197941768264888487581148476703710119828223724035607996151583566400572696303455173225499804856992949218230181344556189071756614678049952802873953174686921326290053422471352327558898694436745008903781148924295132025649582487285987514434226272597691785415658255471442002328374395496400032375904185138834701878287677865344446180116137405254165661424427629426379618672011339910896946118062283225255818575987366590451673931623155483306324081207530446832568143032645013664222547604354853717664359847147024310815643827879486642877386108439925504796045170008527624646406214381130229264568636581587062003787589785768463147532616591281620034045041312353419137600731900918372677842652850923754425958232811488330016631709462017827990167529845700197290165569453792288142308127497843904949793904036988491738687616494349345628833978228805149100592398795321046485807631503916859632649018160140745752816966235151954836945315873503490800683310857834579220883798765271883686287313048238002703793784299250324223748854051086161146771357432838719720551000770582679531670893613944446218939972243189853936438592008091629434489702046042457718174155873192060837191349168171354802156716713325881049056123670140265063837380416733197114642785789301429596578413978630974741777819999346405564087853578634343504374318408337277429684809739141199268926261383023601270758611329448033349184613133528074047015063363576777588910904984220079140677582740948065320899688086011370427263713893913588351508402813670199188292087688964063483270087990421129725248944284218032429177701293966919505531446516582159469429820907384566446072525553554794316329227455590016914278432005079572637777910580311684322444663320556288292456575544882651990982482312747715979731414192238871582199950096634104927918216496498685796259341798661629893785440194043272292448244337245998998283518531913466551202441604971468890173165780651128426791583599101323141250020961869823105166604646608562396746520969769924462507447209441781133404811920554619445319114287437209922709575288755976341168815318293667257409583687226263577000847762789121797182393578920509131373258046562621822028466792579538788526615709543251205952408498421268528138767836264302698724686905463989769107125475732154854253105252991252285168478089264932416568970287581382513651792442789007055679363995634981516836289479217619315905670502244912848580497773717106571198460110472294793289427622211724793839176986736287253971345282247457711043221652282266169179180732628583762231958345228062963555746568845570857987847834974700948550961072518186841228327972523758363704696153999539097973497353241457451878853410152714447127161931406855655952677087470429531043501346996837356451920189213126729061271230981029378994817738536793419448486574853806178704119972548410110491191696651891009074343907424966812146506175939932504266200359483598416501045477877198498455255608407969294897017532159611721589911354927865750720239723576254819274794063205870139678290599854349577475649756818897181625735517716897830942387049792010120533129300831851699216200771144607341178776808606794378019852814974847730379371978042489011730851266633983550654733418249565456233764955675174345983906880681241737805245679684194205581319408758877014489684713792679337266254930953684523121058780520225337140672651739410742333898484160632466941569185782763756160784614235717911360791070265894078110236223166572409581980830338970586921170386897117697370480733210906193738443231176928100125098134673240763544142935199682917688838155456134430338782630121553490784977568106761094360512837231456617906411850021721102489471461967033215128851645275862230631929631873824722060161182426707828580417984596576673601016412303820476305066598884013486664082292315196889908870550604468349833595775250284394795791665369392589325765820086339145664830846946667021483587174391097754947653825652005400071743986195503372228828762197813501536972188979685069867906913402696245385992216997038467834096641089023444924430610014102245046189092332720723084397212823465578109380640992774043453322370776956674295437142967762490489271060640050128899254484371550257052316841577432010928682440559388080184447158875157233339213487893893403647706137198700845267558312200993235226372268968329106116965666193531844765185377743903000830472103518480991843131757144797864432751541549946581016470777696329249940785362941485811431278796841892481538871752604790855082388882718387766514475599892856049324490596339148610225814737701451407352280050031112256662686057491189362659912152937133037428893868061501090970535200153827995801802842088923282513439031741522580794528734678826331318665486135954396912601366937853316279269119388820952763889126857914584062200371927393882339591180178435969689840780831211971678549103709757692012292085853449852318758590054453478707731217194296469112155245412094007748202817382003137203503565026792391894161113949771734878218790315868144836259392647637492345542020548335996047446655695252013712502782860787060580026824838577011781789698160544779572450693781251526340032535382845026618856345469999670877159604171390827811156591022285739740893034567602691405781479876979211480039948488901052726843928724501115869302375582566928295140638589822197880341003024326284237603983906185798841331666402882862732782362601039706771689857947007457076411873647611179363300563864899200338880125351520026196171330860939463754218415933393242926275589385555401027036622145605061209396087349871454897660572543860786270780915406995589079692445289014744603749536821343142908279233480990590071953454655712361441654899194681261453394499957403356113993651509965074128355393091764535527782944005347542974163474272189956453820114479324853074603710659661342924083301852593691587561537852935595582039711492852760227906027987245019537996869420190215978467126021189620654799943121415840820976848590682515722544546015353770522082082807161311354519439954500559748833210689029236302662073906558965027438904113381166729536811300639787801521709861051345693416225602349590809883460789011020608892429770295809350441149224725577017841824757890770389013332248281796833647878155971534840958660472460476928802102377042823715974948111344709197253212459677070240038024956461163244465554727210578051952468534062997580844563711678264392745328206861367400325497828168426006680086100988085578265003353148260407645028223270451402926849390191981915525646865487290372913253486539570946692183255010869591284586036369141307114346812134135408250237600168948227441872884000442955054135756524280572175736440499568959713489591227914036589932065208820186884944551383593807295937486836118653913177435631101843299708962123934500641324062050636781676310217172132902901867330358122207575257013441118740676585561135931430001120521376053506560598829906023669880620337022939853386651424177972188505528841578382657818731286999992229833079540415181942107248040684052914779403332976719858278628418525440598830334243860391295894099536742881324262227316454789361244868778255955951697930839702937130625787770468265701945305575576968875680084222206840463626334098177235828388173316816886789231404060642494447441036639096221196074888534365678008640091573199651818898738563791251784340597194164230452369312838321396297095859762418116079613125040897224027300824406234831860335345278846930318177592403263594166194284175389404499684234914335241905719731712624570632830196906128774613082470300333837536495228953690657211802035374968448318587319317774740787618624129601149470774009608419503459778277652079294984197192525173994265934493510632140952284614393093728400556131140199050778499420533299943965809728274836473311115373146364980126351788652627123806986805153576714650147992140990410491879836297308023732813330007243399459923604174736035422256151552022183141181911267871855010112900086813795490153765614303868660089671743412548914325245004898411225366815468331775263230199578698500370071369045653695874640806105010401596222384109972561913136909870772110907278811154032653259637954242440346347710410042894131025749877310960910209153883046403801873867980373464630950910892959733935013092314823086394109733562367652533826347616150625821373805247491442400312171092269712026839315550127038752156762866214976226140148896844170184412325039311756301013443676532178254925324779553516224562149812979108809741546697450359279466966293565342268210657086143459132548219428209274039598746569247353515848389449077817705218722751560459705654653758711316608579464416793702540255520539306014775095682401324561491806303905802253411779940036620598110330119464801445125326574745137851282545733506340129414248775484173292826756522225391153268493104072443214146480810127257339754224697481334354240077821912613701186982859582943832739798116836800920479814374690016750808324840446549656004787875471664238718498135400980152058627016479993054589526110617623378629237992049139201925464860545943347058186638526921272928976701242066147899215796906923034260582922748055074467768758445908187745937770175084398855638950569597269789403262567919149136492184156862299358956699868362415684265963210305011830890151290092020277458499033743142723592549215181865074396744914044637052180038929763530521406681931241480607340211853922642563838418470817643492099896453158399668930989904597622154295631529893340428316135474836421662920841474889908423876190509653464695196510835233479768079180505932065276863141655770814524013851953269339979749435299006670792798664300954925799373448961015056733291497698834721030998397820873736632576429358159732435304499169473998098870084515001565365268992110789285942257229655730511276397287363021274622929588444005074974840018967740336522007202713694930267583763785188633424321841462667363761490322734024660928911908486285237074003120800469678675912745740940764162937838791335311438535621161130127706845380154388884766203976647777301294392708592395657711994150276921081361664301329748413352907673568114376814310243579039644221804196064852328458925928868498205611942947111594461663036764813896347263787985792908510476670983149676170997279040124636363969862058673974333792236966558046967853942163698142467530978306057316222075495017432523594310027438860943526539422050660843541300981515518178040210649639691058699206112406096981320073015773452592699528501801177254801342676916946842735431604485609168755474548577314130586252270708368065474510134158191711264499491647144268316688806574056111001984981608355792561145874460543986886354384388886308240817052426326042427285620280441071946998779260216842208443690104571052926806613885393317792294542410857438426300336720705214809864270840185316492521105010433987214962581609813325276224129971009459598950173426107684280821750502824706676110145543701510559930402025675500273968845914362253249878989446798243966874013996378487108804196339530256440658393194517132113064765922856205018313859959935656589118204940633393406508718107948386295063918770306782201254203159693396407155740535938708531446328314503111207856565513649898394712257468943311927199955498722378517195486697952179629028477724536935664526305521999479826564716663823104866125846054717672031183595892447726292014169089918487704542416536732482580645182540777059450996568392495711689248152401864045878551613933213473701344471241293777064909757864469017147074827384135496690183225244341470353688405922295344230842526739463168660469840683203309916069955228647990897587078438006985266219826069174141555942730308838075355113103600208698209122125569095101994864053616201748932448845730810862592762975600134614967444319646017424262135208050656288454758372863859212859015547831071634489625946504706409038490860203453915904637630488468256488813901281927440547617479513670582289021374300380107451643585512020002769671489650429613653638110172081957518843670474712050753848136386384095873072448981361511616773827801498977122521552194977857428873860634067520703939960912430024728714274367892946695580091225441207412436027192878985044943562548036189308715382462010923458963806412964301768930918825388965423591021151570648457394706213365579928303545182522145999212612855032614500843284211933467647997551515665741190468015098580213954388976812930578946331078687068359460886430517775972208192306529103661554457175421587797178905728937993463909882721628165281908625088949957336179991350097072094831730352207107513670864834542823397329993573994803467122814829558865753311848187303872275972808071519008388698962746771929656021104844867044922911405820894664088194323334527075368244879926766937115664347245418489963284006690478822035321615222474443148526238876093487694823850686161651677327887433980394635318380659183053894451344042930471394952112856605649386189934127102037482605729488792229612933223027333982693430807704585766956038609650978028091319028581292316062832573183597540433496943300695880717784516647006313024179180357919394737038439580086497379626621333920248196341584447945114090544257942241109430327512876012133928850385370414138869846173809629639346546088180598477292538264720394691139037703624203396087048616227491393440457759111430276282750604077093260389309096676167554664096287270136678214304337767462591369073515197965628085100164690074618903274586646799612335374418270098724131052691161620362606118831143890764173357210850805371752950285648901124492283499400959861557919716012948062938563030021656231783969027291283999264305454598995376000479031918850101714756817403290387422420296361989952480231002146912555253111856516801066766232974380804852166407228585198310072693282665794978720421919501529353930984802887319950814339584668700003615594530292724482480272179717785964975593371611363131126443007308246168154525297440175430007517325534530281514733147617533532113887087079890983409085079594472217760898097804712518212258284716341761036178061830872665334817686396674440237507388843364135638033512960329536701973961199451407035073790790635573410422942981170428290766681092254237140590420431588535163869754846334992706206818115077118488248521328310022690223781082987430189483813074592541583943467312320135014649063448353326612415531594886744544799630183735845029739244153520337340420467959543140774977918821606573968892687566133360943472085442642177054059453619631485686769070756847950733016461824058193001541435267349033957527009052140399212447545733643360438981272758350509929850858063980407040303623771322164750943447212642038506332052109271513794988405305566885080930477927447641621797979046537015154456193429969155049377524283461637206421306485585148833621154764814747993465675968941258899982402030078693166047724692430031805482020906765705813181317918511366541948066228692045330286261814724609656998136352912093368163600698528810351766871311648504879290973789122474764588359239341593340277397418924829187978314564205543474202769143844983195476965362053439890599012602629834225002570396126637334437123070495545892441994663323566468985049357011704292580737167099835401745077711721106863832950891121544453628214934518186731258938917142540214847269123967284399421284759732431606987195334361310911269210610286966948722684263973878996098225313335525491550498273113988694286657081231346308266802162925657755304871592240227056202201869264688684361180430849798030905315410238818036042939201080410779260231666062931882162332734621992967913607248070774400144829158840332305812709039960785837792312380873686669119123542258011428765325005820135192483517095773055596979812821822541786852448045966760812434766067494735738382337786452747056213523758966280122856233867818262609371134518871962972484064650331595646571310359403617006023431412268967366547815915890920868638890365588478144343040159226769180818447822608984448567321801009983937127408437983193790019969968610965396453126725395985615488756162348142998610919125028136578764966801729297238804831096666710186883950362949374048249817194234818495005567827135141739673800408256026348199717222298545131159309736197300291656095682470979254634646820482545084101034065436827693245803460352409059422291122966509204276059116828740928723140480586048001168874358935364903961889598657345468882587266863993356613798673186479083054828271511952685539346434719967301237290557179813283305434305819641074381380469692526243124553040273562967571793147833266144187415355115529597440385617408851758613199802803188862529844036266503835540270409845595173313172728656234699533671773814259690084538119490577290349920349380325420796228459368559581032346331615755404801685670171011963525165707566080810905036598924549071379322486610558246727110218977981329688540060064748587266329630331748462027827815172943428116509819472487270040745527560786273415228599258430985426946414811686690438870468033502749433199828864032767398514269646024529169487387027929831716848030043201015724337474429668930360507013485677055586183546992110360793730248405020647183861524382502502365657701635778993230113571840463591717300730796898173369544297007019723675704951369600499000642058052987027790615177001994450588885299608467521058490105811230221161103038482995210528469641661809667468062783415048199533283682488497133573489216254953205093775799777312285330593365331936384824331641918863056248450985554573461686180540571419661957021039958183466495166510782702005496661053854975514343047326852976332978658172245989992998054627017932419662542418953913140393391850265257869729120945645898013387427996939723536183435161953318969718517467147673989468072535814417738969032172840137368397673130526843418110964289049633793780251812990946887028841504779965224204284353141719450622329347935312090598981213577970229920093187111435497012372854955063973316168025849197467706848707522827986036289150539145470606425612384409740779158355245788125831870365365186435467177592980479744185360621422874869572219987183035261738690691775850040582687344458032437740951700508153319098091473282690274392613586469564663928701539493031774762213575111247783095498633668510482041659873556503137744434893967258204950179850937865676523882354621205242818182841228244510869085568489114942887256728212668091789448692523690625487679857575663737102659689233627580476456207772958524802402372385854793472626972765452790012227809842926112995623500552450169918442768974466478570004233839176673276112726417319359200246934877938588702117038909937185600849864124496538425949948546797185318446412311325119393796582410877885645950380477525153856155353962502291561245416776124264710641981948600802191772291096976493355505085160766430439417293468508587779200605066299442444202483474010526380349674039552317047519185853512343258132913054838547374264273262360608557078650876089360021281274547707917083312095071159015168023068863503697311041452727458423737767142171219095012268846327017459187578450060241687173059813221504240283262107057522288286882939965863605458044877646885496322089657338279227272322688784075038135343351369916782851627226886086836626106211240095855933559518660627629595515104153611221363380161531063675987005957653452901016750227160429270587501648809677144837497387843795238517113930858308973772836380462570394361679155275642355300669723278090272196881009469782411297671825155806608040299127233816566231549672440129906106228774998169767175513578835418037688117670322369741861492108832217941316366474026095111508337416102235688177927150842667139824983350188886257722799177007315206149319512760260391500146723170614458569179192163740335543160614593931318856232713896994773989962956217187500412411822081600296360171144468435806824112479601011218185434254997563155745583597715272580932714045439931899147658824787824753797767521738127216141476538775042521296552098773456181012447142272740435242111540205224982909042037653662166246329724661159056094707052599245378083508547064140834343301344596931408575164028409571593616915363572804162261599109675271174905705608658502080532034159739425583374501517721114049721719475684263917369560719242404124428367329791300602907984552512900053886107576982100131049909154088537275668022787065564603456721079503391877779085315801752430831019459707363381059822065382661289138161597234956259173818966234197271637425410543902980265254765594906577653448390702936791818538976427168324968792930345614453600414112051782344724309798133633310183516652191102383085885493480240249211012070114087181363900984483570491519505752066597823145170830215204223455977617473794730822452825843355663942259360408192025811928929497007780616298060117714640030625786180756225928701499861561317957419568806920823093420338402770260850292333194134537823175452874467696900388374808577301678777902007675589983779145092415040993555040018535275882108120108453241994534507640222232056544972479390457231190377527760064522947635881838610773209326132830714564045004160543655356609070190481004322982767993781243090540313143660846389136874967570941063549845443103607936539533712913589737942640738341531954393554726021362413746324670677913739395961976192123664356090966344982886009283096424617623420694704484457445516948163260289983627710197540052063687533455829668298349524471599779188165019175105661269805024357871600403850474467951617790766961827361834121559385504804317656406583963892179407304662407887272526346587827315835388756530867290290250340818262558787646649057867206327632879870435631117020110285152254137857673843331401103269869131803905144629889413603872635083190373848990088456830353908678788437453795973614267005611549531003746527261841006926136098475884032549514422803597432454951922792257691499380711986373261971089477391752901643706566024862708608058354936016579996609498995226038812720704383526730755087924759965911108714929835117948694447737208054462088977145156705191848678362496491852848494763454355612190257906125625430713801738047224978755903514702219946277209863236422363002857786291450124881453183779689857562256896419133272997895565616643326173921546879870632853704194853498421220486559210640879681197574879140873601082903629182362358190858103600596964462957271147593916909583464833095416807824522970981850585122650566023312805320964697613738484544046137716459607927476763206866229573321337806982106871738453545217760374720654279818413650793221499004991966279361073418179518739386682784134530793254290608961873995801302165596727612400481309091015118368802092548477908737836559914085931771776496001759059121165942985906657005425738987368717002686302063049250559078620371703612916404759297252878084895039868710916400163028787884049328502176201206085369542856464404864904079366304730565942362796225273079110207894077240647459777555293897362047739112964878916331352742698924520092672105886384164458891456997809305574585946267187926902988093683787415311985747204965740912335279412918121140621720449810080248381553954198891055228603070452406113768738523426191397622852027913899233897381513406828904344029096190599733449642432565852586790866023535054088697329661557348636436824179515173639999802238663963565510262851642003140289359806166277610686024247046641157686321642322223761732950456482225529956363408340897743219329093449838149971021953980000158819120800722881807704008586548532645310172532835621657523777477889735987513575838483214141987306631781404452579845677877106865983761506026684764684555503764279683626441394514597808836648106764733140620525141573482071279571631526167525364239875565129207762653964680735732440211448253975593790305739896271499034606863129592104949859561927393861413796810250240475484586990965428118893297805216782340955313248118102757527166263029450673638671512857824055400448482819934280786117607176950030393600638115410805686506434123476263552805952687612928041410176768729386712306750523281550969095179420923883406747609393491766546251719454950118281896480362658385453142443327429090408047956794919393743550127669210519627960834947469401032276770637629922487368696829011860495333826825166216481341520337775510370793043628436704132482212303029474673845270958355728830668027505063536253190415971883895412893903504104891001230369499136074610054129907356470327813605587683991783848708784168502008008872131657118208723850916301356247023925909481118244837296850897194005969160868770213684420918365723264411961697747673549806282221862394015516042047717403618802780156645087004459259951232544159664123648080233623946380922708765822137361184656205219202167149963371853589700584000381774742755313282748961209901212778896812374049679131577348640871026027140347937069312465507958384535355758905420726009442091350067877443950019141251194824625510180194460607077604159723315124308439350913375385166020858878114252594083831921754932618688289444547554308588051894395663942324304392118033811148876867776661320008807741821834198217031602961877416122469930713239800686994692144169712982903490304020498302198539510038285566517030572846970044379765704322315327488418925136226564224542509486796515494828111303845596436169929560161617283863573383004529192936983751179262382861672139776234061224180250712353712968921544845545405390133394219283312551888672830792571250474529174316418735130765250512067031692274259966991195882970984699340315787702068611744742766961735742576153665843160813958371155232103095691115049500668628705895008484380228573694688135567699262501041993587818253175248518292103598141953080069100752455521072409696999946094905307949951007648064374395081005144504102401676893813893752936886553290599458881686176841401091283693549864434974169543426433190070625119908852767343183616390363426921381420058279089906255603620103473845016925587093171255795157923715851708246064954169770166471000333511476426623097928060014674021821319142393637649724040092686216096810387353512576595909404361425591302952205342390608646844261966831408697684510452251497120023188969926382149225686262552207786717455607963757692846328929939576054976517314733197235723847297789799369487522331183084124981987890588533618018976577491267389173053046532997026531810603074046704762234580731691368061352920382822834850883193288621533610412953915876144511462321795251997249521987174660990125403674683607060570288261303110453477493853161911707830068750940791967672117878781702392187541656429998516967163194877209742804295396732507288215536612355456361692117030689018073706135108001720986774679313874401911426392079546454801185461430480760832706692257524466643204587959451352026137256213286455889530176696303680769134208028121305382475011428488232589464547856497567817238432723020932437437346240165772573497303333617612280875742323942458656745616964080067905248375223732620277785858437845906353887234141566998956871457242574271932016997382205538370335528870427195930019946063157651294722298386129595493922225787567171934018852127311820938787364505416067624525109427561249112308810165393105401486677874611305340353973187737163965830338518254965336663061835741153846954961231208125515402451348585210439967388172858223342033378804921505955828616047029591863153760601407176955206698649715179381746416156152251223719268798810443720236515966010503175218740629885882829685866709739759791903028290127436750697448873472670434059236464487982185948868869535495724754147537320984156827440466013114318843036995068695354588457859097685108829415234070759583330239903694849957760945572187550768514373744828564104497498420155959035434523123891926478412535187652364320702422476145867184304469727056947223788071165517727849101329256784669189279961596641627437183474936637758960924619395970409224305124910229623292631719655185117907392689574336839165540722494596198098990739793652312089901850698976731370099770757006507044562369901992330628449131116969364036797110848715259452765157582420886503270499622558534179123020993841515337233420230028731636173172845465354210118347855782695418804380184535798907794844142866193681490391084502316096659829522934481778857930726479538202050497413359150276160830131965134719685734788823078758809562251636281411834347968779631751165394379886951652572553253097037698905172474820361965776080066542358606947398066454865007813590992192526435538822392423763032877612088432803038595736157034179896302544963290729025801481625842378080303378453029220074250093918504634627527645931172095448255875676528277043977167840113031607554245522428163866521850830421227886354841746542031863649474991713182664072772631431192520732761054568364667283867401713804810410920903247856031087040884341539938138876739878946406140792896805270895508257804133752850599360856695289416948632190513935616834079286265626657747421112507939604981831349288895875079960824250439973119517660275985517981045413236440314425113530469215139531913492823670373774585023208257208101311082503871681466439382647715746730575335464409540835020166255481110366583486170530427885076589996729331490576521492357454635821409647752941994635726890007195617669868974472931990819435561995135406562943868887143132164606216700052152288730450163115679566991914753034697479007249717902982395706476331600174251210254585534200044313165246899559228450412814589771381178228141818959600915518735235236857827613926993909996393080317668816951576662940703978254723415072719697591381291812680566036440388065722190922575955001433592154572170113638090584354310592181390878944049071447894894814687128750377593739769405586142553709342099064069059717388958434953657147485200335196682548508355053326683375229073678816640508955774772044469925339646080610408473281868007685481557046361328350246295271050266934571116973915089229981309964130840823279947936751101809429998157398198236714304399917743999539947561495081107587464202809615314171791881381485647615919385462038370239900994745048944999040041166805470159142208360702225013708436690099585953793575191749195406664334179273573317935639549967828435258409223450079292526550039809540138576715848956564240822932324390125176907413210743860577812291844081338851995471028383333649353716298259929646760673293575818585110128081229160404964867113640089978326366832055541736690649196635099254496211775232241249835507471195903174600804182214675175391460549106443322219295120839820702603523354366802323630987778012556698783319803034630285059534358999992407366482244548093210294405832987596444017891519471156251765806619923546943941988339263767424080299814222488510737230188445445261505247468321558597890094092794296861519657944034149850703762382387769075742834565763809112199647884264356248053965862480709817007586070507411527959577993679159593064710053158121463926997834154274443613056486921830732409982987126055101934666181703324815242352396969658629968140917581495328657626229484116130219002324511560499467592058283035786231699246143631038961673030703807180711345833312840370023166453323306373951044292173469149841504357775632056812642482393109545734065860379576151831486031483528855281638915915005843969780227311661695539098278593102108518662401314079191724274865583916668825782779715665674852599027736000743186834283236898543459730103148686045370527275710512849938152007326631102381340383749484675055447446913127907270437265215802949944030220211338127882494281039523707151794175980833811394416453974659311548937224873546435961396140225642872336777029818462436976194657197779926743958570920191767865848121101760526863837783246290579594147037696750986126177765374248511054350144600937436759219506146378512709026244320275013574256295417518070963425576026077026885337176418897143102596693841685599452028492665400599843526419386409928457319570828421166646016984685084241653708992740054202838452341293956177960476767748016036513751294456998250612192624988672214160385064274074049735938604969210547073247705577127203518166373703275246792376888056974154686867479722027499520993415240961755135550325671635756503698370620567200795244484920173281820746492797580561857994409274640465340450523764103664207747522918015812164833945372523714197078231311831382681096589839963353089781959175997563235941906785751111898033802908053245172972468393287797818403495558752008009200241628627448190187124847131786639225835606585598297736152474664185223497242558335342488538766835439205638585504252146830205951565864866652260898528451567664471254761544671055848432603282240798717929017588918867964132148893353448878856062074164416527241258528455572917162827293950240566067890178858941109367235998154387293196020061601482647208386841924667465463552310191631978937685161913760368875886783056520002389550105430822113396723328554231596999072263796372640938285142841113491230063464663740607520502090368554664181461687164491961624343078962928138849345036522733018212389867134704785621972514337277958647022600883954653431181687262183394909874814635156811462957302555592414931438298419861986673114767936964989753121423134205195465272880093335481088950369692583820679528481796349147718655838385934540535694242865382240956996121463687393705350980014409106352812543002469136459644300645118648666251857366242007671227344439388595566330961329512595251115660669078474323883775729238451441314833015641446585840975202141484409092143646648462718416007997846802895679338285439787871946112912963992320207687435682826449762070871877037735006153035404854417653276205629700225362236220245468416655693317099076066267552365596909639734412277788370633779750088796481508210443959625946336166134217323400827661896706720600689675544553999753001572405975287872116693278746568473708751797029365951530504766999384285163515190996078714127834160307734932311032706542589927506509997584752597234991897465368331257055965785328855364463431984910984612641574723413268103500350391852941881063073050746165182890726968611240670282705467049860815262823519986716641739807159768570337109816982551677046459955004640966840207787589946905430791582878038768123462393026425028529206742983775018665225552546423888209623604793426938996511182923594380912552563487422772823470341010523615361791436707814299395185052535180984203715736907814472364578259670854292715882388764289488795677923094820862034128092373194238756778356538129343059758568135561722864215729321941101433338056184151242444421441565949808582404829978764085870534541084837524380530353004114666798366970857825835440270619470511944332809430483639440627285468994091965838817048668392110323708192545057335180318751625308482580918665723072225330651035283277873242071138598801780423807366997510833574371842495077727007977268828615570777704140792885368879075372557153955552507478756924962440553186357076528199724359206665518571277805478549595089966065113898226144317182519845093446235707610491713431720750725486181350465120375307497821372205221193320750356128316286967966807882051176149643387610740479000201336828900646482823917149615005078916120004896865655320695715519022663081845152095143737767126954088736571281451724389469268560540701119535198142773492826701168515352813153044642078518798524729791631685480464851387083388214861883749850419041638610231838065431969680310848544851557568450747649439097802563533141427965500943238975103555263991532225309887556712121489651487041165008334125409343713799163987144923009725906521168072499355569257431611270018971644579354156071428819196844772996514488586794983793318252531120743850503484066681146154235343092242306240717246460861809168108117261985995636528610338195923127345078298749098900468962068593270703212068292257212537040971889581092609722900772616762394625957126634838661135056550044307204536957603527380990063634403315776326629495789608355447551581977888575816889517970696916062767179307200029957723525664001050862086060695760125773357066431124678514583116228440832048526817415348627500793810923865291509128726328022899129989465577476000104059337297081655700257123945222108973398385021221293928171312321914712859768837404158860804097570821048908232691440179298341404511628674728181320098708729729053661250485407164928224494966540684221232512188557012346430782995564419094822292954846632089959272593710615617109934401000227911364011164687889882137048618292573944329052683152900952722352039540503841783329300257689258179212935375279360066296048390455180560434751234573679661436499421756706109629508388188014287986864269568678982390663170283132005847360320486589406685238709481928321351419864666407514846325381470800145868079929269242013510540287958325487614615651863256026557210950429751648649442852071203444384710104498143461742227260879723798481098057937290614587357278975174051982650220638077082219601449130445337208874026674055642046226780589793325181386936762546731144042198088625418103250301698860393809928379196504294951481383235171033161115776593169648128473048683386514789956684348087398886873713682364341260450194458638045536254838431795133503339724812009550058132026103345482696411490552017351284393833190013711708721226224565490045951808971096208662123006398883783923415923984965876574858430651616456718315309614126971881416255196186640406183248033606518298009665574379250201948187654454035890638543606787510070971063105604883584322450188539119474315009228430254165553001437270956324502249073599419706470204982103190616258592756164893383884923699394377620599759899010007916214795928004487040805438190207435447571941838114332994208623317510036885378801619697580630564214444384938652841301836129993803543845430020451661687415516208953797058195519455481126700100077147712098143621290134894135954968665762285232926106542331148920505554007288453180602221045039673553492381032512254779179778933962697242564574921162478080184606963636236990078351590305857781487998857371932165872654611974665571765289752406035724341208863677343398033812849119808698729618670544218771227742062603411733679536720881548656500185198610207299297698070215775434008222301970483757724826749121869022046360610719763938697754876214478379340584684651749232968921698692157920256739617964950445072204925377027797057195984560022776239478117076714797596854244686972304736400139429155336608580738933295267410773878317489120435758855485811665642046115103017082576665791448045416400871411972525913449874360924130354673817938020753629164596966709675755826952816079689435603346637914953079613797238086485474534391790394628121495382058564629436497345975919952782459355742975890854554911151831054739782253074487442804433734742699647731259954823562821477902804426946386996099516309930436583542978814844159890802184426106508987583816679572211952484740983274201031863050462206811158137507534332110676567041631923070293308812403270128088537777754923184016697898868249302919456322329480285297065877764031966520541809964352305871310897344045401446578943920755742276484439089579995029926843271453569543633582437863477245345637983477599044555716498743738878901676628546860788301232180934850337392755194428856521792712273614101799451830499479617847526560001506940443458094697501778270278769484840298560691114741019395917601626572999749815987425108671905672655118530292214236981435582624851569518145808010465073107862855397671483970189381252225550854149779297814937671046242026892186266112285591735670205336195578315837635337810640549423165549121383750993297832923588595924068624660800051880091045376662408729541312968194166503482203931260678693094630101419448802715822121493992122383308169122475450134202525524211341606922582556649238710843320779108236850498550584807713868218447449453915160363737330343581283458605338088814364837651128954154029051513358960962654740780319112808091494928740727846158941920268412293895302216069746653625538536245064676677381378248934701136051825269666710406282136287164015652492496385301815006302467748460120329255680838623319779155405506001816964728619898603766172709317629882085413186423835334740128614283630364432843793778036785935413247143517040303508741490238977864940968234940930483707029818666320516121036510225296831154406233909007059518865822409040946789621910149531739220437367486944724019254687411679305047460578115510578039429909975807878680474658264582682580955195568805472065010248558154674668494139739705101560347783082828462764687596999156856479557558072691321229147564813932520768224284838014545959887583262561517959421421794797267301127464480026693004733385842190608389954967720992462898535499135542289492545551152062342115726858418274309773241159657396627886283867310323738798600955238923409029359205991982833096400651887291786029367589048489401172111427623069659512568841672565236921032158125408376547722152536388279770185076221406149115854927650397966804991788753529333008788805243579738659765416929514134830525256609352831887207295908359584707491009746210609570561079305240419898773742876909544996393158219926532805756017660744614384202214805139399511326073667588293655008359368113736025859088517549036070485490241311519916766519922180365366755848378778723551083980160465929788229877502491640791939504528918171191797333791311432998437054445205036543699869893418130337905472272109963475611986174200975228983646410029451103346639562771934630448886917204098303223750125464617283550465965368913230172451330107082122909579681118717868167622762080581214817232795918892675473099493595509116012787367685258509649799507068666623060984536449081370637784776790189972788202626388179025048451197241359579756107942913904968424546784846743712780346060006183783658249970451352940050473858361898143256545946201974495159971851453645593779347919746052549041670357375730944367954672674429812754145036504544426847438836655082025117427641641780934867062087393391501933873757844563597238029199890916713969000556519604041993817100495990915758421443282076556117512273393542452812413191088638802320743713590146084045143606857079284448521134763370367967940285346645212608333013527880675906764259155219474037327736553642505534408671793428650420200697195235081922290202063262655665041527590686207934456485786655474100741060727348506629663391998868729272419460570587464329983911451305318582584256222589348160724913917583986584047724780489931224140169887768709392326023609516192605965477778372917096477949076301697235604298438006460860846894339016985835485207332169525140670898880461911790618569822574541668722915202542803202244414586989300676638345473357294323427674923042818961629562313442291033749687653914248396993029673784171261022357100877005759336031081048399501780352880982203364431899203577981132327980717230316289403807878732528667166427842353542780279200515277892563658640145099322159572533068425091942045120933381357769619215019913080074854545526624852653585246039398359367939181759629280724912761173370511689205368369168760806531407390856069070513276226171431129297343024473625335099180300931561882600611627882860732796866608255550060988270169295074323364691427534598122147024910760836806081393940438511568016086337281489594401020876608691625439288271546942473534592810227989927071519017351610875974485996394797254394127111610937868172034266326193245869159028791286266449876413525990407319280471505325433614766671830470643723480123686472408170114582295411885603560643439235113206818862819101056603550343935266760310051435164946822755034734504282083046854026294729394607020524273833890691460488516743826558596385757035597531644952249979547848794427022810124838234127811755794647653780736648933368524343378234069885920361409601051031369214702667253096799734632806899567472741023364767366654330262821339864958188937018245311901109861551152100361588748541365581604430555242920179423608356109730850530761625234446039325061932623227209454776392093901855697257288204460860823124525980197012997611347356191707514247443709528183775196753305162892977959133034147917285762239331259811014044755262371761382143300403792168657096649788881597178887256412560621691043708306766965582814783975779980651504687099859490304532471846983439815102733649626094397650729196306610184064339171409934492700980988786495995594380748157036964640779416923276462664442979634722119368659814584567603213997661436696195850561233449623629301241442119281526127709950099952544028514703545659854870729460449350151835468661158892103906199877755221397258615901086731630581874531335541785187030074333058525013775563348562103554842761017419015779924333097727688501236580977820244960133425879277353042579833851706188800496819470517274612535332061410959423818842106325067975771263335557578756559779584742343077197842966973215327344342608446778739127766953416796853346512677675267961147804937889553848036923694869864371657448924088587140960498697901370482888410266154465302807232186186181641340681842383761527435296581626989488023374185345688669083022641015333592504714059777692650612854322309944893726871558509893856558894613669837698112439851951838196159670869809305167602176603100827470191753898685806847216308390859867606806849022920356981087451516438247062786455565645557863360252921414448210161948991522760526973345123315171420580830395114146795199419515049228161820915241825691816240826694263856244323891324893522916028079594960799846232371111729781683402405888903100706593876045411573827273129430261632612351335141680051677007643732065541031494834493456870587881632925679117868017667523115439740939298650744244678693114206628982502609649660176219777755600235790862254579193029428409159602259421751336721372859293641615338199584008720428158125979946552634293524775391206958127574308660067041001491346318089858248484362867146249305900406932204632246352803122996902037701891110975188269394761055546601494777865376890408333273020586032335653420329515742107328826801452566871820505145218106717037384611450830595635045954154864795353250787371852172498549079819253902911932532326797685835157423512706283356721943542306487072229636422925766799551048490037081674517886082671161626536704982017318531735608970253322295151428849160302187591130465458365931034685214983520843737259249026171807304483418622057032179395704828395445596567365956562697663152427072349275817202960606880913472811591865230862745462212449949832793433011809921409718208421007076030640691192744581776593948226595269068224479834959908231407781174382849968561478852857619406859910317128171261440973710005268743113886545132484110094617662912549071945270691117681776882681662884244026690276533923202875312617963843021861160250574126384848683365993676480609534274425660950846760611746804162946951554162500502028775599436072777513545071380676441144493331812096386678060200573135028420390758875806614624731218127883439040572930011109619358755380208859254678559260215108394143875783126755393074534766899277138121733659239037128751499259064991656496297189426819505658749741877860986398137412497538959277641500491623711653251233534322028665265099364874368532981222033843136419967399885768642178312695673895563148860732986764699795141245026486041356831549550669581108294626178855100466008330440773972901484827851854774750401722855868979043774756241913852079606752516388582194930729086316915158889505453457826534342146831397672364948834499938272824639336528651137857062852958251941178779886872799186451013765750435325685853339051758725741618977226775874130481040469891592213483803667306486118176833595924907681165540625655790641726992559199109267791559243613254590219371272672645689624384816999076519596123714178647133582607477645211741726074100644831863205040810419652361497799133846085035929913883532399831139283082656109716143822631419918414533843569446477654330832313291989996834681671203627497468288504654742973493221893778153216183542776930149717476497002166468782902047831767853572773328984834565396667159887040330617877596941670565824467671837673894346942103032620185176382485085006944856743317804489270960251882352337528634237563738182100601669652528286707730402917076674708529164726628022976337708479680854606334395162336906964783742180033092187226433633521819561747212486480371382735721103943878052659766883479157239110859623929665007808346236853276546127542409776929336979193979905119901605929540197712854222889071382587574601489743398172217066665978333852075730099365810679529840215210815784421787484070793488938570833559571901388981773084521506696838670405903156924797137755035529270001303405083085887519016840987364125663663555365341508026331563747000539336714672274894566742766164151589542939368888942451312929727325047300286374636211921966019913647497647272030156401803393229635964820894822951686728036956469648019414795766059412646693398544373534542829480363418550037947643801216555224703224756051542181551781815414503835488517161308288719599499736437883134104222241717121029537747339778105296301110647622271143230681341298156361932241004955552078872525101832025763503963625516935658111436072153502902116701663066785649939111426777842675904022294909953348875153413340446401260668510855615634579958264227493464258982437709114540789247058300133110808589178029056392947641823460254972409861755693447463888611500873572774936454378921469649089332030217250448795075815477586948889428787123933843530396727767885847127435641499830169568579386830115814108833276784287026639073390108347462665212812013256163084633921000062002737299349627493881591838035294920384704932126590641896737341321895265721006689901824051005023542643110146607827570843557645914101046939871596047869112204287784712431159355478510408256804192210917169047996918744689638180408382096221533077429845008598100936602413477188080862866107646414412206381147716066577620038106309492275589723466410303338388895311662127563175106529481997905417728793293413092363270155603043589656713972877619554348740358927457577802030185787320685499227514944286045793917544760558963192064986417768268975214500231122578153925985658403686197566830386428233251857918285526425324087396926164383239352053547751039773397412945792412515983658610334536906367772352993197445978495012624682959262891498928307630452026070975967928322387730360433479562569292950374911741800714183457841129481194147086980575020391931498501395771555577619921710261421732117230392444169022535731691691210572031391887825670209402885703677029783702329158883381609922019321560773843284852304138790511259892948136731711492088004845034642902302685163004510097553582430349770714671826688539685427657775536535623251621261572078443442999431205336195272640503216132635707066433260107699085989436889862118246927057215936377842448436826949411309488749126875015977505644287634705526709542911694750331640100809817224189161943460107337356246159885738167753703067644514999848928345731194811869412419024137483627278994175080697567418948677775092087436648446491391241042009601815397002762058012727867818304371780372102677756651971533779526096200748680827664511448790068904793145373633447838683753287196213403307846414369281983049677506447831380372963008198947493348843386334125515391430145897610143190338433817517953019476055279020010077506109666385150521135480378392536978874170049949380197414056429148068207611790917976174103645210014878758037074886588757493488458199562160774673161320526897803119530322080250838651968254688861011573036333651264875329878189554458382696005620692399413388253604302029862730634090041000210330551948712665670999491630968185977838365209972827721799658840526133364217614449834173753549314259648611762960154586057234410369797055321472086088795903317889871382222592061010873466817395974345152479114905885742020389175049392890577549410731708254129279535913644681720763014532308411502303938940032303972767515931640529519911484442369757333423045440585484055994825899105880057241695227012162521563341072255412803704438407888359788478697754062446179612806151513128430791467340901839123525413805816258733649785782056639034662557067247445969349848837778107046438115342449451819334753168149825980575230084297698845118098470535331590076567363990233902436727010650481518443543394287911732175212480740643246664903005004521583741109486522530763771512350029806719396306824044802413563163942195451379391907963264026106544379078478320463100281117477257114258323641203089473685833427539768055924800520140331378432413704982706843315084416633964693023978051526358389297910724347945969267504852244882850001301410869520813115764255048920111276979533378884293011069942514981516027733814631970577174506418184515811316388119551706719187802589695236404605406783170267809476811742294073636111969097789390773041558717151963503555266619972081773831959300008757450526427136259536487313899608934238673128619426354607505819765279256623638101035832237547527499160517502563352301963918777726858389181929556929326084267535083615027783859838493732044219295118745068162255679274232053284429835731437289521242518841893511622404981042206008699572729683656270356348537950934655930687409190481326823261638983677338169574602273225200669352320070929588413135411481189926506113881022116240976303557232402421372195028568583275339942354059220845076104778934497265772688402951695230862715982592143280137861572360243060736713265253607191962125186517058093389689412645663868384354664842549260199490095203167919440911498609542170941683054840039857177098627731689478514429265817043087398167352285156102236721087563121379318935519980927760485487849032553757241942224866584034335705348481706467073907169998524508716919034832336934044216313543730976683268782817949396857143139792274299862592431837523050251269120098557100216140184012402706000514631990904020128285848237345784580994810546002662658283547266745130043386152120865933113027863595597887323801003852951711995211189861582427624062198396240247239897126527847036320609797064259760152678143267479589647940551412104837134721366124433770041036216450059319492798723777233329218142888221561638972027876033102734444282596585465982901559071647076203165079712167754766449662759435132305700717472053714448415898409069290970857421372841042431721281590157232913537080260572607536076057222627029144139248971204843069319994947917415193454298044419013823053595723777738641411627934982308306134678235931091811277775499097354305302260474389817947860868342194186253288483314498355364785504433485044618411075925198437818185077567506832061551330532488850533343147870928401184535869742395541256091168219928831902539821753307367612637660447106123212271284135010695693446477704808841211399602689197449419858127311341174210653838993405693607429465366288453241657637530252285002449214293554345611534822620517369816163534793062033596342079459382912508604915928273006162758276306225970829658772642236991627677674193688621806829365003100641366234893947698400478546396649754729445633510020377471108328318655914430535610132991434430636779354344806990027388089728003601907264724657675167786672233988316166314977468361969555860239564797280841249161747367693561923319992787758875827027054852624356188716049321503675774494587906565924817057800161778294912036140696520070325053236222337186971740837393347498383150775993553096252246328604622940121634076461727560896359495943158354744852213680717820800540050369280928038753967197279200408244727542871041725515094887745216764040438768872456228561349335968519234752211423933727729760420670996831332080616386270255847163870606116832238158769894948549276389745178965340990542564051059619111366910506947061464397353665736082759128595731703022532610828748587038125436820727574432404743854674196962878410954687723947670519457865829334107403997047218255723747020852966484606042354535093800519277644766626526437545749222249866287347163725048060077439808205507872068825756908594852687564849547454520871188195756673754211214952701781548432393855027798621167459506523782171945115558528073220728308814593645486791529117730767976824344743278624198013975672205683655526543494666099637755036007530459270163934620230634718568723745914318717966119443935008940703784727165020929499619473971502450868120121820624176485037577673924515219367251166317489500488745999084741349997632858697688026916780482181309734354931755569948184090843946902287833190021947469182448743191565506374084560903828928716960252026321118994775490959151814243392553137048631928208695885529561840955607858352215514225792145183492583308784114136847148297230825051361522059016421688741280411471954151289527783704311673357399396193175713016864413488662147583771935319450436436714176837335319729404546889622944997195456150695044076155960967489293078846639685085602781607824250352469983966294138461242692814849385727311502061576009272949006829333193839922095321250108357472432871141865666103416955195944994726052881580436810498038423545649001354459418450188634651009126763451879403675218553263505853284409707308131861453494279890129314980049707198991399674099450308305455215079637870646099518977615231790497765028188189268884365844954968329267917690422064455590371473291730064673424204656400818453401159952404454418868031951279668548343287435276579771756434979361823936061133594768784754650558811597219540872908293552369603761920316194754002751431169917889658168969938534865001504100817282378932032164571664667189786282168638238148019078398799514733169405562978131813715264334470974014112124233408349534393155918442097412845059872364577979575386709635476645568817742837500495133161071049628591591603686532259613888517965629909717172913980803063393415160640541165282104099716079737993710128249815420326197834479349943441622509562220749477209694236513973793804823927436053241641402212975253578294465394830898064480789255014090570480643707939862020870622766601300449439210356731569233660785680744627614281203243301920379718630082917131121876633595581512673762984176486888450872857643434901145321346650127784975534573530453214214747051175139285931745715250561946694584094687041107477734339652439313451638129482803863990789789032001716360731029243809322222093543865998825548104863053472276972473017014498657840789457286090013667109657066185479827761709047778849489611379431843561683945373347139684314515892860059279647811027234323724574108227549823046389751615078605131104023926465949101498927587905066177196545616312516445457057905609075121191648237118789974190613776381371835525011807625770033463114965877013634942886116259896392374217454654535308404156189636200566825441507642125068690252406517128920716431517949997520521383536218196456489440190210162141829276432672175195162153221098973638013118943162673991779034005254686819113116884551284582694616404230529895675199768395854914489561335989510829712530329337559419776440820475918352236736764274989753694732967099118327486827059522784664688209581340418713148087352233968793648704936088130064311258832939984197197002322494739883622969277139807615023956289054731498647844366243901053116064558555160828759736288636390780709822866755510657674699353781950279850720196081961738499870967092660550458090388987406377169920415568251603080419898855390253494059426510343978352804991559685357717633046190835489097630787307378523384911294397828274698619173014122150582543385688128667294556059592251014066104490309886766357768843356687973589731403741180675487363481682845320956776358915850228490255425019354341148867480516111600267210051294469346056595513426871456509976667346536776261398440991228343849772101191341383994090605116071490276896260477744393557734314419343587417412406607179544707351491649777044565587014930470410563630161647627297362438931338171934285032367175456132082744019280407386519559676343918135393509302893567339596618077746508352329373949617244642394294005725898321054851046987467696680339452974112439630085580736196394276158814894934611124088106019989395661733095688951991603081946411687379696154192952244074778713786864474442167282215893909474242049254745947550318407049556299393049385651178438674652916665996029504426714289218993376304612449230655759523996697891409926451914179122962875467754998748428379867089604234023069916570807295030767022005684256410281986551820562717559522754020524640514484950182638569365658754147424278548263856680916515762363784055433769695088418276678473542951040933104194326439278084831931043235188278096287786720931336119593599891475036832904552462464076298945997477351109447599721304263027446734375017001841494319655870389410821839552943841391026839115220197652737044226879755800647558282739070067948616387922625548162041802065271860554246300805627457635967630465382159483823354336296513169996002018063535461949525532339241752690611598697307600145499275972124320510855435158849563357594811135987756941867336182725294464736729379939323913496535329480043623305619300679684773588464397484363047380834034629939183588983047410526620059765989636694307545419089114960088543184322784472419972704077257607349959433717783150837568975747801960957588964458848333318864194551253315709025859848914170468501634913202949212619369932016964167828122038687320486543721386975484224828604819134546014243138623109071494938597583503139044178824578695958510680150005923750948664102215406188937227858631987905869729602679165068493590705160676657691652671923423662738310599730533542099277685672095740157279763832941515112862074359703096275606702016345603253442604563424489717612574374327090650538666475134508251406791670150541217461667891836343576150246209133354835869808015056143832429409295223982132445574653521897183582879852576623919461780965476041618955919123890803547971014311095084902788870429569481153156835052542951254166302212471014263881173393322466455734633604494292308512683424542557323299992071685253242449506708805186572529788905453920002058941172231109528651893872401657348076724734243372129015911588810595571810925598214215438240816261763055694112721433682167146835017595273331125018191404613515659578454308548214882000419172231328891652110979124569030629702469440163522117512953812146721531998593005656187843551456240248212126714154860869904674438802232858386709824162000511903672147711076289025054004091579841238008769305110946040532786094001291753826445039491833898264578065656763009166698019761541982071247074813650641153425275866003753707349910619834568583606418557078995707952820666978124640188015924497516993328965040573017871011129413006862400536812170932794328322037613089411619271465692574822802476888526750608909687087318441663000616846965801141909109641431470925405938262534816899890434715010593906093661251494772156051508453009804329292812747067337645558608367449706005910616796636827207069311289443616131323226923872631565829949829766550762284215922852776605107008785179013097234010516591856836959730301651222853440870159562354142140465060427158833751704971430818732762196249960142663829105986068966064449750199025952531061740441169490554241469883945327639475619352774052567197588107635016396248753897511783810848693613109121544366856536064269269058719465060034518327264604657926533518082384201518484829933601141882191718300459816476851150840359070755803932872557902062254543990008552910379616116148168286189330679498515847732029666284135959316495202676216211269277580985554370175012453806534562029394979323515624682322898038747284828726336075173625556220784646009069463377209225808627804096921850906723001720853213697477298995188432163914727130766589852333028489136694845001051445101210374254885559439500246664888073932319754919242100930197060998378206407388860070644141500790058530745014170043871703575213402262407640217181437385474337910265896509970569674310309438681950407001553360865190868688842910231511448277308010095816259878868309811949376034612138483362839516369520024593324546519338129146358487338211475212765628950580393563555787253370237029407045551122289553561763480691286514966552791824647433918127515333470720659413989771924417078850840651457409004954412863172508752898492253268249400548068234310216184141795116013807963756059311482798682248707845561459317509004401995548960853808379453495158401899628359797816540560355964095247958455471294535926705380476793690001174423082699405702809742934632581768350557170687817157360946938212953674451265446798843482311488211334486387780730669834708367393228599278860498815442830493812017941426094014588948742431514564170608694171415079275898431918670723757677898971380506624816598029258722337072210967630109984067488042063075197991138784970373629095031618275132911484084291228943587994613696813677005736500046051470879038173748336213793581657711825827843289498404540237736417340458315629251363091308515228394129701031797327867154061892778263440002878468019483062859507361235271044114360134685295848652883231745342713005682039719115445997197750606221503257561817715925269737810256330397226267094474031641978796680411310177479232616950219271057299020868769518042847824747172653255088407234955683402941488542127009476297109323260317622084193933477205238280688577518867870182695796099819169296345275003158190592974424782755335567164776418183005360239802137111897137035524828913202546017776518114278833283287406809620954476815009394408459709446505849462730657954467032477026348858474372210689727839091634904229517078017788136858189505941774723848962496435372738447967977640458231183637138988020698743204909914385472291284679913973009923769585401160225692661333653688428990328226958433486782869353751295655819198694855715649368188430960366006207703002109631461095678826608303447310685430418877943350395228853731492256428129927364464550566076446070033127449846016919172883796528916932661313375454429982373336859621714775981806353339942993687737018977271713257165090941069059856867722778743925748063192859643694175913690775365111683084984068645249153409236649352971025218700988838114151345581081194554333215096313096411986814642227637785179881119261382218430761075972530362580071887937172133786064889489642927115573406019772958363662866228896066145899904994169381047635791706550381056066529081754495506897983955147224215240473214210692250239129672532206452888912978427213406040393660356192059885799673104668320177372023070471457981135535620401957450991603747214701470437594314567985349841646130979561932999530238525536798286510442474592729305501883455432730521379902741111011073462702254199067341667644660252150460804099597329866882826117858301922469677813013716630945581905565317285370842643604640935039754048402805256365095387071512891541328796543321275546417516110251187212296418622469437226913266477857473822116838230583432333341579838296215038375352944570135090306892702210092627654408223771065061720906108858208640608743219869466702979722154617839258159364701176528879462247885674920979677492788952730460032346144604150208290768908129604508650700394427740614115913226481937343033114606059792007599650108020296753771122272912321650108222561389186666599213996910381254368321898883465368468044946539579625233141206639858467597674827644609711140670496489386175676535211512493908005892725193913590006154605766647331309288749423399724057121126997557027742340447220723295459761179056687996394247207896348690496663906719083551940998145781638843171503512894315470813482155385449278337545200257549665592344916369817936509192772428314246394045047913728289411331522263533557191323478626619062860433220635939822547316366640373620298169254222729761274346533922890701781305260404143801548244900680232633103548545492182653218974388067658573932094253831898863957612815507583713992553676377319897286472915683514164820816610076950602461793368885529666157155756932843142914215202542275859397127861100990114516196892788916499871782333230565888463344420961683732171104657847814082140686592200597312931299185833546091552726624696212221049928795994534382814094595560894497164291582433561513353270667296763681041460010929516755810307348142508476503490687186316370463628970305390913982733526894838142306553923608762149912777261277423806865105998884051214448212622136951633878041077987346922690026947308098702935630430787337853884774402657207375004279897382029494154018592199701827574153063415845475731840390468639350757052327886697788344832286565905822419253410947081251708531058035581777635664756004340361352369287772455069327185562987470281497572711597447537297371967070563771295083226113702446022180206052116410980134660614922831938423137718995393961897514148111043737309264062165147977004642991279455634642695695479256136766402003467756285891117822418706379907896313521230343209528609875171581470767820709480415255667325732916082040285852306958811756665830743835209898695093173620135563112408056704951737897400416222091917751446318820287887798364226850651415425826781457103358297050765373902480016686590916702681584298834268412289123007029015523456978789845773087738260490896979728095910308638480084874044935164115999057029308835754749964225906261972325641862332481701943273041285168233636721603265121837570736238534611124786708347953861160147972587496608014130157487950847227167942597556572957254670878506591678599276366630305985330442242046018590279696668490053834234962154374967544812589498714091077460501483203772968144661602916663898340358975772694315624652761109384826465486771749538633331645277552376073763194967303843575806278920660765442237276519563629886658579646373147413281759556584483970002549642171382241193275204460349230810276643306331589177708234922255680625934548767769821631973487126477201303986692096381247016801478424979436059202610047539629464543487680643221119083332139606712475169829099457286628907825954897057014137877537039400904471447648953044666499864281830084493280146637696915883965231105971048145749393508550645190151942308217259927871834574374582412103000752477527528432801257106476004189322536553080123174450448300086717521729489042293996186589878813488465726215645574039030392743505561002238275514572069186398081692438211865072775337470898634523889634940495493314197892461139024890816316579946063273611553776229816720105752527433367767762019450858267922709761447347793232603843473246882188393505594670489988130681135441164838147841530727092968351600590523658111224740749219421035454745717494847292561328011758178912781472553301014523817400060779682433732873778455360331779222152824439917547827890552669333559600634921428091952908691716973098559017758327999400872035013837178370902191682152988027157761027171034965589720365460104688134846018590207588424455067724390342850983745015683016804808910541606804090737192127248717630180593465220662308943342350030435027419987512613506279539307941655559698120007619136109470971245190132996181082677729908494715375110892083918134357427954943905137132298551374320963267677598817600968966392363847048989490989084428223483320594537103272001648517827524271211371496736657833182642752019140829376667459421839263258240492379347526681236470047961482859148657337970298748382799496430798226484816151968625268117133753111440152685478781673485915734106509279196782819397796376234465604038245998805509669140828575557696963805158810917684443467294528641750764742799946402042661903701427355301566095829253682494898543123770133007825430730417289578877638868203647048080864237358636707461495692043187570772957561264772469523307298152308663878780679860267048076999943247031419602066708582694797444999410061597251886541385255649750953133193245567089569389691921129100138206276233318823950725344485414967591614785570708110000860758056463661126438642431666518325487379086632427605529165330702696962248755494998475417701989202393101304581249877406783436961244406782319649947305423258811209569911275441914822226265072634403420454166461404628190933382970900900184479741216376566688594293332255632201270105823717012139282624519924707093832202885661309453788078845778921520668403952683832367961236951570920905260625314742297502448829716094759752633024433065191775453182797084502446517106830204572403084815671775631016803710187486582391538485529346983984254098614179804599031480498246651962951641565157403619050285620006870718157380644280706677433581395080319657018806252088116137242962797525136556172473950382376222959492614251807208153636167035862406919926112899345375038459386646828698920903731689607840787193308901186556805578603880856362259501962319797927228425870371494614850850990331169287503242975843750531446977630377958165286896213698759450836478026839647116065125502090515548984524501241410369746268642729103833271816918655676822681521331544690611704617735170722850792618632366283009548236391812143886003818637112835562486545153961347595077295762980467558525584593572981570866936775300342217190572690020864580499369512551908034973906822470391215011531516167514085380930141514883696935586238196968837164338234351274257131061719453766209548521383504810821400672822370150457760136670612080709425797452696136004477520518999409739782945784457252152963331400727161413866367509827135291129110134778665641205670985060655966065805126998963982745484565287411073492217742755067411733348314449973329419850722357230294285149484921224271574109986155641142021698384301123674630300466889624272194006064998809567664614292878789648055004590695321556618766047855903989086746055273468092671060455873690636799946444691173561232800677959578379833223635568984998363141269224246883021784198771565001632667078867267393432551648435087083755488513631524056446508380557198953753778840024686662965449783117815119497598356087811074697649357820539716306039114987225987914004210558760160927113675517436697272358091737943145455283872913380195638827738955344251322422823540908667317667711798183185739465959458630198348751161127662771291917234120233488196955694883330928757162596383518582360862531194698739689728405627592449332812547566758368197770085164382823548193681924690246369152761286372624094584302738615200603333293544639440454192206103549909061967835336356704161745807590201382544439946548701611654187549566495956166426434283532745895574300295089364138212064204212207614997917566448432007119841372685247389566264151859693992044275566366794885845101197458041516608741485037211863761054319647021149114174139599473981214144546836987196016686013046887917190706609242967846680559718080045349142318098598904022721040318598481820460761472638509444735747212923747747535193926949088668051053739156522294333228806479292758354340013578479437261413202333655933074901341402079776633704327731996783775504022172485144839306433687965732303120261681414536586509835886792748595609566717188923933783591274002520689355123086129043805896046217293382249477142160905815673333820104957741441705345777193418858609682565220921523688916875987244456536562818720745659929853853389679710071973457423597052204348443976764428831159869004144330200326064040757316420322944857632620677454333746806852593787660029568857587913693304892819264816512906014641618812475013804161553861355234095196125010076205816456553549443695654909715015642346104985803511280246894065165519338328601283565944184273409547515559443869559736113891118163296351586457270770936038505922101758245325701787489420509569281568482652534609648731484730238580481225256928266876456315280085484647407915289218169955773056628508259713173040036311420685694878245114343620290361895030460956976841863498073476259187725399775317702485206499955106709501562014527179573313032718551930503306227314804026179785524225829051031185174310309817533456234147314369527983029852260266045544399366346332597544602533292741324575092176918460258797681455380940336481468898465925230561269721196871247653792260789562214215355022473692477453782051634707198796167506990456610529207750836914448136112289018777980935365505805906254134792514466483444905033592896554677451032117196548730591312371325426956209731710571373209191027272671629120402457976623127189434844445787022144310397625135558424477308391385169582920248454110411375924662787705159768745526994026283666414234426758776661219136341004210851397134105525665765717702912380290328092863957598529702724057618312279281447806048601078719294915014651101523872707761456288036556680624535055524819125817698732650507619971302126641415452204748307671645512349745835726672933187616243526825796711596419996715116531250805375834914744292228187058885747843210368788358417974861049196332401600847051924448849109744241353438867396221334704529139079703533798269268973764259195007070121455706384953861166971943209060006476778025154818422536604053807053132620460290819800528538748423163616589916055969060156875217085572876706967188644903400565547686653217388182574815412682137018347842536574324114308841752078771774409760855662647489833513766670656784316360649673639904005074508962773360507333255583704546060015931430593752610147588143842923391841696703024361698643927079168118944740069240505571742013369392343734926996432601153480908507683610128120874347176361709470969186369702633263522384327582752284782559810900060439027429710754176390762726646215649403535777487136860848328280412089347881444549962270196668441781896925668906839285112036468231653123125873819289759589666466406662830525408785068157588178169872937283805393639072456876176746434469036142926094011026830856447527071899126081809015209773537264072443110087733441557950285424582237589563065162198052455065219169547217550843175397374528965915582610225576907113224604561722724855900717879050705660940542987280573200016163283472771560664181388185551766535370767292694466384661605876658733778718459420828617522448521329269371317551981709443232905746018279463208875681323930266035196653539967168863351279751677586324089935973747747952618925303051474330183185150568908174092865683773619158736364193224862603725156372476724439767019685116061355004539339980946033098423116295570993528198191401017404515665284298520501620982703201806035056789093844885311570687950283423125794047539051215049761511007898735703047274998086795305533169094597168200081201814585894699284890635567824850265425598235817753140618023424676938079321771763264194709340601306007180498086569306450767649146453838934561327717588905542949671879924342944056284047473365212557997468920325967136225268473244683805150227472097752515111255384796344080627948995980930304026686601536827598116231565015497638088264075946478524089563834682590347081446325255691128439600705388996622972227366972136565209606838660089805823546667564772788137362010021186026730261123926329102105974686853027861326443540940992260285118783410797538096585014709551023685521700154879619535788969913582472301229989715256863686701730041431947635506038879669057047476553416877643807392568470595084276530401758720154036344516462691676084422076525562866007572762160610645759596338906113157704765552861145139094382336345090781434234733985190571683738995956853884335790750442180503446583868744675269640821675690441240284976267349398270553747751151097938195556471873213558506528846597472348749254141668601397586363989828095781687522331108469718875611412450809853678218025465591456492372893426577627520156038598454447620489564525647839539035792354665290452541483293990054893697443747523406588154779678781303891559973088629657722714555173871932750759798080929880531311025634430168263243206268929321072594019866167627126718727254002633888963204205088093571842960912978206241140660194787597573352978934189752253744277193483892417497279319343111771389186334080472053599949693975893894462384437994685049542706456837870143815671459126722086473865701570671702928983982069230744680715380518055315635954969881204921458217038689948038994721078745233543473122280547487927811804242258576569848842017511380316267003777355584208516401431086225669751877327484386216341922568482743042638783905650812690145740932127891660029594166500771065705921040493972105161261942926529553828903899212397428898631968004995702572861907779963524547467490589727247355714389179529621653184879138939485886455419179134230332511481334897426519477013160920464500089365765140062745148884928498395514174670993141419720844590215286915622941156439160677748975459052649874531450568925074678172823880812967409683329879183209788399921460043878150923890568493059998270115198303931707263444936821407068385624420455248155997325066887153417141406372011664901259452787164584266616724960867391942870117844825011234820150204589663442486640495028684144559863935334560541238448757307935570987875752910303666702878804516695198939486300127525183214799900871576289314466396362491454068315571997991884498611833519944633375717814131704257477304512321541232082323669534784193862286366572958120949769203050846044855199017141240464515872990453286269429141740777593605755585930321541889009397618181094800146088390166941524198956620533938978877837842024977440248067833082472753192639390502957817681364380262213035686884685721810891524701762091949611221731499755271189577765918571170494967351355876658734715215910297964708729933518236691266161480222987400787718718414552885127039535884168664833829680566253829469975861127430273463565436745053718443806841981142191491379464694652902203506390311146070115911146236374511349421184120237681743146634773618855775201399164941944412579191177553449445646349100862906119749141199731566669986708171755810796700951017918184392384201119976825157380630028927907531509951761312234210531151386951239047304156035503370077660057430346573367459283818148968526712247464018152372788059103338992322984768362519530119824219098301506538032903428211783717317647843267621618808601833015280838124935642790099809532374785408056201819021900256156897528414342811939572926222778332300784326734770167144733738251674028244052616553618217129965160709560917351164124117133097451520922720742455627843682384269751704349564499759396239581465698065535076344091962112103466383800940084243227484299406316527962334514330964513286416692626680225714665577420174260513841350067144281638792397829115596261610608776343782395530231772679696527555508113043698513867511245495846426570717015814961179332716969190503384590422134469344146885345765329082605936994080976705995789695572627804138881880291341065503722542366372899275487009183142947149179284261618931039590077277159658076194110898997842946674735618611111095142340823194076450498532155284699547283728875413497258413051261511930697375935725191104357542670087416347317399347547071369205293559880831494462198508493645610282316123859159901514128615011922427794597412704114680451914193580791131478716879553790200134564425151067606632197569394696961392710876081110011958380590577675361373270130014398196965420930666638183549573346218617971856881154168041943325284575137242009865699658070220401176964203036753685609960493142635445681681043999035730888302734339581201255643907231426399760334806847793595646679437538676197510035616572857049973143885749032616169616794241838267890372612367000726456955565225013374951883786367723012508073152099218579917770954201160073122717975611035465547561920297499897082450678901196698736451118337734665192864713680774278593184741712377858964676297750562545323161349580897125472127868796670401646210274905986112545790481464107062999056037970124556894826120832137913545724825703654492950981395411438573146069495281646571175079422483333906067627022062846680579571385686926418615124573537159368051549474585512523276590720857259232442325873353276127058175970821260224290708834806929466446718149561127556712846299234405434986261876695896736212407430508439569245442021083318470081024151207320456877735416684458516048344586770207981250462867778948029810226054744754851571800990801396866615854993094256996219062782076036659283061811955042016577298697166659619848627824201762137540887014244356444641118012630614311509607928645522784655864876185986109507574084861931359311211485495454878663653288929235016474707981736442147955965191400080734139727338675667217660724141646026889846549132148363560817258603024404832876294443597685045616133113594239349957509720030305249502253491418330074584876262583609205411364456285725748648234904576947514672589642827932627328533657804031318203626980966829631054282229662826485600090157947199692381433790990283284908121298682225763830056932655489273103272313431715289293995741210707114421544139948306005387427072786319948379583119511584836503037116584358155285778536277771879082501117523280215825778576442439077336474693451918780038829048559273756225502768232698171960644528769659514547648797030200651978361044327210812724691088310831485236615009007756390719346830869636889863350911766553837114325307998730468330948832336182969912203364094935171215079882647664800048423564943520509698482916093236639414411467877348703160614271108061685261744195427925180729781608121393172829517962770563225334625658134929578319738159439030762019982807669256772750455006333797834104407484241589701664824964005558594312380931866761288103762603050769014303978627688535263583099886832017617226636679413790278706160393490294883553126325127816414349153751096878702517172170058161262725962622745878052533268744391224169961913507373752384892361026254122782819592740340212980726543336408393040068356407557332278489993159952475200148184083510076482429720908855383899495148074619757067999566618288659525962602996207002811024331538295920616956352465400994364908702283719712887152587900844155996253585177899539879084390281714724801752921320199252761650136709687323256241121130531189748049091154885343739125515596463825327305841153883889743900691116445006195445200670417713692509870410769308096967290955445972697463692559377220961434960285344790836659867762775534081337841603463259103431503286292599925791421086148407820419926413501073026282716491947540745608326135525650995506976328021329724436811447315632056286439961888584049891253791893566754765278363519465404403759287686612319989554892908471437583473923631304691372516307342052615183436951075516326894689923745783576697470121008115867975511188911644921012895432446855136641051313237892154763233306777855283014953024740169197959611267161348822004694142125187634716698420015018372555412428271055944591713031440177864951094265524347567743620540742100857820225477794384034439387575631317977172945768792436849360599739338226442778477381070103978840263643282455522892345310898912796367259863148260849917261596393812025584979695214753657341903893842399340405830916169176385936632097522666603406190945630324476722435758054828489416164524483075755943577915857893874670800557060216303043112870649032427668459773711968149577578475369595778554588563585933636831811828042914511131754742118100456394431655428525003170859543226210531625113467935178807177061970539996560396014754419321928408339542386075901807364760530076871500203723379170197629343452366227270784922970814021185545844317106211730253442337967915959667015044384978609971483718964287352047813331075982239490014942579878937579056573641148423707257685527134128467523096124115184743785544603108522269940678920910046090723786095756223161904466776933281053200333483526217705975255070905152488593800835431362254991365177832076423647725865530483994784563367636142020864860177820977745441603814465691616636458339506241465561103190387143479729373200472740548216781667988401668691224583612437994152454213142295143007319263766695495824048471855590966759937672201773279533054565644402540956874509232553799257710226986545358697158497216551520480851722084068757508527731169519040688033806370976044692622238687074747224724086363654944705758518773465533269991794230298803774509774826193219835828784578301238653777577899080165788031465294026417544847488926476324311462665536994915189191003401927351432767260047689062067797939220512135745718729894737869085288642464076675169445205026779356756897113912091727410176034311346168473558219999810929090681088406199898077357396099578010973980192105520631184365678655725209203334978067996622515484378820014396334212571530598163264845988338091465747238908042095260117012338039304480988667329043987776224771604829144032251427137990028987433040921754983080465071619210452308754107533607184476719690766564116431228521658954724069478816798085409438476424165288806360952671835839081963457744511123154699226796786961588903287429491565164502349056247742992399007272646090945419187989826732262547215931001932554344175627934542015754769153125163979992647584995732063521427047072225941691727082531521445871666486962133768007341385326095496360406157423869911002973553969275740701984806522304454283636735394534444057785422459578283277767625858878357517978546320853163243519520553473574842715308935800884644391786399197925480559482729586642454665876573639329939485764718561646194247137822438160798761929888977769839176201094657382742598484139829510511445059690105233408355132274843946634271577244581515954907555190910289231309681126181713272965893393111231687350605266829253565169318701211524293258517254378862763494624234775748134156345842011995149449550646204358951652636105804551708777404473345046877625536801396292830722027018586233256940850915198557159032693324943257998487882441528672869503190846230172479148693908560659270177795771361668047130264151521827306154252904877384670660056280087519574023141217580960094214479468449627628690941162857809449991405024095405007991686658320171052704664659517749233017815262667777528230860534639050319682763299443105052827538186085947845688126655966381656882406306120875455104060777752143192807764114073712661546831127958850744379903960609743937919303486015911011086078101363768059602038390320228289650484734064447983912009685855413392130569289534764935872397672686135238573818628930748698168900405125252268093034783435176351495917992376112585980538721658424660631925583190501653933412195207727476514007792631733608149956646309759708525631203787520065594521455768193737197749200993903327398672762178998555305285057368081977776066327043629633107889438930539872923440135855009743131220068574911714736886606840695993768586296581784220693939579999715935258224876747611701499386317462096061467235122145704993102447524047651110773503540830009796187949914361660423061247624864476705656253369258576720851874296433691785229704497843786041979668003532055931528497106135466599713787104199077155497199502613984772309046857232136669767641420589756086550787948733018250128501476540802550167712465656917512060618507769764486385475900651504194972689311943557546822374026776538983297713187333811372385440116633161416777330346970601865995380103203334137173436500466085482938102756656751986109009477517550750310522435130811437938994867367001616893524554495948349874046285571908944673810353743902746433284748754656109407018719122137941559545459271407488857536274397937977626067899551563344633419642870984188984004892212182773515559416290632346005746813822701193752548768477637389022183846379398712047808268154214844409410701635233552690366499902532363662768113383221391343456534515408322849579382456999580930384058912431804057358813166327100597781177129987377027517519791223134093064419594398543534786766064920511209334717267130443133211684036437791894674803567414192380916114075070190566596117420081892027332756050149959926586506309059955169435021137763167193126870562650751818173450375558004025816323524139608725622900499083405423266712784165572527054536103984629260195458774039646985828101233246660199253427810184478011238674374985137024797624526765370634812811370008758531087554128134463001303343706025297032042403191180567654917309919936173818191530628667021855711125035608829117212885807137621173393291960732330491263522129969789340476946506410708383232487859723863293812028644550899351414142731064523538946597724419988133255232724386713892394249060425630996128610918533656643233178462522988467506496507542258804592310617247089960741000414474684649009642158067505791573845959986837625877326400798544810383790426709183817720307110569939527443250950504491394071468361618997414475249501496151239912296849071949891037310576985787249861124233064014544443405212337074542300600501967715039842117566748116558100573221223283516691776367319163663789007886180622303646657208920217530228329179762638891086889076592531501937367034493514368310327602255080170401733912662521599019711079217591265893996874792677536874405637642851529165315193814842557909657171942798163191321938703709465830278704851942647660991159296149928388826031394910979709543145970517348683716158026265640445619717091352139857590792279232623205319678354245548783923009006111187047790649158672385251051582431221516931093653786541311773119337428870308823562263943632510428105108386626280561005304187783228650506237331954138462215629863499069619914438179825424004785419546468657168462660180109300581489176650068352178372524271052308550477538467989424440528556824844362399669597514578613230920156691749512236056858284243975553706540313874233522953913688583385576377447874031675452438241027084768365863574919737077434763203041311789135359546323628465937657864011902755143153309924497067774298651353210498528521775645036488253217467122335667861540289310046036746716245106627054202631043898278826421253899863852183204475356080544556786234943080041373228540474685990104974175719013994895562779146507411816552431041951434293820595569872698694081710392644597198043953072054620909565961883615510469283366493736096273580811294704486562239565703072554267477135602819067347694818578188153067255715052957238202828096931660861168004135947475707442493971263965233435133045626629497552135204869480922299946175769567562905095680685904041955214663858238255285089991755908502731708131923454456378365169957616420448494798673293342018075629857350062889174428030864518450631178907048592007856862956711809975665738582171375834380288689128889222196406214664114834607523304151852471325147876789502566570873189534081846665280228807647199408564097238741081659134669508227402555508310783597112967803239243849809098777374148994703342864050810881845729507893491689870239108979420439514497407221603273702994539561506783611136023351817278351938489393111521691861774450035544316683288105393943592587650274892381979405531393299743322100980048750155077771572701595035289876988638664109856423764039982576057820957287379821120400992541055887991368772647452112265988220520814120054585014589131826540070034142524700430496576121171258224193102213914369536886269509648872597346526230285359090724601573527084343205333382205881096427645611411981397420143997074214837327122248301195833091997621549711766772316554398992826310171376324390340895119897766497562389157968349205909176841518907389499622447387467464662064269095134761313097783820124357442466847774809141894876163519008650230849484174141942621124017023120562712993966807813798636229903073810492570130875463206873859558821135762166365700052573210331751724415709031102770797762454923540918813446697101932726145760305288298209534650133379734221188755884346101040377133567802828180027706852753027895289407705448026103975216392528573420052170930727726429713209160173173141114862324149899013678396288593282864440035862588366947088498536443421468448514147639424013385096217044562794681706799244026079091480723527390475304253405598748299693384250930956269196373680798934433040475625054725862361301948617704596943758698073771948568686847559487844998436949936376247091673114118235017058600205258912107818889832847159860465433936789812528061950974311200513715176645670456876153914214568265767755184269227964460456141168366274468200027053614026236113082441981063802760521055938697718221739156838856637694557763405291928355657084705886887653639647900233187612894597004591512075790178962948177125728375252545086281892975781000822015806092334542957461547990996761855874085230893376855410275041977893759178416909013364127933743982305514337149799385718822473277076643537492670936680541761479128261481697684053694681129405412985646523361762821629765538281036852673136674227704814630867066907549067044432296818816058509610521483431257446301112623442239503972482530716523595886744445464327305815141173099253143003885197058577870148070056026954513138831195072314121196267996225638453647082776840607885475177793537146316095171637097920635011850053420341575982172816112452185190868833198805980400765377906442238016922052746013740350703370628089115386275815933986845637186251969315537092164255766287674938944329336846197794422811896202179801807888497727994573314802194983317532366700880822083815498992447711514442938805303591490377594841707375719175785292204709361037753877348400278835656171765512141182185889271817740596986287270978429565876777276425186603449597413344874063890297833822984622005972500077762271549056318874201740433306165536639138546490995213726495523941016260046499487074329158612491229977697262740798550373963421316414549961829946435115246926359584640445172085487397369928360646825944264171518031657206666374057594838624978898036710680058442721022316824912674031041701510146902643699153733422090271394287792867925021669120530336646907890940304606645652436595500407573928386833390269463417919521142303031029248642405875277835575473949502787104846863257312815153325850286666733061552113540278237766976087584256619298057486632979186755934459012473158520572019834343265396284479428850819408647624887496667368188166770117559890212278649851778466901749051089001630582138094791318468964110153948900350912517640628781568566963802315990518114706562277461474688121121195734628198753797944748764449459714087120754903094226313866325990066162831221072099756925036087743664506270389013220100750387441466700262475231893171293458306416716398634194924720006262229714676746912301148443225568078013405089580316066423696654573159362517228337637510130146792213624110696573480078095899483229551458969843987223462179849632319475934626987252260202103169583364377590140999516995455109775929410084588153017834621172722764472158305934087147619465620449371922856467754352648754421997225827021170937891779782497152504593348369732522653654363591876740680106930560739053681406706656315607492788450751350200395575648203399693242069213949849081964552838223092319790817822544557770360964882965140169125000493447759533816503059420746101238608456041315934613202430379023543005630902534488801696202356709950138975880636657062247065318414714070442702479939211099902101089339234682593227480949883904497981843037193637403035027889323272732134267862239750849592714319651813802239549218337059351292083904379178280445650156678331279788444241462972657113089638851504943319754072408051211779448626884478738859406460890803090730300364344632615147828181270448791999326345598421371876848367399062092042486612955628048072739348922283885175075599521022985734633808417626473728600370391106159458483941324885690269574662235691005266657049677136895159676890168942704358318960294214351459305264471613777899135415821613451762370617426353205575232991796083924382934514364048634310523709657987067926669079798601312937894952693408547598277117833389392730110021892812774651513593120085960528205685255169580487172628656992910187345677148702767759761429798597908360075572827432423352102226285885958058269938162266284891794799050379223231514610177117300762883683846467900419848644831133767745530307625179144920071791748144177224493045545809359331487856752463192575403187278221875529362529529028448621497272911933385953500542010570386395613340716861558821786561915625745015681300119903646559001081619975325665733579335597497764854762791811871193219732868883903456412169653153151583262186018479332967466118720447621393988683524880347031306484856782323997376492306442950234779586151265950727094955061567273699845827480475432002792098061326018020541526987894381873771152974537559866664881730679425164514865991322668500687244266303262574376229696848241059879415676703787621054130164444707777581211882417000092783866587750997251115133077950535898272292664384927046390531220039824743754476336346594944785575885360360532767412002696080310255663886807923627046068533490008509611140268887123890587390506129997974682641352880032173869950668957002127289947180646174341441353826391761556205441964438263303111073740830388334764639406451706042951117618414836885713085761972383164138397676499030015663737913072410414181529150262468084083121023874487817538642979697953691217666882382240716075846585337884192547138324647405569283269134283376149501046686244426125111431309667866327393210380463025331115686320862784884406272162584566008117758152782321111222024972492188023733246554359487693190903549226188989036716293978705986356001409505562075441501592915714660024875841917265546247330099166893173524957844781247287657826375679838663434056800074199853763209925662477880452858238111885535092677885629136097985098178557175480678911162012331756194885541195249065047074779236746363042927346067148091350336003970060034594112876591356313571249987989199645399583050464661459107670727282225807529303220233756110541964449643270975917772171960741835365276293266901442869274898556659376433707787144939376515645745682311160522665879253585648979740539064402068261668594606539607181222179584152705045837436654926861839000819607374844193303529717131278318031960309841563126652559145968233942141734806566259795240990925365192317989387559287051250804402707669303551867077849367837161954275531523422570470046996254353513742104202421731873651231265861436380539244863450227178415645001430867591587025650005624961958036615974401361444018182804240863650392216023634264488823024028970201208777095036205820231539639181415495853048905109610133525768633062384334170027159818917552091815506272996950133348565213139662003192870249980910396901656415181676643289643050442384664519072120157991192911005769023713338332367702730823760097874565269025731405590667030252361343195100039750729738834714503725126618872501477670208341933632959331966577102111239393517309884074558413896606845414905997454685408064865200699787881378342787449758398394452233474397073718488796119768905372655741868161838279357829012895043599232770948558974638698776756513013824203244328644537319470227441572077852325096711111340553926952960835892673323221508455772349149285769730730540416911256979900508166487895495727694066434799419122593202143362559008337093540783514002961174207259341430312203298541056284583978590133841620328188875862874710136994850652213642532682590214843635058598907109799170014781602214817243743080143440311486679989574324430486350574524719139646378937577212646858461288423939472970747775788611314584525671808492371447714068269788271951318607997481266005698364263241328970119187910816131314174934273181440658855895502944998688506986971456409818267881372472499115919821974075474709898045665116251070468117669035005764197670327085885687670094918141862897044559519219844463073021615356469904662667267693287655942914004165888145955002873914970491134951583990450371815571062845429020144376604867031141579788451765506830808906281478499787744298121934186513942755291403351966888771312627221525393288669644920953016063744559988398574022016005956934568041204909730602050016893800599021891035068886954152003752516272052749041002864591216210573505353872920234417545764928318605294849565574897974126800926906224578194855629085725399439074761625033818608773333715288615796718794900124052323994594527311372589792380766614770455448754799133690021720882241798313844949333205753956246346912087189303587052487128904981235442217615541173299862633536852641210382811971961228521845998722784604446808443610610686182449398105744451300130699815093407754164677242385100491179892112939108062021744574650579398810136403381294313594527336546062606923276373929908838480017223719293744836196103280181837926307376508758086307685045184374466480422576346304246767695686340515899817812084116927395058730874502127516165762485664597302241366740938537538091603289634695355332418556734330341880501897142363514485602600107731073143392417788079555932062110244638921848362289851633970844823001585450448038534509503357724735414719894278014869967711424082103831445779791727269214214977324171513363807898891596068444095668405827296184189849888991356909047679543963003612988150526123084325228429262965252346003645753422308598410880150765710192234069923750691406822662028729419288206517395824438121446272212113950535028720784405443081491980481811434854122417278199125820513384504283724836325256822751308150305577014834121517326155769753253124529223024225867226428814293406241945171487552014307220269846750639321497829728525800113994248635014688238932604622378853655362059362787498528969983789483702162503100857922316938779123096255020236858214960198434861540591272214308813135557657824927513133760100358035193523084829699334869418056528306614564032645902143049732779349125455572218309449895564212523097221111890996195714636702549158544138812102299384151732393858796813134927090935938770978330191446519904826114055635168452029884647072157781701474521951104104845178844493131822961627693834457609612857885291196305817964249646817478388626489319385694715950291669268706753880175615979237272424766190919252928658729612800175859887628366156775608157791044098535417634714886563008348623040255947496608381181777637960843372187704703713629760924965568283540292837186390144016635776943287482258094781365845517334964098824977308268249661425803538710874341720625225837740813302461451577150202027118439367324416214160280137543964819331258004221280242616955364972497978187547678956137025708177069699621103675378505198829676861094247365110234182921884052434324618132570119213860019997383882770267197048348349830540243879318570139273077783664751552206787148452849961148627267689029748760233925610875551228130436031058145653247115614869407179349219991465067065283872045991331248405210324437414354041647699204850915414828702212518431515820135650907615204242592807979248872974400347038865639542348982087834554717814562426613920456563743209195007639178589837108584044788848245523028290892536460806473716625267271660950006780975628546530795792390183449588898078458472947367607990202057825680151929518372044891449582070689112931420313752647901248133713371547776707956179134657437238452462808616882247660902726954546481401047838791485778016116518484615804321421575516132095065929628550746711948776618978516046765413584399099068522360685276732532696906563215497704243385461246877986607142999992411042157135075672134446749391689428752731440549533027793354810797607726843552892555676151457911252626094166198619202444485247927565132572721267291627116120003901780307300463772962102775106982675405475083321582083866317079066907198663724183979916862267069552572238300207660107359049317143977551497606370409979427265531142951486327319887951826573775313499865635328210468142668339829750521982587015662711668792777009086700826046190384993712693167597037732748925532207906468758424765092698063555614412729991219473854394396583952276104089872493035736613873235164865961281512008190486817880587458978290505107600644668737582571904583725825468567946654061749689165152885447292187043793005605198782982816010558174869769314163602003430474027948524576357985926514324182780027768258762225057651209251215524825292816237902520651140457294554091519986272705954791548935430533074136383380710960682922442773277731114844331426544371075219007793015903646072909837941079884079550839343387586455426620119219489032951887235594797033243860459161321230615183312703858486928162500064285680212885474036661198703442486053009538369309548379554009013929769375119951256380282073703830999777687333270961854162834993546189692610686852261848542987705720704232186694672070390494069664011393877452512009328491380534072046700444198434641965941548205853877670916095114312495641385858749055925607676712777964530790421963610955497814676567579564622665670322521091058127054471218096523807050618024710818470821803270818545840064611828752175455533832364193216923920602717508708222616135451839793591961898468966341252076624916249727899545816418941898624718921956071868276882334081194675879843584595422080122890673520878697265079527101184543683616083004284809395323255988246023661704969983581190885295493168429523055136696642297505468088076000982723333309965791346988800081706814181170904023298871313292017836946029156972911545225121840612320991063574385918112362371030882185263274751065529873263854723303735701235054957089576232346316485177761930806224127434991797376795590805289990055648107528540750335738741476129706732386491066843828133545791942636192459292455620361918120030982522544398903642652178677874104740291148362119749978999668794936210734697976740586143081834317635911663113628438578484346665828926887108324548139623938055516963029621621275433184413682513756150076931130712865598555008058448179557373990826623030851820100558545840757717436378766966566695960184211762643619637945900749497125195743986828881927105836964355130843811510643264492279619793928063797317415771485693545785387481202027925727321256475163231963765033922537735536896837924614822032003328198176947821926085988644847036880028775706692519943899118789956972405012372920860435486379784673042850079271131378346926587495106985967391021764827824524253516808067350459746280020180703674928305505468501948206815517088416672655761299225612158812741916471144572488918261488492610161569689170516023399097309364347266370579905856026977163947230732431131767036252565080255596483422224062040895655624655940003706270650494744211583253529530287871665202516082682844578985523617275992949590227930116587617552944090538633489449080836603474847282479729272099604242814241963266271174864661609171352511489292119544498011121694306396927432446593276241524330897738980234388972032005640939549174862383381410683189654548441583290396286690849492827206005696225647570670139124066355420006428200182830179662123413387748095786773566350957237762503820381728847710119430726091677811255473295165838244871895648246900148307812666086035829061531036298162955104294042989974434793049395149952077086644473941734561334876724271201096193632931106917462508512907999844035525339193333549209947705525707849174243030908356718260545266940462761930240314953372795735564143698234328394167670114208017662215305201088482995914788415235960745621667797708396457350602172178447672113186839028782465299789748390842445074287636761812275750340869612703889624432108934905606739446254525203094475130771718427886113349002825003162372781607319108373764343614798160554431360430265846287641554285519547025111766589903224832602109661924261192503158861861690191948922562846365199565393456992018189594399656208191931874892818237236340739603215810448849177843323568301640455099443482989978450168113508696908197621468428546510001951471243521927622688405461997560607713567164815965632219215275901554863094707352330103932825983025721237985673240141793775373258696345806712259765875488278716994119566929857909619103291162526702198272579670210308891467064332772307916394956201265658331590092043375224919658277462994718616692447106275288967489142550831852864157399619279058420283557405501153448036451789604542495857700968922714879444023640954615870736002647520660018466347987643915943086386360169611314131206883478213426995689523135360065708175646675923272886053471795902391433771529229237423248630418438116583872289924753686729307496466204394372498345076524672279143264170773918549513230644690774977317256838865420833677206236726697060210171008463568707851300142462386621097328245572968542977836131890828480152383477424026684559193423324341130928619713752484025576749048571707785722701610796605200879376317235985477482681830389551828821222585115178161127036226958334090410608976200181608571777812762821115455705219488648262906860829080847793959790690439374208277061213434981414247621996534490888351534446044061063116101597325234211321254934000619027670728793193066859754303191217102627483628906894873983488849512867140984749434957379476679999935474192929707647883704152639597220064186054865208974167166336515371366648259471331995122526122252050931809512619825476923810260179916582048068863268192917433680721936319269882213400408787291219112891995443194199073325913670215251266371364730573559043887328098432192148011607002291942678027962214846442742114718741142215927226770754845072821388615825032667333075599587732021731298889217208342214731899636963454830147643532496514217892267961530670032036721935711974533450466117123000544958612654838811160665338949407750298095662011340429174466490821007613128693527418265115752748779380615836711939579587772652546546517236950630260249595966263568347113783300231032375355996682880711870747936272209655484683674526838869401454185736272591728072474141085205784017306730888289155411118769880886344255978620492180208820580856075080340380850692229500903821233704019675674671366056842482605798098938248331820402052892776811803500300884527891298735170044282171259735242121325242785436935532820664601620294085235394931744916267353031652034280147327756407764581172003536952857471857267479775161509171081108541675435607902041770452484361314929935826011117926138003800459948730830222969146603231986470494547414371581806253815987738515471617853838611370331274631083733297069348628490929911829447741372359467163879810437476899084809533061792099096937633007009088743189452199182664900014813737247136714921170512831428650522465195372925977533846300671081761070358353820439462783005149164308906542697525184040955043573181154954608971116694665759545269597654990232915897130659204585277152132200684991669672110154918557088153366886554307842131830703427801019738159054629714282437041569096382443907712692271681847213878854598294472082914068816755054282035551904279122775881252264863230663226890422997643646902957328933019788898861419242963474205849188052794041267561087157779037255463945263436575118551084651540172598793709351712420445927987255248335605570065590364798225266407529479464180448008282072226545971033440640987441247511816111743861755191804802116333553609428544205512783800974346724337564255719427121256841604193486570292743375378917313925617928876346563328732006212619086883534387557741117445611293132468982019487605996678280073111215845551478420745329560348872725902190777011564863793137803235744813336196672344728430581951033203446721555312794142634636116697314779405562149503896479482363159350251880609369034691599575509604447972458905380765808896830624648475818176117762416909891562751411759446253592897917536750556271673975084751411908864467255983028947660615615060952493406095870868356415836752796169843105199714732084564715881690085720252605800601295832194311484533067597352589930198631604063181711725716503236619930722435865532109293558082131076917959733720449257543477370770289503739352170034498550928449916329432269077466241764794759697562042898141552451228070217378880925204677373882736054038528696420923871604241141589567561622850564788420752241886415618842349769620465478298087296771331093298934964146463721465083652757276026500281952967915158566158877512635390806830118481270447147513601371792420233858228643524020735030129297992093792047932418828173657637167912314328047321008946344538097606832204492600311510433462046853857583653339103422318193568241218585353625882374564453875147029818475900040656778086134212043778643868508378719907629010242293349560036479105105467901544729242814998324838444278819446190974774888000078638338507704414689368768212532704610435641548394924085849447239826041959671887870329200480143992516234642741470232065878650829741357955056748846665226311629490500787705295311466341437246455817019464225691780002226708719381747116205123290203436800228180892451574447687888134907202894923881383760337774017729721945468514494180766645737226254934183688920448569849940708205865543543484330146005203728663537233785468838652018995201784515065301576037706796204741679352372594327433581911392803664790925768491985282085720280942799928592664141797406711584723412758350124970124881620910491862487191371541717499899572138461883806402955405379971137899546862395653950795280217564270409908472922323966004560723572718661372146635496861577248860449919635914660929188667275868734233566493654220773460113657094749427845928646658749176277299661888999660582090504388958359561207124850965010281761690835722004120825676288103741407153982126768464293022941563232101205249670533911679267414429476570415528232766427331424159068592262397442869394960646925088117608868926576092060365295329284987401695382877022734494592164680074830560611193683640606014896490106063266864820065058280048786107826918787013581430170399051138767438345157250656951413764207031885867835083354318039221768239163787182042389827945366641610761124595245557590122373072529570852218623756112185907211692151874872394503011388518488301004075003776349968478411163145519679623120073067677487827747586056045746028185216449840655577687492472982315074517156116832465813541008563292932003548014255975380826188727642083984652727298945121085486360826072766410515140764203305800353402626230289356112516975217961716410813135391068406241257767451597748465814869049535117221470494392094809132062680012999401094058420349574974823701647062263804174600606262695647269146202956330072076958820194079399625910127871138421320060882344164959920312701586136040958409074299810432845375695028923059824130810022602240902667847490731028262366131525035951087217781232925186348974024344441390696864326717412682494186989545862870251590387140146970419126995130478306890341459924492368141419166579519082461726908869816044383076681365183422724776271577079717896765231346121458192058567059473465194478670611511930044476652446705965945937612809841976957891291780963956220670219696901105351258331176280726759824192997025748162966291226698900367248502446449230154109795377378905817954734566340736466329886895427587350557393246731238166502455223147250398080040999119848307297778674999094357179061382844714591332896759423612127881919045805832804965232362716488363376648326525409689404043601135914920448404735029271050375861875645731949019596844870815445562829695908721171482145124231370031483871684583536135587474579223325780377759816539191808036391612320261872791172224727113409084720177588761075399097601494879279522012725988901970353458025221017697589782734016494073401926852930290156236324368111018567143354131899350894630517150343118494619376509953210481448172910010238913179062720691715174698783988509932261737874568859709232607137546043155895506187946669966123733659725610945153842358328545210332151668389004416670670385868207612498962060789371506437639915493690667562505082067161899214916387464459808658067645080542528537351674487593396659514697954551496418824455895712028636020311621481292199857736587840424388928904482567814861446022220116517307259949650761802155999765006640180985595360803781272915340581721606600030871693371806470822934277633625086658497670563738788823139507953963516780988677656302690156331240182362611533523984096406903135950151938085651831690881481962598384520433360899936031896097862234484088756933145484055209387237591299711836476428915813780789267199488828260772750789257456649565204267549964122163880628195363360669792744812746168098947578947042958138634865913785367602332957000841917335831800698511316096046148941266606871496144968543516196006515184136022698029186745953423153529729091900963413003934111523255558407694752544350556869222033406165311166479647938602377727010874918909572284771312465633551279676832294915813395974608823527304065531773675181433649627902149877184207304650675087202412134658764732920518083687714390075563203410986477355440309541167540558695912080202064014568349130989028475934440198589106021630533279506961831201572248056169333670852859282155860759797882212423226928629692978862510375870144153502119411205119697345164374753629113647018931633691318627226632155674055110947814072427369509937308368607709262733446788860066511417537239227188536351763580032783127992380657444624019243958856502626393475598357368825101717757824300484102883194969141683331751730924862714877824145051770466298377412822511441311579288350395118810057006136208388645296089957866309637360095820678221932688064669320048729682844285441695684070549675844274377922817174786772865215301451063600083404138168124972359105587263366835255610492509528512095067092623528030893668057687028604436588623982449397145176926554055062264436146521903562561612898551222665618798527711133263949836915498173641434627353404433755519660053287332147967080361608928615902517185695835832646180758362990186259253286657492062320895834502623004180994497972140098840617787577010909120543536757773415116791425075977640447549518749587721606325956140398030858182603150709198354407725963991237173991394509246525756993287176677774363803107461789952054878980040363204390315698476026010843209536623950743279950093043163066183340283467196239127888989677238220646281020952024752279577110571846976377098410234017558729252227711558093393714150190332815144940270732285319892571187334264766354154578962750538241821545408847660630256473879327258194286487603902734060500402341065252872582563840186525427423013441539929308783407381405598271420939682551218481135269405834698681708457496951926605332573762971293007319223372434938646285113512514483313883747682524652530776505656697935373383323584566613758865447916273422431502560597382261937157217441806627412237221791669071238657313320274371925065364644816999287996750522943898851389627346005429526640520515821066791587974900761313695149841753430271454885854638505645495056640220724717291662093202808500636160120167567717355656830222613772272695745275052108151994927604029367955724811900161298092211942233691869244232403364453256831212037291820830935257089473774341485154515248877640654292797089298136592232017835532182411545196509974005894353608414078978609210698278880017535979697131796045066407826447258943065829515356664637629343026433360818728850667864589800572593276893164408117868349639094306074708666978522093079489243219198780578581039894191283360948894702432887172260775138817995105792559370240633225498893899145733493743850888989448282674718380546207794236609655019072095492474619568491962310075730082827400972658521974411893113394071312625294453146280529306796469103227818219758837706331105121908335058871413020649158654560695748433874353173901484323219624130385216209785860560650383720896366215023476064555143950559791319650761067747729115385641343439114474370122257548288000712481358597305719785052149637287862009179623306337407437509719487625065410037320806671785286331232890688810599863920390592152507917197656138959271426702677749446725264318004297362091194778941035510425146986755554782111326350262581938307511109385449030154239899886498706609470086067290302431275681083156072959485415433492701574573936808295235537246411764191408543614028403928867148434475814893440397948760432281016953680229281523521836495104801867189415635663362597674659834320758505265201723196529409313825000410244130321482467429209529453502380715023048193337966543824307486410818603177463975575249470018977885360549837872075625572257874373458347022625151505312288938918438312492167195066352219487976456505623707609723301744917333112771527633089675634585995545047457612450487362239986710434055774483821902329068843404021695144296810490445067423610737001152070044536341606574188989202954276388381742394538666537958595029155356585415624330857639476828799021401714486266169957641201819294862652288208239220776747301305900597610038463999991257265684098693112635718533442408600275293259670678867927113188397669746108065692679756848408138279975320734564592618595926244957180866076161986052958696679419912467726365838741359065586427880451941010327260451842407893914375070502265866024375082272195124460625429268999165703043621298137990110217882793608111001668319669237034883336918670744578874751509685792454799327875894779117319318775384021459548304074419943983150343029514340519336063229434323690866438611903631029724895383782269309887678042695951520440584089622932828950056867976164553933996429915237771133944466467179828189679418296374116052306127235445480218989092613128704142257814649178820101868025285392535292016387917185188629663192087144114499192494711651662496483146285531933953677337159160946249789022172256273291299230369207389066258519535077242685516154090666203632571824000711671827394820419659416982638102381543746302912259700681356840708651678369964728268365033862390751592936869073802282463470629406865194829450941450005909395886082714210008069923922140329429759916848195155433968148542673515650021139355433168881221782745363096902894149127720410200567051041997840623081300871024947449946798892437797597376202369995329126061104470948909700682140177799821088717789281563643404660484445088899319700471009534130886730679220487989047837906815328686402981637595245495368566402997651927710230311120391528239326293463595117246086565797340640092099604930417802768058891728066846136492399271067295185275799893593315469137633899234056417117341151938554955968981208374084044078977598026034956218402216293089609783762315358188694528462799055648154073033820370177648554335310509411144634144644407752293124437551075172279365805954071155145702417348362036271271604939412643501013375711164745717040767308015845262502132255343880821008069908257140602669558625442526156172068694398511432045764895577871022562910039953632581118692080431241291602477768004640569596622302022148825929568384747966555647867391189797282473460269167891143552557778745408600225509126858094145986282940025731436160322848331404927623047231013480406836545001076684954664582566691355988971664717553499855165579633620079081777277234060630233268445303235182897467010561881776828863230194278600490415456024965507082635817385806545418435808944719019833072689811309234592939161536323559601509487988320243551398178798326252415992639983994652196208314368952163667013964743736508993003994204499532722491008259349446158877937198943706497398817091354689255928919938607384778341489373577776734329348413777837288585835084372219692368180409691145448851228239956256001156548831881213139802377183595801499825495379082050214508040551711992873558253444382685366046022838075054951260550941714271380579773522481024154245248124382960946652374302188742150958311032124875812801473232084567538532509621037725827819933253939149486198098953194107530337148858671640845325582356500481476684209253328510541524367875235783345374045710429980390901964251448261712802790113402635638517800269361048850398636555722827154041900774772488972714967640484836450680641114068591874167323297324781496202527175763640319568017903041879649955539658809811820954352079670632893150942966893029134547622934263151957848220035173604154200481231765313294233997401221861957748051694963819519095197531802497752519211121994703708062009660751123683067521102273971646875716357152496161613178986248292315494086938637321294162747798525700232479129349626244865772391340981383562300158391396686126660276314769584211853444719541269206755649480259971450277534702482977464641886119949229219273749398192043105146732188536333906750663233580743989323129866840714112334128466747214546430329251831513143879349605265652126235971121419888524937078469950070398351653035946271468136203934164177881660327108728297936552460405144532943590958469857928660498861334293905735256820183065233535238096017943599429260224624735160945349407134603534765589992459583938300293871122395855028766122715859607477919978100089616778899800159252603456831209918660609617921424947381194735498807259700939931556695968120672357487218234662369787430246710062292079025202141386261296667488462134771692826461609893475637823007581914245751155139770716577495723776315752481028707993991477315236340903243441110610705630798857688647401183085328146851020279339901550443577305206148251299219477258137590797622551391468320499175705343012064771791021943216579673359528946306166251269214812185298629262057809898546160785408725747346200536469092841590634869163258226813628996804310695009341376107192818802565510208344883875541699596534849251230996640320663460731116738614981161483418284119909325295241799323330367085661734522357458483831396960738127934547379832286958293538388775175906695333972548223833853195874417121632646275971387361064190088086953850709670658745719247498936826428812319266784470222885187207205585535747928373656506791776810331563164479522473216079155060425328012785866764871322968089403600306552465653413405171109891794170275459874793687825264702907938655530703926760245529593023432206450030071156903618786181000497220281087430002812359926473690540271599413065314105111772241267295651323693194314819435504691051259405361820470540064516486328169707925157615335255507173776847596617942016356477841640262801029545894718401062014766864258212339070401599459082931863990648098706661610550515048730430857787234924862833018531948859730921164036875011817059413993046075508326315314589507480197073393320681718570631657762300524752108845465064020751761636319841467817223843934993551798472893227769268540703534309991424381402329768875815336005512195050337401709520593039210392591900955191044424079263043972903680172606588609649708488840228116498846078101849844132724824216100060292458958454704541676274043612252942020698420358569171645111611053130023130639286702498861802490110331232247794655040268332586719306035820301041322459948397090257204986153304192978514608697960687450685561182781113813501750411617771024158053486137312067809520348971228789264887962449798135475910890763061214985109869440763442053717815514527463801085158484875314431411726539933188227136006890759634032654158681953587721957276095774830002159084202061169434321268046586270592984496503561389822899640867810673905461216020963461582653067820845087148631523210537964897800984454526836027328910030668434542904820379752806475496777446650476097080369733811406820148846056192883235365893555972515457136038691408807670965768680074084840961714272421637601032620244268415858684488239990856652285043489289889175186517160953409268792523312264626647123812221871737476522452165092904584651188650910819215930044265177727220705268397170860815271112144052637216894610140739817194343181868386369081501784264888650675800154531435384450994067365371308492658414389902839960219922170446399125150565321748874362418094307397644544715801646383448873732842566999523533956690481747197508484966638288190624627812507053071870170390084220524520858756139527901252102474486000955812233050543434615452327652097680065507746274928516291636068259898555927753751143707796569721727469373078662618673631415123832427053215620110439135215253118084951141654767593649669346587705858346598123689788183014627262835023884429777638301547010909110829315555243843884853069048980678991120058239360651887232240212622641702804365065768786640767938609498517409064337578842213666938531554229839785698276002319979515204249482413372806797658020472787971342554290372984956219292638290976250299040089935838751918504167822238368966480904072363620494893793736510128486444207449958234849224600728889043962932520944504711304685921663465785780261573720352440195621880630755668170030227454530376730976519522951673998201181630803902810874164434009372084711265591627174270521257075718144651178012531527485245564042983914311399726577444049958500872752522373689751141631223253899763214880439226780564717788853131991367268027844133816848287791365042254267328223689361350873893546592737528794933881402177120132108670449682108384004990827586221778690909903124243092713745538059551927653542890242653626745250261375539365504817315330965845594723342277113023420301665626693532760253170757991027413196343829553677205520379825188124753470173559440486116395611205423983576839060234710038838900974154492670405603223506580082424117877470216953057990610033574269323878982225773800519869103812670449613209239746418687679065313291459789691351981099272963177083679606069058440041341465311949178843729044087388660235951495161553271335436328956425702699505038639175278197859646364941199134835955728002175723753045759021772476738293878738758246948739711237193105805801632177070059992761511269955098181010652962296722231638541337611543677087474368723101052479114069221210703290966275195734184771769835451085269169921840622745408486768223581731409845858209749366266076157186567714225977940380935730641395878415932752439714381155594012266281262752701262569694965247936915609176668842996328669497061780313617831382653514533939280167716089014191837492713564124934704387424354844232833191925713966819116095856410732977210806318509059015536445562301973758929537095211252976192306061080043693523712780639226313389613818245243278440513424374334201976752716289729827310849149623993295777786576048390210487686588476483985461667436155640627050427595089266605861937973268719386752118000207678711071146772065829315954458318483317922724627718634222731157411163686955309891537267277765728047129712784039231692246628109962093063502192585599420077326950118375561803037074540454331065248369654403164103864258213391817507681535541149308857289593463524272049713702013509442452181261611797832707591578885805024275677608063221303325484398698331204056746124406467134877162366473091924395311243562565858164958962947053960286200753893178257118149351735887436913965715533773687158256238626339054731217716724531450885762913582973895766678548353276867687705458120885722998195533818022615432168744498642687609101173041103621588317111638485159580468322870781659808892972910301997455640960323496274469467682050297652341660659605210476179145455303319959758370168869412402899178531362661654055733169350839856628141231037896939440816702051530821266012713668156068302246599117417435624983519581049795177216389543404081135489685135107906059461709477077921664768133607012449825539887686147989576082322157194341270274461974895156106410394728460970267074355736586710523249035700359003964900099069170155500975323927530674544785019111229455707128367684654735621206617437168582516097239841016344395919463457410857285971443304695324020110074530316302724406354948177134493147315491007916647341134602901635203057409198232518927421162094452535248728679976146910951504925292933036509687068525620047797070802804459221413766023544334679566974367372883842691319450833129634341412280654815622130532189077134743082879306441610865913243442481799047978587373149381755242808498993277632997544928942901185680103464468791633307430997382194179650981552910914193916240923689384490468672559223792579518647429510477314443198716634647653464270681375657365615924962702328691678760860133726984034714457129477845000294078167275453800825831072247519555713146432349663979738457948844922394046045128735270431528184152485457164706719268528088018032476436811139465242499519739065606015855481575555153413843686808113198118602062975092138416553105009594399479051979697599461367494727772350961709600659056298527331898950307297530096888652814214083097695124972428230080840974160609825526992394088375761016786710810601463795850069601242572039419110553745833707097928514162699386715698874716094485831684777400395976722411030015023759107876309165868764542024811868463530796284966979599507052886868286099244391701949397999494124490223083268732717706852125998112711054709036448751172564081545891362996243218824293829047145588709002990461504061838177833123841785176099059945300578938306316301225922368404151608855181119994528839482411081394717622932302803236251752321042701577815724714809907189616170863530831356836729851013140813820615102294906025539793538237555550092890438813714718065168628486139169881326051950407761819055437142713896181713905192462112465380510429554799991454842954968461471192047860909139916165669877493009616230836491136013982266545038531353077190368934685621929399687126790929901521129112633692924541508750049959083017834478605283631440397660694539602972028926788178115508562846208006532676668814233001730303877249310601695814228708746775954149719947510530377196212805249888821099497049615225311375510747180104074989469344497870927358784929726586322247540770080308786838568786726179452752962079210071887497557316909664845606328165728196662598311944508862236128336849652979682544928214849161412246615668917498545464667425749002391982508450505255707760563753616092703601993713456076447175363738788756448330586004652001757544008915734712681675217834298453162244121810918297345095236835575534417624613696478230003453907695072418178174513167040561076524549561331542829774412628184388696864336684914440131798296125838451947407163018434679291847117262838364224301036647053400951904693258119203025175449217407630638350268115204480293530574844753792301676154152382470226606943088148273108923109291754234951410372850731323209635489727170778493753582992189172388003257578014730275805168925184351481480370011018827582308335499784640889081855173241176669220906673171383395547861917428648754648907534174675577334864263532213909778606253583633055674248881379656544144767694519266336629991423192100547516051695206511068718619043365300173163069590118006182200114611507117690463197637812495478323032880501265996570865641918667491176576943392347639425617917211930299137490298039180939952484887324371473459359348971604629421142011188744272492211603482532107724379747845060514207323178331614403165160884977174721139209262314280176386927717531085723167777123578649192482339182219622879452480097837612546065797893759922352149811894595999094407947474753983218056667671762571131937195285036953166147289300903341959185984294524063158233319355836029191288820554072949037146294067072471636650607003987588753685393273226186106224821580617166832044225564478725955189477321997704287766315559557938498850052782437725041624423941838353148835987313231313259128404470981901003774819820219965820932590489440907167893750906713146796811765539417081058962623308897604254366100823629508227466796546097733766676983942136960380795565362129181659257321450303382028013597094703891969559320943000038957187921624515599534982971406632599317311293323340871639519622177098445720866471397898796903116905018300583701190914637929448442324779291517078602691843480138820616990470154980114705984960349772204136880978172579668333320176045624534482295892836023889997914796871282130911540065150061150954383532391929408241952240157076134698839211820041932983685045400913190206661395385098915389576102939454744317226179007385355052178520491095240342722369231518122313549509447942112220043173399205218092360410741109588932887045546511434812355361070217538099244543676103063560035940115867678192274496112906134675506270441918240564967733262153751653703305584273392634516105274354971008948398710110793890545566380140320937215068223723354323074394186296474696461696506915814568774250864682912188566417325441166905187721420698811821526679741129766531875281967168335299708237745024552192651432535998256566374822089978090502481309365752794025442916778164357252426031810412889839922064662807592335613948644645404869041234850136056328046968452239718066424361604486817399621838124197955050935057698270290113235089877151260687250986788718770062897503986626219899356908178084973177309981930163036822798912394804675988561918375377317821305815828125696367720455315094422443633337924299301026503350525363529514593980188796230443883223910072286791938671715975386220545165839452127777074636846035215007687485762908323716139110079201046388118974568298069111030639141726034154414368424010687086169265096094985561789228214347331201883195979658652135393323292873826269911559095611160725142981508673183884479096903702667316668959605159543359695930823429082484403735845038231605303184784409725847752130961073149053446748407672852565617637720101536626090582041986997222804053986696769235835927127134447083289445420494821315650405875947200763860299368368108210462136101369067258476674053951590278905340842213720998733588834997289572267523379774573273800810971690317581616813709042453037960174743999133720144829428044732630084682357201533532881130776397180623864534485163752185671933612430628240812620236026202238474785357942674553121958807134415361213367165088464133012820261552994400728667184051849139156556370701280877778878333855224930863832554869882843062775480840246746761780501464558332478440430145867567870560163989322294662115805018051512981806171190697503269543949672079769448383366749133205112950568182838776958076861049928846374790557991716287731978833960981008908768454415929818443191914996904732314950171752979881939422765369850961876345969079630583597090339077612851289048134751051448450961922738356929722107775998947390299077150126499952620459814079834169305401268057166387212610642913727536421499445776463440733850401257930387067509945121516716391001483473768606666187334340713009679805085392285691602877172049254646460763739922247125743484209899954178993662204009152905069021007500012524468750487575215754992875548275058145169705368334987624245572590116409197904955981081342611095637155396381112047800856139106653604966606219786833557679032181353958246619063490574887728691207404310998105048920877250973142762310486179568592717141713906681143988695187110706289536469051921005484904867113538291828732043596953735414534479150347836467799122378653132127308701149295774586660529345527981135790639251444709011258953710596010676748783141443754966247571706731787557347704780218862594320612792259678862247573417281320217255064773777308209161653389666841305537268868346505049022209187206186795358417398268098926359907344000859147156856026697790389379249417339692711443962140398395718917262497579166367767817934249885186964822061799271999097070371435785659513406610977548862465957105422078633986991448834812316200529797511000498274285128418038556377319427383128808966176848570501716052179705015299655642667516461318902935304941757395602913765750643304576731952182976712544232362901414758243014962129025018711609696114205889142208802923292044188074074711867733319990305088865446872937567470107211446372670648747266540781843972540807841766440054050752042220408956635943436963009030980127482852666886086164368498351438862277045614592866148700694837801532471769434344482420661407093751493258947612174502936606058371152431477460963030520772198224665475197786012239626653365749998454484712746075022283118097646570867670189199627103223780064446532094094750437548456573575555619620829019773815147951970132580103651477068404988005908979899016978954685500376339322550032213654685951034790762918624440313701090137292512428281611810940605222080982316754449429899120989433370819980940578059432489497829879463649231100118595504816061454511573540329076087327658399533023059202518485626296258057089720464371034565738641472848621109924767388887463233110866755396604997850526920652328021365050353452671074935215283719411831696508021799977660635329047603112500457376823427065659015873331887322344765993967874378112968055743525795837057645686729330233062994722498318185778740465470862914985338564203150739657100837868007968254516559264252917846603409351289569207230085984759710250722019676921822168945839586837905836990183322261255682291150566804621439169978508052538155753564427790832000763791404995810481413641741832341242410508996942742806830343842698440038593815471321842469023118289630778803933135591456771400179697861209176101020866970379135540697054357908899987782139584253605139359969478321230507427629211376044791881730622377306807920426267057399578478359123961997968667205001312225517407001261742600895996679826673654047960414028818307189785198868336918641185363549832154037970792372247987398455519855755264752107857160239323445473763345352252585536715381393518598053570457778088600576379810987217147425480416775396250208002371617112661999993619789816119318772220243146360993999344307222272466990345836281764570224953646753322047934719136295908707070349244992722831863309146450233489424478550529463308384110604265968698096672419336559239917306173686013738339952577602019904005306336996720698361896534318393513696756779737942538439784380261080769973506928676612264968834381721870528669347576609846472306185755233005431965665892805405690174783670773335160588549578646808068560456784465961188807256062637913736298703783821482505801379283763635690843888977101451216436106476320032326382797436057877909217626150431205618397188997570968007770047260981113355709632249094754380237675717439288291467237834738389192555902554129026910970700555633279783521330586177192513862796280907480398155634310159267466739408615896707335171689390418779863676042802179450876553456301482764005819336164827708633283132586059613183805842479597347629084123912405011640897184510236120957997508311107439348850462780165862829910786415043739239978418753709704939217710986937717702071216421163840098459580217802356621643411479156662390991671022890029201018974282816617970931848255760579033084472349102597580028559408041186530176235504338072706237487114147584735106228973118762871166164914839108945430345584444873411801007292992657145451577515714881416847233702834344392624664514632860363492623218674044697130348754054197024983517858380261350501508644045131442332872359680457774936163257190308017520674390860577493712114837405265263476138881896670375074304530964258666993995883294085036948058934101177810260193729282151851824049591918617375878789036525602043631374880199569144787850577892336744656613313718704140461653416881724413769423499734041345044836818458528050025494237162851362549644929981806201719956361910050898257661146158711599823223518208686519150578352383512211236966902183719910550022069626544471699333434273367554458866364342341883830549743427251048098186840896080130107108962198320542484958801005251951037412344119310562861531764974502028635521311210301088790394196105782745090678284474118882875121861143294845874705818342212887767593548296905334221427970059944679134492028275027915238644163758050670792081566671037381567267119392373633997584402027092891610600545144828333610536108628034797583263261111104691872522340555945443945466591357435880664061772684473676369281186342372545487140625050783444362892996101854330880607796386457374421987097371752480317297725154296914759378006793727871077815025178631815763736396815268472637898727017652740354147557270933154029403558318516967983364469567792013763571915577763291465941466645355598482965925965849457669058746087638602742490731487720455694679129759584171697251519469642480242387470712580671037290651962809154673736059712231129525907380251901585054085561113543502686392337666125778323373779082327348456111543893514773972619194484577203909734067736684804946494186779366077309222892860447026066537821085758313135404800507861174445232063594968700721451517666318814707538313524378386053228290652549472361812583910249790535853941417766888698245260110929150159513403511501642698996828777289170226933361197302883639838141876848663209921844041769497011099525705105168859153638326794654796352766622406353665126273219788855958891311267003572734585882144470696476954061134203089866292990800065883134857545420598164448955239484378095820432711579378444315294151440924385706159649851459212322048082384774317713432915654807664725039540064346984840276566660179700688741723866177345488425846899018737699147307362275351223484052396975753180843764350293250337317258692259243539476073284980255964738965336996512874931943464609148192078893181532702761699129430173613250670979462988821859740781780304214199625279565558017324090669105078561215394153108725208761732643284776119061852245915822506494447470537943429565653175071637937746331014196733869220366568963355997220079986729026115797146866517706336405889846382592917203159026022254145920224244310054348777161841567895132300764658215188739221274883543225289390156245689016730888371676342948202049513210124499484156648517458330116941522297037260746396214577378317063949100398440165326772413901931182447518489265519339693493250551348136227850163560776361918413121357788082763353267503690800048438271348364250548401810754815130391202725049069020637719982013958450602872561867067364056651277601482795790278545109831916639929119776906109288473260954866907930985081352756410419144448661984413242895438030938869469829304978398232832485542909544235128226194441695929115999240902440192189784785293253245308350664002268502140905666842232454054170547345965786855309512769730816231257759525705372709105485116301012564228357049756887366470498189040056824845134184623319177633232633175210588875311406760452470963106043920142028995616107962461862342783029085876747349765350522482439881269144698031736499605925464218126671908324288768247184241027885391923617490416368821773405671827456561794611576699352019278421038216848421177671758287400980880399534963320976950375977971897625882280044985655249861672808715503505417098035526263427583149801395215466020056531070782653366656067031004409869626403326468112509362490108537934096293230193453870920280322544813288341613474602989746267970576912811969786155976478599813394084908690370849158972173968552170899321776300210657540110546696900022073836286814071556913453636851293830554802077918064223375397882752250183063386617331770486280495505666423947774714281441888497097899639834284451747395856375614241314145431361902713263194358772796999634112368177781934296837413207312904151613755294504805371934683755897532301370569905365859397887552226150194416579374733906585288279195736877090550312175806827300811812758549635038605389528844252504332814053891371111560583675173820580428746068009480084688886263963983035725292382362420618386544656278489825788127892681597402966006265325074433156333426038589206800628335294642901469965808124014558247694129579938832660956872915387451015110167958661603653246233216592790887587795941556982091258518932016984370992269320924555891691469929406410726980582864394737512366568805951063934045377730277815500919725938958624952075743369966179156022245759084075437229602422597715431316842046327683533738109409687783244680739462710078455436724530132827989381752902795971374269906673013945214419687736854370420142835946296655061501008541287941007156930772807634920871616726589015996115835217542999169733528812999525853777773439683818941015163297237679917371909634441550200894457348192197082095633614634205438964263328766035594474695503308844658135280801030964184705870396616451719725497421474191694795943055559730147477773142736756175737726440737526964332849930018931654730582668942536218140636827267720154351535126089731608617869932306526205774921297679664991086498048578197703147900765945518433366173819368586398794861853978831307358613810159594872575929213515535670538525849855227014754953906904464580531862571396416484710074862927055840141370982038838428051195394750893707724438531748232247665643019660117707183543614665683410419390537555969582423109645763598814954779132390496967507415488959864436786452330750650272932407252464576806446990512226255885966029763545567433464935661999863204785680574783061934686196434610590624679704090276711709460234362624897169302520911473263332514337456255568176721271035280098270864527995120722213953473936278544354281929609823886560763961409644187971828988299445234556790179971514235889692882985081502582361769056639485712826022023149987638331575576698188233287753704690401191462538644097181958083802871051987148045611108114081306800494332775610424732721514429620278112330989904531569386017058185921186329997340346104939154012249816121959293740338604571768518512095976242988956379508155942953884558200476834249717193188872469826977763080307341634768584783192296999328363848316198281734895008086741808484758414916537003026380583651483622232952534111863600496144080992700239236387812642490219851229361911873522726756905759514611999831725716429102938871990809980706688776308395376838117629092045511122996660478467507101712318933720362268200945161607260200948846679791095912717678464575024569156289251291290193113532356813014050860040049980606424437493366133316615793157883994965277627886075530443172598281896970927483581858161885377640883057068071957081010047171829979625496238413281001314191194071508069437400377953807369028735089233097621573412644240638087731617920371201585673708794098555129049611685757562172127005113496699204622301034023251438410253368836516837346744011359708837260011485955246837807400476004245168446651646654446790106505421650922476698266341984281500044267383748004092566712575609710968934935157866354097297447123546984934603658645412013285607769799231071520026542800849786410681076117379468632958609311959892532362619002820019986607855998563437395777060132625045546207606353081653938613866167702040175595438331186051056754156810221179197279470255055328162581709405909763248171481508879844727666489618006193889563626505013145679210505035746843736447821338105266202746782985920919921061343093355798896294395693713575777669060129943872493641392840733100718106111070469253002965082447894596204876531978343549433679828665783349996113651056998463564953319419562939863702467731415144436497921949824249692740250929203744669501744375817972400387308198818086779305548205681250700162217133073691896895434465331463522907707369755012456760828598085233327213548423593932449431586342830331458069536778527951813806743844039786967373635261848327836931873844077266691341830904627123459336956110932750781264609251776782686346447659323140416569886678161759832822001132686117255650830420608858134405266496645628045036467887503452446722576312045359882965236229509847657279617495529696727967250268455817587334295092182475262557521510892720328075103515177339059401270042148022701230554987905181881514120006833830747810240950582482532863892039522315071237077846304349432148848023895755619520076842113199325298145923440273571811730852614056209722366278385568743492031085522615406792771208348172694045528711130753056586415739458817426515131897895091907400049467148125501698478594136381052128200733913491002802619174230818904786245765327142653297500043760890227066315293568202734897803208458391979988524966423443175955594811734612997743979207348275224632716107732721610537447677653033416756251727681716570401156499216211751265101981639827074102692097528861925259486362840687347215025567201611187733099847190945754438986782678611702589480744917548509572728991828300390372638535141612967663623689336567572379474394633854676611897034661142317838145636209768116473051288787445776806171353521753104431747911523533663946340274607514374989288469156944291110721969993627314317892576060805249911058301656627935552600640269360423062460018051793375171116944059066056752568762712370508332314485750653535626556539697048146537429656457060163397846302738022364195712300164712406501578344897703097283638070958152511202922978773893302036161871764742921146173178705503872083644014267437011710562179636425146411389719684131730536343160135490550004443997626862627629705758059304887872223726468598424686750819988463366600019503234295199548915956888036944224405326009653455096969869106237314631905866638473684197867750412419035090850166818343462215575171387348273398561996767285613437081179872972202026668019137765149419694358810650485066212089993469371277177344697887954412632733108730649756382615677269033222366919009073337006143508953939775953008144652588348205893007585898945949617864184517617582676870887260726852210508004459043009325673291991446029845917372748449462010027270914249950259473381115737267253976166916678689180526366508659914776199916045362094630956247213829814057964936146108954098258947825083184951144018488236455712038627834279220196148441652098817609346915048484081507854594945471159336545538674177409904337375646480335606510095173809962118500226007050081365507782073437405997765520434941712802824688162452318180595958063971648302659735132953018591873694029329125844614928080099493494229448857274011664954109786706896101375526956912915145346372638992793483095124750339677072191801564097014307268124961023875831837548300753655203485312445529769225416962772433621368638680728992185507007224156945061849250917269098992896259298804797007869122527204356863972850122962623393394647607547029527580692088210736218499189333097152317644921712014984577910300130551019264586024449128103019000081341362620385164774935534900835093919525566409195280949649912796504370013219337388131727911615320847521560025405496042234543513497863108575594859177353158088684920605148178557936283896530380975738080351721192475299007594044507433158509812463307208267119221198990657050379990737384629602825597840806200741033330997698441921441561863901972348961036088915887191603527815553282523590061351903681197749573457098873040201037450012423872888090739333202853518052846552629909736229433013194527869244045276396831093508368393485563194522248799839475632746229537170164415382560158691443803697151282514301396671546924511274292998057796610549380354430690589640716426463166650958027134705485705613528537035439390571084952966293693983399686079919918685938048927503210280816226121694305493195891022135521474483408776417276763228233979815217455048009021944629976103726796285221502432299371983029031924189815781206954439478018383891201812648915894980821349374137886422921511197491477588312077626593907797931783199081969193137194384922717001947340171445810165396831898616510511271096590048810645172135588104500286601465590559765682448946114094968287462502293428415975801531291873331731080744652405154811933318138477651181178191216980206306115054308190945970424025649746421572812761978495643471459052025923184163479469025142494256842452033870158414258149231890977590176561480582785349161522411347675231372004459602913686125873352064864925771217842179472039543484376265256394757531466695293389934591656075244552931615628604243670694234751662308152701798126404593267529567495710701453918642618112079887437845213914726209639498089136171658494514981187049497974947487310640516755146680300298974740913214843332059258518665120198833950857387298022954565554592029504142399325658935034013493174792217128827460724267615114603190381401409848193364727880913349750887422026526867436965487869310848097779223999450451393125906867207581742902285573448299171243990545494182157420731769943920527070762266113597314501809151428010138552406045690819938381543209532682607912272052260432944004514853560751612455224362483996569541912703811446898310515567763454879147461798010719426360675945323550386159228420356433806968642318318888970381816966554659388613854010438431463486241718228826082759687097677338949942897433374729317606063738167526845087353599882121220392326184628481261935182966527907769519562796136677366052176013292133143850258498577377712383400795408499565035026083534158694865631212269805980966435580318255590109525513882339861606272583363635443845692787549501425920980411404499536660167389520509354222985678746796786754143899952875441222834792444430730947908292901928019541200038520079861181635767804291938229491650969028822565077868160443924487907624773320015358232658216368466829968237393508596786831009143597915712236915066949341374971481883852521391369451653825347494998783408152900043601234166011293215758072240857850886036036872047868991532761748174302927807648510184561215795754539687727887756128559114075193225299821966143758734364875139553734773039852302109227222958841970013278966504683085322568560425877633270241836463128334685664987111544990055799165493800140926642452085681724276412421296489631501128916361290219886570616950220352165828075529691192589613332079820534752428112861229994419408568086609067863430198565930149251513491738614114251312366941631001217563449535297695611469476321530687312968532618599744197776936922561777368429463591862920528506996304192485990521674486697741901976534786139550075909440913669051980635395177686089540773175650346740012938791008646879296651305451523146060240192507008511948412813283624572542743331668394225047822582762882929771288109011790066553472517770437957888799571629210624211043324806838596875745097901228963527394013569270334375986337612607321375204704633871320871832427825338017118759155637173480522039514352690663579457156412591946139434098017292368026494286975427835488244946707991842555915051535469069832074694160054502148064301953743726831711557167170491152037145807913844759192581579849456293049523591736618609289677527734322691136861398645709100200649868867396421527775364716942155972246879531235989881843375983892049175425242225418431031339843601287554978569281342016686704549847714008617749665892843599852762443463470740688450678486503473215830166456280281547330613919654717739007177583466464060490427286266605222740598454098874845558673955828528992433869068003320418391041720113675690562976378458501213436467928462163635381965189862778024511117115198758291175483713601354301102021517435133814273583569070601922364604934257151268550022139111547573163137462914018117400004336061921457428335914306457042426334590776338659094384152492267789411050793275758685996384731633423457713151473517100323003369158494269191363729301930631425365534079898448188833068724880516448968145194055673029976329450682218545139875374276478662755197627783338468708598603071236188888938416409309345256684495710377939559395160816329819076111175070037289005099368115209870045641636801350242824123578747638935392019108992486986270810913748104267244214143233709767666929782395454367323511159583916809583445248802654420925609950387172208048447409413422973277025224321328273808622321607892742296800287253427318968994386894315929868729108240697957752026200627822522195893412599645669393166885830910202132362715535384506351097928529550023722454549985847017705045868863789742536621606590405633427196151589880184846662727787686526281547413256605581788258050504217405658807191880029018680500089072416689901050308713823450811800311582383530927279047482601354859402921218208016818771449748851168627529653913367071572662413357232058924780565750176212708484436250566314296530370564857322036683034842275583659030093260396131463720718530870155735089936735584772639643333052488999105069263034974638431969923829510377804358812182659840736769470308525075519274731343027970774557141481503474960348495940494516447537201996387225917829375661834798036668263867359954945141242874738631435453533851230068254117104134985473624260661452372092205861374241231583463397831445492000612667058021563597208423849551446983628772052130886319703981764237574262309015225441800084881947487407965661468616975877273736415171605541157434799353198127145437816634942920488363735230904370171577645319662152219539093513507565772899776624520640399579100513901673501013962987968613913767950321832612785051160581362838984719941684575380574741713424517854316353900403678282014503724886968523596081018721591266136564737284100466793174805704399890217844814537008286613868922611423097575649459406669596762098377107524213531678987692169148457587099215733918006298084375119262885821389680236789147690442616933835209968483889829061396393646341836201591748869984922558922359861067719630382950076253258081477399259058344672455309135569700737960782396648483617229778453876667307056237902862941335175483998021566229932579074562362189592535264825561276511895974673674654839773887590903932252912641745678564931482049935981469835110317480795318417036069998575394114361543265610473840288795800279466969016306483304208117426631898504614499260375920611516613034286711401488546201853944550731658166281522827329126961115743003267344739077232361723189232079608086624802716504899577345961897910134581546745644214395805548074171834144448599321745487702144405319607094995474243921003917965614916619075651148257205947219580429263118125941905044297928613880397778053364814401156255790170400187897748216558876937514758714569022066639478410453087159866509965849173046865181697285016678908387151881146392550575847198231479136534829807043992757692538740567263830181584333213447752084019145427628569553286839146940091976848522752346563235468591575854533355989146257541950213240985596235734239142604249550257705152645857710425872784140143861831659727375422416796283519529188775524394785432878811346009788496750681384228083690310150668285176464530521062040798876611441260908106012797002956475356924728571214690569360195540297215563178517440033183541723797725381396219228806698585112474333734693404698033907474158678172996364469132070768161759351699275030458684744950876959538414739202965133015229183833849860340334071387619567426713913229068343188062564040641840089244217497700247680511995018670658184884204440948634194605137145759153375739693246562460109750732793858204726397426527720608674455703039138563366082131179322818443856909117125297598505691957865877072356457153484459647395983109029766519695632174104369058737324156921765192060526336914789371219056162862485393976568569556759001446371076516602589923475270588348000529068646387288241668371609497127229808520766215124349900820390009098580853016791675279457652813938886598196925987017331072392378519570603416458924514245689499260107998722498644855811969704649117101482078476992715518158803457763933014382462957549214400899819916266809487695989694767553710134968927137385043173737984554827362414109613238987651611364327963141657473315377225259314687236791969842731271618410348054004728531679003639580943011453679821095881301315268804433619391043887704183779268994205049784830647898724955897139000496939482908627016382884866094860219085626452711072856936752214382324404163669890782193232530280306481642198270958203103186999578945162599553259560012477865027839015600691040417893791777078526628685207158031192724634918943182799100567915217284927687881582690893635617335515784665489605504603834742601923404782900241502668473077205204127263872440236390007426810064667118521153010784476065132242505819438077891839628329284497119756389115014852734424222706313400642398689489281221131544848086785590126496030337445552886069289199625670625990123619225302820389439485083616809538232111098238024123209429313724468057718959342388022697292068427416888267186621658218306957351087365110186588377920340621745016577783878168036553351310213191599314853230732318002371630686535942041995908419136855561298524317838443197688074829474239183462125699246132695620568140625185429130213184967462956345993852254218248770793494298248758004759420922166985236413730890701965219338767169894504105780224611340953690490843734177338624861403566746669666236516017667812840647244148638434477556795406123081807414156387425182458550680862905901564879439608699639416750599877135835734684982389001731198482481010746655458604582469928469731112334891368860622067363551075940476950956558218636596287126373612011039638504878380921056161925980913972392893164721555867181875898243730648061980947341587163884834492551084839424869867079494762075011426360284004521224430195007500810585753037192262454924336307327448789639763769723552904636804977344933553328667227480481358008409853985228260070508216820801093197958272849273544466306883395270374522985742580086117411440604432083563036455742493388625878454293267835857070515098853895051655130761349093363160961598445079628321914933717842325127616083613499380265976834636956665314276826505898284683465267140310016643141005061370940031478179947756450210032730756070870995627504148085423056791473653348496627527066596635222225343933002787439382429530968304312034762537695230955359950910533838757476211167691163178123462439413306503286739871720835926249447050934863003627875018373655478025340809919079736739924307930677201096694542732260890493184292632683303763519516251043206188952443643320137320945439578230691498227068525544369853494782857767069849197929016628014292081552497339302332933865540909453542589439251677165401113489648355793494813484024594506949084253850129985358381174131661120615578871113165305678687913565056962804540774139404377924192444919181719245962655710397910540206460815435120215249606751109024280500210503725605610619254252774138344344360264353832149601624192550625152392683538059200155149674175448246193861796687034569627095161022346079185853696949932224258708519299797305530617727497357170576072012641413375730405532870930525069888114197474937571880768845261818623976100842677359592548745169969033761761375359915526222529967834629983815969100110945419407962940487595255635833112152953666706658550301129188124362224752477726212585832822438696359570795945228905615117094436235092498926382219152375637768342476445572896878743678408305033759652610388353511285155434710228702893620264335080137520917391251654590853567834145602736084439605270968593491272725637474065169334128062270917331847279562193393637155081461263804546754048175046609045418955855028404341705532920429530064001895786739336525043961271586161456181191123841977412460186247449201853882167847196017441865558902056637851970214247565517319018240313642427369860229265496997559150939735971067833387644283155556345839033723887109840528185526542508442761277094489389883095235613324379899846941899795030791202865716268133663839858970166143662867855473319362400515121249774559965540366033462130645481253615035899421676578715632783006406984144209569928697258083420742570574556493715468260985574799398819832253321671255801990069396006678356953001603827139700190145476744001729465146894063535561188103485660325138828048070394843446895930438776501738303802858233844174365820009074859162850363408262897509448078620258355799397253471730045474205405647629701057647494662602731905717422877498693326147549662913309398203877756098002608302501045828297891336299836763931967558127714932320668553585758102674738832673868953547890451796814172216462685129577064970110361480274527388669778742568762352005272236841099954133410440626968374592893834788161148696340103510008991389594900619717480964003649521077806907527245132923777752147667277228822180180998135212103218299562067829157392522340484781075065454694967532475476219452440239147095452041981665177555851043812642471615864116378264299369489803825109293432447075788763260012409445620681397511115844291269337379593123868788113123570929846046989268194178397298820037595071215296226691798500577405593811776302168013117075725917574865688018333320167520569085077846310562559098122030122402601135263506935597849847966974396192041212966637535932306343708119082129385923041497466267099738950604491754090457433168769235913586474130295298533074085373260174103939972191526143708699378474847250222806649942185814464018066270996567675189746857297671761948705491836590591164936375085193027629894560405337184720996319001781285001462965762167032006268806935076606689318493574629804151659621030259555475907169062530894195962094699077743965392266674092897588551253921968131398364978817333612627111180582464091976463010794554982994361595379513083465874851879705965709652584214528825031521840575058145825376549915923371239006957869953137600664773841198981668395521756073702608177592437464022271565729728484191473622169663944647105812169609989587591162710889491677049919450976181731602205044562456878455486542997673528317634906473577788779835169872380451994145591559717714519452702295729628646133078664782949414377919088775796534153769481114787818611967916881948254126846855801326424541419874266272642435095191404553264325117142276800841493975581826071474662072684284312182900786188902256246891351230333091030915251313913511612391974490428061171449994964926577834519131208281080178113245887776913923539541136507873333067630100436924995160212337404591608702365357396111203165524225240514492996531114528191892702135252267440713515164887345403168315849416347055150086263806571290481298028293527972096740405462917511162221714063426911482150933587261709619075561916440023065916950131563063132106573491279995535240253782003155373503246457692353561227382135256401044555912111847693999940944338799303362146259436270145549670837076864011145449034664735469482586894492491189698806348755654327784511857191551164580154468518684835790595107861225606245146546647205818524934067445767735575852528303932275648748038900658907280889864101991187990780518869847709638150870635681706240226309271988672286250966351037875412345782949618922197028993257594658279967468741473247148699086075077416761031240664999475990256548868049207419250302185330005966225113849203243337661301788524456532031443806835829335090050226882943661752062668429342573115423505768103045405592881117828535960015313074213698026457729095940753626614203292565827017492507225333738038099226588130756203243029815996460069030460964339231828398196099656347188401191630380356124607365784382297941839354557771103137446516970434414791784897469535113035273883112076795570004202580779854880015708467592402936924622881146101882003773939494913871767963482048285539679580001278475587267804526144990051948442300226976491455478983837519656489865632402146866696873515169294742641942468356332134552783271364658961202715871027903542492483566748686999754991608085694057022108260333482240267829890667855009901563726125906081037617649503902452162302821013612321234819567123334498542145175413821128325743444360183023407171315070183396094871299322123182296492580839182752990454846352094739682697805075896615982404864516525939231638943711539918030796046399542235725598927376751984416781280022246507639515418015729418600151699131915348806974671758546316094537617323349966106080693341348674525081325233888913350490123605122740784023120868706444867324638095445848694769007757342745893050122304218109141019596741471765797315376408936650704108298220779382032232351913622533627127299097530316511045840760672663038395313994091891626338412820980781186098998986817843874315377846606250764776963823937999983650834890939583517025515394766524896431594436741214396905097170158146157391401209064260103991236308566593646817152272944315757967159458359105800445341109046860517750445835803765908337916120421762426656497657280473816870801786865905179962363920925603980577825348444381147711339571016413239896888227193512867132392136092137040388347385686493156748533048333892676079151587229081644063118434246808122304372257769625607817732173553953896461671490919374685047034903523209022136659266420441621704077083786220625225840872039540921460491476047785945958267806257571332484669065903083108281388600121347746314361334654245135079975246751281325781530097984624625029013212801902204081271745522724685147304376988491088567008379952205758632379972230212298737194638627790599477854447276796572156212102042784635348679527139774246819563939095965948352703207130497065068630168424935293771558139714991030901221505116472705200067987969939821446126803724321418417991461617857751610734695688315384450758082314062376836871623767319894983409968039280463851410346398228773380333450349565208813578842276366608970060961512040428969651146718372262321118035371300708351412827271100711245814131062499800485799717210065481317945022361135957835841220529692397069751779923679209687743580575681802544707118256583227181809504751144647754764417042061839091388560696180429859416994221415052977912004393234921372528011604764429020682411876216175187429155317446185506470943335282390043941090152640588905145705478995276811645061253936384530806979498899876067586595213963284702320641776742512687677863354536398047507570370418919810698413363789174730998170166846824825629813529090867771139309201677042879741488581308956687248258805442042225947394982648608130359091877660148187738266955255413314789318053870031567002894930226224479539154866367639194514569408932941573978477176461405586842813708362623604630720560230457254701339316168451112351395308526459928930618348655300842720519183020058901511993098895178548910447332091003987702809553056233952004236190683916567286621560671273335886712491866468613399856125565108344886091342195577070890700265304440007367740610139114537969522683635637823882785491653373323627603621049030895426585825977748302945092771034759847704732527954009229041101520662912012043645684207397347261551907259633713125897779008423766335399462957608328357765595534963186864113914107033175040718208467926112659245136732360691893460724749174160567300698445028280927829131630425361577315836139064276627560966940578445959795063817365365154858576632694980462798261969051040091014687820644619650297095302801562816828006774719652969148335224754616237026613728660605016349237772877074574402239848242408051028222959676639405750192414852458380891237614756841049261521986235906199431051395165790239723914826536415679061452957212316519238646150304943529021404494124051402107906857534411038579336663620616925717694819716149880039721785148942051728429118599285754173801140709360317650500195155443267269298141512915296492429007448311914056746786906215579872014244186317910877093151227792862900624626400389233450630760340078068640618485455521105891827038977249071575818498929368431374554598400999742430277536978657810856149257120668595399773831999895929416156638207647877232671505021188544509795089190916974560460483057875699042334320085805214454880079152991068339900442423721961032421462054321413769040775448003802006048748428158761212788428131020179878770593016811271094125650951568985169905740807272270731723254388089644626713072747292754288238818756440412053264285099593307532314890809178365749068824766698295311554158278650270330022499412118199562005296858284532689200182970423993873365571972197373016912658966564110838759994563146106195849567294918387616105618146648174980319377920861243271473369725734531649763739216457120603055358820513161878705396986677340149866392103445982431123043607529031287229970639769149365844376570060195793552998875981526117097238464855876003370042602322319115393034044501426831994668521694622947262787345647813524471922864745379151952120658644969109997737811040747419883157460326287650254501195486815083738901268274593117213421911820258381585915114318087203341147209800812755844709410348896344621067180098358188681587418344358321918113965308857606704644335811782795396338723442288313401773350756703864034761153059938220351755460415046068988702162370957441823864146904692672899372622105916734239258284751536451682686547588005835329241169496395151141814583961665354462644113699174238118432972795241403890739108369303477003214365504826117014132265983933260227743269715943396710751274122951597135506171299304830732213579359712505083747263364744144588995868258421391787997780310430835195769847656891422462808301114206664575859638417282001443104162275183806050192735310876757181220952744866168519154250889530973976159477186056510670729696816456871590861685905799432404435708811016772615970812453782521147858281560885715981748474899074094911814195291637494806554715575015380580195990512755216001033344344557767732470555522245831636647341973508948243056541057210933552327751219422840165066888042440227001291739887101809329979492582743087602763991602525838639465323009526220213861715706541707297019380696224295893739907939146713777851850384561311142068033212772061369654199162131076535231854299699113178717010446004895697961570710031467010022493495999983237446935660667176737455031837410780883215177772853149507903705279119555960219702714844079093987542773138956467473418763261694994332483280187413853388978228284990983837461598950609787560326247411590620771588095873997286237806657764421303512005289398905310400508672359071777094154810213011404274511653681613882248513873861910938544539288177071013605458649493273495831465095878148371516495782099487886656328568837898743592205851296159753336358697426854167813142452714600857740043574622746393700116741889625266769346509548923067859481723596470602547818511084672373708181897365857186992396421794983294281084284668314274347697351695182184044351497267422551991464928499287892012603382904943652412652932317102565969214376466664542304194116338306871492219893592578581320637210633453623875318066785365566455090790786641352818819931362350513879306829888681433516614813236121164934454261034720447778090825611273583618904531273853387465082331446508816737154615462563715056626358160841494856653230791980971306539195387963077532772323571504604957699628848001184986451084674899044637299794727243410632586606755009433179955943983131692786607979758193414187287918924331650287161905626562448344463736842159000220164173335550856195534668165068396853117388506190834035282991657149016610207676795111870345146578039510460705393844300365574524938958217612291474239877973615317439497354385207164196243107678967780873969319725851628199859068560091365381023618410170727202791941666688039327858341090459147269209524961847355073085436984033163608300500150053359347013843112694900514440248414587390144119255626335201103578155243798052433152070312384659558890873528029429057793590157482788573449190440249868113454457219079390937213913625396711985258307385747469938030745747384456773480993798458175790125798496172912090240979982979467944271683915994644725441605802178383038849464172973782540024387079570854437054858117151515921937935057386201575993407259803912579958457252902985908281274379928746952446599232599222487874219898309285942380208813783247074694485800956553395251689007181441665085171604877620226240384119705015488879118929760100285882827133817968250164555954020942216908085820083925014498279445378643536462947929574743227851750836251585336476167733915990779482094377023600739035263566218281855636530703058781131298753768506526433202607289291702267974894446797384224826243933576175849488536359491422133916545345653104916274753417715980960712710741566764832697668641835122438157000754451263121855955854095686630713608943178156718771609935120396542722525191061338206082606787990031244867757842390964685874863082601041913315549072050005477337970684464432831049758533683615257085427789190406985517144880053939438850521454672294322718759621154524031016795238536359727654120134528012149737917294851684889747859326398686974499798531234557429446647986170037428461996380970289284097258448185379058741257092851681596850433620337085841513071308817447740797653858304851711842579704323796307761813978279265341168147848036434135771655129632317380294400452992111492523988780250591333142038943294920152702493705751148168049099386368741579921229262267908977898324483292243124810985756517787747663750770224332697253035302203299177890158719293464383603216413282976913747588856206342861383725827984065857416539580590442309256051505314283708497967206135293520455459389984400095742265739014902509391043973461972601543068239270533201658864887866529825112498039655497453841550161589600315618003714237517285094243225783342610442403577823414079911779761398293449481918619481738738600243431871142222959422980571403226237277707487174843368292649539261397007426259336333547275436801065226035524614969356787635677538927736718788929146398190484340649625411426731563346943292625377566842289161427604167027126855861605529838636717718500041019085945255606436891343301631560401438900645688723011676784850294006450358395077787618956325030222800277337441928809918226859694858683481366990553690824677455865161132810573380823601305828577567740129892636258426559231769002536805020518094035052229687102617308887306564671078454294365125393718630526970053746622751684671191980688237556046478084041538978680077965829234081649432955889511255811422986600520726116005604602639284125887889541289280482516322642005590004498826018210357247958814399240827079709516140970807691353693431656456444298662614166702568499087154084574258944514745903415493950923945201467248953971615898429764088944207046255483187100680230039408236786647089502172192915062606721159064030941320542612139149596255441848433896025516338892433473837771989025694566952695329865922863704300444984647062732889290068134329880991411916765811391083666810648445557829452355294177884023372262011353743820647757677464585170478456426531627593333672065663964836183180749162329272977158961579145619007173214610503755662905525899469595520834565616591505243166587349065387310649293351433503927441349858441264688501128342629356831986991262990423921315454534668360843452379763534837915954404981878356760020146454011138473239100646834635745685760438366698737722242282589860926878510947710410742500257571158504668516927872813726525752907338562511206559020612290143974533981066796264921135200677522349404921292960923269287288632771704558653720120337114838433282401425195139485007748013313139687047257606750619258406165240617169369680700590943083294895525081042321090560913206235260132744511516701868233136602558245632298867705795941770192619474522082569215624643752136300298805900290737200423010124909270353978737257988154163692158120338326941800336635966289283752214578201848769417005775147186166487910698047269907575235605094840497654803899667706216373133192918495920924900250238325528622595608286878584413407144899192775573151568974925131672050979156121255572136969661136286847592607528809036087115212634961792536417940565393975413217854719402180964046732380098795143070610206606680391197415257211633717924740466700684389333477228661294032410780164998619108092975781099524774356598737304107236479215457474807428550454994087007607555615532721119811540564801541166458094798271367624725239028169862825276689474143521730066567900615022401800097751778511040584389587665838900591892363064676633650735584500086278760294293329917431509247773656211969786903567262433114410279745302993019109933925941439406975596003540571445904037735936260493136399025740775072337714653533526269076522785440856047558410111026539793685253340227989501423416326132641198464942726591942956514180284008486800466603574324263529337513085571235869364209050424166598865903537877034384038577626330668792557264508856109879239496684294902839841155487945341850524775707429757505411535275648549288444231538460240430134991461404969452398052740854711871432761762114411101294132918123872521593100977112191481353270444265747461828457179013502267689887224418593283756414036912579418831153574505496120878963340327112331949887284984545966122655337249123588552890673359906199954552596820806784295922526133337290635076461906087574409345243778814360576793180242213928569501788656783946697754778367055515253541274220291075853588447499330738255657653713368655117089792356416061942073696907436685069815967157868990355624329273176939682450458526195540771770097628825293051352368487516820112001953668783518725024895154668273487483867697135683053376808274162495873166976036739223044326526343119476902664730793082600347436823400143166976075173048491369774217084865503718888111063831591258577074622920549516188582398966787296563964155045976595649942143409104275652714275587952660249296901394966077113808163435578041243115446999049320712195154041667749773525403566310009981174418777962320457978033803902400855944214658477619898122123862300921300118225933082124723124098948464753967829010536506703999344287203166558745321763030020054804524911804545850934401415356330777331594969309112067860649757119097170917713752282308621928688594702592490256345304074753930343476644993884364473030516425772180458681425991760479689236330935543117272954675618252217020836219400854187904920203704210291630298855733304593072110424428463720205207705215021656126947123968609214673717439636733425068500609492772651551030353237438925778767608948381976232041714523294737758680101577697930944091008057981598536962828384684779117166588015019390489691860084599075666839623584841219429995511149655080531171590283432042438643419396260806258586806534053663655144083962139334036700945752257599294002991713926017037857729271475821577730587569244352539584064419886717744920099895933906910733759667505065312889648480478787068128332356046226333225994953655045974734429823868495046326406550007994603542436361375708692166986431944034358077279423355650583569254512104657512945505335553708952326384096067101079652472189338606394567424397713275999324602866137311519285245473013119162419232419302281901281272206871420720584813880341170015057598872002791027943820561861971052575728041580635370893536508205154006534279258044492775127309194464842758165526758935285285779421593548777878444119790657596555613391135197617172784292567149890892192487603506886962190519992344720548836420378095709527595534174745062209321890651038904498092359149943515473207624587719072313436925167621504958856232693094831149611764254534403814450971776650182484724316834685766400694382599116823174502285979101493633348223989460549533819569201266210495378803395347969299533104415645155444716503893953601909857046365852325213636874909601029549389273214498211638858963255647406025279610444468682145815134426297698174656183494838861983697952054440722269068870014645754080355198890842566812573430869410656902708959767087750230707157873248004960945654176830663031477167840673840055839362959807357391832126818687884078327236692594442815866447906389789829867424297201818208240307296560472920130781075470529471885574073816228421457551814870511669771626603908847637566602609758502130033074715113714724351446401643771850814785162772657501446253984476283919554446105027772276099596747822420957512141435157138163928338700572673655509147970008165040901659260587278135347135599305811805842501232980942826747176657870140509287156185778659320143484192189435684845223221884925056265693511331997148970842619876608710271715810202297237792158553099437250810448386582062302935260001443629922652392334630989243135759309752101400105665617896828301544964250152588013560675936125403509874475990173912487019428686166620565126165121058698789652803768323197141944099402008581242375984502090404412242969015293477613626478912315390912923884049687816351229201157784170656120256277497001320141122703756292994644177659018607932060709816678867579697626050865834631087127556988419876402508095615326197390375805970762027880369989841937468812389835152314758026410666457990465294401159502925645534773915899804663427310952130462948246671529643114026261821787500620907342573416151938559649793417687615094222495464092421073537634207473816714594881981938745982640379772739789825846447523787877809668042764999146523489348315899936586352872940476902863645009214784856395690859637554859977244037371070409663521564845695161746655360171221467894802081617203092488116673570128677913300253177817653483565409593111299148948133518921978409637147725297902815765179171048877742857645868671737652556626546704099113266368332608740341318106914424730244890977526007938379363097274573586266860148818368972776108472778227371326230972810175333637062398504563122687595730686138062969768464168573325685496532978514343058670193647055417320678712981860954986620485208575092363796389511535129609807028829671288011469270110358148433598577499816134351776093968284330680577786029648758382820676820425056007381439717772269712191884757304869794702431397304114493947211735026861440951054269612922844827374075920293581849680762110919610380058219350864280324646958314974025828445510183298054986479791980831649742282107817378762614758328173934849034436342124101277685898775925730963665735938035885668103540364120736483405646002910691068300761372889563324808745805965152215785501969494600028732311504485371542232699774860325006726324844007298555180089574692829859260188727129668266516925263780187350252486777831169562125027468757342443985914682140458677915759786123733105723431063728096061515743226954551449702727129645582778686867912306911222166266015980965451396930788493273814974179081657245234474742235835333796149018028577424426699399732905972567134150761006232041965480496590104957678274902240168082568559810726289192196396737517198168063369082343929747092769503191643519831512831261848878699072895996613581445843695231598380230605721490454751810529627004435805929027598332258897777929884770713410023700147613110139876312177734204589741161210362298411687808338675648039838970471592540877158469801007697120399257829417707684137765436453656717714742803140985310414163837053581819302896980026984492423323437979339465524046813461555961000827394789497790578736967261130032515132892290150387307496264628602700325787258857975127546130458738958321242335028397482593170318721421947968136300093450132192719055769967345720935102397528696819333939990831584832115613215734579873838473571001088464512181722205714430114215865245276216989738723986134114252430180457859898409542802033801636592995514090299162664216291785642422572664251964487111832076176404172274451626567261436861218828876996750392831235438060145440707234444836859394969434991072184173163165768192016415470838334825156133555815807273291789270130088331889263925482494739373997110763858332016648361719561114457894221615074552446939301418384628321137335136891092203303315249225381614492184057003803810241878442987233880826336653499001239893040012334708910811835106737395243487485997064660957788169933963787941046617076542029663226993904112002042777352666476631461357050290542148935086793089612229887386143664711883514572393064525601203840477799158401986196124925780855971999691760404320995202433894511171767825659034697005157293093017055827166398403449430047698713110659989166255163689099358029289737843864868326436366913129552273028959417932023372411258149844348813791707636135913913954488095440601020461024821966126227246006599762720886211742177573906702179079747634149317100514246102654910702365604068512407113605892599968148830751111906809393789324686246334732066296106376224815182371072260881257290402256839693770567145338830314058768069232909178454838624261412782142040683490828167335156101151680510134290194126885280798989026626303565152381359072075933786648107739818538026856785108208077976446846156162121324800417821411689780447266422942700014466334747584971147739156742605476835391793916947535268656865459730450632118386948794853616928441657724380185073819160079783777824692499926430838778600919780527180851992875494594192549606719931378638806868094969675440022135958980069371218156253443759724571660959245877420586377350156846253914455593566320305356897796493187635410473784150986649847639419214856529263176722872869545686157309754640106467336566784723461698500100545106379885774306291629497956555335443972824716581401863540764776060588004052489059794917284169010081794087684083334496621462559715314322277089170144863886604725260073072965972971387438480062987313476826482559393473086267087301649279178217873964102512484624895138431870884618466740962157515612966727998721688202797429807783652828567795409110047364348221360652420699708286761482059566237094899499128109546497849744970103289150514894285902602588934965490927200368576327640887059865112336719196086898088559666876063469956394619319301440724965995553928655669233715435637986321211198764541735560653009006180516136890087944642817237870970995060219736819037206505559185269513154937880804584083643334813514323553303552886537532566669771318924568955015905384267332627388796229465943810015379463007326343274071876040099668448190243454504771364768695277985092436515968207529166199304553975270401070761079606771591101894445383206026015411521642267941043636248307742561510640373461665793496775593120099933244828319122854542275289996226650918336257385514995825439228877947977280171436837829669644745901633912819407507867204164228387776437652962079536634966393989128465974474599742319461051919509317039910680742265783988747367571533342988743956966701785638486785795085147335479094543575366382530516466135998021986550250929227452115502446668454950750350677955399288350663021480443635133298869142974491169790230258127085313260540809956531206474793683887678085859989590224475563833142421052813025379303524793439320505363763639087704277207133036478677537867165271600706246012423188007055756958476454311439523760466398208254681870545930108037040020658574710792563464030086911121975944739264001733721885064480656119410041233898629304207711778531501176396864296070773659163027783063864812397337252096290262670015972012523761669199052116247339035136810402269581436546448939673959029831251571686447407817221953800844467236332003214078319629564885118562614793991375416802132489081532233810033014326226037034144805492993979360276298130382724622796586251196735044434633187268913525176204872392391802461312952633818769746683104361156255894257867254437484473109944205518812524501990913822382856025386567983276908852394929237231014527695621365957893457250313323936040682034855215860541783344003721258430582290202274204341285190231666137039258326078033578383241072237760973534182538125145328214801359794026277657511115240051425945101959731403681442288180878156231375092957354607244276507172229884281553328419933646663879812219397438414751311618525188365734253399362180954051934066260996246093141842458891111040349043723333166234945402878592014795479921376196579203423530275863757321442259023361693082830819984064331924801914314831854185519631228364647910871476400958792769671265913795813749468644377710576137193611698038807402725443758176265370964403129466740880830078562000239893456505526710403410461846933485512480008489645523051532386620979703218608348010810496594620296454881550017630343589791949624553057285447628310031422626351590557557179770552493349768297988584533923228409264089082732593490573510156947866510829033062675759609706161818195574996367499632070133451597557500129824935738160015031659932229041072540313284815732965875374287183364340585142931575761722119999124365823507177300076185982083369802045739977282863522180534832959682807940639916231221498693377455998353272556493349627185643999732873413119066180676620582568664739868119092617772772229742527199535621133661534166497449397587133776397534286227041385580694183854502543218810499470610927816408928472597277455671047339631464395273179067666766402196507142285564970476178975610838891639312336103691893954244398301850290287884760056688795705577668063478185812326720220024619619606227237013028340719870466325939327605908809152015433875794981549449270936867709872988875180530519463915576067594988200585454028524332705579968849682685681157673105372254192941941698210352970391235188802765351332308192853586896518695464040581737541461566458914438725269161027708519200986306329092761200086347973987055190574682379801041072670465745012032421126294067590588373011586902564360190578527322553179446903127302424211017448931636374715395602026864474670097876140040460229670782416579716596347585709598159568359797394804195297731761802603222445736285479593343073493601918783073945478502230090727603206268851813274688205893801371598576705474778064312808465046693176524378259163055492186890918486995801796562669189902223404569047073811975707606368393517191158044751253923278032442130737517657921072021979569664512679467086341231224187270321140042741233049283124896527086940401989302038743411407916425532288810980048819198689663951713376453535906306995563727975652228272808360842171218362671205291071180920508137995937230465068438087718142843728061380419254774892216996443750568298871509218773071347384274488436397606907419936745997669020601876207803457340987754356975913080032861402113785811492930800839984467979745216966510296309705268728550961669036146781261023908447674472958954154416553259816233425722649919372662709399553196940963328678123656013273217079100803898349501931038048467677836543703533424921761629429929805352600070604370109031978980410401531018234427445787884657862953453186501471515831755177081673761899468412216865703885807738218646375662689435232694273165930027453459722535474730705122159216902636018427306030397786163780090416254957034083565812311136057444123766020305616543192964505638436224046499907988171147766997584330718531406190735362571878489904317748729629124054945823048578232153161821227758083636862818185066949525901600197979861511417374855932841168816917928402360686047880715806359993240784535171462271127181384217794281666974584493694879567405878532238166075603029185320727524030022746501393025537074482580746960208128893304624111252329931562856322201557352360813424437789884788031975722949251260845224218852398871734099058179293950266346377243873950802614485930962214941581738369036614899872978806965676165869855693391406431724511402587843973213740810931242408997910710391372707222216009864730518173751233111067257058865965313596800204582311401829932857630065417971752635738350987817579707869518068512029315015806610638814492059723704561386694365061816983094994224067514812373641847509653451327437647775777744085254491684522638931600275874099474517934757836204144841901591001098063144460081336998240034085826179027434906270298794409249396182497688192591682403065253909078079504363857275977769035788860436347099334202039528346562416021796908573169354292140055709692908243076676596166459151115195198912364661290080756380653486470369361497925270934065275342183214750394419107918022497130242299089246811179637022196647847018033849503011769595067496205791915973234157145279587231883691362671040488362021004545189762175888336875479738768891164060748118404213494554855687604563263631657775059974981583387117482414056654580886506981369452367396545584187831189874206599254543018296116304960398110782141122386137008469581583282000325782292489303536714429849475926177409115729158637316365015363229902087812610868780782488396079734632125896534969720134711892850791641896703970825074969009897166297038296165520400974532333795500130885500601059162082458679342050473657016540128770968645618763747466984963717982783628268578699326157423316921763324880976973525085918372504306223175662288618309156261013013301615339293286259923093550222459653947089153952219616704965374083631118189051244974599320387398986859825805004311356989352016966453545975956185645524964754897204958033175768679928947818409437302267777403298590080138007190901896778541378083216993634274335119080272908302305949297854913203564795544098203342271854177793837288890080367849943547167635192112410686572464617121907927235808557942544643006558020168913421887891430827490114292802669996523074349003714921438278009136677549414653621941459645716997365304854617742941028840786674728173952037159489299356611661920372862017693407337244084105364757671222947199264131300602297209673312269691064989422510774584205772101860990104313861473109418433743398079477290592080793447953841573085495309032712655196597854940090261804345189441507416453254238504289907468800646729507553874224439724831542587635259572956018046656451560513391205531455368460689405733313901219317793971684808900227431372433103788580054327442053415553280924187997249339331127514083036932809174597836982849103102103013526808682676548917325100790052647892723310779809499979304953064203509715950649789512189057532887005603684476829473566744159553543140055737045855210557803126499953781456324580015877857650398750250248651329197757579812587571233458134596381158648047659448266664753376486189259907275321603220319000999888538576449461316131840893001229134511412976551917650661322187998029272895688042533372397065479476121917879710020917124979820977800223639277438505604273126925780828710154157121209807933479708150212300517987116408608799875492189716762011850300087058030897906004475548163937894072903413274284709136867360151106577668334028011206078714845566858239807464222184454441926899678782193015109822997937620947179768064178538580251003009881076460702101113714276996142702937485320297426189719414416032640063520534728888071376483346642034716071906185652454720848607045404782322596787649610741556837559432631704309915129273217224042955660752392688531271278819471273312415714248269444802137371213305409339967787608017922550777792718756969956647177968716109434162734111615664426573640863865714915833386880538890218686471908325757802180580111416192851297938944170284492659235897017330322782263850417927235626210268519111839103578210595548269719346417929972330045955173700502834638456890112730042770312011163502436963178666396290244807670442279642689475323415516248401121504110763213438537105174790997762323999359909922378353368032222686805852474779082172865977869524651111996322412033152714526334120378821358090850422491884141652417559246478509263040331256338807213537382926313068281112503529059704890531005730493514873863542993565743375611591699201169339484039830596813558373543718698649737635280427323595990312000302802115035965154673795839215074166876554057905337933841420670103194488277987594314978256021106847925699245663489022594182806509284062168023290110583356296742719226845187205827797195934704915311636919915800290191066246681827498212669804110660269296296064215188426310570908335195322484589348960208940019243801416905003451478994822980144431327163813918817794511970452566160907310716443215086615314117263975506800024871191586364848847482055129456985160605832692476551133529251578917034325574643732623320459922435009831050770016740469771036339946783622412384630534884963445921387449617293764890404224309440754412605163972302977165499025219543489445209691504668014677937629645168972029230244446847745519063314540477528435782382140276412126115483388008725355287713511490269383431913745458275104601452165835144604702136775562827742935342965362768380680553417048619157117054238857819456018540257993338928349625714946273834373619651751348635480317513005126772816874891490122039509869657097044383574921260860908903230110044766160708575813910686423029357909445259156787681343909633778161815498420079069233250013715449957405377235575236228259654540136995956375978887600200169396131745839257955692920481785383738940753511180742385517944260274822308877930654672646457162334969203961257789295343241105292793415238381868312599984061451051806293973493837156327743535606140797965938578054098869133258268189997605807347589884831277130850245777625885675476061937951293152944653715000878291991224276983511022221503425796257092885499009008335305056921904685326152975259493811613902056286897948892010828391686919379749449397615063610865813355240194950859826773817103099923449385137607213940829298711345961294553541122281995188241562056061204109278204306231412667778613093259680836386984358203773230911504229798511218193527508275845087582102523615818721546745321620092555924727931098795730547513845588429661055177869750453606436052008969569640282806162257777146292217548379229542054689848315729114353504100216852483113572637969703079221461685757874478489824009116153881714035515464448463312009232704681947974202458160757786326488803973027108841418650668773689610195650202800889676636965372300855594651675897463979605961554234450028430274937375389192473778261291484936842846662279399464321290100150446610791819747101584583224439310416791104172484241107960916554875874214371115622998248768622818237173148385161485976370909184245322908901224319455798277463646797220880782717358523949555551308694159973951712919498677923675605025307635068555274628255650014619604552283838534299016800416814584911524033010883520518598550299842280558616255597730135038935117340532300691446498262898716367725010156711151695660470236774565134891926208355280070448659970542205173065589878817704264191192122531660077432450489509043909283116557337645628643518212386632454985745269310727201889339722213477946470000536478231730854347234453723381861356850300574262809775845529164011393978397266987031895269652490220591453754316784166041893980250459208350222418873912701754058913407637050247970491184012301301352003532856471007416182009779563011463023558110569404470995456079783537308939478419721659286033117490052467733151916864888532135682719467446167331683464190155334938553502622757565454674865092704949628033098297578835127533612542034511680697917072131896449768036733832404680123965130166699440521818388262608311529854919929601751985710062909327002000526652305711388676755954259217430192125979168121062153906305115460844562317242957528556505654548496051515990350875219933028617846630725967285716711807452787068799416746852741555458922966135385573883991730566802793549230950611884675972270363010668601769125315551392639977351733371579419827562584102871976475592328075389325349039855137306954938755075930980945080061862034561916113178509229211892657391058423362583704318152827312138081974467022277676873888737036637886647519606146337288030385670368772349539138239646579695397680947907620778962106656853240406663320367075140440311542513380513245836332271974708890979974901747837192493699207223178951012301401065002824728585094930295900295992885182720976637875242853481069285239210047961664504625381544454867212423082863504486358094625254402341719932657517217326795842108211278150570446096343149977772464567118764177830507869273914630631271287393272206846217974999689319458698179719373822732198991784703814980573115584692199343421888080775010635286579123554222081842173487810415767298315087312073586740554642476556388618681647619249134750086242115928662328180571779999792705823066123287513395555160423485309750593973094258561500860470640082624434810650128168067611220528681577908583885192796868748004209569045178803142396427770801768070912716067622602758742794605559856820777282162982532999909505414653879561898218240581871735125953632206012407601587677764146547755788679369383599194720651051626258242462916068299485233063978756989259471640774623565245706178468667241326267618110826496845742065545327861297163527811928503722756710070185628911272328127107172096078299260644347005069500850220248214011688403291923428865475918437019478206146082795357310832912396723354185022891895960080439378777086373254981229178623917853604203406291768666037515193887330597028669077537571484191401566409237095771186777053194422462731608390541632766611129003791781934889551632471410291629021677513933475343093639731020950736528840786123158138536491529742084836219818027437466751234343495810359542793713542074237929513171600108122579646465688331727520334186431269050471684268674751026494189763573547756834369342242340861055143926529784616799748034861843023658573443749077920256912999956025637679678298719696499224485783913202357897193665079370052681719889253082398092441339140359893633186326012161472245443086409433531588054352594141428408081458431325828873463300452541504428296233109440840573878352609357144309537997107054125077597882101986139535137064780004293080299674131654448506595471413250165579017020243088127086725850996629121267097049483409211694182647445921769391129812734996171523072335352824937431211665929453318045140439638526466281304839185177656594633631422759957301701993689037829716927804298206555085501591781157857710304081469933499081463144124352781958044746200524374120557704664875704780747097787099243632175610601718568904012796955218405441734638965124017603589524583571845481447953167928706315220293029422373635118802800375674221263838815088681744265226964327917595516616575231791244047324584623981075979512688722420290651726664976351755015892348832374035425805552534054142858774945997782930037005847286631345039696257237410154323826700029558139535919436390298211111509088207233850731337508290492254535101742196056982350015733009561186298565737855223209317600947401363752872851102824121438311750358042663822725122378917759722142628798164507429250339790962802424570969014486872159801827431738700735943587252827657675580677650871755753760338898686222445701845687967878411270731309289876274458587179124100154791830098003770121487704357833931941246427259904437017977451845699128227714335204969412689396255940451407887128801194236057626475253667524760696578518776837288836996645953631252020524136795225112976909850701181701462877341117093351854709351475310608353240365272756719557104849254466392215609239220171776216696800758148177277495980702885487648985191567917670218735297715955964695931120488176115719445954419952211310353620700710626034295923367224588141307668982259276041370487321790881860461098225536565884255456188562721601504423381549502492287283201616515208813301903668860980209734874019954329622423977623774565261879183354854598920289726166087354933114403319254832228404408974774654239356589814145296777073873152212174558418595436587988327047680174041979694991511898198248519886956189695291636518726252068059897436850481567045324635537837277116537041660332397710091818269325487647127046354093952465772938149488545209610783256350235336463576184540496964705294098617064428561979355280107262346441408294048118263954521137104084925120320853287562015830512363033211685634012964400716581163681272304914185363567398807087087840781026432770052055144950992162772298188952194619220841367382995317873632699130679753493968861445392623376250524818395257861986299384264801896255239106080427511203482971839115532426412112371524056412848710578098270675863516238933084959960617397969203354629246330161592117404345724333135738458417920330397322894452210834973718025082813683797819748069073857822144185283287980203836492328291974891215297676602462892277935132205212883388865955707618902735910079664848638012860562012647552089775718025890006521933546018865133494713978085052266374734398611494709976232930337945385159903510205408870228591314060555562198185360410317691562621191280593758056145200973469076116200555174868508743404484761838614546145168875580754475858053168844505460942864328056555836657702125238008450023250794921382243692799275497639462465025699387064321316286804014127213974760694459848796209479454029276093442381117135578256279093722172488713616462555866957957294144834670472309057573249925064208523516469895837261968299198722730018823972067202226237508534688914820862744683598996535535000810663462057939222244333413847081596232595757514692036243000743008708244471683984009706786853193235270153272746935487311386101350583407216857799399558609616583519719943223306713516753313639403376021400418786475382969896349070561537000862018733851670523430502242708557646345529360509157090557682622389371311202678415728508726291243597884364539611174038698890247885068651628013675323360657822545790253107499526284687102856786825292498076227465353491143979623578301709246010496177515848347085583652119205249412450131715134571699094580422392242602268507605938730240135769790216183902449770926905993343280997996392977219490232986700959581525475758042620822456711198617981149674386859380800907345101912942364152564816660652655304355990967350627596541249117144613483981628670125436835038507884286247066506289690689769209554177093985791919029491553380630013108918888672675059907899189153270182461999162922723676507768132117273729658886484186717166101106686926685331841796524960512873278852022005350710702512672965203485278540199823801820661333658505271349901314247118468988342225389749125424642398769679813314972383228813919723060524633397733333844130850582665126392141120445369588216965875399358791541128085879320559463163695878354834084928697874531976214187632294540181783556859473240799642256038144897955656836763534085680563799884182324498734824371107306742938946269057239618145637187757433597210038124929089984635528563754728369399743078977136601838735489242208421211181833132267913440144813447108535102669550183664530087044436365437026114663642102871556025124016449920290889119492450203001840894351735178636210402744174571373100804709241516838284784850868577614995372106560667927245510399285949558594356410504311145448295152250126479834074979380004703503349956175051983313212826397090909290919450726383195954586845739676033577084518439536706790939823620602824113038609720190740017968935953382596311918654806285425656574782415901032558395745574861817018200025063417660600388210455225942320180393704255229935517172902121346655656960384977157867180881145852191342461149827858908007601832473533574239977434250171024665338722498500844278261968649511448279543924798806881611666161164952994377764365814023561520842090271762886179673325223557413349224678001376250070133683561560580025923893216171324473181251079578047967886594799612953911097595998578408458337785665426726711876247361866740371743158336081297333900221619163640609393420483845822232123419477549558128213021240838789336377743120402113903676277104514333368648563810555784249198815919601491021791021062809697424158569918045985815590396622504355136624598550618098201341356170745513124757559000644043900098418279746471734256872518795494366870883417993361689906778703555829850369126574911918347566505018001327613216932296904226304350044123518985978793880237824564304809870935001951184201953893008907614091467877354967756445436468441787182191468833557535461908616094923192471887079988673369581501873734466178117171552573509931103676676088276465613423860272947713041063164976256836226180125216770039212671141046602761396703137259302461982317639967226681377561799182575438392225346212238063131555089821780173321808811042241513065564581091251032166906137191645544051126392595863850681942770346063801487919140673659248755909387801300882340575063296370814041158494603073898747313848704955251325607646414040148819529628566542185168315543009725882683641892708870290211125625740880480816875229777653410135946276310179274685888621568762294912427614607459370270226946376623208716978051715732145196819708916711788761228251506118493307073410213520306464731991892135954638315170874341093383105057202288035221128191197384201609054623803101050540287080509611545989471243083767934727239471212562708523214755819738555910244943963603489134789242073449896531817042514316169974388896471386812369639134696599361354815228015829768374534207612245298392163123491454516180090640685736565716286952946616289794555591726066836709109364751911354718101380202679469080638450689239310478321245083731930753766963148783807307172416626402429382770701647528496140290730671982077420125972566620754557000057602926739496077777515499384526138261252670363289256147966956635909249153088544282269378799990575970786028755430616007137438864270845031631984179176271863179992326779502635572567147223303194513739681403736539069223096232062977721848481582009695490338469534756809461226967590725528754090835390033227185313825314758791773840385380964801889091141264367212895649936572140219366441747803057409506404865206947582947519747169525942716360423051921005464010386523478525904394772816166496937530753559458725931049117344888341704542166041056546741127269771943676858730880137492086638262044473009677501190185211343018611694867912885737605235685378440633091083826859206394106027815583248878377585655727551054860725421225791284330277505447204648470386072004629961313789632458577778486643428678294600613870516758880341773735822937209589543065502965914164378601007148205013188599823574863674093204554933456947909256349312035528490306297466297787122890720734717928399170169113950002883075298948672472807828383203348605275174824012491148090097750072409459106467462192076983306805482536031999383800900656593097699493323426879490179700281703433646317830104907708829671633136830466329199320881748769819983392356084677657332125330238705865056732772497176409182643525233310855742888408070049295750101530994937794872519635797584830679499331464481239744284523513392475753495985084254405718544983093953765880915935431757438676399091252245745894377540752885819824569065366516869706507929694858113421398517791426480964993333770183803136105596878018052088439135836479260084295890700864060638227924618157508183337310768823271662901740863915663208763075201591718383048653385674774877743370482724637503867145888421763988411665160981357395754351688191907321327943926461907526991993823032201675101961693593507163300918250061772576451099186382266789191138050546080319838255101734896283461678929846532082474453160785712982696641080222893616071273604998425423689776859287539576640148709531305646571296897972218031519143839226924280572844812900115681702262331002364187843541784121941225107434701665020301444238435235908654791607818424613269628156152920317359455677903434345710073025718704771187262120780902766004060864252556272973922624115445034453364613737000676028794761501344578512053572093806523173159649263742702573175694890576591642646193479085394798638699407279508050455567589173620015142560139030147556395614250507359111079851476494210810441230526311437331046803443757297532026243242593436530415050905441371651650249430523662427547156836942449469188114220783064601873225061076529058451798453603354404873242476316196101693232554651051876416821711470362937092671475440061747620637928018374555260711759032581542172342898198994219845750744513967148086891688899567053511353622158130392568629350556631488941758482009228115608473432482797965931994360101941645342719995509665030548152513332310271843108206026566778072372439919059152616598359084500597020819690107077421898933821615335414452914114885991395194280282138027550801899099049580157763441379704380767945302259714257751922968171907292019709242770366491358352928262655671951816862630913582460473531623797004913283445898020131359779777428820940303262156507221737587026053462105923781987957969480106266736507321127347180085296608600580045852548755414370331994390276518978090846054303475714147000450938019245142114696416048884293976130198870827407544871653888588025456201450240568853917032029441715659615974111520228440164891436356954692413275837937209844779573787782193805158997963024287960931221199155556988372499751369556416812295001668643069251465249627600800812033554674524919089471497590895499345143743675009693372976602454211658848471386035237056073051471953278007960045755854180065407821779810852927831656459457221099589542777437207372529563234027500273398128979227170693018721311019069769342537816221358005808150633567655577215568267719451063549417269165967162942185695139648538315843496249146261727316272771343671896805905929470339976221397986804917743189358680563592463116843711844780665393147710173041977842576560991539734857152054497124364284231828004872569007597845202168148513565673962847344403617823576240665168705875557469390148656719257534868534229673539428914346695432668182440669796302264592439707348309999208427084824565277534816278317067713435105040894107548787431695183188546049708700443409170801273088302228099644467656086888334792556520573333144146403782060084920102871917434057316188189236099950161644269092711148379197832869964799132506856110283126452279365638267933998824133097465092676334983481052894477378159217561919718718849630344162710898069833942165342180869046745563958356106194185153540634712552399530427748036058932826266817353444900771143326533329052025420865874078448610018827017519633422996271427545299834806908494815930253820621628325526069912625160772950443463540583175999682910954139870203579525322217893166632230179088199348910985658884372310023720829986406121944863617903215282607144597106074915559392144710126839334936688593408086174883028554575380758687663048420122698532379281798465237795216755950744259067462353556312200732391268760813127221419457328444628203031062084981502834170673302924095715093512509019012321213127444694159047022453637107425951964669796291199560461588671051763410205900201377826913546439176495380656954679343628493026568029707325880611650112014868807380873930189592348523331796377624732055151499554680785056578907590430018283817476163806006927915314832215173882140678902396140645969445247971516773368440049776855687402544765324837388494838382901141835821313835102652966118594346349653686239752295235543789532273370885598838013962098271205852103681630782145907218182079405637188842606836334584364086018246826176159932039150422521433394666935650555681143883230825457983569427062625737114696156536768208986443983491232014738219144977592865514491398398592262805976984515225663175412280021103046466805757159123407492228397745860338629837139218413023699151919608693657450965699146269018993454846178715425627463583992572058843572291076854296156544633128653881576858905625429994066722508468591941524396239949718440248055282400086461173046823488435898782261935270391099493732904731652136290356526794303719854600177812192973640970726344941842331409057773422790528561197348062859268274806221433875637759640186753085451019005138637786213151147779388353601824022978531474514181929180999662493434881372308846612595532507186230503502733015757992431930135284743094371966156245467887671083340954826557514835278276798609679204933783645231684584042904494015101403951485027571313898769479698138216387501662194904968909319974682261241549918295521222990510713571025792801375875666116039050050443789333143785382613596602767946668974547278364475816574415523903205525121243758652009627404538207777405235034398537895156917815174946056634726959335118367936437736409683141491919793456477546083443013071533117146211491041674182794043067310250610780934620747185589420784944737052425399911986399752751947465478876187447820572077389329025411568700143038672056739503909424230042709693169818317170512512250525828836052817782200034018651929735826017233073236706013064748674055255817122896929154452956106638920419664880196869067897321398330599064424386931199904376182881170538230735088877589667214043651286247933025629147170773749927031393033697287254791864203057996488565440680019115681803924899406688222327491306727137505558669037007807005636231063184092522204746484212786311482667869733770181162161900023357167186786940314684677529822578561645783757075778353736385269397911079319347538415910471779531523719059089783304829505256293989512181694333867167634732116153076828219815545783435877421645253705173181407956563102999989573532560527321337233610162847415381436737273959826658614400018921143956826594779500976421798855147072420178297656391374847509468881256027106228529329578617733446333441709897072789595152444283822572937507561226559984682571287208280651005435468490182894018759107920165062559458354226848337913769174159520315884620556508342264352271339856386736904690630321346742199133296189528960591586091504529973022049600736442096671311942303735426221353555058542311089687944267941779396831547756180895502705096517330491231232442717765187993884153470054685722843243620069664847172696357771985499898050465331961769955628153121953918335281512198621385438536967183449489805376032849603648112824936456921214374952301676223631066312319139467720703549933535094926571904881511808023913706303886962919622974342101052564410901247355267026804328005226669211839459782487129787603981757745177402644358098102234630921455366764155127395030646563182393122293611969083753362796242753854494732884707380269390631761405082598054800456860651530423983716867695705613772964644556223013786357989181647372100432879625194152381442739716402668108001713411857822658882645329297328729994769452727416512089059377156505910240787516898596507702185788204727169402851966145681665903459586705639887137057497739711381777750148913872680775731655284267455926500596314832372857476333294083965549253259770716620017365489298674672685881739049826619910507450906898982739361925840437386245862245386974887740396995865993239674369018744145484628666527715047374647572456384791749354610198406750991250414137886872254905888895909219516086253695309251758347521315589075820592485840469423946813181062148168258291276315731224606485030761014535991248080991853985224692895839573654611291565028711202490908660121333243832377354900390063199158313967149055766182764387317311901280718560961428455518712260873490179634090982216990024813239717998077620857582739481272894189045851193021839762048695180631166496497194348678515100908593192760089511206705254888747195554970451389625207272442455021681163630113916527976837309097194048808066010674009603348864922570692633137278938462452959962679902755700308526975306975631147008891502593784050689610832714230826548431683119125090573760829175513305564842435112788963878684020208088230409932540930399993052147261685270929961182187416626674560832444813313477420955955896478963484091716938095917208480758518291011824248701349821196388276234707885721152028719842069329068396677813650785501676693155276785782189779925504111584283246075744017585313840165995044438295573592524386640699125316532612008205684100992732066127673824824199241127047937654110606143047189883009240905768000628529894637672299295525332762186063746074204743196321836239181898363078159335341725379389961539928701196102141871310654631053241395110823269368741409372480194783257896986839468260890895007805856015040461159134004105061121528456220114784951686941312870254910661556943457011329940260890266968046190566921839512919944457518871450140266526013344858233615612812475178413411151905078020590657330767478198021490299409255490588673097725701604630729771073040780004841882511719298946404374871751367683854397171917682288277447360172666724217931433120616602092008139783932522200944403094966198092853377045719597392782419848100089572202663957905193775352018334396726066434422442139447822997301222394113656707419006984066140931068443995124227889520008883858768717907667741171505545425480716181467469777283773481059769438562620131150955830939016528693150539063176597770697750774605659071260935391101151958074058134246837059821387330985361863847045904019580382903314776207320427243107080305812500470405189320258937484356414839990233047345119275686651312368876983602938445040601266922654383106034058539003737602892183970620766320682057482104207293511003770156549782830980167754353918164281315154341332984372754029835427277018558879629742594316094332511174292410007222804763741551644733222839845704512123931569871642355254236150537462831814974242288133863052120125041881706987470833610793297083473181716318949843762152993919182058209675881562301640028923198172380067576519816866232580204061098158551714285220877682773326098802881292145658301344746682113766683638952589890642202004880300488785860112158996296563464815398467128915587068123856020249657702297530587603637658136224883599500066705157043421310063412001607715726414243545132082612195571607562558408472658860652173920156963964107380717600874619887360644192631983500829716384267822005268750519196110215835896882563675154499838475149441522242655619907108878240726074283765940988716477790671579505155445607321488457812883675978310254191495522497826148345924688179112354203213154537481064477317373739396488385155269970446901753245456096051047350547252456949369073437564441795830335445794402335810735961285531567693770633557819764831927630488937983367476180505966281019310199504463588930150573170642112878841527973927233653639135884677682810787331938478220946583894890572358651065165149805230571008434741762929663484856631328817795872645605037434126575473198146984960863617446525750787249645338341857934716045779219429668191599994476028076337681168688469211730862952535627308707599842244887262027970935912748503338016994489854692597962107967991008843046441178427045108676380207988211492967002949214432734268879131818915408886170108535350898817572566752327749757850785088167074507525067512374051983883523469240661507002166946142628093163436100626127864300962928104199803068107423480148856443141192449850766282338973879077439013561327273070827791966146405231504634829275253321623663029878463414676184736374459248930514862096162102011127491422420132849125412748971217543820193952736030146605156985770091980677443184153701098682155008342998032858336768108318867169757720821620016643747238948270657511258215148786590359647792212414289842649353253534366466248188578073606533191518248709520423508167990000764833087953909689526305758639775031493568961820822612296806836357771935855754383124418878883835180147734058701477783937440111971996162666124722735016008716590729058986910754126445016066480927329145535028262727873626866162950964854355576939725263052237693814799167594490719856790861079634837446695424378824891058330822755752954531971144773853361316655117853328905640325353476659711202153906192707758066576620789129351022749097365692812291181101702404995149167084942785179822502692280378616541103571558874349399295272726564361432279663642511802966977941355518831801253652976190079962439888971922779459989961164975032754979267931341643953320338549574982135176741792731093528538687001878836171998330535340748436973979824255512757068205673812014467014201877435718489294481978991771242113974981777814049945927909668358711468607834952725386732024791149549714753612739076584556210454308877683960724460069155622910727290742845422082654439048628947420380570009624953374010551199785867061868888358655913155210173984046046704251540166502269035737047785472318604475687726566760215405114431950560289620473284259701458864323986679474916696796450038875033692198486958841733368195770628030634939135931475665305843756934619104615881363337968696532648756528525462495972265812583194954207050136831694615630637249755367486616635573609199514572816502865342447761565764034184438839214245944491278496760056276953583360107251585289454294063733492467602362947207628099577955948029380738938585370405654728361481059224938528555779349152676882710115176660027446557134913129990796539726377152589885888271076547900612735906544744052660168120308441060907453576363391577706306056184383721197133459055556135475376733808443493729525457162618922576171377683508862340093900148213872889572139348569447398009476807147728687520838244224871026885430801048302551129242976242770174635893719072155784922784267146559507922984335956639309381436896284581997590937481991227356643085801340700624403982961695552577127858405992634166407106366946992002982135546904498583527096353737364282398261348355496216525487521346973357651884383872506102474185971681105465259791247664575839684777656727076358760348883988808550418736261937708636714913089094926990457453889095975711806786223099790492265961649953254519786881647658291411916259255630230732451261827587388290497851538812504513945941485666846519562462834370492273302021540150801160663887800752477473778545621298087170104668084279635845115139269717938574002773630721975761839079345271588575784122611879523293716003237602537642881932013271522860462399672119045964214681228765690318716070877834757154854401250992148307110657610925490040068823806087167749576222841697832365043617188634688776031083563269467007147399899054590836315034403639299742010883348688880891972724066425573603382790940995366753527217251478218282678330589033702423346163450283350339514577808097584704299868410371602932464740126406187125866771153319020343978401231926515852322243374428248037361042694046415517239831850178430770977236322456486613646091846757632151776680514347464139966528176384865094821136637995926361710612968929540770161507134214754574398371912802064434169812266692415262226924622374298572884756972466590971066670249128959964710957285835678671288365072233384793486962108239315422265109972879150025772802070336322305187586448154135920604554345286309801946339334011590601972982319398889638472322323749909030990730094666963191948122546963309771109574084366659829308432791745652350926689314560662630752893801104115091780887940926448706273346746402158942881374171502872757247971838278938806357939395952187312169250054850191235491383942152448386011295983719556739944326414223575731412637319070573995210373873241787665083686373241332164140784927543627491940212041192892664561161533827821674018357363084804414528316462830897115146102341165760012917861090261504631793412856876031946293070050235346603856392739206047026259533238477219165838889838135656540389943661757252519095215446568096577246526905725537333612666841800071776794821780096623386029232244688073578238444629381462919348668471741184117598013677698112561713355355676185316955686912190683190771715367675387575098560498497025898301947421224826061887294379023861184794799058693641777141015441305324983695121647107999909651586758730987650040881293517344358402515954061159362725822397324901790614485650004666411682853128530195660714306235539748226516098882055058983862621761923079406982438989954187820543320684384571751101719361083654209372580741155357241710481683187841448881136057561357048691224585409792812473613792609565043223950893887418823559504613679954953956094805249957128853684139357380040367906480956674304261054698555877333581388448940106908374741730575610152893320346586781102449687449500701454454913009699827548548679915520425139503772547566664744962648998192215014706376936802288972688808831182203181105910979959467503573002960590341159465861242181589131379566702128693121375392719895996403207693756928437592916859576860370922919780868665834558798454444240176481272235919456096497143944375311701867162761722195213641702777482629483781973321835608237404232140539008390368651763034116243279407699199478257792040482048869504292783972551707977566333509151443979597889143614394743036539263862628304966992264035736355350290351065623170009163160234162968308105493489456791629378902552938267942548321866943560053586180647730531342387102776300728640460201470182465208495184762932825282105787090354286810653560931246292012058720562892550480669435803576748316997577900782539999165999345975475189445264973006567445671825256625481034477350949272687856239720248267635493166757969925725251696796030139948689024499842931293741564866717334165756884053931954318874159584333220682435214848037551038931373064920987517546379376140831449579913292013932950878019553132895206474984582615871020667209180634451165032281112313164842623389784176813996557041992557530330017601928669133112486965923447362181250697044950838102056414447069850026900052891090949081928915697978736967816714536393999715793700426675529126627749411441150694346375982804557593174605213115465092513390064421951488754127935459367300560401317191717015715154512824259615332427397269136037798242433239159131243378364311620441303252961023475506010333346012461899639936900790244964465710688425900810042761735171571424149407758925843491229128556898516942317251562274615510910108721286735281607534801222556258439158651927192312381422058496337810194343964340935313297845900855125396561786823144382525007024446654659252231773014483096985357877627428987684186612217208104297185745730535773916881504237517640384468930750967171983132803510339037317598346193302099071461066616382941330073335942978735596239060207264659604064445494793831816218343124563927815422018335185844134211036050208858312264162480132911451329930959356943900886819614880327386853078522381638109084421150729493923297380317393244132359571492877153378937787990126882476494186170156727107832448082365290233112781197521499857264457403945052446430774032642172687541667967643229742059026603984129269556927122182597449537675770118627080902471175345850424813075042122829214306955105082165153960710165367675745448105546296392588731729370058102631141455598778774697234710227227808238615809293891897081438924221515798335756406346353639091799684507998389715873434083746308418104929763221406354161233918496762769898906910482886834272276274267820260097953167034420447819763642116509839361013964219081178763527463557469933469461085785230571239690562643685502082290051382855168554879120146381426329932620120810175397054102517653982046276865439989603949553604168712092515628546389454000254023302062438835147718094625374649161570668230718779182601352220434030556025155855174440863238781844661008030301023949906438695372526854298935093930453280411323304213382516589152286722478578869143594517856994772786787396252869545883591680859251703567758238892658633901074501396497174792252657099001088195048129230400501291934029385159449483688608880008328841825076323996249769010752129677810739876101467885774506082067605775309426877312840982225351943680498687629652925627824986047816413864625247224540498403702297523588297426780117827443999324199148393327658497007790049951189621749571229527880015398068682323031226489877210140664678083823271838113112284226928913838417043663897896098574217452753450034696629060993748823439012342717392829498490539051800668962285828259007243974391567075436818946893746241935873597070150289568368431540310974075442512096304647047404585714328097332633338784605200954245278027455922347831974866148853616608185661360719388138071504500855308694881418714856135306196133611083429645366260604596494853179515014433780314809018271925598533027481434844057201493216494698026041068830996114763497846671041576498775126624095591232085519862910935667435508369593395132939057295147702891473631935325615681786008114987010931369781728374486947931001344651299031899842588062040953934994324873428504307239760428939626119866353919443296831066040047945514860218470949550678685410168348552142078565139624390207575570727826221431847243256002939729106816017380299649482347629425472148902336282715112536378345035619530079413395166868869330215753608676738323199175755852897576588891823914218358874858073834822715594434173369650921931723424515624654196549124511040373664343439960242733163102787767897622287385203297800980347809462017006754199544000745603023643499061803515299671427183883477641694339810343045660993489213640174350664744304486676044251877199841756888700261416580386271090557216874550817595920004713936523109023647874079819456629473654652696230251973248794522682237868072292971926102485405737440967039010558604878300573932843093386762034383322204974297376875421584781319672395748995754210810712669567830391785451924906947353796369415297296362627294530155956840515856390319017028962820443037411783280651398371001938673766300231668051798843340272000954602220331020727645433277206870474909930778651382505964001637787182932627183512636688367507891206212100733364932548446927302695400271699052117667602797617485857268766401549846077218526786508180491943546352853887761213863304674703109043460066479373108751149668561363532025005914026911178693107955385459887317281978704953105418393321443920850645552070008697703289140505617269931897466134549014256065387855223011158992324195261450425899334622746031333630911831290650805592942142727061064922927579693938201201840382618463852800526034059551014507855661168804383755624788450698801209176485888283236417750371904452577558354912688097766383244915994033020525210673366397474314212067334874488366598538926199531131701086179988594212705761629600255852879866485815532314069982520328257694946714893256119610803661671829869143061344998334033835460062960486534161975473821669822421619487079532358041548231270555955823752633159874679516601370548593030705158023356939002594870549642113888013664170702099741364120646803133117398717726797076273282425331317376091386401188739159664918093987122776736563937201029272270234208094664233267937121354470483236300147643821849060598219517257490038284694320036462142274133539307614921363911089649852821074645336553052577621370173906311677564254802850290933433279362873204925359348668779584920851320759961700289587098545633886409611447642577994177312291916319533446455775975701337179525894674959019820585877361584815052593080893516708210774849190073190780745268416644311317332680650060976928879046029122095571971914688723018754337107958801664732295534758881075133393705373605573719719538898835544590656024350878162532330596782653205330196292548049232855225860635762204583859391248420119538461828308832480405363527234684456362546556803415808095857752733099139658777559692810932648834790457425272983835539554053219231920759271558675728394734239245324065925747669730815180308299110848520823243052331763557875025726985802259481966040441891862421781244503116795804924403151844034112240437604487814387475134370193616180928502007400533170491885593021126923867579902015120262117710924165128206250953209108233840153918083200710493341690474416134430216415578478775969194641009215252349993179589183535504243586768549808571545853759488298691832990961360042259010960948036786664601867209292203041099266472837076573498954765140769206357115626448042880362458071790769681634674247833146976131395886760829076089645027480455755944111749783200457702996132031334668116747147357721173667516159910026617215578880035900289597754712920336164616471131987352681122616715696907837008215621029113271946217878577149453301652649824759767293392793703746769954630374889001392240974092042827774954240437662601570690194393343116456202271240178718188638663467143036617326370696323523709381469776880933090836631785663066324228900045407103288880521765410623703856836551463324606864512927478095925283112072086317184793686471789758039280571629175429446718795174440794433505535188082653244611511225035366787083896956838016792306808127039598636292981072081206846225697316907492852798597757517819375745128770798382758911492768563423290055120645762130812022167688100493222656180137466284457521526960094733904298493903468629042057009881555680369362824907471264900921597551372364214353552089254988771884016003556006917462952236261666667720159948441327803587700032482256765762934091652144298011229569546016854490475015112822030980708346676877375732259902862294024940370646626616133935922883097414363349483990250630423766799061069503725757808092106164551233248834129209125922595922636243036261882099988298097610241483600138655131033865177439583211219000972347256408341236643450852061292704664246252547311431501272661854669637743364787641574488541568119995926976743071792551070124276401008123968316039079118853356410078573435788224888394360997855913495429425921954020468150436273462417715997176064771724073340219047954171339459296934619594365370830463491541767157791030693020706318498223033479153545938138962980571689817013782849491496487508679978107637214600470140683044678815542690617675108519580952381492948682198580396329365735508614055076059325988075726006007067297098630480003173131881696302417196777732414296451015941042143007834006495586310817082075627192876615978104635904121078409485841576294226879316971973637655144203186088731063813906321638533913120839710022633923355290580876457570529225355958643600788081738572877878338743133532990233070965541804226869443694768105779051935156371397758089026647984340046849602085720746337878143472045230377784546066692021421621335253250916420370109049778487588457364870861227693616655748946727836345165343070706414859625301469083607005222378366528524519084353566274210818816829938742531280307340999446549618374271867273263185730405516018342375462195602289444224699928444429359533563887707975574389874311012521168071304160637952845152730333592675113226456623255966674417939067884291561633995483538343767254915708190064300525517095565393390031638374360980937254536335655255152280910226815698556961092834011338408261910701207441099979036771502448930086541139739249969126528806394658900309533635635954503739297351369975061925893258409031737116294005795647545068865495739549827501758104289325939191496726777096837825698137989043978277419477578341111731800907358921928852117696906501632497998477798837054855128721094861992822941844343555199391649874537449795155288445426961020573750640371665628824836998148228737598828197151409890432673780927249936799718133943862884591705106494479415715089091780284386933123197969028301222132174114719625419034496909066506333268355102704764207992580704954351743611303967038851794762625075828864858402885762228679126858930694908286912901652597383328858409232993702122536460735491821124233336513281029851785186484881630577790991350756792078154770597675554644480269193903969794597575989687352210275415055840757612862038035314755692566754222267956412722094106087417046728715849262756893259348861224627996533166357911990226366848785271962114949150744860916185863728106272485267602494980214751797496453163584425563888418551614743500673778696026824374937094637480204867582162024323808482060289161778873699404321457414211016392057122157766276913766216569962319542228474236952244068374322355186761365888877445904468817821231952572132834623295630834632320768690260149230872404497142527227429781497619115427428206567510433331762174603918716498595755806711075832508958982091711681540764819971441097281098283088684703620792548278760226434514979728897569363741709700059742419538533453805059118230750170552869469121441418408608702465264110096599086460983976373779909122511230299064978190897690998284876567771034144526200464156149617689623769392150840648234755242907579612688414066870243422379681671946753261814092923909774321312401137495738634588286100883279734769938428207016104378356941200706376619186757374611311881383329786877732009608748965795230709802168865815262939632185232633799723192644346442549505760651462945776960826066332696182062211264889829472749161272682206149543473526989184666265465112359109143428609437482652427078647387333401670689450553966017666448864284221553820354070984134374744751205564917082192756663046258320187621548993050486912178053648048956300898383233409170734950098153569302655259910327137355523035072409150780802198086422803462748713328823923508942121630458432339132760155695855300832370854069330340304067160819028180761374519505834340029314162570108588264334870025482334905428771424659235695070056871940421733971066018867362027654328438942985557961513815601417593710562194300345526362821672741917989855942662605365455614294361279612033297734321508062258808925913767248390745177167633851903683457782196572358929003269040027739945492766639884487493258594333736056495714249525922933772029061366892835674053137522136444356480629102083696585541953398755084838192658325265227099645172812155604392833329738851159828555710443107728397095156106375228405227879174642472667923328272725822304492888420415871275392647874118707178405597998797370487866818969213673700532072651244859321815757089260764533265840838182686693600287613581241398438111981150060881484836926787266064702114377107672587789318846817961953491973995712524274436645223634018436834055156835724726760089037796279352683738145171635168183982362618385193765317190262185404628977672110940521553378701854421205525743465007183350912654319724869332438007685822704366394637826094728681323007050005431250527917009518675015427790648302533310516065860930125737070049069410743377020266475092783145624127027236255079987681676600664098815679723512671225543513943867819450330222887383678782146730188788736655762392177524615301048351679804154481531892353748290564097367492030517544628158567813382653880515168863899483927285976819401129351553522822288952007440141576355510606830950535266159420198778100443594757002846113084525936182422459477839333268769649259046773559049797689557354793492892659827864774737458302185221374640281050732919727187558060660582208906586943159850763777681995780630721701865414389854383442551780298443532513109730909242301598492884434321219374391037673515621839210767988797677685317435809867100792597998846127021036045384222888082547228940496265331538425498765258813945179617791017946772884438199315621913227478174448089841698482781455429287038178158917934311552627050654805272736911675758912272308687918139992278638541614590500026233619909440664379988504574229499455808407970524828036976501100001209614605550353100250359541623606052213046477264498473638529122462355800992506198418359177692884870438866589140557176625008646085606993477678340124936081188396419431279469669727323358404773164130807347335932636729733078290177809440448899813607189283340001784699163879736122180536593592936395556469528180806735800199299465929785105580064972583001228959878557735851898369213678854568576067806679810035138196072906169213721945108331839144774484129216367022181999510059478058106774458767666466030405405801467314172201959855358381183705291563813361930538225985061635488416361779763085019363917960714769438110844542301086413143911837443153304826038279380066525035590880743841236286839923274361713572811378078545391438055573043517916052696246412760077766022697942919575103535757802952675955102353082931438351947275721506271377787654820373600513844616635918250598956587493207514643659308459839655742110502694054332742162792590896939507822106182859151743602346626687657767065142561474304888912325386732222713303519705665227038859037285399595805693732374529102926349592540627553303499679013861007010188541479175570284708481916441146506776534689872843567918911530379407421212617654280873112752647472829690300297292141545083529716689627026300077639468804794867874843221481651710467282588686543762114937299134667654802702256969644680781766285982752176640343783337996132641232769226535324007196382558656054763324280852274140130326353165860180694482286138311095032960695217895397708484559424108677456655747519714860619076438314991797519810651316830802671965586605366065500897334395065013008593217546890946526211915910413631001121856754154792751688616762668692151233125859561898606583117690689297906045248233479004396834672751349941256301799927656393706287587084227509669541587318235362798309057259156293242193024521135369491902401393530140930457474990435234491815825136706895701385730769181554530936216975601386951387115599668446902166224113914304148769319290164977320067556133226807454017525474839830578058866458397978713352117223579523825870387452698847685691212161251653681296864003204886945570141079187106516264616486960323637620799664399694102719345125418469130259615165612456903421161152925306502755728493386522616957237248185114798581203020753678887049966054987618909080448719751464560443653508416544079872789840866627538208809027411005448555418356349992500647516794409092251187057015565311935911202424836395833916267945103477006888003287148667234824320765750799973362331773736247835076591654310652254441733830426681910488028205698245657624860863234623369138303129217245740274326359664489450845229429033994602758897172180954429464119036066303725378571819565636303106122921543091382944070283997702954845529650558099984989189117089510409126587205632291882142760986620034932476313115360063177653340518504922372099148077247646401797566452421491360175583398795413669328339853361163055513132103845525471082188304570982800798119815646840078447967340616734379797157715404680701678974147269938623127502168312971562308068937143212000740966090775596787876574953832396993277010174466866760580041960284298188198115841362140707509542748162830234059815935157173671881048513213221603227065659870483123408136306259424046747089976382735683427624514399881206534305317650260430898709000207447240732280683378192476100098078367113249666085711225115663631128732609633755218963281511609699805531533851392607162056594770696910026100732938653965095811782885781685265933787633339390808279537315085314303737733107860085310399367073047613159095225653778806650078068274044157671858769933321730295301678297023273981458264756622790581686470348845419498033587241142611602590542059049305797753897674766723422870811745392049194412140016558415665531009614178633959045691348578569812618548083150938728390423969599407320752097621669210042320061749342749713291594036070508585347182812570888387957398591378484994327073643144087546700021697193901008174563798948446140906985311656354206160538500276670871482041912381349335026755707472930769858813158247549257372317261433551783541361321895565706988940595731106839649562757521601944807388988158181845933194552446446806218552544783282089479706790922384118680660730917111813004727777895972141059033489678625300529542347722156897301981820800614360359418148429682700648318093342565233751049934838318146426791040454558158460601980535493561784217329303766814496595948169663579817550587368140643520883710829463812382998829125874602148232197310866056488226025117958387565729036395294148664672252569501008725055955088647452056774121950354600757803561863667680886438928961805416420081692076718362527027387641465086210399726682068942492429278377658745434337687690780518761910534274714237486035512272087481558773987276414170747980714157315974804248889438428547040638789920674839718695434393141933153669205979847889247875027311598998432752435902092555821130986200452816249558061539361711339877299538830099180091566885073102150587298246035827866239855627884619835732715317474056743761926742841883539824907012742837523224609520302112621853663641014349823994648858640627796314366612790899849051325436288685131116583030959399891166263874794618297987707901896715189542412365203510124856946686858216942750023740851588920989758744156879331680723420085899211898508999140597811683774615984982218900694855537239714249311466042942380789452730882311213897514970899225054453714158368970823857603163665465341905265215148642773361846888516966828191718023815929428688088989417493148150539192487314285507873409820842630527986049490613641939810753055829374174974544037554560611277894953606525323164872473036104540894180741053711704362996069196833783777373362491442345253730546659291490425600530886637531647438104331121624620506079998625381996610499172976903634561896453396898695892957064735412395814580143108998809937519825621224840351375530081238427153198373533589309750173885746352330307244017774572188526134552616213660552835695672595494080860898811409927981465235333537453219776657150706177981086131238121650070851862273698742603888490049230459583657733032246480944993245059247993761446082101948220550993249345929475593250486500349796379510642450311037100987919280911516772929272208326013878968639670437277707854018638642007649786241343786053066211389925493631121064406403346769959199480251504452834340464190817187970163165940290675518224246234068890524317455164896758811435952319989339749840887420810620931521998556558013127766953383436875649701458202214952242653516240873654478942602763102846975104905913268657534544604625619832837571756504688970948471060270466931688610137971694719788356653518488426202446121939202530346160530984460670582395696586133019656453893426346693718524335418198329113711155938051339797759325940242963079899028313865553234175324301994028355998932780717918503357973611378233571732687185986436565507527879703942338242953309752954884795640854832673405941298362643523856360590926814462535712369206161392154459222970900549073052708861575843154692475034673345998615063670934494229503999923327873437719834106159958250890413806082225874081298930960486144673265496216649161650133204746856957908495431166606368317959209187172229761747903183058438628880200392292375903221388951689201401159875096524975909103292877408052687054568389718752713963886988225455939674556441021995426182218459711795358529955334811648484794684668551159507600139501522352402946449052699888640418079456381805283581621745040088747770267661303740752361649605906757153675362411637959049964342489192474518930492169235468749950308743833329449647693671803883574843057888501114231959064880506388112272604108841930566586488560083621665675876537464732156775849810868065379017676826852333115264621727706583812695477205585886896237454737687828481311669098120020942517288993713386784988150235473115287882561735165698483172293780776215423468843534484292223408540052114850156150549228021058708821576942269373634093766696144149069117240460378190753828311346380921815013974065101410826372513229964784429361278182301680721283648433011457215205597424825224741680058840465776535961706746118263776763497377684249706163978506206324800597277232262174279136642443496867658752111981789382282740995744516973677478972052527677291437611626657355924094829642877617294770488836730528826755745945553573276681478758648561681986772864657391597921841695913026162935233457268324684938764328437133845509274929812981394475205522194363646163974411491277407658867245379705322949784010385719642528572215736989245197645535567158001345913132026158036440607629801808407855484488800276280170413572644568539400694182643761395530284787082860460026432935223334047798246873128790876867064191547603002982458492467031011415835790176677097358180049870942747539033886456544776604217915996525490420355489891621027120671255863454381149940617671941046960182723038833950602972531227381690541356160033912707539559712394396152783961798047617595187781071482366326325982917477920826494468010388058924252002001859915816263630681716754360602580896870636661616859289327199687488366662703325755134489099391917068292479860434780879284040548292766590101153600022654205525598706016103903527782985498438124889520927353822007082990695394202362518152679157884412576648094903075259270611839430837249239253044073452395987703805654015483916184166081704895287309360968448643471970866797722802682377575860468203978626763532088800622440647469062645231203001264582287327158204365515569460164170358426031530502030423157882693419569728041079456876423454660813578918861988047829390129472974259521171697646485227132317584594955771584805300008967243280445908624438175165403894087510651817750925583818146257026346305267947236470020874469599763958240455058685295563582187891570985759072876978301240739531231712852527844984764361089296504756506014105275650363621848485337142976259753390903721001527043017480381328165864229605660234278092002813771744924417522486080579117978514741961481002576184170156496856997435639366515190338688380371944999332225465953733500952430401234394610701163753960373470897290882120911203589681400705870891259527448857698783250068130193074614179499016249836659887239431042362860924770736688432164068775288734598284805427753413278802613828196065036704068844863038228929671444896926587190297661619236573540906520595307237939162433265188804282856669887903177707647379428296116260206229789055353052423736479673721819819742550488045948617429975015679820162811819504580337660933372548361870114681506366062092094674889711310599872300559265030975938877200362143356770827400391674612970982259790082283317706643733894981706874715361630006536664001721658628343546185146425500158081387282102566420161020627129411689884647035229577422118535760358768732377019886207131746428185087447805019124390953537734941388983825417598253900162110448225114534686543230337400662796663440302108137174805336713059428989218035086685163040161535754945442799554976513767293035929970398764287866917515812380349973805810053987450853664413789143513156787999583879036376235935905307712006543106611688316383065666539007318854874151361280544521751921362402751140851927999016557161450987273318591957112805721346337404646433208481931738407371935440920390724664300478762039434790953766103829622930294208557280727689098911075249063060723640540190169381139978700316925332394765735393468123429514667432836836176288740522070092108802773089469195569047662036109794193229294501620128662142262449717565412000549299554013033997898317571822215248188003500777879800055864422390497910004450363132834329492661813598103799470457754677579911493281637223601182190643273816496082125807341064043403961406314695086252354247847817754234047432804584579108103842992823962650345506679009028836475908650822058567855493321423932460531017936058017130853304565502751406570110762531398342696354360371356472754326689485322385794470370730107497937323481783770689446427129552130094390084263345123491807436233417707386612750097793610973569507652564442419143897254111203690861423273551655546001581048430460154683263997767120944454217174454233260635665965387452413967369013919396516465661924327810082757477944443569164747260253299911760877886630680038680267744827662343047569073162749560522584660050019397797913068348199379380997085670310875555458152515665417821005101196368890848430671582000314072185644714826883916795665220175444800461434299299101359447249241065508998881815772506412293733210224871001845121903923249292472012498501512935358895413356746027059949914839353040980581150180733041601052596355822526253866687561551768498468690737694096809258782783888350714942598220520652329744276189361690956006334352745866655322000440697833784405184965715485381215828953537479415382146435717728222447352191696241303726031994411214632127913699365720318581753068792396596371306805126241487928918864761074301996898059105064100050845817346328771696168695224789617382009600545202300629932404564769350740233925503629633981648762394129978204716150987721339471151216931014519948025046002184115302177798689416131562180321979901361744250609890385776458492177575548311146197265172963402482410239699358975385002198601837359452728287883193729093076146436476609072288899161141467381373276761712177662104210049432095582823323168509176118850414935440496930645755195503011544425231980289499494901845293371123545646886325872741622140050455763228307503707418036857929040593508748635375473776700036830523775671627461660504918060832839594691649146963295406037694215476949434213840986159436937731331352962558408741634254744281460544416501403444818673155210451479935336837772642736449047811376568799762162086526644978224200306635132907636754293978987208617720657927831958161629003256810059033072924583299214508584211676001129503886975878954992722786347113116123861899247187801213868234868727936966158869054269917082443755702300253949298811034906896218803365410436078403264179094812369214511288356871469842395365930956716551859138155600067389054041528862268813728141842514099011930266747024003841462981949272814234783904098890115136880160953333286704637933286306590070965094369660078507781963195008489568393420299641615824265389807089603273788384818220300968426209679314730100172948967029859244851567149571070250887796324734249762086110532018301259041719241992307313799759200820514573088738597831198257822081196528611135001320603511248852704529700771149299519459580835272158646715447973116232932528305454413207163842512637439269386719132078665663873538941582819253876388075350985287316702542103106600414864224058974540261104738919038645652450282347745778327134161254970868564511182827171504509455738629453460723211123968757425351888262395171916772560476253978061015875089033595549809180074841200641597691581917766373952783715108853706343059037056813900720630683106785344885420842172008718212979115837457576464593049232761630169786735108078122853458551588125467404531069295441557626877466129776641530463122992127372809711681915865269893489183825174233019393708034899605096906537508370592697835694004646316880656963701543190108892348186667649263667479918871040656257709034761610753932017965532506164170817876245946798124828959434773307595491476426115329002733693969846943574824354728684024981047800058206245216803458008155661076181597175637598439114746189420066281828544000453472003407251942565045657460723664381533691383904735423339583983459102961400241714671951813649588675993319312750480845857134720019893105531513094947333720832888953199126807275747418627347642016378459279066642835615596079002433706366621985876385781960456003637565568135913712732712832426152767430537540202410586432354645181910052665484321741399633131833973948356765925971266046702532213752310113959626068904684093364085720090009826226916452678143827030980631353430816885813774423484670649835323639949149624838003703941274632735134624134925762827309046090836834483112223161455976628200487221561246144373619100290217519299063916208195050510421672007368496642409993229516996063351240610187722544190488964443677455454831857137249689856298792837584886436962978997010948278747865811590831520160995857143559845353304625084745047927634901999882948270367483565669116509579160810316249409924701525036153881299288969737597375463881946426952636711381885463086947450702739431288864074280448060123884773442377528641425272991912451129816371246618981849179176174766991096480256711815423361913410462840368954436192883873066938697488625345002770309112546448410029250769329916435048201406313300688768749715129337653565111365532114084432891500424165130267303737186608043208338650930250297557060273031530743656725192598357135284207082631779071075103645482252891536976378251536163398655635531398018668839216864452894806253390929591885700760753965997181329697175918176063062588930598112007297845184047355425524079825666476396369990204638388435379123520360269629790464248189726196910073305788326940571099294725399339896649935927293735821347010542254811050897086324932387759667696220646534717613581070166379092989080799592215118119922329059042769013879965336997285990557657643876995028411030236533275803204135567245322087365543257958919147344913027943189805541859614414270122099089427353828068823771639789411207626603943289594261223748810271892122662497028495270380336993392669479986608991152607186450378254734508924430097373188864050200217875521849254073301519745065368328748698769443152217429666424394779849013717266546733851069753408754064238603066935708563315928120423663281035863390154324907198568731491033901950535202746819040466592706373199870264159611018129554842739764576940315927753518351036529401469369111533149696949596072991362355785689337237191040969370994220179821531551960838381444379753616368009021028678232636698126487572844794882912131040106195639055562384394039997724925079826198163139889885686327633784470761983400564960369828491442456710994526746075035883930132556725321230769936165083375712367147742394659532394282206932301023840803167828129411502663579733459647824769141090173364408096013329732316703891129522339987729691401268460986516264137321730195114916458056373689514850554253124249245296998141364473345254591465870930412801390333191175941931885330118258552746783303279746417945351870751575900830375174756173127675010151272265507562589295699316763733229770627767373204789184420305891383909893210773764579246710825446543455209020805527600373428441129732543288803115488453022963099116209259569774351290468634247064327006411857606202016903103096211669714770850657977786422001689846588385068851629871545637661862686091254254702558645097212066953069510084344774030713537617887228019535917446339839585616167499555560651035432596983771896464217407964542379258252119508970652523864648680255209459781456594544919904629116982802198405622377722105637860425322391693577087058306540624665437558170464136353746444755311685304751419869803345848109245861178227427061008553725093286634801778036830909388346396647224958853955991998217337480589376175563502689218620698741656559371798304277636466205124861326669637887422945114962539720671717394458546192469061058842769009603513881533858723544269748805285093498273533753807898815245695679306023803212568440561300588450481610464893137059415338409768636052936450096529128389623254054863473454043085577432438855484523261751117003227258815139490418474015751255248368082104404399263551680622060722946693109591524613649018391089383823779553688255530808693734342686667705489963557130158032353277445640673918351431408723230193621219703994275898030667693993863818003735934671811429971650568962729023023449595357073695118866347681404018064799353776076901969101805267182965650450630347987337562984148633461167734901467369929500082700858321922330544095200804749882215746271549596856775003318216169855884996635919977509411696365243025278352997156298137115593198875978026283632360452906143951018235055983779330681793068380610359403883537527265550094508802764248074850374659647552143436790168910447572966825179879172574185384239530409929048487822607479399368732828605342481033789308338531548075827290929701020080031684537342810975806097656085209459619713480599381442283603938106682840172619069376619740856585243157576836917495554088911246580189818494426601738661008468542163265236423977680496061849985741703037647340477216597827329184670724490584462038655545430067183471383817810263379423147797963462190406502346317671904749791955676202866932401427168333230791750210979615196276106653839070357102222389249394862202633010654539649513399609158598392828970180137091248357712071453046985658437720335931921650895766173586537020499120044253147905851858217470972736882235310955467174964890234896796317940602607449707255152745699049351879157641358404302254786190761715075842071424993166386244575683337021606393913413742747111475953544709890861467316543531660734499789797818970108280934227309690788053321354150092327505484596337477006832361633336376580759680740679698633195219367309974985750174023729114064238436466509459975266592853707604530479768179473298471306728786477402169034042160460741304601097378854066933960653025306060015862662801334833030148726494279674520108722894545030687664242364358567511542485899582062139990668600638599073818428515313660301289990920115883503640182673908374523290641628086423202193602854463249504028009980535029563252989880273620572798227707974729242006449960714391950238275942108275522756528206561983109401848180995957615212270291385017108467966169952401216165160178565349956281801838654546998697492086243546986917826571115063041832101939768743144314812728587859913782846218210528475785368512684286329400257373646040006145980783026855977130212381620787965660992275803596129992103088637083429512539838756955780007898758319679486489904332913094932267977765334501777460295422601704271617805705091292217906641237989226807186337915028926650129600754906590957229784747466537923659285616608834564889304497217813282649203597656069595649576138038712840849365493894517494007504304736021770622718717975519762614510446729876056060492106714766985855696775789863000984131051259009229688607217583671480282190878238175306376551852419042939246314581765346868374800789497714305147179647009853377036965024108869233095612635769879298626444508828788982066506275678022954162227794472491818779077949860899664457568706927202687961165058595163240576447410054159465297074918378575065170217157241899838058603397803598595367937045257486680458288048666011403259019558467937656249808985999845461301048085969309440241360070559492879009733559492090770885195115430301787443834236714049617885066945615914456931926517478468870491564508773293545117444873723068111103109282851340169774083901751605968784614363702463475418865634059253378070038487534512200042677283645514497887029495907589351883225021820457579271238621739441800717050264634131547804919957574851360383589126484965941018797469261287299160986073568848951319614900953966096806827511365445742538141706816233422185695956782399603728288236949009182584484088550821631718761508885470531896883690373272394843159083901065442898896929435412714763116925963772089049054679247066006058135489548378812875937126521766337396581426745321074428859346329561765261444868035972424751191213293425524133301068730520702270222047763763629807172476221470752119058678840110353645409730159928470209205405835251310467532011775046306131323266169808771039402356629592871802542562535076158800596527079520368241014144888913853750127060634116331207519759454881793647910445349797479987802317368532380537946599732151386679266548724658720149581679328555772929211035679929353773322087975982121861409108178910386836466778155342502207503969188902629669748941497623437072900090632930489479747212788647299932421344444775717987534212866623338863738642946799058223209056722145012683306596997598249274067101574197346157846571650906511555837713750210387697923309408996842395204558779688750006047550770397776014767786498023726469835074501284612306294742053326593947794907941355870409970460808205200277646119499867617356117730607505278024988356780650498708776513924583400788787021739672820228303916717452173773173406950604072651199015896191966229222116399076879901374585271255832082617947429367167851978976570802383825224199354230024127292885829984606269498689369870124919657357200567290550567980649136388613415193701498058615227991334379567102810374801050265662867812567510240421828002210543251112295823698397743716859887210479415318709956051005055999118648691093514029840037342286158157850770406367694166049328663787953795602753788194937719020235015939818489863195215685736497419194303938698670612994995099034297010536038930797378083650254834607618414252388755847469806475700133085723938919012688003522429149430123495425337899047528324184656300762138118870298089959136846894334920698176773040474132350941436308093008946507030938204249016289647703781868038522357123897693803564428448054879230272220468441930090962323568729282238997470846583187575795496523881517442937974930098754785740670420035361405780477035092262701619765193425321179443618983166016280087928762817973035057590453237024761552377868188214484061819711815055472943351053471986300979930092007498167495850497563232064130975337954922390850359593025281421770973542340796699026711409291672749289173805770939823272144483877887248384897672542659477219105312833693541402375182248345854591068338187904077233718943960973384080083568235459930204721330313335983948102618538612313945394840689202972502014560390422179855355361408350406905099364401129208598135042137529375062682699120922433764370941385799019158003949663151377327024685314948338389780760713654579162120149906396977368799149483320457108451276446195393159749571288055747519301708464778690751062283568865487210127913203411384549781171047820118035068557105796348149580310267331720749823371160963958627384128943769023460618104290696028696496823541367129079917109357929085989826478445150535139397911884303201439654636017046925331106097762706782165121428996973345238383293236872334202693552533435787844851355770535505502410253236473870838285084464574792293472936640983842594224954604717297142797969862707651577937021290450803751747182853927922049316846536315796522808269816711940518873228573298804138408221412872763631000850062869502298801222229652763538483534192292451615954752926631513941151626402497479496243298113713035273821513464547879891592152638272691513463448875190243355077266621421624111270609339234045048866511089248913814366895154626511315589647041531346260782386033406287888098298748329952553644511752900860107152837613850385608738194582052162656293410652581021241353832536715782664604307308778422712518571430778315027954106293098501026428823243023862924098067439075035906946527319878642433300359377663835557777269069586495967181921085106860015801793775018906468447284506613757539965376532120660989219086199432624950384012372021721591564641075044022688775613535127143738322253761151745189673068790515314264790527893221609350703752114274495749882332489242326264805185274373607555468989396035479174777000701908070869985892899929381321411656341392852003527795555022302031206223251035017346291907049244534504590142317940402064430078295298469912067300520661775133779122882187410206260561770292034833960507946578287713664117205590369764325787835216128579545350423478561907504756141324836397755705729161122627257934348233799600154793513354707012742579091869761173657002397344978514097350449000325795985490361932984484396012344872085188795231598473412703905373134085366869386050261946662549680835171098831384383570320003516719705982665270466144258666826797772386435483759736452375303230284353706260365042698999517882994639471042620015731674618054616690698720424370237800248764465101131473867816032980265192384546273454765088342513267584421515049269378551331175795438428360251764917608984422116447213126668771033897547725656929289065561469937799234754449791658289221323253866274287288781047955568156284363073803373656104583083421662825536928610585155335148435315556494147787089815824885917701999163962541519590503805094151822872829294934435681972480863474549957511714140548483422782886495967310357289971664012825149032154122165206704989176776999085394094506820074253125523341873436696873095995940761239561280440051811758459108382358872837432208718166944816263387665258582960032857546593449391139219633928944426347153000251436986418017698975619011786220469068224099765788140963035878937224068093939822266737954400341465135727018576530375722185601711906881136918482401900700555132807840842479450620181361480263866438907566019708054502586948532331680569105272573536969807627104752418088557317230164223958158937879270789975418767215338702013230139066607176281287536528955750628533162398653569764610432792306293811964117766253036302358885856754172367023934010557591994259832227584796927988495908773654100189546045357928277697155553436959140016578793416964006886911448549175544955266780843790806744157120819716956762758180282049680728149230407241132229268477818726980432488370316474408504941687030414876504761732464726043019101917863953827270791698886204928907737818267070496286100069058580500287523546964914480169760419143665109972160981265918159919615822208579734538301055477761507012823009957140676743746417010562839434200177899194300742708408051528975316272152324274579594790278367928213957362919374562280665578146574381178342085273902217632989935811853787881218368104245815825431603896969937627474433371487111273797901377240862474512639030962054840512825250060606694685079573423036340877074663864351791610967702099163617696452907319769786367599149534416046185327399630028498301463600139697554978496665946466566798407013574169640657364431897371184257247927042614001169316070553291006359336293877267329416791022350903452202866391773490812268073081272306901984257913015656470103838325366575029173393137021842002211932756328482430818187407681480178560935901436854343943115119182530514173244334804284908561474017680672953474463746307424156753799222405338019855030344520202352096464635324888772433687916158100401178860387639667897534438470722032641637032352974518630747657738049846194980331671005679687462187187313369527288588061104270450924049253405347267904388415761698914272945999471779422274151608341722804238410229572590478363644672077386569939278012222107766717151439874365323010777269339862700627773509653008430898765927975382757876756180968727977577640377296634553580791025481994730331386356866666920387568367822000428408414127155496214600539709722443143652113485113161783012919009888091097188133784320093186637914945007751117075728739371354305584863924845869603825539489398685768289370016612392431165858179108048940626892800532728676126967202605914878034788957044008982205277760431658901795018413502195552859245444612016037119270073148686391336256991619966461401425842943417941534580840163832810118499749812402985716120218763415395125326992577210234755284105171015662043410373823561238558703371152386335558075048671177146957126810176896008007278780929597604589694727963717716353764268996774828668300900102177998257180497704034429807544974285632558177237956234371852137777501018489565400768059772738621123096684801681354452805858980620252671452903617076415043972606389807314159369799552017277442982390999811308500782579656177093267542813073723723610665880720773227010013113617602465408266033930246905804039963761745637172755153732028387475631896690727672705609133310168063954807111800672672191735339722574916122375224149562187121250606170763887653599593801951951185769130720225511489567380519837745418051484750312066570605864121671852840236388257190982492331940936876052873107184880641401261264397449123285360064785478276176051596449875388118672658716293055432090875561408075523288743868999258110978263310795470733111378138474386180009034157153125299495383497367372266878357106202213342291782164629161141277945620166668808442682109273645891029204853228062122358231326145233315291428468547640293504530642589142160409326230289569192490990747066151593441697828265228524325899378048580244960542012585145679135063067738501174803361197324441165855356013639839041049009729786883361936241618807401088302115038315773762969266891304110438450053424799490926238520357219513856547103576633618546441842131081568947306491871624933358337278718890743248398742999558519022447878859037570823958967830049067336071483752998304789910066565810009456683142501604856021312834337706399856311566367848895520126908479253669477276413283806361768512476155703154706926402084449926318609900388719681464913368471100981141252973394628884359012341926461332036729331310769079588605355983462420887006142517931523922332220360689680766252296651031733099082899395631143408632010600537690988561474932603841886288784527451706148200550673330056410548639909021696147758517351290611808248225634211808104911815604078356149925516986293646836642351949322472354524961512510577915014477774592610053925839305378513929694801531995640558973782981279015570591710332950920055077398950456597010903664930005838023863720815352123635189414369238680464587712193984081172159886414549815242609282819082016970589693518683855167827635584596770164800393195147784330239591586184041993380322151559209168068013934461953606429434418116972569702454120963024810507124893700199316919795900293972121985054218044556224962731167958029147072623099726818935996320256027269951340799334566005891421964181307402051357082842711794946933945578515268309796474027811303267503113497715640110098287661118979703522204510348491934632971490898998901636956746638011226165610959815951633394268387445458018074894606385247155227582915035753510325870038317769708651494580254372184191531129583423159102851844144707045368494519495010580824725205420342148715363399233720207562744295226666792850527441277421187432818214784377235373907642355028377833539215973248452354379274262839319864674916390547344751833723888928340087446464899456756515552342780526829072793962971058810755535238588942928713159184539506295655215291846350426365236402655445938772223388535214840316488415761257078197962051779824426888623339302872318280075042892280662699946795551645814123363480603023810703594661931330525583830554832925310298543606022926774488227056334690336465235862099218935235416205280494981354277269576918487857027007995586830388812643612686713771199722806572687533733550736586862103768248638303492453580167027920065973662054400948084324041387333969404167721781555259486110237094767780725519835763680213742044698590587350509051419549281502582740803155532185502321109017274909039689665861585568017326307966066748070428720482613165962752228858707337824017180813428172868375301279085432194906092159688539134434546847613329367010851048948137606004737563845970592079335621974738667402412292178463321418866905931269570979691873596590301944286436236206033912431622415020367508089349094650773886709220528145994672414185494739768482964368326991187118556715196759136910150141854723589316084465784112254541230546263437342306265595129760107919065227194292076218245321976505169340264325955912698766072769070131981930989057978322766503514479173603512454988408400102291011925125618175494863775598851575091476072473153204271789843358218432742746413150608519156461850015887945807645526845372956370053336766980616923704692580415386579072668514881611083046219648330516439887435746201181977642411231175159211710556321391862429546070416926637766951123322226906978589693334336393992355332036028829679172349628682149541034295641846923118693836134805896545660575613057758597053675712779271004331006908161067236259068050702023498211709688951040325101099240357326811150965792953149553014148850963356857671546632476668549849710501415100686053592801145654292623971118413840155152647840418559097824539755510761907152370417589105270375579552093613531453073341916285256996781416881922358101852565379008777923512318751270579099821321248693237999525084662423086902415935581027128529601796884000297712476488775907679261940893519679466568448505018991199021492192829826841223829479179346894235168165216826098657077680570861771158413590036890645011998423653718628916979635607260964011088470621038568615803873502096229912544569143195477662036926483525006960070363591793058962588393493410307737769754803527794421525778331623954491049419213111989291288267259127038951398733341097370646352171602476884109261624976801390210200671688056858971439923451165689916942992881984438842366262107425168589874506361066643476945952542497494018125804966762823872076831861639242824329930929547579333431725129929959890323732591876506692002931953943885119284725004917314181368100076714446354015804690896246501905220794149285351603836281262398405873168798654831044867489969681578950438866390574977969484988281218003181256833171843738609968561694813133571733539191606653602996393662865295368565989781298732513025677153610439234641941511908464813601524914254207124271947842074287321809691906638151788446915264961458868116969071880915473232897988651508306709846133603108028861673529887197281688076150724963597578527470360965894765206925148440730052988356013295156004797623923390224740012217718395957242770219192467041851414720209782905877167361490865925682049433457803981969834052790785965825473664653353566179603178736026468841221782919597838479456388351053676846187267988102250337533522980750777963196290916758989268870480726818079552527205529744772258482258154314679347141601005761354013315647178347195980043231924662315881953488345410132371072333057172059330369570137260137638881221871487543634761568166419012146086389372007224356554069128539565156222538294689817008236009900673560260031677237954662391497621088688918915792120037020941882455483079389652022498312308600982996675453183859985849009301840603563960441237089535549270399564190111569989318814464389965629130320693697530061784109764842947833348271860005871635793996829988427215725831217770312109192399420146388325443881768064168532943586292487975783987584312802108617267379741564733149170339803209369327752445209337252745878297543383416822809170992128189026774426521581701754914297762865876309791425341204502089075289066111395800294287210953619202976963688069357961511698025312368718398332589990633802238026062069708057057522212963880045465991575159057321959008241965910508262016547360984857690010561306225279843763519538776792938542487808390436189187958678408759500209392228715855943084584641697846168976481091896713994458732498705289951201750847889119436922468850782787751943944003240303220366397892312427046104673615858214337012487637523615377800565109955424845383289982320776881136815518454792369402395815036788717784340759661076711895171364026384824445779799557246993405306328910157190468351180020987002451750578082128372359728764272932653532348428910799340136051438790144399610904570896154273772228714252231879999407462670372504648522891999701435781582561130744948298128437639103911842323515995827071431632984129591756340701787581917804889344771452325877318509326154683645795915629560245834328394119108453247321249821639976454048122599915039183854710816560632192089833331722775155268086922885508029277340266781793748968624521315234564136615660731515969000705961805903993184670581980702427386973591210151676170581852748870883376642479381157794127113518643325389953687201420364507702293410666802528843506675789743935028767592167718817356500910386105031052173135762083020700614280284816802447075999805559637180546066147799187444728479853899276479817947363148209883002196655736235948938428644849367933664310343751596169660367979586049000997649507113630054644077665958463739923276741382759242715690061318179011074741218708290550454303617757692269423737350730182373619198244856741945912039908126059903875442615920103311909897675036009714193438508056414688115789949168156521639556101051085966436072103741250463579103680406113535470339261411335075836803851313052278380973137191661483163106666602374753032185139534667966366340916190789566355399247792613312990920549178049123563100768674700529091150390711314248940806623564345341766466961256768341445241058515623493004731565251272902164818576582725298779495314501593045198669502252127953541786313503366755020374632779717014667007826190065565006488141986336762179787764760389706727993423597989591293464126158593832822691602968135105105591139260565778762943120138829170121024145910320261097873439638894136424338879580839449320136074269708114638520640048900802410136895578323616579218806619378881836565363947297174586979542200520619263999206220592952721429918952869257943176773632991592451501095335284990263360908993320748872580768600663193452061632588866160059661898160168116135154399538114791450412491276943287106872206518622705973762239342287308551561314986171296614122181899742993482264911003692910063481128416698034349046174585441735425562485451996002694817250892247098977737891214758256162096677823203080297152558678832907441417730887590016495642292220733168989589506587320037978695844487873268335457567937097743120050897769427441800166874001729285305057633064449381473540052505162499978839718902741399470950787923792844349332129807238157408396649229891221904588262410119517553011866512157071405628810560053895820530655068603006216083205919201334010252059875385532173252282145976433669706462078008976488558249433333582628413339964573655226730643250285360250030580390548663428426333760816046179875451170387283542109929231428941621074711859293275117950198785817220976732196731781048435731345901806919396980853810260358791744395566717849929946894774299837347732956211153003524583159950643616316242189438561866174604718845021804980702437342974182575236733727036118293973487044449904757484231890502055032723897776991210848974007408889877990810029133143108297824843350915867579197074657787851912949406945421485361959975388318823446294315417024675896111221731254683190491914996834621613381013611108594603364153586947375999327693865566904288816888349285562490766135190104509634130316858055405975284219380013820361534193887570678343185467988573666710602671903570935252675076456433927468745943152962532990843645837108816232837385101067951303031584550223103113486268942421780181851844811916015763730044625697121503435779572895726248242474686207305673387474040567070125200829175511489793028870551061081476995960174354336446040035008347873240774403899188834060313314118279496326645281387605595689109620595253553642146554880037115561954353787109948482534603462920849724900175225999950826559024981031927859440547701280262157766508684005475831354642329849903004283451051184277245587002353810247123430510714633664481251780165648513226947918152024534521646594807906116742142701888635740655149152159488631631157223829877044594975421130724896626335879915486658151003023582240239315708502747465133891283928704533603435262296874854421078604897350823742298172032825423093912594787043839579481176965280344974512678625826766536810296332719349629936570135003993384519894515308003072666783822951176283303512773633881352979600703994883183984409401601484190323889104590915374569818134934353654119270901898490067154102843848659232190170933274734497528254990979213244017390329529352196114314155177266604293066032953712750520853080214930139126803029870496623834466108687587133134794284206932846865834573895545859161900701407197974460191670370235034839208413692980554749037186156737765574420790784253824794201400462001013509081219773567966428677689365457716242475762021400237134978065316909597072978171394277907207567588710906634993079075592337756149628288769165235557538866514834385083833262710056625229440504126522600372729538029068163679552543994714505836777386819130249165528337919076786629751311353482925227815275913704073737641290630487427755102607083901970234558806541364542385890576608888218249140242808482887854693292207054718748554936730269831030634246117206138267224716178478980347957667012972810037382146882857989732209696346040552666975132896938910901582112786859370655026911672876532069316076623234869678986433958636140171246971137541753463629951218853150604420186469354492699581177754752174296705479487993852313525706318008336050373908437149510904324879933163844310162839716402550204412829305457116705652282595865338854116402155011860962369603389581386613735271643534482055573740855936357682753132807224751277987598434229513450858454008830818845275210105165912723585217932017007573656721678814487505546446457126133422066566624937564414551368551957496986520219874220006896011740456402969567664849365598580954267929171748119188913949679758016729800815113352409693352133820675906525436096404808161330241275699093836158635676919956496772887100821388601290382122858973037690240460267098352478600971970338935856979090882877386372598546574957483441347533476411961562719357787875595082272956511163987329245877560410805397841824918852355987563394790483667548700974001350428734419220115153110881605058689902015232716219965811036827358048438428729768868949740643751511725615850360645319871210347211946340600618653091715469301804795052901816180111664366199256797676338032660951584446887863469809285665866557252081084327553964589970027698669397375448230284236959806495827534513656122162339675716392209385281535958493235408755776116133730938337460941248736516513820761337478489668227473345137717281827312171283547391113230031177356322287632055232341561941823415457899618739185747157724615335699489554177762106179489008364352782944652280887784075917712596002451250135969784140237857329846647175210788145083769190151494098351419378186413875513743134899011447880166528376035251525925108764407680314407965789075261867951027030542882024656058824652528803764141198707186414775446480010698784601556372815986269478262438584629040237971438732098292091270063068904296514705019211486822073142803434000659480981848773018599823044050621362615724544878393891637428772825241080136254069150774983766337378048636706665418305552636701265996082235025394942896419325906015191340440069610988179112584407933232614465915139589780361926801242856257570715359385652057975783698798882742294027670794061964432490763290310480479318968339057369520324889611583945235507573327111142860443376260201602505167996053793683918760161838006625528324725338448139108339943042419990721797778643190312375796557140296382499840707363069214667374065335446400233008714717768921170303818090229645857235711378553202998637409487013322576754956736741915938389253240871210849758756434839965905952345247893212595204156700954010666886261012326087718730685801254043489333371624995664301350351602249585299357797647243759814884661296014000968817370192789833353370578750429195118382802632830697606683324996899464349149795806458899948136482388944885951499623086663975495780783561431871211796634269902843093580457783652696719584860162166967633148502207857854238603966470859669584711565374296036037197529289444365752594045763328430729581590661721046409025919878856697145923810609914877053171894940622920795126193133098877819448533290975764549116783947296040809377343899863057719175747181061303438429461998986167573890668390283152899451347498014005286657694192935719321900655971473694027117995207966031562700751981371479818660710209464039592631059142522466329438128356973323267709945351857291991759106882452589942473243924245010884636115220414885381810355503654591093771785208030743396129251002809176545444070179565794646938573468910933205562712070604539557035875607613544508783492482471328472023027733322963202719415833717863288361792172066266904425224221980450550289251968093615132769901026695959301558281962161910485752783749043770881692513354329876423220238548006585700049087157109082456313306239634161170224275828839166750330779727462676984482016954433311274567483298543761059563562800852922008113794668109531471088953840855399658663164824586850130627778119577135675120604364006157241859968054884391386601363829839886929592935125353641354985584093733814306868884212811621950654400101597124119980082669214495247268439514189507956271213975704781279664218444999204931955717031621925940192706434853098117803866831605502933636293371801626349652771303993328342816792652756579414088779310620978820571091222023649496954606872366430705902114216027820861915187112352339112827427749114656362901027279206323023775454511962032434396933797078566931666433210493981025871845058489275046397114359912937528646840997465391047105081181341980665058188389427932561427030041085182660775212845295693523835186553871061725422124520798159500309622808234794695046241619315586081545276419042162522490136576757109521155774077341839695988448460692960706811371524722932738650437811078191167278683504843266704858112574215897059687447822186035027861243940394815803523381039182212910684009141536327784762167035644911558795809150406534509500568277418851989710104617889669038774253705717669698421747720232593871695391331670493848622093169753480219014094991518340500964203183363487861355831414141234319872985596663107695329399649055154853890001695308477450613478238849022796367404611437655200777858806179642498371577234128326665413496092173687392026292409766425891100984706758987695660335360189464065536033869266950276369041807184860740112381841421069091636563370258280542980141696160680594230458199861504532743547568753557960244033105061360036580661461256624498068857530621194818462511585432961024043014187013931925756958451656870685094806022306667053074905182450817131405797517201536598160495460134729331025764971415283037800067921937915992597300802024744501956687484205166443267847992193795017169856073108977353634230908279242548807090459297363077316096713641177090056124582160357351543720339125274970106036382345661489147372706320981551846236379753279142511470351987176668339808515135316289417809083073604408625898079424194974364243882462283653076710019341342526607394530585324087360090965038096643812450423365351699114729488658690008284570651582582781870791584872909565058913517198154793243421451309174649198825065133715770489496710260470779617102617130197316081525987333492817380417711071891260050466305638585283493763620027880412802782298929781126350600767760462491685415219011018791823183450555078710656992621968319689585147995484722549485092150816867005723286379668403261557792765018036529337891223135684871953683595014647907841440107272260698544994911154713093723680397334996057986775739271406131342562795688872842602106353464634223770950605746305243692937737613361853270063792623946903142456885494474856120538874854145158871447400871505408375621869184296232739469118005947868721764680371657611095054432364579280433287832074291326238665331311506390486134816677441876450107798964817939347095851719985780003031260470069494099368727673474475681252883048361348215434340213934284883906736569812118822878087133651083467213190977296376097598787304277007051788891863010841631228676025569501372072809814789841266045992205774228787375813373319646513629249102577245670859183907766438692830205765149732059786573120778713875430474940959944808519255385627113948013801376979232559280558184966943728775996310616612889560352916891806617732304136949217512073903350676169803197051465261345005269562059060297703168991113927973548911795405400853261277280504970631754475432252708378596182095966857696757484074506036792579799316139576292872976749455974207656777341623314227514095791423828178101782937062008937519235290382690084651484213248935302372002469632533336966920773927053559660948947878094283313823139561306823160365670229551281114747015683055327719360386604502844267381860653608416386219847758036997895732379803678890999111057485596832064384628802100374408482272891028339090122987869630912110328880346837450648177443055443082104979834008530815890893609557798362970608927462172380549508554574454879523758399111099187585526820308567554262047245461111852678445658425503802860495623329973649014400923668496048853114556449468810825445113014483152588141714922544470741965622634906135838354465214673234835283158822566172774700673097842392079927497854856519257071967944854646101438926312032874796089107345180997241838868159095542461718467320864524051943198014980254602588159898897404971408947781855172359947941972702521915950772204697104005504339006590531704130393039193513496841240204634895209466025684687166475634171298402911860103284318505902249245547875613872531766681242726392946246833012685558855440547248232259057281240328125126222839331368909728201808614513979299538839800754282123671417429773194508999537917696062425862543740491733664538465697918995977406096874322498728860023193978156798090688609485091888606620151179513960823016776651177822386312521817810190912979972151313757584312455320510980792598093530849639790119350973154904865012911105595905414576722663390988887767488917103329111118031783214787295213976107952780129919490308030455817252276816958486084295388867789459070492792256389883331582370188498833885571192487453462418341647955325071982812452412043075561547692947830137760133422842736953043374614907198330973094811563477183743203591808575887140572066257782715969037988255141347102774339613973950036476815767245492244488508831612961611440762116980716124412559567878404105605015125978756590565841558159176713095376074960010853023360946127879651069849252716704085264465914025088443241204365813807790098138511754445651371418507861762780842497821406643780898999279011368499063964565003133553512502682309220393831118893847940959872543863288246407255540297990584113977057557789519974233943559921103182031554190544528518101713191456677268384716102485014401719427563614790417167276664205146425964629847798550689205192582720315228106704067114332680321254608673627535888257389701692597551444072859024937586273456338540061301614155985360312954702651673379877140614272784854175992514819304620437997106682931195940343294640104365203432772872953529465191459371463853334159566635661955139902972550284692530079065185373533263173853963776658755109063251031913892746237041261168407259478944181787903540526877003019446076548929732162699428840352493634671383044650206622837157872046731683549655751921494035403501746119430572781154866321379020124676184899627392564281188390326707749920386012156698089579423332383754851732922424988235599423638396346887664985997140859223609659726032783263862212650916714293883123977638948622642507480057617566139665409017435620956945703525915870303922237355748843936811199723120284744710800205608877240535769294641101683662427084348248645071875877306971777254357623207469488759483980839155591957669247132244513791043251802222813458169150153540051505000554456735333086660793461710022692841724989993670532767236472897996562079457268163663627641982744022151164903906807853313756111612334527266205326380263959593351434967091358767712192957641006238661863129687056161992858469570294138401737655539855260481733024677178072370327612459649501542967970207603252964571436179556018512609025267838483758809956974409358157556897338115661778736475962675690847794671490934332697448450939319015877450654298709966409663899929341159648476156229275651988045553296071397141320865601986659492357158707579635745024665689774073948462228186899966219107102526363588563155654190098160749948037448311539151806082116644738026077470138500907619551860536868533924282703074424260660532174435163904593299846032992411463353261146079517389919657330918371264230254491919504937796099059474759128771199747050780410789793077441665809527331050901314740601970079672427361689149578730684909170041548540271398603322372481502739090014658295131802199459341740707081929259417534643912609348643695342797174894095229877850662018614623121000563824500546701706868582589183019888349286550095424504405552030360393160705041116741905320828091459691114692830823326028760889107899142035182613937276217028385685403526844270530806017763313569449743419647248915251069508583746929147208926208825984748636593583519528558812283726992818504349965708364701421418480444267392640618829650966335135487746204732612738599118496572532983295540883031064578496127710003881285606392016181678615417879696964178195174566478749668668685412287555473975953954456299741451239432146485497446750304534900243430024370884960645352029141167476204369121756830572304147044512018276931801803924490961655275110048710522769345964093636050815124876223844110566373486409072336648079572814410069376490228525514797368865658152340834920356633220707197470559217219060824682509184770806678271328267372582536395182402134721053403548599493743586917467540020362662949194798950223730053810971147184243655346885637776129765274202947748532459254947348886611861468042830716747381221423536809991579355700356003875393316049504013305027177556052965121895785856135144811468468105954511337211677920464004834479509166131188565750388470202578157161580733246574457691357603365852370841683168262050288612230226002432136209086040755850584009019628308336721976241635658891907334165489888515552180391256739015392850374603244450435641070032355243423107596399984520408345691901612881349877328628763473226915454842642068914591327233367240209349291914794054066195583920317146227044281067370361816106657076658500854526903962793860279478872713301472281848776079994748548471536325540479763235405659258940085833910371404615508740803084810583233887886983532360864549717221093495927507994642193293700695264453954177590818816725431355235469600718531975089114103397820643088750950684639150474310217992165715400207632250013244953552133251524819418073663547417400239530563733657218238542163612081877323056017013842242431453778802765517595692512927075698800343009908243460518849926570467786393516065228369839604356570593976625034224156432218692539042989077956184873383679842659893534599065420507140864472151253230253789096462907125815495516952592282767928086372839545794076790408052460115766994571767595128586537831576160942344546620313009895488028431184686367250232926817318705883947159229347443366655318798648245501963804003366395953118163453459607482222606430907172635283047320216485722138626262531133056960540684151927621709307093922808249642763939918582376640465334452741740551423888600232004794705650755522350041795808632168495316964065912455859107415671883506295499265332755279520887615010847441825994872823864437761795677822028632533128462095311177180838110037762053100824171319385877432496650812774378591654877097735979645521124293215611953876644599093895333192309895030781686328873990104274440221842604046913799001260605986977994215220274277177036696195647389233827605491099162422498321301739092509002469767220168830835355631471523144245013392356423813842175898221483977145572017311767825840011028777029372260119058042043628601492170521615600042745502017503679980479003996907120669992473954214306982271438644830330995428210493787625397397115920576082271437333066977003727020190164561843546797394680668476782681458178612649629833300758955587433397924964109889422496414545119662863889571981553594096034146846419919671938786333466594524580684537868810698882932690097553353198114184931363900652462445422175472032938176000534788454316515630891397397977512605902550530864193432735289505331205981609666744271760641873120796046718452445509578892982201854905182592930641430214277692635777701092330841700945546270954304631185435968369687086920298862976364883593756428947680747119560888443531382320815991728149312957240533016706755054286676672147309263922427894366143500214253012919741073772202611845421785678201730778609567299604521292163131571300360192681036965959889439831029309610157683780535462458511136828930704763080153998200395498552215372590593882515620114514428543320762062981368174164739603543289436570000864712268733139989747229781642808402623166528432290861020113613437303028519427389990097559609248829249292081819257742808433128101839825710299135318608543353603292925467956487298555937581380306535924346308986514008448557581391123108649945116665520317677433449306565844302186869406362662706349465422558356066547694499451244494460122606261556980007253149088731652520250412307185623714911407012856300115364764880676789557762589374468824097733276917261812225384390297048238714944179077831016988099778757829119940851098314097033010883520494626814503140482452278089642168267309406503940531663075231219372232245022834287137330666609741684022751480850889997413956113526689553661400140252683186432588874552998803784565627424824250398605451904711869082444879560143597322188541389689228590829153815287319809776494766770721586953848577750090183269186230211617035315754977763929383878123466102231717465598142488185216892638629095964819405324512619702174053255852004146865548263234326775296059009803637647761238525658332907831496480841835615210112119514837456507178315779663365525883037691994201696468167357739167972406022467648302357635049614699418619313917316095707928773425830475943078350020912300469109491580401573663374991465253825113605489017012278435810020890809841049878462156821031108892320597950814464175431336021458844861462545437511043955215705411374231306154186023401332629788762948803458865227168828405359816774563130249643521491912691723232877190337752374108349580059460158490462427486352073730010773590358701726164598821318121991760679425924250661216102019902076877272288779775460220106948099985437130606995649597210402542672528318824641215115850544728348152809186362373136025175277758583835301898788570680453515181554628561818851367445676345807286992504035759581152300288860269688669405111310467322075163762423572252025493277515828211314140375043749108788891550093084271963677589178161873176868256487226370410792111075396855209074735899874355816157735498214569028238429248054517183528554355833013658196153036500607948041824800207980259785979829106994689765379778373813417282337517734058330800218950195732155357504583862539460501743409282335562211882096530895043471581169063210326833020037588174275350235570880826324911611285104114788748612423772803253756635187924406474636363077278045029210631460651026221597648099800500056173063296948879172350957398047459785295014237717785344794917082389117019892706111115602570868693539845149407780760191940469240495421876639087898500822803678031462625545631580732251671480409363632987135106884527452707366177238438641983962029679632920856872767447959918248215249933706908293707572648483294788836546319081180187179656725219407568074983939038625672998641000454762004455258014325315032422489356336559764084799014944850971793422481593105453815785715974933249567168956386076480942982707223999599253128584369205598426970439417087476129577379421443042559924651519977227094794498209543680229963419673316013130583236796266327082503622352090152034141626627224941849281184762667203203815137460996302328248851296355752401158831625155777362560835755999321001319535977239526274234373658464818126188300676781113141889870956663350592149933046267262305919375097356552147727651751328830475722631731540964791092637602261999555769689096590154048310649902358021906919520198477726438679292964746076826909666328390538924033238930997102100074203545298145825165724291160097534401344528724213930912982138801505166645428489091149076197968114966661578297602978990421671570344373326238297891541284216158773589899917597889276931013102915727354972960395659658634610874867965802027310903113009735142674112218362437041805587422024836750969615938483776369768989917950169563039339861993038417458608620251973556372470644737808278238921950319987421321924826298836303432417437398853196015604366007003188122536140993729292484094669790860279098142520934104347648471595974157476480357029386442613217432505905524732300464706851878296169289579219306369308795136468236660861534697399644407135163081523088192286731926450781699272264128739291730085080224041814243949188641852635049057876667162574335685600950969044381272933627945587802268303561565534478825792125572327460354953482786772778470732737560391605152017836799996363238460928393843360720423166523487535693018660859890281008100626239720890486347649182554366111763830995624041552071064032547971985975047970305641764983501721451377476250981381869501887438796438134461925904107447875915047727803579891111465214311334369690637736212871373791495193169029175100484193713681354347571234985551257426630481615429622556709560062482617057728453392122636618402357169947661995550057449456099629113006848609794559027874024842254675295696922815076949029346365945981247310332207663332174305809331409204078662590639977486190752167804042579286950155387838844005404329204446537227515728051514469840626751236606608747401139449816161828278881627714838644589342190154726648226662741297886082601280709134447831334844278371025103801135923917269596401937995144857569420800335494660794736504237476736758299805625759595678005201465959913703369808310756269751604666245268955962992566059365393501672913028395396326162162590573998338476607208719620088253163239963174336571915917496772722296603571883976386379599616500488258818820378191594566086569713046459745000524860085036003089841395171438236620320001873835440801263805425569862880462062925109639408088080774375799710068780390022534523479765864897185346114880418535502650478418677044896679843914079908223133459947976358754558418573536549336000819084928330967651871306483390452841156068072430024383841575539727609342988146536244972181345251232853256683579326840314989399850335013531591425331129564099848707893775163968306434103138688054465186500766719713655952343941918976812673147727046940965350728767056274322494793318734031841455777612723979474434165136195259618706680084001611118090067167059556544017857644815513565343280616800376531813031098479037716724609200172530889949818444247392759809200979741282652902159946946931896318164974576428566455070466311854765906741850775104119312274398076919763196595696205991557328258697388237738014303586569262734303374977884728373602304914892611505277817156891141071368909751385690853401818150742779539807677037777893864159726025037407940326723467467734255370530941322389293526317369058905830671499042566270458476698622953269972055394885910224849535911679154552554120854526159707499640825325993829251437886629804900197338967948432794882556503546949368228287386498381501653202021593327685171373198635196391051632324626003820463635894456181349892321788470474032679793202258165758891925761410399060979657208266271212887812199502703671613101405876160213893836865779041284272279897416734479359887080726988751170350252349896467522947606799376618339436760019039159740281901689948916906668966209417152188086233193595585506742665490021008269445817711829667521423183074322319267116187548371919484977642262265666365160813675026226870428529737505448042091232724932917895865383674859410255362928337579011736214866830517653515891468198689843964436475276159939405895022897588293357936673124938068435985999629773805318187664937111245673483987176801796701120420277234927893129523435228760711670291819094340078870005548354578662876743086853630344815651763536988095755765356142366786095167105450955578390454323264817560329778276931625685180795847542431276662800397124704530090167540053067466499988279389086908705099207195351287708731314748468763660721434992999797510206371009219569458468580936827440103432426780828833592583846449369589271588615050731965209965367062417191195676510760924027118900582015228168207970857368265747901472082403035210256283775433225493935787727998807534324770812855219374259151100671999346712834002950983748518751534238782705191919591563958378073189321820085493691975600235987643672688072920477176144082406757465899371584352538917355478161874542294785339007200666020107309831313803529432523465351006975051839513661381059452390222373469414143771768655814556054807838454809776950696742038725278972261640640073697065829831924739428062653139801255886400552742922502320899381622558208392995252545290678018128466498976760750570536366532104664217696913473456732435117218282054785138303517172764788091079636351432180428545721478091677989231525050881538615518201484793422913440313053784914228840788994027557839149681835956820087461828425586659995205998959115201853977492256120762894452089585390315219421381385352332567302823181349932694091975989739949787899719723876027259212259790584522537444859480105818558247035662431033114318033370258170241667821783459747331567039570404966619764093169766251790436149396672681374009673252640100865229893672499045924819527212796776047167716421649558451715165367792556853193008640013364670785356456255733466018369854696914369401387526423925506670373976102517348883062768981234651328075322964573253069818913898111788475611696790398689750603848614527464599578461577439269611176020009443257454486849787863282148674367993703643964152135324442565405701667744970822914579895962324846617226078181669333292774328901524612099746063896216651906459705166663790810296630778505775933348736719591104063439800717064869784518605935092238070595094126178703675460582188470590754910006830502551085706145117323127104087014319856726218045451622822620454014838590047322953672464718337371767305852508639165373729165751219237801249990091240506532858261587092891235487569630848600103997572483728285825357634651164383457898036762291532222306226519401053501561089742247237491650536275323581346506891023431022127960500951255216145753815793050532867157455157410957545827359369766255002800058773581933786542958650432341027014221274690288149287868156980376471736541017400399917695443346599254494911140915213578932690801751287466511854825259513619212830225444205809541703894116518955833709321558343558294285276357193225125168053224073406267669062809248656954734886011737713193459956400619497230797405603476360621771501070901897297065180874524473431991874857731461079203679050062272622922181136899914676375722658088120640161698169521543905730969528356157354405528313623688650124247418317254736652217115593939823015512448838977124920339107197576114380306875974160517795885555774868956428281568313784755832482975914116286210828215929905348796921866247681744187840420146506328452925216294774298898887030743530503125473654660400407232757456775620833693904750473265438449352843735280254910226222518111143996634847335555376763183893057122001551370279987597291547755206648587689920550973356408196255878248900808919403458554386173909138830446112055500820701673702346329137686301156891842609798308739347894782801333569152831095373366507686194977378954906103594504209096526477896923329918090034415891177748496624752810063484512887815773947617394710955095062183538098584707855565853124493458912286214121651544892040107896007777155482438559675764060869979580545090349683561298879599366080561091510166638024951897848380236415033585131510035844561625549309178451068951384794999480769628010053373131407350826298955983961055146067327041412023618051599871891973241783367549411344006526464973249828357424768316605693892399334195787205404093576683966025709245132277826023320664462613239810571871852004120745880304458586541154001280077063465270788008176607764031457096213463896290980814023231990800850985480537826385706186208803649771191226671679403859295492330353791705709607980284122733280482658196740636289701874821496292980300760628728856813564398016758594216083458531380864175978593210072899205655520194515290874278998342640400228459668318852336921221243453657063000971756611864841015567132765428147776089434183131494153805935073889078453950539359692178657514687359013251314809744852449078270945287332146783475572735245600864197630675765396813230165602226555965451299938337466542131509101669812365982390908445996231837812407094004492727038519553640862258135632327041505231172895066496340551989673665327649588418718508128933095223598173285159341748103238202288357629431191942371667618962923727778260260053218304736297486219568014490039556636654204085066849354895611298730978933446754063614871310878063297545982862886579134869540952004972430867447823132260122422771387580563330507921470758890530574007674914155734241391251733645948747745929937770488376730450268266970981414910075971171775489523476049524112413778484988848467431955411734607199998001269792997744375854644424891446685810122391638608885222196554742525863582060951055551457855154919482231488230896148567320082733390809338312809342891968788860286361235614772711286718290730734069580676626197941710179471413818234887437525286100002426352145742602025335026318994363320940071507903939313837230298091108848983567238818766385238660766530450180406930445524829257051355679438863731705290953291334782616403975572919465223094150877380239773149311408061160634164509853679198907007759287934174407780223792467535529146291807413631563530208682891833682484212129924165548156026504721767871569829181625929376294002193780205542652484778211612738441660966500351136707175225362936009307942595497732256612531306236957809222116466980716074664440205546031275065492496036205881524731333737904067804692878115862893014903732476339996706506515930783291541797777308659694525852803221803147437653253998865633108512739966628755486535211183137515564369619079467582323205545221641528869931106329158916208791492210113978092123415332825857655134924175567246324594489429410644781099080752960508074119314004620989766896323802896650568780925343705568426788963416800959758001486751491466492265550994447491792804961170761759929490090415935077886303731919671276746121160600128926847959952621424519200568265345635128644220845388123685444811802902088017330397451964418881075955058981813127764822632775343604501060335478114109162895004447160040902536617852311044789473797530191775281072008051798252966748119443050431666488902745489549623264227916270579943537624696587358705812148318081298652358552086514847909908294052076859513508850512628624702116772638492074360185463187209231224294456682066569128432327789379783552269660303943379875616113910753409270945738190715179432305768104747338399136035601245377162222653866867609618754257142274177362926601275864350702120775121627293749202936262742818584788583334741984773604395610739050594820835249703060667161310551098787954220306489246018838490934038160492194895221127816801261267204230961818639010564395287346092994911309172387752174050914312268872583620427076808367968646740478877958707442074586225619354418378106640150457588316644180726599076036651963041421154386747621825164311527356228643190894584814956053934032369392126420768056066017610621505183667832478716114770793406379104762099100411777793453700386479053636207212349528416308096269681287176992553794140518377384968578538764232795995945376385483875198028855569881206831280107378876672013060131514658325955400687491374217221645770156955460740551660109624983704650227589987281421076091169017989401208339262372533701547857091086730300622446756688282436946609940517532269242157996260808554461011957833524789724601168314065722191824731221336308643997455569656348897982491788987748518350427641541097614525632301096014064515954269386227897519308100699986447630203262832911098752545031603919438290183960730401940100326630369093983308547197571281100834694556979267269279906097666399954536798106471421496149720085136682444321414735955810985545848410220450527209541908416643348925431681819019350120839123126507956087048959030595593020562950382520924925526333571369626041443313602896511127614542379822911181521636782755402063878966562287143712689608752069659371708572189487661586883974559277370947026480628960255484562073238730591200656415733879274804329516741880492446820481614101337636126100070268109684613813082680018827382803954577107337857743332302465764355101271862259487599792668533266374872223332509110671039064971363180086417281488879291248397241217203477980064593402374199363827692376497062887261413818238290503411366934934641477352007641499310511219286880812854900704946772956155934928339379797492879468358591433025691597467492988377117890949511839161211175614476959618639632256063221075341419809529420437880310341738819897200358381125738996823926788231484760903058509288282195142386447225944222399597818196505281718916698696007352497709723344743367720887960198015381457010560589620450774490407445212545267621925125166009482768716958270643766879222126814051630057350826173747102045491301398779295945473573977580900016513802047524877188372561154105416741067602444494618534663228900280147186621819246661012631613632255689163765394968750810754083189018776519672085961064415697563325231064140225452315065950469921359272760219362233200062247789814652282790460693930216067531011157112227333560079405476152601960292371537728035773690926439266846288495105018167657075953389300736794978912582685277863721694416438587601041087071090527034762183043584256495173073369026268692308199360555847910615192893399028185502774696408482551219876896657576332638977726041715413562204596728698013389009352732758402807608726891368049202357135626565679631248057851422737203868341139155660151186655891689748421733787846965751503098873261402701227199195948377278772459270940249412790102540467377324638125921896788107629105066505686315346626624225196849427727852047029971834657733178027098462625517218995462285335453632921143951071477636510737725442686014099329046398380218460936267956623219942961749053260409669720068722087402920461771419248379482272796152382232294339791371744285249968915146995175558048935422662198793299123068545421895350629844583629017208152403957805562742396720481666388764918097407250705403749563547540229114010451246326925647287523121121867174305428125419996950968939846655392497458484283341708266900583631698206298473454686830069170503421320015146637988841535711511011552069801114505085900204247233790327208222724740482996124871001175470603312037808199995668970443592037113903016710595070399656736562386184460833793391804136637558482303153328592394347849760541425480997579516092788344314584576709554112225825397847682384472537274622639065085116495805386687183494673771251965040320578298915694294316046336316875661545205257971282712824095227741093997700913935401493140573272317432252929230480054531213127562923614446314887394354631350614442970765315048923906564377257259905782434082025026047748442137198274500058269972734131320797660623316978695144163471865202538925059614167409570878574201964231032599704635764122808761273858934444047277997562216545350169000381265085397348567894412956098144854484926416015186634551448968909958902401209040346130121619580530089142466902872179783909354542312891132458801005081533929188641876699937659850037530584816451977199630610190709636506780503864368796705976116794067240039140732502547316608026590202364479873952874294075023604521437510855898014196129504476103066305690062286603069522429265611316070188401675347313380544852371823658683036782033092230442506345901785277711138273106242231341704317488171334684273185270710719326393478987268441232397060980375684272080353637554021716579425217821596378698636381013998157178524068236736124543014905745964991393234802024153894721749339283511356345089507010011282247345867608176971398410579298363143500193791483157664615684224707092383269019969717374009435243569999578914046470209673762301753298909279441199780260728636203539344376590056496229721285991309563066208668073381343217075516161801196153319437188612376491764506899150283506018227994065436641842736848026169480259683010836238217132400512723145407858042836967322597798326224845650851788030591678847509859816883827929645629879562311894351379459248569030430537215572712472763068767563238664822491346686056588954156619370198420761771462999618937884548913771976824067113082835391918094617923285936325444587112477823347424915903824726674389877311781262104931403223526406648808207841641296665982471863349964239657675273881134984633558563773363679469834280016505567278591477564903784115562470128876136657908331704260280428908727984684992189735977804224363000389443881135745831460177521570072916563431658646473187028760347487728871513655407535568572658909551337314584697404286580030911947815592381404817737528348565264005836762459666165111867998501904180821258596367194688987194093855558786134955149204387531210088306901925640327206064708129233968367606480138130870976520888505355546092858414962261033118269705705880216453990592155773510310536894248606588769644764254633755794698760426415558328234554177460313964717657791360827397170272778967950831411276911130953773095066097530967717932606239178085165485555694689835191019976095814419431286459124211590456555852387712507998467135458036665995578735463088822598756770517423882286771558850917438751101295059543005507800278114703791927487812185307560294535068486716768145306783617004352804568780970622131128288532788225651175112729941362806739168619258667502574082716643260685754326936679142070438304337971985170160852074288722051856156434488113042083083111046404944690914816948949459605805524407121243235450250227202970162263890412104302656937631774713842632868543807065221855884652960732020686393793503568733198829160519612199649787896511959615701485554381312590425130322748642059989538524420556984219081205944379802759298145928607115681675963153155548215256655539146158869188415664485193696546900865966343133067862231592293544340221117983294321427112261550998250947769545796380893994872848498414646720491361357562132712241048860867560660548943019538512257940422400282438451705216891428977973128900783187828828609284810739272531783387453981882051920116053115827397777800626225012314568266962961206329628294427253565116673284826421907561211216272388929233708969030738370858050840948296254076069237863278133906575639569318270757163414807933851703956579368836907692843172113646007860761933545316003452681625949110856858207814992704255387720277314822039478219176446487198683803634005017265727970146539510590563826395314708033807139478544394020070876519643224888347508186248657609613690961757393802158008858586229669023149390662176524779439414980626656923138721528835166140601570762284507051497786495745955031951774601093731950570945986025230975235728459450500644777700590565738165628826689255169913165440894868121695448902555848307327100680317019728485863783974708625774131916968560392070408982131907581706430524749337622288985429802744676247693041072487386219421932784826562543233882814870090151332968858265905514369715443671977927633888526965814721720696250399975183891614261345340865584065480501732844627281982795241977474786670374355077099941116055425781313529505696914715613744159158745350632402904356934130669311238027114170171673250075982369668454172893348689465341855236295884093315225281461973878458466063802740577972049443524150645334987775678295914748714974330474015800122977563070548587465574189009885033330749952399198718066063980703251018747194842533852127949312048970447196601941482179537734114914421260412338665156559216509267335278486966675300940652280482768959979765905812404285335004168256817221145861650838202295142833180671157820383056749673518259265809272316398695223691944709829459945728715618565502454623568049578070110811062431649282252145594488735766158309336862634609600282417267479960981096664653083765308449794455308621551788063238982331132178392887654536680099561153207203791351029071664792284371320201748589105477560643293065416895149196632187702646340438954060768333389653888150018572061762027535802413313640180972119301673459857413902344066775009228784829426377789736942572935799625617497903876223240503794580846957079994016902358373798707150743996267221396789926728696146656104956201871828977138733286848005490643910871963523207369690758540517839235658234784873970726044061202411869410556745565259937324730081625523461016925478106105282758084289987299167800843046297995592027616941109337166886476159309592270818167656031115520865606451106945133065073262389914726879767276903284520129714903956603795676118873056701605795087090237750697638756978535509800758382066930219002996869361197399331448444663663955000399653598093603984816664192682595716456210714331226453803978360833798394110359873550379390354378865613747669467803364888803821941260318028284837796611987284932413596844243361712813174578293457850086226794658381046040807316073341674478486854428857514360984424045945378336536531584270783992740581918573996416716318811316732945997463025695028217571335030938060263127700376204595714392991786344618430201228801496223256882387806026149230554248958831587411075044592396704542114391408697840260706067291776652856331208900783937471935962419659906743007150453971866729881724257405466231481861043028515813093030582147607440114634127251726178267299345450564636288467180001156681524151072167254701387209992866031002215101739629315115907102034680213581985785949582473912895868651319765905462332257231261819846499048443338563604291729538220638729758215504054392593263244632318221301931907990616472449769677529708603614635333013733367258665456548498078947428515626542104587823372560047684114181603991560639068259243195499556805706867577438026613937899471338295368054748360449346895457959652354766558798272987480806870033291518839612953719670160063273861794578684094007943994087195677991845728456456134953430967404917746993152723963483760664763110661273860608465223556419762476756674609883587456880598351398161729193159086152159605154360171604667131049176018460794507868633904398696302133440128144443581149600369720336382555118737203697722944815787572480018388624573006714608573053807032951523876691840087659177439202025511308159854088646296475130609344893084817031165229694054436581138953273218094406594027079242966176460704464226831901392313387012737612458730563353234351279554120220821733931978319838988717125751964181086262016420096701058981720308407417237557036474234611408528837756928900431637543583182463214196494747647365545282065736828098660553891114168093781513603905968729749460341809596575044094558491551011348757695901563140052316344844405663655692484997258548084316279923462494485653659304266309206910936737360854830243641240167866035984053857644868466843949953478505440456336776754294573551743532111564851856345065014124466318334933947640628171623238385401142227048793707649173449868626617194439860941535259969277888321384242131840098329017672292092442878348769526175432538279002102600382333538734602691347215285879608160114647963371758784544768832969163539042058798714002878694904828773345725824701725321811183574680674396913671443483130129072078030751285886060379252725925851815593313753845707714893491053719075566097699015194074228160690925477665707098593013528991302232354011713798603417070136964946490206848780452926465467962183347041689547813518879329319265909370065166093431694484891459227596285856945218783415055558269681379337682786620413659481592224190311294921237896560171486423880814841104772170144819212496773407661409536134722612824806943896068294940425690644448338380907714133608788530672542997355473928855477040354414062894050916057529780532137429036594414696583856141296483029908831569825203834210502471825415756863947208701799376388327135063023247960047782810180960834850045509903263434500440574853342920280883467709475694946985613708214742793774098971680066884047883153572745160928721874747086543941883083386300371461573368757785441193854170444529014957110906338089989398410950579774127663011013704726489266888986703319864507562570138242235099150422648401057455700413104601483987909113320257008060274994493937071138717109943655730547327372553420960686048068069438630713797239302687184523007256199897722024774566809213750628412002628271227643288905340652045890843892994680768549919254619619438082404890042989906757561148595022942215473889317390606989363362755542514648267141601596401069245082353804815704211325510228716131375675194515234517114845765072826183171787786282165665246116235629355560344547624374145720263598450499001207036811331747370860120491819483365234820283988279299437162185153148413110289066714751590119528905839201621380806229050600513031235046456160104800546006182352799938144249118728632581359666110402418517706682873327905045384789956970626138947076167239987882786553511394889159205726607042864629555214701000640133860619098985539048415781038134110039497996448572193455800185583947067363212963094810240750647895738209200770134662928216230781751049192644949748240709172720144214319092865161761647047099497316431848644436284403887170640825143999460310561879005635557612126912685063922368349968340746174626097249918245023496010195596849230464250088720430315139419647751037221710553565103144233745808177728024300889884856829471168296841882969054696320517957502112822593989494099598182640663459636105013281289201817666661139219871010485814098889945246096236167645298511529153202635066612310087943720937633195295856163406540354062270843464466145571808787714782334524105701520687787362380546574942402991267807803834882856193519155503101137591776575075757701776133594048293285091158998238521426133359401605613534875859311081479329295319831865894591626184026058035860845586683306750654321933213448809480216458608686170860515863726832266461522029695142706416221295116686161855742579756480332013991140409887198472190747765756343536185012555286658104705950228843620148991017777676833123829427352935840196890846603022806246839721172685357582534892072069290853302095656694976796294216834283046907322133590183064171415458916784183086950541911652128791627646556074986901988699394847053703353690147700893278770587438859187357691788593832094565597072229755125920447672536778676629637764847444300540598395968427626447218339427842138916962368760477312159690304351610831808744529923879121356976680031547105831545781013983249511599017595893964819186523517533883034383027285130540875007528034530633687984586357380455589316035155675407414302729360361908411625750551206277980535753024841541214474189889577984965853687784016337793864760266977675149051284912151754001836784238959416082605183413877616168459617776117561521278983062627331950723001362811267385818262682813058852307845898522565219342679182604741678788927588950569990635201475886265051151622714691362118472654298486990009566996032824571530024242757148501732501342357128427102608866183145922100935686080419677623272574146656500907568118881399686502519327709788800503188141945251309991816795702604856129010445158137833503616260085182165153336581216054651645862601929583491580832816682568432359175675550969821486050755862619307724244547269762856985416294143997602888355166368848285745805256550594211508667200403214557316768082139507755464948073448591632575549866313335467148022411856059858193672348249121423214648788130227311250177118460397496208114439542589790378878722042209954558065852688769706567225045314264495539214642930456685381195402591079524923546819116138832222763435496512895278576515927132062291743716370272750405604466815997918346729720771535192050155176629023660674602053389204125308254625681429275267943775429060387032190085934107220189339188350288842194657972666021575169216429805422898560015005792985511514011278112639048717963089321237821952742318729393395805730412201533027304189481098263903118256732300333155511409170855221480249575942552371721740884158757546905018569110791479754293659825675469518547072937165517020826491730485348716327687782292134518367865702740670307050261817161810231590005860248055107670720369536563739083713360485862472938712318073242758884622581310398116809692740799523002861924665275659506681654161499441091305425202843222587478368798426692030306805996521965338689937535063403598171862780727277621180600273822186603268399103923534530126169154677238283761997205512739093859570327465723478024485111477243386536919670493972593906226773758296271993724938032698116673645351420409441075369693894426619528946813700661817111975030110732452005558103255966279614239006768683204675614026386233801270619305831516760326046713353415327174860127866824292226557749921453714590190758956874653641205987712211249180175618651483378003278888645910057101495231480539698974506206639259349956697615740761805457705408057490417347364038226218390808244296214358550335082915245553103122228691709577225391988206433576494465889367771922292701867208624854829557717974327295954756178080342626673696779641240261962231574830346418601207523440588116763171046514498188802229109095054034950763174713755409484732784108580951033681194931106757558801819997757715587303021544754760312200787234915046918028952182631585555476509719687198534677576485481944822884424360468001097450632752882368310996986485246091763083922602895915142766240858432546312787291814276391264971960705824493471668841404125607983657940549578096671239426297227296629885330860197478168110061997919465479443655703926509010300299482021479615730265277972069227181944669910762452354551422434682607696784596989467302110487963053494272266436039089223094735400116581606006078853838109999875953896486421883827241904148626001158607846244643673359654258053504975776080421367770380413541109005222536361311446043316142131785977844079772050252586310858841191561148592260423782277559153771816754051287646383918624347706855736395405020640282900469194032939562253954062995472779898593798064299283424806233479313782995582446300289238576745711448630720159734284720831219962807611043780007367592630811830360755562449867099102592811324078615265089765432014692612045480558868002470852975571214675121007328603615019810955461802243213576255460691277296432590354188518248612426257741250343770982467712248860943990853388171144376913698550377681561393600847957766393855221920422090570086086425437806526714983506408469098831876936592883355099613491037946852059519581655587972628540366774149931514690947178948718196917432630516197472444590276176988783893835792905346192620979819103510612397900287005184688795105987710092130098936781614444824717726034865735173969926979594332639424510480204835472241070940612783571967439678885943970836474376035673497147795730474581963764611315362881293097919549615645849211975165860063084035242660642124573427771177896979528575579388623901412863997081995689682030574693379215898808552151656818676204247133602827215607606947920160405920678029368297345918473074992603171099640657191333041815538099327537525324210926426316284187419988254652275179549894551941072699806118969424849862853327903681705365460561729401423774402028119112733588032291073452792278128121790322803130151072493289937932230574720869538729124353890670559609289197889049317948207906972367607299394511204947505925492966904069702286211625837076575567636081251728000314086861502224707792845644273446222654832922735183084829744959456259021752218453203428905989465949070195002162213724492731347984791990741483498453402287929903950643416297088338276410557474479171713212431749930591642526467110850442777215162713654290292133973527289754290713489860836202700285484127599590769967942434902915788667517503044649529708458580384274970614180983725973211961642686698549071860225078692741716081943797984318466658309198638369851304666308153190612129239281778101145387223759135259866220215970550058677951447246142473168031439095124871061881632843976408170759876414915466226746310969564912118428829824272902241444965487264912393275340869723460029063938682747723502527850310206585598872029618651299987369686631057282566514407056802704572467850447110372127641142423846980622780912771083814393158747701244499240836651299470597147858256129837197055150248238298391916975565580693938680184796751133491510938544784202201782435671361317136851471520082064393089870768160502659632917266720387083439022073584134884545753083049091388416868937848363318981488915819946557548646554191949750063980126237517682091098420309825502948088964635947814608893648386323297537657543385002847031790253648958277904480071744232694514048387411043638077713764203172295033419059424606372128210353220269656856341431724495095688946120803520007996505195367871241875745213935847405984645525650784856748886387541693773615881221312144316441464184694269080843903063491638161751761038291515824309976226876171973303179153667022085061071892893874955119834762977771646604450208887726855153065680789168120267506235608778716408483072940609133404881147512562113105631814782283029928048457866935089367022636236673976168770293905998061848254633510996299290004690810547732906534740960823197521532625215553735015978268386845981660165646306078753884761689467076090283419023070559506516917269593609103579097800013945215677583848453718845269729733723197311642197636222544723399907687587309484671703598448687457825700533207445679767510211987094638776539445742973199972922864196393541205681966291155334943508202641357900072478798367048202387948236347635523068607656522148264250292990145481076127397256991696115578649600119876511809724927201708580897306849886901134248104882937375570927925484049250373950537452694615954942514065695967724639918623520625786935940176020783214041933170528670439675576323194735998052248844934871274053744605601500165252943727171911986913637804268188944325757546145569331837528739181807472438000393549920810602738042275633236674381586412807615143372701667894559012083596778506517509713353744871984536443348982283598137613117360979287451787777791209172103276960611612537067877022175541719299404357234541588663248538422927267922567038503003964284631030900320788138799683119416628938894586638071999146786463683676921814148822824104903777558746745436219300411752612625062886665727343611571677144337852105458070355336331974265863118308584483904379559473607140906404098921978113442088381201979730883686911443333855778855946853037432518178680186988801888995256458933563582159505822854093660689972364198953157507475844841038230191817323814042324252128731285286309579402455916997220203746168848588826259399902615114186559161687269321808993680697948293864495145510359740916335453172612494244521355450427604421083307492892816850156509023558949066448597626966969834807691276776951816689444024401439025852629456078249283721757171099512455578939500895887150425423382951064676605151434859639355531053835201658267209073199799450196002208075847555996289964209413120920901147563948665714507971053861234927673373268693328076297934953037536546864260895800986584650726986495907622762218453237296550565032161309072913759750239559076979893153564474534140142954680863118778358257235008678867637265624903565753129286315424052278810827727473839873947820263863840845120674050042565447569278870591308698061613911111370144601810512565941825807817235271430671601934469003143315924776064367699094243304364768247913958578048686713546064275701526541394706260945810886937876886612876927766078044488112233341963211930020080167077852432155512395205407239495703785743064045372921512231911544946263275800319805463059993466159172603131546778584443015497250933475553888649199854066360828498622412997724211534634659459745407086011995498901005776783858779104326098988837343106439586512008440900063556485192683792840110383959029877256302427830313139555140762320986660068582652375358664819773886401076797524363919478499079640366134676262949808394081056456726778389558875418841871880922144314110155240393153179640203228440543074117822880467833481734081264145238729117352679526682345141638680658314559471936166505196406562556123792445618059867805398508564959340519709521075387161898086370130912195171935270349767662017189934831579880775120767928984426129394757011064975282399607918328343656348818970786428708902063833182460457860779126333777981716820264436958452833562861397149826225732756975970892528713758538675755647948620464421147578381229017774127441096321823397973691549022244978265980431296211841156617596826806899345481333676297983573196617824783323617337491103194606615003805011620841500498732830165067247340215165730484852898432768370398107479911253788645542242582522219979822472353708294505906184141017626004930315736248458812513066528913333654807283174164052681840617582425942905036846069977776093786258188055011132099084901793827713127842353589325366825328727916733888884499287372706899958645613467595909978459691825333927986423140802397391817134545059949779162206713463189967680887393908170081322467797354707324425609150083645309346991664169910575336862409554618166500956533489736499811644712418344706963517347398377604155437531985917164415563514548533154504016283971121795492299772905753863932416400046717765851528266876890311299637967046735717882949652272003798143685889041913230410824332882694793529268825823895511679263579054566010476643628648531443712314760343413844352264539732101011669468343653642657975712038699126325587134179036811336539633075438969795603577535521516451794653710779252162262640945876982478927334402230473020419367734937349558736855593666502955258695508324136090396082203304654508812602340064392021292979268133226717874140233695098355652943395177559051180494076289953931746643985423456909233708070562959873091539647019561515984120701154186603788993486448864692420012968714299893256801297269743409804901823544716221084096147531677497986853046235259217573962773223766452940006354935510649789394209715711513578756992036110574570830342769153021611553381605796460015258262803214150543304041959654437846607288405707550350909674693975111648494396950775739789536827680843937633966742974524733166008948887724819055251462565064907533546332448803562936944805480167985875123179703845649121783281655817609427648716533914031417710986471855634630051734967208637673063275739519370173105082099236910328916786535535060301577036328469835449300371145244364753375157360183098853029242580146125446207489183439775835273446186535672398800577541313458665142411334894550318924207179822314783508119729453692819500688211233166423136499804010923447602251025712720731520059913229556097909660212183942109777406290071059777746022584397517145905434109965551302925590793787089008662746757217738381225384678394539581985250351245864453411075522200151443666373881630449417278993983559709496491180810360390630297953285852192317481479511292856132922943254322201385341247072815769966869378923176859007492830474708688181766866052456683672560215214832918498414383710625499158393025831273682119166605362844311634021114219429783867132880123206683969293998095526837483043190651346946856043202421239537984483833946348116011036797011869627667176482536671147524514496377341924167234384041474698138114580142201129599678323939906969904749585341606662124681437759474519401346482046238941750345992269374306678533418446648738641154106801077624086852231480687384550719325483057481678890076649918951939341103077002908094002112359989798662839362090682830668040687651053097055591907918327612551447171940118181801855572523937465767727569621773555007187044784632318235080480171281045694780380439039110237371012233900724998809962808784056660379279207136915420957472770164097269023590751292652515309149519018262039191275636988860914780634410486268959878948140717197652508533367690479604153953418986016644682780352272591207329811944038382589603679802010613871566452040980779083617930432755408758285386520440930743656933716479492444879672676349245633839995498894685135072908229891720612486822997808009121459875109691163959954714178708418658010815484813008850153726814197849128743598510999344952044278190919384464222017011576889141928177631826110399094631843551887628864650767778664147836524058868388733826323700741552750325370031998459323050933979057289907110525472763572333948069158480383834962201891796449301247090210061283361116311656684079832252640246515862579048143676186015034807276655339596676095425241787467346032581201157220064864541845276766750666395360220941562331941859003219245135122759530070869433511636439602651423589175002824333576506009300366299903633960739507745819308994143349153242663164290490498409927418041107000504958629778245498072029116192440503628628423882938791048137657240224893480017482367765974586030203464705550408668463658051024695765328069914231099765865405135256527781224512752888724240192623476549060212718865646147988934506606621689516199233272726057298310681495109287111507728683889906357882616323340761991218686010873405196932994162972738845530687358925315963318975938258559840260451027909270338990641812830397664948009281047819999010821967704354908824181486306969702554166059280162792278890187667939540656919713856007071108740686234373152493175575551062355285131728539170188120187235957668826315311660109993446718834686215030392186411396448452054925767572601695344410205839847078808067261651554700365618896438214449693703634783869547527207564379520639315711967535406892198726781977383742329385011884267349366741100328021840103452250051636321715699834284978855275127767426722552638120819415223396372147347640187302024662604546421427669602186207729789005771034078199907496949416009103475174604103315973532263544368010701721433019982490638232210921892780992474082741350890292086934943000831560174833372099491913610352793398634760949146793251762020851680419836842093128057973346874492383103143253301441497200977888392411351109543211262020224072864033872696717257443489960444624596258126832292518559674025627278243909703919485582597381421356331438064259909527288082230284008476943973032367459600336408925824055635660114177847064589189201437093387208266743942702330931947463780090451991952402998427901740694259596584607580388946814188313267650161272759916069209795039570245305041691937541480933325015996715437398739041599964319605487078829273965156744383795169779820851587929453726645686468567689488095228774481767458451512656304205061072299282601829590053607338388884027835850769607353733920645889825681897626999141508613389426726854578756920124388874989030338307575329905552211142891562056918472463008909658721105074428293036650190698063675837104426579033660368316045252636713089785322100889536009085460110741852683579793374877019989919656759474179753369708742341640925256230992788707269031340664387433325675888014560010730666462117081263915478790813771244899152452680387443759484939973469906909567248624338678577061963467612155507308550822233769044026246533927911943609431464424586376676369078395011982228741571715067330321411985801300393170135345997532500476079237038941404152513784835782576010331648819210402112189658280964938636823657614914290028414073572493944607109791440648073222954534342970738984066676584164424784623694650460796377403479505553745327066942155137851626344279236518585831093447727689916497567172574396409708738940550063025754419822838872174224046792460452870635592027022510118713409552958850593621057396480221822028706140851303689834380794363791892528135666444828923776716719868420693031968679677819317735101442228262492534416838295498684683232404327988083930476885706052488639114451566687481740454826058086454355268624654573797991109639287218046515235810259691994065117977491801251481490560874424824329180796861249878242411342483693954355188803534665430306194051414245537064663067392233752017332392518347582844809654095560657041879521605387078518994133096818942555569864445963279182808753207611111745477541226099916152616682541868497626535521149398477272214559395458469272018448321955376132107928042850412564323250615219992681035878208329802179384893183309860034822657415074188146968303877609454262878108019184553060522907061713627683009136048130136831632742577545121125276821895017431379001450702620642593832357640830046700985323372713254663403022936450354156624378940789795883157205836471435167941957856083564417286459471523759721442199924738137316985716616390684793676127320023332645601928855725643835989152524629345502599032263436174322270806292594368560707954667336894648400513806519451918381676522765726890610731803073998891059089272012227601700232867901721772228356662768288181351211507865826119281611024038449472746826904505255828142410636089889662128460596762769496749597414940048529786280658729921055728942610182853282589748731140871746684311679035001882630471256918829874797235190279441764212261875468278905890415420675513434161859158830404217926171493239737635544396547166363423168638873332913388179520954454708522619868379838709903012274892715044574852498442124921422142086213703603409911157188529358476349292802192761145686207505089187118565712601732683445299786263060063532294049566774706642304246224347046036691000844002948081052501188564776066098156326308128788499879522513462503987606151934332711397789940881700492667464629210523241427740406998562107853544178356575610337335691960130752262683528728330609315158298882980028854130467876640022785892748936991872031032294451120427879191089712653057740154000469749243540342336005617176452680935957046955157048765655298991976776500722516226931306275040853585728220400066877252595713067252020047548769129387346030058122931835515831577458499436089176898307822020654489478371190345652389703415808593591630467003392851304897150551703080910656231581887616543445770115036305667991968482749928243706275416948816926036514380978936049690946479750804282463705200198332395022308783528169164728112481024511182175067364270781774049628892549037618449561368464947221260623791720217173156174460172206217170326721822373006471666915857204806053308720103611508863407979616943574664785322678288922167426035217554426656746029227275814712970530253947427758721248761533594295428324482964621328769487959341433368514534009906128175376782452906238991720366893280078522899528151846960857624405268727490360339500697603812495160477879187550767316391035712781402353125992890680157176141219631375278379190620179045672755904928221792901972125586433348375412782354935763730944917857859726745908460808041533045629632477283946965069186772370315736292270575893699519423620028564194508705749473583778262825880531698104734100613053315572285274943958794899378192051307031056846873810400492310196733070928558519318961222745980046528414037888781553348470837119479513532643940207026845739800446885978855763106613832093892334457572767649259283630387039985342985812719434266310025301410034359806468696570715226672390468641767980472913163311163181746283082913718231419433337137467806293299669201517731534015554702374504455106641714016063571237272110991657585833127885530714396776008328723967076852458672309123022888661382849410228215714068529989185545525504500822415205490709768237521161443516155688630881084819727578484029764882173510104252665975184556114578940816616237753007220784387743656393987746349459337529072062922190946626659443090829968643428196351312727714070342839257691407325119533492777544333040001784497105795063488620614168453685707888968327629550970817745856801849629343884201167133236654082418435980741195759146852508717829426652478605259273667738357744455777402652716600133583969212560165255995166869821669071254377581002454276022838595909590153351066231636871914170425351770070205779560185817865271968175480086205359067950192081752881113834247472538302984626511739208376708068609986677603752535278087845639540145468630399120391769386337649809893438305271964264424274070534936238814486671404264561107550812811185057400761685862116084363499429558381694209715832927107448353802273706750731709094207696259045713858222720424189946745477110850183894119178467620341197102200007177910669503794377156308604661728380305722583171841144653552750349503117181139364984303634397627641054034339080300044520312026749552718829441475373238446364036895290788967027974241369030364061865522003234156434905561621698662546789770953952105802408330599532262754437250354801839253982688754292496803087980175413859803234849217960606602748754572555036586646456770477071410722938702036496134869891055760812131091688714279598255664052001228541540172343788167317561337953418617293379638625873307119140057414585275617694281316418108107937150312710880687031934846771258497304592320536114403789479178863617726683572243545120632631788464134075488410175475537723957951844966507963935028769341240994462721321153635761841039111293738706689956452914373049667077562219701183516368348659571707639540134317187258840594755934005116380587755886487766064775334900798163439765206442858519419546817462977155938765637876360039324387289084102396965532214435579111966151017384879979170755839844656109444400944304907588547287153667712616049354569497366634947046912442792652023312097819370820150351193486975855024215588548911127945899566349611819583573331544327687758366461827957257531120318527660388020383150742395989318843194481129203971805043033802467710226817912894154882997013000004087396970908801743648281076032570810245597071316328633506988311589432278156987666632612418380981457764337319600887088361929189038890365960883539715875630843027715601114250301978884811617163568158962352582299963671499724797496481833233309707754161498858764756077734158701836705870669018222751809029399136640260878346010766433746299786106829366776149106524561598464671162343884328703154953140304984006188545777983238100921343260066740678793952059106854229146679668794648728308849516653680630802815261064707267958118761500259166195111999655928648038380366075906953388592335826270654057222865140395653231173227025874239750526633549908292908315668495233384982959859328124677251503386910564415676308804902366730880653146423647045916723573360316680161993537778926094482160402406645162868544658926506509798201582967028807951607977579753868555456704923131528184452553089166433642598021255349359907254546689557439063658501233880668730632654561396223864572540611685784491739784777680765113008460427237013434912916156459346414164302511488267297050066448832892447313635997464060727317612647773016036488759688313420851142311431160546294885603501510286989407928531487090530845566859256372337007766379703449743344515842806717422514536802592403847620121142278834550072874611236188172699141602327090007792777392108795889045762048320598502740678219697077441910371756185305076653427843331159405908941889542727677342204469165374087320131578039786388004304005179742511633482351192893690085581935053996418394164993119964880289236341448420937344248623337434047411135541540987027029508314506982936047364740889010348840136485755908448829269778420858644479045944539536591835552727053836002649765074191853459249754314520329710592452331403617928234903147593905678987846610413866128843816858327175371485230766311676465733032342393868408959244329447903987037362509016683140532539209442195046911877854666679106641369946995543033172599306531674881343744905904321743691077973302148666025294158277193751976472778726019530236378819500605369141614075510917507718878959401491823143651192625314801013635122167328423681288178150063807553464941705245765700340641067842415135494414631215126848329369830651503427166678625623212812245419629560432131997074103017900234145096186300856622640212539612709639810760418351627069274214748414544796125604365366593193755272926462620493424848031187133445089089632490787464609999555774592894416544254746179498531533022920057009545677993855619162181494880216129489415180671949040284668686742899466222498760962425000888955758359006287083727596094246704765839044136185142211317067225603777936865344385903022090295201896584445438007883645194007382116199416268503938260247098931377176332959006776980156833239532554299819929795177152736935980663877841072616144450313704198840931502912152056547573283906928552910853090510000269630537843438774650596460816697143694452954482081407769373069573420285684966961852903332823779808232697538972325036546786672515683560382896609983196299319202936939550468039172412005742314699843185066219690777373312255030112089610461208846585075814005704053422558218489581148463237537778214695747581126696318982234663801998675536591124488210986223221872977465030762010134826942334067476246867544610957878185678237242255526258602743580764095306130050551867215449756775608492458257076738891917997136433827579771949446569736170679520207490336507835225351629025832244221945334465887895419630281621441084002720041445618326517966920841813271154703795152058733682612064847575280138898022373907738880454834213809163359669057891648569826729888911895928750038717674860644246388825964033877110544029412208426314603495499746088112047959755979512915991991945224001731132245244019254054474407247773846872342211697714822672269657798312036277520540399100005595819627271389341539727003707963491462637115234137758908831586799006542971832028395514014465264284618016898032713972306922423653731034804413707009169937625867686010601941082960014804793270158213969821157186077846326659808235235020351484279411478129644364307250831472096795560713898523705547566917930489622897981384908803213197431387073175366110448768534869352299882327065359744620208546570902878450196644553065098707216315973144870638815227008148004626666967960519907111404520913571784190089125226352299872089211097782180921756782603438061931718226811407185462494773434286088468517639041040982095571843120022234818523884955802283494942469950409625492568913608962025269403763516623225617165343808850949775829528064332579395857314361782435864485103598492967364493645794651922688089000869207027614588633798406722784939929107703415589065198980004601219015954882200773435373782896945096103125439743248654376836584265309175859917114303310608331591024444577584847372020497609851557992718048084030856203578107695745258682082087127398781073640165915366102073382297326249591265763251977310602244564717619487214550280844688209449133158029035657895879370971599382156703793980827213083669102269326130781055165395341495670698042208465714546304513412968316656822235718482315809835553060693730065418984806143125542408851565431055757296133670060632597217939958508919977113494848020160336237158189335887998562770545097481320783317516972054054357513105329705211454059522309395393139259119138467996938540500455855824711250747004799981387260652528736098586408483921796382226935216424979130991921396563184884467332079054875319832361769786465307729247245800126069941118558595010715230755353375145726020344173709705266283301227882281672471936511110439485415626925350822413664816013202244862436693285669429871876371810313221366605845037695443012794743112871018321245275909313189152422540197793023722237159523878848217129294066092487816882190858193320120467225596043694834408247804531409602756567814272817436781672908021833317379142766821905460726043111619511681256912092222203588632565691339952776744392965798067131795315475213794860430421542871679921151709385406436103994767474126414109018597622600195105932570286162516070807077108737333493083906930950993456755911515622474545686070313771295689767804113795239951873356493680840597453625691268047844585085144117504112797132254643163256677635843036752462829348896375614884646271543136479226444712458568619641747882187877969892004139226668510581687901227667177359191795277767858816726276652625841440124417405487769043090495645102448294341729053414790079576541631261482085265311823956892901345427852908255031019531422919741208533192148457896579669019821644454879589762884287476121095273075317271584198381460838159148731850111252875483630924470042425646166975627704287347140975816986150124258291016310886283572175325012140830177116900053979576667424910477143335457789731582530805139456080765189301715062751669147507963415083114613613689043282620026478974933625710924538228452750918194388730477580879174152592711031750933697146841452164830774102733509879354204107087620690539027163608010312762793438989069480836005701319906451651026142549981923800016909010167818830285257861691636271750549141534289294914562141222103923958613465415623442605115905746198956986444910106333286916858894272206292995579299793223811551712419806400991311270931941267266336687058589551313562528096472604983707382909611656821322220671774764654376510208319345489464568748757270104480735490236242464112188412625357403154776341449110088391721588521802308814005453612349695419021755639297420188643560749568885329701750272727391161972933420594753483642915154413725709623721515018924018735351845277732035424470676998148680319429590108285950422792868311262916639383657938149250384473493488397080151972512713662367886366867093420753598775177755149880040661494773592305234071223687885026641013979080989894087613377956614024421519546938341709508742224693147216365845017423275880256372895691191010844095914378051155305805850552727804860017770016865344983095297553724056324589094931532606071704916386587450244680331338447348602614500312105397856419940915799811235874976876807572958238418269673328219279067261796107634381853352921559739029052442555752888072767200432247240565094628747588812601834424761801183759515396154443354702948631778694513669037854829031941082268913602504715718476739120586497401736879450893146478756915043722959570251639346477111605600860374772279380312994588342191043340000024762736925123922364966470827015121945192504068572564523969467412925358162190338181717095281379605999794917889163742584419992088668578479629083615878792336547591412907351908392773002989859460250309128608597174816254724937547508159558605173778034243483819665600428986056536688815665785690821981454923036519160166611759775554587296004903735996838464087680118642565956503125656199771769300037299696485984622532248427765167637481508459304154898594858647288313889492070623572041161027238583026579582836860046403074004992658697135723585194366086760619055911217692092953808323864154387888610611579350846409204363298662287487127700835942760354611544149294029848993133774042558417863608117402097189531950491002106505413768425196757805342610256040281412602839169581011910155445871197963307790504537455122435817571352257387428195037270525368354526270363528497695362606119003953343658571738826599989110036597139207777928592495915946812936116920169069911786758229668628353267751112469359533803500578498964444857348025917723180903531969299835860796324681229986110349177468293827549667770067919649803702272280833809413625589720665204127216318097464637166141218610871413217883801014508068465904254528993237051330578519816614031979884164651853423994144780543591663400348922415050840581088531809841902643171347156364603557544814886711388520568082758568281833233814960786257176702083066197849722390295604815180960018880424264756271677383952468843497238376243967151987560038525099653390570934146818021938166116505561591993703584371948990279433846499230426138467218030881049018621832955486968990748738247496654443893821535895226630961596038568807385267019572104315015653227045364467497688345020561985815051793841567896449825986201757274920450427255355367258034839920688407397171852770628698793411124876005666320270857451376319689294385843792452645073122671662447503452145795549542055435996405003045252336063861811800041220316926418422199232108238321261824029912993727856354026677529907975078196628521335919343572131947787694870987672796934874745088559934569148937984918774373697550766119516806368023535999701498495162147190371440586896044744194878305370439064630680860859999768167832400909558059105865222976151827496552134855684678531873277043725851612735879960125878095004206845388991265191457713728170763969851232863976062268569725243333473272732414084880680637381761656671192629069609125840440412483393811243667326423158330572858960964136206337706983179834528194073027173430595748015436132429140959004268051634044670776757300863838828136550347954399447383673553734805298973064390656357331413545882294446791484484615999979853518459782287291009857351058037726669880375277623894162462107082179252855616019170398872267233041558224539693802643898436131805400523656686735241195716162030283769864153992082926847419218893604710638045592119747303392360482153402672215659857071495263250359375912934679145075800208288581467815290404530707619510083457318493888168468534823786813212410375569011908033551546049037956807131552232734624178809405050863138832863995759895500599336813770579130840672843611126110521421675667365542673103948766736552014661301501924283676553792715513209665998396867075192587644702363374094652693015943952612207059510113759339645726462156407390718539187327269966669232484816147408502488396677563280895596289724702871089791641056866162913320884567744760357811454694575296195491547257958463239685889285126494796238131046607735041745592392566071943400659036478017936334573509490650912829083341272060601241922639412508259023710000615332602246768773661659958784364793881899351113496891967996494175320774594933805462094241492013816069124293119602758307775311580896243126735222607482193366327817557029392201758633214921452591796778645858437728832472052630613339850062155738916464821793387578349774969112721889710144593969795406998294740169503699696756853147100188872487539067998704049755980648389874061374602398336980253184303021589891275539965600317933057600560652023012288441026016547604563155694286449957408177676113216211353279601504443851527148313940287645483406420796701568980762317113488482923697025201739968654607351149836375726777531642104790732960787514733953375650695528030780401455268147976136477804955316163231194511974875470083285936366070569978614370987146546079881190515176843481011025102948846698405475022598859924860799322682502092547509257929771390308593646320583132084410162039615314128998925294100161923904809853266114092909706050956377511307667309160175489414744480872493838484355241047150249807898640677190408978313571211877248616169334898682207981141910951589855600330391115693381236034085607795003753724557384993792200294589518293012007637147352801135297945677733880325925888793654270325547541859071560985241672778266738764822506162426532191645520717515694473439477290349454575832734110381091568276823657359058412879677134413621235169526095113030064807251302311896423869097854337308983079775317433276855395789024664268077989342561122038045047982682980909514207521439161040106732721209231697455395333212637919262947268379090473173885833323318903601476656330744139590494352816836018061745017914372328502756947098858861796673177212435821717904707188829629422967693737901966605885039952912604499940599498838161975885055167181840738496410685660890526313996849665585418495869534033399238426915438390099266178932547062147610133013159357484019942349206553772995633840132817961158922138262896049019763387316571057441501803553425950203444200911436642508598632422454734276153403377208230404409860352321288847366911896860236110672982466405548810933150087001233450231450840671606510434114507991074100101378474710136571779105865510024582152709602776988497922361184725971546070987830942853868647903208056636906320203851652143671052148271402310921429135116339015124884123010632938282060596457381203436510673103999621993416331258455796150370083653114196180904016441298171801990159168662192614360585758317344459071507840403975528751156199220944357368472412069863408165360313664582847564348637433808286122190995471209659791667727392341179045758973912585376749274530140360965627438855715380579896416437510381656309888718454313696968274579874990595536432424821876899620027212875345867927462027067008631430337370023361193221071910377201075245191972971607797583590417003149667446809545155459753289112433150565129151983188420827478225969298215666042604702687499535833142288784082287639131302636829248777787515394180630230315398207398350930529991090569539400576163888669536994026989030013210751850551870788856945261719200782918142588956813316195537359285567252174739631281320174493634617215726943573688999454719703915458900599936207698588461621189912245120200841563240367732220990840162537162233529366946676267689646606687969480156473725570062202845487253576744120715013408399421021331855175291788692356308272453506599727386475410562638035796435824570936683227774004096063954672465558322561252158566005606528819594906475638514004809988554243652320854936268377783119582819247389949670018297241513942087347025229870525229601489626064931300085965498796465117640324339205060268003966625199482048337552810669877549614712142273176922750310131236979599575399337060865822071627819576419785262271976381397184647132244657061685548639204966182648266163279030974633166388043935537861437824141984337425501551178114009155175043928717190224132519789817111753090751216003690353351735678984093337776423175789627209808857561975747961862811282667045549839374693608154481676104565019135251492340669357008426894368643568211288015707813354044364483354449383429527632341210407115960001184806966722442406866707461157699736411503991701114087742355906724988448289080628707543452511218334577262976342925986325083885133703421083584455936245480258012474450977097912618851561473307305798500408135702564573004145886445663897094556012046111068154704905875413397268015929000753701520100005701206189681781227129355477166139650908183029538182507270495533905213348196458439561727684595873570611407704872701976548009369582171461730002099200798112590920891917702039038543035512471353994525771635547653872757643446780534497311024399040200233087460796598670961356872763818251209042219877948562735012983660909052577315965696661698490163840871343535131717067814441305375830195877455513852873257002248265663891028419095599880139016093540581638578378433440837587982770077544411410548846818267584346652750480619007467488415574121894892511622950521469156946259526726017590147291215702092533801237942041031808083576763102971136204980784121935138556596648462001874782519422286269835559949585419415720264568943450597105907210500862120132739316891558145283240707532036083617631461996887219692595043480130001169362364067512385323838523798765637283868505677769509698225802248495070930593602084530288223726034185213708948100028630024460240344445745847407661914997419442960673329273132475680632398042472798851822456510777777882923516734054020276875872444836338801787054487491441592056875266424582162902800472240342486030974466158029603076278245599441240326745093549682861200533805365397442535276633641872640866267099923384900624060981397461108701272816181875163096362318845536221999756659039948229609903824591518615833213110153776280689584232006885071997903338128659605436121318665521486584276853403868084930328544278198010914797193177643584332621351571518244107618228407592703920184119544229018977031068025333724025998816383320144935730096793706605794151047455736188795297618753073873833530632945069520984940228163061566233384706534898131362517433678719785256561428842317718361229178721902228743822851332713724622614398033907641075065729683672442699692812113142178578644973248190878871488530121195249738683570761245205952934935961106879876561512706261973797878037804909710727877116104199760163403599510255032979240332136098697945750152963086545783038935963057667479745586533706405873648795995278195480730583890482880786730545121098081446831294509428179804369955754711023965248369632103058471180775523666942907419092283025980254248923041217965519084254633437532351197254229336666698280832336253038341998799190043079501168640308496846670274073607067012730045947910804020578407156532430962623665680410571784688177499809514375828859566397939170724003842257952154133062517405401132812978107661518811879442763327730380745868018516114240619638249132448478737463112370609603543390618904459675465751896144213895289153713582864847914094893796171724331725208431017215036177254456815947434098132232416387031341005408890852227692401204990064703881710423160465415262840291782381814613397555188158625782675250202435574812777215897608090579970777517999343056553011279676807336256541796791709481241885480114915531787256081001954205025315126513944082244538461071988732960908454726353143629126066404024851586011708256191785147824188419555846877531559168079874885828435023409000413111260172988858497758807723896015158418788870515546111620088143685385818745151429080608347489505029592361907684008485114727620563213390131082076445631763318853878051014225737933987869957572607487944781597310904496282920711781569501278704925979461660982971411528756665894513549758989210782031849325803435265393836605137260678872077406742819526350160598956334366631393569743549694007841017144378235487991968999264636536907721475286991142131349215400457709115019376407445154099831550072277913719035853264008183056661710960481351890852743867381994451648075260833374654663506137556646800934664091622583024082540680086705438046554848120294667728821319710603283705435618974721947792168291957739599232124757885204377239947079491261015686316624432939359916661399584534263862006781953547875629441307699851634080651929935386083965796865037905801561895595603706664819397555237909109482321334755934168231465556481059653628937969558020547581241030364347548200597536765199899737289411105812960928894420408327326688879125318146451988083273118384003056135848855173175457192194472394803430332279890816775677584163662663158504471173353996602864527416991553533246347595110489688572040797101536088496389157216802105610101486030040668956214643423367156045453690677258650392426897769223414304483652196213141810219657175262192379439650938008079632644342260304002967126269908427022310361083779546483688343705102288777630235614799551729109127541922750159551950593356834606995019002056131727505172141178665935520102370769628457414413927606843353861609322447749663603804757434879562095165663924151926964862301414248236190113175744559028131122176023635793189667469879116078695772096892695817984975468472719036402980170465902007821415059417215403251202369668217123376338494816521345641838901417848662645361462702478202164019352300777382608123989017901029235124225782480138854742154803104828145872482357559871363720293416030945603611439961576015314817335147307053690844807018225751317545479536554623419574413161032420582595092131050975989472532126804028939592812273025307842835774235230477996366449391795283678513819651322200036909151461659740247454493322952954942867247058158051046877315938750138689829581809466628047589214553726090601581967356266643599787666665367777254396208647906379601961010264362535013261182470893224680180000863804405647004513146718271434532625416840962491211533332080782022684866196957457071263429298164670077652473736752005112642138864409154829556939759985324568089460907610293393242759409249849950446935013594942775281062962923721971614561577179876100726692750322159231807377811733383361158785496657821994869627062642191762313400709618997199198119157371274625862513960678813676556277133414733446175746134657658197553667414753062827617485851262497957723913868350552005227296748257114371709743261142949609212353799518564072947112733660568106381284416825551188385795233921734865271671242781560700935309165919843291772889290112298885103205561581358403824171853120868067847612508643696394083316357940180940869991443382652157667115368424884360246451301515261220953528785575339551036401320957248720385080014485357915882439620819625821794524351444703695500859408835897118299885224065754212300949471531823154675046288277962297296346247439865383646458813674368259692534189200946833930307391026540086971575095209359974233496799284209491308149981610019982874157153736442666416521612664597984838003407420576283316392190998673840979658425947694492634370134433034364569925299921193811052204923543392104879719747247417856637255499250227798566382383311459767320867961391603228433240380050493016078190970996536042969990667029366517730201069417426295969839912656795970659239399412784770628787107817568635234745680888620312416576902433673345325526726816533231616365805140159267521360930101313049092178737857460232087092239981793112473284304119033182522968841387341820135055028083974299217692066057262901852603036082685263105656699514981650903283955960817671549167158451687017419242840875227286035354733369525670642707612570843912622899053477727240088905852393393332435012144626782593022896904629494205213037377366928027990177223319973339959406790827541173032434833750855327555523161027853535455138677382466630331586354687213932667522205498260626378045259456832094427664504455521231314068625141756331909125575812638263335560463131608089593596852391020678460760645829962687421779493537046214631159464446657923188407929102794440998749140450014539172002146313802594441270917109606141357953091937025096252955154073478423159189359308198156431391379831072871210942017323733639729838026133383659960990032635425117173162275407021147852117292336062868975353737961999518671415671072894513753510334905004533022031104186745575441438736347810106580973503051439855830189526759022468331083728626727199951485288841164116464191399318767215135101401441978174410729396298160500256767440561905300561287772064525488355637931616725253163005952273004448734916693392838910051002602502279900744617778213085690633645438644875882439236745231620071287404530940443969764674707737329272734792983912430497477732403264047165337492072397016413705756124348104390768346282251478101648275805243307683989574849040294025947234791823485938072855011013822812569172681511511367066002700105116095314021386819979031327921400404579216928142448272543564880876279544655879325563398598220437123149292854394837693383330901823945102673686654317953895672340232438759147679192015815789909745744051612736075458811378406769163248957857754214568577880379936746389827546015643337756218859169497347111467045592202505816603473202113644665300212218942877702316238226479316013510866775794791407356949823227796757606147919788569241570058040320747862488357039384128048361248106405908728782439236541267854131914888453846268419637996258463136871632929247653259961482052757709460846661726449131879211478390907955109253871155420553133145677261291447553198242686324178174381344150098388859295960324166617897525174956629151111469979927639736758593482675280458852336299645108036076143232437018965284728802992129882639188370275561436979552850798668030658142428124133063601054575433565913268892948983674771222210591447488299412259117578047565070590759248714575169639850603031687752037663605653900351111654963927718426637825069635085893546901671495132004602759257604120669083662000690683740966748954437292318460902915187282746275701179242459756113261653462273034729387278476725720803602445360000952198978690111368863507338250585290125260960857366853426066117151157352306056884529613691045144257711386720466577268014315430926231184042021302744736102098069855858285887002449164926347443356354080739273826507629460469727259377357645207895781254112665092541722218835102898325192106987668275942258208436626979488865485741517923377469865114681784487309528343197917364189202851602588053593747199828280423242458366909157034674725691189626243123098720114560756086748341370321174582664153914499017510874580796349258669919932713599559571530082315727258169679340644072032092559779438633213198693298039775363079159992915228544684339972619889697607277340286148401492889150814888069964377737636121502912949252129001609687792614602942008207969399263905484111809684547336080112651455924784479793204332092980838490695749511316047713621954955131896745169808580204311974444674694671251324502853848898050224474748560322308839266587553891400980892128518281674124695029589914987464195763062821127604836499919288964235808688072136206583860051250972223566028911709932137692645375495783005544618936889538496463139199000943873992911467881361338551267293587161556852409887962530597141887635132999206306728185090585544554037233509759976823596843333100925942016255800669855227881795544922655470916069039598404469999283392465903833963263682210137091692429547206611627174899657863327172580848096560339296121915279882418947175428972235913898370740987390094956865031214615443712453755691347050113015586489981794803208248798244095777777972795541483170962853676067282008626765592648287937835250245208709336728948485009872029527299120783805837586662491727277628094950266862660408180414647289578714155405162326579926569584794955077015452053845934580663560430792984209970494546599210544899867798889087644852924277272513816511471311733948521724298032766676604149057981562837129710611031073562347986063697866983068528902070532743104360087853653806880694715286880170218569785140075211535942145668898198451706267738777438194815891752147044623957841085210040979092103933497530386400911152438596580088040028644127580176664867955678023301391102450788859351845758659936741649932976256943072870831929262181717456863935973817586097317913573789360887775647630192017389502851427563866232665559625352185889609701867075932913347152969636597055522521097239897345298940188601380037337364449278398410644920731143627908402116810374723748222046159141726604752346674641742648156273020456859032110519628070118760517504663828904843556406307250286361287203095297097144297340047245706449599229062776197870944749144114726842575589532351740296970331464725972367696761009524660960388033658699309165806658207681220686056942712133112113469760423280826850724598878717826528068237932117101164419052666949821470314875197520556881020703140334819275604278632553939951945469240633429822970302967863331306116523408279951003933695299878323501128834960083429147822314697713115091652099554584044266826325560401239652517806355327285081953933394312858073508942123128931456053012921287048919109464386899200708346206056435472985412820216563912646433252859070423827630175158987840108617931517679148228202383288819120313680433922426543012335005929479568500193139738806819549523677414918812509500115111178316390264084032075542579785806087004088188392400371732569179321348457246212859970414008114293977820587644316910271778934496005132393128289030697203975302060329483482281521334594400305553591080780270080588767442931106540090207289584201695963184820125110733946718191505410303249699503963803437295501442269481831164349512413498198393404134721643310594658179458286612190178917855662315879769113429021725146434287726034181902708195284037606487804158158037400883108846369543281262654572172048127023797401531507721348517493640442840219303770350141405122457317056184391844042180352365910469877837180047032812239648314260806925158436137874706778438283791578231793485811970364141125340858050515182107101975496552002042642988844126843243321020177586870612220893220476214163832988535102483955071347244822255203542853839254799457017061599848645734022017802403966506156748872497556301226782510268166014621688655829059786272181725106466129119260775420203570289115664183351684627167561161953937121024181978209593134808843854119912783549728932999951872691736532955416458042504593881306122233261189096185551476318348437011412306974388131544499235220385876556088130220172262279045934169086275816786932585764784821760401992060860239826865872825676297068042503732389009884387116693400426321315267992475643753108206894035503331307161555714244778904510536317019521375403065109322692526071804323196808213158289207379763342971042069469190875567738314003709127141035743957443715152664284590138835523168212049724875157202966276133987344212892001880485306571110909667949231893713402894273576029729431996644489551078996282172250002293887509609711903406536644930460598724156110213570551605818665934795710494042544067839318379014531618298359540269762991724718235149494702641995586602059284336601776473441834179793457178529173225223946053744828088140126829187698849208671217019328768652094333204878994326764813756422783634066613948669975767164413764886342239397993515132076612921986588644365714838984293545608342657432880305400074898610783440125491634326494207643580756880550797711028654031476928696181487165945368060270215318836478482110401306389096905144520846863245349732245562004073810923863323031877066602939064107439984783401561589166042253830186168928091000278299488823574198397830296804064395418001320158173304089460490002890802759240990522641028773062421798107200068126976862849009321108510804679317966901187269255096549466832135430695362017941677500392117254223903218022647880116950348463366907855692768139658841310928363022008517316889918392360108946176768266384598916751389434778839822238615497217099392808254351346966670358635119643469361023197534076387205838610781735225668134465857985345132552081384855945849832334557928167335143043002838927560470288720936679699016482950997444488273531122482155934576932856139764812993172823784665899512843290884378637791662834155187808285697164298360671219738991710494552605251068749244697078480035794468393361489922421320114817440895687712564883013149160938118625247631330804964193644741566575333763825447062239721841695762255099834708890127908978735244188661544177402902553577430434223879810822488623831043997666328619433707551283138948763438311352053245943961835165332086422648300495044282170915971477096500923637002497783668833980527288264530749504234636438959548794664646979700178648347361791865378263725690202474311502229346418756889652566465563593127555869107337095737270505616905707279528823914669077760938762557499257612293304366432135292481397905639849768207010289824937692667501218183791028987468428148855435381098002183905637536007980036934833445986467452250831821464817737883946925013847935032364976901509036633661076007511341063394358434539002934048781904179149806058068342033114158272648588611799229029331922161752122041271024801688031784533430073466975882312454803598210922433157492891182579538518439008986487041970990340480619389204597202535504769922971319340567995546731167116326218533972952840182717588361949607127713014918824471215494153260550882631276995960601511761170288910885837004682922609138465291561162503919880599679989618491555104007522539763918006162910988784912609455179495388852476065449805632034278311399072441818160041993777695254736949051118311740345330854694322802957836998304328770463906325393012220674007835932486885166960871765594906906057886342944933739439463784600076847260382534934174262754800477430379539283985274686290215985871667210698943582937154872361723132089548654218293019893942356451143563229945129089483268683934174433648400088119089122801685855650766241439010006881918486590935446261646670598350220180828543713501072163468175638116593343757620107631887533751376127872416209006339203189055151872752078239203855842384428168770773675858251098373126903466553889933598513610098358964468380419685060241712162314790323040647932598639236978233035429652334297585588518488179933118328571318031008368763275834306492530699302482599474431473436747434289956977499035289983767019039901883301190795547202781124566070253626199086730333604078248208747120417383481211646165484765030630227817524341668584682801801320458915090529790970994578304168495070593764676883225323983123371285202407190275032013941205530607716285449421760349360102159260389939591489352766726078764433450610598003088333942281961113399017118262092555053013367442851047540718919742254065331064331036151037849196677553738550674361486776557097890491748497036178547394890795841983248742124871756404511921443206171644689684469679239208487672246555390295038517141472856506961056491788411168675406129382701651828804297402163729510560707596770104710397605390997461530521361250602396031414136734839273059954810392836097028596566185978925229891752484497386296129126938104122367902413772382733345587692331032813943549863777306667626681497196370821912870753926759021424491305994324277792327665055433499655574176099187552211909440836847182834838668575235287102220936667570334875382542984812229082275969990200499068218368275992496770651749701596665465262269494800340918245525145794884016568352501092226847518485769781014159638472469647029430200774681300538027990804275381050947240440437183448427215051314220138797189934748170095559760863368946209356676921551810814485741843594720648289213131724543066235745364176612620793021433560908510046250522625238584938386071911116989804435336509793859436634673958613370210436994013275765135135797342815126352529156766744399143099425450403484484578334220885754432278618579511296756919665587946152857605483264918376712416275747906120034659406828256764420085878235274183016672154738869504780795853784655217409106573184462596015147593135501393497797541222007007480583165059611048523230351071511136927854133569084304396539583199788057086220930152583130248395910595974339822134194616087307780182634200820240398644603304795399438367243058436472805036100182931882521568984713133080832652094294556746968181955652622423863748364533518035794374036735599041226401554054394615734477996103182473656959030023117038499986486585607416449823433343475100118690676809052191909758380284981132842551104985906903934586739808457286053115789644675131747368468606690344788303484303633530735544321158005523496138204384925673594114693838895999154911075656788765045422671386005263371146610196142980101598729096014766682406533785088355989322636480031843181377457501611721003781399023911446893586992575443299972559394816417171688049779729825826834066098910061613537465104224899494929772223532089586073664978093130014661628146186688914326700170165996813975590338411768135464297819322887708826225845435415509007408058382648595557317690176200682297116606000461387837166541734829936289535683008621057790569845266087461446655319975630386070718160291088318810454577605128133191349207925740839245920507799880336272063799651074085724900466778563717685130058316815694436416953745760408546451163852347759598545662170444840664646651789639439206587498655874431952636022687815672149675619839951970957186806710305949834002017185727870051497808201104785344893169118193456527760750223664095840490377214450776420335735086516988558224368771074128110982556809286343457909041654960812692340992474888972304987341872783940834052682722040471266549113462472077433399550535583506773969593815905638658923873689280144509728186678154539044600935911225584033987303456912841514054882332788375275248669304988353923652416651819895610222809037079292323907451318468587828658523304480773698971864720592089289419454939285830660995164292814426392143606813521671583062063729302006382679643540977496967862754236788189063328991482433288764570738130878237567243331366474726655886686769246057377380037900077565438802021969902385445308322766188598070525371156444179085922936768649645085092579108344701707712335374972584445853906319670767433686071150568918973122811312450367319489468071500568665244831913680239770227900221378234795136887010519157340130189961834480302562037704591576765178145969116115729165346759261616166362763695383485401424195242320052831679159158746812638118628779877269611801938703264563874795467172321325973564970962640616418698649152172132260563287900146814057299313178926199584030323696240085232921749600473624453754388132428903554700693009817299249136313499166467718469041681314551752676549560237347451414079753670660788960482773982207274525837702976265978141276848581072742454102233027858429992418459172480559181091816890722782605546144169706764195398383725762066025376132608165364542123843755820686911952789679089844555015705022319327971679143663289708853096090999993413893729251986533948861444452743889066459546723758134700991067995715314959239353845983030727847488886620093877768359456964552585345394921471839006559816677665245863407892340488269288085421944010737735190434595175710417068088058011572872841985112776754032870833485246661431839561754313659231800565000117092943061600750601492038091585617719950993672717918972109291079913085074707608185870741591419044939077193844693376818265157330043744247059415439773077287443041331761604318789426849613098596335481749874336422793958574602033373830206227569844223354256330318618887174945780629174674425742935374914558265641309218411506096105566118754347103174358243944742340511431225934866908113764464080877924571935460127757279082722652002146055706019706118023229421895267098393618830458023474852471272393240146259162655997425739403553066713045814692113138316582580858055490686911559325205833668932124872986971433101971736809322795260934736381930458828664594229716302369039981298651216183997638786098342029507312636722001113287286712275407976158802863533242770921001538024592692656645070291946756500242332283131940490261524028682749355565700954657337468314224552502180298130145386301054838554170846562366645372994102645100979376215509106153179658521688959277453936396906678713354356828173866349819118948657621119951015637745803082542247544255518523411645396031233557395919592966529464958686264028124047040414747250809834482923594376053611551278054698470285795445970295795000679976007797931014693040705252533930068988976399360246682350434150278101047565387967268078297830478635824235361657914390445273448240189784629702554055493092734263376797605379393518763489194030715783855036589340841881518032930329955841348721834952899120722411160904663438778585783176259471446542331536577233051334928030557386848777076878104869100395717835627183890961358994103622413932401619481264774393718591827105679027592204618121189971750372116825304912498310448539034832240679900092447153083835274671530179729044349578414253853965007682540007472724873152383853428412388251355405622754435445832948521722619418929821503366924383899949260600056552440659269320170595588639633336486757227219394178073688139435916802610897866052774677506670415084407601688356901033708090252765456208148270593961854931178763125148567547580719960869688172228137178403669388604841943483248309657794519011746777744991130641458068077017176180778967513119697780583306362101280122389593121130563563758388524346212599270129054245952653932079790711739872002936150318144998275949348668382799461829767663416226022406527450910310661188892822803212384212315435634596707000847331330815096737256724424983527665228283256115577674415778385511647014514796945313727339453039561307724117047057305315104757638821635259218953592780801525850469721280176619010553241778926423528884542305197397216127257197799857548815471807457251898077855143594808479017382731980115812828382436184934255669524660396777587201679396391955231933675292718793998678516960834724852781450862912618135465372865717833315450862992905098735706244816514993535493096809427337856882663236555831369018618295047011796615366972011604913893207353264749357827668864544823701382624331060840771285917274939954426941945790854448523493106963422452697177649112752532633654331845216611398982323943647210194651262241456087080215322098225544550605644565722650112796967616682986889635438091009421193923766252171384856820833645449106510992760491256644427336502246333502648754051641390669290356230493157206765263893492501165752450679300392315009308583428450101714302167795152747591064425612241151995517375356133521054779888408691057986000800323663287882523589954778523206682398624046870534375597527516690137551865848977403979364435383552349477327879742262676926070967076221145912485186611266238262303836576220930834330185777706550050048779754685299004135030679746018078704517782885838088970891563998130953548998329744814830467701836667989299093843986751389356186671845014034497419873877900806451732249505248146740088141271809792315002712503403676999138792877708835603208610381482197057339577368962055094993321398752877922119888216654934777161067089840618669093327784918570804843171044049397268594527268602041316049085623774693405290597359089826531565271199678066681249388328109308990016341261541811584466677113192349659612101029434737722734862336996951186432191305038463600024234066829171108693735147304875019841783850917770940342878649164891819066385510172885973901332760749471710025756940878591953813773905739893346565750685298348631409695100878466354649535086951457258189736617745216101187626118178615362389178904839421763167479334580264484936445984297151021041716604246896508476614913862281388796807466708739236835293135690287840749561075148840662584381135279365921804008472070201784051716088029300681593209648683890658076608068061783475595621495692697378813121820447842906576872953487206485966055432967273768997624899881122594339555940995190838750425194457329179437615464765250221062602573484106766473018137840162652561096444720889977983959254036056793611722202024255411966125624802912287322919991927722125382658328929638143926275870106567100459401768115155901034875804675573982807998606557031286585274601641249955878830715260222528605620928693232178104378970626241833979884969439742043619689127486134035892839262785849448421466881448498805350448004423767750963286720504691685567500405283764363675105343775933711678946867529270319758508811563008747423101097032983099796488777134800303176768555016135784756171766950720465856312510397298825436614405884951162635688710749640101722852842121052716199717886771823090397884616661168219984817092532267682156950581381235955273099013422568085192648475308538119814958986950735632152654163283605421799128838902565678596699868029805123040324240896482579665015669918514824497664226869596320729181697369064252704637705887541197760423170479667416787907042938485545914585555282852678455295917251919084728898036347496172722955693682784254922562817024785353072336181677531547284567382203568650460234551044072783228105260485233127966589445794285366028937985527263109849594640868139522436377044482956731114378047931078004857506705596667462947315953210150589359504365244564069940401637921775881372924829886202917423694539956994661121567662491980563383143334933723428403238180153184987076908606915644875305991174092932297289970728357406816325562765169644323397405174063621743873871029063777123686601674474396490955515313841952723626352916714887832845571207177477992738674089627747245725801393443338150089085156546628624713808859226116198764247137776179520504194772504306475271550495822281785187370339670148236211736518208062450668154330275408579793831396198890885031964118509264007369528284044346963520990380770383659494118575742688905862898025686554826650442324314668434403407614522820149553532341802829588919146109693280786712479210959746978305935647928510361163944609180544865322660818518524912616290382571342775832369489581116532169056433452653310316660743395074714148968419330694977728753944596047768267232371921122021703976930268996647879478190521531193798662779132844812132591374483448794394714234720824066090628531211934932927653126660020033021547314621808063156850600671795196910836649580871397799284838879902240193607573341231389343344573226815053422826198061634090988445210475744239101091988874311697600689928891262995132273677987899188644843000331273019101538277659737506719454158522675416908937310121745194100263180905828677451126040213841469622949421785749015341407256527220250330998952785930937471996688559718928874823330271634115217902727542393821481818529035498267711118960576307566055319737077520231349009968768521413243877791797261626962149179263394952585003124251001950910716462340778596946575595106854901120899904547940953483172038662370363781817702847705998032681885326128965023143111548343510401485838942266521892364194185223373319066670714364326598523892917584094685042313169466452135490110850312010461069632826217833890808005264397055748698373855449627309300743702731164214115596393974637608816130805833609622698015686773100102963028552025298383749452744997392354148768891320565204794345589989906480945794787380220288074316416902672846061596335407832785157800607104027064338637961083647051497480267808099001531932717936177731895693210823504356052651978061054777803528067517337457852013387552068910269677906218644683177062650724809651657868766175389354945522895823602956875551092274790432117502115233988656075799120020657497785907811938145969764339361492176943394916864339809568610550752009808910243348152422574351985763365320364875838019351393564942095829414530778474424336582716744401260764721288383885087034567620240130124461127158437162588846030348415238644138266297206626880758157646520591441540758962844389194480951150210312822272131534273630301357062470748190940354098237261287220992226648310227437314765540689998140509520129045700151361824207370726952970179342566862795556845216241447532678225225139735362071211711574608932835643773743063654084215622809238579916717700690497313043185027051908252477295168343829686641363916611229610293416868151403039716587474475459712342629951164240800077286436252321217744923288492834902643486641711879497215204479555799940504520258145633973818301406541192274306983920652107533186533459292301564965720958996662668191527202162872285863054427242534536900162029896844218799944539398838320759631258486624199957949710070598861478911485064319902433982475452165135676054811835972112026976313757986085606633822377472697082659686156523170484583589004542032316070327989698186598162455780255853271089365027491656227669592766791365272257420394530652121115295251605998569147097006280709340834973583246866617596174238493943968789387891248029240503097738686964478654221439102581280369271747984125188658835005684226848253172039439145591874605106453308785920379274422637518051088158078383424552138557732303017695202143567290778776722243510944563473059708036852246665050169172588616933025353754093145341732994638733253674164322132037788887137310855855276330336678635701366907921408716226625274101516042516428955501244305573894211380595478110504021008097251474366198533633368324923268474768756569798227972518921593231519175071334243398714516882385090219122743552883669410580877232704447305031870658479982183238784223485193051522415661634883606300683804063399146670595554457212715716594440383970820078753273955199240545177660299998455705420933408946957357245561968126561813842903090990928733335443827498562700471801899341448376895004681174618056494167182761827122115418526460563539063210979932358615420750662234447982477233742723126725678680088584160564587767557846940508927524690157122589372565911424819468601198127249364307497527100377704150132149004318822587390923818313470132444811849703665474925277751102267726336492880773362217402820805115802701770701678891242807103652942833457896021346481253268397552192086006063305916932904197110074479304663425202857920291655628890517805151720502723805535394963122114792391634793057524128025629477778689082314032169231437369708058740913021783473900519769465478978126296514396031790897994449065844549179234849798457238756536908238778828488254815688183161805426354000503494936043724533672754732674846370534245852468392180642716421090013160304926706418615258540295140222713129893281264364335776561030679207960239029692522801217638197937151951244652462322476505423874338896040794344427261211050904656970379401842473794550311493223149352924900752164358470238965011285951320072087944870592068346587906614515208024765875864192594308129507797126022483228097493047676268810388332022802807492422435833682669234495515162088787704192810769938415520869204081235916612662851602588547821455870096871001286821662473241058083244312667744731067953591767275444141851317810256066332115667347004434800306873136497039876541114107800367300500859196513603941378652822014810287177820500694775784822176269898152964350321179311513183754741254409928581700966885769972990742658307949995558288903257198654110386797518293495544046010462472106673831135613943852785765413880917968756647948758803254133269453226417721666361026381175452555161054406446742979766779049740817084942376711331007576200825335795277931790882572763772068621689817875177708396016697730711610853985089471479988498754558961516983756505880895631919137292085382159079865413849676741944778664523403702061371509987797181717376034608295096853772844722006424105352162736040094775811427340218867686821829479784826742012168984833502324100643372814535203663544742804541967778000216813218572868214577673714520167940350381218299693752692524487915670117151679186104678171498666947618488367227755522237402645652228428575967349602614045781111097235678403383135607120187927865946683723165646787134792064129531325558698204617029594885687279231110013665941817891809576799172612413020124896379024545269242669196928826656456414842911562803648286295460903313814712927008562515191383160828822006323365965151138063805425692312472115187060122959952575873931676552288703725294023305335449610944678303937009763640960483831119523648992581023295079827658108971667263927358835063818235675899809503478219732673733380577438303196517841519706530085091393313565174683673315318041068017056809667707251982820156601243159768368955692309861261439575641947385884667128030751202372958358174031231853525010271383834289863154115132349574593310541483433999725544627575714528956248510048183071259747167289608552998780612136677973175628903907140617423572446022497758147399665089351637033756734508597933129853611384699581908261325878181581528907388643813153891429893649029321858100077519975428771158406032985380672331472338440874418132362720348643076082232184620514921277737433707567238712028512277203768042708902134996317195898566059172194378537637600729084974095979596505962919109700645254124055099132761231227511545672738892356117050995363148576205448989300298149491641560068827794648148901069461305049618847571674038833008155321521394008113964110091223194156801827990402950133063000068070899457836288524493991670794428508027977824902947263257357047706594115509471364166204474685982770526096865548997599738230083495943992865192012576676454623376513193092958705842995486242577034960944552318468882657150146032894610981197942227099649886992585957039373733580407441281225724290591480887036440660822240893271040776166452541587788550177972823405330772969759971312752649788180483396005024289166720636983419538597586165090303681415528143024158790263758364484131899268317786350395700659845578094085531492218141646101122442139756003460951785379079526833547671895129395790808331779467976837801181615391175453973450541372166952197433354783619782077638158020313457891581460166312583907180060978163710073252583897063446272380717958038790048301427865002424792114556202726054642592303547083192840577722361864850890186315659306840047311637695925374628499216632729454324075390191342524470069834074241389765721765103176002313700890421765398190613542421402626712190680155413919628075543494850361330213006655330798412328865951284233693826983598381551030120684689095095837008294136846449461936047605822694035111021484859885769274466946989543375337732056117566623421808637130899774392561283542791751471878315417888393441787584859038104751334077511478727438953777205324803749623962402812837367225731850180344816985377797942345730327014614436412982028794920469288345676902757633684807339297702906953107063811811134126905132017746184994083539824046391978423517246795505483736928315027039554113249737241072388637266275690644167533301374346800239208424560121410262959356668372081143357354317673569429132089732734944087536200884213227369231164885985154133330567939024047604607797866383848372584223429530526369050670276869607554538273049882090982258821185966753536899227369152626472480173473940810871114886765561470553669886542207528648204280094173567937665206473748365592263200861751476955284914539359190101203153061112461858577358623944763646903574331897313809600768724957482523254792051185834294614789527560027946021513637202543864603915133374517939478952934992620240849862294311673846017103840756701642470347811171767536246548801691613951137286828525461353069854041604594352925644786059295412544766894310574477596357506307049181167519833912387868594805600735346153487006776809387889674046135222905127939242614829845151025232574869789313603040064611260928243789013450722442425631689614352645112521984956670996868243908176558964654629760173937774083507014321062653751648769872713795535120464740315163904088104609227109418511755823836392057520724517015698327940142488090652473347173513789145838707972881204267244708868627924034919160637605464501987113262770738562192315405091647463598026450245795124368200133165627030750488988048945647143307568209827289838559111390403595630796608357441093995354558160998150087678843726428440859225320189484006296177300350155009704116415570655515757299932095152683629246668852053011411293714163376888569040253168279291670723279158492928941839044539026198050928407463520089308742702338836806554222191139791761874222912924907701117438366247163454296992946518580421648657958460038038969360280899856604706028967363236530485446485281325377693979837437324323045223382818075203925566454746951235925250446081382362971319609159290269675414312732038784098577863181154419372188851942332212273689184397885813838834574015274212157562822733703995645233402301519818114145311669492598331956391176465034955984000426628931040625923144241561438627824362848196957035655290150078451588497972213877880763243865572067611124958371615642538807315442011091966294271918156255943980118249939665762650417372352053585938867627521283787494489479188873601619291507840091014741387527802867371950762119161936408643862424541820203818276844190908696039491095008720876040632397359538146417272615137781428246633785495136857153992905026658863297096899557964588118691995573575267162831377704192837893008915883327290447637010285125524027935211384087353260913259160095640604884187129947788122606987720725841527288607884772186328823846197928982464267122679993130936217276900848183553364315845057645065445637928860476367660106585143664214457429089488006911249721197074162505261060152034080033730585675451785802413775765544506582351487712607529960922168497297948130112411658154299838405372316601813043406066113551997169032124902211577955490042496327132415550562442961540125015793779896679830735578939355568284474323778220650195448050349183393349973552862186535040751218092240855105007084499522306873135578099546108844771968337603867909561940077853160995884696270964746584783720266402409247597719446092508536236359850328810761636677580046943878604490308059153154960149248239225513500874166583070331433191613554284492698776966375891053601023128307436207691371539270337890183792613876053582469761253353168175636390929551515304925419006667552428044008438967440039882944727520118253700765678469421599663722118735623131233009697455286803794353482648602550444886382533553398297422545331958570714931074165314291037665838707826197768368532386439986320385842211709635520756269671543078750274634041884075300121014158865697293020425230157844246337747184273526401506281863431071259169912818640575240215946939139818001984647458855480651107477882075500098045657022173235398924338039608764527948737400088534251100883178276976899563355348227792377417158559906623567150350875142803479352429412856858949809781747674689227256577286028398080941803852230276178302365157101951473217357133558455032859862477086920275407316045954766554751576411716393567599112039239566230037365830885480677890295970740120619881969559701686659509979939681361040698800727697181252065819379085394361526235355901098375012175124959974222573511090211862564571390929427253414592835912040594119429152115500066885225893338181333457628732072308107963778220571883565202116848396029539823620463175705075862482618042798089454656796040352074048981425541956564273241324173238270217951765087296902378752009326470502492970819733871063983016099031298043097627361908763600903980301884110767779329384958982132357979411063808848507730678507601651915704804665652327101493541616978609459278774483901031452956532802820858512829220972569958076246526767758038376264219816699424676752045651167638603871687661208306373337593816816754213359619151201831239911840087622473584318335421134607915090726804982006019070636329148751675303492456011746148279927777925755428636743953851437335434441200601810143483754875912498264961414734701325781821774002815111290364477780782750509215900339500605703077380935767008921107739317226541232692803151322974730423112396106824731534777784720564453596917751619969593906466416217728400577184466167733966213429981161118865189544886891154148373446189204859705834943323098706300750520870225599822277200527921654974788717575033882434116494750354694765104202904525477710123966495043433467014662955393528971499413398728342200063381325878845744256016697177975528518235217358059251723586208752178163892607361331426464238429394875778504552773242106011402153985702269854168601614685732492841270479611626580485209697525825489152365603551040201781096181789958651602093998354834362552976130286210176523669320709098095994202605289707693437418126643348887711701265406065184895348742147483518158156213115908260362295572764755440416882954112736418942931637577229155380343305751216388660791200137182676929952860414210840064711088501733660737637542854510230914736298537370741283615065722852609045598187273746413011110715866658887155165589937784540333078161055516975292406347925686396110562389750657597637505731387850628377348475618929698023436541913625094680868757876367188969147396824813236962554617137053846859067511660027729262695560080071448299011279590550721803401689836021378972478778896179808099437179847135435249673910967951327264192706627344783758530379703722176928762882176315548433346020831906657461089328352375125801179917297301917080504794130503106312319070283781200441504904313668096575410962233139888987403790217947563088457952559853252171820293944709596086040605794315720731451434193384056957349554711194138519327481114985639350833503699094171964141649647258744080153186322269766882509520619853920978166580050061481161310763463112838484366580494822356701417940638717996430698509032590987611987608590710314524534580140464080386309000433536013773941652694644381526755705572624777748328668100007398372546381155621401984639828564890418413510447921067922241821157054665906512029626523984376066541205142510750321566558733137848880868721290096862341824688758811263602701304476900185848772436168713476293510347341482393194534437028347290414835014327212906507671540057324897613186584961545529726723559013874822572405500796370072562673836292329848182564262364763153685495657858726971446521498228711602519157332458572924056648654039822076581081697779808403228004276448938396213221586273236691225821237853799899065760690835150293768417914681644507672469568028754239371578321876920643710175196097309563212687525509310903673041413635056414388855509786455493763208620741298792670996416071542999634861380127850920047807097922675298050445046393919775253283626841028180252554213332853293503752048768915305221995169145882743465918596894976814786223650397801773682067111736516657667914509561043669251373162531375125763480393583520741883536860454833696099407228141550816318561776261128758211967412427204084436983830120618387513644532986004489152627257096148198149770007548463529245302108489805574441439311513127259401786307190791064150657269571108507907293416112646792043693509512225254702130436012255242642386918306623035574626347598422801424588817657021204833116736060067256957639890195557644773422695966359520635620315382213866736117216082768085952312669462222261834741984370820384130431054012842197328926788517746275896293540446516951059192500031253507315823647421264253549359411339246069652278365294282107448067843572508664113183228454140495691602739649235204263046008020385733046205135037700552414668279199430790075479364366895939082843497776837368015909726370197487565085152079333324711469765289745245158067404964345444787817588049121049450998272094619050715132547344717531714418788305782555505329481148895036361214035769887691628330221215667549957002294033109947612714528108095088935506344640426294508198499338690737226023538917546236338013991099588580290738480739210193804201911910712385733263391606348467449104499763686332847494669652608491840490681945117805556248438923977237997532983067020805396000877240215099975409837672895234024211421595132214878215598081182511062102856556960451646834695155030937797586243906585944730193407003676439174027507561332699768102228247830692410383259856521245970360859153746636376398456859626563793636763675298200707979009022829464463006659897374172822708742921371449655024529891944475388536874737384946554958386846218514905191129224928842579288908182010678405031589620566134995146339331978726024135459621119917876591145520590749885111097425048552429893415921723089598532556406235578174213124451238993824053998728418809903605256387529649410932962075056216246689936676756854959232922367548914884541346839093310187466042579032203383993683764009615868366789558656226967835540299669762123627976418760705801905021957826167350407495307100411701192269621421765270051999959462233009480122164052175839558191279182866921656392014814988026195525889690288150378302675209608735451494622857000765576122498648592287254801583562348857926177227410392791157167661135199278629316531717154452569252497006108588888894129737438486104574281515791964240290736257377498715016359226860812466894158506909623357467008709243462620555002221012940400137181355329627633176707412237080464588289601032495935360075522542907850321155346987231853436014631412052696660170625490637038391341474599054402234089992874290300212510756228215146698696930835375091699673527072876331115580769384061528097155048251447589651118507908325606457176674921884181097584086116507515213267171224303051479500240957730650577700078316303544130062429886323171234255289889130832759387146492771850432733581705414081631078044282519480805281670156318779897858042796264522132459277353874395639208103881853335827493484101427158969511109115630804951158902183952034093505229729884528316658054456752890108673474780207213184907323679797620983441096639582983720915495745137067012921129764382681201865532976284085568289961622053924607959070703638661835068735826182836947788418786956683945816920952817308828019765663252136019127506580635572139134328235865929874151848047886307702533890747267492028196479236277378545428509864593180926251101259185095676332140741480774279788863481940664044037335209930031629874664155410791338509170792938298157759863185723033494798847723781211613041876328070446629113916044074215475242391898981386023435002233039688454321467764099102416257469079742472943087645413628451415979552818944866959973097309495569477477378862281723913647743784558700124775204160722344459404993554135742959927631996259770066782413841600455805869804960042777566078872217500548559113420663671093609786753845708170021116840012184204224735903897906391575357764883878781056249191215248521535331631276352478758463670256142269156630066127013173944466165256501984846587699001669392747071233721176557902215490945754965711154746810354255196203099830416580451483623089876893378122489967324358691533661580915021358902828243775044794557900156362132301586208617685958936589901901347882395744287274493785501549909406228254900981009195190226025764961286502525154146269207218267897276082000617031886039670667839770943504586122061902742582639122088204307074147118710700417638270336324583335712423752071881370856230489989962469293964475863937349241110687817794662499389327406124537823386179748557245448083483254237768275049704937228716393587248947346656587420571231896959433262048790291574213732553757038874041851162610124532697215534082838617172130128830160189645712664506235340096639588790209562076691154588588922563382075339132898970607777749647496485351442704640312718354622419649001583259741170555524970587208408682411948698559710588056361871558838233524741485831127353142904582906714985963679109929910759697362675412006304369211383050827566333588803914190629404292996872755055670844823595248921714938192347739007474650930670276364729020776486423716277550564012969805405706905807678522766008805482222126787181278548617493912057937350083197183545893976962344654389575228135272457731091639070011983614589647701131890086808723662312497397383963383964731311064884485885092449069814052729480047397692891060778688250439776451204405736386014070908380162926532487082017330789457078779853105290667241366339512191795212290977712805553476138831914414717950796894968250817774359333938338367717907084494118690153929061517155524945339408964830471290286619420944242837748909045502515362050718605678160530771324941125144555739861394660981836024092708270463606168775125669538532003478454975240616603572040723389407593548339932172535334363310919478754210411100464790005092637371061882672967561937065480055343612178452977201829111052115879245291901572756170729535500621793491250360124789565801109347103907306875395786591809220186938643539378094664459162550638928901273830246604951630806736145875785796742494719257429484023824324267790479259425276339436703117295099450051648306558865059858696327301524387790007355522092599034712344415399574274605339957598633901045684247652346018581521216963029604420820954464267314436664676273256428316140835105363254473552304669833386961530217588949800354234851823754456666627042917564127248588163215752213500711231963684303657391006534533406247314132854449641973648728871791097695439063766605288846900398389830913860879679277971664489606160946289275034531306817711272637405013865918556117534746786799747313819606002084744496778032219059345238711539135484214068040059422728736245446866280859212710285108551992896023850294060839714603181694496035911287636294707172788656790371680917223274235635718564492190420542757868453383320568810591056436423962746478636043304591901854789061696152331998491846791604328955667453383031975435530485836768784347266941132207064157695390439900611180585252822451741604790986999142151803644510408783539220862192064905635379256458102621373206405984097332921276005788978612591335900003559634878998955181069890170381117532113315414088905004711528520714099759609200641911197590857395717389522341395201346118687408538038988255649515477914392169240942025887628284858800397174989936949145819439954858294004211242497871035504029626060943068153053090530247629710780047116198951821801342854441482415709543686640826237166598225685410415444685017883955687392612594667881521620921179984118742992577886807972894307566605386367128959921013652301631503154086847607995083836618507917591579676962169375661179237293987666151442416884898738564813698978553863971786456361371521470776068788086847164484541225943521638376708923939799235710100508052093509653391336269087510217363159203371772442820166215250670106692700758988294163050517290264277039473628454745447081207678438749171175262213770208763900317795720314917356899579637609202026623730661533826508093984716229080333169699760134850906983282987816080843460538193451561046812351895130205499187860464212603730035968345442585336167015876243024689982723119030597553753268398111570516310238401815816831012440833386682624056081526141474301706245677843435167749912390348921954753565553190377314411182794457054761842858072206366645452171069855612861148352560666264197169526862072522225385836024120937215765101121291936223940833540794775407252098112776118002620765721608706746322273626584806465716399137818869197818097305339451281690380672714654401937666986941904521206347154411236668790497185465306610111546056145831651365978594920049562889886570788737846540587628862114667929806105986287981013299637376529889534428604908570457487206618357089091782374559488398196214512677546951753088819524165410895995246998929214415183010936054259683393372741051922212430565874267430428566230615920607120956820084126150052235372322367493009655453237442942537153989498091799016297421552994457055786887773467266483017010957147720052199969436722958979147377054980461980762109513071969639586959684951601401750883574338571648920935646078770840626553728921882372960170679190024589676927409022731589466045602407893874108227976346284576107304824723886364820259543034592957524067645642625362681182696437966506369961593292412086873660219068219961736449058698993241154105062782405892017785872958204288624447855430131175408379757338561752727792487994634103323472772661201360823512468052894556311665647329452196355863855022774168835139798708138398522439814187359450442223951653982259367127298042450017142017394361948390388808753073896890997890339213277107384962912672525904059651483759766248745007690262468729934202158538241442747339534169017428922114980408551479060739143959662408724525198438217320027236271217702827687546070399992673935110673849367434755107170869244216850503481725478915943529178000449359421092307894465951146773734622230370922981421215685798413516261074160168237746413113188499708754154677242945111128863990528745363138030195195820022799994207264900004585717320167125764498195018459805439783602943933209300032426481162244745066614532101614083138573774725172005522245161982895317961289752092387464677658866178404639797507940302881168611415687947795184597323994696877019145246336821774350043528988342128922918653947425426464444519297936961111291558438065633820028296105790876455641918153007479767779083898147945602320820853675640363101633794105923979514658941176658701875910028681802841075933620236701709955416600697950339802981174172413184158810787829885573485250689907485148339251785578809084400034825669013486637947009854748180350329602365990852668082338392869929782848351149278121696548452816302862376176761612682690019238430450372093256444811092266279423897245827893446457832762786165066152463830312125065541284099109982499406507273647939681229217886007824864240339778186468086091487382134074221489076349907084033184718386232504679495261895280679603513820607222569946530544736633900502892346923999962439516216542937394973168571635181316198302957214470858448248670851170839027395646239369519196826196406432183726098418559810779922404548851562828329183482743182545438438989703042794143128221134364060928099323756887233240296768346021130156434841892544453207650765049024417413273416116356960047725703113123452288386793794616098608958461201581427355224617346016164928832833995226711413231402332891298685642879785400393657972361869170330333661361345654347909027068924645883784523565901276462517506110160186643546512697828167612011186070424577989613187759123584504448881013188741598778695795603821953513980082517049833475249062648389652610179581489491859464742806080330054830244438550967770224213440559471664509082193020767657950862358284271898948031505718927914440501248231688905922055107615572132185089296326613235395751882846649254310478502805395940954185648845549021025413004203201724742788220329804968317986808322457050430061230994863869957343931127050087033658504359007379179699253911588523745588283366901883948856749962371474675590870578840151356790348406797061947850607563077161453241204675332746162705570575622391345330774060330975601346413196008971845491747386513232484004841057170540742792115036407377647966607660460563762582814941552817459506837822036788271175990543951546791752733269714058200120789873634396854380460104700436554951083638788691743756915967519302587967760161675716769426371503417587462903073300958878810522158940631576207332689510069051898405016851173993385942948869322505018468217934978215432512969195541082896643903475751741919015019315991103460792445483210610328442780388526609315998662846635375201538809844068215862603588846291490212105153509277064307461520455653135029732296767627610273895853836054494604458342211401604523519222962539794471761708223706584238834455038241617259586315226601227141301274923528225456589868666747564763455646158957219747095014170471082954160181762345777144970916533929889199666693370182938362367273313803913358273641249311935824208475876778853553575237026230519981061531444605556079584295422202580715350758198276011432776873390688684625146585061016352127947501122629135463981409777021782358708095332165894116416564967070006305209940621604892347152448588446012193932246299955895334240819863878191129170813867739548716462422288011881454355946692008052229401922013198495723717166901798563994098285268189873858272332180402444657612846757613853066623113814112333056704381211119492136167379286317332384158573830524673355668311277901229242601772193504771943178199026280646360070427733060464671241119266221751052143607536451965277396249980489247848569677639639079871918546992018655566014889324306229417161216999629539372766672139891773710441792051474567130965813942621074285081881628331123905310181127392032345804648343278759369204282933403682292856926158544224323529704654192539515283054324485925866764380243537334615794453458434667482556501969627694338023515657844098574673521263874248841456681990198780752693395610045084423789483683347123068572129104607400637316305038513908463205943240796281367660559566195461610001886804164153367546996328639524775531265083038409656443621708312264119977110673345144587887176882049912158044042088292199292807527026183852899547564048048834465160277645302825856218765012257507318128779145871633751793182182191782352099678536917818462996038777113180562610450706822391189216124826819354463642599298893790342271879330645479985687402115032055795219150859813208550425619188613711711074376641556138162805717216758949002955625843846211338862343304853649137771007828095253470297145651023482734004151289814905640354973769047721712501648132766506142566534942208331364886053822650225018866576317624177773401636908756670713487597141207671787164326912420384781029884979353573270354376722909411519877086495951677853976560063024934218815737215924841639474275035392727161146523717448450562337108313678091050249435113578614803518157582712382687312115094798213586139691401979575077284457376021492472360705658968960698568602384298100339013208800405401328777202866245829721049960893822926570972821776131476492229953458615086764030058060349792624253773095859625910778592232994781530312824987785752193328644260324481877084206557944706936788013606958114289511336986936063980352898211163491047725810151780400655974557750037425397097020647444338279477425736885825935321458544773217585330148674029310317688369494710920757410482836164701916835931753685897795371590117573283445807175189422916332931722671629762464060873268532248713237997088502824614529565401359143618395801571994829317039556143987713528486564548787248143807072422178265382182085795761298658483593658943553050363514325599019060666465088313453559577195127903556586374188389459469690720119898210173225217609393577546971286896266277752455149837021837081472074292328851749380204185313328130737281744060777779408202057470729584713011622109879332791561226010118036309206846423307339806186920717306479440930741221191948348602668354587110145717886949218324810612263624646149772553546234417309200192141501473846735181595824780959642822426686776117774692749598693148436761978286785724055560531470659807771033824510634550487952573932627581576639370134989166322098339895681501777067679223911302782386789900890060553596541827505812720581719788827744695183838989290143863597492032304605245438657820025296727178733931036508621076099552612239712155426688277860430189873521611996674319530923043821559879616563573686100116995098786119084346435147249739684558922835161465712187189850081228092682635855722627479089497977792441477875240148488140101989450140858642122271003687833649341848982939591508528869486208864258527147991698843078664757053780852735469266373639428880658950013896232118090857816354503260986943261619374952853374568732437811526298133916585113450546520968135558488557711709358542315369897641791014874524514381234585133437262441550127598264920260906826350431460572935064789863473615664589642966863691952167584178782657921301332414760999223267995475712710080356975118065023012128542294607679458877460625718690074110397599356684228288985633055844015859294453325677113539862157810140159369845190927114965931507459839158355727598128729901486033494797567449166018225586874525698262774677612113413142723617781250961630136491111335149664078139193401926619505917270315051518235316168706146485139027587405910285921137069365564358141005317965011554315977257079322449502809620191001739875777048531710269104871908770473843500186723417779434782679094796473105610888745980558658145591749506332046451777447374245074902899368478743197667359600514237058941498343880383577688920054896419804178039592683156257835460955468537857491152082441617286843480956058381031731077216204460371426187855006572044758680945864281524961886925491695562957096012269839940801950063295532264015302293090717452822319512380375213490995432232463788932218792563385139188816766869486552094724538337006223575978801299294239855297377584161068698202639411997674075774927760521377181267939047035686116900354550080466992777604469890282481331952126378373375412591543515047960664541172656737277581250539572776097415866598908316947250420614863147219085765149272724792943663134158544737195997604424718192934062455454705721450136683577163523248716099325938677662461696453948858378876670421056547195475277005299117210672298583396838861325317385366986326913304668467473386207798689182056163516465900253754576255429265752888166207586062145307761147505008439632227735134654787801237951842304338106025121863911080996168918761702301867799134277030743167937574435762284243742884512915436530980873575984580232505906588084380469209194089565936266355691782500246420008612053421970723308909041841317732056371054733358195612896216328620385359642078279921696125178679492208985737093122221278819876442627039799489076495928058967858371880359240344249813575484639867759617385599564455233247320599280616646262839286859108107870035325043396078604403393372214500063997124957535366278414817376874880149170089469016153406443943994654352898278263178765437316558140225728286901773655383426453824015782149735009028387348749014945848447051557872927732721222359249800137512857034431437495147914734319333858236465013712282681480525003173131406429277712508001573754054774028282386367239122595776255302597861331622449334830267945198731700117646021452501642188449988846142287422579026665362694929957656577572552828825572962669033102506931556178792028179145742901170967630088198077147751476384170581465211440679145880791133328342851024994208301200291458935709590382235067355724011075379553689823326481830051375929774603699336248856692054304187404564649570767717186775589799223604362566460670883165795467689138957183807547870723855942949528364573434839661200614664387420579236131707165687708752844780497580672587992200910556745344659115967314920441206956125416190855436654293363270841440831277569482672887112407434265673436931093164788281086695281010084876231877727292239297940242548249993598256636557957907414153885145543468891651264997732546864810678284833342181080074678330900759927847661124363227661095298480229148966740035306282087655825243117710764785720752645951961486731379023263711374443729750157872724818230346112297206526140906773146033644101328660021222185467227961835581689804761987271615697616820472745996856964478137687854656968890231237204327625520374735515859029970599190979297138347336437172865130016530175996990284950692102839528416969685496088906041880630522868491631120944796399904837202503886863895095392182454188259361318912225240578756555847732187000325494030559682042644375790064004021267905783967589739247335371111875489463487459677184798276991836132300681408252015291291444713143415776893343237320810265616891607792432883500673937486675901659167577705979031974914185333378016062350162897628545682795997286399590584956988826134754803898863286355419119232333707482928109906915215310726545859403834110622077358180238324669378680024871659347227958694700162802613782557191635737556070411203016118932519909454413131338337326256521273107304477872758683413821780192506962504208718701420173929179038406803596189371556901627785824213439803947274315708644187744034051746059683732873647273615180155959441675764408725993834823234037173761889953705140114233978915785786551808996653097192303173556417837916435781957789043126548541680594978192384011810757374579712765895697242783884243079565626387120988594457965007483783863359288918129321041581450798460706433659522381015683587947100708526990271020755067069499471924180657772069971152754649998212508344765440605363516424036365710858728713673116507968623734982317445267163087944625822198553070951836162510946834757819072408723370090930253316299411830032862674128798169962226217397515711243016881589349957586267187454520820861529942028017539541895056147945407984045158191109619125617783883775887412467996721394746663879284278034877945285196184575088482781419235197577448214910209251573592780899822821844502721604837646301583293370759043935538580591625247438685741603776852795001973008478864713661216783715392542159980745873075918131248186430356036866608352044829733641141492015754811544497338878186471380508210636492091908297995560989065870041212788887476947365918820594080108368923361020367031786981641090646143956786746169211963318444974851671935703605039000554947937082457734844734468409378553305037193861767436657698868243783099140819697572629935525855624127274140006969300014949013651916166345090435678932651274122417701594483263380144080362279584963320667946200519936264103960706856783981526550938630699878820502188193541606245760922271005071522210220063074128478382023501287314230966131265746301272963426211358079562465157507560679049524186681059010253948683775401682454855857351447345527619992257890490408194060843204877090406575393608169071818451940545999153592437429179051596065584533601920017825002149246371118459723291127891600031909582638534995325121733102964605285940961948766561313627336179927391862295508658303084913923594295509692402486363800412907808843755124752316277659000440117916217298459033422295962924589927384629555584283635903869102727285279482034632949259301303481880023121990170600095141614611738752104106937776011787199830076936014835004625038728147226363044162326533272955065181061924335835571531465736567170341881995340656183166036780278191330502917202791580170619941398948357935105068644406027883734237211613909844896425559142151174501604893099524894356560592249081466798672461575060660294439131729382013912296036393086447416341437581307148952754023676432337705812299027408422322455298892326243176910668041106227400693845217964425378509260377960813155665463324948114204290354106587426172055388716442559489591691562730074489108567337693043710500199131435487224337322186473190575567945899454530112315986611873238036045346602519616017679776659742709306267400634390879510683429313722394764245779099332613764342351429593243749935137034767030163790233806342493674771507898279356945171695410656784076837223976058845604750212271504760278315091641929516999332008788464856984033638914930866137509733326150631490380574134295990177950500409311348927433421082091674610686522135538928756662202472596571407652716431847786494258269110688935419549799237122747659746680777216391580944871209930263029051165896166076032670789296112560264417624092437519864210392006857014871109150532026669513780064135492753479294240675139517173678311675923505149035004858485754959152126139580212046461128234064361100465638603633753715932302622133107232314206123200507323427650266923296555689227266311484596119950897785974725979757144803676814049804343077274323115178143816589877770357566545345862764044996604487992693635097972175631147766873682263050363689615039049413943977370668415444534846697672999973250864084816598590452543076439024536589722666987964085841621038556764696580059452559638174031782649196611462652430710373793824132556428036489431098966042641456996024642199493295348179152999527732376366779886631043324801310387775504559966165693990804028496369741585250710022760965025541693724897578851248299825519006514489019804437125652915609865940951093655790784690851453383887809691721593646108246135827681230837809654893363791643455841538794449834404492683759221402280416653897551520775832585520015375548444794431599622653200832256625660021514521252484720216193167037093834228754544635250066623610065842974404739822520036647161360027637393656048602896149056771537135843281934608209701497693099954521497422478752399983368132433822988334411079931704751616628525395352082180808957213138405519429344432468101272441096337569376814824886705208873972306325364366514608751739031950754062756470084161179723824838619068892466692936404559298226737851053253077376005500493384625834566112265455429126298622055985280635446890819712156195554131103756876429750364852872637989205935072602350143632660790386099819967036260955217453143406979514352296378321293822460255257623194221261368567069553546577031726887164716730108276212654306759319345088733073768687474581209001411194749097706173064082474018344633315087072886613405837161559127960651355736137832687933057033907739670679061575778722490666110410760264204191061038831801651733157767439171621006170166908144846029166313987586850346100476380020658236626148253179923475098862077939898168436198440318358170512589654738636619836022260148858713147400774028381878489986029494786842571334758595477582466563157294091116991966686510167560168533226189032778468379874290854169403248286038646317047274769573561492571956260151343975203612523310151778338531062514352506425982129886056426802358920867348533346228752439825741357209427690149105437363019806040708128500525940900268625008798499191000575373048637360358268935121576611608988621846044898114321131498910222009583460288690343274867461618226110788825582051333582538383815058814421065265991359214015508877983338281049923741041804818183924113017108179134911353573278834909254621888664140707291153166887694503572796937404645278813298480010636864254937316075815066492899880442294156310739754422468228371009366453772293872365682582335499724743124358239560302463638231944250143471656618279811854101427417229415222609496796984986006095389816094225873489938992290445756797444548851548134034198758967990502513945987915611079927173057141307816605262812719175357404437689966566663017314276559543242484275102519295483896828070127496716804018466191796737160299913568913154691120430925048066996661486394310845873732139204755020032569041162762202092170755859894394087398992684364521917949640986510390069165091950610724046310300669734481551700204059716610291989288026435636548267106650166042060969469739490973774564655109260626142198610628127865604848421290344376086884618635910135650499286882365391785992560344998492162440063694625839969539169549234494437983572993108042686199384932561002696702170006207503812824065109310146928262846493669199409695854438743628124818523796333308256931912664520677904756782496288163296639766460467303690661019979633520576647915443401631728215645350903091918708876481499725216305912270784927271951222994290999614796393325477140571896318031652003574531779015395761460679693101310696245742143377497594697025051284217924596090345512471782843931862512315239470136928731700802093630756006485008081526010561223007952687043929831710370791379051280325587216241656663563115826302629204837024228996903517837828703019623563833346276288672122975168982639740092545396530508123359977890706694202827502133490437748415581722459325588974897407900004941188696320491788896776083962161892224161414421625375108147685512247947495024419244758492172338144922011837849254761962439503924979074809020054889331543049591928717928816484488818549782826219438715682749938206677636757335944811098238458327074246599201632510614113253340540105589868599669570580972384504125486673535085493220545972762602791027555353473051541847817908778650874595580262820201053462470032059937531909046484787146818998186251425262317253164379487739539024501402931042446058598628036507543559522118899872861222637961498750209288978682511756461831876736109927133173221212820362378997084116489356804293740150913417470489907362924696866578970135026268904348686546241996111785440492578606074410724199085186826278714738027466276873279809807446539666497843107643558376960681760894834429166620751887724804128321745802346321732896407082205518522375643479218837988876803104921118140255655101845193017466856507742911497565166278900723157494070461480433058121575694237995820946026504573172804292858229143848371390664066767874598953767299986157752696725762943120086386191504911278242194045149185103210638636495595166068661569503705935922484799117046958403594866330453317308560670093102687894425392487504507099306801125487625419312692763657504384174030468977099913024913101704004304344880361650056001825531632545870993040874655581226947962292157184122414353521757237411367598498860253393998716180266905947230140521479024033575150368891091154015078486451963764467503887101872796600681019624369123127994978789617955744297407600534245791219569630024863790937164016770573429316486174059879522857477562445765828105577000504534706024314145891664990261232637242121402455706363519141283718417111323140198651466447819406224846640943725829040171278511998654966733614290742402646976012276166020778670080253860363876917804626226712562071806942248359839050833399557060543410791044611116164112625963832624716427722944176531745404366183557595585883413001777730064020691523832168620181487422932484204942803073932954354556358597770264151156619210878913234670053010200597388470244555573644958663444110889721625721158140060087297733481628933509726123190603313288687262429412396811460437263707641604753138238100278001402910079465170701143827005122275268932462065311198033508182000467360686006583622336741280555966031120825341494624516328580112384184855559453092720130199696741231670795598966312038346771866433262236107180825653821839692659025670161794177544590625585263286537207427177322713423373560734984548751317609113141922094165922270832860156051091911762110401601243815227704008347173985966790066987255266061032255245177554561056595490028939288044624061385813672631376872815035786831369599200377277349356815011360770426343512478637741367704039359162338018838853872618077906447532580528860139553390897861615717612937115750039288603050284556026946904435563410662888746204317854692383816906273744262505727913757383314122271052719620100101968484924994972515700181855083691757970902286349950254015536910250234362585176762657468637865910645770628962273483255597318561498842025169379180654353547772466647657301656754942839733807583718778000070890873160099693807828510655608517239244010102706676162330884305266431272015063980379551619261513879533590902441562508649687047843805136497913982703246729599205101592780794025848774716244016356294057908271066665841511179440582756378084881568697788270877417139411955561576950820882295494196715362776443743408639042956876701285964215086168465537585911229941301077559217762892385123507310716528649261004148370374220796441020150828149391503936175967029730908041444438707825861168382824284861068336167766074164757204165332166835080834132460998415530401919224020809675713998393245774454987433501399736827589755091034138432970157763206041276815460666966821129136538732157095238281799062379662912565798445452854653521942497904962632987646633881420107887453394743992164780383011085713156883705734282521032300368971795902841501346419175347997304305310423623533281696967806806291201329339285404135236700814808000463203012173113976634757198600775119196483814541197865340651482152075068719330329168048949416966541364239846722416611034584862307840866691922250815436793269799432750956082092466033732012660527931536817584052889972121264040312450023769323500141947183445734486625957378224020536421695043456965810971986547950947692305851364580014649184738293124346881111180591395710397244770681508508168358052588197069568060058331698755342108241498559534704862069250198752695183858367330984430610092488828300705589479175589381090346935158588151009910975290216680438936144775806458946305661805671672183852045777513205417873622820364432818179472811456334753001118482036758583072790295276749691274145091756962348008294275837935411119423233398163395120036143731661507718849347963646387239135863004225913671312396541533234236290945525107647186585810923768100226229224111554785606264330601856420610166298245988842691664365545797529318189497054271277026069159550759922561597871188308350504244289671004040829636664254530069795416713533924858409100006395625185537626859891804495920086523058966388080507535816426434749275915923378229991139011989745278214913593921956944559810783519064337131872914581684566799703084418012854380210606213312273985851003105245377549171379665485372343981813064255311297397077953293915644272905835779789544712545540882766491567037254999053101867311783391557017633320108095359768665801959877623781886179893221249414016980409812593825653467783584966903041837336525136989148444204183209817654376953913373707703212374667702155650166088204496987516832409663703153361518588129691411513916890128464894386349373005426473443146916417568784284803825346101579082842634819696704687154682436548850163173706368029471976420096000195539782094011452693525451060230222571366697935444445814810824085724112177389493874842939569520619041347971642223849578969304614258532771002261164762304348930363681962688756089455764774128968525344853843017112156539163624473693870306797720200376519623344092815245798570061901706445359882905346310981218874070829544315412533149676533937132201770224012456073775683130139332809548760817962108576242822134126279437320210950539375355812628506359375154711305157736497604431687128490075205531712548047975886905742755718704916362021210084768699243119348901316806803194759629846653638616080813351909762746138549641224401201877389194276365278983377745209751701318038534063600330279484468005718141398959359043483792417974324488526609326976518783221544225481467670046462221384847326233513925342984968703919491508922738016800114693303242090426089852169504071702938442036065955452432813882198900405743607422013429565791731949802215057890415542863084515744042150705118278339308764338065404173159196666978418604567398753340987612513504847282203155740711139704575012669363231596455703887737097124913098849648673184614191249946460177543899873638045119968811882210114232573308223829720333847539637510339941831069181648108972098467631297689287498742937003677023321313359322467499808301865287462511072237609884083964420939808556271007183784785488007187021656527113492996678587962776786335739120711029148553762717928548272313504277153427449256574981376767406637811382862033358950647815318533587264793965112700407418799656437669220515231739853715226179755042515822387351199405172751950885517164021197115568775114211168042842402838422019985356982023006973441230236127382912936578738523103664206513702972878586918817649234145003175381528558823107642004915489372115885316423745227601961279957486328506866614091010376757478797349863740793643379867499211365162167248386149850169488512722464478301866697762891040314699392034131092922214839637915906691946999797042107514725145004901042030807308382035435218837679813902790318997448993256721417379315555159190978338122268626493909916873794897750215878035046818588829798863955475767367525978926090702334786073199261739685230768374831047335355008020892429912052565184440109002011305898294668810552859574157571567829105491377920201154743589622108880443114258037660340447937962550999326242748178609704552402544805618737644406773556490342875100849457651557836814063101155403807019697443547295540272047390758206796196903405145807439897002126375714212622326912723718202317894790733449136694643906065597082200937230317945605248970873785286942664911916265118852000665412336497223614436944179679987122565217691322544275412279528718803028273754933006034144109517264766858344508239030578823623656416320662502661426595275082846471052768044806366023780570823401389901858484114180834343934017865469693057054963563542781555052954067823971016537113748099709797791843719725237827398725729356325431578598551596637443476061039748264725007286734676119215431859663642636135277357720731241945929080255799535556840502035049074938498633437380417859768610232086131522968639380657318028867701703070982296645496654059368624909792117172719046738811395810142624036512579123308406282543382600577587039259723547506150201914502352233209967513893972308954652147339868286815911701566250577468179780325448382200033011780752542525300381367013783958825328047539670838155516422957179213540891624354245596757318177548393712298180925579013357460541104967471367019908049711779313036130699794836596476698849810810161166712739884241729003429878020158348853424909246075096128523046922808856419356845440497166358958993222614222189343082808068329389281938700741849462712139940929308346833396514043928978322165273298446317578751622614606657658589683738881422674034507022965654808966358359172283617120538421947547097150000139811377733455152073644547181441984087216555137837021506405591199153860983744173265442162251279180211524007719980261535545190108607324724107348396595728248867418399736242807992286146714794158981545255365020182189951196126607581261095102789256992498005713928915038592029172945088576218062053044247647498735231288137711180245634944731203690076562666421170927093013015833523401773956611892715492912298252770634025542355524342515917161791493294661891774931687579976017223445651617729540317473132723328001949465639329300851852338953559698754575204686826337594695554058340904480512865688630201700931876771071201708942927275117660775956980705635257426222084053295073352573488328344879895391509097365088344378089660204495941016276503095307852417581609258667215642831057161250899570496941273706973006434967803565528275100010976206511081703219853009394602857481344757730566839578302420839249812132098855967000321240357771858040866029282588580117504753133277622428821230345935605844591823631385332061534384455918005770970978659610586418892789520806361350570874331246735419135400810145218802986320575392428247756827357530652520786169831405815561075056719437282719825795060527732485849566239749977487933608705443919943940026928450736950442937265647645409794455041513649150252982324547540572224987300757440843270958648365510432158479121065909712669814763260240696253801553113853503774022576647958490068439579446413383448296543178078039507302098823557025200538622492941575604921415534801547233251112148502970576121746992006232913336148205853006209239731951442784164161005241011126013065937311573917256597173244046703473575693573462703059076110596741687916710868951442685226964134693201695912189746787076254850041877899119916782528202055688582121695349923643110441365297216414277870050291961679455606556944118451413432018619874590072632361325445191673022123262976751880067569606009703634815541653349116279639052433938609725913190338349707383856016874707344645042807417475550862998511247005995979857034120938199409658501101799048520706187779277961209787997619705923118645511808371318276166279542482770531265033153176817656654076941891570025718724926877903887936899496113152689430114361447035279127498017383664373797410196030445890777461008694410217712162184888969686740648738011358093272029210485343179459167507486883313836235672102683447676847808013778753747421894951100158875303966938592969545530280893059931246676670277710370894074681071193224523148898110754913445937362690696709926038398021662620066774935011816033181275063223424645927888746571274337857163574265428010725934893191191400995144232532411486205272885452374462867970691800673341607761479978271040796823179765396192912289315174782577195028334952976816336149026557124692810690000996956431339679153268144911587369024437104626915526788434534908317742548912512658072586126714873926753057736534289702309869373569318976783241711653663107098417921426945987575830481832438131692998921462180389375910021614262190960323102211941363775705819416472285470561300294392956276398002172315911012374989494050372486294110159505387548149333110251654541107579887045388952372499229904029551501138272744706703693215890859159896787471108489986396313059082247095542473481558321041425377032203012837959226504800222248985471416012902390363561535732405312458055411676748603207102801459431010447179076366495797447676332977667279584749821768627245204371374958058373101673027715520142854968917006180718430010097609992907636515489384988382859081862123865964901843014675269164748207781692083431319566041054379769548219604883677955852038286586945962087715416304442316067005283774827409416125805511168327541295744411641701397001550411720950921849984400724921668473381142895606588309368505058661172346818444815806326141331065721217402635239560816418445919515366906557623877212751804653901704041971788524862661646773855322846706997409915097925064006834234977780720466576259114933147931659210697340135405824200014590348616030120719802852754590684036806005243355348703611633844206425177152500749540509315576774878798240263865178566584787981708352204684464814851205916864091287378096704284422133560379632726076420661939705642994060839971317956265835617403112670554540062100103496526304999879900011205400943365295387864410209464800562953863970409164292853161947269957203354534426524382119733073556809430365269944364096297845334431597839461773962734214409545683144153778951001812675679432018556776748355615786569980105473957053864870695353227615621667101285843320756621419124825112258202457641402309150809689882032673771922955554534755487808744923969116666561577057218297413156727244521207516394820968502356442693569616680308232303833975193300434794141651310333523881037513248461271268919048049532649638481657690143571490592053699030243115995610733312149056207270050991676333405051081624395209952750154560839642043576945239955072424039941641936130608063259811403002013822777343177291426090779256392272892279422565577490058238726829725904914941413413438416754396429365670252123606650811348488829263360550531173181511624431787175879421426501213851128834918553058642320154087837581008796755862874905943306787531658070770154981197315675969623462187438716021128212904455659263647129469224279993492205825251631721311612947595430589357921131589267899530724065608122814773700177421300242304453269960353376795588763282567718062468077649994579458326539233088078592844570114949496061091444117279593314148816725910505405502348298516697118339929824632238949059435668617962734773092532945050881066283277393764246912505895039835324422392910770085887303556899878181249013582565454591449931221999520454835821620818816628083295741047098098763075311584535951122062367715138129284020586398971123072979530979003579967014732863031692129553744529091368126060769223233513501847017760416721606044423770819500647970992683082948286304253303503700889194389793125471909754502041643107388256651136314878959456957747951629866881973457471901561623914465565874154701603589469403472381955435797676791162185766517230109809261212110011169903123531001049758160903865505003012593196696804280678449418633064953676433250119268559186621901128946176586715026972463658920903765346300523490099358672132919948996805019835544348831696659668861801439766804538988784711653133348989696157620390706941802158287437241813634412733041011206736819535708335978477597563287764213467959477852620540747498150218721315645951491042753628617986909250637304982949001794167227552117573126792024381552239577228957223939164789750361046457647181694392014200768018198390428866216197680269285879530695271613069805993515411713136830132665280460824833029851487567829298141812687051428927846407005217036462812049712459859947538313591191701426144099795144576260813404067573475673751061875640152893959537208998690472397998211202119582316098799157305730572189456389921337740064891892431175964716968511730546939467071409559996936893092855792580377842846747062151233003231518691563574165833896632327960492559223371999819813105359275017026025362509667013899665577078145263766903989482610488832213019742664395775239420369039215473225898795895379549992963957564571468773549650653418111442071904017194878807777102046569249410416055663957664109563496877036513988388148570532008356529711856075712331223137543643115811146933819266592751557224946047080008522905683183692857553919966319523418407825064356842453606457168097078758345355348521920667307813110151709608387545288051256402986561815793015469595884850639373929780819933039856348087801799734781434915139795005785037060012519302860932165249270642627384057259804113057371440914151343827120077300052173684168103113009545334834002033918215704421579824908904603726030358765647417147389998550602618110872236851575381974028468722363122019145371599860571446117796995045156084355486424274656519087019167333794558046071960076375173145735870645062895880059028185693051878211563482740924665979927024760593525037819228611342552016263446764908073661585061272923405771802733241455200053931195929149127998205873123910467504762682177843086792697479153640359138618472867555896081002964050947262341912929468822537442576769527645725163626589216825397445121518433287836667609114567697942389706456930381582437944802463866439285832298172487805731360512618879949665744061085951127631499621835037070731092267091383095481161699135828047784832571918374188141219673109363866391989072737143474661614294853527223645229036050051446795985208252660550245123358308865711061204986179605536742615227960467078929271958427585543392969310411176487016447700645552950174077882825736244132083387179818804560247826730007601073985197908293526747501868356072130064794850990054427748869927344911701289262556078751870709969950341220483391514953204735043975551891942434356511504823110889342868791187008921388490067938576257565384921759022166609307892474911278006931385182409986822044605061833311994063170194370914706551361886738595362988378441610155787990981129124386478071931770821291894624919892443780284069227518030121080965988965530890165088181749583903664936443738875384978350706657384183433477785185557843290961196736617611028131362198391325380631130066072350523672287791672538894661696713196744241887991521530833667355872122617435604886610067179028384460989031532757535614017689942115228579497217220509104190268796806827843583416946134462817159319351299778534282992666258095582037059970155836146554094587404761731550685554179833858759137392188220145438890326148959063643545874511165184048042029415398124278830978066840851073747072728674256843488131024963893351428573553897794039647780771164663080351601543534319263754739752475473115452061954323004140561549455154480437870931244080692513231588407724170759662429250118317135436535605275055192812207761207168448749743880463612362598691902084268119804924644924715847192941005894050919038017800502139725057970437987777447690968223378638278723223970822836796948492568779316259979987837537462177657965170515960368584420981970811714057601978752911491350441583904622727694168963233679784486012438183733065175519286561709513767954192622923828548134275642676578736666070028471098123812567656053822110836779041309268892137893145479340218169508858827022103975734863631387391781448558908474681522991724699242736818483886735325465011746252931751517053194943228410738097526887679018996852004691181395306461640088808877479415663351020992585141319850241716252765788463268286925538439754960977179561608819573094199632343581882899687194352560763367803755708454326461544940510075741247292276239730565050195320470869885897615667333661700203805956200084554351110907175088303327771664533773723425902847797830250083128303903499834712044911896803066697915296669588197391824045689550502842722419355993967636850829861702919074342498447868524837284907795095819071826782839043774658489384594212691337883571424996648018608582814066583292045669016816860486810399582263681889610418213789096378438569109235412024319624304059786382909129455199373472188579656315082078613002160344033572058960648725140688309086893589704651079146935052793427672958203753046744835644527524015989761723496343604517170588996147665067690758106587444506023881335541239377860175588031328147824691914107600619573962727963891074312038986442189224116247866541528133793164391917257033443756875303376497701613596780712072203077392039733852440100158188940757962047138748097905760864051107096683760909643776468603287294980362925113826892771184218409087058698163893995387160155722627169584767700692727112178872932110511437116342060788126166231626589865561302975347583061259897988112432757812901105188621683787872341031742565559872039764634416653124768496422100232677084006860006055230763853836232727429400845467241703054899797375606260470989564966655373563092606902375146863891430795572278686214656684069840403171250889798749546457217037968968238449808320594016712696884068068567652951120394610220520866185716510697487989457828134388707199848487247591515282325554787262938577499999648646984064988718401227381725601236713068158101070902054922232292841950783699277420434862970099554034283979547844337578131696486667566270529155531598481432697904012717567558894726553806905953789116178621301116206137801281833457684895654063950916872380704840856486751458905034542369665582282744934422525338177298932505113802752813937878670463993019193834078114711647695727058353288871945338264970062738806417777676050859583859899776039306974606923256944785524417677344877119980260337361382900287983901346243407939028071038211622411072265106434492515092787209400602509100249649168448384817952258715572818448954990967892879508875368586686936012896862330984133197335646264636358785280740511971408391114213352381788334292245371666198949860703702224865644228461200957510352667104768701180419760415325233918797334584246482529329688446794039702653034785393474645365061575376901476267867098276883922998229315693527377083619025993135338666225879731716707064655768755939580994442984623066611313283059814922323113165171790274895199192172778806370947590140922041101010406854799742284985114338038020390078689513751405110043526631592831132750584251216776907633434376844639002642123976666896717513630578059365745107987038804299252114341707751802631808516286036114838615322969007395042658493732578323629287309966887850574388930452228788962971728493758102512362895014481450468242478246194823562319520756640302226202621433741481066842699076407948976707252875419573382187324819804528146152035168960884464486146327261509006640887759719348728989750596201525341333408566509542372202667839795629478939159623657698532772594812759242898449005457611679467997750005076702395052973376050223907166028358794428634762058336220629242791533367881109626106570687489685690234601790669202042183740757656072584305629120491263501952415278582756203033065876616222132389471498085189662725954631546436642713503491274410289023200790911512930585231185892023585646826234615653724213574506500707542986321994651556288481831059936682748300058338347994903631148685583208076053456548445961212006832844477257123487096414720441392447320219911378135377027853504458046435911269630624048934472122844916684451784662756082740861049991929543754735962025393904591935974793850819069083284771660789413361881839982660296753859519725915670786591744828834665622498357849015648599686357900494986479358877629830427526511171114684254898178222015960966465445494879647857375027527206960045976446825635684717014362417961667113804953751945613260545353583221414824049698075407405014851732459780077535805639201464099023459182859557244609463194339763026345128412477649226569259770757262410042647125733518122890661519663086193714399144066674435558315289057439475134567414195173551098168965543309091647250278464246847892631178839166729872759049200439333575063189921991359989917356628818529011242022484743978164168182917234676870044721501974771770388255684876328064582722181993289259392597207949889873844652367212397326369240026970727607790350372724266554447725298825593419763715338120439622179957279478880890805676401361637667685214543184337883560475227625639643075782804314893082575185553845123138634732528655886477874290815712888011881759821679929511070472123196681145120817753999844212167739144265223586095736726737148182514699897652881974078687890669930909216926203948824715605427792229453808976738894295530117537333764218621424867632679993344797527980688416956622046528729088094805694993206337798922412894875967462933138791856548702824286792021962577028576687220216578312059996987875163410743576283975518194592212936839497071459970823964437253883449153362922843589842510469920106946667075709002151302819329332095838934578920176320295908619849707403296264130944902286772424260334447359507311413185430959664808934359678120091871431162307403082361014200493487265185580420875074189911760445735947745429655754889415452014338643332076693435547403561803505264954173240927546011626714526740309155236466077211467644534185147765539907739918427483289125455921390142320144020460574270711582770544309122949487008042327294738714926284286957023450345302220906869867199161075617457916212902541109168843027666627034416564292077045719079511397760003918216043689724615783460122159645196466685695414954259429703843758247826768520987763955868884734887972925136625203647331336054100530206351788618004743309746205525052023267825769054293775333861259829050801055893275590546396403038872989892979670396731923115436504049883704225612065188808891278120477673425707341420644395065213564398180446588274634259426088795237333961498213143076083852504478660428579349509665879175588080590672419362690702155738432895755028532815639976027664417361524083727720173451625718477364343653382530451711400010513672024915191290148310267032609611275411231462786331379989462045874016804401664805862719462903793424080549362567774556132932525326680020384257520237919734553975603007636818330555943762872080297024037992844803983203202900530486888979639855810465785821255348900535959952674767147082754965742695447103289675419350899101869763103623828336788657669733676270233609044382264446292019206874139949638004979136497848445510881454080198325340486543233650860888583742202188865812622424936984504784067923258567943609060086623171738703929531091627241857645650124477909872990806297760460601818049217396939344749535918807345171708718554526819066717798155857292973334091319763122863802685800318105283272992346618117886086586418743886819488082672174913487378815446199559845044749412003267402527766014002926354628792213050718309803169898701028684371024397438712706104910543513949788624527435937765133168340178380864356132279954423125424104987659281381331963112874485115606177735194127715600626963154766003426756891125204969024978535687190095068243384981919871845940958679851225116137640709030807267207164512283142386472435305532311521901288881975628877475164901456567209965220585397078741709849424573265266795509874666033423483088287940871014344877914310634540190936796329051297186449646838413612723400270196887577537576067116101857013905784328122331985934739095557297552780665950231898668291031407502998066363277857722269055422586595506983563394277759764304611760785550197042895213572758324492432395986806208564428118518491319114526707352299587621529550674887195920039173332037419129659013632603775039902576085335784951148812446098076822322330159044001335257910110607357680531928033816766483237718572043165123993883237695064287019414953211709291638341029649763750974172508556640485581848800441160210873951348035428306414418274193822716005505121954326259152279956633522321212322505639367157702874082839259604148272579581434358436780794890745493953887763978715517758227692866458449305570759165032674528334511799789354358669616392516959096876007442888474814947561418739770952423283773454028937357603853424346716774005329688062026582502245008694520513775951177779449371825351735372314257174364897330062790590582695702127482856523762268506087452647876717723373879149247503675638399390255277401187740656189608527109843528853919995655016516421701657580136865409955389215886895270013261643141068124883261586448830231399391733348634730199925320244874139630674597563536284972796104824745228766049417146229206720233359646215012122839747869348129759339856802480183346062705714710928309301231437704666445020438136628141949323392883763870670882974773095121877485833997800549376223994628840087367654681339173086160907789034518412222374142333835082141130644321493216880585630001566562910873723316191907264841473541986092139866097880280226383523364158236605981093561694102088002595922209329777621411540286099207408554954281599375339808919695962329487811414811693631424128609079044490355289848786466034547704037277047700605327737430059338926833041143717981464653116254137220547863332869496644835997809683494564524963699250518725518486898784181811804342088290634093989518220221049154061330107514097178315763633742306198798968468297486274347837419660131444342164009809620016685105211473932802801082508783869629008271388948864442832351977318378711104996415488511338963895068198916408344910613837606433092224426687045959687346326039872182559465420860513129895318608054408735430511355567763962876860654046840333073835822486215551653437648902619951634389748524899670957111153785549139459327086585161653909657926201007720681559774728859946984020160519077744827960545285268451160842546647537317464663001544914224757767954495201445232129647206237313746297676148875327511691052837029262005301918526604928900350837892188092285988744454475326925648437138618781271999361013601483873164569854972058162285762556336820828318008396138569435804887168522452830846876381658683904212618367144490156695232984100972276792553616587672600295408955280876234920322856665075541923960155454970892019399788179809707901097148733865847465033712820790655086766882499677498910375413616986444500102680229406496098196338989966400244392113582948460248489759314088383469550049229386679241663962409557812631816199304453523607478170702258611224896474175371971184604019902267081480568304664916599422393747290732668274124069216649265238055609296321782626799568058423386053310311987460355346822001713439691571732653200528257682783271929781271930052010471616362320498852667105850211030570583884981036402071279289366411941374012948638265627049441113609191472802243642422132007912845813181560270424788686754998302829762301142061698854705215674670201174157584190842311677959720242683280154521995675099206486245124813708915408014531852813906961954751999881808268668857219665955104712646392669496558483132705091519551504640855229410937701367764647692309914846757977714877091437730963798476602930204090119822678562025466546393734058166195058789759076409075760808344871719644136411377675406542741739390249267165375362651584372328068751536012342236559307400884720171116440484362691538684219384435737763111473698417282739437053351924904617494376915827225846133581560333108655163377572864984257039707673519857857840352550495287852624813213952098133920645753541753507251450256216084058762884351476463318835351905315311855791291602807459770889101929227053241927027282012538573821357977043684510100409322299895734882614194379636986025987606174580311181913157109395487888810696739231453728200563893961055819418362274782845426217822601571363152627216591395563348248069699380983879979477769583144770392351129434541552260789716707620436566975331587116417259974727666431675690298309122779263389764767948444963096952839664362856461375403128022007506188582442552283187060006048018019301665978235780290075284423009047312419066229064858524563359194409144417211134439097895358338364688133611276460700180936511595126849017917833341292725146500628679645642299538425473454308941681517388612425262056320611387589109440925749332998041770098705839143295510388711564652788612947609231316734079098425853958126523187508130046898588674708522282296286520193637438114247356366805644739120798515160071527576845769230194717655404092818474006532847281401013831928518929815971873933916550134778634486434289122509119083921583868176145511526909855849424253819090181361348277593270917082881972555327824920840772730246548969052509364217158777758641407217999953712395391449398053928632462586536813293569175200184326535868453286729834613468864852340158860087356608560811443161281432443123104939554207616222802639576488053791487201196785252973900362243877260772160769308563469669194573078938617222305541180085987143860768105599838313213635910823078923575950730154852284551610169980233231158261683000659307979989962389928789449224469178263180679568378231162336274383501381675649934673982646528465611481748042949652422100028063523837500125661681750273599360293733012766466130196364770727282613428288279832663474963099283526199334526840198204936680033859394538471402488057673153127960208181529962227830869296504126355996269072028308950004722886292033819493324587425277692093144720675556040978320062719482398183093333260582049035180590839187881491360491009494257032983081583529813597669186085069019964719114482181306211020474954218998743257030123220757748284846355601472271368306573502605400435014124324378419324022546554015857614441010912210166465939731379054129807919114509910142480244728783750961355521256455196471268527059446602892905574902014125541027665116651137761865936862418789106097975755392786524947376831532858031601627194446101320053485778472794048938238977185182307866649917271840973426420618627936097431223707002954142750949486528841151075970763479421287427190522594202118446844001369905570703124745420677640666856857402945169703844300499485885596852981655198995198536214640521467112101047484335273359702254750338373937693146702001751889588407260052579928881178697850798877757502993535923006927888213552512017087691070648237512636263486905444370548935924521376575366758802765118817995366463270605032496851252513277970324460411310372137821025007530816691957211431552285522882823439939884254855087550156259705314424770906744214242507470728450756835363798877263420757985961403688183404574914663880109246053780160303689301045539121365889681145741040828034201692778372892992925615659715422029870821351609335544812570467122888227033648383255428999905365691945082442369483390631108124163894979511044558089370701084152482622401025083945131076162744743657122061072496829106864937804363337055669355645671051570480780175103044263597078279661368013044474731036879520395747203541394291959093520924361352973439054416578003349376403302124699146154511214675097505716360895774307539846376839184898976144911592842173586587742844501526845255121863433049728138167749335319895091127955497104828653621002782289231001015114014372660944428493041604734411387234880055055265875563969020325555531726307808424531353772241005907141132500533912809532858849104190848030146356516261235108489804525834950920842465504976082264176126112152099375492999498609777516689053989390747629098159556524889131199272839232785323127270682877242586172253397777496901401630214498479437646240086266132617980541342220575081707233717072756036369583064645747216383493718311613865895802842087123359816535919194849329807465014337780761815535007792542214295464002224628020563743354387505202532178480087010062057057880438984788363619733343951909976665983668726911738218007067293858694163851743962040425638976608603106419608930739651351485750848843454890190238506941712967977716324414247685956845779114900302441823159491827290809116303874540744107214969615298792185332617806278792424366911737566524119092594064756044004792837031742561244893189410255144215434647184625273879270371937244819253650947106554052428207687511033912221023767461320181740282075073250087770859155370419015000453852123058326514007052730100112640816738806249258745622369949024742096873407586260140471162065604550774511092795377831745439689590648891672035261168929754900335024474959053219594413652532712474508457033053532937749774093275305262171546314184051759160572241334302791245913185243128563466947219203259594019347085258627902785407782974625193745510358657604200571775141880423411824489630280797206596229117444214807015635275285107062599413092762414231211957844165121200805830370493196678333742401812341437439769241548532288216639161467287448473962274586606367468958690482729902121780284544682151207056059488427295260514872508812920464549859392439221302727478657972677775657594898624898140535493152499352985036023249782684421748286947707049076547461261706681295935783117704737075697867689347538219181239916888210353170621887485584347650642673871050348270744217826509169668797136457380752897518585149601683529574470760494301772198251672788689128260247471717088552096381789983039452696447203184832795030386768684857299962556934109172891510104334154022703637698497340880778532416961847265349193882770480770243336804290284845888349551308290771300533116284095084984909521148898431029940768604851420870491537857314166718819984959923332542834257283058485920211798523780089691500702397610338580443982681535185557986184771348871101994787282990783655644407387555756089420303266251611240662222061587426856090665205424379064717157411131111628301613410234317158436784168337765031782309163671924295441128896634423814479449169849380077119754908832693697423289143834190074627895723283279819344070882889353211714354294822369489348918908508470160717023383493292695041550643432896102157506232240462334058123858593929105657418279755705564613600274192655312254509614568535916321716832760851403883525513890784024113892871121756423109350486538061754926986326149107493255508629450838148902620189758166219380721629761321851847056408751374323307700497067014866143741673558097121524572185573477758300466272397861949305022929123046982833985729579474039684103523009272443443194470154671795774152462420029129080849813713710226579115245732510851682394563588113252974033188623060052085448883237675615063896163980397250431307245881607815774706464597902216958417768049891879645529898162174121646830156338785490809028545167981503409771745563194797279716107109323217515169077679628998738370870479421533709070611241288253107656077334863355595850042002196470185884096470489386743401339019008865897417464726886314261534434086545717648902687673241965603781144037744242141521763734357075045149786404680925780042678378020091324812599168101696195527229874069411102352268529939685397038231610374032206575331017082713890848937860633506813130703535367602383548302026014719462710849865835946961033094123958089185498955436009452905815629477554055566747914622529926883826128193013058083646419545755387924898300771188838237020352701867665802813327147073908585018893518081143130088772607547067699339151420854484637950381008937851803160609817279355224877500599489188799444207678314246769153610115127508023877176168426221113012856121222512583528437371968292113165475416343109491240609784456828988942889389740753235687230312651672184565280149597589540627300383284308372195684999328426552903407040414514695429739267880693247062824016603764276328377812448483911322823404753637525022733331125865005272829564723971242818746469939757693549919397125882484754672381599529189467561489932454948094797004219217273858935498635373851725495829429913056227125287905276753747181156301305008267769514261074399958202429586883754934095148632474378572539925283620525498901176293759218500034854636385442748574282512764948576702861769405551417800999595925765861764710614118009510936951106732701955399257861453944665957619415043160851797621771546756786635029250018056297950496871573642570030464747948492380117897531528490350873755358922943538012120105823050873535462587464945587859715126870187197878930329930106973741570437358538062492904704282972098128280045227609267363295212135871011969839261028540520728381033842039174958770455156367352851476726042627581321375375783617546387037465083663658392177917450692793801169471237428104146408400990805937485359490643708270926747390945308277338000789366836321562290010305064843017042682603624543712676801680257365232363751577807303172429544660344570512315591981982696970463677597696964930068480658194513020290412771435727913315958510205358183661736230449115244928001637089267716371721941708671571208209185197757518232982656203720244350340423602651779083752714092841314815718719622265272394644270284049458274630712707749376631771184997057341590757375336574114006171317910538589475157874422602788391470403793989721067836536302590388505339525269092203952763762951476039970261630673055674935786063265288792417681942411590688933913873114647140568862877546366964682668380659961050139992225778261823558894235767334007993290426929901040462358955033977040628106027538322076650927645880272692912895280754704149268867519973021546290003019202933180002504816040207900379721188872992356854931089928705697955035331519592170058722582470606954874553741218229163701739578629813619026013732562357109329225585942402837182749718551363934046557339663498435759156563602259300503428613173701157173149652082613817494360232049998363742715361549609665184308706815047899501075487063366671548799220936309618642621676076773370924295082999604232413170564694217427947999683356667501806369021135259608765306567159657826658023185900504803561056211621643947444484678381432504944875223256515850936155732940876724663893003299286430334702583023219369193529387797255463744121351488183680324803877003476410321285548096413913206689013229065039561613485362150602831320712171053048084897889942765974960371844834492462229991814756635068374091831734366945185444329293939794947460339136056774948296510148019292495537984838396233056215110397432484749276453051129190480302322930676063591425760457145533043203317405280586346419779796133073537692991261763247953923974730207487509033780873045284163612834653136277556954150564163526538514125413295168696481957850862139990607164155409864871028161849592518216051297173680151805561094696232191961105410894166117608339258355202120482186024099932292088357413761815426793226646317284851943390346669841538051989320904834599603828738570179227644041246197517172011455727913744352503000325656512445711732354472071182557640678937530023323026004307337179715092427793988741784383646865373936940278221206741628863426151953699982319993853658270150617180194127034289473447823584720415492102718169137162191149628150302010671760174201852562889959675203492031546558763835374541885236879547066041765480134950757872704281916870745452529017526330136601852688045795067846192918444594168773330184655646884910455449279902556677533964558468426531029518608930682737611348582411997790202858988998747841642757819744655783649548864736227468453690144609312655039037877079987739717254589969832521568863040635030078945013331297770604320101981800538639715063645408255290991264313037419493770179419595918139958847861221757958710612808531800821716867711249135908991801473854365517404177268163549074090213923443486613343175282853013721853196669325005436561190799018540883720824348313402506430135903753335718404757832907673456755868901200507497783697313010198864454991816674413787264928768606601095887263834179411852635758105225930439719815801953701374867419363830053852707750460262987662438851279765822476877194895144995541394546487039374858320369327187126247046253473043892831394870950576032131009228147255061831861444483079071170517261238976097832205389849416240825695712962281445400709268471534276278926116088053093183259432766337976812897043936917280036275054115380590943438654996616366360626315607909684629672863760792941136026613662370440652952434232153122815011499458227396911456965013924122745359619364336088479084212823884100709197321092064246714606814433833283894146452724432086921719475186988726189003985706974182029398846304531081950452662569493107396886633290165689645334083623983159327238677171924720705968271073652379707105726169165806000630804890016710328247764154895089652966341384830469349555375326848283640795947611296932746236940696607791676201261614759294024360708821687232462410850858786162139507094892076809024810371564808502286633882302065223386135834038399302202727807197745591386264065386972703394761849045055870414908408804968526320439180678900316229812866354438344468475258116075679064106550971905032681987538429783079399554810587308454443649521341674813750453777604652209016891619681063425307343288067504581677395661472525934832814890673823240705156421918912561921667695990324378174822817059248343893302621762309746246340628519263431382760267523150733930128132368225207267319147182869743711758917338800539688879910316573247217260707465659527893042307475240855059725778762781171385255457383498920481447822426025103350069722849363070120986995549543383429885118949353451962987607565468398716267981933933480141135529841532215707402277289282371991333493602320450843495371919440935916899754523622861088912995511576947611199748593799594104581722486659396581132999768751416018698594291531535808340323607821303171009153970900955927649126915608324862114124976365008495352748629121593285287163832530602844109521330890492244823983910190029854383212779148033776396130820539642975848317996558970823593750890249244657406931436041628828587655214218061977461257060256192410383426049691910534851800371183860986225477512770001077595796046740180761761813889530995771783381201908981860956349990566620449509204283502906830653590633222595070408566973606405794529110539124027946087683273454421390557286519366060195154051570114219361064618749135033612734762249535163801360805485657567533443978715339709572355291546398195225222644812845718468220863765182713773640482004846535294723101843318078964547287072573134760587780453991497117570342111069698013403537045608453602219772893351454336056064512988086289645718954767354955245417964003355962270440661518386070979755196352164469703169334617761910324327803538845939554883199641182703254304348695183253753158409433654353752505448537115317316908868871393561865524286624420074060230839407711752418157469870091545814328972992064280644938779977567413034512209077251313540943148135552723936794870975781943184935051971830808672387092172032352233895744828514295671618372307265991569759936827414757719126645072321885530007805842517821331392230201533725041696422269772150787314915455808495658654749973595423792541884417217616366128808699911036188055820975242559483641840176615562861213166367789667493518563514785084927365887094604848077633849719935870154743381648705019155507349911283297457856217212666869885207980941274624039490657715206313263032442600251005463450613493428242364032305074281306667082174213420756112416992516098895779276254686094028443843781023359679617857948512523031711756595616286461506263010003631422781053568073076713232349895906263696739999183386533449559881086774837174698287964414762876905640402671901117922299465814161655671352279719103613519933677353199711595804467669308115611642655889487420145415407152797046295393465954704911693177392154373518225181165824226796156298149161765375843124749832396174312239663415073860748582977607011218602301844110852861846705441984493309832560879088162828607793928980828659220774707373476071261381021652177158897793307596021062589739531622293218282305892881936978511048840869622899017389068036776331192040202813720558413427153826979905686180011301252380210535223627184464314781329634817764775619073511242145537009114267719723555297681629430180841904176027741862559290891326543898663399892211359544711704228509247490566561011357068599331272131747276140550399968853713688333690366989849689560199709270972665915344746888923060887465585186071574793173249457058611684912799425674804957531509049437094708584856416466025386767483551893506178930534401316746176630500915116659571997741875386028193908900815491604238475603268759322798796409200615608585632064685505026185230271726986588010879549232528004804860910178798044233871887966806217620302626501047034526015172493972846191533353310292961079316949731794614189410006741711117587510785317361837578274976996662138794336640082489383690041137647183149560989489532833855428599446192197364412986700621498475034587228649989205067128014011126882374149849026582874171059747098598868227339042856073489902323583965269910051802580633072273540655373459905664938431165868171896941114832501977662428392299122651970193585081006942927999851435675172949317715795327789357703835176790325754199259255750626476400139857569242074791797622616647139127730494483868041176332893245489513561919544951698398210824430644729169730910565180514514085619678047735436827790426266659220390696750901192838070984240079556768651838437137958004144114540908293144703868881996603716853079364664987638234996353826290000109785567249837706163151419765408820656074288061979460356198672577861744996569400178383030409151750962919301936588639988012046643789796792230840121035484854386597190161289805375673170399340314985066386604714092123585125134183021511606315647659690609581320118232664158145253132354204044880684795074314155250613533266219079029541376806795903685808024940529919514076542052294483499924020418372813069938079790539764256778091289952329164162772998177084694286503940600150892550150352770390005454830852588940821919901167964332818684743956579302951816467158807716587078613954118856862629938867510180844200940559757358585886614868869913794892891399990914046317022867833104414182108829561685671492420556020805030601654916876626938370174465508013253994442069947580524208873830377676417565781827386575978431496286846475786672383615304465057221290348145870832081564592272603551853092484909707430216800565847793424937200571789506862261300788231287766727233248798617431043106621730361454716711298125658075543751042065987530069693139974793982850426890708834627361479200797493857479301334174407665482459779104676629625529705049553324556163441681812951352716297110339005889605162917805062793580936788266179497170467372004350847255442137049998264076841898527215404455307258658441711088863944265673127193817528823720181540697164396575665146055061703044130033131806199788013710806643996924755374947773988116906337073928683798676963481645761357357315749879200058848133790491873386059980470550253270455663403821899687830552333256943377078664292246862753275625618226896047115522220928895998453108503096880611369113012019651661354632658996445289502868835408723802128095998586575327212024749047018489461082701280672746003935937564688445963362400464486502234771614373990357136544706974407645859234277452888541227209050695362100182601726380103613276063898229129098307423173480934025301198812032469965099221831070485141262010830688063951370949004901901963099113512676405436311833807751271287927282403188708307456898982113614504466763694310339739993486773901011633925706289252920494920275522003124381294758771264700326766915423282068964396204515823086995456941706366426814860607527340311211575205489049159465024319866147601158412362139828726647477439069192411048773772708842033179717577898025953791506729747625104099187010965783198834890045875457310219348674446707625646318232144495876377166884733258407463610349224402404117622256088193715481827258746935095187332519997621987665403834822982616025067493396929083522577233193275562004777915585553547150729021585432637520950578009572512859516784514536095470224111075973686113161418530605575281115681783607915496167298042874991235917243335133298229094630134736475040777675634818324440543438834979102479179871476892364310529275773093631235043704004745161191160778949056964376987432077464920928025219708455297960959416091785979681422101128555318078282371068396728789388008850123243314061751637766775368058194439327603475330430083804729689304846910008732558698231905812755720787225906708279003666548699230696435258896844497432535617128645843763091432225922272998994293565133553654329770726879273388368800288584242526814678882658114913362895199290274859286489106488089780846481847768117263157127978290953963539782378226278630294099999303202850310522175962273940188726797902179868729823253160066178801077198894849080759412712336470932991666859828970841612741107209286510042655830456528505376133510559387227458423994804810847264885946992363918836791030304290705647807218445541549373027432473942105870151919277885317739974586274235896041745735580037553305584808489768089188848788383513163171685376233064042560473624532294338558269082480547374007651711843523823753776632017634827056164322141756165190463942413228208370377149791144671822368985681114113397535062319762672388546729192929131996730433711683822553671448550013553013143349871674564624974110768947822852636568262765561367875266605918162347647725515862910953547574004629233886416716257564848356888785938252032414533964056505874465917296016117574310802054190666976153761255454009365721168816361801444357866580738410071301268106673325355670569130176388142125656177988384224469850103262468632426820143333878988855632597131018557796829401705811135833990770212043251453405511360966831112539894880131824431679270516418611881736344570135435861467753491996707865822904878404252665837682197218545193598296216024260996683707976051495452367182350167941459517784644911242275665007992907441690368141975350111216366203587267671797772253927696243716432282061027824467325201257195649607786298057813054736961392250815952266143851555561781626361771772724325397769823462987807896219524947706676369793904197000789117307273031600225719240057680852066889064607565592061100932511443442435864098508309326194645997822427960448866674120212659344406764164545139622363326131180548183728217287077661468392019392664003421010441852854062003972044878934877250310911255131001125304779007751232574243384537900677251562009463021932448604110056119708860991447328383360355308571677354163111244243102319541732023311951219638229903716713629407607028980445744863672438418852955159224366403676188003890545677402158210465729621629745956046418877836004863839245707131041868341743421925761970203534417192368159503094538101151175003846003515320158943390185197961313683901729448508951401426018882764073179691025064744449950862485571832176278558831366663332550589382544282262329305013524309932941325019098855915590071726386096468685640754216836969065692077235117490622205042537219379611215361974171282214956519844587418466644182706106855934008878114102243448523509116380236892611933498814327687829255801454082260786853728333560661085537983869360893964798332966180187892632386544444418581502287505147837911117086210953675116178030934000260338083344809650977484344433409376765664726239615236823980186772137240159122011958474104910402452750644460835420077311796842789397620223809950989810012610135770407456373663440228926663495383748177643911921807885210325625858958301249029404023892278549969339588191183851542926762435472114136261002694099293594255801545974477583490405391033803033745766923033406389212004621495559095054204302217695948960438370039106508072859694437976997135903097067404828197503841354088139813325271441176409964841792554503548120847011926797707772353636656353942458042943082791244316551578957484071773548118368396775150991612900962193643811756872347035929101613797588239657948253958962261707771826285190808876551889760018234065102904603334094760536054469865054462876889546229391050575522944378894553939722738303114421859909396470743902240744941402247355054328392127872704237828577722663272130846565232006226326594058593648112821117175962912491121044263771078776272800875755240750285430943723017565191657695726203583410282934316656598241232522917172462735070050486367074801805828280271189577808366087930882495359142701906634358579263752331636176184143036821820352618808357946875361382725815081992861389804530013981104300620818432223166387975589907325913048437442352178952050467594977309793767677176779998386327024232228392983012029896321449198371482137584193992599168173286513988961670522310414452510712777950910656176438977076149207545834440182045355830114057022623863481520864213696446945339204591071895084116771172203338532221350414741648246882215747010505304319342822553331753266972945452569493608670037635269143528986478792234971343078562599871753064683497017132232380936708410392837029119076604305954454872120044946626600660334945526631070701670126513467098197613181819144377542191086531481690426377520723198974102750916283958381812003809588766132734061118690086934032504128658213548093737795069668026541092935314697314011210122487903483084788720892778290304727144229312612624690520836544942684089505653940755307374375458280725807512159280658569345651483731408772750231287176168233631235925994988121377110951408650765907746295220671562706040960310934798921615635651464053254619665457917584642377637213194459023126238586880541943388714026753743763804936247613541391760486460524835484152754735579637627452943721313568332242114923332501068680924900863809250644583499458791127834131990097185048242276644996187764981708870759085976434936734069839913904750831595766866632486548934438353597759839433236347635186286700410680808249910812479033042074016122124076541944890138076738177915678823498774452083389569241115525076574822587958710388987275683032946791345195818516322771549294701210919851450302156758902146799795503588085571496442024320997036986973974755352164638088931848312288461984356284298368934646198803064287889131066742665104948718523347618063237293303336155176342068599273969985347018243295087130098294112851069650707882885181090465992808159225002504685821786602777076823911732600945406026143655992399821749335596613464454810039972683732375347296625693503376055247054143873992328466272539413148990513884996755291708017974779640183372698910220455425511536012665251427932785605379699760553778293016763849571995378577106549418997468192207591212768710183595571145845640411967379943127206967855889792250887173985897837880820170514622679786624842224096279835610495304319342378433437237752961001373725579892188169370719916297985630969527070141913400823835152085167004161336635352382422155967012045076454345536214429676486925153457316716776670484612468492757764626603945685467375997146387977676392099237713084235214091515661024592692673965610906337629554662058276630678710892017164325364002179128766500337775906445948029819193934441561371950241789232792506699832842320612359419981860537386103192205275683151748864165534825653545290114687725103235011949399988626984797969015367645376916402670346438844313254699470035536280396968853083194823611191913816550874045708776967766948202112884724644651911673354268212446462457852744654665936934477361628855153126232480755459080128660063633488318976364786555347154488813771290979349730208636909143229657864968685406066630418591770498480489742857312572006167421434980171909029334529999895249594216837810122518567175295927354890551712587140894193085938018678264254609846375737312280368422262405041208113428633632263277769803058896991953097995356491922238773983147252071631999366461129819903698289355517202384392366286036483969099811259091094381032674453456564192100987289482118574549286406555075575039526357604464636598717176468399204147282657202256400522338189546375925573827939508034204382094974501729278123212798777998215640960918056658869205026371926471600889001154909525118012982917197087910758744750543649032482021504554678475679644067824771573208679339043410543343307139407475543007837806150149764681152627415847580522426644924986450518549891011852510964781189667357206415859014469632072949318961348505284792506754433008597657814248790952890515277587942941373189882663214863791887961676286052815032555264621811894366717057307765929894861218475406026801526851089330047015021439478511179074850639514806789858140987798531134398556168757391855199268293744742012545362607726953358649053276815106449535008064500228921858213643686488368559973121436240874909333783792632871741991343026467371536034799044298417437593938848353587205771935906342350778709074431372655160399517196049819865082161180799456977990465040003168129191210658985648180639334873266177636622968466368116710750235856194451568614511054548185072174929363404865175346568110752208138027482805777897814123568534345383769049424732518682729206718627634905073567415801218999669853880196756693833836448002329697968275363120663744032113970792665461108694080026072732200764679958351829426073539454395944141517361809519188897605681495218980491435542910362178553188445446551824604241796328169209836481415334525300255899507218454340341157630751854083743568131726020985197199631881912782160759209766349866208042756320279178007991714994061977238838580378329371863063213463810027132775760450998529334982145629568192251589999321368483581089270207265833900337935584060554953620889135419605485539591057044621492683776043889196338956477228239419645586100464510130094323616862915010667108193892339417879801887724620805449664541117242158764103437159235246627478891194430838058571641513166643590615041654104529982234189071484257603314218966403252927915442637015840352276441915813566935932917508190507207164740401511987191570777754339751424317265914757881098320209089657628370987093045736040721593444187971989053951538376049137104224324878803680195573296540090980137373267958126058160479598962981175600767840617364898059830129181905498150076543432597104071045402270042692612287235970613790724816743076388199242121369764563487597881964038412030375580949240371309311429791955852305383768370275043040028420178350794195320842035030775798789944031543243542404212288883918398742709310259820316601831027647913987809601427013861483667494163714280102412353159541681277239320883797734981964390323730170182331793211441701764050516694694110052144043052137398806391568883922892854660186090770732589355036943103557585941260198614695283712701185918242017342701703510324248384816415314828290480737824977012041132311729611382555594996699642771883085931574771080042202260387200606556845750038162157965951587784008953329507565667503210300020494108356450260579539682737607226495596148290690086686785548897795790776325891372249255895274130038124469176235118019194162557485227150854642627810803354739661273028959851406318958321409457127733913607168746575011810872895388383911500395628841823118859369748693409276822236637548997237929292877552869611521997369694682344769499200985961646220919210614756275481147611118499319389286615956490498293359996052597629356225080732711453185962557346202908561818386635941445192400760962744555223887504074942984743189361725832360009757390724374071152523308110390274198718820474224498323034865471159990477484169912478397081505042169437595263781084579172298601928334768525673878104336026750811132364188956793683752879375083037755788415953209831462249398427427866617509651603737629889472963269317843939116562231661497838673041148930679867621080808639695305148555623695654680215666333754149980381769729554040105483166354736523525014482464291611846535222920057763431925490173726626011967018711500935708062586942213724771494080523306232977045574060035592495790588071839010789917055528630655293518114377333442689162825509967774447222424485202900848049894581071626577927411746724265445309580352212248541357764502205385547645622729635653191235597339692386212458492303108904384723864964685871872868063105849063015434116660844689223098572952215738072145407374392082014692589288538333929614369192611129851864024080112150819274460770760184576534131165671105399079596836696474759985105953381279667520407922742616204669391794350129184548825249142146418652531215449043107432304648134651140182161622240326719908166952105609377954203208446147240971325317149466214721512733831777616839887194418365919144690184734460974225022461081529067253292734980389540765230125181784596191893365721411337993508145805105649022935790433452665476540150912488878401323789828703020995590716909195531063885334138116573358965543699207000095114066213969314749494394914948038404947220988842532052098509372672231868588725209679056660756761905105355053975884417170261682706687043171918832594900679305998906482279617577737913966221087002894742480990228449446901187933021747834027460736690671429795063395070378696939201949057018598132814487974214854768999334487820407712678440690597351338769374378036284832459093748109988456343316585027550966749050817393488440664631390877779149309145744522456177244702583846000553689299140312315876078886709877904669853083777489275137852535115707962247502229331638538132144794323294825391621889847312989721729774025273362059879446592597363489341290822042668804360772237671186102549977929281197323948896609005145220648265160195211263182248384433122373595764649793997404234733994563764062815783886728884065353005063768496331802401941073527043441165898712737936223180384342389320726654890081457802686546278843822454748505436159871398446556290257843554912245897551677527365005332948729262912700999885630555306790575522821744615465856890418116975403513375163579618425853183192178125194533142522880859296228373962412634225961547583392040005813914220480112136576079897830684440036281495408910265952399389364722364322816520858386990840539227715410757235202948229955925536785846956205562065362498386675175237903944149910094141867912399894203981598557427623796094909461102133204231439250585220041460857491602471950608197187051167241356690366701038012324826474403214912844528562595036175000969730268475433148451133999009039554370766343211942302032823066162741716345920995071710953408635795512800257931181023601733718918442530515733689668803042121931763478220042790276399774825668428169789874993574880149267775518426501595842984438307453917565559209996511178248253741493231612937836936851170663435114792350993144310895445384640671645784001694742175877914286373406876560416883229016614120360104238580867416105581946335640627651763214505700806529213331365301733555906575842918182358603661147543994636421375398436931157070451857223978080632180293973981714524444384026368799437640768951781407529292132481479605814602567456289294754190834540552155636866348371010405221563872480548927035372335977167799457372887586288850452425848897649867869780593000648382832099528465081013132833365632682220241256165649347508420023859239648800147541569737979444896758053539561218442968392581878150115820360729136867000934281818396195443324684851731365322837912112668987147328931616539165309523138081107395094811936674891670806732497313347722269243735188679015614594308866834780488405090410723436661626675342783907933183239685794907423606087248510000824131220955552464336445154073800690563279332594866275876472522587002680770028391252407920105150817454028397537112214458141243401033424412732063247887002025298940235625370549851685692450423434634417689307939694267044871642042705579225541482595341453037871681556432200312923810266829778992933650160065146528692668291840042848722306804145162803076576991843996308960670759509836814917641856733041830286172182875835658050525787048772212568945171044535455521816877603163238559742775594634367886128989208831558491353615521618401943700824911653548613178120581466756700198161596785753882148996512298067958932153329474779893993121217578506616239413160466105762353223593822624558953120826635274836404252642691690164281146654662362011675624033571543614898034434625888156193741702430958044223028589955724160013840843916450075054235221897939228226023514065391833427444564018354551110341884603180475213639367622341285238898397711252249588094182730165794303778712314189920293017320763944837859987033737381052790436646362904691952536075282541670895521676722219239018920485548001044759744735569648213313727651141107533446085301844962621161804695218500121168948852280379483955542063166991799645101222365370540879763967390044224040584521511771677449026227285630292463685859083766828123752244775596937872695381492443513393078171691646863458472941841838143732366591971725802577320268892161720730237475144308228408763842469065467073053333217594012919362578335066970472033479094076758687134588972176784888689335294896976241395650045266529144192642968731141664066536134225828135361078136972920257107436631111510562784720926263794117350766542440298909568334088424304686480834468808358079475456576816068642802554332039336508001471172904962820689493354150766342942806823010073788051927051265610802471951100098907624315579918738659882820786948411350636331200227610083378169275439267151233143179242017705294691990115559994080097670192777888525519963509844474840769850062307757661102976649633065770506536516639617608315557568262658073305998683865342288728019501307094386825761352764646215611675016885159908956603445616750107987649092494909206603652601025081401367377779400514004967057325236987839458432738823278825806334648707185223245632939543762041236235130607347307419049727901972462078565681735761173663805825939655419149332144084696907147369867327026234740182635581621661675113815347787652580008348250584161095120978869172501409791601247440917018503032958610198014047922500414067766681274873410978289046463079759988734353735223250733330611576183656399812949917743434988833629698290805918290310542569014895664996398696284229028182916760066271282687595902131080929012887795406073636981534256499093672001262045277339385210614620006012903176249844253111656835834048639583731761573558862721930428781648487792927131466856248814076143605445913368308417384145545169654039905540072529780454319175996447166965349748838670566461518205901308831472895688778070531790868470098811540664699700721797583605621623742349470794587428508841868659761419092896560103715044827515729881894673965216494785464245548330690676060256963047618903220477327434505072159375209562288144208814260781148154893200229045598102200767381653165886105890463216694490163235824965022189941000173309957074773820443934222320476917380851027934297911459564406817266921106286155542466180834668965618137232960935811870004214557959782534501818834423128156587923216635059444190447035293972533080480474148955282626456937339946050469544509098187742719218080592543108000787622026364657589162327512847705524129285811231824005414708620471219340051515962731627111858870452126956582244368368060659446397325077600804022454424345325696427516175582099937087913658460632110622304525401814476651860153706495474377635787829397822441976427633991506230076880610258443347345485143734156184772486450037144543819654527027156026508462230808098467089947146364381576584075721697798965008144285738748294918460704417603761739325278972675603571667266737720885281754258597629522203267711951811868077403969954495530514400112086625614888263335555047408167534625429205433508927782021136347382584604718841815895126649478303998760906850479200299976903496516390589735383477080946635264207915579187364718969022356760912211182328993133376487947157296628119888332507671529487229944612626042754114502868588106464552879875277012510099046107628160970964118120607078886358124055237704415082189055056439210094924501290110617108388548961714847619748686170195158558943137036342537466292277027340938549588379124562478664945688369103441555575909117313742289613256246520289577526216389708341293405250120885252598833324021119081816199789493709790580912629377981615586924568795489294475550192244576693752489402193690314678975751779243341204783784181976699068821275196336704820570975350879879268453917200804277010859242624958960697424832281044413782835106025140379972060850477363350769625075696209995076909078926383779793511233179391612919730218453338294538474503578118362085350687773372710437874351434340609914649004210529313889641063078085220912990660044045878588221370497736646100165499311885927941706336319562476702729753223670291390240846971762994455603704583493308116984099360795405856403126178677277950163856320558161847125859129983710683829332610148525094271940339607586715699966831499294768180405227185376782662002911403376768443189743559019738044508734224767629419491171268923974814608279975203827303289472922600760398522999599591128226816838224139741899306488636626463804109448168160979018497499875961822665414768653715316581466716257323289471514525163593230941828285147351394783121030043330594334804666041558179027098672163658187268791535271607175704797652098438705523805012286988525793343116311885798615004004040625854266433331977678585611139815911460093136328850392579687010974719611412476798257683536658351023612822412455813969199774865037620337449977348231963839520358937570591410043924030615523759841028418432380654119700429435001493996747363179418035091562932676225903514422459590865459521380517780790334334430201335957876566835427688257446419213483418076375035697913398887510598391463234806067751393723791171006619918715453824251606608840934007015633732038827535691997178407265925559436729082708494421257578426104313843481613709024576506043414564186584846827953074257913733432300560726357737899118038639491424547028921648003944186865227187073377196236703274393301777402334278777936680085975978620838714819774095266645061926731185861693008878994048125862111469418197297392546297722534584349781752978809836769815345570863571717219357381677302269239403759703723073095109206291188123890051576290977206950102426641202498069935060931434487291614993210340344393080247694264569740850417810650034995766113092775514224186581813110747363520366491146698450988236055324971010508613651926934562788697630185511224930894703447142449618305586395607373914514832042568055058072784434660884697469143622733890184121228107526106889287861439794725003257731719939162359043431343648506815674366476081437994945899377293019492920967451944640424658356725949004166683252060676744356033348925296021150983690746384217150551548075030952937620244748049272859210289138259302515744875274558146262555653413565411101818242497492057346253130891534765737044395097754496747386917117859166713124110495766063484586677256156834470622332728258389378321923213156383916965620702590084668936213212395739453608605519344214625034529473433322384538045878758767352181334131112859848126828681519244647383119708328792045202387763929142703729550596231967703072822883782902424296243963847863144990364760521675842177279646525771512370498607525466463415393408480958932509904918241925880982965022707937271900749019131616947775001749281145398303673547315319563059476944678185015921807406041825777477619680747539720614262205173017618017688207104150341166409475445341279534502387924321714304753868400846749622501261857283521729995255748495335945054126155408154986529974601010310118500617845527301676200542588985237958213253270608765959060848927073286507454414897458469957565855491061417951680248520990947024764068645152106560147444120422759108599185080463869519688442921431556110780274099370908084511192191312336196096809516635711251498385021336368775156186343881381132977762014857681161682700655926891853006998140478093727796108249105144390244158201965082265669874001852336410340910812059807290754614363900759923148541883945210107912568637490450242288964731031730836814831990903879270160852959970152931755946239562542928834983303428293177906985165367085022970371423613464879884796534146877524928833907625975110895625025693083932552597343633959573198893052345740881090985047794326509570220066282756775217523239258513955669689550364150486260226986102323471949382681947410576231033208325540965871398349352706366420710536859369416543766484606348238698677651358235525923754660031260094359573563196404686485875286546997417656544636085087035703500257299309870302205311866173430457664292942524761173437358546647215617040908892185074979599224766026391559632364504132081187199272899420915200071085302171181503224989533737481610429878848535196580431148522289500283907417952643083659747134960655966855458269560853580019429999669283376027676507129904217999436116603121282217403244088551906850285062227610012782626905278603065202433019708122979718793745061707954006763147778637934988946904595080740783564107309652596465960002389527149266997640628078960251551880633074221825374542991260335865781810500165046875394288244095715441241008566900758221653701799013415298197656079745536034017509705981463194832499305799850513268958942732728957036434642521796804419528858421822140401110469390344495796969112011653302999179196820916908228064159881064871283951385369541913212535376047865566709910702201074169562008827876274013572526199709043147390221959435483419684557866776330143473675672033716801499239479781075696860289817256375713248466892294440933573887771680614553104781541336282800117248721686619308063529577079460821340652851653365707633720659539657033921489059737172487224428174271370515959262321719044933977877177775784478870127754963912048894682204847967747464208236038473023973146230631429518512338723634638840078466730479095789260008199069382034631578136869509771355685085556428390830177772296652621901267599491955897936166216429938141894599240091437559474478502505783140955041173185852595954861008063167011385648210941457032746974978723408060846516207733117909029894802738584137486901815761431770460624595812776792645994919926236106413395569117292948930646712434002463961111429524634853564744436593618196704039922895374059473889249178681549905540961272943919154294753881768616549858451394518601846386988500551041968006631421340097099545758129891407518598109282895052019929036203660495119931104618301798210294053999722670739876510227925271335871595893432469700725710405609338005895791363220112409200898100339060030423528740465269759292929284256740054913685369664969075613552754842406740901744693306410046548638318960035491692376270204792845446328981672075507329344486631208650230887810767882068351794446525825193338911656736441008709073435101009987221314288627811070632227798659894988615188594838749398856918715376186152457430027447489451068310596346938125486714943434362368413965356699932052107646468070186836861637136193206368169729360502104366812360342719957889162194415675552990761894169891167624259383139457225518687732204443734498767113414066025442790800979402346935694649990581464876754259287188391365460826735053845735068445520108762902083460576939113720422098764706771405367924995293893058396890051519524955974170340647176478840877931648935216714214262080643987795331647313210654489254243454145126818393540253067824093693220968128865687465158291116216330600794964312491632417216827662045957964318682241537789356364406674060109674445986136084246393615095366205191794734594607704820376063279790431757851910745566832044226680787783414962636680613716267329370889181213099741316718393393504805321857398405595450337867190740391969802243691163186765929908212188322694347970789830130682018129586585560713422050310374219951945034998187621935668027345042963305053273880353372854230198703100172571252386199302181363357522287182644444008258424574172667394958869184871511883419324017701381310546458900357402310248837933335562655444749485522298014660573221112643051363065340104399933882031966390995797175797131989428485383916984327140449852632622001051159744101898100788759307668558375971198302433564478026853148008273675062147541722359194397890064728212104162578321649747200817423738129866953826075460375921575703400337192107502043984674115771897817979696201051250205174196392149711065200116223431578895068373219214921207018611517214908608333031796456600986727371166136832343103457193918706350897595607168785795309017085655462272611358308945135956658443198530554128513963813168839558634151805410483452939932526373506483611623368293530863102220834088441098266430221054571025829010251100845118372505423167948505587861994550956286844322605021176804916003402689270870833886779163209792964466774674482582151533203637283417474555768367052173569381570719839154574367570230441879214169246316110190392939175011227584608494515046534065098410943371615274681058975215021755285478380168394267227064949582504408163804739627577704465028925277385305937409302467902086011704912541956777511880624635656372825536655171445972186928751460909398057091022291152113704239582018020485662337580345830380648980686335603321406713686987856047352711736493697287012512581641062423467442665330083010590064015126572485321264141661231754581426905645133506521788431859441418187705216722499269035790028928177946955638251086956974294971742846125227512495885718777705532292840449643030201997687484846791071213447895365656626518294193659299131645940033892942932105408814953320610714301610974092525304862189775361850523474152181774352306192843366824175829084834144364569469455436324229182874413935917997538006102731571659917259872544464749285087845608840984304231848664307918515734390224501667737106433869183396794385088409013417157317253249597697746743850297395556638411507538988649262305984685581843890870970909236253854262869980041289625725168574538906271582838511028789305325057601462464904809735852138156425754888092979275447034990778423354049033578940996789887121084716089894238075352482484671929453567861188262464877246522734523712397318555266374337320823862731693126963511923649734290313347139140339963389049495773282533905057299324948719008018604426912722200439207707121559068573785063217390956244073706220760799370222848243307437051762664180353173213492543706002477430992149408756291770265032258341996771496162206919454425513943995533089016335747444387007128115341522165542950755080289525649123767819199105448895838356388622539778760201076816305685897223427138431409932632781825287471126669770228100732869229019637983759941956201040117695433048951006362796484238763820453878503748842990640000566466661497921597774007672770175441198748813650581538274091239861244369601377703466600167997886461801187209548819984119822671042825433524610503629843492459588248610248561427301596201264038686074683481443920573993901559928741239768727004365043303547640742714248623278813686765370958404572285119736720622274483020143374162154850794660047204693279656706517278341448977804530251962799505279925818656856111087067337332076113947134995999632931103582906842570926674769798221381602656727562192243137886080553337485086647715397075975709005198026780682015369914729208755134826306059722585852419370899394762049499335748042906513511488584939691301432149275583804670873700868508290476141055046335708744256319360330003170050934011097480743213391931236264358532915952651495221164737972995894908215616843750308320417217691256790629137604437326222534735124875503070561745339549844403634961689864002342218357484520616612977642363772980392077820965510925579015673728073224584371789578802354224676927335401551250121636683467181390850813133086011666655544811734260196925113609173612306158775934685693944988734012180466427673190102644429940007555963098444935134968807852692663045834223649245196443134773685437003469905900168832268360676996977130287007325503885919019354687118779055751125091397119392251624161700754523681001697900134128831352778851243657150615173436144259509383683701210536781845727205783601158933514950448517294230255549224609133441432158997553371500858157757593691840209607512680718639137633210895381515880639428953725350157422464591152227589333065991001389324918584886139332117972520848922041694997701096902156629724998030903233148330871041921663634690301413406647542118695922376202812118511540740634350610498114109806578500931073729861843076871115612534960647398828974020873024101937738040653912853995928754115972523787990252032305440811859094818687179842561776930186994877016776816318178139425547793397205054652593567711732265371464890427313251250181018000395455715092327396825023164156748089009943444099947744776216745958601309613083522339240681685071610004093070624587296341903732680337062661154314536502258598331563594850343710413380472873159093674772709581444473339301817081569887588316164668551276176009236699616941972133651327130252877266831098711556671979437656765478265407574725523305803834735011579834472294452001047226699209470559584794646209180317232707827863057758134373219109735324123148199941158698135125298820299327003462751041096229373550934872088142598449261571116359299463117216214406534605492251125351193278359217995522147594551783768786207013740455154326354445688022461570986295537642709310658483173240713419448371242442918190207030635746644434407527583012815632436918923790144492371562099441578384248480462843709949772434495998881196831675100510431166136747259092796166268098642120041634486613701196159343142777646749386613171887756570073650495599689010794843858086072195556548165442445970631201439324659471549809671902224902384638505656742057500636332393457815550877052838450366470064836960333619532225045210998934059065440250320990390314371501204825082242484201946906998469548375213646838575930667070534886680516177801927560561418761010697388415428746014138806562840966937594308557178418681726676368561877887755494933697655213062607579428885670020851699719266288509851294492573453575709942656818704028937828591244032092851293598960428837415554079545213906626643936344530030213827167218511180599300635822301043893251819700128179428852505748539339078222979842394541462224910446418268964268296814328266073679577434725324881828390988024020457870803385902861959558743676734008389868483332912839391675324703212907320443124208139692405104090537391854789513247000453432244318343334980424638656598981680531224184626730599998506898237629680695605880616065338652872958071769165764401863458243381251694085384360407570529054112794641398730667563184047291228809316699401084762383016975081390003796988780419807943860112738900399599423990352133718007378703999867596725858209395359743433224301347949066728098417743563040286665604632189469387436978119864553695731529712493257064777937107186809247797581672108327392837843269780495406933584227981351845236022421370043954662107497556707635952773914168688049763242532449825871796733345928879214851949331817600336750608044426855457109389612818231037959108451516103418439519059060898925448399720020575528317325102286928679672064167304105699348585363141397803327489629248548887419658291986288143296372642816205638880951091451944138299891824461873192772119695817941951636469442607332789006639590310666085363565408342640798059295877746216833561396815094627383885733325297173818906112505461357197401000100133412069186750666762932426035548897776385657982394619974247453029774283779764147517242305389363590891511442504775526593552496332055472472165305294631616035539919929313645003115098194396022997891670532214610829027675439140532828409709707329043329177310337950323601862860452290146864781067377322076557237446119649001226912682672643687688230826613142720692916017250329292366904836139709813321947593734901816142064384702418155297169775622053285618169819620820327120147896610126036592155866750487888682239021031335827134582205644897492931310654134524769830622432874057907269783132489953144395498611186261292802331388969472684767304860471296931440170748044829914489524411991827652807099966266946709825958458184143386853687260444927014721909694070717485666419616936485493143992199033919318481473325356716448006345065678289114845604632728401457749126114182814443615666277437220967173048992616718511479560101169731798509774312761093228641060665964598151117849927028930886185593409444715465290943617841940731071279792651549857258772908823106620571994790826297165859947169468540840740329720053828002659042174849045025395885595754931670306033348310364432250229286332864817422965326046783382973697893673444761195873615856595404877905406896843118876758335120508424279367688739926898141857564077092432212419100935106086308269299645867906500679977457452483210568341658075514328406767178984268822000904913710674154719316917427869693860063266584573881594177414708962942553540642569374488073079162806833821352445711121071124589323919898053223825315161979815945572335752136018011575989849570580111710417679734086575080038250296879358918060847046326268212244122593776178976696280700977944889752673601057699316081146655458066483667930341675372422476815617328669063680029658079039458942000679808254113532157318886717603917773097484890631160257773109794896552912596186819315573402874424308645767227519641833598568536037551383368705955156800630600411869660892789576279570885911966284066094729376243191406503173962139952771301556001772042247757748945875495511618782436922770362941118192235419309198314008133900374082631683217688541225813245936656647346117503854273639462635318748232186593147192063292657834437611557794828635635576244537729189233260486792853292581347750508956853876594820121768185079950005820046602159613707404966369098173871900309783042707077703186476592495231838945340174913599707063513638502639881618418898222591947079163057235832673913107392390191362403548256161093627016900925642417221449086402522632326174750695517868264575734581662389368376695971994483624063322821809876886614995160170758761122747439365037635173585741508216412745753943495395083893640880658433763136454724600413011896370840169487826071563667678631500893629532939864494988006660961753470354208747726440424228448166247278838309635820836874375481904584264522422022432248988100416552804789475414092811328546581765602201876388698987361745590242444483275864712912601615412878795526129902752283334789047553147635425066429260505100755755483406783792951698139005577824881726456103886674496201917629206330953919043331308374979480335881536775766604128291957398610222197760502399090255121538005495029056606170059331318806430080101573676539914177510629818491565472535303302391726976799793846383043615819318057077601847678188291808908761604183591454989071756835946691242429417723042777603454405633220990635260408917702303265499416601981800841599532448073378217062079540201623585323485187900874693216737986046084043447125670828313779299181263697340310048172682195503831408769148260179391011801474003024080204745993188694841433933883098051911902591145276501866047063231289415468524344760520601928759694440658587422805996793571657454989349613559371449139012232376765711212211709630971924272091983849882870069674081773723764589939255136058212790405456482009076053011034022539178102038878471568356501971382342445660506711872796731542548957387563881052278121490686957086275213101343622666265219959356416747509767235662566841149338943305710238349927860623318935039541858885404113116634091898580295151691036534564205143181953783707202149753870414639185926966830904806618715811590241818573341279906330264926739251044428761959129246790727592867718405381333021147182528744746386044080816321999126527300533953424899127571206847583573928082005884694219665414694357147976281803679967458724260959949586446613830974474804426096123428559547346163687702029778351323726947911873612743483841611063901482589919187558495047559648822987917364098511947145483812396485241183392810908966284457126675196787753581357543378504602989248038625960494951892630731736243902549877430096495050356969095061458782116013818582837497882274063072599878432182490965863148641053722326600270032251826991854711286306421791479539396561873765830726533192130290679860074480269057125375103826773045984948921721905419515189260933442153196433505454965453325043054210995587140775377484701678937109715751449422267125631779004056114546184612925652483832752012134206024532165396147266080187572592848504031204977170362517206344192056857554046343009492317942625911628943497557769386323769369284665902507433481011991404804495400306604125282486132127687390144354780569051232389360781713310758880035165062278036155948138093079118427908489950182160492748419567758902094800405663428556556334232175539059562641375586430645421567924666475487395433062749613509103364200567161751939423463588771272900781659812425446353221397776393789281069677045273612100646445258961079583769254175955423160059183556673515983900621204463982807682805688956027428732972793818119906999169430417459164167490926421816124235990039303906675814076629549303256216099520469884218057052053866663078109409775877761885573148340314521918110535184514925751837713049583960849351795471169605316154986830572209301160314451487399268934115339539860592952223964246087802892385293176920176747147460252479752699703267698921031141102352531185563399963982480556645159591469537127788997608326761250575859081661535207363408403331589182216923376007362234712708133565098808265446047047793163670145397828461388004084195490006075386366761154511776530950991350561906435748280643868196170474730304182835485864720315412142640534455038873980607333968655055326078839780695163223653229308318777904127753410545059761333932234540830981862532401074957840942785310351816328368981354034967772793708120659095682275759274785685045871140483785245558444342226721981774626662338960457175704034942562409162714330001895839876902335957372596508767477390936534685797611698964575115137151171308740950993261060507547855516806185126633413565706560613731570087888084536910363750487063309867115047738459246808263221375348427497663696650214893818290274164646027197661061598173972003736636467524145536964595183023266009028383298915405387594288908908812972801371681224329482513426086384289253456681143347082824136594125547322813081344156965732421939761842630850319176471866312343272820817999747053723773811530477999687415235315189125132200604851766555280759530075586483326224268761627732474744026850651185553185108569717204434446854547873974111075538924426370006317918903298607447991994928993397866980249579114061407219207435379854519186107204006725509712094031849725791392489056548479070311845810208221525213936450604234807347130089484789679933850425109927251215570671876761243680818607218139781025845811390395638615328828722777377340658431875893128250037977646955075442372452467171705381640886536268848869319037225643977004532776936682178064310960500253736168757309800644750917248886459870400227202413440179117078152374639976698452794148955046460033464684159321218453386824446235457023272206862390974399253788480270058455458880577285947901672122965226276317973002241960557817096065383300511850577337345117207022128161879096057349292608388688021916518461539931776346069212364384005937808183872799995795405223776655899209378304133276736934473514512029234696222098694032750335552036579801088277883918354382196748727623042588921867209420580740420528923814953273488606507114316930919104817848814868324153719207543843787532336774458261251104648165144475913697733435115691810010666594604879975780622328120095737351211297638562545635435914894530385562974215851635686066908151103854367204125908577349377136393102167961672625675086260258798942893699903875776818354092241538479948643895483387044458245405708724151412004882186213488048634181202649761404040875398123993885913009426849261072784932830907738679755091707799873116346829774745917989284385047594401601595654579325529688581166347984974373245873112305900203268171205179974701812921379382161978391498657511576095206928860243286519427646364596469108760818067050133229796430161267714792664594301926104798165539045281494630336421387820521035458699446029928828561187133954026785311510389643005125405797767822731864849836312497383593478633751889956910588495436871103082877712733311619631825094364884391709863780586155713411132805401231234571495835808222219875402910925857575387181748268300142661031134188189078308632280702560377649885541432453247065733761644915993538881792638149575599916717153421565484502986344177846829787177584865305075408930499979987492805661147779043215877500355208419012828973562409615226891830975270117748777006992042360581077208755220191198434920759759484288099028607449789794398650773583175806472258862508684987466379434264092991929844598527258906242081637836778614920812989156112137762706302928758397130081108101987278721002056931263321004949368377568432495763903221559947367777214768457046468805065487648445836379767306381102890274773086324882218850871958500204576994084998035276731990986191164925817959450204957769940806507652301865824244535908476611970841381721716724897786140351045631274130011057546141646777360373463025044271774428545189519312761578597848510272355065828905645932982946640606917647565303795778268259817864209649479521007501645815945584290923700636477365460017800318520499425963618514577709915082406403420197655902893420456399757433608331259554720209952412337639118037375808963805885664363145660171403248380276707344596952033724518805741929582501923670031071436905838305336230108717006810325813039083538469205339516929660941278545284174393732565787995568344537870863700926622593860049543570342576630505564328042907159158762565271447860030370983005722910798404729425909985606113478668415672594358577740563449171315490163892054356562292706938022058821543313647671633349825272155766200431097539726079752069792411666298998256989602677586845811692283026828425280544375123947080654128143849235967914504523861694026641807671965523307010309583743471490896067667581619813841413674856872139498017338604056152772957849931281280896393979960918112474218877024739883912527351753079128055394605756909751128744784007688742389342895580164427322114338879135421500696103065059227359597785631405736063322840085555016877328431805973220567930164238901014348821897083388277250292838102438708710806648159950109713936957102476095563971982158779790814670625033140893201188112610296719676648704041775667380344522966064831485445186151439125753053932599410125270065618332851912930569628415216000510106277366479133345612163940534638003752224605088714299528821641839215881383124958398297014220836248248375574089175244732945694218089875360539176406517839426320235377546428343317425679279664724927101120832404311021666410723332186854635553908675875747924969216854209953561505504099904519665844685822336171800641295013443425808121378776635893064580608789802888908466903369997487798206267692526868895780013609778969517774838924120859376188401958748873671666002970182006676202448316239080730257479551900716381959402928611057448314636007199871723755782879728122773690410500306817558928701727967045901789653425084200230350038112147514155514066490827273304655361922008140040111640343333177957504283037923722948955653809766983852703071547971459992952652158218257895019095819630785247166642576913824580332562588146717112638678523457964182686007240151951324951385919234550311225414779486042233405524327745644598219282841436825955793625170465003702769571487970596386808282250825839918565291139959688517388046005433104590463880735833832445896833078613453231385045601526593878683961224605046409446116709860291843202587127163806536519139762874580195085417232694978233530790211212018774818685514479084325947888009244615981889980582580260199454553883727917860902602660300171820236819477244397339294684357230000756750921720721955824197474911318372253069793407676992590838972851308025017553322833637100590797252224550988295246335010505703859701648066296558673384566554084458735662457422401775455493252811534029124651926933733655526279881307794752559863532468160366834210340578303972599511614785304702639497825393090077224884367465786351362517047779870997420992602023500725145242629614846656749032827777550870159255089953688869755842731751691032680819199060859697668261384401418305062182993585296325598501586388285251900029021758556361933851360302704076022328827944328398203543571609888582341831935407970503670835126043079893375978392204250661954916799855218786403194296895135377712293995160874893136868113245213758874367837325596445337175886888636455421193974106636534489954627440770307296096697483649380941081933508872278545914938641013338626336962974384551103944622467679080036347539819254249585014786855659036109781201564458102916932453042891841673018321339432498594028999554018783201422843102836157260654109748719776887188376136120758005940054624984830363304185235090906777772307739361667869075340119469900536202382060024035755023605882016980543289889133455104061858567613605970734323696074184140704672905056928654229502050416813374077547455395638579827623879380299256751236630176853734779592055907589122949385587887828522363054834771793685077137830141974723516439622301521854742942805913605251651556637983929424931707564618538181203353366594322715511510153942687924729301643719794903774539745860685685455084151323256896861760745143660542697264766168953788475028074471522969561572635121770367628880277322792954154464403280490788723154129578870714275948102606356061831527076499808391956457156845112892624703372088350075730362821385284401996315966307677181449210258025237048819833032991534265899374900721310503405549983864727350827487466574078839406154940142495003404782703949451278627895574664463096971425759644408289051151274165426252274064176381009155320067259337509102799801115639807134058383357927555499179255827361095813826025522526648413183901674012065875007059167040750864838315608552357622980042443786360098132467849654482163388177405497868982170101671750279821257982274197129755022822694637346391967065505093711530746388747825194681885021469912028220494106558892254329399136794784394929350947909212693509438700605161433994424409761344821053522781280961630867502979262675911281782422700269615486553444645181724636719293621044857108802219243466881267907777430451319235691156658079942332713252895338164755544575616679990246104491642705365180650285874365608000337953933229889743151947180875553279036514534342222600197979628185700177527944713085563915965617671944029692606571792546503000429992911144140308541244663234025983620072278318825774275127374673627203862120666483074263091351178569015861888871376453582214235218780914450647314421101917464901445727400437586223533822079209308089122754739167148869270039509618707989321505101636172781272695838440163986597858564908326541086546841267331809924459650383051103082838360102591681941570218096830136234786463179166357511739456050392520873625620439412928133337890829010435089503082239727362052438299828202578216281919371884318613055531502588832774096421134536900741679298201152198800980767695879522934738270793052285794410736442294903423916374126800027681707401583015523046914986472072836171260597833375320473704181024783369182092151156703729115482125296402414057372667895269141483421063710754551708419507740230249692521785673427107106283014239717726744968955668200910944214706034861443942042826238727564150157736455090069882948116204029641920304487946204140851622272164364441408360741867945702632530144192009899153368082904850402913354988421034336696186745163447461178080586671796920974077693384592536286790117892751965537599755919407800732354924765434203157492359885935653883003426328280761341385264067192167401728230188767802876619718907325569839930873720096835530686625439987763599936004392349721703186940549030806694308930250622975153902505369115341541563833459495161871003933316372032104257930907350947384053148783541819041604842719960130786696448090303176760715704841523631008430495640310300624942842393191794357519075280457617741891535731824306318046146641652007561261554084528911851777372457493139451126251411041488511215862617755087706506761725479702738874309867843495185452794824644339744466134806708077805615246410497109046375100204509405531839189411280128260375769144953780695220369910036293239818186035130709231303107917567426648121356890500190118983582162118460321861160789456429446306945046266733808399976409259741536209086028777194160595189852449823688497934422698092214173773500319850673805909280433371898697881574085979220112506145520572917922540752368666193603845035221542108093321974651366616063696721656486707317695419023701589167553560123467571534960078752345791414060329415972126715333627310203333759028368726823027404443690124980471453141174783005562799926378148224271705207974893308917066966896179136008162059253535946629696054205423234892349604374811400208006280893751902072944864564107886427550269852623324260844342832911877189419185574200998623264733249358323437491957591429171703615523346007390390105249047082416830153578848624885853256948059741559399429341562077831159848443051841639775229828743642828275344115762567129213574334802188460602675362926473165279619407947075527560653514275192914752226501707086003639850100703664738701926448490134155029159790382371083061756737806087539366089038508584030931202584776379338558162166740911365213557209893981874148863393501837672897739196886669440899436065716068145046940759495354074000379087543805515156075875145494762339911839140993982982827235139858771849919709901038037942000736504373224182603686436069926041299904599901030843923892672413291099818668891170609232521713559660081641297983565265551636469180878040405457375351151807148926108832915156777455356979151671454782962525445482368050889385741469495857855217575865100858274814132825600064905467750201508209148425427009572676600323190848067073521754002528766531410578920190511531536113095080980654018912456201470813069130920368440624429335772325966424117068242475880529480638617367534463347257886104783511125578452512011419015910263517299615285159425709452656367565462121169323104872386002139227201043062964242027984897839852952332169163549675405629761172730783343811033196989040045021030498050750977256589378348707190159925254671914357214697838412876522771763343972187568893234693866754661082472152714888710272314894126719057254620154412674317933445310053740079641735348230093071457754558659757113482973497890052948863089492835152697445023972060919471232532858934659119640371762800692043496761917201859176061993321084991546337869732937905390708368358978704009328903619662514217312331251300902024621621835503421921016843533059814594011692971404234032937500116190371192563229384652897631769371742908119526148902622697202294787381980670439986028833357724373637663693665526149128140122484846998795272605616363842356330504152834765173932053675174172030622587370004326837149324736926007398156775119540945224106937350860699455744634710630469223127686110207055393623999639810042088972510079822226036702779862627095711391246446762012110895410974771747776028419718948541424506695172099674970128413406500819419541803943579877024863941298206030010866123189049398202321988355263612870586022830423815291453784844634368508477349527863014864846012894261106002590567220028832705478249962795557720005354502905864152736698860782279000051002611689918815818128221112057512042344140460578749138480897522302970494154167145846351631916986101171026670825815431221133892578190392782000705920009613943686198743704273384457797798440594882084550640808964751906026218824727222146867419277604458440742173303100534214354641424807549741508149173154140226277654152361754241715690533625263988184110182985720939921078305788663044236267088429803171425685392330474929940315862401458061686801620683905334005156679426950086887365058722711222365590472441501989590906466358775318783553454448092552686920233342841979651960481169777445453317590477413880198450120696886774900065424424926150143007954040930882940123496272999952183262980758308911789423858854474912515823550951961596450179536233526565587043521701983211063751194701745454346274177318212904790143962013565844495139144408330731480798664315146612361549063172041945172127364074715856323834342962774807755773019981509246827617035729415475118816327276228149524734839194077756070075339471297607919110785650405797769239366404293746131626787329802795911212952731069558393186167160728935897872022145250662773602085455520983017855268069414905845863873397815256363371632277039412884696685204434846203472671821930949934114720905923377306865729526063069894282259639886710348190643789217521506366823167631654425555917453290921209894340252289926344249208314788883566160108972979879182001509739165226476857220369988104034547916214575478155157499426507644516709045914369688359001984033836764597959435485050292441151043752312563032761402964412839259358039085289650084069538867265918983824189225101072659088934909774883738044438869625361163646359873613738804246203686511470083248031284101989811078736172789995672891096330997195297704197059851278343023956826542792773834835908343351875447235863697455214468219682346865820052331307461640769077604192099351217754209647061325506181042139162792665218575321930064242912463607428518826867636071768524375620301636078339718022360915106868312574536951359994999261266909433846705758611534161718738889759193112710501180595157972742845041774263416010350329197230760626526165471598274842921839666170134679183935000516134502158565698294812929499703132835701793843920269274619335547374528275215169251328891880272177827337446909627476267338068267271821321149728204413444428260721252177576255353501751018303666215921626593103142645064295568619347540812032097544465740531565808396163442868046724555425052296718458529055218405705042861262187071252403820876155618026184892680437725699643224970541228555587378464319930092937792096714232685919574406156410266518615499184244382465005710845501649502476979548325914677924050362893734095866537378151573812859264058580948662371107223648207612967656094828300680979463269200261436729957455198226810111193343959056530723627141449686772797837597907034697821457259024498664680005836312964434424678881741336752781440462742065599605016954569614506910016688373678210648646331505285111779163117335195087628476036961713148409122638786348051194420400536670119946770804067098588114421405604380911468542216109759172744002038925027502124929100321239994782787770800813654298727320903203482942798884021072275172812811947637746341262215920796475431514262812684421518857973855079931569052657721297325324772882578420141445170813024168882338496993791343286993167675826433315761773369738053893401379177490012725390762079210586512414508636090031934812579131325408401266539817942763797952630357201073452274301144246368915863002247847859322520456697687904937141594530865454262019179238823315121931503084216143088784493795315382306886341789263513578908705556603075320948608703936734805847685316931305778158508024660190104421856916428528212266797770800708555901316389032549188258128868696702519926145797856549661224186676275918873969166726244239737147796902208345278807094569279647995276629149041830967690601103010162049989219954628828753045966512288256080162461215494938567323856521369992437518217745828294714479881885502819046796005599332625573850183687147627731889604807919239165456281323880652806089310561029819915912993416571100826208513777827998592219008223955767940354566137777756656967814440827721250712927461204760331409302680599402636806642182998796507187122347453404385185604586193749448275884138514859419461607348921916561362690242044348487490493716287208384732216864813395204372110642833375431276827915847369228435563079581365036013079261084000717280159341297751543459853242699161939633329895403157104482390085932878896059161419139626626922604853165569172451840484573548988605075889603157338551510920534596017202367296957180737921442106235045664166312994628339568380542881987906308346918047394382430502409477050730122161823590009748545523765661658800644473168541716887981752292020395677733236943103618928344502140814979876037846753876415759119099591233116384771171380934552314354487346944271573620021651276158789518460212890965224753298894993719358203461294474422396646091447880939652132108399336156147734782657511529309760886211690140431384557040724974848136580444415048174294631230141871559824310184021048476951319852961682566295290372502003414077075557439095625705883036038495211169495692797046751477182943870615801587028679622433697163050628679683586690023068726422751006937061586560292371986615230248187772934442592892812576866654824744534268663743881899035336972571025668648305956420745692139155928639152890666454528737788812351599138297606709610769248113011043541060811167105751669639369117190681966633149462677011819428041233056486781212303784848637247191035196915036443093696721824289034927148975623343594440967555654548185511914877721016318641911090581676325123610616876685835096719421317993352485406187078279159806479680697454342898072421633588126923726663125500914219355080473433985436655839425408893642263796924213404648894331267446286329803038842978470436806821896207922647771494341708761308777575763337459881970879533203170300582418804154527689888041052897509090922718831981240733182759253608562812760466481788455511210097383806576466967240481024641100710207940930602842794892795218266474383886700328180896293569829245977492977183501643108877479910858905226139920738860462267740139705885255335435916630936724464639388859450282004902623382648911005212078082993109467139518140221701352545741651453931426321938454023190378023130127277257028348483227937498426042674206145628542109011537211066011811444387415979980704146755992446614046429131711000204000295660711723596440228174609949178411683729844868771102853616111358010983678509799688046247118178693693616614599194050463615934756833458262075900226547708403946729152338196267005549005211100091164924611244824228506390111881996441701813842569986345892123233236412602106029502072439173694523734034916588965980791526055072744515628323140631812060201668680091130963695358290624670885501141856160381145498400318652670007737522079521198953234022209858488520175392299807328309236769235855057415959424057551024814866220304309526886953654210241600514782498064039092178337556832890356442331301622029777273004811781225192184818916698536333312291133277099477022854811098359632073812617279916917877048076669186060331524963589242392395592810710066836127305357603062527030689222616978731147806294612295210071198305170306384419920947264659142895114036903600836752108952957870750987192376397562542690403486829093645297395816232306746699217417773753588847007797266345795505459285232382605647497803775622638750737219004834627274931669086518530535679573363828689316920225375320448170887179274632382043842085884101165917943658984394407448635466009535905243696846015102015450978563163766630439994827889442278306055478276698722030722394071147408062097838844176279923763799506223489240431210033602225429774644102429463280407696003503118072077750923332543413343869158550607034752282928492947039590890944108600897193019808603868898879850964451462525714545497924414900607979679558863471206895463614794871719955591516656922758654364491717515310126322194502056062449458151188295739727117289889399373803069090347521414646109609062454719909971146911846050725092431276850915889279021938966330185261595228074464332679304598434443683139507186639359266725887101531348553281267041731450413616317596860821038174564897032305994925394661890153048439803951311936331926230628357983442292782195300529954065710414739743645082569842041365508752090381257504837711108062345640962033510505689038814413041932961473430376571941799687237713202656589941659028426176327070951845693784136556275676886434184306421604449807665767056067518658818851233486175552232182846250812738897006145092576003529531315190071529685179978817222540738990404423107608405538760790025338178165400877746125184634311870018844466117881765011527272167094197180909955984226172046579305074179976779771008717514729766961589935111076545065928334067152070824980960599044346180903565635420264132854984658200481962547141256315350536461397779233079815156215018391097646760626085517823375553176156472502438852132731021027485353956087892248754777809411879694119850141890839800089123316687541788855124181261093913590338558788810152391704807483622422132067562705344200279919929674607300045057542585032111025557998226440889743279229780018278254008801961509557144475952914521989457779458735434317442457613542121132709294769711196103633398409377636056920062047103897167138022049916015895759839494230767980388208281724038281331179506766079611407746402683159489707661616330330921710396618676659979467426724890517394400666680652882952882456658474408974219197580232812771660856892882633771325406657612928770510013898207555107832563560620637783528779470192461913386242478673789009315057299392699441246007255325899885570893284658262280484609484065095379999408541716020086170780986329291139049809574525112432150245287586037431429440786102358524166186026636764573918084676738843230210492986810896206541575200200663342506357217365667255938073724337333730953453968769313353932269584472140789424666168212001040615630434519069619538444491959464252395913681021823417088498146511132332889294678671112781731156073154156655115980229870615348928996412402921543122082021380218858243118810796438314948116200973183860150810398361903811833675300674061863612299892701686330738347320931421488651140737578065601642663050769977229567650979489165014331249868302303208703901821319555599593964403875180450846263737445659201986721690450333559736053514749746217983595143938470276124274086405252016312489411379764004779674224398847789153592408986162357344614402641382029780561950126980539279701896876750183642305573698103225940401669497712731531130403436284557325662092793968290890678979830479326127867543582549621535311436538612300162989783518382856166698970852835596471831067083756654344101071877681962864960115119076064360141742188011574974559470469635856135929062799729499709318966074291420200475907945709543479123442936191965234095976696230477906720400671469742418275743057089186089580983068613816924945492219410091776307806886766871719551189681421540739335781318510820933677759300306687502300043541972425702943846066581915661632827417333428190637534839557649460011418129497967600674440458408220321884792908947744765790645985048713124534816685519341463668357201486805014968231895171400771924978313576099291893795714248324964111434374036375281930279114191302384559561952340176148499974903143762141813511556433054783108614009962789936383724997317370202564205208625683688447754515683589020917405907317736703697954881603890974151367301629276155691660386134276817120116604495625919322577388156629509622262278184754115333773218671448694986087401171428286148291626682991643532410803610785756946231931246085273545422103698565822942711626346397127091515263510930557939651543876450594230028793512643018606525099824925003679190787215149780500585772804496174518218531153716780486638939754764177241857824426927420611044692175286085808984721482701660255988756325141738969228143452863019055336764097224444609976878150645619227347730322655594816598288654174234302573233698572482667988358429997805244672699025093512631372829558893255108077839479165203284821831873241987223761822340522645625722041934161769589691416722930051855238552280618220089251847316558001341540217973682527262184747834966027777941513999746445151886586331268237824235226842003364469423531165214623517527981191056523592928132223658200372850418486776708395613111369601888563165731524913312634457161002810470671840289819825153627755082016443607879243240711789350801776641205779634494883335445712940893619897507760764657757497685121600311397479099907248150149285336883854339070153750680899165723534573538498487538788203551067895755164623890144611923440768998070965569886793059342264019459961189319594124481297458780636163953301036060443004898941540656618967771726196434244222243441500548721077226507468415814438623530287299112809631692847034298080206524054219941246640404987958563495084813932319134766839286411502114917672990614268891624443215978490707779320471096147830760256649377227913065232114787362847041735130545505839427926070207603694650278599997429951734914935768159309686003458581699928920774572082332721194692921067742842556852345418016760818187712993064307723813152743149658667033013995843469334555607258639085477632089870018667292011827149550281584828780112437048197931841016691442250445500415290606860097434664412256378279191077798120917663676822513065223045796592393837079762537308141049726029979552208810427349274740276216195057779301346608796574495740413724895085562738478175700753248025959118500012341451284999697450709267308790872348979013738840290473958957642646259731629264812994409697092628416485676449321674746858838824147939773907076686596702157868863833289374718442176447190401912133911410912648314394157553547131488237351329968190753391628679560902153352571033088792258394674066822394397161863009071355927316892715313854073862964296272699441463506589171423682883683944877248964198250412025121725838768397192298782748645748101837888103820246825077499244040010752548944672953572723769261732636979905388367235273872868917736756753136553267332008539711232598490663222104137941757667391281995158272760857445537839581725134071042122530152091233820601405907446949589339290119364845458902606436199788252539033863019088165291916552069986162404187258820070667417488617894382001898782660846791758280905356986727146946088787541168136383820077726046217075074534786522546835692803077293860982986276971577824030395792350028619941328351262688659077133987436712497439081481595435179044460123225888574870484570430252687012093310767132256040090998063933159405608187199693743858362086903312394742050866957206492280034239724640659793953783774465607036894347235450439835137674898104947246355400793336678729062395301617825175532146463010530773127128027657479086220694494204726296874407336514701227072737958616402271425498489333214606220646587025924710980313940586208464492494981642304581251958294670459318461360277175335501482901840876643671703365752047333142602237672719310723740219745621043333625309390859631045976875743720213957866205752664102897579986009239086890217049690606901268219885363525681714733759199885097821337694392094844734235364979041760148591337548583616672744814361162535452233553654926260403645031055227359545237934940027252353336938285545477562554371977414077333637265030572999233416434028543302246580560950293117237135400520659781931587812483807398825870988202756238031876355456220189064380488747467060900354666490765175674752902375392806525365458358681917434046958079897941048850418084893122521944169566651539447892065699264300331762672252832809270539124749796515467497124529223553015521677411168306536451360806727853752881644899762166661078621845626349204231076555775654257374878701497017613471956427684476829134232691242413987437686517589230083047670504155767952476334225395801326442538656263854273428564914066800426300158742567997435846841604822759517586592146540777763557867681307004807165614153129406202199341880685475125366838855462481247330163141185980893243960756615294862918347279401080866504304509059829666610108627956056850350624070613757714833404342829932753224133244932214105120960292765454701139459878509667480518388866778058219831939547628108180485865550937488735321716902296431904130222994809776836428332531805104998888342648369588118555568516085533192338177044952132297501035841344301951843665009752428756981889858747065482804124745768690867289556391503230664436269279815613684372467659854416545812039125549228329713182314748679764894112098240379217051711040135298554534316016795866464345329244650052595129436703170460293903389140420594578366433961241980759601755801743193632859612508698743249168912650023836879653693517755214290156576032904511087379645216189740290420923718242067924706814846610676833211708657392418024533498656598368480229257576266144644142512635581872211384542094660483130730251645665119273283325109484232018112431266276161093550957257200823394925527369902838492282650993131779803322774427223530882399527859207530351321964595799487081138668461653089268274059771854601003061849928076104430065792863361812037545923841495921761926804119062360975880923841915282713962765229768104732092655929036205841695703079424557577527018106311119611134808432353556729023987193527857396267815043726051924332083293981744022806408013661215939230326817712305377262349928416836604789935475633857673981830993159065022063545791629404493278550313514563932139364198367016858342152418756453986713464000255660221839088929932522887366150022510341172349629760028630354860010962995613275319864195572253096644338141779223483429552628486978262206712769322186452114840106653463588578731773811641593694425264241466934573176947043341419582608182114666142316791767601802985003352419653973188161854342615573883835411064751259991212564318443169620564621419828110365067265541576687484309245800403255481848849777519699363795115661155532423965231834329842805825345462533948909192500819295658112193338643040381532754254674246815912704750643081590796652192788171830010191649283026263889686982817063199229397502984751088481572576646484849360721899701338701931618193723913451828764116210067876056311232095829819503467131059553517876712410446299597994736955348316029375591976196916301185300979435572948774662428982661306972127498064840691807103708054466528989605618386787650569450170475407331893186576048028070997250315246437257680915781550496177676890614830365752303496082105148582697205257628031150663726802169652479211705278495148065809514737452278486105109115426825342754482191513530816961134080622046880337765691987860495708730624712019376244539710320561812913126417149420131378096957465320217159450205953218207762444373777203728554356560484845046151260574584808842498412597545041227712356622243285887852079667944402715762950660142609444633846961737601495906344735129790679838282746402487946685532692370992780964665651561029188654686210165785667220131670403770509599156062155329934787664524895474747317619723981114909889132821626411095613229406234672921920491561578894659127562137945702464122849827098078906873217907887750266734345719492948743133630418788204414148767392401142048600362395649615124759425526228792682116845865045093692184537241082098459111110435192647081412196024872541902836052116054763812578686842061034040788450664908360239906505174337851419098485157239881106707748965760567694060400429587984768656009784321212985451539837970431544771751359975423807301258288256801782752199428069585698771521568347386621084535046703272988387459464559553813215722504608488980433003358057576840902871164050633133913847883974060141382208927045390212117886834453740531173673722547352261368126523914025915482776503873731893696285082251987344315787954485375910765935972518328494753579705060085897610717242581621841817588426979462512794282690760537153697288992713029511680011481158693143539750670303514781150836842672209066951165457302134733346191985092578602900187125997330160400447671356979131687913619253017927908587580993421487163351149836852250201561575851305950381779063581362512420067994834022217735190995136824752338966396758978574574992452617608616844988506706896583970492442167578130109219334208105171987396006952664012144419781567377113840045311688630903300709467087739150412770155769710606070173124725370502986144214220283702871288914339149077816599445991812260476824103652999555664462068912454713075140713185584017398830669014280382724841343709043839324244282864393487450517772122894648734313310758849692864483398228325823470682733531131079529929945759403698912557798295282297567177220088139971180472805836857381764228420894522890786571014637738822300812634849603244096544982260031178633925073129335576328291539662030733145590184398359412302677885817816365716166051677681254249666238371788613540420260251647919951918516740131072171004054286495563854421119242693665552517292323873078636796319461189459093810726220530743563346264605772915391585945276506969628858234007107250223200212646217170632335234888025682231738713761041937161409298073513653134758254710722887109951402529413146579437984519313332629446462847840062379804113318160874676863910801191350920048795590323138800190768237335003757055193373376968258606845211150396045165953235528294586826466551716478033443457378972459085851860751231110277394690349605728091046499400969333108592497890169344510246797532465444618872312939841020433279007818224618564381171179765229880014929836457807962431027494758363262499268563725920118364880705775041994568636277415373363489925696012575905237757925568950200386980502954530232107168481445755076468496431519275828826837287673098085640238378822616158583540509708047580601685611746295489052015879300641674481585796140134243625581579980244749483457896040605674520663496022531820274086474015874095399104921346196755978493636535683875693567748765830105041399505538348754846731521425960868016350128789549354048772623574183894760707439470712673380580782175025363079299052665592552117906484235628273393916112639538308611799108957379358499332561042937439344881876633271910560985006655852013632203524948603453703319248726001354042662376771547170031417293197997157541161052041158462400974695967855275847409958105060324312397827975965847944426114860946035078744612936378047859539002215956304261456947943033270005955094130487618317361493954980239593586652646820092594886707478803026162802772363694566092177967791291816615590256444751801169280791908552994702281348119469780458697037518169899483287348616862605972753752213560178695883786731346572279953578361562519375003346501042883501963552872790331295781931258981134202600694805100764939391606930289168544728622719533289002959138698347558443132273603587744450423976205569767424798397705140081946637755610119652748933783569402858955460393756038214864976243591456846802163077731929921632460256239426299934176810062552201276671260647320553048161906991532273968693199272304296070731007980925147695387888193791143770664818959612469693620550847144920901503306113708736420488033996600398820444574007197756968931844981840715235449286127808743086183258303384547980419103423346811485629977123003961294698850413952255967507859714755602968589983261287633329526528269754274119024499211211151060146641654717646823651135666835187612532245504853041713578680598612044520185605197808955657980021752219039355731857616699158943085167661496014956358815378289920107223131614027044771206535003806654809147425385385950052695498225969144574443641635196862874827886505711166874580083670101666101790055416025416301247633080238481404392465739186639353380419612103099911783746759888548207060932779124303933626582224122127979049184629992515121547352529705248355663259692945861826982363324090641391137557570379285064841343371551222506434237970623375907762672977125080172530689619443438848233934418140262891571409354924768864461291499129833579310235066575035100978902821583214961860998282537642952651784474444638939551872830737896871079824845937261748418871215254825567344273096252406576415044016226079778363296520006505756075858261660712293990710566038214873543436952820679336484069697323554779270965734025969765421645853456905911699363087853009008945266812407635444514828699993631688810307592070490381814692924232734817330215787746118589639442019472760837010073164376977033333794414022506402624948195256242287169159057584638897653818625543607402038459548871793330257922639509575572250425370242485397644820456319285700250088198423805673243298424627027974635887755183854962408401611421091825567889221109573835014478435986275814669999860674291227819363674812453748202748704476800298849422689604105158861615367868325987609462893759796053548401875441026659828701083221619162178176746444261881556778118641158484867702926389083607029488790298800937468792017263167506547683305829811817990874490125705889415091104049465655131892581504750756804217355961125904153590929831865514973160567028562810364361676416539635250121853010994737985688658171397610634391272217644315938588126118869436818664062724163365194842971548621337854974694584238819155282785220740303114851511383420974785036712020045120707043114238411014870643853105385373293456934065126356544394381430270553041927544222469823611322208767299651635945757298925598849446078147234461718202545755769484297730590725909395343661941745807466916427455224159022123877776732558039025270972134474829526697552974404777500677279978912346494966473429777605662115902733471760470974567291516027575547076830796529451269775423161957385901147688977617213252642470627823911474004325610635130683735197808558083075977900021665239738798357065386915879385915637833221633842586141769931348610939106674961436453380974992206338692839222005128735935418276249591848867304573680042844624641866850144758549289609476116921755126447703831223244346824551654210939580042828142666651390101794717256140394680721291981111399632715619790962475350122072516458854494074226697087783553538831263998444328401304074978440553166378400946278016864066350221634447152634718976939474588097806390969645165849757017245846291450819486837204752567731508125163046717583265522062257189952856759865384998223832533115888963144062792216207600224577264761567307239990958522781359522481834599110624523746869118931836830870536544165987952385481090896819189773694438677889937173921276241313175008835581889392596757772602719628001418657434212115618446713417093911292620370419579565576973502982116414784269646005322170213869215439621380013414265786750839808263111934346735914811717542397557963171981784863683475577501164486601203203070169219534698011633663902630653042788783785875164581918838276090943396585256715785996104954539525929106723247120406058134609060907622681453681713175416633887825479681600130138528615484434884525604906283335631633779043737109802162895473543607616543633027182476681671675942356545404842307139958536843220353353897915583519923419417555892492982660704189077513127148894497911674594837533769534168999912138756074349528112133549290875877672418127666930122558824312319332683056576392962857301277587034969752584493009356760473357568677466003359362113076209427511089063866114030971326158145466845605188933917193818164977476882546022640027063587657799273731261430417007091506037125555441032812829137398753691792820479997617968123922869030058749602040983020202054009487289044449241820462336322754679971765123266641799660920848333246347006345906103276659496636909251437952272954482307663246436005873335802280392229622504215523026758065118709810442058908442531819122118018588144373623221496091202550744132298586757752053544401029373267356252125047217365681523183983291433497886318446491510778467603474973691519160253858658891617970346449409359935003714104513424555866025432441222803995669419375632741961285112463551946115380416267117308604930384018961114966218632310848801775691620176805971253544958745928375340788583802092309431803719679131805572875109830474140819082886212439301931393348954117795966816333458419982161640559775334437493036517091328795414991771450269016991572953803188917817430948629709290736087805866731191926411959238568478512098441055954714322656166509838842757227091840563045193347841008525515086595793968961698038021261930779163629058117445310473530912462845149784007681168903419762857116336923640305884400793122943063944615990439648690088736897459468439971276248938460243602565017063519527847439778617017691706135302773348909369244485286665194472701602752524476051354018734650659426928261534338198519570492737919818997760311454624698818925505204504842755887066678669277562757460061808686599173989284518635033415259644625795544792324498616298713883522964624312877606902781794373372762157851681937022264404569452861052038591597067930218599102324381714878141950490468188609735544297114742875194702175628228371731254442140354082548699145025396517445302795035248486888087648544408442487750683663439894621232215913013923561705972017392514515958175550745775272307778576164975564967895597887003042680168380091966811485084932191365708520760865105277572098745621997093670705729638146082425155319514010389510332245459037228469059276674414973411813923300840688594992036480175075755948873306525660083804339927564540461113882090541810011790627984164208307154069511858352327468234351289118379917471880907156877131996168378270506060806249896141579199190005675001878222544908951765215776042099083754518528730843644119569266591817541585610475102791821320041208616721284549593018789711327877137184332853104635875131607567838699552835829904354050684907689855058157979369061225764808482424266457867362348888726537097966814984986623729465929185090424925959073881133259836170210138545155785266100694292246853604386774475456890129414691110291805049716557969505300476318369003682954787158042982342757276961980809256104841671402379630034988570864006352344145582985092788223725282619634241153585952141588816769840728858204364594952968296436664441303499501519608101855745601191989247110243485480637323418597834730759806800642320356254619932126547707897271448676936030845582451218612228021489036415832996785082781659644186551035216207327397567875591239720688886785893369287153174614430239683375337360499394637460105894853984946429639894123027989839533918419948679639466962757604671716291828648760332183091314663045249271853240937516833768427711190541639432811769362227072672226135934217620029370343344156653295691754068318851732711717880796482968989971038543663419734988035874540710508796912578224214993422542673465419104792535206320681743381236012004637673415646507369210673734095203567831568063199727162950572306193700706946114330067287197107591613592976011161624057870630323618363063208904736097394509880563751749188372085178297042551561481228529813339494354162842872187907495320843800555846760319102478295433503819328028616630335114949670751393741726881637908115553779695500748187894322756913194489779361436913367635648040509076304950209910394154244344293051863223194651292303905436721818496790777049614447528949451003735035332142567758237812914711505352172664448004396648366813699471668037186725310944792002275521454803315641548963287926288622619330335367314276709978497094686159143329542982948566820378346166319484574191213648605531811317059811424651223866563337791331152608120952462403975180613405549065135741079169107540389007694535375823835420985556316472644557297127658719767341533648111945702407714456894843702552428014322897951733104294370638899372390065073867027045583601156324818005087652843759957981954309995714818329117556100480981865663822434944570033853810524597509492198015609309407555606408687363774824889278694430843860922857113783952928622121215939976908374446278852778241722626191400282893766215328952425173375816439136068819948018869622589200732933592564223228409732051368072805577067148902829264071008674456458901213580780649912095750829462439984800076310978414414495767970092180350095012447384380721495195987204836871853727894611505942835797412955383832585519313913431691241532665379418934011812344694326034252227272507785204123026828040827129752979351417727156244457635387872139671902889955183990349456808141072611733058173197675040594922473762886059782727593622162166696488886873003874143194147135515845787015265535183474267501495136317714693293703911068528161986139856398756387114649116216825154690908172479273573279727461367339321050141845234308756770010057100824755742459337370846354572280305790946171360967716629425074899487821418233229045640769892468251867051724049438304489647918331527151561585938603861741037260442750903409360110550821197146908725940486458117160546888079041439195229521244835633216907356184940780731481942479697149402122636121041467170591633017877681774671304612873139127364133796911509014330584558475820704618498834886827383430775549892650213102432549520655017308396111596999243969914840346373504067852722744597474544664274501901562462932682665420261015528260455616394221213709302591731221297547370591748626554943204879894958216845504385274092692769374154137195752438013670650559771545618295042312645264247688411203514472011469081537050094072973438625000693189476126064688317241834015974697302171417651284849186120467716312683599746783793323026734824336226846034210803047883909761782821279325901608733361486867330241791773707325670731557378704882148783291587198484639725464191345629573433978346177002807802916796802072452053509725007552058450214736327518982955639187155679550411567349235524611440409711570594287861739133306998259928883448212910139050160380918235632429428674391183067434862973091772147363941589373793952003809913565072286352763598842743323062656481435699385273890969586838745101873420525524710281495992586232068490577028268098257236813821448678116650392585473784382069518561778100290372163279429781035162634327302970595745861103601320602307988115045195093746520518985364748801564411717020659965212100488921182340151323376240857807974533711008458268788031978198728509351212317113982702565911986092583543812303450715169665228549470639204290675525083456969181627733339621167041659817519050653509827814136331058552527970033714791593078631023164071101437387602924268350256347674387194611951464139626332988063748080982600380870092607712444216641502231906476756973430523471447436031540913714958606819835358521995658885527408075379990493861904653452756098810829225241807050390877991267468599824575917160202553173741771214913961104209835392922365641901725560854709520041475173370692531920291458034763129154834346064276424442593055936914610077401606463151959024193189967366633769964627882379251377923136714333262611413462032553191591379999075094528752873126035083063005859180049594988725064750009914272985373032114263735930837648108475762327302325382574850152702916007216938451493273276287190007690821562696472000571834651618930582475980999543490428708402888632622937875265776214078417780038957390777302670362965737215907594711673998142445250081806882202878590559978420316687999919723713311949183900274504539205426405658772154255108259979705254825209572552311055038879908145879322203982944359074016894576689766130281546110246757940870240443036060612213680783716390713898635453659160781544877786814171423573406494623188185486455066561194955035698046862998513883698287239684396533567401719669327430171973202514079685168507558528667139337730993755932111877959835739034243393332553168471298448529530455872777851911560828470314468711226334691451844608904281939894054585444389544634714911026362339713542655266175430132821910860606683657453823460192162023200070642859740792488693147474878839779873833635726512081038867256391331870725924924792432373819685167320318966009058895905651668321925525708774005583941769538779326307693823318081499079763717860639693137212175000664120116382807478467527262772353250089820212884054119238732951298366684175357951613908399370422129856943617003634563913977923625488698086379513519034533457096719576418213008953835400412828715985572421013616531473373198434646205166565262869007065776922592865783076949913311529476260185338088980367726401559622731799487599284500278235359885202638959865577537830552015252189828600977751902990462681386471035259811041190495796573727608891530074522227110361152182944182656051939366809197587149593422125061077003090737634207171619841673312504794200132937051636306463926991047266568053196857252883402893273220293410207943500689622225714995477754746545780056460668016087521052143213654736593076340752755680987277013011285173516038228116352377887434003516706438958661557704025283439092839546099181139247336979153425103111401474719778000301018577212464411469820450202006583084001743748674940731028631145847677111778651114739615155920129950173471141099799787082348700448422803389473060444497115175902493193060434901743049367954293474327776365656402799738288031582416718084464337381255453756469340593293620082953075770973244434882185040972973729917755271686825059630042861992434799216275234066492465164579829896890107526679128246685265864598361033993101499517357215383524820058845622013986575021449997967225039814062559292605360877773867757207183669746759332129800612170484348078498332512682709434311647909324281904461506194316596292704600642401238660240418139092828430797511628146148434323499233133426478383959021411567746950118190488452940851213870340600941437449853532696345160227459478310566744059245662251763677869969332071997831955471659758073778801300875547595476591431324503613937703668597613194460469558951794527083479660446384310360192370748590023456338022772641179729780876013223873720501752049731434994502776228043730789007782178172269531556620060958461735100567951327480459470691613552148302180735830729823007256287590632890551622951462239907753576626891147691056395366527507629390142131520624377542822989402128220655893617870814345003257042737309653024956927172061962879642058974480063250501356777423961654036755554778808608579345920187101048894371395791747958020283351690436575358995492337452207734513806977128522286792823831312651981732247274670809673996611381767087869078220406478902166805813026908501971075647434210018353003771063754698552458942432007465981746712481662830710249008542955051960962040202538781701134764343603244808571416506111775996191170507788754203824074019679980244438566122985237692872261255316568397647385536126679262534526737791470693431449999338425260657288207963774547220249623757521510126991073961170270660364430281583472597348022434451271733651563286684655503388627550053150679630594171850517692189959823094933605415935353554913730479447438578695340926067217082454730394980512604250331724711055313410461014137762701690636441328675777298856268493989833961181075855431535840782363154322218805430449450345707072246278110020549700694834724005053105893078099521096306199486300880427134670947311188757775365435214802166703890171016955099503337810127456245801102992940719885103784302336952411947244494158875154277627626702458787447506511979456489301146279366932677018206375220152382265503480108868518017951046325554217003240275703013114185193059704412891192272082591726137059320307956094321364393460458618221056998442687058241949600014687616441071768798499026598918690676241006522324748157979632558081804977817968571919896490057643410627444775180164269261513973537104182864302751247505513779277131165997737026476742113288508156761589492193919070169876244490603310779910514809466174197114795915327666167666652300050236816170404969756181378561332771040167999398910642905210313643919567465291476267447311858313619840396790153512570697981623521969491437550614788807796397533584215737837690040600159035050625389236671844905466939357842990554540915552980307202769787454268993323373076135953564692764025176580219062175986246069344504099329824576667409958909716345456900756972922965131276867914007924626352194578190902690187888276269314542375039446076851513776765948793122554400614722703019935807176627176726860505864336479984302406709774385359689231887794629762243805342058211566369845559031089416282655582707293282634094187642799016329406148844567711475619732016603076202546003031049472386413929367979208835441739250727232439682357500849139161383544518102481325536167914648140447108677433050618366754237889151882005467207377927358352964096059304529286453318456272292099980880607655768323987831619367926436302134875930641221905749119308423997454042736579483809751964786682706756834393067419846234799143044452456176763307888190045324062864359761318838135962305962293986198135093001094498041457275758852180516697114810778007008878726308976511676432596285065480970049777842930318987773766667735993696010511329074725009442309498312693394030367223396386202339564269300363347063660123502298496798139811815372366992542956062752186866441585387747100509209103355047155383761915181047974197018267416324429986646889557612440004875227977403763686122445170606422497856164767910252012736640665867445611605798748934634215002818056383397443780280295760902033337219675011595484648794778036656541737341413216939165015836715639978868471152738115875477298107656686171934845870411676988563017078333733686004331667646638019040388691192972084902650205392480867429260487600596580981936778407718485673026722596132613270582593086134769469084288994356446285208078121071103662698832316676646431873179668125657998001955536851502544248033546204659472579438778602623629989095345276326800477232899469848162605531682568656571508924463739678868756806546752582106020426930372608685850469388668827286232289257893881203368440802041778732406960379619010593689937458797712312507072673598851057591933411060106868807051264979885935859317846702666818820030545681070513173437373305839705558545516488790788523398493402487327790225879670978342174360258408986872763941874384584158514696304056015914831092480878320670712054185820470072095682677447941689862553386739366575619022032652631489153388619716122452758126214489969827635671480355436333301241834725272809083384668844725286224574366037274756642350291828240537593003282795854316477247815509087340451909243005044993104205369095645794723533935790594514126397390927381241194956460593108323771056476454656664967283147341066173529677039577181055820756953047619711728200635360681195816405985144960273873166629588480785579810853076263793640521641134373995660752952867473447182677168689880405132865864559737624825433200012697433078867916523291811031804330936776574797686941862652352336440169264987966847061195725497214323187131232437298420068273217638187555851643956981822647639726686396028985657308271211491215861944339290773066775632837498551134703297125799984923056172162407353741491292095983922036898613525206634601833313856528936382789166377215270392310231024295562875565170319517424729316337702505509531617551769567308509080841776623838591840705330567065127804167790261298531629553340126439986791678241015079409424995558209983827965799521908193942338237616396998109322266322835528667392446445532790050865315319496230733071271235201207202693308247045241909279723492249937266661102705717004487814793448003607226339722904217009606505306480781427186581464854242690976111550070761908142198929840551245472570358412437298390640417433984040049759534760115749363502500809704471207731763325654295879303120677330689999494671584797058471621566865827091158495146693431535549392438392268767482978871255873340448217061060359319090594241575990436779778785530849398236017384785521797408087204135732235617838581370621426468054286683928377685469449507940671748068724066724763120938830182973743145596151018708801152903015881279589256818053136705989751073711607010856466758086899581712586502492317139010238040297869968590934226050159218734621417119154638692117250818580477683766473885637662950705017831953121444866431816687743610879093157527763044426638078252346908821562942626156763659936782721932675286528242513766011106374505319108821467026867452544548235560489468270595345420305765901338381606527025908978717312665936192593511810175064233282785916194922605848045636185387782494411350766082794959465691679371442708608470584373595361584917420749760501708057194371359224395482523613606854725580523893932353660054174357315428205186676031336570817788486533700477847226941227946829003625507634674161228073513829210937934179165949008914030275369848722135233099271666197822693338317895447485154676982404696117776842341876825691189853704943939333359310583417879913406053063358361177770443262533120252671656116088555035606031095316080819842189153544062158800411364798842518648957955772750200680105195961530810095473901537630585674574369563579181800188724918642684992060068531481524666832142179470331397735514026114862871362164637715047008366445013109263884156634385132303513856494167484322076087309575612384951419510599349628726460999849173762081106163416666135318024981969638518441137859659770293159567824743896849885036547173498319861576577405581962246315979111832504445146490654138387891261733080854615279983312850567044736785762880718972761305302072238354735964035343929760168965726648641077271901480368510805326313956641007833867059549814078076263901759485204210855542739814367996079151785120341436864010295754019434177993516935524017112293075349903061257194873208773280505906953562634880356062368243250656141006577191098646480262333045050581136716443363545746975340839892700021078925685250602558969486617587282825832831277226854671322353934611087829251703744219778676756896523318333838365962629957476008231898496290131613990234881890766924179439661480277796577978424708024844972668212160985334322341532020073663538989852084153150742388048143305365753441064203413580713503550644170368448863322361672986267589472673559781674435514470433794631438149443428840983218432905466607788718315214072180596507833623101674990626759923673576608369495565987771365699157352703484707506742913439315356935647787943771637335138512296996087860016618959195948020358781674836599976966824117481347740183343587797655262621369531186018302275112353345200551224522403101600798397277376344339958242051369481936384721248719413212613259013790446263235035415697749275084179724779004956504046644925431392987860342110348599320100569912153614278669553643581773685037080040273153156860289168688538278576666319481457470784373976842571170556528587461366370422455364479939722749902883837645504132818244701382391090405721002451830546071962335719437504564530211349439730726668992581282685492928594934947573941377179289231398629494873753342556655452307040669421794816347890883378716542537443843958150213122701453217570002986446539599391268225719875997737117263531598799774413265131310151186215508621321295059757116878714079482314458119154195846992989256547412355545044622592196279949399665662029650139579148518425442908298391981091141496992429258615518294189678708152403603476747597690841902071025713630881466194650312641321891348625641933219639628178723447691658119009266190412322133293398734320000381541167993159361663469429682479991381220380419646024774541423404701915778859200676845420586089322818221460519653008946680277729221709223604527055337321916935813141340207024495675353617979165916376358403709646571541042784025016126664874835081913517924107633192815508294171841198036029192825281546181459073332188187793107696051637607007137539845466094245340031217670327043711531559004897895312946893791855396717367921738736921622333211082991853957270857765228524499574711362130983510743096205470132106254322415489192393174006286605547929213289349860378100122757486461318954192073047735051618944376049971016832340245706837371462263287649127655516944326504735433694236052986584485540285290104284197916711753500301265764149813819857995392698459991689358353346180776216170525769059698715366083016261648907479967976345831905634219467347086765575385335030251396772226212871711028875509722841125149102775560546651166239023663825050707163261239563425400816629433036521013084786717124341171933805735539398701507634639172392485473467100714846250460700086746989489983621353011079402087083803896169034318944488592654427798847429442532645266117830286989676299607416276216046185536975346313004048179109835599829583424399951436850984505743809277567726516803272256460145930745773994676785393712498961094082776618430064754446630925480456226143110840772876595696585918663747591847103044559822676061519824922546557094331366231673564062063342911653627999608151693528057017365494103235456673382006452862148699221782476529985302093551767083621372863542813254157190773127134834473307467098851714784898949910421829070171271435948551050702211328567709912976678041712563147903361602903938399160803943597365810890204927994132946152673881584036822276406235365516306371498907218721941654478715533459323587485374368726341096444323367523770067027862978186731147318545049354757059218906669562966541068358624490273292945293799985349349283866459534822873425809457358445536112800399261432309329448530561671103337791709128004429411538517739164013359539756491819446841421175699578422544888013720278144039339835523582891445384954398258000327000835914063242327361055290110940276590634572095285417711480329989009657067182890346070779017784165399951992284911253842806487862442806109571880581612769846432970267048205727088117880082942324766971168936018381289080080814346551040621648157956828228081631117947137262449741389615746302390888689514605064195988148412798364102773602252143667485316315997806232592868838650005327741891058581281657703584591617718250599941269509760076780972168057938949486084401349908595169942650528548968952140931235485660509651005858472312240258761223384265960054450994081800521014302745707610232964026453802057241053240075338178853680850323174792919962400019597501921644175408292472646990057924972252916997619529787020199814080064936772783531531898211288349384321872501297551480546688102650887225817281459876744893147097910187402439740027558764689532168789444793868722624532377432024832981011896148610091229373705058766172097036155426405524373020700254807013204525413612956487428951980841089953273651401476886902568047065810971573489304871480222959004270715401401411823555947466257624428541892410762971781059882054815441448031990945978043824208064904417527190486150089865902897126099651790880488512344278177161015847872331068171196021880248418523116117065224277722746798606750361851854843667792171849307625031357714412956223469314992634678890026013476191162425583644268966834601898789660350105037126233603124440057402045120414344502349567689130589391021059914157891538992084497180431560333731994483029259915156631415349060129937505564041730077190472692158918392292313116385105892678671273859251433741714304135833505880678579985834102189467179106070918427319075943932366252430941689757013544364478576280760710256361865335312985345992576082202071911947280594527907395959229355304311527376226993788299623726187569721431562821928562182527517144763104807891841306862749544606488030046933693677656270560189089580777877640912128542759454518592010440056313365506292530420807891437138997511980310088269565540921192852498459164678406370869874063039034862683311039895956199087766040504564707428147706369603543342760673148113587692925830969674002984103388558074233173431296274900632352549179510142842375763238124965626627511724074865789590909102710843358792601044694042101917209439207939859293172407383081346158864213233417378383948228296002009046596870679240795548383813710050886570239538234263567919729348830406658614863662582950854280795313223391425622716058015428226823752202496385096578960401604491456315194359464884174539871412328176932075362739821457957704153792252400983804814556488177308908866880710432635932084076133161735269268679362522326818680596844998778698091577984602030886783205466291890827419103482270947642044572429987245252252239669490453937485713373749024453140184718977306062537073760674026390223978219771416417812044962004027243667575784968649770555837986272056652435480130468544498062051523900658987076053360639647169820424635127654756419133434176106452453852788966087185604098134014396317609552436447657330580706265475885722086342698422326060671932325263274087919720897628290851468661611143594772166670802199100664924246832516181872001000893080473510015897939139390924683137850631612410195979341931910977853197442671955310641629780000359853587707594215944986579197971805005548271424144775389084512370767605316533358509623293765169673736328261956853615802159902247201528524799919763431852335348387754181908083365861531813654137831658228035885895289146637839610184704665775475062013740470845990578813222247628964879709823814582653150713695413366291170224447331785288145204367335143589343808215907979666186379850494718703160550875328538607669583719492808324717004288115828348093759555024130462450448818345192406904095839484218173008957491987206288360559201465150133165348472650538649915754058224240759267878323864454325131903733714797479415716040099449969802587069909977457477306091702390743463602557843323130063086023100543353429147396033105637244963625952449647111104237050511547739712047636993302603716664661639026565191812096998184899679875796474996660164902081765259406164928166712160347557989149889629284583671174078201169520743746601576237436325502358459456658112433336085562765061498813627470015950769865104130959298799228420760643483410895142073411200161804973186170764861069177578891615094874010908765886539924637091114041298957576802896716281400240205766003161104973194372782713830871029336901072143585138574810356571915909883657817067028577331651074979127148150130570052611045741782761613100276301604214751074783665495184730361788201388901772323559638027672875030384648137054534499651550460900728265062236001845017163713868487900408812541808794121638688305819232771914562045862907820378349954812631884380375383463421530698123544763098554956662684834421074029314788821458028281808215910684011465346551636473360965999671589294842032286283808827344707044008817454415381050252118091425389165681065332086287996516000037307964268555047583286409655612380201618965465662474956966046984024954238791088280131339576906446288424909546945955114138968721372098339937688433722865554301611712084344596997951015785484866594612285922821238825038247012734513536474063947604538957089086932674273354834756511707709780183106206127061665653803289447982970020769764967501227012506273729087369922955672583944277874979207907493653845909881725802182443160806985173199360078986145089458472301280568893512457466531721235213118611149489789756470146775081467852664483212487727449718750328996534221143793652208973390272905380761347007252753681574375926095241042972576110444606936896301975703538845254817785766611729823306730827303516530978823565894240645793802593610657808473796142035084663997618382767323703283531692429940095051524631035326006156331501241566737239743071517688344966346232240938089776617491911297341377606886091597207649976378925374099325209356355912724022233936469929148618491738614851395709200040068709112251696379129924931461513479874174599260866237570797368623036823519553855776280876924613788383629879875792916587374152717297935140760176843362302409861324428794238783662483757793543117408724113908031681928130912253914027508536487870444471717488807499426835199416665673202414513648253089396718208861410921727646580740124955265541984739940533811514790756003540094607340024280764907863948888770423590230184639943405837908478633712457628010833596634590644009547063632027741700013227869269032625410206817135838685740280628517780222654916575883075253818074620924766543173256232913930626491233722698968585394235146921376662134737392241159604739893033893881108324763637090634483990681397419760216632141697506648037544473482399697023039882503505096363873264293544257742912477270417951161267625380894893052703359712734153563016411482041779736580074301329472698433257756615763596038874423066564859091150334884227755780910981372485007077325079207703237656285314121676431607132175657679804848111814150347493369801579364801821509407380339660508930027782011252831588616957338515291709284596253768018710697268013066432152190354984541320630167963053023823092964802153972475023428338150959539231152916875143045699432363186237623233368966226463509047300856894484097855734004562713377218081838847309654804197506001698355488665773191400510736507109335422762022757004714672358127426109091194027937558166763398115200686477016609500318874531277062218713648095453578414010189941932329897307942488407509389509465366274919412181112400861555289450369074110977431544058047308161464177459782608234768018749408810569832615007730420577273478845094921011614744749359319147944010305671853077712620636870186010037204153984375634129039807828757843161966350243309369619462337941791502804028836889479692086856881669842951209110452201302308636780406422764356947552655935461461614103116489235280856432586262174805872310235397888965424490181867771685537474804571131035161184573696743960579527832428377136554888931826384964698933826140715736764545506194319988136162222364424444613513545713807029085595554957103392685036242536613367731323744646703726247586348477217575230396966038964925741564124847266345309897912509203544456633180856954822436123702159902127459621559098032258340436276053406557778845987390229392269393700290938861398308277154393330584294225115867898361911405875491619084807651587779471130797839246953914697665655580337678123331628754656084716011375865325826578078343534897352621323211397010755439116678305659835425251981935248354434076887604330905530076399110222862926276336244464381402371750968331579323132313913303825007527552453057689590075104263339029315150473061459573150014479199610511424994241566691342962752818592737383344042893169578251087601892240519048125702558208136186013300854785189274644672314092389969286634223768326985874254408381704947450858412006428777599999288136902787682522239775397390116838607630786532377472629275503364195279182983045135716785112260255867921306268230912559782308722157740494203263178827073719768130380701682997544132185377568545306020184655550880355644976696555329645736666196555853888863878649847258953104012264633031329506721474094041088272623562362142990960819694701311038574176500897608005207943384541294366224073733764158909495278333451367136789627727066271604300048984236174066996852871347632306201490960469375252017931420594754404270805186347467026305389150213973640850194327638779171403085398373753346853725269773460781127192719661584187335847170689655721490760895746209534828255630502371834322245747989280245184764505073880077523035308551413309267732068143273433673749470640283646370014561889019582797529747381451417495325209621197131684472981694445614855984954336820010614812828757493829245532447977216690645304938275423984460095392234534765259329968928129989507884805285240993314753547660237378313290739892222460133204243664913871311286304925026775925400312909777552000145952445333087432974206578498751725283069824602594835252085179003308768814519856469247275712494114877330288378435428738440249912438401892692151108547199561671356125928719029495909965750708648269348249461694214499368940114807614200369306657850642979170585671637972170036835323850719493461285249366888392228971497231845773647805587303178709957231779600970996950789593222151918018553166952558507525381284835614758497486758251620890109777505360746282850212306937823476865897892075542798976438275742115405054861702199058231240663683950169709205256485214680369390861403210650859596039086772949318987753275353208337024232143848889829394401249198363435789225289372906278326099414410030395641040892883599459332373772422653370143356164730620061208892242584403709138979914376878420680522680400931776864443515338108055752996646845963130833764646405842991808716671378735295881227042569462767526408438962970316857331132395962667677923361682006431398784928041854763967669197816311223929757543941440455980477126181061671851174005035411171493028112329783370539449409865931664575358985751419520085085707299904707914016776998940558569521879863394632209732048723235654238169533329176560374526069284109532696341769665295620390058978333029279718709645400842280128916157123917842274066373766335327914498957662648064592124162122040380464200466186063317970004446606930100813864978274194754269953462619773642925459682949629857292250421938770633077735277097017621521431321733946761055386657194337353994300077780708949691155411308390088606616812606484314943411463782688907183246548202877491996991146574346588242821837826000628185344080282436658987890059428282947291288368433588053095916739647367500845166258014873562226276423142748524031380431936656388544566558658034607526192636647472028540646956566715305684393748240494999834922895082220497956495485104600741864474048185467190575982301388982708548478406903806248818102678257206200327867481230268693418854745648906404349580387462565620676680150838152617930246428030714279528989871795211278082242155346458791527053252880104995929164845252351489316314935323996680902922531680578881210087253786013450463380298945771875525880085740371449776411110675242059845351378064856139467034252574691256608217765369937041959787542959824070951998785926144824975152822107326863523308645397079603540537171674665438282400071582316862287043352066787183880108100546279518145248076887901619097033490832056046746882738383543869751250399920131194692123348900077428107845964262919094246269670060768691706575281760533692234955298786708758078635500785306251807933601761859577663469823235092955061312197098139087120487091369996598221439914429152133757122851879150834485396040729942907482446577062388695172608566421110323849841431030252208297582936030007460696476014394479496534455101063560070536146455021587858071298334802534228312084807161912945789454328900004494434433190639139415358129510486319579722835333501955979366793057053249514087905384814200197972737358287292105434472020646652496887950545172400107224412406638206067530886758303399144628385517619500584693137386819269573623926920930299629982293590992974659808984469558894860229538641723382765435482506087664989673899913425284011409202998464880439660037505110670801137317647773529087097158178435563820209701869819368603763970811467484793841234991740278703024733227507365489204645089444815472600760167817783356243688500749117662448440481794632026511570053107247363691376168609130459113721815481335733472459971865220569809404167528014579726803261394352446278365262248163343304384369033878252864354966629745012583379120288112806454975365348520328281141882553765269956766984014608047323677908886970904501148863067653434651061910228543918125971895680416577031339431419728703872585357340823898930825155359261407920392444875674990021697394400203955483612126709818932292351800402872199892436083323460180384370302054546496900865744634920523894370867583215699007736713333829129816285671091762869422216594251783299105518130153405137568561439661897238135809006950311608385540177003680112882348617729590670016130897723033456362728535377552299812022973023521920044798045472053150243960113047176765226213075638369079543376192782368814519469844144048780325911087678237265958238438516561482005926192583023459945559848028750506074838119239557395281251435460022993288285079075810982790498847006845457941434828968483960997067441521736832869672467195403799656535931016804025781462179888413373581844487483532368114659235881928123546706494210418792459311782779323084870433871874473236534201517521657727063722946170405439393336727395934902986197748065912312884026928317326731773001317518857350106506602737175270059446769025164361320884018770368080698850316533715750411231601992792663675449334120791222088871420524912305598269024137605590756025002117801453569719940683567004343936471877010965974648574577702011507375071668170214233277005602311113581610228236200374205445123389259712328479911396191636487082472927131829119542127390266077566722470868896527472354317608099023806297089295673471712159417380160111083099956773041780926212989887019117895469643596218995557221172186144739918169466300128618008290290069567907530412771529172622260740382946389841741663125695503210547377167032217836444719592296492761526885300744982774714353867733611047707431270226944244958324562075552326453153963590319346065139998045893839429336335924259447052613299978030408192294537920064252658057922434403702541864585967574153201671450939793320962931405897305551285009150211401929929161655692580385686326743873781658381171583858952632169206913038598853471463680970549758284292184950769014844600595599644609899491739514618647912903668853748591091373460646430720221084627753477122581834896237937686102016288099787754232135340597069101668057561626504239703871167074249208189714595193708962689216232510715329833273069483918007233992030765682660353130909796589536765662341076587636641976824125073366372365504767491907652178131623718451465381479185273391659974231345979377924339401379577844747635448776910354177193302083722388705685518505175322799253649228885212589810197410321276611361856575710242744621712972700633231712649873337117532677223764287431954375065847055452585858451597624205558234690563659793171515692030994768136549944109135480153145126458533359244278580572885724586053421579650076061470367437479548051016206721264931112043924168153401150345034650327488750959303294204409998410233818132623841808646024791936917634459956173761753483482913074182693141214983884947926765184327459618770042640323950196935395705458811303149679333462572649635620253484582860206700838390240159584779360834879703252883063829398132644497751615450636011850021605853056530406143249921326602161060878000451079217626237714907164693255289730403342842912770773715598362675984322643150894986703503317982897835609290448240069493227152916647176345068987955063773222847762901540740948269104661259853270436015733917225567840458603957434184877437315279381832188559877049318028504614719148889002064653219005021491059192980806152703497060865214344294296109024346255629613646528741098654551076721124880635906824054944298048720813003920117754189817847285041488435322524907455374008681436984462846052473186622380340124412580061690011441551056707641208984130465281138269127343464937972265154920411988128615483208235826122976207723574176387786607977849443073010413340193404706332363976268491102644395326298977278189736564538214851159059025688357271548765695492663751729575082115024750826765825133770185930559960009611294321016119325919710079609270036122671948894184816111994089704747113401094571945156707087710380653553510664739510571695329456309672807655816149711776895726385521547860705979194008692736231526001695056099678880410331359285664811328489315344142279843740844665428125577991718393223857728983976233589087737897728214525267813359905352708044444288205030227114066162013390789369025872936588283824820450226014174913559593501005952783935162311580971240684763343390510938014361862087147844613288900697156402112719664283957710200306133690355103056557584438136537551071452789231966509261241162026238022612521368260613172574943989935086285420705994092104511765954941581175469933861705395929654160098720910536032548178877035091041296130274094245642222774991560986359957479954724259821352935773724623720959917337275925309670904015635653117827677379946562427827150169253983785524848981355577403143629224289746885995800219806714313587645989245839535838489863305621284584362950901500184052564592451901990179933632064626158807969617990065648028024837387834714200533708113581159403986888187175481301551003087207861282535268435696536225398222911981082676449231661576135728878684583161059347519581702195612860399675439735411088861851624041840323655876612499466277804321705360594169351290449498613179778311197201968907307995872942641948570115557252731260973347543479590902377915873802793729218262151074164358300093028184827837664543370047731774751023467479870024029980834025638287141154893038408977896464628802584477316574439441023041453441200100877299769408440737858751734325404082517932994039388450130725726476280931405211931626918394309482963797355427482622681593782795089730465861940489429419332864245339996228027072273117308517529917731974355914964232669418756522390302490287117157379162630520511381773210143206331128832347306370213782591918835956201478549403857775096775681406514175153844295812871336127715454735006667347855517477934347597277454499593832530951139897675571697861541220398916929533889611673962687778544394685322050722735415800124060705195404993518664285843457632858295432187032873946965704584430136227105786601226677780741858515867378753764787822730427703597727660790087983890897068250701208902169909494772424739014483133233445337006171801261958853960657293138032399694792208507684899005459713910137619798344713448786029322542029717757927425370017334270221982920493661868417899167668080185212263943271781085738223817114747513968228394992343984597385043554414180441799760309585848843325846821366046890431740809590738982998126910558128438908102637831936736016136189692906955416941765819451386639786976502471543972704216915587433555113961220504742310754373157073832287855363052980500660550539122552867708157728532893121454469482590390255851527727046721401614927010442324445821960304358981230119080724599333957893185670102663246411589820748499563372608832197617705138835352612368538920847137117835275678553228921141428910193391628807238382860465289753910618887735252226515571318371691733103940143423924158799776472315969925341312438635100795653655630409576168394859627809203728306778248005378351566073716014110815159996775439804471895277507804934777348517838011585244155923623861971471657389437073847221597108730439111842984423543103128148613245052559632867758747091474857536778396634623800630162263035606014440964017390843265197922573761555545536775174038440533922169223495488411398191303366935332562548092143431906172379769454341223165450309196410325180396792602807239993937827850577947410380416993405679731956756867847960788522886109036901640620101082070293079301729992150967546832767182601210050597413633115037293425841731852348681854056010101380791330290466236926610516963427031323725380682010202477122842824595111601878672945704292650439731806464315511971706527574103842009306620547934876074145098384164009481274105881368228746422972176406490451896695802367488348281501023172200784305649339786136200856829190616187043457017033928178132408318078582722268823048377573601440066193835186680706188087525078602742010760626069937592428090355668078854343823656082098689544000404767007934267369405891567780576684654111819824255353362256210193509159389472270948164353487775223812302862389170311974277167821197914300700799376903300161575799114970838624309598506419736474669742710310642919505326059879315972301284722232189111211147769279849986617549110339549439797982286239110765493029473987719028983761423673911956543164619478432321143847127543745610995625273266342623340794648965111357044559289350452527416559471470913637976160889450705595161588540443748927359185417346703163679832277676307110562972483429685203992743312918975006235008314896035948788768122370473764865996725256481261167567090064797176994524021883773918661254800439373256621871300389277431020648993437784787160448734631354638763683194253849885005830027258533205494722168259555677228304390765282015810051160599415711635679676949195117432056580344266519240451554679511569082122751656799296039019237760543815567703517827858709150562625914058387010142484587024646959458342189400469454386493036661481251111789326817120476183450014553751807458949309121443517653547444701845960442696535473983607169793504355966207860965559458085522106687898798304031887323249258348467396848304312104390801861975472733324906313312905006299201353042225276759527993391065845330743631549689459520639863572134358805561837192621687064835499929912988268692517211597062189629955219588300889545039173623663814569870743029260102108319126986095420960345597281484137653566269964688376381663104297553868922876652437015016631902024538313640416856237930934372348996158810329930811861391346021026188101664567897788089975099305105702718808662753591803965226771264964728988590111035320641912609077823831021790589646544036691789572192398893950385909919300916065857987767572823303496628377588750837920299756863230727805028345837036463131075934914418777116669113529383179627144267490238296987558609050186937392695718992861875478685270768262787254102285456192932256808393592890628731066703818739394595014715879293416741468280418151056551423465468305666249811474745278054578210020184459269507532222658958357956073946636348923495970480463910427418406150012581795221506819621314469490331931278007716051883389474325482792745449695359360624064598984337106845499005867940615028304412619241577227458723888919738935709688421133896715736440278175265593825753624432130008759342383133376069700178757291357170973845559719144484644790665145579219411399265097969897900867059630563187613537432708945135659224347526425339877988654607751589040049897951015243480158816894915922250013204544694010947973335205105217593242930642935558618004800124803216191469130492878869723401277157492349475212267524780745185240559475384692703347778992226610325612178443727862902824040867481309402974154150504631032529630847977275115600585443716880137162813600328703862024618726657530093246258829473159259076472305672685863334905529210243951878063043219014534796793238883403907056157652406804707181428319123147802668487870823235883517724360205754437837835689816365699033809117145890777020506486351247626452672446698180844993252883092368905840989585310851314597828687648393459376992652909119875412545216932224828074582921262292845292421823549773205613241769447232295660977704154818084229693133481009826087960947514673444358232720596849359668344845959968903193484675447178757953329678033500810863416106597897886716732381869946624270862769295243516112188047119503744439959693772047430783617578389733085693091627381453224403805551727733512103995984187685942094755532722528432419394303034622659974393714262427566502217798850026194803177758571753582982691143300548623680573751437587961532282650019758509762268376963354247889265205986974680008124324526353368555308187849180990766684173015455486458109996549356115904821102382335021281457730033814833098037568796041658581078632098668946722097100769461562575786660885115041343325548032078386471809474169794325181147247661160202783172803583266364295471609417447694784324972521512970304873500910137726556710369158370736912913939087087768816576228730110176900857509173688562395244763269319683286285181063094506957726655108531984068014439055884854933113068980915482950642465407152024669841554374712434237393202416473340523122955237166962568679979218746084584270595968765768030532322843807062349625683872836314850942434310269610240294079850721207607857548688919299348795886497262051567187128637036567376010867399902526352390305939763596623618495938401926408142600380545696872451609804719245234706803608863759219825803425551625952841459259027360538080005760184771386009744861846134108291183706413067246203172980157665139611770235947256261612785405822229247972405631624804281084243815422769466638975788710182018267492599948038739621958200940648138389040392276564646390593824311437346021397469544640281545467131949954915691692677386371981271171509355329083677505080063249540379113393458502094575587841529770122973298158303070767930454894955601008692454280437724304362777947196249827788497358246403844993763111389880648556719263126737728446245749128248980139089491755162843954101193986486898952831570327542081610901969313598653384520698439003362304673097383636492312022940104196694134617816417008475172914763540617567547566371769470554120561944474179537517806283352709376759358279277322342535014219476405798117205435391769363254077808947649699019579421068332918710037939865521639304094638813182903329551618991243181975421134899588791392748657603021694177638913563655081862167519229268169559056942122563636827316909002774043803263718215304710493336496211055730542257844353825553897371250100283643736793942027676145472997859114338454182291334582947179405978471804983247058662795864626313713978641761212862488935007466763424406701617739904757556224074535172558194570634729552536139205630206721392922401137005529999458509960438937346276327151552078112038405972319697222320693824346525322770906934594472838688551144277457084357784552031252870239034360410597019713489055736297223552072461106236987443593591659186290772224660266651069448887593806569139635917936682203612261970645493183369195274504552088321707486962751522818300149270277763288688818941240538301566247595689567078393214654184445328138701193427761858615642343638327967797168946719773152155863610647218155210803382295601288219329274368337264206271144438757942697822980246155245485737949159424712028885703447838833656706510135260916503348360691173701687014119277514071887106918166255954794900308898815142997709209274488422266671830517631200097636808983793925214099709283715920493019238883698899756200020551838276492385750942120868132643394646799813205118627692924759181170923817925384657037579524227105736346093921210311646354457014759714832396852258736926814124039734978199592133131552684765431855006624428229504410489789531576094064931745191371492395402118106758329262829724527715923472410330956540981694854691894667836690199131843672124753659717215871861530046780120940018477778083565176660127577689567887723421387515749241329088190656153966683872278071224756930263682643821223539259290983488297465672873819185162437904861932314902349509027118553442826486807590521607864732612425741829912137008387878045387217220635253742365584316873126009457250249012336632563063203831127397779470424354676432301845484957729667007179612762643490611228725081138596300621870314265088783395143076666507800104580211310938474139412647530005480915148438976851001593794066029627041607911173772940111499902297344844803822643093684063317650424964131946422541727437812897013770931643734793026497289745993586534439181103210850932964192668123906477222590148652280454990691133045344300471659447865280702740993901327439348459159435913836134761454215329227753655106278432364323631669369344361591879745416380407896279699568601541183344497322204791318426873044142161644502870136824846621022626802628773541295916984242911877587363323538325812928764579761464045057133542836369931056554018468657963125263778839149009313516340847698447890459264927012272585480641688899087708963881445227296916233673806644410135906646602658958954822980999124370340356213869681983953102840834556578593826904314239851398213252877989381216033771395257889626597301714050216691507276846640988769273615423082088072753782292891608278820692544501339131335151145225825698931345343747419709342831610039327771893390763079755396381300008439318183808975866012246932921587470819731157402178947986208720198445833078322840325645382539747527602409847221578243999286643033010278805752996359257784473488342273911747317360575797038187850898196787117513786728689068441876055231046905148629681282627336974041093185924809214449321021552922280598425086481166493780622280511585219759939151522383401403356705304453954071881270776232291818894594666328198489174240517068105920499743919032428555079456175394707813952675346330830903734009596500383046789322585252761863214657648360828160586611233513588437925708020222192019847141300515693692838496308191806135319580290648252846985798242981189030008918112641110074522018299695278718882241479856403336867549301033985372112377611760371359117899508387080310268393582403724165020453262889725728035662977373347152492421665401178693556223191115578213842938917835233806546054750873403061551107032123618514002812178597129813840570502558966302221386420898299439539273985957913632471294489307157776600051389282524373860174236236896355981235556739206493366109525645565319065538300902383750751128661205316372228822238843821447279150252676581169244027724818628193223284073207031184992837975575020139199387469880494796917005892006853564585891228138212316977633654733104793695828669015772451146013233288630632528533417536558400721208818298648055161788353281285944641322484224535869759810630400342932459458335694288317419973825949753606748702216190581466916762214006397472370851264469275484058904838297854252866574646017742767406589320620388474358604294652645817102453819448790740733134587733575687715813878110460834964225864407154984621680470492297142057818755663660136429155994226543304086606159449207731074131983050305857894507708436578825482463696727710542691222810823193334368862363929426520627294273988186047009312057709315955360820493176252609533871468772012248695670671703417922209521807897110172917878310182374499439263630962374466633568227172097243131429031274569096146075885298922751733743626288532240626044797477340114533417044742365018987144304760793036150684591079385556708967323607332085478901718147997351400851207400331250793466093036770021263126206323558653350897671494179117817165731324045920351007174714343873541190923589550611315343139225504048710860498420951206201652249307479981688531416452180928752986297589009901819279922204083147736419270125500096198435666323014200782913033513199135776137574610442566729105306190090568337908364428946678454773854416598062348543699097940061500645141566332244173650184234342599842519933016399023954892814901275429789264055681333588683585486027457405646113397597883293540459316707055535569886237138995482287075670554180761209923150037543271976165545997633286113398245466243445130226387503694097269165446177351539896335682445544855358640994181613469776854566943958552183033165904186199426072377516452968841859303166116402807688201698117451280737222484979668084627350430407799417819393437639036411122107049322175011348215227656977401043628381277141157790081960557022984204600331987853826126518445989731898217640405382259180061684067504851731968258515867003923304671297557822297042583365733057179669787195524530842887845117692599341740017262685004858567694315069669738171208022828017374855454064349166094073364925337352901817385220370230217303172951534322500802123210895035790862522385037701423274946586273885489246897769385917741106150918354355279726009110165734778597034021705244043045508814532743171650061549217476442558855908534364252002899719183137132614309761745243406106527338183961987646860228410009237726872478983565613686897130378334934904751730607774975600525048944274296325143640223980036076754574026864477600911468537884102614144980820264757282911366744817205285205463826787599817815797916617719607155560636409158792117428278660133733761726394010139040776663180690630794434232508463782546243182712843530062677490843148343955689951074066271407887729606686051768309690980970740891504660422844129116221993853975929238062327666725063358431711851282048173757682592953893027496547472883967109894477028861926470221109625845802424297756820685345079890533896864856184240964070383232274406549968119637843478733187802939499389229991941624745505774929467468292526215119855127043073232675017678246024084388920886541913542899148130350887986117301074168752270903405522228440147739865248167918334382427701723212839366761397104206050756901467501640575370412046520849429925136065359262485626069137256101125025322232889280848210060383436305313562364531534500886949663626564639641686247018528429064549728410776363535463901336772686167746410092738252633404435931163070912118408419595577932362239621231281656334678711991495987554496421944670369606552328529403030460348371909588143447416931905325280028885167499771063559301653919994233558919967235812306135665787755882323243514253856074026901467365376745057372348847798919734550108050662233029945474808060012517977248801917960145264502694684844019893970368648987476559253047158154486771910001270344053963334842954759959781146010283432487821356141943282740866438075567231250144994492133985070407899127701099962701642414800958145721623340736725322144392828429540411608762291960175925019219316477811513735942452121614083693814002231924612156513105371647823972158640973248673354317812599981666234258569120165157451374531212777841620428567174294187061722304589778356288431291824860929069253308784288663011073500876890575429558919294230412428401432564929909037516398661600514084191505480950203131686365521743550930551598638672090683510086432558001018291106954553716060674354914808171239716506740953423634782742702860211620808116469934860691053486040823554870186877619810486884451791340798593499650689553789676605134528018230169313099077373095722718312406233126650460239692258294346260485845315548375119744752184976858855181025475932532323171534765989228297586959974523782249255535807280771483198298600136911952372124213706246764855100967824379844670302300592552432497755069561995183544765820896285088313487330579060947127605231908763706489003169898378046594358914868053735513853374585265068137622024986491635705876431886684667445346272772927739380668059223540615016747426495256782524742493203977445433254898058537633153404353286490261618197986709861626210131600113371042982777226100853340794803633456877088035050788270414349726227988832431005467319337707724293883891509138364365697517244366476856594962755153053269486570954992780648001531739638801761352225126647600381906318153795544897049902053658004799513289976523492126986717554785646605270022347650365134105101013394514743878953182840368456096002868738735493964832213975011983532571176361009885662472557501306912522073578309105710957858878098418120842919073689773905124371355866016431741078335094571878118921145009734734932561027415617335711187507305494154492383462400172236104497544499692282622578230224896017705331228828858524714231401341355676659803709605171411953492498982799344899006689334022918784897142804026922307203820660877512660008965349665104504839695022071755282108327456500203462106505199134749875789143345519035085841762827434723096703297725955538186051128427639358065784743568364270506253739800960819321528284054593211421080919177977587097813506047789209057088573588980905097103376438891812852459176917023267272788120794341705078984993342928351837089091749002961168628900421241211389747943245112562782011874794535171182029983482710364822053467497115825054291845037517486651273051889553821735849751338337082668012993626354476719691071058241746552505915649541479894932871422672673916966738905906259192593525501468851369155264978885274596240235495974047671186408550221356272656486976645847653272451280677499507253511526422472750844675528597681494745891321731764534974208379637627701654605544446030824814669310491144212341206370048216437807115525866336927422114818250752775409899434060750190552379123737140204110681929740194165921972496771165461870582670088163530005178796141530432451279944078187759769002286616381276204620233132200548342513878122412267151072056313843267558664162879776391110690020474722068253663786521463112125353263251130232922616531923591294801505905391157090943430823989449511410967756885808565428534055839995201296670581565340463258779854313346226984287892181547033783690123469373392946804542371405085796784507599598516775532214377153192965506755258457589447076840691284975650417098316240661374186660899223452424666509577716443329585440063471610585332524915306793377972399371349275002582212382925507143478232065281739350583145805339432652884839932895163816116050203819866384749335081038091952235043926860339124941787896162146190276276232163221080715359865433415916083564395770450443485803824373707774141506783381292472136641024365077010544782372386390273308999038740271362616137852301543582330730187004130392465343718787729531404240739665878710478098202016346458706725331531823849927756443555763988324328065616654725345987894933812612267996008587524098683488203072448863204732906755885266475105613334497285385424898056533612153184515465956126172062863119637643625212987859567690051458999382054066941453834459995727169553946199278482836535204687234195913973980870975290196318304690614098768415095130767363921792324875236174839707398653721224557930464397102598082984353287046541840035351344839698456553039885114745484780846172388575654064049534108871673355624693602254489123259860239269306569434488187553204423821759159145000016979002489576139662014442865305981717435000809487895871467397178289448461748621529562028587023692182068612281664329618040358127633918869256457384697012510966227708624903946659790871733892016304169960203557739790922737275483141588043588367791125460730963900656228115681306584564889867349168351668558721957304818715011739032874166934173429227540440635906092868780726688738364036371241449272369604591625569342258290973565251002736881380400927648198621567924049225802996968763324616028472577455522832364696382342054070535231637990068356765306312884324935753656580114863756394922040416124104175928636303986262758759282359268223836608969952731032486064645032019239707048823226866788867524041366251585875705105163974330750750495846959841701358319464970943337238423981803399486702648094053900747757432926986474996714919582084614110102444819693414135573533144743250878442565334730673470909645817847547863626628213880059397354046467279506411501362866745563924363206547357162430029320669801887081158377654796546919178613824180990941255642017641760071968826601170276751463390485733105066591398428804713325232012423667095197237041133801031094335335910819694700149545864892222307512515273808866459020409277582399487126590482850522390646480795871927768278894517822926137833302894171360169448223928100173948380877472930243235880464504213083999948570043856214152657958342629136961826500067294159584890445658974154262641231516644416807434822840981672467868978311683528036477466760010241260856146283617546488109778910249797166477716135710358179414474580126341989443857904921443882729016859939464845120124044880911111065748661169874168346383144666435563484786033671798106615397461446987907088853111868177960154110569465124631090188440058717695981832534779945069805015872518845144054725454332061369803775889308555515864228458384094682381935916206818281847225740109333221752358277670204131410517923668275097157414881331378655979979494929960690450910835513154127415885245777431905389658114587528659397099144943790339373858309427968244915272360206327813111032737748600752874801606400420210775788195684120160642005919567565913614708291659237364953006389286080277634216697277680491326034280892411764528452284853251863157889441002658655824619106807709765280978765298170385280125120673548415178519319219379937470758540128299077335826081140095046267348277215848312157104174272685525721474363255695733344649333599802097960119750665874084374914765363877692144609816414505281957456104776150613342168187468182968498758774173549285682730854533962880736008637894275501965197598786505097415667896972844759766145678561319900110463542671182285751016400781908535765738761640278833332607786859201722933178879218076632775577859946129126847589559489182421597296914802921331999963128003246351614630550348784242980258679657917296494564236456985556825330843433438995097208138248088979232097188939319292139926152799419466082422672999683576291108365636466750245785971567309564760077397098665154045597809547885758379356018295834778205630566367788235826277166930847718752072235148301071260639550714270221089192660592211842362686571053489809143534559676794852668196857891219131151530378316558034617667501387074401867447182604695403065106262764320592975448648983018843965671139897527886391054200937913100574887604805322003153892870036480382792392164502920076221204686476819205098731059743298495937035205057345829583990595473819002379614021120303139601694269900893953453158931136251942335850447210962733456789087049851809984652628921249634290315088039406733419797211452958133363224366573007863211474155530344475351056197488620261593300144880920464360798951192590465557881412113108728860680215893716018814069902346510808787074790470933059093405334548276546040069169695757573682824209710366525323756944565954179452519198450213342327484021296193142098800805929172363604234570210681432097620308519639398581012700134652076659805105289050060840076397141799830588800065201255807380722643216106217621500796858150807260634169385012408647271296820870637100573019241551004996303038852469898625811466788998595425714505001908609313536376973264332244438140460541735667617991338678394757107140786851248771478704345046033742375357145567387654446867653029509213245001959021284002098039559991933087155082953545489301392706820121264303538238938858523765589698499788682079201000198407355659878278693480428036813915631375576966209644205156846530533256693889396900107780723379513248843299060265472081426967021279966674060348477332504894161186698160752717811656308916457985834131839007000128088026671720084019272032314843005222817313784605299126781192574625662906380661539225664089207977449834335507798310844210023466317193589086129057551920567001863446210784670341746164149917027044020587600003628737678731718461428318939932317535020846190152260692234810253213853913176981125024043052136249009691115412673105322839964153911766849867805151502199235148367060265761268092137950573263920349242888675811713964370201915102222283710399125877978721516681261571373500128734738825558433979534858440896518402938439086572655477483160400375892410839262517041724055020926460483346043915054213714214050907915244103291948855591750303994997804795647140067236643162989155865642314694737881090076104353236566165092886640975538957202094917329285636762487674294298333782439650303955546203693725514038843070252869066470938833561268805952591541840333060997609778042555472170723081320108851891830495327412875506354492284529010193391371309156594121628372124277372374863861101546083643646264405193712499305295717767350336241556924765913934216326767329708169084878776837300897718322670549870122905758797182994156397393849011342427090877206487012418753074623189108987764743311380284300116673159963648167873808539238015059472523510599589920073401680402994167999565440112387818350773350571928365001008293623180183356699473442773990180638706309085905402757314925164431175782850383616156578522507529602476210311867142786952364042981133723235679475572269306067489947794375267400828184075334740206732918396334148703038618586613460620733227960843258175188198813221597977758434365768579597739606197090226960628454811493259881473001346366795244796294966732805119018616377386533515449611476007949242385801499669643997899176409407042294436778002168473514585870463755017187793605479810985310817395171870066488148577866709699829559276358002831367477038208304749547229755782878045879991676091424632509581563894597019476295199737569745438441954906625895993456089137699927465997182318658475806708503661253223086297504889628015076792567898108421400048687990891769489831186955642449080089492694525102535963461632010576253276933261065495144887090078051222451937272113632238998600586234629055799022831386851626741214174862562227614679959577073249988171524513402479087525121383512628194908411998244877183806408692124766091659623753584311471964664551017514841617849674193691129419173205188377469411484728929030324879753727171358639485394685921595535035690726944582901490980320545766507441838273615838979418059649858889263848388415811962427715816778401241050143709635046875090265873336355381978391542577440491452290108636786474372863298750683022710141936376331948471422182960811230270866843175144508609456350626253321732251007944980951623627195588342487843267154454181788888163894325510256774910420387525295731120219571178525891861279517891518485473585586579638534690510012059087992265997221962610913488575382328924438527255880698172929280783988990198411972617103223116247249983234149036883224257835337014724020337487943583989633931805620107327406195714673537981325570387411001376845698338909876783598705692823475800289202155825552211015128504111379988997559571703627741783688618017474494497769011739694176483585205297243364250703774533387429055048052038589380257720134855388599368943547031754196886533250186268960335669648104738032400497937081702531668070132915985786228446591176140149759475572074939468308832818059482940374275823594694949120617821245590790946411712681262248755850360786076141244069715038016596575999816857502793994107389034263450666192567308909412452665984693285707378920839541846739311134528105217899891912365185007967189669208539986436211602085607705060685570489084042475646355951745253870765743501103879193330671916666724148469826956604332614301192294200169606708758013597407100217885586150694649839824321875506513162507510699408958096228492002060813947573432087977655583299971730807197627332399979361856854876660881570584024121115352723096614968395945483658334002744669700858159507734491063242903798297775583340117939557451094381777804676582110844299788593517745121158139236467252104335903932104403936181038533238227605453095480547066751362156620976490212127575645883188868302366092954062850228504741246879481581337013402265124147989400726464258906643143181781124109394568475895070823148387237649625476969131461974498234121741397338928483275944546850926480563159548366002916786183082017317901186153928876832996615999316591617073553988846027173565665767187033059032127788467427853100191336874301961226015639254824713621775583265734033224748100831559888492043235614742948145609596523619330542028099167436648365249154452505831770406323574564456996353431344266718688060634715151475289055496669437633930585058040266656083821728910236911305777546840039249903296622517256546322505329122820433250389271072281501927676857012816765023525842784298646880389618010819333561143044801687971339632830011256369003243491320702256368663282919049809410242853470179483092032112962657749235911701051626065028299880300421180586470783119721800314172823382698847731378284251205601234889761094712284186104912365102348616094463409172069113607487516555416682739155563094460851123775473500784856356464617410690862650937151242666913502377517292048691293981364731788869412876665220112974784486646149595334272000446776396244353274956055648331078283513306247905244111541759743745299823744231855799492303174912716512770526443457652211383828179611860421425980860244363177355025601556674891580826006167434364147706552472920461582708191801873021219273490732795631665868702582699714904615324363798921244487545414534606604277920863034059906032876734282100676222700095811759479456111295629396774127277166451633919822376539967499320021616869945706987457660658905753502811987682307525583354423329959925687265669517472218692474863304984418995561213929056036750517077388866065290397390921527836521509874240088895560240065247733062208376008603307991872168967076154765196897976121094440698390122079615820344591390290504892484968103879695526914165191342450774244260800275393335834755954145205977496057600432423372216185660718758136375013445473863354797939077843494572092692567164149780497789943493780991719682639227155904008108137185813302759236336981131063203509897946568914629882435151784742483812422672820421652933594318164144785196280553340693106236926399240155604025904571458689562571755273124287149438791074352637022331120184364558211345962059479602747431673623018829511728213511394621521759494171255877522323046149925618013111602725591112032399427276579596490727277689195307741153809376333538242942382903719203031910877705941683855252045547268193246081948143753771970091344080116908580870784215816008611638150273166904285385552976363853550367580153524054083140088102890395205289282667605578568658492354670248480749297234390640779175486268346276451785653428444441275295355338128256739110140637221640219902362384143203227898353311403903402209167590487055499575212461099493410546341925407104033356445048046504678611854964568805770569720778063453222094717630765500679857700119650286607577748207862550469477780255345571955543344993701678003802527347586975100107210501361575470850854361624405232350445284073236520697920640108607693993782595560395951185181585928024907846133441673289350132089938083905807419520845262118968050804495032477542518481171656253144874506355119126098424640134195698723661620651417221856249697132469238604380766041448594089532376675589941509997215226183912993528751902625910850506682691506443842836574409483188154603625807053645432944868571138900888641350211064435866456584223908045462781728311557132255856964418980107250232446539414022774458916108782138735624930550701756311872865546876267366748324676943990969084963787599115906432043539040039773744667785735894586928875263257289175384314798951370126605153178620998030154289674311615273643623248048131609217584328803837888269142259645996044949460992085351893543958460753415740391605631749526592185363218137120658404636307250247980793294791934610366791619430620080543898368299540761496220668736257204240179626583971079281712828066145176164127043728308331896151453759700731009175307349808265023602039297518305127277374034772834521107466815107372609008488516397615032596687653576266113642289758186023848848657839029467190596316774484406225499534871928511469028942314869184823308384315380073859310653383635435391958164291642320361886894315147753186607098842326197995278045516922325553051058558950870594845710823892136307999076090169699965508323978664054039529648823800696343059633171814890839976864373978453276896636357025443339884699702309537273757464523293931863425614158859712972797886609531421834160585261992948043913187959940734696628151295177640743958864798367244419444096616114092390501719195796981688071526282187734795346593392427238864429240797774214570773496512786606003530455691328761648727427490383590225209115678232166613231439504900680185564523683295487539247373022678294740843889716061276927222572814845945510212975124992264483763397766820612360425964649831654424913568929510170979523143025681472939185135713097356633642589945293980397730123224008045412180833234519668784847759421549220818458283197668696685133095568153147714730039700469170121274903819766130522787433821610173363652805677312557977029433970739454112456593948652135508321777855322048144530406931740101914649031468347632788654875795444126324013547626631867913811561624561356621723036436016316600843598809909164730065069291778549677814745514214540753643039282398572283556251359856993935168991995815706042285496669963940021336667661793787581599251467571378410941824542057345066058237008225962412484019707851463634322427491100890825668798966539532904495437118934724405021713438926632129992485831744006925276928536449282026162947562663387642756468761635305840416516618081968717313156563383554146048333043598764271025645391950364061730135554743070842324028684570022944573830760916758166018117030805846351279259370770789253670101523059101765409750839036086373175325305461005045136036459667541862488958962616727600115047888362302268038123942551203692751776963311176036513155556352628847255081801647470715350926919704790237349297918789489000657902813133563952422308208408324782940372872365237307093746520441121780562834474084431745515654963659882044837281837337160818447589695818181304250452670235181554225077315112249477728419174949893070589943565694661581226572457787173739655594603730793720592260321127664677297840319785817958670261342393128875747765733308332001664268626277752986864452859027319804118651694196406409899450162035201480660313429462346400372018997933909522108113356749801043809548314999736342657068551193794883209051719018713342361191968741087400144201773722049925800031802856425509792080483584532891167374871759043263202105305049458742899379380352669164154912444273446410451103576966384439540943146789553181625781035968969968621786930852349952430111381129028563569769407212123569725264939767628833482327087752328947055395545679815113373743527885508665414476842636255546566135846142439302737365551778622726900148823978683513090351330214902645510561238833907222740653503599450838061363633111433408778234809750562473588668752907309017547975137851332214491799823384484841130695366189063110903110442855465687869065208093923786758998010725105908999056553641216261949476019850063012706764466558557625409557396767856693569899605485559236324497023964651219940501283515301409931203514584970182372830863211523724816926045983146743784356818103222687605476736275087520519178906805016964011195293917517088071612646212093244372705170465475779804165357586997507371926897825393228842492430271168537747671480603974160591335377702320715224551142368145332437586961030461614531639918451851786300494522360664346788536420762243042517482135683071266832353827292919875050401992001417481029659095558932811995360500103681635213658940315711220445003509040259893773985579428404525427412992631322314458772890426040538438326208681257231707656922528988628628945221549503279261816440414728002724446272074010261779460983783312949695906151677429935685742068627141442154881936344840360918980542898119329933885164010071691548492623576267246977135261991602945668767376518527136552586548460001604151241961859943484263054941743722503254487947241666241986277710784980662349808566921000035023215623518622822419853088262652020272272333439793953747281829322721011895119107571116026809212046968911430901152100362956499452449908660784008933617546878195931151198463755838700465595803523644015965403472197297189074436805874756335250418071619193028597646028656455240319592312007774400321435426483655265944926600923134853010066573199691309382804598639245644611621384315087557169561812314805005556367432677388473342125572148687553147195934275249430124043191899230458607267266247435502210552983865135112162320265956120135093235837564143480869855563197756698458561707163759234790570816789718221064168519125492793715611180819635391348457967078135567298594971421986536955046452739490407780023913014105856894849414874147799514594170001716932088259062614039153047830183236256540719473337886924246651502961885830755803270512773376598959340612825229455665942097351060921651269353854372729955557322314659629530376234387652642088762073919488476338950865614224718214483481158176551216073180530890560444555726415096682163110927606091049402940564457246855380340310338651079387908410543098650295164039639293667222490282742048396268787112942850545009006000987496652824847633704221866911275884797824595231035421892860117457800211178972483120667133225650234017372112865352238525339929431697736112542074315442865171396508415727738250182231355383445331528234909150179956543956333217845054400519884925996422652973017286151306617296144312864240758914536113385366427077123240169669162710431841186026371728916155938499452577819870064251237930453439461685383853465608283908718315835664869482825770302766339466447480150685387205172619530215148282193136413689016013713241208091284191241234987441894311923629090969580457959409840058572317460499387350890329926057601368767221168626867408339199795567034417613594865848530521895762523702611091955556668417699138157122547573866573471948406247357748690888322416442840508372709797373726071288912393905733589427398910469281461981693555035264106807428209626637992908304028591574555288112120435008884431847675030970806651183608736355335487480751439505533541742354880778928840566454140594971218803633560584218966599625493508598159815031073901649820914283895434420785616451481452199807590895543516996821075107518397036277935542098800706061642336078861238066414755582364371314757860991543709616228672551594655036193012668663026360905106302366367939144779793479786294110475312333878680552952707202564331195092974046128994437466042700211219169964803168621640167954952522939721497827838221476617395239358615649585204502937293971110976455244806085445268751789179499645930946505053654175652787782353402457578253133586375050044122784801380935953687376999923545765586646714302102043869887367088619539153194072193380771486496164159021520838502182139343652516748542545217986190293169228579982691431073173391432980914567606635925463942815328620840960629170271165308223523694982246553882334752369500133186757025887751271064718114195080418455489211578339849009665000026642985380755734304488907920824663904350053258108106166330203882156748672940096824520074075204933447686712145926483620816784960624970741810813108279181396853476880116916325082182750147894915532263388397454970046540204435177395211570768506722537309280743406076669082721810091840635874162435098145606098378503872611278313183912634299159362750504599416048939519205717106458409500596529595222608637566777598893387065638954084743106244210864768128349022289334261824924259573776544581903983936248061113003944086554029874233251139807736169982550496627122748452008386400296451277875532635525472380594002148627376905830042506593810500440268305649067214043784259241929393765903861062713653089000860322581960226533009922161476705339540727438130640483403922145770289930960167383336478106059372787086923637684267717356387576327795528876305389694269267559690353123017405948771345885611057811599270235206851304454424669294460465105166091933031416553279076587943834459580243025849312425773055074430629719158137742683580865471048297247524640576650812568576557773333900792501355195443876754630754706102299306252521877271197442711799823538686520808804766714475572376225236574009942955005821515288527467962718830589409800963126202466330347024852532608146264503503387417304952967121654794151364605669922372319879786890469315658213212199559141243479445876684071098902718600214585816017930890561762276145709088926209070588727901505535874809987212987815313966449544492183202907829666954165597119945613238025381479397474052121385362455776538057072914824463970090936025410173716221659495770817477382789210340185875674220522346742684514450243890246510658911756421992931781488336684301130148813010201224365895707780168149648337860537272719346305698169342089005376608551364736913715088452844659994484325785047266532730535206913149445475018508203404320468276326992996229607778198400006708646716369785661940924939136988831250851478774257205411372034667361856206233652168695358955209113517543913578993977615819818331750085250672136518929903704628234416629348462974418311244800087143442410913732371019591567940654344141529534803103257012191435681957413310595022823858281686242105431319624524014104519614986027111106926311212648297135853810728786741630359024222411586802660576669717109168495620799452595559660272136019113934424434603807043709503526090797224054785028851573702092882480050615240782867569958559880929512271117999591234729260975200353654640238541585253962786181616955087914997724185799977793007261422134959017671254428389653360530900877612900640685550268729142854738134948640501302674374879196587019256548634080909592068481439041754895033172396821865779401197188371198539725806070529962842309361020377526809920463881205908144619688035633052894500428092781173739872336909922151531688642691952218408061187451924732016352861672256265827165527894650908190475230441124560607992062546460451914262192897917939395095396207750572088068851053857065178106149544817710031181767784647301957978931103650910449023424686277821465536812334264124408382187729438333037559649724220893558310783985718984923855013420937051249528973417238465776846922848615761409196387048751920354503251073155392354815001030488586430448730637447875072608214548370080457386711140048670615023560939587084456880428274353876909137876985927512018631677144252211992384277262380263109086902072036248859771111077634859085151234746549708159937422320846080311994236229200747319507522141730418252362297959122255252621695294313776661395709420568356380050604113520156325516618655513501119272936414120954793781875629253451655069314243696290177770013094736498259224531084315869873659118371788090212761715397247911435358795850921713109308444433663931984043645636014011228203715983617899789782843770211993938106997135914309092776064619224111421997093802937106973446478286327108267270570856320118045001594446664899568181787460990456014802988777006887076606994546951445971587845907807948134306965966168861157797308754362456874950870063804516790174206326376842961130386291482380114713354071503735760917284495367828864852389044189525185284429436827262650524607886446524733091493774624837853145616848317889076120785490032857178118440967974010096058934509897799053865164897446136559019848572994530773750896907496839020217867927121575209980494301955299924989560492862941984647348434617352275158821422156788689291738806572806450351029935274711060132073718496405740374845043574097245826836985959246220491391193302695424994645057065761628488256793984153375532055940688721533480204934206933106923305269930024209990211509559385556766210632628851077091872948294204129540015893585454137869373581053524801141369356960695078720468963230315760127426613260856787261601939596220801653137710359943891395991727162412972826312682643817327467452224706102429606988952655954768655919087116547638789220351190601244956450200751730199657832116119168291779848921558425194431019604673947568176853849805592355814262277600095196227921627371837345817648255403608670735597557261485289805019042007183633313013574633772160262641248600096814508860215987318112406848903960664516930120691546037274810196317550265120405842182195076230033302686454577906188806348965276787073203092479671924568522800888267875989603275532509102989596058069161416771769694952197501939908146048566968781836158007773117486648278071905919085414863502026959680499012046824817784386504660434439080357252893632280873699446923692206195652680790847277915227178658466062769828654554447366142258014127795767478483011714796203244088833414765869737727376608565393803920636520172324117646677077447002478296406717929297733009655520992071629022479235011507454350714634155433612270823738799360776387609536998003119320788137318965726598724837918844412266688111486424526094361777125040301014133872374058716868459754823973692072606837755396506112991544772664811000194630285733598011570738304515250577037089809389925181557756224012831525903513726561045123779733601578166875138348769800457537672360825863375364213910408670523661764681707928011457265942282188513052147739556391780080026827348765568139656970351915121006863489952369946844982243717676064139995281137453414579786462560695114105474722983539794512615979193363037010782516158717124831563070056774060699617177723936177077511380611215053838720433857372558750220318564004877282138765264019663812611429240322039203319087108180676800137640568413564761956892144403407694497064479327482597498266696563987949356860924361114114779844366398720894148403474324044474268592988402531746202445156304370638619080706403721498381172868953334838496622086437138708986413513102957478776541666140543611776272351069593316741613897223267288721660773374866334860291674268257764802278549906464091168474035729655488065397156104471049575629616837816281962637341663935269096248740750062594540077080109656266312732000950100980034411949429466083193885570795791105268468402183754086826502487648006446525241478182636455864203296318411426888231631026041641722265711077113843900484989938586398380812656170045659611974385433336067651611942689090999815244269512629379475170398298112581714839387432195514096046288111199783325522829238443916725947043324808936906766666336519823320631765337003192782985164675057014630296544523524450260346528102848613735304428396246296362929513534354118909395458150442804713230560481629081002508119565575988403552699802952165780944680701529748600135999351260508139151987526826012235058918686649294503640824405190110944655801632970668993430441862321748731960824885219427018406274512722457524090274634188134316957750203987441344358436257349620559677982960745948739830945968144308281553595809898255561983302129855980220222848577792359819568535915771549593351263605645255219523555065825731174974117030396254376544521166858577729167957187232173311845818613733393015754848102794856757553975094024499011641175332345790174066790726513059742214179092569730201544306398039463990380920012638309085585546153981272463840444559529207068077373896994230463532042585364433889387330719425935530844797378292987409211591379582667949456026823561472335973825904262496856646292360195689376668371941516009024300621117857406718042112145920559434459014085076815443384433603885439144372220696390725320920047906013086303953960286336447321169737099012622859394722577176916303825797832916576395284333819216696130747928629150582008043589626569945724507555436050963899012993784723821925030450108626353600460988350944795117567424494781296714903571541099319466963159623305694672773071340946955263011171050329146427795304223982151845210779516868901526612497869313217419892722834349538735628673371322124942077777443896001596780934985244610271623516323993514998531154843591062133633950224656298484159471191650017890431152078122648833461315122292615311895836692984969742293614563531022981339123242633176910565965480440085018736473806624786008265230430231771544110895053922303074378028600975997901658061658689028355378112431706219416018620410716100874410574519282084650711567230002079036382292952408072255821698501091250949769925716636319375698511549201764092744777831402957075552218568797305409521764392617835771269543556277976831145675213291949948345466484566521474851262214894477990066050952371118470635299382396105588627223970193678685245538736315368168262068266348063618995325412726733122307647679866929162542249941699823212218127104559682148955061144247928671811868166352797185296790469762284356347474891141978540467986321453968028390166828593101627459075596310593793318912774601253281456838285196484338547937363819762669500739970445007219231876430097467588572727525019095311026035108737314805785703295845057955959393143483047071850138441424147654406701390028428878486888960186154779137851264777508001814840421577002058472494473672191796992329033955901882690444953088691226825489559188050643478332905682125584817791269036752007064570206717640694425774551635661210103205399002395078403822429428315773822949592918952632099461980044138128120882950315124496718091042429597698240574163389363316831857611359016879589359795672868328082574171183512619896883205427138090562750021644567748328969175809262995306775393380954863273282082041586602856290247093344293431589269444845021005112033529003589042253563849364474671708782435638054398336939734674172084942303096712344901667356493828202944928714153045317667166286767435207552518841096507500069895364255699519175957987964373338047498450269621922534575300124793486483335600768636016264716785952517872251978416641002971056339991686893948082654437744474941856578926182330653124909723847765515739295879865205662087046809113183252253685380432323521140516232441943624664751136241390720785799101022249854386318420622176414716745620240118132019582575193732421815060062487063676208238858583740372676783929803565146911903837810194310139483177949692675070629249066745298160462290116129628373348114532850484704108207013342276426969656373284057855091662445008894139174925486683544284933143964946664459274395193276103085844806410129262563468613394808604665678155529149881315952839473153844041596145318757875166608238948930240822793341819254454715718687042805878583176137688222253277876168848951045791412794210955106953224458074871903696421802222192652449324937867605924392675595991442510080240719224112358346500008045880416102544532729424993472000810892500201811258417128900368047617522503637298235252725041983025436753882171930861267182771471785189557272786742976178628314100315561047837279903125967798548384538111991622343406887762403813966087854264054021309554028866588322294672262521708699616714061432934790609094990771874562104958588597094825297021976462966384253416143474436806359690777622432934367960081152635170140898878274903598862563768057298161428165772185019536251651094599904813022025358656452338941138658757654944651166645092058949795760224980115224463544433805000670219372323853632001433558017282158144133275692615264506152726894126608490255887771546592852801471461791497747732387462421990152659848038646948782294725846421898073692857274197140099440967559088901112297073642122450894504018620776173884527924548631038269777753203498023381868253518791840762420913332108768748666987219666965960798922217550130555828791587984390647069867074444937315785737472135997273751897800278863851783947791753707291736451097197267112992087698970292498182280962142776284704446468369380243365109079882439157190160203183549703689770511853777106632413768502146916729824329039419691979913455599784126641413961349348884760086987695282135665346609127589360120116726083933696666783486663542903976171317946908460836148201110664637618609948177973629820840210148013751560470578783845157337851667537676559932879218761457282307944055310290861044243136363290937882138340244921366915786109636312562515092657125669533294299934243698507113385751123998367531038307099267928040696234186947432297954865873391515487932396262638696433301190515524428894026058979970715172998773205864320858008698584310971617043321134139562918607637794182206769519345345358221046173641565616141697900805876630661590630385097131288650656507656047096027376514483159517068249167366223667952325392278375686857562781139286131191548345019071975363992166393162680399155042163385818187794596250267019475374617055292276842152456343774855472945001449343594111251915491061148778263571876336833420855919043270807008002211087145456484567380308020884913228277556540857395695252153394018689615043240923273796739569194580074445570919912783960343844604341687089030442814089394871449866405283184511547306571134624022319697184010216892283905304153130277532290915408364836758546084098395938029112455359052849204054661063893422451206177897225174656993058987193810854712745333657641416865084837980618703464660097744652392703564796679217931492929485424967508492242702194076063623309954672796044439457820049733238359027303484371933993794161373668385487752194295940815537700877925439030392621742179698375515458060255754909690244660438136242497426298182403606370752447820090043226318581114201611708634174182545590094530616163476142135806377743816932691535745660644092829743939183718674795028685469225511034213856497097807891929748121015574551732942860492299493606116370169202621054189947340088206063563677382050821406037111685831229753602948301255869399097489621679621622305435068663601897005380377990274079508031359492548151189784242308609049469033693616101582847474841125906108466907444799736613823660637827369282321275716448068465900069452282026162515018173159397621217586634884472742368923866575759368041435574580962927970324655618446681871127052641251291151404010634481297664197119512262374774295799371934816575581027191459550467857750698735312804333245752860164355580913227793967365674209316633341500720292930290419736427186624210793856286128486016560926852363022161912568241700462512592509283301239373291653097558176908896678521028042271012213141321626360598518340986555194095670743196996975028340714582605159335179604137636859696592329882813255113181672683041246275472342041455718986865980447200871835143611218336113416902486111380424391450312598847842459557961890274076311877510984766542751579563276340904850875616042113580963689835726509244115811752564938223720909687356779711386399497766404175630870446542146088822717590730015453233582916624868066027971299467520415409778855801217366533272525792364583330717103523964273275883271161422347509350104948801340364860708430812953920020007472456257537723083994279088854220135068292200114633869811161267084557564396275143422110169219173894645714429053479793815862920149662170460168517295976292025970623995121112674570377898003776884549068179243385821948491583915943690788726248431910494329965746310572854497417482414228705735707213306046739849561127055450939757509764424336580242473894422651648647991521390666984310527954999179982160044433482044600358683873528159297992060085273835703069483269191445282857935493626278751399488194914065263445638591417754898852789872884251202541093544771372435267378641771493339896434378307346891514900398703489432844518494485641438948186149305158157136916019813036846828417187324124933435828103661747678555004392936115477188201354885886414114499746875434358908862858212576581597651330057871966560086567185462122981862334788833495944066071497852172573093757686675292740059788461654169619954286531565462944183858079957611527679529825617324221831473198783700607363304292629059578494974640944722569959701353023006084367109086353239272776051658005921448692771408447305287109972909577028599870489738105094978663497006624628849003422967849588950453757855875914702418071589605905620016749092083249612620304560832099083271248746345646565498811711777081663974295411217420171649067449043277968144536386139379148824648569883253963282430895886325124066741315443103322259321723179818779496618452382705748560524367175110895948041069208882227183792714342087298636869916977729722240671019319342185998468657185713491515486253290954928696180722516886617127221705576430192235537276061262161676007827751199199920220869743241106369684903046528979160208769647041837906749312397802938784958374841474814952147880911212363187861962857156859221982063652907142584806129862251452983788456405633164527716070113738903595282844843833751138719920172498333132785453354885596703799638506891714702256261500542697947527068323053021828453184784706845316989142162030602194424851265006640065257157700648081195727835149656732190630696629947747437643701923217286733759649844473316872707425744940761039723028926625791356590825458027200876819993949600000310206380049273412376461982150755058616235060091037182496463437045509316514873374829927336235966499714104899460981861138352562375146522445507766901146673242245959105709872342614055845412181315024445775132500907695233804171932513937085354557376345477049892789405412742343294545012609827607758980626962156993263844421289027428680655395084885687369423973408282802558684319585168924600984115017878801204469306502431274044576037431920217704898014394412718124283030594017581083998787880632275160951092772116491775385498825688102813618590252474425572031580207380189118837674589489840771689322861503232387956769346375545123767783999975634010259210593218796488613084435361469934650835421535787178421295551288155020416439988967653691488849493316488787499317765041726484651130701087167072575706067079096614054755519842939171638075123991320004916846073841610268572766956194653373241167960401170701008013486649369413553421395277552161036452205744633323480709896569845998760635567204508198933381039575258961490311013410395522918508336782349379803521553236726038297743113228437986604859848645282740326868816739314444626624571538599567467973625159339513036143901742164932994989503375265812854387202258480792063989634643280844580899178524018152081615947319671407524048370419525460704989738380417814661257777825465333475526357076045233286932207017478289163782557164162932319535284708593873589715900735284578955407100503471229833994265437694665873701405325316574850695404797554001763780324165012501474205248355324027052762476730968258928657835913029678151694180435653260092028335096186646808136509211141986268203512289518642207218219857209326311318624284291469639386818369840544541960322102526175953523699353369678297771746406676891338505210120503120897136427754691388698466603869972978791744636612755121267957069741765451182539230646064335407767656255991430202801710780719962882534544095966061545663285603708735800410742315913006035979428690781539172311630164333680356803178288313375048038038372728692177926332688318824818377291921199190993195857389260201245677931783183815695643242232640297812526334622085505377131112921913826133408675356392565228248356004685614655974049509834455479903119214564096225961871981268194216974157022007463941442546187965131654627092481645005772786697300222610558021393553329810781965077657560050587054815281627877337384633477431483928542001340721526770324176493943950018753070683778006666494985557719183026986475904768159397995728492001775131757782814212124868475380827302896862205207165579017783101749194703388871554690593639490598625858151966408823399679474147762078344058552799356436575106950644638276379189970171345143237230729620282488506380714224618501343482687958118784966210133740878395881548742249798145701147034847893634845533095882947231225246618926653082698359689267569701027260375080812101071918581740732244439231320847375819876611505510098722722615138410331480716366801219958162809962890599529400800882929233170147466220444345202347103309827238028631840241436443726424451353920157034253435458473804956719089489239713243573752304315090109451475053142707180565544595457585606661117859733843808558894433155907098812584608568970450609479746234088539351571732475406163813934176096007715982323356445255149722911101895734240506285353709981450967892336226606079319545709514767365547430902722098072272466880460640008124173816477020251943592231972256326199118903218250215240925039517020288880131835345458219584741751903016180735306159429519116636237326486099279472554745703267013406434594009323961503060114340644301214544442984660506829348244263917626886709819243069119187210065107154840520147635196202471504896147320164796561252762090176466024910484977233219222331102876029896286799937682026161258241962478517401283679495198521207656839081258000482717026032572674029972708010268115148212076975524041781714115753816488272709939564480850921770214326885384408588796150930543168836247082483198551074633593686818806265573853176230123672585224378483561885505097851642639634085116041324026031589136701110492818964836369339889770018331542964711685792242592342268812356816900669944583135116525809823494478033934703873698752877793651073344712738293078098828783684845446932395488618043061781784193937727079411384871974009809676269064150919916520998318459176233641474259517347991217713778718691729650274702461344230076157251274067529974180616813207438468126913334856454701457632084075888016542859746087930949510355601231991295662077694133896246585058450306900865777018795531060770518215903793544661292828423706560823920458283427449282113210859273003651309230245064479327106314030739931242189794024238081907947078733491574687164204981086662549825061296602544028577056936761008705576491178163328308182592534287205178910603799605932994734684415747578213584729374486563175855909295301360653536783258345584923942091886264374977339694753872429982992123991291536563606607082984840694380211023187141998040794496203006451533113960745346652921938950664773398089868998523068143268120963011543801061134377221561629132947161995021567673640630150298898256687774357965734030412615449601937116965991090598827492772903100686544000101829007134469722857622268314862280932292138204901795778473792854674427012025655409438296039336044119081033195064979771500435261362486120384499799620720715861806015026490745459770981710649396248451251901015030689094662669238752410164768359438275410411401652421978399664058685468267191943850938046097138608179096072049257453586969450821951062012532271751578164632997550999689874633711409003813540540990781873503313367095673813044921421226535204178342036846902363626517592079718607041318698374281932357365428907749766585410520063740672998793821112068783198959592547401268746181177023889693165352264731205310708362898809781849885717095253659304617019175360520905602863451949739567774854231322629474681337219295320993912068371235972153413377839591077288216061743061377396261433953136688720399877627446129833843499733597557293116721820342215875987453334082456119269782637725095741825064968736040971676331057145958162399084636580417164080915119922080463753636285534336319052914400300820986813360337217285124749818043236482084912016482620022159194447330198130558434245833186757529149806363453729193658149417775664837760198197522993475216219753286605857488703124694796050089630190736657925887767441616963245312284771825649013177279792882073357261317384698998645843447977446021873273814798910247701681406197293855024955781531979541299030241692265662986512365462740254993388634613436862286492415888523073501874656322322021425804189645364901418216749432528244033536872801455596683985405637856663872655408613507349362663237511976210766059870668215648412040284355951679119495856366728753189397267961758094652637198174042805520195383636299680731896612303410098332281429707999890249387713207956982086156023290570666606715210188162577688209906892245753815907444017039976752541405078242913338576942520299057376817614591214417972894292607361486618162683405697500149895187976125635045170635812363276407942548169244984822694103187524323681096127684643280445895610158807823340735879056014413474210473854235727645696242366236623283881782655919072607765804392289230140864723048319909853961947239402596880824041211433201522554856200087267806465451460699369939927640986574991387864217388434704708895261878853402816215042730610812355409512536457410548637539483470307919346040901940429530094233150611203581094027049674641196963509438592524390668931210572645795037784792217981371780457533586172127854111007282761921502050550648827893975339716720908344055806758054417513990703386202818542843096399675258874648307775534790695659937916525646487754022912491044829277844656682792457920076473560698366661784778885855296271202577913552804724397408343113897086492059681179701495086852632100326904278369899234216810909346193238562875972116491441172412218763259652065750244087104135744303567310132824354541380042085439027968249900052741437566281573127773492288880410264899355018991466365930080235673768506514629546316228010523165295867858028443634567869666084927938288266621589482907888472872516324038583276050938360836373563415442173397994004016558538572572349248806265413878104729474841029208252412589653068472252933468105474631090384619214782156377749502249327346994764799093604309175171284046919456432060723577733684627295342051153800899660182894051130547718946129532550148706082167729046423566399567993944094125559042894842845157065551196797376397454684941856033995378451501278623354270969312767873489630274363851741836636881039751981055185127238397160261790271979154270918321382373953044690060935515323545806872088133561707989058501437978443001372429877498484463593397249634875863528030780719007257737206756342899927146682468670355870657967677117047340570664753902623720610694969405575922420505105113102128864241123650163701064013900286763209367885475059962868449579782690042560191595855494623148888464469767744273597326370435523461804432316920528349262367119638758097126235446740064660828210227780362345293617802969821014995062067639805033651476839903788745605819521491127598012863726965894209594992729801310574299230072913595396744602116767175731307273663115025072213212033633855675832308369295550122331351638423156792884418229994465197844112024638912095346150214351271464273312608649675754461817892132061106714112122662228735280467458866640998903522544363415750268516936039026346994122144961680976768520988075986472905447185328856137622392365585502857258193223162514367188036375794305904218042163138177560171821780856243536769872947058399114025704894026018225170932436485543333754432352417749333592501580928810019178035183009352598795031667089795565094206171916157335158776856496458506178464784291976220044361146689993194986009766177482677805687840749294122043702248775274750875577854642813742105482976075177222177068995221564961585926405204947689038450464715929016921949842118311576735269175357449820184365279270881120098115452387710947722720269923092158595345265218085011400945517449946360721417285603799130015101270114350215955443672106737389652566919361802257487669192824081031602671135727660852792575059730516011521921380465157489128049031815819970490086757697324152004424895629558522608035028487206512326859142942656730537953895773968174320721852048935199745979130019216833029994493292558206593662401124749397756125280619649067083384220402446983682422225236514994496998523720788641800173667884697340811352387974359101534837592337748617310822725166732229483050978930824747931156401590489281806503099356435891735206767362198546360417309020369466927626249937794835828802014235518173666383301297996028114686994288233577171746219402051487157814963209172168271475278380047022023435171216605389253860541539703740962605471688618272160045435255254591732542815197667914292333991355937974126145492628825318835529604740978262586567699235589756390691018395524967304116696404690515408622308849170158479153075551171121347796231284306951126013711668835840041555476993719651867759708059909259918451573844119024500905255878167081384100784040841325623922762872647464785651763078883213623553394238492207172877092307906423996343271811160033053652816497135779008467082091494593550954960585257222637674642222010805909526246424802442479535886751855616185360601359911325450786577841461490442668341847593502504937178085721524131870671644038815810969106928641459448575371769599752921999957036689956318159232737603827820923521272696567654060311102810611114395492899880762165905194802857686714349785425740828663237378200742110099737011741167863840702857521239330284202957392194731755453903015985028824727670887153906143321305267943601976483965650667302257082009326693394663720064543082866401565742725995773847616443659705299015593931528414004884135713038714585505685902851542304339877393228049511101325979741525730654892658806354899389813945619205038746472843149843347762333250284401394446567979212677948170828427619707386815243900153140215317081384208057014380543844614294421848292465813996476387291648256207028432155028634660943118334807655954586533355043056733572063328770144564513283072019802930974351095087293342549904143748034686026932474112268033283150462123872623200704736454741529220570994299185845731297658956943653018756800607522247469421939862350219598194294042767324624895890307684570491604203934613947377912317526355340257133596342740833965602605742925104278232349915375912468782088187769677407703828561079081440921807289280658487014704292491849979121794003639944568102038323445306714030715033115081476445604079513479252317617845938657702708338713946561947117534918619495329122198963734183573043297273124095628025514655204913379589253590844085050677510250219098063590579821964244278968257112509303923368455667815000536140724392727291896867617757954686435819005282378860240446161773847285410712774854290652061645926733208381581674426172924667589478218262002595881560802182123651398579015774763403303024994687852709721872563731837123310754968832963205504050008246357172199010963076229690138872121211199820689875881696683645529711603210763393932054548011936817439654370894318862997701065569381856764111417611948160017500764097947244366619197101361494157463700620846203721514821678142111033092486001075684891210227394699233514580817997538796552490795491704806087694886910154865602932526002192340969310466878058840207582442322953010281106343269177680097563499390855825158358425511164967155685252351355301807109563231788333846656911372609196609439122625620034004066387242792267742133453216466615319352583243883556332499927326982587066194438566777870946381599859549689191907489892421365063775464381234817549355992847472049299362700819353258569795892943041503101842435587890903123820174592754395292573235962477301999715420850184404242570622236450968973109824546174116602098827567072029919282187631632859607292633140889185003078651188574050060910766041567203259981420350337247756940636984911293215155189328665074564205281478051176834250348981507199368626020252623809925958995894937158373842134535848083077295191405446571130204878308612618052816787372761595301326384226112812252583357982064944689925080734093729320954211208935536481727243619304928113191444082608388442386709345149647699015268144278654827365850879704681313228422800872266890686780559303966051056819748191689946214554671903001929945742434298517610810260756768350434058561606393769795198722507544981690707181832957252473209533959859536431721532723700582023085989106965027794671502461031214376656421760568251198063873782912184801298111158217342943542236954020244459802046707180596589536595138863915047284462628220731617790813508781362426610720712835651518214993037579883462825938948196729883093693429280445916620425223008529363181933472938488241775192990082134977776218459256357764500484148909668766894460543591836353740329312502774575451050859658452462003686695518146782230866896868672475402604264172518525101541332451361626528284301630214360941640754100964168787452016815975992097443218556526296358270250908457937392493884906720156868376643490626195739759970026621127966360182794003558074180343613821411023940777192645014887339266566494587027950567852544671658174993462533352468617932921589840398162097594223093388980462947544126208614508361860906282442900589814488734946538941345495635628561553807072404405547369684260175454959505622784726777950081729982839363269689258276829849301253620664417382257746912040087525722808778391118815041851086510404158946935618460186355040839988434920696580340605198782294357083873031277469176591545791551371657477035352939179262108265171911974027460578760745548012349241564825089615501738024277061769597887646554604064659469518446551410025149389206418223505816552170058114951716924306378164400490735051836722710326176757212138048757261637081504092799460722576753448981060419547263993783381904262954654805555887095339386593360523609158101071053137040123232280799747125154540744649544292142718448867938616861840221304284257221390250390334990498375522299635478803884368683301930988358416640356399693601994909622884204925168246365899176276577976559618922323470211742588126970998472855317292213364662770250639039422022129602845581932170237010427929807425330766330730349964229984112479998794212254096906642871182360125446728723589267240429048012530910199109923825176134417299694798901685463716136041952835524349930538057058617760829539578288365106359902786256235849221875429435904781851305577738171022289949862714613070376307726224569774214472517335015934974910931733052844443695943327122772802944994819438871453402553064771291084023711855469502701100078429100814874114204802367801438990214970633780937456857275394651525827227361027547340971043515705325090020688091910402245980467275268332100416076992311073621167907995172022444675324128894984959331743586444914649513430913032366850109195883727414991630443790058641468576407465429534531233921501425104701585537780718504295857072363437126881159925413041252711118815917304536440461501259000783220358251046610628806120471278475870939806164350405631576245469835127140743151321471613971983646805899605042501752756869606619078089765787939033385689288042342068273297324049780304460568784884880559756555553263037058435594259113484176109833662551882774859566941854610191760635846120564058747417055972601447609230270387429939587684078556618262414749819893989867621691890983906213979980688421669418406702868739284727567144658420302494120330198674442796515561609992766621791479424428963234296358707185847611212281757746085190517216298651541487502350640849125715233639861936418440983752465607555124640151153137905211958643299689732072488777719573128846288174799333274628945872264273480844690047400896210754275732485699825044384566538619604515967695672508087664534979034867626958292654733328093250589341116087463372207574758999384055195516581651361647063697523834566105553745704030967866948740866556161532781037505238530879748866465159296714071268145995767227669001964956061394191159416109690792019939853488525564470063683511384030783068709237497621815383300961584475431983393529801291218456892215200694793563943630655913301460668631478027605875744742154034342202813478480078932117927810301318406964616938980975252652934912483308071862956580022846128507788696370536162371276855563242427142481901048714989935712303327830661353238667560511873558785148057591677086220639861800936680671045008765110943979052658049957244495795306656221529729151319112805242297619140006688757656237934810817222035333552111533369226143113481169662985008552902572834788684936834263854392410512948066550724904322717633306653711476019905741776961145667628308959683684053789856353848311967218922453190431876330482384337690758406468106988773352880603580091673439138325431525549251913701879964590600667509855610151886461549577470579456021205494179687785806457884523356802587236347138541131749758478950750644736288316237116903537218132238896203430409284035875067139537900828342975665659727504466662646361119479089456721905741924538504852965685080535872778217318122575581567651330854529393242590328015315929786119163615589446361041300560214323115583504447404811981999273036243581246724104047118366453029792229444038890453187890751356131927823598560671780036678288335657410443516457042021420347017117863052212467086067180215141490610094075875550403564505062086418726443812573374581839104670571276482583154365947901181071236814977371118003819126317225321740582290244068587381641688508289679532281057410376289633150405979877731397046225545958329158903497700861145108505236755663799781974763320439272060750371246762946316230394755466565187910776968134106213063966964782929321594462334679718318783621030536352946637996841728641510159395215430357701668111502687124765493283175675376928195986722785338490985373854676590238656285027992997936558748621240703779728213272331861357624855191436847521809745367379693839695452378525577673757876526402022408086510369298310639511701805798934557728054387698039608046917142470815882993996811597508828007850418582683199587763464554618154557362307989848597575315028364652430557158802876027123195454824852875440389407785554381478579882414308711061771718451322821696409159630467387970547974800759799364750753551297025482974324722218236147315382301018084892582757340211611015273431396088561135352055139090616037258846369292727132389534561226417096207780599280615496057013757977979782692797723664859507489819411132030725216498877681403668658023516529350003563435970883117074543257869089858558488024242335962360493087944589099048913683632760342459058297724179751369043307898709454214720498171532704636911867995498538406404826721059874805251745717539156690061309431637275604537950037061705369734333722121157973176619332484810873440622786821801782005408932831034990685602096935326968436761836180541246495610557449455251407735614890878612024122744949593010969397781262776646220798838654341230289336140021271359338310278226643974171763588982207024789774533047732705853616465538444518627707466102172987494998417249686561664015504685886036878815254406063281185868036514986613878228039694505880263774393332678242760135066740560059526020867929340775093382686602676614419943334498076363913679567221503895472369949318349873877405342714458718109142939908392037509436250541885508304648359023488392067433440956198984399159008665335299696413841872254968841903149818026577330001215696192386233625688525319011906258345195523154982336948518589392769727792726480960112903232131760882757161994517218411328555140155042842626741386607892583074045805576279070244224148497701323442481452423896461036990762665898442309222630114916944918997953166030875457085551679729468780026728525169358061160058381296846493960607780052550803336005123620623987273535684465283623723146747019232750458869730232431367077316058405717934738102344725999278901450477049776546369205715800585024240633727300127821508271364427388828370926619679409116432988209157031686898089888018801034642575031896952569980650967717689994646262637666491750665079205903769912318151353527396640465720594720788495772447366464715096990319305584813163878478377206896514957122224792099172373452232428011603071810198991174296590745152506492631692704898076669200783597955609045415479794499574519197662657051144673014267715687624545582750863569849212899762654287326466570865995209891095760630179814391597909548767213702691634663329634726107056004465052139517518548357313682463956572221589664749773535928510347014745741340902547061227973959268958283322425110840056765997156467202168151447197694510734145979377550270950623407283873542056207557828703186508374251996387109118551070721025329651141020907050373503173302182762589717594610581434506997619945088737739375938012477086290006977277164561351535682956637496896576760016872810161148287522309376466542315212817786950224765604164754539810904747708866947573312830101349295598263625298245799568581289092989907652233127262753104706344414404925152209208306108864487852959246017932747459491046991009160662413569754224892011825551665323617200939595680407605795439093310685331556805881083320825329697204858307874075121453653179014186094620676699217383058402549757400917074292727698687268156840541583970979708284317249310033369667153536608012345548223783900658187036399990436546372288979026916658663466319873121697803477624963659559569121171676042589874948244253941621052206684922751563647824516413458398800744134754665792966584562612673169471412861817669036578584833814376400401765498627921595043110564998972593211640091333998326869261624491145669393389963502878835650823905887582315327351358934589125439585050908480086316647763976488816286709226248423211260357062381456292658537312669161253683754124859610447984230487848216031592875825324173886717725255298043931124392393851969195908011140389008351722480548121022940019565595104807792079224273655404281483438466603615923903050791118624290770301743212030652685790141461530152199309713805476722282579187186663996455344902828240442123841393102045800836336291636174264031699589149908951090239544242361374498848417514321271441663641465820267198523560955234046833268424813264456336875700672854529734503026320099273748084435080794549769408685909848454518493994888776606678014843227327465007934011256741500739928606906288078634453300787976409282604879526408447725487781998227583409977773636855397639058372040516958390840294162676420169302035262506901875467051459438564629008247925007361541022810054141691303409773433043106711221246616858485677191459669983453404384407232228049762277373783799654742021314293688273287523436454043482179810324516513958770291629388768970428222049948328445405292622395677245751616850633713578102041078961957741932753774150636812170386409065662078229020794820934877015292942108000943271339847360934538998966831694552396037258263247535221421348847244458594707684525940307226346555560209205615697677087514623801039981435650107946172843176660863851361129006779450042812322321048377317188037440046569474176697990023596288209842113732528265331215238114787978754734640080702251095026385354262634516037174619510250702179188258891402306603260403040961283721296994268282475976952290682728465522460692514891321773786894436844750675019794474678262604253483389242972196865813751880269257411757750869647704208040019759882708632716208152152119281413881788813203323070351481300058073678378128779072865372211947933192162992538108079435100190576322376489455546595045294185647864966504922849005124628393537008614062990391848421288819811753978275370480234500850098071592063948488286295479200845017091073097555626126919215039514645454775254480255310735006430060030146657951229102092480155550584756848192737800660671140459832559458336519700156992693994063565644867235110525991486016153012349159083333426997790037031524003790760451089831716695108941789530268814359741298935461824165762031852838477096012013205829876566188332834461896690952590876590434745471212371910819568395496913777400177928328905449189774438765678758837364021280137434218006144548072042949907620591159570780158418172854808791151840070410947163359114185499842571889760140475518277220290105132891613830118041814631838654657426408675056363120930800612200568327048963627410024647457396155517426281267651820494752319481859865966684429180723132335951755782226168762899237876142613928990780316171928215781599543244156342415102191642876453361806807631362714881910798320056154623368671816556099656380553933738798986064855613483741691836262779520461623446555575885056088007928095266963190833297572908799969142799858425540471568879239672262257085585191591569975392568067141253882887187468406533810729794056804432888586700394524285047224838460252664632453640283158596153192359760475869998252269894221322828911685536707332723309115782476730907779265874929794897141268196387697387416641522193629744336544954751708311705427912021079515608701930026235277149298068016936360116274280054587055261443269241115533235649168832862253984032562785424840567153040341835990007357343907259998494637279272137209133089650823397077438932759881387697246093271821117801210796606536803810057855735523933059153352986279008199455325840407761059176995606567113403717249795280422094906328760105400612232495228124055959858694180853541105408924463450389640926550075245949525988226739641457287633632427585283924616786047923321330497592597712078312160500635579212773313988166274396627242616758572653109194155464538350557718020108107006537115078464600967140344550225019616773749932379148464715096778246239747032878223521995156477501127216570172680786923624056652990705068291605053732884608850571776557562666691041209048320208780374168249221219496505736456051572875219270594651027858044926483447502959339191807340806538205265897076070368260868581826446509526637263891432324395834474026448801727453932278709717857823041951006031234431523610664444316426526713583317000705107397312474924168120170970252057673063956708449695080358532721952910543819160193763604465058946323410908191238490084264634935654775734772536456371728514333309643584189543455311791463052661383021439848748409992311811515296363387776329926984735587837464928041927496784487289348739978386838990954181924987477494453828000054772258283439952325015149584316564056475741362158185585770221615278363512325162267965693541751949845795721227070462767982015187498729477335710879116628343766584893809137612742778123425303504778076886649874251115999343537314191393164734186964407551351029605408096511106009259591979846571164781511476684357909443953592031894095687470466241433902215519743467068184549000098859736044917824677054129719461338943286950772629599889168321405080014735687246885070071142980252681166434281203384233209473765689931002366345755311774197644653438429534666899939863259527624007436541145788807257583546459297472361136455695768140108724416855978024448579151105337322735187832453752468505057864157420300524622905657307777496569075153314539949832523040256186462853947983301018839490721415224471358882270255021930100782742524977222408970982863896776712124573809675693080012785782176348278739816837380363759150770518708365721654980979308608010314640796053715917260349834126978156816566243900969423733525582091567217762262947286596691676608555966922970362937451959746470286737972084693428142749330508756080834695210615188438611218438517784135680062462259665182786634868292959576888503295150293838692473717011593995458770163791212627927139409825847727772127617849894068295200577475751851802024191734554002925222481529432152722785316625224104238349908735436542423638449286279673303224433417217479866664114725746040541389027011279861071305898430676733583536548258296821940712840829107359014858294529664171457595126539328477500069077626847336064365885951228280779008298210157588803578376651711391446586745244083927110390576020770496317379920852597130348965025661625694111123963647853418050773612341381480129094604965625857736860088719847556687258850385186617182945798396033707722261423343291094365974650477241577327145395801125878659902640592543464226234989032304273292977493392499205063902816974298217508748119321470072774002044764088739043755080239499320486851956797987287262575695986924671640919195496808991284470929283352070483156489115400110438278378466865593973579208826943555563083470846622111824131254739443342282085691057765514418186170924539045481629600480110470387558583242256818134862638623924472154914179775905286621060357122624806435620275224427956326618321902415781142483322402005464428996358381694148549796924177841783962938397529644533047130263867552474201769194278284211948840743130845105421599664910735765635281025786311288473313354005875854337552265827230160346347732533035743970067598557554249370906239794120954643300854839325273781423992541735410009818931092307396070363201301383541024784865659035284092158072296607988387872135091559759107374018501835954298656670569514536461756955434531701329242491424501073228873248684805815607003051166030227997655331629008816018901749354822122077722001887932740671795461997187813954753707990815907138471366460357153590678994952400395136036745916286724247737259649780952422874968391379619418685747145228808035798647368944247322490831506703272105876890125532389526115051734085714802954262749992985033564581720074993386625737118643744060948728229538258268456378968353851935721606076145485159779852862710339634464025796568336072045477375625331577560391465749417149902774488346249776719899001692859098816615704146400956441368794061118274340245840176419445008067978860094539351886942089158534186002900169196640495386592408377566202615836517261940340861593161167474713395423479229430759392720494121115697239900352327096913392775033905810137567192177480218451708891147949966171328641227650125933729931877900520686498898172341593276104811913835459613721950374487923889126045286170694442814303042334235368444166673715930304220763729804444741550229623204038940886764906159557181931002113264880867154766553008326988371056251039080483299662898176692168630733548299975276130871415513152479668949945664673581367331611239447609193998724013940266404368733414360558497837287541632859843054037525042025955834092059146925238902131937363790804991396416728763316837992079518136111303579764751009633111789505684844255662958117401662881724974470961847255692438513749171561477887521640720909408368029658168456325339467950723289136768186131631157703471396226935506275145140163547459378961608697306694931897142716437846572361524885942882349632480658001877102634263184308230041967350710036855013704272665691728611276021698902107885952675205240231838505565968546253699004179561068440697749901619269837341941495845829113615304733064308219339925987962895104961013173041548392470398448231587488960456584385671894527108311226280292680947428008738601170639064623186688436724086582430944160694332612851663418418490607765297423855256490017818411186680103539090927961066671617347555251640933213612205704288154814790581820805404706862981253013394675218511261286970343497042643004205268741287280304329644510754591776099879567731082244962870550906187986713729037378170231248907585254238874289056543087469636377964419661700020308754846795652156516575720806782094552808391786668260579413374497012868664487330306870106247795866771361730491811360851365043693012165397050395855546252256551836128372585811493533569299193598175228249548110967227688258530372627290007311505109096886530273141438320824706158211239615468233549372953650953875036205831096859147879528476678285078212198341550058172230877262376071313884050050810555021020627502356591374817843223062678252317644971469422469630659363775698542136489895341731093557942968004429392956348760153244490755201532508280341153325469213897928831739479476881870248546567651771642387765815460238793439418016011080118995939672551056985839061629877136875575544978876941597921451035730969896779564650705368542188696582736432290404855157943117878057030250689178895608199440416965433380314360897337615757251516991493193577330055872764844015716137226955190797401457844618003220810410658321002782413550563414850670201638081678078654034899527596158193717882845859821791555945471646172155462920371939409114604459524785036515743315697791658082617055642705346327480057957272726292963562740017588206402630451270582955944560118241703781156452432423843278734518264966118057245374322476212946122331282432138056739806561333594857459864017022372268596684885988309832474796074811734430137618266589349743094369257490385111120111066607247571409502489792929867194841115993959046529120648214169693987122724198150704996518161753713700223080581607638713577295302231656708953469383396965707791075865609685771310129119466584942272030470449283083196219403296527415347817037482210692796851051062798496094954767336335428135954086112701920351834350113372877524685158197342909513629865312028512932578383699955446918168696135041121814977250804181595054511118850752388241827292875759501624891328180917478894074671422356988543138352564808486799214503281317690040558909651944506353285451206356987922571637898345789756525947591338219167730162160488662946337014649993098998328517614541083386784120570437196908855508250545832693248140374188009904802892810638508262233960018008781551945264676640831269522938411187889094433858123766716361893976105577089629733882282485610628492830536724157569774166046395205429541667958428710041293870007595999540175488479829927741731725212271370406155562695471486618552963385670185478107284924206432440323045719364113884274678214280129298699057313314715445194628221549989066132788876289550371106742030011733623395019945751599069717569916540824039683513424252328688423116100775978101349884983899384966538246402014563675051207263996528668080729383390437338045870814138565204610212586443738506502487116960662637703604930176799264420185739945950505824760090654922932574978777578722096611256353281914413220359998647115259077929914441699223201879453298726395069910286131583880516038242286272247588893501988591605846633434880892879321548086215144762656385122401154365340370970502642610158540222982904510422943809141652141451435113373530556638152304997222000095877040408791354977032005830095403909407045559284283740497187349484058875800313054771810341220049255755632647252186414641059173702198846421111990548009228440580698444224563872214157120669317972090275218733559434777209900623068039375272740041793538843665301254686321789075055684970469933733013946834692369569441319880096199394029240885929532881654745701031151801624108540569062867494950209280328809976631931820135000070570940450232907461367319429893796461556192868851052538130034470106529868854664812410400412886936165360651100451029289460823820537997483467306542454363522162321724861214919225182136647822716921590028493093733718247905676770645139543572984866753938387744873232981567132638276582476672872300160244292009761775021815948939084380798557534962560515242212332505875613378547357875275127984429218065614180172733852082237975842384629058550931436369917807495840222247264601939389188474753775139868502893037945319853470490884026262369060546720735099656865647645900482256617322778268288632788579869020723041414149368358090664354441316869165352055023125910504676430284103025693463735723690738880029353523611940293300895640117571164913441043709126733453252395555390397098308926634751171806099392340124559362982565523357962693549390222473865074434817640032742687648274973398513546261605407111202088528114945401367927072619039531057061282973721619128678403138788924481465935473418549211917496207987476376319307045756671098862294177925793059293749913328037245649251847110669105697366842921026266474745917492934934741913303801614363649874136083688494387052121108769956263353006750346512313381033025037008124205632754868114347397225491604185774192210571395181754576582780186155798501904416656603128473250403873356080237362126981224497153551912766528893440773184187455787129686269222356779219243858089508910863269707965584608624545124330462122852969659594387812225553161592321596569373421456330037746545724597081418309707348484723234233636664228999584788065736363214611170508666805878430283851153272670199389569155123845571017282119695877236232619012426773590443030438227673801737252926084925140703542350412068470217282112173285695164389905695677222887646218153519550725597965387366285107401254508161794225737509121555276873922243289188974369454762254043701796803528864488440520991913653976801960864852907364680643889555421157108837117907518598284236142149905620807431251757797924269363914627363654375430543454345535800395103685736028026290731771700372246258727040359405611242754099234866565958702971921939986960975846403844145375529520795169814169691981369045596407384765892036593472716140154899130647852641546834993819827262661404213110138355091545084615497311828796673343150482005360127828045652393592658594095403774864766859153634493167888219711695369645849512831565727566944182507793084313054096123796776897822600750301443533393845076765577970268049859404267640622531420318980970000185485549633809757757709480325273386572739864297434047967019995027176345950241687360578390671270923687408284965518784584407742178935552379700120492738004884338539983612479423532760092959044474371361145357069657376810974862063000358455769234043093394325270645570721450761938075183986753843813774678163762680032605529613622736606208979967814805379523817667858488250569630856509827657259928292692949970217036007293130732188924150023078675476699999934483237936134099290181231211645207549692244633695307691758514472713665394232387766286215623378261809068701942758021985431037501449277132125517246582536340624283961292799688358750342810490058890210167037010405869084012455665058993038843048446873022051464527276943128511629028859075511362762179067899066843527199538002058883621904167783072870084884201084458396475280586554860007726683777893728148854294381210731667699700546953202156497120421050035883699309999837825032742580343009851188382887194421634030021155698290980036972193478453319492056585221473153860301890142417384167989247016336702002694175237166254872888597165963422758392345604734555725640731442992255996449058136456576300386073891948575526420610002202532239332297059393243954880661055200890773722196881889987426026360413933291643545083935926684363157449083081418735235275257528025485594501382127959493004364333565405985567176404812071539959736669434425895959026300056808361194935684427788356672684761461497344750489841951720832346053246060151670749077277404562103568273593364218896214870228802043231315603457545722920721144596794190488235331453612348144991879892802964319770893619644381300580367532968554776700854250419433388202329491856529581046154972479749696810744030196431873479678722505982601425836071779851345050620202363832753877397535466087623875645299191644796032620395015259681285567531914447678104362782609370233402589109948357708328247025884219155827447466860461687892302507352144476962059720040473325764700716386690986456886457445976881660141153486604273091752160658946722516439336276196542247633464027173314586627376659253049590051080718736237598662490601350644413710490536981664816044354683302106720150031881913139504468953316087602551269647379911427628560899072265706579412129519196512549240851450111870093727951029096607892340002936391271928820122670200338945736905050862923143043816793295190262833526225021053578841433432965194745453846873900048237706040455253669757792788067168715597490081737453710158148860842513064797414962265300825101029531023934320540298088856167340876067286901207181465052655915844919490956763745328128411821297450279029241365164285262059359261458666428469930058622869402404818226844126829022303346671153036451059967020520148441341483752267375584027115190641974249545270105208440242608671436790874362376095309409052187277073399892813431228411575590705532119690817625815629629096582915026613391120419729588502422917953875793727026834282915601049613986906048232317649520814509884141298482168329412768112366650506010600076271802622726341212647097275633200696184160642912123638165218091686556920527092750608956591317795723557576389544054180926114643990598374441086168752629740351187884899699288351591110838396348619280949941443128508705781817734597395644196070281129190110569143481074743890936501665246112917266261781188466679583640163063283641982839008814109890095553875037473511426997424382287877597238699321501736152889512897423337882111529026678702273541123525142621752110961831019780197308486151313628222600559087188171154925542008523492879816181094681385057571348309103348631056928902912407661038839402342123444535486505514885131734644334686254770271948905600524059200551415934131996625662206530972595830094568011816868578450946166683649450698519369406447509949234658519886359053537295807167936566330375884896588804572034537419512152859921200893811947095687092343498201842611565119051848257633081881454882177445928989696140889210050608173770149908491113635511987747613684473121967953327623525920724465841188480736745748579957861559230939466594575120830180953512778873492159811838681510668681327973854870797508584591161599159129755637385244236030098947508006030391873172645022342116454862744715206110868087045223819771412564430063731516393475910448381474518439888370220536815349914072476582680551056905153852023364395765774660851919978644548400684940910636003269017294448750100175177275471271907068094952328870910724975587813274245104473258439688081091184419062950616909776751159016477314530686350439761602713063214164069796233428984775716519883110558692592742487064766885887487680027789491795514490249731442891616877036295107668707930184826007830739383079148732551039883745726155305474365295049102659154547084979784759085083389009483493535891102791832771097173679881455824483038578816598724307096022402551281576415963846617945768565999126119555814857503006075250989917969904869155570470622049847865893085756269266924569654242246492730954207663784043035536843468963265213117225683869175129678166587098362495525642600892082522402311316913732843192436554538349939902073597253911468589870946799060819022247693284979376113536851271553571986374664111413963525185749050322810490751926571435240647172426197768740630792990421296597931551697074008243355754498628262120479994848114896356782960038489205600740105268030070348489686791501557696006334873772752317518980193837716688675781732811393211122449617713849111598196097023220192405897032321232247726463782279330990390988742479621906224063429335563155898247901449104553599568072378373681856799882555697610076685151899183858024815541986450532603892682928159776949093739962746894589072698752814180722073019602809176419040790398023627470351422036348192786002266678021897421640659678259824757126779052196155582344295238202358966185521785807182264636100764451372828364671704393046756925814115125594389223200752813699345630332006920956107642717805389347100550304370393231939988506017750951897749809415497787152720510614525108269858888773257957818906306118507665459673433459205202370416984321626494887645640631909909171849103544213451541477634857838944693917917790913075723086814155498622183169315987828318594602575452741413128790767158699293342001506660030976308127641714900357452992388891244803725303334439692460393735914168317232840462965869189509003303001935105282041359969123872792829182689515555575710036162366851117011226931311581937240550131459898381010183635221891618067473740565393326052250950658554299457454955386073276381749544728322528810457292338768515281967516217562760628349126271983071649391069872386041607341089072010128040072413796529586058146124939297694492224865082147746480036170420240513123632513994198945231264653298908820836615013576848153318347436766878289119071609327014264824108299953105063787668860342743434646362465223397094833403277815486270612968264643978404408457456796116864749622950559558166285952549936426634820744354182709587401178990880726279863529497302172812949292500428653513641594854151412570166647267498511627381671481458286614960080175486521660211786332458791015449386500656793072911016185190268472324788952931944877943293327026519930441519414143542197126285983577231173311596982249763983980567670039837045332175694139830757045013426876101061189284157366787482644695241979601643679983542842761788035977356377385392589230316254042080758838696950316891861577129151608932432611959717316446595032570209804738649596134742309045052035892766200394349039935859541484702558777817017282555885005267676564489678977767442747906020141498518671741172557625893777690852727361696697415470388063913345124449137909111861925047392828856540278764487515387233843948157495138333959182910610580407512289881668893573902919432111693690206412821703761066598486005690124378429783845666860912834915547468004899685360076426706325002505063479503629504229179846576867545970554836991940828330287282315835635258118627817480401848173198919267663351948700897013537942426500562144559514254696404494883641136976842022808644199316244226724071012679156866637693557268299750199510502762819552472763231143613915664992446268144992769711726305684617149669095643393643606982874317593477378081593860691106704066545625320375777654603703688655368032666457222952263955263744253879847406548238596531754270104131368801870227990259027944094780694476315268740025410843909067248303607258316089874139220786051515838046323770390434906255754437767562819540256263401317046710352886615937344793754071750185556251138595896720968445031376399338818537823571172498266991004490349953702186015490791079811711931111666468556220465387846684724701034444887784480242907676313672961223660889163856302624906933865366379353414010681143003189932096114855937062065372129007550747780237461472584871973881306039476644336813949281285512780601562980486667431987540368140715676455663652856992197585770975546767540306318652915096005322566838835935337503452316914982724394410643950604164239386566393984803064506678929629422730701260980612270050284577286970049053132209281711347891784485175696521394090918214960414227555488835533191436894884968005483188103818055788881480880526373926204360383953114806242786718967506759282887280597553743818907421368851176890442708503309619475547292075490612577797279770730828773464654423066009197549268166883979765684183593611300229678061765191606635242468386388117595481523093115810252774081373234514747738185264202283924736567660538545283842039771504658057792031606106218029690423572810905091323523668843469317844066884527805241729613805323287030112602930651719384166993297965604738497582334057676091535527114992668759566862776973650391747556015752830877326656903070099887573369855935764990737945919776480246976737377898689082481725375566653682142870310361727381575299326602105280898347508299781576892066628645798982830917133915994784458766046875509690092433929986244685151016303090375014347269878767154864953161036372317130972178994381950983795800160578938800118825490296761377347460152070798327972006380850996158170529085995568491757084891382483480660609278633807418434621814982470400187005640754634168656036014064526491333504338660889005085133171066835835996945288312656605547772880931727806758008669100966015308672558213867489966294313842038903860824601211621968019322168583214583408949347217098452750610607487854162955585769706502960173835323649026297036724516748910477074854965235028047971969058439031751984547485467097815260184420867560194736046796619211361294598112661711589447419350701137149635042823028353182980624381235571631569029955407081717565975530657502354163103925959734354870849210082541748040736991240567159172723009161642709100305470694279905835077018626400696574335509718940257648365207158217270615216940980641423459413328124702156221674565767381635252727361877482202837127052851818557796201020143372503362696350133786995821794491163319846942801342516569562609780846694996633689708254316450910838725680950033617578913482603329813297044734052755471211010448696466212707367448548628750211274592432402300254931377307789437308799468993442507533389020011833825798124571088620346134780138337198604407253217558092637046004231678460100615745546522459642662004487683799419208327393686937305772422321117895513311426504440976843708776431342838250385806892000325933011778197388864865618130413282321618810752605054866462326090503439340096114018046209003022815522938698412716597683782314419828681602225490011766658559409459151394096213954784415032747391864187719796010628508207120195491711936404509959129946445721740770246435907615840727755081256314075279005845925337195044852246231830391983393612250789727259784453233052678406133412534455464498224517217637354714777690991495141361877738724858276197234310596597091126908502954827585122160984111946558274599426756164109287797685877244477309721049091140990874722884837664376254806078378638987312625210734911954811276875064596261035815448686991463893116149549141063494729143870009372998543965339071873472006600227173492828604892603685785325614875779223430606416275657613457358606043447856878506688871702672843545062730534664605060501840188120272016875911220802255251093319106332229349986844839743908077672539107902284978490226177517821543413494738113754055387782975155659193252792283000734187545082080956872280570805455126418409421032105491947030843618632568356671588031272000452434539716186948235453124012356896043195599987112607763178921517436194815132081786634766811280584430382343956746138818632661512823760471336526315734481484717829979410529435451443751310492346634828759659409009998891463914717760530455397441376461974684464615667234760110066388076512317262465437025884581276645645773596594033453586326297700141875097612849149459281626902336376619965381339665387583516204801224634275437598353070288738704015178619809725204371330575067487796078223357841519537798730907241581045573714290496205684993603096931694604946755414611752159763789947830929232571190801966682779374826549138134078512190224238755425765571956420304943955268957784388218103847493488605717059107994470905018999942220303202247306075347616398701730835556832230082076469029608809129311428241709490447585494217556824610486050227724665117066931156307315073164482996591170516534927465162770607851618834007836966239925303049217842031554965002262796577480063097732899500391114515238233868525272584317516805631168475704911509306727870176315358622163527060847393472696223337696970089108379436459859747566428405841662356001473007433830428683955337109878373857212103249432923392995028289994456891357631728064774306790894343384758625330735849063592504991761491314313261253573777449452461855862715540190492268347286198953966619977353651698186283275525601484906404787913287179088503856275861881491713210998206713551410655698323714830081812570785351968613502396959290958130221854677317143050847118765202295592910150476930408632589606423698293211097731400273509763635551853785948946687171196057032793021532510823703853482337370089610989528323133039034457352378423116820517449604501606793043811233032216125424032954757735400263407722248723624902717884236358253727001182918387324976608376816463341257948987259356868299718647827581686178933297427794634806093943174452849602212051203015267037168407667378567328948846058031679570625937954401476247219009475960804958603949269628338304482117804311403133707839979189126581063298205209045880273103293885775312360872909482772617217254637104679363904279168019725437162159205531816686086926495541355675331695161518829339630997943622882722051928437103283531160566910853881101832038454651931379370145896093485722691968054486964182697041819658232163868433041429921333114186712233808779124736478248189553301102326378471098266289866931179200227250584947932569554297706228775469833561019512604673206105209006717826835630966278132718623137682451939502725126034041656998792646829374773584654869680411665798592551572774163662650212909785690034766351432161954332388120782534320036033335896752144444336301457167849714916458051896404055307305459730309737847069989765348727365139509937831003610837764515494985547131438689439627979856618246776401889366599235029871808287618540370372255323388622242323314115458965133072314526126564121298971316797371170066510050978569505569643633124451407501332409481940618548002000462995709223615992415910177612525254358796045576376319732109517365430300474056812571872986462187068503017220871988446401550758181783008494705708765864335322216769000977302641104963395100853599310348098283382451682464644733201133742228200508682975910571009183718568031228084584373483620608227363025231755007611249661611501184277868045901977561255874878684301004450246534290465143956049334400215448706209482970270879287894504585688112900444078603659290905950827259258914351781473595941511895357486552443627127601624978082507304869027265429783869215115024784498033865334735530045414020765411943953141783398755027347474567054213228753184914105801226166891050978632149421836860375124055409819191793860014743517931075159116619336784122967645896267847910953453100911926413716792915936594902410334586942114651085270585196519718085404028221530102467869038104388779051385779311908394565390415236217700382865408731023713026861608525943701631431215689553539747630764119134216113900268615310794400460339078032070086608927401914240647703231827754057041829427721761999557954557999038788154592836206601135376263800806801437328444623843429472766474731188937572384797459143953392006070846582383529914240262240033247952214395479564874590897950806931517780915452677536169799758923231451554795173326284872521977288002518170559319542250550241687181932830639134045371292485123571636841801903141103255785042309398547208051289271572330521233535695895049917910638632980816343286226934777881049444936584453541639812477153904150947003875283040526351664550018525574083869025374853672538203499888432307731086881873342682626296175463714385743427000885330617832393977642928852132030345639241695419960036636840754396730979939600791103527511891993741528050484881360670428209155879537536082979177328231543166582176535504541824997262717711978212833600239668148788001857747299754072593075495687835126178170235376958108578700421533182287816963646384980514632275194839382322994888810545540861279660984001283217693482811574131395249263754020128981491411443646214557443224933561389790930041423634236354071440651001374393760901842976524522026754816460949331655195187594256146308953255621066506590324289130350897639431560806569069724876532346696737353554230448386568933756126092868382597054665495386922375787151514140195785807585317284354764684253896706034744281038210032722454489203457224472319238178252037205304186389664229326011558229953923447242333849999340981828201060894568087228027810403061985199124795750514008984785473779755912292841255600274367506514542619108056277598112533682519221432455335036805104393429097418161714648999743713437851360848804521258630943982421636863849640030994250151269075431927286796950169779551869324031182750458961716465172188045403016176832813398356312900528704702825602743519751908212560742666786015220429715097217380882340608189257490200619369185273835005716758034400202435795072331680433031516551086633010683413404529201799563931470636526303564782763694008198530002864981143293380280420289946432265858232128913153744844001525358071101229894176520521148221872645722836085028160057342454129261890807963027612838435028573737377680573638742355018149989877173318530929483156458413633891140133887087564902806021211790067189481607629740443952140009826943370991023648723691299230203676150255837663106268952418307839942578750693921615002067728478449787317358319951407318419084127844046383179950462141168720561567436751894345116416186569536417604723508110876390456825456460188040055524045970253686332672776803463044255859247237293760114706580068643156693649368246885648200999605790466898962850641972719765933108001664302598185394679614957553283058620398824868715834120919433783657146326813521124717354005962759001076948850355613039867571854065985122221475971803670213590357990828464017883548811737133942502529029438273035661315529963826394731830282945448922457143664023493834836440752211325097886316832205606951562152792643014069846990514438572080549950453610126134340820728105851712315038420386109959551986029521546139325851125252317167764326831594340791778432714331847518777423645606328855578107723059055642783994168513798796336133389940868459053161780989615255076747489486480870088155940479718021084780867926306086296096615363110718677165940775305301526199922814829529341004570128306846497252505791349336919949015124852533273185730501353201239014718937226247410653944306849294312516003259267354612093223439695322403262220376998548128232941784456546142695441130212098142113091513552922202715514334837242350357146093953933322633505074198770028267731157842217005707426161099957316290921555019811725778943396547553053500860154292544119888352998840153782040568183568348874704433474811567178503260162745080940580585090062511869482810292967625661822986099637119303478865241496208813589848842123750956152204072743654597760682018210940302179542162945907788786542481886107816245227864777688367126095470267433452975093307892923881794038071320263298278476972107062677972727679110452312841944941659808975753009685840603970481140032509655031164939423810615408888973244518831669409866988336078347917928909240396635940469195262647826600353088862075116738554674306274647476536535030334390444183587665805690581090333284471854643800879762726586868102647001383275743602740687756074638114707683826496333476408627196074583246277113014441073411941879607490550311491710564154360033091530371234919004443482306047702815736805819107902519352073736794922929768184582572129177953146855053557370150676041449761299792290890047669347491678829790183173528090122578838998657348778090661107336510537450182182463003323453885588538064469755150794973741027163398154692209428474475715292574918131234929938311484560578766926285450448048345478995397403817804801402668431619570917769493543381627137226668484065645643125249792679246209411086467868751845072237868422729255601972736144257649933740520807834017874336043346651024366034203209913079863270087816809622249037946457956228562373805135332826068113272578525463949777488300630685509103513125314693347757799907570777228630579105897682695598200082896187513373947558779842059593542874920592252573853782165375027286792971718864314828789875492424850491256095211677933089947279234844561612911066433569932259172593973115266707955192763300628254180157774368141877497247793411586294309704686327325738741781580274332585034792589706035119810240259120019034748025319821993525034100896011842219292611953097621660980951813604850666469404516921311750671261047363954992787126455457988405809364865211283025063061043956826835267376725787196612879684786524956719796853523782338452184572965804966266603474603415641260313966081397703117950375108742985187906129964273238438474777375230108866896739110303869440717595552614383884890863678616103332948503974159349223820117577482940853330137315202134886813074693407222133669855316280605800253085873636212999408863757428112293880256246044287048274517521964563202944755860141859281823285127929393995598926673015385704357702645198708042749597350494247940463309452148341182621767130823917585508004139761580844877803637089196760288723779226603787797864215848567013004759355138512947221294116535753774918703927328244521500868703758517226421939857123296351194596350803543915857071243890344395917744333343660247722534543873511647013244644001926743023653030860785292759118076117382949160637672813019979352593793931817275560984357646941036642748138968619027857815606917572904687911725641945948582240444519804394673160629142122280650905478844687037000368915694340003191518410393539986785667581508938149396362700958706540803749326497445716940481353483507888872195043660222585238673328779917355226857768602684772991303636030742669014903161758778842602187444005643498819847471186238364339522281973778945366973031224145466246381002003478785340387745491254284439007103602900796830597753080011032492346772547362837440204841991974556421925638082231334719657103979413444374704027065302290495966006537430428205418218535281788192728788725946782334828360520615533599709328437312053630253703852719085695845158312846781028086165996540223874278286020603071716592923432727584081855929183477648814393719170535537382389831217568508819751767394509619247866906653437234506939122825142701541533100101040983963354043953573213864618404078868273769382285494351036898424740680650473343180364448393389114234111005536118447691523636977382324015728542231582906132702682456967353614605608606887106316206500245871037150272400441940436207189217620967550940153730935616288292367151347213718487152187224968206971280269032426943393844086672167433024067819894672531223083104551910306219429238869610638283921389331671838700803520178721234359299240348123375900462631162359379319561995512177513488490380347717324441652609913176922212133610379909736040222951939638968300596764008238815087801911497120763014574498761304377998507194502128713127245239565720131145821533976825193757991996321040440085644495126176214524318135268820714276400305759908994715659723695093832062928394657858278227932573634038390687512807451092334149737826632400694087089490293242487765412525908751678155688352977277924259939578046206100354819581164382082156545255792411904371452849135915966969654652177942407860078209930120702369132259697186230162473022401069621262704121097365803870590795935298480761897337130127857361171034537715232397505481898460292864054787553036339966316534058916879602482006626562737478070734594000428312629968690806982650417545011462960980861899504033608084127844197158851935139685334317662352277607049100782054966177759899610510300376292544418095160867949894305469774067284595997542767824465694989055729988315385399739172329011738048442010205800491434155255303465881941656914299469714257513413131228303937632003146469967210838572493884868539470121284120956498217525923028278197534856317606193197852560994310313859315220014327225994460001500459981740759497208083797208622270236202154667078670249322845098241195396038680949238114096142992276627802335739103678445028639941046846895153289005502861239429340508386057420257073668845223153954759204139159198673953793467010655167709100645505426310416900384581794494285267757780164689713259068308721810126848015796929494026752589076803228316178016297640529565262484379350554907723244600932098439589938355446910047490480018905349042440250872789239918567161832443523606628572965844114498844115806994290702672803536406794407913825061246157048257676830162259475837520415820503810654938841565938908600282986814861975783460507169406880144354567149242215530197756621872682343617890663267855326494297553708134485014187064597701283753426563901848249133584742814091718442531307246145822968749400622206226854166366861567282755286515793498286892254697724610845786586591035910584830712840252723044835267615742850309691305072217244779164901923001909898398506068352595070374081145096560945228129260735106618365588839528553922292213644212906790195846837974125509487135834357396128016114934494692766218441365483893586067222775596228628420432181210938594366740428092790061164249416641022773555770582301810865074734605765210231667175360915120983240928252434577921086477434556603838197622882599045067145447983998674479739489393580468818701049981714965141003949153189525473643339187554549552212788125485597112108816000585566676563350758734336587828772629332785594621115171521157692972125186335084540808237711237410788457992254805740926563149543133537317646375313679188151598256009009053218030656233550457233459453121817288691047244759171382340756497719164779293013108682349825611917367962018591524179978078277683760225903472040814639641141941099164400659704175979027231312895936000664685325065002173571993277655609776441864324486734103124078907504514935038386045277124514716409237389941373530546780437175373019613213480569316793872247371930838320090806544957054038580144261242356243511996418125185408592000026238915144481383572722690677609768825589872634844416606288158502241942199182580551528271573970722162648424773193706944688463348529008439747596403782175980129422072950226995961174970752704570999746401293608689724407279118465656039201731616226899610751394828035096860860368217930996879135739612095381679818862634073901132676591373764633406467558303219764682557009735011817969896942308856985958137546949211894896274318039111729536575466945644219280522314933809033756424451224704844117009908789112926174330666992495797145749157143543573399786591014738809891057637654909480179115418648993522733692795852648462583292908226653941250526340825500015057284457183164974377127585634994211524144288867264371514133222400752438536701419732301331463091708572519901469074494611889023360671136787142346448822768665787905554501854794834730783424872320595931725312958038977900218707838374687939172319923260653469594532477390595346602572523597305110026308034056091606566113904559880444650869136564969313596736293826946397213988200248377250707243059393926718263089394805200730351650817966872066397014311271366096721148269428179874868359204927382543182564955733439419519431563143432650457496196102259145938438410107634011989416907320112820721653235587158737379409363989352907543201427693156546825042172198080208749210792225212529194164931713133452359356782420015314220571449922596847766035927242681871230839282239206242552733691097002998729153929212306482567755015609486102700010321040672213213924392225161327699415021376621003637073739294819425823911024460786465648235048058185249645268210457301370639934389354346378650580197874612915614440451479361752834298418759520123073909243261366723487594227597647297239274810110606962536246059299086203437186927949975337101114664681359402979408131103182315959918730188011744472783574379572963110612461950896416178576485779394567025461393255053849888394025938850033195972089353430089498068638758333481239537520761168724133171635544002759889871304174912185460693398773083502425981075283884147973786829016882520534263619302430940117716799222738844619328386503875795649375363106439146440167880890621189868621475211010347417333202971502845729739132587397105171315180393763841220566700690988455951091787154347364503943529351577741806448780390034571471637988497814645915333538253006887149977311642545649224173276696937208671273936398081972878616315452322431689454008992172606629723644565418734224481935488545714816113840555304094153443740197313047735786901824498675355502585685167175336818436365915681404098338881714263818875899483196442382816019494701244200290158131346922997433661941761479545349679278277382558463486259202876492208516249200236907898569747444213607273765373288187496250457739611129222165812057286143847700527010730049693018152591361999159044796627564022336583615477060063777620444162456649804519506430219427005787544282414264492813974161692682614520202535349943250708911762517560837912748864301058856246165910820096595344919221462764921964167857527980761372230601874369340957963720115876450258384277545407166631271901951368660081564866776344905141229210088104903141418757144652573259307702799173255291075146156031807921072332091459188365913852598467949198783235507572734288976584665852891075131542760491208288632108621843329359937182231835198696432222189573963219352234689093188051080175612282013318926658408338503729589484790097181227278368184668737027799097798496141561900835370729514927803216436560916119316024039545662488242503012794785931521588771116683353136535967147360164251440172696301943112860760231020743032344007340468011159304218148171660729520238163806964081814059580571963271022979891212707044598486066785737745105079766586338093625833621776892827182074279206529628150634046050713201037802189403260215495219427895201322523809402067264245081483272579317662029074506964158249592732342252302985941049841105830737423404745763216775998145675928730352312942918023378794780313371091418841921239575805909543873567987064859053875325838091018689795425907716255167554549823882856680227252301899585410615997833952948758588966101061618092309177315471695325601473369346914427393552565996774055601486774938794942955335927953154252152633681562776269324139149354846941707003606259967232759269056259825944072787067297817902280664285243282479239454264447967208845362157307922083027979282852277849644905063537399634540657869092584848666531687886168104392864404698159384724566569775997770927347464969953828423873930795563365701302092742244186831983349324662513238166855020422747601938950323578697719574734279319796487633595550986511390182998871267701981634347592869164836529152200916023625301402653888783303499303069287032074304549295996341719328228793684810802696274901588075353547517503160233816539598193584611491129675866051843067816362913666208111395225842898396691623124188767668482911878686274036618222077406680790130972971521197310969735097476524032101597080016134993829213885091871379505233533173911677384863164298835024597882030977559173021232851557709824107266681312563768076612539445890492939543796863116895856745579389181463512577175429596108585784812360716503942127966408826589751586203896236827248034235334798177973175566705124874316399822482994955481745715629141808552676361804887172337057192979594748714851748360918908879405787557484317481699370931887773651647572452629921415085610533488441026374129968982065883635416949146851452748937145426764439876512228970616490598606451631719788068940876002069573976002099193337077980949895008079618473936664062389159518463382233564933465135845673869646054618118098764978866211777147449297655439870605099077853216722599545738713759389108835282125479175541860606314393276960621219759421622326594213774672193891937950873021893059414320034903463275382089379534238862105863365863150720935020080139190593233913208579039136844211083667739538907009547907952321118966824694514163220698197331786347942313542296553502862478882221540424396120053197885163334307807010594609773557045584299132725282968102768109004383788533028977235847511534560075018288737015091878015245420157960281990210269080634619808157555626001762978809227758825030080171174847981018627902305623443444631985203202926303194896259717967160000157485299842362311022965261899570223630449359599508812071329068417123481890379503410339827553792386302807957856084511264837975964312778255022582652313654996226913052314821783739062829361355694096440134644361007240196001001876324391766944164650853557348412086463682414941015864265500640564503624388268914575605998735593333012447480201158527477710759106425213491588473841976519223610231213391881359024517282634863423655677932474062829979920316639897080634106552447752728805495391499316385010123847635245308302038928808606096286417138171424873216825486792596811544766144496688878627359226572442136476637123080837586992754560522572580773902539279403355790306293007966649856328514939646448340965525122527958296838777417110799022732358626359811108808944781305446111215745970579316045318303090021404779653799538825911110349061344078014345834463175717195587918849638059342006680163293763957343008843639296816342746379109676310008043621571801881245505570840424743840081029459671215250691664374712040853360373117683465882505947518998918173993075444309085174129555211167629263167299681432917090972002482975943594018967916144946068941710926732016731787934284781482581389094363949513128925484780285329274510553608673030490443365381520098899812673888918539002263629606987648286274792839412638739514254535638601662972105887611615098216001015711470023015136885696773982813005321381470675317343194200524850682263767822931997934942594150347594173350994408504266832054609020308997256815163934406332759287574551338329109335067351618208283022532735144532099218637086233677175301445049999103849451787203073344262415487699465505995188982017427135609194291998895296262571932542520849407802236855812183150540093924962303896963202080936630358304194471447798968370275151259157176566993341325322361563640556451648856534840765564155183534939804430297833588208410429647477237171637430043993048838343777173556978405173616255620733104450654147157143338736026681710288638177266004807409619497466828631410882880168798603244179630975995750407883941986967666370615403040842786523255853567770521984034857137663998306409961377535506390829642269503020805294378556620488352174122154183233481956219146232141131788771945639200660260860588987882216808045824838271502050625085831311257577558469215668863288710147648102242339207440772566305364783400112309694959857985935363310592708897804388729371354105739433699549374040031016466477007366970572970300757211847416542709334774434391905017110421699119311597871205860215659671226014800191238859684223481694181446038191308058301000825418613281966887278082314703013555846818379510738887516203285785698264554743398219886288109972386166350051026517369190213696936190708616023570195269301491057731270094955237978947139888146138423617727843114680080740743478983242789961958234973443686509403224403290341782700511647094719992016616283859572083561256927088816599848515605524075324535519356241993790254149099155231864018159958604734236425161744912717159716897255125535484764415149896555060756113112974782059360299334844689805005456178777099672949015468603303299741329414584172760890128069204621456597192786484297185028176061723392753496969232034770220803559107386370702691716639547641930525925717442487531959298565030390902572799202535291427546315034284475113926763802318817164153646919567525530997773509984736609596332225803157336663841585407318315558855099882246898959277975180165786011553525664214306724853234426703786173663363716930306984794540492300868098351860034593218696796316724502067206517574182754484768277698273256909283937021531028655833358341762894689743225130665436487236946105783141262747902727875763083831361657236777776890843431373007926277208345903843757003850831197294524568045820427125418262847576024361523567862309980895149246602996305823445787767968782849754675292667725643194243022353608195855320053087989257562621262084072457910163154847848730446812701986408293352696579978113313516546444917089281084744164351424441171708926241765222797046897088552345727033654667593974258282521666194810191079887927710389586409364447178100494407762997629867693133461286706818096368557688418114989261902563387492003508751931634457407654024355413778444151349465726818445171104028714683175001722230642589746344163663954698690008418313560635711866657416603910888888215478602666891770881308813451662998124101291449438741730252121400926328831940753617546714126331278188455570023767683767302927841775524941709784071220460158603175684366229898262499497314169046807351828122824090684376400909540623233801126967589077072280967581870775415104696405440224694858194948546158493765479283401802849414133137369674342738643130145254040009578393569861543997703984721502793416004401017015911125587213013673255539082970032801032551770525691432120919511521966796107015481008614133368006634839024025306331907044450858912071570731318648163761652172096579297341999106485155371716456825122727024140899043793130329160609578470333585289470813003952922292526194573945159355912301008792490403417297643532857972603460011869567082024388834309993664895379464680664393337191072215577033806844752403663729044390083997010023712293732261030616470177885197912243456468182871798663103865216980157170851614005457421680799444661887874935129362169017586129539614091792205376326891942487844945239970792379114110433452802425466813000247413040920537674908408169108683060883341514040211886393381062491224729123985900137540147481324271339055450383990912786606531371542186275152494951046931925582841381687208510544950440204642278487045839786755000305409607861677301278237280549872934021275093657010578108368289487832908673266439192003880522026158338313371161852931098221994086581167284760290829607317235261148948637961671446313665673972825940099048680601915903694917837238906511974291318331149848708312709274353175245600575376705660895727001838087473303946926026101358866336916708072030718172235860030674869081241684584637983816504707983909629942273430722967623179734277800908922708996725161301015177271979014133884551242374961940198838844716925464489395909169474730390401819883478082165215103262354141324249857971263112896889775014200158898350078851964641606291166715398988062582220868211952198417822966279089318150154408498403627895675440266313421708657891090991504530349402787097229003705749052696512632724216932430270571370399807923994170678214642456780480421173723678883335049114941177835456804783131072134675979173774933895816656118475091946156328217277719001949268473042705881608848586393368074917757913872661230249520213537703881307596845627487023161032659257571744834844680110429608517025102970597557394566100978357574754233579295563816934356261085053428964235717316997006573934459817422861395542876037212891845902135124701426478386597096679649921484811894110789046166984656194575040502811419652694823223135488537194722655107392106215056859652737705977944282208559076305959860181973887495909607900125579616781655817372397869366648035949391435200765473125801256720111088788064145175641941276238653256153429069174636394989079440306152685171396770676509007409875194053129996255858709824940136221251747121323624773203953520577835885055885778716810607863439156828376646803944865567564086672526834751151657532531871982529463785513930236745476745413612821729217948118772952851226277259329470460052223282653279171766851785140049180419469009851484859394165155362890381957547664761792020447990750802360099355540619549835490173259125582458608597116907765396698616372770035880431755451047747378783543851437631326607378417004141567738543075313343360214384718014936403137749529796461722315029838840193621452869485497004787348323043678987200220207662562337831440517824870221738511779264510286724113556116171791542266876612686330072154820477364982641696952164188402390209040365875056581083450412637415469606325953613701720389393563334210366684889567255523384164581690191589367623118181011623833762577055527472585816202831531584146596998618962165983620646213241628512086585927598495110928634104353252373024216631521058941074887766408059860191032150422776757764965270496149658791322854773234940753157478365367288675069401982822710085659509444716272122431227854885666409461656563094085235906540464558804633683549797288701619929682507914192830326859495025427809332259360122125922627203233728570854740169604711134083535978532520191198959696133131082618996130232074401872794303169169049209610627486126623194290279505339384963492260978585083126218611557151874100055685244882241936809066655345793199283801954981395572964969391703152723900371472216134949906953969173928576757583547054634069547950238757042264890549423991228474233058561785752332641672081771668820325481257798771603862087281812187340561556886380802019005040321470112570270351511555312351936741764520789542399617369701312122990602099129088775431540402467520639761929326486527125419270736461141862637980956654623644500625905794052408257468417612904938090297584653537702095838891592209690695352946959685995654511943326244532697248970803830381054590311655852480991471942271123960211872650227450352181043231730812807599573619032885985311915787255331728017315762392303897519642447231146725411091683630367857913980106722392746786328666695277201746745984429081762428536290853566074079881984283137153872014697623190673133881276346703123244105748701917492284924953234695823086348702248774060967548975930408097031283299973708258771219737344953755768862856133664721407927760157908325913314804640612639228384708863750651361404002989342412387089830021726204703482053848533647797465522891441914230816714676047096626361915056978711426063772302055762471964225636437357260406924820656964426913009827037757064245333524581077179540701554591181207500870401053728261331721779157682240499003140295298797010165436109853711414266437404027817481333654873105452863116685009249525505056413494935625562989502156767110214515865711782045586672681067671547727136992925702519966123060388858552358748442522385813714599255414952207444931795185432132503008653995242916542464869223008082924079036389800648779363070360821201642882456672133406718266035520960349088694193653579664447084990603039858057212661205678061351132166661080653674342482165903421213660878814045333534031053020306791648226784328034830999045185386966108150919915907386258456534340473976180191845334958798941201642689454980703674628639980058943960936727482046812679428278473351844628966914991884437263452908897265921163313093435482169452546293904850133218371447273580919401094123938224836380660921031673606336118463304123867043389944693947892572429541607080281123644602280234048652477373049031810479882956846228497104293583160929383921080026933037207621469011523525723379487299093966579054966305457281492595131049678903048064302557018503281313323690217879654022281690838729119104090024642685339883109319115120244498410286824252739601230947310904043359656145682468279805983592693983746354056436640775292167832948833601329706132475480311297282301725448842807712608868945586223038334262780867137052428392825513564528814294092733451191662024570134471490849691635446653139994923677367101690077249043078397885628478827818354668852016847007626656907627644037510576869698452071520127434488580025625908147149665826616462903561526727450081644638246996014997125089547988734540293228587643374647446861798275504109203173820534888829180695456142643615591666321527653934463685568857258576260487176467954652916572353292719492687461002464937711832319105105760563264605405336293264409599995070750046896250769505545605113330625129786241617896218021861339422762821712555491125991661915011146972615203606888374618212814143584717042996097204695089005052529151214270658161321700037681521143884412104746111395194432736324981719776005372531750515484514831605504704032192096774656483675919143908526979130280048201909529116576166782152764872186945503036906882426581298493211733697635170635387318638074254968158725202287318903678548910995442466108904306083704717330290496155318472085874188033889722629292123361005025369340519647303033843517786279855085314101781429441620774085944330137209783127760850477534206888590853516505250570021871859712410368914996140309626488753647855138528208757299280602600330581840976221171441356201464609151738162967774565193254689993482878146438420651862034620426779437016313640892017504376267360883687060635194217250602708039843186154210525218110930136547722164203185007003044399391656382901518064586132376548478753369798769069166827165338333055030193373430981080351374052900988794383228912230326180606215249588400637512794780380556234378319814726580002679160242985983437002404986047511145698461332083517348356682664656318866481257377205164284471637485185763614586667710678608649068015126234753319508437423700468994898021670716704218404783954730385516928221853615028131374266628668302916857066464877531177446271861139207711362438677949269406499598346510643538041630651385904360508918200037447355025541263634128727401536709643681598737029831324245401224324761879266135843300093781599987559408814620987224451774254596037452545793052391293529830545578932256013603094873477044203244860554568814404767511470061323961487439897966469462175485141810603176910508567225190590254667369484132221131611104728711086442489240375485126704415820186585617326819211980297853394336234484185008770600802108258645007881407998585407298320113028836287729673358102468108301807363671116406270591918930788388492570270869999792332359259363926881850618538207276986177480773784119889382152443394720897501072924253960426028505131033850361394205030139711686887291042912683151862613757765049557673585902751249553239729261039989645050816088364963203284959761643306785856130957311202974363610006166080673529587045474004958003029221152123635803537518883073568071641005092757064726120408525485785923310471326702769049429712183557646258473508276005085291299045269157681879708170974790520742601483986006556750175903175383157447246884156405148265325674643904245222344902103418873650872072498012176780993389187822381215736268160064856758224505421484330902315189455953165573332177205516494811715397459485357952149870337887728683931591833806448860296216939724754654613772093660861158814781726015462146206823455862529487187290199446159519124026304255932021378334268532616719926527003418347485970888440383017818888986162672892447015355788667036278540346541007729227806422073919758708010778665883038928438147827536961159092895019582402748882469575210533717441472975141843600582175953913020270988938103907451926566500855808133228754379706057007289146488978060538669676546326712792995036364801229360423807941463417375791149864247847682058751851047950121056709138137738312713965085540575436392623637932481513102687923238834295937715835766347244264891275877719435708112242548396928435140856879721481303644791029361990276589551990895309213899543874434759452835753051440998430035348783252923458675082298173352553490434729908130245812159451925964421065524633213119719230074361612495892904115120622203779737933363099994846392908198927490467407626904869882434791865578634118797314136890502855840409176341945338827257430039661952503631961734005790254471553842449267267373974925701701217714262310998656533931086883208689931741873615528640292569244231234507497709405277135046987065584024360859511590277828785619303449867407646291315746693453582062858398231184621577487591910327916466753321548250129727231392573284729966483686663089305799542840029079230140516838217295170291146205110719198198205563753686762389224194026757599029303966379741703393595073919137520786069540581187868107162790637540620770158475366381731097858867787210349613224133166176767973593142596990429561600700056266513545007239111434579857488977393423525312448698331375271240037450591611096103391811748972285655431043847642561685466367222746729722551125374201799222911802215971386963330448735011624243416614611220033082997372201382780182510122431174513455363238485284098146066638381364865288723922847943461558717468293992261103460276063206424456038719588570145905377247417451512317037624027154740589222849223786475120803278385783443293536071900725668934086386328792924551449852511313645076918249012754899225858018716913050763519100487144426898065937965626174992859413783703225370086333268184706969391702182446115675930644875932517076387880081112210365036756964648414686471504863379773300682429900417351799860614147606128628490682480240827802119003013778899171484424273372611866029375072753802458094793726759893788194995052669629529405860874624957832952640871872724606465902175769967629384388579140204183480917550118205075522334757904100222049411408496007570023918650068410540596251652833087333688932055292732964106901354277727912639627221784609315120148410034856129021200062416221597879537097973808969474350711516945203221128064520817305904536792138628841877058391100177885735869382191196474290787942556638687132044365494175387766528326609884429379288409307448620966755671792295647386294295792503409596722042805298643041575191667001613966115035856636183309271146313359909525081999831841088238061142676007224426714125081138594670447307400455198713051482243565315574942653324788814521155178739742763487112117401110498569680859822213293768588179107173133974506735196899941706282853616070549170198863068368655898523717868395638574656903601641020367674690094411312812967044381762583463203251632870485338739402687041531073878127542452576490219073891294242009074927243840180037054544293043089555841337891704121372962031352799734840825946155352500795459510118223831108544569540428545141911980057253843250355928460863249656531367344989581738192895421739673150865837445713972891404782956388115647080719685826149480210305285942911250139660704016330870848467238295044870857624893250972833603417423685573870736640652095476727221222402562961561879859120974930259046197191363375245196370822568326337558467142337423769012270147855551023678886074256525606542002747534509499050214316540819043584361099358456998657938330313168552509847872231904721378228886411649765101164774539136360831441236235556161130161489687694847735385390643975585339584456917551892930815130253442646524826476242395414903481072983859542599755562585201804915836872382843596626270918937061941181971252462479054220500556042997873991807970197114974079127080746026156375188599615684440919843401770619384168520808985180839473241210977543993089040152851338511412104728421093752080354255758291790032167914887710789003903843964254624102463436119654473154738289978248308258061551172569870101792834468295280853470383507817808914403251090293111194109307458320827070779177606409330659780232761976021092462545403805641779938497741129688727524536377961881182998718996293174375951421051500469098017292726275920778758314025097410875570223242880783265597429123535526592087800707998554531865433485386657711218915412735656166967542320979929652283832776748832446014800592556364699514338480019355918081822755935323346314332337351414597562124538145658210880674860577534032844445492021140843578008070686091597614070399639692549266817822391350120824691534084011815965985047612348444299475399695060871193459044534180841167971113062201382061959888186304850345677811451993505859868177686573836854025105951392473024885532664446950475089894268058992554115505720815064464517502947792026477478634940652191792021542761758291913049109610680845355292640527202981796062431964678099855118102908806172504823788468228720463365385838255076346205945818949384081248580192734533021045564715344597300286564908925278351376941837998324394219488367797987224867979659319084953937079100098386198049642718283237319629580781983077360061732757395003032229672937775162950442585459476546246848828550598116219181391022872232969668480627497288338407394687699049868664835011890034972450941551267953647376317830160109472715200911234945402816643811605371085682857756447794146219583889698623486540260939065470667081732877180551759512286919895803582817066601080684139119544709864166614294840846491551545533589311656609037856279394277203719206363352042342325537649412643001638877079961239797828984162315210854969964126254483523218205314988063105956481461963314835003494566203179667712193951860816509934348814128217474624664706311787781897440044020455794507739142471182034511070604863054738769651182688134356929461708151354750652165071409772038460018382524978275429921416871278472068416939911096228299936477291189470038614918698876577980100817502283591474875932387489106514530699203035294591627366651442055096826363787545952020778798490164923184010503991323712686274247265042209573220116057443549758368317902572698562321682103664742634813101145211695786168765449495510275057620930526432142503429470289649517104472402749251806739395468916608301949239860399590409325536870781976935259359713915785948542851862165295917449698990406903137144501484168282023411027057269813118203120819350949581480180286881072892435543365781525703133349886228516067378458869823743101315010707861355120334517155476295379307027310692937030066423323538518017454279315143175704267302608443758681071974855656241955420817819892302951344915546080862669300374436221736940530984962342006126176501077966882784390589652763671266941738355542860702120848651606845790696953660011214204156178276248647036361372556314254146470008389700874997371244836599940176954202995570974845025578063394334702833896157067030886486920386531511396656839583838753379373024221965662139966287570831399828872270911694735622479459954686413252676725029263003854739069622823156732202311749236547772575227681958600974108017903842624043672059670168112707777586907186173169282563490692570224031658897913963881983286445596990574722141889375254437871346847561930388474613029705387227192365709635300376076699052375319285752632405926784279039670256177323677308238752737964856477374071208129418683187106372586506831712137015668725406349751419654817060039894939859468942611108034445449579081584346459499370524417414635670336389243025309280050781551524219437280781933534150487008159526990252619864113553714075862348354601570070688674541614831876565215591459834637057940820200075048070633954667481844012257257469996392349863981316680007653065549737095358867608288500573590377851709556723720503216060616556265319675888583737259664052577273724994117335671115125088361636288215595143229478172176694238391287094903577121123015657435692913646728514806629635706638233165141721113703281299009878305424143642063467610366271326007438440393076304713173245080786910489044222295579778175234728703597867749247155630372438883086481542601649651001555717849521874430151427494821534382119844152752351277335198855975829054068562824555760399250034231539882728093168905547175814605472336725275025304951180070096382640762842514824382518268759805581644334687013416130006953608110956561316761255512389466950332673937837425011163443415823231407696170481889277005960923970112792501373223824830405936749753531572191651802775166306274180429528320147041375728684346580097101328435503802774075903004488148912435280851922087638473708050021836030661096266580436308227355202897803097761517006145646876429784019820817245978823999208491342948287439763831114897445939616987967371444378912328989734296764307599011527999467872626051387442774848058184642768625330576834211839060154148400564062364771302951678174515530973702637850055951866503519651786817413961343324407874560870227250639300626761043448688573018135944583865694622545626985136636607634028431486541162128042670896969983122115848163852817788091226929292375050348823102387915979352434663950122414068967358798893188706608254257484778267619762810347050568171512867328646416063495410031738253170253948216911905159183311167847132036207419233201822588353448543967723370151892143213837843830808929347637384604913433731052530893147643940221609556691926102962340307520879128629005040981487505951899343375583999408574166690488054674161949695848263788276791985111002030275100178088377833447621929198731246542804818257610823968356848121604637274007701121381644550092430096952997297680478328441741759070602588736385019750526267166624653702176106581974917064412948269847725856222238390451529732071654687687397092369523716311837440285949699775850239578000452650873021963468871054040913449152963143870344958328393498506807767399746670966721790538776075521618978745130279142029272009025603199701539311628944557989281435391191484589536788874579687289226250523041528009449064002380407480281350217224759413657768420984784003712708943160215587157047055288378779404037774869413123147284517357296739436150120457427424777674928853806749426346976233986485353427012467394745783062930261418007593083659092912908879363299638808556005720528698445336228099634477146091477042546465440046878718416079280283355050478552787113266675075121704720107605524947470567517519228210974634214951753731216516318180824282354701334779725484403104071657489617961206979153214569397425237804768362545120697375233986625482234325665724890484433803768115880938079671055147097819988889485152553219301840625914927955480221153672706885084247225828899362545654680210894728122112881111625747124237023145129744997588872423854624940909203915371850081345449793305262330104993406505515950969163233805816052130561583724876599811319511439071994463502352936608981471698909649218764479449027962399528507530575725217486338765527481042696804722075316359415332380123586325693406272999215551879203564013345484341460462098162103135845711086227862332721662233235670493654082292782637355322746870302902246206439964331850668779426581496504117784211994428790014950234377060240156461052144338186969071279094209003194472996100380346535620450996512919253871680528061536432961519018797200910224571805542656730725803454106816147607426366371940394166838682871747130289214735165739673506340936171380027728582785829231614011911276092836610669858977415832884561021078571070472954089842006471283188310164183304207532608993297673611797380390799001694705768866375058177428575961662874757378431935225988992145595721261549889541159607876205619947855491890395721832318964377212033912084045767428923652053031155316237002213040309888650159925530490219165471316472521589870680408701405269477537090775349603078352174543558540126008453125040614556754943124029597705051714029865873852983005491643332650996654522794173482204299112364844597967288225007236390250657322479407670065485370985115845224327658425300324876029595639306523765404035946927601373004914732318727461139398213277252519137867620771707699338980162377979482644547994434304337791760092637872898825556696330755350990518231447176752776037775242308599249961915487264094031938270646954265297308920974327260627200828161068654528647572797821734177875617424372401729821497367834998724447040694716032433880699157941469901883362981982837950364345675940224020340832017684589417398931053200767705694509419454388176549051604816781805906778526125413092117180040333349921711392798067216465722221314969471635870114922134440238312680344884240196173186149425505093496653576131471343719537211295541360931123268273947251916852920521638740247157974114778239716543327379978354033611636901026764116336625752918505278950707555650587953975314064700261837870916174092003785844302105033805707223198269875571853394445657569958354850719669488258235808357935763746846725893260150078826798441986245597924617581951899847634048481518282841246880978334626793299304057932096871983958121945596847889409623764962705113429769888637631753936807191298704680567485800440725029332273397643757954171911956530154754888194022340989891602212094355543218175456411013077144416362689065158208806105190768786374290461170776600562452460154112563715599118551434954589405245202785802626467697246196091009179675111344200490409718309121430219623877129173230896272113833488080688906753956854908192250832513505378008236365769231947905499880910033123245163948867979214877657985568553818372570679878838968689052893019782350105957639045869505159450669300017279953341766736534716355839876054051507597736052561956052565879978777298715637839270229914414126573629855824468055448835774281611583869375531726420258080386952890101639464107308937062614466048118463839167671229246730178611949072503783012910944179887253777345019580178827331777430765072376964862966692852724373614020650626632439388747999808867146014422857795740277722596220289276911215895104331726827948337883034412981118992550946202876633959430323199500875168044231697360602510205095667518600530324802009778536424937510648641421682046569285889837643174219600444778338313931826431451359255436207031091900893830593327687581971524847407130667718874550332044976638363360721420707182294468547435705754398298253316583088038647367263001017120687436215746827113273019355042977458391785320307671857264217802248556127525743714809048633018799893963833488760261400545128036197974978104458772824664486915537708030131832868678148645489236512888716064667430075412078368953319126633255948283364615504458719855717228916831693757197673473392339748727040788855993080577481487449486565172579107021212764929998332960992929263276702832987242021550734153938692466797371368614188791739268714106368328478151700020105819363998601297770518852254139077209161672205535071060818975448753053268783706443299595505316875510693326334208236919352429195552265895721819530238617929160116335388991048812672949118760807280869763804158040939483632483529711191903663085072343607070391414205762313745581598308808584724102298955374633449340340280429526195073042131955219411991946818424216545931799098252383437850906891854508780923297954466126438938428129762379055127980945532141073830258019616994713055783635737112046102345647278971303476452645732080074078562236378430912905420049204958149817961472012091578033607298628304276602632046667616423750109008613363392902901103391421270773164177344561635190567187913867829603807686116855628836916048361035011041701921788327661653309294509849374269434098906282268566877249319636868848005422301049910523379186315242030044067800942735465511165949753688382837371568591567619510154644820256263350683108282337630759673538071792415777024090531010996500558118555429306988904672969370027463661113687930938611396219634877030267136378470894270001206498197798180607514948843220004311328125268319574510723435383115646377769236315056415608440751042980709208213865144353364991414648961111674386935996681876762886856726433192670451511121143544798029715814480477585979566370670733005275422998346111407252202195738345524618743840155497633208135326401077534487996641842792353946173372592571788585435251250750405371891307567997280547824764546920394561926618499364188192868251435214806055525931016156325759170494404663536095208958446280025707660630248865304338772556871958920119518160769459560472351985851940636083365114523041573259829228898579324851903460926684608782071205199885198191538195413595203873088340343251380133246344446389288095179791193961222209722556900910408365078718154586463496924921855544239301407322449065808246183499168954694081587546574438743921337205547514304933502450317294304669728621011259183548302573766753603693249061594684889654433692220546641325838221494757442269206933229073012793696590778603077423205135437544987867137173085319422168668623855255228572172818238720750627146695261089609544631679015412582138279848549310455424331020763510731476522149107907738138174571039892444354057968292077171003201382225600584104870362048314581469280820320050957363024823454971166013801524276940415521058904234886311700434508756672622773056768313034804960483187138377918725470142787623594113492366489148110025647579049582707816132213022739819259420840613070386139684821599532254625620132230521191748490782221403461529363538841960610175056742890572212794817693260591237772758520137645462157791089137749109956563768817405476796476954002916722353215934249633416913495498702046163776344713659780748154806013907167085171761387904243866251750117063698442302730941206539437137214799276140315394756214925034667945719568233965950382712238565978954620167857274303448930349581810459029211600790324690053073163215690936580443505043269128883890336757769078122846910082723920486273801515334247276894895614180381311362914205380735291599065143698269254916236280684441466545798859146822810022430499713063009632483512643108092957072648896062451568499168376692156008954993870846119912599768170145283569435768817269833698175729897695991860115411770741998779162570648431994485301256471816927164261279748121936014702432306975702182873549422021671831221464824346637465441749924697134475507482000288738527347771134825344016891741312394004211287017907221746323449144618860857533682932452620971345463451399409900742390009009776132411287431189161812811269385019448022149488954396165852469690922444233213158738753919487247995273755482829957430784880036487809446560213393798927815728704268919560933052848191479565452573203674700876577708793159453006881544118452482981449469557004485713480692335235286335172704927250568573907299925264241630018358425367070432386471578413672554284735595905299751367896503527025446106434250502558266296678757035020946715631786746971464555990263218170997399601074492820915399505349611512410713214182650497158975821468637016038390909116147177145735835107698622787165082762342061112932633463925476711633037068998444571938106589952752097774181019458280518411623258326644789401963550856754839529516729982721272180836884579986709542840373084611204270101790330283227316198339650194832285763612016282820701272238207202098562036167521575288943754660014989295692161574460710707678358172222150682675459675421341597747489282272758354856167282892905813193706667566790511960337253169731848361004384691152496330128326477306524565805305621575539085715127750522731115850667773149185784277533999415637438022556263285070816086417192472046224042405000855636303123917642375541225322459623528915255730843482768775037093759734093277480501038978887985513573733943481507944081414407109692427411166076893183181345267551143467000726775596361045459252406143708055090154457213799808920883914606974941785540807799837049249213810296434464162241681163116325240744918160959238695017639217868180839959351021593033621055738752110032263060744324805573564447508748844659018362262809787983052178781521252357325537355776776493869862340302945410000431301659208468104897771053028705615098870491449927960085516305220304578392510634731737160414320580483925531541760569563522084472686474073784288404157145471277373948124039707890213412872767842976140726698730840933241537686095494873878305247776405789317727286649984310779063509845035332812868686744990443252339612639409389579119157024254160356411001911606611863806088754048189318817128256859648224693189297310151006985262323338211364941669890424540325942940610576860284749375700767543425912301106503929115399013012648964935020571621898559619745069086233423275157688987405776549583347230212633886622747111016480261073892401172428009986487945804826334404921841537027515972923859453676786403107738400952072779117106797925660596005804014214910550217519267865860526634268719290374521012844723034059442467764705655801419639287517856966287454286656972168671331477423836430973963219866727575078683199537545385848651120457407132451045563088323587968430698545560823115728790355154176651050307024793049128469689992311312671749757057818180136269026959192650624093269476479042407424071678727047858501675597206305365043644021309093495906878032733575603841215963719700375722836198969846910540845184554992584156917431623151341365112741574357680749918245140333608189455628421969936957322399663829668113924510371936759498440176461526237546248959202035680079952310673659118689904811629746118989661116525006881939805391888203757530494118831294675175592481449532258273313008602529349995046176064855597160804373275326229696727478506788672520132156286564749143131637781636728628731307886601845842821956013175007283957454100551190201451657696209236612437716900181844927266015602816598662726003063805291294426059982359190365536665798307216265136136275637013204251165985838801323751758770923099420556408028153957896019615265514315457688076335675499360602768974293264863838624189812923056074839229503815665159728205254269416061600504189412355725453307179148205356295974467949746358328694450919735514622785198848525996576006904206047253864361457902405144678446313094577699524574188264113839905058921478657375760233090945181740137561826048406386357180486975979073501159314412926657102481633243023063065576154283057702912341959431869644634366015057248042338525792640999044626154685827409809490864766814153582572362859452222379056922677014252759021096268693478062760419574852183233181563602076448452209758791178693371441979645423097085261665009250567248255047099903601205079981293189655227890338311275836395443212659729748100291234605843988465393702032099016916378902394886450385005124668510809636665915363033064092125233202201384245454293280463743114255910553843197834183645688057260952366384044191043064559838152073102275025650602922030744925983181644161336141754460910749017515492523652550559865434138379614258575561246225824164156959579490098019154648214044308932763685494934874745801920063794407377783069911497930323702301201359144652355882286911198497225375123105001996940041821318988218301228629649909515531804790309255324979035460939523776705682387599996027724654568341934846979729448613367017029323544823397406818354353479061292221053842088789366932551094531117119259009831671719854243781999997949151869513026036086171860134338819422116491881386841736086899087783983125632734648663397883824034751945134326060150968535126297503733715806627479724148783792523243492223634217608276244020040029566540944504377100136547470063572681022870750482507148837282390259354780404109682371524693596490223390895779233781859777941804069047476430073571348592825433621944848884619437723462086804327716429340669880274749965158537054663353240697282336035103679812389104443552803221859512501116343111150421073030855903133498909637194568930445703823554575191042314800892685760655333143946650311129880685069980556177147279732340613768443328222241846618553894169348581499819470935798086666583260436039809760262900268829563919080781326582442817995176810402865759304998640622810656136138806193196897535517413525639969461691672644319583042151739762448235286164012703852228179370952041179216347611872845537212300898292066307273043243739464617501584419629341543925750421766354436648696967931884871936455334103511132022924128240725014670582953635520957527778201302254134154868964927255739896712024607167681912638871206505124478326186269582910141889663707729869297437815430235821367085449582951494978621800513349864462597075727149593550906713124658669610527231473357852384721227806456120036133437076076978072520541755492371162863559198086861491059047670880686129967816835774963923098011181684182405688730213744904055643597716124571624049128273588119751196615593568057901057257826608717925666171411889988284865118718994771610479036266325416760341817731617940482590170152252976394230613837033540230973551568021838121462275447931865690524636949825781206067517972543077192137062323925354907207917646940009085394748855351476146073283589960302646274209997050618341736441560977096782413669656761152818728981184480412837859424252448094892875245811458276381897133946082379943477279238833515700591011806141729069478024542646873134408708338244515326910595939477965730630166576707167125681599364102312898226711751889335978640200145318534969579894610157580566576775620164008386351613884855390392156903218278504596609543399839044882705404743351803237771312576834665819482639039269560061631665139467707806353706401467240072998236996530016062582993760053826977611786437758572898241148036140950021400844415396923767818494229830220391317141163848200752959478910081249920400297253199128574426444766842282479661721701020349499956851798899071780906726587455994127373966870214476630204277279067969731070922059408399183573751886077171484484755172772586361698057444172099565510171267555575967044144276870604900275723258256195096344725070902793874268485446685512877181151751228789550590053483058783131695900911155172730435966323050621938076944443397797343957497131635363608854370453761678399108218672757377906566440830909997242793030077913468107761303015009881405449230838791744264475543702029692095947136950611580993137072543719991391968991945523681752595008508632687927536246188248363949563577521860752082627594298166584666003678680966294112452961659581705900208835339395696805067463014316588061134178105939197013422647044859387273941345981537618149339129540161771943583974200638856677734511881154224069688250425811156102143850165270380068147817338119343226782866076362428962538850845966256384001436655629452825533393247260024383529871892630452690190989850388139221956673773571359951436095373177950986616656573927030490243017648829507149753067258353348091350411178436551557387872278060567252001414226322648892021310074444623424121105741338973777383874706601666437676847204629989223656440370635339503930386714001320278124696897315168959288313126976014670641357896255758228963342694082020981376994965454789601410689787156877640269862955296887197293300735546933529231672200195105732041800788747811974219924477386266899661273919152649999204585878734243138695243206673311242696778710845836796211197559879651272028396627672863225944559224933181552711848553258477636198538556645079388272713157659199307516908197297666735411484687765102411156169650967131529835340553312233064451257818508046365088964892140750386765690084066996550713044731142890462181993321881601290436483929895598865870254942259835716264086645843041831101796738540016437467276440048087270276671824786297818350885183067950358787267545798276678658938204385728356928799884655194741656654611964660267167225989784315250196906250404619028583952991679567054505731069997733461413677116002701303441480821517439361652428066303229513315746446699989088171004687432348880763489670103854427181679706592064767875092642999747839755470538633741818103491012769935996911827871670408206815842375845311410491967402745611649702140968132902830513636819101956466743332080329540879602644884814692525829885106361584736108138801998928256880551822058760861943208519190486004302941954092059502365786928784472780096748060229354924950822755081038493831778386435960057557810800376452390104363017105122455980113292520312672455977955424295919336271886346599913772185503299858249968824217076873812339067896580750690302762277332912707285909490337641450419780913106514171023921952650621726636025260840243418338269145658045130776256483891839427554831273080095498417714543248541381721068890746318256178570685309810775823259935445252014031741817406302604345734125075686412535228229421610832329366917554388210299634537727274061554946994257630612563599638071836445993331408014254355410417269276274730510065917948963073030745490280155555139922472161388227697328581749571726311272840732661816798651273791749242315955344189512361066460149554394008450905443228075976315144523379754345167288209090645821022923447016796210538661183750646245553295999424968077555055965734249409156751671930799006675959917642857753007260776213472057927412420336241642608583995723163773297176991910478855862320454299580595450146217469237237771227091527488456561904718671945750114206563078131327487352405668038367862578477547002432943339749916236158857142200982349960051557134317477795906969420373611064031171413981212440046508142078017182961560962524299180544075547643469845255182204689019458556496427307478562772352666524992133576498681084415118869370054373368080433513336424962781382095408940278861121362676825816836844936338020857690965618042778829107237896859782040039863267742074313192248919393435091598383820985754550001934057753670841328552645038297557069476856431193869685693744263932208752076607655339967320559383483615406943614219180992476810759149183742649132117816935186750494113069363299729188384128344787979838763486453852634416138539360332746450608924786782470194471200325734939436963499720620027663630276366399736469706146898441488865164638013334566652370919868144297054321027679933469906812744897374573476339392246526904027756930978901313850099017786631271502363773857988276807436754265223100740946122784316037650916055476801573484303122213974894551567606533265239138475206231625093261669954216722616085785549652245261523699998330178048735822463087477446572433227054604193134812616803729216978711106552607767273397735539252335640144381032889573209753146131741656539010584423511436057641677549215378753085200792415057353514734371326192623248183649512786293209257107901970345251874436554144034711007257829146243677656978203419282298154559851839653163561299379971860373106879769289476133974339861342305286010548352305952532089020475901293638156800352635764488554701788685764675942326201423850871842982839087996644834981886813928714072997225794015911154737609078217579104596669164555481652642768245256499232390194524290166875098795641216811784992588639811510060138224754900069009391707486556131563763009964995851320077207299107732727720998585682844537842974916104853985399947936833645059150843708469898690624364221490978746187019703410115049826660459865433091445560000382285733585872292844866184885450270843591231817065618412516803306175521660514594263717304996477031134426191734261951375405599523157692322014070700810640942464828074656354262015598335382372690942523370395594408123238179950123191755683389659848342301101258711943155285633721494322045676098528387766408226526850212387809222363812769125548041578693109040532350514080010331721198461074094764433255039131726807322425662194296058585673542758660627325076691306384235897073569724248717759560736784799753079913148464070830476762932184242812704838635263275340204712789840403949000948909925542537794482538395532067693837724219028167168814477730943275455897992060474695389707957180003604335776358364933744062055833925805162572278587273181866997701598640256249566086354801918327803528215210138099649763372136221782002846009213327558779425682285291589327002216983202437424313326288911729515671117535286473963471430245520936718203677423243898257392985438911451589552083897682579962378485943783768531059472029655687053004803345813275291066266240331286060980478053978438348645725302599947252154797526920376688010677920831202032744355277436081749368535339232104338552352128853314215061323417085568869979036727443425427683466266914371824918856548516970856933464890947611640916835026888984874114162098550631986790553113301930439923663649629667394996343896866255653663149283439043583571715073791690651079258769058835809126274110893448149142457576727821903157079039072002781101674752365737185277722971408694168737893001640090510501594798340346825156933991562391853510317907674077165103576894303720933068487726153286733721629691342931036718224089798742048136366363657782616205264453038481738724981696120584211494657475172704848108371000072098759559015321039277576987089223843325330280146049725536800883777329673800184402601096504301633674744465925791057320616211318632609537737373070994182940570175562425025626050105593457925650821293864655425894994601497311197998170860961178224754872562858774973328205279819120620296892795931046472846427779385706061876753473463764163395839202562800628423601283691878992577887562174495579656451034773847533983740221534087011747310257346788213730551467802661521836122924230730621273359537670366461047291330329051855421289121388552575223677043655171895349224171477847758806230113678827093717687384683144006913513943014645871622719695483654887980003531158011796959137423929358478896130390398979334601220937398011831845400023479101608408192563116208386800123566813001065891757562839653109192006838386180954250143778311524861487395939411427526956982097727961706407370046827993821563112463829146883420906466312778987111473000555770919714200597633635406874135931983126988316363483020449477467070565463829436583215593766938254417790571605233889911421130631536776841830566564869939084619326679211555658795943379694162192703505762973128311145992957538789023245729605491828572352493919819262512173958051624288114028776048222926862638843783495343064463286756780427790064818708968252570129919439512948134388776544677342477696456762184636146465588531046373531251273617380382541958866409666816303503667099374185143217756249686866310288000385089609477994677259776594943166226183184372822042056831086816515826926985949379277605991927487325171985348934784744692415244830805961178352680621965702476721328536752142752123782524524252079113525238513050065559466936001088469955707876386747981711103424002050876907481472969805947460869765174863179072199756313919032973540707527297881199873572891005349978781287918826647751467075741837142402502168584073482526906433702942507086250345219952017231269259766644169628448615998130828990909625436586702706106296994882839960034138522934795107709423283287823214776657285776890759857842024718181403904293615856696738484392410545476325236054567449962789365518397391945991568661522383402595643602555693801335377384726286659627249060949890591294196363260598748042534031493992020811698003715813420752393740629585112929660735376213402963416244856539176423749002183580206729309987268684795191749713942068472401621856542315457448097529692885930920849650775344959080502115724502533007710261043736333487868944340552103091403201129465032124636794339836403847708899178031195022715126220867186901788257963746537047341719680366396580027280846262347507101562844642654003608482363955181245947080245022570909304973153747907488992995745345262197686500162092339133562001313569817919656529230547367153871337926655148402553775723884374562310290389510207368511439643698701650365229086098388009562137389570556016932672121198113900177025509505840766870044122770075219738286070006035970982933498551483339911795394909203099709974272264559375930765391420894424550925285058763577040131118999221222704133292390105282922261105651451825774761520579401634758879592272753022119396024587623983090166146878630282592541868323523936279126454360928086473899986744847765517879702559941469445491434557628395417551032027024576185972386759575549544511178539962158721228177719130235705814795892994588551113242073530008019271878671321575153479259484145869110873773669324919502223956872206516336632253441826990388570272036255356028509308369287442119492197488599660600128413345912649134899960162372422160340216617008546154710281605076465247585766409833735743713255984435531372166979425079647351197487713519737330010536702777674669756954750100464209991597432636871464297800867100077546021803846214897041769267453428607409731358904874980743881009427775879721448733749419923126161768400107099686457171732761600496504598795980860998095499135620210788130946939512138996101752192145196621747707558933675739698882008609762588345652830079234392289515684560177257736465839706903677425850924849693935623779757475508897465231241504414079055819897448779543846500272786573165090555897873185976116980124911693256772134589026099355695832869053943110002029048773495360197309158145272936221766630107436671939179204103722100158831558923337866618773665091062106112611565608028094565614606784118200076238493423951404266950403411917982849070307962374569262994736726930879662544709120708814599173939254059846983327273729791078839738474552646929876815177041268095237917985761593857428635855422022109817193277614733014674334847277474322147428398849407537173663465616382627482677008890310426985548612325254569865449132802211588431897910578185480483824112226784457124112591006053430267885257331945118753531878003958213930567535475395123890554719957334058001059760243523692698111297999552834634496351310367005783885825908350525885902394037174992280999176311527037929573308255089406514910128692992020344586863340685115790664113024619009038339042283745009749100004395414319742551232626204344782712220384954902071632647617559499535500315283650771927778145434456618070556405731426709096399641407775388418310343366355182542339400699286391636782823815719846947511273023078778179624820904468193739273759343465163059987375175363408476367536972652244889808392297564017561971111372932193415268944510781315746804412336820001158023730623618710566714722722122705632878099386167801408386263897164900224331973677268459889327148013712341828869967066698470514936937591204306499658978641666670298545220201486555689912534174644726235104387549057031355652640676105190489954481472608156003168692607858392673516028505738165310310445855418460814878569743812346373564891873481002915783541073276321557562275367788322273109647766177299016086484641553510933263753540480819973012066903043461069893853430188733960105532970394560853921462156416570445572727742055943329633200722564860774388191143533901112069517632212927221531423830388338993735476071918290938218935743530716755016150123177256635842923551283007261003980943703852382767428813163605424008592840524955146243097934538748944493320324455322328854738408474683881525550504832986399747037562253640605751455401193502847192877343655430834828215719678777876617817864503929574738506482426540805900526297533996566919697511791272661391797077073164848185512457323018764374844346690336532806843412383847880195462635924637160843700980382522231534947290502796147399933500162611988250054683750249380887838283410848242247470243310692799097410659437729347737093712946019933157880531268716988643410145380457252619090609321724294186239043397494238947789326378909601116491972960570808982044164191116521975687447344640430962487401870723792733918498750742662520998877122121632992880960634732774936868005887524442939082473929891056252990030306407766194414717235606120623299542140188768541108733104002787487969418832299179072377989901237869731685628649689194079071431235350350134929682722665984243033522265186170676450338308063343421771570142517073020058410678151649782310213075518797314352263402742942105377088481963230699731435448843693205648454411440046555219698991244696487999109976083144535624730314323062013306921892964118050454119185854784427768909091267417455903920886712437917043535678707896970638452090627156628827851131250776465733238723303703763701247192842973820028329339392221262661868495237112488632377990838769653549844753791257303934960564120899736366765702757975442905725616594543563652216663105201374501542177020855879697406599592925953001469387399953014746931908863506911796372688070593667311862512964937604948267323562473386135568216229903120423451843124308083592833784770239362566375636199887266612727108072177803335830181318365170369845567234573872627708152945199509654608973558396451535720643633823173251547632922722768529495785279698678268179900824465553468584037123140375547577034355573655930459415849948900757959620262570636142116670644991972030943671948069268579017664987686614685007710394488997258500562714397400537811030501656307674046021645089948283235817973825360024086439787786417268645505124110592215964846460315148442818120835605323153544185431518304472143575933122390268490860625740751603457600571042708354689733697206150576273975307297995117219848737082912046591352335343284958916599703678367162639133725934124580023116977132063753342624081131160516226793945215711937952504887310129799025883279636915738366173813156780739411186770691025685862522673046456272641220294706867145340457133579356134272219441098490090959964386666529722314698337976356202309056292096647750462875574888046291310949618408669611137148495772012940609274987723992465722086550271983290415043703378644127081258702044925973924708415296437661586142207196370956795867554246180940037204096660721013649422936930953050227065783130980827991972380572113859101342795322485117356587715447813487831280855989028184990389352092232467136654482637784516155847500558190473920416664996788881008102274150339720136029083001747264248205402537060732854525026605433981736130349337674018277139704101302027615947462947851333076164609521704795646870400390987951389055100786477184033676050845419600225661399688568828193976716544168267069233316779239726852467971335609043152152056360091252035742872127242360022243401820826051323577720703519076561256981192564708909673327768612282017688464967683173701134824647507913502540635357729611239616320523179398739533559059283533947218574266239506763089645363448564280113142624136406987370961188104080228010503258022786833973586597110164298838280499775991237282038600310494249472654886915958494211708301718270027433046533601268289406846697830644126367746702154591133796810176345055311513346829554774004874689160297084880645571582894597574805727416530181705880207367942618547099514240072697731475814686883497834443578244862848741504897710133968968555761050651600185874033973069180535386781727346141703150291385175612599541446550534405143354851994785132529917302499765283674037313573019634452540808598043794034342590357379939250347944084268128454820796535268043726358604872522733813191407577805151285504425077933491174040792632283791480394067360593921092461755569026194027039696998056109250232628038849435520882648630149983529766134657832830891824328985086148847955005719617704386253175357814618002449315076562328895917983703988796659688889153850594086160962507640604308532032172236160309697148721387062353644009260728170962932069367875481346780207175250280279028330613286587278757468164303961767878948983166245346691275471589196829316074283054924820693058331447993847569368120172491461363277412737934948084055834164288950215143100304819290791561910245979141897633669993008104302891593883488534608386063520783125468969157990713850828095722832891002043029411408227817597280043238355677842582626209895594249791941871769177938820971105409910995799724225094812677735413503357342342697562950484672842681771297043367519161567164120370871159742739404688708378753716464062096619539600276809000227615964587401784704538693792964217787379957893800833295200538501048022698440226555058701685257339356839306965887296764827258584633295378360292972605943124007601650241039414148465925137511808384764725601108305682356941315311082833074123990717990095554171842496855456022320819912230006759146825606861802329416269059546691511507540797411940365256123401758767666505419780692764525893741297044856903981009569481746888440303730661133796698491390663503234874983704237629057928047777510249274556295672251532940932634932093348676605870854510521734605470191708990453149525453779056692749374149463053877127439704214565600786745691677104814575107669821782974893223805396398883747480879809521238982995635537311766047750557693833317633214773205033963714980675983775555693021008354009829351344952723995586046020979124004869566800319164741775198927046682210156567815574975665551609777906039522827264078117088090030767529336178728333874962511615780781108738229217317468601403121970654447810226550917527139048570306989909121346976622784442965451277460924172879926982471601587944375867196801728577875786692385134273670271394999459223945908150477930995112696442310293269598370022766852591098617126052613063685490802785514799606059791146163086438014152680383820635942227217715703401493368987800364066397688297495366032714515211600107861312239949069494805269526145579174187451729381233120288471731115068093665644328697187570833793215948273443221822170601555087177230751910060835451930639362815576580886895792323029538479334122448935268185166571127355793587499395501874256093544203846557704212704937701544398631899850753189388899493037611403119959849756400207832608165522506613932244570301109973533364365025714877787100970210896411642764524694289924880277412306008762827389799701465784766679235626075776707699564713458348012206598961918120826368892586486264322039771336801364896564832678812349458777668527555868082305132928495273425527823449679207669765393282779828490521863650518938733471853516045780257253693843495239773743263455762327356804829283601976511674635739277836325314019890246492123418866768723418581078461093357668308820038824726411331285529072777881927669292928733266950188661096411180238442032922154373693121856263514917412280751674256684601700447474503611036773495856440438526575101335795558167198405488728605452833229418276530149719105708153721998420191352834857255382898516812272250164442890759242210350069053193501500651147505551031710606387229534224712550024614644278867917434171832034969402889486321434137295984656810283909122828629109473363585246771458741516775526700570320859730172907012691552909966498786890471719211826314927403840596965893914420067851062866957424450315341862785321045698021339075558784788598750354033589209790894705700193345517175629365713143332960633448825626388477397823949082437958355978910275652819695123811009127624043885840216985575089334651066983269061472880945054558972184865356823496879584931529285278150090529185217345001827484797276649253770607682744799839512388184174245516027916085519052134855494791394693533058686802812433768764374438867549947582485448775201851577191349238053851034052996643668457362750714624401268552835349216548420979375076760434591606998665902500709304248162540736911107249843671177732968384533704265299697598584091187171527722254673413961012382783979065713675624334682871257597011577605136638339229068892447224586638822428207073106336680436397734962409942965946216255548479686063021303599290192410749586822160921468989642654786758888706135437206566001105264131309437867054700387058900150599667987251693544869198275921308455218199280452697959062124392539184616260735018417429895228182588914270842034165024194712110062192015735610966871069776527786397523949686228982770740388852431300259487176376747709806007809308833417708886396311303486989398346675756861560973935529534548514089417130561923398390930636551158101672868134998494591790367315693293515164458699576307422513044158639290033402082374966167903159990311997014790841009666215576405162517708723149220262679406414876479476376370859887906779839224948246557198334452727281606380014727233538896220489253098775164981807020322400590801613881669192117890977018667830630969609668925271177312094586911626672207631732679893210020741565262993954566740323670946335952506945562130601955597306854755284360987455371016745719495186073868075498530799852840943981263606572804225833666786514942072690751390287532314662541443570170561822178808184926509194190748375967516888244872257558699894895572171063830358411738290948029245871928513646417955275430103257608838109908440114784554352319291107147504508530474548213987547307754361566865417567960145529687686648133722869590284248041964499325289909242170095116867838390698489904077878068365915392114827051952689131718013359441942665554048757038227226473043442318098119271941558571224164784085489118473039135180019314910632673003698904671327802135544673249612687506897754756163305656364720461662806476295181716810843628817898648049345195891765197819153582880015404909189737446769309446316090791710112922055667103194409099876872693710635057781290084539367660838271187875649925006989377118037186041886232214257022084043652696067635363140514079699851105227846591464382541077270996920928522093015471036041041499333516313758835323173084865261475413463773632909200953898573524752657394176434810452473882737619820132207020706564092591534204406395917359346210780641808812077779506470406274673412364092186354617610182151338725935998247306549406661200338852736801935289534617256630826875192732875931877097359517606804297896947612323423291677305999934169261620299422727561313240062984027765488125625306134211820910820398072239914120272025353597557599630043847570729627201121905059493124537757419783838402994123146646933733564492648970930633249965393514017244613796546509973148951512529665379669486736212920022853386443428794057655581533933170718561020819390470383260611938710121053236215564433242338673109139575972149565917386633627253509759636454307713278335005683920976890142457376006154564909410079168858940587573319878774500732812228573336843899860471901799698439372840377116534058699689750685503127430691124423164477893293359042972398603017164199886234614799248582136835106175777455354100763827260818413588049510261994699936054682680018891892329436957519337284656807609880391798345410782178155749064601740249178082952867749213102029345743395084895975975011456780261906255946453679634843924154541668761748714587653240863560040938725110956585598841517834891754124951973813489600576385021494374375836037677458505252165849572143911666964830481085933942641125852398160546126330434742737755994961996925608664667669395100787232095598046885595381988932944572001997645685827683979957536992230524146827050254841313360265709583021382625288807978152268556547393808255507695460835472356881024356968971398112130969966918117135111068176694100011281881803858152376318091390957651493932150868777073043840914057778164337980894115407676089107375063523467022778802080190021520606222979644358469031384209485258772557373553772025799273096454834710959148346306524972449219825573867334197676067873682697871487398433663875111583948046729533711146538640237345517752277902416684566781186279852791057109421432233932871860459142125358857271136521264077914889225839961540108856467420640026705825950517295146483844962018248227671992671575695086484533461454784936375370646234543405542014577727671363218105438685618549379343193396412857070331453870830053064619302685021229612656272640194511247347642607460006713381936682708606305681901565440025341237867556413567066679054684529166888531964283444465457328857738068816774040405073050317828168657314183869417414149557626244266709680852064231847576748837956523653850757920391408262398809869468654638280846849584678900299178023922679263895181990662909440507216634242054248564882861031512094281108687647771994996545931343789461025429930910209730515331322638608586887298165843380342142067393774845493390388042299224354157479625970862038991471682737560674138252473483659883424439586095505085131558983351577908933781161848966962746749248093454083646453146523112033737901130182275592011379478616932755580866054929866626363134896829082037057282206576571622811043339495122445212062469396388103568202698361149561415688627024648422463810221746468577826904807700698733484493775300700616178271384373945715118578994806243437258535107561693732647812069717954049149581180652395597917054216393415689847747676716896795910940385699007490594007136162653710281512881270045136065383694142239469637867330998272209525482605816797670220725037106065487732393002406106819949354015263266384404215893965260721020948386347514958757451785313835071953861020193318616279802568342620532128872504439482506219187746753732503600601913341272655480063199241396967598837939306156525339543229853920030281718109556071749802755832914802008420085318335587620109320336618267566904473827862661641958556335585123426680477526208079980449147795752521787914727550541721759531227609768627111393629027490083336739767604072469261756949824441103788190262600451977386630446164175217576522916137568595568422738330533105317032723705809594970239518273977597288639174547924314770221280079678768297404503210543412525296994370433688905138636026203062453185420955042750492422356324417642624849460410956492067599079045663561527407293485712165572914490249326867954832805636855703027719088154772528984182330702607133633072553435553282944593059644042752853263831317022543774358460034418691836504734021078787782047909972416041650103474164185178099587907595858851897301366275622508974330028096793819407360746776583373034777017400607564111388520748881639824823145038150271419376055601193500691347718993074818975203754860520358385690394203821723099280855271111540267260537637197838683102847021970096161147459139028353417677060452672375481187229986704601420282888811488843437981343457769121060311729556769502695948693983677223341665634415825797129494710492616438571983637472039795258235801704270457590445509912567015378732980932549864645182066914774240691790903294355329260314641503742482681270943111578901516885518102092772462475011542891007744155118792699645447889196845243745041922139292916859238893298718905774518129917196777354952263131960595970881353336232102674562119380294633833548258201724647021946395764229534219961159904014119767752111627776824428101198203954655982608906391431952067673797096305506128409451364874994631677675129085723098582000750051547195980514195856762082471345233725026476048548028028943691222385666847174535354430149157507361322654548259709049175425643091474439015283936995316746106136709623963027088030587766526279739794085330207932236232186259131472601774129741033307833686835720511968558908972899142871398729993937446600741300737764913607519311540233607372514802886093200732284570729713351594538807067782820106185989357064721146337538962504335991626776831107106678902863890423673754055043180198526064124145876140486488787261662040877047388982401535517970795905439044235757614999360635071863406078571735387982949802203759850912843957649241597710444758167593801055478834614881025520084543984867583815606986082634950848423747475580371612014077922864795812501886974780227002626053929404824828391714850016526885283755998042894146557470990178518282335956306852898064039555877925234555667431550106932772886036536641133275104119213390672041369883073670262350076657329986333414319034907076192497358764951867081355771282071862913902776139265629470702857728467118786443287957174110263897242769947822374755701736777403806166804157459773358292631562757871476905046729836625910101484989726141841340091528663669347901061557387586732309775636329169355189609117843630994207477181639190993424522365888333629343046224729064586332400409663182207884768994832819306799294249599812759783596561128912466698753223474881644892038990392931338462162718315225013179843313482823678946544234059006045874961905569089537441926043377784086039109727728944608999285678571250210551438472824399992797498369556372762899368613222677550732921802486203873944708561273803677678304115831251400963734325758705869813578633871027295527734392260428960193231873252549042721492254360336085087258334335708746186807059622961169150576235112365404748062928358442348648650165158850348409135727795574396093550512807953272682445582483446367585748732736543701502698449642141502664021430662269493312053409133906561751232475448001014394245809396645865559460014557208524118748827221334266276538063323266526838598224417925205373828307628682928317814747837210516284281116291771710676584067315435260176389934886089149665020760248216073427561794016628200701346757285956061084403544385267306600135258125775644602642773106338602701717276132574374555365732655297330889005450558544029603277078859374959622265885053921296266958590685510197222786152478871196170323807343021874607884715666556970795896384536281673583706513757654054089994015948590045497129911194064474255339253675441584444079322093818679478623679264115820194901294658749746752381766065999777277729510514902042963087666274484718686006982496132767180452989051825530202852327022086675747689125300581233539259664228986538484515624348682131696619471276102513720930333195704550712548877626797856531285459476349652471393201879311571413730770689597734505301330330981266455802063852548544890507437880582252778219363855764054990778390285723715489922619263568502149431391610025582862032618898224998298749789664804329374702512707954108773810844828509952424335705128760567742405755270237769606516411834684101680344212407853131733423369051074825026375870666562186361897446277866145257211619102105199117826177777479199590882006528699113110278253902395891634609723681759515233938564376744323380592645438499470752043609331995779799485852446350271959500656477625266120710982158830472593834550705031284827866564221530524544314025447268853395572258554166219026985860072070468028030495500311858626075682612628175711753127514144704504988037965968856747142077286523779018666934690628926532285550628144738080577887390087460520184679872658832328976027444482809723587239050892224931217690406327885914440507193520688917418418923834874064088937478690704671219990538825640357397134707278379652972295611232808058242376828475205257410340280248822892259981275870296954736695878252723233653847110309409540592287160125965581330592272843589840603836054598964145367975864080456066591601764655726460552282660917769491610477660945049319995430574439088257162600931271414633624230592857171646855505737353389428257106402809729962678458232690324883024244000472998746702319495964792158265609948054039449658965744778754353957710249420303094756797658266113136689863270435290931784688204272355299170188642104502681301565802079032497888754086768079099831394175676759844484903663881617100174194995705247987974561407069414678314089924112445519020620308241160257907154277491856469577684113113941175433477010918876821399364193953823660941339546382665933130973693361528214066610792001450075957107924462473696501095639393958718793652235500693291514083373869268666252342079933113248524379645934536578603762085673872190116608551154807001357523171870901299770220804971798945860189494986133025796415866188711894661009923246494832719459764443830378263684004253744098385953605118875124294274824016244135780399013513129269797883272167892789226583349934256526963909451232047066329903509415260612321602676203652012621540175675152507272635684908270667780159575751284742234281066612402396101633753823092128375779083316526769036590026298881297687954500268684070119883007575519271364706977955011037930945061053913833381975911807005071789036383126631736211983729334187161936346905789393815116522685611231262239076145962340941413987797881878311922079018743971415998494585608388378714061054633308106304890633108158429769970073688623865969608118747615470620625200773575536208605449318502463946829725587470626549163112605376167628307708045212829392989665511123283391149132675177516910468875665886893453546745734208932998942597041131119324780812866781589370817745231297967672139247354481117519400747698527732061842677034278255158518476458937658337707135077463316836482049611214664876717333402598496918555694501554463246581577066305014804956238575673871253705799521924208354428159563898174946292923307492093209179539238953946257356836598644369153480261590310274981142612779583724246401774881468350976147535705798212870436710055776833327276451281405902179886722211580876181695086907080187574856783553731426435916932888260313717754055248770161227979180184622700175703880807872588024213890231884573107098986536658933134104576767885947108465032690252217117223318385076674731387698479461373746024653327745878480390029036296841094522055538530468514274380903393336012202124793527205690983919907198050059594042977906213176051171356335688290118094929812315787138934237693935206045823574893807604559272390747239718546212896531156772497340480318097975896770450642662602044291159015313315483959391230475864137109142671751228939181467534464978354866086334043570497131532493874154922132852920611544582561560923420126197178080405016049142864341575192014120256259463295693625151484223421250687375197760466546460810811004806834187524582055894310500845572575218463636739694624450960453298127288237898304441405431822151006116174727272051487086695254311986180780245627014420981866334249476968928565871044297973998972065774214107164804912037171864009904352162695183784609355712448165768213651154531351570392920839647197288309009129784613738934382069777606203898188178163406428576961023299188885431857597133131122881565414274186445204882202079453574601753192114461221159781560600493121657087312179936760996941405546521549817826433096791627458861124956076998222975663549822469128367522865342951293092716144611553670208604124672452974733187958596162851905305815871674750041850999547948120375048078060476503574024927507192429223663236370986250247864505079530294264222065529945098852553940038479795024665917812214647609229393984854974052911748731674691868994790906905613125919962588861662186100008307096204366311512629791791195648633594127307268651234184699699026514634325117614506461665170307338647854767166296169646947253191072093258934822106997065932279705022588111329327333566520133159366628628382849937880011974480562892045823494789035897406020475701972776278935252600638764457840910427141761705359958199542036001504818997084632772386938707586183895633584209999792668543719677685278372994938660518787092426707834663938252687481225671194491840119563017983014418622683213856689813873874732713071172151594625313351239391797595526308373731249548031149703560881673131158445292391511816310911143860078475849770804543858832831649601357884456569825634236705455106821550536981881638350148214531441949181931044450350626091183718174759547627677075919709940545430251609223214073096696352826504586030577727345199208083778355953177542674697868245992735658945220784247711290243210795854039913469291461824537613578247227881554202314063526778499099537875199912396209544085078151895224096966213628362588654666105773777675840044733628914568766531412124491754340107103380268002437608173724292734791895816625903456192754515538848528686209053081213455574939254319468095292304366384888004420599195543829716473978466572684835537836513086217737878187302702790880083298520077723153794197527360299640561415965964791699453023130683091979054190757342247915543751120595362490683765864721852515709164621865089236722918777728262272378501403327255234872616201085000394799500340112382719169819924312280945944645936180716338042655820034249427632663628389641787525714971898822914783356807381943122166970591800030507335860938762848710813461423933411245368461225709825056754446780263789098836589823851946089731211633955182654712147627110695501725023340741749465722659811465907023506913912865539035586287366596159047778735529838475789108988921849065344479817271567788579134999477206302072717258154958115395785684343510644616612819108927328371880200540680489463739129865028881941963275118185057433233618324157246946553283915250976094768356514181618261077201185244013235111197709145617020147368726242407563065594336198319392151348364074553202468248697351363175734247457879677841475348517931972455996104685612720031385754831628959276742423613278221005267087517426079456801809179559332275168477731321108483123736505969805193472302660192271084862748900014425701953679541428417059002033850574023968599574711911530018026103868977891937031023548545760315714942640718665895002583593699463422605605458360412667471478666981849004224893068694512723633470635709859971830636883369629581983699053706500219539632937489677738122427356038217220066785226931828346287450605360571522448015814876783675816291999943621735363888476415398289003027682825853969645663537044872208531961796282918717972595036512172524276506459672426245036322686903535952994214563784670004455198213301508699798918266289064955505939953169400133670138196607688179149309021010982379918442429976934026818509455698462955492988032111233127941920372348449998819323431459191007809714470277098699079204277899086138157894356383957769423604880609505916379067236279806795371563142230455917582401720001717731468525043969636340478418224625307499595257212049677760053892914480161737592462138956280559104728361564979101167356443772990236250886612617371353625818099583815516406849212088879308034092931598848389671231922515229548110686449731093355587829142688653214201162689817078553108703887629034780488032362274604875610949723663647996812560552715229323993848150207496571567404919460696523748124247871959391631929280057664153716716567767621919324079920555092148864900919920265893893736120100531314985236394925365036121314207939267154563530574003539610361833363303798478649293153703938319240113629287134094902680721198960192642743658316615932541876781103001678258379628830211129293192571750364823187555741747637271896495877343792057807776793334161306834981846321606762221838621292991542240975993924819918589846782177309846926345696615912766896864781898362952524188025165594072772666475775694275431660915918900609159107302233031668414014954236017034355720843955061335985765578547738607771914055251628073694601192784893011192586495074490284457577742680961075855337222444520949712706405818192328367067133383444078657846300733018751601221677478580694156074013836057328002800750508281404247481025770804598942111733952917048428577945653698260452911201099687075819264517570132963659445444114771255950398734412042216713942562978855281569060621287698554664255355971841899920635949341883669016396222416210743253229495169148170256205525972989469757179934153574051566966729785044098528369750536785537248816107703855884341020777261107577140856908980201380502879133900636385696066405880298058481369660547042669436277108905284709357957691415744523058925461427933565674666566057941608884710857691306122681626533995192344181712431612492040866694769750245574314885487022027713887812609938752360739367239994636072479502699735988081423162156019619968079197337190557170375491323276415042058563405112253585039062429665667915717316903643359431396815591519310127105159540553804231908140460634621384782924334129302511320924561066864355146794684372617208128588190661936922903283108517033354011750813373690112896713450741334536426802374770780672135943133504940803689519336218305670548539530524301959129537650115781057888474447629245706718193865960875663980136641392114311462881275741944673903026328437856274276872923838416374720410956736914045090543930562518211970630459721182803469126990696122964534173356444573653773000795171030905172800963432315336650492853819252897819625205241179634103706839208711177502623405446638693365910282760322355933676794531867872908349489254418826454774165538106043763578189526030002524870127263866466884508006453192205717518729914011069099675523774033157292633010196610245100392937664296935649429257785020933989749184032891095883663058856155461788835706938609554452133997341465136295391611500040682906476494643372199946595056897323854151639351018796663234047202893198753991255457240311835575793079682498569884980662812982017968119567750653586796517014603489345028338572726836335236587943716835766845558354256940664450483458497971228324393741632441287665210333959540171811336880647376845200384335465120783315112886523936351430208537565669943430397461082764997478485916520834976588808649403432952169078327655968581466942275915875689278316506036303532066402088129298420232893333075570518707288365763550239929787044842353414639775127371899062568549069679920629892367559936885959475356503508272008360894766880554481992540175087664629092967734915243771940906485196428780783212172414012791289316170139810735424066854766065885809368570734783917406544263644633968065586635024293464026674348565480811801682659569274333302290277137417224294551771309202351540401408751657906217573458130189471530497054299609720241408906342913245888586373009052333393120602161694046908607664368040802204508142035769627517156741454092817161423781228610200615637471942282317509707364932133009892767069689275767001887446117533964954482567005525759535912657835251932636728780772651872527073385807525389121017483234507031138389289316576361308974750176996815068642710503729796578958041823847683150444415809917314509557857460539559490830740425536772647814516875375229006138880757799308490934586213438034659916464188862072767138413422677165602885543086529899575442872440931044664201731019943150192373164630519672538038339900341343382684869334212464898128752707820075505196707664795137794810195770642429970278859283951069610317855521483266017178461129637311840420061209505587464452144617650426803879856130415906732900903777127994542537637596489653664726285792309761013153295815627114249887777017660084892503628590407550837504275155772624915602227009039754738153259529747932463013097032930091037978495638016805618063058634157510678290694819419749738979506633238251124101751238391941768873624160035760082809592791913150181323445633869433379349240205767243966605781513353157318882836874305532643892798287379195860717278262394855946195852045274463307628001397746713454831823959709889750824760335629788553585999316460679992818856075805996081416051816412081027226430627027608550240884962545062436239509919657259587983528711577975591116924923245604012170567672900974323863519118581455754604184340412760777866500483949431439308904418032139235648647655937058768606852166958235945977781138586053121503281451566975603595087583682089018409754016754773579388568519240811665938262399780776297479246415864154727090943613245583034053138583021958911956684596599315362560842171623906350391698971611355241381890047471058925813896909731681889716864784819573556754405420615257256954262280641966597065910084653984863044967461126665407550735465710677799933732179877919720966809564162993636952192323965202986846490156087974618988399802033364831859936006650357981976113018761668800317080056736754862570744183580130892226901047725891081692756428803075317767393914577054428213706004965553210071342709939081876201919158572992006455041239562893867728259192892604487279500237826559262355558135024917644020991144372623710177952251010743160640294186191916995342197669159677913305719314151030899452949207489594174110146094575913995822824203204056155083284039894377360907753322091234785263497634874683715361865688478391645906319903121357431798397313542892817571904204152289239838169074469946771397747819308397034856349776071460641400842535092556764902642808607873138314784890077875258654673623806438665883726738492806035432222072184692179836759931298360897090239015995659483272051980575149531741038229651267332698608402629385838744145405623299778497395538993670635465163294059832233497462881924014885027199023917800055366603331634218270426276610557256882266694749283766105420744187717410973609282733998654565940234145618975052451956497199241299882549913730170330184284052230236681525464054934568152081494549489943256706642818907375102565386998381613546536583358781177353158649282800752563180759799391207423243174475256932780924967899392601865673509991169392073201577653492583531305334414669715619843509319498257417478790328588358530893913934675264160789959588231151831779904772588673683696023221655494345752821389352774644023784799738159775461168779099232728464817376477598244525084153504674916757486225867401610140822688138615118994192915283468205471875115006950446068733366057755057572225300670247642503632276842697906594726176317418257281966231779379344757937103293352817272522626663731116873063717214830987297799745497321824259547436569870877499250870741216634706428298310583810213723768376925546804080303391518815447945085791157224124589383917349752389875201567738979018574589923874883283479216961724246542130438346702587347920361565745208698340927532010753814351329904122101152159046151513083444586197347341241688261452697385539488474873425365356024046112798222692018102587986335624123790492080897835275287385404671884266813386296771403708709409947068759309467101467797398531749091829397939437912011961784508672154910967203330086985507703008314141488743507260282229951202995769184846391276407703197947440668904479514070393958038724230156208535300271866618462631846319094885625773736097645074614340222824208056980791928350228194220525781665182603736782128932180327409900820398575981348687851445484170395948018032944353439667553508246975761899184972551224174528722028122780163298731491442074998528991662214418057738192854686684137058036561645761339181831724601320560228057086674299121520176920739659959642577234297030779433224970544478479985488816718573044792681405178336353950065163741621394114623793094389044273892397685569659072937498539673097147721502348413325927073542916740041400936873844239599229625266055568319737467453547983419171518863732840758375847427752343475310935881015266517966146825577028683731653908251874079638344552936746794569407751217347906966321207240534665607439127509618875739325294252928458900127527044026685780451863922271705813442748596342527158711867245956683967775080119284327374305835071477612509546178935454041323923721423755998329997204967905829464921130583923519416428199207500341186087233086931705428005925831479232650457665132398064441406014890560626197541553853146391329112185114265465753888665299978406742597757376893393884990393165923624843176490783616166956966143358067007696058392770923033437565062804516838442453320823697152799244209088820350049254110159948220231423210396292349055791649532403798388261660587776996228711759750222791118467337154726562695714438625152201230628479198184747718821923672517387999933780643592036361897437716555223984357092294818445684533983508947146295703815223934038064939203041186030212791317564635655872015764149522569621112307149988811807606304401353420617092994846716405191683407847494541076035515870940583231178427509481713087497206492791924451305920180478411452383896407902940183718794853134920372968375713162326027450813096181043205035707919085498123429770320337941820591462444973191039599484769560671398526784319052971554565412011693550259884913407199770525373328537119893096836922890933797945170703266334193144887643765537421109221966697357758888483418376375401174526172276212405373416831401563962960544645751521535538539237344487140870989267534846208966074542577285907213724703182095437024936349125352078084177112414464159388082918846630367538550347767363383418510234381597425147963823415565115433410371792012020516144418637225312194634372543319161053350903394705080562078504727123566248279073005786611823477038722951301836348786826045709093240968382916937872902792837732048775246438632856263896487524034666984271293524680052638958605078422878546231851086532229404277942204731598856025371295385313131679534462836889141119590584174541436872846950516057912525834063689457518674436988551197905878972482515525598880365179658264904814780502782385637583377412475446945811311100191437239964032085086583826104044145250443827093882197246977292114834504151176775803852168772772683811312939476174669233781387311380958670591325485451846831628763766364243613112334467149821384927806886201294773444506716337278585750309209739886392449043533128942677649787971159817987333671928808938458537020042406480726017049077844677260404359974207636065792681403515376848795436626865642535442409081324428620572210790809865935663520960608981979947818082543293376496634044722189106443815015673583619956024728503293746394483230383292417170584284366934853601588828678350523880745898828997564718067850906810021107432413505493767514979621716628883563919475142885356189185643388445643649666698438923905918051879872370508651801082839386704326351359700264215269320220523886579331500378971617901675101738738094665861439382932003313017059270452193575480169019444785465302311633145334616689425813195399856430409615803453391345945108555045706777855085860765287485060273885991666007472527858147363553653255861820750456458822667281777512134236199873381410929461020003570342077623907452852593185462788945828408167902484371661930634541825502475839081722102625645661455564024369139835050583652867964818540520077668315428329791244626311367385457086890009311312287703360484458248411014562498900220245028850191974950503264781122990790169196214323312628676101249030933566724978223354745824493646987467433198884347444546943297931371251520680193857017336282085714642362180515828340628641667051566033443543422294380932750723054709624394103341056535227781593457299497043272152649335897700646122999631554681111499662333749044285765039165518070069217371373003970892249817859160613240571636363747768012467964608787814432882250341226933422847941046180492008051072688067687208038363727352758110375485954007242806199094090742455930048332338289569225610459593807107900902682343890304897559017788431084540971418330410670455911785436794747788713207602017299184914739640690199261223253613987234745942493089439142842385594414027906355439331464953109674452320332692778604800401987502900486517596648611821681537606699062911589278049459118764424903711125240344470991349434005773225264754710686025386178619423267245808270107665956576803491030591567528628259570259681272838735130929220728914711562063198504319266686828431075895914510824698961178410002710296335118265826377535668611294897163690855133871158560278137712879572421869712906665708209815873914163627467960648462331147323564045756288047013051867159213339630682902073078798221997079485396387965023479610892382596273387703677634530126585459150948861071547900429798339548925589568205884403180198808828806485316914380500251979264069910779662886464469914071414085015418566922772292499019842623175503249381763145170022526170536591670316662896530602262940783397436428551942803925129963228994270776067473612479236933559704818654472447317186058376230707684980822419610853267853613289726316542776004938182787859413565131418122745317901430044251297430814808621121530206723140208721771883349108898982312775182644182553812354956611834980044942303109898196180153386880161354354254928667389219294513169971712055064028506114116523737503757219910262326030319857770719498963828805343104273840286745254507093287136568838562582418865104825096162424305208077799891413941379166482968228018074930168398045810097441867332413558662578264178746561652019096720192235583864873068871165535374389802067947843905064130298304929019649570601300880359172462909004645651791316154782487989488056984188720678590815744217994141280692888679200994761451269365216590293098470534503041966070701303652859907434177747341377313633842471191065646962067622724410415274208237067584780553046341295268408760826265178074198546348706388249425815562645852498475019842697844476301137881443174031576703315856169652616886573558567629871808335109346567695512708789779370556438715706593352808084581622466473250454610928230979529279592753836939245994615741738748179511638896345294359637506481837998564553649343727816295877367795598197180818217722323775822203648907289661075715266362892925828941582029159461821429138665977488182958228611084690994996252836166559443588735864435013604813393621092602478585897000338176146531785848991418275558146364839112862157421872254224036224590777367218877682256317157439175778069476259492343117065305037738497778116742237938110800540045806878050702748558068480470232292087178612007972237197296807920966708161524812459187712282113768282858983611050263657529486943091501140473276088414182485202970538604300109546442557864855870858694681168787322101817964926477475134840099017049941319916013529403527811135804365800116538651623967700798279686852872621045452841594296064544165943701817823258990687551510294898208294589160752845278403363218441758184726610452368863790935571006539289745175277926624510601563887576820880066626971459394271493474994515464163944132422280153051729699321446242389795502749251697567032686084710750378691705416557661829145436813648038488685574284504255005969470965270382239609704151063463109635861605467020867958852523789287845560869031154626814241306759963541361227900006021140573482396157816561577914872362075803715052254277119056669544153880953755852864792003112412089889826563331113999587238724833355734876886685191248379828154686096570590278591419416934573387418601428384822252213609101882724636022745949736845928993985299172510591191522690264709407885800870178346621746424981911014583572029433274234546351706246783254970153194227635905647755741017985273694741109640063130891414755015961530788105479940260892643881683890695780610467466634735732175193700493658221385775774023214799046633581045334388128486438215936631563422348977362340133083775042015790955891434361106400229288755947578554675317113151114416694635155776217371599086125120569775225268248887281543097857510937847319981795241656838516332879267289838138082703610120073722549821867422165976463935562946208004062630699839817961543396047290352910580406161651726123762320603073513595700939431034238210068204018137050652022397157750500275709712360344616805933534307281430216010485383637221866560913464538883028262344651258668011532810876055390748079927756661316376229622953265062877413758750392589345259467632158202634349240384997759538324196043460140078192233280766875276516019684079886507388071484893473535669257721596515294256107952706738682134832255030218738188835078660145127453873225622639905523689961655652280185534405896883593633330017116347338993444985271622283625071492783588672259381050201436358957714998848687121978667849037316733721281217232796481236554336214873703149909605505037961971150812608409479565749682415313336603302846722364056064634224905807754797439532105896831972675704270433667819225098274767786205396021060310946556986636237722168721802946326025155671409494719154625811333170115475728893510323397048343580946690618441464604018981945041762773343429826107762071742136080437809280498856334738417521478444000657621475899097619504497279661278520528134613699104206134527630559004710933141346489570466083624351687353262028498205466070655508417365325232119811166883061795456217291335758372872315385886261948202741701513440542872062242230981412461135559809801041839476424316654741365463082191994294344747519173208870729422776992034913261093678853973825256899629538908154726673959277827383144649539699510820476439196821181160594595776070827950576873994457822029191188438786480036057308093929302351345060968535944023081762352896829358957992823697824701375024843394324594825428174673752504675530698479620897401445724592939021909276469207961170913754697402349041431766275041980045814733686875894310709989286128381583269112422893037980119399268023322812978161152626391342043688755817662033890791711755871992795769720910314251901929321813235370061892649229409534316270786871027748867292763138031323590380069260499209486407394217088106679400759412161913831698475060976778026768991978926914901558793199968235520069685106986782993171575503073919402647990813937932508549179845180304941482096470603166709934752159459066540256261043483184458679811089821174731927912883932552890007597109719088332336289781096403825943553777055430977442737733189889063184847217818408447846803411918882825746389026367912239474220679105149779452348682051179740984241979612029094774895514085414164797635706757337923930016264850444287434863565482263528989393968628846745193453673265233423857217930679582032936970280471189795611906069397404006340420432359154102023776491562685801299834034294401739474207063583045541846048719247096378036880649368756328138646629439192771403489153595460964138891836312512806828914060740307463329456382800017543447638338005512112403824420487123097860598467644246567936214944560391117620248586143142828972769966426611520347724354299485796156001381275692426732625083663789821112865809731598595881617742266704418059673121732677734406891519119961200653907540643581723560287856150293847885810564540630360311258314548241761027095617123884301524478450853525100877506865112023117514501357237224047889967157150614106552875708791552934392791304756579016388475606269553819435398350138373035661473591204360021065445721578746008144321948049503150645221709400607436985000507845949942538412695473865403157011121263383663736414166768928997981365543706741579929194770177550986014590825353620761788470955646747677103011880269993239762984078396793319840575012000702596239161395743940639948035943312714132877322203330111204620399021432595973771121856161121340179170154187341889525538098690827501666266324563262305662011530107736304213221460426619137843312209337346233155509298265696506683257244996765155815178933101646144757139781822620185931596283315263996439421999506973797586367921003715875347591883624277721172725551998210366299952638407837078177210998020775853614772716868343960197510090139211706441268111271760259331856865118036882669369743486356619722188943217477603730298189256827581689344186738391560046811225599702473405936453259654614908236561730018295594358013959302386358788750243888377669541335271111446659295191970148645394547422414957110414598024246474184310408757015714049799125697959849467904311074589852668941108867339258692595441634039082050363354217471620823438084996795898779701728191971835361650850728406385852002772834426206976193672068508192709064890991102056680995449765105701054329064911465489576903653416387202586069332088584581192794588999237824870678562069585403837732187363288186709978417911674160307807920034620555901499842876246962680268956589562738942145795514716940511170254399274590391059861258303405191347782651276701913395483003832752986408800955685755484522786907103757334612515745909908446728140445796919971206056935163316901395588975086148476741930267209484216762582302122960252068280679104247916966076744825419391641401370105105008159081889069712104159450905520254743920810183548852471165122763016666632917777592431302993034643799353805909231943978291542004447264098071272856728006810598884155624361429691360109987065202576938892067780629663390303757467424256541968586945203650514412520427486875031071618375103682559382159329779856035523642999469326002338396204825889825737533655077822690640840143037728101257432681119290559065170568409501071561073343936906711824269786760865416188314444793186018889702911339022080744242199237401801192869345148721170451864447163301048691133718596863571793206588102422003494453043321808006407309912222005669811932352585618484300745012889226535517786151635208569106435139298973906498159136778242604406783251314222257131216680840301891860596925944916419828466809859021406230500853512488739083819112752632571800380699390914010630163086482021576943423397110508149823167340272948204536514214187498948706035783574241618768827960299397669284519720248612967914492064078507427407499393644601148199703621819465616120116248340653766079495027777670397841511518238621025637903805295751382643277091227445287769498978294742659485647355089754655073476333552590419171140443939814008255321976278531025904963257542013382105475555002250502286109020313576074888436079815805041437478442490599989401317855728859746226449951598209150603999979685456807692589793782486413586443881293827165358577094943146410790466711612302999858037302799621033431872965989042047948637362543971874201229791436430846932759185619020105431967107049140958869808273285150693633002279360677648367457990518683082541404941273817333822392375939084751500039418889529057497633272142193186037339978083272576586970563264428383557131632567137947710055835910332765387051421505152355741649324640771285087111618275761503989090601348209198931795633662735474261517499063348312426043760385479341934463837824598060036971873499953185645421777046412495520484505039627859308792264043728615463237255089252687893294847072502602346999038335723593109245482618873346086372191161816500744980918011469690309637492306575015962341035332313341190724224908591262267670459258861420626894432589292287713552475846024278480943792757418391316305466259056020686606659249997644567723924016971740931736823770972693942661306438483650526493046270697282041906701059769564120480290780646834905790767296801273208617766418920922735613201808195223298537410226815299695361420458682929325450103738986947110037012976221204110627781433983577219157526709350255587878145797276411761929483245435673810724581033475862205183845923268498662110697790550539536677794542377947048195264609126326278635741087220599299159150666377244858812496763923466051896980197174273265085912625741761999433335060355203378501338934711214627620558630094335165258767676091313797053758379714025569663384374354528997552057869539211826833045656593540728492274841465755697345141619787715020490606555887808937924469668806597722175702306372952117806585288061937040054439448658717049503164353558449103918811547541076245841787261935408460519311087193463046810718407752061724310332165585292292576094880608853178842779100946698517177269991999670287459474139956856380230749844379058894348737703780113715028934155580263211359717485613912000410331546643043169476161052968643048524779967994972101147236409283702917244370984894839151826253170228216527271374723223852077780633246642319553537148883467431025619368013920228151725488932976723119485696228633644195265658531876095020491242414656526504150680204430912498823532391637785798124427554054480445264276103132453502694003847828071068683769111112669414754667804367432624909796300899001552013119143635078797798926318223464812430424758475937145886190021671181061793816137036270668750356512971102836799388417485525531522081318118967397437917711832169159208105452558518880041411804957308294182683008789827544657807839004110264756227635233444880750925523145907167098226321033892091247642179459221284508901791644113522929502298503674933427620613151381845442887337129392216012231934029292352894524158764689017515408599406824312284633734243759283412866762715565681254176974207986782990159737745593039109195446402837194619348772311084397381048294256696847187274608264990732233422851736747235769431515942983971887088538977804281492596604614293717134483419605667272862395640476993428608006367797300528388649686221273056892688991258410371013033824266499164861522612977546501047396540035127878805967959513164555063486748544265992676900889143050476103326159150124179895725239386797982548311985218744789523246318089248870135212785254016987512549788239267100311842121709677765440842194394571787712009247019815046962616030080328176327464462750645295095862245391209419908113383166734086669300030944989502660879085713837364585826463638451347550408945171078646518731610652428275304114029609841321111223809813464264240836215078200525435050344221111031523013134520359714880564846523952328943347107708022758722004978500686619303450001977260266053906417122140131280100878312244474655334449932495611615653317590899052128091090590825214359311506402559174676260241812373313682882107210754602622378601618395155661090620113764478414227908149778953561252410365063574744190760656543680147986212673018809007159477097684654375333004032169700612193063364456724223565521309173652234519790227015668012542179655306760635144061949051547021612915654882494278823200168585791876994950456933871135100080740644068405882860418468206644170147800737590115273185215685670960592161646132370913224913309936912257663821716564865877587710382818405283337226669801871626474994927444852876729564994357630010540217211069499799189449041189257557406253919769891197478907008653677464184451768773914564860313647870274349942212675495036998508079683484993620235119962520986325312216303800418550171794023667270072993273354409890689368659430825575685850584055496602524301832978579762450508633154567306799672511132867058578095307081936392336167614195077231479866788639525484637645690202299848925483291276777578244472209909256127178442707318100556224340792752130196853000758046194457642546881676587629825117762523815849781151877465099826298598028034437604781270545929167671601239180462571618698901231453235760708008906973915592366633400852617478850356000614936627622755403071868215203685534827336624154200633803979930719586401905798692246973120651947929684951474870290685081581833179248161842980314483050984068248929884986614217504968860408451147173299663191719305518130939431500493620951154371464442506946197466383439683267895565378128183479316076875659668730901498188420434878881182768944956418359416457758184979130216985038027354924135652615833792028878037287728141854970573614216927118767220937790001737621659524817279875946886621446037417534715335415936314766697915257255070833633735484521227983232709074101345096358242755531165552698530849770692355685905222903151644471607254827002554248190242488073299833489525887645312950202037761817118203948143341442531411232971977137482468334790757224712778637658424709146558124742669823162225749617355565870169402901983090995858563926432517898212647886778325022145385909405436082932081586221172779499227262865498692209219964199736362854006171804901429277482481137845792373774842069114716281310248695943643409036193578107468450777758364811392235420228547753823590100909850321758108192865677063424028401879950191664114807087146293174187812732337878080409264501574117757574590436950000545122297506241403891202733121601583968083553175237106724506151859657156471686666820359963376922054850534242479532512298833454056458005285723633944456503293585338666881304248740325705301629682937967642625613079785014006012639009154276452853307695240992482562834665784217427178633371754068279323913636271452572225677447229568599291073238471970997345200989222356863299271125798123125829492966141182054029203114263843224477422929900091113710969612198822623467573892430406295528470250989818426533978816204938084937194754299743939545034079801462151824191559999165287606274370975414612125507562851171760337573658066103657032732461645428301197897817547467255205061521466209750917116969838708593218305592746637458781947942816914801684171840599429280813131960373446657561734493829753098063289945321490347736761811104796219167302648015637658868383056346459052339234980686109360701406332876348492618568281711773341416019549882892880998917930405552815225287775247022590963335675303031299328570489254004687150765745379459793045535380238613357309567143353337590620986982567234891519560551340597329251670840138710299814370266244812349594987841418110589897729127733387357038179497528373069871965319538554316217928544035019244221906258365793534910596210821360239105827448735657510999492130531438326915658358193293950042641002324870350291587507239067935592963618535393285861769086970875913706682430067651886142448050664347672438571474739449746541515314617871851987539504644065183013696216312711241514776577284227869683403693690739271199928515245087834740786935897051943908732300321519718241020496566218255136165884893431570275635623738671991923996480827134243546381328151878349373416828302534897050864370997081168192444786962022198601707456169572080090686813316030960144016621232870336325379279772067187354773608866389791050243588417127510164739765037910636954201850225046960552867057918036076785626415027250076340421230302472432280256429178446653269047035658277253619041679529091953863727643126783906877077851101491013867870608661209675703638956736961492039427466601601155541718704386227143399855658772398311728231808119308662139591452484024900062080193072624072584455790624213353352712001428280522709212947353158556615759325054638380656380334938304144733936727802568863513524307185966017324532325725297587928121832351096112081328539570576209610470558616453731892984362085326747301990870709259288466081862140050446066548811338571917531558249330187492577342481606587991381569671945812973402652581565574820835066097424962200868124569674937741802655982039216973849417542990250234561411176670243982492879086312949057335154996693025506089602551375071541668445003468834254116419020949118924020196786635389623505486175674051797863017594488341225103845847994913255410640376642685811322619783843944350629387925291471536781409961313100804670001893847228972537216133207029408043756545483724024948972526912362074317006917741052057508443632617291600114576485487789656879295899759846582753210819986026662398087081206095897656784184547974499514684856229112128540968744831124891935992669314390518869862482562522351076710676374673861902864171989368308811004014283848006443992451708139603944156260627848845130536834825516398590691502852612176374850981709997677404747683195774607257257893417225070075677350404212625132646312910074505023346968801580344615698403992073385406218083521675272041255143895780090843932841080858022709731405840613436524333775496192430812696422499315211123226803824426522884499116477010896914735167761719553228348642323911022325839028535955190378660259949355533043772890118028497790463316734416902493858695601547419867092543446880171161257363711381857878386929298758245665964900256703283954834748848060203387936547875492056623228038422356679844486723893197706186324726257493873927840821605266302912524270439266605685780161941897215480579894447435329634807093917433107292809877500181503286076901420876146949246997231071636033591751398567714183324107875153868997008247597984475047349969211250015032427401744488181251797395191038370226114443030114832889525612513529640449442717675434627789193578391985920007659719122183882882598085522184211856295858442765635587885419493960112544117233825587607694643945009677818834415260316817678868132581117248529178779968811677388463305327432589721878265268964591483073651504221477978170866901658475905079093583421790194733179665945499480860775813618447392234369123956928445498024023809539342685627744132264241998631858071193694375969393080701017918817475492373802897549781574115548425961279453469010188096440411111457644303129517575119115203968798118279368349554977352748591817809583199787208143808104089326004951242985743511313669054077914924837920208998405195411129892452225903917283900988984848875140230395518628607115919812013339705667267091480053698565142021566421376738476190140633107307534840626018119185687143469186864477034854358472131521010821885842837675901384253326427367429707137755946557158572005625377931635906279030631721549804857696676901947944999247172645346977706508053087984949373564697557177774906402659756346949803385488296787462435634332568039895528222310606574202333019837844958413954896617106585988045123657129662299486608764225983892691240603643019858316256025558607632883677946130786476210993085027177123771957302491559151784932059093117503882292219536561006923091267790473916098721249382423044452042329994604501532499002890286707998386103254368410868879819716755835604772569097881119162971706804452040374661713035129289613182104831053068154516059547911741577689305831980253695083834312925183505332708552066664186866055576044657560064908406607753956754379515511382695441490984226991452768443685895369973772836961503167755569779569223665862040027923094779481464487406114787048956177468197560255957381330807225495346546844414443261258416381175877548114616912581592584371669292721751368257452467115721323000793375115650278671978504572042654285154329834999602687576214857514522791085321746399891720811341897958331945529941732646018827517407677736222085108922827765611671963279121408513495350646094287834214405425938382846797426348807443079451558952851203990215273962502313383907494918457170531100458128933330116658762445659001553955491248407102967370684500116666190075325984878736612656319868088864640307416030094437392172044565774349722007672676225050077360341629350680020250694566825626841100426184600670714222061498489321117959348227145351796760740001375074696799629412895014738867786938268612320259674991598218274890531052039426868977586417245237480268929086732745316578688331327271706608389330151897177060617581696377890728599303538793008678254459421249226231188631298483058396687109029972002551551142490644589831014778213143174767845660758242577739663868182689811570529571752501650475452751688763447243898898719898420605506330979966844188572962423442490265962943571425294750273154972927752796181161217538139302332330977685980864013194434871497582252806397044992047053815059243828131072934973975267664846949222289276885801677624886846952545059182248223994230017490468940878222042214192692027916435618413457635811953471913882937771525895084436428156059163118855514833922308467871197960309927479925434191551235227984509603423690378630808266206873400884473417981302438017452599462612648163122409047338906930418645561837414926892881103218082104869446844622572848564389387187621979827558158049561704735444124347773416403925677338754941303844957116969746673183366505756401392072292898968163884246327915764733308514272292844963397558041980423565993468843317498504532182752212586908345244469181686759631089880863006021445584966552961086770532781935808693518330362527607146122056102329456135529481009891249737611723249129439782881127022973421991915248585015792877742570390195051886534713664066074109849797027917505962230978276938991949015057511935340923621864890677830849530557416662259027583652285094040149691771780883926210045859070360099372973306828293524370395666977027672695966814191272976975594818838682344342706100909687102412062856409021329703475313686911871468210131226364780755348416240574098959235659377819258858263815799438818889951682886763916128351078962163917414474154979107909332188208548788284204974361849500154836867073952623803106610584032522193092819468699109748638042434332259814004897897636511133003577330881041590824461285776714729628799087705354516541542518156089634407680175927770664114666793516067266125884272552826553713003233573928515866265048247121823688100757514849231681071289538815136114073904154942253168529060430750165663822621032663440462232565447944292777897781502781608310118324217148556722968845844885646141977634807813307550421105520682404913349786651518126079465792165243333895794372610913103648753838642504438794090707553412738971240310988538972824540013369255000212183804675106332419981652535794516039383611363822468453310364954414669365286360730101724729702659018012360348336615031228642294373723602168987440619823558132838091642415880397547726875494524945368665954093596879691259096914571434164766743142940865081738817305344583572995702832258857577761053266642625993058890239868413249765837124580389116719676456321427071419772413420273643517962010761744254166461129922076772096608536569739020984197350126858268874350470006013114118158045945459519725341798007309734641060047374293468486078635929308982157861800827979512265870295730907528849422437428085881253485515249565581631419882238854126086205476820141500713789519321923096771180991614761676485376809454063224909916288624368331005218897030789336414314972031480902581173837134780980072734424676366059802342440547040345437968029679115082716601936285101229520869864956592374693844205615510619365099235945327984392747407830284226304287146044587183323957393579188969861468689283716511110455676860831603810848227953758347358390165370733853848173541795540113363577380191354869484762701330157107945752104807130346934869508745103671869401790790903261740635051413137318671470484881576044759140330688581055796058431921312167446076907724534804302528871078843733178568846525513389151526463845813172326482059682541651836185670220586103919059287826589215249249482900831249161280037078277859645061716011679859902002867958206143538038418869649534211935362205157513380562614522713885137002139920355852952707480562081215387854673270707550296380599620646641059508992784907773334757914521659233066672053058294990066449673570143014774445571488031974688856607784673676126711439846812064646088103264840097762347998244429307198309166957547578037164430605319648023406339278431352357654510269377935349161275946834993270761478750853605419357765918570945611229252246632451298016224980598021381011115811248163177876512463422704649084056268758529528881982446064591871285049987037492392354851847741146820012750470519064804292549735890994609265479890312961279809675951978028436862171005295185696627312035326482721650195094135506569498420656731895203836455514902046296178604661188779340598791191729224569813753618572350393519574818004494970828788456005037724584097874185378041818172053922026806315550965183844745029984818440009468498115448066353116146569585729564488452373981696536568051994774608812811664811534068652213400273949705727011218239784476891060646560006776054907720460463961689965128818075443212203008716625379805917313329555211904929308499869994099334614918524981817922318719928338472458095591920472400987572790566842729891353904789707290468571730174042193388567401997017468371016778447113661367138647594999792881673569455228632619203690538536309184597853365992611252052341322767421451663407099080786491461035040520662413148238556713045923753856126466558882988447689220844986199749176301376649367423753242864638026763217710076779360963568060092444499997271435429023829209466580469209832536033231254030564520403162003062177851266214035847059882261785730189094443574986060573585066301070646508543091413670091576009383698868322663843643206892403405048089506121339174125274068732393666619336417939450804508433664288518373120566261290669414100263892121931739834561760713880052125520222157816213694129849133900855349777236469594161459637566400367092888195806489019873261444660640964820142619597876504870742920489395498951185495312701192036981326395381275200645779314695668175360877134511869288504685610672501680140173576925112213731589102115926279160812674631035644981426029976955559438187637147808623996778326340491053411196334879442842917419562203871363445558194543064462664970685201584248823643570559663015309503885122644888611939212078532643652215280496397809416877807188374292779074429438598056684068959102930023503324589932532492207923972219827047142343446516135006201219596625109818342635875429354577512415974819943880146695837975397648885943323789500531538550310330826173601671714789074558288272152037813458657748045972642497533393783657643458977495945454677258591514684215182882341966630887996555023095866406020563220826527777493534142203940008454518843727952909859667087519203563618904086430857023868682414485431917816722768787091403792722347940975484798514011634569774333920488561312886167834106258986351010967191662581486935245964265432195583648218347314269625399439056426283739635409666242807196679789714775941161824876456338169315155238922861029607664224357334172025676979883687394297104473670656696288429441246266621465002793059096735543473496311542934085239423776939557755880402806344523803164349537178436998980592196231274824247970301195906028849916124018375329972882939026138018633409696937769664936201347010352984131676037737356429411309899722400553399595384073782429127247518367033161508832881707664662472931019926796425196367587852415872160583129180968752979154779100577501441519289255710579794850697730307164690196805470747869194683796366968084309606843072499589244693427737622423074936388495307676378973777832424570066498244615653144729874656505042177467202746226430974308577009441531860239564875328310323156994333652806525544189306651247967145378709875145403255709660312971124804375899711721502470656422000438140391387497949656635135425711434526108081818911006882220032595420170202003252282502789886479068987710071076077638987280230238685881274869365981551747269356554189520727535813281015524015250433341522217351230410681416986605073087684926656625286475958062699974609338043179112641749573854322582749093410295929048541731345830423472536329254298569855635235068537669380861149602401823713982676628112898578619276313901334754205470787447741343848570237148430141233013074552109992171502092878118325786284022562819810666367062658453587801612153962528370908117132470890322942462258315394298997588542072084753705235659662212078460768793228680455912250655950738392671190167044039593266965597058643601212342321265402643746544034485616231891879061770851822065682657179982411262225600124078016573376463984210869337090670659512269636593644397293929897503444620391050266819702216579803830790944856562309915775020594871131282057522310195373395098737228942612176796515237976844818740237141971869016087456011697727637817831334852108121382259365467606303963195994833162155797380909710469255325899215519020293874754945996310837242141290653114656128013780621109342885104922647359485884780414879489590674554875577099310891566949730802489519156267821324777173729827084714855183855951693424778183473476277700976113552013320586762221198901681773912983696376517147554993446853578265411730696038171968091753790651174738873781802712600094532723951924111591196715071614892302813281743009265583099155538278330377505929101174955330577996218248752419801406374089315110747706792768652279737065627777588176273361103313329974424545805483396966672940079954540158608489314574472885666129685244279478917803307615011258782805591225855554585631507306122705898458804757947064322391070384887968792027928945193494185726965982148531199737886000416733258181100497232201710689298741493880740806590189687429907123346001958599292882057828303761558741616076725770205573848057927884554689261289745861228099337323257627760077209667592722895336281249274728105020642514266766236065328312153946016123553862593939621158035136276219060441490725540943397215958935438909049238799374927146130150540714001969609685816128609199734666044869727791303526247225142627914206032760109047323050352029326924116009829631017480884098279794792246987065117778681539692311840814906946389086818115815429181030522406492925824920576552372258614573571904744587839663523575160020231992163182500009755358638847403667206511114863638430210294505951502007239726111433686801240145342381293376345563842493849283024990438660965778322644905194418656647550169474585643405034011674236790229491403559423705934015347188057075091860864918280588489051725464070617068907152580402262683583530238848088434407647629632622751573242008230414381457175953064868831742508811691076327640759655726869771861275813047006982451534632631872522207987849710899751847330669377615509115140426019828055133569890529730374925227565083587699470661413298291757193648548364510247728405614266392550427429669600365994682020785950893533498895006390771747632645168617631480132268749334634362440987045528586315262438136220597261464974792528381727008473239072770466167336337962531782475996844104512926067494825787774806438413366410607920691397334482553792576990537344308678804972449172615101769211501082405658455114990930554353840135348420822074968408652743724872201593148092078493494328849203825855913587352747712370797403289711830063401702807137252216573601292023443279190494239243252166596752175657434900084849407259870464282656315811394744763425786743546583250370841983143272325207859350154937066774969466579951586920778510894276261063064799147151863410093472479102370726430962599111384068922325066613405893529596676103414386783830646405939051243884979730637337988719281056714464706172157040257532022493466417184836317330224576358879443416185088967210921640813000424395912105577999861330361436434115523473640845379274683960983115512493345382920576589261280782864471658806060943122228991575788443340862119888123111797550300971192995628090282154058829977991186369669097136025445080512935351180517493101149551795973633261304997696814844877566617150590964104393035500790204230355880224338372662622619490473271255196101347712461416966908534051125901026994446838198548380968397299825431076358742051145125070676400741952654916126700785961337359643352193534353760563048203405670799979976038003321646344815627707227856718131700338059217653393721244762940806043959454153941232174402706241915274949215389888299082571275747287971687572899675751488260573289161934400906572391976250239870676025652184172351236183633503700795354466631654573671546576020751476574877358043195954664883077246420465938619092308228931995615581278869083425481821995586691155936902520667160799734127637843177907948439943123523120479538726326252730027819194859185227858174889532786566163582204002037456125809896977967591928705857652213923684877303912136683397574095752342055373312055845146387281205183378715502433009557542333563898166761781013767944512284129934306409845522150717324004831754916356843490544212296386281478420516647547349196753959084014005551675444097774931851485891709616431675705725040443127588216120026853387015997950320140132047829429783163981985217164213776200251144361019711591724440676938907017031301154940333159083395955683794460069944669910068108508209029413704462210983519106675986887177991728852923447375244412343533079790858519312601042010719641725408280003270139993671880370648345956359624492675615923270364298542659004687201288496270548504265648759689386313461616029141245978765542751953208888485925886595126681218648329472871906396218576745342238474335668836484821347194403290638100123155685798819348682872781353333883814824920436534707923833560777805850525592028176986279821254349911323864805263187885105695666344342825422365416798357925691300372101042187303752074618946516626272314420819110582081156948514930444805898643635700363170913666447394770267444081914347180603701144271095447959979897452467792195315482822831047154150379634784304236228647247153052411123155547712496370837581927092365222239172494289570195327894742219424548136881017083470925370302196803425938058485763290203336902135784592203936064208466783024459174658103802675510477461435933758024323877083727348270081399086756311586075461534692765442430343440040498708163846079372994541225936446713446099716752372972635200050468395996010960315151831990935977445215308916261331161767180479655769740819375739003947085368648430847620156404112809610626274194154189493978043178171537974828850460859479348205708832425041439882290002411178514543434186815156651982632950227014022238434819046524721550040964080947035539789356976467899600231830028715626736769912744106012663534533737175833239714443589399588920870753643721709632467995861115343059161718560967889914502517176138170105706723065127781195931203084600343470175417245206864483661496899865069601801220170214849815824463585558968118420199710215613380532953713662454645026474549755678571609925596802174681153823040220322377017883039319167001157151341280472367556785667513908067454222186434996506449012587305169308701956184744485206623834669961597119560074513511691034346307059783235965562369323936903500919579039368915686347231834540446782867805294800832917545441280722072932170330783222585962676481741921798104667176315557063830597629546392303353615632331564354607589608175480550368132506562761716837044757682647891189570382263474684936935236966688785708611657396266069372544913088173311507705832051537373386855823957644155791691530853130888419276123325257658331539392040055033448541726952380463968444951076435943187204351313261597308456224020857910931393428087638841119271285107733373789229380802012610468154555288737639932405826342672326068275347902961264451357602042591151351681482970846440910844029784961900849123623557758738046081831796300048962175721004727387828713956618325302218252570304639183942411591762949854517637988180136057655524524518206244442275919089452032013817629896639286295595012821150111344920501297635363471423389074187871729453873366676953643237660009168681991233023058332808852631470629166691257293369534574111902582327053846635381463217807034162646469235145598836525505457837378239359445228149024160879394400010860304957212182439457898340156012606711539920783491232827775285777361417310601000440417907349960243830561434781368526656359682597558392587529331842053665656719973525168985079707985942272935699302345161997678128917232804126077950443570975980860382841081801240298831337816033922592774461207812469507200115437457049659919071138065840561758063263109139393077962744406111592897690640114452922381454616944304216153817107136843304423071142602670240370453923375365956499432198177990200858595616275789606599898429442431001336675787356131985079602093921965031938247256487436211588116936607430506903739809697993855577523230060972948633645133482490574602458016627895334943724569681649633253737644099728579173740261882920247227304150444989947539652197887490361510043834531284408373090492938279734288363747337212088457965118634079630741652349237996239337672144470197602295717526941149296747816765036079080159086634799753479320457372846245731526586603503755725131907550742004429632160245154783135040538485317442757267342408790188612135880520712648475409479624991070615983845955511032779376665858233736023941657955952108599108265812337989615721492366607919676839729422456415979465974837121769878723864785622049237383332076097726237102683757029717838233883608583177143208440868698215441055724641482560277396705034164088433957885195066625477979173446799408255980758713410448201632355757225810019134941510416272041750895163400542835674627467661646026001456170492177678665385084201905254146502500215741868466139289099617665973652125635763704612778931197748005638501819109156020637663820630730983293336260581710672983174453561601967616421588385008765653392373586231564800834525676572109431417713945704499231892084617596161790565451122133580919197878868771710639548865006356165711460380791962760035550245783446860010355921385869820477024826280235575918403388919096059598194626554965325695468400792250428231614830143661227256641609055445056197464970210874838341294737313081913971469006891936533124621667336327528973233640369205396885216693312776453206181874345023487671188530873181645080574400430458949101171503971736641414322824050954680929340251650557026504759411245531225778460001446064298282183175517455932927011453082070794423482862931021178231381000675326634019770579663347064009971635016372478778797725984816243880648988137477184678402810550216526838694448205108697976978630448732756341422992057645078659367218299198319966938548656222075343007739054505050866473962777609135703950435471731759273996149390287923024449509382655022548924179603283459933948088834907944176608975047113942371649972948922633371434940110780330625861079699306838752484656237097470309437927363630245001723230799714581090676958845113857921435122467397004571421008054102853128182275270665379819514870851195756502353796651382223771727508314416066210643524568425881960705109916103389057099433960600695736066461788127800479774010841173719883425701722979585542052309892340503349775192693746035646586403777840840277776832725370412321296543982620672460503508941004649789622755965712785783617316188295575480973626706494278895132776868669176345920737997945989208684688222828930638025719028775011709704481687244580952704538964150304637228273664856245293063424463494462308938517972325013912006121498924476423009938982542744778232134137663425674434292072534992904046298862980432065299948959900251110281112894656097248938993036677672166868532482344834126477394571004116893087072798965445632079146500549745658416102304868639531275376347141519996696930521970865222939223515929998327707223753616420079344521988776679906760676728714625208494156351076364427349887445427331538150850893240624282285710907602217485801851508327362361248480840732759272354589234886956396054344954812760081616273305826521033631883612376963361475773428660247696153885799305398568488518308490802091720798577715129323997815983588885945953794685783661369189946757802137077881578496632556342031776562798657646442818367166019363329405314631288434852783527132893492610459166476403418613739556520354165628491892885016120244646869775343805753866550160241270251383278610913548682945467172941852855895796789461014020010914210132943860466372322182070863960809041501596578931243217403678324775241649786908017091907930251892645726238671451737282143230935787885384424455689366761843172924182210390281271630984376272529676875943503361447600776120879664094619634859998324246056703382984964738409481380652812606710145360962269468314284238280846361534710952958605019568317803358440681414661667175932788046785273123801369389218024598167911798646650896712819729742901972691324523591679027165721129039516169744032228285722213580649521738123872693117171023605677686956883277681854836092991778746263644085515455410950771868638093267024198562046883757314450026274877967381983057027938685075479221467750221617097606012126947466803863176625976564239795581755556213159607209734247236463708063136753585966622588796303790436089603738202252735935176362512127191825704653862904107931287769850411034694012276031740367023929206621081111554936312590525909464736028626624313733845043018369679505895864302161197176650514255255952641958273262630113979120460154383255325164938322131693445157416336285016190052435337132931409733384807651738334138434950117040894909914638268316227365305514222668221870914947823735092847754601208051233275650377296830448503522115923051808127687476001498090352042919841475855869761016515898084995602667664048437506207674875379977155647691635634713563649835836310910017970787003738278435759595066380082174160861435167420460051279449964904021422207545770060707714297540611563264058758477394677630383151098804139584071115779273511917142523118939300967989836265388848976875291549718485386488018254557912279003671899811907262897469644871391726656463813069752199210777080458347398434216258936391574052563581679162386785034142041900936508586765664381642776141376743230366307405473606952429223991100502380139509727008754880329761426132340228193010244240247952638335893037047236945868116469697124801595604358952102885241472399984062637603486370309483774592274389790196252095294807389016169280722914637000348002081527444161647637645836446099366691435361729901103129867816748555129337928688231754192057383421682697827855711561745863207148810969674987920401810237811064289421895533777705344574106462145099146729715729746703978314722605339234971768395373554435841652035334213723894050790252209819459018093075010905592700164851255256942171580454930591574985436084682150186141278496577235192512456192115464886954257238971005384403595499885895164017885086200379212731608090315777299503195598907488293598390720742641329844051585167061552892549978359119143943694256281124158441355134544305334993527852059405479505929431134152676709969562298684815538076011393453493824809932034135887957892663543721975446542068380471286792206629226333946964228277781151921737126784033728904356429988519418787864500022097174338755739924854298328438734415178797425401517546484187173053518627973437579464093704268968290280204772612825837304277940041048927297281970608008886933969606886393705406518962575091041498055056182236197903530965463703502947737164128201734430091008809704248222348285777950789232583033200583020502205714328901576510098007231730714610309001597393106101542531243069108884366410840213207975020075572682391860974870467199353683514759685897503958302610391340305111545330234438601615788464280645200314281590268028035807633183938404350077566082851833147549804145035219465881913253455250782487618734531798712871289773380581392989691109529295004072003984992196137439568150648299020115329344562453179550942598773890202756931026803790635253803555255087763881611918764507957784599991169672489180516074234153388550679151043689378819224879572903357269946169166476647020471606898958852645893150833311788379679100678091652751405242998292291085325599227577233773529067032383991445413042582139695849273162613354203761330328447734079685393288847132420313904399769097266206484391538297809884694232031042345087353081992522989032278216901468050099962856605486686100560614760034630466243953925029595127778671039557852896703737851486870022715060720953770664622473650050250945415770898362097845615288381829227022334268058953506684439419951129411157279056708590641333719801879873656985267724186851012510561349829857666554751953633549516451378878664632270933725374911888701349202613172871253876515667012635104128971835601540213872249459022143979205991221433327506918245796174206863116489627795712447113756943457036493028530187106868961133379084211240234707487923475826179082126068673706510665204253009482503466656176443465171120568057967356217925544887999306256552031990652756991680977072865895930428374952587521471592976247545804090026589716007703139105358842579156159285314605060764408290295058797656333138604117922375302657554577467241999150184643409757661048245645041708522075541308774311902787813053167216052050403638094528801271459682524355245215988881116591277947751594315284273123471720406835090884333790374573450936826915123940771442406902874211307550549359191712948173664656263775026918184288934436089340483012743583459795340118289224795131075788245123749434308235709838812403003759890761866743679553146978549200890719913199111942217761343052561142389609177893937981782074247761637276649422686102940367244855851663722455971070332326797256720588668679279203746354264022127125974613760362873531502301738173160983257818796943852786449668437856345321818436127952482188718267738170361671533337864913038075416875990218749252319248620281138938244013469928200323530813409065631932885845227092323885951988120226000938995590107674185945040229136995728447743424643560553618041660959947976364997874170257530445211035727655349646937636743854326955346683602585508641590696687800245093809367834746191357902751014623379591738552941783739487776158584172724663673459323484779398628496660271323151547120290149114575983962589930073938194470429583030324848469777395242579573058765623065483336308788576042561136443117340665928873373746628058808842923479380104666359458750757800634593580104398745850984077551818890944894871977802166840952890851241278082554980288256877406873761474894512198412202152556648570261928793201613402538788143783524838172679308024578286549427467266501923941612578011794757030035533925003109999870062630274942411660190570656462726281147377574112847891347345212888869680969125277501853840673475931976661643988058589062794386133832660486010901290722706546718095937840974168891033048197946662500912764654783083976669097101589821159448293390338767104526699973950333711445226388250280821647554551529910945008213518124024156487611813110995268495081821527045760808023620463384941843927746960503574902804982706688054680928485590112112298039096558303540907316277493711403991783134631879668096855312411481773935712638574996891767090998318540181364709385798505334341305984634568045965249365047116827813926249175098007896078348729302198984520985301509610448849789659576628537042781010033954720986151118668149281699618521464348918700125154759286856556236051528804472567722194729051659714942811658837221577109620481981174011667326515790940696697428373886860959752599933934553766059754227963782125295039167326548161299251148510393849630344818362911050049887236255401549145176682336743401710996707110830215029373118086934664378792139122970324230224602005470653309350141416922212041772387629400628134540491899093903733761631041329832469843059447120078003491059402349568241355721950496810842817266495306273242485164458564097042288301376558648478985193228540647853593486356748155180342994651581067851642604666349913537262295904629613603802107307170452800286229628059534866653559572869517382769045126822548341088660105435267478795765929139517892935430709112005965511411772289331872145701070326030135216726496015893671207389956102748199332207994205618273107119223298167761862038814087461199156673013032272853096314206435606250766930012979867065919344264565475413756582029212626298429884634516067026539555246470769616515278358914172039802838122005712418636416872451335254340999182834104902328561977374696674727632585010617516473887111847325071811884389238829765281570232285087791630131245785370021590208289012078558400629583344945100596355362343484737659314637820704942240898060912651064282234116545405767874352003369977344093964175399374269167876025437573619030254953305989389510941943237150649860989839418308575267850865588780592764094594620600410663253753242928613999493856888949767120450218361361779697311391311657175306692664052120059271927102285371115017674567725921342736566041652420133242130057585559190168814565262705102435696064130510115048437277036747162309196625240339157942805761950196635712460121170060044840271791001659400806282663792072317080849532606369200908693852854251519264667763405627275136798109898292270359488987668528557809449253959124975109561792257215904208891149713373014974830671632280941278043736967605629801409205031822719449609111274633323525270414830857799038444378808125684133541648695095367961922921398674869408806698116058843452567628203468961241783888728156227290084989448194650322824304074667127132135379736302527234955877569854892156424357147836120470970766062939492480263364073271698573223410883640992385196079312482461004887949132133283916329005838593550128664873354897496336926824581971654445536760471765396621969230597844193486338735571637666207102249941097284192305005936600335540390815897889552359557717526774413003196456093387099946098088042346507636369357880042782304347845990069467523856698844696858146291651790747591196412836305830889350578338535359430680748738219161453437478595419144377744111724963795058477396441766765446339369561405109505197639311793133525905812441162543311059323669102398290628650295021521214056038196839103363516729307255475186076168488918661714117278619407779472105926247407277403845916730960883966427792165444870698420580723836948273316444012225774777625203881539758682329119131910771173117155284974157052879562253692940465977714799962246487756935915505759125804770336649102908795324532196087170686790900754518154094898785218819374938837059486631776943306968285299376145776075949236875632038898532052932015347616712140450656775933399284268686393931691467986772508189872307162649189700090146071105502573783441801655067633265414348161255122712627777211167101373733939109082665083633539983919466535541815822103076393288477281625668726479082116701808733061651903871469714662705756299794664367042595554689854968172636865274622679645003857313916320518427642133710980233956547043288827330070064499622681600691528112956999150718919794242262443526064815432423485046471889679274339186082154511207831832412275190757288490961736471734639313547765910196961705151209165033225862854798898172531489984181222679095218006655491601869421718918705724904701563067136230346789304928140008145738125312897106407190115631083415004617652749659930978815747904736444968404325595222650163498593452338693486082553558348199015064772722220454204664645208102737966158242920440961902420664885101988818641952879525604024909269573612593821798713967163240672449978864898712287683116572474939962764606618448594968438137122783743603323841106339411287944285275216085956222477127698954921867017917892746675645765408292984450957845595842692744061949611635602646949014387332319051989025647549804720435788763819067010250234048266175653895131129957686357493427589413417441444215731918673990169028218742180470415883794620894405791564838360004756120723611964533310751793241562563531101991953025855840706737746700906223365793399716468533245182175789095242484078117158168292076310414853107441946692597041385740299743717711051901808920044458555707156773490659032869618003439045151043996642949293424647897517292263211044826639080700119402786526248783317528253149244325174323908732530543670214713562800580604015218234101275968431854626771814057375209454874883858167268606532858769634436660523760664837443281228067675046168948531523547020336437105391283742181964353318950547061984339588155247303810626488117502494340424559317343964198362127779321419207192037210847775011192557311508171823232708047547537870730838207515387509013456109043676886972839518482411831877120155268289819350671160729200230703046534629914036910349545857010347024394981185899838351300271086795731755341189924389504632903603553927704029415181544833907205239094316913091411295759336704863016366626895329933326970762838747761625049585714204462089938348596429340688926621228248389264690601285196666933250338843932806569441150842198323112823686442921132922409804523830242093780620855102692361683316787070001369985859801220744598146599558484523903799946035676627889557160872137566800395655453598087820830858084861842697575705199798502819872854162012999958073651247300606724740633023601213189898263444450064917966482655682647862296390968330595280926976659875127507490779037575932590657794346252531995292154872345596344044963185455739661031666211448098923471750870323036049246655538449997494322143999568931427862182616667193106844297880283251265611908835543536214385651699821240994833396180037570452567466004424324251103912642174191422926692030562596749193693544343511201653452696281570055345082703247976235046640290794826104259589766721269498364294052523019367148987013776240094349243880219307467470120271676500796520846190444733524748949980596298251679150111198691061484897701653042330740615838839558157680968938146406689230824045356630876594549706913256265135827132579084815151143965629938877463353781481515432359817287222224338658655205803395034718289769750664402132185216016999230516951849611285870338557669453535805471308353575638906333144610807404414470167132184798794260525362335653836479441319089784550784416681874931309665451144496415534662319860695795952074837860821496358529335597630342751508638120229203898768004492300728762800005410905443933799587716637481289383163973925621561887755861268975113461330628460950689063843263571157537432721939095373349767922685954912770748825782523518214657842488419282437772062484090180640154795733694757080298237538474834567909737799358841850053622214458890764123418584574270719670496432874324466451972393838010782796927504191192439033664190075068366990233677945467204163911774712364463888170201778659127379543583243874625918062887132046863393815367838083377948307202912640182292503611522983020785584703874017182961439156682028338056977557336676982631746742402416888460727898705826748225151338449480745212007213463061245772318470583994323605095975096135283944363929969943028152357093592065828727748522696651093055119016428902741706883893085147063472328841999357723834104522432123899952417240775381534682856504801505459723331603803912760292991497426124129879287226191114882148213581349397297029874548761057649063758345581457331475769383580889681234196531463872047533892455203026373681094130068931672647356321372731407511079033141249965782225481763243653752810062499062867629647001192277818363900905762551552384502031247243965872586896687119590960106068673396499254897775834325789257661639341045573459523181600226596142004249234254216366875870106152917996776302309251376760805206013271030704070314801568390048574160232253573396592205193962733070982925660666780625417519407527764651333488585875728469379560344364307037704781588835545610904171074190097294129215155929932761474661677930868058899088451650759896536102848736077809242798280746693033327068243317702012219900954143803947031604217733066268392462382634485629689668970734336854275513377019946089762257643376588867532308654146630608675645808256161769965717863793744085125969881969642577624800438987745125313806293442246276133989151609759090051368842082536949611505122201966384711274344662394817605696545011599771869212542514782732016606130348930076239831132298558490230244163275905618709882830829028589090710902780343254163831723289935427520252865545900555727863923370033054863174663603891922022178868557390241440155125563005663313562148164526959541583216696115253766567936793665981186576815383181080769360731322087880404818368693280197717757198025743616336902003127912974960485937406491551158602325464906638558106306407380501839371620536195040379616260379327060676971516254128459842889612161597085924625975689697721873449526229973723544485758870370423570328361694045066537531480349105134370868711417969314768595162997198419867058760915919597160096962499352493203307161688500582526571485378751371520054054556438245926971427524401358683097515844801857164747907237136789058427808331744737698990999765931526814115129833022482854108051494207752908756908418928351783742735437077872424060872136215419110947871761283747778954768685955406102168849358611866991293868310048067554814307565600683447160054860814868550957473428533253698675591811212677387865221082928099908965127268355970167957695392681751138829700257645443741987080984976120838477456515770162559962977357954969625120211081279684329686695881598155404638825522661165231710223729275324841683533765914380632579004378370669120245397890838046484562795171485311178319380069057973552529765846981785259833382251532873080418466874435749232518644649590768567261685568028025867993213605536582102121393474363960226764022431715243951991591729181623955429232473299510746765844920145165399470710419644052975218821144907226887651997064514471161213691924769733585125880671416396090815284050330000163332778653157452273020323270415622613971216947734686219382572978886284041133677570351306803591332613681643791608838890758502332393197299932135756291637936488391901999814608555756029085233779334808824728210198794248754775647047461551805702385975751530881726384122493858770801077408641215415564686353601626121211689365524476428595929794016736710830626191417620204687062445196580270059009798413524809096803933397201255446978124810950876889262892856245112405634490090441218584652014973615186123699745244140476135760756345090417252996486887372283950345452388824325045605636982980801977240524396457106078849558341278390255051424198610752237058215961723099764936567013324659026210365236861214905203385812067870274799116126253786249264964932159486943621957657309191950674744038001372147081047917756089128383955810282257765489949661344459251564933678593743237959545222509806383307495035841509466014890714799318052267653625580972715304705134223195404729734018066235407742730569011085393813478551009468231889534033751920613782529227801229228474068457441633782300307243242144426794080231491893396286780901406286249986842280839567486298801974796432176633541040198914518705686246055139612489115898742660164727031956431054324496563056218597154011286969553592837786085825509075266993056262860530550038339386297956728348138809963502247068625055542295121408136789504115075584923885149265086895526990689192696938233781631337189146340566221645315411191025297102516413055278436811472501217032911158714933281491809049750103960378051337100283327299556757551515274468883815724316975774238204844813450208272546773484247487571471025931327390483993572807016149185794805588761440982427639088460936444726565704404447583244706967613024333609160522312483426193131785802027395602378195525905017156162035538582861737038514933001359633692545091128011571634264165321116557917313305199867810139320715803054647493323525045831354264786675879156503869398262483748230328314669497928517956540791177252062244412261542854583626885553233128959870870805468826572833136698898285785881036788981559696692735649253461501687845471579756710432406140019155890482841155400201981092060285580514484374295421531409122692797582996002801678282592751127659133726348043808100288112576471900441923851994635866462837065258357254096735543715595744745484476103471224050810194299678158623669228069860866147178170136057991822090072743313698175432578954302100016556623775177148056645451232605630696557263200892977285897006940931997160520370900613801691131084230793034982414042550365282992573806968369645650374055092582237200632399607614564389799231214667683637868049962245726748599157682217767153551066353083071887960589394998588490360924568982425788988934290674841949436103473260456156596754222681901242502178788643495956467675862788089720631862686129738985722201770501873332207138206278419381504669321244780365717764739757841987016039121955050481153360910125962053707309417846232275622004641900141023477380281337784178186560436149395080852145739215784656489741920855198044578044183451232685842239641086422948278134675115983284537292994862656020920677603855170428668373784411653802802671733878877643980862502231487702370462852338094399237871328735003846312137069375703455568434474916008723981402593635746290457760119721538451652748196157664043411845003916567881712183621536040821684126714901088266563741280578640484970012693618496667024838425852115743514595760003889040631855625496837131409666289147402785145343343574948121708436561620368938746084771751086247975702822600455847423315483244998579827768223331858307223608823522604224738877494125391412925849145945555472631598143267804186029608992210868027499930836470455741029100478177116841208719757591131187013343160755047770699530570062167477405233203458845249843649559082222842702012272574636328196201076936027881419822295859892068854267762231960615403208727222381587286396632547099698979108069121627769134288899505769963490117006933014492865721129478221918922098171166149160201369439434823580844513359216250341801015582857536247156624368676280392356496102050083944420354367052380734972951428947204425045822944988719886922785225156766092894669162259556743525713783071391757744309429800192808353990745873724505904774201929466224488527826181592884177521233058805920113657174680765698668114228973595475808863400847155958315593547371737699452159256197026863953853826237711515026176500350559897037654914527651183794163007886024627371847384133707790362316338888451379687138424462482469664140387003158305616813271923392064379772621392085552345595513923361084402196501662427431069618773966029009984406425927774850629292713473982121952603202988626776058606158528433842446917554707887583379389737562676758302979430893388779641718369387415029516275695728446093538055314445147489325618003663351771028242515832138038994650152424825724002525055176046151368509458232973345141891168631082027243176491797653906241179527474268177929246059669614386067989621636028377458181368705209550597332786176958941661636017196226671863877830915760974600579439843535434379180109742449650317009658471509620123278654337694802791517185190080223830144685948211478396198429961188140685096514011124520759820860722941860065271391909225355117939802521102958260081833368844910883539086852449510120955386322327163205908501834585992218153850524779948229912080926660693177733467223216670204826894365853391433456847198246383505316887693944015965122510869679625482168622231561062465395177897080267247588788342589083451747128284304599621787599760667232064246022930492859219111188134810903582183008362619956700054599675364381956543708607396847695260538318392393941041603226087228259686938554944862424634509136923819516144622117601011997657802293180326291799391214893704895071860099906182889355971890332774199832532144656885681378603961424734600417979433693399690464206351850444394376138200252890562784623844461239792991760868405632260299063331445605367361337948342847575011901394235877762046609765643847119953079711720984080631790177400696184242758617817865749453565887063990327690021953514650277525799201499970355431446512457301068727605697870976717696439007080081332586839983057724780233423128355506590221495969317399819942217411184076042796774721256810850615705563160997054544436547952492024116530781578746992236747085477468102148164317806372432754345799631519342133456140297074610966798238983057244447504863140281500985805696949499781749595610612932738228862499508825102949514848928888127296927262592254441815171073219907617667900421588085972018093493781206076465201043104961618324702900001009461909468017686551512449085855446073382019279562370715196377336100708511530704523963726016103734531366210159496070196005018435529465184197557785279077529123304472858972982633867824969001845009719816597405370865618563589183653069992056474360676249877698053645881115928039136202291586511601224472653798548616678116689137270529148128965293345130140467819156418204676849434869679044031270852856103246461755161413639884358789936800435092627381056350284305749200182337255964257960046687368531259390529685790508046650089266062886669393730997875483756532784939140620264947257211581631289051666520053777979352346747012591317322524080623597029596703771179326709564106694410878754563458944690481589271650464093500251824254932928793894572062245944227586978429234910564388808428848610529184074232200769653061318443562602504398004704797472812363628343315052427514203344020987664001883782488943284185918690572929479190804723777196829711888758451338139556794005348503489862324665822390433803074191832308261412369536679405166664544828486819117536801289333373966048990255064255658160028146778533368811584056044043322548062254296044954606528577652215590905977338967791218338661722833530040013881407256176895527379892331635695836285919785782784325592559014175994721447511714260154310246937657965035636204783464183851262449692668017914362650130595747469400781612631480072080268041310731861054987246395044712596119129899374754727423130210929860296677205430491143819812605473221845965691816373199457024777669505267291308684177829356412744586053302122935420158772638633157277043836115136279291454430119531224481771628962372284493271345331330664527410524537688557452207627104708091547042251084000557735448048044156673544253681604378628729188786199563770639824444434949850090982360136254631100570666344311357567372024885952138079398613411694421025107975481845161404187623904517592261623881431173349737158544722206858353853918130922871105906564377746753746923340957490195978091641920220837021678446603589181297264608822569405865429818178700626936428833425053937451887016923794778118691274097482377352712027273964840235734066876635783753474297847856792728825959474253726798989943058539239180347991089560455465870482002250683208075113927732344869745738285674027694366008760956581086457436999430127191092805404080371505530017330366994985499774758113041819070911692436547654274689934819286695320419001479513331710245782388862279289690136287328808773366063641737433573050600343229447484874561320034442025128219863651401155966072158120111937096044736751026737017992900515482637674543314792109050199822959495246393678919628618040810499786720367697088090348974709174950777207615706565478962013744070237664258856027199212285455943101212577019141899704258167443796907267008364573724721868991328790881720825290528492749414878598705993755155403366811946897663268572599712876416826186385500648033071533350812650407887749664507744625669066996540762837266461282210890058832710782077840781785685483042625692442959161185534259474936868457852912751978771460406329840349550523079775124989066245890140765227286859368277678265755256231160151096102694386378656520655260771521181654251036472494565681424907103279293034150127353178814977549048991893153636312223055626593001543612132647717778934193606558424315102088439701711254281725329052119633650290330677367673993124887033508849556618715668499708956045708734266887257405669651628301877001766863190235379816903525344584196003346822060291746735117138337960578403687328246620243137743460539024685753506018796422899923287397370819445250279860390945951798828559078773244520768634006852295490032155241489472490967486319331145496480871010308263772698036727624500421368056638626313157995313053534307321286869309851065553824719898199878945119740048073128076259521144936306710257897535917063762506948139402025794282304179920908484859921838639383122995100200146630028791860409818046394895595941493893783171771215775129737104268936852354699204674361072617858265464918817259004504511091323083993868144996631774876457092566977982708137892493248930668231059364844135179788466890516936767915637728904573033750570593223920478787971271200408408042818436053654799177797496800724498873487100166806385892268625039454275315848734662520719645547823521956675542865040684453339630015398448796691082565345880536363551687698981966626933642899745553709223629466543352738722761666618119915930305427109052058502832987730143833131877415040685652038134358071559854914645960702382235495404383844640019188433437585387788936766359963298929210592604046698145588271671406957344802267758964179420617972629898208257462565878884115652078367060056068525178264926454438936128169380106563744793413470091423369988310439594813898586622086442207790215147821661668418329372983682414618233623219353921179030564839139069837819619845639972816083456190491405222300129098889484074705145007729996047656403291905395996170470410724946780750311302722612061341516010781065309101920718247873246481951608138041558605219332928492370491264822678128719885700529625683603484890679240755450240455800166095785892015311012188721064163384427777354735694372896122685807402496490079078633881258320032912370908328992343239507796031183369922375841148998282792858893847879995881829886699934631785341561666945636962482159444285777149402537953141068586045897237061943003408276186257231534188025802608329520006253639341578002768619747017030973440078764056987295185474341677442852614064435831052815711887602713856453136239785251856332320464773074180373191025276388494673804486538171234752451303432289342740860069825901064201590323362388836405801728950012209347243987174931998438458791770713036448519984957829077243408685847915248505513340275740362335121832627287957832680537773694891088332669306733181350180917494265535397184289716011803480978470500170527963520966883695425442425297722601185857186183260705945538704254928958992075609841645051916651281349575526127031661712887760378848419096459079892974671423389241810376360353582767917222864871190688245413849713690704379345560723588515647973211221334559438799229530953434279797284992657774964513554880079588100050294912710779417760299270448151735066978806006383295363469720444892290881238383782836461933203326326267021631229708382127056099799066493201968866794756054933130387588673903073056629098604577934890981299623774144100924600740894745209324577403787265248367476783448567375945565757957762074642033882151734290898679759022637565058487721945626994319000826419604156979972866581624842266039172731104681575393515418190608733643824421053178501741682119008198653016853078856033615969327845826780854052361142366232557699507882840503519422710159234856848854640523728939141753766895390123877055375243374436589869037933773425727447908459120499001251285497229730607996915484166614887502387411880908983078441113226678783493969441114497606366571979000280001660320236550313840541241236360756084193047684084010118428770437076594257342395199079286696944527217000334858758951293552617046115919490570830254639154789416154969677472975563364072374247935775242893543809236863118901130608353371078845964753394012819266746345115101599885019761543577982132640011663999020787189929638538045300977912510804187668077388275588780039926345640693018747984124244705390137052827246961355240107113020283096166808230273519334824720555607080192815668660299173387802810245432652753433982017647907096569356735980029534626373604772969953204299537377152423900970731099712242436523110062024867872878382120671446888202497469102953145094350764323263917925062597552273731702886866136315188690865733309385889697013586495905640284633034184461573351257687547134680840151945296960457926527993923572066112226667457809615987844603435153380025073683354804457725914566748676925448263818233518514147055112716949955019157260222035905929902968442371268702563652420220960634220778933613833313969503020567193278890699525973664100863559064684802409836841017892924994500150592354769800732640499446891640364992049572663894650741880714840516202967829443547365260950432053906928231227147984676559848706015419247871142615069967471186710485426171466594821005878836379374142406706753523498031325248294187165447025964298899667462534569298409933815405687233836210429672371581872917085144104889182166370169354492223063706390870832208047726792285048810154356404762559725458886707643734100948043231768163882307434995192961942234702539682216196826397595882432308731836881964671350372672234149481634582243013598535219591599532642243018256193555935041154364119974858158244156928312554834918282298556926213693069581277981144657785023049767322204027142306197659587613876419419951949771344340813802255629921698328307263199126915372452376609200139488316101441511416323346562774478543789881393259006952827172122158683490094487928831912422537790364182644400604111740481226154781068679138334985433098666912062145680974324145265964831772249368330615313113466636506043718039978750227358686696692520999530765946859746417125891754373897815662245922448378921870608539267676118436843283028544892163384687760916704432083538452205720737149366705971022614347413136720693534273774363414058251504792459713509185931213513863134600579536363584176433507116308197075698989191084117794318684596442362382119186244334866571922147747012219949955157666432754452142416018104593220233484943718564332805397058207996412806640880646328497326053548759162252888345230925308025407663566313026675965865428066492129051897993518997154616526444498244666459398730221808694860878135976622363982697061931015653500365634254093238257883381402709006174896359264596869731428695712211962528506670961418762554650729231328123651507548170801559801680072062045232998520218384617382288687175792041045564252372601247840683628429089222727963111902787776597779630034795879202437867549432960686608215459392982264370996650259950283247594299438748819441027255556150297154221720287449257929671128813614413568137000681923309664367372562744287276736506226832413394082632029689559997443754992894186418593920724411679190012166316197978618880422114515390364761610973862227137384925054232820463723557018092001745592346083053048848847509920283313481480268644833677491985839335687523122409223620389751918874485944284983600339391455518986967395514271822694213872050536515002049889876262807104562834259734221507528772805161840876038145820251602550138772034363369852635252549731614694145131459528982640013853539186286406090525014501368155429789684558320782722385216689517571263218829351820326898426776185429567541347757180781654207469728312269127042286534446351208276384864346504666097660764979452640158301823577679844262857272697585209331560456727808039332916698009539818173640828149649526308990330084087386293346842370576355793487958891895958681025352278698917828284221409153440763140842810517930884793058151820923789243287976556257367781690204828366973266550280530791272105647043674862440720605700157122182052531885720393282684936401473566641367695994108249862678199017881172692004214066996355521114239588556724476293546330319253868913688093686494310535115960831904282838396445027014535699386944850047606953929262341224850480195157380598358152788932760750757872587751067081693270963961222037155544571584073861198159164099030970525890141453104960895278979453110597065185332796913204548500532109551737061765534337373921343918521547740692502685589992165043735063550044719277540608425724994365144942112087101856766653789921716380386711808110526709812529332250870108613477491021955917545834632254382615951235581418994836161135180632344253438131460112892930823331446081967905959461211811857647124071296480277832929309194239325477083731374074157110300887492457955377041691457938104304581450480220299661146413801515275917676452396422882380497060723932464314343350631328821189184144990587385160583107918879425967310472163026374788173751902200274876481071709172049454100567859908914567320968831006142052985666342826276936067166642660867244296439711715058716076256528566347493655114630628683734611129648056841985121374811172718187377055745828246528062385606238171191278323905375628815850577933169496478811254593442246428086953325698755106197786497722352373288091918551215869685582016663442399315262916054473915625477910369685633673886880024484565757624694443318384665322709569756511303721768661758833545846722241399603556465530210472532326176931804443913775411342295992940961322454761332684857042633042109099198334236554291582070264165200806581087282366739695287153077377373645181735355337625943148142473376414001108216161316236598513993221396895256473958391084293808795049382204938756572807579997858278872666622240265635493473538548569201988775633819233274010981665769444987666443041476123961002036187929454512069998847564653446344786569663617168057513355496633751341064493707555308661705735654418886193148617420447761952673987158281877114349857064812405759392025146340977802629759135155209441860682926753675345656555145822981091927664120315016438522033934213092607974282827606214305295811684348938478098361763142286478571309749918793744352170809216380757995764450106755852761010962823754354005721810200930463192267161510799179197366841088715794355964472623365112115958135233835671627068494524361043760142347848178200072649275742858547226834394596552588153771366451781256868532088728615925298974346382505009022486753903779293143213840463863331382885453127652790042418552710840088199707035136704365822079610587443491492124191561264348506779393354031212468564249053005316465181809055144173147370797976751495671917957359443190221023833766333553993482106853604265443857358985873729471643688319595597042438045440101779233640401421166788122112786169981085118855358214980296477622015511074001189954334459812875797073185309053056437076499197088925595438780750916978928750617060601598624756651613634405757112215925513905579485613814846507057435626228223218932690302085857504857682772911549182115793387147495207170544748903126082012217929160895949147271988411135360102914685980577016723773930722659426885610973233783204268488383884816711580044438001521014558836806529650022382835122062227167587358279098554505660579800291851792547214477180671799618187472562978672597647879534530650347391516328412794954616272482520175884264617580198420048018007990959561936070895792532902470136525295286410548123723707243047145127692779270240305275785939634329417873257639306288252699928058434933999873499673497706476299552271167568237039621774652522796298111032043615991236820931998999002873540707641944793777673154845810864258223989263431309810225965928964710351112709491004374068106349660457138388479153953278507984835739273389074950902869979367550480214703611279481045398229094526259094326473830598493763674443546142391099669892516400155098172748798682238220888277101066186611139148119201964372955159145493048257743270280501704756242845662524893958728068583320229548474179974185999147450605392659990536388033166840285560244434806770441218127098330532869191805554407557421974891171381176964980023429751903174531275112487533027260918864539970814134694063469115454013375485077014534019591692393283959300878584029370930987899965569604094161877792006292602059190238190349087612034984752644288601913093377848204919593415604836188529986681672589268211392016386543345958988034475290384687487298672328403640330978938618384880285436651708834299207367659292973001188341777205394557351157788235489302673359024460948439027357241211790241227400689461182606426797696870127519705772342292214060252923595758724809069047083292799877909150331239276367774921033282297906229586950312233714592251603713336234280178791716670156608645257878958157515450003591764845336751092354963941933784641018351435318673756181972540554757111865314124556907052687709503794637819474763614220066973588388133677843336048916819091916763816404264177411468842219521941785546124942258656969545919992234295568908423016812869206443454094572913038193536884973206980029447311606510589464586374214816399686541890213970568731375738324928601767383952031828273476445529854470242615854910502478312648953558103091831837394678194663822267926868766038744119688635865589986247449498313650762265232472493927717503484857270823996822891003042437159725078098309155974195180261808223344163462300072951044711025056246810591050971972877260699422151798324919175607635888419295338874634927371117454143103582243285784777951850232851587180289071213919459183756110389280208108087205852329273797045363734756972013472032504491543733849692178769107215590066493435499557416440283684795527842402018850177022864063172033271027514826517646390804435159420517910439092719947689629626091800082236661826318476532326791574581429127528187608305270113004253332350720568417069927480650309237932441149296378138509361941179613373730314916369681666644395893071955864423881312775762342503662074864308309125666881158362974830233474119112752678178869676849096479860584319639111342960050423305114143869518546069796493200110783764627141923920720510894538849887787863953047383982971810991193974651503090673134970593705072043946258891132102280799160780139853337267951818771552678237971583112643440531071883451052104187187107778525908864089370328402882097129393506020558062156308924455673542548706559966394644135031485896894421949850993263399606071119803065591910707762128958785692414934819246947506535132261290671470474451281459135494003881823034191354350475395938091352400834066281835724840578378501721290407465616638663269259432177162900103304585887679138768969824508550568887676528723146559904232707133135236809791002453482517595203222335479342148300318597312757240337247276030797584862969185954390591752218837546408735651463785167146690199414978127262560640375927756382272201133297867966502736956080991214146405810841778958401309190486235728547160365645386608555586247172258088282610736868649558114934069913547051987725709393777513944629554972384601063933257172349388843060977990275570121783786483034894033521089805772701004980088067455763084233479828349425127603485507377246287038893912783098695086949901283254119344088852865624123306920012390206214597132791905435030183543635621765259948242131484637111519947246800668433704871798189843926848469269162032039897366468074167709890403261269236962886946274136781564362826999113626431191602615347738054841037085611579957341577553567394801062393674076538985445387437060157019956061236518926363220954946851317343025650513100543810213820890723953869954646735380643666052286860811325328212559456467958699165026174308729278614545729031725360169103432923767125950649453919108388623267382939448894139507274917510339621162840643426684573734575072709520568833447429567568017609330978742839817033311191411495924477016191717653031745212187016324050579314864412118167520581843380202998558803923683381003654000587679151835934005396224894705064188766052287565307109403362906331103314122842734398838903819049042176802674841995150221615275117082848757996714573058743823732878995089141593619517339150440984837982771429096422963803344094625795284162984163080223251248474341568554651554062563608115308352322117519651337411521107742759028683597063713012950144327186327936159209693570510227293911572330688607052887260386488756044819129739902638319317005504419370963822313166998613727661160595288925037082701484206183958903010544003676594971328514489980106800802305782007348958513455217466652949665824558667874106898433726620845389327136175214994116386461754040222714136318996334439601177284993979113315676719871330800400199611060995863356581278395237234999492649220240214350643964234299348670225724524561355413220180523143146972922262535453130591399082720270789874410728679347861313227664377383632016687036689848142030327359617221613265904496225421049359224911052837406703060966748364738370734087298496800396389004043331502511780110085276389100479124577735112235994737668997133596958008920292591152477590680215621562098757711648039135026193658221689418216908243995531831443935764523591421948326033658966388923391239881775384514048479183128306183869692409793223652294803993750105024103430962883714287749745015425823290090497693427722426279878669244363912109950183272440095993334111457032981523796619024750415115358231841098204989973500607468267564439462343886280564645149486105600367194580188104897905242693590358900714096252584249903768481844674095421616967332302006929141282752404631654024331690772703298030153310371609780130459371323794672902242565530721049181410912604181222499006858199114552671623430374227580128474652927379955880873911433452046466227808951181098233383915144537681154426815945455373541650786750383221873601524980684638734306645897716249497745774792713688078943473611709338935194175482779935466530208369504830419944462979248127589648172975587715365869824344843317633843904092520813690881204254661075469257333752264797463363324916727126446870156543722337397534468071409715098860508728493407564025313998578961443788677462352718428158531410476195603374316948326340693645016479494748837171205893212676327141207002463010349968689541382746022050758666688821090707194181374256809051375244440552489067658761416450641358959872668815773882066374474666030576232228730581941657507327498333927853822116332974782481679533859773871778298953896952362498497168855186698965821011125863986617136719305746640353421061216513859965495861935354053897886621952720276345974621929232840788658095502216833515438477377540007757771642406556474833442463471192908148762264528108178369428610428986015383898657299968314135509534431691625330123906191133406682341375859274835797266601314751906795519666545399481548902608400998926072978319751748165612924561291659157267848223944719450845007361089289862684024584720514041506412022832998008218115975363188735317906737431827468203348896985990530336763256646383969012267549587007796034405275540650408211317626122507722653860930221904393651178416350462839726961900222496819673054933956843578944154705012113217298755164561977817628851980687604898295428047380533441083167776166766026874243967432011374702108467494648856167779598088440396976371792756796698392661088109983570431882808783026948229480424602492755498871002972012910461736103996714051261953077465687554245749080799309104296870622596618991078244409794320008201737587021021363965512040201306673941786651259838693733062188944141436952870283631962765493923881457765098813537943649880848749015784951294816229907510801506082296365520413005847647167841448779285034464093973526673548622795284710702987783764807803652115842317221317956618673268959447967986075497680771474659667683831336875948017227774672876587991653852574746421059934288631034086625485445523705262589740749207912942951983135385457784100471333451492070976140569410123798950870954790294097825102374782950508616321002196796471478259902727379163278146561181217909189537939002378971351945820115523434130445473808574072059639924201904232670728777638579171684939505433962656396944756769846501473636497541237678997548206174443154798898612930196467965442793775167773714368300773227553490018785923340404036292736021832271229192383822291989742392845300521417176320833817273583365019718065682612127592259308810945150565468635525660526172154163438307687468946172555203852724414898322790973510114936685455843546926762939929572362848152289237465724638841398941751249623909616432085862445830748802468374684950346759205403769911122509466702503875676301267517259101925253035568512779145947513890582074344062652218475487054067482856714637234907830956079633017852946246037127084558616768989624023441420822588708076207468361142241166037282101502939801762942095273785758215615219482131361593521247802014045797923410472114011830473726407346551205422870147068050759134722047441866187541465724688488583282571729410193291051249446432531229043615136835562965449946191767177874683640019495415316070989302317142987882087593430478275858320051072947855577197208987646621756289190713197461165451826083252459903435897245582907145123442242070913653201590775808495703701290041882087061212005046443545169540501524597385361797581722574771293744731231499626218549648130447043730496794077277727710871333531651610410159417116113791017091585796077797994404900156098250212657298506309941541172879777153793911377952384614366769467143382595707967844923252505550209590154103220805039564529900735156747289882759403496883412822486926578493982963413219993809134425375981043946010918778544871057719443034253325496130802679263875735756274529709114935029726810438616286881182780233299475024001714856211896373805528459833293314977079009699024675486409545020637854194936047047228046496489179107884804308503149323303668700168928255666060531788877312786675164783954327800239111979557330136395256516266240806712289424522674546094054422636836498200398141467582137408636330682500283321404881542977554899030946381364708920987859427642196182589523381720248500047167649391666642459030171997818891805426309080973476593910728525779966629062060791540400164680655261519707201322489551587975239387931855411549253634666734492871632254756460166966785086628085335215298290077978363356447560691982948326270251738718544666390901321084784139901354333835271994863196560559673588015813968712258352683627415579470368183056599046317105840851364754605471891794295755982780436633526520274894207193130006725215805188573746884212594684599879457068070863927805847595106907932499970624252060569689237116445788297606509900932317764265358588434231875702227610641690724325197014003780257669557678598959602829685744113142117297252964872282448914098552099086597009862496035597915268585450844918258406862740191654425702560696108679011869658685699499692356633767239405986800853572770101576980339634827943910551876520093353903544441314947887208048297569976783650902851456738131341370837764183760728948691582830843007597240425404147502934438929717455475001273881608798946857103456950919572459920836554962383370245592928679995706781186592413777208789919213071639381317148470270782945459178381329273866826114955491200787255009940796179076653778458361751464547581572292791229822529098663068138693447336411073861932631804161095028849628246471830329896698945178038066684377608779382769621576243260268763155597277289510229839564509635187789648189462557159649440980459582625023497685655276940719012072296716977662640545462551537000440087338414043108345258881645431557433151697959398258243535874865883651132614477043014163580825719783326599025006876462430268041933928636619072038880585483485697341770305318117666389504462571239809800114830861064156841303793532042304421823711777951892164206698527284773592539221037666226149111253785320266717615554109771244188174256540068652829324199454575891674887787318625408977636068369910577478233307539476016159690502933215599354489035145961596965290970827732856266546718802383702933003029290215500963899897070392344969779623169616246410878510044256902196814008433296925381266459893082314308699941217690570426217864876084461276657745485111843658025566442585295108868201904880473108607737119922767031805089113329202511270311259512498642347195074779514737596327008498233808129776698935900360506839479434384881747982253157965625895035213656908725321793962763876276151729325597395025411576949210656776991790716422187319882854673448679182318588605044682386122271748927284925965059303903595818643708078301878975340404338003079704653757938211674417337333946125715751666184545383148026477270686065119758940265584055852116846277325089755535198832155102589353773849786278302895777259744797906864277983900027005844697559963578158822169723589067647031439005069463775132743838249465110772202563956594936216498465821541181987649333361674722376041373287605257623149921113271736139535295331969251002026328453745919673795075131306021165390583432925451275701197346583904987244346825096553880976939546319963636380204994950372958918629834825311679908776032890406466160332968756878325476157365444224920672906742680456632663698587268091437363521089539573170089883616477612430999011984833322928625439328316731953620632384490890780004800991901049640301712286606323695135288501625424830407720235620870244531187267483606107664991757278016088594547790371081667151483525271574578162016286396837046520998586559850939676178685682324173859566426153773809405796815089194760255303883728557678707192376903259178556395594502828754769386255277153533847080314775619058429664054495414627408506659612601677384615454244970746859551203273800427285680130066684916628953624597548678852882951070887274281337743843800758098028246627854801514073750398804376267229868261012733752356858070953198384399199633073070768835183505464307586179003054219519370942765358434630567987589914229152412916741162564597830272941155403882661911102420440364847314331154862292189655785804150197251293185833164268854993412094842103295075133145771142829638785316846487849317999184170968634354651730089837979933095995504013007654541762621374783535446612091737471148028355692274951702129679933185504478350720880763943265939009053729124766068319540386475141621964464417441399347350162190129611393750036793068821875741781493704414321697836524061325536052179261685920993191183929128466059421319742558899166278241986198416702316730045210594227414652009409644676235102053696467290490627084885997033893182519547219184891469174824994955809848061935378901886365983242123183171635015379688772423395362955730022698639486605633679028867114405211976159171765766719630560996934528496086710770369536927354373211785559923315361636212727622391525682735332666643031126839168599527506320307196137998722743464685349846900593955884864249975594643206434459778709782178911254876448382622671259397544333833362573433398897938465223617323786049949670520933878066651637270196155282257830357626338328891281011924080074512801396953059291598181632598126682658729600385274599097863548859718021695951504554180740401028137498063875492687500908578757002450907038174034364501518205056821844413243423503383834100156861518030890982027495102417817374990911532635753699665439061096612865793325689027064273099854388422622831416082794169192053314057119950165674620217430391742527230741011469216720788070502981711619962784587037194019252820851939899880749748536224802528871794607021479574763983939340919550474980325123785697281132022169885958970862064341383452828633353292026413447405881467670569080433331545773050660098453659736780674158913380023730061559392960501290530519123798355238606811727540963817381342835430160375427100809062416341068509683306429328348017359047651274809760791734921712926548631462156365271884666758568554285430060117811472211104144711014903933935996816573555094205193266471757793082580803767606099388435449459981045605577244720181943072163698389778193254865672606221453553138773590424659406911423170758222854577364810556310388683832842358256076811332530429306207860249921728019807248555866173035283270901908057077331420114033224131457323197913344413856697423029803095790871500048145479315945033205765342579719813251128092492469327428332384655956853641553230923941135237078630858800954275537656025967232267289055632556045641843409370007260102529390471599757608084653170200168136564041028959015541830528107354995180717430243684737190578117901872277962657882963948044227569971300694579993212623549514500144288085802687763674898668014141063869979828791352349687378314050611290520825409914217457973448084833194832277154916333695735846874466970463350477082049721265050356575571157664417737242172072581270490160862843557746168883873484289064014119054706055886321657931803867202776432656569076955520285872450274353475220384502051157674246700159978973319228140003566768072016624379233588259000489949249740685681458321103532139829747002637674699765528632316003962290404311560449279612913043490094493156963373355390673523921748514167100469142601741835421490689693005047573074113390974443942097350892245513963404689968940891813298196669059026025097204211891636137420400620590793554052754972618415314248960733046661702406068837420341720497473617625857390382583777437889264545867424232334410240835745946659009582695224119867056005971585388066016689366932252737900977853159961709935670296869984543898818566119477019007220133487085779685119948535535296828299780163704124775635992061542177561623781530107326500499337428135803491188641464396881085654259768475632254856592369671339982053167299658122926585012169881030871134932103056273927635915800244631851329413004681923691200704212607268604834727548559803772995148458044304743400105464163721365846462549016267847113956092469122466423520704454235221714813327298912111104281901423748730013992557567050909731212128365491403166802208436353539280607949000896649029699741132730148983545332863930218451010895749310723364504277661930799581848952584220053028288360819948708788653120385400531926539841513061701509614192248156938775973385603718284895849136946665010321939248634496254166506716967031400487132837398705925753969218365785426142572659878937723678869192545389890925284803747374422598454376257438712792680332284642890131370496633709188605042154572634735797941056502780192683120105008903404392743538170537253163040370950808003986945186596875049685520752375479314492331671729842713431694297023397472616530046106965732014771495766535617315979724589117766662081878245610426946286782183019473833158637898428522288369734604138691619323096933235762843063949420638096286942487930654555027092149035158128744070772132543178771249638442457477424735704888097344724544734108002606274211997703882017738365974904487619070157213705629494612521708554991505428404829462350071314555944100307698799265576938494065294687841501437298967856841100686723706150038977645923424208221798441148046842696324112017011964241599071903842694657494766972765101658352181342177427065729036923801835366118796258762693349500855124503613016841218061884153042367628155601372428402184155941654597297812721048643069807802158184599692350289530346860332674597531543868590218758136985733171969656464324471956413747284083515310538591611633609865337488346307026025710730464160006565615754737773537038512313803948865180986477978602528713942526092370380943606539093498379169194915859104061310258639563572795796655426752299238058476381650188835884847940726894822418692511048671681557319725816817818895654234847581405197662765692711121168505463605877412816885740387415353465206371186592200175210226040805709933403114107210395446788170465678658723064466181312048985000079732895592969503148265484333762430298155042126562965311787401372430958049628094204100866750049450828705081910763228505968080219071988486569066488924578850553204559106329080809277945944781313827896406989468854101927196186869512407964499579357880776447821699124540249328654721591294484272075315057056830348530228732252248348541504694090628613982319904816899393247799419219469535485559101134348662673613122831223954199571931705107706534372162168633330705965861710041489138281302308773100852096354896495191045271807160607778824676215161561811270896664055871514268080609035741189630149688990941508497634384764650708079761547015167422776385135797703068656260229722451944573849098457014967198918689828822888958458645262209759562228584687037298851133074698970778411441509243991878482397107156593459240308787084374312010541073599443121293710543942724670131270512495908238592104447414677500565477243192419267613012101979829992324070857610370477790474482680292538590847538748214296146875320695068618573900907444152552687378295265747887021518710207658574950212327482072325809711348001542146488103291825932676229909144224956457665921561853629132579747954478634640788056561476317634011169456277602089312624638553492787987154632434175237217965367269557731475743636165662883730861835699504349457993931756335728935524772420158520312821089234176058793500676826184296323334840203744532152016539736692556377408426004312491421735669908051238048740077114476116042979636573190208746759088922461601224303965034735391053234008649350348661726839088882102605840889818461960433651811542795526024910320823370739488117384309732801046019446798693053403770645113724224318162222592201895001218756963724738638810216705887653826699146012748255860998749607357112937050656188634100729155143021459992163809495849743382098956558068926938732463804816790350812364523327710846404718181144333750536607158574335951962988309555382586694654733061588538945507501830012817685214685201874299879253975590919170494636612821605650837568755421109197459917894512697998481390883833595334940168412014519730504567888870487096679718733131204791401780481971280316790027368873829084588298717064845469400412186575360153713845760683490116686635962048287909042676701408271336492409692734418367688147782875606939097490699302615247311637310589627161717786714264739116505271253321281860850426634785568564742268708939032431972900324748783964986148843754621539317705446564581933347168305825084191207272851500753117141739282144128285544610041868583637474685056277005670831198232068708584129989949922510375596281500875261769283668227495877754939575113994508936483981787866441683142032923899322799007152130693514699094022465468673918397015415144808991741985832596855402396562669404928973730527553556766430847928598969602530996936506053200455565756148288434682173492813276939224706881379203083927889151790055928078405148945524788670259130510452179867600214039327647222595625923966610011247297529746679764854833955572344502708411028377856472530520200995519583591572178098962969583620418288498219837220431091598727797318371427502642824026494362495385753089311758838645161479443667523710187272987796316754562729096919617732775424240195074049673563798816474004406303908498585462078731538742700010479525203794888958423721951641498209616683551247762683023795941375147879802788196287821456552627350622788295047530011774237150844750772267466604331740548122670690085903724148115733277053707521040988102960344033060063297572300813400282701971299321129433975429354560739256543866460135307749980290095148438512813750131177024966578033092549687343097362703370131431481003017393894205172386577673806056435999851082379196302750100866125354301618896197515503206668053562525064609957174101447352537126358557014858616298104164001114675616948956861928514214515448703451339731149764102474147323343449473470636643183189355498877184676707078925920325746067524663610966984337786162125278872169067304029610221152186692894556890613260593068360511012307546863142810066324553026828597100132452695442623752379729281411814498034560952126152062093959313811025455700488109199805599654361689052241305361420379216671857188796171599073857330631328105756077992212516038590907132951452330701668849512568804372242737036356479157376234534264008884723904217334616424723447594305476427535673337700947830494337508810671455890109155080242971536139566116162405946612995092285269739838707184826918983355540821339248896079826116604530061523078188017084907510891155128697546092922920689861869389071506890402298502731312835799722041497251307394503487623760781512757499057955491214911208854052170323795857163265254988637387913062632711018403711456737678263706478978262604255135926958613764326275349202240947020040453552311180966289019003643721870298378904193466771583766085731776998608071180417443192137149526901881051209251174422574726418553211857134595864093362009871910672055759483732931366405910895320021252234490545509024739918485177934882317218690298837761629835657708727536635218140460826491853007937308601580007258438771429606425720005082334420174338133411796605872512253788729892487539778684624943687063251087254902638197133606863071263308277615171696552472649294065717473633770500955966449236504040534936145190204202066247301740076165723417465388624861505634487007200128856060828549320910313253782633162930824415890756780739457949139289839170156184799458582216204640851690188854918963539376206807035677827701995901011136302223400458479859783993659107074062428941962245299983477254531078710033023803707638347970963568418755036412188414183246823963846790476223906534965578776688615355128835844086814785253661882152430149014078468579681523919656260960716903945106938062766779020806358342173349701987748150198347281410439690168714230892146952821321047616586132568576959135883298828780714739105445436999569817815665916234796303311600706413103854572690594716434086937497707833559039500065087496563695663186484157395247708096988280330461121879505369319136600614048110277681852889245309005112418752604956466863368755632796196782678604960553380376407841834297436712489145096108354669539515886648083151599752712625413964659801004871435279920035460832706485382589304852360411767895085160416484807583295854513034977887090065176880192885861478922392012052810864067282796992716682058354696526586501489747262301588772264760822519367832316105781309714675914818685252447692754893022006729018759241785329012047689342718413123243004787849272526066036597717925021634576074141497310351220786603182803122960627839386342351355431742709717173558487974151786926523901507782468337762161495590826255139362201345429357816187984401667563714708899248291486372464509182645205633125315272673485118641843396507272907035602708464664306525807535873032387242262406260935874129263474253268436027479779222719273997055898225326868150718275105551604810828326705048601787400453866111270114566736738198009618628857777375423703410601763482746982766032910801771186183280811797642679902249142126090695599123157302023443226922466821217449651583107850664643719470647490963031003196462716741325549719895793964817549759057399660731235785161202271230063072669244448889724259670807916908879172858667833810949679496869941347794094680097128043281439703044767329449475210530079235683310321707236242375438660361387471047050370692487256409880631976203145641448852685830355766536556485919388003756948832672265655820245773987874500601502487873473593523505044466937052219504130318054622696405342803124040997438842374276814233965348570892920088424839268029373091848857225470527407662400583794311207663716859326386972838274411553937168234644029558357191576503570324159051649118532719111621735208085532560811919637350196321705447836177968344164457979376399591431655989375455050865433896473218806431600413162307269298376816427149584917630402996429311571723419318934177304067413045844395898364781184301822648118107496643777865434223895282624848188225923059364658806695945030510193300460607534850640055328036843626888078830239974701504939773779238745260100754025249646976033418046581046368772792110154226293605576865438400719936591557490995045132137962532977298420011852339317455179313051823735191673192142851500734602371044603063858469065307581029998098825458139518144402873714563636220924746667880181974713979344068757024873639916067288600397817074194885328720881344121935316234508491487936874805869095453483879378520276652331853121460784340618863288858114623258897035115914868285470762350125663505417774870787750821514069517536117559485261584168238275852620895411369753363307051875509660878834953477579820231815046933276108671813974727561947687957728011735365553142518696743210940763619741424471209725860086945248843300075677689122033255355076158330820988698014361952825591257321362330167532224603161230975609935623710930925298009042476581862438555748816563387517778294918181819603858957857498067207859412262338187281012178323288531937279960997429373943038899723003614754863099605658311949300386930398548558181024581378237913886164893261234465643840878944700192742147538474845158980490587042463262542165626559468930263650147507849203013813343963565553685389716156522023681508736987009932088306940655754633723089594895224548305866177897269999944678801681596100433153811061176643437281154396338334834576876680762023867061585421076371364261685229136192385112577941203002945896213000286924305535248054609435009181371941147608659790998736054047495835645732371103079763876580144826656390718336052593691989767040223189882208934117772071980932117797721010333867551861580393960886029694274619776830273543460946147253137687531815192291869023767292097798031813084350361411481514552624190728354503228568482734629265592491055377277439303669542375645524687536740479279333879799726818357903962567025878034978231931543531065225092678267012610638566475920209411016806750109452218277949766858383718295860197485771746238405961428143311836641377978968232212499782026320906392490111636679160779666292686891504501425756895869981408202984478089302171129851476986475016180980668551333780371328866917563595286666653109402004684168538332009811574610441818275972335543742172658323738449389820681484724968676970750786492658375463613555236366520929069768594295724732534358696156271516140412196470190558095649078281260454599304744562744894741903520218819397490680821072166593486915650458905168236361201538697666044155087785173115984649917312377768534606721360140065581392682063633275656455348259260103790675278774086957376979092599246568605991706888956287994931649621642447866879750445036245509606083750553332985764085022430884259303091414401590898440604292095052568498848641421524595230511589500204538925402721669084283016918929485072399083729159430475267990109042838529385540577161167394582467273234407823552221308326565250615535908093849856259203347348473024488937499508039290164999103592688933511768761549124526278982379219444479166226086989032547140095626836169279756437681669245915045623303033850974667227800393220135507357346901324575898482683739666962100443698104546203743986992249378383635553052523819224686156678771969499968163900296139072300790387444455384747684098329208809875547791772036069199853855409509906328229773792212217294374955211439666336818044465884650509851601016690542101242706971360370776498738835640770113510999238267026876653960104807805813460161247347273096579603457300451745963402016022329689705887272816409164685929021600897298853208331836378713950063187075168930163059189329282903238400711637034587995368391533056690764495258655677359845909321626858994076452558058806953018622135332709985124018297000082968496042367918643564247993607474790021553464907869782234560808925046474711970017564952374611645861671265918247452139418638686514925843510308080187207609461301110427082027694770125698554105009014907546813302965652415754704490202031548457502035056565810953386133794090787996804211758200608775787583592171745110360416480500706061486159148432355823510888029637180963357184678021550518039415324221032884224876118950970127778521475613686841454465094867653277412960051737928270394720668293733974698475794874223581951829342481421263930480343806897579777536466040049966762927433748902445766892588701692832516897607260490814897116423181715585372764828271792269576335145840478897649218118198145596410479165735848680251555561883037094146951836884233285759519747036896000466370507929635794209513427228240107925492436902541935415059096216629593115604164806984377718139445783038337655123886368199617375574705663330192776561858021976034608260120893128371073468965159471428847634923953961987435271827814416716438817516277007665336322860238580094154836472689839892757751742737152989609831671217024193525093394079183437342528373926761341199572860901929529490624013866634744834614107082595419611405196661931444983208328613068710058894060791771292569002713545109185561272781662813294429261084151059783575455611888612784089932103056924259208733704509167368700144202718767631413670758096941252526356215217943866441687254591765675979449961478570142472095754947862464128642012307088102692574840469453009912992482824068701434548592585705273297587469902588737298395585271222908374810729274797241554078172699935294796413454608640350141244558667835469398833369904467184126808306768985494635799388605913444621144504371614346576183281898476081334022717421661365671361365707755884718957781420925665189194318630212729973546893082072031931028767975775440584729924089608667043211449156995441780636643423987088539817785856835741608384314308227284432271799033287340006428784984440258668908139992716900211572729272287452448017990141692842679218639227617551874577032264958368134940723969279602101692811895537478501856775418109629409936328881826038468999223269397596494840594322880809992940838657495895034697647158561674581792405046349366574382835312782947817671389085117879229709705652428509174898844281794864108626361925684264960802882258048682158026593550568834973337693085820093591226313693632219355588925501634736801042130800832477083162336999365267195500777942987965012430428216756449542179703155351058720139336437608808001214918207884516718447413175485941296683590202919299618007230343830978457905683374978028704191649562347619464389933804219122625556977459902704450133313362041099531530273018568627508103959283245039405958183128190984855247385805407331331028655059114236198387328575738421253210504649867966830215238051549087817869566070691884314067731759043334783342988769896845848208155806315992065724417298814190817003577720961039179182243689707683373962769449440419250089083294799706668212300590091432642962643223564427389334055482749204425372693697872465088208820966808328968165047761931766671171957558611983147790831133042662769615500557382400711381019181017495049537530900152270200087000550183623181119285903397719681386020475824861518019858534560387712663549660772708954079541942183581554018269543348471760987883814925616203418409771929115976289668510800645307620168918803747031698254777521983692134401787406106421409588076907184591053766823135730499679768304256322077644436020134355135457800083709375974141388853079066675567776626187676074074002428229049063055151443743954411180970185324220077125350105976029839491370160016710733736310275017674523564503594435518329883893647095747781717277773093645393787908730083053536348617437576520448677539124566472289197542368724068659124478352173460596076367224029389171762149289818719023826731485368739254027820417236097629300139837607221432574857287213654518912529861694285540635476011072335961663235143170896779725203439821832199138152075715193000501363682065261907336300817714683170445418562164440086970977016760387781414709734319717081672640116269132436483004443458590441541841908425591021115851441922710528568610866754450634252448399208899180326350803507176586713735868742589746722163012071938304508445055873048861525553222497769382782506892636849578251599644434192593314190923495711340906206736354770027040253057339447969318461575039415878197964626154791926047525580689501352683911630203279456595909740326809307214290741777994694195850589757953957565442191129044616312702646941408426991392631545459464542803653247431019934003259886483360546747619575309879600817760730207745688799433828117694780456908619613142471354549005459842092754168920109172428498933999396594153984180798754495038776351868768313838348399594531538127359359509583410816125349194064794256094099917054433026216376092704769719850318209785133496875990092973015449750124218302741873286371313067023004590294440128429027771967528166408681879703732077266698766333660270931740420504600079891678476055213624128250295878089343683995312211677061882613689285068808283532327122790466209174667690357559365572269912493629544078130211798422400928869228342191016233721177678920027329170965063855706935029393386597394243967965979977787274219702963766283975345576718156430222192078821929783459061793675535575569947282745745261971424775368086780783780071087680886010639881790415168452171935746992725401095728597086674161951371307509656170228893618012136802223364587802520715591365974722336855781050198297902780902354032387439591738235474844768800075121270396621528542587566693348648689795406270487425154322558898076423890687506232895941185704689499865528365388194099973809430388095367754932041310354986672842724285424866731844759102207053006476604043956054074940097822476300444906414010321495301795244503134004745833193597352196789162467064403899949538336117562251512879643491655647058589652585022945645427624456398930392846932857969270410548567728789741055671550315491177182175672230246052794408321420565540217375329689151317316939029797724799065348780482114474415106200911003490258931174582874846648272592889983692178123292670385389273480885699984218838361409368640189789361401148258559542733656725693366473710861708867753961808785114668048154331111396207136159039364117872149359913783683867874215948874127983999607953687741438084104885334680200324241814269239333989934105078593613623609531439755722053221650573670691530140167062398525244925126190157337061048988181769439541895096619345638982838142856468496257656312291893451265888166482334719240623874250092970422054576328413264573139838308499620019736966435795411122326814647793010618246133157944551406893179180167330692995872175889704070273295053264765127336880786404698712033769592329809417331200370006024414513832363119803155646174027589230980462580741512512200095645770307610070859734602982591676995466833470595630001197980307131152954354065236292241382859195761497711838678613216394732356973598838152562915516576787740745783587319035441757620258727388117968892108319108463342090391706494386940685272974847928686688473530438045081460167076285054550536103357738569180677229767417761931241253882894315738400984041022420008648018787144562473069977395829589452791020744396132800971326710537555157223497246916596671149059898102755474470491879303661194234326001926228878302618033972396968776599391637111884858921137689467958815568503049720498610080191330128564046251807911173456581114893624988402371944706098408952143415100484988123708081700259686692904693336376872194692331796467926327865518060215933558765640204655276683873169243357556377624335335478162718444821047601661098204016996372197722938016206058657865747090830501541023430157538610098808102635880539567610391222477556361315810124987309346542605880936838577233534565032667113746151757405715042949510740636936160603785127327557424326701588572858197577752343044082148524097080768918666989642508628631228543190068349941972002381112985453163130685063947794505679315596702420172092277235724278978970576928952129288276575012787355326453404890034808021941144481476519549562658477004892922584531742641796091201718623638384838186435709821523722834280864084856145982226444167566853155366668630178043839794418879546146039362230024876324548673658074632125937634894103118156645396668424360185610313167867477494059783373202033389036026737723681839760189090134560215175260211019202287242237964837810884782114381080847779772278767245923396724008895465297936648096421996189184709969284124777552410453233620704152644217225348324427482568650866255562916221469255294022545185439871710261934665040427623253439224415586340938908992344264744453037888017348176497695575389778686253362044834343005507497065872785034432817973823401365021224501104775787342363377270378590324283160299724401217847864074317300855527964662403146366394546797933437977001588132845339686874495907419127104993150540929481083192036172956192172480968120226053373563404593942204707665121317904790801880116775685591595361700293656887007559660420159445074605620941258434482924370072029414579272437042133091134889247030233794521518294980460541275124348833949289598964472742533954812385891384884632308551371709466330943121934027392657081424409908656393777120895922028182040746816146367081890719869240560912116523836226266979270610230819397137763140970759040245458519987891008472798175697776589415846158789277097861073696935105510742573719014390319261422661496087036036339690436769068243634698981281585521697704664489298682132794018102663732568920396117021453604494208998888709849556281103141707947437756483568775336292690779383387110096004082192499202555779680786753969883107494578117920952828670302112258509246591341383909277439798958693072606936881033772237167992335355393125511669775831119693858673767814061634602663378988958158841669130947411276132766106978239120307221436857563232863418861418939851563373366740567258590684502533525067065185245932690443285679418091948899287389478355362917925574939398163731662607502579999070685565269106753638328719579191225559050374343092152546811646280757878298961725310861120400965910354952592037248597421118493849772713797500246793954895464542687092465281864966168587069377993858747885889176431439532759818545536335512451079961582010125876939249262001834635950168338534394926247736082939565885582919474020550661350256902519475598828597399107939231785071703707468398345343759858813023158529020100005278979146096020390585353430259558687131721853571312843776190938470075247603082066977725903235543742607891855200198220730987945317739986759490480983558603068785466290329859264289689411492921568234416545614666989334852426064032365370971498628945700610021435734144219980868478147401690647260471208927200938543493151638829008919857802929221711740770068806416435117308164688314291352750251614427729450263955513546123929810783673702389653131413055898535157269860802688624424430811875290886139028444934438948276589601839773859986678285025421323533642873212879920260579347900938893267720275186765428805118936583309245360233665826906873181143859972142180020208533995019927751048403839333611881999515681275652437352541401053176478919094970416670866296136238325206638234076238421629600054255116454914158301551905053945058777420097116232792412348200057177678823275718288846050770313843150221200440956861469769277116734335025651666555118340360599804591103989803317079752010550567056128611833459928174194531910539632499374079006434248160926165615553922468837027580191020518834149171934930038526078615906554504918501832670661487687881006820695380965692658433732253386304132349996445076605340908993458578365594775483700956012408038327700031563522296298661602202792609936027552164861353226579803936345243338544042459065936354146474048458269157125177589746301148655112215593827543554317457400773601325209108841267255556082060197967249175996615226376375852938471136846175204547310716704510681252090904780047649115419357980785075874539611778850673455784387844702204314981802350692471659954443415448867762047711160068440087784279236228263244383382716847637629697555936391223843092550742816263501860100250179802695901258093455947685586165713674114638639110074986591891739064493033981022274750799508515123340939079209520369284592814419284410909716545303266662376492604919412163007495158886929731687072606159554993301090486425880086038081917295282975759609507728409835049782432336613439559097402042116051069862724653217766436044066259833634970148597218990630979267863742987305358921690279752627950991271576643578221551568840592037236194382890603399476445752908513818568086397469975310693684385169661405240073716241920164683201798269671207523854079469426091048603508470988603137462201076707001439959729430835112057287214669295588012212873444664344490498836605761235155077813181045556034003091031495792004222917196925554526637806724280547951339110211327774332463174944182316160398001651624556057336272366875685590420535657757012656185561325781590916800356033308762661662216386890328107556870698152915533723720380131982725064118728376393219689783335099803151597572605517488258659304496873219621564146849931814787555157436105552555943370026314500274856451132028518309557700565158793125488690101428210074697909259933443577175823370050076864798672906875648053875242996202648671687050532675017235306138302046072320508904540907427889352488549598183400068422954297478924119530040946328517160020846455323449333792958761985114570689275210378361071864108288718079216545352205113298336238110617669821267777605241422116254576201747070359243948254562239409541798136271161086260553783035081163616457087816371369570122947416099386255517311121712353876064802843121090627087045970810092440346486173912202859068637492276927967771437341182574048017257101067564300011061620961544375866593078048580149573102521174283243717295614928319536795179197611432168481294583819060165947531788928185052529386086963806025177565382115778369974939642656541184023186739300643590375104760893017421254528070836937090174195412068226591149524886156621780384562659799538451004617129418021730067470113462458459412948406235946220488144611488629811987596448339076474026567531164381294457299624114090677881682582470993201831863763921205541018621053273468801535305781027154421878015004919930152848164652798677462189675072549936141617508907312597718430417744113273937672867228756397083000661433646950873975515617168882244366197272865652247609781207176912862874480104604891597145992584298082532418867364995003025147073424860777104493020635640441851714467527181764967417703061899586066315837640585512827655741586940877339886325789383653991497968637248757960462380920314428125039782528363591066296063994635680931373356496416653985818790200265481757346403395926317412287504396889227520037081226286553334689284613451679648016204882694666848194785412322098907336686300271873711664511311889020093055505583438275825042714874987243526681311059852231749141485354400939834333615803002686884431203347563985200894866259000810910616055006852705878940900326176104079723078671879574741757533564060240211818836749342346300536206141856499670464545139876751756217176481787877860592364462856234131922105442008413474460078159042723016884618775126971101068130380079390927511057746754696096034576126529328806219246911359632358529788851993204272022940451326317490564728421826499339248165948715522948695508386061562775546396312901457933921335806015090963238601110867741959672391992300555264784836872507242459331933165022895741784798395629422384372965486962501319868156709356981038493447219237679331628980912822490032688598979295738938309907487229033663242364677328532427381372111238625716267281252983319899613432996472124827275571250251018080085617890893894834507949582122403374125391722800927162907466536995802824461127302466052860103299918619175090493135011359788137811017777692284873756757865185429339992123550006226723315190184606357182276595302764539111031948355162046885384416640986842012073534979324317738174579507314660801605074690506490523754867421852757842855275467479679890519731786163952244728124843247926113697375897753407785118733149740800281168399061369405773639212701857673807646213727817094486387488297649064232190509464889739861039771749325007051288675051888814935768238890600186160083122135946773979718138449758770713262832420025105284560257260890151571064720198985714193035312702718813882250567532458129653547185463378344144339269744889794222069427303507225642649844764420994050361792700939954085859241489614286829876805435113267532564197963092371400240176870595407339444755504068177991969214047494835842018244070267992589584841228259806889296463572938279252510469677556969491927120221553436260941770374855116659804939934316893394375643129855424866306326095591511962759458073328553062430998504676632535536071430449451952174003312685205941431576079559062460462856753829200630445635685294264503046583797863314621266453906504631254647283722440527576252447105528178042645667775929608660914086003765294083327281009327429154413803169028246248882043883457524386301342949871621184716459905961473752338720864599961238455120741877211541916879708205341571422665306153090192472231248219427575758798325485560140856212194555501421128123891360679798796168664095539330265940958320921487929524578784583431821001602842249356592531724966289230963257151190859866395563172021042138981837471685003570192202262099432898324343643550213706482981686540293588388750151961725174671459494697060908899840019678380489739709813879412561555993445100182835222588290284031138583778284386161731987395200571634305176001480041438443936913179994798661069161798693922857306889439640430405232798074884109493087802607879381821522456134754793062324771294647829249547622719981595142445505620715129951188483644446466848043913157484786696338764007005443109088516733453711496727546969846704463349518293590857279199460865304743019900401253216873161962778926937641589438615008421882332826628078340893982472181035487453256115114968713431095862798136740915164553009341353523649004766999990628876341173747936299767725538516763807226321862446531973780834954817167449919263984141870796595129222673130338698177181269468890382147455400401638325982568915174259028297645099752616146821861103009082451296828670947919491674642148236129774073504171064797773369976104228100632497158731047857665329408357938458385794652064796862299059558539749355738602961322906932802750272889206746490101623561594854499799361038317920260442886554418092383969840411942977708568311822587169196158292893342950977743433228011908049453420121944337203677079091532639124597648588826638852133005797515740903960637998617450656045285661573788393440608898300545589684918340664173807761932206478767576845647352609590137421099668948715575675406713535231118055327967729177875847826134313226777652710541143504465919040393969469502760249378623216457871216555728030197914724889544866821502718425495329764144890635723696924552317435547733402058904711797841880716623621609624309536018222152680710634832359752835804716608494280495581447653900730033799551595896339252109896803714404166255438525284990561438423739807532878767898385889218704944247397655505961315557236385538292339149850285166985130464244480468809033780973585753664707051544526700482580874703549771893425504058600094927592888358166166584829899369228296838900526907841091205022522185013823282708265658294536040612132526955265508828034680766015340467426262213157659078667536049293920143174130376969678829609177426044976819809251688679766545716057484287412065501889481518550757997219474211866740510377154686025430972728731335518164722599831972229785468081784870776570967857729755114728582043240400903145148907859149198460800060164429359580600212128296552792912519680751026417471803499519992250919528230494331273534109075034218612864864696339410933406107623750866778565503450008522807403256223342596901472764470550083633568208463673327616315772890699440270556221325309165780443494342283130116221167272420980902206070434190996602751581392386483062097455065601670946715989138971264452356121962907283326827546580478910367850018484980577080946785525417566943720427170065447813199033880433855566578384687915215290760281241472627158622845610889527718286067152892247659880942662213452474895769534007229192305912721362704975236448726539982525592682685101021681880431078859279520547405332966255341534064480846213832916515429198566001667157063635763912420934830629522665750431130075667578556043177832613786581024253293586573988656779635040802766361568606879066487435261709870863527754131936135372832114281707642778884714285924316957724579195291263277149801989140619789237519991737855207557765905029953974327943572188633030628164748855690895295893985778027834880997107851937624503595582394862340308549408201885001369019019273654862766985192090448835402492529097376211312220360288790487823849782544206786313546608167264345872305587496450409937123394585839971880635429069102633553289975418840212545081888945244369512308526737642079254081411067459621222555929893287821678467170468030941808036177017159297100179111132841232469912759118342806787673023462688977552699616645382252417355938048882114301886996124530910551243884910088387409205494862257660954117027586360073023742906718906643863671845441155675889495279578653594348688325189366065965339878495542256844478755622240441469336281626612727680043140614829085486988553589834542507805836476411134266093781401105263646649055283429577644684666467560616370736250318584266697220123872429937684756532393233326797210526773813204914431165705345583890220811958380599411732082810315412677305147426549157487919411466500612027190239199135412553644096253062255884564885604424681297556921124617992049440302505170074402511819796915097525811907804939469858439036857458944387225477726042922044220519387429654735613427490111761547856082600807153295962655626114439211110509029227029688413201107407466197501984040451884894625897965082132862783721440431529135125312953094837774420031147553348548773458838773945527835912233439716545221385086728257703090040547758189608280513562385553830964730353656716767367303928137158941357475351694792607128549627759317397614184211094115815971792143778803673163047838533652474174096333319776611573333708264841719719941044584369423361950151379869059346063846274810061259688664896196563964613632086878780944545180014386906854696561701674737045768068837417647757966363463619212331798136385825965633065865518564143762318303370061166000723276815031068654841807722767241727210252863787240228765875840531922894959537014011014260834244735334535625439572631480481645560891304691393297985848734116839180899557378258856779831947821510529002551600003774424791402762323832151129153071836802655380573047227414650594494424975420374945873239988015210160187395074630708960203863880944929134480479423476037800491525133749957860429585368055613633485982707143085732453888689337413030882765752718486462887634747575654818609348162283641118681719324981155163387482428207267877188661484459900770774025125255577401573844320626502188021891442250647999829993607664808169736607824349251161939526616112254044841885338481952433313150580872136925249016854252310676717866842494200070658906959624369311119542688289811733608786933531751635580508220600896039478310906808141446448497785427797746144263166525861218548275422409836782422616456241605189077706365776874252394345360069581839719329220617794646380855299858955386092170506427111305331238977455332756228622238029329344516741283884466622106728094639364904897615099410082580596615883605695716243489858783124100171691165318498452093775866981586883910777702592022306186856475457056392586392688718405188224110020760066558181940170016335199135763392303948436363802718637256246958749036960421952367874313386767953022521468985410627604256290647707884384748739002228410875433719826553491370726319266630571271802340862030655270732737402038703524052731152148543931459488356606202895908617646635879284314221422490930635175185465569942565011299766668831488462934948569591400899767312880106144621978780616407390345854745145376745571359353292895401002069576919308154389030815863571607447940781837737275775006563886188031324637698709887852772603088419844525631753567705316400646302569879727501902344755468255141938988844262754539486242940750068754472809652280064819444876179825930977292640859111001193359015059761044667682567381747637085499775183509449560494197222820078106967805337032502339918881169426526698686140822117978765378909052411783420576138875024915477396745429940612345814124552869897091677233944925459169404437407495617167288423869097350051995882905405568968632361710050181745759184017139413059410227184082788650486764110726761266811095002183502384273510287545201283960359283998806827484309941810292918460271538282403042009468629115457940783121559169602507021144657806159133146829990909395379464840604293254388192416753331870551053053944359348252625431410841783402890664785424697506471703546180184737904674844809979644024560445929457349676624473469179821854891566151708506350733446143406148228961656578161691280193314331542529225876856607346187188075462098803782058654553003612612944434550607212682270398403485411193929065212642983211336233752475889719850541928139573576232503069422240312695703385671756901418844135422761190205306680626302498188768204210589739681513417207189558748017404019729820053860670207095919359061467074880451389528282316210772241671753084652181449301433707612407805713616061250720177648614096184152975976010938854565493450161942997486625174712437095345962800416542832234083265715430798984835277235680711937651108824323562264465945183201093656423382152234631438839051146998457629765129610703268037880806077595558803313855771857105257548093985931861325753593777482668096792007973647555426079713626022458355960259427390067561065611125002661731572015022848715555148547907266343614546327089869164764508033058487621768055570334073178737424629915948669936115826239234844357735254317961013602758758031860238124815026635904711730716317206401399788886136361858643822412789158466200635059330949236668036428012600590005498288404722155728477632559334146168043612304931598651722076742383505254100609135973882942437097017535951107044497626869894894522917079802834562850078025118742129806457181147368904831836432787746714259989725039484553152649963329298715164926097827036804907387217503979283064753044467245242041460921552786355685619009199159843800111303359192032717523850591246947297250413994976026328009726773978485928464189306109292465993885149293775085725914139352180323731962425640420298673119254701358925405041479286982181471489005049356635848479266089168657844820093685586843951900730426099911426479495819687273183496390787069078527171536746868791403828382431224227515509557248128786069589399682890745058098052441073971956907332467724700307463390546813901620473055972869988244804902956866602157974318536604609561601844874791296424179803434667949544655831972474186968860618274130970773493947618311779038406647412039329036568872549820398853280151738356356165403729301722415895256227187912141379302709254643774744815481914766573749018243189019700144685445397643738599666425077822152261254728281129845977499238975867769170048409416687733212810883720354984268750688841255977391283483770953114378999861098038886277590985755705677601023357939420444294051933547094559873737421516364510012589592633391256400017551977696264597020830235770767777262777979959457294777201259723722781383654730622401623771595355207377709792319448962357315066318711024079312591604295064025984302912976842013471211452585615949713581521917899893474335547226015260422682572872130226354567350049053410008595367833601864753760812694647539069060460304379680694285327850390916510111204773312627325683883037892835531188124926137631396585613233119114252776194722030849922148154881955733999814095481635240551969129951981181551521947586304080658538209804253247158701445086002223102854491668516031872606947452857238154732178005900408998926689851099904155498028862334890531017275742440143670036039409722158582484046030162395878422213144431317262181066819142391295273955619462934247463659330007081522983266816993958768505849131367109158391634760385386447668124412840131860715706293316705046483320180037128435052217978928582324166725763746260809027464637531604196224252182760924541859659437815325470175714154922248814452892458267674847150803460817950928138244289155669679232067054435317637148558295567692562635241808038907428718401241007862505098043441765984707915783152631679997916599190935714141984076165839301218607117736014304609998467990823713092302439379592513790907758419744356508833317042884606220621659187127353137375340538587484205430408026600428964489332765528044755195795091991058494698222262838717714984303332382602074319230967220104853187160800026758892951144288734893440170351301018742918173999927197857552686463392687659147001680261863023823439203842121760707091370342301722610533058977364857070169378391381759450974147591077851936158633786903216165805379758095563647200435035025265174889937172243151622060763010711279077412981236141687113487907966294953218189413126318398730037076646468694884479169791428278604239195467439258010353303956019692197798797746069641864888407571813411326370164498297924081369160865407069877954545146262693842626621951865429620575698432744680262225132869652281032998278014707596500538315734533402716338079931009239373997204696163013430622348460246652045669829114412749809353891282794006530885884575502554391168572767273768831459300966771492583882623239626237706007254609861579534497902295335949134319886121133092434801119396344762680417645781488677461620333667071181906393708853601239536774308987361194270362096279061069140885689450021751846145114012547316172855819092449190646054546564038377682830010608445273541642025865107669864519604837028458309017423889350872923399019746485369202277300312983720962491533040836004882366027817680667332374040852755008665876320265174942592922858917097808707014251757771296972415386527368658321474500782496099281698116709586403004875934792094750929963715826568118517670032335009174023715773177717692228501271551095451160145418459669073282543342560115002902023416747979459803852664464281334865205653781850175971855831194876250300508559160194034475954024123375341800510169472722343986658991901029555331708852957701117561142527519546389189140103748834699108322989271683771698899220695335727909007211609676812828288985377173722650422768575912135979303244914032188645131653037898463965536619876274589687406419389490403194194002970776404329609801822116340479642718790921204928735733203544602170563496370821358578358738901185066776710289020129451130938138595231444116047203262097656391722014550139462022526429030209146033032687512757977134845401398229631102943156394573703169365535380453817265694962495700709719345447125121560934512801335666608989568936054652110051444112037358664879857235399704298707880591484015922196850944154340968056279770869876814990799356080639264679940576941729010849218555524681056243784990392083142420479078185892378797826531757452860069260620149260017122691474639201868079191625638607655358695085049878479727877037228534105634901722349180339319102325068174605787215638755124348666035406403881384173425646562864222431341037543161264769835004346325975833019560304814099448202095042666431568110107282136959348374562223880799056745716992013797834485565935179977687684332146076200555854841019033090644676588974390840668700024599355372561847502123673683036741749031015733604623329823664247616317010277141068688165208337811536326488732197271422612578012197605820502597474772978461748440582106757927496173120377314016485188912015107306611329836613224865562862852083780001643107500331848978950741521315400645853287254392732123895229860740822217192976030347206075606058999955607675335807565079758941968258918917155232463017271189372761625965864853842471042748717088419323507707787765093255050972551357657599870844396578456167298657669854109057689025034397046065643746056665722540652523293649276416335823666913956272977285004628296892422901721747554073543498142217916095829773288428992655377113861878103729756142496879728407088952427453538223733060711932669799723888977001985566299693267586774140801748239374199360040929602580804007922596906080562922928246076638167829288984602000153058163792212490397917455149174381255768903627501635711328190291678430680248451843824961064159292501629671113070508892161882684837583023706361033646960971814693816461705186763324993731579765762623720363326645384441664369233381213063057484037145478960138594318180005290923272374191343293868187894823544715575429044694908534150210877284497820335437953204071044493686262078947096318404117638415225953830448622005206406828723511565428314544586715472362110992421707871201548025042680209737700963930291337590776312736576482707839332859878423183793310646226109603615772876942991184615773063461166835815680818337623236750589354867809179339049035561920864133152122363270294407804301528835531613890346458144875495487588148583829290643486521658465744578269899484499285367132503802857276160924293267964056279614167410138860921466170349770669210986383015280650259667067336775884879101113295012924990294625377835036627091697109527323778051211509353165163063945027178825255520173708101761104265506790375751018773992662035096089658646965263869227506280094697914768977879063072872421918709970686487226727148328976883580716669993112888569214470499892770418458060689962468899748727773784628126194508545761569163115730651423241885389132367873839108235777663546445484381827534316899349791122123312359311784901457579554409574781329082682166376576099189230949243106121563629557540743886386759027764399197702240147637958015004794107182836101367216360461139154769453312951914494997033482081214438137710784489571949360131316721956758686195370580123756489848931664699298690764864013883168828015067471953292523784549022426156215354495649875133782162490345728848344054055613275018766926447676168083736984542066714289716793798146176917088213775026079006473725356017399228513651560077195150476638251843971558538214937747331800107620835871043013947622697300878085185199590044713196947555412388998575382470892249620141291765269301792564708334917248064364531282097158366981935560422801920543655235398362611721501529218864366428491704260103207250218605048962829415784368920960354619616242611151314022823627137514938414105775448379526476700101302170951722063746907546139309926182071514896942504515931659281065184950349215868665115669747287258299513204162945442193003011240614201698433756652016532999730241901371815190158316302569047792522058944326615544467293540348598836065051516107318952679627312777446043693670213868967361970629125704705005971515285733728414465329036094057305498880307088718328386219599714648153693548470190899288422260505800009379568137675324709000630843317198673821368983523254558981659582814654389692428620275385549985300494592759482852738510434068064482851647931621167430995629899089569633592332706736754426055645611366351093978261466203735648601741975790596323706547386426789386628256639871797414664035689125022915812207370609280046040218347482852608298110651815502564057723415894699429692563793216233106173472359658722567511814099376440820502698271236589333223176678498035375939751956913990872841590975266531880513568973413891167738662567627988660402991255747907182671468767671522465750504387660318598469459180730641663889535534560522878544151520709616767764310329129711669078844116509233858232188959944132643168236503233177375397252127067473011757833815777954302685019847757465621684453342222644102121653543255908682178602736673270958985988813405790922529168290204692145041764656271420120359501125932776592338774935533005845931783578618455714953304639101823591983361030236684895083725289477395004423198281432128528878418716850132384175594059201289659365135872062594120058561811864553455736044482964791379255606896698137255887664707628615793343670223272906561687474020585031423615387031096488405335457729429953336661617641671220189291792403149929406190800155585827375218097216395012028140802301386128945897829179797928970594638395860085109363801242805194313671519481099472126952006596107557561417297803565673726559533111850259130958344676425644541367966500874695613528563717225935544006765979784259333039422942975166647937900352484863021760306317820457802276798627078837087034923414914539348184216682634308009859891523759510122924073312620035115496829673416655208841656837186843428562421682506505371092620251288226305337837383780899044421073244149751363208578977756077124580810902008371098381734819703246283996456512974395122709628212572751753004039744469367587946913333579829148008995531478381415909686605657761768171805339772500179005726643356089974132389419844860497374185086555122390305807319577692027939927531161197022349469516850765404178625079260097784431760629639531055433508171734133068459822075854819295858228524832086402002265761630427257766184912485704629434537223301144171088373917737731809903923899076932778806323972055922559199625787809605159436249026782563395221544686890309160515915907566356036800830176246814777304931829365239465903849644258730828812658980191608042222028234248424987450268932918513864499714729559667215973429316029776997560904319084766532761306166950788354762388349109343725518015030998911853058107208256473123115913577857528952935729558595936658189613178661228044618817229256353580495425682340548173489036574459751446396008805504374191527756269618482259193006836343813149692647932861022873256314438425623920687480480307340340528214829268656706510389012529319935420803566698503209506981943024999729972558557859958138053461542365920418584224291891222826548502549300823678035998091932193494949353717935371673033836689214898049336782485275501136710900190478004108321493815259370497551700463879778514859124060292673784642227937550894952390388989584330109831056849008012012445660667592414153836037474491872577670673718173460645966795713502908993641149211514294026148217922194516468135386058342520245425940864396700158821080606636977493292521370388390514686875053640000670916883795067874410165835332153584085600726410500278030691279414139271442998450041610096943413769035717864712726527661708498214264292216487099347460624672592555333423696792482063252661937928664482520045297116162585168958377661488484468666588003949374871037729918359416998181089448499845535089574043791102741266905615870840688985866177622493250125800358193785799267053481963323329391361418331368015647458299868947718181280745965203729937671215166973956049312992746496877758277008071219707032449072029235307821031452424337681230288399997753147960888899908483450514183234387726031282015013255768411198526087790258880515592675294736915382286713212463549360308029363123947587848214566454708050471617976477525222869894458899434613790361309961704089541374899613428253333822543887835472522329021972496960960783385658705912202260935016354339280026771632407751067093068017744225103319474605756204302485347623979094792277898428213928406492829909057499581701385154561451339513325515240895845401202322235326090799340461291496619719253152041490898066621979039371675713006808801778212405190454353681273290506034829133041614433528362169325493008850465752997078491878115296519098800272890324533841426316828945018015691037573575090224797998924917846941409916862951119978940591063977768084193097877797652722116716830075150776670150602557947574816985438863509772262410500429046161631645471610108345376564116555267346349850494230179605052532720792304856760403277912172788254637241690519020162033293171291198440449049649868337212363552807633125369377866259514727815550890857109245394588859697352585084195942986965009572142592958699308312369660178997202428501007262990354767185299517958626273433156726924402634796538098093526959727548210961441270503923874965460414996612764520853554900345527976035355463193616245536295878670185047083791609496799869432114989182189342916354833973798970504010588607742482918607348128800590179898366104497498317136743610583190858617209147268038373284149436650997750829651278165897765273063372628995141895119250870995950737335374513336564102910859611375518522957775221751638088674477976005747861451101649215226290980631040414198984429718260988398528347504237845050758050071077026740001687070816368049946852489776303096333360188835734012098290597044106035589791208931014107527682297154677627352233800155420378093707891559525289542202854434287921768750581870072377452289446943117890837871373097379079675277661505024895672176790465086738449987854312239174764353229532698935576611979997571809278173209917196210790793595379086119686665120893916514115749626310116180972207634427302821615575858475079418231042023432920668823354852569359568656217486345349276409344453625096750412555154087280451205001365236746947931706856499580283329918938045534617208938539712699372470735119028202577890384988691205784415112302505901765365350790703994351520439945087707137283693906010251247626425673718079623020112200889770390105348362104425654223109802529129925091867494045865054859915388470938531582842760004438949437651236178775851379440568767621866572822409569310947977041691575624277142166170838948390914831786460970758472925292927172903818754702673387967453091056254922914554935581502037025214509342519975253455221145619170781485745745724274669449535192301718128115802485126126418402794642445418599342838884242826490124279183199925450768963250196474723260952355542240209109017649657684831429717139047559849096422662526265159219782161342893676171263181490298579207924816055513135105577910286221060685361226264352753138045573313649339219189353902029887977130887694785006583547395126639530377942999896848549301412658128488730504129394670881986329614749204148294319430840401931669396224182996395953236570421915727039412270974924840635532925115068447524797561502665430963128511947014627976198985333953852345881288775507542434967459255842025471024517911347278011123938275265006112727034445897109243581250811166285709009764124278136900829889112216916338223363205137538058583522605016065439611134285341896737561313567812636459965765133321149539664472514415681547409513968539824621036635912507467712654189084303742586603714302275823642680479108876057379951291787441368772513862885642846220870181759218409048429734961524626304824505695622287887224865105320601509175845089805321849069838545039887336644546231161660779851137323894534952863386196613121721379726055124674781234065383091658741815991453004336692977021310653231119620239267372482971786658467498290086900723874181470638108812947288825820775036136458390629645486192891916351099996044485555092499742886961687308799135311861018051651599761191268519437873852121671280776106506112455173696583060716417152511438590792574247288595528283560110868489329013854543937117571231941344825219902811750166416832537087772561602934867075676074992025061988482652120671930403425467340199558150058432212884954679700577006550339089139672130384699922049819483568858631857776759585137742505703818007230491264819425888029127235622457589975438213743369830567491851385974205358895967054335340253936882486963029697250619223406049182586355158101879046204913815440694575836862308238615769098754851541576446611295539033543346314218608558212751589654293523486487226972580980059034775476618411370136296477666607860893886627276193636594108421983583092383552243328201999375941638070429470289455851485235447844362657490470438046311060625812698668782625421700922549448924697061528163296633244586087618200784813515691404912441582330665413148363834085692728383120679658627138162008608998352417291538797428968943571250839656465850276207129767445642224656505698053463071725952414539290696222493342052633237105160191034696794012431033085272738940678126697864799799488449714674479087555379930060984078602807102991525524820239706812715339747201348848049400380666471249321076371711131874850337964856008944419182962484572031903390803174611995681989444654934228841769918684974969318269088180854729425706906807393188588381270665201222762110692477437924463314321257806140512176669360573539577748612790736715304936991817640466144335654162277382707812502698091208627764335920538732408219918478497202546560293545527016656949770400896288383337863318546787726208911205714009028346447802155846352262530324941281507911008056199840710988819372159523159750780945448313215368799859922233872938728056890787956556012085551443559010287064228622093514818204822910154498175324482843334239993752786012326083975581785794975112442632813868537811969944530578229316324156130505051170622009735595096715280351084841635313197166205087122026230298082479497795105401538088521483290987080988915123383050474611361250693818876052404185193769450310586427187589208722589873972893562831129091265104173508558738581480644622067736778437310663834306599404004313396209761386538801792776310408181876902563691251242927514494737632972024006090944564228613142362678735853856572022790244086113491836172560042088373180404420706647046572777287567192510886347038577215189925687098276746099726668882906862536213739186780848654939463331241520401408798017850579789474206697495610322604921591593567523140482086817008644394414955081627187673814080504849966663397569322135567572232752253997897222614542991464354082412952024795137569155540827134567999150245447397897760680857278513824098692740192637752678863382734077256297310326307257748559754825244280052438336959963408519820321279820450315354137046475242904444712956522028681132323552813017000730800726799946637347665176106321860775471874931969200616904362570810893594352273103803984214099899689633420625749275692991940902720384152970587419872496207358325253468241056500059164413321007055810884946246148334200693227461186043577855444255649995129332577950992435060414000473270339260245008984127607187171387097644086806382311831307264820683425512932476902416583274198520025288688805645462685881929345951262358812068497874356298435643497125705808252064218799355908107043608251821403475850073435547928530830057628881606223311070522371105701104122383459470684213092699692915481408762112985795409170189076940812628711205182934800501222035975866558271654457835109630444654059516545298346048826061897992269718039502289242194454735400003522174826812614859711295000292561259162546570331420531214214063494624406852477751095501638967609664871849145068211592001243929366337387111318377664501381423493823064929733968889558114887438571227263858669400885736787795113930287334681594227339370580870401839046209284927184101776673888774342696286595523274745150573760916424578474596033113502015309164186952499718203944374150826585242554411706543461109400085473696705178489471678552812367569124390406823350059950511373569684387258358753973932230512689775777646207982821154591837294291196298981851520790923741198910242081810926573268772972867767113181785981515781865769217695392744784997511747972000951510484205228617675861231151099931890090582042668302453870889773609878189121793481567346479728793674739082079352534046029580745081915992453144630895591231424563678123652851125401372555569294774438184801896899184775966410829287384063327952296353251493738290935642834670508327079363724200855623776329525292688609705083922666298363543904158622896301629349118700432001995227816822783328016331716473806304373194370551176599342229631812023767650650992356346671093050850462789469358502542520214176057203424744700829085360750145850327418936443289013601549795057986600512941656284230473704987930654079317396388711967819015392144410765455561893346706937172016946779061491255699937032684988997103014672692503913271851094662236262764371394525059548092146965364514609502439123544681547751787478014208081026492258191603538279122624292062452817516017816337720689023163207559228235510153896514278938588399057625786883918597960779162809512173694578461948083774462242640888732953454058592834880607096905561305299611686007118940982423704239837400412294556888792965326054975708339258019082696540212520360697310729029718065622062148472586218819431978618012075397003213633504433102551909524695196803293027738857132316458716970624040998841997453466217640158240012681789760418793142723905699667946110950163837843048702006546164127373910289624293756022178404246992048611816694477556527462683710482489148287480794434816326349554424745452966623138404660735457173691156829017786608670275257594304354767972769512407568372766184590770630809679697455741733895084122496473811091257967333452726885873149989271026272694793928071453395368478078879001226957765954087254786667305681476573288276007456633427097881583102300746030752415151189295338609362094790067284312648825704718490688219855113098059260303404461097608920205765196518432163829270551721910785368465164294229582938905449540844387971758699779619377021255247357898184968830392337425327443430144570052470709428432862229959211463809129105328912406737284873133885452962002007421571914596039059290475228977998099203664325987913212949576947586601405138636406796956593326321992179665706021328995215989352831334219479610797947061271547466383502793223193658694081950169686638722615390902267570915923682900808645286076974536346067838062390269179868082484305301084013951109145320260511773697703323993752864106534744536421657886955638358236870658679434325288168384822397119933556030921174878009179986846615622910344997340560102606373938651930476705302188532772816251685580139686673161803378340575689979508018599956272992856007775698097452763544107463101851381596006471656997697900354001960172106741871693411108613404104698401115480242885250599485763287019535023523341793930821523920374867695646798217289186471866774234702921667732945557670039037510262628663598986516899884569855953764641095701932102410462654601172510425440904856291058334897246144463059628935774013393980744620286103782046938603440088687448236464648975656578108208353310812032257417348804475518148142274348665900196461493034539177534396370132381426746103821081385836395323101146539673038026156896870024192113993937195054110007480721182020601059774642822605583276841328530946418574592795314436624026573223583292735319041357870007535994829420765273464569912534653443973857238673289987990810273543556342013661101017744578482410961748134798401248338234683082873054758981510703541956158465020342796591785609601078239405723610297498250729792271529306941509111175026858108595780303006600424074031108204922919596269445182155369387460999657384566010759047924730010218617047055771598008295190545372365932483618589767123450376233181796930885336042036939556948208518808529549046734805858445503747011637103275178232258925723114324080308313720055134895472748074541420673366129932297947351280979054523019502163033327165185284801974270345577512135538012607981118655907612319834479586370173958421253205219246730357408420144934097846179144485474365943578767093587964750077352140145983294377988071018924460395245797668579508949141740273346456074200995207134677570925477242859109287007935358568418927262064306801382631060418498850715664149584305682886152225846889564399780107913025191091812072811367281836145770672134851579267634474865983239441089110381391803419644582498474564786916648784001352201172334752838097960682418231662806929996089238463114163476524164208296894608400222583754036442048664263958036000991429704976499289586552977031825812460448425287520346472111986710039455707373549714859549262395601654670556097015020842924307317587309081622884230015390172585217188914360582406465625159181385261490171940427834618063643014027399070243204046782133988205741336557079462242636693548911310426332763211214256203545342490707221419428161733494169118236262025837957207956706360350229503513535610363818651336822924774625932211128872976339923999607014073021256310791265853782377116044421747184854690853236358608463326108397362412270573593227031151272505628076129665971923226956463631383258349865665402125987435325648187884207938890291347303203350070824699259122992565273883525959017819442832260093315096934877080273358729120468837353233947771461208215890154619018410674881618368894042801506842253939319134778585518019118633215586173846878543778335186875368453078608700624820052933558597779425706740790352515448157775453663031998677016913524197802070060681215803340408910768637984807445221900808355878191052730765110067983714711998938233139429061475227872559977474678234110144790802492019250825428451803174137022826284232733700154608181666560396860423727336263423154332717742341485204590882419029934137622603025067586595466172779993122784824343938263613828992246243381519238811615103106169841553192104167869876546705576651440264071279882588705015606223759987831430461597798372340308363625562471461349345549422972689865290169688106563430152508646720903693529696282956278130513282590564076659995602850223144343409453247218112879936175053156198932836300831286176567201606852161777611826966625077190811429164711050070431738866659196465567321654878789212003466423741602619161463947446369482517774883427847547560932757951988031276393591243479997970342933602569311418003713308525789545449764946918064425892872027797366978464387550050631225664630318728446539858046103291281836874716442400259639442805577717160956070599311648488031356087307969467993994614870585996239914130391559768847436074426742835788450967952693748184060043587483456344395448900284854289476985513418238485345597187573274703605923131157704753327979169974263976573441501541592432532476205964807441367841802261793660971142479912100616574457305213579849201450698604937785428319450710710465599635190187735503275557286948365347468012586112665724607015210530373216595983655565234162465433086432800412705909206171381160299893175838753311194270155420211061546422115354237294869074615903703143548074502881381900191487580391440291467269888977234144893034384933709471766946530566552141864061131661946577673644931087901971332529475080965735925269317455637450221749459207839936876499069802636400592117436851264720599408850984805709089601041543817303564332346311333030867266373848781924241509452129975355605650258066280615005033932741556528991152877171049656085452186929453261660056913119313862544170379671300109639518864672183285632173721118148140035509523167420740802378631846084139912503978335835602661076239517127763098385684856352847933899301772896856618243070740868855785820787266081631890710737559795397025028891760972734962838399126747205433886733229624283988791466055427698545061004849947740856561289615163742480384415398452644134651967505533767488453059430595810486156224451938318020601867841510039168785763082783381031381850371370899376232222114792279811362904524980190718271553512838890335167720632063374511679675724214849733552917831239823390395205040581734144732622511229096904226529579098399656785087456471372863159289555786234302556262950421986747252984001418766895194171603861411513386062356568394667973652975621526212183513737845522596699896894323137701911823521871487772686735190149054404309420860050754841213621398688823213124950598901939176637178879738410563076031400168678646281110452425838531548611701974912316888675064688788254973351334104611523765797466296038597141389481195685625656387511739310539024705623150782398481579250590391440598081787077528797621496951989861814151106993050993225678559246862526357209952754264561433392951532043069471598373958017679224820877510116239795517311519567889709414698478012536133012590000568915696954027599641124297459091820555542422417083937043667553363493867734097651671125591829586716922203895443102783673212760129203314396068327645147830146835574768921332489159000556087344649544418728844222520144018750188278224394474485693442995644014479109778031568558129497847783845690254924365610212618121690303335183882720309218363981703724777266324601244092857986962084747950026170148579773820884909335159675666781011762361515574214004777034863033325965034988954520928739816117079598627883434935405143312020198272320596892348294670882198029836771170406035452117798933274894264301285170194974773507326292884513502399907410749242028480618481642127866744192244583367847419516263434615849498295813348435672599142984609163182080080852077988344020351399071734048639081363710437921827684932686765868918601127209642709725621644627263613675040849603583857128922645769901123597573416650516397842813330211382193797252224842372373607233834239056047608309419039005989015063459647589590546872627922007951211748450946474756370957597517742169102649824138061888548382747317037745280368023164424963865539201142385056626039365212441137392849846461786563271825973507629336483506364653201797651053741498492489541604172595133269628897486705400511355767203717498369343260196659680887557601830981561667391725603556968324724236725095099259646596405013037811619935455164705315619878720546725193278247806119839289679088749815521020273389111604526102984528829699096593144216518618081615353816044469557844382375583652597946313809644624744815154606025300967206687906499952551884721331250337014341335565582540409764238972874798079125297555248045659023611647454777019243371422599508463189709703981005925968212792286760657558328964448757821905513795942667460329481787534815416758258184362599348771565429188166945895587040333186004631450617924426076164829036559106709820019806740451166677832755146252278241454306059282562560997548193207548190268237284615388057753069359059976464737021327262808604035756472466397964529100704960951574155998464250768482732075477190631425500532431271855857848280100710414665183763949133466568393363908138880495910256149780172712788436236997892524789572864192276651801041743185812721445861312121159943251857663671190766017949738439334460325682737047145308221812625669440991165820518054104041801072234897464645710161013789469881162531251834837344535173547875780476498915562782368784167315654649421918521964024389983238615698591939118144287773254492213400933872269387887380941310840365580410074624792110358845286305245576356799057415491565554335323343762020888829906272974782952169741840410560262480067840252141218181592788240774763478981629070399384044678004887916388965870923100452604441391354400589907166633731926551456881371444599779980944201695690059268568191470631085548820014614142946138233707198873385066887330695709685924565142564009615682391513292729806238679934073940667066876969426442244160512754918383763649678285318197497023599661069885495082085713013629585296777819561369239824995671635165283126769259664396383117678981492832462156636635877390493442133339694389551923406244831019656928097706343629895006409763923086722133986198029511207700669998510456376355626393283161335478953381952631354770219862578367308922523415008251207812349957500415697736370458013389399208590668043069106687045083378268649771104469986082735022716855151876807561742959481880459857982728065761992392801010535091450687690355992013278130059075627183328077821544437185152954471482398347454668899178296417017152616440616819929827108245303588254229729229157811070673922008042590948479243765031608964038840170846940426262629740200874918617994334272526124988962583312097679081682715093007074954464520246532741505268228979980494783880136277759497290053620640856505979191476177530949393448521780346574296264843832937453855571639305007293771937802941875504660273340946775352816646453812390893849761843868433218782033640304043081338605324235701838628326705371101440598457869892798460659760912043076247787720040339875979935636127014535390225064676532377102784416660689290766443525150273476366738895462995703114573860576910715883335964360077735222585582962618755250066154878771429404017341447112262498280324747130247668585843932282996303029962883005930141341981342545608738153290089874164690350959753150762346426320517344577333832960795812948145706231137320704667276479944587037461400696484888656639264862053417894857626506478016727808064497815661825529699391503174233179301672705890638955851427578076305850603908337693705277999489110341750557043374255902727723812893323003174132261002797001965726699352882069154130765531614821746021012869179546357258295595600648684883805691203444423271773935312016378185094996835958015285006691306459073261998465980777004672776640369829766679272621524789211810458297622425056550401302682257829277482201295576216496445783325028626472718044284998048146072303343368168385492426762862174132489223351602322035337216987151546431833332973335699311541018822667226926129536552520723998121632716014669205478513963618039936714246304817628702458959644536980867032603528119712149186867466056463227774485630770018830090326460174063550990778680935680797072626010489994851791976505218135085113684863110969293033320502500830760888023034257172530075319382688599047892985308536621315675941340097279651950753372477631470364453909285622948052153755353237845022790078439032141094082286727346487018816106204944025935474565011002133528461421459158769477235250084482603572807917587716262735730328450928948584532373516212473373339373808024061830331112192040340603715046384530567398974201031051530601563852243491955949968031499032508625989362348210131549828477309780733731690679125019375953296735795656900820633709645252547104032828556239182263540981433771801497703057644772317856565625414920402360401138447450275574965112560875501582885302135566970152215404411383238480099212230123377807320785988988350535784227692354654326689070484540762286410047197970757514251214163253885786139435974841124860973374439197568604789330273288133769697837032379781813313097499701306306963303206787011871240937810877117047961062363519730967044156816184934031066677204964906808250097289614481448330685288087315916182490525080721324703599912504317656767120448880938429290114784347985634877854900502372063277408986371097167773232841275030227747950086658402983600426845425546449788999410478701817120682137267378152313365740041024744944334273832652821516884886604680661585063702833170487105067820167121942239081393475645868638066867640536113922924173122255196645959184951069411457241556169525432544114558101640246552440161949637156016413681486254784243354689348512261221120132670591769133461447251251949104298199779799061583293783358086399423517420064869080586216177435127636487906263741902261393920349585961393635973408894122924712964351219550919517442937886886878058126885171786132023864258780935825137216242963376873315594841021073363901179682689203462099898770819105916289805769780949937129062262367085893126116857578783166924431601262490585203203586505645732566795791176454678556393431776866928813842813019573454200085708658055621257653901265023788731970968712344032691110099078616276807369299115633913502265096171779238380611973335487468117536505634653037326938691036800974949856721419160449978029660938781240797594492618680634306797235120085882287682707677563974896232783758443217775548652480617249538951117467834405568270607425744070675941240002835008943123351099293411753280507384214909534623952656438592329290680044743250177778751925502095479383607706645072274995499304291774321381304120159211347256001428386721175425215524549913928494804127134739692426227755636804496196478585367925161849817214547183137707777600914680780579154451961310644211279020965348253917550891711760325854715045102270941769603697145156977198569611353020915351553513633601181561753265325426205823515309722608659464270983149500307169487644077181987032404223984969200975590875554709392372932103017173925844067518384333580857721427416753804622176227206494853907827280222988325724392324372564660279740013540055994125990839602623707389572034376290900241170647328845992014968800892512344063859781373998032754345943678482555490068831393500608823413654662000469347045267011048451589134831993446116409314116782390727181444614704892370795644969880818669316064358899836304782723145434432603665669685194939771116011336204184088589502253837436595359364244805616224699141660209944632010998097319038452972668102750111923758654049945206924821631074520081982206605266189011963974701342649262884062609235889341753081657189142091660598434937709140635623710159301927724493710834495970394519763457263723270729975526661107417971704901907457679923535409066367860411923245262689172518937322208011354797316235728071816631686041047879530008110487344421058913149805301000356662353469973835566251979205731862421852137797435095850114670033774361481670016040009304097104034876489172352030787259630936741025365889988991527591940571676468620463772742902408871376151414411900601719471189671143481448011570825237399594633493272027335503365235296173865248713764117761286350705177947276706165535740691874755286297420921296153674660947195573758107366134550379266356090048569228208507137320163147248440521417060488009734151528919594827981985848158437632240089251162478958003324199869008510677882808910300612116640902020855541099412771103121262066489240521118408578963020420712086310209477750904371632091307157895616676964368218297725025820685991912133531156981990580308772264413067869080150255969473616157307064725456535468625989513225032948797925330520609118056837962695057571596411945619124968768302165678203373868020145756480556216408629388909238574536043625493746803804518906195662774118694968708070818926554913679355395449998043751085754934667494160151964073798965657143606701464820443480246332115271160715305100343783390858552342610183268278139603015049936863040245886448451221731664075913524625830725621011893235896164918992898792792816697068663705921581338257674497477316650953341634936068511579036395692533376690810500274952999023261287214287697469129074887495138525436080415723066635264410607156425038588848404936202750718389597087900396961889556181977479800388763701928859439203273840511191707072791321063036367378381082906468672070899215449228393819910653514406891891237526787895128845667330421981904223158119958230143835824371951669048899456978537300756510386561407341536554367004180928275813444438320229668874156632858910896857459123274627551854520733169575752387032084240323263654851617802400956375000501537563040422679150542715062438142712509307621919826656513175566999335213862133571138302365657610891794787694871732809702066762677739557000464507162856018849074128937943719046168979919392644916330660209883705029978088532502853071745719713588154981380308450260885616164849386936273982258286014661427155732228765853942988372877958845549661310512260347082634934592881937158317486054959313734075217638715894751621931129368181370661156724204613174044521663262146102597487035571079556803772681289209214070743636567650560328418604764476090107334996489121028369822818054309024745992702089178382593093091563598329201188717677290675813901573468574752941599256761019718953361777001502793860986817495364821675919016903946897742693577803965024240419593012766457238112731240543298536174380798818833437717769327588602423842162373151937722205967624189912914832868183948593867372679121602098695268785961974754431204520298723673771374109139898044094779486584299998562204224070179372265628303338442633269884239043138594336990615778124018524030775024806441005961086309143413168381299412096923677114813497865151346953055279868231716046153474693686990693733091241748848829738498298576450029712439862349957409254938324179890593653026160394932413538151336847893914162090868558802686289689107710395635800240323617153558341038890871749986593560486566329021056607534863624745276859870296720721507013781843902390127581758509984803828251869316137836324713852838966336816495664033435606991444186446612780063955322227553956956691218517031588669961985999130961455918385479075735156027284232517676393575999077077521590319367237354225154550173804205313924144389647659879799354264663286642956978154645800947560149081788007529599540456353615619331856824670004675259333867149680299463437280291450851464920437200473798521063490947728823126086269419228907351331912481584316258628650022603181531550913664450711805569967686968776252383551755802295920575627385267477387394580391547955271047360559366961973619617026041902530101571051266075450456356568336661665980086121152769905369859344458363553522527174037462905196006299401668068125688418390393019599030993394417667959746054375645779351568041560706997354260978823825250401901336346847378322733701920732892662903932824354382088649599817581651142918248275232273180109886832984530871953234309655933061728219766810846827447073787300710913168768320456296744284580723742432367051520479408643660491941489164898233150610421268746432902703520621119654705533024228310488921321636010218524630735524370200886525577740513637027311109127986497983649650019331052219002566975746097220969494419428994454221496802588773640370427296336549614374629703447602312275957727166599076036495326232651890976512715709433224681682717627304659221442280074231521135204526569719561747456295183598490245174390210649472958707461358618503101091275557814635248468691796329205079558687573121623285178636690808409125740559675231011219060336284958573940870016644554122503011260304684791714913371219072342411980089944278837753128596856426736472042057692946573152096246990017570629044333529553339944582818545534460632634014175552306945868541352221597471214040450743956990287948417339312677698371051211234503560281840525635148148965411182508649823169257718233639524890750728831757116384270572361131009821411832853359806809109092608626267825678466561012437495018847667694315669794560895502435564456921303393453317023522506641962348421927943381765045055029607291640600367205652404419149374127062640725841736069093393754275927772422442377309093979598675135031904842308220628290862702897284512300689310861649538956269750092105298334166748107053895749857031840168398439983265001140497608171968994454881706673529802495818423148291836950142771526686999467783324656003840473176609927126798453549736786609968960073362112522362607090888019220144341022361257900980088427912003347354670748411436115128328640251976807281709442872779220105167707776658543277544351429405303231996885943963808578344297886028312826028430257933353467443605687939615121754499793263184054211250552600086603159074483960280491504332384936117742979672745573002262675689786002105565147534060325297638631729610113463099546944246693209812558030903184313239697954456412202832699392893241269871817918525429801771911774281841520599833608140300283402580693722278196940511734019157489385586980741832513603338996489337058120590351713710722590368304230427879167797214338302118555781580918902045664897461533436991335597497222651175372352996792176636593681683967115214348199073475912572135641942986039660423792148051972917149033828806162271040043761252683939812138489142366477500044363056768454512297152680797968353518985121976304713534817711782663804729272191294665299572395497540074344181245982637853058241332707742785985013278989559942570268003876221054131775007849471901600432296170569810261060366749167236139071047175273696497570219666896299423893463603166359699633204694399524719136306977568186048183015641152999799349182990752437246396596334487580170627711479927514210836073047349481026930660748754837459224838913915929306524893309367952526770444946221884541997532293518039551256917373169035433407150056037835906735140209312842457330904017338332240796364393762989241729739402479192796081144669117259628047078321005979421084507715605484337735020852264287265325640398767867471025671757935936009694423980965268774889332456289211382276232757698397953203788607702515981385124111372521700015092149632862736689437132154544965769142029887960865706355815360813147162581905285876120511929490639226316477409753121344961622181836057186966493888341487394161549256968829879212133902640980636887966832140774824701626603519997013673760782386604752740254768299366767290343401589586179491047482692098572014054399234430480185807884016441253449676079968136157723575970957810709743051850800432898799806573646367111070571560792401519068683987739715252818304926464041715746452693062686549850025716200557192597237182769582574544887118592034838715368499944497578886690827233297558549096248934911017951676541473937264675571491377851428364877966568776733484264974884633819075471205299741599266598268240930569644322735907049689931531841237941488496214144783278598473498239145790185706821148604704235425292767566779870349003969975462730643159627026653654142748685047003318024454496545923785390222105951257196469440878455362790258747858796013399569818590024504943573538367558550302033974856598122569845399397526847620897601384079734437281378253125881570491424518359408948949100222366989800838404084760234262339853783230140259034322921553453374384313576376166093712675875096012106262519536543475997189277819560213081430756794758019546538829810778858257209396050151985775046984667672343823031487449789681151078016278103573037487888187569787550260409346062420065744819538635559070657877218882310846258518451713089403751235188511618089664561147465290927659421973378885006690202271965584485426529845121396844266964934674767493827205843631172667358928668414776770084884207151036069738682582871056060161743608527118736470375192727044874566654491087080271133229041538100725618943320598561961438535446666886150540122548442793611708641684507101228213703462012658439418090890379150946555989449000032355883381159894554007496059749284374535161726359522706817537263314124749938799961451626287150558070647007197148145263512116970181641517669300972076536893300382603265980747014809177107627254996939850742859065017969018046700823709317190362027993327159436423035336187076329911712382430725775224917088986597077022198377299870516800362705877611434738253393852542503252431159291211778062380503870956472501886083831149155236604930861139339020167440471432049377848975559999451570850781951688086397402463973019654700324898035881947236740843574393335587763054036826366545872467580645370405553655400314826444551161487523968903148915449995520288877006171875026814950239653016337775300113797854685229523289806187214717762939309737186717452930988595722478851363988504887294539482564065183006813136819988203251228482423773949114282926973346761610638835338738349530275356004359915601182579377880714858250817629085067319959219363776374481443134671631342719850056074541121227312608564002091448076819116652519531735411851135173886984194669225804495424035241936438405155389570331150486802673890697367036462300210475964296917573641954797383453455201627719176477856169549443217830760782848562378096390298133810153342909599113144124704727608471068841785975732591964353016791111573287401786251580478165648337576820139489658188521760055784811002596874622877310335700588260488637869216944062861455047666758190932287680003648306851189936965501410821912249807446462089121579174772306226814008869423912550665519868523184899655397201841744102567809937839275974787881185052016214956662239163492227255755011756518554189113500831810581552278536896185679512370494835833223394033668382045358391789346169611743384177603840739342918637253433107851823922831341881254671398211566275370135800903954065919530168933615518471952860515703328491855894698936141227519884933974976454164945535999033880767152667638016602948104721109475021749104730800766174923826420642262185029393598185749876376830579330569445813951668714799081793492022375577346777219076266109203941954841042047061384160387985094792803314463693147078313681252626948887006867755068016553513179360571649740528159025318069377978486653671262197128772642632469574630948740345692296517758501759756439177159419001371388195725025686315263588080646502764476549109621977928727336238948314291057368407725904429963204044055572756345871344305009925194298684093062473737132937429735695831056820124793088695003526565180322800825671404887472854877759540409756791164751939811705460643696978132562830173521394245681523801255728789441724972167842331078362168909821978134963358528050701525330253437800469539354811447780119022420589509995393649878412345258513145763941724341506968893972465366698891095720785419911038183432435428024824804354715703370391234870824235263897842009239253672002636554439657668176621628134524375184716811777162091009696012401137230833373998201174979431181780053248790142043321447819716378142318010367367301166511265759884526794205710763341279496848564971208486693769457304264216435712078797535137953224925608645770000836699309943456916964430143767012707035494565511816551591071435059577653419670423233288621006424647452366072861185054852084543134032714082488391569818729190497068090084611873875484454242903823993497800229480162144445706231025953138031120689319762222205760999730416409135984217800652092653836440841789211503503978704766114221460139181804176270273466763231602625964063707350833563265091801167419869133947575595576073114279307946134579968469790776894747151014540559715600762405208446936671142129110121865902782166160070651218728543394779544068661043932668163559773868452858896457978866434736403163969137220490386446279425273526506744185073874929913446958862718859161261936718758040688586606942089587318611277755576876523197671069055312096383086500227147937707028449921444392999424424706897880306243653417029227047863495171267810344471531774946411792159387937102363461119746574542884702011336501327807938875117118000341835615035036731443913929620997696083374688685211446490197013242864006484678413898411190256615577771033793994844511862650537132476872905798823243508815606256678095629655989469811740685007435648723941702272449538002286080736738139398543189043031051170701991036519709506477022191947105137933912937133828759075427267235061105949017857265532664773900466556889568142935092549663379668394864717482749494916055550643183685091731836196819662735377541008044892606826761490594790158779277874178315884966783574232139919050934948572854351212772159098788060248535445844542203181536188155158653890584358871378749912942878014443847533236883353932830813608646619670896260097903290751428296436095399499219013746185297868347506255244122689036658762283400034750947422431445055596753901745125487170850015412858600459402380143493282817377384158356723244873589186870296077515974728869496952602321630412195974673270876825790849449440224880643039221042610494212602796128439409008452558708493583936411374254954616353042512675359447086604149896217423799926050699022534476041751013971752887396862112174719086320150126671325835383345635309152274649340901324401389491568607188493083341885981878443003233066871922211377871440711629464058467029855545744314563765621225971561200148759143785444873953380145929285248682628755506129645569761288433162673429874318073926221904346636504359753090750145811203549424327894349952205744762475821385532158735038866735200605668363962606543807038686738805811593808755695266702898367107365694392577124336400611050801631920013521601891907539451428141509375111469810458015516712306877265438375695936473859901812509983700712588191293459393261334049671023253983619486312752715511167856158469906074804475776954893557617027997534256705244200642344076108436118350532650750525021021561433456431573259494853622719027512246415479765158860146053668455198523970553795468135575334665167061630945227353423996457210250160995850899343618947426532703489086189013864678115821995467842299151597694438089905029683710813517377837777743900379860872294494173533876906898829698745397180389473022273903899647522684702066840918802628289331848029069866733354102657376713870773298011772650348855654508048988815918041522830996560322644381711498799162851166355378082686710166141432571391439861847684707377145980608537644766838069031017981885822887692872744538484245161268712381105383046235069950081797241417361162152747087937175372098380878009244533999064605607484232616286735695375718253500940011321943410330490987034268205749695625301120631849288722288946789231330791563766514537020690240751154248882005361608687389137711102135968455787092473054886661524497404505969411845409965297668723316821213719397869726962733889127597462202171013410640371760377654516968650026768125945886842793021314475530696114011173046538860171073222175870478613323493774118800025281292005425905625963861155345515858153402890208365824146187013803924224769542793655297700640253257730871848366193781566301415890884295028169488369628265785500496461640009253624125625775363072704726123464231627420709081152457048796420310105758640396421410671892624227740417055442239620200146302819054615743581828701896080435552179975269050763473784006384935725469096447467176293186415230259745541530399005485335823815013758685140749377079905861895488187387035121719920096791297516845074932556064105518165202151971202597825976001923071015737661538914833293695830821362937810733768311435393754906567178136041022621612337378333806234604537221096909965522577716779199397010933043309656709219732964492026165513084719043144763876711418849168632929588135281712875158992770926161865915619452597911362176686795104029824363140047150180283166249788269482251757715953228177680951442912956123343826548967100369310214677184454884715071673620885355369075565653391879652741508838423191095374340604036145234858498287110395668861166991157029120508423650843333800031724183929905563412133048086172964614871101480304229778222190704465680236924612728503928218110822103689855918262982671694171118357017422384104859936856607764325263579325785526921419685999751518207834906255717243655925458153435469419541002000491153140029757125765460008423262046914897741862176823894036438336505039880250116465341309608046609506354345993979637015431179289096818345378123818659765769077188762676965021572725317030798789588519739173545650828221455215984385405659067767067709634350247407152965360132708840727845828792321024891071316710298541960994813601494711217292569668945982234286923957169626110205717990960225321148787386010380258044262731818077863431329100495728103980231184825572496058180575768045462461967553316729834884503539712805239235060378111556933128279533637736805437304432148581180686482688621018891268788464044415676284972889359152477569792245737923548354077897471721274876523970221358656682401349656571121268883024970433493711184423637123555633043275051401369102041886450650112302231520837921576344697960319549656209701652724811157602607213474922488206664915324474658582905960397401853902178930610975319696656885099158587795052388899611001696173880262388817568743931596656699483309479192676888851925078009941112717211291472062326628895632286672116869948890023310313335061804721721870215209209643531132120151906154414013241496756848166377388608396692179577833215353718592656606123786621327302626004973079216189771337941568182730124984416780379126301871887552747940524665542225789544464569333018382557887049148327131485603046978405339834333106070188785461253541274220633413684568480208436960315527984329600461533865233648350655798495279102658226533680751949870632027766537941738262962306491061956746028866121701708572038610580841989627647615961794027920896789353307222539788435315675188371308136383624137380242619476861103124844581961596621852334933629409695236469982740591606388421554918207504613460990121092626942308394590170294200977694980428326728914461559527388665852797810889032245249418572911054682973485807921692444597133686933891940343534264421269260014665350757808859250545728340214112946957261722106057876370241687859339477979151597940683073621750606149526074740102178248739472829276507885329304618865794488454033930574727912013891396481218965952728518770972621133205057302983750291030685484479458056677807244133707353182421227191315115000789180178886089270849540192659135030541278267741225061959847214173371937226010884137407083949761737429115979733685445267694133645434413672749137015916958933720380436802221169443453396564379567679486977607059090739268378432718929595906309695924991489236478829773710440687588361953565704545113615947451917279475991075266607374542461209497885883126054872819765188971973190277793194384194908578084823465321701461373055286664895012321606322470295055208517807697273514502832954894198962550206649676710971756142911420213846679387785510339739991275639707329393586093880990639622753714250862306599148947245570560690060347386465357291134849429436387568121000818307929347972684477012154864208961144739889266171973445748074005205226565705600481648934196257835462380787500107673302285108344801968597024043551954030271361312484774498604660321185500147538128252062738782414251866635616372833725041611782816784220524129232119401573610612035111231767185611967367565061989405516426925774118542657811526411855295147682721892312888633734734445964127325326607715557096609851212529084059286428499042631031728429577206619086838625227649253051283294928012003089480844062659245052356058984049585836682458112660764800086488287637200617252371898524864340812211324824987670306805915644653781327127272139283446733395508611365023269218035077002141681509251968511664996704254516254212079020912494609228314860669989058722684039295289445353854690257382096250390901271262866864795314550292318365511477032931106784182075484207951681252330495687495448067107690625048370582142897564033838747681827229515213809300425161324285348905644393348093488604322554992624978680950930961216582936104227288863598237086708256100119409444055893578616215024849013964825749791435587506590466278788173765234540550573856460115525713399573031952751234897673680150155561178265037626755025752374480171236326824962553336561517448036156461557730779992182405667863414533092255671973049010216159398731541046356702687378608673373039734623610078638458262157723290181601877832856494572669541705397029593377609555296432704513966045708115140175502186718046700969500503873265391249624130417020922354138441566492655990273102412127568764507113486051927492304068569266457446266703124734688676589507772268521729127594975130953192598508562516126965530055698303522175270540936160196384363824100382329608175904953953404004681447138765385547986923569870144528986996191125780123621485455797879941003340802454876570555779992927465106968475720118464394579961072878747651259445912233066252535447924052339989241706561629838993339074169707347572162142379721594630114907781881442906881487075711516453221106092223024442085948296327217905977633174054910497117095576814776849093804064164877105940874868579243576002817581144078264320985319039592173718117689083914831195110640688717928178766747655621413219166643982452429885737588252575800713288567829090034362094265367260730154669016261639795228282564584800307780210435843950616555411961417649768378672137514211771913693788316867885902344592655205093972362434794267750122351245170315951454882796584870592533598831479475090769680394678100967804627642705254437273081139762620496054858111647635073987217821219515208420498636244631169473055662836297148061310897687940329590892036247349980011914818175347054687937019980643094242134838249875307076789306846854996201356885853733277207354181009385809222399196601946909713064024351141077336378350313997079647948368975417552853273223888658723429245470756506819619329121568787805446148080319074791765184225716749703652306558037833728938138519035368682403312851395094206153445696817951143072001596622397351802560609045176951523332868869695929659353060666850314202994679598105718010879739478589306740247958822153834590967133662283183314575639304268637779050836657086230124871028525916374728835513226958147969582502763730903565123951312164509042469121092020503201715984406603603063405993471043064527741637603870742877256640403644002931209479944765795487637680619668110933648827810169667165961125982564300068693704722414549655703379151262841128520956537950845769363914028886708983395327395813482317002090539271992697135175524397236663003493834974054912034409793146423681191149271774094875121780900312635874036640890730878529161076048032493731150461852633243987102677437868334054868453375235526793188868850270268571976751447676613806891894850218354419531748043293380806033222213841028674605164271898612573244732641209082561098424640528600014943730080788088171694639887339487098056307241570772273066605577407028105913240024015295070858464033590368578880208027304023812877684752755969270009110656159854665097462530904598933291471771945347512199372239832895212293499855521437434020023090295132953297727898370345829816410765545255757219937951133081749147535085670851141602287991651694921118157804005047469848113542819688086151619932042770987475793503824426428497037307495331925013705646531869488927055702111917718604945272548801147441944299787699662948933570621215775384863398558361515316124153109855816236231218229944689025712533040093088086528927122534690399610801317800937581286597978613922232820473641461940766445146313539105778051908166748133855834578334478876399037500473815234583911497520286348603025207036343347539408668353043805632847703119690759974500628942942253407493100344817459532791285613828369761163311028771673196347230190077705934373228206534672457141505300447039362464670498033895100195524294125071097788107483191630896749453886387199373068967194697888673364400567952150590359722678157527164961854562946614275232817774532110977294244408629638062200470118650598285979826385591814436019329190628608080102844075155003444888015304136137107774809740785942719582323596385296738301165560642247595614292401979943154628408024137024312735773290706097851031048388933026359436489639163620311450508975568894532644264885221519850455301013428090933297820987893548691683312833863532840974840014985866803985180538366029994776791113168521880029777669099237943113237472581283701478556674162358666906011349825582425174014913281445602583406631069577738732086839776810176222252067455102747278621091211603878233775659635804821571876687115749974629190394758368380548624134063637526018287870516085896995763214593264043858415439174697138097613430984546354314380333391733526752822028978541316579312110590782303040914272279399207912765798182050712080311583225746703171836616581294778482663885158806025154133866608900186033023360348335618503627699326169905703724509211846764100990440382995664029876929611996066596045068544324269473509754634258365540725802220632981641224222423281965018683843960752958111991229314195257849983000424446658511900359711058359199776289647690452658484799180258891429899379774094703292667647863867027822268201338303640057705181868156005367354911380359899979589923210096603468934290651361111859188827049157142155301336738002592633997110486466503693427374375513887203619726498925684053941800054358188647151044160520387318692352189035001402053958931761536469441755510513950303207023165626692688526017621282697247619145439337555172850646855052771458067178861214525831001047901172114141026632408965853476573108803934226255193157162988700420076401933749279902307407043814034438891069997273566685706216603893980162939535078248263182569853599023496848035883671587083208481060145919306414546846483801619885920440360754166884532418111930228118551650269937982341721300590619956761872279590265330286811308267147919109233154478168762569328492070511477578253218247014100143711798130882857409885674900166810202331272581092303801590969800567108286304002605411738917404305258553728847766702512452370447834083814844857114269001928752730654408090603098214566414518044135455665470455491823354882048835300533037067017898593986923020025683229461865668554630933014033547323598083144954871528201451352486994228360838168740163131521483906777207607452593447826411051491074992923867354770835065149207619357091422330319083808768078861015395534714156760969049606643925795757762804505801159810797950041770973069436192554984760415607729268491296219771401408351377630820864033142485391806882242031682288908147545053704784758063681095682978730000422379817131285728133609089340205092281656351115475504624226381181955408757750781225335136603938132589662353199248608180904602498971387437435495756415062632454342759106041215987704035865981119399256177370516233339958134091743468124647784627105850090024825185587701306370631658794558382287573273928688756207251335072604338940334358448090319076703122786368694823204758481728310534076557802498836744390526013768482872995850805279791106325896737304224935839038945694018278450900639893488088190418618086357360336690771065437251834583598473406985769675751872033460527502973638998349278428343563982199278199331444111263102444996363839390058409656447748109456309719088880146556561872124812641315710566804326793524666924157979105008082924269277112395407227212147757624049338114874683456563243000444059362231402324176072059527931631483296656940660113399340899485638606442672156437925187745971649189141964787539431287329853671213998838451759820900274906307135192837351863004052710196661485384543757103201268368960083797802836006803469799865752749062459911563595855763371092810572319350498380282762258262794748473880396453725807191717018177825876330964621500337412921472346627483377795340913611739088746499235501714287210871498102562223562941954676313572006560694488462029045056514934247980170525672749271267227052335760072755021008109776968529047603754653773099890267098669327072259605019520735641678142124894348522873858037965794500508489222488859875436800069289134266726739535342368683569293990482511820246118724477392107869834684217113431395267105632260138343424569347199909197394752864069486631742680437537060492343815104918526438651391001682888754994347423658822629238898194848998540096406864181073844046799378548950861033644138662703645912823701088778926911368850060198295408209472953326880622574755377723290764412833401352518249043837551155371137156063773891732457109103344603754949049363748360078720288614846065218251249193794202588993963740632913508942184195336796692392922133124399541018889578143213129367272356663508100517745733236177016695647919941425391866714137956248733749630267071872151348189918131243722224667726286190507182835752553095673363543231782115852880845979338948339109878040603448283760878641568990860588019937809289903872680451930533089581186908476628226486481087466153659308380888683318267188619658399583461963025587886978387513949384520880777610874435471821437649125200164910001779944807627201033144124515651379656885639580166482248105758831978155670688153955325236832822451847802673643688837592200770834502162673393606544602276066266005767970987250122422009681459174630075623725688846101091614335981800659750856482598650969088892309574776108083731441322001389125449567682146601561784195879563208784260970767356359698499364413868291824298997951842130422250541932483833815473980925265394523303394751301438629840787837769564822768446359250649100340602410851666461049790106099914881964321039790637957864479137691381057489696592580996539134375655025234484571233968256959524516631790651121778473487225047269819947392409921995776423753556528172960323717492448034293275110714706142551792379726776973737930415990093606019610252601212880220567081031600469238132023942768284330694640864976531907687757430863918593584407683317605348153736269522792085797450950654010657808481336798798883247442764587436650121414714818810159023178091884310251325499893310094337183784983607901547154983661740098774302754707836221333259325674424220718251975676788302509737056484609660536691136340147608824363373631221114943793991238323836306199471433509875194055615118617738570757830645968758576604769332017661277280437494417798429519897488862867032923621555652170396367388619566775815921990906722401007741151521274734178307809290021695158052668791061033293151343285299842556221994967568332080595883128531285042956074146492028131575161502936467183238270055796676266420258459320469245972970076787675100481201622055268333088516469835055989448970552688275366664292980177211250334792172007358184709917718632850444534575766281994026125519710871318550776255902596164790998251771202974860136242780777847075780031983137139590533540316664558455745497455642484512080806352639456539428735759372523318673128499988973201301962881666438300584724392742922025116996880374678733679373555720278848778139483800561812161912002809204124155615026979981977184483646152192933320092446828203292981170742544223793123781631305810471699774323506110886964630795915332248279745549354686543553357888700568960993612096024508254116027201328405670772404129438933550189758892253409171331455351204623569670265797090198652821903197620236171308024571366682867330827529678396500686047247758392808766841281188275516256034560954248326442859648447451838144183627787450972280540025106187620494981402578647430699188515497116819830654989642880469003265634520210299384002737768328610990251085887586647761243701504276888340905336116986398745889141238366460981031100064767969158372795236683622454107417527929520599834524518206201925684914093509233260076400117255149075246111130367515726812263393969937451072455816805048931174451319931028209006485102118222414261090987001760512172887329589162411126795832024034594358841508073059324414378738732175207951177677282869659769457738437673801616376861983996384475608577696023522655643931460463955060419773136056710390477624485167224746813352453321219905108230856339509467409871233560565966298119518852489307602589780339920494268370527627079872841255147199113396068954212346261655761457905279795833577434400584459706110249061060976237364825265767482775501137987894008412751218617331720487672155344392950622272897298162240591354640745667632238908626767397684276988044842187512639469074032901965394564956554975979849013318287506869100746498175857223922432224653075234831421456612555858192667811598682276609467424289238036937178161854703231248473158775490199089275394235634889075342891665856610249956627654894718305414562345058683473925305171274516386015837302853396129696142431245789426595841443645600960641770867415011512391607668354907242748849748610118833724201101756686544905503915930812639883087836378859573763540794997807520466977469437764384862921551005981464710285662094421219359905321316306415256303453722869719869660017616670735785333305455676978278920818537031380538327364107084323338166782849695182838692605304810247008707363780361613121161953833946535225039442809748979581777077803429488759493861241574518014544572144389331860256732282889734874783042209669544700681495425882444985047366512921160004683569381371913227461385243312664750913077689355811067840340714526946876909740867212249035306019905086501786922186905878996552961488413699769376549296935441119522556765484466419373210602150668279056011550012803885066648839082449430722517593861535050974617893716925703426134180590357507256266563762017107607502384267855880281491431799069584811301163689270144955886789494862491645356346109484290210782275582940484376805895123336562085873861225227787153082051402809876860476929301872627519632243276208232608923873437712038601031678563946710827215018059104905161944550601794576765021035126330898499500400545445076192364189004180545174500070720186404363282364578645184170394614154012877692932692987199393769211193081759869408979887326581649381931368173765334049475293449091031836307772026017904741388662896245771564577863623186808817349663296156435578728806609832831165719242263676831551175313025558530083715887485816420355023038633333128471795079103516391730346234725771955349530318437110013014938201617757503642156639590607984366498835789261376669251272412645821798518617957944805675065904659205494221684099904491511109258952771995048154856096587392487845340097320361413157920913006389987885183443567089707983864481048959263406697245206347629612355691387286283191734838786154711451520789797495713773464373034043230158051948950265807375246981760896376260077531620982920934866477908502986440041442285909547487369251396891281282846640279458536584011358463727943238970913201687209929053706825261927739310418672583343497357039092224695215195022905566627472130976658110755204965605133997791477428625813301802821549575873361219184834015275302288680700272331648021515934069967928154526963159956458472640524015037608328050999452399666319449514039510467816846362729079328507365572108568490018706018959352510625605878750821776074699168732572095607994081645278138176921305652720639811531302381865558768838884765430190798110583662893045634752993780673724028896866227239531817597607349137979825535894892604499201178234010977871903801694740477925089998065428801271188018286910362142793966541113539417327263473916987348735220731461250311080423610454061504797662965915202855539694022285135106721127125155355316235568364239320825987334697787153758181251308152691620752797441439956157611463037413786861715787022674242840559562011072501124734983307252864162840834973969709474100296212735588417327084821357690499121393963829701201514711083310469648688792438538506318544654741143995396160736925283616320134472938989350625576377182970810414870785594496377736433328075547868600451469551191939692681272335691230795857407017881685055146929932065657879346627724623700716893583432641969817568434041743787314938195211962664745452099634070648487870780060414838425030255755774120088875406122588535132859335038966768423518203749549363101578156066878937146042193642857844127098597301585430494597878032070952537159775280542965697852971433947497777361731423961105093978713346493179660158040559348137408025181938126171833244383760815026011867843129496384557803710813516823388662022443787152627085230293412377358654957496559234693848368198795872626645266862883938119642138328090887769492070701543850796532377235534571622197499254512091450025647332008613331345095150923667084345646288171429659350567128066082203340557480391308818735719100622099296995532123410560950215115534730034169008007263043135844217603941323236217578436632923055465764835602185896931459074146571655862208835049101800980055897429166460413166118465615000011501117051732918617581533492071804247165547266344991441416743275168132219453316932805843847688720092607496233160736473338280090383458012987801419891770310103914547433006859052679348639910265229981542710468655840607226267908133620283697621734954871446210110204047218100882871398243695972135597931642680482381620442606292870683547482301893878126007626714451070654206075376420130155761695994104123862526083442806944903985321618047110799384460422804431706344761991537557585604883043210446569284307160648189282808671886033616682488382593197622232076294684464355033778304734525442027051427388304383579401752402340318794760405248182488865880722031749872263845199918123842413000914819808513508151977580583733284015309093718319370332581761447524414722399671667258040093086412184884367781489648323290994817789981189209570644371016315712755954723531296020237824500534811700001126882941674461079985199612218112578473799734808023324754863277913778415393407037245287912532592509533607530917450823645890972791928356391580656286318231898023596271290447434972292103277504287069657116186576048927395952400404365032754954567275504552418926088567411087422483603365995096003613908746773875374458953854477325307902633006985636018831025002607095696633163164538018832905302714575539132503317986167601564143283820912309423626237332785476678544299696205116691784791287418971497304576264946735865519608104254916889840820978641321893362382606467396995587003445694152762554254617795748074898253780155777231081724479592098934123022250162782218962271879181625664095672950586554852073594176554670557674337146198118597012480043060268333317627458492745240906113766499457327838174877842130192482121756445565935657593805400099732672974007180129812579439441700130660541588387015443203337254335720042238905674700581631834585545004941667267153751789836521235382225385361581594488623240795811309625244239649214046834029476513534677430009699329879549042944725633977962447217131771978668228714431211687168433010807626088270120060513133116284953756365151267308917571163941804161704835401867733609192052898304824968429214262107334792612999460127827089990325657427814646236119482595728058758359745097308089956771797884159018242138814448698433398205185998291799801273616643391637165431466850563312000839929908581098260472081107201210569613993533386883267727389456024721229250981413140958091657481963651720705976930702252699800133556914259172542605152973717975459691890013832642065982555358137759323476461019651867881873046011760300411886175476699604128648380065188218085545684252059118281718422269530284650087219714506902917641485477140256250995993274489002280533290884452724881666489160596840949748442641131307333459083597682269677489654575594539393972209281586520123455348985691156210182052224276323005032780451454069998023303655717458276396962438276221532936313776344933404882257170469570756655797407566654009967039067721860709517438699713805014861916733117541363630094714369726510835455309219954512759390320213617571672499187271917924105584706840514146742551045359124767375346921252156237000324909539312236925990554852763782993931207164451177500957041427769906904230586271162199532816576182565056880808328367811738266267552023430486873328826255187641385343937530224383404440353579820898142311678838440719249670102110407486127507924213064046852634387200263021640978722846110184371247815473961773015249877745230419531750871876395892994785771527041524991725353620258885119746548949648708710615699009265627280366839558957029176022098046102840633547742599778194077895922396830142584948139538738769220314870106958345329549208206863207258402544554093393276233062796402243218148883343601413297410259469559741332777851869849331551407573565111106075179550335720224690782578262679381067719484431137027847756618773420923562661704682008928167958193571368769826227453737058374893399705335296943427374157362727005513041688866610483291876637929562125673221690152816312147588607296580921628703817265736059483750523065589608064018149364981800139621170843376711751285076597778580964941730923004765938288124768107156703299136054136618631556667533038631065677407900209504240492258030507857605171156760892719482934768698882610320315154829129556300713795324539487268558336236967376360166115024473707368019607246512508124510327666807090457760418019953326890857366264225457562393168039150323759054217888360365410923093139759619193266366693033187896011366188498817201744224547480366542709828994338949440148313554058167506309766704059071963292962249007499016623899753236915227669251350433037309774507686269560876343186343520467730039695546515638948837611022476226031413786054721940901726803054484887796177301315412620592200094466960749126260363932636640190557334752387442448705811687789122113542747739561315331973761550396532111713798165092110549406623699726425790306577704307756708128878441539450326523211793124093183320367369224344967920156565509305467169781891926375713229565060473742424592229616277124739478500704899237733354500946102186277226086652966834142351961157042688024295592360401100025927322123646771063873119137481404328958737442134036038764832791273132833989483429751375032043450641221871970562838259716252390596586676570492458431664404458528014465112905771892880715791238157825419125158182319695552934707246562806950046021123262913663600298738250571219539100866890594564960141041957152683359775964168218106430158887567210418673379343767831161852239924265019525463106253010278320217346886877556003585828371035655316290769974745106085921660256012815433908467626226890549393586957978073589475749714102168248011723254346054600880901140037409974740037881301876190302978934865429077074037149776436707721108642353373866222269843056787953118541168353387937836026060270822205536698106472039515146552584688135837904861611290495722754308504896861095574320943504220125947152659422406931350947756930190556225305213409840519363233709698258445487621239167894489278153122182089042530725423887458694925049902519383508448189521302264786309238422828821357505077821296344449305257965129258161779441829751350191835037654117593980566032390129329415834474523578978926023474562614596183892913564967299738833655061449088154262624522483261175526955716352100834813308361583371748321766589417870514757592024224971569268953401886183223432944608834787251122639369722776940961328276872634599462190335470060702344098822566026242587354010122651846381163461091334191879993705203979966084829833360166195109069278697784202106691869124069913488809694643593841801068276466363553414206982561211106009680696649480898087042241506437234136736409111207793289841404558160462837791051492305115269947771974706402135132514805948627376051355034508913552595453644766364279934287014663745887381603883127146537158967372976459804847223588610174380249900897373145508504143176599809406547696579061676981065443808479960942684730608333822845613735784291000877597036461380835394816831751703731762883576502958391592838416020456232445676855707039127736053222395243012027177938959202044240645834285669992097096091611931586694831578118033931183426487180454223035935976158767289997702160672911288669256612675442264011904117259884827026599532405027800120483354391965009064416643958874349434211588435853901830553965072635766617770313356937938740591540919225280948379007866163084657883622415992849879420221544897550803887686830278246247129950406847543769279556558992214978186464244115245731985290918060553694743749336184201993261513707407847696019542486074727769860998686934943991517883903155253178354565862042903687989887801496451485242429114246143275392228509351979524791588837457642758350898947671169149321764279198914611445162338942485815587091581691998029216363459193584352534948772413963225071061974011575371824899489367914940089369049292847782211431910718741723870203943984726779576770891733261410703516744806342025634923586027344946086662926806689241912038978699747595670529843826958707539676480131251853038788936210750163936794721837752667439311519719493449828325722333900125085827968627863387313070587479080450261190788397714883761783175622353973615245532746419797091385513648053854411281231564825098856080977290075526601518240732081336795753706853602190950579486241078327267490851817276820476864601572823909794486791523903481807878811923802810378879166645332451471260033196673474212400255123474882679796891908580563615150469768473001992986252318650359881017721843239190272777621001115628342726436041278266444020941663207621711289257171989232183648674179226908404654830321091110432773360135873671261374261652314432345079290993727599356616511608849120069282725040448175140366513698497321400653318091516970412477504262245564456596190224336940851860586784917548246124915301035466112853679532720979515821853957132936494117388413395667220844326900578224301662176112345675480895879112484426682660828446935116677390021373799025006580884148380908284655168266777504253521929434325008897414600427879578461451746788673900894421776340793893189223425799304215995814951733007666871433974463701676714311249710758411760431291530619160276159296973127983446141465295234401282360895832006343488019658880744538433160927475451546647127023025940954633342720416268148166059291334586229142161319968343687684431070394856524700269528934855097613592088591990064934825519902652493320241250242282805227726285155824037612593339190357108312704815235028276829082072388281371735090551134202692903890877739480761190962697603295806457805146922584991538498827229696872555658526967933702244474140920650789147219903855699823837034167174267658854840325363378338075795618359756605645030401533330139231906628467039721027300560762451745044358375634367392675367528299758604673003644852758296094429646688694512913751660787607653382389416166331525213261834017749747850729075252565413179364803511009412381467701738877489356493243130321666707039955174985165692248610458737896450210733585661725369170342338434270676818637575521676938767692733309928791685874892851902391765831022222157829333889491766003197866794725156947331847496674251448876397682323001463504021471080614774364102035480941014614849947888155858040831315956571190176555672297588488965800004623537737891647706475830716852118305857736716962336779451206999621723331508045170854618698332572337377646439445774274736176648939368573926769525689431442314251603139602069660599842155356875833191066261139698141063621169845000651506791608405202142540083623949050414206919190233461974513824307642128553469030827276181807307617949049018492492545886561573398202437223153413803817340680190723113597308121105350138832933386266308483506604760006270204172300930394565854781036866211364817041976138858426459616376230006952107932508775537978906515431007337608747305372589126276093998050749829163362399284970446857818009583081663040440026024315253795907829838961364296496214440610242398393672272415909279568938365387409471485483140481160684250404144343656808516826801609853955865617525943345331953551157648774266284941332224084974759455854129510505081984157109525376114976679663437368404573436951028784763736226450976806737665694395929101084399172467340109454565878954042693374292060131759350973491395826512731262744689266452544670459695584007511850056564998143996729797344006670946213059007756784137300788208039289584346684943476856505889649740839818072061530340440074449337344857653561102042498574054309911371158828164073745897149968060197555262289884087653908408222172470207139786732402902993515019495740998360714133748560629757879848787121053710130218294863853951020988314567221091217249932040833215722316170856572738515304195443217702462120778442300105809652978176971047975907064064520050294109970245177448497157589031139554197684309154390354529366351856469766777593975925363210190077900825115364612751180098811922662165779554771745458356741243714074786300990666461535184288904148566045027029537008902390127211474533776807651446524439480225497733558644931495051361228726532839015520887067226588332657665812798942656615221594312116126383089615740257114213057196891882370821695145084405902030024947240838800900684800933439444242094854661106215004538502847450853318303594931359516372433903883750995703734517767635939621807713320831965085106131153259120398977319112877341333897904228915356585390271142462717605577014517795460092483552233968074611477307737448567457963739959505696972573562857047858465325776867926842400714612525448096195896368545965088898789239873231202383365319163117181915032164910684463919682833521892919276365061020836712846590111790857608830901036665285902428768256809294612525803736927181423729477335800837037236822298037176908301638114385335084150008797165521355306341824877912604809861833860683948211402787712801891717508365073729642187832010424340612017435462808974193058851250091234488638231482218906933615568002598079657795944412796794731961001319831511749912271463845305045617168612829846431745274282891838329381383292402036713009570186381117613137395787791004009017144695812065024091004776005555358231897604138759100417854303199173661094090713798907369868702884534303185575285257303001770493976394696229849873764999744802000607617716212166290632011405722999719139519175889079778771856007013224651069991140343739945150900949728543525698097161183099056420210287911449550363126402318979498351428992909166517487807654522634816448511206597539292437422212347160581786366722715968796978172832871848130553416360249612977885786617755519636468543291006459755151403443928667230934821858881224111846023671367248277171886098163479419490421414338651590112157697205529728666685536753043328330877960591860208953873839735315138300683724312140911339319383071041397555779622939130058964695632584767372298007303939618205810802653303307822947592080743296844569456588020669973927890409939880993566674475855583516693235971833058915289200464753783494152564607835780056909441537918294143696281810832285318775145671696211631728048613450422695714849739054630055895223851228922561792742979814986349653805462668094578789807693629976486731244447243384143394069177132972282718276946301296956859219441607434003966194900621650443382812107804235963071052035016646102278650399376100200022377837520903328126044488803577785999762269112645391912112766698027479864799293070334122368699596617038434999511012618964079936446598320145129313157070888383145258507601393778074436288776490026853155372190343048656762238529069328546280493160988896636994715973731042376733926399929142064095037043438845108122645557214899252280131286449438166523514523329890727296811269915153960899205862672326724171043160467723851284888052324878214694040104261408883842741970617648465853522179198005630131321138141316880520327688430691678317686451858440025729196539052282911336007594536652697871481532006071978238911594082033595224409349146965412349271732052205221897547886746756098230050488792916438062414812685827407687963504923607997865139037001344453173669231933251062866507685027824247303029744422849634552805361443898712797308042986809653990311099173837602594364864768586960667279534641349731116586555975514123889133178970529339010756624941217172458686838434970693240785290852844412973019872660109207055896653212359039397120703961278135079751246397254924234743971623226755452893128288802644515514263538958119139775796611528158844784616116563967004965604038452787325512454643377794126647911258268126065739284814701908703943802972820762154794337312568603443329088076810678362534292164980188705968076152553700851130493149938228738271863587355654501856208016470257862124126145424989774106498851042154072713330756660658692674635339026922324868584692174764021712852777329180140808271257839618301631024917311047868336378257846228179318703702904849383620341208787427984960599189408228209289412673399951157134814277079863847303621843013258056353245165452516672696984693443889963372009286521782344034591029797351435948313358850983274632641381614784442423369549692360443588603353479625000303859756105629155173405967944470848442701004547126211684779910758666710302974348606560298294666984575774063291273186200548929912901510928894087803515183442301544334604537119704409038829332705221859718231080618628421468319745742933378803700478778203771050354897144169292075191348687473208503350906372878678107054990686308339158798793159018151393927958702821085500402485448687718909879751419809773890434243135074250107069552906560040916256688185960909589708976502665950188836757666468141174368823214661641736807734460653528942911660963450165731708834954017533049906273536347144851427776360862761161745272890383977427332580671131771032844076911333497015535579423358652574678516131910098906222569718595653771749841726129619050576214425251276595521321576730796310286776794681426226806490436731542418914033621287120195698114862824502883299363103734646767642135105464345329736369185457536080315334290132468765255617202512964955822910589641061881474295437041741207714977762723678471377370626896490846001123533355113437153525278148501431782251234179532065423452148641640020749082401778339231510020062235499048882728255551041843618187144706513851157790590399361265691892895046413780350607841594398350023874657938360453069141786395685708002954910504290214636480252496772023660001499460976833680020186730352192011405723614485928948290563351700512566951366058885849651919144186854679309389881861959994555039776675446884072381885082926327430703363249962725158582477205908282528363194590976832938240743943638305429498183898385190948347410018717926209834364025971482363821225713492496626997432237775412612164372757819255954501959398943124286650415893388694591673081192191770982686385694810516881732385208411726247159767031483862994256052288646478939615016335545036824002472072079709163947628184039429408921219302337929768913526191399417063110940142788992754919537254479876122308197015534712286820932714313390612270640721463475732943972148426004909486455081780875936467430932441287672535910249227083405631688575853072316195643008884202672052464551062692502020664042620915613035730500665644986254794031569890178732622269705254031225047652960538269048465054155908806619782758267576225590684058717426326154382252682396341929259758784796778593927516066576900587515458813119302653424623267799532331103115808122260370490795624395401690589795796774977989351066570014083327978111691497433709262084681886091548513013576406635979013345907998026147959589155385355576664970459518141912010374175094857826227243115287975524356338100314797820477027716156687401545835751768122978813284200498150088192056317056282334675663602599362908604354642451115829215751538483580663994265063238536777161462407514886024344177961100578886758849196050811013833471888089989439120524039399072973407991164418247469987160493368108892004465331598625269132083942055857862514863405404856757298193245122064940065046817866076208877189651243420061382879630479535156702156923564172519871203479136315637385778636864547312711703014425076988746356290290232230070479079753208609034016514207018600577260333927344025760685199496105991902921052990554469323081654350619040514227903091167238856883049321479654855568159596430093403750696951603756488475392551602568085140992383729731093683504572425498316768438240794625675921897197704757318120795992593402785751316260528566821269660655940657268649605095164387249150403793642938656129987682439668418678823184991719463735964692201076076924987630219049706314995837957006645319656067970259320395877192543075200175303537707531277927039803118442066287940481190910763838077482503693102378144083829672652612388975608595254971637064451315618985813232968836124531721703364414636312970812747809803276376081387224413692183961640847541595392384477965886357242938617815466749774296758228011600915610469777468517826699852529586837821172526145088543063859461274405382716228236838239520584995623296005934714553628759663335366732291091075367973813880813001096682962831564777257404070911908505220684362670267196385158978960922932485179970661516574018024535396154087531952130895283868561147633126142792809102317237200922857354209366559154006156765941411655781730294123311237251294713832509625743918437588736070178963073289970586573491705001629121935620287421410120308011074411750476477659231393312437020249321132926599145518605713381203540518376752359122246976930257182086712230928317041252414455759364012215078777775476429830097756790124340810009254094045137994224436855582821717332704579388815564446831503948135402984744165021599205069169780041284106917487422999945587122845808379827946012999824192701913915234362301812051937461203259869753190070567909619907474121418382340150314744571421710153672989255003908492063596549472514618609472556196556078878055128521766148836295899461839169111723805542616801270358915525200471182734700031413386039783565837628335783941705030980436491671270396304385420350451986869078059729186752348431654972973387453261688390293609500664931608991285931383453543829422445254636549840345742082957051765481790271324678767233559523029353261130157925722190523916988899060392244643247448813134344496950884159153110911792677200855534366857046589414231142747583379147815790967949710530717605304709314669991959645438291558496426812649135116199731165312437936000205719103550960563795728951837308705155833385399415403952606832191120530176728861379707134295419319332290732287625139495714027972729954338714565834405187233738521606360683458368910965865240072388625048104558973346732254658263088309241315821577576438292174790264690265365242635261378226923048758475014861397648118348040511251100479139094063591920499841786455781960613263146774493223653074295826477068088434681381062787690042002819040838427158146111464085753120599303632719152076380222768264382975357982618745386706883633089686487747209876893594507805690755626124829107561526881684837768191098284982030167913938245164924594984490744067465496750575323190970096749804212033018984043671503662958120523912253079843444919651155685934804945586913904959691024473536424950156659967122780131788540586008749913384565118617106816165506073460309227454113551656980894955579089765386208131243623748217860226862597969236594802509025710312225612085111110082363498239619893794727174719525560861632323625705175623849188321609828089464624813799607478731625304304357894424506200166416671326257622655692859710994902038694144599594342027930890405397527431978623291410497174546217622343271487077386149275557040909888183097785155245770352636484492237176828994468351304847155111044328336914226773975669391585190555746151481078125946636180345122939337882814363214345134191356532542577790207085453534684729604056741780688880487679539556365388083667640028024111275432942629076206968701271577807071983238662214559245242048840785091196896289334880903872996919235781284760150313371856200385585134868215205219627609138261078164249275096930506185651479866362850322761541297692420631847619695754184566902313162005090313418127711616848782158918415064890555531907756194873255776352102157913654247288244511428673390162568296717147458598974239665875859323714383393915181454559468067429296172986152078557833570722165246441412222145143178294859859323318686046179336071413962835618734348601608320772108335375210535021866602175977064386688348815030263629832523494608508260339149674924397648217600444558858940224841242207408013595131069053037912405477296456554016681349612656808522962238927193832588841463195437117343101854002228742670458078373660235046415467596606740758642400412993721777159972091873552232528315046815807425480225935927109388060719189778270685934918521401292277474556275851138930519807749157767063624283297133478880977313403590763016841708710565589596910069170233377948993964114727287907605223058579296563270945324701924005655671644266733162147306272033523505503438418891244429199809356478907617565321378886106945107242030947150560359546340396409372764428913846202178424373734189339664471057604161850415701958053266015421665869415314439445870091393929144084804940269738567305866815871798867005214169711463594051248143664510097065427199014630314339723669223222176182036129389594537694879618939722311459409709057856781216415116066127090947559511990807498166931799009410109111284060213030714847031857222563944263335619417566077530464179402286093440348900570464264555527486411559955454995943247408309539187761714853136843959143497478110478671644440927406867805658442312029477567374677913422742028822158517294316425387232417912823612927478394143410472332608835321585341311011477385842696271491065942904110553400491406740615724681765644529357666393385296912569421991884801112537452446419831044224852880314705249246422588500761057285925574842656256042453634643833459079561768212331032666302266181846886809472260469420951939203084325176470703042701739209742556578638552184896550510006998912475999608614122026006143191207699903177884873287417375068287280389997514856321429025438832112395641301612480808015927115614970356800349495786456893110360566003831954884740356288108733728429868140587902669775403266227438910617077578471783675612730877443020746274201440433235853073127977284510463297563245341839151949895918069360031472857350031648929055000053784647794669877570643446151693383612119421137672560156015322487977515848751358846311663423594944269720747914691587943733098265166494921565050865566289174260744452566004331763438912433135361930835774180571142971934701955275342710276891523563318493696378904832957305960202915517621136803411922671161713350068634076324636660870660179403717332166820576654236764163519258818909781015712500917035185474262392588691094475191364865937746569804674831419016843704205264656848230024505405283380760892035598820460972997723793045877521460446526014117714521209263238153923920371380966601489608659604938908196584839493100746541903790739102675812832405265780066586600910308714876313212270705041034862842165041031661046936942599381512914827132774931654243695798379679963752939751337697403161029206720675362676916218292930310252712388832914394152245987090478182596984756159609671120174335095695756832903379212803644156168658973058162953362896114695617535726064247666825642546419570594113315800038498890030416054301555334481689842703524659885631557792371543786346395961192329061025737625333366365084764635564922950864758650398360148297941321284039102779460950856088551997669223940385299328079740212998304888503484716181514591404209301714993250472581931932218496840769722708312688787897088247288636447132458308243053155419173093441396639831454588830197605378063507544631515457492461853544664089292037050986254782257929232518540149635223487072908508691589633466724631366641668623315299590418703877755982038646397385406291504397920914328524568229861826693645154303400692780864718167447462436828985535875964535818669987635737345348583735532936789256086464818332600868748690700389904974987397921897132600319793257608211646848266632110998128675358618828295627420542780557120446615462861205828806735810424375136848479522568080835642385509815480071055974741499065066958853611201741148094482415711846813721737082637516405873383988323049987869252371131607441988394043587168809411743733036277931604177324784607873009466633615646741155361020148851281054817219614189303336541418688050178077165503528470918256474489777602690041228034312581742622521128699613979436006204435401261302052951386532181652657095731175640128493792584857077434813069256265997995926132512641330319936620232934243041745088565068923902174688943483297178406379612557643407225799649650714767020796623710174861219316360211585176807749824520719910005501289724949579420420693926171789566975625488290911208518611748523924736682165725716499508472985705139055992798337665095709189116583310768547152291010814336560079039932356956139301097564594101852564569777207867590675209407671281839644919560701333224144236595907410718120770654401028486463844911560980868890354091624469214892449339647163486253738089457767212025255408218858226956149719250581696320109827364654857730935425231892286544270130607429147761369758959223445850254915945193759515817744338556629970269304918726698213593312180445657077458807303203204196187999515807656789153829381147065646247673951348110614165740739744931800985101737733364491773268071274624203373047684080451059511752514433178168786532823158031530851748402858152083784074977911585385291454683046579464164630294538792531902685823437375325521038962686332654683621967705753928786426426089762230023717297463757808162937971915011616764136460399687113171719256640684577728221701777114024407069933488989609930801341640200505434562580724901067961701274368714970878141019330304181947145544053684165983776854974416119621461057710530722271985181627656907184610628963411292583740984537977397072766264515387805894831390909358031843929740457053864343054903958956301230146222290293545189018858808175946633412131709384699334463129695713701531615351595301297712134767833186256637684799378288701234492304723100030947222523641631479626364184275223986425469619302736139878253972064470465033979158846280075677191562172663879668511031915628092296145238092203186263978286567864402654152619939244244716813066401410177190664680098148767778479024830953475475498238490631495705358513553465104274908109346270429848398349658391529720459308477533075171295729440253863066759001393526240064105167227570531074719353088909428181435566816269522618177540889342505352365876193590320389848636429172669368557408538067097353850647992127092142682223327774053043901934776597251002483297652288140567779284440156426026225394381683035718452660248877888029460394083524469784060999418839870943696882073942586251705446321669727663174610952222074563912127657286399636185378330355027373104180370075308673709604319443040731337131783120352906655089766405067245745107589843211370983957746791704608115268459178560999242536857372078582486727224248407172598581239272486017056533402802612830877738295551261462305739866187591973608600366006910963901065771549394630937591918081141560845527230076172918171719689540252252711651717507736628921861289223310666897067465289966695132703439565488676348833822086933727699090471125732350630143019475059000392988065959982217019084064364263669165938215998406885084143995428081221829679159441169311926598467725947894012713846909051728237210137437004965552500497464574787041086523798141306531077080696203716751673872957442024710751530255151405296320609713047771082387379078366284358173220080806550489735797549240646441254657488615098588715628789844876482203698112561759028966840859531443116614816049102588863451040969616063097381457731750586487358652138028478861390458821167246953427968322123260358236713231172866787802484400680457842071883255402007637046483059810328224565677863947938464948934337912885731583139119999215005964462342602604513979341118917923990101805268953327427575138549842403027764293412403411915628179807455569384533167170209359238566216713146636699280809507979394553612758581228264828723250505862234326048120603463369976578057666865347265500090312663483643516921201097351157768240203937484936855254838994447353883988462876807332785624424519140017543651943499943664623478277302271586742104883136263001804595755429007516579393087737161746946258536940563350522114404044955305371072379710088919348543472974563617292122406486778828870133593752364800844319781116287002999386546080710446074781369212067432165784085682508952666917763772772243194925212812746103063327375518141444189787717487253339271651176580539358752729249484420838874909423552632104761534028685057756222172187881560087099408949161433435990826560314753875942372997127687721701888523530465731687101702642476539389190047201788861776882749682820929771603876543542697135622529024074423127200270108717911802866091778324201404181885037426928909005906666112236163262497960214161501233537752391441820575679386169442315405076081947938557761419846321328700902525543625802948763359614188240309680839738978131685996130177459288520501570247398526259045498368010405428045930963824421501880657523406733191091306596154199774923220029334577660782433803455618585622408367392464796219662502062843441311569338446830266705302857200406312413640953379352801933701151836917115643480867446720456249254381311460870204650977976759364713481156753480860782460112272500978801098679247907308862507964328281623363306883850877055010892635014529750712053848224724893700461708515930615496229601393060140537828694747822130508031313102457281344172789753398752529902094852767062684222309369694940165500026114127858791185903776068998335979611672446301744861319732003660741573002256759013413228449891753295271451059161115106296435884795732906785523070089206490716168516887457681147763317273621396548945492087135384216160372441869427872002346738270853953202719034636748895672368808303514774191024819941087688387674716166000874262691238112287056461505716290853871598851456701052140559965363040728534370353311385488479735948882716337372218803016475489162131812369707746812828370901110123616504904374200011114053550449165450701488252305004463287550138559912937944869874841285470352012339824985768417925463791250896978031153146681401432331916080631441675255464677489215209272579502230101660819420394136681579850338720859816527079443072141370314420062316194989210117798691908960687475477087442771459507177876092660468826529426129532745086894099830638539882694087986100503151474309879901159273056440941781272459606831164103524903685123344181709776819221032029949666848843057565063923689950709930346896521445033839995198500260448046762801906610316385653286999788961123116335163078127079078469175860786357100714904468059595962553624745780856951136793389765033705118440841661492498632812558172884941909760051298627781481876736477956741279595241804062617829125718983287574226409558746896005565687028455532296519369596891169071695586917327479896651791903729691494027470029534104807362439890108290767617410181007046705216654333222793199638053873755184802054489452351319216963027310490001027339493552140163923018818375761384761265798051590479417130263054930773113989636853971554242233509995197513143369615088637771360213583120070273192942674405464376193114988677759487290325375269390474380906432675658408569526988544066090545986969288401307345485935985697960482486570531495814674025053962020772126746924489729612541123079746525217054594170549455941757387229505028507071849232275329855581194475846070685366543265222389099779379056112859963984543987172474525675776415866080548028649295046640402932386016926679441632095694945809123336042764644674055271885745188778859286470772056627555371065775713991303217298488758911487908029453722619819074613539360084506277496261848021924279730262647355049405140589910724167577258280484287015804481120013693997572875281358881388730085587400555429715003656062988436258136383162460776519589161152526300618417443658834079066330481893980419754549341653539689115270110525637935449777796623163445728182102122139208113677040596568657287001992684100475048079202840733794933662680036882399777461855899305096192993167940680957123159808273941227896323118085796262413071475674038016836815492073719248308010769532253308091001495226333711930012319398771146298544362802645122919175490856084227438492140420430700976744681286513902408986036312883949088313045274868672732485147573966751611333538228158894755699567496992293331428261127794627274071520302713176848193901425175378611961172154425361646541000910631262916686635357186121373674955497849725808000370710842600910010417516091532146274246523390642425830541267455588603955203705133747350365838623546303336013085215702177670605721722894533467919937544524117080540837501796174816466860142572638020464702280104446717683320518401211380162892450409302262063148116417632084942520258802224771247520757517752823679321384979489902598286856654848973526430601154848938975231257333248940206637483691293646080605444788181457064440135150292988791171159728177089628392517182280225710006211113298500214730931386489212092121965920955318277628211897129900719864784931058454093195373498267626699134974972973649230909323037284415378094534236319942383727535525410625778127299788539586035459162289416854079032215585739206611563551831484499915833448631484363831134503372189903044884639178595036919125011673232753157070900148218708081290313953686446992612552204370994083760164654738143224571927921983969924660617340786095456903001170633143932631545620169958515890406380973302313658579950736881961885110516782863159442313474620888414968626320111659546467516393202451816806323468698340972093783069690343091590087003915692962343588364361807464159960106755871801334739906566938443559812600362910584942635373654167986306386714208995391580463941174215043041643394432435103397547480250169662822540354168311724449003598633569450235662855084475809602758630200141423595156114627012338213488229516500044598774063658414695084258947335594261632529363140051753127191196292275716317977182960379319100511259730174279153704297808430359518914094906132699638974722195522439161950480632751464586284652692423872871956219122992030114062555234911088824111414592465892977451688076141323257894861568037240086048416376103566432582835455156194819842519524708409999445846452401667080647522400581969048052367738132660290667394458486479211779545024738508473093873606100017896654212226203213526779244570046408546428723964007674861802763791308240397935853844459923614816721726166984994104379601854123105169807351735858241687925627281060236404334219328438933347721102679607599377860496492969294141501518897985928179981949456572850599137245667153132704356892079231958467375736258696170561308330162037528352716107986307266799662097255835163895459848742715481391992089965950018530866933251857884928504008560366652175902418381081693882931453577640316926706036360962537806575216208465742287347180006775725639383837137210378452735007257148004602945701783021120475815774180583783785239224341858115576420096529680713830079941538379973099553601122349641358112620016418697765732428734724300322619680351641397226393932582234806872885143731301671980501126858380943518362851261298695507377912592734752677666131475253776393022599308996677744628222181435161769390717192899080134847522574408507597967893362560190178875445393861536391516767254194862042741575739245235632374627288213253771824009077641083718720073483625664644409075003370472109573009894387681362645095834689032581216657035043461226177957664691466533791493221084541103843219177936220462547734500187631630343999545347372121950477106953799691028628812457001637926281495992665812493192471199647611467060401423032081665667904155890661980046484637826412801289075581356707717085486268959076552871149713329112620830253609764619957502314840155153129751795821559971955109196490072914458208506833037223423590649773348962073252587915831333689903443295873837260003343042687394045051702453023297122088402120677031033899972756519673033589475250686078349450571069382180053831817240640503233527841169872710916965043369220155112099922178388023851046787015641007801412035941433464726462541662131561117290083294279811300611941306285698551719118378791952811411541366767442312481330467852727827302550948510171476958322532372748894148090253956877872440415422817108260291717777091447366722539205155721219162527694509157930966903950384377851419774401397683354550152564498691128316033068000742556869162094240864658170812894775084149635844418030326607970557660263829192238599220252483869229857044943441253857478740915226829784616943890403726497856791262107111204570041140608026853653769241654023501808256198451009351755480535484176932716973154291218902276083556243091611471831220235533491112769200952426213246868422738589841821560812779069224631465483830135666213196059066844764018196870157393082743249058004812861061255120025672551203997279783371095965533958794447895700432808631531936336979780824047425987186179603390111588941649346005141642933669330378610008864821645525789712510692425469918066174916015410828047431319675174049651275549775084413176439219797766247885890197874767932068004321136439898850080283659724864241632582398606907801269088944340716037094892203125288794732545537337809333793110193848544984986463822652800899849994545637822696941503003591451361753684871140666021772329519876123689763512638518140415768530412209546329895407277182279915438012470557495216936983555140374286805148757486434867035735453462054794369012456554460349217182402432584453997225198795496562693042480976862102039591325367572966544025881488828225243367962956843278043060443302413043537432394699593152633378432291292310529073057481641599733811299142800205065900371820225871750659756842690299122541731713046498946079902668509771661514193035294200296804882850762336227254397434579426869274114221220437375968338719722131102629929024344914167695689624360553763140213941899902750620552347621138442381844749347322692170564427067937015061041336443058320291009922665476166969939150467688267050171499477706101184066486708991890618865203993691231564937350568237371078817489498561179959212123212787325876020513401960947855337251281619244333621492008373512509004673595705107265420490194189676047620809138793444647256430662123655550022496361093995940948327555387939248628640438219563591026038402960226878981840272689606662223342477442037537583889974193558125574207158875232789856873025349687170695845941381111332648630158354834952815973571265925515151043144265526030191009848962700033995453340444937858730955313109064137559446649217897413681456003654542983567634279057427608254012674384713015107261632503400090423028973495527088491456526822555345793769183792240013242800103967806300995499139649796702487748142656176649892746618109413920495948324912727285610023802959044876863157751575959440877470554891907167578904216725381360014573960339930054725851394829768438883375309649454301195611235581560678631963546027356550840736413493804248783188770625238314961086482851039046745230965850084772015578401617921999080740770047722259252595872165196202329078840093903479160833319655818080474439042950134301151951431755412548191636225009653426683847409174062830676227818296019807733314737977903774400773855974064621168183546174241080558425240743958597830249629045784306579355842054973698330719571624756127799328183144852453765936065762553461445256437871423763538032562956814288145376491203443036786716859637692493050487921484677924069464482596071906419743930200579390199664358901560784102988683362005600407947551317619474170287321580381621533069375115460155204588937086861938596557478036060433359958811323813991257303582030855329207332407986519271422994016650284711451418570750112039936796897852544186103539270592066104029531538098074674631482162340117081072756222882361909916344726042818948799223729067835779278113860259965943581191152184227198238903270801268078372601623508573164034190686139003806869467500014644445607197282642557103294057724199035438718155703255809372198546288507945174971386060842345422569600132514390044212345494158340346164325646496687512665952613503938321213619912785232455829394402711566646595958112109138126333287698890906658428963544328786074327039176586853126119228511975566658620034608395502347826121499933561203760536160646588255163870884521768808710987674309912178383289831597940178494190033501638924417993711151447491301980750154670591689347600728303120131666497235711670725938312935848304952800485675347200384453582354075900178667263544287440832608345560881924805718514613272037544345962731075724584416945751226113524180242480922778798518189789049276960636690152113237918883048360920165566718534015783739098445570781394964714484780289022958411741880598834383884490694220971414993137898051471691255998730102584520834071462777396482806155812132993335925087617221099716478220216243843582307753060503758577423336562709896687256236344989543313313336985184393608735764994301827355070974372739303606497037443616204396417300231094687266101541671629723085465754146728399518529374598643155034940147942216041457083362725725010400953484480810319671329904505427340158614334973546014172613233015448228872703013053063597715702898464432357562859932268048166850054165573871256710974825998522837146870394637051479492497641053481049816893645171968623631370386051417567994436980353793279459511516678266268721572565820160640435919338546225635299580365679991371963494561486672743894394533084097348301242173003194227427525750521010266368666932682974496330038480528824294499456794014014272762959477572843567805895692750299025366977592962726931819032028124153633061895657734064168453201890675362266738200971830848899488622915385364703791278563658400947525326314206471626645212986500775777770318197359713447097347289988029564669835982196369657237308448134502700065065056239468025185487534639134915997006330865313599518908884043262151907914269400337364085469444747076838778133316048540691542454776372546199580211898840258277643917834550945871932384355201359488689587160446215215096822352365674502490937941766127369481512099957319947569326390398707500530458248651814378229078614676194259585371013831414101011630790882837284057522933913435351534754092761044855860968803007923469128032553235998461927361389207987311136016936392956336101551387498931334250794115670609926667080924068465250818427665173911842082636811399776294518979822077727912752056504299343372417866848548181478039210356614661917873796641596553839439219761309269717528547525630926614979562698548383545873626327995053529135523676325695751666300079200197320676952351474918986671893655197186169008714460986275419369025519407323269152717935405454958538478653874727162410843098145261313184330021497032245296874725370384468303581426816546936877235927663412021549813879129660950317819517022769640927556007492037070648483381769508573217915426448695181471025881849008929103874846468030102504284331471244689630533104378717005808982023901424154785947013293712675103676120735185247196040410181707623663630092798023396490897232193267696965305821732686667617661794557459173821638635459966030708114125135667800795509117722178122254076807249772988110889413027844526964258516807768356078396807806811202336689000763918737515352556616331095214794142887622819441541147076119650269657207419138570944197609149461395007772042280381157585652106075718542440857935236017712379984142879169998185262196629613692063338483531478993559544668804334885048395585160220638609411725962575740204113653135849128556769300840339877577170704308985888449673907022184863420088177503069069218603456576514568837542987247755853894623973976093033021315717718059623926358684901184156825097889016173286187006838856594473607801219869071777045532125564397464887161905842258230905272013402049644545941710568921176701331898255951369255195238121875704261332297066525922317143299130070821737306247271619307225402058129647968475310706929820851118906493038834852607073548465236395059883299626051955076311507267278605220318946681186593455407230493401808066696431438027928390716621232406105321169408931712782925173393561440238822055472975275503701310336872342086945082405296444208562186557830484975298748158171534499693717042356294043057612738201937254757537933071192126972984552284894872675080976542673308779529551711985522973538103884112300944863759001650915355856612779585542697215098441645256452474808373825344733374259737420296921639612133949268947531059427018053235233239270282124452943159353211628711574721193224279598098515483301308076962902115376189797037784850208168212464452956142594853912869822981718386838042067903835741297179344596934033545727044715803713197232029406429680377538659776204407032037437360255715128065536303991099660723857838793787670703345636640975294137048355636502930477665963569734981196405441219130089760935135449122256628841887579047330146499972666973950127632123121293448897669219005199387701416893781111621622984569520811047239207213208891299368240593576722140707746643343360229005645521461689933907712322564516028764120945658779769383453326918606428234003738455914829638898063758924521855398221569326803278900034096234954953382587187133049137753162925306027479013977595206853753537324934914490004854982161489546558994851850701634307930453048005154726617584106496314484815437068093720174024191829466627743429526646186912292067886469227569734828740681531486742331638527702289955904933784547187196544089839464246546124254042276187565457936566861465707986289090991892488408031375999631301525583959311381744590090410287352739318253226040023018706848882816821158804815377533398553689303813830745170236778300336696738362319065490237321633987529171104708695526816932910905353890219432518812004313018907769244010071653667464453564444336698389191984495172345347190857352827490617156703152010002681115816523819013540362347905550452472298670995145624008977766606178469456174128476043186112451193491910658902669719163291855520605269997706194921635112517145457861872025125022637625229757851807575746591701982355214647794934296927989224909357282423265920896162483827890797684703061785171311180053529619863982466640374729927701396162449932931300647237163455057878920734463715811547672198774217316436928203712938653232172274760870433204190662441977159074966245986512805102679220564441091998414429995106944921375365414326193310869782419766992306823488767930160704086995080831408397995780686197002253468931181497472135198300542081999551744628380762541283446885294502031327451121498274767118378409569058629449935596467907781722682312641737170732969680129660295043151475862525483595191992428444604119755300110683889824649957014855517288859564941048918494358469123596407010738580257539565551895727926501447384279933682807215569829803768734616437291536127018696084483834878318990579915365571960143443672366584153200432856710807428360463046869361018951343363851831110058101228786460579546424351001520036147766486463004693866384936333488919356263551321268724085725972515019716431843500252146010109534636221689327532799540840867857428894722716961559782291470699210937153726131040855402998866272437680064718525266591920369852465816480392435319992075001263793095022797754549317140120319264608230276912123595437713026441395959076272958945859058375562836463101605580017286184761975533499222109005496281368328280030964065688742544725778472191733155911600817683667866825186978002976373944286162823199812644564142432863908881908602715915905197934614683900256149578852604352143589032623188541359191877920211915099442243356247969166594306533267159122270054915257862910099055751866687471466352517903745602476324223181535577049848607492343046314263587010052039801285402822800388947144408907442680513858139352878220389866454423725169454871716901686542581332838601120219657292268630713638438037562404122823169202195781154233485633423901903715939204028255775347485190568508269100764195824629603344911519634120862998436485131874519112488082785651026468240915212087752579728444683164082858514601457304266599947768766503699239274857795066991566575052695977051083654265523370558198796010838079983882181514566935941626992981785733987483257813433529113374771605478350792808138089229680890365086941579720906083603644040690951041696802414433467750597383261024258033503415273013363823867239868465997119327442451849212027070124153812876408187469870905958569214038939140217919583490638592880554935131804769951308147025001371838665065153847343492952678549030568696677129032129511113767586110780576379386695031253175812581830767200395720076024771281391768776758525219148699721734068403599642312882127784368672645112614017266041709324444475352746636330589641148930600485652136306934451138081493117321512834213251676074681825604384946506137404911053595320861808920335663959969881547284452286778189245082885448806331364139949647989466382518408137007759539378268298974937094426337780318436606185649454558420095133858199832781918999210907273779730389249232395805636204144407764249785122599727284184644033203541229849854971570761149749661352411038532509840444966377853235191438008760762197550462592530023204425331119274218115412482617812130893128766421943526650709627117610986319956017219691961409943152980179028893475921460090373253230432076747100396690816604310448968536845642635639692806933516233260106633903183487374371792925785152755700474358998082200549757554845992524952208179153773630469633336186181327609722876533539403916415156939310467098060199782949541646092089216523751138308589924268312561443795694092192219953014181144968669788515704390684485412039424932116123639072507467064290610287860880926722710366859012088919701431876534895891207391918146887446660528894392365593984555958123559968593708621732291409634870568791062046537261163456447180208011612429970900215325992408117829632196086779407299455505200556525154089892760049712505857551182969665047791784849895637145831227905880900387568820471264109333651593310887500012920596596265282224052503254526221526053681968669471931221264374481364066838546880961063279674928354641162753338804115149535159102947559301125990282042643383417290656248235074327065570795692331717917045781193642150258723034509210481026316177110895894931328940765282413275303987985706774325951954166488610480657538854724478462539450392801963406301379124284442403252241774115014939706460577352085629371513224974547964899198569503879746176339059853288781077558247451246410059235041750442832884010763471787997031480216694534684134677500209213709216222838135662674412880173563149772517733640107110500621688253989976299255406603623596490212203455272263519212332234211715336219437124296785985232117853730727459986318008629753659703350036231393390086378776947012587670691968497137269385019992945297208888197343067905944375500068590887949520489086370594993026878953771641338408064060246422469773389152350505925786258544120314362395072448723695291995893562835207047286344986329002978152554782984969393453360422418885610550120597094652288703824407312839564037679461102603502096725182184866915485618889508690700860551896866902923307651979787455525511134808350084842151234442899450749492403994680043008484711909304549828244313662520276856958192318835919943813108171619533126387551432003525211309868063967532728281200537436625788891246059815923375426108934697689300304219974338663382551604575474001206862252409750904747781101905707036202027536047409368853967757072029971946693997728905872305268396000232102095696927190427173494078896413652356195690625608941874522613746048095434247767392226208650320229844282504234350979851040378647084780894977546577904540557487282312136440411298051821235645560352831547815632634684688831838279252256634498557339071805789277712356739212795261165063297140647519416041337256717513152492543831420848855083338641652334256891225706782528379772978415054952196015178452507284530114678925187633211828345324140295404478951728824973296526361096401345147285359047473662609753060813190229095810279914013367956174378404670747375763076951085790476788317034485942499568158844012546667647929076421910942220547445624824479131777994668336393505137911680581738320289052315123650827588759536065405994119272900984054608299006450451796154679902204876453884793389031939729002701853630875922924202371914900984610774315159153985817244586698487070200112756741389557851893329224121932869815994605582333284544880300004863107614636726260351187897545725068346220512865816690432844355659340448235147586047608730556048948790902360272395568722084768739726019676951947935421938167387921871396198140571502279575548688202443043156313184169524950142275886105490358470905603119796092726584013102463013121117599356800259707671645766100273128675551638720830576418866681367868020070370045066588907323481385957850396614484460547587343605235023695137455231177236754199203982242343808196394168208003449016706085851613543185324040592796433566539381485828458954509670059528940939456000523457893897777553567071824558340032679069240971568926742278153724495573968320177492277088577379102097561491949418070973926607468993180770739933566957765914560792071425141504392389537028310729860580288869762316769787186706561790894767620425075775832697584252399004266010457714714064373990133898339601337819127618546293116807779664965194316740148224476957024781952290497938916481903321613746433972490154378202084612930281067223919395205332426278511217657502478034064103751910452127360598575405565714036742769847760251675959821206572567965227419155652776311683777453353948379212054270436836863660934965843208230948501312332585556864034131654296011838659124793905659606609268086897586082587920986111135801612167479275473777028302935436960230280389628160001904818844473242199280153404793191273725895276959648691829163571987230457193964359729674342148967291209952531992974775598717641632531375246594112758541889581371080497325784047492335930783265226077003210961969371807698556018480936521817643395503265913290825911487478608984720855042995894605761982859738904432722522822827996455882890652382441239375234395967503864153701094408764282394475218989424640608007021078798343762846773532083610375382872950975752506155153150895551737722123545132291616973720727749117618318093448744594341519871429868502255568371985448503391706108489310484413496413293951899055687827494048028205337458008406230117258124775065405193216621380410010822586304199750394703537497515965353537051768879409563935191556088317290133443258927339857961561679903304101625632323800651137462102002418491550602003164405511249059932735170194703016493890210883845032420321267610645829583051098813641574986688842400962776254819585263650646438307772707419807431035958831959710988397473202671911240633689988164201295097249448526106699502919752046315728417250857994802275631260149087304664604826833160362197304516047117783718972050229510761942455097317080505672861583581543991546137989567631487782924599459958166078929993223219672814607620065515714639621076388517596219989952948301091366897765504216981124320084576677912034093811822688945046112370375715561686691109305528895446113428753739181468981874062905102224140712958871150217140926984142652795896882094557406728237638029395751142244756544674707525663901017714351848124797589955050182586089900387822440571048902329564150251339217664252866375852195718641613708912271638468653000967914805754964882368123773354370489045273702980266844175152062157992650822514053086663295049462305044728784515100450309912059007954202932924782769606841696356386814485325592897150830604307194047025086078491169416705483404808489338489652311715611053811542334601444030563089920812419069014668970232530687073989450088240387710247887649865547676917985026656875716645699983399418944595869489638219791662898982095195758088000636764766441001418766170201504424993970521014661722401242977979154369114960903195918584682711927643619529866992586206834458249836914789132641445694403996668205136833363738725580461499861194890019813397206411520278575611285214438479733520279547731212512455128428185909447913216513153457713805134734587094952572184588152370786346278381023303564646803954255775049795068812047514232858646238658232705262682774849507430362561777214195912924900253915342694340217438081302114323491937618134890381974619029420629291085745491933565574320416191211826324637222910756481543760659729001998667557247138690965351008317650492470606455048060601940000320972487701291934933601555749597776261155606358834069126054819766661541713755239769719029892603157847160843638933953162278788705791112999177223289905181366936028474535807486146616558885089816015167214130663643023081876950432561513982962208427405217359916048072668604748002567036528094338317534747356809682713779889191721772219742913201275425965156770768648563289469939300678170516325038127353358028245725229933568948213786971401189361730504262492943063351752786159430570301065330904030071159986161040292965485099278069482981341282134206861130598775125014545311957567401497577895951418792309533261889592015893099411686604129002922746664572261512289758227965185117079478943084433061220465837537972974975660276365576578320706242102090865154472964001412047346951637297172368593347918790461910187334459729824882129206178590278628119158196434953311090874302964844539352430308165930331969650463013801243615087194167969432067020958695548586056415490534126112247965478328722944789349132222054328417201653101488822524214588862529105581239511586696854154459192077743559975178720826679652340268798824852137242272499788074464063559353240396835607859972548177019424596903390066272929898920424835284769219773052625721798731178673808354674693193593478406862214569210840488933480131166658701273389816910812089997234461991991473048407309489012146416258740616132543260195173629574585018117982825841522213365922884744223170945129985485937520394341916111494572868103963708891272414617708597226366494851346650035096014952794406636170817425201662263502274164851679595533911043033710055514526335254112544001496630662386219634516006796438150537851982462559922205349838889597258842472931589136775532006096297391026403596217952136874107596878710710929651882683224667004785756636615760738345483494790497232528241334856350781253952055600987422400983211554945431473438175751914223664871490937166077934916748444716678419614004395400577713244096634337414677231339828947978954455380313189995551211396081692676264202517505633673261710802954228609774248633222260128106594911707740555401685613840308870163627973970560728385326736469425307463418756201077418002736585515896596784825274187416013147604215049012070192049865630614659403369026749316339115754840910505478351315732108012788280969633213630184005523960505086451854478066885012008036823752716374144294580382214592863626099339682782101022007502154346501288596584096126777537901573087071783008433434660660943224088814371556048414597712904775054160854159501619460527132125772935352206580940066191387030951278654949876885446554269451367570903807309338716567237680786791643256866043142867606404090383140751983690304842965333395186679708496080725939500044999623573653838068697601891886779920687026421607784487700661888372190192975856754252756938925145354701882611976120481566312487240736472172148211694542530705664593486762970402706632593190921495624370184823597596854114776586529011034857197734086699581745521171804324256943766411175443865610113024984291813174207214643786116185630265580232443597637399753300251457783802332560242887132742002646171911393010480415331923221286854476297492604852940363397190752226088165093241147786777844582243093226369593882166025654829241792050073704961813278877775504424847227723747108811616057989385025313798365847025378265311014254795510107429004172359903252077363962453048244063135816024788118197656691503840535686961267021515299101707302992627938719012421340276149100957527519335772877762241953723180847386478052189712349430043427126802652897839523693116914386621179199135715921611533361149088307940584243839754693324830415326952014733011230134541187504726923793197376908113540237041709182514597133056291406555220313563767788009171493659279798856096180856052984335579809658075171211329765580529133114032312876725694805573630522382780149075226813437241257067283641109380594416474152884004638655406111175705436967935366576746084053152121280583866192337414101618729848319023240784575399256873696523363301026396613405722124735519805859289767559747127776002853950242939857194750087431258705188969082749151453315525911246474218675214981588242600083361398472031606008146166734194063144341270485181272335160371143102168696610083171858583917176490721521163144858201584095329891954568258732990877825100395439103206765676367370994449749375696636371896978927461833240234292961995028172772424438726767441950866512616315125203763227235235932114353606955289077117930838838262556099951823303683475278560907725329946312453655293698834270605155784248115103671714287724609967686738875332250559590221341169363272674082427707840295198247923864598780314774371833710303061326461037302263956840657420882186711388938446721256680183214095932827191657830931955719977362221435834942796246526910836508530246829557184189684230149846802821763817346021862347245502458900561633770630778829858182081796131900441905650839563083565812119081761633863225678115776295683300814195872965516746599958866986916015493113276941211999562346306351980646296575624887511863742880721853926681065547531514240792154049988362703224008257967417996820573626288093650843006186212922752350766853417622300220323393801598229809319849894213351854178156417320720434134894176805330229843504321952793079834268928497325831059050837391995072116884147339538873724790637758524718423316174176908990605021911899720286787979698142489256863406432392250834459893638913123538768085577058481290422873777918960685499970530176645650790804816540497784160200670555607470628829531458659163306912431519945462135119630650204346003036960510155217491666991293753697202521572729454553112388814451051033964446888637697450754997983538656546427889577874458265597676241394328990453277545370370973123688893746100378333390333724551981726374026168365537730176420846147206878850307193591548823531105860695381677323607144558022660033556376548869754464807116081143106948396306956943139288166975919289907388342530770113447198966923117259555451701419878210222657402689822568966568072832852045287333797777809674952258184929473000102899071679190412527788938906804005832660216676587987424583121480476797055797477752425042580601272529631448418482498483365752980199380936726905757872969404480773697987369835591290301579992447087876735451592232431673217248276748495735007295278034794560271437256651540103510099916713018494914144769792019343440640500384191737545363626662188428435422360368758060419341013123549930994981148839772127696405443248589101538816554377756024902058602927788590619271994955048117751773807555213828071620876606013866880728936670906960799872857058567834531103195176735294715738159627121922966743983836826999318105791562848208875580860969120471181964145849339720030629815822739127250844133085891371504269362910772914196645427623911156815591585798986096984842651709666489803194463033249689847826661597062882563481596102168283293766993850726251695490652857629632307432054247904215678119016357686930606562962331301639463834665361046767368968479903444363936973358380924845977889407609327133558476883319564824293189207707535961022037325332295442664728244326150670678614108141304238737079218545175037043665125697308901875542710848657667011847893908093849580653909703269037399901563171111376750052518193098154478812057231525016439276216499444026898305472900777791295508120662221266519809747118948062859756499329982091459980312684922392049807931710110720822887211987519739528390407957625467687070208151314072789113911355257018950396482848565423172170402090283839835938077836471672683503165316415015968718600648250819597042661643108709472146138007628445555246784870582572139213389270803647707175364934621650494694621054327158254977041307531466427609231137115608874168066019324987717676277396704654778244347236237724957526928215714524732426287244524600341718601120053657800555966474441098926940766912247061181361808008487845855287640976871580958215296258390772224133792566254045328023620290695891909275033303597809618623190570354607907024526720632288549528770295518496423309309243167083117094414028639090866414206641617177856913662995250462751908932639567643933673292028260825888040936275674963215503689558416705368500834312078293946003960081727774891273590252607492337584115295838033326880912293557759144379239791224858157280406546881813493430651969917003437205886139342188065630340299074197783221283897513300257969381105428195069072967095076423591185352265764253898021194809227900086040015830031787524235247134867903106267657486352102406597531672227513696455257316193431820475745208618142817198358849880779698770837978105241948426059480243630230694324150487973767342552368387793013832273251003400325820860977864513753619242841314613654815431816369473800397776215057407907355794978983378617880517680455727024571151938161728138167643525770336147759877972078763059289523967610628879728122386060930054548260541182791874835545701162154470449758235160872859129110958362657998052192464777105965505127008741673229394196063830992178957560436200669705738330367357749772688500745410391113388940392665708898001873172042617307615342993266629135078821381874744742570782747467564938641340435986963411522955488827274582081050060410198460522160721239975182336358845118246883986532795616028214324111826742279810003483553942018290291270703564358113340725290731709201962918880988797389204147484571978786422641504866743662901210120059041094109171455040664935713382128887729331962922412609550683614752933019018393328929766718543224601933186214212717148619488804465148498765917181874775800062713120720072190546482329944040219158523852146734906748109321775150010550796292255497859145490521018931562881124165120845633794836199026411988925506379108952111986678047119343324004738641380078329953379086069337221979896586194288928305708382641553472276422999042626879714168943755396578970375760240099979521776365544085650882809372433652963603264110744010687400748170896729364502336589921848996762171598203930867039485507900424754168191567624989843381884109502629217929293416510051499475234533131248505131833342169874339142747382377585674685341129495786021263822068614595115067774030416032018156918133869663375501128789802501179428847867855575518168429804865276878608380945134328479189200207260508378976281633765090717399298469681866778621322254114347768115547615913244670854686241501171547997740586057243889995158704230951845386588553830793797801873830916408288181201020541681062798804911760186543073769836801681006459768964296148377718254084827895852986973860440778339783058014238243765581888652970800377369369653615874015157831265915308814484299149670467821176027570934969209424895113652978618664655853019826840678156901326143270714534123110004052592305302916433221429603985492959028856922399387160669357343296076256753174114988459465265811045537938721684800943638406713348487923455509674895691113381144495864856738540251512206798943525417200082530315211131623131026630174213309290658782001097461353143800599465675553037885976041581371516889807429291640282284860134187455855464825653212577325397176273759772975006523401068667189332385419797287898289952328919343739145530124994817844271168686941192217082288677562136447924554948290563167823216258711654790209894526378925831234162375273403387041186110171734937099292453869272125151020853258461898953779114627742420892722181956046717535301216670580513147290157102980718214157784111856701851130308717996838737330327689881175612406374223964191640821498124091443113015409587778587964062475548942880725258251536621514173463519949885398029238072515113082648314078157578867253953770756583173564939887939171931199102215730850948746777710154975891559219228698246627858991682443609294826887637937070117626981231833220575106956395359709644109438948201742170506401767860963548252304802032022318680123499282929303319053749735036541065370327075784807439277287444736211301816686875277883499756534554086354946891515058186794048900501410817214476914315569712430329080497394783993166858096194548841349568222217789225322535985246844870940434096873480651165425128543299076986109533023077330750419531664786211470824311488120325399576143467449835317366734923401455045334430750936004950078636386357049484121723781079167134766399347490089492172269810279369417756736288640605160236793659503650136448804911467904473678178190278288774980808636983617916859028660045366575935938622351368389343176444952781427307642364964633687457343517794653383152437553042088297466128166886242687849739513980211145718101954166638755912622715061470167908668483495977793863526321412687303789947019381050709520872780233135357477741891172923602543009666172547710829323506572634009856354365725613228046665330705278965737778080887849564009635868279406831669676852797678067197917456659597430231847819459326715426847716974751897999278181667294792248967273437106470538187506879865081351167727209846545645102577304775752843042080173179211188664583326005976022976824455043104279962969268837885017985575541348317299665275433258965816050426867910910705997699514570301243092983808007536484031502008032844483809878183905720278820960970097773573447804769215530312904447214454531107993559526427629695789038071112614084128290382184314367442133679535515665361842408390496402827001496065088075598011712056678037439740269633876579999714624130719646997179160676554040220033064035320710333199014076276636660744996251526408343878483647810056294562946868875793456808434935787297185488384916771435463468753185404814942224389813086619326587591976135245290308289121376693461260873820175616147408143278139009826333808599934425031598380961429126352335077649886033622495979394364242573766325497450790445911990297096827628845944863842417456974116968198363948514011147219533299436892371269344658121091743960991782768715457928626472711964838920148602591981728533872637325930434037575580555609419972860322920235867647654523149602277704845029089715362209673747420512760418171594364501970066611296986972998612159695077234492892972792561046708758972901082194932050208872675126041717433135848969231331600253625101500816659909560299381115838841037334084975955390392613812896375128567791649502927673859732639928747870380329781389334028655892547362834678931124317784909819785219699880814929655056081938779524321953780561768213780614372339938140041128924149141882217382771796910923501638189043673915503137501575706153109733797609593132156601220740119800854292019339549731288855265231253012059204223092602183380889059046750488885993934623209856234477535237521586263226132861526548875864304874887209534135277236627058952131710871884591089046828792583611335791563234901102351535557517688404222114206841502735269582421166986956651063204493651187319045924129522054800816236195483754358777918728838380032433189588830384410396233983453805447317139622002283469975714281299246119585509173249065833790118344376555461384202313337993438805417059240269741531416591540261075636380284145933082705518357085756422547612121426277947563861606774092756832048883213122193880162167794470933723874853188103134832539688507207453144665854023245907434746370703059089207401191815660781507482325821114377075709105020547623169245429376242156443248383188629898505330524995757765410291365798729383517852905047352149161196445844091904179434486459965950035183110552979490576077768066154270951711668038097425748775404992233806776282040179219043311629129914500717566129355904863592363009842045813939788877969936675232241916188759609989310055571807315740456056706695179418722120274665511753937760966139350332773465388880096154214556129402055324267717279095629059604495280909229821405836229938822418529433258750917712188177217041294731715308181447962898827917523240203657348763743986980078512363630466934139847858476227515741941991129801891755057820274515478319775059512466948903456907324624683093945028253915534537259435148302503030365354136165557146807330358047387332326140006452385909446909115499711616470608938399005580271771872779438248847822768666446484267302494225625575956647284356395386898411622372780129253945561452312025326447506120313021624183292393710988215699622961654044230981775004572749063449030754300584279755946445346698477072773081028713280556931636650056963273229636907965853129238778917641327930072982178114187767716604041793816262676595070391643702657242463934043625543346834971813049044759402926559513848803365097731846891074304882306980223024657311502240493735383221363420329243402278927302246419797411629206620027903996045739793026386774634799289525788242123173565432068124857036434305647503073553008739173432134853310940233819702643890558420812512582447924263869522908969606997290385099937380181970921874844099011141013331606169588145758884228611000142404036022783053910275171588613467814430652448090239624701688104324012811744044639866857377392780469370044900739102749409583718680121043816000800074097455335247665688451084736081549041261688120135491919935078142468321243486280643976937767946686210536939620601556510966804885770533400596691133187832362584583554470865950989715886375293892666409244621339895403224578757114073578582014003348047750288922711415861806322395902179152943086205296341867523789427994342547632726551668146747783960482321902476562338452816389018776290261118619025779459377797617188065783278370684521519826756653340594956179804061936294049716925228044282234943792977420068207419310559517209646976306023694284166524876539689880992531400592049107891265423417817867549809843622051487938397791022168049064908747157742112618002395804522694319262549607913998900145804088878630046639357965207272114391050630125654025184838040781535572962004877014218635784167746446327949927201338551715916364087350665104540598154770589361379088774315543112081511026098449171001355796790929648794419295044836204975801440029408571231563447901191897840669753267350713178948506669548297793344300041486036823117302550655501162478955775051429411893885519055620718053418745345020397937922549442122824083073352711153651172215139255903903920719244566786079072559522700365622826888805510671427664900815716354814922891638831048757721530312568107727361771573224097132199564918719554144657774061106735249642299223288838743448489265410050393403966526884827196140306192140337050319600896421238344595111891922898554960275493156394293579501113619383977760420989277295286425411611156062616381216786636560439415617119935138309547156741794350900344062511691268228263453176948503921404847991141914974303667108785072951008585728377155563483876523666359973023665838059542028552656780457320176181429588516357305913259692284956248041023957512845959983840799167162126910385993778254667321323027957631540750879638391316293105927009881269260387250724834879899054320161316603276008435637930023552474373610946199077943019183171593782135584457941131723923850413262034385897451104071638322956655779370712935543407883936718201024787617993391089280144421148759335942788418862962356155834491523749762174240173972298480676106942395481930953987818006706443928559175946252553758503412505097052153951548799918762220175816214107784265796745528456216637846529468692913969913391255990955485873310505595017598195546676321899988970628543497677416782204303355652631095604730598598826688769596460065369981438208772733939986126180883879537997147468363165843622773178487845502144348128905203230049804646462071630163712534861523850320084421110647705335356380265929306856238133217615206199072907306394718844231174938364691070571824636493158596813794621120642103988336719295098668942303364995300834239564260812238396587115331066222195072743833188253032861608392600517622258150116190312481511435235942482103056378994845293227029260704965043533369158054435745837768600873750506925364492630223997034914869004825030839383121164503166780256382702819314362184118312651197874009534010728313373218512227952041555631135790781646197253915888218638263926873562629321693396303715358605708001110179411005872826485354806200226059354039825999811908478466164546789064117704967247181240328209933753497366344969572199193713969478570692324163442754752213741066601204085075755398410705243952411652018573011146896556721311979409134069657817533139117150771485178287962759234675077297499817892323918563844409774997204811329299813422639323131679494346599517597142899826164783847021043504872810248380550434557545494991849928398882705561806874448869758399953239188815846334240185930309079367213386187607724835702044338325053096838878724234642266022387938279862477972841672324832589894855331705511915539110995265600919495361527032906414390927811828077825489401095471269665479005015213051094322146782662835284057674704054147126484324613533300430098101332402011823849867842841468044634175939995760725685440855491728181950729252486396298084922471346543581306721078362219373002877052071342729219956109909397316384067818180241952500599049764133267366357560288718752691753136296979878723891707702437252897181036731932925959274514204612883380125105287919067068105782005851453738060746293711152510014448461515193982233371596618890336582775776213381541424822463172857529158768922993209321495650618829830389727206437484482881275146332269783344222068445533453185949908319069202948517326030503818642641681360858327008111133108217767858241956207975450916019841110515655931661874299613425608402655869589426164227668141341435864235494003523689460740423004692303674614177229900225151897447342628570841036255071424363647839232555956493775173531335093819632120094459153431049645622991638983513302758424247541019829328562380825053486377978403085346928250445682392517869589894508856705747560484874195034014452708262620553065452876590040029048138871400580144626660232186654491546532058085691648211389251854518339904735538791403137859053715033948455104469342117133017158627341825684678014474309371584561936440309375889691454920611050883391293742480436551841443035544067791291266093504201374092762894663150725496479106256723349602861842783613658039631673723715770794878046427776175440598017715141334702061905345505213224100763166170579268533320365394317463676483971792485180416319340240368083945276870398056475715590275741262959489775855646909041830101719989816028567967891656354985355755236621823473398889401489888953324086180419688030689738877538311924677088004279346954986731874596884210567284439302523704501907039654773342502795975738308565969335511893181798674923923005696129320225652221090297289301083119401444017133800124187032566560481731400092871941777525572716281298398660535981429288942062171632110766493460940836001834518266822018357056063976893984368813155484753172586998611417249338557411341775590872022045252375718847807758371407100738079818024924551245409957202179991360249544906008215299720644289512811296348138961000792539640499322656301479393597476683126583610184703227404751690589477864366722151958031482072400111075549799942418897481357761537199940889172710410047796273746064332856765761131082705033320252800793410274987166815953440256635287538650320761169649152949838927084979849795598304984466495348214095605810128059367846372392903118769482464196588155534200377822287496094209974510500294774999140665082455678585297550432100170345318277267777946119631914851347042797783256099305700569925216680290634213501733397223447666479398561363805711707471427586878961559762719587662258420299692480807533848217199462711582586398206369558493014982729819363503019383701996651334060360758671770921226946310147075037153165470699514752846529913395955948251707052531984354999833555943009467829731573442088697865104230278598117121161419634028741348880169949734093692361143058231530389371966121535433607415819717237411381291655638248470672273392658811088484522081925498018528613416884387975443132783558704273486494258266546520883829328820036880749181934304108858205720328421624561215606698051854702124750399179730286001681205816711200236974239869820944377728705947156813204097580304690187112039577139028487870882295409203928455316225735432905252229094211788726193216502878273409999464969306103690613042107192212519735398018051638287274491527878554697605028456359687701063021747852686384865963494076325769018821031977728471111056188543451494748346705506671439672258632175368668738915167717638657697347095323246347998332644594759435746699710806472272617250982940334912508881535673178959002838064371622098874127262353775159883749972371730804916188045218150342904517126220314907447207028206708863266808023098027971513620582095723196756675054173765362046396999872719677910687218394445543284512540354347921649728553903778061479164523414781712699585964429847461330701654235084927019845284540116871017292233737100282748798876257895546894646902955268660983730847237250932991261365276203916139273088323297541433442017440276747361357581122956915786359072192647511862627781788754890167426882017831569061743161336564781278128482218224129127501966310281257368863646386907470524084170506202653262712626686536943248114375252587754219118740494491941770165124546248855474922821111116429589916823150540982279317213054137205403986744505738229297216101159446298039492681754147494095358795094822244286531523921165128146469139964848532996587733885780315168969590109526141193498303701774047346852591953105901493188062911305794999957079057901086459613916941081212929744403677281782493225740501034129706648194525777263723173843500250993637269873794250732727575101322006257794502091124898445862877532508348131980175460693790686311472239475444813452567717539874216926363012432561083607223654988241488642135041445057263072567139147732336188498807412238769846272493166369552878525082866600225492870336789688973801198844787727008105836213076420364407852097337631649890704406197870789484456976871700553191518231491554585907653342213680022257314113950632996642686141969949145936612881757946255503539102225940236281348496187016425614488757063870050206059767533874889942988665558866968271626444467764754103522655398421037100023247978849256456519485367617135543877113429905661870938897161162005500212977118081190506172506973864456453333051889935627353798373593567998617560859700825978478284868859848102683008955830668939240595260168157627399253573678238408189541663956651836543756533652586579018516544753459504515597658962998999643398656884469457358316541696603681730087840319354522146913366950930650879111820810530553642801977157830501736104666320599403312717615061040086663286292145343145270546661004598847332633112786400090755323410138055166937219855164072817030245963340426263699610056311141629119432747961765563005557739202099749401008904875820057054020131077380748421701520799477431153935128056251394713835055005922420343797650765231949951420160448645352042778676862641706635170352850968089164933611155664805744493940291830846524479784953419718139298402205767443570994263948927634344961082007916222343244945221212757677116254592026177876475794864386728197301707066884411709506297709545940246998709117590630327759536151696870896123235652775954083601110874429540772219003612868824210387447199237579743614007890789264125704283909432932616405020279730868599040890591946839884456746314602322827658789939211455743049074908808364198647019461388610602820741269982263522653301879000006154963540679610108798624143258801245797591591055269873808914842647105960260741311274447198603965269230224488913305743843235926223620359845937189692747268642652492972248644752926355347817392934039387613848087104610877769249346034148262026093846477852799698604460896365808909074601342114641444116990302225264953055234596116889189702641970950807421914556706492113894956327990964550159478013232839447141789861671320239928504744654443164323854133888069028442190143783949133061306914734478938527622241476893205459979000323921424661682841161745086089359890346457266808348471576354165199037957296302354992165084327775162731461885103423093288827806789344179447019428806581114403366779037970485164317054858053670575851360626859783725974937699375582229635744437491011145396429543964518922666451240226861664635254485848165190222412351576396137125957462142033422881558327447427878069657837755326692879684978344217633581738477581071201105739641364694408058301306498234528895675748346593263780105026314350694685939440242304629325034749586869489341929520019147769945929237699733324918686152022374307906546925150664683588293310117895672984577124747106388155486917077429994164519137996330487842777882664596023209831489824342708434801506051712365959766529431896000567350255708691957887040733774786955218134520223264501039406213878962013585008772015476568628406765647099821664604864572360937270567758705369914882252026922736576901507963806159835662786991852851140993118420226073119535551903700809548054998658483920296680205662989568398997787996833369129923852622286957563960351882927392883314605161389585707935929254904249865809081314267953817619660699041910850003363078675561562347975660600967450735558023937721294120205601487151624290094064327399737691518759785868920976454842214928648887263275345699004187267588368445888390624650690911030203262026554571797796275200700945946720991680086523333572963778511254481402013725390158203550797802490004637900419262016597815021497836441113389910001678474503945976442611270333472102609420530340006694263910493948432613544431495648414082267084627352965855480811140569107313970150232851422229357928389686765445079390037687546694365977766971871258315239056708647823742845251737775630877963598652033819866649972766875303496867434740351674585930922151405773483898291692412433483955695451814483674218145187376458923497147859869058005180869803684794143568564129766907616559801811062949839977010736016955526358168734096662403618376322820214081104913262870029446688217835431423752853733320220341793870895135494850592695699632914404398554094576887686855538631703331766629740048287904121081364686207742521630338242015708025940177191101306086260152473606827682986636912453917976709163675409199836947642494392857567256825119255892776255641900748143961881797021726965728091253859537563776864877261629904560281020166127247566948155941943783705325290305930314925050904129327178894633515152937008703562276231560450408620106081338817657755932544588621728347106908286342297609081027341882294617868413068186690390504165508574815898716721161907028107418174475682946545488448293214676914455432868136824148908213131032339345701771782847559229665546332986546483279141262385667767811320165936660040798350738834900749525679031668479651601660652235919395852304881693880331476961148727063489025722574242400456739579089609400722065317884669676650355368355529308186923270931294876631654837695450266542939832177007163717164283418040979178096023466284561952000561392448248758087706858737483134190213079235170906897068295176656937135967156947511151066647471317709934245755136921029473863132009495935644562888272024691027593108059199947610998353630709662353017920925437810146561028614886683611376564618674428679924257911505258207314687063128373584080478599986406203855074229139998335100436966472406580525071275878652231701466126486152340013482836670854198776970685049985853618598853553890212722524945467544633254481892075523706326858044854318542282294438139118953893744640053539729663834701491119739256779718702726898689006441675838049436213285203070318540640784747686419919362896163821005572237898703367409560064453619476244494717788305991515935801942034811829607657481503626745736970448567869863276848676002892274852540190517743175958098153532913422160003033540043460514520932569570536043954066274923337642726851266059576647930552405135820318813798926583397490015806166408662636349875023057984213113941857575113872424212255860367773621412257646804791554282077044095017286913383592833069002424177762482021970285297714967723602079770581302114341217949174510139687256115148239463788038008733273682765810963216088713846834785435037552193542256678564737267451516029618577234493427719963713102142846994314457072323977951248516094263057026506125681003283865706127139512202078710361201924623343440576829691089499026047484005469198309467419742313341311768866489985794998824621940789049758808288903117819603282158078167517202644675950622838122243599420052390779432680742474408281336209157941603869746281256689593545111317756579557367032406794325618353466221291624513264512012858962856512801912277731052846675899968333103629104011432455115211903010762492065358318283886464687460530751469519936102726940157347118789807818610882884852734794441168968556476736425901604285760968305211216532304743175935939108729158821163423956888968068685621856004542861100673613253484088137487593998874870768248344048589041068597858942600864064367670531115302042706700434761511199607445993760917015240940087291629712805159509733128144374379132368643731491482484472033237776931582879310198409353267265675839457111716919571564112852349544321601878879348281842060276491424742175126017384499000334689347686306854766534236094139695093727321780166225457799926306528696830300157866415120334703535771827512123472478711022642533045778085336736091421162288333200120980250997909558407915575134521079520833037439714443799671100777498613744030354688597013822991479497601800465838184283245224047696875992677553988344458616673320413273879003111739894957448513520897763712121847741231092478858316642735336281493910374664822108310807701537207566657756939865114626285537592980196992097385991970860557438024386217319799797867666821588235883240302935218441019302968236740836295878968773994962975370328519198052051005801423600767814114575468623540653368383844378351691043598959651780512174957097703758752955998426635783081889322089366901211925230047022515624285512653364233177091979464283873925273715527274218580772109249583879425533371162631003080933193600871828959706457202653637499284986138763804361929127637852920038184753163078672121250326340545483278657912337581323527468379314039930573641982094088211924461283351874335252854855456396682160743226722484225263153593838432412568158890299327314695217653085502300083320394614501281021266724879452757122930629643882735974008474015586317771737090356586198746319173800230346449725432852725643263833457028095295458052684531304772846135302638379415995149444131850066467491293483194035876498421208784535434126745681536175133001980793227937142254439400856049975432077127830024931409927926013830333935469289392803581792126466180647119148437926637534174788712699642516768931471234904932387643377152347187793241452334838254454065847975065910924736567719586746551861711468383948516830858949495328928210276577306600814795293987738134020224097811031484675556657817555542099956926656132426788515690343704611355347470351164921987296916575726466822948781122431721856355409120706527882463761748502167081739598441066935740961257948640776435412847553944233551621052261868240484830082426380133636756917288078036744612089030469395997081375116895847013006521889458829148874180227311000869742880167974041740232333172725622473818017876593077518938589504925030216886100402900580711395292930763031539205021534043345959890971244534193786198845898931495934048874082417365657773745343190924305761038447492917691662172278491782616480519529462983813586911688399952478086968772786398367584128451074233782186694287194752659992990867345814990867503236541765612711022192157156018975224711363770866251634434541569939866293802023041963456951791013182070114854637535357910071831547926385475705676131661801787301362401055543330504461530061669266052258917757065784364540404213753053610445027848177398270603656801471943486384374886024073220138269105674444090018770029702730269368472346505176806734350869169203254547893224871369061974998177756406603855532049954183169030406348574792336843090893196962447685156732171524038401244484492598070803643681004112449555341919330370251797734593611030830540748403173493369987408072834728080206144353861944109476403369820001360519700414123401786708055285505116679878612940234953196204651863384958449056060313298484681615646722499984120605505856904372540225489808011797332729904930413283306442292989248760791740618040249995183250615331930761625287484846517106289044644376317713934177221221635509714768991983507108702543614141937973246745604065888971630902857680653599790833701223205271918509216251267764461469956259139535329516543358908904709318072623199963451723618824842175855678769017239476933973689148042257059118563264129862358521336747356144266357249682326515400028020585149851681480407132499635085780684136387369796282057786698831406404568220653705532482799044967940041120378230078795699381500762924971606548340093848763790200520432250152876543406012767029843001913650008184434185162900723730760990326162217851530632647807783791725790229517438676250791597412208475101804107422471217595438607539814379015638487576586067728825156961434230043011078359672319665402433201395196772470692956153829308234356705461856003959781462217542803701089888427424609190388998475068459394869094620197580653393820910245478016705737102770463279623625680444460117061929587581058472393657644671672055382349701040439040198408399584128802936245411412760363620895198246335512705711974831838425376030197857594510826307400030102379487233861861295652290367491518868359903435646358705198613994399737836651426776850935008956111633734799465628170930542284117339825906923479503936843772676495964074617698746338908078941039135938480564990108815710795711521319147195427677055924808339912218279402251687972882614461830685685436838659862638887148805614553526648909525524908333311874134289204716428156772241078408838779663147476260248798592544502564520614504646409369537387363501939556257654436872513901139349736740269408212789098379030552749857244867597189226834896100012059023041161828962688799437138553579589885986172017281292311478188866285771582930370113099474920448642560597316832696827178715684627193255067335798922368098746100951434024096408753041089621116628723977533547394205208034191893483581856893512502012637505589617157741807309501000415782139192935629243091273275978536456736992289655747923460072628203554168995111545519204122701952466201726842535567399454355990012612542349460146952202999704747977083226288776419979244743680765235724801622093568526929556825052228181194667516163305909968781945937871711098172702798923915818861616984870932960133465534838652877960411974680897662584724552513735046573647561971038405907486150009781162297787962147095534569004216924472121096015018971583816314547970170644156361312153773227071904653984194780433519585577516428202573370403268430215613211874331329638779449139017522662291723264948122109169859936446510094935243380009030832350834409945963259889611868654788803121666727125034485628498791799515530318583186781573788376791041736128528726122738348260688259035261839679832757351229805802894172807451802679749458278985482007316265893926500261106760711188871805088610356834126766243755777546749012825962072158219989098039014742113220815959747468101471549422314316927534229720548019956189291873091952315875133579342215171425110863400739471494710714792474861700642879141212963263545900953583710399818494945133726077096573484260806317172987688972881689160829653750001626296347693918048787433914690656842680711089588231899947530846556716720357538802595947372909874074676644666773658641710844083935839863970126670354291236221617116882625531064604902144536219730813276689567231985416922085691264156584595726365758311354529346950839241136365565461870773401895989080041009490471339521198311346895915282675591953999198972389225880135293605210915266582451687802804476995526210109043289958335399606213965203970865606351509001980046619670205014873108561868046020755565315948720006569434923677365378766487871305614403120891158761928392002280207732657423358200388536746809382416853573812078568482837386863009468560386999754115988031179772478707937565543755972537959726869038051020757045229276401045915921125182225153334153844259489357844584434043211436887225688338984292195868816836565149034618135865769363798194322221879740815411489185468469843368976635587211386170886940272406249239351032763349213776807378355810844862484701012520260431319640652364848580803254533536905249827728312539499812983508866789310961284869083034599798243430310936921649409208809629505846103419446517172475816131032442181561305370014889104778844887687839281756355367964206992022912075500537783942094012610411053992778697408617346785217328171892131140755293228211430335922301164331923595154001490405902490598994244913489533713863414581989667974754156556986263992058221761668259705220455277466884245169863577733553947656885168510903552427118268156779319853287489107698764470472798595196254637853440474364320210458100978519891595049508870535375091825746153232182320267477856732318671557535909215941146006185071824901274006378317186469119807441107977176798324412245559125914312955811080288262283556692491015590542556597788787913221409792978120715290572132867197001403929685701757843323716201430340996176335951219553943254929413207671743197576897314623276777993244911869267731009038664199753476045770900916620172743697816890141515653286449142652646923027767872089020067466582962968481005171508933452600843345934494435668677744101827860926189521462085286420888118471673839101681296257168994169499134077484585901692057108436585535469909145296682281021056248227677234887094891154239604794522623680336978870104876400190732970990642474532312582779143210926911721701686990012385027238114873239455219498085238237361600704064764145280367589510311752673165319233689616964114671954614122563977211864180658916540838868973073604681647578620328941684114106415361929527778817928869269088645086542994748667847275100398237239469743122894661126366744136967785928906799664932230330334182772780532929874748558812348741852444585203714322262683046668281505529439567707811572941666328409245648726197021644180679967501977651586013856314396161688834944500164215158037405857209237285825697209954021857521665850760095151332590548372550940156779753590093584643086596800351974032038199561067723735482503815300341680449402238148379717976995617928234541031055270675699505244485821507526826680170547094237435027535905292455611223280059583819250553568223351842899294024977115600323411247107733389534841102037917042052011408418913050594150890365980202177220323169402350052939586052517548332129737322763640057797324615107187612080793730467710269959949252613453199756425336086348869016436450424338156063205254654307457231639073977291088656979977719252471937161977956653491857698862795538630256925516952718240603459110686483372694929241519008596165207648240137727348352821518841580016996251629090934139474699994799362160643635104055550257662069895538788440451282761554162403655208566136350851128178463641883446190781749759343340071839185416963094029209067022561582250085267438217865041508626311283462257354435583148454702183262022313454739872496645532983481529647989645069088338698822676039241442898013961311544884040711810617954778895404696221324488002254753690433509256728708520089917313312678045775385149017245605247281902980844863950633867390585830142557093184945275610839582461949563459725676451989903745391268346017857860547054409165390624595695410613589093242880262918007814940336558633270411305578848744002221826227997740038031911938332623218648767363514510649695609230989960508243863955239842857728570504807711763281581053139038402669919140706025151232962580380011072096304596044512704013953133035879202440406166948690402174353270504517215248695134111660019918513717251253579257664637498931010835545650570450403123313325259049125726384871294267486557859501524881845739172703434395162436692661751362462685495780620626667634927877909660032997667941571136593547408840118654868281348823889020061021924954553465015213668296423709468529537380965498697374359357602746769664039863861145536312664251626542636472297334182324474284563551548024985213177553820995903717605442971182074360415530457799106426405400160883711751859567776387230023228319150406685300605670534807198423724071634377730369663049246213751590848947978223740043596998811864043145357995586193023175128083077579172827615641423025019397265108599324308926362340952778798346223774050260556973065233802061797279216054156027661674273805517801674938712083113912444090867311210376498295389184862359515117152528672601351594047323872975233971879594046446440546231517740697085025517313797964620759323247262133883766922335566316850271908377540944295512554774954411652499373950862197855555492239884893937909911609399072371243706296902617545944923384598431966912195747130282032563745688530446121377185872579810457696401932890164221116151777411803162705044570152481371741554334285098883143279733448041919660351098574503509188541158764381330345961686768857477226766091033837125530968009757611492316780852731808252942822145567613070859873479623470656732804599029881513839456295785142595728918038530484388652650123415826502346882302867733769013248510767448089284523450436655822903473122047560923647573164137963944490525930928391510919894561816230874564832851516039267359802596356484348171357194994660859031686471271124789359653926270784974303349612584088078599703515396931342064645808496520771341645977359284483224891559433981636527033581799218701529111840846429475158944610126082429010164053145684202702317272013608275678346818683116533895674779891372266328651938113108939939472134198877779247039311673203495280328514344552446067870861533160447163298260582397737982124006260135851652620946083110543005468121652532681878865625106600270015483796736821366466462735563979643939366971596189758903276345500901772155350528897906022937651217479584531106752478570610015387715271736456138383666687132702932777380463616553442581079727134020295990232886298480771859108479633427347403034129711090067746021291347234515443285186380768168479591196834207269219883604282086579411868207046931281401644938296883382917791647363786792692933169185125806358652623520183304091739752380042744142687029718703122953043836363531977010246504709506355294669702098492876348483528785006676403253534143393921902156520102836282615759841773867568037919629204914683883493679037758721682311720545497057809833644122313387015528605559505851225509428409758428631804073718710554109684100097465670643155424299759847538642626261686327366857971334197123079211766602259621603218631316656651968323006314334772261736044988827571718824558776385919328694379887192348681384904935136380217911094508298419234849886974446473757750755834571944573380308216677925879476396280850958344760389064905393766964287931597253700629675592344347685921999492915300882398493247075130121979894428098054954199594408451343107192135374407523556402033459354212468013053056574994261882582739937012654279447729587965845676180657704976949813751721052469474630569131923575176693372569838550402617476887314343246935190097007859792588101984530204935639281509762865981060261013830005566638747264473608139114553203459025022282609602665256708809643109800028071289926704470240283035239235028651784762021950091898777223174040584717008712965488665005194097953707057527639011902179290532917843002687848637157808347106605420702960387038982857038147929690855115519248354488544102883928785060820266282679740430318116728215736825255309220472637761043213012623008995128740562378638130144817161183924044760991722816971673229899347438459282884238595491780213363592999055528679829028673916929670995443493925816598998315766513144772415479528414379510570862764782332075393253852465626238200186532202515471935233541019070635340534382234511985370993112430412359481540189521686060135755171634233253041287841043138354137530794660200498288021662064860499112465767064046116279598725304775253587060785109186984859475147070647139872521100927328689193560456973028124070037439741871678071318217227949547375747176823571286882865146598315079798436030146408298773961670021855951100358838423079404658079140955712312626945850549255823565181547078193341727700030179643353960338386985397784936101052400354766000297623797723093170717137938689018701172429204136476252190229516382462165779637176740539601297475313571092102851052323775726536242246786005861137510515039917271543992274044121085051877182203033895287092057920968303313217108046215935039937436087015169499775035060800117942737486937472529045592734505154515660446909586002291222232491292216655773535052785998553509138049181931142686317900778576831152989227584853080316915524561935493519301916383352163722730075081796293710821284091661915981015698663785153412469911180447976243532631693647220158011892131361910572638207470536576845978279183728687693726555863418213906105767716795269934843897809223411910736263425006430833353288943755380121597221305998192657127647739497131281312156892231965414169385269859950283054961056612719109240865529189878198523500661170507549847362784115920129622278960675381084792714832321442573538287373608640033024736935893582813687844323159883335502013772667549936668375357951093784483984421699123831042506682695431502287781070696572175317501015200397739709030707294500988077804002460890792441322767992653074388389145803920496981312073820011131117792536279286487779204502596364279981113913869164606983997082903423121901473558385053180602952157865632452536797339767683407634722323230067239417535886497380560327069723072498148361522190456221572006292006306468732022265350432194156384844825819778870993305146333646445228829243708058633693382944880878071310071152648596982440177731394461696689048591759769958587220048000817478985710368447234060383624329359722502844138135739252368736651012927342252931712316720835219078785762338406009164574677641386561386372542143813636252494650595518426054807367400710958509887989112100345231922778035064348600464806987176205445574809345980677489143419650062842062578891580593197777132762265500065560439545477863130431660530678755007150450633823510537503561905366857254853492368441875486654592602546000228916038511914450365844255229199861466308632516780795037260228542386193367967429459914949430754851692186079500705940369878472078524164336535641813449862236352323485769958379978995451815121185729618519563719012335056108737245659494100971438148913001314162415120646236114467704946486217788246944663670783899048426040680266516738234199377180831806298100671131041057316378602015010227405708049745475017431794984769932414604230152844088774097184128876698474520068848643287846866971103197237804095556406795019948222233230926376814635195068440347098034709753275259432186661963468951425696718835064821560122643095103716605994950398237592821662373795341187188157721271521748750707240597398272113087220181880580731600736889798900927594730574427464160659250151257525677537557709038783625608158962415123434440297989935269288168161237189591872945857208318363720023989250179553116428384491639842783541796025344309380513664211780167211296393904394274938741850605593089489392159963497194804107741077950616372000701694819302199756426610278884935732490731328907664296906103804348103900096623372847106682736437212138720395000718115555670449650832709131725215467382018919189730948913565266826797354378220602010245829539000804486380578258253905262672495398200772280544721131232474369737355044066048451906945499796295225055218012380315605566110019057059657860962387728413733273016197081614828698056344931902633677251186980993527695977013926468571336739518001217573289938504576393503209384234770348051539669120417333569331186047282600739613085189803421320397589673747740619421333152495773334720357266363619977014623802795950297795537637249126285081436048339793186826527381238701959388947361141215197758038921828283014332968268180845949105059718102215037885685907182562659707198367435778177976037379821512062724133841882954890845445342924836872163751609612011956572827223338509395227664423449101955451816419820383357630179894026616297689414917863344668055193371976117378712335492005435544681919504298462061696802884152278775450077476219388848984117476972343260925626685592070265219625078797483446271061829057223060298485677145098818751041170896372004061979862816044618829113909572598135235505136411733606547843845507124753046933065002639252894034768054285605085432674427260437541753417781970011398919118998214716990898027983764333075710027069482845432124222833289657467555666228427433944893689009859521607939772601443769518506142281211676683945625220500111804715558223200457353239186183145279305998225126768425614584528058966780201955482603382614038131354361740255677726354499282465149908102573153016533887362769437895142875265190705650600623595166684301061402137468794269150341787242838901703425130850592180449365483574069317388896766765485770507380630934773649131281756632345319315986105842660962487020660530776945543243365574937305296487129671859794481766654560705342651038791532390297759819926040950391852964004163697254221251795298811431848183541215438880789801602848888629768631511509841301641346273711123922464267381671895371901678395726732356603712800517100641745843592063421012920591374382944582224356101963122818783030720424707091761630852990033156215347056767400923899869875001640788630508903804966614880590320690046111532254529590081747433227187851052256033734346561399240677519383790256917808826647096393855257421506550739696993513882961936281168917588612535440597860765599308156212543815473810087218257073189038049780592889974876677696514857597334469973780045648388523948899836815435271780064014637413529820456180340215386035942185939266992991400984276063378910256940144717195663140367516948911205939196619046083711031715302977889686269490379360873192333902930629141387711690536266931514681887499449825230977597295309263497552846675791365676934489146139132223928870847744243328935630493751328794355654398734797554762352076364114435565040637319749672510273368785198003507669191657496598262016452606308479588108108634070041514076760129151096668031716792734429689283685128517972581834026148908012503180811073466582601675575133873113704359469311563372156464479603791928005441510034764284731403183993773216113224381287013378402542397587936591948458962250481204201239747491197346781170747545297154797906515399621818620723582656706852990046859351091299043285403951971641314677633852657198659682939719783525035455189037793611610192800009010116965029872137226646880625226794121553854574194123533867599586162077189027272828524693757177611860513168324591363708359643224535271436380297305482176605332520922644947592233987482657147096094476768535141466419972494633028518498473584095180764944195090294742655175611303949993618764432369159500557251275443721246542704284368595342005419304692047852901044906483499843133961945208454004831439266572460544828450895588044006257045269730762807520290870776179565619198131639342144035270054923104222154441692803477811685969077930364052258921904559434464934313425117701720447321713799151295427492704657344995822083495940573553822021769148433291614791135017137528403199378148973017401503997596275990268471743480054855552618721498848390125369413172660332717430311304854977368691622306372002908446423899360711388428586236452658746725704821129894178690648366924844318428288313224375203043277742054575368646560099970221626604493205080833915391293572808791515292171747524791599867825694110643006532830306348288693372018791097865215921846477720287151398467246411418108255886165284503046854871597792699220916970386412086604363939506346433146916532645771867464435982036923772346104998594293260110977876165370382248412626520039411102559718922639076744185990792164291397809168561989444996063193644593827148734247842880236269206309458526651531930373599711162510036178728115812955556716369131200505317523295800392786135249305358904900992322605832294990163845344981327040902534433483073791110065157641867168806427962223498283669389275353674498225931603150776756234374504499073141650367768750087204487113688253081091856719939798186776294029083264642390232043926111136438001321794556158557817746633816447902838258246073074317128672183745393794113568416760579817558475324950997664001542142257748121272801614956366291751505257808201147610849641099608562022140777645533697937752546628822247714129192242967627616856111734934959639806996547175396105686870753078283245139028030667059589706170117347815060073150660143688602926665038750954046893858728694086040861345438138748109434455280656402745189275930651245999187234153791215018115310066802465667179481038769158211099002152647926584777869517495154449257076869338915421906757961206810375987293076648907255223625386651502175705019097848633347891554745411322709985186288069919261702003716911959394087943533474747136058749131566869725659329761625637196954283557854507923479855228873440577129267259295020094861439328393839752238414109637955836446987183420930122356311727944613689420835425490752336455347172764933473845123654357472482928924687603201179839068680774850722296361821784304392462636908966680604167622501765391575686058245209734087129994953229158992724213130694509873168456541675423440552122082269079993598599482912980501061802258725752441418181104670127354511357694925582068428647821912787526410034303812831767403548732630903760804111934242035490697859329557972488339673313667877183239627946615097195105877711296218855730193660595395498315241898131379749706497944734384462091147847886447570224204541040537107547252747552766037315461471825861380492956722393746323151103448119294049110170135699178445231840156716708032444025254231236179450002712023589232454645307376440784640801156620950333814846424660256977434905285865938372764621454890123627154707640371347016008155938824041781741321488329551867997689273909040672149412753109740425986040405687624917509702404089032879330686556171725856859421719558800402235265215204888340757704369309477934600826087983599932971348680752355071251112297598430526850233837568827744837904706822253862334227198050830828305595095251067455356700923195448387788502068094291271455436729448287985930723307060038781197554688794894021223741050684525490133791942294202537741694235077448035743891538574342611608865127658369737219483208857181601219353733087044025368958477394794864377486478635869912012348930458999646215741258358545008155389044772306854488329889503875644842449881734764494097846215443049227065156645485577935998767822035587346173295861470148508835781092586676874784315069079742021364461511298410613098726037677102297244547145826021800832921580031025714551506387090117250866794819536277436314113418914182007267765745376618746965336360942019679215438566394242301159250686013360707471021671031880413077285261292387681019500887204436985391067270136554818300446818961059718858921969857870413065218569300506507931790105467184893473874622352964197020203851562376031276226867655905689575533718380370310852787267100156946722561229618152449191917758912490045473297370094428065002489678340634276892477632512430299451631194282244023093351860889266470051314142273193733466034959714421915870422244454688642388850168388184937264705661112165768622526791640296869909126289285698556893787725970780760008351784894062147787579205217054765316118565780501903510900099092781751353848380238562331145128695068370301288254365885314994010059532361289999716934416804397306245950027561357235209808999366958119462474473661387665642281098739536812173929818698512600425196630178029667303410458500939186002047627601018427416221851344865203639936725382932512829292338243278832609002079647419556321465664477575482461768379464045132629671447064559385088751405913188510438325919839589492782296951451196141118025592623514828730236347769008993618184473026588133727312437600446923472940615248873831330215465579294355934899298408876874886060360440390313044484479626040755932832725697718357730029052250882765170980022415829888985757647267023713601380805238623023609797551000525317466435655416298972437174136464638700392273000636649052665366163098506155436951166781282142689356772220710919869919685691204316850759576425917448069550063011072510267805483122024872726416854102635101577362293552934415288497795910000450608655032016405746103882445752671217669558647288252544802086415043464352165129813528985253434605990325176766340722443965068505927209471468371545379482482084268352984491620870950681200893084009456655669474961793812561485135198953021612723165824607268847929706371887635562249901863929765463461354821204780361726758849415819992200491547594702950512187496602128447984409030360946217807600815053068738939483550164066472723118968730907722387371607463427647725128854302673737568406542973153471101627098834640740363031303500006052100581242957374304373839096236989204792358732504276046910949031832050616019759801793283611394822313664916951062407533504604830879079830182211821755057830570582316689042695044428818102543687432212871496858861482071198559268413289601474317546774442124221382999074813340443374409881402954245443338159193562292568796134939356048182123519143896589813565664480007525924863955739407213922387322372647039874243386847218201942828413281271243598503733997960143665780140054868014443418161013551448382085883714156144271145431271320354112145881245631575770253818611758689088123158561677592627776091170610452100409352094428094122994214021409826055925275686395606236020768142574641958054362616283533466829391738971074549423050050592369949483034996594532163321604477042984128067073263830754530149863989548556531552856421901888810971797690890071315713648583406595612734832161785868273055242382069774183841666003673830920878210283611630144998774077793660277589322387563757720509483387854256272058483120521937154365461728285606186282625256543594716484827346368434476149457456028642297545538637248076375142408271050917482458520559433554013884307465648589048363148724191190564810604585062303241983942509079592102583197163937067939059239528159671783504631953557007841122734894218872713051722833890167949335691841468321549708272081088906189785614415573592982970728324177444374691989233868673613552509317784918038885225289828183009685114451567639931900503712841778001609341422453857524218407548091402272733943993125513096787296833242288042222008838569833653332039842790680305223835544564152926688756090883573130106468071411775416413911613873318940584859255498003271006689102787413120543091023257054173205220827914651258592115915654212884812182611594677952255668140825863309053100397795387498247414786908957860457212955735353235334330998905721774488624843266880673539860511892408363760201675863259912130154105977995499661106910045501819679715762154455432711093550600233963427811977709007452389065876895010598246177750841279888511557172446682956796617797316940888817662181351099884905799457460048368261641040381300548382232875002750944512559144310334813730325909201950755605194702257528696994228245273103780982230500716990698164608280131233976839485915910476189559218565311057527839714624009966523355741947159313564707476079744047396657666890551097323336642429985024900229024000856656540392935775403280998613834956282655729118587747857857159416505947745258690174114260351031697816861453527412224380278542479930608555866558162920101738593560625516238340865471774208251746872522892509593600721410287399516855209022381278565243121388289983821266510420299622916343383731745171212004744014788836238701280118389643244310249969110901915408399514602522023003659814314417373621591679579099716217636562986959804252080902766574455799554719048543017266834702197651019234120038819486199034418166352950847339917856472698704794873667855734532767666452281967749358925430154556722878732219982140124051347547621485071561195425816383833176300576977929731259559231040822975779725660970913463758019521541697991318222996195571678736440911223945337062129763904825634523154482085043304098008458743718318427854531078570161439581414946693255305615727197429045673644762020349079768581150902052759320273043382819740022476693158984543907061480365430048925374536065251781299181279836611877672696730130110254204022241320262729447680123764432802227099254877912889950894442177867141101722443384719756534867105186040017593563165389455540831521980359492378240694088835605391814815701840591187687390779634654449935284084428700511770115882292729438796284775076447934306361487392566546281670363643135249650922353490196583047414926928167890365172538717203787959312403777370309450999583389206579760758431743668660967134473033001160973611328057181700939118017686923228333672876793479518412632643869787820813179366854466690067177852994015322561659975495450057346139860619592022075441302952003207435241068088129752816747746501897328557676535264747009774717070088648949213291335193674830675641555624768186519500305929220538597671125947015190881084582928991179396826841182128338520568602970292901165745517060875454259256324375269949064519226445522428443207001984421530896777747436216000965214240199412335636522299964773514724229046100874054784949611680727885540592579765739907065552880748774511899057365952395301606841715324967381731772277282842878310708550901245141117832572549630545483367894457955539969673158614873784699922081308134306428968157775300564978375231567067759352894385441760057794347248659611006280802590693778998615734744547227318314164168224629546683320311184844782933756000800101824899969043835147121481629517290517521095544500976749150332461771155790924981905429006611921292964363603741081803440601054572684604397302598250685210381382827887236473749816375870912266842142667770101723407612834897190294983661057058210489406091402374322375855879658361973539106766402141851340460649583778925123286185353328228607010876731351637413735429948932293537013158639923587533785569707605279457153976695730680354096656696187958760876627571835293332912129003055402367070351403922428710893421132017617678711965596372150869290840550239055706769382050232459240658950790109364905626015060588629071337942057614423697384367678412767589210134941143720092525191184312362428516578086679169483584474982262884516028631694221478869994812440830828340965468452514070445706526332891834107905740306294655556958463609253490289940157547873863523881478479046280519100203426198224135436519132410722074453516814583373323522172841873288966711986530290229492434993826091004063624809310781797688245159591995911010482187989357839948691932105701563519762081612725640240515268430866714529634899666575153819131202303693928670260920384843271825148052631607119981314350908472589415703343340565573439056870526241164053359480078909681055004951940793741903150053302956683452497970745792724118992294277259757804510556216698936838500360514910219756983303511981162602776510389845451737777946044294812804519561300799582978593287187657133545846075533931128180515198447924436671241942656178147632015811773778791896584845210408356606923172500447786708405039918229020162733687789219921971313340475253868215454574991776947916146976009780706837799220960462124416251923553213551298854610217115162243235294668217524124809742618915882708930885018108859555727570860874414385847748562402517707986711468131690954427550250674264114057941405848640064109145190085979660316939927140481489733040557906194378894672418347470507531640683660655365863724908394692011086765745484978912065615707720227453365950788536465645601864354310366486968784561691248068073117329482871155464161114338136157092832672913948038300010556711513769901671235135527590238206071247159430333130442361952742857678284255744224354016914533882687604836193373660038585903961354358012942268623487083881300771050199492412557614207297819975338632810400044315941396685486074219255502787858857832052959648678955015579205469680298313280473892153423024432140759042044274383646127809732292056275631958947594363300600100820882041741458638794268354412864266816261979925295787415088610606522044691734962258087099250218753871020701608950849031367340046459918418551232088998555387487842101122720103675292401343534680073958310287906026125774378837620240227868308216794312708335038000815364136809312715333898000528214871286689310440736449411290158189850214675662945167310786324724155085854324601789404712354957386191073080890940915773116029260753089187097269627994685911185256729906726719653240833913235215075796928430710660459321358577372326109116230038742440134907520315648285236723782856629113339355794013712712771086351882899372340637387541616705965701358203521817530704543955262946538146173127972439794127117306878964328663922812098785258447794452997181825874655749547262904874878743935680788296975131930896229186708881293407030260382495900836461410750424288450308802789977406187021113537943135652297456486138653014992946271734592275749180622353886477171379044155209898671852444411923239874735374634990277344734748930386260725104470788818706632536843714403230982548492404449889017822597073827994940374936145272062721317884097154725064939222758912130251878226185487847221966850764597498418614851397744442974210565347305749961538241057572370443036879356045453602416703821636907117404140198607011489408124775809829402275647279077124812155634137803502180186888302749449997623674975676473551572040697182073764072252818244393888328638399510330312183456589890436136828385279763778371966385272138789361402797325305561459116010891905914257323769257336996942155866120377906136952784729291603123897168812386789726828621901380947880593499437708437959902496435544021657969588567090192517514808998884799661435666369355120508923025001482201115390252093563727561752331718205444868116161858845785898557607629271923396794328010291656328918488767091252959899186967875487248672693370741915287115033550066955198534237598995660996995647743929743373451382457534342440305683266070880925980582563267928328813407690634273280780818659918390391195661973622579571108661183227348123449758485515094866441345590471226903847831633459941638251883058305784374429002167183286207943480355999947428804464364062830952138078226100662310608169068520449076112277677007773706481158908535299440978367306179230378873450469411652285888814074132428112355843775815299865107048973861570003390464285372994545037494023496539906936712569097807409361794964451530531488826293877201084137851996916963709539645731758264084219917187718473812171294798598116568172179346018527716939695516243507389297838209385405968792467156355985540417823799712073279736512314582580594658829040212655526847117477805222868195762652210311959861741123542638796048816824117386044689838279777639546623336194458106122795163261955242027938211194261497736361001401932622456980699963802066863501326432709119849681784522756592546174143586079757116816619783288463832073503194088096756503066067293900441140998074927103913706662241170749162560672416720522563524692048200498618585390830318812426791713774341768107675580901259979775396381700324311898130168515733581982976486805597431426296860652441074474870713331186471442381037844506874433715291625869293980119287130514818563655119206208976731195533471147045177896636450586885682010467460996167017593431301732745555062239680730800733073595399050291400511163270394872809966572138638791459948867205823268890781679455813258529716046532835925586134472549524725662984973635286738740016062225092472634873216259035408201362670212873215585265373234132719513517801748164479237885658049789411336976231170842006846782852383568743136435642275592817320678831153663106650782006274880682494050842137759587320498593916492189055014349926059850688854753073963170110270538369027763357547108161957868922386275603490343607820712226226191600790202443532096462636864092436600868060680943772493726108956905792807332925361251363059909915639674075060306380788776281550102437296415858702977445728974992232766166612364503521567261567248596864840910574893179052711689201621698117188263958554088179332683252063874379052573414823944920641794479443929787048801150237414208800173587640305064832653380418515156031744269066197034212349315942793099206905163074970811050560563071103148891449580710338057107566249713469549316207506775707730864551187402150354712043540238669689366736242450728823805032415391248483526317615832754432349577084478099527714197351399932064083470649004610451283131483040059899638392572263563105425646244938816722933143865325387588568238125345593802184624411747865203057284178824194378904269787629822838497886144999880876428640044924251044590962815224981386551759881949439107850820942735718183756194471956997579772765276987998167407685517023272510538517930414113138456132356912754720621262583228032161896135479514449193063682967967576705858077181538148411472889188044282809987019400091116198072518306468671010693372772493124382198882813068525603758053046889326386303908734438693233511099687914842666894785512157738163933514035254703175194073554408752894782833862408266349687504193582639294562260322082291436188524920510898850263641216238517308270940863049102730669178434751948510298548978979307043715863904667684797812562348237196248296503762340040007029797283190880735382183948278015987617632027465667232794721759319497308488930750396270249253070131410035815413043116282369597568347597434614581926696255756911172696194573206016165772956380059742772528160945440593200456115713286782720401242896746809434982506562146021752298544426378763720184597307282275594226876513277132682749041304622171908232505870107075257508360529346019894808035646696141865559996836321392407367801075917545486204242078730696506819217121703924463094762296927764529618560425064005877821869268199138785737903309422015905361185122934115235229329528714269622891439164568958606700117338783956053066127654768280038587255485122182830881709533536476180396194011670480172696902041911018371025476469199682259148262910202183474021567881511416579726144413937303125946603457065238646959988508450600672918792557578494094190677587915470563816643832272909165473414995756525745588821133394281892386632165445652025008743754540801862036442846025395097010193870465973878069038653233179348118755490949011547998152541994088295575640621475241290254710029250367620286533858670916429464732504108853588180015989041587688225343309476803270817105231410655436092209725989126021687082838045313215178885125482349422369583150523523706922265696137856651645551302402432001872002739507169869737514515126923311310408678729409201610355082201793679538963259603340024724092661550900830059730535304200223871295390929135691999900153866600697123449533188180212047566085392401755987099160652178773119885305133995069058246567957419774905269219439042817057696831204759873994585306641515181921197932831513466642945058538833849078575068693525530645171344994959130158176075620364447330963993087131076805226525049710437442813044906518042928694620003268480462260462241929674123671015577856870144391612452019641759425914323740185042990795694318029970625779458348168642026001159437617177358036305236626351746212896476299691237155313318792408961675441589360432772334548628321953628671293084357885093236859064580815578519845116802449668467124074728460207372515123595885870645632999346042770537423532298842186953808376008937015853650314635264191575603234871833746832238697477903729422614147468384319739246820048523862477249778868569718712862247142625639638607422239718917687608783237321082490795648377628067444529091600048579228163962696167203773062901583911796091044064254667052598409450951131058231323169411670816744620346350514797645836419040122944977767653976820179028662799627275063118809591081602532999004913885105991043888540836159461038333673266041586322139401230759034931849131345484348674797305364653326131806130350121278470198654605091538293907290014252110185744983287407584667288793041077608882494346636700985683270151089644092352163852439626627787696661765737964153788174757591552632047421643169063407828836011978678602867165111747706490891459700889670786501985254395282437440435336118609259250415190602059957887126234773138614815357416538516362672840401137153748324411305054837285498393151694439022757556140219302615292720377025402641866090788369800423341647605194602281094832345520730972140494832381523692773943802488840537798978020515695057818680221277749141751189286524095927590369298708467151762931262733980723582637109806514603636029503251942952721465700692193296670909290634765451481734008104226773265811597521682081854482485154781320364125616666561858647110197264366780260118073352059042948978319359973217546778152737276638907012368502777148732045566022927421764457493297747528790042893094869155133934755445494340250059252767013513083257692190618323976150052724196046397023658768696990345300401507273188656762544275965863925562898898731924557221679186815357135261028679895559268824432225812192890950355064859922135214507734885665739396061259257914914346771099402935006181775026250119552753625291420772912038748982690664801385131695737671172796410553932114914262863382298152017823835897473033416900053363168842437588657563355800969418602720393960541311739227530342803664673805786539760169149482998367275772978331815800243106128062518682809396761697792000544020517405166573603750260278481580737835279598991223392490331489854586610257486165971902531724136328936776576832626953224347046455131675986919804299385174379484793961309020944806663301978808712813760825796259872721969894101461545648656147272972170552705457604888262815410552797078376061200652441321777074589462088428036486021615399538824681932786924233234465226905210028538744290596326818192839669968012474237310731551872684920846753105740767519061207716784308801766310627720324943556153394893336645448801172198514012461032356792849320238704457560533196656781045527529026404680206973284305504867548824933033628712486348917812730710650868115417156088323419763378235149164669176058469607583139642272451239751182598881984463892121646643705269635509863300536104270190120769540184646198676656870132350015580116828587810288183394002697698301342741216719809095025091760417421524642502099584406764980539684009117450366656141944130085647375228619765838761019706145450627501095296315000301577105119517934361927635579576483765975862737911466960308546235620242352481656213979542035201102546240253922709841645379607670029585973702562453010169656580966303429506901600265999835173568773650501850527055935732500410974632111671291038311460233648116618429229959731298592205732102242800055389909934733953678721185261413776381814635252949802678368490650238788469174766107432730206059391129904310103052241479855736446864351081808972094432093885305796150657693506790760580856860856162695947977580657710199719667691361930018497493587630340319695257348545539289140345416412035635296250958112674394822535042885870589796579329492494560074334033553624631167344481819738045550021432896590492739305817471013085235445053310584564649866007046720688036902094366111660706742081722150935783932174378305158870197850787338178910671543128958339715644965998589486202072079540041201258339531792953635489672616507268697485931543980892738546518010930465569822022757207200294975721858897678941784477622585845378641197727183897999912744463328738889857986871642643408898582878455775557779418195369834021553004307082626951471873441534568541882464779819888102967817307645741784109621823244776244902790341940532471444647582359048115468935768739704254197667984559285470670244680420343883246296565566981899415235725732019347329731595282755526086917638373210830906984825811521318329942635827496597928668183784665053394822913526300511426192026273629446686196076028657817932742708288628860356177131443617833468828702979159309425377220537920427161117355057085639765296853766785576929447881982054337688901630334017800084459376978925270387317928268252688849238902138483033382682189349673276810397988713095169275373250694831415391266799049372023076916098041103828142665869563503916095721045261261793228166239275463034397355820740939377596631393496319196954971876206611605220989864186506052248807500888336775632510322292184623876669065744996683613444527941608317596238235985392834845315730612465749943806124351526728696116209166417126525040437879986758294611493307872515363730128873146011507079206001375688499790385323866042201280024906551377902229916439525755766219637200073556388557729598378801340589895141275553779775031077970330346712932164567422485443246520240552675524114763946414766535252962140411116337595337048416250935922486703397800506396030653142284850218790404908712204477043630572607598032003655323085404427411280279886622944410657635992102414885866587463026760654378524329165780606953710370232292476685126316353785625114935320790336492854491795248846130249767658616316266689266705815897944587713856484101293925331593622377746183420291894218798405779259082145074411925291912356017822619109414827524345351229558069201360147066709424524881652913144790874045723614246892231617128204409157652742995523205082934441802352784465175917523030015238586846384368866163038230126673868296142331140955017578084709569664246017977514436883295248263268339660539925001721359890330242387650011090764688157191384909951917449095098577169196072685177807465990805635063973058602215891708719458770518013111024300135093822159062131863155643908618313673010861148591009609994117281097041335188506478625168188426136040941261089833780403669512076093964331033797016259344680500116826268153643776798290949091710346591280807901193590580641480445286125811211581152442604664598883053896086662347358822897764008800553765651541661705792113492355556408829036949424870203145863763255911505945598310214951998026365165947869354948157772860376096468669807194488399930675932946748879185079472308392619038051819493962410380866145134054446266256771345689176744429601371785257657853108781001179538847640514084754670349475687765645022674105807525142158823186672865937281132344553155446473431602951862578054771589826242594611039335132996415280241595011790049051687021049218704003690152484074736815746499228058869586919726892495902526353105708819870606510879766719460493295661118581620059282705711283513575429592999819208647251999585755639497949697713508032735420125762613181282641478317829021432765287880733464169272067392709128195079429081649064934475562093058618906160235788590942640498389388126380500474069562108067500548897335033990171667349191563988167583861472612509863783321097307106592227606985222007999892324824072118121752704661707819591937635801481436190690442764243266296436518514214193510914289464766862434765280927022015142949166625319289719197985659284195806233105810609610388275778448937303197281114367662959597228051250886939542449484677596072766301736435095653047209524399831454940485101041582327626393576584880672869469715187263879058203262914005910344476118950029523054082319110563436614731819311844587579297554070424044149214028975588947061780352321622487989035520905919860023969859071228567117344615490971515389375002795439521789573071885025303259142215059096007711763728830446124575194069819020933615132834450907411826656431365155089946297711401150576829754501366800999440764378002234861737858878357059749546842214119118365982339447639380896664811517513428200050954840470750113474284061792524729099979713677637558352252237744880628173520415427804420340779436273032867817677236116842648168662905812818381184092572557281687448066705857637841659693328766812808172389083546463070552726668839187592364699615094353148934394312810035220832179417632157295375175422733559774774862790722740414970235354325911666393899784070822324168734985037080870776623010380452441623940175901280300900886640026770090674616776256099902801224962811297935758076634358855241296899042072001422599075516529495426168003983013272628802600109712027343397177233976207967034867944067832746267313601364797439412709782999664373176707206860097224235374921287208716610051149030236910228617437503646000787694047720417615647773798415269401652404038757950601792366063345101691608265142144091184033878622691318340466847360311170467459987928947588843972488572565638844149184934260561096448658223897605628525127765265518484888127885182413955403754836626197124079004913218834052547072743969212464793835823714158279265728571203185392945528467933936570722073240419092747501677557618042697521009733244243351982732243882209112792658661192255785037468913829193931516737724403111723946631748778610565658845975194978153739970760027987112405745916199299505290162796327245626978715856322380550745986638008774733644046095707195102043813841540251310226994846211579628310928926361782538316349020587082090272059230696940330437531399107099526455061256136188207221634009924618593209915422693457878637787698180870524613193325423826700771896834723973285643039706634897459054933627179684519713491282460567337513116616571952590062287459861768870576830228819788200678908142626279450468744435404573053656248895171603355913228731532973823450633864418256138390597348352955683276068420608293454613060109292751032937722470114248876306607107848732684279511843156501574684477926990190752097905273709926526721725023006058300858862580106369735016283756903364989581366992183517831732788453379886310693232045049278726626983415876334832374228094490135689610916695851648368290118012652575318974827324949525314476482665863516336899576654290330800622456642330600088567136073493607876510667599393411520625128045086821519350060544761058007409679075175521089221962198164838645527939642744961824726426147683940589159342236195946464535067279853371868277743650691846901252633330935460671127849589310787161498640131655958963440156427678705946303067708603458784233300773148945298432836920688488195275114470559377229264055040471944849501920620744407981836472103226176565530205768291854548088783031652248937828969775278704574915735812636592279155131690591445254500004739402451222699030777831821282422943346718418268317431618001945765650412317602517269243035001202717932157234519913342802897863801207022920920575712396056265892193406376476192966975866322606248088586055716853819840878871002534297438354254298369076483032058330747582842393323250452896847523973117214253729386737297277851637695798054113061253438601661144647012221053468417778913432811706018040127662312786321281944074064295820074047994529293008624555619227620559935131595654545550149485496072016233374798671419953123364084697347097475833439363719071624308188969755244570480440511572431122359834907774270558288844509334357735533646919985847988195584502695941314658911340711721994400532402029887679580386612130966944204518357297059812716287413136347709146334459060341379486194158976786442180436596631520219404393936345033111341102497065619441583869921968025218147806889199340962568052105922942167276947710971524165684129652595511235580364379783528847525057937353568107306725197547401298876969921521340511426614616011137537482133823519017538583132039219141488063315040610253214067470962353951162734835115586487310691206775167864088423652869255398321441107305459748377539251956783488263452588402612066465008112770261779384151804940458129449104012228189310543368655741479953032881715148636306357960709295094760625551429525520203452252980022462255130045576391374709030525387955300193281688972578640590546903854920240110222429507161294202590101959172104167702452730948773418986919035514346755539686212453379586714774110624855478953320904974993331886820868714075952891165410910493903423564700981596087923707443872866574462346168452399216728997946938367109838482014845218000431794128337621211998707510432796885084111523149481598926679514851044050909008201383228119461511325019443462121032585719142287359684736980084739083011765761028631712330010705678777513336370248575510740211910241175553748282944645571316793372922696462123277567071883901134290346918364315549500458580679325356881235486890718895963834436262121299360680559782241897588471538112007377908936306657044482249466268520681295455793616465638831201944070573390115562707960753471004284664129347405464923187536947983526005319453528717908843680535391662526896028022655973585893681980569744842047625397877592875821068622898397717294773700199408063504042792044990770658042590152528059807805264103041390537988963635027348712185595223475671978665587404947693235780598863733394572901219600493083745635812467146495443477651956295562761169123010013006881725095460385586807942591374169648266208779500681996669398414863849212172442584923321651951587085228221045782518815696148143151723822771867724791913723478072809291838552103957033985188501222152883897811387909370912328816347957338751622380297771655707371198849890601085745911461700127984143954807592975093718482450836516964073495713590386235781757723243847339219014229338944964682259409434487669337977234832364566625971047846229979423640395221471628936357735998298475385352863594120383166271607284411749686771424244911124631945722512803227884534851432334718181974436428623899812737929840367506655134431698221450712080137012872390218389378278429550259161036593341068256777368134997338103910834450965767599845137344945931962745386980528826274506729733733270898579965061963996918501558492367316605623770562983350151807821962925676779192004962526619847949793301729608615259333901413560045008534882280300005897793803324528382074638593700389585066161075649260953036640412902857032233174742682387373851732835020906595234037416760288096854552009254012835819457600433407571278367739849840612706755065179400338492620550048548312758737332596991499319191408769213941462955793855369801261920340140987404631940583035466856677024451305796077887538206179013228021169168653625453263438162168606162982899461010615932360015974814599373146750494888562018617274885985961538762621174005367169403436039457976618300329748628272741176018883047608478259642627271850287027307815397840779249931019608335172727593820540131389844811655131545081433872901009886013557433427950390041950485483261358146839357156867442419132752816121639678040799733074943271762797749620126015993135587021873144895969037561920952014558684801656773659701760844877256430375628433847712589244869394836725957153254323448805820369405878377899267062870164865032008226229807314788383933772782956410309538215277403164215578538083120101214455065781576484174533186261162239284804853371177821787924756588317810082875284865628027636203713746656636967645459350975252869257917995873562577507029290051173091168451147234093053034351010699445541354853519873889470631015823853783937766432213784621761996885287604134894001362420811428713445152195766598999404083053248044097830588345239414442011227435922101304949605314526021379028651905788970248129224865922991599897585720565153755603563510595748214469375613717872348495026214888530550004491689901306513591443322165065889331474032191711533107697786935678649845854342134736249894900147594262280737305234048262999479472773472601039038012681323014022784867335952525868784717237798436177615164859843592733751358878115081339464522714596972020362526345585644430034907740025672575789001025931216065138830670545634744358135531359324596347475874513871468147622418684950216934567470495956567014961510158420744079588027465449158600861486847826867401729190412764887110958713665810767660335117771838439568153741307043041273688664938035078579295621680479554428561458508095928588832178205650086269368708655330519006571709553535011460687095176890806273177420352705458881251063379372928271447270715807172710167446987400562592158956616113804287031508136337887670140290285955666979849209483833270343007518092531619034104065214751115807875489112370317466734657075635345376574653919068707423489984166707822066246137545611951112659766553214873177906440501528763871532437571218638562114623545249020207967563658372112768573506505640398209785504611748468630519040416955669648065252666061972420068596839699174799634491095509442456472006523064878250312684858260167018794871972230957471265951454559530218461673333046360442848233853076710170682956290508583960486162072308382600040964571379649351852830246356078519044275457450332123528035364695987927289710262776932033725543414578679586397874968813659688446040266551739425369867280201587494114003111806947299078134649484530523331504687477665944590619648680141675732968733362278157721426100742130929021249877918169278816953487996772555514417033967188475844663348690553357022530922915975483942771233599459561394904325790876223663621005634373002994305698037407941494657809914264636706892951855464899273352849910419567982142085365287062633147410776162491586157751060810037628987283997491265604192585356676432698024595951329696219163527289810424142454213963992994423603735484558967941694096760725633838921315677239269918938739018061271013575805786774387869544792070544694509346016739679983057862471767681360323622708891530583750851161243608374749003470147952634306786764372206886676872349558040173351196479217917566047670144899049256047899023748772603415967030062893399892681246110240519224335188046523634591306320052943650774676926633357805243392929591995195180259401292164987851489238476841192802625792371756597612421577378456421340412215063634746594075933349780664006634016424824866773178005281091526105165699725708905658980088700113395279215771854086161232549846935887276896134877445252729559881342051166939872732739133585748898131812970471676790371670148943715374588153032134315868791204500951214350198041827005017185435948011897023506098642768355844922843401113160330975059588263187013948424645005954237626413024187268729818469892260769442892046771834853379257574760224083641325906564683805720775113893655679507196036377805170162312120249615943499783856806193848499297046154825195362455211383227105892030255719474625488740363281102055166927416411856625997600337064420169891020430910204140556342599588721651679771349921525776204662745404105239999314014843133189204702314709209329789918294448610866882037590796294309991991852796411337673473019490331328163635501179393088869647031038370197260900799737632311370152059592260396138170213110242473268691460494024625000341559196066309401379295279156468077245430193978836192628821167810397514535157477578546042889647790317050715026365097743062230309293623392130992043324268345965573544500759865388963354296315720909097143978764328251847106100756783797817115901576124528511295301573621125101498288122231905268918981451666936329020185623673063213937867805336449076523489028043268728055927486210567596873304263498512140605881275237422285653356623073270050923686642133311674607898060216054955683809781851695267359966646920597195959788596835719933664826905753137166468613885433387601879915440741223045075161004077382867887461271646571762623743468321678573782012256780570211726044924348311876067681894730495975799214947183240393324682626060983619659285318676078434267176834030351094680525033791075977829891232335705804928276306507780162849682981121743783859210367587045464237217215470708812415280223092731711239346618790882581411300920811259011013001790912131443481288280886188155440231918420636420157431282878185183423423139851551374102487915768525797232783845980943903617039685948304471887078268724880774379082547754518139670245789545189315491785454265571511116087615603420534846526155641408726555651025754301784874887063779139001991200986708305485783628898318079837889260743861353194489891269514224341083180902649195871764383330055250083662730602004717259032130241809746765495022502900910441287376108716801881366206061222181652698350910323205880844023959843368836020637976305896377345045344645364927709831640731605179438738528814973688937937879812820696770034928658630755079345760273262753968203637694315571398132845108285432184501651691782880715430892041137965211516316589162163258357686168729506586463126828208462672515799053897979843318543093479097290432824679022986747152166467447721222319146180231980049074286435830878131736581263554098772903891346546288594674987983710946841471650592045696258169826848151871111497099566952588423545155772698284896548015764402904156584799217490569944540235772949763532110017338248648518597926060250213789885385594700393812140766192612696973388209027667488840398687657982358888666608663791001598805289555124091259760873547323485813673395979980967078760681397802930861554140844174511664324161890802686962635357964189861478048662724166198475462753878394460406317581673105276416558313504663391400942063875011618610818135723174097296334403441054198012818731844575495790643765708473775993452637361873864473577840772706140453274127254948626450974828590062541123405407547791651305755499723886452286965939462653413880919187534898099034012010193448855440553353758522185835322924830871233733351925167109505245840138753596189501126092432712157856139039889646949573655033034235407462183947409071683185660868076029300458292771749195939391835675711377890277179559318172153917149316874806481185982050235399534803902301714414892845801987709674899808212106784507862066040763245358882289903553010893741010707501544043993849244900663332017070585880677710855286706193197827724994848103684071126954998669500084930179241468039309258960536355445605880100148118712492545807906765767010078371765369624280133154122909112068798645851096447373805214059551996983050985958217805042256874924715648385694013993626319346069512161166493697568821339910781059069575240702912458417256695121082180107536904734947730731726741851338173624038467755843023027343846759527453946241234822613678941552148216009875552393501707880730552314207683835170818208697381021803598818840122086764246323823158855591440248547354950570923207965856339418811783327941192721944692687972590028798636032963076378613062899483027267757472515373570797317316762900129683346928441763466270666174128466069249063496992778833249236825360147682386898974439554636383187686852549379446747512986112577213741575526053570110239583994091210946992980903603767688506911188076987683542292662806898450551966733399106315134296159624298061785531105785909386781221186445980255050043886514859096801300438521923076427082621643595759458687152110095590640581109841732770971475278061500969252297562424918131501816748133131755619019801255856923617785948562615727714607189707825709730865622258849835691117801556725390595921651662505508208216907303214194029651492749307462064370059369266221386992627948873273834437190490544849857216205849650586541223461409710051115439270766181182593410383945344485336757330985628644308519050443135172862190404936764348529577119825316810165225189622664626997085379671337283382717123321665060295062449972378238422035122108433602714088073431837861037936101771123928320388853138013895355487441323261669451856915636352301865489298636784196941841296472236774227768901180433503494489340296644695331089879986880200712766849329902316531012508544022672458625280491749385978232036102059747258729874315206046904320841108800758034413310072793178064400152450720081960683274283578566150569592070825882913213505257765707253174439758037761732173715198967950233703855945120142810675500429563569036522288059897688028307315725188847654168142107273411128068834301493688701095014748059887882018785426333133676050653507504211342769507063545854782183466104470289231854208294502351750003488510664597150778966701418635727158409569563040892706457653943333260828878567878749820432329994649430700783738426175320897954363173327603559751825412042655003155331194146289738827678227427951922183080500649248812411905525416137694203786716243168850849405482409655971215233204685096178458799992987819649457541382505874103248016646159465043328987991417400769952870692504249314470263513474546260856862891624778072912860749300345058183702121896096323322571183541047984560175140841125237163695174766272716580278117278511622291463179580619726141537478792293933603407580381725558686165847081506232739413055883965721816561400175368278143230098683768922164452638986302420879113813543962532925004090739176615913840208974263707793252088479882441295008354825698077563569546157685965818295108739168042133630433301921599023614592998647342392423184941758780076872907132108596188858509619095928563952971589029152909792975154324379990205957741755391391290633744801337096550519034088269003025142822342481388738348935629478238480761748246122648005776237737344809250866687481233911490214896421810033514461187253641764213910624207466021008482759354739297003855575423571273960668811634502377317770821168109214255538415475910827279394970319982816407688745826166474784901629982129968318646987971215593471823661696094762306639710686863990278858138593543692446995327710409190343835359240731452198668591514755051625849303055828006831833868357204576995348445285752686050321639051635669525321250279485126963338133751769337770459718885755905726270961035133901021144432204103932619539022384644424858076370904650303243055874633276118997875993989941513587267689284519432223345798263398762518988041158897030619086468583081179700453428222086351945287866026488230713633446383701853589012641548506136118978215465046424997423051929026105059085952637900405029544369862039049016946085031548567830280684534349080362144615378173356224835278703760569252175946527758760572130982997325317227691130869301411073139798229063398268894377702308590503552813302559442524594001206324037893164251104699664457889321027624766138450382751450307455524938169197401656878573835224512661246857471644836032213172308424836705284169355862497282028708131682783246450750391343429311898983239461884793564270919337988650362670875422449633310125780655717470914775076284151408241809507961052906718228999619466715569000998294894160169632364951925627823985107023679451595368125632682263127459357880978476168808534773644178972678983772755847630806629012598378323749860073165941465256088254786684616611163953250152189993526542464288611161461885892165101368579165040096618611353272072927855361445867270570934986546393265202527170462360685444687739340264695745704780191465394946928617413966582260960511196198797633897049495841871628598058948020953228395596666243841184750005323308704534616708032796937397882807656492030356461757885056655922366074738920852203725810417387999001127398420412388469342093311418489512142372309035375426312117812240416551275594487178066010570153433055071874175114109726627017511014207926744355588112967684052918078542466860034151880821072296415214718850643756711634438934602863854927696998150764556484807852897665673912391039546211539469515511505779223585610602946863829575068391056404337000112950931784526333325166635762448027771044744235657505797889350108539425923163378237134300724235347281977770015430107048733447646929445271020626746860466064882283880001431086961099897992130739956276844176629719928837815080459709524069268461979067753123873819168010835572941929516548150262357809196528998882441793838688699243164466857231349614959815576275464711447566264863844576571075167738822189482107390109126613898735715313554298787217507963334146067110904691815369921069497842540925718276727432581746686518774170494454662767840448290566204520708782627528557306235133392806380730014771604092125977366385647358260881607663237706278437989343298143083417110823436049004537231993940220021674616920724873322963891627604793289440902842695944247010471907322830545573776299717375046442672289325420263604652653365239400327019477855867666700997464362032439190281699796144372872500528310851158596438499256375034697886651022993629655775622693860594433858893853846399266765622880454759183957914236045207314138242835401028684455995746729230534386291142459660330941810267288277714914352030759106925936286610541986657476219273394138060681914828855352266415840625519893853992760964182832892515150904270054056041244781544600127748588382503307772843645248621729368373258505787692806497435677301205302694805180789709950482352380899078089921158721954209654875376419212866235873633404668617278294244747296806590667147764528516760209646414158702858273865587759560031277854557282461805147415630799239939085327462462594859159868786342025284871332958187851364497773228035439586035482539708958552597890751871822367568275179659850736721851400841567521653855504778868160533313674964937186461050646722664156991465420533991605744359399767170015551583107374010904885615803822524048629333778360418215235789935616891899742889811930016928974159738891255494376979660342935913412951769393707534554777079287923941078660887358597993586744720865496501438605261320106542898598516586948466402363559773731570176446291624502140258475639293287723707602526391797955784254974236098392234704421025638635194655092949579863934600189368518004951922888799865740943118326329919374835970196551307678283054619870391706504013463652352650583541637919060503996554674454745975432985887307215446481029391208826507974280804171747993227489745904411721054944875117326805304438509388490361176445266387198854703410372157517146500111691985111270578488304958440751577894112599589193156087266628840329596453465620104672449751352410588416348865784863943899686340951351456130163184148862617307322314171411502643463235885610078360098356398959787071039389895338780844873087386916495775778865215639906946942171374638393095705494029262591846903677132515556639867321942856464008187521138771754188699262339298789636203426030356899976568515008333550877096485189202067085574933012612863312266319812372601642890370607940451652854194978673566829721083315814375784725558134388388013773688082070554234562137417460130586204952328788401029838768823099263842105814620251856976960664061587471009706700914889658410825444547077901039842448437881802596088892259255364202240918307294852650433540401433553888248760615896913748681095274107719365262154449378490821577424656239034034533961090962180135814272761197476058939797122081832570333797551601789137983127291645170661356914358318682693377637277414486972542779538912173318584375066289681742376623432475195880688918652718665774565341648230720769043265864909796224067166784710000177820950523658933700197695581055304429729310139174132959944538025219077864183974881910295029665959615165654786399155585818909881978728105971894923155037777955757699200223752331344794352038569981484356191150675462463174629336635328464212395623771040451718026125754805621754646254933335092529349202868392456549084541989602460941836556947030709593338332163132343409346718451952134446612650996144947284079582419185626174277849889374500461115526708445016931550862278555168075405411926696267629655177839930074080035236480666514792834657478069470589317843138997981524352693597802868125941508964760574591745033570553376754042605138422504651161080542964164417925746030825173335182375693228676713824545089933134534056642486639719783500864322644711215675869466471181351730094093396845260815889047770884336321344555133866220099082623794932179395576417275331833206939693957472670574783168174743029060031040090960404273886140485578487530047293036558401024058686954953641645561074923571959462089963628364045917607408549779496442789524228576505004425880856597275011657024763666026603460506198209277912078848408835676085439722137620041526067894000283509890687995867516089195025439318159102609456202393443088893067852909182619568984682452665697291564271148871615661686481246713626140801348455015509562154635348952850905332466882503134030813981823328442601623943510871432903485678161567418761180121899272703652382707715542464787141516815613593458466415387770770989617524214836573930766705020573075515136039049444119882074585431932693628847403163883898496303542151128160972974146069963492101261479843887479236790985747374357642733302598263868281695970887435928047567813116269754239895452878285785420837100805665781025450747557758280507240915514509730037824341983889042175462580968529347068056450646316716956046237357741472044766365004361772031745922942051878253548174938906320236241132394900061454613832582053272647043127028517140088920075075948388830565387763912828895997465038417763522785541236466057559904987878383877878694053044270538290208348429846645836728647383171728959341056295762372010181616028185777680051151871692691520869907210470031279754188371947577479622129967706101314527091670857198620717370106465567231587745345994812827201763683040261582137996136544859751014490285482767087741023286332104498698879707760841219984497491148738019005941514101023158435152214877983007275262804775540148203527251519469031961720662639133850025219056612697413255114222416436929442399200673021141725674499333918927457015795921835998349687532534943804591320969539444232999296485146355933445425058535697608944901633110618287674376976973386039495521889345847051923820201400039046181894037543970482140701196044086454027517864162684247124167564463247504653161896596478630407143778514364877177998541156034095561205447180924903771457325246360858743682492160776224556627013835349010011575348227469166303134967139804564101027262236463228866052701702456643422689964553421055872894115565395283343912515034343131875670645392100898496934190418262648508474317802176585998823102516954010417584975686066590145104080737184758259024537093397343069031175572000183831335068010796190354917621645948972312328015660254096048517361144599656744914153733682321564583386300175603624029776502380838434242418080185541654588405443512242724309557471881203919142790746004195844101762551853140934299041647371074600344073020355500348793357792349825270729523443401585075672427716953134022260856078624436593288275503262880213463875129864269156133798308115231293626939082423504171138756982330810137641174668083206231251754975052328097464083098693608723223557620484900125999129239351987570201659668594440200105446588269869307945183969203821671821572879668369506205978835548156689463832869417190059717027015863091907154972564001542546094154980624670046374373687105425686685567674833234947498074973862322657003656888047449443137234227263409554768062316670275658648216516914590076787230921271252749707944039449505182105686542341091438975665359722181826601119823077192772034241650757304701567706963135371780876310371968172874670420309947828636902051676205029713467220573055727056799041180969747390582097491252208654293479125273241668326965694020045305844382800710904263182584419794836678690358402233283598806715215700074132054066828856322852509344303435704757198812176429825649674291189382363987342502392933674878509448089698221841463259097988324506180525647676088923273644141905862891330460442514597598996964723078530540011777593309767622628020757745974057823000036798768281129550340231913232277061028404210418822580141117691191062766820872056012637085274254492293546124462780846319510478100979998584905550783535387442944880274744094508714995890495459377606866486958901177051693649790126733872592089505428772457615017068260057067092166583866143560717800128429490754897560023042963598419173689159752413280632267512998629660677525591778520677914825426677871441633069181596385019849189904366054060436792916884406174663474830033465101836896575390447222341858872844717246506673155634202690831133990461621504618697561451208772076252373237242175250331911132316999251175297216347988234034590401551314380894205146032560903773777496703444451757578739898466280911539138393316635414166041476667931106004136532758943507344935185034057293648214171151311129784351737059189417322583973602931463610784949404515662114547633785916549998538985488072045173978599509355210517037626445334615314497335559994136221160079418256838133461757697748224884526311407862046419290939420889646463046627126803903040476944950787739609435151230212836743422114727328813177845236952627122392375157609075721350431410005419645089605694780461843868442793874598209131426264915259512405819779921676124040161562389239033165011801559596578521288807191965803192153664544896956099496585773336175536807669960227314727924658295158917690039223197502119720316736779901351495102571377557946957984771656591324647462309355099597407944351778363410924265851527362921333037146310974635829962347664260069869965298457000240677405975003818391702726217177181846804411416574063543524909410930626100415266392070185333199031003939889334042734362432188118780408861905347956264491864965969109926427755723322760289061937893155796046388176473403696616323226714701949744578555853245872383153170729895595788335924312254037346174503851211520423261364029750907548433110478252303765452368944826434184819814450366041845589454472170440792091011534752485453560258513710666326159422543986311080763505101268577647618189167954853699033458384934652804417438474155631991170139546380758641016748713481879242871671416426450382960689070857803784016921214221354713120430866930795927797468789039241805852424030231172168478248349462162265027613349976553432380274900272867330633095542503516849024961198946494432047230504191663204572216411473251144142072842041427448790570062716467561848231483160419177298999933686294648434397214333609094210724857045572180959443040108778507495605421989835565093280652839965395910928236628945621826141407653525494219370484955985983776384437636730040153460454582179996882316632169932841099778066899986195908927557348864783342944848855830068791426395666711097870657840305194937043927289585320991657210640066113249249047276038169757968088140519957263644863790042331872793740675916210200936292067977813360937349341284997944598919394703795498889546169902389455088465722109200124240036843319983300350844747155944426158257294040942015847587099932690323205228379498313405349933375499101216201489193466790704389557077570985115988529457106712534295577815381010620210743055265187489354903297319433581714856999365729292228266043017765666243468760742677934478306774670678633262310217791257544338601116717749297623757538187923880007426221891439370536465254971437228168573086121551293216735791492394427864417153019551396798989356967202898742152763680651924072928023455210608290107200730106672451187081972099662070672232194565235073676141231932069075440805536702283797214462216417942966308968453032093062860155118459064778743710727096497120610512147220112683639307290562403371934779609302863330895043304120587337948611905081344761409917871952236543867373043832005309632215922631784198051288845524996459489075747151678873534112146426971325993286174839059892279627199934685097516781283605387223901705674389130756649867947556585856009945761511569630587660997031686004751753577412830905779864496527799088736037192122563109531340922296175266695000923824290191110781098591442032991961819841897161328156744538173836687412742943611669394211188637420018621579308449338704183802467858490148466040873730285038426724096294317669867467381166239328720731803899148967035720624551744441095113167012983232992904236167513422644847795511769691339850389857674382953090631180585101966478121471427154773123299457538601170861058487903690348540967365540373214800373669828806819275860951133512618579738758584771835498068635964852608443946527463908742986316985645587028933044970120971951555591581150266672898708383412395384364855440737911169180821079092111309123771852828408806522115102234835519686351702210009304879179872760595608720928001606471136013104081406700686647966953560841790850200644090825380015967063584630454175677148922307766606871473908591662741400689882251759405461201512942847547269640976409350610107978058962469590852280220432666826324778645828273748969110920150825801433931651734511903216172431744654918476322492302497249703279622253448860169446259961645407433094534004499637012399011361044474137648048551072677382427068378486350448818515722957048754148229068504445893344684565039130917055384000471221954893685764008456845628548277234519401751829526257669181094426730442842550976972869267649403732821387947728901234111091852475973664191515525611163966488701536383459615801100967945192778794257911581684266435783809465514932607976339090472161500522621238323288808166386683716796016744891794109266351850946525404682924242527418930181161713373541583169773163068918976332788907423734732605985305518693296291927710151608728326787278167052017905471832549319559684891846863354803784833420375424445804710735022744077521436949123861522045989914431672121109833396784803195497448441597039359503828277775247072521355600212758082338462341652811721165673451110519223505219726903998253173090957608925717357012650141809307874582839901909197832544184456023218168874406194034922087715968591397695431408805932278134409214331914761384862739401517469843913552865791539743529626240263792429348046056851601114289483524962864264943264315583541777794379679275720710610879447158917527201006837656481204309313687841363361664765813939800151389469586677034682850307167246666405698333058954294309681927698592757822652483478782905609009344478046671050518222010840633300507319089013544642045676106276081496893230713803258220960137903485092659641796720159508912087509461382672463703574793384891170301630395630160103687915985276430141782462651070677811315496317374015201491648908289172385216617558249629843936438333364304717022273493052041784775129428855307907732851964004827553598769955434795873274397227549274985191183843671455475314156439759562199538290968770235462773786106416781891341541034239375100354651864888556124946709339814315011017019506856777842272323726172931562252261467067745243694895397667684475087034318291201488839096778568612718009530038027317460047365255510424311711236684976068856508102045465558057790885939837260166643969208250878185735290519589847535701154588699994321997260799825484783084407281813937475087187904483486961193831185617187004888237235745010012755707350060902111956189040662552612190731251663774700042351337323529266856291876803554078705941807379613299332362020755015698147438174705129529665241837609753123662242190987724946171272117430546855800086520895580033744018731272206751241547380146679276292733862060105128112205536187012337018959751314375882304478691723217100169740968809240477237229089379127434897260158304340897478325402385542721526270650141776700347854973694943517394351890756059863225542397587401783762888685290750248116278642102412139160498187100885354582955797080104323965476740293246853641325241281613698327609048831057143476261065907427236830321345878940461697712006329627015899343227117393220081203678410904132231834308712676622587556795759262515566586216553675662444747051787575948511695433287350081728125506257919350373886019589060942661149686625004394977170340512525287931830302037245992620223530893120671807946651733221653911604791805057031087500709242203944895431718659724795652157483218949348177386417516909535772362601902703371347586520103553718384495667299520729141116844608328832819341264323117997083453754845127749636558832808069923983276644692690812981789787839126418957610216114381653787533431736170912244040539443603602517161115502667245367103883701980471673168324901471172911204011400408497158885676617681307382584169642617894451927452512493349432318346004563676070932015756529143962924109246845514440577665869124645997559289569447128205038264497455082465315796500366083281737628127978981133916915022451752755177767587723811510209262429416657225771707773806398928732384227496655331874234125989597984940062197234682637073332030399691252942342990215670602317565676555710621312198329973013697194297573890339915197474419338819839124146939146644485073837070366259985307066422880072719965562555890129646355754030921827857626560621355047250559752887397678182365919611519006465101106509177584205030604864112365059592543933940654849061871901977027865363835020790543224175111850565717071223913113016631526295400946142526932980946379964281265533723898893852766181907010655280722308439236031625748817084730023960731476633247129763090640845723226407091855151338999603710391290818911762923365700463951023339641682000051688201433444361265205055263560138872282307852087072520620466940563128584925640505552864212771053109376290198435107074590300158988441848973137329386318866476075361040061055919262393040800050376275889899113809899075242587897958335977731228216523986736999755399062725718263422980506712374248715289260227400025408275118323549325222993336891751027702485493894836003679865165327391889906274537310526072510091365286499043356712710674769583259403447585337090990148404941030813111879034789079987149797735326178705830873498052108408866392952234548610649770662802847805159393788187889213578602161954246301783913217556645894053614337967009907673229019931434682927440375743665034315480769910798452422650310612957922339808678017275154219506680599767283124509000226859597437291553421130730866673161540127502752327021318486618818482936039636580806385321973358815649975038452339612412104962448848845827471315912838491821059515335567515033319191161086740968557694055100894470940481309181222333969539366705681225249959959717556916432307561114764365043170623876342413623560263553876922461996048426632595597279273928938618982973945367337053210808115212500158782686944777065630250908809261583182205164209774282653716923305943369440659558736904349688569829865338226514944201395084609350092594712946488383781644113739849835230349040753728503600134419808892703166550119200625669346276242555585987011767677619375765572122386441608842990635086608341453775536959446877988008970335959666561020270327590100430323310259488684729980181622367066907559901930338172770538523772239691864774549288256893112198896609449447077596350976902643672322383746086566640048452667042009452386202494055227894484991088061203577263573509000305872789283950064612986716563879405408656627575061710344515108234359853958015654532556632342784049135438917907154321362423367467745022862282248876164786635026411646282617653112605038395059668296516995966183357823028007614833728367332846343160407497808964360991956260000822327814403740283633726920875016623006370110751755765851218346475783865114952271859095195925114735852703791066885689128585954438936516904910717216209773822120990284981360434105049766307119096180298283627720512505115238222502619023922065456841667332079696362250616307591917426785394176886343223295790166820030226048252572615438835492021935512125924572606204603760980967920785599181324741136085996224859321451418193098450961461815153908177521884133563501202543287916176145235336531720805726727095324961964535397714534343122113923542909241499344256446578430422787078265958738490646064343641634452037281963141402892935769837388192566637725437059392263475657360661425546425228670870751247775513984469734889765713760385968114179892094552431038690090197881427095680972419289960185504577699488306415833949838205288256819014760983938433688582739473884354926978337647456117317955770137382620281476120647885576172081818696696502734445111249531417597199813126443556959969462811224202340855215544102463104629973459174919032137205686472189923106702101908189366324343414728392542508708753657206385168041933323005540927773019294175194868013696828985920266850018433679834784196556324787951203980103507702467281311482625894752062661383814490537008587535538548866520238402634367490373759671969985876508070283743904468030531968783636278378435755380178416811859746556938061399278090360862432196299101926489251548452266672235654995149353737976145583853886091727980127679636004903590582975405713788758032864832919697987576091559081189570253319050856876301381229174683072465412650092881045302186550043294865722534853149177006976004821490760957799848704218959447282428118016469400464345112289076808490955197968708510436156551161054957167398346142863232981383104622978506200543853251061446486105247403795924578670873335666179404278580829960965610222834383508985653145295437347497142139233026019584654312040891945457798323438514631035091958909508807962564906394564724179992689806424264136571679866835240417613560836113792382748227774945510606937368213462918003490142563233711159264912450384086814913778416852630976668847400968883999832492913451887202212710359972976508117755815606271061160724341959978364268712878002311153445069872820804855709139480953183615815550436944247455583313392006100121798455688997497445980537803741885046683714965406879869006398666181602776633548414000427164943616136391929951968087859132966431835248803709578294554725528730072201961477066476819774486973002769122004692324459008533750675408985554185318661727673380919357749862413548931246257078894431674497790475007015918326029019362706802646571634318950950478884721118169642757415395595525189871540390916661920393998681892464521128311780255304013118100619193619180262238807268998948217982633837688157205205269995125165719857512251054179904136407816236364271924142229990735246060234849338247943156460463559653573119932831727693483472776023779980151600148519757806821385198737201369477457917841154084288737027541115476964835574862798798285336745132824140902627849374832333030859815647693136183675535825587802474016958142681836049645938950808111644632541282908726483044158527957333117991787873786705227573749806714317177593106879136524169927867413591316907849989149251089804346732977055170179872148186317088400511151274734035091083724570992419936653173757849202560729453386470793478784571887110221525378657145600507017600744597566806319511460838743897071156384786605120538999395477192990161924625432438690330815002648851357253424443007830710116167853844141575572136703797934983062957537243279638223470977672248422780636688716711317139324821602829064345693853114470053299603344141379062083883074291429530745372530565168036424639739944256236409828541826836642719211929670737142401586088748300137665494763179697748187161008949466935276237013260766032716892632427747659462778147829446558000324779837512087642221520608855641575944192811419766933741296867357793121682442824028229106847687738847593005206516717336200652376734243509888562309539736515627532547556111109206508639723035283484547673572760782500897311764571115516640001260026143916128187174140835206346096314275959179889746946698058854052059498935102386064523270872350165485031072011594742363028304541214805107173719740082616093294116381398683820632641676088921528990036063595204715448726048222306106324310786607342836811748028921248855790229385784807784851020392203283334192871495399769721921434775836282493905192541866654187837962983295846894344951052467705059921888106141558123092611646786554986036982632144309955143758634051286428280405442871823635135773056114917243354918389857062231366610486531376959258595853384658007755808609568432629544668932317123697504084412139290136405654211548252851725779940939841763604857771233892022112614155418820721167952478585622638789893383074111353065804998277192406539085531725158584122135279160673475856074352647507881124258973328966798205643493213345298282805310425757469121275339926812811127589189395501496113487622322772257622034841018214598492490024858298812213705775445889486554847748970482165224591798865646255858586472120903757414212143015805890232222468969819080412194774063222606148671712696824087246160327899956833064155679489405345969744038101444091239061588009579766988605792971710474153904744204972573735846615410992746649529590675107705660012661052521592868054926740934797018080739318286841762914422237265392234851698319804189494334787077193151737823399066612338156840769756989430585659971508107015364783153401549585678365369288598284075022815996769331635926890008091641248186054291608322872278062428814416128013962755560946697001391886548949250791196746319351253200920845582997038881403758198730221063519224258570982878384746760809253863808514985964553758974598495956900668046263713944095328232105721089698487970610898432655539618795365482278462697537620658907548341077455331995397770249860851541686548406656389761924558675897035304322186674759549831596182871583195383912123016251545760292841466938077312033047464538163370292442154792991819825900592925002536242715719374882671564646871348713494269400759344190355967898379860310231575171449635920016938757842953970055612396592540651577279963719433042854370373170389045335927200145467068082608065863490309570336949023704676185260802975660028979498122392786083267962937744399149296403140095474042042976259989647039612718244808794011735900738165396026371664877872896353863257511171661590864478192788409360369572329737102357910986887703404806940099703082114282426901456595323364475895418130611906021699564455689322555645212259958945532495113191301076045929774737850725373082025929744152357901741251558797998560618500507413816579272089942449531750725735492972549275236433172104453174239467289614765082572435835798333567667536777724308224025978856353160367107027913115504666552138553872936417428229589893546433883965792064500707832343823230766767662775203175703005948094932931948114108915410463693508908911100451278105822161374517458668059154531144320502994649296532527341765624906487659368877398797655551381468586367153266562005438331981069183063195291686601190156745297011922289917352088463917334054598716387058309299526533159697469479762996434424772965823248218293861309594140362251577995857081280710618941268394711634076120919405818316672585701902490353878221019139088747575561127643182014435935657374041354464351013398522860779558744695110672370592038513611396069288401564887444066747687219782654061587954408746564600290589129916506926918046622847112165883680103885314140030523299524685285332161460998798210521356232052570298166032652000131186615286599983526410162761564253834141490384169265627591766345105392910203747618691027412409434385505847153598522193632727078621161117575072186498378156659514020069081031561270378734162008175436389783343442433641946711046412940812324696622538484874380085468019678508573229299739543853514798761532962027435818870647982215256573323944641777036278818385954897877515282092142076731439685524285061710504932902203545888494415513689514976640922348889709721867988304580277720928673905907782795759140594625681382588120568348893995262571182836645615113746564307505338376264913535920410977223950329830833422799036099955996735469338024055877678935220152334842851556597300675271088328711995782766514660430819976176075449758320248704841234602464990591449984981646774333133232091029574750973641654284403731479258714467542956558929487020128618320713143181090187191406136360691350510223856451676675329911397934916279143727140538099275871018186140287072629402193562943963586655031765870021427252888509813392888036864432336026268230112311244711293483366199043480924839882840096836124427612394030524435778437273108921533693278768595240173916414286478436091592231895444384544760728417240244107623823444522152607825446481361371515707977478269799776383766369778875496762153216822843622723041017565410169416914304966165556723883836225181966185902024583002803727360340419352482388291957930221342901823445086001013680784170984439832314627266959083822816027194677477274112796637555382390852393356520998140194356589247179417081460432435586238666655359031507914521989396901654339783537665622302926230332614962315946565929717693986170135208618942921911484706834619792777854822431668108177332991299574007029684929134522082130000590866598809368887749245212759613752366831153369241274153975830704501629713849779180597002905038935001121446303814284707230618630082334591179341378504120117509963037939960352168256034350726438437732462505884411398084264447710583450220227618630152320949258092537174431759415249043090792368131588968340837716917924853187880451501912967403362263401598163449564943139852189255643499905859220397563207905799036985826469651736684384752486085880905375095035441219776714305566899391776039086924904476474100809840104381554627727009859263132291508921091123416253550219511202731968930775596030384018439850618764063298504511593094567940948834551078300761797957007461853711889120376908602868619723778673329265150541744334186742703481275652456138268861103290179330053445820392353288658804633253185461985006562066224241095132628317591898158812994981787221710006022342102850563570640323862132481774458970049267212097382714331223364309082065415486090123818525434098990985249576242502244314242984652461979164652692510064276133011398226439945131404959863868120687188535214165550437582239052147087929607714410537413086622721109350255790998530263586952079151417450367324927807522177787600435577767813261691931403114465685789639322885851537564462298175763391831330115055604723564180450033999655584838531945004722284380326513778483170542866211252036886174816516962268392052798844067504724675634008638878086133593855027514445407639253405498377942066398889325519420004222200168947507671241714963617912518089895796632206898836629068458598344307921820042318716630682204208344665737758138991222493021251234860107618840794068211140225869997553532330736207615534895894997207833920628531988608418130089811453405665956290291517881883319521096492556033104155431493515589547164656166151401133279207426218315982524298050859539054835792202939089426398855883072520018387354222028336082763431083963798598975634842564984233351489331758489954667016327953568375235440552770875888227848152148397330984752117661902226429364344412253617262516835981965134128572153673719430347988785767610583385438244119706915841881360582484452042722061688471692080988696339629468887451744640902935986864546143601371815868391681210856439570971630035341002125216605207655582654828904789500937480290586779622603106530230310359374203520722262141221808965725574663044299376238320012079850164902705087125070650412597186574614146296610439167741444346550862818560821244262428480667039958708282248455014212093589344609311015674304996200738163326785805327765316138961149205583827211651585991520950821365973944991860429237734035632937976090947904591260211385064968463869624816136729256107351285716133117171714416253683403729525551192799896923255924714994520298505616808106093180525704324464210823920336305754982772630655885815121704044187693619578681452836540835898636918479683906944365552258533147026936857205013380467489545296485422439299788326573421635428029828248646228117416652715695505483193495608375472681247830061241346573033503544590939788095758285252611436906710027815507227333321466119255089060982043175849556191363326819555447579596705305668452381863685181288021495630449569303262538932199555661676415297915957769832093375104240184355137589658299819976625571781523867745627262497039883179325482906395963879764246337977777883144031738678483084876350295514902685354177358919158470848554012108759678849795316221991083244794799860187746656133305570395864827225655636782898382235619723600010388023858479275880902705874360924808379877540394257821124931894020244832161401154454340554979369522008335767537221491540444324561734980480866431513407858916336816213061702768055120834431338869559498774941218153600321477775727902503699710680734175861946065297812803940500901083971266593891147873590815608953057920295326287944948973635892102242149925637108859242254896768978318477850747516807863164353671023653725789748548929835950888033866601441471436077028891822386163645219065611969999942180705308299772794711462382662206139186463873482580027878042118586861070956206885975954142598390541417029469725349396074635372278868408928663840844621951805615850069530803618368399599206473281137662133570389841447553737387212697166189588269737775572518651077326017336031049337648411243187334316832088086761127559502346665944754595057476602068249866229134103787080735154081555092991764513343072962297801893931013826872162091716969504785591131131707504632149976334967683081695675337855875068147325017024867280461965985012953585940835693703660701258715510004537660459253594641799818042387420893856774364460303974796069808153331703941388643149745821157663918088802860073258306532679959525269368476653556023368081449433634218398200143240263237955999622955513082173988000688240128114775969606130394789769005155802643763209364031827686699764556898665217737817839447659801844829615745905064025044794146769628330443994406434135175599776308160133142758124473877423227857794597485510349469242269837089842988200502681853945140192292439131180202117710595741821003742075548338239544684059139296990630990572910554744943670230771391900013080104025394830472271988392882409887800067044982955026056807209926566977189715368418191840219780056095802874836292799473958329810174080606067279574946763129127308394903784657909486330818785981698933136270072436375661305907332104091899325858145347259009154047176193793087603280128846204728096912488391744241707853800317407451424508295934531990523276516214287882535763894151957045253098037057920013063738231423307522437792663047569545946168218714660165617654021557967685379912617059408595756866194106919996773965531539161931863984713926801792881288872707487959889458368135330709888039106494580263494918594948717514397185670236492586134041041194935307600555294797385252864592219286886185029659924120825391203396847027122949400669085106517187136232067759154671485791152985621841008309212164790884602927558564840592640555399594880756855821724680940717138545291522671672994097910354292798043456383626734400955099686455477083374143908048795248925315265401981154062811054854548274352848156905260747084125026387316451244971607800504008893508603078515858820546241262178041051576095729198060400159176401210233492329484097833511385674436873713507885430278322257644586954782973117993282441369600619305736790922138682726451398028115133676269201331201973589029726525556453299452351880532456278167783765365619735407619283890047641488158265831957159670650546369361759087518634078446994471417427334032922413419288277057228518596484058551683525427850887172546523025186850877962255449821381970106595815794579218836746869372471459623826225883111942348199995188545710525615353115986085971709745217319850377902690440630075570788261277263333078813034745545484716106125888026996146919842868323759685101384299420883365546638601797767477623861354636340363546784904367967085963747420479590723986270550893620539246373808279965516699178683319997391581155310150121559218725095157161903719275754932462735848238251730150207999326878775277680576240846008954296129349928037768847099887114428249449902199601336934813147965524324776767355478537435033390387110753978352707042801343223008019510945896503318962650043085866149984333951307983296299525997561513171548238061193787835532165010951675763722472118558776858070195657878188314027964711146166466469346001325154480924812062297652047685758144002906219867812459458763991697420660441696635060242737097783296072623134912364997414421780773337916963371546333849353141151248516827923608653848737936911936027051390739671714472808516946127326795081263624750299144311194213546153500838896797666697419599361681269634187465711907096048613823201749698303920196195657965402803333179129783745265127959557708733589360993014184203512668056108448575971454741264185672288752301779161942578541845404819672943946326820704271827201710566958999912930798618199008505638531721773552470604071000191137990236756462459458670193732533309954283451781144165888165511670543314185659247432283309524504774486388387225527107704601595433827903122013854574021373518793247751343314126009321114953780332161876245428279826369678196640914397092065824537022353538468167880764117608708717995268537411222771673744509593186109544796065395709955752009419684971780396827231827349393154149145131145366115475153573814176953826974083318008850834919757672353430668671256058105488546096157357506911145182658209768289426414537714011086606517835440608880780139085359995096018870641055981680590991545056070134497105247791714092830451319513759082665505483235233139518109554511857783850702837338317581992797130684234717896325360778363971991812626150552917383112813247624872129646440052056344071196187751383951272124443070516039152827417907321444703971675193329859225449558801471689042690389813160847397903251830772927856651448640194496468652963683353242057541522845419999457231184321211094469772716235934736359989585888380647871011176401570862781537152912389979626004793781505053629596297042962797914338569605364717512742888230212000803860703056748771713871096777076355877783904848584343279892452333675669101772441101705192759439834226273752157332657056417923540804678176737510955392741886996004701530061979610783984427768823863545236663003086533348263162428625758127573503948552334814718767722733796028102223817912862229572126483843013559396463224461817389304476048972728609674568090657597107664623737596871568112956223531956002114286906474365765966955813174145016227309778724127648655397043632603988960230638017088928735187537022020718727722478375402854113211702651834839501748944312362493535746191463849859222517283313734378148023580890217056863990843894881619521283128136126495012030162345962237718936021180282984709372304476204886757431887324902866208796603275313641807199713053370689497632635531822941458946103529054861863747489004482148511508101248758214539430024858955128654504474110148242328448053951015102005148438468143835608335545933575122214894389012707977438771213383543751193296174233067181997330659162652543408877953174374538651811210718728889968920714171156009341974120428624117145572282721539305409643453026760913325043632164036671997480285561501035081690398563017564072230472912457969327110039652456249425442479215602607088041061262728164191300660002984379907968912203992356918567882510416222562743272218320809119849120908614851278735312970381787007038210384920595731010327257568794942380264403007532307897068183144670797263866798582354039765776982796176935183961845166807517343968313894472610298234105363653430817140281275699618051460514634206836561406008761371952167600940848378127508755969693398006662683278726128195777670531790993302293432579969027530797710937767436513055615201235079936429998296504768560188731777396999915811164133779108863185147372569368162532268188715376404819827227456372005461964445826697801901529177968038134050488896996210629292939022262417463036539557179349081762638565347908463036343333313608632081521981125989428701932856305359457030028752628769530281851081786568338005358040162889116938728045539652411216312561788873533677630993415447848950091282035583615347283033466147567796382038897204263851586177764233835911433290681279174905686702781039376265974690751456544524162675831826764792717977065881134851486880636963085835128322393531268987605476082576654318584650982561468266845416721778825783653964254582562424424833818421642213774340093204495642765734160685373105971038256685169192506260146257131961574421811026657208125111084394941508798356535584942915981528739240486686857291374886960563587494296374187739161975012641102464163700144124623061035381448455122418199933663555810110580847556568648069425148072963170510453924766650920677814272086682635323250419307515870991094684084921635841949073667714472848444668922123435637253416737875066742457810549211537437054727870228234868489380370767429114879332763866549954711383348218149000134299477473957338375790455065566880959097211813071556321321457393545314435003400028680753369591888521699190643796873054230661488713741751622046625166360209514681725900286590519095175693149906713395555663091107178778095814957633510476362101153762338623421807725451474103996533210365821113228401988748109791394503704703219811918649982788042002669801895667096532611285973926079339300160567574824698013058108610978146733746869757060544458328572541520938516093541054924721604461867733879364439457599791848919540669051016555609904965385580597727691708366910083611230511216961475048648659925248291506837006263690565487630908749124313037795204911254431393509523380112068109551918305242131011211082959444984914719759691958409085474877111568031805924295779420494067503302680620858144813594398547232548238015037965707098823652011945766238801994436448060891189128232322200718451097381800241485630413557824485684104710843184016586746263741983682353808790608482181462603701372774538908516360973386955323731582227962415564670925279156825926740215499350029594660536421816176856976258031243985537320540497499487254781779782676396867076962176256700565930049071949537967630894526541045150186530005875580597790228120235239785054163474210388948993529610361943399960110966054517098349071836064116574974755996918113994493602590659745437012632217211321387385424355660606190704936542784175626536223072639295231721468630817282867279085766569829781543670828905516179308114856923870398942903604585690403248618048179401896536091974785942734883005389736412529840567814217454525118081190895732808038231317900039838411978132494478082012408890750528553738614149690579831032813766809307363893462957454876137826835266298923043782147882809855689679427337888888039832651284275180556010289181119784207168439599259599963007269805704791214386535486738145813734202157529196146805106919912744747632774212396027924168910523010610195423664825007204915564913510264764470302052917635268274720062003540050676959649996677515198116983172768617589524095641337549970139469232575506688843372801575064135320191867380223440307145272197874404143784031440752431205327678054106519062862730746683149639996164028548473212715910120243690207618824431581815877638295935957545994528207513557761103865474500003726174243166947976249133219934208074249738619306429457612667657533380235006212440391517051442945400460372054853930652946409300916361155506187922987542585802362871086876749611244898001412087780566041414343354751861865630403464363989408133425047652724978478431111336352638409583779950838625730915911335639995761619302338089702631186513493631762065794957437310660101634560549714054562037198104184251087477208994251610254976283499770131348706698716200455219996555047508758074367830080041649054995574795929207957317094443019780437368699588163274991615588495159393085903013086133697550178310855374837675834674938575636466785550585319925772010209433988297548548936786303665848767599329648064255426833660893572286272452263235062221474852243753443603472890889110288001464971249364513454632557236369853719098294751540225601347558461613935565922141230736239787364319999807258771577493313212443265358769374946431518883738488867713114126683143889862142131111369039199555396636044150636801982601982277099514125387391608355661566128401242149360909216297601923210158928821414637495393438125667152671928999951315905512430259198183777039810503647553542583712844775358937750579009320640696798643576943546547330922687301272867788336658877567661138738386387880474800505119468571694500417427044272173544304313551658214172128840542202788624398960315926742200303058336515713625951172351198944382445704502054817090922445233931794583339597816524365173676400839800395434075119667129965288422664762147541231699400773063718785120027900462626791751799942101465624504776955910278148981014872641268133009567570733131941985219758892861874628485294622853289979577911978922608313804208899784442154337185681158970785796359468507214130899270713014023053848760863874605817326397323055451578826998746895891611366954392871529152371553902360552430208095082016357107272904584908819311848675873985378814106568103553090105025279477924621711104491421895762113939752056053537777377671805411856011530787209664098171965820227903458419234020698360399082850403036051497398860157305785407561674967409370598406820961915986295505001811578427918733514806929042712353706642919820207056656476552182486909369534799803909798516148311912739369786221615067414077127604066456951375995978057390987715195116444084984206793666886269616418164790648399721999839863507254331205607143969932985028425119109931484257451946981806369065641130699454179095597464441520075634339581969529189320278629437486255979731411626380501942889249230336456604811470963392335930374135534433451995489513775871257997502895994485695052414998380967692266313830028037860474986234443155264084187174604482089517923021480312080555680294605199074988496503483123338079298123747090459329636992226467404828693458870388434166434207084915048064970612533734981065296253641832120264211363304120697737040941120317384337581659547926317962209220980811084707943891809106320800029931135484380899424317425366323959905471262093676943360981417791814457106094490029763143236122272293601797896207801179532375146657686482584857287545320914386146558172641672637053235955908718508798981525611544585260953396861885720103474002204065231123158114121636232943948908777997273580709913988671220082101347788733655553872003942738199290979667615701657829473612514704435394687058753199268773607121140282264096866816482715008985788555798569057783598422916643389178031212401845300847263764927653723726163008898396236192537842640349951289837071097157687360297414920131701377546718728172879582178647009403429066533428482186246578620687119362456268475697577132419714503786132841662515498519231824192559881664395687091688050322729328832121770945836898464140547365243400157985565008153792447632624321989185993339347133225660332777714656044426089539675207746782274285150947352695345285002069047769877668924721970031010922665365054778428825742693752464843532992450097826069608192242289240996871487836363688082151011020761164094705486805340070134906153606609629262995517122027941449730834744688222911068338043160100642707925640554771677348792985702205686481617547140757689461765841128568730620333266743462408919671424890632430247386260274458930257866458615806648152831201337753792898245318461693498152754274265762078893806584642313556358384116987334272947694425122489558332804489639143584031820075938784232145324506419302082805827664301824262226507702371783020845788719065166599392129735910094512025036410963632679674745593064822836865828852374161463218998672704232020405897851929909057116715779162317416596451329674606772015952691647019870364345624311014543308863235609605653579286571420500853869686725505186483350877819351485352004537685622131816299153842585916720761297635228104307163890487286562003778790801217455238254079288464165070949812741059202648935390035636816579340240519846783856250675723058367391790145243592101486686123922948505726406343654458449639536682499748157894626828323600134583606027319925167539635279801212022347117023879948873758256947662673768560920351157315127844268020113774533087722253632770039513655468732044229969990651943757808955862108798612645735436006382179630734102018588090886631109206667705890554555614416554183397681975068072167951783662535596007166460723328129752389679128085991463241455416080141425105560996832281703656968743279503932967306395110267587436277792389411727337981796303624273076158453551141627451769947032891124411682225849669508287973908115391329212728033317683839432729551136849780985956709384842261077058371730361501579030462989660584173262678623250141873132826338879015975719594353180961173421688696820226156736227081247435561087800135022433066031346916661803503197321872599345925438316239194208451268477480944307789136730467725361354883810313520402276778087309791248402221226617483027482163091781723738334481040613758264014168048501918115999112212755766852851817203620531419209728316691058376988174777016237216847190941307672870624897491686575346894586369422624170665867750880245949013485013486637394136292932482903800724529121851421179879278777288354316527788476203741146761856738990652681093087440533967170396217043419021457979886080391993168309075133397735520025347076336658036946073138318823142292395259986806126458398847324706981934584264996331813674685693451030507979825797144769766663921033268989241954825665452071006787190724112419053548510609449239436092272592677400433238793645336690147073601913008762149511749587742432096723774905780621074938196054102650912506454522789815986055644342681704863295768762014751911901166945824475622641772344656789295331567273072924632934342039057205927942614974666632492383993936559882849196372411872693826258307311710045844305625828096231370213838760494800688420401651571035387741483660946954613987372135844348681561112144787830736282569003500857817929997202091091054840340954264903729766862568708247269937148229503087705326970811574957591010355947386088352685901736026349837045567361084381822975809154991259996293097115123261971941540757235076085200586254210073270098353220306794929145738768528813815608151968303167148174899379690554810754979676354428423445104519616946631318510679634352342161529691685266465619129278678770991292122567317931120563940620430068298877063425447470187234397193341058007965758157429465818135152827418662421709512225407178133680325377607753864973057062948447149322325603959242713356943897839953038720875162249020593274009914968113114534627987906512928620654483654533560087310291587491036509299359730268870877394359049331889185838756238015434082503229287446360240028543885343547006679717625866294606678381061555020611414686229951304328886132547365472256545760758840445230352053169683738972568644989365702827803266906555727292541639485802465316848703696178219178085423370474892577312092222392331957863310118255596694788150381144773156005154925534810509419408285665396247998760880181403099722000976812357486743166718330617373817849500821226190984522922537992915764191704808213766708485416660466300263499014248493078493440449236567882644069970209776987202632307874078007845778575276120565308716207375198681565281113117542504993615063630912257813667119342554978115188670367929685090338699385600478179890379260541206438634310145759919676044640496817447786239532723690221306567729137782460721615911345713830877099683756830412986206658131682967879868630862438258896658867877208592161712398382084952551413503462741570081584036216636298266611922848935942437637073517410985553996951931221614435366524237319005461799032734329645978025850699845544111728334250782490351486710724192596909539457429935253113682328593312270701494812659404091381416432012892889171110017964038254613290192080774483420764078276265352421209185409801359346538384835187023795725178008068320503924905996806545168037484584155772053715973517824973086361535019188925167213823931092274235507220213899296118015223464732764822379515654629510522829815317233014041132502628362419399370337221935991748928642807439252051188777340552276102824368466312115888891056599388830923971753450635677955579388078366236680650450052689648903350034137181381545944940622720526717312378569026155249967645218333506204970571890132375337974916507551214133332371469614013120899172757880605125718701731224891987513386490312596026140983005310025008408152291610029457923007430423364471266186801916430020007595815062296025096024812593173371643239253009909774094973495931109422793504964529209135078592955587618104319027445158340493154847928454893881987666954442210503677325345740871689196741648113606135225017734584280172178750937069381969985454043607596984394155696926300582430587138124308448343280873119225155964248570511937465269557077893377530819670376109488514175313175015897643642078089171165461154835370211416590976566688681552463296903627225475428005984734637087888577287218442308362031525133386895133524418668144387331863458008478616646212108930716521561837670550850073905059560925722872250726006683439245289533660812331505908694954866368786286678245752803408740366268835972124994687367179691177157211677901672905840509307373759963066959311991868582681025932439860424838795397734133582749820685821897710860619495225231175061202214224975426558236051280586305506982465293925106085228215215692699266307557970169255007324681155386782118617185154822837846717898593270991804101928573133998848571655140379929694136794913169756582623096281790031723492552007673846859662090324450494251979610907432232432445824065135114665724827594430575108889394076467549192518753624258823977050601519048280401574623584390359481449053787022138453891257001179791513702093642495397334081468586401706506396430347809079885419487331932928574954707214348380890779243094928722831964777373507948500197407287952945446079680489326513658961853662841509277744730431936427306246496069243666139543379242547484346141596028974233719886697406852554398633526110674851932655810473659434772546243356108914448855701825898880715603366289808459472432753125843752474142314376206670522444889489776986507808091530599900985842727401131476623632698722226426426830696281810018857158978938783156624458285312633444402129175124484799612982948308701315442181567457684120077658971161071844929000035327653454387218163333129538264938604979811293280575888796098364402661333192118518660112844835273370744117439048306547809888395680076451897116166721030656216226788905629269366305113374941620075755486935400917548830581474256392536594864521482374077648031404441432060472064667938743882886289225150837509315148693904151952320614339827679092849467106904299770312239784307635694343616072055935519059031903028939539391899547397597001857650956424449283167394669333524318979064469343893627189472871383847281622604573135553876817558642184632483612520740879362727330711831175026965422135518513233746675673944113961563597894886879556205667782090844337520867729725703373428663990995927598309230661387354136945927915843614689323230173371936102191922841804234580313905902073415737531314773876868319531920508211861626148648382851114983993615443778135964961263797354810408017761055222943277812316543917034240988921276105005530832733255710714457645261793143918409148750041053478807634374726739682394340289322992898651513655363698680127226429254280577397413401878847146381154439436629787691868629133049804901087002805790628177724736344958819940386818778105938035876320057429650452736452266496106081512566872912053889205526912356384299247826988212125122328651204426333901465291810353248821923017672931654910021689716384176157377735935116045158531814663291483583697230637574914864118300854070584787815774872537509425040852960963113038026393654544400965950549057890393801243847159088163501859111483540995761102397999750913134613552839868552434989242910097849881004660165932968977459306938203614561489310381869714937200377644709888340970596949708965237119755144755100471793584471666314078637199928738311837718484739584678788608492625057296655848654964920072987142417877098742671749202536808791452276347610790639370223006630238002754637465763917578581459820650221684234407510143930407499640325296763996933224091365843106935416753216161846611147540381885178805047656197461637027205025873118336920701585233651379873884574497932030368100283910129242456214456339445715289164843632545418764046957993328405158090891666042801165684508349447140946973375865699180558434802106169751719780000857146333322293251105967689625080059875081715495931946111283253233643902244954652346811132657115608879698391342271182948558406763552164836789435618241275224004454851256423407389517622749861159473343005211754881229852095237629856785220648287906115469296869062804499846794320368868077272084127028069415530196146811346749838726295065645572025836100944850950380399181327529112937139457623687372401876524578840540919738879441049262016497529906712355201068741954940893614637533361729522156331559296132025230931203855407760260360382236527105311317070103169357020653090075174142109322121477361034143573202766434308195926410982560406498710966557473423145659875045643317800594493203092653070337214432092531377887090044317795157406987111077678772548105776110432113723274922483145570809376844142183103553210995369547880355925944809173619222555047207647040427361755244611373645303034893461416988839824719268336207120730380968845049621442685252087113157940118137653587823109830539331774169612113271968950399518061303811840743788378934450528760995185658091302553749430270475547136504895038359323853554410076701467831213821627301984518951888269796850621101182405239124471689440300551484669412019756870801341192899774912395410915481666387739714940944771238390744421815043903556210255372690576869824134186719937902411673799114670915499754670811884243860582055825091575270732894759911920614587016973939898566194545934421094758502710778471275506565242520892740181207271247695331764852350371579546483300116305226434710406359704160844562164670385183930516317988140982454794642345059836350458886962098915647447463478288179299602684670399716153401180294153029901697366062570055744343167802681724524369418957185075644414975633408961222618282896518864221638210608171973562704066559551294236081185748786909696299997420384231703227919254365073388962592351313979483616655510617176064751510061645076982375729595750548648997175674112268998842787937191072111240741469289136233240493514475546699123492412626077262051360435795186261015556483314215382186524475361085971398030979858378846300336246438934180471992841022801542668878251564354971205527084985812758878252160082000937119260970781924527533414898109378606095105517303760298977518323314294911714692947486525944398250990023728075402661533387188271329199163956502942249795222814394808939390751597939662552386014539310579730612105248759661762079428445463356679583709841459136069312938263711349415749300552863788181690199442835757345007226016688220600999910077178055883169157382142180726626886244334334307288627147322371150621655942462634744746529263863001201816393783086747461819498891622928731176686093711248023076144014041605219911009629899590573540825979711122499337268642072012070837522486592364372800311822619774491603961551575598239395233016119246076841372271932232509963841538072844685451755740293712769736185709473680970131204348344735834795365191089437627643422854297659452508648080375873515510730018958307790510575107100864029416866514485878750804163439357523878675063925834479031485783689968356418600921700189271796387909829649298904014918539110958236221668443494605386580080929618342748444216500101563819508636379367318618765843391735570225389521586065025687919051968458456167052598745200834810694021610489223145852733943313262985497565357489838805731303119401596064547169636988164000217728846943646023281467341025715033555582321302338752623266230986778679154445375317048357907403508133022253415060281441370134177778566299224285016417276339870794924593299220184237916972652636199630503050321784419598487474236928137930511012863601034479946044937182562216854502434763522125945275454676196784128309108546105438539167197178494815729323021180605825648365449483107321588872311979562504119847137420167966811751899871505568379224944540454857781366086502596455083135969231463391102219321216240103232761827512559940594673117779867173574789462616659277528808573369046008165889258719371239788307887795218736843902403655406586625768576663494258400068219811016750338757866699205545268504801406460815468124656808508980094146030142392583586723014634654816564597977089836740833398902995501461319961186007322301200439156691610902699087486932486552653370504497941926574170097005768583957974896326862647468339039061286388844347936990017335860721511849833001066365434066193801257467165921623279487842460952985226341207356285755944619800426653315271482571241233836313206599577969340198162082414890902228148649181039274782927073186532305886598529212575995428453718469922426658522757173489230174513896521586016678812066651148123784413933254982092498532379126636345255877972835959067172840151370570614611855385707406663055034671600546944901391168192726682872219682987693409779969536907574064201052649511245097531766172578359841743986580618115986582521515328218691343315442667755449627268064468692495054419529925980098457598255977176724669739717611774955127821758903122369147534820310777436400398324657542557772034539928224380241251639874277782917267511226491684070350614424145138883896221850163703363285614527916241829422223679367612686141584420561363541581677935802060090510663129502436743606479218052561213962935999292111220329750703492137281498176600258443903237201845040503043237059229505590268114050155856937860731958822571754281907046935018888482076754284598625377486579736781179310834369676898098241583829585787096773434435371794614593243603036437978226050562526761258541696439166578912173360070971887179145436328032397651942419270364279590384431337933595679495064872366001126115325720406284939910194099344823801304389040030947482494137111909619110647809700567498098494426043852934957639864508549580875384523013326132593857706651674761811160983751011236476183182871423194337085881237369199706439494527479183905724305520591072564690350196281388199418732489930879178300881010748773415461984748266399578270715688952774815397974834149590818963420567324595410379566716492831060893453817851499101256760969150027578398929771533078484542887474518274928054171101228395856102330093043906062766345158384811466289086753948402440060922367572638824688107782745465093970649095950105679950424067541478557417642019204079828531461887355334040389173719355198472391077484261704424282947791913610060849480424167173255097357470257054757021879487344379236268106236251911919095936540487817968862948739105995823323438973452465461921689775045048901308521416876862029614707175419894950534067278360165960194039305238467073162987378589913301842609172724861125905420253464600805126167510972685215290666924982938143212332585728072661796062617484472244510117657390746057280504728117887070272332655161921254258788658724115609355029252702864445609651584049677745913489488465919095149955526650137961729862802778433167779055449686594541889562423526565066715033840821404618825489782998857636460229097476918759042442778772811179755677839654615059729720050931397167863104739985520846824789163447442947372325494485295005349342625753670603278569112428033812861684868309929696502588952670473523312946704012989377401233177326149560102113336423299361850365278981530862252574351745256867972021495186922029380075935231565341125259884777637304818526745647731563984534645797252196527125899009074961731456241058038207803636448105375581381379374592691866658075785625334964636865181273437901393400067608764373680093280056340807282159787441714174649831974227617416190783071576645568754723926249703578955503126662569295158883040283588039030484255877146698112543448330858293433096146333790876781970458960838245615723542407646635994526569091423225286629313783433012611422899960910916562714986914375403862033393638107750825631075506320028660674955477095117506635185387089496839549740489180196887989624810137812217395555656352998806062808923844409094894701534772841462963619024651822857216057453973273425051348254007870912357802473867487497657141369174575223629618101598696316257157884565761160192810064731869314457458976486637168448561361837793535670321184029797899825894407714112472486373647053495508786076953157591451136505707286505229589902285589354187721903102574630562996633048379813148525998644246601217940450987995964897846817435616665773091607718696042479969561432042927216714640659496875921830049554623540885989566364211002337881897028125320483854655002082863507748434470926838631181086063037936815151700094336568533919328599494681350898055120089971691339615926936558363903649845816643342724835421085283694426844695701312648250655094558525294686547095718745273174839478338869592328841223902372009850303859943289092679122859667393949159323412669463642870175003464500267125640827020714625098338607327625549861165800930795743141582351967849582195475040738807299193469169161514421705776978570761699200230249250817211329589784639373423017875165115962477042342713744642277235721721419010033840812405179793289245557661261523259686537702579741464313480703930478373543218631024346182326608020735293844961734060906623490252268619834951303582563356212918264581542570369470355395773317212752925828196445900400010049751519608305210076494402937347638070726058298759271723231089795006528385559647076847147941843588496875842124463319227543193673007248978680318545076058551223296830857922001781317977896551066079160587254675289165050120270319311766326855093972854454353636434219503587664100895479543650507194681195960193928245882559611504362841837538530260278805151057142856230492698300599220116469113127638754068863163748170914551372745248311044049852445438899073772291485523589860507287132453789285156776962522445418894946422223798131586044065125455986826238332153554009051177692117668473181927282817671950943589274909715369031722812507791078322632218774978894043069469543631859676636211327938802681131101278128273529036414840508211475007810353905007657460245240490553253262339239020528760620267950695418411566569933728807989457993956727558724808118825619642326275010835709203160502902087323673177452925956828361519607797635860481622532482633365888354056011106367211213318943785063300755369953806101386520970847615061212403096952350188596492381564595463778836032891510768901369983828398481197169099471092961190452025078934757592325628110856332327904160744563752745508622330777513681922446824758129346050143026806802621319934767123920498333516527387663126752517775366189948858750624951948569554919699619010309432452969851537316890163816363300756803974839834519477544230691498052329675694284092875698889244538819891401377135766533130690672705782746922001561172534859560927811606971909224913850458540042544499146631707567199507161090720587499143794994344585603918875583010886590021693697676867964637493953944432288095656434392625261969072673412065698919775724785012863430834440130329953384965218222025669248305856512423871445148049198674564938378637641759087659907082515233639090586374442704996823891884325346855312210435646310047972189982265196174716544290415929509126172610955227836574049731787201124376870871175662198943672705505346068221864839432945110365441823177708619986242834181040946278728275905672876701658165733721268823454258738104884772991044574397565104945510141347131926833859957969998100231721097248089341751219256670614002891610151645737273939814798301085394332474495510176135396177982438504097478888870794753633723903135921262053607889598046131256659361694364012657166446197771385054624733228571410762034668850806525019458236179649658583487214106636379297782766237098173124343860341252183502605228251809605046519648690453250780031746990282974987357117699268697565353339874323915618243647444259589010851209190165607436795761836521930792903440595855722279790088240594769087705892220496752594979192600772685682088705330088413660557865630891706078346291769944783614864275517938816984288641798392971446825640847085346543845366706300186831800765766313433631359966579471970451161726595625079809192262680628453812223467296213507680536348506619842111771141829205577577660436064382767144096280176607931811173499710680165471940959777298709806529773218307940373520019867662369496549843777326900317486490730796231612125776046320418069731462690740711389772924243467718265128855492987626095471797402680771183214197563044837284568669395546335127508468768349611576258814688919674422766033833854381008535692051615301082529908234276953105665965650523071926787998506141571378458714631274503839371593332956858458755331823411421149365481293107876035127649253076300757675655839301303774896737641961789943752412388365290651427706728005706823432365249366389359470609465765344103850559565007081945265025601393928534407229300751424758518824120594999557207489544067096590111270616063574394298019667426340387016430296970470760261869530765878211188707129275087888066212622301759018719210144526237732068530497948167709891568868380527420960116838944715939720355365539153204188536702807568505814928283665204076375176744613567411302742455637252193529452515302139950103707922170375732155584707856346621949082983637791239284155437427277576046872881555260387506749765424328502408594535077985395689349358606607958947944678377538732229821999769889370308756987071367049273132666569503187679461391733203815475257772990298779681184397114237503714828138650418468331957584170407963716867808775619056900284094519349694020716827436290790028852161075613632094005719622963947828719168249703745963841357196626604021165953042332416245140893328858052442212381876315376453002801354958321631679675628463837944019015897245699891648362848518166454917131049561198183883580394187499103273255264905410557336429366093123233097749461287229497168382099382945778619327989394974088424801776766558049243026808562187195359580511249049111482603879272174850418898672717093061749663424318585523346260042053447770084475695185761119948352186988907780307589353796277619217725263256133836072233354364217576609253269409470854442502566240853026636054594306827985152386749579215265490276514520738189418707303140441673694081783522258096010818353565563213567455143289409358769304148759933829436037530495549060829197524627639233637319675755306372288168820173088687886175723412016109381337243285890312215820246206094347041845981103350721139682346909313793883403034222353540492685929357784909889989483795261167694758071350766464695194618571096608578370696336917361124863803291205604886629726041203705552866846221956435157494230367324398827578142957888224616456363849846828955816812110403478934032599089697280978551664263466367093413442680773499388747317370041804216727206827484299303654465840226243680199640264771290183581161866983607497813776899813151627063147630605134387130227383261208023186237825490364216740530421007769012230803159658469740638791813424498757494166852822992708689608002674880793994929770783132803828054392378401975137177546027607717993329829108386754344228212877544116625620432363294529561450838143172145096618714188562540687464397942468345887659732329817059586676075781942644549551027611581254649334106501205994518309581992137093914803880665559483202280107993512895519612669261449140420100893219244559386889348410370705587672127764370764170783971707962450770220448134629334419431712539484348047149262171643174771296324174414500567790206105328709508996995884440564226914182903085833497122015029739759824077259162795929815126184719726763081024886514381509220616889064126394532053363739942110090329027865963216113137245400451925712860308440649800678054861601560672816432867779027551812543635810588406985662813681821970034675897629635428633694354607182726091782398691565268268735117724431813842220213150725724430682086857440341975689795641926374662743131367504745965540291272029070867440262482259552808661207441676999423294791999286932768774673430287406401878820495399285967571548749644068489941609567127549758466914489200527467848668651910408996913920919583635436932103404612307135353844313804052665108545945839535933314549147061487970694318943108299497786668424357997343101931308112214216231214969674246849540716719914346739092485131977682830902772683672688745294582125556266205957783896800289254570212978712402835396320236435032399641764094166129061791031195684253975844134056427326369668108144145192667811820416136665878863152917144785681953717901945167096611105853573914966698022691805634590821485269648048492642213193272076061720833935134089655905325387358107137305934450795195441812284047518399130018255764452714057417844266649433140643062068855372117200337563683377823848654080098912663742703433756498632558251826992264282467515572102242287417151760014687482165892538293967169182571934417059495486819068391290806738789337449274065528563459168656404403369513893252712804175766141959303865768530171486880787912877864974302167129258679380991776949151718994972721152672759495773483774801705329964716702584060242841409747533016345945185083208264274400380164841465022117787722995560916414396217118546095925688420862574957752033115714864461897446157284076643177667140397197138566308728216111921209057016781928541859163005881166608391708498362601185579297530934962911027883752692021631311055343214969429696241420204057418193729420445143503094769567853828747500454697891711777757265372591212450081532909501643902916257019055371017616281318272508994592362766587764752358326550268290420130292309959789979724248560728019329388622227565870037057621448892760166088574427167069270508374392469332670827652967854289761072701647399025742357505206131115431460747822406705128072621460681067716935808537823368707544240681818032355465168988945253960323871926607783366552647034112663170031039447496253886810626973864912163427567129825503743064784083559513332180363319994717297125605851555050992453654409108432060586933436688467524963599655189261760915812421307817609652924512576303210984685787931108805448847388822912409256639583683831421989631098042426917666103779546316503692959407541514411775117636349407615521496378952726219281431210652070108957011020062918835118536273096995896463577948700911407972756015254755139754500599051151627772106796092763082701190329468191234146685277168797930301136881576844111555514645083939557847232437388259042230673510384279845459450665155254647706859664669173297671666400903944367991039803367450806095563737464294949811631982811040180741167239488507864443301484320477724264589594524869579993146840162815625842939220870417540146245157559488138681130919397555994607235410506261553374666229672417968432310186119091964065473240223806056023911226191726332263307938031700231415840172154464972465671236337107231140480597400428688375619555048780970705945262218831402457411090656600318793945518966304479421275146628984476240324104777569723316052177352727108359428305783223947635416915592688706640871980214356083891889545416424082544788337253241513232274412815181284443730317513489931326358650645776554121654629662383013197601727628519736031982440655873709586573821656477091527360116619465655315771171792511069824151168283055788461947288596750227854415969321507223254480585871408963986218452547256731976692299194678154502842975241139206709426827771180492872155584018796249159324874364503662897705204422971725784532497965420046704782444684773568850867053908466469905638937686395588671181283466744728257603949129426190454779611940801967318448380283686804799081425623574940124694801882326144724003616707529305695285126302377317657049221415877567295624765689557800810152167583650509569248075104262387479021219302241327792402100193410852719853622760612706560875329148075394988100910577290461889027709068202142748899895353485618492503032571591953610678241913164947212420798968584526773809658629151716771037271265389971386530992516761861303224628419748135334149182414283208383549784757619579074627547609820290740588897300252155918037794774043212074138785152508384445089732302719264319449691174460099370667678997378174656048009758411800175986875955313606133666152359780313089014337975391747814597734991638638433876304907273915721906932214651347327055589412945118483807154914612730242811351207122231348927320154535199984922104757180124965007886703095060506552363053893189600433174823806218815382127981943183060434839020442789713275706117087360671393049561971232246315139412416411031159657327732670076249930613998253171596372410612520536337695255008992096383320598518327015231811835125841884847130235427168135216362465301166707550085778989298513826748566458540560442065069164755057046429903954712325268071418397388278565324494720369662194500218505000193100050217359458114643464791283392790128160848083425877492405531360502784091115793934091728725804766954115314134216850923885705280708843602880937477999649994927204606625664422170410628833683488568377545193061570932112301484872813998984309997272185423108359899858596058426810700907987302454951142304003611583963200825140643850496613623995094924326373078845205636435497568939136842153223830299156321482010021267080228429657854826031774725674816440780575353258409340361265972653386835877538518977230096198132776346256663744193550043957052269890916739676085575716673048276944844075813121581081797135699811227530664184059677561503183770936701236555038734459810326099166931360838193287435683815567469025269917810038248769130214212523647024146884337299007327727317533239518709598703543334165316036780657050477548422670490466553250054600409714624160949572100607437259128811189370757069772102884633343106416015301024907492211304390565560963554922228665449925725672383814738319757230385379844680624508142523638810209659443895880600629301333283106255250125957189911254680233840244441154891646222264231073136532278182923772694102621871727860139361518508165774602596870850471460177003776195043395305935103574352677973367568291085251448050029090121240080251922278957330528990033529614808533416580031868164912712576437625463971269485112014790673940465715624043896787025701672993861991467417393196382343914041289032678369296227242188477931984307073312183912165368684999222257693557312201851972193948183251012451057114448181519558523876405633257271188022142916670043090716823188658771241858249820690867572732515256682750706008512694942980866982081873040536746968594447779014889281722734847623798226845503267179112437739414132911360572468139868742595375958834837918205544118922340252674415448329141650803000283288947173549618890380495096715744064423407620101613461322720437432317792729289249201382392288571202416629719549245850735554280734187428539569450774456472671877432906433718691618971752052637273880273654754596147854264244778599429605096642226317223790420037524649010267960060242915385229058776358191779854503486001396860002349482316962011639938201692696858547679371989037063973722078331293773326282397408695564814396882328120165828031759032893038382838539265813529632437952424357619117809600520282658154357102775414495768804880925479444976882174854741476688827043760647844512533805046549476465406634015055616519081783094263069289009524706017797369015395275701204050659322226486689417945398108622894437678880312349757763297612930989357646430854124554674993693861625851641443747824578099958548817318017436247293411141720729026718892849323640349786280322806592081464935049732660440966311509427015565447753139290810766562648352759145299502639866419420123388260261131367067586131530525565086800398479821846419856599850076732061316806896626063536993168731512476333611106419165896666018512875408887982023796816366325942224607131235023501753248816495008933638378343029069757020695885387673204996229356689462307670645302404487739423663498764357533992586882427881006865083810033571741795287996042743941415896021110081886778151891902558770849200562463222434173161583658238852315881289864065980086798738019353666112154746682524146837415072580277774679604066264617259423768570260896246807998164514720220488493247009975273644206939786815584904628725353949358482291735007267238619708918149562560792287887965266627319022604913271671157050931869158855803039926963311789041725007220672665233196810378749897971930991570708104007068827715886711099505900415866016650778878622450404602622860594439363102981712502458545775644625027306959803055020745702905667168552385472525105509875521432831602926082624133078758804795075834230952882713511426036140324144941528920466291978537672760976770090673461976682161474622314594035031266793871171383761254277946434023357581663299960311113059182141224152166314040071586110473679409139960634488155541356304763186640681415503323959551672517234836752828640774687974822708372640313021512587625266256730357503652117001736633302415009990514236481247543385295616314187931229135681511737714311610980497288416735843696892836234638318391740064257503484193130054332724878600322540264959147410400029128718321945021022048833587829180106603450834739188963771502490781186785241977853634906737913532410885478179480050114512276795409659689617974917488816062407268130558592322455721143308265732215866446950987357689047983961228992616858933052279569179720877474854550299169056823792449296441620727757045795364710518041994544397272437268492595844699386717289791824885469227858955824515393797245138553159371829072365628379412160015400050446866225395275797493259087250187450746524030288716185018966730863140927734693985584764202384679697394838390090118775789232846713993718937527889364480063644985580131699678465920997688052859534364156911775371433248910980019388304685860075350125807614036324011519030718286312064133431155740416754451036714952096051297352027496530398857009293489279633990749753288083840711995411570147330218694863872970790859166709173251182062783713393091546787682744255116146624196415099028219752821036113571561460423883472809283559248353108912461301156770460219141784324707487403056558847435479174375155337186240580997399398427474354380128550411385979180838823976435707284469831056747930982808198421606068757712802791659849503178542941044537159423110554451030169556830079955441579810744363045036559272634334342297327314827098906626236362947814703802770782819420043107859091273647300703155727159731464358488380323969548800111454173015354751675081855812371498525704179383009247383657588487052431253825185402234059876879676600299748925455853071822836948325069225323063166728952941299009472012612565790241817698528430383078187700832297218741847977673262373418163855116085028004605882463406922366261749156841120618250323028204220691955069406886454091638522547813375309890434255335719515270065046099137415254507376880817671031344314780963730123180184026511654650640455034126971348602323670733704673312789730934994053563611265215565024264049624092035147850660719141180874801384079226832222581900340844724426319803285288658524350963531221148526716210664048325958894157533932786604655674861096671382618083167151898596731458177784297118892561999768441387747777744964409447458174395102813070214135581640647882593823440808804706825029224013596041245912895494485214682433816027915160021187550064112337857186088055665867212959286413961156357639173207686913320143556521469582922756349722145654324349418313132275884895602254476742127594134755591796028726966145600989700984715638353321719608156722382703312257146634569790518186599288500028968237551920681138048362097990560092541792157547390502684280097704079414720955453803007942378265982304546764623302426675867166300960592495305051146523509033032927461420283541307498131614603589437509310273378200787163225277311150756645080400979272859320452129070188244019621289493810368252789260749797496966042658649453598186317446840730527414374384098046874975073413040413075630568756695800554197550101511155908564060356704434172378734893826269168633092558910248351532865324039909186371537587349802945689408739255270147491458807309077912389835871959719388521277089295443128765664529739598564852319425395898048214423869302982688462042911724990283134625354077915599059941426136969952647344421476913779667813332421734817331482363824432380613553361444030773899005005466306975970723493492536255562006122267585885017910402250090117349099350782102500470096637950172231998189067114357145811379376400405713521544740407157098524240612001706905910718440655446570075494088029845580173647579745310133298872257693675910521457406297105252996990243895724399056789250649170864077342009413855805973561140579451275569467703590335896571710229345457233650481635505797954308157088481379639451091248081629128048101038359731130092955985049326589041990575454217594192309826638417639826198298626708547977515362377332641598079606335961656369590374862535619457733325338415154721496884038800495121119951702142687295283452094217420084419713116569743737260717782203362760117232474408211003438983759986156430874427530668555460447526800929582575335235328174304088458705184139531198768350490406908684368698946949346314093447823167010481661842619740004836169763984290954087888824956109096996617794443468069973184936631187104702218377334912143061543986871328094554001182881292631572538377403324829721644508034287786079833044364816740584155994310161847993838177362896511479695536764158320435636194520244812709308613730991011158647133406232898865317154618993294599998786208994960059260370508896641071868860289510400691631606813649938862115719632532426659178352519056436904742877199954871387918942379841067088112841871747202533969043183564419317781757801903337589131605145449255036630732602759133408336427092071732406400587075964365153789103336438629893522534426548311894131655501312922684274741307679238218864598647125375776782595897050293867358318498570162752786712718908057487789256648728754974524888930270207414898664210363467754705259293770618144908847470102074723631323120416858195813296693395489714195329468468439765838040594430805945308609283816371965599549944552042148761225853819854394910642591867603900109726179905260352545942091090421828117265673801415041043719767798722279728922309177913611699779359786530204909715912625466347822088755532131829229762113055382705828718518621809935242815224594457095763578978033530284116642359495518264693839422069835034739096740771518949421046754063892797340257121590105949604101134993299107424540037026600026975954431748597033329566900281853705443138409309373022476412781343592249555715753709116737414958786625824464873413252799408585063494058989671373529535156325827441685351008023058348153710171650626883542366648777216376102963792557326396406096428615568097753771273118008519313660817574045587092296517833082041830516689126902798176384644897460462828850408119323105881988715538891426993874588788731163586347874024591777900875211589843141824049766845188168123445942065793066024468162686689782719482965272806080455837952532053861900985122373188432575500403348037993785464593477808141655020377555085938725597201169934634022251121592396884182170724180513452997757383074259503011005151357289681206255021072679549560875352363869284897258592848219902930679309787981888209920916604516759764728143050592828043343739532156591451501179213201914639754434122295835269950911237593299323731207515449014017071847450413398770797348997797999972007018942827062448971867817648641895045682227232060641132581056830497368480594660629613207233696836236509858678395723338442519042845393864153403932371607234343109029492184301931738665749794551649382170541969292886999370309903242684149162348908036394996589544075798892848195838699964612167858081494031174884792345812055574385591990257875544710054715476135924198804023876488732026426138803145066238149248612322933278471490608418352781889311356544337144481801701749200999803698946255290254275988342152383749062519133076249380974465264212334825068234704946853935649415737131575526234547197410377787787220491804272073297060759125496083918615501994389656123702575661895026093196251837649708032937891787871529098496902673681028735032932789310541237693422763484137174122920735735556831556384070373223716827261053033323965294024322102077103947762487378424205169319849638424161162998357689269004815608357402926165105884168794367458374769984914544347114835057385602341710163503412688114870094387408388597008899098336077040926068570327502137659506790997742491992757393899479834261294868232489625269159758832929704725470516253214095526038963190963711636765272479350083952755536690801765491483538010819093775615362239182995186254095367303525871069200362416038101030964810664826476501781757809784850743536647128924117560807038266237398168801884741928665968914325243884220713870715241580815689603895674181571247329916045481719114646725194682891261842299402559265548723774078558025802104455201215569048920027238988634547276157758518481684748336886244250197836289844627758319722750405605503263178508980529792441892946741530531971363543495029380661177217282803860213234147715776586287935750843167627212322503502187581405675923635665564210791368668504921418145348755570049744401583903142230207183007096675794931606704766115041279372248138907634980890945335008267268462189873240574529982912304000117692702892261147896703706843933629622577679409332620522899661817179246698761200220432083782371122425429932197560612568756939592467451484931351810341611585676846832236003652142000383639970785005313572984383905959352390625223441796398972586137869103253000989095985814271288286883227860741801992155551671454725993003756148710637229363545334221616734465552800043106597644468243638594848382492005921542239956468415658882581503977850321810640265065766070787168420754810301176656334814044128501303303908683884238145455866489411862374757608815141882968802257535358650382436807235099213332668736267413670950835926042806865312252359227422831707200774741272202645884379004585345412783848975952448841515253020554980518627773228268841531872142365546605588578032774814573639706198039770154137144597366359560101415342165039658783614815928747210810000229233649832792270943070112669648217026041111324226806977021726440433217622627065157004912219589143892898757842436813341289578444937496989298131209254731187962235401075353792449632041851883509309227913883907881393652230597745097341369920812063436675074960063458264904858881423340480754046994147444379338271931325179583627171790380887605619859742602226586750289372321277145980638097946972768643863447473110726005340882843822539656819225651136477964359993851685084981882915731272660268256093149904056985970431384936432740735159013150734649338222064909887020718183692530693079572166473365619083217008150424235295683837064085533116420969102491258986714762197426495018276052963451082322721692835403871852123806996206476256897508517536553040921678769485419479661967629656019801158347985917977273061388520816511639357984312933681278055885794225455838949499757708679680300790040935681406762899323699294563691821614761409315562868401271134859083678706800959818147539186744942125322330225900630589004927705875218320925665240035980485306608023591178299691554712037511215292679356870350282433033787246033450359728323381938513329716294315695236525671525680662389312181684592930637414186557764567889493113247406300928987580009124377971757900315614538358249055550530721065288680093517901250593721575502037236507149562531935536565548715265813678685790100862784542596497697558615710456389280161201135127355917389253112422704692712673605346619796928020483178683656535076931813548022391355654278112522182454065561060202103665535264904839232459263973237278994926058233602403421489816720201520598673926233913475636165455439474605969356855205382260819453359607791064825628249136449010710078140649263216933571516063175822036250964222843334367834414388676205121371215141532527728752522133969225287344455398325922117301685680993922979453857451575144925342846607097612532906992642296247443878640790868573882586237154831319512981969798136441888241431193404340466174060530988840449755652876715137831473425889596151431288878460046435552587716648839993114486978895873721672722038329416070796790652747770144497158750639762286952429574761121327100618398630984096196212916927152301304799430041368503305140466343836900834494345879028208570459230768894376876170686855295870604901935940271439498396469190493962468447870875357888673886534170941378837977570053294405305609545109352596578996699505974021405945879714610680113160167289529734489909896128334671921281602798428951042949863537049340296289520429538623245318510440727870043711432888532157864083281832047039032745049210135058715678295833901809234845297436836710546731230169362114554990086323672714513636184047031131502953070978675261204875638248743027524492249411280386074401078587674598595164513267366891604050104290188389437383652375119059582693347947518553149359889814227091076538344375477799876411868193429892986480614368204829232036638487568645844914217766292880658397088342245776934192986553750203363519753826551891875236160157275424463874836572714990610740563664170470289777370905922118363273066292694178407628326089199910868343332311560889320727155328809966534327917094953545184914368945799088053973982856233655201495351383808276059834274833757681557152395259228567340554589457659540166876425562814987919852138228844996168022469692552342825432127621482274907263717431111468290894256611529050479708965941617153146817559969911503148870113211883305160296520988157188629000355076745886068399911180327384127355583090054698041774563786000632827466427097846082800430941100994407349067121550475798956567001831353084768335467340851284053990679260569413213044895406316225209735660331872335752115442965685631048018708479216791240398565665261300096316179721766190438689438456443323088477993047457619295235330288495005133684071141972326110489849930862428991517055200617451956580126096660425094622539480205744571601402150964234943762989979960556745082707155732616302667242958406228248427372495019961504002733016690350427605800722710215600334503515207456971717674332976876320964663927124346721644219285610944581235295882507998987273820893665868244758526534886790041679362972923847674383588233870867645463946989960018000457759865767763655627346059841404995097777300105300011064272903448666424213143059449990003668356651135985365620076622062239864630415803105478194395914502995878429289593736986753474488074503280416196843981855062637444883192270470068117156161812729467213371092089950634493233257675253190659733050346483152281480569055157320538600682510635184293515853010078037580340595607697151157317334114221234986426183178458120113899886892803718708010505010691311423908301896413528442664485052546737075267992835549074197777075011824450733761866149404078559480683179159441822461783459250037916331181803790418263066889465143594885960763140418224907061981769968326480982982720119040230209165432876648299771400886744567586757581659375711664941717636821086504455317776220909085878809798107194272696038569378837505817579227298839994381757863917422944758806171460243700409978620114478912509945866466634439355701974776386992813278565680319692529329286827122903538897258532857016798642889847977406898836007770831582471839094081980742201251636367667632417884632429951325539752580902456468783061817101843585269083373932741611032735276871983845490260910224481342122974939745029513949350949683437329083466850492497734782685188378414427682357764105291980818282050873402709432491497777483931829064529881525077772353019958607907228260383248655033353399853061705970516714357585290025304279762665473483863268046441604853035257618374484627361903609322456098593953758076259400533678709039517348492055918106132689166900384159654079110192589138815856524329669963149652284001382946546225872403785327741447363790691519398379330709456945237697154031516936683495980169317326242486546931153920156122547000947276905060126948092509432050563874438006956256105764150454349700943119660772029670891493552973453213331263504501115780002079253667072449328070871509604707050237996517582800566480558119856142474383560672312744024850153309870648797378169881784916807321831105079383761108852160448571218716379300438635842800282375681809238700596976207963835799085596628105277281148925708978102777761696867153571961665294961447980220691259084786150189830503983959132460041484392047100388294450624818595290802623564995890324246217205937209773693999297483017077879272121447445653058529000393760526521822444870186831721240602405218462363448485520245510568280179382355039983247234004824367689430830752077407006283832280005768826817019917584356932837095357199119973722953551326375451699822253090877881621059867347751878079166889405665760014194187780999207480755072152168018224469116724689714127460582784147074110307941722469339413696134864898995394377651487367487380695784651920534184111173536194556276422126201711339246772464945908199444850854964291312348354685483445447909391595406954915831999933682092314494513595789654010828294723025412855628907039761283211589112849574160491616545311319105309866449751266382407510082270481654249011991482115401909821697226061321363156687445213420305796501139352154119036867692211866747907306896782861478278779458158188867317632776300625105386165608875400752559919606066544730685078156687341560240452029533111777686994314693567586254699780271793603522469366739863169631804460273133885479263075623045460209002661069711229431421925802705052353439644306405593880757642011127937778055628477522545359242077009196600514112140043032927701040287441742913200132342393535869998580343003288470672611457772368436147325685055489108349430554018014798653434651926197896827833489929008228172658831671511218565610423051107002542016151602098644047269360903810273982899128384854970334849851939253241023274210111915104900297771987369335469207898615231589089495001772918759163377976218515579460776251861982628103261466416237275516285682726642782056239830391172696462690542067518407733115694494385227877317898662806603765485910362166134566234538809643788004686148862218615431920108678371301175236151451626075296289725849649395482412869620281362736546325637338289476250072264150399019930272819278239198707000158199197781409613692343247041558197387035173902973629303044172720029010235357129206096740012658530666858254461550135703350902447759280146226461919106544469444721467377003514088541646422725376120970283238503167843220619347188229980986691396962684330330621639356920257836440842433122202677797969580984728770627888667446772085324933855748684094385462742713274116525006292553983210868009339489826920149799553439713334890357592379164305156104864422617024254638101565140858667451996767794302657922160983207703812101379412119252096335676027893774553096595456465442192082221369563773368782915908067314230200605940439328945719966660779527735194697267494065193956606526042597582663385319823453128933655940500338991901967871595234869945319652136697344708959114167207807007520877218886769524627399059428755056263607194416748665703151259239541335013059055518426817534117207110187456017133540956491378066982124038616151334184417522631599953273363904289675146444968456657193711948859998921798565072952338126249829036189607174230164791651965826439477608380847935904102252929179652523577165483777102589188350421170731080965793321719471001930997911011635167547491838305293222173306403926722027063582584400487251977385279840944116356641406144646587188558287744680530788747454978074960009167895537934323584163564041394759178071352061329785227695438400083173632955585886040461515553168340562759472764779500239118131878939677968809449369783036752827869445041844013304261233886648198094185773289802521459196075393248211748732334594210323623472789913101284222417977617264781332261678610795045217697887074306410810784748260160112948393761384226750906731473858033208386192899187949438184638235960634086766101093517118269634047984321766108302385634771175239051079578203891201033422658626396532808805227901650726875276862284182538762509727622558347106879942670145491428871733151911748830587702946429565797513085052330668081577455596904360890890392397464081307914871995679292325484042235425418424792360205021611107944017050776683140695130943034280678080273935786536672173803135448335399192465260700023270798586192758468404467563197087886564121741638067381922180344052029208904066905407187794360427032226658757016478191990710352521631096115898084791954410509818603507749698780791672915838833351608992605527352801113647324698121900582235854954629973452085840240584145969110921121752742781034453784889043965100889028233301230615984763703828764751684074432919157791884161503222092250253637177036741777667378496016533343154709269341760412864563043748620646452127802904884222963474350513537193426499798182517622365390074813035090608495480405652044906645716254821654619858127427010200200417954369477547858043157862884760575690117788390696956184083043449001982311776379201142645743654662029038971250501343706431652579912779011945971857740026559460893711241907706890042430482298637332800610340147748042547550465026155292176637265202518266506477733004926013192162607228905496537929437985310881265615308237483119025318272564663472513878304002401370202649847090333651531540006566554067253632298993271095977699591317604996210597790192042230062863455040865834717509473609618263653394517056420551151329874246542802328553467419335602283423298115990576882939811770552803975005041941841398466031264368428052080719966014587726269413579955001211097701542593843015815675450330436349486260291288857370580983951238386411073428199639688446309303147092898553575305298046669817924593132518205514734019063463167450894354392696609470365180016125377922777151407215937876065573922979186874116693985405949034137755760132441327957742511922141011627918855236316515818903032104522757463944566679858485331055625268521316667445164766048862982420144557304881101945956254109270860443568422078093037723815863674879582957100450316851881446795867213408842742632102758898685180682476164440238011451003584341855187614549197549765598331412026655967982709691939972884747245344285689661465854368359555043787783244305465352115655813832098156685610305801641402889443044898618809636965205201017610046138282069783300851994199828639500153280525279308198927468605249871832444565307736052019910155365037924229650320848362874100495533955871694086478162156285694386632925406109503557427317926666455583916539727302936444824956647259805386459026034978981799950274145138245315855216320703317966641846651967206301369741942429442388966899828617179898497920090661425841384825101310570976783460034170993978548640986250238809473548999923131702909810552074109957309182727734163475338472225594269724279649125288047936703380909174319907654158786324105271602003105698629372942691396806860632322844557792341422019270128904433459311127621835871272112416338361193641911821543577718983963197731977774179418776909555747939905742845870645355233306523063158276964915841219708290027740940738693037801864704621907590492918646583761715012253630175335591976772393874957711339861737418637395551591837527472517495723750428628519687957941717321059779456993736075189026958451171166327743236857122881317867750975855941496189123143533603132197647482790388095449909355391438701989781552662789212374730650599050842209733748082699789842351792142609229019499000639421668334867688259535546042911916613686731176024872669945475394447885453100820893670925539572539467400079933886190212905954004918242704024487763820578612262804821331604443911279614606011041707090291909025631094258102337287020442372280231614649916375913824208122280849279782158097528102037372817626200468441207159664010943840225764813125482496533176323044166080427038956223494929045778312058833571793001295062532349975868452545094360772787605842222163848096928108812090618311778225605300527760883493706255457388752422866770795112062563602342264496758230473509444268015285583938805903490764584651999213965205694446270445919220171346033712129475555278851509080211027927312640272563493582736832064299810705840702530241753249618184508912412983362723509708378089867300589534591642476100998588264034573629782069486664688066200015989980443398399364456019231032674221932286909397061329862448686126452238598242839219848984025680773850446569010299363574096922684329375644424784631719537962039046189827328314469717578927294083687754287340170716812849133800604655396111034547496631911232252879794170710126150221787990908186427484828110055398826592509576916851805680967960585367075110893403603523105295036482541959022021900259109426081592784816903675972910082830929109454181571066996743903134788521819727396138638557306176257678066517720908522641862801664326381700420217945582911545617877068743729023182258453806554393234526617893306737544968643742852460252256109520064778215530514547452705632331804544636374555425968660587497939302247712580880704894281078201156847289459418637279709964616447987042989828377765931124898795995688786890843909267278986366812287310645816970579316091647715004313294995994711665674550786570719250312639797908177329229548631825176252915075941295920058505128940032630571182652738738704047973943268270307327274483444986706744562432957877358454545091813816639053014163788776241162621984224909252190659804538445276527836880546350754405500258446985770706939864310384883456013620819406682627730573977363919936586295248943027342194811384054894066591850443452276505894699886116804191499054396220788252952726295021946323023371098196966824682803153561693374475997986649593788523288713561965440462269537897629124400466512081219228109689572217742166491261190807344660763469293145624964363186340162347735541674180201791111037799300986124610827630704828329231990888524759957213963829815049125109163865629615431370068016649958965244767805613313263950058923620050545808564939671987872105723338769321045689060522530871319564763361900696798944270869679132280077325153319156588074315800031473032783362089933868362361286961457546727426152270618161254162898704487850553890333798587554674397766701817154456505667064099298550941458094889804028300829977459597291378339376919767398835422426309223391572697483687842614668024627852397625460263426294945557126612004566135350920525385371852539237839186350402889294201081393715157435570117546620266457461809806251279634045658488640124793972482877553652730296131940445952494331621318804139812091468904059490968757103517190309442794317490846177847213897883054586917350761791859744018948810171861992511709220025921618960903440559480158901778171017130789605144280093757347734890011566928454033478772738432641435108777777650158984137586366319289927495704807999358960243634353492911994196197113460042444954167487048634124663797767485533073719484900460539122413671698218279298381254972947867752908833128815237958281765757537991785560022763342408653709608831031259637289557168373426270867214094529390217278304429611527590693379824995640539005910927658226098972176894927297500748334966235829249043785030874055858987079103368443794445139670723570503424147839101328597279165952347871447727247049584336145804883349355567531384695565263695876122941082406442362926691223960023922359856267669985720401930223019567192247778019106172855615118222991346737917322141320519354006792506913991729818548202831256376931552735172832729828087875728113446806290233959697830896492633579315434228678315079736419165105114823048468999348247388833697755360116277412306070823700443544282827816809402839778808466224336108607931300639073245536017249361439875778557557972233637041104655170472436862552167343857626445145856594218486596888434250465877139810571221145948863323270235132167729280969077566474896035717395851062850312445457867835353757077946262448513253528466392761976008448368088011932718103619311978728199721593183330337575354582270391109457272527101802716022755443648607385487710078728579013025749784766755940461313823605634486241479507420413966298845103915690757901747324604475818294949872163155339272644173605340659226378539446926125534754420081998319698123647870639816003966401608732485650287093289828721453618860127660927746435066879560915761167622059067610794308413378348909267479901080891824509440570324137153843611708428497621136529978106798951561547219965716156238380940242860915106426589446310290613243342366471664756953735865570354028459770783914696862840440760138369934542933277791714890816693229299277354804452504438040328466554591939665087761058231704076289886039727573057334410431045607306147761809117365004604703876853659581012669032227403027646506574542502077709758173381706227019518280576139395576942050073169733361703827682556208358103938616916485244505646847829922650682719225536118290044605042742501046456610835426010224474319208410961278564750611151063829233095360930871385792351416332351683615948016949255816216851109007646762543418875826636471700963243014362188922820093470144499421129275167658688337042261904541658937682870327602050025294431746108422534362197132027003886185531664884039178464469288069388166805502672609557632489442638675999858438531021148701778803247047545024606844059230822988859414010385723160099911851633055075806080740387028417036600944615178177058302431752436917773957908893482393752905599998806088458072929956778414344852089241723523426870141658353331888561767511910354712607166338888995726663904616405222117604491099319472409141474538027133009600577075689044193912551557817217347122722566148598562064988401400748806228195186380557341075072368251343113675878029268571562864499388092588490109993042260108480319342477880666141846957757161657531332846663877836928895890696474586992304806000326958723688418669351663877248343728269749110417177328956967943367830602843901439346832004188020809980871266988600169800753153753706159120913763962682561086018172390140101147017815099519918621332575671935497041192033128329950966697331634706273361908652462253635250451716051486633684830825355818512574592043884425834096314365655637368228903256404918011551046876805257514116962677245342734446131295878311987972591923513195651636810453198970521672461877789153454723234987259292882147260800461993483535469933661463700563755464518726081130732786312938924416120918423388886175657562192164979687938667564336671285907470174671504817430289143638815867120443038944442387852440706805511776356399199553328437887134534354774873831063699868122552645191054144775555778262990458855919604877830401141056122118393172953676301560771517946113575150081801905011814140165984812856864083215372745661036452792391307507673145589669341207592717472823374083525724631541110021440495279715952121982807029400575306143452243820407149355835272605153096214359083012337009115714663556449957039826509680770283559220232823551908148619499940687120922212115086397937435512223217956120760595881691988707545317185923726069247067938929436355108065176327846343680847272214488537295469652900792722247432016809981746968694510797910983326469148847501520709687306755486672156074115399245402762169004106720946496959498139998803206894498423815578447438257425461776448319919963974845454719564371154710292834365041556579465677788343160318490122690427672756320531448330422633757968466803812376020190693455011044470045118225495748820952404366306825481892743420642036053711945670909859288866875337239632364117841511116054940579594222118445908195724155837608451742693461055871143670605129065700076536298823989626494370364474138821040805848484352240693122588232724142165440701236455628853326789731643162475693274771912202936989073728753226614070606489705004050673292401782847596092959389444571340053958856149479580596349014938567935654563002602994877057546514700848394919514019714939230537829307301734160314506839723365718543382538349290074374708390797559196875266920797563753165552045698382519092307012260158272273667355348324455505636414045564121699416700360664009098332546224104909204626416058634396683014464505007711766357824156767155406341165641128415300798657514728956013793224905679763744565340489947917165241581698020867530740427139308179660603637221735763825042306389095012084438944920557164961306657825814384485905902160015957318013832483024318055953285143359873450549808636529512286732507593883145071187988815915429083971353590840304782374720537713924275650150781329980550968132557377334882450073854882074439355603239441122618663052591857034283784097372362043062300273415759533034269876704952471277256074330235399335654700356071622682180577830270575338604650017424246949045724204296295973048452401037415983735253293009685900641731902642599771377106395430970264090992404045225926683025515027817063868628680218791299742774878700812857491381412967785871789652838843758534558947871530786122544055115361048676354269705278043540264413416624495367384198183506257791787568045793527440490416508511462902641470454603464102107254820858525606268068772409291131523363507245112111204192804156191984009886234896791357634630924504100014190968567220017502855501999817122688003345963744529255099616039040158679170924433131098408231109643332304524200689707367485282602093235949379972397894140502379306829243392378227711483971661053033461896987332228343409061010495621659983540648084968664604021814403052435022628746629454737451432467432322154253979308640655633047429482380721600183706416229141433579301987645315078023182537047890594476242454247155194559070946844010514521096551604669372161820702581751426284983331247173474900198118148493387595339416663365192697141774253017233121301162751686241312339731928378632329855109227780356838448941823577207385789695908768866063143697579554137684647593748708686065939113250360525760559885276585352628087143247068963981723599604125519078064672884538076617345234852214999455913150973239229191565758920527169147720749229411054349986278866372086085682925966379782962563099607868168226818436179026280655406956434665348063541766976626325187603636529370433227611848529324024117248763442573193801287328807437336331848081074633628844483949835110754471811384152125735769717375479845720527308976659424948315958142254825032475452103844181899562286698003416228022666510477624089755197186579540013914940189858163364590387694144351837451881858806959193188816306158951773256313573411882891091693189480085953339436507717758079473228609194089235773964757916083992322157267642405412340972668290837672241769958187893749958056290732788642804506078094996578612843443905583292223136104687538126574951193085701191158596515130808564343672694920136414596575211733193744496643480713207782530300885748789824927718619158425745591707024023540929936769301728556313380571772072849556303643998196722722640678343860908702219408120092921824970130623859513616917278609037910582044171176734203804109459920118898207230767473841402560984304105110286772620889463664937450298637292280869281226705771025937672634991017388193033261637491099142202657520929611923015306828772218113154181714229978732228902064482548002109263484512625147680372183708631489171554950563806965885693018267857555322622906587161644548097451763994144890939650740140282494099864105345212178695636811515509011670783022727354325557272495190314062029597097417903996990398834116995558344369544813080968261322358815797628704055613455232297165766145366978731235096592438479788069566514929936204244536948978130243844318242175192213809964815504285185233637318560578507505267557959400621002268773752133881607162992827795018189128618608840326719624398678590741065234715720849334629928008310806630066562615972305792934896399665527468391946540314666114624169767595801682354519589579164626539348999768185902568983195050036606189216863622147356507600663631598539502354064738776954448922788236894214797593134640879993817669609030241808669061035710838944545551414481296748314277066067232761593767124849235670561596118820682458275609241002605375491056000082369220990276662531212618442334331729235372666900699791688128762745173440901653809674345175682099723591614451485748779735658068302980641727098556658453691487278492088911912058298107501599527473365229262430713394285748980769990382181377774360820226000482216003229077020363038618134921577658664581937735622938917961481810599799184514225294273049790932094508109526028997775193699459887406022495398242300389005189730831565877378240999721148132156660441095310806242746644206294319430657072916438633883233206480102699794265935702179366240335605028220456258345274529363070346574800045589356719092708344770426798150884346616267593825799715824715055665193724942666497968882779103469189767254514925116774215062473575640800311968983165508291022710004631165799524722690532040478749764609396730671984665117120222735195389861936402655943064726488788540960978512129314805605008400540173400263817946894262387578100536157211721224679805135364983399349365700936403559616206201543924612687548283715417243406518959484767624478506602087646621574325563874040717543035878554943245252652885256339683302827080065259202339242476438654586426470654847318413758380774259276643753200656740394679778608445064251875863378814890486215826043405261471437412776053651083718773992557614732105440762025509521929516157094615993989571265263327628543375592683609874250075394523602484179447277764145139297837755161436264479698700490098343094358597626991035684904579232642145698188562089410056218577007304120474765792428862529830169613301548865510836625576628749987263435445491587482245829575190496979573055093927196347622702347404812661318557548772721336168883239716168718861447506755600376919301506286033122408380485552841501880033984717247872796705521425994305936701755900640337178625973657554034249356514237445725237611916479125406156055064093768271536975061247817274796879455589980185560485195303750665964628955195350058413584334387538533227801431073525897127595507524232641235442791222636778896048873214232667448248628411283750859985119424692756581821617068641070839284541769980100603228655149121399889719779066243036886456652281558405072846354717662197247565917707720333460181357026520397538798964252228398613328645559855768251715256232192247392322955825892206006410101833209556273635720902048429123109362349183678481545143640126919375319415164045201108145098762634390825613383104767458915919090095938041413530619479720539791099798033519268540824427312195930154839581515276068207764959368086973951347852658566520577123737721205897483236462117660534756217347146293174775813519090245171823991198361594968091983948826509237643678923912504352429403766048834777546956638336133383849930840325082426727407366460785562491152857516934308609711258016311867851763057324074278137016821267783360208493078291592093001849111448990487693245906796066990649239146125637353541400787284429811084818156968312353311749889601689275132044677234626250962712957853909186303910587360094207366239718259473700026559258350943728275201250011091425403433124931264914995600669265838168463600990997218184965732318457150648855259660070573936134396979710786674596864075379277497176495365221365466151453951730032188617245460686897244853405452865681091147230643992756927377366899139250141360788244999480302940569990948194723621822522091096681175228216643711737105893703104556034835616147636772079761107361870006237343020753355521687654784466214359638547433214787259982892397362191323708516678852101363734793848663039177587970591682879486254082739064800586044302469492845649429237683577411965476191981225491946704157330958693262441040664014775525770408973563568523242722635327618457169506029753531286920689761164943828519715379627478655161563716505019261214479969982204114887440636568571713555768456537350795126911248759830077441725545486479527899871657651812720998654083097762769708422566290866992131304719241586159087242286858160381806007086420395767962161765349867187051307517219952152804538825197382804552569605673501081879964577534859637053721264928482253609091483443021326474369178692547868733126858762510580333795165424356058534548348793759880851253960855158431954768779764822858662612147365970058688253962574840980882665421966657416069918444407421540178532353264652960135896298727892433184138686338882525631873817796265289143595510671789979919881765005970958068480621460173738151468691963949661168560911557241447426623784524363632625967119258344191715685805450226198634956691775889019612810571117728362957231791389723689191191379735895437472234175559920287296091680314366302843005248384631823113893897617538958005931843113378979884792276444313965414417120179715403872068726295439611464324977789951075888275396269872786186737713546558046306718915264829896784411709490650878396258333988055777597326861571036349430399049751838322888903655789446885463444795794544947297005971813955372061740622498501221455605061643717608738215308782331878251754339739254917001426893247163045348269708015837206386505320502647122653602179029055097359807483236212902648645080235673242058355395499060776143046045423920395949586321191648749941574605607907798083205185693357621127972474392805108879870788283929623938897812366533067340176637247831381705712990609947123475138616869099910059398442618863782426635257486101211628409758727077475327208210082209909118009149551862954421989800185205484381246701132324210121280168897275876640589685170500669624970477093781247558018847885524071031308844739262458711186167525983420753301137736122298443203667645192258066757012284888233369377151539709761709381341583576841595427330338016635363170252343814713786361481219665669886121952322489576258949888919741682941399294016246332916399242608526516375853621363108175253609194554217745363740565458440144580935843405129364139646933435625887721372578336843077253567488717426644421239049197698030296637361796615524067198608073609317614477278678103822909363245930695712386349785717164871223734197416733283084752663603228913053766044590617528117305005390818028790566552914665513474927277997654559879021993552302336706427111131981148692841615131264853379037302891151892003728705699757091626363016270263637759475674953090931913999849541316855531035030606784577999307903661532755190022772781110361209367595874452717511840866438357814275170393034021602389972129197342163025184017702620892879270355749730664392032599481716117393910178597355412331739758657566434686452786168834303929619595350122566973054325984252359318492986320114653036943573244561391558202976694917686883947244350542870712303227341376227647102542809121078971153651383112950522442937235125003284965315173378773315728024363405926030844050535536067877963508633838973964944813138293268177906551015232829838626966118656634676370176334550335814013262284458992794555266503953689124258780219865342514309327949267348545358602676853830675692706204307317552686312815992184209768094965042803081495104154491095536244567269280407549679378218735848825836566172567580337413945640742492643885022034438989403547316788982833989588011809959880378084762111605649311326420393895929110881679049567361707473356867871884540174068435254230578741702010627720802108587437500852835185843627521693004083158325355349560459423330355215467222057574814453599427982903316326385296455661542281740907517309551028085106960509503426640497140026558408578242188232007266054184679197567253294483986589886490015041477171619993268204579510997252069427901999070650946907596050167657742138005929644049436572424154705032368683649284882970569521329110321969197646269033438500469897955342062118879376811302037128607497744890866103506375363567144859619187920875236573286088225233342642663552658441715458436946396516074007259237501696734890437894953170003236861439785694582391830659883784767074589796265472634147394500181722192850745212546724115981639837325277482180194798624714894856062630488304176737404247409357888662550859088920481678923114544123439040606241980251666282557672639353128736352602920931991045493954455098851910867954223296454698700622681902447260449127682726833646166250144118074158530092970309596985879624218994010978985348577732068707131358061471242475757314530151514265572848429554464625887433156211103830654872926405735849213597144046613908467590647213248202242075986246688166454291161812569847030586498517329068612357602834732577332368600685715843623485452415142871819681555535893936084167998936695020717949638290973271979992087936658931257216069994895046935797758201111042985692571116262883103124139205237236530627623911734319757047796260087058482745417656197852817507740475461467576294596676087636555659056312520007368870819970823471040557224702761141937960320107171333690001810670315157835052861817046123531565788881579383883165887496394265481844561171080269329987047262905095453041966200963284018820978480128285435898680781149296817713724019427060181555139533742374896012650667979026840443132680522722770111952224630775434443978582754008516269921632307733016298932511661284162551629682319505822870776380645071881253977696526395606226604597388237275041655477165185236878700963233965689796550732180093064380606040864274082622479217311786041825529047813723657788742656564865488456060592905130581133285491422707751161478817642790576323818250413369627741253039673956991550718677779546484034825471212959856268849426103881826435753342241055380379997200734074506133825598409604786459908843404476311701971557292924456541165596014154490370811958106412741113385444937776474300157234033398579587116580229475394035960654641259578220463093831346221119787636296113663675612006378960107742201449639569621237107404840547498105603888221574284085199195292697481572416589467456074992306742557225280848815515792453965234898522995256292337655441624860444736866487409284070876698967615760174645670988471805700175993581835848622797120306236680804408273516136559910572417321438237426993096847760528658288981790380954664167456814674797620935501645608660002969681603605420477698869907607954053444955329636545474253279674125740402187336717153678112260279582379968503516020180650297873841675726557879837070213867954528236072305973524567673936657871392339767583047264505793282659574956032297844508775120818372287760291840424432660516350209250595551584703266202249527296477492419137885784066385639620677254351310103700613855554400084714865515680884730191509992248451004296530705292385451433110034463458747606798672730190049163189005731580008513969780260812736135578749957344242797237575256769293163249065895041397738063155393737426578854757644768901755837141491216930315038310397375902847774771236069781279281190232635056711434304200856101442266010195456905936240565472349843176363343815732778135523469876849660247153413075838071671379549751287224044803180252894981435190945839036112924401418849413917965720597542480841169940094544829538631243059350420800066411248812581938357648792935026939934186185806765200173635313186945896588607924735950582611754969034614397997288784055250613613667276462302258940751613889209441412763865592228280758820757302358820653334320441359299971839295225019189594413797722107498674101375314715399750134208180922688365219734411696386536398839264737017869265135558229875337696967806130567741250191984065863504024700482766098390780757426750362833894149808790378818750245717424232898929384979139995675884616516249822128720625086574231547178664289794332050154315576876617823509483930278195626999954890126457481924311977783085645723918471431239650098779699616473038042261345611490345914488435978363697233852092606903764315248089105676287631729415749151617752447753384652281863529307779625362481656112683175198749551760579256535205023172137213173836218287488787189803947573506980097928206359252978064383824744258099114407178866288199784897068033007853331088268214234615088513798494909696501020739369641311603666342227774857606579625082676638627714381012889200392385526129286247432813304192100879529530691258128919742997085187601998041903127810223849912908263605223540643359019288410720514168696535476339664349025511014483397219667628223258439291124386398097036512361489447964317193940122797208964230659541239163672792932298643286458549099366266718340839532326481763677041779120319756542628868759437750138365135542399232012390611988558092329372877594458357718021206496601661015341554968991334522650903640982732357043144173569539914020991390574283831012703103517144418846816061192187619306595904483441886860032851384096850372836877889254634736241523291048350211417206479325187559136074663146938778926301605382147978588038080162380513420330384142811218096278726795458160244813683674529458071908787202016717082001642006489970268797990108932277034234235141992272377944446841418879167861061142187581315321693204944442625918414151987595472014316207335580961951746629458724149691647758320632010583927029664083919150912176875091769088976750980714246708882795164854830187654719579220256398840483806825710969458498685639284694471452645123755482098651753515657393987926488414620589133520673441110809228199135333524455141542488485482021256882648204997705528993309758977184917204370106309845820939205766396874545572325424562103640328481062932923954166349835211212572782704468060062557300699663256213645712643533978722768637684061068281413757445988299153974175125232372362466550044469619281037179864628730870968114204642765673970202733798028536680994117665194169290860968479902993008135276774503259306779882131143318407401799022581727956133784150640409277167386899426509428193133035559064305092420629751116760140121629584849617092888056761499872371267245771373299373325132190373214677203290227592741691025907270662073526293616030450265461049151709423843437097303832020797956924379538484196272387354346662358726910417022676984639852310665576903401605347012174174342403313072029185341880352923618340298203212537133873566856135505292291436237683998083499018264142618089332900685253657947520507198202591518740318766805682380196445600528760934975073867874880042380888642259721753157055019320664322735490414914750581749376848810623402597479995217675235074453311217974397481674998099647887113947009348831827663928542650103827833975172323105837085984416827997277414180946527349415408658240772388912471494284809140720992448866753390479515733094408233145406911520401175752536351087775710875272547450850643028886636659241281620991301085052661525020139720365316442001986471494810303793377946150859068515087285702981916696222510897197590613216396954703410555521946751787969812252973718361270531773606863530222490588072046591836426156650117073464789272980583084698529917326183639106243874734018558317984633721438739648459071230465800737844361290019391952108882752292617914109213718348195068341214553210524642103011537315796269782159789237159927070885414109273343424964974045033019222176810481252916578541188251868564701690663970542459540252193451824401018007438128933500745496882710875484217047324691679573621519968865558167115938768890410618887644905113868432486580177996033243076631950754491532090857746605351585452079924597295197246900379418311034776392744214186754030343322402357520291882945683199759381741559648346403778266982247163582988042918361168390587854495575618564742220770296536499626520401389362547952590067650960004567207990467281724311531815749250017196695968216708009148192733366199233447115412632959962479467867591405224472019245538742133677991344447602487155443088245293568801955075967317611069216181775201895900917363466237906774738310993397054298525884652370461991764632801471750788467492274675246733910985401356104939300807165808227507648225461706890211892172575106430413664547904177014284533353276579988208317791448940814793392635099168941691366357413770852351890752174340004673073126150110232477311887031149221552280215251581057054800856626119005958478421772981296088259592805910094894764689359819286762572859021162919012708977005534495050228722433370196234246689565750588145600885519073647235140961194791882830129804678235295862362702832754647029122807371531792979795422239104926945513979198461096245132368914252913155565744487068185675517681510863879409687283727842086525679287580168955717954544944795926822898066137411759431613045884182289485002330141744784203466801182829665950594701900903038414745421605464604782207559188582435543148603930692835865980757362605233580192004864025346528056897184726098234561579472411666679004990831610062329816722277182669497084850246495403644580887673825974337554210706991758446769201116478704152884197793336643550181029700818552476832701208929311105087552497731497183753376953609659087293810684534736973641910776568559828270702788513508883322852926608825189178848319474017685656953182376160724521448155692483531837134345343543888382361997640868764474146318218285795937811457558577149126945312001633220784330154372119466912144438005809099714860105252925497614677880951131778634182670557386274890289700509555686457270681756363837991087853757573906048695324986746148961475361840401518598079118719779733354995384154375794917725040177013556079946934618979532819054585471155176881926228670337989803384543618393293492564680375496107437001903027301315007301109917641923484493879994977532615373629402368347057288837268737260579788819816548598331240603668638808058307330917350044941775485782376616753908521046210048504058942174504043849002845707388098093506759240271561460962823420424792094181881104567809207839217426624492690694050929854987227225443522963150561486041289521191522140889738644309861253385297408271569555878822006992217456331628185339932858372607860717579334187583404454525238803078982820862154032841800864175967446686864489484665350305125975589694350896866440262422936011019186236886161793611315887019133961631040098717337715946663158327664117652273906345696411864224791780600873856086346606995240073401175943187238845612808368403873498650260955196490732911668160827240772931747294930144915452230723529568899902551832865168706887406213226119345026301193708828211501650027568051812412189194148854542924402423329995066914283859212006956504054477487490639812302349720580821355686322245432902670854469873415474558330292216276443831209250662299323303230738891774456440180971585292165081604125172724857855956789268001359744042245906636144497039061607918170858855803116247594454747003589641626737592415838732499148480823191450200703386888212721007746355221644618538236897338856677058634767279295991457510763812313088469700327897160707175389326591629262943924713930661610271623906309027401854822981862111955324484415887807907379068236249151476170698998552317033413022345521501367636656253164139264749676489170178128106367033697216745026675463203973641700785470705587357686062968090446350861046636489092483127782745129575928693341113046052460364427849053267364500512733343446385522456720486078854605068961573157999097556836075772094269066061744979320582122954193225236229796428773653916809053687696935354676505211431428763289662855356425862468480527041756197495941843851177962525048497947585284256505860818848344967261756011784779711744153567462792051302615967532163128267568652149481415586956181611931641476213568806494772785922629682480322708229254425073360192528214830647373984108623606483027037627125015409765380838446364721137106320936413988153418888038335577470291006665604963779141824963240222084243216992108609650168548992912861315659213835620114782399666925239815673870966533534292114002370629888831783340557450182109566538473009782854284783535631155262625883855745839243973017026288411740168446129812444667781040470402044806030184405677915845576269972099089897967090387880672690007552544180100582722671516255779248208576673577402802068018548135129361545365262662670497078385999993708873078798608855358898521343141260317480436937964820704211443083972913953757960565698239725184007558409610401605659593920003511800104941834113155491386999353229066304369889983986449815324205566214469850602292848847211354655884039641200783559553246035541040445995627228033123449270335506689341453980176382017014253614014332302947435157597745058242214470866093029153446326218488512266239672955013518495686421502508150740450557958201599269897290429332976378387331932665965263504802817448220526148091665212028395107653969079356862848214920202287052123569298213358190649528613494758930391047311069782628205653634348227952986294830153310187182870852390275872553656357469419044487715818696565058017901055803859076618120539488141994880374739066362073566056741992039975649222756710107372152124092144132691198276155679797084247027535841418501081509313042717162974015326726409482613189241134010615554824700338459013902013570392648547356257181025988039995391637986314478716940675329512912051624086813634081266259888002560732612307304614208111791629146504828604190536033849041068981309744079792984653194308180116805631889527052422030124171369968771725122100884879005379134965240109337426776868172705710064027114086405289590222877011225659546885308116594340098577140652309239496525951120220460309177855297866484787575271619855463948139714654792333072495098749537535606603115528563846037010456406087154566580917278538261290323829588325384196907201024709471992430468002951874930321409821730524059435891431731785374046771723664397023049628108780805371404528459277224163944145214415224784208040372439098452091556245616345438246963172312589351774337730415399480103149191446323402403655513269637375977938901326580434221796263477822227950147527267530506732335605612665495673779594553004431407534376102581360159735825348509729247729116021656922152672040146676098459527480869125053012531846989334737954491896423776219544632676459159584291886230247469694997892987857442883198210645821382780274371295856390402687022014987951465698858347231776936822517679575058916586312920542531652564768121286297397455327879246477774086856817673317655747735969738679841996999864797908698519112796925479443820155573897290271348485607564659045465885175579632383109103310161016486830563610196292132077425505932447983062988508016531148095437238225393457734232237263967096037755859586031809695822554954798848877231745839390157223972708002197141727958674530289926640277740122916306731210601144753989473100700065108449896539669693107423771110730036309678914587022209707474416830616937408178594955448653392943645506177831191044043150999096219933311085645163380622596021485460978802738809576270640171984392500895854326723778536885129186061122120432938346452415741583949009922420439338899011429553610358881788157255523478518075212242753652945392667937652585792369045783487115217914052642283938823894296038138093326501233246140767861784647306234662706141903654373020210019010460672925422198138733995349797333675801352618224177874458764330838480148814884329941997392267763824267635174407924483819043953214809782951746481750562883519862794897317266742829864837672162673666299779636004252346944639351046567809332446156203670529380942656512942076724281594513031544063164904741432354771852285669197597769060157305381198127144317722718112712443861803306839478009618288001262279876396268060898223801933349577586507253019064280875383674570394403884132146824418863329510102808963644643080389652918465695033170628133343606722814779111229835177958863332678118426882974928289997778091407755746218873803771923920266062030699928104530157324079644682195917436864546456694232862662895304965787104819492369240816747397759378458123094873511999605244207107020784155352026056284731551784099027650992780892581390245286758699321437187155727854032026420949069762790909517909822628199220796412924080970150980758998558752230840944953709320381853419150364026781506160978422920294578594527419955692530467655024757787751659888735237911515721444817873134110431919708423326295201591523946063833538055551008807055217506119869951174300204417726106696907028515650002103946500842415225648532974535401578372513574361008818648647524036722388004863323004113532000481425177588739198523599475354399916614181158682236754437011115295477921998929752419994509192817462664679478888404797849782871817175163017218866802264865551452363298932007196129716866729113040384490752085980996371345961242941630750644838917029028810676405213015949242148985638417185443362914431052482295299740856248029861068772947304352964801305434945434050863907125174783224568074136056370901391398856466779726067000726128046365648850767151726343528710663837551535919218636582945554364382402079431856446685256574824121238485729264451313455434251370544235000466806554037685273411510688648452715825862067568224660025220378825397669795297506011580178790929785578454659720562253376031554742396005234435259373348963233734824881772535100102370891200661091473475167037380054587688105776884273031160919359899297167895168109651035517346927572098320159447784462959445246300243652043583068876339610339141735652888353268991822300938082919888420536508692573678558902339884441114125407777092821016234730948965996394591279808678553070888813297844703395869241077901159148508126102829535856591034114493927009309235836258951816947972101008265573298559933660671218599436901496565406712485554614484458398368377123734302146827946242372059509186948060753096030726415023833703382320079621859147751129467964939266916901382962541171251309727924363051581149431632743609329134151833349790563211188730818816782090587288989389609483990606046040593259862250917140874025987953588617939625593493139416641855967303158001589737710106006669845143620787379954040164210257604420876310651906511613669819280846825446411983991480127029612250748680816255224188076383559555420097566224961263378055280161318071599783435025347461471954249285869105309675235061742153129381023558080224980157000012598127560489746494864281498847682466628189411962705194169968430158011403845564560064320859028559394059422146132032243614263439067574528935430259907197727176215339057748857079996500762612049351680035211473932195419375780399664119761444711194491263205285651047430792363567304661157577748974082992792390813085613706313571196785863477106779192583248915366686659025315221004879335156933303739883418362049562647653484769235669575574987002020775153231820383926076360547288284293225312756702871785624844274527974281915900424054006776803974542103715513772697045217380112568333297112456033827599811275877467097521262103436768898938308901167818353466298387878712647458615731784051070441934281377881931720491398636554605474390106409993034204721230917974492820618405275091599042505026403529310482307308759069260744152426889290890168233472690160057310415043779032621237973289080900857185967546190802329273914824763662527138475879416929163729840145813696435792698230681915811280010907334036576300582954226007481630455712085913630209548484335764743952690542528272738614553419296574015709239784596146428587191293472110942007793879352353379209109789965548051318144002453183816498227920405351677631283710445369737744043303835604079203006840429328826946101864189128085998382487933493560814440769275138825090493319459506822795479684390193257468330307584499419739721067457927793530141756605102878025345608035774196306389678344759262873326117585126687202703143968171611584348035735010046306747250860001358370562987264410730316400809730929439246692170744642308031615165654471472894581904900376901111501733606905659957341295988691680083242222860542317540683913778404777420246195648378879806299677609613410175382057701338099676477430206691638643203330251387234983035591920520026386026715309276038594409783968666735380324637264238163087406655164858970737303608296589109824254297676722608444402830799631735633323387003723740587250225169265352044143315292728652624363485294906392928509264111434061905155375906407667810456288290033105256143303116512059807490938767494657114082419191693228738662937114950858921136010507763602475660732848537744363721197296364400772546158676655830151369671274706729673658788007519824775061290633156466487379823096163084733631751430138767914739860283116626748457769382381850433285011382074542316565439099519517357117627011480359563148616875620773167042294551476921330551630486552122703504785623657839941533356890027025999390863634603232427243187646260321767623809015403405852818532069837531084659355175024929135342359099297926001309598677110603045337890205129820506483726541398173159626999152728430297290917339018034922651855697987489856696969088172563244820148190474055484914456718872320938555706102420352951471740073973184430140784286928652035228556134626578472019750635359972300441959802079362633490601641339280299527827996017300078157918874404872073503716737116478044028683492627168454499338369081381667169782318129042083927318770904517349508348106560181529252986121027723703064774511994211407898651822556532821830209430496290692556468162012163458312292336108648888331459383455821924087646976638336221303204676940518818468891182669981969566923034984016566749104151667133577210522609475590197079889647095792441844327197255965284151118072073942581571074788093463629625276117571543996766628269904550994149597457798655391820217028983563587548467580677078409448113223595971093825236237565833040297129701897233841879707505987315223496396896242790619484110770906750740574641504183394991046975503069369940387673657729491534121011664621695272695281766178947145758838286374994574979340633249961653554483431521958653979881385587800627718452106356146391267431746336236318430133288952306154624806706181112971214286927177551746173982095023097327616628137176594455826627622453673943671917929392594786026669515138237916784561715071602073233806876810565191989691550568915492707333500713424587729388567148337280348758806446563446700716695802464658054188158936680543420346805508527899237763337697929069016982178568230632286308043752918990778652038960825794731088417729165552091664016823542390711383896655760231727644667050725054164039275078372985735383744368713740246473600150690517745768253806681894767645123979471451712415437099785536442522964768508721116084722275422417343337101807835809372608127989004168813582056764295745979795291921973110931994676368886226363702772881209292739756839968331087387483306059904111991814405089735341432040979240419555673279842175344964454207813005103451126252815470161932424461698265835632644467278325460310810520745156653981953258838013745721803250395407745033015412765854176163042780015339314483628699591306698540564630938983895564666569234455482191215529887525918946004975028723298197310080742275962592078186532611062579080720248332648513499905690343449636610149406345829350137186225186457832877910653992527093839430209167471368330219795486738582378984844068083792536254793648153449965561373245970368504820349229391970208114521111996565444987931693275052807668163507573704542439685816490627254144659165896550370289182239307052325395321742878311187775132545610712473408023557780912197603503221639424437412173890713321414374388909172046388540084085472618358926610541909089473447077277315943533138146834990972816313848314228429046496659542887131600596673262196866963500256865866482098415461076671753602980455650898456027181124706383993076876286550634896791850372236934052486999717684701550806689511109932128512804965762115065874709752073657308548985301153493573242024770560626745370523418661105298885266592506350243771192277208831884196577888415845995154411796316422340758589176995422347445042805733666838842920250110854148532113765573489801365172551834224323255892859430093189765758864706744883523861712904691086382249623872203096138345792449969317219384645270038250015309980442585453890408236124595795901826726772803777282826261743678162734807866911364328995310649186775524145644449164254141098011872867637830688852395028984263851749446131028459904259175434796365867859297670407398769430009498142290368063950216666368716736553928384123815942699249556055077547547158186951580980873853981987871415834101893621146032625838302037427445494661428386284955627616364410756324240085690518293541226117923754757018428924329045610352753061773687409524204570403359430280054592257934405943450789072124288508009649810397208474863382846520221430959373733259324630247877741007206034758128588027559285092349673216383358492240565576498535703674597708231462898122916395151322791325190123640010511323078250508290953514878289563409418091332444458190762931838680916234035254591369613897524296002231566504213732558314273462981069705764341383026523303774726581349906953808548948402639279526638219208227609643411592091459762446947609688386881043113597243228320144214949577918810786370158983426734005698128690727666541185128138520643859570470548683556920422413862130633012350607915550543905346479288453748689456353770759035260686271454398628621701690761387568703218211230532071534191146320526439426944443839517909303852622954869221304754823099001796261079767172626225577516535365605455439296751286173441872332960487510741003489561281132398781591711927215493398964167874196001253309011589916594057008174660830859761338262220386836363303722848877853883031022281488467233092820592439721075494552545178093320835169871775021374308711574385859393315777492533506813261051836774843472706053259321859036822793766199168825265614389772638992898277829552666353495234135637461251708791743272199791736445700329529393608427324369289629504915427083467220058108282696531614219648623178273252503854248955570104224844248034357904556200139347780112406990801140120102318461042890380830551889761458076875001362023251479687575902531612499468552164164551610524465855043081110613856825129905036617188287661690725529623883989414871587248055313393941220029267857280043193883440942180710960277900440936989425311974369378559873513246299757472455689730062133096986262773647568946949317591071380814669117281293472649804204400620341919119602740018828336872859515892353074167581531256292175098904414261134270690126175640817833344861911313109639706929529003896440240416789126762115309909861221783234903272119328587177225572855781686554302324287655784037860310723611316641996454659617897914125051926191148112775691188629275729380530211545762034193407099483539782734908898682822733600198362627383576939904806749390812381716532792423833665080635244577690792031856353396910693612043145828048606095676736264225222704875746924547717424770264942086397885178469298095309666177571472576253785373344509828462313358653268185074950379283413827165640246714053321891886977114298980437837695622778210720578471496375082656973704378069373752638359009764862931122590701895304741045008026853587659383840275728273388793969302448131147164917149143895155077503328949909550170363000834371539505284672174457954628884829508866038980720436928195383314913502690843637525239715343413867574507857412921874992905063879984863606639072530709703801570126166332055257425717710403373892255650062360623199338676619282891407366706623505031212527891931865179825870440895332027569134312083578472603959884463076822333420564401889240916753988439259593430964746717284438485124709539797908824086363225430563668413564201990469012266535298477035318256763943532420632676523849368017588421924864776062857608279772023837996189242098864657287653175537607856608748771735021563194937674571754722722719173497019177377190984435900084036764559064719258519291523809371368465311956230573562778905327052571420527005455299888167272146897260301152999877730924875524246794434829229753176694343058094307968705261087016666754478331133783533830704306394689260828710782054884288377689464485985000707065356442631180730744095821244147990734549733763333842069444911554090003279029665358910862688517155279192202134177639623859778415504057024468366859048052492220146153730005312264938407394985656243846373155654078739915893793519475337342947729818165073145364258931026980220538272832128403737495549279312248635910688905549273527264945161314153765098320940183897207039477741296155389106545202862029546262076214686718976098354248149122356069045695710997414939776853647812230646806340348548579305756672816380562931944503937442752603187104660911010920479751275565814673466704359556031569788197379227068767599932475790860038967813713699879000023555205085329034836538146751342785515359117047223975673248948878309515835749929117137852748712796918226843122356621696531159715835022609041283663834024987282056132366740851691678517540276094075029794125217710626020411445807894739057820298959669001772019083243568038859609372596859951271801654730953604998985615902946393492586512660653169488858009861666618298700909834804692697875720947859706842209252177343388774132182740526041781002957246140990976355534508573302309831586824706074964969983409617633212930485198459526791416213318054449944996777551766340651756742953912626717004083599310777127802121783482789422999881470349894949508334750164287702290592200292601557730628631371107498161539234245451235723886187174381624066654327805767446172744148104568157153463522705075656228956322564291692624429517375887671972799994137654835415379026266901189337950866174471898493362013363777270892157630433652134944688771458031932110276123127470462548469270692115902426407830095475049827565322119800286018953450148110539433172965680259398583319546350055689304652907806905263213030297537684637003054833208790068423034982330439663952698660625457404307181389897351088135811937028356575655457803281024298059534658750267064678352118817055661857468998896459471376174617616898279555022057455050888502518733456237313061827183118817291117072936665515091377568415911750255682363830554898523893032805306599548371642459751023095079005524030548104619621190594629683686809476815055109861620942252092055713794178344371599192722649627181126681049795122474785174076301037639182184345625872424674683306063014790164123880124345091030031685588859507633079062209053293870492447875243064254607855410020855648207299222512410287580489684985615348799052782720893880461700546388750341021214446542164441173208405111471015833862639826751147444572932360074485098497615118100809959099533065331329194428642817238028438168255680599305110403906569589148823918040401336153094260372458491670944230942682540742527970347527429045561492341433367560215805207412583373469712056483334449495939482920354629681020319985232204849634959480982520184505162471130272705510144327169950647225292265191572791060865245461810913831333207428689309738299754406754482481483258546029870844286574974994335693808406090188034152653944237643449909544475177870391748628826010827809858062757353915791465839190847919078242784420051279140577961224484315276629876196325576612792608168073366599873547389632195568148230706104831375977519017238744380551404398133656682207962274239206129767715756022643929103776068915567709035932797614960293551518595701714198397981552986363608796861542744879424957902806282479785828204213583010287491019727980744643348590455172677122928898356969649575955124366024198771834500092378619009675309346993101719371245916055222787166304034205474500627473005921957381446037920315458878784082632270373584011262905699033196655700603395922195500870130384190369056826291446191371797077882668749238101647481349214838668528198579950777062830180379073539098006453265218009446482841423869005868095018086814116125313450735961616638163401104069216493265078096659054458050262217163210868042904778505504670540687402860514489661375841988961271917637476684657357910687353295906007704592991326550706188884218945749035300274087770388842620571700709894503797334066657012321273662772917584519068439790176886539618718059497505133172999207910603454139045357418993577550267727569927089041163082972693201206451147437597795290472590040147694691207807489620672001690320767939600806850440796371037928876649850359271596887706151306022144014216474785079049858618060401074610049837568586195795458044142786652222869178194111862471987484004383269323834310935106255169791627303078386212446700370473507366020996677047933524683290562149258021948368552257057513981966398882199982876967304112675378674641756854034661663405887729472321418565596796855788344635307879424060505417858351111108697408838159288244708999480611356322740545686822893223104035092496599470561072393737708185364884677355679289554638440335124535442555952717091014357073182360340408436606371384851712479870415794588150158393651217269907353548996769087255304932598193656313294387513805552761983251433961893479048256019182175312317173136181037264749229071920892988227849994471313412020670181015410321423910441463109326421424282189868799556158936072284883335614836717511326185884060736800243818248981035915414459273318250064232224391956619908253945889608273812228228461502899765666981965082048872523624510063523243189386433189524716502150149177770926023312732799642129566867360762705949681328091554053284655831618901280707391108304485284760159893211710447435408254774392899168505636093424965203038821421341894001679619410357434404244380723032361142216428080173273647608285868917012548607360008130966814306867680069171687581171645370092965575647724865828195643142447595392455467174875625237113812901539064611883475304436064674856228794913993479333687263331892938911138658070889384903953992119905655373925803555443622117398231009945028043059253978219498854430651226772470676935543531866051702096527484664311586550079830438399946019270691218361879262892598161615967237697155515036353753959997816963668374380873452745658915606871009783635512678028538724841948755048290120814366722746228276164289116218755831118239610707562567244746771752851973636366130104614321611683976320766256356698766527982963529672494539809218856107468686224525420069290294219017279853075559285969169138416224400190265708611754652210754009901453101153802032718094666547091453429164625658819189249372222135930670135638105546833603434394047477826757248753511087245818512905670175334507471939045982181155751674254262059411417214893171264318823762381496973476070473224505569985304041094964331568555326196706577435794571032794874541648437369757122094257222774539797246701432234361083239157380566384981537935499689372926918428377934267010243861933239101020378924884025134317484067821733319407094592921780929751151838289391287893510619252750864046021943476322804521239257784729038658622139469101660290320352618456056362763091904220744649215409851726343523463870925524166083051695321790908490491126960996761066267376977451753871153014377309656590151134953111246006959383566463058669036705408654316947290411369322603618443047128132094374409912546819273212469451760127703198966403802153298228719400318470885268027762980896260682315991746311964040862325784626233920099647338227413897626061354814411379284009819632094345059660034132863352862507073115113255161641937925331333802732326732107648159970252208952799173550403154026662335869535305636000044395669420791638789747265699999242085975362097352677479148588751937199499872830006672555754679430306432520922615623542536005133620272530470254392566187890455285950360318134598344002745038424881789273152637295224392313389548812542686792978241705737145245003896200148511738949320921853311957354693043635169736194442339920708167993568680545019252619212008088985480673247934263004083726830428285691469824160148718480074563732759605112989396294400815189507819275390108365431471883996972385930910348484594188459866304430461622783471320725778555224597396152655420795536020166398717349262781351273251775115181608228002757605000974954844811173555695827329424104093068360027875438932428966920454044998400199001524973578172528135861730038603843724086493174319417908329671974777020086602036488994190376226600472450178323939647753909234640988139287197391655235794601700100240618455606865971186484293680767948141870376034048019855596817401337351092855504069746372379399430908143186764501851082018115800277811153590283745522344940444458357067483304293093467153539426685282693318700760699619214039344048488127141840491283888002970676015928473241712140078080654841833840499188080759700692460859121776574177324481362260860325363559362358006345630652928247398755355084929270649036503036274508118481159309836001466597466734659697236875580196867561197912388229729883305336430606831382374864564987010963255517813311495641733602821605625938187303633775966291258715634186805861208742469248133968497323390802050737281196315729290335688269615278113164985620931280938559257583968133791817409717264618987907643269765593114087865635212608120115262949214234083964977733631563613076622325202995487373227524488384267049573909875985832623421886691543418244789805343938743334051766805117896026427100981406446848157412155140526886542517436437636361419724178663876048866169132381751384974139492411091468647102486525417284306935065746160913025079977179694366750260850585328041974346304128481698448862102985747605077880522149665710500479025843432722099064433909056358684148855104014754160019844562972260881542340486163781102630900465651359869409584070184313120280276956782927162625005212459021123067416922974929480272054694993043859287550552963098030323833390972532943435767207422735592752915063906250172385902142238808202758449017203984436336618584878577467092398951970426844113229854128229641825447934072695595271681446443788138078225064513520107579376866735008881500529960607334914487232242017978461418832423919215553017779810309650483133607823763344336614425981995501296110163516150346625647964048050873998243589750190262767258563248797962828754503374430198801257973588442999814718549401188255934659969970494495063119830297866226255056033576634668668930451206625153680330577425402431991066893357870494217497124978652823630019392328093664492736352409445057052771162861123709148217175747726266845219550265837915809240039875364725376705553080968556024813325769415858928567666632836699681708456332796950825473340860032841688751016805835998029763307197042528514743534688128877719104638960287599695909827951931464739527377251836345157940344546902066531653154804477651307183844830193836627329037159739606059445162723707653224635652770253010105542808994141184873378974204974147137755636878831448581892169200812191261105559809442220623419675622272820777067207457153914040120293848009405209931534648243599565364229301830228601679858181898844170583963782843496956706069832141310377983661537788350923905726715290638366202766913662719369846224906810524748999106158354862486256691679904099528002120268215546696303445481633395516904585118920824357423952096101734244621513642099011996077098497445931293016263183289299701064104487345323000820896414724701553701186431011313696094735736398785280936099959542107863476620904214830771287097185413107044989989456544713833654166958971379133238981188356031958104298162054034277446516760813726261751586211490177603905631067013484507432141683231573674797627156045705401587221268436876852651006105715637524543917352215243347674252499171359460529632481961390148545921544639342962237316109510191915139557844471786881336927388553462760472086777888130062306399218820886859224054650099316794788187846355935665007282803882800259813655885863768930099406336111224374444254003761036973735148216167749500162326817477115218762286521208524693881337272573644816610949478160863045789980158727046580163879473569313200637157832719664530314856500081539353673737102523257623365081675821908398464536654569083002523289966164616301596699695765414827661621458510718242910699776357328264519448194548558505742055954900894701262037056345950494882816324083173942884722245448523025477042126670305377873521252633448277009049510036783909839716567965079471778831637909288781559323187852788599170976193873083593251679072960905548826222879132455152183258515101003640763843014961102742567186917938635403569905676059326033814674416818532744773818585275398906893772149568948002302251559365794770201598169691710402228653727229058541389213751254292551156838841204041210986720782248947919665729194659373446425386557321353052544426416151284004301813433651167815273532031133373873057599926737977839477633324332839816752286309877409093384561323802500326229625154447828179862562941482246511675095916989222638951588137187754668078101174659952875527714384918155088418779755716240005032696138296289756025935934407384777974123441005860568221638152475511308673263615188532872443106539787855594090939814639462982344849396494540303274917112043134275165766880281098712293348713729606910046171212485050119085703346498013228119316514170213640501549159641951057438683244764242649626135066984022444358173648578188746808181506244182304248393536974264055647046952102632150541171673636205423020703584578238296555834217874115924616820064222447920576273554200336516819879673578755190285012878133169300463477961881849842293987529279928164944912766590869756450721389626423378397453673596117354200123525342757453123182384207429670763848194831623972093465270095840335075153389917243042762542069224060260866557591258471142942781574894727400150365063044419138306320824502056426101478390839838950136480106852244423628056346393390761273432835188128047577366576003166329530123446383102655700225207085515858584749989678244763418394671098795776167763748700913664225828139854444612749538621044611928540202715751715662733134801548215243721278355800443744031685002266264105227764152795523057236572724428567251146686066069598778496248692159558035623896063889925834049746034623001097642647845997584191463852511222333239043755719724555114923826408099623968089956575020931201410426078281004177908386739347917995630122175930736477921108192629919234357052356095079658807689910701593687309934154492946797570618853689581803899675004237940386782846193548390823103045047267172086730227397145150807649099695483145181209690523519180412413406046009838304512048014697589817672395805505983928922199601750312193564750736670642398355016240187304266053192673209819354914299245587180654814189779664821470737705166326885808745311363032556292621976858097143167881484531032596238664044552656717876996515177908469811446847198818873870941280610778321068572167035277366191828389515406181906588109941822844176239310329370590406352754682711808759614135331531694379417012157093198881003787015301632278572417762381271659041817289368961021864824601037677403031215885592457085263388239538982562993439969285503953823353454635912760027741921023386406696506749206348939137282890173964604029107013868668806412998522563138976589156894395972107200332205889849236198789360874314928589911071924593352152325776084713600784111179741904135212344158638045937104489832588942591675199924709392484359837586122746018153341750803958684614457384230410870591233770656665829592971637354621246681643030838114610963545795731650484369351833392676964687067531436610165476413254033367968583455979773040681321698648121059736247701723393005457362127283728516524900206564372269551147382776952132466202534736999507698794717252476522571289784155343598399484876119934259511764641748009873402844489028381959356201326945101976866332673085204607526177519712437436810639954387283387708361916877264344155862508073868594421707446172574050966535644883012352754481012804650356328209811449420929276870886670891965671593128552555833499995577066802007348888108683825474427740333358920538227170551801847556855308596574806160843011401630844159217574640953074549250197503075669185154866701048654289952438335244665356700476145611356397213946667251828641684264685604650524553644752742717463294656096511899033963834436584358811165313804104156347465126879005742253955982594192803844180406251607270979138134645599338048363316205015143583541298909517065843944786990509468705818096690119424878144523496687622187062050519402300410044472070366838121856294755782379902811942273334124675920219398567997596050311697520537441355808773683929872891734199778801929952885281365489021036830017191078728045376456224775305362828567416872177124024702330828791668275549405345778504356725506772697132917533742429061625279444308221929054000163068993073706048437796630304451141692708361258015327451229283575280054529031604759571098497207357621947221172507627043878103436759180092184977341894517400114147977364585706324996362308247894744929389486608274175685664293589480695737340113395458641556903106294774160716221823410587599075018473479733016238249974967252788692569727385075506322286331422082874785676933600479648025658985303069085957349810950241783970146601281408125624987471479452138074516786910323920836065096920894883509823634918937736034219826977792806981045998890810469822892163594510465352382108872240097285594541505746201140118387975984304489739898240330300432322049745385154686869760707134041517799241004110089735335587971348575699543283536528348540115260444340594262722321648439493246192685759566216005557102376647276882780855504845259749208536837338473725989638433494476798346896578823955350008916383946573753633382507828362470457349330814591487225699472570408444685322282837475707423951839179926071909846966843380935775589525629099229560431542242546666336689553486779748231606606498594232990465786029431845037220980546863277590978850839059714276184461938675080874231086624040264344133407303062850410361675899377795324968470780832120834047357197563599020991673408546256859527316713806482962640478214961061530831090273246458575482080090606068630488123325754259894274068982602434387055532962002048530044296810891039871424001095107663292313297250357157751256027307819193881146484512688275581737076531560753704299464626722004129946109699688749064424621826907412998500244668049034865045127008281351697361304875240276374397477787652404224697584306657939874137005755634599525756913888943037232799978783310604264190454346567533009906493848833444445781719332300592317659567457671076258022143596062265701845251174912259624280429057948736015289509261209200288134577767621126925808538581583626620094432891772247074616163009902126681063513981915506511198233038161887481603412241779078825542091299297000362225831845981738403196432818903205178845687642550854541462762530083179769198268215778883354637400575320599442600486492845053327409951526825754514555976937676119818830467968787436011454353681044695465366086180782340414626264040595916568700728297610784118655225414253661411348764265635924665112434115812789994624421298456694861189143039014186659860925123651782711629001229880080426849705117688479627012871842907689783790819577984910471835159745658091002378326648410206241970259846038568468449240581100574973762556548284083518864288870791645692992697420492619389834363417466923542828835771462397058904345960013060018943618851069287723754489725111211811854690363593341641051740101867705912844629794677311804054408746787026267800875771437678540910950156535015389280386256941836942748870652655924015013201718614243359442193755191882056444322815563419123833277779831621419281990407119227225094819552514896004412294402544675037308885856796348307777040037914724132040410343157453225853205541429942797152078471193400287866916287407508017113108748221298275839155678440736793350506178187347323198724235541128952843425040728802093475503300413528041447907161425221794188977361639607330552698105772714912223911844157846009907545570696731964962565164684647187843401856788834976537258479091588345853648114290043572894699219297356262865967031142230834686689977606429624294559306064893317319480563281081182620170645759487965431170550582116785231984008553513012394952074468685273359569576913025562582767364011353276715585842980883650107367072876581351115083275379289165894564789303981442982438896830263661734999071979231121187854685743325112104325591781453908219865488991466691150249962986446904093420312489269291545135403724445286792694801696414074326426763144580392983598856989407240269345568881210440279636790956894698312141989507194176804363025824763100225520205193613003312166019364345027796443434829279870524340558690010449993890946514199585656627674191276913778031334277795665923630240767596801796283618076735992953939303759604730063961947162881561692335969312169686024339183827188863481250501647945346022926432002961983067729632086708255696827462334697885639514713245039623038490794839273971151415307396621642871899272643502537021990064078134275891391015079505168405338738756687491021468699303521362252612774066681709409217311220367227927371555595141046330892042454215501146432668290073242920834643593956659229213187722222424869467622930769217774399159946639301343134746841769040406325132213691896977004908898683893865507915887730010841252032280986703302370479031231092379646427772987038134202205683279797664729222161316611759014839493869343573339013522667124309380001550937841167914461168686266241861831787552231992197034554460235063346684744947844592007610210507875315177255609030118306189273029543847173248662754258350693652365626949258424038061488878112185588702509479857843030908638197937621940982501262711573752777680565896399168668999538582504080909427776804526107718085448644960144476077601957767107270115545640942221258186100510572066084062436620931188226257265431930734167689581496647672595562367454363773181593313597681319182064916607297231941299991488225434358060850848113455549850385300829885727285247136452719331812859230560091762534128173617056921773093662923718118899058614874811715031685402370966823058460286237893394919120322021138243114781934036313995284620920662382137368785816668241817177819645875984144264180573100373915763960479480608286856359179129049694266993393037525469611204065021794601279038545619704987172226455995399049977492193301823657957880370602802336571339342545632142578345744945224744969636033826384804035026640523362068736071756071813121617200918964921184731545923581423377368974434336853547229013189889159139141950238672593389514299588728153415742046906034328122481341713921347641515476573042133153653111080819867860344607263049712874232164139956741139839755438864914814821832294093238849936534144426844884170443000416137523997388613084054511983350727844269227126112058302644892564078278273954389883998806991225704421340161884282674906998071036985419662086942174611998661897673023080651834527611054783432572154142656346540005208942715867624979970920490783395840637616362682442785622897424635768215355670065029303161183865865775136932470902639078803918609515171619411740606730688845472194481648922274823995992372154933706827170910432509266368460308094272717104202097490037134494048038159687776805348112316929332699689977168712232876666801127190878148324238811242806632848208268511247099103232003771901421631431820506405266240450163679619440331246604683798256409024644227521168967417531351602935375740242805409774990975938716055850489468802470135956700684631319306950666257739106974671569432036321791598570810689695031931898182467279709325633791934245985673678357735624322667677985037578185218580201842316826326112348045098306963640147705911850375979335529931832590427629249263872304937795510125324544450971751043138071828499187786554834343380253848970085478364351465856104789700549052396443251207885778241520813724070348653779387433388973339405359322710375965442707482112687468626639910023892525893098326028255013858080192166061874206716923258463104421457015537216294229087059813367157714272171770477914745530338166125831923384989687402254187596500303564924909536098601556056633005585306238508656014892862333774704501858292359372328852193517168411326452900319022146994065234456952720575416077480639079237271759613499960021759488040579023268253341984065741649998329924980605713788811240162634241739202557120059610892300051843744211065522261080272209436681533324568859030808249345822797337589769394093686325510487739294403941584755793821691129373490034711554653357015117461097552599567076929047004252461023629022278503977381276495298060896956031157466639686555949355834132479713501864590629485077798033572300162973307190808611062991808383715649816569395608558023130184217890075055770148071520024522225021667145044254031557660069702910117819137227187316950258150872105317160017705648926338026274407068270365997404271572966387611407993077897643531205822311138455132160865010774596924154423916264560949368916106872716349711532331172138673871570907510458877808381417780248850492367183362465109830858526707203043845386114726506156163118260225712656513287781928513058075430263513297637196794067759650875641078618215780606519567043045861925158321522455183372551933749062744922596312453522555386537091562703264234254522943086642021872422633070009358239242205072635192612099054521442043659850300093360368535689870777423948231613166004004951076264183188968630766139062322378714110170783334949204611458336773762727292240972452238231478138340237556647791771575661000886972172040035668461027642212500671346402170837869494700798851474086133108448122738758268092896418385434243679286772046313703445393817397480682256487772548314144219809013281768800086333816676171706752973182013691127930698414058491386166784170358810606193019458848962070304598639505924579221103235564445263976664784332865629811631731842662208711857431040990864784035466710852535193174534397018251520836299473067317359370073022009713951837654617521006058830122042013467524194841564149000842753406330726818829480721068216923647844239993903220147463361576663440277769375553056729949014259704489972379993192071943599951211126854762239949657407452053295969060690123050114319568917915529370377842607034838141969358641322064700770831555745402203036707148348127613896720118704321237360996014059266024725794555337118997829336746518544586559769240791398517190382243796803393633119634691566511694635514682762323387283050855215070488496397165144991946749127702150992657661631494358779056141751920057922543513734065900102369569832980156049760240086044556855788184853887703755819581510953853557767696935627743333640738418695619518647781097629506660077422515650870315168639776839871376265579366164699519862960563295681143629837132441510518251931141578609514706322176528192506919877909999619870317491098978855604780654016974595247998592851460274734525866385634645797371055007278076074374862336534793415103791124509838164442506467448857899030407054357540562457210074810559471707465799223983804621770782756161917015681222924381516364308414462235060965804521543329303191365544817311836157130420252397796780266111438761815319061925656074579278352745099183648232285637907013394638143513750997747525713709539484175018533118998616602335267816480543356705389051172971864064497050103736567708213972105584296285206295050863368178736663780180807354561571017105833661652200386108272052448452532732825322007126221678275329301114532352024366335595018109525907445386067742148059546554284002977132377508538991781242022611539569830320524838401446315447564028494947241164646968189090028604860072404044095884106697683552428587870975420665379050505647080523045290396258237702667506745833404586889991586853476891871862849228224728385584289498772771032593774422253009137328527446479688574027771061825417073823307685373375632748102969335630693645472536608232100679317162919249384239812331617441582899026417534520704806984877704181619350745775982457630683528362860351344536584147328052290151079250345115301642920656024319279316049695021336103862206819993540005474206806746618875378738562499407711591027685981314254048284656033874561580890536587601864484628119376568034541736263425154787402822636056222661946577705762788276290615938253300989369180309562054805387091738896076896225550968641512879580607950623065497010089697811577677613250140555500125069673117535696390398970881816718712079716855023464007308681105085314489848124321306384975421596499725640980195557263182085937489429330200486133787360162395238249634845467691113898448353434156633392696726340135248525832137886992935082097156561392438321402140802109725037557759888894064781312802743775519657933331417626576553550241011293027551296707224511882952960597102583449642367531371028043271336445772865972742233746196557581626029547455343726459780529977049518446154831679240200071292109174932904376779556558505248641128464607985809855970890615181793800390046250559760095945562416636978515493856743418402927378827750008262059807047220010589541059304283945661216158038819450406393084504870722574953243649605219738578685376037962750431008383978709340201694414233771395159288313290404052077015584369375939593776895713670095498818001993045961698034197958468438728638140113657304732336386645574434149253926027350120448192236786843316902064910728970319449585313348762933689456738575493119414078221289904692896429058309128027931784434291096228105702435899685300426277873311340757583940084358673389394318171438184270280070769318102064879695351258134321061313794387616535814632095563623110645091388961091859207324101461285912423733285411159352867110937193970197894212167564991059116451140001297483693654517782363100509964246829898676399385455851448216146395225800318231976256123514975766944802122183324118657829061375397448420957538766690967611329061567724543737841026880063071626830548910968633743832638607389341977826314693251827577397214565548448203301517741838274090545860071987691096682034828088413400007266713806054916294983227326927582672908840821801985884767031940788483998591192608972665943186646839206146346583057368724560208691310005172129503299246568830346504305310945530973715702931258930195863628405160966082306571402167151259246608956664351457529083056324100947604548594404800112540243627468676444362930458483065801599901939344410814236428305567369007082250425475331871736662957171966005197087818791814293234477009720475759312836087453491838067494597653888660231237420050132481532208551980641119492028676068050354708152657133926755813701544577093447999464125188217044341041686469268489069870476626036773522606631443725327194219714770855727701179079121238347768408951969724872403095003551438004159399361091473306510047008857986616131861342860375891058749287584486426991525166685547014859724800172054802681601300513728503126937992554657656680600532458121478137404642523436307287938104219874533683238356138512947104523370769752429323107542741636405037841142562434204054499704701206970943478849554428972885354757446747435826917580993802295467295713510737517460214223952067247483182614847080155898840709090089203585066168852771875982586539790078876839864511155376451524765692210677583018871417903820605836986861902075942182729835360162638158935568795930003645564162691705077199501602398916491065108356713493788418532374068234477829958793176324397324276328891875448252284166606536887767822288556727615266654743596577913179295146637498078202618365604386640747377013579969456330189823900090317521621979292842614833503185908335127095258183041815186438655179001781800722188518607229739100089316667260754556018884996689406975113094573145753096682357381396828033573537930072624615488580194062707154216125787517073928984799363086433971711735631538138673207344117567659531808905105287719516914118109423084865105422234843107249299907623492889667041044022521252047704668043078260611626447078118512852171102811605099047709618692069934093459429446917597581115471802913739036556552687795464604887554168167688054561374159496489883411339330787166473789760504516001523050292099381830170053817985117858977175597991657703756547956260949282758153962260104955713959638554828332428154886164849453564742944814663805709870177457826505087264455428740775015573261692207699841393685115492935258340735966614438834806192849102877809034902903085751993126076757639671277202593746118836951088354815954441148385708593338350661930512757509730840681198706177500751300914951548933652714010141637420713805907926293322124345144548875735668850995536192681709063529780523355866111813243384294247536674073897742602941004202681311953456239940422679058726410606580066988587263473201137318822612196238368222796244610622954934138822401634087253760881870588023462038077086417767123718163222766471184685906654020451769827566770436842578140305659785028562636744096799784622185692986181375953436401580854644009725010630076675404264716950293768236873174340420865956149236411759135842998822354686582944373133515547449797946773743404264043597375222112774509846830997346488719677515080660392561984411616674494822045922810192446922066837315204601439199924864738850314411982615968227862050130955513705137529332076450550178370953811596925049263891104631590350276114674995666815882102931751255879152393887591848052799457214384383120299831618722848761427303966907402116650258462802010550413772148514131553297506568065356892948465301018485277231866837029028021089707131216733131864114613347221502388064004284459983041268968011445007961929742625527731918942025241262960436435397136655583813414237438330450974145510866995417459069140070276234432029044280707563850843834780897827143328889296518588535211044491571783807139823996513108707358168080875186155465529140715011380343762863210825030061194822256137894917452663132571339465903482949647374883635208368439555442775048072051656765562830668853580475374678659030176269510625747934911163547191839173946213611269486991311739753685828336962904110612885743384724333382673887472030107064140963279124907425126856731028408216764993968538282639084659654199414872814369547398220814818824933423553577178319866163321176207247140187382105640138795591120434252876478194417877656813483423978705369481632952993165006994519399194684492457481337994033316372325077458567938620300555667668142956266184814611827912811296301473580343790618649267322255752628193849174467944412667886293194708668848422071083281071830553206769349724041121216094644402243025808019253504539334326302322918737313325167092788052789174127820111276621919756426637065109482216280307932137235464686848310355422387371226737388782242004544943175295467111483227064606260862216435969717757657716277123837730491647203117227938818437719143939107380540074536146109638509719946596862651446221742165490542701961581818031342846219911869947931253329058061980841373223354810172603209813930093813394790149127709306185686586078379014013187341063723934925332078278241910677587893756969372023976158460490611566907226573830414718933922044984525236730076739894608188417886925884901192387373975077263483497839886861786472191511346631835910184282835142116395263454192983390138799611513667536884243255874805861901788790030031986779267915416680172965184696693128606834952157719620552958481252524701950408495634380603440947429878758163737438233252891590463954048933072196870368557324043071844540286293186887981545037608293756947051876614000133426220716101502404033517891328909343259059436411962010283800699688690736530149356595973575792212449909973607236038893977152428769737427215758190055078600093669711460387941503783297833579043382995044463140247025103808321762198896969801438633052277976731265027605696125624624246195065383293620718392644861654574824737911514620726999091285006763978923830186282211429951399288211178952697671516460960101999382654644105610863288602835973967542504592478441959909341426081609231893296353972137305382287610495318245997535752255234929140387503730667418031308864377567830721717306417360075129267262731218603938847569570518887651293266625595844614648854216857770016798340208197085794879353789383069934057183670028579585913653518759711533495164489915684750220647633642863771680984511740519417781059047195170101942045586667144776388786819059549608990951499495053394807479936540648720949485829120894483226097371129022041045769925423908125736224078100280014765502901868140905347841628756509101627855439950496927668937730058120669226077203485486057895397888147727500437504840927297849085966552564197302724379084438744723132689745081662227771930244419645464825954756559670660633412434734492808201409786892174635252472557022683754628245621681794507267149108089280318269153304501547010725980490281211179163466700122873298953887015983358246642947647053379906674984287731004070649647820900913012124537930501654942295661271786402904955958568430674540283917108948436550495470322154873017510180153282638278952086529045090457595510299067728350992675736870454422282620604467061330137186272895794361030693279287664732218335724780464513043167550846115977011244337432882528544781477022939069893499703421813344140552003162921208840124191789144481548891123084371380423949299200309216009615703058403599487768615107416192368182525489893084770501501061487722591882883738631138275663325146819686728728983184821178475837466832496232156706574072415345118062539684042091856579818119890015865210667614973163472722339669560993372317812769791316611830274798531026328726270266873041896944037693641182096942670497887788504482978033218634600762061847883996482668257577949020961752289678425547693542661305447233538105404218986530228402814915333144938315661859258280849839410342371388490293480213588030133882387692867068790013202212136295029712846809430786651636160445914590452429290756617685793221053259912956442377618378728531495712647273287458563648375947997074208738533067988614038195262997482659283341213072580274015318000779850488019111485443113019912218214771183384812136143259133088533744183413221897470244715062916158052903700447470439556606693967710272387043860179289807063143086313942209611314451452105500943719556263532860563362521270060447730114233461252713929597504774542871301110533434256175857685399323554790967872149413675414587550033263118943114696116162218638832140439203290703294861162467571011657752791598162872221832703444810304708138622868318894344613359250624530427796270580500272947419199278401044641810044111901723068529678337202912317445238350754542349462761844614471867171651601307365434426320825356126447426594213440950861931354780592524593991941522687349886194207878875645036534996665837204968303415946415736672917976597038532495395639843483727198479791965823507213932598502074876577759960555459526267667903264104150118745841674256315214737003424974051283852714372052166075446181353717603309969269653726691508392710390231729853369826026209207476571389159253507389174627055791005143682053630813702284903297762489663179735417925694915939109497283060489211385182057041832221676849160171738765390961953660645401217601270048179181759734647964985233498355083212173945291390869034266800694387108175555919873331081731113620954124827420695089800555079271943560218056827823294341887149483821871420183286322657788597532566859136251033146443186809077586362026305935648824015392197552481280123228562978969418000045019910971793796908476494669642534335641147029395601739678394257061722818005230376117779999826895797543811186188299632549774518952776162487284491354233138481368264004259268819851473357704424091430979136212509045709455478610320842264865882001746614103999944070008868033325429235318327548107214357341025394711857075769719473899124238115992967696671432183223749247971557397557763445558836771497937913586207674919064546621889915038830105050110612881300837997168819601737965745925954847246924894381055064458207874535204586049742947633092117932817667088229618170929548227000288668726683342684180600151502592500905585283306719524693494501503480310129397985974119339236549137035212693677733219441514009040234640415724996291203546272905678722968168371459189308511344533931768869151894141334605169257196828920470403480323371702653817055539461725229055966116539568873741090645730235931040937393521487924782537802238103480114914644973960945371965489056187560699324555304103406441179193381251217177903038340589853473027794132148430161771318443834494067295516091249440936892375883735575570211891786828109018220230715631879703475873033863002317734202410729771566124245226016053446561536078874466875319899532601129463890792496531677464191680874116654966038075546554475899407527311642179714832658844482223456834719867988476717184049412205487423962613340946736236594402244673536275122661601829762227685245793520004241647908130963315513232787024969503128411300014829378442547751940250677934721004376723544464338356882529169434565113108133895846850645289412734059467166287785147803282855996403040648674133884120447033139892827744712697094181929446200720439197493654731246844890967367352060444554582024272933374676210605238289604298992655663777319175261691193319552795333794640936894748067366838270029611692467786144662636199148965243798736939790061377808587628873243538042766024703990780063345804478988654280620813745175938497729800587714814178438154377463680220601799421904297865789505695326702944950542975939053534535628557064322914557587328060685210672872994663007278438077104393845564015366040771542058622498347266110271218930321201624249700682977223959745444735445881894697060349058263729126004095994046339010027258133975171928340564477683707349149389704415468063063997844188792503762227160677001196251355726765620182339033969255562029610657534859832446361586282571367372567742927605918751985432142367439585623905095631269412441210863775004442781104809323504452244552029745485604523225731291798283719701317365436658181374002809003698542201649181317547863942741403884875887727808970643890554427864372591809015971930311446303442311984999992739609325636654992550989055908448732459856923041830940543144138100999165899734181076024748566260985616825781490405345205589151940548204126982080880708147206090919785235274879887600801167251654080665418523104775150971041092253045570148114335220080675955735412901730849528199564902294432995047130371114338978474649448795908584875113403922233708460384473587269186816555682808199378674399732659887967043434726573560175832263301828732828128311142474472825668295005086114359383066260493437171293931371162708860498287718647428814713915697312677901324204238572665892847221860057184543144754546834031976727967523202686046222882441336770143002479595387572751596771696982110365386185181698603907468049568999657600340575438399266191839745292500168119741459620751053251544478310500341499868048779358970855505872440445567017997846837563127171605158598746296810667364716299104408875145476579040085837096115757998771895232315159784354679937801156382941492172073532199175043127572564684430057167181311621939020391609290473505320838288931476991438988342325838535971436215175314832341705492700715012732128266043176398846709432556357948462130856447319159788072904397663521623080325335494264907226822865874541377484484164098719931190458238517907615340025666766895765731029440879173267813511965416684897268159008560031710035834113653828053780470972083468825798825682876805975990879236234827908523028529912436648834589090590604744285336349165894178309228308851488585073917994622728252238328985823836354867043558863582441575504698271077948002838505330093138233387277703690093455600884704199684577502192229112440204498396638906365769769028501826861474846376967926090011675099759604566128179560877618122725919025518369808442092031566107767561904262946416512397939012355571216983139128279911936996957242785451458752462467069351130321840747443461978785439180078207257790944275527352475040098817310559707302903925455115743926709389159345885816831644448432041849504505989658021206348323430939468777721916279333991025748144222774444415539148452848028257276169059236125033136934168485875559192593586104034519466960280330412582701632706908366013762912205671138055773775812502444172218173105158449029185522704564083593609407919564508384484106603824863738304248450020188811715548477140798979368328036822955482408280537997955870784001737407571309474386976772211756456888621511271342309940775741892991004758259563461950323750014047411645105466319589142895752280378194909776590600096655941796390004945878248999620294697659940276963304550522517096274740661519487010869983076041872271438292188819039902277525366047615419313192961738864201396306979147680202400008452886392216392676959565326823400778008864964225722080819947826860904185672521452042549225704941191950866001531385143387066065197486459849415999225592533366235442942023320424013720719817998957839810311606551313291939938018305361195778984540220843600163309462978516202953424927040071559543762676251685520417419936254314606474811051093201866094807048340308317596378436727645828432670405580743580866185632773013209836069001994706653814630475508528778207828836365693355775851202824904171311103127994482511269595128321452005486410991782802145208147997241092570588956084033508812425329998007306440090797730802704874604175318484997651766026594243984393384406689435597146880275215030865668958675557660608479613278121978310254167992397416002329658575827279369039640149126823285160327770365775593746174210606499088604708406527464480877354102114129555955844678476651675559349491941319518975169854420889414220161278821462531344625718370518541399959032076983794686179681476614315091946675201330512079828392473574989184621533727428889406776801869884467320184332268032151181425757818294503099056871435811127585009354936258533264870139926512578192236866027614730813876610769496998222991479874953922093763984310434053566988306160925062767269594108124033265487150962240063064670211826293390560037593191533841218031146966417510273257896541198378043908616686923793892603625684502553220319430763205682607003560253408606412633006123292191699192962265913098496470932562228096875376106797091122609559989829137191289942327829372107202933743450813581223042670408008231451386653422734082222456522078177372172289074230557479544268776850436874973502153563362092094506407895512162599812711835663653223481969959454947885666715560270229774436837433517913631601115077877403922224410045894879912556256959319223204438662597285963801448520355283856596201289323344129182995715461846015486115361727885806721624160185688930647930172818785881268700346255255164949922642400823378790554919283235349080381088601218250784357500743487887398046721826538188529671136570421954902729830046883007217134302659271178826369670925027635614696509830063687766063337989967889231676161893087143720382882530371373592150636865070752451096896002143288991869098292144998535159079035639175078144081547011986778376708363111131826842741301852469237779756487839615015109304486792909658328473150337124050221363657647592733648981330449131408126295259286429324775774720211484745053717482983639653635284876758608896837002486204050116296462960651005808694917410448200079242397242413249262459580154548382720957254945907663311988386939413389579127999358948824726286883992219185808665067689572294036033950277966040866868913377255849180973147285038730324950248538184015061814769319718572278104197992786254950680454785435620070343459986646906045968784730029041263433549558280408375110887633544162897070563001585562181844485560260962449594291587088276319353154231190778875975853276642797424993170309033921794374808742717639015111876771154309546869902393170236495623898847925861101281644026107407711695276409601862523984805624504971631078600218988017185139347142734986546953152094984208231817501020125767790041562963689611784394785296342540400862606060061606266456652731470932986285285898443152363539376317693060319820514590557577482689964553748064433199279774793962805053993272090903008846056727870758634394066722091019972344783149823152541480518629318642802852779409952013010787715654786587331713151141294385997025527595619502894684996054210157858007284664646781327601655713938849983882632636400883999530893890157503755604697306186789799374869770635250005449915685312509614617461113919875220617398867002811005616285452565189138652242985845590285808051341605732939289937876895496920197137138470630012200460149915117502991741845627229491645015832674574887592867103101231097456276811901533456237849969442423727142041359252649317931649915142359054306428733628782838286507092106264012062086848206001159789457041165084018285678621227645587676906821130668919386207036488872468783846419963216035797960073261104104687450247393885915870370933519387884182157859518482497551751818971869856889629178470319116084961977871718390034936863535283738622359877924950626399933609152234982285103549694368486204969762329658084647521500185410163987452107198578673656328446063765451437110509986225267130685997429258285209652645902256165235184877962988030879029127200910387214244913674544107319528408374834744067465719575870974264165322560916177467401421403657252040194508642304601440919149111380706413238153143088491906376286038248017899078439804464445182502509894864222558363014721430057687208574598816697076419827683661015324642555864557259956224702801345114635707974783016570740322975724133583786008455617799578864649104758497956668513662575354753316934503138090835859911954771421603459489551390764088120945831622708494735871350664137164675780376832168646448670403984513561206945364768368619650446442507454105564791013050916669818360979642016575886186702445340103635060152490230965024986645315556761643780382058008753197883742692629946349484765688891996329096890781032512462633563111041255578093294474011739740825319610580991235213385442860228953048089224418156792119210805378510424357597151431853033485353429085468363839452075119622497290503051034076480470484210577571213040375540384203909268017688581367194884777984715889677448544896929551542447349275527951333893233238315124413409823587929506175790331676897874016396288799130766602599972020210772627036015308624476986243614598894519554020142755695392970626191981158898141981260289982024862540632676162937663859642329285364221454147742223709197783209402119583684772252930799418945194133703579877039583612373352882168496295414909404216714389673222958195150287676025341864332766031034168692433990042175132221411886885227348486613788507197768048747990084690267126658008509136852955473235623625728953787704383107248326798501324992540507492853126078368167294672244884909182648758871717509050575837017334885875552755985001527713311391011872571585179163922471854392871413113690468073375404300910243051302770091950342320631815501021921853033894270146898528662638678839235868040377949900021625920736677345160145419949562122431975881751559534089337007267962778451590516354068564349075743138348599016609315912205816143436114954626293696456475411810455764781424011375551714673653370403052415529057613728345081416381627036327629298060984301385438095967638830240989525343347443555410759585720958136886024609739398299396425029739696271205833328873060721339005860521201613346983779142126657176258626294035496578915883850288552598651219241445126469174441112739069315691961411306466110153754696508963848426393007239630993585205766972259162734904831164521675345274896682661507836768022347826231101555127392391556525873855489253798911828219619394340750971774378064422961960974752743861612458713165061492965791978956056516944291208538024686750946962034667957702247069907883343662938213326580404768164928046221186532046374111973307843085864798328876537633940090968730082737171175819927138516409221254817779701000886841320129588652618672611956791732362468674563277345545520171854018702977756777313272812175914796318039010967381316374237272595698997859126262263774249679268573451250421695261167233594774760084717927975557882112196468489931089495567190536911663704634746203655071932837011128441950302696266230055147626540376374982288919653469411549384597735991055808863912863126910314141082196400485290224427936870606294671447854643588207557214046433828456758275319913766003480600187565603095150653660842102345691521447438330252853520162997485983254852979922457218898154570171170343243341440868956538425879050609354977276086326997492732460327612190298025901363192356481312058492781496323201068826758876257629505916412561675559491060714466477531977733972213506686242219752550083382717777890101363357840628495906988130146094652421842951979831660627821238965347758691649963602357783075350281254297527786667799709595100202653373725398891308504616116972431391684177978038793040828789819869590525549038031473833783570561210659626522158569355226745411577301492197317454248884513965843103669579536102208228248625459832530089264883228323559458867530628457847933071994960461640239107042953469146091418527126498515715477835325955147886797151639314964142441721736171808703381052134103612532723472652632188037609646177426060354232472531987075344721501288829427834974861970623240359980120007372325798227698294320734978837257367378921655088800159253807255441797723872939347748881674804400772047408605630307761730780762811122812697140976376756887766597728295485875336269955778114021111765595145686600564065775557263523165093123054962243975690275670372042257756587397573109710306380427775353464057928858682715934507469665663818894326740354433924270863144214165723696510547183139566991486767200245747304865549800293019521751627106032918514317274939981161849565384255483110742941490622420641167263046224848100435373099594463284425885807586791639131347441404867459013655049306288585954065863079438061053429433240722592249020421910761829883297494349839302080436619740076493294256623481122953130264773249037967260527740895630779029914338011433261564538975966576867812874257781905255383070112771271136539400157543433014706689909703337509478304115758137902605330327954878954190630640204162382647191193804098853981317406675406912207556906680344235219638661166064003308473199042163028616788459870354253809256014384273439510685221240892068540493655811614614861657777823816581781797286441748471354765587112149997599104637148427166315176514013124155243388276331539676445871339678583575037895292205159629094198644540272479414162141828121735330425199691448260444714834497384935394409609112695688793927519947023724490171497226416691617290222478158208906270019822937762413542804503599653151398260466393314288952308699789399470525137836967264155199886292100663606572711233559058523904640769294645462113672320338980074552024334340782519750913717880157641152446165332337692534827536282178821463056245639032001833921603063068549259378932262729845014956515624041341599132577168802504452154186718462088627736431839092497821939345506379788940420442867968577374151535562639226887538431882912846555424707229487153492484459757837830020818512665353659565119506723147806770412710861728300960605004059784779542308416235126613710562580706284976109677751064683104566307541552365989621535219884977839394670389312848579725126012484795934948314856145413522070191159321481607296733705636563647409629306741520245891841121984616330661904636677258657922200283003100963543614519368128339054947569211244615034821280494205145431554501697456857403087786365548375244622479471499185462885432189949479150942901542088998961935557656124366040538758224543850138226370473220879877464392488314014993644930978037476870433772805232001314615783585857403588975610502043710010725379568552637317343571224156783214724816382056193847762136644197882653364622677303280537537032827729891275858565629363948190551289890500286892027372595324165153673873917207528112908299670154358032271533261602738923542530628528518560627730480476068517904032935437229167170925789641415527593346855268460288131614217729678578170327775620625575907709543041602276910546582690940193323110880091228181534102898502995764435595348000225679208145089738672172903306291156426779390510489348372351815571410794655858362957751891069134945143166766907564793952783317312056090937732814880554835083906461889235455775304984406704316335339654478910345097343105840433920536447332473787336130998243021728297768611521112367634852414851215622145789242418193935913411560068071870975826467445004494720015637026574062600749073893912497988428105485199145085310178637004041036001001379174844582160892210239171387832798027619524016634532482037788293397026934359635205722450082195497197396791378059207234824658085280095943077591444241116792104222977179803663952089852070549600278384703339171114373935565666319638971690663930043035730527305413805022376018257095226031249947137718429639604902534948984707442105491779630794584151881597723984619605759443216704655106250128909208910259316425509000883446566568186578158588618663007575656062917702549869580828585820124161635027122283119037613433240439227560016167515475159752630157528510049280124339364026088295161527325528130071245823654419585818161894177973341269988587754145779267723107477988859680377720282075779368911079731307360709861046873469504861543314460520849007391384347920189648762015771695632814541385433982502606186673672888468324430689209526792752440151129324188068696079926097089936308985293616530091119085346691900340482960801793692110741836527401761041869182103401193419120415082063276068473330407398144907581823873569789936876807191625116243163180178820574103480650258029266577468318124039497049176826598834679280572500213058450631386104983188288909267225605911085023695817259288153019392138448472824921776832186327627069321651802955127681489756018750853844838304786280987838567366863932547400501434464384871003686570027658411742639535746768595514788703968943042989606939910491091463391798207386853035564797843248220431125311221884364878341839357892699765559012238162545144335158242169554107865781009926848043484895794100247984076826860348013960310949363566533659806975897929847518573020898784438170160063954145653329289299468322544809601008603683311781589040863331062917673356467947970036100206581464991582253034156133030435279937940707142800976175412715335666716562113675715371247185312436970690902736328611875366400469801749928633719709429565366236480268932385638548593932399693482070041817664392713315966324204001175116297791917300151555739237632808070712087969374849605895588967087245334200358176759785154097457527178057771352095324144867782440773868435616940208591184566810095833053628489439082118948146556666646411980269864935391179977516355389113134412886894775272466585733480384569486830754469957053230682439650292662823651853182379340484019784233809942019063543617766817604338815104883916919032707938304705416157286457506014382544855311970639219549456969132911844357115633546499130046980358956482107644538836965304091918376746711506269009999236480393849290717910847118451094878268648618011054887869810157324831227057074424391870491304642462842778101499408343085094021891586024647006411545210252087762891172646412103674394310224548138316156112315733113360779706411926670507964177141703575375298652381197304045326846924591628115564954294584937317930878206728228447200587391326808132833387276027441272304988674828203545526190409098728754677529260404270875893696172377113908862933859562398932895891549797787036804084657472661247439947627068888080946957530268505771749214168834230059095587903429654574388118352892386241408062115222309017538375377816098216284411126609727119638203700742767317217094881708573297606976197263675474345739874969168227113064016277708629366487467464878090324037799940604727946033256476114522962963193871179688374088351670208078060264767498694859352713458224769566793093122843622463549011475951786188748205389885987092177609022625254168014359432175581271964034821622385520870587041235398132237959280308761951541848557233174590049995325635409830601525883743695805357463037738354206661214910978732675016095416345205776304884353899372282029232940729392563869986933056833593042965437864822069760086358127427876080856929550006736060938061856628311743304556423348636665200125485827340466759251127302139111062401112610308828817337766744725233932139801834189983024977482231489751798604042170939115661234055398820553907011065962867241585905882786242966063067535621926944885272796339098320042760493173294119454709551917242051508575754578502811757354513989354220252144257155231556871563561196595842348689264193166420158607925438330403958531268321966313210940565895782511694970710871558750775258320121688003334295059677793454314242880100456791632115436157315202457801786160443767303158611361133130002605366253757577662108966169198611558851955523455860599597076434129918502956701951676430551347317569691992441504318794959378937150907308147569816884157863154359000877566161042764724444625121426804003905503025940214418554067067364939544765468211789095131251896803651396692954498809441639554856178249323216798413742714356646934942624500304095238644868403409033626523463788533489459685082437179844175806473543397528905503627110769667629850684233325150849206606158498172699009943295445163834117237901009016241469588651909213373298643467306605166979281382425067109793289765149558257876066709037290733942948793639547465815666792839564777442711836747592007433156868433102755597022144828500205088992242633120638734433583844976530748155067946076544059596657488756641380029762762559878991658715549072524919556596688086586448117032373824190090254988572157385768844062895982696622148610364803290223344629541384463669593161033049982336026596525282953427209845430902345137565641380909786922473895294823855783213740184325592684748872738300921475193637002307594062154294799962546563627439726468387741772063387863716512305483436526737718946781772836990629837430848590103972569640489765767875362164521009689828724366486045018650580681541783087583440330994584755774525762702640928180097728068341258985084900332348856557161673875947230630134088780671430283119509808584374640685799536316670820127479360349287293001767141814806070707771655414376939638646966918224532444701117727281707245316740765874366837332203370011072513550534837398616581199562035546257985445693779353913559374167865754143132258851475647061611626423251101856068827197652762099426158094055267148774945239382561106523185003120812903010268449880927488682309664176002433726065832438912770180758877567201600570577983319803856482317908244332406475046671500114487066893108033308136523347646652691070606040371997450361622566287844845646679065080642786758824541349871747731583929268152958528152454487250784130664021344751703256737746957663742449309163567590295293593825546945974691712646924763861427763486348203804853719178716567325384953593802821233656672312574455966139346188127740474852780722673221492105364803208404363459862482009154451085867789070880453408620316644564489312900576758444925814616035384901545996103976633006575693497980639595311120303986550913598421393043015284751200645901651578351208576413533300736152594818595900517032127305752354828418945660269211609815320923857289933787709268311848519720434489245015146697505606406536528114215521132082777787574011783281210466443575152369608281612138160052951419890823270505162847904443802666290396613719150330692207479778873311002023745987423125172878125565162417361355572512653283985392109425450937502931896831610011258404217313987535006711135829912311065477574075087237105522760078528141942353148050891554338004356154372329029555255484148769082592911357393457075067074191675737510334793950405924793715822963806052589937856756082902136688597666774931229866893715436249695117905947064062231203567226668710918124466563880318955036871424350667363710045913997638937318889318631189937089108941375519122647054454023872561336953312831774072687514794502809091414598265383728345245515031534106518097368473458241535388612017670521899986009554041142722777294362150718989479110386982548788105034397718937499423429328081783061817115301802531072169621030197929243481988954186774642473248040993570686335114252360570097906957200314458573061758694433200656338599848481190076147959623390548498851313740885767068937156461007803451732566422489928947042497171702118304006560228962710407453946584124781017676832349317537912023299692824511667636150155835385701915293787432921344109838229994989399659293733848187616459320037963112265954651895674057082073747929678545209623309988844696239787224059205128644914665287438384770073928842850853422796973336069373859615322819244951672347356924091977098612376847859672565058871439492697340422864160703134765640997935576155887562726488739993424300120043850312678120972069715925906617492129198740089209143172579610093741382148664914417064013414234950916710550551324611817621868156863979686966930646727876474940289093969217438805794993612718148520203045877718283091469042810165581862612410478755612313328503657635191926786145455554588928220026488542249522705429941140659572799410602201887429940208001261888836696526075352888501199567556264700427373869439621604042107938567286089702623003262624364878465364494101102565399758237871904842090323353360948927210763426805129902983535167548641132324783834943768152086061785991024964014104997158231194270789579057927142917037897071124504373401427807210803797019838158700387547950004995381808286465346996360310763598035164521827088961437052529140174515352625517265272647029450776527812345756541722322235495635399494821709042822462691779663836591088972347279117088819748917846580077611418856260367113051910625359371048746046445390582478488296382158817372143780652790233705896461464117235996056002686535087206697483778699172257475157144076028057409229634954683525820822407975111427080569503297004428903061135652878649221060063219174937122387033695069156015553753166800808493939200844065595318787397167880995250632788273813752938284718606216560548875741198822855708969227918506906494955109746122766749627381368142893876455461440979121930523730435195112098406955174839543640611648150080335113944719717517839304346974186862777853543316107835457628455877097096630800161953332790641424627170886441299096262791475062131066581986455075550566897707170494695547134447110492566236984792833630232590587937573201783918670264555866926408661628205063964377140507023159053623684417950498835427927990035053753561335089725902137519991374666919125542627403009385306569700780204802802306837682517966737926973617551883892607624362934475006699708250422047741186846320227275583027369680832730552814263041780396093924017990778550547728937506352783044972877575094158599541545538230031257236960670184773593361117628040295630545409812339606933275406474463250230187970911200545093476115930129555212910973997904033442756286362858145428353655770839219121048661994999015052657028158396426630671200080048025907854059361055515116355197877669606935714949811044964065298365065987319296425535999419827428897580429139177256424689337920518470636427706415429652257474330854509757515858683912155698432355434742879606956142363447820385838739892893891785294304638063015786561138883746049576500964821655878946618670209162968702207485751057552524843108943593047212130842083698795205451081848948542660101995684768026200441339977105583670241381985239221908197134956573814623867789345944813404430414010499081610579392814826914293192580397739528574463764798003937942725595454602281356886853751295237644780220969790857266842637675881995690110974778071658384307465860458149098304613956522773210665934534864495609914984328870248298848827989295123166440276299938594598328181747731607835237825617645057021110218376758997251473687747310471660507325695499516515753013134448423399068360676352531878074032381213652843465036887273035534065913367517924668318892578629304218920689540372475335335207482948971374099491558422541199347896348848661174438010970331741713261879360115412186027840527286482804374112905756081550721337175818085597988915349109653128850070744882063616303866142826226020064849691589850781162926232643460052813024941850766670995748167020751073549074230060039010825124895560894373870537105506969462950683959923432067976892940461039754403364021313803171443286295253115622862400006006370634716521077620162804428849562747276801084743555587369347443711509980611624944882322253817497497476669768320420500315906795792159367630880865383856222132352226398500254787721319142144163778046970735659394581329626595710144094570360648029738012032430103508511621137618047882239490163265330140626426093523863540188495698450734328272760816458478682171694473143088663175900929371688199808125937942515974440285225202725879167090102600468136920844898827273940412018912857401049356029114185473591025251207864224011807931014397624278953374944147143978519956810696408165578151997024078137419661312948733801625724288581605634457918894518851188305679819752022231148212296176446850845583495145249349370107781888954423123330394912237252579249340131438623321282565262545351378063839570858446324795080970341409226966353022241717746012397285253833665295872870366567064204473582140140527439694587856941906507303816317282784006924493178526376526763825028976987686948331068060370345257792719544384921572671787243185901355122956728418549706298225813151545161909459617378943586173331451981644416608692877005820686724235763836088252356685386257730537320857362398919589448589868380209424259805507388706113076023537316123146342936169324936728538138220920124765284583920914348333828712880221241000084765915820098712486170315511517129953774507020388069117400313106101654447903688034210793217815075685269769478567052121853623866277573356109735760718033365654300376237505275136966728038317000321163848663131515092708270785274093639838314285016532775056694055103537686943863997574806051605602202348959985733553104036722188172302419506700215079389589173077103984343396673836439424534398608272531258723304934007096513681674426791527637690633755003624245046059484299152029407306426212935924600012036562423042486563799992044890005355940614189157354223954797136633410533792220084011555335709583226806780633472529672964227924588010404877817272561403042012109715381521950046030450058860356829935777922050694873756083631195932979187957179546579159004450946135484562078390903576819605290842487022516569593674072305405032419024285477904014821683852217602368937808949939731379272044399093502521991736875262510892290089192417052183689869332132640540894798642608712278614762806931022399920743986748951782784612525354925360968320891875992589235603481701870923199312926215100196027838185515457174165256699524081725886000938705250950223738030950761544719003971887735590278252240515103974180715538186689376489802104296119257702531478988531820273833251130010493503707370345069860243675153486292095497768089109257840545903124066222755693731423458310084154178696832859634682681810682828964216082207939074692638780730753819904942821481433448236526208503280218145833385691454459399827539695741126873907327940590158088488582143465026328078325394291524923873849269532218065897355973402915825738778845462883097411430441699186867109593043896755799973708786669496009813442170533248229636809265904710673632233071088124095564712381752737443082984192635148612239425058612273352413303016815653424656197227824122773563738874094268023489080981253835271838722531674510541621176469930899070172894410856487311121263837929906361832099134237011758502770365724473006873138944772035357770390615950105427564494839924645607500273374313319526045400826546760899944149939746778977876002095125883084367730770665203867434219872470100891003964037664928485193871827152327098596186743998608768385918453499108125153323781540910476631760972760705523812435243172868138680810091593819288863417174452449119751361055136966317587547985328316339648201757911691362227050267132648933910641361371387750856245474080673143226911353084492565541179781187983084541327507046867438043808372485300700289944530771989624958563950523921636063306205549565051426292173496975121765741708588060938059895562826711905506807595873801001629544426317241929872540676325728954176490905067569388639366191737636380184357790824671376578385406470840062239561558725624432913421690502908506505290175400716698394219245527137311643119686602168651067063062394663953584537847805779706355846738028149984524462911240112319733964610583157927548354594621187628947357947318752835379827533731846057211732440372163693487250390698798871400051677125141029490403994820947357566913760583734656755808087880771873025231671503882081776738100952143166065098458085848111367184375485894170936804688383175364468564870252930896176324184811166920709784091823545592844473997540302791604903145696505384616631035135919291977084199928576263791696949983477383814309725056897133889284257264711247941801937608415453632769287756496926020423248900602717409871969382466419181299140022713296567434290284128713896707428633601339192723133784493832027712473292584412578984551858633080009530115135902662156215601799173416233924969211385512443604143955608981862171982849793822088868879454593457361891354371050473450035053186482676088461195103356205004437773564149890554032156267408276687227019835841970996404830598252638518936571229884502988479741770935861266265147273261405211599254923549746602821843422946606765823285041433998597291908896576059868336306879330044733071599583262192740882138583614065904162920516995490749098295983494401377362627694613019028618001275384710078425343399882654403038340009581457117494349849264951758278434745257197737140857036445807834487759489177449098243338571259368119268594404301725342416063730695854861085168297345490767128823496960115021407918337921549500781203771213891522765442926281301932614486220387524008145832791897602465931716799537692707206493359285828266302642689327619935832034602119700318508430753760272532034760113076462320262442426579277019213222403212122978890978691575431968400469156947077841647521613253481765394771973549146798879899529921010402393376510097068708631748262906672968174378816450429588270714074359378515225128695634608114857420524897739533249330159847472231470107230788028318881988570110397887637038437662121774511264017368073630025740789097830059001895871915341058562875725514933836210739718883301928493752646990705463480707440927397257261910168235185881671663079250766970680834608204900266644121217270905468422885175055578421483024616716383695183374000045569529099622730695488653884796018203375104606942820182649980307305695618671658697332072970203317458274978095774654278064960732978157533661717606207492544215203821680968156925545516783886057536945303709455142461566026679391161936260987535758068468715362668664897679192924537388134835791108455908434705294207373016242823267072689618497774849715267776902539522342003829870554908951221017276730820348057954506992092021789936429529201085191432827868499790079378273335783883050645512079458904423546335602656766026657646044335440867076420950937353011158807249962301972649624121132390741579719912576255848659770686198724405953413945435325227334043052524386830348733996978541636684695143793775677728640456090504123287517301880769614812034176466232006864441805909416862382598328186375120946823782809442762842819997930196421026992462370750498307057005681082479686039556325840409671856391112302576601340393561691495658214802871924398536651050697837820977358922941102366817918091196343012316543221722148519142830311896098941374854265282678019250352390179354260056652286292133835645704475554133808837873205625270067427874054712189208896049440032504867574697611114121925364385815472414183596035240527297507306531101274432215353242686463024479800657296698799109664955143553636618191768039113185665747674961960411788020933514960422649943725611534883622331907065981922578996517692011596419746257930267323596392347062099285294345242317982361287131856511208164639666342947345162361282338611823255416268598938955316320493461340694221793587276752459181781828723599698220260367238130719236980374028294365611660241671453292455700473420696760951142178776739324132729668457107534961056557339253394393914809012148504528635331567656129367818775144999126299217681485295720662021664365348772195924270070367167999708656759923070356525722785906217211895240121547698408780091019037504641600632425398785199208474660819527315300728107943195300669747955497529638248684157497808362371188313835302067977977665807503109265396650027201298865876389316047247002049426620929852236673975200212052787868261797181122767801135488503294931015030360916993734001368424461785071357079259872633145600911651245854148754389687064660900550984838899632190252277024129322082438720305218261743142055407278864340306273822897679812887519259706496393768163433109417716760263673176868749797643187892683777947994932417437773006180641527556601965469671471846547267677706235078534704565984564883216450671489928211182100682231828857587948729405903498538946530093575397976595027323240664338582358028279195169309173433219977329293251198585195083457649610731779287679141933281281349504697792467423249208327959142756103430642875564592357943238852187269643246928140928214626679331871471749940304864766887073938002558998854417965554624124822407810565544032591077792636575052392822165472374501641995765881355808189996272682542957964342575565290735003780430482580865415244910379511951977601800533438492668766113765785421275706822716839479941530271037416605697777467328392504743799846973204325218042361867789564298883396405580524035908506278748055317985212361405510210355398535688991367039937220913058360587222068642201979821071646656507646708932175124408468585557495930015996867421352308823657551393569997660956158646514809117192612868514788256085034802346954717542062013691629172933206809524442848642185472687649081206347334374970537997728681026571715495326529934505247598726631496947775241786360732840742657100540489356781252423703083564390434726141479901737580894310738771293421672646203888688756777013769646596629717264983032597143898243947965922991317954645953211754037232151137983831272598834803124884472131270275398389818209827186648004068523165987681661942931667991316876495590914529544813693790377071443627859169473441571715847280914781797643425810959857367371579946651432725058454089967017781377026432668997777237169690864173903040707359682009296923283012412294055368259273879906806624530618350739890481408975402291136611032009730953750062833293075263937568999127526480803674887016532958890264622557267301200997025031696484378543963142521236121602318483625546435979102020414313866620075805469221186176420581292071506668354916298325064378110946262615443017898219093618558289416579952032464141165943810110086210205862675551381549704258556035342294432341761147372193202769371403154512294573022777571705218754808325301150966260562337044135690182861840281054263671106605430522055149092112003194545384921186117422809635395984531790626791926963686994245095258572823205252682630551818130786075283311112912638540765194280379144987980313131744081424090864162611238351480513662374202121326863811763277618731824855636203672036894257752825794905462325518067959944154732407232791679703304970965639925398247590409916376987352460654454129219925227068648233773162623368933615533550948048213268456659349654915249246767249131054669978923239353364857608323679551027291010480476236445543704242986375092592448027843399455209971881563703698994766467138530946782418373614808847788915819948411855063405037312227001103830067510620011309264718337014627739237052674182611391602924186995105656262932932369469569524223612285108343620992946181998779888163465366940815377307481506108883640874018023425609187568705261383231351907080640505055613698567125777881354525920581856303373339301454081653090774070356014599013125656344790828438421745066094221856160168359186191610257527785467059352240031444301149955745382115630964760555350342897100678420530863913899360830989218746741632878229368045424344398864293250511962769113588765979685094039452565327168287125420827280233088049608262745221751475323163290433540515763081051706967083276003092300522630916886747219290788499695810073346162709568843197612329009333376046722311189007018378694543902561215335106692821831528680475585809229438034499403175419757006090957870134650155428452553526342425463047495195418432681998969391703582354358498317107701427237670580010140890646654774884800628361209985554478884774567011860927274469732500581333765062018066041368950563513313983084012445195763050443410455967138617788322809794535454825261320555350299910879574111978648608121712904421063229526542944571821975756414770306210891075275592489677167090052082317463109701751098389983660021792901801045658363430597426628910635608181419904654459780078842653358017699678300967586565757296833502753860989688308785602505446829498846816149385869258814086588681728382035857721944505495745966227351524980454345016772733447905093676125765432887191584096394511102039572341778878494075755412866237587516570859735238033243423554481711610328264252052617183810098584805612094601233098451660752196249203526495066617703758160056980276512827381412039667533631089753838934474345037492675798793800809629958944922260441691522733852469166363382007729735695848061618089132428617310048401004614437347928638659770878489162475472796794736716547483591135890770553553347576541506423758268877804349739314948631905891609738019369219778478072942765976954281181682935999273432540345930453240954147162136986500593669795591936220788987566189771985466991018018500682099852289397173925711514747241151600525084135363538913035353214627909203065672332385941351005147281990539639792030853943883760761184353248492020627021634376696393859417569125508440476883710080845271615885752394324595074574851747365736271721397686310091172173620400627482487508955471777338530240812122704571104151723489318589480042770375274796544159206571228207502514237167264675495928006169507211727053321392024852906921386990972316997158137247837828430426036800770621063209740112910126291207298827397535413326924074131794314089671844097191604988011100203828491236672759256397783808206798280834994408024800696196200173871569503068117978907724739808548664169840773789149274516473134099128202410262987552148301255730660807250492426095504035910053095728464675079540972342549329186582991569653019194174804011133067133952642398214103472381076976297731951962572695958922816327842541424093231627173928350413191073574090573212459276351310927706452843106058100378237759451918366475703305927868590162055013788254908654831370452922888771761077036271674569310727908476428535747654176617782736792484078551351903737650061148592028521191931485163310484551014898526886198823855442420912124635656427316863738834280277037309115329879296525079469289753948872051156846304560868546647685103284744488548492408012096450328031863688151720641906123743033308755284276073252734753721531384877459668599040873144958390929710431123287514151486026921656414815406258228251098863175793112798927192152878606658064295193129409559692214818772841803043554735639637049688942981254955130707317618267758802136277090259498609624555301644017248986668744364438596632589636881494921441648282213440529916346529018002847134973167598358862182247344883641221795735509444110020220333714103548383571662506568820478046851792670515217047193042963010382342767487706295473226760069270914022377767967117645375234639769779266616150054924585919047904343102908515716745734972813947931721342125499681778842059492416522284668019998393454580050338133456541160912228381840340633010028378391108945937369122901168980411841886768715633296204328158819025594992954947545572587977936531382718254533201267186550703596316326610057702978812329937175989172667531483378557946826357991930949585259806561976873108103088253690726579055813559950954297134302441085200276498102883804421961686999682913878143714602940634239133107841646550578071913013875514375626468286049682349650612273878801607732800330717039321998684402726324100787780092033610050866630216654623705574431303350543684710993810897465699535732544643378600123615904661471492231124007832495552572862973351571431462790949843293358075813222669318184874498532413377124123828647474521211708345471506191151988237855413069615770918801077031677765413961256838536695210982195110232473223289857643727101896119382449497711938039295070232051002497950771530479551903634143674055617398682395786480405851547972932707341437731213644923014639292057503945624352338672511636201689321924265991143648950319300448798725055305185263450961518352913578231282469825172663691675145179691751821730505860329972651740488650105716853897817062077151823211363460837205776724020728429215493142318242385877206818941096003896021088392671540293025599535192415491898562786772507726266763792319265321512372311160008962506036024367513081242196547956523705844356293422729357668381951665479123960624775756839680661910895716796960706952838345435930307604825032198518904894299010385440303527085558843550075679935226510148384828639805311237745935511741941992916110205460671621261655821624729300268159451315544740003243534876546992599001535172996892834789253853165938251050268188511369331828704172041746875444553766375798327533772322270871737480622552894134324522309531373921627818700511345703616872349646386558760787469988281813146770966015612612240845140066355272510218746164599521815057048117161762466101949574114714521322970727286515371122175697639053785571716587234032882683690145812269309054155711992450751216175202102913226760221483298005313637892930129319009685652922893309826098506915324836478871324100235635172906222064979452885752757158747938295856133274515284691537524116859790842531808817609689183994273773568292680040716980523030953645646279216095297584709231164341280875785525731530530744626936532066316146347767337254755184091123301230420322483822661381458269885328908074101045640262696496159028387738117736136842493178762561486349396407320672407458745209773854470249344479226724434035829429141606505922167730125586405932639685311385373592139953867232136299924010440223287490771353612657874031649188148523671604759314898770902416425690590566043249303736624926384296676322350821470720437101563814414317738907494371579683805376879531816599666867425724863710381478234475520469955099210618304902353747141502101634912469668179972222319851797578323618732920146182921996621578554229368774280659705162895916665222170546173975215792581913400716837476605879539422334587142403538871088439720024306730546203046930737742052362678987748940732345229908324102527567730266835796972834412121382950097529704750615753742984599321953296651080529489878689144504565350947651483826164201747963273987068067364235079164124603872723437071772568726877180399640163315562512904415111936854803840607599084213030280824755312464402431057895160314799512619353136017298396239226612671881375247820972993715872256501494216683496728606382016628509352929704456978252926769139748517408804656301565010643018341677798151412387264885213381262299197377501110244702450251207507409875692816463042874928107450700925423095955140723858048377453629431652573335281133327704175108934850648746712453964278503443236450511525982298537669344533378712726788192424571136243276698179851294375132920961831092201572397678352368682561819209794203347464702418468679009474126014792975797091530349511809347471341632335327658333630231831943843024610540996579747840772669803810863337320308708782752144783334439885869007336653925964052690422483833958084462082506527442109676460044116287781502359225118514762064708978207270228919526308038577248325325786021499845086901196973685946143911000433466202579652191283096809050525761024073949570772097632636301912560983067748835857919885724007439742230921357323504938068450662566038357310956412270662950505255725823328891907836588039450759852958116665330884416501199070086284692415913509455137941371109822014180071014271493229681173436088968216508392965409278945131312893109240348744233316634937387267653520656998390621551757989762858835268839618718303088004758958489991037307135967044768569208333670202110496529297812772900648740432245198812264086317466608231933681788021487463924897488724989942521272812443221214512984843987863211728037219186604497888960965756281017241592593636263666100535605322866914741237728600013913317632407532318835849325661077563227233240878052680145039164569906356165888261824456094612850677251245801853311474720549246117900975743337483657073939499557396675755132945077376957262899205008878484424525493999093836883689487510951933753098352095456709070596664552424259897686390356123417375187681769655367818138683741821589230522986359809253416509530949977608857519578121786208758164650084814943820716410654559261647002056528670102083858077873574885691753951894361188412654666758931284971749901086115522764428134408395187247370457316419304926055742484008828382590687273971131972152443423211446556630257418989017232108511267840176457353685652719210110755958379718987053846285875627868458365347757626062316244113384078613916615289518709340442749413247442735571338280109064438796380351352310537903619613036079718277829575825526516637791834733778461871154623607921402147248445051777750691673795720595695839845567569790691191640690328509568978711261258329305951584613010689675742616474524951530601281763689270533555671234558948761279106439175373142104029562574205904516022263830571572070193207556837104138873308002623447491280811045602253828634175856973075160114242810001646733256242818291789389661359629942023486371209927410974121506828828072714144287041530128343630282055891907550214623169922797362684155939367818035167554076059353717676613019718348806575757795561078193395078173465870930572554724656629152798509235476875707083038150746056095860134632876569896173647243431259581576533269985617690252306128973537774373299245077665644531924132781851616512981497679089477354416401465071813644953288645211228375322781964891864039560470993314334617693334307953533220768106740628861633144371047212987454490573185413187022658038983789553589248730689373669198530287873160373682254050039478460746495295866140986834008927094038419812774660571913294813821145623693393225781851734125249076101632785871463629358033334388898451355272693673831577511107393235829247276964969991387103360099625150530266648968119999741078570902215414972739558954863439478719994144106265299063917516198109088648411509211428496815572245515224893992352564750616092809498500822052141112802282426104429012656893325509603911754369016052489663924015070227982787955471609894331636898639983985544319026376523686121397093219689477271316372458536503829001847306907772588745849728555873037008837045627952550389280623181770065821133359885582729330016150922719677632811131193784941500010014119326484550378558346074713995326399251438975089879759305972241586656677396895673769021460685450059492466417808417819210394383294139920467132970266323605783283366659696693324323596381352958756037251227682878109059871301973164313361024344779824537998483577590452044102798605358103601836535497989892023574182129462505146568147820373214575816220196838663395018441594249094846053170717454962348017939662621877782265777902536877081398477657118885503373030148690061549897648160399664445127684009197417792926366018076398019208380578023972221342564706860394913298296446243128460037865446234525415524261526193148371006122341596906757798447431630818046946248482167453372619702216600320514418887058554617965382973680616586595926889242497476942458116812167900237662306435077381013103103531181708640412814447296809349063011022458622210282764022853462531953880437042262940416652123544411286315116616177651952325573303320815250942884562889406542473919879008115647554666168870936654996076463366986406506227716080784024258471660058054830357617020104334337714384306967136892855843441164013054511307062806575379527371810155737208480572894718105240006329155154093804284267527517967778228567621316512318159988254507043019443777467155312356136779835094035167199371466261733602759799615123252092088443801968525671451200364052731808190800905273566579730483154509917400663516007194301164287243637697188731424450573209968226998554091389457432541486907867494555211015781777125441237620504887646245183043172781766029576628627126515340283589338910871173083367200650957074442901054353751242134498970540241837167539546880604234315462479598111695703896099957304756626311155745898723038719637378307114439318309904173930663367933975234805231987678081372669146374321569067370603871077524732455670944080823770788131883623489388899368797243072681233141225813080945277044843709751911146272358871741673779901415663333119929506500043626274797268098766363394331048256113261159117881806220232737289093050205995473463985506880107164993098393599241034287587769377028162191755740408424610082819950395029746207220280867354974030915716773407200211944889107236513667082330469340500924203065483150131882029827141010452337431780273343304384801943734292521364702936577253032320140892521813442233234749086968743332299472930449525127611500951393125518882064222842286679909632225630651707709412650326209979649526778778664818992973181508874718011828130639405666575177737704231789343675354840488539062458072720681007338963242689899929969507234278046516534217745966284452608259053799900746627033605085969220459933041029824100113411827415048241486396955207654008571153136881046227957233429199719540748338433424261385508184755926897393635549586923122707099163029558082904640504480290058461961848700801335922211025757219473401263600936416605939373268586550840232324955045649094213657615753104496658930564572827382249248087089985745696644645117294898003420927987962987328785411547864674934697523803626023960664283644826393836459925621701234856135792215962115393755839021756888694981826082421940883155637637354696045800206292592512345401027726659372297352871416739447871272511691864605766204234299704411760840953650243221727530072503901334139684220063578175672298232000469556900687074942176840363026139945205144867294054213850083127167739923255137549873408582675384282693830304815689776921889330433343193887158215279387128372950441043476785396429358871097178754933965658496206908684337906344977356370245091052935735052121562785515637118059490144561063345794682610005343352458845473653588298864827846892058147517860659861848037159523629138476054352430874625015867503506826685303176342870202339249962153410391675875743413685288766977243118466093115219418268886111607102586576831225923048455816165668704766954915989310771293028800969523417769624824035589458360714962926398774389800024665570193252600327861683093920613660806722899160771788530286558260364950714014379142302792412230594192806459306976523348062581405656990915772781627456686933881638092630940778360279356897107304969504391658568920906662021920205081667185325798347385083893707185487234026362083842970354931537622084792542885471000825299347986679996230523423880546320199531210478053255369311886372869130978641433164308711088977359109910381175704130225217134591926418047771729697510758572575639379197165675497768003237470806146490580209392395883468495164864215207728463480782473056971185847587504642540669408982819599068860713802857303649021476583035505850499929671447063003168864255488475381576259714884221591928411584229243299111586966739268238073644476750687215320048276748731148992938280580509480885364433398021069063621299945875287244241247628416469470161131567913868194293554522075184048110567792961728503098948414151864222068784333864906873916431525180695599549038092265479582695588955029551445837162149828852239848078395858194890639881404550284187280770452017803583159974045685512099244365398253513827481973982715605193256669472423125361751086527230772711789885196600315584983877952596349406679826981480677564487795027570546299685020305278471894017452231929152637342471673641318241428480238400684161739460693918780297563082253693317090222319384812912506584159604863383998539614357805192104968776849731145763815043469515761348560942848637655797550781731705437909421295792296598322472437856208481293361118084750366734216575981716251146646974963836169151273588326349029262817214292447695077739818512198390438914369123991829258701701030506968348978248910152887113131335780494075565124200131270533502638460810134651298907919931294187101465592353481276789613145872610491010687026903945145059673658018217381803312835255629540760137876026936078823258427943138713246279443782673904538588125806245090746782206349105776687610423022741335666144176540663245527267152249716345660470152102366037490198650738072456283761462679232005916793251812955948642155830338812317989128416923432464704987647338990817236701642292423230339416942038845369751940008828529989858394911215580616384251965807434624976916121597146675547512734280132039052737771938209078497602544934495051967446343463433616769384078878773583140399441743507105469878003074214132927393618935693251820369330505228569404223736322778591319486033012422379490432793123219194559924592462106320269164869645167501091114792637421878096877170180420088630291236853964245499418897820316090662517744592502800152117155590562542120535657460208264024747338347548907301868009468055629203112758694386720115139579089421194260576925140771695592792387943535896259790029344035759528674809065749355513263362263732942223206899431341312305328820283269988101240697197954655711005342228868188150751572106985428063825836575724432918965955587638646214950237640636827888169551587252136032514847614808083868547794099295055847596604918858852594679498705117149278809837728741047940086426453807713791247296780710740555924789787036603924500026278876786111596244558885619639981312747339904791317757393823734159084246719689096540142750521079517432702859067151650510591228673622969278354948546205592636129142731183295808381419348990611494212190121976948782038538318450047040547121204189969302441551716503252058476716083580498791086215129919763993193287829973310239623345012210605491473264983593308177257882109093064055491266207303771970788578588622773547483663350473554908079360702411503312036756607976388473639352373090980069482930290624558808805741956073977406870107654248821891738797065090529355117118365267082757305117077129325474914379648995291313964337382945037672738067664541482756945802201269377051182877986117728155016305329931637407857951833163803778402153442020819082933274447865192352999288037563171129164032776811760994322388124382532591337308896227373458064996265822676367716605115515925294050166796260117806461305406548239092551530433053076961237105319544591517755926140979885350162838734809953832700066868766398287217825448712312670037641371730622486034526398781587977864986130775974743074020090369098769687001638776069560231680291060184018663075702910466496168487540094518823865235005633172699138764362049869656156757198083078542624640524356842139468222124223347485934110062637933914537152069852669301742913189461934774353055656696094863294042858382781095980642932767744107008969152549861007794204226420464446876224150522674354439965911691691110849120021267850368423940172009684193430366742657462406437166648845751642897603503320171605581462207864962886388925648834960859259740019295096235438945776554766749855009977793911696145888424277493812109016599887417822896582568741083844682158194426918541122519118222183934523870119386237565778402911456097555178724121215446707534320147513796183543021121706724904674625610917597427115651471169432205615436612659923499122528763039610235001421386245707921617218895996254761189697127522369745583945521782331129246036073771415396578605333503857559011858584854304137509368359159766211006587173801489521188163092811512273761787353765020885694552033701539388751367359510090975221882050766109225438643834567613953263487133249719680182880308879895658341990810175861275637479606159723649821575353251640806233247041289233682858939492332326601627921471669982522040267152404722828236752863039751090849702681383947067474443785896340056145428664891254097895938193375475309315884150638372038087510385210008672176799588193542841129709904519968016961820622646377722511284247634268115163016560473480078914659704763511986644388239352270611738996814955421580325346059981662327279213089899973904505938045271416764782396179684316322557270701326038082695982634744988174070578880209006440724096044269080613444216536786854787214133332386630600388415636414316495994148471332356693138526106980438392906337641994643743557888157991529517893807565812999400169089564220042732080500016401883355988237267785314549837690915162084430860645930683501056117452256075931694725575462871168896164084893570582719038780581478810930999530017298048704917753634007594154712552572964435091424087131454943594608037127592704181129058179436813525951571468471689659162979518342324895454131077012168450234946404676752272510846661495933477401283311732929886063569679898961251907182604064626585011339974701564178121672001875524118342395347527749010116550758126363142614725929650411866511708709502461242218939466215407272721664958141640433261495439146715034321253322688380319976247662640910167746389638224520471340669366304894408423424751286348051018264221992108757578163949889035708479478576190108258300811320865354655102574017372086693977369365132698600814122446218368809746323368801000460370192992029035005574181940310646155233845792983746885350259745870232543128917233343298315208747401045478098695454249014875772438491193163774474568145492256382294732689816006692434648061519013990754468719301387598254708272320450416348409125643563710603413862812612175818594326832939702239283282962500019189538539809970552892265447644009027903296706745721918809179757059240820874768767851070465890867222961386446136248429479748320982721755025906266268772271679723703579141091070468539929637170140565652934445142630531469204508101634201536085730437805751975376827471713656721988361635858234480703596019481021782569503892415551500015872645257598210040847415739910079064882701728572598347396242434417967736246324196971625339197596529009542341591699801154181587208060058075747321172478307037361423536238374091689098001387982964473633309895193137954536937027373618381962855254400768966692399380194933633419407239412710560379203746351128272085355125479697560545042924396394746005902583469614892663867318076832726342989494206948250426403335661313529341740652027332495617686076503478382016734166557988576233947104921805565678032018808063262378130626971335079600757447988857996070881785132967042041522809227343633833921585411845460105606728347969185866460397422053845452018673877224244258359584168776851578872613841986570903788224281351651147525045280121148739072806741874215451202410212276152258695796268077484767268586094488821794755353182710019164397855249102798696578013581161164780329035982755947470409007359716882102718723714269698655021003078050179484614940206360174514859489762823927082162560336823751139806613899373435263251488981053801545821484205800051476849566854216472577622458915386890084676885436636527325918720758345806974727457515037442951136320960539335551546893892841697184289088918923523397314400226828403850917650556201823115110788450102263517007487943728033389105576605101052958363863782266142484157185361919398191589190876189928361248310754958407217973052076842350621207418817919442437102576935977615100889873290016038132088459465603760148752502114070847098863018936571373825058018982233937941854398972294022119133132166902612234102617638098083497658990435248366846235729438180747263237846014638281544202769519584496261925681699373752341842998867910261663364596073573451656536534452894350227657538336201710769187583381632372002458275537727494142427102813271220933430343846409004533431712872799257396093580011019155371157917966422705165294040546878897710413706040998265406704976043317133168400571929434157292043697862084907659895883487606026036447656376337603266755385392149868925770555931508913495118886595480923589231449050768581713799204770277382640806560028698851359304731315572259972232145410975655174132037653839362775925724836873636494952161682509299360492937985161185832514437951016663775883357780318613096139023829933135888397455871071244788877291230637359245470403546223508625067221350784167973547517480221214123729190886578174524143106407483266700022923536851955589682910200546063397835024361084059194494565561043953830494424296084959183805789604785664321959470632089222105627075714000880105616467969497948300970782072469176894660734229856571036934838573389910994239919855962779347773428010166806354977308406817398596006412347023869648276827458111662418572856291940581808783314970297593599960062621083698301327750723952441354018988107686671601819454708980735505473921645543807437995291538391351746286653193269453783378449541414888677104755315180340459223355054182360037119006899246428958385057327915047877018734644599573532105148314584785201009459790455064132031975638407192573448626869226986873116664101276773309348787224836000710418512551522314315120098647189783841098409795178282740922470532493716356897606334652385390078812601938083194137397915093067159714035820963916002403326336257967730957843911590654124523405170257128767396283737822097562789575483965769969776158957249210675276790523624157335011474879963912530692286879297598798908041842690961035015940377736768388017631491018371478998581187449744914550131631457458825316206150165683978299230203652243208589906980307008534983878091532928373175760187491462221847052332926339457953716969687862428425158141122523796962122765878913820336585670553337797637220853578567188996997643963321455669321639572406893074513566168607397694569562750282395465590871191066080425674653033518971852926635413175661899377617075264461235195143144600139819054038119682352356167450478424877934147852817253272142310329538551401509065158961639970311634024862123241688264596988593761144052062644964367440631306539394797162058954905086907155378185374484074036949160869841374736804997663175556438153912998920940583734966193255811734682201130408848864128684901835181388467563109723154520808704219485704237819518624089772492682658191717457393551765042134902912141906978518183968864894364827098010452040571845946089191172232806429390439949405518879880024859044356076104974981179194608126550008924969650960355305510415632191458494260389783165599311397097539104186204267474846933505518062070566676908078564546564400759516713512655260493106241265867957960898105368651468375077706605826366470822139427084401465318905035862827067028816794272714897094125916076724237475192801623638290518176334805621261891618971175279860819709655827314955610567416707252104770686039689208420335840494193042135379022618862485073204499581818350334223744358498680799325571666970007985855568004330096467729831539785305259086707259754488627618461532989376209835019001469175196452478058510882462190604393225863493443550307936260107963791796675686655999819112735758516761043828995661497095583291976372991251879558095025847853652599885933876554637881728661922149330984500621243429330501975505844009728696800102006305721096272479283285333087324707518990738525743435336020425528281517544752763726864186117915682169925582420735564449231753235914150147420061402412678766443534843262698115146699101223045140129595587069415308661629038461185439206544215175958713588816848736464036111477824087844772173819551466960233021549850827908786391196324969140397291512428296516283087386605448371390125968235907810315996407989452366513707716063791380965360075750738466353209147572686207830010980029000379936350973585752525163976945766494316391212282981918085173161477089149562591717748715126964994687030424504112595031760650280094814470021179550703719178803876192122399600790237710903468181523169889839520316321481993405913350218460222287467454296538749905414954240353087778892064996701146054123399602282073838454588223474001668518635892349698104560580773255200453898571129712422256339474585902777389915126923189880221015615320521116747356762259456240814355554243467091639946819891307963971927151687738976082307141300078221012089731224324194478420375261894283845133505136356526304499067596844088228789615694634911593541762343428330112586386323637610220144684867131387816834779502614344007438586146866248365772140138353408934415652799069364073974931657744143754033756887355483263320498579338162628718416503057217955804832820976544568919363537285771673400535085837972290489403689926692634154851266075759229061733477490392198979411532795393112467917317313371454821368665971597956319912449266345559939214787059316326548818583623989499138183943383138308684877830328995202123824454785725956293650407324101673738953515896358585373625799574743268924118590787561728531900933593208872352981918206198074320205059227024302374824178876441338760145519334872184147559410308124839869479736999451578553290690169875689469305114322093922905694774789086796289101615631453945251804272791190481458056546921526347909674069614134174678742976606114785396563848529186123791279515567509902675262753973214728199350128694118154693265922385927701999342207051918203430635348632235979732544955992302304103984234271873612510880707603500694300444338610583988723686980381622581266919234626918060701778677531553384914910281454153983987759443639510566383100034296197718361711393621634998414519837581671410338136019620172577363373968442993084190939162176384000468119021746640387792533459530215344870270706227174084236607982308820454936462087503146262662102811046862164776124705189897826364434270754761175407422154390362775687538015985454007116532122963987258639986759381683614317570614168784621072057514321634549912630859242299092743780758457398787793557780817014301606545897123604860896086577788666188714622322693168106416017552042775482483303376765844073463288376349135551901349209762547995602425175341911410822752198131795340725837214224846019666344785582543439396768507732858792726282643773147649821532022517344274581693373681443744370985747568689506366670352183415984644125792269873697074694448749402476013875182995156113236724604290893876246518759938768346023899201659708480443172498566703818354136592711926889297515339186212185716031336033594856683117865683016560252514858304625713989863734897925608363570659617043817780472667399922967882731186681818394996380538329138008537147441228353722956549124509432950972129222517960752855787990295047755500562883907869334865545546106613888327833095555721313673210553274892000522233680880368250911890856511609185938597103502874408721333409141804421693825997860110841525064864698478851531201939126149786589978615186669516946102731943932261253821106345086128304922509552151067906209373094173730473776114165600011241480180591116749844900640877075089919509043814600077839268778637042680987452480051607355110158845578243092223446318987944765065509782763242411192751958395296703865316741520798344412888453240534245161705908225616187236017488842004491150256197934482761025184241126971700665429981012102989482264657565554633761170856044675632346066969094033247744387274036249072510439619228373326743418356375188740170162981135219562787976693882954865661485542758531033021035475736341830147499561868727646115014133371152242448735576751668867014257443467717542967208111355030735938270778383566712893965669577003367052764748921179856639545783853638993617360007148795667651899928089462148461371992239460649653168695527570431161140857682608360165611633571279379298459382805240402808016010491544937721093187976974133380133843889117482823472178284279884152222281619522282641324795036382002591448240147301846798267879738823832739420668553449486290967446945295861795726424127367764656791849682035781006907942969467045783467953854491151506552991438804019255817515666796700063421974979763960870003639696788135530639620792831098628482289052430020908028485663964559516934814907284579570823833142048763633168856185965911069085192339558413612519940013871077095672894604832447430835150207169581749555151764122009841177499833128213437994698187860521849014626762985186435256716315179058222932339596808848093539254998771063764047599810496617463728071433164204986775115241751846486635206200162513242229421161731584846972805857478819299511461919492409841372564026370864158587117732646215011377793010363353666717916999920918790429681007866151845577172630385582332314611633248538621456931829891428998004068874160662985752668928330468795680176515518196450391316799997392731247646473385518688978308485344679104086377165182744055338094727366011644803353793657046850842589863118127613818976182616704669535931073741062246622800671189111796169342793343076909810387925049194451823853696808594368128094748480314695761343865958198043294742260733567115095728814084509999607904606404335315588787773830850735477593405050345405960229671555728660749768598951027238097932298237433297466513509574415304138983772463509029446036054363734842210012926008701149792438892996727212160860129706989711205526590128271986387809258741867656001186175608733696775574054163456212036423239386340132340597580636757940458296412169163716908471923932806545609083208439738409260061502239354356313740408407480958311421954433365613494685951421350596474171386086466854999140021861479991281490115400214987388854648252839346384029329397529464206665566933879763049624602822403351687245876197757153185173540045161739124478601877921026617264337819581104436390569975501739273836626957233969968662230139052882691263108599317469314338943898672082180495835028864742617055203583122387008114986164215082200066006019318767875240547696247626120651271974959451565949457343995764868403996367391941789357024595602957005710176506081891969128306282581969134979935628360405673764548313206333368652626307746552133953546974994903653575209756830579576619504383055923369410737041365315285991537171790533231064386151395366111109911095564974221291698647663295572733590217400274769995719374638586575801215260179483036907287643971645284674848300490431177298192047433190078707876911036378174738720138208111377122690745539327215639414584900145032462059313178280839939952835656557545567536074686336044125755580149464594780908454987131223526533155179273862494193924831489759126666932117996377712389770349282787143720245953118472499715601313027480514908953042816384020090067031365217202927899723095806396246569070278146599308040970133055904440066627611678893120323248517967591169711112570560220225912899033785070734151689692781657310319063394211604249978752236091161795768573215950587386299548076763314688671959878559801892787347542960448696762174065272999301069680151402581150577435296921630981876731079652226580290908206277719469261944048330046581198829347819907536928105605320320315956947924131044131691797741413863953637537055561317063539349176496562067524801637326738157918776543292759642293966082840005915784134566387060176778257138168952358519508052398746692044544646931686955438142668738815660634096519340068502000955359352753628334237637959193869611819689582124541763862621563824601253286982204909076658326811819910098284450732337734718093434886340632542811425518670297650978614258496488977178266970628205225874636359939823487835939666726061769018330447736643952999331594733846657477827143429101724750258234825501457832027281103051089625938059258350590546040253093598049759004538127392567879642742989804975213292229750195654009518691866977028980990732999950623807537247921362740912475920317145906894032590326884397386997927133237677101680395565594071074471278315996657839800761763156496624219435089296353378237435752001465177238075737203488005565288393612519063245006086493107847493521525800761182240360067166726125452198672074508714370428120483500244963568184156307842265392078385295079989922071647574361615824747344333155486513592488281956107548294300324872062654460490804995614018862088077040125124456525438082125760050456370515423408410212469361042437519693698216830837394829483900610165822612617504349146873684921579982888672010223051270776763082224566532102013479431980464538797410013394481722464721123234021941212157544964806494076018026583652022905585319605568122823603933192088360172815718712631162171475405177147800025784962194101989065739233673470437663685430727785812663108942032145281116529470280805971554476515564899555234232381415548117896091274990234565205314721245795013276414972686860180068454125559403387605684580955153067343673665940955372134249368466816906422172852336795110328568883322222839082268024306363289559476080106318663283693385980196709480347383925279025142670906148030497164384126553995356113600115068071257198660875822670134568076594808180922915559930677502212088841430122196079967836411075498998099834226986038115194867789046659690459412865198081353326145633595770404544762087720847605791885154876266842835650311342206483449423965646649071409916100440343425899658679376416804800646606842938742991033154202327331398882444276316987444217847229655465092784338599384789192177882123242080520102248488361522315924152320436180406886124723235050747871025752450529543731940766771101308931318224289259436383784241984714911631572611672168489661210915370919878444423070749263800885591757085605152065069761578220309281853935613999719405539404229639878324091945719754233629110871062187510966105643654810579970169692383394018244910957929150513095767679373778565571417369719763517696384057964355785596943028744884932177897316963544038905244236755512403593108903217293136498593643443362298017516779901821764508681915868297927433843007877079938703290612898432460495770932271185930008072891722562309059783799636239720915846734211608102695331522934108825068464586424709881466596434277825726312630855609164593101832396171071595967791981242251357369923588018300766132538700223822588127850869145638461481630401831872627228313922510790971289498431665438959540293950989077888426751079808083325068986137058537925540502093014851755743718743438379863085185926320215662266347600319630273484447541152475631085290642587626488976867930491666023227110562408351779274987136294033984674405076196903050993277734326229286472219748120533269375138230983551741967533373639306361847615001126325682974461541533438272396525370168766383081473384171408485720436053536594011939049069513186582490534170731749527327749496377645599148950516116218269709984042098209366912424707030144476224781049401245285925993486258137674893051031025597912884235862654655473362809048437706801573786409309744585034498524719302904906014417086861699886029113710700069454249034387327858423534069051652056994662331987686516201139429585772200996466647591958074633487970685701824671024852682188591240920848642341477066718078915155814547263222208843697570557941217823363643176143000744354967641464955454552248443556182178294390316595601201600091894091682408369606490948910232566987485993192088092895826178906196472929375693563557782919579674431296957072844903455227964439041361046804508825470371036727638917478685645470538360145455287613515396216447182147252195925589212055490516117827053120712905694801873302760638019908742009780956020880841036201054434788437241643189116993555734704551145470862488351650031860008783557976104458186692714854104175299936487766604051525432468056297967070855494878931776508477523028261896062236213138566735079807781414739922430478117877284292101381540724881564604560226882676971976076783518613176193113880370705050211755735287295718985538494769049044913203586420112341463908257100514057226058241246410495957051353164574431343426001765645214328439164774003297496079527889451399168297648279002879759586029206396273160181132850272971838902506554244362211792976268065686949232607541463200407683970544343800541737447194643099875923626202565174867005908771179538439946369764633447297447362263057074508791945959331749021598187793673513611890722300432413864022896607466254502661355224366251712328633661249917466418895243381574887928949293424117999818263358321744880382111249332023183091479259319592628837819288644059789884960792051240968161879817410426780621718566687407195001003500389571070463656393133282687869806350933781381794714493275546892381700695444732720828270934016104592469392727335604431072517825473170232065242449626613750056522408436755457650817957405416004624928705295672694241489482066677061932917610199901870088826894635553603553483753498186090500924618535519494930172518479385172617667327673615980357350698305250540289089201810350412681109660646174332627595023482811414909364355079748177500021079311546181351781134334150958323636938861710446800682096886623544976610657512773689009564741070305679812035367545890744810630575006845857295614291240236989277389454996010297453658388348620809217621436358563611375488073101616666785391031781095189387058915423247871259249769595664924011463347307951446780240474717892632084360815117811987390748504280179408438157924225795497535602954793714347586386329760437210430248939439222009003090557149333375544084085408667270036021909190130575786481630402594501973926149454908115120057979518728525050726845970880723995186908619944010259752023563679305681976317976710154610372655652094935707809690884473314169265665332379313485993331569198962681548069476702634889868598532012697787550438163734587996908750114943030640054434032194851513422447483627692658222268355424376421304569474702651205651501999918971264462291997308780316246561045262096515905220261296305236723110873051439634901679704334764252688050542153103096515492521061336033080394108511929190775988386414465129875891806463967901503818071975760598259529894361320955749536070617175556127897389686749613994015045301288904753387113080588281678130416484731367196460993264782608470772139508981499701347242186353687852848783250547505348018558213778942646390737616053354839973223440034448905777594041399556969904316357104481993278036150733697800579806196379505910794411722868356288952718103080608850979903703536229225423517150252502119045546062199295594509741855760583840447130916105919518089663499476655762842719349778364455136580942967860321546944117494882743203159785536892650320019419872526566382671378533781799421422186372273492300097798406758057058375951369936534817302781987232754878920788067128741923022659271843649686034232018529774110668156513715556175557488810075235781685728704953183455901992118225886331059906125042175568041465293357950053096926778112670785661404492539695538211020749061850019729793655301374178311081708957605069861407837263960465879383021167372953265947173080182430800493236457958401089388248900197718307066810974935527359642974840815986512109622972454596672219934835644320830388954607878884717674493256594981845685896899743548979190077656919028969322147206256870045164507361464796712833240470950878974479871685266175905816685194752311262585745343895131722999607115064916358228038901306580351272962530018298423631372957286507250555656114776769832671902263569596219802136416457304309939246248749531909237024349109659595183517429813158014143956037724823358749493226594020142523311830634396401837007264407823620753024595235674925707963138228293962668841527368593810027321434909501308612083173395068812746749014721516253123470356279425951632792707373889161219818465497220674221824609526929728319924590443252709466008498267407880843856504847577389359352079428543210080309741925716889683853900028734786812333861142531012493730349544892542076196208260253139451015161436727343049219076638244177615607093555144380035605365897032193719516555210718740417996170186741369417503998230279545023127326005817193849744619757052930701824669542418598185175765369333721617978124098706186667425688216441537451004970725190863088134191837035233164096225777687556596919769685173120981794217196685964986530660867618798421465975763906242854380228386560772330639691999631899942112250617653226129267075567772984923159160825475093838052645082243054842831669278309338293790885999287258276592228685226269235347546106784957419603272795314323298013751338303246148745000407642300735262765144565651225675197657746723524640212605614176043866482483053855083338166263461867175536332201642253768394369458971410942068723358680411876801850467238106582242162718043852492085793900017442821880907029986300509981679108971823754813955314570540624354443341489865279240739404655957403173766796639726686659614741727687350088930928676117164222394330160973001268547831173044693200119038883905710191107738186894701057288284326705407391173649980751082707141592710166164185254260204465235041654932909205370991382093528526826285044554495934105486901005688109610199543191564291975640098651018058889280313108001049933226075809355284422812207190248136125407507866309499385156964794767289377466155685670940075970327767791379390371197995686706404368808548560848276651915968432842968279348402064321225663628338704357175187757042460045371295765056638329181572968212721272819723658286808823743367579633542328306688134845672923819913689123802214226800778251702942583488628399704033800087000947437256960135555538479209815016145017276955547234251320994978252905540942635830398293670735125658269194719524080961578065860081949640399754629155277102600329400710045233404969684691213421651260580155831484889838598825471295546410254884495734120677230121514223666764981167424332695664982539499832508636750531259263478409545494376893079956958201174294357308917103031173757394211511121502259373291642820941032255497821597757028478049791766932211319500909611524388440739346525649621681618465238084039501601246596012206343713731892585263652232242498605098429343625466150663411889363407709144950893680881155287273751143811351283261529399838479097160044105239245589512032031723810240056197495807133323796008974885683288318386685802828341454336784653979961773264792228231768887545465629313331470260471365883798474911521261618890474185510751169097719079392412986914020399896285060514965432416508413501647584393698405991956938699204096329502276356053731656945683064804169361776740715408951498308209366507270035444648926694382773416535891256864573838547676085388864872927319803853461454201782784159605959991109764892173773946762508834350475116426486711977974439505728783351276687598126014172689415053539639088408808231032141782019420222618009368129841464397237554261196126822859500517311065002087612731714891513402427943960489752524885332530389273372404917287726237689988897520519597535747956695239080583835324337148487513524658202564947712489099404649131059898067916555984322780734219901845074243897283185036306800163517724798797883351689807754932295587310381009454532047195171781291999818779626838260288325757590998705703386747687106281956314087826785297372315446205890092560266251938129985596050893435230030495851864196975889375410606119652888291470648722859197617637227133958439426053547071861655576812374871808388310055461837540224484566545005083002239778183995975646442122607489551540473033527511066137410484229409235419736037158136786976910644376927540288994538424496733655789185671084016563744501299027334923812390510284594396736122537052682780134441536957885855476896552808231823809545509737529911697708708160778497152027014348523771928093536195678932421779607142027575749201915855435196238833926954954679666300206521006171720410217994016324263374547224982162184855739724572280620130012899599676921695868101551690975989353091703599833755085065944124883412760837878158758458869473780603321357415795327240288225480612272934874302292166875140408726143461925498412820670999511689269977582875008961870355737927530872830103596337871832390957641761812768747241566921498276299532632711922115037825426017658773920128079584665964195853542294559238593871999077920528902472237395112112500303348765830504146813602161975699472927615140348822559940510771796296149265221453293881285356594037838412783545360293705556817443303604291999311071518501945419955700226966640512246745992495594943018621088546324180384787449191428068648520149076782875161917405161354955187901514930846728628485429639347055794659971978168092666141953810457438737597456929852942229092550830773660111311638641695351468157720773511200858680169204278036427399613770397823234183030596191396209048181971682099679750864985603881529182187079508852111905597253780399286089901316122202558501106388898148477234604650449152159644664461236036033515653502247444396814824014345910215050644042584980818560957439490437824394778334330343533169256656310795320403884791738441333446265216850413356924994425518329785652706190670970988253781403748894772198270566085309579503098039768687420080953818922555263368503198828409426919352119308335399894291110682319067011937220769330064644411391143826151740175710207202643095680875411413881761513992255672130826490462090684823220244137789931745808806158018294001210702807628154593334955157533490180567199427195926980836584279165824058059625013362320714316689452642598139869825410129875318929263854833132687372167392684305926118376786599530666202007331167561841693710149486094847809406146413637683008928957344592477164620395576252144401667993279801585169047687618974228001850356053497788061166532286769260075311768184734302689666718145521846376142372977949149239759470204291611214706830016286639403824985045130338612152740418203566000464511202661670780255865100241299649836189578612401537095276401327248816204328879384993963373725741292322791074486026887129174754613217194854497159688689492940066997541098694053115650230178478560154820110240421930704307681420244549629179598603734294572250843857260427715804817604625840728126728514181246946417062450632289163828754258960546392081335815721688573015534861075829036038028750479006186418712154367809626373451736554939996424823158198406090924538984055719357268697301839484733371630211248610867095538595953684084479325540174726553283923052821441423176236288365908311911928600399280527689573542082409151955514371156273495969405752740866516447645823463478342683967908928446231600735841228129044054743264799369153822389340005087183840893833062760560250397203583712274976777250270998385305308525839152245147429929358530987943374781760442524087150240966185778133733348406984510639943624772929507194350650265744424317700668078460938537418636634050678697638227637238547332690366197165841063209162432209535167964542956026583758187624634733554858124577217740193026160438739655881533084502136801159236312148738108822573515077003227494948041142233703570556719060834859565837328952570109176059342208163715488946218693155729959938182132601203879547112516275451391909983167202550114243609320722006601468713390050164763638426113671296301757013718849686664859800130399361252548641982095236236721079119506492842967059181350202376314748564365059081091950518465153136778719137887841300217588896097893416848922717067125160401585830980979851553048852553354000352216346210114716561349613371162502549710558341444416871023074799459635776788799639002600874934166672548489165889344636122481676612863369945404788647849009718662623604772953097514491476662947328960103052867867316238020396006595513999775339361905042870820926266097145287523626503599699497919884193827738519339986303592699844243511295269211117936579654871819227805428969548403874705237009437751318596593233563420502495540799918693778708874515933900134543781304028620572251830247109208718669379942077164521965187758907597098166704918359708388031173263720370359247075363530093088756458419280691090106355162758557981954683137842355935307287638738452704467933561456774908742302995444178535105875269495076641588878832045780100713742424431039961390828814842942346772619596191693759307842250794364077212199062496178488198186849992501966455334207214253157393591937989236442698260373256594786094163040316050142030624097115804198078379748383486119150855774579598289902120225806350959568922617002560035347784659038117128756840751882022925601218293002367081444812179789813787258007737488663736949073934050220682097039705940265974885129801091587772030150204081231519774405523151616977996047989020108247243671033409321316385717711643729590380733881203759111639819530608549178530374218324592982741284800316905859111296186562214510022382597672981813992150455074990082707529666540982677632707101308840613035829972819986446271468471765050353360250837140047100491042248009779333668222916867890320976730405662288239186046812072032712786374671650876069709101942257749824921011451495452751571981957126007085459226109524697620951751622413188090539098301142268090036875187310822917689124806698959186157051100368739591581058142420271046586994098723086352424460673531675820685485345960772571267468904549620730812189302186933599188186120342307444436156576742755642101049520726571453030788428785949192124175709412850502140913333294078996041151511420812160928726310232714347829538074471247000853398245157005936249485774786366222217261954811730301398875177568151680874136173157470843124698258052519681139620345114413765337791742281978907280106355156151877271956839093057376066830697929402217568463445026646731915324836470711133043820174071380838564055225878974300046310462854578102455194551495329382614832108261168090770936800318973972036483956786897643388547608826323800462340051683505841966073696426446288402246751126437563459043413822942336571124585863210658086854644506511893909107986798448120585881193741957840899014367040033229380261775803149665628981838774842011434475913034084568337548031996528624447876126681337286314063594237319789556124643539944746306760778481480085787030910244606371693512832766545414436420626567382239755059651419331816736498216606863750495223210018304973472769503148608158749859374045446572628938468081530646975707770500829222673842074317844691444509941555761719800274683201470405354891425953811638124464416006737475562412948635393973615778140408214427381405503967803966679511451313626448704104012036345427597873437165710580965522635272907865342024493927333104140704179739995250185568669999572873882813674179938192667924767658507726480000052404680827137326990584525251158732422155166890284226739439812639472143037291804895887378779647023321988491624419732096253069155023887239702939335105936581366656908355224329020921769564668058025006380315792261507418933860451737609556413777351465491458997965359224890447084196455891922415361513860079513045319316785893624481585815063499965969429347151914703850375970357875187618161963870400835325304551441246448898389814637322626104153607402348220523169842089056754523287639160184835300566931259270634972424144710309753929917623766288387159882547475350349855260782328178146109892881038973852454109314014017512941824471590095894119695531884971802431639551093861943731033635462544545478980570598725169109221583009197777157537983872155044496812870781564666564544027089597949394672190133580123103554039379491203116921345361743756571495673755561788183102405344982812716878103244117173925700961772853798463729142046995872225556128186295226674947546198320761275073078234985837394667224549368672634523291940698434884290324806847786283174489053889063045621590281569368414190286499456136328029652429900204332358774140866116030828792702933274864432060641572449546224223201709243848526270790966712209065312058475879235343433622783006038081260795782141421400086865911863969199420540590675766567106852958930363001413571527052832030607945140452153207268766933079730346559575714510579357093183475307900289724300572364798977652651431333511649688082968018230478777898464815173636779641537192612094270761308151747876124875941678505136439277955627289299787872032667932934681950100016309437310670317291044805086687042922374146956700693418641985639756555011277577186188144713841648352893293027709438141478635912573657012699081608909163119351478644340796466097705852655508312016905000182639686715757246542292776657524561512763641274825923385404603158750596205613602769150420370413854038607966346098330321995140343366030979006295961626470427430984701312961983531958563743875819150938523202814308067632277924723817998162497351361011805378323393294424034310870398441889835080321510552868179228474234568661508784018037172299840074360085593374856443990422141505851694955707794965562120274533774690558268734955622520435219404974856641886777356466036315294720970565194349128092804096719170736441326627721707331183342568859360740550591983761188895566121068134014474964018864104244874735748121225953763058002266591848169691118718452198204513362149798317759164464798513239627858916098482158098808817911907755378241515563189156188630747244814442388778866611559464366069213046201822887995682354609722020364072991067878125166837492095199275216128198638522106566647313574376956712515847963320223280577964283234596405442364803821634097023751961688614923235644375557455662884054718734876316135809041654746213759208391818673141413624237785381067972401220457859969520350727046601965118782695397264182703003626973173586870099208930343978337923506841889641402280358700459423047073736327667831389013481039323004311343071300763404977708565081644554248405686767597337957488816124075774333934185543731976917407026161711372510285300326585762587911986419388532471732093854780886298357204854052915482077740917191950626902008290783121935608009782924495897445226116718562456341309642197690843332835712828747223826734412161442614567433967105502877924955357691941053530600959881067725480545421994115127681594641274009770279413123968324219035424921891326178365666385295534906596597260288217672489207624494360482603355722548326634687014319414111068576787394836100803928174035741621808242876025194644982805440902492807551567140634198776408151507258488621927719075048605597192902663628190253440561615071664978735591092282508380520345788372016769819785249024413581602578890600136210788503455845603394329664875104247813678458511527948299610734767476278500082221240210063507532345464333960283591264423273423199326284339411158210422581714271331123471055420699430935570358586717279603257706807687681700905321470767331016148109467364792525601771557266304388673916369704023846479556608130268511490557657794040179622011134418142677286797045433535768322640574159759825575684706374603093674626476394283981466496235854225115527932355171461895225137495284032561489994990252681766266571661360078103634665168592879665385081598784466960027598912373822299429355056333979907367879322370235324954836451963825674653357766630040482140548232178637663607124645978928300124004010483937227530721266197682778700118610379832667300932353977997076287532952346296467053085289004613124277949796382428048902172869149968742992494619195294289338053222992371912881529955573059961992440442078088015080229338307807326757429779395145677792117729719439602395746516784428359569196555892134447082963325350904941921380581343702874119492165511935989329638683211720238601482047304326497758161608211770018161376882323260880332122857272921290180697326436598055723622437132031450416404748654894366036469995158868245197418621220805359919715799545772083054488228265355635712193602909138167327052038311113841091252830100293648925649204053308080755879278383308554793736060663566008856633574656450023875860363558129232938260012001793763761465208826288817314825092351998756046431077027304892194416093362829563709531291458350018593735854251639785426865340669879076124957953515906841817883272142579440597708383318953300907270736504012771474127468044871876973737311973921646363188789337979898999167229316239014461240828286295897109047425695847110280433348409607045456285007532527202347764065103631669391698955859252790211416857707733360800891691561990562522830182506407777858696821846114976399857827766575010445583285897606953245518800247400832355421713349198341299770417381265237496970397102368133188114073351692982894772350236397063199993034244122975833856068535390275937248423879348497436479658210103832486268740183644328057663629315964321889363715178636760335327287058149018004895416783764463464549326969599315756094390604419666579555544361028746254260551176405422400009557110111078265417513678102405962091020320007689161216145383738578868277367130167387304587740103241331953783478468352879159290142744243573510028971958236627892028049289546496699424437290043980227514290229509798761619134172543825670814909290790812821903903782152752400832349294803625663326886836071595466033821311807728705992394287065595375554993193053999870879063135459818464486569032228954554575825164025797430541146624540343584169710826889751419779744310879885088122925062705771360424459234354417736229778616619634146506385996694989460891387795654186448904939363942979070801871345587938461697200993942291262546914884916727214580302812202999376909033930392340159287089234413106035665771564469765904110524299685701106957347970919100632970065387780644423619542937990495436237465456679654134616616206750580249457160860855411679943378261114314277295964110286293050697589954487004958939331055089003407560389200230561348796742600036993744160150669668745911608961737426761721293166365749736695162499759625661752461178240564556493207570856960431691542199696212932177169295790593812458546089600452521339814224617327276993443378594942659112116742895978839327418958823163599888093713983576891082049242777312692025070828160642882057419226041083339059966119283535358637450888382613408334305927743035050107310864765938203197120007111087985169553402688767700014287951661845345694563611508216670934013279190523599925198031741803580369939104433103118435093741911268282311908237251112513351848371673019048220878706826973964841929128316236927454338225487342064144707563523529850029718470528701299671697194843286596789386923207364695800753151501309226973608957260093019287899512532494850326217936780457805061101270862349386454971095716621771883815162146160770472780895638447985553635031197009009782757864688872036407718422955328916844419930046825927416709502427794735852101105100248665682833291659325742497042673581564959156523506743228045674435826351698519085264326934625966802158030953369981938902113504167619700636308187990887675021489175476942715371233055110956424098544802460847189677232557689733121697265627352209792754143315749064040726179924869676197214484151166813486897197087916844002577389390258255221035933061940020221128052466077830582995974111973147424879282987514656686517160733917565057038064780187966622959260271171998484082927896584759573103010440618678176602441371994822042680328362856302871364469799273116206256174633107121212579028699835173760444603801318409596868292792654643154784151553722715917156785009455934403067137624651013099753545481235581417510444403760125594974460899364593928994496689400647900114754506093847765214406402273960101881567712076544877618399177022459492976182827182789078165376122763099849561378414473460866018058880115151775536035883330947194712688454638896064898699413466204586088573731759818335291488079580310820238031261877335715071967797346927682245698254050630398278066253451827242039906055281988479954827156814345025920738808527687385224100908633798780811405218121308494580262341208469152155491925624476125153246966104157800156075634552086693251784209783471247687682999938401978834714956325497525846953334798165785256354674535205847220942395484306033899979298321437675588940777010878001291178175917979728196168984225439141502850644710073324027829414709182383973684711870928677004656553042345049233400860022469838182485912468034428396881264879014801951730444674198864015896340418567720600172403967044738035800383009297891329742319928882276942641374228582184939839264805943366196675657397521250944230107255701837292693734899524066162062945384518488901409124720811679141301208809912652468260969545709348104802844940154048404326910811416809439181120581864595644828810257986607868681217781237488468373966125033128718608061214719058135086742053108530889454921675041674232570433465604727581295308881187677422483830950745581692499357353669327279753691626182751980204254262203772357590619070221623686543633590003316589828315999738524657261489008115684067166864253772498953671112204762920893960706357487668107918060102824428028367926604280310191170925500172269536145502447901771818038484141289573483227360129737867475536763138321847839371589438478672963433577064721682371158360139710365816966375115102084299613353232545166384920015424646704080737333477249695119931816779611437086027425714337469156404321657158818569409869520459642532955550262902813944201123833275837371668451721509974683921184063164937178376898896468911354165162571899243878495090509842440001904006840044092497655500447396381532960615515067722792679165600698871151518172572376997198918900999790331832869306165506823518869386008318159559320972935767358031307663615849372180421365053605558355897494680658140452676658350948815692533401115069032133981360534251468317665266970270709937863804236293500130692773844857914331666079750466600732142289969466246204718133689015763752812073488979093714030556599447497505565859728433134397022113020366890896625700883870660948831265836892899922793052175169320325709192399443554877809494810122792913254879795761401307155390736930798810893488042512486523777085618368032799776307607021430927686086426189062468310127712972335867251253096924067480229476547142446036995295793279736148760922838051546305546165075416752240203554309801947792643135621815091654842485268770484601558973326854126816688348314901596493457175059596069141389549368958476142538888223010434526556622431665099775859071319151989143782302920857904435962797519138089652776547794178009038138104908212042442314776828821413098912266631339026749946326675520608242647037451720525745653872740854152259047070975913420278014342298735408220747477603431253443332508227422112296500681464102065076614593821946760127023760501953619257260472116799124225655138332641819053596335004642100168021207656751876270557371512342422787593240906534566765267090192394996434509039101402966593056685144576336736711274511309793825337561335181800767930783473371331437974965526872133940780844826511401784665520665518352957120822443627092758686631396642490537008899749122778545615157707642742958767341219867493430339505628378076194970659104159282309159402608365628901451697447662731817017497365839885050240846571146858142752370476874335005895887145862050296458051617306508275274043079047968992271442845242698008188243497238954936438523810072651321099403036500362508115021040543223548001026055108337916170758445547682920156712826716078006611862156523738476616551025545359791764263442766400528914021968196962178284212899251535049564686805666863131765858386950566244992744974633751884128618605512100070140096018334134287365670148788585455299668791803421413561458137365161377732158969985482620276603895661465602861944082684993966224038995246028227250298746827868258920969424105247583793981820867925256966115964092826585883125885036281875090494084929623491139667783213363829041749146579690812294294253101528663382690888194524451628424152211800403277204193605923431657837712144459179138832263104656252706032445647452934707953937153985559477283024393839035791848069180496909699449248208560064370592773029100139986773577708257403597096641494621810704007068392874264100823580212088218641684351084420944743907930689351865466648898211656254178727603230360380067704405989427132547638312398495032269001097815586365841282260482098006059652941354689461333904095775414687434375910284275636358204618025655316291371899314555141479486369649987348246860970571933599764963993537374441587088388820316421941920205928334042466923118781959776867954538515644833543555346969749534804071904316202688179675029626166545293935735625548123807965998849005834333131161175506663075732607902952836789738517095192236661390565054166932559266136304168759877010177143666753658303897318910057143318621865773434795537776311884472819660065347979422879266220244557435401417180292437964045762203060340677832496803399028366667323555711728999576479054645544378733487181348805146942228406361135111928668020157084679068953450950056620461203828174259802459309901550549489468113098479450564258620256779280062937037658717639043705877716228684902537599271997656765917261059523444742647433573155631485381830570402459712494390454736692577732897586807425538659048906392503296594393657035206977457956224060040322599482575339978295030418333427252317606292280571426964478791570804917452124011209364895141788331008016504751141454812975364636294422282191707458539654913289323925728696084374372908362510923984779792960616571503157142074140063006221801241409622371996240161726563480552539934495359102368024767428869504736136937169015091364567523601541796022928238561210515416146666770723532722282930081685577046311260523400694959178465245892691882609565389870027744384263044797871548995700097060778164679543856755374413586956073210144118127289424825653367122663943879570873473295792490201009751858599902657153661127044080299577581596740268042875005407770559196438644799326039175993292137345613175842923273828420174897407523787755580452621200012853525202544251082504082035981404103827656119237579426475097220759502766774068566333598822941248778514823677393735931392724926655145563940213532985444164435004655164432050923826796771892603240266153592049198010562057209720527831597119500139700323149171034159849451918719876401001236973535576152586019250289929822057317901989629214136070477272655775357219093824893678434348544435981156133755675488018095106672440951761721211244938976942405838569733563811197740059526394216890945802307833885195020019907807363275634480312753896768691726636716196596069202806321638012978535984499795011022518464457588295479170669733870986913140935967165977651984603171037383709809786763413306778817697439419903502072880138041152200645633106560351565919148564873698211208838573964341862873788172787912261895025517271763550112086365516152832907040948874682104532512633090802130286750805659934994443584252613229605355951103811025511262292762769747033815533489743920394776872193092539427820798332636579926823107494073092801778495241083444887651942973088382518167120630922371283778140691386847613247503943438533642075103408490872633937678688105227623833885810968334376296433658723991912888577054979572931409067653047145736928127653337660779197434587989263222254399763431087348116238433369701862316474694941406411136662203065600057574624802396518009145780035396183997377951106746492246989118752735129650245538556888195625294098557033974578031187790122379681459468483900673213056560953230063109120094942622686574672510962326384748105508724652870231659176623192601332361849892432065659217164130029976697441188448929941235776182068537737503999458102195152548691483665126746421881061055995870392592998181775477183570899404319175208306006722645928553712163484980841325724965759948251969671522496631921599534289285422136845192909711550963252444105623735695830052776524094850016831932902899232911257030530180159012780447901305401234265250556253541033561737527544035216416395997267946366820591838323298223992694951566087888922138110876915458442843218718364612213025672092730806997278025260877271179480512118496989019621239686734902131405039037368790083227713622787014969407058072674490809127091574478665878494498555496502481327710776762198153337705689378722547862116551019988660114756864288067041800237578617299103352617168942606869931039502502694742533810995820489116502896551246073336851244572383273055386428886642318364648426924193835831166686442788674882092521837300391400656188421864208977648739954618420545550384441808365275550358612818539851251694264180430213029584126327598153844880900362016215000707827736292121752614525862625087852566914057309105011540558321633402692917074357152120605673003896436688508820642360200671502204365933544561324773886747050397071936142722341558987602609779832548209941922958451570584423490181035208662141823284234579559034650314883368636381116320740259021989714555335909850031580204698791884898520116902002744374440032217694789046258772180166493096392284462943273972800749017230112150033617819613543054125416045170688477801454222577784138150705827016174904736179790097980122143714624598351083164408086591030751813208175844481601595724279042396888273145821283300607881930582562779831606185175726825176092207944221959465617398358883043164135270277005856121447494626717072432476353517888865107112453083330291416104721746360608831136175524931644546491276286027728975922589150074953533158802484049832390012099935377800752437171304682660888655194998527401213980301535095983859567162484345402715250880189003261394160503760332795767576456045162145592113255420980117293248363267118434637683512913901699919695800294902098505863519661312456385462661900314241648801808235755454840962610295465878810529720742917140815024928727326168233629888325347115273697686577027347769270840217602032294953564452674265388431792423985723005188495817620350817416048336234186837799651451329500628770191874826662509088364988389471572742365775876967517822412153992379244122809859227218680703354751320191437435270337735279579833718598707370134937251417421659600062736544706937648819697980729339626097595398314057690480382327106445573292662429838621661711173984502795347154353137777350754006339342017772042285533140673552642535313880311959029674274108648980840535487592052898136537983755865377718698688700086812267810883975460843250001209826482784966303056073174633590447789178212573520829339313173381304791692174697643164216387149469929982335787873640252616253351456301272483536679302022120423894523434957347166823343847814083872092135126870253526232009323881527118332325070228086088455124596775011879013715572878020681258401069323212364562870238428559430122388192352647986775669607804965528845458935689464065863320372073698385652393114006527734572898366100129721871083441986110926973311743003569536046072210791811148277568082494293928993113700824725243234803375843070224368109330475920547016196119035307537524731689468193347993164394582451523609595262128191671890317362407539775177099040525299283320857355559285606333196049487198118944528978842579598899112545328497478642118688796222892844516465702122267650273804554853193938212509536081391231254933867712442447125517094596724129054986558964871041472172907835981529336946391052358042379509251377510885830467970673668387380893882829679791807399555419362936686219468245409119859100361144460887990048020390766641581232867440009545021337797107945632830978798629727689437674168580205092074645208727496044434574297925040927230366317928123501658021979694185556601393571160751862121473943334184157834068179422141042205529219891976772780469073473956702515237467492902834777033293734170283031437515750614329224242173197353979907682378272363707691412285359442834483909470787964509149680180008276449208580713395679259401111242873044284137009619220125339113057308485833949295763524697806345353279288418615346242505278888637253715533484853761662682924908390744748694862601929689957299060417606445099962110050868923518767827910198142391145721719752556055397439771553726821403814441726733571578873775847048450839451380825671331611422585641588441590519865329934457953115747846779318765461016706265614733033783132936961470204416380634006490332474266477451636343404738408210264499255594727960222276912063500042402710705316233105073025265232803518747714310675265693302483680772938904215790250972429741375416810200089199470397823665332832277056141960723375264426072628579760149395946748981900535642486789033368067355413223477985127335486984244341737634740262783998946586894692651575926315369748537447771073077192315931420020456448416887036945281708698974144164985988179147768902105680526878876595977880023890575126866883095457764126375867320437796115074234249959022141311433217780500701456105509192385332106107843940663379091109948882460155333021466692719463199988850229640791512509771850687172260880797070073677669840000076591578391468916947445702653539966010982484471253474287100046678894073364717992771842109640927813487471518134915988256401568846558423570441472199800363270581829758894853300595025059503656697558774211534637501154583814260279496280197153947351271544331405687955806631007647942814223276542509632639141298784562493815422587251530807467936308319147642494821853877366494999009835815055391585389561818803218472858210132192197624101135832244629077216736353558931457653267333263748592051414297380905036026699505249651666458469376548579575587779711272348814198511087822070135308713604212480858119245393330388402496147703988108359202459438155624180475279438251799753926015368873134177456106109718137191094035490990948494219058587338247989670975075686782709937356419374325201242319169387319530311043236062061234338833830935506780320624633545220925600498349062540247872515175706216177087408796187511395328842954559373735268289876166373103391539823060751043203557351007064191658637102841631988768923099608924126437550486549482015867901742679159969896593079615439217906111900683377383086491863415677096640647101953705733782942230687448670452244082807073712006155904105263792459453135974167891742371966843523453173437935313662609689076593350098070843351446246613538963828370439151208715107453365555074591125453792471548586625833476319032681721635314140992768730201374004109909144036634349251128501396006184185747177268778777804349605218536911398507047998746106159013861416821665559179671138307889858982190401802747022725203879152868855593588809506333728288841186877114549293608598480957057881270650921912055889498223953668605083247528609974813622315212573084583050660246877002161661580494038664233761538022752417806838886630072781755343322383790481066760924619097009505447733414226541002678349512697074458505299029489122118139076279805531773735741160971811939243423190554986563922949425510434839889706080531180689145670751981417843949093750746084349323820320135704004063777967732567238077485809742885462603608154148446556908969764755471818981391926321422245903210549394419679270745639732833180662222121925736133812569613147583647228520570689031163906336085137889217106995922104009592637344925222076371808941100557552601101649717886722250148872642058213184625211625008193141642239688903048665993060092768737899880181569505865707242807374862765627581698929972699259085600076580938090363322236643572421283088928441050547803685852066753677445397478623590816774394499387915608013501382617215577657237387618808063630031898883879195908238143750775855675941654649894459009701460420508111652900977573749393440093253908784440295895898269479073070490822521779942540275260812113440492584740509287428941905399040629127848434418851988295065221117672110347935893713719783807013854895670753726181035098106684118057548614974488341865625354902698149274293062138602339500238306389423980250435719474668039255840844516381417232988767282937160469568458509658146494652906322229833408379131695951674248328056440606296154728472476934328497276221419821587231903240302486775228091374818484632639636189224974138314570620054246926720199518075456050838661616898385089660518456869848655689005383955381213598193303473061100777725421033285887265256653189605072747754559058633360353751707072955878210104713003613257824834933407636271602906459174897411948233568697654515862336293729366634179750871596699722727208879162958548257519734161645967848556537182787422428490801209277668139356321231005987014293816942809557003550099610163176329042432683450308366221240412661721545808521110567445385835547737290839787498365858142490751474278259235018279007860895630196009517102197573039365058910251021548918054540327035988448641626257854842194927750538743867882731072680661020604656266506579706501532439526599310640041712437771924912213939529732666464130574654114811846180430106689901290558649627312040914160067778527941597619640867358901915450033247317687745987793902212091552666411307118701208950123742852711661681896230427567996312523038663903582302195618870049678920011778613743707572316434042352271733047935303878898451970635638170279430970107821690826767535243456844839221241710415538121523450726706354566884633821370836086395804293646145595802910686598480985583787445174419616602586729918456636010617801034883066747000538917752057110517378260274656583670063239858495550209751604654895159687180771147927205241500334835930792902411665316724207014581598275698576170818670241065937855295225581454242033567672521434841100950850678187314567877474039679553177489056190826223263030065590662050051243080491750803750152187904457754175622210646420658255789886447033351116576200387591300234978830635172850377742134715458741476771185305673357917487511438865693750867808410044767373635571867996393603947206484970109943757788440483786825059571504663180097825016452624340674318724171436290727977595218990833191176129615903439976375457083982727609907865344826580453232032898684023524241137942797952221859191918520987083561690569699679077932955508695451700090058034964231635553412274361215957224107950285162330270771910865981190720664807727494089743979094839325515068697816833908704807568880760043879985763337730692446039384442339297511066661580015283051478296761702460548643503670363619301137356256179378444306152887896067951002742652498572579555395477755224817720222225202885678185986207587733546595167400090390099981371488656303348212952371756752392918160483004865397761094055477589104651215979977120274330621641718695395413209643873237550550670119384734445186303780067177632107533882462146911976566402376371357615258298803576936591897315362961883084577145662630947491717201402238313370822704504607689844520427113511899984423173706140115109375302762572102460026266591617930842035712658639580699414564610000817949774526320678212292574824602144359547966658136121444419977044809528127866547449240157400487248550500740801882851854968467910115610209619833630749349127896555174517232345602372224298663433066997816116122931796652490079914857259532428323333766994800853969835427179184532225655054364122884622436546004417164946040601600189169410569383370288448687347359826966276659287450214281534815244705355941947796754350125908632309131231345622808342594897724683105847150490897237483766429427171257306480516800855218412237130743863798468107299468856034046433984649696930148614576975623174448889749985010614558254720585626429164803408313453303339360971067414189311705631615035290695466253609883019143311270612736022355007577304868325366390378864803798146006235080185658243938316262951507549371101173169756663233127377794651181964628456108405158538719928400740086572108795563905493448832368669020877781199569608868044858482510162478682672339016936545857869010820679570673603258770023071552688883062848493419294984797346006051820461887862811501583171880035053007437440005383086359398836232915168822078042896041287021733165618863040440956721524202313605786174234830282677229755376055795700745224223448648500846023191070405968314734003550840597645561403262185269501266754242932852412082670547377777498141671825761794052372625461150389400660476466262772732217615411903441050165437149961888771407953841587930118589345597944484709276158478056529482904323932826358171908625099193781545292196716139068179834721303966109805566335639698982989118107574094588821998061260107668687824470107716873794848462828995330352810617219805462214798360244276381198838618317083215778964326279284411167427911816901405891938989684626276549954424512874888926208344998392042768537890316488977456139408393924341048350655007839428846409832622274239852796943397566782062815354983203352003700517039756833004783145329477596716531852766748771227402328627011386264952619338872427273498859468078438171070499098254653497208907638772217040783399572661676616869819940767940131357356613670733237181298734582547959741973186564603622428710548906117735630464126135909095887718501577505020015253569263221691621024630042591864849594922161230782101000153958895074906547892802120459199494144253874389188364635120918695886230484282470508943949880712905658899387781835931139918853960763288171313468024359606777468145972613241119996582932380966656255291919246406837636971090804284904297413624734964296104835700645221587523835284263823725574197003463685120247916523429929506489109227773815812647164521279501233389742096625331182115779523814475065143278132085431673049575709138619754267873349124878056822735511808428523483717538376097323880103971822937728871640630178732534357922632114313379328776014934819503195233568985736594853183917969128959103181183229826702170293669588439948740299555414668446234581625698593058555445972277973626671425225524221815649953598883176509127417406906700465979494155623327586191082497731557317127582591937905772020946473444580659367845360733870456017511115045640540306346284629597285396477838120509135952777528334480898481096994590029798778626550098037912247830122853802846545928375160210583794933250787787466610194045963140535263721175706654222958119117225056907114057023375758303065955700477172892805937313641783081650196864165101605119931598920692752834466343497131232289584133859188183277497820724421512040513154611314280419415800247125127845634959241655425995811540849726549433902895146568284001834483876154584663161658198964381945678194741598350994662633703840000569092540115466094984769580721766637935587686604359483504671508673874052567905877995301343569080240783862888189096501085455949734275642968252641550982700265388759198745063939447727008509054147683150084364544571733132396302664119915355607087782827038927365718828297172449909649352444088676356505407587716758044932618165357042927325047430638414039563856725157831833142991524127178230065822802409279226778917762239828013488163649267895506620187266920372879060786112356321282538780873337666755227709437842714195833512572364456198916095596899247815710164430288134912737547443655379985114655378850500052490971824855538688556773441410063521044221899481372321674267508928748899212052820211466013724204652904192952911794444126283950778163329346974222543758862330402498548647722182771779662733933185465004154091489397340275544380877801375650233115352767553618255354156306398956999048911763566796433078318489564140748405151572684177346400944594152563344777497027006155567796988584573921055942688962083534624606071477721236069244612778909230787211095750553565138464374518732142670999349904504650858955092220094207240750329224433402063417961565527821722804213148835442074996677194551038206046715977110186934303312524581107230890583243673432110588314029756758849710727322113732391597810049163974618248534636371391860550113782018008732662458209667966810926055311844331043230778359948130645803241366469130639558742366628251477647042430540551414153919134511175042546623457564973904894349892811131303101067902857297114599327350887693132861156178095464293239536866226549626277774700791145656238911232639922981310229520312333151787371887077074083970090597753022657809982799348335739554310271825007025320620233758934002373368999767552543760684203041153028471478301588863783910448226668124595205788557806547044163325038833203406477414254994968385589531822673471070906372015861109358668224453769875558977053542138060993704398828136827640670188561435865671579285543990002404478082597176146445501047943785596419351731256684333071504170982467255938388690322894508667259998461342384173311443120498915467017245641238367431538862495277604222136159363720972742724466648477620722952528229840406153843534233187206797946741236009211985371730576192949285224040793923700734779748083099927384409352840456723376568550940572102885046259408438564393535405361267880508549236717311552543688077338641598135056298892118980354944310897921945941225170070178922045912807955507625671447946864274878409748651282358687802788791186506432993151941933800742272219881013207029736092240557453308489005519251768526961431829612126102177508882402653348483699518014588882769968478699782680468767579335143718752353721914367971329051440411965306823759790665664317868393822602801690723236574616503264515798341032727656377924152497323803214754309356477798636075271107405869550295464078325557124668318461596443151104291645809675236985929705259877206124837356245545209355647746588081466853859026524481435502863190756692386331675264824249928424447404354913320552030793756296648991557759111449920656794645977242630168115926099105905739832249596390300608227134326590299733866781438051753893658585244011529116446785602088434557278623308544456010447052076945250269679864120526088766763475633210115451723695863899714058776300371228400015511935734467386313770861928047801283130975855774176807521495636473021473350797696673929971055691742910281417434294986164494402922467781416279263822545524369027372692421726817472246346879681368450331503393960411948951189288854236107239458332317485174380422475959984393286735696010895157275753051017197163516807118350470554178502478818292190832255394366215193047948961885430464327981797449242832783294601078491296219156815016618283051172699895925206444998853630145342041739513795797460737506493977016010544606311565999809893162367139416717288378650963508841839654820176515480115520764992875543949587388981719330243451300751019889405449799304886681697946779853454305070578965745343881087459139509851807429794782896611099030486990717726762276651765668555548895955181569665707801375526678029922219982009094890661791876217062128341464813547641770843885371782740381300827983265879194272905283211710905272960602296543488783557815156275320354459833445044186650382796755296691010344364978437232588615182157389170320637696296128355023382820248860908029620087342752475600671012884353517711897011781783539092948353539053378817709110217750283930495796205951285060684414390672415032455965449137031033155183438571121321897573330490093179766854968820863704545154449905774398115718811119688331197122354123907683039760845558517282326037003413555863116865920156969448586303428941352501757382782047978933672008019367398176852478517182669692808766080644919530389672903165112813454677790798851321211449763760302898140121565059521103758252262131722490130897848473840934383176549507525916110206052666562754034612055199658044075354551644571269508944051604065546666735524503813511383428659450214709620857124303675841231180463279255594509440189423013618592243529331861712159076390491298853116051034509495387667549754835793513424831450367008997913173052088022084724594676254423458250701806737912245971489274980904254649240699280082810221193307665250629955950100320969646354732466446454244821756995717538713577761574927069335715404440238091347999423515079552382633324092378634009402528596225607205144494329175046429781417765524883561818476526444431336783451146026160420932596121388300586647847303661026718024866915462874573567908263364503154633846013544976467622572857674147712268459176985291598936573020733967180277587007829402618086311265846381054770636439860666264721175633511023323165840769785437001780002264924172658733765024665331016092155358205422713884937183166771927042134326969122718978909439233893725639705301878903976673178217199788710952268146999558056820630999009542841846911524200665225275446704052506043441998911365651569431885399500121150150559670345635765064317117339338533207569805359381151393089686813533743000736034548378800798536901448430009885409589404130438574339640116836795147197936715611598974795019041396927397415892026299598907800453454461260603874968450669710580274704887990539540694121308406957212168095384967084032272001979467030131528236766473435007820877867149054850765252725519034184489608304051722990472450379881138274142473613685685909951035739452747799944801021495437229009504534068207270911166882649073050533076437049097908043173879634400710693749189880517239225196312736293476054175218116278064608542266657914297189506981533827550994453087782163893387225367398491512389984166011824494891477183990662384374610215454002297123971851184504392766847608801475391985810380711334393199653002992865933008512869589523075093400634619303587723425682562854690282477974929318835742734467891850258397250413984346156020137454451581802634676365110454155251878254148502580472594523874280485746928919134998674007544518156327938490440186874473468658150323595129974138658230608268398970843920747951493468481162692001786463223557065646120372131681886120488300109204841464165168470438411080074112179470558193797076520057961026029606040441052083614563018356151560080225871125726416569638174851012415196720670961167084263866468983695102429254256064475267969599711052202351244012234399398566145290288419222390655033832672850067012939275185405747672082198897966282074756521227841729278621867651221332990569366138398687829101173002747439441604277898887991040157674861159549070764636389769035887219054079814136053998866333338579548698829612227294753015784872540803696247372888015159808283956564065596142074263348110713911208755446396086382745746655901087460893927606172288225247124611419105281073566724174367828972542052837652332367499140631954028511170575396453387273782205557763090574651765050378510560943995512330295548502210148493269289548608362405671657284705328647281128890149500496465690251183129924526913090818608867271991295850580701998597015175120685186992141030862762532330952813267031586279547887292520819596597218152448322496753163690446006277162763838579039817494671216917631957470698139563889158892689537302632842691829162199699440394863863075581800712841297972626757481347642795129892863606068108262911586307955802018519529402998473215508462937586114333732880767387701046942337576713440268107616032403379013603471091403239707290005694632892198203423750428150138553001439457394137028059653830349527454904765708611201105436350076341739799230580785408908838143082750613603665831192742482971415950713566383429251071282802155850218997633958903174110585550563115272419172275289247597205031385144597518991382835097451077656795650494843069987192885845301127174107877618618831423465917955301574505873696068049965934826344349370627281595656388130970805190128455244983467851394665221125613438203633624465989198879007837631289701483993295950299157640841094018918942099022772957436279432083314119011742863231043923909357561269137073117141196346982424651310851214799749176423089495877400167571275656822348732181162675455862893964371120702449935766964814632332716634153611155049098813714387490757739172687766337162199576473217568652256563610994528660471411925493698758729417158221252024140567396697234308548576581037453759261872123108115098045435820438856001279631223804439093396743932024524702349140378233230709849406624626556467849741306857895012960692807098596881339557949476067978109333950865443542144285523174768398152583446009319761755083054959925805301096855959877569342898550996406723142366180815909129512108465274066792422729512609773721468666988030080278500909576174053744057311378230855832843390234907351796852663845586939555826602763006063126797326216819873269851157613605766365537601131511308219577097540280622277304003304921348044843189762961033842939484055242650699077022199794108098360891475754348204086282352769784398443476309740504462408243212171413839653136819248973317835989587988079942347838430744796778721642926096797413844376201913860574339900406494862926826725705571077052536991461011870674732819934192439234898961170217450207179830353916889037410996847897300420572088929978309728420361588940440652922043350297903659348770249175600226645052761559761203575804815349955288949120877079056159986155032220024378442137756068207141719029537160461443849871574452301988300951724189149477169952608374008679655314257805101590801126544614011696001922578014608667615115280920931860198053335919360258297873520319913723893572307914975912666327516191779515552188409710258466459181910938633921379108837605722681438323697570820068033379515178691817349816282453292452980588477509120733847217181878705212198442462305577261478761773273499818015695584142897104036598246164421486568351803006084554916755658718585504971764584086368882270732863871628989956537990995928647204939501017915806595248339174175821519857601182962830532330088949210677844492179263901115076535526183211486502404165125679401401749197876602935830675458886956586629849130250146228832330727157487829566848092300079414821431531752964536886936359992380754716370278444027845703312458251664456517880019325294946642386848778442461814048323854540004923310475883914450059044355721713246321793788166442637074240830495914672682753318112613734080731181975684892945492096003674202814417131967917803756622685124369241627940887715857668552420589567402433927260089592776541093136674320068947983139438711864799761080503177813693187754730682387623750519749488447542065678678188776997023163580157008499982805927671785098566483478996894732218424766551742068907486148702356765343338279224712971965614182481037867459092352436297558566889059707410508518725437256928296023487697046115890244821055440285226721005025037711781988464541113446430861879458744934780935777833249096412131806610341520039653051885400671407516399723272818156083137390073045376486386092160555851381539628003144228884425733332449991364300329656076363792934127190543705952909700489696036740013548986893710977778053999561908248510212270809476824823592428610658237669721023280643193082913733196599802923318311739841048471746381405556905689331072032805564936124051857184200119202334960884019238922182799328712171015661608173907634308382300527450750410847650371889574293277715381666531024614969820198547799584443578444850491165201862851627730960750368668401677675306983479257355706453723580782667929739063871638801513019265967179925850000283680331823405788709793355912640206893314695698922249648510745810685683648534493626135946238060332290632320328088201731576512350563023547240584546893028468930401579842351893771333582646743314267368420167425538506297520354250846473932872929369226821085888198028888180911351647244338104142545668781381626950706354120139338921730311091710888971947271714936184433562660061645076060772976895168134120091971785403990549045297458610102117975248381044923910577383799951113660910609563763206141366267416507332900931036749489735688255610057111035557027050472604723402475275477686527857525532672158524656192685333110136233103449906062819816294720069073677158853250622225683845210894120371362543416593135396642993672481200816329914212055093025255774971639393537194187789758844234502064317370762121351414858587004838528038106711055728169088845652479002895479427044682240954179511758821539373702988392557259503327237937959074751712213943206621789946143380352546773219587397687484869401623410129821831541036712390606714334101263401019400641330541579680220757765326403993646108858354121056652768459131407733988579799606937684042520354525977917519687599609144209487041031490948729416999763462008489166219385049627664371310625089459668732416329376690380784858557421039516222509601468947067619942480702574092662624201174563693325686094821897574079405482392581060000537355270370156711252744844801907864618851719326115031215609471210755725506012505134654004734288133765731746910040047885232295161112651321177629130113641701389496164818261142611292480859652873560141700032478123093806345149561417343655491798164316128113439455540788449200743204121114672929738900977589188140758364190896242932752287117845871472487307001114360712592912419215061646679392642643596250348543266857183103690999104505743927457047605799697050486045542971535415121311884533285352330604002026004104909821093648867823594686494197970882608374276673669801627346470708900624127497841549414866699432736937350879028935114195106392377251160208099015538810845137033905043920300011867770591811207500855972125296892223806019447956990801758759786929675951219948185492336537804159783664322900902847371114350169280069919799612993937578221860828110564527742165447322889920260702768370593052775786650329783792814570962452933632206866011063256639144252317767394032612423787165284955800703749084701418487226094831012073973574148138185617291835524337690738760628505305266972704669228984559371979488845183001636222784279162308245804443165899734594006409969394188428416153680016590063748656321256136055080440813020412711537674334064361865549927876467451143277935930704422149732938771634180383503127789408485522230694923072543759171159251049555973159404292433689574724214022466725648837515852145921870068793523455850093467188005819858068732870481630796369144370573684416176458910714083616875573397190111545403912440902679829206545486312199082874127876020933520540911279320208954392486515353558879696347701433252122557690290543729285943904188199545175139097987728812975640285888975574361501111868338407145560936733998877858357703800202076218654781856502396526015471154751550011781667658879993988922640306039037552761477682640643847682916223114248512609711414878493206720130023449694464883069849875137511917288492784663866229643221890670941369462545481066688562137876880688914295039654718532830685517493931334765447688773037260245188210586056151740217926000985058829076533418642502349948201172447293589053191736547885647462469192409725093052806762251103393614442163788045936623995789365210588753388640856108660997476152588828925383016785112582914524870980827827972852374604681092655982000029802279870498468467089352276005367688069723819062241677833429038157705971920857071631362835990572416445018046628590844261627208879439354036804084829903604634924148858962512185338745446335022076892004833090294763289030104707221030743502481211383626897053374225817498297909883609607463318761750675588418382561964018701828949879099258763666744416333184976127114971722018632134044330875314662643835159973541896710056851556188272185110811251344916169504809627708142362756573277494558943965326113473765097561975868575819355487398564191232074867032976323018203855496628775883913273635690284401603311591469075164408462961585033417621439711889256467264348474385822712755036728035159679677870558850851417772258262469367940203277571472646987253830227645358609885486779911413731204558942476577967584762872335696247787254159423255868100691117069839157400066903721588172550094992228946431409711007708165826583189386993208429678077697746106108679487410444514275211404927354414764946242803506882873358581350089828558118978546834948723979101588571582467272805555602963422618847148944814653147014454700709019205655083019935706157792422592201940631434147267073784335277347235762850033667463491485638755572960771557422069596688768601542865156690446675820570334734465188386320506436834172177163218896345895121996564760950728460486242916767852437343838570552604561030807583581746093362238276380690702374262200844280376038813803586852389736452372425768013562596641427592566235914881554659047608127395639921771906780721324683694295300583552663973811476065478722784785560963325414535258248766969681076083329309886845716594225877973055836771161086156936069877325007053352201534774393934833189034275085921962271977232108860456022124558981914342883945191300958897113213705768755479661312593868320669251480855987386887253559997797377428236649938919745336663875433618221721299914068267158819685534795587654702998317979835095559914965509222478332492797085691920889052484543466261778932070949875538066492521044289335404218187787118143535536180263690037381073731210367510733604074919130239716771041713446167069799746605542699593293642935639156335125539581413294995879696703366072727615971049725814073837352762720792154796283940074131064157600820917790495810360020463141845633367693153788026074067786373852129686800299055148988816146311342624180066320812785778202630966121275983651387066444597918576233011708622725563875925840446514761531625706900121371683252763088395624789441543785055493140904577255128888905774139442800493200739777377991460486566970861135468812632178350676476985785014691057456446478017373581494469297252796359515345977813734019635908829023126778249599335057568335590179651680731918444186311963984501817725400376533994559537939653464409065968154900734685471446109841976648847739110486432521459705483599074322770048582693654245404502039337037248581894502124526373324652825807511340279891063023676052999760643961108960949447729552351197158675841875241400941150829643424576970387226139329964961004547955352732572120117362355682867158173242605359218504152239379778351755636256862472848030132023064124418740195100158956326621206939601093245002506600142669549791804849854873320932382934890152038563325825170022974241037908828234250845241788178755732497228661649562163794149680762604007811720820374185789844859504540144891576366366099932556689103418436312658815009414046069540789468828194342219696772271936384590865340159904557728370760665461340544792100899226132365107602032378467344204825647892519064566484247181441089698134743182513591298772930348544722731465505795418325033183084888025951909276072408152629054743978299114927064925508995793704136609685402404061334817350737144617470033331796327657357501352635238580003869745319376933154634045646563088978092758572246446592323794402152999544627735177449592373163624759850123446435599608601289551896576480751528351687712825001124713402706574659407398778696133617014178423253293782333551841338400722043231310092430328527988672794104795831185373384702797042973155703708807012897264725242663111787115655296318221344101102960448584344463138289263679852159188100298442830270651699508174217077210009393568377396504534830532180294764348238833744660063402494592897832520247295772688559262660096990968390921908519316978134858218176326206409794918083287360888691719688246862585715119900320037760904655972347577832650942790017275342888676495122548380531937212686277890058005661225545732490827091537021622697111047760128067947285091154904038197249395551548812564009216911302930140897493744643604512956395600711783732914369822465399487875457343024358130360807422383677266067598348631616660447539662530920216337159646139346677656934965701418383629943639365944501342334000756403512745944231841565381720732859176070277886699275667215799790406897663510604804890318692460034908945390167122800485849796920211348659409897907915432294399714946284496503171146731672206467125687936773779441283729252041494652651804946929698285638094228756167081645020080429469375946088784125237984449301075497929148977402323356310231992061674979298477663523666732982464252460963560628767362365899208284758652249462064742442551201490280415307662232491130127461390764731470734577512888118824293451590978206150116682342644753574770782887306848366051968284996028975447992213467199778261986035710258100488247237636670546708402392903877318584944064878152179162745080087756512846018274116765031552296926457541465554608619157638464776571509347857188723285319974800900966047789820927617283459720144369639926567647727487319998098549199931638386600069164577404349391959435012539915430156744022824121689471149020192602949103847024850653038537854119876456367290721625925439955418160653391556221933075613239375585823197160241603804052944827238031192645223025000593585154887294974146054980512848767924636209078417597993436763276903730698769846859401403681834782024547980182827450877357019946485456123709442800722927551450539921993832386911935432746779567339116589103028587891706832107617110836381484706674852966856399351401459813787240782392828252047118897713561639086213229390401130874959316035464825449507743204805251750658257728625210111764047031462294575499307225321594106511089899351675737517216748314449033716771489801403887613631413424475638060672595907797312000463160206753965533458564488676940416862064003088363440488699398189741941070004438759750851985391513909755472870648419569875663848727359552042702892026616345934466271275432591764405241552308624660103924269448825705628426118454685596552895611225595787142221812892917021305725351302677671107712034545381521254400303131313549148915518100503931089856586727319874345665146291162449683478240232210116348660373605460449483678888127194726513673006380818476974416661299344733827622715926184308647538797647708310543887539839274276440596959168923118866836465321086531150066997756605720104093094564366343826405185210639622492808176126179495039494900678568921545947328935500135610007659435967813522672796335681597206063251140309771669278709140438226426736457158891165071612123795561300074474884395195086721380348639015558219345281761880189876860536763910657473750899067253010826866138318020308203901162496185812959708225025775174659455299830185037673966076485055067422780895438099389524549435254489594258374702548707421105487539576032424699998028515781994920142687556872489043844412117872559041871615133051692030969760704799412986101837897740141344076989541841456567459753176138937573030583154069114732158243029157335151299681981560057528684808944294153932004710804666085415431565626696766256491216073709871850834143175111717680144603195000313869275631365672825006191614650876088596426779345117859223455179079621699603921817428547660347412540540181241812059854265876114096659900855538175311020793283647691895129037737528299253928263480927571086835639886238467651382634682195096785017463682189425434670648764652502627946689372283066317306619768759570474176967230891408887302612442631699293395170905743466496617534813779985945948269419999679187411791614710900415379514894115488044528990050284439252330101174261065125912227034929792826984815275813357840861042155342712003621283897326520779504341150180532629160331105315333796038450833392530456039251677364184155255426074703794216564476860685167744669768222333338362597386588336646068454100388215596298002815636533151401977968518068915797511506053630308174574704984816430486122107937063895892606431523648211899685910621834183005967024311797988956075912185952274154440526350891418740526804084565680338973658998658823214784921057364197329276512890669659429021764809274804762773321193936554714556061717444194161452522298441364196536664142513505726875850391685415561936069995092994675787629628094261423931366734848900955776438249163137001152916917540304901400901702349437508276154527069310584416515383795785219490243944642362332713673303365352248191634158841387492685360753952098710891811305285571571267468684231318226125769027494474159801091197370778283104002065022610235632626707029397281000549981470585451126834885599094165902067147159282686490325518514283219544854412304548907234871214099193811630920183704960904234617524547108474505180059205750063663176424616015399935789579318161684453962284995412607910001959071865729131675581368774673724044011190592421566340380654971227101135764750448424549579664226127767103481845507175682303302496290593220567789005775360332005816927831178250297242501697372722381329351085385785677778033938250310335081033580499053308895109665956446526160501589212152532929765582048991523361430814499923946968502182245170398669386467941540305099168420793136278149448875270627109802308234943812414905136864152180516671799997479151924395400350106671980074090966842998099788306228683420741002112548360222559749100524824184131324904724305631223296557026457067174174683161566283002621900071692930867571949199755727308110619364830716098116180231641255782221879212241215489957345822484642557584901319485135808897423621008743436432990989573386303975101107262056228055881107237233049548892027896828596413220139176504360899547137273100406944490102623740560311106852612864800488591356613214106595822761262293755563547083481113553478760436996255108365252502591249794044681997561715359526003585228297082873159876976495948992337950618179756909879586913821270005275273846427493980181999169127228322024704766317677541517659629421399555674060138530733576497478947690610757060073287435579235031115162795982280827974550269048563243266951150815182280095486994164249566065410827179397781532611251368546517361722828820331532688506879630045903221258715983706315035546782421149051270336352947947163846584200784999367318036960084344974716129308172081353455253961463626005434958390816025155989442934139028891840746131390953350319147824795549260697844245885716690736699488376748361660871807686169819951253470971591376559935904707755356905463887368537697074070327480509313970419971199512027921158554680218443351942933395676864652060178445757494305681715988720772160364765257194247104657290678082442786721700567850321139027820980101062934740194528137358363619635468970265845130085581979630575440675493821376708919256515441832169121447828605725664880874075770440661903032239292857409539868456392469956863891214279172607038866130299628050879243054599807208768489938622662246098947342862024263400144845844510941405229947484648188428705338976694261078365748266179348899576574439355166327507725186721403107669402620404062661167216009527194547392253905061164854206267020126500469929861331336417557675572287878757818655483116744820572286014899780194404923054196730679193003134910526703405532243332837133137306916888209884034134347140945727170485427013340070283282483819643024684132378589240793196763843558287461092664362954270842519747765617537856652643303684392197498537355286129059054187784457228906378542045774844480894778451110157156603797011674873083812205458698815046439990341597498587494259724553855220499961051092867542489756405076672925195913201957626292547084427652398941144644943704242104883111320674293586019889989762591480714818327183551776121995997715288948007332680528076535058554139201818397535894785726342774824305996061440527386008033726047740310804355231313952080333880709015697305011460072716435979399698849245797484656427172783289404840627551853335973328173582031028534080944639059370542977108679248928388011821461005375486753249307447190201567791070466795282978873169367793647539423882766469121685327865356872196562931791251422137431353544506124028805296239759911640838964153499834864035795281005133181025959604860329417587958142888532230429952971573252462041259002020711736976268022526083126311330867368430288735786457612993685880074259103562932705182408601199137756166514735230666281958625267574429261603080074719242343408632181992099803028400127839207641610657350416992071525315623225553874377477192540952774964974352523637555990754117183119286058808551510584695055558595924365696790650709965608762131218065772181850926826607538871836026184405793620045381098134334956472515522620725314775770418117631169596333029488892501141490241371249434414056610794267102664067989093101132878253001117975776479143439859213579893234658448438900914976563643030007824659257983135223394059843122680126423327308205842344393293089260557605534576081160433948192426628171340617979634917745645788173213911952783251682619455520380808491440192888771828215705220925606412649715112475735297078570012149306091490979442964097488078067287139375582833727404252515198880158792058304607312869957364672302839209891164975779180858078176963563988173400357662561797508181612402906651996066538277200055284782772327973471312527544037014337642911617686730149968006698547014827550135463464505562306105940363507337617370702444814947354863520662345876887499824289750754019905844146906869666459019546809362328561084124872859600995917767461100084320962485676546596897849314067249961498393994540909896253753448970593525448305343777910696334953448498453972217494492291968734913393302573070261411300511726668080927602926766010955670487149527125628018144613413289654948180808298804157692049946486897449312646680440390207401365916415709644534987987244006884653414665052991889669386458851812401426242953870891231071438546013967470909266433100878143249467931574712971907672998739100709939306656998899485080710924910201840752039874544712134406917331208829497504128948683974108717461820613468696042138261560442887870224384368598784456192733932130121448670371362089382160085245254896321218048862085740665881380736636323325259885302973715543047576445862703031363736745924714507264796472197460413348192517202176657871707409659906005970658816369701255041111962609105167886886905984505730180134303332646107511627081465627085702727106314601587827013430486468137888588375638400112724535561938877885719530581830808223949160033572269317750184624230762378502662171257752127557616359441811764699839821828867343653623251525259003303001677236211378017044551423969412331209164649368717729776165186504486602704671486127688892755578408686165626882289074872322551996298329367013932035596848698807433854074928128999876746066729545628180417038228191267851090180161050253349234510631360543276941991647676954169390771025117454927071480901271708244298075645225444363796197223071165455877608592602465937903288483691381130313276252451179892662381943433786209354425912295368741728072510757656643613542072106535646842573346336227634539579949860872864662193746402461934392281810257432698440482258344593696692161016562811271397741775938558308005708370444664915266755870104970288857168777457618729537865534412027695674322607912880018066500920789840567371050874408168902373593438005717066979167318114404524215974933691954887029159231114712948436181906413350646757932290092570181487170432592206366245615363147401643602921713587959976245598440285434014435308861534061715866171209102342836239294687327306791995453428392388499811942848413245711569254484973785323628634754731897506970051439826817666486348335700573191804491376336515440229726811741537352974076777361602732940732382377008724252886889185914668599575836036189050621255606625088303627373627106790831428359910642712727463002848803880462611399505139190498779408426652588416888693190319034916930024241832622936347278391376068082161070892670323928933016506563541450809395098948622351432678128249005031705763858198635081290680517962735454338461547411975441130539563750222456316481497157600402461077411582500581154714791227609963229946260397895906461338695588230440377883455330661028094432136286608330550672242945801288538510326230686397688124450720819948895997328486049582644355443143377980952080709618381961783014804829177343657750682417355453758621580338370250681782803403122386764606811175085266636447656237661545650363008603136924937974666587150966174244041972815065549068482697967365187170113740799481874743255603788052706982309221608372460827558005441780313537592799147004278159163173725881028800915725793285638963943663051937972047141304704835308203421298748283609482443209963847719464853576080456024611493510876265980422841318955847941542472216171665822077839440446685826101204229146239586619594826902835323270901799809088586341601984113352536032712820266757859575113502697846853411980189467988308916324547032720590200217558213332550528745940233774084290901411134879796697800094875385417410144110326755264953771946219239316741845020044521531712635702289892984225178135687754148920803798678603094579464539340716035499492844981420859287986342553517655906340724811421932929013636114881654400807221017787852743668905848054002801930979792021112070938086144124970535288651157929603205382813946269070809045362692400717815203449416250946107400377798157330865955424517908165066592501668275402031319801505511469567133029402485330985919093404585321304196215099009796163169765235608012003781564639240233396703101863452563315748749709457295805007861246049728781612888321240241280382302765336149456882782979461744534993313028333003762287337174734558977435397735208339474614400010338737088128490132684982375164074396055597001502495152171644200288828579326844859604951720221262397064042101239987448470236421029860320235326206782149569408696485079625242539345291524124492545564881971717209219144323817672118848021125281365330112895689553347566337429266572693925857451148451978158347162584080344409208454051704898055916203440892322456776354816275692728415029896279841064852180678801622690568575021679337259287896653913969104956250633742753294218179847610994556477626904535598437403013326708173379672611172608586658207305943872309131193362646407171379706762548323218693489350542209229387808214554315509365548683271351812198048801148786762340417491008628287148134041331409059769483404497131158655214243647581738929074833725021395118165950797596914147039435350261787481250477611487538323098139606090772331747704587585418332302632269964606088453596530623101449488452594246297237333298464607709152080226839429492661787129927062771870904354735201967581973256234095567391621292064647697083852703727888900414481850894571274940686395885328685901490658336195951962673094431024930148514445800908827399948189954411486760377478992471717033083196959808452542933104857746078966708845878933079914169588343465379933607608117062686563101657549605250855180004640573753617529921162503038658072771387213732057118396331212953997255729781240309748420991304827491723677435593035438934083689132551476806525328050896650547710423623958957326875398495927825344694860276941872110508015289173816264905345237854814863170805969174661634683331432473920273935939438044031664055549347010939506961306140827272503236708826867449023707623740546063745645347076286465822663848084194158251526092236609225809038426831124547497957678164222670380665850550174742757419749969225831620548162218102726758544426454491272596785268612807869118668099128749682387893265537897950440069779088933682466639342323497215996451252690747117793508677258755713033373435604475057159273193882384534049750516063893772519135588459227609187236020399846087926974924024018450716921063096093501794094519572321467857605912122201802426566213290366064919645618567431461120430568272098647326613496467888515494141467347386109528459833783398328976812955856329395555909302668062695871803337745505571687333055821415682313871850839739741345990863463650325819168874156266650151579664153256754798800477311885314235314413820610800540244800444945495840275964935349508278241479628908187307582762895579248532894872170436397246827336049081149118323164900516718149060117314908157717299769290872800744880324405746307021928679078276921580872451034050119117112233351842334150419235731003443848387966970457112527982343130729398264332546386972714971280236134801116892360572694281288459549112680608137737357485148471104438162430643112469522374468490086912608967504819768621072478659589477374394135674712717730467330976154458189582018348262420061491446734015829349501020520096635701691829649144948343090023236457638591747715560905434007952338287838850942247846198509492902989343275700408814111472590742994769329944839950101192755270257818092701571627172556855027599395728756348282411564324980574254676032101859805605714595744910806504004346447092145246082757170798434770197616308382986964083349520647879646184170725786057937658955932799241745041245735310837041143597382521092574844764611135574744143695636023941515459745396527752286571483108039840174729921610664557389175183535224612857765317490079594952499582136171194631843365181902880663750789674993738077587666869902834652124270813094487578526120823016665607359322747823639885052910345646817858869751639340978871064018509331572292225119728279444255897200690732126039965997279822504773535918431434113850816028273781893861821952881636255577696258755252898802166599254880184580377265373213438917794112496372294087266553765359841644727235595611105461843029693291130209525862926850465195767039007046104765557873462185739054339706740079027842718001454585844452253500909451245204811733103072763122217927088745163520617895678818127686810068085244708561949577225933683633281067615894123025960208141822137215989319344566875915263359754369064196007093409722828804920705591693413288942155177489273348349106278924374453764168910380001030334126938999996475904280613199112410381940103380922549196973159154170236829641541877107981172194726518244390760072704100748402431914339284121600089143045225863307039750683858122506067632823173412433365410491823536154790690939427090909676191350240779559814183587515753123301311778443612440677463984402836577794695564075362318835974123728574481143297496159490302750829780281760678033525527977433224263982105689363246342701926396057628546033203167843776860487865499222823880812650322787750782221156756196514412261482029867338410980872689521330681533273753759955091495007866029577311341513722396437088247246925977454542412623363920061362793373941691481022563283272823569860314911263361511830415074701107036188420113094718032922209983672884067196639114522747280913580875375384460390759027495784509639786165972741971559471337650575160721364482576088026148870999117540894057756374557007903753472945404044937403595277866953197614484495714407906629824255185243844539009350503920790555583178773992693698974754978380777057024680173620030015510919314823948780207241398644389261735510940191549534571058996182993631185079666738045602500972011865462864330455241364656245228189671493180698727182734887028791493349675226709456126501333739009249472435937928744905164166290253332136098288516734615299318099828686809708494565765649998394640450953363731249177931883705536837899963792230775784395420466624244310695770778644166457729705233456926920021201332012865647696477425370225117159142911687663035637180896405675403698818209434078766070288262472220731146501036595469216800341086834717522113034029351177499837051713089197272531099669635737883552615871494579209194155180127220799257005505011868536630969083236839882641325562801024519333820970198895765571054464898246025746178308038346121076370265030676106641669760070483970242315635940052082817763058003252161261185775942215939010273582833154480556465026829646235690528767766604682147787099892273441726562550975364223583216476266488574195149234888332669598217888651744456132595158841242240295302061833360045940610219281931221805845568711532283441492985964370000546431409884299759202245916163231829587196533731466637376077419641962474495439670102917384514535190429260002487276991217231269233653109995339291682774546253748387764382540114830376488862861837086711576150871524574956388554943489598352581105782552235353899861791494509619289539129753970635580344554525871512569399062371765956372416733192548923123510300807274336079359263382067423627584913258199076634516740475992214178532208661246387076740269214372816482173668467712867926039044368831230434010466711305908700580030714128670144054374415803188964591311872014730309764685007098334886877358172390109464928138673278401429896639806013946968187974824471958435015465277905832538893007402142070649399906290158567296698729164892953331510847771160472173539430023674682368087472240944294765352369323148990605216840755064894900091226488342486290842743055178306107043160467557313764575197610625110699537553992592096049306657870868992257137490543988790512784860560287815239712490931779216005295640882416132132900622488942873638325085712120526315669664887316758104451714991855944442745775932710767984033725595709784158353244342372141074000889970315445561534332179902208123707981487210841558810758488256178535435404702950718939874560748627494214523738468663785105227159355199436088611980490214906138598078485888731463700440852116120386497314956935346098471335553605074035233306070404906340531483266159288592326769750495111601814845694073089535852414456836925315249264352134820650988939424013946620301717486067694632510199186944292336201808060573160986235051876286279635421671011825483250236101904201427609223161717701174213107172429353414645996521219090221785754451236540492736132995676861238300695856247968734992429175297460859449911789156491642230608881940375116857337964956445881462747320092491414616653998827244386381966479255417595413503194230099668695628025516153911951050293725812584596365100391173874126472254693067962843049033379108419091892511877469892643503228900219106666368945147438826498492099126319391250245670637238554042755188520288706480634636189348804456217330290360151502155752259626009928323997632935774796901499005143736820410804489409828217804120080606864305150837297292303071439790562064927980159162806433474837838415727174071919880852875749310695235522363394870665567709281482541091350511624618860621429681608806434403245493995417838228200030452555912187319344026461694371947064384699623365713834750534421837554992590222723832347573896721449754192742926230235278155897152975910490865298652875064721295433038814327381266836889125545959969462873915436617109608748219362958087614098581639384406549970263492306402859607724179468745584727796246865419028504701167408301883608685624087587326351295755185191485611845964647730161879293473483868892100066052579948672106603672174857782847267940186821567612588814692518815024554116151728879022121025194603343193633673776135742971815720654043860894128344432177544187632255700264215074532848267350505960905570396773760976326528681843136174081712285112889181717733320765039638994886261460954808934050376769437899581474808615579880219304003256069117565371105792921636955973583578358165831489801090652928518413696025894601695462096547989534458836664192749375158550961964890004096721527480754740873127355659200681157260591973789112666477766892853903078327151799262995474630359736055347949870028714594361622618035971303537675675054693203582890270331533652295168901682960025245857309372811856938976197663760339758986901018667510271727202842443172427533148167275054488008933032928825721082387748327582367847941856764343042638086775954653202198409290637715486265161688899321082645694891528796717263659223405034629540212445444158286406389651638352051665782737339526660014490947132325356496726151968310191519177354325518749776289375050621877717382165564143225583812361063971166082559813366380947720869318712912446556181949693935513811142165242071660778072461176565128690770163282458172352971118770190949014983023837809579645197035071318922198393519736272515032257317581993929448452227780765861477945401336438505182374076185935921051713680446894204847373132705206781631993250757635777773812651311441030705510833682420523528175715333924937811272496962997180730400385078892727728399365382630905354088273389938575999311430647954814527861996955456721188029356014200311305612154013564074620407191269700384633484497076039513095869759506330423723965395655011952888738671441150852592788422537579628003834398511426331616871984329977269304755333128072344246120137170388817714995181801696757205702020955044972510597732953773035842000259667800826727027026774054073747555528989043045833008679669985063243138998290544628738388763580896119415809659620461836532953495345558463526590560512760473563615720586007849886497891364743116064810920383806305090898670495952068270508386565460521483901481130804984253900396492394136002766023885922144537845986085419437030948005125671478219043648690739300969705139096900965425664688269322812366747481203390408463198333391117366289779873344312168188282246331884673873346710711407691823164129800075313288443449821916033035416381048363065022782012483295146300958662196049624957433755022898415453214316133514308351322036777378600019632658260484836134319991392395601559773055026076013275825921189936219025300600519021667862995057216337242492900011308863638026620458461041539083982099043951185217470189692387837542100115597989554454543609915726903869916998979841705587650425048664200737938891829382247121178114324696428359002498394874082611330864088538598153459202741907464703066074866705994642259171175584282985627849564210596349160229533547210690847468410259565286093096695545364820789930658850638083801908710929051033116795800194942285613946929975290846873988499669570569352383792688981698086009300209910942414759650442215538862526949028874255761342600982159844486324793102589540175805435883782564019051611888924109605157172698484648995913218690043253867661677479255455497992353180134199799552349355788430641060652545420641493802850631105281312523682348710878765397122423162005849441985322750398114163614304605205742986125747026736672828831582638541318389373504532753870369793355028383133547319904759037945556890385092247344470560111500596889839233975182489579449181134884514172270724380203800992990539099041907143594119926822876454917539978613380815991998674358339056896613397274621464114417844246691037152022267044171075320381809779590500793408168979454098172588986263489154032967335070753966267472839949661719956713854980461953022257220570741440650545022803881052385580652625988934096239491534080834615286409617894987936998609161583339590714816884981716837500345825416308887828047689155746823237751793362350213974041986393758538246577953843084175858849522971694353419355899514566228582924470847090707692158241993536936723834952723780194607009200681113569021279775212897411730270239571710646003915783100983964197445123645900893750412318094420135748875576765941472471855461149275886038986304247176869601139686091517751057854314686474925557980107096645589141116808604889602821761905724438870150565346501685154750449009946195947913218323142632283708351302893848514679931169431189401035996248878331533007181763188543200456686525859619694164927335993604816600554814974298352150193305840758436520972116451387765244413229539794253165612457174101359106837607887431382703161340746881663789976766979894658595193929226909805105880382229309346670323946958181742340391750040369531333922711893362006775467136657564610553589205567355428724976784515691041947050094377766619326666749909941394221445216111149450301270934584937838472505004546481957060500231923033910317951061136941425827403688982956728589986037438158832011753995872818420844582321555280759298776685189116477008194435457850439201804331264449011286370635675044879815785673624241709495604724701615928912657869930358680413415849524538267417718148834111490060786743819293424754819957700058587117630327078517523305268922392401611822236167575986591981228743880684341237961023994953113828923891688606191228398304400079168351424418668311612136379668434907677642649275779920999414290357344036650822813677543887173682731240757220426770283613922149831467110284094903974044088733134949641876924813782116707979646327054253461409996722248732565398633173164301198545527005099006747908177969029055471133427742897956439337162068883730807460414743284424066479322133077862522457512151355867874269162474765057260636946080266351839095968863662578082849382146944773654585900736632417198525554243660305274097035054563421276564288691510744833890994994726287973433357021662476907710590609487905594370193702092470135533007027286228905508064729392869247727724418302203855278386172115932331144107309731076300500261838056693088098427758239620271536983114197678339885990122878175254725137746567456730163874722700671756923006845495589668848142177278959289182251579326933829792128606104835237998363023716543152677315545927680493154173615107246881886073515144290649561255081289653532584255966981009590929428442602565924612812551502798582850316742703029170425318778333384462399648620164158066380625738207054005505957353952106414813516290200039971951999478744010605036611629319082448953895433627392781879214707636412503994448349587153867073074798684614127166149352108726062462077457546500129789165967840559449842515688992876243047886735225202344877941074517859711578855002287501960420506002221608470993622259219676546624027859909747600672408339178547505824777985427401025057722308316979771076799542743651781999132381822928135209603826081695186425897338200218896825535337518212790987465173191107889315593189581304993611991876696642749187821621667791449119969230639674641439629247771798208553104871579328030537465989437148596530982544518200604883076264227371172922319300739206272016515778355275998198460080279484260141167750105905236251457702667094470661732753186014664543293701592831588122131469001683924106806850835115399467995381780084824387816156819374053917708130721321796861915849002719281320030102495400656416555609682828757379035212934738009284629127509447774272903241349335893956604190277971737545405666765459418234766854843758831463952221825018359319527802730128831681530651974062751935829807766378266540999984816428208823407164934361644612665950146744069435356768120999621330954016569388836780556149068544610784868961377545429766778621869846383531152903609703752438555087937146869823014510207635820476194298241783185222731804818393000573935858386492521874317910876241037183522967948678938233669418246401883146139983986219935124362580966649184443763911253052686769531209237077024624571601291104036759203544983415881940262050246918530678776317713599195284182925288362340564342438234923906896981660386489000940276007287733240866516114492583790558021910927365429323512827156935487354774166804453312128042924273311538677767204235732453771476393326955096429377889328122893681764552549138164370707104156440720497861167602596831692301514905668792386524127567676306237897571582160139550824845476252009399485358211228664920747779433553280494413957154384229271744050623775635350558888260467353066042790255627544027947964453119826854170879251841091369707938215403616381618786394083938471554483808601489971550032606341432838097513164592551422154977940548423213184609343992485073919336484218302681688928564643571562159408559786965875562839482291678757673648991809098196132567264349018646632258272942718003133698424815249075230840781283870148364975519440996197482592535056420605596246056034642851202740565492478656600850987102756654977732501134596117529174551332604782304636679399571303987697708262519567496612034461291862507732249202610301478774278270236553344125432168777646366312014356411474292781954042840918631916407219960489269360029891649535498109803060633387233205589118171761671751458953797257116422899361340430398854971008876306437810976708607709855419367597817602324120738403705819555979116012161634698715220042962230073327815019144244658780411224187243693262732244167626432700029140657130573443145933609822441910657697580066509736132008579898731621231359184706847617186028500458913401201538006908469666565581942722462447972425700152363882049462981244739033738831516537705667477096380060234002286178515055427171351186880349623031671855394637318847707302117441692509381845695145320844479271777287553436443467591558724004728229910753075169259122588979809340907336126404532289791843538482680055383944882870440685493091049115946467316246397212221909060219153038501349131683826638860883170385407329788157014885628900952253455458315877558162477620258304924434169483272607731322135651001161732136241416630690779372866090064893699763308857772597840182318248814150615125708164046004665650157344655580816058581705863583489223290916047326450377045397557627641091668576118337328404729495138074197316815350212773381912148970538501088231736235798957600654249717126719642502124525827749846731230520006535855077039714839854686179652502328136378484490448589827421778196691987377630493869450262577232155023791929690404496886747190747931118528150789908727028672024048763498514523594215070528469546097936450036348247736595482300003413235873707730421439870481515956638565986647979246105336443070644754124851324874261302855601232349010903231007017108630554187961240493772498897108992339400278246939314490925287669847228388597032272510389796193974712213330586285922096884596498618965412748387583127103151933487728944137406751996887038340279109488279634248954328989262461134284152589134223943477997592588065307925334496074347420063241261639377755393167743778460916546707613583736096858423607466863063122826174917629448573988476783318619019008927224803250261513556428787346430938723756298539100786636853803461547373533021349549694965555786467647566529647004952046104215279910283893989278636844578656532524693504494919372128578266512976359460131199575935068446106688526850465172487066265885998594695695406228237921458038235760421688510445313121610502915693009858400892888649050158490039999863540331792558650835593954190824064555505290353084478963782051209756655345779483770179935141643115254796710842115571705176833301802704348217579441374189097488882233438725400937242565692619288051924361812714324737662256487316744458865557705762275294009041532263350785421123930552967515945614173041516240089142172068030207385065919586422494501513883799836688799374946029587296079514415863076260919902493479354603625875433528328301436374085553027629105431832473618988810343374527780141374380463356515806635419941320643333185852838279960127226150907249587965004148240322761111532171700904817541897861701598802829040451938194229784648195099839299811273129185402830487430337233174157088618005972527730394527823177548171534244488101525623144225895132116348791191426156856693123439896270632728225257086170387111385881773195981261247410681961211572138851198455946559284803503515375528235944072206760046891929139012852058927870437297008211134688719467419517754809204350257848233123423779560595109285485924679991962659803420877264850971166007467039105221599219141770158849006595437360592212248602589301907410942920812163260936634800313533911547887807890943778555433088626058510054837448334218408114911358994972491515398992380764672589176532048009472863133743967111218358288881448587907979470203527595227148685729460804603718199870580402323600881516269071450663253898871892560185828719162032517360422935518730312166825547693774927560980590704004568011002639000428740691730514913214486619269554237261738350159946464995980359794615579985730391878071899238818127712284476058760204472435978674769413553011444382810193329455793151840116597152040545957831397753055262611503393718688640393633320779818851548287160275159206298795495695923154326879359066799489719750676838205035929536326023134564837087642753496945845052118597003994306485403555131170702479084085996501171494238552231988896153908392645360412961024743407971812504900553657677614890960482376629692858024039280860710001124442075268579824457211764880128917648554747850965538529024632953018527111330700529430420920067865081387237995150471998847032554377419805997855016086248452516264474617581159250464988958796710677918369844420075443800830120758160180744986881409713910944110385873609921008240513263562233969954461515986668409385460486879575744643965493864148729750699912954576346024855462632600197072692403988363486986679790700971276093725950243968282526402814414185499144481373877220820889170851182098431505731869526813251135508974889079214979206527735078526341204943258934474165054739288324016640279357595434240108068852625919461890505439236202223734514744593337517835793725004819686404010811748740278187623046136072372024413851895268996749724579993677547301606506674713009741636776892511483814420975232356238362747328156633663756276808800448786963073965962534458231624907547657511620561381767530706785035125518554892338346241813782067819434686934473513875744897686415898204872953320442595488196238710904257376498357598602826271771507022606439806380355587735825402879064731937046576731112479986384123776142549642808058883179334105916432356796102240330726979659175232568599899610822253716346689656505613463307304176424845924870072200153074335947212878200650501499477179345367420392368563707211015962109987619718694976102257395676593519500524662279478704308201429018858857167667008628651106283630268206336282326990594696754953391934580705807937718902448153146117893459944517350709075574012921241203280248770439059573618774104475585180338124531322537221267049687366976231068420430510417859315654078563317244604394702241892957089774694302901797788742916664142462805859211837004989058676461916858152385194692520085240491774697694529166431652788126958869477433963209397164829214768229584283560431106274507366165482795920708935859470205365121543193560390638216825495093129653542161650143495017322835596781068135077991259995990837765944914231019754735381488700939946892841934163785376975872073320800912144130909477970754792719143097290447337332979489243547284727554779916417319979481426278607731708124123395283099625278646318758891793206296724153979606034646887397383779152697359623598611603185315449327547388258717365803105401370834140314801607661883657365196667653331910322756832895302610671222071677752636925649931219347098184497886883828295565969827424906621030976959397842312825453354380642590796089779016351764629500441795628944300728215375009475526117437946305166995481705784575812517415354766939659675989881015980046867972947742031166820568081996801888944395632007019699701168499579436894617735949889847243419297046429776053198295337019187227196863034207944119211017771993224879213423085004064230046507202660542261515751318014112142926117889137219802419647676069230212920775720234939032800928742747182971924993298662343653525065190639902841020999873116320589344271629792278356504333174348893055099627479826313235442106428151805601228404030096724278933184587479960520311908906764547059718232756122906751966284636152347472268881077342916115989622029141433884583632184372629647121895615846761964622133457977644059280000406791955798868128230698585888072001668051487787386738489469617582654750978056545610187709773932907739666735376812424994995648047141016547660127542574314711934482278782181402812864475566209419681177259706169258478919115538597580044617421062354095858278500515464480611433332566171531502339781355921038774733477498919655144939638060825836387828749360529974540298017197401365606582349236035458631318788847848156493576799720649588846873993508547164151482813188321850341796310316518573634194268830358594089957410476520787820649793827549836997560365018979780687277733505225498063616478251859315478225125944092321837766387009874377449122602862914624369844674660129905440955759033271192809520244121235419588800206709108069597056847670344785311389710949856798004270103530654530129300232357613798574566778705152283721406728813923702333446602383963023124448567642687273724771703789028002833541247775165172515647506795241881187549232637607269591610725940548394805309612526764592595369183578837909406552952255765808763909218552593517371538949006915656225421588882461067330175196841844306408230143596963459735201442783184932675852915449347864287856403921591310008579111469495479785569467773024396859488082559305571518652349689950545822814010081745787045569979740862730850328523884393105603474339894308488908785924134925741768227961227016684539142491033492578994145017898387950143191799561411382411263720926057850926487629615094745795347311223523039674993619087939666972896935418032666576462223947727054782700325311612652012902641325473624706384076282027421697082542791541995896725364875262923901105523445653313294052121168182879737248116818744879417058370651453940831608083830888923760564227885872123298762742837050067869544787007434497380949480266900153740333752164977945734092119998941637298624083235678745409561304032564124897694772711671499445995350761829247807664618041375139462183899343460753702659716167830870910405460153008331991004938397172538744270047239752972920303647023601562913146544341083973364739704332294126705209168578287001198122479100296982519468679665110342302448686431298562104270147112539440228804972222286283764095622879482133828254038832575320490649586588522017573144182541652959338873028224600080390524122549269079077806984600454275372065382368712227881000138448371954396618824527510011516133470266914645687375176157944938622047464266795561833874049807407690931572783417800729825165708057811283059551608125254177109757273855748995499568691855879962134789393801526178607926249661078099989329997813525456322394905423945674661887799637968556359071754132301740565934389134531829358818740950135625749645939261172463022528449874238520381429358868483270042507433180806949879356683537491678703840409031848472561544607379734985051678672317524488406046758499262443183121657281096999715393094754703054450789905759630202853118979037074003002860998090056625512957329759671897774485764682354162245092514018228481209036375047833787133766326381497365729266275224215422079006581560833003037928862806527686494721126027712094641495358183169154472507425080845947197659922463266921472144370655187743768775056002500733645702405720728353885042993109469707831421825406958527173089171577540700352762601754674116160743346776192086834093803364466292799419283695904976931565800221897909058535345887986421323358446115379200714964427682888442581988918178923820573447975137093399009327132147264479159528439608819128361864083072337385641880131442689997964754156809995010543935774839848924519955772275529007729031310206280432340188609613055173172382785117991503554926163838574949081749320052634439171905853793873339681578618581490834807055137204549579854867176716294840941544927820716394418483011023438693412906706161104238768041709314996414101828172650415298829491017464487608035134620691663961016778527458815575928867770587607727882192663670550075357741336418289059254365864226658279994168144942667617975579019144446351930716089401704426770427214893999501862837804954717823590778232372900277064830316291803256977957464908781670422967383067617852570154745593416967453823240983931063884376631792660473860938180789636909796447277010147441131499912798473022753104011334264000009149654917444104759664355429628686533123352656679063370581983295435837554568128513854287559688852702543714321759967273729723663391408277116239659980086422799045806741175580232878906297107490610388618772812205324399417174981719971341570789779160398192318116600522477415976621038588404967126010220394932108980390922679600771033267704373685584348323958013226250557625627003248336479845283477533001059141406449684881637233240292211743551025801877179441991581842501330384021150376658846807041304070391971200222146448217120651043530597903458689831607078048218912086271999585485986367693008283444648657166170561262541227075993325060347285505974385996081880141866768445423410318056086455060399745267312507933087047306643480298617451534778779965942918099836353220149871944124966952451136762306873324386524151757184038304736230001922166166941767290433749353767879304693504986569980765061293601040995536188240532688277644083788041486533194098079689271877454549130623468641957852439638584923282115077874116656797916337843573366317432638068081917385546044243515673572271115987661321269108709663010199271182571683279730546744488820523466685764482544408688494123922911967041835395030229655450825733075902538167592163866857996183892126765478929671624763920610538655694871502562374592969845447597430955484313776982394832077951660459506963224190838855252264592940433558767354991274048101538198939754129544761611178955576243623493354373511690864922191072806819661884984491920180196793012965134617345579862465326770465085816673354147433542278351153765568128828135135721198155246391519302531491340561466218146341426761694476788307414191358646153253420641027095962905645864094997373588015747827322752345201816185123338453633986659475022276259666253926363596420795302205149932912399386163765259056613573613307654330360317574324212389951463376300600691151964812851770992129672178540324857129945997596196898641831292883707666744228872754492345873098972427662787300133260319847952071279852268799982463470474473231346798587686955476837150311563417415330486895764281542532680596557066699747206901179367071364079256947031010867000220202690784352235075430553200176597853568267328362363192239864645562595557728604724381307339802965761544566122355695351594446650570902785435325328283773396876838980871026888400190513247922754297020968835995667719431186878887060754018903870318847601560828580264126954407858455838126309263019764820029145945057783232611115745247271416293532015423293536927647439641329959124765595329480615894303227282943134074440158630816852828871147573528332243369010269875359983367179353066267111766006036900693074013426767144419440705745646375042221311420003789465179878229616944401004751958992972941591542868461974641810032480615825531591154134200863816786453461085769013418855465098026238149195020111090437956818051467348499586290161621171574837933933784580124272070193729292911018363775593750833011876281453964644148760139148624330757979302725546706687683921495901718623463474793011982110354188568014452700598755582559574193297354558898851160967023555178111299698797975537157965807573334474389075960634016641817234811829019638761579128470718336410548473367552640032519265399775180111607156131668963760267879748932262212317808724511631111710378944149466901440302783112942971154122040139354542267988863844474004022450447822771944482640606877007071879294987157290306800872615593160346777887583743118589105065985733368053763868302785691289598597146926678814285470492054712139021696335625346331494738772251691693232518744179363761571658532277186656884224701721103010754705957027285248500255009497248059409802152142928557244778941142154837368856097299405102999263626090454005200733496029934589203140260411812670012915808614509831489232102492483706103000304660244178122060659941618635527319017443570897887222459157490668949319996387883623823553862602489386523493581143608126276969268133038153858427176549935073307487053976299759859092960368343212346702141141732730247748423882421144134006337476960945245985486396194095851828948205686530868112295201319462058390061998822821964201863433415977450678484406805183473690195801581934380545550613522338651755475151263509551547652821265196299859319856637697301246084208844908367906714383708323253685497335790604309867904148037929287461026902382087082082157083642919863662703536815680359601619828326825293886910788628451149145592925618523690109414468503160085146030143172776487230163773969912246073702393506123006452389451987658432006125836541085029396712881005417023612185396593487511825365726268393624469938655500200866837315023750574956561504214374810943211571631989183170212518410438918203567213030508879795454650293660303408413515513970508892135835974737627956333240518486100176750233610768560943476953950873661480813432994077015536856503924517195422231582398723770427475866174713806356558190506687223477200804264758674998672909599650823451004979646289898616681653345201667221172279772316180631938617549232410124983789967716230301918644837179049197979956841917346486107676201703698556317468490068759643354491837220153266561547268812230714146374056030508876441948600449207003869850461717465662979541816668430967695220176891796097090858604050150881146496633928556963524049027517757900825707952366554143830388618901555255736490492792666118201267262691930945534936342986515382719612865384542594606482505265205952013895375379786028991164873224837085712739133073498291295631766815170007214912915146630655656522485367964475161308735095041018887813255537179829245209281050990266320782193192014348299869482399675801745819098600963850850630981490637298070208437129981558951566806661525415235272071749968735957005553858122148350203156446703047627909018979608037060954331497449602097567049243432744681282249394680937044369620343364462635012947847267413918433537689389338169962963425218943073656522983476541018678620883271984219273305172804820751164171820250570852674919454442948133525821342476439623034234798324967630829521196484671606077761665134065831573370153589733838023848702233916378309219843444211187836580614399140532134004498468932709165160958772871567907106058647088672187870608161174658512966219518374177657423021722762676365398327907222435629692782934392888749718591055085757168755919084343977538714369038852500743143607194507740636785422791998335837013667712637247218084856871009813373948356730121704577747935955851867497678564610389647900510623334832439112848599911468938245886821260549073244953682033596070152490923296962189641977457967325219719230680491584586167711912170728357338016422650658804300380142833036810852291773369585430457146647853647128876009087271612535762268338984042079918947700797617187111121534060648137489066306627435945686184621493146570172411212560465635636626753712948570379073379134655994769141908433547998738923945632412231086555548167337960695891165486102782593474087424914695115009113787205451072719048142080460201104994407827854341045948837450231091425990235063469400380843912959791443967921031308278797491634062839887921714522851764520155509838697988567756754777259360867817058777680723465999803615763400414175822388050795932768290032771767153481632298040272620264984655525625778752731114106208528363320162009680445936386089087696066334403753175056958513819556271659615625981664074764227849180527496829603956624019044236375307920246406955420656708645756121980177078494857798094742616420970909106788353945876129183818878970186865282950111407202522709369306745539106844038335005627873832643828653059347291730337315339387728075264080621580147784848573978689365595434714704885155878023905605492296252818686357845336245277314990628915628763367192546978685913467409314577780867090488718582858455217042013865473306222869091573450615629573133605984750070122430455337499196654216340384853200899528096087936053532835187272990304665436296956513909137341523959224878962739766052185187928625622295941935897246800696801175246067044083069937445782130832780200128274278445955732338962405780141244665871477778831880468431657811176128911275022749391481553166949538393024072684985118316706618609092956540777798695707687876615625021132074963629287638269749575338569335416905064014616820198500711973242568281282436822722027129046692543238679583251734072141184902868345915012321204397468909107791049438365648993022675490514600427515320203220462071814217188704651231482879698185958116411898016134385141035781052912794590558971817012671049287264470894542054879092636950490802803470819879447696352313726335139082748930653594213832027648433066394853019204062448416086416465828460663831883480207773608860218740355642800841245590997800337127070679125883209573677674055625737703844804741133546645723551705011767958066331495995570808023219049744552817995683338908683718410909275932693532688023419916104250523343744076019766975760378767223005370489079596782136596012448885909819372213666121603331542574864644637300041400028648437225035963818639458090605521562558396181111313219131260267927680269707571055635709812634011159306704072683691711687972295327828740878918642319854075092508159017454217784255375874120234380740473573208346591202926985834006161819995232193660104695977413112973049189782976739119654866538349771409963996885168900183326655894852637734429648271424925764914888044623507860647434247593935101589757097997316117874264707212408932249832786733142977351341552043140226727561029896743865002491183742522111240646738418808822568263832523058495459623971192104790018925558100868283033442852261042705009616571788106636592784842456666785867573416386969037893618999734799991616336456272527035798039583654457961009236575142114240641111051115529992829965215447965082919982198346160303737300775019774049878944147957499131909292331599695271841356583837061870935400206061824048747121240382598692256417470060762406441190700757337609546616350316865638984569386406863662779231559340812909236100595701085750809317052495686180606739784434512112346019379012394347051797888122269478398198696535411047860218503527612761002139760586859114317961768228490623216321954138896806010250358049162861798202202395239824882524637633058849026687851301479083432128743090238641777669391439461405615992177501712319957912360016885129616512243031072943956243453149278995942831668680393797626188207626762126778578961753034052313747413239435634242501374537320773074515363749896753456259521662354123543688925572623980204223760830826209402246388168767072012506842297451977752293596009930782263033669644749173186500146900142342037341062359151382075718827118860696134408744890883740079153999357063197135727253125875892365173151835187553057439673723069488216419968461604830725717743087453929795389671983669987333967821302360092309858529740044507392305978910955939333336127903116819931556874515706141177658271991208208806728037626874636739969682359179563119756358812377688124778646443030338673926714608818755339529173796613031736972853216371127883875325745555623747711694942033784016136287887910994694035105294712798236219096817327000627571524592674558456621648708928194736553047110180163204178925658196209225361059000831537963462612284982856857499472362568724653275230464576595903606860033269857533909173796794808201527101781342835872228098424839133961929529218065957213907952233095840400179154539502028912225293736410755203838925069502602139344351267974058215395209137296201529176380743671116644688907546144316309942916250796748487567736009585295532789327324060667918602242420293349190710155463146170175094830906738314752686779082727914939481088500886225094314169440714343530010301163596939123064583656888383872440941149591606797612299803779604533892755204493155954833270238562268229880279607081275354809123399729391146563388667677744787881734951358708400474943067087341922309214453221279960861011731799385363214735031160397646152334578142595041542280162165538172261740929350068208568878721128381504016809718498678790085892603099423405546917892124048648717369920857064802462907671262782389687498824530146336408936754135189201943896392282533596342015567561483476246203477087668423859069620776070335494480131390793681745285701105356589020823990224329440600297700877791979431661129790176661676549812238676930919563327227055610061897875941777403127240204120889531143983156639726435381128330094765226425352378382493410813563793012359738289929606952371071395920138217620620611549805660127765808288470062576948339644828853899824675979546603509822127974980333087622708429480043298101383682018188123547846930459033608876731794879586760193837414525778825846474260238710329951397235010510835943915891268865367450636684403661571701747605497114691913059883742396755666929276716564066456548985015110273207349099842956160434705285885236881409378628129475127878121149329849685121404620608933376807367494991494505953918019876393077169017482848987851746524742111827753040015817706463688678966242531232409127485456738306640117926625369458715133273776684059408609635152668336529729166139726444565042834754092485035323010828304902115839121208011905236181802200567001382764875324444252330398154995902426305946383403614920384103104116772730917836329506584404378063494292502485336739436634462115126441976296381856976072844496773394000490160926271687991817686758143457038489207722701318641456309413683243749182235024206611665911382347926048144221933862711869488955327923976492254194610593749583562314881373344050985376391976971021409564781498698382702089177894118798292332226458094238009733265668322529754856246615545272045840655545187665974804839514895296732607456356734698769668156434163856783776608606367768112566075967941955733321475983309228452153170919893188833910114139984160705025699754378490418912220998373766881759195067848673928921498036720987492290416304856647263755003500028544342084648706359543243609896028526184963054456252606653766194882349593057481365459957705407970853770280048246575300649377289339146050978689816158751100394742610398074394578711607404206915366067148535364343941806678446345907604034208351295154245778103599521319037700145969440040864416995041668430748041851063976151847493753488394357618781489112049118373604426459129628324758927255969442432645659791814457765367748080088358005732726577076418511993080594573765503252082562364005232673604848123724354644706720673524787208340244975548082962706081439064952572395797098119972955348413672262774627754231762632145984858540845118366821557354318848651090575887571377461664697213449375608669137923039050338054783628222343098113626783274939057905284246047417156237179765094037047285930569298529946213169279079591588143417460837412736025546936583745553869240794340061995474880375021110500390426473368354779216646218839257622789174096213750452113350765315543786280466835770989027236729533503064310443474537788606540516821104453629581847768127560457190720857617084697019329581176575150024878361045132489917674443613951337696038740306832168269712225956846675747108833358185368414448283490452196715904513095277769072357158120406262888360127448420988462283652134517655877677464256589091584369920556409831128105823904953814243606163664573012906343339285207226828183710378811807279908273115361792624342149000977456283583295646477274543693685923261528717799187978984051193721884333486413559151611834295273370354002315420678197111596347738306305647124157868912658269718873072959600330984901682174900018986942081898061279151765050990536021717048062339590106134130045126376495534890895127123534940939277765777917583743047609923136591507871257136444451579011433092494596542430653811778334000847100728772096941985934578186443881338811112818699571521779904678532128749007621173783191347219138459109046313654041998009179650105260865552161985900591527774188923875125779644413759898073079420658710517112493030332340570438601166441622379630844693391222512212976115888083160212958269814404220228904501753417797424742046551317966434648307640424109600466900253290391590643090545189417723623352740809596322884772658818683338427497618285522936365823203365345051236201248104862927113574381167241962872662367686978354671032670466477957457132015770658327411936644071916970920903667226052296294478645282706340433382582851084298778766024516559697608588011493484497453362344871065945896387518537334630860862789456230780866322539847212420057982708800103816515010869998540286297112120222976300770017443974507335668240607907341262212561615912174701326106247011231091137574007568210507878951572836363529079977632157906254883362465767416251613901565406090465482555786472804008998615086758755950019442542189183433557846121660429808056653677787844363696063691786673547952710276889521225922657772722869188038106842709580936540920460205620512426467563124381716132271743289298928255680722627435320800784599384525549290999792290982666456790931530681313823569074008500353665470642075344282868106990580573570076860248805157841609870829301837710332635427370131276541508885550016071961735975597743836178459236086378212687441863944117444399244362502404018748357904323102768284425690596266389106328968594355888066510649269407512870894332247951922578047322677889729318101670366333821787444793837257774943688150212047955247514125144942277955035051106999241927550185970109298392174522929175951667557157391835851595908392429245186748507203615688462997423233519646310157187652745155995594545694908815015139296241445491674491722190714988765949881508318270028079599735002217203973902619906214929488316895016272297425712448676298607082436144842643467016525068008905939180490421849721137743712232917455591028362815096297192321701138763482074787041840584689412637589594367354251183851288520387793290609572787353948668211197544238093202391314634526030918049772961353577163275472457083664956857417380956579153121620346195446843884790877893819575324005198093098722082578857824719118687470194237599861585680027524325853372371699430901537556836503444137852217043780600884070411695040232848876229906667349963051880864285600912325375791831473900209467166472484938686315678607922757378808773327047410861983951094167612774453525372355140753520059944734732903426499185154656044177978061475773875217283162736203328163554137021117876939306950145183029384772010043468355699639895155217166682737331150030916410111139844028263091247406584236210308198160132492881098832740708086938647483345971440162798279303602179301292972848558635623579595766418305506826993907709266745939969390509085939796785003878261252213666744658225467370780663986437208577540759348408158530527724960885060726866120877843096025302686085545323828651684327972871929747527925184066298961182459628525910097201540194593234523477175600094246680060834835940956662261726360558624559277120090011693660655728176808983923909265434441161673990253925135954141926634835605931150888877654363677146935961586176025182979471668081860511141474429194972109653837090296262230722780545318054391876107854062770788222841997204692139859258331717432202785392705836548890395476085958207591722548943197158467515971054458497970835283401198585467084704301391086306238666512139015012013792749215575414761327506792489021435960090689728086300724834640536358102893502423201439583944644760891609816106402107113637359495720133640997841417364528250387447229898170230406404222712231786115155379943263450726093790293849555178177214341821201562469006496734771592200243360322489346490450347555851773930337910640842769833192672749565436894002735163779483344245079343635342099109581307436168739924388113694749997100072100165278192981759645709720916444738028218754427773137440706894525565546839525881606013481193120841754384793980978184662089334229532687057286970473732788645459483153303441596068679949126864383555211796710106085571594457171273801537414309841477421947559505521626381543240765091917746795955420777994597924335694399792796996965591765597026498301655825692182125249931074694756571291838083632605162932259300865548268877250796790550162045406102330454363894806644856240860528376298417714785298949119242789148182796933934904746303540267106159768075079456696654733881574042310848274652963917946700999096029821322820966331719119991795490417757209348088637256453930831200311677091108265409835739144402497000441898684810996299715288052287640505032653384002310051892128664016286677472989776147434806695578412809572513565061379671270095310327657904284823385094389067280937046518418199233176657208436755105574254058015596535767689207850782806177840709395481168271968373143303124195632260927545867521223530578443821664054986219167153196420973203208675418635110886477233450246508568164252839768442503728901427788503807630658412399146265757776065355846791804357966809386208478963707041950773968875284356974600830688587157876479787860654167310909301151834739742427884019469571607232415067791889396024416119521795473108935694001633720607150424312724547104079493297874655958533344754185694099197332980184547751421794533741388316725738538110385700564510645648661950452872384419210219542105385800498972404845224856214560102588523666075677675429377425289308704460237611208186619422226917863377089294091514417611233921752924653259129439321132839333539087195086196736280370676037787285443021193450370517855295550667720850848558436784071349917300717882836352885198011349095854205638791279153664169386153376407075156875168312772736223115070288543479700229567493569596759405912151873837703291156254279546872705182750640792588973804369069218837772590078564202269595615938231639925492485071347860231881832922211765530227159196293377514703628224573871441237006525106397927505438808548550516736898752178898923915366858374627213020168483310139353307122159609906218105198518877104835226816721163023020191698408241282549018942134212722131212704939354988901166518068401772038450391402396635996566456646936674849097412040105575165994391006684163562432818007329631097947737310669306662346890402689921743213961813662847974579007348721003628470458429606668229110075103850328899933778707379500785691496013064153886416172770462995482580717640601683297937466258253587982566337919455804957670697111674019046338519550333302447929089584867514401753227759461581733329649481866370008704549750452043765431762223566153796296749625998132538955830506705823275414181373426089670732384977059418142602688015813332725798526745811830881807652550690019169759933686408752014180338441776741157923892516746552408824520750963092289976653995362357301930283489445929556955845344704001947148618066480787444890488586377874725431648089355486979555397119414877494707643232677007364026378583732589277359069490494897220179439988217716485844940103302247213313280202704816536283021323936122315788289856328174768064355173209288464218984247953891317436291706543224988768070892527510946847661333580964309606535070088924500920561347056061650473250881308069552449708848350587119042649664213025110813289179225611764470572284894070671644102712080394592404304352079939638146891926445466545151986602178042634669393230210077868502088645636874738675259639885126280463465429788663524775080727461772960110810005680715461755354667068130987887467965022189958367120135806453862036671440680935088632249848291611966980481037482400247503206184819245914858532237185341870882818822368947374783721856714447236758456554123185626042408864481445207657305267257281483899354683214671167534964491033391815991327373300368812196875631333469802253220951483316914707711072268991281565947982267431606526025915253639507631046704474681223835807788137321051320710563325464762084271621375464328773563836130427610277407250684280866132510437040526973081163953271474385733341950330415627040246435173875655371445947311173074565127214650571277861727503777927060925942396654371889763464907985316926267355128408638021331608067092080283615559377812210314456072884594210708741968862312427871005576035092119935923831269233794394786794870845660129078261336495524766410324250275958027251767288126227196351892888863598193652820989239080449429961545285516350836390679450107993635903111446136523092308989168710611850335825133349201727308109521894185008993163973004484436621662611006049687895670604915546428890776746643980080787271810836888889187292002714042894633029463352306927377181962387914835629623693882699026821672407575733128151668768702355142779571835695741085795118569742264394062252709299735141112295205735656525928456056281667247630097463941510009744089612957312450351984393129526398554463285427257459057295699338741428617331215829293654261116510285235272234192388502321688612497978580549525437750479885732982503748420295150419841459537083664740558515374343392925805656954339675976305414644957147245932431119688639864009188022328409171950425522579713754579744885497883813733201830372266207769879705656707749292131598750454738148521652868654473544534454208630018141061272348641439830637168775664343245691434784657063026240036268572916622711203037436374931667307700506011413667934565091325098994559325002122880013878683649958364181481555270939636883170070262225334123920677967624906019878217104605152679710035780332008582138373494948081240845583458828134228525072747222508517926347415868266399976920924971352385424424659901541316174517732252577404058826821655713188513175073896238806717162761647348023727157728241512025379207832713684037398399192933875085738441375569494815116641876537386050873934258921006748511078132932873828480758629201379343214688035827523621958176638619045669055412789697296704015059606837999076431677562748783932386246182470268742944834387193329878722125879565416605262451353065233184116447824540283667316173148642704669081332666958193813408773942241824792541614560310807899439359685674773400709901901186547243074134060972871902659657411388600203113676617241305527087017312510569584177266767316203247245264868682218263852855333124049735149510752594324483696740031509944618876276028327502192738421686401364140278424674375610095114461391998335030766826647227816184512729820615866001391659343293498975585321373765812805429891051138257750357521044270861490938938394351358331504958770581930638601354726047687405436764576480026113156479163533946478715820133545952612388297168532465732931231473179623117863743420170963778061801536562676767277516462566593852465022488447054134883435158067561423559266271823679182528756913831929223392653454914354705583534041029028460197691020167526316368385509349054046647012310822537810182281810162307040974681897401852253811162625206689407369843453239127638435215170420018005962823347515761345817626042360687021338061639863183000659422224007652412340155358981234492118603441474409218711193631669361011480204211304567803959454277980909382548294342688186983604634131909454392582095480720078768637312733344750444483511816490713268383969716004488549525144690763443140967333950610011333556106246940456945850274938244488306180578191586899595479758069417751913142708811745072184559088930336281824549188433814010735634478963393709200892553145226639989043812485820368717622563412370841592874059426219421654959200526127420682116387984224356024499221851520325023132977989486098389012903968995202140334870592361307271631327728554283026815566416796137261935569657960729172804943491211358771900571556987207472554311414681912119026756582032511331839022144715125919744954689327073910989503491913789853607517129998296979908151978703258167687161816051417907770705168570430195846860870612034177669558144588458610639631282571903552103343509673103518449688749662640891931369138805667727047428937751130414274268961852689955001132598888435868455419290508822692063298715486354855814581598099230158773851398931912154179719972420375423877444712267582242905081226325601615856921202207841545678955036703362139736362988296601152256110615507262787684037901147778222707525281244049187012197992489707961169086623443869945923297268897774638773667626417801342207662028856452881140925897091594282768343583974877716086557282990948583474675889754232858784522979830840259163849084006432403956975267104819782869909734004830193351378585977962897119366661689249971731716360378756714213778775051460070268625530862325457139227163707071160573334824057139530272818433002813925748469187836605776478073929784718661811432167143287646740066785373044334189220991658463904884052783987071649851011080402183074577551445439296966958570374070632969377290125479420924668418903913408394374009487823027932114302360972872344412438985275399474620420360260133364952198069179094312027577967100157307519422821661486795652219030194165399106579007453755531811541163582531749597823927319225907281124154398785918542527674226025272171880377222964056152603070709105411451499465078761211904917584160721647553890831329147433952389282221220042705867047525065075957175796435649971191421040401118876242641885947362583987439666815538016572251328762775480444456234489433694807476644806173939480612060729847392893261553974249067881230325499961372761104694999948380590757671242971418357547470985456655897914433160902888809244268603046593015583340011107001994926698469999864603768888293601679711512563311759339447451481232557073958068721825683936752023475689394062854261702509064576440665496983284302041438250638061091988139628177434983812970516617918976408579414625422964108639639664425202631291470867510794625642314980609304526190822139579029295171687411789239545179934571098641769525615906475915164795473029035990520766574621018008037453824650357761208703469487326716016982915257750590279521160301594900895003411221846291543649215371008273047971079772018131890821916591711119650858113083755263098837697970686442900895305707095634713073577665390086747220483592252590188249822746527375673800102045867923312228392585181869625635988240927365879098231783587462889744630780019376169396005371029890678004976190016066342634903075732035007932663332166372048768879375825608682648117785260588061933965034097898384635002621130046474982409817088801891171871482632858930040725242938292760269171167653462784122886044424144295923595375786969746780409363981998664983108915046295940302717071630493305107691491448790971765676789375970938894796542602609580728075890715689729113975099812059178889679641922869316678937957806769993938195317651606596744514381508009313196489821280745648108662757430774866086139302004893065933225432403053366808776018936029535003942129579633481472813890619945532205976714661642299681487181435446569147520111285601957468892421898875668371487532186689023228890112948784564296650213347259460990201790087724570426746331522961509976985533805715914188282929674163823997690397373631578485594108566424873470176946693345808061444710759237457762595665868213179032192938733957409360919215112704035229452249539554398695773363027563508967181460723751749780579488176647771653487959097532062420524976946278977709366345324489556512564788077198562472719073012506867523178814725637478310493844991980260913382435396117137147317578479255213105579873009645242010989845556693291771526377645921590874081695982923622177353428642499373429052252399626116929210767972349296509772891708024234856261939088035392093295146418884475885873227351652439153525413459228691670338941259307709914411844098994222962634799070972254570397282343603440375773683811107453269083259498132937942068156847350366042450927458741399987852353665497058376151698039148094745639732738419987739664220095431237703600716611617509024240494376694025722464631038232229863126265418581932581989748646080517863061128251293567575963365157699782313274721878793603781178106405453232756905425949700467983665114752053129661613912218954111457260292321589943788789220326568384714422046400043672555196105537006478710460793552711533878464463439954304634956700608812971436255933633838709184676573196437467822166414845706294416428952927789001075805453288365401757772029434037645873979699065227600908825398211559625895252344365262314540296843304010795328553448575198182248706778598066072265064129083524871368196333794257156902432129291430234424132685749410640455989206434965288141555532479584035523484504914058253129778257615336832726310461998227550319676203182474080423128201397014472600130534942687680469684524500681545937192284863902919027779734828139930016094756717168790645077950204248838925146891617409967462546148992487399192255004494217568081792152747563722781103256095149699740413329166182019554408603439957558727375667759320140009438775535570172111021595383534749404514424324145071725750616376851891351159961228259836756629297900673131606452640299630650330107212106797192002174557411457889669616217684633684996682556842324948926067531581564306172589835063649033727043388850858411094788993418572349373174437057863928278647230022122297193313920893728182689510482230088894734831421916794352856832534187864457952020327244743575697592822428499238546182438177108773309439181195956184269348830868355933946158639290236584238453848467525994342051182298024589051362786011637863270878613965470086932740756675993343113370756233411548516761198156648274907743262539067861574902934660694786732290413894286801157842176650591682751056157058321445621292541694814517650743553533370185480511205113506500715830081215790746882612999083546702890858781941318792862605196030752931432316660205474344756967179920632978369652410724938940439824643938226527743331245930970925689756968223340759345571239746246252603015043109977602708355519432136805583824942039955289942104151889140151272192668406614922088668279949477663315611177555173505708751947078262316559491274725692504995491098222465411020969078315625591088212241814470003467942954998078886661080510289381207146959296149760639804888019297184403215179222512997450499799985641109857025571491684233267704379052460148733951509830842322101195612977749567389993143173336311595021900970064932614830469094706270573125350700654948537354977971047973076627038162027825873675227080231526048711720315435337413689686564785589692947202701753601969010263271282784363168170377613153861337595170717511260298786424221097200647395366086798486050844463207904020376445791206647500863458527719496502292953848990683701913405502738712370146149428162848787152529812333271020191487936481674220888083376129575988134891801213418638289456028273459763023618639511595020194982611521953292982377463214760248357496822756437365992382130586195445111650736809183107630625769085232926927614306217864004902920850294909992296853713405675214777673537348723855952337396938142489283708825481010665069350806384835033989621590884658318064762155248853388698889926084254690346922500200132520265028408795973694040374312293864753561918657409728106665687405979977441481609020487063550077381986712320106359094174049186483794779799443991440704590008663962242294336414885607596739178075426535916397159384699539944809699820145342032141060740350160341420071787747968478777316102307863886214219972149643872888380996012942633655788040574851700959119692361118234220612406783608287031889438029029012527963993713144163168334511196850401187385010421323379151512220588239169012787565094699990131150490458582528030231492004038163965035073967660025019757181772397092336443490293052967462690548915694855921082459005499870790568010894891023195135718760290438102491857923191461841140419459464496062379467902542270934233970061343749940169113950787438916573814602480621984732421940011208671722054593370287896869368422759091904538218975831848881175958932709560643773004763040617750521731258378153078683968023471427531348217903091906122382715189795829496005058713060907993678493121971581900929053527071185273036867585679361127914775194875562525061321121262420635630724150488319729540319025899323801720891298551470685292200632065694060659379863308827324160535338731403966823645999783135741182046195283298739145693524114505446523187991488601809793634670906336340546962941157672513438200636778926492017370873015510324173506776238163320378770590403619244463408214503865193476066274331242824749485414595457585255204356439830532364122241402673259405106769819587895895083534953318560492233675104419820663247719944302990081937740535597927393259743481614783394865655609036104798761097686605284360455444437813047853344194573062269563032790706348882044931778291728328503020699313079250022790727035271124908063394428531097493025204323708394241848432909170775343617147031546427564854283560234507812662926053686831466653614031240742524335367086698159833302308760649407357914010510147155173618648459823917828236199335845470807333216199291377365201047159209220260401620737565598691641030881906186118950350671262660738432736213316089858757693025633561128707793535422933307876967792762384362958672996872907204755402780558329367213038955247323121145901541242320154489031107461115753433644421379950573735842806561869532780989445256484378563108300022511606100655510123253345283557645348167923234112896362618725133204080772358641281909789281681435325363139483332230460902943772112792855258155990940271851660171487621756195308014458339921931907444848301472190656015540611700044944578070460126681339095407644127129366327683269605191167508724962642155206020073305921549180675966718036632454480499237453518934092921337148186043236398957414218472905765771482155858862392248004016403176671952326912634914870445518090515495512021775082041022660147992912005643877995711717022265841867542279978726474428165586451582915128516281894266350808611225228005445381695898564910716809416702786017289110585764174323976552600322366113614308292598735910889315653698763651245416068054804726439526766159362709189268617153668215744150887996247970519929831450683714199825887257669731833752991864329449268966417678223084613105444517796017872001018932919605755853686681031451699905267499720155768032530607006406822976276936630029143411008515415203388993953097811739846655716769537385906670157449941553015420517901546328600281785535764077549174476562673047536985412874447927100103685563118025807277169087347271530237001835750530256552565120150864664644185220744669866621866138598341904484863860027381657121053098232795328554978448954184245746278724478122602570514913986337415707005059799425509032260287213767372740798542120753797819662694385558624790304451590871305561654366130000194566301153002110985359219310381142901181629717746126018786553793042585185872640191512022383779137039224664018251636331749545559549583153721311276630559061141913955879313481164193181191053759088792223061866519917801303020646108796496927586337699129611612869865330891667274101208363405757021816634340947086134129544547259078385409668127101455857679120215609794713919573304062410504012504058686557704649953061434487723177685724253248706775483356018016131629335559230996465858087385275232162147953578336529145532384494150473505118703321105172200690991292971398230566380775609352022566316843221960671619385659999998075819349408112001607824601567305716477912268381039659966770848165998008406273434753616319669207370691994100819879621775181438561947451669308162860622547441346562585595464638848951460602259429134467983141169771714389621318654580313698831863339182097473548465760421865101584781362096801073748836563780618810266203321083481182841156769693627627331962494874760698494745838880944926633202066902701049140335705599121755117538916187794158663901623882741095181576156128415702652961448068489422756329953352578602608541514045820681933130275514312959471153965164851856503685079648886521148180431055271422068245826470271222732310695369959484352194718644016641667775972104007915096937617870953120106316245919333270172689952351393533166130741437250359662168556534104093853064418855315971535232596283958007359932235276559287969475296374515834884612777503217616920991906588987598754126130915073574469625988872400025681692207894652142468790982174643006665953086175637165621346881922275505848463510967295622254785352825817389448948287556542161215144547814267504661984838161521590513149708671936578204249322938786106830511463198111241769868161363470438190758601175884988432586697233907189626200072915556160637593545843934814507451193842565656209856973587103552294859096313948516095676898035558784259194591185803938643937409762551675684158347423027608128310580205295180321171983972935947271012022920820260047140919425123998552609645522028985730709619812811193195050227779890945465927213699668922252763111522584127408114704879376053175587669108422042592165714709690033655723800810776306429029149123953501347606571253719847425010404085297668477140209158304920551986451844867794206806048824689205643878319711052812339234458734044697433611867579749444249483574321060621154054786886225777364284545514415226173209079029347019026943864469896362025571669422576181760511213480029718650886683847686475703632368542203962765609474571456425014062916904729025328624710327823980971856200000960030336031404633553127465877127257091625512918192562992944679675840106274735986744291694406093492604676420020953596983837824463169017165441396842049914969706022932973164265971188053870919099439539932176536164395626521385198102866543102297015773936483549741430279108645900968634956246212237355160624529786123598359000708485967684469739893398643683901960422264712273838283096148942234985870310102382903833639763582380430030738935522396436933574752723149405458875253139845765988549032770789959526463479275053749111339181806312397541799313156380801596934286605561325601132072988891216804941707417710843191361727991449800401468784469483811274899700284001035719378148555914404835274815489772973132503059742951946968450519075637490342571068976765563390912544399696040346833949496445845326922198249504129181281077023270582357687758717896934108172075295722065716515259920340409893767687760739858556978845739022780825748802426828424640816966605292355644794127166277408411434769060891148466317111986621613201477188395063989705850397204801200823901711578626302087557642199016652200398776625380787351395282632188431067618645512305926634974230061717979254019999458454509561318211358904110988222352548084884300133212339293083523210158239707552944580311393050127360613672265607398807099604106881717759186399331270214353693413775866013202724300258622718688643244625957017282302544143775327775651423390047335776228691902672188348471511317439912810311796960981980789928845841744126299538815366425268144107468247502754708435913665560906289359204745234855935904432388997354627173652264427301246391206921257949407722451305028601701128947031754782559215804504130738965105417116037935670167040907207592604402074758444656622946814880447571502268273744974393343439490414694201696312138996202812834797037173262366406355252784436490819976037718993648326873860393586475374875102267649219588162955309324507512218853304701143077641308479048347166102966411053871450524735758140462146579405345061067551258747238724617806440212545764507052227652103961845358306807384152665976371850296101662325804816865123037393527848613700847140520571141742049472598795754582994016187843766105250742358851639266250926006567056554046618404584365833923194537700990789570649286907221684002810537447159057408305647711272026570419946741217676117507222790838530483425367062094726687909597273466913262147028531321040660022815931117170245297305460151403883200121100367334718912118686256814328581931540467917481603053148960357531186525637444290164066893392706131644974409420853529378535106642480366212061849483306476789908927640005286846150202544935332164352915977613041923877294002413596427497380774161966892876425576901120400478781152587778952197391455515611127419812463647708920561956400808367738873282908379649376450257901013919210981930610028127880129425736551677742442050171878406161189831778948672829907304776050250760830365182460434798118896324974012275708773053907311792932854299061719280762060916273249539566096229333353248642800441586855736267804690047988026064823430463553734474188705094717930277867571076215340838255704813712290574120987926319620411404611457340636635161343359162020860715755094809039949641094832326922129297354348125957658666979079762952610430067401583990639474223313908286160083233072267376386864375646530910548285633244716375003266765338042601074537008811381738173801999843870407536876628434497406626128949860427284397783817650738647490848701486221534763277379521450483264156277600270368612222938383605124477898715377348736873943771036308983306929413160449489868202683092157528846506460242049765242392254530730296348178855094557121695741622825203612327697288637130014648272330148665210643021710345566504191360579934123713203333048908514781392887204711382496114929842016343932185843786076982416351342747195159476255143122966369073793238888739175209640375185743475583662483889889509555822405331067952063031235456892376985843212737520327565791437623363756716142342218592693970407240373549932383233783933254154284103320013538251339691598704897939916539974247719460347779564040143272824164428249820325247213903885303403312392513582340001623229066491986516900622715988258348951463286293287401144516196757434171083878425800385870221860420655732916133270092434460361485737447300626402718036874883730426440391995253621476556210019177018946899744539918394807431962885732081593399504123611092588884481538867174610439118074913034580220918590004482329748460250794117871376404519230127623582329361422617129809133412959347508362642683945059618990784498780620787501068869942115916382139651377596035365600696586242717385986964895307785962656440401429994268820612548784451606996310677170797922555183760600769327241464455754279589721141184754123706944103773035072358432144206380769787768116719677942559495763844985711831305330810542755505600361938664457103973927520807163051885061570182342219567446947884988335690464308405236921094942647614186656203562503583766754796372679486496082029296429062146982678295744060840274817382587230752154799311051393499162320920114252305817271206622853973624917162893064156089377547687176652215766182741668622670866308890244270548461775985031358966522703979113147110243244651539298367315737017312989379524644632905396163655790310855329469014610374685431856321779652312370836987379161984799831118650040686765050479910518255679818126425861429132044843814810008874863642792509370625485483069400948443999049581434842539745900418024091667835119103130136735721859509486984748339138932877414660907562502053685270155111151613526359735020749943159543607262164440126757844402536927513520506097792316469696250125858890013937924143816078866486123172251780354193988934596306173566437799159883278974760321033848880973971021738760732593194243220788230366371980358958841098768055454681465010572613411159558703056396989608722047936999877329784179206961252791118047254292353360583103579319897420211794272122787269115191739423266347955129286929626874660559601302842846769848049153614031777522535063773894801560009497521970553176751030416462304882858984431236232507343550717874537574751695238270535935991028030052291410504383321599450768394074920763419725477682011904075431818494722951088560294978123154754303578175194326267335174021307241025301072632324016527522586228612126338334759225694651711969265107296445127946588632205629959276240793260639105974886768990235284792571642788851826552150641643577629676138685819353235868215677307391847577225860306983848430335913832971870989368016573557640050152083527938213534260321331824658893616321618838724637721449242021296916999366749597107156139132511504470972159268971081111540255247572538657735366600986856285110670625010467347785931523759501604932246672584645665287502843269175905997496789332175593977189013286308535859422392584956673471697410921525325074304457838192818582205467803012166295378610880054507466610981210450349137064178319764316857948471837735770308235259996262343168624406856238585315395275498073946511718677526231334645035718168791469318900034619648437079686013523815400307653536533927536295499605447416384446537709108175693102988653626036389499693510051448337272577689837893686932123436297638956266505581909654705901565015534983633182925350231479482869406261410172920320909471410909042420303203500614027265526420529126533023959002766727035364629051991315109019573304421523608344652565477802045871526511872752061811055128456937441279930972493507307016151320299886884557929448146088702623124145184736159247569055882781529549334320745253247381577555745778125419648370313472597993990458035439522752684052161755358778732490896515525173654288166045703522620544415882976054871938794727587479742510240421393777322447308620039506072975834908482912463905208418653757147601897140448208907715529162842885642389123581903369981767553233170610065500806045705369443871533032318562427537562950862362579564468007781986281441821007230576576715584781951775137872327504805973819698127435304551477219615685999162107985799832458384115698573612337905804671823720037760798548080161368625463062828239915094908050907311362595500768793377704737459247512723058782268961786123270654472146436406097164376694620463401402654652972744892200977386812647422147460762268567716596094030323578872342541460450406869893183493838321284910630131346207062349165759418910281331596319498892199879150287336599799299753838774907316287002962753044580071952795552364558218357227488611409565383969910234681901793454618346117262957794767097597848942152601784589305068072825820428226332811389885653768899952528985681262579434804547051715239736099141302127497280133481949976236843323359922893336147854164226715643709967706816773201175940123893238931283488035189479032949434750009055532183927461267120063266689614784550192690219540233829988679126452183415198961827008055608135482736344274469208389890533494166661832101898393909016957218403783480405175283349628810270940514734313538670619661845969672170519364479416667622276249203667217880038800628623473490705933292702358970461272592878486377255030948989519653600281114342448627812273780849093829378508367934700254534688742619005694891813069315663084966101851359477938569981368760197780375206811802880747498234474819041414514882743466113327249862104722311575376283894805007457043386421430351464169500434822334991849160772777094251442669873290138644501733034122763496429964787339801274803170039962152943875837164195322996423242196586999772844091719828025071619237284810520285268980283856604186917093355208335304367460237459711751023848183796531139966837786107582910340069175118071954402561393689181301849107856854238534895443089568649428792773258871073640311482848311100113679547439162607038260035639505511071999757543205887971819458071022421802116935534677258224348992262203220303284297766941564192825004975565336952493057768019517871168331718712813744656536984387916665376508798150302799102462064966969354701043195829900756028140028606406782367816043648522498132758892018345581325391546548022398842493381628654335247446542002037381016372791610260784441805275452414292229457242513520383718205124338504480145311674583995043911570991512755092641056505651744486363593761864176565322581752504559554006705769665293166616546391249117315893042617296954474458131475611473947550469373098645261936046124896889410416080714967459869836073257454508803216194391778842510763811542233088676380166750084613987703287372980596106605588952544110839487863426365425301188524189375438380306504165562797451394542952724865681879586200369377213724217402990803486845233768931642569420209958156923884343919751225068323865736163176115074441439178283681133547626561834991726526386625390588689698748874104085371840491317254656600817077609198641482454707271232607119044816303156707728341435215901771504758908156620715259501582420482946019480607676361632695131533866753108150920947662063024962575091513000858357146453743039993396829318543802815142070658545527925929971416655251956106657020912924572416201886804706866686926802506598504304959470860410202083747567228339766023150101758354257061866051014602350672442189560439522847365340421366570477009917159004140480754386285397153490675888695087802212518439641889027442328925229896658801890531482718925763054511580442349002707614196660913699810636462131166387154895426268476356990660626524673110692061115976395780029258274393832551647676441137999421934854941754441247078843746388348880956008651480604961895212221435389270314868943238951372645669091476145772512163049020274243308526714095316873209945836723270210969825046092109532118948762440041508063859218147886695673421804870785950410084224339833470751362712751938851506014728764253093812008102251814993241735424054012288066377380985763356894978226426420745619154659217760886929129918688176883847923678079342097237549526657686264377247803677334730063539371327486980035742982987689188100401193384746781019602853763158738939924952817165821012414993542945160213265868599702231540426853245092094965396005601071263705965755303191034529125401220211411189464236518133198651372822263864988706411695085646560594485735951119115888763034276824418469706824909384933211112859113171857521252422247624086800462903211179002157400816091002436745788562682510204391176863084365372591816306488212201140940689861635544913969496577364962637787850867469274784881849610909562106120024640088258975090475169124281160215912088622719131118383542189313882886498628336619902327715985405292332927040037343622211585729187019385476681494481088996883853671469479850361472684542545943207746596311828330618117900932744823473720783531444984712073071742503244342743116186352064383018833710644137918365994512649897048973399903444523228086948718123291467994166563532004212282822340901301996414401850467170684092900445088361425504046865834145730516982391848196370157250953740356016351095511985976040079356728586507128898413424588577217483914201664880458879718309550870454664811545097408083967189975654731697523576237589318383795441224141004814532050775972878806707761549645423944311987546494894862479712025363826986076056551841928701085152019947592163828629360743232903405689802559088551196512368457973927016921363123341432729766138742319994722340316261762281389540507628000825245942584129772463163914711790662874754681879522151966828684942070848670448758048115878750527901212687847653558810749584948616485795139513958141827745051283530984427792458895770477232674979518941913855501053084349266037121912063458930138226621954770778500538260275938630232383250985802837946378669638016961266657014886845635179681213563920231187038599396034063072047902562805940474837075640071863856305532637497814602777139807147438439646983483870443438340421772169386143687134901086710960976212680543096652698422246341487452220391650764071750145564228199350060395729871239703162699295354354238047564680755428113014406445175372954600336224236663297854465607379948637993484014780826657380398270276334102885354421999693664379982751340824144477487390658336341979399266474100738514016150807985910053180165419589485643822501942304655755816612468797273323996435168806837631333556372523352856199909430895480410845612884480029703706281565357896311910430507779325017261772049050520160550815876458395057419941196924078028167417087446065118890179447302943284869785110582285753919685052961752432340742281512548438756900152325555961047461733673194887104927540298902998974429414261120605947724529639323443145060034152982764093154872310739772645702824836509925969002709317629127157294112800625154830142442600850142913089446081675497706043378921705542634410577072750140663694081417253400981784974586680181356022997581953406548317007144967685251403547602010958022372182126304848569509449923174395895469941022821115354471196466873363694712813042204034177328314842749662046007674019026727582642603775713318558396482757337676803162738380995064936378031972627440976320922031742045594346443587195896663336244587392931797162374819163640648372734642498267419285721149083460658325585200553997902841858054382517095446151971545259912150724266079227979457779244436349816830367179066196474225723774075397024960565759536675364531261293483186415066684521016978672590278828748692731297567236537939850427274521003506986039585323604078141395382348101219160350375121168820916995628776281709348022031034481891222305981283514981559528402560836644940830953705002820985829971526336134953553640069459349603900651669957357114014186866537786340478687642029683656560181130426776812517412993820069488543731807518899589373277897909748283166660375148148084132163500443979992920443577842564291949304847597089837247531444070371957402707062419194352666278372966500488289004216988295666567398817573137045461647306288631472567187642003272171793529517817428056608148061257169375505066206446049319111734119306781738170976627371864709663689620356879155463646476642269431228807647123905023552434321848387092245053031851299478068852750023679100053621383472159556842284710101024820589942486129454696433054453831879102107051893969760051611617515062459590936003406613706915901218756618471664495508464460908687413901998638752799978048320417900993242690409745769754725016228419688251653508847547908004687879959721910669964632912756685045567769254756845966200607340736481661647057114343631532982337848602347999352202245649653317375132628542090273016680101832208581963791028782129141915919413847483750282394626086154304787490634951925065423248681617689825025458641995991608339371736815761009138680428788362196462985106304902471673976155315977083332345527563178893322053362371873077910692863222327667304854426383210102669707844339550534593639188410441256968235945554554242781417041947357858393028506051675705285632008580645572354403631702635862814346838041945616937711800552820583691174358590057445186196046227022056647926322207892757459126542494878735657528355345493754548722858748254429284248388807146038803375032381737517150213121275288783938570353106249933347357195746144192927478042123502141129553367203711527169173942100919669834024408130702775723013746237210093001799235279152619948410337112730150619768783353834548488246951849479314632527680080295155835994413771412815493212124112000558500970790697709471060864315364923247169981828092858616814696240277066789744613609249833482607481341217049256427837982306598430960310042406517944893357284032523555940704720752043726188231158850799944701234868110996973774138584789445039661571615981962974754386078057057884880172677757588050084510974650092938722297921308426345249457710043661365261855020680822064883064204227882083380901342407219423515851311936213351478698308737280791276391646970065080236933188178693915438799787770998631707892764042043388014730661566630221620144548164089674777679393415503884959452250377993208962903758481390031205893702622847348947370364627346424205082077484043046670920201606298708680205710602885179713367529883565809435859873039297893776936662098296136624551529246171888966092492943909617666542384763827058582398463873458447076306848039438507092814939455833704366560547033938369394595501404582662450543997521299628317220120488601102847821108271848719679310706959942299914187570704941071413668795241616353354171647716315272368730336031819074999104564723007333806202588817747973232599803685973749555931785710881517143913380080256349474218241112686543976818881946823144382480999761754043707492332796538820161293466041902016639016011126588483324500986487432084195961897466517708590510975076335531243241773613137273434561680604818951175198266338791154969299347129721997577568596600706177671015662443103564064807622617368170617611074886844916188870548542939051893351222996764624301168621257357195903680651343474130834041739687895993138286850249603837886843418600040249316762353850889863736132965750890468224289403181348542664278197914799628326814561854937866298666331440573469752856294518219250523735887901765362802730105260207371350199139385856796526258750911732977490474659356448164985950661007195339529294147008078577081542092758398021730976356437204769590584040010487018548424389753742635589606907790741155213460702694164985278954372123735318634137565129519977900845125042765352622920932872270427701049265838913271363172001095382367931290365789188256315138249935420684904498774684625253443480262311092656579922722757645167181987820347950702897094536366972831264658018677430102515548706702911519584782650969435616093669837237133208729785953651699603942184485292447334351947998266653204560210407402558449997931425996475397730117696183272056983519466754212568359932622439128323668956726971861343472727093765616220932928284666627192090058968390802946271299654738579337619223756979126856094908068519165901445278640718286989488711782820099888841147265936013593259142083540409252615565278457862056279404846504119653693179550448027952036597234030348895551840228774447209025046933379285669547182320031583305765832676072121577439930722110424117383119677374805828616660521208658704725162685786061054032938490463519603225516035343307020437673209958503543291919069443925063036378075057112073305521420587887362109038575778940380219841325158460438882349346020974186675537832626383078034082503483771568099919812143217035521850807870823371677611992130629121154583874743131057798550756047047766951887314452138783510318732401849099961900840916804390299949953403612013673947352352770542721370355869440004390121847812993732640591676672583645317139614503103896695171791057562232156675253913185822647373915113521006674466032240809995538410302340531514070869202228010246031711212675373781918630636497218097634364557249389584264955750650574968303096446899122959824906128233236762905239351607720081639979780829700517250253564499842021043137366606318059791168762021665327280704454921832477896456144557385470664425777693486879940659421615401295390345642099145084004584320773265310174985494184580356103458879151430972052983837037478803694865212188462254233714987210470612851697434705788492522734822560477960499957598214676577696718812360308476456930733369212843134905803531154279806737517290723188378513950094553103305938083006237760050232322424894801340822805179514331619412776466533753608785129469372245522504462125966688285413418388344001350770092392202062712514294561129928402921205588482050216006685442110007639460934291862331120892960919495091230902981680416686749317224123242354825388639303015010855348613536648037570065645818994455531747578867959640514631458366266076255436894387659593732560330700412971623419741333343671436860087568717155006394779233959568876388052710370995863581433704599192335859600422791623663168949462217369159758113141721182283132177542721461414638258267150488703225263095792016275307768864617720633657971078360154483180205792809821334281112894607575930360601021995409058122475798721656798621511141322005934029953139657176842436283001889357188076612678446474961557972510904106670496087277545784808723658715699219501680314844043623157265007512293310860351081382326536719053026777627071199700280482550370004348761992876018757563226838409663269904948832778795818452727849168270164389568403942699370007027177525227130652438909621011126153997716887281546571734745498954125701917261733254370375990262877139821907170735791878650695256484627511890575702253939453339277976362411254590491577132866682831624305168625861047145515145749141687297343683415845105823907516917829285606549595774181066196241651623497974382502684072957120123770973360253420928135182343015560591242071690949593360518792061489619171671117157179963677355810249118718505529213742855200650417073675095117295141588261416011736563535711901675358886702114902976263190830680400823016312837598545355226728699750892479808358575441378662646503802794565947307135477808860919540446324465339694022201572311867768721608259883199237890726072224944643995218327417507566082923900466547142470930972142038684180230866091040016596653797595128340237954205106772676973823777953463399529096338855092987731939932590185420962587118358166373503126729848452955886759056528583692818852746362405352924855430722088796668271618136834372544307682717335038051832032566118234830996179509665373995681681720160303851281620541976337834986879276081808667492430104764380527962350977856797565492192037513428517860322744902472561989930949205674243215021221618865554333673225673249454201754349447058965426585121735972642674750214338862027143148779641839153075035514234310489080760222614435516185047298937431374496727691357609504917701688089556563327901458744907785397044982166856730351912962090484156357600984215711836440563016846924830550289149646669697740922859733445689109850060912273612965387432119459009697484479008313947046878000808714606332805579395377137978379284635745989306381443514234814946162025483265357403549675723779554550157456505371163758545426770065329582756296366259418976211120664071735864958939177785631808846558609679025396523051357882910951772668343216924450252923422413522207267082750563894806772875053420607310056442074279624643598747316127278275741203575474907366356730719697853995152850867737915091478805939654151241553627822506457599518520243244119423282680855259892461523634035607827917096319823783293434418346740051208898606507193590380459510030490657732588217964032165157263123787587507437693249898975329216710194888345114382248597203534778586447519634135679171213525280395194855344865358364033699772161058074944782869186493323331364985501966975644514397165467955348350138540089238816311095895723121105435112007562990174542997198240701574683101830756393067103378670591193586466035988051002688666656419925489714283899420672745480306484220063624339802488156881285493306722852168353033496008530997974231933453469096036584284829173488324867297157297218697962000110750671487511840980729693068742667798339554054866949187303305605242472051597079653520313128441615511134372891169761924660310803242456013672894424621530744795998938950924166599908572538959089897007651357730736410880651084265543932029399885978631561483763739451554308165261976898727421140654903483157706251062188759214383223969539351599405574887581187232749328435936413268587745439023014293318485685594194590432256879690317573258047978730341476305014080485404177618449037065508329796861215791806243962882566009832529929188243781561117802402071799583537896904831230358605535397625808701225908070620946401291596316709357033038131121085621853017526770483915542553215591944194125172365072938244871292078453475424164345835444315044276832823991963186877022919638392868745916202825480440394092892198815398097250316652626041511869239902441829855551193412472507186217253898691033678921121642844187117997129865272729690165299715746128205647379992496676228989635673122425868946290997582402075988061496948137915367365033642714124275524520918766556182423223848706301283549412737839789835124712174935733014811662932429595645247876047467227441080066596736557589480024546869393791364644250882677154662237074362340790009971261023866930487565446776733457067960955442720526194284990502615887313316831504690114051159560821457139725781768495093007479762846400306534221062153603407493310324156435490766517091125138760621024747781970442290007395776780555202121509742725308429942210642865950288695730778089189655254878635782689719322377652198215463516381376126423060489398945850615830181062158100758380698956548302158277121202886781197580661623872278775264612926650269681945369687050328408817033119530880615880051594221809523985307261259901559921238557646221310502577917727879193583343770093579841589488714700095123597041516173417593447982426712950857747589488725535976401813541290296606229350436043127551838058981431249366031358361241673807830752964719606346883146563828140449301228151620245669434208388281767530143364598465572102540280763920894129059018055147697395822260563607269028367932344865905232003344276989950165912860150546841191910032919617367439985460463945352632768603213209921294645138574515613780920936215514511756552453811439672225180455387455831121737597613009582403594115891426333676040584611644594091499060286336932593023669851312749832666232101101692205763219959470468517908393346764831155604526969847202291122036425790094849533847201808014916776820322403694703210780185354682785468930448930006636968322137060032212451436490258711139100655215898881855991752003721164122211450607667315356927744281494861793083197977115213320085249424801721382326979468996779521048535051861818375215195276009720229514453005840419725966328390808787023712851351221705914786868173828494519092853671760741911177272462751814536712051584842597729008725240552892634582051266013465640077071785740390840364481717067843659746660371026837655154943726051448805964073951949306707861990734769539599964423852936254387353095377210324069446322333899170974613696579212869942564630147380737686923185793184904437239062109885261589195109715463905090479391296416311665312247659723608615939429067092836775925975686458570778539617093011462067960989980970260470263631070684925150272735917550890301452549057956282066846888248709508059070038570129837051564603643579500188811101750028344985147782672381835370782175998595297979795419893097707548110186845576411028839927373429171498032182685272186316509536404746750751321360231403912264471167779809685332440983392171745521851952225478613492221892231257231138246034982566931573008055560265657300931722202423908700172909548816587038313960075666802900794507845357562027267532497413901443127996265189024648371566855364980110036726401575403925945939632850824886971887021974868976504211721950126665129252919178274456324383288066884870227601519211398560561869049611749758450566792711098498230088770420589369391862040261253588680505598241202158864041506992884904119237056652419672931979662237849966011792600789026401267045995426531190682286009129847971216961915676081714423842822486449088537484366480051964495237060396834317177329717424347796052085053857024853438868462685996673111322204297686044395362379194844524089935819303876588002959415528846730364772248716260462522065244647310434551122780093037274272126989221590572216720057375290417966935391111060968393143765632915300544562880711106436625822694273125753000392775896122079311466184215011553567962951146253378976310718312875929764563977376026044947448407296500401101300712525166138929941502726415941263734286701785621975091214085954165980550539614187177388353043181856942430824807195658999821194364460785548994620948493407909868232860288388816736147014153280938506275046888814677408568349048982497077180064507049406260647218588362127242825363697209634533725099021874134719417381791941922918660209203032274630776028015977042242032589963695630088594491413847136521042981038595644445869281401210454277867116921986147312659052160985542924016120957315766939136990659688776661760489256522632284833614425388106639333730797416870480912304780706767571491545387406937436918011946678660307837095401897836352913952070268263693617931610760493307263348613805978143238199731015383183097446085262736327534587781855412459576463348707060288708530787590291647595959492518203063728587362546153110708186978789103660327100702686991326349627643140635766873731851817731762043605324773242507235750507328707105570783499379687014299288915613704015686789263630886693316177632049702384976660720279248417172024121636187225890246521322260483053696677092032247954652219739895490774674454356130455580754401487940471572612496447784862603925115058954395517606919382520728702424462318386252210871565056577272220062558866167889809698684310615799422179449579377472285908732654919013154461960553787343412860630140761126113477256255790892179986145183637104234291112062079589523044237280337325064004040467172871296048400565536980753645764075890289199558148312644634537558896089895707610852800305093609984348716070502475405848534943455058214516273778249285612799582547721739165661587429231933346269918881384682354618765750003802536938623903775888233492848591810787394606265833045692449802606097092744372472339677777250605553084844379877279124506166788993695182880216142178362245051820529737436136596907034297621194942738706777422105101277983270525786004384579913941874766211250839299618735230005855288191496834407188258712125951378330381590970279770191093671027607197931308271857599004867326427099249054492309329448910916528770149776940022917716719243288367098790939330997739054737315061030277509844252215826615249491729497116662275381866785447871217803399610760713506870688729372575431799763481002077035791796177807082625126667747398611146876852038082961069767082701263024409469632009300515095673360285191241740588975407215297121875621639825241950872919863051696620608492313143690981600651097186211641619480782613589726789884271859573237547503339044855648915743866876081262069300117463557705682305519646709487394750287289609953081416153717371689083386395032248653239146915499242358785022419582609872618943978205424001294177287976467555847681388404040364681481710047151914054023293579733687098053344489842298601820468521074636217414077366139246123094040355622701932357807647498992976096622026040292322864478893871041553114928235019828187205766053847315438547502323355485677761228762984654962933795722695940387915102756216626834152213691947807655226414062850584253827330371264156635418624932526894768969424427479521414927234660268402302631334503122663311598734598039835613153312675905001907879571431361035906766672327219616584672922021552826736050797801905922745959406274935922763087585200677260983617848409750891077632614157807305450751010551216347716399285654821826379607496060758735024003919874625689024155806237886027262108154639757207135840107831754677532098981335033123869519785676126142829630874831673358393748483391299246691718961205964417643737819948034342593160791348039334387018798512759589760724826298391357859443896946909734452807201289009972025279924818740368911622128455121713677126224252244491565721460193909887809442848440177605867028207435078626136916112662804838520773354777199328148515438192319085261807490632895447713030415930646041278649916198847158076406783343621203219082779498605835574680833235717564631401346374138764539206722864343207727046507863607348488740925201722968158177157521921993325846368879214271100195246035255244986375172297900435323979668311231858947874050663682273823576645290519310574357936513438801067800865041368616053202709596459510052741574666471675980834481054419036394209506628447900805819405962604125673314339742879537217773518666038374156767869634809111229149527277168850763085865314527436664227469493333554910833192125569525025704281052996296829202882726985075968217888821633024987113912424162044347965255979507085337058158335496691144973572264524897721913432282409121506786082157911845098717039870426531994545848095137219345585970734412090640715115069940026162760057112998360449899346258129145385145430133635212587276155840554501945400544803497916931386341013672810515929335528087296898569639038507739832530136759332662435863022837918672243991374355064169919731766589548865010280808820651812790943136869728064785304225639251334777645580018856524461350876063074650622104452902004987146808455060883173303901074686339222320872458080689197357284301551186517075590126662080598230581121651380605275060877982031802899864662607511721393004952214060050428032361201131576032149135126943994586096710912701671808353518274921192118168686901868054548174008690385682298724299161973366699728699850142986586435389313462160861262343661597580356205003133875618093848999896918730942409517034729800159902485863547463206006547602474776155122542381731539276603995989208863788063418408353179755450248781732298415474402517972470349013828772366543387205230909067615673969790657514121126501487642032675470907514518452293377935438830367203746517152068794526524430948145795094238939644781186227889775422838066822999714660060240484114210185145476677510702052145775957676479360342924908020601088135964029391063646948381251227585727078537824883756305118633746224351494627077579764290886624451425516872118338610735218075080538649518126982420900470789402704478038350714297739589939546643973952727027772890266616313728583895753231460626889042853669005120538548500605121714296651622731640097419856869357527620300727568126421753381579942667341259476451845010262833829794492627139895904446691491790723965197403996699461930147248124341632079340537576577250620846847077858979282135758285815591260843043734514660015358411252883479214111828506367847159951066280947510026863670665440927472451468103542486601727451494602633292523000911963750293079218798863861061281941270819460303437409057756475116029319024097144693679197239797418274079706448050432130241084379005337303655908997001415649104230355841991627173839667808351096409252584111193118899939601602206636137942568022077727058088441210655447995101039720616111240590882103478516759682791619024157232895205527067495718021896844060706882691695260413377820348664554504574091823793056134363371423260357088401904932800176617773616586435965834811695484395256600876339090416980012884968433208087678804323981436606321594087117728176029709629510424996962621358366602716034536582024650331755200622614670396357775244588493868132277306360225095358752793017086172507671290588090587279585650596515264184334120743644579734291892297523680392908729413284563121416139017771939845008236000335882105833493464477265567062564021967004669851869374785434418956201802442494242603221384642197660008943887453551448392685418630621395876239379421265693227739610397674805358123807470844102944325271531447632879002796692290833585991842058657179338230877713960088071052023063528874638731078384493715953373547275143598120301012249288328032361591178688752853853129445653550606241645502868084263361166902061958602774531099845967894552578163880366336795198360419667907777392144429148194368740704877975333119337128657930944282145086699528481642054398229952253578671198204501026384744958984212884120517247539167145207176983872358049790949701082752392642185855713839896387874708129419455401188745431149781085263833383145784015500080303348685577128079275990918191949173281048947032205384201148081734185384539904845008948031120678930188459257351263028566399751930401158769994211446892682170787110684897610630794112338488776985880548196541523012302149480450977134151609742748148602964064189434842864105163551443798908736810198826185546197321795547253599292873692907275789172937772475930666996322669436494416086638958117589941812750956494763240436671223423842950640081807688547002020730316613468353752327180140659584383037337371380898843253575684061402512763164260290534244288289911086898379906529435901745223261740693373451582488854146531494589149514126754449036206742978943885306231408862391457149684976943828380889894108866907721999903482467287990422528313011129667057847593011431056501828033602702702425521402611368044427888749304637749080819085570767831858203410943198804511060367522080453365546676765303209181670172691773731028965342278247885738778490288700561807606168631136080077835881706975054530770196933619108277382862371751500974102656760484060836652046383276237926789283054112187178836774572436318941306493695839053773121759293366850868243704327317945016850579194277611818710075326758846588651897617031772329448027907312940870116384243747576438533406905443525395612311810180556774712334809567179116779214158959847792984546472890459649333183400141441965450281147837143560794212926822145992766155641413776638892567044697133973088933220589186244630123155484340246106514278606660689379317498877948539009161754543679541837608071101439397300011975332120320898317632378884996348441925512396538236453898057473283089357311960575152859475694389247427670107072137229589144675869366682968335802628568049569980596992900628172814120826308250093743799794987950944464970990980494744505046041757339085335008927613872356087299636300895738699898657583878014926803359094630228306114173876908431221818269597680531842496406725250433215417363682701400598314063445507091291263208481395583786434148202325312392100443138977930985093263026656744354804551876943292154017263162747877379843173062451245596792666750657018008456174043343904490406357917035282452941963715132720694640238592033256675015273383100942621811423842295494787064917821984564212292642242532497099268495793465300789539917895807855746034051536560618387139562918610562438753871117981561082929728911702047304358058946048626571558801413894885816120177565667811221659188910420045066518369707392248382971983127274322248064813386000858914176545195047517043230899891331805266381868107335575560890894854709724988499204400595605576804078977742032552107979604810934910838558476123771522944960852674494798953617462261505299605485261700041882242455501244502081690978604572893287092068282680199267992590137309226864783994387578799080468302342923864124122837081733321358576073657805503357313683529047544633443134788457730779754314689163394513758925652974439292690207175085755167260747173022431635707541996032777264693034412431925768732800982552320033293626967611498318295732588931679616843730206782897586224719040555169995608198203291235314046413281974389562851907100256370648327925299727509322823945788998374094058840170092779099861123252320934411057558409764514463277852884262759703194200980964949965892203333597676900084415772879642231620190587263493573105610854428267778267999129680771388274846041464161484141749893140829925553139277655436035999270094779069226861514156651282240774111918989833724789092739990626205884865391802219132547486760402317309996547955555190905072894978017698301404589326426733355878337004843250871215425720146957694189799846894322848764220440214512357786837905448652356519342347246582042343006634455627711345554606541960836850316982837659463604688211625739532221106077275758174148186953633136890560632290641531930520258109948299406533735756387208593586173608533946180694257764146393485521998244521220903142339494103944825996546488388173627247806058060980847903981185201314973784656442408886321102760992249250077350287598891565914020208068743156162247602496003600168190751210462952537155429935889577229942327147219087391045949935951550277427507542373054436050840095933079987848511926711971080957623603015778651295880610184280499413834514180877813458363788861251843633410161830263735670660657058025894968652000442134165978165794075151556567558019535574098413187731883817107437926172628662145361970001193519224543154046232522109442729856607536275381258118615504672322571065638282817700708426409318428283932815015318895856759061742373198595616502302042927688536589977925641856523208043405523275479536157439467466233913797983076634021278782943141074094202637900798461851506279702554898847673183641305780351985563958984976648023582460232940683980768771678060473280647572395115429455448496208788076448901154681574311702502555236102787418598106120010234580099085044479047856580836112776447184837124779974768023602290392750865253988452520809103529344424884143014189890760038507744320438960052232806838877348620461698320851090277985798141483291658638563753606664912224248972919293676930974698518432940784434014857981298911466298238242057671957001340416078341761237154183796160074359992043731071359490900053106328020135174015050462093433994258447142803423949912345724055729787646393492156210990434876842621850216083451952483435827384499685700572677367728294588932852829705143896933744674848103610201080886682490681584368309648849292769380686284419685666707520980418275980314624003068822438573161064070058372261880055671890715447084270186842908267834643801704036389949805481575593544552264475560440206478470687318861242186792697371754707936615348327262786808703714081444454095478722439929373776382774694834123725839251204752298304304833379452048038802203456092770529755981616627920206740599610830388165995404562755678112733338388794788511938793562672623218435259186408660391104800338754310142562046421297288860902605440441466366455182312006168743289332757890089232440142122192387795634042372757972580505054869729411388449641067054017807395273723857363599472376764194290314656960104306058889513199305422033924541697074564997066122016219670156974163009628645037114441912828202693728225761901944780212826729439719094216172635316164093327629628997822882172627274108898867954310439081864099337247020431130951842194466780397548421875478144351043011029937007807716301130924958064842079233802483511257120476502098546861041082003212654368822960238402428627367538311472247856882533771803763318427022192976348751733803729128015570591119920824455387956321134305254906990274760257333765693451607334474329081896854013605392509504533966955440041272910408285244557658420952320679288887146588205871630046201142696716612112525812198500624716416560434850729276724849928528869391475977327516964087973158065692634233485508471437221832830436469094597657753866959265623571575256235749345268859766576729083470575214344379086866990206254218822481053755593581682723940610318564934232830125390392360425284246650389196912100362861983695702831178669153814658145488701375908333707357061982752784863025377308617942505253631923130192879501912821713104771302463012383740165027541350040668974799775582272674714948529996038536537065766337446210655071036167533029273534086187214087647586480671743660805813250745435331679860566124345832836652142017030480457166652563013387800204787990900027343639103662565800623617576428379146256152640076980982916365343614645178229685003342692766537713249791518656531921358756246034409177504906062205127269983086644535066514887600923609037404361811781238331883393433993451303094169000010123940739924426068534506488434890853597762643640667817470811880243875513558999578278751093040055147458489513899204058774208704993676618399785866545051126671657815962091444142437745797205382450612391380702567205860985543981470563956862431365172266510282096838823462697219014435180449160412065091982438297732887932847245146316197650293909493828485226607898259980689168922123882864262070083921506178613167835404003967180842933480617762451393346089526742513126411749123734117881284179165270701070137780918699122612385803050566375434725004773992380660631791428469385339148507933313271457045702024374136551424267063639955723197597995791881057972074628906726057659004199425534831618686734937251012081004780766993643353628519234914455481035817876719562884387589622639612317580433108100145456555678811657001120088995608411411922001991836734538610318656061132847639888231210315221785805696360576622254050623150971094878854269445593963181743606051662484613835937114042253951209861833758349263777203499647535829616055877826120541537391531653745859518472338359670454350517007181470350013662827859974666052913848106784291703234397702864667404901050397741538474830069575588369645076192184164629016995090339452769933969066603391135018610616337015352084956143783118632868745407167613658124852910349209747920412432934946638416817459136191260616090479612432808177469890359004308283492492260620849176170536843752176006827733499839247643351577551085167384169493990523563712670210584860436628220503880425111861829975704986727173269269712519067343852661865128259408159989547872441724834156878370806133980486169809497189719197610655171136762890166362178099845565165965384048174401685252689139751177787856488594652112747798391313139865666973114766419696112156818633702881846066600337729689300975310031202113230711167427865328243188883372637306694515986357924828811884773018925368764442561224590924007758559679832690375400045262258965746901355003636328381746573375684309649506899409043936646101436022631460056329768674923987262995014480429032504568673159386324869887495525967769130864444619848422394554813776976984095175712918261207169359502923417986794499805945112855123771574030085805760258376265314876465885597955760574652957687039872220073021684721717883637684215764537346983025995058556262018670261902399841008002482697769237305300133944183392259498340219066555945497357702951958497614557267336112346041198777836205742785652654918805885204127912376848289676012154649892712972089792836196184460705108285063134981822219765625961161175946399456068272451000026744010981596743458241844078480006214726028109218070836455975161865747786660564191007167334485908423304811782049597092993108619242563696198317563818812254284764446582130523975005866866941534720297073512950225347168145800939927710128946059404116890348895903194956013914899689004088688511712552894771626169017635091597605146164998162778790279636482077745387772873305046158582744410561666448784705645570788437643999671714051269491803401829643362237079212935911927125002584678009177142714855607446637799981874774581377503151243853343446506952566191295267830869857879423051007647696467745637345396648553745496638778862303839607843619119321115075494819695563429990281735069668481913844955780798480658333170859520371547049905166467971836635372253311363173874252045847498920410351901775900487835687105572542148077110889709075960203461219704474826563877947927243384132780383952323207527448699351536675395820841448862487753812447455411878077465619889608069319283406458835987089081523592692510866497161513806031858058283967794912753962484003432425748429582977133917057777646061623366033048348264856702392675843802997193135334025037337201011640432615482647722846108733307799514676209704377804253299042652003304245753544416771287437055349983985812102918305240135178890809288059506707078193599618094639803459808572884017390846849301050831369916508298275893713016627743664133444364614805971531748619742462984260452697122171300641579416471952361873249397993070156788006454127208789822449704470797117382162541831770380861273344458221606512568017624347734141223098572272332700116714290609296448860381270531468184627681816494361399698810517864521675820333212442329302421390975344249711943532101004892872635677688298864661379815384028232845000100187851939165094237631703262976626167849369650768903317641133004879934321729763276747803446808118551553263082070769701470984316988377851344500729657896026510611243417201903699947868752853052976363133302352657375376530780590996377172666699708757248174878103961131377168377830457898167965878899760274264812228236362541119780827250045020640640471608886643988580662231135304156786323627249210003525161171328623621189102446591262697184287325163842374180334714016699757965649194187602233348464702673436770273757459330228479631568939887796206266139008784638750375845841796865941901181774955597834183783906838233120562374384188474625841046452842845719788193039342740220665882430782209238493733083507718267416518910616542815931287581701947886817261204678939369125539355860384070688472664929994514298361954819554838169083602570083623069040927826020762773050346948127184159823634652471735977866774918535057931698181663450370872709570721924777166451957936827028193375805612827737318716052981989156022832758695393689144579428781999737539869736329396864894925869890969669904104834627882101824733004010057631555413505176494949594419040777015553459403456388301843940387988885199487212848898393661467768259255761889426468295851420791738233259198630558319083198705919369400211968074637621176921103545960053285541861051877630964226460027525051588217037087541745694790142024188465399986716254642840855019205401213755844494833420962298307190059048702238125304474232179149569334814933364823400563432814007772412718688911610314866706662274767757602423455827434325672472965635849717184436694140453374946597876105863640048861499459399308192933274102883696676403097521070832143139166686105768421335969929702953905493035822799580980107634276866588240453128728831606864323234918605047327820919963575727532658112880186159970138851870563196452289639015914206950960472982006022179429983099913469373996531982260961706834879125873413499359274820640292366528741094276829149984224012199155283318471185975447370128858124675325981274778223248913366211163307475378184130845843474817388839410823621051107719202724355775179233620150576781822937218801135531708106864757644817556277370050988342801282200820464437630164051389659827629144121197959673574260491112612112707735730742770252474721106487351745660106755579963751193629867405548860542421076324865699544182958911294497965888898807667859007707162837171472283015981792079238963953177074541303709718294163160763169592509015465488583462625226096718966107395581712706467438786288581399012202269815665801403113801325015746659209640238501984669530271865270046191325197200506879992138057128913884979547380058857812721810378739678641650466971624088339229875798878624635409173740705512762896887536794491487025491140851037087616416627108782649867581361951787606610598427464150860749637692621612590617172126795335921712989568017796109395135242023167247269070515214536633769992545613943882724413975025016809637238686003497751945751143991731207287840768118585510230728533515027692255990866354016118837755687763634740592561358101141989001228043042026775552518060514780809104384454165184937311151982449046234722492126609148315858160541288484454706814117647007507695325363002628334275442183037191233124125916442655545207934622965055072542106024952881102702589213208943227464261225100650465213442891513373892141646615325995157866820380815433122070568415375186984557299984294721151010595445419003249502512577746601819500129846093730935688970200168245761900228925117191999705285893746524255456855401960098339108199506188823902579277566698702798189703019340082620476149955422013789986532931426962632257815866485665005342789365413072589341561273323866326286553861799652690917727800789170612469111330227270615814364024122489804618370931073430279747777915063451378191903817963757532070492825071897464672005730272677323628944055630801418524761408326878699453912947961842897711209721869374171819388663932951113851273083875099153935315713294662756590488933154579961246700512442747300930742379991805627055030496440189039302267189275209083410115870505506470229807337118431856293043236142029399358924661318273980958220771161518666650230961022862979671507617387675638150134928462199229820017665150185646407423036818141681800732291325000682589583410829939748756023302388961520537035402750124158917972249120996079598509416545447785821279537536709160833464943993184636187490719767074975972050758680059513250603750110962607929496383480863874560185283739697077821647477565096945958378519943659366644909939847361459140874464132237003182175016343804743214772090277100054994120258330446947346310297172716899395810860362776325064072562676441554926698615427242204507785786035591605092110668525818403697639665523496318106111137506649321862390172965325905925736594316920544960660245855001362472714628212396590440080126285235519282652733994927313148673617377694320649209737999253392979214514700229331839408913772801900777836947806436298607728837568003475882659247452596698235883288794704744383092020780438358494911234065169794715803779646635067789587545040664142757780920753403919586042475251727046005083292018233368299138908216269620322741002139085641748112338920308097765345877571169279239576954540631485254385567117705867781268748499918588497972448668298582985350213192373254851807251233192497722510724600014201165293816689496435155878722946188501496006165867617231072230769199762850540650953672817336631692432688762523766509604830269732916778754711600345402054483373659613309403851974118450037890978461560583642482535816671405992151924101984205429344910181333276181487405952283466788623244679820887035247055513192032585791996545488087312685987190097063766316562808153812600458492570223890310974728480578318773303780706889754967235267087020009628724718444136291483221342181124376429256607695547588025248872463884558852789099365142757247987292893383126194198892032171925719308922494218065338183238503261197045737236995621531878874707494282768134164855798925727290507311855539721889830273014397244284497944521229661011901728707799397572560969405331432767324414076483856749331127640612661979829692214309821863466883381935294425495481163723491271174836485932210993734421386508143322104972070511182200727995536020096420054431014107599688613169460505053007969551723549923888156969487317906991330530414534158952443947105244159171039440856456684542911007795145472324468498996279863028447390639794636593285700805439987124446425166301186415283037624637408342437060267823165516972206190488446873822790830583012014993962260996177862805023743447697240433252640732279025634003675446635078053151646411470868407637868470767652872284111433675034927002387437389410759215192847934256888982169371200810844689386899735169120880914484836524300254677626714672212752901754497537568764427504748035300028203882606145807781701000071291516485521701047768840637112956471496648487042647701924251875723991992074242575764284543531678456066028267195272131890145754275070842673914848084131701922326228119716543475889343830714711932675646032194950219011463887721358053319245195667554462861513706852279031517539823831210945143773322198536980231463023326300093514409048019179570922527159106942159031822982438654498148963668899365428970064028390304438333702734491149667932605191514783899653546458714827143795075223928257569644004399006193511221696373929905349147297883619119402962249895876690638711700541527750709234902135646418445379996665270868844863798577298958619366395602280682673909555619128351306425069861179933303216226153297881397412110144586714083126651768513389275667587657131901154508153307251655892091380088244293345139274350774248867409843552609203145555889016242718322522629997494548624310997288150505148754358341402861697625080163858704890425973753109616196345589775727109768043958351106537751089723031441950252941941784874643266074071529172605461317583909528117582387216656303951843639630161476277717396985610981261273132948176076226565267941366519143493520060861063424935788492231203381364084845795346553423391015402572794396167360823230550475875566582041414439795235452418238467659645562201146199218740627971400738751281555126246708441570806090915307382836058722868751613888089748404812827272397076360825482003490813277619654521597053739584768122049464538550744330858322575449312541835710370818533710782960248006970512043231532123116254263453389046305313170427435630252731983078980223835714247406025895939019194409355687962190580596992370671992340838486049791415084994423784245965600598619933331207227626452565527421818204724911668857764303714181687567525223296380809387066331910619181334881568519581754501853902860922547683687857623363861574638192009600082841595694776026741899852554464793297783555054683840780537079852652623774534649412747060033877931878016523749054939021369704020516659377306003601960137006232429586668817022076505475938209087349021839024943563411760238108453620528466174561164830654514585120496853405259502201225718712656861801332092387596821896932242733144130233133383007122001422624007324619205421833580213511908381137811346272229060833337148524947104510024831871946729324906358678992989058646197905934991359893551249245190876243643725181440251769600696469630735699165794436171684799784834337455421705691843100843145369085835634400468780596314483459222469970375557440469218448868338704141818162091933547548786685900510595683248745306259088272956134011118857373815751173727461782341236056627408683401970880027611997559175869924278515292341357841218527133193092733520066547516804535118065039857252169341247961130813398726816501720160381205479290276058567930491646757394971784945531369814733566627288452786870006966303087365026477571439505990898021308936344761231709609684802395830643755154917393179756653147816471661722691593593677609261847687558658654848592974329141833761984719076551827820609739237162044492462831593943417756043626757056973478064686076324866288596576816040368788562865821194926651132298242963282659712589016424084892653312584576106828048874268478346253470698866556520183258815811661960900242868836651962962419839564109622700477024511729811078801737187022036123000252879370681043354017915146410442653951180022261402430007228516825283866283544271672564453870712799356840115011610946290778969005755795463630835333500931623423164325769723671287280906152420423749794922974193570172266762305068304276586970308495374366786397073271903554071983849269276788259311449931938061627291977861875477314692275203515816669234119913175712583438223256967345522817274974873567532492895767924444769056918258548905361489431799825192555526054027452196237786299868685602931570032610514000134111015208851622965939990286433069246640917993390548910387010615172188036750655296502278209612706456938542234351486081500199256190961239646433554046880684288081380194248554383009147608505509793863443329780065029959733381995811842863458849467488753080769920883259889188997630849184654158958536652581842723912950036378595860782274610181111572433190695965620415111143589454364363730356981260561898698603777296553333306883276941022900860418107372235635827080367633700307890770724911487550726647498006792706783399238229374396719614312379168787507544733819919684912312166279300795636862458563329054317080737828212094185268073411831029243824556393141397934927412075478353723569585113141487236456425027703420102260655739100490468687717990156438823416139178081978318310821389290615620052129518619053146836314385993223641859688565979005713665735933543504962805925707783772442188249809034909574197711969457032044306201258173240675637197710361084525658537005090572028101990548083339378669650350501051478767033323985412368709636431701385559442443441460322398631812874059192723705747028164477035460996560358020516275572728624518751387049477988165892499432439923471315794522169433938847563443627462071550920974433972492370800549975664805916062484211859493115077952611933604109462898876109116850294606260340775144002480707412195180389534945873550751583153452291492078129786273505898049395875742472903377395058812779217239148721929382628724317181964895433833133619800091723847664785173294854981112165359359181952822553759968013134532511829709501138015698550042830043450941998275650714404749072484587504774320608870249249274016787995519144158165530450755643996992646085910110841670222259747557450666473228229675931509844239606396187794898675066415753350315426652955336794365827716510865792627102449332376370331232857355193773955332161166313271286177853530345820831241866946767180272589798829332769193212681917554286591852509880140733794066589145297330422682161485238793007415898116050902520578877044735903771855655624526637177013950423345331050779076731382361885568542431725732852852721195968009110755432430318314281805858338822663871033952305109236878881775750483827001785014052419144243140817158239674800593435586252659795790930867635951222406769494701574992695844925448767958976699466583319822703768525257917409977188560998889518300034252466997197733946685350653172934400458240406634041414722795522685512158928523068824135433379083399712043165891633427513517756983774038504977107418836393666768098742660862150682882718405634982307084647504033298741393642615717057801606360181926927688275318020297551424568490580631497073524140560268690825397309737860567528503036490054482684683932910661566861728166336115300300511334734916594519226734302598206907903977216023948792810238777440632677792359265661295715103595068084073147175468555736912440202783940165616312302019508100290296084415450688087188911149435789720247586494752613140983299435578874038033436977780090929809120157785267659208584537305525073597519012684833266693976794439934576918646784366982091567551001521770813536411848596907539087518737325908350912609971687173705334377228661695249425962088350775577023223098841370268681556045461048140732720506671706704379347829316524635580947175759308741816266029775535443569877735613248973158801183090125768108496882612991958405453796399451023251450046762425868866775174627643690893057347452174967259394403779365181363215304963653975987228710031536801029888603988682596826289285522907643768767909904857015241395183328541847054641332061065024638322083217133887075483394369855792143485054926926765352348486065247205385631304256231424332935432142503122628490995802595296580041381006917914033286751629845255890573312752990770456727758584933320267872985187597911083576821579394923838455679200565118474730842593700915432431166813542657626555579238571193864535100908196424795594062329222406982285042309076377059641696149210143060100750062202061652010028237026816701551394914717946749105271956924689497906018947656595504782226311631243682549043913224738746585907387391788183851369451997001312254488660080013180740244166259678315057533533720053891656388538721043397161275113100323009060659022771755286740538881873526909268382886178281097951980566674110575680789880336191621247136415633826218923720831857061926635970218979280859504310241198757713866306428859699985566331474615824893975823973931205153077281088075365328075687616073034738739626440537487058477966618566356196456133926012077216858222351651458383064428584597699995872957220530294105270148639339270179493647762367316576046833785467197441216985257542931300749136116642185146494990184905983557192688202729742520094023802124696819796500545713651836579398315386833767965686571123889790574033143232021260713193967808564109702715146296288108779875246248575224984277727566218465013505863151743700732349186306718211953315133973506063403155734851369560381187486710910882354906356673436488681449042553287297298610702897123602196899527812943842020824556577954795740487059668922488991951561898576987819078502075292392326618684735131402758218793932109616561263920818282258875561746032899434957768775861389469999935111576014805012495160248578218005544869958842703600983363684602292842878479753259062532809925989310563368853938539694124188927049663605101974234864956144469252168604579089380088762503563303115855489878300482587723831146154916395332577494985451475243851049399750416174222918734530024167569863184321408186519626322334066994658933374982581909316391497126400168208389766428285797281373226071975331637018992651923042312309624089513191513693073396886185628400824026269751623780552603248434330047117687279131382969550804433698000457919155179173337666563595916344831425414328795015251438266591792102912336520459249360241152111727134939916036059046699491003075352733595865530134562907517655914701154863009257498555710571215999563485079401617286178069226802369347200140518959205145153578575930775310024847623981302518319772797678973643697569288262701579138488180852957736842565872822244103326798301348313842519083465979383930166732422115013273415963225072138152689615351997067783340472415115679661678321479377574302788059140447333464779124217405108317140351857248697632364607118743664679801040360379972550948357569044547453606655877062216216538468498352252902901457589710482930467868933887463317072054373015459784989712530135115987483448081341724386652136365628868158049345851738643433043663953715167985271905811452404987621950239520866602053009115792700385758514834566869447521391207965515510049098057993627578465641093492645183408595332960808809327697547954979135274711365045939339087027232440923018515494974786973006445217315548743473493889132845173493526786185992335719996785554834788724591401068676030720243048206932945667713750529272749059027044582675274899888631808099430046699013181001338273425354888067709487277212881585280986303478860600894373355664727740866613956469535300343870935042423577465583618596155973741735415733492752151003080177684890565938458519649889365101867276625492111083988433087554367509817764600644064771040388514358869094698622887496885226200824777876953102611176589208595637916961315676972434009591775398624757054530690776177395002222753110370648765573573271680040187886975565143344955216752579187996377975365275947776658658520454049759861941964679241535031586757233084434678098943765777018515279969476404418537517646734145952136199800791984674159215051063841041294597164607594963234599362043540488823968610002130973475521500006886656618175057592268703024465717542545041449098601805668336827569256690229139575898960508522247522433555335933783933265589916582226561137344831253306072227514323968541199046441191246345124456782317830545985594152524670909400812261774876304435655086425175234362659015879038116220816459358153101987897520217386269680150204135349893379754477965092641023947549507172884312368030078839704749367748553323729761333050733350424214420818983690021807593635132212389257653696638526501741692817059747914913577878367433385677643613080792844603551686624378600007065335149967672509221570137246089661737838106810693071059250196374767857295730606008398167873175132129238205303254092041635304743665293817133356797047029299508367267968470422902765050035372309679481774544123451856406930817173409522854415895491586938192979741125649482744169983784970248354829272251142197587556252524062914760883974750675567653157070065347893943083627733881383396415899327718946975483923348540384196474425397181206741713326220752788363574859495426955453015899481878899731758581987865893888263095976960339380187806570715430481493663966638639961567824466148489340443224311622542363968811480765539604533927909215486575030107793673050166386397164447875781536386592349767571154067204330761884489630772162073993741587879691060455054030649573256570113539167893500210932048470918128515087629789379486626394769089145907851472035260413098681602462080815589054613394088846781607058881079409070150772291085328432068478581859834248603345620614652057631302451280680148847068235852180086311532447527122415425572493747224675145742757780548264636637802368206909738687276775323716868384071291428299616884483056215684384719379695599804345411822765839129984664177968016414975704047396647734288311038724292084127847800420647504529417774878748673984863379808210638357637026032016108912123497171992425684647906929034596098120483668630731409599321689655025311006697132835104523201765039849490818604123366317897400138929620958418734511431333310289986930463613958866238261662264128694331666930861897977051738343241043226682261432946727269988660153293580771521491013218616010573563463414263599878195394102009432017382386116258134024353373855574697407851633963226619888338163915946556248328189249473641263400071674216228499277226647021826618904054357133354831899518696705673996611771189086875819863086963040218891005191372803165794086624699274283582710570876396408656325404130909528569932524314588199637802358158241906447293880332227899204310530027177414712139368784378978662082644563648509865362435322023652645072273118894218647452890903790391044281047512805354288438902013896503029443784876863977474429619452340581674865290049424507880390468339441902810580701348328936538590804325718529983162696448617299016526812143625539223942640455641359364771371056989842171974744258147721405477459964282187202309865783269759614413006880632475203940080869049209237337264061700405874405038881436465415680229407308473150645179919821232128721757168287796466574461550662743245553521179558756755601863760984447122839955303156473743430935486561553973700891302341393771102446000612466334210409306454035085129901615131551872254858131610899552366975209436914351487623552939852787010924450874913674214125551281768883077758818868478758830735075603324501217370832848002916099309683223248705724588426530658505609120307225687982126442996428106752354710227898071635316134111184454195308694824352430407804959962135478271306540234968368692149444901761112089296912842745239054362842375697006783117508955474262099714275569434043703238958897285453458465899528668524455134604891845252503871293524807941245292070682094224448400942442973267187805241284102567522856996918686456789772290955641058085216597864412434963120325075114468042719229425671622104176726616841906994950039561151170998566778940680304664422696225055292238354316113786945091674024391938423120556521040559859397942767213033594247268563111518625446071833164119935255803474548853941682735035590489385191060250474608005362084082402190608218255319584549672248809230655400360897864584848947110812280350527494061345847639564085961496285359405421677111134273726526766698731260262052227484465590199746255548515937816398220774527288970975092281294823924122162271895930785324454040440431513577048281883393963396394648450090629012051704318491299191773806501041761417145836207483385738327151253584015748588211613074926625351545247213195604458074682268440958612141231645797685483824602188092588486810985758921432404212946707186509719281910676867857041370713092928804782009479519480929119878675206647800727961770791898783662995090815586063936980633292746386848372327049541998474506053168860403852609699740379077513712839034737900577694726264372325984917549514630753265310046383721084811739643422138083305536240255709659438589786007292246766770097521966622049892044111718708148316346466121504394008069331825385818789141614974201154017773867427111094068497293189438608686457031406897290248464872366809586470087945445632236618427105569337303868053343674639820142778949382550459646670505274286419674313875125865397743608986757462193447302220074225521100876746955533399679431489288853431426207463255872308440472420862215900672160701714326835916651827634846750393267961943608716967523555680083393621264639576689175503393117308959003657375096729859722870940885609027019586028990271107375693937892498166452606149895217808809455504815496635247238149860605514201376078651603185708543067389396941246749378577998307874129405923192568784022353171190925684821950549065849284527838653356727637080415289350484021940237376979380605132593502570751141703797768447639263587888009629118267573701737014245297972031069194472037935401992635141257405399303873238559454883008043071218607947848499357202906251600295980149489757324543903996999982681925827308865925311584391578554242373977798255864978715590533288769631917808853167156672265069619980233759422900182890106569755430654409876557114422548341544696269465692068890353082312981713856555735387790645194598276905722842458718697679110256625307283247198998568659243238800706481325870197249972734257246465073484527651382942673693587095993195047319203132861614856725251068265166858374063949171388592040315596427678171396307996398987391227582452485881379524919565291901670610789966305564417031280064626041484707147577638742464408822671584306525337364938160657116414693275444550492849928239837259670092452139800439918269715637984561170400992529189769835368291789386038617196261217801809883340398736337375313363469525869392678590410614703931651314873621784835651014958107655461312570062178717279647027226203697798841707919306970429310350602266266627639919857142038291038283918230119692795098116422880862556746173549473649028439093140596620386814574736267639629495225905331892398098585820978372279351621198288907091583615124949512081979921595948976403126392196228845661060590929306761236965594629939746285579310554622357567374209626159674034129440234879029908800567004185756169495697824014320015278289183615924425964188915967510018836607480552878932920108212308009867519030450046218726734685519030389405592170035916040854146722495236337914710955510932096312616231496541712407370446820476241034297764981696362040116704352083368430345643707027685028345031779574257366966210489679945723612387854682881625814207686010613626349548025401795379842777765721199193755703826726328538621260895377095744663498464820793830571343796379095840264827704186122252281227185665573180476879174404281628420394432756685506615729988611089838615385870631841950001262894578485235578082626532661476672288429624639353771984380745550934892219213845418112827545662820230603995435096784408132131830972717592480828098423780874556639297460546705152825754690696359881026618651286982026387074320903706298107154471911194225415267373030123939776154324587069968048227767622824049709615882822984668258922941310879227662687483390271750173553146253890146098567032130251339900917417113512220150538575560610271160433128465236197049050699015533833475651479732278489739603235604876979936258965637583739821046259252647859773887464896522001730131435510850825944168531644192772746514802197575110732180326413411963650861150258484528051902314361494787634734811162218773270156742799132285210973188171232554953029971788902253522319280819477779675659690278239619087839470058597418681707340379467836023442739736928315845452658746141891701043282532490756443445280495321062225576737934412063244084383909368401850943468905742479354982401206524293111877524091144275476743071447416680604864238970253895988459558408215926707061395036487640514439213218441097468658626128155877004403655300418936842900368332864586050932874147186660956453443332735077788778198919489740131383080525773217641460260873999113962772740083628586195503899575369906225439601510516178824593449840852163129372842693469705127247486061416092418767703701062423979625854570514279961208493571549241411802209689181326086966978440648418031589143344389274603104637249234069132999806097282628899559204141501441602089217808181952296745821920510404981281762410394919617954531640510376253519399093167484808526207495815492741109999962338369040159638121589262715254884207297746261431553666065894942839952697844372244864391758222205522468081565538911411084955582294908033595160884413546244907594628962093607238959614457158689996290759736093804638857886290766965682320783551668875321495301940885904376283979893550453866140491041252770945697522113390515859904898746273029122280433209844030001520825846300525703912559175808370878950755211885149926485920175688169462602180584440194878466496814251634539553331697757133919898888173606536938704715095405886779142989133120550208495521367766694560441006334203450987306314092628560530879650434957395266561447515819893930360417125980772415802206487640276216670662269281911957648090477084108339740458189236654517472133529882432378873884649383935939537958938334430799324791626830229444265982899448401327345028549847927976626866903608030850625578160869361912360911528065175989247577459902198387517765210356120291898105032128743375654813852843112119307046467129211799820302038594593808479455555279480155890724869008724464971586066219511544638588861708485774563303690223483201223165981499567170771136579455016165393190371152641485116096112709615631957321608616001265391836638971198429352385850277202442029743191435248379969805793692155264587316630042172540897974815849010732622503411589220802255536021911023863563624630050148809167703195074968133342376725503733072567856287300185204069806281217856122809080276724170409356818227401195087944685824977324223467794858617946341587758418933819600264086692272950986159256214110242543604612009330315270696256824199508834407681413940777230418051173401609119296475244469014387714512007584812811126693246506968780069446873391961538596287727642009340092093159016751646134490763257257076077944009480442144033852313504646130332459340217782619795581913746367042051546210314456965547621866978149360149652169517262264038554688712279176952175907938290997963800645370247721212087247632115857694226837833385968361972045541038653596349017349076299055032353008032820046521877984075884240439893908929744502869434966278574053446655101827144078803739109086085233174452012293928105956470763107781409258665994096385606793129904397263777611451297548292605083893266133589929955832786881300533241424515183879231587434746698950641382094311723728484719289398364938819574682641132191676580981404942662530227736988816204527389346447115166734154245609231915907767612870024346781523245837898492582192039245701426828733896690124098295750210676386338247392164318695628172741458270466818890911754575058843104342690822465461892246735498341124493641832900127956300471769253804050931368310302753519604693882700330671292450109824515942044227122042497903729808547108607127881695707425906034224901336644026403105103028441929678975659135148438936036751684228900288718934332729897163008723621655899848813414534651026896775497387643725931497465691500925921172029823482644742946978609017659191960909764280158403526190381667839236410699927992686169227002475625193122312748569008219679844767646309316513176421543653969016766730945037245745934191493356241872463967844022722211486413178501796927965773089787692779384408914460354125897167042531452175539308063366556238752499423713099218291107163594188516840703405182058678792649975308560462951449185802090178326611777743188419819061569985860116690216971816682585732090673801919774202965960784343473286436104320949384564042810597231747551196814429233171763303913858580570651814623230009712136023970788282188553201766499830048719242056723168743608506450296678310469420839918348553706784976033957370653524918154374646795673722110573484025159194300142223491116890581424092290566424753308374494483689403406127742840029866284350800482682690924636307909215814037930624638494447360144847612202556961220588074150207419859293871724446146863079679982939250384230972813979264123882543566272954168447646917128567067671088901073374732740307803316719718711894841731826004795768498630146454198163494128617743032057990054972632414205468744701317090331306121124431290671846749814869299379185447795053931228493667190559524690214663732218639792847925249604156078524611251582204730022211716749387505609232310598804931156785948774660983941258954320670010145975560417979372402844845791936781776243344536480142915416443037901534975536736803433107226115401471052547548433182385063819980761339331962172661563415807274653386127286993444813968152075894924258747101963517717566876184495706413673835641148009208550340386345479553550390871821413804629606700535290729776751965964572301388241980228596397246631653306227751371018217662878632254193619388444791574844236144065576672435105258147925481606920083221202102680396911340504339671042517711718793598552679928487496063732886528943061375028132124804633744797382961771588188694856777105308437240494204136142107036731673663893946224416016648977338576886141938690992381727739585000695353445641424733378554041996741960896259918161248055258239722827101249071322601902452974699199513904588255957575217976521758386085148615191286624739122225120158139868433893824782488272053005956059138873792278975765369150803089555418105747489335445632979684213539697360507938882928068621355743326522364443292769894704428810196460019129625191377008080390626169993010208033144909579439964051616431941329837501504299731432798898605536886619505769064337917278323158891124320084407436658481209062080668619145610638233107240612662054486178119437519454282396119065069275124676057323840712660156058847554729871921843320768583947212012357763500623458009001131717345816915068396835136471145442258416462629859155910912125814825348370484021991303979728837080141950087430250273531773126445654863566339758167592543890057545637168241979203779270400618295113092506529027167762020002094960230932750359064113541636649076045090576369790374384776472565382941866443876252685004074462853387240627091217321794561057250269400458768149579649601131013782684103930134367152386781963385870112553335014279465963094902167189483804322865453081237090928743223174631914535361957081846746601979481312501703122606487238775587706936273778491362736835073021199998666465853411786605133634202831400603095399712322659129139795011524077306081210250074812684729032607351001976703783323312920286742635451473305704264876354056156427938256707132623104961969021887046003322572787683507510504426196582224346740571152096060759358179003593901866670249142208874915152059975900071220034219109121616508053004475226573711628658428610661497020896952706040841250359316432285316011127151076020131257405700600031401853458193537665286700375935654699064969837964312348038533635445389263168541090573163738611919235401559368897546997383177897799846590416412858888730231811295006329629603014092051292198143286682438612072078125023908507187752937288140870134298532816196964135204794089235921345370540155944185235099998665087643233685976435091683380522391529661495284374519985105188100668256260340722326489121840714029714218766440737600985839688994842852297398518766147025327121075364428545772442287253263896378257402102375551835786160007714515729426487409190500026989857345080041553686097028268307002664920468130192592641061405919786308953260785991180784386074657979228439416491966579748177342961803509317809275587177189935614145501536430625711469874099093212091245805854155244306847929644497415569218958343494997811569990760876161935808627466499372616984772099244704233618497395286169420803917735384185772185924487083168680320260080418922690546048366452913547169587435685810113461043671531587820972572735734734877751147734898882249405268851062736443580498466096491720211671669901203772212625720630020660093962044473333288394501072100866344621848189374344185123129463046028902249498054438447766249098315222115818204215855491505912183880480053640311513175597258279677710530694105515612608019923261296831389792992540991889311444575146817598743586749015423245273512279197690034087083245766127342772576442370300178914332667536290562561929516735035253286661959657854251955545550437674200239460150549962571307734826738081900125297714225254474566984262105549549807190009296606271011510529271658074676016525557064823628496714466774304027653407598950736539978049209490151182676813240511265703277322797140410623652512492124853755454555534705994998814576239411577793336749920871541907307689040203410421111514879549361505593580312760447111530458559878738383497380671684552194222218845718257104330225964910512149522182869109202299232526276723190587485868999815626462994882541669925190007975391241935015617148063144057441649984701201865265905111551041380981528953143126363733869248059271834390699534901246869590762649372035209302414322316796217917630052387316435480699648190303089225983722265930684882290731111673584227623265008231032375596917992881585784992231413736102458092171358026146275378183081061139444092523089587935017080869421380041632867817088757581844743654684442996025166589877137805562155540641529869280135460138232474559171440679587271093631064146482640219781588344502693568524324250711044122329614468435631584577106321262975679626040614281739370818665585964381931169694419724178484297510549369853021562770818832517345071703455013689443789156689829393419864226412041327841536320445358453965476219772595365141325343407804632402932614578833157940769660639100968070325687636585305344967744589649330020438288140501368536870601361218976097208411113310195505988055199814468932553927773300774863184121355294864060101000174288498851947189547101760765519062765339418345973490324622532416228385262227927792444983307445994890882885398591617411479120959533019277907187316742706209458036726289219823995285116329610968699367780606949393630548037072819098881626496010595071912972817496587672550649896572634954409335664953929492875206295046207725825749010277596874917779611104707525442930118974032190772073110836762022285716010238794713642012573858850044055363181900549390461134078670172792088754445088979413885814922031424814943000447011261687502278271973222897819013469397252840976632100636831789155831595325225335519147399694306220944083562406081222901776303646439470225679721294130171104941322967558188448004041112524089367314271644105098007571129443849126898385318594689146830791965000181581256921257534865320765135006800476553304883929727765439038040330038370429823158955807372127526205831331642498156302295895543157690902329175477985429426598758427516470962693454601759684385450797579642376523988970882877483403109734496021536587829246023911072771856681155582015960979612854130283179393387263675952501464552640099164421997404550052027723127004819161672383190395227294553689673224999443939713891107412454236835280436092183657898109772166988900301410697249878556674707016370037474024137688219385892263272673832444286767818978555015722890251420394766259761899466408977049214994781831860134838122381324556131385032345796304170195837039854768248673404410245049382266280488252974993587571686035635466121369928813319617502173965520565379282908813086865881920087210036781474090342190260857425132998719137306369851366381190615039985689281711517275380874293852368332266685068465704165199429637457035097037531795374785933084685116208625227131666320093216942446149539575601462668660236951386723959484416368692758192854324509717354972408355415251956063665518877119391194683111158214340559476184930567537889636301578805893109777864489365395228412475433543639134777400446677757188907751185456393627771154971459542974319979382280940657859300359558800912734461761474052552486879171909238101754270948019664294223227027960093888344123987206201415136578636958992619394841195013046719576858385732067050562580800788463398963502253279114048410309726913160276839027502434738228672167598720145863209239989860623999817898519326021026732024568227815995819225319614926126534114522372381424716513162888502519443053435136873518937902693921535905641469382547914869247584164057106031441699773676491727719225222160375964410905953308280251396890598330105086051496032271688416516740052286867781441742580659529241918529244174369631801320377889292494436359623461174772941753979282427602879763126731024477816728060991692265872487296970832582955988836759157840341480794962838480836418420067845721344649045043088020168891578892878498659831861923075727839802224716927251540690814009658403587103976972743318372708956631119766943230311859642303303248986879031894854816332894052778113673678874834014060726824007775069872499014049522092963449853542565838894911812381668252342989491596722765553009979258397557683137965219566622691032088311828400889635189691656853864605522203332113914829859339618131523965105098215085226804593778658979782111298250041780830705444147104923593944484287085890402330734126294200778803750252510723198350703459573828471945201648113959836956413654677361970581746204369107071785941617441567671916213734479180960711883895156147053955807693687096198700719713975670935545153933635932426323384800897835376453149330441387828122734293618922958754971020491200339890686198828652897558587016599561595283454012171324717671475162070048992587461961671390016393902255687609034857444261153838257776308919226602776425244480793608148682847979662476668833377421371291762861357685684500578441135721337243979729130879912167104611002626111288238652690922183175077506486940941112040268188157420102115337032463763239087849394518749440942507018399640011571230062398953804818083687695301580653139089587938807756270005672503240278087461320500638335339996575199012538646040233035090832174903121575203728317919747347422237678548598608414338661229094918910791859807642781482294430712324506613880294375079834937142362865210872617650693151549315389113778861582581753382582711998676020705904035083223606281971568776667772793756302451655647195916919032021410901611186720296715518477423946207848628973514126135044567840324596006999166094178404060498000152973321903073151293851105987653510379503217772122457559346818906802693576942194545935704467986038228402774204847197549294001384559527616637897715578437925154897815623568331831136891134834167718350922465495409852828660348306699182311328283789105556271093392852137547339583623059574584876291514489560758009625426412530075026348622367143254197000430444773678269135531644733360275636751970398792100581498524047049844861054285025370580508789033872791756439877108833048695561049497726277009526802214778745922712046470326303502319119321024461592767361372607226193625643560018991744066199048188139082222754873517257739859112963796766630995705658104669644107690589301774316488638902929532272928989671609518468779799353800626310372842553841622039919237869291146499459509945484902223965766847274020639420389407082704625032261608336855212364038750710840729281683541296706300957556676343658763431938121731913488707026007860748847822930874259533416198608093636632990948221537308993460008476653950698778481641491288362424794791434377785034057983454666125312364527468378815073952072792921316681960292330179904338500707528899809600559634707625936653534211903585711926991206753591235906438506928761741031032275802084351960794620491861530513174223690166667632577968051241732770386829861442174090266150879343644621527100652885007390713886809320751100159521801189123298423671246646956450305347475319618070132304822822703470514880480720182649246791145955104455559015896859173452351566891217604756384049376676527336333898049242057200809862682821450227159193851892350956195837004418314219663278857911198348671018953063892390599382155059230362694628896143916819050766110294894387990598988758238636050440892218566271611855728334944320957792972055139045384034081379894034554038526463993339895041460158722377038592867007886879439183803568803758863857196874852478349923854002644732986057374008503891657998141649400309494406795535902682338393610480425160166223623007489359409018857030887220480377681259297802792851356075592420890473070339562360214385754475469899119585769495325343389160585399589783458468434154810966914377671363018154393568954049417379821824108115772754332562614577685124412407922356291450899641106701326149604781340410629004482317487383804295681123793184139268773602955544452867513163680175434541011457305937984851541460234678003313413203492669305057977950991938837984276861441089547759473176528228721730322032781180261704889610121181631944306792204434625700399735334332513573001273470868932873908962721701306207329013024760179040466259728355125687784557491101555044510846124090812689800393556860335402862982479318690248937669863314736584444146812230979554082679134649615493984340376894256559231054848943644953317597915124653895403468473235891455588998889336553080575432787004578336444986624056404178034010076733378613943359977103528272448755357887845018940969918374395278997853533708531855130917726147624964385019227605029836950333098587989933356701305095259395712973173179582824591910318079141879888751343855145410460996223519856444369985525679191519276468737030900996468273525937623054872414017750156762505522696929173715458867582806797930106207910225850466390609122385708964933177051017568601093905808954806505620061187702593481466748281470479126149688920735654247523044153234980883817149110151100746781107468542766754146296419765926602369547608037608446441149916509889460063025837508599161707106750487095512920022059774399998627971365828837190514662479112976249913482680702063036945973414025986878469665864495415811685628228088258355364569859227439721239764814577978070562992860414159200125153285715562839168106021778162982319471204781340785478674263744134378464646473072288248985501272482877462857144739519985132199400211507053211807369943717670677720855646540941393067798595290171616250524118972669227576823373547066256522000406591845142569194269247374847483429976640314311896122909290165211412426548360350896871088109099584384807138212055195652600263360310785951128031993706495862637504151902527913034432559182677164969009918882959344869778500509903069998270017089283900416102656828893777659927204180140292395654566085865962423932943098304134674679544543942600993906827830985053920946123918549889307346541283889307439936286062283087903416722841983615521315242040398967381877247885566182418899354175817823454638873243361915180150869503544881091463599500025235950414266668178383536318220852386878516990618133850569163065795387745348003634936013326024670672754723741682376527683749353735521450125652353811326258214052317853128373315412178971547040068371380205089571371709666761278057874891490866751972898697633384934788582561264351838521215717721976584476414479489154185105292815778312126111521715474250441428743297084591832949019539388254119864964308703072470488318903938665156206945072967002882136948507346157464267483603104960663062760499580691102320190314843754274447103359157333954598411211826142197920217387008470007620771285535310979995125578960825224232559867618208152205573028437303346884346512414583379128944890072157872144096773107945618287162443691546277335716576645315666034847506841463161885995009564539791077105931069303184945785585326020316455492539192535021292593823999752410864268426439359163082211594072101622191216008452669797850826781861200491831573142897885604091588763931863239058531993062946649230616879990183074437218680251154712867749618037760879182731296968451109522017584172931137193892037624539859902873636797304589281000582825355827356599288749162899432088295215198377399474491686414795488013286301943068874355740317093261313000754850576976345462554545971997131161229768906241012910263071346609983948774878933577303525366515875303327845650087182473002142324662489508538716554242212604740584550806406210666378297054879131239004386615748775775682900586724015118690149373314285445565056474087524123779968799899558353534801399558347517272436091857861046851265214971528543430492834931328816764562082885135603369087414384158952971651708883883247498225833206782086783688218564848884427135366119800622013740561351861772127493035223137019631713880785951563117483328329036851408782917164860530056137869182624124374836006482203249896955871015462972223292367058281252239265829303459180591922507733100606801731253042398121972020258792403908632598599545272354252146304728736029023447528934326347333508468487304162487549191151052390725680582728091566225321003008802387792003978755609382039442451700563677667080540353472362885646295063061423026730588432248783941625552792264758507048437551139874677704214882947077102598014448488685621319872301297388251064262869023523376633224005448553496947649071963333955868843092175330001767668040749609856330586566475540290436770380776108944772590540023011546924286191491866071541497854274569477721192276640315124869528869709717362164899594634507808102431988060017758225427147730559141407504005953627690690700081580285645695887672774351499659546696751184092175495980708661505641643262935272794417604035398482862443783371721211374855100605316596948423263832800192005788684301477970646695610054057773912877898707512567096154653819110309093716175202119612653015361203299615353390785777582947577081718419171869290233054362147384572822167941229374580831911101148238660961409746394538837997879391858079494554397145925759359760478650885941980650319186576130248220120476254039283205362939432576948543655609341573208935198222133566271738393708838735736846825594367233691439842621064616211890225913196625982056638573496509876214956684713747167282796088070592934906566307968402478837948587253737840096682854240381695007010898429182948489936679347017772870266180486232956785518213932449063210417738260582474157558675999923716482048618729839905720109629811620406633315970767894238375739735793686307665623340293916970590405131331323378567626979951677058410325570136207675891759755101408938819751340023050427569857121794975667491559139994087210504860942303979946690635846196878505166572223054447614032737050624116339671617433587839727858731612048555214990213763763389794425318749480417868440348244817130851959001790874524426536646621055780176817003056900207728125141794703402745479131599993604413808643894286228513734997547298176223988024631599699227066887749059886570922126059669916146157983881009514331480384213162146399307555320558089641241286338155248851543736706994720952236052854968648742686811008409416443678317247548369705838265249782202399400543826201465204367719148389094552934591924814324983019023618673392001102648202747002502796062434664957247710543779008965933576615099157158488752553795630526223331958668817336699586449280688745632107430156323062198859617059198006441059998499274261608335824902101429570989132362948543763092149434169443406358644875696001629232521110786294250625751290066628583152125576558010211082792544466588657884036113189253642624623330922447966106709989258591373412710530465674636443661385870318312334724648933035980188123651082672269785813052296984737305644772717240818901941234215801053260072567209277646152705979211159753789339242112980255318619445238000043733682098334661210602834304251818994765952102933243057877984092947958792764697717517566015179117312192957331605161991475966587096358561443871806534910084405238804751795878368207710065253364738465019869842167736565950996098285917307019595008859230876665150520429563822391273087705576441949791650774523581681152351486562726172453171472357472958321584476089356027443678758965927396708202815658003985640463212526186255267849724503570049656651939218973623837928635523703638233711394919262243435398533534562036924804768369938443385750450974487306492206076021266656054602232036471679567547379828266025070058610155480101811700637096210977340043073993935764017680357229345570789360486538406192832877442316757779437214153275320440084977488490820229317570493175316464436305015973121573676643444812303560002922570362394969737879266768719164423928500879050348372576612514234826317085026599314403377603659992575197357230645426509818528366938926593702755566679884219652922588314344479406786978079181231625016942793138216289207084763014431108522656063228885694102462654291962410660162225150479624133802886418314713779632448304464883248258843023751607053975184223824298702394375010861624593984546115184143559976127423126224828930607185267668258975707253828693307765667871399727705344962668814074720178604983578736124684789917435163039714780876496748123028098994967205421712711047308056118261970306144448531660559041177241597988158071413616925477743257350245920555956981018672806257366641685032554800868149151665510846490739041047063245342222667092493798881454894171657179136647399167682818466765959983424822478553273725550426990701155389996085383758273697849054159455811299703162736496442089944560224704152932378004476547661229853647488745893210066132351858538056289971629457020466745047195313348027243861426575317211353988098713193673671714629895156137469531649511863449827082597758933032960051882628370428012376238636463473661000553168105001064290857049467601838980545579386838055885981602490882420683461979813616093854648772379516875961899923495836391553310682935751317673202978992052809601841099028613736514642524198052598730719768734751466426068342710718996478507394343597078981009064965032619582644784774898140561728563518148316047270631572841183742083636536028973639745609827085449508091496880748592429848459630501533514747199584238512164671256650819949013285411114001674802043266946119966601928473300130367783201346282580623506759264883609844205310852467847721924504575306890300911281633546638404148426715502216881076464016007360167381444939838292314672451152551172559166471645718123207211808635422732644132337228511231875463414644634974603411462527546126496258130595941413014381172834930364545795228931403506981984270533505857136105539911536335423493215917007912715772309925611321021714498452633406385648319225458859071747169719702248661387629634613420081916340119827961768144688593412104887417916745047070713604967445192472001544693290392426445511188059957158517698272310151400853200394470009935967703813981200519288018001963849548936410791091135718948723740481900193630943243992237622507103258288938349165584947822675692040060925652283732199635484248929597469906143130580068091096542236405373944172666377057132858193566390298130119491124395459531903909322316173479472813892779931826463427385383024410643987116269964420885776043714644874424067523521074514116806509598904288014526899712660168507106374730113843309768858407603272083620658474091445221227237371691550611093315420329659351987085927987681721391620943503833724159228991987454349307246581549816289783311430279837659855019637349362413257888064799792015300320271315419887841816894080952956462810093541576644376987993231130158013579330207957936511543594035306604516168310664732846142421165332808205264225996706490782286526797338913850535915466596323676650553129897750333256130156755957582442429283067134670461762814544439672274222821003403262365325655090904565155651511906377915038621367635869835350932282783563523891724254496355221711846941598776506576229681461047975676182419049945570290758792878397864009779119267959709107410161651370991606312739353091832321242744976651913526583440340191838272933998014393294130665806366577995728985659569748863035691752923196682773913743133611982641168375626631100307570604027362557664096816530755642857067340745319988843310697543625994005648760006567951189342056745318271380736089179330530166869349612113094578574302023302729310773261979199885007200354937076499035057364860175915574836949140879078665939305808232437647133857590220412699818703962272935171196753050395410983266141094535438730537628689603062383919015303674285372349312383905560422929322075796670360777299907635708420186685881791823948523624845700264818595555473726249870897202383961847626437328874008314582501582639976192615505153054806037436679209765285939517550040062277843282251156066952144275454280065476903935581540857008756245459693422040301069452196065673726379494111561769058299049731387075120626615732309853272555668203705440359120760862438378040493788981258037427577047191294415907326821223763986338169834909178066549269742670212492214769962902309487757308298004261683619567558336590364443748589868863622924672101214635555557500446484241072637927597585178380474195038593972148543419862193723277383811147467355840672078223274301677441390183677919021891715216780649070626884885578703786981604582943636022278981313780990096232106537512169973189566617895218399878637916091510504564869610527725216272497143617536016857462364545119290748773712937128496273021984664173586461855667901195976073936382103140718801230076502010760764266979605288838534576006978663439162324087197467036094303670259775332830992253132387589975492466023977537696567644436377689290849103783965488436346981777219978474869109410099582707629213288682381639807819734185999912064412879768346975138291989267914527942685161225838452821477934593366158353961600171398773705090616333654645119620949296151379834307132296649610201475068853891825984188068224034802009489677367455790391115971187988673006451156723026672711278904921585376088869953828306475306342923320401301966019278953971827910066572301002771689396493081917858498031707105128786177280566593658932443868422670991848982234790007694251737181126561173305985253352074619457237951243464730706902999047336426021456874916900639815762736986525145639656612401697326382117487723856131214967986945936418201786890327059059838322936500412489316826046569580532504425378203096199361239555285344074683459044361356768588545815834340912383393728927221105608153094741827381597230480838474230121445601924157734860517713396264577447214728131219035087797334225072376325042750385728874508660268061224293066356559129601582723414637138277761349977399183277674162035204976768787288561656770581631482510522497224023956967895601524454498677915690294138985280783787180921656867831096540838225935347893655735221222663697405330148207387094404828029699791234930144309815555439272779061430595070886080076169414422601943738967764207560400850987634363034519735823872561361034272831522604409646479064119748437958169231804071418342531358118982314792484698154928307037809633545081688564924017352690338996111553833038639217404550744585418119247346868085456964723993508374702218479715044118978539028170965577237237822608083017329436071979272629511027990813150504242653339898831973355745179475003730432881858832480550024864136109057619449652628805191843568777479691569590985050507271950747971362909876724318243158301121873270401795129746488931116549284877787030475912101379296034770385315927246230796793781068370327417409296141343652364639882331356434842532764266772625816431718612090462478275676274193469585133108554001265935455369554714772138106922144502893007992433655898654779921888067338387379097001844530103537140331993980886084366513941941106171979839994381444215472871042273032177706793942876401154865844326120047757258600006801936957181955513382441119608648540553921584914084980498199650584593601979379499553696805999938986949919133797420209597209992754889612482206217206631730262560496012656652315560472003038586301566750064180570583395755916605441576377487908340367984396000708223535414426152806221430739501068374334866365763098593506769486064183562877273312665402785070879570360575281189079908454501960238572138498717022296661244365586463417232309974252209504667049007613029216631848739647243565044087130725842677146314347333873238064969420095153165106153995264129414563928955002698980803291123917951049131511123386667699375908597893309129559161511302613705258429786334859797795897796786864837371702683946420234911549919283508043850162983699289075475320675063384391076235579803304230589287905530155819602042557482517442749730771574724086843315751596707082510422376578423928881117171220126412771169267494225101067483381027503385504119411350586311458572249637988944499922145141753227947753474571982017041056306882143284321151479261960938850773689516317971320745418891600701284831015452413597798363633123884061090651541261992095508592257559930440508453288496114326974837515726375636017512215926532177143566690893058859065603015144697393839689024424779629938461418054646505457822375100624145014617959053152614223975758786708542754858377320287464395068465665834580825368491166633203125695418476934234667719248591815504547564874685171058409657242025655046565684844987861014506593578973591037166195714366909701356688267420993997881259915512966396352135595519989941888292572035476289721563246686551718507137938059698492260356871350791130833986994358384194092821302469923273382881233485748573701510610038638897540788017719497951104576736024746511284618886150832424731730284997821241894965676824845041853937251423769759606077751336276345070587531647659075144406930034540065232536503664273675177865586406753993671002105968922840548408666527588647653553739133232358699939902794416735743930184613195868801554479359837333514426543639908461838041456404626843239355352737567885417742988237793351902190845088247528126231200859926044201066248558584765226999619050656844451807365125986126147410544023673860168252935546743023643649371034363331086089111513783412485545940974847587936800700122841337726407222824826939783614522513788013866250467189025236647786754550331085235862727252279268878304896116401748806290249354493451928259862910677340002315353825962448417386516175752068642967670418355452800313573420916998580983767441374919705071844882839656950832517729920640689495897230353314294141779932082193392898912371058955252480047920913985610992866618813430921269565379297807677335314223629982464381360115677811009230165361653071783624984691830929294158984438175260668512061726656856658911694390412212340969454583482509028221772678484317514438668863395739177074839704351577215947474871377232285139554707701705003004938693092769706918991640039151574007900641556601481702388187587899803824771748362079785183365402127879066103700951408589237331453622996581796145603582291455980483346843046918532428701671615138420752224627177532997571908393730083155618794208211611430462104564391117771313300406424059912127998593600786125793690889786142431462195282852470208168495403075203521861463031158307344814913298050635056600962538567577816179081291472182115350333100572418774934812426328013449747076959958504502891375137347586360767613101178402800674797559029669906251044585989139702002376064750608183661800000728243380637545541964251306204910472343273594894569689578334063729218077093025370968069651606477680201763886419849894473714511907097405065437388196632812035881406037290277531968032499753561433641889836475843439250516745956786268268771661970168852748249352199145057981815816495801524081992362984299173821363539350358530478367843249861228023808553898035011817430039321438889933431188279753421084718986409807213595890134907401150368162750189279105112171104681952767855857635717468659033364217884158276306448216932482874115496291851159902659763032680058146091231672251779206707608385925536832085762296084811877597404847503251063190551309374035874245812087381392774303982294540795230134369762124905517529611490870277039906840266733220494676130203576522719077744524785646708566811667870842417688453558331707886776130998854129064342539130708029504461302273050234282604293915779355369167366634976269896298710997665774082448707053590435176577064826679333366466473046116686495532957046717230028813456042010796248116751625047997991361183104749597502223495306771247379900730194409875695560732638665024855627103548028110161748833782871284799602718408524255707991811426814772305277606873211112002839652547741123427195774919987747929312041001370891574829420970475508681087354350845978528024304548354619000711038821831219943826945329573591083041170473989209638939628933510751382651624943642655925835934864056843544895349148108380456366337648787565268880641014230182875133978698895654517831659906335966521639732187843265615351695091636428749584812137485755395578847525553351072336215126773893819197122667075309696701498524865533135172276660383001704760949997981962024344907308347612832040732810076101524407964257644160971707560067695086118220055620519975432838467784601280180223018423566642020601108759396005993665733829144027382810963287848855717344652600406821418154967831176843774742941617394385360419155586857875469335572789371273237533603972561873530660950882964336416760209021435890434820973387778060504335921790733886781259538197736652334866372923469188388178757930402629728936857525937779810828503239910294805041998481328613879764507626326262225060184988140414781939689469770202660845635072827446823735374208053292931461910789351056659128404871836255138867222106027580159504141769860718266960913954735869036678284077378074116903187629996787272849120600815073937171386731292263589318897711661406919359000185278797780025306291242497959319435719996167854387951267605107938134003681472441618512262173435992049730976306360655798359689999102902353434936751098878219566863265285490913864399803412079496824649094942622750742557050563223788368874903606159390683142398633060029303596231572428996833779137601632097381878784963170641689003392061959583317054131434723998788828579976212773574360220904032852626252974489143034496482598189904297705526140099347487651626218670629967010925509526583769614903856491090223962333011042233537164538523432587278662744926803396821629412384309229831223182867696347004601033568548136415522370448545522325495909244851766450922255625055762593355703212787005229101565215559082021673363997746187429836805983117962893372639373416069837710494416188467663400153016037817527044959742159188005487844553931374995381007720434758838076068575995749582871220839526283822944913008115732913146280164040544292504582969145640606683286227553098495622626930833847581066763430418500653438786436123536370807580995510991811357711666524627219815993243923795350587155245306956720041275867345078243050192183863730634171906030449882846201415493126305836496928441426275764821738049596021406051824141095467247055100582109666057070159133969158077137349285024892654562012583829433920854334885896362522003126669781986143123338763254822312671037161290245828483177490269330479324318958097028627708617518120449893245054909002585115536455088712310178380628013730421954199510477045491280258516575148862296753475798368230538637590430022236945822376167434653595486925862289254792588957713505859287556054545162222304101088357759905682293276188742410057633830352882979829158933748210090180419812894694903683247492672979850242599103083121368818022802060159510736980591030422766935100771888379347329806576634840454720636475154553192547575128056435427269801696052748182475885723257648510971655285139099236800699574017750587946504420200772617776261810982812235296549167433270544629784569303914575719210083578252798112730936742806548925513092446988657969905958606590035513502447898017809474863936623118648831813681702214826793568868484116579029857081362011406750004753416901317321646897682920707462106709842119407576428267180664037504559796140275529425280496032426322230033988396192895298087688706211324950384808721411333770701032931853255131000390927576498714684265479692637466572313186048290325776230974476765302646172820428023484643689593257795316678657872895102845184003876008255576391503546808150253279594953463348414505636381915720938235114694585957286945357898272783979515929016219634095544002405039324371549950928114126222173301868661287070161519485089422506012794463711220617200229990090988429051691393092408651361261727765063751115724525689642096682899633209077438130392598305745933779659477457799762554775969839547585435339430293721512000939457629384570966036209202793968501278077735797968422091717224065709462482281275741100852264422728486186449616995475240277791661609629314420253792453344988461609378695654911385819459751762624021984230560534515173992031930490376142807901729903475119510995833458806140180872379525680328808083111532083042928854894604751215986145567209555329754032157180466333354916856325316735497882108841014382907351478628725888356886631509038849729189099345161876494457144374150242257370122575419849222644976061932938399971911832786913583774992118503144279237299845200475484121591718488423701841851913087797278013831184833829638999058448773806978271864262795125923527906884044143532310381408690802119208851885256247350778797166429147153284941823549541611581940459059970183563947680253977329882751151457256765767420467682520120177363186408114553697389118113717299974988627007822801633678158673130461395374042407023586322942821612034001091809150882559726533698618431811201353939633149288931953641171851076741283691393436691617975578771916079104576176543298485546960647807864612871635738381756401641448006548433361134786157756807468480124820418882438227116366090869377734482345737149249615055515604249540378615460115304648531222598680656560050535680053663514748438393508115036803680375172960956679301175110730147655051364208902800630642200397432895753345852135912466032234724156418656915579955914296891100713552022128543846108961374482444475227074500255426849781436585825415777943510606072790055324006333064606779554936847749531562990217163914139958559156512620703169797305110093622459656535815368999518179113914284540957485772691202364653666812187617311951749514718475072156539543294707438838915173800821546515865662662574126683008949391887776860224929002649318194622651087385487895145518158152694520737114910761843938202513324206991612407194422841329291476553792167420907791262373735698825603586089769274493563529743980483229678064820547904616287722856109723513818731517097901675497926054616156806974010936970295505777369210957775105145290814517671087919008531878508709266412892670576778714598772047865238633701764696092655975945754363255606997955021664524419692900010649266281635665470154800546575944768028477217838951499896610344843434736637141112684609842903858037882391884468579526688096395590310048721212590920173480667473346142024215807412039479525885124170229003675044082042342948880587694074433209331678046480991593773672290964391698689952527875967658936589239637804481829872680517229245798231380472623701217406597662345419992764753117911675654439415089563769450085614648784801045839634189753557667493301123966575868108048509867759368240522262381857455889929154998182682543757421421947661494645310283431782758292147040724768820482192485081039932113911116791393676761735286526026444530903572706615216636091564859051669866344377307751238781027508838828133574555579828273292924444387240916357494664689509013663274730937058306887283552139918018588507466607815670800484817949430015077074517240357645338973901621511896481757664619630632906274199575814521993477141062735029487271567189499795148099939588879445315976543428036246546386278614727211275162410844679686774090827657461635185885884206841673955588384450992878315661484956091649607869102345228056905430063145329163947382691073154135489214979484413139251585190432381476611918475031481849504408583957918612539151565503355514086151950537396849564991881223977958165411304898819700365890798994999545683759340343778301397815397428370413239085112482079839686704741799741435339045746211574644972291145763043351221230004218962666481961218913622352929519391690954664230256610655255877051334060500438805624158003707189178311577643858044073630222954860985952220134659952549890567227889563708525570532546568826020362924760015808417911840433854069757245239651151309400468905950248832559131626731124990322536114409229582023272468171844943455926399777742633226733336838434504424768436375298282433197755112858810709059037119370908458283487625592242901355956520610320333646918449236680163355478195747000446646450443560703911693455549505729262377269156441852251106630456979365178020231517965705560314933732452798199071423967313822283166764363317582183482720525704101556209330386591561172956312565262797703266777407427896330295352821961044472655476988937267355545098021856148555644816085492143596011611610980748350997407117939877957887475319288123647775547954550145225466705708595937207618023189524238742986001818739149425992247858719377007932538295409951051516674968715840737575425901898252840787757822762587706239764466091388389181448261568831442905918537774006265519564726653043310402486026121504070553718124471597102011259196462212039074173200440187511732659782324604361149094157442073654809563426444212446816353710290653038944658550324272493591483860895671452412856614781688618054375049248733506263558819172242952633204990376833759465974312089339639451315533081968234133036200398169474716773738302303171276127431655961371116431240905281410016699315880159313570238164086589628338404690105119593821179950854555439320320261640475603801975931270085239605107295797198801947536656124779535187621336648506321890392342860050502004747419593972715032503101225705732542107179907523038916106870563641332998617858748687528199806661196729701732637230421881525741508860029763890236160502791733993109857975211297061765430007948205936510107362763331413778403928723585205778126018854270554672534870199593885614302421417960249657570706871053255484422425738800121637159294814368545103981142576251965504237013255090565769252660548085382066255086699309684382402126020628634044381890067333026182302411637574367365530241526352762918217355649844840311556630819231100716522719220337275215502798724666290652359269674140952685577158761477592364848007088558503616427212719474791240520914804957224655032031785912548031248424261140744044468501004343986750411882549903621311457142999206617480871744066591338519311998194472100728552685876302345841465274960519842564453938583781875560310652757351841638502107422784969097791501490523266443224482750175983250644411851897669510097494719783833551931067905678898495903631928374349679767490769872070220155082009933734551773672785506768199766753894898789602675062260587193842097839678269936505745446097198675848962749399235439583085943607427908209909621318379553801066842172347707827346041252389234134493664581405618100150557570336874481038538181567369157637180500559917577435961835803489972116325133458436288819127459010161610222862486664053740795423393591547279441426659775728387655424578674144167447558225023191359012434467668202402765102607951438083516918000662254575771676258084293602788611162512396588413494460532444279150382294746925806608157317468145217442579158492950928555997543499182981815484374196685976273326707047157683667896289199542461964265603777251860408916680412454134275741097529439339139907243840036595605710420748593785080035330092386136084000003800489236355655079685161912271489229531894131441560481366633248478415148453284907205081037655894164814337022893311307361578723570374320681500245270602236051784412684648750490099639956461142693408439273433601891780840855100411097515579599631691398425979951165861778732701399709731262105193852143122750179676843111907179842833319901624611293847338349010095218909498197502835607309653235603296185627577875776192433168504455069977502707497192910020218489151232944547267333303769626674903858095804952735129576127573391157605221146157840280462998995254359275948445663922826368096690761706218682478037632342346425328156850752196129693767320386374309532284929915514283054955530083553519206304562906076724921412804015819925352052140658933556522224430323577623973561594265249887005562672613617427566210879706801958853768220723250790669386332801783719697273019082583822992500266265475775045841049793982391678467291347554926741646221676944925654574134676481034088685645077855466516946247643288331066865293958356099766486346098044169902099478849688285978963997235249682534559056159887796006318969276536164491227782700884912685000055318080263198824938113978760924373635866974427298671725255252821507858585103827331930172487245157679300028247470104283401506453611505066394254549216387828814438596753189421011417439518358621409898981636818254279696320931470851626976055709242524646139335596733259491351195862575557167290609532480832349331307075166940405241275210184900029723902187765352939141490115321737390423772937752479562733794097087078422162941687229435578565032082342696239029761330869027504757677617654134244574564158395664754502512297737982254294887294019509592158171076334323485589472328644441746254637940173796144151399089174370351160174676492747551435477652982463670114278698009698285523784455997591427758367294123729425511958950013299908348020402917349971891458930291707707772050010191011320548110652161911293585628508075584768738292569805003636944086542541636396707317464261344346251418929227373183045462923991126716090760667121049731654190927723538138781745093764403149891431151844846570284124314726930840334219116140761523507679494346970878533299873396452035879716808596198679852628984249585692025949216565783817416906446751801490236772681975928088342011665653003522582419207415054500904518985075994672491977914063137838201620065979079335364761813551610961398967225319211262218810667864108957866171878898538009002885958182148407345753944390313356875903777669165252142523198583226546252497222982522002788116598193945087062775797470796572871303022605980298005034350521906256383937856490524363493586998706238155347980239844344036256625791147274388012722987278455444220817310625072381354367435794779276212798516740722401286527722518113077874706571936066506786207264968906310291619184683977746899667808542044602608772535829975167749140150419730620501436987431202770848254886267975617005528175928718940985801206994929708755236503588306280821417463952714379333552261163281564683820390538292800315437280768642362919672127390814786321098927063123759982079410568931804467837678265909064611186780752237343492711627151434410818942527334307414711355632553205978840653570132651231702388243814036750460926265667473590871708404403280549077615145001588770966714807673581088915686563027560087322532382746200442142031817778532861470944243016735602294280008942058500623284006354610319335875885672899214488825404696314710184474393987537127301105906842516584065718741837065206638045177505075028190606990965772691634010474351815632631101617191636306194762447536322053711587338771668212713595061275535193810135063260190306274906109620901865057586341915371538925456129748129717350994264743583046800916814672008389813767414042133132141934447890600736874857263507669245682199803346955689651916857374944648792084193905310843401316022958103371410917133593610771952303048075913956356464427364582599300855692062503242559264505361639843070679468919759812000442880305551459770636488089754756351218040546401797316375125406650061422398042198383486015969716673597756560525694175302201242760558839816955968442106166403659391565671656371803539689381737419513353102878971470382020625836669304562017845361314082540199776215682135676502027031258736869316366437873710623143401388599871141133325332944518131216192427979581762071241652034474613850990067182579583407323927058155963533267690184801836336338246387852646373550065874433396710496436517204533700097964949069815497417692231395135418769286026542072554376930107360007390324225841764024692545564712797203965260155689834448841103309721028762300844460211156638723248597789139734626839426990288278636310545774485578590459237019268491131821725954378079446519671457594860408603317884376217658905108890415069978970900398106382224782903874135716541518961852909355159029522660294777405671566418839112920102014289848000303204136736430447502176519929197873761619979898072851965687244984270108138931513578371705571914977894372675275330928365457906132677944598599507062773879011047899848954545490432869257551881987766459291814471915981797549423360071993297398144803781554099814884227264579957601469581844135938391860595327257839943778646178082507546496892742254284164093958428065965336021040983851925130689813031933637144754122779952352508757489185687558791401795446560617465305774102122229277907065421849011156832595666130525124480550460165210553662691496593691389134712138851905819504476417124127278293784965951667715714447177500877757854636804547972671802528021751143723790287617754994577082594681645276590850766031329332005608705578193821503505619979364637414147504415109968133596427554644289032589847152587032767177899488911792697414175359612939249207571199914605581637634666744815018448372223861530716060587492153187231227515044025670156890844735821797299078444270828404920799487000768494573038321435344181335867555042853145454705258699868213784563326366648688279195550331636687534704109043113064912338422407089182975792106747291359593199881760099678759172591010194523419138288383362608662353938526142995815835071867285630270519506620277946544378881080538455861741591395383612266982658996199025548505842417534776746915642725712058565024577929136493278348738943427938385854720390258211242435944104765194652827216022084894296457461819920820020881948164359131477094808797250289867336800762347921395154372867129123767867939701746081761919657356808338112658371673177413178497792118043151314330777771637500407749428043756612878657081669383411606611095809302351686708008309683220977632399111802278905329462616546509747357146351422269053540407005817147740257597897053679325796688872694771398942246638144553509562583777036312170715341959026289175749707483336215873047509880615667203975407507486862982959995807636217115463651037909259271651627755008091078906489082871396520173818074076269414575704015722888780954829419825937278169483973953271416004331125252475728528740035910832734378285092367288520565264563499703950379460445035689210692096564574318891427988470477633436528125562443326252594501186392810650142392237396514467199697945613526927143259523589018878693398714044350122820317159556469485522446584746200771945812122026075531077765205140281816626953407458265194778183143847780788134931002546285228473041458182869700607370161767929577896067762760340947933126271349229297927393509487126669578383416136309635444204973110204691954741304695019688826723301551151335828065545340810811762759301361235830348210070493804503387580714123585027246573276227156647463891348649740448628570743974521165904069504894054550261586750865640268301180150148230462554957338789568342796462418970970714753708421127781655532972937180986192308838477640379037771733403464340085796415960883115210678916592015077232131199376861735478717901849560744072058269738627453593279254401664763230036233437450720432364611334711216080783450844752205352271610813638768771564291849174801980876768401459974316664002057654966644054687246571594984004576421425353438792181329639518189233370459217079421645997396060184696782093781729326020243037399510241373009110781288992806516311136821181824456552358498998745262149790428081474183685313906748371021199941390417465665973049598374409654954170568321229772119620970359188892000804667552754557468883208164162337565235815509176554159980225907746529785756637907534224173654040195442793110741745149773243718294467969707444070388374697408050151698397465592118945332446442715387568756620176022134088134727083155357551633724923606448071454347691908100412684265354262461914488986710592298508573337014533629808195569874531065606207301059390531767648433091490763569308267155281393398133690143289143905550022440130758160920053723481199018635563026857665354507854669092743887421793119242243877105573590786987266699935959024180295237076978528842297933268112943980522058836921916399499548650050484418803075786524168911110263262026805889483405759456225489904146539676250684193936762610300312811981908942975410408470287292761645441501020019252208748633130612217194999510998785193285630553473512522730979209507846364739670716985841535632532429082883229833291913395201401458394306589441161206975882645731352228133950941208708625814485105885653703722666306775578494445871669599257552571575382813970757656638205304029695918450040191186586680235932448895119403210661332886798942634775299725448780917018509240108755835211189684230996203776810760983974992856278546305831242945548121079979364704131497563875186723275794626458690559924458909497535836753203719999097560944667798893944438186354312179468452518909510500029073967053484886072408064681039154286684606682980346451203247172639435953312766174338043392450195382012968208744080898909023898086498350471291191531699385909173025207973493340531497270835277663573754832619141801296702052487467476135454729864272244976151344838587912711527299116967285127907615489942997038890234518365913692557367705826452472921335353916307904297795044343774535529542809141494993650849530599236224096741028891239033323092741675162702031539940312024687617382749769258508515108840703971265113340619898461100994567957372103498171367267938589487817474295725591567202713831203386636445762139533911425066049695544673420024773978096091384753631566547821906728689592174340043266281957752582545631694115317811170672805309099437068384565539108783514687068704960443291688465603919297330574981591929199665320260412011846305866601911669972504385451440030847701460564864330774256153733805164780193010876603194019481654787633602269455347790508954622453561702446943902478927153345304201719080315413867075992843087908420711058947503111779840096686885387437282982736576171406437121036908481872991878943534897466245378557714278090356205806738573319398177606596433473427692152560271951274546068744494880957362587733703385300829312300377524626044704141436504454436375671144070961187461936184809368094191231489448656944573152978270105376250662659017133336412614503687038517886103490494479793258605959386274034205385040040211684764593891832751443785299957302938844824678975665608267073269434258297047639320330344685542135603497914148784562187646707449045467024774903415553307370587455006433772290024757202275917387759221916513063724399624378916508954833256604135139655616118066457102303816252459623257138966914559520326658210404812983314085414002859702398709196597077445875704238951971469350855197579994569435207897369016199694220107919574552384361401291090058868944436922923044709548428975844012926031659994754273697626558546239579597434616857682450696322510239549239976523031328407695810551068486315770603202575270312244371098607651789933544578406551445761654345457350257002660092251069981626585892978400885109832577690988713605554573127847180521133889144012155412085287266640557297243162638208932563196723774783146522247568894106084571282249070439119486387043132988379804488018328767067634791034188118820629946248837818782404371202221131080531219689097257837193769303065184127506581965680879270480595785345895421341599635402843194140321653101595032886672544059181143350740716673267418411889388312980142552548341666582855454090708408222709654147895945896269885594615590325562436686655507398602670487620685199367105320434724134294097684391135183761908777711582669122284209706968724318509638680789991985316535143006459329974708959912917912553832769792015464560610777187228367620043186123999042271384226515841946208708350341863717933646409256695907998200864193810173383562369400453919977230956637152424245523701631201719008641104421313847569792772438537368045974522019552690753888148020463841424446863910661793048617062179401795630469837439251852289191540855379428965661692489466458261364889873399219830658564667846256444295836739506091894527030695860182524448467813465203203546012597034995248998970428046837652880972124360589596392269007553169360720162668255128282546955496532334427896129840982623335861813259821935835832133139817977714729588558291999039357935869734638276771125857629249253932659368170481253205525357727364984866733303739227454836676228357738767039355756488668282627845748767788301061299947623801080151708399727175709744215118536924210743718544145531354814442532334758797213622656696690638993648624923537494785641683562556486963815228732748918536359147021958933911374697460111540185773262045988423163587483012695482710047084289195653109530285583548633616947523902792972761791760472351259472205975599866182676769950889643956197467796073902001461615355328010446662725779216553795360010995074044342555582783522666659271243289490381761028609067503576641122814026181787748193353995274755977939945872738006573168074748738282196653559732661997916615890826149817514261754082676153843848802255317202122478429514794493749021310759907348568414983725389675623535896192074537572840030531152771471169461359587392520015930815707691640293138319552382679885402912740694018099601329713292360580303943964103231738717152748789527176473818025937563083376425786434776505308066621388787075994852827188902900871963897053757612876752697237431288131240180000087516206184400110244068123429887718145344512193703753439125850806236054576045297652730340564613048552256874898493492050315835469087295632600129571089989268857504236964785197495637200612740541567138862140588050110650904936341977731043228287507612773827146658214792505133776844514617367632095689143887726601920355418973753919315951780313630483936699058176466053411358341681872197427880986820410026957590844512675012888940062697066621713143374099469816666516568750937279140341225598747918347282515633244910505547835500242729902327243014316523513943936721422882479910069741015233162056352686915483474954757632351159159135558389016736927220818757716286390259495447308656723478526677934813152341851240023986162325394921990887859619869585050697635723925398101570823591688571553923959454677057716326705339626330995788916483853854665210228822111142217780548232043479164576482682639976306522547196928527390502013504354414639797147944641945200626090405535058122219715406172008373063487423459531136091830615259319834027539688128794046837809344732243679146454969128671674056686931360298387037040294112203618287271293006613310633979992753175327010147521325791996794992504857067095663089058828932876517592494236484088231235119045679199544413835531534409505729938957966473871301412818853196528378227835340511567798279543599950279524003882378724907762577255652125011621199832006398216833326066326828511275689110082341119298020144069465439628578164562184747488219014054309714426480400607315057888394362600765518463103178577449278324228658537661510994389955111000040532384871562726794594354108044307057907612774491966552380236566380509222754941115558986053338058461290662956434579995301209633162098598498899925300189120956046173737309696796784021972506626151697827524537581686979147331709029689705526757823849331887910436586831357366771671656444387362991864822938026165898504513426792597186319135388861947610973390344442738318612406485921581814696615631456383082532368917634419041934802338901814167704366597460370125396812798082396596432973407794308024759448949375159902212334043401051706838595928028624745800642165510099319336458006253748759547825843815512794012291061989669828399377196836984332958303789424313773830041586235041070174910984774676632792383502706605480767599437739961087964531058289175159684297909208702739999603631887553074109094302580073403518131587140070329634982266602612265921822751765333983252926906276198052868947736043436167608927506407596453673741934812699388106185020788981580109324572798042716238552294531172517637422494591468556475355181870185266658056911453638432139302029892304417357137128338513887235916524818365409516491936988227814537410642137499880230242657534309824655264370520637809792591374652369979709334402913193591316294144899329616116261182915474235586096852917203550341884962948087061894520311531430129560050856654348395424453355344072739742767007651666441947725736097212112770644233356325778317940336993626704827036683220984956094137213881462113158632023388128914017008945840645239246401531483079351997900251846426945437546342317293048845119322656346028527032080403617079292323240367094368337182854000376657149756946655711320595042365362456557123134617685990641023346703467310179107157255325615191229061153147626700475179056390046526258404293217389413506710306835484104587292249622315162362664079406235504715509423083396124301036148907220413392956489161413975928145997788549505311729150966522701606411794076392957440265699783025919758859421098156058918006733010900869808360094338722224982939826691528212231318597752329430484771313328298542972037239895157542382212841770270912295429371676280787366870480958809870716810182763011295808814361858875000444675287021852852271497650707128018298602359203008638777444846799202977400729167289052540360632961660383240851420630250825355219668161365250561656061914052056699962105374594633681934967615791645883669066970849169080250806910519610464366095030356082518357950010113499600149659598515167150181491122394690321131473464747491487469071638253687065108133373314369116891173332670200556988851000573146352872347286551298212588123145476756578917450336991380200795076225513395904407308830943588743427374052170699081312538024715615215405699288409503635507577061918503060354328452206838734435440853264161206516985517586549009799354921496981410063082919757041152741099083493445604789186442569152137770929339466923504027178797772337835701011110970696297250921989684274984560367188567049957139590919328913533622826756170091092005504482554853755311084636085380108095406769625581261257552258604275183106346582435515241946839324252373668533245102127368357050990608528115045413120216115044901116688407424962258035051161051303476652114527271917846312768691707715697000919265683419315536701977896147786504930805921987504723482432417857848675203141024673775112782838573521792611588963528932290674969761644014203482758698974480118244817581859464821581763779865928107958277672564097345818688798990399054432480971894428973415410508297636243182699377637389499927194493620371498648130645687882069603051479328726211777039453506620820724433704323712942647072007657015317400329696486426642212313395287388824954023177294125616011552613166904277087250032737439267052885052560500678193565969486457428737180381678080473580547353892485909564924386601740741987572474405630303377962685886320369805834150535586882854046364323574955928880367606762052530752973425772680353478533250620981961651365843150872911485834349491382596774050738320699674566986600348402638852343153579828153821729900291010816554075202005584133627077588151675804848266901687927254379966455436880185759084802660706299529187077060961547998593632025764510103892650156763023760262298564345748405953501264715805139270301100838944765752005572287420402247607175504017022570256171324673458070384695667608565328787952504628181675063969614668447218496398796826276486989581317277961488655073641789690346403183169616236787574671488294255546299869118731332138804128214807980827574866536475035688231553655366669493676756723508388670503381113170407699536996447376570393471690317509019719408716726525183828945514942165863657666100274910550986233918063243641040496943274327716796693259493614298189003428871581725922345385891340876203672838107743198934865372002207802594919870411633924713982600032622370994003461569833218811034879416008266214021287321145025889308067058652986317870394229855343867068835075693221061490553019403621583304892211450633675434417453459969608165570584798988047066682398884439643884377156000021296850443914214125432899200695566021872853385655212212386258655655599184037630467723619749573738347403400371645740200200021586629427656260372506355621785339994145161198543130954288792054132218985084182461799612573673884851248266717757375047083024994120398771004838946674779588371586439295316395674993994340183272440165560066297784083693098881341657617590065168981899091544978535218560150540082291838042220948285158130436986044245297900406541764318289063157392304330479891537106059148087645631191491110835455304170404204598574445285176936464412447086972743523379710186986626116753132057253018225077179557535477810591099024854614334175781825970889063052405674216391608537675965840789408924583123179806053773731256487859085397942850291208002884151910063872624175388603978674066762654143657673163533446635618092664113198837453719324850133754463421227852949175998833876634659455167874350520759861865335355554904860335476572793104390794913465790893548906423183846224139086718009936413215518507035819897021224841350918537276077288969639316231864961543624187889345480789100451934303268739420992076893947844150911286370963773281396680683759275068075213231270618466702681209108591273654333880913801018260028494389522450242449776041057756631854602238669543184207886449666492387842044042848346372349169238150340879795489498612817446453487029183680490477463724637718407457100439413249772935360896856187084812168143466433187004719141993180230511042955511263208681182811573558932601413944831107416704288462748284234044036859563308198367365874487945824404082027787779088157768520068633252573443089889623875166017024431356405762598434325286876995047816482345150149813329579119204577175661114048336458841963299092024397543188063830254444212537855098376656585090755235363468368222375015147273192946579658678937959172784465046351620842614126217045044628415847906198523969837258903379052441310234340102267515570219208672818501326824109837962244447206431225701116018495390301438233132666441724505728486962478382835689542598477223049538439735745280629614202923448181154245500883622557636549786735112163247339811284380914369880562287627841008847060474330711004789554216234668726220339889628521314795354002401662458403073625586859041009971160460239092139650182036213564787444526485029638052824934064640872747822473391133062586553332779455367880497182838041109592693903783571200625179107411263570212258730423203144631441110917036475725067769168689846407858934545373657138680121352101412817447798134409876991026630709226207547580006638508549149518303222251315982380029571952173469793006939151200889004026483970750584952873022915509123809689221752367357201894376412128813670462839407706208207023923256453615174205155239455558454827666100550347541894323251866024781308022116652358478967737659117743529443027840668007255862032271843717366741416771502759205389907404194097447815664864656126319452521496192908600046026920136029986125746508715407150505405695081089652089783688733288528467307798151755026498374459298348949366765361224478127041968150636962654402141064358525813967060449625663727361075263570022383731000290514733282399885777364401866874809633768644002936171631535266786228073748658110130605172657138293247156180112535102831506416643629222717916512323020339043876870025884828063484962272908315449450426193629469133403146410902351336476327683652273793241131455089134599564249801430223522092780948456479150638746037490029125593317535188775043869507722567834262243410298585270757046918723480150840823461886324135519090437443419566314333859836805012042156013996105333859122668698835393649198644585643440453806429836526588171840870246058522137021587219706270975937340771226846006665912054800746527290684405628864639799618484418577725182500091568670625935604674207468146148162636342323448434813602671617967243369643037306421847836862117476942150820162743419454854247638145995356369961120737526378825723259019282743312640667788076504081489359653004706424482708603679517696284698723147703445039901722969342149948660860525101268897471255658130718913479873881823349223668166036236090668225047743455295978490824544336129504004197423938309961320439747664846169814569464472933406164408929700604616408614717932503483259124665141883386544556876550483552458854888828632563496230232672519136921238582487816377307758091468402831122646022859946335706139375709514202932762228827537496321220358882641379507754232569213465839752421164664272255905882598700068385436006018081758078451532467442171690429776604152329735876054141261509865439861712778304561067843613591762470025562561239815049058599595153223603554621407019487274656785930054375953857892442972368330893120226086206978334213302173852636141712465404461228049841114348844253156380171291742927804075215698447145061909032154059706248799307555525671981984819650407766872771067806106078089641619923175405177773938374840355087955581707254995384109522394115510739621426075129957282283317953845201398266756020852866927372232744332258765988872003359195863591274769290013164706071408432505740989962389142127313159764942047980215047638934425441861688795349724217781941999356354065998499611516432213116591945908967044660688053876567082000468523884312428796242495578735295076331240809186287064565054527561007122927217426389619523302301877064801676053724906342728475984924261059690186711343732899653677942036866853058272914206567098393219227993186757420783224579960211926845966863478501171948261604957282660190160360929616408718596949013481898106512373195855937788130810295616205463440779066458415905278686514252956307674310287846948192975247020252776727932552126668605471107074221533463594551735746313854953820053533794595781846209062011191298530423470658053668177537531246256493664238312996236488807773590449218755217737192840176400015190126452355209493758944008818429603068026460172904071739741613558438888788697375322958676335575781841585056820045307216415806140850290005445520494319970207523143489716198852832494761936536458959359566655943774676713526447730191730599958687300477041324519254745467734556340380147445447388047891958234030991256532984277896890930916324593100404448643089549496648777142606629730823759501378627873238035108037627232761418101969151234477338431330348072184566853446850811756030443128192980363037154583867171244682326874986122215184644046032577925363354858708738444532053932163164163768368695893165181807038211834802337354341538616551898408762314283538665229639531261033044939282233047286341265757980357987857112055061643875443682208856449488653035336858931271891011307983280365118473305795339646773731493272507821448292591453820600096196053993769728320237769490743110041775525441855820576539225575326115861330336847861957130974218984754633641293924910183836648554743745450575339466440903369029929743035150494906480017463128875350717927653601594843452731283674350982484995340756684943747262414770899939391820455563998875877189614944398184362519883134033213709863425851108176275707397101468877250564910211461221255628944134761589851209741094894050471169515880879894474628632799624840593267581519021771871521713859997740522760155330434288431538924185244229680973327731239373786393744719693406353297288575907329030123980792817553116294419167617885308958383860079060595367699423008347687386143213659038609557521665768255216030115462107494574911371683373727337953842573838899664412226422966833387977133542201024941233083887377191010358084371648406724147574550037413841634415235237935337915472582871421249728304668504840706746909831692402065805031265579181927009957854861610366245813378365583462350961271285630487947702714183332162044807873822702639101701897457365286966219898930328030963426519294948358347288976120197222231600086004781214169579617130064679297639025741216425050675518202592599298275974496486039224483394371157712567471881640644385434991758603726216743813318070732127798534145419115764105001180071569025506457646282138394241388524258025191609379784535827707691986957318966361722097198693219596808634016099322858560721181443174734416648674033100014106922820721868888071058088331179539674737913066212678904373714290598713270462840673061708099171187899985326246436798181936377784020055166462487527540240121460262360131167651242645060726726859451729558680641610339947830680525088437719393412561539305861593746438282484927889506979661523766823409060576913398523713559594720828272682247957920191813024974163622136964629710725786217759876646016344736584299128408004050784483384265858477866500042546935656113598364215854612854885214366613134177346772699016087542405691346476316471493889121490156415819345033626672713941589311895341124370885142513514919866797289484584286623916209528339092873983033082755704547701910237635478555632099648689291332066394362400945757793971721114441505270432226028054780022442638539213800185158076578413240007480857021816199600781815127991179930465625254244165806380207572572490765532598110770692113668506618833602644753622756217577901991710089611961450738947093592704468312643856532051358165871137365643620109082854977996195076147245531445659181151308365589326190608420537425698800175241085492138374815223864439068275696955152513065669049510291476022456979533391428303403107301747567475343874501251424628028017269672102048179015451001558681954342453641282801360848600665459980475498983678726948728040496789561309571226083412763782557005538313619953565345752687250106372792250373995610319441345522461600137005308893744448346109930361127017173265907512663028067214983722926750058552510728670107331698030675312592111287066245421620556111245705987494600215574151512723368597751068095493721412495828531601112854756620918510007746016808987750327816171857939680554561563507251039893821657998150250225906056822828658282471419390963336958341007333901312572218304458260104739999606602355866285817267156592429136774195125807103879278621221557217283924211156561291183964696766224843524336063908612319844339423981705676045777144848078891333068363664789413334971879488165537471829333360734041952919469037202080962489917851688993412940642618684020000047946871025713115945856768366160465689035532149044449324207788933878012343724215240387604564868518101298415937201704354902491296141036884541692246796554905369732176020395851496322461794962695344711367471843737841428459671281462347355129170929749294758039030384410984441971820631141673437476872611932870672744567344678158100124645385393499348998681854442290794305311858279671701999679612613872431704660807299048157626864466027978435600468437749353058456357557617331143004914724895201097020713181031984648932438507814673090043079005831404249423614993285073260552019281344797800220822270729666232363583638581225630433795082633375097024281981002321396716307298499683297453372655736415239741319468176233139884528667275604019303872892545130991827302115370738794917415824661786525420352158265626698900230735560524769113884986231846194057226459692007087662555195139223963148531762309741768526127655957902218482294671839349859183106570333540741137953691584958068516755498855548703058791144295947265110214075197979011243860763033742676613028406624716044850844348147223864005653538362967994268896247419263344752538441942749193186608650867507452318053995456114062374176156953499003004961206178509336044583892166148851901266511629389640604211493619846809556187696694529566409224023390189744295634144118557109527103094198954765731473982462787533359222466500977578276155603830346907236026739835480861435590188112697977407764219135422497748017352115396762705424704050487739576060363515253414892131546305427645080592911980702497709117158306777072876446960156760488799879882068647707740866696100352064708592078023927241190496554591430317132994406364380671949796407114579359394475706512767526574921016738468036373342502191893763286902999205618858976278077159395483855539568755612974725372038039336536488100990067924266332592224091085995302691876972011221582598688132949776484271339343209431811180900337643206231354403485106020893089587376472428693851369528809481399331073764676945101193884322385955265586811901862852412127671973226922627036412779185343231305059263240755659384540367779731506410521560593908837407638398882695689538628729772830849520896281726074035257315304107002082166041230993677810029721628669607878250747095571397605383692325644645519232675491840978161487456259951331581228940147694197865517935325293226544142308095049443049788964730447294490987952891566371700088180430378524516508171694550574458276204024715434932316962917014013896524739581136633965204562040815794676252281200421623929289716455226870961980502714578522990991486838604362495247280198133345366944380523394820720288959747787690699426191451756441174293258749384117986678216138022504457345453158090253228162082062113100254504712303331843333640072001965197636209976321654728244804093206295388804478918705087706229180056880512079141057177127734895227472567625494036742939026809811244356742161979140354935589009344602809499021006040858105848020854940057243704459983377944155155986449101345249394772625122259846470057541489149487749281401166691881287272026037130167843102518410238512973494681663945189408233312376066038228523773103811186626209231590283608611800259261929123363773191268266673445544973031903897070952544136386735626324541667654008716658763299591977789624851788214386061513216500151285194171614520858708477118929511987901424047098653123636327816263087931323653047034133525983331143224659866346771876771549532583893268528376980505462154933998976842442494918474612418155908987152525425654132510057406342987266585102137342427639329501804070226542213854963832613765328273688938286291168734091648456996439499184928951785120276540530101940769469025200870044683913387465657831322587606231020982912863378239160938946484886950317434308548610506041396811327405462062127999386520776301512331802697848035794204265208664380861846947086365648503274324836231664339419557802266113084244523708525771787889083140066558993345685275076735357442211265003007436839437142373495148542987488669643386114233594428518357381120898749943473433793105198363441387141508473697634744720618968492033239071650995794293529840598763113133943408657169748360293407213578461850361322591798838633507525599217394547504745287671358981947241241316045589075754438584426732783820792093233520656387107838252731092521462844190996036585857225366378245558904374770525436933865688703609760374100263009114603892363484288231282452976480470682177513500305263282444935449813912104950511306749569180251938950560165818821130834854053162043433238385966348379905002179016589788881994058182965192087104423616794599958838874438058707187140861311775544463058758304427190508169098475709433724620151298899993479642440294967115356212740143704415732768359752861533097154973417706636026062671473560347340444793657238441939390184932023235091511458783949678424241289513326572722212764760379434845067526984593358500076845474508871249466142885348597710869581646279919261820059959614178339754017613212173102316667376429301105870969819104740190901494909037539419456787520507723945258116276361856663792083875635011057441130114342871907303970180830597599612434361095767398830235294484625424491600486440398326254857950045080128068666764286061041659011175251598280711532493005819134509429507373935551512508801824962841172768968793895500797769643964125017363879756969680688762006953291357202312334362342328626485590043745191376835618193453713870087142692656942362608367282862925840237855381725132343134397841602631277399948566866298557861042208946751684092004361681989676817391842727792017342706618206584422533320077899963746345299579805884625845493959257083296718121234451779540169316683717059625056573467339768719080300502728477129609889113747005372027650007170548920102890437910843536951662892249766606782233667507863618695887784802942005034644093759196343947809164943867471948353417325120187759873356558662657068071416084106186540509602051456937778870468917356399901030146659545213170031819584535466816446538768748856357387116780462375892806418480933290736424414405094127842021493368860168765133264463283625800428845932383089195254538457992196593682553634485532908298459851669297042718553085597811437531402397051216511421849716376707630160920434319841583234984259958471296216292258142584504950832845164154589756904901398419591797563058431738061677463809751485182011136486403502555314746929684368548366059108460350741851613494886889350427949052807433519927273751915533473385581460296884135971054804461937180173473139472107906152352580828023302467087158618579256329913548228212088956200568229612675884209825472871813267563340840512173415627848378715308929893605599534694546904340375099579119667353618792386935659939342365753279871871558813259386829516276124366493205429256731118769697029432749374217720446455060618784001590040714406104584368631506830670174986071728328329305907134190512780405874483529357866148155171926398686077724325702019020682729611743742263332489126323294245559178022980705659814505141101372343481739784516870175503071780185057051828163443737092406784965318691607076951078440883552218817461998486543268463086115893170279194824774106512145001730321287576250451926030900319632056739028167091732920099009378362944082320076721775659330583834975262845338160351206984119521127560453454772521174339868408685485047264440876652521977146821205786725132516721565192041442912431349186786649726878318461508460057153950133561980791760248897576791973346753096331317360399451158017777392108566545361125863706010457436574927305915150580688690186150790811993970974852850241070298713392741256744777746022916893683896899928420774244922699921127340189656118046793658171593685854449332404542655015623341289566099500668969120365853575136313658646309820165809659056871223813059091592907111320106073355538202838468146227495769843086233608920688786190271837732749513606824149054430330588630488381230422877695600606882550861110853990247185650270254129486980708261827164681680615965868689671324703168332740771546424872944329889916884014827962799209005277832965010262085198729974535770322246706765872270550510319246315718885983335313014682778309280734549152087672936975818975819211559495214721860864636112636141093530118007836349487536832115443507135166267965496262393101525607035930165240823186387265408761164341264455043786542190167786625433622241296934854528562454762187837624156524354630496411442429615233184201368497411235271641917522778249579456812098898146973706106746851198020550008786404517672871671164715953187640939898016951340356306858421654712096820148300930597864818289675318730418140330458760273501631066149437857344242646702294250782779825294960951294511412969331929543412867219444085337630371041006801464483668226821390443707157600295539957158405898797295769149154711186943191804582360610968101525123364591598173006348363517165220479525697836357202505544254337020890937626761481506779057461774547163068237403500716868856732114851885236930264196499451441458014507539795646061447318265715844354840268647322451859722743165178633037093429175902324470463654429535872801218141987092027948911419393994497287204189579874515115013060850959148671331062228356238252050975894082631343265449722219003844009828806968787009296712802764709414859468791117378407976953379320022126804850172534600322781128242969457016751671505878740955549164729641991245834110084081234775532928043325370501337366808120098920170549785041486716814184527432965347722740645173702566656700578021392556859239273567999287182541699469599143584015443366803232029171102456497011989376968701845462727722544306963984082463541333288116414825641400707439284277982733817684214640419919531375680252824443276597750147368569574208100457379392654768014393135814954535748682192199982894033497078218519304407695256182534336413620469946810163045867041233992730607418904123273564045476987913737702103778895684027982050637082653723645867537805343567734758806428199859289729254939713434502847680677271563219998413973794198892213913948149998465152072694830292895315617049995351825987626685821219610361986688055352425918325714644855288461061200855143984972952686949837371794351265793702494517802670289099708911071160097426666851210123046594454319561843501854863903644422007084467499058101286683281451772674546373710275978008655156986250218668490306889175152324768637904451739440885919248434292750664161635920894089677120296207744692207303987814068373033852719082189522531155881079753116650502116638642062203775070315457854994440183633671897638894302059410284735253693247051835255560203577889705874431461592305642248077194344937447428384557194647338690625395511713127270529936007371557489652898120862406616707945760620468552651931268158923586645620278574544040634515299092763839770073360252475116040659565989573502671786672323091542850556943262027293108513693283868377606181030705303806318482350974438985852748108690574782890975742645313537023362749154334266565499610275495187581810709138343116337691661175531702871792242734652410854163303576011834183047371622344371382210195443852139652120459781382608503894904734424447208812722625877318342004036552158784675554135515298169490355877848557564355760959116520803058462289558344876262294033292563565490421190767303720735390955827677164549664341573882931523157383936162693934788268001858800621112181284475241478615665086615911835879966459286889911630494032513599459500439643686142630335219157758718236482130922761927648023468494167040558606029867403371857640620685832305871619851719571288159126091069022101740480543734349595010516157322455821155653233485003171232899195560326011655425453401865698157015153162301190529687210863263204658273342130376372008493339643286163713961248705669530418483151289723219556497662386940337573788676842111413720357346933630876476463850843984166119309640356595785160457848631719700623882365695575871191798540466221815918557587532100880318996132596471839315962831667470363561614036847991836593377597932626388735089890419689554376877879856514612551066337158243655552676566126897104834670489105478200703663106071706192083558724182486726603792382815375445611964180776877545868670018996997980423945539300409610774319527822493000317961498656075909482814030658471569698670985601809269144326340851767736666136804165588403210756673267931032502773542356556265233316338325664342200257600474536880534335922238714608981606531981031812427621315644920277514854060786634460425512533784813680471552364936565509314452864902789368911687808270942028333918783551351001196621247737764665063576358191865864166601029209301566745140725500700365431859617557915022205036549641973799295659105349525414244042981608078021921964224752352995090841125427241528011992502508541386518359143121299211559377216929566313669409216889821020958988422674656025002607383253612693247396171512158624454833687798476233433848189577982919642280156397197482392877950541692780908074852782651385455942396782866796201697441064409838084771378941526607525449438195460667380663966010169522950634744532633778719110254869923544165498351731413749233087902056920916632588858619283502794520680437412838962190016522653615691604113446668188262785819173628412128107973134988317396741054942526415458222458228295629256429029697611900534640463894531851421951283138546108938239270072758622720775757963412459701976795454899710754684764346267777031103715742468705406522631822519524180969223851902878545552079829420852006655282824772573640057187058132837999716680983719271391661021766114372325653739077265158837051271505121083381576637675266172529341967950233315430776993634629913253925430229825989432535124183005874400053536875839193158673468653290953995976179372307346023768469174573340130663958297636158196762021093795551237127885728497981054199718492300510200087952460404303640919237514452769875930399388119560467622406716309799975832806319121401018536683977799198672102395781243625202367413426783063547862128888279969141554636887693127580427894846984592835767056347427618499649514122153760721909497018426306600877664827691833967274730137757944472479382647949107172025748730632721544009407401757180898300317817368867193317920098186743603993024593226842979690922485054899819720207316250130682784933963408260920265013390559885807382612918945922368069394513673756569482506582859357534639253808860169414599396084564691352920190607379868121003794117982847843665756474442451913182716486172531449267824806822094694939664223894905685180835367408016646502792842527972220341057400548316056650325025318402863681147502502537920340855147737255398474719586626508142858325114840179198918804937937351015993144350764204277270258796543054921532782657422915009021516687471665148560380163592908633421989363828421214947635788082870373719314572205712478263989127810338748664649187873248117044296080009954228562811447060187548157497421059686545130955238715304552516504001559979159306833635692523987229556900153592589402438219541009193176657531251789645012610766818012240278836386176031716144867582357266984335825907437352117081316544094154019296187144688935279308544828837528496219458110989027658522095957672137125654393758802335658001651922771304254851847172815327631006533149338004041879703381892548901275098261081716570414242121098854138353701470680349938071137801656029991982776299625839909401263674590391350617596794779987266267522931324232811619639581467240884137821578934118633465308566218933433233592929320645713896583267029162743189041614071568899884133283353200693072560614589554691626807290305634187702874221023743311757116520963116661920358023946628090748299377543952135079292239162434758222557809387511291054041357813711803208017664695118892460488091928528171182535594930924857009086742366367307088723979248016189023548032145876642990418785852373323966016715464168114421953470798713137727167566736534730600386667453765449568823356095240140659630272623624006359115309065894246951119748770396353896505934034713513281902523978089826293087152013339007390005078829510007299386867909110875413521521006016416560523569432748571999498809162167705903081061976170230024271764807882953587077487771000040486639403296419841730286740072211910975283971380047480104782914584094646756285503386214732017908744407021085478771359956321163378979661440549122598617157812770833163080514407455783804197811823703078596598083748826588137412047183853516750968499547120551323656543531759376659901735039763315373704224029178087556223364407607166801654487074336650299564549856628272419336555619102463600253493180422336458124049382025595450254039167774334870908534696548577826485831642504419029937935660257246086073180960679641007778344651669584099994881888934062501061274540293501360869569584281124980239595053593802614389814300533336645436337287957033772287809490966838797766442658145517420988508532479897145590098716345804819372437559617730521651390908105041746087714180415527972292065599510892183921260808622114168277450244071321439093794836665893943746757366531121623535410823615270897103350720564170977771876837091572021169725066284057837216522712707722580087882970424977425637450587987934137799465269405627122091777142259029386693901914929798379970310631783455323137227600513802613158892053474714787486600266284884489584469849857876529721265511809333459078162258112608326934366606040028958481689438655842295136914845693284735260487113850518514239503223630878065235659996607001553452195296776921103478902928632012659235624733234938155758604180586163555028568485528824776886687613075316766594903978989194500221120214560348087639818497571433795702415141299378668587168395046247741791247121296312575169051546820979668959813553275050756436653179717692211472544299931680125297446998604321207139554921265904527084665794723473205092331079356204081271471226256563219949542889857996817974153877429399603184751352874480919482467946242397738117566498336655614214410956567498535160276589278020320278908800405378678605490227191028916522212783955748293958555948229037770058266422353631721200482291379986946984443405361671757721521807823968975345094945934357817497276767991517988789733060050214785527223950454866484818202806355196354812051068687322288269542944140114986608241315370329729947056682347258806061971784639368646375468891341046352359975020413164501582926047210388473288624229168328816769207119304813547070697168462302639518126739129623735821222465266765549280442937893457374023653460717578757723382382749736657660798981075985262609711500288637988025363049208249334055162119515349701610074578667460853368960240751167187965260240745646771522027195968126125911259978708345570332326285926121732694804177507861191719771830890458772342804308481708236233000146049824460685808877540625202776514229619027870118610910744336687269295970400345318623274336094501672929214508023791474414612003862234179606097278966650798028948507094071861856756278380886115990841277664747130206657360929700619343635934185844332925305572777027328565224217834473237965801454656700235967445476474977975918179534484689456201132650562515467880775975291519199214531154909076356917067058202829373787096885314671274214914153784574336606787660807609386900076945563158569416348001327723309959238638906036565451604426487285493419277462706009205425354024343633830273399586741879045912549663564707933660072356965582987233417340550619706713266070086542802979002098437357681673743098954139741005742273102978315579370449338996691910380079453285908353377382084308169801635712314650651802118732441775395095972673062291361955749388130284963250959162944045493303425383234253414159081171385125769316567434897260703040069607906452582039398199322073880222611462202359743838292315870996329010972251968226953665219179249932146792311453063330964496411229727417184062219235460270254367349889316417259876274119225293147566376826257535227494857217159711444781346892112511453899681945685452751783328369695670529760357467595459722614259769120139146439413232208859994078175280164956779992247956316822133870280589072766959904615253698448414233140590959641132804108049620646579415711114303843480344733615286190585753529695869489765991181310711206291496156889158184532924849441583243708190021637403686704585810351883216661838177909011424193594958620358990225691389290139254967079467517938167145976428376028073975571565694095199422754284399192213053247928011406599456754568171728153421467303195775932919156683436714105750864079813469553607402428201220111848441698806923167844130374431328581440506437017111010192921906352397090206014560939260220291159615107762743328587820071492249681033868839362366880406146194232170330845480874120270563722336666508540520076754994923157939673691851816631745200175478738207616827373349074058056145911916400037312646913455083304126498776663684735542883463713327702346019805833279993610547775273896786212163937780509910597851550865979026627585521104444310205515556631760630442082179012343578706523276984583145186333774431845106393702753251385339851097631042870764597859016999477320483463181226235982691702942250121770934718012928565888737687251506270175311314004435873949180737039124072578676783058286342611416697502220913929681679719133500122273842914293281923185572893061184848588155083940145843499390067079890672211020998923746363249519531381083360814589466270626905045749241731266543580160118842735923744480830154657481993864105705401330789217266000184307735564395029199584632138992597541764115343046178353611852900047641651974323951831255159602110214102949392655467238415287733598434263346602371137668789985836355006085936117041581636045986147564132646423520052299193249250898350548872764451171626222466927470168039192444007548147063577466314647155568407624625008793402056477904300831691246426826952472845970553636666282505928714541532617930201885673436051855070788280420424157069133893399077901966061437114620036536096582874064207541645260401470805935381258321317374077020323319641276281223450911987268258061990830569417345378936135686639472791797426475965144381444989056158726910404964501471374510948331740052934793396201060734161667053393956558173107415493073816181183186276852431897052365598286902778040053071906935626768079596832843316100716405454333195097348259524337553445210512691820115173811049890358231210382314507534327581562881811218908001326751298256548158461532243908967980025173539690782156498187591446850546848428747462664860114769628734986698386857447176333072141793927431070284901694615748655775752598164844720475115637747299680651259182234430428115788447483374266339261862645672829208052618700998005707352317908403897910133755677968793707019396293762776801687508297812997114922418967085574945131130398895057227389456743660088683893044895142775281413914918637832794081449507899596429689869604626402889945324029382716150728015836650067555093773308051879210879332572333396808532612366589152371786159767366373442527807378778691845281940439446756222345552082542261765638516908371337400328481113208817636288043859514668263681136677429573976053605950837248402451172060323355482854672078753996080233148370451201753359689892700233566354540949565779360567621047708005482271690342981127941361561652391709966130739824206582884127281470643596362749851785879687136324495536032073112798441913078195803834499796437282876365421276745563813406758196173630832524602122916230796155414921677644389681201067787407613162575733337342724211742632806992077078053209762552905659034120533645124003084103007112639282116253949891579472189561816318063676965188554943191049324349021417263344668558061917905454924162947625253944606740440748449923893394365882258032300930061108269618972630904190404376203918678673817990230876504878739307519206133428648250390432255340347785959073050874061294122999407859363058935339082970850213105534494073522184046270551650523394350227343474726162355289540667770559994382758127984775033044720221427008861009352807390165270160939709191127036088766429907819187268962684576410080291151866369195210721870934781585263975753293474878323782331339413305817628206210390587867028498002386642791283004589919837725520662767490197133120456482686612948056449010279118433395304246508654984264233974993999209650275101125357578869865205405789354658978277365628098964856305311870331113725821059940483730371540821421191519794497636297481826227021531409169881386177980844854781586176420000715519096307173897730143265059861042940053556148867819988391273335802294734380920448887661162129364419424154790783513556835414181132937912394214448236195558299633834514936920123495243458835451038014257813534219688028737960828351894576383494821214503838561973487514398224350609494909567354337064830321506504351690329545471389559259119436132954145863251350970314981151183530354940523160805754245572466091069264635619023894721784198686962019892540390321815655718356810047063272616257095785838822892717434277096765175526307726618678433587391573122112276103219659286973886992809541170550563063939153566478717363162245832230702416826392320630136022252967542020861369538509627196458956309304121641870184903121209128527008444930737943651889090081669058402352927792267606141945942034157924552071782583380077586399797770625770792860938339045133917216560919749110121103193267160741627115472540452790675992022966701831892883692635434200742159449634620148682994744567567661608534228990971382057127365163881894177559647940140212391045498017129360835236653616055035698381586699036607468215409800255221153647886729634088550707555252753728462376240562516872706789658291708115706670291074639592054604009483899653288715177123754507807153834391022906899561112593754271533596536700302409577261022488599276956322935352737096970338167984286797722577227594092242459623941831911871152713611623374887583023717841203440928822665725182716331490253026742583654429405934426537483003684524123225929150827130012215559476720206876201790954873682117815065696169285249980687942938808421030654775790292938027469849982894062318750090369492630004692849484016317540610690804049702544576616142462012177423183864520102472669720828586366510643414918759369197572447611437448113534799923042944671621468748562350560748813778076342128380583365646580979094947589098290222034043297510124618896852047291764500400874019384384679494449640738624889892329066949710754160452889393791475039322439389298890648038981753456699953710632776971675201093496553877339796004433379161154700920020979044011141296347171877413959933799986232747967014630500308693584120089696701376281349983278110381651878846298904611454498844777479232394521422346216644287094957553739576956425349845441839680275760466150725012473716067005697361084131323266391110378365352351383708461654274190069822737587762263484057294802988845587476352106297999761739929777586079453394977042929304679582543565200195064849814415355524752274428850788289099151264285442953474171460318604678547666294837749266704199605333802157572459054429044365741819445072259647792302300925563826913854156549342304109006405596084465631310753437374743470225959718670799072697243888922998657112103081633666265935362782759054775906069663638838723128103880482175309108759520590082307458755317163422654284658533132195830240954282459371910338812766664699421930960370350497935037180584650793097108292130689025966139855530824942196275314730289322210569180943591383061491299116905063423478648446818800931402421032651909080190263349838281269217201802149447656181894011021362656052644496798450241901534720606978924326723858043470726392994025082120225043527756383384434463087445885049096481132410006925369528811216929064140943124228653403093200607755385500497365043042297243058683393417086966545170454806005770191175926325574429307595613406375453857915155981447316700341064942106720603752539758533748501856080286669656207505652468960002762668675203840579756638817300161420066833633767208843035064283611488136501430072402858419284161683832233638321974318272767517957844366094636275744094032792039107787119003849133437265024180727019728630764698610866314107333070332462312545931489758870013718246789678845056105931241076235616932307019463773546430830929109241327306461141458039392548024720826287298507265177887748238507397928063849855968058037760635673863006415738067969782778700135232461273849408456681277335487442195247640986835188121584469856833109404647808256037907820645761328383905438675348812273833916139084384860776690794622642619434044484655321157724136695999313884433746395585512666737793351074249990263553494014700579325764901119818013965894877319527346463646006989611212739442849040143347413234940333543848260688395530368285733271561157167263328863467178179990201360117953866967013456595002624714064467476193957032021664001038639365879491613597121039943183483038741185183481690812694636706974314966802083554610788783403351268800378582517706129346531888000897696725322733245075371888751772417217048548863407910252049633760512378092990526653441161859539623047715343833601246864282532797044892093009144572301086311670334171080837971053934283142947679294795964814980361026990970052638214456302742755392051032954185062460698151102317874276438516121602001056810608721839524696550521715126010180036440853065481069573927421100839285428719054297024558799235127871133988532726162301176842889442492213850025145103416339729531428008940864688252576548801010582324779223063644795574166657270335635773486274353535033764299164485641628589707957037605356258172356253599001232882288901051990210989862012801403003925293917735849540532956421314831611113867234308284207783158971163523553382650887531605877429013392591135278738359803633606296973838861361930565393692535871375478397481731215446022275376584022404988275596005318558992123846901709290915664954774697059430960009467350367023946323419601578854969132730228044621717543122912845591311266068246777858492362702242408111572064755991603170756066788059202663678147886480204640615189381723742507097532575373735554636551786074290550808365089756707137030786424095619959345898309369464807038572248823323436185351586299253702123402224774469669566265202124266458902664088134056354470302943002140813619766505075854986854580970170218411957968115593684947824305502837625321640181517338844919904577234123949357125225227124428885772020038109920577951401325215261297358947959874941532724818157156162639734484158793929887155054093383228994275859825020044808997768480802474269021422125369663352704451815695526157130994611149076356127182957995754914654216427826493224625983586463923871046378830756355516536231866734571432108390251817602014857708650338533275189289803054524663850102913218680940166845244720676059319911452647119320455768043459546556608010794675436108951156628963900869809687075509726995404415612512080503730290465606642005464279023932680205126647799817113297594010505081778370441764582407688577570737296437607770400331770248690348292922259677465823713041979055841611649559887377985443505806033276893488676468669039705565482150515610802057777912898784283204058643201138517043848424560200323771977214129707007872076621068483629844488025406399770240694151683764229748174469225702442384632168348620422437038362193493554253430530571268690076775934090237463845876713004999073369412179948260222349230216284034787122548692731480777550065522197724978280540297886349578541164325427999826707059843328274554251157725006967349020979710117713138540586838617934504489017715142462299308333023373278014880659306460347083248356643576688009060875648498582110152334628525313940388954055139055531355460437104108359436872961175668462713704579623840782450302760426272774613485684208285300242902184306207131882117134762020634350663533990878114550727140726911430524042106531922829510088491926628232133071719080461899188921372838763144106921409618466321331579991232742690507831264590112023809632843846295959485456790606641465990815898137433020255598477154373406919219393958711833451399535991652102363053875669619267765226727655354280857128414283035457490598711188201032142890862047471352423794480651412060612040056294520438276108407641472361723455088690464327089557676669783364647552130190113871437631608727072662533977240044765627758900015160211322254199823295098610535035785094449110451535777496281168106105996815928293536566574031640175172618082058345932912275632009396427737822877780534162660065219663084451072271377755299551853316659443875837125640829990103727424843007441246704224738742103139527258671448375532356145468067095007335667109859875141142921454488722123005913613859570796759488796171356498158193160417214038029219413392581881356149998047869629559442926130661104233865395025975598412893598154360516342448469288750387727343337601289362918182785247508123089697178187319300075988843589176172331920769385188525304240316470077382367469283432192496675896362868652367560383957283960224868835996929289781700505416230577951869324866912521208097013723348343389009786181413939171333834622349070551723025308333153144513579961162766080308240571174314863840696800385517880044255209339299412500571506217828327788904358645604531413697545084705556916791728821565438369950694602677299428645962851088957905771298180573105976387177410773794434650794111403113393561754864894165847377964186918659499336631070732471117025864792299320469082487296404434937203721162230265751065217922077787645889529086872207147971603174905221470641289807697721290694695192330952413490908503511440200912949511506607333787483592192786385486230624501195083278760522138890320133828089177818167280246339712060397608831457360027105344668420999124949413470966852911515750129131177371737751869877335693857650733750105039541910970417389565631430813818611463680512055264932913410753720634291585120016931748261584451474692602459325138961813726243523189331966313409120149907399544736135757238444902053694134116095302601052746301519282330012692805798709935148160354220999851347038999670283630523897467420934431572014104240504481710374635464956129429416466222092418256274647772760370716778707027191188529762507865274908472172758766301141651092666097616861932084285136552718361475179427199582698969338511752077642072575696344283241635491302118633121136144890774150372442814524231241325687522959668380301441947820079746301959823886898727448711140717226433720235262424985088210665959699221195889174551412889810040473719049030926337431879839866634134975907505262489546160541277016761446796386376467642087729577866504178795765647316053680971545780451369344400792454957188741156037593956686528771720311908111936798673640645138446152142126641965379255781034906847101610314157091304844378161961392788419994643993997406338037296981515661951037754399386367196862164184099272499687977827525803556695925809860151721544699571854166443312983662465366283658647715438892169983818477803106222970871262315945288916108300906384048232051875060470312045111224888605562916821336379377323040833532128907851763490519015047167076182323552818823039623417294753637309964525622057731312364677684184474280843409953387254147514575473744961542338647560107772098753545586050386491309259319142355212642346953069703792989478804097372788024332483287305874453511220142660127118516852140158075757034269341840715157040999610102379799814070789508952466137399302719178626805400556744290158772623144915095856491490043143423925461126301244239134217078288403527355474898848818508161065709851696539390236978392714668909654556652111135723949836515546830342525948445755685944961162118638630534408373709094306329960688107399907364111569709679360528402269658845056786606585363410261707663001293411806135470796121652196843073081825991838345582699279825308972051390795775032354808307202730664784349087783586151702682215437868285967591636332260276548738508838704252208708567377352768658582323477334523773037701772221654251326226445018421566796997524625011311655295471332889040829503203076758991326801553096839344364339461032866312304382924305450089793150120672244866577925874331186666691023400673652032126466434570239338757803555969393942920233801161425740626403864006796093186296610871541017705863986890212097426702407122916357741015918980961471489296217401615638484299606453486273306789823999595018786975550855053115252130578362758349049670026445961664759803242097118693989068370868349847472079893124603096338157719439049348591259567542333259008630578367987033202811902868705722563517284886283052722624296346197946354537149823607849874842209778136725486467490770768030436242088015229201411771721213501457546111922279146294416044895768119396216273004746746741148693413773973477821264396968398642019320809345973742469970270902706399058050290388999234050029342216824691182713891772830682690427742724353757812313480243129744916744217083577452267537548991051910884791334869159260289601475125151777241638694496559647949282347110222477925730542563904209860308542214768605613680088672064480963166471852207050708712879605070962808244168513996011763183642152615671683152286024480683160721735018305369950510860745345440609406231208598344525070775318461240691664813786706944479564101564806910343709030676653590353719590937543900047331742423809834750815965335071276611067078224964287960857150013732053704886119615989491415416052237941805856887060622904827751691887765171638264611280708593988211504005879230887601731545900371478788127274483959431738516319895535957500627898577359766238835179294254396572306813755628826308220159970531774202112818823100839850509000169677969894770333000585059241504374940178349075348727512176173160151828463811115555761118817207591264328465554135699568708994325212538603414725244949659325458216161389284487334295386241069291191323092152503410592983549369082206679553079627060475590136625962337355481013127131555436188998359577433025547852568608662327345792884404612937625047262718103626463872506841619017048708197984138672625472225301895122760691709393051274702584426584469950223832590642869828090185302398970944669746165390131277217488158111255015740945531989047078040251735176966403161020909305152179056457772256375783724003335435121860385109311947405007825196567959396605072631942240696372775053040801133183533544130267615637884595049269472002862761153194658098742381155139661402950362287637529950333548233685514024592461802819879297513441206982507399746379552766598659923159053974013840978955063218612433668022820382384406309767195850643961716708305466161917490737607318489931922709130069044060800794677200785244400041503456589058433768195606474002994680131499670240352306667232114185684576552306981463847776181506946109017859490172012127709060464969980762027219985475030763909191352614567415396729387984441316526354871032555785353345332450305436662846594786985727852296800488101386755256612041328330321901872260151077854501084799501098657615987079731662468333541314415380343935162038995034589947405148951254559109663044560041610159015900424446984165966446573863458532569311707004418275055446284232597755727299588046248601552834279117071204771068214178921517628296503675654014301669525209363963916813601951404606494487868039211779454952416630099912932847770319785127191052637085284116146769573917033070093626076334428765780927726726668944376009444738757186040137350726946302937496456855410939543903926030117535779924754286880917704294761699479849127967583577807787798302195966956660343938374631978270899886947548728328294940323026250519262098919879505747128827409404031128867312384386306947323796844879405826601526632476982999588130537853932228710472878738367311885355736217339688796559116511317573199402363485662759947047976560106533657607802750383860700495090821852237200599387883241325534475989486181376255502987111250058626874519403916375185183765674304109120301676953886176182910761281198335202908722795879783697497358484496257999227776568876761488583396762166549192344147311266557003751366428221135858054887819264787346050086723568028701286386186472236241182336170269700267726120393899591842792313120513473205297923539441552299565128466615213819333724246686834353933378448041220533435593618095690094197763305396842659162495722928534951506847217822353989801568136622422902134400489085912516754552762730718424660744707904579933204562455483220424976488887073562442705893974724458917493027560742509956619128015001119333328991046124192587541846973245290946978453355529516725709651826274708606867946548175219638035680375970180172643957165170794538975468171430712275528718314080224265884770756761582802277173324135460098374262866500609875736076727298548626277053584629903296102727229012303702236625620340233603582523437920522667990107107495513885689288810656085088665434353861458951466153803894198150472463889498262529438098533371588358697320446524291371520209567622889022570547283924750793466526826770482830063973405365828491282041491937534279782483003020591988237943965421296427044963909351530387903757825755766403769922787094973144406374245186350085613074389237957817557545430251811635877181188428391234212172715062355293846781208799429999080801877511873476009115612001139264299294900777151346447026311966854144649574117105929365830755229866546455236260572314567173017190508941110157746775524347974803417215682936821647243864375017482778031743445978949130062722245103313551109923024103895168450544235287246999372230718859230459869410845613177058379281920208756120927771057525470364330822060965320848063933406332850841787788625257643794990455460727379703998113471976685735857883791963064453246053591074567906983021381848182598522153330006725494512557424054751235981424621285577619185348525269685652591696941556213828676473280830203833131841226642514272921930422668469243841987787804597087638636090984207418588502321682842237424246914793571309597617276703994053158541350236534081783154041909717870922427417745990624665837395234610979028788532064007077612535635979612135976885062537266366690509791355702241766730640813701679220877106437280924777254650802711222377811478813606946147985203270141220003020414248149972189098614452762896736996406432163419563782274111530948631094244565242020300410895925126830913024152248707973695864422266640110888267577053627552281625867436822092946241609286580255115094810577987566641750570584234453490177333228452325738545954737094756979992829673359040789087099580840417067049686788627060109609252523663692543173819037214415189477283416987851732935553659063677854009227471875342154905842009837911035707086835547781185194911769585742388476460047274471426128674673258326574413878898359060499080600643039426254886182519460757521384294411348531634129270031523757085484082084311475210150958981578527506196134409881624244850181410931090544250211812361951364228663404822398911639539478427162739616149975271722266434218439613894324895731534849165579048610974528835644186522914206881978506425655675137279044711081696607555858645545346210625421809299543858784635810616624989452139157196965841772181558124730775369053472444458223742900114218213069068076945928414751718865585608689702964279307195063166644543715232474635731052932843899053215795338483028312443343686066941264718032969065999486429705945706329170421188972327150406846537304518120209774134380420355171097776053775163549381965311747803581826813755920542560193008135149158186549116206329023837854374826131516553233330175744789342914463104323516243984933598116581121863916649389770775098466176664893726324454600935155682092080989865251538020810742299917999700326736965559037182536190827769291515882683348098827491806016689073384886359001967140116290040862509910848580267789154380501057698510896917649466869936768572739227734106182119748034884794076094505942119214696432588577078094274254769090036401017290469207740003332854831232685674290965514412701002129267695717873210779533023923447697670502802098085937315114285306935838291268605420607571350150522337576727935306207868449204667146020501485257754437723735999526193066850763251140392277497859565865552642783310512495305158818104973512330411234695774625112447710672449785840265075819584602417496145505279951311966540601632917031982056810302451811562977692624902371261715228827742425025334910191522552396173829425183720393753820135560976084192040000870636641472457309571898142774270321137685447473951522005823624040806199189953214953750794897739381383854472885534847163203001325200344028583733302171263820497363038156024241718045065545622366268450342705945005155144235201214775542036933761713219906933284270999748994823120396075862678474358702162702473740658366550592449015693173434616410900796874931983944651795622916526976861523159247311699367316616799758346060791076585293109509391072361471379810100193561054788169396399050615680171869057182469824373843510714217366674246458294126802647132011674968384398979897873841955908131014616035173082010302349734318662013660167505317238073643181031202128376484360699269054622543842162252177721688108048092050216191482571843533757151374582867956340619628480063045165254829030951850604788600142197905714809198302287676599711232795761590626800108901698337638971318547016867407690697945164838967078482954940879918581473342423738167224283149586104993185297061810423315185297783890148734068703003866628959443922463442527576272218628111944062325814873099009972251649781467505443984559504518770278169162662439268122595694985348758573069244077759695032271080625209300834080333200928730124746052696610857824984960864262977524598124370612895874103904467221549118207715641548444810054142563783192423328973029804018896719446044595144733623528008182029822278170981835380793147816843313998864252571417508688364269375445700700084998923174527479095075066533821918189482740853355804994484038224499524363903729540513011758871154686178012008631757378293308947541420655807815062288788082518291920224993691620164628767973938547455699164523378669321708989550273270181658406696827700614700463033095762457992787430053263529498830875132642326217610276387913233727202937635531066844022420589813241897074823246505460665947149075763419430652651702280373003029603671192761197366871715013355288760636912821142860744700186755660727465140337207146404139096357303426662311378544000689517534292860781074709601204321614708059632570410556340467510188245178478836741134843819292878262619169732065615731144359330185204843825035064315867322355507388560907282844756107482076082209150145586799802766846774316500066365933278556295898239868179551256253733051817621476004525449582182541548619996025611734331529059805243223491363636572578781740030574629969175983236963759194518670379269162348762320208222003149498851935071997928099068100112291863576506884815225448019781866308365546484630816834635202965749611959136259552219260649413949849815172782932617662542609182088148153552779796612560497316105609716189884892501413679823059571055376674385361370158306613294362476654432210717784760952384209447320014703367270130270434532185351755245130532155753436371451880237924742163578548545746843642449863102688711361746076734664601479825465820639107206385882313184291927571713577354807038256650059659576886932446427258466468868046960020973247969120839987658826959944660239622142335119371782481075231274201278861739709738899839037884816915920547255267748343129377705410384049822623435647818268579911753531750662538419149116856579588741430586425586345306062376423474749214296371688008908427004326418263873987180657422531135831704632304812822238509517995773023585649222617836904390154835457075733831978291073679895696385606283470101083275835337114102986339318373038112429906278201416537571042330465496970136238362128324939225519576358859622964952435137536084744168359495350233027691185240573728290853843018194595038473829396065661731997037386766967996528186670025157814660888832760176595461051763230786768567092101011112132582814285177905486597246049816183556013770413663782050100300124081771440533426714503773300784677000668638319964882516427342971444115660477513486371361810876386712139940613834089767561220692538862874992436840704301355336278672132811705622087964768055263333523547921809381503177862482959206277307787488516892700271934366828318812669947964910970755563877901006900124628066466317180481158019729421523792560986622772730831367909914826057685387695287750394008892627175999675314820733322534345039925980699249728598011165173950859063819126704601507509972484697042984698601255128968739099793062772262223671247890069134038073980662979220710489979635014750622330638213069445001241152240769147966254666792875254931131786599776305186453374276256450334567025034680462822033415688816218286777517254057236745892105090662451944276964063806172698979705000704015879930903571841513488712493680063392715309232369395230507022907006319121472007000476245785290557657018448965184443782531630077584707180978116479748052290294757856898974747616176385006580533027399336079827745042793887605420739238274038666733181813767475333443791306269882546257162331899611828286631702891181390029500171763774373196295925625861363109724325792759707268342247232852553554073960520726045623787383438359543096871453934884115999760019488897829838211186450773358142314922091325114471787095194655685405849362922864759887878287712564436615066869934004190825444948386747375852132271747956018885869947494531949966142664912050741488571833504728867710566907070169516781066270227025037416512596487909949408945449324802598318184672483435015203544221249226382791600141257735585945284832567263880834113463906680340392571076660043168692157624224091229118234815663084517219576194302363788559482147580810804427926563433185667270272141294671878236946095535534104731506008328504023955073245888397242133443674759193914242901305036884348143586522241726678057679129636912594622791980954276203559404505271888547474143308561537005764933930129238157433583012910184387438263452527316284976501717429847922250912257868117877391756708555932225164536179016025472298287138580779883728060956635205987395008273474267008253171299499958607654341836398749514101481191489255450194704135964454884051580542572110796910594073070566687438563269659509948024804644920863536155888865431432781411540776147792575747193827583512949485233520581978200025040848953734255648481828835064981538872796971453740749043980149802820437915416002821071803933341759645219461470875086621706969653540073306451505127153614514936216275057253551255320074438972635795462346169514541672793650435294118101665767656366978497406005027995902843448718058788968507021894343592221242992354912630268130286077005837642754869509299223416002701545799324458603676714017996222894928809470821621223117452686891668224350377736994827049275476901588895398958244124066438705454154090620098788057447929465709468931400599324141583787548296742824526211397587279103682699065647897294883763200254129744755921359747350714436363509583068758229647573871309879778894514074680712292557160583882876559046396501308891696793176517146503095369312572997326241962440749121387788927325029101554932955674749579393511923752907069495541050401965985920947658629953915772431870514320784575032130423410141663532811172845756677392862713908902015794531652398312053412497296592563753043995073952522624710349219666113113482188059354883672482227584215831899689577883470282179081839391526706662362980602687997797096351677810787440545746562021950067239008432741049977453596418419377993159829671065215820878684087391224440390588584476992242962880574510513010022722081126206228303608112462597574176246550748311967240441977122026153198535287774960495434561258855445991353528370711157040891059067963142362693166459540233487193856389131357289559458095367734071930205398532316043841282790561414351380022573606735787478827689345532826984085615055500299892618203768256660617748103841229608210973453025676145001232452981431761724531903229999273691531393054831899637915362189961670905483465035072532282085052351100605416699751963326195546654925023518977087816154117367680743137368388116956685742479252211683079890103178040399139516636566239978099491791417504522292311461346046745576239584009968323952845066451604543282186214911884704934731907841270027006657773067998719703379956811306954284705670718460371484683216289408613038316503179652907683859562428975829449480315620611050572845968897449108342499754900807112125029133719197665244354101902321561674225887334319879562083510882766617307012066897744317853159656366654282554935659362073363735153798008704935159838650554178023729810130849065173116975612191026927191021153225159612325320484982460970779905081593073337316779232174503851105736659660195687119996579137802208598512793948617790180586855176223244113054245650077937255301854695665890721005865099386269871007543482376983633893434019654343413020815179013233302700134291183691135477554645122105710055642944689448295620326570123878519651257208542671353135875925696532701919618648968621973806378416613837040448713412647290233835836591628639163359971017883020888144312974142099723648563552786644401302450982958118015465812310111347049639040019594599758044709136503543748046104100728324276363935448583525275366447634760080061495450475832128215768839215732469347078724514683840650268186184172743147652378441931934110100138425054763476120060545718545849861227628018501160609526878398197950892404136454510110827315893300496055302135908603429066604874720220162572587244723346998243628902255185552313378466326060179785841865356257866090543732331813501191071865035883640169947226114791391816373759546006450123094672068350728510169587589902772764476545002761544232079771025961520640403103887704681392296610338514323207320683271494435783755249945916020092408297181405271855301217045805053810884367078354738650839503265843087353362912539355760818945640134609885663940125131778231150128080372604807303463876396846530821101996394132679324877468680483425038618776057424091782193675486471786282280404972246466224367523109876601653451857515259340621902863917826815736886314436926037023290612004167480112020353043507428824794192920621655346197674541051821287351745493273273125192854693610849295676021474793635660058231163815765709768749399243200087785929597291127682778633366667427744376134871178883584991761305267789835039432411232602297536214687189013076503614441548664084072237133046518980870079372072892019351436602497944403738449098346331185111074396927355578929500709626167836197879260551608038954197528316829032550666077262261050087993886479808564761505069652073489327827479871552115031969943973034359914391412959408242241655790841043079780569540426036431721427096117955058672038582899874683921162836348075674835725199829851191552796818384564236849533519859985800384521344610258928895507933780175286246348503783550368219672467906091852318507272648808851995344958414724762925574046066088761233459800148353618978224562688420152487983143602232827881452154348359245299053654525273764806447842685322007890592461745536873088035320677439531735981872228001459321044317169922992086341477834983189503426389510379534778679823485736063676465875918920726916612841808942206324598752209129969225121746414719374147544712408317144799563440016308328135066466198074691375177825720570599901051168686610184548680242302370874581417206160018936872956313103974901997679353491591099675509743596427716424978671908051767778899146585547301542922214360823714316396049720752489681573926843685384180315948561975152231201368053914591984655462903517670772161376659917097193003906895417073535062743639010343407941552298362366552953504945463915471194332912124990293107246710921641287765152379821658201870840930279143956889230995358079724625487061714374050923739807818329877213140710292213101455873712671454048867626382069474635828235807595280999681752608978512492739061074919523959118015121391134143050003326655646511578197071869496884679270416763912249835624039664356657258526999277838543795881075340418291892195325002791978272535600383185616948497693451181993555307328450690890195407289308943829330071096901781043538443729005080845077151962879842768833942151239201411030110332071135585859382867982751209325623408257049520668032799808560368858114359312879282178384137205721183717552620789603992272418620649721237913464065414255581231089807954005944654883533634792833132034253576810298988291181406859883409475105497994211897078245935574589541588321942475912918944326941984966498893027760120069150711775255835098577612089607277553241888979310973251649383088939895540255264066300036166492539158411016027880703515469903101347687912699630583290524950443361554456122017580217809325035117803595602188588553143168263705295954191580183658328287102216101858101473817848934303677392098208334981310524950916683821298663572976352059111750762895324698400739777266680910294197071343416376237230080769758260446382181601521721800458863581252568985476015240874683027283598895504456260403881982390621914323371292724699297484885383392636761178897411679816539015050048838552504228371386799049243628936950240359623159876694045997979322454694904357433534709471312855431182951739084853783141460221430697218123456504982245730698390264631905915283049329185241449298981387992108443292570897109252464735349299612036742182041594408048930249651012477355891751860753586664115282546563869676361660281570762202138390856688381336306562592402527843259548558547695277802119069739181329864082736547860669895123200101451150804433025523756779995112540331670401890585228237056209078730077442971681996262505438050957594071100125298474148117824458886248575038405378216383220022727675750733138015061646074507030073869839429753387229534868676877225480273898727044306566998833735100183689167714672101120103999652016251991685771358495101655420569872362805699784496449919863918786861285337863266068551241911376114678902288027883664679477106815316193879784336799524347251002610845790792868994723281377713289410380473949448032685052607082431774331075626114340107732159711181079864965802273256178308315992051101684160652863204519580035669987190353756459200383199575036413506391918262399109208260495943101549648640554549158306210646503107903150651309225259632720362775597655833899416989183132283285247895161749589036063738097998433781227991733474613685267526502814453377051970666616463852815579685286839063570372198899459248273248041870816466668578758029353276050806263262849168857120451553501416526939440916151472958808708274124188685312775892088275383489721961864915984203784795078899022699795900203018820954605993116502157472451807843136566372224152680741126983511257511589617979812215903516533783238991065086719199975628836734523750501943659534491554822070990682182608940310477869818388204999141232155670195668876681882738242495236707840663769033931272627267623814941047227936257128070979155187976044979769603218563206875795565233927003688275121646668743544885607394177456185073512523413172560205629332135465621808290445905689363376445640341146119335095314927740692292461679218209620394793543819949823142458634776368709911259838012782653954090681198553850632011013976903110498848840810986181338732436147375697573699603754881838800508383112953455537497399793631016529343582459544235112482293133789160099671877919269902677397174692017144033552618750696314698771558213203490484086963919960278407753615058485258031328647667076544322723101843003014218561663151160047722138703363185649570017822016973366225871420858354002213558643816931154556776480371952189237843629501994246184018512009221014259363136960448769109382551651285788137852836196616683320039941220742167755655360762643837869850898513036273324325805004782205799997943149101950063613363626736120123570363287278039533530597801789045919289137829509562564773527045537543677250488958650407451755952886624952107900555174323945247740473743001258577089083802779835684871918591464180488517122462270885898562294943827084026421443103088077379594568560976703518047587679731024713645954627792534969989622441622352824912293093558657553148394765868364484582924651867392180689489627713165879726109950221150734128994106735785517486156585468473206228312313377701048135804627170257431201695258966491273365316906096890285553896639891432771193072033777212964944811723682368284751000376438783975529277823798720491107743559378883504374305599636193915157780072940402847673755807109242144812854167087105609747876748125510484657789164071707204297691140582840054536189920180003050750959461556095901899881321337414107791511794342892317639988720661054107658443966677287348285334238994712359682436300549455258699946968139169736817281549738119414771621031203230144574463228209473108651867886623269783617158138148327675360306083345083620177459013421264834834227484148232176450038964921644363640703985827189002497637483357423220206908461776053079271971138178455170519995346418023183649538097993139278710276345100248332938925907469355387953983986334919972206453653480636225205776706297114863772444421828937728465996894168546087004941180281679527899313142935526927709346218387386249680758852861540444330214178263175864381156826244790529155570853821711791693255224256083998957032259147925967628521044965298232066583277739586568846483075131447861804270979266742915441888845400172183375336961948872305762515733106743259873917813257478955508372658877102240292607861351693636945101592405435945271102061077967322217435400618488684261520087352986097564528107870625685274223768424501219655324774696904622503057412477134976708352629869502140921892010165248505579654059012232185676712275790141388138134792869396002647001175513237401430207107884291457854591284876406240224784473376606760474179084681799830883798250792412418217355594670597259855141298207261126430144298221023588936815285015640006809781106379339539175721164127056687724844703340179316439459770851946114432178810214100936362600398905140366744546577080570162487395466766743225648036653939109539467708690758089010704596166398369926569904538847943927669758172485008697272361364666926720625972617257894106168932958744820915404348249935882157257952836936638566181458437832459130145604417618825116616071786599581726666836296607056686114850580850256887234657080780969672119628735824963644888740648869501482043939074204229075179503845874932558906661892940643736654071529857120350644790361474878075914537619110341691440554940342181414416322806781947404658912861708825751698045831535286268074712287878912048797820574350347969444625662698548080718335795406377687395083936940462554503595103238139712378506276303394723400167223276230959096023255732769937652900377745767302139794820300897606132281516284452753851463598118080061149051646024570642512243806141699880278529161526929528573088987034853244029252269095883738917426103064048277468837876758597186938309866543335224458164861152731110637998867699315340440088787704697041441359992196243261874234767976823454392024653905160241985941583517075920709766181728957122998988369201551294611463181985220445470437329478536059416641854242275807037824228513682845157267938630080592334418156064795663418129975288268858221504491635827579004355891018801506690513065333820124189871238407801665991029075235279903390815707152493056147467922683318212767076005970635371422296224433307812105099876327649394843305804448513946358142763588325125816964582227111393534776962370660739733133652702945271046277087471825067622021048176975280404382370082859405048649537464342250465022635230011281470527284347129377968287985818268947750667946072012144411238020250339942768413127422659966157269601903969842951184088649327289518339639342014080460741631590948390318448686745764140756728344743135538334827400568656286009208010822650377074057625473384536985988201436007173221690166287280602927428336380343264839960128833986615967475762598148093551667560882442499591380255887931741643936083691580818627440835361554705726685779635818029751483750007881069679927283924613872550439178203404141438965004787421125471930892719831162384753789954925356400300731405209722935644087307681475459932641519999400187525947936646837603888825376642772620807152017592380291655692768311649775850307119970740194024764296146491249807952229911469545266660960818422165523125842388254996387939216112261046096946595162214070666709871449022098311614261816060180067622427890218966320012221092165510904622809726886367434425571453980960197947250931097336520187640357705751270054310668773408402964172045569480064716382917608407273757590760803714938043235049468151223757884478244574846366355343800844710442746928922430491357400343248357682413404449027314041346489733749946097732001482231675138054860743215469036078006936116741747159295194486965767332169127492384716102116112693877420815803119062339715690406363647107135378664055619343134237158973193014068610846678701443953804945380193619078375337135815684839355018226104305521226461954475762058438642642834621873437809818088074033076646222024326765931495796701091962196223333171858605920982041186807635590686888374120495752662617367307487104397317730974669045614231480505674182436842102490390372086300993670723822029780150421335708561036189163878395396888628232934655807613412922783228233323567689053167230186938415403226677383997899930791319938305893067421943696436094295069115694330982204963710927781230661298871504311307732259168700351883604887786821475982007325730812111537750935501589457542143399328086943229013222372054397956376670617539957838159414507213445655169600612330640996870376750276605824686191934462392291311024925411018308318804491955805144732021064327469032937143139204691461716735511126723891246882401905476124569382444941756188200944756419728746787871648053130369778415279817215313742664553794353600521822044570771528263269427608589570757320490355963310494747600233493606777864542452348103652678957437720817517574437014491494206187142612390853033362088049933790794944495168469032917454836065634624289902131577756991358780634451189455711868214744438780487137671780263465017045011711392685324915236613413472927383164574915109896137088388732689259224941710211216329812035351759610002221678193165502786583997238831473216198534795154892792757514707179871175662048022738198309071677530697184929026003023420600731152310554516322296926379932861741376045299620956536975802206968567143433253509165152543683942441290467886199444986489418704546127290564210256168381501190928886376019906356204734092838580440017144092883515016047833131956351009797124754051899966301719879627866350960990308134255522569429239653590512347684843233270523562339908616824682392717709130936854156029150515139166508199701246902109026794565121991522637476689615327189673481775399592152656168204947416857228125119871894504542257178560567043948989939146194474080469586259560873031800597778667784940763615633084681977191405854115721654621778377465531867234732366880847352253138395921780359904965255009413323784111045522554476864457608691672439863463631234830614643917081192901307316331917645018775260085322823844828540270808686272570013357597024668691844738702948011704996500644061417691388815441486764054923477871524463777987978217753314427813213050173571764575287836150020861606552197942824362029619976986871229430074941105017707273901755168553436304444598029571298597966580492353408922030606874739659878660581124070449364033434690503141235863168044823712293630918425599770124082887730399548582415151031411812051769611630405576861364612279906435787164774826686739953575821639248254377891629823429154623005760204424910653145310301174421745544609355770131044539464724440485424107052506538028724919569997739921666684979066373430518051404953987286809572110526247063697358461089598077920258040992383796984815980415540683685320548199369073672290543015510001889992361216227128840306356235002373073205984011793230719090714309017858031683913825679553030203940196375732826534692049833522431622763659715258997156850394428403983866317008370098694820111880269974270012742003933201307492131504543054196628180444772004384408352737852481690891702572205001491505995847718077102272236224668572142748415051154562009481234143805782141856018875815984037900306462827426028554791836866591604513370843711765058933826098343711805371875515398848941331933283461964949689077269217458922889173059230716268908989446122137434356304538841639767739405540174010263661304887177857787333303170055407903050049008900025718252926160109476575512248077679334375145753943676533797040313294239835769054061063892492626403764752583970786819350161084814243472158346290364878449085279055466610119390031404095550105652720960174912926009084835740092445070003055054536951162678419111624265880400376648952001423355060749614020081171859653621512717906910614476796261866923145214078719134888707293349313796451626356575012090627930296011365938240471600253073519863253959840474532629654831743624376219122020273946819545948718168774102993123405078322319418864500830626350467571428535633744479366370867547152706079295030138739093976062247349264548480466070008925827280839514349884231263249972396889508076000522980761849349084024299631907601007686405330685171741168079168279427114956028269663402264815364832564248552411655450597038911075733289588007908932538047472473006394970009862338361272838721879196568305071155246991963667586388776915198748748298337515624962539609128717799489415918843224037971081492923124040884753003519311807526162909312343400043840593584906388602334341905093952350770167487113202878827820235266140976350766726701472914551726048874367373396339207282156796109565942033890746653828687386403519816864708852358579524162994742687165631134826788305571020113758724593717695857595362740405650171599192793480670360948267302075133261973866154328146548081297512130243244486230729036344208547990154885296226571240772059529146378457378484965504541787677637515648228832065943146797202008755732143433450506575814665816551278479114584889572132738737728082751170965502843397846746600471344928819504338272648931405756167533887351592663477358602591838415740821581770777280713884167262726178963717141172406633187169103601752301267403916366070984659647094124685475645761689665909894321925008386105510877725557975445600969069191744280126758590445144466412829152841153731053881773045631836579121334743381105431523367563218162998986440491288929465345153125215261417948509325157659611856037738445665570132077185802485338700668690981944474764395050218763379351312265123831270600945497250035138503556625987601931141981125408000801467074747000447594160374006374776018511704225340709448155809977466230587139347793786349440439064774619852366209869025708585296318902593922504468384934682606777317363737041386327453529605872280561490127486531926016185688147286221103511864175646330433823362422211231306652641985117997075716550514350763882912562968915703653273562407365067211756027466498924075102423157151019589019470088103246362387463181747216658018021402122545319141535239045892171914325112514812245220832944271494413181426575088250683782327745302510464326613392496845709624460589696184369391021042291198752310421041180546921798448793973620227617819716135013766457279044610218348631605279672024914930881139161325133219271156247824362942791374169139655928586716319208236879440490480486582712812426949059629496949524591863485164158772884944644824830237369224493266970669050430844727996842908579270497974662294012378142671755113098344850418483950668340310026791381766639294138919311723054770109543562700172596931623373707951139399963864816707166749104576260400536931786615609576235016243712304712060419587932953891073127396114734536178476499899884360506942290669309286550656362931214048077256285935077968970795341412768372048010243798846166365435311457696565838198683627462533867852632874677167288486725409343524306238268207441425488000316887433515382821485432586270732852059097933245223049056215274019586086409799217156660290166263123263886456123055861319049345911007683844886257791370529075853697498723878617269533389227294737643413503949988684123762759353951803442327389009315720634553802477156431622958570350825154337626565054936716548442761274796013031326858599437635731840164248878752252072453143449695428594037834566460674595300280610201180814313864969098912646385255939227800772116281042464873007866436872952282117951721964949172624266666314419835959873564799049485399224513948251978800585089915986418350972793892633890363649089207304850577991081336281400281482091753587734648239890804876427724896804146121817103012624910366274988297747242995054987102874194846204433334003297505956673467690152074694787585084570719339824215317374633931302110747006166588443035485592028215664335461484478745376712320243823946230411576856285951156676887208548115173629630031708951161332192707279887621933488970066013809143107345646887706512342640536552018120760242535916177609691503336210493390089334351562526258785811695129957765742696386344838902665435520801231663621116286953480855101658693559493302041021592165544454638837740107148016623930364785854858094977943622103680578088924411438703847801659996046547034119088383071213848869482934376895626141169021060703731786588648679162372629420537148602389818082552426811875216905753755129328598397233689347401338521198371096059000034282546672198286474358455914439810382621987243961458767342183260943149870897079114035465633945585743456229855548412571045270822644782280793148228971831973173372570268613680632405861488865778907644418358428421163614334475719397161370523349406623419278670203544873755445195219013177948670111230487618005074951713936211431870183140424949334648068297050911156510634447166135881272864526708490704625884054628371082675651296644279407559648757708092531764940923750760556626398412793567387011804552983917049082181050208845780229144501956822756416388174921999034537028464586590084382795814939487830655056077898974994773028436254127669256941945694570675005692883950826531662493801746728302319800664647399779018816984862126937678705552184466069757160571702672827690000886021198792283870637467819358366652249882424300532683794665517898429124456011617557685251546697024940522468795724428492928599236081319895385843796289518670519526315986094993493041045414813460959797219216991643160726207888358311637894121982336381916552479293025789803421521934799674053570759663173102576296302276066195586758721814009014746900656994545169277625782941455824641966141102934586111136029099399003052586437034102144982170782177013672599282716725992056950264253691046551594351767953215850557820881137520240531178316528492720545410567073921708613486039648754416504690163585571687276264634338152681119385082485439979670373413639340347684047111083643806235781173876108797346232503776965046299176761496398925054836737919830065257262547252653367468110293409000066178932557531585543444244531657288792297388256506422695848380824591530509745240701703008702704423005341239009322647420405493814765911122830525252709690853345839737446527190525737923493715347571773110512002095019539135702518779892563319095631983471594723249541950456684658684294575429337054362639066730725567180075295195088715073825077238665077116819435762494367506368489110696295457014331270457084852283643728354065733039422814299970344937252984556725745322479995729061219933819070187931672881723179189137360308723951028062638863137656756741256118688215585483234385338957998323726110828129362305544663171222017535254802890630759290337247185506219008322653977204230284450599459616472006616401736632583543302477239858420415545768695135267764880345392943452097584701316288467904032293160926213194030090766352681225136824270867642392192919947875292594381855580445873005887720855253816987031431199922692116616219103526839892934360864572433681867488959356089366309688136939570301597889949183149921419369099178992646486048647621521039477599961888059812948025087695295860415975934466291385265079290548452469531232330788976605814130078767901852129201120785059831819415230689005094247981587898464819151645002854561272406334263179469787130270894620706800121870065420985952062562268666234763228479873875300157521864966890866730926568815945981498166585035109793201291208471071700589995809562942678706072462910912309306236139311712241536763661482960223944825800646281518396749796420716209588345014963168999539571394824827452941445589469121193914396870441894390993741229822670555936991412380551009533552326139843711916663398320431833866142647508457157995901742331563806598965293335600769292412438909050422090484105832323875000637596816263435936923480234291863154311610820210186068763002030620674439891634999783826654296463976953300090338149779036929554159830094092990422912220658651593653348260779822756668340273225258516283241151805236871212179280148350493707485319632984296885732452721394553438712626718837823695710535795053808622138261365443805883912160260587285390074558485220061427500807207959517961037631950053293737764873629206698549094251246337661998354986875757566111905078146070906243323750645225262047534627495012198851856454254473076497638332962484265326300609968157852757196341256293620713869539736701026976439644830531351194569768351522529876744279825393552816544543773090346848042106476833472201755150782718940435506553820949601129449746337393478976201250335063037217127287518276560860384834437855171340078715758265996063269345861735579160219394940337889406695092804714280930840868002029750312570488093578788504374800488011347198780197871013769370588483758647044312540412857271783472593929876799320630845917366663995065615011575077784931199460737216770332250891630006219952379792861156054134048820325325189497051539801746969929239271032856451712841547787912769927405045358427765910897841284365198894936767471606391803893603526600238087451978173037191212039962459994278949575766727105894100936682260685399800885928098951738747276923591973806142690715786050106604140289502033905839297617060877602318037831311687755907123231363617864445623413045292379282805966150876578248166338200668509569105293715955327218527530074885986966699420935182372697927093428853371293862662189152837536198142393309449515353811996462929032433603424206605153762717762576479825456265400333355606427064396730528205596224121079037524490690030677370785661150047416404429331978223405616624641909628049533047134897000816607370813697930506276434906980485817292039824472633542909113452904568497669717380678161896386753726271518210415698189856184818422453808024048504414191947598348950955190640955696167848732284377999921341974052918113385201020127203731493498098682193616865417205638658549695372836559044370875711962790759254879594956845763862472307904073778171535630782514457071223961516031764220261883606299720164650600239113278224728321389410533638496625028598210893420107810378168792008177594486028599299452329409690503223701685717158644685139180781924643767586508943804684002910991602596139987495091933144851767455985548417155401967100852042138121032336134666105116510998671472233875991215946009218712721801630686657613950570810266517137656049253229121779958939657627196708155596134937110671981517035100964969949711103876114461752522691747105250466632367157519046301231181231236431667294356118092069247395800095655079728768845749581588605373747506628256674065362580554836781129717637293803779100101525176995395175135194732348201414315575552772648224631552025701265468028169638769580626769657443538897666235546585288007871594974104928934603055808073188749475413336350364419781546915452096478563241849807281976826471094890326161414505179395369887032258370775816601174501381997134250729788560041487830556558173193503924599748344291350886655285655591697828060612734894916369224742767996939175244302257705731134850866206161535577370572259095310800767523883091749004463449399853510546766404938342839086440805518241437970116241021157909698788223208167020166859580413065213885635510646576683585653510037867514320575823187589962212142796740038312116226085891259475058001625331916257233813217900522189396919413177704116876324862881784417727038112447331102966458250960200272053978948367646212826820142711489855515200296898084149756370326436021061459869739606072175274548428251976424223721785863084511227077864863793887345375557375772908662379505174275517242570777628438157051184398481190785776562655885044762344300528049893787783495374599316306422401958320778229640682845548862048739135131290142358524959897696782388182906470036082907956108295218747221905188158601809674670762088292238834945522184636152737513275197778629224356947607748412123203528447151489403359192848088967788422837334835651603494700125969879509900794627770567764264342570769968685013779570523838879421091772137025760200265431745614852455922317609227190286237000871356722174136115294686174780797960331431444113210464032843022458692692364084267542154788078666539530994847796911969646646129028418379066152510225097955536440678288671270891706499502609196055594749232576932780775203922093268325284068876399894860396060234079028302135997522533663259328102528801654564018027323056674414976252331748576557137446868488037661216217575507684111754042685004885037171945599218778615578308447503560223563725611023692537491033084055159131235420286430457935245321744717265054382779743423742449163871713821477157228670302521794840285183568052370339113862020317441656572958617478743840412352135072828981845212492719724245609201498309612430658381246459809582210704711733504234046117262624972641300585356609893570757820461746403996933775997433626071125582946475335166146011075324774402351694114381784048700516410532806033032905529113991583718053312299433595745262589286922882553541942678388990169310782296407728708947634148753610177857017563505955801763047115035159809235758604808906013892935786584440888651817120312995805887572196624523284358345201673491948223783576939795687778558844441001827924018328853778461595129917994623052484955407751652205725586371693946070333277632124315130500216041238834354184039131451553597520854790643590704209616410333230374973052870931797102410945513369919261295678311356868142593468033923104026664337750119053104353203011348077273004461975228311709564181541830367723843907818956176661344024028800137816630041466134183454813079426837393657819448019065127352544364191261398302800022756371955246741482534677000478074850473347100559595041532031125918913808348430537370283910484578422170872740531829958510390716692606272074901592657057015971192107963269847474775380203675139340960617430791067844063032711809840986932488638791514104019829929590269595919189421400677237227044979325971038100672028343817802483921928547602303821763972509597059520552080043478893534625393492170396887868551162061061029968861138562623710496134086971454788315112911277950692495171415209958500953685177603821355912058448075706796148426145041080728683846460279755875363068982365957347358633360213908844753202006480526589101605214968920426710284662411802886097992479486180869845305186841890617047195195390049966108322345710593766353994302527568042558302106514900229025785227880358014703124985417742157492703254541497775726000310768039763665157173864838759514767368560667443820303882963756858577757972065196446729823523134728621418145454345121751966410024856199558098572405063389521519082502383535522413906779655570134777920883475447707801656690121144574259709463697478867048450522688828615154606861376164464147155689131811942504151637306372516693453032645025272382418027455516030519337224015189877973014216471919295569473740892926260433181820015197890615963304191613277775086814083981302611226955009473918375263185691508379805057526635653898587071862518686513790108398586023704269307832651224392948668734256289153917805060470309859012573154355887768173354312986125971347548389096137612614435851418893054251935291305031862424271888707028179931216508170176601220128632811885452773853267467368201906588823530069552285517103756011780599879642139811429951520036041134250785387177997457749892094600294154547525445915281404390584734566506055382875469882379207299475575982398844395917784143483273061376034418589967996289361042149809630512760548139343300538341558047587002499806336883070613344339218390133418749074014164699442018703843726660909755466829161241676158626565219505643104100088611035464932440470542732771719104775338506747411678312215552848322258122915529438828727563164983438313929801647095841709346627782823187947753900313037687499569222440618854669384766678513722986390633886534882377308924599398419191497736756834247971500535081711952686550218491671039061848585529020810235261102879975639059065226202759790740706867731197773781868683902059033379475870502293325818578977168694309959608876870184953196303907155298414229372832592876884041486467724858533531391954079692642094008179547939263175512922270471670987630720917296751467764567436872296458834968159038829105550228217439569071983638868674254715333548620532091474371610288297257702244851591361568799941560785329926714665333544843366951048425735332217994900886733035257122284303338025056944593718839982753964588059777152535711665037122922694725547641963480839117130313069332774861292825180625044436977122555139283404217469335542997665133574964392886622181959857951865323136266645023175539381584037954355487249616165927352243309092364210681459695852857889469766450697187654075767316841329831160246476911862237032332973543670694471954014895243778711439674945615486358677730951005182835982661673254404266969411429673089440830230970986755111221949347152595340218297478513033217165495304650366499226759425630275717362874754876804862527621828566502428668931112385983405843819448293347291656041982090498551565918690350794145609162103548668734451447124187685103102222952720097435334050966500593269023174877912330273512755238047994139541308073360501305279467075893900138026553127559943296039221553547275329718265369917810954294306942628435770414237655831133814188616600263304309946559074424190598208270976428154033296359233289285912849951341994883548779993344784733404274833848000782384019858290715649737210502540517479184367199955784405907760009727817410135558905140251450590427392789749936606456619342563861669598448096170651307992426112145559071742630867674480697982594013352537876361340711786264168236106868028116204975665814116283528628972905397122692513978179432853234046597442598056326457384732575651307862572018076597051089916054021972872664580023631385315267908479632729949914312979924919405697861695296359760732545826282317751440956018492322837892843370083130795643204372838280256339625114521154221778193378511030622088618874806813488863186207996752917036332010572702294949748919333500649607759280198692711818110903534502365084759646701455468810375903348619362703964696200338950147774568979622831543251744455150288387932776789621624655616458844521760185686545322839203614040903515272886476119108487802519979878860332730567209341718168663162928468149989734663312632504704193327968513915400768673653792296090424312588215623437877405178300556807562792233195490258667802066990527662964526805929954063045740900374244959065071217658216822951007798191929179754078998008879333634732974411572448472499417213771568103932669406953443824270964080966981457624597892630635425822780803573522402089769518067450015579436787026319127450020388115761418761638730538997749504350764193799307532541214841918341964592828904362879420722427870752567873883035063097213377281369517154092988841888733821763914926888036158961509253156147220985453516491418352953843821545637228281110874143577150848646427672159489870562659991163305352210897235353148336401631157233785040468724975670677113228000342091208943722957929696085367940650329732891372842321331605293835637476173907897535116559317596395695432570171915996014378223425239567360303825299132257318127322157172856091288982995292306441959303138123526515746190846003380086319391940526869326045339405231476502525060955529538947969678731645829444642565218009525953811042604430973944998473036867080830984518361849919882315546324447856773969470697416420192767594411887280802227433524363031488159041434191056476525616201319034233942677775070793632031070518099998754476004173456160476003545843127834499077681593162155613565220441057416447008537055811001356853929717629996094388125290088637191879693263574618396691710434266811002565633501812439760047504589327331015472852066989569163952404024757508333394830943576501454364588557978122599963620766530615489293672564642429811363921685800214477045242118214709485537429680181089392816710647379648762515848814638186855569321741864674778697867835831674593626167240904073374276913936141305455227918169405409046494904897184495783861648300128665287789301843997692193072569542936975152203209786157065251735871852169802418705920731092187128787821705599201849043457178370557796199713361238916159494258273546737139765550036745080813048211725014584971309476231182207377783754948888314290910275356850125290767288581594618571912980022809010483817776424323695413629267727769380928287346004489237279888325357068254969621641067046301381595312633397762682572804311445893317651390577619080492869411310615125699543899878945090107366273084059185387042190508425065855130608444291790472639585668591777222100133250944234830089573359748796592698711403980651634127615389897296708010030352754606299295391755863876374540678638916576181399353109399142628043766178572301840559451078103890573053003022744323234896673249370791726593334379993882919289851109580935962191753361514437224835404948069024438683139399314536660474186139906390170990435237622826075128134377728455079398411393365663381383752752197686399807310611774789397484449453728767887054585827854265163547834317529593850582599766135266723053213182485306787325086696015518802810579027583521372752185386692573928090623802694417180541509877965327054702412077512429943442214598185676303616702069404231194951765192059829614017905831666760853391704003289806729999812864707659284308701007975694521653226459884949403322940787473161504265885509876754458913541685756242494849146096366758220504524395801522361942000587247782482084444933889323094550942223482118889861871914525822000112995009802868762728265760927205917562425074429390678619562714640158728239182845587195182031294993906570155482270460028279036401900229218877200517326654106234364424746642876168015794241323271561599662612942546893544868047510622932045592944392100861845032554004251203892514427061988767995939991830996218595158249322105450681875886499617014451355597469788969922936429196425595507305681547551009695362017969798363326733222370934894986314643894748765263219726461673389552960291361765080635486289023771601120335061871706362247478787780165093356253578339688077405535871367370185849831407750539126582489771311089005821976261113756683424955107925111067691696066703003140398740560882391915814382344861308050873483093287661882670065629894264623917316998267871215940735881575469573521270948662546617648084528976660975349959164449297256137750756231157267121078415378522682201321234720927403360349618111826023683862158031740650276116231942460748361741140652285741987306794330073188899199972027018688823016024692120541180206031485771896460097693085482215557454749062806654247127778298252650260173092658676598639442293097036025455008315723180042146968933795530151472839986246486092000536045439686212145935862934474950285644250897033001958073618740053408991570060529415065987907542554851606691077533400282907487049355154630978718162749818468929078228601509986673981111158983054987264974935140036292054584054621790480713756269781681141316334752333681555939090134277988729552853113268457555775026165777581814155619727958008406096127126909734187866546262395515777275638355887710570082156311720777561951604091471398493938761384103519307381185929286445160644228811650979187409772985337249257819754164599238121586145373238606476256683212135239189506606877645046729357956032283579445125079700874935097574967379863142660140424249375182045909769442018951971864148005255199410551763306427416948141516632595652842238770363873023531624494429323655241674988770897566766646112588556723003979733300847661292833046564917182855956783928145074027573391038247491655058513718575126730550409030803621834947581862897720313044785432072339226212416890962300556546469524339881342392710482051768301862848430573946607569963851433114423354946402544408796418119140306306431414789601398687731634921882191564696840392954216444432582311934790670954279754738832510228046080730729986235992294713712172606279255098984213708036782766985422373855545662480333401385228852044847342569878439421521292575539521764072693029723921040455455913858163711576893246224738544919529559871640485673823467733151785080745477189653050555767544709767042513236814679195794680254438956629958588952304366725087593354056949544898756628055797920643926906072258781281185923406948221632826897521468841749221727136657787292376389701187501476523134216061660581407876887985454302953505493765681749077645612095515901240349690643934141565120515059583537034109788466457225658732783701836690345967636779969381414856427700646048020130528569619679945255364997750223258775813260814389790147694926028936722115257512102185908393316724188860747917353785439730804460516063826026160858937760977441433095388033457666487107367830149379620921644018583598467836644557064277806223759266627181047932169764955178015023288955174212078178381141153484246847194239785401069971648059874033948930494463916651377396789846910910651018167161518856953985854191270940637317908008283688100940428141419072998780940962988008860463706256203678399586597880168135185479768486433380509674107075944057050823576204556630309731590918409226736979066679903926693951642439329312384318617884781399943171490385094995511480695573323105427280078340887556626733591918751472792990030201848641243227257855623684188870184755331856374380610739529077721207229270773059843455138031680057386855197581279724762000020730551861465444131337471871388522063942035386209832758464947446852642788424714699372437635916468794123663341999490260424193650776704465194260278906158463877531466687522028127055570363024578051042083154924638944553661876432616497483851075339083429490959241155465706286659038698960124753899684228633244841889036521251071337908704101927341239465838272000470862810017748607038153048561547850810898350497563369104035926363486974017916834848948942296563430770994993555073132962464285812017146361301205157810594462203989329544825155939540471583748914752562537122996774452557116785643030652108962632642779763756188651757496593925224083570222043491699422700026439632836155741179312500543289958341072995398534546397977043419868914943573535173439594424087541651883318074376609730473369718495225684220758408257672294305505238142315059921768221724617987953227421922024979802363221366906887252344380934221163977714042295456930461681320495089334320938676520406338232060724764397992224482172977275642610472805371950351343146950610137046958844641881362326228044650686430568458537639937513363662712923607795562813721891089871420718457634681587056030999791010717193292011719443630545395116014358181663992666563125260532069560617547647000927114162049829066671052272959255268272344541235116972717434550307158947756890440612501982348304152486451291533237052248219911791633849952379750767620247233871801839059768197389586117061814632276618818944623472679491528364493383987550915197260105946576672282463094896400069080117309511914259535418871463028353545003249068674782023082239931924195361291311020637560656299369828070192994200636955256563701418732245145411330341084445542658870262003741057238402468445086588828590251966760852423038460947437745762513573538916695029737064394879036406459022085996198018391915281412482790408256196259347333481580854306831133428754302013957564432878486305064053878574977000965296201832095970589022815887366240587835583072728903410319427914940516557182347790276421188750755446586944280430713104919384226007440557991459781936071200195362952270876493445387841833695282779188730041615425913560513981002118067324589070859545171729982539444715940782288766206302924071378368101821619964587403789949159619268522634895329012402605624078508842945742153589723454338355481261623393341464767292473098234256946794627024989470512297812806597790112516148446587324403261604707594763591029702389543075290385888319649067598786762175315120741621354546918584905329691818550799231165600354050154625582492860869324475443629476537348797531743319594849096679097587510311513387800854735679119782392627813976582564000994901914575319219622937011735942090293355696010499037181454447007213760671161217492764334833167403340712335549946386772650439951786437642332072658605683927878577051886836127635646549907578477665539457431279089959466972964218672009482466853444975611031407549792733797372022773589312348513645605593945489647444327510762172784197520946129685588854207603004932717424592111484467425393355818426371374803692758859078202279754661130117711253809135468032250305434391406028327138165776788439419157085879936130570464853608187120328987726048724158329134587808959575621578246718884984156955874823383807961921525558280523690490252822898826208682699572825108837596701421834687635516814888305959621113275272169188475601503635593557963154304877817458557976508544695706840734190465920552657640023990806618435216897634186752420990626540048669922586159142211277815117765597731131716382579126248129870449252021627786537712946687741081855828445377809708316018823120738763197404539787242863049211864556108901090472033514752110403685266080344645101392940724826305662865153177217642793027534468645049114124066193899057890785420619053408503444423058840082559050915379103421559566310829604419944149875640557515743060553992169792791814265962830888698278525693227467641743969135030661514493978518612204913319978743299570948085902320019748582820587873619509910852021092138822720312444769052965144819781160829467369134692657465098527918416491312287189707900673155003508435560583389885282886778394458767165078722802331460623206997991158034631496958520268803585572175565949395314473550770349155740165599391249320424215925964438072500188749689832240487073060197056768235257124843952630196126908807170590396738175356550191470160785885146076992528425232306765599906117800034890873761751628572155436183773201670323381290488642367386934410558142365045841189918016350423923649807103288390130936099312702728923766638998545730946398255306641802433917113364732033252632183469219434936079892450977941526930641802461823180303548701483600413949384565905532233332382498784209995683693363007830176847553857462765709411379653978663033476617079013435115680293895939082532410620635028742830894619882215969580466425985276382622927471561732274002472915663657973405338424863960638309885879855225096048447558878028150800984712405250705949117972997699564519824704847381262133370220931690231292074168183727414440799772422500111958781169629856552824302131777149566654863832678252136087060430054831275571165329753059595694477109399985318438531280839134523261808899314366897313186936779897167795599864773497851965666675724959224837274997271274544949674696164862263994319844581129686119053740074457704725631023700240016607825675445192669297774444305943865000218784590933862460840655449799634260442433236282082419933357404459938911934353625243417943169895544116020339971163170465535153456471985010935789984550504448810323603378874874750340031325850136912596488904470665799202654546634132313798473287515624082855498722238149140826989430157844226744366465751501475210451839924321128293479301540444894081067333440947503194652650314370992023146344575412464612871756201335098259384844981762314263468384245310904935485866619805092188994862372378619987516018183024541204438434295495673067199044103765803504390683674540704785086156397196555531963387238889266316718540609689186837459124957088937302004736469011802605680508809733890317716027611789932291576084936826574374182697216623750439392591662272346195345115962028761077510205751933343764657458728684340954897980678537057599064419885248970173131993420130907992940152525428464853517620649894475421697407790135392819181435785444775430437869927422517546953184837878164227990136591179252050335999268286080339757328703778904798775508929733260796100664837895686775201360634584618414142713996975241901400920162381344125131181182892332622912056626189245565560139553969823498402137493223932117282213100174620541160640906204617385613033754141564594045026230282208633355989655641769517946795150844582496540656341955591740741584994481356325036742711733063151184069607802653036031045891135937371120362208036025256146537417506077288781353139520369343027867667833745774237597760745548191300840949672595816623789508373792273553931056300509787007160155428882555791670835215425695513609464455438278400649159870538002700098723447187303763369486382080358184805131107819817018822254195438509061202179875907048005678610647370969832356300955453833489494751351454049546724232484004336563564484772579516215928865263272700093525328136037621772724471410551882669325537938864217193944954075208904563528889623651713285345331737426393937995439571139302798846517507791973453906127700719922326402889292842252466923809305300932564617523024340009151791553460290399668683381285841721467338149711690351890668452175443814843185133600581893291237543470780128739083776511952660547242921618956184764201521886327117430046262748405351438372495693792099453519077292060308047482669833510503914643974138596840494875522195250538550777311845988069078034601024215499566456305997324725159097557301196218122440326982293424444636075793496796100525491481149461760995499842672476402908216163019560489206778030235974594142185563980262941825779198936677688703444068855337961724644919498878568820415891327658328460713952025583036662901097094264263148000776319263106326842496323143926528307553665827808194501267097456966650205222422831591736796628383698120836947897673789374031810758133077439456803465261476402838177356204621766872603577337591329582253081471524119547562546420020541536864200325960669738568940388756391405145856707134921954139743528386856745123359043126548890412863794687550632643911747093527844151161015491276056412082151420185537514771976383333361282573014700982565450186924167809267894475647932757438009351629756481534271431788750275167601784077857241035660263938561211469455191586585827059501354438938874833582749665093236784891121064641060471418284834202848649952467769441141010824956974730102411789769022050432107113655214758831197567915549203328876173214438828808103863661821535237678529641680580617868335501973528739091572728479726317559348168188394019660866803750587344443406894745084999007038750121914143728917734341706388242839743743350256425195520516507874103302503673091170894111055269334022547569975188331818356463016019735451674433243073305654191771080340534393554093955741697571101374168093702658783143611412743397903696683818571416260772145490457478217532134013369913246076014703164465929113177106706824434343776829194076025567361574418363413737697194059105346927894875078945122606278338201025873452873107240604773118627361768594311663478134665798035299807607141472122623825932454708904846241519063387678048662113965960317387263431929465516101297294510386698504032754490263312183546021540017658287569860568483451695628774699759641459376607361181154508447817682142788763807345433336171713492105628138487115397069173896233551833621713415088578288243096332509005945997055172340551008236672360467562363831549874485827436176517471413238065003059464414861600737024883121983518132220256165727543064479974834744717823278229370164300959070547200866523727719163466670591920165800292328286739864079552603518328194758627901016017482371962612599466564500331877689218680348907742634134443588085918180765970421491801401684870003472631736570545729472252312316985346248645918583604814596859661506141695027210647631225811781936727436799919365713501675052894566366850134780837137542085055593691732467244100867091467001307071382835176600009420017037214173116778553984750806315600009835982763110545698234987011449880130781048774807128523626369013007752558734059007058027912907576868203505833156789633923405420191384176281461847718273636519029199944805353191999477969215356746531795259291395094443981332876832365455583599482607232162234223247998483762123326206822722557539767233698899794110839231838897918746479558200025264798590635584385797473458464590628951341341252993993312220480680312963882952469264535687828231487648785173756046107103068650793434887284753891420835742516885291347182113539557581020942784729370890072854585922804034848874457484173022307215713675753004166268375135542400919707142737052546033584635865454865955060299889186059265003388520322430143657798440002867724901671493764573267274766256737609061920964876091539592107769910202251208470356200009018572575389551661488879185953984638847093005209164165757477814235367336638686741268025064499316741668178896628058441980753171566235099186630016215207456943565824539167025223495455010722363718479602768167622425739966805843037454290727449985644060065961156758864048027349150513885974547652054364385833466798624234111867831758098569947490071381123753504356390326823238956898320616689317588787978416071682088554047260646025857431622630369118671326115042862169618867028051930034226833861054930346214723865759832657932039568785506254749796565064299449304162955338218559574977225474797817162901238657414079498589024345458783811694417975954746772574852312146944686481390082101876728664455958983063041128988819928704267646973173448184367234366476222891930843755745640033464811130526514725798911323174682597474746329508817287966066049026287320408636278817093175245081285956509977918674566949556517487070825579945251319905680769902165507325954021021647547099570233245404850615722237435799834315147182041339077388130569693186354922778732639241705100086989741356523439104015891887874800695179310577702230203075307730613022355837249521529497938766858612234360718793364527757881247692033752431463900820280910103571105905582544532830397231754595501434628789234946705196808083798874937408537319992908081416109088251203679267744738204774628029679803085880823511919968995831757724357721997411643059788911917122744498605525798823273010600603093036529410028075439168867138904947065166049866162101795868661531013007350471511229442729778361634727695376478358846573783334971304915031218862724785717075390119580986296125912404303050950195788019571535726453041328556974831568593483308872082493707316595978252756263563170524291394336032843799191359027150892594168728310728784037008077729382914270738547184353343043949570627783324814272259234462641126982677244923132428968251364074104892821829046113494183141461982899611197977169674867018008545845343339466358445271074748171346651180596169885032282192541397716265807867517223541168576167290789467723041922751524644978805977580634359465424674563559956124382385937664239434720434504233476983465593793594002049723023757355140903157998301969573403756961534090162006195769174655618349287707565022793628106329879682845166612682937124138022794336816448464739704382141513527253853151789062551834011545093573004071146099141838424486460587872040891785271042858085853549845404284872305530960005868826558053702149562719981764961655476571679053614445370157628048243687436457703608652721875906987397434723457271908220611955849672146994704307917491055531656096857079865080236426005845555451418683208959351800265872792512313929342781457953025905662217909810797426926744551127996360680096653657764249864533086949562671129408680249664643430245290383933671622890765201889523023823657493076794192807084052364349695920292403075588094990552677337008656469247744129679635037451928107856220753543605730592883761174039023647230991590075783045363684698330764745469404114497438061646572195990797580236434690702029424095539578249909324004935156339485345773993283848290190887327618850961393316219569469079574760036109503426242416638599874212732677584682710347404096193205557871195864096309741669353428297258135042948727498078923166824131286886257436448916536878937570885552088954590257829095897375732771016570878602390540651756376118007753464222667827888002642385858799702955375601690704296537807183182416965134650148338084764235315621677827288048146976512188014718227634567377911835742720554390382254344857196928883847637726857267235158916010687403372078710352068227914465468407188309368583793116500213999084522198615526231347665767653463264350144348588782254015542639576957690908909774223406543560736914853473936879399559620778540712880894496564051621430673700003176196437969898569764501069480009874404790838358325067818179514908697598786724425094514845900053020752357373607614689921150338847321589419620907672937402484617969067171116748943991095678510550525013640999168837536578346871342931406081333538211287864814150646436424059375057138487951696834474461992370400393078451492717959607980032186836876009887936512896261303222105768217100522825145933947617522628467098474794217368057622128703646842984778452397680613581083556622761187473210585715512746952551040421127197036302531834869873582812114270466358443115122975820386627661909594344448331321978681688133767440117777498617513668526238868772163666727428662379216281726051404966216122526858786573711649916168321450175567882689648051364316344339449376951465359546112374986332786854013233108657052850271267603861616583552788104133029898343713390979225142011389170963941730684677066858118346818209496390615653465107887798288953796006632097495383391377822045049218578275681698192018268951616390259827398472947024572710859802847558560270730932091918078750535480668306747332192200173383839244469566720491490489743509415185730802112359020834235627999187506830130165697029884649406808316188589620320827327739079879077279216105363073825957781554868048066040528667894331105750472429981414568012490342969156530638821445903523237901468082501682076640295680980934729960897479444200083871059894172157588277124767966153932940114578352667059914232801009366155429061197756884229058739278155303995329951652147936310622344571974752185376545213947394723636373219788036526053490025246019659644642424936024999491128965296675945717657467687086825456520945402890863242989313431433944815624721878070067701974040352812391032416380706400627643530907558951133467335083181161648263942154823670011894433501041408426213464905892119536258248976631944465070908823363550190842426221284459132564151219127846334225661573846585320643476421947245103569747034020781017715963763319668089762961777517576462718179352616160165299544005080930941154061719451666451761562253681527580548000164882678652691602188502366986201556554508531286112556037440002828009612355212249524672352896387989734055379752560762185192752323287009242725404597485381874573212811970180157867345475232747492182400152934974991417950565155848871157759026688804602646822805272903435257676241627747225763181380003998042356774699219320510201731471086699676233243837289822468973885761399599078403683758254960174988673096227354553393743905449047839132390801476329686836814814533721036491444872452635008036867359813246487611488514673429079003693507531213792608474165177164165501060598205214553665327227558994460083230673909235988039230328303704550151760252828431761397944494899577650690617334510492265489889985439173253411432207774638086721408545078925446757350837506140028024798046675648446685631694107778978620835881264675847412890749704540458267313958347822676752697971918247320422805462519211639575263660506938915156145671809249329488140324136700449604059820280821149522879271257638866243460681740297723384513901247346724223418309572938796159398804841957730122316753503371369919468039123703124865995051159372248551651666583454782055922292313768721026001278891664935756371747723219015138640725943856323728410103794776659896911059517534148306959933758599298296673929037107722496641944632102599169126130978961200849948743382448603133880478196324155416946639806067914960175271867012772298772125014721745224178647052226591296794680172034117163005246500776637849253783097460006823000884669683397569733189520789907248480230200069105172775014161428234515035087162639146333004062855712042037002317933109777300641644460008332003271822705281039696340923756868587509011439479946126421073940097679613443856260530850790263551164252056082696165920850903949902554239237137246823158174893573886854939457271702674076446668067438902040606213484231710279914053251487752122749173534590601359337807380054750765331062526181015034700839301300726187805166212085934112448986652498243831004342033371650844763816783563066829240756321576180066088505037103166428092484803918132974154707637931196713702801438894559731479229290007834125524140385865904722732479040332454734898891734223515966820382160016157069523464467166720700444517365401194942296886335121030009583441566217851998071699572558503572524730752748241671117964106682539020452869477194357496125736582886780462883534629786133576458666826910338273438719526804806854902910447869726295284679477918408227481085507070568173260821795786063036720041793308130014126447374320902891286367744109655394778166272414424613760330472481698086876633685333146183142623254720365314270189684324792494875801277755970484281985169916712043151500048812892474824267186577395316070860796108995497101524461291525414600673922128867289830686339005261096119189830028935220738875351441794001048477756733762510889880253186094668206231101046542840472633627254444797706523025811439828249519839478616646581615281430991378612216868658494623478944838590387026821870916721263290982696708522472543529361264635424671450541964032619680533889312996083177238792936974877371999773891277664880853480434911983623122252821311468912492649027692996644781768768613269767324050723601475178977249961669053063084376854948056108592069366494324856435815076028709236859169199568499621825728186767456344261644765056178196323567927844966489223818866037951110691412072567292499201213989803419968776753629375773181721947334583558381476095591092477483393448286734751438324702346681928032251471781483896420058490821051998052391874200053136135790824337789954395377737147063511490318783601051038297461124377515770339442136669658420856202310523143313448140203079876074432174656347146800696922406255869079825167885153221223560666027883226818598952293244322464938611730140191250581992214122362053819193087510223347319801052301431121871892260031208146609727023842180474644107689108967499317812290734939882146063783620559804595931930360147678386935624114839251598850427563049032497126803330857033084339673141829570379753067063112909685558304431476586175467436649709286225561442408114231672538426858551181483212927539380516684941243888693368115824515155025115936334139438667661468187714509575224544665405541517129086528214629805692523246262175454598778058107332982344535080787714039731527545889698408142474455746592704395522815173034572817653717925759447466143567876061777061284451001332415693249985587492674242890523743303930477990911440523117627253973482576328237879963620044363940582139532224981117732125390040490193022678382621756700485853090895760834318037100057713352577142909170961074150889086594767221171176074280327440332452395615800351863204636010680160773196238098986868486956896506938915440110049904792637500820692497570798792824605468913886970158554454284036426762721097347671995365468504665477938174240884984845811261741824131503064632732228646972209840869292579349532860977231757080381247604510303035768678434042717885466525181945610623470136391263236107129653283024166549168813466045679844533702067675406954879493621377075807670251150979800912309296947076309778133545918578779518280702441640508818378077769038188510218721577766585537625470579393086344420667685360396445304382427686818423837506763000450644980559274231443805820111070054137139252392520359414006595248003337262818833411511253867440788479625618346417885325766799907687074259694687879706922962201466553407506401439981741772750541483399366905809890993006419129806814941292961270163167762751430204216015272288296420374787339640551598104764764270753964352351960982723439417382466281532781282365730851281281738493356412008995744814919664300839291087544524957247135624816493356562560148721209784964943394722303800295826072200812367222982294493754741539840462635763179272722463253995652089716279766632593019883166850938210009472043093215433007965081550845759969025301423405079787085990009430239828941782618457089831412189794276578933512991530647857487804615272343525064424554697173587075089721781895115592441273974576380304255770893522850560074518048968368773217936787595106866796725203551585693604135201465307629915185843938996938596014094929007130618326758228327861956939704262743666139957341426311787550103637371361867211334964600296329539899532688581570846894816953951562785938709349951158086121112032509453484819453282960205420413379547806493960683451158352713902684186262270121197322453527681434600441951726601187480832049226346343552788167850037829131774522034963867734505542464056393502007192971563189697114761996450112961962091131157578742475272464299981415968243800059230050662282465814017375968448713370255030538717815488069247321362257247593849702796097417107370836136404096405885261265133735834522956402742444598269928522967002043347351292641923012732194890915181571059509871500245500896844584453934411927917323175722701517558067093124595456542174372257846889857774415524705787281055194138923919311146723991241210163618563364127517061972912088294336917983851317492836500407494950527374912222208703803004548780897006002919610395932826765335795921778303733728021656132207397304094537740709555848586678685945835616309973113761084340409481516031876958607036947491635488351556418838336965656667807303152906241775479615930313999486653934197675786944099691745951977165713362607831815438613205000512278689287459466904160949383034849301900479031762702615506594745792193580542731796269112005973949179383293434292266081042264974884781055287466691122604779066763550553110516037669715970742153104014575243671321160306553620439431681549638975121894950881030952177772715767683493894265889902052332208773167319614744310890616223004387225280384118559461115593539293679739969345027517870508097366871721341241770750085830935914912917000599690192948584345661919062826687275440186799475470697430015296978735632425415431376026223871487584165554436352555845391122882645508355516458176134453645779628666495985661967875078836727901766337370122445514913616405384189851946948442442084284537856459526566045089791104690244104989790177396229950983371815026195640253325497064278983132209647074394080947224474709078541375315480298139112699652642857383422502324625241235230908245933081682917941832296129056793687612741676740550931391337439395048847060728877275869475507131481718761891341853503438617409029080944339153518807282179374961990580279468338872516597514648157275288548745249159443073937032601711149170035853062400421981870466867032536622685880631452461049262346233419278470161351499203341062584564368197630932685094324299279513311964474583326357889503892504274860176922684910529805768127109300252811144157246197533609773149115848168205986560250439955910830058838189821382095949504698738673686585897924656403377194452043154203448084410387203101996005314059632942066432119873327809927257430531305739490704893958680336382031271894897170757970071848367955635266725914899201397966701380383051589261969522536912450390788465656879229406177516449222101066430497854260928961784953063082773579743736045526156633033331629294949496718994369726542614142642046413893001544433598553555363276518141688709443299738009112872716416447623805180551675309879850032337563891296047544429078757175006984088397447850101590744793980948170734781380485517759023639378642315635204489042326502159474715243727251188192177337502742447086022337681979327789798706361290568150629441944147814526906900578504782331441233065920155188759268914293004676295841019586584894130916341887020546570123496607158866436801025237726171958961252792226082425188066671647160567461178649133468623813318031122379350000368343344593915795353006421150802077882362228223614479191878003690145888524515101560566009399325178754517749961420846428634060121572659446403042280419141978452334685035210027404495183590169017249840407871645535600505774200981340966270780684746484794047326593106032127470749407386671502022896911134569696285175395785278692937754833267821697329953239634709190177932817442914712581045932372178447949141936955109236896262984753557886407227688825239584191548774232473375321195665766053401455718923306846617955537339223582894610648054734147543591338364338018167345291436196370389947994188264753573924562186144445928025740795699986960796607381978288918591533015835504314237465986869144969205519021783024759408685921380911483941278737962285594162588215981191917287776669866416934940375405656674313360954741461234441552543950178506687480638311660708881326461560875644088088363927221673410915881537800057249301024611438062834249923939250713696311873667546949813688416161989072557947774953985047920775028425592640865368499071419039005873982281419911239163813144611379474069098305990456934701321762111892880158815323429145829154960354285129966586074425373773715524081381103825978384479289865640127730556653408977547665394212551618862959422977487337408973121074113691386898778893177833572512458249697339431417907527599073235409636109013410709475408700907373841362749686634070038747279569389798044777217537288435809611435416605212856929852886922154966718064273016146206165968684747336318442939065953252579451158631141973641518947650451694356739402208649421522097089446932908912962603221207951109066981492194587119456219566500433123966574863450561135407978370045735565557061761820164421914322476928013881146243002328404601593170899210796967741810869668291318209362941410245482061920851145258524986994999227007929431941492135221430383826162745904152566356668309467613781235380408393377560248078279364347510637386193039816156600221986175953088894342723372375545089729521882488296138865309771926225029717543714206530347164000810314708413777289254575234307387813445470478671687801253582674598419931267035028579899232459288253765734349786679188462202402863462378490814221062833243834388304214606608914871263101247021917770211004383924053196204496538197632740132718897601515229045402240448520515244590939917830265550954730775156648988274356533156285276021214116974099161846997085834201339757126078385546911819312790936292652850129054003191723166400616911253014650454254259274242310013902944118157588218506678309242074017519311626738479138330580850668924563186426295934313517020989754515169946895031392515590414981228596713039648855140207533260878778956538174539994438150665832921465989391678321015438388111508519301160334556111524139078848067163631941257777085152330850653852687232241080154317286706279514856041168215358452501224645761383603358191624370913348476426306697579497001829885560480508829165110071279960589110925381719594328381248123609603589320320480733195232439122413385416792178553169411289082935016029765382444718056083808393608888010875915078433614250088303605315518438064999012993821857172745625662344785341763924671376892268803518883828717644999262858884346142438799852482001066411192419302886329313528436328638283617169737346942572198402709466569105725792292142803815744214097929726069092272554641699689569049705812439974483384908510395648017117987257654036609264981106928936279939251697637302830727163303416735149431031972242111880836359560883703962669185005696441271704945940060022314318079879742764874579261148270393380132296195754780217463647945948163095455050405099845705459916319481915547086043193887700831373845973675476005462960184234341932311677737122938651199700673209381910143665554651553964021011264514972206435925054882986323868805232476859254117407927891774650343627570238988170886239614679681975502670970143603621421825751073232515123742883936883360297427365856502129326422644080910735579611561325299092159904374739253048352927294222259212844672531272609393504534388731199819887803019177796790133548630944140923954606844106013551369286163116772136264074827669751918628163637627163310378210582081346778762539659903483304077683448984577758175113687213894516927961672499443831413640678811458810555119873028471305674297661879649868791802825575770557633214463971968619101772231016032034709100524287472613621047343363590947930513974522472473227827138820170934894945192892613319189237223178871965174271298403902586588248375366145985153388553633198503324657301495628786633407713651094256869312943729806691915892693276391411297411288090387238402342529075708202634974242348614432148173278383515399604412386054310704978679428560594357493899955853124798096511996344161839640015790974690878289215889622931883764908120158130418263833141345112182010807637166121509953919672982775373234085396701119536276072699369452022101805038836112528055587276498056791564828551677455062904108195382230531913353954116698564416929150793204030473187608265202956087418130901391377722859098552510734521492307241716045638346856285341689533291615090281241808172179344303846102013986602849615598017641691107307815765140395223258884347532171909910465565573900508131076460245574062936557311145801243132803359319029002707233319468342517350581966730718651050435282841650538377604691708715274444904337095729731774642939412135485711707003567565777230158438479719329748118659425951038011728881930855406963106798046073690320634025784668731361330448558394263632919163951259734482851769580004350463367418437257203335690059765769950249666345039440799444357373641993902520336030810544734827034341247000029660450567419702782214010188195235842010945312261722299820413871982397970933600503921357915468146855821246266561917253640847376916101957436765796020869748003678644285417255082282411357073289641412276631464638227682850583634255872033835276518287092203003716539537821623387202132100462575296489318945899420348719942278116896082770840138319974673389934134132437577365850865489262095949992596883461613670589757458299434035023587902578317528922988566570691677151362809736695293286509774508728427125696736463161933771340824844862225235873552522439353578661978438253882779265283462364355103434600100850324751797227432575993206243521200980320908378694813852930148490463626498659496828019262309612909868868515267273788060159359834969647026519553110364137809027020242129741149079309165205141620313209044585088790206593888300840527031677292744513722367734734906720182438703384325611712072278901585297130869231868998080539345458476758622807138477241337207385369016975394596688336992736320021313804931604540382608559498036484668631230426558533422301383081893170006809173482394231584550249031217322381796734875387990524158505813807446458538826677732047134446654165578733745333053097268338915281679691648764322990314956956206608976323151624171691387218706057018022343149024192477368738417646454046365891513560689919454245678874102701585874839061898909654159100046176216877484393683458587485149949614355398137264073483759477988952851643259746871074662735983199159872161538487477074338588295238676032246585318032045056536831864932576770565049582379976127217570121087570976595839347197112775058321558394317095706111800554175306216255197332258901262961292892042491504658693987489532503979140580040657779467178819414713417688161269664826705246794396133753494733443388218088445154178683155805471506597733655804776483270613872074929862456987039506086635452890810982207908678835197516322826089193934975138476005446096621644162419914670774207547898832063200315699714390772105945586850483574342769654152720978071404141542405163916470499436909412846478584816722932564408849450488460613867581319889944704868186763908367864042059162715039665462706336565404593649499074673455404793931718391239512066391977995112624232581463743609243177133101806991062633982193799399780908952713052236559790154861047522661455958649048791287565665958391141433395804311758732162333258769458490678442859593372975687955359442252572190070223360704938406858669033291953729569640743100498903216429501311591463593554978093698069365536646916343368460561530963874334664127878978803191747184147906781496229656920417052075535550857649259753419435077629738034952307754275211189827200921648791446440670988402455715601574610738726752354909529151916257020285038585905500227811369380695963167359235154448460717473838353179405537633848825495225578990209979518438430957186003270337211108329021844912410072767619293564165570098468170919824675523464006402576223567504708845716268800864871516074514530626088118384790731336241943893517856365321624529513564446578886221837306236529121423051070050207430829944666103844226059732546158065294913397775370447106258422877847521081581410272017862961474052672842583549385263549920578514137209270719675409257539845024709588471871036949973248055253875541103108287292787791263513058807971730025384932443650693320123860205164589302945436001200194862189277207255398064697657019809259548672653874950273228948814785116785832882163809921792009528010824864189472653454729589388227677053747658954487434255268121534178478125202098027852190896008527887800177247855203256886459972944968518059750544536003255976583340450420196638328711454619693815009470657586621671621482946999389408853355399165059658075191977223013427812192678306527212846085391290241454740664367665296810624656160704455412826004057852303694726981620163549813463526221145570572074405933952259240455341367327968145576358216995169300433876692592983084548706470123073271735569952521445247079177391465980851186563994783182773186243340028400712323606663124960855974523462965076882089462819630456534154724854746592165420757971820909075640140611061189009820333341316945146302161311190223247479976405898177106702070334566145907563270097475984191631062182346168781429050893773335446962211687169515551902862204161533734762532388875294098835649188356448678516700087967874454430248582840934533518737318554951796248760255637118285624301605996057061081900354248697567793326447970141815285801300685845825270705266323230913929930351772533216550086052957589169804181010587466661428101780388763229392863083964598949679368486146001660693138769284328477594210703088314392843592411304978113315269444114209200728881482137998529887134457167714963323044615069009937570768455811503626760907951394789512972755285903920689733692702005562517616516764804940921554852327032462636665181954753349068262304087574588068945070058582231149251856482872202232419960776079575877037806432227980031463955675032758918106625434455970672270932065455317490379137088378491351553668244636015673920201789687036740631188614716643554725713106090547442511759006275635903224875074377533153654012648732007506541855356144747741217395430750601336962053575005300142034026357918814758962192767450539769667503788453679228069457790013478972843057569918608942461918330919473129604152049725000475477867143655381248956968415296551994675785109212215461368650219334625816079641653419618829250367698486159865043496475108387762131154523802844815225561904051991005580508117737475075269432711505544228501822821637703534974630954311083328711030393446758931188925896152307241643711305804680441117105245949103971830927453950704869237155590530073967992220931460805218875896827280641124422278107114899010785327238085220177006768094946398733720795572028533491924943097860955385823649827686156768079258948067388645296860496833088821018618708070102660186484527149810423599183503622356473931961423308817394852654294606418884454144684507853377601619250142427334597115339310712042367373870913453111566258689978076524925840385175140495824405911592592760186567520200385853082106247564302327725698027632611433404620148302610168389489108707763396430422524607615382333582649048970134324302055222773418077979552484066436501769235440430724777713054450549951125266259623167352507774469875036809203783536256399715564149330476907154878554016357586409007507341032935266279712892200552435715509575183345325868972506497081443262834021575161821450994581772839824021394853064518460117191641660905249204041910500187749409459603483224158117567309828757146631027369210643566732956854300786634643309226602807085601627775860370632273118608855664130030603334198325414329927299211766747321740858472639614150476890295671926156091573416567874049326156603701211561038385752200128718598701428502164817933093016439976036863044620109688232316448723279677123269662533665538659957121715994723574566793361526889337401759323588195661766959172272046243541583504401455132335887642378273328094118835565390145885545201808826230050743930569114031406041802626947370207053953135959433075374371888828265718201019412944735858190375967099801977738448093473737177407170945713258332330140776313695314050936273409588874500922821413481487923627874945302521426934043769843912978933498837500558058656374209698171806632834582672110740943593375153462019510204951459124327986757109745872564279008682862582792488122465955397593155519344750461206984780045673817920393451087082711382890290731647910803174851379200571633461829192509532003029682705046063144181534548594352728743924591782262667477566666539918121374691529462059738025937742046000542772607451970126974882867303483115290255416348656678908483555929020111038114539436029509769186815400099867970592162435109602949156191382211148472601228353860736836337487462600735747867042629062721817215785917528032629106891998742093691376987258635947401033352266584910284022589623565916908539647995390683376021629927974564681219554671247560039854009585514847726629655686818743823400177262580467749776045533123384703229936504129404710958711332487408553973674137365180280171310957567551507025935525386589727308240949329913927911095381383046211800145868495191991084935641413536394323048868076444352632684156641577930855103774614187412221994244082480882782492945137005435395292699560255269911834636480857668233955311987047420015133698182230363895555099087356429060917968162766005378925925333835492340848379216992039247354425775230328287179660133532622103885058380230459220055297418117270690074349558740050303943540859691988847983871971249988399673463031223881329241792563139407514305632575333830944696133594487289140750886240097424464454168400578173234757325940776997294623347718447437096816322494766123581549291202828834932467481447866177312652986485853214933859848801249482232320173268621758405636331172369865134246507448111405486456106944247496298831842576635239136344015474116688961685122642451453102299605875348393262468064822096586266718622367897447135939216573283845115671156890399750145798944775319282321148299716456211649511998462923084614518452739968175758306858265989952439475987587452441315391935721852069907691204756915702245882027113552806644469221409320159540845120597843265341406323582630865563415245859278204574393854115975483385202212751817105189836558959221461139581335095729347759981706584076164774590239341452631728486457716149052782110978181905822057434855557731657331643883113479739574649479631973876298211288776419364077206668561559782432747273900671375452425861628271478340271086764506210740507550513290149525330474555020086133947206073826765899153013661052055727623887298156724648923308273466218424766780863701042967427835758627951160117545859827303365372916033991941372759849688252795345982109606755086071133594381280236185899987379135948996285877875129050432933358574620133255003277518165293772074699043751896813802898187105507614667715943148072908575331542885993861100976021673170544714881289253085351169785392537327935476726621216986411205458318436452665980294237347566247050021322907565084640043845159391937655677472372034546981616309567069165375911308263096653149079377649009721972602545462362375831137001993739453072850611498024592457945966400327244291109578052877834592803461903221376585228411767465442191256697347392233124385815723228837282039602976390001488619831629898499433397344496661012667038463347015941979062000531212262056487827430893061006128458738077052569410028174511687169722517221781745673151659238106260444519330598548411786976923148579285672239056209006067564925483815066841713285372069075723037063430325508420676216266310191177358047763745849553706133550478126879162301409266436023175529070501729427669151564712815884644341440391752410240525531392648984406224534393508159791428705511527078364368776801696142978960017456414920872292090373270131832304914550046408324547569343207072284045547106330603437938421912216737400199536898587860177190077512079943690717936607510679517579512664506376276577113471666791524605202789362116669873029476661149493758637406009724850630604999214995163404163219579274781107961279861952467273394234944900363257941004777964175973041474097650575872521462614012033380365081409548270424584960106949361958032726468177671014715733195601637965516639750566472543921977781852861829355577980098834624529221460509443450977090736423124225008699678556314957027128028159666880278805031547194839547354301781221226733462368258409090510748093971851847345703908401173058214969415463891531209045708716748918876132782324034522940620680917034335102767769064596941811448764591282663738354780497257977773293344849054135408726194855151809183241095479950658894744808786428427385638024108699554914961863306237357889535339976298748800004469857414389358954393298343281965310009333649505226241004667661996244583978470614959024086330974347699455071856272774210657022321701427239221703361299485972254303859715345280079486115336909693729567701695209614947769772337726375599821106189814673625306392956208102281817727399397434376155991362990893695782654326420481707812685656869220546667310867937950017412246877331922675159190458045060014973190189522133198961105743655057579093317975969524362492681788308537382572966927417386543504405308249569299893542338041493941952696352777451541627806083915788989415921605709230161905423346867313789492497910494409602329741230481278912233782926065217589661567213310222122006680725761634248317092602730600484301312517174358152501014144046491697161365219582164222009441803999296707273805868965184767737833748618604772442927050833280935370262778889221301768500024748262313132382462057582878188813766708852298389622080492651941432881839819894967244234801359703132701862005183981687889611055405446898009395485620097910895659404406283465640811833585603735980981438296182336340693607811203068421286917620221297662467737892156907176234085172267014781125916535372092439497722460062086205502331322834038041923431553755296300651873831835282483594845109665060773903703506668615501929493914239405755930983659505716463006301420998006285603885025684520101803200873874999777754491572029576121880697534088467645375140200869126400817989251741950557663579006392667544402197187799763091928847025092236917808865917133563088218655430474594138646522978223640694592709180739144448435113918312443212004572905763904094106616463499195176502118749228341054228060475228533778993318629297235594341839622526050375909808373965831264692544850309805186910939635051585605537469276064153314170271083190789562960740584287481638930240074572889737868784065910749789634523592625502128715515704739124543033824121081639712310974956127658435413492007089151366345380028716706821494951967742684912280012162891780348043454678120677115247763762481063300043467720722078510382852718265281353287111828999861067880646346596210430131897131272393515251798647102528441745436068334080030299642637234181030135620056615558450569977184685706071733399448719897443758682843887954666468951495736958241239409792613274753170893060206114405764635877093395971631461497573275613333944265520192572689459603505821540174615424380408913151737098615763461886483376186305686909473001705267954201264525986654799136346986079474241448456447485216527718818019937409730876123285521730369346256373916204412417861181423705114828123696844367797178398270990080111531693456443516799030345002954552613550785498580485936128513650035695395354146264931467303628533984167879198430528297450872317574011908639952283723417015658190483946998947207755309680622510961362193307778094744013298608137817955495293729130455530040048358964723186321149088734720444679020998879329032624705374925595459565439271996921327258644816433492866417585557157751274201939661420247730531462642662192513783181104139324494446472668144990194820616152725924940529264758062885221648082418479189856306567150986425956190839628240956278906232999748620939491877359426518360965213548675100095999493732605365962303446492325939794858664722823435827924276993251704206292828354568469804955177639855108747656610105191837920591130030208818482158546153395265219773703640344802689060561912050357372979547918246577604704187388214416044942993790308182839711256402288349984219810340790976270619405634318595967590925585275071210226352616820236230167224311794851705712101686453589623730592190681234115031861297835308436607338452512208074348665489378315306026338683929174056649377582151427652771326057692183076908407975577083082032455464604350922985158167253416059457797364254246129291699273970678585096488021875439304062437756772491542260019463297733168758215193540909924182038552868057630974298188080621677306660012064435805920348158675560573632296813763922572725792786138124633182260593699947193777446208286033166719100123525234284269785284026371129323624375951629311438264972335833170970464962079795517454236745202338623806969676634731205597091621272511576481845798364997583150216391457862987156236989236802563339378239251476093378707961869886263652033895885612288845499511110261504475683661631958780999841287204858218127470435106296175676624147273080078218932880595771138573483110995612565131511282627311299978863985582754774940471900963083254205325142587998056056805543853484907207213327293342033382030320803671499257721754100559921487153857064111707832110224420814067686422044942233419605727410388809308415318038723200893072650589516915163869459011785026668021502147093831395222570613546409081266487569463635559020539728588029650899558558630171184008721557277334260941238706697917957403097259055761447525911511386655130247713636094032527939669657623548444776186739316644578272149890448522772875853348855924244679494498201779300533994799999249459196683144311997151369036421101097356581195131922031477112587005040056432146158978258197709877924286276929625007724051744020583006853867294325139791924277152377103229357496136899378869398371276281761839152817859409753085411018167178184835886901968407409131091492744810721546832740033806564129597223232460567144861706765133254683241299940178746707411091476475599429393091206271067504303279128449327963114088202731718829249228876394658021562759801079833609931755707850044353618741282445385276351956358764480627542986092289449401728947090619517357319613207544329832445050011577321624378306999908663642270254653040633799168611735575395578752649318865307872659621615128001221387541629922123336843117209948617418672474702139693349278136544360345355350841078089697389978038631751440089068723406700110498678396107167331722521010469358267666207232085403335962045302958391942090644161155991520549312864377455819473792087102556245249746886213524035154347972596517130627841466026071429952037060613639338417876502015657105231986419622806147611385391965110939893227071080784695315865861399891640350732781110411850728499210723690155187535867620130277673585575474839285892680470738869122112949010185994047491802456794678268621731006341259765945070746335791171962779435635881198115217222608913079968574868287189760434494162746647550818575712006220636992732499215739860299577291780342895425817147650282491271320393984436635505598307548956569568016915539137290898856515663908667082322752960197069715655438315697020364702336402750432472123094489262598292938483171880525217249709896875883518114632240717477198114091374877509552309770946527135707177094416906414505262574334916507148989583260340582291058480793073408226157811260408745701171913125551078335332196911162371493076675261173172742185982511504257070575202444106675063172554143510556451678692741874743313222648960240676223748099707746515307901040728436239273830813536673112363625480205669755048934375097135183593393425293011833182868570075009664050618457230686856746018749202442837966524076526093661906179286800080252974420465962410387019643348793374534070416966497759644150109554894548825940699062421022619146925983559479356201215113173310397934772002062988434747029605768318918106977411783013300164619222332434534685086958386798538512224212963870628201291654962758142897643138581636574227735490499541064778738394813094910536340460480742848492222279863621671271016600368926712178477294774396911761546639348924970809621877099942886505073565837623755013994983762539221725018430753046784319007873140600556849408178443871039162994334486136877794718678441562076205095257503694323091297833095570340191428485578376842957092322311327188483894546148661579668641130611669171455392322962544636826463052654241636860190602108321744531684094723304115883374066689431532596514338207253307406565933520386699345617984322090927842997560797058756156387090113033602844218273563163025662790664723530393227438895376464420896722850203417086500046029867190667375530402339133447131679211489693415612745682525405269030932002380104868866026468272239358571277235909699975145682519861304421881189030937788836613576166923284248805464462373303233501294805515430934267047997072846436440096859400531522879943349733167997471983379119094775455783029066942033410418945286845322044168332981845219801989401611779329042995845272366547903666131866936483441438348466501550122012381066554939491971335391468949371105696867954583537226569519963677716446134230796541033587111353774201670981386794145421978503050928176965043930626463932997610443800760128503776271219181627740785201829995896193893768517779140230377836369788092245343217712975915082038619155451342807506003297349088385853657706568108852293585008950851424108005937360683653762785323318469189682062882637631791044450790907273286468481853938844088981309341299017040771595774740158825047050321097717411834858889120308078295697321025332522718242776718973320730168126672024386090111213798814975858211626609873098865892095502504449760213722561001404456637605097894011818194622157757366981359981284716050787943872555301056783981735372339294541414665878974181800546055743224661598509256204270292373829741956990998303800138849424933877536732439270393654990353941392025478240863091870377366716904283757767641604993137597082838444296917276942855817088581474653055296199292675456590960002636748669337272659270043212398562745345642727417410418799048089998202059877946136340841177389409526469152723864920357228565044976670884248761097140858665918474549625000102995098276826446149956416136321268452393189164196134795832635706235234229142505861157592721727969120333075837835878634507862626587665150148797065005490855016954410685921535471732252960294318683591641821139009435002935022905282163433413149985436031721346624346672996895028367177568442325667746044657595301169934826250446831515070783417180377502134241408770847656547917305721347712249984948861868002887992970469533977393153541535299608350544171332638040556053216441765235509628433558567244776822709125323532343271201714215039055572850295429698664333590600503821564783127532619186937676619049517506292872971214200535930572454972966649176485226958834963120743166802953816737819833044805322941926579183746331493995432794891134756256310744006694336937000726170887254512469288530152888408969575443077028714471872166938461972334607234589432490837545056786582796613930002764857536791044480654021111062352526308836734702794581862954185709974205219522260278409106335203615861424633445430177008359640382280184820855576243076452336602581364013617306428015801617410584333010066273709774071181810253557616644308920095637323320932442850587531510666860636278106885210599840429859431802631418942187606286708557841693767325012677668412534161549577730584103954132930603634398859328387443777732644619690409079084851499078723462765640254634321494743132067183424223357887458066999818607039768884376945102590148661642958855906735360545050951497911597139916077095758765794184065135780753429265935749697109090150379592232493779516927959112600000047208653699143121389166031784439855976421727384555748787135287223258948022584433556794768051013669984768774416980252811581246950668864489858836450432955723440884175698755112718268951513619534155509090778022082661704627127834729062256108570992875260387361286006201888802440366051719634455195235197616587989972750230294192611937659135093658453465996473167582654097870706313562499863009564839259149607756286736544429024637172665049601727587810566107784791369860087243277774444069542773567085577836867864462052393696199696768678109247079767416635371862266963861743581635391531603436594525924126939533642117381457842429336486179788719376069304305607531283326057339763567673292130961539715698919278459382132181700239789684945841502626266531621524063392616908011588252993400553043607127687317530488109020826180552312354178265999789037785415647511005491233962797988891063840731460383918832387897783206015245229748636287941486849388198503077016611557122360416027965330354472349117081769311915313059344423489656587535791206869698396627366148663636670101759818817352946982314014171780615357839105609151839673350409397331077987097139792023474091947034361147387696336666911436590409689326269543038909675442291749573561155096876256840200874917158391005195941451174273768591010896462631874856621263049134312368339516884662142357394908722591434481707506315969418704571347244798937708484552887940636255365564955596173624431535969496729368768458985582281360123217649027176762381823790741741034611075974956394980881469692085788600919323420936682734053787471431597486831024335042376485402543205235284649046075061775331489211502492170597343371280637946522429302447572181453956427374517937201148197590133990385232899079567389730926447595549839820657547989932197749877952680990490475562402863845214465144077009677394471667422215827892341286796087899284470684546470474677401120308594332717738219513810845351884607207287932338467810096129947409418965351135892705714634793298525231243031794442692479288424318221516132329116318839619432397256365697367168317005735290503171808029239668582981765138688522551256998818784155617709958075946818747215027900101357497319313528834462634875017459019555264345552337796966062865192480161504467335357754826795029412228471323074664425582662374794938442636968935746111942574363674877652946782377426543253433988127124890502653703930795426531196890732080240471762080795534890609278972150128585056043609201828772302699294601226585817745272543964657848294897209228191767008616708356045855848907003430146890824252011845730323516017067432590479251827571412006572262912699870827542245756421480368690378510288966485598416311271871016472422460929737410162130999112693497039632295574994318322820674726285617974398431866278906593319316426069481173673902488848584512486660450800985351537185833597065978838548857392955038979886782917814667271577923899891449305426386418861980000640596593270324997028684723951173021622267723485378706613526641917766198570015088005483622225402041503706185703795664557172472315182847438111071744072860613870901850907158864202264924544744478865995199135874584798634481142218340553264758423585482245399442351736580011938092535994884214060960745899436868882987074897779211569394092736435879851407764935849131712843854453998461039808330330294670930122635924151346923379512542719724751235583129770377182626957937588246799788322485726189430668533883966008878795561717522481400880776307010356892559208427172873926701685229359141954292207192353126189225909935029906023863068260961863780084069741067038085066264813924170197173006750315638319573626320132031497616114073469100406262787934633886992485250717428718394093958408245706542654841071608707742581421814412619020280495648995931458676230451295174020226412140027109726210467434816894239497965263008437207580990494967811526762751345003320916392422693813880620035198517708184960760321231177105866954636794351368244207446210725202676261829358690349302712889409416734210927807682367966100527534646785441911469918669603314092588614245615166113960639093684460666508526103865641408979930376473633014817484493958773901818795300586827082467288984243230751483557810430801574240246560739511460168095065423046324529520584813858629704435191778295383385262497529281419201477710514720383479550493704562850919856721119705086769780513447434276112397091706756198761531545187009530872510794534683966518968371727821872549238399257293677591454922467489710180912407893440445943588145038085860851185369400555249329431214556369015715432562129246056380400989819492741442372602107443844232624305167410274859114055232605073180690927927501406392299831936057226808800963876572147513107062826890014339664563835089692782527636674370327175069836571747974678999350547112685707721599112370052422264436066679444685211431649980842118975460612064412502077460031761661239431835363246585887609841787237484021355619794589393864937514697928593475993986079988174920416753778919464183811398462010440608806483500455373767429457934987950209410888445177293744640062060614507137645124790456553487919179153131386967543554591268856087837501348390653418116410426259294611587965732063691268173939581176309996818794908460066331006682827948722521437248356609623289326895581483420799692474767131046881127078079261856082991356401212545542638522841132158149666396931885951823550105125917817851824141063581389270620364951111168778216837479716496822555632224379318879033253899972532855164059869559934105307749996292526448716559413229470099654842104281730989492935666126952540601887162805516646143171139400373519414481903591550508882278249200478133003780989149028509884567790060368637095154551569897435986602243810878796649938828738417023816894381082744542594123536729864019708264776947878844753482603113486521676407042770962703300356762929763301568705202579668106977718616244236836766582889533312694401324441312295745869562630137100375368338792279894166998147181782862895705045845085072062045895457704014497342459646962284338551409731185657448058935740035862790888874225551606845694886649458663710490596141539514121436252875583293417567813621917603469449031678370360280672003838708994780343939315589639652950062767710161471577264987569481357602629704078500767763280642217765645625606970930936437931571191052320790920205724809167272203362601059561171161338968659744770592791690733211986081499101858934060234979856319352039124775495805004219003899987881236199827740805713393641550270535255570052488332737530618987840112472712218444251019979635536932672301794596991000014690292699259342533794581215740450974609716456495973424662172015270660429548117574838897325973087378404085989647313887889327753333020296372394989311016086189583329609356889088798890535415163498552825662586432061801641097207737224830401528702861296687655543810336748540014460978180491120062452816093617522054210843291414536726035427613337315713772987239346207866458313427352429652368728168238025342232864343376969598566907927670255547038590658917188925855497575682339102399636696954402579687546741965726429960629667289383845000933549503202015801653231461420407981387093576554597074097723472223833521278425400563939319269967709144865280624676418957791180881588162049829948825961250473361461019220448313178678235600822752400213998276946007900540784464982950774816336476788510233815425869394333245011346341133842782531498319184826377701054276656564401464501084892780064509877304883913002380707486480884888761167463016205315337689649801802402183754984950874755966200844952050723553535160385243693677168916183637942788920678805093059164264759484514554533944300468327527760417153219711123438053398617037922896567626825115748970993767399450341836171021108831979103491329706639389806420418774452594666910059020252951813520129982411526369846255017517662986956536125017879697991636480856072070623496464642215233526550380488494460740699223540138105326570575170617350882689934626979132031823212506718225205652428249510447158860588719310940779881220166889432508072039893271018096756122069073584981916906217141990234622915596367941518284771118698888282924459106965821724673100277546461936815270553317723894477353646872341670347658455745383691661376990728907116688570867726738244517877137414263355049265722156942620130589168983510491864263030297631470340020428213670156395507131208083931873474713684461371692388723631081281911578225399441952176018332112268342547930585911172636673969623696116903530393392000271582694934445504580518440356080412056020719796408540213107767734469552728175537137541596538480788787282904120688029042482584091335843731844053053057118660373470500515837917897421077950471050193908661609703747623142561395234092512767516647210509422669704531686329734223174833486752546269026240499706205819622661108005886145827243981132815724786372912281837088972341614827552674352443431104761944561669873552965754240968248385361774462643683867155775853272960431580267176985012911299530554568284989942199689659053635479728265133836882703406023863696699603039004430175158265977148403222583150131998056881347933608923913139888813177434926449424115885038614782517840314148075072825001121088637970900506958174376696521734355823502910342284612676087535366795994662447325336195199002025113597943965091263316433770156421258772220464904038569730754594902511353628135049591909829635585583865842239315678737317991792155808690226887913479344971247011364027901418557915664078615172919252819588584693559444202753080018084713030268266089793885613866310636387893721538231755097298732387505858225626350687354791413514893248359273074802116387717239128333314640174487054831457009523393380855377801050854206083098983423873070600300829302421637465842070942586413192271817629513690728048201338554181363456954898451871722077871325207003664544950926996937014876682832484722536487146300386762779497957042135644633989724318868694946890017661729039619800797388866753436441684475328878552691681041554424308811452696513191427449603541189530313081954978585939455090494463046540791201101158705393746751060309648560176414902253799814988039011796193648254902485903428394449158049630688639070450132052735478060701759777836527967191956502473879898858071888943253119501922531426289635476942107228557304908565647312225282009614026295127400509001249483790408159467155537729252480994092826675231848017428715408307590936289455441902612574123756768819806702727162466895257895765826477010997604471606680892694884229170938380048212972294955274556786189186764386249373284946433842782025478155209960710808608768799618630371860913749099073981290027861091413599601606295224226703985923812427152171649403022719296669443526567941323260822473152575774088330219549631773034746290306000662563432617007848351308583523390194540987486098682744519339745761993962333149127334672495680013298926993001030897311262190875032614089803550895350587870733665781100273101677162244261041956108429108635453500580040547984980340996997839515455687934433772891175050689303964918490063907784547854090918212441243190463083029804239152161313903021639650673904344245591006773630978717940424276864598316013024237386665597185653219959179169197332626261550054448123035318655527038848087319391497314591628892170312193341330306108593241279472636408085484130867917328471462304971214767115727623638367978279180838073109409911452545325879844625092384187598742878730763995169120034485771195809372264050663761324975448656293247049895703336665922844204816210580143660022849660447797424340160469387252193002158163489613217106862263694624326818326190403359458991624351935338762345945181504430123958888896602179931033919044006451691519562898596911767727928550254326318324138148585734293754702523452048836767202794751973178562799844371788551959573733662634254361780591567916510080444581476984039576122615268361034024588598825036425394970446441738468908566227344371608119375872436976917038630775265809169490256847934272327445261835540068914947136402508019742278939656983127603670472569678685190231962068482786513579151923931459356770567658860498389184842503347770989447836443417547626785770685784305568467754601676732789107063316259653898075216460688415903388383712111055919324907250099120599828317325666232489648820031073699155432665569127900985315055652102292691564884149471064336833567101405545947529757226629161862682296591331391953764472652352364558688870151927572907236485629404748392451022272429736572439747678194829812335516916300798535711823789674763424478041624219939384475359869635876048717598486556080552117745850211574013554827510093598721280104278899149576049679157615567940895120181575083140966363852154094691487829427587099992877625019434074212056233102919717603364913076990609474828021931066524092529773978498750125656197887848870405650363337136338689743647332416123808961102141361281528458149719938554669221039536337338064526646309788980421521157072569288714027666624717994352657756790763737601342484351347349600553942036938203240673813498101079016411223317095799936395912403200302873363415213428334870595327473385532717510245711815370512947300184061217033669137475182732659389761875857184057659747514350429388951979137242337483489012303889618102198118669114875694589681385167795873586196200881890199233571159567768492772837931206535308656063275640030919513828633741609224829615766108551257184157112627304209962909793012968672067789520039707097351476249557015336699360143814408554785194466629112220845979792116144285365828125014149316393218519809691851688270103442394349450411242824331924840044932184231995558117818172978807486913741758795143926873370703277293111352709512596748091841500784247258257603687627339390372464934065068211692998414670280736021072700967083330419685413118404563743790947592071075439857621587148581796657772142788654836805310078465845523405515969782579978543820958863060267584056434796674940593981781583581710637077849662629215202137670018982370600340993980762059043121570966504281155538127073643563309396846774456863912653587961392279229690903316389066994420518720139723535665028860450054203099413465798268236091690811002770795932045559386588876415193350166069291066082992375583024180259983502703383039856822151253888787351562192492833798474493463130464426387057910628677565163249426576691116379584692414492130166770072156827901744113846431011679054429641388532904402289206406525452772002806418312647916357115255927987799126616260591891410022701199341034868548542455788965015188875174628587147338192881294243692641856693293728726305288266838975456279080131577005679361059731593074161731241897629661359156175120568133590962423733477915667594300523540313921633406226465202583934832631229646279604580070941077286105834135521607621558020943612589567587602946351093715159926775907820203921177228976244618706289974194986202765756763270548710593757695144566746145288732639083261670223293388229135352473302073573721966195285390847328714780364012058510687716028332742572225224197769178434246385766043649583029815019213889529667781723583323314429191003226868143001814467189393190299028547814523731465288657637095893401039212448641387966968804862465820246277154498703573978208837944926732056721029699691683933332093337863417318985254854517071867852987739166499963566581423484036492502697652573647914703970132979028966606135643943166634128094818030473494418505179503121133852582199821094217724496439744057016013431423176963884046311418153181894494791254427922581981867537263478729514409478584046920384976429415986609918182955701210497099004529815899392656114555184789063766090751876204625675930118978786193241266073559970200991550199154934908627852601926662838243538659185647846358743523305717275366143840514581010955130880603823425335217414902130785442135830605251784405817982372151756520300831925753943399379673769070095778137340043806810790940963890060345200784789784326011509476491559833100921748525194713295626452918537321591496226458614535177991538271702737630108601841825400503418802192669264541666616095534563040615858240946140214209677857304836290138965888248305338182906256520425210842001399896107355363361168384171886015974336903898500816175189988773018903398155520984418914181514230594914828079624813035326886039742587114930576632943024357518753733625119132360399742864097654480566148343959861767565220726981081556557744908763536485886354570945402587436769637753057044445210306692845226630612439115079264657482416880589820322692960883641948010629898217902534518447112575281735162413390684100578240955626910501591613182542849447836723922844059997352432746430885584093232011953494315601108536930574616297478252501310401946011860413891315046876561721221849136933561221477194619137513275172778515313344738917218684373892585240063942722082129521294261187037260915799219163392004137827125041912727881314290474521210378313894226404760498604330891446935524896995821921346647947502503680809217542079331902936131455389045243682493874445506373898055918104211402783593446713202396920840158531716391613221288205166769705859967249283005039210013049069932304945289959238904354799777386797009344833481744738723761669277414263090818041081678104647636150829750872493951522811315090927450480106359956468891823392047456918083158987523599897462678131303791104029479553792458599571761323760074539534008119757546412154027669721960402994532523528321171524333820354163907363726632593927777513068644062682457981665784374422715919830353696018148520480027273669141229171144213611158820584022187821613327736033457345132756851345575362903473167583663738141914555962629465775417699309773956137301013230234900600443035266419413144402256279215647011064358205219674696703780172674915476586699867355894134926417933924261552407333784008439029923714512863916678192300675472239299084226956482524439611503965230232429859177133997103291166269714744961490932748480493249124993050330552031554485966176649753456848748021016786472647710686571729676991085369724253823559809381593141761205163082358010247499614276435290130635650545628173466591978247985604318097590829415848588538764287853019723632551360372169717377095015418547917060331338991566490789078503412848051933961611910505096577349984828791337043767782315670035474223284818358869357507004148702207766586466783496348520160923555699400327777767528909423258768561022430123556213858552586432191152092578418952780290449069654197656384880075168682548279618862319547808734013635650171844973942431810493561972048552519758798745346809458825170237557195348677673585596026925475081196998914075898583715941647469284110277234636001594884461193338763410264267998492090654753988153566904542914042079926616951302024739334365511479037937015151469067032488902681193064939553064264432901568449435749321506072173039562979610472405360037022080851292054593279770850593859357785582771252355343585001499493496003746853204643157220342466424810272932868460385413588134104795085661340293850909120661773660301454373511965839545508218281347740094125957139250357985004929615028573484246899403142412374467337646998100452040501529716804253206906992003636668724291915282125537244017302799433322512021961764555110765237797133255299619591951624936421797783129737488848287958269766128408295738578119711543974539364592018798152586451977184463000596259902165378325226042110461208259419452742999175617028552138423743816235663941213878609967113665925916536499721359995718131880439710846129628906414048136757829108641361819109028574411343412319881556777649190943042060906746802652798063488572478194885033522108700999764257968526628017999229442819000185008773417540805949243372775269902674393901438445016673899511994282660801450320902816408672568656418008670427634470683409572448390794839108271730602789491427778550129791613345952173148481098595856234112201671544322755412548180792664142963151722902819750810537055201971748721053160393153462677952310685128854159294870875020179143071641314392284253912862818404974735644426795715801101450608494168691511427719860697250871466266253782522673293399878627195432771537617912173827193812675512079379810761613842334032272202060092053200719448064173077430654078163233716276033153876832906410016952130850328996873636132282501433421057001956552687575309670462351839224616038800155692323151599959205067527616038005150829498754255941524188851811783559615449460556204031360859993517948222132824719494526392475552888022229782835884895829510846596279258768236315036296225142596249646956560620949948659244190422813193520464070074566288817665211210032778311085906432252958257149747202040181027208620238360925799075688845593275541039068304406376898264826988091772111046878175486337118858665747982704426944530469980610087025407627137810313268578363896750692595755413878493903325152213623713620881878485555860262617317738937000922447242469019925984817482024032404426361423023275358575964021603476552741678330081142172599674810894526905009160842061932716600521290381698372049234058019336749488720168663248387216277755851749986272447021500058954912026602089054073496926555953778226831843729189691985129188075223382158889269129318881685311796608216995619947406824455140168038441342020159086329192819217501154827642572047716805344084831293504516215990856813203871710934824367712771060469070790742303594792317047787424236659048457916366009561831298631587233095905286544456186586538023549021455532020170089070869340070926731464497795456627703623233011609036367369218411255551927048049932480602726708165133878002426775416509937778310654480759065460505644598929886485282920886816634762084095339001405865877627743098876631964910785244559381847289133633575978378673071743060496476982811878544647489822712891972401152511184983684856502564273481286631371995549788805475242377227194204463038170660606110896828016349690988229818008785376504798164519174307878205891272694171105474855801047461029885834521447202631098637341765961265928792089351567593156278178142918584266524396488280948007499743458395315908833713441465778129303554517712890448840721023623440132003175984448140979017707724415009328572580682817055260363033218067533240681401089242191765968502935653859254655136036341935551724131008199699955417400049278810358802743850841045275519665372174875858122923000255067618508617785638583573029475476312237986252775350890850071088341535106021214970521300186807582841191212717385174231006328569010153652370062396951848770986951498358560756252804484444555095020257343428481313306262638577534132796793342688694391159864149026199947653147868489012782671842671638888293734040584495826884063926143222540116466535867972031078127093105378322518208653484896974337556046390838922694585701004915506531981343865528295196971669975760012797783085637501410437207352297315558702971926171321656678450485063913333425148096004224320207780713270935346284214272501948777633853986341822065829549346536850527913686521430196936493251818067340512710333956290734170322556548983753227346412427209942871025409101854296068152527019484697674501452863519163914810347422751738573433339111211331068026110269370465987946991205774724645122566803926173895388300316577651774830238661062330313886545449883252384874204768437015860020215181078173224930312520102089677034257321576506995579595102629121163057090640541547267833268923420796451587380201894267783217990901328786047538857128656600817389616682687625857975084142818518739470433558099224113810879286953629596353963820891499893954778804429711995485228151731189510326222904918521184507869627873481791415566029866176819624165439371187606816806580679172786674256849670723093224835510833869766679688648841505380589714097379177889421828458647181915218151635395619668499897134184448608536430957735488477345681575799836744640371056728480456708088272012717944978714922745374772213250604034668407255568275263235250721520714244213601889541464357160124547752357189858414279402563232545569387588153679760754352439080006489078992528721014047338921717721939938837785881433860485073701948134247212640876938099532393425545440900870518087497020513558230721403005591755471949007413155461453992495681604308692526274964622720221994132728683299899292321687197680010192765417207179084382481735161802407743965077296969775075774483460194326813688186617171917053408228999013573843795070642054619003254203996088557762893753787076107301378972936814145420714403079141873474321899235501635892200661764158619008359760619283777236466078906295532595042314319928626183994827711783482060273886968836018401663280344690536581515479049971030058473552571957574549193376537523946442944606897156918624927047967073757329949763290036592964134328248108213037023597157525343687522349910797525909869773651002022399336273916384210691780320617103220109015740782442517022308619654836890052121946035177461312134706427559155253190944952025110005185385368837820700620070504794931540334330022870132942259433165565454926515263044067736851124028725560593247873337916433729872171969511570548600553021287082443322842946295416974438424113140724164100234748366197886100333092199022276895438705518815188789586106507073985472212770943660294053992190008915738531062259110299588952799175683939452075228289470040163279341934702909040381082236174863082431071710285967993536774838950376783570853597835089166686862988046653002437448386890418961704335164827500044676626723678458798468040687298750649434088236054242777300147553194799597074686245717541099903615318263733930159318448316441438350865523849539694286907044544900610965639893724457717794746860297616027666089530526404298631988524007817789378731035760044422165146247984461947644782124914740810625982778633553934990204367332549964296336272069804471346803101528035032090945467266959501534268218131095179737051708618981371582197992164650946198683982844038164692499349448736507839267017717037134499443366801445967230378560123637010210970610953034108488203003561577041942419985486689292506901776876405923049909493639170791478626868290195518615409224928610134937865300635631369036219168070978004094168300923100668109199260026696600715431994786910535932369837874007098810705970033727210489958883751575325634958918787892513496313332172405452615367234272282654080589962861260290118629893646030925995292309485062784237812212617430616887706458453155703906657932196707683378054348645231612027692572661287634562087920532566523023498920649358727785706995943201054644145950280084725069951552721328237491044605907599533215938610128991392243012369259992189137141651117784268481212901989187241844543794647099720296544532576012089417562091592238105201138994107885868892947065566108484000569938096861054364210532571780314218188261715314621510943586676081173937233493589695070627560999927524867168097844702570118468714332754435616443112885150270336369684165327469412469573404120753693254057362649246331847333368933065562402674605231281724167824694137555398022755626460446274473434876443325266925907964358076215640748256333140629382424447182800493973521180465570438474568561192524779680616472757600309466690554031023049023915099514999294781154598341607716720435834945949917309496424019298402310843402319928072529447784504283694398979329974445654561963725356862773039111230302907088437792833363755227029889086382687642737261258479129888631941022312602534321689694582134604304932629254987682979151187861888894394665074342453939244454080028619482708891998063566761658273732269560159608512807063330418397680229786953765223749241223944965514917868585524585975771578068973563557235870243331912482890550936451712462887825143839494047256870949944735984796190800574553076508838951247165725455325173295471244903871112135605852408337269319533695666866906672008048527238855804438300063344673121387990441554167130541134920032263829337986109092746806344358539850257270403161393683747652365226267018272695624612053577367550739564494042168440808658112360969551671157653179994622709379056320498736605798476366763283142722037437203300577313555865930911649881179248555461579720945490844679508178108783155044458353561120660002949977877291671975808090488074801320122759106373852012337363095201984827747309893027903110767955008671935269304019922903491394524741090235516029894219389828315547643908549471072221495686999883562988994064477612250193322022327339424509727622367670922702204318783312106084788614100728223527939863038408728170115575677144501780458588215565789102584564506042810409356790849170382390105326161142852702076270187526941862543708018496952152264946316109049922162664940226141999482495770904185611778867388496883594026077445861158748769366591909428626556665454385738278880453732550094417218150487955424415670607791730770895376993263566250409351765482162765845068267070206730385035443838711316575224325209534324478688165968610629693877683627543026410263225126206754111984440851463640157240462767804057371732784695974359378762689960900753743572243699631900724175315407815439665706848383344875344608127499357556820021715556561429900164483869831607987697062864003557496070200076829175714540606602470199623824318588311437508134115378461592173408642445063898506296026762035941196979326530293498954220090585682643436624868450228940561352511490174863935393623543696159887323857739145622880542965347356401388882517040785904939049303271136571112642511901034474093387087194941920252936431447711582531693485374814027387500966700983582455664769061243888008795166157753197554624635739280022147913297615456892223656137624317727159695869085636124297889819573636003240117457995430306005989202165857850696898061052867403124663652553823511346588646869410076210516739689977761574865053041288925486820993117788736742253570333424497645602188870011250074045629528761974829733163963380212787883720808233185798812756023154148228308215622781606206862114378576984394160486969185942994625965238272372824688944862719813422472133698244709819068942544166268912317376010671215492615486904054579335982492616010226111683043164016040071508210633487417301005471704017214273212925264108219907348860774346655329606533215056667855823327616126521887083406335393721591679583904863640868243997205415119903306362612100251180093716230252701322171254744971271356739407187784423016320111988040502776287805417136875748373483057839015497047160709884938458122625829662030086792463098496520473278082103288536472701429660115063953677593621570437335137453175070214532442794435749728349327867997410880122194938449610464052992595921251373399463975510063227747302289896036967601483511201387366504959789283362250101469740721212048998651888332075638389116886072882125874479732956237143929932365769195649307149465064682827403938277523430568553770676749278940207316090005876068476469242269682990582365478380651655510084546257957173891338970594749010792649658558195697343993241377066979286071099065310220305349112293092303841113797897593526420917009337862379877746285937972656378650727598139345562158042513719295653774788654395398541506393302086015368333981298504167983457583056590368974753501908564188255138839555691032589713818499853349876846168029243340428131419333865294840102875011096973768183844080695400219699746539464572772484618379177091579796821451643360775941750676651679995429449410218877931975651330885391157759509615629447629436145564618963868435278745300689871374255829452762219337442116175366804330926433979623402961502015004931184136983584788045784743398154974916263181609758446970745257286161807156510348430533277704233731448433470968863852275571145776473757527294483207791698288685920140895765826800503297998965219017428265945265609473280074339222092354522862859611217566834167836859730611742064206763816647887733815430889714529325148565389497548681385711347392283740454640174075150849134537262792075067721563700733741791685346442983092355136694668440041152009401322629450289420408695965988356245095723082459571981341214583930951791004836495406180595660959997904929083014047818097217614882167052281864107683628424363013764448989362163865860418085585600928752978134233765313432749039279757425755163678160607144181801160205456277491576420195260987528634337134539586103552740504144953596695817015921010280774201017661578918532134664922824769291225731518667759350140825664581056902517599485889778420435405563085006695611905172878884202078032722299849700315379651042381671581576943231698748715051682308037503726301728645672404062715755633402686413946404065841823015417388271337527872765168478183668102774057899410618244088172118879824722930782650001290304721168766237974471387191593626348512660781039278746546243362292141788358017891683119522521865708881336324235439838120752091325784266677614870568216809921152093350144590649045678574382719161075669449708326203368600420287929158461029118949474693056985907767175444071410165062371961739084316830548970363797813254897088693654026777149820105215681625918512914813049103753256223653419448231345155316433249207518091901782666949679130221206293528722526095240193515596032710866906242100217608537206635342016399862106230118458338887633459136043760463852656332870462203928483026630250172502360482095509421812634277195657736689755651890116348551237310116868884851616591251960213856732326967740253018234269446275483134311564804218648458107614693191510504809254473995530715207215387860934030239861445685062472612967617463924482731466017399369177782562990940027185011190432205175745960847993571438217061036003556932908335787715886503233971516401850524223141490834715599760618696395492665371772357874130022381534589248180042478374293798055227680360398113759488011791451365878242589380122994224547680450278669190695195690877785196931422347094240395649841761249720795851328405898151182655019132249827909425317886306235581990204636386498133286968320852221992455478087686612394140025984626093594141047585825723125886819152061176938712566098239731717379807646873278341398172228732780922311304903632965130873189432894091153959088316956805445703419820602743736909492840088761214322622897611761924426704356817540067321684675327746713551212776214421993753147659876695635684753802617629528032622455659789136120309805983175340900492279239017981578819592801848243195671774020374469171133073335601286707208875590898624994602946165644760528922214320413630509308218948413088005304768312633334672867951678713992671945491509567273918284002464118856295169129373594322200740917501869225551783424970409051887657759882571575076353060384656624006962133214492024231796492054567169016443176334250337763723639406228054914075797011149435664437142471198507308563286792499364048435222900285024748413639843646581015186339896844886538355450452469127927680365656112310423561986367311889427029760305253133289678173788997033527529566174998018024550525166841499689126449438466592702746507803565442928065765140749680261268276001351427273856017272857038193547138875136718982191806056573235686715184432983524590397434222837633281037464085539603656114466956218704214226593888759758573154275039017799400080898376613686321071102565902938190736783742639061415378024583976610095452084669799296700922106976529180875823878523589901083885254655024787339037056734543445194760374674293771019877364875064255723789341758327587065824067653444807939479384879101837993775377437380588658009768511198596364559830059842405174306012565433457228460900830413725927871371083857688409629262015691082926663495480537309284112554125590538310784672920058622211531755735071960616908176039869921029783984128005613027570893486315592157081774356987112525983905981203400243167739283035782905856605393771115590595699389818503156615872906580801986448355240572321875413265495986162740366387207599805272151262053201159653653183208019329569512042075935312564002587439846673085661706738673810751452642471824106012946413063309506870613721747126321749543543397526457543835052131614197615946426500219704700345236922961225974646084173368622487927950181368888349836871525936172831712160934445822215296885491672213747837260797017414253744822840717819434391175992129830802232217729839423816555178209951848539833133916642803774742412093354494381972670698490285226408395000252106992991949390257591231495248477904743399042959216201073783070194997799768431009998559989715217581534884659206966764379616010961777383746530105215164974350773902107152875022591061837709642233135897223693317922320353951796437063733154759225396562382124382499085120239236027270990180883444567092744401514198692905742321561323592455725189860745820823807520994786689890658218972458739357758658761537803269909217013893442102070172356961616763127957960842581435030937385351763491224636970108653933180004108608866185103536038911035279496066674928757388756153445865314690712845418771396177331489608447136468854560980618991147507538040210796344907710480246963729113537457455203295886585429849543823751019508520443612287702524828230933391389140245132815144312368102589167902960348893305031493642689171773453505666151443505243936579245513729386845956949087393260855954410475506645201684362040156989006886436357256590478015235572968359143225764268502670562161120046053170049717917023527784282777431135640043235507013856353342375856241105940285033266568436598824581649932825612936952387698500887686703777856861581089026480897509150603247751659228103850932311024375028369353362152734748014655662346950519830945137665645114854018103434252469728069769264196125148519134754247370814716911853592324019667779036860695194914087798148906728276789716701030072172324907387122300689913769969856721338431209276974595510434540287283087615635740758472919734334317582255559985181997132368590577132390041203375926281019307812216248847049268310098532808948583914348976706518594136510425582368615818857165339141158856435983543014322902827358742496128764018278360531871473354242781751959113357099215408141238659088499187433322477443002187115183264925677121964244699313413313119701209057115516479134283777910478900077795477578421396453424174126867165514705736900096832803903296036194420311778915306776075331353107227692778778748158331351923697284888383193497184052662111376265516763254109081418563489117039615727605805287834610003008447161698952180059507841572318078319892019787771201005083501848792075002020364870642716813023103594393340271462384634921690353775669179228231600908823825419483198359054676820423364754635307443465027923845700767964578566595639399055365324848840988983818957605521543392084116195881481269678577842580209991167324537789911651304224764216063520365558496834423350763450228964768942019762305955617712249007174011329952282803796452124532045718006293627443635574271378542764487818994967457148367625208040940511673952526005983727351316565249867032227954040199202245799448129325093515400733034627486707352549977532002792907808872857943044731093905872596403259245911580537124897897585728946281129437190026047903068493251656941892467731830265423471885782358487891466786648316369722498989623684904628470405990277944141611863690585874612394059236861295549675810655779000431855799882663852148791089560084318353446860857813751350130837344443403724209368834361845374607895677174818742072679642353795720343478661899964526170255677444133663248460578324875690895550281235454879422328338894783909984337066613382108939362123798235551187908052931364059994571565725893664702572621915223558307710784133738327515822050048188864554125589549660682617318112779333805914805041107715478898311101154996541561851324955249712956345347752039361094638656105169166704210040487180857481424290325740460930095801728193534515020293696277203030805858971424701907319418492212210898131051908068691935176063548193232511944477758440542969961267500105593056339225444807421591392670764546229322900944272490500578943650840730691078571207241760377218888264283357094126383318084622644845482270907372314952159109678995099094065727513260409288488467980961703538163982684743432961802362118467698041857520582019653678556699553965587206703787188854347417162742699929462986194837912698236930287645014902863256868128442175246335889928687566939010124613131858516007002014444137931257723379039432143680013492742156363644338996643018384775807509351277089042879852951737011846541702661715508008900088726609896726237069277993092623692183082947747146889105996656624982197863072840857622512492671420468744546152466098287136973362923618747484045981235514572461276099507740051461148139162135078980138928308612793953585932396693662329593882029720828038088937654112874052971317182377278049200597177802441825988605586615649430833137040665293689502059196727951620120034642876366855330013165196980618820354509528247536798280739401349069306407784205737843565382154918559536091669768141016105785048735157639206755489114778242950219684713097783839682499397998030699874439048792311951450572789186548110115360000942704906442121578690973736346993895988207723384687057654603326289705851599831042702077150901068853301172987348791212089519699815992215771735204911759275728343363710557432896495553762600893903264209115708946895680016095593089690175664322091697446876982056629234383049658073065743901521767544746685256401390499437868711438598840682986237888794966441524719542333456084485887255651075703853853222760444167814713723577659051440214044222845943326802720988429035006742562718722885749142425766812861005755177000838754530728493545574122011370410666593831625967182890133121209577783080636654648716461088164216990217050468154926490903019313849176980188093342948798260503427003964282152714176528069898742025297298889319607658743256121775167906845260272162662266033948321780360720527449801253477362595876327557733107433652346806571243159872238427035642340184823783599589516375970454650068680275868260206006395086516665154262135385690105705489363906735412702928910335314582241751032087563956758871777217520036817170696505893393420850517629938107053601541721482856910079067213987266222435082080091532528574118585883077047819061284830202474160611263191557715036673415353501913685965967878648401873348763073826206390069930501688278412240442504215619913140913632799170267292206423402407152700940573337494374227651808773880806859579456367096751282397269090818260898231542271052287808639724173798679822880123771722718451621872395998735910519763118227422998404388561356307255538385377328023271659622965732988857685669814699633386174323862764011429356973799287033639600637191346152302424799410911556784378167478192454346132272691468264603968220298606137067810645998687257656064672787565999183236310568625141741900784419027848633341298834347909481808515915386655929092895186846793296133769299833495874240925009242847349832173867134949169583321304084775614057046410313591466179658542414925801098118071127743570112770227421820276064870891087894396038290926871401052803316833309071612290432025123814052398866724316170342148149912281267428192547077247443794478380052560768180492247132567321057807868621234841505179544612747401452953909741113299389521270883036020932098796125315924643241647212517293503308504732349324695839302617896318442673181865638083687791436499196750224580342162864394107145317481485733879952185408038491826211196598429470594144849198067811517436858725827372144890292534523011395475412788279347905792452524134180479096900324372929275824581476481673203712349241033074310629878736131188229011101703992185299079205560127591139060008185308674312191709534152579792351230087394840400556151580984360408473515034846447706617221885186400990376455609988857281732966484937667412557123500976350708780597378907626383070593286588938473604219783785669591756000830277569432862638831542045851269947216291916200633942709726999356955706150232868855752741836504237766725177848624017996966148849176970723999595929094266608640349063037668087896773820367112356107605831091845488933416742448785382131718767165597208803827419599701321024333044138144899144497466328256230379302154901904787448132585519686098024108459663466005801528860912547077742031587481645252120566323322324157621144690481695371405802012426012464028213868928936326725749371238365312211219223763970876857588200290843954423025907947274403673453006848589765903139530452918605632437398021126999243453017804286894670705978677552342154908253542436665078800495089525124041418990756853586641574540081113531766092444522605213018774913068565897811261539100553889551776288270740658499735740823275713275094690739220484465828563509820298122587531410193464988866570216931652907228441741356500620877822771368047889068540558514502987299153231563597857735201393906939951348987227307066125165262721428605999410766834799302148604599762383896935126977191419848245760660164874955058500341210641490142492287163379049834377969781025951542996576770405998925586073188518759981490194340024694567438176243641834206050423484731980266006646414130356966395030350337616910578087175572303879844419328653028114477851840547406667980287024995786691567091779543937510539729042009767400769188997715971359114581500160325902862491983773216139893893972263027774615233268827004069045838794206048256815700759439644175621550711534670993403866319633583050952687621545314971050202804747313955069428413778958394508749401089404577673202920690102039742725136750092882850625943102531218861779529074063423722424859622197556958417787784011536270943327073350890913264036421917793035882965350118007171074261043176274483687996661923271494849636218940390807301867370465996478880826898253280941154100107258158199989199865642828596843469795299551714962069369369108361903356947822335009681721677671664106940091368067324151719020373250838049064972929657377739447580865600551265927337855861885539434533809094501181717763899445383559015975217570133560599029222556794105221206945160450885587765373669521960320887599292406173624233942115079542116342027393925570361334231555826469758523271994935592047093872858903406924242083398143487559607899274462854451391189279824217497891900138558395692816146626588361754600313244047785247075663084282787095748938323136163738925003156146009625694323971921807123767194182148132165018938988533917873414116397604818237079713095221403626337989007531115644119455006871395233183577983113392659503849871150170893335862027592830958799554012275309650000127203792788981563358672328235966811890393238302899391625810778138407075635606124976725485241461670962390092506437421117132595011380289218002889713429862464030360957884224832500069018975947412405057385972019439569436417467708613815274871974909034932622061702675342330048772501610062804246137638634351288717046027940830045735804947609318597172993737926353054923309377184321066032082171657488127748613839360484940166804003258250069095915946843221676802683743833559744339209979558576424708621722576217855813681797208113961322381982266606855921470743476779092096187872402182962299764930811041743487614708453100040413055617277650223342749720170436225776950948380268215307858544023770226906475865339292068958447147905302040895216761395714575596775866563089451531383204449147173934890692271260924441160775434983042279649909043878319628994374395145340449571367695142305226153101068650684895439231040708531979632882477641559641623177807185413306953299623851970068092550532331443538530317404045580893290534283102504461732640824655810146327569414440810802744715201647421985863321364728235429917171394436420472231975895551202126788873614234850886767335208711711556692061170176903357411533659424242676570660096484139928012399562110378131584573465507491501404558611257704480702746161926060559621568461638508341033891764027148599867169361437986104605939076295768964289155271995889671877829647706079389338332030298074559528024312056803788779263349615034341398845650544744141321799014276209041469549777561137716720040824319862420913625056159695746514908847867353481138962061174805710911703754403526101933735698885132776389276550865037427261569706809146905553074457392604910443493678593524462111299104389830858951082622002683599281225282472511196240671428897733730698596811958498462002426916176239489086000567382874698185928116349638459151937106248516006945343304449425700712890874567243009135476708053300488793718873412294755658021376379041067316810748208506363079943975809867118234110933311932764135611150592868164127416424550317174085420771845705654263002247348186564109926805066040006781329930546198849543192957390551590605754054003316825532059689661795627258531608139221325744102969448619811111545817768094529672017985449336703251988273071551190885492202027101486250780810730453875626981059323603807617978226456352205864977392266973798399558255685184681760573382884830151479682084563792856797439732501345953665540705357117451718159580649044885258682925805183060341587447881489667946014661171457622132022677463411907645058075395172005793754446842104954916108001321775302204312854077743756033698698767357807236728528916429000325601745666173297102419734101225604550147585847322696681715113997292480350094274908414517037746806512945845987699800886106829687410239845309313212653927349895922703533752706646370867349430815010157255270895189022413113166523931713552940112225844980536549975594467749688951652234846388274888888749435720281454091939235464613316909860545192506973543734837478624075211454104950157008464292622298698132876638937208124160096590941699743288865820804027771070906752969763126023936514545153859735878939537181215464547141976013633627668871422937025268892179033463270549534565227983266591091211679533892240348707099561318368016639795096381160806821574664860118739328707709407861290317488943769723330991814384535499468034869299984930623944441428065211955729280751809645563739126203922864229033715003605178647028330390951626956134945048770406196651302848045759690478670793538744632730276541932348479031679308621698956243898452825078449146268105271645562301301381424876343055877569852863784184460921160503419681034208531716312898532016145425262748116308058984932627037164309382072108475992380996333858638550013001492371032320261462859411118471001046611598828546549948185770421176397313687543092870847088409794416954040775078485183223411274377718725780905458524343459448848783677443963928666037511714684955170618011502178740433599451163004263822514413420867409076602276604207760369846919215320072293325263924043999669288451267675922275147781195445468688889421081878001990727853760179117461648000776713893742600769114036849070901965629364908766196785105043951494438239273228395043381502496008510854064308282439037631086917083785902999704919559611458831845564365835661761974907682260081611520526775663601004719860893813349198074988526747391132415427432453260853655762352691533743392760696104240070213722724638516648337819695939840077826856043889700648014836430557420923007335281402017431341891483844454544026724159699496883062259152228895239153466379049863110989813208779883855142735872658156216248612339808540278678781039564798228320424287762754710708737379116825877102340775802561747708626623423570040423511930885267829320610809766415061288992565304016866226235434635725770428925001585560432747103125090412377647876949675995861543718301387047750224015631090825733489793810830356165496302454211410196984856987647496412838999239920005094822702463594195323802506846328845843411984670803449772070920084183193018661924185139466340221011003781723403081168979123784230525382570037855621412482232966144512412409943273026582926288667845394091949211294788363418472052827232253015140021697427161203268671011581143927997203206920985694767765501921975940756971118503595349738084998826654859571700742777679779612805169965767524441387252432465618382688740683254857469349882258829967487935110388766191194840630796806526285315627465053210714405400255270701256071242283652729334610419715260347908901740889150610513278358782913518401597903923463696117840115480161759554834782000413025716898427460232906586926668056623333777554730520872423938133431395100856804247400101078113740646092108567273958600157079026869590637024002773759779379578053991912619339947468679227063731402733497746660110086838370445842414710277122936000957892032944126811748937774218635273878190875208178873824850514311514220562004881294105386660781463902645903159412729095915420321801767473696060816470812713908823322834989819361822975630378582274592152705312911134018339509553410862864314918132364563997569091441181322910686292743315352352260507169965640769775228303910426569819575692577323322421838653092345340509477447488469345157948577157852619008873952741850511661518602474425961303001328651825130756487197917050362410929285489435950960558692161851154191606357071913942364838408270202077921093375697818877815018294876225872531249968596379545816321049480042793914824004713548469994588422183374693059594368039548512603331398894749661494476832327344187404188039210070433658257337962735411642902761417072148472072773080103576041899548692635590779199099593498791455411540929687442893523157730359759884203823425815947233248449011481034614501359504817574716143408040717656582079392337829083728212352730143306413904163492331390938096297416474577822367890830868539191664981339554804647280881964145387997691339384079118894769857355403033598928496217611798975841435400410967304406138501637500649232948327114577140526772741407887962052800382678976641287497703183753641023451128838259465639723314551664501072187498903459517320019194314732963223945399765495623534945114344158370984235038566340348723861692687585771485241329919622585558927338865650360992548211872439726653990072585816043169319319247023730480458797866547193908854012968782462465150433998808781394425939094796023652442849655815624758445258674269985860333184493275686547734950472477913210531600634326726463030128102355170857523340765556140673839279938842468164064727239135448912566382841072922656097988086681826600069489935152439812444213324667434935872766528815231345314678050649026991567511125341525308235434443636007235562241581761318320525943840335211831590144052976752690939203150555559097123737318108771143429856465587435660288519199206600054409021019533760672124070852781930247363805638400417160256590281666465184221673774702710745030172529226776430087186713988114974255332480748658973170977026695776257819981566916947820290377392870304943679856430559960005715881121565512014541708024149155565643949900748548673333122796998117325011818940937269747973912283787478879151949863013421078175010144496123812324845720731169412120480503588695764781594291632522189914865082598951792637319838970044231364486050434103540884047882423981257696549519817137776542337823448611868502850025874888878128683575514027046550764604821510231400057520884382126353213517451129270218357008295718461338436776316779256209932435007631235465414406435255835704122931914109766577984718318352905734222627481987240936196243337635239463105138157897152087824485685159510661664076340268252089819526856538411212016842607856757749988725968425154803491406487910794960903743313572271994775772428586239185032908257435122819889168021753868072885709748096657408821445569624763443612062976726778237800023273812048806479713638003082749897262882621359823349086877378879038577836678345573971360584854048732362277643428561917585856378002574304166446766969841294738798736416277483424819760552571710960347094659512539323894579650861856530530121213122099870673541437054223762038907663589878976624042839397740084502282764165064704761081593266170882861212151021487399499991592230090187592243366247483979469833970980208833481807736664956457827651056726756198663685536353451480867638168732576902617712866694084323555739739452264638074706547680760772933840835850446967521008945883351451486113948880068576821738756317360589805032673204450198439458946675756219702746376181804617163054520265197031793871427875938597592576293565721370435627638385700676357486636736181836645372259791681207680525132530354805777373717245923483766174279564829751570383281670177955851420074859849103013816479029812089786836592496835567270500155277912574078645030677101653608387356100429106133755242193689919162277488998227450743821124571900312032361780703536190579536574581443566524003772384308091011988052581055670879082545287250343117531787540384064303393654170960300060656736692869615846865163107116506573856172862261694568626475424361433117031460757047915657981488975292910971490328235271968442658725999688932555686112386445303647700222681116712091310374822742088845500156003458998134993018422444461756435143346687469257619865242120568916453586221162236225195680607383034292600417134078660467579630433759332882029039885042848400150891453801233385433269173303840500934172441157791335609630864901452365038424375522304775826083441827566558081757278120368713528417449653730796450562000811876119140316871193097466480515836107498669802700312059986737928048153471644452352869145027041431761775082330061292441481515010930223454251555116828039359215309791722724363821470113182540915173094448988444350672180226971683785375652726227637507040644563594322552809141088749501011153279203967306040380416256021024520753381937619725735543103729837878228026600841038130604048911142774856095291274065372121939782747907886548165780313792058315016618571980667248489096344830567946617888529579193829955098776103424597435347762331327901876926647505652852022272899605182188264791373760095139791089477472664106186503027465475548527900475064818607112038587505155726540994384426481802772616268400415414217321366087895137131251898402964955649586397469335646138421976616664522671997693380779196375408739155703493261057229150546216445165761935108636676672943641277503070815599951341480839487947831290992790594140506192953667752554838623675295395904952418252440236410279789194517645833964621362448589437887130512379168951107100088685716333698719881928072794276771362221892121809088752139248050527218946922894082206544902324518082626739276913066945354685716872433345334883657808433998248956416629962505808472153303546299653866737803318382568115875539859651350563414052014641671425831415543999973340809039532743447821160716424988641699724719304802327019347696797643228199873991445681214889343401835092832473414497298931153324791903468853053063164761261460234080066051029955355567987520441388765376304612413213177996349125242902725068505257974622891214980147857990917513290001291828407385108181669888999931310169276166598882164368049461172121057322998672591525137442779841076672709294739985145134429712265797705790277057559523257865151284014211811965435874662074987802548706197133140518448333329875442025588989659933707386488645842094287573816678615021943966152923820540563677276655785297549402024795806626078052941274550336853903383450697430821742951371474210567966201209821515431407151143577302511984174261021981339221852214866902721397346447969168282625943637994652914993102004566547000632178163216364864969712546189197787145110061520378134601884296998820767638165411187359696645732281360477199766937211536590089690794754546970304223877708100094165240421505889641361965649770109287623701182997123766398480627957837554221710939682445896223257783020846024483081478859216426137149232311507172130084048656636879338843241532760193649401522052223231138076235946915132247968765386976360987217578230164285877355053723109295380770938518011617262395351593970605493902321275891011314742802513559900872532307045197535086015215582911861529135269936871096077029682851524013672533235812337296712468205683402043139228284357750171511363469751429675739654573629061429852382021883705349441556714028492176955646124136765126946743655318458124779962331083513751818431057812117298862183524918667025049255346477732085352730013226610964387632967764538164669175348045648472882840859790435324375522962802052880352275030963328768752456309354429455522241016403411493986531803254783937147883826258161421058498235807209322082422934890720375992062729792797407699563472430103335794896803795609427907104993302792847586687103167299952112158620416269404998619267569180114540820070133875545274584840739753803867074616784566091400071670138919846622903011291073209458844489043979341785528601753650859130944821644856672280551171430595142176030452663464146896006528502686977738387651007375816968929339017371094549822477318267334344573404929695722448177575108014052882249453154301348480992072645552781325059008488405760173706348197521534307318506581690587501387197934395815696464061014454585522762594755364353881900415558737145031304324542909150976664391705592815311453244650194240702752105498262895283809879174629450331181406107928245819760591067092481566503772586117091617135818255203613892505860518685661439491537697463485177751266654599276120896869398222666852908514736831937511077328002505238468257286523518560629362539338162591070674896810221732898752176190259480321182440543554052784298829716803060527012390123429838172317446502666780217115336092154530872504231558400181945232483191679637223666186599430186557070589682607354931636203998262353289492844079881055511071835036639723844944348475312440774861638616590673316805199557109960971524065699160074864381969271417631444035134566522867953404104625602205786412767023756175928586443096746915471196518423196138419782374496637185880922230841368386201823461067869268266782995818673830891606000031589990280387516352618200512338631451507009627579012838754342740858736164370872342135846277206256996389569229983859168142335886976574422678871924258572916061156965446291663870944417819501861552568375286868016317566612510535648164996389961605025245000419906327575767065021674267462475776025411498535068369490919274440672340931988364203966649253896263708878980613654006260735604067670282853151572553375148470738418872441225965232617277955566295218836251290812362074405407112701531047369857202810950497705174669149097374038875394145343876653672798576679569410883491503301275781533099033613496323711319930693593278910525823782128583462030512559920963113452605447491727995300265677742814520710565175475114382719033264389118018797890196837512527999714678547820935423980328338142548845570919905302571378486442470208696499500114846678491865847664771596762510123436238639684475297459717387484458094272042670461902133048353751444795886517026853370612440708903953338639656704522899404399959793009464931991295888210660455025760018731092495554342635993205273783138475298163307463186350532854552837415032598319240466222939161362794286269300828836641136902857387010132813440189876282814019566826445013014897636218063381724680649582559127045883783533662431268739190014860980438672456100535418300636819402169255680666951635708047560550532863651941268638562064206822719423341212785786591808759232280978208239962224686084067675708461022696471963790385479607211834634154826487259589841090198206393929074750044377370993027025464937997305421475060229631959357279193797941759684300098007796542654303526549456774348897980032019023098307320660459022093578137051887715366782616262203152312724044189352268528219272657950119462206687995412959026075482142131162810632022294528162157459343876579117467489271894663124303727556213670945988897061751709788570809168723544131009478983357423324099177830441830432219355943403754290243697867609083550941488461992009581342274646307589774912733722594343765349956872115829343554055194722903671792960594342029088888864684423199717275449645514179597951389845797426198685583720628449845392198989767036528344515898121001057477573846014986339492041859089571114672801447548120385407610981744538075471939433804419181546754668369919145570039119504110835201650357817464599555427951468275280356900164147916977270461981134508842481823611594416666051471632427488760105354334600886759581493889475376731317172618325228415864848377650530537187941571850329317020281945639680077849661145635481683719863389832127861475142606276173984835480706594342009161482539204193186623587589686827798008037459763970492302398973619562772350014948786386875181582667805360299361266855854835340599009695101208590283769140526073913316356071410212667841815624747575959282697193563063215881491676937593742365021958310007927190125973613378144391272546830030770460269242749047447797088070730230960419347680250609176806381405245168818319706511869894252157081281849985765850669134595730055396298340185178470833925519895924984223106727007985912717461661176526316762611499490018332399544367870645794326578682742510518161165099238881292473910513175200752567456952377277737169639209473073882836417401612379655466380675609753245411256057072017694194035342072699320126856838687964025097578772160063458907902824954471630135203101413445195217367893612174113177324934498614539280376279979628734084756976073945166604906010624549276341364462880372588752519490140615714835020984240593958402075440041231377015538847013172771208279854065291293870737158992133233440153013019166441259500056350419088829269865232640482131634962626892378125920805965635342639517091373715043678926872950319849697957684662674107935470248070412858915945638984279661201221206883593289120244067771425775269524356658666006929161318117872031186191534879502791047445160252551551216658666496274375163576197323716043249657746434638574975432963329571498774717502664645248835081245945147230882725167074173385783700660741746204679296222099602231013567855552117456622663114398767914271023726671548712223447587517793646833329230561055726468916009719861460437089011270068220680539323099746724036008804075904121698809230548744260474753088792440631368455501226001273301373698033945563590051879155787945583212570422079714483037312956367561775799523178908214625877667482038104858364286116570817700602855912234886038193052289302217882157559073041924079607542323703476071370714321636782284301131158284946892792289634445938488595727360354251836335986095740106563211234151950796601651586536125356404499977069097658478441357320999474269213878627035078140092925981985832994007684992759485660618254217862671308534879190478483772734780789129365540080839512744837727477320499681648525242428329203058859447604401993731000725570746057253519178293274697416777148108021854153162051859133821061617403948627613086736366344154993841698834455011715614851770421548052621878383056968309849473500519723443075047556203474685585579200233588100572943550008784937812954827193015480828069537674694637603472568063284913841379858766430099425235536638010411338064117031327757548613825258574947272106798203946704590001942542605167236458237541425741614627103100964357385698557846637567409115209153968553621904946805339665405385066824647061655310246967191373903826100084930259186322108496217093688484565540584493050283952851690918600872682140647262753747693860447202316973813809922503202622521233509834240143118209045122791408802796017751994862273909237123315754760372135821697524460816764847800936498637120472796186694332939682637375544346671537690670237789567647690532878759376271842949568132913027601299135303810759679599508008433937486976550626987630198550808396102622327866787486002958150369956676115958570447156691970928707975772293427153426122496567438368101101971692537986405786186547976883528412458111005316877778908631927001663102156696403102622094518271594925926798014406734651896828900778849675997867352797426619706079614018476557826226869222706315561526235350778184036937464805015830042043225627839794768809461647435241181643217786009559654672585714898119772115937069537344943398923336011979030441076084600583334539529239161195238349531822159339605353694326723876528062221330497127334138638081577037040969665645173119280721573331105930359023328099373001502954604573522105784648189780083184377807155097641448104121570751335807074926489068326176907916960055189131527586470677300417086701638053989276390471356429162247450290050083518203552695195306722842293177673482093704604258760356524017446193529418673145977937406961954168785827128351834947902988763681011468738998342636889873924926031762151188242827865355371622775327033607752002602934081340605805610910287838659275271523374662239981029531600516865345961897439640790441799148041075397302509867229504472352752004870952445120937463712343200801526468274575587674935249827831582239408393703090991307665509891578019664784980536031107627026600517214848153557537070884893285215136869285215597202051255374255600241441999350519106503174587687201145835440473498019164947775065122865234799924280143198612488552461916822003127796777164505296787504285625600577580047692491363289450560328095915028335622299037273669952956153224356272779553603037833378969189910173924881846356041138389504888448226620637464263723043890392285819466301453629795359292152310607732692526150986458116185595748683844593414310591006549238619430331463719045496946266422747189909319477435722813707875138668013979947359022563200033285261871028401735988548224864169276497466826470275729650917860751253857290323292102527837600396207805244894451511875881293446733021322141841492841502097421759333753562647246479457432904477942767202683322103133139954141087475525794770205838738151829540495507183830493280987111089399410610726535480165400593805564524560593966608009898177122124342082762868404037480044709072831904313837920022821709398264717202577681412512146098753142844290126331548340194850780469674834423593050996940866970018853718202280612803971621859045941740669991421174224739762212999347866255663507700878578153204607737139600138593791313733707001968685259283633664614223354838179644183588117430758694011154361162027418201740902868965310707356827435654258331601514021201455272312752429464403402694441928476855912530973273642993653692088126919425974576044779758534408549948168445979172162741818968353859195118006529146806528469448062580896777576547937549147448851238427931429945265661755148237318790948105893849818170830089476144836453772776790965981025778261526311388562248122279947562412022829656071437129263060494712233505243836244118613590652892966352052056939432283929701116370594865963078146052716328336877994923717463330305149115439980786123412399533800956081390350178656488241186830765467279166700956815653673200484391040086537023073525243140741161464815041390465219273624220169226559446435066157165290394842672213704463122908238733461614386890636061910074404125811613261855013837222470151795273916333844651736265834682935359227805021717181161695400100853346719786630630433693849457141526608062291774048198963877842335363373085632442951567796401952928369033434365142603380781565461750442105536525447028156715380149603887441264544336489317842644389088699421190825786108463549728825417164699868353598133147371228498027684538700336897522912504308764805716270349995518542676926237452459394025375471445279449290437507493516509506137427590732259620008869229194370125408700885403581781293180507809279227969249107001342415336413946158055954100746935745407297754934040418773829442724869659617768349210556463726524055656031916590500480798401934820665577673805312725455565715972101470178960874415579426161862228853233973197297728929479211512931311109324294532879516744566173981609729737973726242075878083361732129573158357548760077656287110034451221714606259641885117117012385624949719014817450774198647270805448484557182500348797515543758229938089331055976756000274984309345240768198738599454939403993819134643903719893092608432742010739952030286147428552252635501547953256265260924043356822866342212765685564225072408764436740458001508167104064525767466391649330938542931813011673584281207301493748297779153352079354684332961276378706681478465249053615374071041884135537018880545373044267463736089446557780549976742101789682360005010519372721380336062022891306263013129156778885714273058728858598451694796372079924661090022656196198289534071070515483292748210316295530007253710629424581722402654231120182876164761731690635980824603024057739908906162663030359790266445045921537634093133487842400096990726324973403207813510099528086649852369997542423681911248626522790150247769123010032385684659803268725559702131240810750246120492437542948861129797812169157216070047842094150789698458797095541711472683953132146301709429152074810734748559830653741324888611626176609776126637838213528955593347669339265351718044623866795319426822256569337280041219219732569041551425830092630007807757710065562261138318233759824259918285097228918716290093484044441652901072221509548071752164004799324989689425187257657859458788106010467558155093169478470174644038539702239099453048143649099104052118131171873693143955110269670567440208369064273434864144687644818089501204701666105078028743260255895103071080666809837549620728679581616142936942951220811567521978311533011168224086220386771850343618142192063327255937327877399446110805669096060006321072665190825485095905491936500483686519708784789316218569778781884208989681505058668123707710688697676613301192750026893507516964152981136630498719170271305830881510584274923240086293504329468987539616552523125570824682531574969577520031026216067154128206617990166021319753726889687447820619088213621669661296975806649733080422591565525672233212018541260036326834040545486788242618727311360533883697332104605804852686347837305582160393436673896025089000454019665784527762747322067258633398696954901095724474292750114622932417914386076945003231732304272938443058483364001600502734126786308373298228831072597520343212835057189254501644967666248824756664127631577613612195407639346505141847570671243238705417866198186068009986414002686572181723823982214633948795046581141382776074104650299762651595576974042338608563461930950156552862245838383850486896191848630476580612221216133271116927913955633140841935101321694457766486148998689634379515442622118365961571609785533423086467246009866970139945212552326106545383615525573936182440029096347651669177056709381862711967790597597693434453966331441274197819910039480489071134728125642668479932619203079614036321620508981881788386477472411715404040310271358221086334369682779805459541748118008701143729873902112457342148336714909051559381244154886907057992295455511805804188432267342358959270826509432359408026525775346201217098438161257472524137416281042096621118916063828719059838666311031150396700067909779783993320794704349536138963387916773911050009501903262333689800021050843643175595832613226608851704648555658493667615740256535252545761738017546608135904688033914449822194166362027617263440664427101062217188885985599553542366444869113131689128596390336167987960990165459432253378645402763883154461805793652369155499811120326775073514441461552255177265825829201650214142795727588225265108202277211565468165471387904704685163250244749627265117503729694625853045584966467502540301327062071705040614720196652011838074512311195292630553369660854085135293377118886105860748256231410422245963919172085249456191876135580442426359301937518323975839701206249813340582886020034995909251591000712501331053854373146286678728724289203774630655702859066305131191717849652355795425837854287487296124549646177253397904857078409517338017002245477060882726261884642635729557680913470749416817959654092037769521877354862644080973979167790450278094911531188160770362845378074563950134135789840199141992438841282833504698667067156851876195218773810473712214142242541770099246370223509174162470907161561266283753268077905292354830295508142294605161319495785783579191045412169181622215693737896526242791756883554418227394620419490901199352026344541382531235649003940754224458132034657462484023351011625508377983090682503216032004450012932612936037602486171805042645325116017214673444166673029583951178464805518179734949149217047146698935284327419154477542974188106480117128576580020322092420652121091625572510415589569144904177240358390559030418965097462829415030428020132426724251056834525652585689411698071616573625503616892395541506135833144584054697602901981229713293628397182783695758683399202651606977278318404878044785517794310239394936677865629604579768026295680600332506616483747437190704800273347109520034010618403731267991243433362556736704132888906549456170871611457023328801493388886313083932226056899290908356167594251709550118821791813180155977246874590587514130520810723963996498283612510029334457888707863371803473663309536817087511533848406467935808370261575292029084931851714018953797834325397271164203430945554568179716447990571214399421588681844577910368352039261048622735046794456479326850855729354482233267799020819100467846838737858234640104236210219737033201577748845264066610527006222597430099757586795407524504835785109772334725128727959313415760537402711233434776602595633473826727703755673345652250550765851155414239795869803011741553568955351696636289647562158912570954563175264523826109083084923444095436666931969341439911357018642076407911200571639630255002513493570579465351066108064970981761398879024003380782390230126131875369995774132421976577461310015125771206751254315981920423256259619682639514605802526599948523241517392564810596082603783681461896860306054133627652078416438979384181084965753264461389515509977825753993443083759030776325071756032408272516454036621585229042419086571665217081296972739690018829318198062946289234377006673550424766335634992585907619052343483141826781741456960088180971078211441792724935036190407182447934941450503557429647159290307065125777338981541064081993666039017105343208635964452149888779125913389910766159359579178917896050835675484369968748245123734073222541932630715170528952280504040857767658649554319942672089208384620634260676721386642654518624256214455327556570847912305013761549746219051491422735903052733898391399040486374665740621383019435124111009902319376862304396914947287215792964594268772016351407688326873905094427561668995721093314834050091850530460137971731227754422702169300941248119948525490703342742067914697643724275153712349178111302533070333742780885400290403168365299483761377214448951928777856554157431722626196534947256088254200234215824787507709906381106463572822094232633029372053869578825264365421910258779359778538423833401032780724993955361661705454774939856814140819863460079024339794033356900231553583249283635931877663541902864975790559138368464310115078791250583281238424487065559908013065332994226185838617640485131514451775878768275938859237921208047850827402692025769487078314762087470430349004998182823394301579184563795686121096930102944473608869913383643200742018744591018147614778425576963860056759861291309622628051085012058811779398667441120760226015690260225126574093074413629728347940254853624177449762358253603347265779988689010664324515476072501817560298518362108021019121765175881141667398884142547359640662794432052506485008091602853789285040969071389483708643850793979853246997330669728954105232462788772843670825019784878693320635107296526849447025664663523291243808816470052198640075689761217955332847136504819606326344108833032914569312806280480161274992190538072583017413027256920349832902460478152795734691902372011541565536290865490443671276321484865518896889192129376111662887145611155243351162756025837463908693495623856324686340395189385956734027571859461233813466451940921120850809643584425084541964222921717356785582418054475353845428478453454614668646792247565823111489711126713440178979644496364083988863352378041827575958123183248670368310859312769469289734049148002369349149187176548425472519469108394624239429420015522370679194348037963708767875716552091504539190212930946707910237642381450663052250901246362594037767022896322097381462069106067001904676319088963474985420155248529436624636566416227250397776397895677939581339939284305645735793495538814992200231162355332738068505063049186170636033051710537776036353229147400840320874504116986441029758235147201032382682671616803667308588288784414448644407298767176039503360384995488816117791006120960820430891481584407170887552427336365637184789411988248040128993265120514854240118405019174910214406750259332218501360123810974314045016733576256399916052936308899745272101511697930378319246938561796183640282827390446157064821674434478425792019252767402425502559607035892572186835073276606244869051862830946625176964706940041172132643206852855741316499779443086292466633009347237785487240881288750325868373137350319772849924432657482026034461959131902953171703626565592990848277273480524814162550095854191561867838242011978929710447021250692284501701262343364422428423401946946252610312870554188033802112511465266562371325795283217436450117891905404077936397487619884190010725712306525582073768308509645214320941523717094589563488163355108148755475635015236550655761338062900265438237189333725610316659543222955403295763453299568849702080464877114293124195541452473880289515139710341326564514228588892151603935512678268232636582249791833098303934522311673011656651394926579085043638180873804533005392927544503786881061800982315698611446553409314442231092951267870089097056901105594173918802904554606105623642409952934104458120886093051465244758095216964166033566535218855440462273692340950214136235822646722975457154971203154306736446288326094608381919296343802335398893299879780519628828360277905477011053849217987086582392826437491449440704024462654790414457498567846952493151901788786170338857411260480908238616759473567415914328495974644352740840977820802772085952709802873970161400025837080889182965684912244833251356836313817666339029343791685633549172745154638269219269366618026454265399188974088771942697845939496720422804556772571278320200565746534806111851132880120942618428982100002571862244125241592707102759840573392425158250518829577421031234893178070728386487203803582775725744262544601877084047956116821378538155501228283419975335699178212225160123258683959523479849703268332138439439387177908362723184926422875211164885191381870119478895928767875426587644960455366278337115125987489864874769301249243746559818175789856366499654164621489226296717897216551187609761881859907159263397895137850641638653814554551320944500485792863140328457751559765739724326439530286332744579842486977747174443167629932620839203443695874567862424034796656147696090591971652172083041891198104674693734796002790338182460875640030898268690829062831143947097076758116657351335628482188236748165801439496228187306511862380071417218003780397083474469421898081409812177035152967352478087338389725787788008574577530443834696711231160242898370386456600627761358283710435534505719292128660053810827454423004741089838902620654188481444841647664339562398352262836197350975983910746273100514562719248691524776117585802359743592673087133013900391442570053218674639633369095354032348353670698813860622602401449611459488356508734250658286914060553290375045596726744400922554309663340231034740544460226426784843005984779203753990073754098466256361712153853595998644018175195300220179863670767860809568714444951438698269296868398644590727398774522844462750456588200974603302354478259566591541889730379380996633550624963015572073950251097840697144632789749741803482858409880453249638603462162734326711530429137065558072479831663206212336523676513547096828484983752920847613834512221849389093658485846677533737831217537919873858637598431893303105068060751143373688314779925615832533874828971236370772799885983227409251604987249818238466150956632527652427120099712395159608356618790180887617095735166742261478671234780924205079376943693076175310012340895098266105784357523835267000122060389855165065268356686320759382775399298424603117174064152068190468581362100204867478285195304954840657056079857789430669914331020800190679582012981267148186190650461181698592698230852728777221337027246834182556781422627052688434728325653587280645035888763190587996851647181245905358129194472722750953344205846512103965577129462434159207960837265466709459356489320157152479369453359957657746700078357877536222300802353322300954944907201688257555928112908310314485979853806942044256927543654804152253336547781832019499296124873745217121648856082972441323652894500568495858577968408351455005333222138514316424167362872141030767429063131035059451421922421729950332344520439252396455667450010989189474726328794616117144851400806537510599725357179800348560876474695862483710469696000684511828835088345805726189498880049694712646658776337454475545061372622205736821200236690865951658096241932520982859962361795094034783695324352821489580048176735759714057576898218061012703242976887850133922151191336865831892838925272283645420418396602443792729423627286459041757323837700807846301494463560884783351761548931599135265512704104213920297319399291741975832180439334230192189345361019291977946022005971495752241318885499444963494884062320430387255977889929684237465265101890132182678624041646712481650269824770291249822253837344400182655582306644641421221274448464818729480215085389283166812994901009681662675871164642557918809079743811716890592384427665917613095841244087680576728815866749844366566939206780822448793037421126751165693960188746279897897847608062764075343584867854712503104680995935443615711373864038028719462467164853574055164311849795097646077327873167111555029766488063438809280727819807044380894249693162471737590781389681843818256953449359333248171888490311996944699131376106187918748590036649003825800837346499419022816540170959619878103772864978623317224059260721845460599007926686381634029176679369149384371886488199739909136971528923298913855370019948325985432491882141176733833805632772036660643469411853210992638083251091270702382999857614489338725821171155821710550265072824742722215654261620566754414615802399741888906444372152475887690769540741954534332768135447186035792174932994494549074411477301677247617489364757356948162307217604951840831598268242151864828866922908322381879877631981058112497643790155974172578593819526810085584920122256045251524895280122804146795090321125493108610957805552141530288848904067776192493808384163676274187484584918429153928945859790858389367772489722766509696355653121223113557984986408067555894774466517258965384693663804653853795092305477746250993767024464216902995922074050384372656135841852605488750165515312446562814732817309425323352677670717657743389167847214937444586995480171665403216947279417142910844764729390354804956695713765787188484390925559032069743280428302823980066194624152056844307663023190750884670712604066545818969104822272696637313497046778372477584920090399180154039777806472188340865284709115870011605149538593486054174625378715197861206996911072290871583065684828490318842589984658139265645959252116934877191076187271966169326586886951321907946760700653092410783991184616583810045795013371319871845344409255160715090235152407867407909692736496260378980126278805204557980069921887290690257004856741012240152299750404254381763918945641167868096147135356061012185924140249776138308438362036242867700373697761597076217142265650497377589394301079017224925595579552560486476020755945356162283445437437320774053860948665636360014882570926504704151761670811847882654646328143695560055274944607500867017371332897897688028639982611466923862655375746322597804374350911860281786174374229184525310297695536796462213707107504039003013457509812879580922240126242123777993444017362725066413154231135921180797561298450147178911752780094316591528103810036192243875717166285521239043722743375076351964619923188702893560578347473963017685269694312661647528422538729185583261960102006580761009142988987572040040473564591919105903432154448137307395297424513237578291773394227633194015794124883071497926341676663563294592333267279877489410817829571678554108902363715597219104773806455846768557601992077157088185179809354516236003419575404589283221097592769214829777184063686264154300705228720375161682748389330964333648278009703496988793957307790029338477325831033255996221810147583078987147088925795082749830038249867171052609039457500657344664312711600821441309572351732928121678288541377153539924196795750098705627722698744408591947197173938362714157331485798769161394460906696249789825751159409195341088508211927597368180437317949252656690255419033623571668461836219339863679729849988389383675569989613215413965442949771168314021574892440592216151475933341655735076949667540235008270272923763478824874369792425760099910887331322744830301820723068630378052098604094997324260542647824701547648740166107825535309613236975539890959338586803058670156583887741669674458779588207905104963518441175637590359537829077080638828953185286820479399753770292225634138957638617974046271766885109195266678087151386951237272252210262571204163070030264152034481407339294583611651105667185747417722703605814180976067954413135580394752002007381474779890325793220446608880708065030424602290136873162141114466154109686677134064728682985986567595429283219767862477441421032464236425703947122429484250431251749326359529580350826280239956629770055045137709075344664382778054527988001667615441088614339957655719487992189935265043847631164172044503395705387279590038262598869994265638766244768004430223840443652002322249115178323315068074801974879920916596071245016392669501821012494362325020891072148831717749655932062571105701945425851224918298546566658122758729155465663945890800430244693287811835513989107661246824730116195851751977313278856969858779965540502976114169839241600066080285356509239828553294700590702227904659234827571870087291509768884686499915383931241039116563945376012159932300116293123851004735900365952889702047538569770716676749628770460012648465085853114152760437222246234586170021529923131066094287343206775879932881640975244771218267071651917577284467037211317555722968089996540463832030174882161979304782526980811292916352078987151385444406900336684462300646545740100862904295650654313964417458460787628799947354810994889731947214213805600260248175583340873480335777045698063598741431808732539381676363331139825362871357351957287474310296858318486411661512891112978815930169913431857565262670443772862356761183429002543114202449618317492391935607008635065758236968336741832187903143233457289631702803502027860517185358088859293819239818818129367060871684880683986657051641421637470617915444177951482287178430369852965460051054270362420962656016713173043186107452656889173771839592372672216950170989519258941990730831669261758111821532212565105362540532203584408486711900552716598574474832383635385198657422323877152340820136985371750745180150106476498601160317427455065738333044446436864614259121450533576969255245436741812392112555546381077164930735501906276249231958156516611498694344970244960225617304237756729610447716920580357640038375759546833988221958933743988731577563213305133779610854240488283733486321453562661040634967226898660216915995947435369232185861133599143784501442275440074741033866181670673368858713510355877779464004628617821762355974426768868398581951177657455954536832531794280136151982228719931912753240302208282326641443248183710417749584945615551707973454740619458605392914106348880212410393866511846769612612785968086504396822699966533230880923297593253090447548522916999715539986529051353905337617188347649656867642939225465213123571306858478117318022958404757333962571922139302660297618489269944450230170285592175485394472884626179052399524810065664187070799202681879918595957310457084279673637863748004934533798224465086229708552684650135597316294883308089000897405990530731076227382427244147024363191629627737929135050934040446502830151117586771089788117029675931827648484145498472346663764375739304339120405014620357764473052147288736433951489389260058359841510107381917838409455828262991907124937530972433322900735181377285799243173246225109757417582434985880682576949459062470372313610507117495854907406987554594872127704267068117011623919850242812983494704677095777542896189446433854499137796772698687209582957656914714081513193618513431256889398045467326583858860530951570288236318411463338348827402251817976406818905407407140969819363630215997674311121340635196287768675906201516940307709404510688244726040959353674254822770291125575980226843006846807540830937665734066312932164863775201052257480108977559894984000160452928239628391119213960562512956580399446783425655946480922854513149959696923148401730931826394794111776123689166816968738522176857889394284359406454274539322466088273757143209173136437726728185108798777044142575006400562373720248723851867476581851420190172730318928576122759257295879069328230351156345064416280025171129981745390482428884132733244629662296613386246535572026480906717146358118489853165241284488380074403333053838795026224597882316176890114899850010294803448556953716871900934882490185981939647267245593033431969212534432936824695476035692550019900330654788134881499469679805616131957568418418156684180917387789399027634048731842963328425459318630004617765022069523935466338288785768315047777353529311686377236080884112208120452501708571368993516086448801675184255924227998489921250305803130656335802539815821414714614849603775598713553397075019635659301625552231378909102213579445590991017996842994262046779194308112138278604417894793466309710038333450745449914409407927711999827737437831765727905557928322930203955830199992672218804478235268515215185280195944875825758323596367732362936650807777291767660193655356618001093112486948940130926442609866220821709780678996029296679271847266861565478487505956759161791779892887062166021132494196261030410088100661898188967093774114517446095300501272897436335954087037335981062654388727332487003232335134003703807572688952620120930728235215664525317946159162153677833856706831778512479103130654988894525553109945947693996274595235507544077012978184154461871128541022672767451478393305898298880769901753178346535616332248806807162076000968325694653628512818661892700082711502121427140999869306432125820921814941281487645112155088213670643016488642281224683869515523511439222802087122719166921558511317200670518001415355224505237385428512676945103223089577179725465340234960221932385229124324677029439090631589388448223436797737466064781854013108277752388285349393647257448248918703758408276278797414261786200772824679319298289547952124751716611269680883436756747884019305293070255354675771427154560333211773719898440218934119213873447624754150312977840618443763159448766229083090165372820297896968712905713985400935047481320606788904751644147974793380359356043334044533754353850631395800361059787631735351801149757231182334703172483905268829528898853911031379993626591281781565546726747898685193644471437605521171944269243685514088979100800063229609653712825150838243414905222574112970971061806511723567254760119396308894405201505685704928397951486876117094022513269163091543946151483109350767545924965603463849535118454763521607315994050361415273213378732899332317300703857199765426412053930696035551554845515889426253182852411553827684747935820893408924411112096681294509787939929028662910767924445104877072966617841277884194088696760526339529105352514818786159352463183975316015555058117720770658248653157929962473761645251783038727710064312379010172765222621198650992880869528074572455411839871200644921716439085109419459942772332925628614831320762933919958750525711182557514736647971074922116153319460570897679779148454135916221301695988687425869492281006371795242538131339857909674522559411161273741413068280740393711792895977069377349637362913204495251665047346587656627195640602860870257966077730018360531839468089510030764116713920572877544580054993826804674274664213774848660361927238482266008798455789564522487064412462673885139785167374690461726787851286214798777314449481268992048087567187551424765208915552718805311422982255504171785991014107625809432472203181620432575752760545179166420472091805952562729467824279371181316584222526175965126750034516767002542145737704267232784600821422766469770490800092923261708469831806775859770424088914388478820631886128893898193290828484164013989290233042903461625389577389137910975594449419959151038687058773837008750891348970891096908523096271504493650572709596530966978427477507538512525649722646387408275359311936030468785267138468256429636411042784523246722798187757608819583960278068252482479226382151730526041621097634995035896100558561740555268176740702536516057494077072449973348672225601220066195172354165417865309628854849127061796771242500213221109709102513692080625605054115583302579363848262393472317184463055240002325712754925820640768734938177314757715713260882737615130258021383846847826700598789855785578624061031321331872332748779151218789866530474746522173197292225120570111287110887880747713006824861233391495620364117474965416781217766791152350307615783993486851032915770588004729556852062684178643087167486182243846620413296476604400633713090646385732459465920572990482595336369417003147846002316874795670825263669614727093164799674560812956537536071745527480758055065610008684789697715641192391487124754074474668355523348157846229134071900054118780318145182372534001425192783015086701849399944908159580154033144542990045974198597503294765347730656700185439814788495340078514206432643802125989997303911365788741144864641208903033637141329552731291121395644542687911654366958833632243160812899294426165009948304917465868476286680888933190324415746066112895052835351710385751262439794699013778525286579673991216570832231616043959985133217061508250243827423904169349666532881143955772589123681339189339760043208768906632940380192347281595768161711607780278483381185904434148329373288826280926058474336211691662775961365873059448751646129092411092477428077223554989748671032769696923159450382299194144698158140629189074052818486957295052889539019050240271591437822334125124957529373063881035148805075210827665108998507262898488126876509638960282786044331541690125255168340288891918834953695318379093430237407568256425944453645825474210258575699846579483240031886396385865358598303974194275315023684240383602486964463705027410594329841907514761409181971199758898739724049886763448368794104731381091649770637680414488179798316545980903782293016562398356119610303171876068467171676342539689360593659681265753089539493126824709402533611550270447409100899282231124362933291325310795447467126229941075120053294026825857137622722425458751861604125696374409907538998910871337314412030618308460749734221874262272726302828654344234087723891461545331649165411128338096983349558075397439887778664207501806318561492004013078319162463889304989243052321429025646499494497437779886557958540958247471298442956091667099439029884875992233366418196831845369560692820908122042256514494468919151709008225608543674765383594050736166099011456619702368137577591718548311970997601971418021157042790259004315568200894293685788646446650067838991720754144582094319086714430962006003295583227862321822962852378340785075047250612659673927014844377299471957699125324109954457156680755280304809786927372786521354523100055653517928988510986897277440225638378282165746147201182664554823535001313100870576467428709779072585939062550512020304478430373989326033370665705422691788686650342483545353846164971321485874011907707194779055962780502866371693025114220460485202787688250022392203787264418067403631459013040882583233336606735602398023808925140287481163798744626357076806188049202448323566553491863710272282658385639441545766350825583093110699383829249373581172498926576515672428053721866066137026652821290931958314992421331711025189603933948269483246018056055231397985252329139247748185572493272638287138300921127552599187949836879593450703293516230437899232956153739336486871767600374667465463345256696568982740813746119864941563439306226596766331991497546448840578230545992801034091903813804734885424290066723437587044891198048814129853497318723730596483669789765653458603950785717309638792565529151213432475204907328248254103604460889141046223316525029683839413399438459162233321893516215290452559495284210991249253532368246547666549710775995238007861872368056576791880758616989168185475486540659899822708270555957456897394277323538528953167817136557567231190818681499736093439247489861968293039589452478629253896172489605343251896918467958486495711684238025399361703413911447743841349427151653657136968171803917940689562765226277771267522870838519050211898284137820554686122479312237251293324581501336164611117570341915451700752594072478326361871147380614128642681723510094900416975262089891319685952782456562714560791457372118583846243976907082519759733824221451181240421247805024704693691458797715092353949556434145881589380004726246344005475444632581455173613301886078392832291693831169567981509286314493085325682915483755639339061977054283645760370877131543903233959571610037913089662704316053246831901247398761789637011021717633081705145433595572159890500296063538438117235969344853280550562556232565875870444449076809630320446842926327757032746237026456722708809824341240109628830259417032713740033601086529971491925825832413056954669022579658556468762201175450434164335289713644697655053358772919404767610173288927519168819110885526171637243439822584270009420011391666452541631723667695969028556355354300516839072819860939264575863114107742827217922498830162219662125506667389232145721100070682217575470986089595927008403173460690749100704638490207559392890652570584706329433175076904262951956499220194485271450607298073271071682849452601104200474974937818569737988382405947778166019440084899920177634985795490000994827891177605478348416119360464281322661015165685640273103935696888144304094502489992145129348457665467469493119311223372507586842948689839413964490848778096683734915612547638926604049910988782148212587804095831439184289574409355670493548771086373980921781226086007118072317575544007544063069797322717461980267017281755351059664767613881238185005069452623714690907645834763589519797664883400556123166914607491480119560133583751160831480634274498773376613171707352199861189816876123500158786341402573495849026298843468000736983980217208498924847016629187981995383302262629053349778092360254918996371487661301788056941226262670261049248702803586737343183125494301310898941985980812656880293680211210348457843658912279065772372576042086049830796593799782241083085645005336858435629520174486738756264665761711221230844012640842255321328322132808110859059251240670267408316757487036415485100274261355856103862049497472214624211397975445679786432090798402543764695101624880530590290562924650208723811731316406088819695806646916948123070700431508882025543120730642626466620695111846391204619416638625086599659799415873389065076752841537383513155934449325538638738043880459168667763948018110102485312289513974775520039817315098689541035586585891693692509554673390898402706566580153203710558239103305415810318601872050728409112188420131904764759999541997124339114748262561805866860411896230878852328108510173287922259392277219930264169388947240860688491923163655831299687050361343055953534562374002866379846407890566682345743630594485483588906305867733446653457321393924136154440113163609640462872676160131821538216593911129944696315480972384990380791581843796016937448491669143050158665405480499538025382285849913897732148469275813663241788200909762428366022379817153927269080078357989857050023796923692409708453313814484282884886400863538236112793167626064951294282218613907355561353903763114468458362811327276637880731551120740338289252022964621787136262843991590453567028171549999574918797802872853546516229551019203041007955247795211861791440156010673643019670783720650355896886586664488827850829561748934034157882442237114466221419596061345347596947425531397503382618838453151335906086769578710586309627539805283443021571326018264550633510448653508849167370941091727213317888015269708859353702839611103728176260617187705255213106156217186734787048908677333005476958525466554877072166569247505522931471277077058838692016031342703908996283599464694632588120820215023204328125528288819573305380240021790320514339593851075354570999762826885715623441531707514721636926468074471335047409049422482834499239875520397174349344301862273175193251543324330261493353864005030159661001857176467188296766139785996915458779659082057355045228157106587558990220170474373459361128381932897760362258288157293831785664767083353539333312675184494384196800842207703173636940271544208062211122276136281447486346552854703171369704340029475841455210044386449614107310206301112117290185808944701691433968633873670788616693680115589965826491034287192357913509875252559969094282386660983829306833269422587132269999330676823498895184922664374574618977328800851629879381721726720168712203301982361549915974490329172682207841718677667691005020570877245344389977799785389129632033000661663127121278751437586184890331646845493281842589115473713499297715555435900532981936907655470883078653502938773993576056087137806172278368536555237756312366306420435159396718842138400753398928640320988362392969511583282012200704999077650985061516179429892307691656122379197082649767757790098137303190978490469801493659702764218174483787784539015411947738993716981325361781347729234727499503113971702395935597637385219569136805787314077060579844858456380119436745109726664082749324708757119440704993051521545842063825756806875982473224068582624458387506101826044401150285433071900522892484059086844133864458139213654292386379158803803278550333298878147392661887501814908985273700878006090540871983571799327694894976341837095216560416252476639296721325734845502704263252187162114643615699142520401854262662512663585529039317819815099514121013348017216301174308678675763877109939752573894159028418794950882976889164141701906296876851908528394606154648809144034691501681443689676958499529712532033410086363912985469049000027609395622565758666810716721898125067660034569349563163913961819429903588289457666778431818660698928100705791036461969962803073634775968684167126734765974413336090017112179637473148887313618732431244785046954621518151960874698932728759427769561378741660692300528275944471587413195476532002869511067342499125713758980323330263104138653863039748078417292659845668315868679649017173705673015040491916654594069722789326418875117586677071156333359550117929346690660937554385984581323991428167587535243673963634586744354456140606152232477064088732815839557306447060869291051190435898293997194462320562878507041679491727597139125155259642211025537163010623970819699292473155203334078322160901833396548148844883058416838340377514973484417417718196613965081818680644764525238565210606935020463173911725766102600851229651403731262381049791522330649365750512752894613320264245279195469609416054119287613389702809749587970895590364912683774691320712147962072826602601708035282611524662466173166308777982018535521779593832785260624611695894077550334615623870708334271767324686399136498291432508359915469152826925731971269762052190801336281388510071569266824230000979379058313629367266442386850878496167335157620756454288342358069677295071524294225780849810287428155822243352820871195098143325118414363108509342738189271396789832330913177727021166441399393567181238353350001624252852875782928862186740233349648720017566081963206972249649804167386213251269761460152127277486069205203679140393386397095283538566958469587644715814444606277624398692389245453781160912774911253982817115080400866188501545057741175236000462557963359502056333833836188434017057050249539121913096155187600299059608167240315592604294429632617742956721911972587925040600633631662922639820209561202385060576228408421895460902392083958141840664424430315230709165137746143752657659463027220553250167049866134103182741123832140867416169090539369966256305005678919597419412153687489983861400219984055326141726003445753126307498376997428101801423172614707568087836803492018248866418900088677564792905957401450389485136381636495580533327806869948925299294998660473985709681130307105922961397821529332094736215794490748287824767825749933826619069891876652609327629415308948266774737082233651349658049252704335301595504572750247657051924168057978305213332819106999599020121008166387177655980076956587637208226805297224627421166885601208089543607130713110218400157201510024746044568341330825402368910130500247015621146199288753689104537737655168219797895964271669934247346556648724895207258265247323330605931242532690301203154111481689080736421801584020626528225948506447150854847188960676959704644443498680582899969071838908945083813418736390328244683729048748823736691307583516914676895353865995737631031759376669456012833601736641790971325791340324683825172435165945933731398727954057962953118074321585633318581056366132336155580547736996176213865405063868769437434157689154891017441281644548659577077759749117774326848007650481536278929412301959913529827806437297067223560677502287829741777708732719172823638420091077856272920700439670001216208102975981124033047671534015592570797452286317927403248187151476328329758599575540275597056732052389044679038528869184126414080059866725306116177531609770818467007073074988979251085887212208297835576344625963322341163673282135607485568333582770999039513236725546565189033207319498989855982539709039987751898257639149058209621461429403915898157741201109853815375882725680697142069155419830839652978458434828008570443664619915077717403289876540805055486347165709057125761310406178497650778703739375627149226658495779751765892495102717769036440920003594640426504829739129046190211042090413001259882312157350004054032776392905660827280000593288126445427142918998776415626729847280374876950166047663375097162725351455122856853875932373265821837720626197991959489970389416564685286210015034884335821216008759367815598639473087753491853121618543165108310632473377315715727252959955567554136699278286783495563192843650923529694401591643523105406494005029682611501908814984778125087238421261955265495832430619883646000047311001947488492113052152734384235226536775372159321328297547302932930012733615063722650230684429523543446068699569125649511406079896034140372049413282923105217295023987142664364673378424201548693965404521065215640835384872791658068848512145033048889995908906844311747788126073115698096515038335573825259772834928751762226658336956502077033464885864321259773586441191220564939689016452796694944832871773551893262978566416306137232356760102431993818222651954866940425624046123375208410720668528995971437746463835059026999646303285944269619019897744618331927350424746020895947047341959880649245286998146272179264744264198412613062059412134160534830504485546450447170281908860479901930716820208077683530333453294944906594912172270363676788482774237686472263285802623576266774757205237097839809512629340428076122572405995503118860764295559357045363465494161047635398051562894105517809538170439980653122621706601343155176259949482353256224709819628513582905052633350983569873835842160081316765609389251525350469397113624687056294625824934538420464766062454986120684176151369944222221246013056109378158883022121815859346603168631503256438047676907291860360043480743021475263189211120426090800606797940885645098438501951273905614385887663720515253516526607540126917574030727296000072341655807791799349188277638184998361384120121886756946132946506052974701210283287810071980509682891227759509076364607937668653806962761340254504915387910026212652686798979734438888544091636521374375947857826622822371888891333691733285975576474405303434147419192305271216976773322387248372163934757035804205810717233371224909767712620043990827162992692571467612257082166818430587919566417898479026001669414225219819493253662795703496372543506257478992637684761898757322861342834769503512893355264930293497760454706300132024492594866424661943644624023022729261528424690459867635403104108124932074425606805190623494521147733432543735848183846155468074043089189032892681304157419806099380868098886596877064708346972229212747958492072669708741056425459015090603199289239483837318450389541036628578474721780322540654831808695743136844627398317012831986594314611362649391229578274976131240556634707180906082028440346137361916431233378923494108935368033996874007812207556959594211002068048912598376170886114489226057209826568922479712397814698173678919082252318897051982677004294290732903684296195170749424086324777437185106398211304697493729371660734569656927724895840620994237622951345740442903613459559853199414738632525564505125198866444728942800179804775608133863989358372090603144893371607067816657477179559768582111634247644177824753889999936199725333418061316329367705886572216940566854032654282024299806081508942776223249108582486627342555333475398980557156518915907982823972570242036158705162722592561740885449191913722125271957190708298175091328943444891543608887861968806941602853135178183846883134417300336430738578645427889743727286891137034756761441087245131248661245709921587395834368243385549526229587774499923106948216686545915601003087397208874702354724530348919078777107991248252215852404892518612812152400907062804790531227704038566607893317613567861789738736124861981786639888893810836613488119471908806325621933388334901013113231152100082297775433096679679280660050788429351189514695088707494555189382368384296992354586552800390171321108324432570310504986316396620475950809783415445014388866626683622793451285349057975998453068418612269891671117081943501550109405803245164467834957152270570578725609931023691398058375662217537250106486633921649816583453719500739359291683171307986255946479055628944363604134373736414510282595347213451735308672002010564681071371596405998149358080720860723523807460078911581140365505114866988272399028317107992420395696687055850302329393781304075185290113734915874654312498368547593282035776144070978367278141769674467424726946233714901110460272405984024316776776252259284324651053277157186892093070813601037863181144582624852631082882493104457046965649160990677342829331327208324615579360160614387300242028188204615664064851087904170499542791990052264448801528887607281482923557724483890976289633855540443176001749418022428923169274073261813343258246044721403687836740398861701275692949095206648290942841779227991390524390108855501167137477207249013200428068889326086016124869549017721197242339562254758938398202200944075886946308655601399889891782770058717544298396357365331067259170717953937309032899676999543210939587338511891087758040895267907552437344397703055045532091186724838763472766593624910389513413373607786469694567773962272837159667364866417054616164009339767435046992843112522522637800210397018985758604851144196225059963479569094421471034967373189737978793204522906104950975168224946589316374415262648745757583884792002080255179919150095601253483245543566559827576390957362895651960491065963461806533809033594646005792726010911264109660002181945330578490789826702447198543237040842225253233490859859520106166343335190328556645791456829058388050166425987732299428001148129254846175022308544682240456246632453227886683434843978438750599022204559743086701027164708800380710026226381185636569894171194566082847904721138689702190526179093217335516812472676332281695875099129966584228798979692516990462469982931216556110731756673633050946159834183972109207499264567699103970711658749870820539304877934331087033146888988426773373465168152678182588591739102597525733838566943045413162907417610270556739785081602418399009841878829148948293873282810355407966322383300681996169510986331523818501225738623583436202067200479245752169036751812268739084957071922076305759471120275263726566413681584687267877711518161559356396454265039604868468110960854989325018528239777499396722702201067724797930239605751547433053990922565154623388736059990772426416431791812019413014456362637327936676202708217124163218566481197925721938442150897507039724312914623265656211562123595066225563441253151142371251139878721235656194902531603150733699492540439525976843476734033530293860293585661236985901074769824398652125279998807830867445746150734738287159227008325495309643629550327153436339418426415113009680439697907877640686032247066967915316541776909255675357676898156349316999360217322641502709125602775263231321463668754345964797932083152717906572840190865427229228616254850120458759068629908511769977096060773681938126647442539658191372579631869422966325623776700687856447005351175993993478532498490253743376748529853595616602850166300586489436982658926991517590474294355975124595035528868417851230651367386856444613213795944958474599231482239980503772575220257590377701816416238432295147824654807440101290644711025538635704077976216492490175299687332510382020625087184722487120992442898046237118797167299389315325318356949560600382168507946908554917214562765577525057500302393339705636473590180482460652552504010398086773173762421208158951287919684017458024517123839024202339368460011008185064637749002200288291904378788687907839922075261145704948914693546888994576741439212193923023424545765991612414200452297483751212069287136504982735531225947287315119954029294327594377487182110956641892768901668960506490876637904811241336767225599156260521660228282338930261329166319468948946711191708492430975714942922901832105926495153102980866172056476946036383831021926053987556788465960364579766755133609503452579535780556157698953644326543224875648488573969884755993275222379629631285897012078021612349378567771139167053037610095945426107083962739424322903312676088410476200978316649727978194190195082814328125482570493923416501061696980225975046864231434136402100217051288095341566146592403241851483949313770371316272721600847984434434181031271817745402444706618345048286469982011137309016049674392946969836649657251316140985810279225946162236418929134017904226634103637782240397514778551725597114441570054397978801342952209571215755196344091762268436423927665576925811026718916553420869350245107362100865920583433028978576152387848160561582582754560512239818171143453429005261387575977213512703300226014296834422726718307652744798499397020796499208774362108161479232466406777119777797713702180335976174871906520119747029416556469926577287110329955119939493180012589900636538167955043476129865186361288845498996199043708334101121135679556968536255544484231411468623613037185369087115056054695754209233909881578241264739364895082819898228021625695644259932897869695533005844345648142509159642582519322246548838195174766493500790618066866014580641301350685953059479513503793451380202204149655566788828200751763329074284344647445601652384907547032262626927316103847998255190512052571200988626526804076522891784301829311037680597145770352331894750326359105255726622672657444921328468451118372862276740818783656161813510083132605849058333094945327107219972995586328564385934367795842680824597800509164870225161719848964407235772851460039050243523434075443959747243962521150004456903496066667953057253426168013600435183780378441997987989748392474732409006386385355112883258614967939699125365891717398263018449547174532778451559796272250917540851875080113977845967255486771692207975976543195008120732808930579669527296982829897540133975492150549072217244748245837102396268859953775264757224321070113720850206711877712452229340391137751233285213882047682268716965083968371869417806741826853603355301356199562251684154683637580085462840334088609841541974617180300117759436403994215458645266856067510279498246760031668222369700443726178830833614849706583558386234952355747603654061399129825404966321679782705462321430275181263876041430683238819435052624413693324782634828016922552434643239929313599255192399156960118752986229249471730307397035296708163671437693635497089110566505647247731472962153235464895136454883923584848681944490693459560217859806050132427185197300411786840751027452163991728922648054383952138970035005489532073305512833012377044488796672717940901400248841439737282339006297694249260071248852515345394846659832452558850111798837677833674256715920799100505129607935933089334029400942020715642586100651787947916090706014864840610940258838509667650115232487485134398289298096703922555776275343570643983172940074417217145183836601264328559770944187982991395956980434364852112573987935675948585720350750193637260023720987641383499555131511089981628627115968469007054158941513168003348289563491709406167233079097957208747058988446327590749885759688988690394468716234101638645060900408776287133384725109943817264427678505020039856878122430118954392861117781083214229727204556801653910473635209479629434404140211796081080340090294627831198172288220847776321464959959533613231089986832880369914067164420731846460827047578622868571459731395208524500107947983171958793983419456977877723483187620774376907871939572138697564577896748291916375323890909945340009717093565771222373121490356429733825069914102047732775110019056699742060129836789542184775460518181207857875863611433266987686636309091567493267335942702645487378868827946951447635685583677961522616886352857085029364104382879384299889762646209894338266192722194723840064680390012472006784818587493724293593767606937655195748863208528736117474638357341842027518251593995632515793281748313505822284643575154896033454491039108863288729907600135927151022933450034110208339538124972983371026238036244171659259457807827444687996036423581858071920828378915840509356061584550003916275302436075227900414408919963374893765994280922832468334065341150136316190003389721219958100399316666834799811053599699057906085329710175810748607519156680121255031358963789847411651311995569415867062956047340950664144494156853280114823527123432352881565814982653214514222353003628656827999584731966773015939353994954583738450501606351068510045750353688458560019084243651869051770193586480962463140637447398625440486276597086939882123264942513171244085180955984933484762228254887366926519183334587556955484681252538270942945769608228406742046691459181523446898948274208107455545998585476926439854678345782814419887917501038709072654493819205529147591374094220182756784281941696866278864134238494795899488407379200361896627856054789166215787924101015279529857062158324972439518594903723426895475266852202600375770479533222685283791308674660765478214351164873324803655533253164893044295613730371731559850146186316766777474230011503792019542548629968210957592478328587858721261856739649683103826788780009820761289214830406985385104792367051287698627899861796445450150915600390860873147338681298336884329825104624630444408694844698469646717247873102288323893056565347082652720211808889888976706003096190710193617272840560185231313286368750531333407579023165802958084083247375078487728329421484006071008233631844493885526524464565321250644223924060554353045236434369193841558291371957695338860643970113766253686489067411504955443758257656552295970328533935975530610078599503227343097890372778860660081083948823321217359812664720146682869401631416505920000109084143766792418924507031600560685395581282402899861689940911197756590406105931456577415725729355125918518473710817117246006863891226306114078435010402576000092910731861858201192959681497082304970974253106180053769006504320631963500310444025763530106573609775700266640296443826591440804239013559265622916369479675090503142423320609979034947279514447984291702338434369982676410291438911074051046476253252574986670277055038984850693641800351414442463567673879188676664332651269899069510931277053851917336644324506704979024050902624365648218287958600539817456213107184177222528956885002125442015866610090789147788425677006367597124902663755255145410194681767567436726768073471150201927418145523819088072330410562386189850190831597997601702746250766056569485899307333996688149738378521329192651167371232042639004818432744167582646424909298398295654654437545109212801485435357828588642416237333830236276311955999341717162459409269602116202456144839521588796947475990051447734058512655121046382051692563111047771692130577139668695204428654894369982513013824220381619809777160187433116252396122746079812101466690858509620492372436170527404059619123223782282658228058382578931084383471225978805862970644865804151878085979824074166414724212007412892655672992902381162952140835138584926886291529952443928207577472351613471756942669854490495208522738044158726203093115354622632200238000190678087611709982594403633247496876661498111633680193951149487990624749155987669766193127865096078723138554010673040473057111967159180654652701747054935903691837782005167114605285941718635704645718652309213703905887138749631410004734491714318702020442993343643219387752015298728229145622033812882896994451332370756050929401699884637646393433434322082847432142708761376997918899327187590079242186696733561908262097275367038430518988214007175500142840807765541746184748946962278145571222510767297075350100152172735112187342847912663900884792525344724259450796442219223299600405583315344287216683735359772775616902998507748598868426897143382543755562389337831401609783789054693115079994585145994380898391551399377640590365457956914608020768193734860907197262278716986001616828990036834535225630603046028457584152058892348119823245435946198794617387215089048041678211842191634694874077399088823005173923639180447724828509292993822146523718755004930800492729927957675187586460653745083389402995190196098342022523699788476379763307714634459090151479344075273741653071629580835678275345794382671939581093657567993153242530388684145735695923874634376343393646642767220859842551321118388471737245757849230213845532823999157889750204471823416757827854794586517733336277109755574237749555999745012608034798011330840389672247838487202110617872430413447693049531746430728678428837592448586665057023555456990797067884741608395073392608621564937363776840679227835780110573276156018245835262040668876186466674149339623082471070336671619776446560392026324246716499982983197396144506319495447028646826977468602817290775563182939750416285180362346434052893368112904901986075363972037133134609899946662727168738033520676650483854202799080175683261451887672095043446049418529835727429479711455165282111447298369698939851188660728427982039875237017484130069916821100498872386246645776693306544364807243854993324450908060573147802556274359441437074322027841518769410660581701712667747822962677273568995764008861250009929996780811836118392174888347507983075293119021009930995690068520224077165172442112839133940586082795052489971462746839181025110718627732099004574013146728218672890190243559551063308257956523018855891950035573704784354758660653102645210008401258215341784781397051802809889119976089502376182986120805974686415810483398108686739421830618435802469715244369161438280957265666991658047357982400868273302360101229226431036072976459037914325910772898383616814230635365902885452455980681536274880488817633719391050570237630982876089971560779434503019571707738118723628315419433907741917177129340770786171261193429968140319380961614961104106737509648799012672339726741226655324616166018451752026226332666543258501671365090931357780195701500899064388204191648854058969454052433807703236895258245537326306816886146107025283834280212007616157060506836060913368386288886049765677836911140920191274949665237019656979109829916824612702898245386496433301313222361899672039583328801133280519404796123975215853113740298355850715871193362496910734870701481896762477131501514184065744737264912449867957112505509903148898101139717262992985800932720738460386992146221556358438389091810068080837104906655706808119649546385449274664321300135167957078385500903453467945129894517426880388972960394757116795239903699156965704189653844343480351236958920836682865672485560503650674352811489202108202281728573582365259331316339717971943718997639110065772285191994407342114461311646633758261576991284718579917608645349284551031829595260695493626178904885813710604887167170947204422513516530892251505025881497708880770332432996948097080764614479465725262860687250496455989535538589083904427842972155116194568611627345996369236403733568169806979745152453947151880769741316257881073788519444262346219456844576650798495570137135665406129419180109658985713865446139160800750348529454826518021756122663190079898522395407419759676070110650981598980812618699064795003236933624377586224472374470224277940517026334585735526445401348340760166834941248547094481464869279885776774594503612925220065376878574736787909723132040562500613805034566150203676374955530280899953829894801693044088294021856330299566041989585817184779018129990433757277202056115202044004242825203643624944109142720951202094782777005090481286973633985646490679290266666859891213965835801972022649825293606649111057305980575920180108061594007368510485698752265106227908506065554507831490476071840005991387456959506926941176136026332875680027530400105875877765065198437239248226660231252534303362482663212467824686207072676134013310238904436731074539825450207444069206385209072914644287818166511772433805823853177689067106179649674539194797466641415759216987390852394542946454922043793280481847203519978049788147581161603722540059574097684203242767618445960625562659669798359743054820346457852941811794869439604057735334643069025818527074160199498201100584271084092090008403293425963156457096310766194221328531360257267237259068000541111903814661527245553524182497368164742607676445664961851784808930962142252933957846448294713786201504062558149980749359511404840995813737658401815460442423862814168583244064707380936952533475368075982686983362166789549986414576865927187550954821086764610734124968483566957789707568840637772277503438803837875866914564563641821200519731534588290577439599786705149284707217699339845064292650005289545368053889860362996218253803105588068321184182034683155498564315187633068949167111409171894060444098659402647056382900830102971043733885970520780549078390274203190161314665646223248742567152682979568024194938744371950607432801941125450494919506592171685063368533504969816892587722617732962339892255755249039453625088875043480404926102907798364241844375101374654937983179226355469298132316412351895837843004578893763379114152488440164932261170114948995434787877454713322213825486070892612585623443072860540313573472696694612808771455527160741618969397796955150422694468627634898927794782104090784991859689621500671191825222306714273915580725785361279929465502412788056964282028160233744569390356478718211240120019283920406566957585053704943855919387711946780614099905478863172782759956476725757710652940656612192642398968557721628028865779687634629104278462417317715371990015950288443412517027321573851448920738280475142799400724655103259346593355620299634721224433863717722241707908832992229892182267958538493614102363589249002881881761449077105066507307318858044188014734158458497314068165960332397895656852657315816874531485268051044602737185970842720317405608126849914465809761274598823329888968450701918072347163467935620926017849424002381225067041925602437600927397376576657380743474425060718692810751295012345405108188230681686549327951861166921584776735864166542258346255654732094051284650491092313780168086835939705805458115057006550102109802889062995867142377487227101594343748737358188728738257273958180475550890916331913220393708766912999799228484267183754844746215766671710267323665377323123645593141845168336478343168463329083841894773940185521962593575740737535941512221685816615602759755488804904527325204884329198420689642561342153573482340792725827072269582870404730679029767186141582072087674653507786438206449982029821515688977283316079320926459837629919076105277829081826555399643048000694347302651777198123112554686861626847106780158562007954283485985437624093584492285203679230776540200468157874036602882849100208819693397707362686731015957180910476707940267835324366663175300319099597221519108738785310797031720132813075200653707880871057890488312026333991044817978950267112802486726181888981862112923158265046286101456210317945578548549191935272640118593265732778161993972403699388776159470325190891100407876782705679077178489989359964311143780260494997437204982294015492062880785438577477961916226368597178337218813650324086019884294807803705916564635031564035287470378603244426023744452994525273995680271810366718262877908359158679227253014677132163710581929974208239577466912834134378955681529418636209960016683555085552735583146531292384640997736783329759768458216772266378940128707363337241975448784718746568843266417644196879126719143900553896705776101048345723006856937411551967326303522275071520432872594292959220474798093482298555707777242316642993956555425426609518787316410270962637445954401745377172478593970588401808169449004841683541778732379629739725998247291116062373873663523099171759482514302172779805773186963355058385487267871019661225635004095472269375617131461716806666798412302780297742449323765093085137605832679750588411398187846104781043219503179901849619804081659905984139253160798459289087957433736771575757492075566062138967150359928477457618785168200986510180010712791820498720422427001396223464237211338936210720105047239784373865317431170882981021754247785663027344022286832663601803954979533228607229111787214598509137133859021706009379290707575886022384293735233238524963662063678842605805139782074696905056197316280787104043910936192555158023857839908612215802676517984086835536687294815133198179582278522935651228579556523081359346358433519819221850641998988864429885271436677260610689348226228897524781693700632263298914748814427611431117007923481898081630103593927893029836726549191408042632330399953926740530195605587160961338123791501380129237349132832169043836733721101943541453617752214919099540009864938312123496731560940270782326058394646046336663657921254039165497161166976453994676144047102929942060239027021726492520120937696950989344448331510404523357432547804403697306859729793257400866793692065806159937423149570723215845307191236630001726760958176453974936368590372956500194722010033061234388743368960405436763493014339997150871713678707231683310952816634113995408922729076956473681909666083715543417498230461708522216604346426226720696612918952175770536994148367801520206175333358607665678073155374954915270136417168819048536855418932783282832429013819578827330826249625876785003404238693572562004563840599994133902275670138092043945815106942357225916348095468275859821644021358080097260777535855107295804077029221245719980944164139751288966860180744578568451508908780135677434748988046292684232657764040581161125221186661499199052655689905975014726605874049599475990446433335022727385981469045066170429197088036094353701714824229316405213075297033326537316778339000068836167503651151524211425186256615093327506376629499145761521542476840624166825491081216526982024981315739875838458953316280448085791550752812286066949387487675781580997213368624108996559546704930586422994470638481404967797112253039748374985047646868932065465934984440684726005637761859355267511524627079284317149958759444662811508841960782964695104746642547559268367652351545770637016217641102317727214318875299024483631541639933567388834923790969915028832042811870160004119137847175054012799280839171238933326025309085008932165220695292448724039582806708851774451351006438147074113678021746961923649945584370021855787336204095415496217205010173894116409872695509369529592643973302418201497835208167634570519410513094319555311729702704250729018564996486314679299342817504274604520588814963941792189062626681358915600344384206669415248926044515165208603881454483558096502362121416843958920030734022115665520081811492481206038796446858158072280569543784840650374527479631710014739847976752351102979647555148652343484342263718743595810679971934157010704397001138674955703542503640217252829870064701042820359731437182039169286495152842290313873118020318523831591900868870563398479245149582386646629919967639047411856883474849873716018318202866941877121055099911910732419101583798844607242064878941601581033366481738584864909164795689471488572810198088092635467467454222569886845249584578269869047136607298486510838305436226273029081917656175362820090707330576757676576888417114968411849265129894924657834032678398032665054023800893839177865596524037096307202146857502342819085706666523666552761600712208245543079287855677794917951418767756561633560751333404867405930078319565914759478677422777233929679865418269144453339755245872388273259876026808259364308352060807542795427971861230003506452045300530712265253562301756602321967472998999731587714893836428376440417012469863009976202030028352263384405824990730968378450948389573188210817760858883791492621835527968941780729715371777790966700042785065655317752741798122273400721200520812751256977427688687832218211886003553084733949374132879944740805413201869036403132741644177923903057978948019264370664098550153021874585963084628639947637308487614946752563945643488582889386902350431688023066401514461450457429048061404031432560191073111920176705204437912338674781964159235433530269924180556943257764739239818030218576888221832420057395880240972121613720317569942977148854857027525285692537420309410825324649279437419960470889034435576354399599751140817867151409084352392831806982243554903841407650359659438878985004551115339211914761610594181915304425202935727240728654724688748574808168950258159979339427682156564257200408411487275210289198932155801104012719669237629220768642104961863981335292259244579732969027947558418445994583349592718055221222173638654118623599548689388976377388818143621497317323843066668398028616425433623365909075222727795790196352817350502162495047774526492170670250704077979187480325155449050021695364252627741198806983878573578092867128173098272582961919040432687097388802076492262656130403339782849805128047751056716104444286249895137321010975127650239766384594696671381495973036396856255846087793055929835887415927791302049321105456488418548195035832232978676704712787582736236264521317850237835648241185675490040241725507979605978871776319354131592086462026521547447305627533254395233311348559278020525720386098107917369874292813244357639454816529176842959782616112665781503038339988156564282622172694415412960892753006473226816040355614891085079103211520110422169329574873153597942757464613590324832140388924223594219939860940419990719045790357582165511906364376605007228737025394385766032763294747652228771389980615390354449479361723656314558002834182810327047266472431338816130297258733814389291195787007033501525562112882125466993127556813798856331187355385566074593198882079247034726332592708371651609207049462412101805476835378310760568144283916439719037640201648230652658449932529070214397598258695381620092982731620974525248610954422477318572915615306858884273694492740008381219398655127773890118909292681900222625882269486730909263988399175165782077448467655655727564549507044870918499352259484785633573433008766908904471837402167661488335412111851346214990350614477943738475369074005059339367677297730088947278201734398713084557008932376258866204237965405531077597297729177599190729170169938700239470383931922385564614176447054517781265069564993200694893721063680345639152034677505733453475437747274645680283214923442912333812184035756027773837072789004687875931622668141370627946258100210560790002106098161732652221368423619207177585066961457865443920470440046708610301433433290053109488179154446205703068304950510875939799967021042797675478586034528900127723316950506372636056870788791207136024000993027637739503852813665980491361001361332044686920056074648749113120129622555476463352091367429502395812096653968904458582637086111881995451066261972761234411756455737491655323873206681475472203707191375393245517990398929084607154417484276844341835803744933243358883164290051041102904919039621870764382786742238592231105893439274606374809886197770411104329620178971149975775054803097147735182273020010899915870805453258385774811731688590144764720574070058653470952768076485210775038660238108269383137061442948289551191592978857252412125979437218948813081745579234545082853312868676554052646238898351303284956912069942714901164156878560548111561122640347097032792136780214181702750177986601996955519845635681263935525050147182782189392527887228216570013743809472822741783169935320717093922090876102030386839544777017777940411242105409347328549572678944591359712904049262727985398765554933974650420717106026809153870393359120891745947660081906741967663642657103863215407577820361432764196419263632056060058884965161318555882906528868207398117116306943809484531372644696594771497250846878652661860931086294733703648703185408846521202165653650781114980376936107971839637414172405857716671280059030500004417636319804273070490387487841164230404761725739931380157923475887820760312255582141838944901659090242680588125240045613232627720637132995054882926382156876077209741492620520859750281652105695103052317917028682084354963592164954818983801178213132101150799541921491319551204613473586636405007845534229484292989848771936942109870926182053382170208289739495160247156432654550731192438057811778963422509423548613178300191162138478535860562541530719517457199069015318709632682241914976335161936354561444380543651618703841926443051904078118196097919606961724336853968990681294179220834115562046269731894929122296295172426391420670750116929057879671312883302783099918621157084534569447152325880387986179008309001690393550733088886573628878347912257585693261841677509777742041444101030721910935594087394876552845963518008737525305473349362708528012324920303556285893668447306252644118609036369844689461709678986867255909029281036960802043945559475123422588878203240369964924966077647960355772459943949997973769340491622087283599758358283539856265296692597196635353288847830793546220571283553043885435409841496287499244169969167487399603957991669497960779263347074951818955214975111394370536972356792584307383395745167286949981542142554118591042287979390597049368783851750017038982567148434169816574271437782553574228192686190385728860212737046725375885581227695162862988292056731255091638049413599308904694426107149161664934917834837486775438348658557868366825920283353273598743275589513722239909344856003090356903831453541276751785048492403623604655948444802809334159533997098978330327630898173887153138586556260536455025293794741878926932467183283557510815613734024679249878028183962588122409001440487324307500181905204725960761162649732031697158812881794663439652022943130667116929855971301990648050546856975217982211047781635974236248334122397592274193587294805928470427197156109325914812083505287158127574218730464353137196616694299221220644077294614488551334154222858923760061543493709548482591234421412948140159246661865878585816021282998747229065282293920710431911509725430680915199944711816063474097358771432770973144578459902025068557671078999174954840678721604991382570006462599908928247638351033495898827581985094188729315287076143666027430365939638277177955464885314645308531798129327028095141155097078603474757981105966683688777656560817492392988330576407025909594909611320935208131199313069819901294124570526199509502479965792091167960258227822305929739598570662766927986554471061867081249326751199080756915495403696493297478147862122942630510124293081926025098333336581583140779293464706592054689545797006208601013669527220216034977057686973856030376546540558210685445364690128598788572983726074718724058180134957116921479502703562465188422908306468046175736146904163220882687860072134649017769695778953383433520610046212854718357790073301638983599152490245565355919558673925949758804470292268028197659617575822560434134220523129572607677509520136600079084391150415787020133351898299299553066217669951250903875402556243985207817607722625163534356378881502830051089131723357234440039724797360357563954144280221970121358026834751819384711064361755708303662509456643766645105832354573502208924399546763369819739152375955206610568817940004838692375439447421768651981783323530331882748438169540072682164594502010867625382213205161941664581118383787190761758409695752341263990255575990787725680655156543408854139501537239624567278797921660277013678881182573588391529915561073132612146747258812926605281624638038538135161444996388867939350825652872388181995442564989357463612500355126989440998488508290370198799225133293541658376152397491933946537708672495515207565512508642077660078811292821966754822077007908734557147193881995190890773722689110077896527226963723476454883096536881970863491937154322559894975451024879775880153267361976931791880234918128561808321563238787288357705700046223074326019749122356304556316100974802248881986995470866905829037408655385124979028113561645619718622888297936449983204085223414550411297767436453721267165052913804285830644918438437519900403097001827030434192885077804926224594398820552008304501506187481471354951666320188476673610074504962710795707295898426066802215221595924015818913018612176419902475345314124915565743600404630833651196504589598128171122509447284950199936972997472057832572898100769910532948340439288965553353911592198084154671205885754834003356781298088670643716639372005060304646314380328107863960528111108384604355096880422214929124150757461325638704436040022706084233816880404553779639755879582256334447576720847536239489883821126065904117888299346584321722947039093710025431123934525326677216612024104764733703335327470134561988743940119989194573572474865139361258635808938495101237640736594076044137756511693692340580978918783989767666964033622951728447306269554515876379913530033319331907536783349046112552648899907747388516449788259976922874551279093942065968329683698218221618100681084421847333415134740460388492356608936183465360426355014333539821625657086931806694308914861795126341109290138117001469465921994456007453971132047508989904859916842672890164913788870487001122119799313697583396520777637292592313453521271758345497751099615226533824318236878337710695939123114160967153175444187288615313932241443471757788695585429971555348689267530171443382891527896053835149093502731841085552378794228321797357740233481110713419157882360118150115809495768465785326078802845467309715802918587045543152779064518132424470479509126909998247568767459618713250416910536519233577674642450293983069681725434038433328310065259040811646603370977127777285024155766976156607269531505259506638317059354366004429280896554207264211854833873287875655054590132211109126149768004514085560736000889280246890849811580044950240766603671259599220828258994008801234932868817014212188555515429527668081820665245463303526912427993434911196356103456759870753930890739262655259335378128030436320309140804776228653075045777006361055270538125164568759854653070901303683540674264101798871909335768897669441697764689204649735394310043758276812957275709545541756799837074324469201125293394239238209818519505883041208716364139985842005641606620233497188808662381805872333535870694214874229693676865201088662453634951752849993636588169997411089597148749003618920992135045411702590973925204056474459512052883276046287378809393204620498242390120758245127233983604096612024570338543476678953837451283441505954858057896461387191701617384433657459251894305342610268068433127515977714737341830311783077026921919098927597465051929195214820969895262476097280465260050261281746617177862866622528893304814606304833359693613229316999145409872691708139186204506081373299647308539074188094143388999951043898247492807507498654151990270598038800232364051413106857319538797954416189526569136445638621672966763529977716103298357996698053122597727456194145453079865344026068217076940543260714427342703809805976273572200800569497842557937635003465221018277359567630020342920827762536994610046161998948199809554415189716310470937893403710481483931778898397423087688713455687253390597044595011568344289339582013928544848280316146789991342367418657464361770381587542575646271712225630959266804009248619384479875583794862746866083304583087488237206523916831405906521094116359901455511706386836997573653569668081663199416180858794475566361157913804942150051463625080229327667073476921037868044045117767488827196267446841031719294777066993247930673010693701908520881521271120691162723392271937315453323134548318834139731238758404321619782834808787771684933568841750193274764826557555098912815900443426494825348027388177552724731327359599549301048187355641947402356342197164988781820636966158528765048676394110099301109300567191503361331482804670505302689918612136841091691161535056049604592431352933595124148302472214031173880457504189296887749094851529277518339999240254494517706087629523275125088484520641986010009376802606592638536085931882434830530696560703737418109389495807986712623511502293212151075477244009276087712930555374773906413701499103483913610625050481769509290124085533882673393602045057024341515708447735372861242114615973511142623652222151519225486727544914636664639078521486528656863606458311011728496860694479608338757159361539243708374856664699618384609112697175278928933462193298609884804680896114784686063135092068436004983887944363305436573232729120144498521572832082084292510469107334973945416441472428084175819649832387357456517096609096103242999677037717990438567670316097386935973841703613306402505414167814899567701872813534201779006497000190006649176646774744253139018035341182325619711574458238795829408166448615418681815107626912482891717983063865048886707084406733651834854574225262326837505683044760572031316609450771867305638800435144190491638664252636709015424861123807024569286853483283576333936239839847743495744453617902730184720333794128749481231878371181343670943671095282165139427331062028334699881340328057255068248359702712737738356081677779023947679448796258007416929853967337112107344333165366271459551643064327138412394329326865399284770392046375702275113555214503931685079672468876215510302470072385063283909637089237527547307713776889070946431570783146589962580368647392830934426944943868165698149734122439410080299426751436381702560316987435912394032819408024903045980128847232508748749276199907771195239086873709693672761072568519086521532656475914062535143521269413704810836826853028786257002008105457984173330494756630925231764451386544036236735256089918980681224189704819929903963338068997162486294750030329177108492368192688086834618110855579176079475798536420502987467422169921388079885218273462002407563189424129368912141314472985989918242275264034121261941937972127153356858889588906207697832914547880645233938513035462697928098438803508254906694059260406172978861438681500901236327763010238375869437168575528298289539784012887095809763095399602896076994084872248403103462592083478304233848877400360231508645488669471038050586203011109252931606272265855127327686852831584405807119878897096447627636684390520399567714969499472407044600410676731123328281486336699437105995355229964299973420559311725511447118752450197155939779509236346942724295071052279558298102574611770583667488112042656759657599900785797233204458796174082525165235688681712943070110143758770388472997310806331656027125328957733716863055091880486030912869227844711580875990972205743842551482811755382662755810289406960380924735592858297035375057127577426334350678419303894733342272660023927723964345398023540016587977352158518895821529292428444689089922268327265671466124653692593531294577306011219939733189400686782160923782145552172784040412128773206721054948231340906844131861738707262513933053362921351977124272657831446464491019977988494938781511389777438946295615431822805030497256061946251380680065114482064776294945542727977622571034170639955222415281255749142628466272478106362136860524662568857102191385140230636679442428429239412557902354479781794935674449166018410541532674197004815452820320073236788683910276081993285795863406319124503434827051561610373123081268103160264087663295488025137338274903331282496781145649024021984986262220117706448726613544413967701917329007204413400278280224934956248208058452186381408973955106338163517653736996410657604862588448313412480183665004639238936603303052202093685421951038063281832899274604261217832016631496982192287591112582695619066682934777456663895720280108997170271782214488116052036123397661440611107806010943867375183571486516555810515845210373158776536674351099460333028728723482608438719648690987589210475192136149171858301398498336003165073882540163148116098525090931878574640550202182202007220042723043812551746831598462941088557465435331217490539409930292070652376388810207796031260769612701659210925540282936203462285871519064265605219401360756471022859555273983455008879874180211994614155977437578241671437847862598175929553746466005611985032597383106472637710826234886969175687188535508708472974762381279295852290610481512978783313703618861435939084973482760986693052575171011423089799096685922115321714631967598652986643491236635930708054625722869662894849855763703136836332104161614653502341510366310861629381079076575455792215204604364308704138368327089692056185879369650662916020874933941993228404049017539385498887346573984608004575666690774063412061463473389057869346932894783303461827691448014671798136158986946158947727066315062934489232362081834662808678644771836041305913611662472563394468481189678719275133786975575547336183292309257084935524364429719212142329549119989933320827349669337967507791878810383080714140974728663384980059751480612409814876789352335932662146966047815524672078091284738019935793962251169300224366893963033208356890366084731455021502074662799861518683682685561982898416967989452853270641574681572579643535913506892999410951728201588351714835066462630793409819074336366804011317777994364912652939249760975177554821733976909340836698612433098633734804031661343701476352151999701918277913035232111742724047937467041930921367741074552072081819402357059975526233175482728894134985166479286519865403452198924455728390081790072838361424169017853237015482797121875695966376128888672043346340415787221025983403266259977363857869365255822391130853646444910713105329135848374988078213627012853580503816582215900512443155534061284469121603151343572810536313230501690864787686695637698578428095708143424501455236591241315604996180886243530536778207127585963153502089708519462199240727430921364396607486523929001070543285036255173174305129013926014614711601563452298483516427553734918026082170997827992569811879654936256343166940789304845576162507815587794615930401791576204194411865609019548258041194319088097908750414993302951792630989874171915466974421813584778274870385128603593287480980176766992707298481209664831093746600616455632937637349994505225069768966621580371619055234509766117319620601224358237157158696955755001189732038516779031954566616453628203002429488752085178380268381645833333917442571820319676781671616384419511592317132211064659384828585032156817667684262997503825678319297905394171263146732605667241451875503727731278281344738554164958204749488855697718462103165553435769221841601409672537085230743483160052291074561116475040394168641682983148363882958275053322536810052067192244908626637522500615621373896320114024055369643424863822722988325215525981631834426309937334864305077744907331732745833852167875336604775070914039842614681497828378097732061339557747195930384130984804551504866906226211162966798114605740908584302653456470583414183923315695018075797470512406079869270714566241249724234797896300373621379048134968555011013433364785597211953221700588861292232258028382707912478615144970343915164473959472340953675737081529296845347675352498350912048209406447074007579482649434854193621215514694903708904706738343013970587982195192048896955920171090004792736918020980914261634862207155220323539542604227348229387158762885757855235331617308344873122398639683788155379837380188491534907891144475849900854824213545501182716152813886848062675836689907813070710942194823450189206348449484641860119521145282567703143481288156872192711374364829901266835712303920113375747924654343740353808525275959587918139510616726326192171766333378204717665992225836067739944495552102381641074569662185306774077485101275983857297557912708589520579935196740308881306559196663220048780626495762068198767514905223793036379335177118205702767449490161782532478135375400311659544989574968524765087804075405584808087981289178095324823347641507031445609366671788245362061694472977368024626177276451118221032115186391200259456167273111190118653292280257795683101589079384743167772789720603839929619781737814544096858781445187499298775050799299002105691331124944851455882476388203020669514624414853323929919235616062105911517563280736880901950658889914674107855534818560945315264363886619985172155712907406621100001042509405109399613024795945933528998155565371049971603343989431874457312302155728748734658350173729721975391450317028335366541592240845718653117129087470767408048136075141749712097624173266174587525097534964922911366932744092693803969710506294751635909217330106186871011074941962331176209184419673003491001606686650877717059788308917264783597208521176784273727066704879787062640589186428614535034255315730474780288886705931149414312104455961111281517005718211128585175878691057688562249920064672352406391645175524737090916490251277609487063463344307016943491098575987226080068411408002942412404457658302028215958064615803203976800268833187197676107117875283667189650518624873039833924810862382715953434763823270677154932986278610230018611060402922438781839078913071816892823183288499303577596585763196974340398542195261140959556763320983646818248435337509625741739011519918587588318765379469166594564224691222792465940358925252231814931469213007241170053063732499580812524024264154272267485393604564139114051755848513508199662671630775392135571286983808290027921859751614403244914038040367998626688394961130300450672439635803973319918513117173299957561152335358581273883328818736553468088724788678494274928855793617281800511676964123222980619909935099096683407511422734947466353417808737129937576488950131204415608084027620968962172000487072840472110293107394810214500841178650094534728934082375147792714563290292028910270505064424329504944611133959576762843935221669191091271247292325345585839500856385177003224047367846279972908657115109511392390697609602377439488434910720400134007984931407790569915657876862036794914572776891453359495982614156961276299355919401892029532849959203659895784140382011569304063999673299631460858861371343583143577586710318103325996459641570734069426498135457709595878594201725364717060949988291009038477548723440700481833354183717657562972943999596150237310662198291025475741406339644019417449689484398916873645464716020110178278955500244360192353594761484648888937812597778554147504761976234993597363523099866890960550267114141474343320310843656903247188006284191701745273667914003651243084770583064250629985545342732296278420782541464885026606521055594771172860988648693157756488021365260789477724860658014051786500465616518048099007814679644764465241479356594698584047402472715899142151970021657937559827921058765649122138240284935647526323514753177545656524336252193230957112281373263872113992368813249701742405065564736984024244958346718779690339157831417380864780929767768369048324522579951016564659483011897547620021624678339282505123265608958968947894470700389668695177123670165282513646179974115122434906045695571477178027498380975263491526549870083468995154824632798617715387082404911625807708452156425113627918462020527508185698087067115268887950001587993462690248191835751066988435124208190724350962124454310471874329146918451341557357214536029867036184980486247668934654523921730882515249440052850785736770976587789259095208279184855579998813717938388890327740864992445694682155303813843468792645809422699145353658825500559761460692256520270963082612345787354163002231768266327773538546454161029181195032875390346794695759568699585143986165921288813461937803367544627368138152793339403278468790837999901492565991448117269540701202066654163229928947893149656543678653449117628979306709832770090100242751986386652370755285414925272919231502397246356736165794934394196918985885790778323083472157507628327202872254013992261189883496872356522220370489798822312412238217284371510943323495187720766306435496189893512173922431167827890512372881089569950965412140504900324184715147777946758965915569025456847299759707368229076651212200549194716712324981426368200109431176243805446727610788780180360235216037727270775678463738015705870964942547722676787484825832634018293055337190427919492319804745752652313650292839206994122584091662049782418996173228271871404952104500058490733169434170018194613246548631782719415428560907483970798867740698335881322282041473394816883436413192045939119123348754912517214500315834993012856567476881577573298182184028180791761234596059926329943451277505441120008682546309797438716572366353857706246510265044074765721272914471466495195708573583206254724741551325175669941034417359387273132435452531163959281309469627104944938178445576986988991798441937164842135018772438257959381146836288715221655659883121355878504706895582594199056806057700871909139204483779475320974455976239511999279210531286506023220526110857861971070429853173838701376572332308491342499072780446581853045132370693655270783315111690408682643554584538578488574688664900311210589992078770766162139042920264395425498459327665021171273935821472787640029440358626495068744268670035930019485472481922826577785142480628014352044088097550711578964663055615095158082431290923576389562894587430818078776103457274027675199276843721400898733618167273555231729721164463292987905675017284381911829074291701391697409078340831371240472640890164338616589753670552604641275610948911129848246926219455542945752845976389860769207144223936261624914527467164848120775187106307371659880122863509955474996406221835541202971400755585240707970083576256134181567997770517327378154523261367965584120994783987253695157256495289059634563848241611857756431949160762477575161254845962814990412724656993829916967197633769799015169312758166931660369634326602095679968661576693986044625324113532705144417347024489599965693654943907016016932362711322309334730634258935265201640210448940171653265311645333294028417432100303676361594221552628829937628895912149458750387242668320686761604382621120885459072515571746524348369286265979056322556798591822499315849218874858811054257554558415926211757783904950670328781056284523385890378576228551705793287566317558564920646958052875944981040250587952677975608993126904308191325483487624698134442109538759932908736499646050407831077588143399029707858761326309538906595494244677761834407196159925095340672947960449817970931720634970405597096801380454733166039174387491685156722874077858747331771595646193892286052210854041272393496493474373584668038352426947049678182983357642419335624350480981888400077493478617953026517463662417188283933785426092078183932180008320475215828696663165754181767221385957039675092181296956098117740042498916078478625557176545320503363979573301679604628775499396856319774059810864353484893801843363243797804749037071606240648615437070643460589608415339799415234203243346824445640033885025267637235225842522645202583359252382661133081912515704387216343326443093305950951510733815333588499516522811297220422241144127247317288792359227357827822403909841476176409637550643736601357362433908014257971319675301622762782222722875018091290566897351716743311444182656911073707791262149542947208286070103404750236442329173603729780104613427506765539362539892529873384098497783042665485500929118850179570374414490070337455708592790694867826836772841964332063812385528543583338210316593260336908889414915639987434412711084489948043185645870815609179621816214056306217728543443710894551687090738530061581779516528871200659057993667142149358936392067366533739944922317976974604529810035763526648235574260083220035812401797933252418233850152235647062713269213337400806666164781971196748976348470768162536322727595980745492241597303947121108103204595367414135656071765872598047247933945092459856391966711046128179234010979193970029038846523081776871851720246257528948309839131285508063414182002804548961637664016892933702885691803893422522548042443236792256323018792743075162674896803096248087278658248187279424857797101089850492876565972590598769601206179728953775708987438631930028292710991667940560880894698138664678428397255355433036938785228279066152468433072079897940733199326840419043614425070066425586755305297559664388336601976325674765617649136153099642865769859092887906052320962352531746074869251872930879949083578187453605086292869049306138602462447534651275888942856133810776283086474232099775386397551051367920647370947240105444907363379150590762036598366226796765850243797060462570292167558022916715890876481761676643629780994388215253103340430586611289447889823190802957632185930069593359769671613677754419798732997134235538229526109102078851464876013117550656861297329946284634270141407150323359769286857409522479557120525915261067497506302290829624975556222451122879829555091954393956646198701333056198523807664321197358639191066623362165777716043730758873519598607745839914554100537841511169523366070375082845879297089892415406017574171396868058790150513409247642299951625237807089869515927749903392959921682733613245934588667371226525156543786193153187211696987590597899978056957441607475002824198367487610936961676806928656704314597737179999794660641540006421253994083695227973851436515884018564864329362458756229617558651868189560512845442622755758032534684583258845447562607693835142048158735815695250395889838631843916753798962536926697056442282813180868158386684096989451792109241787032898603083418797798547575144709745653008396256720010913860375075934724224920591767603716060537610192895701677428665535524639035287477164417289424791930585562740456477917923473587506585300354830853070971440852485193535121207823696317291477616274945450523735851752018163023769822753483267877164449586373782000991656979595254840565163567189879615001938055293660312938898592395707632285319582298021976099045701411373797892540490451613635211096978367121872976748641711986585222781750187065637430799496455018968287596686311045835702580374948688448549540825358404672935625408791372431408617537623388863580102136641624675303534150166642935882562352312568788851943576128853175389440337080889817806850746875993813389098510933500207366588009940374353796663487323016792587671614581235301502718799272438744345370970396297450728288321914165113708074750180844927202277069336467449782548658094884699401597755673249733729857529349963888587995987346956947552024080266536486951294055331504075581238513461672492989861592318019061289161711710412183336217998749919690256527173839893244120383109342196536834808988326636300370080292656081297416288121290110648782465071911409908070618904085307100059566573570471027688046139624037491762591157550256547741077532990219554077173898981671599434557415828722369749739646183328062584580296936109710563042437941234844074898111589125230134617570038019830376304159954087678499980753856669688801502319245489723932434788853951197569816207448495517811304867166254879488509108613400461002192250665091015276108702567694161898862212725322122537146979422353238365516243556391255932717545550254338142578659848346734814290741602354419269316201288219723324846451213991553070006327001148427784649965497657748389590817982664608911205965154633354651460986120288201471361989776701393521364913864628001668515978835864512826268547478392197656213689965481084433066911610525537622866841993405676276478632132065991976998905960560316078237259308999158885301168979200031724243106975328166832389277726958047791080677754757705381287022468874894528064329455755062164062980745238833963140998657391081839830032350159989197122061482771735909154230311763290968300542128978934262965426892909864360831010988130653984786043333184926345268447870038378096275143248122584486101878850861817767102860334290340073695273068501990417117001789140171576234079591100081545247985678420907851039851000176643784878689782058532155469543353378724620534253113885733225593301606528494266082184168243833522471531223863362125320593279169356716854564338399347764028871352598652426157960802197748700446568873617681650772814070964308286892439495132576590237049625055573418491281977292915305859263224482162540630542701229454452865491886635829913550933975519555691901979520020970471465900217287793270505475323003170626066192659620672625300159071369901236097539503584937884027246072966819638149409213046887809739510092538641864954144862925131108064233084148260468709266417815753857982963927552091069103311491558904203655340474485804553236339883996417506935420407665356016874940190123167688518744931197017018705300206649517311262541373094306706531388648594584103829752183573181316013005947022095363329343812609756647860033886885592080176789822501470389660655631797436975582735694479837416395227241388093903267557672984879440508012219638636482643668926393059706976192082686604584420752762812464523612066111667857726445392285487371415830353040376262246207148353413389728909386384040723732941005262580905239896732375225361230646906883006100668905950766015165421228898069923739643320200935104524553357543910649533108602808435318746799266011466643759983301605770915390048221030001917853565626688854482437188438428079685136769072743166837165092244041370896235443493961944118386827773473196657933040669827011718861608790745899971054747173693198474798342162378343041415399492027934643323608799709170355666382027734381443438821684048139912155695947085458776845247979511139833152119953688705551073114311252871387258925693255839184932133242465556046392179504159055384373041409795825566797385501501519786408856011577926229841097673503464079951078412095874884058727762497998868437384479360457914109062230196474997715458953531301573900490067188085337701838828498168087369943487681734762639248592509663725817158445469274747814321945381183429760239062238319816116617055041666692094080949248328358473776580191979647415591509339233402998492989527888319489587542756710702652481082107021292398750309555338131767225040424047827031727540444524654048758642701809035433195311637051910779490560318739576865171375239410142885479505974174717832241274781221807434066243201256835273741701477303283412094294003009238748080003173515552313236339459964684740355974897802610634217138747028065383606576226702822978909239933495107833902660505838537857107569088228079467418690069934160077240127926134899564012692237978484806753206203493754641101403790922905471489840221290839292520764480853653885589298349408479784629972618009515271189034287192830306099224039951695900262280032353985199408882870705379405814848041721202896254414431442062781269672343094711989328781188952022680037104311755500514440482454432988951967449198525277563439429123824528915574684165134319436975502723533250045725528276928238373546544904077482542715465447163945524627050009883183016995510150101290326868151610707679281625428157045845153098677989620532203725194369913269306395901229950334981011162431726146390593489269783898899792291555254183259481689304157273353261328179137885199888273331117573570468672556348944859415451457901375256010003291709854645016203300537935287883116224730933624863779131120040488133068037305490263461157012803785090333901888832920929618524612276318795699000094425845051237171283130928193279876675266717881852464169717807539922516315901272824080246017666432566927229250717192992611046542128796656010348689056330933725579213759273746551123662896862281433285104897398710315398178759921174551808873397036492578216439287665667305259807987279760129308092641909259401311710880222669971414710868156790002407368620848974020304922623773859157859867250197027108171865266082261260511864296714523232596053556964424406482853648110566749786498633433755672319952638969986220213267232385379889874941757249736232441665270833320323724858409905484700507061054153513731042119756509174564556563757893495704388170284374377887690424854411589842395092210155097645495750523080547811141855933777137246744796114928533005549337834349121573861449001116642989715437106521687999565016152642943666876299330638568944026738484084183471548286026483312258393418076586275624677221024460714178457697088519956410248267959273830713029126226215447127833592828961926512336568978126433969579519002091197989952835318647457876836340858096285378537128265781963428111116325786471191643203721209873132646408863403486796840201289443633016818595887367737283964418798642380006263220787722257827218976307992128705976656908109193795130282110460031119367462474034332562917245940214674070349206828209254896367850444801786443522059705982174445977051040245083495423119560572492649641783379787643446066964388617280362416977758941221807537659132682836510114272738597831443507760241873517458016536917586148464246282947573328631365522050739238117639148897666203535782655192109997000958316961456794663757592317097160460080208697757297611864450074268836220288591168906824680104140638672372172673402976907637379456460732841544399583808104223318568837012971168901613598948824306940326271294302552662499023675206647003083648624726300003153056020623302784074955898893523295138462281233917156798967220515404287313642792071909304267548607514070738499035315003861401941826160389407394206301251375441192414749353742724288407264058234292857837398651754997659584015117272298508567728171547499607055422995073664339980145199209808897999392817192551294440317909669496332317037472913359499839649210087282149074536595774621114153425681551634260558279575155566456939515922374960821849799392897471689889816822145163969103077546449417126482884465189925274207274083986991082847535387411178293343869269949622114453247994895853130553559106257782814859304655099564251863712307203263176029876119936946110046875788412458890966391822814330684376919267148857693923768609765344819877265581188387492118483366696353091276607983927543113288363596059594377480688350926189246235964514975991351781714083250826838622745769732920625394860412799269421233004133683913326568193000237693338068058395581809874372611009838050240280787092091670806524491490012872273190091038711062090795958783829259613124758716555716821669632573408041176883371958102184277162214548346287995575308495855716078855516699354074614036291160951744017250264633417561800791096829810840328097021307856802453065120232783547894320369623622618925309758079998561942810494610553103907215261926622594098154148090654750089557469333088468782538309514503449689605002564759070757900684910904027052008143565705339114960153683186804820449661122073825854746154499188517223142089724448996812927594870353389213536234765865773486128211618966095685506712083938006313330837852053551346671455549401701115106838373225831540177031932337868876541282293492374784752892717258487508181847767904452351110648134824153683566837927402223276831439260646263866781598823970481272480740403534164118434789349455710062246093201004068863151260636425153815733886879219345268835736787871681569594223648679145666382496124597197111793655936825804559473044024743632857027178050745423224071194324196364193849810397585067711639746819253966541306962735695621831615742320694813755425419738271727589329792796347542762975424826595195221085260182111460924701056310844170375273068020333377188219559632399004725021097346793613140781445228038385306804261504841956827100697078562967742919103418670248107533620096301141984833728815436655037230317101175035894465641575478489251986877976496676027298183828286065860956512282556410958898840594372601186861598339163958091889501236680436704677507505626595984132715929375848373739035020501609215293304739337469734608691113664747698086817667629383582808568596154696821734267051991906609821243406951512548899362462198280944340296654191244011883724679867364459265180058217689352795991668297417918494527542321705011350523784227929526015099841181346961282052073767587140518850185232120771648650762388741046604158495715448781084386846828007667972302708994435236918402871255697650189631704522901714863382253149380920615881815280366694624060508911520096827572627420402361736266868679447371524000626065383285987676030498136018895340265428421136402133701831888721096231138006280541729463999240691026924608121760628890163406375560099387505942498104704131151065605976641394387475490307160455332960184647729100246724341178409635927780300000003569956471723226027855986970356884563565169767740934205547733842198123456900396576365632707027428270650711892421359234979954900659055016192703296781791525329495054853570781262243472111212554840331444097695965424896099891355715824162480758798559911147184079770456961332338676687619370873329244853228141787648020644425890158834579056769861284234082556140073254185555664117752235054429776829960172447780947569515033177973292327158179508299835235045580327850230118910160462475273962138384744678332397401067229523460170918380268501335322037699171507021651021392716602801825973501747516502460541229436303963713218471678260790067060800172589263361845415898446960086939718997243360708282851313489387754578121841052744622460962460838709948432874632785275846364335024415304810964732828327752766165995261418431713147124652226005203147929188100362761414454171421186134480830241493800269679737949651534125980909011186789610618024718751358515169923953675714317492153054412069862905764282442278029494699279133914010119258469290498689316640516137692884787619749269717793564931632952970136315705469305070544639787239972022204383232502486235632726334296254238437836164441179117105361224046567077785139942157485447809636280812091086192731448984691751620692329580403187300207164481352366172691379746632569327364621804401655678282750506359973277162821275741278639192543231142069679777319070268350135400856434801342866171727517120313647528727838375322661759709322093093387920087417339603000942486442535490720496959780340326339710355871659205764217256656544459786118602946115723281445826295447271057934731921015119156450137885180630394657634693617952168871684717752054980621631457150537355780529935765895726141251226231789169830190024481201240210465753654538864309592702186959882240678593533898406778453736640851285794686316829655230259255229383802687870021500439475847426168870758708172545955939921149451665798782647473538131588473371510176309706895989309799890589727932539182602728716113009121098892042295565848421897264607828731227407429016645470671794724322743346311098950951927691872319841389028262001151476491129300842532350036013498776295491651544576240641365092449938222865895947276371222514447203507006343011137410454962124546357449099279014965485853310793662307718146264081792784438094257528527537757565594238657665671065019042221068000062635885876064225804326473191613680707846047706500912179067813329503889814215065442541345028103786512054932767970140193107788544105481858703085801885095760099623550904952200915238857265319428546577630294314282118598714765004751138860668778485510649053878994512677339681178668748644091353243409449129481309962968054348176584621713199565996221944233853709503867608441240621671110560129244175085762693829240910804494912593303107754288759025510334217840458677379254674338085007842908640984012625276025251447402631728469444054884736503152191590150638384392468956156582160750652689003370711823473204148389402836015528116362898165720039014162811144751512887725514069871997880084945852585715649217582643879117876361978960450033781134057612952331670974200102095339833961334311762127458966523985104707004535336954477776705424428303036204017242162760205462381148451095989395941527343745953502326884720164109238166760308934942501309086939896103023899940780439754594198985194894208469585517902126324598875508521454979228907440376659314289015565519591233125472086999520246703871929892860591411731108991161953594773694783126523477535096605604908893117580887709217869932640238312202099937101426911802762972228543679783655765698639996277962228003203607977287129847210397929108731412016947383960689256438390459507305518455310486083490950265459842874678201601891390238977365193586094844234774858474763996784437083166149901360952699992454411143082675472049520960009163492163242587231990846876755218722405675389540034565164841906614798155421521602061387576145052674629197341777280113046959087438410325799858816496498223948706256946752879465296131845685947321186001892699673693110349689276644354999232105657777592234110455212999672951289359869209469802503993707737357468668227726102883059533978192556187115223631107510020698144388110192558310918526071332694569688515509077196072557548090363238452370563527503645185689372877962077700918980589882899250025141979875599010974741649531236083337676117660236123444330152048078378767383935787719748595173272116847837320248916665173974060023117927351048361140165571342096590635813234106187929821441390831508450291223156718881343839725839315529299400761327114843741128960345181906797435248472879429094915674358586575736095614732377361726018465790025953166811607979986750980899106050132752176453004558904035194366198793631469734709603554534903410082184897832498088633084557447377885899493283105232385292792531161608512360185904637616481102509806496592164957288036973407059667184349909240230190170551358345866188145395028097315325836237043645088878433202266484044350600735160784667613677914406108841248071563046548154689832662783636771570190876119218633121402842700963141699874815860820528479613979773210781247835912473843039130089878000940121602134826314260396218739515631487733193905571449287226325891226167985758562671175267428474836060470491245435669395407119136331923113806211342910460368305881981118527697081580710233342370363373921705989997261695745652069932710747750449096197723627759630073368375189858499162980016835179743346381927115614051863209413756960237045734048646409678079805340163229983217318905012253705430605057274589041555868727882274656613821553776611538560498086294432019191599014934272924752225995015551885101421734135879461168163315254518758409291128866373486579837405586787084003592195132126458203926428315027412910177521953459859817549747290858305818919495749309805920511344303795876969823354393071046719342111054381622520875155191681246862581594812347349325072269741626416558616190675783793656601261824567263740982867425800834935826589581467203686646210649587750055990473398744188855472534620329011237031899093798940223913196997244623369393658411979977362979351938097211547287694815322574193013632773381996457372687694496849188657087263014994544199546375530897441834253097984273044113187141050968142242260992791225253978272353907799565874100726178131359632592232261332607422499037493524759335198769492843191211477987847948653491378292952733870900070889815841520269571577894046734493190540707204585569645105097848515130476369653421143340175665732186754617928522458367662963975225566672463159854163406085948225589698574593539376707986346066910891743529942883627067229016228705811773976286012294503564510259638813000834334260438376485621606834180106811113922557228062982354615137299506972135907815029263180100689361474223853992013778859614641192280516416745503418683887101669909616839987838104973025503437551016402095338182898059738682248036792989036603445179614758977170650290566843544682895469147546747091231825913804615858122170466504256874777776462380641568245148169472772030432253390774813174972807927971535425133639082851205107545105171201167678360508490656374150796419676677903342464656783994299616483933670729400043104163423735571409984865306951803704703338994311722862384592083754212892715072250337250469625542130193024325690996252677989755925234759836660587056696326960435901811575007074325011648992686589201898592294591703905924797881528933461775270571672174552886070477765025499120983111023544222062513590525629522515217215410273298685302467230242108450168118242704022097688474475961172765778861076632852326806042697064624286918143436043951736241769120130140044755437939837397803512560859554441884195435040922167712954132801838345032694113506001300535955317433283325520422234839922408891248084602739060163182293607206142559569266564697624910291763185455066695521149990386463607854834945894767900971896946818970943670530825691054008788899028446081305423642408842750217048084892029396062876799730441519849039028572955573339829803138828249508605814978648099331001283452787145067877960868816858528613511159863403977062226351886166981506227554500703235972318044788733992783571543085306387513924522708631540483237420034414078960032892570242515200184375792640808372050741666474143469006942324497540011193206592336630474829425432374932596481320197565069330021936050978979254555261812675983038692215750068403849455795403086443758390629415057553470372386163402621375579436416592695058029521892152819401862647298613337170614145909810217563121077137641019833553104406685321751167664091336484825003297338647255057302296044510662095429351746419784219066288597799020722169458009609299851534512540840197541407793116169577771225216958588364956337684926336817469462981573447121968007938757499019911159649277079817243138585453475232792512612391219046443252013549190951166718196913762123915669377704135638068835958163518889216285123330029047063482028518771916442288826555433840480267805733297224042989643216013241796304092045391386263882558242356366136297884959881176306785402922270669502768096659613071809687688370303279106846240298879664772714110208001240114443310601556828401221727584790239336602955765761956463026096460763406259205824311321646783458433351961638100747713541029366092756586862584757930700759184236584609449413093649585597507647103997761048914659665370702847894650628736563362075991777328304791647442485515708741213028464030957548014290678299878086373523834618566626774365077400676013478999669200779096392340253724253466676609568465152424384661059087117088135225544766932278500109821476883610324550064596165153764963975251092256533793657524462400454266161127738308462028599180338218459003598028187679672424485453684901822684984559450164774844303861720072213882830687478078984726743365560363519623775828319945425292799562754003214436220952599597890362035906027125000162578561210246467976696909761358839296424912901020094169178826138934355764836837987026809527186456239164935345469317441005963274837958831503051062053445111852297914667872628519439869436846191739575692093982899225717784471812900212601651284319228314774346762077706482108892657103932016732251073065577782936447359752562096843193983809112958626386937001190213845741814197084483026206283092123105206277611592201177972843631391122602353185196690469939799995733064881963430910548256229091259549592410740226675640716283085460548390311940274905921930673899374437389278320587525318722025592939736695629350222754529358281706937329141303493321393056130020472660629507710559907776920805221968387017419946989985238013844115143907714992457634562929611784141532241336492923910487563122793905045277061642446216464386113344473425006046540468292270259503215608473654584038849258399240613562931319994744850953096613396704990631332904464442304061328201761919177646701532332340570153171533484225306106146844613208474816484461766355802076160484950854409406369810353899743782700420900931291660397024977744536656220156508082345504308427240493843435783744225518721100631005425434797324414431230688329984875937965734324622832073785383800173889132442910691231369303997227875834622180380621520323146172748186578637498812886756673090019664066254432516096544865131033690954807399011064814257170497467109327263824161282628539173679163040657773632987594037951746170246142769932816298544430014738800104489112932074117122303010579202310541115989626841479279401977288012975464513820361083022707876433906138396888613843100687320999670570906208404989591241683926116751575460349344664350287822050866536477768585576106210516612066877756609569963637804318562341676711689085528595570605146860105076675857995897207105911128610559551417797831969763004580236526072235587640690925356898113692667802098113320591096963548299288929301341470381375925593167308895984084909040170464363032242266414812316421864833653857463362695545957219319359797846126028305771318901390010617619874041668102435487015282457549745389951384235809460478101739315313369875190881264551866791640178810717213567121223852066157695354965701976107252918820153933284727168480806038925532800622610716590100943120902386567938370808545182442277921019869949693206279331981815806201980467318430863404556991333384354282359459997105180399831147549336676115438484057879406195833856756927371710982534404262263144787201049273745799598538163644694111777431287759441301801301870028406374060173785197387846268274246373846008105007555319581811665377007217206803522936003717274728917448439724246097926186671377912994235758895033567223017717741674742523863373326535681513340070070017453833021629689441281111046535172062357883646732811270932813682370494401392537839557196016693775938273252441906549928566788207249277070423981721597145145433676888637340056985619331934908239140612754975444570240853302921272801084304716313871825079382278847018815631835491656688063549080484882370933429033210946618337050521834729578350981817683548315068957572592623961039809604998374821754844557706643911944001431697020721388938265052166517149850509367199279265130205414094531361598335603154550981931314586062832579992893864552565875169533166734560899870589754787376810493790188932941378081663305454718124968516889357145842055284277625331623994823201495551562460973376038356124374507910715269462173447188427211619278495402949979212220348106234003580321458740055694797938445453028255549285311417009525687099031330132763907679312107582886188341664309425564570866684082496135808237979447120829785435817036594772988094501397962102051979310309900159197377203323083965656863859336421017113522661126787314978878837934755974538947059137109659552051144566023607754431142313727381863773720064759087938398224704891972427800902973281793910778854702794892556232526932065061551208337520564734184177154976265169509921700789299845089160456585731799044102542209771721016602354107329683535613670894891798964756103875293409892267106315127416528126342341799805520140476587588353900814356679928014670446860402033593158165723927168183535553025537611701309878695190572771296975291411774117677373126518236378313628415547301552546845545976275198541181611225652791985347802835506867680055310772345240433476366048078582246607848554308339200758909228585049025035557780878969933770110304524223209218952497635574926857308287860833200070798427761910038266851674924956377329689318652176522195200999771862047629454186672220394520444508826783007380693140620338189214148877290189345265808140989782585878182090666627369378670709800967271780600127881363469973688435400143537566806018906264416147632746953871250043606995952790169318653985820598670402243405055275181857359361596284237517823341322081369724822172945563467042144240054574523861885843640021320566565959750233020344929703301517088431479102191989518798420247929082064451304492572036813818892147091611768704240579948093955388168313402822896863056678348961771327327348787896885729392501185681329681873960977086201401334681381059980283906575357340375152153813538570312511546612994475030211783780556730152631795511705310210340360827055640194976691017732847734622033005695097082447743247456366603585719134783120079300845551189738103032897228186710807629349956467625883547126179112198030769618020090901015310605217820344901155620015844452839941915243213959351255881799438228530099303411315026609413092462822117181595783894926278386489461333476678020338186593203057349624821367994997903383748762985831386774912156301726528346309447327833178511668443362749422350978995721236665512434898338389279172991392907424040696717872477205848577808563208477366263691313234108219655739603272730606203268627885708822140795201096017849841198261089578406124971439413856546934492215384171592075157216219331612984050791998277179895609142038986064641051850616310495464527467074337618426388861869352964774464583347777491987142336661020965836565068083124294647027004900482309814494757801420077261665479364054922801025119381847859140129462126695155063979734835209643267472710760134580467992997590067790668230193705625716614067804249784293003171773954234838107555804803831323031771937966329597487829866014316684938786404698909003205975876599408508208425262514369988486518770786908058430518993770673780359816658925577952265149265267846170680506639046616056611656847091577804760586266167818698785582418424234555611503167228015546497831461715236104442719011713672007734087830737786817720783638324142762914963795435527636364423737489027617143804063510816717483808604250165329860986094030462652172571748870660393110272658684282287521260656848426485704014096761311538884553796508058577252912073531381136969157027772314095815619280247130504043640230434674313482970878573364123818821939709628119202408501253164922906910245344702994145630484845683672118890757208887400583497326066986095131885965257196497784796050890732639333984845425596757738766556080844038935126235265086184417434010173904472894679041046953904990900897887155428550172774192287768297481833597909863213010768651251446790080036126769087096867350470613012371617643814612677519017168951066764302815634236990776364016441823627331196030032936166129802506011130453097081274056724337789063987128777756650570291971890479111328201344042626702754515901012246697330872193559055371852428627786981818407306484334135706233412082926785386497506892848077990500937027812661666705549320696865057261921343778666382276731201020829946823025424572479997338803262308272200105852740727291832654485048597165564871551824168744809843797107055895907377192219614785053294953638577060284799511309932757487832757873534784504161746541631760925356962648376801319167795391096689487073381252133728038477652420787747703231085411885216868258580201098973463638808732676841268974071384811388888152887306594936431546303546711713843270348820795627820901136859032693309376939138319583109351572356147717061696155633361921590046939512891401964304078321079250463428086725903908212306598879566569240146106530021753765405656601394594075960413865241771635583080651794293170268282377878462872652909377497910058948902727930656162995297775345619568541408126828290766768751644704533012100349205034651333633573791595273250010362685708240609237535821376298654721268733146633609354998758322663524998142968117603787387313337721330554984414583252101709218600786455120470731849704945665439512402863072409580470326514799298245985767134690813033013433872291120572532383218312167780652058352453516570798634129472601652421551666438501873158602739083097659293795113112826332543695908008782972670422017680983962354709428496106955882595628757701127221941315155018914215438473332603833818611894705898472583642440457284188560184898706530341483524572655757030334625612246467150940946414216150092938185837906569560810890391745483349899152660454563560844232068053822920003621880015544673443428407319663235123226512865442464598725167927471350808658200268358129351995296476011344664420553676369791950851011046340281829651183028835782119081839310305932081350676924438815237770884854253090838386984519649602844672030205165395362373411250417259768422888197502447529877840948667949919078031828573883771683841896174535153535422099763670668014241824795246164463322951510874133619738053730932609308192919273136909202907688853648254965678930460768701323424653300957990323266263275750557838361832200926788376788683531038126012767932811932993596380211381406793311060142432790584104435742191740722409465783159126315458940897434528473870989128486165082409673732911387131791445939672253827755897340457739747446650633808585221591342018764785892923458316521666837781278532558691776244751044910552499418622481638506621986879336982734048066563057684932541887702562814897093403086362803696946130123467584194484474793750007224649561683143150534769553352211136006425518095771841947075997055827392911342104444719628652760758688596372723532369108756728990189369513255369674122797817312195193429372902774533000413976317286852421798036975928071643676075724155749911200053841809168460260373875937977400997574489519153530984177791843071584055848149919244563925601104658868203511658618343163573733227450914411325356244556609507123573438413156997348114874359163817914253423335483421835622000012040947291190719300230922156526001281090754986187714411107509811284641110975229966554763157985541798342247442063767663337726412631513596178413221754869839109437314364500468234278917515930553116697188690552120383489806090513877099752581692822850309921951854836811581993065435462395953607143277743834018768131218209145853046960103251840320191764236437035641200268524236523304807665406362811929981086633348894165274707877984642059856968066528771276333798544133080262279041309899302343733155308576250559646238160376902517495161597216925400976863598051917711377856410465622039775124485778681181027009258657806138893663648769321667707113743009843084204352690224378294000047805206673037853222835998505615270449683538083378839968389002277288865861714692239088188068915143934872632459168403100446504934718874773646554222387341944555294446510726353799205247124231516128475166224946300536508793901716742162406642448355197283254735543695653014817878188975117928238934892709305719178304720821322909362635462838514979283984631538989087034029905701589390046435053062318102811557312300333558202893332864690873394626266538977941691993605362354377332598674292540200661849086440016836263613067707995005803584064657234860861857702234730005112090404528105482052913242777852712999054771176171517391231560821825378767161819338120450450119312914932096049788151264601764376208294004262100373516038852401694426309633106687894745087809710745973978507511075350195813375122132241492821890188592520228609931009239720623618251312214683687610888934429871417262849010551589666958979284071406978402304119357639465541516988250703239467982972902256198839969330598467874635746149535198516844480121358519668421822934837729228698416684432856311891636687346370342200050109952589368555941077824414337202148815297285849978683755702302042415902434771330604914717051020276936409074205907591034175135479536130263125954178029942908426928542042884714362494302837660648305448302091490940554388742434010416946325836898628913315671979619022474094173032368409940040404426608213838195208884085976333948824280135212081538924737354329393169386315318132246533714615909659852202341604438170472117211935640287044276675561423818770482484046965169763227042781953240301792156665736155068093595471572273840839378383684104508904632672937841901222617577477177056409450451715693613353226983926839493853985825972135568780576799125749599893931447730801177598580635527666909696579914725413677724923474292294379291383673498478221758214503230628842579833142014413773780704764576455418701393464843184405271073063003448479159560842700391928407978117627912751708547988465380416770720157781416681129156041758661792066427601682524189412477517734082761511812303624929715316273506170786847750530825620779399583295493525902855492408127707812257128755409097137800454744018520964198359321003925888924422586915243003845625739542584158889587772722056659490406259476289209047131240682116896963138717355057534892171594594434996570969575383151509486225211617056841542814614668482453373047641100592330941770901942506175440200855296507001761213721015851850338821350156693513431982871785688771196764187377599965617308859109776830017454857864104226150068832953052232421596368859213585696737156118365774264016464717846823268609595418188544872121679076435394944084585761425004660635973575910160723518613578283205750160286213261801019129253699826854768257880929444753775097341092436234627137497066118095726575462197140816737976113924167595870362533443533856696878022030484537796780869322992952723998392757654457279140556259308541469018375812209900092835144734827657134135664104612928500809577509530237585822589680447536923839727824759694061588836722356733257916489821131864276912403970250697668805527137638579684851134412912420678886324484619849976878952987321081126827113740044366951889559142946193688716954609027308431728660594281819749470828372668422190092039911334803516272424688001749971108519558502433348767000957665495740052119249133337729314047114083640251939835005230701729703264201165990203855532456146294411509528111823930284051461908942913695769398121640164104534374887452765661969311908996764447914541330662914819254935376767911774166684623327865949053718696801253185037323276782303305934825982046113627595523820889381738478785454774710597328244984731780829668916693843017527260289802762573289732018786232847055106386110257658872978508363469617502422210149263338822995028054169019982782820846807662965218640567512802956407215192944427396909633764078767244186329056033757434626219091521980355264892794493833466962506023205541421934206980469969432964716440480715279087494579192024686695027563245648359563899309786229418838949305625779460757860019702270627379398195462474008728934319892446865793858690555770150576376065629890335498649146242208334876518430980337756127695507350913320164472600172880297374276923555216987196192536202189033992013168848302544533394246214373822501158344635718861130188393593250261928442627475392966872594912290323235434043796255424723323607446234813207133713612598426722275417528804664199212609366316918046151942061114097487372910281485178995746983308683570777663516677335777111457824635570916838683689814247145568433185682916218616381668236900052177256903465105163975381373656665161595357205779620023589446104332780184935171631221776994357686934522398404141932616781790582437738005530421626579472703129613762782968272900643681155521070824532875199775756273664737095889196310480939542354726793411627056611574300031076240308895959236642573901332225603056376786045916849813621174033883132145819858623610247545137259023371240324950144000154022783181557778209970998223452039482984880412574490642528495621067184144735869091866510192829606150219513438181417127310235493815203104381691432294883770766961389385578179032402604967287059646542602463319968831583744363568315352663513431543570447501919027932741096645149238610589159044969339301798003351357844678256536973202601380594039928640799198623112757429547271671876088813168304488755236053646360418156884334025781438267145168563033102716525777294268655882497136276231332091704027832096856844062916250963321501399876204859343957749082446045793695886310439132651890233543630168465205092709335939305306565801000052193006395463767470809642443191138097602204755844898601056979925209595107053390756361577762769415631465722656549865307095587107107128938759184850683314542509080484653762386150995200318686758792271306573077556593436921640245658981409382224237734930216669312832699656682746745946989649999958177532639281203289495931192668360705961226558999490365359558380516960864277908622704418906637241550156723970120699234812431246017923206900743522843276434738813093482944418939183972394240966734949109165154388308131430834465459852553424563510613258646327658917165837412476703424693504596289498709643459096026493166958599046258434548573106940096893753011796928079266544945119809821666398431878344247700202378822367175645285400286615150039268799390523547375747809538325502128774404365324321480543853376139098950449043149626656299389144544433805870174726859915551735658361262386758212254171513564164172325114014615029982876414265866951718654939787788422738103419078218014051052328531829057554560326623525341947637301348595898891023141796222983022701525023975831495697925753663434572322992612044549174336209837243244708750768141902945395290133852774693003100439127738891101480020487857477585183323309280568644548261430460679449981966747394852119458249541102877045970831527310455704004844613270903096555079931336436372712520681330660486782374409563139407042024465214329026907282927257901588845958366214292108077387658950038378322966393404837882681593581369583987590607035114206617037714393139651077798534955910158406429635867228317405985743167037257813956711430812682281316702882292661564439286047983832585036771840046772857080182663617211963458338944921972459134526137768518010111088267575821827501024822086086680706526933457937185333555305582372322112622047143005648891814951265686935196014127135416658055805456517907956137012270342889311205610349124560529237910708836866075696640797894411088624608563174641177988110329152387880005325497235695638182324270582404355261135194828504527240721219137399875425431947194704834292485393661650279293452922656706932134065519177239650950003969078589725184117209064045101568912107148494275423140175767884865392622178947790032819705132946291472311176807701046095628029184253745634599729078117352194137338141559473032434641681132304406243080241719463274947077121971189566315360439110492951833203847588548991649903025091386076859220024403886120944968244907771464898344110592984903627089692934486254600326630955626161008380950695923400409046811554984654135765585405825384205293172844272935895749736664898015336694385838862555265360813790980288898063336750095397424057516330319460620377346444364935700458545714625677293647183091173407488361271360062667397718057014155116296341246771820908177024105934815139810918589749463541817640865741383283610867706448461359234543559203759461211608684518615069145333203704897335929905512462490095136732226199474484091843345868206173895832330551365350789766203445029032203441313339497250263012348898456800722652723501497193456006364800833501829967152671520769701698766826631704502192461361494855662293461944848463088733784706560276743350842270692135859050625787783363747958149443635492419858443492295848292124713462944826949217407278737971067060918881055392015696472389340324285728812841796193017601742457676072775895500722323379718498176852605349546253267087626963061315592469750954358652271216855865652825420325768356854942179349354609881008702884285412763701475169009230156482857781534478004710089190378378198848328802051720822703566844432689813609204109347262495827779999831828886892665456773962323100997058744384009106447240830436966613395419542333987451702948844376014460084735996780672964349873800541984256882905770579666398208932318403217463841025836140856323036509554522604473380666589516105392151054051213980780812211595496828751601226948278771360187547768129541098889306226363834173842162205397021507342654614131224379479634999761699084154571061330225815083929977587326239214275418813928769864392214845618393968911377980504081768723425321111188246513207891041239447074838286619374927261546455241976347717169484167408102706906277265055232305138664092291911914346839822799659840929555441256477081362406002039253226790816664284561043149866189696184695080692475318075385680699256861492951270393223897247214433549856315067474887864624351773118092198307456892436069971273339036243693917166675398366720787428710257100873467032922728336124088346410075152115439381068573473753137734139824290508807455318519457088232425825382693166299082895245310662124308974965849801403678913062924079327144069531123285021384854115164362888013976343022871783109251266619595774670277330925575589114892040281953792453435268576073091025762146786574802335061698611681478712652836326661281349595120451364560009642733686542634504853414864726137718317623763752069593327324550774163182537000698559740946290650555172233406443961989549418514634242767800131080236152479267409951887736370021325371625642741786588090916620880058162789610758867236140058852196038026867914293912859034243201539658210095495725014141348726033860835484317301206767370494355925040077526260972810248988929891589798367523591216905749078788685567967336036788634614602739449936104842350088250397904782587577827654246241274551062586114002060046485313201528023871796763209151173077424735259545917010207221206287627435921528827772465013399071982499229789219616000787769299980984724119313773608077409925491587755760207692463110577961343091303134230870031330636377129714530376920674890503788178887317320154672598838593745020337296008242159691745371728719943993726700040183812000042105565788166836662673192590645138731406101068963215673509449595504683159991226978322924804809791504943330230967867950846787389983019736412577520593077601772066412694499127471957713917845158618824750714279499691067965536978955868930808941061216311664786565737041183611732895315834231418651257453238333677228602071540384244184766719059310436886712971534702263914954985966168921559651350011645967368245704319710896456798596309844678212823662220908572123482943538610860259976874007746447732402916478899677439806208104283281955791510113800702505165272340621976442304228188565929841829826170002785566381153333923003919810900688026178989779795046129664947462968570232769718285052060628353879467659655672905501679634039334691366254813758262433525901979982075664945482215995891764139128701062258410827646291761365921147174735999988177807829632462803545000750234301139477387622546179827218068484269341230615537024624146055003632168582434417625446546367272507422151959269390285168166773415432783909458412511064925197595209891390537712673464622691182494268698507575887117193678361663493719266868341637567847442758085244028174078089581019543902739074027844948158519800111566707857680174865144021582878009015378101224834710867077526416406204921548889281926163538658585573830408582556444901765029540804329502469838395003638327940818592320609278222084202986021307545287740664446037824716039467468009822412062651356703031785398185562179071666121655729275809533647096993511430640790509625142727324528611853292147811526934747563980304177240901222211697212172562972381582207221437485593337946342230952062591447545987394416614012825631186968550130318993222780285408816246210588661853881013887235356922256172823563563800529597962434657739598805384630126602274631099213604902345097389948597054941517324220012296090697157078294158520875943555753734958041570678141300014076823215672047320324498924692926982431187274197054803192889800420998389133626302093993289990272110040339253693729749558713794741084270581699165366473357681273432192301234046033138102068129434579181120752317137405601985129167150303393686593681303034639748569101324512587428003251045942113994833939836352795432622052985104383063434192984308207649740813882075357794879573235617852295678328669084206029200903325785637378792234545432560862345919359619221998023255865901437378309286657685477462036757088947405329360580956902748773307345114613354407177540282197146065225874104520683959346618259307356539978430766885194212122929335597417982543509283911443864427353022380662690661046323335508323303202657822891362134083226509045861086489147416462312432014964439216637391606223720548726145590808028953803384947384898547150034867397809564242162595413790819488150852725335333172883942047850653223660826058659041042631535688430717481496236569981746480420213878209241965867508204715718196739608281697334595458056509822050403223127996791141201790763312029581389783024032948953200193262721463836423714594475708102777797508179889182402399458115846689298998060203463327445705214926141255562146708132984133294195904375262693154047089878512710972871313056406822648373928691171954370804614034774872201843588691848918581001766573653998330571060639511320088392434884654705757859458523359395127077823950731467680858908441989409335591994413640862661857320812882898964456980697979737250525740900095736766846436881155772469147172546827518446612538558781802041650932579507319076910664536138798648951544439987787136779569887927262253828147377630954013702725830770188248366643103177569271734692837175298892835533888505120795884704197105411183075874234579451256149786168286548545413317102303860675554821528271293299133844267339674165444365187654828673623971087838493716856695200736706798589848409771478727222037225476465631298662561653747675767281387893372243552379623245421219107388728294602498414404573954415591250414600142024403585603662448900098949768580181786712619317782428130682016604708969899670001192658112103685088185071269566151861313006068493898624630577751035872829437092354584316075299561958292103442429720562945862804751165933426961715060198805760584885802812643718210068715098545688493531051928259274335154443970370834504599839745351957146906683866812077728512067127444686860387366444343043110778530255425958292835842896185478620007088996704972923972849230969192680236507360011804720334026564969116845702694411986231293652401279151566834222313619352204378196673436637958399574187522199768166202086794133204075980585034893267519904089074271091150245189823448018733579001963556013273131526227917769790801690289818779248831514609193181340014396756940343354610303030921270469543126602877047079455686737822740091889755435444841750125544849352321831250075739397465313006729132374535167982716827295000308535288539346546130461918913842706034967066831016841292065073109621000734755883755116329023818876173507174625162408084958833223991782516041442258132051606861532575825269812180430513915036795492339764225241266474451564980296342861741261339602808810385664529339089485568233699381205917542704721975835915057340220926130419529813770695611774827968851758434969579007138352426705680363880787958732707127549966212884134948326041705086647076643239698322409006006307925664991448900724900202524436451465863609720724615387898293110803022036278764674472974181528264247672390784684284675322838045149436146663497404801275673307539707674818759228903422443711300208217103828296670320313710011583407484338236000390333745572264210796927458305551982260593361395650983755741782257858433607768625129889317716470580579818536442644423411169980131921138992004878789428394458311321900229667624084884191883081824119501332466917224269772091955641416646020508061467969270064035969699876315230371011449626184471797688243873850186927013897049569376384761618421743466014744777532623809633171676807105450614008133378516399217921562425865075058678570559527041011754035900829810290608887191619116071173255722073034002058444853508009934361738016416239705846186195404079475152429547022002092962432255090181318970065502987362141852648800953868930067886130255987842875818079366678282631742209605044977386877322335654456451173866300412934616318603018001340729839978815589064227339828663451903067892103591079074070689287816109254751344494997247785494963395303610939048566273793334110301977669864772618819841405653636292682119179732816085859373256807754207509498677419011525794525183728178717126090952163307511607350790009518582643643149110061818748513365760631177346273340358407301704981410641653696696128810919612800075405831430081200907404046370653075494454222596452407013801910605346644806767088611058638361316265220157293620620153912829956208557241417724961450373658241160905981997225370690359734399472257367240908468792077925336938560690131951232441966353769739146685551696442245699629376570899038896132304896125104561191256507548759068267886516886320889475903272945627308030536108548735118207828907943867706349867541273455995962990011957594911929005069557113322704999245856513403506705804511175919963273969308126407460823974597628006169714928564064932140080784412420791686258213334921906906348809969982523608982006945629107378997866229870717986836715139583968541435128400628435498240226692586782203642122389727979581101132307177033087819628223250360963096987947442304904262703003048367397236858724152827890456742636257527521025979927536225245136020027667240096573219880569086388809506631069500213835029932735672385710567330722945462267855589153009603919591619888380035229436061158087077000048050557631743789615505052511452928414494648241488757642301761735746713857061097135274742500542315985882147142708600514483001857032324863449552281737395494678494579996748500948278485429973027789446152891818616907271848589650349881967655442500640802410743958469048093616195302655029494291102448064898386007926649019556539747307559208252282650500856999895677158656160037638616110011338166902190288951598721530735574480867048404228752177605622820951322633657860710072707881224651867038499962230512534836174470964712913825526352192973377368052643411145878068150479245322498025381494782223212556038238546317856951114853977733916431317055186330027153281394542041609123940759119606015394203385123280390621595962480825328862908798272023673832494990259687698875215345030964244015421540394424737778663494496762363655681708954303526316525298128313104091412830572323668347116977584652857414406266788234448035181130566868004813606484809597323643019740827460673195873581442745860399941906935239180037204162828081072768760962591654852100259860247364018128360097268071818380439283739069737238104876311075632600418071737486722821273463215723701526709768905536910873335896936742513190569763218366422494725637041964898993607417470199144577873977387916744115962557417884116434526788355489382028961943979675138610670353927395708405338125043025361098925466294331356190374275194454308536322993231015158860675409708324629083428544861705713573144362405485777707673167112722977396219616459754702974462268558278438216243806342127539321482035286233444716064235365260612365738407517329768881512458896030624758555086825923710645038347702387516030675080728942966664232716821453731679495683938733649812103588343300341074485558536270614735750823726690261175327474024092955960918204804942335192367073990424686015303788646742133697094440138092255724450206700564274759497463166771884226172655966624452491180292117011478517969632014567541447000276926601422648790418450429482324415486878111928736568439670189932165679688701263195495096422734057810604163884145239778640549599980156968732611053738064954825137098481619383809938940785614074048528551851494255482684707293209817014588362146618708472548221774535680202845274682659333046263289435359552877324622164690417405288938676316618809781023398424085752639060487600840666687590642175479162107667941240767305055109522665355677466808225875303797186905790563302046532061632225689781096288355859785736501801367868163711031787589622260331985232024103662869197121156033315962665946833406433467131662613779490429746208651419498398929916006225722959960874276318838213734554369940879361400787727327953407385917063054150606208825088732024974815363008333907746636046162154689011972749540013799121695467172144988234988202113688624392225206837369192738136780956754469199703358045861783426193168862555745222144446079701625064954458568831798572485013726958233604060373898620725723648809182852570147029881161740516335699512416767178592553320274339465793364063719360656391598060817770786625916155524678563145320336700174599592894944035601545586012201897501481802934445452569923801806310960457187724264150318294780904476708615522791866241196855975166354034696897804750209314887522510800003410496976528228461461953081496880365203050608081564356825773294252033749717266192686849578999192107727779792712864623915137784638713487127686547157871717615023649314889931503777181742309658345188402786043961546307304012942557209003472411206014592898939113607860808819800075223599855129083737399425454080325246650448167620398774726764811695091609039359203925268698431536057938044739659055698355492392739805328087780017163520107060000854816952984631209899849964728455025616314559669161908567783321053539027113038688735067651746813267858894075764672045481077436647393015676373952174720040462597088018999700632513709574486163644772672451783121493598120565473003520705835332619466768259348427719007763433087472728330845800128157568674589491951263415693580597458846550141782387462371217475735849798622460284491353028396872317124871337521286484037341512553115429005523206483510496733257747254509806999550593538962271849771042204249120008215319010526146556542283391803271766217777484912651575047109256787229225261433368785711978077889933853109213454302657365078292741075880784486218189084988171018387035213327533867065344851693684688832486776683949052797618095815029763865236552226127277620830927384879563957596976209897267145914672342605770223467753272085306733540558773760990421176744510201650741948498443765817623151232977945742164015341148385463016323147880554080448436457936124874824066855629401885215346711514593535144375816368829166035845610553005771421067982276474909879110997475262348724659455744098416714129635534814938187472107031702881705780765333679336730891543299843709372982544028099586562910794542730026126796942424950913883978885602274375791845869558636025727974382494264446770116025724918790611393789381326269483922831837551588428687182350378954155050931834714595892470462431320693963640724137429622373286410685941546017969549693724948059347762652342883984414346677894237214339562654700856550806052713929001964536347370941154239806833908316543099866876650987389088872776383646311033045789892252910785733376755493060142347297876999222670465487154696893334266433348355169371035185723816821689150338571589860053069220986572862220996124206334428271102900989664861289025631682252234847188010910653111444280654023985571073978518505486971279725968156925740199712756668422239141541719275130982624373591610937058650635701900481495538590229191934320293655910853493558437127878559146941343275819628972665369209219734394536158415516412846966406159629499367456573315147904018094710667140951993837639795185602577070838119974256312700626019933224463212230153199619358337038387216399809263297791740736508464816267942819879108484010388027249645127289651299640982776370011216843482540157256936397261794901466098727943241299172202796405565428820393105145598083361862083574199228653626922520523524658602752611589034820075512414611635386491443832305799410375042880201041521614652652266323720817262524009497776879437417529853734684303625401619500698159223240146535871444283182884623146889495048254569441694146943355340068747788240386590631192968926181261052804338596257959751404117411544054934899571523100020146193782317501513002822942233450802022530254459753297828440948519795659622440199265284102415993575020967351938014118423817718019217561976776222124503360398266509586460706489664078442928408219169608317988025678389187435455966551295987193416345976925495163822365306851889714909171624693402113436560560853352740963303936652906619360988862090008261762204404531501784958398519876382743036475630817374133739783839165704552562779684912989632643536610949712871024987180918523073650323064286439660225810037266076279466272491909635356410668109582912403298446864078681448043487029134979363759307171021171381319796043449445260678083347147868857484364365173251696841024273521533299187131465659416140524195495873718842115879889656019290064511168810425377614393139114008890373083590548198580740638180784475297771250074363544580372000823191054167967764478789986542768177250252398276160861376836580263529658295420949697635410921991568386363128614937821856210800854486406758675753482046500926680340780095148336673291327390770055438833812552783406615077611419360367988379870202464006101244855347626937808351203272810494795644093032720184703211430702784399476006060120664233211460659215857260944339084696609920261299459033538843736400059416555593442449942061292862175629057866059744038191635016527926349829720695048769418776957263297060487209746647285761124857726541182082345178109961661422484779902515014912867569649191535172289951662169961176446218004177989312542607238349539164771895755173900829992025449324240958891718371488774699023437690348970521207319679425675443748805281492592577457490461142752729455475900953688871891501305951295600995592984018338849979793491665720709150532279324421211757155516323351915007218286400720921505448099066337753988162974615468545647866012440396784244369605982809965769744013402396514212068666573762604715451062870430847356759036791224899556628347285365153785070313318517916949736016502806753809940393160694119020377063784092032767244804700630495457519450453638706021297133448678060969098901404218726120447828627377627087533160462192594675924835834803250024171220093020068111151397150571058389957444390142873167527952189064236127570736277135176699308066214265007409038962963464639524086890581177844987808393207908564356813008225157357012036317475236341347961149436190783880449051029513865460254676051247127670497730113144299995052102065527631551596207880353669276637244962718323113920141735566227954506387314107687818730062811872045611105980185465174853165189639910963634592102708826286198016203908767425065825498353231200844835341108532794689758312464177046207137991344720550269904331924927589158269736298500287237310898555077499231193709103000557235844727250611427359166441051293610426009161902968313849348593412387386319108364611565424152541207442448519858818861855055923218695318908286031598588884929085003558229562119397176075206947422594959856089364380878916674118736376384800506271970323898106830425594204103367527342577613253527261961881471392075993180419668025606435569998773070619356013484704115608413673419735197304597424084248316862309661718394222730519594028134240239682444565742813581287844592533825913304352457039109656838514326409506405882650593344187930030389214430080349244234875814381839212946200401579949213519350750850546473841555614403840511733181536124756451508354889623012768493445857131333355667205956063151237771583846829261476184076697469376503847784459895675821400322194277435057985289699771272621021123835019246889279453499082870053744163499294967362366642090588563042720585930363357095663996155103565784794215206304996722155568234750260696837108057176565381255579155820995359472245161668009369667794459179398779883703258520480153555113065793212741357896739025564030181355172910933278014983656427078541382119483629910011846369653395501079430280652813156046588323066000374828572569077991891493098668834736453248558911141372275287796506028439131844144004219338293607697430072100995080624165188798798323287370795080942406442259348126655372809038476061240075660439456135410052587013479442128891415053906747439287577208631013139109462085650961534932258129679934181317356824760015237977903967181795684346741314764677304695901538111208533907007308968666718333029025385773370717200944802658552104662551868641028993399532896357311834191696884555250736536962834294559866243560145221790748958037987303717831828523383486390578096871464370638190698136918791152351529807561434562692830679253855452306799574536440944873506598374668008059572920080399354919568256422647117915270441232955807958848608253586643111637844183557878573469187136739773013862774828088228086006486192101469161692112624617181173905572043936157932658275103857361689607928652564491565575276001234697286594180318325069146435054278331808755925778201343808744200416838194846188564528627845511935057711093650635829485589055348770759860378470370165091466319361749311581713004590385952611243173419483354916602732001487544012791867664705729402931394014669217840192245272153241295941596968376117950685681836750760641911494982828687677025241070199923558080133727537327724198590451969520104958870590357982934788188972945851855868657187329699458296950505325653425426158689629043630331296482552064066618082771084462093445081460297635550065008807942814625665111669237752300628234674996719625988205075208492300054714729630198866686608085061516843619351499822837326627464243322600288003525071481341696749666013716787495101943227848855869103321727304240520584721222998691885037914257442740794715805496838639805632030783959757995690070930790329699886346560354552613563349668834877712616883511646426437250267259524787843188903505082467488211594336725840450580167510176580397493901810236804126090373743992555705430503548107245481668782695324281833983222880717349177036155713132036916187550322305670195204536242545772113075388007037492980604111584727610794997375754452454496300875593376188088705260897776416170380433763024748700461029000217617657834034406401828255536346886483398789074645080792845103153592120692348281096131411900986545890835179229876209863526112368937744697066485897979215626631502942886076422559395046775914394160695005624582423348716646632458445321227827652416437642629341075415764877385072103821968844823729011256764915730599209162482226186814428930678431764041411154571536469093330147719311238835900165084550275199595309211098280123350052561552842025544406862632263386675388410600024696532932567951037688761878979316961907053308617566024726515920767778027888498339220911448278216586595508055495736815001137839154035779457600858691791938461840619067494844742751285628150330311141728126334921844429971353719129848437760498855507335373335254636143481231048009384936071084824914297292352032468212716526169704727595686447894019291534043065924145259523640749485221947279138777070448074104249196934588593421150273065587025393200139133667879396330741133245502016798453216451490659977054526008093326109581377515328796304758738870347775723217621679333411247687704078648998158919283671894719170471336922502507968480159095376723976424210860226384078928908552683504830391638326888433307770601206589147273648184462247033718514829425762802617779059940620182005798981591121659690476076122727905972959380468228157501072376677742968720286050234268617506907698740000194478268710401427642828075592450431720582723987980749977791339930889312202754575440975354908619984742336928364607911871440449803328968957751448627355102692000315644548237761535828670924954241260812545659543321227709930327232959018091800407200932793614161933860486513580601753019432485490502026407741602327802565200032227139239167317731434429211514704365377981330462256181126742761857146873617641723120261669713998701342505865989933848598433726069586454293655539393496675602385413021086328014816738643087919405291139439224234932575271972505135075441845106711201981062244575952595321125614930093445253251140535281031487386694755814626873355099803231353650027387715694056624473675730623891284376622096369678702108240501700844343544325907903602164290539257812420069706710292217373701316112523886932228880478438916267960359235278787493688583201968783307696484328307119151946283761983728367518302040202187213952121983804130836830475318503073490911969651688260379814238058937820209805569399580564185844184331254432477579486981480885226921916959000498916613117174566887643088621437073537492019192806222601456249648597838847877625107881942301523442795552878107023693795637249035371820170108356097973902736734322594511059908888534770919367093958797750363810004377928114626075838338736886147537358746308423580339708593991729410314164060710174125444664730808205372783893862989692670446481118734642255983283930986892058759256157278321409286785179563385383339580504892828749799276616729234672416250864279352341592231392159702213213260791467517520714855361353892509143775969608041762408035651201043396075615097674157571656937096600669596238560475476259261138143703914896023553288611482123311613470733987625945261330019154619575877716617790987878086210499572773216450390522555067488642655162189971594473938036534559289340320339918077045428547889288465002444059180857941988402598823928781763842853983875304858046111871156709493769693035585141442521388905157399634900804969698831750353463026080813731083627036724540415375023888123328590776197942346355847629253876525351815868479221693609405038187484646904586329077268382063727047663738569416789878125045890009802655553165399231166854253042454974217781232476649759380191518550863150481877325436155983427707235174670498041261198041403072519930833276046187184677947053581637327309119935717148848804429262688011322930069676670994308304939621832638099147871751407000721015048861821878011264692073640641840668063639881448016716557637700092607294752890438485253899311730267599222311811329456713671681712543978306570480780669405464502453879926372419824739148322006746968307884301730981821020577657565431718252963822100473783849818469092359841253636160176488696069135717897553177352861439835193642549380781947074602044597946025820604014605650714631317137865499572065702057849253258421937789687430915861948113017089117274201857376704740505187277830118026253617108475669351236976776967029691281778413742039481389566574159767551778754442333764612859268993430221804577327126981672173285678704689662858818794286969391691979185541986059805430212823687458522731979674688717101377411023599957190134334345374580557138830200062858735486158995622453966901474989414037302100740823129237307731853975121595439460282411511156524405317242072221412227203550447108878082584392106373032646858335025515895384611956687198655935449729946451050196113226686532497384122574737021666036745560741724303711421694011806279099480826258043594801360207907587849739392796905156719389454761225437584561122940313033620223698447056097473153293387016606447212692919929475304927180724785454240419862054344855937891261119633624298833767198021548207959058103790037292939260581796237629216681849426310949752124423678388396673236594076138030632506180941282211729749777304384051289220620415045824217688162018182142345672798004506413776363796745737767843150067891904873968630364545065334539007089698682876093432435620379647091041005804189841290309575148747490015583172940702108815400661167172184852206108200986057540656355662072727414104536650851138254796173444153325256782124590252073037469131925090486410715113622417432501501928133167930220158496550532752541313895892267717653685318616677035907972619203156915812567566492892374515663583922070641363434345491484888245012270417396433403532437748368589037140902101164407246526281582363945087438911150523441373914981186591407011098815872890881609815083816178217422091680389858680254376204978358597811829218757748631224288455342863705886122151284016051249214158416497238571143957447679335038744219790507462105221932275555021309449408199374817919620777821286789717618457421845532647892857150982086682380686263943935288364023247999576134197706480852917533689048717755896107013275316823429268197369754568368290234793561832133792106361612256797510565601099976769601836327235889155983014700789056866098664774018906702999621004280677252300526922105504721678824104728075877233559870990456613122580961369224854808675642227982812937926402692238880206534746342520931783499768761894779144296384508867209445327285173785996311594565086653378232767005890075471022780627272316995364654977117045819515896522019251507335355289813262442633133797141931867047539908302614951066597684517657007241644231169580659530447785802628018643287315062028269218710427211255588748867602172065400081090352648100180716316692929940913744641313478885355210755697422068279382382377069441842179586765047819288918112260320139244512030970415357142105667037409607427313891110060303264490082067020300442040635697438248491930159651691275969717509573866989000745380874457321344081084636950152129667131397942464081861840198068787707186648174652994416549739030207933534104866717229633257010098468605919935018664186236493183739847040924831643102483096406554055752222855327627257470681219659812711635344896163738674878513821896652770072771111695573394967072609510722949394827355544399014977839875523761883011348199962287370931902500841906028097889993148476934667038320679946682323884244753255608958391036219379956787818897311141680187513285788666763415536843401261858226074772416585832996721558450657449071219020649636973349188669831613960293457393189413154565785326152699137202827060111801933240334338705508511513379300161211479704528227023457300525642152453707364816226674935770259874796412421687095114358915209444377712940696867177213527549358713939205438672846741539990404878266082248353803156447757688451828125048443981627157181131366700578476184719416151860448398323511788666855570592781897885711300459743120605971528778090345207837112445204887778754069328591850390629053918621924265073064615467359667884342333754572173639517903655908929053200086079251374663745843849820567245593479688654132661170853456534223454490042484250944846254126007214397143067542998940629680905183943498737466416598795009240765655791050579197374902000070979558032314449950905146462161841503548394129898042231255132212045098529925378896575978806256627211772401928110645201302188493181769738545177366117493709687747659109495157928043511478533697287962471583372214004765229063154278110093133766726281942674939491294034734661734306284084681900155149062999687373799458920483812903181773712603577470854107353645500590949632800872386867504320200405027637616253396737830341737637012489295054615717146114572540539512726670453796208986602438969533729335865004476387350582798992243090200469497585322143439888754772334773961524139494891152545818485530691577088775306956969043512447026760339068629087404398237843928311524113677531277947982249128057428980687317218099427715488972288094500087490475174319142754122687058763148070948493261078270132865408112576019185760412363928645671592111318706080639365462456275596423229869852011279286826705446185399533665064875063978450640852170764904680174443785587315460729867342747797736776903920952007274773664322446365802025662270697445627760418134157069994848043474896365353871644474758136069472480525478609763074467778807018337618597557351251575801497826635628780777982054843256768028934814403898664560187388637313873317735171397643571014642324664539169415010424905809465487029475827978575426859973756432669774352478019772823569996669361618251430661323075078661534531404310691992370486429794243712948075736148080957501397871740721088537066741890783401344825930996046561402130667253066026087502773886582753348611299401162219739391479772331293358229931425711757891196796199834236858014524633174279766063194507621127002613683146888163552341340408571993710187404731323649307613608726149513604738757708510051310163017577425899611852321536132741359152494705240936885382676985254420414540003403309475192391632720829768484799296717752902708866958785656889317062770339576489852106491545924591391218322474904592162643303717151693666606064924593850469091697304239650890346383013793543243845972707464333693920597568486816148929221938947044789429297325694690003333848439886467554975624651335897777337626557364246924877159598345081359740302255399159418488714028278350056924686473248545011247694622453259307994806440120804329385151610510123694537564546616290415645689980033595073667601129637496519222613291139951966868625042626647984878181195693175760517004819989776612974265618925899827880059409698612596181381866328021608816054387848826383639695131600516609513992418291626828289347532492491415389636992195579702918587731482528770548092790432847561369018264559666195038254494012868800506535674087945159260220274216341717051498004568139919888226567414485340409204875474336461539085061415637600076409647722107616171884898795900783071446901801541096889440092008192090847288643844862454780450857370025019493788765419344529660865116300261131013295748299201621453321008019441814703708288195238636827776574863694487228026014181198407701812396222225781103842857675231568618713313270481064366306570696935549874103817974295220061951208733837862237949448973877279473045240312170784144463641467719534045575906225455031234157036845580975848927601636020713398081384519821803982347854922050326390983846693636647652142725043532810965900339203894327938333589790569898267052867208669583640158076377923456851720285826963399430809799134436540025514296550146953082365481054008566762213674808451726886984344531236180787353785779011239314464784271888832564406133672606822857515023465656079797527799554957623846704409390538010882206166800206349690055829475664266305900779594406265183651441616179376072013176599082088845709439853745520131907549172507488097354759413701053635481581009730785528063647847481315717920647128170409729823590478647474367386482650472641312999127826698671028868105566597312516203183613808805554343826926960974525920029504875960116530636428987718284154079034099327922076262133209420890907805410305033682660185079825740151355420620606929663345153802026738298656840140390167298131114380652718960721461296349990736676732317662683618017360968766744676263074517347519123490442020440295623225991780034731019872267536194561654750934057587164447870908306414695366745262085658355946487537202247789704545789610807069060319489864251480580016592352710193296573871965911154269125075908072084921479657639860287763524841796148482245127619821567060225059757941556346685814957944233781986801107054959564777386328649150223090830515236025810189167116639513290640900855862865611021871442511479184113438146405356914846596373329768800338585551928962128454775405609169157807303030943563741428185500695930997929029456008545656989373153196857568411689088004558827004349727310339908003412532699888645521866819214606535722505533747621400747527729146551072364747380273537751909232493251777825634480936752595347507436106855062257375846348825143706345082717393287986596728252927277397423652197992457818325193092861187778254936189188458044758497561753021684859853992940758014381592291245085085486103025010473057292936871898951506273868466235128333698634035044607933545346767529602718771339627194166946186060694500435832771888414515448604344824734826307149314553697982651787597641048076594656616173650490438665511533056383098351492743231075824706051879815940409157292364783661497604769775234326898965384421446622073909048571807954223026869401369438103970852232347109669248793661516711162763186377482082966047145899170615353332949913151941524615952966048101980681667888676140236815605746087067472235031702676326435775920856805594960709613969225048442150952193352684919721453967208172391678796761607003713697589395590831352974389557555761150222567917188486738542259189419550256538371279014212839645281661242595258106316891882535279558517603133860186643134707166156440833984330829222166111293643145195943402106534435010172829112545863716618518609369175741423203209755078851742424463083074258435183962380847689393771882065368731416912778147515495430230558766427590841787850546391526073758498260826199901655416572325987894305030085019494861461209818851414910180632091185649517214859786994080889935589910763587602590171926900595471945381866958272598834272402083856027773378431752442653322991809559823092141691551190602220908788545722237232597555926881537529394502307054631951715215364933121940649743724187729780298030546706701438825928152722080665454099743440544253415150845982965623210767576650205027669069551346379748826461749785909950389005800833551979643165015181596688693858142035327417734284917665318983478443360664777326743528010241273308420157415686563153818998592509308528391939431328353540044255814435982518195810805819556171187328700470805062691603644911816295699541596477095638314299756856853137626872358340479102073985470655288037570444944533960090300851434974560939277387800958783155869264235698587323861678599316810280502740922091813838834059179152503903096947573061234420942663974338040474272697028975348299505640828693612411910986316115534148614729099777619334208831554548807111572176246352749042012430726520087684012533478658302226463511166289931349503779310484184820281590188794594165637745243054777115243447838459715000089556831309261160629550058229530685510139609397484442125987974197013117895794832049360928426652209041917382995602082959721126588473944403880523476144215890655888264921193689168613251796470632851532583929568833948059896452520986280914262179526244552783407212705469299487620830721194850368528373974631433790165911998991331050866827958982605132370988572394847622393484801501571061219742760881125436358391213361711826660378038438449380410410320394329735976872578873530873651846033904121205461612550354055737033207822244694979732958225293584957371191922278953258348823873396684839435307353056827324561446479257973233398912845613224971439392060412203170353180365860093066671186281225904669472202341227685470906833584069931795353122655696122747390048331332660364570120847187492727998092939254452135321318820472004857017869298565336819437274265340672081992439520983910012556862793557207844619171745207611266207253249427043154248865656458450339642109441053912311326937051119803036789449530177785121759984685339027394001610366782519112495523618035925947746387950625155324465849164004829159260894692366398421569779048359954603852697354906506260946214666623833934783299274991205021837486731125287221024461255369250482753399780555752493120118476603976876631536992029251168201309792321529090737279427065111760055381152427121119877947877784779322604156853454703286171439962376116643675094308300950421128808694931096582237560143356145950354294062200287359459659525340079631365278479238413046413847804236963195555329294900365473396482460666263417178665083006548133960317017942751293374302114515918907678387222575020061210208897091371538832703729967553522390318468307116507531857815577576484440864769235951590799486983871769085881817487402726107636244176549449999054793380481674975408417579645832022991179232792823359454538055347987955524745648432460458158220211388156283786188053617657749649268442696631213672696074683153893694599077089881711344523366555627501602622043304378029422423063533171433350629657584044670197904170995587428671294444058019079656279493465538574800637096795738192519652416576628983574290033543854419688457744519092652866860649877908164839207798803971577742123296059799494593186625010327688237468484146304517928842258883304759893042687153998604201074517002102926810176001800153412747186206900949203781123190172964008740974303902124126330872735936941358571237280626244437021586818079083970394359274881153085760692327274115976023584557177277591909489409872776621359054453964676780142077486606541832257087070343474761252570625956123255227680200704624331769774445032826226195706294313363614769166422194599198945913056528331272038244458774325490477553242727920667154547221213819871660233734836439305153650918131023605392380978688845873463067747522976497617270798859844482934961092534306645961306731978605583776479648644142133471193930345257610956085515472310373837737120285609628909335137390470006717229074707569110616968587525487186798568207560615305789020547935300117870796569646291886023507370209220391891660145540637162209985787177509326244049404528670255474839000711671044885854886055014824092849935698985804397405058677317090857139835899047701948443371380129954400961408353433386430435733932627518216931512843781510585593631341944643180809140526964690085770474905200015365702750889222413250706119572986228547951165536230495084853580037444181644537687949534819962073389273209207726903169051479361092128448383097714143916844111050373402634674719583965162876920710437830081764826718476887781405658689594809183077929626769417324536064641261476539261528749071224624519836957225804840141032240803143400151461880074357861829468563711638038693136038581899453515093421716112262318932043999229469104572159779480804038160599057705490312950483321720982154712368137033460616349476860009098892581780092882951738235352605357482491653760189436070981225715161143395651678952073285307933334789653202040402236321037201622793900831943586201366110725010230027158739515263029939013145703346193676319103027431454318995972760421119069626494522571082728335046363356794442214444640537247102244547868236364730714548523596098669307401972351989540411142364091241480170136293035531892198382215732289961203439322969173628529946902617979102007732309325797323519440621018947315093797967928221024708829906916443415292710008959871812251303552374978944075611545125080434735698464413100027334933165893274731933730535980949519141127315790107743727996484322456205391009375052044584104593175242150212218747933781906274335697865427527733321729376612181886623852070783327042183462680938199535217924100167774587034603537729038031606697319772939613595336885041692660154548187559714139046952010316887446409704651061136917073946533249055816130202167246721472905045931682842685105144756323776501850438037811153525374074919886773944244629058611974927565959153842833949993340610672566411557168224888745880585407096949537144570394306231220265551384712553132666058239403196539170172629623985569754380064689061471357438474347493091225556273354187387326652582996834408637832683471821068018513738855031328487956019793800077224043353604846358894647649664433000017014806614762285211758555633873082509608347836996093571693856465000520894346591571501218394841724274636685526063412619024050643330523701722054966375204219318144214316238474670696421427005675781075696372146019475519558721867746055837878834953073140644402725805164087858099141012196166751898841310464397512896329674641238007475013617726718472434345052501296719716457478319867254082701546125115155012671977268208351268442037750055774700325756334547211420721589661428214817177780402545861525594843218739507484370701620601606963391435379714797751650981945372109584141497417527322947968875838781942999757514203929889936753282259402408408044025863020850972007110338183823255586339139139200117779641516062552798187357997815991739928424449713919659705541924114104164471477108127343849238651658865719410443856890012106670760071743668724362578815311045440678487998801523906319999921269283364575332214664899325353242106724046286472864502563079697521183930283606397744955265544225138357911277285161386914315652916160539222236959918717309743609014804579350714904249139532549149541034298922055374495731292795862696381078693597991641368449920219402224773997984082089741092858779528696267862044153794853710412985370383005546569905038427554904277764046918735226763540369861199805262779019564878945628643204330403303176640435472302437757696733149655992692995333398481278565253645716707252302916468050205866874732424483124561584131508817171890893152089087875188858346456041843544269683528455659634454721059925853025601454268137488263451119104018032079955659377356192865006433811299242733347620660953714253678600233143437974483284458956684085649814556324370355832995565723184540653168028816898470977795891336958250747796762991159581699610439129844083771039397908020714247751610733132778571626612191083313446945154435564708711075531881284950930972390737824659551627161690801904312893032174982917164984258262396602618376604197825674493032059316545806984549653086100964385998734340805904428155311275496690121736341898381149278863702145655384450434216454171448766504677573790212688250715597635709811379645748118626154731596940285033877214529243503524136862600573963374173671616785171786591518971306208198381562449341826570734217059154511499687839562570015131508921124430192966210001341691177658559505233872310046787099820836441240787567281384777438994820197846510069208788154434743328911357974322841018783910949081959131140652570342152010508494432887680703777332242409059133833831418962991723088662166354206081391089803076616227203640642402286385417042917851082878453035234432970306382830058185164378224031400874364942568290780766655946240651691071044079367569892200939124612295595884213121780135043816321922746720455556070175814653594592659285260399712534705167061101483250903538705594300859487824639583495790153579234899175879901255062531187186374615358272675488876729126976794283278679078250866656430692562981636884896998364320736552903190965161685530457556081650576927192792588551397506089698448821351903568492903360964613462395229463758353312186035120133882742290789671872461418445082170920702869958310495775988907495631454542167700065469748131682241075469500779309339380127176310792332529169434185895287231894245182377883531064261683987234502679934421669473318783078912263072647865554564987255214131215659213268459155207272558623158768733007154602631794426757288614045818968377613169149155431722366424836080868420782936927983389684073258317448868034298045923503729395405584603055977294763464080444073649752463123862479146398915583317739287004618987153528183168132788775543423585240262589847744385054304565577493843815657302156508355331381629764127241540792198521802035818508035348425363607575601375264922952810590058311284919070205814682063897495567135513209951353621887004047641918637856725606910056294589487427196320562752653418540083601596491447658687329395085513089361851850123945356133220178930300153325829182340198640191288119935217880842693756717770912160510129678704126909089099604706687428627796240009765378853290128098809233842396869041435583935447423219070913276120121462951638302907436310961319633277109409979647198114906207492947480616152078605509450308676900606767511853382729712825786759676344697551754456962894950853221753475596786405493807110051559718671788586903079884916986535221065811170554984306608715642599539980421778276831138233928477052360204072056601323022918092081457871480728290382939354457581638049459826292370155551205932920299301743497565006198706466951052297164662036184628518244877013577187259043482421228613063688474102351365923411499668540072531419786921606134632126254342366842642693929732845398923979660866093679577191117822028896074867976562533352521000290325313521611209592970286435419102122260930859843958227270540964354189310540197007555375701437799582320251481842625215583220453879430741721119952956134714124111244216712504661242454026619696833637617094816663921948120252134192789500592391128576360938338939027283026065181835172026082371981580123363389571483048972842486478194067744273322162042125222103529627900841928974526979743325527947476744898364038170219452531982769573997131082536541678558171539950838142272845719386080761473856827533889988249017165543262757922064464887083184095503606723300204817951030050769719018069631473031942853217473754763115432984295660338002449606058174618727199080287238385134858464635081190943677827157360003757580096734562161779090578777927814818693621296195242844431729054683414387275631475561850319983102847638024721168412796679718640176111003801838520266258325885920082932784407145035858664864494353262846880415904667743511064704441020409028157083251409089922926086963648878490488824694640027673465923605861193319188913881803297456676299066884561545438454889321120999314606116663039734678707541173005517505028935278383077283816617631918963056845202212876379670469227000881827632158088687155246503728398479844909505181734685790427775195114038046955554049132552656840091777287700707408514269548693310679358622596631234575632679549162632210782714122608748107960989369298318797144645758085546638051122481175789147730729488870781046324207658575466840502835099942206861173570605994142028723162301252663027783506047757231033026006336150173398394045893145222907315455474138720883922551005895541189180677540038209129102723431913842039972896546801351046837322231092546886954560468652392688038998477252178160846392375416091768925736891574205211816575057476842340385680421062044999373249117321803972799135579274071695830421488517344629688407859920605324775151971058796385090394800611210331533796829190395878410866637788177609075038774429577462332801260242278738572336304282281707571867843014649554815523830170198516296134461783489356553886924316751332313800563665680924820300096423225480811430903757349663104384186408647422109040446249704185351235576237020967179794521273267345437695296869211429923035802074518951815146492655281068041455567873852104078457299521452147711318807888000133961350654249646101203863471598808654799941752418511809345742484598462577585874820990673940729259831588033224252572841669330009508040725448964221980844193010377037163605834870192113315907560358270359194404291530628618786695228240374123224631636004554187510015861991507835714080483080036027235632822227781385251912597941158995374296627053343726444584008638372221197243360531508252580593486183420195346837479796774726281128489375213744753965926175176687492901039203179066662333977460639780024570573144497568513010110709720547255774188917739080410447876591237343927996926472940783683330587754453809145481760481894660253123859471019804504916241667853534432881991560458251488220112963580649041867478404863846942327343441544264920838455040234637047727431342897158937033451487781563951717857731683840018147247856237399251008224501775391187375855111709190572882506355955946670056862661806645363214429414917047758736197422825645429197709928495541812050688670025833101211669084719156335567678238255807498580233264477547760845729913649414659353716162885475382104127614156990671892798686945377902229471444587302218237846097645821521174345526294073893853077841992084520138359909649990502195955546923736045804578357757478274014470842985824181677341303896215756113922129138681584323586522479785537015755033960345915715369714749378206066511458381957664794622427222656903600670706979742712119536905912414867456255807136341102605788061789220530106115365835374472871872420399422161290356955620628953837944133161392446711492444676100117834596981126355357481761581233619201520195288085396186126367232185024782969786408117935958273012116691885023389771872647254053546222563292515740125726534879063413687194639675159082697877412171845495756781947999339815032727173123323846345126834163775576906068283805421074873553042570428510789788458406899374539438267045099410792272465671576815567775683282063946183621143290386374289706933986103890223264528754254306894628934165426411601698453301543744752645266879117094437095767433457731316475989593356183717875653503520429189705510363941717944258600397473228368344282371239627309396777467618726969990389618450961579737918481663648409910619144030724662869078827692854835532501980712726699631593008861004265926164522937721849974403834930025357184871832247254995100425873887361896451997329780375088509186769670388205338655616974357147031431855093328325101779026889159363171772061553691525907554353323981065396837128385570901433093109017856437917299872598232578770255509191226128427661669554674909749778968219050059305324995060750576909733375444408319831121638262546218501151784706381504363667276304930042607960023783172899589576491160470497330505725275560062890519155649246776536092790000760159579176727741439849274663024694355850473330967746748166739715001693950752979858816753135889518533277154109961845270337316247862631750811606123283936490442452484220484697188766721495435376390043871901187157935247041916517709100404635837818581137374546966398052579799914370802207481122421156384147143172082620978238316003676742695600503754989353778197129240988350012000899335547507396076279088987676867881919548888887014453806891352657267544241560896257094392946461374942269932296311151048239651315222395885561072629961230591426251535210338380733537118731615655334938761382206476958371133889387626639360759613212980207020504066135090867352143745930613346780718450906108963652651766553548498046563976642159462910638682269955710253928540079110734356978571525070133128110142164200540077917136614692648267734045358107502434127367375580738603757368085142170675202448338466104612217187941836271440438857187137285780406216173032121322857680164108378516549789417131346745170170467886205621559156958049049307982957926957246947100803004650192957788527119159082240261235542183708957443681947081359089595873737440289069758327608387918443598135943843710229710152297192373063501365909720610703511491111028200386845701582097038036591832752939376732203308677807142852074975393055794892181214121439984566568179006284997160045845916603625596027337668747002041952394008565676079628460923815591808707840750441003041270665310029078993291871328794155078253540132755430337925319334773314407623958814540934023238207327283029118062571489023195734043206325883061338400504574278396430656786573678801334818229490373310891611657479649215641794426273485547352451830917061144727350192595729299003832344676863345901436511026798022021971741893810338161534220460699584924011713569748563424496365296526625923891370580465239114146722830235562799127374599438186727352293016690497925540903008990909456916420505176848514649837619681435073915686964898287739157499695209920205535875647767869602705359943793608318701229331118988568177461409456381785214709634099912816056962878225771421752869163287443554211605109626564224422242185193341508056076826236354334479829719835431917955661579991129900675561445981186163997866157196732404721993630297993769142453475476750672791398273860147661140794473743738022604558577676437581820050804356087990665500707549381279024335454428304637440633350971115012716161260621532736949878107577421380375091068849745838421861942387257385265160473195377977012060351170743443289222163522744130866530703580851120004790506171217095387921554423403997344748149071983084424402865934207344960723416221780557088859758222159969410361985908388192503810982501068712896851018967438394551506710218812172010522458557762768962994116548990780508254311864268542300769468556841950404837086358826055699119229840617156714198941892844132369315286809331658556480343444892571105226674462867288042984313488030160419979056984403325308840635660712841683963337872999683307615753213531194601388476238098790139254721065224583376631532737114626826848623276410925054237096998882632781119376415385263774916734428799467545223753618952627948381588649091536926895211358317869785343837915787916663237558317964965852030157446120749804559257132065704403504867746584118800356945751471014551013147829334046580873052928655962250556287105388234798597685588912145024038679030349872534585498770105385378709210673834316410968069466957199240769548403389543300992839122876725719479522852498016085316108183874172003597997582286993897674052083411303678813198142582531215450205604622741953593071067645154282636238108230125244326500489621057217848838679734778329468301867470469690582427231298828294551156978674840828228725931655470588954934765006276295890039881135325462142793735602062975591776166624469790610030905484162103109781532523510524770304281254445081299538389686133232779701380680437775612456053623426438000143805875541353174336487032877247892433616785216291430995228362535855729674310231922081283547436868970102575738933822832571761621822025724104291975252129316906310859069191074559248804164083967006610260295449580328914914117786049231606076365928508718274131654616301537528992662247460330391146478376675106043697413561471655335128846832849051221517927941243388045296328398879244337113734864591398537924097738712407938861083600837115472441261163523451431911507812946296045425847934001172631613058006553687961536363573160460582808441764154344040231231659347603196191061554019794692670119154707330936453222015760258304030825002436793463112414237652074085672499176601287909925652112339447010696072829901169671321249980337753791537240122444798932580636469874455516667292142446586887930452350711178439300922489229259944358079931889281865777282880255439189041775263489959807033525650812639195050932211867591107704850507148490420941906685868294870157856442582966835070299968963350265956412710327692100229278270467489700423954371674469916821601679334784063530051094562801071507366091675118715884434259057750872322583114021620278831734179019040142605769607296285395456673145399228127830860821086779711548914393924916036049221935414355643185532706791578270665016164846000606798985308914135181346494865628914977026969994343365651334036723201360899022789787397152714640626914384315622812468221543707449956435299815047225383423555233888676763472114618904969071654393157637477939212253825795582154328690478303292343697795463726728123763093528717631581867620889265002411449365764226561541034718391781114227670918640811811323507606284790644475476715054693248674424759967660955601203496966954337264420964050484049347108877819859539886258455161889026747336238598666243673937777443776400172432555799236639559426254221173724749833640719942473281320175815627390825458930922534731854378959683026971952342632969890706445208805888390577017820082517700366632508997665273178369841858335844156855734209330007639708055877675670572502271021608913667918990716217379553280699646250253364533064889022754381658695290672645019933956603331458619109814318549681961096770652769980685852624431165578584199052486502186550051629822661191109090712093951228140890064898899876470415528211756617581871604234390085238626147380972770423523690737625387086512990491814639002460026273095771070426112615465555046512997268403856103763307111484968076929502207224329249880795752898804172246379216884840115272179801542355098974470139378536786144894130292490903155012133273181831876583099296902290295644104080831765956463919521969526041850357430993981460775994077321486117223183218029951309193308798656674959410686350952396049149147758403362754001575143057312219093240412363415916164921969564076838381994907001504658894762932936490206850437571426732790396277831459178233001541786827752592233867246791384171057337128895511941091513524672234247022973926207318797157379968404928845203780619229808977669313525514772434547523060880863822257433900575254836025244839493382885147084916695329174912961374546081360225810567271029725217063068539186168390922346616169595934845410218507367117862117155261575195057036425617184411977012494744546987579757067611450038405698168047143997754151778009876102415331027968126797752314515131014354905151517299750393904834747134806697442330998810333001083810037833213879897239090872376284407003493505647252632273959810825651174607518934426028110242687559878711230656842010417059787507970561266577396913407237802722446831025649710086976182499181596848618343807360452501677894845802199669228606750653952543569478661867200207703019479567031371489650515653098487152982794713398813125517829956341949335152299960112789171841295249547136778927008760029641008273626437927660121507196904882898565734187389156097119463515206897659176803333945292115872641142634928405131165506541157461098982534881901498705724068520301613200897868321200590051185308446940863728651311495293503083012839096965935500667662062145686211562240628874390650280777395971790497059899813073771270753008400030751525774626749237948846798754121133233029246442069569786913767905013896795655110169464707461283760050924119897480420432677255234708333299807773427282256884985515508664727281891330299082228363826195656012903812853190354939096616336572448559936396155873390317828213299003024832509289047505535827530686135368149546481061217343111925413558789694031722041311981761814160316899966537284167635528159772958378644506860156884569612638199594718435872402907026425082792099111179730769708727244968369736592940323151295571002120627193773521673546534844137276374618093000043982261278343686665589098447069258311247351738651774982150104692708076301746226252168558426721328035147032274631730202001957392231702286826217095049277037599636169972274250905777382721486768724261875004337346349061285600315174054354999707401685799692388069334152965773157171607440768589690751981242040383614109744732902963005916766679932133239868635414829428718822212529997123405057415494336294076444182340020121112866272561841380908349846328331682464084635283334927596446027572826933412264847133089075135603154537055922762799279325876568408469938404250731401392374997515912906081477659708880475515635164446241930426843955393614822424463637544508134291973038967871451638520664431696670812070308811463605189184579149096024517193448544666520637370784577869955413726510452478762147923297186914743304853213804375355184043863107544178432921919721278712332753706681636422972399759180069249609166089365969911970164264208083046953305188358130861386078169558885710043300291025337433142551832530367340017344633767408709058602401778021335605703746378067522134277153993288742046390108667528515009206882021990821139623699614089358532442896116123787890903719839673334241430121450755392173902353043452767381037227111097389053616385716872777627869712928619816259297587108831204011835971727004375704955396700763290824133011890137982401099992012784484924975001647292423499763198802359581164224929868688694209270036576155381655798643231746138973614479976478391756696692634977971568454329936058599599049538159148448079150457274363810680514799346210486515814407931148897053186304919627600003977319139050310136824762837728743330263781113208045636165423617176053178575069165302389321338222877981076878539951761748537758840312098850465782127416198905682666994152848481112592317166631175871879563209261879257091312985707353279105901361177832556384604899738803994199156845339598157257888088994574357164698474430777086245341363343054295024099890211783106052025239519743731877257720583366084183837329816302581512518845211333542720894208019400557833539089963424591080306689517336617968167573829002583965533244390691773484274297222595919293666494071878346466767464426170049866341992253846607364192950117257767113939624307944995410313516170917498781099876237401164348748564516740173886561143160818997972655816020464881209419619467738414045959446637113695885895492976077707508417526851020951721114595355880060084527668653838761153410308335544039290679379404214877617724809223821345963211623467345462150263334861350388959754471804892193156186523414015393473443381032886035132489390347577538775722131146795295333392038292845669708899081018076833227687912748297677736713262879966055534826976979806578993850053138851030867939320969872601439008863571160552898106542210291037737317463331067522954644821967695599927806977490435630508209628789432013683051555891589567496843252782562911258648673060118257502920342334791322076110639342737213633268272913318835577265905006570154784922870929485266648221848283599726573147503815915056750209687871118620587138603913344719320355736551100068037691591345577040963645023654896558834543474341418118711232684742908469380172688640172056357337869104458879762320574232476678670756391159128859236649133340029919876089644036905987263317902262541098858842720135248482364420094270252938560957260977287139754120492549678628237608584234239903021504731773437102718561329745967313201930191133644830545765665950338851126311474940177375535155641741285129021305007674504685450467786944357191135117328064584523427071449716541925973085131230211478178166254399736321418370816993686744636035377501761351338942913368467408472030710629387024906675975627086782008566582055602330589244946027535107450839903350954817799161602912662958539376604159298199762462197024883865636694228828228961236341605471169975842942825227675657125875698102875874531338842999848464415957763165787386234187983778125173417458591794402194741488532305117680113634881257172559586681303842344070650616350024324265421885032327240427880580396825722310167525460325909908940025129754437345430288181038730181163134390814820995892491294183462142647871545434041777786679507797595966459056219592210931880249110997802755394289624413853994483467764638794390951493608973488556060774405031773153072390649093780331749731108290932771400307956009003585279692671457618641370496647798160114517709916649464959447742088599526905789040722504177638227329068727536959824441149340268631981172785098370692007988475931990273214255645420739068965443830188562200294236974946041806636340262854825460852385174155891015623275010753807348713903849175107294258727944199449019141135664424790912282925945240128778451206658954301902814547714804570934599391725494605246026209867173083531452489846701911456174598466501906740634801222139616508051940414911853776075401384804517828462004116850368724651588579864285279095466967451699422294997016837766555412195520792590434626440663030348717611016514342784692721546352043384393026292326123561665249155524008983747560358984744785210427404382018068785627316387070446584437346436983279438008776569731832884573893176656216887735134419344450372351785330070520611405107466912443738558698462454841372383127259050462998614094924344363294715327806374253193970941608770300271117883915532221114701646488375615715218701722384031074406581669750809283001607296178126378619563557064051358857117525192516935332061062048313871568867676788655370535198607116936223702753334463105036416731996767460510523349921090590906945780416386149733480969161974050223154114770634536919554117351107029316742183855573238997971642099934362435196674075882038756785055592938999141349138587550205979491256199193626310909233154230354338444456682222513523769463566825078577014423114271055776745029754986171051775221955510063655507442033344513338024195059510651127237592743019510312507191664060624225315230018458627389975987758889106374281930385514942368411067607045338052355341935504604193120307693155241241710608927720352573047012043872783864749642156507204948541907072527956831968948372778773361369605161524652093747974702139550872499144525882114731047147341141489849689875752332243256060144392641658393608730735646354237540646906082483796275606857046503025474889077234167853192564295756723858428017289850207553533705100536819860709702685966369644263317026805905981505299439545341672794857836767650654734931930598143889530149675017206634386898154491983450946770942108362380942504858948667697067985045953401953027660089663530663003120912998688438024835730594069295104015140503094602663090414396104711393280717829184221607867047047983468588771422578136465905953013055367869751583675774178000630711017737824886322581855255837197774405550473076734078634248792091143595921656264405170378154682096430569698876177821403417976695204555162920577140881899697415238811869680834828994269308127013401333340960293305523706590454445958577951771486624342870000655472612095783218789685609879637725309148073251235246281393021904364708533617384331834634464214423152954547971532042336387395620483164115973431112979258107610137079644640245889434198367490867047577876734327582003242527836098158532363455417488036288834200686483691074382577457596760596467915580152598410241455557947707375998089548798319399759131080476621813357981996739608049497115130161981113185893561919904566089431546943369391606246956166917607334483742298988712416522100138078170646954097235135658108984320250363843618577878157020963889861443670041536904810672584563660291514443715784685495537150198473105969692692751087559343006450113888410873883292983667949532819788662559130489355493606033311263904307665185370271848710314765031644623994174289270720751684354666713580510563390990926168772861258069143346922320999843154326055852543381879052108684063346842655339415262505454730506438614266582355138621641448787810139778406298842883118527996875541796901353808310103940353563077337344919884113044565958305272661640062456927028666771859112160450174082461765648038035294209967554188836043161501528136836458860569172522999797591582060918652504991361651876388654544247100373283177416718522152198445487425683259620671167825875758382345830563306687334695246674926858337269707055495940002354032804894656400976681783003754171839343774631327596629620369241254395617916863050193945939222886613454387052450454034150716639493882526204982959635355101433906909562674958341066410784151965090538810231474883662265672701176575443589681345006530143995278466773507148983173353465956263896620905462516707581113370822784527061679802959101960404236044055755285445503491353896853304235264035907270442213003245949053529608588171831672376316340340312882990542052338128121673678715154566435215563214102473534185909112638448056377621051079387975032937674123475486875866153789672677172224939226365628571405509580474889681566217932969832971335414489011040952987602878037140947079628443650580339097093248701781506181914819771774280961778558849940821349963339279122271317381435441677730630808218218912059213990719180717299996662024920308245709407544710278267550704235542253054519237330751445109686948255925656507318169834062571990186125621762667552942986843864461470467898831272268696324772712904629075477876956585491595208995819161358592890038605080539706768237772007582642113917438060242834171626902556897267760710008993860911493872877779463770586288200771479777672500379235204205684510447516040920735375285879008956686968504940667127726816900816665790015770908715180306514163190123609217953587327020871150514471352926209508311255517949897295314763092405024342904907942114379043389053683671047962919182929627859072859621546165220108374718945192092549832795726711578869572682136736960328716638415885178746797417274910225774408732757196314454825301171721720255874089023205861566033985176616246836349849266938661977537921428066692595622085630028914514972492877458482103334253310354252659565482607165742312593838124900007758826426894654228314959482699461712104368575382185194809871938954984507533361980750390146901998384772759295291078393956960762328866772018413758364279948643828802445510162846797571954755510546723479307046734965320095238394750366842375879660292997581330676124508514584682863810662923224574338669863008991727230637079372690419358407895664810428428046684638075286697761481202843037866769174082165866501469674264129944164392589278225975739831232949274881576750491575873529713358596963631312022363780343134931476138724616162702755856280800185110709276240103810699401761672912521580753247022878119284591644658957945424445166350422021395813023659181479604510041143025833318099936719660734612032519295838244821622051202825512553228890666542797901742680247952917462803774109629628169862170144989784961234062581559297678155286567630812370266294225970494639632346142674862642292124581472789643873167910884901923125471880947812963102371577176511118266084341490659253405299859304980905964370684901324021123329629816088704498838310231179124118487463211482701090100006429527318226883922398778813191148891069578116774937666661544995594013631710041073407824377712459872414266166413769248013686372857701433580723742869642804700608627341627877847453929062564743504930933481975156180863758139442944964455554501283207068422634579989464579862757983057166581621262635303296881782671167699683439970611444213443514370649140140684831197929605587443129132491094547806170708162279353443579468611498833067756968246595205534199895679766800273294021552820397710757597308756316177643427376135080799947239498660931073087840609120170768197191217063239732361269833000659067354720140665637324832401267890357252041164620671501530258089349887116607395666672277742815545115501600187733485515302111437767016268729885118893025985792455785758830317381134487175736887259852449257991154160098404673614771341634768063652518008917511511132221547160754804402084979479174129026158242622336754822220115460347553767714646379312116126795261875415423136381540956995838330173465576987420500094681426963094155858695113972736196241949317746271764153506105348475708511804774252363138879433343708536029607593567974642682855535911263133808267570634793751717269404234463644698338157331005426134183366192838492219907348558449771833461421773443990071514863932321182934265589867530617715022928473696136769261285737905186752071033779011937744881803551910128807283803940050907701998233566820849287287973279236906776920704602817776134896377771097091329454264404638477094669027537551685059539227961762323091895377632186736652523414768126853557741498883365105299952005866213142023353304049578253495749411555462344525850109168735796296574619897662647508735734453830672292675401138501479612627017082866649417013624152731883697836594708338055265641453622883159620672267798122250511863818503512363333036338235046216646050764538228969796011904199040110753273192986514235861056961113436878124316025919492146832650849170457173161561170095354182668547811474612001376612831978002454773787714190206303900874035215175726866615533737486390418832229351961682107556732967169636353637207909505295628326382119862289896227738338524215377215417082018692079241336850327584400138755467346598058097865480082820179593486905976577840013217977258512666411565788072121962996791497452142173606204590962776450893758047551712524786085182267388395073935459340624976397054276655655807804304694182711863465424760998042769024425201399878277418081556360912649495135664206068798547416378674586358099098469079536569479170789002354985758782409217941279544712980861929534832860931621065144546418846542333997206194885150653028926560024019265296258700130390067142039448377091300676439509486857567645101824809305665674112179349093522434612099026189287926168372062276142134936200628256831644856874807270924984324718924303684413199545059820687478642519498193944261764608677968778269462009583583899544056139063708868060856312611898546786900209906797309170940709987876473747054786206640194575519190192378019187637104597013980214200337366817520711940948493115424210253469456416948754193999947521411464586343023392685800205435149867412733340557756924473639480421384277608286469163998749800427848991686449366168529756174706651068987066675904565312397825478588657303951253642642595611029540954347103545607912804054489622428165616902888248146195491081335075455899229655993610125254708380289608404806217935943058813512788397924060592845122331367160051032618496234549231849856411348963075875771664678739405413553405270782169926266989410603900476309768013263592017190587968043928883510418833940338717185432231751672725621218273721479911511676251283876669844959134380587533700717511014335779419883451937720571483100032800981197846177616742574844519892506936063809840421858282522165535307746102621595984928941294413143270564615667145739653586170575107803540729203707042528953682515819905556447008109327084523438479010837707794773549616823616604090142313499194878188709596490758100821037109716248589532873838892370320651216417456966001515756347389639210639708037294095298960379018433434140988082424019854695537859725042671460389910176566810425006264241756607631519581038443537143323102822356221816016437037012132116333057653083241264730884591824155489815230021968841349925282207699280603224919428571120637113196259454645439980402720017758717849176172551095844361540415128051865712544547259506455129163455583409758246454195890324218378924541641903416168744686274990105976771133621684716024750623532616109353673805399941595401455525770858969357969037024980127252591145219894038670372514147364995993115519958092999401564877478882614712257603814510598497780407444164299078291727890685674667021542483199357491599161975632859771463339446684487698520123649854576781205988379436826285768462016048671088650123198164793401317145478503556570789930003107367369926171176755014299068480904521852655383566244907943558714167664890881305474968133698853477031796768338843634798939147255378260900134280452587003532127165616086533440724603902957285362601472561730648731133822060180516548732142796094975807646026948275031919234022871103039541971190304774072244386152753435265236391948234328001189503750541565600871144790085342044732793440183997734346047258522588459005640931199075498989509025450943536743110240530769467529437412189516215458570094176933375887905319176664103605319241413817256470279547573471871514423838876557114628877150906307232012899670524689505140376369356019921764813465782920807711482992059743547166172122369018499747845803446003738653391162201272021072496465905893840696168608548076052197566515201633020487391801681623788588653143036630546392459058012790291191843232163675255564946579020172245999535374814359750680353450583728280099550712957805275365960374412003309283266313775705418842774473079513771153556865980863760075994091441239279294220372013125356127011021997759723805360908106236169012234751593967791167996665004998659513010690830472451957303646804361294839123910181416206863218479795150928933599824596600805788665107719823775928895801431103764726835210334988769195012825350476676984918762259968003678134228643749689070619147721243871779254066923068056882245071133573560389070299848992708429030565463333570951500341130381854696773819440890350000140363949681645002993540873876408053582467944697861168482401880365075359244002254636169536543266774657303961552412897368615776996788276203031494905565466147786061632819014587856713287072821369989307651509701668825327096870811562784099300063312673608771633010007708517908033445594044805815363056607521893001299677193947219681329133130618288567407281700349097913957147470254311686784138958565390146563342749617885813957643114565489563167799987995416740840822240550247224067494188335338493900155002709127465439441659746815399629237035110989687829918066273038254195543738421642663009280453959787895558406542519656287383070217321036790407832799165804889491844867463778690704519982802482266332467581410950563904673531517809951736305696921940462554550119678617313025299429745664351755776680358313501789504919899253091420628049178547569997137233616780725480367148983314379854527237660723411299932171247002068892927388412691765537659836512513241104954575112822643860634385768219513378365562578038506956662168758844928821965941168254366027260519254234322791926102818561779917207571898232236766533867695730587171944396680326628262098016624542729607855651337047818461830511450350703356886442032502209567777841411567673150190848191722514104636098307794746022535606926114204986090398818770695460222088325775632941620868071213337618836363032373909700674513043373311202349628698254067216479969811295518606123715518252006494823763948453752684515190231357252766136595078504317019263259869412557428535179060761704144641479138510501462032319191883215352254451354422141698605419785451188516664841833437830218559684820199986391562070496117228622401310297313003097963419846796348951364607371297635402225883373342887786455722487945053943337169101072659961266858795800210733277164206068534208153414363932618855194704437135312288466220120820180955498741070781215412308290247546598368033714700063712572267198844969326340167463394290090366831628746373702316507007734917931988067556378136904387195758049659298037278191483212709552318118949381085550885647514741496385338381018502767615719616391501878224435159858952446235845244442911967276426578543494584872578276613054305438873180061323768134729260919684666334485895196141247738207832517163279418045576023909010309487164467045585292472733413825355229371737102730539433862485506057020783561919711187086365888344972669178041582340155950425108988684836555239538477733773575199080304268922915539245467124465280720286324531294527184983642197634623561513103230557391446492928042319391883681188078051759767161957271836009049318444853201442903795796366033700105569262625618496192959605679003619161024265456074493321626986600711936821669322263236452114198250722544479135325260998240906667331605599530446205583604967711189982310490596621838164630839387612021633338903229846662758409440810644948410970320082555856845804417818598266504942360830595705984628189824187245980058580218549284996882148959715842071077015226111617864072385762391295235205818253273640014981845243447717268544654001183562099482688721362238405424751262091079811797315387962393995130130084405059105125060509447434458995439307304134293125001233063574090926014318688402862703701236269260112126377064995642867626204454558860091289885967114976682877293673453459532641246730904345838620117356789376853714620251715681641037912849408030455974953725564707277586631733067172300010460071048333636779995186024415214978188017565080153534309823079071000885457825684648794577237012360286852067494778334468208757246347341598634271571432116634398908189545124111566072249090605758421023687293530367055603440945336490733423113228267420310149151282693902792521668271285082236067774038498062797193894676042591431739348091229208231897540130481995689575482451559876211581469407873086212602607106243527609501146594871211389427500768383708089047271416801083545663094507381385057028621909856859919354804508478569351650149813103774197951492489432663384959122559500975083779396200232491738663519187688632191093449424934454490067275136985071248372914351612353222970686924676138008867658082579782282314943955553840053599891602506429181736939282043702469632620562427077008428748932877567919138444511368442789468175071089797952884356984257487629729645843517321100543964471860520082539409942657179293251287890574122268573378263422634991845433305222270631328389864631078742019654815019777242367583055938296478250472341868383345297908549798015560688218359485475554682260143727602141662147336044295776436841878820357526082848440361300879635826962681413561519068903427688335556112503589378442653933897904165039140432031859096057112097355781890871789234629342360377958822071718784789112326599525023881038264871504033225547171873102976982390145557676837364270929973390560012823405915747364241161738295428203915417763463752242921033153644596317353012070518503911572041382715885980225261760290984728185368340736118005365597736923420727009025119882594287198533026817501720695513224428983856963744940776214537055068169581642723202484373557519486863288763935239602861980710382463131599425897148048004945342373916812114521171736587957166801843130996206355166990812281688535534673386831977337908601065168123937823181199244067927416167586662015864610101255358343234741692046251304223060128284804601145953550410929009822050729223913143822404078448773809901867764620855517872439627119515161648920901887282605691317526309402673500829716538463523873725505554691422088502498279591312822323614713875464548404943722167743419164047656343417136327611527921903907902084854449064596002503108488375653383381754517730566575567743826733237490026727125332789411074801292182354316023443876062828298543023363588373090805457408689098661244081676923362627706673582620523742918386424900601674199243843109004550972074298555534809462351240747326878184699999184635910354443267618595676489697017953312426896663959715977762141113538021857756576923675854569594410929656900244217074725447050794639956050250568307790090679467992819116606563025173125845724251459375975422733434329106782489383741506423527450169889017344033577977233310768525641470604045400957838572321465471485938424501510716688610747055688924922731310081690847366699648872590557750364163631112158098447712642228684540242043978923421172629003708363013911480411801739839089791804175263422248771174137775696162194257209338213417679493438007295489587157193485478327196834232083745171147771387179992332189368617128695731201985610823593799578206421128488513918652480099076734992922760064778715785657523479093253434975479958240839889863576008955339953113260394600006008791745697609887122590590378754537974989295971660864820107328249924193737833881378123573791948285673582757316389405287420239165328621204956303496296985726134666931838910106049433700518263127342071745819634490702048902837983116033320402281170361698661760186505807385696704543814910523522447913182250802923767683257532497695923833885761266731359029194533302051670425622178209337497399149803250659326767968459438740734361269291772490882205078059919479660766611164513103579175504122906845538817227844903995907968946226129297202999825749137220214840392567357834742932981817283864638863171192910679180353924598298489859476646345133927014650809907236385799610945584368914340713264832431111487943177682130418400082013843534399706485724043761234374564340890184002185200684835991764714356580343724911946728520928908711020962828231750011961926313616322108612194598985788514493567385973633943050609530108446230966005921922200192741487296988838682270947153150505826913188037800332160630032085636769577722464534644214440869686118793994710043100927937410398505092156564581318754028132386935352296219934276456036560721372242039884370643752574542142378200269682858308555470824523387390626001553470014226334811803610198599405240040113186443263280281082531588307854680232235519019266440392591417020333479835942671871526291244219282176567502360101263030326143182862442056437769913536012760166033145246955476284633212493401287027858874091012560959383139868675071223272795240164189088131540649660535777683270974473483494904019124192776478707407815327331312746878143084038063697624576801509266654599239905686824846600809272086299605311675497810999000455643394211324369269495404167398877390269020203282981957958424733649723116926780602118424286307364634695471931053032856398974066925607867908144617900556594179790578557878402550342473549250255962257436745882532978013400517591937275805862425243540897646284332784506278486259122641981801973869219489261473944759306559398463530483022757177790407869796054311539843959911504027559343894851789429347097485423201043248061654704651645118184150809017675923838139987458204730489834118547915591531836108799903334633303746463469646018139532365949353588771895033853755585359878485514147368981376138344078634102757875309356351453113180237299412410864962385262468332283248576573169160173794571962574653250678150268268994329241338563335784104731788920680467700394422380789421973142480415453572637880198123834347159595461124715840873053769429004828758808004695760320853728823935960040254283522532569779102745422499992666394205589829447629308076881931882146695537129500584653638935757880871451439044296065362466269750370914169624528438223268122924301999330839930055800286442314098334862741895519393989685315385388742338079467546718986786872320288664621375815637624324232176075896801852672452416572432805346972122776528800093238059345227392476560453716970228501938502732807294591835607958611831089596021339422124558502735619268501043722602344711164138661420785493295820944429487842489522429271632810993724367231688639561487467817413722092452273915002853842366503088047317537018703642941848867778816078369805125317600984985167610841747673304909386801813028421212401880772176642150677183795310616018195023063261322904056866345149543794288384662750849150890113390427480095184369731856047744370035134025235222893927883410494306631771910709369558707139453799512859176285354517000312346552068214624381164773169324339843642485193829365839642130999078235955404602449427711856511818284659117393296798186852159837013880337843030262847536342374743074805023374570533758080623077670926389044775104486372878216366163824161458044283545001015258805587672534577307797862433325963644392333600810547520306899115196701286048869554479368515870329820366904874405160713416757764089220028237358342786478740290070488505625732096724699334076368980538887679210172265731815526322555276911770079499854992700455405647302814525616564669228427384781019627619768774446546317220144686130064588224617239961548682822047193909253474163385274831248182330585757574848433898629210954673821222566280658362560337762936249483965742723716904349104867371084583017905672020530495081601635881891656623222994519241095631555228987348767132722959556487986916245578763432942500825029737241317338520841407075082725377351939738379433882794386623855664758219185093135504641938447627376897232780401236141412247528022468350208783026835035795604210082302613945675598061096416289542635036234747708807425943534586369033076245644734886072441491446830253567021165312659205728481525283283633632906723972222122562104383983075266758256586241365723178093700551101447134362341512182954085779691982042368723530677839367301704789026712663678319756168316349197445051730830142620849152768533431168867981819034711224227081285268391904890175951836348108071973460411098718595796425116746275338396293530479092279796737705237550799361311821679523736525121313509070878074925433326365646294754962732431559162424800538636841311839663550604238318076181910002418556102074791041264450569140391136617010182516628203092390568943456059394963574004252971099397421257864232190544534416323918652941311051194686945545665052133421725000347834038982815935021347858170701934678471422754177320342365477734841806384881569610525750703875530879181350346642758996322734841944294158991937361053922844037150373160684703265415025382668122899343309095279514495929690016358278766016203693692992931380672176624711302944739239614764194807311673828637599655173042802561942640627862548258193842573847865260652138500379902027546776994160466222643987760722563306201196272922717435168169772618507134013485497448913867631826245285345847691467305231265402543718083580199562043203730540882501858929050261938566211641647846986962704341076146755451945190691042535683558951852507041260920664983152800026190462600031192993295704275829026935867007031895158373694938781124535929945683452488205049047493790718421958737561224238629498599071950873671220898822144533169389875548706465473850731383791263083061987261392947064496261388518235085911689111610258554709990447551797801119678691189363514845090389943390026374304925466165261031039162689634491633866629516817992620337882065793109086647461180484168896447538447125210490636359305584862609210612202116970258790334973957356999510127919670233042659962114217205427697588504824768021964510453253481708735291464952053359645464861505770324609529049141671855393233572109743096190961498155020467085157695150299656881980475535516433741813068563239788560533719583843601531007594095709189696968315117984195789252182530259675930828438356519215226123260996349298804343025236324443675035720593293193698756771147577281937953474405818168234393238786232366274548549096459244614783327513025773710806730418760569132145201005467520765782168017107642754559370677366399423040877357951639467704462477922450099660234325933265575499104266661815675223313951058521121930987082975935055995281825504676224939093592267291097634700038128693579650474894150988351439366489137823180816742802547722872925677280281890894124516414752289506015250434829091924914102001833865590978919851502264636125447688152049254268848553422833699708146493172126276422128229942599158910852478978961055616960895924429224868738991831453145011963514037076911813193877689751782874076104019228640386975746720778377989133198909746403215896134598213877209342458990973829127053265393818927429835332650930227025402749530127783150964290151798020331048869164848272841556375771786337160758866745264037135957516738438618959584041380788452719720631892909871160092538964273842243060456757505799781810813058061664196917002928196137438072510862793366378289280886199289837328485171994742448203726389825144692641452867302160673636058850403842451325714516363590573500631877234187129982075614270045967774512925497371395689498370712046746291276039594127319962936966778155938239047275219379215816976326803979795617408392703623576797206522703472371333337294126670430496644045130584312459456260959607441076915389159665949210274230770516985430306995511985619185771223317686998184907892640164136344344465364419433102201514194476093531405012504567129426007590857435053495043088342579609908034007856247184012357485990362540415737998524202848798720212027601524433690456239599800907585576568973282336192039064061955836631217265636529170362472141811536777509084539441602573311870263895649940542022396949919289542789747997150147048284139493608458518886065119362132119316274072293736817861172743956614080926064384926743014648719385291632460767461929197404471921475232080364561838506060706404498494962935090132979320503862395483989295196506067970304454349224159360156719853910533867071612313276211821719951239277211865654126723942008186464745885617586731773496495593278098475213091188100521652662582909530405553032221247154763059163910805867057759203181574730478927348372138116363199833713247278577845853929823522852733606100186019325865255774219249032170217673779495013754612688867501454921910330695992719366654912965292055068717595579872876348682832425340798761045295727755216164140242514049993067387319091099937354960940375689605812296035718730768718025309776408114259269193203402997648589681768801617282729227705375033182777650807894385371470067385344243712064907960199846211103980759460866467247998414125282443536991792795313624460333161616777092722720386501463380873631648093338803924804655548931841147126984056581641123599412449675307436438587633889480668462877463753959042988593668227085665299580126921479557551025030697504385857428103239338189419861628679816304693986578467214117694724525250852667659433091452082920807176459198346651865374841095211415005647607941388931284987010033111733369832883765989930970396158394742135321500697909788600609011563526884527079979266356138377022866839583824969280059969083934534049376632053380195453580917242744616656752316869794196859186136168456089591194362499570165907664598733846785234734365041713222214880347247664430590716545938180493003978036741082152325319627857182118342716308409718789531455361413120893773719058830168279153595041829534088324372941921785822217248942110900751280407585500428079960007242288427280716790653999984770879949915545216453355018570701380694527448697976431178237182851567868174264654073388505058048541985114664134174823283342649727142383330836502708998256880827589335567915448908721800772132429263246375373662029308337677812193280430531222607869776303797598036003101200089626462647954480931835773200787783965657381292597720494206055202698785638307392263200239711960128410455823949859715535305977531939015651129151252743910731596752498160941588612659047515726965096539565423806881547441923884647148374564064015465670647671856736281651846946142935735363069463192734101386037516333603167710677802478338690479108298612698952774981564861621789951435408747648555384970641041371256727171667329676517321823399325260403210228944561306091398768708546967347182203882976062665768985294790180004295138563995962052597934243456169481294988897194293487390948833054337638303674575766413729738112902284827215370060935904074719992449700718888143804920734738100022882601080022500081768437570743718087686235374941541989799832397212237153150540713659019379798159786012601510131438179058441108834798646481274297693169527818230150442997714956029313994886373371942935976676557471450371060795142470787763562638869780811367543748800338720820457696069669096451539161956535471882800770092943635177374090169152718177555174735392969015562795262832106882077375337150045139858746393244638269311222704139069677538778468549656666932618610838123611430094679583720827424027668583950464114115170602360884785815911682727135516329213477460704168092521329845613563933579727363501508824642417044227871889100355503033626708479985870460514185367360835763886305675255738847922205772875284825023405343850071600307887041470853688968313490232697041904017617888483801192720384047605043720727294244817460638466028076150154920667126505343335671280232763234286987037029477797691360454393814642776735472820039560148305657642081508885312657829731509329229159875050956980115791678470027037342622137726163436310684519985242268477961845197708506861079664383514530020913030610365652056074062482573296749884055499085794590028099073703296562956280047495736464472722509937887815775288652018297264469646790250882438077706452202870817745620527990440178430464676263624711123571540122340791899667453560661937537173686602750138057121965431420509270405700942579419448428768922527577559960570090044041904930362075252962856513346015135791607707393337346987122999328595623871033858155738366305101239013027254262996200339729088974426729111520291913791482252445461435770874677399987866966312432418167959328579666087891055436292472007790238221687750218392837496813479348628466989861610275512593129684832972330937678957286511395774492414029358698645774696510291535163417992700323814379246991472697795320975615764353570478342064676230098933061716347449677617513460008795238005679818529720108894539187790337624024254416812417802783901965678661957187632622270470832740907133886097488831951356918667827095791944843637695706091619491503368861739412404479655734811406016163988808977237591929983758530272982640407744603862257936800342728736128795348227605522486040322549386306854822326140599162276838819469279951423383833656065152276300720554508036045575632153142712072642403189303495092386332120691432175851825900351198276103421289319441846055366712389155945100953914714352119578665029153256155849348525495759247124914647879256165863433049350911351466927675412443392192815100345618221013601363505446911563348005265418053394530657135077370842318294882488693821343906999673413162035450056601588967502695955534565635801946651192872762108987759559490419345794588195167678063268238237137263084112327681504247315443254255658619448019675240555495636759917654449337309441969463530788405488598744316715971060150534125718372182541395264087579651634621639177248616269092954346155181051181670031711674243197031154362655691384533592329787677529352489240693057555272955107031790010956060160493013824607714752257636287534347979101791909733563019123366956056107523858778052265289955611038638054723119444330062524533407531737347351427613359560613043344948615074921329977330060802403493139191373232756325648155449585163168513671155845183116049392415680148345373185482329825063458405649217257756131240172280398895770027474475852866975551475850915437580119065509678960963614632636215512025781652689532892750666631891547352771705199073758784559890064122448675661602161649940588411157756468265704973387216593820456233798063981909763454105015807222197898058183523894644491072471301498994636714554440886131458214314369765921548584968033495693604247745733770776637290089403375228998496042310770538797092197647263542952978465096561548401567732226656189754160851893191590624496194559393694431203829730220928791081567442962801947055360521265665726802350843895604402223903528136689066903986477243478048464573099900786820078284689550636231103064913295739297907413258453202507161720568665225350302785148154928945167981816634193052740885758848304472029268730392946408476929720536360567478884822343009670804713464872236201816122821426883693899698847776709759281932135300202161075398689955799780490268979052738005144820188813184400287251850107829601200609578281457316735534776969363818350645497286912933128668350333310281828130749378061169323695122096702162503715734422058792483801186442158168888477787176922590851700295074165352078217633155150281277420091789535515786716617414195633332100051834280362926615715192949380525729748520135748662912961911254549901783150919938179299553896667751206183356533242232127906655646684340736322198746775979974863288759661327066562832308971660198865677970446934066757111613160951931352735413467445441395421255384350834185698006881886285483758449243227120237864984219018835100496633549699671476756909297607374899817337154300104666371842012181436191477436630540900342117818907043407233643001294346195416919495757067900408782418949906378882781588909482309433767347971498958323669585908833971347075388948915172383824843981279739916438241160050641795903051627177711324228049230470934152647646807322170428905156264612915237490496370945687592160371633323242767723213238034401704074782770743038826693757975376761092927917054676882397220518846603502510622450050673815426973522606696571432113645744862931740505682935753862507699252894591132683984679277111368605412180049040501739399912881501599894765769733612391034219205299561280285680425603183054811306783061821206181697729717834096347415878945480473423387056142043478102648801434637046384820907461681811047197548517890265368893057210348947576532609147612039356296683109872652332358492012775419988391171619312859579902769934410726754938808289313996198006887983918240390240113021846412763815370974865819716322680560487689824536140377385978021433422407369335188137758570126142549317315292573919735573715324255844680797279836775107778886152271928998397393263801133497223707586774182665370243462795181452392369443624713699033498714916826647214134297092481385025488225814435026525250775115176787682957566812173387425257505573079942842238076595021496512454985117276642225669688713538182387605160760105295818616739885036424521495477811218218321580918459982299043469894265901280836027484425698904758347605703151900184090279850592676162894926677863340563361254635631483813215751808209790603913044638333841372628700485003773502602678868246560550148964067195478101966482189438777111296747732189469609307855888515317132527339046416959912300139942492944098358708307805312546704637225811831198232178967900506150467583315690402178645174612484259304684840793158190002912379383899510625587343195932168858615816287474549684828777231176545939497515788628933393012630696917891399961539348374062122667595529871506629719232186007481128271411406150622475319530113463744994168443085120966873600635664460871542299052433333887386515630548270121335771772959644344279609873895887949921372277878254853187969702394403654425122205693205982183799353338467151698101432486786563765467699495994815115113097111495256906109487621502138097964041945400401848590865036175137011869602951571119501090269276727261874750831196448145386066257098439945858962125774999219302896878773556072378956853835157531344265324108858108750376130330041115059647803914446971059330486688519343939747197875489244106492476353426946930470682252907819555158020166979582092236534625321525402034448542948281220247681310247419142079264319331914164497399862040726060702164040452398679530975181136647073585346864449795988983855618877966775555814648664907084113539282827372946558652030715184483608518961161061519789413371177978974519944455421534971733188363824448620848422190171927055217845131196855911772669175236462853169649122092570799111168908880325300544983951628250224539674956403223817819892289249053748396203228879406962887959541979222150498745502105361407360239316058511743980316782931293395705256913698469067946553387025046662185784913534211438880535578231013457964583460434257299587226114566098155310055730982316936629845559655281011254973261205280253582947656393835598369694260710180716852112683526186442491851291328511068756726469147205068128875160398936430651315005539261845680721355073776683609788096831310361947335948174134281067388183369434554072460797123459400930382467502790407148210236359941505402056375216173777148450524829675018775912150172384543452430362695448971537470724417219073433005041196132950589767993402942938026636917666103865359553739505755225953899841026512617809222177637870169018102248072090037050164226831543728928909483689671069714646155053542709982580595266112004061970131465174519486288761064961697813285623525884461598327645546247073505089949716138435831906070139653879205539933745705752656932717562523856860155589411215429674050298042756962705196683858148513028071688029789000519571035309481248312004468892190864348590884536368838653594868012700010042942297861257439649752419266677447220221499678951803337762016336145424444628128641756196258248591414867540932619653533126327343360945353047712846770831792010526050549369624151285541352610026212878097192588399539558367966453286152038631643553961415424062297369366019696034991392156004469282455834342507956345192969732604404644794742181639316226811868962347294793788351226890994092636595820828547213417605240623325396033591768122421119764411522377872707834431436566318103341650255261565443139413135382805418597895716675990508920342526024193773170582320863098138434607630392776438232805218342381695442867726495960783695339976841378430648048711704149922074178261010284256040974510221274199485367724512796601995520221922228450119178381175169158315549833908960352364177400521647222006298995258118575232925471700031317048985613498560610229883656018779210883075763587994863026994295595745785064219364083204074239123423647425125505151799127728043518414084368836567403098220319969072052846208838072700654017984149163087110538301686486710675452030033909143697318915324854092669086662036407213913972959756625596674522819768978230160255317635899621364096326755012109740323372255220066059536220771126245816020764457806341863467806171908603209111958296754292700816484885486043647438171054598198017147684151360439688274392715936603075816667787517983907660526601602192759129901741970312302847678413093297101361452374059032868286096144771622334619709909682237215988677493169180878664511875763014224934743297536403463673437242516976397344836221089815966332868069057468367631405807385689097070551804752141993104029285401380015704590757443665388067953476022063393436212988478705240065818853168641953028122463666111791937969956751993120804363389826253421358160481515873074697095358907886052708851396714981318357280632198055068055911139363887608568529319961436499909013878136108958495656045636500281850282133458960830896239101009541413568061949269907422308103462683575790429327182266989122221733945786132315301346269916160372091639898924856525440447814517631687386828669399960395300025268741618035814491198987365250431045013782787595401772742483945894210690126238975454907490132102378206302646249032118463464489984385308617871811135508820574171951274534323875433827865424605367394971259324625465970194792770202857486997732184425980733667631045625668352459572563225236037470555339373652983861958647201603535914264562239854142222022667417161968044376792076854506488141338799441845322765540859480496307142731320234986653682830588062000474949714788088889620051909507036701922352841178214723455992606953715961547369102106058783264621392046394477002532888833893265398950098753301771734077621404364335074619674602911724032486536451781810838225649494451468624774148650222711653967410190568264085797627432067790895628179627490702745932246312002817352118669434606795578783785367182050776808823542250640682772055025780262959334900804707771289814005808392662548035732117685911104548530733516895903484949700885108351302009822130704947192969912933822259260680607176972575911556922314055131766895143274912600561636581752084046119537611321972427780189556091409621363184320270820279841237493887853627014398970795700433769532819577187336178340167487655042012033092383866553407388028048022981682957027317123632376944075850399555688638834257228783931791376582900549545143196213662338857890631389692652109368281628400428273878578637159577082845441319562037510433074177824181750478075138062865693057276378406898911924736089011604802803713014192874826234441548371864775860025692073697740773179680018495687613479962799245858163263354594190255040901386574846875882947004682512786281418401886283560378672360478562577242706122167893589380945596361089478965522611231804480960262696106006734422928426737446232105158695445572137427137921965795213623893486218324080401200909941625620461345845892026064745744243321442973130090252747326935127040047924429707417188535840001442991774753923001484264138602343919674171243023550764939155857825072774450947941042962368380329230890827430992040935524013887242119446656942569604499751806772930141726469331436798637119461866578176556404308519385994595333448350920416634729800269113656390608773517804633917429531550797056260916236452821354147187768099130474551655395388433102796035016050677167034318412138635500271705716908703302820206641914639494714278431193094991938665393968908895052655779980484516515830090886097106903897320897356233104766548632490238091135719355585819364715610534100080244916168506459858327855890247769893551998911706080836142540509422551803192458783611660331397103549246935329888490843565554819486033924592556605132848425855786120516076877794712499778628183298725019391318317545166848094560621074115352797949122294387766667886467088600248066718627375346812301431977139730509046843265661279364436909348510050683677644340910844975261799984031080419347309832601030957730600353335414903893093931024139296080158475612307537995611010584023012860206636990094327117857943611708430138455307616313612738694033364248893507201646069090051158898479579017789728549358845929973614228214439392528470012070487603873451827761700879797454737278542527557750224949359301114038219367161181521723224055004942232677726522168102330814902435612583858366095124877254984716618461721243693823559799661758940113565489766589017662026954186306736402213074789989625874079252271039745680715205285940280462241787796320878725097993498494712306136591562247955663036290791692187746231646784412835929914481561282445854696563107300210904579682373403255681889544702228332538381656194486045229545667967111210087888740130062379058075321047110380321479346910130351545866375559592378671930173549377736287473190088294600088336256399232613135194646376770580723237318135272874406963984235839379498615468125854958824514941621948735060601200347529136499390910401595436789342427322492255251483429639254278886968061077457904738708322218886471305798657414482126173651881106218695860827445204467332512254095455531514393836001084365214550854536814905731966431326724935653356729434232208785296396887108491164415308361166607490924714013593980636516565223862737705336514351706466515866158170964302998943200486498189831710165909863068605488644464396464159033522445019389938445441273889971257034839949230801754997185441187526548163141552849509758854416715043007766747820916860343893728163270627324322098442513279267448678052968772178744410622830876290864461394605563128753918789840765561200658249450997060127254860617320220364233421695553314288909916160649075881665278251985399107658899335842280114306315135899493206449160244602670014043132813902778860916844441761245836871292687655879476500584687775954803026535390902641955866452695474100559818722005022307972893921304623090182981731765224675480708528205521573982066514823632208411809512132495341581204555521930635082180462860995855774132039915444107562815478511499950349195594211459358880472901278405900493811017892419467028009200384562603035655806645953978997716152244715238969932797161493814379301064215159714529381540394281124572510143738400462740717166171616441696680566252138508307839972525599789605005840065365125446614292489120777219414755014165058127028740943466989368801948840864426412280023541611226366562182671387030061779477578330893788949942013547630664640345881282999048925361280052810471372612087850613645851836747635880503414292978069014045679203051972254720929993879231246846078604901210219726129064349499135574151299384599774112172372361588761646549146455248493326521061256698288115484491997577560959281916854652777860436892166758973865197850698327190320042698728613445938656241226515666966224994954779249473429771966801763632049896679710241766786399446250661793577073092436782280372232971990518072887402515615587781489640226310429165194930300353642754883336928138699250072776872029827222315886760703318188699419809552125668846263468750151789641248800513394161344900074070755258338134824387994013473836856432335104149065453442117021573380301954744730266565984165311799139437232673708608880278895134653001699581599305003755465833809852632199746557222133586145253945676086441440532226627135262279032923729492762339150866373922245975723933177716265355374631478910443072057392321346859477960901596798294250527064912550867735615370695316117195392408495795812288860716769328902707492028141085683275695168104140290066411322271262853107614074932285199823784525404897953154537783815556905705514601225106862267686630063414895313329593102118648164610156067276480458733831778313667556204631520634582550183344222841469369908498573950578617188726788677241223402169484483569979826267717029712948369386119168642941097258545166935723415713400889906421100118010849584379457699258011171340158124442689585279943598693022360001120757495123581847140225933898029260604354993581647448780719306465956371505394838755801432820150954282494243315153267380497626573919687419146028799215324585876878570631707495639839445822173526584260211876706404592515225214706118298149810475615411182276246317477000389724643286359385456578362375875332400333354882041427255041476229186404373997272648430229606524795699276540923609425093566764994756356750969072028999205577326094526806854499265976007779355496572535691826641900244484289115147669181430233857003759461978709515606021069844441638850368495570031952599400433238590921529417420671299898641316525677901386172747864304255365367010305985679812614497533487682663630539726834107940004578509234767645483768383551688926855871169272909595339153406160520284283499262636225964301524865132988178724289323497214217151429808141544142464767454258253935273387067101339385873696553611352115033602844877357507561248809755490108334722459404685343887585348393256748482054558664160953002485254642066744913479856080704681203811218849031366081348947086830846369810353044948620926302215721442399481320910874829773935150039761194327435271716255066530097659249149408894033253399560672974825573964554794025920270064953148035172973555037926832933493126815236035417015023911719666552551224425211436280950799768578796234779763190481008539353668556055291139878561366567371119221077107586181462382898022579969693839489789654515643452245463171606803091036406233949664124658845164035371180210860735391479611531056472613168203168652254021500885030267466167771520141632031219399979566916153000158079494511459305329937293612077813855063250264563546474220807610171896727710007133242498371643486444427266404655692784899288227442636909019942938265904145639265109238049288671623364354578269251112298797771675164276674673138244212930148235228231256649034612706191704309093719773522239889176936470880330265002066324853233344573235219568798043727102647909459810921321739555652984857082308028237415210704103037053451033645658337403085382299584961557307421763205882724055757952236765288172683100503014244453707129794309628650197442056182991265772152075251383218435853364076096241364825281520193751336013680149006540379051746223037484411385169819075806354214010165513696561417017258264320202122052291055785034474507825289968687656569580753787286290507621854404375633284581949229981445255570083342351488750792199069830320447222522438248023936497622167009681804236968224336433228055789418584390703580754166472210948046185802472913781627816923167843861267424294459187472266755379244230159164582112051080639147068992012788238982798234216277177613737793721868449243813649634648702632853872095262665820609861735196435142591483062217480136969174350888604602093362369344062062774085790062292122268316195066284947378108537151635596747166917265954343222026085942320038843950528053034535137922326278687674065705220023986101846915145851861476576332704309290320688486273007764013860455051308885424660883476801733519095696653372670189569069013369050693878527097497898117823200763314352524366315191457713211969511629673869474472760268069355559939393723119637080519210764018156972507162878405994040007946662820613325419812665497573740943931337575693893100385330459412993207560986025476711391153335410632237217551626207250983301466017800314630912111891809683131833521369749962781101259805927971632601310299051462008697718076880355954847914782410819139375472517527605346610786192962153218034745246216319170315816351921540745400053006715026566484040291778333563523026311208731344481998118980915485249223871432942575213375158774330269301352328773453059439416239899165629098926936453914375465209470362808508030951385541541526817106963946857503526254962760218340711314929842350390342472641132038644769778302535522474487825586054254517722976735384383297063578686236911821044666161617354682393739738428455046966782274080188017609553446416285895654068004624056787399408077110603290629861620246234047522496349407212692208032651908898303812408217486765644225297616348174336656234626394124536454457218830297369220291769654377828675389556760480731575305963858102512981235089159405350720290424549322273233747820138929706357463907599466706928520766363700381958851965672102909902555491907244848227195000055199120290518251217050256331245606610201027048378273033135697988698969963419160885151305028287481148221336758225744991394600006515929093313731322039379886859055206155039918400489770306483204360309377197349491643702088004634208754351212797132279733003872345891104257249824422746543703981314592398562029922420774260164886155936891346713862619823256939330546872333153994168100327130790824737094154552836661749685272613465673255274928485412519314981989855230527600630390801485684829618818395655572159134587630101288322597749334234224609612286931361525470380032614105348981702801919704432781246853831355093633746918147424610436790324365008622508412227973593622762272816377395861454549830789482313125865677489440196255301874992504780133382088146267382396971819735253023545248301693943072226287368265475230757285164515840334609635029263205069300090866387887523291236578685907861933228734496942974286866802931834595831719777905690526575632199871297968296178937606711170170335400322278037911818181627739658221143365035439835357692153874445638128942768115628016105245670171040275558539738181047745125202106050427755640765128308868106230358744113162147333943489177437458333787368857524047698481376197066389787504771037432869744690098871785643392893152061711007387184014115235842814918727278036686864746438899737291744342033679887949666839130790497897892630031008661377114809613956785835432480492812200479794714962867397289993284653609704714420148984591489518655333331027974062133262372066906698369262525432186969237512358190367509936901325833489637916690833040637662510570024116217557672837472765082684579749415860996221333465953708921074695527524017951702274333511523874621459923762255193984027430044236932977891057255767693017223408922383015845527028340478547136504134852949887194319285572604073582661203732165009033290753699334921286571619149887890031987817487953280031876314326029130139158660958405095106138877538541717505307325554106054186155593903547172460310841742715844279845506159378594540760647723288043717631787783813310628499419952565681861017375702554634214848606279351228276159125171437245548960026850696451361978041412495355413900561584900489724836123267510589338192995580135876316014925401991999863701929159514573894025801379399910672411620154083440616298174053016484087232796120871713902263298629900941955895702006054306280099470719852112233332350035102710353796621846007377229948654788777561197389288251556579694010824444180714624591013517328673103044352679574634882847860604408716189691426327498766923997341320489926234842199816521784316404330814883536766907577978272595076585104999796267700445850992810289802493088880847964978834221132043969324343347793727786171205896545227846521477786384270974807762787296914458862498508373326859115397482066519385091003570872690349179407751394711482259006323528046850077035648422359938403168520534027066395089401204038781552594243053799602931292122782954350947718166691986767946003256162075440280538319677658709173186593590634483601815654815802806258957993219224935260842253245308382925341822124326634547566432046058575936133024356078568240927582654284237236432472517001968310314462600471520642186345348930414241188325655689332403035775870055088135965979806763848652070896355450712718876895254513571148148540911456449950304168711158597053857293557552205313078241502755146109398954863372628228440182523942227061056130688364167493956618081836720750370294924042114935559876331384216169438648732423620212630860710443842901743246747070742134623167337414210837943808689261623311161242818667840897384121360912178065744458623142318624883459500086278650622410808658402524180497511673589683288918297311215707674892546267871312814892480662580293551835530741378829077588794354132701804149629782869988325152901871816829215705817362523465730525812596178075272434455562134163528550921022176875311761047785941435730116936318345509333795240448484265452129056863558664779682736719829579012027131218868558655530228100028973145991618371688388730273070632280410481481871648584176732560643810732346363056774039398397334473801405040602949692936030183539390604846080569989351251774963964681953312536247519562558878506682276001852891931592601045968126306242881318424932763703742368446149517172550801701504045305767020409399414962832186656027574048804088206475196885032340426400561968437675672236786347947883104437445832511269111762727876797545201658900604938977675908433671607817400738702840947021744872441608831818541335622069435667094660251446109847720067287039492886754558657730222280901831558243469160478806157006740191950997835596648160415990647117472481384657058581659495245406918733773516994729331113579681110871273838168006401730625962942322074377702434994173582523161060203089951393902426342510735541127083617612677360517658822461799082594246373763951849282333191546863912914755900751162881813148875038653259908043063278545077186115261853102717649767549332390561393250574105806299455465865411797736002332087562547614828181429014947939721351868075548214540597127971937253785337877821196469130815692551787314669345722811595569724723282079316934691006180443911997784307562667311566890197230686413484515757023309957523417276117464726018936721404050846120632954603286671172577176558273493021404001051553619819168525855030978579840383141610176555960207395911150098340473280972446543568330679415002414985111822728996219479789065498532303804020141115128597696859031294537068621390763847351065683672818467400098857916771059260857630992921063187551585512573895126704324544547713516765451126722505808004995989227172056487606778465562697739792646783901338257884006270886304311153280952217863053338639844497627251557788956367438018266851298367680191727029969883312365359376476481980654682736533677907762937595737614568071693324876130406247976771215933899492212896733368459981344164174451896631215592366053100664075741165261326252912461835364739708421812573580411473177849517156751270751073726480490618548306519659288447781621461610166459273676173078825584870119433045921823842976584299042939887082832623951226321188396667306616778526383297752315009407646170142347801078187524376554732563729770615597244006396226074316959568011133269213083012469588173616340218246190456519981050009177280020224085015891817173835791324558039129916243212762809350515127984357082623902862040233400188294053342373503449543423536964506159005813002666764258430399527923449973124452170960452824928390766550564077496537152035316403434216559344867950093150551587834163892069512849921007288003888288863762963852389526401251316303803088695985604696586453134256536623563668013860735996940435600422988666875739715922046535951601366579423795077716763132618053244116328535197183272048611145904910650428696891564606043657431220540568067867992575090490042049596590330137601097498349765952628085924385356589223844164086976079234029452251147203576880096272603534476670687134194168399090357688266343445396272124497192614848127533548173055326550039443138019766820978960700728923700136281719934354746183507258149352942701109575249691309198670255838969041072055503118490488685344649827498328970596679043252564546692493671280372084619392901749137203834876722899448156122402437629648193880429259314285502048497572553878473035671286121948781537013035092998106096852423212576255491156455190650140320138032667078881729047268584858114352308985171974271736968442919590543156442557741269350566978031813815274715067069398564394965734074625990462727627094267498840978116570462297755338002629746614125438858264908613855646726871445412998616235807214495143212521404576648147152259863810258453695976562828040180218734246659336184682369603669032767164734470127511441971871313591141255576010092748825844416790140644578074873565193153865089861602308686855514368602000969737976806046407717471085515539364336909070446584704920080582131411668910622060203307146269245505707177062162727042482851854088707004569976249705249406858745138751806573807361821497041503260534595139650917537360002016441127870593275131063394239976724504132666545620436533919320950637854817215762091713676077483092618858231303584433627899247299804260140647681024066116254917765160458592266598060360197101548105403095508572267005438366301813425327051331788019039420336920346550379649399124832883471943314779603977252802727894402740322432712922961466894223200372098923302814920060416758841700652558013589537667472569669671294078615655487120214944906593089613495479166131203477141923429212510278307453481609160433038084469680927471336935608879787337543807860144911219855650293040592196357276631976604779207813751652587985354736840446454452805257334656151082633497596238521496419163154942904538002193162013422874584453626374691666667087734571171808141133970874359809646207496692222075726509772753667103386545640914958075105871578120817036030882334686260835829889314595661784716173296542775881001877187538637668996182985435891812323655916826792984240948057945930170461762449380397769249335247158180887109286589950203927125314324420118617990822610555039561238540425858593599137909137200964029843736825806561262498769409890843898448718499324434391085625349344082106312940444199338331269566353145951446086909239723112786651113869440223360210717311467072001393353384991387804391135439053009202622351924905745498590930568168371756083857551398082374878843848391238695110843259750222673827006112011149350075110766845636225427120251158877399808177492919055921105713276119496559511641143913476016544644483737514712042174063113851866895474874022275749899654834833818721630898365333340658048076323660725258420078641364209254899661806268150722946589242917985856099106064365847856151842942256188723516372171101032121497505028797606668481046107590432550383377923977776303850831835581555941917172772907468209958651740851829902774616412113961822208581992243754520178449424125834753646529122623875447315691565179722426847155057513305794563393312905728491286591876080103060695912208821599124527132389597981804467916650513611246942314667193860842229592221322648267555478561058886249805131398456813581348285079739897349834492776683968255036784110403137135805946212665597621683019729441475528659133164809693308297704627507356581081178870082288677892538140142070510173452999254251358490667621587441976449675025266731166261489174112057267652822814110085343167578655473190657099584818595427209711262653871451912722315383307271618609619827531117139912536449156252305843644944342539681624115446552334165931423439564293880498607749120157901275245011781974611357124154852176151106294852865524270808621924332075844261295103626919916778369696855930547258833969926177726266098990154246248002507164915373784187253297856892513544223390508889761921912687114266201320897192135873795228469344001188461282733686451888239566554957010569653457516657498824125730414037483111228129547830211946198119738110954289266220348683329696721004543624638472161387940718124292483774838764157731841938572700659011473945673422135678317880262773712047979073654180289434139849872781446593229151958932546740943319020748433644958434631615302146405030467399255948233411204192749878642893736931241985925252604117670695011218323464561608839156698690091462776529755287299192033243836016852900057039392194955262088979202354231356325041453315316688237067367774872817352137337669796383300832854725277240128527674249223390557247284286131818112234741604605333795827930605288193796596515738537425783079570098961595731381884381781470963419017652707947694430572862713951025380165722826321853696360100393700385647404836359735104198650698770533454645783638760660875087933816078928859190297747210630569635210953204617451837281730554420842025353509482783654653694332740045433135233861081024205863443328869890823726974552269193921666734213878081692429533015213756122839963876934934685367680496768448340897258375591379493680453066682889256358633251417892706687619614190218948589816521556189136995396558163266454202478071967468366666071379863792925145617626529375298147107333277001244908340218287607594343099802921422061912297833630481402069458579030871187837074243978753580142089099138022137019169194908029222684292397804656424994621972509400851333866463944543079476544855180480923695785114845903736597777961287580550660812155206861834239034285826225796729055375283177315241000383071524445211249630557972923295074346764735225327664135122455500555064638323677222261549761309541918902574857925884607045426943014837000352499233289642727210379038941174320953506425253507115625646387549505339781926093879153082699365917574624873533179430659048747176861591936060606156975684557775937651944328018087119957768246641730813660013424758373204865155882475655870175641880565840027105892947149233316791194096386635719602435459975266086469944947914076898718781955182261150346200327316331972378369870787995026201137084000765471988412289248457692939667116461268254588071464047694848652287137724625063444920723291147786299134331429584157744909455120261616854737604556310942334515382113788173486415840178552053161598164053344735306611916836633434655701366944157197249045158965299376319967072176066654789562868123817854461852505304621265583258531134470348484530544010367797747513405260798018700348080881933111101936017119736725401595025283275410683633315828003794820136778480010838389068711861512695805239092764611581705960472344035522330370090472347305248012716620522374420427500695496623546572718839205068427054501002271481237481027928043569600478357744383008890084937264018554147757479241265423058642023604873441695807807059403866497824303870203311430063045066223182312376585937428720749037680695739911198704950128129334102951358933885926231469640902720583204816025651720054051022746964058505561679218637801082238853995155467618057719722737320460828936993116524740016808086902403282871993268508926740406919677402372435233886541767274862355118988143505047609997306212240432074731550936341597688019129454880372067724686663657443191164926311848716816820245294105458292440083601237258968857629258502991040237378924505819099498011340773144140836495791512978691646911955850140279357528108934451586015976762645857808239297739318226935217990161961363690213452509585782648494522872029201367513514569094359737858182308554234375661927323755712435859019634639239433147409690220481595099136688250159920947905976163646061979405350016851832674448046527665888983953974726234834302021382442006003682308615485508402344175994431101737186171548804898992234634802527140611779954388774377907031213127598274550259903485515711478928066263251765218278005810804281802772508187671389552627380181027355585612623392005316568484478169676369580470792006188231003683822922236076577555981746950684889231103834960310853153614765843202731534088886259360103137504011768542286972550647007974675867753392466248154843375638649629968702163431195093953321012902834594920433252548549635566631844635380706108249448948983036570986408282144892378341966408083084413840103066013889468403990331160248243313766198378978149174549226160550930428444410993966623115290076553845232719637328488208849137602806918716055244624964606167454872440937049182315933313045271352506087507743821064080907717672206442488907255300059265439695993766728374645100924991135590957335199195891029657828347494288126924805493329791855104401416793349562652615342949054470732110304808020024616128821601120833325041463676441073651820523555704523539843587217166121736790069083460515099187183676905505497117427562663904940655712660876014818886239282795649008922453842984915344897282983636758480173211225854006990520620610999938017754281984655053168455165162562382022039601086936540254982998300507499050812425745611240177545720558355500641565799453265397399852030008539439261773097211513693490002178672404812510002683398410860170824015884027789641093811162705970538861175608189358101090134057395379843947925288050774933713999883393722234010142722145787123173734632169952835258258167402803124343796445640259406761993430961904902679456415086035564630149072216682387767234297984075140217591480176819965666638586062878317934923090404680564734457816797321336682869219513957301868280028343750605277357450652919679963682570535705802469067427590430644008158675176539304347328026108559156344305464852159218254987706496624886128461601491162594692115000872991126258127269480498362193555492589641503884609838651176504046066132842908639620566831480912334955942593843256481703966309672347344952838547337203284945851153035097053498152901630617264624774956460727130388566354797928271435653987439986486056480168560480311220369490295237030433856431009131871519669071971974736769083436590719659841385260898736927731183348809943689938687726037335750796963764724729127938122423367729985886994796018313333267490018277637749828699857069961747184623588775907205423936081714585570608489732611715602626356980321104157747899786897031983086325262810040216717997655685944202801865993283684780873594071490783002389324910351920957188637004475968194462734816178174854671658386353093314657401922016651454907867286118740077390065135185308261744403653431368694838705097657865136343634833589663630177116711924908892030733424215652113953304806544114790251311829426335773870324014580293070780533140479521745082045732292560851805284974853971877409176747287105729191672200376370018617545699517692723810416938934279572159549207220857918296474814563209791170663377411944496841798219915412451825937174359161761731223804998595070037243076696419866223363220016296206718435357394462861385529204174535138399372621638540534060312949373281727648422624640551449117147871287402629465436358308214132623013054588911828979188597441037090539265484006639143738066895840845468363458713305546352345879244576226911362620337861223301769510121537983513419156787005668046118981198601959439353633902888208207416192630221924776995571881405489966844422962894379610570805268717667978347463752427268807854549942029496739453973023891354825132904628021572851154307469591459723285795639480844273414281331313121114465345876599344937122278893010786349478471173243618636464045723632141870858932347485971189878485475732118489577055295806532793414694911095191955927473211888683022670188460592431349478768678943376159246925708158950707081534277752774560839587657116538660249609340516229070284606764366837188794611136270191396344237809211722114756509637777207198362005480719237799491130760573591841222635709879530501193353019634434325308341685469821394954286913473943748662993940566432056498587137693097599507412913765337269423938105014284610674552409794488321517321265445533601289758292935156788065377462476343390032546529181644928375442917822319497578762938774550139833212129360446833308130210354828220659186520377454820805307687629111919265376459545812865864108223613208366746708462320343432073738952585661416443543020993991233099326774556220061779741658915999969267108300893795876131149549484657519625300771831400620333847756908141367003528450195504869281570924483076059656326090414555546240862394672133405274108771073321319349210836260222932633119481840103256712106909743634020983546018109943202350693870290996568520802982331558235022252660350507249404515900863282666231875822982816271471045197127391214731361254644859529901965065783614120535081798684916350303062121612282645811233330247358427769628053426357916652893118474899767130535026941413156149192963578869497268912570464528637498945271052990967718665124784695452213949886057575545084747974155763975802336498799605397765029514927059095815260954473913867053170742824124815155578942626781512525853256660280957824448655991427403879109096003807234810134377223995059357247441319711254544875529848709756889901965666459209931911417284322207673251582097986814166466272109232228794203209628742383382801469651143435251484337354326954740824659528418053028076101116790111255494958773438637460107566963038487267372203179223470669204002268544477384531401060237196643431146988924729462031148797420534924907781325058234852250350438026619560914445601904091977425686441588102148831899110552297711005167261820983144387478154043935073421745563499290199176408098134117920231610111981345227940693709622630556658069756380805681607686167136944525462181189288146090875858064665500110183540161522147901367877239993361466875746080386897192472724412263585762624153880380177309343360336433112989252568138743381875518157906906847318413090758595493753303799602229331324124823973570419835507341536658944409193964724118243179863859443416438823517382962147556172325991528402251849789542382953577278635244796479739447722659738283308711293542169613904902557300125631950892289034756382177176684242306891775544367398678604431997153317513603326142877735047603016605947722664328983484226038255803026628130244190702141097430551397662442885539769521632685790111978152962422491325772928125025001916750201499602195563730203492293167393767880945194513231343616341304897070977808463692361833288782928362620388289610549894691602944733423475230061094684280269391220174457473519856042926199619325578781700886660822267801631395982696207104191232517566675271077708329357585905975617709778602097651574314139534888628958676172142941019131921006925519058404712456671621009159602226951281073596199042371744907706565092848118992021745509119688841341752954436952336907969255916596696392763148119243380480683382292045229691386427104273696391727325384665083431743665992095744520401401488010661364977261206799532505981011395421301298053843916533351570855438067030771257669180370333628519725161832250031581929928641911029736413332029154925194902941158195237950097059866628241603640988898729939902033002276913651393282040576006931507172727095747471725387078180644029195843114041204883595009472089886862078851415605318436521340337244125407129424507144072160902529136223239927919523101207444527486970065999744279178421750629322412944322607813176033013381932117180137433477753730571997194732379546613794258379044096067777673533040692280064441709518480669589677355491296223323682276866571559255721071024118277393993562296030474781194697736232890776825677541941381255962237012341790743109719987969373972955536366237664392483476341356779325242670942977708116154413917422423595528644070358553092109421608711289488501551790569147785795297828555318791040366147149322553060922090388815916821969252938958106503939460799289951447477158819817114749786302181214498932229836984259779346373896138957689515191420232700131914290010120909503695254742451196623905049806442745159307108229321888158770793407769069598484715253668772296097158698888960128547742510458418290310965770782503139982777868059614993300457675243281815139717676047725032026763857312088126685175114189018524168127351318176170927398695900585976503543463994589851127510589663123976418599400561113115892080605423028076005206025640497895585213008456815841878288723698854940459421379402074289067833340731702458067568982565911772942252578452816595219971067100267165259185077159261637448672449709558735565558913831183135168665068698292633458593212419999854437517732274902723352874156862176917704228615294849368267773060899273509428622450999452896655248221974036509759005058848133294341977560958189753425030348364026559441510195105356891958348452247251321576576769611226719521029795737999899018558201672329449727981424927962200575973698350745439927625658895802513158803486273156663845561133143317720513284877972166252070164953595160543174431160369992283781667321533842979139114338822052429793297428154802501541055536072316889497028223243716353233639577856760389679090000303679310489151168256044568735169993056510817343327431294295095088478813758098935032864478298105338250216185119432295578720894034886229879038701226871748382703282232463034445175857258388620473124480816851947076794577555452798886831395356795389901073861090948460512323086020413869113675119230727425111684159240621153069541125816101339017845624825205438156703280957236233826679361216714320706666597365240562413832331010610101166678789543081754141887417003226910191716631624382025701108901922141348795960727676126821879706164036064998126552290958062450779556086859192304284525002455136689172670289764101675271232842340445674877035847161245281769671309038105530826131469954984916918942961742465218841650418448175623032382153555592785057728206364413529736706505316090841718224888106777622167964723089815218950091723270117350354882034730196137832705092656170838352368971412372609641281557333693180712043048759307384916105494101056118713800795287167843405033481914062365633239382635157325716061315187768646033603208159268806447636526972625659623300392294149447232894441585499828616632644727661695216424798320972808303971410024752675742957982975465786975317304501513506002723029047536770805946689679738531586655372158287325715586074165709578938721699841953826792556524915733842681393563433432986198579021330245276715156051036485431202679728505077687835378732737265519660648021625696758936069307498225303572104986664562368908723974728368783310186807755607556741057747573088289804634868074061115160889131619979560305371798445108275218831848372857610834977224033618515111891741679305786315140625742158318770080450269411602760072903759969230547032934082390210525763936040799955220464367178264753971773173554626805782648731860953044267288384525462776976443835734116535948914624777067928367823155590469826742923504855480358582366121433351181355459668823922491200234346194677804954201230181431509876053611199831159325738446487376367019994214874292666756075418884111522775343262073868358161132533267309919473974598763066571391945967210712511995138726331521563187127059373338288016920152104191032012035224237243024116894843464731560935573230541147483951430572559814068429975352966360008979378032430618219053998004558224495199633146175129249315138010586917907115392321188622775534278729529260993920760280477663863548984610010229948275647566828481907449296254594940154654248941304693931691438220586853091165856298482743634757929976601057118470660560396954344669652741434091122437847931813469331956489850381938590297899344573691657701586941108321418330845205007204751215576304446790642337290887909751240049120372515412368877947484097475955687705656460314107472431080839437529383361102022698263700857884862134390517419363408169336687756435029136530755170398690441186574057776717801212448857223535647324389056123532868315999677449386725091149325916712045556656716628170915862363186120967638838294833698733574086107101010308248356596411211315457334019559800465279399358170967328417343424148407135057584187050791688475527267144564308158835604291807350080661516558356704220273805069660903466732015890736030984980778735250843691761897171614524161593462270189387499030748743464263571125542093349151563613257863981545888191458940853621329947550442468870384268154726335321512569076305493783281421919907147727809007096347517018421234908992718266610021057879995137555853792324877470337617691554200019886741479002803807208689557159587372997289314338782786123806957246931550226503590517282878496860677704452606800300199691840823623124246352562510224055231428591475449139632464964382104722575572871532661625094083929095737192617596967937466552007467007232389510280654376306926667783377131094076247743239423003329528797788961293042486369501658663209285961781428910570255898984916415562170809067107947841051437023812536255983970353031309301779587795196403170936700017064399221098786753081280045465354919107515558987551975594069814285152410869220389473810629430122575497621871955520771025646041528599591796911387626738319581207063577705907065463556777527478093348795396323528933198684076801687002260038443060657481760412975229424309933446366392661037905528446458947633142554477086722544563982690967400642187488222188145309094599724495608636354232478434347189976707880225000475601386202354975698659521542105638784432867484781401447792033537017583494556962059758828039702320666182170101604100747817125150797663082166489674340542350637109679058464144507999474497582036845324020858378154565597294717460613207368852290019410126344990275230470881639497753967823860589857348010037619411752541091394274045530078225935943141245847958463456643305388015865099152357964672055368964747440616614139490739073565218766923679378027086110838944354503456656095817791249972116047815379804518012524159305679003508490071463198406785234198613263679019795160695266558877847140177715920700218354599440650078712933887394910603104601393941459326729359949972577504424659357098961907994924508204268094319234962477473362947824088917731319315626308935860288408382206249070153738843355301657739473126398779506937313446324206043597425433275134427755119540910583128804696874739352013964188018983412550620389256698817076971661456176925089564883209775226875087492450223735366083445952531305301680361342906960649464241658957418930804986714182436313461266843974278253017223862809531773426853014317997859839621968523821363012404885351719559856190643752281201132347652080307616125209578177742848868717579066717580635294239734361181784621901969042144417707298726741006506274341877962151592689387110609526945826102434620805070830255423242934327300549147344097109217982512110669710135638141343594238055736470569561565159315448759868422066319891412913475268245327634214325558194855344983936145261774395699315529915421482099685127995218166365821523392432031260807476433366596306425710185984136406811703658903135064346448792915582351948309123102358470992922367734451924840400643597036552923475339928438481558117813666278196663694862071960862080220587716671797625674163933298472238807237256579377631971920241352467699243544224867531907349800872625823045337371838793814563419253889957339036432499268515100216955243357350134958891464899515665464072234849372118206223698602369484240263456254037045280943266470892806721117618990309813389274808930761196854057703422390384302429382039034578698683451355393220521282076580888779907862762235462651851075782446696252808152679751534653649927662620680375401155359080067042640382675717540871993759646152884323202819089444413847353504494361841159577599339744819737289944007725664104060988361316892114756647427777395947055573357475704970838736276622327052629178329621548502180853467012350326014215154820295123960078846271366022412105644260540938588738054801780875232048698846144723925420694819572488534380560210064190450986181606410055305325776642661884726530335275903390257803590730250678473794600351716375561010187045573319425808566893237965641792994459007657533468488837696944502991095879876699633767351741817357104264839037596643131044359880897398493379057416511152065991750493564291807303382274529264072466113776740712324838204351083029561713350908139133616166455707231021158151138280153593071102647096042164231895332988958091663235315077629789573069663269751065514876120035099529104253420933647766824639218634789207170824293076486237477846185276842048866981856004080325948054563907546251907101539151569328971400061224487502813020532907637253316658040320017938463542317051242707977068678982513965273611263998325579056452203400808544679266446122000286100788874483132993813185936130664182327400982307787713541807135070409119922652132007586330651210191859835758060420007136358287846372977203159863232546819075164833592325566256881337343736252359196484279822147389510068362180811114990442174112333499004477063188837090122971707568704661396798562414218136652042807709773148262901083323340837481329564799302261027712959682404706677679373588920056038356632618898748171733541302033367695919613512295659977195365411591473423171286965708221388876288642316671565540119766310210745583949879353880252095833394257117534366755512665742604233999648455835320476371875141600285888052678875054569727334175915918277782456649236790560567194497926663136857026487584351388516490974787114962469323281196128788393572262932101557018843661621823829102739213973769580546356296147464400729478592517712740639508212150203355691287010996064037622342563140489762080992453804752881021367197747955071436039487695660851038863094106453662754715730952048344002690184519578159657100439022920774462506538315196133574869225822659378745914707162836223153590228427119517039138984406638392385962085211464407990912782421569255529696441418026756480656861861786560287657944150936131748308331756114684138933333526483506831229357175365320279280937914703988345424847904642796046653276306485718661262141836973038406419463491150670185667750540248393016536433484938439748035528721618112040402491081292790542972578437320739544821110738399456817201792414003796821598666969491161079799113845274893228561699156886842942275912589478986344344749073085251283262421390525439605386658720658820536109727623050281839955077225210450313503795314167246596476073193268298480055496396253564042656429892801042002486444470882436979076090360702734363748857821228966459254389890900144408212517524752861985838415651414378602954354039526184903332080406637742348981745353315549935389961994662984390395877723082803168986999034265749014759806001403177179712406471981186929764610262397239909439907789917946577066004743846149491485674530321833861144883384109142699776493052639843342769323196591599278327742278497224246741658189352495868339480192593718748604357942388499866373982142169933666420203489325273694804807504588984542768879793950289310912176964661178191300884975717795856712943089207187177032296331267767578713415799431586463929418956746844296374134744520358064458437796242640699279904754194802888415894619788487958244090154285403925248558417505837583631179783325970356355910072370545570740558543260882990866601669265423494622838448322683515169230847115175572972746497944662046444504102240909129504423996128202526855179846803498041912534711159659193553963085555854879125949530210682061818978543319225387422423849300158360368727691130558510513613863671905333484763085921793582587898076704721372411852088207494700811954113691550840886509531777569844370805155102996051145869931494332179434449170915541657628478722901704903929633947787781947795144273845912236755241753716245689589868338230740948056030199443158309549139554609946814016525454953593777036040719459540304935430029136243699666835217667363547815367558976900705667164497222342293923154747879313709069878487137125513683722466839361800252016932237324956537019116172046141753070538246667066006810458808966472629686470752885849163119065432907240867691581195021091397937006702968887365205349927597192779858167971383392384623966419390488542131008304542095237155778694399038807286126091564216849471842153993509636737952257023750511365969012265966301561993482081658722446266238009270109819635320843240287719966117412524720080280290176529084788712091941947391700232190844706436113848452670488068722265435248158193848288180574942786450006298405325714948062412530068322693656764987544656842001013336090116182161494935552095723472808437306320611245067397216708708667595097687532613507123638469710385787644467910669898106455333376644335837520563308448837383466019926398265446839017054327716413386277380347610026885430701790767522336866893074117810274843044223674894772612833732686936978314758787715957939775207434178943971826040957876492259618916326696748046136314024421053318842298494529047939031378842291314529920895168201658615691030667319005583891054650514172689530378990229989748335396368298772381443155560149922142580226507968417147646016088087713756821518817123678300189192983040639806088823841108429159548031877677958997438113746611067204987256451537796904362807158656251290465772628468309679359287482490817215365750733257107837764325519063984200288875696270543531135637610418506366603007875296827318252132579888351696560079555689221879202964082691717810051681314843870068096204488762917261983565667129293710478366017070691916763145313470569251545027467402811930137313747941217443493276115009125575348132529270729738196099346428172847971252995287374283398323083840254622489489594930229612880693251159532773603882233122484505472389568955436971499931146410794693504287097160705160119252219128670564901943860958291904300051115066978629358298661032832700518530752012268333319920741297499726568240182978011230919682829775858598357252801427140742895753379445058465953413027119115582177497980633629329125783140219101791225086036843071690347738271985961739545961496192728024667032481997957834618679015468785127233905421096817414900130728799826706044334280969008042076219448756357843933435779998876150508233086507094778727969340230027060309146171089121611110840716316414056993152959295225305932991026440150036021094125287049035926174057618813037697050653371631475747868751841748984791198908838091870406412279561522117342618389748373147997507536405737988044256642636978480486003525585666327472352261548668307134034858858654927776383981219313915710189643000686013442728043665242318924891543690585215282836679816404371778269685328989629113962865338408298835113642272346213979287096313900432272857151307758091058634290551264101114409042565223375286289452277908713559539900720255642781083283903123470310175378724421375944351046301681885375694976068501775506978969146145629013906362747650315334967638771562919516908476025250582937104340511942374767976667192617121240346487706438443062446520181959146634505422861891530249784544603812373793520849113979116595199312569142558095664178396938348760959456740206344405117361012314534542789452091523550405823489916972584301298625241110606125033933318186929775865253703652887357299589132571826675259147136110176659414055752125411123210137843959586363684513620166127617636709346143649975676269997915538258055111576124606449274125732839068063397112268947525506832589430021859284153082655371549132055597415758960420709608378457135922134102629846344606394742739181997667562581767705223992275521034790253265452333752639944454569363489606330952706300030010826090247735928143130624916823979516741580813440043307617722148894971397913917302586990463187526598260602712391336708940911419295275914419659552937585730145999204464266849253300172194372323751225206246743534951608233896126791908841999584826278034514956210348465510176680810868235496578921755738642082064163694890169380025813081418117132329411503119416835143874210095857946219646820344814880612486383517030083005817913769983257548795744172104893867302297390600926869086910078695609291393391956659403577218873466918707591333766160067005376670057032733896661913758615292303403945890749471074038125507501925192525801689964234249937665648536371157075693866171037517188247424291538580762987127553105503587708894119403888778488937320613754711944876269590696048087168635093224831757914075200341952508561790851606790069398719195738057703788662969495149643898160350774599190616663731216645494828363216366321145366820869498793585353019355416391332927924524605381679426849871775058403327940870733723763329792951763493627672915558678968965576433231008544895956079493609129602673757720280041498943886404531876007985317678495416491731568841592720898682907725863466708466949286097739861216940713816057968005249629721516232391778658409764898279257987091621498468113462806436877601926356344407304197581858397997077349727478497123692928555983096671844144242785029435759917565162582811379920909247373742232180281756065016281508639026796361903640615718220113339774067328212743075580590834811546875483724644405193001117531769384157205640927023277501819552241815233514971914780085530387541429753591251184814584756987867498270990167092745453682981347872745322565922139030010686719204044042701169059336700148431846300804444617635271677525246267144832571278900219375626437962757940753552788046086677331150051231049681700328417114030860930380110803438238135877901041138557621332672600384290891939535050200702121585481202950004571609452432988316206027373818114838142087689063494259484349238208862525231606187108895446920494706075750460610514584907396000531799126726857142986872654507613788719100918539350681109923001571814028058247051793632145628978621281242951557606265213674746934352394138677669104019895185798974354900862961990832272987512057995346255280860607767108289727661638003659802237591281622794054369244798541292030541555832159008367358818900537695776598413567626326109258175783075043250053751714572659171145613864548244026449192077423407486726716574962258162210196344658468253181457146846572603161107208904898232346739979115290222583038834508955225076807279172462330443242611427403128444960932256953584347768655494668871425664126459894877953463394840421755500340221108833905925990211234377913267644155473619491533425492924619960867133639494853017913114348852110729529378591805755990227314526226789438530899851943462844171273688665768077742821826654419873407808379327606305508592632110296895784853497865529252161809292171530918640807948983284479899165320817759437011501400931753536424378866577691458718264724875881520555595883417235454117373449145423048651881061401357266763725649250915205984284725968836903886312953615680256300459100940367525416400884499392481575520316744079441907242982995583971512011274926484660497219568685601421401856547332824219166515968604160891309590950818553005983104068963708685625009578870677077992915094748512446760447326080174838799047820170929557161340456087252970580151364141345759171593468143953553034438902249320794991697316770340134516756284735634053355967799007381619357572366738585239112078299799860642086498603282441004449379310397520473318639237326324545800134706001543937016319634102054500649379468816669329495180674826073018888052780872132049449969144050761510049275609662543131273871982605138333638967969924053618265267882533064373385607107678689583776380283916900993175119712846544235934045529489381374475613525042971412454619910509686905452832877673949652396474996824594577346983294842480931419093747678271633244493111908050909396569526537264077831197223373812566637294859634407506193392037947416259435801907327353447695248112498040743330098917099316287139536063488641436723279241691980372148624793858782343677694564191014003963038318980573073477582249621526621567990456298503125578428252579013495716424606592665581189711587950791164308687658164593795839192274892367617065274812617772825007672871914356926798350267101770532138960181271281539694019400480978716868464411974540756000468561765279263430440628228832814115787104207772472765643005062085151328954888919043959838808298028716115769012089649380839369672625414150326428546455998230766016292150653362991910075562901182736767490923834402007478095338524166201688602934292241191560191694528649876229871820960235117464300667271244454375410162027420163971912845276892069656039550352634289191516170422001414729693027202038678236248709894932299386386746597351523919090815011536466878168756509863487296117018142284937633585184172368467952648351369410819574189779631604480722640635348124777125100337831075513945267455169351975891769088314314373678026476794743603448433977917216574095344421576440438300481880108939369499002305128916937400423930783676778137937549375340453645927885275535392311246485792123553327619657741631926255457144305715900184229991554567242171895109527772603183555878819537583665291041691583390993059556152505826584882925411878780542992718107749950112431815738411471991838161381901000629632768252984664762882007234370268779788126782039809883172071163412293035633063472362678930604314572438265710284730323546764950593947465103368583779812235408883085940548434235692037035474407575778612601921320883104330421091198832952881604441240297764391470384453796414713319933276061603051603920232170890255456057087273202056848165357741309947126619639401184943530632020642298592103409712600199780368018611779308127344186233316594362610020697026320404945586176325104053153757496261586744197967209760423555118912514223575070747929090209874215769832595707927050704189102801263970032023580375644330337163594445223330679276009150710374098050656992341561566301187262989983170188306138015429923803660057439385515290287353181131429645777890845242778833577381883509459991996070938546819761572846261436169838294294481641825028331718782261364421116171018036493590095388812957570930022403650315812568051390844620358551529562015346397660833762511366843474381867163345527650983354949415390814053691428565987366172311426185894003680356884129210874886773654682741194943406960376516123415509539372498986651939393576515059711667243846038085581047233559017135739692345622054448476772135463382713017934095445312876919232949396131672871143186863440525113676863937473939722159115886344125258819299905309260683424196214130693423124373165235874850453103069933856973950992709045082929754940905746268014950169822735887249646562488720863951683335817819600069979547607365766738026577240631658457712124936870920263057711267037332318467815545497573078684617706112304117718159114015247116429031202201934063700460390375199192537750741751505880868086783526489911445398301313016576392680539679956918998097697577625149668316101615305238138543101908542226488377226943260687013655040929460401851151909368414438819137457793966084311264785369053204522661972011822562749638109888960636931796121694486491413329370613359005516826041280032308329226405334395768032994336400189591762839594459395044242677232107269314385995476925437173921539004360848059951332829094345169103450715755557351794416482814727567824348472963075097776592733907721006712267586031493348782468404695485504817904284701099336272274652289651818233981838218855470185543847593488167115517474310546423536911595687034164396826665407762665544632405804449924268067899879241802257056939051852590081234694971471963287696771036355372962398766392804572026382122361681758582988937533199183762676256609377510713118982624373363720185576332885491670045967340607908215889684367089275940895497818594145898989529124639308671864110331550164633087686013269035808159124453804866070376945513941127317092840022135737230401507956741494030971621236927383926788253750155646579381304689957870117866622763071981250500884429781645362429279212492298437445619766731806444161227536286769784688025503405041998712430845736143831023864578300816287187933262380157479562253692390844749122860347302175233297348768528294877168516897372765782671979414788765640143748743054147635376574375404527251100076253323052021317172940381925150627251801734613415032985608326576541647375886389149442507655222700385135697087299816157958717029886061797178653032396319623103781212747840200301345974098168376615562135170231075147359555017957878487685822824541659801270760920330871596008085413742407201676608677721858330100703566032305541744187493024437673961839111220101269357428560213271287676619833922991328042405291137030294048130311960544231493999744140010481183968222313988756253109286128852075837930556016372367309312973585308828817449891582222702553293606604151197109668230355097769176647711148918437590889610664566732264881298905113962576075578404295781955311062523111489883929230532134020247220014729301820478694279281200792032062962478642561197328520816691066509644856645200001686007301142415473312094065950751080159199083992929665519591008382262702067157466148870388165872784314417585711806967010934597845131011601147130916748595477413398290863108639475078555869439588655844851017933401472836483564057150782911844337173777199443538216244274613075292864494680326039639968041050669976972771743586244034492787215945924582262341679642859373398303097840195635598763210438046366690552282842408773763552696051595445500014825110117794192630531993944823216981653549300348891040677658063554308715803014859670075099545920492811916564088452127270013176088931697745458547189716916051220471128090987382975652359044472877505687652495809345772711891474151098204047101430311118315192095650321145634409816220754887155501769200437466243460963044298070066276671438438994386051094519616233493767042413474851080725107143773067067619908284856401543029304178057499986155612155808864326364494319525957855178852885921395768004698089355433155146472302089501158915403788520536467914482811605124316972894068336295265202919575459084187355881301628995757719815544925252543749902874174352351047250980772552509903684875979637360588327738014991084605939950463597700894504099814018456361624178883970700768728788233757117468504766734724062149236454565495662132722208438354698773981944134603737280245226300952473718759189099421047790192782202922992185682490944235818873420674698652322119267058109491441879692345793898729327000702021304614886237860802989490991662019706569768794825649001945666189822404191893943830097189459436841561630768033817843893928701959473584332064624893475320061933797785238888440111885715942790439767816890802535946886314309077680763977652911484115675810974954752428372667633495753654304722262681371397270019179048902885188184372102608285801959779763725040349617230550936143844335907065872503789201712367676671725051418586555194346537779026798226068173728625121197877751807264529885391867357699453661579505594940244998034884375161095528318913544808353766582563024438083744549985111211930319163078171858998870835542351743672960345526890230402542108302853136533834800772060853701670735546263683267960189311112560235516996059792742905509258607335533007585877642801636203350263571003317204956439937947797532799225415878678723385295777844604715290413482031301160746612774224782553866500556810175808509175926279785783138106948215348364461497345835879407641847717008972235592595396387360900124794243575757127812147579227790086660354762299089049331983768436895599599076099741795543964501530647752016129802562440312813975552347081962334537618906781264353652155108109544911193934378166354262737161780899284274105504526281386742451658584318005587436825930157045436424585777437948525890047669511345906447629674507861720190605697167193927609641199835079609071342245736741997312688959339910059604054323390419152904223153765815649746888223057129910635018497715267845505043336425645083304447026904765238301357974074982392140250937358164952789535968577895184212163839857229312478388805290927837553514695109132431458278873917597147223091697124799337570686308859921770404936530175153240315102748224318066592923516920753607291420910698778640166555898425912838334195556816841729691204534995277184668681655429870285865481547058837629199122898146309532990223672587573114009468822463781063374130771251158584922161516065375164698771694274541619726448018825064715656149855186508018717002779130758271389983412528034294586508608361528713104932443876032841425904116966737440889868010562761695529881693456735012617588174402690755852853377867905686833331743140808441249616542576604569984080804299113593641344642094020137853704848083913628875386094768516519103810430284100948753779726601534874750168622759637695386699997076283929777846340601280289804204940293223884287521517390792809601186657439370871737884590128659969809304009963327906730439245596420204988786150207924473401220593801015635177057759783759671138274969602499546857782701289612290533564760844329737950035194548013417282587594256995378756464858037771920413712211843412509152016530708345039433748665085996281591018421915473498449244278141373222550565969332556444445615151320677352498867448370998484796691269732598424524320612025384147676856742299632373884327918751046920096097088620527234416621856622092284256540427167303259175422186648504540188160144139393270713346589824077340287949073934012849515088798338831061237803078989340897933318599841128447684726041315518788134183998201029769833709935504896489214520702614880965504646510427856451897606635857437910867031416921587365028517596317419397269880810495802598467080946765110701492094762985119110834156302845003829405653336659919271592759473307037849912157403511565657160717596056266846894947307331934745355342107355379420125032713143096112691356709318356929399910095244300722628468889780096515483548125308468086109279800773066223126829141380931313422254390215354742864802286534629193518645608996685173727873372482155075428507242673383582547423479614651874183018304672406787113744674723015073653153346987115718125616930365756553047285181808186755814079565081247871930321311017461145667203500958738479278589376444456838140327327755078296125261256903384467504228759024346176893070653322284104766868292928051190739716749653298106610491940970340786966040355736299131359555041314366774668867768303105973565560275433120385570763629104176837668472774838266561073080614635501455289992287547646529783151067019241309159592548812615607929992943477951738218484540390513542065461947456698233943768282709186744465363719984087337176187870109915549974288820514041219640812604115670028636400813180861177706033507462655742390582748178718373178760543094672102136395772006093368076730690230733244192799242248781846343424845955817421361784023492792711559732852131756487353980341121235288595926641601624122194089274384497661402226380244557379614293064862664865654823730095295143089601658131215687288276326043087172070534520281437673152450366176200484292883639597750542317706005490050449907570436616329029915847412546692670768370027823244837800980607978136191515637883541907264483855842828900218374427705406227540901079531473500839378672800215056992306302197049675520922726756726727462321422523639796200828986106323185299090280653347762145440018723521940667502383784973311996068806870124589591496340726953066431172058794501030585231634869459800963329459774368449463670304593946977725016438704710043358572711860877891798921328386501718683648909485826367469133321659218331239184688451451018723741020089680331014218084633230527087469445670916960228514442817916157973507217041660076026002470308953817312340552488752486628972749310131057607467750049586599798841297208419664946642090966303860101756889137270707062028816799935463046447051559532204353220081387304982432855837134466150165874835560256243174972413197896629671823813273523797477270782385789828051020187503435015880554362279009692253783416603783350738157411020565152552322636840740656838698315817889400349440120421809755737763968971199365890214778470623260651698655864151881038788979503682059114357855365093164682806436379007343544687283106913448333118320653898030618048967392589570271609166468598309487691952052431759351330954326164186813506982543399032403338167398032428277186744795277756399208008999810838645856748865433967749314006035007279422691529821023491591298798682129572610888128454222567015062717538139448457105716852835727885117219023218450322860209052004735775709100578334679144950183219886908323570549538554741005433348739664144755235236257020987832425575679752073108760917173814809785886012474012638006403303153581589057851584877567289343849055155827462950215214841985115073308891255285113959927884906730363648693497201471127494934152587511033935795125579810578797208664537814597988419527370274782076508622735936934939148119410406980668920145345181810893025513913091812027453219128471679544739809877078723815990592604511447688713494987626493597321425373090765566960065631079089037261666252342758904340056634982051409790871639614727589764598201472977620263408362846063549338913889874049929540166071973398589228340969991381183607886670492420215250791282170877187749618645295357415844148167189202940734045162523672837320902487945759772171528592617040883751522835052250274584255860482419843080473120863442495143465111652131229473352523989056050916105706590528086325386692791125182482461349212616536599106969913520527715768116871734190336463566018652535587016982330213174603808057959296617499170325434898076041543827232220377325116820036673568430821842429628086246029831231168708103365529761016950928800356311104876249625796403472796082790305082392422559437181121560563913394887207064596103513499020299403866552356573935383895277558191184086637346704628444155878649508256155831567264440446865690819915774276084910535022765603051846430268763976012131585298669160971881515472405412428795149625276093039013357602931326341706262507967473873246167672262715545501032545550189447553973734420437147258990352941478137273884843236313199170137449034573314883101866456210281421562305203825499633019313204431897948634715277586715978979424352042387500238404582986550373669600572131727826206460124130032749181248910325379316381073938513499887642055243020165664681162056786819791001568790332550614816889490530758908079435692682996600444742257192361617244410173638637263806055081951003200972434093502615523004687736375717776560905631384087016892174935109246809498176361253783460059575521769549867861839918985762101500059260072281609639850835462423736831698558707683917614800022689239505977071193752919644817295756074957480198214119151271018634701944622392459597082634041789308306087517211406930530874523586412906653249255428554318216740471856154214383608963339049432436656421058237878075718114487776726560524834717653964589836235065870143620649255705253570853347750870547406850972435991286285822550554978920043682187591386687789742245592725039526885691119913486696328045903669282857371741174895494290611485288554082329491378560162867926733758964593762675695342842620110907534155191874421191849319280749214262654620412184417909134471409165280727284547435941298710662324420902868972730641401473717498830350841671113255626738701656111903334328141208352160808078796319528882529330599239578783598821257301794567549531828773294858932884033018608889213451679976688957886256071717866869875699006193320232419465916507976500306388225799916855984138287433857668067741815403655275194612934844355125614908785475866656411906020266769936430915466880229339461182757102498264986787079189369045263638073269601899114420133524183203751337365067235257381550302594552615652280391603738791629071506058253267728103505299645663790188078612585997794053067349529979762743817398672836302545156796336638949369219339536645730175840649329054892037404685484988518301875505505080016947143811023041428033760896767490763922588651809887124463140409206117436309292867121713198000634088502801713398630967983410442019118086649818127509550506627914642189477378990852403354463368070636449453058000491286578122437098045713156857173114461555837215219228097027261588118373612896319422158636238273147132974155347377245304327304412909267397040186439839281246184420070009240851610761415278678107948199339764020165524358635909591315525946440813614368471113144144180358203276864184243957931930535695234177286213526204480788682093781340702671293438807188610591863188130288653209266522368263014148842926071306641540338943050855601078571362584265017802262248172997699652788115793617193524458497463840561856749734197039107859131566644495604252217727277149502124756891961833232185459674248386863983277275707710631345948161122434366075410623275448802250039548766384463307646984027799632732225971365744281958808545461731836139214753855244485940716744322033337085878149146198141310018940650233495323258500474734852626357100837714750674937930024913251518626968064009944699551773758865895420749491778671669546106224237646784867688519557258375392789600179055814847401558155913222151614582062079488936095345862999277580637079426039542170147869228046197021123467214138742432444163196639243940903996427432705381233146809531760245036075740498174748389378786417744920231574374053388522449772079490652957365693534444309157135146499629806084134877932954242691132750798224386635479038847393746636207718563476548056129508797003231905264970118043636099632273314282310629437363489183652602705385960258517778408350648160595679472192493824491743380440396855439157442089023496125545713964818460422084523560711879079426065274792521936443111812722439154252299225587245196487601732653453672498232966310198663636903516804020078752261206393339306058029075522073108989024695714805443826337532146734011855848676921655390526644613357032431010887444681720012467830072874739586867377519644936375378034281998578711934927115558457163049632364778916402707981422685247461424009630659543163928691560264592454944248418824114396886983822375517750948845996480491850058627075001160880312835020089102031937037914418510537417245532240994300059446089244854469652990469073376070967440843249621003333404629069699746107991333272356031349206305476849659903889643509162988349386079965214512762431833327184516438387762542547926377219239641904469716506867451225343630419397257992097453406761804611430895086518885549491541523745336267021177762651531038156757910876907903210313056001823284660456452774637264050556560013128509900740598361379679419544878598464511188939782052499764370457326285532409524757540602917305331463500871104954301256437995488539801959122637260548111029700502935241997487257917105125102454998346521962807349910999087958217745921102334880444356326256821330488828436670664010109927860656752155319586171286344413230539152512747056358725429029742045338770792384587956203940350718342962958991010489179840343281960250743818446082906735845372998879171038351280056228996576988664303662004793605173857628076755766435273937897447841091194883465458106029976481026093621432805148491729128440210473925129255844876311659919647580985775870157906429978644192077159018228369932191180612640650290733289734861231184589665070262013335635629165527453806096493458663107186179248149181571307864514764597658144201864557380966560206742272433624334662962230521828498766885716222572931971360497327917694929457168141905759185053084667701645813954965783288234894048853722592187684232575722931112277478457208450562145271624658743872191525996058532451568039774102873141332129243744081972781525572695822126006068581450494042933370323014056630740503012137297934075901036662210414974442286219834457239579576010117751928323437848934885514746249709742483969090822342544997645447638564276221764533753706441707758427479855576586477455492109553374506698757993231146071800870387027951882247038981186183712453402430991834406360564546744354062927096580393570773352449010470647746710288390056761451760428546510384169311835809360530865645894458512583749485905288739916645863767945458865877084197754743096505196533670758432704121298151849259935652634099088321672593891708392844689999008899031874846651242526460059064620705259816708423535142083344421760118803417319221042788134049203757636653715300336775366490328938710437521263293524733412826391772045979857995171737164008419044032257549056506040390105960795428032802269832162579676239231954753797742034939278443136316235933225410228930227438283258727988939251777727600412322277340521151325758345510697269693746646308792036738741440056953075365853370446995677435027545277611277658507518183500179151260774265893188353066964300070010508228461748273861369266805016381364866137893642147146130661726241409822661983694965161048291151842452191678651384507271944512337853819213983774930125492993957178201428289853029224491936257447997401236272592560158206365130158184075046596204627829858205787095596373763401123896342036598006027933633303458123289892091413255041679314474953362052207756661402028935903351177198029561865688060729035905933558433570787146277813011236675552372977454394398646948701341583897905624466921104176729677587556213681236769888005848203016351272959272286624042261753400173268677843880792232289756379302791259800047539025280443655690847922650761962471765244338886764819436340987048349231543256715304155903933848487854299024994513590243981908457838012480987939257671162207440235729813688410960667820368633273219097941674232028082522705675601380326482487614570347489724882199949014898997984565658682954191038211680702371924156091264253207188507196905162806994630632806520331929666600905632782061641423328409236214978547218819800747744325900488989864201708435002262522790287808096425770262725897926425597145474610879001858516848035162920523385258526625330325409055235687155227907055165009248072595640417603620305840862936147978538083416675296122051305162295203842459916566307904895785939862689811045786742595590384607469675985881683816681986212979086867149215215199233110195090374804580431773677844918911009259167109522299677099542840218799775969012719625050623066409254963678748011292467564324560093304275010365933203909873634716157791129542063797663863488679360160386572447913888961953566936279536759187928682843979092005753636016772247681155943772648052091347196279111833627753717190481953298237841804434928052537696658024369791882089424703891148292771003245206629505526783712739078381103661856585221488260687510536604032722313925839257699568621125558733464177452432608118070353094472143910724334906069733332989957136224999847058411976072198688174591582041400064212647268463676248139565231051927156686003565697812033277549618793882998551571925894059926185886926174460734658155993536992491589663349040559808000753823887160602480587077957416718483804658086635421418056184162667187129797894459558186907892331821026712164527130616784526758963528418833705513935980494893386361233406658545544016070163696047712870316410098874279250436638529088456653155020929847176866379408963119489163751964444192605887280673156003060086458635567325029792191003840474677417279568079184754315733439773065977524518000352385133238064804171207363614406518374300214474442956558728644664892173636857890349011116457141568876403247198000214747849539114281690530198048608287883105654622735699083224953230763391285334260394528806401400428055316220175490769177032598857262841075508450867558425512510277493514698368945946896317930671282089137069189622955965569168670118655275185611616631395388430435833033515748176230564192752442548589794400300664623693290650200498726626711805100190037757613737790834056736506874622191127857899512298081475631772235744517351694718086710745512619449544451729956781818020075949160871444003888055344999944012899765305546081913207237795564298208583219302046313843116084270663510088131353780831091015033050270545060037588258891821079692553061079315754649854763464610632686487450900840115607629659300121648142543091062221939404954997413649066706015549749181139446208812165203180646040008331252275303577080483332809995836199374808836824931193122083740757319363343123947146512298564109567886907116947601661002147046771598273660767737054616539610267692154438138562294350940630874196164702610823739828181381910942137419556521732424876080998847278258881873428007576092577534791966852005649052817988046357065764452089473283895320833733368178509776156312168191799424896108020409158740712266423725103388268034272102960273602622002321158827312430662673280377007860511287483200478802353765377279470767638725953741597073932936514232341249306245933803450294977131645570689427066152039421428361330189439929892080775122049242537687395598338697094371919355192877682407258863850952180124824220488965606441010317514489847116181385996983674561063966581777847162929829602195407663843693636756482254631471545158424512205383259950140837394612332961324721666276400737181166123281187059084313116089493052845150495199680049227712654974784461362921407834195339717424451195612252501210520994973137124225260406052987772042468238540688334425819579409566232804806921205133036250669626851032449202280888684075439613791037769604652697574327005797187289383417200968966787457560593640022990394874108495819612391630670278370208539589924693735488766578011922670416651366220621386137104747788295491623754356621303440961043078662405165984546241857094957096558273960869855548956343371208095588939779445653513570956128455566010935474937417573131895977620214864913617734579445020996191606468867996231542042704587738222537090416421241618639972592963878306515934326623539008474459729148522575061611688322833036574865497537098126575653602575839077636741902037788299311481848992432293344346957817279571454378603257408203504675900575321213705114857713760077791482431308534409295745366587266536035123179569162293640788057880718278327955751540922633072051166246959429137245448643073908591610751204327033248293250917608969507434137767464740893441795480132390228941655519306685178665665407612562783932704901162380201661922180687307973987330073367422749686664242834295834407580973401532057947318257903518148922077783332621867745510835466397769304948558064037254994420454724381445038732722405728613448556200233542659936998815979624534385767315505971049271556466762706829170735919101758934590957284128498422502968156836143780326658376297062570392474104776495065036171601591879557566334824806870517546521898067484579666916281150399408819781530774601233810088761003210611260889428227392225439334202708173894893991451262287173547408392782627533178815840957280412395725812500330323874993463934492836793548538803306418494535431432326977091296401977176390103846338587793540596505051141900299021822380374056125507664700847925920165629320856927532105506883611921945705257400423344324932593319564859245699270309193061698702561746797951359631712956993624980078228962250015058898012703800390582233053578575999773262152105109623065087531467222628509691799773748533128294262008798390535490472020306635403837576852310151477519009120802486257333643696374292859626844931776896131743128861811022358655993199674762040442305558531083265625666787183331984258084317373939317011272825228321958646787913109894814331697466450724942618053384162379907957476935218337561312755970060257358084471633071003495604847611779776509517702327123113803517125367779585453197654597264320896037690720602129879221161323402555258909539269223908386545389997855152299550752142006408917230169130658180215688073214552546562743102618438272352766668243250038810841400041113818718960073768464049284622213618570386329307501762042144516528822409736872714335475643315794255362080050365885613007732221840541128796316869439062357967462304473856374711848368497921161191776798761148348713468958385196389090463503627791294571047244888808343467363455379047061542630072264107124279827501103758921752242427527000189486291648152357285727363964115790710927339787240532591648043963832932141312093972401344778146512963523619384483278118722270076900323697245328015391933980960544248123017592001002290049932572632869658013700182581099299990474943645010857813544664432686049010539621435360164308304463130437587046403895703899191088739913884481911678732969940548510451406076414254706268768835655515455104484604505682334330413570013469224235927800942625299284567248877845587548465591270550163306744893911252747993256522082287177386286122667385204495930380943883311022737353337368250059084096366352886444413543652342947368737212476717949805094090271973896801169632133157241148946450289511467384961672428280680181970929480839335837443883395395682811154265223806111733529746029783409981589892494429485387930101034340051438643856561591694484056928263644891786126275652260509274015993183218733669542122195005399049457313663962989477784507819682603171452673632461546408716347336324769097398532056344560024742227591910583622817054426909565684122493304538771035625711379060488523630240748154385304724748583710941736851336892645309993075074685055440753587844977345755627907975380657418875611250962585156645271393485637056266216556534253262809029206806451413983922428360346579968330321729496646846140306977049769963404208146263608551242107536000890483469540623781984892966497825421494613167214858202436862577887428866749926830634913487505446823454110867093755900687138411156216292746752445520800050116337076581139951101043660779979092594946813009602750284882909382013562612054823442242560496398234469999537297625229623036771733714101688505739513534498449750006822294406495430150373206044548623254168570167414801165679878208256706055392911214449603042354388121709684759414910728680096460457166223269078423927567604150845649083435759829655572876402338489595076124448590753129807567929896560532026715004872840662988630822070790460828301773917854469902223309719385686996577692779155366374003795156929352639035653118156917812825936994587357578133567282757899677557265633695272106747435487871508503954533167393331911591192003587268941425957258496750144856649920364402684095405784354191023164998400533205613517145623966329721511113046347350823257498573953112913034011421727658502541629195262715298342781680789788100561607243130674931504449328856171500811220216520633363423838595654429275840127286718739654679582013694455217568450652750242728158487366022528926252376118104951296068849263043710452401309291337702313113508542053283948347783049616969700919021324586262458078354807842883609699653343270677241052529639742099771904056593061542957213481492915233003668592310525161533711102104236942535986064539563778423672936827403576916950165253372111261225452898936390359513915393192095616243547027709832070099525721535855177823754413812479598412919869919955600989947573997436175025778483418533069075368157748553736883440655849000294908089299629017801775716418292791378381283695809072485445326610585383574536950072772395061486531323165707477105358957811345414105963060281894261722434685362589893826997139349686675309409966947992736636057541275279082904048637154552378014652707287878582429020400017066149986067458777149068455499035379256593137001013787150361179455743982650027113346236194209998813509925629359856684305333973536991795146253413946131837975126505554971812288483148087990936632314148105431292673115229249021303937772983934136753677905034317909998915786401407558574290546380738274131785429157049117070575987917927465582948173872197026895007810681024798071482501413661580959421085864870887930487852478284243815240569570439665463573702681541326287774710355979425365059042161996777683932017908149688863717388172589852418803119014116379989869681261341564273389752830635047564959994776093580907134291714112604451944832371101681414035808510812166882063762161627065863597009517510740507328950268460476562515616934749299801664191351547309864085948024867196256903509020586080135201761583975929926475073717684100301019101003866561951836617354222622182623174429590053824258685346660511960645021036951191891529064336788869866727828524787826911143558643474271162313362788535576650891004318253460204520333902891127697309430484404960016814630089787415813234695518458404478070940896467366305885448805622565811280254781911631047007983391553793747175603195602560583181251040182338501676304367255842374390991978700118741926088622089109935081955187813817491836079669981614337913689639436776651204970070739122397093461471357781475107792929328937638790622814000190355739693399078193294505034665650914683616072141668271392461232016701206975693773145571680671394974252282993711353064470352536403698414562636924524812793727558356269383705510128380278721786380250292405708244678832432751030842707090008265245280596743530764589288860206128608900029044018982736741237006780637127505750074134293000146848616059393225235678137843618473779532941143296107416224261578978628692576700295405341147655929716474831799920940260248560949495806751129984767126887001662953572611129485089796957760238525862385453746857604506905917532548718050101744617623320518751787923589101165390974245045828006392007549151339274576218898390408589923950313372185027125411057525485879543875233189540976809413138754434611587276912998534183982599347620314698907174989391128310849477391369617161630885833238598477266798293860873653468963227189848376261447438259387626521992465617141126406943773879940911082766190999686683093452218964418604170426548219194477451200344127364607173977876948595531480444779295778029629490092216120049376698295811130526652918448036678971893612765689345106742472810916937158641804196294660991338914210034828117793452996472527708204586151849665315652224795050318539596710836899711777168638560035858169458444481385732189971533578225607621842030704594167548819959765039138716341903382762232930675511652755360940768622816965060066784485124170660876638061886544463177771957000368366895785136881459252447135195812827190529223578365416111072761490439518132046866177468676331928106995090527093986006638022850401198370158369152712776890663774322930064917940727273865095299878396709483016298873404891205079261319591438368697481052212519804460081231426776224537546393704107567265408905865276334258261488683144147627992665698292953015963165465870949198241191686588528084423577075809315643522343751319568298862655490112341824480193111478824618685775831086615900661960599855903290472212501417226733448576035574419788745081213267581071990875588926445951154875292465723894157002163294888814994678218270936373628487303157745051585601402139338750287363046732344106626957300128969236111939489541084371438063004350734918102018422386472033715787684525184998948112263896570167633644179172489576353922612698082500649052908369264370766950414850680110354998988901179074574775549377307563515571261254308753089522352966105918964936868520642408128219648527132486584373652858611462401229548377900425501592819550512125722704136609079829459400417114938845246819444900411475608260234145087681396646398219436725608304350178172375574671704777663424655395998700566730232693798561962453700135979465841207945076991701753160583409866002402048861041178421446950605146776930810871750972409415519841648384971235400030978704251248572584877467144661285197892927444843548166762878510768787284210992547809161189385086529969802034422989392262937187772655299724947805886033732820838969387582497824338588043063416103747685558995663174610852809722806656360321513092348364310736817345242286972421597297820036472581760672056078409267464758347028125410122165548116494730031726106296613148082906782804968609963323942439176594327303767707514444595688424819452574039768938888237110697066398048676205900225414570561028825418601868842116877459409529915269492625881221630428718590436018085693817652869490866153104759122497845826691707137952603488140160708450070767593041029617272106924910657070237112244660694006500389147550791130502713600492911355115551936171563641716762514905839003549419675110923464395777553302551714671331416048901729141307761465008090179194024149390813818375464239576790401982986150955657764718072921741979232363245512722341878771589943783695333916819843880186435587128431785230544278820360207707413155860091018959841769117365291409419506004225652956174523935561349562845339497464846537599090444431802676817648614091258324934781022241895426576439470353567680793766681939031920595554877446804201408517673384673824363440902457122645829727244871453978101009218514542121792084555001437279148403855539583632719794642892126638360066960602623371421569919225888169404986149592828318568303534263339307232182462916806165377568862201426128298940924103035358281027914196349565144106720884475672212892939284646366481844799166019724968391523218826801826211066900641165874790415844636854871489384785235117508573030973074392888497525931870893121998847141085411072691914990803812040344141460190576813681496785037999878925813581065883623820529601368729299082610010184316734171245582753687507125080822944428687702022869381027974196133886167885212397025779406239967681220378839716250614837663320815555696398822977662595259854089494927073657455659449941107001736525306672644556387121177071173026677801888293613249565314912142059321581560740894894664156004398105908381113785094996539015129028543126520817087340711876207406557499436858448357016361788676436667103480852631460870154232340844905266723038242017010048354023262566512927135089426883275848895341138960108767020019184983243749047558519054898422802713688135379917547776957371129868530661037835931488922799175029229756546050743421977744626283355954599071275859841063375311833451957001365366353910420292599408035448925001122456443136941074700459218188287486287583412756924371593275188047501213985393020123912011056032107251966795523513103980568488466077747884775680122333075715682200096945558255734471890922822168727611287849988515535620350088835308761408494091078646514954145580355753310462962075565769682976798267910098160959131453674816181605350582687142174720484422596590767680797462210709858365735109575013232266405605693437091126876209889349982114939957269907368782391468094894554882030946795788645133780511392880643000934514747448277190408143182049855004204638216548866105658464870676691567919979704871085595405465539263494109123499059797814196911640482046248023570836124944029152092161080443942555503966764909318286406391277787818035176257207135906720349124846764539541303095119840242157504199773163213333864535917472709492562046536174374914094560849157312240966294689096095825234981263755370750226387622955646945599636250379011259800878351581641993593405629443821191924239833924547917833169058364752130297199007586894985653485638847702657836896644713547635839143600353743097697840755976332659108348195091971448362069332262718268117433153724671105152411580140603905200771815369931815432609430268579534096556884989749728966200236802950046668415230893885008624671360369671842350121987689832440828642889627506413923589987511284133940712807370914175948397462628144001361410105403559067964572727412660655942984009310856741665762750281465264707993161818051398718596695254505484787518710885617171945481282501447247314202312683777657971394267436659276578171714640161221503174310781129398544239950177201848662235629807842082385145392824060863188422139875703322878037708238682728717527352370149263300277594801974022618761488890365340410104455678403245522969091432450805971219973248430412683068085210157134754455031774660696504580121813685857083878565835676314808532927152201948103132678256292364035700440370484005422326538651962698730787266552548149462135009443922765294204592641385956887975033380098398072393598949619719215497365252399515961397285199398079470281440158713047157258388223355165175846740664377760967911701079129373011806097640382698412889118477637991416409638933123353214875376323820697223866465241787781662077934143926780785165891208181863823597378047244809313127063569669368832928101026759918080161078644981629258450790686606798975683495108897998905597420026920399496914801573386209576917739560574440329035717879220435994317215197151592505392761689122489518466813198124067674914315580760730193967207298515745051201280277451746877067392735535083362533184005757760154428908513763644008679543341845882342491692757175738459130737697962495851605881214777831941819547358094786702472844182514127098085683166724453375720680232787814156684536184701787193164623037918615129878208276389069207855683654161257765824317217133798589359551030705856725252274034318147365283744968005393970855227959874090101433675833635058448406313859430541123048851941719303654918310171616872874906026943974620071182481652289427816802873788923170787833408508565418290639627400054336789346044435564194944962928424564545420895174259285015189737061370137371915948434402423462346495585009475083411280335129870708719166243100961495748165194089472046803995925729804153090480338202670817039933143044121029321459129780876482047068252377455636483919233020762012824276734411277727307606822106880280181368941604575166168272879933018115905512012545215241181184561700692192047568333500894851999154409919175330895440008936592586185289152918904873098996802703144082135261790542837388544989163153599508217678674481794531505750580138662251746246186008350295841192350956915701528944970843349229676223599554046941651639761130474746146660824665203178477690698847996344208168420582968794679935345833292442659412745644980481022349501704742089955895888362994970565608135889910595403259768118711036131643586605687113108045478582286896894723283638430557615110235059833555694074478035439572415855661821804981499729632292422969083777034566394641525992655709760491965792763226920603570978635935782777746252370156205393013002366850700321453964554194514479060847440635781097764751458877514989757525386898637256366886681765993492948614913447917701118227311148149321182994448137857692554796173794638740378864578838112082748841596230699531463050508904103575416924114207670651182246311214880997873586897481982863602836041763402443469187573048688762079060262710032266759354231832893058084803986957214949781952164311693220118540684405421702035051282823446254873206036631448148900017262563439491572939145652582789890322931344587893478171495616529425666432188570450133249101515473248222507580398454333405643202577055771493547291144058400622180509214682026712932615695678422224986026392402085295218503522813228596532705104259388664599735549596370051488291099313895730229329493500154409258275079296860212299780975100149172131729511751919768381224007835875701663447484683640254922207193249524793920016481782989569128242686726033405368676841674502228144100838290901921205906843351201012127773984020243610700069910237015783904992460420982330862692065230058943895117010875577280823733770612591404721122188985815204109221341224307248559392466881550323134182184317989722124785498968452469365984258757875757772472534671949342327670922313608440656133756572039744129300926722368370171023358426166311893591953565396850202181081544702942847427673436137621036925875798975431864210668769793621523476402696930947078317821239787411690483887846820148789750333528447511163094930807327312696536586989531183796312784267518633692905517893469812035857411793623804509997106127115845383625869100692531709656291548606529380970624567134653760951663927261774854162333295264912904263368033447413968382565813691184171237055850039884891814130437120711488012653975575008836450922091243386379048480087841288274080123739256219886620072749868960989384555930535094012979928248765221561678718740518496895283234953943171633188073624648395230267632039672160381455054284884594275229129078087754661960929504957340752984172241915085964677569565032985104714166518182194438836765653914265692297441263253468063918368238525656648333646198016011882236397145624802022515824803080699123976697467719106575862186715365991070240763998099414268623474883615467655619536013757477332956855085466569671962399583252826924053446909811911508431188833316074046400239880004418456708052140387015557099795998847038151797971789795047710745417376406289582693623709260854944004202693507426406763973269971684094980632711221134193181850025914975538307074521105875258086046198020477553281794007716494110956392333487499583856500174483415040909743445841653286134750329111509624026882715470667091548815646919933471540627500073177290958851330584124036555571460607651758350569133297583347317615492108290293285562413330283354922922770921745063238086438635907640351802385835555603842578366767227316435502798617787178482525910673001241924999347741538373434365656912927228300513610217360720349974580168503515479366454154300064450777432578191633285653656578275529585149910025259091516009766144904884109890444165471529268776099177003581417890126538857491593951540375752339374129346852614865518794709317929538663155736911219378534909630237327594043721675672934071534196927194012199203807458585920790041155061384432694808538425007589120837391816699049101599742072605333846202283960187006750527699783075781735949291207325533687910496076589855429830435130205400524406359432093888222233601168853206977253673844217243192136384509129095241291137465915126309286823239785931084432820870861112361059316434969162081862298618681467901501967072735354561853883327634245609330600671620854406978444797546614759208596783367319505941329444932156644750948544157444449429519562701077996043794995952526646079204736756331786865856875768561759353694515481331201710711110785991689230422696426590338545045217643548790780137344400344463141784073306120951789583613487317362095578693352613936772414502316105307400876123339597465675646468534510306529150162043863705414070249081519342766922793717837612205575900293788381206203149216213240292076469782047479128611314109957911271968703368827476286022772390544448149606561283816697726747670963219668378272104677046684337111028998101778920753379936025730146299357302394545066633128828296100665721055955782218240137512880954258328549261004821241785387350511026382754590747023439033896121278044202258118570131036440987512280852412915761824867559842865361562537130545241630909170343076191216666482645989007721639925275049344220055405982390850814046647395324248098450259507163409560584415541045246101427243062748740277119449593278982461144661019136357402920959446570339518220476931747916632435507765328878809368455507566062334799443845627688207568563294677004219364633135662735123473823626401997284012278952489910682399958229873115667643095538472713242325044079301115855921536507293838353214185235110100740871156130356517526418477446807213648283339678908608079554853068416070855688178277462538243181738050887327010528649021392697692279341003534081023859372099711272277438433581318628803071799545247278712901548057209369374881525697900073154032754358018874396349050822030616450404914937128549449097523334249330652151287094533063900301523020663315720859313548096502857401441059127273291558614417826991362787939722729685509978059577234124038879561138643620345603342814485820086764723248288695014334371796626632327847965839402623573634160781244567256937496854379633528827206708609804800322135164672008363262053901093827346569761081892208946133183269697071144880202351013624022176385057955923708338441397765024211575147293242768246485787496042845385128682529727639528895815552799471371430069434722679329154768783161623663185204619727107564553022389389908096721133553343720583462793875388583840287657826618891100845929679161927883115850537142908382684961604310518239696454373993759922435042595986980776691537829387056441281055520899384484669046231424800836989512190761572892168799096749964980432786110261903560367325958091765722322683354005129588924069172555667926935889038363950754878464607765949146967142315699654120361727494199418670503784591314736268418590857455240181183322355151475206164839409274578329916344392300222386868747159068798534449668346065246688375727554145571030565309607574125544045292453223689392982642449749504532188609450318840689507055505044860137782231168281672753157176916156451746813993269416977537495679466829017026944973947178970290189214483919300529113275968606669886470185577557250763798028868647425982020266641938988238442200208257140330087939371733086877280340987608291071177476332783637274808467276087651828279426549594351538797507011581267535089943856901926950893530542035641862459705494772148075883640074432782960161470058725769420436075159865930838718045369002058124442543880771845624182453356671835082989964830003065808404198807525925995808989316792406713458916799083417622668655987929444737762666535555663236192064273458836409548038931430823430685306125299260298751952439761663316829901278187680352544896879864176528744399186830075840556842600396871542526475993745914629311414129802616743806091190222378138288145875908469496330886071962699628865330808415044615205708786825971656800454948964587234245299661159874955817450926221442738607063833145715043312415996147004353306167798684622131258239793088729058024496810775168593140438021550535382216958625330078150408954308697785211971673659136548638802424610532810287183486662993197935216442694515519255714667382589913797864205520063101343398462755753532222310573869524339888090620639306732443825286262354285816851316307823273293249681935425876558870052182954540963908529185553197486140323602553337079713643975390021802268522725930788274642555842728071477799837288004811172237732567204360495995849654441633984795084420692436185935463198746449202050381727519273204047660951551190445073243548645131606254382285590256653508258064505597662436829636886980936524390527001803938829745283833502064024682448604711274647678310645153464790151897000078276263945033451320316993489180955230908209943432074022828515545800499058262844041962901387911470386283374077263979585538947122321447729095402548501855168954984828487234769761142379736860777518091247370616214790036591141904741715537800548719684745789581737556764215215807185223588316634912586976078629955055321161798223757804878005689003783933133891603124259276856230212711077962926869212313808281112064563196979764829785874212212222701554437472020558262676275823176871384605872449960161947528267993874515847768194202845538717998931280401008527245134929285541742651161128521001108783435048627835694052992925835163805670054423445656913668709683383593145923458492206833821993937463743207178685413063963485709930449735740819749441160321917837339564134139868561523661038331395272981393954181403040154263524429445116164382522175021397358333521568348676585738203175646845261674554012824754120258083204249976340043002281290051171070732792046072166004762688553250246237856646705008569845533461420050762623878662275893084059791914299104090498596356801834004209215114486499588721577683948349930037495839998162747121610569149162370974710981754846541681448902250088354671731514507183464860540728983111308344751002904394155500101902909219635770553565530852655179380376712540191519550376981051936898938052686865727378067846679989076839702504798639409019408802566805297796540877811262326704206669226229072813322150115506967585015247972982985514013206234778158167613832533531374128379699122343098213333054101998193559028906646583020855200278998916978790755243045426838878468036905227107045366373630348110526454375671606679220664937676610217610402802846739515701615644421725237264528585465697394289957845416664186321246760657738495528619525007473669488517873958514712280669055197629534188799043132598694391494542539748320187715255805523801352430947736395612543057417525384143409729263257768970204315985900587881185559256285444372433181305744629542566622969017015633556757675642526334585165573241986367227497108223735615056430697418768487131015676714169348184011482896278070560149349212087046077790988677285074688656809800322217112950430304201543647573268674549815132454759182794458058126684080488540554758413575113519710855417569809498004340577653993578219339308973563304705255245080024729349424418751231524617914566675490185388532506029941868991183131412079645864963428119597970517362046565557916291301105153294850948417330160740364908724666329302315066671229138061075714261218793072341530087993945589352673172131321182186896929051380119188498446330114574159730131475169768224595700344330242545726879338608512896664172104443238813826614779141671367408795708522657490164316843734224141935772149146480141705876211240313116653674163109269418140218239732331570531020699811105264338974423545674827776414409634615676485585348619194351769278678791955308934111043139845386339936365738244793402619908092597285081917511741671973412724134940938514578888519649469890638911520485400158801501422835280099316002570633003080507814916000368124338915817955841551523638945161059818237966945825528010859247589592729423138290271109975994292191876448414004103553531433543178756559386857010935445661164007857986575043931146217644864076848949356156018191539826786498170391577579295592102717973171897418557333151044400720665844438666631178741958233782911460118100147007259821188064225130579407033980096274937593932310271826742168969832155672342005278194922482563785360495627761324106224368287725181825915858436532887573104444651523636216777879363957489083331156507532795948851726142009255580233938562219946370152252789880629569186108970003251308638964986511748447391099634947188257413662816366472869622084466234826999498203569758161288736811046469663792173064761785078093045043634099240626617356223277259272286696387069305378692686290339786661835087144489570657455501123081081600027450296238467694848458742376727728766281918029233009007407033850858614892893321274339278781880235865523824161262079195660202790487304680556390635001510115338025331059885570903514054984712286750374520164696544146917588425183070021371574647461065742121420244491908434076327995189982404064354022336735271052766958212172577899382906602562919335587114720629625794228710730401895484802962596562075386444989067587302331301962768655925414829136466161291116245859350803919572974298301593051683422020822080741375367856391161245066649897344398491455797693146251411973609438549530144394553507038637998538001849629600986240604175786160040275968032888090991639695492368002295401418890681009379802108278861945418282804539397959488328031275035831067001502489376354347651044729748352264774594280371501315537506629097904581476904994982593539601897571665113126193643322832626063883564775408701465191039493702333000800973930905193416121602791169460176065509102139910099195570405648896684289351664413751953489171923318641550829417263220104337833741438245161345628134860133555189445178582241063261144399923314520515305129018219318372971109476130137902960315598102162167169453053908223376197715459622573720917396796373882281035098719122446300539010947742976580566520884318544046208230579759364640773624926316848639692019610329057803543574028726646275054336847253076442990340811481235939412441554357371383002449045178705676703569324017506892521668603037397795813248748567525904373313530852281584625107501099662982193287742996430512399550479228699153013223675353963553130752269200516642837421762082461161359120699085673951026332975081577855600147612293991554792511269929452774659073780297116136864184442359544413673411284027683027309301901877035030515382579070775606299732174313637537379811603093119523976330132251105414861624211016005996899802916161111766183232068613303722219642157687819947820927440619660729205072223430250160770743583980000635055513784695908397336379841623832241694321615139647803259121151568287054379413930006555111726609082859679279398952910460041790284146924924726251950250014823161755315710808583791920670584805364472914312375375808517480584027415856176870342302427474967889949417516540366101101515086722076920235614525921791222714812826053344594790514958632117099017328926476351573239079420737825460344205200778505915380894471413830055876553397947007514233506518541787986623483625392362006396454949060991605838058766466841860623348776490585681761855806816782555706440285242369003669526454860414208813658185376416126623656974526608772945854221703881724385634482745847316809229421358280506354476302513230060165113953420266034402041493991514094881859066649440480348159713835326813498803270136486507877150106208459572468959343218023192171915049917549364946293442035432195719052383423488463437092199179771044745370637236126992491606682872592613991141223910161196831325489112463317272969367100142007683182136550881148649230725633228460227741677254611685354313894041414256633187425248744501297890412880163714624851405948270571857040399875030016595347566034990029073280040253475328525909723360412480377132167668409367970296488419106106586734782558940160670049166095573963436284923042156564147233882770235463489793158533350528743823378086687632104686710859115659226671722084955395221317749018026870360793858661550008902152674216540192951279478967027128777879825971101687950476122880383729506245245258075482664199617075836278684924953298805417365557081346052823013084226439420372959135555064958594107012717528788262267992916463153586617866264209855333728464034994418718978297917794817401369155176070269800897019169898234680797068277706519865623630098760183364274118947108569245198905575510814336728780191865021906680755312394209168244107868503423052899637840331196544221494279915259257645828667194833411749343264482746680792241390217067429024158382080777022144591870346136981614087076063370110562407597204805470511825490920904596169064954914128705416198223794680782047751931327320980533703015252691815456585621020088576741978429826623033139131117712819782384719633899121386970420209096148474442389790811802859611445656504775280602129924934349866749613007379906416826410669953652025795978827453815029938702369359467977888624563404959053052994187412522790527062089374058415398455037748568858544656030991125806943903770784207071804731295390226311683141753670664242903564736330569275164065930255606520043545553401069684189191781296811577046787077463213036244214589383547055005451403717290763654691338045938163127842707544528637521977653455412481144466146283806414626641370894961070946723142497182210231805375573098872420313584945826113795949447932127362198981920258742806106035354792771454715692691062543128522454706187279898125358568042331705366522337460006397526318925731022001351717227756587113368684662639423005031931762974792008739766846900919078271543639063742927033061976476574346603078093911381149175711497476194734554816350715593770021929232272631756295785093336757493317951758770655184349381648870440713160337326821160244174081446464709908204193093362389934681693941730644143931689782880944346408547267323628991799332017188237514608572355772210085512913843442380750851037291362440082528850447518805076242539285189939800242278326007138350367239148032699266135667555577783915136083102289620162031857202340148375863516815189884438493328576765449518107291874816378243025424373458619259124884933272542524143655951760096179420200607007062947700262188181168721604032106736831608672544279564590876624983601040304292648382138416663429546994862233919825565024199353624060878026955642890344012884176184898845311502966757746792057540621128428282102795241270736068919762981249850117479567029884898195294853182880307701495443870057980224215853713256128213852481089279056817592621294768855042019593598263901485159878287905202035580645375692337403750427504238430545021277136497170772494252541891109745637656805514357909118589140092591156278177097483974894430582657762781435858149022175405908816085628336904604007241324232730554211704711834201779372287123729384937595502797415541301924127672365852820130688146773369014857067144722900675547573892047713791092451161026128614514999156398683375644109350080070237051186731744013262322371036412684947864456526493403433754239614737229214965146893792189607136142994955761569420433089140617301492721023168557954136229335816869878594953352963689737233001149681954639788480195805883813553019595261198834940584619578219145203898088661433483305019166427135160161081141598594571580034767535012468167536207898801464203154856475434318962682149711044182788471204207298072981932712559629987064978331464773759045761515585292499564872323566917381349710616921069550173780892012190945117634079446147410231143311845953969361694426282418052138706934250956374343985881424874457047372991823484573498835030531908070936216700220110124585390988426476453804127642018576149644278417085339579528779436634962295915678107657456126581485124694329952324922433745243622782684106741072569140395493865856815548550693127483628265523630584988014637140282408251706667796928109999219271945939341173315069646227243679161624404339888317909630290991630753077344445271589263616434043466027869840020355324292248015763304725408554620477911786730857088410367376743718042374196909813618736819069736673776639543882074918410691009633077908050762215366717785089516858988739025740370436560238695541648729313794778317106303944701237689619783480682957198191834235936313720697750971179573987838180258941111468987813482286834302151685130269766039823337491576204844271786640369873642911768726861927038774465256566486026379526423139182015709456362323070946531678737747434846167498453805289697795682686026432717264313688735050355941830135550010005414932811038355431040839241824826485476215023608767087269085625006697686879280672894947146433049910752015166450071328147866389375904120644999893778980806709338047261014462809567837590410037651574570987803246302795389232257378065121474067098207847983721003230571897457605661791033808781101561705668329938224755804385782886704478271449131732313779537360548841874114897314572574748172766345851619822311524965313215264399807424026455592081121360831002805273807799487430269537365526316654355428669898378172206869435480907586072469504359172801943410377862540832601402700614409381254885254657016946505459701092608757905674954238875622920587503413103399683907989922717945774868780037927137435937753946150706979261921840651439345905798152232404487473838871179430522637401346497202329548238269865505191304904785410110315833832880896070722507474750656458867510480709189243577545823470098216802359907924262549464592262559421050335814106658783064897756851695570916166886628399852366366683865939569009926963748653839188504480457905788902523903481265526095538719519124367902728904781771930045243885220041519326568533888571165143362653020631761012349070428586703954306138216064755995685283621198536982269596660773646662044708166663912851795302982351179482453822148884307187063066665607158496230242787705709457164576249242775378475785342244887890323038932988608561962273141129369381077106411608860688492008520332675574371736091843331369238832058544099446372544854469751465664439531982456859489254988699791261477180519029939868513202045517489080989330391879717594823224180991473374130603566728730991284210869918861414286056424379457792993429924036741053709587052881264202312493674171383056072618029517304765019748500156043361233321016365448896740023243088539872484489470549316600148386151041642902213696429092385400704009194409223950382552535949252965431260246648868308158998395446482112063979062793939807638311618949221420537824787304245917248682724989306694901294886854514669165687447322882032645515206425834510087756905343345838083085832806075186425066025866912532683926200554956249792698527738237706016855679611532238397586899553549875949602848312920102774822719452135797612857365061085829025114551472212023440939406799960108758766135651011445872653893273411599667978937937782179749324148139719590175501758691604894449829442565965741953737604885336597278666409870459984919635260922714578418053872230542354058103435306722541874139386459618535416788939228207759948594755673229656329391334647210255844804145834481657830038597562622536992534158986041126579517484512300621177012501550666188176367629789661830758915689104570200013287884320950975824519553543420634517208600626460010379326365588286597275379910855374780734642853861531444702859092021738619810927532622972769624279079097763195748388779935848880162788418670342115153398699257652082242075896054479995184653657061177863443719282852327250095528051973122782839940937071897510733108185109606288062901463985158459298704738030547230981957903788571573751198011488175510988653169759320440005878295223157985769788769526237221013821611340984091114701598970684967214054798640795338649133669688610348981503342405371969522240955937824615955202561940553748062172749648107033819426797710278077067433913993008840859029007310467963168056302142115856134968707203158211834366851090606078861596266551563121280586473316249403966930410271758832287593084001467279784471839292474694966122412244422884472452207032288754260746834199936638383144898308835641631782480079381471681133232999576655945730587479636020116196155233175047796378373600290217529998625234721049607898168782848669440728695215911412163086979533532284518776059479619454862100056138480153131736283720647730840159335607092906374514435632571782656714406989966728584643777475686563050837801734337444915083217321684821984700056039620057685610680724281025605943386090967918824435409213662180309812452763132355367088616951901966411802977714840890138360756125045801972650241142322956997653252643019973320580877077887204404438926924426501952787350620635476408809348338782932249364795718985829912319959080217388026466065556874723771315671259472057027833823139680188291973054850013887824395538436456280623939070352581073845891360569565486916643920780881230224778843619099182549155253760877716090825179996275385840782887521512864917121759118010400821487826406896690588118767505079866626900276045199246577942831843845900643238512490798169581948954755283627813802680940622445507914190106267890226302802029354088152105863781063322006904772513149854692288587345110742973982319219383490489233866849162488246966597863272668352447620165105525233496544280851639132012157909853036558789906171937387259154929654653023123438641744468965266556423757044738409849582379531833339167053494638585338465439818555824782518608232300315888799300373094267439298542210792632776633884922606678148475832262634155591602502521685447634417772167981478680506838942334098185946194099738151608405984348464168986312645842985117296458151325733740507322075553565231855250940672304877403641645009626090030806320365245219222540634867734555179279527772636405386705902963079171876870956180873612959776031551603867158941805669203168308107494291828697007568616323399475025855117617173520760338247984592581699983335017599644415623470366947157424424926234909819990861092266431288559668027351156479693849446338138807585979751284869115713938102635277374686104147314368451555713839500017525610428797851821313809739979893699808287801393569054753664124699091581956150996050173343059695114054633416725067207520970737879330660581431725313721998032424142220144032461817228111816804707761335503992333058823812370330014283793197156345102038450581119786611900901487923636716219945602068293296568516386930211924097955711261000190114516942720318362117690075883221717608813868523546228279687738802439251549740655781865926022073538891049469489890929496862283381165686383613276734794853172992957274054291596970841140062188037432177547944182904211900122896693117571804017330334493395532519276496075709479647803688338276531585636086212123232929044834207355060774866535477309811622989835960310874213919947876759001945927793833920990486116157028674103957023182035155279125735889208890424377861759488570730465807735821616688554182410049050851643799376954349937647115760589048385178361810829734656799786476017777991868398089515423768584420879124038983318038735574442260436083360381494304639250051284336266719567773199683604469746012020777911509060019931129066237119957126939308450908913179091315117780414429177346225402292609286899352022148019984512373710503079051890406862303863350783928218085727839818820036326843648807419354980470628632886274452186149022534329746741126303816233432537496674140173623359149642108091476664781530731872155175475950327712116806680638100910053710423532457446944960761967697068410129226917815633112738561003527090894107796780402400422498916330814807733672005381505638381122671512455864592663993787135553703764687079682063600420298740045410184069801662925450313560201543476758223724283535762565114355027603230430288743641272888948065793827191538641655922369469320578029634234737994095772858606417564093222336573500861053033492047865817910747671536520873074088690928666446259335497050661467384731198642861677480073450518112320487438510448614038450156176818984112262087728831688097158632314184495441099005063161839600955580354313278624202809983266169590962834527714120630275840470576098314618355396441436585509692611934580634775389905491448132151547444367546044968878594400304606504867312246825818780484882772869243934859689623605382816493361547909783004352019143106431382138318174689743088322456622007253038516899684087816895860320748615244345568236862812657495303444315358327920772853906637001070201361457538211233750912974556623809798187418763477518099556909001813278146871056744617247428299419076920885140795133142143850026332597734489302681667957243714520949799404128847523903679464696411470762870626647172022753434043336422684649844630108052383818895434852053507504955998009588139065268080394963067405512193979900695649317974972533019590949442718698433338114331667366334932590056180283846921689203355189486669132043893514331762643593071304482649644462991341497475281529897232860606040044451479095816524271617669180084145021128722971839649840905007405711025141122689366986849574438497060407572699550642751587489083487061995224349346580538534268618869986228480180350153479206254987369105872527292239565884110947287702578043061262517314651335691174977221379342937981561297661537739295472882936953624163067220003510660730616129352992571005163997463103548383943596611033319019167870354130190130156208583419453860277672312383631676049519162752785408037446554623801693404023237342299754564539163964300634411357428664824168831826077972578554532231361936670797746220081778016880614431267856841302359366258321383475803558658587511454442269381343973352718631589583476832076734265410437217963001754558331909408109979694324674911742877086886814700230555094793184907471588371719820434423172834566636257926132365284814678078490365014013730034077868926854465118402474784706575867627799007131706614890513217566128910477121179770571543149205243721103919127842183828259405573754255040460796520121227863532823711997662536114086526345804883483740725844613760305725094134942098993554644510124987008948399702700014799581871443260456496596053649503636949659233077330656454901136826322942146430808206086712081247235931913154315952747258569579283235099921705579053039753541856810627926257901732762728275280236119551301331627911211720781448800787767078734666080562275916201963808019961447611508577591840574440488488791222886892713371369939299681831204921078971137515665947395770958440472005464223632041895010506977698051326691453288426429913469090002640477475431728839116285339447648523423963045233749063452616902195482743323506343447578908716713019597747881004408902227319999643663092981217470677170084599865136477396278049232143659317847642022752029921342846326761748407270662994793649712002246990133419676578664916222606861245583938752974680750281639123560101165944207541918396709854337218054787570111924568622935466310497731214878112235158304963410029676737962709284911867701729803737059835326689836517532356639644598384399092772804041495140306865455686448170012488870559936217479938809147480624546692406466625767237587598347859563207105510357207608010850036104220854386386460954107571700416642297505629952243545084273257500258132393474044448952515363356029834980541260582563635053731895284039772681214317180047351883786163435743530410544479583018699312360064332897683935966322324413646264396196566960567197265738782410781539801819369309301020526350580138144032230316797270925441284751609498597022987515038049080992954879313820798665336636992065001670017210194233285129893271865234019967493955889584148178888073775044995311209712290424884446909319309457769835511622270015354173005969102320971275351484499301867200205786975664000616541426122006066135828607890276626440333225074522449225648425694929167863720655044894995989731857838324561828561509414240982994320645151295125519817274309956579048177126298772367702264811105065165600848353876720937780882047597112637887003028229347629682176596751692323406424029188345668948632325799475453494870373108289879499348774753305434405080447558012427759297751759129200518857581013686668889601759033175523334904254738396203087169059249655709356020596727995443779844241330744515596356899295755616932331997334714171368208033828400605762264587891738917025083289703239706943569573889044568482802003720722903287589328968999662525188912031875106103352589702689181699942871907502004056744395016265569104145135445549708854052682428903600866623298676708463788098422403690863958625965290583804352701985263525047876493708972667507174337094446073477324362894510937280517267522619857945126716285274919711831615146943831435680103210674555309638018084893533542192045825358590688240417725090014536552771345245062665986909945881290295433546448813607677483427837431781992412935758889089815447755039610268470889467426613360925102834866984025177328099435635023925544523656801186773840867163663838012399199130451340521838818387018934597439034798314160668896251471015626880675252565868843537637640317848663147867435222685795919507542202616192935657435469794375624034564276704297942998880276326694581153419215844835375657679476070301300038263445496804695678072350030463430687248193973532244536954752695856140064969158118882173372918611166795884429352924211231467381670097013532788054097627372615009670476771213518088788817166755684650241566609081915607787404624777764865722304871943673069417205553071525426870575388326394355919938683362179347473372779501941428247659789635020198732855197081036382831766926702137671461966492605152331296512309835249745593228154513260670320940501174629390346253862235944672161338922351270170185755686471572062681226794871376139028940013660220199090802121697302607173645126808860120308567195414256072791168547248623169953805795562879409649035129983615319991051776082538531405190566996053418665806068025678376006284350839513279107924687012859271654205348091168063234380446736913340933944832128746838704310152880961222472460635828351981614641046517656903859402970938748146177937411818185089320026109711846948515876248278829973900214662865864821138801691001732996711818499089155040841193578328456702636087259037444912985525140653830009456930131042961810565018316625930596771161366752838136072631717862811613943685999900881774166356310481636642850635364690849889214380015255389546585540274081133139781296949477119851407271502822056260335158257915499425465366054973820504394766533267077756782074440823993949547721868490630185819178553354530984341512582049783514738269037970288193229686088830121719150975610398722287662957981594619512346480401128074458667141502156753785639231261506612663930768118294350335991549088015029780392765188031409862429814853868761840263449350831575377041616383954863554592104223445310022825156357839978866592971447803171277279835816631118383768054563450843561271093551412356955528353915914865507989374742397041770088864992871262092669147161687131216218128429595669269506904690224296245109812251011079023146086981761547236765961068596853646523553933106753255760672826446455302707917571685066083132957764968761957063724791464565616614085337091232510319342020185657342771982292325914081687159179934937766469779946551800823239001127283684597957356731237080673699612323896649908229121208953607541356374810455786737109884269134575233736922066317997766434801125856226704237338736629011380583660276826397346556434290223906451912114509176073893638882907879144617273207459941254680496280554869601199585353030404349708787958643802326834217633293263338363989869381368868725358206479213178125044234218277672942743589075078173318112698929996268934959391481670740046577213003742340435905823887193300560187340689114641968509678613913662467378888368663842889059770793817069196734497911877819414192506160410716012061059507389294815838054091493747886617788052226231111748426503555599630256037856236676293909060828397360825906799808249207047300431427730439141041529479779444617984481836031827353095186366765187704693728088264419093243591065699363757945918030413107200533232356918677174320566839637611922743928910017442888883703721727876173452707816785259018001818566326760637311631191309446523391496039325746727418512719286593877045979450109730346529821959770748797080393357350562482457429073183662104755387621516339936744534937857607053228313643100365416138894839248910052050356086537678848033452036891835568015809530983458102406345087269033443742921853952102667300132464895688071296966918208710806801651379100498114273930830927800289761560935716998831611826499740362453923087334919563913718182884488250973969847129309849468797079794502526686818943111495627098716232659575742442975252586144638131316199086908468905514601046822787914097463187246872921010697776420089233293238876511484751875154940772032268460341990108003908086707782347764266408082398463603980489936789668521617573070237012564714877609491183658210705256469490412314707704697615722365597816689950191327183206956455143390710518326723669578961419067735220338719650408725930876176100910675423368393623901385975787548541541004940466994009343259560195849692867408479940539588801040514688913145343287595810997582287354329541119447612602833631335782365578737479700823904499957504515563973690493174728598716943734329315013660516998406930431025078299350270079232527069244731008301716879165194839328952786550404658065265777171008019081982972372101850909920254403213600237521511322665328896672284004699075093802381921685669715346096832683205037226612722241773870085135919818098979840882958807444839738275332766355919151423116883505559453076187702236312656248376591093784962059826843295042187804964439689464568245839361831654576672255887408187740040290091039023704348372175976043087003000877446111145431156802263757909799718929871848674780260329990503928192542047511052011295209692574834748839270099604445419334894143027877483775777197184654655517754796067842573826824030601516751763422871710492648485671436178715585693625116955172256160411719139450508519598369716650686599530659609736099230061585281983830289631170314620363148641979161628908848281080995248539049066685381162272149861115588240750991691012720905942415986682721497972132960533325778271109042983122243918151718919034103952571442596583728929511587120871823292164609848391623622928394887595547483898077790702732602780081025472564665710500013788534656448536214533138951310402734749093519709063345714409849647933328250371389954105844160445033383130908432209686126670579794442485481745570651906241944855839994673596973326808056565554712312038081749055357944001114955820540268707910336567929422781311234017629381684534531132309592726759259727676883735500355055396993899867331518620501576023835250330398038765495926483306477096438648020884919982423464596600927215196796029722417739414113263337853020956223691310378638161390745232387842168804254318920972449872062843225033250575249861786349256672939880369618016804185393532145489624948893852099781649514302286193787511576645309046107164124367096585431367487157574087821967773171545896028896517224326649058926238793916429725571221832523956043020801595903781406301597059859666906903218265901481617675716608284621337240448200413730051564058774716432719895209158308548868095366509241842937309561304461101298680242942233190822581202201358111233274235444081313624606268132695613838574088482296096034883048795658980324170734467077867653254714332610849188220565527327227036661568939529315307246948204591690684179758595161981097613018705326982416652304386907364379130241888951948681766307259903107969016982927455836904615557370799832236864515733022973193829850607216808464231919892994644215918384691565551719308969358732351606427329224138012476401866220992965117198772074409312123928315996108047852081693817383449243870425009079007782267292762345799618213538903620095790624949381244510723524789149282008777965913881672049454177810521854666784404677440343357115380187694108319746495263838042224376769106945300626158530180764465145364920349714606748984467381238850324265783666628943610699497852450672807869857170497473502119207320527399094920533609879303916975136448635939100172367936373905551132876252852177989203722161811793526852458521737024656262789781871387329416902272647708129592005762710190071132234812207915365099705554408350762883408159340054105664500700564826780312061709323924701105110834966777939163175205354387112752557608934962924877509595073009648738448809387473030016049231894651701749918707775996213985411752609166706501648199053909247345401700656117336869716028579170848779303824067796143234785753754283909064690473069524103537609357743660506001816146865218585127821708984208954382573940448996425708282686149349721468439344424861254459665335841521038387968594841418630339445316213426563024988958360070797828200362452713430803337418799307908282652978058988287166594704923073298294681839410829609532439782958176095838173989703525030900302459946042623180702132905021397427111105848220982160998876693295191882610179845640118469753390509668280612082487196925348710585717365752439943374749330728065942276934726679744803045421812791073435847346080400805671703556331231818938840639806838039670362003492107346532632180536543850130035993280789606682969647767476239052092829427204082788546387888570705852853356413282699565084090667690443857937840635044988639151354533646354979255727906420515852401834705271643241653894616024123550878981320785611124369713726706388687077503855044389306897949015488030431208382748487508105118647471047243552700407344130774907548075971463597259770351503818835353684422085180382410389809403891995847578638089920423889917184931451206841295146983025520183144579254919879592330029378723541002274574817662759675942591337191554532851169167538197909813911762907703087630284717215921350936663514167898508749668616899021153737700253325681387597413686470338209353320040174480111808077110801682654168063539526478862461022646154044108182637281600282068077907939491074345463662977842077994220858997378555966965258066332082370055626117790623942468796650818383046366006099793632178435085741806773772856931241426749278019444523330223344271176526046724842643032701001991085902650602131320355898181007609442313917972406070068639582339244157513862114462722270088191992839011525339348767259724660030026546214177664375542232127294604225284800927225552819407817973011238275598362025377270745895367243889909873546338282303233209331672015857338338059780776478129874747242982005767229905197704898019530786384856514947098171980102845670163200435566402933219629293321889124862041067759981396319991621422883154190158764517088478430310830199821963000589635033861975648715442671651120476131709981998645109671694388971438013135643220975120847504933745413226599552000147514743045609483744914780502176344025283619602798520413639473003276207689595148434808679794173236813416948772935617940341615836260632858211185690539492249896366629110127344516527703670625054208231933323003381370563777833908966757813665925293532918028567163289455746295942916179939901749388915003107938281976252470496485832615078609123470818734397433220638479167727728024619610591681458551987536683356105656349934171079774251168609036036698431050948356829223495809345219120494053026834254028945419929655304655828875105074997980534055657480181321651663959230520217636014863385613904512710088367813536729757047130851068478088379222768863248053646928440681121510626323855249817934099179699528958119386608381422394591058964776509300647028630272194782571789189055874075251912833233225330834155392508701131646655535109098175597165897508252378171716824774722484344834625238593405882372841647892896775163824681846502923681118560818060957083679805435753514040529434958638090449630713359380297252980226825879398827637107000565734212219986499773738111100796295515800941523473584220649520658767952856775222033570278749252117148870189290083789481109688158693429508593111968800514618421858171075900117985347472044758623641454832692774726224164633782983721569225981695107148998765370902585474904291389189341549502226949096500904124723799135805878199503227702752378709199968290392195937178638356067585691146982243792564869596601656110448930719281685954829901762345069626945093572447815681144171720425344411600307414114478751743597848467781100038769497646023443458927183970514866973533039162892484303967059801816396219052643465528656613751961214039267772217980732542302156214115901160431446974070985555323597809880589041594668975235939247661825326223468250385196686244516727722108608182445242684127397559949018289698643249165547968258721347253864978766024825739064062971583737802248828699641466428179359509605143807229818164678320995805421384017811769364350748307149707438307671641578022539616310010222884115549016509257054543490982815449609733473802048847571505402954069136362948944410212603575176603757359066503638732009621641700286344192926184804796758765655053939211695397849436755455706849283738804909332023318475683043653817432364408750285814301567825371915922732420153771066887094061541847468613522668351545988524559387115114416581926289519790536259970052033089448304206196801649218654938474411762874176670564371106333327896586093966161984190304344436709612799240037759180073664769786058632040417731892422526865391375143479569288830494439345466808683128459754121064248860471970821640146645131778138142304303216466137219926512787897779063672746482855929851589866558069055749186847505940682370448055007968515546839859088725127362802461420463325803082661896563360475845680550524829514997450187277521177866256090204662138431801791855160669615955101409146319602839756881511284689062298391265127263328580835682065372749312475147088104757078603891743225743417736159325327654764961376258347953078187285257241515118562001474842741695775698817269766227048208179616674462481233430496818133561625299618256006464196645982545649757091793653107500033768185226688876513280715954812193570300432652071331676029986905344364417917032969419720383403880624420726218918172113245017946380309700932836338782130474582270318690154628107554051289150548165674774531003224664873720992777257574840522831483972717572262902471302773298557828485026880322434377961807607599186814101735609310473811057652062006134008275538543227549085007478228908475095966085911327640866407056854158569682826345865692216641507001123929424499211458005396591903506613824504494852232366172782623515499160450693457472812568064748408520047482409277266397892238178041434262723385121847109159230349836377978488764902543704649169714331981083979042471063536240143111111668234691037139913948253821782345470936852809931617678366492644609597112776430201178058490035390272788057262719360446439099487410048193266349755800826310201311260154565387761852410457800841131568968090504335081511285278872527275071717354357485021359057417728097722773391677798167074755822209512900752374632266446219344550511280056914241829890527627627667595767674420401257852404055989488345141763296617825052339860361699434514219331034735520036157834934464575757739389563856954227599767483617778039616399432935718268106098205595817027942364352055768843297484406021807541973849777767359795668067942315787383273062005827811060993239532746394235798239583115559555704977667660610855956537385078809971699012429468561776066867393639083741924489118157601923395884292148719072717082022283626289215704030811306059396701411804227811975777473403612496075930473403189033745987549712609264809338267667914761645870957776167555471464638384384683022743220396386288269975368348472285402791393161753843203791716514118236831484333415730714314715721619251168527118396210227936593115911296567958934855157681569264815906018983909930403293230921253342166192577758162221826093052816176025471861683438076164245923932566787704420310320941545181221139150226786708424896430720742939140027802325190364429187078077355319741612690873859980570706496175655389777551963121456947664694948652048369319700175712560654436275939805400450550505777791367848021884103411559593326378474636758286361389335821102352674637614488901388287647577449879593184705985091180543776076504434077923255762217401145307660656459740434148625604925328254077659470026483526820662239369774586632670633433811331973449104276409400862710115502486418491944816286088969632645055827743585347237764201843630851377198603364377017135194229144995809093357907164017508304467684475372375323571038404481079913958986666810543806588422603839871427371869043002663052602613400579114747015843077369598133654301993887949477985439508142990092422759413855867491370411572943352184959200596315923627469255873192665488885576890857209473022025443919526628410752514919352942828300926376247587267284348752537669190218149965961610578055817242356313637285779800683946500980299053227373055467892496454867970286418306560078827849968434395222202982570822895668199987006800373697927670582797000437623814383697332811295567803416466055559889513940125742848225105661917922153793707684119209571527654619065379163171427390705931003284779031722741655374433969202797756795971916947251421128856457858919333403678254447993381052778029555968143157572115172117102524451326292646837148325441631240278050974473349509679420415305528725551063722436555322127035474003186552636161902450350319510346718985161735944346643182024110874984624203908008402954126135542198181268078713008400417950840975693450404625118234725819041587903999411383306715410951052672480857539539716802997013632437837161094262849918514051239333588563727244887666539327214478356389452864981516331158480797600552483426111670861170446899754565683410411354276182321532996431442893121893542993205261033068539158359859604351246588663343055656049533894531793174227527156715082615096125738643498773643875478628046688204894609276847787365315971113665420913806361305238348610229104763152546332640568609293296010175436330084265178395684004088648653635765800803745235356883213409325613965715108459232219036639736326492312797035609043003908738746269034911352923730761447875791599006280462303289826815676079170979864881715685274250270402831058189982600741022880073338653253810777518233002404201665612102326568436857113060379368222146542143187591872535495831458417227822327329630187277820539249267385294878437590420554712128932983936086236354537930991652470259179238363417448356393868528644099679311771184006912797346818873333796908786957626664088274840416650435388092177576748321989166311718995758916361519814567594758608248553014848318770059296113376002761386657276238031817205257153776502238917603654969490162824700230987138841542908789280058726659674954358908013938996191073644220269561813422098088486040599550476750952896458194939531289675312125371158133596761766082728317818895195730074917121608294012405128576567770045053684700412339525641369778293150857782133236684372936527457361811271704315131127009966587688575487051844424160113940944665780061994191683607852410087681270985698991080102100775198979928047167323477288486666958999861294482817221164288950025383404740444799673783691114093960877245298566171671781535549360554424979549090168769123385783624122903612961816215048223739575567773000152938641418379446140285247109080611145158199764463996447880969877497172279007938060122328669214635761239135609596928089560970247839415716837710510311124943888576443351820853755224666733974031365009434087583717466266443366015055488382244980427788539558105396475875484870404583096387586360633641326509266382464589831729576114334540126982411075030023526742195218310204909171522558265158658987705935665345882273110074421843371105083351211143604820687501764723981173342077879293024897008450647066608518396746800470178113147224358340562944707968729267791521345001026733069504270986290923300760725091862376996204795731286529254838551734381515344819103372334352217456753638872515950458844434463616003173325134927944826776922379225124816031609809463593536715943247825227999601431771961856072606126409294489478824185325419525946971438040553530815096789744564669067187714484639105848831679778778775045770475871560471631309874539978388029351034619026283751748412947201678070907601745256512601697006436840758904527852956548227173258983919589357063566753574019887008913366818860784612563268250316741398767973573777273155179947389800012608014358839783433793739981455128550433110814694291868772611855937904738356521703684795625923651550335835842972276014214275489886116175439801184442015069794562305515674034121118690800251818088848085329948644863493317878485369618542280947660731355136257935648154170025402850036633919860335813556523309752865774401823608807621226291247480203989670329737526654269507432728285268573726867131925767809047285362733121867506758089586186593945161646796789450965319895981720640160069057755993013633344132369926539869114397900478515879243257333233648322500234139559821644779137230634764378641786732360467773116083679157412616136996116184615411939870001026666503559842400710327452309813625469312712867850914846865036997120979992454416996985808551067432025923557908253592648672924499932739259139446990168259095776097690089151052021343328417232778347195131838383637237595665031017126364883170396937209078280000920707283419033700661486444644478158606434779058824580160873549306472418915783320424757221587599379904398177810721227834756012587825272745010072854374280281777927446872374285800945371066903546910122007167910526754590536575362091898213374626359419031899545253250970163412489043140609543644955109639454817886130663492267280365291765390828447786770379830497420012929401263259307484452493167336896679522747411038939859878430962977438669519306664722804360991195391254691080107953700195919598858820351964273321705995194107149205603132873506995909819575375072256487599604306167272307306570625569711336293085960260639664553573515068665152996163143300167399614327737813636525703117568504426026417951172211774391298023559091630100420956916890697506041805532907817971635695310000025877952222869217819921957105658628861152386146769646491689589596414279692384960063500782634931056364333394705912511179090133481189939128502182155977707353287824644683968415523293830068915751187274223887898459612568820610422302211917015548966509655404405677961770776318729977203449442941410011389269208090175854516179439972684459094728657733431480535936688895531059189453108394858245674074581721378542546091169622713250729703437809889346149557382004259994048805523124347575338083406261694860255409525564058237945328260571700930196511010372022135448672460075888406800456378515943260477664184621892961717027871386693104989795262409563464674841340287126129434677385985211064637545490607635683342405741426069425728504598519542625954852070891626306784123771730795468641930807191910319895855711806561206595864492356095170550119596874518415893869276457383761929691397923690038740041485508827364366414703692704592793374750185979244199019355482055804334037772764661684539972484757057160364201524993079169645551971687300668433287666651157170267496217537100888684427211720346379560670446093600384365186129210866395574712275183545984202847567614975755114778057117878591638786169270613580858630766702139419951290640444484893059259956800402711662467010401028385053640284064788895497140965066018227212494043477440817989090403351670171050641429661205084008345131689248433624930308051629005570094060957279967246805438464398643799685325337621832988330209918441178471194998167897307292842409751347422272022648079076575356525249355679819514826623133342706916838496387706821181471964787503242686719016983271009206305801934094452852272314052960619932516750594677064489619935859785014812275416336702563845448588437440705147962318832788970145210052654204452990284277021291789525035203058365005907933350023991091470377989256413016530759877458155662088362869167749705180746896798755053734486290192742641964701804603991183493083911013428998408556033545516279482726896816881561304816874342771876577900536210460018725463643211315265161635237184857275067627000818411806806668787707386297724447043253763752656969528023321524277176458676499404035102518992939399384725457430762462621116360892682709285919431476393142195606246818330845222292519059674001984687724532561356112409669305223653163783184679069498178647060431028914216690162597178540995025747165119588843306412872481819776637386447046502251906849772337858447356282905961193232969085077856007952060823584580957854390428085526416278940044286462310634635802600937103019301047782091630690102810559172171691243202847839984390919085239386011886367345820801742804647660595457961439414026104261808391286488686024608918945705947147664999157210964755729317511352143910129618420702080037424097570793553296262253166597589105466032780672876676749616043397032180861275374818197663176786740825500580065182177651431940830326443936409299966640177487584835163702169599898436399062498951744632569499746344162293216542555877263288831554783956665245415588446073612612502928181743924217927671683794094985997158735541058439831011314546510820443318828520780689027594043503653744616309574796116999191906458070806971660322928126488572771535457570033566413652113050848284175167551677718852697700044679852117568500852226842761171905005476922900902146172802579097930124849558806794710446908066345075979578095101205225422067619462585408374466192128168708829974175858218192589668266725090439602298002404760282777618851020813399821445417107557390409188413898751164168465764420549960555127358938857301699135971618737929757297721608827411070588451303216670813951134328610650832852185656603114072869768018073750373731062372281181067352633997166536666388813268876135658910901614368774529159014905168232629418054196542549397635652809842690587290647648099032780930859420254438015323876275493888048587139291157971831064447426252618090615083520366298507478319550088470656591643210221214079087532495869503604122025860286791920588202526011843823462612753400805013580456640768947419994057253471800886894456042058129821229067908979819985778976822303089006499750253368515802266652662368670588630291365610539566260682587425822018071208977220846729226941443820553410827554803233003318852829789976537658860082453477599040827195690015416374112849664233961351144428452018418694936117502332340662506743560340415529393150051065353559743801975551316360606340858514642224624631898461314933861563332738289383813570279527773645007351825167401685141266766079888303836184537480653133694376715774451935128182852303688209752481654751087518367799330235937839925698444429100481043195239931401895297605347912674228680453177143129600677741071561910397153502244132242443915354184020656901436234994427800531144238218191814130054068807177920630501001755406677132977997310844987557707591546773387031136201348554284395695699141667068577815268360806531461678356541785657961788762026244953598962140982946748122163929096517738815626106980704967455699002169692346203628959095056727099991003464392298643397114250561180896029909629111016123963257035297726787259575062333770953847991083885562732639827065347921143652857645583430798199746144647799124886139984789718462304894790531911680554078122705185187561747022517221389937783862977957736459345819759868242934887125875995964232890815231341296083245806721114609449562953206529740560295575268406668374518292215714715475805553874989970007117270720516761176797673487928221495051189172104389599146798783178493725022059372991576228910385654177789111614651300272968216532723859040834001066674472870438648847254760310582944639143848078376329157598192694874096309936624355881341167704995431399738865995140618205519396764020629313458328845364752423261559318367912709327657087060099799982644596778732184720204131937508260051790001336652256745623692140578842204240359904394923307619675114778994551761925406788881893247620158790767476809123355317350676051939769395270195057443727268463885417205269062230072800236253041220295102930521557124537083748443989942797196595361380552139387782642436312250781477362517099044453861435092417899209311131852889762060257678697781349802181175092558856466064050918535904027738271904342500913633086426841950242781896274437168643957336421748161104854699209393741445819003395466431744922529133066671590075568644413612482968172633921365615708574949892839503135409185256436089861193989991852908931696054796024097386655648949302466604628844209907366260788394569588235364335521342757832137557098343068469585668775119496797736228381692933690627738060260352825666244004865663908259916790987123204208892558967980492050684757420577505896325666528605031839050267690567156587950855208612923486540230344099874566966750838520975503475181510366091177786627276591576957852225088313750612512889220618545256586333529600994838970823144964215226999937155551002805790906218902128940342338132150251947558874846787136946105859582522142684461599500093632527193558568266417061966300488104291958042390745673721604478876743080644419682546937414780375600968071693606094439813136004199841322911589862642021846712104389960339121034175245230030494790532889973132802598528529291481236069523077793209289457289735016975630468443393768807507444354077255222405841125203390229996977146855497824162054179533497388288969440142265080750736655077760731917346359159654189008530308369876038648521366175504581070856935014741088499708652124532917785867492487214290109687890266110382323972483224906444832674131357600038098449333798527073652084395948612204820432831897010193420270446205309606071087538945279448558158802659065297058817586591303949672786256718988928208875804208880607208097482631589012610261181366541472698204446533878490336087767310781400462565877141422309381895669966053754849051644688050226145327112361294080219854688818121412912530612599453005187654701345262820517142826627424819308618608439090113346830349374740354588185252830488698732686033392458627729095552646816626047883009492180460290262180484966264686284049669156208589550692726120177325718730833609784152300097514330694669009946204102449029873189816721166464871366867377503278376173695498389469212345266087417755192726423553001095580838944198394110807938995537931049917227781618211890526863168437682455238756554164206865636948635819535868124691771324301893665322755703807141214195362829223093900044522878297060318781419705138645430863281845879079829093265492204651825651480133696872431765575475034490390904253467519248046359356247507632058862226765752848826159212424029262283219796859553214950270516855247181043915221336434206284880874546182141380467801069399515321341710575556615784299533788533498318687567912547704844055966416068780232413873629185670043129166245910304173089887890261161335756479026256510342206065834931318265254313689070262986342975011878772739821201205488979015574988842016178538897115524894587625670450544682674767642965732933104969476720848463933035620334464977765549405278520349477982626088384885123814688468424022618281243539034365947372577857993460951687394824973582527178037519788284321815678010133343024479998888800637596274908535628333640573108919601463520222954360214254945921855180737978099304371932434708827663196961770594504278777499799284341895889061745021969436633751968827812821773168368159685941264131760882013991193987177582259486784918673237375735699328239480991132923551048788380407084447749785758690082964329669625144679371768755461896901126868861614398145825260805902942694352737981842068581690678556728685659467944095057553297523494087989721388651336891655924069201577848766378259644729141626311388397613682806235623077846733315990982647152256179870290728860682524662898405001528364775573658303757591860726438816631041353380444080256732695915021053823495844999052943389201567494174905013839012356167572063058609980541032252014835520391303654931065996218589980755869751828448645740549593720491604299156972066591083814644949470285608499354218415898699069617511058724220870180392297249393506401461911045115674972540619802059792825210032787382218020974011790612147835166752240537817079603969884838308103506273151696976208081895740433381927128777229025773357219692409904505734734599927183924019966604332846775910284252087627562105787447578600334339077079399668091517205471466684624083315705522334541703549455055573145739475279939867284545655490471046554253774689188025084241391037672039906631820211979914022065607739425820003467616659190487089830529006546227550259648364721607518806931449592640731622549210385318590857643561737483286710203201706573001381496909399928109257356355329111829905805760052969833563902647172941850402633998879898370203416468497832965179778668916254180417489033047832404826454242365938350879226464814118148325833980789272439376212483021734164089682539225573677900816503059937160260719129915276044461054926108329483116132505393883271551307596417794577806073009397814791979483540564035398230795061069216334122769809114558469579518781000013305868964710505375315901136613575320519869818065343239008977085948592902703402446881553359675734108884841662266287459052052487693167569250251740343725023007282364192302493493030255690443674895385355099243601558384188887257818148388791501366115198181549151881709020747129411064215777755308853110738542509505430554912601263051866308321675815512894536513757501056090093771333409765921082950281692000165002373300903095066114900744929838705009672505014335474618347342833203297390360296090436907818915960350610338649987844444490288373551802734704280235335573220023034887712370828907913061688154320067398964220518853203982436558633998625369400594962125874205713830175461652231904532087674912171720018330596656575148555777850365225809566574618739237720721570095353111493780383409043795757486902237344645018978958663638082335935802052502034315982461416522293329226900573546512186409884790718375623922446978354352885904537658984337539717161322903128750325043656739381732647059348025556443121244613577140891923227493494976993569765821972986227914979443199750902449465366425114460905627312885806752338137694196155565678659859379657865935330080438680616804715789001780497535723874882963566650344701622414544248471447342240166924979543477723208307103103440544240346433394512306264949449330445097157534529036027000984538667947854213759389728505034118291854516879379934048550909262243810645346219674322689673832462404619820556264555263067973326565907010960167071877968789188438947694404435344139287958045208755855929928358423393750199930661158072156485059688761441228050452482811522180201190929537015893576136796945776206843483781989051624357886927316100995317345022737236190816527618662398124906623345077832444859641418372170917605853550810518743746136146667720534245728252601963812454867689485857567296295535321023588043946062299737473997335130706210057143519327347660635136396238750244709480102168143796177427068665063247504728681681514559963470044535516372260170115838420964386268107001343672589931669734810815671321534064789643758208673814595642771981816791919059566309475738568051054554357963861120509823955572580459644520339261001495949815087873054514152210640678173566485820340118282506010648124036722179664868129728155787752247996421047016822118252245423070685911923635847822535471016346050750219576369327380112399975869644219625543587585924223628559991632952471953777161883727084272640629701418851356077970130962320463669385988794940566634398091831427819448117502704466758310530828452769796973135139324775231629302438896371831087027172050679775985392406301209401967376447284055874116946789020316601300034414743589828485611515080144234734976282378700628119186031254910157167609432074248971410155485117611494072126310546724077678965122418665016786575402823886984352712873279507066161101556983324868983977645459299678801036547452442645849821881429694275562890383793661378181546145603936810758388283244341418696404835367606649178006946810756272354555286788308008415069967529309843859619675508896356176300408221151761350161885992798396756381992892770343985226208010009661531745360942473191160904088804914445011240421138468069381899648140529806867802340761710240849653759611180302988042251088086361699723088031250715664394041163650254244746021762715128783396113946324934781667198985282489869160402005520959973923724244492036484151833618490057827403808213779433689221099410765290909759288540474686636773023416969760025405259871908099417360779742962896044090578703218935076045489076689460391865930625310077539136360724577680891075133474545749252687635487700375585546156340555020515481165168808058001657534736257232215642065309028825882348072035258691611378752508922853486664419555436235488666830526602550733904297558213277101922077096414364175741846841445744444193592458444721304956405749276421522621617220591341696925062965253042396871943946214699180854660189842975784531480964177473891590314433751005965419005927522575343558987859606614709413285501921937322899023757297363621128994543481225341076456151734144942682666533706910888839576032819279857795785410291151694328801409756721192470480054299356506626149122266540693880883495270890885679905561136996445691326357444808930416270615250622836941429583977828524322157087567549395982810385525743895245593283001453967390911746127820299575615564786813405255696266840901526430901699488865199126740009499867213682350950483486060022379968412639415236523520559877257383387310198642151733103186773821212651990179564257226536162973446741910795078104894620169227521779101995983685148014084471232851007058217315363794444609663648975940269131934769405016159847595653697365426093023447928562864885846834857618171359371994511605726051570613469143023068562020630053596714691361730713668638318549444133093975863689405116676574617305571484327990082752588272730177776864870710401528457428623274573397411984215416924784885739015522833819031367972199037667229584923250438685896270581513823942225935097919462733753088902954794176578694486809052249453885060810190653516569173445050074459776112235694764072895384683397765354059427233854127688383483936428036314349264748449446733124667203268222235873040019716588647957981185739254080260766720926403307991464003969415871089843215604405742165128275384959831959470017121282984872909113344354571961902556462475141949991712449720207657876660254442260690018515059009575436997296871035243163890634162627526138954495518006592660974168917924058428152402810738383247742523668041488936929061564485388241780699118698520984982633560997014663017091121424310537844753553910606105956431656941647021920492678450057754773982899259541572911748460829630828343815717740836706327959860830411549912476486002423957953552188499691123133462939459881778979697443562152831541453948074246294595244068646706777680290819263518628377276344174102694055068580571895505498153353564293158449195476997145225950102883979328426132589403546655800071345652161454224797576500732858012886683591393740938402072586097710989887529295594594397664673460080275067037570175028469366027875046695082283214995432504776139797815529405367639940128556067861712414965131471842940740251129626370944766918272776264562304539631053426644582331868370771825830807181580386140524268127713711546239141222241462832609752013255908028474510041817059659466925584263513097806896851820007134318058764649500606050310920274521639380107955698896348591948727646031660998055466742773064132876651873578333449541105434563634154372639508951239912289755040192177814685425337612820816750060406745876563510418348172210228712123193483281830787319840409752648412935450100513331346702866673175065169541492226485439798222777301511525630459716706465231760343308203700854143873178623601668603470317079733886200149728829386612095477511629174446559248328760703940730731721815201108422506963674194555614586694837496568216535386142857634498092680089302390944645091081320385952977404573669971315248290088709765049021875862290990700185148671257545147189362963947243861366312089109263866765812761737493825819131298109331584573267554497949857437933077211555096077013569602327755193870157019404300641268686350693185153085543662032718685763447257359437513957758270933051545019016049488940650839696063441438611363179329759906994229949995207657202869266271750234088106124464138947698340666054276223300914482050399678614815223293346099113054390649225727038602142919322064241110772251292507587805978177344326048244176699009313911228590234780274219025268909166394497001977637140993288211793011777343426722860616114822542731373817814619146613193594566151472298990231874829955463495900662485897034242950327109370537488319528827377892763561999672508500524075478666823101621831297393880633120995723903739837254145820056584257588289209633356463839487353902239060964599263138345017927504745573212609060279609687018524161256071884037490314574340787774840010038834900226683426898718381464713524894513579625815013805184938815712172508124573425894104028537892385491805617941796077322111135952355474733947092944449724131056743654274124709887360275790860279723549921947648687217823609021584011903338144567347848600187829373824150792295817061420426348554803680565228470212915708656854090549479552522609018137714047434901696282718502451299809445870807191898230070532922047642333159120765816790175692821829486712594753422190462561441507050302363314377641507793469759914807440781956191169215697464356447617570865203792011830923283118611591427205700359750549581412323968382398815654986886929878591268142241223026294159902025376214468117620637847461840177756989767323003212786302687558106712712093172016124407721190989903003844375977887681105717245001153097477406869608805343112870750914069252853241794256412349394645141226348044229818522969348423728338359673344472814694978052314912866145880323656239886684602332032230557196152514522819419976824601480214906540855401222387019852022959527192777629020303064320086671930272840227494222340072266565412910973287629526974233017254608461874162390505072777585335180203030164513261109674856862377200426730373856181853463470171784308369984009603065313688428931320928680866003915808454823606368536437911815987267454149531998440343033115102227326420552043071206662465378992021846384947773894407324887279989315162186783710410078515361692026671485306553439452046013459425630336057027378363858392086135766928364867282111115915024252406657677722609711698935280693213175818038568000799807322413483643275781596183051779523670282285793053819048236717410044019868096278295782223623092898126680848811717182162294494713938947538918110990477148945039898399969091586315385974092155022925016880481075207904203133455224619489051343904485587349458739947649917735943129728762792060100101846584228716215162728332979012997896434684224032173600469736070498585836090828145124712723407875996751501920017298082870738975098003677250575976045417543951273703738843344063939901723968413267869000326701324907554994501844960309111372768307432376725491646165888341395216533790815388535698829763934169442717417540527390141664016552365982127159131992187382382341736252041801430794317858725033322731755650755648847951733297845110015396533675930002417479802650173284000125014330032260117649866245707530900326815317226064279346606067408452522918048454900700670364527432558235959177663753068277352189259096884924081581936055204591899877272901686685081776034053166925799406649397829186972817972986892621371270684413801991287925809977816560734383332048258607511730846906283311455563607836717566238607060040972776027766420909615707310941075532605466069603262936731549519230069178122259000686519839890836705735352267500984037452776418815509491210974294903429121280884960305354050565940892040525584987480778546570116896404828409813056972280434849136643922010341647576574042256859590022835243883315650741974977871117681310230527791857826412662931073863392706797312954380670134062868493214092630639946023814435698078761227393916210297721366631177469203865185553317744551769856435653389977461447054826481165521808942229678506442849401889479720018663976697759433495323512333696086181536895442342192065703085544005743677026555190883249707267322979006533122024516070069790032350009113588749596496027160071696312732065604604796457374452209971815642180897481440385918019319441903660694135616302164291439766096991256266082802474005400968347973933224477564579545904253669572170914007663451434608891964855613673636793233540899458406652818326181325958825588104956636766496638272601920819994961716227595986415697219592326506821278119051777117465282172742755548156375900907104034725223986022358453718564897192121453402282412141514731180479330444364140691720298384316649604845155430923497776493194426089631246642959814883702915062218279977425657126168962890356221215249409006563204651395321386194507794415003033506958905859898666843071651369190709326946571996869498744755849221285856136961717950547779405956134678768196639313387977406608734985086937640501938180464088880494947695933910891562914368737627606014315685445501891154538379247689148325994915256033988880403881584492581223624944986795566190083052015726021020915580720767311352165074857611366742441593305650643627568427914139955599987465080496868639224594061182878218581396276058566608209238412874425598745449806891699360719303071438694011719031743795548978137576045613782105059484292043007455535429943951264573599348983270914893109821710533444061678709995161374340138930811158764960118283391675515984127281564350122664229935822888484218251069706519044863528544279108480828636252620075938197096073897425716959922798626185046865826358548414820975785208575166586815563269541761711879814171279758048104296416892450122694832140617441841600591920292459770106374407214886796409176244727928987679096874391384575991614499575214779274027700256632590020836173079825041768572593305352513385619762844269844719690290571968597085471852898281488610749154535469572595883555531147609616213239831010676144405499788126880648581901664046996328906411439796851432813146796524596239691573702413268742612983894739908339477443592248104293558922622418671505867783894405751437268752939622509574822717371306938413250749099081636629750349038581921189444488495103701779453322183524459846894542780193925756499439479130838578448245463120119627860709282998941735451634921639440793477353849103561108006885575249399459508987069362298290191083431826568809485635164890921318489572194513647341745937646125629301561480722046682580961552086788528193412206885804274007813992439150126453450586040010103178782627544232161169498002592037459591610384426657768382810929670106829247048455533302541838367432976192544994765545012001876045724908795169067122859579966415326852093114568603489225272864905921633747882762904071958568711910100314524508725294752401730141361343151370839375001758774802009960249944778256081309118663284489565313856627327372759040353410303754483584512482474107451019319424668966999348176136864972302225124510454836756823109713947748251390628545190788044273065162526864570735040971509694924052695970755589656407947187048258449827067865767684903147242484918577933585091356857939982259253277708834176822259753371247480500699799283072729673416404653690510619546670805998349295735024962972206660636462518799222123196623424275745691163248582118366038198935894811103065793701848663635956261657027872372835306067792814398857205532332035599157379001387636526234971000169759118385910273550568302783600838225663479598445392698519880425983730908101694300721519150653917493786492424776565058239551575574572447759050205379662622069350865520034825773920680391121925784924563866278380422837892577327459009474001123194632293647369727339157132468869597892012466164498742262065056266525453639834134722926680257136920556256766171709778720442006795448314816016996394380988386923203984570882232277804974747409949074307228494718467079545738528269449414764124395639138176554003218022322169989247816870070867659159985070289532673079725138159358108502714927929590411158445633973117181054171164731893272708835474458864639583776684577039115219692293994848308684264103709400077198903321025030865240117552603919752937481360847881567870321332283377100952082011741499128473911257596001153288765289513871991386867774482387372101307564830757855942167756854881827857258758146350274521948960588314806262214280658202990433680124957961154625404845638006445237808088432194676347931870240359088042495902899100264210203081937772289432295288614336273276924085207280140664043445826115551721603040920539701806817307225048672039332394330859298308527158108749044651734156446351426272297690192127014955571181496941492289504187712848616936188332341609184408998796072671524465520404297924208371848466221658302998317163079624610653184898067072863081114250196239722318146211772406385773445714075892034613876348611394148807332165790540590364366306444303504763447386107932370406884216426744465713748111847641155657257627320769278955801261092102106154618142228813451355298948603612176743216050121186273285092320650121191660983595918002132160841231635587699269972715779478179357996906798228910208627069903930848118354999441739595920848070449683335092781901597074086401218536635782694426551671725112740959395873114142435753314878450131153897892964642170207342057312424318687776852280657269279045329190687714089795804403417620131563864224276622156658700305629225274510791432612401466548254947381208753101104104060183473351785421276077118268901517453847454527804725703895447551089796047215939211828554663523233316182883035940922605448166853795055642628757226014040040422571075656327329961258846243955819760135597810361710974496577908397595028812133893744725008149413593207637648134106739998358933970969075821293850643884845762651663345681191129805178299113430519220290852953471426242220055510480260684030794374708752589742231394734009515321859601246475076709773144320412398993236716159354276642167978847656010070446878067878497464029723225745050794857169515100932119322471239236004383196263948636960773079479788609110744881086022899711269401871797708835789102480249326861148658437241591785054586438829207975994111913195627024653964377242012598857411736908648665487176923042913383697193754598984943904688443238303272020865911298263794107065134881199188407018713845191748102414726562833480714676776624819638306769708227720230822971270467052473435904132335836262595467849030803801793893939886618281725355378272093562575792423744376363396869457226924554360219834644485058497365971704827807525545311393339817491828424879760618391820318264645623837754042780561015106981415186168722715728840120284031223048529167308822156774652592182498347098313245855934418983327114214764057354124564546106179908674103480951102892497691321460718534701635155400850205641400409590677953953023894496864539383066736092227106875915632411239336908776324508696858411068544330773574670204567002046780371555623806495697729784762617819525770805312372617996645979192170786555730076896325053326714806385635217473039122102171772860200687264176596901072177979418205662983852703449394604637645547722004839610858057748561718275191504524719925984875778349561689855456024562680778592657807239982988746678822822615206965292881118591902573712221748878825480992146585781345207842952570193133070851130598497157957706431418929840647179462308817752581202610527950151869847700778304446354161163260898667461614406325237820355859712137358456188210279342016081901817662308455513622115482288324156434109066513696162448749388620234056801771708368565434501536243192412244895452459264326588367597128182148679463334500902371819887005045538037311000160311666456855315092745492612620161848864637355108628044731757969248617051265783823035474647538339744447553590903719267881070216536704603341802559592515645971456986858108051135827449499278034852151378474067876248808716986282945150970012440703703387035170930626412200435542752078568209211934580162656355357334112935574077225492605560953304149609724135163548141864767073191653409605305374226613677476100338091265032727584753675056742466554581157476343110001449482192455725187613837182287794562886239635421833161339022931961375211923069864320507054892147101006174497762271952029597974680623650020109006645408658979695197994090529723152275409424808256503043670844000500635417451995552905560626650008525257912011169536485940672611501038616103093914861657672825592042934833745930507318488760648939375852470838347215746616247310456360376197247034023123936371660785134558288929306450762080902536349356398557939518929602004891499331602139783499478396428416703843053440024442149583649020665359825079157748121232543779881541139091984353930611264827332217419877243169655157864746358679403432353084378672479859033068613698103916965497538182494099807310642319292352511989239911664766106925051499389534375011503422293824171575450415778445590747616008471250136402906298219285696794228939015242400299614122005015890250712754351838360562519134977903942817623563467944805334710761608061420809739552739477950055879551574378265836794088216593644774006449470471603669893783292200505300156128893234759419779809808437967236002288341063512009676072596972744463161130374456599600527127219138917025318198391974845236756097340683036571277705667883685994382077174847264284193469939400265454723370641793414077210744807577557238337038360502345983465532965900772988000447552972074357571391423887440013251892980365459683121126244441878494243881674523262085390190896004546763799480975669320047321463425376745531716448982534216430029145148454152440043663322547012371762635768057044813109266742267646325785293939964603909364530886622862579942080315295237120118780122505570214247312226060679251077102762459502427407055295995940407970314550794067245212103959401258456037060575658789601177376890142093951420555183569717366776781456302861655057499314956107438882294574573999210201957353983838714257455349458167076639663572924788174430275475889884349309528376977081514193463472591138307350975927171393160919044469223752692692896252885132538154212808310873219813268974879423919548829115965681170998553960863927009739301962575146399702348368965923612515561611050071042324421858258774242094305342843985405892817613696678179625744934857015895640953955551535810805602878795670130317387401586394866473135998057818914928375500206487583293591166540728363500316507688237298785372700127147824713887597314653140346955911507861215531565190931260784023496945512081518772891577113168862719331301508420807445761753614005057838166717262052228214640214654770076740830937665308040584132306845518864929272102257051565605824704224157959326584586727432512334672972801768076346359708616634459862783924383156531828519193540414253563824840243363594955719509971379581224930190439440820395391948003782900846389698352767394775625065426996250146455267714442814076130854562951426040631263951897428021066117671145685707372803657284099440215583681499501209911991888877173369314900758033620520548846076597670010514310260365909502162190584084165184170591083763001758068646237250389720192251910128886846394930084052759869635729309253900660763759426740857178308023418455486181127738929944363017922058803462240179682793823754992748185637211740016890286655712572270291357403038239139222171464164661394510356999194650456078647042021723651290647378916674258538184942088862982655972514210596197031014685475991922907722515332935679392654647753750143826773408777406870492864807734492355797343891878760832034218931877954356030428098571944709475785048692557070921279530517358540673103430985515776273532915283159166758354922178943408806706459473383366700169948954953709919047399095286607188382990137315031855966544415798630926725763567126445605031248853208757091733764927969415448294464327344781120093200767061638869189942550762019807139633391454458496429728979349684644284909525560769817817193436887380378514729713619852867568548250850670507888836168690945127556579544011294570076920432880840194844098441097471658699805873655229946936586513390945246846941500597125092351198784874798762336444517498782002307415493045772070200008554374511976391014958113699458999105150189453227654416587605404588022409035496176600890883269133568295770099002392865268615694035153657231061346442127906993961004136670070103061310340480990215930714129041339428438079220687702048889623175202845602462624252432604643955593907824292641240967308227943724938829209621704793920545090395164315375726473308701638880778700431236639500167656798623114547054628175952811961432668989462984368608900293178750309594053081087056175817309427792327509796323966099683434219938864750908240123059610565902992774009150681771439182692392478352404354901421852505194511071763172593669096998334981189313396164354795029253333835682827519249991810898621482764348385229179872858615227048692228461104710240101392902680774308833552568959529408859641001064420340666866422170801847212781297991639775043422903988734722825240633881482762766583895222921816911861100333841780559339973738287405547868977755133133129062686130240548121652567648667806785764067012158325157167092946644366835556988200318556800835151721646134282883750344062448999037966802811111283849470824999389577459439981672908476190194234714563934811295160289851632271951631463982920969585429397651080541896125499601179728428484653809721061432235287467476149470064836735075077564319930439418823913920975397664542069709969554233870899988666107472623628533779935438164602434537706760761280622711033650436716944948502156055510160621896837518500261961572847166258562114837165313334969781816403683270560301061398491121983848178068212325817291678884483706310817863806695651165699235452709918781510405552348698066499764962175076435627232562293976120424094188869950406963325662741211390575669516654777192489891024026011792381292583302539083967229035527576769328390845892001735773926033275527904111495187315352015115709141274749323432774979574177182235941886016674734440087015179540055314600139057072278306984080868142995772344017147196800635966503043041319770052266022448807745537911069067412405450480858724613336979411896080697153124981891458287650533492370511133791618243028226266525452572610027587247327951813933768326374760479423070634163255243506274262586621033637296543700876529055036997015716910637074654863485382372015377255074424545595394817503568222832417155797175673701470944490153634546387948377281494433206620367283807307476104142112572489827068197790361574276560945683407227548806343323239538693396576325996807426280295681680360949042261048841083881664585303399170422396037155037348646170874443533077194062297588390995321042288303646937761893019187336935588099484264665793272780473403443347073128398666188822381007090456098288829180424464059049494087554394078919635164464149150676500430406278161391389258841566585329955418262801147095186535548424987424143103906259711506828933220844952806618182089321454722117311860448529137227211082188491236939575078364209959931917580166040474331701860218105093668362607900369668917500847666309416731443655252147891741461575799983305459263405184728713135789274607230435151817657747745097700778442436780952150060348667553939407222499842373227743882676324811913760542890125939502724592648792703891797103214865812192174247300230118288491380837108149932673056240218847980497145531858256748617771932531908248141322366151394137766197201375376288348449018601349195584656854579394404905613961060980500368217387131685206206117370612079148935229760285485601574051912639614147000145593565200714523757840302361066433987332153076015287996167768165566961594056961353934927279141735588263055407025964249100892151967511535075466045547395792696535033122467285731466026388006854436149472027963328518986015967662951101618093283862107209588159530386700892892540978253439310193393901310042099216056868025462150504852060446209935194846875069277093496667708479709369361721780818496497135549329459843931027315066240420793054588553216474081988744167078242823453849619111816845774105855320966486824990506727494440718870716900027654202210990433833982512506334127756508463660685726454841908447513580411622811338930389785809165230256543231103489272349802630848659149399501323912266606131325350363002428808215764271024722876139088018347777649154592135626156119528519287246564922494336481450186693697676742791136596969641403597919422093848219923026731372490150710482979177302012778941114460507009077194458387066893810808549301868662302026441286963215992001828384654894258723833077423382121784765312163633890336743613337148433925955827264256317826465977776139272636153085889034570267748988003113683533369335154349408430217941556270156859104461275642568402744683277081211510445859443201244365927198040098465181446591289135868653849447676467086791636310053140711105332610768340312836581707433244718720995601869298771267473404683269060352090407826938943597433506171859657027806225645253267313319131376427670877789023104433054892923616018461666490067925247545883932656527849734625041526006701357205528409024147027028330019283013433360986098274724342471237882782301924904595109641321316826663921797267285648569543772752685840922306378031769313086656031749517023073152729213064845657950430188889402403312712913361993952811351086483240156138440159277707369126401629133066116370379232268534755395630945140861033839171896665672846025371868017599812627549816680189892149245495056782170725316378037504840061698724440998627466334418993278519752319045823478268502795759047662448900169429399508231522790636488200710015933640019683178458515812136047001145496466466982964568059427552416547234935122981641571725536521788147604386470718371387773426354456976391519663811645756244968110189156202020244951991219397790178112082028401118178514784167350221872314176259866672651154040345133843613363751101457148891461784167981475805513093102240521904168519632616966374138553608841968811075254027980360324777256600593702499719766904377983298970449334614743800544320502433056809230537795555145555070958247072520269779920740016630350884604540076682577277642886353359359929480564719230662337933385350958912284569507138515379187019094139920357922797856728745630726452945615429630512597719387255840635255829119884966311829520480861231287019014259026857462949052692295501415564572998517232629055842594471851065688497682294814389721924254518875202899981090330943460001531888756650105895439311096936590607355029077416340515736058228061872515817819613149796905739794125372794154625831613263304172078211738162417909583355011611105384347514218843680865568363928922097961043800776767859640086074085450565764047064164477985995485236292983552979537752435591542817971753988554167744495842754434567443972862379526386293942113559116189795486826080537462528930474374636721337895275278117288700150416723267536655921743632943541143389303050892179450458233826935254943862220401298254248092845927017922071933783999935587158738423620886606919090957179857547852227408493339310673459183831993878039134709848314415301090214277512970711488874592677665573204956844946447000887520504837948889495514259509186390650514985786454460174878603382907438811619739866444981266594512962152203293216745605219860465818467388379420435575657888199785231759198696494988364816902621297022318012293597381880639308132252841289076761096848215294433590470266224989197732726274165655353595199681959162667602811137807726482663241117411426943950165692074973047849247704568475440644713310538438621410206437241928658682664975009454479724785617508238263611433857900421074476913772466987476913048137251663401756213581312710813794920885248502384370008567563733350643769019455077613515620710600803457495806302933961583927895863366098216354627353623552864861182304972668977889332727363941636694717715081014123631608174322722355589558007973714933794100679614229599886229757795345264187895965570263240423747858301106805835934518181502971730038705711419374389941485113354580136324298457537217066134881119893566130816806800346358624205751808010298748439655171757266632278264971870618795170916710985669673107024007354034887713117612036829230275762061106681954886462227260847322938581834784997245085803798140049902069511640776018504608173939386982328013746705426782303687683399577740787429473584517114142671852267924015337116529081572823077306126506817528841938943121801465454359954437282065916825461002858790174399789674249124159524239331606803155709473251329483661999649653077513962775164419167141569051688466144413348930316581783544903639967299539551596196002049212219752298990302488456713238796901222020691491898055331785809194681750985508902469204968704648266751606307967109739634507137783113195813276724180517483762602018598361081450748504829194353875089569011492127839454308314649103830698544706455892894044255078763451343641023898132736776262663283954972144074748658401399592622447256169526872063845384462564347658264582576771991975473163789426857517725204485950569313300159389550859568889021636815104404128404629186776673824861302646662772507030475760815020037167860795900419208520520153229053126687074530227252105673657857750503221005741935776005188907590644906565070258979588925452759040987876863699165460477929005014211648451925143596007296851878903625760012467157519220957189759189576877691206980956126271705181383944750762744802825019468874468039904296101153445908817575382870845446129070671544679291281952153973232752949312225616034815408848397796528111905787680095352877493494897835944761589925473864258741741576653180242842243806779805937139701817539970141786013285397476391673787332189651699489372719417925113101689513827015129536350674683265942356934466870791909022307100900106618428640333187627449968468870544676955808644962152510788195915468534031615392600540137679146550576453283156658119925800773997114554489653420806372962793317626792066366654763865171863707420784754820980849650734634651464524551054576613749620121584567732436883525957348701666463907868241004375440083280318780286139471313560718687920129628014668408804552841113994383061273685079844304190668183198178515423896934538882667447465604902128317362380627198726171815247314425906582666828994739133220860299178636008268582190332828259479845398337370961165303744543239513095342911805230715442633244975859655455225985374681423011264086428774528825249157087318562877383873965593835856481193683832072400670863959690590550493558560696007200617477552498832893776071472854985099449451672229405177725637907543119688725571396467103492461955053571963391365066189157567786080267374487487094326598365087121962001951590323862475015875139543910714960687935322139886961652086115510628319974935442891185300713597995537203796300053099662178685895742103928998809073922127215903680850004532511740137054994470853505319678921064617710421922771471617672441760499793612887040268938451773826737952987731118310760766170566666462092258904137354597025437535365957569790863377770069248584349504876184610022521930243235361906952158488770453541977386578926392029454439988636806216862554294653780529385941016856940463635561244334899416338155224245394922966387880660107292659357997411087088751890958870058506015079796565624194014303314761823174775614784836017533746480152738256229769908316860935223398948520878725953850930997776269945212732468946572033102921011030996133992215852542894061252492242052762305466942508921372612865274005147498768161667536575578615413179117068664385696053094516692676788409131190191808494568466250807080625992552707637573328781773464011068286050851731469117129831546084410469563699756000975330502885427633006625904601972818832648595712695689953581887089560777158751100229214304987880760407908285261042632484962856082110535045322246772614566117890457862423716254489609928042595343761391060470596169543677534692758905642094689691153779114610811500891155120929423704124310672459534353849161849363259056906272443781456714870037790223821126817747240787430264305016671846987117041330185712325907206318118244600783264684846068801023425364548335647001633618536281239696346426817340569085846287345888133834260777600091332890447890898676915438020295624226419041236557702140976848618765455302394303161668926596804619725809227652074121743253542210271966412995351896026334149488321085569733555819293197647710660546935033184213442118436780495369674611260287228707800282256380693469686540014450585939965593422757161219654928685982155405124774865483328245781235028961906817187439356672617007839516693960299003617947740987286640617084331914199732650985504074913737508219391145659271840069466915141182478303496426240803888338199824952579996799707632015142283824448263722728158021645673885615686460328663004128389755282867724868586260612861302408597654707786782337005798639539322147897219486256014367969994496612224680469218115307300522263202457673929254986556116307029966059425881889420849023666913427771228799736529073214533433286052150267940300881954285491866332192343859020157559606531212243308592994818980009900273830239268483061356255839784452209738504707661365655550970098854949188727589129096449793428909346675464253437232945970659311519389910854455753513955270951900402980892209036239464541182138227084513224474443580630372275574599731053426652176478487143346694588827334997840765771973089220570255779868377769719970155791999652628002307288208751751117666737296077973959553002009396679324285879525759685776044330586538362291754037367489185148036250088987670445051225039121218399853176364912379302745741842361229404014385023584835480120299413176778089175630247719761207437830642380622305943074427513968132963721716177144958968487423429708520541192901984534484592491235814175219739601016111632230653528533310966223304648743064479937427239464424852934691985081541946681119778130120275855394158329826487686688875152645080056473319870347916474077742821872989288013836632124641195929170814196066994139540249507898935205398151334226608608639039907892989016265462489453731131084938826648706014520471299018206019030246846406578098435334897718593123002695485613585062473329338666989885328439882496104645930538470802289342446613155003210842598593483467034198489809111225510402797036861799879791705552472111307134997712076613600148660876304584711651734618423951926077572232995945572509480724934362752522640099398260060045837541248310802276217681873122088367820649387168891355995215401164453839635162604593438094789717735352209819440123216335562815999556401161928222261705173827543391346298851256708819597230732383836889409065833904489430363664328318369559856786798761426845532712898794522456848243258552601969287583046007881678188695157259258632119270831945514340879354363211008006029815501871407942932028028256987665646629065893996576064589602565286495869216834555563826672976287339962387050083061633309433908456108348967398684528729801779054758377715917330514795804699302344157401440995317179352841987684367849960019556192489802175369873995209337707922419315532298271110642694032334294495619448689000235447220285961072050317365209951617083678697223493062080198659078245693375797385357062166349519113122383810182564367638689551741865438739647901457810612016121810365304862401790803417613533970035061570796692943950828480080150853723462842408955399645871469656637883644529117246200380601624389207114192490667989927540661438777104847976035841793381947757803343317284057037609244248126982419867512561312120459345601387109464529919934830131035136690331127124744875009306655546776871027564340919569569622766848548754840922737188568758147390155597103992438378648070337660152924590263321304105087074742800529588272007409906384297503316017884923156276308149323249389850958341257948258606519969154538221780452815038466993013787492485950921495418899496111093733373694490671029775544554667386008864593560565930265691070427924104317619510653633181642476099345195202003372746043238335012164166056417865570621865664431844376532353420218727230064373438304296825134441588030557194411668274067235021791204717859236299366439949513039660642056365412861570186310247442010346343880541232988985421405885750262253866179240210246175184757713260440326060076839538389740184129998407772783350724337275815301652500648232419092058339150777926821670322804803541459188435691429669116469161824030331536399549512477776498600555639194041390218492321758675951598076274868284386367691380144676424731978291866695740154570915444272665931886318270922683480751163232071781345542553985003668598833179160062626438344509556790910518423527324905389423299588883567057191459478769372642833315882109662926038008352203617726300185022575457473643631300296822004668905901578037769146195602443500663459518830911591834026464996132370872250031997599726931434695957462623436543064705664376227388195496849883956066223606655800460554602100681103060920080291623746325534310414215870011614129374816566217618129856634750825609714270884050259324747177768771004425576189740801920171150753615495898205442779606111396562783689675741412111633927406583390118327574870899432438773485667560856397291393438095841744380138357202602140260852856890030664312559506446823793210277054233309362320260495508101515890774612355415661298372301884757895959467819581067994330765269183200572490011334296648519842430455404274493625416900799829025530078720498549329019943401120912408409343470230543642792823068111074500047483618698796849725411993358808085916794496155411746881535371406022663889070635559633931009075640034069948811539266616478411132808210539365032643505459758616771115727475385256278655412017729679325143351534426810467948733694068101120902941623563364162024882583131184461764468890360650709454720545993217748767295820279722926676800357038907981035052318809842409875613932338127106658363915387002066202156857490109369360632968210820246864844461824259330010928899446409331075019761398006292976431068741175159612955769187230499277985532563273296360505388048202305564425269531176812367210883234826596420371295658535510602498429608512590823404858782928372746257478489384112959306899585742457259343134734093498321862496066977727620810243075617146998660298815570231951352872522778004748093226633910160689173240163210596454929849007666829434399742578820039677477043051520716305894171599443851731941674710029415540777671517931998066430224711503236376943777903519247014125810292971598428756047338183845599034670512511335886434413914557470074067929387794057096283829283096689812971099667378151713815351119587348974743849462355801139209632181644548232027473332312630000897864907623207699412277053212898700708784265867952803107104157611229506795631884395340454439169788549972729726931612507439189258146788205513823308361965726235003594860761072847840112781221228149395635383623535974954397553192715338764046199597723689062724167183027270315999109854993638348660732056118175455467462974193943307758679940111660341830381486017948896217069153918728449662966281881656835637559997273496678581157182485728995088052265299305028413358423909814143297346187409370630849389973492988325174995668843734817816219386225751211811307328896698704943248146386368762718998949712225387408287531064198138186325280186588941309204304340622221837820288847834101284481023051980667053620626413270751019661214349629608248158751897667957285845175680070883873790549854908270807979774563880362739489475217239549647590651935315934627487486310422038836656805738920494870267757324000911778177880486420200903002983880432415261779053346805496368089669527221110848860283758232670234346339738685379781904515891454308287878472887194501394766942328766935432077926383125358005753018695340225990488661690903404816340467687933644859640627387280843918415022971675693264757240556842764458411309205899723924134915099341160183303879866303635726635915291294006701530754505781355222927303597501541451585528966001779211383035552361851038093704430226493337610057125388168352070072081495499690907094238365980848229781411910403661301108949493756183721228489135747693773567947300042142307688587055643925133654297343228091941151957929914255366403235051398554416159008317172420254800695881149089641339104237152452609946776621726680279412431322457651884065183044928453255629936027700408171130871674741783323191161475156567892314040624221077438395703423426389439748089899713104444771021933164945601762671296138958898930479049159750615132770688463724195610449348045544998436189358412751576901799439270939571979199175863039459933590652132980004749387061641372378302310774846262819586519758332375739678990674138751188486375755848552031554466178199832833529738037707954257412411676680517349113952405096927514005498126095936947706447470083860408668066291826651569200911787329703634394844899784046429681784432154350996949172333062835851953828328985562764703163882393288202227571043232855754354402318998727441052220603646304237280306310931139917517302056155965907111696228373554946980661816903416194899539182779772957047656896941377026060939555975897073045732023299590896441139600788342813731190563988225995352956412278378895320866819253177085604955491128016849646085119535915221043745089370774575411294458109896865936592891408229495844425911956379422484073587115653635201429390217171950856426730980296654456852476638751982982664915354406832276095285933509642089278000748908951001359036206466446227708138914726197469138975980955835053756148271419123428667918657150090775846032395434038272139342099867443627035274265831940985610419441290115454510561012160249576627485280692478554748928982459819132908874221979015433818693004633317863422383941829903480159959896602009317566883310078906785695334318626697853104441938103692010302446929783610989776010287621075712562112357049415469374481914237810839385031259268033376383098054296355542036821668210782850547675651447749056575462687761965502637276102134548910201735636190803199110050985291178248422280559138505504108845326248644706554693784532156140940776925859106176076994567339787674126585035743746100695433658797275623649378659460649747581626230521748293686962387480643296698899104455951332801525455767173487849287402797073031769164956910993858033862605293314945819769131353664072243553564610014984257195000491625707162086756057311968342383130453886996577390991211294365820709166329338606646119644240229577121125894720095881106999900363302688393563746147240252187530886541034425007270270900802586309816180052185360694910468260510207691023875502897102631925040910625414750172121261501216396942204765777051143738304561492675804948816037717241427220257604143915347979664769588789844439526874147891253939251790734060045356288682127093641450671649346229683208168989813609668045058640577469204753557838903995610355402087943751484370314146645276870201842366766475521611829441265874917567208128385599949021000911525553765269718045924994739365410130231096926839621634703090034983536398964525858726561476479467355363093254742086028791452354158143008988464026095271517555897938727883079696415032280872633347246172845445082138534273946997169682559019255526769067693944207415037629331744779954751999089068972517646409251280181466078154342495322075238888692281787068481248631627030081812478041421852779693885134584856467558164748319868892445802895063233984013424651940595351243268941423588468547452557962653855958277066901461043250520746708041154039912410155006985590202427584246299342708240749274583985740401718709879695406718520493482930639912447346477147274515044679087680619195390620236272572810110584453796863064644751416656641801594298408446995617428627654561779166093815764502216773060554641900434172671135439012464558440779571165743941205489897692028608387111403132845692690172462073490264204073655845570838105461234646929802027380254488971136027915063423275810865952775197464128523298796861657797996518054291973018018177117585107554225813164717732072495670457805223500549091449125001002023297439882444216456293300495829575065453777645213105634057962517789434384607700323864645384222039425195768301912988129128284334470511882405116900358816945953905520691695753743542653911264380768843930183527835542296960265883517174784286539103099480625129505809371031417280188708448133835133311005773522999688868356716186042018899207118986539241970332161146849434082710092459231891600073920012362785667142728982059735772133563548433231087586486609428550501697879584738324053936331095583828212884951468463519704188784665319834451445679260171392846419070836857639129876048133404255680556574662970896670751720161778814179753006532454919703465571822713098751996587763825208205673502725329508199477605202905752658053191399804141900825851607099711578934642110757416623560500044966722281188641710596844523616786747090212243516979930599133012110591917768912818688530832574272147383281870061308485369416119028166345774212003400912239861477654746536804301644363336159362730183848050236874033884746023146721820351613759517650304969163047297778849326056151713260888868778587069592885967532665710397200309677342568125654723829410556829652453802378050284427643848359000336100874522569905268354644844529275051374649073251338253185709199989917799511562001821916057145874472547718295756215098195925081353304960041910046482050600104502724078879111963455841095391754282011388345101844049054905736569028707631853763989072282288861136001055171603310072755262938021030774290975548884478315586077020298048713086954439618056628729395690703005939395591868453516379737876316978841069461688161090013957312135742755897855619375132060225798595466259620316149153395862760340181027402245579959689360894321147423626074333543418163185452591245246948898568552082408860904691103315182187549081498613181657189830280873345709694971427300055333513070876960624928437752589962642996890186004159848695539159321571058425625240593026312763120947020990545060499170421705683141522329406161336176296992278768874938647147643586537664494015521739730493120910379295714831720132383431612573698037170326257857434371431960576787588664408597087933149106598084499107073762192869232546748693804177741840844402286554924214528361830349794948530041898791263713671855709365389251521087389849384241765200170700403509800541078678081751484078730420242167034120114636143700164877892926984428167766080666817124065244528311236189216438609397431386422405128157519870502865210290941073463083516826053022940800105017161118827179338565436885893490369249886668890446219943764731484444522305718412765027615317411361914892516802084576325358232559312924195821968886145866179446444220909127598945446395839585160480831366314177448971302007095650907136905442869758606986676421157815267798982238278232554484632987769848006030403207738853593951622205975230050610349453462099953455806006730252665200911574656105678393393960383717967718427296261490051247968859500198533750488090123530692697486577143549168942515781385177328334529002404119742307601876674940300749164886938616095637515255935123733801190353064430135220841575871464978238235628470496745694949514678403159490347760602878442661645347402937596670728988015479289760543113250137252664078433334146959135458146740537601939449129354360744093001922236700847431062471862631884797804239278130156287599125295320172642663751845026085310176555422183599970141218782675749046964600657419082661955786886356457435696215916417053057204262028687222623580284383324086716350828228944031459287499797784187332724774268675463978037835096516481017665609947261295148753850153338989838057056041309728339134997758231674848276786513268391639608879469692867637914939262584002227205061983092293847446131329681538848385806373977212002951413232953633231704283478696905282794767948940413496108322372150660230132739147745361805958393861032159142444421962773351636020865922546912820806459370807901443956726211876175533661568987923911874942099910190875988974092496105289602531925387007672492690762170561806800828562418778453871180329246189102309850528651406737386563638482691368290965417169329077326377440308336032956730321440860979007128948055631677759094117838523659292136804684606026007902441788264350681943444376056611462042981385981110385496629327514653463579344378159569539917822092782809635319452497275338390499815265220573852248131247538748923865688835206434081206531584795771410506015369009626559483817806988755410805936183145623126734543884784628701608660454612868089837654304864776367050389199488575792509802588101466656262352209434305475889326880363026781159271433929614752015283808076057883764208080381196824551404428265432624300699501570136505974158568994339445362641385274077206560662607910585391612323926674311079658810838400370315463424302251646588650061910757014070985214825914457046461034762888225314829596685594053820735875291752595741082834294986406479156760341667779939189068872251256918172770090182233659132075333343624465255864587127335857243521590510640469460916817585711012518799986493598036805348910075455750227990049123331415908087548492169007420906101578005286303985144205748357270551956536044221019283140019530318016791188385501006944014361130547705188590655881760107122945552403584707884136148859056655398565433751934887742542107164277674220155042569311471517972847995818825327738404463496517817308142463125593904807844245854637629108508070645972847184937112997288448559273874499357291594757639490872281025748553794393404247849871695336386253650294855088039733131091989768586130236151867028068342737953324537274927284062874315132356192386505905365231125186700618364112661965351070685196181696649541111497840798799596875847733954453701071412331268870123991243828290221743546918774240009317156105603834199102236571034141619557010205028767819279746889485363206862430980996338224464737806745203291651070149292500225288109416695512106116805313535071296605182379235070236266010521976271838742195915021282897794548710355911129841395301047958873390501312390604133217238631215928239428774682169250393817161792130509186021534868879384368612766503063673732083336485287767210523877080961851485728254928951455635527323364941067994698167014560564137675406317053540962292432019584238356284674047420566477839643913068457212799551692528189059743776647915288229621908061789488637645440938137724295318547619162136286273495331033221765446969752135451584677069400725417514469270588213195132858223722301277039552615423343069526431294365664491198482460224886612246230819269938940589519403623470222349772160868002817723093898437611661580350525059572109858694842700854818016002944604402850227470811749814631970065353148325912338197190296806697838986574672764019872272619498123125387488424353162310260364268713085807992174211805443544493876392602339930384545827557257850693227805922797211352552649003731012420631296524009451919433756759237207345338861526829566788435433074203079121520579176441123820340833067851285440075056787930611882912730369686802817671767096252530160921934499220810664902955705218397298205619324779290305599361135182372888579348054521830594960922279040798501343128678439439111239627492869132698373526426133855231942805761538669948090537912372549893281319090912490300986872502308722958507343749730440839397057607371520366663162689334373273842157335710923413771875983712158903969333638901555983892061840135271854091294131988283384871185797180805192110259662293445158434714898486814497681304511391227423777828057279296319970559050274112027460948687584018774904041389803768596584638996533268840609396038748123116983652351912671201690229812850208932645795198470536805269071591258541761239912876526824897830427680032535174969083320661128195774375627716203425411758824110149612698546893030755232234966268377877584334930144415868000268805628608676725704307063686367271859588624613005707299558530710135268599562480825524940463709297523119356936256244373154290030813450278407582835282921628534609555428125324848738148374600373781538103321402318960167045328951608374348648944683983938270769580503968698767359604349406827370411139110349982563409961106417883248251368559114778469956901128989039858927072827496166855420703407475729358056715964245309164906656492326904637369636351675409269678002832347275725064587155446425128175088231989075152058154711474671170274950753055531350157184108578099646123881854110467788965769944229420980734184096558076529941198610599644522052637483553021782276397342975884728434759931338154898858997989651505127414682487177630092466429704742054343770126948088468912515338582067762088423345430632829003234014829660180348173813833790687358069977045957031089494798936059408931738985738158596212541575520413584343944391584131977313945002244373838402440575652679584106220037389080958783296191069129561557913625820761544815077873076884373631261336650505790039086626091916794567786486657231202163321749300720362532037064321813991762548066870087313888441908279046456562079132232089171050747348199112664522979518747063195782817170017162981381805213027535481382948574006393474438025842012795433802718654978702448645480291117115560837240563581106521148542140604180298336595764630213284074118329849622108504845723141680585194762906436479006561108287125085539042415240089164856732299750156828640085720193846988742862245068746269754545109528518696942735891959998137688507797813538136953064322370072031134582438690283421249126336580776276280044075961985626345731474310361364990637298685417976651098235867013854116089579326173818426672648277403050154163470047459967472417830477146544443766138650109670279283417173102750082528403098576658936950458958569987532965974163596753239357828211194107021318962874642782775420707929886039070033563213628585629399821130631171117435243433741449863444193440712241061336030967794823691849354343458357213900412638785660345376427820260334384638293543125742429489060130725910097181480669742353888197699578816151097470334783804145420001009186167570327704005767310001151508920523593542958572115997214662475915164338552600325967443093546293093789305086575903356728411075915581825879378750079998889117575666010277007041809401439883294442000439870947085980563305353944409590071872193122340778366372432426856183927257346564212431484889191373445905376563301158705263125183084149622990066818328350840119067730979797859907248914408662817542827245213087913433851681770299253678061717234043859353889263069202348040114867630684532945661395949157585440157970598680519212777053026458158407461183819434069598385452409895248655643099824261915156514784853408857627785235827171210738522847882715417922523040601062859390540912373806358159529492587814901169171557428361009650089072586585515554454381557244463602610895961068841155741315340119304491127069681791952056823534671676227979406238814778272545639730727424908654985749451417961048552466243319692893177057584282356473802433611227025426813210924415623154003413248224882040766856265119414409187107050717314397134031239854048543810943110657340426500938892099542959117759500544343556763764390975395985613836776073620978366139873391182429190608059256188148394990474025103762619438077013113569630530572441915237014089896451238877978438610589465957930371026406531731016414512640537999665166013922971749800813365235257642782362035792265996403102963545422643456666089229422834555532671976085564989960559751186760370048692375558366315688932287010116399833141863354805980557335057953693209049118566727404630296259702930785829064274065925184854954373731952145029683520489223184173360231071398396242773244331590906706322631401684389219780103921446944361928533968291839595220160335906047871563535440366369631032014564340594249101016080380554152579377070084891780349762858586098004919365813894743238582881019568609342540993284392513063914706330380024740062729545139989025100268646362232258615908394654110263101267323070420569400770292205404763794520605893317466225604592848473937983521067601591110310055062907366681942312674957882185904314518185858375395055018865076975154730811069572529255927698217349224462803552430618190575736202466277003040810998449006409113522815298112074226981026382791042038033364268598674469350515853862748608340608902387842329571457251498972752241257049980817910383453366752560919111456757562590542237133899488717237507127230501602012604753488174378253667772534845931027684011849873148596905189011708413104042500776154409488760158340165738765826052280160968983496793158128122431817372084731104231827335356345758434902190455060326665937158681122558841368005263670320988508710356843165145176885003150852774722952710226148981540436821692248445127604051216705158015445416023912145944111391221731484606065957260917354166250866653053910548521058751446558240653707918585970946271965710030288305189905544917019949300789007356630846169981336248314817488078087776175286013899103412259562711815325832386116325127957546161014195622022920690685517653371287804871039224091060277167037101110725818404700457307998164678033718929823797675257065153931584941681658086475209768181701626687163987615180364970612359687323457784062593839760658469886368873830587316750098210449280521226166980336443745503545288825117302625588040149267668997439066850789567777205334692095805506339364741360499365281263677427082423874436765588750984679496893670557753596367880718481120683215041955554463264139983536465806683601250368148303581796645409841091402156966439711461463413875314088304698962050677803111086028538887629630017783955383957965890407256590619390972179606892856915963695819301596125110288428683380156690484543726243893299444825266022841368463619988747038902970600925550077367525262054174004896771006819792220602501960923279144524160233856445296121579290391619745382377766110858376601671005244270005348413466652299052205224374751390751988043061997378564464959365753029096291034472735823405437849597291812348798688217179768542047659197001665844906975351087967627951161864796182304270207830122815858548844651410065911619097704565508907568226879590433125391511582122754654092407763154538530598532886988383279021279922435217480403523259400986066354673650389246360070164417074248043872669131882950917107343057261939716862425619338109202245677509993821314403823267870932205608662600640705413561409454317097752808821840927926907792782299414841599827535296966526063250492121377396795083905764182455446556675801020489717238793041622261580591217577329008781826584150860366807086102348698827350278404262452832821310131863720057314138221684284916592157078742847969628523949852833085015099988436098812531842379187076566530720474298470664716302913858563540933632862421395167264394253292568540751278044166722746981825042660372007976561568135676208292925533213852188407811761071933524719582700118019960010307426888397889774930944353728919671295219206919143595898090309951098300183141035581835287812632289075120258084739530805093628570768264598605867346602231361902953198836947241709792998885010545332664987527168741440589255114423696425639494532040012700404796499681942444632258006862859075646847463944847833221313681556360346673441009920070681147067335915975134545131422837526359386523239381077739912870437104678745305831503178529902794432498142719872972402275261455774310011738320579020148196141399202607678580488801476978530394885966118450465885834470808557526947696910248486821963741275982347284633487124640660558471888591400568100372137637333610163023706948553916021152443489513842179757604182545277908494023242934640950526236455409885964140190574435870426734808086869246047261472590274273385945063895507249533636283487205348638901592305545640959021358123105216452439368583736439757124806214907263681871637155192174855415589666347088666721289355205441941264478581608490837459700004222365644506176464743216814104043268211711407120049360310729201509792739125036979710359162694784950193603692158447646182164004992387850619116067747536495655158032046886715000313771571459824621941779252993148354305206374879170016098087961236702986764922519466994216186252925135189000644785364032664905092935960584270498417590480450730886688638687349778766572418083643993551006784066044835653933825308562593537312795033861317168087244363365559259419250709561128450548485313453654164643957321097991948577158058339625373783353578576905078050600984039086550472745203637477184459208945622594490304925450055595220439886943644966117430050009828432905143855347265540812092865341222182568507595008377059993201673810652347011127682312345231003945835652773474869530220785018730976490999748647986826998417652607854287843375562455807389691414530317712798884700078081728954786529194333350353652924232033046363263805694177076367212795198027485658302269365332446033740781021825808205049804478403335778693392680561699172364830898258540512783477029443085293194426741908956347605907884126360385062192773433788733494729396947817337941263860783892488435744636592168170055563429645912972840970293407959555751822126325009932136612237360182106996503168904697409501884332814664599385016382362468824959074548420122487383450483915116250427247494473675762200474859863396663798814072007842587120741081519382852691868268697985649202343366987037132097806309169761726486329336071618180814879061145301727304704472512519203986734700668236444607208494704220971315670564621657213780796545647229063047349340741468323049383637848825182960207891381611061685845117009536725703203508892251492174500432663431798971925061241997546101575365864562814176948075620721007291507935861730288766396459143697926287098566139680196400050685711742522957039612975734956836146377365625896806249221265131554340028941337089491446006785323526139431078725417420132682371763304524027436732074349343280060337621442897058216705503751890252236995992497533177512942832449237948245463764942834551794627073422989990791049827491096710022565350131853735831614319234864594048675989354362580792849088611474437753438565756695423303388961687444717393029994522443063576448939622104939157897033133195546678959646474605096215740880955681410680136950483308741108233983701934959373613210406038344316263138302188929137642696597210117067793910416165598304855886401517924040618892107944129187253857181827073043811199447469100666525056016258453674926538093488168640427281678584642401575147208250329583135314467337657679323154164189207511299127749449846653919239705607290523601326076674846283535746627424002417630435887499218942566559931692663319171032215039407799326947180136400837583362332843974636834099437210355898628066593687775707877519261122403263821738019274094817391242760390314893865382228900359227749265190416854999554054912033191808274894308843614686895647372564305454380873093974974035842671747305815407169755048132105776156656605118970516019339320494206504674579310123040357371109223688060949198723172523894323619401231687730468269055914208895565821815663577129023421857653829485136328537313536031790310055954324212767127073420475908720628749340987738834028353134398209205994313556547447563071963333243761388613825384581574347619075798864680866400531696737258006614520133555797096858493507344782543214072910094508421390193661087815181237234498467147619043244384815114139230670584450586580028859422754978369552860518925291583038072719280754400647282789878194587396633881313343063731533878259950845858830698212950014369451223404694508705747000393741948278945390294289826660965491075662706676973209883598748938351967874120571708773601684792657334546771470995695566190339659575597803967969692500014572430189642149064679834610727002019104426207444127961877937871571773375054409673176630770695604665770295013890490200082530276938806966296646902700641905387947628477809783464715088587868158192537049764381996461525197962525100664876532863358122245308184155728132387800002149839975072949984235987991825907121557863945423943003030605722043629735025738487031750858533993057124626046751961046840803753730425300958801343053237666648598619757866873851103009990189861029666762770208870977859423108853328058146357323192549672688691558174705089328514221122269624410693020424906676612599817615674854047585264637773544338169906619286023899407287153047646705128563180730930669493734647229070396501608138962444056385019936158190225168975813684149162333140533888333637980769827310334517969818429952073436067072497346003722400980606805120311471780444736815626407151290854724470224306439934488654006315072506027323843604135264774639464997269010447992042354394355280539996662579980500994227611060454013758519749326039205800474490272273550887222100188187867730281320303442363090517544805224595244574298114247971548351128484901404012213705999929345929707157592886548348646705605505213526244643836292609730504283599543653297414772656163355062032898346224690803398991825588354846945245801237370881908598466594449190255747995157101874189636740022957204963060042556704476956340147511062995683714485725651226971906686390062540314826880420365346721223378774186050411626763269537651409704639289216989449869888816513425159479605208947625340216309840188458710537274253274562655986429220348025784170824231087446863075434304479209571145166821134258916934155646154000722108125968635396042187213083206906963227351102961485817242925600957184216541459870191045878437330620858840785488358897497167173320601313279393717814511156697302568339027103382655439459361513395181975481727393649864317877783856042016566891765516929251565817356189690572352512956339371845031552035911994904816065557150778427200851088620540021742948865642828049222433549789342483892646636106165707495981904721783969476232683116255439224529305304305043236031893427028045354869264704706448614305702159743925703281261255881319356121082978694888547919759932477986345788103094023094876957731005421183993631661562897350909266000769523766851866295763472435067778527202970941821661154287440827549092332525244304982941861565360450562239051408029512620609998687757475236050456714330958211589013271574433035114462969423388136607519418183205524364465852551466274309230158541172847227180062974944480905204566101519701313426182909222693127322842098690048662936800121674995460861914043462498650704612157555150822469779106826479215169933743472796296999540436490852349123535439555972882403127404750995472584273281338798142880026125513063482281428633814476252961285592789239244725553138695946856490986230333021605898224379701532293896646017473381003416287830742614746614974342200057052796482528411940044308262219777571520913450753185792544914263628546291146757397601650318098228471892182960583170964028329651761985261240297145848253152510676104150099100996652777135048505042467775201097418983128454805234813185436290386724697755521376991043006873970664956017387462930247603667940944416458452621525783559432343014159026721196018527873740016195460860108986492935538416232151019684000323366318884982879216134218585287051602490035401519983999593540295881167760613764957453507390071815748349556633899806940387120247367562962155587169442236932699569706239054331635899458217230109705977341276309694061509335201372961744462718262386625527952982281918339334202081513748001204126784139414785973963516827527639238965570308238822282093450511579612727921287098362447936163863561923049886462566442365723522457805447009140468567707281747249766334050570946024110951967301415586155263382980388882234054476140512569681952425542946572952859962930951790448407773241877476064537621447208457485509045820610684740052041715119853823490064292197220446762717887040078591455862068197408495987870435346938402228837622313730553447707283952324283170783188689741194770371788984205300640677267101876983958562275569079327695850253567728144491632803961017651634972947276059400540121639206216206995231852502377319368243537417750705371053608437140506407796369079828597340140348836131842271417356638352249169747846569354514084614922576313223322704574752690049643998316020233977043612959739498475118394418490448542777094497134783230483446876313877869447822946173508282691297954995218102958274979482098293533467847585057979836446110427867468582386632533615424942528597339465886111503947133560947060200654115905841544995852154690322362095797957767399655945799930059610223904092378378542717889545874194984909740670623226724314258684913515348056569569633726432340655278379670405463912458247192160631946571464505555126435484004342527396965824815321872280776291699127317033683374969383057730748296096669724589171184942338442631679761546893234519298768582518557395444537781593447071708605965069460242457968970651749592600976299781389959805960939381929066729258192438686072869984876996296722614509454090947812001411289037092710466074260419886470740301671526908148409230737846230901332364618919100512098209975387222777413266926598876070290537952194139709797788829737974902513018642802960094970860690025184806431640592958876170961145334451064581089036135057792710086112595236499708231154544901976143958604537401871252056254387946290995416049577506529163436021084229300075829302756690326407979022736922861906349740271930986333611643596759679211815385368894045863216069231994776602689906241735454819315053756122303815841745849294760013239958838575082316186304586009326506951464780462422746625263837812471618549511741051004636944456355799667377015156781718294654634217414825926479534788500788902924859988708040212280145804107287753536170487098602873830154464321683933413496270095371440058142849899577611807255637448039505065234971124900459109453203719490557123905055731181022292090703471961372601941125830615495839562815102474672263502970456522164651416791560330714008147191543148665243877864515753276067845383772994583177082555159663620176678253078313224028635531040873639731220879687982139758840630401480668876607973325963404566421079079687512494467877983150322261471790792667610915810532318316252407293026761252435202192389822095827891679938798609353035903608536825865727070278121195324241314265773585739910412284434337792436458651551310333992183816897753598920796365770008833802039026069157079942222269661310158465050531438157461805612749243758441487863938924366199355962450638181658777636313259602224230046111416173232220331600941254177832176481711166518289000552849150123160056333815797853846238598085819492771870519531988155938628949303837381031749096621259603669056758203486756586149363162444682163445050932665251179522536835484520413033925144571463387873605144563861299339310763213750086736323723345717586066072365948800880484449638130551513824628795925403866858405725766408209382601916124447276540278199835298783579536552962263693130498578014571030356636096587655470431944149897274988477619997580552290952054505539925395350845090417333081593424839695356924510263009805006865598538694669485812530327908721969066645204606820503905714382516258257971638501118313214102676497541959808860602187133240099505323842928874068240088406792607730713608418057580117384808490278264552945978403153570987795636319518357484373110839670614017746896895399738513794755915910643817313895868725080605007602263051505787149786737625528071901930721300099823366539141453261458424044864178929411968296212489629751847355328859161227068172986364861794643495397255693116990968084365619690578449568815956527630908528853950972873578612718812960478933890321861074712017985653887602502174109508418201665253177887835171656545937888458723231660378395456889592601567815761772649047482388504779166572966456742695988549131839204603553398212390850323237069780248561349495249167715065650154990276145659366619898121726649482907592018167204135701989285948573816689091117879534417350518618943633307722983069811570276079826431008466765283446100825510822334763123215245115015945969096622634679556300814866759924920235238605340497926655738668854460084233086386168675213559603478665802657908431242111812572249595998721505772155698878277573369555472368057281005520838317610691267366836585961620792558055793983952786158380643503504937995999787472291669428909747008392496003259306662423053702935601872834882371283625146507908571498571857116360533686874249531736268636727505199239007976173706573012945149311554783139421929192051525926714579052066418076413819539747107847138920465447350931677146939959234742626229309332503528256666681559441552125232213988657177837268797280893235049907298217143081085505457448091391257711909802199900501384616903207515783301355956176620476592664222984146204696079117465749641841629759910799414516686466630995492246818946754261833534616850291032816746202625912360721373360447209547408484418952610422279496996964921606800891286618860634304218530656460490152655811530214703278203272458538665877766791221566416306863302337941584336113001406097858588387979208722430416462896864214227597269615559222532822040654519561007570208733417094796780700139994946056744890376987750915107609843213588667429234583943171331877616238481328283549037262166359967870727265004617311775159925256447193694250140934891358455941583477214969815380957275978223599374907634918968693168490105424468265550576680480865589473340505996129674815620397067752485116724254001032123109674150167428697208142573448633910144726390344470039265983777801533251734401131600171655738222924672746880039104317748634795860053703189285541960235276437394101456541808778374139045787206675717680832392600399823507822711074339502555821355330404369944828083851417566067958921281186927920657817995916759086987550899735949078351577915748431660007209588197901542892278691377600492162917672674428340572546824955380768676436832084809725594569946525217857980911774946802680435643115913402041821077140471548174906388383883995206521445633824664282599507407762938840859192967246185252453727284818601509868253992571765528151914880805018256916880565769692051923231104854761637241059749649262278801664689285403049641799326129638255421247410252936052631446555460161451557865496855161520964199618981680114131444455625473620883632169385391161159401853129751855408033663326409326296478572291790116520335140519596628171449680545642157129806320792540443312422991495905476881596809539923240374023110438945693212689440292282108155251030154340689094641517610521229063540403761315526445645304870464979937665087503183842303894853962854851475915599199873538110349048577710443870475480414623083372115219936336785400605097806119355265135757805518662459230909825369300754652341340829043802917615367777696656698089413301560154273483674958845716388082335610764009729197469477953515561985230641243236021367160513641393434966908909574320842693024145729546052269266645089180768270874436377320463612723219838329442990196425716981984286869921350095953901639383638381826786910190562565259042171043129390694609683720945334569380478495679977890060199413210463027935019741332756221606860430532551380585782684236126676465362128270071390214903313951582711362972356953330912025226406549084359820255322741810863305111526617906115799787575243063147099678374410108330989766632369765515030088466911068444754961909825099830875066563624007113338223608102848195785782601515810947054540494888451463233334150437295157591177791770117270111941113063328223389867137536868222435770280199706950976508694747938982200920978628089499199276687136404080618454333474243879558705115638326396529866771123819524934232629328660292050156941014569350371639427423869618520548773911627483794745013360101531296132283079926699724658460314690602049199015923839972964970074939910205462387565910278165275311624821371673714273438058366779645862204102958335565221334774587342051999956223808810000764613498518458811237588585230575883222836954357989898717014255821416721231962916224616709271779687849368116711530327061789363070523323971218118285355805601861203734175276983311363362339060052020143333652865919288838603281597384199522342619898273081824229787188494199017016507631483215639225458636716035467579089193179608910462184047376642080425746909708203919223509354085973060987405594668327477166742417107858675232237927630728382158070595421064937358488900647810228004364857452834707792677464116223063946771063176129569624235911348358243905249565659566209956345049473373519943529046349740124504578742643321839507178514699901928388830850507607400424901396113626673830642938277390721473335546786414558783532207965811231286320944907176559542635455642157605607194112559984009718160281553520506656185162547571446519963738023805229203982393513779096780501556005935063619679542073911888537310345145264763916459285055624670524834356099671359481551182568109522051182283362041524274796581384170473266783271179677449826471693875101030368222402190299390084214771996396497483457650034718326511897189784021890591512482273351653310124791590528165397610869993438613016799678264727213484639145433654300986604616676391632498770530643842415819219965887301254482751296146423661011300083667305577241959114874939372689014136830256562157926148867714609563228571466080593648483606907332059037748732446496602305415264365207047381604018118757051334712019052641401192496383307106446619888711832201787774436145085470256130861594340950925586182444711761930281430579474559206346092666693373388489378013408230626523292891336896158911947399014369513730565817286303096592198811280629428809333223757672393855484748782524714405258862858588736882988576701713204101870052669950004142671462172306010659537685710639973529164950747187906123321640723705925035828851348196541190108301737974175767749035509953778394957515075852772201901066390072771160449241651897886044692534443010731980999052890526737140664852914567895968702757809538965449298721383144595099590410223885478032742290552934388801454991416105272674286202297056968007691024379702223338514716539497246482316819058265373378751967778501435816190259366172639335489926596792346784552251965883842522367070934323806368424428105149027034462144945391540227934457686274677337205516046986387174340711014805250254176831609106802781542166849741364286188698431201971734587174813260391007652832100871015183741862695731266214026188133519781703768773883924375951470086020570580219554103846716359274170070513129089253841302436865095486519735028817536389119477139513472106546848632316056062446838603507608010367589507248039545389081048778349524525428463774028229009764639424756185349912881197248956415384336628686918939334596444403777047550043031191759867713064194715920087047243042758344668865203128153704286361975856874379846090428266356104767294256468794383868374983402036101979371178358086035641217484593560395855312452787559521571965888475370853960465871496883012012678009759780771322806910334057572289519297265823974086150259855094430501565102351527268202387107420149004886405917867924721806706335966095357600984742521691152100295203798106941052350128368660219901091853098300571791562196007372206463669519519812619572789888132683288463904231349577099089301043816333398060663180314588458111205182560421764924117532639784490340105149040715407111326484299747321149874295635386278639467601464369442383813636415553582067736950047852577039547121151254189456539624912890484243448200329418001277326689853949478160852592344081776791065013609476268064154573445018124013533435693151326889383888432664900703757964924580364359414617297310097222604363136079109157501674554113238682154074056227313177576464679411792475164157499191588162247638290805254889019224600382482466873282224496581817040355229482243355047097889525010022800276254278353020331314754924347757882867554437898168112644890222620203212845004678596532274413527334242975093243938898972474178295360984143431815619818389707495576626049696305216157471722866390388666402186676835566164900072522368528932808336165695865365585750753652134968756831957369655790734383182369541541229992041609708098650059675105551835254299794321037464975060761821660165296595925947185830399786174284476104123887616736060634429559072348472396868817905294304518188406529797326455315299795370865563867876879285542580950539049321345641467186103391243650697541336857641740995719142224478765131179007317069760451954466592547501033718467285581211137095926021741670968286099065425344727164610914724220925920052642878501266470573398079793230348717598400556480639716863146657894484563836203810636229186987101232368585906817532481832331667886741859990482374223781212983087427761297155413153859594194625203919991612216156959757409898671604349708350921901347639378429124407701907186746136119265885761692507525881577726684131616028958093397595236939829305724222006704848247236884817046867770598640338371119744154047088245437698604534320111421455221737956107625885322379112719473475452991779825454377784551936159297396152565598173438536924267080400988273792502969764347625443303768133164439192507706422339501454492937444748372515850422557137772234122720973254894185440610796067943798566761494922420509497000167656925222992893274034066915325313202675156831717268497855593181179898788537085394786257910213090094872432901293361198984775660833095064225000318339486061316828524868931706816491541746910693190976352298522748347666670659313433837268317378029243905761838325554444722902740364899733131292381525293163149167094746694216501430503523142697168256094041921595179036755725551557246615302484071871576498548986886353221264747063387868824866566501669622977975412502619598892961066786492942053773165023389282051090203483662329247721848730322725464740337495274918133589014230922783662792300396073655446346117903201234233214765370906529380580445675236940327190080350021122658444691507103484233856028537948191706140841582586774236222959671492236610171074152751885097721822138268756748795543107203295841559163119206605859949164464715710795092381412883089848468164970486025504049677837355488633906711543394574011350621421592024051601907168653973463563949739499943813071175855217008264283883363529375555566778404793488330310502373454609258272332815202635438393266287777896051259694980004774033361765623058729531036569024899092514588015361693143663936934522669977608078848149146468697349433820670039208212187301791761877226542258646207613441563174568948796665275532000095852526325484066594361324468635419200136210068767661618271014670968457006577911909021666116049840421109312106422349194103785926688384946408583764061834317817514176896351623406036978963986569829574654233276473209620143014865681987695951695271163873609154895847264087229402081561621691430873347864147597036887392355340381345642124073734400627335782862393046507646116896883914394226041650351072958938351142829442925534669515478741500827650491269696239276190668498701717804888552785202509379580492335560728048831745777396960852965829036181921273809522521042627954005011143253934443803070010756061587492167667994809977248474813199579419846699481627947575517257617706519984718576285166903640607758585940845376836767123935929530926738103356999670324332265960840665190287515106470201391852093471702887603475488427562549420358536225119513003592181779790084274958961150675168991316023591479970471037650425076085636260521270819646899409826128403895139666162189883511268606696034483310243067543725245170741567937821292316168986827169054534113481471652006684183108519319720618643203730493162291992952097105574099598458486961516392452139092346594247532441669440839446062117046643034676107102614884977008559411063015378571803412337823841317993637195888026488643500228981004026251201547476715262184214061234749892904559017326707788277685953481191981989395308037440987333409433038626920594734239634179971867685303004326297181462044987657267667353711000456137113948534182385192651155965978008441196955461534353177639325698911944648237828696217988400838674433250013355387861209288512906199803452043836879465878082833555390942077006047864787461635727439933342385869943609674978182665860815063810919155008288049337492347945247379231733313498903264757658767753065666344300742434090514544263771487069580001305888543797788969155171780027456674308370585534867078914937973974005700662870131445824916647898403298031415611082205179368368120141917838228811011779853971281822731024059849737969251233185545903129652347593271721151210170953986218812179811603306623461461169197925773982062349641195012519882915000696573507567542968945387405073329798405342924583272103454541887903392501371124053818648403295298860664631107332698774286514209033658644913342944555025839681544525933396677990719138574420301988995517597033108310630077651494408431626691858195827128170762628710991217923540271171626479944987759669583882456385331702694737120614284841406904190278686190797186925085601042621234676346716391259316182546714367522490996281057435049323205124983201929244589187188554571951893917706189061439509109567275689640836284121479166525023332778059264188893188947688115134482072494819241452448309511172495418655372224055879933596031561447224347085244069521304443160135682038114691118966329077338975252985916445761131171522097404314379424162528717231868902737514493175521690047362563948706947888823673560949273387919518643341287182927941280054638966337728934494354285440636437627484401310143810603480020136184996115434709721885241672539155944502379546799631420701817356196018192070501825119408934470872607188016692661664406548559606734007440087182716638483068475148106520341170600540288878629533365612995097345378783858473909345376949898390416114050608651571414495973867634206729455582382296224420415139382636371661006883373105241660225650552477964154727046704541800841030065363767735803251937393052346730736692761469717181900250169621225855673105238307270530537532731745014445870948048217632377439655453846066108761412822468751823435439987059786471922281890380720021164042882397195366854469417021394797150948802031864675336880151214887517920429734269008178719379028332342077087277466526000783523795527798671687924297155688202338488362581140682416665740089160207558345370265121297780149893770087638017096278267334621190819782060581746209645758502792489861638013803001039830183315723607383554185621265886629298448481413859009945070593418062360436025250379222574688039271067353824854232750086268523142945571571875350085822089615552891607174376221730033928469726240482201564206437078776448637877747139085492679173440071218067905165856307238037264042742037245985434278846936041291520601336797812657008251056155687872845166520404027685517164822415693152137870291962288551554093204136481400556182204253296312517807368162509009928414377442148176948195985087732280166274807491681934751455787138219536414923899484933667458482988499875390717610994038461368740855996668852554201137185663061362483007949774440116118794578707672122058715846059847182990759287964837869750013211297013239995313793805002942768848379895753520920724832106812177369723380731184962154492182474684555392954134368066195409958792746669902094029238145146233895158975456379464985724905707780318174204936438974600101966967192071131928010235980781808600794710559165750813098905201647690147688089153006102108104893808669149203275968402188532817283665015673669037115494545112929134906434004897500754574270202005061622591823447982525551137012697523532208748430857023983546798228700998458288515266673747164687762781304426652324102840471480006679051369215978277805727853154376123627813769958062644627527655698111520884239736777324346976174333824958001765873915834878174076134135788979444565437289875496551542341393212266605491429373822300346487137532109938089722961096993782571428009553845477635711069752176196168560194559684891357805405860921495447660595915932480469858895144807043468865890685299477069439175186414807103962674254088724569588076606677738546951991055385561159214200545284228097446353483161362414170808810502773469582225598090525708799446121138365450380079395205939005903555298847870277965669377869118415884348920860606785322328634179620846090213826568679748957644707597304256888454274644865547967839645520246600854746435634990873678339226505950213956090713966498167720436872878993243791063287513358640303546505324659619404245761291168226975509566492481539123884682055826622335756812168106484532649058007140004997343103575382640209545340896358995779601102212088492141037096851536025530003306359353570109736148224149408909354774092595609715856078974229954702120538028007536148602553155005887251714918713720998824281571049799505968135770425322632851883843213691933133839673518663030734907559407062631191229814466396809856370508194988348216402583147377871250785092763198830786417701481897010394314481007705121853818138331389866998677696452468359422982388290504169422694480080148470682516615329659236134682597591074100776447520949236515593725363529387147951121649835641965497735073689388776459856968395547370134005447866876112858396926909167933833902225884925279908120241979725017960038906387226363131595975099570304431833209214813739226405726134618245794583594362164333631704346010863340223498805422299265902103733258334824224088136924752067358807202241826370484787048960162240967193937913444615900854685942297926976302552335773191723374806799400962363117308112797805018108818332654872275120728382288233508821399157415605624153847418616593984010268440721090540006942089369235431990072934563368268503650300338376180825310628471490122201542291654082285040278356691892371135750640903829578957876181002703828448169820959040765715793762581844880811755045094246976424038437764101644411305431781060750420642917537576063244517434291823531162718597202169592534590437970536711574891995142180668757086777524361267567861845073547177942066349974873044655959394374828448782867631742139814108308198181648527305136478267251460262116735776612054620450335708367369898437462988415115356318378029528992764167580424109215096022367470706528691275933671803867643760090184381234584481478520496129209687394487223900131108087940939577132184751149486827635089140344536454348887074652796535559893817038169732646918384526252414281070014196933748272892248321238022167718933115092897735797949604561479772135730933065307972328384037234101626973076751523692825265744299979233211951414225550579311350917915944076937289129570536619887019858578420345585990390241774466137213903946555642801342037334508146092561405806295969873122755133360456452478446694758284608971898475725466319404092330261035078533347467551884565582415105474662093257367084958173385878071498804730499445534335946745090640546223359621361518851872614601951418794906181448184681190999195149533212065759513844226294025351736121428441868373345172511926286031259077474419064769571963093754619878576181265107455178522735154759596647389401758140894910161609966519509272512822946804915842842102807957854860380761140231734829334935944123761496351670955481032813809528105157392531361267991317142209078978718606272260887435637396958721917700690385483764357521793878982791565626300782556532872960101913404370543303864695916935374414854177711890325819462473813216986357080377274732035820680621827009161965379745322222723868311956372535817884023310730006990033005495679948975589113573886287618259811275595621809848447375873204335144138186198283364577593221719054077979935004276762188907046867329217145649567913221639842378952871165427480118975748135395448778603866577452110223027531006848485995406431913274025641446215150276877639883952341392944474816035256667951473899212521637724363146033193636910193346958599651786683872678051459578754310981039259516564448156168815789963085046297205018707679010575849067887757761614170250556183505815058280551748957178398973988164740495723032188188100239349891737526330402376910071236293876378655856333259854497707281441655830109839646027514563569039991333075431812654620357914402905350277330405503484566255094763336150316540730162345215812677527366145831794906102120330529732081047626979466641222960075963202634345935632313291864308797650945523874954114505063736433272797878687133478487991790465768449999841059861764745483718306427573038137534179350106582898763649868093879378715886780134848164659833541777419947823819108521018223704345776243071110054277418618131010838434669863747154135171173589435206622494946918770666159363855329241086510696577206732589838206250766957731946298671424891792665677323770942614541492559296084354452458175820907577993110547458416224329779633909653252289444248004307573947169972782753934777903366203025162594586555362829411596365028531114983893424731842097272878177781528769211059976775393835011024888235737818260873940321259528365279036107087749066040853255549574128818953003644612012505132099740895731926628127925192254590939889832037446171315283357494490003944125754043399142599820100247488194548952920332315048915464120782084364747132169954461080600669956796512052012168464009588492575806496301172280196181942424907706877025095605182942907325915265846707809528343162469567154128215342173102931409347135075466781314024902302837854634530419579933070768447690673829534473372094818354540079601806719658915629971747219979935990832961903319522896524715863253319578044755609925567242309602078188067804788032089788870234564873305141735457187920089292944132797705652228180849711660623627431236223669240027776914131126564974069019000257078870634099449214994781847283256363838685430416882540929322386562940960236978739305692574218047289734897431363216713134890718733643082557935972427365530312727817316865096626301878636598517059699862229782714205338109444943719014048828893498036368695916056529365384073954915127883075455268981224598433997471638735436570343276780014607980773256047240203988162679666352789954073521660252782728060794853622009133924903155348330445306384128145551779614190363702434681407173000645926133697601792631456963039428438244812584187335142700456154854708659348678869952576464918301144780973017087137499902328430489177864789183020918547075398158614995213028074135415664341335567752015782566455893528662879920561572309053307856695147517430706460655980525287203278807077806609131139601545937568035575897718521976664653525694191517098872311502113882186155622278327634335814737577386966542647252076245412252549991279332954789932340052606991782998224787742755660520668595185415917024763104597779512175573301314065989889174738480581192783516182489029941987428142113097815708478123129625630561933324982230542163183332105223652090224884905200549799961521722159816613115098831373289124825538538481843743449519560001154765265481263482649026983901438992586984259050421387379331167373153999157147413338582280388512843242064578116668919110731493868313466229287219351343413091437007395750133855908347296474550529664264492266652973808510889145312555244569061240202892006810356390393456998900540066033633139612128856967101913269198743702822680491916277952895031470454845629636783323659995158269371421937891193683388989737127799672722413559933393203130823141663278414425311027796476734276382793505362867643383534601593616101694254371300593708294994276126675969385490053666947991706018682648772872264936248216947914443034301532559439394207863377614254992631752553898028049268630510504914648398446065829109180637551388422974887543772786966598943354413456876044562301990559073795044037906295871243553592319842268038925176174841427896864825079973332026509721728344988761372134012728064040756099416417000926181122764686166595500367606743054498259085075597873922010341292390630752082272698863918579152311227112572879537633662691066931580942879859296993638803204991249260406418481415878504358304064784910175543378777728732298346020122035113054474032489722176828316731505411670975162611740258567452191065872618028954538030787954419147453136539412067185227238903122708444816131070327271691339903143881151047237733908634688135590816352524241462274471643462797032824866906782576449478373646962895387473192552852597205747832062136428753999223065528710819309471283023659512690421610632165280596056658773314174849345186976272446795991686302593439173512506247539421368725876782390570594776290693451475612869176469581833216818974462996807002179228906712956148874444873035090385332393072721163828110625523763547967624121058337849213249602910769103585973087551896765982539862728517891586706915771214650426795738236120806174807264241333692372361304428136440063767563677244693533612541086243399108147248661549915570011867400162661452554699022792813025320571861129729292265762254246825109366115572031364808776909088482424584137877658467283971836953788161289027364485621126568974709222396708959601442098492633890445078105555115610850552373205454515973489808959965445499347261597290045327075408436222803094225048701711436070252165825393823008088146010947096605880418704691616430022774209319253865199483240888740023837950316206625811907344169195201381832683744813353881241816355875575672605382118066390405171024834964804940068862943705131107608762961900905254710374582869361849991496406102608859154096872452824482408835267557158734016601328716892507379238202491433584508265540500284109816253377047448573403628946487568854878117538369950277798538628980253628696074757522428496139131541611315532069687781671673840098441303963275192645364949685204472773064867721681002514822746702003274259180624118566517748574644528006700235449561594195102510152403717029377134791936764262771617577122892233079718567470468512539831259056635724956158700010341934377480757863289080837091585164619805867769331290806102199781654049124542593830543649851734811316214310751589620262323543567567414786191674631193747216238814063972196391784025497496473143146558575138938718266915108987458892733043608697298815347235128792282473900038465712845066869316099381898465521865043415155399544798061198676257304100399296407198776948895885257330991840664573493667640893309826301903733364770581754772312514150818402569398208208296589933861427164354058312762147945245584060162025909963660714346421721445234658640052820328116347921666328766965429194069010639021910398528325681076748360440865870101058968400729446160268981680809614886052448390113301390957771205082663177329807190501675775423686252750027973764119934617463622038488688674885004910380934409088010177902063157781473430958155085629187852457394394104053115673138939036563741079540321706904295691992670404116398753801718376473381839099908388650318446238653049998505040405761933356145907124932840391637122554098896474393074695450438663131757148132163346372786865826234992463297931268347105053013215200821026518130250129056023645856497485620051878363938606175293593103666376399822166667654924288597213675795540161305592849192660459393967379478761823587549318462854640681190938078212578111683845478970325322433067278994033780792750973391976580420442611636531711642774205920913589844189996506476923768226642702322018656011487848154098754193987963125849105292939039598416250180728914999094008510438027475295406408057707389509583916536364903385410115360208368138683083249659729066954799784411067408459578101323366221142000040664381222487118715767996266481101816610855340806944445396698898098035551923610053605184534938558582842679635262274029522264568949286250179639469146078639693016205273787801690727430656784382733478967451944313215509780504567139205028012702070534350919059906972132082223379180801407070002311447349860312369782903362640299986131362402637464318953139158669645800502370034987236099031407654538563478856075028585504863000043738335422607898021992453203937530480045826539380362894580714594963688133783091299040734004961131645863125174286005469636239363588372073358204410451228011929097981267637389988089592338776501525222732914628571953896380816685118364254558875832245845138846043616864582513935929286626767921695362627639908948743607690835606082567088376229202364922502831459851529327896743978881203590872390453050987942472684424407771115085110303796371992587762286086853714704718892036515000550484358349557252352019579996923264230057030785788636028679079871844515353303182587009247041935181353354089843515390099186248612596145400215165112820573842183471866681249596315993408784070367813732136592604004000187933983327822669705276664641632035834172806289604112968134259069980918966036882149294928823753363160349870563834237275494597558694621679009991370881666525986609827465155501497913543017973715440505101688781864139909366247219904418941246115997891472937008090570568988607908745783956674981968232914378973444536502741638604200277942986068639237046700983385640491016280548002444733502845400545656152986872968632442159199764600258914050170448090307291753377282930618803221187351225273993031374269490193340098088892154335716630530407447786515715701214637241855360964715150067680884804830827446039724006255085070270560577122856856956503842973245321900715696240405193366854546919985620098654196738329840334617997653223004239178367758875403704869256591130724667334629011396675211192836290665828256234242758492958425415168901402206529847351166945130179498834802349295747711920842575529573273623778073960761465823539924668932634447255562529004848642623829059700839363945353448371081888992111409021542447603957298821115827733211867164025176978482023671766461587349208318050130607500680678924590982230123235241907807079820403825494936337801536290978433260826979123223395030070069879395846733645623711455101290505383024034889050017359622902393799744390332926590898325728066156661076143436019212775663619559709013967609750657318193462394939147425723052562140184128369840273519020579519271822417507432120578766160871069007825430329297667735105044510154359179134304150094765254544067485070102341973987396122316126980264731530076615017690244174061241646625830438980150230676720907180085460851881567468652753787140150735501931859648297614142426732715952865145321110502597896054929760944971516021556777312263656448486924688261247075937398283921922005506339837001382309541237629976262162006764048147559185794373298075596151993262367778244544073518081931838030132838946301766342601983655572094703259806075149547818732350837382062757146450362530547601417920149014019870920670533113038375408184049341383864755459467603164209282128305267104852344177688045572685957470995274877374173790888475677451587831607927626198422795550189326140281575964823944857218364838423472488994836369703856037438694902852287905176612427290229618291042431804620172299326750488205229224134593889242706825496321868131710654613731165404323591543466950948286257033100515592783681035697648514324205040571326318614049127860329210901623867682401662213050703587826281731550634595915239685484881011759783933100563653247238756238925342945903947152556917564935187212712269711841076504732459793996007403502425752765430482583858756102709777480465735708934287527014898869244369758678288693347123672021482969175427163619542020848604647999933870480236355520137962784882853381862391260563416891970048455295459085864968195465978218667026082863102843335238148456262757096293948235608482699515748665298560269345458080912162597461174155935706554247693723975930461177340639872033398098287933297631089727688847100415164019817842497454822803861106784014470517883070388709708429320890375310533294175958549519700246085354271444124877094833298097154898256449278555485797632033103218970977082619392162846832445526669516613600112229401796983868391569485751985813569700056300144816319171996623150253746213408859116791105826292833271854885136113761992218339946674881893298202100033454356245437831013865102804146186592859682406067174799730438857687389923085489224877659453437977837323567743793492061448986443904214045247675475941267662700518260576813551735693947892931054962225033212349118483799966859182658661408529111001273557199668655089284307974197342476190853546357205232139246586366098494152234360186876118534302629539916632571277654975802193795900717975181591093785240554526577771007916191416465653274256856634281344380790418770828925949017993011710807711220275506875350887101999864838434191609984357761982258708082655383271262614605555319045630817742594112555044935098272549420692241035619215734875850849788039271747365181304496113626896591509229200075451052957286891714916955213176805149910377606009821555591013772870747312033043127791807683407327920673635472880942986127773663651064589407495412120588837436020121259906405354029446429689449021954222239982861619078504234820795403727663347291064854830018684197921391137898514091420665837003575712163150711514957317714532976842953347942835134984427462417416791367646676690458149782331237863902586802913530976083395545768410792612568526850416042381236311258084528869335930236794615611312268865979508528874432407796134763893533066792735218130625018599245762809701517712363668883987796955492395424014137225805031690893097989073095735184008409414920100377552769809126225270612182569801154921433906298691615259035002087561524406964558991035859505841026582699911887903195262351668414362143265372476923841705699697270805157203006483368330469430358995572113758214335907350621245965455289892503137990622701088205669056972912722125063934564497177066821477047705647301057449144375202699798151497339873897955711934141003401933835538992454327415204525142536203204548682833242708132131410067746807235503771883878338135597122783064759864480342160422611233393895996861245254895625605327020960609667467852299960669453800802399257127596255553912336796559630889184643290680432143621299811737496400386015418511137823504063030421680104000486980784776874250259272930845137008716682842739174290678546747416295769477507680953037214800983566011629581188989621663531773561643789096761782241425353609998101749838572953585727918768126032967803621393613627489955774315608273548183012082079685923390218819559773266051344365561029442989823301368618578886873585600398279736442066412095738333111450398732768960132338307426533588112324714312237560663844710763512666414962238941666233631941643494748995874673130285247927384426444179027307164218693806552366862914842989054011783640640311133094187205428460429871370250457559846102772941361189705257142575832734011562416581064852609795410861246153998829147292907768401387570039737135435553452972288586227018860340647625216987475480343221983897624429443576362454101918607061546775449520518759507251998263167290499460007275196461036649883555555495267907937755629666037423411173353271049711428759855295075911250348300307305113748761724618183387118890569593184917494369760921049149806094310016603067023707375410921886447433396264750856196000881066439366083331325329626437615548221826243049304538648151387923625456538313915234961305264447243242338282614171745346967720691328808176870784511728247031905861183266778756439003336290452460732781601975683936324864872243050492283960049424192975865085419300279779351950533155544815587903723651604194944374471155564215168013600191521244578822702893623083566720638352522775306466934289061294972009384068160069571497250640094695599283496449622203132544552228362084909054365671512704850333794167788557048690963126499547086490796879238753107887683297344537005477250399567570078627732090319733527866986020311578219591858417928737984406403439945687458764455481126265180303064868436867596238404865016143297856720009389011935545088306972403019893797266568297660252149092874859631969139355561920779903185383108926411876457663723740641785008369377328683978510217764607217478444473301398807712891299958947480328231096865954059294857015463408675231248250830857743405867444982519086056351467011941605450636069659802236017529984020899255828999287271117794680118082688231308460658090042121770443197301696365735164653413073750966092121783082612850084208188447383512996271741545542634545342407123544228273282848529072882506472869571101128036533655633174665514371057401686120478276074816723284088462662057197606186528263480720479925711641510761397501961686166333484827656517469500442412628152790579842488463183545314462194490736851148085049209961825824506916205335636716799919594005740122652654348946467705525193139931673428240344774115898280516967781333193837752817860544955404810163179958930692371358264220100622623925310929735260802611595513580733254094889894903014556522574481789438426183528374259594831644460532204808616353153380717718801594142180620611102623654588411067508692365167379165540549707189957463686264907636205927401605428101896601753590657642952863258461743886432595289310859465784463805173283546693941424874968913636937812227933025418498601722566855173608061462528051955908980027742652339554112917474977690172401123532499858612004478627522830907553845859723114393272933648038498014614294389907824311269728184721836360153921460327902776348654775884086896521449828340314806554945278359902812145493423928286915654985509752087146738531946120399009738446133630698688651686964766857822404089361842071158999371226951691771480468539502567228886941370310825123550025894463063697194191309264265826292489274798672496609125236991243838789864751217889879361909549404500354520831647393424121202718503646705835259595488882002503642553326527818128238611747119126740311630989293752839488423503194525698485303517270752979347651870931842496958995825269832974152219293943548069511577348643901901269492554813293894868664871195630962027911603432095508230492669133328951953230244313561577985685499661169038363507169254836897516494971464027812421861382176944775279428725065623204815657376926774924158969709755276100994685568079192427270657784624719318446415238052926244877465014923990314729718733207008714948223090246087796777747359202336057778915218805328301383887088190253436982783682944991926116167108403872231058222768886995383144177420263936878490235019397242382690959120308873586589810348064113533305035472437749573611471712711991619144573352879629633135577283584610430765351713827460408563506000006510412542099373793821474226917697722496361353708964289726895820049472208625157602043550809021127301586015360775212344520286580754685261210225016387762003957481526117124570522223406918106446122858921478389915148139009041456964807496319432856519459428586465937959367397184256226918147467704016747183828661738742835343859444421730310472878917026558487627469051194545542393950107928280160998337614992577850653497006999498896086966248597402975879021384578102921581081529057570695435522921314139442647590287184288434070296179368295383444677258650454564472260268328844501099484095067727685670408920652000268295788773899274407312340812696979158946848508763590104111931132357395510264603962887264055744304061357991702456935212494049198172938085596052218217814788520203930810953089207679820932823984992215541096737362336836265429089919153025494976318651281550535373067343919585362300139266761369354979436153862212305916820371133003333980161629552951463471130374330391617924107500213094134406602162619532788290460436439899969582060296203632529153843381612456168797192683449614399048798675759828267787275238917985999002840486548509296578143404627467237126411686699876369663873688047125203505498764666644082540835181351965082241084956211844545460377804888324963713282830359605435848557331032390494408031710923717220825486323047132430831096628718755096282001532080693162662670623743445836574192082577585448049845837880432686760557102382164945921063562031933918168641565551247952918407678732125990617141309932439400522654594418715128321735744627977915807507451654680332088420803487740572634363307410209152716750237015452666579993596276414675125283980620536721583224347044742260449782534907536700066923970029568526557431050128271926243242727061241261550243411956382387002936211823269379885286955499471360621735259704703451715206432748421839704803820176414737278017627526330238865826123087680514696612026567744802318590283704820103343558164131195245366721154429280822965712095247958453521179948507295406344091932604009091669056147680526815270208392563847821269481105617207976392105668602629923146799599094395265708997425179071843671055204227622554020116684796207034973595055898457365980257044225511476047873431964727363576107575431096311551379665384648883838143336587364300510672026427602672253819312614251515523609942252974351767255143161556624101698840205836729631504335938707754110719022347260773104810198142948986895090289115580595132626080012779669664051912222792956780934047775700317857212699309720090405857860747949345279010693933360074390219623582674641296085565311304199881931295406647637516778175637517437810769555063938595571942049022147602770670562230677563775489461854014197195077102232466675601579720426035101564194163579226066185655957492541114225216698583596466949069418219038000882884655429482974422566079560890454372080246807901739587446233370955444606196331184506146880807898648055380619819755738508037883482137933195901386957656145466628701367412109451458633901570125258354341391308298126487887290890693701545913333625166133876284365920481949224075551103597788616669721092083280048175260678727116064565636314660909693306388264715317456576464186333378340393651112053040109833683224446345467181825095131248259510186354421622786407595978893069216306465354027889690158180256356354256678677329044490805046222285241527758562356240879059263553812708658141043435777714947782380950919451206014107625473896661419075625483577530128380867390324800467004898381440307765833295311391885886860300710942723251276579503809135913351449933861713874418556075106654059686370936705944893190361677015251871569380826456764212247984714924587852745208443495629391737013165552498161581380605212102955004637462350954408245445292361801551946942697089738644821583890203912313709208741864944772400442337522545492939223115048540658327004403846573923544438153917173058258096741491882146838542797652647091213974989105354156180578271012425605488601809077302652247090515728641257880281221897310751707399410783454963207098890438209705314502029772968808416268573928263713747973928379214173582732947256251898436725222500908060559212429848077594782991172246139594164669963708907352990446294192848735431434150918600186031796167258560205487840123374104725784944077041189953319843890205977767936932672070359751416114705868167210066954992038854861174610154084753063690029489925342505142694333728423180381088634821827810958341436897119031601064084267416974806215683549867596791162874710571626807024752985878058197967891632198656419236602410636610420982655889256519827675124056776089228814434403109677267113150627111684531114684140983537815394524616332759297637356750096995684275432198967863997952982850045739286633338062976463266295481475910193960028417203612835549236718949724013358338422851876878707045237479831459229152019352953651082775232189022407759536122359346753593561559800661292468339538913141969530111645437314998191170560988216215487521991307974898294946744706267540352202736736918623966163628638911462831963180363978994310272349498856367615178654073177004608608009254194404189935898539579454217130220406402523622950022612596243056305885214156279062964912268219177655237066557245568584573273677612802539639184581753532288251461146746064501322357717863706929610070464982370848625321584362655048288467149558870833172276861130762021636202549919114585148129057963660690977745975787747058964012624465038881404440759588705930935270575225839408685535948628909719097595576829382532129923993075167143141611543957969738438391232414900661169656917935907117341434765587134110314246132816075803910584724149083229426727001830979935660528259585123540010697497021537238015753097727739065199845472440622861960284992298998107240978314352459664975099905569790760959941664069485285305991454017898124539546911328367946526200704555785395959556647873257102607780249516778855012781733279392681550086292364032625292221653487865268522502767839525387481848547368900301177194032827198221468247794928170216535072314363870658054120779429445015804983686827975870106139328427395174320119232841519052333640248603783458034873015434310887626726592573225024706575184011646812173419484029584663485512364946109097578426597351858694820855444277382586817847852853268445508459074407388319116806989683639645387291592130202309572500829734974363487260558534399775957573352980760293373704177520376629569203928704693233277954251460537608716127854117236047262206720320490567119417005077206820188212875748599765676200761800663062903074656030668354941294100549813971643219624750293595849535426762787793354968537488044366366493167578286613515562458748196601415321269033865586616350378010456334225555639925357496612637232084496495625433620539283730756424302905392951756392297393808970600448439501632224460022050500066690203558613027140895770279828974549006886024589914225218680965417279229769994881228291366353503196984661374414091343795057731323051993768593641805205077256877407940169429553401920170716256585909380941012440010310041221490235551234272402211387301962810620491547424859427038794230461789178933615420640486451733314478964451659436081407077573314817552828456865018604823698641531959214488566134851809593102749066386063592061437652413436715065847762880905205853021871716918561315192055162375521315389129159563306182398464138696518669942585832672467161663905378914370666815739760123581538928189216797071072718445395950206634410410462771352993918587781165255148386569063557779551603701283725345656869456268815627931818057699971403555397229437894352951582945136116423866158618014137897561209485485746627172461178473442584302077852224277622970981580269592842405898015422757273554868008371484569530587147914076116479959350985251911635116832531918815550020859186039882572821670339808029064649568335316364810410140542907928068291119127697095300080471826551561291592445524897532956595443101748800391933617989014963835006475188564536933922428832682933612470888482435205730820070138963668476371818463531566533013240928686946351999547685255082169038255572517514795112605242094638038657036662056061971754783906149163457451139963612821807315911678190661996988128879460059959407396342626640792645212693082533291698273659508644864122166167916547018870087493433858240659902010876449746151943351123941775563936326479615828412672044795844399400893418791620392476509112400832650677626274847999774482187269793075680161866270813599324643637469257002157106871939547174653633124410777340340527644007261368928753922439230696644639737220787589424164898502473306935861473355393429725117583941756953431563214950748155139055977859460413729182126294748367771333613352658345794343871689152561077045638063931512945257588895004723540908642594388756538854986623911161294037964093447738934143618417606946614122996715023565233427224697016079167946663641309555415840019560788033317027079993517966641589990840239042097299763243318152085257237555645819919725225641441183040971737238694333511883317731721604825274403249028395890587038979270314502923947677597411242136616598820468040067211104562721485589179673096767202066179322743519575453581541399191603606680766452979654013086689464088355790876364151739396185045093600618036137598167615515118179289361743362441608953051444351264934667372859175404262286039623335653565156108819423466717822130985830756015869884158472795724696593602211178214505486265619408709309868936216800311701241322437168612850564824626881388173072741125534635257378140161483935536349078288888473989277338614171750021556536617793509465611032921116299579816922172671307694693877443780216088886824713075492751250169891557103826750565913382715730020328525395610191187218028941442662437268353110885933503591319406619291462974880727935214494023896331472657521174019662543465595588775590260066277638540129113337332274414476693259629579872035175281603164010894726286880691423133864281630457396033915108857371623496786969353641863967658477129588253177893426237803568618233981735324231238257207207249286567824273126750737126939207117998858890710569686435001730152285101094876515320358832932186530936352675352739883307326146841575625825973293237579066750870557218008322619206336790603698926670213400925033370402769279502092971533320049835390318804590511496163297956397191990941041442534159578460978040482500025872138187138004534320395673038729575333354127307266470410258462737777848838475954828565637285425388106095694129919311623573003245934391312217348366067439122271905236107127819965817773461862990945285703694945915298773056645566381141680019726525979222045943445496181980281923474873171814109706863290400075069063944609933018832738640104443797998545290603963905006532901580001894676260106939481687137287373798398833826695426999917596255187434876513935260037636418394201988858233472267895641280495319670355142791719801544138009935687848385812595840395512134321768913912311143306295845217870923359165014770989601050703284715612856452018924558097675204594260539753177116285444975280112296140949565693925598325743741509091444961383008120376580990848230033726325069312617708801377341010000109166835755134408585178393782892219173319072987358275499959964895069511015229294664221752211844453137802640409095391497728373657467366168738585984568513191507805475636671831419631620296557455357341695459695018472789285809784020232744477273173915783913893965249584668274505999552171273632195102249048581248930429480771798048695215712600370757842713370507622587602965161585012584117405639209445862685332088339680924827666660137195601883684468306769392773815936687132891107115068068178833164458894547092905978999009882502064651561116085517098553224955438156330646429415793690706418468834078026115212109987352068787792406346997148261925037066982746959403189672844605651241093502681362695615311977044721189436720774906456253422614783970899526105987883997730032470920981774245930804338892824199077573917996308009800812562291728056465522589569931072778399525533643248434411123505070467410235394866734814358015509590137170318124045530260404697755589399006669400923071458078334311399731811290324027408036005491661186157490462612188792397762377148816067908122783512155336635392190532996231254051455698697727171532774848446897238492698539399251579665848885729460488897891743231909366225204076843069215881164719798559176770552877576842414784117078155244679914737472749121192942272987362220283967088074115492116867511453337645592587822198285624559466325038465464110786198158345303338052653977521616086119927884983358777857309862737225113387517363788514598138629616220952015540830550959149181945731927476302488722253580273323294899137512236774442967612925290632374496836395012498731343302822887117742917659590079645032476715866518726932705370146375093643255535078397800094802953633022282516823025913424213173641936891272125515559407254412038402001500174639462858864074811716537422199402016849665312105517155177556303809895698031227534220736465980561583817287376277839768061350827586020821654821844237371634423711554124505180010129219172574744813286299171913400858239327673681060171415066707990157462156964792342485238099782461270317101158538814539200054772062374390856522456153976784048150181068710401297281321523801776862577067296095295558546428077439552815524444247765267462504128409137830844055375878796196046473543707911921552901315542565407499524676305547289838796152595947452658342237186752056260975362927028611238231316123947204178488789018189928659313674151624898425036076838372255865672244095317756840815410761164655471633735361121304739496302235387924296916026367464651473116287341143871050326010047734803891466672191301327024463355542831735527200185834373927622215729330287033150664677632439814966064455488368459438198215228009063846724935379639076598082658142326248807469960111366632765421615067836984957395384774197315140628569532556147729237336134281428879967233508170312563335952087733216957176549227768623492330928620681272479253619220538586738337175308419220126239370790841633443398217542943110140895099958194451649669103649568200219601616905978177193736398819083114296400235380740632102411876135294620540780760563169666948948053670411999761672143303866101436080545411091369745957317904833212679065601864165044437093006323088876834909591201461474119341057172377805122231967626624384950282744686719196484831037167113505374447574312583904670722612625772605878004253760743141745873082925622776224868004356783172824121514315478110580601697342783871521465164902715736856156685590159621815247214908494770453981333594604873042994110632845284322095973205516545381333329317501708556254454959899680090723323465095033021768339305632841810404205886397960927255830303060656220573573692807243426713493272772194472980984788175177903186637567268999706603538975066030633105594311933462337687330303977307072213085708111742769980823775969130507511227490525874192879180223110429811330973275472902552482625639138247216534355666144675856677400209048508928722162314913475154232538578581352543780941256903481362246581756305479401566748391076286593277934458959987558820660369802143851661342170692348029546077701452387504675767372839120658382824533832194174298456477835633032735572233689515283644370558802250741890813308433997206600140099685867930405127326148633582888058149366528000549148406599404255365391177797316800652426221983889074421031682869777324456641163434989232337221310584257075273445708011330246251280807770430777449601188005339178492862934184343876756345761213933891624880972266851146909008266439756763813309033647805616190848467252237002121685226858445076694732768417286466298556415785619147997260832971431573072405050803842383769275538656892831864210438755824362246640463007338773737549955251915106260126176965984594596543949784773020696562420432994839240779240875245653858610564520050453883006661895763483129781616553055618053284514347529889622373382165234159264867682825424709120948244175248647952280436342241764654995507811768129550504557402220974593010500611724279963814655123297797660648959411683950090088165235059599524571442489406876102279565627109093095044419923516561489349746743119950823386864117545267852884782236812093215821385543110856689457288934598319233051651387508733255174058322529398307276906263370195361661888646234263603734124589805241405535860728473310128230591091593803866554905196399354423283324827985962374979729741668710584039729714033348402284705681717626070280858180484954602544732642744356942550802756105421260712186609229364060888883577029769038214667165965334509572598629499468202414351556797394483031894062684146153447478774055522865945092931571074228561641061557393120389681916625856070352748406963946801092528210212506006120184265693273812856390465569124503708836051947068443283948007357058640617223186643560982340328801687781402652525431955874482396214967220238587279277793311239948760363380516825591245281936228004425694865721880108518083926591444626891189231124213409001705617706192779038541490525041724069901960017436299039447996659887108972260656062798470508841624731468302133780152634591569498470584804683015059024806982845275687409269179402535171274543302327486440606609278753791134458408834103962795336620593748907301407003111047341636522668827136263788173930567450583161855212695840259962106029978931386502729570789501223269737830373481030169874066427401038188016112439987497993417283619970051253514384472947186372677378155276689752573121922974461906470182401372350222325936328870385918821681404132744167227408464575283585228210387784834653158345592747632114103932233714795161513557899226368918895578421902336323217517823977290381770154582001074034478525332604555994747180838119192985367058519405939624685481291557477620632046181624127925443386478278497868043922274883305957213676917693232470480956165730543714288729518888307430216099896098898366943526751576449490681066321981193578577297030559516184216024465132635599944689157317184842370328203339280299621487921368098499929633707091637329844335441311238058312967818018071783071842827389837350927349165371668283982824688077239300308609160765197972147302824796790947814797847187961270095179630751068221275708298878610418876498769660328398179981890285900700010192041433902629080085243034659722876950822792677780931443772416733507645341383940456146634241782923369186249827351967892435370030130355137846019747458831019868188419948949552522205132156506469221273146059320660871256163348959849250858514870488396074784376971744064377512528509537247351678340034681586316421404521492352699533993570645002608532833497081107690645789206250453462236293110241388064402909971728089639800329155194782954078677653440026193398189702100662444702591911826288348853542697870022939412560434837129958347861991134018627394233700556993876266218491427901596656093230123189634841905061062785277207040080306012329690855699385155827245037020854632831741723545295885485138578350751727965006077424546735955378760119360162663305778958872212954239467577006637367583796562448150850698355381135905817650215807874176893302108795985160305741261809480282780936215905434376180722268620495257054172265792959237611027195659652479303382394909962267907907191375335746100309718733839051310831547167596229593540797778565477188315737565456073089750350326817570979906082730411586988664661188443255774173633431288730424153537354255768400115033161290783462012393378403595995592112625854889932794235409598168423840225937358743211379521596729608660828243337837941348737175734305304985053029393722584781304256075113026665224015003597562211503901930187727633690194585914485973501342907464941357681287888113947419030238053139783262474526853443876833335555939030806651479177580494111942297045013133045637273425660503526484712322094154841199351020341627852483585511527734980899924725882215353986563788160079003316003995397198198345047536297496822368453940622887453222383131323175221877774173788680623408001408771156892439571196430719726438353906476740702617512043856459915346789084651431617169530884952470276803705633203426771322349519372509330164478191087772645475634163436853597364454225313103321813414709108036188800086567259913009753617937792760177408139747585098980645372755739090075867616899911915274061600027248912438027287110591531310026698928116355649655872939670896859960608641761776864012212054154368981299047732906575208714783096343761203117655410239668763409121771074425516706320004414942010046761725889224281577682912689069964759527638960091086213161426709559414144153584636662994920089975798142045077157361205632940130963589873722683573656929184557063737286110831489421271327652458894598450815235814925196375447612340174776718444931245229859301042234346789382765397017811249947730315378907156098320626359789822756615373301402389480323564752908729601542152595864326594405387887083904498356092708514051442165530042609025201192866589874358569835602972669425178049159631218373948477224978838185239957263371955408530892445827843234980415112674449302026053170985737686277770629015973879134696436534312176668261815219991570449183747967154921725995506028513264810574278117281520858076005075045686977712944428910780071609399420592928685348132500061522207593698138640529461788879721699370610210465029610342771600150227190213195596955276968829222197245254406893361212025781627711365676106707797870149152674674418843424250732902174048497439047208043210882655239978224677480860978942785454629451690717602241927211353176423098115282398651138554834897866178193775497173244940516479802959798166752637348223768408261249931929018619882201469947752736152253260026594040731430958535868935122402100852379122849829935925727109923993346077477696780271261075749459721618461924269592321725930572417753990683628226123364404376332480607739466940917485286113633883007059266545479244499838932894882795894990086703337273298689733090772995918663521588933014703946031472551271688047184427695768999609886041302107523238511526561275750923084358787058170871233849627775200900583110354740385510147969723829675614426265590355224052112578759998525954437550737609348079981528886177557681506861717964361341674068022637446973682985710462003048886148474121821405872091454519431880306173850512943901392433754185238000783574140393028771046041003120553667131149923031694525235975435085161807149342252142940089854476703012070234037303497202288097118788160456638450185941977537922610807983755602086738190406291275678827106220536326538924986904654674666580254142662579861005163924539913490605556100811219573157912740053011440551752869994812517918335490215695748740216684898882746056038191228444324191497221716212199278730740385141656074783387958001693486534478253665753425374633796622651674613846948261165797399069217407022380698814622688246894550582498740803478021670814398986379084544328515906137769587978201992767327210437035911108496667399771853470586186116857991887493736043913913216528619607917228766740273817404388039443901745871104977000773164019275198618664621977680605287948658688384597959551489553354001699294643832466710661724216490093212430726952510421506439771976307832732322736110595501796947647345348049012052539481113250415921651190060639466038465867983237755191976898960443811368007841403349661164030688866482735376314137354705784790729118605414007349141237879455379626927066664237538325503294574914163203180667177452958223387350779125489350582849204349759122914362807569512660811111269415692812468792602454151399431683914273466720363579859201818587839672826983038005297010104105104774089759563355232504240331764769377632197714702490759920629269526189919092138537070228658781208314640433703896725887401018262640911842768628647624726700327895632005566940627744040032528180734376990207902051330068702899482911027692263942453482446344717821861270082981815675612284295560982224660996155880538876484130339497407409878610041201315502632535211316570468094472822194455512194616905614531889909563043303419188105197549665229109129707482707471110185353959336762599957583824306908460581387767758727875913054971087932549165142288457134452308464687344205617811056238464381803351562158022988374222952532974545635159690778079408140387908663315743562448595245756286909833785010501464409873126261846247987804343124739769035658063824496870631951600904157855337505497000550082735655661728659180347667976965558908354166627161119839143007488704120931948101109468463051479469167306766179795988259709314942858787143526967065025236328833458638295897546495720248708490935709586396555674104943448344540083810496965890129598812812687818702249043689649364169703082560339873844676984598859384429128574595714619361989387411334044147425492368603006904559348335294370435752496385228183657231285505690741868544285777731237616443853902853796647244639921027729846633242154850375994824151418287121787704685820822965254167156874412155987799483707328259420293896570542599285507125015676306413207747089151493907753466324300469449398143456103371709138208384184022274558746559519749652304005432395200340586651580359535057670688996150677060447197550725118283116987245887540479617848064920846036045220875545951982169675073079572080111662619550851812847520608025929494484603461087001547694124289477572592060553762293969464349572029881703630858763865384206970306990115003425589238647873213732075278558426921728421562643255590650333550625718200974486888106367178208868361092433155907789606339099853892010634615661542256626361293063724723784119992910665165097543994994640783402491314635615652194858163060257027256614554811226111408365801128339727604144725560587773887417298249181382624330566035368005841292385990868038236064046073322544176843127236281819674787310772511729319537663296742996403205514281962793158469380685123341905223188864778321431475965173684681430796623861102531220213132762691073687018416487812009265439792345651599820312346479712038403713465917670643479313056315969657594231545433841059160938291412052551011733601506605355562784987218851408889903082013871989824696380432907201153257495616048910035069588858808421585792873935199307838926858586031071482312353860850318047264751912035992875348343751136362706330866181778874590542172638277969771414897091833884176381362356886068907638505978165608069692037628738159835762767277643148209819622639265932588332904068090608140465124556754310931851631436267515022924485714278568571630472636095084327116401465467741475422888511756229317559334549085600207637981963065647703485199818270748613773452806379385405549661683081017624561886669102421666183460494918954878711427257943409365449137680630265781897258997387717898973947507536098937317060084900053699047940969472352033072465819304880303815177605763424755076074791387063538574479639799199286368636181944154989652695099841764642694508991878543777904008596848764869634631167348358063551010912077697272668384364546819907119074996272898128515982806510941076191608731519177709882504438687559950258204472105468491335508095573985685662356814887072125012434261312275483470653545504179514367521775240375871050393337569953867135740896781165646114682479341057461459784169811572624204805251912863275883671464952922318276761651324360232524668948893815079339751576343019491413764535600768078323244649347782397436847634641438112499985118227373030402047018752632041298602660157327654957501497778589018224026848504204226129241456564622723044704856073837348939057149733670541693968230083741931502755092135624578994162366401495870737360557915623646083566986948985619211435442866994180265770538932147208895085671040005166720215618387333046950010990927436558439477102874607122159407595758344440448243062357853502282424207382000960646944912732895265845862711431918352540707311897245680200731284107872286865859152166356930964243087884994053116862904171430717779118391370751659185278592528547415279608462046138505268788929426828125951781775683225982056951017404671590744324989509195204158157442517174968546268087920288716361987767932131797975990036153534387296008610458124313348614842816190767181864438600748624074131091396420576841828218509966158537510665068552350863196935097934888268254453558352796018429290561319532650074507604131949375163774392398924202167514136254014079038550639895212337536120762370707484705061165666048064394795624720969333498181660917577240899157149142253009267307636496136055876804680248446401318202645434391672431586309195334768488254593443916314445110112939508187485229080699674651290751489869598689549912445097181476277076922424350206161951419096234121247934696630728763659158392579750754557634056390409179756561599687205137705421655408237118269736406836974554524993469075811076408989052233952742298228381632553913453714904926452066632908095296891807423332303209087546774690907289743761563761905302064345802936364813162939213892155059346171020258680709702675085560439366864978288108561827760531185458723921451710385903277998775664910867501487097444576344491334632307237532967605275776964667399403773025946529229962322876648069608599149911255444546188195991144685707810939384724929741773736823599226574012061084360937809220987984553462598292971313193728431527389677615471735882716021935613521008748376975759919908015569253980593848733558148129784682672558881429013487155775712765687516875240281673370609482988442423010331605249235978167929296893660101098220583792887177597560394460278384043901482234860859594277870705660011998302197147380970215466809134315718033411948533100270559080266144570051976797178518159878074526956202762822893045724759492703268969102932981434739011396341704917496169834530643873127308595719101587124440157777547387133464309884073791899060651399424113775303543822789409531187780710684856737199320995614295104359326586616541013907260978587398874526666813101364732588364013075447763305831620884088060979098601729673431877579812099670640673876373296237193171789410306459436820530736031673287994078931023138591817897406719594763497154802469028115782890935349566070900236184902121106821566627374318854768500645422315350417482835570872973142829466411853009190443466454835258522131307640576025272400010201346540374155573171366398234638211109408854494127839294177836945567993579108266088969935836409484754866646585099705054602921743604875472390129757188280875358754721133904030756425746776744910506516114291864088443817894605746667081855940392899710890767939594289404171385369497583987806201700557561259867013504064853190068610207157530509218619484630389875148256292573951183821369856395353303829602845151137391091526309993934400492263625519985833665416018081982518994518818074483241694091332495585505141829598886656395914861308044755936227341012379712119829633482891541120201222685379139941874227757136489701286794507851494733869147259597056613781467396559539481609492729316452202010495662306742010763701364697045113190768344862664316607094591899279203402771242373142882113932655065435878791555334801152029033373891959449282877717721019063123501002713454420412368035024951028223100641945223790121899560082003762579360979069160973439171635843355333726311531856000972772433210302125468399545385272012825763824224903539311698605627893826691699880946748299326705615922502331851651537646305878933116311061313516760511516280589173419979995673109825103677605370132328757979596168224347627465848053246391743553394710046013372604101170387624897511175165513231691132523706673006810467405983848440626611443925301108698303476035090158259814912618345181683439275817430849316055030853100110618331304050885846814413563142854992523734408900770048267314327994474147397697540359286836485517098632835335368873124681971495573200531250476096766539373467974686814536031334866655971100055757186964590325479693176911839241888624512838925209404932463660963057477035727261727105102326939061547510748368351140999961458446180918701391471307852193239143621579393696794807767740880115812995164279561404522856009563309793746600314889654773591144099223146022798432146373343463581885967968171284372331597991183393980130558293706443701774245782333325262132260022192265742745509344235558872926383598280567112092230676035242016572799859729839299344798579681044118507525138909123904477784383649320559694428049146213659438610669691987960037000038311505963110739280901191621813581663803720675466769737732066461504570073099947358868053376890713465907593145399087088503750734753551657349227288249002211405909874457388454217618692878203692287308012823328307688560754655684361574920818794301122117226092977690938378818641401846217066859789425509418954681628400973453786377995769749930491109027982694683754089911583181652490777641807748842698769575931823711984277857790973578831402994993772998937081006639720331775369918893913415173478488805112277882637623534365574487743949990049514769180394709865036824894061069456617427722713268200971712991485041444521185202578914387511665706976995219399721776583206690148405683766540861480321012744642734562569973208135268784707175265126915290763800366335305504011543256544989038669442772864916471439858346673348074740531241313969191946494880908114472594382801614087235364488370097379094156402514497026601203678123657579753086255175189706969210787642220992222776278348037787121825623641856565162210200917957294558765880404347509121286432506835192732955102508375131449652095857019243073923729483097893856909998998797896678467287616868206054072702738475856856841422824563893648896249940471616454723223492301223823423913523056123335652168975735983137214786238495094642581112212092449783517863880006606321040551251937118009374725205299974105592727895735199512969790363602517065650302437205587756560050036196393915440850996494141755129236444541309815262645780634299645008958366074009514875142763514031601609963739720245996948882915503312164348105398004819243116304318070850829403236532502113736251547320495393776546379182129682458202914766274912518309043531648734374523860680705354266682314532671484827111652054262643156790793691125617416819430621906215188290231222750594600954148580718291200378395218907104336152387090608464853470554503419530360343684361824590482192726051280455988692366762339226830592288298515478177705680397491373823311689421728234844536019942133196343980685654580961442664295898392020104996915285827040262824563148459150902432164181616603434315374878871482615070754957342535795756218884126041259274542460186565809584022057022860886069810263899923950746927188335861096745146662083337543860555739688485169744699397834569463893021610588795034246884799162440491918641063595278791130189579570905412406074157583500336060858022930826623752355638838520434040155512687430888930455953543917414321665368807798946747529936263196143076369359813833138513024227262214536194270224002168011959698639840218266736941027540697595255886659991239953529013563071584526239235672082484539933445069746691938846802733597287649350561371643501463112495376390151626233651085464215457079832881989599018589537622822877904865676605050428558364314263412589497424128021888386703978265648946581911350950544041631789959795307473728343571754478581773022877200847932338898327545112838255489365501941614204592465687738142552990187858122277284697642571253321855128507284732099371545623846256513129422608332491024214277504897330001151459840337219925741680825794025191546745459448818066895872370434889934487504828770275375654048291871958823159925076478309485051880646914674424400907915682501156083717084753035385893298925649918943636118476965971935002985148634461553136647653262489621752738232385865845198914079877959616090417347165530030135125302184252125559092113581329681906535151590046333349658172150558795559127284685638192015921740178899219085931290180893873006228255358493164880241939691309100400394859049884531728621717187384634534671875882514649910968787566679775205974231128298845572834916422004289043845936677697636585904879524696901778583124394723583036006308247123241751256293170665968152423070862041524422130401571020090670440427628687319201042721751430518922247478417817216708617232767388745896512927012290800301646704928918870337688507795492177765907310903368665123574846007045084577875656474571960529041957055107197961322973725818456518866021012519144107750359060237440547372542162061536801196457207261445849163443626336277426007305905777885327743636815135751439816774144150509124007687409234715189171331543443649170576411630499203701737387083250672061660064058175557298258640451971964129367389387169471172434749720922930070322430731979296866322772560905143319202029960843501995126531213828272924848898231129752030762784199941857988532979825250544647198958232454408698659482858869172125404398554459582308104031862992486369384917823784463024172008002100966896866904117182279988051776181267955177655925873829302483305878786943411480790770771179375140540344479923103327411274290263439944513309617901845254045811258927230285909982141496176573460936943184815590542639137131305562161392739998210495659767631807832848027490124545173493648517998251783786897568110035731267851274819459823453724447638896791220893816332886380386172568757736139524023753981620228104948522958759823826545045048526974269665353942525664797170893214662572115061553114134327762201312818214085837685484349442193793619428429089996019711051601162093296542394143549135986051556767453997240944492039456321533698382556782986195051153957617815323920084551514337619903309211772554355165597187151013001349371107167030607214095613893184451315609985871254858200108752622508054903404470786355683614009150056503302647923643423223419586104300749650164780083496835929849742366575367179156913655942471535553019037506917504221234735861081084259561704689950217830830800559518637895105313612658569696399056594989956809725459848895023836912302572294378204376234038531131631658200512722648475893888601326954950135857108440477838136625497035832356675623748420387671744965701903970396393339553145145423753858523346646509103375605143781720918529246665263180836880182442971203149544715356911458854050336034061584015852526541282926480411079646332189282700513003036204854277679676021496711729152911448062463588414233641625380565937714157172572003238906876491305198385581314198257016989852863413212414031139719388627980309563943322383473577993347623506566445176516687326218539021199862410449065501338892714983528125886803262784501026931666768140683072513879358268764965557060098713733115239469064543381394446996246473642719483045948769105534545391390777065958386353137877615833099875121391307063960335323940759742226496370700614410587154845540490587735233618498024968934608452314912386864916603906056741545931062056846433619787933328675816273536559915121016164893499219114646373073879968963651975409454517134361828319468045025785584596768853537494909290582059285963727964058865262574129838676959194107638278604396451961731086298392292375562147919479289654583752628540415665571392418731784068707335876689443870574146048611629323387935534756086770962702685999497550848842989540758746161941284702883676122591624077268766700450421933915921349644098082467920876638331960982638681467912935756928845074719894059379712194067244237877723457117469505056932990747205520911573884984022306226426093801376736329181437025737320547867057722553751486066777138232933603178771152372939891055359589821870845790866557783534282885094357527300046011704225953073525898353585217801027600904738692716096810640018338392396357175944670956699387319157643832711040376008840954738487744794088578271362083156498046023791692255741450361133028165834263734843346723445472796647334230411701193936315572512804135498319827053176151886198220693186352928429737677663335255948542643132029296450201552437433895519087891126075348374054867426595408988836068103943815326254267020824312481310150419425321416436112530374527952812483124175317729082157457314772564747287764898983322939323238329786530561172920063034629593777487358562396893088444374605042594402638361244237364832909607271351133108654030942452541206387639631203184667716436227743342699414142499202634671707258176184370587737535475474124408828416260534017040862807905954219805300455776285521045855087965880612231026684257325482377437230382216320964449766608284332146885234046319891250464720040858761956756280399465018183605725079080442259083926929068505040486006054261632937555695518694032511649869348611467229158941396775394272962395975666902019947323979051385808848703755209160348143521639500636507108348687410360423285637853101233969881441553486786127852611118268367480319503241386087355420198930466993737302611952075330716804054675116700879119304034885194206443196540715083106920551546636978155073097272690172304281069238132533141695639788768567988476481751748713376041083531985070855609137588108202427143083671152529786988683132970132931177252348082388505620894536066639130804699931635759753855585150118757945930989522350541906768407091447405558000473697508124000518270074765404644744417370876601507558385563469056942491636874680206109027563104081369292200335008922164867752984368109967204908342823209506795122034019075806227792469703987458846883353099052784098402678315620478666546529923422154525639330556282118829800486963814152395480130611293450529512968264754968844371701276273852519789093795682582964977132953063201957745427603770184688450959259802324078342776951521525963155655919683853194358244121349352865002959431252522164787357011614854725490282761970685123035206148189177039661393929937324454924393541796695650929811967342535682165331691047528922048038366688206770508886732383776438250589320702948471441203995940402952465757004986488718852763406334055636321006593856597188457730054748010169876647184135447851904440777299028883236875768911683429768686260886084040591800885239881987155527465459231090138892678700452604146088495701218816210600442034285720477844681666698392857148918114070638614401864721225652176945368785748073219700887391852626087226191161995169755003801516244332963189182211984187887753597337856281496571259628010074354537452797418959224799212649305928160119783004915467309636714799006363812676353164163857851625080731412984249719237940966321037310812853559523943154393249635299070110028466397191129218181978568212378973056391299811064993088134478997955810731215551923061260079379853037072413470306778015343006734257861953907337563771401710920789078892437979264822097566866499351837169124836398831248926799608159776978296668562515656521857551923999651934532722860219995992405877027253775777744590871145783835576711152782866715622972355619074157179470329782673614691839673989509528376877705354197376298449467403601607021505284814837470260748061765921220699357713240739093847190132996524025770590655746865088435050144903130395724696943393931482984462771267732607272496966127997635640171132872741939188489641476206029421477417831268794077318299559678622944134757805148680888623966781313566653254521136249025497024548657513174063667975994117267674904946837611059955099306472068934618094102957844905379285166448401926194008299351174250218145158548225631334178815209422392061393824899231979257995661556709451158395835761524999203349542920438255453066914549911767136276706980801582647767036420429409752365503733689585454528512903659178269390362260949619219125378461790052801277616081641978012855300058185174593070389042683698913522499469802599987916869253203280836576526301916425442171714916306028497676359507167068797788661559984825922148999827599945432718542111376433548605240419142495656180593877020531452672901670087522284068132950105099165821527648290513222000598952238799839356776507459880422485463413031860239345573302098587126896441230763329962175845098371855715587895455588464159425157938293853844946655153050415245719423567542863653375494102248611311283513371984934435696850244871679613038176149440312443225358748852612332586809258765332634763835248761789825563753136330230802101089998394113507608001192137558086053591805891117745585809846935048855165811942710584974198893884290124015746187682568983547807688060497299677719020825268269195101279620778488781364591701488795148956325996137747501259383364965664179189967037993490713182078932524741059835607222858173165047042532400578496887255258425492257605841618756332311107490985416253059435431872719164011700961121349474846453277294210987997695365735189395107253908405539402252392813052656158903100371764620019502098242961915361767714661005404478208967011187633091152849760920304407271099405471851901610764098939073991602479275354591385220900072523002865791554950077430332644211462698807859366185717364021803343364070520335195280191446281489245297105550729068151460646168051300667373540520488195042932214248947637268651522661612217460664520999574860046250027718881645013488488330203925513563393234377665521590935037963662583571344963931242071424030943139139863565156003413490842310054929784349383830548598729679631209485448158784587551346749203274481337980521185071500749471025790935816434856771642806183841240873978371484154896217950944146787373766039814023699665601834887482111115545941368316357968216362780203294609135757182778921192581337431190848067155187781589561020014976034515562607328549761300117638912232210248656525621532394024577710156792107708470633092412337719305360851645978769705227980805959364075276600856766985398219479766432708648214838716821086257866663095476508399233700502483020548570244379945248799284939302818000800726309261839075339619273174450293441757913439807275544598111235120001074752702484446280745895604660862238489894332865963042386696515619327079252496423153357283339617388116631591608126332212442221287468726960594299803300475676387345844300076514883073482133052518153604964507724428413635070500709384631203403282479752652641343293661567272624824103449903524233748143724824136877325695462386070984093865241735239992323161080412100180764845388106007891293737633968881202863729401220399514048103733704034920745367581714964243167121247943477778224248872737472184680045612661040876724602742828180081999509827355677791649657486560365366852857576432611182095108162370341174673997218564655457036379900876171926532159011035061249756452172795162083765772668286789634786182935514442447535552877684756325397270148411957290532990553234778526884573781679357812140412721924848548298431184297568849430672276774854650771294368524267119851418264430911556552508352565274789579750186663362598465538739685519907502841872475455400364758775989650920406675302891475200895896838108998163756109350391057003069439955216084826004258925798298123851932846233706363922565365307024046257569623338181221123658394040147167458966577997261222840012352132569996499360574540745076433755391531027916633190251779312120467063224186712403456592697731585553908641084377234333233522257025175925579740334952616218345959940501781480536137210322453245712930895082016371924038976699300745109227523364737324844473147793876726090667640996856664187418503216821936590031084807027520281797850824410696418290267871810809830600545782061654054037354748110742103549199360789773053890931674641798654275999080242280128445775547389609586515783491185539492273041236639568259863225917011303316439152953689648081096834735328161817816794058341488361940324225026638000748822105361619638351711876089713407545869899433461001320361538240867598992780154858359072460439441441907545972346475944832977486010862740294210391874987489485313961482029874648774427552133318327257702211926859224885760588258389825920830459820956364862075850401905467349794262466084328946880216218034048472716432307687941512648456740013333442765379278736861776342960891016791385015147283916865057288907708615440842302277600612715942559463962954843774501061786808518719086541512327442195614553456525668246070351802159428390524986076313898664596945569765825265809676524169163873291319797970468039599270209353895612846022406266172996972589342921857102398394702127266161451408441596048871545968980051993445951645369451406113827730479509747265326894852847747088025915250773434598673671977005131631251945125434471044113884187932948723574263322097915082417123078974171356736639035118246034310354035988689766247523054539878181235578236337307047227538675622620744155212920599695471924222658855251883395380788153100496489080276915570398928731995816685197390960340881292630459716270804468948893708662781660222407346460994679691409365818157424462844269727319500259027553109290644421090892880656682159980719128097728447592488970273746279658783087629869779331516570261802269063280467673904084942694212959659785767404593714736949417677529637240895461958099434619578273263922116334701641808460739696251388902994477441023008332245313073048159553625175747196016168018271488666917130115531432662250006938078042470235322036410490921167763343564280662953275784966805291414799719281282802033109168759170544038844039030584628939405600510266834152447911059537523628486019477735396714165056229063043124681329035832071976087514594366839998062639742351439540604989205098565256488391080566625293754736180830941355905449646147085436890833484544891883120269782755815971792303167612960126503687530136578392887244902032335013389467466234374343615647354672069388679671623595847746775352837836116377068983749662879014019544244894357717479610141216128641933835301268753572343328796120530611390517164092325679898391447964455080833159497678770788201743228005089456247353716984518643714408318371875214437672997144448583313782454924368533906105258627201794069928485185932964474976554223524618426227185968564698150766509910002286510494177821321761840540337843571976573689704847274152239536985528468045265883183709209797754831837916227215119861873826136460648949294111412667772108935272641498378286540017072012233154204889757203476719873967937929692291734527976403010384099437704230180545092575053560012142239320738762392458584516005491857259162653537653577315682406492631148235609008975166505576773192899037817845712915492286560021912664844698405732386675389385313581880121938676568982367075629980836342155316432518616196686288592248235084400440583792307311700720356370975292419935905213858635929610908233351571261887044944627793800116352131108846151177896513243586736285872437095323162367932133106603479113479955275334522726202901430754352419697296043304730353678544176629589400628458717726232141854631032078700258204325896602923947675638918034423372653912962499877183942583731321359608671026188532999213154338028422192096654555563782870394066224664889371354114256457238488715379629979074706016966417607508229831322390340808694779086841970730758911854552061168157228224337814748727711224426725512230665323924594186622513109621110153739841630143932160716877791447977901124362797472346357973366345570399980294258029905847166997715628500257135408869385645077883113799873088507255153346727186980342614345704106396686601538121497371712634090864481315984645627011201268883771616680190422746936625705300618979418529528846133108915076503814607102974753619138815007097041636108464416740519203915573358584714788667471580422198887007253691099437151264490367256164044222156857172296396460879058193870152310642130002709138550175346149770454749937089923536335640421740361515074562556518851616667741558779506013776349412573397477794159279091269190557175789036352820100935183752816083258534488674004690191234662110449524537743103819802991335106563718280800697719267632581437271303389479502186515663450301842098251647995251667212755704630432847384191739701412923680424529209372459577139002028104058536324992751235510235662585227239639755105351807293357541872971299377739569590007897986992508479864946464432558263282849052097307348406819988890737728398354608278852516370614974547141409571170829039787522939748785529220574950084229492475097276298104710423931764158412172375326018401453712761501559091374718978213229437921821477677068293818587380535622612262977321872071737740659520680522842409654142884547518236709801700089212217085986621480351892835259947757309249045878252063884900320831174420005472307307738497637210730899839535580636108905348438175785456201845801654670950166113350474192629042894457792006508227151342164225526536092141157079433349944173196840738602665706438336300502636290937612881418533014565927434552412006944950615602939169053902658377650742351222243211421717230477065407068638277203604669225789349416934780424113401773983505322433803783256428402357062305883840143466362959476183280623833828783979293922927331105213505294431169641100969939432014579147783763565277873871175077346601597518872070402170549666126458171517603827032156468548017087271053944388252280749641976178110610749199561988120334597760242013903912617922328991679984795281424588452225177174261083909966288203065376050056412552347908400150365629876707131595676155441460580726986135956025274075165113977192985664101005224350905024792250518227302218146704684901344941739678622593722729459142595089995383541972451399387888823684982139533607137763262913757302236124022875260995858480415497072551464272686249243572485923284038112426854471606319013379580804218181925465260845087618627762040123383756068704016482756320558478174170784402132338183665039990299130183950797211953462594869904135024646153791776053107742519492033515357617618050751699308593916892167727143606489131474954897662542909900294136183431305536110821748120135819635827175502962001566951136053709536154898328541725023389120750913097575142833928634178932315224227705389521775468520626394684132010625578698554568523810143528799751729306803660956806721794315802419942981816687961028624899399411657469476831378590746587430596460593480119743840495520181262915491217494471573244299975908577357402306207239338435307352777413630887280685492173796770219910162040181710021765704512272800723439922031308544058517371540629314874638995982017519163322830635861363873850568107603781878625167253479108056768121920176620428530396757094857049160646407959641041759379226743669971024232765250848904698546918502320738325573617602907093054617339137639343230848587994762702025562894760706571534305744952041210462326508242994359524438572531894734788756451420899970929391361955080169553879923283033108315118257982658194429390547772341734814463861615266072969502129899796086639280324259323832576129729345366156131589542702378564138402537787501495436854227693126440100314678398568188906446275947010359389195926827774475912912031543205295908024539293662565371549701898878180039619967696270789486896695319567396300592451203474970607876157703168969222792576379485915178057112698828470428541784130310108928487163803811824318818682557743008120581451966816929142861584601705675317173421642524872684511947338147543972994399141129526528177945173288842358241013112941811699814088730490121415281871806671954494143929607506574102671352810386812357788242713421259431427338534366223311413347638287862325735515645259946126883991082888565940537426156583608984548257839800632212736451491712153820589733165907368426938727915670836583784701538700494997661674605559770620883730696672743800567880649997350345592450823448660351871556041813263265895812314908298179669883284085307778993962640803465363680172061372238612694403210850804217169317771238898034752250372733526044042807936591886653052459326987347406866823505956747747359119514737462480936250054805483913780372619370084741295171858854291731339222989183695321136486267845484894044744517876038257418383564225922365990940568758979302777037390784551880787537105701598543695297422591722968486898601450819287973344944466596834702505251023187143773208184387484865869370125947270786563171997787375700549209530473463436298014271492069716400783028098159712880061114492392505226298704680271108375334306273542935551937755568921251152270449174517877136882166119607887922282739994053648809758293676586187365421359217971456710551891663935057171908574775879920789426819337388640752018327332548922017411675874171106104746522584014598051543169310918176537342949056721951473103483936665278114769190786404749583142006850130967532044793641401128742496357782852309585987531463987919033532322679116430246255222206928964848979436600933009678813183440571727928259578578536700437391932439115355485744695704077149500126263480043996039652119842681109210177355315918667621668677630455848171017664467498857205222137043546007758625325203012595946801689619065661331188148439618463879933052646366840771183814986677575144117882181205428011294024791650918677228240978826206153438142567500461884192943226391946382703671471572794121202474392198988362993485693727027968488068825018633983221637971003487356759574531109280309342503875929362861581007631143658601652290970991549793213012599154873209930590972274336552942149621534309445713648142772880666618725994875992904510472566089264315774009466931091405679084036880465677081610402480579892145648849195703053546542527080122033380365748422681061524120489059315015362066359963132373155628520500741316129854653465311370752589639440615826350664982009881499652398332127746624055713413613375278053338672987625758981307687389768827403953313829823082818380716880862966101900751656076332478190211751012987485786583315330124559640922143458134821833636309800427346529486510922665526778572813852872299789647297640528249061404357966384308799073738583540997324853824989359070464019406349456856377963458302900908742595825430148788064866297066269957703051749242744459278375799054626832510082751224440480395092726385998222866733622509777079455028737559254099241431855236005968668586780276319681383191328650392614763195125357253858229475972539876054468517310498276842737484680780868329581503922728509174808028437992197279765954499734797179342854317778272044848971086453568538752410364461488433820143682568103193826103209229466687439545573623607522728836299786138010886481040789870636818792395279393658070661458837797910333869862746923073480520928811864577583195655936415561171452869414959086093939296397137937331462390216200145614543524920026274016211654046663333442750059958460213277883986203846440064544734591756003647383805196020868097093892254808906159237883897114611391686962993785949981909938413506665061871065639667209777711151912566749389466942477763824139232186881394174468592617293476814921839989150769937309269018295893130596080604153668514820041066899326133077878967341952927137738691204443095251108417279938488724191251069734276269774755590819608302815928626462387042793539106223160515551489747365773560284692038872372234726299960653278407170632231156345372657804653989589343061632198226510725331906835974224387579728421320427547012562012551632742859911266131298380459093802633808631783262472040012954901483343669246058402407747590843965525513947170262417009904627455515191293700519715917814326203263004685680253910730574057743174887306692829194503001437252461006393728066275744129245719585148730927648428232781920321931435763864968055335916199433690428400412993090704028389848867033141654294882145087708648723214006608458984649086316693874294358042892457147428251831276791721582076875246274579013391350039630600743382746429645997943651155394327931500927801763288398898124373323568533302344007342656994625327755339954058064324670516485585740838360511241666590684436134838602667632048525262793590537626160113946410335427150582551188170367921648746647403218314313317636824682292788983523452250100810897024711107014275498116696681044809710948498975314890467204335883353437294944888404368092777536687648566178871710300548529805693881564261387878042507285573679068158731642465132809678444684754412830995279738750498389931658434153158921783737717551770956509484047355005062218819860031299328006135426182991375925138312685153917211287722728927335494117789749587365667219853791616034922219176686056163265375783365760827410499271653264191037971200790886880287876409873064910038930405866072596897511843998428059537295132810822168586338273174679653745872910990326468474502351167351646831410504978575543362910180698516457160436809692323085432300162091970135456404021440185332661653925328873856591004067579476182633411739435507270093869639661676125214130430492185746516505645326624921504749574445559650043955816205838384315400790707488988076393988119395132798954043883684334862369379183759239514976921102501557921717672706001842240228342274107457132063028338640634552561533802978887836058610576809772088598669491500498855600374967997220160147980717696772464951920132582077336996193704603909414234512254486754451147921412894589057423703315754951660252923514523802973362253978745418185283235801756072428233774276409791020857976720139752186481397931347371648822911268361782802868465074220500649341382317918583442530832582127766131620264749317140800583937821354802561223802971560473607756810837733062462154124286887656495073532441881448143980149875203851091495764271213669405839789467895695463135032269446996191424519634212860970618755642943818689296782376989094974397298975691869777129719659868601070153339120833385836127361303680305382959944765690450035370819952118788648464558149483738672520407445554161266734373664121071639679783444584105636482088336948582078807244120128228552133905767579345287079396622326201456627913023341975617302189763577165049266587715837223278307828211700000205036793745555210550396928794959268089568375255935105458491165805971363859906540101971811945399880300975376744896986449652889101253214969739249172740254128938993391963670553110470196972564556479901777128434040427791510607943507970505495082273338938433519227007155102293778604220598108830969368951798654099962579366568442268898728419183890822060657410532567760090169986419057771819387562484076290320630373966174871183076276116339497148800732738866282196644094062981418024979898349929860017703021353096030881325793845752563629736479400634655723742916370262971475558586205399181002952267455198876215180598764441247497375913945199473978079273979032097488828642877910790429181636610184789491809520390260741981456316825318623559206269165051005168163438176813812599552446109568264777419792158191437234902206283981646824576613798630611459287689555770172177072464206056464114660208868420784861361060959770668109085915270601757287838457837056000106580246015975219849994334584413563435605577694980918846486760415757136690057222995711789568009292127960643607309434429598090634212575275070261211586864262472997569848537298812091725332161976702253269692993883698962306417598483907091722904778268673210203623959059241479752798790449998700392871647848768421539042843853136644487803902892489900726397429669116242381456697746287709630334325082294208596346289087280063220200617852031134396916151945557773119536267857047912777508178994552309611857904632477770424611951361415986929353161099334333211977084968714047669873159702534169986305470203519608277463968969222682968373586140238165855130230710568677656079065534166703775615468049271203506052779234418271157252500548127823999997586571395880786179195693381432383409344218137479003684321312243161044497773399196405373118299303448621009988848901289058251076054272701671805540888700109524815689732015887235420621637229713686585134619424465219412123010260387719104726051925589036237350483750386119211389890565092878967893285742273269976566122954754474224179525981738896386555134162948159330711767623507396685304362456583049045645807669575066123353150190206071231063365701624928638890055396898570437538445456356442547830633764068890198266234619892821225025601614435048624076371933256930669100261081173605298964720947129563689818919005713031433303473998799388725682579196017028320702958239450975853633799315570038456819413316035496871888139765952541581172633801532969414048356144832276399368090710387786129360474614565739105096831611611423536770319038134203149716843671196806185904503465212630647172790175444102530063468610905184899804380752133219704991459957291321522276526938860124937128078615998753641414751698648575957776625678385989797180549650692926855029276385899697323445750189655164294002683463001711060686485072874672640252684092747030374701006334699292050733828336896202964960557131861971904819202042740158982067438631220723149779725429300700595609273485906608082672602427522277035837346630050384634004698947657164573057895612682629439756718279551875987051711337777078962617349999357621040180107799280159267346492275396476477674798376147852179710220744972992824841067351686075977485709063358736353805219827621657447491284775140053675162455142118477890808435652431007941880752610497588543531936368916731741542602788819094675974755336642099498461888692191120180287817017357428890789563447937085510371196492276160823673810685247774995621742786899137762269016910821981174140807885854989241726413675309334678598990986162318470021625995741976257355746833619871620036650929131925421856826323805715214502650838489440178491515137404541201996425959474014850174856622265107918702124667947981908931099653640123750559776572962356256923019504833604665569808182302542280887036791910043132832251055892472255591974119693727539586233655624134950809015721504168742873109599795528070708470714220535699275049293090125787331656830705711888124772141556406222945483408658796694651530168234043649929984657357560862553942691428689466860204174495162119081022362130625020738093684917758240039764667883572117002877096945675639236438919163078600417409907671845025197147233871888936909584715736906236243824678081530067223275224192354862461333403615161435986082602516666109300435354015727195014496018799309911997345569029905911060414710324312157148393816125873371390819777792056801716918474371340397701258091865199849532548967075642093703697608226782862442148600869944267137653730490011078365352167710964034965757790957270653135487199749578572332123849427492840197246770423902471144375705195413224613280511873551958589322352886581670239099865738387442319084594809467198023564760782621563883739961296893862230468048751202564860220821003976286560342303475560740144899010193087279048652314329242941939702289689086738145882333310098500239980663048402025152525076349764858385413662140226292541311628928143073647974155979132735147781234507351587469884634766148544545799484919232528816411453643003659699230317514751303413640327845184110382225078579635056088614817107455424641852310570171184527115312164082078508162865705328001385351162102002033562742364356418521228566538397294428444980037658781530910404492772050550897093847319425039129746509779254907520077819502350758911728532588097606249411003354104163179507918521452044723405937063313554442713742377702458635394961282111100509963593129484329193766849443698196802588341537072772913887343797724371401382949717739362926344602698077943847256620795580509001255579376465086525510058803872912744090242883620226352527299033889028418480375265380951203545035729091585075763665874557775103012848512868085985463150061489923108320509918220234477165813879700680684620209884920581351701433654133929879556102265354244999080173253001060383260437600012503296474550592246290376452068930118556607067151863385840218396564470367367628613828766329315841223375029157330486056099042420353251714141358800758967890172069179990055481938588276697752788256934006919792216704458938707280477242698087029754639530042295304880682002085474202233414508321292329064161074209227008908357628167208734543383239127231137717631302864301391096678928296453117143918784612799554868556593595153068381901066282736212029701927897528622777403679127975490359694848890176637471684350294222986722508666428792466220000253397411275865367212412705045163274963538541897616718078290728896609181257128242998296692952630606759305568450883878423654006300072066124644613856986577511428091422280696804159201123968371269167532196075676844818468871733701302742837657248352249114460816593204551819733151115540269724520127332858238686773221013609258231199182519004451716695912640440332247075494700088558684635256323950320815349021761025550374614178824669739571271125994378748665093628570833410541515645398541563528293062408184181269171903131638088853051588403049835468589020607100188012185580685520917930762579182202008204316876302479512418320297438300415988556480051467823359459869840758146319714300169192523750196935891813014006668268010524374472563464910487998097782064328195506085239150711680021668091517131871795926594484318616809358130721484845641309077851281889551305528754482547413645891022597426740933578854579968241233987556833179555510001162663295927419088049187505456030245944655457422938479001457596485904704259012173191540601560499394040840299662266758164448386168735661830002963561334123136509328361643654069724364651968371246586081171604022004755359751016650718780432790740331164032817174015515623360681976603715202127792181517490812603355588459586345832239450262859737817369543172491450740075763696030285217037155162453774968490555878752591843086050251837433597116544425444900289670990201586087594683192672508950913976323302290130295577860352722236175974071958781901180665189082268362362080603737785401465086061691089820793269221871241547401441922488710781976744969578422565210538299055367234631305232990907337937592567892280380614058307187753793966381872553046938628974398162557976176277732381636182590212784377604683236850450110243054503929992850029732910275147325053917122607096328985439961186464453830299600095228223203405269703593118629500862892313821017134344728337777234287278665298670120015727559834364335213320148584267764009745708302134958893544548246861053758501280068476860209152093407525402092956037394750539570503568750850712961164495564555046454038194019142291492793303867246580867444665678606503868845548773658935399963050007541812778282926593344055726712201766415211621030520338726690088729381264945497790914174542674813228871592934529692116482424587157065591860341576898524977970740013971755607635109101695551781815578398744667731627592423775963103572546357422508573961110414305351672709631970834708758586707445624298894928564789309451931435909960225648691034238459032620114296759701166806145837452775834352073154074233823514089031062071321490767654517832177059580641209771259991394292141298669112316759665101065248228776983257530089354458139512321057007349273793076133204395491248097428158242994338834249669593620750211927083805182339308046229495779068974619536376013554718551453827751666198722727085127768161800996427902966846997738490807915359786495184010536324698277578531257129994857677311460064086285223334166708683754946586588856409153317916807586846842051106598978877280207600852870751919937385342310996077138803573778482589171407565441581332532922740007123345962254898689120004328790403464967028602559359295464816437641395275780913867868686701721960870021029224806671565685882809220921695974982644587319301557255959183447184570409862951227745414226734650975179981573141506252842272044377835438581136418849928776581678353132508049638995530516198434467031309302053865061441452746829578446228955213163802836090151140053470444474316210435869010289077353472938976087299992647673854071450483627202174205985181759936870808224679788353334113409405794742754552009358478958123752554007091237703638268067177185760713917615331277123177694792276342828441357805483192700998316865407308041757417057318766652413116597707059011157530463559025257600815035952815185246651526991761910962104996677778595452019738750289598112362410152207765965858017594286232253436006949360794724232459131710250734758937292058324941262343420003282997615414398129646772665549549302824413847095865084553744876447447512470220819107842264333167296607803720337475653990046434962541097890190531338869473428475231216990783778231477916456363382209839504995979596216144874893034925853540664185225998277487854077197812582571199720861999369381977362048661515787753772265540411393758983443116666575982619332754352456572300091665997428030041435135073075525975944822717505484832827825603029651662308108402399272062974474407379627882908763997439373736799742336324295318453823190354060187299235214657536147651895822472409819579198225972690003633556129886209968712784850709317370292242637221486139910696630030506210483189955401100632005241017819402320741999101686269285082182780370450388185954732899601117560570773286985076052246930213640948354329863202669287711515312186328298254562214376169482773326354258465104400474876611718587758428164867900318093074155072677384597932298599164721623613766715215073864507641498133059362733364109436177129580180713818794703220844388887570203007535225453955083671389125219035238293142709798561687960889739615785925570250687499702820930114858532530316358847551032567462369263822216307431978420912173673521140032386896404343429969204643676211264793561624039997636773962232910771900482145903310403031325863435381447132683183634127759957623191914642457947493518473180492497847550955698189995622142809285888737963665102535270808823463252403381254159447377139962794703683861602653259831171084507629964598028049283384416096642604410346539533003577375682257260187229936757475405981963504418894613462230059103349089190151356171715571849570269013849615412540609665520729320365359926525646397302840699243733998860400817746504763604473529347512293855498055299831245213496973111004950944479404176115417079056062068488684879216573909796284847026688276800119084765359797391778917064454043707878551171263255114442025193113929117907434919310251729043028594330487433355649595050831423526581201859128442051679762909085990565991362500876936147243043251586338074494699187207961219428754464435201120367828426007544373706861676426776712516582664990458511051505190835428524693725043266938568407390736810231776968365475648904435931262125723123199961687906434031849492436844696047605830654670738419698653145616107702108968394330120157640660176776320581395296405945281278073244995084201463461744265609468018713566955831997864138611439918895096912998849043314308801650196209103527932389037942314723163758037885704552461665106684062293144346438726653059530482911372562672231547782504338096858403659291449483512946860321047793391165900281457495175042782964204997738250492688926857877776638889880536302391725164149572602190689469328620359523865262804741706728659892877452852305163598910506152647305573314957530820852371784761527599061452397204614388225940038154128731736916040401650103839230776111062935233881506342772985289700753225192324858898029234724597196619533355074087364649738284477058992353196503935145389829572379585895708590366839124315408593255255572411068593627315705928935185315821300360139323727055325015114623945007091096827331080464479151052982706971773946350468842160225543781781482107939024174163208039783997252270316566903790414032269659766577129110581337689862209326082367081074712619888418329953236647832733496343671940176936868895718180384437327554496070410984167909433324765020518857782339476098883652333811095746341694692511400299161563224968757621723239988777648904433169818899926779386927383989168179313419616289077523465540025427701601059712284447013939455075650011830775508360598179287908496956954048962547448251180725134439835916735023254085935417558137028840528010896389277464569541255967050976965423633180046080022144728624833082178259616473500174667331877527165380987083774558092630840459360572389224690660925471358823252276470639366915049998347684667054964452427789673374243258963119022420305600322729018926834370113328298047671183233978038237649022253604411142298712301273576738742975662798822134417986270168153798647227556109123978666685708277173472744131437469354791441883160712665425789431298829223082838158657259191978427538889401293406938485216970345009062892901470753450210083027650332127838612716042603755615994176308643880886410364907902910118692382517247993847018928469314327370382237735945550324157004546402266284930730610126734228012406851089884915032131521199908530351885529292228587485345575577348551534892492709888802934277268516041133137837666840412043424490121837157258982416697754364674438178599752256387934070878983368276489375525243344027755602080108134489436148130446571189142973120429621033068794843921176224393680635641529765203598511750329750451068681294522868055587011963177057171086636886248135306586119855097321349062382453658825222232359402473446883688916532953316564911378384208341684567487234237451664542624914922112496740275984487241292382674925773543311456333890107024070938768982699734986166484946029125832355510156420307464343200594662239153964190046913754922422661715172960850828253847268465901891021190607193032438630305746950116398012887803766473331928337838007585634608476430140052022821524287190766313795196356927570401517054980585620557020183534244237264409769498328712130060937876020915427339934770119745185639220259833688149125286809278490400131603949150389791922059505542660975687846186063691618177943022688033538092810763152175478838131266832918498270242264316757633712984253941217720169731942264582163926985372324917471935534361179486920275840070954531474554143799973999121921381818344400203126314321187108772364998717600745290547665366843569654805047098168427554339499688297394415263017063472650706911371874690096955255975908244599635429116448007965746941979808601165567917187593702981120994304807308672479238146056199112977293212585687833890231061326599814221985177759260056199340272033228914884893164708029288466344445734509419369241698828855505783584987864644895249066918659788888468186018617060789148103866591508300108465279042762687974079521858447032814245878478065366044506608856069738781636090061184721069274389025316025345302318592711402288998677108795060746814150988848727638348134283159282590033963605980528992451989044517372459841191252270347520214414525104200143983394286523184519438322633365515415651154978827693805264790820062559963290977369592861703100174397970161946053550402828335084263335917607171288072044419941068506964763562499042117579078071009252753362410993654389536477154505983777849976328595171676779588648178634139628464119273683368052045783774858716162629557911037688240477827093305626855433904134439102997877788368026309840843930461480855022749480827851874019666474033735876452620045668715067698505805924143260785013167072023129882582517760610487165900581524481458023874451091732545932076538108006176635429251761467989019342504986309617912326666518884922732792326571963650345440272876728309029518605147625548723511652187101129110698901521741868190681235684976828539639224901784076032752669801671142984364680085050952371275245758513505062080119412477055674478197057223863129456592038259239932702143837773354590018958545082307529620348049776416947109288412771626703909370205267798394679728275059523997955935154744270035529501849062799632104002746266336541522856355629664183678352580935086117013028965518859573401279207879101771558931243876302539050744478514470325124664436129595300157602011588421328022146949443865398326961155558156202021137662163319376006385768396025440182294863158139188879353396396233499367139149342368686015698544046486152559280823989552977961620608366953824110691183200004042923704723423029412698218357465603513622348907318850766956849267290203721801679863757509715381316338883812957113071537956777423952294403761952299939654211543963995567212781507172610208571964291408284006364907933076137176871336170915480236330034950865340495751301370718542223244114761734237816864003118895526149632933359453123879551277840111676597064576932195691418373337678656070251584862228457553965367479409484287238601417952905245594457876593694632690028063173162773081698930262134773369532784798713749716412060708473576429068032514491458573228136939024189186107371496594579122643135672700259104984511335011758875391326469641620397701936704881353675048614953636691765826414277129424670929337423989844053226319003931241544415576512014054829863433042803304821420107611201720127032661569246886451263974859131868455641075917169483795956112286508012440470686702739614340266532552815093009907516911916379320271900959858878046856314918339321615475605171925291396611082130132151914904756313942397934623850967237157479496295639292005740735530849706046512909271092660103680713488102246515669271191404560444753641129877825101724648406417216601006317536357139877001112068944299902379770160994696341299653526325101989868876024700195983003622434552458240614281700203728365302957301121377312431367463619733472200363719564568446797781644442970445276232178328318303285643713111556988389511653358006966069048476491390284483981904145297045216647573370008760649407504096311713935731502430141377487257279326179910890624172461386229700203474508801149312323410264596830664203570546038864206713900853789282987614104364231524575036092017360739285864200873634883529305085409578668311289388911373399893315822906398065254790484082898175484132012115500474045239532119401029547637507281088933816994349889158569777607044258243899277886478360293845485601349194922390007940210513594562444840461944058997528339606072036520925350151600554353815591444198856973963569865368879424881310700944613296284984070872246092661259357680967490348777774501114448138376573502172330725962707479534807870235698256978843730027735669568030952827610626589271146686931244874955009947697065109715291085665149955284676985815128607954732788589790100515718061359816235427551170797898174793040427432559365511299633446605452205481013174130731062410523026706184862425411065491458515945787244028595753104819557265803964228425807926416801177921339326449903712791401351988945210444920708949458197713217821463017428336527910790406445230867781046908660446433328259693698095019539536505318693108757032245960746751867620583646682078436219850612921680962375355485841487001093922835005416964802293693870408937291793938716909748812168091244143064988053139404718674589273692778993768181946662097793898162454393027208784865277250518452463456859141885796049668258937861318945529602608990338995040329774221927581130650505268034605925083150446687355008576856959782878003731030148599816167379413408382960989991528474611100311192470270514624936367203454857946610251804649584454761171114368765177594994446640055565081823540097017433793661413536256338148561041676418560483596125368352070806606691529429858919302927651640060252294663182270279333304309257065076138716325450898273712681153609864359613594904437607370837670539203031239833920009028317069081104498580859936414601218883078613357405690517109970715449143101091610262088936515397836913433652023158362422946417200208542800452755206850290504876548114209612927062317977287683307211924731791185463967022487272610970020503446673618442107417398808088121350482507254131531212158204980321911072257062935466869059417573354069747370059057817344914225395166910266828179107957142148244952380169596700174598077811622942949745477914661038744167353017900900138754327731043450012089118587269449849894140295093959834578759652033800537234508575437092319322309292778968255506194044694029352686045535049293913423601441759181280103883865552494371221241785807159233944258483805293350933244865323761726064263083241944293515992978780601320495851454142256143431465230848533162694806267907980649709615204198100860938729985981701029370449868252610271299291759083191956034347020850313799178006856794320917230189978430557260454710263414997790974442886638541251369101464232796328669732704645024765634954158772896023253754293875448622610430323459710507928768169067627609019522395377905868113428121881545118741249832609274816984910741329963446942342950049586034006685436827129837128244754173118086808736689366762936761904916872710419835645353964832627941662578753614719186667294784996364549848371241535226011365972480708095851068237498313567520256878631275394416572985091479030959153349803003906438280815963150588127471337387746675843216587642467783559469145387181960500021057011527879207495314308659751656160236326272191310597842246402200779093149259231021111605210473624795174201329857018797563912613868110921370056535810242102390925987578606399987777232304186057354324016188018218059430367034929952838954502573464281742281245261937339763030476283397599920806145226745158113588507224410017286438697148509051138142009328867287062767522571105500535612219219310391424025130531880070328956181043169582112813640567970785519505593418025581082696634690014800863227782040169676339924372776627512323033226615309679411237868748485349158503903918092950381741388286151907784032456987314459211613110396538996335563704994968163054380148985083174105792545619302501497056261297839697890993817344415275390826177886010170247757194371013817834600317279335906649905933520683433665517499785791863412321642680085710872021743800474089620251866052861876848938400957185615885630951143631117469106880300471763966637549001183005799661151234711490497405232528410165125383146057721690028207365057868786337224590816554528558571742825835325149553655017775478169858782657912364232854734254890292580247889375424754997013330805486802802963111862749174321172828439680121842968447487922503368654772303794447686729700143604772783691324952606982805483210246162608558333118913241227984336554916134428810339954738246672004493725701335600911287935416116598091458471120780417317378457454420495233759698736851707389519689049823597478813483232206957421460671658976974044606970548260323813757937861858525877210027851749301386401434306531386923647744166011459495138895741748435211021150632991853797468954955706966034248691748355002675986414483934267778773064761340801683039749647368174522255065700765960100110785361940070129013159620572311327642289691069688169994570001951272670366299207375593820187768758836248219930887408694006402712468886064058417235618892253722662661456914305630307138005072078734154886983650141282833408680610656811673104371637923693189369389755215617900320412981043702218142836429315390844855682054459602108599637390257359054732494595663262356515711194719513946657620246265934549579023803208288719860482402969393498121038104662435587082985476799156964371550121443566157766081344082387164566483681933191625614714150013313299554614418467613250494520986016729834943738131461854166194295827166010672882429514576613214387345848406113207748090107566372289379767067770985875335848379560594364920377414754560845734629522272080839710132262983150545353165505517238978818211778298211232283366685859174516846479327287099159161000726055270320823232209731768746028459574501160516531838310665942758973405696279080263458239083870835214126226672808028214894779713039692173513355417817153932537386695014110520017987921873358995306660548721051967163841170936916219491297411727947641349943963276130243490712420563718748064903353164749922752988472590809053312708108292339974693434755482493276710457335823428311737974478380750192115980066354944678369340863897329538557492958421022533512174149691924894097886153868761505237514349638136231427668044833247438132481492121915514808281664608029924239345701520576954368316077390359090171281070476940380448649920018520356297786411641431885673860627838139467004630746191502641066069320507510068995090777611972437233268930718736826209120625104618880398893798100729172073377614671715689114565925466777350511134113011740922936542408909427642230711272061643572184794471306250348775998468285902372756129696654443382714695695071359733549793169573296251910436638406208775030626127408979490879752907377061293782177647381416645460750986179218568810898324380754086832442274576442246519311711968338383641574574631580052213605322563469263354804656111774401298585955622008307325342618036500481423052570260576854849340557516809829832860968754124138548730389154759157878468627087079469913261529841469596249099898572092186152134167523733116103402152488700778853313158209303119407938999080491702810620523026230762123708771292912835021545398823015864848833248690156415988026979770631760821633871733381111532960535075533187794745920413011000712741381837749045813513330829510154513080816874909341886779158104754766836903919527614624785126938212917084259272860686737155634307431900447768352489231821617070481581367224268721500905505440045653118247341079475684229822344254146542564301454970131733104868117269529720438811478792120914726794040590972583729072758234124927546159136390341454179544950943577528556513292302434950912947871363356784851673136895291404261105363649787539050518222950560680108938455607021844700142048401908380052454485849432989446129929396951709851031247788676222457001813254040747614476259510321217240493822510337299376644532463702643819553248300402572764180949052488248684307355864871533263305745738753131300673367798270988053870430054920726998676527002095265002860251897183606837615450855383196500831446018315606743672087922482329393932600267857207401880931590447044493805171758313891128272483529366104045489440649854381076316232445701054529598108113014205539909614545121251142277041236388995514489912436743889940156092556776437344307905277363734721060185346371391347797208357077737485777548008940224356964176381895768697928113038099932299191292953804999549648416934827058171409133598896108062262643616740517236631070850694490974956525836096972556079408632678688281463966478117823311082974997624353140424272954569340735265785960388831855492391440372462467120887924867732391505904652062143136316387300990858288803007577078999223271235611671644678212497282798229228699467007589348732126587200362840625949493774780687065430039942437885816862329288067720076387783747994990357493753060134067317851593134683775993038105077468113874087927092080263911075883957903851609352129766143956348856334950247510998396559988255546400362057340224211019636046417933445459179252145862444204564115718125738159470784027352247065559600228999779356691314611495989931919042943008149594097729913468533732337875154470709412723916376078857961962554975098378880094877685715596961230053826313108854391493429366824026483446651670144047759493686432935885519710107941592598185083632757166955964180227139976469120386917792317605020316077440554372110433750707928592841140189150888443870267758002360028437643129767428667225138399104971140189318461516271378031454296005866073461787795860288333087109268200620669307789240363211977147458097013088330685433092904443331781217297347775228563362033580188476029510698697802097604072619613869024371478268100636425169379908186654964882991901206973567946809101665591362402157255853385085904320902203977571451949922992234135021950462485355388066497562151869224842329629116737135024661996430689008060112104125443494866672608624998426224082067989842336978761697913722382675520701458294910669715994877430815406968781787093470117820155641263419685999783541259276361105458377578391845668890842016281295605338139757422557240099792337620931907829805872832753434734623300975972996794326033760712436355141436449620555011965537893246387169149580499881390756932240799437762326492539743885272034073285127459852497419884860698947313918733356350579981073938214748889503038959172217966734174006513744118509902335882533496945800922467779054658370491070942568244723730633191680155478344141647186695860907163600377910815359181637947741482819125803870718117249244236762751534350455869703737367195660607889718552348155596626154904176134784276145572731990588591241960649041691918640081122869179402299985217686585396470355149887033320715282846466717597594704092686465802932784659547263867521196938629603553396907826489583730680750611710383229145595645032724409218226281843332718712389072876745368392161832167005701774608182890373185800488974050543092389063658239242045826282788292175042671696258851944841305081512486020870113014915968162753279869310254083319882668894010961097950952557344650205945036705244441816297086711929333889775680406349804638903279945789481566660081599751383571593127427117194800161635629828926046637379910084487771047155498893838789368588661369195786317351825513338280350858669583184435488452933174810282906720417067222110964579810364713286757206839890565529102248478377210064473531427457255448123379838345702622095405398073043820921553067843427583190323493590097684531721793025009654780984646494965175342466515406283949158910856353261027573331813851001132107114053051474839039603714702292478988897632057740488636290566293736042998160451341553861291468063262924754690237753849761058601763957837991285463647270365095389474769225758540079727633219253809959575348958390550440081178430712119864272552958086303425081255087819926909499752951216164515669142468020745065097223544906519444901193708772902154709706736291815974256868312169318535528747713853620570149904803610386095575571505002227213843480046675171095221864357348541119250674922180126185193930541441824336834207066365034343486568334223860536664805600170324826731029345161978346272132213758610453043827701468741317413398776834251517805999763375870066831251082211783711006024781524949638099103072987355423818313352999218332897551343837111464927137061306011517596841858160229761534726271260356956611364110954168682309448036810651885876978687597510044548757191195422720861003241478168080924602580907889381387905695276783599404204136131726096267318016185243440438163362373003098970944249565460232665450079399398334894412670280022373410920079757389222770483675328006220633185417115794196285757084978096125070180275794044903465994906792986223430752528277019059439910418391869499436169542777150703825579701165923301448171312883474383954256560938357138075970734131389668713000193418789526024256571501574370227908762134102176045307842774356469246642052598896076173339049885321255819749771855702099092046850801373544868060380044204661248048073986352463957971563234426283219939621155432680135193412717032682622039894699980092769176321413899276196503849526100335078766999525167381459572564830091477120434208834203577524611048189325007802504561614620259080185288591977344462397145804182212115950432980588719342160072886352511793990604768398319732721974300018665915971092173550646434784168564813090060426672845334699858612877785217646677914838829041452202763725174432309877813908723331809108684019079194462480787574768012486441941309376860418962304444802541969540563757568231630688246555773079239118004683459633718779555897089114314576654648337249801996527870896380955338083290351648709734095891332217272797404554950484936341414670552283288068460928814771495042203047736058206106235564190946098600403578569058736390388078903866898725764656626843291610281737797650183438842192153948014517265320870507996609603732684135529089033525423743944355205585676474221696384242086620749792540359578874597062463504936470657448970050973548557706964104528586600234884122727352884107303051044800280930772306937834773693553528260797532101302123948726193799702891191501587697545042175963797559218737358307266674873583401029917293941852707518828695248223870761875246795660647237303139324628225344219194773706281122008964778852248263441557530787937940272737620437775761461678395689430254717187120086252896571681678036261002099237543760518321706062968239332885778676754672348741000942066473881825346138033517321154266019211143119112233040258953888100652525935884712232435322206385562269014472937512320386660507918969038829957730299059609708968702976829863076290538999628755125344821415792000842413433421567839305249588551408755365298866987101669878483490264077669572198374042054855382250054529322669446985585581191748852930022152632074746538315878635464202388954365690423210419987890691600670669592095552350683274865874301243565156479751254968877475071979172711924188590097496882521080718607363339475277392559026793658303583129217831903488077842110011099380260725754854841130918771938150456745803008977613808879617192048596088674757596004394310546152278178218107378651268512924441942110016227054026601178879510577774015794818989316536322807222619195396256366723284706345647815817063790733325722373551136516742844322402727990262307896301753018394740337003597676115661663035840571571768928454554432954933932287585254733035983660268648218906207043340466145214727468621806580176998094169114245418400979432195103980794543461598307771481923859499255278849429745761155179812625559857869804882053832020442573374908732562498222568766052262290325403760844825121193953602404942725024895235968855718434196643153242844809490373352696932796281997377236745683132836684857625269931653617006361049331461988232236967964243215081556229552210342255982046206046184061431535170809861015083412561875742418146878996717683436214852273038356459956989323577592987595414707481816404658163516955047748072874785479623509672197289177644259832192947028593805924738768309839797500484079491037927693922244085423830205100764648391849193877103884992237953076137315174433308906777143308936705795610747696618348879781712960841851134936324145794383479217271358643617770701412683945315845146888406682456172070613336822311388937470934229809061511980704366143347207475447900499492204421999944700384728697108197637643469426982070792766701604621759879295388178702563670057520652542828512426453877619714231967114676373302238908249908147982875958715445681195319549823958886486826350806564682010119840065103676956402897615676792419919414898472845742199125236226731407921386007820644701617584136565568321613296774999796062349898287202323877349039473234555231117987324401352644404363907240248407744142986901911663497043566807208284155014866388379702943656762261933716581710060067657083484213707513594706798998445057980470588310804479200681003791421086899366021328899301922014026070089894195531600583850662348081777953032451760290144289679449262280559035720292587984385678925847858166100365390260141490210240542875656525034495112819973084085073627084028450462344813758267162710693496658914401697544981410600749583694269643376662512487804877611166956499060612719465715804031804404434026949671830503981841016676070136648160792340214833187510454319235463844327075060410228755926816723375779206147387965632226130208930295650699853175430680473746993263907537148859943042605738740194002609750127962939186856850804189654420258179377295133860926622384657386500857563603616322692619221986841215389198642259577598157202997198789050026067270327983524000467897174964873497830437183558160718229435082053146803248025763573046431608134424146341550686439909280174725536688255901423554377033510830023187927858100872110463178649854077255452132892203865617292295039923172496821580435601644303751071640632530196483919024086431458704704414091030701670176018787116492994874012626301160756788125860480180760196825194903827242024118927066849675577767477786194030800622499944431480657703961460263362651346890091969826800599862722581543136426845296026658490311817833320211075608620633749799759508991925692981924713710099409661607513941926176958452904202067435678554705233266043108554759296317048253675239141611997534942068698128346600858143637341866130606441947164587375928517088208813741518880032227092619120661552657375527798292748859648064530302257036895296463942254776014875953426197590394279234411131004101726218806360425173886479297035182527662355666517239001764159462233673423047386693588909990580887711868218297424202377232486925137170854753868471019414859405416764990622155775631961762005138380656889439815671862615048439602347503933991598201790186038488769272336420692487128709254497319090424768116615210268014690058694164418471217651665088990672607187719995296814240881851115675157746777959483375859102810971853850713246620249742820055165783005612111920725013799667789975793668198129531218750686406123148163455474130032291028358351094211569934561337881312642343848396856414975477379455659482666233498852546396419179946831494127275763600943161425473224124742107109496568245382192399792784637917367318269131746701181992076054630401545344891936982455478042832709264076898229837214726860255369212431096751517565237162762767670635740514154122032875973816308697850304645455335887767610317110194371230397242828360119253379593159303874342693089599039993555908367555911591295761125126707264283176279881182704831302171317221194157740800900322002409756753615438720252017693493394664223259276746210114932526305592570000246945477823057222365957018869611166070975680164890053070474785160853779987408874789936855093040565176463578365225460012505246484622877110487465465843206543990364184117006353379441610905826565024806848972483845394062133935320348361045934593649800448150346952138984442826179368679027947954289005124822113786857878047215114942957692604994806634575979497308821048118783571575992507212268669253590342919872092367143777451274163106513609837239402516493803285828107850808371530465738096147131376339230984576008866193143554129514470357276025661655764225279174180576522427292680337752433210583285145508882734568955161488519864755441842497190555958132672945906675745602735271130828822763978500397427579476677812863959466406882013018754527481759555681774744992502539237582565366067805491372502776658126918708716252524282624442064007475298579391553296799901362290877647895490872692177009042167473062687783050202709956451822105840727457082135077540535350182963918719406856219251315998509143453215169958312888271489343445554747733510567676469481092527050565572944703796214591256106961476937209146359645973224588202887240489164607802930543585248122994033968872028789179546527680362754374366736694469540799533793569020686538363707272308391414816353502678540649023463851874934281486362626750193735522979111750355864792363771151646615350805325221005033863484487451208181364324414188156008627356004201256910103079216795982412570500444380348771249466680464737866796518050071195191259075299370149968367406141119672851224934197260858893303614496511875726313091480964941083638832768011938528704380482139760561277224110311784688046827641234785637199521506218619030953162649457459933722758733195248006534743736760876584814877346519466889199930606735858536033413152527332145320032661286387223586144524935213876797271795903036503819795302318433410841445471268054785762812340036172914379351193821198252475812572568716452595571355175884348041767920323725763354765182852669789544504727197781821358303473955498418601529512512898705371897440565473884773580155916866200412860382378681878983758596719137873130006655504336692888694183885029946985787696809177676804998589741890069288761485550064428427325116420255682067569378689718316657976068643309451069321396679574076994902324801614805914397414874288991709637553409232887700930340874265194671732885005226459315833711627742428907358851369412941335878249754145317349235137067717559321603329101047377585836519893419412259234274677267481911181359782516087680830338487063084974100055535001119818481440632898306192669812289373685928060187195116363748809241999928541919480434705742331714251373982931463348972496721672840872485189454689650786353344347417397295024440468061709326653148666952934625966295010129340533904405022726607274055674596642323706271675276427483914101352227454635822410263959697424370614629113191680227775891741127492915032221195926975030863701450603557117869244567865636284776340034974266170466677120670011453088037613951122100084939238453357609622243576085536059146438986164343130546158666015172608380388033894951565821916432166317461298598528607020561881602177433891195945040173845778278189702014882067484285629901023740523299208802161679811596818958806826164926965580422287701625676919069357404954809242637233101963982407199477908629601771860792795265732788355286620194355842067953650253695881475498777882280164997166026859961786241027571111619983304917723362007686933417276531024487069505220534548240178491560676562823929266418570687857244544532792419477057973063946955690347570468698656014740859313356601712226183451646683479858858223530341455032704220576017245739516700684949406363337790565766658286648021213087741457767982859998772159460489668723987743414614338575645764375798973552379316336595713924175320124940196537275197284777780389478670626189240345038402823214418668109833357045545595545250791927462832826928666942999823608045926317568105735030616736038456523426243568874213089418967286150860591076783047351584045249103373215318990480054285861693717881486665760362469937856731573282143679449743885380435285153523333141381514932241698109435819335520211805705665700546653729085471950786756987371397886364002770783969737488187470242308444079725864354733846193961688637329593932658355635339324035275265712417509240378698888770080309920395854588229907063157421167918290911959442804785639474530505397860310988052485297078890236982551885754461095628515904181828150247851719507004400426468249340162984299606810271997114229687285702209445973203136463435941339654693806030676842492711097130025797590038973876719949386060737256574969159002607634184243190577822568792658808406652447247452445747325639482485194321089271896907757498777617070094483513721873659969735896079665495559029647638923814477449866344266073172572739225279801065021976721050047045832664830718844998516004316174122178797743597905775928342683241386543306953028774357925620432165813152900700700123805245662876710424006697254941439328765555314982394899753760299169078004918817280986987456236017365827306365572725998885395314021990303990508801485796977280204339266357531885888884164758881448486072327149532807271782537005380877255202024192801482124596557641848754067407932739309834835260858023393046679835320094611912270561268098960284364779590109687408542808395846981912050680992146322800911373159406132326828073805343157423170877667286912639865933448533949934364743423013919664675075708650921017332402360783480770306047387390529649785576720030447370633470830386364058082210286381365960210788017210990650701443266109437924645018979299956852932178977661757726728490768067835731325860470404774433548041819657027334281868116251263953123962795671791438942414065131733960976521548316458651782463506494778838193582035990110024139717900468572985776438878126119390308571551137835329378610674658692731326966404626908957714084958689610878827377264713847952000856356383611152945780640191107177062519375726781640952551051644673937492145194787191730186421243204331913922035352890810453553953926940664087388837271446548155742341822367305266785339124954928347858424684222666285217606218816988484380653489475737443833862477519029727126051851265140138066947675655349258607680631183165171442158406248541371644255248824248685870739416880119815470474763202215677068571066802569759139895524373185657093981814539921003679869729613404260932267038884083106818234137868562597362057068329394976310250281669654379035813355791503097495763596761150069765938615307647566488344799422956583848790373502154622611433576903037934773243390633884472795347307014522998136649080287627916267532970362413190407858143487105507098763122081559864844605756518272475176209204401878473244560709177890262882080788811774150808123666211478347634504915467733746597913049566083152794770460483512560955848849375086897141139306459198772581916934868089075840834201144231318855919825622496163762439398223419811258001244520077036034524553921573055130782917021656880059083697283936393226726274434235229698176582893791285562509785421167318784531542475779261663529359884609352414801053633551368598184709318914142155056023181733014736242365216627408167740556551652493229209429387207896997263097423162190601777941063885714699999197827515184276800047267525736186533409159733122421064413195035780514837181836697809803878307569712233935254897293324804329361352338870488620594084228306773038810393472102892425262755212151696316640825701631999889604905322866672210079281233173488710873053958162873680107461461283161963031990374558174861042173315241620500985597655710071094116964394136619345043007731799178642620307211498731486027896512503377929741104036980264178860217864304104217833005270517005875800447142723266027146399155844391116326384495169971039476066268373571645776036844329555843578083196534131307317412035308790464210053561147511326370224058434049301106113843074146742310380829791509159556219763368396515016398223594125095564817248167307071440118994666489853304927252026109827695429469135113869008047557556261417736861169799149822099593121625597452120030655694869287504466154504018812325458943497780591345740210503283953661787577279279465531168485024808375185329966277522696984667031237843815248189229395936460249704572955126507142122520392439959755759214394103303107219355322274853351883044730895997467114564611167536034181028429982233879678283134004483240966978455780285947633617438647071209458585253845145230599500188037230524414118395260868110568234941867760559678465217558626774635792775442624337016471620093396134345824729037793986553870939849912684946985902647633084892401878695984572919236510703140269643427395615814433426112878203389015857110690201863498690920357794061466989302385488150247076793511122007965674881218414346543662089089815737794343655748652827933327591679759801659416757170459029820489766678018110483314369191122572356040341449828373292484917910866923884087342352887304759029411248974531765194710011496604637368803307896964376004455945654505428740631590661347436451473456719351296169962984183046643452921751753615055153261277558983532271817933775304256107831591184410856491390180855976985443088031281194375168871024779271864487580139334503718982472505855696619729903358933211439814878485203723691845766130514218143552310176721231857033172502873791131676920650618401968203872282146432851310324144848396647468391882289648870878120738775421030772628699286724597851136275360840870459672390456876783849965070497336476775397769319217267859843258759275907455285033576708076656941329941980410305600124030394139245852846412084835774528171592520376476836164512907546496061477287707668157777049859175925741427171851332299768203668535885244802691791991673382457513761372364393916207882438252162236980462618990413133628104930890785865529216013377616259821351516910825868086711506062507122220523657873705378817899354200423214746283560381562261670493223198140239391685897745825999583885715841505642333168090621978550144924177209453454183581730933126874263200946346077142655688792763013550599526053516618268065672854850527393923751639031413458229620639595635747645160951139868350519473757288725759594481602989156230118338383770160099725061051438633166173513930829919363238765614716774956875883762758146190695864515356965900535287501916874453941445064536269960166015080287244003728783520874899211465135119841271278483121281907717649992718932825334623192735360170857070100102250078542532717839315646465490169579930506255518975414429596325796498909634690097801076604122968144983794128270540383380232625818944113813425001815721451234897729771476714629325039876845026765929086740448231476878808950708609751383171074918602821518066250758042610379017182223651846918049879721431893743499000826301607083299754938731194295087784042170729682341780260368763607435335795488202063503262255667383974950349566938174003894918227605565581040237881402265554877594424117830196522181523347212633284534526488501740363127620665188634296404867375752544846461905396211629445319184920743987094927729575106918440627128495512374400144676310745535224697969262045934667224898115994856299415938364533612501988941100069923149304449150689752418027549877508145661064055248355086528173726699166818649999903342598121985721692270970374361501576707764536730173245788241700502245899936147182606129415241660787583974669897191867873813761564277282948569233417122802385909373442449140197817071611257524586422070288815071868624873353014103797396195682679049411327841897442409122279920247847639259180817378747925615565401336601711995063944981522462774546449306064854264101253236548906316681408425246437072450185863176175232560929224252082569454783739553102884261385826383282715259461524736073894320152348129000123682492240226259434328245270869553942652453172205558463300082963421518797416900991510371040383303337316873057617126589061564653326413159318148314984266227267841862561029760038077527253801011788440955625928185839797530358802811732481860618508825483892971171017190050157856815897467919981931389891827213466172668067388409442231361222486752757739162488921024096499672625740402592794438107276838821430273889491325082036740306022632276756122801264349018385098800256785173474491667542290835002341974788337308580748329517485465071366496186568721193696701508775875876885433530534532826145933810101498241819392481205916286742794351758443627454609131780787026315017444421342104420955986927367247521481482817960762780258303162064917806797483233571303173983389618207373272830218459621615204734401080011359551617935807603060017576245472321611331762214426385378980143191376112681971062333104743148454253226587769945488103337882382025374304428381753038093191181526893671164453218606876604013019308478981801816178464405583438682117992643288826185156237424968676517247727730176850238289999224482485101442087806335195853294566087201275996614501966111276336682825046627483372179331540658284879129689089445067741943823901340042450583616886805147529580614000249757630975434919278315731256353904027139770329012762119451990841912794055065107716119255468841298380039472511392097871921162534659272007659889766454139431481945799735093917109029967302752843934530899308952705669745234670128323070025472698181137739846445769625579236338961311316163610877472550407152549182411855823166472810524807786713912813343367053169883159618943059791681813765712074364659227040608210404719127518618514023489159094737362272074411454224596902739098184206097041663998136408438888310354479367342796444787676696786340821373678127191044131844199646300132142170627480713027381305825850413200739729785220654701492481955760744532562616895134246736556049509861477630153976804912708894124983561065211394253985012952537095028229394149267686290875418492115827137226671836574425996143862930647251212079225847435375294553367305575623579484889933943858721864673896451775886345962741668485038500753144987909653367691735989543735170406480824551971290866615094121330839128601693773662487691639737161039132422654252130651920691045745552486314228204052567611946829411748228752593040358571352138790407015623949474882941154572250797473666023697337883475897363473065228171996255605053810884473826351940777876128067599103049996975169741250471202349377237255404608251365145851759694707584824158076894680431976989109516288332324416253212298147499450759067105214429151315066237218483535298409896784791740398615024514649184869309577557378933362079536603087900411042811980150053238432315348028369802386408609775308178275559400625593636559863061081144551420080102003293862905048280583241851832228849675913022689247406777942283584363395484078042044057963518402533609019151722197063031408439472105543756648305914583974690464559977743031388585666762480669318442737609201136224375450829812082626344638985647831318622322035532975449049686333819274190300171932953485462570699382716036604591210612240820471919706039473554660721182281321824159620770221497096942430475113423915943827999449866012234755882927151343374289357270543035590138331129862551224262018653245403856740386384496867244146632923003256601490593910467471366627896489379048811906100551616452665160386610349880852256794787206495616814609506509944192393161383579870981362050450519625021223055594250239764661433502490641321254337523181822881619062211060788158552406731711755931293223668313018894329539666566552429284077464997107510632581916727184396796187645386455340061085198534242916574830177241413386770632708269295133935658955958170211776618913184051734563094691586561125798184951841650542545664058421814403718571661219447026766095426145101875269712412101895114495794733136493377785246674621223440478089318523330887382139540687718738787089487972269249672918375291749221029634367784385996731136709576622358526014214231968276719557580620947764973858656908354205930504592261139062656804867075809600231919353125239520063490275624097948157727623672536864134217066700527641769614491620861672304979341019990939779190684978478236324649361829636960216333874047780757163455277776224256785520605693042477540779102709670151269253982455140628153463239642093658295645003053995732001343455154213296853323287164433550966080513973452732333148758863846067066592046035919172101683950805307078690060487415505035815770295443738597159402110376633747483123642888762282855512052011805242393568421366598912668139555179349386321946394458665533713823647868923568408984423212435031319810170984567453068341052480940641730673381763719742895860484884451718667886891427133378365363061685347631134334424958567388612614296084447998582611146782668172060169628808792982462629202998202906181404880928884496058487169508759986676288103313258307810519421855804199971130699612324582462991265121093531058595321715910078407254300441142639354656163518050810459618385029976033778553035635552724776841240977335589790910844101934860945483562272599771243558559053337064195694265127675277413595334394278697480004783602401427318196947988544152652332569452328777769719865189386012508470280269676079249957429249861702372493660284976360313645776640623190516268961196343677393556064073704250549138053045337117745489519793416814731814469516923513273475348285633160503916890086440147823720939726955737743860488223276658071082538416058561371133371894394865737397119628765226063400760086813222390544336261868590946157401081963449874385616405207064463744219827698966021946535935578347096042287303627047596673700868343992424249973771063253058307763848812797889962282346971338647488991334432784939098477272862151764911883034036962082751190014254057906262548907889208188152550046388447640406773181520958914935252154998688826946496060813382677823262835814374541674488044650484465053739220672180861551765016349295896649250706104742513007138289531684070980323790619810177814321504795107208739729003862578643547798337514530435311673707770324407385104651711954574348146874191419811632873202173149505207901281021783730116856404688762963278748992001958403935545817461077117526341480806472579552255071504358274799969144548221330218401697013622311690231850950276840515853497275916049509379514589149558569447213032912613316085176295158453413758818727826616294130896042434910049626925266820119357535165731321455972909629378136913234665827010839982134775659250496101035871720799682158864528945428395475971880102238726257927857779853034923480330342111283406042625115917648025204680661482538050831787133289839130572671592225254602346741812046808950797665229794431229853930916285220563234077830396537461432864896750795972166850564395452273031851136198240817244408455333390449262244805428384207067060437888095846123940962260380611074257284869454256548930478208584973144050771532170486822744498287140182781873066222492236177862549591662746180551916441889165668363482303201004839815347168887117521440629561308996259961114134248233854456500796828383122142987704732921697158645460325116111802761956239459577317792411728311894625512022720794208059866120163597436493708440533862391975711347829838646237665791847789349064811320289560559155608596329359730690524822166668463382080352035561174917446946564326435010079621399012759264903471219319279362329433378502423371464211730407249922111855648306784258626040083041246375394884706634179943519372417603459205262188826653383127972661319668245964362836126220122229753381827635297336164681715066141956930604228652495472990371446690954335349979221522294236936968199099233670847340360241883350021909314567954474651776880126012349466618977343916851281744936393255245127028657680170983419381079946111514784966815229663430430470247111176397246934140990306077335205450585346103274462502404937035966225093667418599458494677653077084356983505159506296694600091232750442563018103322840539818382514892674090122416600552789411006430231148345102865963743519538394154516700253769901662532817648575285527468673364936626879460926002239373123572579296377743420100948623282673268918775737704041422485823427500434997657827712055322741368407861710204943162298040610297590789732954928239719706410184985804343406068364912285683342990013491400758723783974729142259882096626907237497076696488003095053779306058046968018604591180251429115759485511776331096500269189136329095909871627252878270651276454740541570546482520644039152871980697267731411953962356091301827756031322207307084510407611801214473923487162680465836592102003286440511011953775910679828135830110954336291928466350474869545777699326063369377761905805613832753599497090625353402352014191622603675798907316086311177898109187109549785073937748900107491873311513594239583735224034098020291607300132203463200403184980630132705912345712299901292139913448845281698770081071284527820631049482448767176986163380439355902426925202779544609294256171988304274276601447339180696825107321984642576409530283480909437407223252660240062944315481882148391723560136452064538460788791022915044449825444860821673219849837642876436196799593799368384729891367146369760241181222899668316827075101336503550060070620686562942970944477570636301827083513688172959812830819445894217997557692864281439478697945669313781463189203990159270499082169978816330009792751655434605614618769841035907164376541710482329392479282396224090513586773458232467454134864105993684079090059809226438429096613746950063864763420180481951957242797236435629973282598952592676941732639069506764658475083867505094110344696817133038250971930859290208942116198315500484348845960508617620823996334743035711739844741763413457601407946294999972049102538975488282856778770793952423670053197906866564677506176088518042318079594961868013924539474373429363321007798209876140926613875614379725593867936432035729767426041138227693022141297819868660156391554118580776247147508674777695160725845961246880117116311700809915925060107544883037704456285102678959422100561086721261673762962881034815085451818071511282221526387142569881936862579859073328881876661280778379877758938820913725560631063761470364123140269173288147496296086080691725919124964068459224922720790038299762619528746320645271120342701991908769389203526799558300589804015960256040353120348992367060752379883076903508563522715963567981289171061860549985370189795113922468619941906122913299595062622257008463125010846203311372675084944424933084704113382271253113406118477589055874131637194036746694122774652292662532988464052469727344861768958308436966460994819805616312104624744882387821553433885657324582574634228980617970828905831712113057528117508054626019432986153766016396849797734526859092564690165544394147675246849565277931236472577390724665073288826334499842981857290883674720714660259020898251123161388196892868943121721600011132447984855698487484195443139150988991619241864184301003514987721463186474991798648964610194122324790165056871987424928654019984357797830741218702534333274626262314308457685644827640193019078684390798203002558035755417763505572401835501634626229215347431042090922826520429046782066156786028672590639984344347218274453243235583124815328911210042736382030852591127514130414330733436454634371750295020991854694142534169519496471499885924287990347734598824731220580874228018241543821530760298080910004411128595825980567065576804222963109200888034776874246823859269117358099915368676421484233888728472315209925002510536366913129881786385235114507514332851689495526603242772004491111859009277040492760107172315368551684800288946807847479355343848579914227465265086228352769342660053714137902953148626019721897843323850828686014225593973274072729734254893551651033574460454136770349480732298066560498624579447993256620717452994446210930744262187987646723788153782375356407251468654465725498553032972970554412159849374773467695888917248731894923070758524928481682494144416231806482203834108107255733155517294714918438915044470815015382904274730994489939386326369718832028738528542301801920140183663601695424180995965278547797473744898588237181076927828527410249192151880769415017834080627347795934588097326103803442608507101243329204985034420731357476473126160209471634096658856451260342102719386338768960553674531003183764284880448527832989382588963568061312171796199576549604806443267880120376769991849042479075795255760837807561622272318009695835971265885052791437194648245777388080365503981673094980429946953738189432258579751343514682107548098880903910035580966436052319480492480981125784776097085613502120666886858474995883577374657623374608946342961345323914250306099601785763458582943454835004345725821114269866687216249295375686841985135993281582025172608504709640894695477183081699799791249798009188101672415277637109098894636412924575007569782934509944461526526859468311224817109796438596155891591055756820708292020969635947574997792885902401529023247200105372016540477344613176266593282105654201823408834636225182637511575250239701602297170595895332334972033384162315323387839667853958734737814930126338052444607466242116950191235752500919870025532753578266828670646374263132627857293118727308485807977302456547940437022090064182188786216649547882484417996529580670049887017128818827324286956605555675148618961288684598282726618343246663198485362474472708823627466643414628695184461293462061705867564935332993205199837916026430550405189756134684644419035354337691826781786929408268331633241187886596728446945663737004304447588488179290450538567698921594124548025981141918279762981949244062592815221540873948428567953750601540269237987208714451151979146271043380126676895994397215751581772151782517537707634774889117863510500505298754509173605678922824320897653584622421267627021338677399623897719368304685436686596869169719651403120459534127741713604217043322282663846628667276619308905708690636534244244809924512291659303094594768579548724706611523885337684877705348702944608183165820756995768592946810700088213129024312811095875935213439675563616515457806102732746211532210457704249815393455861760852528610592689267482799413567304290830286333558660047808231735766448390775959946415077515290155943701996077532488421911978566271535500920883963043722624562508051081075764326651447294543509008705389182822036622690779921562676032023114531925972302889206242393312877485292219193192120202909107882380670671995855712886611792567733362707686226875010984607311654690937955709773201373599009267758345767791749447938399221817567256488263961886820854325006295892459343793532210705332473844116241955391961349065367603949867558282755175567168690789654155259827127047653117340309489785980484675595379423368863540331054892657879355129312894362149289266453235091178219160314087016462316408771640738502504762172513048621390853259549917134745374210130716294890613480749193975318320908511668480938060633835104763872726273800238913064018407154103135170448587555561085422939617530036639404415910506136970854832864510101611760812207405966183647309437766395146700568343605819314773079207851311181198357087104525692381287556127188834013599157866542519621494172545824724603934661959017034754261576275199384384776697336308580428414222431809154942317171290817243830013028726273239397448368816485514050290945566408733434500919314132439380513861345576993633809143309772626382747715590313080681805206491058212323044422993007305822472190871493370944977594476755794740194961498350834033316090261909851707190505170285547490093645585630989674755485211019661392259272973774456027112631152929952371697898849792260730571120918824776965723178852377852218921736476418570374622896726888593552129124821681938191298357368073392669231450116702981904284854382079295735436022552023577812197795250511927616746081254674947959727600134181835389361608695010259235662279854344877337658434428174416054105988525758371574787541248853872177406571494095759772523210060399029950331041811523869735169058472452826410428324908730056574438557716906775066091129370757280600202445566508371284472119549894606090650025027715176358874312147708740505832236590146361036450072318448764073933652202299881511846732544186968817935489584287384300779895292839587349174668755764668436357632325776810871065130450117308276536086341575754963285688238844872192195729828012359287964640444993661970856926840500742553969854647497387684659893527030808683086090303130450431316403464234701451824839643767229414847677982586647836224863982739919902666236416083419248291757690466039880538077015044293963756350316298144456269399022281382687636209740265133919691504031990764052997781580236105034568547517518818373305761388694918705990260404249558126743165338743078990169578391728137318178014311189608577272347654938347185315672891562594876103510166891464737768375237399333253000078041674937252444299141634167185511727523174741640808032425557353098198764522042926641236593632662647792204156909940565055411527572610267889367545435443937745277569517255391417119435080310715943067047249311816429560809083422934123836387371685495774106644510019741011556351830303967004058956480718870941684327189770593588893114209494430213388412597158103870634414875974559033638199436961810583410135229259169457813937961738996984442699727897554760368933752455618964939620316110298495889684707978854667947388709562472406823414346573036007794769495308390455000077340487012546778553817931625190316355993440120126201359638958586567359422184775574588156903205405320944155465459477952634243474306302719370963200966406277333314910482815734915438710085102137304214496441050418055016510159527767304542944197360921309992521587544018502660294339359773549547710171539501931128505851494373240042525229654861767932738993150417630411787404977616610442900320965792877149887691892383670100014775065588049957026713435307855972059813523192832452702686864297089185761189194002839277726858173573035589122270990598122911347750390154655095190474024326738622727670476551069915926066112277269277143374246656683404324279794785748269892107326414095432509605475824927861792837782070703566594021761264708983009035005179121010844484715225121082080764784150748174570319989832549366407194200346735409512832036654243010874003401878648481466220167199741412013505418663012466184004334335411599748077462257368681125758579993824667387950537472432616715722686974679104138397294148548135494256415915088235644476008794972723337775510112787542985059405888338559378528351021071514150206797105350073518820704555203658922074377556854140875885928234303046490147800064293104773653341908887880065339089516102429946459768901303378546496311778383010111793252812415159649705309237091991240596877494776405350096354732000526905307519825596636348788681738064283340441650309796417918562099364306200562654745906690632725320775150727136920660254276231911651414221746874734471621003615056010951073281729423994893966360752173932751597019655829663768523014524144891715849475624096815716986215037400236948350808346812385289964098927191182964245903807368692340831027972389019744490243947353901293468537104455660156110818558207795522989697807269636608045602933807602108108205763747431497293909366921681525294331876119334945594117143765850671902975723834173941038373815075180498035664763505161196749272259570316215350705933100538317391313276988516376092375586253788410350960416689190288397203749415820107506644541427076030308251835063818975067438873317367013566289925441779040146848996099250961586985548040773804575101224321215471483858519496051632130731904493324298799275626894526773365818836189640974309293175766284327819430603900698097877554893486267210849587522992444806131349707436012408518351709893336275640336345596561893619826005391375970099191684196581440750119139443765637328829965805613744060604894008858497916120915228435071114735256672241804984010835612966838423506969974870848967601537254596348826117134694989536739688457777691916648751061675217976099939018403495594506077138513626209900491510703996385762557511353135918687860054362284254793762957160393826987354131831879852896415614158550332984069015971623372253607031908050578364035113385268452194342535793873988910224416939739892646687273503606062472056671989665588337818220447946239519352904427740594219609318472544994206485113166475632966122753338572012502948143116670249988649437908450837494476915565022255020820728028266720719413407611118405984222423347565018614130750473886905667409416969243470556168977228148591748343351883810349428236715265829929494320581970978411146016107791965412515245239921722384591020396000558418691842079997474764047620000485104841605616780854070667778907649814017654717370020062092500997634324225852849802607357614833967651891903675379934681628485387592019153083221305537818067270635485436263712796383566576455052117037841189821291539016808461253828062665735197123147569840987816366570792833352369291574870144914669410956531428587470932763667863914184850188976114802367592961674347658371486026837087039769927882896403198005573413619939246449408994068188901538518657164967177471006019358870301523910077079719648092500203332627781942282400950802326842716087272066973768392741296240018690379720195535782813072967494703792279472401295582198148805812067571817867941873993375780894719853882256996044037714186018397825001483080168815990470585532494919587340385462425423265376602827114190710276368142967161643985516844705082563459016194572426588005922830061164500422394526334816692602217292872327400201654586085646864757602020686198613333693014340871076222368863756422215991199686348791364065455540772807065556405104532180662025769434510379706889570045371236557857206504726038552130694791499486467941595096502709377850873451894255240895968929820061745138746556679572931062245663900044119351581501747029428637001413480928994940976730454768816640300397351692212369789432508786881288860613989179815061237794846329412058596447176701224672968783394356739117609513244036465423279517302920799472857970984252558034094269155606102749507634510132079421650846266370247792575161014118334426738256530688383573982349024873870357089877020923601724388027150035876559746654215825532695332767523431145317919192110647255895062892418175660905318617271037650944300253029603389401863570803281626953672105456163133984606858465266016865472412766804971080751042689573865566534723734779889009252576956239811756183520447397679061912149191097933115022007614463989918512471932606907247341280104745627583596559625696838483027931982564015775265520487132668304799550543025904642352750416649193782060879686077754790529356585429739998605925489031019962672986226073871286704906895162689011771677719767016950949234784810197958753040724111843413334353164902398677420083323826934802693726216463220289260149709394450107057377651683997162592448840849026039293302516388230658054452474246871152121751528957862631681788874941771629695910199224118086020273980227089450688002597996758179020628439494172886668113059724089676930042228891807155885705835687229981504104381063789793051365803538715410104246077956703561694686117521370516602122961633278670537947744627686607700416260548395545511469676770504362599216145983575703382466689282558103614497087423508257481527250344066002295701562051329768323940962564756312270339626585261362806345032853372661156933979201658534875174300414117179631656751800939250514021397493480363865036768143950246380336228841435999113870876753366156154934275206934505838688549082407003484493008286582354538097461474292136697642790516480119640162930329790237828679938877151599071079234344859087333168350759402906869459961161014084237240445646129577563224018346386418183818718500773903471917008564145895237625264220649701059244661466771438267302134539768834339689433807206224666240925829757498467432520428001320631710321906471630813526580276882143234179854472726772652828687702527227272108032335665864227450568087919063056940028577077701608607167424468402402789283772648498610263274899778484914628443677847838788977341778727890986562816673845549565351778961039328308567299898535160959836546054640312229094295591353711416690746803315279002717464699569009791582529050149337468636040356180443759915926980797670046556179422307553913586651387995512066847014852144642955484749017904713764655683228565310103860177776311622084430745481599412132136872460964953025577005805251091522884192110993175926074268364964749031947996129992222881568939762338035022784968289183828620632339717246846407797103232623068423304833994049284032241601516934150442107550722074707562818552132722351215873881581561085835446415077124570554519834414183888621566394637218163595813899235832626726558810472843379239759885742612465980013715487788696105962654597326743277232956753071297410000773260622939199536577811196715237951735786265386947417861904393531322682165150694065142780190461195322252294679340437648175390081431359689785616721528829173442159908481722972668515517305130888917995996536853770189631413739723986554958142485190542101329214249242190532308314290479379785106213327536234009180438665102188525440050025509820977833785797223374843784723954646281915080261818673764706279785302373505329797194284691479040109784085468886999869223904918567992009484760566091952489540738295527608550519193362777743022374342935514990292153519647485757459624782997843658226124801469561280900815173704765727732361295024786969989161345881411125732303885768698590859152427165790809723633694220664875795498508625128713649549744115933639402077296976240717847000463395049221231312868855304786552766665235869065192406436193526892746825767060750570375538320712739570955847070964782321711716198309301910326950186221496991779891281782109792973295609188003989028596006809951140943330868947560308954687897448549590420614837315544789388661064106342698843060545156179930912774118159667597855452863253825480671414043760509890112480070771073900484582915859156931900801895372460383130883048979709764247655477634031426031144854604887663273123123855301566817944380355956580182045092164080181105359051209938848280804321928338167904705839378932663473927474426883969652007342023971076924804720173007854548615578521273862682577541801406649529761737321189382228064869156992983198554570087744529984608338588557149692051931237552775900562273176049405323883558870975408343134237279675831707361086812817418326972781839773009331423213448168456617662677193852159376059048185795553573770642212241431040961564676556669426180887326208403670979822294750444369727671314168948310142340617309894639560379747501414381857537015056270462309515129847985361036502030108297432507686018276471900202075645827051994177591031201724454846639911706222160333935884974650041110454339188157212319175341531703430541143420996935751822121183354757300402879939868147172656210471520519482861566000708546107837346210980292376940396449858881205394853618335863556181605821578664810036057254252270900836688834811032248405745584719764078177302933165479849336538095038277410316451075298098120071676796511981293592847971712317790547892182806754036891078661387207943756207641995983614851441487472082839173975637320821462592228278763164731002109099153356805680130656800076212163923858270054224876335561766076400534247896375126949003384528534070520585681083503784574941714489001682855910498409291347237984712443390533197499385810503948893431683691799237419996421148096294810288942244095672611125462060067482382692799036966534254198205308384324086477698742362143472364437576183703868514496811940597898809126474831972721974833531424713004532136591726787917949998855213714626449444978703453957379399326100097148849023171858070171938698619079712372960477801963730112725108721319268473821153808567610788112529277855199934084635235389234590954678846359682530060790430418258470500587690619775780887030671249603571619195592800092647028404505358647640135115611984398047589307444269230618134579178155170661192101354976407968312294276717847440233939633979586755248931129440946382641741258274970813817680226002650354595349111759745117352292280786972834941629768631197278329524046723086325663187374359803684446826840690219481422904722947207163767404146503601414026110980276889002203978776648295693075565142842577519953128902408326175900539540941833976678010006145496853090353553128063099969176594584918520741542714114803755123015068015097607903698735032388197555608744762923244028351460497175138770391853495065886153023184924827049759829787297691146952414607222010605546831543763879605602145504821901818768923053431118889315237019631780972880410837566541254542299091020926238503984273381531086172288837347796911752530202297624336936390355070529531553099145463791035734676937523196782282899170683398664490561073639911559253843914048544552839252039844412035865455843368662266003784537227691724026759102882725860304296862162518857016975888345210342856334552580463251357096280918663715980175179291023290442859722393196209588230359962202937540072509985813384780760937236891716925146493005398198781439106937282913705371830215374997712816466298152860193230030677386601624555998456368793706191897434905548323762641191097850342352375850465123390760357235975928354935447638402705781304933959314423460474199975709260413251772087114035269507891204912658707829210002745864200371755524691047912816096422425857967835976120472959288856604352740460190219518756384223304906212265783678274627634366507784084570567030524321212351684153535911390104992760857125759618012711130551159871297262097635749570880955707514021625725682618257095566967312406524588414277947306360615814866998402495898610001321974877040073063565333543477596697809700164578906218680511571445632780246867643124609969718802136916964427838332917884750738668036420475033417657299802098449173831851503072820681113714726017241977075295563335487538594130902281752765872272009411912022784704994180970929332461214605705960315643049533275851966855059671500007836617249917861903427680728602254315129780249360199618330135517767291727927028625129053387267786505747025353835085151344949630372711392263392129037469167223617286635844637487129523187933017124078748232273906394056524219307015852974098725368064572448176947865766911320535781183282640515175146846848068258384513053716663488577039966527265912901226862450480286215853043136178831181140310024480395228178554061144192811704575992497709854602684532360402165908635040139709924295026184557472922456030243184893614773838927129526146200097138489900574206468405381782437252119801365334884351540822646841575966850448572038219497733185532229641060856542316515981920384057854538319855140604179712614021617283809081626596899926298390840203100619554162973117005919708868961939953163107970694267708627687209386922645889413229518889079413411565579744911812273688756876350134776471378451987475825462951725739237109877597089496378009410102886914711407439153588646331913913063589081026647172125432132071289879696246214192931217297846414371284598964780370088040414462383031727870983250361453268453323778032948164180348841067838100092887354082778611901222180833364266673938018888140494606556398958489905757659873265595064086881911498432032732400926211219657838249629384361929452828573454264656948021289698943143533003300638666736541347346463784563386221605625412719963331319742724341291860956916393363531320101211110964739881425106799107146271870133910613847225751734978792600720163803240481705250044355446713693218714457714963093073636085680210216217222796777518704830958461026135891513833736012447838202656823672146547960010292371224938309200845894320788736093342100541484730946718984732976916105682562156054125989907032557467378693002531007117335236897047197676887466323332857028508272422774760165048709673524173235674864895165157682729260474894476532529504424751615957147228608555330108304289629236484555349145890186520249851985507324563144817531835317953507061821924373431281972063566496804180058387487507012036683545375766970874554346305801885421160394059971391451375668100436959106383837145049565267848988651317222901735754393624504203950889473144983419598391230951548359205544673988399064071574957548439506157387151997255941557449741739337161144962350407295101014784704071848665499410450858508857541000553215057913411753162238921138055036367787733692220691349007192019778767624517599166656245920470019771027051675450194017071896272764684215602732010937975075786741902698811803365312103541201073245429860437310640683389035125090153099260541344140025999154361798454287163801676230347665098564312141649028956079187141608097829296053941519659195172122542333043805159205191082433460226907962256473580323254315159078293699638785265323657710520868718988815430632506344074789890772658411704591309019765974308521247955309893382744083750186523334140388006008496836900114662279813707920691581368484868502849438438228491891000023926178301589322444797076133190883202265366850124621503387413013237425553406099625630734337029463333788358043112508765526302282681558076392784319597262906075459891257053105087720144115207102275090689973331924220473124279554041493984299750222323063698215443852849989529697627547638299868119074888239765740373769448432693668606417389918365561076420646058109002708839954702555949313985029166822252169694210260057698872587674723486886532715253167957247171802757935240872491602272007687891179694598117405392120695150388038935279812438830045453682921675683754819176098782064666225295306489732555171949762318670458642770942095775205864027813360749037407492598123641176797890513825431707922382155452370970080255565661812524737348438725861082197576117567557189910408237542612799602091219224702156613428410487936149610615330818953408029580992293075945397552725567631187645737386955606998669267319397906096656445658694856119417934407216683421896644230328252740923759568174246329340543580990666499013266670853116493300897489819802431254376596754919315067695092315100317940992154802340170049907441110408115456476538495752693163044202764710138751931011831128114367682805362058161275437361360530322022360321127527587314179457532979992562997644985225888173245855173233164266833382050384907282037442698811532847155384001818282147258359282463422533905081808170908333197453879740331162443669117605138495031081962519415470384308522601175046197750588891302810554374664392747885319676898110803034409937131498506382087709514175582412763241876906463853454721923941496268730421625724216613340855049024818473442054883404703383541616421533836028955044903879654148602203893922870012518862735607302043855779889976479564960335178501083764191335804170308229008801096642732861194786160401783796027558144650829527190467381449855516060670040151532070055916119347199814973688460406053593666789513595738282549192215161935292032130462042767665938682649828957578059115727144029744001519048809646171609745283371576474532591121944723955039542151299834241369564145124534682574785470678761314339316443243451460483545988313781018467925871760977319225662535347877611472532523115892319677721562721828582868525391741174795855212731587523315874823636648763760552975591565574456263589557673808222442451153300191360491963442525636532865604331151663136541123850332920210335385808375130347997323932427718381493382497477384236093053541044347358390776653945213983406084975573142591332590778169072039961855957667152827109782341345488377871999476081862661207668298130237853600459055143405839942741906834819997318170213623740133886629579676436336542574828939984568982459415317897809651183429995094100346501188110513432295300863321293968046688668994478082475040401074655764368106512802351115636010659355797420199935521336385950396979511381503694999968494016556249596519041452841727915531124084939433954378645378616838015444462971770025816753147380725945792766085212964249652915644219834590511319888443682210158898842391061057819463627509897508326216668791417706914433197383240056373556367862621035250993534924306078024176596977181160703814180838222655083929252894654459357394462588623461507462856098053865185663913010149322652656976353428768237880283072386342681567099637990286361364736335920528789998449714326011508564464049327571962780331864530110558151596175951485963680584006261499298081226759769086794277266212641491638481271768783419852568950996785353133630082902461884013390354805012652629431814822477630662846286577735250832812824119421857353449657942291218550381414753987334069715147001665191165724600440798749378229381783237399838241382658211037654179107922784447540482140937710061568509343356380774756246529603609893250451208488559144701835785556153191929967950407109630845742553927824399937162145199888137337436619029167968386184865964599945238426129008205547964104998926754386021294486856134323487198053405259986788867934943950793118443171063395742938917257299354060584916243512586465349228575670286788347145185651360062919996433420284617820212654222646962106465513107416465588137860640125676709399562784418641506601974523231309074857448531986855136170085275086599406155870522469840500734258199306441137889310900048575530928866467970053005317331409574114163111754396518885592485116028042793870099651514637910456912672746975641081098851987967677418062892507710129980723492040905118513426514369838176388209650463962126740137692374756927303164613899630731792163625103463692777645100355564459572849284885680091464773746111662613467649437201386370380096643060365988796421318255448032336872465345930500955893138404820970970587970285166542019307208283806707381550742646595870647830905708911546596595858107596791705493674181482330825486996153098502748896114169145456272241435815617180419282642189760234494117112647442680533673334084833846549166178740924443749965768411776446764967667547347975000695749796637811277902273454950961610297314107505237967236323481516385275940639255333174582216234781726097835313518941915924520491432491984062866726159722265380980941066712914205968001545452562858354213953313596636887129781841756167935022726300812374765180022370325897990484537101103432982503188232521715551288619348140465132435668190275127340118376781144359230916955010547066335112294697888635659306064633188527491209493824156745304508655267224468542524986677499620051055174708390790094504195758494618865446245690689792712589861154550492647524809407128465476318647860889953276079895195853572556332938671645355523750717777795352117890537849807564283180116677175715895840712070329162226673010519142582663318626530241282950354905450441429341414648837001145313069273590797000344851833970398132648353099820115300639432800278948190388723247865944523925181690409954616390004045011325836788416591399138660434250543163386565499619130289818513648470607443050608321155233397809030244467022099320793781859063245430435922260747245641801381311477952241190882199329740295634702266794467057534430106891145534297599200173376363969975225564100488125928120983657215675548035721134840138726137766499390704080969695345144090069233991524420087153297356287008438708394244994682730108542375451163900845030188803915289708393055300827936860208091102926852345427343334283057232217755487129339989254314454211930556157148815910675528619959935778527168842748208686480874678833222518939351462801590675011365620731105081702262459201520640081804301448089885913675531988457110702718198176060130274523510756745346800398404513842203724904227469128820274236438223032066441219301003633355885689587143389230283683229713121950526204459297948691055480877292496899926846975893448596118567290647936739590544842440037988012411526831009583453316680939052715438244234715309283201930984512539473703346594808649824998353636575062089034804868495591446357134241524616776607359242588358561373909165378201239572566029930952921078822517907309726011736946724570498114927282334619980315758101985113064455571037316630152547934604199470970319221010778277760500681801849544662306393414442329934518853336629630435221379097141826451790786583554404248862140409599497597626999337652123666844063323440734470860265273250930816667682982968423633230827864903957686589095633771925255200262237865938594198003165177641024784697201881180342124954745623454229702113786396346538468122792514613072704058298987256036240656940541449533739437692423045046894417952862273533456337981850161754063022663103552378967148237552925854491661601773757016439785297385742775234512436385769769867179913438186887405062515952656998138689198154332159291943606256041849199758675776221656827788191812244406083881985157192281549850357492585973938470381614553182373293252175083974849131493858456483245725892077139545632411198163254000205084332210899461671856950922999687518767321342352170355045987583820353300397434491308743653336115528345087666838432905372491102975154926252372246507028777019079462173377044103094880072184526495883740123991147966879977424344609418248750524805691982298585090165902748236231583617918666656020720759534747778856562264422885720383814738526321488090402041890690666312558545010311612144646833478977715258085174970493012399902847235494955747227509673781902625612701305555308070980317242943734634154006967209729371538725932541223368753225619657717405485125864652813605257188129333667847568041056177365897236943069878756235880080600141302811431825808898682307852976668648646293066340889023878486680556723320872686100485195098534156268934358244698328182091696722710422292073918230061133492147889897136338011481104279177667650618397240690975649562600170865016367036723176376350212812727259506987704012835839307008799629099400970145734418442662731634967827473570627997719297054275643401582604815819347912196553614759149354631978691119123722665757444652186610811803397076262987440384996855454823459842218757125463369426453986147736545332203060850665875811489623459897396263961548064251457944455378180543928419398381865702815807088106330442644329765837780584967931909053518681388490694234207280747478908847743712595973429491426097307103857360935709568092582357567573177866794400593669601382079106369153852792448139124362767083889879755120875593409251256995651190419268788119517154668819965420121537872493561812636357996076985275266880883774275960130482345719541732409834430052307317034744143833124861587375188816890310572339492881938270987270627163898287157489590729028070688607301915938134939364495205894569405198348435693897403198194399381283771912149322597134498229191048688102634190999437332857585769863485139612190396671803699224900934312371493599753930531867636046551738068697077462251338077290100070361590532640294028891162332185135697918901724007232980056126308628719127820427810904110516567041761662324286247218693331859150398771701654992498678314167042680946059723257115944793559261379433166931023262538502003026687233270678166775752124087652752567287151728505481120146136300627404990841158338316084414482342751915505240935421269366877623535698226549955564719350897967695524957245472911118283749278619746186341204097980393982356940074758123521056028669160366310150262255314546117017811281666164637795827924782185391903171054254139513007112228920319140379745125889254230891801189807537080913909549347678070479980393898019593632438990384757457498446826290380665790090429310178440583229730937616674344499080353147385763513541888658144232501965953113447692235688147364558359031028179965334517804744241219193108140135590426100161568234956573282054613756578299231579308425399878330238048666969016713226231155924940005018439025315946943865139519071766275956134957884521960559540530854308458361519229432234939784549530919574143824436651551456936557028689998401339077566310764501499768690801973936670815661186398895187212619194644236821663591232232257490265452118570806677628189483941203795454084457176313539486389876323791595957256731289198679319844502849741648245721143307893118874855620978374698942475602608558582393991337901622205781442556718256830842887458744987382814161476925082276009841209240154279853028203895917633291226266704467684929827092798674789543253477337130520659694317121939645722147723649778617100723578961654603766800563960335455731809798186442218237870707938953248053136140991891271375373902453294214853249339097129880941977320191909915174985356643867244349964100965599028153525302104061626243130789270014656384286125455561840662584139122375329349821125197147559585361516271349623686036918512579220973072475492427881645195951391141369391024434025121891168750762740926839181636976767227455254948398106035214491710970829942430033194206192018768957052909760304928418421349532565039467708940407569839533488887694906588191365665424307992410707117979818481678497528962980864653216395870031295324385829421242416922783228822338275322187506978329039524926633918289952192168700202818638056546707646069250268102239616563908244614383536956936629848703172496318010944375248118957136431438548223203101150283172048602452808147118407126495156913144357154593819732891274828955002821342729001145611698934805986710679295529009398086618786374700915561833016745174565794091354979274094419482169215363851618933096832621235643397830147126735886419736227812931062494550041315097985422802003924790925179386626388084763150478117438186409802284970116321391613160820700634395708750694907696176055858351453094134582112424673104426992590003506845835205076322962526448474457281557898420018329215308639551199215447712526594302448962936225333004580790401504029687994574426716169836715084384704088067710787687216311280769401377320083285931831970176024355410048535846130897943383712896272538592080731674056298656421805361391724003561934736083051917516702256801552239225373678002323337967970064574030404895395449567770102819363213912685093115488140317869091158639102653477554919836577998974012121728559374201322303027971746081190905396726258568026373066482935443736917618375464107190065101131406609874782315788075284454937830183980274818934933700466332940806219444765990627018473352744309897763455402691575702376010037887788068926208288264905694132821385657018904300837135118489713364157294910397970181891925118352356490026534159906426212028371637389570773409958929659358342261689144505422769517241024607271813385102044357349340833180182075846424530937546729914772883587672254709682789109311302547796412473845715114984295871738144258997161401559588815458290219256401427069064985244876186365728590692866151250183568253617207414209167008435353226297933001246381303762360200166846430049438204334794662651783501203376678442807913894309176404791911408470937972152470660267969388357688937321014382611545251147193596480505977195320919976237203736197969699545093131564051582728831326674579394072772949268527570785648958133722504952584253957053552648742357079853478416890884233665351732595104355556207157362723253105026409788106493230528551862262241967357747255783789528573661295965096956959264982056948252205862867363354454615806767788087231571620337150227330003009901110612840405107826300248701315853413550215236295311992800674356843185726019421568610786592402128014121962103325563607929847872652418217551417027888170375792977956971342583970766098082960975158358801798301087037030794038373143476141781452062359441419218116816271327440861275737453116330352998432994322236432015457091014612599177890587263800935570082111523786737620244258837290362297473792080773788022625069044536068748243516492835952138492138529822482233608002414749923168980783475066210943665092820166310050335735408951767499727977433208901808686829324604633349423404823849317843721477427920769819111535411605558616339444878042737375901973420188980890598290744374180298516297521170136690746052531976762651094605981193252733558803753974746570975717192684553625475732807682221684576733657145982066461631580383355730865646048053923003384219812536589393630965822750545161082232739925741590950988020066116969745835984335731107853522110229210671682427324660052514415362373204034480983960001812765583485613293598673986474746326018431263112496954321206837723189117276045206676964256583941282552973214340555517866596237521898912530803211262212182708358896661434953506292846055247390936421380041402987270663304894286584517907070715618546374188761351454075889229669950289821778926716288834340942848127466456036895231330979897541275194615713347358609488054731910488746743959222628186874837654021175231576725896591835578529886378977069123342478173695768276337868493189186955896306084002495191872050270122473511175964351194948378953560391428046756190983968288482744430491288819521044629997743791173999626309558737927698272311630329597227122273400857893866597765400202622776870907277598452120941395337122411655510296330692234507374041788510479966623599213181652405497227021860698015477148193529328296938438280668863525025669734924475754783032803384250944482417458994747315552599010637012516994876305372182226691375412087832617178116156872500558739698263249973907907185069691803702877418087957463185539347323762236964910410154859923549174040285268053378697625843398573235534698823679009939049794424159448083327605124323706158811681043710119346628197179200927943469879763419863535449336354935398410292838716000736079038557649024968898100799572250017003969567886818718818126620965995530499147047764012074304178608620839197521371168472259039696274303040690448134457707199645542937046126898367511653702176786171821227815225753125267916549336126234368665083914052577527571102737075482192772160051145026453080815768731846346631503889599756082248560089640848006524723785317705693736729654687362222692168896922684408688240133219743639109817406848073201674293696560151119200356240123985917991588620189195224296800991796670990652977205053042179592153466723845391941122984247456048824617228953319087839629478515460667733372742349328562409871860855176039858748160165705261192607418386454669236769921754549604151759812201685510405085381978245576204486095732063321479970043563849483520752640887930807323391262284896332902515215736220337807264801298446632286162067439247032946886697387217031851729893020302397919275709706898306922550548915165363874902580895412575423948755305114422074066607598632944825475869482141156272076390810041907649317923119869636547523685366698661045726081890533841306239739522844031510136219667033648811505700044272340537979380070708841979676792464706132083337828268298696778460098020582986068235364699033469755817952626991019347280926289471240322651244853675827172821507316904266056040092503276231989771123316073202898120815076158880266461957333753873526401921774750027551661079032403920417283559117910930712033639569655950897959565038346550626455372398946025113706927183426581771842622898987775781836520679353080703732272711108916666089803126346595483287921677098953166376528550526837281264963972506630621970138583538634528723104595157531571296314628767157418710778226892044503145506251905170093226348509069941271283856893488434712814789088165072901323856368943875525028208416645137809176069467102937543487490852580029480334845439177520463894455419439659259332957935597747797033068089021151930256775373162168856959401808451563557442037648265610421810448360613308079541780572027090980795586474603486821616281825816634523265540068112996939321009409873582421574045178630523421693770479066180949297884018127901961964315082281889477881773465289933334956409521078211449806957675211359601096928995225647220818225130789384247199764728512271443845491266829577895329857429007324330754379637784892232585849106555088814754502451629306441263344199933897941725270200016159021018757730837356658541877129950941918113140572610813652086539190626894477875141510787517728292120899234419982378099872131376897414299592581829302010994785699098761026485709815110013577367916933769650445094184835070078892515146158556184274246279273180027813027177570118483869580864549967300549456134909953144253010411479689601615297916602500376258787628783220942792310912712899723391424442309859006250942588928989034158282506747671092004211475990397824210963948186066224566793782992432606773239800701736807899034330632093121576986156334037166051406189824695796782648323782202844202595757910262513660488774485516939784163035611444454375349718857683302799512408324308576532370496587319790585329469821536841228742702378415869535408310179449187896538260785031989600411119822468423270556541883574438158816503465374552129814715172491395819547047839355298575737139750374500437952920216355768580410886895326662755536441905436546970256523827054564172389077268721062749932056837642180134423047733305366139145670603784864248682975508144182879702329758527560886263962782313021836296819668902697992874403064394478401710085424385704741555374083548117479142816619942773296897785029034272172837318409986530060978972883201787127042207389889094868311448112053717251519629663872257394801276717498053852858616247509853876896317769756254295782725681669149921970516528161488550427283398692865791983779941215789252223317379800529492612844303001945370474814825662370350939742391223435331508762593471831630705817837504616341088460388317457529147559846257653716959565430515207473298495752024372221591235518325091852557758643971658057292034909482801086423874671471516077418638604335847125528145037052529751564709184740872318740620105843856654227610370647934519619002357926878812615521199336152636398123309769234832550356853286474215449048759385057204832051276061714102935691521683064914700641247506310605233769042628324757194173611433844421265804580201968498929081856342412994623486106955505782903477639527676831324168912152136142426977258844043201294042478578450427736712176987111509615142536202094008411817381627601159193903083733512040395807584925119627750775875396474831917621991629128257536766845348924204395862480771334983560188125204207868507427781493936412631296717712113815249380198401004283707249774730412678323464974659807681634189341379746582613137840807244205905075988550068654754438589142832784986488686237673032559037361217248837537802637357904946723057605745931824163693306888582340816029184401681922114221590085624560297027140795342721266490406790052263676362713119139210864668112028485347593400376280974279216846022346782479245252082417699465809096326885669592041630794109426535700677557531418218186025197773375089570328741316947050451497257815696530367756051591442200920206651875019268881274533878079769684333991040114610781636465660409445637146829138514507569692900552666433601352398355044414904981902423656397208734733212530718067500988278974625727157494485826069596917184610880378937967162060162624317937222014625637814288397554646685354555048356206669826240248838118103090560755286011282480981686947455110116385451679574030215661475999413052730963561536585553768357059405176681298977828769952461044648709640571221910073796950244765025651763523252586966550859150786716349796396227466719943110775522804367428025640556170285765622039272761908898287464552316791592263578611940985522002408553443591440413521227151751303118107379453123243449433711997002327751292229565164461195822213678487536598856906394408185987802671945047244155605169913118986936705396203465153770468834019136879725018917412612517367218668823431537336808375356846683390995291425938414040793290009773806834121525062088625578538375505540565939064080231749226227498442022927920836470312362706318440504123158084681053092403930782343942132783447832489831137202533765681351798212688889551165324159655181586362556436868265997525854269964084048182194217950825644518177936677517418728646270995383677120999895473321574953373888284238887237961006552899446968279612603293147815173537070841657235437416448019082921365525632833640651821967237585890715276317984960683804442066671158974650110617197706642677473005334741202370321460276513036113732668351464755770079913909904940121998120626519447794175461871193159081802959903802650167094285537680864899344381045730915452946655103429931728418151813920631114603016905695692485969859061165007321325486835750675540275015256944137495267313733764256346714983825200345188442405528215813808959683781832472852149911928202123937820679694107868722921444933993175618433573302363963647100199567089306836538951978379469394943428374330245328015044899953267017294886195734130862067715343057156558550354044143986451115126004974598121914402783630877126995843386985943820784423923796654019904088412810199241727510177983309962557413361385654311297321463015132656133669275166647853431543118716712553295617600425112151322150460891516012952008973231324993475212985644324715202232279536487334272239957829909867849994540146059230312452244654932871903822910407941123564539217761541905549049758774405495139839220104999754027755876012305456515519623073170996808755448468703310086802985935092097066222456234738339578759926442397007946110085948861225088627883821788881492695199714332134756905082140800833376305579285553163450796031662781796856846708307253264064490800599708131320264951633951623015624318116159812471994669626355917316452573196486782853008668151453961216087227293585281497101642684843651922454588395472091332814561306925351270621767413026974842426128555356759790521683978598404859032033326635613210262801806469893449471815472699110286774677902142664897961945214976723603319021931601317371929832028518403418113735640593002571694593957827499832489692800423475583022566250235235410994435116865006782923576148144974542672731395402834742488270137648034920164406303908746042771960770282548947445825251991721330099402848212566742420312922341959093826214102856627635929660012889890147655242414736886673148739267571953043340684996306148956683399502711744256985865445924521983895283224750007973986170029733488456065575938432828369664555742175354957347969875647145157725279547870979265596922745645737161231760930312440989546311334712889406297449523868405973777948400327096546076031014186861715478471918798186495369162153604838517971090740414537386399038933480330709477849293342529893709314813470616504320860275927849127284608308893991405396338343400312142743982193601347286528775016810252940795871503126935062453366678613509122889104472351819281579177641867052164326357465525542535363491392708869951828168568533912946227202020754579257080257054611915077772195113538720110797961320769632871586218838349167424169455829554555768159638169112018125000157793662829817495971240023313997816269834987622994261764521995462560029634167522184062551852418385862232777371136875385496159209703755943222107832610155899989768961068606644229457770708186755225105928458668212631224502581690923502658841570393353070862564257196305171465023175032620778917948048724837501874836468737815707242559861835440213046711388843084374836202623899505162124678546117193135450797475042215045172430372658394554318985500990859859552182254246284907201698324415702430561132898802841356488491764767672375683936985299088413689986263251503282881671688141520342971007035131163807491428976100741431869004484373142853975389538909046732571409164526667968889556420316092397226519669399246851938656335305574162042208216849163426039217152703050652780943113238907252725028819516111270495766242347349543738310163866069212603137421115870772107756840983308090230600337412591487828965406416770988273865392811040812492581073231178714088321320202674094029727157704684245520589352673602874900225739563697442025324885002884018224397060338189709803874768316173677583604943089961094247323796474343497423387870383106311831864216289920085573646007616467057063019561826751254157281690795078423779556205818010509857376013885375656927898647655164000283618371332871093517733509254642724006964424417993507670891329956196883381866129592148722317420016934832134332246731200928607211948300618764406852859635712076697495722074337848302053221247709061022524849157198999402590995650448604883329802632850090621315006984199934959387244212170264217719549915889531592408384663909133880012480306676094734364119118839261734583014714333716133860043608586520840234629485719132611558814369603574952704584175570312659964775697839471668292322068686399274601283301216661709672093738670386594948531021501710447716480223193524452523433330731024239933933802625799818758121686984195879460760010728732734128616698194962817370961869819655725209822907483102297737316275256325334323128683872261135066377934422097591081079729188976593541475986623578529554478144909587038684387128550005124195159503679383952161945296414277902303177070865774157701560122541400618542180387334783598987438937276122792427122195921807593946124301800738453263984001702035110801300740293663355599120309069608394305533121599741667861411168966727211305281963043743044220258605651085477521754281912898706099693329434894039280501495188221717383964098214171728583708223596324438221186841711050565108695987541634538781682530600568124216843889937423065762142461134447460879631391141921336450388258807819049977461036871585280505163326788402755562719619498950030956297690147334968623497941138545520559393038563562225489129290039367232829345857954738848857136861539995636949102893085360182769707132560434899316968553817057478205480049794380075162867566912096829303613847273251074116773588874773595926937577226467125789771705355306109901090834424238128071566569882477306956340847541496563673618390321176082148869525934707706614510718018537122456782887164341359978497773925431604790048149518114454085509361692731438141703756694686544806132661294097073497895520138298391825277622638469903409955156936745114972355039435506384379251267346266817404867641111368922189549985821512200792394721063068121107910784194947171387720647789878751267109136803434361259483294339331930354825956966971353926353380435958384388617514282199022658640736874918721779086254765973782762407808036202767613194133356209454771128716204127302859778869402369599863322748830081346374882228418540428873504000539988654996164694690808019797638255098205019769186935057858671971828350711763383036100467114395638606686222176832786444252310496647511502239256537026785480234285196419940845883073534095393638579120769506521178612798932984516652742863013617957050252772998322046358154164662979471984318707920524327441834480660022012093011481174513514667436103988774988004633425574925548048734136689740280746772625858953178464497641996493307739635183394104488743889518067480668380615046975069376462349894344423564185199695493320871885684519179896577928222078542647810078679571011709292511800920203895030304027824232700541338544541129177903384329672016117778296062881062111830921515081543896571974721337770359124368696387579640155771727669064147885266732462414203316548135804044112863020203965173445855219564565769347639086566254147938754791154617242728380604754588721474348884423239642150744879002526247415317921903628401511500299636145043187583750667912933433896118914082560332853566108971094712643725390200602665324859160880575756861925985872195589307174424507383914497592727780029351138635005382593112820928307480451717474381757228099239763122889774902586485484349799226082472920687147095856211791186079603051873243521161960519788333527354309968688422830097964146436990144685126968362179652183364228524285896236340672531630285969283744746962897914134703751206213866463646798932991588196030930552767743351670766379057870792648218840686089398461632857618231850714915302279776776558329828891686399170214912369122787139969673413466706534169988454704399136222288893108278238384846218861381611733098007880132015266397584083746519410196735885935348247998136163015516094914306088730745627781411097243268535200873216186655354406413252617804776479540203999911603537332826884816214422779483379383223399357221783309191882689461165052922460577398447670934520495122068743925621614124375947230648016600035223996645079167733240376271715886804999065548823012088010440972349880316214928077544413064753688479438063761404938597297894357557271283239860493910525338249679165846968346752155107809318923193538254987970474255681754603380279248250382747122983313141079445074766001547779293771166051004075692020481387951096651645996460798697600868851528929400765757320697949344075632347205252536437565262311977276165518428205967992972173424666164438786953414319785650484238445856693228864908441065702182079547215952228659758244230214515298317058533237645938937496896042310468432263816189388318146618530306467396258777373801333520785935499795980255576502306310090842668893670751981011695188721272888166445270255792146656998031626681222538979411676300968966742389605600709795526880476486948107408581380034272380578109271091641966866051819505342801874579494330023480576237261659222691122528413400744411009249328554378033166509345206892641711672543266509409267016873683604520986840784710689703312462985848363519840447888485717200974165075850133149688398276713901455874491863311293462099109445131029815639095390691812886992927457778715558887048408178741665747260103691430157468690005842549450884960659073884648183235820025943360955826490416037623583732237405344236436133511496152631415127479237744222058491129938157138982303003112541231842757016182152350154465836817651090774886052803290113868857162462887654032337701048334901899530229188438276068580330083923458540550614651946822130714376575968871719601952100716895251563685501585669424466445365560301799363987330787142881319431903541295516166616550411484960540993775497872319598145535031237223032536412528652773531473428194971947859934222389894899249572000800707476161690389741790742745707334694894564503710466612498613786373595413787017923487243059108363627917948575071752430066295370161483886978521937559154962458024391178301793019842872943393250367181299406463976181610087093819221057749227037804131682890520941235645459063795126972053537248835977600560671886409175415646976206674582988516315984033389300765898504995433946608948007412787820929002136877259875112830474503979175742350815626913145471924284970039841520338668244242063819012423873943494484201906504731559338577865269711994395063031719911223014441383211648352519008826694351581862937132617423287676761829173212387518549955700282401349314951678104781696426471017598633697803171627924379544100540065897120890208041091817417252448084501183315292736067906527681027054125545160157694870992425973452897884035653725532166818041407400055972973225776714126470801467777247024097452111502019135905110246258699105805333145966425289543697396362707697184535736671998818763960876742637426677446539462505454847208387483076369043978996271206536571048741360741484088402127137853966780043990142044112359645714639833191917563838326658912963028444404680376267292729331359176413145747278552022086537673442483697738466818784052160385008972384430524807697703737686176464133900368681211201513164476426774128359054553288032804899256336857052871750499473352878021449768679056517546919218458063652549555069733943977708648258598380211179798955394854873508366255079639068179957345930726303976421056431967801266746278604702971255525303010207653440623352594519757024234941824701717034352974364779586130403380426787491715297833538209105603804631179874139629460587674971302563025301396285328947531838273683251924857361444599712341041336163350938825985704032519257137132386897063874030497835765479303458359184985123472091146008446252313754122481359180274241689617766317764451509554844095799428377023944473572902623892647993285870125716170414851991055504577453531197201216836708893389763122291465778751087580366006733827844789546562830879593485210183695410854296609801050202086060758835629542047724644079821156921932507217672544635287758363166220538238726787903153255400868619707383113918521443784228728857895161190821846504086430289448793702942281905505071575506543404440344747510323809543492920025321876148901950076852160139705248378157767321400576095058432038026081743256623177641343587074824897323346985269279909585512182123384113060712589416810371238776686432982853766162417509781612461618528865591299941902998482383120720687437047033666141876490288778872994661648511913839804838392321846326902892916658694361580249198231496700483526091607701458099269700578751896612960266895255716087713722483354925624504199084186881925582653012570986687836534709693863865486882607518903381564965872862458255143354369059440395383488884900324342935996184025748524789630216165129718964958510014670858820586775272592670438729673281641640496351239895642277850847118617757490460982849549842085111934836081725427423973552837676252041566697853957401840838472582245944782698134309723139942203284441982821270964108182412841947162264567958532930862892666351085770302245259245058372485584726519717798502608894418549601532377967862693392962226239852570779031212020883560734816813319419924304823957631854446276252051550648545330629212769866333747246044558789586630978551720476211491338256169261907957503719242089273100218718208475674664400396671260410988035563420070792994349319668061804057492476293333618197465079230737493562097231133449933162990690712832485994415987100311979598124878072084846381400996027009026231973587382708889820615203396980220640727930241422482686234951816366301474299853108701825212943011627279708741545875942912400598410792401305008738545800969091902177337225426453022046421630160573660775809179440953610528341568724291429346921720376592550066170376506031389973448924305759005892670370170141850789730238080335033847360802015629732234993238215521913545664790348693337035453120094939227388912674668319906692653163802551246582188894218017255805433374617450635980942975313884874927772814240603523359353247679569186014387170282603562332324327062553721984483417032775142512913268336287139640170727902115062898043830690456458448291244737941736355807197318178221138026665296614181611478743731109308992551741889545966412739628414314410895709963793146680199737570595011154731779234525065786101371046479350606533017526661343150561896053475759443427390533672200277223218205171468495826188123603471430772542604650132114694210377920877362495805908696727540808367365334262205324239791627021058962812752994372045353540414077376976510241644728522893748793685129650191064699218621018000706420168831565771846775510579697065674942767094393300805406971352184270913083981151141622939279367561863489376834286934279032450686196419566039887740514242141466149095659285352189823075559291468769289966016889448316231339680982895684672062694082094952758747950676018820192940106690325321143134274487388529900506202724985454478644732316562762094724992231351514065616227848019252411075554555902723827857942773286329036581120945655424514540260687093404211514420256736556052806908390228787434602883434401693820493838338329593589807997936700600028374130029352115904812855894639030727066973059800430131456451858345004547710659555729115419433807755968622544269299145825890793787791053655364145225726710720261022468575657728077374434078295132469844352602468591898586074786925319238786461458306894160719762736443214856738854266948722084974838868912697183943201926905480368446973597192190535178439835209183668844312742329016373600764806306672518176257961996782178701413283103532835202954234943464802056270315664654259411682254620269025529675244376597774215675330303064383004371660983570258931245225461099169387954304426279118108389111245964762904310233960023882703073490248425008549298352149929401631786194397742911169500698957535931603386542713603164921151779168070703360615106210574208742475009028176174843009279712222137912580475213043480492815842504270375247444269196217791607957984501146870787762601445453078671796976163660812546870913608685303994712215047873900215400102916613087880070631151640325888585712326650166284883831330739051576760164171172135767191300034116132869397491099434474196597230988184576258615532387089677286872002200505208600633241232139622134477269396574873369381274175983954952040067774142077085459906558686222245340122751114540505595008404875148639544079922841917281643401592940703750754222042007966637437949143067237161894438344511766165299368023834235459900637248278261095061218079838119544056497264920638759661493312340131228764661682960861039293863779477985113363118326394686486209490873466859131683284789331256544996072021161253079800875473894979496974254145710172620843118485151555828806908696184187613164669727193350871167399597044244434273315797382871482142445125022089561625775372381952391952451830234664064417119220876002086819176341124513533843936129069450161339588377068976125128333758407067130512844902456273004424771853706525068515798112265729337551502558958440300863200946112207212920595689783295452562638738224516989045872854224606202810014417429550733012702869327439421258810035887222998665170822272346791897527420455264996113885744129384987972547282591267719068948678184947201005754390999151970744281306976637603347801387258730841922399001628481947915828955560779416941014405719575026349657182601664856368377226128730684553941627533641128500368845798802665081039532771089162888179903981256840056732017187812102915523309638031991190065730180821252473870157816651737081995379118783709743803234230128383008479684301917233948094624596378496581319450634758238005180198200778408589997090087417034913099750552936034626497580669328703192619922033202457775374185283488631324150261179478710047489564262884530873050260672859681614976261531960182310309314052373541856335272913388700351119663239019584515721366999329983032377687386924425889641963797689103121402832531696204831043344357127374981945322264603992461748778155436073066187906873059211915837249075108217534794668493028653595396070551851251107949085348103725234522198087843515759509586520550546388791361669674733085730424414383590621264798514166643055521359750978547714660554776068695974629794797229676487249851294209887261030313413357318186584613811596988267148023152961485453656133096303684234328813441954635689931616069386232271736244625334713070482625113280775310782219716329307526967604172611592764063858439798195436563804317389438307570839057524484015794431571684335812578004056099481785890166218291456098399989758779191417755246079968244976505497822673315175547812190667158387577393954446716405046601085396334167245977437196238009171855155628677046923839632649437831604404143549295630017868467668901331711776005496074137543145207005778873882874058553267854098284835002923437923100698208050657237839315808281625611790021624357665015470789636959093066340068914448788154897795780209262493423874189612957864799418080843565989315524698747117663893721097377332291292148241112952691848063863559444608100817076638118961335925116303475928390897053315566936647208250524822948638222202464642542130741272710049912601042663612680235963412284687939170204196408286526601633253672143868650766743512862604087356331214930220631370946018668116414570530161188480169328554903118587534341621530560427031098997087651439174875631710008150635844186189915222700349808529512445694899801156215115207042160604045346274418704840943384844250447124962521209918826185712109920739743833690307872035405034799494019834876596893817384087404753761092621459628889740466216139072874427936207584621561167003583945278116181764428456666971504034818894029945689911291583124835496768588179911862256586736039293920973332712433642920906696285026930859459785687203155405716874464747128926202281245235758344156144600998934780758036757694214579926926452226025946170019182414076275665698903318581328990468311410875223723349228183899109183947907064039760192157071012264745511463157387915551607056228375721218490497960875305364891198775147061498089269519830803971937314453450382852113123562059218486445467553583001223111650245616479695141790905858676466704030149795179880474326156289495746411711293229937262251456058548400780161327999705097423073737055656209755605488394520534782598383351712304235914492017124814896627735362405312067646091631402105182886105170434232382713095327515947999100616074366290786741131914979909365726395249428884549847772802322184665698711223582013056598676727179148075668065200154265890091902374187603157245522032928165277408889649501574544397089989353210992686061892210651851373934891408091782007646902730910161926174897094944514296816699796214693184297457295721723673428504666534682692020036977260447640780375665290287056866694170403020911526412436962344701966218911868862606285951990287220057705681269679611640740261641974488524746031479327277765070023852073375061801635477658075407967107176879373756794456337892120796350043584849476503320257970952203696165761186188084858172173803579647092486618178523899213781593264352380544510895745834800474715864118523325415463714771130655056076083044206746695173861988925609460214691423612982994764413279137635579457469477702828445567443028986986182536273651508244703097794898017537839260671715471715719856316884132692393724572330878519279665865617258339235862427237140032582949120575967609138139074507397184873200158410248839837611989348319717791166360375599199266380224442756552380708765654133898409685481907106621860123666426367341999159605078542068683356178223727696430521689875759407292938771492054226744948618187469556540773265967571446949762164478620571072277498748260438763146965634480956477858321064812401122976499046489017855614456508340008724203316219771809168116898472233465105473534697679481412646216653585437343104998297476744425064470095066357696177760984248153851006313043200142195332416198632342458105701908622018198807822200126212488867052172203917926103255379240844568036938199666575350294667553752140464330328240790225977626376298440282947795587619824776985945872197727953859521788801781833721613507653636774261378531998093878958395841906317485424973513128599649843047164386222928342772569805539973940579987747156203714697560609211838186818370369550469211445042915129848651478390657502568579353729534302727958484780098390767146190344835653129843509261487259165173239989552094467109150686243034231802701741868916917024797561211858484370483165450165540475115907439763412732248646765699123996836781404535420864723969715177745309956055975062438885789081067383393658267485236349201630490947914506903580385542963692603146708171796256264670088009589530808394057935402855180511590704597051462592013028844949453427012069975819723456601909269233483465258373777853223136464618779791167958223432329942039005567375264912218422602674707548661522844145221116050567552085421767525581461046883478197984014573368432778721346746322923962289644167417618188120654013343291881194878628649553634454693620002303367440648940246209790921890883674050266635485935793846731162999509681657248068784623218978737770227347125484608392294897720051300434792589127317983915243928197969300128443923437167228635930763854902102145547820823596737081952594532869752765006814632205068532802648676950538891358353669109649024601936927274186707394169371519478440874014823570947697614535705586733015740054727219985315579224849716478268184418726835447849856812264973154873201111550883015717092195270012734871772256231731502192782024392439930220449233310414564765935386221176339055241741198934392635208357480652363550503879950979018696134168421256266334912423621263511158196252017972499432151564163817573603463668633179858972166396585061484389104975639497134733777237178949437996680515075324400300510098439426659588966799396279405102180402702642415868777445888551894421163325516748893354852378167978951209968133440210571697237934705732051078131657173616888581660059775332166212589347684211196391897247491527694035619457766383737738035536763248423102834566629184579607915029614672414023939700042573347313024148961472073349571330986867457840735473760905268157443911030982187381933141993529941386842258877855192205403661387485191906955936186700189919665849730737254973704208336979038161859653839014269409250216341590412499519490816950571339940303803280348336735397940190234306348371149943313095828652286188975634974838417501523503272624878009599787464288316687057980228922702996148671547337950819144212824809496927923016765641227669546906660923787511768660413219676277776424942430719576053457867801171967327592290731720730202213659010863661946480131713699211727961069299991503219311462618133267015308542592964270339657411233409867587069869609890663467667002505219385952001809621100745609928245261978599486028676619829329510626615977774038708594118367402757642232366132852698541726912164442034187864699980743863230975221381518599438820522527292351731679618799641536340799893897476139130594872801487490899370947078044547307710334812302334867911195118363824941105794850184412164197757994570387248935689723886213396551575357726486667647929116428496767916167901885941201056600070925042952062001179715435279516557097138968757008836218406232537305941376556710916953676225037532978234100255873690755794393472383092359311157492329041373452189225796493337365440416572710893424351566298036565063779849753719655158325148733203290045698121400923863636360133822907729614180415575101934428844012693626667805495944392472519212628033402776125862962728033100171329942385242821634564012653494762051352515399179627557380525189797014851811901149335973000037355895689155124013441398451254633241194457555954620181862395159549814347861766062749486518261214472338055723948730318760282759094039443328132640525063080811364581257047996513070063688555683258703230007922053743936803918402727080823954899636709396120489849881842376269559678725613641522411449941806335316916386528430570264667241970658701374173145741371937147325553079487240593569226827090459435419212763061612216178329030517776474160567599300519215025748590616889729485408905922224646583576124366291169979882183879724200644220000461096487092805682473784581195526321508617921464065013854076617099189434718947135920286692917108498067363717670472748001473965172577106109751213725288133344790554237535896281655465490632362878185918705116397419253983051098458283203970191217066999520507081676839247249687911428766175010006307088913679554050888967292544077558633590413045565295252069919311446392167163641002782402396194540878047394071853028803073619040951839929432189255752471397737301254833373429148478425079165200060235933831906568824456307269733882465841106169042533203295358521724660306732946084832551810343881909707206780602957732006609793157283471411073346835340454712103348599733243675077732242648280965210231912216811402209737040991990254623711112596152690552025386363151935098182942153164608468271993684295289929605276035464545554790249239173474076070288412565931479469240737256947827198981295965683392847432665786567188055765536641428142235665762872624763795766495635164669534603377771916682821143930518558777614168646276348597078255334300181072892493119497770487761561922664648491400185889966710417076067839007059790574754926774779835764991006383901311012815264910023643181768262280281763261179880400643500487263726891853298655104649613112546383384765808377841735451243886988777256096854593848399652088183767963017513624792293298964341158521978837633386385793520329296557862799759729007710161684206115019851095818793788711591766964258614777546162163435624859316855735208750214097528555338740179463536083525693488679016524296789303215635275678053111224337296303576709549189944282074063086611531922394171120613369717500482806929628731921691705862242658517231263047347834289882594321426372633953869753400552986962637679461014249967870897412209924348928881535348639907360236936173497236205207937325447001118742858802330532907179026004882916867539869626370764613259718610442603837997009380636084581618078689013834368312444845772584930361657365433893876056215361696636197896335662601842027274535039291475522237537713147915499423631181207569583804069730314798330589418069529911385706134171275881980104264159014078518013817294925393152414654283339758766325944765634843691620572023091488250255148007052498366474603985605938900608073178352373854861566559970831904900760153212408993270579182997443538328062972603626589945096490923977523038392415461945440334557893223329377128723916997869117713993749595540742352162964796712680788238886680264466883184785476770140038388611801834405843281029972907898975222933808425568044969311605001637988509637467359397799047431369522951950349074359150803390849678180914828280753536387231832015768098998122957412083364552059373096713972060670270954255777304121970201494289308930968576232607037008345964423094223002664034462180719202447549590830733305079684979240593774465635120544013109153422291822558457384740256394701345420803380359571123442829055969419317424061787561175839657518414595439971341889371481966120383658846954631920128667631786932608663655622572395779824370189686969893000036902905384900627720376165306957476791126740809164010263001960522371308341721887657909011211221029693746390972939720737054007012292538479908999253004229789774725753654660120220299532263047441837050847405730772623008287432182527659887529918035502933410374094644069594766953495113365911539582867679474310700374809038828558184258379782422217305206780012237079064509783811508427235240594510701871972684186959069597111320518693124233573528581701818541414964771005135420281193651276730886762016569688957987350363243435236520233021981940094864997354271180390657544876576848799764102162526609942348267348656138731639314128552046857860274649930725344235788300079888474327267558815507124482181124463275990039947916044035952095745988419487130459250868287732749484611268329283291282770318348538266036641862721719119298349727036758896518378523487952076362187477005441573113302226048966872787647576771549333115800183475827391938232691885249196870302403237077932195192247498912207134167112744527443318697486954754263647160661103195162515480956487229252102818714618456295820663810261779733812294742446649878876419957793144425317631649606220407215051786347947519219129993445620731749948895913979946235789328874629681223263405000429939251762538005917531297375348450191499577676981096160040574476233123205749939723230036730613260594523134718076388542097158164812897257871628293554591496299200205066259543636416803747037455882307971540866957536621411842758532126186441159690743422027300598183529047499176620737233482813083848469590869265122501309369894569996716427554597562571966131840779009386561603039052780174852316580943707502502108748030660030655723649120002991709655309138430493097816076600072737218147579290439043084098188902797970392524992733676471815132695271524689427575601398935909370757919906049494770507321470337774462421612541779472033518152621109117112089018695865793040099917580043813351646530264894020618413882261070358197843534132019546601814737439727632324634233717855901493277818877334037269074267524448517013590627797988579986437928558152060898355305228526599699790030296687498433445993650142762527728420721264072538604424169030886709936154243524270105528123959466383321343311638203055927582883965583204445482288080443974052235838662489468407639804294499684666224688540835153189022462243260933559392848591928075560719052031598271337059695093866537594832905770936464772699149109384151395182805476301703988173555444452603365437856089187275747650059281584052015944175623687856302211960453916964182739884586213537238075136411705752812415168700456931718243736239311577214382997857848911820278964878004628754758847798984005768890422043558762178875566151553379891129621166245588207084535440916768329410236478489708622603474964122771573669902070158940761610327265396658332891206035354966763214661563562099871680222431978683638766692372770492011585966526406314174862700343222170721253631882747499138753903376129795231710799608221577588279418589225188489098542278531090821152923591023454797394576928543173652339507463016710737199191801478397869581064004606754007523500362343572418176215689300100680708655582399117548299828755545621279738695862740314506080787720171158218135820477033762249874504572354777423456748139724043654115767122664163778672747874574597046312015021585551216820918589649814696102076258491275147116008967517677321409464800788886156931819879025924015020804937828447039782272535620797739240464576533555614927038017227386726078647807425858015120154027430585575391600307348869758546945626392669075217165086740668157628058454666481515690344719032249409304457147228230968529618479397609464473231865666693893113270816526955521216557295462944824342517842846511356224395384882896957219697751732109975009080766034666022563613406859042580064309292054670784231922286888512230171133365479071914006291065381455869493738415797644496592624676096128562912750427435041054446320974579535671946554544373428836496848639884299612431279869694029435097124148633458570512788639441783414407299640435708113144870215426955217523065757356204041269645435856605221218592303153461537109178617829925620211670117433684876867374788617182830613437987828036037723061069456418201824854656883231259456280451415220508268075727728554302306101558322190254459776708507993960784925513731161632005048198898167146173300649262447565121908125412080689526652418553692945342786942481217827332685473532142261481420697961000911879602312983780092067124362843578259947213700918926374913917409428222704297940876237957880245056348153999774973376204448147554602457607496238834361982263472590401397555238012997520763897813106961512887170114606512053528995181375514666652898008202251254810709800302993037290117748891989835798587261853348263927131187694559457784125148944158509768151688382039847857224645590323998029084852272893014070136357616706830418241336036808461485041459878406875119493138815592389157035253812404476788038469406776103318737099459890014529748340802394305587835897583328405849115825092787741265070341850042952017769677769435161674499087577956804896760538807457450338651756818487544594411006105380580390141218866932800796832816296109075719263776397117353736351410815972814293995602339793645101430591647979453825391819641485870878377657603846325591964114386013515601994871162873367053636548221559701653069151286964982320750136989193027483749816390618042440789522722812376672197966821271824612931920188063861792906503830034104129797546695321357283031928543785486868962673312052560328009535503108990549776329996155891960819251080698167367714214490121913782203530466179999087957428753090741132323253192939759821554746424771682350444407988230438375685973156099204103517888363774144271217242591910745217529147377211239531535956822584568599429189997410039125853958969615569515806982264737678824510230439204084079564129283502021144138845113584585738346846797217121466340333126441069051942847999360251143284660706604636126025487365030518533608873421401868048093736526712247420245630530680895088339804780439643028155853870757156899123565230408123208092740447699727176799707844507005026616501950904083781578588260847112876971241854857779845137243570138058559212995605728363412085025016980684030662174794447507835637755467459439311878233422455127419217295145977063177937834010462913271545018760615862802609813493316932212886034855376759380633890583477565482285359721053367732707494878063146583484660041834486701214005503532277276093526568381047090131091300574211687344381361964289242084856142417841447339060410421688425498961947657096384746071522844727521773680517012754448508557207362311042698781931248360934180961887442614025704864152894878191663431663175443148363925932605482769070442855370605390661590761828717326973827942810770001857928908527010789911472390645804364261470964758525367084574113429225236669105411601917833814592382883271938045585897748020726361147387764246785760899273382829008730852804821997064647110935580013080545363090601643748030423474787818426785424604145672790010978144309913510214753044503479058304356775666291417210180849063617853890674064815962046554922295490898412777194470342231153700084682879784596969370936107179495841773411639835091186663656266210777262840418001843647149251328233197372144103136785030995033336141988847939371410575531328440460105728192965440627108844232355298688274882870879247872251513766534861404702006385018652384676136000816741606668136758180250223911666351495810922076951217003081191256580872502845321718815857856175430736359036175430267249315655961713191767022562931777995521256706180629972160118647663826093205457047328577944719008601063875516148380160132180401536286175440394784270521004381046032953921834271331830623944480039097975672261699645342333698615326944686270861300633603980196141359062635733722751242845509675161583414754785195905353226543397966373853438924757640246085209468613132274108852388285745775763861549636238544153836277024526333861325956988214351913924162728865120346651157516485652425339336794057731861063854340777864053801803560399739167738340043576058310734317490261444896284146335265768228851386691384281855085538222200778806404146475452112744804176027482447873470524558765893661836559673195584336749946181948581776933591288754193837777006236835548083539827367293263048858020025810786381219758656142493935268177992874964870360563186618414373313491583861822376767940494299018931336163072950638182112747045906654356576398876398069160497932653139512224771978592250626767570278202421610426093739455650457671719518410015465559298781586519745239277426407603611478531145821642838333553203569774738028256379737264986134937582235620562788360935644367449162956616975219741218636267107522480415964443187273407599747786918019019851524056425313676204573028151725888745463237906184404730757160151427196953877052894113855307341944598396147760313424010569566034198443644922178808290721880683169344337859089535982120267441689343905047690980999959708141462347643687231859982963723798961652649576725761819850844282627226013062601701203754323109866827728579770263665331632264508341353816965032193418793409580798559442873058664978808720538324747934280375507066505688490012475983087805219707918103586662360316352311190797913671262968813672621942496678148429306130952799418257489840194231613959737673791455208931173899426050456310183277079432377137878693843749038548103288756578769208332643301834969473081304821578813943886164354340350452356306780298626822581347036290696322525207841096156601534601688857631530989403739318315221879651781782859469912971752586835780052028537363460738746088612464330910963658399185350874905344472084600257191746235045451017015090669884684843866090594261385078290086627696055174321861204874295504511186128160300983294719509783302630546418825963492605208590413427443360657543577154215536703410778432781064789426374036719054202137804152358162499666180334360311503023086559911163805756948989562641635352865453456997063850995273027814316959341375527704175846211452741231288179157637498476027537120057824918672870333494872594892972313884323842949249997548061982852332189739571626877804729753435400050009410853635613959931364490686698878686055566783749626742046019039232507451904362469399111775979904179627402742525967026208014328510967269968361435375709116443462881496327254113369684648465715765278023290509551843500265958267122670761577518392767304417526897361776292597093901766062443121113318319220609563519638566550492172833667887527558595491685090368697182027924811596228028288483825810382867393320174498012515777519833600514270228178723403300934877907454820394132582896534458456717133520347381003389966537234028853956630366395145503799340567188612908323944325016820864751746665993766739174153197469825883366167735185712635210741185920570741162094892749041669327997092958026466312836898598638197958801529912329165651865677184269778146280579549700165316901341946841584718121466157433773896562246557628634384241870953120095980336380952790206604276917631520121823589174243682813315395930976586301842140076305569245710583452150693095602369118509023844261489111758351625501870277452123198399708483419614229211869090515613760608371544024055696407484557877574116691205138641837109200985158486214491987112072418637847224274600001117208614704873797126609679747425447848936891028746583492738079643551877761665244754181211153994807119318753666570493893246988187583916147991962973217343785774160802372589615745544392936324657394848098736961297954297564985439519621721397536315814403286571940280900237298678362400323524024741792226823508661688204774932879262199758250290446835634107686201849075816270713425419269014871293547962533343131997509932384176427837040252973937211505326822601679644370990434429027753877703829681741277693582379607558043447660094493991997001565040758888425831481885619268806094395851882656984294928493785300885362773110633594682874461568027045024072757018153134776920411946469666462123573039810976386811949097508128699326086294244318004775801706462285120485137658004786900036153930282213294551583181501498672403447808179840872078432097989959977048944766031081934508845663900622631782253691180249591636706597989900000131015675241691338423055677079338522150359148730813774972163228112398905378245321091559329784184399491375697884336540979618463372232264191676237669107445759681438111601395835971691985904817800072512530517013533579768056836505611941449220932972629390091595021705947067387824031870582311907231213170326244222240230500201857764138943432868155197265837533792541126543926139901167318671793007658331602466912767190219867662737588203292686148754514892783127780239762873588831715220923698945314713678981258159972161943110229622970506542694199424099638216749787311599717452154264368911703812514628660768778121137041413625737855017636630403388875713407527952773596362360587000275393628482984077510180660635535920531861325842551950675265958889887595591582494552301991231741724836057447756975211286552310192518164470520030970825296752762847616975025361918608452749390387119586413142665456078494011737615223496644508942336201148579703151260703934325562846850597052791133740881862902828681418654680187717618485439685248921138054603159718841990372097078037334542213599541093206285610851673224069945429737048674514620979220878944755922058355227016582064929024423470149902557094695810988360000261956061870206773022510473098664712537488896225064514930193264261776937887388695556279940819945691720151823542060645235148173197312895321291351231021085668558747339692750295754939671259266788362208676238421606264350974740001352985159913562021340909295674815844137369517457385677474846071677153481131460809645798513931462656637186736629126946896682805644212043389528737012064216580303107145274581112048146450213206106727257924030709967651443067332107619194616113220843643009904951289286083012113191029572421882255950014958145444484660930549475556932483427201368180595387059834939041901587242910271680561350114774952837515486327914398187905494537477174563129791274209134848539928937963810480524967656541864257390361922090409658821950618749040451181670462755903016027343176607152664552327571953902722666953947261429519507641907097433539665959153871451411148489256306326044764454692847485722212151148622165006370059401647151408411543880682464255954914249795591204280410921196643239729632414556163666902266677607924006850747999261942942503362145127481796917516516984079961268762469973833761234391347340082602419626176145874804276401566496214842674336264702300105905883167500399463758397592583968279421640478095941598772133003134500373971782940824750432310773056349181475601989606659202101796760929054226856452040663902715065019746526185433088812128946065338587527039768980610389940867658815279906940904434225953185958081504666688137470618969000955776870258690945798385985564787679456273218726592842646299699103087468114818636758154657331816542967783859513530678610034136488179516723938604201411796932614141572969436258470267743525269212852373410037189488068374246870767177508903712645334089333398425012120383285026269589068026119655795902999281584403138513237454989591378760703703384054153976787875702438111157098184563804242169377883233164309197308194257366941823879204697937289197415107453265343882859288269747549630423106673914873975209421326847679612413470040226323126587968145347456399651473037653131176694482322793941780323172520543574101924824388627447890765431946305975985191045049520996402585976810921474958468157337880293772706185556267138146676085653476125812429212740297685321983528078671320926976038604168051727811574741832070749522050138476825227205136869605594423948522928962568626817757299428968937864576103214449886920917406835644628224538011983221293519498691548483524323029098271654424751871111207242842991285719577676488318007341092161583186716901838152078466307122222752842718007815400059459165326388290939811730659465979681789200326836554481947476869761306228871072028252871079825888909310898228926582236661664297768539367738598395610673172952399157087247593850635156929779529107116906663471134801845076363954481361236343879303120317859422446360714041440184769296225420840706754842101304542076257327795959238862607260343272009114382600241099388962780938932792814169375338300227576206271520211495381298297303957707707724252193235585356552541140411843674724649163384164135533348791503866673478410380371505609205779052674996120194019218935449457840916885360043670636561881450004999290633417777157113219545171704239699317936672036364057015194740329170526547556852393857285691209148257295937288386607522316048627518718526355196418314657902711493911862964140329981924274246353523457534719768098211613919876044347410147199525722452043175419110519586023229275046636947242816891458435814650825656440224414343345699810952646274452334970135549253601737927763008851850144329807829626068193743707395576491705601726619408229502068945949419936344489218141673811172848428488582502575259872316691202935147203806807662536269986771147306290948602986728214600487122615793150735140040936714051280345590105673948880538752876082733649760575389907597140114880160992652601557153882645855465828524411657111475264758003737707862882947288489623605302351673064222299134669179452093890394772385135384779757209091278629172806162096212732726460835100618379078885196872226981036580585419563989609668244948471871902782315224929229041289473220090909990957949811700565400982063492466075311721830854075954490426998114546381863214617208732287680313625012883196549421746284721666073832619684383722442859841948828253686296445972249667163084636939681564165108288706465364680197072100219096073942735285414773172397539765877114177823618370588799544926018675498488404178637851046124769479862519880125335098612177222218487337079523494941145608587950696289379753267961125264783513610088517552557708055563207316515587903551041648698986943169881993527492521966498049252494675957498586644339758199481916699640856073258975876570369851289618085746407351849554674935731026113685700046249685487282171366720227560983106323541709367444801994231628050820399282854625771973006896264273487604156667330485993637277057006131941390844804909264570229764457570336518325981006492301659606453445548816791824454693602838719354186403312220686890782378680778583825714900511674288056315640866364162261789684927184671230772110235066474280474076885675486241108977828918139928854139266880585225174017157792375772691991066209918070901336765675176925544165182301290030660978044415960548512773836624357151328966141815466647244330301476081348518809239841998476642078450132461683118829468741136058779851311883123013303685205781233999521622305484540439219482396944809785579587416358127917409788877121862709693543995454890141121223108764872013067263649371133170365782220687609851141618399478993183709127902914258721616885559801804154900282011959766771688962677836565427317419547243115669541498703362293151273738296843635383466475540019321110839991566086364542614510887288405427578248429572404587146076102145396785443033414044940020808834503870985357739704841290969310462939924184277879900473923200682635639352553997540253357526855177073056110756294396952560864592478560887565203103996552044002972434624349127431114159916516239151621344397015570957809824847994874853362560969945902254136395446204040979239121776800238066231115456565610028404535233690903220669716164201652322952754938271292945434163699357407828245879262949996242944698329047874977509396319186706775916753934662043382263781801695789066538564427393878864008588454209275937479949940412889375686636226182385305713521104513030057920699865469786786913857186077587900469945151094427965075291824770396110791539544576398232201917624361659125126958982726906770992557692278300765562603691528782012855177050904700125689576006660554896727062670269752759881487470512906336524401926108429265467968959602624242928197071562686431293729148196851505768321843163972657886230612608095489210285342206483690774029294581097753267750475482544815460597733924488157168228936429146086157455854957610863317191854760492609270582098539536486118277103210796120644603223205617707987383073454901258721277542701569693077677699199808138562502939703579316284316040012085823606549738005600615086099534351388086855000020465427670012705943586889545074138820731833293019588748777226449895076579298206834965317467051155651728562585576631261310860765190760648463564693701728072124177944187410887403781871868590397741538544456799713856636518200735263927171342475733032002322230929763695306398450861168433272550072058650359204002710532670350358489556726571854507734343930162795474655905364986809547277694808664077696201434980034579411745108149982221879026273118380602020738584404569409299509539795124084470229291537710093326259804167304507918141837940650600333361363144095838549373739579069356453318719234130007561856434503597175662900351666899783002852152957209606789371298104313758578838116658225542650135924491011883202019310368288105059653468023068693754503854912354607363609339867480352418791931405128125945321518059457221226978526705941736509444321365544218061181108494561126775717916612761829858513299468982258732678150787646876775801530746795852522547564805996554989529033928704877606952007997896963076699628455222943012361720645428102778638052440349598058967624351666089601349958314679816970432771224006741741375837029114198538445926597326863861757951190967662020582021477004491758250738812346162795297722586881702541777513908359812359352685799043923444730679044347459113339786060763839077288427045047666461568400748348932913841770725341581383846382797310481712979116762802386383594703768166354887109245691084413819259370295853170897762857917963054203990039132240919387163314913837131556043734235873197519289252485099025709941671116545223542815979816113948149216514150212175081053374606946271506007740342476217409319367018117107616074364989348238695349098875519429336324284393626447051527884177272674039479359770229940658336649441312571979031926079087222031001699997807932002537409823487942224118659509488255058082846067154298327678468271674788027682020658220547385913234756049017919410667196510198796542350724921266967105381319802950226411968871460519668339737080870301533731257274234107130715477295040601036097905871240545589961598721183497866443812047277956413054108134319029752922450492241501543275062427127166165975224628319789752747901692955551469956094297741557972988581530692929721172327793390064102606997585807273266618774351022876098393484874610684419258203441305886268455213331210934629659134634321906174484653667633980199000570145777778147658908067846448040100524206446938120627313473280265306335859878782435446326405455787100017366347905668988943815267156592485825928801054245780262210869963317967083355091009408012527398044533990323800729918299073867399442284991318257452127025579220496925068398055275200120046370499709399026257272148051692688664372446183881942924512704193406974984864586485198646764557046968335653741652161365464337218388521296892327231015852049303678811159228582972532057430716009948054592560567725892128731513012565325158520185683188369192132716291603471764882981781577561008923564064027719367983505159467472629226215682677811712100347364912276346531652406686010640110396989498799441545040109874171220203767083176782075866202637167947435857826746998393856813542917592051586053774877210770078711994500791449150807660312505688602733080301818228319173712029640816174142173512741149664167524318456146439300475463354650380509865759379763320537570837579121850145095514153986625464773339464342987110838466027553128956827006983720134396158957256992821866420732428597177993541549511075691022370560025568258044629322592927172529794907309828607135052581651040898698204264022874429918807351370442387441280684559123124832416251400576303360315717291020766675035433739546620142734168777515495243753600143860664926236214722771692542940637288316001947989980380513976485466961609723788091477339506844338193231989240245945579294989198591528944138393184454213485065037284010296236132015760555280510328102662332299649255021680303503811400012867403749472911299941646508651769148790488835277686121689579732162313090003115972746287351027773102501887449644078731545712410998912752875647744070634127628874210198233781998884834757758512394955137489035701444828847350167278305513336447240403894299387710757137822497380447782255855582820504821410716871025473009113897050599948502992653088365943863548482959864038339728424802026386667746683324697281471604762612747274313766801225971343179573111013829361763051098876452578230826924643977816095009658775975584038694748033105640780541711963468819126323561311734942079834112722052194887088633303018428313960104439656298426646813595097198954079969934334516921388918465201177537701035103631849132437672701325238046446595904206323974835779690326175394316298897542605226395642305695898468285323715479059663651373250738210988322565985846848971835435921399692534549588027357719518628127648928330747938699054791835844319080956294773924196587929138659805145420497670389598881001302104445304797271805141227677447569822434299032340038170377522140041987696982193677034180468867215274623068013356736375216711194237982715586243754848907685663820880394060686415221638990140241147060266773760065952821744650877734727002827561712828702817846826977671530044841468488889244404794188181891723773708820407105229945028721932827327181302872630673519088085834752653136368175359780023606359764267877966717674126347398999968840021575861406888091067039834977677577169948033990751675846906825067675422034869713904512067598049164939127814619494947098700453955187641958072279960081587681469490478838388447789470850188584576296775250215115904669277880997881703092324975700468183188922701889859490626130103001424788898238236206528793465138682584435532672678882799995894815414249771585051139275323725071414432832178384419059648695558988924056690744752018857252000137576492047125135021876826776366259611885397250890549657696111401524799780600366886441660688378820079499694192810847686236956364251935811615341080965660732078496159236657539311605546806414589770897142908109868876782366732203468367403550244581310970340101530686067573962992879763309997087475146515740464693032214786706079613168855203055822294977446664382284263580603096724852155810053242302284924947256744424120006087561267975249715117708579919955778271765109856973237302723727403328395472064959415668905051220713444113301819572023132953789411477930069429470051286181416483689075433365499468310438489666079507333717839613193231255987375079686781489205713463704608437440114724500293482274562605548058955071200895378372509371167337538642512216651728713222554906801668244148270769784363079263136221991688846829600100219299731370158406419350146482034740653060314574157160563465418902149316629757213708857044923428029352310037110777850815972409612516514901619406511768313918017218294910014772851470154227987020534258967298185709873151157259734873415221591077039060491809016381058049612560107857012819007782253664693784780578268798483723268630836055948235179942145124250558166602573599283794723428863420728977316854703143123756577331818455239448802061303175739342533548940221800321794669323659869580580710912120777062963294411065636678882719362141865189993282834646900452789316279429708624039635816207592205150520553370920158717673511501521809043748747919575079191595845856518907542451239208796215580188106901467157926263781813056508202694892389708229626074507460914601991668964272201831667060917876140792561136312302499289396257831202151787865384078998404183214111807357956607317949691362085329674030423415999727290441885087134872923945177793879176475925388535197308219063617154548171975599693515734982303355649757887861513407798767914660892384556605417588424444884964578973240438250963612566844965626560889970400180746114039150663385060661632992524020549375226455976443049430292916980227569888137834298981877450742120728553504357770606485646144833176825011734296899231210990322578090333593435172752309557705228411914950147814453623787274937546436567417829968796347657104077160405133693758805481736642405374535378401560833915615722285661199780570781727391701215395660709905169258662138087507392849968018672913741980560410387300033996416053205380853460692181451657775843665253530231530135782543179935376533111355917030688023909782039602302771207576521928972038550629878932664122545498359894192114014843351967018691162679252811077485266691903874066549119032123046920841288729578651719899107336771486036584799293863491590119653669819546023616643128058814105744577416704983815550006694561754399725248961338351623524819826272873275299489202655240005865567249306667355623352830300335220347043810534354066464075826150187904709499219693092346130364486937611298137839855598081023057322476883362418087110976730483420147837476095727492140895096631770282213823421670410395200778584801644348296427622031889342091188690422693694038477425509415374720180178202223025641345205662964591805098689365892681018961853220779419604025257637462327945579358577934529475447455797043587401068488180120234458228204031917289705536263889806128538829065108311069717068863776877296562552071929843764960152119797609787783964074831653945348829465370313041173301663408310072294956151285248062810476884259058342122820682165076557228533422984527504247010947286830864177613029595620276637727778615530392087738962196216783640517841526729214570293745584598126118967590855963870859115324961461917960798306052502142263525347551560367776487467994381643724599078948759359848619308133947870530269016499152201414656526170066441183569492681739230437561846241970713387133841741512565748300115258923985676894681601052927093280829320091048441921341107212027473954743023731320997006545361752140995501718037260839957984595376640959444051199334410447799179620691950481205563381725448222596335950662474112221556977140244379220181948013230042356835107264636166401018715838002651060612964111359656223553134206986601333289146863179336474814257072193558921247659502841962881075162544878295416017724859831944430840232909168596076637497592813282340287214740446560590284111210017899639446002964735114393309926213663864882426806949529181667386791535622157883629474173051206287471604944645332245032365970250254826822675496005004487889568586159854710749863810129902532620776888383815031773431959143124809973343148868385390551773183496149131241523633588277735467448276569791823467600582689964738707788528040991984920855161025457700555210762765150833438460249317588707781373930386429859400573280531280622440081725054524721705988687195425011521501205199704608009342773390234617166555539501907970726929099941621946418862890432032301102115105781839788851193178886627435464267488597533672172625328177989890987195443242979082810165402879493560440119791254524619405124034007460146880423453622212455359797080979677242242958169465928556235155167469923597946910019914739029335084397935342943428975522839210059741804208162164604547746315328076434828063629618762598640314571991797137943147808038209371653684374100157989059129244982091602227148939070332698152062615117490062978944362381322677700499747615455530267532020329292759378993145324558856501638727453357081231276083933592412634385988141189590013198362101285449283443994505663824513788951870976623533866036769718222209673371346927831710912246000557693486217265769106185608038148819601163693112281828834327960290104116877328514370298030824311864065906656480208403737440730430403777414970258978232063696370842119461744846710553919781687392433120191143101183620800661033582649804293088528248978133221860832124526344431577395520244339031093104361353660834921098041696136681818346594713592483273026735746073341985162007101033398836572418530053464840280210311425842303855095740019268342702168863982988307882661502903291866843332781422378365648258165078727838339910872025105837485307711221781763629734759806709577176777888819837459845361101828047115609127966367181115587430821759272998572211827493606367203027716582291122229894138042397751796982227567852799305726547235562955109717838596881750293412562288502146591193053572819965594092394240656977925753323266907503843407285479984534615894927858663663463929733913542397186589881524673638985594837262028333978359987400078327336095186442052978254282506584371987741449120074295810815756031380020796956552103346269627266872884909529788850662527511187127129712001727836896978867520634038385229058488909559888453115599936920888695186045761175520516506081858192921222406995212398046116060816571820080945942822600844855796130856630697815025721206153072950701336339182641078788798584809778892089300623858824815335046501621331698196066114896158036988519011892997740278662545325021513151557399876316376312492867777659391091939286257724640106112198127011370277030934441785677499293285306960136120159516073766349359549477184423027161185484354730299722257758465316485894501700574735064561822811045715139313904037782274730415441568067637845573823061688773411662993842782431386526171794189236401624819479580431201237941287317204746402410823350614193514842975206534235721197068007205487764027901550483276529068555256869480626301066059123272475615857826736902852010361008469908301671195890479657517269652144715380759143056367519929312281163935379050185085853476103514723575958020793674032239853109516877733994722057802962183032581327842284553656407703817867488110725699338290336232510963720975254811534407263665888479207552528870586322357266964248857738305227739372795389354600965963690746180282098056800164501761751607337901079398041762998006259886601486518116367153276670194201757508962188815421393690966673198154026484669833630138550269860971424074066846896107331794662928366275958778100299953825930148804395143803014721541534734397992867124697480731734779576811742224653311925617031107899250245780920204736948724157882812656629480736404515033198977363531574983766125291649781823836452131303245248130940983966412590007732083831097546083647210309324443736777915932622663691153485903434915442402544938212155202619724964526345965404315850640554509986670733645832353602205561937070275439331708409787761004738529667293585272467847874158468194928659458678168159333651886063462476492294745204752946869812758529432534818026650908702919966782951280898360322729187411211399840846328960727812241254830117289579860556269279334333442146794113539660063030927697749799118643493414157277717181142503785780030555209147385043693902636467071664179610869902375003499345353058507774667587247176663536372736828299780114204091056880282474354706999917546381144544475290307563172290570938150067501204826203519659030830018059160054434964169937088594049520444220475534544737356863058023921775068791841248760184442044376728821076236803284465630415459476034480949044106506994143907254436040863019999481121643581060348209387170911248152727655752270684008557100357946981428196056950619781288305872682238536271922709819166557870756346951287590103999319213404310165157112397321409536143876173729464912124941234300300984149017542304707798714120157255774323594185432039671794228544438953692959503131709369234991036114669205913591990075034041067595457843263007334482775312229760251268609447393298796195710538672204553137129028716080406191683745274364158041881118066052426763083743968494488104467287792469909360759133565465370282299917124535831881295232578713583536221046675325984400866532700691598592375708085262068038314016230078448779835592193053490969075697110917113519436828492837382292302817685793275872417334075063965978935313573249286261373614642397665048856654122412499959169954668531279979502606879318742509452991546574436283838324523189255709228907176083819827282763361060411823774879065999529432021900347446867756884793614534037386653660117808413427151371581444897091157687197050608426177330665442503266461488770703002473751305962581808557572933667886749265364608955113842062098256352018408356920942440674397141218172284256113855390100320932084885409839759583963681179134519649048282664750517846726146573350718206288049983727793119024999935899427667162719259534788478520217715483135408519192120574307647640358216459294058456773773078685803389747916013525170823510343835052196065588298247878895971194804213764998660883999962169885593119158788116288145052822062681749486412654325299294915672906402217332234297144262613720376079277498292651982218087452476482534304344648777154365935326618065317009733624654340878024519481440487309558951541898661200468987321695812110070885216115539232885211372443209255655061527204065768224907438210356031774442038510106734882081001707081840202785870365372424700428667457866569288054075836540783894951820145735674826700588736833844444399153346385896007035306107230108446217566220657827528100933032006408972653255049739588643068399840373925744606057340207499728635096941713323198454730468540123600840007747946623319134434272835700986976490681698060740501147313938358073929800156379660307963179252163558639854765714960265243375314560178100989357503513269182678350256966326551375177329206946792209718954594586363057630463803153001252786548163945462304125154790624408279737521014075290569292504807793559400144684478981352604105535259514644883650937328692336546773717081401318874340417952698366699959495971853081075883516627731326079463707914274435750433175109228052307807350422714801045267025210899662018549442344670048004327225860501576583050886524879160531647969506338708717110022478310037724152009028488913742812215306100446459145599475839962747482922527933187919458321438851498298702810026532238004098221909149422384766852210564957985418212104095737983239504247953309527042898875702831161008933482824560845199939715510716440578127815365574334875299626454684287211361896023492427525780720491799939314201239507800396996470823262435829025483268539996055008436127678878236472225584612346856190555123537561114957728124354278651398330914181523227686579184422294541957952543255968098366607283541379184975465036381408607546418004246883335162695903017699893558154052549725067423430511421054204985985967797627727843405196417292104383722317803697207651744872010840604999076279108210199876146332891238384341022777757481772672962102988654781902351675984120760794112038245144088619790316379027217806856868126168194573977348348729051069245027170920964854435979864819898123691830985380134095218894516076187514171575931195714701426566175747306149350614033284245773507479811215688095208994825607691664875861130702761426398503258241449935276002740957312908049802254326729765300860932944377586912488158891808956977210227529569589739433607802429211554361127377912113388470087641406366194519033923138930372878346321410423474913187880561758568420573008121037180332730073039923416022278314775748263477282572865280763181809355636973831282741260159927854402188344917121456252226055774696677815286023983630521924355446315624270954072134040039221877280463018309795073963148532863979193368977217784332276109144138494485329184586936650116034007251225671529028385567080668250022250083707652371911302309728863780991833950702676445610129670847674821265180375261884406352325108064325841803510398816895817949496566805862381135899080555269602146967369227608481824455556494922238608105582865105178405255010392128323593964567978871360167103946608027669669896502066426878903493668419353082325499416286828708325684940266908864192095905645850707829056674715815430779750791693085748569799240341677551096861199067420046199013157926836154400519951785088779513793257598067340983316633536446479436352193084118274418055329255181151800655124653341428253831848376202959879716233124973222273418459597426420997051788866511066201523099058146412138612237778042994712963599435571591460125326271812033050050070039584435854382082334766288192552346753587526608515595359079953858648797819466923851632815114910556126069519240455784791428009841372969523620203588866083701624936353620816768367148982075660179992831402627386994325785371156295648390746686917133271131096403785721457884255884153410103481317862241718924412154051490466435947238742468215193974282305527404886344973206924777281321101726839125246935602161431341625474063768049553890636196932580074851400962773882954383517326616870040018176791292229396726944614411284969637560762783829594647653449997490093031939462788074774965763546520280341320487676348152452673199846155467520565964754868470397066345957278325890876516853659549901250454612350414137286431134900602147837560686877577791970331855707152163958776336592008871578526763665466714528705914116464961148041558532089986682433387962023107198590070353822602313342105514351263970668658161193370674463476921761693120610050725123374127229967049717577480173521481170925110935500800517596126387865947200383787489710469466622814452544483325015622889491953160488782451367132660854506147083533754461438844987987340816128299760403398911250741397734797812762583549056953058345621698105300002337673798043725424088552074864900945141387893375894130821108904760818421852683266747678657354957688379223106843377386526540246137536805519631558066116696210579179052393832300720430999940458149368724033969911336979128431762100106815538604171226163408787020576722008885128179142408589068385837864063094918682229883442693175557033912616781341687490982384253891038697900257120755458230762856988365741893378461450128829424411755041212291287695191034068073888593855385556474685870348300779204887161579725666346830355614942106618363110737310945180625287021073841217458751959706970670672977124359645958853115824133735233261879872536637266217480301966844726988523981405029548336320152941804504800957699296873620182655927655208699317725420028196833854483309655129967296501110953672527524738495530168907421790912046748711269576388232364048456923363748900842191621913790252653747894197877305521233842595167891219221535987121764329826719487528492579321674238815483229504276874522000548097879584412539214508949098369557526458340910054493280185632121661433103420499256046906874391739142442001863397635481303029218364436802425805289798290171012285621889815623711834925646204659726263023420478895427877207069678675613490838294737879621115233634842042789735158529423654089431570706203948276863564730741269135372287982416130255722995983973572755283360856105686462988582971261547621929921038466412689184261908650119818222237906076243663790357774808458394068664676099657170150986992982865815816256487825986725105936898227469825332831436098595963166190926773263397991007796759610711066067317052180284103720459276217314134142660532177349920649148653874873250073187863754252063996399263748829348588782071485960294594487311624222215629250021143516827204396285995579475939664804404719238903167585712691783949311569586307612136526431062467797165589642031048142168405345308083207124299636628549413801711894652277583665120259963529067300794881086707975570578580534712040719123129822290435590474340386924048393828848870216438796946013879216280955427145145795874539595376109534452294104322292923015176917450434692351351574701139357771780267527537927703446070980365266352068892842642367752194894996202028594862883703617774666096741051358911498954865398970583756258595921435823115561790646359509156633421123292317125559288364698850116978402536973852419029428046043074058156625576039344744899140792938212430463997225499651239368167948716055891974311464815508744792571950786970191660594367425255326044579827033102737106134502761970920793865323838703305229170725538813201462956591194973414700728104867261248869173956832807721455364791557966223364482468725222612194998359496088944422990978571327832512533744470869617438822930713976083426445882179046257622573110287147914702943603850651913586404822788342611520529847966168518253990739272649891376789564656291034807629654699255291062516786084653046216446805978830247788999378441867558778766524670624071758677028781840095603910943313455476106139367613737636691046840279381340145681043819579291736188898468722129786659962882975971258070094047804183855158736008014806428613363803271384594404142081642174075572655411658087991779424747414182998060788818082730881062776084508293601201267001946130719323667619386747735359750611380111883464027880593051485993455431632711844551593983024604187695004311664710115462777893095902645832920097987945424694761514995317421977268937751339641522263711535725851003136802856705414595117162121536531405896761618493301912756825403090500777827883887493862444473906705379523639016647200869681028624312160877803200973074394443885743813381793692272665283233999719320431258680986634667200087699605231250258059068923659162720685245177781112492124450414902299325562839747475439333189811697525997146624858484860979763203261406361211329605525808274414917624752315878504450029270430055246819440403325153981667214079474736159556179354684082290023526083993780514719692499052268970637614451383024984934088879618015466818900868562659124948885365796237426760491425572128171915647644692184836633311747964498271573752973098059208920468093459841113693045788412102164534371335443170209861886455062766976937154934534534015811549478546882453764687547927551150003910507221477887359624034097903015241842878533754977144181258459625157842370919805234705899470941849506589155261262743194517765341722697403411970334071917635241902057368170166675706857113651024583046528360604172881214165086611122487991390918897638913466999629852257919457374654372303332997761149857045712668000917298199759966143900825500974204880236108664486726684319112387990491128104892812056121364773311059495289024485311713720125178130159050460308599562508623700585011873886467832047012862303113016433423739250390087937180594993075757881736593372233866065569041290626886717457105420384174699831230846897144293143075504085214572286978626758867366200630016021994889709026371138157197752522143373097875615890621981485461346831726877648408956245083965766603470756589910406728274958977626636143614205845373695894542497265778852843237357852279191728934541698062978450893591774887836508092624112725592162985159440153030725500908491727438881155298596188860654338822164655875062223144239916561188802551659368568848732333645897900815935227328734949838338370362006124522124025641302661648489772231939922884958285926194250010856687224279402097767500482344197454288804894651158617997967031217216318890348418808582164947763219525509398117188502551113121957488295541157911354192028557738817943851659588335815467687019030518512753213764859352920942095688600705343766119327864645201768830190473453445525193537125579430002166464746242208652878426758308730232615708389995469164241662700126879280310806106468201107649042166970395194173119972358585299709050758643447913222142388992775752101370174130102463029619219759702400971284753412197945186954634010554026909859899706269739784750221809806076126351800798794851275885999289103657587264779095578653561151011388535676153885800919909766179701526455200134543004129824731185264542240129183002117992864744572971835703571718775121722037340408317993941107865627937093882910675854178753154361370216123735263654381426963256764873477718069456795665759755183810406165682325882283051585795816640374120668608360916469350052392093325272168815899291727477466128463725730924524879852135938078609914290181788822302636215338667519125568872463977974939261008219927347900513650999181765524519091979202036816925257492160717075276569632220525827680089616303172291254170289392719161785785784359211980829599654595791668702621781721598293403281047166852497244321507632342891933309647842425867595875165987548203138569249243530590581747728223733199542580929711541260918001629744358028157801748760107768155037080108256289567142254204166708281685506026631746261287429137658996962078478211953300457357771475617437107073946943432354171024053044126251614603176661449335145827452589192198250716708032108826515603419367865955463984637701123636973851543676357301188367705566410398855180482460325982652399841470047411682727998935190287554510894018657459601610994435987838258532140866754777844640795344568612564333391471130282158188164593537335112438793440767665725593242303088385110236799067213418108905540816867327561995792508485579442611026518056461025353499144701676029336744910703080749446569809012406190146591952810856943083284565912322919847627757116551613987911026337555543721899175195260280518303296164306992752048953388588296563023861399562965694798155624064662304969109879468378602384216024786505499911704387149360503544418387143053872284755271351452393744795475797635158683080638293490805127743570159957967851899176751021530355703826638427163139588564997182832369631953482795071639191050238962542178013227887203407785708024469477055139911343948988522353404258411323685041068118916364742506128743702985443965452208304013522919874772291537990291779762345441785108590854298165290225165717472822138098264638268726679663087622431498752522912478000485084885896755244745933845049843701142845673243326622728488101151814200927335532509636571443110235727562374380588237797667295542336728061379286004048402597341071246187088791035509297513490205984988498227131853941153797511196048762407106032951614264894579006589926832577343755898717023769983517197413706855229549178569176827557278255548505029100698054620030919950691631830051076509272986224829582533909438140886006189867817947604018331039956702893181489890210113203589667628814034977763048385792425703862119499517352226882517684831524749837862973215043524392349559815702929753535355333785969261670644764672280391635901874767759426601069748668879072372410594301118200690661634813283744166894825867971400308107985650403742786686483130276299660856370705362324588610168470867363211714185514474651856226799700341802414849306121408389049422337658686072734556147812204342768662967565366709744653970871982858393788062900348850915113966613519958089991848055997074828534423154356598564602557999575357893182283721353383694113838011125784869758758006319724744355432551257398129020018171837628150786130585250161916994516610043265300007853857243876107432786809821664859609564264674458369652199286378700998926575963001236100535344805013953569756004711756794892428097220270191337442628396360496668190423796650596056560812871319159975523873511048157738752219823830763304307761521105035521670956154427980444918185743388905875668844406131201079093562314959087144994239989766460602389246922883559027852339702362669058874451099618606247888321417595535496002324131001055533975062999399537382944653964950011712048074545477584693262593692991546309093362386663948794234401916377049257675572688372576182969206929303134448895528391098643580921550956759132975048498611602850605076492040900596683523988505359562199371049234813964133782073511638698865341381778953128448120961542820784370599615703820530638475669444170850424882274391396651506038742974186292805686810632756177314727784027791754794074315537794263683144863057339637608438773576753338998448814639443328167248622980519843242402544645980974578421398157855774995373911933013308500200431835715660373779828400508325972900211735298667620217693265719232493086884705171024461282581585568458714479184613913195852029895408216883938657585363082664514073745944253575221625058029658284391798559034837624223567621185361901102628697149836718556661680579666928081800614520316049233762680248080218299192582773418536590806882552417337386127821943820096984529384918765840812764639861359144378667694513954625408986111462772187802364026407971335526774384713791465591723850927948887733606013009267040354987069826301955128215617996838341942939736315300117887455103278632284039540983411880292330229701337628973115913736265234061121313723653586967516309343285486833168825979541972898476860010871070979785407279282996098381930442783008355891580055223620803173860036646528387803812897970168320258907679329099148241023727559015466293281040962829262465988139168318110529773617438234310164679217607049818625312510577950011895834254412155876160705509701471504018395646939464096518942719441914265271335061022403554280835669986523440214803166222801291617250184471005751608244052094191976310424733168365119024991557945682514193160812350420457476153741009376189324642055662436447080533906080194316213550110612233070868381788279150901391693699866233325289595139658634657312291464604011496025004156596007408362628722166171116143682863249522553673624907876197656964564527352540555315544671090989643006861004388228586058068141291892177744675330567300374122675845550443117639726107444263859631848084464361219274215157461433684566979754955961175522505601340863308418299005797809157537010086683478130534937195169173173385490590045672474170052334330737845051427926385250287500029976667093243946289223875394172072412263991848898541311399770693113949322330647551929851807164166437250288666587230461068389181739134392132995939907457943489191224889871707744306301087769901621488696364763484535867489285851316109750639291966297661863956079289478949885811071202548616159405225283637374927520249975619397530316857907996054398868898417304356150732523771258310741943680912911435133085715226654526581285846509314922821786645978216829958171408384354262860584763828025063191579451604638628214313240526772901110878251661544608119827942175623517201538278643104448601752299685719054124829449523639427492913845297209524537810332410784300590884392572774690776746849490356736247856845397393884294673185006476552448340263925931798470857360321146308718363092163149459114485610954862181918687979523362803283768318485657449870566829531037422998473536815123371336641733876566436753339875115803677270662186848078287475007847754047183882801260524887624997128161381803905164802753128780319275173351418938242029342827083158903045005934052946225317675725468693647809814648655585041714163022669488803020486791614971431676914474797841800691308815619887247195656291108026895128458750620507077593520688491024836375233610530597362279661682135326043079783202662754579454845830288279389223063645335370595716351120135995332014271971330388117350730041295102085033691703764833875265118316115173106317894425967032708043046131789913778542005948202810175233703994673228884636486540089953416597365355410392247260188377195131289829479016589357934147791570465119884198515474918331428772733419524909779605028971639923382617007711805305672967153953288821772124626258988738188324917542772630320238282843959086175404578749388896199252456932820398705756135695370638767611739343156970355904732303580436707908901992347355509309005044470555764845421076220342810269373941049557655414669992647733381342984964233576306144653066157620105483713757519565892487283260522136166487358733451263582998386180310904938190925477511930004278536710964283902798940986920595504680127409389672244514961399697562216090070920737146290830130789598254809531478542136948077039916382216155096405314748636143796465437847515885107531751219730400282278057422989842682856592034208091658412818647805649776465539366213482105205281115888048474049304087240968142908629557307938303117925508748130797513768726541966977407220402671647844520317218333884244761020026428954399287982867119762643609637883402895435050771370127528231724792405223294920248226734446469260260976319875038972730175306565665946853290311116016690698576493624163514432370359827967225561592718913923611834436099758972125852634329565996784913218304476636707856515030932157368348571425197569655928257254316927694927299426530953724520390610406020915413112031321312837829814056314430122767773706505348862325404591157314713716358851267522605242699656179225301253829436089526328223920853389706945964192512315619732253138735128828821236756764064636214615731422573691392257153174283264491839578416592537556179550272584426035035647481825852373016487838392444802754783289464942448307937694634788613116123716966770027343815933591731713525302401514762667589358891676455353463708639373618587942452517695255479301134319853250215261491436877407999307167048758732758402715038759406962155488189712487246911020598796487756709902722887007085145232385786416868922524943193346832188558433945584790807862342593369304875945601019291088564359103196964097500328046967021338524941421364143103414158804768572145114227266498835355314262445217477545417291194213535199346697746350690432848386233645076847793435602035073253598742027621490020606692592383012058031811864229237983788227548901195963502556881640992851712629492345338654208873210646716929216662998537386665518344780574129716327340673587672470264389060590001437163558213409415618006346807181020578680621313218233391032582971502789943921856996155157284316409051569528838641269191893276003960257265439169328211387071433386966739319607218839232016517367638159847833533558110136663716823987490827966552647295815154008050333507299732958038813106469714559737366958527347272461311293523709884105711802277871151861602322413024979934484658347875111499922405457323945018112370716315436642956163439348471666667048815932895114459677011341414450269023112625772623101210213579635287115148631177323175577423375842069448304910992144666965210534133249908739454687911885122390754340539090532716131914825106282871671363791815943947112890080063646128032666209733204009075224189965746302875493160350070210290617318766895937041330026752230973120728068406456100358355048876450609430384555461952041097337810955013933703346294828814244431801386431462431356176276387860285634465637739731430065270265694484175829874202616697532663152015263275066042858502906335276136947786825199009116993342919800595448650934959944446358588257322256026419907418514730938842690746521363783823407402884435165915241512374292490133412812894657342894514181135511670921090035701562338837215102407330618955457228013267943972875907071813695717949975889504556701789073231291591419587486589752762488542881283100028917691945214559091427062968014120401639140332360806159064968868991664391011545503712420960312571848429389679258383630720948450289867966845323612114578522152619838729056379240401201934436437929114101374217533176044749405061641689358876251302229068873499835398811756457327427563196771646317536822375814623340381816970032198590711336072301753993055794622543036506783793818985700044967337905191616430946213837356388387696502252682361086485990192306162706113587454784848039547271314584240916254769215348943711412255561415963264497996954086114093388519175399980464037468871694054503105358005111423825593640827677065966850531505606835507611329611504492340446426654788638451228033031608634734161804933010944139399229043634844293597757509586695493576657843353854443624895900004903716317193378388466875389873202195575609670988797497732941995806873968831951416364858855219846339974952945286427708781793362017678886684234451755073960588967063909679654455717950345050154852513953197164059265176444191437746400965651421703662629040732821970738573715982272985325323915847953601388692023327109477949602664391267805537739801640227445527917056935092938880827565778180568176570023632805357052475804460816006113918340410682177015658429068150544998416789952074853608810768375449246237561596214299049797507060007377464985406835597916078151245217026940623214054096093678726788069171204983883810528392984853752563932169712142039061153338386768645808868008596348110198838123099513785880760216638272527486124155167685700070887731395224921043402044563814904361690090019488382742493020467071468765868381959495275229560894331036286597577910376117356508151240654313578486194223466091538115332085853285780969062356807847547688948052495317740357759342577963499572400652268690567131830991163896239242678624587690483079349049457715964793359213889124082342709624241493865486897550709021324405758935743389431363864299005201182144623944973844166086667701238483733069809854236290885448204904553725343412653644432232354187933076619147347225926762214072298806443666422117840348553467372707361961473953395378263116848019439191825812442462455732147193794214223060152809284341960785612898343411934002176731839852494484445452225319712155490798776744357947058775149293308692623661658844269099544192398729849596473238833498342042657965700510779091779860931008867398017249751093080087987589164442003132596621200655983514355869238886727571980272419606079236489350826896532798999700886127538649748284999433716953214949025240810422842461776327090534925254280826416443181221870091739453531512035523862542089419594560690106234729748639420821231717088422779115778368928443971543108882067057770382236273537838050418342219600091129496139161923138160774316304634822173861505825736760207096080737425419917176544086653271689559597558306648785400770185902398097719522973593952390054539614767114567553623596666889425409282518805393303894444832564280509161471091013934597914274128238102644712683207031310618906641876018448888052073153068588645965616203429066363952182618752172031387467525284405095331135711890963938110143552950968826221687844291586116633145508297851576370838826268157447194524425125746093871795983593752399800301924223874137586678762677816917439925982875834909696179786771982983776644624215056994912077279071836850517014297469996350949134819611010182023928441522839681686568096939410853202215775517777557722550249246582356617213015286599918651507934004332158914766661065778698223030054662117988060758516702400213507385537449411189824943149767748176550534247160556181173674167520926419780000851031991361941405122256179132815437447098799066996154301470775323678409080855588846876988483385474577094518241783045341438598267430326066616047412961071643542845367247550059377751234883688502464822642295227045057814184558459682719077616239337640643090674240405956348213898276236384769830677838926947395692408069739132190894714136133481890662129278263236892473764193270017474691519773864451122920747714787080286710174986345295104977418435517641531422978581294372566957684325627106605796481312280846289557431328143062978949107149699221610198273039305046030174051667645426707936902028487805136598865406263482491922207688396634012999033696915838761096729266591812759515491244826024802730854019644598882843983446872173089474705014690770672687282422573790261805661899284229953232489109100565834380088824426758176497947181160307229670337705605839437746729291250139896652917521047465361884311921705528312264875927057630729077808337930044034845511489517977295252429144213001146662191208518950085596780549177748929482212972011191501646703886652850929078143893653925616212509021590770484343471794132833359053266911753572319303572536720847116164595845495716957992068865537275491593956944058823455092249423563095665433200590520741390853725288206616373846665457542526417483124867203733256581349860837189036957314831276398218735093163210893150412405079617682188429167692496728324273597017706099831957700400462880056478091924430163673135652438857555165811201232358242559644363404502543031182135947375974930538220824040699992864525991558768541839207470897336944137213298258914057473316163942938767464434080448143715367073909108127797823413799492414961502252454836764598363457648976051334182795300388258948003453750531552911071147655659949602271402880195418108975116660428587388989270267959803060253025156550625862146790141732245654275621540847323853981096442771011718382828024874223210778169575003785745794727724211539911475024947378099193494218710545420049010760401033125227122602591619957179821933812213294601891359755581924456003714064695092008919400199684979595332234097130358402304320355326289727954745392749924929908941715455774060637178259806455481104903399157229334098133719772630712040760299161214009649262799234147013942357789723848035746935511281046962760486800809496814917245696395533122631058409844510508851634025644002707814998616865003113843305703253605378980790226057956475228444105102034555618695993493799251037000946322062270886210975290121621451670965834669340702868637135773535740436830684800001316123975302213401268704887889678260115232289114792734020202293494100485295558457040207711782745647636295154297180918782459324420371787000961895965757008254755660389468494607783843026995004554119165277254039270157735991097510522068231755007309652020228072856839981461375763934623086807086309954051155064824665607436672688125842376381436594016987840634918716564908023029130273134455698345580704512487831966706513417866748203769401885819999348595006260349362694616705563003915620303172701391120177759489142648874082996100435044884038664417812864627485525293663814038032370676674613844675402455327984701358110445079690933889289485292899205339780098047666048964341672577623649190748433665828082029704533788588411947108711236789023479677843951633753145094633410820804918742837537588073869578596267690448147990201488925934963901151321769046448718490383667527421237372006128404467529719324658086227600778862240642899893342324783813357532152194289602862937942440211736030392969407298274728646326214937050620824971628531785713637036580568714470307627939623559105048414388094318344400015409052170151775056283227724241941244366929782815600487562481445225614106706999180433867494313577765254984568375156034950312634609963725050014178800359265012731413415511279312950249953950283117387220175803708012819340035744510948674945650961800702472051692894919460427904613493116004622203364232034819278547482681046475959542749662287643424138727136852137034956568162870656625647886971243564773346015617458309106873063456997666956222451660519278372653623004293191107875905537245276589359953148195268686699983131249409068338525876063160687459524260229606244385264157807217211941140131473654035679043568138745758411731010407731326721070963249895694783133023190971996226241431751718839061451228339330188664464542112426187570620541910340547074307703852979792191107765832510484059378176686556532848750228700953173970599877694801708568836442590668690025338445501808426644921387576230708689100525608732782088226034806593503929956570628466388712644108359106317866408017307956624302468439003180994767810676849025552799718256242159013313082401363541789479370548433711076436566322531534369472374866826837337542058196992076398458157359762670139016372727859547233639132126021293797924026677808597331008140797040600248483504010556728711535375519652617745949569238131707891563860451445516058506017683723829699648486874785909455817212883790339606249749328330008594239309845203790661999245922219879923515109211766689987036443687479598381356974761884879847565832176680285545575846562165361440783034506491758313026132915090597064273692197376315914034775367035016685923797249501370935541569703072665175152464132119324094267225348455626598001420850554307767312369145372611663227650705004847752800779381298478484562976030334490557633056422140000763272516991529821890623107885491509024088738347963183654304815424154160014056099447793458973673448180477920198443498618024959901719397968263344903383422900139761014563446704879436655798676840486699236508226045075270400405867769922986060150758337677069863875379734485858232328285580861350595961400695938721460054999965970036533774801300790392169296871110828725395749700805568036373381661289230387890010261772430863739445114518619819806022365864164765123850248617502488610385890009769244511768505000923275108448803489135417734919806451546365472249780447417720806597586877682522943129811828812206986396896895305824203384470989407795348270244394906692131516750717078454447766015163235088298044886891489771715907493310262878210961499814336461143125674809979363357604017701367558765501319523553697097306985411763052512735091193770894167476491035064097770243251265983390426957501998314386074426970976990054250371893364950753792953599610180837405781858624495026392430143188144574268509802658795052424250438818387995743798959768869904955703076958215281225983537870787447553685680961448519825285673092184980467079142601898024234267263666401624231373336320715175610413612001317409677871934212178296821063982704329301306139650642714293216747216693208844189953460352820624764776860814929179246124392495999411204522991564265482053845424293509988584108564412598373050642663247199097283935031029981147059505004051524756027845026647601705409016929564263655144258080796371804072162922778767318596322786316650595527684742638847812708926956202103043236859096670432670411174708547992000018479977256104505756777604051371203527771310351402068797326803616811214817704432581402648550402018116060216863784365054206108373859794668484516027896197445257044836965883582895798720963315953748415193061181235914145675694764199936655828327394898475226309428686262360285336514857956206141423343192085128903448140836633175171483520537870326719113691613265892383127374653703857918702144335402687463861615738282549134558109372139060991611258161358801742328427744408547240618919935088801841892540689223110977751758750956125098394471049343707704898266025446400678511500076914473380469533995415948706804241589665422025733417594516507511883745234035193247061976054592642740208550927264824595127968895541906009957586686710138269374645851977501797657595102774375056333131662888742674561539810857213064239526801293476093273254746885977911944173434724755653272222136598638152107085142049990316479475353636323638745125616727163422103048978297822870679675592951557994614241362373995201983393454391842893601083290473967859563966561080768700302222256329664050138817768610234820799092936664160195761361782835251299152108036099468069394789816271225001350026350066933145583064022004431411318790235863155171321489325283591242408355598250969155455659082316026542891597343263483473827957115588598727874187968199861002063348432586379156101669276255750238229674559611757183851427262254774202501586899290697641029268719103847064178065123965625571269351967498099134621504703009021652811437972114131961417658111009464912830109913964035807193830386818910986476805006829286352412660146593665205493639043944543467195199023234766023135463822671315381746630422029132980983418914445246449612122645188290702940052937096219334981386943796701981449133479804730347879967248000941502696238281528562641757514007472094374460062735044217767296979882654952995722027504110588475474688998047869484888729899828909336783990075149250587521516889177871830952809768431475524138655387471420261833902636578446952958617418624159887255027266703953785944828405405093154806261099740523485001707679418597422587413231152411405404016423682601775553131841415493808997610353615852867347185116748207065366823081993762216879230820250081359757440931187827124153715849469027623158284361942885363293756400381456737473111107909234082236760140237248005685319826143812871668109431267722295295943663293900446099711764849612860745222193669567231631709591837669527880915652647046517439640911293920270110702756805994198583949652973393004985496765868872455096161545862275848576449307360941707448592507571824721383930874177868819046042491546244779540499039486798158122556890752589667097250865017631093621735186751129401022940301221331056012374059003663723321521366347478937634387077214720464852895910141118351333485527887351067085883199669744892974850982737344826882424505474330715463780079656282999638907261618637688246528437657143748920031185125607499665871121304267537618484619586159108301997596520488456751078149336420788543032077665239301286612689284387401335235405833713032279211240108194714402714301834445508097325040938425519992961599388503962051317232535824819964800395001081611932463967360351698380981712928393173074787414961479772115340315720592210779653835256125111369555402523921477773852341108995380679994138268985605735311516551392227890587946289089918729372532719917769548570329033483085066620867740711781319163013870181381364157851542771788220287074834464017831993120590600540749818698401923650461476080462066349113824509444623087505152413624958683705506950380904364780417277164564860806131588732584222958466443181452652171183033752952316940825260568839292391359004002877374373443186201137038311091047103130045926718080715096504158607013247268199767155486087813871349350437639891481646183189872098261004487198252882523473093996559674816660971308941306473272667868415495450760702371703688166621205814126792073496204629543188944591168691932038194182480741083725186951051348428243046068896071301369007708286740307298291315763301083716093081003060972703052888803831366427487042923144031745754911793105831742909932911145522018445211978903990983743812926914265482433593798737943432971715796434398078479815606363315042465660352741461651495029650794505853857857888005430137563443080531685824222928070579001036516042916742627550694672148637560331949641305973674186756438324611539263232555240601293510483793255107386143761107640760763042413442610314453767647023132074219725147098729778669915466712961499470679859120711688262607199015995905650735167161597377670486219228406254547572257815311669211843583621890088163271798844149074160939699895200209351177728352243995854921549144330582153198987583574317602478588239825043012333189000532127460000971130548404402244431946887258106500088200921447943466418657312088948549732761889641475157305158209858931605072317577461053968100879384884547683287326325672684646419327136463858124305567763069191858704359900398824395412406406943678566717002569302350654140167154926010964313499831052572385327985241224178482357414874087942417155732692978960985422340722684780969530452150617449758325879655881224235658550315186439952662526881143628508092796732021585957306987018435479030403157222991488162296606849294560665218002967439721373847775728259127281727162864696341492436513884225145200731954407229976803967903545678307393161562107100949041452411752642097336391287857839616784923271060306905007549744880110054522618449668177438435287078102914368604198929945443632187254874343925486626335430977602502132985084561689284426357756057179014876218600342412098842381368936622313401250604055236456820011377885299175329108890337828078917670229615051804661093469814064264337033099012436224964336117231040356206020173260778063227126508278845463477903812936262860883287951693471694566402599138461102495189477146122763803064640425378693598038538762724252150628217726173054315117036499876204926773391029544346591045148723291859214873284431755938006009702054788033022426601283146278808415168616107000265044774399956338801273378322611913416000256536583637404835271664061633360200567519579002592591601161902963836533134139075653893560055725676302301035525682773036958465854214128000431613989392164045764574005068000166475598990715522993569915635148757075357625460591453162011434892721238953714797247505273054524126728939093406716480045739615132994801897757028312249875713431525408659014836962289057891595938634192561270812864902213562490528393192594486869099970305475347353100168744488680621749038753623955113142901235745109363073653790701932604049342141569841578053694121451506152124762994820575948823345267628892250502670782387523711873083445178820542364624475517022730837844682600458737731992780320067187172547743150759429189915873861433529740901763356433394051965229147496052461799384492719831117653136056836951127265182233761105119338535201911916983864035545928299917995049346936441141565517716891025039919919849179739422117492747968312423838172375080835349128569662113973799256189447552375616042981573440849088101316084407827173291922253207197703490899348598439688051985140491088923345865458800728498741006900582423605019715039210501018397407422916240683520338150174341289381093779261641460943275263159497152184870817338031030236807607558497694591611525016935889214921339707850670440938524367735676248933776488913107350122344766808725019386009910532179158279073096024765569201174113073570487731777579598110242171399963070607932520026499509104241497490893962715831104699413315923266648713553086320607572080950151641690226636230398958061075110569561410469003284201305603196544118726419115846001949600327680795321619374838769659371254034829392401190678086173266932871570397472004605121505307064072926794970159548230686186074414282419624350250388714016255430540147470091422686704268978255341515135924188584041338537322109057309455814605548881127103758007765790160196825838612154477970308714242959486848481908224981066689980603437767869868303228461042914012865889996889670597460263260222397274089958660506253689165121451343147817898098980124668310813841144688288645606825756680496230860807994923571416627648567318383321327534587591020518367234264673505437451397599365796335990245942867197773944465197672331294271131704842501785077017535276627396945838436902831285865083026773321353279977286497681642274763281979932800591362983452778986844461515177981912999481341922599813615874893417929673303712389764671088024546094763679791625962141595798314169495050416026305771091574625015630625700046693049379698453449186842082240321479036497073893322679960360660802565854821273452994678379893091476213742442864005365127719231480850505883088828004415038760837075645588906243823805640355786159427617500452463593030831643415684050271710269105009887670834046105336587438576182787445372429304285276113839406751991028562123072714172064107755328838696735039748467121201818364703634181974248061272458352636107281658246007598164430375354037421817061272894170896296395252159398464337685199330483853828477162655630964911429382508869273263674783634870994327876400308614307828405951284019465930640340289846588327357025827518583537798925794184794832873293817237090065822035653974422349872449916544310040643141189221559879848358245466431079680496800520611033257193592150776903395243832371139583945145426039146972843148320256039895247004043616586911041783375337113520537914849081549357654500983585827548514686691645749345626715949956784057310986096920206679804870876495876807674538363502084701044427776088836999981963569102520066804046013304276934108814966510637980952016834471565678067138414436458716171913642643917204185361176438791815405681737015938541603095441267128876012238801462489235385391678529988172250064741476000390824202333282258403559943986536198750163335897194506215172667310125759314288816540824099181401390615990458273862696076813162353449438374768822454487041355681778064215832069145570319318208842023550728502300411015899539516639839399974039784653860519347375020506369232771863463032794212971749807481081200040627503383375902466448725228785587368400605332175593174186414043597295770824538008430553498681070880352346457777899364701320135181539954727967691322536200797226995666846762779571600158598247294392095515872381677980846294934635048881032925668395304370322667571952984134400154192588865932350334825439420941927987302051967695781691694875133406440263429299201745012908547410962939568294013172705511561425441586534665404828648512500780698061145400015891201127260435914731547381511298283462761645344570303359474283580926452599647501787782154880419873901584945311716406392638375207333452629991992290402735191769846610697921417478922932049905926956653871981124824730353313202450537999983555287791679461068502382081427401030707591898713302500524672084167651429917876983313438070479552429416937832600084920386546843256141619643667849516077418857676861422269173472780841799891972403476994624682728914371560659635650098862122297916700449078388466108859113515493232107283121051262184761989839316892247528112424858025264073426583383230646236898061605202228575265679996680566370707940670271753883669705704902163201799879882559995119241068245400221076782819452128384517374660740075449945548990860065396263899071432292301016312712390611003578222582611369493376413617419560801108381703917307170129249046953537903709418465201428877385512135957036821034355254076325938829839007771874624377771291432793153959607051210843355360621643995542648170008216857953275606479571380205473487368299945619810049911592644111354226860105043907887997117626210859143923984173644492615069761381093414847781988485149496625892521871954560993306438898091801270121947693828948927341737507314737960706009697724331268418085592995102310560181734070226134078621711836483962594523705898995250766168445437092122577614683056268162894026187413571510402582615490024254105851785059690947924018065947096315458571722577278636340455851660533397137292422471056842907975677021402240169780249436664468336242129933913337128166108119603703897386930459533509709139743234760557858271950912238558099269619739569749594732339381553731674663997245615506814076673364861199751437842700321713477839576500304034835290969855909960995350337192669568466549666622864652040148429313332326604480866380026059698286598314074887583331226145019628191738694803015954386386957896342477686699763740698805722713446970796972036549698606646853658691113252042728303048005566878458435242694966886390446677272596005700445535785098582241568554276388461851763802888444158562484582428823634230782078548066765691421353015244609271355004496337060785272700266566638624852062396212937030851936196083545830610332704712062403060037505037303491479678994078118209133252831540951810096483204492889711536670481592860488968358376544327201756519512011491802182714652505364333738191336936830973279125956387886543829966736166877606423442389857234675648471299589532464001046596598340821253283685870464054109988067945499072390873212107968223423283853889949949318256183792825883371375619280856174476016856582499511132310323941362799946707608359048673013554102488661976554773943571874218553881133140142116172822243911324682297687456144245908756756998564488260366159016695944682072689919968588915233233429084456295030341022235810008110265690190413660013882640097568994738913288479578060459307905971132017454363385981489780856461078478681526134568144971273549206461311791309940743869237289142593604646618585572974053655891480743811196409210684399260629737086624635284664259821293786800266391894200673178905644859259455900365155695035184054438780020922217019742806047308568983830630456004688697848851696914551073824233460636328106346405516019257341457176159133704054508862043994279955219519210135418530930159826192768948961962317880180998133186623108379031759130675830422768083195395446782951067662226312659318280235012657529316443868413201841551699629752903717699669077823672231933953513535552653431375383769749126145584454595462577052131070346120796584275820096225214148938899674656988958895907073370232885623970907708485604463422560774485961487691886468594233858027478156120976566123400821497875274166812892350153702990996805390285773410625670865446250099180042982918094774377596899761533790035935091818726426592561178566112431874857883416944252351420383284982986982413724092720106234091499221185018875295034036380054424789376276594391787967993383056459252443273680141468100464178825449298992719132305871005462997674685787109845820148475374748886186738460105957217744531253354184134817213418471166330301287758421394379275020041961817489173471473532970600285010758393313327988218098650580337428337849307185169732771758506686721480111118708203498024667592725422330042161585945948371542839524271076950306717280135714590756127778258175414148546748565824460077070330264246483607243301855769478750447590867394216310255557969767261686520166816305976276886609497458528487003959622101446986586528880325250443085937438848236656327707833999698007955513112402029578816156896231008615368283230722175235623471118315517679662613613512419309873910498686529636642153589552109923723360469585087452441956886780197945973864252797777758205694901910193491192397965683855404059285440820358932456106030208951794386939678028726092347486949975371701316362056100566213520020630648672186349766946062228537277260712744917538204622832016467928380783343974641378766604454434325766742474221359244824552547614788263580537580082550268077036438015273017394346435061936291132098881744961016555534848377339347799794611143233945241945766977317170543342997746507044760001984711703801711244656983903655796085204326036964001620692290722227939090419146537790324174557849147461109442400283240194399914683225746786539255557837308488983045620037792781034940592380766008611476948091855761616305950913122465951643824814801122214720083187217397072096197578611719266970853569963018575989084085834234905685677065185864843705264497596343909513150597528701944985185234365354631106153719216802517885706548250617064089988236821854491414768588475088381667234184628339866272826721869520487319517746414341353075581024383094485771481618349552213901296348081367007306011532951484710190079267412202128471432534108696082648423077787284145020688230308577772794215697350710606456847826593814763523126697884312564428934817406516801143315784978474096483445477107566369419439846495416737502038612726071326661355626269564199005166216874659587626572695757853141989005288659879055606287883388328416581345666071369544161007693011330114026993968421349600067874483439921011593880397326227776899023144513290316370942817623686021655498259806019493862037920813654865480083632872982061813645789960564518095627071660493285311567340694712356852737721325193823008947159661252003201833229713782169274390415879549610556807110314344800066288891336561045338072557024179936330398596070038774065782010227393305841475333097642929018121341012996308603306157648372109659304788661585796246344313366016526498364373246027221706221808009904100749843132810254387802787297577644322060328889800766263300386895270074620332095205966447935120415937803798313458809165768590956790387011632792579372381210323760467115468266244077493015177399544413841807507517791955508064439279239708282951282500005726320426456221538204338971687784556560489536324371065362793064334897669077773932319141931307372708117868696163256978960336034630130662047901578750181147131867104064625804666652220260317276045200280178183196028775059237954117309084028851952121412136794324126444186986018669074634623182130959539311716774520507476049045372351473582502753172990412350986215567981239803927377003358881712958665226978269369911227587954635142009177780216471955451079461818972796384790844073559469510636212497640839916359399887157542638956709905085289675320177642318054533215652418274347137973738277309509113753478627315767417767868724406810925941165124096783278356195544862260921186813863896179679003480112578285239280345871042649884747549344489405856571122796247043780605190083763312749501722802328279940836184438712873608086128085984853516022439507146263526417564250667898335382067203404806017169336174048406916152846207343107614122635657342772744902554087866856884671153657564942253569881136626828511074110284600104917784355817820945015955182137794796028358641267557784884448310548330507184722923768073847277863287894031831069982544290609293946873980399574932319848184466280426722884418779739110010279997047947697437169753153197328403566632311634306345442347782312208870047168407564370848767541929663394449315528884354827042148995042332926710033171294444399527257793467875781774295245906305693633077956569427259299769948749575975988051887538793954386165815973750219917706868146896383522668409154828493319619656664145017965925280109504143349598940559337995482376512942597108029645338397642098529788124509179775055802871184203499968142038192804914835996400748322354717987853281978012780056187542123201574061358290809595375220506949257465813821385930417570794280389672166908534299900381502232888792714459363435338183850835049282771911859217293546460770931217528272407484992883254713969683809376374974394262443237570765753570051879832359415851135147192688755515497118651898718526276693225580238353214779268164009892592352647610425703125323110104644870635714606860452990587010685451673606313597741877679521868942638909615625779500155774416689746706634197645093233902102103652225022746254547549465432233104068509671358512284825362444905318833707754903202343049687201902226294060811302577501342583204959972950258055366318890817310078582548094402166840763658747127554971040929302475173073343126248027316812039150254138081416154878891584551169565031380382636013321821683558318832005920747352634502841381077328750139914026505745312738192818953707651018179212217711233600598884242120531525823169324630873285594976875176551143090023697097968703502893636113690046220227207063924706314806934457571998979013794054669976600128812198838692498090062124848078092496794842326369827048519134700222059415417148723593704831234606091904246042814522174114085041883309485502857410814753292117316008659234388002584682430255559783587407115991314028479717145732850702462023436623416197087821362885594856449258716753032757210185566739896085582086047081175722568715413794648997741209469443916041982470057506373614448845490951662720005988682244532032581914086281362714595605882908811691628320122852002924864247425478230425635528458206492778967870214312390207301687755383086925810087350015590845452839317140534618580737466773272376970950058315898670947223056382433740144797906018742296398823172112852761730781313248409446866838146479060148286254863934079265526409361413663053994220597383191052964074890639484441291147369539812133871415130622019892796576329998916489803657816614752699539724413036759378238544805097735600749592127252026868132861298807313282315241913080080064116116002947232081465082320673001545936394615982500240985744481889640184932102245417998846100571659309911108775938997780067154668439864405183562793446161159822042679344499983305873134800646924232633761647868394114711496386528410510901929755309263833954047859700851682329300866229482054430923764644579213809593973366116134803386697074546460255286487497694991809470458633947868763701340853292509709719062741101200398625568996607035855594586583357739593628767776048018644180280371623514387944328453181841221275592387674543327416268912466467869984045092747669948705353492420401834814610374707641070404316779358974603270929288066570413764727353528462001426323644378574165301325299492219912755325166063376966492567764940217135148128226954635224594559501187787190491250307674560651879062284927507504768915102162187373241502248146161505868775066271502803856690329259356231954847343371390243941072734037979618313527529995572586959733425795107932374027664980975799666231204201857345670503440784150349402130461489076261425134160414410118391170904377105103538164814328275099184752450965331609079328541584745835865285614667452306128039935805456245026199033283906712192442700213901195627946839248175424886519127131840017705373933374779961781772160125285396641705495692007838501458099074671458400099078080942669294227166253321975973308089182729676173672610299246068264743765402216247756587918203710964503755174735636927705294433528457944843094943001140157574611813145407251706877395090621738819739294261811520867464072852587384840429964142211988028362843606989837536297406015170050873167650328341741356505664164084789187851597271447496829005853569575488292316712649079028055166482159939284439118521349403984438298489148245014024011113553879071271413575035279825906938238932203148942280716888549841131567260788563153519326402412605129774192787653568531087245340112334591301793552239722094195661049462934383784210196889342967674800058461051405431401896009716996524545863898449959320184889196152959531911950911173584828247666761049538928719124637440016042188026254842804738648982844776305349931055423969618611076847545384962102941760450713625824218512777821233205083744309089367580578485790607861525596804418206762192669295763984763447279847831875347998481630179997032757747750340549200443362548374757789972085597616259998016067730280073411381924963434513185255385154879837734423301077926309585697699447475739226111536441286344461263842254275721115644620814005864315510280160123358354783259867175040697592590836931323956761920978812764367732742122579741443756130145659245030053591767687017162052138777547335965403802907653720508820903715411054057575975825140399087876460708187657583390592424618610128758652269919307616770541724573862318004002252347993910554139781708791755676875346179056398313287176735764138336743815974844298021167858078288612883963108766480135513810706815037738632363832367645051987982782314538985455986113997739123624843506026512102203006053922072359505158310236915247695932034944545888260282992894978125261914876710117003444239213712169678161504200609711553113426847774519072268673886629925676117768540796008224046535767208196060876657949462421358016304756241664446706546513024974734321606592417263612231983934492572300916498907604095592168006068389755551463384548406690907621764015321648248759522186394972434769288851610918499868443523380827986156464718768977889271815509211474819659948817224803333549303701925889632325061155366961717529809367233710980919031276624439890976939771026297221480800997528559830549342343658178453760460084391273370602026292881045302917245171809135622464931545028748877164385156521602013778679937093375816145608291136389292427389678854007588905893006221375007025670109059573172909563521216676567131189681274314599542107308578194122425981531711635307031900571654005983502253943999487900954293833428200285935346387386776754795223859207241004933816252091206495178937593261846723706638955939836694421794939097411930490315580452790107561787359033347425228439731174924383740993926129167715903972668071842158140317775642953814811555497173749851619162550831382374913576664390064793082122118895612018101495118465133409718815436976776532558864269839326878864769345381171448504120502689093056252900488447948067308905084369771640105583072597817012654854953113274027815618285523266676871975493931654593646141955612365304647707555910863349513533352300150306871224331898673181918923829270146939053717483855892635510258158396419142251220740068618853313417606009930798963508096123536691490333978857099950665806805291509806921961010523800591229098186226332857050517846569762507162698620132402849560454468445802416877889889907039673622503406304531499407887769172561233409176744798633680681677220193857496403202019367779362233607751987991681955363013492764168468615998839914330915936489428938146411800968094664626557909360979101938819850429327675422926181044428667682168421639135391421241733379332956631070237003690623237087602057160245181355053219632621359839208446711443381727222488850246392400624227988657511986739272707310890402780187885126113545971425022611059501003198075187577863994125446844171779583136492247816645945656597166096387631479882521663553930981764331666422382990138382831358365145849217106951954277002980291275153283087463395185512106291368164225506673441937302006230176337905847999672933402616550791353910814891156731513207320395103014826747457380461829703232340034907444033085999821153791546946293176399628599639568392458735090785108905663374875127601690215210268403964111015591819162407949818419408609955500473135067015467293791110514745213558533051259647666095702632891347613618500084126087711828028846177394679131051499973709542211416637003229241162126692553040651824248237491926081902397791735013000666215265507434567239130271794327981001358573008969964597632027877810190912600484024637485307158540681023538695328903031888576232746026096965916395602278618405487645899251079441410391491638863001914051355368887478912215342027247476154440009307694531994427723425739577333487571938628127795516234304877357503154395251654781832141421628636623172112420188348923990947790443295111619974003605669251317585885108207528881769916869113245201405649170149260176234338115021338716290169168623638797703176447713515100780932897636758908739666429946230774590685049942934470822124558609143969703755783931466397811716859440150401428968682795004846250009859333735697847252305239735469958272624302485273050213957681265641753435438339119448082079694359003356871712764988556486139387688265824099938558972974699218010946236439301188473705706188627834659216391808079760516913887193861270234427709954729443710471307436665116089449050501042027810134747046903629699681979719897863255042514773203704343727315089506184967481530889203781210028104389960557849122020657903092127667053765409791889191615836576971512301898118933565575128633830155253936989827166985341335247940776541500795312696055019576574949620625728689631612499460698570398410185575273426459485478219473615364566496316962527458846896839780465702425056880291518692689196725065373151265467975099332387397279811273015488835781671146682788310155353359957551440243109874080051176532794206256804590176467526804708375282241849034489577860850555375857163644754896852652742004674793852096728310742052477965719728005374611965402586383183659064617445986123106299838096673371384590966261055345243055152328244409564827190882447189728317721904964944661823710735426188245030656260145267908130691905665565663082039393958477576195779266438218819365627598281751173182257063395138556128357391369562025549492089989554606864406580472905338981784042845383922965999784231085015083742164376321152432122163618821290419009055589901996444937509258686079917959373655778450498599788425933590438755186320138692409369132156038615350941944227582613244638228179197613598478956518214321968203678082170503739804673821644956262397084645216703901973245385809233739817854255960885537246145383461605536386850128294328383947190344347420533508765759226100975473166375524183401298293125966108142919578803648658212997707562861919119090124420216536092416957865489494967920980055694928588087274791658666250978355803996553419193941797653865053545884721045916454967238974709741639753555788525389784371224593509084817313749117765299323398460462440577727052460582428100097955107100450339200618381947294690557944523632392998891455734045090814700729657337059108871929421000624628079967852624263996604064035104459077917086369472141675688086794011770953529648076905554372171212564708640158473467829965802350715048258648603661946125121820309771549509978107932417418498571053050261585188917059694990011943810637284454604288755179632982398869658420088155230350243869959035243367463015505962116962083456456549102606370369369477632930371274560349664956910000435906784350622147680260983078681294539739673785973845507952495876887112805518815326905993475637318755353063566492789500578653106218493819987069884590077610294095573730177352399605351943089029528389470355952208738416168757215272803684561783029977665957814626802243523294020282679527318904411500530358426198607767036105883565249670836084574556468076981381046106069878675864507353053974547105828097188640874789238222448584273862315911269802323317599663288344754347516378423160330546734937610984085609322607376297472963545122171347451271813681288494647128155179484121307880365247990660889941316929616398433839120459451084826448243348599897954003593858344438612762695507549895818565642342350912518380695135473852712688425370621152810101743828799226115257859328172002684375404355519969044864272339635992311895416667112569389156547907396038639808245325793724968081812840588907700920469787875244498024672703797508723739069969155108246875421789421119201476398157438821264381061202384514881477857610405922157391012531794567196406704033010904931535483538672107133982717730179989587772816543436907078043718628889804952505393288919519646931262581345884053182635601579668872233678931572346029423410285554822412800153661931737811610049956837805667931103181438937064458441871796324216142616735944167821537446778670526399543890718568722274507959797852491644898250417220400576446156343180405844702910550500081767086469863064522193314494382183697102053427133662632764742922939452843471342680836177799903852469925015664408442721459317100047006568270916180981573459163764594304834824355918374519711437951282940027025805718605049534329222150377624322838366215864534259807265897931508486079602621619159677239237495646115465973533384719152265642672324159828021789814349999505599064843304939856304060624516044949203291067222592932387484095482180198291705846980404378468571838766273971860994976492872942201271984183228253114836660471998693587649210707375752617162429539316078212242518677624606240758085912013217634382489975958325707051305728241104065325322069968733986650252855391813404842040823895260155445802200620980253455311079490197790731638835231170870627648486661503003188544484503206387676653877743260750904872770363348797490683539222590689373783209654787319221993977915700554233425059991433399731987715201656883520453728789096352022943163121740507642676847562719957233040743478190645496167500018288776581743074842229638690683171364151989374047991837205776460858781762814235778360284026158720770240444596298094830791379523319526366253718273811908144177144816971501261049197899540286613236733430863887109125207988210626843409282114856548730022247224680552551617767878214185060869200984320998883272404916621188224630242443022410757821016864174747499064030273360187452426311179502349612808572859800365004225588111625307117715053154434555072477337678120294563831388747931197849696870303467803502836785163943884427439141173690212416333986303348124080232729989848344512683060732714103635542013733756133734996018252401777173856417625157224655432814976422796399094760611034176635726414221471031159441438307678388031719226561557583400452899077172993608119831009510109040849134037753039218881844229637409033619748306545791730053600802109707117796555472188147729668825168328069912429814665220392416617808183384622569281236660125037626379193046232455131247641858101810463189527867854704435566455641177638878250171796715207847374476315218458608520445348392568206006965096141122783214897140898070777298290929913848959102611179983854566102677797896078422840238111887850453707766949495014876201203882062781322057482319338489698963444701929310086585679008650289182001084554488444365848444325045447207233828966836712121455920041812289979657580676172190579390625102569298331087854640154887293077093702710982299060419823841691741896333058029647770618320590760808980239288600527543487164149076658237438541740227616258013537756351142528757676579713827341773013875908247636886739180715256910046382282023541647902931607807508443406539986893799486873282903702703474332371590626493306345105601684830850477767898440503025024674938189340995287389640241121004425783163930434851886114450025898660185490995274061139315166167259040181578145874809153844172826682153564829494359118353211256352948766737486817354252268511308587944127934459023644715896701391752451323656604949054379612764701054866114026899934551072645330633233712602018925441208899600968035064303913759005462374683360077004232354906273668213253012516484696380607496470301650163303735874495284259511284761209183717008547538005550686800083168403800137934431467680169640718654970237798510482689847192623231819025229435262627003402229046198070722683712657048458832561542450191738281545527125308426612809763346027729552488931657884819428653083779482725270512365107008110112863182108031514673958817935251892434530584541534635672820222040123845901287487173931767781306875383264114150410534694589581640129024246024623871164848977350884439519593310771787429219043026686053512278875579460454220207074829921311924695139446322801556301150834121640235206696324309185505210785516376525342814593197699309427235449210973633428178364744684663598653085923529715536432555608136827751179297124037021583626227138774999731965212342846810961884254947566696916820158500152610227939634303143792094633497127724000557306326414389593814026955243409738999559971134061613540488404433370091365354516930158951757196452610396483447258263450563759299378535061069749110368681566426831023335557875403515630367192206193580767604746106470064894144834706204916847454879094392768569849548904232013013571785875523429418335362991002467524726613871206515190508753683130120153700767274692040222116871989166420093969600919242293133465534644636140370587836339791915178972421125101268391626995677448727586080596275475205981543451486934574851453749356288776780515394695983627790876056191496626219329801011377459004026721675734647191836807445002763763944026229755106353352360558525599226977377141493166807147130402340697497151312823532801575363654069261805026142092292781182902877582271194590299768850710425812837421435287747980741826056008891073660416507613515071397469561409778105522766612549337189868305511934532404793444964561105025169652180763746514672768328814705115089473894637708430400122568637575256480247628730613735693046685014383974283231818483004775233745806615907892824657905043882304705537935848091119066466515696556286158830133617865986046410040497351012644118104921961440878677816604006263936016634343376608803089675077583810931377833106427643116864151500033477866151216432261596994801096737413067771102265309509793745329530495010899345541830640632186372489116641454583778157171230231388095309365827422884807740579518859671076480637917219263345101677968321881022157028265478111577063688661867190148965339406912811072126963624411655794576300333157867990352404760258442567434610890107963064577620693724214464628226751491977176945785438016303987103465894451752876856346907028083659320024475041118909154469141073847669077262033247959017887655768958302606478794098857631530065632510422626025720633054705196193373951976524413757741451723628436638014875748902299554098982037503532864029063129965386090982492877976883772230145264653148811218020391961558769593608237472244522535392625778228247584098377886917490015118085746250946454384749292360192142162368783968743756969247358342085512823421023714171954897689722613729362815015801899834618520425192506209584175848379693380612613228024397141562460211920402691505125966515541506587240185719379903280439276467229923005481201721214267530470760377353678426953533691174164975733314034795073185772133272596098254826990180920380147551915936639321607250125337393469890953012713023750090461437905110631609889413978284527947600435015101116700866553365708075167270087806424612852370610533385861087006407702128001981955867505889584580521925324362284157192026115935699502237179192187026279671274060884897296004898216443160426608947452091387059420036864008234010580111380629558117126773352793441192577173662082290108348703373845402972055792955303961488867159876599800731456968679972506398361289200688891173667033738695158667763084929185812619906174223866758440190755482857539917275892515525865879837906556781585720289393528585874509583880466895354864923560348514094877446301354662436073776744680663607747898751582525977252133188225005904782973998414201711590221803059474369421573980169050014342466694679695264100411146980849697742385954125851551046785381183393838646580858835500803715403087942693421251752873188009685891180904501362591596123309349466941599154720961776180132108231224236911180545262699368017451454086752187282839100448670325391399127356646451750619559272326029857625371446082763229806825638698629920554789861247115325313209838212979283777030244273143031834207598605047735285441918505129867709450182779145396388818297907487680328698875007836976276131946041054835796224053353573217647784746259376669659216719962450785860600350221956184468413617614736885737768476482216239406201239265334842439610166261596624362600811423041349443430561791874216817156092523199135655072241944266723405249146044606313618457450892480765823962878202890951211791579482852530282179893618523309374241511177142280401364249579451993287717002872588408737648866080134405508007858189788653056623412975568476062159573505891765490032412692634968292303087240013951672851012651152229511130344699487665390252219753849920408679907616056924331039506307920023858032216829733931918471316599834068133650535709442635401534253106619244905522165934519254692487685859198457913376222697460877895529186360641832210984393629020234880889361195598975666792344986043132641618122887020413997576066299813822204134651231607348797464840079408219431561752996807044394544106115452448784861396458928198390861022781916223151416662303498584715678514169214629257365811172609257781329886014217156070783241696411391458701802659550697631990496423788902256572171951203493354186824608358127544043949294723962802976363896368251195405966742618542463489695327887281491798845369084668036562101278307300796956632464991478106454803686433934142367868675553489746290322903010193531473133226899396054099279296903544088902879717880589920715143599014871873786827430069799571403262154080161239291818344336441893540549952931555779440298976986939662808057633560803498200724032688555150691996871463170163952653493963570808374927160293580919970597305637774621300057925443751085491494533929047759997749838764872942101649886125534117661634269623225756811244590386477628857454585150325761020072732041344353853816614188770468421630816602906695110353716438700295435503007532399311076430619152684240163573037774654380937432042669551047217989941503430843754578024128534066440649894738905658219941835384140335120743076627636666124792910798037542588963311403373976749811020522427040137605955268388722050093637556865154784970862717888294896334131795366661249452115363963338703131841917527577187091420848413944002677879578127339054813486063619017435852368050341111226457874105696896239631567610102849256077722359924466208899682746405292601538461080668176083950351972607371191544431657975231163605469392408179981326723726989237690846614012689589094857521686544372993098934636675563420851848094753855204207268719642190634628017701648863235369656471909416856033942435595260430563637810966249051793859644494223724970326583263592145878099034212045827588199981641581574842708938573910007994578299484268949613928947026461944864246981045973094384986060725487363992785885927975926920838152381658493115924348426606048926769509589312047848299421083013018216455973493968439057231800097082985314876914736431898338424906783748511284386061162663288664843985654314670901899130936949570990774769363439238359362725231420792800704184814857696621539027535158788676007029240561596603134652144949328833530177681704949436612801842567829106473085185061763146900942477541694446212942117817619450939431011866172589109084651691179949777225233216682268723173233074329844336757760856662276955231718966888480214600125970391991015286285994738052416127260678905920894652772033507680491228867645343679069755051955654032106232143834827408256545733350712140377406470319207572174697722194863892457477489809623695836269410341706103666199182414780569463917153025346887713942261603627234348006886102622181342943417842475775488399486412768237294866206365944289335196492632887386542485487389533396139260512705213771514193882177830690890215504368955859083216479527100779797997694392831184278100252130921419644078252328522700526602698840425308070654770009692115751280820296658466647509024330472486429898876165980650756685687286118933904610916394172655193454161597156467244252598092955732082235127209141718006532469974511629210452187835721353855280145440862123126446899971018172970376714320692912481829867564714613102094127262062954425527611479271025612415930386519600330524743714351622497592960180955895698064884091399826340893832043555750123461091401480177492235841338777826352783476810260492760464393328832582696194637687394106485163377481667495794863446128581171496977333759982702829809637530038909432569418053480496756283699216497916235740044417228778172102107618183610319334937772989833915472871507820581671972502401564900658474949733173345416137403975801280931592220844827766190529227729283319940644518749582340798760205586879386887105208397405712047600247434695419671956034005409537717933384410470067646387430524883686159246832713056778335888242609284051624641166695523809599077077727408353288342808536813291934466491178528471113658060440474527295741527541268469208916674255889531466375955280927964762859109626108519403105631183281658657313383250496954680118850404106164118772433677733727090921523582613129898761919568002213776222293634428545684924427578106464210017658169793418940968727907616447436124577327070031280151710896185393354174579708532557740315867041398833552527576882174495364294525557818348859031982509574124120856031542387913040997931934810687790275817218799830122034722144997044286806913735407928697923962293181517109727679305879899910100772391907338598819381142488450444151275161688742992928757555988949153827023437684762717502848098133201933582934786841502725037227599342386416248326397047504816361682586554248528231932110438061990939060944500913191193707893968787805741704387123755564731761105794324593311742758574408455699615762108260239260622928015576812565620672356516019421472525365463836463199201312092727185492549387246318412973817478394946765373447998129625547675604185403898506341997690406551621027583513310512353943625921228125501488269713200995911470347898068139714946158478553117086658694409303220230860930000569261137165738976018974709042888768780286481361915893954925749295343906655603542252254122090717651637789892449887777930012624400985122544466831261857938843867298309857220750767296353735693630032869144342938629613797414280852768207839834263426570608900677138237954725998254545563331199101037008461820478789940979995398904703576986510254238443292046881230710670912880650548739743143535620780714373603633508485900352535587478153971024634338015659239922778014126407740670249747015817683536467112249661570830805931695192690294846580171275654440086928082479460717920401459387199377702860116164238816878849634426656243912379230102495683204957981117359463965056127169433903748395711060906843452554218340369082801176878050147444806991252619733327140682137985460330957278328434411362706707467924860496359449337591231208395409040632537616684679368461990448945532723301952328002578350315158973613887421980669916030242352349183134494005856378325491799056593413802276338207873595340397185358534432212632374222329812572599171605020829881904374258874168372105156439292134546996664919711015206218493956570188074478560343323315866176483568355843888260531010523728909260408137014128194912328660149440376067630592713249175245420622532214222893577114422442859832769611629601077973404341781079473911752213639176259812352742029025738348266072460251374286700544946979871737671867906623172780392323170347880913116731972019581554917365905863899169953496273138795788971877781349269532797411525900622798381465885120124214596947533728838904321178968167027578657952290585071153810696261759560255367279205308024527760345687088312975381812423247654480220620070484185983171216188123671690396485494483602370888110036849605263712304929244697227929803783876168637984001918156534137646100769148626696558065217210835393469677012614082803490380222754998683260696834414536877230844250345862719846865319794030190267948165998693600693222150906203475314272480685651505854746449558413641152615325290288533779537633140378610272379969037264408033535550978827561685170711028675560240735010240958668794375921425474352752040430246661739132296165695297317077247270723431026398821879649927819602217038532550958575933876620079883020204696805662308166352258961429003519092988452057041983208105069234317155460923772973414505738766087985390913357377835660557093620925336813723514271776770250014113194311955401119551031202427150582785114441428958036169920060453042198435403185628963926818760275793739121783222270425277130196210695335633068896917365405502800724373147787694830021337211955299136834125162313910452664615107917423535579624508319082203787951594947595575776833521774756537374266767599081734051769298738744940312431624198024178477461237660790497682598237481334149279179300759317295716596043328572247926080546512314725401773693597602678995973820809049462526358303616209715596619805037039540830585119491290643607641819522447710424755052262975566789508244182774125036629156699425140282813890880188691200220518816336489917540448464691926478302498471563254901773717470476761266436389478277014598009467559749407412086798193720263640031453369390325512174770745243150387631248782624538385394959051375869906847346604782761433910366593140677685163818556658336710400354171246398948375038837405287829594679657202338948328583359683666884898735091845289886272826558224569833937977230763776129454577807134922631681594178548415046483987701354697724057800708087573533517370737495810289853649979348167977201610110609549284213322780806624625721774842910537837154404321339793656788428984884199854424554602105011041587707043622329792575727148697746050471086470985601715166549857567222312280016462729149649980079945139757684326936009084525230864725356780866983501180771923069419681577028933542101645601645991354755534543230258857688522449760513032830393428505744386084631416699052841101732638060340395821344340348616725026430786040925407596013793721396738720215618656190099426830972764797205405142112333352198472508246165514771596070721962627995339543468821998561589809181567817984846349240166567097976109872422088369720421279343322655953059498354039993117897522913075203745017656630689394503709152504947449688203794368391367316347222097627866647750028195686492936060444558394835476391786515236143486051315971956594067230227704976932606254653232906044312260505806081973719567251763841878474601305576489029301568219947010027901526960858137203462133467006933605241833157921913487761554025983329057692575342858168135853111420996684647456218357815109489471395810955417566012439757483711694113378274225427972865291697164464397348694660680266613545627502183460684363839504547036884258218561461421393079013775349893078819088951081526760192379570548657891403030750883030108490895134483506768851749212227069110330976159436791026442165414839543174025128860269161787655913945468062061447581023714099706928939691154249430150203911680679839052799205540569591688489512030545536285875986160259099212864648014988022117277028164247399754246945958494442785427849835688278644530786292179377610122255332858012264372973563176336244672843998587462837109532782084948046203761734100274632321308560728277046623724021837795708055716388385296521154520092897444379620728811476710458118136861452563632046706044848206670618374164611391977154077331479791603578681640853312268761595993132663913843485104317288764149366762665080975052434700228681458887503270589717931962648113274548182441770317839615341439895178360622243346132010698777532257483905110303261257122902900761020036038005320629917173910222732098508739424912098894093541077144785460685672156861827280507684403672746364672823599670248772427985653395792696292405873174650097894361009083106623606832774353405163625985943546039322846076736670809434422836540785489112029373573805227289807635710575329612977121687264016409310216697139868930598098983044951336734653810909712143278644775225847818755519908153157308125630525937974243021949684013041343322230244803392588372512357856384496686806383693570813941675493955298532020581575144688022266037801043436129138581135734411237140379312720886343115116226452854532906765933080519098419910843370340145546782014551808532845388563090607619555853958504618590873982226402634601370677255662466635494916687045962049880187046714823285814674583464539849602244587818128666141702318934849326903278922345650715610608516073319690907231308873499627306326007435106359461552108202793405015862903285969063584218443813689700022382434410970893927743369375162637084707178210535968000610184081123132722830643481164585571189227135901251066736944843448607074349808031268321027706394462089760293096810053635439025731142362707925245307855940360108051635172055530710222911661419204919011420414627068831804607396297582644933459819980588732608358678228704013346999165791309362763549574573573069149872713880452230974134927056151148347792528457982914723469908788558090760513447452244237823141117540713989699830873695689386041251192785195579262232831823134553216706019759136833558626405533644155613954062185629605210697849108267414016693673244810691875422691769492379579602101450489230283821340526814271495377531182438946297217995883604537134157087592626904891007288520018851647195965587300245086050160670459779434524024083539867043457374992410943780935942679024419420576707670125108869414300738662698391807753576170855092474758521723237173126756137477829110215638938841472251942913638099276312038548466016527924549860505893587344739565409269046503150815609236530566249920282485733550478085010993873507528568384773613572815637128794901404412025182472480136874710835275083150563064641003351941779012422102552199258909067649286628454485375503184609719354523836422581003005046862258346283120269344922838057716175004208712721560086869450468710590510685996913679306087106863885735154339516967752401437054297249746218142205957791534852388832710457804117758550602334880876171310661027405518562394096371129563642754670208070583888021106603159912073424127217071885625491236703885658303460664629992912122469932252071250998755839318323881067087497411848655427804914388802512343735053621620129318910362663455964983018942344839943720176522223939482221539643864643782537337582444787680413050458924567072658552654748924572434701943255935272422145313825506129410153463411231413006018808238301242980071642612896665310601464303081209183412332770224464419974522459191934972280504655409580415913277361619452080486809655963234542847790046854034566909011598445052725955389726205907940550234953420654983244983033920068931692738517313806217927663557973486015772104086218549603496223457012099234194289242082329001552296130475228646549073056677653159987747081718277279193858899989828031960185068390499869971431230037423279372659869155175439968352133844698934251769649564824944050178125341544175451537435845194521930267734239103575509761169051377727006183744622918821577717385616311252015026164146068160921968819937481255620028697876103703129650328784868476512465439990637153146219613299886803972155582154494975997915892776587831444483690828535645319886926566564966941929637079988404260017067988650115725202959207926658013349882095546095474646921383512312215340851115789800170619731683716176274865638642604426192813361761494686544143162582463535519138700829416552723910942221612581856078822135698420217930367941785090209886608029980367132753443983428951860179488367369017353862560363252529414213623478653623378457727156625065621836677151243890401420386792399747515771239256728127586307602740164268275368883125908245017251477673200254895343799476195127440990010360530169773960170993098796517574574539113199389691063371546714203246795379883444142379511676624441722317742966321300556338002038527346744046265765918020228947165420923726033258660901558533807373598551211201360373736266052251973225843052533258669498555805354291481402165706788459321182939888508375056765932480043578853680595890975795791253739873279320309159154275159610575376604939455643297050904348132724789896909018987001069193506120645308557104745112304280161432957268679421504900918386847059668706367966088364476783120812339661624202569189290819008810339350850008719215810578154531960668398299382095439720059834648873770847366921886796862618136897646373854869394215122223158414886106406436172073761102534733201856635380536814591281286423499864067321534439693282901233547377787577236852101922994045670375782093201687857809854838117920837321821861841950424874322885741547158551430635943001659580068327944862316912834993694919726930292809515104918463985460072274980510069723816026030006967265545864559713055345181795657696264703375015111833603892774828578449614911842686788766621202621794921872463808881146357964748394628047835513517929507156606836244344431985220093881993016747685062240496782932403554150570429838179102566752281249408430030204381814455349290014385418015362226502584595293682221541451088078272278942796218414318611165256295984523552332729696904494004127821964552982064522262053619472631487019055845204990788221131203153780379139082019141582204361054697733690991831290489096919998891741244700674321124674520313906412741881575517462875724461624563595376503563795636853495308058828724209985802521900843382256379958855139176915021045144895430057666992076015577036762044061024966264398403885250215524427706941049346486842576634902034104776315958543423912867779934865982724845354437164224091134301701309884649174109813029663332917413373029486895992229517773049214822804883513107822313820012468846321891969293050255242210780197913974436135905577391534347157751976523653210686735444019535454177047897929840306524070981848567137453045429823272819719366849610297082873651045134748732338474297271703172111780585171426482791889274583574485434850826573115828067150993730992088165339768946440645927464357583493359776833100131844900854996325313239453766928341554137835520135414692075813448045033222712977100724731536666994878286539614093200894808094002213555374053250061775184652040916066807627023186489220349251917867595527890146056497550681327452398364241636471500327721050172386717895841873754080379378891198964634765781864667789373866377663692808556024153123032401341797546757790483755941831155563727433411096335581714979036996067652174849001422024052874341364104176907097952558837128898786538521345811871091194338292275459496928802778015849038876930838003850582906947075098046692831257979978118234365848069066546689255322965530756209627781978073109370143325819417746856623771501907632584492856876755607404231932441024357941381290712357113296930186363545189860637819701204990869010883743141223953318371643651200098312945631857333830975772488861998950081672222314925041359770248655823906680617854351056727242823247730418101970640247742486778995715813021451637109269883524936076549780900168050680720569727290505536740674337095916170994152757363865390377526021294392751988470765671727498123536213282558210659873344686720215723852772872407771054505981600602257836312869185397613257893200944989851224521755523084888416027450906688100438357968460721191355154579962523046114029786582590936974543993347886191028955300547545491300826361631847188141448703734368504367013637452070102337546836293403376978182265340172574831806586212024994128984385374548944724998051272108588141205796808350100357545310122918757796036533502253932882030214852682261737279598581203229212429871494960910389263986635173870483200402560152575810580322971557721976756232843060079952891906231278105615491421260844704228055867646701437922677217234781219896074258274857863606946816285443062477195856058953448056005604869569626286079271241545254128248254607521595441438249621030928766542006607918393773360717844516531227153359054235182641977833362728890832594052664995993351169864243999726887832234275715390477946211467200434830400271762988675777646627674098882475298635152611085438925252366888447752802553152371239429904005980638857469248322667479848797906267113475973214314125757125076282322789420588482188962780658725409876943466789717700184320766867131906580919197318077819181683106077660290646989601100086255303867546813670995842472477915708545071213058734989507935539214008820803657095005492551425115864137758640611593297412023177668881753968049496759556931894335480413262601952121903529163053169282610726490271213011991754717252849346530929189152391045763035284604766200082701289372900845630812627414421481887367708094635776851976180507166287725675825165852768150392140412212918180784275704269313313689810163725946233416993277540972812415730953172420972006530921678269230368452788217468557121511058403504661431442718553337838024486501545647576201543493268476452953788826619996012694471441789750771429367833201744580304576854800935017521118499730934965036343489475772236190668919537267013609679476782633961848159558947146596259785951545380746392124806216238590445553362359642967982987898584977905754042922066908532399148145768395833993065063607145243296560059748563607967154617710191189371533749601528138037292654856892406155549120961431346207093994008374680937263192278123127433146930439145695821350053395378001417887194320252308005786749533666547570799550561164297497391834111696900548009356162773720421170122668095665276132600194793827099228190242758647644499538212259482197150112059934526401637329958855494101357890242468426415742824290154327704802714525408340253289602221187409975964357394323559935572097720130940684157507641783137702887939694648730438730273191485921315877371374017237567692024777052545378269286995721630106798415303807838744377776557052654850989819122132998805003960266944366053277325759616987552625686471534911683184479036013155587241439212739020433679914247985284161342053532422042280750605291380040295334430910629139099700906829665896851074061334713395873538641712230712547880563917300457323774058880278969209174043060898375795916172215663144986977211098220632831460921559238630321388161699986863504122776123600132811490774635212836434858273085327878054457525664956085434715274465784560421568578992506999240251306832033836602246698324561560479859868678310261844271850379637396501193409591804200256432836665213033951975864870407679416684760638881552530071406511780629108048869028233505118076820358729009334775034521152894482995146656322285961811777818366718207151429357904839006078448895221403429430111902879676340052496672778814957881440976072592875046265456605540448508074270668059012587293798126255499311115771630995135275044139309971994530434942192923366233610727413933842465788794879132744008558674604181417769358591829590126098614946456522733780894712880488878280140762681729297457151009371066141454738687695916298016595706202967233411836644768651796369134530978593388595580733673918455703858237032308595027605964314066953975574052127255888495890711196881099491814230909642062932595145613656678249637990580113794948112115503145230332962748710363215816624322461917370010978639219941649169344749155571854157460139721084256855005167106669164181478677247444447021602619678480640681402833815474335319894210225974496044536064115071783610039714238756128639238863630561431186079188832751764333645805542165052789545184594581292154772388812024875918527338911457574969757173086533354015629412179764724397517343848342611039382540902809682340006033148241044919074999601347277110242863705261719865940548719244801286034514400253180027908296292109427127277506337279316106048082810376282091462990843496614730196290734975018879659443512063729410493186706010238905202323778788460766248060376813021385335459938979942307647093905959697357168882418396907432815282385315339814895158141639223756632044557794555653818606022299402076376144207914930958859610395702747106025625460770025227929664032144035639659198986214891074802231935018314299999983310095523440476717504024758051578469315436559665504735381722062049357412234069916362470243600717707141065510892733576845988478529506237440444343749345155034892244818506632953403471596385844956912196079340046942153386170599594409820219666076737836370066981920663499168498759907347709842702478677022793152059615756645120800954900915641962719966981258095256986487899626255022417458933568719901263310583122614649702617257100825470837705816974187182589680576276216085304367211102580998999635159344288530356813668784861390521304202793605874021882136911031577047349030529887989964627787432443370072629400714522601959083071526994697973366350065857590274683814379509576620433045335751927372572145462398292226858059609558241877254900672355281478750949219659579293983587334734805191119802093861075544792831150472457532543414835467831895458617090406150175599251414167181844535684740001676079893940864068516353028370772204556206809638346807575140042816230579506705921892553422857835635546141797138401337333104899657374410518679361212626760446080304759920847456685354722729248595300276289752904177593294143867072512750684412624084245997251089086404832578272233059714739081648249734636915830340824094683337382374425411813005955630844584574853984410226279938530037108898584705798576352383615385878371421545284610863351173158671157762162925402564257687377269054324946051722039335158715188455847339855651304985190800270134256197351894925823351535096406458110306071590750511619194529378955401916535712301011671278713259742016317133675369883717321024935045135241250399060911607414467441135433230696787640024115506826769355288345645948107755046170861306154207559816035345506989439507590171158693230071654310317416255719721567144760322891625004681165060432722809026038732930311996385353070131742080729904178297315343225604623242256336918038756580164309900771838137897233578951315788971804011717032498656442709611065295103373506805790142906818435337147091886760504638167548863781842893813579961176730582321318424062597452584010622705847311815624723826366349929330795151485146925039780207587505207252160404951099246490675383879436857810050976428859896165785425837736288446001588097475819571813075689123948553619139852703458144717157002281806627742610752091623417028638811607351745648966154843109384661254328178366959193640829556874271907550680985956850586023842721225400266928057667354898187197075127208109587102715731315994986078640087870414608774544726727300517674686441859424465093619282186379036402246203766910267587473319393499003209116811202409149165098497991884107028055537144735155735525552244911615812244552010123216176277944194124779300977766875427385061513846412139040060411141379058411479175609865321719678372660385781269353853753898741458542796368454541241422728021989245605799598093280839787190126805068699791782456201203181536821095985060876112256211439419460375005934255041681218965933492564392553237834822349077797435735448720199865787965491454800375836119792919566718328610217810492323966038578359892229765177916582298092839351083229305950198303370408667808648164015834056312174581265855812808395755450924961431037082042909101342715706132719111354052381156405590743407129811969310590201368555933362871759897689674799788183525599306247249832946384744639818048499866909726560567952846811439691740610814339926719299256475657783871938898855578834358084509159493431864685486724542537323022329113971505758344440277990377782623954631373030043775546431315029834024084142292824391181215913983742962509169565347518571128501850178637359934108165673592694842574115167433932624021100921449230519663276794437680801364398800178469171132670507146412414145628297760371417164187363320067831199836028564364837097816132394795166914726858947427678159685318135276314037495227939633632350987525430568434673244294695967061810694218753103520195238003829759093595376850982302453190712736830746958378611453751157941008179696641715319475117906516683893751851332338060263022153400297603282168536360151678761190130642194001226566139230245995189600341907655700376912568806721471698485371534175387687827060617605992959359841991823225523882526749788045184227168939104383567849849206924261866508582112474809107125071722040747404903109224193016236874594167302137571005537525563644948787336594487084479625895600348214585420333684214621047308427432346824828799083561528597149164626297017507016924178859571138646650582484358193228100667797671162862332022999876124998182063097835619664771572008522159467944763912309120173146297164667022264969454714936803799068058221932847779526214311096342397541530071521326379436129835389934218784178024277698267228205946566530517850005945541752953253578995038946549690768131699492021702570676896917796395094284195499418044533887768704909871979520913150278193941979838817375754026510717367281390598546971261700789572241711644298282102244130671905917407949828779890829363362306355915901254049213486623902720149662385077488609617801418239922517741024355905002974269895819440094872874301518588491000608864623649610253493718530140128801941257658446752259325017028242897935410020578337201127034685593050922272459343408176164209952389858506000511159081150429942381727615752690323129382523439135312903494155865443941114913139975581328219509424512911792730384974479039110730858335564927140106677996710175318811890612228785240784548484482886785455694319459548141858567809947417316164688104401129410384012915193083042888544083838714674768714319078047818068998492313948925218915681517105920284488045468514441929131440655980754153828849261390625245264484077427874901281537996598961843609871025311640220542579911721820182684610220596690130358985194140575178805491819909623114909970068493455013050126345795715402221691727109482729285819290959622308232370354311058661643393125434013853870947868095521271354902609834243949471846412500945400331443483620771946445529781907715552580157172098742056009820092330313645645701543838695391368642454169212987139209014863983295658356123756607733384141819210920436358611288930094408362882543619183819778871331661777404755979103364791878152311268113506051068565984339731662283739825350562766157906975822410896963697539692875691169070105780009758580824988285488701280021825125066420495564409390014752947646110845375636765222860508036718892996678449365675680639819017276321342386999599734454011390347362931819848072745768181121290630290816751790012773056781248597184331667971288847814807390157104445905438035389885955857290955155164782576746370385454134821107061675151766146481405207601585571460165192896577509163872271632401759504851733958587586550337087654153941501000117095263083705322626815789775102731314264716866448647646233155363254317801876887078839771319944396119628259808976083761687832621717514522087880353288620924651211823069385722929183716387430293519390593390812269027467454050227673600853087864312103513127202546746744428485965196535806286516805087318660609882444523383934303278725873090794440627514428749670472137670333936610819534504450843894855120053131718360422543815646589630499409369841677283296334138227879807031905669487320064508220572904223500203164671546028761515583798767968258500093786893082763132824267448999745142784442033764298806845526920238151074229809113567542679150108712421291832557617964848103213491196541172806568939268697822468535233553626733894997684750303204666812333014544604090106029726992937015634198520283585154745463319608844205026030424166812966839582225103017512788745320961035390196262890512567266730942351895585010743222463355010029151561430972227807948261009078606419727575805638501418909170305455640047235969757854386841649511571553796875650460904716684118700404302502408601319881989915324511851226075804288751718932613418984557562446404202965445904064707246666284121031802992924296936194543924303329277805447654096463031163181192420563331042937452903155426575791760664762381067927137481143882794700343220556742785833137509717770088851348273049412042257304299619826825422520626700527781812629860343817353138925040322112555131460300267916844020450100608305572246565456105514937762012486471695432597984659409311792800940006693095229013459699967440404806117042247076906233276758466701977880776812130235207196455032872202359416255217293228509843123034398725470031153626981713264830201142056158973246816671587273986460211530362530106166648669848787225081339790141137574610230055504334749995945027149199570033156864088618221592940362864018084320568101436313228137371072071692203386439832032953838795703883581264133385080513570517985424281291592494803796651899175476943306595004110961133454959758824369966410165639689897160015015417180013858806625527824944734505440613702286608850603963353571156593563966302885251705343242474548993434608364193709840823372404864868030274227278034228750951228707009275231011226704566181414473114599922344623692284192802575707208104294115861113088190441570606332682053205385247510351405876610385863746460935536084741324041586493542519128812866096711203483751926553360196591460887541861675334303927843440173608935129442049311895253275104594250569811163426580202010354389618987508255183642303792791979971126342334029748329958158325513948909182485433426657589447063753181932949442891339118772250394913761466697667442284669011419163659950323339072424416937952186935703886844835494490959988165809722535084580036072986638697270877434121930494201184264517625309216245571951899288806575916248540832306348357497771282158237669772495215500445387002144197977844519072459632735184049625343226847432845782285216398781153503474709151271551600591260876089576432708414624711320592013342691459765684443076944033774582765763656293168799249303927068838590187496322956747550880620119371921429188870440148607697229174312607857623628530354681106386657764274329956072442814895836788948859893924179614505996069934841936082291217946563619575531440811186816566385159667187363201885429512100641881501011261773265469036281869624147878070848487164182676328982332142967875423836345474680302139039475812305118119984824555749781345292793529113316559176033546961946831558247732001558274989438591945328503169534560919264514323755151601284517299378509023870518448627487008983312851711696259931656589249808679257455140230948887425261200772987741184027000865191372574323049731077404800036007569065016421090943967863837785041505359331166653776207729856126277331668456959947042749400066493868639646640911117339548750288018621607626154384480726620919667795738610416720065735830070988902085228475160737870902693119215330292463660152497448656709124496584180754082912606811742116942321794006506676451010581796415410340396610330484983223895524047465582241593232502335992020620029668717389193707507252836462225018789466582558423400627120955367184926452179464283944396684959053733371656336768420925452834299687641803079126041595537847574277006088134890137761556724635030261618314346529776586802427139986809597699165493973284357076222725505026510566802480265405988747199179092066909800660445415607576491447490729483088677055719472724377441360563303995398414294665247511445515874464651591493126163598369268742891482224802573216200145760047586686563316055264308519243361287494879991781750180642442083491356152075906919799165283086405655627722821684005063778475357299995029391902113926792776979603509875070927227756624852373617791396142437201236191435059532040955836944334719238564562719110544669888215611798704950845909469312476215150553049708899575517257710545528266656425070540811209745711567400944398221484587117199902450227053490913981037459916370223921666923543032735922301552861252152619672108400456525364785338405716010535911522181237064848544376613720693626308754720149135094882286958806043434988747311219868892128801033758091773461954048747088424781351687300101120265594657309338650421937045267965004458627642892600419696841356017561741619287682708692246928399001733655033841802061060784732740423080890857983019300313182721195889232094506104942342859577556256331288590567219598584526064423428591434975146166290761429116635853899711601397569544031923179012662797062937464401052254362665808799768627265294210849037307406595204193973171403278041453673470471003042707703545878384767986953744403068910945645526139099976578402702580197328687862974253556351113489757526172462411903528500097615113977530480427184832970097085687814914646132420803375781359349092813477253347370180627252829944976680630718599062520711555771107100351593818627530143847628185519248869295679797939920954710727219934826312075970679838244353641692718645806316368823320313339744923349347936749830384752622237670878841370453410907456714593140332779446729219751084082579189816432749074446155044919324263166368033263606245679393910527943997687519478643304947401709803974658645211304769279396470861064985600697801419217103710634982019027997530739123781300529246847618212518660288678910962710421479267325212174314926249922491528255389793928941958813281023426589360325694874617805309761759915437740677715962901316531082254168702104590298901328062292553491892461644507956681865657190970139537079709872749903408542596827932372542555392369766408745494041120345436705524464230289982048928005889294877889077576271066581029994810937705882301210516739416120988313626711001184188510945675102563893024192206024568016880030709695633489561610046602341218301374123135680909493497555443318732051123019891950668822481096467232534236690860907506642915337790849230865636870780283819862115932702143864904783821880430754707531520882409139894092261864608001478451168255063717523898112307518036992313907687359077720026867429518287586554021505293963494248422810270987547613858836942732879786792667759404982421162387001329115584916888844442799740237883085020446233534099043884586268617662937168940112797465492332413135509207175411894153214060183695047273597819365202121894135377886473719957702874306791268525263248321008492007229757499747785536095152157431772633029854424952199777487268323530774052258779109169141484866832720856904008416343478312584855719029860785479782106144304948897771755509314106971808604363526375167643373648315009444512504150215662494536757029125608369369204229900076175855265325989346253333416719077510735963735659604964263964045178113991020953892915570072324494501377515905373830409396916660350396810873532444933719448862045723971737416967033041397045377668274385721432702622008531173198387304068578617156942481873172044355262754011634025182854042243852564228249407102245715782186485013657047553685488326164175437257209212503172662371678921298412261157106922670830288987925730060799005974003861728629845767057968843397325679564796822644407248259257139674918205832594323905819382275755165794128968031211213145491954892305149974148288045785650411405537714838202932992158789925186651497359656937409545959762171524470622424569886155927989253156022695371012704274631460476310758037670313759242189193991533851488702434126675408321474447749250016935559954683089678029653855528185135716061040420762654895811368951735153144519711002266519278971896204773570235994118783931125532771115036535998513853810113622727462831034486318250731016407346398770228093179960656308026208956930727953607501989409771189991202603746217730677536927415269810606489393078976112488704985451600472226146208696449147195064847685358317781591439409534370548675400192205433550759120106134681193643383149700377010290739845679962616004951380326981033658168319701477897979045599327098318575108861159409553741030332772328186891774105936220139425197660658159947967932898892527132154406262736380549587533457539457693019922880122561042618210175774723223520562928782579926133662183645056244603559042616615700412423238742567813483175395518697140799190309989544630840351194507255690999244739283972673056330400727329634698130066464067876989580848355298351358008322693788394387105134121112060457455764201891150672247048575858677285016583134318181243862843529764499125328043085828244038301900931582379445378221075194769796981823850133723891282313984757365763452898072233576788785757269414949434229034239442983339448830817934103821028641036052571845274166866517306059109706254888053914578916919135079393089543245396057902642524508315573576398002822985472716668697787149161232143509402471708784475283907070257181761941863047192824454331071469007689603107615771334216307239279924679935585446875011593872398617753875483090013255568290958475509506809958772979518769700161877540172441724492715389705711805483286595211057254164163279409715849757470575536109108035256598798582481895847560680620488450454568753491651226368455713487599201341877056321810324025493626096217776537681500199011057151539264281804803047493585615074553555302863629864843444224840580452678732446218870024673612119828959943016315172095543110164459064933373409176460901598416045106946089006370940902522978492362105440533021139745123287185598379687921329708269093246862182161704728638974087564591816577452510398756014759520269575441791989899273881331161364162922720459639293962693137792545995037885124713812658591400187737703909865681210774439382390666184038373372998864748074843797973348953368859717094238480504275324973212108483328024516657859847497036888732389384136101163310498684895586221619439998372070929412398180438919555448568098666012108253842248656891128403546704570343461218348639991414540550021234863776780838779985991007094146604575715466512216307856107008566295051228109398642275155045850009136181840860747977673801920979206694298778173940711023798676354146479867096255708149652211846903395631945357452718248119474278579273528316778943592986746368530471024886734001386719651520459428380299179339979790540222992987206650749234828348374075960059154354285014864077924621583717039496743046299982384650053407943779345176836382081719102118707442028377952165998899808159317074733292721832788897727326029532854300636416245633901420181309092651377589285618774328534580076820082090071582232433666405558919538024889108987662434815718958045380134315165399285936205723076935557337888087902051568783374958322818801155875217515955556838060411174332235028205580735602323692832035730041011364614555666670169538904295287806643110073136507846527723910793418867559466686058098805747095847988805465757294417691898198546005148851405040891257541665571745851807455840817498877192617631961891560060776716705481356279611612658768772630580419627571323999895023237692766474175715663252428281155104813101337573607869774300626983618989854940648352487339136036013478330917573896507583883132588519689760172116576922346935707288900679857162694373789056920517278010645112852423510681635776616459536777711735292232593258982247212445574564386244038712851929723494653930293807943443236130237401099812487905192370802358707237950092537022887149972920806973096625997310280075187014382211467334832625736483139884571646183339487306266459595411810630615186285711197829226719587957576951564137168157863175924094755192372011933223554045518346695769820106699787079051930383782481305203765021283040530524196728867469292174756898888650726231353005884081176666610532887220627566093285735993544322200387238319337453080448794810901473833153820054756633296589095152271561406819000330507812977454620792738803815989449406579642897411829247507558925563150768227889931389951565271818880565664590307844987552377695422904680092608109986620597166984191408576451242378597795824014393498348841712180785522929928964569077738911321949074981833083636451274305736928187864277295965072593144513885728064822026939759074305103378766472629044514639084710003508920665371526051997732934898084122406469294615771715313985726990413825034833879127044755743364944245693291055049946315148536380239224579723382633878217126307027783757824547126282513439614475385699159070751828665744202750031576774876653392593025315423361117595695520857150511313550455502831996539271615367100155889855466686802867723795263149006709998383243761918974362346579244251379554000601494346353234598455683376443421959183285003157900670219717964925577517523579879493296472841931911728780932167116068826620388020835497443394659706979300128516230290698312533685062152606247201817984738203711443416562308904183956228875402612394366821369589246532672901534683389690487593142670620824333760759707430783949393275872536689694686633871630885233822418577318989854646445098006545580322277723318840992195429451382403449370975940333624951223902900562901673389876636824915188280072628572099763861909572837442631986282304166880564827058699834686854386700324135424434085741933451553356471577489385915314635093775291455113286971813133288767162641244661271661568324696335863554656277977349626336528771384836666217202806638203686642109850157116675820554297325827472467255627240049380558468767618323989268568333947561776052487689199561849247083886995331189545184525799596870197920209319618005085497990156038228460380872461649702918561264882043665882498667851249356299564269311595186144444836599445568933235495821880521703677177166549755591790592116941393522155757157138842599874667924752981673217032219091293129943725024750123585916193475747831139332357981855583670894165477567343879716494136087321111631491332550233807634898303273844646016781534445781523860726683070292883764881129321015876478326614435064266525587421315182993740832037119150974842083011563244875206249892275822121782425537447365650689112535712515914696441588653146683148044090553871124238552807286492820960767552683064426911697343622061919148098899036089016475371845372636767055879055970658756960173010781037657871527564402332097774691307854441091052167667079020948184305065293597054951725471837291017194124801734572235793685625275577313307881375427806895674905047547092101800076071362458301195445941084800958553967581004062791291724783916484679298109050700927974608957748186823824483902377476290220845068298450076246023404333668729840296904122143191008717148297794586480622031040109354938354452898121452462660414068521733185914108877997055969446312140623537966243665466687354420147309557068753714010106618806304137697521178973891220021012368120902651776352014587266542668626292895642251404263045746645793691668150181727864807889051999495670720063112201243899096623457068873508071945073431642661029143879444025967093020852403604467410841629547377056556961074253732615212074447981190581219468007700592804890187983577836503943510942609479972812176952452155263343062375184880665258575630992706754673379925340406730443738538468116707851046417754013224783094903689710940701591461476418423765044793742006645271212793328641857930608629245718300189219602039137270624260312915314531235851228729772874890530108760512059897910878616774719453282245952182712837701056516698116855768189109778496533194726560911103949700295481579410846145919077373303022981203371661073105804936757869347603592130127046273701186744702442653610306941359543290545506274315157577281171263631624058370182065176942134081950753031126712479220161099722837758642952624718869879246814758478585835480700537301203353771011175335264403720390922325680808956325165237960771596588570990619581312827767338415869159358622829464025236743904158850189242910244476519481110301586993843145691065385795963874062754364974042704578957943625977195584161053399674723763973217793320729131577469971442132183477832996928437034123545127979050119299854970293886048991223987845239222687019326574743075075150433504362174825870569061136223916456821077496261171149991651730357826632565213806337041972132708324680695562872556286995593615059586599872555047752183261521544008407859646086937503596660757542790433251612499925615439065888146797737463424692341346261126949614027082083839941098818008060381246070536230708232405843636679275307791782811855095275943158483014989469744636565952394192859243101403312110769184032503255692300812750449032309692098814865778200181798591942307499538163440553021592910688176454300388578206826263978418506399858264023304783146998891637119484851608436169010284653537358507599797924199521260656989055615420873448107709068400578939222035307343627246093681618183810772377599636956455275811678418496111256361835785415477944300853665539599692892778188730455842462961740433821380165648228208302773275070065964163729705954080529865210638189248795793117529432785755790305688123835104398320200974256593895694491345660237030740085050120964167492764527507423560620883594909939761962085803891150312955091156702397674106484524255833557968764804991247393976868576040339049918529925230483229032735347157676293920989685560487174193937063696719103023051947264938175563961019557821423230149069836581527631828018430021029237979988921156524758374821634887451322393464661078473654230946917831448964781154776909025023010333715382324903638606768176475355163114049396892755002688853832042027127593509462460870150126301609418244951976435652156633237584317074334362091021270956638062617906798916975402956711335998817248753264869741253518502452851347438847790877775466103397253312158595817296141486894804306276107913306283592525170930566696113740757789503808989720834367855774481467754957070213621130039588363875490598886896055461217859048501104430190547847547157640539915797344102903703551263820360398320113085545640489922774486799583019250533382293125135203986571318204482467691475016128347807858083619486823282164298247943764372051703668743621717452908265976773425692074476388310793126441988667705763706524926812138037644121013734706624807197029187392693481576332703536403032897894390558409136481335194675801526508663574897220211564822288189359821247339333358687024852703647072465676649137348360041063384960202431752387048291091406088615199756608233890621185793490520904481369541436420868845559430558831451845922960055079680838072469541488104059747148408352942593448700657158043475711424220846091525172090649673553304879822004179849779413690893841387411799399438090613731417410227826291977273596056550218941005111982191904200837062922001622571948927874590413442156215761813924117416867419248178187733900800437662385367890504419809869900086418862996474582264831610540398192952374647272466925490784413240783606665740696246122041764188658709198652552362916180762633209698662510109692930945447126502761038920555543370538097873050316396328995462898706060841882082991912406627519462462988023113533283136889643205990111793386115883875897610092217969099625403261272919329298701988992256972397235294123085646842223552005538130217789182427147695015409768499909614629092776006756219781854932041863513326028818125052452518102263550156335408340392793399303690291941788307583183980059993515040260388754062107091843394710523890076250129515394574533929625143446998748042232935472319810093319006883826065850818681881825172697008366004690582624630868902927274306061318846372719896672917070298460600641983278345264129308617253332997109390798061895003377087672467840247957629025836209409232825754837397963741317090893974216608027052507512044255731183932054162202762823970735665379586079628945260904948117416807140519775612544837701189985867147621501920972467016910287543583817905641547762980890604595654954107217256419714310555300619808113787568732176889047590576270034753513541813272465923523703883500716301926733597236626483026086825987688041531525840085727782333907901413040197001418594746926297271111737619867911095694235232216027525422347282980782256130964889272704382326259035023014938370818075226661737493016963798818685384679706099485228042400458974023045715699455791069671054374480468231295039478202699438936093121765078417878544044953051882232288314012050645319676550962578005025829817403802163796997277951291275328375866051965469848758221387182208470485524217539394988500363188461778023604315946892751072736281975939920512208691286421152293396409648486123121039196078849833731109150948061298808448348989854410297007072695706894900931139811557598403550774991353532270873258000211511745298603864945627613252443892894740622632857531734750768545677521581516754407259536498210187121852588209153919540112064735220806372088964508875232089328532244638626759218569481844274443218583691138638882485182407441149727891378540513939800783726056076034187312233220535267405206291277747929806151635029700195167517372688568303475605707511046977163295308259949330384268756446730468882789975959325889861671017050211759498097250896935089850232603715118377054171194387146502887693883453444526904365162990590367221575359000429777128695199256617975405196501037486880983447208724333003487374034931862158703292404399801871901353235018386727889235561711754918510803005397154566033759115576109863884930352992774745781067304332616623312763075191638208664141342659147843016020398404041863497122638672565386802294986319861720351042051658579716948050804632505943930478919690018551033312345762525531810133038728811355695306527640280119558249044785077280211767204886339315228291208768396575083189512411456609035164889294591698879999668910357669620488455508200083549734751488899309458718645457087984813023452227851593863709643034068055340323304360943015363325344483443889125579787028641978053833611550307830650033088792189825736703097689441204789612350198248941927318866959474461562665480065000918313505225395331604376210451215779201831480138441430380808643323805338901716625356803694699533746701923703274141251354370576539323763272468648634295342747854415923845797822609433876624566263629880295143655544822086901368122217869813492090975728457368425856354111915239352497388697575719446101933384511203233914591535150396204429718128827640503233457993697437382455229941945900297412750538192404786810619953110272754604352962101238485642043960547695124353504125470892592950925900407620389845950813950073387801787653792873651533255170658821536479600082854407816318507321673993856171261450340969112210707075129759377925991515322139667442544670732372817021287481015179056844107496958188848277995044982491687847321422527094200309303014475734592160899805761867432544924536318548869051692097101920257907420132058506726416060476963909609486291034314739083659990683045235327110558681822461714781094200783829040634974054833932619151217865437247531287335869784914770903766913742470544141185030789223503919870481915428274674139923070922836952021262006323628328406244771335627622586993766608738124026333024602558395992242663553127189156605510915360195960394151268991002257162425957635594382991807898080449931920557025070902118662583295155092021548345454500013121464076818850135023818363901008567836569609078827949344541881905498316654463820008135617669950516071404050295262528778662890190796614352380482554262210630687256066438439304974273483061621811414479492063693801809830713986681879630069329803254846512662274058261801839187970026813354894339986636741812599860207562375347563801870113597873878436819107357487388455952498468173144282662209095525809835136398203850531254659767593219279758462538693810624928515906531829929560366450147210358262937909115786732449274370638638426337169366883851034196969202671794992392196403389865379723309787622215479426445509470773968716708796741511230712722374867948723371958190360448605397067894150845495455382489396357622860656899923483682253653568059658449526496248684276101787147263264665799483966452845109320735829085860247868945274004528623972571955363929071959503570515628563595561870745075962440247938237133156959777020224186695504014424940006257192398441269001238245314323338153943480225472299763736444763824963296390984318831211628968612745450365753412782878370280892972786741324956650642944575737485032423087346983197272697274885731977621457101018814985207021862638097956172131051888322426183757144216373745850234961448138027905268403685156084750248235821829397077533124056129862823998905639876624964405398675046619525625959180693452976099254998444988502895117506761292282785665696186214889293113178409852226193966889713558509951818438678012551666910352688849681608672169407887430794278739845918268207848783888688779134898239699414284220540896979145232229151955665998808826637227086962397018655450464168518549553385115448520550038855228967172021502019545360006838773774679813419586676653044144059071739687179290947377062564515589604760528294052594971406815114312701044252536723923137283321175741256822445213643220569124331961622455707082949805344699530031173395559434469608574328369668620546207575079459780932156819270022909417965619647234763941508382793591625946951667614553779110549740480334194088482098676932630948865470848852024791843140772351744153451390955642991501634582503495492632232149596284789778462421692577016912712399825006644957318437449211850141082314733668006593875792856473579058647161611958998066805341356027331218314778943897711880585355911883319986350391976113068739879563056203925412374041011722448866333690930239396827086270684044864067068397898631253696332484885553058379260015013556818423694646052283702155951392226457948610751662512442999170488397539591805314246530462435621995770471669032367415091133399211194793077838470798166219098057828953014493386704584299166430124312388199752724146585201853648267410606695329717506521283649458717895083908278959883359951255883262230853130191117265242839513197590277840673447199155379818472810925846217037959511866379837166955259207744974460237662171313820324444833279165225513188654314415419030777702626716110256945870202393902259346623978139403858989619914093261256469414703288244364805985139559493772880765561370167558128632306545177576801370948580666036593421479195460955675929245662731961755878822959871991376503908018319697821782140430337933314729697668587297610797873805757011292315359173980483727390907732767527335063915834746065901632487322375643775144357941778294484974803523341263279453990583894689770245922379207359361185429409220609368350881926615921106575471396685932161561636736094300052292790687244973962795977222933278407817672284416859992051829338180029570244652914854373167084956220182796015178257376448445803177784072175075413590600787048725647672180960820061266513530455103683513320826083643905618378839112395706442085156944848505321033900717451772887509681295226368363220948535273412558467610670995676607664696381720586287014570966626075635086029388487361711037173551596936295357445329045870352180827628309060315960810527298999638256167811977083534245442800021972075550057396665680508883602884186408985529337342939876621389072818232494828487982443276530581653839274641777896978726080210126907036051870597769237935999919713632204006931263432123571706062051026071625845000424368453346659194527362121684510916824218381089955066558280909378904148216190709114643385234817546969829293761022301152229419124596160742202016402353980357527396418435717028835850315133132917480856345610050700132859203009113780515590251506996404790171074805068675902034254959723263776214833506597840320481712415870939467271514409617924348812666811400514463438028852580990863188031509639012828228379631380883200418121992457605797028951447705878305301546875519992578423102891318736412434841810855095327426087323090516891643742059363675658004089943681151894123731906180433135166615227301315352607671005146724481566723377511174409408403678423369119763408862155235048980653393903570426175034970019103201568612829868184124513373232074952276040514398986069513236823489739711117013731144882110456875092438536645258665712550713139782669108862728569456858631850897573419431609098439161501910757679913587206273458968938471274675222563219055912180971257067602534836345347494693939498962836253274753673102611861970323079724873585797035648205018439614379698863179312636178846470448731897713902279020120399821534030266163538150663700870603352623864062496402551697689690093361399377324201665322681728771069389046491558478504723357752561605275278750753719376466387225146661000869585613053906932302202488631461501916597721301570683798129309782970176690511005153411322950912740755488669578663496708581742554913233619191096414915065130892153695357666106784148330821119564126131302691535708436839425870282861832656157946918233425828615061399028763558781073239535392943180940443395809916727135977947446520984655451295454704943975834220330594090929216752172382876682745712679205357761131393432738470928014301782773069799762570453999612223950758964934952062288074038404458999034419007131159165810628622013755963499139180289353372571239943504673849348493474077078644676196251086749072388539571408498845566608880875168486763261718218472791540398847340332941801634650106309987462222349595753916202588448413890380578671637622904855886946862617307490258973191502777401419425929598740210969160695182854518142553457886712711674240728918108486867275634382674259089835122781996649792203446119991904694927200089081307411360053800556164142806724221802355568416890304398345081903060830424878824395198982597429397032952176587577033675190087271504968126624724175304297776109426268804193347500664494141324589926643485045087754127325511488112702822057207625630727112354785830029439009616114033461131328673023438074507167280061920177286819386540507397816365586851113257533762972225075464039303599006779778933767458115366851186826579272655851416930366404793222887977840468788134035359281544193760843306058897821469989449603345540762784826104114052424420655229397495337517011349322699802454553781243028101645366767145639886088694870701829129682325234485610767164373662164181188478260410875563161760214953784140831439496275339814759644527400681371369162861141736922566894838171592151234829388260180167678144227323504501446903986817478686748921166185378862335040954343755721652887309780183519246407603307393489678440887469720635719923458419480674706309473409393955077129367324952166678588054520757040111573817106427077195682626033811500057415090463329275555165195249163029039291484084130465851580081369771529751760502874352894766150376089517508498087067609548695434187800696767458505608220739404972292981181750250474526775009023836608112485429743664491492411578259657178790129833077718427288432654784444657957892242975420107913762016048782115421209215136948101424977235694790140526168742124193939946355730650334726809754615382199120823393081839360345266222362867524474258578340478711119934879000452904982157925959345789768370810198729086655592525859399228289802016049722404027418381583761187773465394657047659275564776170230618680979590598094811348425053945350533188950156439559995251122711290067469996249861394582481320546751632485614153445882342422849818467734424469772190519540990994583520647909990751948954110899745060912024362376208552148878542060447899885553520197808048211464148701913056239857613623551109027907748085414972756495383895481096742907781728049909468705143569540721649322910017958873292628867782489754668155900895109946927578480671183512669232996643206816889280173075843317797609844030049706153681675744927836355929086406058856415381172450289057353512286110644278896713031361461734577281380932066806035973564364089646750719726206619716570749677269972069018480088539809268229444152800950891565933773065839252849919843144140776938506756031398277911465304079400877569288686494625539269159922088418173071187224975875540881121453589703645183561979573680673900277446199382631255483891780902632762304201119785248834261718211964412099905709000337558809173366755619047050770483241136212341039410920125197813630564871784099746031520212288356788962973297823411037059090194582883516235823020233551518841960231688326501018886169354571337549249149541494425713761816822554038218424049824146255075501077199326531935449111792931821819588181772594003301219382308648974803339365409903641773102001333677004979747591569768842427585724039471849796012495971121948810585359531529536031452313512203572938117643003388546722089139443993391126439603016908554788021406317287211567211623100148227889704927891216995780660468991783494045441451716194081070494870440983472689468920445080662043171193698985365066189986994027941813914154912219422325309573144557955790541198575143193116436864115366024383906031788575963565404565137975785832191522516528751625786474456770884117835174200934939152363467593149471714387400196540073646629545902196805325460425261340993865296092307022833114764353575616838443154466828114846803552056428885155326148202814836218968586985353177382348340289630426982722014461458522165778290233281784558681205015394635842590057539520255244053833839780952237108004465479707564968781228774711318030734599063511449725047302868033445996146631922857397060919396655189144711082206113904081916454683952486316807258967490303500856703999413617677480950764912681941796995803534932419315162498386284593501097459147760686814508774755413797288324724987061339204991347370642547111370308917587752870688792727529571853792761868988749519536927568271557654555876279756673170734726743366602167962017802098744717255225160113452315918696200181336741284557224858043326339595794813028467871521745205500027293466226997309268132084652657877335551404688760051230158597957131267888235110616600192888588630901747814228710110908335411894539521756822516326165169556273565853047502105103649926895716224276280124692042956666983211350466796492339409446996144235831023850439647684419855182264598982780202963044456119332148523613989738619264507460365563038045491659030392258097780931064677085972467837811804238951239731258518508426949843080819085213661642006628100086317294925539846151933523317753130812457258616790714587314414593897279745215930020790806767587094030521871326275846648189675131415619159856528586554401115526104018879244438181485126741275531223685371379960979858060677241058190551325483211652260896592527184905239638925899140583802205100524735550891585234040176395218567515789691143057251897145504107673351833712504691307397836716679239049878126198479130391943051349366961953415675200847345553428642138752820061456170220113273327788874671759266748871273281128306197278749520392964666338613035900475396355840559003798169558781354994020495732413260710302069116727876272586965598735171713840164884749466096388737096684398149137823136595957079050990855038757431845912802009661009855217750981376349331246733383065417007128264940724991154002461080052477211153584191240233741418485192099553014242516762029267289850087363775338878661410633572255809104636384288977824471728209321810254939624008083649087048088828107728142105431015458240188609904365185991173407612386142574302868794294741271832539233787790278961045551275101867345585906963785748779654391142679560856303819484036984808468826903621037789123527788701233215236559205680036164867270258996426833031176672174090231695811727190339515429077151778504859442766448408194356998986807613859999126015719507281547324369118300805945806971278992900564591125804938455118141918213292482753527872784470889261172521197565769442847965178282948646854040455080823742622426909428359409325959998400117033022109578183387341875377046365921249594951103375656801176804620313739127102692605946560216069967328979275685593789168997975723862626997113967567687759218871011437204258109134420573960846483092157734867589543109387365787637386771212671334637213640089631803136309128173254738131529200723600703429551816323408190675650030994665394583372640231735616202772104572605304063360801173270919213069028837130315861644570895423479977858281651182014234315696668413064708533307174584844499555756571653549266256668118684079113191477277608635242065463754886013412043948685680912482462078698696402694054961171601439055889303870134226353823595524551613175952162487377872828615327328953753622730437035018880291504645920423667405547507235933399944942687551409768948213080514578389552157041299371908549344987206537351806054463742229595731988091343552088970953819867818982153777280029914161056352284106666938020879935448194146683314798571895776814178118808175213922555337419844116314508537530142224554033323012348853567524116677999722245246587383621556492891470551754169583040927967616385393367609548904143227530420180573589905598619817259805812409445102053167339607465816184315341689798860173752606490736678313096525745822156777778695528447656162321238163848380334895216267134531147941021054087728198730746186016459447649219287929017073189106657899109687372423352179345693642634248474548707078802589626945645522212464494077037216607866851863494225445347690234538917112430112536010436933757186248326927407142357641053909794633930570252270054758084593511932833568137018281278323374547428810872383733079062890014482162424449978791693955760068960954937155801960970925554801910659628428568512518195497685127002336848976010518793079199416127813638124487397149153300041349224981439168276482611068342268325395771756211758828728733440213981762957678674521620222207217664314441096342211606411574221701864806875076347943833204058147247264477845280145901007508743063875200720850608384547558636651709483432944686597796123043351763883172996961693102939361974188475074751570629505351180674874308218191328761884459225961604742617811638053390268328741196250652637950039213111020167967286016303682829423421144967773660022870363739922594861399977479229845342390602520045208129471654967685514396526163633549630575983883382778754054071942173203879677178596161076146160619872207664894172338762389864860618430540760407326913286263043292088451549856382056720517031484406451269841640067372634976242002176300175457199895496574427170005414424560055537916528818934559946002017308309646687366507068806028436198236120435179984505261254779686827754069770474566064277344110465104609738326232544998966656003465637987547071422906750993166370765302290723427125054165666185253932216095407976248910945255540525685128439777077488969014281779817448425046099093118787695488291728680392219565107765975390243988795711849971469325564214863716718151954967329385339000851094183798540854466497276901178065393754031518734773809180841066454234398936847259423555878966325239604215034358521292124908602282147736518084333937564257630852736647751306363292306905497043158394221688237908501772480191732563835693734385678695158775308518124264221966759967341788388340490208595091667266068074122808008122341299893563442813003203854979415269348950255350382599022180263312240474872301017231534836783546493031532287230571154649426336579877710904238995007947370025973024093716179431171987178521037026550162473765379380942059617290440461982237479267815283596582856500606713636260038657120783882725383661185545402462736104928415612987689694911892405700059201516339511621678257333965765141830355545445700709527264115302310083364423529130003237841593104769636338862610058874265062604802365910233277940206087442234945154089587469529841369343797636754635515677219972137546549398400369034425165253532958965374954169187278861664504557131041133170426250283458492317656169781264883240911709640462768705436683300508970529183997435262555865819546646076109932908194264137852586595496544408746500892341347717829473832064144599939220742781130090445518372308266195792237672331775281897317092517898444072783818502292270760402351139719949009059603556759232782240518576977513009147528831768982359300946579810934654356257199678210704373826273562619354223228679630631602440120471540385250682732630306576995439126565825113129691864227024420019184289900726782287069609840898277407299258598325120802731957274556444284958946797912543366867999650119953284545658790098356684713379586584996314981728290145446318230182558889086583494299115590249618423711345049661870019891027154013424318465844232282396866804302347834892358561385781290152163938898977148242653020269952301006045457263035060146930290980727439439220942314927734295422624020851774169421733169095004604887131312127763305371921381050907853199419134813043566518949469896947554799943962360652479814108352286532503605376046456390975311655826180850783480889471994455617832806107775535679447383162651781637999535587984329249451570300950075153301018619147807210427028037814524363859070804167336551114937520223854200447234213300702496350674055022251883836292208554984401685108833730368926432062064656218513994752475082365443487478255680933461562464400274437401085214200523100852888933970885215207448213720630228494371979371031848245360503108024531877080482300189054576186270492200090813945877722374088334158394655112665848130613171907004624109244629064975127899692844131612538438591717447548876092930955927577569881640118071699474808206590848231607707715578214052068551966183696931930378315486999335250168661491839595281055206377179784772271754988417731686841767364883652330517040053277394453928464950314386765712063280797897639381726822555118919743230651815800576625052888053524980487124657460689798047923199322166968299653266539506146444348113236745804367254885902155811284129574393879173950566412650843989208194077968677783852782197240022234890691894312660805530049924039593643416133176340444479403449308100947569870093847912142460508029496927230109597168590110730097824650534822924958086811078225987225627245264323405951094207198184961553027313297483372953540276965632086633819860419034220719606050958416863535054551986387111260669442706879383713686234833926834918881143175730196572965053195456829166711131040076617721139448007636014247478299565407503709249052199731959429462526788752438742190067828503739011135210338447325833220915786946418308472398599838733629901111887551303443384716051870033545189720294887411537503221019263666236676427731950931464823269595430442022853134749034459216919413536208643330401194102839715860541584316707979904912987801806704361456684267694551919206642288310289600841154451871400701088880986337639373790866288768326572559439512753529905915256991086014861273513099871606842448580135249124571875637680932854383402651098261961313153998363123951298722969028170441800737129728845083199438179895674104402416047083903941805171146298273113591870975078707746404450917074116381907132715509229439841064660978115499695027604921863058728926591655116959247425664962704110708479061039090948652749649550625972457891664998088164646329616316417090713025135490635668506394573019035956903261102685028163899302354154801098399717269871168319122893044599316145555231085907128093650759946696204791079062476872218424390603934169812388977680459464305799345736741840566194189347994095893530832880250490685768517010626452978562002380521198211132437223873143246078596998439523933786334394016082866518362576339305167609847662918830138186355269285959840395103881314368157249510188122572962445626290969219347672169585369115625035256101224055018137392821151490536349159904641736774357429468182149622475104966022194105343343676939096222625985923108326447389588432226287944788182441261437576676498467462421888331602093363769099426516535976391381525775264113928628701224624849153964241837994493179647253887254417302700775757742054155534224391360763784503813931295438737241542640575474094412952540619691490204262411759405401841769825150293860793886128266175781753343638575751623052685903239802580529707038273713444387826208290294863149094861535458512304611265251237041326487993637603493996075545711969194772916866377182581488735453269944211327311203825796789798393107234270169408392882857322316602524186363718597391669526427515684423043875008075839921360678640526429371808801798809976379797768837245944877325542819669071236473417001940921815660941788419701282210690706154089243102658708261227109665211183432519157888126600630131404828635618175476507265568542344317435169766882523513873150763016663793271212581669938464342239930814290097159575902179140091090126324906925811387552239991331846721481677481731786435754215778189307719481503051484262575240420436631715124632418313063056063562615877034124992321219930352624172723813760411860844871692266824425169540992108238416287069522387185356056277134747225976509563655986465553348118091540535204107268480697197584007112331526169283864825149953869181329925111971346204120147067547579618061173321206539771993170192677628359891847640349294289962930238708837707765206123467221096733274057148425856133487547154819659899910515661910761430774802672150120309671536084270995375274474126033638788935620869006068400920695864221670409291569138092249433623150888182548385901490179112575662525804263867066357615567910244077092115423439050241342069401213943669446894617167831879460960137764106569888470729571202400073722885734289104912133188584369697897221483001868509812338473429028501214960885121804963758858782307439744214412591064957370670579091885668899238761698138396104651209123746296858445344731453436895864854130027378481971434043032752991769346277188967296426115549842824168732193465001411459840629080301613624031971300041604305739704191343392614699126665224897872655147353591204571008873104401674901643228050717441992897889811873121976743741354309179507123558839150819682410628683914540072411068803315645452957910919637949659695728496513508267137579364430190485441745150060715745242279827628716117755043969127602099081848040568064149828683922943990207305991000564629397307349919032106638510273305523971229912902692052803167953738550427287826419732144351548513214639883755971483127043262890038409984302325487179736821527494307001459079990956711709794528307203930047326931459712011547916665921604403290501625591418422296825315399115346991587067224940720317449377854049917352240181589861569406419866852967792607724719312290014946169611115807278172130583233569791864814957892602059591617101273693237311023496036701826634443305146231373228795352153618893873680312449114372491817115126633429081749416754869614073525123017622010081556777274873016065854636889703648638781068898133565445127785084949423173097491464687807236003457865681323794799389856969259406367722466161938662492208457306810565163402230518249332822169283123859515658235193311411145782573108429567618597091852288172199155695979216482008324936133414636949167884773479819663285324009615410101604234512463496740012546166529416495204751661580571869132547503974293158512968590084479881264668975327543659224804179290649706268826490844864816668302322118305429245105364440085800799603214756311897319967918352976858763577657953908681256216147381437029147447078182015710625483915692366207232142969749805337850567161158488874528971717964954306672024372917749927972019999990833147395240026779059001559139912397141335341943339371227282258368366762555585590072166210259155281275561232768867900276473496005965255614383541690130313849201663900858763888480740129926322016319621911429132205305694523095487256697548806937136783295636297776122751820589168922399402978938344677404077046880598029962787936898030604202302193823105982488777907955542407333229282618593261568647875670690563238907309102011912994148770559209479966044825257052695585644797369744396015037612079290100396256176075181340212660041358732638185129860974326718738399319724165167871364243133821974479009485416840938437882766894448547847524007577671883752842909829104288416871707852229440830226637105935272934893906831892088000118662191999027969342895927004595087825268330594858017961167467292931790036543175092463984534621724024375879241847969599439472150154496407872234298617674247496862706460418412051923318674627680007803433898845639550842975007488266496528698990046042967085928599825219444390489308347428982648455578498807857255928534528095452691139439343358818882351771921048139565068102294134073994418415376662929917281882966151228882672266252670384291361037604753892124482754063189932341374744349166637538280064870981664212534352448332043643954982714209771486792369908316517496656595887230162491343802587408413638537033886549765320562479065884872602223099847333503695201816355984407483794506180642476912248006705114499299945932945486912187589061848198218955236015148127308318948604733289058419627787252455767940363601050455998116715309901214104847927537515323722142067648576199014562397247794482644544758701900043620125463750107544054662883277333854170746040610344462493011134523475767869704939077187067556659045457505946515032564402442910588713358329200529364601778883638962779218452596722571180623947517261769438338840339022753767370247757669577593220960873242465679986084630474866895216074648783059240643146762084766356162462092447504169521596444189972364330490360605572912790584481270473564320832260493038035446091852220077104131749020603983080361900587562715869757148740909306153614511763753750998078121109059861392918020035647768273189044610528076419614546038226423478999034895625642509784905732595699889412909892037662681689328995418994531811590593025160023728795638774866097149251853408676446871310000708068692755866622762100558929167295053988079890332897043459814612776403870412126521411185775648755567474676963648284444778771266548488057200447907262117103025530548524056678180818583253743081017987870783049874128582367962057018745064389071371557698342780893995179488387985043159866772749084521035237976834845768497568059227475399377131287797895481844450810601863999328045545467445215016136311132306261568288888428371340125977546091641751284889126851470574453652584927788350845173032865536229382349771482777761143684721307553563653616355260515984951759357503468807925283721577219587218219061599827994038917008939528152655524028480600018590721278523898259776592001791492506210089070415493972428740824706227851987102458828484571225013439477066388488911906116764557395551403977604737424706907148706681735730279836390389457432725691158992122312825715188997757921445575662608063356132972579089184190439734792589646005001844916026576309256191652963966820661187375099106574012811397365004089868887794001681082789676398480973785305815815819914760971020560636449446666491308622363515826502334987880142123408152052660875487961590977759532983668890306935668307933320234497235345179291589405059456485924673292422478731649551562551737737341408260017468477778717260093935105796533429509406237174202960254526713438834556421496505165538344630882895219314884091712615897513861185765882196205536439315969478223458591414250049935581355619914023402869113152778159329075009063455714155059478509816462620738882209787726549270173596108381862439835078032969211850699033579160437400695004504000074111187493653652571897383117394355366921915468031124526627950638002235884511447185703116076508577345892330595335083268147045656430290808098465662268892710427634380502213145729649068614220051089596759364576762306326857605342750592131204922817920059523999568412253166844913489426015334170001147326145696572847329799925895454497816686672126243650131819610032683364818862746736602363014323270695670475745831497916912438443675627599906838612842155168606000492035188196023852432324179770116061107339615352152432091185188415528745793898076268175262478272861025190529649835241168697983501576584734266408051013863102720173276009688894640045418916453149021556162821891042777624634373534349940614353225123987433819994357476342378717423821291521151362584676463314063067256100185066973768009639531544832094381697359270309907155989382051216275380631045552639349057299078101505297996257261011924768409814278271646170935698172593268797883335444907722091787307901072119920477762677129697454433433934258006248664976828875923718750827501371673424109093107444452132175138728067258435349965025917335005914731049097713389501657167874065006527149194595755835805220339200672984946185133257994922613736998602837259293534020637994464118516314023093231670183313847395761816876631191103648454049092171877600066727710525031382501192011861322209729793396912874110909634180790745749091614454559336439956528279045632953608561682766799737699155800199129191780151986528333899520059679485809643171677026785966221544158461854606964588961329354367660589058870975192975112225930807035650090434069112987386276558821199462445239276403863417090906947747549580702799920148096565870890285238207197409163978497645871230022151137730875802600397557877707334172826386655963812398632139123081900158293983986984676786610464115912581916115294707235709431772197574920859974183802463741260331405472108710093904746496952542588958741720673174719854368720433174339301972874391027051311356457561518428375426699768694678748026276532896436527604649243209761618235649241446863778274323115210758840080715383950965008600903100517048885757341914173337831383373294927760786484608658022171528466202008016861240730947671196526032830817975160992243448565762197866804714633064052332905184567185617055916536450541845959033868609808966194070793618802702574199826288326212517441959868037429130536849801305380124805991991983215714573554148798032435065643619681734544296815085696004518299273575979665358162583819904789885956551508291157238646249479124080222525254279507787930551115163326178980845617178328172330973052531685063351313680505069819655790139627412489755106791713960389863557741049641305754915998108397821356024707790332166737092129038468577193233968841439469971032339503234322725294790801992191946392283257501561402995163545564470265268347467800430165421317380467309861358661637962985048737449396481213773392410657830290886884049001105101660963323769672314065260024763230343362538245887305183357610118409582651073673985925245184899887071867587845390296365652551914531414839438564948681948742274493422891440697076641404480343407760665837068813656591876098821997747866913451157365368114890401756470909683586102659892596810774031702892110389268155598450184093142719889562413318400247262691879406649275536300382333855109730964998298728169217252715678168733538910785724196331625012057461786758245979378212838552132719871410394574859397931354281764479377527566478835383567038200507826927785595065008181945097745700876414453320865765994880884784455911599565974952141159696738094055425909835780715290803959044693884394703552283743620006575806315711272560281073527443646695517914524092928044021072523512148606529796269474545810662458554090112005113596389006081037187733102397637274210285689604703794053922176006741941851331326828700291400488401936376484415108992217062804395286334049157611117054103791984476205033498687105031731818128832399838207174761344145645191171432722986059159416308872596873570262099534395468108782851596076771047259764684469345462626200277229202388508107432431329549801132134162704424619211533282480269657883326702355574207122630176322579694950281214953857472900634775303386200877583222427844909904741148051821167376891031840525690293407828723577077600178114408848473020931864340079756886538034962860262872734292647996407617956821811371851156961193553209107009852353396176147653170025881744258332130915300541321377114406159547061827843415268430270689231520493277267585993085463564728742976358410206983918912834070564080987820307909637839513596688711107733157868963417661892284655163805773638995343621375385114403513898650928749218446814909571006532136388501581028496434975326647554611326920142930593922018623212087794558839794278765289624494381871291920157409790197619552377427478059691156896940561446370899194462340968993087730271129728021237522177660412875847146825585643720681600202628901395004727214146050780037268548624467830689498296349555841976790427557346193312699515809430238403943479295514525113392596096382849842269371729493910678455035129582713720876734134401155115143570866533681744457911795191961741705806770825381955786954547461029924799957517732735390510097868429856635336933778480907940558713275164254016757858336980494993554753553081716859204730729914055054175948377960980815924397996225789998658655805146430290799631637061412332293240429250875216460521495927341726769623964297138331997562630862274366282258939439542211962258909890143636551880985632080967155334617928536565688255370242896096086608134951127739554003707645539288695370089852091779195856553923558304382777602881361150957704817286523022694317341343206794393916563257892524087171717005652211914773213784104761126848215323308050986914827411562143118792560814234532829924453690642437923380601503158073164676310715945998036212139456329475582296534151602533156254822523539887401637534600442770938732461679034040585225438740428621631983621587307384995008871673115015972740788769964689695613799084865389487316688773876283875923786303972320493119973327197769403400139993660121289718709648303268808868696758985696121000999800886295756279876246318329404198691302585513929018411580048687793982265732496255014925380766441587042165500431011066433194103881090436878058175934893795468015549813602307198652624738592639180788183067470568541426816371800511352632324576386234428334390565586998074239904694897909671449498033320521800432821166136498223935953986552270754854738766887263427197466241376160762807136957890210124868260313904104371688632166974157245956881690418010459245254339989847939960196811862058832151347769062693656412249830691485813589990892055184779072631258519480686608322973318632127211005929862425247301434256490156967265285433643419576647953322720092416395489411636132749289583772146767730936091054273042845536768658536328460860086623298567160191482090055204763074356240195935633483780358535940681583996199156144080921756797501880245543660625065288019450088408026407988384399965040872455179745105995790018726036333620778773045276505536012927763342426708956939774213378001682109238912362232029808147933063535938519607287028598959717007446578177590832663012702765448950549379997688835464639901918474351733745110088734543549884207587843596070736317459279949653415098515281527517672847223680875744958750884840703730620962753067616107755429982469424482850144868475394161019116330283283485497293767644660826284789270211585147292692369212890277353332830673602548922902149821934875640469062960762106193820298109484370951892446949921840886185548716914088090423912493513777854121729422669632330189560056053859204963973662238471183123464335819301690088330067940275592727501918002415084026644163151061467493515714552917316824475822941662603308669436309293960099191640258720568227562891332908699766874562474357117856709130362673860081313966639670669651218737132149126992702543669421671469827276915883116996254933471228716514600008984509435671467915092347170562602407166953379432431551908201281611742897424654937068228508627093458503061235699892213553832435952336746451878470091277536268151939533263017862739464241876216297230593690405460900780307258157341337618236002926374531935968280265576554190602345984792562547529481435381630634379819566241273469331473067574648637299743937482540202457880838718378338456707923984332734876449279172494781358767683065236158126675127536433912611484720912911010283750763933553879994883838032743159621591983669770991677668466752570202509407104242838517760989327513504503221125720090406277655949652902681711908031020673541758946925432626693203781237207359309742044425371382040366819218335330063079407647392175274461062427620774180898667301701426558557771243394539885555512205629960485631332601476185591002637294611787721620619532361350751099111426511270806996255551567380588002849698508688245379938515669986907969634330415534029654674504571321764566909540837205526509261845594765457887793559928863883351227200210606283599265893064363189350087333203065466766160661628013432667600538240430244171360699391696687952965271191981643420175825079037295475848862252574117338088475941871102559600465518139703581055528768720216928704905342013572782605718543037730455691631197041524863195843146207802959842105041559421565235035705351546742069147522762863551621497688703409208829937616135452851669694560634903053565685008846376913112469746040666576147602429278214773828348399438899277399478410686367748922988870994589443935565744649313621891704411548139595786276332577385670319127046687727156770385831917943462240002323686324625128058091768439301337928917053519412573979585267480754941647112122709670648966853954642564721434296033566639666347877604406700833038236397116717972966993518472438382914675434547903794463669133666892014855098031681923963294882517174022979799359257226070660601929821373476183975442504987607806944050022062464987826206021171078723169770544220662403387956306878731011639910286465397733033088522233828250185989438892021505735842538182098689584333748293993074237783815282811921351625953112426552997096472214306484092801317713630837728554016444440014060942520810565868695376409948458976556004545019620435026330317955265442010063920349194169614965095077151195826481281514992180893369641849368770972118977931975711976437739625779827578505529266767951124129644239191430504716373931658508050624062367592815242250899363602117239659613784445960257015385595079665379029162509882573041103116939284568706018990152881632696914768355399816499971233773263234197857223781471714880800135034909755469389960176109251298011686014885900010933778476231907061865628971949993989321134357582902000838921851484258318313482132500936343259116511138715365510257464163946389395130954462548743213417663509310646890671837356270598091379042507782034006239265667055877202041639300482334943799149736177252205236050175257601702437618502940163902532894772994470759895493871832413534825659067269507525137245839315681080271613705983040406666642268208665008900817178114108913081892632973726591764758570911229278584652369508587008903537331251449579939870323245091092808662099011110977414520644247049380991166027823557823796946646613803540824570639745838911991879674761161639125372410804032090428337868840664538970659254707045403165588289799619748877192145286090286251583602043879644024306734111648745563922165993522821773543756602471178594525058440064555096842843023446055508666874343891842533161380476664870861512228414896940734711552473891053930548685626286333434208818423491699932663115411912823600719362503170219804122480934832569260357153912437134410292684439394046805286491531130690923217581265396978209208233163962588582362342204069070866257904895134235482574646265608841229113286486936737826730675032553944443455042213730309647303032403913226952771817984980065528409153651148299147293886929999074724717354311229003094453867536485854485021628533470466472920704088478751918299202758154777797554231651075344080673124121653065595518504244794831175061441025174124417810784640160639121156984756245869634010999889241215097576648232707894799547537056151341213444677563605378778229812237717731222117873636508276776166551351148188819712590279680381081834233009724667472000361496644584119662907163376069468089107068211409323459581272745403735172429367932587980928773279908107427672495969860110041382522349222106793677781334050819676598110996897005721380496431478348345588880197505405137013398703600413220428878110604332546228143865646394210447496313834454849894122019740365809508630200351816476150340791109856997393891575034163661202760815644526195159269817680142465481683142617683692659771075184410203093198298842000505678610552140207392163504213414566897905472429609071487990197700419097979226593335465542244362377545977777682807812355908291520354845200370410643179639140471224738819042198852506395874801115237322475298953186179100039357147645119596574592982706364627507588849754613135731317025344545364199627185822830341463102203282050381560206883107634717596684546101809988440389615240024367336286498042221167859032702090693958172549525565411851678535862117343049134132526865540460560990435255404117109554177308103120297668946010300268143953292669331583735010556447130817359625811443966044686851448004615037028838994993567073552780034360843376543669264203105239656615800944154483612908017292651390341046425925254304631528943896461829912563593277029484797869305299669365459252603644678292425162868961232452524173926787740301237803753928583068976760685060883459387395816424164905407730574193695632250607790433949683004408182347684812458343350886864150251259368875686346479166410093024151444544396828395084688742160295108373314766685958757772796483744236803764366293589133777940253605157893975149561217260006721621307059118256184926464848459956079920524046981652298983791948532162938161990635390626813503388159074074763975025259057126381965814190512233327921075749801850012189876058954782387807814333128519921686024998837500107210229714721173171920245683794583803491691703676841639515416612967119793808522885535749685828557769650786582720787612805245126848615412751446429580032816592937864250449715880379673401836168124033773267681061349023379011468972402214518273391462930249471621001917366069265989346179819003071319756605694580184075317977096007195818240203417689433323681816007048840414244919038457690090733580825802111302568241689030748257298977852288924376185446500911751697155946731413123013885878227046308403138090161237266912745739244135232484320273480790443731779633217747367002216456587858842122376450491206435355103747322066553255408441232672854970310481861151812719203086400459122045901371996112191891509282700258366043938672066730281819822529981885288251841811902482947420625882422635139077205645239264749128606928147495238979282788471931908144926083775458707773490958873419956693197455156146757040316388381104583798839502466527349796523971968470919998960365030833731068490649759908070805660565767088868281008196742108424935333303300739114380512141134711663386475307181747939608056876009770674301072658635231297118176434138861992256069897572001500309830936621312630794182743337404424981722942815713485619824661227795583016551043689020038861400393071282317368313129264436492078241169595641791495117684099681967665805154434193031106457780012619440853812950583959462221205902353991040723556630896881977077196506422910668582795746349465105752805831835340623666826632778022099167526374329475965929068059828846427441540102941871174921853407237785224880276770772996390773253779036706206380662347286688348320489305454992675802636363197394950426000297729082698075299801839197683999330892156987090280571109506722818222684508460694817883148612124689482777040195340871043296758821171409845273050527491696901650725830818375455803395620618697128505922544461127643727878489754899061339111369825087115059981241763316725680690568472112603337023007662686868138899714169967016291559759530079385422702149254670963634334686624944795442679993234758535148578045051440519492298323026284778395981578656336726418270230051603946196869612908361105746478689733568545832868507747252217432559079228494954612878524007028413201245122566545516049261259448748371312875561960735072700155094172147030985016688874727244269663393498490998255033927962259674292097877041849743533199030109977561238299994704641354605970152063466070069643947530320050317055641433605052817837990335713149892749674792072938315069709154356004385080088777632453270271233743033597798406202000511050822513853027440422490509696550219397042410110232668823106099267893962677723098653604038760935098324187142330849632586779017967081467050264131901797479872817670233172916560033759710005573644145993115536515500253271694829369687829269046537840751001808891923661781161455309639634456312809916971261969030367129141633938091003844209776082086431975550844066993065393246568388086616058506737661423810398337299041296066602743624717742122448603136600676474652709027734087640900297524901015531902181179478527237861623831453084502428523809648817118888864753351220426141972141781060019480001999359325211426577243193953922377282589502273371020878119835799326461862463567809452017711815988781041815875416354037994577518014161669534523790298161348687224393065272251964258303486323008644220596187471573178802285702146563527223128482297470333347121620304420384149785786025267456890822205255124056582554189695951347873403239921134865570680836964469445672892890353128410948269947313331179642959164127166419112947425017489672569332084413460504979009947547920305619563254544165085812490195117288537047742184047687561128362529930773161809695450648775313716039891906489550795863577307219968332698059968710086674324283526660780938956647962312702466327778329074890676419789073067260390632989937257094832860518787027335102196540082898193136522260786058366086757370858611230453693907003721881258709082739625615453672884970627710133494700344138020696839544592111322578661556987019968773290792706736644140861910406695793370893510857871958051328777421449528003130682551342667748313204116809478695843886771183056695754788990764619702990674060982779518561810262163501935906562718978248101230459356890711125754830553515162600879943124621715714862268211661448613875701315376302377186512907500820165245496968085657157954663290537133081160977845815905832227746810482815420446862449149564428013625303628491045523860739541676185248801087316487164243989242214797027115386093166814800254060741444487820399784494462810294351352937672775483556191824423651245328318594496246845762687643275494440108094421577536260839154829518614960733712856818269147211995975420432841612228417304355603752227185700340749998899241860254435938339164088497854956808840190737053704491849932180132253173766812819821333082573812475091607661183163474696596329938832372051367979875493370360541941232646028472097845343792474002521484797285528736037089789200313064153218176049171626731888520595275974695184176957796581138414343792803656255504543603708649198883303015540865219269066716835879218927658745541845887030391963270721853937280397752400807458155643829974505903627661441262621053642190230130757595514429648177997082394581760169486537183673286113745721806337275505297667900138910591698408627577095741319301765298291017851081538568055724912835392723193413514900735113092065019327897815002499511487036450136149258668278553950959033716829624541326773880789450766151170473127667181278068497464284589003481818995545595412126746507485159762696328185502961434673273376036038017466588742113033144956751238662729585470906512953623798828286851210984015203522452412698490156703036969973336999461498792108236051326134180082516667314402576156587644261323585647445392677841553326167533043362524791695477037472422601403912253485047190824691813770716766436974813336885828553409695790745613729103260952301994106856663612161494076496637911452454137066262076872386358574917922323958167606331914260863241360287113232947126050841343685456992909237689682463038603430543508692835405046757833643858422946465191493111664556875044658102822333738835175752319600740206903555281518888651289209893375073607419597123554464327741967310299707253027648697664693078644781072587693444105398413621372623786232439265670863430249557150742209372648334982169207108971201073188693824350103780265542373646781025621198636982225099105911766165869344805608694414721783815285560220513499682202320100384718861037563122378853050876151383393276968952875512678632575508431826253414081256051407616591801837040238462514217983588570163440259274208586598322870604528254086549394838759664957962035819011576159832371018976042818920613084224756482051828250996658780493236192851288013139228230287103326216362304159617347031921715807294374990151892234390205365509953453507379661464428593158985518169562372863952484498017670085659516598578207709267313119797923592071965289176520394149240218899382990762111610396087826975615344937321478832440542973274779293453603901551293822625954683746355092416795051534683086928218046622758821699900577126378448542774773806743870107553358765255820763566625729763489313262262579520365410699562517731301962192214995543328076133058493423197902219483179192033628595102496552228336770131032200495088659923734695589371646578376069269772756769873699914209889042133948662603088352402378320752997809015757305002473748860411291177621597774996962204897264353822726336160504191639358587958983521364286895085521441628754566685888803907022107901193294818798747032281656339479942269985537127906007924664884296784165633305534002284323947916759844643014071489117021067108368006760230204029466177814350982193863190439944430025323944547405474998263692435943604263829048245276487114765113343351765021229611752691440787490797008885312883615286273438911042412575729638467126570089756975117754685017388289255266274651748453262459367963109279645299189501185216004190949071697986069369887082223567603802417581173149289185926083414983144931725734717167272875910764241333844775637204064045277403578278813042340220634315164874723870046361483009999540722977207539274346640656896530028412178624798985494207997818135364386557375030742498196803376591297413976917491886469954176444052275183004918634450197820364685848807622371653229861329362642539588570534634245432260779092597688010663854673943295010835453185415482526322777911371624001856621569566170494045670205824144228357827223652028322408174579818785170911990959645156987304002066244788309506406272698984608058284976203040541202621931505021779592936007563709117925193140782671316259892751803210197193091079622490161312436991696417870346290124678601351890877604762458531775580669475343910317004211289933072110868390156159836472527121498815201538691276861428062122507339073171759171189177083865934895255517457781755607610844790435280969056493895207301458654255008686403430472524464875822824108987039480073317648136587049855013664682154382670995548733793733458679128802246637965214666299240890562528336410432923733566598852845414402231101158705009105346410402979796905828823648966051341420100431150957373076361821685842427730489957593911284929939440494629946890036028675997323824463960657923351109514666705656993810355078613086454673782057422049413515138924901040509112001807925244952090039528190124636620749579218632230165231383890261437749904973709522786641372014816534434102648032910284764574359954366990991982213650239862711729985569232044075788063389940665406064552984580042490911640458089986535289109141106533403409668750352978062488293193186017341957040268692809194152078875996742200570841826206495768443581875939813554742061077646548849910363157400191603011201095995535110248304900721547899413936111942089729026960714613329272392698174125946994217922830252170579949502061330670558774739160460761293425039459907470745641001673747098583231520313620061437130740223094408387201496678452763924512034835791853611171869449744494669099149887805676238482108611727892587052721860441754005760846926508995891981499645647996188616926676180014855156128351690501413096543063714505935682014119859591792210968345631816301312102132747817763522059900490109019791839370973840244629137749846543367342511488045134356028064983321796471034872166555529164163631080209439881104469193442942589443771513947890105083282802946386550033634763055986050629094794737087482068412049928011641471295903652672812307475958120823791275557268960345716083828909236273949495735372309289054032774980750071169821928272613948401466218589997367667156124427644754879195203268153390822147255181106511075781654891325882360465827414663495092363876323388520467294141258239909553841340834249181591659915807436913010054628529288659344169487222498257722238950298075222469066323574766083828993659286459135190752078762659081084713430076353128474467769514560181088052344507091405781311436911354525146435387489751637076697695420898670948199465059883669556297970705732560151165934783867085926882832181686068837674563763880708548042869574176683344060605122155279294312101455774417857839606108225365923334164502078221894539465094243063641921997436680905548705215220456643885800222538426149964638535799114243180891089832050952618367251815160286440244120753330387074059908247256466975652317419162110956809958826750686165787491904010287617403071155662778136120888675619382369564342451046605466550513014429817789994244214545848420931486546964236033282413833865032157487010968478662192623547380065303476677284985926630222171450957616853084364845272805328575302187657647300896671743087162080643952113129049462007589411259965778288937213889931201618026628996223641272167148425398809718465884551315019440623602483984899254934887883108940417936904117742474731615081665335039229985987774603985808821768019110818589772656206269689261440703479174127716613813164789757003139010732475916157624473689163353361136746994578369278741780029985854584664321585769147114806846453227222896000998720024347525603769704542414514477866664563534488120746430815077476532222101451727639643636941768625992267239006907502289463702369319300071179969745396809872852023729059241951695258119365335510260220429987469731087956608574815247577944663888099663773874744340921898423342931378360027883300184484095682140603646685899711113351022384725311529561806724771326942504712273024970733185245615055279546662997198305893660943338934050186252323698602833250888752492981953044308989559659754936563057789654060544668920539130854077052383463421560409243869270453121311955448252206365845703616398341284033840850432268838656534323357391633182786972411659326257428949945431854655589522853003064523583273639126182720557524006591214030965086383018703262300211914368601648005069284128679792654272316531329168522511781333254284927659469347362555098305021533839875733497091268010367998917351217095866428703505864946937690062746857602697926229958671239580440568451932905487014809002603410913228790638964598601665554957998180846469397727225728418246411575420590526550144635324376880974056419613759413653357472034070419949525470902254589607365851600574664430537986236967427929796108020451120201118831852115384631743564095608190046397547143746233382208439336229448649681786810338383482898827646122475127067373525047878140244932381454107460228641034593150935510351970660151719125881099377781700534517299156567840818833155531664630311996274367534025283839672598299411853194721820107441821797486403550726010658102850207857201198875655069789475671610988059760045102085679112249099974788131149726518960624199442550607859991172449033070238862906640990542357450642597159345809131649274034169549402038489746196669021840207325396045898117111370148312057937014258532144114561721570066565798729714084493193023559303940849863448639977905031884825290920353678872161796807867316565465646997765525577784254235917475173451335074701719662889944119894245510209543494400396531337830820625019330523411086717895928080571919110738326929801937530537616708833215654267634418430537565416749298460800678334075225562303247299314875942961464028709251084320986534725674450774821637286105849804914613574473198680308226462244137794242865251601239990123842755750591301657495209148737448554292872127184007631549312802448374055682584759370059616560986037910136329740979852435956084385417131779631572979594872798768301523672830061330309119983747992592880497004084420437682197109167386077492899932996800578446425785469423901055822933663806223172494160037854938367513466115871184614883497572157224345599065894371770459079923223368387375636351130180448966057519999998311516379363784985154584105708390216515231229556461727763611632277347567235131083702350706824143584775183750513335485696183972168241044578470302674487728263573362329646135968879569172776088611886231506348531861083657857888376369622251474837543673652363577845629939913979077566031717743597344379210685447210573916765257008254295976912171834161453551344589332062011696219024883689624399361139465295051945054935988572420956965178355001153010391367241586966495727353093121623287092996257841097802076493711610431054713545071747757685801493518092879963840205373192307302565054626036298822373907180350366073610937180380068563386961498746220825244085629029971743917252255499905842090629614227072118082692510622883869370512239728027972926360798892049140792881883375967756904129730935298842032246098298923187075249946616022211029887458009383000875112072928618846849493681318428343295548881249939169040225538557297270363884857454326610371098199135050466497212690009969691564734962605798263006023286082573842638237083668443321963444705136008170406741352569568715811766766703167440099666082949509475272099970355485782491255561010301846001270809391655313394895619799808489328211101131128628457903541506607049615398886688125540028212025646744601815177623827168722544611560294271902457653514962441216050066450952502848653510582363450290618109736515435921408864378116337788711141910241156234093017958570981420820537004484468615390426266947109016470146986622466013688744215084184620458673512899096194258526203253192629118429711590070041238314293172956898886162329164818410693602225530748366256884674716469954371310926353849681500266436970186208819911969935444806472467259779923067030823911727591275521627583175915865319801377230628769800965426971469468575607438844722200380296646100830668219939471455008538352618679858918221555539772534777123352663822270566469466545068177265041522357292630338149194046323582870822369974131118041384057938613572434750115172379936769440693507310876233124478638417099999161728345418307225092188151185472456711489576194766243538761743880127499632600249665298183241798242566648662431701716321824203466851134576286523506375375047628919178587438022294409689299358914948217240404416338878534097037259838418684872180208067794031476722531478389669920466428972605491382486894507674644267904262336812030143774620196240085777360490007488891825303693700422564794370594219912229557672522317553765469647675513441015660175639433524680709495226448689235550357371517755705068580362259710734401320013233628790666865139364249243035542170011377500694164053356391023648658588635260878180474889009769350015982910458199115210037400123155838654993442345417994573343892997894890121865067070826474790960476872887884321069140247775905563505992441347355034299351886979960753579447881228494127974391398247522092201596406545092726180862411169539225286106735693165706093183668747383751530734853666066292230208626004559132814029884620096327785789321272610196766486783742926228659348373983961261463724198030438892612438811766566502733200515232651944746646849240555232405088968506440857970858403174493690160381557254711090010293816056596289649918796660345800635878349089219605164790550016354001388797358965830941357723192350556760383246531891239047599274147820178770848946881591797252914333506320573457092197037375213900506493973605946414576390997842443408256688898362194042788178778839764069226738459037353603905119584996404653213262468153447074076646130699172159207715614389177384075188124317614596667860319820098553329930781384619114497876522998190247154722617116207535947097326331664820253665481783640302375532839508176505109841968627367135838578138171210103053620330873322523117782094581996718886543279905524371577622731085681562160098846260280388819138427201008557898226699516182947931042314469553141958082048798265480659280141495691388400602798709724437402630775193439647071548339577261013444728906803435673248787687028937230204210853487507016305238516589775603807808941592913527112885179331921362438076666779218463332842832001305363805432462347423501337953799478479249317345229349537175231078379762966944799297442342834946126145896865737206812982418819518180659784526633482654039024210341445968127479831642026556544704307379242020732156596600589683930811032558084494561905250982338202236354388260484693949872745721338566994780819417426744581936030549415849955578126543255937528263165415367458221627995886833879479472643789868854180137301489835378648221898768470043070071151126273992563861216197594682160145677179601080241563015645509982670373459455681540000739562692830053030390709248719073147430026124604022730774124029360637784263777627372832034633779827599083399224953232328272664661043893580871722501832871255494222441855414887670150801687037894127722934130243779847437985760186554192112034722392485241402984134874500544939923502320874991233218111259334310948910478781694328322922609405503376348489060764741873339102712523075925954116950050493867048894187826851156369819399491535718399328748610313204688876201958018854476110383732792676259526537829505953772265962211685535894906402505025544400683882349887353574007238525162295915519350813246019971452228011061082386250345865220328009010203927773086589903410941722468577691753420855472987268742627794575188966432159424161367097648574954864437345801004851814191239568834551657358518753036334623981943329272177865868976048462127870420825731683791397665460025360776715017916362774949475060136077185737163710674603836793331467097063917312486181604320883420857754564871459017577196196867922417143012839730407577119934623800009729374324688209406566107238047691755171284650829732805886906911190803035345421897209253553517072812373537856477562287000937141533876084723062310140760166887130941594008835389880961719050118645965382650818136684677345634765780700738840848319334945467030349875547518185821147294711713641610549836922915571854429519364736395317478611732715938596816865040686401169405482085487591105378332698070666697648504022450841768641569899111516689341592864761906399632972283187922608929347963593808340922091199614113735629349201732442045134911866264236726051695930798147169191976450415716714358799866083152190527528553989313509774365094839936516309307146675734719751791283628802017963630581994224110151366111065874157738529845461715740998040372144302210167361367630149959098385205321042767353963351248991924155509028050041658972810136276042082318875858988778697057802845790547642536433289617852809433138439549588038927546251049068972608890795654671884537051833677519314623729689912843618649391558135006002333408098185118945440845148829360368125548859068022941688658152749908170236384727253404204612766189839967344498236970111992515460573446711070153864259492937687827689643460252711884820347008411103918606000945830190028337895160099112904337100111077101219097737172349738763929190485477473761535311174205641044599515873937161264719880355688042008990607511196561144562235394370343512981814479864281078262090570452667500592893103236740941640035207874609712449864061007626766788288970196129471893652436922415189316053622078013377863443213436476358343960993346542739189191124327474201191210380438133645468302182291294758618659349025025674876776433849985692381976704562587088507384827717502607173709198820607045192701844970311518386151324005408988084839508471337972725900054699579305473513718379216582645805773524807973916934225729424434246183846563207064686542139611655123881356888738225404674129949770614417000050562336960477063044256989029618912543380052107912165059376882388078884996028342263529837259957485805209357464833511929449522522578428278827041855467684654893531206884916307418249381169180378674565454803684861793781959297420275887735416055604039557367841083839798643945262274570648335302819688261607936532964018212995241340938415369531478631329098849165806353978880641030436411233909426130122061303281806129961956981103867126740823185073855193933768765802603940004429264442815875271791742280288750676004817110682741052461870499788167704737975761923875320650322404369559222174342422276883661990989066647186929350409406296475832721775161624210834146845661615138969035148426338373458618459926740004451274353484745791439243854436899777092230414171819081228771735635168642421355230579463229585182263255409725541822009817122072487473531303675487406206336045891092863643218694989513486494695455441612524489963386135445920330273246235025512327910017352855472841127634117838313209061063758544061990935668156159848402691959163584042680054336012147229120788219736241250696114640982967082812007223617802023016511251361627846239104501053571991782618688872151318427259309618583918515756890363008733595266228416559454765974236003870927457897419492068824214987840030155198033134450717656576223287833468129097364215963643845593496348082262625561592201608252050744497857281849381289524381954945067950676368266735841481803062609740424216999087439190325853422342339493394219756998697142873974521808364602877595707100778725812359519685175853635082517556066160151400854399281533224492622242977056920765941202436041744572283705143545496358102473752781592902290663063253810801206271596386000224485353036281967245685094435676818744949601784977092945782596671814562137417692314647885869037497463441878437122116256983219781313828951772081370448331658558372841820626070733338825980398545361393510783864622958342578181559663812847352601338987385922882302130355852207477915133206239394630050743946090308469148800896056687011075999984037097679679949185525774486917055168562551053491161605111266844467142395283344110682868091958931377020383408674532363962583966615810673542980908350612774240024291680331001744357260201100516083670524404768716179190089995468487016346918595988067317857553157846599186857606447235823938245815981506578668666693687212960591625542674844707551124146332813696622917333876974562529928494861938398479084977437369932150727142924205796963673297492890849397991150900942568562665318100089124378040587229849103027928842909297106160813368013342003976164797604427057055052283916851769497726785713667539876010771811145217507262463773758125088895161430335204232842630411215144439812765434369752389855324791076525300054629522716143616401237637711830642587645113902104373194914522178952198404280837378647116762247139520822349219546429449062298811756074241636489171415243942762966651313187054978613795753190311736032936102269846497017069013233654587673084357122765592958370551756611582304755126247193864260980331682978033383601656842938389540573684682679717012552889176121956282028328039832855157108748071379923988554033298772506991142880630381059348793561380096707258462503884869683610283413011465774684135758734751063434402365417952828515195312703254408956422750977799050727105088491713173219219656953939417350657071161927214677823720913320581903932908649042627916204399278609142570507913047351029307406227611281247994132458850639225618807946127296155768430282744824094774904259379827985616724103945188360676750650927950230574220642452993035007972697821765362873440479827118274650335645894475648138125810376961809000087867964758164453368995705691449919971699252521629782006043256125781128493125563989995053267555776551996099520830482171767175958846805798828810016785929816804293422390358824314103127607073845087336881980811903583171496451484081444750945176719885847273514177896673264966733912277344504314727152514190159062321403435093972515324017720204184284515489925001379199570007992518806372343769835859640543248312780278687876633272607767946442618633033222831687506920368332199980464861575556340977023986511530916626299769603600092040473108765171992571693850300813009370645115011166620479984104228384334149634434244869007785826389083357641831934549096706287191552772319795848555869444017622601139355956701934629223583389029986956435400097184897434903216633871367972643905988819759287836019225924279035814214993745072789106126562930704873217404020167345411939594355457768086835356152712818002357403734135311140628043229544142940914488316287497157421907095491955107717189758399447848797385626631874655264461831005638102110870285873966234169475816222408938372239938356423942204595750748300797009560834411665890689559737318314477743688942732718651284811063094678791358201054196651282630550933202207869592508222997975271573786224250615617965499357609893325800715798535988055163626162429506836933991891175086663271206308755033086516702339541403854032075171448149381504275490916954606701225478659742492433953542754051799458481837793435626323065862591827188835898389167750118597628502569598078244713336003991210771421912115173650996026121776124479356552691393938549219334156886364517504231009504511735077278271063209726961382373208684807675008729299064190298662383408375612988554788785715070163172152949838916650587010085597942205263484975564536209200457351421382476803116160874848801377386261262058373599988492211809211799657344083392938081346756190456999340296289164592856481967285717285192077887812786466341495228908409162137866044931158511742322864217248912520241912996753697647616024791203087297918586741682128033603086170869422735301436160299653904109769537195662580807989764047933173369288989890495990360751520392448947803490845109505840299720454744547199779893928378127785966211372288455824475152167217846900743948192032077150826859448034589877037847826405042676892053735453902324108313167585471132756690138123099903183284797713452039569132097576463749507064588381402211912579631574534824313865570598191572119367485206070265453199788056034210148800522037847479417077954598290846444033449693558724108229796653915665810424620066275711102430520349492183810047343427120296853424446368111415047387432368231956073873530275793148721933691740495658439622973190482369129115788530368424048182308248626086822500424156379150454314905250644301881016589657911008279384200005334230461978330407875885543508762264914391432694345705066660210218860432326768189625227438175000012945795880265706397757661211969673134425764045231418508078664809270644444524216915990773211096133876215583301189421567192220478614811788557872587147235531340315744292959540479753194172139829390287204908464658529906194489285600911406674381998126776801863202151499186492421302917829991095850058467975002889781325552032198289366211274363754899296298678174735712487896697751777794504887237775942667824980023952859809050958563685427585347871516006997250982012721473475308978077367797111201396836422462920082670995574623856991081497305490276993421035324047425152388684868233646277410659839407129827188663720227757847629592825805926781102273208528198728132778964178344135784609091824211301780803252474677938958307331982697096408607750885753130355446262726693353722439559143591394130893914032489718912867243898130878136599925424310135998211599748062404258955195546617600933042644863688133501063960448238366588361629532879282707372797332653095052799036250764856445490974535535867539943351248036804070090728757326894057034734862155761027402539330593026385907363028627372811298321285734124785611283695406055311267636693249854580937905909111521688786988424862704208166664804350782976102129392017036244878765728501520539709639121667053167044991615806244879783319271770786184125856232849903774847182340546225945346742854088927627798387408383122559022780525143745398241469953371652064736854243056270689226354431732426216558718045846324526706593309227969271256671462349292728603148227861644968316793723215263135201257103047165109154915726226508426798890228310812814991642386055765598258489310597561351360400675369126951714932576584219672880412351436430639416490856467865725967326137738882183222068190630702787421486349378896654445450489930849757939416197529753842780725735775942734139382507880792570816571890484517988689977193391064734626293274245635809439686680308531235331270498158516044177399354104613726667537339369144002075886084878324741879248038591073420407155384705440339345495374350886310558425813113151156245791829146081257652961720092580967785481191162421156343810855319116242166645912061060625543191018748464731582370316255394240751859872433987103320974776503658478513191499167065067483743584481575402239006836856662715852597135571667395448833827275507924690206193196256870939788641628145761044480162617773316050281320070893712855235280514661195141534232836559731783365577444728140518108965507076886664806462878156813720473011090326998768816604562409475213410312553454566173632598927257320244213625935971610837778550249569199497996077367537037323458591746833434582719779073120670321943549072163338493981176183761304930910022012823337297524291205399919491087926649881532765405575386940342797353095215106575742516662179191749055534114978675289496592386476482423978521728745706950984968328166540690204488323245782055341526615709839011405662712280176004510892146982925858025210211489977889342062060818981368931372542002885299491179825087310178319751556588080154218615627923709138128750475121842311720672903219050146209173570254724712511060539871843204029507199642436333963773739607625225297744955903435014914960368599380087274077682012382989701365184490556966904507509604595626137339424946328477878075831919096650240239227780327624784706818913815938498064556594300564090626777130060752758396989089139201007750625494096824490396264442579858631793552667013912085530089184372411694909843619155114056948156612659094824015712021293546784255999844029676171659517873769627571243817461083504088259355047135948348972484957297045039910620617300744732231705281967298640352893032364195114858476846439632687690242922002008505250961704642649477414808905933922135096888518717592465489364616132834033727929025124595457337441855901712139086759299409406034821262840533333503828896426319885757543194463996088840847570095404548692103790496061248258799696235992649834975497515289549737078449445718934201982789574357320885756397721731230826706434716913708371542500197835597896329944628325252642603880924006440003736980450010890373407211540595523198798543640699340492658091614224290579271067903867372899033861009973978594259811541472423231314100601989052954662342487899654994000464517254523944607351351478316181642102398004193596800501417611656708688876821323564306230469727086961696444186273032824202728544659865758836995178153731467630161428439893382550041873309299596781069284939266224862633616582821045568633895969248993516703372747586291518796135306633923103420688422498753155927044003074369106442522767433243389716012458033856759423438540367782344748395587671985772363283206813445498213565934696403632299424833894109947099028748797662232148263231255668553573098935562887136961317026404892020965601649712962808480855086126093196791343997394866607088646387738300337192263999013423111670593897713987877392235508657088015142681706562883596377996566935122335906562049628277054756267936401459681751745247837553797883388162747465223654024155665635429212948166208787158268234743300975592165315284086722200324212106579339280925489547922251601629625676563936771012362140331341840319932293618175546227883328006304856240897960334640785827229363361134614646155019552876122899262063638355066341540835597831556051816438208333652596711357989889405941987844509541194177587068425846014627143963734883139853292503060971268727188117966143135945997804140483918325268118114242438749457244254850105385847188882772890584332928278813918008887166582714416446424898098192476254184379043929500153088659927708821266852607899434239851885924862647504678153531534111737059117811772664704669269021579271130312878430667798097642437559164776946761482375887058459126189703831018181805637474733274512054580551380048019314179622891605554854713826784606982477478826058623398043530142725290827397473042753770458981790456195005453284423269296709957319502282047404618481795222758167499387102720364101372870852880735901738137734016166643564542887987234176063171968561268799358145645426130480845712898740202423557179518562598350058997318634954890926854841393357714150151531493591123490798622716447370006653499754717981882718011980601892852753808987176970987212478435441211805737992841306422822386754180742160446321534644388400232622043705781073042825935524136743632517479801471082617944428776116407540731563673730813682665227652658033593788404119398464570539633281800444700663138177159723517725843209588499612152605976016493345001282219101420835769993385964829394505003487986261992079447600593202762707282375910014241707902886557722272125610032593830908454560957055768166919941619589153034998726993477560993764063518969167609814189574067939951914769045805114547196651583273295626802487084119609017092989685894327083854865267027277250592721021508298587825669265499177138368907378992467514161391510006329163063194233407500783293357842393425342294161828979975698510453848516036667074427912185602063743132048324588076797776487233883662131589604173100262735361480822733737050744309805081849460121597171476946673258175842108479118315595296131351684336740892380417830304756626768607402804369464881198837990727590023198039736736766354186319513088900131518991966153982098749380358715307597696655204471856756188225818991049836359657103396140070728908870147369166033890224379319529180696968295139096219475630325785504104982045846824183018774760366820024722546268754524195929132802153080694383429353363011888538877397098793064482274535519759430086523482829243314428714228266411318261106243015221304282807687699197192061303317609761533371193465490551748712893286857727035813782505680305866588401075715902450869601514933826929879023830176590369296256590185368429001308536205987665936759551914434942899927323340566951866149601761405416796801022616667556772583618358140396523476666095720219393357034907269310014533715580734548569392210097764687980794224295870518294241842810447040753950826410068553909005244374227414268294227487020718510155581535306077876535375177761584615649228470787793353616131971562979713925906562095361596549450454214881821713175442185118113677105010742284223882831020594200545156543714970518128422090724382987043730072059596229601681351974760040024862749003153560349343836971134388685851843525766505997356243301867778492373003034946995207903019946398608465116710471660675313844455701269062664451157027275761607195747757311297254657517664864756858644200417962529767076369670257950063415152487136871103667294699949021826650969506814651395653092070198306114001846885765663803821540947247197604055471752099466444231131803402556168684040293999089498046742318682601924593593330482915156338771400122079215830730483805703621987956370191992466134631982865902416651167357619255719337692669517858075437063070221400997653069859576217554996153940347598965985080438504397946850314302398459489624979929337692488756729932582056781338915487155600139330294896027039772819793946614282217905973539341816116350226769599263450447268947508401246234887070213383148314649378305789969288789218676068293950057689278343772500028882563411859169783150191335387121029183064310652292550880259852158022183097397818483141382366728609176274037811461489512203296478501443823906623092117222055605150806687764387436848149500459587053571564879478191960400998664079026768060261468799215248171381228946299743307141613446578186484467857219924317661117451759022408508939399753403042641160720154947600862211687803649310975451600132016772988504130511305068364051843669670285215473461729125344758335290948378359749801691837651329179829037893047383963970773612955528047229930988482871408085402220902530628454662493056259153777195268955684374385295835800597916707257518797176171217569862446689505601198925014477105019511717411769904585692385691257135853471134338546434709142982791380798500724071363834304458130288774878319740206836122864634384894550848328006442361882677176365953668286985035986834556492493265555684447945924769193219025584110820543444232363602469977870551301918498266795525108267418104000806023405711431377947213827953709799011980077511379232828246224060778960828291863719902138686430549532144599477959729003500876959332042819446251491087282364111946974986408823255165460506943070121445301722413023451454097276092814269300254437567179550832475308513525553753261568512989175275242296584345786670316384455232022030261911776938064563600063972701368942994935588440030493708150141692401010357387992405256266406842413447637491364172496749123964246219509954118348241038341697211869445557071863936094260202262570888304113045195032416137618964949597795408238749089325056005523032201557554999717524212009452174067942333169625664359090801305626046801317812168290757671079633795589506876225904694625959733077387841823814895048671235674137042047571421930799510653778567178957942484502756137403597494103487412471716176524873476545124572285063093239181606273298152288860065531966165526934141994310873304222756433552886440126344233769602209351526366514128985715836590062715236497165938133257611077430689354063621683854542209421626676979433868607017415745688861965594243449005744479584978119426130596300774112134346556774379359293168109855317478679850314902604233554436548925574785152216980205284206784255619417249541892322617891963381723484323741816368391691830486161137542870045962915578649799259789049168340795135579295429971079249820261431873763861935649171122345880114603159088228596467413052931376880766601710214074000672653160268176504752174576025524291942708579310809638541111918212751714569053730056576761747936238651707914979009323639992315655606758773158638682292291384327351102854535778814473367278926254601414458294678008184315600638137120494264761559279680793115320210155476994035464422508766468982666788494873187814884502229307166298745837328987601443618553804423759514535164509932465461703951256152766082936777132628677200836463171656584753455690890070313201058322147298443623781936319287157375294206874463639382159919623841412180296664657367779274560126924864955111500517102120531995633157183155573123201505118429064823457666272492785535847993297047649090116828578446353268026089224472244367448173044629581840789462738703531511271025872682258717568608694562401862278825018109549231864780698140443066197479484191272947413135152822919090135757474016819214674509322247572147833207588858736919290835755606700822087814929619242454680041001277179394555691918116482032552209675793834846973334562287187355899145947039554489625955625829393265528343466435250463446900997503475627596659871660071916568465299931800302214829462746092679837357724538535583436772225757429840398262538630930247036461238600878589106362689792205650999566681782948247564147627078880566544735150760786684811425965291121623824880662633593836177315889315108322866330291146497373662073109918802434330664247721349530501331821952311968284971830400039607335070625486962997763186775503048430261743641570694397948971712243912061852484312972873224462938872666575719255973706173380825595064318836533084407645369762543509627155233219795635365471865759537339767102382884421545044041730384322162875651245156189437675490759696730630363336061554831622594440182805710803580084353280949413154335924701289800499568863671276515364832060123523128046463477758900959326593190271715549808128345537799895563038566441847431651700027561637210992402920441257115453899977987938957211750435165072716217057204589558626956936796096514820841111567147914042472222856866745622593023631300330208525948435698058013720988692442035017740981208845257512948471965462711937502973671979936954829527478549729165169055755277109899374203723699540799692886939840406574884123365729090261427319292402728854804746043278928406790033937187140963216538361117320793670097919521489900172260837226288444320220250058498706617364247177182793625007145473447385561568012155921604211039918458745840674065920263065106221287860413290860298790673379686324959123445028363316508555818858335972268258488109661937872586539541423449149475183037548650097649933667022122054641977167452187740787455313079786881837990023044489219591079133282206170925263789787725257182010397225637871132896620881642209811861241143994337040026574880134302621957781904972165413320511056788118487757606039226017143167200500135155644951524022309404590898465038986170678959491470348678891305194117276027268542782256062545920130138194183920847083455583924691810010147839730726900924775566011505434850458818851920811793238322321754946121740339087737417914533089577272261984021195401430888099250632715393640970078705531434289186900750829837899535065704645721678803594989906385663813001287017602428277490826396200913535242903446015353777923435778125065429016729411907300938179417099369817895787539328598824757058452671763736639419290133478451578603933002349680046451649562751279536458622059550065939258102967814281157497356554873298205338636959655177644413507862842352807638792485196546912021537903267348108110605541216322605015992250610825033610985540979921237211030325114159032826986312974659982489730188672973451775854011195448962131498661132816414968710216365493325954298100029410294417097159056804371983943809890087844844502443689143634789846042245717897764882995982268195071846780912630056475670039411643783637292451641189985210906484825392468754674124330964365869770960216827543451854173787035504158165378146380201183578764712225531181327893525137245187788109399340058941526892296843418103834292239075765050640396430782956214730147463748941312768872397344741560007351918957910953939516134317468779171206426389780681928584642326572144569825493009894049817599049288828283618100796974064816271668178122525651622380037922875943968866814652654967944213100259132630397124085173688678817100933154597150394527586627419529798887960457744795887207442138261439115459608304980354690903212775249949478064429393216981949935146646510530868870292638234018411149801638446162905283740822195286628927166840375579304009563751620472734021544054998700205487799910269279376483496312550851052173339260815702206425840469504229252390840281085489436664865292003186262219301093950257645352596378409810191241262738083588713588368130386888485060820083673606717386171374543571069534670588426374164287555484689551782349381295774562462538455710165634006076571508429359212336550944192208085798658975999909986220158019316035809732022896045402903193059958123609347319025476858184744352597899913643983721971116082527153804843757139327682179113253878285738249920443517018601581952691370147051587267986363238901774433253952809226961776536075978431650568956652996193202134750113023606333115806607900799624182524324100976305416799905280953509936092936757191271493571464367422727955593414345050495359290029962264551412175143194679756074504656174622384492841446285873671692914379602772097077242492194952160879639725821265150030150582169147424716555385033398802440433810390183096236177015602809723638147955728881332146426799875717196659443204591662774594479807194917623316342365313132236604052534637383948970468512245830284003152380443744588035714733965838211792347730126451565038917496566498256108125188547306504765145015355374681909542266506182709790620263280570998107113311722831685181445853968413934693190450853558974366154750008449154555975142904491769774439913455275523471919469726720213406817807990268436709301349645552971570030107706146203508777107280072228530481297658484230493624462311232244787827107593733228688536857881282814367006356617944915929181427566158700161429020352107595560649556934626434980877984753267719556963552428827159087202591860606716284981551829964073060899872253703982256650302418378131597451992412928317813900056049418986664350094374731643573140442973711486817492410420600151713192060096644871584857143325437928400885414689141886852147292673042829902124693286322903175917458818745150398876120638553993095901757112695146437798307042289261150923002131009598507826544225455397268517024910391252721468220216817985677159647274706067522336110430951795762516795241498991307255925187320522244520701307827864056366506364588986365495572026881398725648473592061799700060001327727279522038836231670647186566650147502936677871083418289695807545488490960774007706205267220696664464785913841474622032836371987256548414404658242466136509716944326759330685824931275924332654353123659074934768773036999354928986505074177235701134019035681113525815251198232483703423145838315172323727919358085168609939311558537327845064153450581597531776897368462585781472828456575750236339366255946611147465841313396018118073541200012257315903143236640949441136691143865432720954218280644058471478967874026832075400267090111222656461781960238509877030072980825884327330193197423526342084473599408385540955238344210186609479603164848288174594670247599347389454462479078637664753001053421187135899291317203307654292982405166373750044832443896999813566390835783317308490243638677523242081251297001684700030699102051720744264269114870897197350108165695071761583733231558887811882585638921265121350854248655671742358659858097303725395118326158043260633812078114208789826955374139370255268401604951710122907421942304893316475668945266001294506304040560272086549519246653129381802069952297451422057468256258072035086400141722637922795832875655490195256539805945912357236019451938419418234157594798923884967508425840066788804101282138902637238556169412863868326643794390561202960822505239988126759402016700271914763250659348873031480977300970272558362368562352833258051385827622171042848784148507954079790636238000839907766343279487772045806584124108469033027469346538829008601966982848842096814922343388408399593571054198586495735927850523423478357222245169719574739935762588716084064657660964215975198769620063605727191485391410145393190128103799165669695425807028089910632963969687947659045359093125105228730033898578860494559384025030178105814054426574095341415815724644443033334993737844494858302503070116601100439912522713838716896211342164310517733612200350104723129155894486738341723837836317272401069234546633102057933785440161895548034428725915888814075819948416776990813551829646219349280657830829954180417536334147899300700375228438193301220181454580697090807346224284315293110279450497635159453225308620679969575153415145525005289752155386910892237791811905188969322948376572719919958709239652588676042675619697197697377919015595150062250450480023526998869688530110874445769276771136515737512260191261613289078760461217897526398412345167726572303296403362426730869143926088168331942548167675927844023307707243446525516319690922307581554968584300889843865491887881342123968213023619503797496156402827784197173130524683987921906214284781349569521531592567984513733197850884569418285005524350156032914709481268762907529265024812733930390562596110689609495996334788753840991382723612646404056549306888231352249215692252748579337532880428399048341339381311933451380316392846590670314077667624551580826629596037775556199017111784034116419064901867629185442062275848104767742546586043885563489203172697955932429775825075379265742874343983374771432384226828866069708352823357212058307340741767456360380698950607783151748997511645998959735290075929725781876159287120934996779311378659700053044487560923241173311518992009531033944508115244082435586394288028303201560745414905973317119112856695152324326283307731116877744154666969999727306025310123760600135141296872057722584860967386094573996191786018430507739131174202367050409523164187916186050099355347550299304994058884924684371755949324955872389821101155439926745738773997084063999217137606591833240565330068553541178008528199966098794120171946341752794630632329320026991911063633545993160727101649308503275458194687126153268282855822090381167973075826690828603798253672956931110095962253265615329451026432638293658506111030236291697745244569439704454829752173388996370512428271190143558441952627163072274783826370993425028784388574843876955683445753781147330685968113411356855465656766568218966827389233440454889301435604616538448964684328191002669399480213754967958290791060822387237934839047942341340854575841344180783307925662158337609254705409577145297701331860246629411450791627467787657369548743961680030391360922532998990450066408332887763765459328929689457850703548952217649461996536019044855870414620310928771363544253072832709611410595530962437953362967744680337958087369804481758431670041147479375261693213915569390139214146048894117265952883098875567695206553009043774285078894270194359368254392957449447245626417945521331479525765682753812757170817069765217000541219177842590712214016768725896233438627695660533761050324793934261650133911254338789181869014494523138135500382293412244144060318561687174333152907829600285933881367367314133043246097345744156234761747413037593311418005582686447234595613748653607024175638496320729829728657692553871252394599635512055070352799185675543989269945809087588130102113877641041417588704573924103093135153909796958061976988333537053118714108937013707226093350444789247075642826603131449888029566630209495619912985021830168340584654524019843917790479556223019617908211351232814148155333148819050705975388907314969488202639117893410575766982313051448495012906593976202508708471295001553443307304563534666064774886619660710614608090617296966181791199717084906420977364762443690794731403712943317536025949753847498949125082215225701855034050451223584174194241558723086420832727392125644953502068605901302256989711283150992977451924145898119123963318901757936696143358225635057366964345810855500639353456166707275580642290158603913289719917063445317848041337281933540856363814086988646552294764063271837194498507882032020350930477530702584664588555497440793416688028448162390779558312804123692750522127150031024663668545522913364640679352898110966066474097825835978771330314723785331698796266386098294443840354680459217330448389399513220950002662081859035344762069540065482868405141604367692716281829118681068776606611922088349295045111942642458539399158792420811153450299948914812145547272718933585230063693236835381475774033491794706462299107654940349432385947280905909323391873649834821071898783948217962382041019868075341051124084779686497408160119474345150193856754519930080466662182062043691936648170126738544735953369870439048155473081901387129946986054762807317331762491215073121766097158467261910143177971338109746125236229839347959723397817224882716824302322733656133585424930089652653827898919880464190377038442096008192935173820179806469865151056119764944697689798773666842171285673399347915589394854497338487811359507617683033737656893448321321011179788811688120008642426928566713232885281391609163343460836301807030643726115330753634327246467117536628828449351990287453813697106892089706894486670038823713217763067791155563243857049328696319472038581378619525201577732699636311535613111854826751821135167132095900498665398288903179139822516144291971129113034819107532963304456136411568210170371009265557759839231179341273227292688185739073105594471728881464979072556052537621785311580700588493844035114201620270041374658717899925279828617447625054347015337403670715690756774010847490014806276319741720624487716395913572029932923231948910891909344360565219160505099101700311484512057242479667125936118657189620106074291644917652156244256177006482324838051098489567733089269967666104601781363961280609747290005355590586009562364495002014054467114591942030543988409673543954899039814624566772376359065577728887852824930671178908304836002569021078296675564022220390039517117560589172402367245598076981916235535495281837185621761387098898220320750010997879412886573649126084412344575139804708384396848738632831563225356866838597323592926026653544635555928083511240033649889638308673086528348855908660969958900492987063738434467303916764148337869069746893095690319314631881577816837496649760749168034078284555063751999705045764166591823334525964150776182412886803169969061991645947771814370310922077386890053041966382123701588737733399919059020834899403466781599642942084260087288424869472636564680488021497851876747481862122671800829329237853834075818268414187532168792447178069979644545526149633105719974437113294991228161417268034007907634705140484535033262561413570744122835044834705691503833282818353097306800245465837448442276495609899416461582583762504449578409851969133490525752219684087171544061671243966378874724374284770565257103813753964517530532440917391323498201594507434756869858777314477656568426561914541036380724904586376877340123502039671387111347064262298589815613147207571425723684414302115928518841547217185428667950954349035270274796354112295464651271847069873877089291557146911544786818461759981243954966043953932507984401982451478833829773473003092853825930434682561136171784704724974030744982742111357621178073706241577423601158620352605069716058916648117763074282781752141026939781368272982196047609397572762161029777749832816710542334742493770117035471933849617789945615155439035865340888251838155594334753194308678630380967507100919961976512594500570474184949261483157626071207105639652646741580294683287227217055449583599934221050548229849556824965499627680708559579070539137000313833100122497468626230463480621369648190147368615170369137207259063693526926989564509516086847942381717006118697616157659131392487460796230742797469423634030438736037982660258926569351788153879588427334406830230399470206575513084217576759993860168757481046868210086232671825755342061858332346555821731211849636425281866211146298158061269815210490293041821999077381342845237745351710777728760899302969541337424824726929864406500353280032930340288735615437498177540393210909458971994958113964966119350567010569424565884694566801735529982045428591565879068179439802288363267181230736540614529202241040283377753854178628908304700258212779374769614189313119289849843113028171282722201134276734553324788886859806277268792873856860326911020369573721555842787874059112536214565473788294453568838513817879033094374136782873503455326427275457523640286789902201169666067565961700787639231062008559722904925156200248472642624723622584328153551144573183106682035290543134116241648105076922198661459206031126925226437325083380751993860723097373003385594813135417276766965904392033459995423612823068280652567376715984339489462281759880674626428726764852258637744450482124009355890210181773213956354954847309357170440567595609568228419890551934447318110644784323822431581935362634155782937043326319561685829617697907471683371746021215732138882805750042892706078565763839830742084017218022398257458613709133973009341875528573191979162093190528240975362387687619932353822310809720077131518590491695989219786636409580280516625378937329877199646315508820746172153877962372849322924705613484389296429437173668066475600942801729962102869391977668127547754230678934581652136939993975686138911761783902119442813705358243005518698986137222708127978041897734701093773623228615720207963970510378606152803122003401484673481452616947924858876163676048067366706188271486433466566805198093734603370935844976000394684007862017684821804115197626631279066208749260952053337163452957657646277413909537748115153324382696705029452552723389855182477940168624581174488814949507466273910798478060731241765382373773416556958508075614925752761374847031685901460061934679591221014756760841612402108875539424248954441668251930486732068101387989186090966382352114276436804365695955152876933593691717203161201430473898016453976225274254856712970506115316526232585440966411783499230352769275017194010303158134054431382458787505936402377200525837751906322936610601252212597457729182845037193843841896462806165875189939995380066792003894580993056667972732534987452529725460199928099059639095147430660088389696894726070367269162961573781348204665265956743354685456944493742968745360157022683940167397987589512067889801663913980307130547489636533553736773551951910694610223982843428843541648050931032697505032560355626249052553626307478290940350904797243818081211391289202715442602652553610029551877343893040212492645905487593248775619474181247975496591216180984110967486444956935296965029773773418718262662309953714255976788754967706727055188737494778593978170356846726259849567739701883951114580628983933914572822950565756465296729572672518470695304969271168226061153245547267919771284791995483237402979333247066509853305136487342507103375086718876774824572040495287090684207046616935038326644204061516193640120325774965556029918637858675506372968126361369518260460861601971215428535899862556932997698024245717015928636808628001625310179108043206920365993939193537936024633282909135477039517354481578931805346298462010028211568081836415274575450179944369010754815086085133545858217665038852016388193737863790515009467827971719652112552710215452126878557577810375572166944967883837828110484890092814612624470103513618205428890919493011489586123556331405995573446156586248640693636504889659308139449434200620933872616370403704017358972147463928502248703508190427436181001185734724621981320310017034661072496747732768754357437478943362666547139979128222558378997951706363494565151083926278894729583323012304874282217211181035246463562109962585494418562608710783933857189357485200771733626169773806605173516710600960979223413054570694018990663722320944913783077113701418080869712995658022069156887927239670281704718948972298558328710976615855995171372806190068500983420005944020698877204346005282743453677587935100860685672857760641360198909058387940635764125858934129892303166442094253547992252364898865490340522217710944666345975960446560404866960650692566667719529949796716491589370577108049518950149692080802699161901892105725157806643571612201667909104801824367228626905498631708499095043500665325160954272956063003236523584359991896317244280776250345751894149311633216794725437581783247062633398499956136527593864674055741897908894490797662871858711576859893793040903826315153969062501135367006964488771660108895074456733478510393220737427109867696343171646929728845262900869951830890366902686605283812098362401178479609813508275247817995613090422911416642192046372759859159554948285362279141693345758494686644723376205015987180152316705660130328163544081518425749512632667583396482168768797298851945769748207501656682431034833601259155817346442376738681428574026425495716037082843058204318787384095816207913364073704290092218449346547237463253833752293473463262396164211745704207172344358139897180545038816859607201098457820597140697525904885384776698499714726347179416156143326388903113190170209095097863863918165802072444726390544491561209218603059109793747639733862600323575145015188292600347584015320519465475496015557864685764629437026775344177969251904695413808209799406890799529909992557074361478272977013209880006820860748771937729534566203226475680884552375058808243060542160758445438110558819186838029411617462992042782827283104876975950681056316452613128342987213535133175403061583105912274472623769658200292832051100374453481218669005811370040003737348251142853842489491699986912636690780424085778744250454702603203060182337919587485494646117073835846593470843549175069492753550196312535095466233191853845123119668300691727053245058009399291355167050492986942204879588269816921723607650491102837146387668826237454179182408836221968826880512462083591350165419631255313524187550098686689580575801045255885647456820007188169763134203069691441935153609041077923503334382277444506420186090674461752301218936644827700385449494938555175821515066488679509277943671382265377267059222629226748136321612914218307394323182164465606016891174990881249151482342102216516239303822018911087426756156950848671886992930131527085815564211979057510196973370366212718846653323265860677848964627717943960196336340655158183358167984499719070032803325839780964319864170497128733741873459669153082004115236083268956985567472708286226921375921396440770579914378125175518286921063052965428505667630127644317677320089622635651083997094327776673006556320083174080089120038777244551776187313118137178481100290158969558381177365519269765734861942027415348665253221386625032137300032167622537416395036460830892637374113669381943712960748667225099900772831390555650882951368723330446995660147626142051218680980491090155846804748762754836699932194547500546747812543881804227723981357956346609272694363289395942368813084991831372426475174206217433148204019315857983666553957374909080947043349608595536817553942054414411088141095840182970383104368746003103494216345410719271217869166540514822296683314841929845775346411329129971000478337242944159129881573837420232907500281624506984056455586832739833155731451510529562974901936363817085908643751484023776846640555326314344345037806465598402677272457818849820542314213704163593529433611604141854603611237062713584474270130275948513775009612345052383422904837127091269555126647730703148907125170644149163918215997825364550496792678960154435217688373755444167235997424565113628998694369416392265143289950386452342120162349626867365694956162828118126841771946427887692069565610552365992900074250479349708051964764304490001504180594035958340628178291207653121326102267405046539963165499373292751567542230776792117458046836845382832403884738569953586486389226916202953030168721732211255088032501436993358071000439797758473101177193072997289246807436594224138873830156396261430119875727412899766746861787438040387266801668555928240785211321243729625859706638156915894525960142351171695944191153200627086776720100085520254396993885724594691277048791618680823913785907038211958344655806523556451835884354193958562502485170089683334885639471102419922314630448693896842408927371447261274340342510277434274318906557916303424140867680843490259335915213376096892264216672614894066367367442179313543121286831185264194925423599108826501218119529214157462440222218524149223669877891604253712310497848277329597620017212158947060518006996991896192683198501735399350611462726642957027513984599649019383060069335055207110149458285697480503955895719297663681634003355031501268601327329162666872643261463007064052711387572630586445816133381104723250225060567565855435695029970611135198961698372251338367856844015880304992176745231082958585817296611877009019090151070382915283999266387535146721322619322900154456480773235252810976686079249088655079130213511187458298149781235748021593154896847920328679851882181146143762251609220744335860524137255742293936495441049486790493802122433300153474916179458477601759676759939860691853213885155332867222460302573231224721814776135992177650714234646610569076044351237917337325992586293892266050894008048209926531749589824762569568560622886964733295169732601306597630076975045995655638519530996660979462066054513170673846371560308718703699604706249315931409782576840784286361299871532543752955317325764070881169310272719566720307570306445694782862657488660558537332797486194161315287809336520603152410041230299107991666525816347401397358858390721143644427724852151898192171970875812859779432591247230818487163402826451841640397788086484037682699524610993341689337175482613918849782234590968297222704608321701471708406472298041476498066789457381634451091781143532471482462718858539230241065252815768614433064716471970472922136043667561778960560230915753365875286934307109727603781174710538407281466521993988031326722218016694392111264830152449673126876303787638750423318450364378209486332271059406596011847532398696029202726605382181487880723604644791817587084885516596748762650979175640724637085087309821958542167071787508024424083580089450352813770925782699110060960108214489319634947311709507550091978828204690198853416720285377800614931779333900823000051480825763686399974745419016314014130654564913130583973940441568095168196477686343566966368974317475019501122757252881297336657351142503093095815683441895340953394350037296971048592804133520447309184727880453874934924234680294967112507210621544170763669689608668692359920239042035323273994313163128169148316559736311294812716867875037005238781641596125207746876921004820536368124760655334297071108337163046983079379280752335681246728595339851089788145130093928985227876642771247931890008804669244264905265747501203282627054668440608816088434237737295943657364974454413799068325612897857105818870062135254061494837444060017019191548790041734187580519557227164221474409786180626896767833794733275248096286199639892158636306345162325941081491889128787698995501787781820910403366472646740491378578315559670367527250748194528415859585709391955746976448570301595810044348010600968006281535503291942332815317227912670833422648143180503669447286849139134652202138069290164994269728437730741110788117299091861390771754380502642741231953905384765374630823804778300925015894771739347684618944791678135403115301389102429676972725949436755522413698279380454483739516385575827603082324432100713523964970764778234216492649393900722358091450057586044759416653272429308679712144274264522008372641052710273225801760887306941189525847884221593759387171450579338864270469762255430679012117082559692344910712605693176724078267422647152580080297335312687859623431843125111576944988239533720186407422929194670516582238251899800434670744717951545197967841695563452840030754647583621529595865829408545078359621828505989729719125808793535950360913172584754700141083062879859948807523298311303456480241257449075905852328572252816313245712762780639600788119334385306593689011602881093089868242399062006561464672792552742000214574616699094592613523208343331251820296867030380786090753292002226498941377803163496548972435909670668750449073971188061188230284514567839159306980687042540440871214671846356479041368259805418734193800842731732353357517291951279222722502207080033243829464982174125248491954883053565832459550974735099442362880397640306052651295262882527617876409096274105868355645507069130497953707410567362672984175994641726463086400744049735714017863354776143166058303822215641819972096834277503823392434929319642857579617221667142189160083502791850794203427147537860089127228748022331746909302720370244828044873070523914048513106367292748858764400386699243598735240486140803463298127839448107360475778065326674438052338707507606130329345886989208187484866060903345176863558894690038459012994082422934676879478906509290271868731092320547314847765016624440887292717505835238408391930162249808983681855798630962727799612093786167000122186216087961409141515223330863311129912162361554215060353882640973970130116640747483410686908613671560015887287107669090552741556186357815571600949846549571584221382788135089736598330093545054978814183258354062578786827875645804275371010000782521665862612318565293083620199420230083138173212570097962418150768746339435312250416385960403929815224242469067494723690400623465257146310607643591684826496753604246714638736696496823403725346236683775522444644459089674260007218764841760512240106173118118442511796838649218337943932348069379974170743994513693829260365773320267776126277526952625796612801951565249979732647293101225289358116736597253706232684487553141951003679626114256491757627104429862201892433823469513427132635471850442829884886196206421344388493568832208334640642712702398753434948598864011713443488622739160824483297553700865247121244019350476295813887329872711586283810284790830955789591980642193991527462702601468797434308979379357041445310470873758456741656646705634114636038051893938285816215334496885749095576457259907751881177755094671363812141411628451220095562893168243930161298450344972503396500978098909572068341542187704289934032082000375697045697859086746870302130973755795268449163641679682295882873826145445764184426059395500664943203394162751911606154773720253936759877413982425996700882271278177072979114796364643978698322877359776401989521509000654203126435953054919614898053992764838511938348467354665353726437132441969785721602314300448775595287048076172343345950469882737451205837976031589500764481453078571967604899679535375826642004977238685901947146760418769653501282316916733305522843608647623057286561277154919701077939740762821845535864952900084490360821873833598897552181447116624675372255256982415603537391262720931208071333956347268458414628206799008582593391878382335746538938600668949185303998206657565779458616999381645928583344701303877843814149461568009125569301050414805955840809788108596362477815779104827555638458628244833842249271770241913250054338593866410088799300811917089734505387899429178024158351692526145294039609975150788524250448116960747963733869743727015052002673695624713105701575028547842704201576210428138541336238187731982938772737485345690218023190220151627607131910952956714740659716757025454442550291384637646325362673587430886647165529866315741032388119515481896356291244544090516152770723314204662485247596092764118440556774719958213801244825997350473985407587766314836383369525663781490143398398274725819151841250814863007678526407362664785330244306605245058753641445028922219514010205298906851494890334647465085673440741687163822954491728243570885505744930435519655773435496977884718534204961561982696583264081403112507987958127934347593291716312318593386552253134894772148212879861509865502832311566323730581156862238792455326903364255909112401719017564698001419783038216629786975914534719703624696891565530254185254336859065312517054589775586305807003308044273829224537021509430118428286083254936952724758983852790247325290945169591633303392917871531040013393951229081638813638726567010498824431403804825462234984823254241490136005593614739651587182829015624748834061276980316863139646095687694655622379096098448655933898784506834810504399084868880033974474145223489345888721191608301014387996334713486362078202235119071988841203298484339408004794881252308291206186827124976087329791280143916912754405192377455866280420725723659346704274166191894019217619350782629519302778238612604584584921795398708956638634214193575320570169704029473581300317065239010695242387980522083281444672743973728876572313453677066839545630163613125601309115220973301771474901000784321096887700702004465364085921303463812268363608860143120739417428160448681049327261966396582406143339858153864426917742189272518653186905295083551498592165039749244397042810565122583838895865387175956722110844187671333349834460717861531921735580950509474263232711730496117986490379978849562614975371081989609035133910330485536109436758160144262007232043459503742282214081258393708052698455905046154808217508597726123217657762524423988442386965443227436878956830863380310318588196741485280126779587399729619556525384429072466401619341739023063968804245680280932269998583755064874883915717857302317353116705503317250718001256580857399729258385263015201654827787654680744154206327534291650913289880661817934618848553134424625372198151367806372367582482966325766129620944648400769270477500284030710224186379686382586871410046910020637428072099012565171100199962179814206917615093563951921871548678281257204844643540812405184615035912527791644684318050523942265406667410841540401338674882975377983093014170872297461748494649688250585094425747003098754827346493876054697901535904915701086651524065724344676736827537136125027951555893743512055390392652759279713291798444914895140212483000644882711471765110062807775041793070875954043177489996652676733594434035372271120111282602240859606530254778797323288983626617998504824257962669728946406980711212950416452390878184800691413565650862786632694309162154079202406505924523610585032819456236857611807389321061645498116863406332305754921012911015703606658101876699942476493232480511874468644294664763862914160624852549785719706418179012307330103491435264315436365644254073668280063240728675258919149373795265686677483641303071466387252468834943883516956558901594253616212084347852535932396995368371915225357674531503927256090034716833072095454829149615978959721666580870946218706423684445438952382370745630286109041002882492221685927802276715528447063002255713586324090636455013537593792653132503443312607320205297744779839191771945024487638361315061246915782316147786415431156041069018620241489163311684127022181975515837703973525402328952378527966714420772357287400545612310315146275704251544629952233882212661170942809447583765884274139780997754406045372048364264096098091320833793418127765014273928004245106961096466234212602804006254646399917797673957071059322734202966633161295956613589480172889831502699754019221999308922892211779587546466699473823183484985756727757852024447845198584898835446251452712336010174048465276550083408011251417461272661037712765507647061010828403603019370769566987505166421759413399954865134112855676699240825952811436714870945959833149477995417490527527458072784269675653558073848188797462048568927323363511353001707864621765679246299647135116892411873722282322243751775454435491350308357924037927651304245077705292267933017299196619878038608416678070226850441026909557644465541502345957308899545297310058748207426979995402784663123105761701918976051755367225275140572741237022458745580307524258735112010291380313402228327866402206039808259252027382062359616156832569699278555005928668248569774745271776176082366530530530144896815681721908784628058793546044313630875311154172667605582920817504087086436607123274425757485788676787703511463682558087250320012568430660725714357854997476730921993011735955668345322119420992332519741453315745677324381877355451214828017901424520913679415383092157455502599381085283280617631625090772172802474852913348090176005273362726369209229218403447005885870363068281850653672745008736848288612509537496630590514319394880543324365385273729297807671248817854445323615530008693465996333642708682140583630946654491115316983950193897668989144411461039494205405351548177763034423995486761149161893496829969479694793417252593169143733057946697114966417439497928282146378711566583088125194910002831185743050651896698561738307870848664881305582993012365550592147540832771898076742278458768672377430579532486534029154361820043282220771904068484313192120250116871704409720555973647361928868647045719838992395645995592809593783718467625581329494363484639458672025368489571371778400653502658382088660849264390934103696145426250049709740136817873284815217181919762131730857053282782340488560247500758252833048725862305058774379649610726017751862247141919051783915427504330278383988678820351493575017948862905537110234655032124764636555434525532802101366320236673301621987242967688096583563747343375171312941107206275559028473674109999010716874328939126165488379530641946834877305541755441009934628711089121759293563187272414708703409689873056914149365089765276649817785431565436445556765402968463850173182251304599283784466351027344123238917345542736906089843814812712471730017890270698918265249067665447369153383561041946245784250590924846921394480965797615318208398207975018187067656165543738516063022192456035579935236922444072599025435627639844589952512978301138612287252413026595260728197002549388153625424410693342224372871023302675629305793468669296036320767138629439411359093596596371123005770064770834655817824225331347857575746999214315181081400176403309216588612646621879418490125764416724781748569434621500347245357695174030384688873286288722846198868124994724059994617064045304472376245619024363301975668878184324567095871631467492769822369267112292937021055371170446857501313803559584053794942271426634643691442227451000914046375315022486688376343369563214264460424873480001756628458448519809504636670243939461932652571728392076122058631842389522002755853529765715504456986896616724303059329365222080776957971889481874253902371148357364665574612172784970059828740464729747592552301566006022461511643075968943262095564926256517861396131452151939476134448635631945215698077658654720374935095258861367254022597734192106784631783220238476318411452977479011877843466374042924964313622718253306095958927360359903226617839174777004928416912769618732300497500874938821059085237800596833418053279221602125845599816028705599338225940413668984136298227688633416776224137469730896437580184116220828276916327058254502385110069967007834279215506537794780184762091062515418931903633253614833344213218996302498528934536378189338487562102389396922710471445523812172538192323699009955605348487685943942118802965802042913978511339429200797597757597635723891490793354841408504495982768507823131630519923064289355897091178575280661999263589416878437723398883379882149228576618110903312702301555191036364912501135948684456139406625936360575990613143916601054164389651966083233454901089600235347697786532547132555152837668634014852327758713937493771307601772318859508677498933136299037297951493649273984169533377782077727872020710815112267284310038312253729788429113969912866270256450973903549699361268046869612693056206986989898532420486953133685264948557986741026304592931447713056998906428053254410443427114885613790816535434770387790697966347466644400754757359550468194741016485155329035335250065639419966567668571028532623459818254819808878104075064767540668733735294171231328625294922644509657828920931151361122511369667203104125089677553687612878519164723597096008581179225068790730209324399884110677910144895693091694947093541989542501469880220239430164570354724397704407646826408292067236796381073438793798428851636014959916800979431025857822608963172186283182154571628083121058375853310054686600290606025021657638537939575464453466034718474300190815764429957791748710990558967196293929777642732376566376270406774288358684461896598848940255112755316245839705448711146846721623443508588503746917199861616203483316764956793883270421943041193467395374105246173327323573374461827933208651054214470346023032977182791145907542541427524862676298509743216941651316749709998316706258786309745863883520236072341771703293628023922081434862492272069874761408530549178145344804652614994832258237809788967759079856166492117996327949282854856086156963163644197317901776803092050863137473257723204977387255184760707041252643204815068121427886506062656551303900371436174501402528292012534628516736398394357808230172866571274675848253320483047798218049234251273599657149020704565370691289087717612908012335266785639745870928528598279321480154390857300764887996520277269558820286857523074667935167815696732281155678606803907155615064166475576599896452240577221274282683902654206736336900105310121319121167944214304196027800472872632087097684884137568158713418174913455456275854007275182901807134542476155813734605682745752410534768864378373563099324661813036623387311436972515619417979093729095477190767624400775160187582892603800122108490401931755461370502745719213281517711369187382157847492241697614222053454574449765813999655308107800702726190416460441748156127547592868066409506533024842403110345280312460182349013788813526710581331474839305076706481859668768194726672058844074326489147111172555725999594824576969501723896068553107484169858483493269491563301378938182445288722920900337423358564394395382825101702888025980348663369638050322519309066110800039953348784180792687614592937577963116035428934385076102716321049281203109247032706958674504727592430627761164256306256743308125795840430353109083658305862792309768571966471999698374656841526384396438885874572690613751643500065303260893495064634468888942263294495919893009409702980085412110775886336265559894946182659689543115368554577996175930980565564372793741615237819198352749106545287075289710937800007100729148469994642319995375243450896258140273672115611619697097559007232203617631092135450975169228139504539732094983849531125577668680368600972236501585649969528712270481106711855552493752292000624248514450253695884523928213748023504729686249757178021781445425012388052585739955997142198015063386643773577283314806475955585324324308892278390970338581826240894155891522619520070855651015814366657477012178104284242316645138278056993664359857529500825819773972362752535801870291257563596797396623325932873382816446403567864574010050849684852605993094513748737663630197827343030519722020887874736486778801195559078505946939743716341262108494946712080114825900100727939199700359960741178786644552805963628626610850684007347178668574273818675511995822260278899001359287862255796356030945778649605116591410526667812347509429546834389767651382562791722138903675441744488945287081789380253720618587510060045699722842205120293227789084467278125795009148738954349223141866887463305367094279818290998644082390687902199397641526058058293285781548116366776460327514086633848759636418798728997789896847347773571616002880861309297433707439133211340380247963483435617944894740174553273390940229902916089418204971838633617298340932490009713618518613843091842999045433433047111141586667130255692726067594378280467432417935213921106316436230433563876413121538178647301763545914848580261880570146090868953703833847634151782017813786450303283179413931061037319750897045416981976382157111070733242729325038312380385568529294731043436555027140926896644650468038713678207293666172610574332998231494247592764362672114656831598828524171450900183498850598274682237332982193090473284327177681758596341669560349677350206759665973444978940886269336656496036065688600038622386093487808189917812033377581424206961982613640378042105090572648728141017119537868000958678591141388743658245106891630109480200111135533597676199203354799270260822893379569895713059111540333782392576728105980304986539146620077066098864991301437587345284150370442041630059141631067810844629100890586999707227380717008572854360339570323872790463933496738598090541338515388354563010332639719981487309276488177509233125298469248451514227431789817453624759141574852373457661346861076187466744162297397775017327862052307963478292870649982898249604686066432360566309782264109387709079952691514046891826241986296951525757747918622550272881471008296116503986223565572266059588073891823590942543450981424502810277658746266057215949053610143083823992703725257163649385644080204614003912415345881085744670650663024668256697698926870798637664555654899186876473141426350923047982886233937882355021871346780356571931979593884340246754623485607495873887462466538851498442609707597666446108669998037113396809858121001085876448443600969677738530923718167160532189707135514628677652667588336975260714988863869812506552839437660777178106186427025441561093988701844730801240178089509431826480742011734264160686906895863950633926403625622352690304196145856302147872641579292488703739217074337267703923814090424703098778089937083335634801306309098220246227325952269790869169438434306861096592857603504706107586968559678505912713993251119879871725795609547464345812133583278810431142578633629664177961915448401544299298265496427943715835218755934893180977398222660274528808361137553667120199770555191387038728882103721138919008763592877758438715206498069880103485100359430695393526530740276198046643315946468681822538283837824177076406584857351634101790530978301624119000059109873416633940406017568900112378541281214426000802359062656512611966392482268790940323229942028019287153282647734588451952382348417967981494941757005585733496223286766363533189500874113091111625574315878408454505350539967160946467056582602260481003918707479074070024446507977909181304473911301254908079887052594049143256298487872510288602170997300016091585645938749650384396538579831368903461780455908426332303113557066045705898264085133788283782541281843271037323614121510668275404716807626143650390067580194976278558578260865665437947424164094666837282369542213872232920282992306555393165765391689797747716441596639193014154646254105626180574496619434456964237671417489321453373386010734510612270943149898171058232648918165531026503141076577954518086258750782763854430441093267428260762497830616943065338027233530735911994177864731977766455866736892510755737077448937781157934446574056011362925761802431573072164673240192757702923516687317306927047530305344035593750554529619489195952957018982258285655440965171267398990535725963027217767587588166675657710475529519311633135490517522564916872938847825805082737797430314605429158489740983464813806275509648389843054051194197459372622843703560985731882046934535922162227332382903717561989594437696005755416403598005685168123875572973765015497734031000493788476431902321110731984082525489114875966183228926671331518681720662320577975473019633175344215052374845802241568430678002727232036713127959599415834521778345763830298305761539734919801781076508999345365962492532133580204563538218877187532053778607150918325490249746903672408075832590677042441668972723905054647379827444411845993193096031947228435112884158486500542462701915386241078509991067553500322134489537346787744049705126710529298159226430728984104773675141287327338372109737718080853805463152309800984364351308710843011551242917938599798031898053360276095880298204601432343813332350568001741906000091043579227494909125568341873876165219399237330562795314368880709840210666048579040766273405172161699237124504915072526278710403841486706209983840609890154522098529733907558283369842901143979890865754615205458083257085096185514136894230918428647447043995023346443863624490348482402809285145299628819862847411808085351294389811531137755595767110628665187696269902464852687756772086244769851807734531124582432910400896791093333043407231724694139881977001016598076105297340076555523376562060216365751556484361326360204488132365747284644223553364713311895656296761344563441409685509505035835628641916582975902320805854971527511774908028043960421817454894425702149921652769526049044652469375228647932625763995068432803118217149977441222235426579744765143363940944774908633731983845715642504593877319176871881910632675524391434206710690278386780298216543299766996223293268884206341127416666918364034293410032523168081988766219053534975188510297355604417815320500871819799759591376490243120185452671638675321333092125146568202572880601930886778596688792324095551809245861040140924837934804179986283627269471982421235956501063700768329329332449533445532069441188786336991125032739377750110557187424082076189823840502259373866764242660606966513218151976968202785337820499368245859457078804119121629578137657845570812909559744700934639423651601451927672399207169359619466127793403310799631673689063158588182683007539528501939430895289582406211405300741263015144662692092692422917037351599388662697773149076432283510025692939005443075362258711219512677292152649013899751787750375319370940275287385284552195651678158281012504918207688833016095202063038333832690394918596061512300070979828725770331411443887346576894364056647846350453785356405900767625994597236658457280516306748976874744528046506059568209307994082609693701231378282052328064886900778544376787547112129795668096419121069729349725439219542842566679309417861312643862231853436138468716810896186641451099317669871947156660804349325053378659236684220878485942682369104479809013216491780629048558814079243165412703486610768918085414509036536076911192203603542957024695454368831120086622154458419428861566073334324938657874077286878670059028876064259207629359223549726715172213939281721547068259920788000276777626002548678159206217717892157181512532635462941348920551372123447123358761235056247055384722266009024089759078535479382880908160027116019864807412606270824835040104903938094654294293430676611982832471821186624243818894453681177326940473414576991848378850554698631463008565264905714161397837978495514119101972661836370671133499992514511362327688834888217905538839073625493564586037458336902080078235081776469798292240640408436382436887774667067476041005924739176340028242989097045461043615952179162436177197185822892869453298555704948852597971643225581982304275435122820015477647898383472002021428792103462104823953085597720568523180926580531936550792885514952536775861903085851328871986612300787149160399004944459532757642330724621827775329464412411075463318882835664068052190241625402961514477394947144598255323275662556525227118430462435601498959216400272658971030623691663620128009891859718628987485594910778154040006735355625131586612452152546310116965709332714917934173793697540064514780086055450647061234614615560591065272456332573253943963891149691177445985838369568166190662031404008490294908936621396485797309412833169027946751022524382618118000448277436102968829293019978246637253181667933801680261858049491359089512821164963198876263006169013894892050864999295524778471057748365687577989058217048439219604899188820659864710431878487357310245778822319034930207960206193514858036096097028396250182218797923633542520655829168780172607195933622803966138360246191035307104701184873694095720944401201752909966765296587767575293275840770756522283806916512958762960983183676205654108295939375925674299746466405879382321613301790860255037060537765811332222526291236603132006473357071004428451385564630442409945103946368112370061909945285952194366791844523231336381259496301524475081274856012504525059894802129905887014417673140742858618451381434635494690951402947444775891367271650979370311236807432142790543141345008380774606856450354064872172935336908551355132010053905980569616102425800722817557185896006318121915598260947500267939726217515648521891621068265405016268270608488631186607109406761623637013963351738272499298596589605879262845782452316003100316438199523518159171009332459890279985086145125509525728798617561840945918572009463689533891628016298974509036703078049262497811027414551398061637041804900922301584531933532845986937962397613760528144216833737027848974379384042512843511487969060753435100318002049914097416620470798505686577716023971635273885824758683920042812818918695844566397174541961823122080559291831044872325998198198445909718530129335443515325847574859575319310066890806563487939920029189979594213425909632919978127949307079365925025294516496555363016972271469536928993880378741536079685225310538320562779949631982117055593807368553653666541689699118574415350415889044247144332303604369873637037523939528213817565047206879780404862768456012567433047806201453902142878717742647411452930002516254815407775398354377529227342611077220640033537018509710712221386588442057937943421298277105970027496221384193092429918943711830276887063463161400407811113393627558878206529629629381802323876804057800047927509759042111794101262925780159852497280760365975860127970714990191366479937951284072780343900604415712596254665794961941955956744645387300345628285835860190062102458606357997549567993451968510574106700469883744922360347100859128668682712693448234652260756831447833122078055889278565660002002571926849426737735095368783917210851635940676582970101321031876031253974875635794191499795579801932054548339874250765320394194810111425941563872544738681050987873215998057629504272739622503579932312383017060707390092194946289325994990295774653792544294212169747781888937910879996392534687468041583527338753380544965240234563588436376673262755781064158976108826843750152914277145266207539906547292864569030222756117835359954848662366027355117347188986583171355262450744879031629841234146449558348612477844801717184561626931916678108734570596848141281266638720216687898360836766982521736224733435359180228698843194879757351816139561708749753542064425699692405918532468422543486992587172913059616340153679586612923730964099078303125930303527567333033908638997370901862749018619486902834705602189007053646843219578009915110111655257242608124508453450456529608454363830438137707922382909500368760792299740433657401932036614286371718180182236878057517102345187705066776240671464898006021743740205867080031437454964489366689215275985595888078279474210416474499283461579244787224844172356552539075426692815619194499241983821585795337865416751430000313821754725033634186203808733804242005063823229183207904907795181489436480437614840929388928645024157394708202899032179482433041546142963042597976896582106908327179352385894925469725024569475024265759962569320270408960086436807673985255155099711744225017366751221218064205115418113849914959465647353035683044196863430859881630852798615752171267340407253532934483108315151662842268044690904898122319172666105709948485225038812912332568670826975709392202265974402214349215988780289682339624732553230251583869618809894464497801060035088571017118992247123540794492554932346060955606230972203610280410976531244911117243486545320865247997898025508910185754840272249195577873458710200379246276801048753908507849811998510439805617817295258837462925569575573835393263329212838385930279979306180376279564113259702996373856528750346246696303825566241040896729763835539417961712791305623217212350961210497094746684458220940221681837671223115102632494357289660820036684820348518880675789919031505172579925300893339685619255873551774104660966213478680100094430560536071519783034058061137729558714886750790374852857468776374847661644383389642421213393018684103946274785661151390397076819208632260723086402116759391021742436973401771019591748364681431271021066202139458479711828053069686718110590734923016163700162975202090819878031350175758241668046932500260179195593299945815024511946938037915192756689176109946121216677451147729547041776042130853432528260466695930236691800568435790133411286436843897783311729314159294383714886525358021789566606373294373952711303058869829294680309391915137472144494939814625574298488901686975760936277802398985866199309519975828627048335145760286680069816164263682358173847022378105959838211329933063602039450302357757616322917650479333504426849537322928229618534197402183165965213381072646790008752424200153019300623086996694976113731174901417718521368818956371475419239746575603425856843900701880486440284972166133370840978767996678024357950845105164095196663847514479291617537520382141602230888354857294756384858872029282472290222574119063146670280563410818934498575545235563234154927574113267646050417193703924605313138038616767244808613825410033104525463303101745295042037863725119400902423301339444681156719705873683659156461361104644447333284092124510639024616026977873004832652769208238256784372824405661191292251652626817832949940422491920713137713428681879918904171850370209190050209590919965220107839831672843974303839289654664875649247922279134422616542915043635497891882714298093347428101402433830633386652326647685567365904244843729559807116099786628330835640075498909135112534884794763979651242739767687732372305518764297715495390246803034386727532301326628622746628316583677432622295161513917361773999069693290772156994943894251952364077332951534771101667238257827438143459656106855304111735717448560913979231927981672021514073639269566203712577146334213511430580907926618731511267728365558697868907680513656966538793905728832033814934481172819962523108137318211196930056745631112567432701401375383455118305837909553129486649498470074601202802065749599516526240734524168978769643370386511585244420109508028981009965460888773381587220377314728734299669448469859207998020553828758560696830657521541177448782554782999807021592835387800062006784552967195435691972276834247869461827336260545641636300378218118871577565349973291184163100215383535444524206442015735984237024732702410292619065555537931551135802344073515909926686470927281887670143487826318484518438134289696517087800140332524902160390381668505662618879196805318084666574740630073739439903278027216182501463868582589044365254408638795965821971642600407595235416622403529907863655429520720741920291203243806870571286625553748480783518677088208243526928130947314428996884181473112518248300847538830901146095779938187648925453353161050585164390292775136436152717922999350941223341680650564810317030948947153505226792185576039399751901741126683632600794322498595993923041075108627979786289977354190580989798712566181817269664692053739951710631451371218338165724406444125639460470123142695947726438670428680875275733707073199368488809012245160770818737079361752004917262971682322834939209305141755709366809808110937115143744127852353849574762173467021888412299262112679055711353965852772522779801048471582149258584017089473388638910341811396244050307111568996529007501676458386079276388214867767448902631639865338958949395719823474701809734907119396313841527360281645542831810444800315822652117719805423823717934697453230082190581776276369188046052784790637464627401832999519820954067854884580691610461352737297416208859074373334921052491368904878460626981338351740187527966628282467898798430261135658776182909794598326588433484922737075311011274752140783593066223540348798553266509651709045455559647947481862683961761743603921126196923896425497022792030473894943452712396919611960175273701998144303801859499598163681917506640914982618823216679293481830619274644777974454311373779289878876018906202054955385678935821030107830178850588924796225403332698092912083726659267256381237735907458219228716261724792622836672592231292592476624717740572291481584229731553806818708421952419648366881407617187676128205590623980541559903946039601139554090155361284412223705771863366103696276843944962416827141515487408212859627554939007226107347132580105228916577485770531550345251721919788018860151983096668302779174322572086651808375702653124768953379009698191371143496304357893871610768223556891130476112569140563138107349119060077515789408846414292643004398597660064293138887026868417128250959208324267839757028867202631902566614195893974194318905262427611160237341661004955117157691291532213615637945200824897997795308292969030769610718353698990616218088675103462334494404526689992462645219006837433478234409353344339709920177426698519438804231658065903259816104367870482345632906287004725654042616909455061729438195888023296291876794803422358762287397049271355357628019790566631710914604712274150291269327305448274971919657821051154390863153736173710329892763271245092660305097244241876058589681415337694731880772132535113145785516975277470636257187672939083565872971710881800113516675538201077145334592413281456818125256519524262179479245252988819673271910886941942593038750786290491267389741654229351847256145715314589735598301275241931805991216448475081286871481940170750065663534038410640784790902584104456110126400033798180664765359377569447758421880923175928229845074059899108849051841432479900269828698742106817475326526127625963576909090788564081648966733233110578571822248705768593551582708213269201500906327462197992215848591330263374531635445649053164456164406263863501638400871382481736700817198015973431774214819430542599093563104569010685860708263765140179485283282877891397540028228485542120830192179848123430040501715178209762172012728611812096708614627527314177490063620717872240779954235615467007680200372856388633291331560047035826825255051913253247651024011884262951812901744513212815374619799959219653755629931538533338530937345073932234311784558203307069120768192012592813471667811462371839825401221222720932349046413335922387233318735849935060308415069742187890805037797391884715138474694247985485138547597542219550225956648835866766451342573225737222545918833199933557150655561347382937224515164611344395240726576302057201480067475427494031395335781604818948330836920954677653538477389129973903045284355262036188023669913367892137530339389987651237558989957555230510346339306985121136485856674604594717292785104171628565376429054898022195000500848450190116249116267660150375044098437004892001378052660696892749303200438542616929440445275318594419856051234152456411638976493298559881532117106588223187686884156771551628218597575873079530437381517774927901712743016322870211326690861892210211157463083847272183124442842424952745701802807780650941618180166385785436623857177198824241365411974755315295546615891574581994051544753470629294369875658499031101200279224829693295221811671941725201733559608619132902655197622812871336513001728202754715141030737704599213260234387000968193468062682734215246125588542914004932839228610191410933844565823707196880257490272838026455053275226209903361457910524949041544671486569263212541690613560977930400560272335308634981115904070705506626263515760233609350645632209715851258142143291355025899889999139181002869797235312283779383370378014687977136290392303494238054663896378152010379784118346629371263913371431664268356982943062637454407586816967761476444554273988888896292539336334647672156352479355465988446606867894059551095949516297555986911932203015353551547530067471132611345968983864875996694926747554755849168536432402425809886357637926478140169787369121476798660969952828072753463222025582776253560409566189904025856900516942118448830748661619268552744972976856551039486330617034728913991679189972317513877078442688651432410524226618894740431361766909483191098588057539636941067760400267797447024923089584314919384651697038705438993211209610596001844828809136871768085638758452102714856884640805718654384480855562642508452605798186141218653914397015835942803097633778394856980172652957426253481550485256976728199233567309778722812345056235193871843956661483322771654383181616535977770721007899793503427291872483620216379576745719307540003775396947193502609941030823567642380917587345562692617737424245225013167489962698521693097633643688613396204034177243758967251246779876370301613699052966002540964321171209334114531553719660911464447003998587240575274939368654139849715050522225132430964511160494454479507489670432525320409875286130753297124995031379998588564440192581602619326835680018667800320422724911066762492732695203926923799391355166613355418952637288890640205842183330181955255095121640105139240630257784994519391094882531059603435090045201823870541067993520736444501543242682853213865237092364423655678965715025100852642316508189040043486781464873577436123126588946107527603760539100733336374908968092755723868903687656458703350938215882980050879655207660077933767661207825329880027789117210581259158776242029878065001639743708962845269584784032574317012383645473530050258769046394525986896928353172796691789201985111488946613310250780572846285842778457816813017499902157219226716500521880048786092794806425745058076698664730982109865844834054314323915296643817992060641131821325188768794965061387108912590825545044774039839354527230025810268524831400434813295352760805421773127016850413511313583477737279080983081928274512355911073102348762903964603998559980758091443993344301137983642587298976472456456559485280149715994513429033775030994443252350606799062513408336972228182485094038292264353056924324714718391517852119236889393575148331578737416377629346744318040020851392095112058586033862853069781099319854276314969794141927248715757883048104470711390914862936822607846651325062492219225328493775425559186978076055715930659230498361916158897008946546586140088621567689725048805096166742099522858243189718813900723767373606825563578109314677303964666107223072100830815105171769228088761045703671453846334171439345757855954502201571286835540258930969639176355726579018816194844639492055934052796804594484782454453904191440996226895085984756331503432077421872752227397371959227102452928621143298204396300682374161761849934350248918233902524400622434844290045411842523683327954746129006287192842466075137035433169012629254502468155217920324897372187387545615149117114516260211661306389070536368473586387821194928075869921334891830854928991195416880146722862098727564344359475912164625402141311995920040470036429074400685241940609255521329610448298534942205770477952042188048101015547609573224649191145410447396502594274080797429159033826097792161989910029746920391412714685925805545636685711271628675115898787084610806399636681000749796137213451665858613620782587798936880972301655595721153495937964596914183318653433525577974053208923478312823121946536578596658790314432975345305487774559495191859863506023717391883984438825629626255861921304665405583462979017793338027244554826359448876894078970358105223939004722378204740783444012379990016462258202218622975614885363978541712990830827781456941231619676828453819724270025883838265695338796342382963753722145760175083913994261935539385235578384063486011084827100185899797879354811199476308756206820453980876091306737573366764366346779958164003310049907615986868694305579427930166827046973498736665549862006732921243995592416782220194310133173557267233979108928944014762478166199364620672232576672542486254292466838448216533702040887450808574599133927518326771173060211153982785011671510900073787467469668187264062759918830575114751906517648160978126037131924274528797664167873200188157362830444661202308519401675623991643120349777028850290866763960721611772910731171765676904355471472890485317824172694672355460546663606781074023117719087521960942813394464401481705822463802575904391791088730425125748368473338331407895542083400223205291971284331924199394730267481377899217797436208392266077655349427092496668940030005962009402772926373183019531137283875378208305528938364650007893272706001213728568146269280953559248487509702337250269854217588695159093336583887481062189539663200215020089603706116824722829006458152040574812785767919216386001425467079207217212018994008899862746359008134962906823286563207934064550075996357566324192642656443881807759972919676182350135072143765887839511445669561727160295578619084334621080626226770338190758536453894893687488579766230062395133222370997343735414981913004045163857226535205834460811430385411238747747234072157422754227016105666967332223755042745004660269278696297365329766813437940458603722016774250298444726941914258225494081345910687390567303782865496056119583522359049452972988084425179188952227053625479250972044593364030900005614400384796253837292007036200998572729177500322592183816220032292009921667842377759997854116291487285388770714686988547926139711657852300261622560148765639918680045929134060247689712357599799462302053010867632067286055440528601166137143451171221599232652087463092698174737162001754781130587028469880972708111503777957181068676687515359038790919980903245249389790574059517264086081474836438769492760580422051252117669801127263797497178560052211817071900951503529764843955036562023711388867294185648377552541977681647946800024232865042903495306272969427032363457769151248330820120308921804872759251240212065044832764517703944920988051530224592860528829674393256535841968059127814899600933384342515103623557998251049845980898800621704176836416086664120334937499113548841797476633805673713048918334497301119935189190320857000361448444805126533926190117438051988276504211586325341038760622206842612683802645149770290267931052694278575128207795835293891755916663421891322790720821020045237703305230423090278432387948428596253747336287924304044854579632582113745641828721538040762391996485713115399655967099341799212971029739365092665868388316370858542785962656456572890650651952476440221526862365299341978766625826940848954250318181466834018511060801891110146739325573456787582372694704297467883718247094587312529107209908259297929761887431143870075348562975460812923339666155828345556559640262801974352459341071635142311065114243188031031839774080826477619836304256142085952152425883954264511681888341093586687611994589407985326312037877790676314334141464579676220969766774415626669079032027824189368013291113417884079012929745092177966398514347814875863909514698918218625913442747337465664282522061540612408217080856520732821659321302838546198826503751823709520096992047025135202325561217888324689908538557100398654080697870478112963067099087884215911441691039480637592873286454119451159103285048929206725246131011748201584184988501677220745599874468599679519735754093073923484169250589836359261526180195875318650556941356885897043152397253044761586574250554595485292528830789835415696026449863373622005294043076215619101502575564134818157075458092914117287271915069384418020365469756340331117242613672391214338968547629207981270234691125413568370306145167216796002088134104678417342853273706200205801651569271138363899652781299481807902816712554007724989152301128773113352894842440061863632968797306425792147967364943850539167062351654269221227754126086019413591274822666332563684574420372575340810343637326104240675580028892137277558007864858814828795526807105006224574338759899477030163691323672893787970336108296411781144136286019429819205676358834915766891585357074020104427400419079627159584627515754227670976150622358062526266514761677748267647283396444491775243882730282659353981032371902187456364757920250959836000734534667626476560103085829516097624263957386631609560212538586360280629201385615585300882250237391512165028423200667909613027567917928525678885441670940444700405730245264479773546057426967722123777479047227143302029825039140510847359087228471581572758761010568538607739769901454364420647407174662168310927758052486110304986257158245663084554858807258690668634796841669569802134126559067471392942001460857677843754013857782051846101756327520570224899015481567456202955055813681766897677330601177982914988329531439488506205990900814799475534838388778374366258520203042755828558608319868813959296230709375084074267639313116999156026567651040059061532301703154903995588024255151282619044770853959589557060921845835608411263300942295876111260536349555265285318332649850573727913493225122608737104492863952325517922560263102466567390871492419549009702663002942364995319782107077217578924376535965279329540655941066258161362588275315697689821716641498190410252201018925144759136441663201573095808165492211495913535745575103649819070972236797320935997096710053379989581628598444295791918516588791176714148478601445267402804919985168156213589769845358330374069580062380630504644839802228864415821475683026333549671951024698308024586177951962900963622843687448235038524956150645682996478504585995171901178465237727269951624763707731356765197038349133215832356706171279521911175116764159345598833998819966251743769265295336658135169524877368846034982691601318673507781625921412837480228656742643598540377623463346801999395869070995366034006346609277790039970602303581078070186925222723232142835570313948297353995885783126019641282452356501375403547187593999571001254566116884266580529576558955352807480953596901450405272516006860361022454930300309198519171739556472419912344503854745180649469866005297275878325219865098003693840846157227132861535100342678706217330484440176506575821572387070488253415645972398573737633078938818371021925731519176930466169213486356143226066871711306170398382952126898693142360987941805987314733687067993865424743926266336441034500239701295285628591207323464052589733200768133118664236423029099731993965548051476914946642107919011859444008638652573960221623982356592847263226235057359060918802937087085791382240497044588585156441795942251509079043139892098280300067545816595707410066930313305978471429108639331149744720505715935188983986531554970375121687139629877680787437243617414680860476204195039826658361751467823790675575360777920176953335642555153824425188715522083898789145388776305627029317092353789974882478131412776068600800406094747951549419715495095499886180981317919241859490792034109339084413278236490928160607779048809503603875679405720746268634090500088455744855360405669958987987078028962874563170967437315032237537860290307692658914666439046267328602853851206433461805228094636854501185662438152790989966999503387224347454079878235546429761518368427473581586399885674893981458242671219310261742157727071878028135799990926533550658117171911507390649131738096784646014916441361381745014868681734908820494872006301902263824717562563040877749544639715955414422385818046466573585889321450720318241029903994353533025634568803352235071810544565078276295064034365142595524932871123786104161766518881361143014019045490907874729700457444969447276513973285522873840488790704238375005799719043158846522885418606537157624215842604034235919140508199242215583654539448649212775823958059339684175365378717143267191968015177213665330833899342124968279770373264627072027523082092939360931628182657948672757291728322038260679762473689688465984743312649319588893175632235615051701138642555174726173793391261583805385636104652345565378528804152218718328444162743142771811775962087383637710983635776071661762892483138246050672637572890152718110651604027521942464716327953154974965537604501842043862102027119245043103351644761455044077266068954243425714491754544261997356454617070047551507529201202944583638913724776637411239377745254949954686608363918547162066439064924723340217684387512547908805704720126428486487993814810020779498809634531856688693484247202149394013941764335127318698982286152177571374895407760603900864041055709052706352411461362065772690305503057432403257582089360653023236085659294889990935566822833846503435244518519691077084151812219333655672227267613283922873194314361572748373234987192558975313847422565042128226063843631459542366751645783801406713417804594090202441183347002544958694361396081876780003333088502505643605501334483482941522243523425003654771134632834974738307677496795521934424334761042536707292364667570467999831249231385467444504835384172871657751251277336051013115388274203538917184353673062294646519329339330052182585563759827086100448870236229149870400131880484730145204966459309512962392045068902877903228070899773155745161310641250022669910862046178418642154620454129534708326811032430571545288816341599834493956792768836885165004729214676290816551911665790762296079302181666271622718000302180482553562747240098192227362008218582115968517195031852343144026753727344901685097181753001335790451196102889456834081095660895184050314471657005947083852286058345786114678133549149110772968255572114145454585322326816535064775712234058410770695812800481797793656342417309173203314315973807453612882504921181664158285248380322796868082252371189795107392341560037410224748901867325690945039075031362239922132958698015403527149128060328882659410872325395169753269862902188245866515158712470175081955206184709539522772204757826608045864498554256075380787163549889541219158863998974712296623749362836842808094218883901040096700612059042242717718703676510576560705079753394417144874446758982682933848323880540814797525643077604591225869327781622939871202489842565281225572737794113267178138833114165951541210737187649922286332270905868914336395002557098602562487341039945114764389752471709888527009373174684098920001723556238181282660520374048916716493173387020320027991599158004943919398652916374438628773519276146135310885924502822408741182829086298887760064067102808538188408094897460266914035863570842355761696249465462795268579992814488644700959066921901145962636154880840261316820210301719122035316685046846281129759152507736542958171150884219045074951763280631856406335644224112694174885752977960401721150557146076262396373427695618351472465616789089679957479678306805985903031840205638641335413874741563913123917990031391035545996912791925540353632922523180564111746481187155057471089243957461434655341194060068846433909110054884093387021905419524471249970443882396494961822883507233285809072793031414200495213175607770991547988582544293269377248274534978944939125459421658472414226891852536715778221253316714792624568415163341974088478462404667893672055549881679123073274506526101783295392668430404236292485424278136566908126594901552054697478159982936128948651049624214680575025113360153733631946478929994946320340172163762422289837683551773000019683012232539259938839368823109378867059754721767693543692599622429269158267174435808693438148729635200512683293460190312804474612277901062029951128254628235373057700881481361806044566649583083458813147573963810646344190953042991358251999824500087811751963244085806884270550237676123198351616060651424177382432280652156799639509502411216028966081857966681900521145773484404021264083298259265744615146357731322848772835202696365916352444804731986606183622952358839052087830695119726616032575553346458765410072294563519416655396287319057599624154796737270925652540354785655156237238015152542115338269832783412332761049936216627019481713667591180596437389818563972535048031653016129636081536420250005083134444380158366308651873085106454185920409604061023682637241627987029464647070262559592364685558062452713927211740366772053991981039169600262394956733858204302636850345976019481202145471930213475777004836085219906808177656314754024035526339499248406080356332525848862212472884495022988561262136864545719193436092658702964556508489141668530185688114426569127332903724221632452630551569562491330275911668568724683457161751832797902326582253273454082446296983719614568795007210173279639710448678123525645200183167366135112188177146819675300490965743126525015538781463041444529508436310004174997994174737695074037325436305879963043333196488408624733921730035757484207645272704168821007572052797635749042815756134293705659960031712745834096592524374934471901886642909880277397899373133170080829982772740012129080187022661785629156127799905100050396587819231551299041524160330908227383112222221840813924377514756449597862036595860737038307243077844017096601549420976590748635242978109708076584831250334467716215885469692941928865703033521688149748523279799094695455047963864259869566599892147867082793323045811660762271045248198515710275261738834855307186184698344252285274851273939962218810368900414316553483369709958958560816346774277730769888665548159070297912426715836401253484246338386837086034186991508371980664138989745677562546449873118352324899209110712672700979081814786848839424903600041812901322491805680312307935020321782600995830635870529203685037902054050378079987062798814707352886835893244171274245456156190230254338414385873629375322173536247973316860811224751582417503266601920866113038949890657499351194933470438962666569053395794527109215466337776115660842448433051273113136733931299380748715316623948052386550350750958269516999321574644922591123830878307970113252976757879877503809284377876140850913635567951107736003842754466650214073021567435963524155960637152222252635698517408185401809235157116262519286029558887572081287831417546717329357927675204556787641486597703299676390809627087723525356560121988044192239800721255653603454353926651367303249299175083983640580728879962579297377491201644685446220057280540054184595675533973740154998391810423754134239181560057939207224043735462709889389111711642228531274798101874799477854961522821609713773297878697904249334413445017211592621923665656852045171200106643778538431462751219926559361819922727101093161298974716011520692125911262553877638505121898933766750745247835836465060078370036199555027360249253696615927863614077422411540230558349109295463824149532708427899809790859596570388595919902418277163193232447558713149009547353055756949188441718361887303093507185054301886462312050087347394634588612437043685343180465416501810866286710243175160981975863375835764674579509883063218303559878899628581818707323089189423339466012923504273918375701551745740897662610659284465917504139305831023547446903973884932717322216441456539840147475344272451979030223351990611520160449141265746406596466304918831502475703306688711737177010366949329393162018791177344075649293944980007508647572580467570750021222838056702487906759729073638478665946769337770543702753822791977355497499500345114036475784443524892660952715249310153102447791509011697236358623973320716612817330503838667724712500926323655695622452538973646860599777908879381815487682374601189093935349939452329670432532669926967303519703854516233289891444687678612002545828197457249431534597050935859416423606758596769952488840451377770405577916192719879613693315837862646271292960113587358799397911889404156111541936734621306944950625242694769245409834352064636185834273259824874521368071291769798447871397489355054203652671202060390984928576815764396292451810291299600992603052634579094617849190586470570194913743740940327200132367126103778411847158210799233749612577292744717675156108370266355158029081759605989556583973542400738258655982445543803884274952453392256689721820751003234545744888101785791753474324858378892498267620101732057293010495713856624468322193418860185613570804023055463622530622029404541754822704407749736136977952395961934669532767401761882843000502655117327098054636383149752313280478201878986172054464585037884643203470020860392091075642392006904004402799353632188401300681698284250577751982820664037659789996216520043960226874883417904905045525796817135189241583731461041530783038851054203166304791723252362325051859577009594824976159907819307861470919292684630323655056176348003459066985645610872546480462030819588631026913563744571089458252037519651397341298633424403662156314222989888492160418427323924161582335782058464299857830736127742881210436631641741655870286110897574039521597821900486798693380696845999779132836133036250719137527163069895380299344057012239917517406633863004132957971691945832632367108165455668563256859780555287755887299286748109200485835941357962434344141322061226986925304894497799974486866159191590188356216684450928608183417338514494293039336577616895551351301175423183686704732476496618016701770418887216286233245180114998831046944755303750616838401278266639035066854228964803066789418789559017731637324735233577483896106040230766612795427001253474110737234940555619458419075564101188788249607728270061939868978157889056596173081813910175350937016592097507324581690452018116716969084096617470501151649931538735477549242673427086826094493691145748641125512659486812812830399510031019586954983291584704823003122213432892355949802006926744634550656737248583088732728175704165713295390935315479932922736503915858269223665737299222836795620484986211680745129514658850754066324700290239636379114160107321500395609462221425720987758516633730973148290335776907787279348827845033515612819731678854324134971772709714817081246783789627326475968421498430044396298384013852726547171752127731227216100905662560981145431334004202408939832348115310601155009319437819763934587528597337909669047599982441544360836651022815201930510528848298732666509014765883900522218227173361783241430626837175868961169116992374057136211508388645333364245635971944795248333035964095499737107998417312399595062365814328391059771943625280078516214458644780166313066300539193997235735391006770906059466063064994833708159201868196231425855350736827362993204992948509092385805851134646732004338023162197170902874939451482736392635706414884731417778682713874288902049379039052877539145109295322017667394512473010103143528080097579748079352867633006008482236012194294199961303518092968546869673985572442044965219611753104435128719717598189248945604237763580347290379707536194481201433955894400902961909821697897247437426034820465403993204327309323736390754353867442369631142924085779380623748067566608061682563942869728629137772578434538258909745430421449383383405146286886135478616940754715157649587431964776154063102163112232986442978812495993203370897720942870987924854128297476990171829110537512922988047687471909286603701825307436001056040809827374685971698985279003349152209907750817483119359019012853464638892391093600787663685165018652344094299192265644776211034115805268411995856211173971737720522336470769953486298845783880037581331879363313997158967073236662326149617408122030274074490809371647411863551550326864202402549058023945515712765085606980190126134179787183737631322680689388737599626552005023484410004751392112415394270070528105243615994869192481923972141905882343893693157235341893204697863656475664057253247365417185366180972270466173363724283610876451472346622294659552685347653401401023334118779728996579301710415074652994659752447695525169636203691700336664486137984739658145171120905858306971484497974718974426013791709137191861471372900744350484017898465889125957749822610286310898746746083912966450959705231027013145433221467517481975401264212883196134333099592474509769493617356342694058980499990421574899344780688331264761112453547317041101347374202745830298404792253533791497174069682782647738374855873507688265007014225607212664276653903743865389499349715227169825559322924435644373677348432196667666993931973063593602596636731747201780661439366256197363413711787915045355205837419538045449698289062237887386139588022979314926910766077202759392617373524688149305802244164286930669203778800684248610447804415808817160740071302918353163363127814381459683252790121066009675228965176365199472158298752095729144448124062369932856574558763438130039685109586898004936581183152368424072330243441676382474385722309807054458360121679445877521063502216308180784967547233008724377464256779137960149182558762867939269274096467374001960522901831661430992445897931336319232458002100252290368055391271914926474513392598773109691953681386651861449635987485187704559105803666939044429742518205651017738282233101412435944302150416174714787722785598617188676603998617500818098056461222111548055515340275449048647031079842375508183245924533345434465646724554333827042881809837049525343318326651530165465935258852083096069679559546345093430259980133450905894029945199791600887465298905701169127456391644966327648243743647187516383357208553293724955812498089998948413166255853598688504601971143918652585172597172217225139371026822662044670981218608901739723354696453861213729936508352652107411463303882202479398617647218093507758988479245252992185366181317972124696763576229061197042054901737693919588065113808935028548750178048349683356563610307194897070781967981435317670217650196407331058589113275957670619973645728639533868809471940373142591798527332271142741328720307993702128468583641388777658152531120994746553174980759801041946154111580226123151714171808486775574095415250183032249988172142692647443804733485502867886868951042795492557804568567143103165349898116243031036585329065467151441676312749887511862252896658638469502859756661542708525640829955817737246604340887710413900146254945210981056152306715900507576280329700234992817088003258854784943609520615433632940320656965809498335276428811501192461657433046009235270616555815108062374003757530171648045127178646710817274269621665980994083303274402630241219160303570534821905257728231405919397221526382569737510546024179996337670775215998521996235221811017881472167662157971723645557304718340616106706073053976663667354806366190955675940417945701812519523082284531144864715396391916686825116163680688387303934647601829623763826967828669668700660202140130498538672558763569997851170736184006432693239806550660745338947802941008967494139006893991142966009443595298257450295606201800409698396700402037664490752189812659363695552352032484048454203972884882676572344908242735407302181219459574379838286887955113177751692556472620321918444476322927723735299500960429440379686866431981289711247162282745450040980317827989729902848271465822066631308401671228286892966401204856517957780713974915724041197313483050721061995147036286983934058283858444977975322504604281843395456803467832301701252372778897587720440258270776011046058918689759761839806187656087666166810059901098314564424537977680494596047145632143668955814260898900979124820031355922229542980785133467631391329923200377650095456147188128479222392209241856640374717241918967851990633527272140559254035138054595696061762756886248519008957088557480996335600028689077643306519890316921727465179976040266521735309626279880591369391689201382498447731269692218542736724635131658013956068525038850075408754250135147428655325187687251034682267056087895735600701346675090608419139798928259665499101964470208987537300549844381275816079388172024810692968829159945547669639416115771642509493072402828421323259815786595146014511059503132184496994390652758194363456494275673573345935963383840406895829093708057799633644350795013907720741408404412520280224838255724051114577006364324762498528953073480282311356213104658195468860878828677596506202101539141015273359674005914710549872321657203103879103084427666757682791181237175695003653347349625470426179713690472826147631658788619110324481771806562515209100796346718708987571298739406396007786099710329098650480723598658091400050394305055433150425819769140032120966504414600489737988908189037406741755973365808577545308337965663736355653459748749130955737035610829544919619404749836737944881649875476607847584473795428963826866516951553000273488843132207090611154206595843546746245738278552749908753178459854636107907858090032215682781568542767614047332579059220431053773691977505335149578607327919942032449577778475053202562635860020458330373978860294468537059914894221698641066577137575943476372995224618595017437357678309604797178261044893843539299878338646218228744720263899986074206005691040840910698600678965516267320295760594328261359234886538545911798430159396843126633745529386943927980892342047762558262371949221823279357001935690727561356812587811451191251421857020994925093226012376946221273419834519572294534632347956799856243596388130320595547130742713692951833093327633337306483515444129777609390646942583550159031202285629832012802034884549725106890875645225098532595804376066611992120569132328007150606479730310226639874676280501280881919141596986369690537933234598196511201012041415082050932892516596328598485510950885836990730671430619436530230338977034873002589093083693382646137919070576144158997497251617737495211096510146709238304312374995461672545687954588436061259698095199881434735118970006345885832325524268570963085411686322146470567323475658728412271075832510948696911625825438065038101139138088690639122812179424567526589976625719773367192605418291792203995367070632472321662238702042791607239443558084574454955513308613895535744691056042916670610879075154964434180775823139822672615694157661491885343237173453870189705354640242955338514639917678975817588269405678583265995514054430951897978324354336877371259032066794238381752469399398699957948401500167660027368803049868124633330633414777216205050461579496147511849034356839540365709145551574373598337244676246568769242813686025726440753766077099316631642018102598641373100356533712658029547187968166891340507878639922448180661949834664977901133924409618526470383159431118630089255021942305097927396336155642758386213758305816133695819412631359587649812174870965781377024150968133423599703317935330655294326177482290195631805027360378708722957457042070923030315772303400413895725165915066155582066982898404523532974876445425643295326209958559541720006784027088731918656519203412136893213008815402382890391531764482326040001988318575515479933898418543545544246176236516006252136464677581636081513662239463485384176705888104986269240003898752250884619951395386171569131631322527433580024711718187067638824227509962866253010298506708828026574931647447116688358659463421625024858219427068998223144407879554370307879275714412937319781740627931157931539705531461517834151281362411826990413251335278146504365110008269888992799299960307330919920150940300133832946508745674919370244334009375277474001810192173545879435331660481107471268196716037328281353195710508917880009866715324408271762022418978030804753592661167121829050274837119069004039787304235109169411283181110339206869475328915321427601372993187129006311092194925477219965007155880807816016165473235934324727074559316958369552873908492709292743995146647392470027706091622099692138147245042674678171691374693135619277129652636024272712186894975699881150306411245411575475555718806925712619702605670143357876677820259920927770356454010461085133393328660712171723038418652346823036366690503848026526580192496748769276635329804257084002317574405604140162716673339409243464956419686289404248197352157176734805376817086705197833781944380346777375265069675177544018035673274566660809160435646365316002793281019496825444675409217046486616061349661680071513198725813927861124212697893045526482212570769351038872715345361110329504908435312410889523641304898011826476807282677444626472702958209596027934526202254364179159778524247957803339342540172652400847749516778257717752762997195127943431125113232437338015528854100026812814502464835688244158964679653881615957942092074567533635973138655139501950986599391351494199020101351057451240240340182818159655742319327188384645191626781865543954550023088744101463968120680269999800528375389006270970246836604249613814859160856518634278747655538215032110435497983819731416296063273571689095889660435288691109297222550621954349743789994029530587432672202337796153093928575122338517444101963971720984259708049441982811109464976212837763902229307419299196319391596998639536760314042708890265704383986408072138039988145500039849516850477418048207520083400807960956794393324226239760606303343366892763910373014306803986771027370059635506499132810282727285698876652325548179018346866545327185717985497754361776526297952135376516108255896378313474205312297195006834956514393028935019963575243656678475497921550197613534901609311440902467229743538658897958622201540958112573561025557744917360456428680700066401905915599935721104412161902648807354225916775994271481456329353640693434979493881699631089637982349927756824358342841481430696148349158812941132711585198513556389105760681990963667303982677347872671336209838182262085492278053454193335800300167458744535720376026033505543340084432665975275105276759402625790953317628217802659122716071410772538420522075161758329031516910074827307496981915418850659333129867391301202786019780726750848521216083377057136923004189819900176273410540423625865421724249689942290085756815179040438956219729319025341742037751681396887670373913676285589192127388527531136589445597375273939769940965769776595700589007069895594560118550950871202738369055122042981038768912936964413940279237973383848177614937308734278472970697688778291590475177550838983437587661607268143775004690562615253552053182941234821110452278644172321992534091057587378058862895309338724136788791326919847261435747418229908969819028371248826799176708019247866274123650244675115599684356355837831800587874189556387931345650830415134606828098781038783449474970913730695722525375310082348088421574406762039001276862945811903058526683700411526104172483278044583790515543757722078890990732099878456468600145155189896359922333848286856106109040835005764111933834387960057749233825047310929849137740903751065355812454879419830077384518694048267693380772728064991118057299203853153388679156408036175956210049484741172614427631771498852293943437431648274729008252868704086445037384715129767272405965466443764670691827629099252106115056157469737574513567550811864604243945129138728223819120240947067829017062865951012114270284492824979157357488141641103544507377215103289054297466011041019101847317256918776542184906999196918871489867673233079163125304172549231204956214453856957807331963607467110981612977006103508966235244696514477075387371404324739984982650472239898190690406741353095157986336788934026473763209262107208901900912796638592374403709217679707721392919188627791522397753988006182770310857075586012401048912283685398368050179288193854018264321222293338825551090297635620934249579439350812008053775340112415341352107800009786558414439111523440903167106468618003782719759703395559426581692924638206141426666023239366479377473693144707212312116427232692542664526719051958035202376860309734762943857963156828085418461739624522424970550545889718897213066685596224259516986512128663401492072298160853946758350721721518833138029318730793688844428178307785755700907137390936874093874441158258508583011007553673099651181256153464311904741324466577744347119182867493074617656096251936974907525749720058336082304858866571576693374231372972990607561586086293819124647833185191659519374110837965883730103443513581296111632937194491329014890855471086840114781554494515031983028707807474260834709804889287124172001328578304963673254678468899833033222588833684256957943623882462436491808500442666175699129515809930167613607395037663938197451122400876778315531327262741453400036695970381706779271443650781476257704267257816098389042088127007965871045110285961049205984615335817672370809350558092734991433878077471660139209634573784031295778560554405819467410143957802348275862942593760902857953620231734913168653117242331087732524056100206181744794200958781219885882312644124318032585796089101713943989073042374148883053048019714699302422033563516712861672146219153952431494665941434900247243993556579947679406877060122372402038301175255639275025118291039032782946872475500429325921202412048126645817884594306174368522483857789190992660679837745554305055342972029688019464894887744981611058830878276104437480639823158058936639752754993796742089906953074012624295489240927577094412037807622389057558843825860549144156074356550271393455960501304035193064647092205785411172523797665674471774585930398942046346405252089478126811036417912832656668997776817605678965641154362231292602321307501270518098553496376412441814870475250469745884955518788484253944778596470148131872684807577208098409631782411819438435808369773194810579864743589885507581011851145100695306839517298077657452985367074663531692271631632169882139340019888945871834069166786548551609303243960346760923163973162224829491912592107411070067396142175977790434511716061742671492390363534777877059256708987883554017460489625818088505053432992787094038170861371345782022887028500846558071643395899568015316650715663494230093099312176752369143331115339953087470110916022167023379632930829660310543969808347434980219382620900803487754724176473265488148909647718824466373153624430070606336402034746191685441263142788416523542917982609574973674053298950918354480259398594852892860225441075495175641765224176153190778197420211494010143077869957343986675749432989354893610691879354880403252025701936089181181266068877364018871839827223689864312935102062734966402851112534217635560177582267181942115694483152958504783531009700756496711696886384762452008137301509966485575786347813729382003922603620872379554389797106371669935751475100198795495773752562748756570312043413497569175428417483521035541257852646296167728961057647759729031168586249602667624491251531614656303399894960353304352990680228074644436971980253002482881851377281907497981703765166974848158532477398463499935696763310303883472460608938174976391474691709487681233757849362674761561273401622593120099249200876232525425486335904189990328914844187140340758909537275085813070041095593713808471498357356303859234323023381001739158474839131134621055005259183671666264683780233968289413287337922225894262995801375401561235530639834483528393478371226139058940009999398234610882203814092331667105025512795017952886482002988214201711660528091266400695568239882523607060394633873721593447248451896707804438324508663849131176117627821790587294394515660259542624548167224815571898258136290524814508316038615144922157163457783698009969173423980306975102840378012438750691917662822118065109712546356043095526321999110781873719877539047007283845383757623055442364309243041255868837553795408712337513935831637760013135211494167577877482818574022227441878670438526344199690574747051752335087535441875395195986740085093479565351285217478329844811334270130166866695319458733106360746472020203884544018748082319789521705323223491853991671869866478177326774304954651751738123027993738804581629812054284490449592143572557641057447614173695929436506652817540510340305699933136784645640309043514777519766712054718465681034399127129905413265140551536451457681268644836873171077427867876914756774018324764309857378159555579581039119748624671937033186528030307721709180412093340863644317427830173272616162052003737133233487775701896350308184036820978672057580697605780601128689985921802155142693458732569295810166896818271034554256092663404467003430878454435110932022487159307370964384014131685801294931003046368921901130728458512521044245517222906417128641241968878023403319907016508832341605255085130750209344546032315035686487739423741797292512443993784123124356643983046418547032647973465549745193953659253630847810730693364034168221578773673716352943921477254701762613589718005217404639689678047594112529114040563253762094326514006429092626915241227279821794431528618097641897761046785130779280418450657533703387873947895500470303283570448528509283420809671855715316988923316514504437747184708098458248178482078799245344016580614861446964461067965951935824355986282530925892391616955985273753436763497944338032610961910928874131349194808271876555874555408804328056951809931843399100766554027310872334921959576763407670948477111445299460243780384939159016857447656393840235387676221017686485234807610212859276675985762191131507864664879811675130369953848728859315184287944011263413193272007821414274930196573101494557089909997756329712054240935838065652151794829319670536114074656199842573292716710105941876343490249630739828845091173711399473110501348218184249679379581958859574827516355423390440837172569641675096840890711203106560997202115756349699715770279978301716684430278455644638445777397983605368280619021436953586297113884271452016874786797123927268257247182946623226822664855441562683188893573801259591704393920729569321253328246310984063612069831701425310922901442818012416999935446044287928856075388144296811143381853583490102852456224947807734426104931372890573421943880213351950360605660196704182482593847291824456571536853735626556897517495043233270422249911112333603147672191204177667402810568319543987717511563854870045644444840715368018135142685292482342991159831046233696733558900680579855655799854698608835934285940650985042869209866402846076513047298839292509027377158330930291835865093911653864399364442606254578329110389077899412808114583452210395657482007181955274538237934033460176821032014706462334310331138871122224176450085886399355853469008930285628269335114521312061101442901562359497082341049845182323439413640256187639155289957448026909123094089695340751495886976972402052547805915094077210218021783056651353601679721114514589428417445988710908810297768041223582165065737867272938652893405096869791138485027656775706216995040810015682334002925295706864053699154340850764145293281463628913877887401448342392208551478629299275124920673062417388803834664120003829874699373130159932998175813599110324480752671631712932283393648850063306406525500241021460259079224691720336420019262663094781298989606915976344958431784530166437978573661343143014653212633796025987947011445673951260192876882214662019968532590994885196379253132104015531281765400896953192488455171341768515193709876045431183376448333596916310432254392816618338392548357006073414938369842855942999269656097669977842937529370452840659240775756290715359436129024715156966218946451423447409684517813009329225378921408853564654743742205961848403422495762653866447049985005626529349051373721117293991197491657205775943850553605518771930039084903692660825649242664951008441950500619575088584535081423780509507250120109079071598994024344686220958000685066086721713621911533825200106631317767892970004623940825400934573454361812773755998231574777038040248088682821975942197035262267739929559968967735806668030590222527397459459155193123568339771014451528092151590813539833660360581196489956942873579385363380419434265745756894945252573492458750245224670293299839477859309176728165878703203583772406076314557864740071975251403440970630383298981699224196990008968441282138027800767447444114626850350924273903671930912179602625385948912572368178879244915474491755876438595578039520258812314303671326558180506687546735431014482553226005537059188995462632545790583855496378121799824896412156692999153134165868236365749647941597955643476288782574331928108302276298960350235652003576917902298838875931193214321350361259159469453354511041881194971926050787492496616457247692559138797291211332704222476694116947193701005896068346313026894168164765987064244258490539084342645874573983029034989872648507474757176391869146447197167430410357995899494710434155215674402503070508313334801802172664331122056546985929238847536216352735301867634789363526163916412217868598052880611951480219629575341514015833334299339605717316573332513815191127847443460937270884616837803093925180000488106599581406603730750679742851676805343558274799569692232582529299914426729474963346673664134181061898471985298008733148589572431270800611426300291219238698618700808307678457118370631364327956212277241045806744577932362430870996102459340462616050218098327693150038132257651981299883680256053579540704026486200812305719423865117231883559355778792059360967711165799521862163994417744960645559655146252398839240922254649922489607012007371069426839209756141713753836525120771664410511302800378726645449879776075218158423925587747410895401856554763351122517500593260389585807055300407834262438513350496337320691369114441651502071595980060163992088562287251610057444546340983656676947022392641679870526346406389331556241483080773334222151051776358092941239369193050098777390242793367578739615490775097725917258010071247563552330866994127477885664493690971088830448136701213826719942292528030179335309970366279565764641485328348583687118639477526256235010472549323702060734496167056718097904969066429701183311392361060089808825906464141354650154297791356403618688502534874626205290273537537910441721890225745964361444989419944170077307429213603204306300521286711740138156814327377997500176571426398739471188178588710500629940457852317273599900173359989857813424054732214946765412642482197721175263268655829475909860215604230924662729025850556328811669884104631993936326912556977524615825620487978609019888218913267138766854367481429018405373345031963468424545292069942972965526651479269396781406486838480733169705525195278828381055959901404114665324651388126547649456736243426228938756864326333112022365668810118898188181148724848758866066021338363913598537506998593267291949379010924498029689055995717680105428973005199622872685961684775791877356700370033408107553255589222068521821095461324874191380423305794297388474963484976876501947093166930071915953085030310906161673403074472765973467216898027943759721737801214122300092245041318851236351159374956613539035157450885044032280794360110724750745593574521631454453438249074457028302786449260852143327435734103537385836061629889306574974661153913744969278895819171405445588365181437673562391786245917779413313688295663049428332754575291882404136523744356418506165390929197465794183884569543989452457355096570602580685593951853410637537558188853867978255121078318218336685720795696298202711795682978797679144958042995541345697492604441365138015955391756542025422027988068737652600072833418262844780286355222364284255350337668248666805402238014475276131529501793666932878458471136243111586871692421228102758849789513160181539119339875720070499822150262494601089426194165479778039348803259074547297524373477670497760994059673296571627586815180466785459189505047071398443724334084072964669388332103349207565643408229291033670001690973597129753970789273231246038221613277306208053687183520527171449853622015893741384614657856352272458881913935313245452654338702795741659862226542470404250121560644017323546197518135414823168568128543717257554929991839411847703806061571995542679420795599916266735107227094445618408651443996366441255268086508616237056652366954114065038361325566323340890880323844754611750320802523107065609365262577268101461663264705004414083129605062666156390069419696226474970421955401124554784238400076886811190610924395126975593382067719719906904220986999495817072277323331805590612440477539549673369848501971654632643615661945644393173323499868020934104978047316841938429477113105753609109855329824048103126529351491167690916505065397857534329925494176020917378697857384345672167617980825691911288622658867160945435835085876145835695547540004782123088156985895362159692131549995079194547224762626839888262620509905920401788666826731052769683423917073147789733135165298823556665642226538268861603249360809919738955935164224512747491530706536454688360940420995461385153271134212851679934712310735602675118537348150882609975522904689971154911503915425753488561260042472423289920740056971074431596719013062489385669446198576419217928326893085823984752686775569266122168534965564094228757741616649853932702702539500407517505473210754352968944281211708518277657732724492745636361661007313195912198407306519305037058025817455376309317726457906073399757414971469640620641371053911916501862154600507092951537495703251710995483420647750908528960093349252009588260502762847978395036283597955932035799502472103850805344974536456477466167377132527755870300518713177322340333936642761237270918314727449950581253662929625472391735815950679931265052400874605620204103655194937659299776275341788815113682864771897317953110097706365419573147528247460329903274741947844117196785624978894692556320295069479303781787737016584199582387519147883492374478753164241562107147938892653956160579110574298496948075138929160832962264129570071438951401560968974223906116324472672945979462574187583667603511111520082842503989292865170931711999814206323165025812112020375841394132581596813018175901637704735565860596050676039111196863346473116603614007873208335875255872229385790624354268317013911398100453707862180418443236874869538575395515336244132361781612938002997185178029272198495770705464123434825410980144917434257559372342412249186655762309334382943879633319470758353268710599692936099290151596179841177553245529277493826920074610854338371676803198164868831397294479096079505279430626195332045839111644506560006815986289258510212064492856318888035256461077679619399311520297701727803018296837658921662274394363199687271281667501874938238988138966636300476195707278436806715927182701578488963404745232322550046049586892942542979128003800166071915510497330861751484724651749169229269582016913197347508267919892733434198017511306202147919925795333717766822903586274135947460300821998565682699868571778781820547641490073932408137927764027981826905517043463188458453654274455078565282031107150011294774373196838964190457292141088313177723463422850347988839449127287005604814590324610498118623882059590433219830601233005185345274976108819859967709256562253026566352129917676345404207581282658815278240044600475329134153029359649463494753734659258503941401481488098343183786579856723454598006374284212192543973401261816468592687544219308545157799301993391745860948539788202019433405949969527083833080156503916134093091924746206455978701950586212264928240889727410498031852528563015679129425128193406002599708762559271030016638734272756217612338738509320787051186948244252562360464702121774230325564156302164887619405488839231706094216564813237011880599058847028930248306794330673271234839194310409164007710012963696278761280564663581271002221498817149291427624162670297403396877336773449108201853093464837678637783162729696595066463162194532238592614410851084779998950285772194553862098706345058636564894628805575351343098648634971805838237203563733497688120616747997376083215143030901666706066912153167425158364102741664946476520730836966667288885237825544097109757501082861078126444007938382531488806245094247167697366811269440176729909923654195076427963644251962526768518314845320856753684745282653829723446063071369784797667513663565246684033780526015766371485785044109879365331359115983158312930968369916982164289093254676619609116167145802156135482612736915826692351237046955091826490758802710550889104193843169693851408526519965288674700851875038997228910109463501573303386759196514424825223785947661461651038262204893186872527225417842358098058586869289028878941017463305529827124465628833296140798322645991209348936793936639374061272863043241501999744404967891137013019119595833484582640829380753485327949691315124250991459866914688257602467351794604546240381196273616255477976703310389333183894100436069456402589347303752144291751101561752937023898749839346388876860765344327665127695847397522660721366102293417394525208980907273949266635722233410333206201841512532843866989752970037464117344224850337609057802651022508946854172438363176065105573602391703071308042060612217446505283567138919966643131532621885035160018708017898290239992215965042023477177109803497510979788071282721514946467976146117203170035702447968059858089023008136046746714446506490796737174467073292275093547684818065494418828727975173517891977961413917653257278016328643109735977245422564706281088361407319071789708164629715955020204693405480218641095233910424632161863493264862413208970307181377681899542566103028525227670832832742190372404961401699641390928927859232516998150061783179346014352121985340655426057413879559230878623412433371022575361243653878621127002388806049463089922358429886951146033536315659501818324177913315499398665232682695476324634409556615576345641538888225381496423670468352653757153876902174665512297767475712592881008804065227513609162211516229667280510005639719585720021198364105660070428995515186550896885081253847942449148628598837610675730336510633308206882859630276793122034935984872835336164638087291668937128075844224038859592278132163190648367391799378375166122025013184583759507275840611620971393415367798995352925598987166643339833039549813652258130739352482162253606621163691490222558443627790113673474093243722534710178019072485336826314768884470084996843775932985880818193708250759179780234416304936047108016114849164771503581097760934003323622776709239639759272501929139940852715299016586908393199546094277447203681424852436943094486418023528217271958695167254962658271603864346515175527493071163907648943591427686016010377749318942901823821804465328429466632845358133940573787538864383496898728718705667953569494986354393701438205183787575787775640464113856894200210495520335711318911384658004681321094322470310271267600618086487064302025716268681425513001993509036056042381994810139669163075859435692664507396439081470813505810783383068602524269691238845531673712756284103661884321074386788968658435663094343846129883539935466672264270668243740269394049462871366322136346494682952723583400817599518564118774211641592813155134476872137006647008076262675212080640927032704494974825212346166528137015717272279195219032971978527110626780105727698739071016370655398020945861180399720138115291963269307040518558099622858439324156163842167711115686418469284125164158041204518759262290084106581975271041527289155861626459516265697757203540138339926450051983926996604750217610864191639534238182455843189149707669639751281463848013526085260832937571907429399369055724358872719558879745030686670066581074473424716758948296067266916093130292331753480822771255009278723986720881365767620910303455941570459613647433919840578415417845186399997327856762950362295975891874484875837891203709103544438184432577037498846345874371345610408941179163049955654814234473423127239938352353572611451721409290319206586852402305369465411344147074940362188590832068880266098390449486608282039991656325821222239803076658419571509801064172462281475853489138917270605870521929029527511000532777367052723540500097313568970504671758893671289987561515567547812156474734935630677388119452161987792981593654519485166786159405475907532653379184015428497404026975336641544202554485308042767962193692765879601268514863938007945514903560788318928618386985234828574168458786865777962594580771508185282452139327999392555255906671782300613352593587239404817948861151591241423937563460376132576843704675715070252535772046029280777804688723730886945510833714854749613529645076447933356426221149517048835326384809762799420063266753488581661468517604024620769462985436583809532331548426003672077208526698083238882710545910100739891549751598640562269939676693103957227655941352383146517056036093392714728578069021816617756368476725708238403637560007073528300148290071779347758201847544067373883886255575232365876389265851523516419198238268481134512805923063373144437702090123249542838395010460661982922509074792245582522950332345579859837560172622830095892688999628755998906643217189846770290647424470415969185967968270806101634514544270629715578999233369060887557607536644781937052483318308571404692995618113668122486819235887210417337718476869094283545720567456317075510249054318729713174665837462782695643467575552008001544202338090871349395943927159561802714547286719555149946865214824647830373468457717392204806841486917028148565270454075082800227576803590651006398986604913481224723554651641691815549800034058587227108318855243502566038859632065670576981113986167969823678309970606194351838709248113233306657612389634334624997608820377295123157621908451446929192452858944294050926766822496283942520064525991114602868666344175575631519838915835473536500567973955264429098913715616735818100022591313942864873889125339976080420842019676142562465628765541664272808927057989195361855604984830380277831155922317781596353265255912829154177812746433577341628706067597398518518097889376284938884657374343620216639763586135017730679663665445980634135190503763911832149973302212413900282102457855261239673813603474211359102266281541175781433512593854719549373776978245846638563823694476105455444001076259774106595843328507886141910299360496920022603494527931758487187661835953855491189212865877912457235990651777114530424600470501300918762839612174531125919540066787873018481098444335280897595899128166233269975100231623738271964881280566862955453125334822828551519094211928257834833647252276424531028517212999107947205235089912102390451127925752089765187868057163043564572667408694507644765980858684454424417668052679778842599382980784210163292893665904765084017540512592898847697697836131461402300478811938839675981046758916932023928449041551073235399703383898370970646873150610105078108997114991541915755086039706288693286304427494367709100324507554289614976824633963995658298953783151787881847666833051833050323261343920061499995491671554252401928667008974956585252779990085224556389152836718377871357968578783463230584730920529629802087440171076543768317687759383006065749893697590467745934175612027336412943005204066993451805112278460161158190841159118807313059757596583426066959990660385863438784181261648513713667823687353313491915785320068191264123546577545103964121788834929957172809240908860804139343176504452899147493162808122120685524390486457604442236525929983853286686831195844495418892530671954543337014746768604029016594765032310351818795944632661312847510789189056561715247272301406372753404345218376588705707999394504376395942236601328152936052140119459495479860916718196179227470258824548926163191761298244051672176657920267697599661034492838801587569355656800800955512169020059003846455028966352689032896695199059810524094200201293830018982467497762189634822819687960901482437553547345193394063345807530163717079164837587631122500574894377460483588854316186155637395101672042374072965118581066116490762396788480537090049518345952954130097484464632140844656691853893353443068450580315981682188176906352366274082900306562654196675218440822301028574842709060093030163707531729349417217845507074687468715675013432771200267709395141890607242443624858019436580843948991771921740291835401568791433444800764172924505879444562550932212536090945730447665220337337604231610563002809596792859096569868572807481660517202156955008642534819593783999082348620687652341567228380471275898145750523273669553171198910618350294261467983553621363308741566953483457831207954266243875548436680190639800683980875238892887524042814711109611939363352994239642971589104189959877576918645718580006251396052269785266816822425511207478462230006106044323937558719078252650805159745864521300792611503303606376378941468015173110085672656197130483692064201469854920546317959120475250195660607219857885371963230629596453536228626440632585646370420059779287393692698333868701723542076557770636374480391341463150718028643805571695508525061944096387548041195195750438486392118706049398471500487868234316358264247794326324162589623793029957481781694873403460357925138688387878287187845416385606723504663974994664494513799064147519245706346694531430894542163552039173133786597127281239194249011399661833709105243585459681123957062002233504123269969864872916099426674369874660650823132129741237893637455933565591360502220999068023016278838073967161276651000991759193283185872320437698727284318960214511198774762196476364149308814251048404700440218238206795137339908097021276629822698225303291383497033916797100125140794504204520092365722330533993971189301638970138012024054457581595340945770144791152507066043177830979602140550437229490967069731754955071083893721772391055732407633159187407228748702675858750066802753343208467291294882646419331380646965239487332407051223665880444472964370817257120231899383720734002197567889663163795302130697853748228815657245602622669447586881554999278475212380118024808093213063975726552892833348243383156467264015908309958713728145836677815717155240644206054096077959452546683275675568855390271320352326117010760094617866686172327222720481235807922304103506745306215670419001319245560141946420500927260432719518080974339827439952932353730249734999322300288453516670709593714449751568024734499431881811986929998371211743609070614631176824914425665375864332349806489269020617260334738305920734606971201214507610838214343651919996163327490450755852516061908899390649567934249722925845974933663250931948656795280451999545595383289471230887702018277267862629739167670531293351030437410448547121247223419310291783110986343831489273308389822923706603955932234119177465712024408202568316901220265646122220447029899116663409758386098856415743542291436342596309516930551435406794466686581207822980183621062992880482668028453054578865105236924942089010642621227926269065362597811666072671620155716985834369856191389152227838537318259714442235138064946745874002024751558379574986851495357152978836709800203462808400469068430561790984145389335118147875590543646560722995584406432667565259424084587423130266931609862964317174041626655261262002953584469639655023896442574742810952445244087467998346554027843227411790401996822622878009901234634056711230283139036601312919751309433114787761096898617977575890801652534137336899368948891687727279766347832476604817200438755272840175735200384816472216397284247497052111451755683402708465221832189673632666787330340309108181093520681828482681195592324127880552916026966681084036598679055784092826489642058403262300792348635542910035528961145719751897228094436461655661438032122909069426092467800549882076857939057839491444497228897499737724816450826291753840122873110615963658988020365282998701004839987505053155243199651387979283008505825424863693679290144974011108912110622765300957043532958964099322688661144001564708492058236697366165472451754198534606847994762032016427921539486039518364233064252244283715975022209318894823910685831415406937772966879380624358433555953779691316914658834381313149133448547611345402381086744636984168627878995692481198444848968103625958289372969537323935202656648753753214511833127624639114965535532574812082054942792423453147682590981241738712219359963564990668017106266578846505762485111840616600854334774841091088789454842928780414613509366971973964086672821958339589851889893631871752871968556638893260859131470854044564931857304752229020248778570358910141140234290114299823706459129897810987888370595330402660479058353188224469576499449776202350566571940547288658511391588603273514008255395516540812328823872012508487534276446650344526638247191967305288631878714879603481323263715589324415003854872107091481738998221891967227516216477792515640517311397593057911640168091825488037767449625939251450320671451483735424291997213180076320677374045252619737535230272773353149166917860615383824578610065071699945090085154250222665754096805587104255343378259874968898232094632643547341672247117886311101588955794981248155844292259053438005998466440385497383884010876826336536832955796582358654591372840690599912610735732425099784494365591955796849514440955055719884598302414602440241640746592201130817247298341484438593410869327928835262681021151335102915535717963671562402121640702992256441501671566542952794968260020490249360189864993728296008483749825095079908124041656314964437946676510376766407674788510250997332606246457165018989238967772807908091445072057987108780115203390650728578305437336708229643050494790339025894500299866319733404225267092000080650744092099186074387054716153554657345646759508958906600837216729793721893618717236355355585243780531298815230711666762473378811817775080533838999439390097057824323820091160192715447115622187012409407569018331823327013800312448513246540087206447494973840280176530808861829628966152890184373472708273684405187233101614011665908585751133999374273796411504904611866583752237981094728329524614377055527723865077820014811149078112812512284129055254981358349490112278472641452039586517387181386719293007717796827419651675218835286621602988462929091955453767913385626470595584004656249552916341225665708258739097796137799081704621559782570524307905356055348949133304650061978099853324475263042108935452888030320403028409113478263395998690053999944601385575850091905066519773163995328972767511816601308301172035652670956681743307993225263007067225148604920151197747889090801571370454302337944895534313501161307188285851412447772452645559981890476082299261736118404527870192928341306606322198184473905310763738879660502964411022471665098922870917296350602095770781984330832515893892059340814989670350143930824570033350740772324637183053095749955734477880378074987705163369229111313344430826023274110800244397129215026141387201964650984404110230661593863871218575675932980977190953870612634293042173151623725007389236991310098140932200246078116667804509236438647864998238977084190041360440679388425177691877944694584902951977804672396250324435768124219342754435383705229375266798137663448006820576242127196401493285543948267728897302546903477260835277629855952153860322558677805965846087188657902101853989918388447529277288583310852928565120998596453784383624150707598519635888407464527371803603959208670967598203804716757073682009562407293605259736021927918648278903133521232002767851683172223709194990509424264437197021525030305935227325096388825078444976607465459522040562298075451878797458491669571889607413652624313792087924627662334482659368422211732139100371697694882060469723821090657546719551603925281183198668024009150576754879426483227465212702466667566808095223553562490034596338918154259257106513637760110825978671120556717741879563290742150170815539731827511749270138547456987886780720626883126947992480394383836844757986078513849002702483356262315150191487548958659303596687758839453545705242399011375231848805549494589982742901249564914070904404901715577098295363633711948082974999821204939707785185569704960014106572778501255411691971126066856113661867086055948203283149149693498537276242651599067247254488816517556088650337036365279010584752123646348263315245360441873139573500397014052443619042214477411543442120681772871112322809229931576177029779133976054110794362068399027098522415203111900176234497771691092936164207591025428718677024915502777790601671010532074196519428980665522836162916736229616973919677309711175966362827998563945665511166150978711958115813421868787716497530891037252642599730776826728881567840810014997717206623203294801448623023354483277179178029287004275324633350628465183239803527040315031043173307188186411175088273707259378164076346630707717257202517964221757697334935877299334678734872107822409119544187214317456456552433476813432310639542811853298525691611262055330388235244829920053024698550898918139573437731643362342424826929308551298251736717044166356767435772502040509840925574806714935215176257335357143976917374616925308749244549634947734605669762396044891825178283551935788173646459781964985028485310226160058109229932931041389415502475573679546766184272308783344314888118522255989194178728813747614178889458967239308809521776139081039760397926234600617349129411047536906548598847073210176126757700682001803833185838795015983274594003535020963357751531719558429886864259325383636796160046151181208182699328354632808505470794035608542198053489188497098015904310071624029052413303423838321728823860303592201347485311616985223963928909868039441260175577097123656245431641270002223762414563260520520295831313856528492341108210515468424971562329169885787466042691208547993553457229161217174674599041389140670474242970895721721650830339396731515822883979195302566079493443376813932325398582213751915835814307049302624566912464132886589493633093081507062270108121086208103439793899968435909138876949883248685819342879824023518691384523375433088119009125633170149154046975314640605418410306098225509054198006334699291018613477519335026285055225300848999869727669679578304764912064507420214409409064384143101573486604024760077948410842370954567717916513784168250853103847132197822139875275129832643838884598690949749611630819121486483830870862288531058161260194538730365414183793154105611085812552098985315081813607689606351213879002182437060791329875806345717293092298241577982164900178730542740539801493147434346908332629080964865893370820079319954927174002576863713292216718623561426696822627915462261908563651854923623390945137739600449723058432484167124898774591484471326500117965268175890873252378051990566975844401934180387050370830886934712734454038310296543842267693531762886564893316241576684551310153747318789746749820825807307627432597313401270832666950622518394866716614330043520065182998409968876123675922271881076469104013839835012638440976731866499235193106196362648383093546435308310736712846968371858752498308181048882248091304617043262726412732114603844734537708636762604403407425330998126411235459360646871765879916867051738563132316279239539879979114909788915863635688729868588551443177254984583524756369948391672072914938046364227079622757102324319110590809357286949908455808977711495964516829053195342113694835960276223235647441276311601374867588418975399557923150518290791823284490915414241415224339911700001941037661291621667268466895231327320370236915569196134032653946818358457321329967185571741656359573085621089494410467227311892652439131888658395950472354596349127320901413251182959765570976141619366135078023467543777787094954294574915305403153836251093026987520991999497073827316036922583059637257177289395136460327647874168974777042970041501622619364881942253869368952326926143379136710174012429130399503991411876516263660575105317757640925524061400760327732764510233469569259427395348755485638667308109248103476965441594775429322880976592794688575290682817216721001886521919781559761940459059759072909287596906207190489222289604682843263334843628535185001555163085006548792499688646468972142212454949366043329680116487538851946109316306909683695546022611758729996564001298337680678866061758544000809315644844154769628240745007686252264348537522626516450038404298084873204753765361855477729296219571344328040239486678269083142488519801676977476158417333602575663184630282535688223391232465889250743942894992031876420957016713048574553251968521552697498217318749052921144348743601169236251347924810969104079247805424135105564518312436733527233953316188622772578157428464390476053019824656330521337518074024277194405152634578541113718629522652267439948983805197999074115164574555017349208731973073394916978122312643071539547281110865681805711382080395502323661193138974480787909798064045815311350305858072520128492424597693709190972738934098457042225841567470780867696650651615023308454164279470993088409427925037605477436536256789148492641653594761468041408570440515569747874177733279106965074204135017499017651934561946580244328274576538721221833402407065047937885810135029938186236248539166252179139895172231512619005799171485110501596167596479858294003702979832474485285967804591844330575050437665859098258089242050264768394694527250816972480822125927765466000638330119756567603667665144666934624222540038225990605000178749731949948147423945289766700471218267283106652068133840875476636043565726688749553638519041009371052191686041021777412155224570530995348209170216318930873979289318633616644735782837374452367212105447110815936288081741716504066441593862369826575976768829179932258492720999507286302531806057297946580837693122172723714419294282506277951080495953479688721942006336239713911702572307557631892337257258987161816852437663791232709949793698957767900469881361035109418538737062564607668339872200405236800433008501631551864588349112679383722420044951492239177575493590181657824795702704482455087399958400546819358492526341360149559469380706660645966162928069214053430062158751754838074568824752534539291083457649807612877297021765247592088351228012773554281176935279236255770074441941064011013073751364013712595575813748903826396721587716979482629027844157352374772926388740888554314232992223629761178276459167773874967539921504483176019905411277360612743109696881494996676539506672613965454536275701313772245882101879657923491974827393678632691895344729061698478566589442870557665434780233879854709335232947169726599808895769647423443456700703749581220970950035692815780819275126087690107082076144935744642553203222014849964475991566096454796719326957193964872288199299253808014569865528649196744462829218227032510034067096764399121576712357232187590738374071696117614433170752615555702496341970028405261639577855401305207432422539231685123543022804230691511312608405908523090657745629771938567427602402564152745982606741250215880534739975909182462795108342718999650901604656333518122963896450317715214982130759279873759850166614000167833427424084001014705096804547245349513777252816868323886350349924073211482269575132895689618006039050798355085613078081921778371685825704198120661533194166395348758094548164820956709450917974426534070607441741255410010871080739514672763226147759942084284177707049567200680796511197796385855506724042829742084416721011971673295852849903969735458082227137385590784442932605836925469706172356175892138556241341465656667474886316676450400670705127147635376756970256999497270564772889015174890535246887171520993713001355782900344672041320929670971231025519754935231221887034546394353692246556625931065884891005060868127399477651110180221082159662013547699119490900618933979322362785685561586582319533551266537842713128064889479837749040152582403779493216578716999892989333578864184676612012812399772384981873990552753560174736401842490164509239859381306130575222653715263092228734825515541818437569798393789562701100909733185095072576449863177619044612380355678616706692312225738836328335875299039034916287113944876897765642937349307537100549723214111957060160499221561912707210786657344429287570266329486411223864824808626813899464972362409897102727355819980755477552608722787968290030264768801151811212150856023386476106010584451042855804522168988172145439003133166266316545545710301134928760777673951781576589867853868632470764832737969631797654078596290335861147387127555785441923546430121722111408929729085473268515205995170663488201561054581453447202418576867927381533356937016108252234882240493576294583154462298278809430979443945923033591941903630384152577186866153797414976732715504802925905502241382208565807625965972555980160711017161411253005988234678342522645006227386168089691886778617632186821251766973378257466039077922039551236822852448751368931972972840238417140023956004719134837372536997584599301596211196038443291571312135546309334830929499516037821470831554174964530271541503722822473691969427489400490970400941855930236425261097382772004749801299272780105302332228054077264001234314632702665766297987364570326981280537397375481716451115919861567208677811583710387865780783423833811555507895474319225221236330829802878024242007567699511444540382588163589298996520162360063148015420702253732248777490365873073292094451695457462185054284695374926645425290026440094193238651543400336245894847743633219488271650809709225702242908524722414463483693353106131264574332935612944824240075536055520476673246584382100905687784812779507835224782418899238643480583944496197118166645357066212893860390408816182270647099913656681529799874539697061113105967076368636802460280541249654107667847462871316089181789746170220656085313747611462887726534929913042460073676754836096376243749027695481464651933717035994609140461710560451060643177689707219946156403879992268095625881329430207760678118762931785539909228417579554519314693653081564738998741206383146270210794813486535678369719053822119874967077008725934307726109988205182722291124364706414897738492567403880950704543515549700471431067495863716985905268202403496610455289237858856357175432638205353158847634860656436668897493587515420009518291815870852447973701281941576150244692071264693571334797291972541454377719612709345888702413786704941209540528131343730615104037212234112698916955372049146996739417991637357602959183191274713455093544866596836879539667227480556005131866899865422059888110301248660965586726901506289710188965752843050712881347360285115303835998913271764246848698797135873369763201344370920377365692006993700548630560514815979112971715966893018772108174245044930649935545075720677320938725120568501432179654445420981238811204913839349660612109360623292629994638326399240658182039547100158782494657528827438771680266909865206702022025061392804648830439892508700810947317578084329881488154608024151736719019114769379829635964210015459696084818663127195015959918685882018149135384420616979823665812220806075429445540495666832531526576395208324518025880178509195002197279591731951206815480813411205300000371606097957838766256618518851448772383656063590458166513154558891940275839983989238190409747099846532800283707470576469688542233987292697377110518269823541283136980420105639010796581202929712882456509554883759691113440101228435217428212064757894657461021462531367521474353798669257385663490988411056617754920417097103867790601155521019786195664273941830965476090941049369494261104478007968992324959306830641284546112308868140971582882939097647311071112604321671817246879451336469836062764844316520635045910073448781113008619507263458710481885939966350403283387611365783407364490717108837355892903817511557798106161445095483320741678847340964338070302174788612588478885557958943393667776051039624053034415829290583966443733170276657624145528033171873438622349726214379951014949988078553834960450427564142143207386360988426236587030499985358689298614538754711581856525645901953215399327302967540038249976847493428369978867766048109007843500970734774477020227609505263868078160656764726460125209309514927280227968277376992585285748195804700580432073102366579204057535010811561489652047284910939858052076847073778903722144341164289794251575186137199410274313082832304082890635803422481623484493748872765348807489912380393310486285801788033711522196360713776663101742486907545053503412648817205845761169999790803333086450610582131925860797979808848634829982595038361863111960666996795392397182936468570987154409112087507812919594976465955796050292854905119058443324527442621943647084968708699932332602657833996731438442045908938982118723915299772859452074032447673969918071588248797463512339097570838331521052739587338270815197208761494542004842096430430973195088379425884119912769656366541821033667373403018504978367886244228135160552182479729890593873717484419129380048780324228694689119707011619196160990150595318020682050694760115353599735496944075751445026100584337269295379263848749973235078799317455838918743448710520277697756408444885732779014846703079676835651122055849634001426400159375438392911143727839201702970649477004468072703673786465012488269272099084213643928502633574741776252609981123256896258374724211865170294427898198925352596753579576154655865834916790920208879208721365683558153742113949822754403269013978134576102778711109267287379071490999627606562053704332420691062514981456297753345861441256620847139811709713996523268520291039049240959924511890643173719095860313085983051149100933584076128984300327075671203552311350090694267115595740449635715408050992680955187668916117742525960312302901243109475643179900926792170122418350769974717558793754901020003949830699618441966105625285141008467670755350762607245258497029070674922243031611627793078587874296695444287358625336038941576742138244659690334661289199180126225131747013040175059947123992985812197028145977651601887027479261358740925243095394246829816646767057065624198709326740584957198236979093787702291180558958132022457355525202138041235103251204909835412129182376103981623581779447886018625990724420534623165144973183945117751700622424359799007647423819503414653464991957833983621199988162545628980788179582278275868351784412739150920748476816838686939207696162181031416180306535671860622240580765452882579145283416048902334988912156525676472843183575570203367787946708098836342534003515747670909383218574196342649847180619625758683454630931217663216680553163190424586834938735767365702732612632901399874240535234885627353043394754245766511113884649858679635979285201509557497648652987761525309732571214767183779010027717003624948727602425244191020803071530747066514272495993422383633262224551588489950238996469887281614252365696739971694206738600090751006863946777080942441498748587012806131741910440220529339835354537971111175862357963724234426422109812532026263150926280202787508906181525335157860557737982380948794930621385006789697382199983944168962694758513841944395873419839569021678597866342805305971804189365857909417403403950597835187536350480588738001619414494903619417161785558891583474494540456110583274939758967107082300011752866562901260218098673024618976288010396951681729992979925254981926038395319984796903839287167476685130569103207230183106311086804815929912082645474054394590951353859782789089706522158884455738719748759953783390918406771621479734869845237472654457157568204628158141339154984571800576552089901737108006871678641815056233779034080931510590777391527897800455794560743466706831817387030438713759439738924330585917987837745750302777316428120808229040633307887600462252502824855454248447109080364189852373146427980194196053279010892981267111051320484080313447038764421056474979100771593949606758245035763482635781803635643566319488297372767806987711338924087597392827945060933008121314634782720270770594571965536117076201601094336577890667917470225662799028857085342507125065895720354074410340431729502816354382049739763238172321291152985249840584861199356564098133009560382490779815240196710603969852711273103559515124444209147521252437851681526154030858574449496140477688620188544556342479015605929756214700898224073279553122525023021877930553746286811213111364223150743540422513152441968962182056893326779388140646676972688188832089056475137152626153372621509276564569884392807349394352036694824397952866425147643437911457317134298470307213316581892686709774868731793493628307135274704350209548672913611755746227122597969329395100042923801429394670699964984821187938345178731102387755568370988638579736925545148408354277593661959649179755362813630442687901309420836292176330951152453862504470288485915625532083847979616284664946899264608561800138270852308845673510418192604517694972046909160102237646719243462622262202318391006418527393761157823170284319259260064878723383696657679719157846594921246033489201877146273054699395668309131329214772201887282765730725374975616388875316573055627432709569777936493175090998322666974407597907080354959915906157851088541720187937793398335632863434464117217479717546222968171036189557953077425234453245599204952515073771915175048608253470146380448115685019190872918813894445794270204864683559051202534394740815697825305451339803147188231106674688723060345493295565217566659344595956053506103018232051580764280513352267358739009487237265261034768642800945431886646851649672614243269453021275456570786709870576318304657460376523073788758276744200079719609465327968564232767264028643764991967323883632487950517493522388649352812890356408254367878864593581074436793882163419327500171569058455772395171254181751650398012390205611998301024968246680687906895801884289977184764363133171931058678159326220300216061349916074580750215720012628462707003086173191650940683180369774071141973662566225540376604103176880363275740386527511504403804256245548225609739373389270981105346231638348469301173875968012861404241842379108858593014453621755102473142523199615257596180416023949953965701107144488514886264023117658871012518179302041243351758614488465279653741143688732768495039788803411286279137039991468535294073738957617880123121768083227483541699771152926396524130940649636843409464870475758290057817183599465592556950920430211199921627116275035543659291635684777601825279535518557610470029929936641059884158781030985522016338291624466432957406356084795403595278966946357305898509869208463561524865203706817601445223288547801242735047744314791512335767304183040041492622270168042731786150786472522789821819379323060923748546906532654485985462808933870938039963135035210129625475464727221983499273376130214350268107535714320459198137542208264867920354360986186375037507818537655977215182000519059764890661280005872204813275282878994978247141231270064614946375501249435865305685297208317940163111997974623106837648425840585769053041673345073941176263902127091261149437243057418951457187434833974910569463374422134707503988975855982993785293070983649596257942461911384313768372052052561506304913019651233070786737684104508595521768096889648336052142059099696814111357817882524195143216915843294553165653633291281511786160274127600523464014849373371966732727692877030856323704196259078840181063475056675156218533686192746958567333638481061843978927053198759046257994569207877281675233006692678344743107818976899071420820556122815133261981384810468173514455161902410982318071736713847200540256476602916813142317905707651165837321075051451435207253189268248165579390988719151164236334882627813847639320639939194060331156334698976646818905822296603763957263181632801652701361158059760744854090225445256568317256755609968252895845477682088365362150418718986708307047460246060731050279311393504165151813302868581589173298355740692893599330585433390311191534611533009488091463434383199588764894063011408388049883747322838004308193958799699921627554436388592516836622781416741900651648579508978872098240442615423408794817112257147044170355351705454943932899085248439336733680186540887314306224930618492812845959105769459312144615706673428997800543685678679279999628229474215737329752634668468472508014719809769866752972560239814596021364736441281492891553909578168609297838561333331014025684590895014622221841421541221010753108852741740233231770433659640058089579789324217950575955261950901418563461290246973431145309547953247684298957752775357056683268556443614243738351081975199013101122259173123404437075034575365390293891429873872595553050239365147939038040311986460953860070419483547225562794850160612033056146258173117698614685574777752513731182851110315491318654433185053323429152021244142630003338345124912449093120080596132159835162787592330489902615206180543922128589301058680587852940896669597656247457110845026746209211388039829427032995189378736977498349058795344598193551723431336658107600189459945009193520978098971183263023585332866473570019586606323112765020462184697755734086368973800598197576720910652415891525009267714572561957622209027833883761954423833750153754090832583417770096038041091473794319463356250557266948169270996052249249056246108684705559867567541568684049117661712085945588808048473332864395039389394845550871918349279823443563910876927707185028814223338747150065407978421108584747163296911793088395166937693417091925083435085511467178387982354573384868117155063522895921059621617299594803473650285132815951741130708641824824130285958597802737984989808737911809807510363331021959937853558548192209626927219061396237285424326924945814865566488260067456198091181186995107454458082642118940758651202778368853778356491463519985411743614815895317871217511411698556411363155154399830354588848609457146540725233695098638105255270060210955701218977176158566185948865997997445047790557220595552462389927219459285280013542605306647749934157046005918864650174504084417057707701537333145271122215242611133857147032824825750908910574201431450309558683738062725390862136381086136913765707566562678826844300371841998553780368139713972496693708493688543493525908960020327761466682668243209209880909800418736485018777738395105020982496981396766800883612352790569519028324208558128295001717526395214962127562399876964422333245406139848865589047866744685352698618191669756785986308586868294457973245596989047304031155015807632345736220242166305967440887061985460799393353382632551901692582219389949306860654382844864528224433636769841899867909098246266723347324482296382060522170194282848055580310979704099173365716039100323649959322889984385890707611006973254564003611976931368681013247802322512235761307263795522664790054136114425192624903578645476355152996275289058263581640584643819188521757811794270979696879169948763774686229029997001449290310182147882875701151317732126773129792775141110420492409848826632185510067680032009343149041473173044016697120796643443154755432286621586070415141741250143889589976986229538228282798505945834282787368480483676943947782166991577007200719152142515072267267834829811534193503119884579978136850073712877401980333674362721627095596431216308525144521470511470101603936864818355464578564353633555201535690639468565771575574378685949149823215619148263449006782167605868204772617489781664221043439827671965802810181704371398065081161137358490196305674528611723637605496407038831582183832054260699450044430697921526880469790087357296373088737664967277586301328483323301893455429159547452566467602269779482610190857396543883214998342694992230418303612885356938961141076328231979303598142925338838732360222457156295484523645603726714740298445073395734174286791809800352907259144116498978707516270903360665783326812738746424137370515637516807229220749433711499797650106234744907550714538136938890416941176655595183079190100471328027930586883472369194805199275679824692100695150443442509895156996584104077538468590403653647693061911684916553320905797686933787751923952195066746125382445957222967547884081545821993731493089057150473605939696534896423963639101785362920277504598053412937892904797722824765656384058304192859518210144683176672846666661883984116824443831853432002500343763642913033668630621500143292247805634830956949483062452049061467432992187890650531857999154113024924675476284167272989663532140144837017661032445951702073227567668112125045722146052723361892227400953459694869268914832632297585979403686110190371585452089192830894591779002981847076069774202623658327871442094830976996626797701593518523151740767424253055595432803079386007283528509146756522859751934654215632137486138779173098404441783724056743315696950929206185345391862795095600944463563638763508547309199508089130229728189436159626823306207364573853941449350554423716052285254551937623323963387467906227927422271823376664989230767103189679373302345597075449238989254194076660528057593775952158667599628830827691736432919369058204240098993235217095625667036735287059688246197860760708143027321664244302239855983553316392933898062698215403153776048487283847918019368849497106898344311008418753203861667580313643580805146385077819991835458645300350640446061347538948665278050681592808067110251803196251741748624570772665400630525874020609206588060618234879075131571798133610855690030629534013689420173553282689008876768452791873009215421525574729628960963265098359472887515062152790482972868686123527546978663054132507936868897908522116890991093949081644567645282074190448666274971435764779221435454658230355396141245838495758673632986031098998212353883120181010256968356349711932769029051749687485626955635306798126582111889528219112134996251359273824951944812125897664415632862789749797894761991581535866758324944521211225784660110448336291151319908931418800000906752629718050157282710376068154584670143159896590263324299047656406398322741248724835276041321945830498518535080450965779112101079331413426111067284854626688972447727118286965811576921691072297658167267927749566890534907221526689076190082264176626760943970921392999452598167443910858139195277277457587328876080825286714960142321126406627938261112448244382490014675685248644939819487453860107411054521768435472433492658195569989002783229332900615451449373360250964242006454918923012891029460039848960641831000326693985390671490372868222619842034709700427728760141173694286627862994337763080269840656824503725171596741069300598160479501272900535211257497769914773827905309295804304357198679296333593943517510631111065591518522016983922822946645985552517931751533640610066749647242088890866702130596397970082797667324025879357117151686891124742824789724082018836212168146106847352467500295815970462399536064417251886614551656683828986273132922148910681258530998995722058583467640362635540523595556182003140872826787328653136904684147681705191388068246284824296694140519333473213848179213252067520289350826915958045772913295059722561184632002048930728767153897159787611622304461047844524394760278839166821947051810373190161894901549760504595938135342394462533071900103633405357052426328007968479333336744297759858116776387656047000324750503477037569730499845276413894932272694204961112637484284474179146237068751607190909715703300201604825671155011068647085517849164490437240376925687097745310854847868666033219216046342751941303150636633518958544974768159095194437195442212239171595063189244571936742511944420052015516807487344855792866453173889544114871371278094770705926162396770797685911919179572636789863696989418530881247271046396146746871918792006672050641619394927930645020255743541632885366307965251056043103294325123225056365570635954143109435042545479600465854692072415943791441590329834774488648067708825604226490883505320814202322982070999091105820115585707165604505273429286491951940875532782862807691601355355644254287814370759402148390774444679644065125339531946344545542383083974799091174140872054675606142059884314082539436841070158599634266709933268966233098526787292998174167738533188092596372894816866254086698134740639277572402179585546109950246735470181242640572793605034784286163667110173977061476339177533494647815416444456591982751360475180540895470045270241469218183713803291195688914931663818830290794590237816490083093863469683341787562472009546491269010928051061802879478592346161315086970560274487112814381843998497944778149452488463070721019316245663375935390965725443626839025312295770828494656355133033628574318914585069635707523260666977977087959628657078689209839653145641415241325747774448093718137874131006984196869769964813289353391342355333113504577007853436058873768540191478835962262398820942831702363638663554554239288087913807824305461779750205424793528636578410630967658725558995271680772902218915463223875563303621319976968742063707582414379813774814153457056503660073906098672624860266293971204206855252509801858321292123919124609353345286626519496502160647137919891395794761886106854133718111156262581646730142462448726551691853821559821508353488209735966555831873602845522854822097307315872479149488744626818172663865822144738895625616575671789232510029355537256305681344467629175664956626426388926564356448114088350323366300888085619854517362955577939663533130835304606717782830063537901727147721625847238922406459494961286412395347933395837624739720637626585399510076361652482916444193336706151356952188380402415444319846350167939635427420241594415179329226287263240060904413850135116693497686804753088877019458634336297635188378864529275357529385658446724221268968215298672582054992260010443977622480446056357044565272455204239923821266604050981643125605686906103190685633310724721066816023902281762389457248458705092299423572404753708349242604707154813239289307008747358989682497094450742320095036258279227656558565353536533382380763860390743419497770261685133755995809947291912781604293264478397922521973991006952136342202075242445471257849308655365767896219200665774074450406829835205850526714739442174441832995547285610607522896889489397369382735269130148027938576218377582766160259521583768739979306039509428567295139172114861044992121586108545959515309656796984312687812867044308856329457030912885428148163328682424746073336950408493982892368674003328018107001938473894102909028563566084754937471708021647057194630495894918726478174889086113877460469911515105147818178028573119569737244103186831525824349638737775120428733966040225191500294440819566911086323485094774275894798366017027773249251201692547579670802406756295408633115896394203606753582522014444294764265253331380121631090241901387878359716846062445993640140482805487741221317566569131286255961852156980695120780984926209374502946780619166190066477460346660045441603631391975003262796284880198543621829263043400859047131713640627479125803450708962170168617192799188516516611777949590576382616575347572404867684808102787145306233649838953509742963787729060259511168475114984405178524558725042189310925209522626863219730146730228961259072941932284994469926505599791780775456487064802626743808434964177865962007248231138353879805073674210923223021857144930879717384536141453302702919123183862440334103932471919363372338136560099581122667478143792803046542919876125038993983087528545995663024600803183261800829422767939985411024248326359050990942371570594838046211635368434349445065476158826662056556386797155127954602248824831497372143804616319835354932609957644811671979447741382997470318310216149058287259603200724716725664867835188427846008929500290655035289247888008724657068985575743639348726478095740144764145078315529680774784213306757836292679745842397113018164280822020262522785351354520483536912260801612971459008086765719604825362111259108248728491017682014691243525429929630679986890296901499549650281814917319522377638894196888786462762793380263614250607088980061079791979867324944345045504393013811257149199221631101019759609405915976298141152902899112965608810776029252303886585745165161872659550302961202066158578429828144914052468812535355170997353350533672867207524795221836429446105445901933027931456153223416542236553501065083144945683286775228411514921303804651165209990923909529757326741327904191418875498540065271420743665048766214958089369235316524290302602880245552157620966224445538347067338518805193467122347748576439148699310064167572345556485284103945511624449234617001174134337214449605965518852464137865743951926943512055603717761443466882333929290394598111034813425316369945679257921745482238855449305130664721137185033113401314425664941433780521940913952370278823010851619137836790844638549417304316921477673858330575859255918268493567897480247477254990269298245621138165692090821382632140052839101266610745778130274500655851895149165188753619172313647231492093028207151725617318844514832643808994903317122551058496227931559935051243976254834833137722908290929697030909080843702542788432496255123689240566583972754299050357962160404813151731348509032123569297153985651158731900933929527990566350829741229069790269121896002452744928085120320856951686268668548460842422099409763243971368138005000615011072506720715305182110402393812656494270287800880892314792898586219063618114792968621376997643952982204738234464738958541223652711834485977829694071800491635076502684610525848144339540188016644378452429053730104587674798464167983728131924855618990675224378052085652629113542761463666639281208118825231224888541744519609858448447227237163834762513883646823857481744427177588925633993369838474073647130396049348473445540080134790949087007366275137302398897137359187631386337707464595275037844249986225540308851126477721137890309178735527833728164128751186704765156995399124732088450986395541939034466842487674761530178046641102387897526107341216453930019937097033067005656792434658024575736073256705106696760225287913196524106425265476890733793386421748872527849297991412816965641201509056562324589224441377781430732141003749453660871491025399924524080712971831613390623894878884958066785311423412084989588511545467482566422804435434373632986708253136227390525157964355856346771065321971761065787827568269040971497952078312373936640884366513104629248005063830483178724724613871112144887335081801643687403869508874304964444483547851144217027098128991491477330903385910175971022019007553196907981707229438607815791507801910636012792724075767479644179221288270901015757097668359422962734208319526437868885432563402227652373379393518255217822958722761999512725163818056966226082486655387122712918787985117465223753877479064768149724174511206571218388948327180476513009724554993458084495284750961069338141176203313063287750976302846651660671315874533223511416728885530235874156726523867672591899648550367968494762781509255217411724771025853316757420149465396585668957510391516794967031846783617940952596492449427801329142601415888356334143913387509126897222837713254955324578852123570636546021379655384798249717610296120246043557980792536530350193446098714156312369967081037899984182711545439953088583600154768534609818937156725150609017031937458577555353778763222338644623663747457115753066880244064868507929176230587158605695806583973570648700217784805557559919829126718299742676503749092164641352811689729716004610626150811300068336308576294454117396771709454247644694449002561734685830899636963430424397385799797727381983336655170054279745792997295874604668365584862796320597191169038292016602003348498732717644379545817758737196871138755575838040744062640011506886696580782236691814265051847255833003835439214310228687200737417405757372060050958070974095929015915909732207271376437797900178137039050281353286931204289807291780524328732035476784018274332505251515717075188278476607662524901558659762649178722711959309295054727945353074734966857703590050475690185291447324359632424084236324757729959827880699819270331767021402973483969080325763041957016935367565382711598159346688398020053091061947151915875491360740047042186571152050700445435069515138617177510812597437338467994354830091348515638153557618387869251005093378070281364705823316677789003594986007648478054778983672070734901438150550536915085938695192839423921933500705326432491997123206923599466398944513123692889307597975172211654858430887448961321059245382120637206909251782369573518560642192793984422905455534900864575331045260493455325246051749793997537825935285218231296355813940676422930591608180568939523448048463208178560031363776274230982042849447509272061646594979590153709239989879691889133392382370541843241273853624089853181948865872362630953599133544715604192344742977707836102123337948995750090308109643233064151861531408171512652125259854430896917474313517515295484404352811066868035175436419186197216942546779359695609641597414364331514122419606565564250868388671202285742136475863343553617464003621251587818380281167030317778893937250648539723791184576781830450264114190838145296805187387827498352588152638933112021429621536999368990663828043890585526926942711493922966167939776155680561335883980445726310461047583801915513674654895244073742124875023626970797922911122361769004582344196771776854207105197769440246774864447037728642258637073694456971888174496615497218444717294828182513186290245854785870349662609622977578143151809281522216981671990215881538608924597824027435042768658533499122367132938545052430163391703709553385679253304227262586969997526687223009234410590782374290887078376816485241309469344533135217838689798758377431056914443924372638929106482307470751112083402135686407867191163224335123410245637870276938871513491597154817251860711266077733495288067431094966298915282658467403190125899587821982378187834235649532306292867081545236414611826713135193208756513399918724239745366877073279664375001523154015056621056494398343829691811303406389630883945853209452446232355166762811534583099176019918553435389763046820979022905919791431565936686159948112530885332731716988780984566387480111164843984827170864314093377490094737480726868234126999626338951953483632466753413202192267947567826663556081657475995637670034551432862012918573058127215233436394757850375118079112045084177260023756830934051464260213612939494580547652544512580769042178875438182752101828566436226455593888226763137649825020792441225079029046180876720616054834044862083134011080726970208085248487388490253641217584662957768878980137566194133062804941003755162281439302619024626420723153327573244668030267220628564206730370307111844834463174295725233618002592237878236141226662863796803167984386622500365072072549124649787232500783004326052186335178864885795116540807421603207787729666691046537637877750598456883524948838848377314358975560810062593755249139042009494068171195072404257090170462548261672066218265366664375754275802874862382972906642110259352879872853246218719225970343602113016957674273346578760520768156337755921756334022102670092143618940058541113049872413979462983291428768748413767923215346614460029851558932547478154027561781839262620183697152353561937719075218988149462476512743486932048688074350576213068490270447468135980811350258243507706522922072239049539051472914677864729806249989258228473870199236918017329869173436745005224646963574971634711184297613372447963621703632864539322384282414814989976427645777494374769544240493408823107049169503136656401513422070674576044941378169786032892718734435437928902317962388760786763699795323588956137193549339280645961640598741356596987510511570669258512460832603069998820055389583658082960645038107997213149927916697495931279222159397576690561980235191097754362578562267006758904616622689264000440562568687271473926161715448575852268613943168895273717793672136841764932568600204507934414530804887992995339484760699964769291448128900911699914167805073021092102950065628110630439448652048546246044289330487696000449671500877801002569992508380280921784626333357129536018619930139433643481255767974965493761192455206183194440926414027259812242174237047638340299384457166162103073081257189825543151279553051054716211471578974525020582979207814822402908444738163739087252118564184255423435203892340054998967576570477128886389663598500777295983867105146954373531164654683648046282576929550997863022731823728455848759344299331025314589435010927645794251662497862389553934333022701470805353612843379235153460968230492703490789141321460431597609638992455774852275685932485725095144865882504814884326984172021115357865002338494695593184220669274913559720568123924360735889409212506571975614042480450925238236503236879323694586156409076751222045677281113428637707637874943355038558671459176321187684359989903956638047765499342643050017702657564701287083343817157097846560487248086699059342571942881751265928087210550872976693645173865856414701781043876920455909256434694978536145968005776066400167942238226386831122367307960228692889065593181979335707862936615758878287092117450180469358196055966442468473224741419244613370145126571946656321700359844248292147863704697083933087618690425353412466515561324109819188073663180411979009545996149581080233043959912042290987571618686921130690248603996849903102196564103441860456962341742441246891082459624974063990159399249977850118739273954492466946315023354512963579888701507765100415044244107641483861433633894418039543416354965351902292486658354869989087516395142024171541877591238977929026192926297521837404652458173817602697076532832980327211006939275476274312601646952710107676107082598427279722610940521889103857265512303735529277296442511280684687149188008807697593661905369358412369568921138407136241241786812508015988098755658452051284273703128460180972673266942784482974531711734306558328293577781520891739147870240626518234745432084817271008483844838239565911391727229769607789534979973204868431762819838869269831939980103235592328083080108953647591288139395300178433282033959071546139707338807734994083741272321308006977759130900702475140287932124173967823242573520626922452621530651811394625817856053469434462765912763207682586709141006062055012224726032545315143266790561681751750630047032932614372780055366924102081899832531960156861475420388881837372897243649478644165936034763516829226948091367136027036579742450657524499688288887902820159071464661489694126666945066636924173614191708599706127797187641427325978541289553139587056308609219079994780990673146286250759468162856961992865478432459310715126708941753730925779686645903413580118364999679584757275684079568102873529048566627543577040817902574125869337968851684692752712601406979054541488551294758315081568173776264276189281616149642892770612034376442866960327447813764100505629164608079125979641344227034134007581823132422562233030197919635889060280503757901522759526427236662146006948597938983438495327121221265015468355993329404588832443254189548333566819858528552646169449974376436844628894253613712204156781199168700065277141769149978595799982031011059540235357042878407270643402245918553600870732342717551603997730832315727821964326456283552267750476933507456036672914552397551010008196409061488078115872007617524241138502500353021997578322302514763806479840918258928792748273574199995454967693396162857731789993348066253128789180088078109285896359813734073596228627081311249359105530791346073573964312602760550674758896173927435872272255122902563460781454601678632148992982961890727003150154351538405458628847791588572962745979491621674379896467267789666847981531588469275237903542250018103164732390697459462908455109546611033522140180903967792734048421238899865587205720591485597063527682413925928620351655834488642539966593502752759404928662463341697247049029890533525340019103300412254172650710950186829227402659025165299538536439713999475712758460341605730928989508356253563958696740356826972115264935730951769305442839479639900864199862839616971790638318706440117262288549744431424247940188802197262548847596365351832696784053361847270185066471744757102047963793514982682209144477400762544730467459405926954961214099020973937780519912133255029314688411878372602076884706578440958793294391171608206711816731972695610003531880612798509143123527186126289801136152506415770048552411601147401585921133424771224304910684599226574555913459678010888340301126149323129209222976815879516742582209519618132218755400676646982515799361321238499950994062639266674746873941179756429648625917738764125138391927532889493383696599938436762706966649213844639162983350054454740076224182242733016873570708135215005662006445208175046717516841161341238568827691808259732209087261223735610181769116415044490202563237832197378707682850027582276031701636451505240387831589916070716557054772703918606588163546908082345201446739405601440835147348518978062833420658086913795704987859763389916840743200594863131313608284564739256028057254078942789677783002518493490874278064824611305510539840035975634259801765416592577844078795716055084407034536867065737353271548714356751075350865501501856949154299574543084976022768253675593206549716460279979964677874074746764167315378759550466344239441125613236164597770813181874087593770816902030970532611212771354751817515259326267168108821186872373311998338904946208135399670809332361334498051779951767746362407982003771015624404655558547692781397710609531875273868635513157191170290166377669666013271270258731572474072847807685224131931768277262480417460757566196415939660431305150150411548328769175901358441522256902364319203434894501217720530919490704555395771507970141709583987591977369012908142509840480700116578911826359988584011774706014678544353203010879594387908918837430127017899179406957727804781238699967127170113386389843053155113455162065489797940528331827889790629317335453836755875868329463408552110581221453239192736658927592442411340217903809935473457931596317866857447203442372300964637435567896377538643668500389754219119389189899684742083172397711259025055321521132122041305658023834078982938756943067440808324873229251275255859704073447708868984360236819995510907532543710457045955396515257082842677645500128067457448001761276862363397195381380360719077733947981019752696488417735971877929411866349046176429178928239637107491281911481934934372884810874771994619863287402007883191483940973198094315914286178112608863190677979772607924468004196855089207671850046307895190307853249190865708528799047378630654111071275257353404987943464464393589680592020049773404069872567565806774612536484621737616484295554778507067058851655368271226197599273584838666913291246184269557345467635626772071215114762433688123371615977440359639685437828136760382235179269590536782326689355577021454237345462190203464679540713605049282151050851907180658011447331676398220221256885230214451585103278804682035735884933253587049758381087529152365214956991961249349842353655194782139944096131900514706660635286938265923870463595835495769475986864183419027151521243952051906389060359022966245380354513221989646259042066483139819997740983561270986638689928797085422083562360830890745794909390742324485703846496830859817515437722265854758134140941022210699957795494368350541864135027301780709013452321514258263101004204261179587610579367405366455966359258509962144088591423416990733800226473570501441724507732759847859378331268641257672440209053055312297100097040709316676449185382834881855817084161246320418128230402026240735981424238741184492342942241554551231114837007072650775356640477319790215664037374041907483780493988666441102565590141628900680094978120595152628036643230467618048083748993099199230500051510402134415519589796623147773810577983902959837352964710468719764663816467876832324395251480038900322821069829744146525655522195015382912970356811304248907830383686911022111094916190093176096560438256220155200080361301402488791314518523586417515473959864992544160647982530942984437904568588561104970219892015417488956370480634173455712094182033144973954498670796402306621316121113217581703841639384448334817054443109134473119382956619416573251736585555661639829670162160210310253793870870590588125127003289881502554161888977402242105415365807137307669877330360498768703417360748661268833818158639879251560201266933390471082263173838967957955656921336516379583294093148458854931944992806715234906304621856683772702596871669753623283439742135935371222529889933487644087471620077352759887082898971179392380529465609742238193325845523740492259394397008179512082159395337684952175959825868869929628912920678314590363616728754314757272647026029278945826040591239069777413703142076310440410297320593260969982253007999567323868389459694214287372196489682085423234238884654526212269474006845955915327873653060563026282967532409818373285060833599577513214487173216760705083382198967583771408806385565276578571243736526935244984892728133068830427319198226472054874595614043784004058711333306211582029886265707794744766855936636200299338354268718816825964273821136402797607011315952525604641360020262577301909933665452545661258385264133305570452883568234935706990288702280266092215930776397301521129335366367606088641683924570845731370804746791632380041423807187865199067383535486956781707837999610956497408243877845859531166234963477907246085618569269881520473325495338561054953893145457699644824583615418675887992049987461517736366560274893418673815363095253667499906599517520699715353693208008735186159597674775954402016263985090028983610619033175174941377531362916016831839816284535802559792673211250733366145517895090610772748302214252191789171965643777913824404103748023091459385153919900999651666955339226311926870268148044856261534116847311108394069798944626785399655456061457710684364094906194742605472516455972835777474669432245153487221232472083522802995022450323103444000019771637624130600990300850889600343951738616587040282077070424880947386187930332654036565378916838402677372097563934724608993117204249304590382619761892348872337282660037802931775368431578519126691258827328339655532325195776890160670939990371595357161480645448945225858654705995949669070907169308282880497547129050416732896352059268720201399264126686430253327261907599089501328248462497583516119535401472661427735137019002060036154439969316624663395608077594134768082763754006244093322625089037756853510694318044947176453924412576725147215169361331293093497246558124015240036597168506073361296589586355115357237690124684470680568054882368129378250509390045040938952477276259025978437292507985297525975471088676543107308190097231667453636989780619507734500479477136464826642360277705164208667213986785789859176753436345953166968700165045629829740294455284344046299877963139995219615102155955522223159871281546991784580808774144957857271649229432693212587890453303422123340005437183690565998387968830844733277651888533918584165497470741379638898158520153679059914347344293771072541567858687586624494735694675995816830913869921749365084915436528710653042144251968479884711368726511026879409624243275211018403860244307085088148970508785510344400652585381902773476169655722543013117492218968746682729523536029883786631574047048012959324217037668865234073452345309415190742514126956492089441534953530428354358454188499036501442900984896414870871038046500975404328463026299590677889842956874131235281526719706091457099384840457811675408781774989335000653418857740427964024444364672680974686704084855022341126656132241732172168342798417095024368520292078114573843839989828252074324078350416908426641210819546896791523283880031593239481653840677500412555792424799067995483007811376160749589568259459259993414542049204951903908044677557687387850653780554174485790204297070529479769077555522043252598712125363427715780961124835732657910490292400241430594485049434682082169732251757098687827178055243845215246665599009925271406834480938977878217098380038258155450816363286812824071415934535260365035484074397011489510587419845594217784170955837133049658482997952557855435385317155899888460120440941045071372293449282410626939552941748855344270279422322097741058734866108987330069470447048989783635929826047296412461190328079020486635762105580747389290837330945430094805856157274412883166392205151506162762948023599701702473967791934204565739483843308729952635830894917409482327511743625324886998881080333767262854726219587477871437916583893964521271049158260946994127144797984429059242247067830398953994690701800098300309130302020076926013529658573863397989883710339054607165963214664289442425122881051185220377101385713417127348354649274525883960549636757464322834340660904949578799355859002657263025878376791583630148161044696222211816195057083946750177858985657299588761565749432625674117879508298211489742281223045341577883448243018349848362308704247085241305914056095147725283008418822409102329938742587856796199879320615223146583288086948679147539519573671696454938112365877998213504673355849469296279472456037780652373575741002888207167239715619066017969603836524700932305314375271343828702786650330690191598012569851642577588125923202423208047399583701562207786383364081980307746443647011322790258268465161997360261037001637337996205282519477038268856242089098286733174484180120696590926604194723931550867625768690118128406850783295196660226307690563177298938937428760889100276582117412511621718426326808265769577569113387804105687421252687012235218738747742039028486197977558603275517956324112644195161321119237515851089016773701382806831981819772702812899126497773897089417097279683349133319024617340030210980541184788497933836387863029547837738110232158509519657503748664037992102529627640992993513205894999089285058321705719771607530743941741109027251693440566812649769138474527563881686726841205239334955319338525359471957992670266980049630093371761243629353241721601182628619186808919488771783694176185781264394342675017886776584154961589180727126436528963055176170823717359743347498438848723601404174003404040884481229028920608841155859546087948433467394021592682863735297780644372903925700756372205946689515701160046697451664070301511441923801064392215474893331307379670569418017543935943303276454552543056371359333139001653453746231589018739907795871832713834496181545403401735293857201588680558203332047147261375346001294489295389173053259266061793170160705159416149558663254996479187891655477543490243201821335104570046026316663951976000536291718381773397993655733783382198029163962218005475157412459336522743621354763687222262064262587956766691253150481835332353004585526117686361135328029315134610106163147927472635379704802006322692573408029773295417660181362970823508955302233748672318094449497276454081065517758878112508734954454138675477335632584625202699792846512647443057084297796224423362657490776179381340765911765131375026271923003927941772846734173174444979873370808027856166201089123952079256845182672942813378986578317003080947333899441710217740164230806775553433834672745105266705509214155076339223043327328894651312094727501666319068900371183308016262602572617091735788221401426826702919842224649497782056950163664842959218359078953919665203847164531879296492114125476796549255794253175418923687915395370674594144310559036677542244171870958605855581128012352734704174803030323214870582421608064263092181578563642416150741072059211052983959445592492076858089600138508295010849121976767826087981783081852364282532771931008393379738205710545742340539255353947381440830625938902819771483623710435794817222163108475848094484694970526840649709906294536343078185646881031235416666602316338084141023016511721144933112916488997830684657025483241716667730179081949084031533704345558363376594323417997510759241152233887074711878897500496755270253983594959806368382939349485905501828359900810364686126252182242575847226388250362818461684105682053349067467650686824201937579434208551710124093226596841747794718375848444412327103143847207783317223134150062939395437939505652547296116752712773454831983922142854489076324213711325171227470758583676744546170476581479359462000052783368810918603401305955479856494729739744386794068617731589399190828522101277582951706089131264354194983651384135026581514400077985948116249955591348619328188829434676356043984819024138482001216254489922922919433568765314223662245127948605778040796531179520069424593802543794772706752104751359542369704383179051869321169801099609901109075363916414361033952252751473336584523503971112359752974308667341783532802958558547990148180674419112013559984077795433866802723056531360799046441075125776292626711527277132056203661398126868541909433010418270775173737810197464925987883000647459627518006912463210471292410088109266658505974616816640402639685097099937686207666885577574288043688257748937069002183019490198411333148402342950471213334493433860524149587270452315642326223207036667465282952835113567752667996084301826604741412004071918588836660122303220852378215419584403635889857795681460011123498842795469238316458790373784919459893415982505035172324774161427644295820028640278271384149425905647407596796145676683587955543573403947753426233016709804734400307398866227102959200689192689644148574118864810295186116784391888937130934874088456975898864779456037323968260660487129302796496662328695025979717812112809243358294324001698323645784547364177043263201532610574860034883101160856441941864787013870275900601607683953191237542996777593661027269017764312228409516740048954469721600818418646796462418709150073446531034685443114137021444535302722309653425194167904375193284565799118079212253026013519000068837643753429492644724169039055488263267621208864204392269838184677526095143854917806994209835895258505113720856253340931203823488419607495260727893448202134457479906982761328280124060007782918385984807551101900695847756968597388714918594641920755444600300070566138034914890031697449074733082398757730081004454473477791323486690164425237000970172352539213892750660187274723909880946751989528969254061197001601746007362859093829577610139354710607750051012280183928008349575300108705818271724451400597539590294509981879468497913599063435236609436889390152590939539887739741838230147798480630698340601601470168629084844041016858483736700404357686278382632811004699195745444811863560924955586467290579965611780484589948171316185729296137832443694206944159072704449181859797298818289441400074840193090939235660935863530794780843796982901035471912138865556338684577920192181866598299426463662809615979810279825871264629571966820860347407573280815928459184509137264691618544737336742562590928669217021177343903805775372646150395265200670720025588039630172791444237327484126638137946974899530510905626422185116225381647030373403741326497459362336213196188856144227154689750228540647443608775724812571612843332217227641743491682787049058701255844316179128607793718946489994238663452937378272747301528771142709662373764048403805616824222377432881270675836066607532388580624569182909373930919814688794845205809281796331703828547787628616700244461135895489384513103938065903288446309296233419320410241984165543815162938290593732993755695797443269785782565431864778068390863132316222003403990038537708182089500705812422121659490807080645123641146680706776059367072667222462688850253425369334286080130145649334836747687173476423752673889419317156733654734721085827839807852692408109452504314942617234219416458093456847676551047767977363386588488841180970801349364376357121135518660549772474160840170188431136204868104207204950262027622209349267298149964048197324135108212317239105570701882460398258523852419307920068976942984914974612819113862605397592161287757683394295807029677806808958902234150181030358826383279350793887140241075105393229995597124575665531568781329969409421114101911842622867616349579769282597838155368066439941013880294025526303033360172464380463575664778540623698393741276075283969817228407958807250947674569458668066559029393823040101981194139996975538321735137543651612377954915682118333618400132185930500084405037892733037965446154779516051069049938254925094255532398174899927995782485693998899675214500938642707895808993603231182164120882675374612291980293191504734688667129899883378329021742991865678590659787992751870186373532974903081444104980037307725255591433086446217149449883267229744122596500367621866457305030132192148918427122298325057987919137901615266725519439697004090394743749133338045702154988930211275455958032532217570424895281671078587672270173796299987301645662158233990192295423190218170043355510009220104644238670096316150490781254877517870840762135868052201613879089385822056241133330076609945448501947105213323795914622155724333128039220075988406191721044617655546989204706489020468528666672309894662630265339425626478486731291818808603436603464762688912544230627815505598014970394350718827242264456299957914265750006925404996189124227624718347932447352552975717334834517539262578700140413773857540373898758848005452193884674850277969519262922460697727504520604619727003394215870603478999005080139126760832361319530974144359325343952889849911716693552961224151101374103446407253479387063049269218954387646117798793833045853582406300055888317612414997541852390550152120962486126386054354808997424268856791531091193829951563167611371276463965180376041067743223079829237248814087868848126629322880443595746565733072413772192492982877693245596228152691736256413846991200042462120528537000955209921239365856908022944798402619502334166870867845059563890421839849260756652229320928417558449350826627340971308420848645471420246831219709747191951116645654495154761206068338325840440345020485799014488896631322880886352474751225000706878156231852539888134207264899858146528039031033498403821465970879582927410283631395441041614543130161051344717685172554407043827035149155911265315565819207595706500183519165259913535284612641615425394193222372628468368384620730467035600239660934247433117187469429939979831716422536564584613812719540998190201579040364561410879935581229343765790203241818416668483889099452805630382682069459826416171428145222035002360267940938006043585189182627182888100034492050200925979771411655850991996608308522324469217276437747806190084506282956548279247626344631477004140872040876812168092497766534295940703206961776425646097924720533634656209027575013031579974624037684375413681906057169425436438691474256907344376674786872082425345906178635903506818693587030714347235186404968157943830584560905426125322646267295987961646040997829501691028906042332051629042043604696609903267728818832067251049679005926423832487535976284959700158646793831178314195458846248168226520011556240316097175439740941927245810125106315870170112016311409247405916994761570729431206173176196087545706876157787573677928660845050096831219546555416265592598883370949272264731932943659839585843895391548784438729944207491192320063851522047086580522980857512968537338835645508625726966772547536189225437045444098110486271201850396068414889029113009786003115595962920907570187322734917591614803145821331694119830970299096715956860034160626650297528747132023088211781628403688546630782989597643722152863884371895951178877021040788904670685996205327819880744379070679871532096778667604883336241178391389201929955181801816864548716730287759398128812354577595548140476953742545151854031111176543342566592334686190404239068340431878385480552907761414099859700830333639113707517116910092902279274162853850245845067622911845705719530916490210627524859597949070717311039356017024719737752112038205642163802132747682380574564144853226778178972183125180123302459567012693031610024037611405462350237491717923782044579718303687405023688877318072528855025783556928187627603095567495835456517213297069050685892852923370386190390894710867920533495038867084269282850306494460788732391346661798146692010442336022281310674820487732997188559647236007619440056592574866048480972728958836305104364892943822046658547338556818117641892450187403615531212440716087218843214756821757366964993705437829390892396166321299630889937422309600395270001057507496089174464721033325630481600775511160418051178224799134049507228040394798019569887927069377046427061928130870272895577506609495257383879171052121486483022341938714910127697015311781248481739954902728770694177338075066816223415667178112731492042528863806825428419184447485130498404700945572792932945249678959827357362304937757490929714348104615362454134286425764544682105227689121773374382634869595121818080464395926335040300599742384042783735708362455886698444109770303454524336436147724241343209243787616465106787761259611779292457838868788009798851584209673593405215286669596514566145522647883056595601015562096568380888418712129690372671699073089082127935151015983312485249828967052106056255379374287663314858259820299173183591911679358163550307679842885778333488529274849186904303747524832145448865697063298425715215553583418746851594754952553781448641225137088393513598804612660182394394584331973236330899981258174136299719253506104792198948780608586810818286256618483033006487720269001279807098250338681061304090129394889401495018245487289408886169775908895312809608327269041568961810391070442306690640234022804527350920965458476562211710429011560743812831703662965453590991844302280169842285840398707609148194597420868116121668928222368709312905328606556808038795805649841716045103730318054812994969129383801885161469076400880525178317640361732916949271266736028973755412654141532428384035293361400948760505068923964409262854509934025634542601040014166495255029770105516395079030222457866148685021986048200644901989950389593900510459005552384206840771620311574166197127683621889254809340095507040741883199367665043139527530200870134811588555347885517297824406123781353067487253603846941529938859110735108902121064481354394820810918838860779684334983600321781796562260589119422599570427018669558573561932784688435902115243151916012751696819974976586180144596869977579029096718710330485544240734376992575068265377526996487235219200177702313922391033318432960136979188352170245163734748399451982502824604011727282402661283989943726799641495789563709249124093473537826877028329851680231849400652839477494403903303794733492954253362185341472642873446015914059317298655343887745072769321711305542228772232836751488733699499792521508722272432583332096737888840813154462317774392137892143375197736902576206572446042527218502989045459230266811950855669862385652389443326236483011213469121153780243415920959320947839518717202665906794669058300852653640742557264626413566280666674834249282054500468404117570655666475172870580078403129676431980723464693171572556706709339976558115306599194526313120131444623427903396271799196784477886466623086182510034725848258676179471729262397729707111037739187458013939178838270713278972052768841873884508686408423873588727057229707090551514950900709957575055986119412681477682660223753966094283149849251236977549578275253250147752325635263204261806854875199340416843740868156470689339011002682244031509209498751499159642816570620435074587508751068594921333085870062666819863428304002580463211606646240149034858683675656924781134299089677877068942017767366989266394842738354794661750532331339577400661771290798638804453383953974330116294911114517497004387123545401968726507083768468268761745099228923158344880502592439707482498954056629520809587108163395342158398076157162075229741538518196514018028373879713978206565867903713894643110887116171774550840441264690713071502767001614294254114852100288908682102172732158181702533596544133145044408089388013184315173463647835908341486321151586998179706054892220814840642454597709778619888695175002059197170642179592969938817083866282559196511776211554649531366404718287059382030811499423216458566978712381994170323728397423983420476257795526602095757391748212600591435232613352777362930842585096209202819469197188320676890937314270704252049579723993651217250820537870439968664406451890949209158688109276781845355116947859296534417395961321846285389782273344446978389219193209523227245986650944745055190480608548611642424144422185445424005393220120357544841716096088908516931486985264338018531352309171875478671409528218419402323984241889869795336159191099557275118579429498516290437118346984681290100093261021647366143775941989320405488868442561808018230593837807514096264779573112400601690540784726931331357756480753830518641311864485136766387469918286402132201390900019647729533802902392100109083702402913457468431273005234180779676703947187334765357518976483239626841432640096315425375717058502144796401052601986064601327793956364404686992222687169358818828242662761259654234928933096004844687179201687925302352139227296816033513569785506328467012779561200896285041623722336346182728858460822046887199697443889853417033634508482306048807726677486852836181034057795680714171723015817187119831824305711459518703519505833243674831085359307361737449619157035331837295761659831009301392736630491155488986398422842394605944180761780704822148063178876159731703533420769622143374577008342415471393702262732471227962533422388488392702434927490019946382491265018890253935623941059801105372505153319072143102823158056986023193493392745914968410535024919528026169347431915316315378435601599227999598815074861452161255398160755835577822827608547350751690115036475564579473760098068105156508776106648726308676056901176917337276538061792788806429937395431382947597344758508243546607783592787895997220793715307065673829443917068594808083522756546008807630728467014465371989237224090274511925414573100190700201887428887528019434591484533921157200746373351672498635561889049949418039757817567876739114568560623962437468266034030623523780573151636097449405808614925386479549089402635910364480009420867860551610641781819735094197859153447441831556048602552889642172164792771394360574004563436417259949016602716620454393269222289636145169772962774578521932485132534318795895378527461510032471812049702139388289740491555416642367704478877497390508404837729067890311150480630399199042957023145160648329670908290172377238658087776333378547646447486494711857964093091029048757727409881697699692312255935397879920659492245302592907969016071873937243537040926183674565194773085813832700835859106470947127271490438573700181641084039326792305208080887810496854627541403602469466255862128533105974448153830380453411765200465747352799193265046306901889362863687861604849765980060333792984693164131172026349551665062990776660734333622189839052457942758796451360988433786204747653569291894594903807740628461760652734996020574444686718943239467812871835268986349619969130502439157323855349574078340891106807168631147436542225713146109581201010032007298719492301988177096196479938029537040512039726582095007363006344914957678951805026344424823027920254153910855632242052428037062446778484712708571785082206121876037440387044538477897405391265338062218980384886440086064220610864364163868118717340209814772530729130661814212755787467151043044984533444297249956989970288327345271796000976313913916910663756925696815049376553932723107929116277703948778046799144393176058457156516682254852420562275061681062679203443699825685187843655081640082763556101709252600166535843081946178100178341479289700214727391734993970980294514892281485332314984648510289341739295707438820329129289647635719605901797241242128086370985425320511123128104936930314365576486121640931826972537105647725254658539026284891541906176427672487092610362287689675769869240001327898546925010123390439218680089035347888026748363311439526004065179591652631538304733175553458296633402746658101970792650237141314488860687915646680585189801177044415297091411789448492773859090800941901451335061256880919651859476378219730925971410020884912414592106359594702762502120265280539762718227474842077297459656096160530803753278070812933103513060906789569700662432791062358996579932558217341447716435076803647974899054781008133863336894929897064837456449893899560961995653285585158500200684331284126172821816718177765597691419252224553960093282686234706732213303404994853496188662652078039607353918531172233403194110213092852898940359110793810943020983000809864346160500803346285693497605263967248579794972627284156555769369061297600726477156015838596469062061617478100009417621453994891437971727079623041645746565181392178828984427497602476016262670318875165782220310157274393349862268932854774343947159296649078526692035419759663255550051510905378921057832203409117155759169657796592956226813349266755992604811459963838940633604547652048433564270005556400686482172905290498973229515362940860022234719276373868946964524077671563719205054521657603596112532723817045168237014771674280396945604407930164723951837416040831556745021136747033923045387873639917661063138630209890826837088683853156893309117972599980051398704427295575536153472782475184961425641038496275145024529379447483369660410196642139779787563819875266037477168749178495322715808594365955979860505091595398605925848068077063352253671413918632095701433051293269987820493871060960749221504871368929226081675441961862565010503729515238626686644459692903717383541281905424699835988575451673555022506876720923805768363453434640024495593754439696827253030888695238487531587180478201063084417519234936921107614099486092011946117701789697720267848909047724438751789758459754083909085661621047215935407984034880184954257236289144143098517727714089347943884567151976210944726938279082882150827480021972301793735946726740144218125119210197692307285335178214274123825310902991522295109647854311932747777585260097741544484407900137936703665241257905663101845921677775887337846813176482471106836210284273969884205164880295377861793339439045063112782188771166221641021186455910462931587725678150310917470372746121020471343902385413203380945097921365975776201148477298071718696879056457203542547670499429913825012945817299378701380468072891978150409508378613027271969123468369877690571584504209675845601088424568847038476819079043085201253032259705410138871905720813757703198333924097378734890445314020808039173572307534610033803532715239061364313513282655713018575092064086894959420653463465015691287722945572756210396574860967392858261157248547284350964023813817761941077830609080180533381551154973834056273413400138030405147484292563180822895748157463427403984910518070198328796246497664251558960359190437763177322338349574843857606718175064493961331233400100109789549921078617560835589623768152690082354962407289707623265717942595634597894227331405757396582034835077304538802516458754154790402453175147304514732141607451231176481387760638090425764465550604042194992683797751042397936239408544356846866942297982447451943325233189395880085580869193357376741337346871215221394016629745797929463505705686510592843803900304304834338939412586128711352913077399342200040175305874591397483895337503860064097760594450996888187354393733349194937231708963844355960307454564971875938710135304232108526074867413599489209824645402679587632730185906032576926447725674877486926242863694488362753311237048573497027827181503755922893589031675908361834298987078758348963285202528876886915009114940112537551967457108418776817056920490123779736265823998326960417069229245993020437045935631954714077699972849159849280969378327710164903542747846251030389796261761854110535637374753032454697527806148187621081549650457063670205190350953634354568378874083150377393461357638032323754990387207333324302375032488622701515959827283692070555032590810754079332158859733368036367022949586104832378963682767161025627499138831225411103825716406143682477035469390064703955097613444133751780286107415006522908516110624812947053180763990871313201070824546770535281728143366905861465412055292818009057250681692748456633679653262459015767128137967373247610550579810802432695137426166855682636293299212223990893283059841010442726219800029978450759177627647376593931305357421435040375304646605753607702594938652908975696447595681232161995134191460536226979286202437201445608375886037826031879424162843916370546030746850520400056082979065305163884870043279477617630778950172595338126080827472335762186111496737585962056551406187298549693909657510513444146448067865339694594040212386446382048729871305280639611114191591721553859515224817638723480877396033594813186683677157421216949409757009846587246224999474933515356787243028503026510413278711240674561369131648898344735212756328489712893888565732043935800560334009602612964258394440137167973635709522095787466984409322702056593742947926863609835086788847844826105951392391185004063409323484782588046838207805502056172468806716900868389971112244162445767358792934736702367171800169412028471572849323347211974132640798775298035420630909896470284321316044044049929711616778820486083649105259672950696799130135149854575877667329190281783746795064045239576013685692783817633227739393257111958576407026066805050950467801081710377151100765511938191749298682316345758760977114912238364879162366449139842346741197056806045213653321890060148875678909854208505677780465225998999247190080565090791423587019816724288605871322728641713388863774938086096233871517446098609597507163407830738492231690173012907765851142147313592545858960677257282474165985694163927055355108913991302579809659568960722889904577088266474923402659483638641071559459340567096184123310225556102121735176518615990014837808152798621643753645140056593110419256394658178205771968111338620967322441465033724755996738876816603474712422673663994605181219193817436054558205571237269036788599730135578674482111754966284333439998463774133047957383690139772599266458076945732085548069946895396005035883691028654878800264344747408068879385753581006752144760626521805120336373095394690589657496954213004103282540803869804858420196425973814188767914291882674938004936184458545871231304370718915913368413475820215752936531987503069825582115404442340060292273997844392025257136256184718390460199552043160049805151711601293508900113678285444788708722764178523667382230568412704992798282313717721509133592836356278612117531839258254619310236430576190513851832851150074619880479653683841010363955857155833984999268674605061820655897598740836647309091363386440170255623281615754780609793479280492477360410153274942380156561359837861588215281990234401854561196753365055610493170422025856208021915770673441030363070207575157698791662462572928537871878751719513666155059052946982053846656325051829983039325752437198597155442665743993983091168388914529415072558641604232773525838589773792557878951983540442846311753764220199006738354855834153244284197550100829853773158936488382096622033890329117246001276177407996170426088005893212137826331006660215789431383027274951580975145666013805166737607449687528020238053930303166162154051337630039856922986499250434942642395162286009919854364146950734462823522776935059946161027127370612180619628539659717301214061081271964754110168722886606707206666448759917810198842641531335781682836434665304731206995970659748685580932597573503520896624118434870260281714762302369050693008166244962071444408166048395824133821643234647705477048410635395453709473731548698480228717277181018589550467832914777567487231214703867822703919820790060881606294768771291237107509182541266789224669993981295410515301122418068093566389611473839956840040279492471024735851390869392362606407483096726236998734518709549338397695512450856998850103482047603529658695802024811516166032244219747943874670410918645554850762891490338003223647849973343221786118962959243199999056748620407772890578838566173550207761038432574233109273201492613293967770723149864080738135531623173175478324802356706369878880623950305906210800289187755738788909209813485330548105091561368885411996009133765290439643210095298152351953298297872014930464727172675123019999275463339459846479654586266459145471511284744743312895002150745527959777705783902961472722704890336267700022921860926459163553212532710191607405672181526908228705787988006502616685580491024135735316388676880457439354843516596832525536049439361768818594520261018076400993611378388982352658794427234529830155354140862764678032619452066527582667885903065611242739443632294645634020890956217645259385292407857504124463903010122222550350582268876270622173976977434051849050399003430404693116699893923342599989517691982747314790509628552724591686434686638792535655192359945624838654882276922120674899855905685647908925303825329776449269362655940979388938314739051908501809748172036894919463559319968539476445597195291018771715136317139576608414128722640812860643892966475260820397920879466201684657010534043695243766438078554662607609513836807294451108475593136718507210391103615394004582703977720191084304552403378669547423322635893868186017366041932790743028677982050322400069597543341125238214457358359498485898709021634674508611198864779906580507114294351661132365792910671051049281885462717583132927906307930163248216274613016943694322345083586745992801134785790067453328326155761342167059508854109969478536109195994795759690531974636981518464071234341313631814263356708096048808421371994990506209044727230109632491653813062652014522348627107458673813086801223207119684994989318821912126482904939740020285662019194130765065864247938519819755519812346755849711271393042649725673307546383991531985713985281286022582291095072144374012144151148026762174512474400304755206015533372892700855376025321843902697697351537498961320316302463755746888853975815652391878647156557152980190882172802200774279588873996643507623825975523745010159046456368497254420207418236388659423071189839010338255157698212246289562661805085208360069135677665775180006970682403826192040033989461892533155109673410858375225293599086096050940813660778157630590339230276442697701733469590921207637869593156596053954558644319917767700248989714767448733630203449906045340987101797307920058302953674610792566061332377088062862036954344842820574530587252098235597510360207113956350084971849695252145957998981280216001908319247934581142999640820199826740647239498267917829879242051363807355662639361376857965993533532385099015889659943814266314964895461725801427182833479083371739253634911590299131239564770356230994926582975420131243570763176568015743417078383413313876640426489207739120349463157998344777916122143526224067182660302277871846068572725540058997150086399322129273771107412100237430849834919374791536312583576385301211074393945962541749416667481840707498646336640612446181286698344629338507192052944695338903635046684081153195047556846889169609906962504872963234670517608988740507076722679115036651354184891795380845012730064350853779542457839863695218668693695394942560871571915035680076648021390547348027786303156674396741796185143288274457365032843496349397860091328828554927115197790236380704114034515041657320529827554883686840784282943321830940017203896432689988818178480654013689437212353955728448447237020504563507761906199745208859721311763994271036823460627577870622325995416474804030908044724128775584268742579251023746543158266577509813183022962447315338191395091349224057006141156539828079715810141804816348090882502328986724523268053579436855626696268855527701912391330244002834120738288050187305814661238606634497909384274218864876982391179941742771433740861674732987506760476393899696236084442930370704459515242201651161322114856858694763947088370343827001107207924850493290858575490487956208248304664348464228883991597747803886840600217794415424575104675811697077697804793491929731565371813949705592169815227430906251277596688115019857580480227217627818895611883250078195503350866157345228986151579140130347151292804335824085407531396655284851930175670892804763059442526354882518581091648846659913814780247206368314765050527336427681055812953442232675643928148181870488606891882981200828177674697658794552486539152722650951790862059204345452144277230075068685477254827022519688381996763173001327251741718979681835720679958996573982506934481608440881598861834828739066443541983281502057251534779375276136913164070640048952305008064418519436653939591645817666518019834359366744484323173471485904149536120104102613495025776581190034948298402502750900421767933791902513461446065804932412714264802705747886024967263721193931254912328289560750634788521900846947606185544923594341631505573032026002529713215532184899397770236649752377551918525961124388763104764989343941181752859545891289761256800834816511377841166195899539452742586948306164044633083224988039407403980335542579148074088134673375621175049935572028651034463681509441482093925917030363030561941545667641738451142561379712523224537396664639781344092074800864870035755183528383725708032935854107272598676995347833953433984885436830209256910867102223293327443950192501063112209576050150797107067250072036101079107794337180658860267651090954604386758085793976478619189133117109644075286010326042947439450942543895130849134761504937786559544181539952743978581032285685477415930878687929179729056223999516427276370475001996302075417077430222466470468854480770376167239429709475891386328722175133084091916920198863694913594209795737874689579730794397761334450853608230653490652015100163760801100811164755714462466394039904984852357321694028874737648205080397808506598977972191672895189306532559059193513274006929007505136726999048617163312892991046423434888566500861793687388366638931578915896948640855921504379745858639508612394284473199801254220590446449788957477583998569346555514634221089781671974178347320814489263505419532354144545370993080571701599296036424269597452412559270933459436409049854427624990236646198307334661931206041339480832274256332055148597281673779805806514864579052434612553838063483023649935504843190891334105518529889676491038589316058364748652532718557108880463108199522808405551306662160643441975929622623437057235535689347505407501339814348207884951271605057955591832334728154999411077574176006838716442019245724924109390419912116286624322462952925903601585626525740455035098989893330367664166324212351113075604193836238989389861317580755152732963626408850230196803938103224286484619412040685884986828244064541805800555285197211604065994729086602423080471718453400690376051167408286457036325124368587208458507749440584559607981835649764816134760996609857899687067257147322823583746222952203372522549376087476793633866982869804939077942273970163157289296995879150881187671445222420360813364802897931730116015801888303237855805938996316961845299094214770460564939123956514270202874041543609001871487018224821915192825294699149922067834661092381333354828150003244116994933023071491499030640135552050114802743738111642270622961221442499866204601529797927962144286706200706633738881461098799116385659113340861598393896449548122653816715612643295260802304759125399949036508430441796406648821918313967398949234805806054240236703608491457778723005217027615903783027253594391925951239638915320867006162599133581753337948817367012602873759929592984266628882635017008626712928935386217120480162294162835872543839278975520591909462783819553740017209370003070543180018575351049515321590159201765592656603838624778612736003386440064623960036256075493069142253824490182852985914175150981956117846220964040682829186049228193629883315488861156061352600103048060517203382263104822765316662319484368886916104551191958897062787735017257040466665642114517220529438076081950569326862930450350491887111288471955842273523269536316721773859478381952062297670734698367506436665176340587745916967056799427545033596064413820593142102391210695594842809786348823595606036933977569304951924193791983992373173717745026964639835373559411681700390209084485196710233650615322974837607068313956418424465510376307501290071620135027939607520737449310460523963615595072841730334064927089018854277902658792628262830042752056718178094392852266892221056852617823447183023253533078416912662790836394708446687069929236192709512615901390654772724538969042027003913774800897914313138149415035047746071277991493705952988121336833409466764773029991407158928138828254963946894456926907257955233681976519687741386372492124642168736290996876073866049054415580962615303908552260313232791362190819419498447440927484987976659584809808407043172564173714872961627857110924658851674023141472567698129981451391778907707691551438403011300375637769503248208166141230757405684618504362540443521021226884975722120512704828300368409390113269500759552449986172105143056900998210105589635644609199265288435800859659076958234746936379935451506080748061399979275251352531720542343088937228702880716880776439681106320706217273144688331549048030220053299188034072683527750318020277155323457353925120760729471925626266820002246205424043887241423633521724748048056102734254421876996119028542026812485471031761894653208953673326311012402380902767680640954784946156853532421165308985773771201714703938680068275821195605804092259091106361603120021414986561228247195570352048987428879329690710523641550410350865304908244841797070290646633803433491216837970065306599446165618435008975783262174906419675289616563738904634811490949543361719319609800936581731070327602876401374403980978777408358065646671859850517790902030961627075333837194764590988409957290071331653410059487869430915181255826013786551637116130373850533587011489538361101585959437752442500978470895821698091607875675224803876954324868109921281827734066095692891455979383169509046157207990503121413708038019074072027030572849533640577674469621732152578914582868900957302204958211439845031393915757774285010995233761310904795893801615845821116689550313377675972801955716856982956571242586564909437382898902789235697437978533387876293099627855979442932478387407552427968557568210789966892874040912784293452987855242249950228926025124103282420627661958557024106458848538237357875340220951020444007744065922526183774716681938246122704744593570895836614410860283630546280450628683836328457816372241122835425266470353268493344872211421737671147133401910971207419886879099643335635514426724902793922620577497180029000077145094196022037013663257210804626945856945217269902912755268364236012701113444048092598877783949669892824595393917440802439843122541207358853389368535083246345428070040960667502777841125797239742400350881858841878097479499062942549064144886216832497801509816871607854619725158379745606262863659107146677013097941443869176158060702311620311184426466239759851980649745684831850634605327594438531799661942015461666306042905573074513562547793982416451247703007981385320049654456243971283290425744042314965181151031312289407908722718367211677773785428556654758920326730906945840014346786573591915752862728897180716474006500721210581925330152670569144098079457000933929274038921272516408888732523617285060943130889686928980862500004000875166703680831641713896498071429634632100017153983454654588033060231524212437092387886941782535286934097316203518685775334548811699671883342750980158981032070097049523217453562750663936560417794111546480709678175909227885155982375536444011323472182030321924212566096279800938072465384816732871949869074258617157343957582861065917833799858383980181828867931935923338286114827788289061744377777483871013436615674854571775259511057574037656772191166594292886796924941627797429585770667248613278231666948409077528814521060674707947401155878150737278204046598511111762862833343813736838061528536838735352321736098359066165338936360046629059063428269997373292140587933890901674771256567564616693793518321433765079583748271446016634830323944735826404644523736979659889102676941442589880675263380863066483140289714830253853812791819021750598769732712372673856648621449553287870082305472748964499431333074487847090081228262923677063834036040864285009404021412249216873170239694686748795304694028556529712266129391769387521407840626138490906465982945347404642444417075731839607008929502870976624435801621631804161574735358194924874237367429090961012203338538155909801142297760990710649772855326705496814316023485235892401427805616424623107643985399637309620977164209377227857930144464304459187185625983882029343210573821894861297195737852793841139666776243380499449570096391487575828672949117898561425465260831513763474157846502835420759997339527075268808361135676495626776715093908036775502558268601891101322584621848092837645059835327883057618691818191132926412511320468399963559452399789445006271079813797672090449651907881217129314264206328711199083385743384790146370177272435055518612881970594756414669403700550278634445747871302251555381575924154745960700368141625635826023814526158599528461753463159860652110124042106670938291945688579792410688210677682545946867159215566361272059931162372362730009163343541651924566973226419418363587621086785554485911230345438350008844667700071068334385228971146324023702141537006151425268875936021352979462939789527193281394563521568624807947096436528289839463232476925199850226590337786464668070658175636688262396312168249539772423149460898211732788907454724171362556329736899859949323518157442352274405816379007859657247159330381837102235457888393911409096257280644351397876416733224579426659472704481064243313871777745921028115310141797258263365615107561940032270042002413374506633779053964251818831714845244983093141757456870028250542390970286389719066276957616553222708778291913879013618252785753316370579214032377502426433019277322074505957494395990936174100033821173221566738081240669850944269297805176005081470571880437876668165043013637675063154233719414367386594118048473204448184810042224580932716567702698734760343384501626147692180307225212143205789356348720256699875844877027682697951640798104867469860511072565576233760400174175973767477866610911493847672414945628313101805182094793511581072123398700437530241154373491166497928103240602223593322148862028425455945210730841319017195161018961196102083619807184569949450663832979392211425801360445462389186995485265617881242011671335706735858447076018093260630446850604509971879694012683636533495369263749406695671247845876680920054182222393649471663716976503639627975111234613169982558364602066514186289515573003136398560039152697655873005831074699728490243837726761395753277315699951862643200683334345374550850941895503005871974555985667600264977016032996970211997068258560464955824939923764666363011552127619534445537391686844692533501963886939967216190215374925459508618450111912420855990822590910492736332742170224277525576612625777485528865546784830887998338865873507239314938297860245144144030497415274442507402714363631200500071725371761091717254713423040866111853265881147734857504967445256458625198645883538019366331429543696244788055491397923404386784659483473630198994680800954139090139099740420846409650507326769360732002932000035145863516366538578285410399511974696962546563319395688215563114302681295531131145059354232772462784473292949094524862127849721848773449420123744446743408846930009576245938736078481983340639701442725450836732429573858119515830160786452753680269079162598309756113865501349525659095793565736202162656409858405556062837679794084915586770494489804760082277510533903050728798245888065344991751235839323873245154329745509413048662712580454166208578340347916342073394123344689974779562842085075565325951563747512163525341187528386828155383573402856698206963481552164547153648180665888869133834824809853033915336556558933866884303609826109925469421605175747532665825880111305786646273515767800505057617355670514804898134997972736334985019155839855751623046588241950570267218375459424995882936162938004067037886725154194975855009549704150568617788902496954267781703967283752024615861468392998389201393379928653335408641132085444172668314200570615974992051400636818364195466730411226550278162095438812218525756266831201532759757603231796918255067276557979234482860710455214450521277888639276272263211938118983780933157206377426776239255593250836944259919406514893483381177504891309450647110666963045022289774858883735755938958732068235696283257663708380504148876989322080592320141416172436751572044796072618507033099584978035518782022771691030575777473453182497692686241681543300747041653827868248911892907222404010056389225917642159947158685413140095289663267346390003294566975913396296996614965720951016367444834728947934050143767456220972833057255298291161588419642324062527961116377836673970559910097069271669856872751840781264363373089902169719225767838704725202335207746152985051189554872041290759827901103684527866367788275800790612572818733859569904258860857210419987211578974690127623100730667837018179084047666386836623624287269430870097478008782431839419940414720741588556413623749242135022535204645882623200625788212352465898221102869747891530118682741392892808844404682035809171736505216450477978122879112912946325052898971884249951034419879183920501450114088694417560729179540895507919095818554700281581886053956560603103451214185393487529678539768757835461752645753958263284107817059618621118570793567009823686247895598021983006511715073992915741897288079799290781759696473768428914536881148603497301421397995037244992610352954337810539734313661831153916853924050003525426181773093288372141512685080333843325210488182963058565144397427538148849013129858557320062276984933821551813250449362331850353733440271438766682707986312723345639942770181914182168578778538587227434121418515938160027024221522787826574818811984723540428420255337987684367127682624545066356693906390788662405606803611429937021506623461722062233462893758938614785214458127065778839891338081937312428891658853525718793564210112418866247876890766089381465206975567562006773807322575665608163012315730757845920799599960737615487640838159690685900748088876924284400420929182683495543586703841320564137389243960955014616110240396830547942901973080763437870719619721878771083110551018741844503437444806021777704569621358507507779443304079856853807126410491412272814694990894000282005717449653576135541259444851393668946827489002070419658315625595530922261281897568356890981812783297709864159566923042522287300557007276306541519051667370654208326185870591000347928610643514966224869259834282630883801599798004253535553272032661135322635977417443983223970178412194234138546803146407211070300575612715022967576496813090544059743019091808970200672261957499914249263046750496485127005869256187606957506155940285499007683812490611764452797042675735724558174681755823330753314786910662145996970333106264040876458284352327847558216052240977862934646826569763852864212087617254364756068981613454785254120813802711197007803327800735444178010952109173090663625575120626532256016615496549684489494206386646370611913094671397334308982556467700576008008733220469858039435720569643089171468870109960814012356673523049187808666498827026032974746103395840849782540366490942468993436259265014564181269489627294108553394286995519687474567999738566342932746830046211015992210080893453025778826781873862193419349988996215158560891934876484787117225223587332034373309115142228300986059820747942207241446377589640892842654148687730244034207877820159744282831343663334823725396676609342830739935263438313298283891598876082802779768563540259971021612918930133820012027780469393075572523315629255672476220666156123775751731399510907458150430013613828403402984004450202050782161679644146037645162051951449614022804703380335532483993906848876161232678664266617068294454462722905814618011000821082028352661222099485974322920830736815165936950644831376438899602607289988735328835998497702048567196105132394427188861829979386648533063972402031291970833542795832754973335388959282789224811190287745003064134460829130394893015060343236534820737834103853394095869297324847863737967427094213184158784767979659386143596394519511722620742393109186956734796886915539724565156509564246149023079686892697941731285953472076857390439553836494287139563013750154539196911639643229715648367802881852866317591750354151360207870585057561095028338209987906863967678481772169372485637189139196876047090630314653725915239734260997377292556550007708856515462348333287049795664644310369034543012175372714843975239313783289814918949647657681058031377473502009069789468579831057843166280735292263396047375798185932981279923442899399083970335501935002614948825693154636665981828829931664269622428798659154594276888714754512673998898879646597723090439362455937666982720757496711467925225731806101821483662037287981702188011380896762448865571282332542196336918296540781896816218235728880346620611628061250944924520487841021568149607366407303465569728026181378607359102195247315768508266570412702479529831331428615439577355829326460367066185940551616623980169772129690632354896080772550623034483083443732735227372473205864457409669761950681349598490825589717902842662143576381336955390501507967791019342738307877336507767241336434187893572660023651842801997359433171147797490871033869837302111395654963749742339459187539122671560652244613463981670125317234329924878738389468539129359221836030226941119608696072534785654046505962121646537578257641798767069171192939242041783586806642795640403459183600383068517997856308692775771535788238984750671681660750598546296433581283681817890695370256705979390813436721062155812102415060912914004357590111086826194263098320912030163972420731873850433640999879481992209301211063358502484601677534613006633598405221714151866873774709655625149785494671142160769106022283028881146124382541496095951820447335633958028458857489639337611199125847023928202529867170370343263617146530618449911925963709530337428966327540006595247702680561578382583229485899450093273281563605730848240212422114476758833584971813683643774673054107919921268195735862869521385406337435906408935218176462152391259615856238067481779992669938351218208437576199968327962561623376469859107216940846528573268193277010930857444361472776905525322127203170020685787640573251665407986658610009031576884864473642446346696385866539717764921783335884739402923865587941206525652236068562033213989411758937063713040323781170016486567419825563071458433876998764352660882182393843402682979387218243902587002277640267230262429632523993117092532087745213034037969381965474734528238690563821382128053508628745077660459490865115642513101206061246267328715560512748675832235508971819808721526451499540634157523299877117497396207198567355516350434527005633436891975548313715993434163205264153332354810476622283805304668806298406161019910422934766676111215833087223562889783539421927990692375376814291765881885846109728291410796441387220341846241464304386832616998128627330178464072863757545978620320271376534935337195344055742090422747323936546119984370319508053074021341322466180925082456850355592782476157097045985220085713661829417423986476690912551537593603862424506645119236036711967814570042002529992580230239503820900713835152741179670756673430506264802559150292190660128176196082011063442710984298381020247568092111119565863411443840815277962693712440855368622143989914187413179163331520938356216150108590218343929295592031451085534984775980364906505366758704984737118997412778248814775392674204092751096032009467679776485155412261364617823622637566894857932724710751787288302824004035729146686602411659121554762116498432693551430261081241972734892704763733010101889396557461024875461836562660419005620620007592492652388673083088361364001030985314425504938999507700067208458206606975807453728411164700944469747409026197952810969189893364063427598297932902197543248669114274116538244547694737971604806034764693428564169305575915678211491940268802841262752302034842317311484854417191157537375246046376063712305510616079988876464600184942511174934734037219866115867822009497370412303450421202086437095777347551045687342777709814622774728875501756386005772209417097326729639707968319553381016624805099731261385049424472364328050723324644782026415863435208134448617613022675988532864796770375879928637304184421466224082846732089732196084543538216333827849109818344896953493790147031674678061879396021253258706644449998340529568551873406152030951793680420113147210071111185121827869077967117029176364467179197079882891137695865758101037031302397642863637798605052046214921489703812407853290125399951128912693713098889477405640626825771775809624422863125839154768997124948179399480807795306945410568480966016352667941986301757536436652100606144959581737746981391375651551519610782224139545094202810191818021868157441024990060354035796813692860047547729442838689394449559307423149553214255058187474654941449178309204451371590960614809574068701098710161651812186757227830357885415809662006797503225042022955014739790849575374155175745573566081663241997076928504892678145010500170263468142953864280805910732123863531204326802115694128991065395313938044109515663925031337165496789812262789807838125540641630655470996703124309847474064476171319910453552677355929498675825456676512688340395698669334450811316820594944515325057760004273627496694684943012867224338979624315339087508157403144179494185035191924638439178868687819413681036088693362745401613516762979775871106767495154090945303165655632237603632288144561549159196597827441863275073945540051733919431939027948209753477390013454740160831573056064333018162702124529785582176778473057094123747884803178508362859284071600183790101383559158316630127064092663854816746160619386371204771842798127408549690830533338934662080452381255111786366362969189784847638351947660442363199280298234504867028164718709641879498739626125011615756947010180337239362394400808598134368498001729554823998033160158729554983386746164673941963225207317460415306864647441353642117952429892118569636077363931403776565960515729631293393137684416806335407999215702118490140639304830118298060902635316011314139005212832630735357607295815352683521135629319924016108672019266088980628079078917110467731721177150869433267644864220245216541084665766954273469701339196607102019045851865144140249990685575173019732752616291447471502811593563279146335777368133319870534620540224634216095051218388718700642180828920669620779586864806968320842768890233987804478315748251323676806265930333928149881781556552582468479492199581461970500893486851689812036920507069317901369292437653120025456880072138215123204621792456018400144731616483707194416497372222844899312854440671668682704273449034749305887786168945149795306159774228270423210021850810132002310692683432830986444763943081920193124733561401343782357998524338067746514446813380952320608401478402147987842342706295557311861960815664107205025745060540272598761314095191403478955681497982878112358742191900467870833352162839658551525499673837252357475438323156529262496530132235885068551317611847877026540968945201078874551928461479255148931069585604340997924458649183248148325629918176076395536259851481847283397096213193802027606450047500294378341421665230934375709856267350033746681236279701400720010031640959120390571526556138750245094800572385069160279468547878704563205754931008512621544727532629730019590950690131615781624785928498364826977698972236155868469315212652111133491630154253749942135444928077299219868444665798241670035275415556900749099788616444156097411651986776877885488934772107573818967082259797022625395301278217251969344541836687069181689010462996441129274399998904839534872680402399460532170253899484258054930179328722840622944440572642844684383039319448897235165662585502084738821234555678180280750993935540889310793190531137967948000115443468884193641686484584618736407040674160801519080545435430339881060815488120698657885280122674975377640942399616326784230890350862797239445112371068822965902807489518243605195513530338605045693331503096024388095524698735777215928145060036110389768955469187926634996510745961179661385670559533026157322523393254033845156454404712037205551136242801447701866756966865195184522343809239661851123102930905134288728726133907980829332337556016482047255655908210777667782738760174713514028106157008470802403210304210726867136395914010058218476533028792883475978704923170208216067714512435297177943804726793854191540324024860870463754046767845774987579214550540964856036496377462825342826583872571663095296528741295245343176205681162857096099786080357231383595790697552588732003521629615682142797896687393198548687376501139274991296819853930665128035162974362195865655350827767786072787564190412977161441023253140063131086298780759189409106461719106437527051289554153240708901336619316887250492126456468164598879635573787962402686429503668492479478944424526665723174176444861284782558821057362861651925578581331718549760873804364108615259092471824784050311881519767334326449554273976327517587515757602077142238918498219763563616611606871615847895844814697844366795604234853778618422337953737508324860909206755728032449559549949835434040895303148168279606125364503435669818181546748776293833477014435206504965815891719068470071738041939357252901528974800546737830890516192211543514178507640606341446728010018271482903527873306067972393628180263783263619330368267700841388567321563761334108108597140724228035123744078527052934845108869881667440234718186861472160258230105625641944458770946284491875593821157570323527457020565301109337780171088370484983578187058389012641361855220760757675127345286357475952735185144426910106987663206635772969414827343221302006624155972602649237070869357916668471426583447873407928689850815173088366140540131845257663538959303672340366346527689278288767882628205803203408720319222392225103712769229553022122389565689157209008276471425636928718348094382754806026037306470063240606958431042962196891940520712965180628883095820759371760860988586344773733720816762599356320739528984713213953289636114793786588895650610263670783019844311024453403202406285922426282701305107861933955314389573631269170979809817707780706847033281364672836620647599439229748262606080089281064886188854817024987753675651942832659611416410303294111914590166406451821033128195264948306028928002607920257809316320229289874183227429995093760767942896709657030624093372548974876982497788716716879233642134481598926977101767467381613104552047579861197068797690648483710826221786203930372300604703960476343399282741549917911960075779367599217312646589468135992957479425452725043918016896541682107486998762083722962427037172274395285450628030887353511895629452324506531966563079530612274239744359257878717564095221732988246499226057030522144267164379612072290061194440374715083171587528235111203870248961258140713632224379764140841533410365941188967616798376479855091857488526849041270039470718118602216581828135165949282376530907075461913870336793119312220009736225170992484216526769465528787015616100904348744993222058992378852055078484851922866046966074550780538472004918782021594079894087352870942670101996556624858157956627160632465179213390405528263394716819091770889400662830066321465875574733759386640186496706029660063594540660020193981292275187703273948082121267536246472565114011592579114005370616154817679567541970863450982317436278779143921885788013972807031839605249671056313143729440839167526135582309121457784741054285285504810300760620347917792823921306212514704472482601333388539732814892455284913821652855064696702045165692542912919190179379222686965658518847839616268027418617063083258840614607941391984678782335132412739989576378275430131655638800574619066481055458923268859411860108179286620093602490986085327418670333147067338766530605420273420049322459748044280737895309181348172938426962618784203817260674195213354652703144685755665184223203454243364131629349234718945638283513924844800133141949069840318200148261379929173939927464901160816803599953839549417433978748646587510671694152811075537261671493124702538189708831559521950569771479661721440460225486063254016139734941304321028193841247622146437787635325447036399718888748916090339333474399972783338428001576438545004834743342923573861923774661538860160855974495778768629021245865240044771595899531468471334665212304740483468099440566149808032189893915983827633975385374977835261539764247434016726166379951896356675068351227431879246874191166181873711574284665340643477954516428364108524049268526334353282890385117460908045848453267203984616778098371268106339941001814874109028847223339350809290704851926303501397269205565044749820244971479099326874879264352006770855747841694999945055413508722289568925757782133404062553330448099638891193782275967969588214307366366590028430316177070770862250614929365070206032491603933717525914024228956035084688782505267879698704141616262495774678173872801158600327284605724060408497048585076742352207556646347507760760509401803798899111936688382919994928695848708966344441936825266191635345754786830973326839437097796718222491191655300547918364177779803013911506434692843834794177355535655662742006158095436735484223604303299072175831671782099840129743369647868619270404717297726317561047022366620315105628480016102933853085982487642454956314809932999485262060722814144759459687608862640970682818760450051965823024495362232690275096909481138479875819959702330911737851094949211730568735010466776093669786018859605874979375118742773348979576033906877488200426415892212659229194099100179708139079619914669485468018058611382538644450744305962812892954273216913885764635943890495370368829232686911948822861420229284228943182476495012144431677531469597022530443766350582430944553467761908164827275461421458473378159744575122752122272791041799212258408840816676201855219324999201587642548099514202875124158514199951680988394303306384747161576154398260367170706545292649864238636402278434536167388862667782799916441402226112745297240694850317084528150105517437312961698088720977722539284946499508951516512376504533577084261017384565815562776519913350512550812360619151125495717277362304191391022822309161102682827820536589091531446660417466380574995221072457895535207506661700064153642045636187608702409531378155837100545293655890801581035029660799319440383279577756121308647880486043545537713034405209774139451590640220639095225451379248692984360867989813205795349592399922570259920110880174010422253449342726563146996173265290452177023069208663986571456399943776944165980893703367937552398346888950877854307979082598802514349991179418298812271741394708745208075540927977539048951098099116604864842828926312320170574589692294078286843342431350978172185650118367055108136012827409550623054614477635912584031405971054685681346861795044631794020198257155634062016584606502763802959082819718539189791679980937097368830548602540612040230416248478462317842133343341543656086893080133984418625768759281080101941731485209594321487701904738798291239638912865102533362102270543456551476044147696474068060572944934749533574797988676060895160741960371014907151321992116644679816566074010297256520300218719894049125141239180312975056242746214887599320698577620679170951185733617896704738691547944368939609997347179502988660117013866560780277357732094138051690159604875595632564199097978287256197838756609529812420695196442663820908598219826732478479649144127088836645432779467778367493702153297713942539489932669112261365603513060509929986958250600402384510622453179026417367357917403782913844618710203084432189993929494181131374113160705478233680811498140572558102803799839163420527659944705852001387721696040483307743634303674937707073086856447377518454350871339067994703505719115521626796505402128663693151129775391114005725808128504174300302931233373675307072142225557258344875275078177127714982390748245734943012590621574225642316184034044194929599690815088653602276794527626897546669813445034701815504186527492537867486848829060141611514546483186458841930307264734970847192688673003054095110225517101199939065640459555660503488148990849974671401019352292135257921544016718872633632232873855760684979465272603792091121901912647501810024320084601066731712331299727983307594666781159623300804845163899766533363836083488070999214172623390667826182446656805037835279201545528948141868131839183999646368452834972861737733840266375057797309978234256697086481957843791167742370420067769218373449405494030447380409270363588347011660068286893734486718570514547360002310371602983656755369925597435673461733945000583086198746826658401304330814195031472643979472972416605013158607475416823384147255979475628714019263133369330365923317182436395381066215679970656977433244173182276140705609571251463262945880877459329896582095838546112763904125745675801892639073523761392488805472870579718197102062447315304079002182423881870601187271877945051760482306713956926485143427837652944769934930083656947735071841952340199369589320831895887769626990318377158278801254013137636519132089671166272790846216446101794977158504398846312829036660264809112446057289892271719104994597556829855279737184594507386603565091417640086607689580098297507814017745089915477110253071110592235903076904340452605190972317150675620751365269671641363444758194037515415213123342755152613346303900304622682498634949910249938709960296986756420491142032928541212852721654035480284201043285350186209471093971178189893981496625119108876530655169285969105063903193893664662473251092380645042176210366712096080173458631298267862797109546810551233712022340519271139676675135595218101190267561299878638533363356784892828568535161780084908862421111787541321718754330686228175037601561363486539720075326626195635609052868813456936350772284862057902198824634317205168287804932906621637056038130872993357534066750871793939548680831416447636583539910660671523099919486003362524696256098691319365592196641925496935321843211866919571800132544697096664174693549616140487992913079184119290100365631733488672113361043946685148169845223890676945148118928533400683660981484524866724677251841972677699488241521056436873322565765578785739808159604615191465294677153037008356271299883425759590458754505618672463912778434607556631995088623724248716565094400541238377281170944576803852727294010257739756679469087255562704362182109898882552246881359873968381508540634110504523701198584275378607697074898371181239072646940049873974214224790107523573698281489997560300221942175612629053770262993925959500888555146757906294854259410909173139165101067908136030822664910155197538229314740987131512804139465477615879152190121905021118773128290733963532601576757270467916527371654590132712187498953067258435708300879887786825975420792972592937061617393621778677313477627172324121906034553544069193624102433621401051078244959213938564741474318200956314507731684532809802587183334077920417878016631772502981338251456072259475191996346476413185022377632649650265657346113155843427738889814477274150590378403220069897803686232944919404425286675592991772465134971620581526026005074635617506594157250326542320274325294442407876492698837140908741724447890405774594723153006870328281762692346536298877208236131178066597093472466612472984731587798747234549321939160906441262495963250897408163480935902401555860203322959972604539495575487377784368823199807962504416593276527606542444036638870775451529603895456686968177029277203991469892897357509834245117617237120535536969234887385542624195592818989440508459103204240048345587855638023775220915504326204056570269635980696837013367040450266585424461409005368637325444753136039499156863851633942112419734605179810990398471667771095414707712112408684215034251694131069131612281512020832577760699267370160711069709282244404216341033223386958255619021399695417652202554481715427419145902801305423863918685048951920042224709582411223997916535964848774748199175877719480558497251295990913888952659378878834548041689524709828542001882096148334760090849430734039401728523341164329211379943156660759507181303307656766485362574161560282567832637480809669248825509916105059134410001136145893615905659859395439912240797397464097539689583270675401394857377947772707853206526051337633980367308671300443446872828301561581036266537013341243558139087507422033802741768810180362186344220146478369187593014524424016676405563057287260738458366116419829930706097850390359363369304917938913231546559862843578093240921286739172256686641938895505678805616441351310451178151392259428393753998574015418613638838771011074353158835516473906057983945139941144195003199210487327287776021856264682613005553662162422538557619406781377004699559923337738600402892583756088862196914784154946090515415173280396452608756857458780696130121322621328045971299815662743865525674597460648589998467992078616985823679573898730158936886959270690483359518198422296410033482485972554130436311679749448739480996075047040856869577348271838401230310123894112543165146179334096613670369393991277691875293873488688958237727114260025821937129276611751738662708004477817531303640049186129476453067719270350544506944914994084528621178072538195595510822933484940882205352561231233345229481479872608608903479752960586702618321216129168143951800436529010908046509213005037882546379025312628736439273981175655368370442633511220102918778446282638719602504318154132153236648925058952344690496782749191393720074549654277764783789204623749784501596307041504041343669699638674797471431144242438608195880697149878065084757241183063672428351828962922800000296395170889044530756206750932518710157657532246932155950086268312945951703209204153732320226818100439780852442445358153009232344520472307697003472269720157375241300198512045765944586897029839866823411599149928981651452891667525317274925149284798190061977915734410970231608903221389176316769239609109267199117710983768194967478006955177483165183129312236274258342580381696774842096685679268396086873027544021366836342399133281075319429244875385003804826398933344635392593549309323568924146391772054870887309861832204767662452537367203240158759771995437135401666265265172843424182124537951187277382399199914459736626252778219226232484076739209742509361217478364287758713278660763001725179923998100687854891888519770470071469348034507118264829365043858977588778076466908798056972467186851334627281304148539919642042085323144447467453418992448631225101121997747475479312598240438250632358698731766623374929882085818154334822338105623236421507630286508086831363161800963562903611456888284729634252784011897737490686501674307314919469018217241567877631178197253677149037347420214388673488028636604937779133682514862143588874509398352938188835930573903843648205318680893957517270838461228186481805761857527050785033309830005557446711839024575863049814703941627733158324980287294533653627086417660073744329338923103961612835664090678840829124242578648791755155850944607813064024938535976354658624176336984185241181948664549829762673172908137963250965173674101453701098876090491912777666540170781049957216270607863046281361602331755272617384945913760320776544625041173300053124090478856449450767354983737276638810727876189335379424586623120169318166589807028346346105561216710863779008471818295320624763151290487377012454089130936458786889823804085534222204386591400337530003125630786575976284508933937131990025201861880415750344177649911070936360769635355579721439879825916518623929157586099075966608267639527826981006947017496365454116677679158695217212054523964044745762552418784008335907048174569606132022484006440680286365328829908599253713795534762136095623397824908927416794769681199219025678284447361734790590169528153701351497274023517663211543024002592555605925814855886192131071526076344450512559180808353910008248193146378899521689173516218684588476289225865707627163543234477704284532330363066567598887894735981151765654434911158596060817412896421765598000771943852164323036165399020724726896865668099932447172802066058677167087313934823162669027901385798613804438361600034290610210976033408077732234838620753942592159617418684093676498939553707683588951811804728827208977656025893506585317849286626101608183394609545546479930930726155655606076358583956872945556430638261492424915909923132429828646469716198758484250037166962393794875073621546636370365591327137370713949643534734112567853555748762186116877740287052258265836650751353590851426201608200355043868048038514056648449106312819816123947278550353626375041379779612488645534293955710818861129032807262511901949271714568693747620582879252642958535218810175132652013718082678312623443366471829386978880604407817592136446683958148259501988193486869761344603584116482618942864715479385997188938925240891701821117795205988603472601642698956456500335526556318783152215200259820014528980235560499612215758716682662507917811543848476861337892495325266210811379651804421405108339124527689545009842788662508872070624420451332774534712223669001314371460339627081250915491524729834516220316086777775367966961739109872160114808120381976837098855194075615473418027204290634223692667392068713808579784535464807285749370981285852973786275870830301324895471071605720955464172342056405091296294303352822250201956589265412046610325171773713295064940240066297180940966942921266856077714191311706496286062786320280805655308690664854799539369461546478726094951588884976449938899479859781792346893942609440589895477964247783537257334256950261468758304672158853658954884280297288248761216208759174081651634048511072898179148706110028324679236935542957824603855784291489970583833232761129102917117278318676324709333303829760189994678468267544545914850969306140735088743298285525506116800336981795131556261693275933251425780020230573503428978979577144443245851535011073660479040080785244054301413851150256137396825784217284774042954252822299044307133586950974091765200962430228375703613354019469539177368563731290216495765413567946062710598214495918717753540432035231577978102698341363989292570509861130983411615351919498942657970317427193515595972130052528365142135679980955162755292412196476652677854184687707448809588709518710012803098744746970824300554675922647300582789059504364404745883796317271796274718181476353064016211222389025314564853964967532240555660789944467221671575919314000225233634614063312759814273857314621448709001283342452292305067773178464116873912046306229165105235998576148512105951354157273064799614675253816173176434361621826220371942875196231261363791958107375094885073057907349107900202201477964954070156718412449492133449822512482326825802575013596532206452376284320885661418662705318641014482983593583113634675432061684626453060448872354203518108255842542824801233177134978036679855860594831850595219597654586079282621231771389530963741412366270520079473728871068536788037612669462113318664463020502357067445525512822894778213466898749576191437024295912378509023881113027153801889217778644045546822617017884944894990235064702318924651042010090671690247714306311478154188278685821138280072423990145541421325282000858997779120823625603826940999207422247094420527782642969261667258469033044985552246711760370583160971341575221963676068242976319263579182169741583288640031810376134175578510956787669166795615843852381029331689571304109898713957478483060300132350912314159424598088293576478188989091096969125465450965077972417220495574773987982719846754012636700926845190820822544084357824234142274328001291577340652414667041723040911442012691578594377994506434448578426451443454883518809573645422956801002447496788373161336944792909659884348357811323834883868716027737249488406978443680945666031199875025571573011332641613303397390635468507935985068937939495434407594146881241818204722329349152460894967920217515574137918410248739233060419725389135279763566137602417589061701283093138580799805100467964829002796725376690499406045075932504045380263618521674289661367428222322462026587629638562389899932898378843671784736642051212844400997894104277614128282156098771412936227812038871034005254851054871359241242361859664613912363931863587031729625406290725142102103476228899749724350054165266107099610095047658210664199965560628277214382186509871882113238231110645356392916132091783637927338778945621590991565475993838035642095265686737658243808808485600356198844641913812954445761620043431082126511141101579024769667397941719099213996323872282616075646377361174531766204499909986836326153655328289050330419122584794035125544257238516922541069635846362079711287132147076546062574281397139357150253972283305291601251026939229774408057120842518484895974096949712293582959732651793620363259204122021307317713215671683981335521399309729160281027975154768869602057304177851456613322693001445493914981074940005552516361269342862551173689956342650364045031243518682115563265153336662864697850372951238715351629292170744035560188594885978650476413749876819408712524181052783410747287621990965960389156395460047830065197015644264018132693181220180086623549908347368177843330807806425134054467674324254054000703396594756506010137039285159742409087579099998840050950995242272279842148067146195814725019481715525755019253709557384724510561351962717899604957471805427360639217536588282580813570520206365140652198133518203288716470051894642960136187597090061350501242339074765547020492180591259201335483188338930281117642565458002608913323425845654814768683488215816501670797687684668172106107274268831499680778234780109288857784950011529203247982227833674137754068915537294040934408025845390519141044888401018027443359807842114435230297289259603674098058339209170421442773555800530019636627893822327185234362491810758841971093015034090836906589207849330232804068550253298828866864183323030228632450042787280493198548067801031054728249111495343857883774740372231995822182686636997509634839000011594280826267809661038213771111034082334997736200600621797741172518247261988947628935019461117428691203671322007777283510249896393040527009634973681034784371999890207807732969860693407138573887203440135192281299703639741334087221932694270872900422100143832873549819255893989528576672625973031381076917397939762457142777581306397643265923443798542345447840571345187456096842385130797170989198508914684680836616985273399693750852021808009629343161972132879720229982609191339482293750782474808010569376517614472926667713274347746061037177484829386949590493136926338449737926529625697023052366322267150807733560960732917874891311898287248692151821206603462987301801701262620243143475459097216958495641681821912656083869957997878793924731223633354351495008186234199310321976755108610989853616308495081534755568922182116657789766495616164704734990659355341920541036974196928194020901924392193580157976532966689775805708050956189901794574329683218773176509327909327396800746786914325818526135849426972321148516909883930214897653272910355475700544250952146045825071742227910309414464763723605221494672746814994606125999921228987938445385066777996824580868286695408123316678950579711738551643010182283278877560980778007951455675163127783296822876778137322809882461088731408407732776126050824312793961149793955070572875042461304543343781875251676890013541053447701131218549488982898348440193111027227456532814420380968684298659106006094179095684520731668521650204297650021745913309603228688746390725709120108876769790983055981811803488795239414961889858604855931195596924775280369650362159340632062256194351176979048621918904248488629943393071516110800690823193309317961953819965890530496728683552580078453895721219926968062268075222980815035294946613264562802014430256658412642734695739111621793255160428623223486656387247552860569966423546022042201977708679381937907098847134283719256639061462984800219670074201147368772019119587283781979507767730829982404843528703336701742491900810013124280713907820855651924523555640148164226435354213038571067915972157375004198633448929256177311699291807336542735390797662050941343333008273703062917737514488972016386859817679239622554682675257952867447497263628508336961160532040812849269100655468284274521265484628271591849336081783104626887892764176554014656450432926281751818216629460680421112701314385367114531816144198054361957711794447127818892611873257096338834951508572707087444341737987754158168831798588143625954102619744767333630955957362833685250801930506945835375550609507299368512967478158453885616751214953204845657841305374677629916832519171779561203881747677590708581708302549633481480158915992112759857016214422081719076217856601141248924931512608868558841278940139279667179872327559171878789133737317726720747183990261481196715344721217559843908845208503615089119908108785076410793293961729702223530085119449227087193912042901434287311252227346751947697939807069043035535493272716193825166853164266268017982826158253610296132107227341090161252297533173636487850148678066378427312522962842203825495765680080237821606305327017249050092564134051831717883185029508167192857298560993637878967258085628499803905416580588174730396247242736256499566217112743558157392767744688687619058834947625664551525318399442515765684639949975315978941735411598756188293450981741737828404100542113862815147032308088458710868147527116045930038621830366751762960011981670220656180840630347149272941458205609086533342614694253990368220014605711933602086971125080063862883370207022208038338403787916420870313637836678176324186676149759568869495217938193926532639686664732401480658441892636171174616539750746610510276592785028103702534094188296418561991387455644396303846568299351738313240455744030517055521169163357320342384033641829336557784240699718928367531990657426962913074446970914955798903398050638294408247205581873036337042033482268505868363402120175122248335193534302990449197734160433364596694833996657535702829173735454027435327472775135138992409122357768421283962094642887002154859037669407312778031918830225283008933723349774977059681047622351450482970603859035457228477462850452245006813197926475869831915459183305148606687203397627925559557654591246926026141966946327997633158012715558344640175081506351077436161022000670855823542447734724925090373020439464104549280107469551829644967779713376443949892437067889387434809009222703748741244903815805442599556285741915815940731379731513597127656018123469160024494544188410055865999879897731776205763291079677172270780006409301338444055183493933352936850426351316619161042091034724480133000920985126751678343152758679909453073603215070820321347080873611578633566275201811787261521420548251715619698592952926664753984342771250163905531504744192723403607510793498762374697951567336262046322330386845310831101543691965693390776621321707964698648118473657692051400991993146341186996797491218091156944685404341757485218558836067189002793292533248711780526851912484593605706046860219960997591716571389451390012501653248642993161212201489701056389546180530519091311174595896083594005975191171701719384402811114336534739823782997562064537139002557021906259975249571783160024219953675618286567669533842650361436960643364858831469278662771593120979222754874324570575910884616818831934105491675073942694814771855350697770431725873050693310951307840643803212701988019574917205894881876551565293174227604744792330970342311038597546409519149012786794711837750060402853054800324308001314366760584849254833666016818241014722077294564280994643376824486577961961507979892880703784392604058879414725970890965240857567767615863365157885408292522220520916379486532890108885819020799702989621123389859104406543518909561514562963327732390439657564950617288925024219090112650547018126787670469866900104211831797942311988822938412541425845481241443481198327929495599718100646007457527944238620413179074061871533420871448493478755659894515620513720287571970773952222399397290306455331818869057162853556106454807771683613056777167077333246431124470493464047036157249667446832248300532182381712868734846104011445202834439567449192111349504862017349075319563572872572797034933375550873637431800750429612147636381975575763226162682349114815545533816363413443764031390540387002357547116484671854746444641898911378615424519422357916542642954256439452114475078425791041092460870548548023172738401256462648907688513842982289111968740089600328447556720574205995536882718216027868853137670371702355583162621323345488058484560380600791801420597265887884465287253237066416681948097546716999540284510385104294978665711992837625666298757072359575839839648704207989435219879625929248351622264101427482787024409510239768474017477974947798766551895820763740462258327139339351489932531364865232084766031254049860416415605299841131175356617438348137525244358040965074375549560502786122426851829347986336357614199380663832855827334547650036657289601804539121390730649851087960850569771223547578994188033651651034463496939298622242772145020524376174869977679805155198100210029113282707894382581223288518252961701842488408836738847051071238264185994903906554283927757622880889769107413304097948563979751637709206051038101633554686076096861041496017744250221572875578288143382581862290531996373106670526553535414960460229785794816783054728886039522953825351037872313896584421776383028110691377285697040022411238436977926605956123733791147062262305184157297643998306203056374923663809974468885854341492290059934127685871557052831475118438116871177700688701251016151262589168457396639931347605764203447560105877235442319525154951147347858553549311191445128211846680699596909034602732059142372695067210102517103890154450991684915824857861548656403673205740005062726888860677045285452883793293284761196077641857521032399909415420781612990046677326859679013138778987214349877156803369169220400981894927974725459140954324622512196953606814070024236051506236715184849446988305674601721373318498043420211241814639165522782608822320480966255917458272095633819817139416550916142082431938952647514712044988209836560821706323601797282336518407982507796011181547951779194743728279902626422335985292382672051828986483646221814870120934500884097942200794822782856942637241840268228489640594482872325407280013858578567401145636503803894380573900638166682384219996749648572669797537062375985780838270683541452660581795850948557197767608063072357669638346788106906271856012706149066498285078330841095176553175921693164480940044080406161165397442194516276595018301802902596981036742213857652572208351863268272418701815315000001615941164324635651814575558952301278454085144987275598963209115692260461216665693658114715075024453025726715865442462338634461618360451324042644941988214177524991323439572752207070432053439931489339227858466236843757225807848735980949090837563723073356600119026113005255061359407709516692076561726664229801578617963918455268358521209424469652257215143788551535685537437462963747142814467990039451342910266169135322438515034066194057255919943095726704390859833586085122495280544161006507623170170900286020238039737968923671949509310511404556338055433323440697083024004246961819297320057338947201232401955657240199689615691165624748466613488049139246562748419373613794645089432934149970518611969787157113903867997889166454606139602414088529254116699766680699492815245135875700604146813871849773570677967823390573914181802514979104104684129106476599919518221351167751960140449196340821152982506016629090000190295324434434805488199879510454868144428894080629678208823682578729167586201127111276383386494317762895883916360974443439747559011059683799613430013306442602156690955797964613376254277164024172895778153616883449753300968426090942161637304451171943577751011890544900969853820414548688337662511606186657971368228904593385076714963126176248874451737642099829724892230379439484197090098510282771237689826427908526452538525140365023338733351847570934748852938266519114258498443888218903549888069652993764212210924241549386936583946941069600132452848837510255888186735909241312998611165723221933263403546250164019104660218981690845264323546942673059191862019662380514959883920834766824964496091940603507828416859884769842859598021468093544313199699456056457934439292866038927124779681523155405661895556641645617970888796412789757648206393383879028760959423905336389155753740018017602806653281924986223642299512483579655258103149536704530516808208827054178742782350239781920583216121517576232999830800022988825406206367758605689570772049436235182705687521751369896278802624962042771084474329970595254452098589225095484883159610199911588167625460327848721057976058585436611385365969969942952704271112057884873029749658370748966931680305703636576047114841891755967429296740925845720272344965561610358596784432556285017464506667788800552529005448014833781911698814556171608417653272896827672115281269906968940836787144191902738551602723714744033281405133475904270066786144821985419868509912127995996143973023966713475872079441827784618481184867943950249581810018268590365156363364590515887916242667741279092440174958955095133381386215506794463661005006676016603223812610249794445051864211334664154614379528162911421397255751524045311680495598649630509747048365040858404228319766236399967960158567492318217586575829575265911135964470408152350572820376113488361296473095090029040090221874592141952920772905079719161021210594218310560992122084070442120468512557336365631077172178693530858777071768998269047041146514893614544801343431235423059036062537653576719741131135948046763850428486250628455164112497560231936509934227068837568153092951643894858850765735869109947404011363324465245353449840690774062386274086312546692681988295851576850772646337187219982288840574074770461055548902544173411027700749134506990351209976457900742305219309478703385845713716927961423862104675955052050153624457682065119628545230836977846145669939787038790520604284548923380556039244681221079729485277405549055057814594545117375248725864490438910921022047272558657079043349555293461926609029872718004460001676990346322634971381560985866711556307412007501191198165551212069915133741959991289403077449604720242589705952031373468124576470431531675036364659095640656939919436968250308476741718316352352287441447241095226147987874750408794119230460293127207625857825468756365833796339184924217451827791349364909209890252500728823721180929425969290029813963830285822720145655683979286286456636509202261813701031512834926753100058904122414916279409660590695698926129641557007437689997460642694056322190267913882682163760945215125996470744834654671561028294640335792734289467110077640565465707564382468746867366507639142655953863801745052238184763775590916619587902624783305277725023267403318870749408057453920691200534551627297355782903038921964356627155100435620988416946771221966530183725755346476053620978482598886699782192881566896875880519796031234785599059152805153738353159874365390681154680122697139143380219095780190341580203600675153519225944430060306703281306926689839719620555150916029474140949015455256900382224392725951214884275642933685573110725494902680041873176604832719934939603094506095049337145984682739396710690999041982858412590165491059527423058730694670780642400530119825978220702657693559693607613240445342014281765010866970699961864985836843748415039218471048972561778055095414397143924028998462098065836560039295624164258507807450349858492799092031217227151110809546469487261544885247350988937816988790857042896733851428399380140265872877602471858647672125382649381676405843854504740548646369572489532714869055651557924082190675706030899525610341917554879770881554845811820783367310604137272429219038985128240205059632481681672412087666685931714766676848521118149519858484552494610175278923431907300995371177914190894616806322959221418939166028973698295547366964709787376227842250280954334876143325693993005835372310956808505942917134461636903268428915583990395688423865545370708820132446666419464924663047734003433902072765186888406323150563238064286582664748783390929653092444176045780874599287898946123107531553928687983681949611138306659336755135045901412822193581680587079291565676166256396732816611666671088330751518390435928012877203966913581447891221118610875596360847528501608251039067479124928794544520906917617274038447405507950698237439412382387979090426551524575759050257880454482826332793785320999583990095479662069087469344950125927590558388555205175836371765691148602365629481256588327563353469365014724283126594567120213994311770364589340619518102467691775771521389219977274710278510325501966158863784222869649925165545551737904149106155783240268382506902189372348577696170046162482362421858068967068730656865475991507983825683792751238983332788586930994179804444913189279946155922094116542654138630526706607876386314465232901853791311405188513251581567509146549853647335877666392203327722001587132287274325057703608633676233727322358682410106950558433495475184692937155010972311434759075545857523776389053510887521589168348151106967920661889231258956418550877399027143694583957242784912972948454881208194147156880631719504228339953751391760947195075686980578307992238339436621996439151160642608994112253879323763946239164864016172091380143981795611112897298760679650433816869615328329815061210728797627065972987723800669602368870003861554704325292310444591416669826676491379527366298966394570449412912197948898434769885935778656016351449679257319688329224635752504943762121305816083939591417504786271607266525351159448274369737544545044512209211084957726514831089896967409855548439419703447492271758547001683030793832857334468313330174382572820296853672219705452236221233276906980361360981604017380636578335625036810231403879557216034222577728506177269934916667195439322337617885822576945435779490385545371381241240322315012019087920983049641809921327758676138823437459274683591409072962181159102509823182059830014874536224567901654318275945595080692960891739512872481849720775036545158743043056620913183254504327006260870240038456767386303635148145387056041117414705564610669512863077701776651616622289824115214946119792169874027700257700927901832896390930429040440064116992722969212455097720445332035165083337281607894238038818113669654919894573042038576745156677447030033291306858767427228417889188069971641679676344905990517012912373776959412573588905467574056052167645025722169686659127487945500282105836368271669478936137529658693397777852732284231172986635396942013558633409364094418270745122625737293160431596140959075111283969657751914515915008915119854389385443173250578929475014393505670698140350629073191121938280873753197799975947810712528924980446289557854812137932520525121722415618943255280960962696375847404879887006759966402309100733301023328287334920422547307036447868628909345051244575252287950733958118462923468022866964650703581545330496248021086178193725894190981556218090400645106239287594564607699389128962081170989502143244183493476315253112201430223397632088871858479140077859324557448318841492576707466967419777119580237977152404663376984021153097154792753197269429880661077094265761277808562063612594764037498979761096145899112266137620025040915943416603537788164779488473748061117145272393298672343543391756919444530377129301669039292865662147011460151141266283758948256383030992527771619421380112231307738401641430425656679412591822942010295847043410958236567648531238990208364906755477234443705111639039636135199018447113058515075566940903406173057606728897254611511290308952666873911868193866918746134521967181955067317563588300677073322665086074503737923841658061318696417633376060696157274568331416829068118337187580854578668342109215858131771754520186593090558075550998556470677094550977232908507030804715039942128491698631107299839651355853640725905325401918297221383946456110531048721409041028987862652317941714952813982411440670066746303319447299734372992982581116479403894732523476565149443186235961639942828669831128560820300910602701718700243933635671011040511355239969936797617918546752695950311984777017815023054425482751172080829819026738274525712617871282487371364102949532144629659980836779870425665142959194467954305057277902323251863545474877793953495503955180571465831052304618413391193966648273545945868217590634680904140128930348856313586008296976275994526175659615790589052324455023511720684353282169339512052360589262909493809366722851152409855393676728918950589956730734200073816571919938691924390337524346134463436911207326449823364992758363840544971968945150261915454485474605922091749621185413471736001702728833721975995997940216739196044159580041275602486116932406451185033562658726495919793482066647992295295196386014803041100843240644734614712342891259500116998313840251761306634743787471850614267246714642542122189098947877336120405676457535157211069346075908510404964141488577718694181656949446143979498790959313711621368337402429724705582159653129338610847841762841001557813823692563096610829025496738929743815681343578662615235727370560452069158686050837360775845561406574359688788546373429695058805334879911058757558378598133474842269593252312829669650683098588363221271666159431029494410196026023236314812250938364626865725859830645348505759126794143160006665102116789971668373580194675423626576967901895129642402070156522494066997796948692870984883827255166664254937245611192759625459011732259898816970593719963871344891494833321598240233720511659175759180295564950116700595389346154619816610694509826929760311922179861705985681658191546925078041246213698949667355973277367075445044985989156818078255421551351221468852931173252907664596651264676802296513866580721544559950769599819454587563858129684359894819582262940063375011743189647680052633748905448998258460683978453392459468651463830485787976899613942170517327733197788746354064796554547811062716558803336188667022760776479251339431990556867644120014822321365872338326837083265923669039472689335229486578882473670203153439735279744908632539015766544744229693729551976341073434631137418578960037962101859267117814965282151089924628020525340479019253444837927987084574444100517773673829737796935107791667127382046470616059391078095735856576238070766589057418359348345203987945011718389395774924323578118227571772663330249027764765966947540893010348503396347581834571862048820815336092122415105534951082669670894723912497542975095032518148030400986649736298991997453363420494671302367084369983108578676867131836562721657755428825790887865530317850832744895137948072699062651147670341843240122074938453040943650950329363050880455172010747017374666178536908532766415646686597517134083404158913478033421018872784005473964839194819067021254648187208661425538191679994519389284115827837008150573090773758714203381618520166228720709451549547860459673575905770155737615939402656165230811110955743070600377589639044995906988906353455653773491322976146723176172606684128091172308695900040687318130427467223336949091617627393717883778914730449249571581901839183698034195364532371579016925545362319012567820753218611377659344886956808481484690891837920828899122327135279449458170715499040057325768083686685866662672219439270381851363901679906421122590979484102818342670710263029924978904018950552913891321034243521060002876992400983122374997469209390558963121698633603285483363675964276638555461191429133131215613859746899129671153025653184519565771427994240922376338516576418516997599103446824329524287941546986591369948767172287261542567041361704132680518994216770844442301620119347744497074745811317316666666077718001538031848174241059500574187055979377503265073072651584925246906481639867302754589344357149717982726235686191696467310285888923375392384925935681595729147987846596276914738359944786950066012725810218630074513416613133778500935050897454186835648039466224122004398560867451278942970374196156673803059052513080792846093296016076629685868978089493907640757617199533143786706163658543310516156528859117912610424845559151903929666179476246858841762652499664021509308105247032820761996506463914441726314490569553052870733990277017450117692337402712731424542556776029284034674709592552628095886394151912065250446900755008133533254826355662600596002521886188483244810452168954404096625785762445632048076542633607881759172465640591635631771617439190218282180977509179659592597022579570538476528041767075417073891006749408760335116929616264982331481458392780114213052690210558106128167563403970358119573741731951643165110721639428481169130737925251682796691356573474024730033691244286533698404356597861732747848403292914514430711808051134313351756106315802420735061035359206717890680159300462468015435266998621681386739413453878035022536897749294955984751470159083814547374012418019270309851504767729651323746453779871418607356285874977557470982261582268582558966229324901319408373359153022700062779644527558897200549959515084707332373087795671034094350554397002324033667400033534605679408637089641839449674584090549939965584307149794217722136513330849622139554469485409982054213034355186692237518566907300438699052232997647706330085829224496487292823293539077344452103736036898588435445902886252986741341959239359000931885988470977289000217868028498469147224337143454839567960936749559778718037231843932458700076113964401955867410367595364147739025452716318104928974239772390670050788603022496951307452777982433265829939441268507504219685093746897071128927235944478026037809011488791875864731246994154944497378429096176406641482311497410622383893895054890415871513384584782086740468832135301829060589245850350022923756635264238774259564491980571319860340262678010155331830778991527302237759419970080720243058150734585381704120231208308758131072137877317388470365023503889354174944107029303458724781674147519973604785804852225975600578513198892730789707398909283887955393161366192499605879411288912590106384149192562978115542730921039112232207411599759415082736762201252840235181916975225844156071764520302341376121796789872606095263715444884218103853421053295180115185438491336092725601677677032115157154229520065769377596129423063100481465046076074425846184793812868180980546620708362568186921042508924913268106798440148583588823164512120737914733216223023227261638528240041558495039495939184298134322149780137631885557338863814851119256405428069068225992237776330983435271846368085083199836136672215916649979401288832166810855601417166136480131989601178499622623350523414869284959648259069526542819527446540126388485810013129607777018806100559917462216061777943967750381751154401798787228540276758190162424161462792401446889946471920646836014270184269905321480902320305572056247913304182084310679430159655137745347482890823446682576453315838744925222085916805596183916880731309776961930772538262557882607535966897145297046203236886259411906248119579450642187215729351359892568771409646768814112144653316164513272197095770401091892467603008714681431096873898290979108512091149178455164176297880749108757110143939050166975420718406761995710454513871900107543925270734570941342322400738208513099591647934047358692372722901952562523219557637654196524581110708807934974276159394261888782488080767684717147956019521596982833890408790741707302687969634027285626444917454404707479934632073870360091038166633704890283218057272101599674648343445959540825739869728361438345972706577496250279954102981104414835754316651304038403999229210208694074418156060276796023675714023611540221411165406293313353225462078953313712598581846916001507805540677102019719859749951070823940451325473344114177029674396797006033709524995900016644078953043631127158246946149727052117641925415704041584206225427481523886859109762050965694601168187777196632074694229731205151225266713547053867099590793469736122029992308025192359093808054729218424453115841402042315401595957707434033186698316359934090542018177900332472774348787275291915431597704197630114145473337554350651141109468198614266982287740272740744288105955740821719556524969867704006602465940089487265801366490338475580662351972980690384569169232343588976371560612287803531693768645263406877813751697725520692008724000782555034351603816687000938785061099673486660984142368808957378406339210708145151971114479258369341195532204936848776311865280956896697691752537543080354398160351178337476906655988761255360306447063593523517887543931437690409726750387763954343360759800298946152627885118456951467162029309913887300987461171934876654291707703132293713291907997607026041536047348466864452192648662087060442571249799491900179418693341700390230594084495141012023819179102581341958494947078507169204480842604172805456985648744164013569004457259253816937405286459302706818030657487106838939392323513838088531714029462305970796699222754604261898871934123707490137071830403009653877857941596391580548671907634175770501449505817487443100029077488188828140824228568228931627852830313974975568838817438179418894837705762816871294056249467414853741945550026839138359399923815031123569547976451819858051522925143057212932686416662955240977546883793532528786815513380175166252948577703020541910933582303456616209258969207544935101413151595452977447232105432483104277795116233673815997065018023400557214231219884050269511056756493230706449500619321522829310671086604940844188329956328002581172865777777489820245986784099331295739812794061286292189808597728219733606226974090469729147138999889966042166549198585597327285170773703172500548037169436401153453940695536593960667269780636026685827476184477094855342814512265829968012538974695715301109174810187573439769632890338547108114281259638059363447101532562434290690829301624337611126856756371787204237469278204857619406211149507421133019348894682881135775609594306052885813136800447664134424854378528489181564476911806513924008661639348841022092009451558183686858820954506441129480241644074555941781882376590686947278315669165431701243290010757711176081352543870810175597079901278961244994729515862807244822095776441345475955260171332917213220498570126762236450337902504629798253659513200008041399557780885337951817429170100474621247548811794526445303417249466433738574463105127229555211734574002735121712896618164863812651306976845398761610938446900274949603955161861489699048864818674737705423652509462439571948705998853928798801649984052516623672107282751401646276140880518215518596318760341649488570262770041769577742018698357310693084578668375691121736611631391293924998505808072297348263278610654689992825298691837464141736747921312529875418862034205773002989142790810432654552436237270184277441862510878584196284268093983692183954210665298642288680064550738550658048013526347378890528968903904881377644116645918822839702696178695374812288598375900278930301258481688953096634925438780355486850476714695696242789939388107243130047718759321443192706649742277820931845424718182617197566357191418293556667397093335435636884227412791025429134683113318766516078154567041018069643118182673519899284763924949656834105754185517955024245994557831663691812566941441965406332197685904551305729026941903523395278567215098946069781662334904654479371418010437989611400079992378745693378225990991619000259102866069450047619742002375086922125635998576233642278533786056086189243962222989818049466038646377210840700470594245116639002154980124137066746043723730366998301495483874089497602136632407193625237066183634291540597917978786955766937374011703877838078082054016530284704671514431084012814623934476886582017198277095391568679374588784166422061528586931256941373888845282479837465293037083157263600009565286183376455961281441233051010904993012851646607831516811438885504826273819712962057144887961923733031234760125912177181129073565774795382818346472603494178906151796334947423696495018410889044256238720183387765344162096046893922639788615760576554214556429810569189082685174736318562797299041248493772784414328135721501769028950177605938050079605482391610455889755580012546264285521484566756757625578115279999606014065140197088878505628585309645040039587823616597440161721684231175721618770338895333138641061695198046005280914143986392472998102097898997126644670812406371713394985565158030234750060950314222842985457505417806833074292988347471150749893897489124951397720644901532996979912181974406389090043623190985665939578606384357054926920303542274418003541654431362284351689582939877450692817558910776458465054869463484391188373342637771014820957319362825262135453202789730922245759224416460152538346998833044038921173471958663738904472614758981691241536812101748442187987623285132795475661253593911757560537130762315388784541541372238259511054386127647971897104825979822909798032588397489963537436459039828872768397100367135097156241372985208906524290950335952974807169076681554655337759238606865943905143192209078219970246527837712686043994784079131371427115306857978472153350891745242797260335175052014889014959546876920027216871880664971396969116723898727687853417559948781592319325915765208527474127114944454326690179779460317026282352558307607612365533915658098350544479973739769770150625668689674171676414103278078085678741804280610799576335936066217926071925733840005239082379868914489987123119205806219826526746197824202386489568041610624535690481224928501117545749849938149457366873825973447778915205381284592759934407062398873047976620309562971879074457226823378965655780002230390104798530449275359626811883601357469322467570475182512909836380362439892254486343198777836702890971560841635605693087783692108940837278399763489167767859547962476950479555134210688230236420281130139264456686154601951245954996368280844357029746674743782012725511016126992037361323020889244001122848324356477112756875911141362286848575633970840886073498382743902840516712699464100277387810082296694592581895520141102836638137039949833188517028469760960460346709779121571597581410976091743191472703255417803672235098822284272846522602063668762745834886769441205998606430037000900677230850468048801758684541682717852385755717874107644908839429981425822077585250157004678762321771770252094018418382050766312617641457740182680822353316091161391510189300386989840145825069741869586702307488179274578687690943540104503516758508990388870269766928561730518059724354789094915081471669958153224395281507734097636471057308245353804957385117080508628381643541398224845788364864093155134081747968190836871627481258710409963308524588154782338024889371526799173142479030840661747593767163157995533790221381387890550648173685033733743113080209261561647778644360738606587899604395684491497549343158574715408189927960988348916158997790332457383136061646915106128928735722827128081198319951333107112408429630324360313880525940504971916775591173578020814511128617628267341995125218376821727447241807590819376238315807784142085095954514134836844563693880548539559253018083114397225079226687461841669275567393173036102075973594635105238726529892271317235019530435117405807918807336487092171288942934911581093763515832050547482955856339825542197359306638809280929117288905497288565678345258602435945237135663641176914900515199474560440657583362506056296081353303776219711065874173820359304655670309815569357910393886272519833792317556425385006640680516267341296155080417579572158817848622053018137184842249952356698797287049284328502430136186840288585498504213563416763997986211470154142404090120902403981139974720755257809252630122854889481645035003112591451929340520817501928574210516046909543818558558652744860017722944525909486142501977407628995020031092364668545007545197731116604063522592245871506582771519019895171549258897844717840997660641429375600171836090075100697566457384095632414454824936349410848461335810038340322697348457363569182886243677263501241096241238271248885024750787460819473903240140365224070849113683163353600938691662908862811494035515992789227728638128752294547756237339404090808621751065902961145582276153831708594192224997523002131005495039788628621142082593674528536387414545013192529856847006117473120254286313216430196290563148321421654055668167755577823362740520465682602298220645476781481092447341458884496760165583225181521821117459254586610755370761934180025548549340722559185066292811707295871340637110224179328462228264259045608518020933016719819082555941513006739832100859657176996889322493250898255302759337907713148618023557706605161680724867255775269064861127548909090983547741118101326362061252417978604784105855503680250030507825485218503547112707009573220013351395988285757638701418509756366109356501964700569101254355508398287648416888877174213277733791908474837712641389517528848200410925240541191909591030547506886605814764802764861939134568260304615357553637069365882335549363890602461523055385892445897951050623373493733999173888094792052343562211573350035102956325033352159591490788438989968946864735568529436104789800432618604137736367078423956055224922365740005503729902893538210508441095714605295773536522359619872703088612820605939595059689091189570627839219119388855936614028672249467711832976023843122651059452779047546661225931125830175276652468866519792964204716830052134490461276124894376369979429944602478145308440956829042502861748205605420460929575187011079092484220909390516464129093954433825089831538943904021478141449991300370528126460996559545588934635217441539150860785725913974797109547630428400298884266581738766200991914151421008857568776981008565491939710544594965586805444932430433770895364389757922427878395934771882995793501608630561831128197542346282506515579771180064824782847034518371519340006689269187286318104265858641784969129479945267257833231725410579096873854824600424319868095691449045579043027905370287518897814203760909770779404852073602407556103745226674149786681543640776813430561145426883257574418866643240661745160542029692954850930759026713153444486759927518617532198742800943966725362699472207894942164479827962946645159842430562250818648371118527891938471603637691952112641651155045783482866373546798732592192644368971581119256778591071817757649221540612953781221558310135847317114289946157442862558503605348915381427953500822063041370962893031891300433361460064037714002297355354903617128037638421666643470497081371434711293495761220693011017541024855388719948908915934872360225882038879028800480606135088319780650720764437323718724160247559155731469622507790521183162622441934926672973483972861584223128378721781204407497141745946413261524870107034157408601622776314174428334387261510293928508936303296907358932795760714853656996287834865715496751505149998217071724894050831974841854174326299980951386247057450172295375016730401632281511327209091234706309379123190667905981237222126832444476038284885766114840332550904339742851305348427583295079403416562365343303342812928767082242131430068226889045788521250093773324115805699708816086462983879252852668217132206950992784645938047786978342014435319420227049684577742033469045672742460822649019066843416706110650036119198732623891967053306881099350284471230222197651287894068739620628949953013950034630125912158577303319081730222033256177396547958192535173278334742673984877440883928511963945099015335343365535948049105596501686689395039213834434670141873903085895480773294896798933857368725083161125702459447615703797264475651382086365307486677261241412440683317291662439923529843526801448281583075365383360193480954503913206389620535020579478925606804124640387425867529555910933108571520443520919814214632589044731771970964855850074139547565053676607476190325875058555053594492117098577461319135317834491195683984762216408165560808490899067817197556067331060432896699738762378559049640221758714627332776871809396429471472629010100290092856356552009569910393320692423937635442266317563682489661836929159854534264775435811066542231967231695822477752695642249988711471222551154850411478419491665480644098946878812537361312973348722098401776539331554611872327637237133663894216435925158150001651596569462515467048039093313206261929430543598385737049564348182135232737870254890551709534503502176105874198678853085458499794643228214508093140789645117302161936192025567540326843277953764183203186413407286618034861257900412270498790295935542365329098753210851157964130104719609639922164923841071551193349603361672123645018913759398466310086143608312157264283740580188649740707755335706483254856551824290284848857357097570303272743772521634543243123075288181209764547530119329425841926372763568472398814345190427413554140492853289261813974292401677102128915769399466668430724732242641954318640445730436839758218220267384562957254895608080886075290905630477740550896632754743221557441265035110300028213305863812091096358331470393917899751733572286663327575976715805694153741470146957644566099878528462904153387469030316664102945197840775292144611973051486412940107428164813318800314508218849965902259366204965513182594964815681958689424517863518603439977517254637929510357292908475660247804616211239188340853331460746834305990515496957205099058310724984893459985088321167037467860694982763273177090628592905268653159121825080686139737586246619027720357649894532567707285680841115615933252117231976278684009285623915885739570696451474208183234935576239191414561080660637560752252320771563409476478232052286524419114642026675824170147807773090132596540628613642385785329111653398124623644338412055787867402017635390876596161329235319396236037275598446037444146996483172596216477515476841169338287945017675146930395209587293887881012568021305838849644595197507738199559194210763781303921603233384548295275606487236577866986973324992769910352272382620637012010819014656990164327240171428296423219925241847456331148663662514797094991942926689363259195012947559125844074752014507165575862830848552001556246863578689942628527580620735328680407750878781788549198252834415240384800373386681951707482277747795565347987250573929348413821710317066212843005486088231141357578442376409890901391931146236252204328738835749619529718068274284430803995416848518762192058226520355320087563388671141992209903527085272310723622596490342529079062781405945269342634996198237639255413435168653787114348820124565738048546402137469172189033328139580705185833006618028766363105056497544820172465336510556774249377791913584788067902098929762089259884296146378665655761543737798246710141273628245011822250122904419212897243933162850050892265727069971007512176596105924538702544361037761966391726928037984198760875297025888431559528809370920890091249595438334963025415072784523794859007616667914881052151133625730665490020775376676892325999458535068007431821395708271601094619737511233308846190153450353159679912998375672180269621472930378834774214535138812425066658279785830790260324223037440934836183218708353342238589261314989874291168290010827277880765004727576139136036702096060900794829204067873245495814427100971481782262597263124322209214846713495189240187434406536160991261754915374147864277883359316875334310501498707980113213317201679258310892239981872806476386446785379818895542144441431255191528086440671039307202037723667139821702343847592912426505050716414772259381870296505066089750561340150784163879471773439399437233491075975861695553760440592904008279079551017183697145954129024754031191955229493442709901264193447624419910688177890306011801891034525557576084245848355447360707757902620544135558480204035423820029960434336042478242208180039817898089584224916530837385408484095274776673973034626250514934907825289581185616621872669963922958090938733291201947809095425072185767156331121040340804087892989021267083830226105977435356677955042635135428194799934274604248980069865515932192804974161230511033911545686731555803608863871482672942779645281033703553261294682914048622783260702520297446475530586134481327482666542274526998564047809188432531919175911955551713332398932327617309713385941419477370612836356807275989696058015378883759834179656653100504706977334992777347128157092247523625314966765699648726383894163752999411419502658963186318839301614780174203728104474778124004453951386383703684285600272960989997762946602610045561448580018289457386532241731986253347162797674005034449400249906893215638733921694693873596547008091247996817528284726501341370899166377791889029691203634218082942366995574738068869864853933225652720201520644810239189644333798087744421665230067181120898794644008511587320956589385335045024502521223030174773697310319655143747676622316649600182811257074408363877802374607169748556021019677696863492560453329311412296335614201606708520740926688991183349632615856883353182391675981771558308098455727543400017920029280192235579849013381879757185046732735167500772180675863609003864174508345744422165591734942614409640423373500778611007848232785526788825994569383618082384078842984409865030462800666329694991157675870985291814835731581334651232269274237854751510696868324619721129055179249427451705830333950159108888444331478582901275398544907139594379273776655485502125790922895693629130403482435061388707214645488141203772846913707031926654149971010826676651745693548175979224443797415677981560035242693328294693820868446984529827484592788555202946377469270305954721136754011778903705838443245835059256039974589592522317079127899760693999525628521214645781747741077422697045868858209894086176547683039501930763103632322891910318994603115087194603023742874475655775799514377971813059196122084565387206808758628740999034383308020427583528179876182920615678789747271793542766427809810365302292538521646681477668151216452378194795373050525120720695499885610269814396137246918200677141791429140288584171576045558879265744563476501036975912090064167912105073875000436247380254451542232119602735562199923113895135271845553739809882376975122520370154915705626943280204633047279608859554708634257929657823726851652598117107898535662578352846418001905199856271049542818393171545214611230050316230022276840260881175219416409789968594089066726168924809421194355523628839098619221175349450379101628749985527190823577729350023268518995368249218801137897110296156169538786284635780493166578459618876034732620193168470030391761836547195397389954683219364407350902072965286979248490065038105810352230798517004110983197209251481664848552214277807630214187977701407240554294523005729413569683429346432510268289694025928957745262114429000205032546732455066333255447782766258690732235002495907821668636333565396362791924628459728562291008017385294156939283570422853987376012446614560851333823005623758335523713816053730183608380719640355567754270136079619344250098465567992833957082714184531849466894552163015755599233029106234601587958508622018386144874579477596597015628106872401896950454937974149127462341498875627608686929850925798348126777645104037618720138776947210551255393586110289981056020655640517183941474004339470214899672119625549380623644247255352414634430080152035256599728973480641856860027394503893328903038932088944435022787216690362424208444399025851225539811037037353210782416699330124061483712584453497194652401352552576527501520200416242782732823327133789419373281603120539892188276072681351651409935530480095324072567578274948497283896815990940923715666337002250881122234095276642025795646221902904100309766849273610650135735779057302824584837757589610587436812047639076923868794702756429549494305061426169283208124458946359927967684064952023729393458135779660477567275273980070221519519299807732291956826718244746384707889694832339448561085362366621549218175766285080745457008809888716793931637240512459901430118754776717724945063296768440849388440933457792317651755420747384062984118301827951701739493244723220997265643791849193945309266715490301537521896487936329499220746199855345408202895857596772542676173679726747478108749954715334563917640888543241971903521484682758666406726865140713871306350419184019041156996003955385167895518501554828403761244116183174198725101280591423162740906039996717552615098037149373809359681451595013130607125949918360371805516570208782882549958105265032141614548176818885062789006508141267598038626066845241699376110221884749698594379310082244791406088869116691119752524526522329072720817731732627545695887213108661395346932830332472086566245146814860599209793956306299255851727760438060765956595735690645759072590941282815881453270883302175680862285208277671415682901995155295827717719462905438371242865001204059734982375745962973820776762087725315164006884609495430812336741251371049674591388314135556449031458126026273566857686280854528327192819148686546981008208378150766959950656859987082407832530447481522582273644766092417692368027709972413242862511631519877871593287650203599181668779475788169326165554317113078135798114347987140479737551903578865508137081672282123279918917696839106744084936646769911965759740780331561830901950387272657647000488009892700039627337776985153181366996668087498165755546056921823216316406396554436578956470870760498344867641144034628556009729138499977829252113041886921436241223375809126550359192234323126505607967299340260767312860654698444366356896614243246648988858606707547320052953170960854422714611438315087816659001947023633862648844670581155734829888834995178730226377561596592213608628524361485421836411627750958621766718944843206631396781024601782590120559240375276164418838585666732001852148131154911202372083610819105040971583913088806082285268056823174691818685651732979655370509406656272101740226942437301756987542631094847544442754738172649727437204992488441740332638669538708091149089620160835241700492438239810012214936010704645662836013418612829476698176661908451848055537272008206825215600312875189912309101602379925345244165102525304739668386469834888150981423863650294028700106949160233406415508342656738731442877469275989326370013173508132380055752573640811459770008867989580014158590108135497383017263220934172667700155074775717039581605626074378427383484981656196336190685786753075440490343022114396634341673916319312167078995563167552991514348678455589754959184748834692067273069832004048174773934539241336089301692092998003460796929308027542064163864495068715621937376016925308285825233841995822515905394304494111867226160241185884333345223705028154789208780312668526387208473356853363093521267794819311636039115757051448727911928456561843306560941553289386725948033926273896455310623740096087470183822905307055153037185537626004645062340252519261057907344185675315208148632506592058813653825811907770015117924138585962355348515915649524751604443714289176933026002896574322906609414026729334782535321294940922497172972625630906691801035609083220690707528876985150660552308579761511978195336227111489460126865971847123436882899685015104717287767464460906267822778236478781685111840602500890136756603289158405651364132062308343452439585647308372319203615872916103324970683572530064481062682028027294036259226894058126998341795938833033946270247047853711934970343968179085277936138244466384700163991115070061419805646449349244805550672020395889458521477426315112051785212509054960293230169146205582255420032463890465371887243203216770420314263734987523956008185398359770161397797435303922154857068188511529617511270335377309631673170967128607901958415038906740727559558059977857745479483906295826003640824862768685229578825907889537300295442233935275045673982136027964499704908526124818345657089623434947540079565843251502810441807234832800873240935603955089853042054824692004103152385181221575356454467736574837597888319570638171389976725553517834902545971013827911292424247713391969897645237415258773135695928471181786828903327001112331855973886568592579731370494403105097477534677438364187531856753332648123633420591444539804161673170944653230172506820144064697894458101746565617945945676194090582137788880126255694963466689896877438016194641846180374687586916694801123905069785770958775901127299716129687384160576088325419802985214845946598003414361142502591018064451881649233178598743286025730116500111097791749922913036109531345558166621702753137360260659472177554548610988132740685184926233050505935634738119961248731508200219867896497072963338740130867965896142762376242205781595657550145172384684735198663493884420792216772782532328736024415509045276447084538596845879006181174092308008921127567943283217387453686245616171172202000416356994475632684032181966594261039858480340145189798523303845195606220742065493148837473812180577222882862072218204389395615021917278412878406686434358593369988947839046670486420729132783863835863761550459574265532755610296739266246973257447463642268357604362025490300111511440559875430879900863479387609444522852136021722200347575727756391458856116898140467050970869848918439101065381201209032875587545357349604911542423389349620337987587796783145855351132838955797792188211097224662675477866020710754327942252167657608718328305446455756281736762878428985923804640168010308519481629104349541332536284065209654017499873961911665589659510295780513854404960682974864661468773576539882831738543173905087556105859575862440964374123633740921634127394769765268438025791543094940280072669304124786512141943087236414286672569342249555139047396202887705244451920630321819847341773297261176601727078992988230285409405370050329639986035845948900645733659557531545376170441421624470726340489558123889232740927962534791354957958442144257124752423455302538906542875407997496400172426711029868082536951403943576678652589633743139148735490907556712571029845961478186968155490911221452078714992441485424514029658788514400533031990188723010947185946717293530074526622570324251947464156751865903215072331773419022862306741072065960930213016875535319140180537662848589495002521641778266692708908278115014360447033660417559045530137711881375617293248728396506649627520395981112846444033445438703700594973781782862732239349538949189745187148831080571761211991638505593228311240374659991971193327848338777274630810396097618151132914342197974863177896399453576731729669813406332085575910532503072500748219573905301554898859083125835470076250317797067580335901520157931475635642754283249363932953905604187053437715557768726784023067571851700219514661816026864370974119425478960834954436603426234826354899672082676340942781913818616925824237028655184989577398775906676857729587748731655174204036477839273145425085030097605146642001650350830776765050842483403799248016608145277733065721619224437608898867023506072934886031512667854912420298502427404097329765004111003979371651347125893249387223864928221453621911793937771668737054292617812242625063351637278280430922422581430019433801344929630107656756946494307259509317299334362695008184236048657549686754437081363158208184416901769253494550888839345874305122440069598063112790270257289273303904433115752709394425415216380124837659916109977533809717949508598505795030360554700665157548914877277745651900304335680017995465210804579849422080105556832684520053407114963367917671600780499999277014374047476928701535804834893500854665258868814961734718257097998506742455439512576377523013362106379041969062467930279153182425929546108294345171827245511649690437757742985455076831281183234460863855092182987722500690436389746005705206218720464277370282802536332588508898960265130580902139759426812723675139596763259573963400742063685676038374909455884177751547204990505891743119851238770462421396752543248091861720162841805211855446941219545448074638488366045144733614283744896770487071348708327672373824920586300374338592188283343776213694807048527504140925315074496519801184292457805358689133222410544404176588242356599582116037320422809816786492281152203953150409939324127870317529192681296037356850936671003283127749907247698538809332139644637628554401081860471925820470670345954623625442412061806588985009452502236913581251656185049051405397619740758866747941354303435508330611659924194377846556944284620268704191607484661165087459741882512295474357464478912823168120612451701388467136627206667711369825069333020645885176175186775643908542483894403137090366370221201460305500849614331442757012681488213276455861488343420206949671355097714129888729567200106425734594930163266865720847924217930217937046162125023282116502732377604632826590551286627598366047576381696115630067634170036089062245710812722000590123596284160717871941674751005542320591458717448400391624688215916521296551948638060733787410945204018963914137253035129580398766807068324723497454820593563696207982144127886873472931628653731975533500727071864033034858228525030317651406650943345410625121469200342219942139125235163101118054079760281387259205948117330137111407518502492861155597927210421619480106677598096753876453588677364912073262845039441678350119866718168780951886008633283476338887765342567434055548990691369998659426856509983670594864330708772055089389388711437426552822878422355074866115946153814444199675781627917122998931871130054174587389753146253877138058107107041908248971346846884986620377251418696636187196367703695660854248509990919039784737356991316963431344667573940037338174078205357121760470010791471234144071703869853163119645792339455749640956947938652163548119687737588737464873817574115051614188613338925344736957102901507514170504032738760706661560080504834475756971324595239726968490148623355740512211321544076881277105104843466541101164887067367838428277861908266528729934198336444157367079841069903384772684823932295265483284289745163554080730103440531578590613253101551736776200846670970392968107918986121721491101680840033312529468769812683703360297448657721750472807037605501242735982660717219678201416241406371587301549296338283082468743702888369178014605709432563175734847509886913615712390740082591296152138372597251727640192791875090298949602831324900956817547164929557276120917731264512129080185795949657086177289975103500915260957225975001502609882985081173455785279314929534663108144415206845143864087479311601465435859529314446432849193672278930951120735030462568973329528570823023184672472163868921721050316093118097351671990716424249102670304004804744940055769518445357611494811007278732320799876248905158974109408997108203378047688805523572456281325396661350314710206842853346004053954418142061006346814630860114380910321002891474177971943181298309079906922927000304878272350919384164063688442903252192666838406292669736505794907332423688515798120315428025579488265417544627537373231237973102494946997125550057071803218678215846390920354032219703636705201951117293534128029589573167272401187160154538899740903740206129149046851871559605204762661783166277789149632131846715674604614967339091479903880447269662771030687696516505691059467343345505608332690907706742260065101018326818229423804464559075225091571258401565559775177756069174939136017525334964438533879978395458205909388322890241964178902307454841233649659730007191608231101610023076273262465958430044709889056250215131220086512765350333587883250912797072213046711133535201940731254288860958808136307964190251810040890503526993300806230275584764369711585427182830948699443233026324851795662510125691121490004529766461020463711507467332270576024945061771743017447267352032442985116761397434274104950417389250987427217596761761773223509478071541716595817878393818561326902823733915503219804064232231681395869670288741762867047767188945413012798813781063211141141066851425252879018918182909763410476292310668141494142379325440209924442193724289153603204347620853598090689901779715153611822062710445377137885998045754353213938072906503153783850737182460249683751726114176271318616456515934474598986208208753757671396589749944015845706245173145954287852299762920660269913206846081896766527607253314732394504390972907261735641162502667980410247609567294655867032554644947816504575935159552248550303376869529808687154575580502169115437900382466840755352415773066394868546635683496854642128800080837398158752301503054511134390645978623008648375131033990941434714263313037270721365949168078807540897007548343531500570423162006778958723870744599042766495698623785415503727154623981006003713039587951555277172170936010846200735449477852975056728306950811015510256077239205622758720420975616761638640565026528100001462863349707206476932016949630625416351220765125312717596044119676779773926974275725253515554075782816192680649116771286078139649766236230709656117124452668905529413099637028736660772923841635376624815594321167858686468257824598266653600615945124516156545742874681091391558288359688262351652530273505699223638430662774860769575657558041493604833339574785599059872165565810577074180923601706491395619826660834012180237428545419340570126666520205925269926915653170012016892174360726670523417424625694301558896695283992236475144834209338610909191338325709521992726213833565938578447496865530309017333649544300289627251718129327742535139304164645668586468542311236836582200313450954711414045701573897142549640275198242473483323220741198440998671583169880406399766116246491439086063026669038040776813942415478098725012450984402621908455610937044492768641495384850461196416858165435848195820865819426814161186780542520342187634440842964478499937351074263061249905823298626029981751187813240390117624418171619309501898006156100841408756091248206931967046568357809360263246057313968383747287120921737134538023535177538728437150264942832134677862083777441070463788783903983250117802898849889231902238391689968862138255377568742287405691844642851368966090296793866963249315115992961829595004707569186356934408841672362766007704096118075390559150829444618378670171986565218228780175976458655425174495654353765395990224057173311540899397857529402667556520394323249848506691207806117319278210354965968609572194129092987278709851131088181689152783627722219008354088872145424531097824495421578476077678255908928873360156317836082938073910832280735500975018235087520811474385998729340803187719943241742483588566262637646774813828244633969810454683104283091837333179470814718195441558745162130302732971481825477468464738922645279603718137886173093651972869630990448086496877151205425621201487137245400651851847377143360220841251798818632296475158828808549891286728482100227911442483037709147426970308202009188158554802245588693138368939076223144010188604361616766729484337203182090993515518038044033221889168329871091476541924816129265629079770621063534435352394959412494506183054598610802384811031275615198214354140759318578531706385999577627410454917453293507955089218448122516437973892413129806120757395547334724747221193764718740577173146755085327239426203359267562133351924038919563478525364899663534019863339118419113266564491187300690257385110305741061039831079685341091172331978389342542105477753800774883657194415488427356419271803273383164975278645326948109141144942172261731515254261912748589285171106375294593744956351811726525961564928578433520432035521245043382971195909255274214876626242880919692620341950972800733555445473203589927354993441921179259924715767281280416261729774238243489503720729078862886585154022061922734666509678394378923594581829403523725605992938273276852288507488111016622054296899985526571354878486192620102398838302758853161028494980626561326723945316039646055736200321194723011206135176474886894700687905774560246769484206856137611441489796661134942741928975718828171285583788668883949126804802125598223252004932273510174440664882969372597661719963429717515507251254572882171333864461993103950653204134740189889082389243874499598877889327928117726306947473006023638060997997566024330112869978808403392827047486612973559776328812514704708673418542956955081806887377925247941857688326126151425112924086831946980447060806223634093317166502128304886758423331865022403420613299859178595693776298988210837447493976174948231356354878035020548429181553363044966493739879023069732805439867335603238032310807625758439800399596971621206998971623099966114770464370047683579888066903553181763214291438033546506612855959912500284084351688870862592607553831182966980053825728142386397526255717409889017335128416223930423247053160487365604758996191481375135226253292259812467775621508904314886203530072021893871846477830975621254533931222546110016702279919980663072201663935070869880457324357237160017866109289533466029095304191585746206233174721330602401988475765886687156556766486996555374528850221696963090852392900348941204618433469231845465122446239001335686991077801044434796645107567786380002454460722522964039633994404850503292002206015185249592114802596746323767007516127136751484040262319581867233069800475759794664957776697858553722847273602050347084126647142651373197014216632380384623582096523522944550133911821830564746282870637672676951467233798713441315947913676612659094795647196078470526954865721674080618498720253601347686491926633721875475613218567253187231029743223003890666037327357870463405326533048990787214105298792883646962745036543982339810046360741288691476001493134079624016486885744323338429255749299923527143668855200935794750143656453516379396809364556472192207507624182615902311686438001291953745772774157758428050027118725664576073100943011126368815804819841372352394363951043146173046346636731582400452496681287824042195826600635274433334297124363882839949517057523863156234732660277187962060498581855787906052398000241568318422181637593529467087019220268846900470947839813536686024780662540922375446165266704949573564468235723698336834709022440298225420573747318915938314935904971067267928178202825144317052688798759797425795891696110573483393853927405393054492733069547286579897769232320009815008068684429444121128098041077659022684016001249774403706419147848264321849319810313142724890427411313294090694468118995948008760668687830778873373397934016818606155416771189175964797052233942318680937426681724061500035844561008928754499606322170074757752076848058885884801802087915339770176630714336834594841759573084150833339150592139187645833285294353321163569141327452012169897589530684840543553419839519588495337266578232300094190114256727287683021514198118043589018586868033480860015864645257772850521988917178665616214375558222714112109971621515576715761634540976963096774782573020401956187788416324750509901260735048134828826301618293414168691684649821261899970577417325784970530097400654461883872454234297826456682734769838425713212706405010629055812191974945317822822784722955574315871612184744366494054979955447120945436876612172246927341192549447479412247718195744704761732843455979591709938670185001692022188135917586299114305289225315270916400195727028477711568450628676540848893080525963448404431523216062021780771352518800716548773789019176020739910693578213087599995877148006967776645853901399179264458015429506723363112139404837402538530576044601042885049254498671986224040101329662475288472345699777670782960616450127675937846119990407632431049195133614653675496358923210093698726886659114419541861715672878810660233665598892194269552841724084884923294821029648195590283729931998562769194364777483624908539433209075332269038021899302779467081127810516742569816244166307323319562735793529226451803183910168770848154610388415993490612991100515980630396590841466555741810111301716415176671435022925235339320420768076613401113769874630600084987155894893965412632633366900891257985930642532516625277868670827298800300458730565632242883004654362958429400402180416489964008237543054978291178682032563777469504026420404542145110207402660142447380023811515516272420144201935186835740463868966581046041416477015241245794412935046119633965481714066710032826044233503197272563474958470344984880410091507276920170163481037125112119731407642562605518742106793397311888751890484803314159044212095688382362051318091930311020784132689298272683543819120669067647021943342334490197416715343966273754577870402822475327275414384679317666850492109131239734036505497726788035163684640379600819162212091921373665929622065402052681653356948782812141003557841592306829687392387388649592909904681310276617456811269906285693215199315855010016031454419633386630652187567461217696231040208630055675780107994686662792764564183347997576443871147918305475641820801268619292030464226142941667274066958969940758154836152908273965945448531864582752200998153761366728963705262284091195124158110686104863814819028052273440075443969111356937815991170842005053288953551759733968624800768674705468361915884170353255398413369414846108028441062188252101156442200198361984883764485432426655216544226284079749929362430921121060078617157402999813586950902249427544701259078070904891932145222917492608340108089585062334478225679171050745481224114896759892095446298706016498816297227568595987519384740671125669600273512679458244524389400148183722271360285402776664094957754717149685775636151082344021914659023141013123131421152509889008703781767411044779838923629838310698436728390544338939839189738991811471643788105640448813362538528404524843075605199381071409606230833599410118626116707925230328018494403581358072656609794023318888662837587232117969715598557092050453626607019786739317833497576410866985263068528778680752874445017299159175506812329786782858447579137378912381122573703549357077702810604680355482497283263773087276307049570614583281481414236098939268005741011027947280412701047647065187891834963269743503127852992282114188252702231365813033777331881396163049595495821413465979318850864740460967504423895150985718124353024601281684735894830334240884190823972671203322936529893799912917560585432781374424696867486825766055094601374816227665190742278611352396270496703313355061141987722846683602405202928324705516740150947051965963993137839143040482832879966877459793396337467398906156032723900820002058886635093791541991660343162315702214960705511373237505317571384015129937036752922336823686731596528180845449563847802093315091381681204596116910399633125662570496563085978202739550362804093177649943407164903858868765150028956930768089876175240518308277575181719077546470636478425097389928271344438067962223428475437115005426294220848691567018931008480728539699743036575416180420746546609263653037798911552276755158303453860564802783978701201130633122198781039774688894607960056550481479300252729813721515991521593360283879142929035775128167464547679963113343387628580903018166355010179645728405773146292623339366598147724536365989624124133684588139397087215289840130787615891929753415745767737517588691206262338288382650131023436521565634305630618744949161700482367893389446136469933118844561699865509773621396365845275488276011862807794787586625853416595580605280597614041549285128339477028922440333335202192159901975676490932615118293641271775654901506823348173079716699789439658435158391866069299134624944360496017729557944389981658720540121029259108449132482641930953038559178546831524640495848439151908823613763671886370743165537814624947254005634350627169711968514437409948005241072923500502121109648728791119213807154197859944933097236117706145403650364585846216007392383710580425635179151409440845975766684082365423140932513909836291227233124457088341605807487906834442349495247035748821172561723716483161051785014912231635168451868209087913341009461868009019176582661430276027155414828766837343093810724414702771569080722630667659762443372339961160059787764764118572183725232848844268283482093554731198447483523052996305815035297369620357302753419718766689919767439266466928990329877611229273050604082593251668417383550804734328770261217728997546231861838954815251364903302083247708099197335313967152283766035616658565211537219915468770391626755293167229798132852155653462132484797375540779857932291719492028250812130488347928939299594619191155832405036862100299064229451831180238939141762857301667850885341930057556157866670169546651905196480199775880471915143165469767174673346424948518544714468888171005242998368500283925478988153683496722462426188837878685037974078075796910709830970510236945514349566245772117156432802822879629960941787579065647757888329355172205108356485834149304353329978921921474261544366633122526366155291281130164465806633776218991352537017250453408363182443822972478143654119861014254470391753743306206292051952186932527720464000031515777381271206493127759835359646803982983834378776575464289918146409711728749455727560164293793587040084403587034056435668052580541785049795468387920094603891093585734621049139925735714226446650302824251733284938812615674994092807638967534254156671322583125456221193628351033208826515325861111523101187886690245785884936518055005621798636530926128307698799882081391005610949294030919820022051262516165378454512776097948853604742739596040223549837499816352121721011520929348826205274570864667150619147168774606193260978040356747641814170621071126540289734999822723148839193101383722647011898755890321240407018503107847863206570643765055991216934740370490711808329230044950019722168741266591762796240420912511577577591386142510424997568817665472518770241108355878550737471009579531536004764298590449316685796894413956604583817166494259236390085722543312213076202804535652435593082197982437374883433535683960784277480433207124754814773940292833395065744377043599461916378143447695341578628621756702366070165177642383116728693827240406435786948451051718233423068826140435175415528485476436052389703519672620050178698384218464824043386743601969347161952481676726193291272513602830694324370203784330577244103136014627634634666946535927828951398114809503658225463051131726298833024305772286521450308506130587538053882181485564011254252157754197165060404437608351046926703784236319735993850822588434585418845866052026366263869564046238986324788294445843660139133048488405452865185933720787524714024801975668964304729078617854111832266780553385882794586023521401423475680355916882904258798690693771078978399327428768650816324027746775458557898123690039900409947089961867298793841137836577084799787257765775858704404303850566941499755097175090900694827214549069033080589974197815359027123923983315342856969780104210285138669491047890204628090527132317315732022575531290451380812918260807849683740180512683728752694467954574291657006549056386698090258637303800329282113036534079640046538518374628595676302884765403437495983095162191925893298318143221741663367785509939407914072909842402468093282615057888454486839665797349219705424910042036215671347756991669032188138513773257744589358313377553210479471371552492303341193600080130638323575228262069127521758575518817593836340547060737956355205391588076739583073349419872331093604306786525370342018370061953736671480625157106364617594502247835350074242399284369913560461766046370533225117500366578855782345752675750436440018027309875518718213908133650685105836885952790389116549377109762953663907546865333061927889604318154838780783775997614067820321461470673798109947067693397331310446904389748586707732117227078787675199768337299439223434784851354133240956342143291562984127120520616657929617844350358404302478228231518816986109915495367736238316082702830392691107081086725810939380636952873310203981418618272190573205586366183806563260625224792098148366485211290066594090636400270258697238256426603701209079352484444536046314017796913079719943958732840357779657986330775511574530700465121925895232733305856738360073471939025564425479435614942935454344633036116906882573974811529777257583576389410720713272739844024765150164155466947830423227407038027526463257408761315435071314448040691728776555218332050234764757116665977798906155659615325367288701591630276075665246629900650851094790908763366500045951535907553953739055649659214138427696068105413179096789461566290315257734145904661369687319182980140457473148564595949249216790977075454371495631827151855178416591490647487134954042315348512120633951719256383247980010438838626186018823430371939772432024044525325310833981506780737134336749456069310615754743861681626150790298978456323979959378329049158048246212826838944792206802769917816461323164837363231969745701320950489129117322622873200560988523866829554437333231886540367280627365078960925745835601476692001382254481973323124664669127316916018416743710756508862578054379743640798992941562151977915436110811529955520069286413129213623031958175656028261323075567254700719744376076267147916857229691368739987361620048973483068288816046025197208513458582708444301014857924462406407804015196905523254243983404200403460288143845745175136195225152404189325078527726110423067925483700317242638135698934757030271140199954982892306014242223501517944950761854199111404077258248911552738841202149070080922379568704432112628431376871144684232748013514860520113252926226575523501757259666788725073887520176169949340779430564837555912142343482434770290419283117089056430392506136948841236476448373074592335901306594198034095415212703125257132428557133347488227027625466526363927767424393500728034261344307882774248392294275951136381143314143349953240535007979505131861667610502433300274447100539151358548602805173159775845757639416367564690823319365155504821159479423603113701025154083656187686532581867076532674094638188109228465225407483552493123756528666484944041461630476106033573387224827695757574459858643604529491735589119123074972950545343012208155356073023535798874134236456086015504336213491919056786675168271355555927044775000213867209688129978694586574368700005271470895072064299464105434787155529866809650503929423871045020198320360923208142490241696983208997369781734000696470915923574946726987200827959385922831355688874363091642316369633334849460231928176216398891374180816950867828612354597484895222802032998414824984892233743228920954966697803535978451276679952337501356492903068065698559146214308403082030352730010875811830899784300401974027871556984448891412433449906010572277356937751611149834022944445388830695239607372196731322291627029205935379501893663794666700576251346149624703539056756315378748162686362776142255021687658194132176157256236971662784894812663811871821167422146928061870669233235261615473584511831425100112580685492631105811834062547802956101955764951686527799637156857920258305477765171833596507000659100601072370071095947752771597782858314159323881977426098348846411658726966203937757757170216182605818993438212057376267392549800039700170873579933323358013619181195892909426816525349231593251089723693836239032449804315730375500511342223291447366124006068258937651703101769851644611150818587055577923772480520396042119756820490621495133003079886282477935824558560229485472564869527703083684589757031181146215997994011171502753845086231374874063446269973693044130786759179864508202185443237811104251023019132352271140133997828800416162160476296153594722430036750053666592068001537848634116850241887614423512931726927077124553116773939127797365391073603955296825712720603594428358567201794443639374956111437131479412479474340926587446814704697729617278844547529307765643861405839620361966618742838355694402181359025417856065079434406360769670502714189626961880468335472155235110844953805799224283981009090818739281260364464255039998801015798314290814820744240663384988843166587034836909491984432087682505403403394419741198798452751083443906840504927020684006985948988198798686199210493827777510883414629237292700563274818235868807995779551217106008733232754127807657150285609681252480524336636630113331475746717808119344358758836058390909740076468617557266451651883707875051594640933984088168022936848779922442288043891373257827113706109984729703587524582323838101079259015356240830019812240020343339267828650509162295086629351270560287595180539111931844920697852045080102794150383811272039639854447295102026128089850629117399427649489721706988713736710297288989594513607486222948321143294126469515676521544544933325246153931253989618819492016380364974786188906546193453794479959838716337932029333752590147574400147402503075906650172074603902146584859894327770596437768451344655443792824874429958134180686945156724064427573352118604594589349390968725524286278598871440346772337663787705840929355333349986874395537136087583080056355779359223812808643333300054364734094955345000483306909705061693877587152023006272089850417430776999809561540201128465649008147748627630479413560522436128398383239821829097406728006977141610495519908032200238632555781167639697926661738559422626114143314524769011203959425141720714841115892152011669060180971591866875551573602572132990786217891496916942337189020295223869167155785997687368805970341136449619517592865597652176092616690412934874865686415502763703039945182572471144650880586573212439574062200501124550632441251848563501114890975813180097461470732578679714017438027963946563058638026825019096565577179347019042554340141208243548756065115543724352933394944272417971134683133878841277545563162647585951895858617729776549485567990925719201278368819298867134736059329051526526114709312139458589067622006231097756256032923709034903755633076701610354139142397656134092577171641316234059986822044053249339671180698430229620407738181082607729246473278522252818637958569980101011584222599508591209720679555442317280411203362430785036825455887183678195784923539328649927114613334614925480636548253970629977273002432589356466139375013659690602913424053181178225668787143738292261728007783925150996445216325053251020737029925501736002818926539365486861274545021224948568788822420358635938478613464222594838948993226101364324180069862968225284292694421677826265353086318912311675556292149816754446034612140250933748978403206230371186373720650874432222380692485023305015218566014403028316800910234708351654224364442096802825864864305059343260816884663497952613552252047983642461278368119595362969935498926495951544327870234343890053696380329848372867008587650925446795167435845581226064860640539549731618749309868521013616105649246454076243603577622938876092685622442837471315047998100038947426225327775914623003818616384005939077587007385186080226576099285726705211656449054043301938258055896740834321262954267378859992981240771155801235904726462897431029739151112780690843345315622711520853895394330656507601659623340938901139118719304170761221258230550023926046667547562297516024159437134623279226417389077435098245050012858879301051326953413747401462247308788351055520202160653991838946540272337255651233443113528267902973277964358078200665450186411716177354032276735323931376204297762212154635853747164499374496967234529945106105973022585406181949045496433196182265104727787666353931193825310373459277344259581468930629499115204596686349459509677996098382825168587719998081626455441224333015045670382324307706814611629661701403108731599092696593164203911550845166292785917184662965225097249704783066717847739545861146470703793849187238551010128205872416172904538182289940983374449740210732111687393601793682372331427493429413503242366467981249601114646336401393093476990292508243840902862667248020324978176338311703480171599644950931298350726317139874624047250231982919337378942289160924685978680961257544276896796113615489410184386174287359471980996220023683543273761500642531764681383625467084337722449702487982784648668458084125448887877228245738715903301287177259652151713193758815188758443484620013533734677482104249426980378969601225494177596536964361008015411488605722292700034437104982782820357966982125510896581492571245891531468064022448314330762534601869174349598035945446434761386567563987670653555055950280100364649693783150144751381011495011155113639728219713908999883116562046174818145465891632018053459263202469332132482368500082931987650493259749667190540363940887013365884933891764490882828225369416346047065530697050417383258047080648630359781164704665708262304980394925291446921789185752043580699502949692533955392268996230356464960614518330883186330405438371875724977656385892348515191701149610693316576211495756906346473327546964901867467436120451098476118028864747651576924628328817620965477361651924647520278241093731068713521991024827639267538042734846887450283558834227105764540466064935302116536950489293134256692693145818927541989636441275596167918462748653084013677621733907269362993926115807842812482453140225699490060007680915117560113647268354394725435407501265039711310281712356251310118175971116774052535329468091192094499057299201719040841892337277629290140408205044339925327818765248553074307553274945282858610058176570392870801191337446837054672979583774527971166420210443353068618580362406283412330825670450618499600208257382576042879500228338776218146829565922573958350708486629376618188395305333720659012714976777407427486488638566016479841066519531216185353229067641217670089924767719554589150567633537497354786776797601420028221358088744386521683432459652216462822189136695878819414688441607224755238758365336361326091424535866579515546215052086723509081506155007794299433130625755670012260769802364346426632027530405529836800221233826862637620736204002101751991670455723341934545746280273208157739736678922258265857494831078592261048054963353785015182886087489032802975358210650795147770953990609349172093069050601004775407038409847153748744076170425830180102825760435151097683889348963500843060791341155676357820276442593189484463620085603452743652771845192474224271134147116799810025278710122115016558191924369038124269171623648482940626248475009368071363276739068028080493654084260932933301447440929337769510437023290022064863682607680471842892625271341043786087895740476380956982534824870882312813701651226140843477402852113195859914849546324861261537803797308352026449033044490483260020257094620728984201271795696723132350402436762203612642903722569138675164220116346302557921038752608333255731615697009162306360900673387830550033199672630872826622188581391096255133439698042246969846921587658425210736091344063325566344810676863323436250430373939672671122032379832051512160410638454091427195456234116197660734379452812688101037094713476293637165210544477097566547140318462840240530551476400041728954709707463708010926322618118386069736839965855164208703962675173781103615691955043435933055499913350124235796919753582902813443276474087653360633072799276269099877615634791083195270574734644667496239013954768298232670828323146817719302709394147400292782268879087693485292257432594887417657163433600343585688278160078342659157784968998787626359537720458747813522341614042555229539561681557426809929234675772738171784828687021365491197591161298027399366924254294361854791738915456010614894276195981295673782251313385949110880405310679867652120186526766694050851946530290431505656507499985657889832007522639833213846533393640832033347882604299653930801370813561056254469679476094672830469406948185176133268169423917342638220978804777857066824615794379778571101936655433438010539815030814026210610860840312230219429644000684740101199521877155358590628704603873817513983081257290522536831006983290900647162296243167002680538705046154989687371754366252948411975954870796201347236159468285507246313453648896029507199448902731037760666737219669251323830547497669541043641245423532771493918035781592787290092028177739645159341218392145131811570582209720296136532270368186823458710749323943775517651266996283292648662386467145500192057798617662568057929993082918693986273785829778299399597547936797027046750920107257961851112428947360379308353591879657234180493393810676262954521904379560393852643451482009748899616019028822693683693366526623861960226641279944561810826760584926688136247434222840974180759601618020659182597013224644823338079989803639305957380609832288603075350466648949457972862433336789825993111434653361327742361397879121837001937525978370043961845576978378511038069780143442803247512032410896257065510471511330657243286572141735013293715566708493703280233569499148563438900887230427992593773224731152826174259494236850849750105531722164029148260229459580714215200064987197252748378276982320544428586718170306665741454044971284101733187075337204667589210983661312668065652944058919541992553053790929127276568794766307498726626600160580305766762099437305300653124779661260713430544550564865583803908448848425139018754213513852414472585330929309507854274000336096870783764178834174316678642908481618931949113807638369108247772820273760791921752910295683243928317638801017496269470439777555744933632827815888302813804159215396320040005552961198845765953811471481868939394811333018043619624680089745766486633666743794858498404593282701465348774940714876702677049160863180582541033856677766119625278522766360635503901750206512076009050911017719055322301415186452156720249343089075331506443430200459558074874051731610442015082901015680842474636125653815767453548490185616270864393645549987626225881441158644575986092574442177276225009355781023246413334961461052706261757360565074556315531691345180844110417028463145253023159356258120103337764743343854720072450234775102140952050031417361531983399859863185916496292913927714977186431726593322562353637200946982262896502686131370902879890279143589239077428358732323467314127324667640609040334986996588733276849001542586071557425517878715536259932683317977329731547753845740459225300145497379644734681458714396702496467794189501727018511432384627297016045945817579737396013962812487931961541136278225152341561788909112841169775133823668681053885246056650743067587115088184725846402186677135228382100075263670857820559419254809093792024683520278309797117073261456942685938598398642944546406609518643825085098202684840308387623286704096507764487603616544441719082845753267521306678653997943657487999334036343761229757959109209568291875777295841935764716381049050391719308155227065929638706298170246121334591271397991199046198552277536275693319746809387189869803187959247196855927946125137938067626732759947775199895504876603018479372919903919085298109126132175952384235527375733656506023243238760680784807489997251405103911569296493144958612034966702800872395017920095534223652716860718512142267156879101072668083963888866560193598117443262189846160137914607143270266517774288810754075794809514957112500415526236628523677030699380188421728338953357375622350755067527102346415587427156564395371315555160512055180337396168826020442505994986139823737940837383091157551474106455357829495330714755954407935378690376794705826505884745870589299075136945031314486217702397557789572593776967543361824929442049222891380770791699247518851173185649850611562247687251566926036442175920142796146061423335584288521631918604717187214594934190217327116811926195418064881406825805215482157635893031012627007870636789545130816194388357339701541445120136924038768521922446920538136317703833528977906119989526295396985301339734040190857628151035668532949833002581364926724185137828566710533573828949254982432231346449595068667685911750808012640199280658529567826156496431347571302717925608421165513434790443255194753134692771465966063789359101316127394616511964831487694794528242261727392118370620598282448355996975674624760625395231314017920687521037050464479145735449728392566107375241933979060555141861911789330707989918486720757527015381378893596959811181431803630423236524484596612709183088880035251032386801675775493996902088951632636225996809783761211327022425921131388300278542005377907603853029354921440494254471981334208361880016810501978558255800606414796385655665282846698685735149929354002915300080761852086776333771233195533116337481722586828257558671902453670403695297212444393779120162785681177295763626011625819903032563192884018585280003964644978020160264433076670546038486038679473871474190075277111799207155508050503750388842658957213358452207023297517119066448692692619537752118780775195651721962325555237868851431760127565606648546410266399621126537619942874577550385963612355175644183820882978608562387276244593180853287818388854448404124418084483122263758568519476969503687152823184354603239687193045012610138586674113257309759678216841194963314242458034682365848704093424434681769933939250738159539792608464880899216524957789207078064278357061348937910705035511349360494289692883849660708394260954490103205639044628553943854827388467042088424697171888662197178073173303033044149686493071754171982922717767722483791781532489251959585463185220353188093590561447340864918800862130435819086239439698643338017770243052650639903873086682757218780855990789519359221217660657998465413269720276001870213546959242346409006915633862073024786607771185295434014424875162195710267853012307850310833845044389668807686968879561612667121640716949821856025245268143002208575333516571221043905154774907058740295874390695635645044654844492979258699096782405690943629095501613911879437759247419398874925913876668290496338032401157998847408838782599522931235541487554592527891353052070731999419456212871655040157936994583446753929239025579435624108856721112541419038555023493089419884886991866880419171996120717550863155086432182702391143754225441663524618162120641642230316124876729192807348019504589521738796283033465651328400924480291975584380660292797193826216280509102044279812071151904002598429681732743324485773670437934585489813714252237838538325963824039566805704894865919251000994294116830479984248263604154096448945870920959373852803694048981625292732204042756440908935586725663442946115769610317048517702304305063556652833566660705637109705061561335973384019465473195758232743963997725543889210266169079448837489891790811552280416606449165340295096119888002107650038538719910030246307768195650223695043219264333756119461943739905436466068659502353010069147564466830482033301896575955527809101502681879867354571460689664074404909947526944172033422408826994557091299249994263910044055332302143074456384085388150074282632012887475394613098893410214627912315466208220907712160615664650719526189449509351670776255099866020345951210332124370140636838764010831049571468881006159884679575633316852305377300539416180801456272885258043702019072915696270446173371211399205413289806709135791479660822929788385675574171718500729974575878297375688872855613187259287815410861042466695440448750310813533187356883798933239097707674872063680223112324069857355468497895174311205951487711676934050053742680730897406160541635677561444846667988544907425578548688812892176309711976322257795101830275502592852280352862283448750479543747630151338585302402359491484713962603101495949991405076070360010331102557965263238018670505587906452518912858385158099981423346567867983689264324740232816552612166528874319546015278256054812900009260727064522002211416849152356242553937591282343202546158952164608257427570962120261465856908305810652571600586201831661772221540610472140061849748485006966814066715657115625800689587414551524885640268125935349257738953971966729565298747587047581639403800045385683388678642173024457805069659807736063783399828555536403103278575230336447286066947221386315446906803482479441017873188106167083745910250613391671818151647439830035187105538118228960260240185405029423849081924236279923889981018829420503688585789669696780238528100712382200460915080967580674843664155620682376552374443806393271431077865985214384546272626655393331514969597033741598363055517535788188679577019987928014340556534678842969030664346256351458811036762377847637295919035934264923583487944102912404149661143359743646814588874915979976067345881008786884573110099169531467739106526168516205365839056889622054166475460488496648076651115531048092904436964213803421555424135941866304004175249426310334138656626811926252488492573229659132521330274247689897545419374631215287443461757871281990641899494007053334989107961257649664635567907247184045237559997931552403690920426593277959194992953894919410706565484449280686580668606172712972339190000246268104174778771360037868367161793522877120366035191436057666811226520890689677216380004143003313518108212941945410567394390848055070312848085388118439547679520502562223296113304704576220006681861064146290272001031010467426757979051844770821162563687724983899856346450012367163585456911454446718646757834971172663863151733898400724420072309474002812412206306978587578979236456586641781981197601967313244350717436959768146205921441126192081730233175807476934712201769029457533472923117695842693244842147194916033523800487007973123468080315331634290197408812595313425345424670088806045696196435780144936037875220406021488946291089933614251611919902344198724074225438129974630097333957628312955284278943185817397932985315295054320750571735945109613546423394530200251767759483048687190816919421938249410923320183745271756124596455810237848142788327085623509871552094402276602306725291244240576035916556977157232841718888752168193585628871194327567968967246823340457816733108493056376032772005045809813528167429629407024063721204169285686662006226787634870027857862068908128386593027910081889614160586733152018187704237389911442834758639730269924564200408474827686972591009819948706940370708975343042277969997433054473533609670480489264068802649698476665269047141036893824104269927972587312021493141093319027403229297695564221635083125395429113382628594440457638752323742664042415665297192707225801401595307245708814623668816921367596031904778998172458847134841696012437590989488702167008512017798526255411552975071137074825186013392815698643178613402753932905146417678929596890449738294484638932361107620955218656413765036736518716121135616872924805405461977170621998731222205338990946987480476420603843127171250567868135852679912134090833780587926951199258880946159139425864708062249386410202215069185287229016474540493025901438666209687678169005346538112795750416438702051341843924771682901783371870415305155474671287045603521599632378760337473913741872966050035200844364094617277559482781712873174552789695311749395698666111851621426771703969114460227723247837824501386914976908210034153646168743168603121335941394892095864661064605692701366615174929242888965836399938824523994430306551764013297719863676419110110165985567250478775202888746637645977585847492330719055079069258912066956898954351471020845276693179868227994964979689023765618751200573320412123521697702643682477973242938519481865416962848180906666382298937468284504144908661330293063677873849138202169715731439370393369699850461039802087849499735325872397485723862618768946189150163508532473777351895848141293034094975290162014677551407818203248960651181354640522323457459058556422153103215159779807249457530830552697537754780976457826657393300392492095755598365712171893468002250243169329129815812156292042830663974794419493849950521163128205420700382069440422084383081382641900852493733194743881142694142032658943104439495488301781291119776525280709712356633740463590498894714861233904645500804991869635634876076491511783179822965020807115046583292537603145963461273154397355442920074177578527593499359999637676525157503879338245568850079593796225968955134723630138507425542809106661380389314447645168887552368896002807940779864581977439743826084545803538123312822599294424661805088740002369830987984689512262704964247530729364236361228314479192204133174155343363681060704742815294696181907286756872948078298430711130266060745627642452612417642514213586022509589429764763131087270370529248867755420081592835867147393926374337448924002198243770174695185250728350586910373461207435460198555356108909937274408433546653291836645884214070194126005232708428451661986166660571873155506494955690187422568872388912668364977819162287539235252167483205195834708306919398338024144965346475525660460295972758090700195169053696867342510684027035021270845158919203960277427186046161000483052880253314505751965024628813676667292175636479216262732942629450319306348729587240704701122359997157478953600083480165483119698884996496420774310991221685475200744372007690448641239241185149998469783691345893634597723348700020600549122110707378189493696963316193283854402528196975466566459900759077311790848036263720770607384151729268731330220314455119670107748922116836316713718837965676525379618984355173493427523177759585973457757145679312372470683640329105495660083359116851371387313854698521914399178371391373137399689234415763338375184632919008181406001803106681161868415456974884372944266124392818417560922678002133461395673093539354453535945398323078004624365304134493733759492025686207269163347700505803097640088879588358096393444947143768354740185349915849232989819700665274338961979916516660592956736263772671983640052811753389951180443929661447704352480311226753289630549385311916586060011139802365672250049679826065074721457929381146603271470465160275455592988020795073999112483575865351339723638970328278650760844976296367549740719672053864993899762673375666543017699101431797716221187577561647524597194006230364526339023518591998895449344286211824989254072235478809972100524726195730875558630013184187552714015506923161691623531956017247748155210708048246043576665323201414877161477135144604190434706998148522914163435696872196786605996680797117016731469334320303406434420906312253201156110082659619776208398049441078667623228930909562352140936590250216825037774801020222506977032687815732731132849254830310447747437053288589189330796292791571495407895124367553419963228340265742226292423691488529321736017496314396326698028612071652828933474510674551555928735743159559139066181265650931323468901293184912526635537352002057096648799960405582802026665577680603655570947402733721439285675886528552613955078804099435175761323945435465646767847163768221649923638584895820226721726080747392954696069909838756346320069324375650570896435719944710321943288273638292298755844688953759023748524471247210624050256903411416521893656253412474825631603665444327154369150247633518109450375239880025062351177737769277757329901990203331421713289585384193276617066198367185229374075823457403544781242791137038318560102156905212740180999214439714177914872347681125958013192716061248052536829431290933997160199579491076838984329328975239371734773480441513415002574998573056585943743583171106404664728776030138432615251907882871066502168272652488512830541861389129469731143978658276240262777238020343840748284104300124886930164763727981515375635421094552972610581388180789954189348450613368531986300158983345590187729558785701496296219571630765450663676366794218060165907544356278409832105373392744364281347311307943632268165470886452604974767090490695708209710060328630144691983960529558166030497757491967234177519100415536157376994328465523789902061220283998217565318813761199552752399999390029349427086127277501572368127745417709151754931384538373398114887282855712879027985820401831039468927867967667914986921790075960671277451683666924205804209382547600241420041802708788924387239637335235801950164448660272101546707898301006613430348469258065412957703387210678716866873452929210726441940847698189050333465154265847078125477485074927485257500140689587004866916038796959847381238347038558913121955525722297718703361621131536620633951014791044138034262911305019283335058868767249385207054923778221892897494495917004645880922831878800050351118061465083519832193213941545973375231474414234455058180536860920381751892193207705227684331617239205523112223601929243929514135464757330043204975462646466094754695634593693139826394085777759266475816743198229713321939796909786135782175141703150604296371483621756798986314951378359016880582068771973211289393391064119848041082292755793200738873336333428088737890824133362612927967543266316479018158700740741718621561333561346659694738044308369791819128743118268068791141184822447679551069769931861952684158624057274617601870385648966035296806573268519779705386248417529793462686170652818409735726708324625384246271794730179990011496159457924649569639058687680162022362456162305879574257530266373915055433451567645963067733954027994241323016043462183611914244915716807811517035205509538623743160423385949808877643248100333906816391682167527372821102528028798259237976588429387689438578445485937156647569522771947016859114851116867795382800221258105803060604910940432784536510262063343925057607650222758328297033635867318529355884031393591257313711135159741053854370345354493718600125390436578791951090015509771621029991557022735140564606703326083302076546430142887581025110439424368013840472880563489377320119764957456815115442647096386344378300713781265001042540948179629722758351506067866470322037043325464175848041754272246011371118577488600468068820599979349509490149188721319380471612897753677637026411566818245847262606085430830573111501800991250477086115237315947306802395933170025839357003055570241379034391244036663866595950403717474100386766882386231683721405686394642965672230891348647845442016011045108503334429660828398631969333048568912361138914250951288212888422670715618651301422634277593594514659771163798959803767852998475783293761637356073672780416646537997826417241386812709779667995555960375041258200122081976976401448530216382737903192516168829117147382095006164775180897973708522518807559760875106184914878764575016630451454779661046742541724375758011509050706377909849008557198939593122296253290381111182248964034531674872838807049827954221326118998437001756127092783970639822980062227482311059779652070586181153371575355209301285751449686465855401915652559191888968914357134954138695335192106160324152294586880921159663152203645536888108195342329991994028001021272643210660694582477658942868825068619830630544345812693887621451140884127911044126091828199516473571364362240990710685680346615130501915413302406336198712698924496241236444776757781822842987798192600524296056100978223282768266818570833634490689635915356858576885322092078951037918107046319151042309077961900340736379983970625274448057197782856913425155300667780618690776303417620148617778027439413339091492258060639566482856441795281658915223759911439910037740539606298484863541905569527059321196218097305869197367651976404979745997291003602250331068388556035988509751505956796581355065644486763623514456274016930680720842099280562279749340296041002677604063295186527615343876659474714298841767580202981091793751826804377369719118489821772403025986682389497109825327208717390065852674373453825252945441516636558126425137212518831972648415691908732743349052722804360014444864633264978206381470603717290834204740569471928180390346309724517369267603739492545888560944733105081922372171601728044465599030287771196067692691986329050235670646195804479754878586140797236206399027704324288684791483753316535706733920451495601632775509960573455886397722751524320232665403857702475667096661643942202445490211178294789516541743572841254114743165887065772178533689858377362852194926667947553633880774422454252395482744108803321472237480818611039225661622574872183730356829027551831576982629167716346249609346287336791613295215248252840107814320217795496056461312426740178778287246942709116718520276111461715774081881023029863188436299992772495911864209765062123971020120156899348341033741291780929038823859843212713325611432770686501207599983973441831523707715987083074398001682979136188535677734822632584378341140372256433840963585565160507768360804046442384413435565450644596913511617284368119741374283134557420725310772172959376882638718652296403885211255424094496297808392288896122345649167013641606620147284672450039355930199313853328970724744284164917411385011071326472605089103365311278355611190766195519795511440191967016876778545033432224972458229750473780638214395769203731573690784098952034963456861473589961911349427187505050888709016224947332328523170461679193985739793924085906695008780127482304416422639570850198815385932623589557681652847993088941073434935526736010988303103879879738728864032308351838054627411672718654579009802638069393068073578234696859087252331781929825769188087593093844998016416870601303004963745158293425709327169939848375242946926006872116450986715604192812875504826433737859474482154060461282340201441527916965871186257209675533196086383873816120038879650304169468066183849166465318058621916102522826509851959415023057239879111940755196783433675043586116318761922780049828001790014167446849161020024494325489095515660464137330791864481746256803631388921126910337324625799035903954127095877023585231584468349130603016636780100732016326979330592969471756809112757896476814374030418071724410421135022789702159409957122629756352644365660044350910423006092008743472066241036992270667881610351933680125532360704595939742806066375483349905475678047323059778164869060962101037239063063415216499921056455661727724923493174035085136803993364822540041554534859704005034730335907243046109578406592856632886535420079823830168686212121067280645359327870145214539423957065488128331282944215166062791337392899943724740068140779882658972986585411001516528376564397504534659825241835872668129886083258720811318079554783110712835999068243715775083885139678737678714800170401449338703236967529144757401204683344505312460186150110683485580182903496061221662574498237322582557001306822592289270760919404930633286471716722887429577400902263938671500704834242918101704301419394370020627989510119892778260354875590857722866524588581698155836245285287588514524104639028562246879281725072198783671416820675371645264992862693899760989939761825054407899622887594212306723659218338036010720051753744972682145684169449872166885161010375334730651831462274967797193549653145554389917210039117281908061677490425478260492531250517821681004701943441438505176077193815240967434542663152324907729965402444527879062422435201803008984283716357933901440851509094366812936737227109726887493358394763358823392367244993402450477191603877925375222847363312225638767969154599054619687698900565946888006082182231177421724514976401404692061948829936072844399943333925391267966864430838788006466388854825440440694380168477091999651360383604042733122391387610143733001807835361557229290781260417851485833871785496424351565217155160927124381442274858793180111317455676666667858557458062057995261126670870663073557615785254782242971486616028423110998468183994132742815856825293082431154982009669095367671046735976517556424868924831414481411056780090549612469608853399164349383544953584972173958462623913626880281767354655445260032602058931492809912395013036352898502970244297813113599978675881208050568708077731698338029312459859203457352458533470010010255529488760393015254642413167631336649379155555605416388343124550226648358426589577175371030926675191974713669224457443645554746474236973053117624455114204287151500483937587793984605249718271747738481287434705084707266799486133186396412852445442298490856729395316614328433698770067054074515442404279602194094988802040181045916493564369185802778338111615347776159365499315872576081553674618908703774777962463844738006242294308704107987892351350289882791307512054391596485214893272799807221539847641741796460392726565782345225938936642184213523173502050937300292901706399349853497180625049256661107854784538659785632323993293292115399647496997845715581641261757221624642564947282201551857002004969890117691064063759999469101900650909738823975919684624337564899640544739062735070496229936470651166550535484693794382499314791283474926059143898548858367519041624702408463207151235217254071889255737322347465474235881973883470766340123731921422155223456692131799820212737644105601123861837189411500204407117233396216040046417983114822116090175425749210966000480495016496945214528675252733281829307647223481893387757621716249773790561023884573973401880030952308685839351928963464102467153875085156735946083593199832728654161316011625644542232621445131105826748341737352029476852713629928169677611004388151292457912561482506553011162009131375720266642258409125019755165689335727660563658410802712815352754537041312489497350185691914152998211504332847896718034281745804277125419846871657347360585724848272449936620823347946734506289953292474696783180304624560187990509118910048113701459472232149638392710771076379358415271158745318398721300722817636966470484275190789391113871256277814467620333469803212172214550436473303542674690169838472868613039681421305846345629076791911243021966611122623221715221629145745043275669593574087183717442868628313154389915154954009051666495713152950041402470800831714456581073757571632861874730631298207830825205605462800267070464452828575193763965412175075269051212599290721692605055225940912887340779866067930744236879264635794664157201971944169524327721281956046704929852877132073506604099118340143251837822284167682827726766193076581193536589147659063355740681475203676149448875490798372121859111524227850349298529481779337230680354368027911348106305242358008800047607827309193332028679776280966703009167988871558358484666828662032455682963721151113017505002349495066871194278645907572222012707702565649044106928838673476056815040800472671891643185443898152346766993790754921496561363044090315044072722637540599470140670613835748249895386542175722813108953122592044381183395195678815279241980968309035134067865605315889732583667772469944563545176943073996633865375240294498968736934479037707758542437226386948673881921427079340214850758127378679061282327139763792487303978463183837943164054737623574075038529472926293253763825542381063662012274644281895637860040279548381769272812383812566167476682441573840554093104410878997352137166053363525194019074007187401623274526776521541088809841422568099001740769184369390167017653455850818565843171107674748303324786437679527602624447058951497680844743624647642190494952936149829084287701362391054354639764261183701580041201737921027333903312310282574625550010318421316485767193150317534140176591992006935763816692200347088008367960049996161565928191962304454456180968236213720950002111820905514195292296922916193456027267328462442526608121601239945005482654826939539232380869958491028529011358448928180585570569233770338450747036173769562016069440777853557933573685625968304513186809755236380683449735821901029551898010848432017174829288533469678632786029919045597775640547528583851994179173567036929263628150387710734261680786219326116836692294802173001345997809767798046065693069346914673198696621341056161027075306845130853727920995066013131313097025833395084853039791282225908559698286804689396642455208651135414032667323304567801477104913641378728660876774679888014672974982708222875624102592570394701347739229516919607049106676891659923385434932671870452734574294388890530048962934569569740123154059603773441723122413505896264008590958757547700623742432947008773726082592236351110869241674409675073274447846626761009010061208624059847695753749243177753910362760169647620952758679766667760714963972074637288311855690568597511702309790557502255550214191691418183326173339544580777945919708968412117509468418903458616410888806409911678769437104980911086526155062279588453107067766548423635977693042667495224689229058522656084451642229141406775905439214515504564705980024269437328932309700725660210069283565330169884675810416935715229953925655662438518835427038663190677734273864252670143967721191300100154687598487720540206165996529070867668198084679362457557960147751868860377725869195262148802905030774680040384697348540954453151383680033431271262728496719334252448263240477098966181291267959818879800874455295535933667094494449184603433463921651706119508305238970100559106647173144758296655370690195569908617138734833075422936681181924933362319967608226123995916971157142217910479926170941503634335675369798989319517985403843919193797906468156607913961657410477044644646761427666560046671493965263413403917492512746950540374268434577018742526669370169342418224862045134979463647480961158562290281478553274687819009891625092311107189050029812478198601206905505488419095920236094964592138419169928844007003782907367454768968459184676380836721174070936998813954056394113272310896983302998529927533349277609794135419871826219070596543621622228850003320831507195313634702983932490493351037810314868747267440057386069395933558076648723983886686270500975851710418136010220660096225894802992999616371808014890422854257595178386594338156092497419382433364492468008660409723561377709339189223967689646446729339803983654874417136536337292054418269220172730731912640687412118999781386198051012169711366302329901629820247417567192704737132775729736618582427582230925105894269258927433107504657711123248953588177083052222672832137841462623187656233333098473919408195583147429913658512510370233137693575808259096566372831174319217435545229480573497269523584646649473961455598646134637843235359127774975659638528745119677971714660957014106057901704416052152614325756026595749448795875359517582465515049683263888480803680370724793968600651491301746399168808544786062718253456797990918531983467961206476366709725105309039730156842709993996741926205312383855681585456301468170495370842511427851353908966234675248344752282073057755554008857092626956268715527943313809836361815025061952175339949215518902864148982973771375264526677154071407355635880057780899994012376454414108895157935259508221337625911149818046082773071603295351695143727296247715907663241677827914862925107126939747966364730640213206474889306983832512626245172526302172816123017379690987964695287008949657294644077417488231733312529421388424413567889750959748354433065721299435034835619127504872364908610305618432208703029942754928924996258667212097366100864546812933706021660298650211147017402014335173080641426333598993539031392230298580085142259508376422070024014453701875478567306027949520749849372580966231148747094594770642693107262232322976454145539305767965076037792829690159891693612694317260332048185960205298965541864082919774396577743003215907040194231079112041713126806955408246168757716614735615451011354753141304001424279439526964688053525723507976659538767581692915570365532594466083227169845797572239805277310134269870639726941236368961146397853164098958819840464602316707896740004020803180078429382284654602796135638189784051705846659474445277396948413849528148658276246802277805220379040249467315326996628713568808184897464532286551593438249131405432479935756794431527745614979481144500081422064801252184301022678792602296577155593290051010714036395330267105817324644786376833782514232273596827212016512091369682977955221922083645736130666081071693480464114781896800145009204493202637825239888962542587113290150260202487056746717544331357837083152643905445520990128162427160695838121883800619373777181422326333432291202007388549786937198689962572218155857454759170429694266438178516734092077213674781621174439334796708078569177089191179120123554995986566586158292742596221139841386163333063353761659967414998659283453960479483862202701873274573352584508653946320066209352879564867076336419520012050299982081658277398239332923873893070494096838283205455278655601490527018868459011186242445052279537440586716532007153171232947833444515727897793711941301373555640827149988163165796405939408898483818889131910876273908903939483887480711233955420409944639008277450387893551696867082998170971043240138228801596149526460873071497880849788745571122613425185416394992919911434855706967017188010411081646902406392736544948749504550497283948836004036593459839086438842940091373745230100364645775370355758851553814936337314513149395554223256699686840447229729722078837673432737645758522632224097224133481735075411560443590347374013083996954889179267047039247268908303360904194430553706189547859598649329284022261578320626938153646476141964196799129654734175631802327065190916107550114545175608464255595046984053095262882744822822579489818864977733792071843573354048515016737933930354927993183127264779243989527789917959547372443456630952223195051986978015770141187823343621225191957195719635986383442743830238736482325775869562080481105907198687237007261928399282842050185977014641301196707170653725901028971799855295659211577081164063526105287754788771738403937108635585119818022834939878435281071178775496302534812162769604136853888208782849074542524256141966184534838365779268168463930611334346942248613383912966437603500811586563023467881176723118018522025294050515941397472448602682820230949450528946920827491682814897782384851802177753155551651846265222846478451822978009887066866487060350761014414851952733457044612840090077352226070685265336545027059692610101398917392043939074543192798662494464339813906583999212629865276039774421865061528659939463686887169347042296801314637358083393612478430636177295549928859384568089771420764984095489260850564476032529736188354739487735606332406724556704082754525536495232199023957495904770072267817816513760015100134690079276615573645712200257513130435646804468910504390364025156109384278393616763919292659306452154058666458081087825780972638604446460871229482792194904659597431371506742027117509565038046913209907107375021021850058639130201698734341798664397379056835515422574946921759651199399441889654069027381512872301606245145465876172331397000849164022086734993706563294714939857295974826613015146250652178701845855358795926636527707261662629475715729191253391820971895538549108187355912040162816671779523680776293765947363484250374819936554743488491436550457606429760881065538642039920103586054301233886293323247142589206530959977426844824049457232133615563763958070198140312673937335137941146629322303983611675872141619093220578914799625664066100095502055449379473658929821280256280022784201134433027164092704638282813586405638103552109040327798278894060390776798190193710308450792053989110314833688038427760030258019661098834662785142729168956197965715594589764345517522507681543704169552949996098045951300933061607662347608231343096488756523698718894186290280444969409245261971320379632564918257515729337846845716570655238994629062934171600968673006099437425550342276711277577702393833674267794817513667210794768326355997647346020957881599122958796698382110713673496910876986223646694102292362803175545421686193166065170258438666927218016354160414946192751930327963172041572278725164847515679123666044724196092131039724668000855408236316760812975483624838008871361558678492726117631940954018391077855706688541472390492121970327500166776525924934568947423812059453528879116633464954518541645430858321359832146923398517114360870431382116672474206447961961057579383388493032839053486304250879275069910346760983525041061127151497093367917853927583555195275621365821689459896319736438187525324714644651068084326949711795238843572206563837497585041350251597718269289242042510086058552957699074294048585471424357270202644111842415349880554023613355636888842297401821515917108459826496569084357324427073832404046748181939088342192910777512171462247490239613110286355022313102242862156122362583301826423324283942861738769373023659808742272558235408240721700567105131514549089799836889384567084320943701510536624705728071599574716173539937039027924539777100189637046354742056646854268118190621940722730382299912109805848906495324653415197248346614493193011233671206484309708521383895623020789471618958233560670101709050124467534416391547848832983863392546929634627107301041150230176838396770382020641419786215021752811275938819798106286549164396355027181017528870247814419798381839431925236532329423539666332330341602762516673044410945525585463013474601905748039507811436749294913279632938494402652734649743176466391183796877673429141413459100721399929272132444269721708514600103184301740885462166666442624058018702394738516533859212955655725203621894535240278740560443689156953283572061177383348638277612528174083838678138767680867473198912352573753776045827122648300435348879483669230142820592711741086144399213769212168496324509043857506627091822057022998763965478812253890834054279596858776346606547297065284600808076112710574093998240981182720802447104404255312812172093053491093192372657525137922659416461755726282169669804499928566305993182302768661967221866890249963032381170897379082388385697030342080404085960261240999060647654685805139677935775488345340058978589557568178079102833055503192417689083625371558889777576349667744769361091192541040722469603753828473609214320745644976162587384137272119714486957113672277671378953904056851337350410187855063970112302537584104490053478086579419914870573111263945970755546978991038818010672754382003099488903485616991085637293067742758469097674327715058834021874352289650008263353100105465371431089955317269574262935987925494887396662509846096192958692339411012056682236256108476129091398657378474426787594046217565187599836125675106384036731111628538001489624113459230155244820462702201738390463781492148801263197809171724586270231217376277424491896787965299070163410465104959843154023377694614238156884121345502612472007224818212766000669579800563050377440401316194231771251399359710886474808881220315143212600808472675338784818044133648524765502617079746008508616939563708922599531994364468678227971574132344687576707575939311994896778766957391460267718934927999373679096041374591619093757073189897300032022656830520646558968980969775577993584707410397439664157817015405376879020369916878138732149568706339917900846009822882628774914048621236750564629615517187485772563020503522192587056950103265251519962442461596452342016886834455965347016669463464021664394189097071072331961578163555714555050652620572065304166793244273038480202972537907967921557870981276569659640892389814962948169007702809730160250146886603563477176768877410257716096293565834530566113864963044154935937362050716336065291237717501212686287061443793206820681959994739608767383748367537877638565799665454912889223636084294770838635959387484616115250730778594536820609995902467364553335907831893014131321606412239525530465699820710865340429523975865177036972438768378476562506238647885032323192559333790531071489258209383863865735199452150852205844734697863971903046523687059609438472516904592830026324061992546764784715602030182876928001627951094896953864331362188649090060977858433177622917849392488526549591329503670781748044951000510259487182712825432747432594486967418638600913431277434448477873437663340356342878701826408405224577590600201546613927061663447478918545414041716804282465570190281350523489244123891010979394944767265303637128695087917588691758763003732438790426089296889223639220897207592662607680754135107119197972929089215588738000208690449760724129768646381742269611264773036154382993367940530539167729452934140097832689999745868629914000062876368637941777638732401719929441845818679543696948269614666391270421155424321978121788328878371936706260507568924896876755558411741088031261804134280461786836055643194715180304782475858700725282248884057201893777561069083964782702209009249793947502322103289920398352630341086470594370788135683066322067523074259557632189258897125492315417873531859883166295333901742768109051613457408170190730088767674254658198615563398110574303888243459212419798481723969767628427679477799208221930609739444564558123165495707642071452563780788579375681884752328677448388066809197825464275296805315798282295279472774654918891417847632947063184394502388986798070352813436804478934228445566022669112452242740322395838568486930957647607998969837506397178949229889116931871585183614058108718940382700299903827821880422346995674698909264545742468894367539349641145992601879922818572925792808271071031191346905621430108411486854273617613505819092133215435837199458188520700410702658933035997322163100256276841232132958054297508713729213209642916816830306220665253824254668125959380647950613476127231981531401054651718617318599753447880297260604478199180668837036123324289279235504299725483260278174116161143492614656200319363027040445414182174850581909945185134315300597756288772849670912098583468548456654923644239422611718931818101191696720832333101769138171915721382239924239132491412862282733695258098982637642558079451270461584419743993856600041834678824995005016380080436327896553182310268426369456584015285984434144862175396342675622080758324240213080067272248806006980650658290090984721053331444700587008141127816339204609888152300784794476449825532246598029514787701539268325686636882631695226030784417519258188673523152534897662605801639416947282274320435462793565082094927803484549336933547209108147637158603036768540253591684444828283245375937434496000052247203630953376239976067962344848714634094716582318941414089228000731568587975955888645714473480437649452685077087886355021079820327281898910806727339915700054560043781764309667202350707375778321322348087111231675025561049412357991998006274700704619074827774596481810584581121834799384692253527817050460907820826884820725981292040667364067276248584563775806872106794037023429804058420572647067797155813331482599818174664968859646085224006403262679276135777638891753155637454359820184237512974558282358084166133257865601338355671546230132135736266706823875239978251438730434999579133103547020786012484652269621019315044065673328790331820030976290671237958451137099418225131224131718423241667780350050468449073097288743221446960884797787297483861653773483377267675149673544304459908466858231873992833660150172470590472955044428455551251839660564661682403303692352635118310760672974610301466596968844805704916518387390851531942147944952335502061716948813108634520962313672327428127825400821537827365561521300256816529174343468210599056691376541362176292956519422762894197337307753648516582400672872597580117512542341044048200609970604604049201812868646380668624009235075914752812819134852658242988976388987846659749717969125351338573336253267063948412360704554640087306504072142779778022367211254187435546140262987893492345244133464477451860725848091154224054488243379045057825941163456648963350009699379640983930636435435669937960349122709380334368332202385875169146083633697309666809124736905333745575798885432060488852711328680291968499378828427126980817402497024853463721189799866278328875341411390045374249467186544271719821243049630598343744186998752732059362119826910076395662665229100329235646395154151430862972031914800954090776272823894805807173786884244933202497296898562808133141711153439365350814697290097021186481602884335410363365921871274225794663918891321262447519650875664508937380872342766449305969750299964924773196943117879206728271680375644131840866275127490178321281948387238396010261110151215402644730341110571450649737887857310536230525530265631497978517193431735741229462555790450649942608297489785258601509124642139090481409194367676865920814308875451050021485211953260874520158311172092888179176581844037861998119702723492318442777764786783973523612862393748114367000384447836218213286175287848398791237798637028235840546707279865357480719594272037269688279747330589988923823018927330873412670934276512357855063733222018416588396259734513598151660549159673838658536476477194035376515773521459313460884085879701395586860523399141282517004675611517575984072365977441023407959800897767738861748019388216678324127325605071526396269309163365285599272925907255429380773272280960045082442218735396193327706362109138889787181152526516263240253502332305485988591024579693579490720219666033566316715459063531906896074796520893830746643695108066316219200913936136428562464035252870133934902147402632357573093952095773245511029432750846407519687989617360818912146384344767700530364791708227447777646244014850455943822890504027092031399030525748226956299004812501906030980447698656047388823116644418132590855380213427901300228791299650047874415340003241408976052486519480180811362285575072457610112697938010645646421805282480151464038874943749905386687765046361241768190933772246185502167251156113783965877336424105736800116380766040830477365090174689093462526032759291915718295016206451992851063624084026749588062454666106208720532422951773642526528766298675725472523846861095709127785600499450805380489626142308738316129122330331544691867618660517985763327549099194589426919475166337990146770979573729501696017381740228782064570526654850415055707940525624223536408674436083301792777905312094017093662323659682430927564342392526190950760535339497960481822921110364033050488212177500421033075409392233892339980605647315235132471201226574165178775157524415743446564937703602286377688354561453304726725600188796449182848772141481824261677270849877941209218595155256623618321829833773015137711733385544006214699699908923783896061290037817536729676835432155805962911250184375731589402252834267563878783386153091339928253454753405575987861391184502654708599692689783595852082110324559464105880895308692478596850298112777235791526952423003548925817175297838776345477080092984400865712194741300680878215287717831443674507372786255563989418492592679960679988051362652136731839060654200763281243382328054710977842446310731003476065895198132720429387159669724944303052154593231029165169201485293605276937198880541575210602865631461687890067919014846233512633531188558880995042879129724626262488789937342142117768148531068120483048235534295380034042910071794114902451816774397661691049212452950371165977709596222680177857383255279964192332101127130390709279662215463497378080607226998539827045605253824144445551503249786533033363542651796509517207605715627440596538885569059181074059059824387621187975618087118370944279086457437486116434573697765058902998537931963593154772576608981183469140044462814009510567454304401919130647546417979767729456158175788838855745024692031446264007809020297486232066381826295378153332990102859859104903279086515315749712479221105393386145852893233573208088578555277826905379245575238199511040154929242925012615206746093360742396024743682959256660823787932595963980962836698599157314438803076429523151544760622732990074574171046990430348043590510453461770023030998132679440964510273779976521732819858569387474038849502828909238400855362416292564211593084580410377258823619914680041113786712507175469185174339934761859466070312163160704929932757865985474807993567713713188791901539895075547306412365719054599939409185447228009708273646145930677291978730580019341030780359953375283351088808210003330709360711354329238258084426294639764378540645737033279500634631377241421989068792872273154445628509538104879809396882434343728371962081943771140512252445617475927890038011186422917958760726494441552380047852097373046265114767080564365477332326344240888902235456667517649672062745941686777015704461828895077468281501963989713651196163631236358538350325587738149406140427819586226247052215224947232104380360752114835651122235874475323285303330173357931217468481582312692887010179932071840488724884329447718403316742518375829847089981813951695137046109416344110845889525039897441847614281640018145589400790184412527841105028768641438066319265354679990287793592087414961478127972344225397936010734272905294150861938780483428813201573237369182562797307222235556454403304500657695500277560840076447762576631924138574708194303788160613205824128273305325676484068621987336652295427387680047456271315576110229072243552753754239026705985003714676876938297871943741852523261000867104042846915679420486251881353672613667551429543319333712350554295321876717192170274546642174170073286991226974374360985499774088851457108882546425588297802126538028826455823288135103813012156204738413406983521474849618750926227274807076720792699585757142808478660794459716566496096697719205259958501152100148554164749079144155440838784200035239177884705464126146263795986558841715326493314375561116571818697993981699629849937823895786396481888139717207949410627908400153540315179454818107525685516536505822238811015775867524390982213038870885157479770852929699377147578361792383123747318362130927255951650297592026569535728866871119006612652665658680382075275362380450670992373830470588011271514809057001726647139064577679204169387881038687659612342979857138868627970552506428136745975309027398831855092617927036903925338883849114393127025747666978587380031600833753996574670586329971614899493048812964982573451410244414626513584341463042655733623594539124669400589953559452392800717358077224647150638249142368214340857250798460477490729689537465625422318922144171416993777547675739166274756864523331912757175976929679593584989008092103714707731720393661792265236945480094768001404942104116985310469877338302969200303317122202544482634103219746175147886407566625130685287369738242807294629963463677714979230063942604115901654349504832280455042825149942178291353246536344436853017069141966643566820655900515252920792741641749957603599061492084472034779894998636229255096722157422486287592091846033979919308106040096015916257840924767856920181320533735869957585387027960306023868198074337226366282117051934303722551737065817947035631122288617077056570170324700875215900793197000109621030351776448998799943234277834978770195962850366432362727074855883777708181430735462725967125032196645296910873910734772170733135286679299383365479778021542808261298751968864327399128398798197838345479862310389392260225739390856450137551212560134775922658390000735853173842132316322761657389822558105471879753664565234882997828614294179667633988467925850991315111281803257125601032990065697885578119512101243777994723091208559765654464039656268891210968272649002019985893107004252714214498656349264620093715531596217903492296160458094626532464435948951131525249287752655934555216147228347915994962744617147980839175762667345556599822266704885126239132277286507032053350798858407494427233345430910172831106261147608823659656312000498210274521250966732350046614275264497015845006952122362014918271014066377339711731286668241040949490955942562456116262888298387936541920133412504993639022847137929391437114532462546726350968230993458783015600715142196068783837567150959073598994252538140857645408992409600166521692399602012349129192505285585276097290836528679043892450566444493726386841291033008181396621140292675508942540482889576008810267464916942999028396091601690075639818547769870627607486904935737257019203323666139602066767335199087237154938487050108195798490212829521681951354292466170103598135869779217215841201942665194795625874934962994062598963648706236545530053574655606734283824330079920780800685556822486545038403981882524586300683863095439133147399406839930376742083261741049821683134823405963515197952107800346590839314741395077341761792680155631612346511720706944143548082240399851606511725797154886847786993733012170874059885352776308321776148968953048249080536140764210303299122604059301167323556344020611428588811174491282856466270008606947128808574834164278720289448406463247217555896994120160114995401606701721379110361350379913715010686263643556912055285743011132478481412909567130443755010131186846099721722951731278259012674841713879182956766693952719964846946844939382382642449383992037537206213581129478127470091124874546031510760674060506146192023555891003344013495107121498695959908770095696447543681852283729924755997494213407827291922387759274906078618667733446629365767310787830948985666912060751416846575230791347958258181641661208017050142517776163076880730005154752886575699026358767001376470731995417743856257496167328801536099376364020063848486069587703509263891192392627620445329861637089260612323431301153328800154619471284327477661165054256741477035538329484789142120868091695651560975659375738343711891108006833034027406576032754786917319316584093066508310941616043461514245369815107839938380163407265868291589493093439941745514112117726999762072505737605335839658482783598130524776583462565052551090382833899957182973604444586195724274801516258934121407782831282534404396407306756279712247599186939437164237425363901976312783986164052307691202095253647579323824975182598006043085073581142193561059605094020021718425755798992732600028689237207708594073796438030418964921101429756461769211470962221954916045357615253292566620018672385099874519510048562245171330739251969805702773496731384531296678530185933809210121312815990700574065032756306349337781549510893121371538582865691260111827886299992614188473867103897582159908759875376778205185658924341003090350689912290554938683291809635730054433094438978258338342456944289348629718042885925129158937129532944526814988416744317696237816791036043638722766898487547609372597116473426067110344708195652063426788254361507379700905212681182543379354363235912701443345466827663451685442718146244228473964506848545892656243551983606377969368260242160400254143741880079393457554912868206495185367649857010841596470325419190510332282344643601927895362160442928972052395570505668169592253272282294037722614674745344987570791897144988039594864764431643767945448987168212324078640753899222013015172635259624811442569464235386544695391189947191980017876727540457391043365064178509595552198994188663442448823014061415552584592331298348645447697911628012675831931283628449429548755869669777864506591479680819204994610364704164428918988040242821037478161827342917087510662067215633505013149015682708830505409031690706538335587839333182961486047137178085632502921450795004784856300344747466909054434047923626912304058034823329373594191769596380470984708967357251764825402327969920687937494888274640087894539926425582890276290631447295364677851904563454878501947007222819606760213380508393253225135613146597824922728637750235822395185958233514183774085716523808326337326056023913101237108426447046191429544225290863998543170793567279643597480904314175528715001719006265714629564577924466405857320940103003965584000163414652950242999766566958045343823515814485793244192865292840279451613074740009170292607985190346091707483428275013201993535253679871030218744148794188195053989315589161265141489651080752343485839753317613009820653082346496644365372465385822459437050276794533079361870279622822457360238330586494185745492892494162803014584972958690876957383960134028443720591869924322292453849500273797538088520792070704297436142670219601426938197692595024601283923736118669862500620632859959930032559050256528312608256924937902518115704001916274545642132282390897951114281177525722136418114535052120502740701340777952927411104457606399601531721877058432206996336962897478033130555033051671051003441570652830505455346705593238215453283399135979063885835108927017934512954886122766065258879752859261579308735875046445260866957197156329536722984530923953192183760658767516599956910524357671909218936706955860596412632811456672389160406986233378007814104619025988485889510880589495740359946415921418540740210388845483235636345218010629924901609220057209522945880362752083930372571463252678555077571869899379480385873846466487218576728382518385894013356274880990746976416089376811909104362471198975125746115182840556126812373239989175485431393340780720342548512394913051459370311229106456772057864105752062328600886737873536268975176913180992875610776265109573828891630815469161747928500308098416814194553902461964062279788888141630385171984645205357614022260183143395658967609902259342717431608200944406450919448707463944465395207068913538918727074915938500141680804151035011223822196840477386006063358571551311906850271088565900639902904371715532103401189158018324644708285009687731451110883543546116787729988915047853018474880929416149355858707554853016757495342288691791690227413193773167787423279975562312068734676459376892833914570998125489201072543961506919799106207001490114182607676400524432603923914076755419145545985155562345905553759665487275762161150863645148005801247312865368062848442776160267352631324928512404958407326277860825304255351840550092706070206504807570774119270164235980153053904312768882797738898789268803481316718105300391365910383887376372958550673201297715742866488658163529396557731321092288107122973924739143012141318253566172503485737092854480107957279194951178194817853787704042219875435000153817240334352994463663845605489046474931301342944606582335089599888443347000978473131131965838879926803950542046131725992189666095682652070258074860071438825377787995301778165673316091084246026703791351755628700142723482040421448387661888392908331996741242028583802679463882763071775448652660796709034358683401805049313676140544787645286260827040385867862004657583142705319781033108784991510023915991940660066024442954404276093133251504192209076412014894808455452320980658439781283017463906939987621090090583583007962643073987543755238451442850461788827530906372658756680275004322445645429908726771877287406687939494950446226155669879843582677743582396688419113969792761808237467178082072818668383098325799716149894059941693117077425222266380017997761716170780143095842155228698471619103907423326035567831170482977744256076707047742604457753723971663729668243884919793797597770844628297535382671068382349132658946323700974576294647207250613865853868150836571310769261529277123430171729652249486702043851070823234488155812053462752047609321611451355918945380460542642085115955142332551171568064802283739787210716452130253145507612003423222450968216471289022461018329952713206883187108680333696573396994799148808479327424666134871035983811600178251480589682642440311406103393789305435592862229850408388184152348741040003780965782698222211781770675851364451756658540257342433819483181426546626847502827078102499041464618200541409802397275908088147308315102736910702826859938028662106587190808635267461637495605791437324433762709702078500813394121565075005216916125101212392930191962898556867868467740634133575242891271798561765589790161561124511676158555968822623250608550138127668575549146697579437836295536044226650105590220531400800880863554596925330359888818555503814034147398631136599296499356414578603082031143365932983239631386946389856231992923140213699955690137093401004901618094411760954428015474206954606831894414057239526465195303962140607133560080616111880715459019751713624364140076459486463632228610526498186760784830178953003296758497596729385742166094149546151975452315101677490248180111969172825825388980162848216228949986471420489392674183002821071317271785624909459231706617852898934275750580867355429357100339757019491401365781593509308770985512409904556966570014340614964963342060199559594059858280605865202675719185205489120543087321971743961982880417497598514659652363552452648866950889948412501228888184544600206793383315029215231614937134626370686545749179571908513092530153314416468658848578905933539317275689700997313250546981868683150038022604111281683153000046173044146422692660119871787641248433269988125918767391510624486614701450009614348731387741718439543413533520969762197291293305452286889743787632747239088811957648486886083592653402769411745931448997872867114132356535199428212559720302731075806391098849656957817874190960610270738234936828520907108893029220215782928654901562165351941594087464815438973960335132761197392872639289078521131410943178336926343261705153401794818650936195825104353618393096442158771031512754343805721806068125080400096924309392204029648786810999253058897037973592638526088507866774823024142815070115569005080302574897421872552219301778760827705638573217454527421439267581741845401730753863970781675689875223068779336106253680844859059124442660901917613113049567024000843160981401299501159084066687324993289345412736680344368286567986638332538836444259455020912542208344372890226744912075373295589468175915530191184250910692588593700875591714830047538446479065433326114369073025206178424907360832388966865180494303997607521103770947366062359377397473804492242528052487170613143952619069992947951961627278616283244127272082235776163281560120335713904773587171209729632074310778347000415939446478955867965106096335306041810723371246769790989667867660872610915287134530114328132555972369676612966961019552587231581744328309160889899478242903180465429081280508152697093122118756354586236463240574206757181795042443706248726982898088292595137975431964776630773736458119802193535986310656403886032772694716915918570951103313175408849140214962150069563883851843715683741971836609932397437750236649617858234023280325629467472222923778856015795102368768785424112762401418960922865989228833939244676480236970960873324130730096014963610372312220050894631414093129766065073258595579899331923347636065618706279336396746108786061100367798083571504550686615932305957211349558409522272051732628267373258401965759088759824445358836934080993683589862478733695182450333704954956287161010718577946920366489781076044291368511382848902646697970668779692806479150508660195986345582071654151709880033141564098512031481605888679681147836512235185660329347796216159077572701945779556462798962281910486928688652061622997640182905310326336265652328862734134818552180830762256737312848506811836352507650525385071943211676805774492707823427431507836977333269985889625299294194033256192239467517080757343051882789865346619725472939098167565883356444418486992593657391507028367431871016418325223554682960491886007065620939419273089298276892206482933253709565539024936873488170850907109591857069618324030611211890596994282549961713517629385495019431313145527184719418158728459935414578319183585997821805343127993375035502255344512276093482195821753207296868748375629300328222291999499736901750351156482595155273172934601948980077444319870898938415744116786887885360171795766629021340299270995814605434298803465440495195555126162318290130647636631171638966045830396113496114204933705902688860448176490005748721785041559708096515038021454866560157095538240084225620011166738119684256395024803253798750811431713913901271296351526110771465256360068976353278736542999900146307131934414362014054525236001198677717689886128864715529075355337001712159379450256092572808002122838554833775156226646385265678681770540614744365049980277289378063402367030834562181304489536552116079041517708233577873342508690737908458239820874529433674780611786428731609185002626842658092068000554802326192772132055150678923115166106665604344114801356489027797798150471223634458284052974925069684622056382052287112445152271006069927600270660150580138802251326654227144223091732492446019346869122597301188954037675728555011612556652325235711865178517175933526703393578779958038474088215785151362207501432217815295095347001599883868148147038270581309646453590037250500650913862952780173124960418787442952402402727902309006401663655231747211388785725168233337090797062444177648582839943987913972046286077227036936264086320192488066467376363148179950096618158640454834667236249110352451907711580153876113226311325383976410925390729221950389277167393979771792747000434309967367772133350398302024766006575526001871971356320924021971908154272595605311806512985616664435708614313201934710594055467638192803195096327340890564450831757893791664045033155334487634877488231030518711239770437892291702146308612260258124283592765017292089341633935962475694461041036353409363770528981427365418420203569750871184474419552772423203785229045088848347023461517764782151887738300277435032218929883997774128530190213649831042205021110240793441182504599460440927687155664877732283918775742863153624016813579868298088942813496861515480735092907949166443127767552740524631604069769484334194316146663785740360926538798568698545187339017997884436864471726815486685333506265797347393120398203356430176045380896214248357990387646413072846346781936652132909394866372673386396427163687377985661949783239760151261761891771881055015891263262207703240180533104875409931459657185910211722233349929853335729120794830904917122488532459852011569541714318892756969966544225416027578006481948575213214448479619536160214543564760828063707785941012935067808678821154353334731754218790953245365492105431842374620777324672410711670039252506575012233469018742686687856142005505699032989738166432663425797613429818635426801995056137257183136892798914197511837886985894557965511359016659371155283176966116219305269235280937481234047769696724363552630287002851824402738203475934462630631020488886608324498906598631192539574673881365249558695583909997948993193353740716419354813572842617049526318090467084031224616030688635378251561025005498712458535803906137208542365512480244317503902827950495061103431956993733987365268463204677136293412947186198336366005399813197673412172456952310457394611282737502748185501478128821138425552803768665481243861238197497222355608108299237398701188924231097840970653371367792464637242581180742223772905793706267352216088514483338302131997018692294568588014230241101876174841602911693369269673417967233146740137317299582199266508418411639347574910267114430855557023009241618439326155743026272381233222236221126539046567687400303096971572068576867768052114984157374686777448022566401872935423646013843116195711446907141099022315058887355241040143897058074461616999236650418088077430191054890310076058851833364716597751358736582454956053129680462190500209906379280094226399208214720096706499016857073944780292005562445460442690876124418229818365490051229180778170907799436031010689405899375434675144467124644238805690885298338356767761502596277065515798782045454090246739600353770915082643895855942747970211265767590433873733721082290720246174945149665233451679686285311463809127182379117704999261805937405710319211553609682389191502355631150640860345559346256902075694252213116654128406759069923044309279638124320873570640519282918217697901580797197864910381411669098894708746265884942245269069880385136507039455111056586281446239581335825962881425502222330345250099684159044844939886818578286373511881022725289186201971811407661534615439819857342487442460696820412081056615857181406245072112508598450819963825214019958457663923163006144802673406613253074152609561019499876225649768177893822569827522055491250562337080477493793339685788037985055985452060061688934404543204319838733634754903302755103128555374254230362818813300675061244585627540712937618378558293210604149704539383990748329174929047370400026421089574647208716732583417036554879368513104145910102183633336338521820178055411871159516379958129298028670377585143204144758061940374073996138030768085562537337228907385141244875489479010240929953339546582824339404596024656659361500854959402762742986378243949505418360247409040301939703812376952201215315772206973443284062391862062909284904398051692416834354223825671963471852830874391949328000599767499737542947254928451504209124911531770109223196944440522920822162976800126436510352308346736812406885946281357947886705269690235711561924799775728992661437070142235147403073931397072792615368649020755582740976019728964791553916803264290929351435666475885422369873206213389347325400097375924067713728812408485739612461842704670714554878035885438548481093734980211444718587507026715406263462844240398009083728933493116663499001106324061212134353755129094400473861129375038644825187147406857572951645942347083286076988101802455540400054315151725350542699840248142974182452099922925596595699948226351703530330969954902804255271148147186244391929138453470802233410332052851668172604853569846191660194168761073299235330040324036731435533348968630035843105799619423060814974577045611467630521445963739030436050402425155337187419805160378301643003583995057269394046488307917909287554360223189948844537368679614883052665652843813685161291417040719346018031870506315580891558451239783335274734753271130247693141640365965641536432902521741686383029928489341940514726620371927257193080706335347957471491064065230274415517644971703105180915883534078205723861216736344530606574501400271810288702819396905957428296500207362487534747755659895932592852726343407870450421731508664626363521343321793114290720302059134209660896290450443561819793889854358543359169734391484163922157080668641004631670555442406652888241676974952737786111819750183673977262972788119939661264059365878670316285447405247827480331668037992223225958126384181685483197454739661439419793213203027416948246338218273534288310631630454471759999869011322916203617526780589673567016354201677229729696558053194471405287417996319714472106959676312742299802976801359827173708723476348406428948018154379005557112382032872746329709887597171729758186107373731928812979405576046291518904922837871440863855102165493685062273867587819349944144512091146701430141368240300457575370455445646221627869102866538837567997563209502270246206409123333563815054374962772994223669088970577537471631434508410373168050885427962769889350891536575894388103305222873526698933815953695166009041957329217506898563029849118124288105979247812167758793564607600629217826544604769614553140088302861811329262145131377766670083260873244710448488822061178963543821974811473934500057250303897027812527997146949261097566856538466252593508217253039155910475958555843211527133043561003614032006671279263043242498452602004066413408376399636003282213563488968980720462704483617141776640652794530095668002401254722010880841926749012333012889815719431106695770227433352708289464443990905425975151677191367513183993487543986865232703849733272776252691913717674011373363721048187417966101036727425970145220538458181107340094246074843431787335805956398568794292941357481436884912374989530818622140975875997934735076678547981848725703640780012788918193864485982160907058885211232506187213090273851250668802280269517611327511022193600642472602716742682286968541615390995025356912712126773803716264145495180813540497699065311626456676290109012720984066135078551007629869815120095205538554825986186515128894765134438744791070782321554509257046463409666148030003177845920781450007652169750394466388181100302973337905847772295693908252902971119699260867136593852405762024821985264413626257423907481423636989275701323035105614561200562281974389126319422573702923077016153714745272541422958051559788576439640392663085340231361144366521812599718731012990709964087417560345054155945768028590149355911158818258355551009821555593033309316934673920557248311286126267817862139665981639044333731564713552024657052457568512124013170584579515198842823108349532880297618775569650527957551497993919239556495835687376967215402810675449982418477953204250948107737471928984184383499426810458471829821220476192752812391752686122748716331223312903010056374257980729673394810560090247208744605969069882246588974804891623428238049562116931771710718601711613823893998078114383354576750308059098972664313739142375688904175872262722974494225510078087589532582725453324095264185328362315877784959918397544691732996902089591143877272044460754960021236357118967492049872828735179386936101479145207647814596512035604324634265973331954522421581402717542048310161143583296909961396385480843096176078402587811655446776991361066316280160053058792176359046122978807260089653469964374251272139126732375304025213626160288640008254552687306341447867783147085721899688543533816635985494800208874941517854628533096189387855073067632444217677630794166923653885697938518117161769666505356985460220951833579496630258198131265448139067826480918223838173089867132587304593492837297310185115794824294242649167881099557712634266801000214439605407840147724510060715122692887180259145877433565448599486709862656802367540295252884370571830361627280547639616944957499100367085994039905250414409887356074137900917753133670503093030323527644271746099906293910473745170615164056749368250982656556623869484812757841934466649129033442632634015804404348445376401676978226976581727141093085580268226516056401719957800220220330785534361650010456917852724072105620461015611193330797273204505111317318455351431874690112332811933677621795929846922120541504438431118785735125775987011868945288094830010505812411979982271816977296853953378591028214151163081542690702184779868134347322828434746605235161452280658528134578179867343773632869305507610658534865259224550057728878442567573194687019907199595787396497868698388773034672488098983167100122755394950943159870530155113807243954694151195449666887981194724240022270010750658727485462387233652137082457638274297948755732160158714852318664920054984318589103543320915476273636224980658130269106571935277878080829011611681396230065344124606801039557047362456841959456154521134314281409467042378382704770653406927349251274048485308042654517715289410515146211846979881195070358981198540155967012504096193546486811033594916061381746729229543015736600871450407754920071108739645630340333297281853233134593643597174786947736725991484576797620246031414424856141017349747861552018348086415146897594317109971234612034937094256953613557343749725324329057470245266475938057383567493629289460722637830794354491168216587354996453183356099802000389736512121751901411736438714548840275114204145499493525941399771447996985260821273803765904456812642237243898965757031216546794433826127230926171158228927876231444374883613661488433099689647462648558108131229118990868166479103655909646371816534496858896964102652482018241786811041941349734889194087068080362776288158513126696348353737460404085163087610674704792160180586666776454998016527739997349079772754933507392273610954466836507176101225202646359705497797746402585914793328218359750596095569788938015634901998445381633467742993885829287912580538582671757927385068515828798003115020116585425302979886248971062275081032605739481615439126493667163481606666693852484788601579970201893598561106321783543785385524195609873242759923208079577826219444712161291046869557417279229713347467510074413757808815053853761795950942758624866063839698345836618398481508398213240905494424044978904148327681567884469302562965851884660022356997113336228570298387241882132973062959953337638874579250383861133571177027367503953457993920117206231391903862483395275085557088895694257446454015654284012570609918300144024667428437559915026808378690009300743515042358427235381129517166007433608995126769509168786121374461645254253371815626643713737877942783483191534003665670713223621555090080602966813950903920674140821697006007042793769371392139806861611278265522058130031171036100378871657122838585013791446524546771074720042312033422548923691439942891442178457442391484330984175945596782326978995974880525132841146465864616775993220743421775190498573823105486614278839299466604063153165117919488178876650289368988759457997046129886083756482038487872628160716138206268246662814677676343868691416120267242938891078432367681575413050805656571201360371892377721908921025849889956819156333904758673053250842600192810835458178457775219287261998755060193411102568114883247723266136165503630413706684765468012683542761292090763252054766454602542011075747453311569127647154623153628390568603617878468315766316664421340453214877892319992207068710391233960013930502797609465981756112136838940035576524061323035340109742011620778492353565165065352489430163209984668181559119466923066089674250605365711083801637990975507879334271158285145007488980925858492761062485357713669435024573909112481151737809024226365105336320822732860615911506041755075962883482576602340480582247377530876283861580065163158282341658807901441871611191009318944838502336829909117291051860288871477229993287812073236380238411130339577942338642957184329073348255822451336229167388677016776535198368981785505244617759993174487517410101270028735746553563770013043526832211739510545845960558433873133340779728729156926497246601614912357887461462466628876180110066256292875295101004359703394845597891014086808528359135611542222329190916273082874137056437733186843460341279641300247316071081020614439055157995780896637761169971748214604776241334595155548076248119327311175559407883584732867413341603203290716770591789799881473366002438614369965523268971723141363872380262857650630750887240537406730076865791559214311787682055637177868432411778389537058983968359672254822503213900434345386908680171593031955970087521735700621890784180647229589227399212803486702371368474168339712399197382389550817815636704541946038871059187213354588215761145697690347460567054032753812524516706698856196623005631876350878385148625581703983822278760335844224350755034091723713993297341166877770101852139341634861051599233758728213179915465698410257820753925363417106295182877608547432325727163181704462966648905693027138472300579105068140430650149327525310964595083479734662917278940606323059850596394112884983288295072469507297728361219498393193857427814425198314015770227593470053509322345595324052281050886332721168970548254497613003300237162537645607226860778427772047632800789051124769636615652023379087556494469089883193154653911713250939120822423164015770463222512049821099529308983518726516648629545155750279803822990783105457998138176821562982716268437756701037567822578818093676773624290024266074695272551790923243880655544579433128156762228934239306317863994493045573188357642182168141425587679513691388508589669076037153551114583474825526422583595066592670143892458458919975784099761907671056768032303269621711682978059264249687583876761366682689812859753306510665698740370169289613802444917264949918236450191928152718171189494158240514739489933863636606647967403962752290737066503685919249847782059709550231125897857363238342458100949490329788812092047470137873097827733436633950752995660532236286608052852387496962401922095021182955295892184179559961522688026282997928770484615106320999245835237386181768528798002501711113506304004257119196231424759812524395287522072871313459999535083388876655930495019189559494991908581343657005956458267195314756468401816979879053990699949810542496022494683168722595268954575250954532584542834876046822687149869499649731960995958336381853085261552625856959762058154017382012652604927700385605700509211839069028579782106409446036327490818389177779288213880863121418500756616735630322259216046982055958379832157031215850999939674248532456400501275703808999847241639611085317679880836609565598309355529691893475908198203310806305965987400312775958451413965592973972177748029182534858092746168223723546375439958532262846366211129486032312125683651893144572744339510861124577636312110793791943760790076504328569617599856443575420534284067786475353160618603745935129415764737456087267537695680563344775812760213949204456922819956506981859418138647249166684498708869286226279528550195286828120154029973456004463894326615262884332196230664207271151881126241238173854930140884393139084790400612438155299484244822102710285047357834240438168063554553986771571089017070420698042429621247860423888183574506171345672892459135973142148267588357410976877176792412394309515724232368544953057121110748518185479288534902229023424510605421075307951000732026938422014221851356161226894175440710973631545268047200670437234142574008852300872396975437961879937668772870249469457365861498691227423923283832716886323614019896188218601465046585548747619161570535501081924563195751869950233352325414819398910099509050528555856593824917299778023122549392850822500412074673875740672821184949488693293096678953913466191171774991997500777873759805675843475605914189840598872980940482960613879090641582850587737844894878994145101419481702615039637341096303267532051991776262061431702908708551903679570011680262708681631134897086861659713652889498246869903148401506489795682684285507817569594339701843895137479301879861673915922588380452317673341181003520393738650375033397603285029133451387623722377240936736777935315662650482248813314122139322243146268930899697461689420601778451116602362634211864725502674285941162064059578529473214111181790151688929413335501721720191228943782513479621268751924665043965307789772675609368169560791384486381028417998624733297298795764681927552333393361083325143777500702999932779159954034606654619675667445501927275493226524546678890706504828094527093210199339819506202366167863410311856862142081987690791308836563402551850379119483527442803851597100953511647948642597523003320340176384093788700829176942797695894984552978016912768129562245966812060235254642075355906581609042959197998453475133164973082982265808360693145285309299435979325392296016332128911685241463315564474961123002146733325462108857365422088695425242732805808378156894866647201485132937862801224865392986957623048180229554710926897973244388488157070756812740629303079906467205148004539757981281157785379403050547486712560771704827276060128223646009218035491386806963477835047465936168026970784150270450504318519224476642299117918301306921395295768799688113137005141338368229555702741789688493809102691424292509657370627118004000897197853785885847940118332984914480014730622928795378297211394080532698367859109093371067058167553296952043473615170557867407616959309789859532401975667237523050878262498927056699562046149439660773107058638134207814818701921151930514224135948327114156416195936017291669362737486576526367230262934986460857418590680511098568412885941046338221155168154311862799041900907879637112800165975393219720966132502967250939904893376046333061955176786618440368560026681536141444973337713781832127567048378246214608736238443492640011885136937837825243520592022666590867838968734409615939387702271366218764642131589104253024784113017925572629360827442041904581025872161078492387438090770905987511994102296463261105345747082496695019007578543568320478429829052963774156502295356265793664043587516221680389737854703830478561120309030551862348010953850193303265334885164218597303551039990335653786820788647520103903931720629957928459112387196466018850024540255952717454872169538820986220728108373392349109450318763776439489227218863738074828717508083959260494296102972671070178691530874976707997563279750020643922286246528540886178963453563289134451408645751421466936887904573555226940403588046203832630355299722901926197794701510727433586146152404559620008658384814332372379315487291684827834373028146625826654234454256068669339729346607112953052068288651967087439338309122944799131874432846308911206378699131996895026446827097825430724347509752938916430319645440047995511212838899476530377605938450333879711836076738367765194604898542731457860079582358452590366488000139993719747787393134647982148682694550808045479078220196310413402074620482471278204887699933860389749207272131248191762647502499672150822276730287854173557253622780541179917275167872766472646855260827895042194161061114955941485776168359382534631590999767789888007815513000687382084079309238613479523407323496376233326847587678607704789599202745272698815327569158496447322715171701393114287537979861296236442687991333698894199198126515088733172134670357451771269297943155112823781442532599454711072156012142920715347050243684316563825471768922755426910496719018289007489132853602406244486992263606445364368880291215215140425532733970612842957781875955956197996882759574625440571643115016403855075894396126234098690456462038127040415321528714330800346962271326195416083121754830874456239718832790853549251334678525824590974190925381834847722608872832272978894965587983467207710754181607005602981575055708887387139018424392829343002018350079865371902550454137261758382661427980965568823162922351077718645576212437532363864186706950648570041901850258347263370416089485249462877022809052434747597148935927680952622174090429329965064271613599614057130705392901798489784522431834413478284608913613517873379853088987994576279413673874531798864353007808467221560488780373828832497041839508132029683578092039364501455143411748941403691417718273671885459944347255435262729567342446668201927926577286748642033621024417052577869249028587433029586256563710574044522714396675013926460117207545485407046700628797048724119445833019524871373831560625525159626718599426576052577330985141497860780995687740266138791318033086578421234213703325059882973406745913805407955540045744340889869928920018200190133511674679566127939477721253789673037530452935113708153388783032292376903625531502459690370259846409027334976243734635605617318391995858289195801628194882633067925747055009034687108962993246518073919122927706050832612649506098352786529136780663376027101669588316397080962572448580439599904811458743799721666566019865556020114192569817853693410522128110619378154984457571427533894831531990735073357810213899468938731816148294503936048756374160236598806395051356518455181818498031502683863088373915843252290927239504570196609903079756423902426004545795321391808342284027107192166808634677137665996334843416633142001473941360605919768265407863574361247232569708013661130832634186331711610718428165819573494648323460263462787696219943644690017030492959233534888472375980414561464127558434181998592246422207440471418877482101255289370938977016598058457396524838371711291938116298352390611232104906885176481248085706535601056075437426243351549090863739453838340440919220487594635392303096150889498827497813206593874313343973758659979349512572362953469306944516461476448864583083119517593766839529111913256867784332836053045236360457485460661038700477826079289534473577381139129396368264315851720216410634258752933321675953050287060074167963336285992344566357552981337517804622657547262379169906412695183739519855016017677878164929596048197587531572532591013841871758221671945516193594780663971362277494728197339636200134938583352947104235373750259832413264609813858497612539645855072447640232241641066964848706796311670774761122437278144749925964864182811539703569498320141802955975976430009144165173522644505948163137267338640193977937032575345047460186231605363125016728097583486793211229817252166019222165525693804597368802928679925533910595528874413903848501003214623017813450600789267881036539004040551149936228456476384449985420601912464176561775108309517082224069351165949239254808336539812460801768235340086463668004149801589194857357396331700367902936414118135554081688492187179982283833808515049165827570102429743148445760676804696486377618762881370650648924947065477578740584041200768513589287827361195204518637605725258090334777930553791138685922950384471074640995962266987214797663527596508241641776694992347936250801236907147569059119944027742883070763863545449526113209120413781159590835499965431586096961578840109797478538542223962720685503874338949940098180919917653122615220166997806393464913209478352554793101315490202683374158315103131694816674416457989638716947665632504066892414351770446608532092025181629122364976874185442997479264504610058574540791927486149438144389724678982214129498703968915308497899444306140774183349751542455832607921608581860732633139063829769453562999927016933676476528532959952198774399373082155111993679130191253700100409965960599095339074043924023244976576515829055339861242797704144880672644909136880131059822198632247006222552746849674171842626196588927322340292378943800538079246890760120241228113411336211489467323432844094055689941132167918550176411019024182880033236598334599528492121897773720717692377631193064239097890119482304367719428708666224414848407808999404294442381067670513534277042901516884575239810923434822825527652787345223764488010409420180021591573872977857793950311716876663176670999294591219535402649451806993343466362969850562627533572510055933982042435166473038215342999628863404536345059657206918461963907590432964024794005021107450390079923884328742108970701275655693430735652168345242389178593497623004696234291694682987716520140391175351209460515982049425463352922553487220017803161018103815078074026160106523267488364398403856904172602730216596568681945893041985456492195015913078205054736392622206967841728012077048472687191497565499039522907405031935990661638205819024463345179857220165873189036373979613557501848219520142081971346347724020303493767456399900634922736694943332304787033282363399326225723759863703548880947579663394813226992769986461556408942337465134309942745343500827348713104986198596680132708379298372979753818178216470654700468706997936456930259512173802300626891026010674840226317714039080241127172982435966989465519998003835667150172697388172750562211715933783776872791360663504064881657335033934301956425873932186277876910682593011093051490436236408956782032780630849268970345194119717766616926383923052228271374841632091662112013155170318842853592848628068151749747567909143282561639182694316271568373457853343878965883287033761186150224510124296346514558283678427444004936616215153925997048069777171238837502526563406710238602028244425036873419706889238514323783994339480550478780008826181210525775390456629903620033843035811224321782831900918529970831428481404212386092608311656279842206710876795089154563041425995964421557348903869629675747132559620392203677203351158768364282061633254596497100444505886252527473122208233290678486237064514537542699737360724981070310325134477021422677123961897155357935115645441061837747849260284835089484131399931113975235779652724766089999629208106835919407433977119614988735974728975848909353854588790112819194337380078923436700372307332896686743952473741363974055705609454686265149107572498906169639460668341595255023267146460711094246091917848580295291964582827684248421868758319089521788851637999213966389236639032944929537532319780350326213603851790055462824234251181462519860056201860257432418461555144108837450494833858666492512066763818869387983887110018089362830695897986488720893555453302194760124379445392907562058414957246806015903996517482833940036002444322978817107242611990646497049049583918840723708041325339080779821587664855974831769335209073536432397473069251397869334404057396758270019322578903279988718821771328046385867573250294939757327648630555480002155662479210549080254207832367053469863033949910783428623461747104459051069149792616678268002325706068197539628763199313929624873250078742942149113400203197224218797855802977338892692262969395867716179785818876801546361764338418407717008044460006315552755372721782548046782738224140486398942117761071166871894145768409113438441073997596010447008458577743206308470863111731821296680742488577587094408762020913109710460174298276924849921145124956797586190717635593994879692466460295292469018431257077976146020441252539290540186089904809458834548839373400659195190147111753278106682637594510928594560891897428835081932816713491659576253979109485960412172410862351409729539864977817311606914301521391656225636494595747696117284901208615837138679851211356248822881551992764096182782135802959409917420939790365841916892319141704410448873119319902901958574734916986929556290240699973160274312396981360356179460359141174864131062132981107976551889089085379275852177869427872463264833690362219306703579963404691615414995051614101760857380761449715344116859265841920960156877510044437611284594592069525390975932063544293211773051737334895470506410195852789111329742061086605040761625523453892146760086335224437095794104171975937130409027012364128027563376405565745504148564706548522476109397955385320656526621323699013226730457328016353805683056108597800994634224255542580365241406287055735762439525401006462633377242865604787590985946951879099771285565146402274856042028260194232878344662998463650218686780230540229827684549412233478743458754371475610871111999125194467110826173723483507960941275687395499691420180376644235904079985517358295428791235250987584717144174083615975118251425421515247114041175905773037036976515602910099019257077195825535678050569585101532260487981124984958695462952393327501722589857214207331894359811411217682498908801370414485540220932020121822795661449151553507814430681789581303235304285108219585959998566766346634185015893065852949142284963799854256729003922754246733013708872199910900641105085529061665534839511692274415178321057187687175590517726604587117626686616430383714241711028811380626519830540782124153408720334559494524919278531370649413635733263239436548315570849130529159219401866790009334528504969041981526763883115340940826130251624274282557728194616079754946108061867609304026481011734545005136338757219454579833257191808151279408136035098457967287293467944353782984597128249960840140259118990185953167072968139388208188097461366475892476211989045347809411016311549292523483665639084252907804140193867454948897617607423266150726139770398630144866076633696170158088374110073040698426604038357868083782282146461638035747861969232088261845185232818385325739918418067106314845519693551241361276408607274349994562747987701124654819244769617983150839078626510772835649210219599923381907281721990316573628326562890778603074374437025363456045113108656379193058669757765002496646330530699024286177674003054199022557482527523671619787013985492392109262592986623792229670297067554765385818026596069428229289565529862897219126116663377217280425633717106307056176701990425759801198607031972758597629387505137652628192988805510863080477514380013304249242050394333721112854955455235961629692982079396351183935665173373643706786371265086031481925400617184223057498630659920681631323107512037919390999065565308232231177657805831263363240363261340208759587398536136411511882066875322339770373711952463721832669034577454344487936411036062791818916139597350296554296700131390463735564492300113951756774466283273894592681111723707861389783296542340899030269617539504382649785324225928556967608364847010365102144395069794404824471192938119054564642163083885501398818378312531774995236131710718741505267254980915008664765328799514867111291054349756597097837591981336986094614623798338648363352898591470731800898189817196374483441456382444521794969046943925594570477856261733739099880749040265846738631121278592624904259669497968448744633758353321524045186028369977560174462828376616872979623315134679207514931108250937362357325547219906009299576359987299373922451186542740180489853740622089433071156695460664515238750178731469588360958627500353962639185203319735610743967687838361000432810917280575160449775075696682331440357039808197056552885803459454012596902701117025145369622604570460165012598304250367668887631105746489095292972366181756777849575916882243143121771190436647051480104923699037338409214489796006246877800625374981244661062483531728429499753487345545544490197110993718547924967968138004743366360699499569361956827201081818124957958016606569536014827473270734977760009937468247374322007827327405062574912038598917533903663692877215831306736494413770421508081742901697405243576463614957591719496116082561007947445811059615884298441338769647576468441764988615159052923768404361327624603280134768995433369208812392327442774366683789789531456417128515556277666168135089918752007841352759556597494577700355900863065134716595404625981192729722375764539897013940976655935519480956104274780389367183057420216888227465926378760907422361526536052107050224728739633624375502688520627427807618838918003375177732545264311605720762255439651311774172007575183556896441463337895141085980548974464496764544037492981663182295159406137073129620151570287045238664105085049143166739535647883772565256221591482034769313437167483210287032234427701064494294043764795017379345599873583942455547773929696157664627298368465898351927395650137544716189106527037259323671879498338628653692141274267398725361735219698605604482286902798631127558574824139106660988453011623341991103349533129393741026155317715658829777634395873521176391132299588355273188648213325120549274742292819017440575189253704054174907899062092155162954329521936100256840538022084892801055221652202301921357103818117002813886189799172032625598076689685407905488054156844029284660814906259773362809626325659402758392496810579104626534683355945332182130094798521851165393270867197529261356269038459570323620211524249266067751718701874506924091550889730808457252142097586530396876330731234858737947596732553616473977726960500263700750101505298452902144820429986492320107455974116818664076880569668372243826650686344815572134718260061912255649282122025859773337379772985906251093614326642949677325645734282578950418960336454323585043866841997267517332909350242456045712673317111194639223641215070416591383125661983071455439128738531393594444899869382725284632934113873544350201253193511938784568204128963193590289062314170147967960110925666281757238480157098303726038734996582118897355160199610733315140968076957526552397220026182628156049075928058895978307959161336272895592229771766466611051190691874747994504686760934792260863909870126042842520086779932645274526694395532959142880170367730534131937197707945492658282776695582486176108655774423346284260165185869824753546137759098386027022559348698315825691103548128666051481999258043461304752906608415110777752744207218745992137359303050907608514968711905314532243082268491397834277185839654227121028044790098396759066284293195875490749936422038741116754049202609737553807805940472775559645361350082520776317420947587733048972377305357328860125655087089584995539455455413504938005148819697534755878822906459293627690480761011914571742064136984178913064969459550144960634430947367077041254173534516154521326344665862435023551210391006988763525982358047110908602585347190243229561663118607482434957368744138973236476983470126747602765748403766583174285801596135727199843487318687197256593572513730627876765112511136773179313833066043221952145242362601131170912773120731694485655454444824949079250990768404580583463754589092879522066573364738459080097222415074592040478398015800936309551476287349799680851107330916364515196257825179052015945935124724213109502894255568771541430884862880745586090178780019961700800220200692069103690719533211825175563487632439052239809491564109149330077825672693852840261610828182900079301908885304755876551331790055928585870318373815487516980514896103512613898729729385227537763166962021827546930399849631268842369681708016148171335822779086917698059506968038945303140357918826230462962432366597834297066553674003032608022303989351323903925712288557114001890415240962785256856140466992888165955097814677569076415943374043525563306674461283427387994815561503496512243812660342388365142581238776481125577339226454201747741517719723090273558301293184845118309730783126447257671004403457565071033439595974944965698445117017448689498416954447988010911617074501667478584494138322186651422314804461008421010637384100520241921458626883676927518784276233324755995734773728317958940952003903230385492709596403766263865492431363826845440975721031035728808274451316998971161879380955897669784721335436071343354042681234901955655739703398674530177890287352861070833909352374635348516617248931057202629731436008889920727778786975236713713224993305133959302118821762741896290052490326399324808258718184640723821200864013684434801591000731627381095085322889900006914265837606579811764837745248176052766415916424375248804245582912971098839896553593173289563015328379495861150656343726484982931425040867878976864485659316584073991372807817744624076094380685430908436589341642676379383235632847368913835572377076386472114036688140567602210437757365050075667221117463594639484856025483311846836115566510515126599262218692403999589318122466777004934513819864888349774041174050105594342871098829712778334026879572124297715649901095306348694250802036779607041507402653742071089185482467782868401390187424508177695564293949908522626681063389320671831254348397686397009689291303953269935229805783845002200741501305033528621841785497683528214645628939261343756095916666701141127239448520609108055124291895580359372888594743458527125764363889756431468370141973290995379900933922849718813339418426690326061278681797589640117705005230597694167429681037337926988645763568457958311378636031361862603269431724109827546051174425041891420631483882261606656640729518345721363256287805395570520553350685704068612699153003227156427129300704256566798011812934555511452613166426855287709317517979202838796727876724269262228156924177901632354369394486631763638220936808328150433790607712878604870402297300206882705130660673980762719849174109402152674918529663802533961207070999656627172536482455196386195773656569096430335075157742262290367618739714078169081187628431044916380583997416832395537768039656159184131693930751909715980918543241341329263087939613936656729218204986027138801681784097799763219944408668552152864430470018972234146389946095352041249370728106429454085543194235956146115392509609331609321967125537139551671966053049951314135363260619105971384626674807710393877223536348878027601324903371934441625316283894739030271357280179000315637758473161196177275799479663751098796490274083326233108590853437299263344516004592848422289874552168485516354662947545193432281160246015692405196122239601207306486358306358696808827984831715566489205260324153239075580129282934909625961106527694444835791501858722840886645238136161174765423265869220587837686541020332571591802810173887207473659132785875103729318607799806221360867546909288091486330964818114701194925131883608290740111644523325011560015978181368060707912184674746414951929216911887255968828458540920780775653910211499296888947063442593710670023891932627633991556870541376546395457863100684124949658585283490166958526984616744863359493270095683217014106306137033661998075498558262930371129140779630586911108846259633374521873372865913650940934565622955031674243700283418162991885281963257171373181486354658950499683329035169472408601566005393718783069683360307640464702770111567172119574496108588705732411096009534078468225022992583971448832195952538150051593973442371200296997361861268425895510680718708832145179998536024633196260485899263497043019534701602197090667228599032131816020886513857459186316510149039079068444927687167824704057966770686931768784272502812273970348754272857424646794632397525909087173761271743031277294476256694196336984406066714031020935861203884860949400173382881398882280514637346367576858356877475296897737137883506351986836130869151848423357846936752780297952079718163232519515296495235353473827736893934119094143058822566320490990100240319811623955530176615678508159876950385666788197469225570861059165720942936662825493110862701724293956250741226356888136098726023100860733736847084637954395799631367126096057933047086942575441112294117040085000990747342513677148345680575429919847702851117600684428003698260934561631539907975767004470546412706440228711750723616937831604774257508924997695512944494986540188519554515182759898932009315494003699949292567743295531560803018027984353633191671730462523446510375153232340835231781060182942843269749096384399430676568551583408775326997840200368200912433512119295591529841218832778995292959406492106807850083652488629800981171971492295104259573562422562436068902177136216955864550179592701709350534916084491677334644249171425258204736218530017899249516443760590367383843415952254451823714978279272716530469078989636752563491400220763072372613224262998267800361013579291644756797757744455646499696937178906107338963110850791235654690445101556377256570164192792101701569638015255162911909672544593905551776994810065260258616618276802016489537312535409278856169257545797980826129268510018109857162189824617195862719543087595773258759493921421882862044309249454411514686634655153996205490434946522851060645496417981795392893834295256353718415439219259614019965105716811847413332533196404551853405153571799989415908790251999648298863391416458830823095037252484164596802043821099131344404896121835853228532355502161117197965498718829539813949767784457528499458601973880641558254275496901084211734566553059977451080450804945578185263240497910726251963494175881013234562164397232692500161117954140811184022842970625021905415352820507763748001159267178454562993341313551169916114840847099746039253094316814579037636182908715611146891416914144700121578996282568870967708941908613182749687985769529358814958182358529832086137263059480954175341999497318215884545332994314757155744731856431332786718304011839028045929183088465213652417521910758139881550592592735425340256253313979699756406990270681464970385734680147589988934501650773009016194449932314038753653664177480320293209242215059495110983488209990873403512765201414502175801416304975434967944279380084947794409459576206767234636969357575919318626593824262744571904409157730927647203448323512017956709904650519395871648190628277736676244330708304397108083627177272821604561366690977457671155140185317994128056602595871225910563962990735728159642541029277504823130837309702934015283078562586135161185079664111682047040247798025179299825919668643675659365062533202276809762159973334094221028201593882056885649781167463321967741218428448482297395185838670188424450995825104537945510466074952978801208776824584790152910183847361039457753176980197151275971229361042685716872268225283576752413674974865009567251983690678849248264515519310125813995603235545566777443896040939920299951214610529579893621686895856556489445780654897182946233638026314389539741927329008633068977654291387444256957680198591213983141966166730621623895218468704351058992229603879880997575937772517782637132201787666826075984405980159131075185666183054333849005725383720944587098778694402114420661866484880285780497446418259116591761176446471949658661988806150634322987391601515918890664579426057567619909663140741844673132103853968654941063964829224960620224147899547043266617451821547501517751998829718548523827816101367405911300734192812038491330227977912269958019804926278596896954526035085677991703097015142103361663078976513550686689126568634778010565075653591824932186925768411210115227493735059729059065687853739478102543077712850761446839639224528105979299781647852022514159263690192337358655968518761684150103975925109734317350667911884107272489207219747389344112046372670720759895425825262860368347869215391271191279448154497520614194780076296313184288484832543219078972834289886440236974179993201682618869895335725246963760584806286066372219184121329296677707084439234137537111935179946866297094972271690359446218566871707036369897183423377453775995024552628476377463894441592420677547625955135774111639711258144942598555758764129933760680789466909336273304852629929950835264425613597527397485323423712947820170236734042102480084873357234777148101015392569790410610557338877659365905197119452243488937131930758133015822567496207655527327981204759381351224914725133558422841894913886985007988726726396500567313224527214001223173107509540108585863217612991921720912689607538164055718432853336982123266327971955198521977963537937298634304798525676723136640389258893616447678637793015093371986845211706311448098696143049545478993273090417489743680244475344710508548726107676632867416144830725630871028269143900709756228555058077802842083348338349879197760902049222565207275902588207486829349798722386539729644784533003545005348815085687397399535533363638439959456432717458262363198475887422274318179871522482997147668768319142964163069147975908999142716230623845799654274634299368695060071269836649947312153914776920385348062273482866771635679635100604166160472125512564627211410482254355421428932605759212661106530027943940125120064344613052250096768774720859302156637920542839407392298151038503561650624008871779312592324968772161917403503444152808189945504638280831680618389559876052505407407591825386126473090352340285740948647131787918305625315143224721381666794754229586247242292027163478048499770146583096379490624729007874941908885023196418159303679946481411692456805628469075341812956403889526777431397621922972531057374869492533570331285399398863272771547902845748972920431932848760752740428205919524157577290161463322345694919951500444820436913034241586107044356132920404983376512878110625801364912428412249100718710325567082858097391180482487144357918324262365606299853149779855601006640373713919915677054144564195732540493100305241547128537124509436140029106011499229927428675853775397248893972758807497691864121380156534066936145790997113937502670599234935069949858066549566774955768432940073790471970773282432961070939327837628321178831825722956519792697297002075882502588519359461980262026571484172178090320862190466802732166487951293250758393728092459622716982269414778496866816502026570112016320153409172906997993802585473765133102178728697022364471102769128758758444876428614510918321112662331385248371389642031325140501815113056723554824840686133474270803342772513630026609033647289621996637303616398016063518784638243232992969091795612796745220868576206596746881547925648373057270594335833310339938604139884763882386848941978841414064586718370595054585721310271194434944127666069641348938164504927386643627595180256125127598399897942824813522685844588509105939117854760262009683939025453055401887367162859341803897583699536559418751326105751101648698879306997786170683581721795825746327759747743337847758178153072035306031221579337782879623562539493453988389304800537600518631278857929565781641582153476403343829951375376225536984967296219821022358170518580022100752351039689672762616322271265661782345410157005857172752335512692090010865798312520357637821644374674321364492595864979636471117138074616955260084960679880369306813600183391894932705903252671546885895903976080049637569199886868502492295507992803628247616627943503698795362747087736350036311771078717024980148040408292601278446270193437485864526206087476375958143838861304707703145521751149426496689642103383031742313146626755209994698427810559077227915343253853579721798944119246307534663723589480911140889645102088513935307189600383279207787732331600690424106467278833661224140187153267576845917557305590665210560018480272933318577545074161815959791273020056227179982643070450317169121689456457014259469763610469401787472055759975626692606203491025435358615907908230958735096596361837536911517070759767945422840573700150162607997670463609898775974828583063367738951098177437305778470134895698218532022163262035783927696816577758338230420207338316280064788803928810141367330812916559117615587661410326708580354741284698969562348530938004692278310886846474187461024159050521345666625048258884230925062779736258088093412610097714950269886196465734757493480747821634328170536847018556720976772064201788885805890648237849519296230348744953675699666288513819910503440380694517213059107983068825470754207060065942655228741545617867424988316168239107570646262776385615892945537407633104362000780570646467148858653767777955928947563626429226262057861225184176497718494153931182203162349930355417956683174882649459442984910912849306890930662044740403599778741609349810050166935131214048432323447614781160115807024374576939694659679753150040408440165915481534995945847943673870735517200896324354285916117690690489036977045290389660173043551507052722909809720148106093860784779398492648196447367448162143244887179389953882296361627110312087359226038567530124738109842163445643068487124117762100366459320285993844556270739413769059064487270294922296948337376236020038765338722682103007487513917007260974100111582965870876904303397622320981112535169808577219476438736149036966593388784174615318588331097509272762339782966481731363367393833760583412298820045101564942184542787057349786630535230625031069437755875414294195656187149298237409680533465984183538931816398029833709278864024253041036830771416031603269926128980739902507391488080000892858598883583063180501665245906851608619642444382514372325708925295361871933937125464448613933692958870759326023713505782832754750225732844853402694971841196337191307809492302110074153940912422601840596662253240217347027000555391916468033710750915672757176760708503242550183029374810699034558869005954598573243871990606413135218635218153391777421198472567527989509003892918180430559969789907142846009259901031179890862055966391193579330370379403437484942141208946391371749528120131961023227709378815298112998183829378276264533956098484521335082941020079060819480372881829141850474665816619884555223130743554729345672526201056928796990733326296802350340013626602487142296463013841036314619021724277014300010349019737030828249180081445837465612327641294633174215557250881220314555812868637239472083914001575189875165900645348972493937812041796005075955968564773453328177238004171129777464192341077638106250238789250335536911518719236067134016398279313012938286965799676809125373365313347790866851611849418558555681693531760098865686472117432062712044224483417483013336644603940348113472447247499262185296740968819885423030002903013350337145229217945384978610803668216207040532701198688805246948009333017957957037892498735685712434002147023804687349585677118985061371310147727232701691318237489510668449471798179516286247640310952472243581402384967093472919131347030391184610099449616008726356864085213417385621312012536864727074465279312485519062975029748662228130629848334738919408522631800381387991419064779556485284166174006473907575744904576639458529418077833835105037641987975654829682307054518232680907000487087403082301363507276789583042997606401222275791856216321225955711632428867198776791902014003457904809849247312216016600728185970234259912183348986258539310504492868327354537950045139074522745220029399611052560182169401613186704654381459617006210237935167607624763817488909651335405914934378040968609044810505765404512345040329348266044240094490841247304291977858976277501579097737749676447079194250510740810391899275765558419472267043170977336393560414176923206526860190109126244705700411794903681386178594606059309834254109148650636100601282512885104015106804955549867007194262828677012516267898041092673977044486715573086663559731652847846683512981752757710410552416268941173686335463930638285748689253541188187913683712679680078380100803008126444499912885603297331424830503682688619437596203272336323810726674609203831734076320766070891129773271753089822057004276534679652798529170776750083580206596638788908354989455492486511370739583611049309352714944520160703483201689368872685503502625131785134456779706361247122178533043566829147402801662518085833428273997193925078737524431181412688944297093925801642386222809717326263958376867163035716336536936347090149343688358093683908344099303185560033579122045758280935631477107070781683330666389921079529498156052392377919803787013312319350837515282917730008151808878171593123129869485894279540754484477490414315217205430106994313774255976738909683727304094876055399821190941768440334572193030955893421447337632078916608559437674289133500336233391428418279775415001459797904932045972947975705409732185060033038149196962572332852370936692474877296024494342717709283678155671790145093522513627761630913991938136703386217290450240315106569975797600358687187459139828887346042985988987730802343119360335021113126883923907575868928160964350901597699917470706421896099805671603144159374827570806419132732332471705725903865889143439682726161769411348174921315477895698987592774412655970166960830991282711943580444862475269375409000352136467977331949245890393581303654478154970987768548081234783792795560664755809950713746315322160345815553607643224221406081012372936200404140625621835454269782698026806119453616583598474434126142997686793168282174106563407214653039027743950762622619196623820421375223547431454082314477170024818013188118807178397995623073140697568446337616417217804716419435599166085346413227861702965590256620272488762134591855700350497149489906683130081078259611805660859365494537151739747340766380521103418192518088705080561527508008234326364734792923724291737414839560314192470030101998763422406268474445519502425434662754283768308536532003787157092411975609821931309847610804889368389295211899890081279231915936417355873077212397986261909061252905692039840499647983949777624311180043770281709989044067335327968189718562666087017088311689735043552693955102002299255749730198071415485548567423162110420068291275696564657044194575178569587250272039334050670759758772053451555968216617764036333995497425573196510610429008007798996955779064349460954325042549776014625004152242140966129286607879737535857102003106040927766828547512748289593175680766159690720667199460745442827827042355827985218297107954242165357318900549473766218664999458422724378869307186616458888696673084731739450331275683661552608769602157792240995959263263379967039658229586531662545658725477935012857574017525480591458351249256112180746445151527654580342048984509539821302184232083373083808575387453196122285937281212789874236889066473226809968505996428902609820647199877140237338840494052127495073789713814218041682599564951682593445621414701003990645750240061912837685015979640713859429841558678774681438664549788541472411075610894996935960236289522599746021679913169939521222645905427946458692459169857908694708286565114086555935722612625679277934914574301653630794522615075303077374263090267430615751603478033961840029668254260446072774448929501247228118591197685413171817552239226967642015776445201189429593828602832886795647840496921293057110239211492731094896603077128470036041988006908764213440657416975587897675768383411037300554739384960972916447624837134829921699938412756457204828572246969353932118679346784209986711809673056955057149968395305440577322174335389182962902234346645491424054980999898352398374628481375496562922232908661902443689012205035769838728083321921364330111233130484118763741540891709478754029630485303247842938750049085182353064196838203925332974545707731183779255098695087366302625229911251303570058014116851917234434883994600472816395551042392706223421342959505323595031616340375964600445886507777175648050397744942971409862672905532597903660918665250696639407129023573768489590994564070791533907714320962290320345001688658020698917649535213014946604676785130522549756403922859568725287074493672241253917143209206883662344599283624847310219443808217274040171403653247133753122822435429295029880279913836537831266296793387914458919178522385805324442242501111564233156884791640960251302372386636544250458032208867759397220567477236794344988153221277811470015473422838368305406645821227766208356166270105518397447188164957175367527416564919097201942562439519831976185730485069207874593961655930515580481554045850787119572222413303409803392005232422315744407177256918391314444026948537588420022999855856427131391081187582334290736449770660907058986597624877248139495407133821696903587614525178693735078786633768405210030437085433248444829033360228326384500111546821650052587335179562662578647667045630174758037819624415186129645358388113693747672319500495287023790503280224264865238852164490008321108454999611501012609759576536645862663790294855289726984666917141752895816795080720953630319137247640198647601413498905611698618962611869423431531704652194224232658389852793622461753285928317585577177110738109411654523736109746308344653088163419507817521109274355414503571785848755956462520951730059958655650960426567018445211183126752668437948901889882892051210800819403533998158355648739527704150508215056910972758237357189267418385038451717020759235862163424819148695618782909931106554900764545925570093405671943049190133210446676009252467467964177605496822429970946365216528487797346643631881677216907145806032633419947911375497175884367971478324334994070495482012093096861515103466939482412443451320736794830561312002403033881081652113434713597446137876157582445668720980208475547340770663285406559556331759631333422975750169458767197360532674317255203536015968761876939298646893142853966674406164883184156978726081369891088443015698204506047184299748467882882307262797623109938424011015808465186976761255132945038703329481624600567077822991979772081994996540473024285582875077085880913966574521485029505836407031197548969401913378910799924932336250012519810573884057615099763286952621880849076539884097144439624568581863900589788022453954316327477298787345648364756662785786455208415146726727981236676747074070361401380404428896834912573856077977610589997032672405207365068742121736987797701691616231351941074846792157491001305166190029875912570435706560730027658934023062138123046877729321506236873732586335468325930407761236734468701613578069091375751278875223922786116616850708057734318464147043095350091758264270099446535388898411421810401718145590148271568105910005671263597134812679410113294873099679250799403553169750521935532323713653956616569929503220620968655636101888872074634200870918193936519124919993801764134308532658234911152612133640483977420412571199021009934098666351246512586664822992581749074473426668883728667565334431661773254447918198801122421547640652777842713674245884568440490770093547787259726633966135235833062023799074510099433816176274495318213238335080060373528521093737603216951160702402940015468550405928118677476488940312640268277603832117079603356549978041930212925702031071630469479136898778094370631779372813034595646817015391487052657686896301524815003029049421506611434372972989914898334536725024939012351647351983834570253479359249847568621203625100937108011638948240431656013995792532458207687773905387130349700455007868970150666784372343445871809273537793444345660311967447284430668672540516620099666538722985116183744295479124285915240963788314401075794422386905930964163812556230126455293688507878125397143693041772805176480440593129808834827290845117561708873942203894328448383639999054488885204126142720822035231418429188662049059436790867786161584661099785283359871897156825788499905000423099518061769443694846287297164137725048960527405521430353542105609644480697788078393701961940181623384034765478376653597306849452168998260218585948733782108781785305951184323294315253010376252518091545968227576656474927100879132737270266310157524957684357827115560469643832848859173800099334243175522988992796525581076638945100871186117073847157841904864998949229403951278916452307666297648707544813540391605338183242204599318479636975982531224521217621516468721551876709055825045101850724520160661524195349109815582247060001592031705559772323371551413420441556426097657301890028671935981288122499797439579057293658353021826192901520114597008889363723787773066075299634022970135469762539361389065422823575312925498036333321004800317629087977321957082569390871240472972254054553183606322322022170305643111193652407674718086923226541343992204587149212378148377036030694882172122178894813394194450589490170984368752562221837818538243807398971094119971527648721825813651200466547969206398148084444904067546089213722518287414555681147448643209790952414953866224688489073040180299494613063046905517478199399773233024344613898782299436751089413512824156269699955010824622236236677466210836548254591437446061738298231245465974271799081169844371755862434031274525949384664081299585908566772699135872091485530496085525237203721112355599502146139230395200440413618739797873657566183785341037677002584300423815297469282790298381417776575755973590255961657466737205664128479871250826103403517617842285220019866487624497807915861016130438965321126680942026582521593493686484070197044749192025716067997893207788863553262627030137635644237782278578489782563688638971973131459725123227998996414285029068764838269724114387679784236606394628677965868017708809212216630169488558140068959250513920752091233352077789715711974699034912600126657234297699973362000714206169255326670366578493478119353592991370957221725768214872847548743288246864325377516322509297749923829670785877445639121665841164518017762715908068619620694291207542972697107383811654216232795151477712696237885810275972137278307840979293217780355472593075583298915855654611075895429290966592094338396002339149099647036691301489830296444518383273028644612435995624616014939678208746560574379578248100105378839156147800613446743905220826774647546459114077398082913724834240799833814484059186254872855977491679881281602069568261343855705612631464881929244801743734690559744508173714104681833538141447281183296664540585734146193875326231231566325806077584527970460888160530919395024500829182759644121076267686969614252922917223227236901855964945699900449007970576373560987509803671754504845921972045934807034841993908750698269510378648790584786318363650656006183152664614149013618594721502377565542488250392232801231971400883323032845207320198049933702003767086444310002591385049622138884781453016115821380480116196520731361178888473675051634807297090169028751148940485512234168415349441798103803485991946464028246188643548232816367026722033241059629970653071449805016905275202777425829700535623146848427132028786498447848763719710074257723602766682334221121690240185571062212035497238203169771726973699173734637239044654636888915532907241620002695088942630015890818622676372434519898980040308624188357454331677443330977867756171720363830513048846176683254875563192522360009970232086925553913146929059939853758973151423081237305911413260286109730627342936876629642300822008190507684881796056944736755261018329132290827089322105529390821906370737297811267204782300332623524771828292081426160474487013936622350043150829158945366639801363018487239899712358822886959642016010115131097832436395975279163153268286321778529738654811254590767672787610306556174474127890756261200561053953400564981637532620125927899352104315041727411948195181152671750607824062062620323601122377133036690153616937799247358134067508182818217864218626557714551247703885954519430692341859161445978816019589970421081354055040470862443111063144649830025345314481511192976727542070984681870076585297706177688518995759704229338313674287752539443333876162509889878777008344037857038192840104617590369733892936226785121871496656441695781479210112795456672805873395154615345898753937607574705560721736957492896719108287835158047606991979498596796686906328351391847288317808749052415975789877053193435752157664367471809186980224978605241076524984402519943250516844859943308155891570946126854977882096706611011906061281669005079318435360661422110036914131696111564752092121526439956567856631299504112148964733205878201896848508361919951065519610801587598652879889336559065403716729794884058394270447544632630668503250422170779308859028802482397732918110544866297528966967320793692460969946538966235684179474974342871592604754695582294909835047010971408739590529264146918349711425281855578163109361525923206635957097762307702059007562039568880056708103834676481076116974364509260005921836598481553710859170962394227221297798770656878761923162240490815244233181901761544598585520734175590605568852463745921653425374504603270242895054382409843964850867573322236055168334981054461854329821496561044249637800676014769962370919008319063214554815098615134582573469196188401693884174151413787215882969581465273773761891440082025017013668140019332240092520131494049045123348812972026689618794250995058345792003760232152074043957518404996001271309972573239512911050047039966889401044798032335233328585227813318104143001083942450426602768633455318081330147971890092669707870819938328930955226034647120965532483375824732697434407920173497879265950673588481540969240563775670645051111716478008275846935029050776219584859425686609573915733113982140329300668715469968785929726454900627417199546817060717462701508246914376421266080173843826280710243614961060322649996137383735041324127043944752577171083290631480922006184371287061330703443535891145531627871814183463537376430839323701783841173903962419320913968567373190656138333697789994816659145401190550318155756464953207306937854379357309505639242250352325827766917091341620071723739923575184881248647225366256095182831677564672618800800429829221124859113227780320015535726561951679962120029306378351942870069689491247703612911692533390009641948499615709793809245695159895439742051440758986173524806060257656180703503553998053591557222970158739944052106513936691307043008471131467242807677013169748373715510998262824750670785944608392704402401208948874109848455670450064703370239240914461255320089214578197088793893045373928810272597142169886528922632529619001025514456059295859783688558492376371560509972280779417364530636141211430624882279247566740667897838567172680825194829972978488214836730307123210441401416306126844059386216305204738871382459841863861892224367589659199262506286255819532352129688085312206992286926175989942945898761822398260140985836624061896310426387326313353689789081958564105787055682226235491585375858797536306065951091162815067855883537590767038732902159952977360844410963808054439682970955334077662915563265966916156764755394425270693614496168826714888347252871770082127340682122661102782786916894658255548969076901943102028864005004043676557295490764430074546061875975386203775321641066600192892316873569034950151071365249566611288563419215677564079926284692810233109456833593332134531050695559682471203976000928803587934033691122893330446931847203631704894894737402523523517724409985861015148360765612696670378709145833838722881249410884057521445969098229098201179663382710504193417933505944863336970025120194017599841248221811895546916327608146696080519624220382610771299100999215946886104057160707482737789664782357030333306792390696150030875428992396653318933314145456733895843445725876981319696070441914944459730453408648620235454172131113550072483814916035372543362057088858384137385665200228106589548118388621987698149497384116609843363057190953051165297874719492524071668270598370841336218238655052773293448737555656301736929536619531078780442857395316070520748181104663513293579142675453624059567722506234744450186242252007999187110341134480807467148229291434254251570761216989071357957639885604445133144913694105084087537482549324748763735571961706803468166571902590291099806652084069015240042049570194971907840920777863036987415112603986740338597263297449087111318858941671385324739727146629127864401858581198938768116038509696129151063351378910997410846767559575183489959302941179042916684606677832681813417614725723038525931564068491529365161934307393228844211877413836509423310309797689002234374769861227909453044974454750649675429751314645728889144301487778953768201320950829844553142493395591892390814246321985283364741786818550828975890976692319651566754447820339107935965656422293240886224108735684762960350699806660519238134732082046329882924078390271699250437152813207570076248307146080262745075587354958539817463668464870932725949073311037479718531637876069323264367587160366286006119381802509722988245034285612665355206700741223981054793205660397829406135016029057819272278633671021759751083187393271041044060485966594517638318721003492838202653923442316495160201517176728750047757668841564709887674296877557172072905395697434881284702470295740765214690473909587469301169801765502387478074758717843306324928614046879864881994229225995250957699722867636698604290292768521641212106241413132424062275981693331090442904285946831117989917202250170899004122175435344820281417449551887417911451287722533877468403565159869583900758097299611480111763688069068422336919333092319221732156976977993005444768317155291999775268467619213937502770301709262936365983116443820957763632613887554941029197314042298504715435614203617626746464318674234465763991468777060004705771771383609557156520010359834659083803341896459182074226579343706488102788038691725603084175731165702896936866949637371159520557427265736213913468683200824097141408066957634503058083414186597548817981455139532066236191442297546206427932324024464984229982793418635242971822622568818761832858101386810525675057967171141623213330806420207787568402395231603714478667960044552524935022965667276134654358943299167273198914075171082784537202474686480171847157545994579751971195774015364688647775083235850779071904314813713163968652522155932895187804961685494353611603359319725950785373010800901762633722064774908673725646261325477122811334312183918316747740928010645529580580935773680724366834377260299625662934304408396141421014585550120875560206359808226999609905904765492200536286132426267524647130419756631799949712742566915590385288219060227095739163464731345213453792048513757118876798642086946065075171222627450930035019022118670133696673852496867830374872825856896791669032933943215662059052340240232341738069612626903337998034367415348999990786045887905149305478223699596104332763677953556599888550372650443818345492236686410881868536631477976676533186903598246150009141037553216722809958729400411553628375778851431478513466509486733496806223958904843512077780223917827671682690288993364942581251670653664898958444236615781464287997360007854894968791219665745896595562347669659441523973428917702593483725441318441659053784255603339116981481441114964536560218870106676081143124038981574823970743073444695313793020774434252688949034516058923645336403616914181992517843442862329138566417497992869092818283266977540485976345590803224007994266601848498845434178201937827548378757053631167335175542511727802157376280342862637134499866101164990258501702637214643505649078115145024370227613887003796083881914608550387538905301434618485715712653916717377188362931569623577443111268888382416010862664652364321916404752929356809332494580952129223078233045886006019299660124959922561236661295931322637600687900877986309195021667774265976273988004024257680155332501668201682021360740988564323284021351535414250640079742026976339540655390010843836486446044417128140804295102864667924140620440126180117537208030168987605185315730258880217289079583746385421327524915081449424346384938591454402581291333981302086042697884319413745603783266557367534110375411990050724868915344269251853343090581842532838469407735284375627224936998756547097924187568162128832733450313526342572966474745586090367110593724609950968463137945085938730874907248222040685836619301550371857405687985730996591968305093340354843982911773126443502148245146659961247186830128075895425401134673490100386635168855009639906902628861876553030137196770479850911303104415181168667469889154400223598448163582599542635036628004116838934738824370498196030893455633412202235481315234035833681319588315500466131405282469535474908213620776853246124035479488826654014169827254817977858382033031592056845464572941348175863793842118991939709694853694176073031796131698233824005612787429652590541362035762753477926641886488835826400528556180120179110319310060192979497357943334954664420845918793076472050319869389826155145038935063159839125493391180093704320597275324554627109405750354783768552461724200652043856135853594818248934625286719849655923442998869904777372064206730263678672097694525717665462085489690411894803069037144753723723151154796797803251329574862627272779453709731041725562103872692268829161540436214485306186524159335641634658978961328908271462847270055943669894294462284877947059875275561548461079733119995550397644284957764270815059161340559991662547797878737416769353706066780972231052673393912662569318564521260761082337951853147123870612904015102358384507913692282275669795267602759773784794699555293908932111088197153567357061828284257598440751417756591599404907193788009866178088396904583483213021971318661812872115476288591046271054916517975625561199669062338729045182476867515290167342767195576246842182257596060813828799058705800994364579336130956227140791671846645528635542886175514403901520626996957219530616094908324232809350821248373921562197782437120855886805092478807045390389967447672373697073885873050843435286148280041995708597133799422507960593460074467820138813155143469328686479736872423923270908205839909280324382596423250482844592641196155917875028511512753874860313144777718822054682691266886289384292496443989656137926739987146699876790556473679859220061796514014186815808292284952728960172131092230056498464053631207401007523872443071989600434392764554595390238037427174204774660767084256388694838469786390375762504029370158379586135531891161096107847445226911171898889461588044548823034847403022366357242288402999149828657654649446184003460599761352748413421238563348333502339156664947608663447014839079944105712824576271622998131058380578213148548413773623517170258794609988551272611945684413489136674644299847313637413316010606093809277123795820587147076056351081109468550698021363994295105591726579091986370019850112144709891826772942763328621762406341918032683549983813129886381520847961469291222117952700366762375439730386348727959847941674866600874865282420097327785176232158845943541599168407847539055208518740976103763951787989871404132428669349024561100581653540423557726215739519485315036905783331893034794957683835009961653034284022365327982201239152953663005485646451378837414444118759475945525627233952188701338103559439995205472522103246768489159200199127087175232259489261575912028651672423175489274391524013711121684330285213008156632483615839623341122845744117614173843194056741898163099735567055284964976161443474712638689325148906257714548968418492421855838142892374909720580395903107230399713278410495411936935506318347846484582756977802193783779275318832277000181762714825969209737378743136292520721064247971596404865409562789963401250608469863350660411721368517720953123144913662535160807846764456648666006454505735896386742507080250694270038506592653904318048410642649087719466283246868924213055414707301305790627051321292786151188527083686120158954076418585573559883652005639034148078914012011880658273431978367995473997470583940926201642659357307696751300640952838497896718291221021279742063188681730529947222504187516547298192225944518318450506397386234333987797043873691482302047968997035654390337230010816362990093630195853893740965727096756122152293884726123871245661412531657853198741890572036786614665248470205640476420830985110896097766559551670059477353344088426411448289908316351217599921580835866422123840214904323654714319028167518513909134960343989060343168968875850322074536281843791681055180396027119899237876971942752903887103738252820878666743604434776281885931787104825333210658031330945156096058474343002139858024112236013480119120668268905815695621952621940630355466222659887730320897901628461630533469408398711124651348601606880217973902474093843032084578986957036750310798728165032854863248435935523634627292130637359615819654919559314101239675393522751642186230396803161359191499959760390506165794257087457874339999594227554862126401972403974336809459065194305678847200331727418726142526204808707382954926375686101907183647239406697446544764141077430030374986953819443364571083687841018062045914368370169457873839690593733654247834831803268276055263584640183361145238764706032046828501563280407279907415471733832935021345612185330594522494513060108704445328106065522797568729858596377045885041862902947213699033649278024668744239779163098656606685115252612842866669048239672614700200357324190157897572552530999623887518270006014914176434578624670652380500860936906484152293444949675950962308917461599908061256015544948433919622209032079784583960283532699373095385310795578365440231170401616058161816051737600438988407832150797157623026182753011440461893076153391010358760274624767115010045248899244067772878612043529952444405961382398131108812484618402995618879715735522719775979803028209422206869267648266303292931512049197079382510686503056159078174233121438956018413406313921273395887537140857519024553438619781596254653957870614199039260272927553912295117464895595628726783633863684698507816775110112773582965709518473286130913686053281998531497023518438825603732215060653748474890757609471126930423670254245826785752453231775240039246859867854363246527039695125887530490221945909327264073537513195818787641701758862173194556797392959374374508161143039683178365388864003201652530986900825922526048920057247401762924238249306637670825510346034951964942121572284754924672436091971605458774870070934441011883666542893429704911418045758464742777237679919355998658487163023169178897974422126464377785560544109917911539157817613436726918978039802616411264685257183993015816447761742752380265884731116001889877490150840003043754425751758911978075648669523215195496526584776783350678017523483489587367420133150622203544650781748609082507230760326071088721517069151597850642850392113645327803863440428114800432017705132125140014815834922397102850754543766656608053722245058740232118121601706709000834275087994775403184786220700871768552117734679885960870168661152857883522093457045068937140992275490243716778251757558188480038402475556411067374870890948433023830140319385513103396519905078290740112052400511494016743007706280782752689552001491903941494243267186984119776774514232795887118510141448540981965196873173589661224134089452459165250995781779561143610616524235134740123289619330673730480180957140863621561062395996588543971076393972427048205798782900550429202461063905034438103707305768600914228109453214140914552910686121410579724241204634403545970932197105093317226501474062879753235944777307707248825650468735008183116218077526409579721934904657823899027973068344357487070122019962575040997211324165311288658670626823083284827288290449014004506841428422670607350328599065044830007122515388414740662960070706831416288730717873223568624996458143234199141023790348301918376795657139879476178534115905363782682606925184327317583914498192603486668493989731862123227620473882534481188602686554068550540388853352844887008014463801518059294320081555257646756183149219539831763474612163285011511240627049822605054389601932827023150944475556430414015435960604363870416062900702115999218064050641416925118153585314805673762365697441699039487475608789111363530992383431542578866838102974122390244209517865888046863169148498897394250767298352590796611576121809296839962405045169042349252234593969132505158177380005008767975472879598977904214345939194236033904574985289203534081482238743989816525356349623049631249926545623356381344783680440412494282767434644006409623862593768836378084321998528641170811706149156460458922740842127060363342459676013533276176272700889373194535352672552111984062240282526561565861487323423324054207065318906741676587396381981488462066271538107066933966864430540922349196549872363277478487245448617148069857079746454765616588099941152890171686592749487510448465514172436633146229458237014097972795979028713426105245547235163484599672602008815697986445715932882168149199071140480072548402754242566954670025032239302068075443657018322441531284582419619888877405757143993560786674953558328044510272493146846082306194336284873044301735337052322485380627738328534010614711637928154948724678670312721544830696749617225341597013441873270124063966380725663415121020298416883057594534790008739428647492782833700490723982217609300917272178958783065882005291978568919214068196600932571535218090296872222166518744550286041652389269441122956205255910870900568418614993952785884147355089478279965957027549894303066722868807177931257811303418931448791080843872253165375258459903297872770810158281231701427431902758768258904144766951152308923868584266619354673322868083267553670901147933750366630539331083522935512884297610503610460082166876585893493072723174201506439110584058792907160946180053364502311078136179796734075609217585722164778540817699951151736696261610460117018650920983410910478016174547411165696418464927653554378052388322215564753745113638938581754810810298852769296415550184022125293755664336111042951719282441936527097764711059192785961083789071601932699910845469940701873932817480135925726438864945069362882853490789828106967009462038501795107393600438277462418700907466256193687517685715265809268917613142314521035127113053828914655298524962226029727624940917841732072619603841924236547769010031102401453889872753982395375923007140147898281731036397106505675944480667965094104594408986675135550111674528254243522937306010262617378256695134157676143468085031763192438012346252401516470081723386549948581664077577741959245728316500762905150029711333521369980853112774664994269523910067134167773585843685020536111122208707931210691829743468363497069665036396531662347520586546643380349801946055091439587527296239117738371694658885562715725035038731915179514110395477933340915293326273569095672383187916496995820845814075356494618334590293227416613918814639400959925066899977572205526839672487484907951454300000541044108502481279480174394162124729896108693011296529476899729016969383264940083699745564548267339244814696461338845667144683952770012635810768444107673140389331954502436803662724098048732358429689533173595982584552968094292185233940747404459062122571867118559899748668916625386225533192930096571604757808363277767571764190305161870546708355765706456436145252334319012504418051180796075029802261054194917209247749330719033855985799353889605446936621737960467488704168176119633797020351791742268889464162854252354155149788257155539910776275621587638011063731136244246992474442967567049779201241169084860821110176104664177796258565735717275856033904158090398616743502298024272130107057523435482306117189285833697223814137976924002888844169364326236956957986973300088378247856133470336319360170582782744130626687605446305697756121199746647755784413659148003692334788143275907694947645947458215197374392471280574913330575284941967017074138417977797093593818956965949514138353929627694216028788573312088612030954304737971107481072383965465335882737257830182128502433067851068786984522825961893375079390976145156148346281741568708785537312783718008857489474192432785386754769380528665576174656426980280087965417108134882224901473126637295865666907006988327187029878743087452090713866274600097957334041622710315198212204626845134486431539463408760899830403916066126765230813698649989412582013754936914041856374612977431310382359426652381735987782746179830363096643110966936311156992732100374157656057325037072482374871429999754140112545847998755483307803790708197929661751019458236638380436314114539858719591743061058997542887884386457560232045152642310710221998045567547840451599070558409652427882581835537321560992410178577854100362795716568956793541471584226625391457091649923643294096922733675354012045618968875806210340924043591658637074828907506784069670672092528250153575664257382176429818332977904886845877862526481682029642438094296478311890913758693250574901328200085083122971941278899657097168873368426782954587541898834841939790862466869676069223242552807913212398087522976109229068029244812581691936714706026520684332472401536843991280559015525117732208078982104688457100447897940432544231552717806328949370329563561617494425259330313342696518059322546943589970845215193306850817822213591253303196201324233679339134386844074437322200153732402906607536452828024940846964363485102062557857954445599327388027507003475393010574248236455017767097494812021217934546957891575523400621989621678205112087900173156220092207129686728932128199234193653219398010355006755865782948888770994700366175936486992875405256113382388460549220636315573000991654675151456357831835665509383546757196928887280022417468964167551274158646201223938425138441350422823940070560123783755323589111593167624651799163648389844405880084364132252736347553553672045553588814597292450745850634257652363471243519292418126621702533404827106294842579998345709151304169401436318840807317986480832198166202334731757545161227861088909900511743491003973092341469475795701346895549732671224338047389762905757858962965988183793182450001106254728336215738894563390653516589517497750661868373421637677385345434218579136109201119751626306669568326409171642335340795013408540658644192813138517023852331157720985814224074333615310493344361009901296997965159246168272366959952254913480401836857434839271945482718550108622592278870312612563416682720803386846574949878374688786566093906807404307724691099092932322695652248601000738842371625670069195768885755502291721366445354498549716718747803928514288940418401290219676068395998788389375119038755392554017020154388841072289856151914729039784497632131413169428731597149447929175079120815389204508227421175369659693538039769044402347511844902743180546803079204401603647000490364831056614423580864108304783921395450040767105003769086493003299928699840300922762150321395989100791445780517613930730537012438909345406667743697187876092307060256802050199393257182999780072743203775294360206940996460644057028250450940465040389847772998285022799247944512632493863967057996484930920698871482847568907086697582287547194628403718627180922585749920169047527388176388334207733450665937594636162136949463211058335065773553629730774278436546715746643374045376194285200354959723153212652944054158717127476608958917475906143491244662955376787308709870974188225550057736181583940305211774807967083099051900327547361748027392883384525617071674544522225688130431093091291349582580843308688009111141426492549636484628971335591434101691215779614122246551476950391090442113546743557039358557734365277269693452587482819849894756807962573282072441419944358841574457225438940282664680868117607559915323819151882437420078264135764017197908866446489061392111431744540203355524328905521432889426073768377135314424184705114096349748542067911079532918707315135080055194236326545285869986797237650422396326595823323171879498786166882762920855819279094211068843256749715856479039374067690255108994174976764150788225953423870606821393519389505809813394569362599309872422861683718237696021363124973273466732628921869864802960283802831295274267446550115959921182403284825280565607280691314599172718336593808893924396169857075592123360744178252459223522390044449771389522637191640005341657785162219410088489459690071772600618436246351054692901809960410481039913383466506649285014396887668099169300313938862774476223119460506889819999862679240882703921009466073372270419477045659193760892872694993692251678045460233032619891394972212479124434060380015715206486949508675343454690436000210480933515292800573802093146443692139144782135112934801259962586579285699193139926096377407519136797353921629874547040035842888561814928067765469894284568123482780002929124494922820656934117077277829806413874393194259585006544825811796058644270965049874071051758001834391504752899737589947772459663681874999013948585111495130482481926780299861875057018182359965931924947440403448944321924211647125385231664283905864617987140016246885298484551461992196719045713822399413986719274397187022099464214594379906183168925356971721828629227533637458727285504234380345568575957850496411020316384720505659207038518655448029518596681828502805925842042633390962662827451166609415059537852462461249887140514581046871709490517075137468496024323556318851828520756387383207949292503557790152808016358580312772609701705969878667970577487035259464379403729902533336988894024787185833257112781234905829269832902790412313288572784876528305836956768130078196357018040723877559095756476563141084874332738784523779587861944369297147930957918931505903416682847984335962657733484025369664463163549932591307539289188774116893458158271583603158004957117814596338193643311697914282594865637373800309292726994348373344996940795221549051608772101435640613700759167949385697068793566385615833047658369512742646030563039410761101863097801287303752690671598731852260475273466052648608157874832530454151159084801800162553370055499415833269398669589204536687051769741900865531728196707825252067373718687663413161738907023617929274406373581302739340179505904687390047468045534945552464019425720498227540081405228950932171072099959117578411969571405527717270005576394374017822162407262416746523664812006280359597707813904287116908120095463707219392453422594413124465562211416631001830609018561647893121640682431959552355784287385942009865990950912716820308620637544544242315461003967660796992502284162530776726547192022578486060823569743301686785031221997718240742975989133892705145956337080667939920124548980070358901777650299520222678283183850818801664256234758573955374550765990004786928100088641880866619995352848130174165797314273515668500233026011897161685480731073679032087196012325958085489078091300607375321691579433367491818232251900661482325985804402083503752294174893131240947261990194529079568153502403136685907055306116386853142767404835228101287023006826763631504739814072260611169628987189918365867697618365555012622656192751151892166067140575511146098768259620837999739797366121605768812986627610540645666555584074008583284313925939025438414075940618253309220020673794332521486644521248256789926874382963336997433131479074312102780772897688285828671958537349334856130148857623926556198407705231834761463563417845006176967671967543370778531047924570209615741998296623823782822271949629143368454398548196331067141686865466270111315025819927589477831138652682789749525379583198914961911498816403118870265630279995113648814267345330053601502078737364677360849997312000246045116405675328273874580658058972673691960070577910373057214307373549432476446587625048417449285038797463888409534357626943886492580671522735222223793468213842809839960120361581295304095205022185164166530443735717767130265770103963297672163658143299249071379548828111825337954189358265106537578859964921429075611642892998109583442075664616176785238178582239932458980826662800689301514499305211289099387935943186985730272508599921308675923062169725522113187265736585527455453681771243291819694615654214860731641287785129808572012199798812161241331774938713052558745710191910597708121913637697678140327396232978341573125954226013828356803701159656235884441538145116759184116885733535655817485958083764837844257897138874782184412801380526516078075609245578140517543894437976231012616705247707471620357265488208046908336622813202564345139140030107181085170574935116672332945331104963793415036214098198965031409633377425054586772456237455928628272165032682213460402714943078900780320316415756457825523000159156737924784943830620310497804872965932524314701214713408383556835690864410375148942014238480882959523908042718283910458189578910462561703797102744551329265616177270663216510010750775416560340513312066215416948366225339087877138780940008911291668736135320500574492694678430249295835637672008109753975023165847378284120632497150876946233583293673660528867592035260458704882224625614392611791575239812872590302360439842893995163474451647814298253003117917362415799298733472377276977536228150174865305936206253984592261144627009220659371457898062883125899993563391837437060627715963115672080588510052353609341641815867031533119595197537757552669287536342093302429511845060557248233220968250283556367237985944464964732307698143169659570645879660816951672207943428967287580821171876698126081774887863989696261317738664674557197749257371924321553765503072294133776366831236685378347651958799702842762346293126449997032173816043275606020936916127696047630034661802131676419651747355126350494525020608104935937428996134364538126116426906121133127845401780026081855738038286132317163023064528629125007128579946040578374946826039773955356720427812242015920085587568058023494978374565537582648749396049833281313971304627013537560025833917204911464468147796519725036588086153398010392578503703392591580351033257371113073232563125964487389963150396486681144050337859996053299999688361014787890223446070660568199347948232709261711926380847897413257297662575440636289929284649220413425562048058043309694549333480152368255164720457371631119826633337355078215203425249522093300365659465466899000920293223047500221705514917608384564339170812728835381584168183645884566827393200534390402684381922594388488810866866797738905315845652548122314130694890107809870699156022681153376876136240324791764073716897625099878833527329176191078292817111197508112125861901206586853007342993709983648924209928910159825129859248234478606412251065917818634613350363458505108475101504235702838383061041458610622870065088184215406165768837204729684695696694662993260831429844226474010977428982615156210597991274387963298469018559899914374179430863209922147943384600164865497834255529592859448122732977563894400840485245752806098323974978792776536824447309172846739129017090823581785435710320155480562136327177641418701553702985501446272746254563902548767982847404672528011411482177682351697217801612477044770688655739205584009397546390174806619592340237011409863712015985884588157446852172212417631206283023418525383251786664121313529291270489553235546118426112345987807016790143120537833810514370473174176272901248533619263728974158508603112334150946769011738732519278024010985659529788742102602268319709683832745843821886784063620181429400922543967053980838887321999007639934060304029250495713068987525972368799212411016750061649795117324109824279059374790034941799595782005012341714423588077879842967927447487126916383373700644442565908928439862753115663346519598279840615724380956983469126390450010095362702746349393156777075458357880806281981625239810961125318721542589809419118154846458989608239781141824787189643214856529488330483521013331456596380451964858956987449485473959165827692944220099826446246502814691228167461028890971935124856820641149497430834321686352999781003535373111234084821768047277093053923092759219780562984303967451126618409113499848959737511595676192812829824405774701208210771642870670150979312152972261893450312648326385274103734933870528706584470627876214702108504252085544942993545104306297525509995032187869942411332288335742978310046775232489791630198767193769758472512699828817261273705015864294958040887593068518680228706682599611001687845173920510732173151305781606890017655903102157834974240467487088232467599559089116144681248592084330889524778929726706492669965013904734904275413524253451173199393585059919655941920602523148581862837574105481335418554125371131130308201108928199333714345505072172823702926920034830352049072918603998728100172651227860654921628235922231115602686177605226921300133470023254248694162618037139958667109636701808222551143115599535664854901682343573577534636563073830393650896263623058737643574601430926595814895708965420426404361846963898218348050063047218042290086340305010700070640722176822073912665291827805330790510247838402634678786160178216556383382438515652068456196508408639473946216014261901925473601004872345689550842316911725097441993609808797356921861005408402488933112484007896351242172205491135038672989378804031457934325298694767059359941988325089141171100331748140355274907814196961348817031315952865476703054941456387904260383332610850062689229417745400163805077708017672043051069158918498809243307796885052076874987501980679222419665151905725791981887204536227262782521727952858679100891215700535991123561760116730399575898551256258984386485917072203890499097139811543169999838211742690443659068552704030680473303059454796610779476487530880507381488699995097199884825322969820383151271749400357004512452492793222084888359744614636675899120025521768310571010743992989801778299120140096825723812101161568892029492350176802410343376824746478181753258351846199243819071738433945704138609060601862595057319121229763304216212856721700656592914979207348928995354924724831830011631745191047385073310282685334688934195827416503108955181986655521301454745773516283655752832458250368334822013754001825689505408126096820077068986665291065793074883787688630576007171292750479440337024905605403129115736738069883798231704630979151778895187694591349838917645503390859828948908941361435718628244198424199884009996969722575050759818176911842488796210069423578645268711428128662478262239889982725195711232396317152545753019342316669258254259342450975939906493216661035683226279858380923591296572325982748422186982048652731414450228189300598334717246689618850436188477860480870952906366372009197210963807528846345422147946174485813570219515476302272001167281208652656039520701777444818378746271068572587142496207138780573776770389401404543475500196593479949073543407261292739277398951215429625270088276114249672162353652749457054050727356415843596604457675408428532880821561491203293425396487881882090078562208044251523136013859011959470087924647476970894904690251308132465808314209683228196427610143913176301040267682270705015334581920008065513006304934484335830044349758846977207089375275965820871337987649914589685664177002499213223614586575072091041765052169409885595312989353488604281251262286259851176786338724028142896503761980051824846993611595368421078979232173701932871872271209919760579757934263555284375340263637449925123419857233915836039648487511112654996022908341590757663427804028847572700812883692524107428176494908084279585012285892895915198100556842846019314587623259410552848534445641341047427064483766691966061046018637781509619492921775184097103713010023718918718373292593346949352215265356628639249822317089144083390614456819731030455299807920206893770448165627379244764376504236950525338161783840316465635196537290061558173428630938588144778083244144055021840799039287243659041824458068341191177583834591879163833863050895821194025207092542436181981483542762739402113076444348625594466156446445258123246751884792852872847950993156767092788411425387075907280216350365767925010448410184552102259790786144141017645414761415072785237652197560497668510014699662476291682115561801164497894091910691224598816031340656905910181030005136923903381625149424184395153037419850759982787411642181285408537767461936417405022659216367891588579239135426250533438275334773032085979004927852095129654484321125291521177965881960019550430966838601662191028473599478004882843421663340366167042726866388574257739265536867887819747429947408045395476068846933329857515597175148898214835539887033875686711157404093236968915930866560161856901100058675590576546576341558692723838017105155381233181602064596486594377251574970234110369599338987122732796457773067726099324873309760075150227963375790757791888518195751055299674889755848707204737385593539438900662034578206247372863702562396378247365369320772870139224435834389608011888926913084912919683737468258429928189718070791744233870873362384331199271895357789862695676619878740748590863317433734389565085467295619494351936590447830399899910657295486007157622199628944927146423764507497302656255656232158217262737333502997765723991543127166944040464409943139055151431139118559533682064374065999718213276103633707090608803976818739183222143524367405213890292538869818230406874404920296036836121826848607729114476273142034528422153343003718421949987301543198576648754523868377927166254635252485106484495777122160338510119654654721940061371608581557123947540533187287357142023242609821772683174117890190799050523551733388979318103720250981113458430961320621798816893107725297188329282870836250234721547042702704216232477629313181425609301691778154808126838285925847343380304889399066182723690549541957148138475608744746006847082029680894954659359624675385517067516159096472869014339124054498308661029228482204326580602019929517758563713227427748635432496265868459379326707660365933366698555694849752961817498421219404469391000698728477149939887387507437929585935214446700469679771893731409771527822025963190574543404620754783769695161688039800661590941784607688458522559509043670755632123391716130046093377474016000844392488396661654961652459921822163807607922816119021096580648477460943763268696584548808468856774727274607325710354572831703738373418484500556254242509543405602770687546703122508810108151150171037370012014347513005015782537208828155781345985014366017001201978331140731249339937165735357517787920411646062883036266170989044598653950081812532220557671115477120362396145928282025333313419735400777163589605214135130750299809816807664564879701872055933747208201766090359504789252934802827953494394725699198331324178791033719751568124148510465303557191641425239499277828748113272120521017932175367014889974559287388827164121344412101660625786423965826788510963096296306563783422435006759084254099577380805265782485902092197539508772075811079192878949970486854232578287743283600400082722251651508802088084220469077236379577526256958525342798881021685546507577701718059742557178087282086315080732571851007310341209696823349617848886662119463198117510052598625274642134183407045495183881735400445344188524317529869764324753689995813991181719199338240122709985389134843390221648940084323855380575071141176459046489655324674525936297911252668731031714063880012883505782250625940255120394280533365399518841832153883183741603240656391073568487963586710145907419824157950473109091840571353176936756283180033759760045075375738952615957295785192446493180853812827482445072332221364025917877337246769960339399553359804123174854846166584328431621395690247362590157063672019316081746720030417983808674837010916429928600592970121598361190734497602538644355167557530392040495332162737595989463815504192659503150897031568945495238842041133861128543208114160104334594962560265091898021805694216965178894079231010989401107790177657471862614678296704881536539547261652278380758669745050562013861778616682657211272258493125741734863334551842494254446934808026778392291039738512574579355005315653429036899748465884909788932535802974004218596361616197911784988535591168076308229470509569274489983897490156934648569930035163140284352648499398546852867076909592838215224014634664749476164832728330652493787125579438206131174264476347197305702445473747301031209790120862318925764726782504762037505089372874209223368851144846068598983047700431359930831262006033517572065892961733066091260224704690918449686488558560573537022006402844040897199773454744010054951357676678102546354201341086857459764337532271737805844144603779879593433123240060581245734453878558273184060205179195313790110603699038267588863467350921149363595237967669692922761905259416346347432365166424677921535431799103341060084149177207637592307362856654255204349640671629692700519790434190753656674576812340706955783281153731986239032000687231854154905031345084044656725083998116596031703288874796447327224329486676952564792419371654785033176265309748021704871878574580225258055575004407748907193416482637292502696583378147920361585960554950672209664081370518515054661158001103521066132780132740103978354830704395094995120225272881389880546298113070167995599238804904631912478828893902240370367142390655546470579261284585024472620898524663840333840650316597566386011367638569744002675483645592025012737877091285192645105683606633914160124030380305242956208062969556888994794204337052816429032593059066423169304473864298877306135832892731956060901633553989638262870986510027271712892891369707242041887694246787554942588119543885847729849977327154302208096211570256627017232570222450272047500849722370623353910921380387886626537747841943200711855709414082310079076901703270436539292345955567742791653704868683482413213518876003553288540155951533051309655013681434438418606017114982490456715895215283641890829376086954293372596589848124820672873061976746850940906950224522983477576844635550163972722182770206377820824152663117250039343360687846808674894144930762209855953273866134533667666972576379228334245721784882205357213687439017688837751422547413485570368413207180732760217390301294841455759457608699693557954214029728091145555144573702262589828368064891783263673954087199728890330607111150525151816546784773795730536390257893628554346631014331466414518811898939408845339699320291621452006974205729908415432180846554043315947004310799313275721425386046718348046419747531620064336594485191670199737019812873116237143075781168226278965994239142547702104786720503107830562924443875679824372427622199504052774096439800790522576420849505927549945609098746122533120417297790789265832465735341012074916147655270146869462321885046991222554187360214335294659104414499085079822674784922699236277354630283764328004029279620992071843720416348626848140252754288332883542027509874748077905022819853881756967222617680559077429328345372643722199881426689863772174241182626785693734045727959231166435265341837383079876724650097815076869097192671177499026146476124186138125597176205232794875375826812489727188152929262955257679855930338647188655816119883773563123652475517144123827476044947159050872285320440741362193709630816068260098554791114385405432870959137404248385859740505630872447902102939272801747487258716780348614156287621780699343184503669895008643451781071785086094581005334768344366468005370930953052500825179103323393148400423592627606703884817235010903747015284028906881199515436864639092606156006162855314800001625673831924347481060286987441244571016272524872008892878312148787126641683097021669016484609954768911794718747005257210557015245175837846343587213090012832619957517415338373092527446141886686341980949708572541090815274987016913459554311350110075985210070659960871410705824999614428625407770565427227340145917628159848248536903066052840373156546376990854886243135615280030495731401763008861598833320986704713300478884644334246286594308662678785802285608797598336689585330852251785522225729963364372681636391518949689776090251426729024660688408168575445993075195234125468359172809583022868632358142192133157659133144926399258651261431636854556484606590128323790520737967789402980804641170096831625882278157397060180168214073613570588998503892904112120008304643829365761861645795831034204346962415272712251117579496364736000475109437309253597374137237005613387211105576246601663091140914418231407557871299932603754430139365259299599374307128221016728621586116080934481198856271275408348972166428985751740755601630537779663562146816380630910786795068096164191055951207181837343198199182028784197236629076545614642104859875536280882680024416355737359486532984049038956047996280888634687023843413371824877140483523998405389034052601585061165629794087837714505745693884808953368471174597555873780073566217576498918274283595164906618961170279214229163703506305017050619109797605794942427627082331637453094436472904264640047404754852271745881908922220631296960474198469239588962602046842023031406655705422037095769104327223781765746597999335540025142456192989299297018286460885784742359245923131125258202813725008243887864477446792330192617591120482590225721622331079665491876482237897514429335796733122837051261067085391354938007697231139463447971667070762346948614647876379496393906263233864615281964034516720814834831112652543970609243478007428389845576485231082916966563633844567485150901909253724411026324786197180601873266498360368926784839549160824198612408417684632678956228175095401867127623620280069267444689678536733045517436291817082588110759905652153527589325535438595809344125115966746452545019825506419549138743367009212669923511373494762700710978171691968890396988153928338076051408342754207893282309278475113883320621329736524750597610960488920778559745011413521250283699763711454521163769245435058709555863485567379186224747317998649742898466111637551930563203689468311758936611633499811075343111010453516549482353682549547854229311637419220921293915912631979542983207238776092695368200180719836230173095951886796422401968955508976400175342158977855414856512220053289000373553132458157675294961884677901377805007412260911057639161733474585357010485668222579930984745175331395996106156730069536132255896873848445294346976551499081712345508765431857510836787774425904540986228728137534252264761120235481858913087316589034914732617764091790185344662454056022238157484359463869758594050739381052839037543642059211729662055017462933928322524834211338121066549843291514146594651165765366785861862301320566669969713300034990918696184693613366157470177983214734379238383043698805737873504721608961949792878730722450874048289083148936902514603352159243029555400087617798009250298139105507563761924821004452217668730080935013643346697652083263959380985623117393708103616566580389565569938167585031571221944075104822403516821709911073716763092806010617424807797567120960146345907701786523464599531071340295990347609758443106357783160068306664227814365681997985351596740740307882534763200883370318819358565960516715231044211383938791131794103594606663962575493848613407582050913965821737672398054378211814119894683793963235857825410941160771077236556921517556701226267734443710752491289191526207242356244898102580696460909529625929205016372919514489158894361461118573584843052813317619507348490817515534753443542253899346558364821177092216331335361303379707169508210194071438168240045476088389032346410155430815562633482003515509601797075123268789789470378938171803739505769658781039033754187066590019595123025245974470741305654048908522915666275720818163553804630574874443572575836774628071653710524306808425135106684542496803020081059333997929035258079121764647435130008776038877527252072223268808916187593865578852933515081144461227078429837000491270040483627229156734641296778858538213681497927278423644093502493827237905244607758766842069054510348933031162129822711155753766446964089232434421538453570667974015754745626892023479512013917051615482724041430646900055389296651488993213833031910726183980306025263371169885975558913292367978726181535704956341001583798593668257967056629835980755960815656472072288733263995196955645686868200688943196085879526792970827071958947755651445458079610999633913280833676968534805876639773364683327262500606784897974691171645108280659203316717879758565812808803752797790202989479379603828818882232651372063200491116468393880944147037555922759467882237211788923104743174891771202424035474283612332804379317237230330778217207204383684838035854915655042774883081187149373822916023176713897563251428252693141038170450155736180015051997762910927090116534983984412987180775794684979695533131526762015067898749353349389095967582654846510409336141579638498298129154220131876347257300907568765738975551228748165280413778321831663370754651885698809414963813000274389746327328949885559553068762369554436777552364286958114987588826409783091816980069817822114201267779954711482395467252876134011987028542249890987094391150202809036076483134860888707180091622634095048967200139565102199000747535231162439761437875584918041368556493207449093974642854402145922694088050631624482640854851850048611843577811529686146708043785976517256044506477116269140687184896726855997273401794234741349117106957910271857678914794150115904237180118591538857357723649845096858328433436951251968936006146827705259836444554062086992151616331927663544170561288675914358750830374563920946311906705698258023407253441571165758889014732139605536524383667301107855072867145963420407120600046674842304175663667962962182764442536614119554085140913162053481961564447662686589579722616957512628649129309378022606435768917141080086128475153196368046961852724992059450323979978577764117367295576934574948060791290569625423539614890590023362553732058590643874941407239356049712021192646025986060413043155463123258919140017545617047120631414270788182673242846048986917554357586911931663514873646347428680447595930391885122037130563529972554235647265235078348509277061214936101738957523143283616574026753107827281100206626767655452228174569008223903543867941626904402932286191362143017346912725446373166396433298648076712775062376626515455846487705746683493928488916706454726223884704623325393798781178196406237586345246783543530644155430534549727592972391705294849651471635015679377313780797400111977442825279076067692206988007025393931060978358410087668718355259324336667230915770811327584802380098768059145853254598477753889134125481080664015111786906620065333778598618955914879202529747504177955750192834856889598036854058729389603327049693499973561572878795305783834125740886796085802635249608300433132246813170228207328653882170000391819298872742805415367717117039014397709279904627310499108100568770000511376381684328220071840289244999691802390646348858745056825803887608065228442798096200659170703562031674209917885059375035713746566326244364798616403003129641630255091873279742656484346118625160875071003392562793438804409975418601820190819329394938891106903676428984952719674029219747009387531870641799355311400159935545487403023727082896773804230985253693166920345953738176598070600974090898739206963611312051370920005839573903624958433928116487461254166957692874595328633606164975679906104032580990170001784821276817610639667275242477145670786548662997110302239907663741494200327006002813277812802764363977002927929539754938639079156545726144397903269652612868512380353865383072517494335771276462108499615859853722165173548320091102788114324408242543859926240070763005528178020518961510145513325008863350895586513407951074050085621505503928301859194012893900192922481417483438153538745085663327438812409596605483364107116315940781537721231296180485230612438035188874935651437082144584760374910682163460400703653461393049153230586095652322844009068124465972734559865800315156261741995673792128639308666428694856054311908997038266660155895296443371053055307257913605299055104528765002606966880651711657461208121926608228382438395617941623289236209516255756014565146866566399396523450075723526441941647275135417371109646478499950842077157192090266158338405503423499136976412348750754176795574389535318508768891833443624186468394352571965119465974748545111989609821048292582232727134961401106373215754422080265894619598664721539874356110109834551872902334945976689001287931929425107103453959940035882194630560419029082256642837371928438365120079367155478292018451316387889295953949660127268541690569434487737353699563124209898841539329412383976882062702890544938765701641254033633562465039260039512999681796989872105850203955582316902746609554905260203044477198717384445672730873605700879828962559875753172434276620239572153459857726141088475180708640087333687485919504039791326205454197707255762839801400435897438556167019517238193309443085525945610453591449080592502990918361565578657963999286944404288238166614595489560791797641539687164406454349007060644277966333131654652743918025534728609876168679489426129324005049980246697959676765160011167201357154062436136648609874879648432496507807982105800607963225859293962884997951967035176439594359496884151488303054747531498383810116730551656737454319877699773504884212812756675657966134898609602875951349521260483556786426783221183693074142187740963633032264373376098334554608696837586215151903366191882991086189897840933369502788260635439382448866946934563736349105939899406385289250859891200301646513129434030770953077318292753332324827044780076688153369136831083138865910982698233536356487517956169916335389522162948298997704634174250142669118706624993750177421761918782745658002895894202144644002742777909088948498640930958389938132129026685110777457542817686995003201100820199905484643449722599487296540919921097881271882124331063753255589834253022408374748923600618399053475133916933642094372085583851033856299487221188805158267077208404687870669083784362192175820410348531590871926244388743945656648207196535122858102715465290986237818043735289290922838143935814616753618573297200609622786171703363309493681080817507888107487338747147238613696974263722423739102864649500650993100038672955937787442747978989289170616145097241128634797163240943077545117794516486034967557926580825670655694938846079761282708417322237449952148906851944786238421699216007187050457879335413424983859199145746058019994682057164776196933481041509312388261039409672763056400396702158609021575801703704230663653736263832978780921429388103549331783629208425681503449079376635326572383767938926363501128002543435372434149598438683773098584501567927466758595338053536097749351798180969725145703239335432719540821669984700320561423249389885009131924545466644495294469190659047680758912886689106554685776828780595760319259819034821731253250809738407534618026435744286780941458570087454338923288971824508220216430201579940858810661216563422576480233330273557033931747966252760135985468522852392285504154046514101202171478897077172535606038372588982426648990705583657978467528433595303950329176706900994651634984684984291345123356811659698330464709696711343976350271216828874916286497941147287818199404738677367618111590025449999562328706612151405008769644776954585757531176946729664739812639426694440255481751392393971181102658751316336050415411845517800314481218889582435339217359491341761515473181770935855427320192753682719809702257521287906163596829635711632799676926746575341183408878431806533002568407415244936595534198334026939917757659436417293711289276165789824012232770714867571412185363828868861920947093446551194844797580589976975006336083818927079278233585408453768538769211980238389715978356150492561464674358043425934785160515132812049354220706499557407204924907858102990110198940649338191224159544677623148659875111581336566154509822537538537422866737471158983429414988503155691773962017423569579352988278364488364560660974337081755620914716223608878648242996635834593871193343409166501558796315953040910424681922299560828929493836163562063472686131732672922522376170582372591732733642849929060427612565783673049970041073578060727904584559296383204538835953332355160106483242449150757887146525182205009114463460208762876486056182547368348246430759436697486501921012724800697236715365191791353831910389587927013516705272364600764684498057121684284708009779633520084397032690904099378106167435914437004615722607458573811208099501112887744803126921307476263802467020317290264632497539654605282250825904715853422535316621952346232019796252257728851135031332286371508043509194326809846220198076404994141242677296614800019985284110717667786175898997849900285379314690776095504202574607413673022647275904525711563099676042799625845223777306564501652119903397296856716783760787561236662354147999848005903857589971571102966845451790484053303488783031597147623739543273322285634656494508320864696106451502657025839355469910557841739372707817215637498415119356497569564741070104395541581916754918019074630830385250066284786184834158495378870050950607325308951095966123921086813222183038584194752813642231230917649054081689342976758357252487289755113039523497589254609242501512428047853929945911585256041598236565156476135158901285976640088395453091482042021289524715397767910757704419845724775291313986517603334035168453717891436647544031901243670842649723473847639361691360244988881657246740830813309727148747022883710505357120240620156913400501010699229885063882328581647995546811793261279106627215383105338606040991273801573649016498055008370172842417269695531347217174623453572838576143213799165267194847710443719562139147531017692031165009937716931336151664443601676632527191568839986043398363225093889288856416274597509925130307614311743619178272814000476965184733080758642740770648664068118629889423782269655793848774856554172565839549305574922553056627380590302893707442073057982340785761671331445492005826111729009889391872899895174528259337717667134353060667810865287322406368596446093020549480613799888963427538522356700375476884535899597246404695454795309400361321748578397442399297526570844656982811609196629099787072650569850112656299393948036851201373145261705550349627380777097427573631551277860427803231462029323061956657298270696557754470067592587868257371103337795624481820206870837392522953960384902414736845912113125110036049102286043614559808127259071525462493434921861883193736118738101569841774377651128684832165285379799196530082951244438543226700567672750159202712031704925901406772497659501225555118480691513566436465948354710186676990945000812856494695849037050091679938997545452532769496288693189420793369123754270857811481351860824990074271997445474450693187145137977786833998160461951561196892167609809715028027229036330606411793635386868794257818754729088921937495728916166531713722410395430103669552507060337186057546074151502411904780634503866709868175250221647903832235384128246398278433895236589776601903192447300180603999161230825127141377182397280894487902191368849822861376370104966345125657235434874909892073935015793094638602416027787392619011946000838148273848894422287266923993676732634505886556548810631122257316521057244203428502270427356233942439954425150167314749499151341687893323635988140056544316327916207433641972506535928628107805874080321770010661547533409931181936714769841206375504309564992219096657052063889152054609492092011681922387096646564294190148971630986250434523726407082916373971844039351979329835176658302490634311234051964993967878205055513432753370249079670665793842359995677963489153586398607565567461569854782145177211868846771437061622028860811550620800741481756459468217174944862011483330073105286194897127674642175558141449523969648168834407157424039555320347633709295237135586497796388235801712147542998091193210198901297914061174671244995494214544358478697309578342939208534088932393009600716359132833527076914398819919796825348654214246429369544597257464893248239386609779286664305812278129258404106072924019512008295410568354947204106115143410427795234657725205828600036126765826100227558781945676793873373416752461535612754016968617609563835894171356228061209196127238227697928171526322683850647190499081059210073043169161761134888164991091797890277963656520279664750436257431115903486978522841280142977674374280547160957049460017052396506143575536403986791053745729553120476576092628781031646989138664158241886731300202734817077245184698337430612057097303385628042563022723956153628259598066276932007844211770144029429321216732848389449584833163007950439642453938224637666371367938602547046142852267278225854120821018762598010277045570854524390349040198182257103786998514033105637196034319063004433981284936655092700751855329160783908282035762513975894881602531207997711943751332839178343533413367777671784941208344255031174674803542813344801684602472963890307444929626443821571432373893889175263346776286948370111549144503113778536790791106572420293045453049843322102557233306831730566047410619156708530180309617319234461741194954517518738444805348292227661202310624898869680498306089694157729601739839883702024964559191828328655726539673288890902794767747648666544403049334393685920947035811537696401682724830588474536437192309800281027186918697211799991432602013668682203591427267445484960548011566729819808918592153187636757618610048387058083882461322868792682028889305328148399201240602422444588166866150078413476664691017429635719165524919871531960160750397492871986717508320278255770100216695757479593371175860249099001348208032082770154208677400757634436755298183248658747481479735903040458553986040515755276271703977545300818860920089589864277051572763627938421220137276396364191907806544561896939367841466232362765534102850372541857786571306094839222519811477005896440795318571104298615703793490458921906739660544271874510035481406774187336351352959963000994568770702984472903512100944447339745611229210961533084461998871513965381616424628104306419073935111790068552274767382014210666041153847476747420732210447831366015276867313019927259219905362670155367290520735934083544439465115361151194580071294289046455620044250189434330200544171301613640094949468641722641559780965714919861274190251370587985610594272915106533635977085998230624342516195318952046769970718326867650932875323222692709506436656102547855968113765755904587354939329127079809070111909033092881249312850320964657411626814659923768173033944580299890072856094120324627345762267339732388817572758141952632013949470449068411972342247680587986029743523643406360052402136554382731735267729217599281547222414713395699267958787011944807223481513695911349930612782511695643244583318702276336133845033423873383768993988370753130145768853790457823393958501714066876485878068517995855387721851952015591187179947549721143098137067411767320672469068064210375068894670786600592048179917353998593502477405583376990485624736825728821882753025296739997251414732575230296170280958066956643728509455600560786302538027815286536855355088891128263902886461616824339990556578540331670707759019721989884972028843742998464082990354422690370397053388657881749957214501198061046662112090932909471576696874308645789295656881950210504121884648272158128920481567174495947545514952865097499463721748665874917436146171846288481706860588575759066159277964830463884999884955875507219431637437313796705433564959001758398629978604787635474372734732658660991670474407903013646220669786677341613466441607527467348547142825058253866913308984297552968030987313252079117575240413997266300979516968466514808027643355397281682023344326459280363066670108720556563602443061316802616784108083693925500127718182116504828719262002786768460571933074640571525481374332338475961342653041235610476468097965010871382410777861280690221247954367304985432705966760659661343223172897833478031414653594836824336299630900359495706234474699885342457816221852412493785762055413789335081815956932930537834359638786125664533776889290341937606246972355445509930828323579114569196999774441132643647296944161527559783785368517727451356967215552984305628444031087905449954343523699352431312149236356266816132728705670825816299953915469657291323749331149294749595062057569447126805264034013814820093399594516489200989733389371195305576798797807609977105373475911233630991345658110536207379915726603433506253807906539400255823473546923711270167241944481521643325711868677417928205498497750312972677572717671011315872644964451709727792551142218569719525907162037608030359202722559073193178155514341011732225098990695386513274951206089820174997058291062662070324691314181567519945573388128879514572120644172022616984736157814877024663849927933186661227397958443781365499153525988068947683813558598565703899927213746897020365425657677493006192440114831317488101437579163687997988123467551556419164264715384786525621928858090236457378622094976680281178507604398940756588216527924588464825969491227869066837996049296052931110974219749884343484559483430788452369678961870222005547900085683851562287957269309130703118091278572852183489773029346545693510603416276201670734411194081687388716535003716418835694462020931095692093871203152599897711733272782205604649275041512444626305624084902606196871707991865019531961445482384031061961336639461712810635352208358950839420330842987972975299199641301359048322246975292035326319985218648346702872498370281606574784535828233196386327040012726421285840744480055180236541109225358323683397432334694601072920865763397542743736649957993040620537914514872397174508563479860119860028504192229542177353898472578124071095508847186878313693348954479350900927293077752978498827802992974942356554251524517268981392060508940442833530279559791678155248473040826077651450640003400966876350683614538870802997726373445350215733654853837471253852037259560779993232031799539712737493571587633597255432037049283799813404362707356441628545058199548008760789205648331995416328711434735599019213752050023284500361422983520483716466127898074404911506499201058616404346483623661110435360892651756179266127252436014019479189633122482883990933131166035354700974343242247179958108894246760897720803802909270245919820327657591089948956867812895907434330096439482943490002785237738423932769609774270862859845241286947907899649701405338365566588993715741463609281699069009572059456768867563960089355693080428656866609213305765769327788934570054335317106894842913279300997972541410925306873919960771415611056417041111703973128657081429977531954942933983860548504109423984096646705902514862512476496609090491711344722600256697998564457492240662347726705694214696330344984648882789100104083030909445348277775121631646004272928822713093384057470470440573264210341263426882942228880860954449747311343613654070938843994156434973189170890104187110703250126777654523801235369958028937389669616237862843351284533134087740522575613000264882492407723222731225970648129685685675963908725375840096604602258236704373501232169161604538655651277696926431556810858661980481574309462720124164035319422322334154418662353847208284810957829397518733555578564070136991584199644064626957788276740768430393185638956797308706832622666892341511839385333587217333997666219327688937144460674999330070586292283980432695706593667556609689220689224273294420720504403741566363907351965753217613152577170368945959049421922913503011910458823324191128065362670357904360346453092904408026633750738003398073119142324794247784777772634283612708198439971488450103116617609964975740912164998977441184417031527765273893907174113542618040062388212517625145835247676309692932324196072950788634943966421877578874118986571184656084716820181915088204159660159787828185324455607438364972467879327854128199008574482769288713621662460336763056841272557387552030832663218945990247226790286063262342243462839164883382587964307715577264391122642232813786397674311526405439530181199516556035782476072997829005797215345731993329387668736540946341510193408149088710513011828759312926087397037125590353480013065860626326908556541810907991209051960390116863303996434840746931600614535379920411426938080628348469838089137053058225086043831357113505693736413818360446617148150239224723201023091260166481155160959169787466547074891596319875853232780250613710270193600052211125359362396171349963045809520721673991065406416258322019716212374565475672532371371010277558578091890407419122839799850642909206186601339761381662020227858230450016138399257233840565604129385341021887627311832929245251504204216812904489650098168519584521039749202328892614131003291597570174489453233984659000932859583696529575852637766617004662397732090642057902234150932233017115623826510987137930860416723413710484328760893141915600539371698977443513553883695178289910658353733429083546433865528985732466450151791307908374649620900239905081045329903916066864508727310191631281410278831733315469556464057926975330513924127363403480277508236950099739498217264959513143565333855310384211861656298008069280855114431762918621943058361269034665593674708464447423526071716618891042101371488431930493148478875229714364675081106443846873862585844880694806357248037262068797332867286976339438197594688892996086945820071753236752674167681605616569178525134019341333001337062375248633256233014689494812119181825068549747624453926538748843310172830963682557925904412268521049080198807115355675889523677816661450713965915929297463005226049400826978831173525029273605041921142595584427143291442465526049012526189573263154133960788172521791716022110472330050492327617426355631501731492528839043776772958624643744911181755839169014914095558689280751391727340848406669990316753498466595664022574557094975436166613219711280869037578379254112947928370697964871112227991139825039138917030704916626702135057118921863460135497000641779415431839372919237570801368224743865918379024258890171050258927942373128272140817402173639343336926035468775038298172424736306630246020144176012697335521704195215261634322178292434235293201710765702514835360973643466176259588569193482112604302167846432596767828643937934792946799699419273598579553611024325513696830488834080504912013804651312739438128448564355906464831323977980081903636856762195217640161381335474574591551236339111441015408165840747715799218805854475640552838643023691517586852575619891413012104154728987884866068319738078089918340805018143315927343135982751723647204583530593607538778979595978866043410434395760728367311955922962346224115825113400099610052741894480045649122248580922898495089897880322767997438206833186145834943421561048470648766154632633336874323165401672565688676342259298646135546041906689192688579661439927905471629189060501023378065445198450678856872823627426133299616638028941182972628695146978031579398115785357909961636733285960631765149186743751755187719627452428357569578393291546526876520097492718717936496713928555129127648500829500796500420719600231643861153180604339746585368279584067356225494573659818002104832745552176839699854637949855194434209484300655853319266327843770721553624814712649315372486041144137940451426296735295803276232077299829497476866368856367850220051760305240093572264723980546710513260957672234018888573950056724400545330013658750442263485920830950139135263996474969383025081564092034448896277101961734862840636613683703141481990807436736946621011719245284881916865092742069884505782786817390596256002873131911608691028238333882948855948353712386831611233869682306090505261059576904365719467753934382074646516982008179983779591850891524520053628115052311098751371758529004196477344837638237393054056203255116130088857577475939586916721809634629054985885836681751443773253566786024461395094202227127672557471244010508937665031095386008979867925130864729781451336045482060429222730971080291810276854619758740234058395358483733650693579759384497408382484152290703387648607258771328077632679208625239388376055132696583489305887890328728705556511153102232585100574971621413976603915196125084354614581258954212058959945117711305244640795955583377432876477619250498135413055398216438431431795978943228255929574035854623272894761341717437351131732001835403825577042954363824861127803394520213221397452274095178369257792786194081966640911934780878367373101538713075466959176956134530185230092206719445257332713358989493295949737826301376006408207987623224970592872051830015253189486194266517242455895513539684157089426550687725500287284514313089352240958833028713245984785777595435880261205547320017712179952604269804730433430136343301886210122301352650130359659559401646086031983999850892402043422538428768221588177020109692285156086114168469055057374257052754247508414661018409796564362765318687285792575541670980132215993370697734432541993601261766439591254469608676055869514824542309674248184435291911833340149760558636829126348587080538919321982217713109946087475372283721744276022544392306886070657570460692472106557417596809478932236598545675407335866168340784672344790734152896076716245267472325111587657133277564850282844152781980533959188443779181168077856837777748266313850230795046571814397522006841879993346023990929058771465612950535597257993362349668138303855498254193092012091023180146951134290604783839628823825942524502429771155444353575109326588105156120354095012829512637334881115547260996370033386543065631444516593491295942688467150876885759594847546646232358409215233756183812042895916147322788115735882088105253211897955361433328101708093143306493040948206616532832971600338336455519997744246609745807404144152697739571159964287651355984434103537873097278718366906915771245328794117241812845936707224959518045127448811602297730089143959692360818089376571544294965048173020135225680435448751105590284360113605472115315791164646376169120167526604026561178635482446965492427047876875035426469998370840210014400961661609043460045986538036936284747100250784652697462069901672490787879388996714283051908734962623776775963092206008179822113577317862809115564070470260905209487120962953077847060669293084785136498011142834089291454824245047243810769782005391480310687214816314292862295009322318925909236417172781265768374706777087781952953501375522317423405052571933848179702558263556813529906995269464849388190659598128257830560541268031331294636163574446517355159549334396793668333384421576159461192596927139769831589877128800769412533659005551644735008646878482239736084550473111941138130132567737291262951078558706556703712708065823596721084499667039005419475149307103446810726539073519752024582201571492902967756997253955592200180705173205550545303704894486951389737311174161042111906415623818374533098255036175772630338890999475762552241579307657893626775934012133398201212194875397951868533044284003487390729697680835223379014887393882096817130631656799646208586824667377250169354299141829234908176158755709991760569324747448228971511268099568381241466388154075935516876112055428530263445150105863602008090306706389183566038663848576077516754872137772284711725236368182257791011659230807495676820252538635661150426017231002045696434767966660857292836988479174673672917365948622596800857107316157844123782271126871275182905208934878268160879860197147809003851305303528106578262724969578763287064799829801660925424978535352987947124490649872222671143347071306283535227009010329370224552236203951609118273801336920549770955942329018102216251465810335260889356460788680733991086806034998520548344033636862571395790836983933238517882457111297711086654407131410323292687224612229486868052905915962409437135466782381804897223056355508141439419331776238041024256637657911155249421129002031919654463294989712186321955403337327609030013729010644548218400059649200775026466830060933806887771197740477077125335202333961225313042691325584699978002379342425552672742142814965077061935072095114202218054475090880407425953691760558836978166127243227765481361214749498482610307092254180972300104902116369762130079701849695241748989251639481316651633445673596019848665179826011385417670364683525446873360098606269076179173077537926976160272236767180682372832168458192413984161426568085043172909329737583866060815308448007353103162674004159872799524029279415392638660546685484161025230241453687371336266539112232753737151282129660309146616976823196995913558529545360155194389511348149121135769954512849497740186716016249891921888083086865092856390812604116805911622363403552431936349803229580276444648057762957039901599746756856603375989708821489845460554938656299061965330017904527941959840647239160203356164982405635801194238206750106166261666892335449183046107964158865172126351796967935078982038048585050538157704985429281160947160585370008623246498099763003704459062701674561365283736107110209179616559947652057609195543785000212653207361824587334515364650137484332646562381808417405110706185197296877666156041647847796155266518701833444464836347740866032983438375662252530462452417670540344290940446651784250070407544577737069307327018395544731035480862651492004776668575513804866264150110743188794307241201493625750811546134620107855267168011770357352234807358012008997722688920105559252099826403377956361194598092021595856396329235034833971812211481908801304247212765368335738581501694893391775025096151112609725469748055637066939570012660996004891439981669638759074450594366403186932207291397298740193847141865329324338418152849426276112843433516604998146431373185257935091026295069864579164950463906024304472757354353765249365421442731065491875334413774586333480102989168130575408697959776175045140451779149461687139362466137869105291487429271819513251698141253056588964995514040695206157580550160864766555319137646273216067445074786468341528125666536930716618669283049239362370966492389732031657383118050944687799305419829236335489009608685818475214995350235448470503361974508623747992042740694184371490134224182921791261087141803108172839489919123462182942465526638322482459044101020656868378115364237447588817853575595402990512235865889042808644330237996556882293962145516647557720718981861626738728277721378404550079726777594423924018840306906005542265191866883815363233193371657151657423800939145351594813952996169135918048573055409598311447334511257241336295078107789299054634596495322123104724573795701579789947312625007768512870564448267878331409372510740968861183879237097733843737662039256010989732622484070598738812708702517604483574371687132130318568712687508592851767034109189361236112610410338078739017496584076320960038570887659853912452565398221215489643120452957298498947048514639254547596506039745338225939611078422811121806121542391833429087718595209394531765091369682796082291502807661988566829099948007985898629705808817383396103729794152791039959693994316183259077020732650685601619703511684386269327169893258913211094613007930280736161072944757425148832027680053946115261413674565404703856971230115527945625434419042333455607317749915440589041283547367138291448698147303445440870273885476885776151985062864921107702618991608256382621623015522395687532204596490682298537914673502860552634226674722690698544272901126820571044552432354150676458225775016162380830856495000189452393533233191893574310445056719902160615890557346276460938224743993847307044807749920012999291536485948016880643084039358169041822544921494827599111092549289021668035116810278154233808263159780723211212514861602383428828780080714139304481853968532955031343177477048659360197288200675352563330019880161345563850601143074209122409769155605473259328250827522190087493159899343225880188967088146395157780516212510556031910690467224710991659689113074896906304086064096551591120487578217829487232176869149166975707354817721214599594138487463049548013992557604606997286566250647949512146656644357494268105359326438084357612372758406089616390879800762196556537022490285959069576131236840696072449511184199007952606143336480519559824309348239959241287352062532822829803942456226935314145277271407796358088071234930725526047151470451498547318351685818771574595584586979932655816602128762063309297042933032575815038841531539500064799694965790399782936511646697976558591536635821727893840209381997935235518194273247694381685892108055124182978325779246616201661767445357779920587474394092534100345884953654432474321436442056103715098618865763070746778157039970050134182477917168556373332338930746073591798036374916990006709242728043330597760266978910996681120163123430023110284109445603453768500214098713783422052416664758570957193340340082452416427934018390151516431831844977332591584988420709040104652466414915207594394223806812098270587071929592087898718742886680824458836669897828170506792408030395723230090534418096747869695198183152751459457965978849535005063086699025856701239955945805259017780004593126788140239229287084637710370297497952949246645687321802319965687168003333302906487546037791042704123588173850966406219211097223772745196739801773476225487380672214492968098480476372501828749271993690068515124001494362914120540540325994278826397718284272395777747145130852423957872098678260433235199775889857779433964098748193083714295369762632409741867162843538727274414071368118148417522720921742924065077648934521427641232010496236747146581397237469383606823270105256972462492420328512370574060759141976760813088685354257690164067272165805294447103465738109287264454571965345749225275473783901301886354405210244297407522237982927734867121103787959284314570414090104397190217955049912832416393872938474956812296528195445734460685656037276659535916912156525104687710281869228396638894663985324003250968500021690118459364122035716077785754129680814971979330021738899065210983342006538746329353441102607038028968762194703147716280331890868819762529879089195911409554272210594780715252471002937343885689895909229376543148025460521716431813755083746570541534156197585018109723586984573601609295971052826508593428264940822451510891817374666136704952243763794086965606897799570585871053672644344358860354478323199201293621386706778048431716523643577081856860223721013193751398587071250320154482709511430803553159117841258216549691054442890371921642450731098850263891558624383344589202558088599601482469191057124952997609246828234082376880648629299912934998581618391803888566827935768965245491176818792664827672340836489916341391460301307547753094783223480899528931201794515856578519973427447246446845233162455446512861209040894034460800864094260583294617882834541447627685935222268473204207912452193928459558712589973975370787960126702310172458136051517213973674937341246002876113993802576004839156377578533687832269506345280851015559366890145723305716996819457350547954877232377124362481154190515737734245629863661689342270869326773042641331773848120782437284560967602285625177253104107211245779943051034325724521514809479271616160422059641571512802843139871273844830501898547774789043074321171026619910105411429214113835707971435489519101111001580424120048769770261579179912970178922855921057448154113013522155831538911970613889098358724314874879242368013924592353070583129490897653706731292556073058178981409446297578598910126640548749535315099502669332759385371032760756402083056770176546575669871023713260437177693515879907720176136102794550620653149979368123056404346676822621797091041970097012598708633408955931650580744686727508743014256676422484673301169850328885991273882255480702148936222935251399455731905952785924764350817834338710023015721113060429507056617912696086433176230560274154333153459409116348992453866740854522747560067676586191838847348458382711983697383398969013210515744933039005987208988827574896916509905766782931883311961417168461289415756314803266390129605092879602426871662932704330725580345075493108087141162256662494028683175618810103618570497749575715378324476322336128661338221462936953274379454707937447694402897482204925478590499613455151148275433699634083310175854334079864912859001297757552889497152884384937484389994582441220398259852039856227684558133190497377548014886735630177615028335172637813140607706632173748884285082103225381999990461201067838445464638778108477929051086506447978291377693965014115948829808135947034345912093643066007188778736600680263242901064149115220452054906354662176300197665593561198559760117500512475210645098093792181240366184904873458794086431195246384379517023565663756248812359256243322766537408192269084065164597722664849169782789994178095592906570163337790499322684036121891765618294679238870853723692128405081924534711591691867332739122664389625302546113787934614053188312604717555936580227570382587214215259359830206346872546740739751577197058784493752439914865963839310748810572038825768617181884890085463708551539352681420747548657071105064857818777204622963733033538627791868957532342604473052703827016280647571522120247558374583307448766274104846157035053561422813368630216018384024290603319216531068778007980863049931298911169331042871491874436074190804574300188557346935744917061448033963278606392100018623737027450126147024971386232467016257063755107185455392900666291218156142277443037259541002513614980266197591359962733404218970063390332502239442183135644373553495482219680767009996228442108765758830669127665281955977817351268752630068664789437076792427422743474033493351692120152173772419331399753532933190132603839215270107638587427125796289900817087739341677933888031940599457357111980920730555270141864744252797671231300200015731110487925265272047659419214445564376554731654043245893904276998980898973322093012459900456418494392306147597938334578097939500133779505443187684746762455609089788928813948929494494653615832870218684277957616067542943788744518840527350821958341692374184099734206294718195846942313924261168106291619517126544580421918419961464494068756354828519799029529882776645293328040206464422959294032079155231791244900032334721948293309849250830533967257321252454365434723437740540152805632114630495767113848547465183000109599790361629861273023320763256728916446685275783609288596753036589785388694472377789613376060274035462785877815642225414166731399873313168775876310382925860106032252822522127241083132717732999863237600427232932233886242763153972180859055594279521761861765092144482583241378421981817130492712670790542460179772777305758161869025511140626634343717562944254666246338198574196799623374313949309890401541663658944194909841980504447520028082001397654531005896017203411138883534291607082687573363840429275213831573956818547521520744829049842172004347724845180564298756097636384906518178148707486659760812084206296344434095678042237931279433325034457557944019740324526127513847122773788722838010360380099994190711656200507808993088742397764994001224477858857447924698460678942029988245000432985914712276325133176150468302895582376402064065446596801284036972330911703745168824510912416757269041856556246816474164580647659673904137079949249416520354141185080007196620945014794604912307730845441231613976525841908025503057471132483915258883152221404644606268719906927907090408741316751042515320656890641386931548514690945739013687196435773570090258166522809845414051440514620929691705950447776794220678403654742979306382317728448407703326174672994853528167599123391651684973912312679724841714639148500187482823518148861337457113724092725628266152240192542117814773204004947446119901366059034507140382209861825979642883451408313061897024908797913810899195535327568964677621506463876199549293788461971364368393765886397848200393631071273729640589760705608211821890206140484989226083903978958761194798982004686976540173327791770783728537126580168667723484598832277372266851833434777580528507920059386232763715841660842128393344532926395979880206448890152250122726426895664263166191088071779750693233296104709810951614758862023996065007830551385300233820051693350056328743985622765250990884435980073327939850262502482798955818678557100852976359195219230814332247912929027233388021372767467072751400347415930068691518798313136171380799472773784008545745159536889587237989498409038282145494631691657782275467743047462594599623541356670313847634612488946942673651014616124124545684533302632566586685945695962155987736791750734158280891264256118372133377798015638336507911996170689110479371240682000627517505809827425766376693872941236939874529958564703116695591916680230027250904870841442709625530993333201396081900295080373190264722672095277693050331631063175513441471328847639173307016718026290081185337311535055860044033726650539906764658075054056122325794620698303304387378081020875312636730708587132548464903730113991899188839639239087480409389234449362895492744951818617917364379120283755540623100550825995491802542193268644603528757000623422805006651436095517307242604002230358561374873093383929746605285600719656493882397998587779583800563368356774665769475123706944627712556427509863393579653457927376650274392308212450041174859022899861411982782527311342899254658743770451352250599047532690405460102079439958129046009573376856475255065550820197941151919055135574212687222978845241528284525261595111007591126936118718241285199955387322999103028695171209131077430110432715790081852263319935792767420993896832277425829554296468084095767074635154621786363433824406500415279006595772363023152949892183341496210515380497018033360199375082305883453981060613083463970586584294500896543092188665862686662533957616215041493068963908261862022017148470809205357445044181209832661386652976996112136926265191627006023882964817479718979963131798208059926727818827617808549617459537570821454512368403600090328253950189718979010251149939635370751927822951899929481447286911770199207940634048372192167238716691624698137754967047015266997374803835816250596570029996498937680920138063085620368381502640621856073959639284589013499783585332105583383060091337005605450527469529534205160260597776965694901412987420652148965187092783189102033807522953711345750379668861075615890511782026603411352284571272025366348793996570345466523249550605853749895617243708708286570993153257679602995114298330249835215372955721003978522577529334164888610714888401489135200277132016205509343176599610304938088443341057836215596460534506039478394148556069353602832467441176118991443284627658612878372169752757527491243393304652126037519750102737140211949928954239834061541800696826596825326228317053333344049231942611664253001117256766252224026331213456679898899893173289206539290780419964665428216283052474216032611190947735081654096950474842609248741046246310300257930562961953096035516377800010849351827063238118317808144438522264394884980548304484906907971657167817330161405157895828343429520493079930819755260718390007680408126438479674359074776882920946925952326691327193553732884131032930686318608177721977187082233212378047200951411440033921622953845619620106617753658317504293227401504255897256289337039538643240924839275275249764075020168691753804297902590540301661421756055726321261092501263431178977498574047491047436792553974988157511600750204596103927188704975630685788267978623614090300758102823634687148419859556018846752003239597444481301344135846000270123842525576991944016413533063826942158828485960600825112424052670957221306739076703069305618436695415217525220872746657575368321598213310870202958996212408894299715244170570275442515240519868550936941377805568410688525554733893569030307382149462694486751069164149632122933311287412056449674237488895094910714087238172767887915932157808842331398234439855601503893041543217327669414387289821408517520657910338116130009308268856377769967349737960097114819787910639873927762091817990651152362423240526851247956033110720281397347005492819607947680944496621426738612377300071518128685458972327923273933404198034079992618879896662935718948382990772055331516964365597705264450054426302355593610448710206073966346905711228454831629756963112519431514744959251247697786868167677899276476181868545448656482953363163083002911860234569373086612845074247333995997026802227505832675500901435465025698537735575817305017337039884027011117665993925969453592452668606596985358397309606059888014856302833137806739186314318353162791360374819687632495372049047753305822707186386041923432669013368815820017097743577634216050426004664403321227722230683318995696585030005317095249064576507814182784612699384619184204042784065701486869053532399833774703530104829545614770872565600826596281997259249411721941242262963997136668307986904144909931707151846852669110770988412050450702373807563212793868591079510047884557544802607255561136424993292838260129911675828705379409990279800801366743118570578953817389023354019918264517770969962326528855077459840175050453612243468928212253932406698643460998990480880409503497260220108150543690547227782221350449648317435375399134713592056335955163356003316461617138933980154616821799880913172290324490632510588943164684290556801203454478353023554627148305866315513203824724296397493517351522057585162410919042460085767913223282928269873189326543718129678234401556133116376653356387748969364826672862027623220818083988984986319061716091936181911395460262728147602581367233179353669860663599716077618671159197931215734276294193133244320998497072950503237914829613268860563495638929374015919339414627800461414643036315272983462233933656369240871099599801269531380999114930474201545792652319904451811391448257399135319799921014955003328977187641523866093805138971524090927659993948637203066748344626437148666924536044275735808311375149463904902211137312427719276536847872919767273890759274736178354199086554013762759304928945303216323563967988952554429943088816322411302476838934930369334651741949624301083819788871760884160270880228000268080110050578858343878988582315708207111573021823160377376513695608692372215719142433348104057639239970080403322403545871552275244635108477957376102204440570715108937597892100264848942612660823026880002638554584605444102349530544741741812642599416745843170202701839185672053187095232701586689169648253334904876780343657906667761703562294924358188132348970203283230114707318247988921478522299572024177670663869912292637803762266243205183507396243892291906787071946326888853016524570733554359518238526449867373141867647811975750208891675932547142479461410967796938705348429709409350071090659647184974262616413392991488386282394380189117774935062971027942011591321581151368373544272834367314740636245509962014953440150267954349842789801684171121071902254732742649714085319680402929750701867932471031502824525856798516978964797019710907527864527495855063534409869009796640060715509791777185595056630844544700576982454211123456053603412395382973504831496071971977116408825919515446651781607290438633649304957379905255849221400254251920017837345477700301389396786090278619554793166683785446741437534539609780271989544169322348878411950087062163184580122976983071124133903602098298289511096788402751826646674283036988341260152345108907125898358779102132135072251781115756817340716060292125581078085617809102886400853466413100323474732621625277202450082184957152809465170314936790757815002110693368534006474602641057819119839727700058890617403986083108460349546307119928759517687566065551774435315488785972069327636230424073155965873501861696648035788872454884168173103280799463580854254582472459417921874715614799950977598198436685001578546783314943510723494680691329682298702293505071167955309430282919306562622548651383222251522290697380501723102731133970690330394558815183845905313539022219820491975664700601475474667232165673913449969846384187085735753139508257015250676659764168617730258345240588202750431904831655449606421719448236440685969391338284916365854702220383611674721370764557490298473002146721304394445764849699544896927626243912928746441126922991747254650047896214114797059367537052278766757638796691471148361234884428847294107820467705871303318397019344026948477697031571721792145808786669415979235685764022303793001160881345957945960795252762958883921236610958428177460959987738380766132484904635222649813351867981105684296475041530412214945251038036440546657757402970253521831242372460828954705816930423135215340159872438779000466362912355428324911391267682188469299573409489297227074874839347040231751900044467819126204197248264983709298372701986391172701196636663939525470969501473900036937368675728812658787920965094201816892964998903004557698728938125000589545695122264705665496723259032780777433286325137463226735182076917265825179474734277781574424418321867381648663244943560374435489928340708089296918158716962623179847465253741011369326437290338065744847803446407834424585991648838540385386624142785282203304534839932303208738551376649040602758180916340535814466631132585349988195785372612127798154153621448767259058874167386522543820145472739829013974069240990743062700892136634018373096441639814378821656965646574337113214482271726084502467919660313891774649868632893900926673982052811360298119501356177368258042493105702824937455642525663463941057708495552110516083935025895207175804885214106106675649296917328865837526273209426930800528856972265269014518576270774986383756838060972075374406660965320952171060341869066478175349146887411792501683726385277568562732034172897740808325689673471470946132306394907255816876001664614382066242985859270787071566168751584692290939601178777773811243657666334751655406848987949514097511109656042808145785726436490903687049262864251470237570700085404815844587229591382487774388571725022782952669326480116859000472447865249591656673576698127440995719048124337255910094060014704509469510032551677544880470215851453074572764345653102476187918143201018007477815654003474372020547906894854256883000095861157078988871322678015893327248864418582915476202983044001619901284450624900146868995175624704033620958874757479765957246162548224024531085982909076325687073026609143164651889084662219188848153463200785057852863677554988166378897559669301833045078475041808050506383037760162077147168155515841346222481456999410339124646153356837764662226671815442388551989220726321692680386466981787177050865649013409611495307110696815143821225178889074003271178474726683611731454177454314716194425983859431278867916149458915056475135785094819981521170105253210629393336889834607591180511109424410617197022285860559449537538578087325266095511026213975250234965637013364469070738508468360330234313447258289147577519283028903390022250094179422394115939356457627659027624867959539141184568011865517272758845048944147477552100764560116350291251318205849700286308194703244075157700295828243852147209769284427093214400355250371594609224296787671513574511939642744331174744211128477349245322131193181143716724429050776920972784309191766711477713204120365122973335929616406062353345015211002659814768851786111518065628434108420062671760275868761984200736314916431617579925698593532292129367301753740592129331879878787957529323582039764537772706845068130161443116495451266086026767797697070797147243540707976920522235534339162029959378713535641327763942837596699548423911931103859117937603391167481931035888691550171456927388442166582100134340335905342951296712059370681353126058427125082398327917114269028686958264927109830528585647937827050640959514148824857298848528875965653133522994048867075751082840013734420560719212743489036492245156514408548832959087325083437853435256850858950097348143405982379979742738836787957278423498267593089915917219898833081019757863690432614473709383040566254573166903493376984366490312593268604647153557821978316864524145134017491390204110593415035729351735059676398475587743040307870914665026029522299616173030811879325127735889788242820659755107419428676898076857776501621746682413937100970905994451183202982197574723675412012574320456848131628221264429427560245154187552470320902094954547770560142458530128675247761666661584742518285224360979194374362033250960314649977420360535758886903380040662342732571070866409999521533255099178085458025020166318879914048357264523067854542830480773502480089288197081892047390234841806950362615556782192641270389128019205764295864580135218930851126759333335634315432869979687104025151900146487150015667205256192460990226610274616545781870385406850769124762595744596386033812892601439740069105342408751508083314195188535623021858369394004885696272089469869869137028494082493688735157155051339057563273326196554991968275385695794047922186769584535341863592326968575103903845160786522841895956115971431349526454959013851095815902061419325064652871027053751438625945275885302311805249153688751078579830792124032850639004260870399891267654576381372876909575208572064787429844846603956580735307889496625646957334113296417760030252783162914146585893254817098755708662223145125065429398462186754630209911829834275828933758766143639693620140021060336965383605405272359496432430902785775944007517952925321568897139585299329719241286090263632889836611209500723161546168768438720834528953602388972219506371545939288080330514346893826907051450490960279023237127999355513971057360371032359545726178927039733122476076405047129991641909737083621304472574918720762843597033002251276042547261623867872687414043060650210596103732158512628270220958470639759862200097578508195574670851128163410712371185722468874749409055689545263979185731375198503291760251859777611988744337487371336116030937014006167920977037048450889824584236741783707499043789630145282983434420944434739853763501049776621576050299538853480820663553221592497455918309936517534248229429377858784239803889346881918138260104584920798634477564026366545885568543908799882682368234200472021158747627328137893409342181317990220048661842145458680667940038700025593839585473274966835753499052068412598124148443872409731710952106635612167815396427869379504979206152621148247577146172341928124254167032526692706418394514656134396463902219581752442465990330187521393431612667216111607851528346936236365195354833897995098399818508471121373769856803651410312465995252820486072213311259341764572267617931372097674851387313036839289130286843607924524432801615472410796249752605024113586438985885706656552427080418546171028009864748801582577504967256182335797549776534926813039129929196872547922399586250398995323161297043169593878319658990804882847924294138267147192489921031208883440009242087302900324491114869833078552141421581929355871657508473545544784232824134408547004343094386599034417376485639745369008284422309973994758148772670038387728023693848776767653364115621806918189844740101509795404773430720378337450551563639259581146558747918902794869562902524288296554945320009337279097218562175216857587411724684701288966586113614915186416614926311450133434746999114520174410839943375914652587743456997363723286495120067099934319540111344699396565827619319240619945953504534349645366596064673988922407210865114693687305308353761919699162874237672405334092379323133059710280518272172679724133252360228900913922285625478248282456137311878467342098484103622838172236822120248026990859226118266057053717334459896663678097689946212738976784130143949259241580265449697616353272286828916585060645389759551234937038950688923095807966954036844796028022022013663077476821622433291827864118705325266282488447033761643710377896198897057844671296372906023568067904287878431169686592454986645736295610473982819315213455660995145080802918591367245882358709399893027467661540339486849112426167433631815547282605471707844637682867497768701711381777398829347783460578080478577603878220078470129122054213928199583844169420662535316875126637207883386037530474998682510438715066421029065819486456628193347761335875469883394480962954915306245059627818247417308002452908401611725441099420809892052780933646132062497735121306532801862419214610355538466694481694016237216461213239106303501673861383745610227316342718612043586346033476671092440827927721826366382111151058331327170093699795162107229675049203126514328510911327576886301207463162715071692953981040529271177020071233927194481848609230759781008116868868549471292240962562724051001795619868838704936548611456069549362755631590610636133455592918571535159321002594055808782989326299368113307368102097702709474432339814537721083950372434410228379804656329571599397806566648890603080976590998267022638710371417880670528144875900760818371830872686498064974243254908633978406653482999905133425470684724182442491795157852510361618710609182235383433949123550413846040542470967732634569190637736913227211790705542920674228418492835627262287642936020520140319533508787014031787251920287609669285109323119170096971463170360800827180311746233475783165187940119392231382115771238586389743746030201746801594496898517498267513596762846391170134577214225471278877592262518124961794943033702566531586102239301976512020542521103375596639328826177154056177056816355075011249208597658297841461899225946291835876456018713415610939660910285702943839082765569262850797250659361353308154185878997822958846109840787042358054383143801875777015263357989271236914414345785267000100199558818720087501870080751851642407467752252289393263908166362895354850144029142612438447351755904220494010075041819745918903073863346310569835632266350136910034863428714483623405847728997832041903803348886453484725797902030556661316267596900391594620353152651867885499597777124408250633469361430162529758210510001016163652294553039856311142281764877904307959436419894719012854912428145967505038693492631853747626959755238046239577833022062157470879639587286610743622876118644789380400199847585640158246097674935117652314907611677923393007518337227892077038401287366679587961423519342676802598380387488682317289229097652280556279867521017650369141929779933580633509231757943106965395585520143871759898279334959794961433232564686227924614484865575965448411214952858925169145455144634705646181224150195108926339536622454346304597929804190008889593471906529731630092317199909930441710199221077322133379530969532607685689756464411085696611776532977487408341561516506963133653887417029004402197585405320783145046288582802100936888516382802588668865997567423371407063290337767366432064068428132645894536545233516966992834375592961081662583760232554763308074559333699614900152600313867275335260881568419637586336494177317271819469292217976052541531704844011501897218142628157003839007074682987351804778196123160607797170739282880230027570672116440334722140129590590248072319229450322485805084219448878048966329610105472062108263908402433775870009030398751335000189928625267554161252468399828489738294743386464714412332042799256392016239352771884663965369793740233856744490934771479520500674391195302324511666778928742676179184651775545466121729632707863294206026581443131670097354420690941540013959578748238528960741188556786711975076406439929514620750735965381785142595857260708021861734777294037572562807363400565942036054508799187673655888733612573927852967283946548124960905311462269062759961403055908891746321539223403508986224051616683276242216393843518833626137339816714597937067130130601505563740044470991691713526125723789457531882138160068263241551588007082356541782150575796549417444032735747296810426874049390678672426540304632314512000133709474537404410353542968630424185642884002307559467344074121564602662606890276467744706521618369450671968615162095011110313312562244522884312843579261398706429587146949192473078777606439598552230584755204458480056485743716378799739990610418729215694783092908602298783243645103987230056561486971430986225156581881696599664211178749592736482972649735324738656359501595933314450175328054645770247674940445776469027901883028876005655042665353249555779768418805015906591400603840912358624721891055437800433222959908873508036571838087552696264894004148211693782462401433748075209710346370873458742032938985098261926899488106174381839388771740445088327428576702904369686838269077625917093719267391676687696403309763358544810581240958457117745772380481771950510224425563809402636240057310483235716217841734735081711939880838498712617201544963188144536667331175547389472014054055990890573592553798445212794653473097884207067712724218397730234771607784289841541976198874730921028617168459814110986383335193194144059256187458183507577238962052364423380088881479766379773998305062124621549053715848791970163465661239594649489684903187281402439906439438030697912759439203014670020764226869935688457459015979494563986633729376648422078969025412433874206279543330718017997180542170977581133178663830267087241658616017629643106838737921748318844015151066090792944100074697857254832549561954321601939872144596347443989342095039822925094337789912729908382137598908676247360444020068080113909455233692074033307307179652266729486352436986870297551445033569740800290951497290707744219516812118268918857271156243252319196414712640547375990498903580721672009662423987026087686233721579586207549779349819088193832536448301275511426247333185025128956690730810670307230007605732480720730143420890699394334278641040166095298847318034017022985940330696616353036503965305499040487912670386071019735923993403530662068939692038990760538613027981273179791212188942285875950551759135185459813869909638366517672708831498123770098446994587312407892420919943043047345043469111188552239726179620612312514946316475434358457988231203230181404041110081919557650960609483986829306336145512935113447638296833454629439411592352383380176940349269861743632412805808669658603882982938944021909306928955018769388550197096978517684042359044257688954061254650994009411874706194690222310232500795451850299343561391223740540162189483516645403165189349237267412206616547166868508129216994430729396374643982807865541285531750291501460526319469853356322703864502784446327140271715895654443128940043693107335946334078181234745586128125561388034547694625069346257406558269386208049727343261530956026868739689171605007015049378994357099932058047043912421155918666366114096965970464970780660693547439132072934430491777613118590599057324963481974728404898380461830682037058454486109581056610946480109455733039112769599917847252225803217823136731881625487030349548042316831535777393699889250867691949362160889688298779829045988951739679994405677384696575363683267320884571584167470634560899502250706952380354009809866734115643048991384627756030153291917977329419647043316075457768783111374985788634278249003886807942467848681875265354015811792526895912865720502892164539446834165937292134914511337216405884735876736641179822680534696803683641977746715890671426651059600059641654318568850234674863303231970259689658005340336754016257023362913702394903424978199366587877251730409689068988397604344347641185798257622897442155404233479379839598848670971414508508342851140101938717521229283168117199549701972122057113069973185548321545533580206759319661285327935779825189265919994377951917281065011118699896979452040335583252742510758045449320955421500221180463781250899664950179907988039330165062745018694307052234358639382145177745688230420422342072052801406374648503890189166303696005668018030660395154799910951990462965105943913650458125196130775913971674898119904449944149435191326256179961357714401781586036030892100950951239275037570759644300303048992234633395870379256054490113316540124595383631838095760335063616676529352473194571717987518957085152125400962911501279784717472117708419596640532149456466720932904158112302642430127658398562556545102397376176232726351669784881519082517345470918200789786524566362712039828002818370103720370950066024687951328406079296795183263257993524111160147753358641123858528188500601229858285935448458444066927924114246892268338582521545420018029357156491477621525884725711401685106453121859646796191769891785465241599068282429132049920600444465482828832336340266834137522495999516327685802735610654744968664741116973984744465287673054920539938251510685563679501242171499031035665654400539181531479421794446022739707954991036445794182417414008655507969464534658305195689071232452944722915095905462641296836092425167511873630907237746814972180158083249358460595189109777490331112990085351535441305272994602301406746264881608235080636338930722143687435263177890479217318820731517012382599448548709576602093263914834023650055177388280291701443049651901392764291304866976448934167339372374577307647546887401492478381638082837282759901926727003183212175475716340359349961540484731029614562695576471180306537281824542990483270939020416805826293469764307535882149451736052421610343123549739537212961184817988333644156895225255423097138102105873632953193219919002185241219172864002634463579128732372081860831995043457119755409009812878074981905133730525554862134949646587457260638943165243273199903787251988145809835375273065205975759838297356324952561286806261616163026630907830355451576088372405785202174829140548154499270158324202900714700340695462270940667964075476058325386067562617950853325969040700411137170011812810190533356572760593319964456426777784100511135197936587393932060704894356449326867616497248581119731216598668945717543037239502952944689920063970615977281594733850116647440254633484784908531835039675889303451011365604274527186238499696382176006985348626914441728374282848720278869980629556457271086637281552161422598093941489323918880066766262786925881007946735544582679154638720479718569882004666930866579438458130387021440836447004598154073442617008486526701790465927034107487218356756272302046592786435912191009971300525171838469929042281960855416647441380960581811413448042008506651486242330481422097586034450823863974525552168431574844250084550369605931326239119431131422352192070057564029305722300447980223274925074188267131954198001321156893786250924715759440424944049852832468905208394866402579764346146115715029098240361869291582719867420992093964324170166518684397330092407264333652662955204146662307581360350679418119359464589283895237617820198179717371658551449984864782071748407761141980566807293663247903519982518828651979334184461770345429468513643814286418200986335304156190429480949909643033731495543112804427824220994065025275443148932896028604107186853406855846921522171525583296887747756363082579121379801830832147164119439553695036706074355365269715657215509586498052086591604169924355738524237449664287939000106646007813545165015023453328370396301094583484171789667933317925189164450239524222780620284641923139261735007876627839574724791045702547962461761699244429685519683316723642458349640739142761915405050235874789662675242319399529547795897072227933978647890843925310878556652832023637804238297702691287193912424842578888333343557747273572159841813842915652813292764639380766440029609149135192868553296369127758613897276684768282201379183737181302812390100934051552735130589335275692456680396816801574668133624595093974784169460095996928303877528932036107395581806783430734171748666335539094309705044044344175649981574723926629817893559893813092377165405025618591925925206006926557347941498323746474363681593064137583634463404776174218871118528301158635763314545156297463547117381571555397109651163655259565745482977793424965170646157317671905842597580433631314548579259069004624124705287651061587377009739075525626589033184923704324302180032848654610015979442069378027659670653709504788937324072953986448569704687981532246177100509834871642896762359479833032425771497215727732376717400163657989136374437744509813586701996624591381483474181250220956908979162257106992923882376515219257828754597442501415219675814323321644324407297656207141236740487249256398706817914017663743834566447847259326914004858753596463159666553086870609426223384548817965554271930187459547789980649160199402921697022056944182706820383445414746637020654659017523773236401713228485515132428264979619317216114361806724419730031553046347889672911486896448057914234853305613839688797419041622755685954474323815046235505472798369201891140868047686423891978358413903176906125897844718239768922375412582480195446642489357548915176837804970672372526057202960317563478643375670947490421119468438554912661210237417606366849112691316263129700328001460412541090332562106496329552891793621385988240162369510053603243874762041872090642648261917970729392451436444060162127921044463593017276008904484895735458152547136533746925134684463613627973160873768047639405687764455321881113062142740353546374735756459561515327487744911803918528224929594367637302451384705269449511889486464262075366030649529281929395552314946552583582145549762645604914027436840661789714908491927513521648434871212201062544551088417851185415697515806927590925115318496783442670301022748846310992953338170759260099027457318366283837490654647780876047384859243209904504855348080649604027450496910110612796311830303137919514493775287737702633758365517683529697251475143110473803219444976572094298377017670852879513982428012267847400942674534860841317519325512846531531598928971853753246130717599441263304733089598855987021136180427221769853636268915692039944079585556680085855157306995340338042682280401754082621975860380430286038015745969035368655974603620943961526133737017846656328505966645714939007370490616703170115482273469783902818848442260879202469903724796771521852029108584761466888909206860458233966544024648879005156712549148436736268259707739937416162368880512045502564256328819718358290729769886311451382885206778769774140220150580853107955318083773814087904413354808461254428455303425776067740592824349170072475660709164351687972673320486049938441098991164732948837093620935462958350775185807011173949307416460653419574867949930691918403554391518821220204541323638494212206626930426125094064257910632676409911872588599206576602278274108324520624757504818847926483633033221329417700643678072878389132327251966966591276024025361972318846236158799258490826741369787810012997008406786479462570955908287224515308893560116132612354258197731775271863102110393800485082417650702121202031393863768984197855881860859543883662214717825713989751658781735729002753042942277993011955650400950717370807348907721918390458575700972378983037280539797197371716328979031959678658977303794582579335372958504992917973392831194710689358707598078529983399964424162996780627764734824293021790722258927928275796457283667255257420307863131965473680749375657859244346003123188629025161195049880256601290425177234596005529752770429488187905752646811618480338819090798620675809644102071137101575022023706546801361197731712188711673751918112186415375528308094176534754009913787996308601745929152753063646372742923603792779652062864195211402389793667064259108785206405605220754463433542866764630604660129013936296682110734313418042597097159097342306634683109274199055059034140665036783764440886552260360543440686092127681474929164934321807887049076648329019193877490291295760810654983921773363363963082504539657651605033352278139806285106521439351096742111484153725138039548379109517306948934073195452995171477048935367168215759395134098112044536138436939318856530356995630112191206855014093827248421439573681692457899893281725305280885685220229851843607159808044345449414128911597308602726313875382056356213516779895696294761374281099165440635097621170035494318089957468470975303618186654961487670885099171190003597687454291610495527883107287786478215965471226747595748474431308048646370363814705057357627586353352103120044493315466021595805368861200106079929042195439919887976224003262182262225756657096722495319696374531956316693284939919905686271065632423390190223938633479960150537301216364722126637107019324174049515972869326608238725046846656944099039621581805142771302534290685387846331921952837698626685475164518629123134896330155499314081730136692951690938003703874025942385876750444913457491020837596297352669604848991069638897893820669758655370679216380127567330167618875990676524373471339705502822712624869127383091743760480775864525271386002240341926280247529279045126601754505909689227578125095632762096418759846160841437240675800776764252931526637351557823914943988402730522896625269303981267743594512762152860626645674140019051514777005341406797280334931989681217475904612315313745863788915495025833906812610763092870891380943566272691353019741617040480574839368981683328597307389285765730358396445101474710062170881126307004486447987633063877476099437325296557438160921726886574303182612912337951276813816784903132760853100627925685629506910115176500503561301257965974890990595980377090265038572154760024024581826025542345213446585595656229100927338193999350224260152083036083533887020397192341898373135618017193452084626839560809861104071638547596846927108854654124386175348480951819684815305687524567270009590727234006186180965256340764516179300340722496694111505776156616375444986525413277126291041709081066760455701625491816833378354818885591154126602325180737213861301050916026903628078307762003141383100868542971490132049375533906357924252301954476102571132877454042291368961301225863874256276746434724661374536032788898988673746168891203068435802302164401485847150049835542167287039345805685416685457476577560163004210597407421699987677289076842045450830260548688874675818516684348232999034222863453450923773043901635723082332743525787790541325287822274784365288700984966692754452632377022538740884281981164523400421711158053736594812401746850754885245478119490474857893427320764384548727845707581257122648396017725544781927552143862801472836494103043628921167867776252879321001158356769488631731705502240818769354951728541380878087997497803337967197863852995201025238374990118315974908070335694483385769431352152364413887691514418562975913100761296957363191462081665897094429575665800249781531396813285934715260243802913711024568595101727423712944098737137734851094338150100606908807399515680253533942303103952074682978736905655413947159474794096694418774950350913590786519618694895874641564315386084237030173903141126444250752692177810077558590373564428804410499509275558968336569526123414177333546693139342171433300872136930927715399524610341329569882395081124538897807417949269700543990584896007260131690947086318707085742620844572059660007179540218070069320323765515278405866596156573294231964123751272413543536159219239696063408263813276845015450976797708099814907127234895385708387395517871065629648576659036235149963767058744349040110599088664828990706921413955004185578281233622387038465104996254277969642717130383584264264297429798508583162282218636256013047200368786998130525664181749948818679190653935479431780250045959341961476351974248867462426761337013698994878595768388559428214404278467809142732279426541033061769014266736829726528662760341624071065119391450480442089599566367631333771296760003754047156961825069461641925315050182438442324140349926520599393289479399417110206789068631692404341413260427824178463857623674467760627783522712105152878628635064745277809254845166679947763029249951425016402449656135885671551018302526875554368827913359947304829389650555882146976964186652580795585520499241333888380931080523450680681315413485995990832367446409414036939713633131383987381819404043573032618168853393123940711191774282656580159836826183528482193564816661425864453960336690427588990448928439471467021433276389574289536050588268986963445033335785655947335695382679806827486653306835946734969944756932121284215472956599279667350812805025349347751175132231642255910841519132337923360718737029187610536025308164064083929253515400703437253858264674922984687543968150722380530738470246024126469784231239858130455527536074602625807560951888851468775977443506080312931546070302574596090038433545819051783176363597573493364382388140814061800759982028431363359404777699271755030201506875764664586672272311062194402433233925922584088978444634960294400731404930031415564968915009782478542158288272826777273715146801684431608375030378780666362839293113428340099411742814488918319336644949362178664062813950398815642771807216062251879683136713159664021390294411700663501262092580114657155909774108157029309339073277077471350157213498485952523144171505444653215517792765901448586284527414982484236146353819003188646633480655366146985685801679589395454214318998718172549316832602140432708074719924516943806794114821169508604101301802042445961794053127466754281022478331605348378841337828053140986170593342239483194400002344476400633924968996481903742711997290991173936424137677506418438404080780551231991973823050670383824576923776534690164327147886268249545916106317954548266699852405121449645865636095205758680789255453898642180893987108577259207247134032278719734939749981571162510078489523551776077035656833554444088886997179723138165194272163275311923380410503594690773086486937718449650515339597430597303107548364190282241631040551770330914761283230218787133039602610085546806022735190248638185736136671985090238811602575273965334401633371733927495021538182821955190410593203659458651431709004809961958306492262904614519056549227758828375073939873099276932787736870848716238784224926821896597327296695425709505077655362918156874566049964398404407920584560548358781743732972637640620398075375299844521607142892903148653503303910534292819120000535469891196241548404108733204655807659549147728648082922646792805064322338592666049759228980120408066438578281780672002742992327418434065638876433531077186461926097319073889020869836931850864255020942812629428637887913253537263313573706644817450208947098285137173449233329678687900621412792361959337337571431637957748932788977739353476665675211103871630698695640139251170406933545491645750220628652025910893354243467231738201162565761877141913258788148351303959755744583227011967366252329850532865546850188736021369204734037941848893855596061317850832361129316335731485852533691512092209537822961273000744068491900762993256947619559446499457140117776542588883484839719779737821145535419347554097560758838961508328944352807835585270425767900079350962921229668896644156688571639646632309159477076137324761772988535893914239554160802338187112088490887907857009333657286297918965727934356050280325482536799335215633141512636101570691208531883044834916297573900113565191395552309663225478495238369520602134546114222344636742758118398858612021988912235049074398015290237839350522750348929995231979978604858242893161275048328388700060463761224411555766262241906909948023810968054339840442569837559538020280162006399804024374091877382595393423584774905053630238535173220440378526703988027656417006764323682217931779061049661645783462961063927467669166635076256841539953661716462775837104872692959727230887162573438794980791998070179745410465090839557643809319240007402758223385098565885430306522061551301602143834078348664789319776283653560299325702635230807591908716629480277842055978279070637145982105257743502254539963305988681983833707987221108155129951520420735050524979000060987799152260660661614461695401676934216206245108058373588741991739095543209911854064142105867360445144798797662415644433933745980377641863674170455755358960434139520501664119453534816163705594941654943037481800762881240210385431479708344776804706850113471307319046913150411742588815614865078893254681733625296915121729003319789588790018009777950035050842046510517495870808705602469050979392034952350305769760356427431164868422640873526714266473457057895485493958412915721688947116169354792492838556899348491562386096773710538464190846985404763680126755366931429537667784193094460104271626816181323252117429985513901054174351440345063847218274687987464515774705157342428156491113539437974000900475195693738678486852582850554698699719896399936667427060247587109398146089998974770112606193216097056416543005035709968915779982741852842309807817192042536712870512033092638981647093598942335919148530437632297362640636580574016896162646542944000923390109840275611337949250429244431061046876259559878562730435496414744678970314780715316602369510274146696548332370779176642448278664683073188435608196563087668667049184984126497391035835639600387920323539035452743935223640381036424350132596832643372264672147370983156986968669590195352089622140689811509420871522507842045711646668776242206968698941604904829594560779284859624552011996316252592704705018096295765843227990011774303137438865382457035567873179381205092951735150541651892783645962257320638856076164647915169396691968198298617849149516437994153067278481502837330185460272694468194522752961805348485456349256534538515769582338290319100614455722401940588887213342205591358627618104837833445189655265843917108418704559127690519967602204833779756002700967467096266659436291176444056789111884365911090976285541465535311529363905738400265461757487690454584398214467232095119044383594448556517219500814816287544997389786517206355247894225584290877036941172137706035135062153263183395653396436974720153030215081822423338943478877740640743810077608279108555227370300639338426290536116794192186630739334569305246507117335212382536325641695296062975083252302229449523039617341516785769047888013292228879681994335621948785745323136206784041378318895771090253542896268017826946959197145575513534195104068454032468466600469627746545638010118652204978733505059102242943165101111021064328463140237516208476333501610220094417381740507842945781331821765394444130951430013668342934876237587165160359123767064433716081096797853785578765296880718633068069249181624768820755841448092834540124653047296461545594179795333207568779252525348903986334996462267901940845158828155808525712618491996973338521516771260348457299024736970938285327810837428660571068107048533051183375957893200942665730390434331081813053469649824821214678978142113805978657849924966303622975704882061348539596940046652176350794015268382569998732344431371730090767860107294610423487685856118340488672163908445961697952858948012319926219771693723706412221621804903840312696305704130223120980281570086793600228593964974684253642510658662930493759884991610635331941077253271350167272838728166806826118906353535631521936164853378035168607190040984304805077027762202750743749353315254759481998239560602508744515907801465361902556421878081858258224157754254777615932243693020234793052683200740878280315515136960971407268865642288767530227696730341406704348587533213253698445245731946928531534419447208710447239254839327058623057026937121831873263226573572540707252896027862549090107521728224373182148074008848204783300232272667010610091053375189268798254125608054914440226237157924256129335975897873932829444528149285076289754151542756292787972021139668090074152854159345579009183026061849937917857009484798703146687816626249797133154021372304462427925563809377597266268634458879995621839354574489620012644229495804848524874418941873298256393803847228272147025181126312619509990068107998995186221496137795758506626229435310638947357452010643034872789745917700562232009925152275991319224992107886387803405752680813245710044791716034823639778958673491492485773933589056727217380180695031332953065422498688630719214194101838661649371436311546805052850149345356426248367544318705665646456626671108818576077494441435604927877883836497499084735514447753129051779936295963914441983854064662499290433325625702184933609622083983223297941363599919273311731065665435315229879391581203965521273424350299856413740837509091227779221184032226886615805696988616635215882499569272124577502500198595707348453206354527428442774000169794234283982382861460771375608462159552975333693218867725404002470506828875629088749026109589307522499862181290335291556907362542997760682199029660363166980390763218726618957928385098658867664076351848115193823788834605893471266973641606611484664530701970908534033323132092838616261663427140614715184072050044592896778239103326550270989118774500372265580566204876831280355819868294918084842763223055771280023231445789040074891400275903224512948693864631965166638133472330854111803121150847304674158277029065686178948742361793671391037513496765499045764216802480828628410481960550655736422010649913439019769322999506158191735131216871764670042470906519392579180118227015398431145898768679669510394491279055229141577869460896446379737463449896394822905861569087877102219213811398322661626249694592921440436001457005689450297701877220787782972637377915145468454808376694496549655330785189167867119957416457760824703669431438835133948790179567189181265803058519245526575005123661271646229069956681768325985403992532904064816483480541192170514288581139255350986440325065803333610039382597348055884762772521124250443985445991387451841179993089244592532806558983088469652650345797891321328841776705645918228618557982003170069344575974436434931169593074333697845877434525898024205339854357249533076410191715017584157288976568463893568706423396354830696536753492641943550582843429488673435411998615238373976914616685669877690446335951236453068271224910484087276664376284008598751603886942859756450566557680040729028150281104623262336270767693463933250418669941195938171298021071743849677244735011066651332624307183747453540578640691014799868050593599876143063127779053703270819184205800772045359728381185563062565687733695482349517095550126756519689321065950072761396507885833118141077756673435572277736247615459377587594786781750884321908034764699630844768065347643417185449399715339354313049545010286714849200822563939712221548199300408659582620911174588536897940162339643805550195349377799030320759621613997070854367940135813630068120985960209903680619018541728886943686716064165561357515089207244634621571506709388351724996921727921106607694075304229456572172454720320075389794482743982042063033189079915593882457793150030557649382892352451759658064541371761538219633770018056868906266437531049377463131269603512144848935462795205553262559141905014640308847835384090535264212226612752306172077290513919664113681457211590986798413269408652972578221533322390205480167586804609867981156673861308117559098658629465768338307928281401267846684756222371059933487513512504258510762094214190909185873161720043630063869482773124416589816137138629718380429885053313828934155729997662079446421878383245533684812692848419140192434259360244727384750653502307709239644482131510912187851424731302571437771406120542130288192839756820412491182337083178156318927259476185873312453684362413819805922070569048117147390180368495665074488805967584283861037965342944458717898655277159360495889532991424357119926136665650590222614568230188346764058129537349062126841634515187760136762011527657064611842460076944627746434355789885944466533120537838807430888609694378547443098504243808868232957851742386221840175343070145970909836872900045141217658554800112565007639240926897437621016881961479953479091396088378626754351957060898973630338006708642172367764535178118893365801206347536964044331856684403729130813232924075009527360691366984716006309160051757311905298223257844602394150486144461481188410762370986175266597566735656398651422065685662296042126301399921782637192488969267743682296387780995491059687419901997366765443646970068622713665621067322202070655061957865987049323172164669478133916852852292748988702558292922656112344286734066120995190263074466892109733857080557947586223049668350980466346793681014858821828050434551089740307870481160554751732146283053795787160235459526743103018225114950588774892662082767720328209769431420263593050400587553020034083037426576313178488075685255526305990508441594879451329384242377649283702689016820265772618618701007525193553865287227691365436343011104054962641661642247057145214401397913594234212022521731117671087995081489764575458398609491215625109700331730513061126780381775823562703278307109953694965946026198817962955487083949644445794678059214507779320827995546017801430715147876437218401527768673553286534121313314520536550832539336324121328025928038007216192584452701883223134630491091052642165237539563778809961224003689902968905415617224824319266253194541369405774991321276437993197521987297195615012603057800380901740990565664840686810728801620971529726233368834939868561288060789298849399122709994649905641826511713320593463459912192897908640198355642234827085297310358800958612373125350765678631972520875447985573834923224827023339415235042976796167056071295444212891560099501150106005714902142724502175905405019415608048794334867770389788219976662315100598739679031382372595479640532847284960727339138440946080755470265408809947872853091314732101906814729415811051363547251957216379407156633301276695799709324952606144191036186125189813679397002689728264704775793183911238085994856020895737944776349484813350809177623398649684066168260370939122728993770732275230939479886118541691528396718295562751317920871076555270397785797707474405750624154301964131402312116115116968479356189074821289167591736938856228642619197486252462485446912924473612931220363992520755312264337547036710627869271073143761013695723162307970198024242295726048551950861631310817289445161333284913346290265555055977473194820002261479934764614393533102769071971551733003630036139158798861130940724067644718452704911664404376889242098186740360830675659892827440078625238094799454829447681063936799558648722312142412880992824997836064640027751509562760045462076326645456462006081383496147478428138994564223196298067441289378864643262267016201724502902177747904352152126166941507947777293137347095677277397225566660282096992837623540666325275182805182426964002466436354184611437006976153852734549446184935820909777324293088635785813138252884947469065354162811614199600350816432867612987265313195027441814919363090941886842874493136641340223808847159339384099385707529866555465850488522568826934296957278050544714659995098642835134871569540424815792769722850725509559601310259118161095820912364056236316642757809780852506857291395251903780668707198086577824768308608329541289277519472741542289953868128212114887146142830074149365062401729957684813207178521894093523394993377289667280299452802933780476341248751651474431662249696215128922459480340821716450287455607841320776920601782308386897075344563116464330371235875611177267271189560198553650252112110370063147568535922907498664007504624067794933929681774423292533586243988160446328832506839867398294908008836589312449141814344438545890515975493350331418619457753948996397594955733738641935418421403383499119944077679513916076229757825730736845329392652942234438340068103049743689663018418648369327105204381146498922890849265585689760200750632711035970198817677590864551425786944075176128637617024858140572770830536653294181296308769017455227224823792399206913185147587463853462268500942975681743913725481147449034691280336174810326630089317689575014014130439032682923082064291417639805071101010826421114609962375635488222610319594778258599759655628219352255640815054901318146297747087846836783094243951306106660306957294090486391988923102865658734434693999384792300365480858604857644291637521899531756012527955705960522480514748218274717105674391679894277360435321672773661731324768127098088328644000450996092591110205418128391579672200647652728270660035003866214875539305470212200657363386413211350901428456866362235636456802879893768507008779022833296284080318613078718069501188888782626166911984535819043163049291008356698107091606202912688166688135924160273563869882292786413143086993414578327571800125130711081908379194964616399768144563995445146069637074678940507398961736108433983732971144536006961940155613775762527976317986212522957848207680878818377461144064934450116951627684024601649481340969057138822567584170523203622938154445609996527332310271628109332071568288172838266824042679293921122113157644512774002779993410591263199206484935025630959592016060917227511644142094826718783967058788195987793167864748803813253714482176420662935070816945358554024668535925741574265934776190633472266703151997097018656172927284055695192739942732625490242620453923643209995189880906892067417142764195863811544696378783836829744027290048126348289459499958605240351462663828366571988803527340243660118277886038840417683479096877114597903450187626216161648653756260444412253324030917084883516250967262216702000476162114151420032498281538136452470750428018038209343462606020594208258089697111519896114242858478662236944462984373010871107331170424242610672565826495685694179862363260876379797888610109476209391853646002138112440689569195694078625191138593122524085302190276506550506035222943320602374187921972787691691863360537396884806876756162016375092353025483644786620921016619355754417860675960599261700842663043758957661645955960031891229663888690399540517963906476546383052365498159242317459109954885912357495964892665469551780233489672946131666842554424826567053553600545212591046552881310834413257910787583193568628935333077680469283534227237507073040498327339949713545549978055012991311452015278129339294362786198709839197589041600072280420943748892218360329179265439525219943266904353057367786272233670829381717953874545131295629795011215574291947618735452630262910163168177132409431280198739986508475328982973060689539059491559543742212353884912849430129475448445046117995939269026955967092906039062393129135602091110161767906820063574160913590430828833381574979484078459454888081754527674043628268824191649670209761873548329869519801022447898676465169220453559850957533498279668107903765538422848572943236351987880466214236995543929953272075081029966521305983592440194970586305758918806639038840600129622346955571413886580111055865604908640902496958912644885834713342237771992970979476943548672062449681545601110881507166276274100115931776685083303435736406574257567136013185123520557056522786495676275048748716731870005735912673138339247287583448571779912502724862334859466435172523555534775145820298324788720567709246262910016269033360974867079349598244133884365572250140250710042164773962359843010402099955226222847979515191074716120892677097726692501264455456921961241980573358955332278277793415801825247841598472051335053201664535416843626028996052044216558342668157465818648589909572530667152056381203450884020312791203836737008559227195070656226525302963884596899350203178757841455609926956415462787873909945349242310530359500646258876901209553803500657463396683333993530968689770360357685311023621748082816648538230629530905280320666526321230904746579470630770647193550149565182581452754928750841752832353674983213598131597400638120530336775685904287528594809324126567601747159789640925759718695511860240637256734516002782828787205327331037677054787049577566489966731313050954731395975814056404638549921356358337124573132415599641961631624458172004475372582323681760700026655717516771686608707191926075968322436956884951269067146754201239313262080181630718810797222356360452111881992127898495790705889582125527133372657866672436514957656651151192294723382365122338044659307946212725345210985910779932006097704643414675188543075438944930586808532269658688147730712510165040589373938227861683115877019176377961470198181327288203851037121339441234328104733970166492852744719344479999498146413669056924967542680704995293593381590021385042195546824146240503536125765549306998514391436808370774796635287829687583376164269642155979636375616412314085737207401932218417289910311390094399289427094221931037962105405160526056286979997255445561078855213670191863047770823751600344435353690178168484707883763649476491169033996156398644451921021939711207900344423938291819213513266106245160035955586910732406141687831472268898609417027174604315250826846218405328885275824738151443041915367266944437512000689308233902804536875240059178568294187616961641419157572321592729705523621155922269610031389171083347556418053326417854158011306416798568772265482273509453981810762078027926906241654592295234463789227629383212021244005599185787441236070394100193526457517379222691592978668323143696303415246991551178093700907935260503667781068944686449122734963772345991652947947828330008831064931386304163849549255528499037846010572243868129750530453356200149660364557111243167561361858601652255107290019146181487030169414668697328685789184179353015667767027958531060566184725945196771175229369259668414099995633036859959372930303009796875703623820724385148326341961083610727337184461245249994041274709624434785140816846754237704642478936807953655315208110707063517868145398170871947567536094561196009728434390656356188344178085611507077482027972735214897990466653195372438161275466984881221216930396864220133271707247885300663710398084027128042492567927666040371047298235385267510889157804356510113045483947694399168765001451735036682869650109515449794054323644328326455095663930841220463310449715977712219296117559185975628460005671252254315241811347663338642342445815612631272356062274075402601087585846001931163172445700019041287265138133984401560479388937099598837039715730352064333896678685833177311787244951220517747088130127342507624982105330044058474074000483389661472786490517505237021753633849865362155402454558828821787235244280905386573311459974624313435643882527230074483009845423096738061153414518755055200240370805749194471711638850561020625641937853814085573710309556289259810812817699369288110095033252860074105250681962063295300628158761171155451325749091094510559808635290823525667901652469146307982935758430241723711828090649072865618681607324259882612247220471451148211263019985156755712661921943944420038268240327458286549837745198276280198696929442718461992461731032632627070417640551448044612606040924788889609908434137735097023395233406936120009013488810486823826213394814845249244520079674943017366826768420540339047890659348515432857201840519493935556208071854127724160231751691594155905625579478551031217257664588071252176226132245201687363878611180796668642566883186920081245706572764566549946792821624977630140263991459638045339800754172135553332810491067218762856733122851487688577052944290667390924090365076560270348656518772393793020524165331013255484038155968484956398601443096702612252421108902265744307504721534981118077891461004877718740757182875515845785103648416614687429967378999435353050448142421199332674533515506570387876908602242275651735906734907626016278508226265741536353867994086951305392678769402880421306515458951597277966583074913541430728247979732580273205296974796961283067515628691518632699126870537192582951586078876318800161174997078199994475393853663243272209031090416352516767028768944678348151309952568113127816566591034882574789268317018017714907094146345604627717862204886779048022017260689199312681629005697115723957888958324776507398301533660656650535687569217277030983005605540511651937971195697888755139536636660702215001390290828995449608245900221710692902690041737594266816434632684569520277092837315436780493899746427564051172889842036634837492779334423147556059399123484337663583681520835562683447900574099729467826099193232709955169958258792103238795099766764897906563463454426364229052737330120413617507315654440518758569444129882452621685848694323901067823702296383990324600902526808936342302807561861989749983030697657322043500981941237183686567612985512927109915749085702959647225109406560934194261056069312215613753369176094569303167123678929865708818576115171718022312020811561375966024406842043014197973564834129001655657585644491306253930679456578661491328600946112749912183560935965733435968635893548896813256394925693718226155659623539863336126269893833596497989201131031734798789934990273791781721190435683918291447866702592377244715786315476386150597333295286389685978421125185725447875353034000243448786543094995924211166949596466611320348689676199075912395378897065351385825931331067764503095530261331543616159088538128857282401530720875228620430565001374513338023306938396419077205732121666007122630824197992164697343779958247026865042286560966982878662229223115983279629624799018050684954153833280390449278714117072243459769888208593938109021130379399148196625161921022549807627283881068268246936355358488741281297480164765236916868815761055750412429824584427617468062129996926822905831146213420463764730843414855033463582737339556061284524112782861371982008520541764308920295827035957824764099750528257999800626648663984201186569810884948567070830714248186573661376921193144906511701021959858955208747534174894145434627467408232473339496972967005612618465511487135687040268364653059940536870350499817160519314114949098773639452563326396499836027683660589590420664707523150376954411297407566873506996427611462853320801058018992511312824270915385302850065369134321612521212712250337913648211852569593564394576793260229449997145641808355629063299232243981446155353983550459857424359679389460371767898489108815032824220174090106014349280680736777326874598460085474728266286823910165550322585184834883577717413717080252999652681653789182344884483901207372645970272765859723506759223129897697126161749343999215643917219022066579069764374020027389111804711371913519344905173247672299789191992005924940066005674333938055527298195403923709047870037580095760392096571546457325206497447601417751998817838387387665441800320783261690971225458309304454998984778315990796561010627307458866820826253591236318352789574213829763224314571428484845627298331984744463381931908129913813904406596753885614436441039361638168708405262261134435376234837232197024837397181091202994858873831140992768731054820376156305678976082686758343860644541615235403467203569610490117018269648454124805475058131119172806185563223671768266215347018044757824221029448094588803678382055711227103207376688388018864062864626555538452359966137429702493134007648006587082331745600873117344689249649827760734300572503838219414315732427734572699802533834312766247166900525926856765945251494475615389188119441697353400801146976532834869229066274267476430498210839593217461360472312130385635832452365280179944206842943382817048723535553264229144599645580754565131173077319481654485288028064553072500413441470944573157185223806078044214233433920524954771302719939769338857496544148426520263688044463453121835399923879273837342095271928261212575427258414692199561134971326055810414391002464106250135231503109858789539764720806263551420081838715454276503017983918536861936844684507932701449746436183494463765700271029426897178538810055394237100748095780172591619257381009791062025153747486159818173468056611371986121030891811207459771202854752751950546869412168664544534261129588736002738445705906055613272308716970589364291263695392141548400568938335839013640279535862687643252656253170318956130164062500702715749674649683820053134998027515315103118014496774217659512025253162063562234815753479489687079067590633577807358948034706856619495723117855082485631855204433257295004612448585829988485893691918988507813157892286928208552432410201002210194096001421226658188754787554755480780255398815795939188734596564528361078586360971361044557800759544180701413503730521751314686404926365709015299713647087654822060143279720388715118704801305242146696432285133735554832709993534187591946999463000579537353297967079501848071651464055080464339623806905416586304327487031838709655105129381937631209803365313596265216199494436788076478545781057830078793369620807828731805180719303402192028720118017856606837563527172775333943210697999468252067115716789389302198580748592412966906949832020487449134629800935464656290970128136346313344607899270417224524880562752462025409719811932241627443839128114630094632253969756046737793325849389164296609198526839027892824259189457661763454222259761979691175763254780951507210832790736126720272985511155722615636819321047640176608428007774433664943201341571269112529558666105454333625736921679306585081890500322039415539828205362139390150696190329880252599720976102768975063740047832629074767718420814375355339656116908533278110052035195462819408672391008034401966189167369121630953381792950158035016013352605765568005560172951229241734203416884105258906130541492619983198318643623205132424105298872372845367092503979072359152551989944370200342035371067010674266196624392512999787529053410177972688526180338304095868448631282517836401377307047542965235417130580329535716038473614850816449713127355931344174025608973996359378916999919756159512583937225361496804873480303529761443450863964200611863010343733043419049908283654374552002662477651445733037870829324899483606484907777491889878980713929233081642264888526038301347112352419939958961809222090030996392108205180686803126382547998785387388054889538827207864461172377289823239841223278012597715256792998327341276758132704084042714903412352585256870440136555866404291618003482706029100419812083777181594009666034000256863930458226686502636479380881425769571987971319038007976667909824330756686053223975150276129098132295918266729757160169288083586691167599134447848119397961640347105080637789771671299071902786056140182365396809181928685953423289296916048116830252014208015106362744169210793865045934895345767702035452418154045569341655315646734231209578362243905690672929185838245875482076673176152634072379715786893717430485617211212969247486195281280553549583568643807889914726864861774581606824524461695030981020087344941447241991834064917496168390773769756185364766177322166129010241479722600308493156274978378049094616414660186844648812936364310675288025068654891056225390063356893045105611986925945207211098212557196812668842581654533677114975502985809932269315476616833072511305720081167987732829170088928535640375085724319154366119527287459684179439724876288274499390733236130553408363259927878899123064513567078649729219468627368472897135969285950654766221242628593584933949566467508099067532136143793697498355330087039780430299754601190588176481776928836773191581064887275781000899405461339795085219378013495313555038106658253136118332626997756175392935859979364550644990615986507438585441095577166858847738757462171210379337242491661382845948275816967743258409424347883313437094657134672195233598927932892792324084591566998651384520083276146664012751334495533136648874210770874177458943501767126318583796300602590090567197458987347523871136175742383071564589829508373618734993311106309196993323676834532264598710239600341225156619763395099339696148387157219011401509386456622119484725902379547637519601684281851658043628702912699646239005461583001910563306462855666386367716824835629978122763516117103722746779980594406508108114039028483480431251044887744706451149879206795089950097757466256541084983104212430737080312374712627098210163109250283359348335131805261273533670696464524119276488189171184395245902966912523562467082408020443497551149452577904849955716938942944212962362212467276299254802777140620456332525804451006683957519134126712672400276073145272329410750146706566932290372442347059649362705262511104645297862551278143822297991064289889633014242120462749340927576669721926190787031234797748919988464974335853832324886991467670518792288552921128993341979561086012200813171762347514365745488277087479874422396671748534415530394463093142297764154509168170371456138926108698906707099388138908974375581388985766704859291325860421638406435707940155366982813005563790369252317604521421056883791320833728304680687802734563019064194664223200824343452077739364130753187209234641694507637657124706513952364659085941805426398797767228038026372582969657660703050406306904290640382126706298842497300880248774406752227066105275176858233634706840912768764049164175237690700048111584131196188103216819067143977704470918668985170779661686710701977105336709112293421723449929160800428731724808187984023028975300074765029619606337439938929122357312303788443456267854339925677758512783219149507179388136286964602653000747429477523407927370863088525682577529859921247395911822769294158384065465481115910002133720605405622925009948757007597972812785743769516633969263995440954879615805241305346853375441619690061503900040069847437566551254966281936849614008919970508385496892282057851270152009782866524640244473754651577454308097616184203934588121865420552558452462049722586942531067761830880264585924053469368559526359487464265102831176053188782901607040857931662143613183526738992282151972695167773559966323063899511247549666072166705383344822751571264301239419370870229965175614727097033216199893983528509857064506686987004155522534322029202967630957122802472662946191070144941618624109036196118103043864550028233249687623668620348920220975128726504087942109395664206093622590864121141513368072372560670369443314328840540987487656932423351034843155156905914093778647616085237947367015407934256620648333606012625177743813609380306412488709172297318146443721687206541824296106381785673263840174342254986763860361744247263174614242733353133622267879840872073170112268847112843581184722321643039748928197986288536462868973475581177272857281387010087899795181828922804615649299782257165684938796501045582110361440755224009739226690890996736287255922249767780852632861289887507368938799471762650580026003572727978265181938802053884787037278354923389845253651526250572043717914738628551366856874862148446287852601841976150902301936094618862212605143719480337347436940248540581974005747466850723267962548788651641724599841926302258460667776708480118720032416367866579490072538405766356654297015061096323686190214006252235116680548136523581128177650837105446298396965105129705615115236958297638320102317619656926553269101517533463185283294318206467353943097971981648670049620709584811813245383374107835967342591879519980137634659913900586245018973550636249264272144331871456730896206255776437831015096219967096525579841037268422714643965660611770572167133229762465623323790527603716527321998741964579054109920335451597371227642270922344951517842208613084294498752151508567485261569612361912754370124995643677995745705594016428706360564557310381908894899225984619971138366530955334936210479969353622883947044042719368576672479982758572497460710995689961315380376277962089556109129195625347250596586037183440078217242092338037679812531638986346035263929636563163875928862837465140768074623112378445062700000727281766334545881066284975147142783291463258591045194414848643845017893366310783586412344486625093380313254221962396192676798338610699059818845276667851036290445982943781270998780869154487158443075665440755730553416038798176595029905229367347749311995552847381675895487856785443218001050526706724682503906305121131040430684541236885074891525937534936134363614332402186972152847443090056636750936975145339521573461968792651830242554477382194321038917397153275792682262572825508502344322941436721099109104431967903423691097854716490095506891068438712760352083941802557962152130102118596347690815417412733551952412372166166963246679429552174534190357265849034869721164677821811291383524901147174691762171941249428798508367920719327245571433436105385344918055670271405821784357287089184130145326371455345986591987642336513609093933226912085049523735464146459412509203993778147179207466617809127779937399212856929357802639508715979511418021518459386160226484247731659638354705864679980103803629341373504029497180676007363816533160978928398076134574385700854287001737477405840873532763995960471280383145121465587859902630766594856558410046479546973621223990196093921654780815061559290810160912299949454145925179338654167451277745309064212192150989405874632358858617559381164683098713904064967436940992381017802234562905495563358682290882178394990455775211971771206642925876361511416000603167812730544070296083097113384775647448553054697493077144721901799016330426218852107405258369803382430912459803643940474065676967501512036229157067959130560939618150599326576989109136633461040542841831037099772842321236694564634202116508151076997386166514314379424242443572398188483606342609049832426235123305383997246752972010264433625389570450944791358377573911803876743777876158307667315862509465111404842642765228426355845352954178061077898003777700724447057530672557140182715009638261909020120924976994031942743508072977980097997202491708158518867526177770639733213358062696692877780936393638985618317424773122944094538603082696117770483996593036402651479251081206781145797310318150306495931428635760309686938829810055376144375774086904702054788035785035545394597620766282130999238610625095609809288739743071293034886451432447104954132848475813002269777644325539279476857610776825778961918580312297605484512646619505233078371593211328941490694501743441006088570470607251583171045341761919192231301805826675748245294875329122700248171760808012288919872368627082531015658328806333911098994851249882816129836155316750068100237717841177141075002010107565619483751926647348873789311842185560654114702746920835930133320632470628754713080852110234923533486735300632190968562136854421746183673577008124754564403002732682856237764267827898365474653539119255306508456461943178015368615833407462195813892333590464367698708329676327062819178756063125354635517475627013275696341408419763516151682261144258053329715619715567194627386553780931220168783582911069572464372586413658253650022950028566427208456959998537477500990014045043703557340019035378951530911695222639939003400170418401943699158757025422590110381209991226498489141143260878911669578043402518161420134191575448638984475183714398444411927103444538173401777867585225455313886976856972571493235547473534233969371299989978161898110759397571303227333678659672836196056617408926338953466082438836652797933545158255355202011941788703926340127789386807705014379770991236978241324871999232297817378913721564698550960225114404116752648381742751511028407912349597257929066692363281331590125195530214955778583479748684533482107001321984508412756624502549390583141635845091570219053390137003505185927581367111078088124710614115978567361432521377281820703996703166909626911464573887602476141053418675184491297417141805587972721355963382963589865872085960695840535573183677489649651904775607510193235993930457538654378945104024071010644525326168499605624611216811456261698049365515616281433583929290240562253857238917776161075907119451425561927641058888109088422328756182793253617653115917042851523256025349495225782680426150262856366556224782060654863353001903503735328123170441501372817724630335016233917033155865783152428839617604079743368846822679998611802184556593626808715293542717548480772437193705108417792282815564145820343408735244949825884936279677130250555502775691124274705583354145430035190309119771272444038761303886666472191011714436643557203778625249391679740219449367401645788764304014198446865470237753152648333650714469386748322860475414554463197332438843878328747564880208222544453350442522193762300594045815508293879462550719538956264000754509368658867692182507614922048760451052517997242002869323132058365796777919262065927746136781951796743662965371440658017756685790643104215811991995450032761626768299271604848530517913741040202251782610378667236132265780189316035106233171613579198028185215537747905120206817597795760073210632168866004357170841004287830764720216960174131412121869808325301420971670671972581854845458582222121956794245609595740986319728890083871981660774161573153690049150189522047841385640269872833376121288897244620189427808588908397572002509189160329146970918642460963162692409405639081269754830521436727578248881454737752865587968324445524136691238289397223498656711382818211035082410095694155223891209465169412651211101884364117338046844089570159309242633320381524689780080518897592081724336689054441771228835769045795365869567493894604557549114979600489125835681750451495770705430503396803134202142753794607321506190181371579458901725000583647079359163920182286657044270978989489813962129134532504177353033357447068425312685047554679486767561204715336997837317205045278657375422571024354994502864298520717031861323927618420327135491119637300766100389841907475411094068063096658343157311989780746262179506288997565934998000691696395375834146140195679309513832845929541436387608580179170436417310556080239540878022325013925355229420112567675369402107968314034121748782708709518668860663582055291044210863173480248011493449104051886835444188391184991663865768133965827291397847101223892135840073983675646256039019913625620375168151544090837979409474404325502239269244491732144384427967093852552201357639662642983566783694114292892913295416011764962641410738884512135739900009391786744344773082608192981428284277052821379008851784530779255291827644872673297904771626779502757874444283333503300565587655904862177743639270360599208807470706141058960122232769984113710265384458256196686890398889864671115159947526998876238882030613317458795357366172479739780268218404646379091435305028776694986365603500918950326846359932660964037764602957995376349300700590897762957586669066726030881462917830748374414326139213364176797604738594424548839761552287573134617565537575067092146128359187532816734092383463577126576097760265097049750212339928429175172163680915610669788616062453317897657998568168598182376943833696547275501816345542176270679706661440400121982407246473332254704466975808896355040988108292851172140512646956356824787482957643678543406574862360239769443424127547650753297897190409121302262199440829778859482325091660867561616547275597462521028231923112393158188696653115757829991702634509478679587789813396058867742410986700136789101942516747960495315280459268287668227034175576000330837088224121400383172319488438900497865533695586889076173221927651956858423527051175764453529324565576261089344745141265296336921685632725125667525577054486886659730018868553128956434431329138440201884684483530080263785899336776177704235703938738492614900289430160422297151622884837289238124084178878067626111253847225214286995383827088089877246995003278204469416364768883424952267813613223847335574203990381677937544931207927358231685622580091850769014972397931134843810571283636136877052469999362528278769963109334484612946723161461979805353159708686190608640776416999105208683278373969598632712656070631226914723021951577203128401045967525744353317615161530410348535075637994157133563118079524301729853935736781622125856557589359438990937543462136791681205433378882193726432980833710777356094159145915395275487431462004752849058551505282439199220333130181035165227404358505312997957549433420517362302140168305705390034044864359184758781328346293745280775390339724795940085521243629751422372881230791041281588483428610540555239848503134495579803495567318166280243727309257199360222870876427966449933937527226507422445867336978420846218694402916954560368992996882801151385260144951879382418541145103333367485765301936919106257556707163714102617229088753755035211004999053799285575409530496355763644996611435592410148048131879225425871611724937464842896581253205495580431262817472642290462480341345423690312418955414085598690328670345766346752111030728580283773066892344239653177195725261142071591356705526457507857850586122106324596453463885838357259810803898919924070024181374283193008386923589564071864957894250326945437925289276147842469494946378682531588645306391560500944173167608462790742342316462097827296201065384499660903433404948794931678406711618856937743437658887788160253010300777319830704936866595476243181302577683574129438085058865216463260116002394283599404701854380963331898866851344391945912172727599953379507772299261422199048038633641091186292225432464196916457852265898112723337776481290741134504547563173226608848837245368116496595776743320804930062381001153304499816456520697829920124409477495882174445333576207824692213148289375622983107149495311128677669666076999594781614095248395555019812871415177258710328499924042138710472414217894979254576178232846060238548338439628808342238142652055209426433522788757537204754374450901659629813386298767286839136407872113495985309793303755953602366499083559722858456425548337871409558405576179979537631758284172193650321954591756710206564599326762486540753791414348672007443266005278556792327793046607481780561789213499612688560996554962948666197781867953256217693602412072013773653894319673520657286086622603445994796864430919449785916806708718300117228003290651703793394448392441683014384384312903118202911015832808062260752024266525463452814850500454547718085233658012393497867353556979412109626873606340225487926332428623873094267815940360428285029513761977596263389802321215796792888803747078016412138047798539175197886452462484629482192202342594782421573200483191871303710172892772006649071452724683915124834638553934694762798363496699318773840789572345122656340056449367314569298474679786110514205845302612638544086732722552703989867827456039335223794275972514127903151888783390564019681007201641356714831332194224119352235641776757450974785135502092832776585269086284239325576936957994915254755050198237945972290455863882933189473305781880589125659080923126032887741525558570104698353145313566987011938255048795464481006735727893869498775875057977233668498509183225368597687436125649197685302419591984867430433670331155390825688237474307157604285615313979963122849032123048426537801478310221467479679654230507709184220785399620582715695651247121553630364289401422754289417148886094612954218777491963214905196332248157670081272261931434536539967948690201990424930838072602113790697656422409107081926383448360350371318111746659686883840718205780887362324818472087597292797061027338653634753071029500217987086703506138873940902310840265002158968561536858497696004573318003415358512583498091482464333011372126387917017641597110530851715737527318133794175299070057557042496768865064300097870375461866799665236144901539123160415934883663081878471375436299477875390760947585504271974863158980847720070888143716071173836821843617066548729111018766227602704837780224916872010442530621615024576537917091758284480706226483656982604523215199938318447704256768880578157832149613765837429073721406962534731202142712601465293265085896364207047566350120798223189061064616175615628302243616624264897513543078976154253187444433538381517425335610700611888321397358603981074723598944532351584231815031825388749592375744123142263346891986648388404554225594051196234823038083246935340771621056953536189841031276584585728752983937519094141355664977280785302805284754165558485647595113063885605795645964679121564626165550682247777930137993757816885119473093632307492995634626168166589229080792995174992635586494609069948463262011717215722563858634676487941223941202089377078727816510808066703803175445116207119502653442598115390902840141022992506277545287282576351630823900250948652810224718237397503321578225991351820847940814710258447846010349737913894425079808139255259208058125104913104265632487412514885750524357949072260386708202878921705369760885058388822680450832416825186646864978958136382621282961433810941358992895741498482176424689359846393037045201350020512660964117683658182432436044037234907978079709976504799245577634198482452156266368528684213310202201883245273454682480656226476290190522617976864333671624512274043489552841137358242574163832554265970399158626871355376118285128470121936855787411609352827139074368838274765330240750943276731293602271163247351032609330614558505301562633054154795832149813921572551653023838126067380001494317678199214226012732974586824446231181568414318911037996115773428058986718202520045277760518259392699386035858795874956319992228572514709380063262399240691116818494419070538080170148448814649682501431196922914838241521422236566617257341945245872297550168566374058948951671079208722882662666755175179877136298631538010844990483185308794715648445889239114881417777538654077530746286766657376399772399511836005010015256679945145381401254363568448516196870388800434416109592852646890622586632390960819117411448718147180882882745224489606583400865464283270598197876040958458342262429755896663525999582148575624319785886081921093179281838825857557909130569450435532448805183103189730415922220819350054998593619482811117414779196857056261099605530867052669420744911180471835481255734914333632719146681573418465389668775147716246414729025363938278852966380091311303348759039936635372614418252602217552755523781080052375089173950648786369864889379900019192335171589545318267848892847147857003859769429983130393426778699639067814041905961263039189629370513125735663411600226087713630092257460186294804819436791736864250010989496861763014374292696693150306752618265203326071961716224317415021042029784432348716417986291058144593393541180586335432500876335425560355726543947484911245018861120168605130903948180036560657338184627110727999132636560883754324353372960429041222436736693038919377787228583232923277252731454513255976705072744476258476015234302903383224735059089650545640169046842834188602219259465790936856288074199603917773262885498667186550010216144308648440332596604402992987529063283235845521154957646085991911251541684639143556238430382577007249730970993020315956033087886933010203439657461208081072476163765555598163185877345369368662207218909477484160857101205364612158172375386386299346388812520277659307376832739555197566450143699455253013784866491861858488271227790684800636970561280146082628818545108162137323465267939564262955268898846621908988170910538807732765609494541521671931389313974538668823327177802689646413535647156844048620359235383479449294464736331542861975394815859788017566972936025511591796518723115466102270420634327275746948401351142694214754704491479982474472499415898007644403472730912698271344198048725246851357917502492047389879127396341791300613307122952158271140242089773232090957108550409633322673259540591072847531595277437612368789120531122610432585807900102735906991306048537240697463766685489324399546935659123060412284332720882588101619536709383208192397189999025493111538024543291156872440779549931153299936428857707077152525249611823720125474246374211828155166532459554586956180134650661879445206924415689776819736194925877679860013930387352224818185128978730364645046744737334186468516025015667839330375483363983024773882652953817146065478390000136479225657933232756358605658947931713183143951944419645262801174465024730892169640517157532137500127422134360625645107829849520791671568217418630348030411624834161657759838892913993724157547898503383124357126355539428663884076322789303153713100415203924304225263165796714819845357717947130100289990561848288171082048389462624582701964696259004900102991071702261767852309141547514557958414224477916220466807652345263959892902945436900110374891720710503949741441784362668863988692947635661949477156736561230545856351048935377995351924053216949180350889793952906222049548062595654850496338265400744640616853443309273459120452386671209638016434634939021167268120397189810181896828595520406848359168099796407709346934725899526697289701063997575189906115719234584919471218997266537369434008400647488585666224318168489356501099034417483651822709742421330758839625492573456631370705254806559131696720917288579660016970928826445562863960273425233241727369458139045408701039847148923116846441080386916799848979334784561992477080593125814195265417905438192989749623560586938666304782676571965974326663719627303854034106992572481127154651546664756381982939546029380149921695929502173949903656150014666688458199412690281627190310772394930589610184462607891887423335612210437729424703596821166330768425945897001171243978949130215894795729590377310723574427216680282623361131396312844324579847774954198619939185103721641933799384733374614103973880948261402799644938054731147268893257931623407927981297513810690800614575820478428431315772836017544973265052124912964857987352960111998005719212561905281884215022967970303931765688248485366372949342222001875377636853850535088468621107532941260642439509365866705782352523650075254698441754096063054731576283589158165349151980509978396000204270551085516617907643901211942797114882161310690282085369347045393939585784233351143904822884178388693155263910654074090023157832133226163612629299361902915569931722294895330699358918243240328947614368099522569758483248814862703241035842566929817989465304565556912045358945772850325764322407187614742165695558076029731958050717488566839845871824192983006722827333571493006413978473741628304688635790103740719479608733146233949511105123808063618589431962305770769544851816663586186531087161711416693508274889809783313691482207483764589975081767088774259187501954268299097555715522142884009526477526277497594927786385054298657291999164528307988572427475216707738152577371268901182243303073759449016746336401597411543348444433082206379451793223538343984856190932188350721746848161373059107172572237361004343752291103357255863182657686806128839533118850692071191530211717303517943935567475716954845434004305451771483544066539716824271470178172295080325384388238049073874038693169262148961795261568979731898318229878294795770628140561239166044058074424784691217767896626856429059390525972229299162942946225293947852405355237720930329374531913628548259136256901037724990997368700086634068554946745419756222022607088851239350264995763156164534364427186130680173922971168212080062396823894427408352949512675392033417063820157054054180995332721121842062893652277287944056667628172112386194554269039721303809525089570738260284877567998651378132642005444964645617811151453178907256688248652685693650037549540454471044302069866063690529452009897417461586674985823239547319590016879287278331602733286999507939712857375526858285658681935027834975097290132796452943038761310959279348756308983051097216228855575195206377715521827674650829898458197198059902676066039091798171543204308100698777886061749939984383370005686886485288068630288389957108928685964615935085783552561108538884195674969779266292459668259018261803474798110811227032847755195604555302785521017082543001102871330619624898366576454103664650030644245785625318075611744447707599379806672496293690785524262753982901300247960194690347587207775145964344778198423908212672946181535435538546536871365397886411308625652253308509100009915913397856412590377426846565946309547237521477105458307642317066947164915854160612445521927627025668123307480244617945339069449070384363880170638655401916331871895759486846108314623650624233098595847562687130507736939778890084460066381268553224489578289908753770660841090956666689695676717951782924616800435328953418828220688946934021664994297977161230770365898133289394673424782687577405307408584471090478993553393111703191937158351319090256745069515465359118960072073935208079802998867675885922779364077697849631288259537399182999861598381291444449263469036146577797839074533701585364653682560497225932973091355247649670675025055002125150716731654489309646560991208977961748364352695923815247188181278864904151273241145904285752793352866075763767276128133487411368648933032683190192834763231017694331820220309763854631509381981053502010684964926952938372190174233362883833290589385461664996260146979216376013106372277034858841959645391690453032409129388380831216289936856016197781991847199238623282801505824374462166026675568970416192760889426142353835426147730506223955137681142753988384611622208081326000216830949162812855611894755357884895702209447026396454453289479028283432157869322605965844942569978844562781143806520651566082496587040355812282511205628798854237903347277243969804695580243348362652148247783908736241710336361881362243262045077974905979442812661755659793102413208698638499169345729574148383474001091721368267250702063771977597156941702358148308927550606611568646408678552476273303199466697586962409690625880056489029218040426434588454181275409652495911169735191575551352519379871382983686386524657594934546722263598418824740619203544608810306219764539079151265128414818279766784741129413562125241773110527468509631850840371854001506161789359343781489983806490704192978578029234658019984513518646186743046413911208397254011212603418422013864946333834600521209174695138888231645078963832781105604060712359420426795385748194028858532807225659147476146348939681683658316650427860486001735120426721722224205184549055568183155959732437237648352912317100186924115264087478437878469536779878527375417022102601267667049371782683892562973330396920030525509361962821352697038340172420240626227386430285027183474637057976973594906621695957045366848157612211695533754435191233075022297351297460184597645845871150132048811306130325666802468343799362069180516888911403492809012071386057610349636940034721637310922186259912331355692870180919404614640535296474219066617948534245795081548004596442042161127231712451227441451989996124436011065131294040533507739080090497374048513985647584434328568668199163205700424072622916855733623002000538614893102617970212622561762109317108712692332717505271150203055150883890256920831741705833576330817614023861946054569658456650817711873922279339615000134668051466184053194131191222913801182180257158703814491851770597667926738549691465401368294438316190991327271923051735847096239416814445316325013850454640798292567431277878157926977225678293154622009470399948008588761867971745926739001632452108660319264854759013029259784046425681738325698926021000044515167469270176215471526579098259352505982279988683369993782719681102632824656332378625960419126733239954141523144722595937664886859993044720643052233280039185252045506147373453943683666005993272237741760499930824596474623366384598628972157065338393414143925675806203183704930252202500226554669375239044226359720783549715472502846702447456961558844661984272633210536943111535224878592703390941122715767299589926357889879116247920470137978933102043427516560422994678199376381601759418129492014424301722685806391620600048345482813635232027820058775186902147092095623110294288695308678102757574591893805149060669924166185602720050857006602580349640511164243002222520471277273680804882480137021708122280973040293475220617206600304658046113968324632301142017875001805416154341777424112240265825056739549688857391081973973861134644804906189643300598624812874750645555098981531337290486622328477176468867698385345711473936171953855388369297787238538814805243592702727988780150605345474390962543522733548813928537235167458417278506074940581655711721945333614693825961610200580155281525393453572136773490450202884542462474886302726097960892417511166049750472853006724966186170219464889155071690792594405027116776597463491047868967459237471018422716394257036170045505097370735776614746172475067605734258074176067211121329478656626707544895594630048237864077488949999539803557332915110808295775273882540612824410619191348767638999100003644652336628868307777811770003568070589870717636283554381818314802571104222141699241415323530115257828909270136275890858075523025291611596509461477899010008749138122931168245835113079952348156873189605373627401626148503584794617974912062592725685606544650114196922428387820362720037417216675115984425339470067478177922560762779448951384021635389864107588062497503450947541363976370139235166061768371546311709768821078737132222570904857716568640371180144732826946609130219883724089821444087165548778381685258886528610736662360186386886292999109220914352904795680902685582676401560491011470355263069916327820893112429120421482155797677624542394292572417049901102076611271842556012874593315511399704886190192249601126864467946501925403009921243379097337065817115002919664739736150558995837327812407768166466754567448087754193999219280300804827428656286629783858937174269437458115268702893566823700046425837339700955124335023481650962044656390506904405071366867009221910244677487584796517855448674790488153964424680732760872125011874523056881979576721871000743047401656840944750027378386805945169704573849362943557657023649909089057221781002010536902592384945646692857658155801860010793338920537943023157003028400653228212172269811862065823723425764807774558182359757336722734309627312500048783856658899866185710233016857880841236007569186710466598152080261622996403093845134968101506809175492511261055216260274002450739766267016867086796723360025338711430427569960125656426311627797004252273905629948396304437651789146066392285238536030741871203096699807289293336208811733799252633991501362005412331857421986778647158805165214416265874515379927723194846101585258322413064425458692008453080175803186990973476120245243506954621501478343816197385781522949798248271754723962054785131283698232753560855915942701603035508651796850634373895591180870016593818995240708112993142326240063071603176074046501745631181579041817957570885592035365336327400261875879884092341139699457855913896739265870324072847424471783592291024641454976955663703372062386345749630941717202386312109229091324040582627549304618617787891854588817490812692057885234467618819157670998598474446981993739660519467178126669122382200997959155780251091347036458457978110262064529969835942757218972924026929882093862788257990364814958798764983713899741348657286186680150345414183781499216596597191746250583867287712389083428664708539774423079671921379839352773687441436413413626290774980110739672164628404807944927845282342104042656677707168282142418542736916749722816240611188415458459806434411957965035737270190644725477217378118475711531105945280390100136556750662892993469068372995363269001320140963630079790128728932352507968980167227292879145768790854770459061075293254237469080346091922087413196413655528242568249076222849741204744763045602230216788200858726048306347440821485758454375852498151562636370346474962672835648881777145173680444849098069870430414277421560523637218781750184993134912999273361769297204678176173399214178904989702348736965999461139766814553626201118984234613679397755538431681677357524314467079859193798095014549048197307972309834601014872375498251999250820651296836025519976814106713758048910665042996311214068627192443261696787313801875651327905214335964256108000728876434774296565332094275017959025588897082260883548471530305523957680535792067935074071862880147661922512829210776052743367093227256832153056599454809742052627222790296746146609889885239303456117973079873335688967109112099271037486053026141316853153486132686665425314857769487357711967607276274117358704038734944250569488134793624246616215623101090573083709931000697150844689738147762415685797027876197924698685498967713848860257214759504192154060442260751911419140477865899394685967348322217864558821397246610310390471413242595262902031077214087778026156838597896761620276797331905566188125437755792156167065398451144933196901863277181041064924007077095492560940727586873534142695732570933125663076682737138757175913498051534702683604413510379608857147084841222029843882837397868663553071570087208865229574876629256302139021310906120449364230880914156965371743438286474554327544991343544304129319606126929849652567013432795543004889292587188727692736234641022090766051729890526868095087297095419401930293432465894839094162981261098740614187235599068940902744991965085321408577122647845740354655484042878174375606017709757129817524037586095345747093726563265147127266436687327308905917271953004218369190293272602890080405002585639862829275084847410267630655829272406392247691516909615451587654920224067989520011280792029945221741760747938092425290179022688703184674419773479416559735269379653780015001495324156825790413244944046258266816366640325772926843325750096313242692256580867873664088201528499856392379720650823997845214605468933893463581315188713409663963938088848428480838223719531177782943763625655793472144590937613990308495050917745725249019456004050666574967361216282724435738173542277526097014420428615802114539639387148637599333069436529278951882927204743210733117675185692451481644708118260171231659530394612931620591394823048036627548198599398111171534146990721101364607731745822410767578631989356296216942158682108987624920768804823536022453830291275438289141070972287312278641753802481039324073361013222312913064748460409615824889095585736520615199552231969707095285013593362849487922974174193245900138946830075579351731487557947202980947762748709693184512059487471284225931097491855112935848097997890055162258778304514929085098347657707681551860332794155462335647726142130141189773444704660585027184294832085352592560444928329506370840775692336201597187591557288358093627506404463432872434257591240250159623534275749797714303269405920817747770786606295914077850708807749749235880707714989575590236266991763285898744563777126672373290019352431820447173615752167495346673729872837342057186637422632438237515154144874379580924190724956230253322506052513712440342192594134047163426590541780417977239130280413198067187067060981246907198673644076815600843603937889709821326052220665330593982381724500707251865348487118412289953024452333886171779544255212336111112313556003232373853800591942695754517134972701449513996246129776361828372046283161543398345748416855016898673043182467795626240886521239024426807842516478062017253193541788296983394705532934488484203873393755127366266992973558836757615691374050193081593446346422428871374456093251076212825933733593753936478364719246279856632905213206016985161484494032399558601390018162934676241414771638213534314938479127209048142023277145202196894591934409674647906060180018202660630330610287190477845399156724721304936364220690444831504111477827295120602924013061667778534728938203609648747417394532788972479005159825066517768489525166952780072712521482603298969746236501068061411437090343492902964714847636639065572158432429959244175320934502863732696442576161876778695642319135914690181881327856592936770079968811323498398221020320023037233872788028982643739847922564770733475611082035542853644953367333789253641865211548155888875346202906185067929440850770068812177736427772891165179436688402015756568859124931892185647754743669983761987401607205401287747810775366900280411750051584397837007511191274221504763551701969996487122279521749956454132400839842621651502831901560526802570113169826327017904630495727664951401251846274040678822179369108355430282588874433862088279156190963549861509409165085880837847593325626799654438884241679487877260123114335777177311852908334020251595381569430327254991896194460933604617945233298382597275167969172546762872339112834197605211193235524944785550278869096691327367557337890156834676566373885686048985004851663704918445398985207775667368270053926533313154080912228904009597320653871629090078441215832924609165661406968024635046400900645129797959778310163240626240438544078460606995845156869585909134446379077431461390582126471922893365478187602367614291610968176299365697869797417702612266222957198217102158892236141809212150795851081073748573726473321057355983312613378732807727302876400457044212566145623243085927234508131109553875370301725712515177454252101082541582470437059275151240702373012068520221358793970618832838509993289212972029105823258086303492385987392617091004058804665035537202836868655133593105969892851004517213744199195048792966699684609319750109118118752618762558704934738037131675365419669154932475513176380850185827918882789882116617483153722943162757121455752133520011051848786725205098404420490620862720158550770858612769735504618912573547931612179225645242345725468085814159447004347966106892745915702314375860322643693077467552207359236140169635875027290847247237544466229912126211177300408356194263705756307746266612627854104691490281980015505411295521595062916831058060043394990537915879054289469040323015677147969572132321858821317924103230663034343694498703189853639095210675145107692059929880728050347823992083283751129245745994218705337723789941982465115758479836675034003500471161350367062105841047057556769953305214521932356352018007891569192288490957331325179671663932370976428117241674043226914375474541945491920475353351464208694825669068165117731548609114849208680874032439371745411996832003087891932458932978351443558070362146202540333349232097735538164609495095143469473646528458149294670841627240132038252031747209512624066183482832061366420964160199997053635690481297281031993011002586257867320128864800339535852537804174204643162559046448509131934791820023803245853516035586778487740361375365257434644312046833961262681040349320511789967334427880185889426932110281990385197637082725225812716469415352416731300799661535231038407238164584885891035674263546069292713454919327494616733082457315161823811895440297758460485176957803112104070247471679438984455154675430992502324429902816707622952997378234972389031900426634904203413787192095331390399237445329108213664348845590809633324679656170901340804385378943723299319095806055163863126859059958253524625330005231141921754022483126990388853410046252794959669414011576302077421139984206300177860701958244394529374709006566304962879012998396941089522262763413258042511120528466711243063033546758101588479273741390479397791983028040058711225405592686411770078927541311869230403310888023375453300317832841150185392941117997866024984016227634345680554983036764514023360049789612819495613230887300062222981984774874303299725439798597952497883118752546477620942583317868347940482932339854488903103257378410935098621404921151337559558481522685034889373883978989192234458016209320425303658309406089454559952933826557157511364048926498832839044489248050142748662375569369503870278978938445912133893228828005084694967407996736697833608501590329259813034789614751691454527055305286243937372925054548221910376449288154197921381708405915931274213856091144129172651370561690132070109209239846163659489157309353995246668112161446627983392150447812258791280368895789895764049727630897374191876318249216355028655314770374338179426572849943648760835720086988102972589721608101326016070757773016803602325867264126159731298720011446750498134606393922744257211678544559833940179099716833682506020719014868841484341514778476203451536558687970630681977290988035453916058249634851020506051411509390642168192214800822988947205915159191799273828070627922940081105210510789578251189414200816076605036220635543564354041034208982790764253396803020239833767382113021186831097655674211040960596945796686405676437195838215339517091810466610697153521991972917482953355723220095350561245146024655999336790506349830962453163270313333001477052649825416855898583586911183482832460830845278463349849977656974147118779645522659856185151361159166868976473642921435092435279768733209406971082845306357952330647267571490891636417431955368150092859865703377040946771878089226343399155856014298561868864716216079503519910166791697709129507075132695250740458503701862528265577040084284545487012322326598284227514815036046923077645464105394504585530153395861527150561549973354940888264187601278749732391133368265876782346891867940277500309322101415572741986994395642235528069886241823262826256548528966700691321873766170346453461154785809720223655866513066980681911296274843912032883641879946222322971458058909731495261088845351690745595278931637701129253532347115388715242749295153629251678149623017673866672833934738034879335888174669272972153587332692790724302439903313007508852780307380359300442989705028540090830913656985757296529149046153394953899783272316955181879379011014001303852707454492528775771614706761619294897097712651845760828556093791151693748609981047915360953608171239086189577275918475738108739520698273068890054464999826026581014030824722407830580595722941103230159231319815674332282970768422379534439979083270857558513970788004723692707495003133630152933503730001266961736868531658064227080492714136957254706583299451851230435961376800961247385201231076615055525878808400463805202590412286220088803684545089110175657777249347195540447228245996700087197223077180796846400930735089138405720110398999614174079212527882562780492211734010547760654397957161675765429623987353141366879686614338510781052400077211238890194024485998849147115317019383024906891097185627510743847338556743682180714172115804454776731914081696334625153512101440582019308833342670789396301185871159863886266111515354243251995167287182143938488583344774577567588171188421385584779256398061152634501098237912722314534210479494195217418458779321735807671425687425747665918354877839444412797396573353941313884896808199760984819542727400015938962335868467845848358675419729945792874656302520940686535597478692167264281988765193285597655808930847430073387838859243018986256105269305906548757233339576634351309397653721792233787933567787261807114659221979344207980189904269069539477725410673664968245226135708852450019531469460564446333679822681364009842795296753494127946096778827898902917902906832099232226551976841027754629705075281682976264864490964698861249567335652078137302478370968542861478217080342755896259674378646642710615105830123625191875036772407955673945154170377210479192949052434169412886752876670765651568512106441013905440313141763940729090689847105495152989276469857078306900573780885307123321194450311322968902468098191329551400393038256359771469568839912780234015985912796657121114805976084727314177171482908468375138904847511171619841933348678605167520273877605225817972978352212852613905382623098195968206892654378309119527094919775799624393133750805545710914545154511816949304944898814950044329111259689214889507332652220708929933739404630544032464734064027444295107767104780841316852897301820830450764712124435581760282363537722509888972869661548519627570599989254748172784556487817129755179618633950795613698291320936654689702349335164872714685602548739376388614530759610855241035668947638313763754508208070091369904247700422429028525389370698773509239493902049774764626493134571543429757873235256523298591298673135479519355304175398142336306398923636395839707099539004157585625604543551929873694182937008563621186190130162336947139198733865800352919387529141122255750880071581934343547378308535838637619113617025956590302327297315212448778038424702028852476684662150228815000810543902290018425908797500836484148842416849781493390448595237653267512601884451777463892954939428617494617137446063642864172714306280260631569795401740850411438441939221122903200923606330513321732769125056965832290047234386889055869849468253004794046073905075770693116451799751077541236019771910404372426532884427447921076564413971819194677351781547688140337960543879431048218289965540123829372736791312227874541398255645116500444776707905553666641522619015664992523123357014211892860172038202854020234652837902468572144240723295640760465042485735391976157964319982254840131128918794090029024312954817041876895002496647086281106525107581818447098618735251356008463544681058329540802434209020732066356561286192847887342455099478417489467133028802351489808056450276799185923940739872023635464808476568067612605378691588997470000366668795841176204645780561758565856315292872604837860824270137901430781374218429279236439771789107326796545845953039153831422347077213083167426394192306124451936044093719352516934606061685344447600287550174830422893940149611525440875773172734209604748318890437669113191003585462794700676036426782084320147611975704530596549110795665995480008051248875261799331638031844229284712313426946184176636011102544851247259074572382450059447095937495063799711894903478563094161017931414605437750405059571982728461637046505724183013020718700083706041206613515332603128034584929593103679079045219450872977800282091182925767426749680985018313516709492078374623457056754575973735292926146657528374243501325148856612842860627046671473284051766382541020966641810066536726805264880753170585590497693337350202009495456358089596909446331860075057654541870362857737936004320326838337233694045014522899225074321481094201925188066461671616318001362050532013302663076925718025997188485267345789671866401971044802825215983662362021173156759729581514250371724782058540952722728597605807918075017907591784562391978661144804078402738378513406129708397090405415667288447537278305320378891059917717538179659795094416299324184261617671585705819901882394436913688646864233802761186188463702083415866368553767258508969292475201857384681491602973561660228008398094237328104486062569377721335282115311918479985703863168409406824452057133116323556603694081960175780072817033005987558996437318005943079585902360141875243988851218714578949992476543268187256934482908948898968468110343842473245798598217732060367701365274036354951362861025322478663526679921889055806275840467526992340634401552378357892079990666113189163989283479718434475975632882165335141902525302807886324946251385383366614217115093771869614173413003959201685185909271567691910550324207588460734338480143768339459092782045903766559047551287511249683110285399147932671766389946374878649125982811164560453831928637992548527409550311822926625489850160588122977045409156148508085177469352234669718906685869500785968495999437915233197567873522386859900145950689760313062244026943917786902154023015235144712266408400150684295095011894994053990740553868673462290909880660334146807564546614025503538308001957569239171438580986619067569041676006065289829429704754989893700573394181300400005511811124040099313758063428741931652648211991779042727765517258406337101834216776806439414191718045418588874594919630237438689580974914056791480561049087216970188011349315073513277256547498367987245014721187121221455632703004862273374720116761527982666735651340753511997265667861339993855931660614288880397858988629906851728502966404111437960639228027481276973242692887587265236986926083324345992865170744552182895782199052230524068151534129512921784498395096543456430590020994811565941325930631838476362093286356809619585245351312667388756984612958451999909652656173900930267216945113486249361132656877943201922706990303283922034934642985193650915771298790819151060272844418115612774287237455450792441974967053478047798676008533285630720240233034140320533783017625064651162110580672096802125700964799901555352485516951480415102296013437831530403297530829536640285414560097265277029461629503460273493935781407576042917453558033147041145950814353362362740865207440085466275554648503344893405412467586830430010856734768709956354473859902163606403014490757193534871376299134094266796309033976653273372254924575033231628849569052268665327667388432046973522782461148774029926017261500498498185813205426473005286747097395724094003226215747806728103203471351259062316924290203479733253548114427908931399569376834162481502413029551386148334150673317369017742767336982472341175677136035356221287165332276568013258620737049728712173699135289428547812963916655203668168194639724219056914579459054250287893340808149072287645420175145782948818323871106403142060194215174667482235348593089506912848044423177565957032872585931063552750477030908811039951902453077119328343982059584633564533438604384351017877805563761117302299304985793396699424085391193098365126907508125440092893202608858597364561156472400422122512750581583208127292035284234620291878837172421263818413882464884609336796779844059370450681267735410124206177501062676800704135975099875424746882752871569603177581352404914534336848678765662851568471159231050706068975457606813373649133880140528539494451323510687011486548591666361410929960788360267097007776644979856565142233163294075834625620450474291840338706101550436399641555623940472606814303535994709581166983786926080515351937347356848753594909594785155804864189769558930659216845291611628599182370445254126465205897130320306459341037890218355333346526090745882690157314068320758839773410247830534301182219194995922763605378412272368249842799381661547897764241359358624529655765177756435161579781775656856638980522427454707521358923886858228840180383732047407346925779823461690003241188253526469960253919364131001454310370023254486817984692293460012526377579978463153869164914951832381497048284507982694838897297405451660287140943683499408342570308846912096277638601816381801566811590843675274691553902299091559605655866594248401588955154546580392014227314455828995371369123160327036362074003316553459386456128199928290048350843716325970768201919906939596504503516825270157778704385048201064399875708876682425528391205554266606805122179406205552517768730335839039722069414915967611392235496809706728379327948534621699975763964504737486863515253631196974746224103568498350292198922191332299256932334674929051091475797331119745990796312986185244207271377471763024663393377350779323070323819637175115869171703105834822471661182149337172467961369505443501090038361214648867679888921571032291898122278824299716006934628219160083265900076751670017429589246280274028974893542809518873616662181698387802492454544977374205642274161167780594769269702450758717379239342776314009059720037448606944490053669243210709881717532557069282463513709811836789138818429278103571183501762449321155749235864869563966058018167065388051820752743074995123808770742611601364440278980531892110361927753971428820659372551338641653043499172147185539311151908096637216479309739205814796553827039446820611827809244458093445464929326205004682129805726757209589540705766492823908499248004580938992683171612507495431824356354341180296631866742514852047857892891291445694273174525062542827593374907250134894782197831793815858317887941161908420257901388790568498116909641013103712940799545696764207210101668372764482798052513216388392281016578916486591994176451167799964802148493062854196132410954567552410484345923509943806918849400776927922632687277292626445935494015780783674568725831978743525670958157897341922004699985685678868727481716478611172641143594900709412784726209281050990308027863600339706912175236364828603984375853034690851272559926910619860267637966345602207101955967652182849986250137051939738981682333189540457736921772091553909500356149562025805847952545792275548993672309862182037818067327278870414067342552332485170855716165654808280869601035414675646880940063323502242797805727468714022583552802512468298434303725555404573170395877480959785369179416452054866543493488868786400725582743939421202462372817143929419487299382289933417257066270748750294201650319191718882010064747574743775931844617826657404427226181341858989028853673220642730133120360948416690474629018668666777433571965036303249005860125996468917357797869696153851181663464865980622966998442282055107904414268952530553513754876502993502597226516065982841160708851816413892753647641722614315065698689492881688419864890036276462778482928295823893851739769819306573346355733296142502519262051982789846799169308387048693325530743447448173911245251081090653949314296426414400573540131656217448731629681257199273796176639784457759929601629415017411713195038507784315307816807051336335291529950950710060744774516767906003862615409759192068397672618864454510531668369552883517594608291616391768858341368236122727195273595799065974314941086745128391025122100591838940708644873786782656756379886747556145128374304446730534511255741545765080346177356498048378081991474386265259324168902069838943622283434588034725679714382018114059955682285868719549189103577541259130675941122190822003139299616572803852282843582262424507964498461759269101073881173508353755579870531214142115843169042270519226629354772585691304784909882781178810341152739485636951699355798940562292529879474946267536572007180930733779029378279662189177132444767084110645341944464055555422529485795827726488398668371284324466210620939577924294542885014807898396901665067547052497562523064939226655397139023271227135049684296130016966250174821734853716026674884778807956448778275849797621170830650725212877409973667636745053761970926167348400425626350841493837276002997480823655073947029906302658450501970819149286027166786275213798184481530276461690687375851524217070164191366349375079585123575837937681177349385198461493178712552149893596702981444337667812375602121062238571972647031183646161544934864324096889546934034431596875022381690020332662440277652097405870475836573473089251764863709240108317532151262184660890464603984735417304541445831922570808403171956718825247569041695163912284520427947854873852200835608341651484511446997191618959161308936925414980275616458864054740476826429290215905265017505238594309963200405923221170702266149331180552033484899803750357603464663534850535448428596456553452680312468301245398246997414868661560155685144996966423678623145246673893801598318221563167231213548621458653914496699905493847263086638294027274013905991008666370111026814855692734345554303024556777784226773689480600454059550850122051209581965469517037220564514413568937457185304211261076463432188954475389695487143263099482002750642256590867672413016577989190987599236464423968180570415199496123923582444258230925934383294955136189040670025915236778082650874587795361919003543426923109315899508334560368610932947290894220607856400902732331525959861518754258309052470923506418765495917615471128099384302678240000039543116063556541977085985549425221113207176658693334449904510383025360248727018866921865988646022933686849667864077276591993814133184595879008761887077589121193212089856552004642006949657169028873346312858551964753071677929604982616253998303585272313289731883145012172423900491772672974541186928455230267649443217005675341074433874081178457455352076465639710906652655507079356264267902068639283906505948635323064530160448259444795722298034087140229093242095107279804342142889085311111592223762089998256414979766413115385917513082252096708252336750581108403481635914406860225404430434265229556282547170224213725657518444725832744601569071832533714179663500215450995456831074043314163776628263477397317026660667246045518511090246139284534577625424913236220560033213723690368826494646649026355428177237256637581409221286877864951045863257865998107954161757695495827270364221377824416064198180963785893913184000794513122200837808384198630033111521429842136077247485539750781453653599397324302441915539151146487341623562354570046236909879456224829778453353964795722426191704544075965719058743826509522028447242930780940285171453297216931055753915503282438573524644434828708237549277561787010575019207379913414349110919874627742147860361554483716453698200961447650632753186424964695427047171563175868138962597727711789497373931040629362696527172897264248054126284290287176705881243879433101880172338641366393261255284313067843161591169339712410349126481134041245289217605115197710614759781359468857096995755109391580714434735862601044893847845190795714609423521608115314040792554027126451687826301103988281497820991418509166236058042481268866310089039862884440608728618016977999430811879813907687330284739244229886432308295236962981211491427685048113219718633853434795645092876117969016146692452656379177806639873748918686926121235859108186329185744043370593813418143829750422571053649404853661344465150000066028237761575450169081208380213699096747538076389154228098605858398592874123499319792445570426162531492862403198341913774054411396360213852660469062648995593164823870044987981860404404287310201390620022927230907505898466521362403418887065060144574258689218868724365144700526894985888100227762815464877452815630246259696091946828404324738238448937364398315340181750918453452348956332840400210421272213977887589451543204022543798331377348530115588942838737386626619362346367103416444297418355598372069261092146941430119110462272994075126029523639576046026201316400670463816868432771441269367610683506638303725391295652492914354531161171502020427344741771429520264535240956640057816270015354086131245430211098836461219636409576938065451617764699255280523916872875289757231766906113483306143356956680828939996644474480769383681114908748224950109463461737964895857158929992939814940482299647397736445164957082354780766965152956067023544092073544496163810530851005653445981030519506660130128541352686075677594845223257610660089322327220483730824161375122908715690290188518657168373248373797361700054846096142811473441668830890238231326434282642006794152058033730767480107306126836121257268725737623454041971265647368843173264987556471558835253704270500547788138577592366768094672431136308142447407817147899709422235705146183308175944645729741147580422166047212347687149070274795780373643582100243469962562958610284201044250837435633277924837561586812275557744708499434364611909528816267207645287351789459677421037966419319059650730150270043707170819116798177796552840446293465593645629422476836344984248635434181508828547611099772904607925280175586483537222433971626387609666236309915084745756443174250631928916529379986360115862510253927583947214568630016849220385299530677753308893345557469509678131764973429654442605572570528405376813441648509390067485513540009586604871369592716965936359326506937313479593136478025382441542173427790093219101124640416486777592638862978169679005558734703157194143260583084171425653070484523983145495425567192860981079177316786868301938713228441603825801076828975489564849622225513811450089995722432890790783428872776163477233619696123367904814368784681333310496337450047433528350061893645023888572093620504419523397363389972907482439213947589894924485744401392917429600876965313356718134212937691532828771795197390251345701606982279020730914493668385509099563012421412766994155033874992199685337212159335548899150524176531063051013838626377944321157341295077819526922642681783516172165526380528215681661238832392785771333879391089729871369149796653715283829798267897427497775413802155452668093583373022419035572662218640499474700434441059097870812047342406347441675093643923361391716816194901808391328279820705927269791723145578042424310471749366556634197489592030489931801013446760556621298576484178015101242158238783223337482472125692660871990824776055482298867134552602588518559849717999357581752821586379194842656078570742923513866000083580447103150178519364322408556363543941656853371701231816637378522367954960442113051971058801468792885043079406836920038911437956882021226573496415669948240640995901717807526854615906175282348527124698714479396559765015271486118768421933809425058662335452919131725048032633564830390586109818646150578119816022921612470082791886925594865412422232206786598095154366671886058041735814690976919339479979576611458885769203071234417278048579966112327093626209952469505113045246326653094719824786788403877819517676354533437488216636054766259503602958431603391840590935969575659418340858379043363835901321652068797223605631051457951962627216538061161715473761916728201805307372699758175259039690564939428137674261604892445601707695983343055951419306014946416110110198085912206207712655454805195036383649208843258910275424898012390795084868392094519527034548983688250176556322926112924829419846911895068182988668957317906380486701702546926331930090462710938004295904153782524098042183390096129073681343407708533889721484236476175589939870299516562132520268515079904527265934169276480281348781536151977304165811142945019671280454902565435823096149721254123201847954457129986923850088355182018491504093762512185960820309569805944849024197071846203540694373624668827776246367620245601927444695600637005380141035456859826616159489443177884784256845696242147841278038968755573206694744064872389302085001112821743456708002319427001201594132790096286480033936119093411003712724689780381249611289366643406903325685685022761396450779484121659441278557952160205564805822665603030307026895444197475380621726668617966102199500312937100703605180584611249102012639473266038590771117979500060761047617047610053201169608669791711712317213112585492308158858802867625601414872580990404302656534731680324319162158444403004846741315290393995148227736309553424300927184712913347837826323144634339444501491043206556247678921230354567645293311187826282551278194796658966627183013713916275884537384701141568499170890332677422311738085962837116393652413539446256767983567744544909400976339907356930066752681814251342797092249816436768892241940514267054070875226815125499253281837627875372558742701950886615825435637914398979878237493967488016941369447803725851734262129329283897067522328109062335131443097244687083971205885907503004217083903705153916440021839083149523818360634765879783313510955304169979093734969547372497832156431822397183051771125855111137353340186422154586628809095482471346152341659769285758292149800272452160386208187182984453558743341613783537010251555714015309068485919416321212526325969354196375949580586145285493822232780252009708948833368486463952943736491023056625893510909008085917881002882132669232825682313124682622494012164801917586106967398270786624904312427481703511547310211322993254114382172763971780104423116229317052934681028518316122282147491105576638780803400096412801202111787782316361236332034812956728237831118849675248437577413273639482269326595634888054247325576527625944737986753282648616763027133295387712254512117004456812368930038235291998817041358210865665174952980768090991420279619144384598048274125046228850542075634486459708326211000732769011970177213904455217612499045091398445508989004715398654641423602192589898606811275652045632400007554300790514025969944556922855288394359481074998267319148297862466826689452084392887535956423172208280233054620616272931078082342766585298452251638983117838815589385124896460761377119227586968013655024109653326505030983031266591334161292588218732662318565038401199040879483747966183301799136136359607810506580603034233869532633951250326044293702633588860338948943834080866303073629359884128587073681312292932573903027085437657392974886711531541558691648442964877244182600940937630450689729836166326606055084357548594423579713872393468391119823201854572760072589180727002533345761128355987163041184496264174884913882004625542015303823402356600900528489332104918062306331096182821633961485382941803663701754033090279348844544924064170298099376397823111196681942548298597744490888935617024981063485915065700803712368503797132120200081743459908528705143672280080158261946176499502935742654130002291183215699194683256635333829473257213274037394094244368003323993811011649819960010336975883033064641099579715529448982359076719178101392162789998132167962385950190816432630029174992685098655376673768939296506882961761262116306060770290133197865849267819268292010103849687788329195742385143483555129799645288652936811169830058999186095208126042411115300358368829725317949466878252079480777033505434256093115686916551496869475731386794916039847236993656949773144721458260230486706997561891972961488749220876731482671060226146573277066884447726238085411146811828867754765503894810213207853680615670878217805850892003457216255567769775901256480442970060056536419574705721148351796470532448262554389640568575213290829058795922845176532642558764491798027604221657485339360308717651422895054304469189710088910816661471659398857274293665490445568126180480664691973770073377658170351087559290111143004248111356036425807049839158988940392230658023476650298366078283932679354616269106040156733876444430851466552656002322585106652765576935221213882525461193005689410054647948340492692155040109455280601420456752858672958465806233088330918479699292507101975305579689295579208477926919411678112658709670118224617128562460351792216610593410252072767544875188507997523136094190067539472741482865889191851278852229336034213338841988265156663554624316111226037508057396877766778992164396189681687229073906371587514040891734289887777965627264144170900947293682458032635966292611211070988763102030006693621500162802748696290041513934806805478391880290646018752924628173742967341468290007412430608212223717020518881490389981169201471034076665824339665603877925786912066385863653283456087641058024353094553774777110869342979418447211739262110502494532885801459918130072957736626590764790943257372810525876747773825011565207406029163168578501483584634978291738674710372500377236221830820861738162726303445954284177008973068297339674461575402071129207534173786684600252470172673391199171687270136468592218152116117091623870039012382489051610283216707412186931880357442228445495146318137468708142922683920841321176719466757480816396960870593497878783185720875950833389385518300774029090427784118057295088346744938358833428098911468162031619444231301368235641151357928706909401004343451206275038978126724052129687519232354097839170643129525089867337255326361275635053110660257443700424784534478321568384768441687679094833845909402887471301645633672322934136503177443744174404570048510597304607864108925513898374177950796569172463891535615916986249282521543266615765007475514358285200108420129176756007589429585165362901288078103609623840694428196928622202446955616331052289169850086808111954668420523534387767636356198228975077142435289540402605056183570649982836881374900339310927554928123654056764284000336821228266057400418041808935680842165168075479514723502407448038170975180970895797512966700435850659520793587783695240743220532802339750789431122245576307871460695994003885445185636093893830185311395163400727828275328056374629797248918886716194200064594039598532551563800284439990910156461010211154758251397749675316270742561060716593836148190467462793801048876873526327279528402745246833825326045024769722659972726703784581767294882390702748931168129790412874501353248526800552016522274637656174807969811654854035549265250904096377055255131610166769709709755044994004520391025832359001685206520319989091322164687850444277819607259802123333104017914468387677089930947820538626657691850343047505982471880323648590582177860319507324444965866775260325098415237539360283888380667941317572113491625629238489125453554236171928444696028594721498762649637143500544242199541161571798771578891511253474197010936009355415859046077234155439157150592238316564192530051796593246550022121086166646414604649917004871035657066675007879059892437914011078445969182261847673004570772790882538828824628544157705277862016173911560735028154797225739504839053467097832597914663561962783841231953788092727045100720023022115125164844925488290620215671754398445081314785267651763053253403808731054877425931113301426338887322590479624103680280926274708294160238055663828015150469138428884810694839997836247611502462424348593558492368948938429473767687546449873941570837869721972155785000676988375909029887855746163783174691799597579527549898990131705839217074003886697483974936531592447766657821454434694986777093919898635154536190314725461762213038362248218580339499146691936885371885038025490039212675599735753144108588286374351899568165942329428399768639451717213064135822652349650814745374856851582208068887705177406446319439919985462668652935835634295276453769232616628463475795701192902473090689750423069083190542459967258824104116721401654102003409201493907508459815869034551147246967156074941961572257282755805090053257850381378368111389063419903717848459685987052054111998283852077141991507823688457583183754762399776095515031896375323017469078945139415171699706370830729520490665073159529903915544266747105778912778041055036331907689896317779751684259149770179542849554174830792534606718947289785473967102766005081650796362807296833067372625414139833658880274228026918691217329131932909394024762661252487594160303905926813446688154036808591704332989334748176147222931085339330713319143457681587756274723387664430289257454596571002457925870899812219872939021900115824716838918964050359649307374848412618030263485811681680371897791958643498682943133886992854257145801611395863334379884999894705331554356640242341380515556500208210283318942018941973811263804188288687396043969526850594305422897659919282265256529939965093674066862579027362030612929474997409890386751767232839925790795712369009159310779362756018512422143049260623337087140589038343825339394543299158915950116754759450018203378986202863384915150385690956376844146639470619169488099282555823273774270638200917804624088839526479579152572124825515481902984535408610772078007760073067322465632785636943478264799619614423610617669524292842432889687656317910132256865491588951062132557871217570623405563128529787986350102097357112521202610126519472458490354256847916817190710697133891129093133224401445553119084120040508152594751253538044655877087803493189935513804827763911193058426020926995582860677326298846818895639650854630461287065069903998082111835565388367478276924410239786197237673389905869843781845637399763748889591142043062709996512218715500349906753027637943088657086815996945212033711632697505928786840326134883158670576116139397790996449725901941980513524267253001467455883836600772659856693542166473367004681058456577233859103617241510436956225245920155858175726167169355528631906887713316239785969711463296457619618140817213475528345289796057517226718056723994135638110937399146380422627395977871126211128298871503930122902608925924399561329469663364248463570222726138480508017120305330923943319282910148074375209946841731029470282648784683443388158495842120019931155922217139855904559151300265951628391651430165561638357097037649506640820355307340698149653089029399069514407801930299101729394898437705521524328589404111504031517024423785712311423066891304824665166491956924455018526635241250567685509176245962984063644408303475718320220496358922217142264911760376758687434444876336214653049994706813119376840503361919060184759871966539558415797837868345447765987014851612122663524133740263588640040576499150592858582325274519714484059654091892963050559076024469706870307086102757425520738587631559348761954725733363228095076223969546657607888987713441208485379192576812968541871168024143041909251586623670756786458733338875127563741398019737925900602992471676800909318138557471620147456564166189997859881165687638981296944101533955172643158776303080556125549613569287340965956961473615876515936400264764686901848927646947410810319732755276515426651796779654349850366014404610272348142204994170673674414351624042938615426352146391623845580936523879979339621381553951821263261077249149853597036779590781800761355105394234988897231323168936704026418562549323489427261543004292787450302453622214047156562807618848459264010558919620897027979355123009167046195796225745381313276885803558080622629106076051626978995147156414579453663885850857580514361938857843325701450208001757347577480272963502489096401730823010985050866881680786042701707877282713401613559278111105542175309896027022093518765410405056240156002524487790732921819411520307527372416936694010812329753000259866930554080333180448576915629248487454102107713465024424696078097118797430476421455746807635686653742188688286328670702658298002349737138552708593171219532251302986527039326316298113838082674867920208495140930711603238231161231848447760157846357172867529012646679276356268091357997590645362991724036035362141361978137376626227862914091971409331988899961628098715637139133521932786149841457798031071243733628662650252642969201573630324219538498705394880778893201406202157788957909896851296867390051655428403517444574278933976678540443040218607702946848298372885311855522832192912164726264334890499690160814295240829193185535128611743442961683576341819794968792729875090837033216862591314332750759051762297525788043945479416469259310524857614824687520752391237189866837039078371347764486552224328981159025802882046534817884836736016932486568592028532529393280682997760704290272602040538432199088855248057265689158565308718021395336662949163243312199957111067955103527493388550600135936546044607700063076096193305980324667095491707504110635794720839348151112468489586298968176397006887499514097705176074607438032125032898541270738647076319490202750461537523169877370704086911165466723715640301881412512787400151264674568680650438588376321320872857718067547914540091073076746118435702546492040717348663397340902420206643663709303404880665115299985701287643550452269947398030661636125913377902003154176998635515373754521633155933776665767004237116839624855098158974380399248687238582681815933332240820441940189184463727935103896731295722500405609214585555978129226697091140186994979818469391886408874644052200943905030581889166820987052159217565322931221563576231184458493722317933939909064155026419784437427686429367940950725442511797019256224700015462739227385689690503227810543920379869705332899206267783842063827631852748447937736510670683285093897101447486067488901673135113235169012583311707814277617482502009446303845562221777554975756626865997113067975509948930729596651458914164679038484293896543829463888912591762094128664070094934985509704630709471827518997231947861870957285710666223159761080452174772849194101560194304126072257733453570187745280086607651130948824884391594496580568890714084247245009875411740296915384950107935650550516412717446422956896645752640168703088785049127614705271882879094982024715929895059199366426215649086196901793888419833075907743626653472795552061388468964046150914645936637244378816868210796636181915793815461006129303733710137107063123333590080541665001989001633199896460928884598234570559709173185548154139995834643408209365309007463864745295607573795856562780270076641138169076971754912063010739864157539540297373570802785420823946363102834892524182533300753526392869218943611351983896805291998833566152562511542120498662553742543892217965251593479614834915401825202149099422153323680077627446808296303833928297687720080551492173579970164055854191653387841236544624424660124628756707735685837049324891803564429126286464844340038708898896522292557245208518454675126500534726662994493629712500645845233623130130001278755829517684239821460937263147215391569258200086237781209750548116576501599293828955401808491110502351008903109871725579596723139364862727651200283819250926068978454803402375448587821636525686493314523823248398189137353160548021802650531506225816833377087936309223397215969516672069685378090855590631089574005186136314170806989267274635314417382817558209360448841894300167683316854602403079696545279777115849528448554809801772189731092665897175968878650197761357219884120240713215959178837348228740348640164806309592125601906758967324262128759482072787812610421495249534578588379973150970754220867505087661217998779681412793870894243151479481906725228006925833356878658133427935692882988455578307164115525246251304853375431356905913140526337250440903727651833698723264109424241593474339801463268184171744095232119321560009082212736184334482098627111392357539540479518833349220558227193510885671777961504026937231570063425663109495541871862613755950783236844234834565931961083423809916710468346815547527444706848570613199990027671389628319154541761172344594767547450839289146594112425620395031311177095488569112156164424193292208762192395413021344609852805820743313991162298066930254641025767976029105897170619321941582407994144393305498835535438439620825512930906870742929288033302915508986467013395060960844870388683243831809131722598892004729620383929886604687859850660202344759363775586561837380541141723355300713534651226675921960922574329082745812180674676220227328903735305513983036582396776236326222630179145419269301262295580683205490916798985753341054580269437884204720689590074537677560041840435488089597271707175198829973494519937553197244130809896509762474842374133496982075180751417923247709571128931994274979798524316755601486591526811243240532257758294540922681003670288809792342086734529999121269924444010403018123486637239497600870892983442435191912504562116191097621573298906580336770026706221111277784796159031898148060210542972558157226421041590492942507383786859684093205919490357213932004962672949170440833474111039944791210024548961440882261740150432998569413604956220606388004718351179739035011382114064764930965459359628245613439948562864530985759095970069545835102386796702571362034456104170344504017091550576043691217170871877370853522565709585631892860136636222201556505001912530089927402842743475792348883263323181666398599843640399649621602591732023687059741411687748349582825365627295510266608403295614416132509552939793420806023421383259741921975640037925234824898061431851598534840706969171560935704705036981330743453705055007119595220075729508693659405726199751101015401835045192038595406031684193846924067323756704128267735507849453042438232797995343726538636039584361237508737092361107648760679929536372598931294214593588351924826726608029792731538858008381810171373525396679693274204553561604067288957462320073917228232382399724005369364858687530862590233793091316213566575874867844338719286588306990239681450638276809023899624965711769637839674721639552764510909286844841489816326840072264505984324480983357484557194180452297526042268292969139927270612646274239746949188947399716213599797738158965522880396129755493915164672457678226764654413710213122830103397919057851979742232904209051070445058887042550897695296733347271991292646702358816904929944995474065940431300113763410575941657091561836363056419740381046382122640776670507352325236103075146879104658935021981726084398818910527422426440902073896302835340944956975612468813241524833028099495907016423411035360622342806376829883172202809216305166828873609692544276909845833559115633673362786051130413115534456729489544583980702304918526812593458814036458081486948791637136081834981987006690845542612576285181034225828962818975845879089526815707999516972033310227823627145001447951364690779941409694687165579560583600001788473825538810330085512461987522618758631777056180188397177605149915255974984348706945268890863717861901405957525009740895095269413267292992113573867840032558657265679342572370499683842226065982855942236509029149648188591917461307151845826246967764399298858742197081181388609823933224975355861081766277807436031143862234022778772006150961296153259918066761750772585063174679472773656212311648067256801882873356719402420621483086954189209265485165549152531150803875996608867187712771922285996225935308131356569599620585909688789855961144126072197331654038069996360310576223940033122983716726799949863617039813463274005659896764907546135312434058587899056619289596320010647420420933772515076610443485375151348879568875337417004980388845708928978459295171551070798706568667264852652795573358528971343839717487145367150880029077863094728981326165570595631125133883223065521373346559277992020268006217597732336242142286424158461772043676832370016583690635003542892485771942743854373808938721177167025100704405108763156164854694127620218091806383806707831376034693499558506668486289933417830279209115117811109692360113630105619918726092828107401434080764202737296153059860215064853090475120312766186854536881565717138981965320338837440504069820929846633795557973246046940449983270052422715310859802924690343044207274093052680261127617193583822915144116628318157779827683189797935112096347904877536683162279173803433982547083989693277728894766074824775896883243976148052216500362220857125324289922774693323640254618185415977375301540236317226600374356726937200024851597163572860920349689943279676836007338875684261474069105809897444464914752706385188547211874187614171602294760257921783541147420314521813197422574318929248976101129987325888261970867490639361234256867066519989706161779911385488773228690726758521700756509259802008045796634503967059503113000581773906943117787317919152099772868654688804065587045990150881538398021380511287701784457137809236649130598317134956620831327056945419494712237540444556817747447199796422923705324370004226488874004292334580960006412107647295262760699583788460641667902351991375004908062231957534675091025705211079058314908863090176778077412205893182298042178154483514081176725187633555411106283895049557691802752471818154434992731562791857830029677354355369702746540661987646100795919181709629579962239451949425302579904940262982746948439751117162704462606762930985591372229988678652917858191218721523672372278359430994479278919623630510022561082350457337384944352816989793933576328961345546302678947420512462600913033041074356203658863151452630196633857767785033702121569068477103528806770693032438148164006498786463040523897849225014269732206075467545398659591482906747048510012208169592327345193160333881971110413812576119521502339840491921708247718540018360640022449121172448237545033360213858645134216963631841179474920857250488872141354975967823774874847340436827621195892318030360989666407506587336621229198928759880505927905844789019002001424053907412665544353518779741788984120046228165124814148566183933934879407779118685234581507001303825472580220551890707981311640931214513672037292675396636169177005086056801271495311432414648182637291512530903803875443045305044657234120746110741833548812715869758368298375586162804450085326969755121353283408266908237573873595547225640843529267989053589400017763591564763579149620879673987769676424066383912912823559688662922893343339893978780722961280280434885669772980016819299545237100196792490539053576617528048384215370618065559699988438308551984317599192132065046137158181823943279908113291331966279029397455244046922543531450476197400331709484130625493235106561090288201885534643199777407126279243002384749837061326983309452735071988961244136793206218783821076287489441282337787985026203850941858603269885385848586988805218746165561272889304022874463558532581900755212434111663956255584605333767501927024185810517549443368154709962981948083039981926498313073897677811166727342283313778290080686059644328981729093684242723491148938389435060795474291349099005206877126817197128478545652853990122615018424465752015120944740092565058277844704814563848973091508029978053013697046563239656389975866532349388855926223772887758421466618904681877670187759224724958090645855979806805764899895740628135595222183565015066445981757518954055553164193379927016096751162589382494203735598518931507832448367958713055417606873260366228044529072717747380543758041498153366677331579517376230244996391003785133752208242211163449559134650409801865783182781196476686360136809174272534858132096759566124408471446428415252966767094907507408464944880102574268455101136059125687798804582995734674495795109592754010358538293584966894805400834569672816472361535633946168157248714949989594954099885403807683165975581126393482204574394772819068641733717607471042562325278734144981630263394285702577251721395872342000516234329556140955916728179833432204813253355760441451976697822451771897792747912716143772571637660456774158438785214465452316765723631021559552994869832180587203503858055054463334142258745913747150414278260391430741589887363988248927703815428581828641618979100006914924349806614513281014238559750198378392002832305944486472844704770211061762178256521874380401014402614239813759777135871701199033308361957400410900455175170472605837372694619059291994356467816726977163331707267156732116720857183982526094623424985228971478500632375516560631843735807859718479655472542606221467667708198687149478836288290471995103411818976536888541405601767856488640025840268479518123991606694934401473816263848941332721089929809438303922902220436658653661083515172585697589717700720186244669950725994911349817362366398511633341367797468990760700041929518897210456501226888577896862895918548385571819304454959167149027890888525659361518256713647934769667305014645893815579811533281987641781942320626842224648089632051154732983659671420690333852538584305506739997695828305350259335701897733893811256137675439981437746276340878984538893397239700876399467543698663141466864786062194500523980959070471707727773475509614528763105503758405390057378571840507247429666914026978011047226504932768115860994974964744769361613738277260925363061638951651257651886524576202190076805117028246304938140110305742927011699079065823759725416467764731981401979440748868019721271386807371136837831429063882103042913174962715139013434934795298909317811346851304320425775918155594572375681618163608813597564566834140584868886583318742040595517127544551648555275772827269049624660683080729666159137064945594466723337833435375950586537003741836859393603203975409748127790678481129651662122416054406123024257255972319152762325967035729864802597718834775294629355677377795568061699857554644824481311309304367028763642907190343611788953538749235118817057934367812497596439703403445340715192759991033538235802498899355453382846214891156103310233558846302609555689654599450582522653983527935195395950324040592721457343308888860154779352178168054022948417808191438475722687857288438335165397882973124169059543116222206393134820406889572387646337189003476178061207476306402336957102968078124157044716166264916080039956415020494027431530557192090871014518046094458187173117276809025180724253811236873894043097306718180346036142260806400297990662045827416841287107123080713105293494508069675503731089733311742179332569808971532850446876336580803098201082852701734490564948720295888411616756936469561256071110098436141692473244525406848109386360971624878004041647859070254323644735692889983489492622348739224665281264690994910486587380349188173294988802238510257038269155521602216668133467546102363557652791464488787876144676230447971395492683019754310631529764135727300111472116757084856008476708613514383281284350327273972093959288482001967349092013231226042389884966071095340120896249369469652614843057803078711450158094008457917217786898609708753081698441511860275166079971650852105882426697977507300660699194417000986837547137247260118995303967196260469172920830716833542311479743229739237092451034662703936181581908989460106967425291000897411249610575784857912284547276327922249274070014400496985231367881666626875148977454451246334962898692978687532399584980295200132375622278339275006264417432590244548185814930191880406737018509543751783301691539735328083103382551412327868069360068178683155272153125362635186823398761695164426116016946665959687049758502934838940447643932817326726261640806435571976961932562387571477378168418939800174910285360891643797459997655543348336665044128250135512432173546520028436612620750142525676873186224442096801668910271478325866023249804075404297035778423386778317731903143539298946758557527758311516252371429180341040808061652584874235816312832057792012597442300047171933749742769122997891629987163033309596440064072721865495557071144198628282349484227985955278569386318040281534955944558765247168050596273258349729587980792860059773129682132654468241391225031961551737826559917257980133272127504354655468639443274663418253163865152932183023192515523547255276138677853924166856522119379205566754733071416763853974644276513472676572070125719179485299929929729327310513101388241025215261490776184647249994607820814277311772393350002201381499114890623029951950383174969430978344659047898897812736583188726972873650892854671672794497865479044467445531257993450918137508049864203567852254236665332374698769449129770820197943780966643680994187327153226460768912086736575570520550204271544281256390133081703563822179293040164873155964827391994613276345925222014525534228173805031912090690364123201183705450064103157282944047453587421262815316733519752713360334417611753098432466637000282295287628959317812818747497996230805125505132580689566110459922716941176449164275314129618069980991868783225121370129451081327962986162123594600433137507843098072674338138064414571694836636974433198733425441148055440025536594527260318360793089347384434786701659000660157910339493188107947047152806633116214461295981540751822961805108310999636798414786247459991569523145782398182671379369259911772031000101034689208908459084884115313811165800638506494469610643460569632740884850505015862810608126220892956464625454070434319389750874482437283943746553169071909431159918272015193342563412011777073339013024904223664199193339501250775796062583181132305812617721965526021166083955873086701106489383882244007276495169809619096195139644487007464795669255883060578847965962673377983835973833130873243197155399145247642661798095237576014192345958399091442003998809265904895591187541298959265553440211462916578682381698429131847750391455536842512942613153194260020687295127690388128563605862377035552481986769726659539960407313844080878910524177648429275541736497498145241304913864971063132357158378599855490592436328996097152309060527931246554706807904972394001051394544724576378882685746374663229690651930644740030363952659393977121287536116968847296401877434774161461164648518381854574715912012232332605204241355580129871890815661528847906790682173423115269987616634401459723485041697909358203409027855960690699594485572699228337510121076616546533566474185205900269907665247921289858334781561147243204462891473433831118377410643451431130263942281474347903007596242328494512701745578511600790527371011306488932074660851325097209421275497432513826937186979195622865712179910729121573871219209804449218541942446563674559514234723849502428315668351604499581068663611494310792035467657324035364782625081131460564606934670557419815761673457581167502590964400148179363585628116383441722512857611978370553954435307697424543930752756461080299474029003631096631976691862461734058813610635178562965688419630789335659947868316112240854810779159550004828090577102162936546790459326368703863258498879050721843934292397686200454462519187544735659629433931272953773693045811439833613466348194365743802683377176857292987655350774509033331860741968896771175736006596734291864053593389158548601103818149322566729018052241904803392921549854135339158939935564189397283896318757059514811564442113700915491957962282227214725937910465420430703631340008626979680946483509549056485364357305585977835408291409872855429816221779947624240777741904129081869308346222850708435098192211935644957759371535968485655731292550992685364116319935657747761297561776755892532625766002482562686598019807221738657604268556996815798773007925747114621755848526361599611519722386586805654859566222539653462462965096213872262955235111146572013058424238755873212170559965095862564343360749581231737462596166742657784990457750733485769387275188673469998239133769930389895184678626845038184159492884215359029574665501946510237179306076808208345574190899466763515015795077805352944471393627390820299376079424249071526916391018037061948247685391950292209216186696011855321773543174540971868231208640298996602167448205675930171932180914707780910933391428542853280080671896688329766950535584814581211970353080056929101680642183342794105703727011157056091016944293759231283438456458196914940982318840815599484180422820012303491601002502717051403366681764991943787157832521705994153930399738263822268735537937400109743827870317273327038302408266209413787540947903128531857026008930593360725945973996961346636184869971282220764419553897645225989552036200345916071929125219926193128862269736096964207670060014935473777914915324918046717836603033478314311594663804169534689470547346930587552025957175252617555665411811401597615246566123341543001853661103661173745353968398656766376176713198476932218351760082134869202109269973666587725819690247704811428322511590109633308824379828266660266590908299454507130118812197634011916767169817541512076009653217191442110944634230593702294017368656590328518323453592903315170554141275579039561957285848982375045569992831802127076431321178773069984403362659812973012561278270220948382147258662643608458802182875253007942070827258399027090249644836739620877040854214154495380885742648982636176111375409266852719784581927149813416936220238232096460408377046202948917096594027776363780998178350222924798873942155345906525862200995365740403766788288514710538634100555405055987647211926908341792857209588916907772394087696865671617477236464357961278712183795266343058693653156876567922442259912656774136247021827919128812840231930162950924512786294720216505205951385302340122580644140959287165257996124461696408303521604693606564725665728919459018558801989688398069099914071806154506143742087348119784097369249676181593233170932310266934248089346492388548099766315616050229555272738870374349615253216424627657450657912850479587491252035629280167890023358170757462951078206275588366890540573612538457192033802460052610406728647973729831550296494178355061249274083176092138906086542273050563211272172756379455273393960019477848760966421960506014112417227479655098989919853499117460424441984470332956358789855359561188328498338783161621994121298783547679230508601600020973031684480230018942591165627061173757395203996258697501140590181865037258872571426157045640999249214778423569908669561948362059914004300932214864834041976235770149667607742720251553374109190410586099322916866354655689275325676167927900996440216352046525983951437713494992579033152819365003254566779036388360437996278749597441595762182533647908690542775162681681610504417868358264754729530300633771453509829859205518874653889439779337835964712057590280941250554335065872599494521837419041385335375551133810720571413311342690990999376730607387860643240583753133570860032063878157977328529416466771672117519586692289032317424517365854964357924369510854563881447648521168213564311755552961443755165300345613216186797418686712725882823756604105173663177340016843506358188680604018930444669758562154281613580411311670951794426229164259864112651842935097358855586091167579302066638797886955380460095645837564744095984064022454201018385002630798712701315579806866141048911440553860614820516282322735471224064488666267370400024179916983971397835453371314820378093430842326992065875132579414021149975315745884679386155577419468421215351637582394099369108645628331573492674632113483323318927520861055717357701602509029261469966861038860115411708417534041843684540927019422924294216808980235673358138435498326065129516401511185760189714390866517455515273767395103440990404980110510678894564867713841148883201580800058883162231893123190389912527617715572542138154754261253328422996020656651336745395903485406042514901861593263877912894878911682805665274257019377829067102874225913775945400835485628615392584799979097976946219178864907858664732628923910005425129091737730502509118177175772443237126457189198960991828890071430919065473120003893615111695661393829260579476966371039864363209623620254375280647993294742883254560057117107968090379727182410128187156999197256481812225007630442949305067136450173798440917960306660815501053197299481289520220591476946459957344046889379366570303446791458059222105206009794379554948868885446718153531139881983193773234660901637793915913206886066814701177678130311325401042105301722206859607960564791032365666672139360351944167137024221783784389379667707758456330318794616242053199003732728906699915599698763281621528216683553015998221511773976065550522214496409421772068921521534505045370028302528903959272464558938975218724220697701840606519630524614356327473293679684838409503253293333127775511331678288277536607623687456532894576394594885288040937330369813624990588106780635127255945285524547696125454018228799692715218099423556279179194931156797081123993642628880702911976684126017111847522269929078349507912300805518573949609829693348730253277621147762292236607655507805912454429312074633691687405391159470158485485307265696325017972975245331025459090490996669313406875973608058941063163946999423487427381855403903318176303804673202999593939787831239237202432623753607453602905761987689033097004790278776344532369706224664953739498101962897384750369641367482448231203720775441989815459982150535239947427345440427498312562576381803141962768365216103739613774021248877806343920108567354161899057293584608899012389914000309490881861278926592075667973064489494541508456008125161183060534364155475489225477746570825438959552399005732643424354249805756355227991055537995666041581125787128841474497244082705962051431751139052434199459778162123518595285055506378896590216843928566833498585070162692753180826555974242744847650007017674917001354500606191859183662059640710504829061158248245145625078362272263643586396152647547004550317724112816966941753133710970659093571048797236111326175934361834746012379249356859134986432551653053175530910535709460935604104106959490333461630365257169699682402344724846547666368161190166983968883522783798807941159002499829927444694620266635685830781092492498280369208625754893242342311137536858062565356163441083473087074438209207593291129614401015679860634022356293050840632074676481715812638152529731533576569469124067551277041637067305011473877634401164582941463408042200864431836153684577059810809552996962075912557904345939556258264700501481660244968774333164510424147193796050937123588886007309082595501299938353220517852697685435950429892593486689436720804824873232602468794640786009127436223632048237219631669344379976974126499136262447316794127523571437354715122326910434360488889006897770397726666226353059208843715999706194418353164031636188023769804435742722606600763903167014440167898706899105553347202779348623063565673308416457940948970888378339960304444999896713162934006054371418288281339726917335736828648017130042932991310166155533730709081326491780697884996207433076293614298462167797566788084585520662450545965692359743160600111445926319456024048256791575211993193887539693718240750749257539197474004559117530665776976612078678660421946796297147123513572153151053715001253551367615447966927299140880863792089507098958480958370434266325050585584183900263431267670187225232935847852274785448949519453076513502810404679339666927983859149074830421326358693981105795433496895849277743790322136265171408937829398224176756811676476816237454986945399942822123229866054357922984312938577206532223799833715025301005316599289551313814303684416915642604644561027718186158274747357810547126170077157195543819077259025769245150609133136770388810316788587149236802962958138161185777718602074879641707174075233511180713843231839473021677854295400875166917901409222153082602895462870762306581223506059716714603398154202584900718528754957128437233689524116270755274252225019844123117909479726631312803030434794801599356245638704018802189934980101674330262467478090471412704197159138177224293087130512759899830779746361142783046025595154760016592012251343102139900928300964722155444279843035301520077989755279755406448674128658508141363970935619281490161661728810961218947439913417630200709280623918062368168759703099797364542488681662654672857854396501388857958726780371052339019670994143822521706647553325142934714059456491576937613657658063330451459824759681531052224840783602143453611465661145659118713355602175742025322055680766909157186275824058207178638854274545955081540789281699711476922173873224510997278353000606716862568606219232829921643100375052145088008378108787793229126461159773188583326117155884218028171118306587841398354176123826779125908074983897010823573699084014737317201702632367348105396145787470328362170805998895607590338926511607710411636882899547515735667092875118071574748226095800573682107327665334268281007796771129375845878208761640922343739810367078589455054492727965767734271079225572355585950038384328145555770066432146904655072161134260217187804337421608528458516365292218697099297689972699942460927912233032031458002178392680331892123248634494347732444663145037853451447692093235126183563901124631061991048226016474204237778061904756501866312807387352239006295171939922406095026820501525784301532813835521591112029587186621020983707966977432982947523854120699453698724044059107731858865939897285289056298963480261106201851306568265300443036969245090550654053036366579350711430565532602717168806810207344077785509312659717518578529663397825871331417183784391371677608645584920228500961420023017537665927170583644292516554777149021239231501700698031470611245264415631928166767391905422220435959856981156144466828179036216725827720800714754971510657179788267600688038784504842002544061054147515258437562898701999202184204741507965327858930353786906826891764183192672210453754757307051477264474688568619773620757632150002628370444909490128157338184626482518476637146148151475231525374368928126529479506436615366393161585557592346271649798573782614774014961757472362419952519360366690067655631994933293084210099249970651371327900459766760322572752928648130892149713386175915348699948683555355327951264250675375515544069210970502800674298271028850448543046161926554356415767190924817585593186616196082091977803457873446291720873068867961163059827662485464103662231236032575516648820433354304135249210136981012617028670777434851777258560624741722033098392749002859630157733245589578063513306115867538311077346766928245172154118338610285204032561681397650008457862648151325097133000168534293348865479751751975513061830447951977597852635153244478498472787916932039527278901336947075667149880731892313122232303274784848529219421600035972624830211850563969070868105266601830925987045519576014105613607722578587210223155365104898694417595680479017049586529903358698568228142693680492290482716313118123346800850464097112571842435802912154484962909895569269742281257119949395969269868680858034147772833728686145773556354713193221167360679728210691295297976617865396648399613887571487916888617657966749038696859266662077490709045432806310491285501132194355615629663294896573928761165522021220014960309579813316600297338096212157380129883865842758013743913695812839356593449893090530038821771043434524806612377547188074120873748771444108083315578630001212479307808760522686869281278976445242661753467111087951519602685866415607242232678206844606166459539972743072011735512571842881850358195609283942637393579570414571189923398298661438448127034014819461429499867028807385101416901380489782285917245452197603715532661654558181108519967575379541390373739906940182922542982344493540005650032450862400239615971941594847810661479449112980191857885595351304299885579324877775512492250373751931618132896440786540781962077888841299518093993396584166067049770577250899707626815316081665718497747406939845416515439846908751619342869766202875848632689884139857470104042184382215163702054078781859075558841414819216797586900058216825169085480516934602433641929324589719949265613300394234782054864271362739942382260585384263616314280777359054778162877575064262774274204832652209773368733007393116667026324675291974904665711823755488165720511973870624742535566285245249475544753896299474102902142285584040223415174828428843216255827608111280314612472322675155226150632687757447739097501923861946037059962418035740605972966244268581618714198446970261946904091641321795528767888125821309137048932404133303263891145586689905987341805286321478668511614082250059413876498753488707333141533074833715791270700396328841524377713502296289416970560732319972139593007510438423831872417749327733922014403364079742507519417645685239773040669483647203982667070305432208432968729463473370685705186738448584060560825045663356640352452244920968673608564590038213717329165337581998264490987977473659070557821677120379929627959679809051865698346210427290578692167270485319188938187175106240924017101225017339525885040967164443253922069209075566095534429969199183368038271211394731954466770696995394960090748156466351053884607893992603381303330893782721335069780094118625320854320660964025518597008473837570375254907813233991454905989611673533792099327793599026349206499687030620587779769205224208732990164765862042908872345916178596317589604430889018394011856255519964622902625712232563633837600843931943131765647322158239059219226231880840544976453301770859382071840017218491860114774432067205541775666325803240202661520204634464076165736292410657462758847366988742089872951503784829535498953746590131542534962449195572699621954566967805865962103831433043599135143183169587124659909660722338647516179099532764890112058217261665881025026770719824602547754711412211759664961735144247154451097287624468693556300024459081249963577235413369921665879284941756748297904190125661086760880572959696313169148507092894614734112784230137238557176995109054183834039922770613392536445755903061446480185008233124142644408866127542268629961370963730281205022505221229074789067240283598486475030366364372521048888261177928283625056526569517107066496692590323678502632116400340009082027444604733917898002388379251960229677871838049179563279979553759734487950296036925533356200808903132657818417767924736239165583842565740356893345070252323452407789047211051650582192529218546691005481931469552301163276121309936916999846697567878830929642271618362985625554802774852621751311011812624074356814682824725755969169206512026005254802920963782127679909557676700660931944351558524566421698010231459140848672475048269585842713471985309245797718641342276313158678123408778504838337259631167486728549964766148739220430973270225618702044080541437359984170823022712953693171496000134911372647676364556507179840837880281452190693918488552378911514842236697744711706839699722741737702979927914023278477580881363506124075302446055171049951236029428848492715221284364839206350807287857233017510548577733870809019517790057948745587015969775455070604121483914439268571366685367819607227848342815223457979617191880634486375418480000867454506077159751575419293152926223301363317166592898516672325484525695492909670708077583722322250479914343502573142231615817556336000553628693523216579714639350189055785857176836622790976962415413396290126975583382804903748881124710486341943126356447009489555437296698325116334283909725297127537502011149870970779794171699627099392853553878436713784016516995590409103342584077516351909051361557262010493478649422219862945664108526917787724384205171592727334568397928834321018287728475705130179889089747454391572027292096815862844249731845867931222109123655036472075911975180569383863639676907246522693719443089948119065382445189397966856853018054518628070062396701071914048760131631770776185205783753672344018161540193469194611801627783631506533043331360168861477093525401631696650312340349081567862676191381118059165750782541597755738190518698161288630768183129976996692389444500070653050951436125372934046378285003811359273642633732776758256679470537343882783458279908001035565867866154996652135515714980944166539582658884467001181214659714108581293026429617679146355497677312034836734548202968635446973010831392186057928012969332843534456959905068422423551065433777141207863553283544392780817300079168931660466422691076926081167144313210380550283911525523935167740037194800864617725644679677002449566903370144716684628137936698381076823640166559901838758812947170929236594116042761900221546825865751083764717737287016212111982802592315377212926683076362851631379537092045228257009310078388807203446028163747527351810160505034295469800248652062381858518676717614168210949719086897772836198944025015910528184978550711138286658767458973757823355176315952150674651113016570509358480590150291049830445723340195180216383458656505045168056924257314868727896272230307244135372465736736903880227588934115351692656453754311985721947087505784611471417287651629900547823184358637611538064322438099499781408679105490278296845753919045812929578579859856296758662118569816843805439064060239726180161372939961159888491013428921637048320450534482783893256319014967198908236002149606744435933089031035114858036406183416087039303649289623634110342166532542098400285249164694222688974665317699572760788756714018572872716317136224080027098918981555467265254692584312449484451057885403473396786578977352646317924709181421125082750212858197718948133268633830119466051667659511152404281827657581307131580880958458191873677334688646668428028614670051307053838626425468903788718206868306994860240610471004932830114584504015002883384195833711334049506014081632223717181077882585397071213116519853753623318168153467149795131297722869530814773472635510445320563028047057396398284324771413751330355186286890700715328690636245081579083192459783781887502851275541546256423855542524749945276648385543281481833159253787320477507867990000913883391383265284918949564650772404031751277028233481134446342385085230370491482960109253571129441759657682855074149915731145497801805695715596941372671791547349293981849397944960535245691303025960115182111620664430312198665363165404457165670583374347077507684696081664093757984389557563087653434999895318355176655377364012396565420889017520804606982474492099922645268865079613360381205286258626975342376576933044498251025372895823993578749434300046993990928305996474631586712323732211686077716609851321773870751820586626603403040193023252380264831330550471288517135929807151700563248450415425214263601443812474118523501321176861520141041850715527307690759032206651946771547751024366777833342259453932379371669324413407968691302137515324349550324658210512538974329735877787943344056471420005187812636384373130777221392076271591559230065279609437160300034658934003408984194020127035711012376825992726955919225573983242097794303517796991938465375307660385155960147956036991827930897860066328130289573645619143615327887809193542545359492408181393450510731341529139040518883648307258181078881759380071121669678787433299204682998323217804140995241817201059088543735663744383819694416439948613325110911838539941978712007967998527420198406857730646629067874210044859273539130271419005098766926739029023902147438870980446352476845397797885121656809404270481775698549685587199544379070248924775737950582000211260615453059168649216170927235539567038260652431918821588285493763607382710203046486743091654211279297809670309284442494110848295925871912526296945569502304860918198590116428673576966059976758026521197742482124449664351017691408222707155674467267852125157761218183917366265259272764066665976094776102560608201137667939066470466218786226004308357035545216906503192018386596002667778162710982059863685046066317920744520669301810906542960897146917395295772183614820684454256377470513491946940615058104833263232799452759227646670432627861713752597298533715326877664782393885657608364374341700666450093257168558555278346642795817110755735378305443042006631757282719975107035539596412224624115215581376076116218393911388525679544871986875268259830194748965281460961629007117524952430724191189222814197277092861620647838552150651757855439560705223705332944082129015912453085671321623484602236106021846127977238576296553651857487953146443007855562458434323965291951477394697537363927865655520559046716871611565330140015658600702277557806473646895472386876253822146223194968962778261568729477568786425476462741135601252913084424194372728658046561958824513252950907615245091443269089178473098542229444391404249286783430235092022402117025568731155419519720122824636475624641695317900825396205784173890645625640013313979392443291586051946646424484696216313805140411322781201349191067852419909182745257440298854087202543386922122425602508188975601933691304509137254573010302281314950932770927189405034754704379233234210517762863501975344369795061859829725648286535671431735606963397810150157257291170620005683683344084962492000302205609705766480056515284740245963060420226058557998526400270072604346363878072209066577760153016292032254203923380085944487494217050578054138798136973511520539286116092188823002336523549951689890102133645528904623968304047437197960669603174800602147475079966886652989593085959263970026897291544447927127464815265034532014861513178345745686454573347901632029530458377917090728790994550938153821572649344873938162019647523104062577692042521958138184607204497649574920079264207926772137186250391737246065351866256278909629718327983052164560640765193408621155440618099937072919468746219606376796967278703183099108604770275433571305546840679916909762994237181887300287653619464956539105861978475428338641570027655633456905590340598878409111321570991444118288073853341084485184625934879245976337131291109185642574567023534382932438075199885367929416500724955716532023364395020276997880441382728176362025894453679221100390182540973817581013014090968566890306080226003791411412446430194321570545802587261705007166238317763220634755962700820616291324874571361159334611306963180051230280599555548511324562376334119675996863109150856801775730231724181768142310725479084515166655894044351306398069023653707408399116405001589870879088840284577786443980774734223186046002375484437317787748898438428318303659127907911678918040888983030660387116763811117252432080516314947312211081885791990885204283871984116995146937065127504164777255437250047927686425431240723212890655475886641007866663427619847290883505885234007160001355754057095860564334381335915782920909986775875602203747372049467825003184717403815492005125543183223839159462627549191149770690390167868907537836202860335945050811094986043733773017951084839228968642167739749162208295008223347824915338449844379017715649182859114412982180559466386528248248313499691370027953449945064795787910691555033787822517856019147218766905069117543235778147019959200100245769854023648522425085123623284987392479016729305736811574294054642662893715301637282394932231898599779466511891134003797569066978142122495553136636328561428702719082141016545720109396946069131212216180603021075438380683123092609782076657661846405947322606519944061806163214023909247987616806661849058472409883150122855879792947494878315227970963863015509626090193714221196582632273361794872214161214652755027128103589346013033775919065360656901608059082810733845700271109763459899562391716359601923177495108496491003953566943856649174783773451702594646201288683807709064257253843327282567039625223679685055236724437982397865727984939939659440276794521905837651471977022177621566432705149339617844590786215077520252018987005010456899521897755294090981483842222825573707237831632363071546834354076846698409848302588891047769587385964788686914988809772946869827002987615028465374485502269259750591995182763751866648916434591497838407656548531430163803319393161699175683360213473453315014060827213063694197657918800793414757170862611204990423064976042033849833019920374970241447535347301006441742029553265409080672412171594463005432409015909294215030901947813372964039726734181586214593138217359431542268410162632559578307976809615148585079863632312474048000275711497998318837624826575128945054551356135368662663195343317979367862106130536338745261501019824122701919703956520630062134291455906985954769679176981670461267066567872204662723353405244298521063718046558683820131080642038028971800635359595288477444573842624904657673909541943461606739801938822606154911030656157038348608226107071264554713903407505396173161705663134356063056362388285160231817343737386190109316079715583688391160545112898426107907539393359826367004613402566926065351163339183675985554292418361225196748726661608565507634797412266320230481641610259027119777536892020570140311749225958510144265043952742674033830249413069553861607086605120601385040213776861779396445445733654587014434716907934274133779572464812684464124641521879831168396073356070556315531014441313891706136601187899779434402034737884845766222588968159385333638779197074757032257395378531824820869859372522153681225541505273629218451590764147078809656899437617827960193575777846081980485088749010768341023494097366981973370665224229609937142721600084851726557566042253287322387947337804813094116382612154524635693111526116361068825579366919829541354378184102791136384253433243781340329990120641600478963645896497409127968691631272796711180367380357687580839258368453970847888059570999227433172405531354199318403926414584093280723241150522124769246849583164322055489651273171903797097719127472116869348960879390371080045926917129053982119766257397907756522348892889202254710936741133902398010975148309210283101344293778261029659032168275254398824198302150153891041744762196976303016710713174882489334250745368776110637422175604247907347562046862469897120854006305706539985468336563051014547436948485766883580668702536620750346219710768812473303622182821957884221655789372611279110019757605395141322209997400297328253885372161364039508081549536421697251470580464178798576130376233010352169970158314026739609384219489876558192547084500138171057446888911702618238515695317322424054603849896682696029617771691338693657455674893371409831294396062336489669737199811400242115028155266877246105341953959516340422370195748843908707491595506898951392433462916665244114345589261145013440761962847613498686395779548292981330206642005548471242230178168413449009313769197900409665174440053873139906884311186394390996099233978815128432486739569788114353975277471964724657925657855836981753051651948853299680089808373346498601642693847501420306561230931914802826607206525950355497488037641651715192481320515435768442680013771615962305003596475793986520089939759957600412252358829565617184872334915821496916081043058897403164489270202970281751479805332656240410985328989515922007892074121403368070459335051204700804951216228575116430390223753078849795354637623506243947069717866185811181630011464250528294002991868406006023417051276652580004106274872780120768387524656189589868883123348078324861450649489027168429190989443032573916270970691117805320195264697442636721395773791963894497899685532269322820884798449204174044241447901451299651292661296724705996252356041669788854025277257879891024202016685925607668246081877145522232735374796028244057464734938362162853498719364918839435751832574137943201077927415008934085388096058110683636969831236133603977447437474478329700958910239373760726305016411770897589285994264912041614736699342856914044101827330028530468134014386018449204648733158084557660892312634448721060521470804457059870449299222100049743972110449199235132482203849729086386177961457601332309203512168447134570030002235995118450535759030211114852155930190766295804703635212151977169288536414848654390650799264225976887870329166654769357552249946532678537328522011098430640093945616898108952216252567976766336973711150706214763787466739850046316301083596463548765561565739712614833666857185170585319859982097096496142919145169023771989099045558723147618270890489956737753771357309328203485894516040007753335044273198432904732653784631786957932423534485910874027320942700227163487210834793382322041456968967998032802884745851888861823580986397679552286147237443218452329331955076687580320268414047310880499285983962010117715007715837209338334818412793492857540040475017101000265954160593443443490933899449117962680592209317799382116190903675493540545521737735826166058075038578713423519427227655799111657197765321426560818860152172261626402246808443506197949299576860154065400157246605796174957797820939637411798548366373923474410412879490164214228325350537330768635502799163101807723383576475535979893307647383436237683498633977567318716644536820034018463764876174059306278079905869896349481370287678875303465034538448195360346434625508463932781391486679832714050679101806596634804913984934876076157487910692556409459454380515101803050967594880270448158204292765896407388709502156416962544409361914847274492903373821332558933472902756916350635982575376778933202265643179293123457460978506565799993847691351101796327173488978522161632008720583610323729754378043413623254405820425606312323774122859183571998074993876786916930552704578860726711063972245092620394186129989545190005572992349824556921226797427088721822990876799530650554057319100995984264460456475278540650518369106735257728620421467895833437325855352947037159818266140555661668009816395617908990661235538365239602791519833862651290267657444806965004287070276527565403354829325715322146851702791826169140938361792129332191338862877177438819969476418099387427896818868076599516227360794923916380909465834489102638157634251998478468636574613148643565841659178498536929842307757157482165132132316779739898087852172734657848665221631771646752136597653203142771554526079821861165357428307819648735732801899279171891377424512386704467224472514050434154185034796318859739823422884725433187226635191470126892997429283880680151411086115820287868976180237860562048914732000735120595647257762305535648449842848160573081766932037835833058892345634023489822057529688632656244017451602585028737083852641731418229535780767565338393891266387441485661895979311533507968288220675003072403827315689542768626944203718499416880144629752989483223224476900634841220357968679978756817613967298296434028184455720050485560719914889201705163365272925376153332623321727686390061515183889135037746033495058481782989566630256049461421593725409476716106000738588523074175777496618367682230975854446306831858107743470432609664674193927858833386801423944774802851009122345095313395086192076685637294553321885144581088920647909781450063640686453234361147575463383116268761828610767047027692188637034693540625724105216835402244713876687837610840668852825127497511846314272634412715364880210673118762183589535204255468741450461306938366987816648765407853960010295553536411136991554548983066307183096882679922497776461600851981169510877942192464288686212707745095532313255580779842521015670338044338390709224092435391335548494057948058167390980638051088352171760572299424273313726881357017455180199645120482825364136757039617414170563983073649577622677913090661488109637931897804533746330676086820175383201870311733093225621179369915971664772721348960325221341997760943770633013634819538251306647625683559167569825887836836476644583384844180527060346115016002894914401208565082756652363324507866372332776783295610769375440422508760091528485871363661398341546449102647265767212651328573651917496378923654164685241226727597317167889707520195104291012043233387883573625923227775960973299416068575408136981464755829493552518341838154267069496757940106592456726673669475322338058951851286590196122309808036193739105434926620342333614008836529066995470447215756174126203092078965755094964982829357755100041957960226861917952171965493927956285234577518788930324583564048552777099219125247211864632472566040018743876767356805936463093823748512325192244073023790836109948027446798354522605948310760612491156731223707016023136542748333713589648902512516058688163089277190189141659755671217989478666153936011777034835020459911041302267557087670572538178841776135274143553956943612339880023269232337780512533189862198857716164793996157932578720778017608723888424290956725670567027171342409114639851199440100488752504644501372111482587860328083798013891366248503558291847668584481645980545558019815828521034505648030559597558176251086965026403768037476230267043638630195493472358907298115192224463020663425345013462245104652112324636388983431450188637813353442887932380098087307357463388953620628875486152416118386355793680446125645290838599495730492310825246456005478478327775781141976252697074916201238504991121753803897130857862778489913961765248389883803337542454673826726623091174866436407101152187091531488658817934915575504128917987452824514556034304245154831760236569169520984381951715763924965964327952758321859371865246998876361294749062848239914131809479515252402990717508527573031464513947091802565904811166256047569342215881326510562293355045937758616189823205733407387428786396760055130335675209260618870475378397954758164857968333600731941128612385533861055351702223473317230415193127485218886825002727568931083847838850440836677678763817629264534303124789088319910083218768786173982465714342449649944339427591817528646411249000958313642435459542520199490129003842854608013362185606347970686744701528670430865211225763881368514264449757656149801959613509676286208404707976472757890540064436436123145623041913183592490891556282593529108224384445392988458198324885740014924342864370171724903425091957718443018718588952204169812754415098123471878271924339101864149366131505370340789707931287189502289558234064456254461248073844849774846091679327161194625022193020425147944524605970896742341261823151049544723745029319880838912432985279554557464377704568158189471904766579464647907229454172668289144193380424662550660735121922412394852484121034356146820977760643393405766120661007842657726383612630215564904252709933655792824682937363825606340940160528892927705407801356670401700777906604602878546890182584047437080098569178012824359083628420439415892997347883642226265568995780251952474282580276472045621226470487740986149120034855837892472762789663366997119580424478976956884877456697016265835106452867888739163047626926138541012402613768200828925482662693614580370479421130706351169857296494002101395058317367759667065488835198397662456573080593932112892600704975094950845017682349832737688751753082966900792639105172208990368162186765996983229209881205832197187895755728159995555886297884871814726305709145346960530358842395384927675334076338516492479624934529905915241592038214667750556679379463633873704946361982791132936967127024277586085623129686800587282465838112344896752835227411775848742929537515901200869466367134442306600587618204743673873164205733742607890006428787234852622249677722206842657693774973080257098686113593135416989492883219131982731003986924299987093548700667792377453500995074835184743035702533609575622083754193143211332037153119105644991300400946366952119434797392133530021297940706676181738181053400868935288505419446554767790761531103858267515660718611511883565646873311498013439536287909756733013143251116467904874627659824342747199052045339439260809118011597532164493267786219755214431541402682105956361819062876740459225728947636607192708368976299964274237601642633312173324493721270786035907082250299872572842491553719011150921789906913872691710382216642171975357386333670877620054279095843056656404867239462320554138553792570238434299057098972642321667387603099588380043007814657543299406950858655236087123980525098510123545536678536466591924159034732369873626607487064115573806842939544362911403841086687329392718979928742927292986475620309339668694944880873064438142179204472550374121426426323509827345571528718419729448589365472207304014752147012176208073258340735503185265457310202959737953374944531050321060369481434113730935125570043102724767881565570580478690639294533790719850183427078438726706755851722796332263450150773685300172276549041415531658205239193789548327933858358071418190858425410211122954955518759389997764954735986254170756017773521269591486848099574162269979856014221267608452948912036989427624092555913817638092553690604726599379939440152537977210443909510616250124783180598282145589680302562313545155950880469806035552332569000552561705172795355170521492835709849912046183252568915604842741864707642235948486064672564679652908663325219402449894942653414214406303208857321683205257728334388341884937674660451209115811163269276730996687514062880280985067541552264095530506476284718142142874266032872365055864278533040221528224585951315426279560994756462111079766090844551696812123881224404855420585100079708379983516918934041966665902538900468102711031922352434954173892305846463378144913475355417921202726969613822863301661768569331592791230528353650169683649915624653761003193142729723980546883771539455984892848474438012494787942529689665573589719700452843707599430137798692136626567522008404721857129583313496652770902840806206990352605286226907560136065873804770444318644162896687331275655054098601197416054593210112545564048342891918677176119366487304495775533881997966656137077066824922360094417440273906040238604020044896548088837828802376326071047607227879174916069666171226542363578028239309789226169297519429385788952456497147478517506931733672641454952340615274873916386203357365108955019544899029352441143115304251766592552516748544232713724717966936431242473208471966734289842004269599538446238920807505220808462953113571523093467548654501595135034575130314623701835745859890538409714056339589874429718769861089841058302260144110034213198938092163894094434084245183341343065872358929206952099083543840037493983971270502999121765423114678100087622609625854626920900326301362166861534083003697606889995632673938879819886310705429249721763378643715211048318085326838982590180760616034007227087232189256350576625499832329888933773180886037324407509798078735934151092958568177893716858424718212799753179114752988987800271605162741984434183011133987264590971544220636410305330316746090700833069926120023979881833428809431654243833278262017117874495368892785145352546179523681355729256348349519026415221838871348173791021230901610660756526091662301973626240640766137912487041346884446931926298110018915423064663908051191350709674059862138067677315668910104621265012948540465298267963345561419648272285784590693421337092535694097014060177054075802616810341261321926973882132000736531942386886075813657646884414370010419130618635420780753873199502439070210176675537125817614903983447438326068848474245437663195929162385417562990905836163461799670793816804895074312680314927110579770713285519096265034667416138451515837541747960500113717433765015778428958707807919124638623619996949431777642654017087097250660509148531048862238354274340007364381080312482115680679323956413576956887553688688947157814021754736337937860209273414704676338966719066246953922397819445707929805122043983190451085425736675870274458006752730207070807616598367177798869824172352236123040739481843167006932970374209006026897117095750294315226965768585164459044391540019104356100546000617725506869383409218648720997322809008957237049554548895854311257872038711815570644409463802420043300176219151190447711025568904165835833079327840494577083569842429643439975929489721621880307872951620482526756759167919914970741208579251432635362693698650848321380664001467242859421457657271709848248113284612477342725054191635399016059825256352389555527551263156358677276553139743708717738655667895224157261651648736452796017447553732682999559471957896337581046823235613225442608947750212316655157649803941831563896412502219740289313302293310604242687985735789466981649650716735035682245630032463512383685584988613011073691803223583064766768914739493410178920510386291113871847806270434359341520953652350908062995904385472674974921307645765732485499473441831796405511297438601392061356968552292043652711001720092455722166198731108773885220523549053999647325444312567689536840182233612533181586643357564496530318471090118428515094586638952134366829832434424930943087569253065317276170287043813245948256887293961640214673580769223397245369470347832448487922166976139982054586046754575070007297644073774312652816568224025836456785823184447410262669569499828932505146575015171348146580909100635260872590783296149553637105458721180558381883726940050048814135875701448148470530273618345315480646827562488636275310686169862500671487349512420449898714681929248941059864512053595225835716434649080280328894282833313171825593481297974206452690114717030806674577858365028169926276912967319645806254513603092534031705658424990304683406309915842674994222607444812902415417610465428779201749565353517207911539407524156608644154492235738833680934729176949925130576440324508990508469458175061392280288627034181059357011836445937627251207814997163209699859703964848745515634072422863300156687533282404048051671715329647695662359436408246638940206595675086622619510910501104463033709590516439082358819439668536574132550412402245377630708085376654984938365129822631954647056053922612326794811469144789783129606688334396520871058935369654912899037293022472480965152436262892389840803243107739921105604617451724906667398909422261340761345620749363844526989105148161348365436277070801969936588117214425442055983098624218914646206125026970656520759818293365696941254651966990322566586843357308649468465603584770513678898483764737392139613393166044340926497871637117422118374996197211220161687676200404749988600746582484838106745188741567169668486771673539137198078235000840659896167942550127014439101171195966766237540978772114301587758171957752653863196779595258032993353652029524110169862621896310335514565266133126548578209063348079058868754191720683431574536552997020400049823670919735312083575931296442291600911648787701312362503926861980626311431165470204225585098928134395795475023895972516947003981301150422242057037497435739167042376595877194122657066937181597043312398192601174680259123189217185505506978240795933511554011849089679085860106680509782394104771558922737000848955805942839265552555930498460279405954700940751530170683298100067390657451569711691438832820368983825559129879701232464778165078070539284430039280445906507033112354943117416934501208975122624423441635940309321745782403638224201479602124094793578626822268585846919897539618220163136316496018910109869330932230201718184063187560600168160636607203682658494406588250639773182546023314912008334544874657600452847466447408309673685089632770503474668644188864374472184657548883121087940810607383237372577815782719306320884093936544608402000700933758577168224381732077758833872264389154304550625982445815548218953047929737727677977937974708589362318146462567704207630765397494363377119542279401790736476795662704885257054566357271845317597839375466885275330939552362693683742620770366782678214245477372186246427434907244077578407065307726684108460809960506335086042413112038134004656240186486965714763961587333872273984150525893556997310482042761191193687688011652430795609277677163512341088837685916971567598661387294164931432401143340992562238901565981761947485199712262216399403956040186472755084999993414434942288704419112760999953364403834369526906575311077262429755940233068001959909775787655361041640683951823931771086394712964785825995158642954495861587543835144966465444483526885959357944094931292408024115223642933042556326787264145961833001561127027614833428661091263448055971466970738444544171984914809596674792189859320844173948127878916628024053900750878289094843943780023067798731288483353437274134233486760925428740758927250863984204439807842797891178669736993184380525944722963406093369272801172792982740968052679253760617899850493643616856079815373680984449467469016134757997877720372013770500707796939450163399978479720727575453734546368872564611379940370578521843555961746401287718366508206593861361659275087752901016678305550476619073466119608483783157003763640441938609300303558092583987376895507143840871187431624940340441993153913732675759804774900974559794842880899966149911737741320665657666294204600485346393485414432021679988763711544653052123488439407944158016734252174946337469232582037560376511678681787149475397405743123208887206697462117566403563726177005829050126347619646716416804695503502142097943495334191607933482892898265164263765183120512772194479221242508350959105629994319030507166434567736135950540111120429566616248817847594871704428791476726966880834958833652109459990745837037196423407599736347738940046571430663845749249162585489020029094013196091397136216178352752496811544899848745558783776665401967782738723472144536610408387785749033386717511020110599769621970892413820467610319547509532379899011109710163050293492011216338508199448672910152236155025256320678935384949522597687979234697481088522022990694485015522822319023646014211129752197814843173941952062044086232224296785454559678257226755202754340562044247556826562530624362798846479964325990868133139829766758880349016013652868359031375463426526689129076256597189963961996063235107718138835555977788960536828331085560405502783446839755874122410921468572973512255742971074778971202477285311960098002456514714705916137669770673582793609776542230427942498675811263434745094350569265420434193952543268865850906586236939027303602366489757630921255135590284542535639663029865215886368417113177986457310620334558083128875580315579426358971483104059118950012363426890813806617574022427076232833534195205650996376044052149425867967281358105850659818434875990045375890279707208728914869690375372274040108490157442724633412831173688415940464941058252039560446204325473299917374407153880230533646200401513338666387199625267200990235206893709452027747422247277303646414110291218892342824789673538497740690127272450697816268877391839213556654687871234598771569612506249095280660654622265797058344190488946103617986005724354560073269530481431124257415615462274034417207139921475101044539529250348788672559024955111367353782937644648791818045347262683531742135496585042935539367865402856817132246293260778602746502328265123215226946466719877699584368130939436870019933314834316915158505445587562824729624543791141526130517227282470120573653362629591470901600609035922861446545250341958146486592323113788520391708512513030637604276372003658363589357390045121748704925582166675610834983207478213411581440416225163114050447563566261720789850885454063759073911368642762396653240982926814831379620031428836290632218327344853723090309388834394729589246417489434639658806487034856354082235559229295452621596933814704461818641026671027958831527706176760209059018572081875974583290467847320654529772140083722392399758260196706672139820658951962494921591669236254357643622481328110912921006675146160762690148911593752060848018153637863057103294957533595062835015020035255357692901456043801432029721610723132780709821710254230664437835881501321357363696165705547341705343069531682263332849352977755799188370534329509779482627480201527206011708782480639600010681131622254459313092777480843913235005418088663673546601223502309766017913260178355441778817240518775678414340912582627593181150242498840851610282802904195734604102097043545529067790599561729582010489536696519087357476163605971941068780804226775315998445626161679165416792667853545982027649166642626639105690206003187065446222629068941108312951913599355328840082119856252655598805276772628007374773918009280259428099182659760751742808558721123933703195020756348837742505830503102042228170455033190934032941736801701959044901651595853179894190111804491780579264916044886841218351023852002299147214385043975261534004246922124590849219874675432913999712669268618759205448981019718575579400999901032122169061582532792045554119019432046097384714267617361099378491494229955471905870914604059784280680998893554661338819931968335365746260851596171327369526885273405078937736587070418524411972435963437434111199777868660455183942557185461928767432572724495906465187600549155656354826826111527890405695707706367429812186581720081175292707798454349205378436180269659351161917629504953458628145403599372267315034663061881639452833568048391103674883281611458420676380576703578396879287322323796987955730768171406232525168748396351781369016247531679747133118343598593050919783878565332520883577591877178356846512076647835169271180656041136720369213998231425753746904241010997360505441279367013289480208178222381859874974471513987927945937942352408540781936500319586063356088631939822178625832067642932498144249711551265804863530170116770311338120641133368988157684939960034626577731091068881807869355220372281612114532694062295504658573042403798603362612826494135287169096069504632314842327564110384348204834569336857047289624815494206458778032889152740789533763229303257137554163879836524061705132427588493636421470275718723212651107964232557348028371792194942076680376851215159758803011448534173874530376425717040446852504990569501847994249789510056834598369357520925381899179837934321989168515805559162494419531484667132608762055471471809964218568316176890551249390317458704686870269215755033181301778740513383331931067213530298138645081413285038762462115569468218854136719937367307166763661122670391273437269036515127415069700733937863664044999260672151003886772978210675938452724199700715299150480607389585627070401345236690495249384194231651222550470302276303785688381305117761969633193625540936467353395155555393481900887892074913958016632142977205873944300371702810298352556375944715462432238079810366678425476558727420062347277484424565334470473192990010538984286016240115123837606938597692129233050022386493234262804553908985786292512867518015686260127735513537320468649647175958185225054176324162007338189239430288328958473934179377567711933499124706945835244588316726146231832299580059402264262797295225042021056805401753473413789587071270191531067253834486685967327072249605749490736609747570555798692981527252261473536206926255012721234299621866524529044104635866411965681322386213192341285234493156482965587787343313640174970065542586731070249214419101567519527493055152121267904803981767420787243942257738081240608162567770510978634728774109713765633075159268972730219572204110905615880238688153491615279044306200164359275985176153194146037194209437540576200848689407650907739964413386661196499734721220700495733439378766256070294021529972446181637675612914095519488344155824010620513964985081853797437291105107045265112333796397823549195438163145975618220267643554062994508538003178884813319443621298337362618289778731047167346470538127803619099009198381379385511615605533683061862757835828123198212876153175873679317348925009883213459447880764871238933278887395412452249190506263301475551227885509495421097506575599261762210007050531294477615933542001098400301232701967635930395736145777708197138872512364525825907987057365759681778184591309434852900204414465172517837534725315666937816547840889042698763288563617125497145212320067362402385683852559337041879686338567374092466120608089657010175565253934971667713528319208396971364519392227008171009944383335369088015370026969230998528074237779375281641887995882771515870522918872842274590573102629297073871891151671582490318022248280523514414764509339341674332572297664537909951037892333882476149827966150883686420504916835493487050356289882247425352661780043023915780567588734271606507271871098386911691952812123374633870863686164017669233854196331842561887434045571454024098932262147273989099145992421565181888538592078726584838122550329443653147649320860459809350399968801763923166493792600563676164873626216400301930178870138615919285855016426384913030065941123017173120817821446001205745400602815737741478298731259109773915135578559013910273460426237152505061381219787140769188804570711745790072691221651596820822935381585117120907248247572049983506642491286242427733134157105898452419272959597797108622682743481439645328076242581984198147622233323594492081340607123732509578000111496184341220245454582140742233381347375535038689240234682677520692845514536273797377443834937927293820968656843927377444434812314021727254125839155387802680479848150024085017299623961091962688885421545305981379244890490987982520059579066405633009984594380390039134208967517537761422037802421336189672471627794883029199222681875666342363351286049121245903682524485615199941465214604511617687340983145086567666004105084391491505702383960036036011904397476411684183434175080918258947559717131474840441145886591123682723811812466726711598407317193412488232672442488059482783809435565610322427755519828127107084012193086677337326349494185703575154729687466978679648506156607175831735599277941163795712236069117018009262620919118783673253199023343135220681054948506630643065666663515508669602651626359936054724520477555967463933860079926873069783824557629428269287537549018647261360250513169151136615364432494645272107228864007484081888509136558847145735348593102713957928691253546311063144198961010620931469163637467332965080095953834385838321842753219887209193119865382588530679726570225373895932525089340517265168929134158960756717916136383210749899637512585218897245066885330373502906806669129452401705567190900424174724081466231620115841075313611301106641062786757079346965178178610630894855357784100456183577694807187196014747363183965738607660290960990403310273400643615830305685312658021189102787612756604550273236921606643833813612349030633004376448060489613584105061073915541398337394141704966511808586643057317664626159911166899301551284504398392533715863719858047612030646387897481067340704395005622948920167386728987299344157137000805779482024389186623957608935811603295202740675961611068975789060237991268298956412745901726959499926071589728991117429306703060139262939836998983610736653142433493033158376748355468824469493034075449738986232668994203842225283195417456452825879867053651829417336743321307008990476959034217661243164092072487647749417996333939330314805069849991446751889007559022157687959464548492728572334149756502728834183639860207554582316336685039363678226155714020852501214445131927417943130913416758500410662080061655367586053043821159819005874029981696247411267388297862629734200614355756785758619525985519457405694273008004305712718224616255361071122186381642821467290407473900313539256739272847269305355927669797702151218227495563113880504895191656824583785866179084026581480250228719899318285959181598634469501524765603219272599303844961146915228147402125569644569840819161150851444659564755534677614596959125449458690383394233342391273862329144750326831807387548854453310309614248185963688214309004195745737222562132767725144032847359814444617112499092207513281695297817875578544613228362269819238933041728540837767880406118570062036197179386064054549956430608303649566827576872758296284129121610623994819209744331879888747177407666173714842852680934919553844689905322669671271352093542737069247643269376580493256149833445168648635475398112422853259895728328768339226348046207523872030452672231719525518910861937592451732336881429935261044925968508659686444614650461975097451027146624364570805059271802846048098018227087239913157066153637421715747340106218598572582132124989027757805563760999094199753588397760594368441886943838716725169740271427112335161015836253896933772321143382380054905242901975326955335722283616565474429430444263013946775925224322964692113894207290487012533514699295258531717704891960760067473385431169347748047849624077692929482614085398940315063856972641475673428876866746261670503714278238023429062016576250293294091538104670962502160581751995800428186600600392659836683778595567544539969108051756855548596195265137877533758072180789140118128872948905789398703126442737451024287795583911513292736828057955136998135614367909197443465205697286228876554632084008274328179084205887408159091378665120222862206983306003951861656756791343472757883284011503729854481596258047033544541971007570606333720624612679783184223555626514242662530181312915662684573205178052686049772369293977689428984476245120448241503208002669787670108514351597980951203770821914834217170718267699981617744064187711694069970752299594857811782556446429728515062761982120979599176755998220862651588787318388516485238857926989284223968081504376070129222552386444695962123350648731513249975282343527628148682594226942409009602512819473312259812084992151444738592572006009733583668450069532963212583021127461779569884531515007643033927386664642343740345245877535067111499783327054986240724273652180289698273633244038390826388021482032628121916473782600356239213161340774465319313669090542918031214728297207795809355921551406976044884855104896873624167326277571813973106434820270180442833391736653235625772154061571476675801902617497758601091115951428339975123398360290103276181588512166232429993250759396021839934485970912431990845292105779878512640139215842224358198936452189098003183994929624852110048596827232014316647480232055480353973386061184069875331102128311930486891600496472686027599291884571300582774587277918767397253529546610963619864411130205411798635423252529788073535139660080711334000400651209804986018803303446316676589200632936382453003850369671827142299413854837271186907908887225373932377939777077815572520748189374164696327138314175098920408779830514459375801863268638468311072160077791895851944935602979622611830976438676963344245114573157946905894816026586699368356191610405238650690921042674769146220565207367195741865258713055652917227690928798778370183432392021050270719023874838418474302349484481075435472768548200396342436518932294194354846138449415919424796758956796806059677674497353307659744292021180590140842750676241101442183291600813549454381360684608313781596797125141513784953574943556595175752240398535176272234752965381359220405759865315584033974610788530815416774092965913298343406897904724123202222871765011081199886332643316648935074690749514940081956031300725247308347049166909600943906003208015313873000904640269725614340524913316026150701074787728754887231304472166103682206406531803780687282150908566738961038921378292758398885600819678734223198605849496404221817369585720160316188063679973890366414448894956404673822864275961155993289978158669114869476832169348863729092463445167355484717793893026195696369752159709673698241824626168788834328821728064379282013353460255042262957259578535211788075434597860282042970557158064526215269893865313146677887477316858195510635865716642094532428281329442917113745456078918317985827202270675698838820324622029170632425868256994995138479210427330622306971070951827902502610536769518282961958190545134225703803476538825598611424588557461356371797184187109218967277273806662063766073897733312046808450247491623757663821283271793877916697297682585243916005576278663059402361836315496969626497936837537866141630340585383511290704398603418941674113994893978012603015360347698607670125838384154852704946343467418405206058921489982560442783368702240765211394051251279795616858180391150401780601986383113182111593160681651477750036217897391491737022699479066207623111475699291943775706889100958978625884344958964952688731568561928092175759877129965251156260165292470142020252502896711493368703890250392528479161543352803378566526502942728540851175968584010994818632306410523967169714963652319337914015186005493662144571559838689163155028880014504045303058911328133281141185734876441408344892776197572982390951601722885563320968795343795503913942593336745253130426051722547400416482777541936455664952885229391096117647344815165957756329753639857185446569419228104245690251687822836135196863999460088642956765084415608285249712516516476386522597552062327248497019090323104487343390229258544001190255607195921953340198599106732124338415726481981423580175397111352894398515447415143197942179927075137647838934752014246600939678338117902150464511821026183334065080327424803417832788254171491200983577548227408421154007838819256341991368617900563793955049811976358493419430605465238827026081219261993562273438761302232648659878860254215834508533583574776487124015842453106054845682726157830968170287647394917459160409299916120729105545052875821671208537157119964040218291986648600924349494819956305731326234055764004311349476954388530484209550221850214032934259327892047352409717841176614161901639161122380908495172825003920227035339988148602159194515311420848529012319396940094300698620005213397541987130319768635027562910232464705652999800787135944746132469172591722882735250414778072349198116268763944239333848795265116149897788738472998205267226559848004634760902949530714389783249099631972382198889302844543159585418919255406504333639390071141868981180144851845704948661959961759176318095847879132080124018370087565873191882809142897864635094572751070770957199664824955707543954933192262756594132862182187213934326598895086568222506869745174120826160033447033651318682761623376151691731091606297247610695298740714023681714456545013899504777914734684128159048139360119447676676976756570457545368169268171133974503664861181577832679004225420984795023901798461707977883052332955006636335318310074512943039666279078161589561354688329331928026953741768031045610257710852071344919351656695929184070873663857688123651344071143427924771743695825858516553693347255267205926174016696773633894074240484275354967260539030047173812153788205181831824122424162064422745963234531842142104728275840003671599380900642598329679528239418064917522109055743280166624537342476086006202008815264936583372658421097104489599046611697595788983741378533713130970836297038763723368721760756542175470900594500940549526232135773694573932715617273796820939772132694361825776114063129612682970274767380042924124588686502259463759599899998814368001734335114480537344988671205661930876814108954438324464425981962477496355240169526315382038896502037388476665506822287459237125027622179397545689035544581763544295946251216876749724848573644997728265143164233586971195888693153078006809856661145841277064620909481226843669721846333439813544934271868726844039806353781000157414251367831795871415850856483213857059152329146576345300072707057053871222952323690112634364984288641134859206896931830496680512997563106560281871119770483874353208839058788661459116920112620999987707621601106801151500512463752265845582349147013046559510887950290339958791389891636205242088185183114702021900111095502154964076278899824541731402543806729035143305072652351573765990257708802365182250955281282891583789124590834235539152858032654869567337683826916395925930534317159375011006285155027890168713758686843103592400596849543113714228963824617069664515544497996090484460713236821213480841372526343897144770792566088850530017480712017330000539648362334771398340257777698178812860260776221092425792977328413166357442045315654292195349438678466329458914927959268436403723458299532005202787733126161166396017249876948846111072064974769666844323916075439203303468823207251564183850468489307634593770511915415017455493272872135898500278247261412457095581977558749127470691767962444978077009367467979234140796246355736374001155447717820648126231437524698136619826090616260144109138286514581314863955332538835457714261745194029199475640717116383057660093551504472929902402233315532446927985336412451943121400678447065976473669006348506574903685211972000670664154649066411142438876619894921722912041206929439445226846187827323616979553272337313861064161478141080286680944538769828708235149226657754150064675956745214390435576125317888965637666915063443826001047950343934896143881438826890644516699657403334933127823128193282686544815829968787091639937647338067579070110451827395146011192707872602402819254438764977333618464526091777088019425935113904133433753931609387523677873107597656451891640631867163421105259110863736519638047786682817799869317798271294658761336276753407329659502808918012688633875830607445106606103187186122358143729251323788020018394901761739877941368807017047186352028824835205600147328602811752451265114040112289798038592533590979308803290488136527441594707339861307929735493720234045605291707388150962301026716745503870010167472716398726898342688147779138533295811382383452082869703664709740548494033855112334432260327568242613200421788335282341682081367350869237640526438027351487264195747032701533688107711343159575731338145914854898324086776128255316934759471397591889511000875097837161226264558359559413542282435851868421328687421875022449828310465373893688074549727764217486587289841640054051579891179863603801408152582513101587973781222744289072188648499535242402479536859924108164506418734575750593651932158436583364815340074807368079932064758964615316589895845033697116118916326434609121938110861910801091480313752184256113039393011957303366261428506047527473805359535121764019172554820097808386313694312552464530829399809397305918690448382997042432775667017324867786689486602475325649243556061979324573229235568747315711399696080487460215514559716453085739912155300600575090062766377213736997107164138404920605437609894779610570340831096140531526058528489449667827136966290275369577935343947710095502933151452411616321904199061346032509660964880271505389124208274812099425598802110897386505405833760724732575120472375509264414534032080837577999086650634218658990758528015022195833071037134943701735829381625073687388050045275916494024054463639021152816723793002235953632291993042342512687265307947095881243904444185370231089248290258153323375718862688653572380965672933180556832300618638602088635122843156883036174789985633107972798660108936093416420177917538649490651972837438377072183088822125550798569924324784665788152207091986344639416260083051855650518525806174936385823583294187421301401045113156841945196773934900261969567528427335836220324863682377734829731771362365308941213345742834866087462859476669429222906978042041679851644592738074311761371237117468759747162666178720145531042080525329803292749388133572622122207386576560896266017083511017102350313391614252235514077425392211282115013912567930781116487869812585378227066762315919945703245814972337111525363200722145508111152211803189287182045845194065081142979373128223233293305581157767434511943917086601512423603965713003311801101697067335350676446828913555432022478396511381637550916331077324477341467332163241201989118179087829687448035580308843660655025727874786463113717708104092079713051312453741416740283147157745821930779057659773890741221031309655383256889264333195118176841126742761154277737622499215466921486334334854216359431584055189353222806441115192314511079519163435108926882232330402542887515203405546229079616750279697104907359935504926977426780783398381805241084985100661312082994043166786116075073963518302167549983430234832096134635077925830765890544119552503367202556851539903441530891685192884612357211912053234686065067911870732033321146255330620006992345806524068841896943750574986528765052471810509091170828758881872707085719717380896689444921067757249704120566155937198961012687052847186745319673119704082391238077868936749422131098156849034327761961505880079962203359588072819859304742193815884915605664423002046335828725751749436899415362485075684325626289045475295906097872749437436632132612207431150210689597362581185458857504921210233850417311437942605705754274787509672591929108639768811646792602596428490271234237994558670333126844140837346383951738808825042929673108710908263215760827998459960378960949488678388592379609899041076088161880021484272814246431377648568103440295898851926960242932727981952856490416399080059353275177901496677751701755582757991280938355119391550427485534067603669568379187600093637128003609473700824694753476581968335666024491908793754461872115325174954334217110140858055097470980419394101248810877965208591065164634296513870050267063908925032674736763600938405388934409840440941794592120212659412981025401644365368683423769089145004369964489710119219510726419117556646512237819883276803134496708692943064227508955152900314209220008227008904143448790692096149504234266071969905951906258010940399043203176866301252265666399299316729122330855100632755426856803049633236310467782660277590375510612070035911596347213220026109991934557057323571756702072570226814616948819368788079612357144029729657714214147377131359949067706599438112190644094011133250621151228171228915364794728904891598225154325039764557621892103941520786703095707315612536934241056056216197279652336438877653884125228549255178951359081259199919516425165754891371636870151056282530294291359775700353371108337650851236502344388923080605521451839105715315980373510194341999181426040766541891926137825343858357750656801176993639957011849737295461061076331988233248587152888367699882912436600740522156613056769163284682625725524028340916820416768197533983889693918837803361542631603977921309526319248161734535324394936751056293418067101582805555854857311054790786500412692636416712883701713098346429621782296794906910089850652179689851552783991583481997681827267913037072474398811830068331927789352359320223401717831986421499755814237271905737282486500021600203554210537618242367217513128972692051740501113181631718168319802391437121412330086495694744802412389472529566770011948976827978909485295803454769072790530464764742014169179860759508828492021342355750579388617216473095986379131000517546236706815274924258443193515776990582268849675011259372397380771410800128065744594039421965703111243115480156025160043682924065261061643847566433707160841052031085054920434240978362918093600877992828980119935253990206550675781425400881317457199972713684545262377464909125674027822500827278082757672283306142553344542930117961122078192707505513591146264513013752126927415480097974472518999346945571045930785401312143721504557952836514455454787756068327324199130076815015917766438580546581580178171733389907294546039175368299402359426448851066011881739788294176588673962520394852699037262148493438609451409003312078555628986349693576086334834012703779955198421943738788758813996146493254382063612423256369435301109901496685558580530603474355549166187618845776639220726901811408027067000460877307392604532239033676977181105139219280823571755345335412031511513867447746582758567379462945186524029668162036321750115850089401848774357273547504612376020778860895170786849699188338914092159145409260067352043057933422236938526381392435518803966684587033660296583252774335701878173385324781939857668564572667678435354284088840545160090520735823464765721090826548128007723120819847117152284088129680054512294654841295861023752965921576820749119878703604163362844832924331151340670088336012719270486277137002890218726703327920798977056798192721135837348238501623692286813779850466606924612016314324691211492353602412352876691667043475673301837526174299710205235324874252632325537676822742182855327329761904008961755550403848215713680089883778280216763750250749154188769068926413234125658643328436986567554679434178247188694443755433595106679906502869304903210498524078049400766527172568969597593188250874074358665205929457325947043166519549367260640710625566172651957101608152076004960819746332635751972431197762824088159631405622512647962809833948318795635982416279985308534112190925482757457471810374834586705566193006526111267965081967034896963853295295809089936568847951286286239792871586457546326282031200751016797685954013023486335809327539045390498187365427808282951329857050099144185716416791121271064412916737878734205726500688629339696533448956707218157320858304406179203198680446838375034597515740686186962222323474985517017141437090513964780810168646345841323691358942765293034968303816032202605171776321101300833228717804140175878881618251872181406479473140382725835365649794002650462194622551625526791462672720623599909974030824391223911301572628036343597087907545363230305087522446323798816203410859431210437469913802444260772399546402717939203207170401668576505449391127882770693152272977664160257387002488498226283160020210285131389560648259857869842329990505580009423373949882694200700060659668749280331771925402239754629210388868452253207275212434887380126670449598134624756937868504843100363493402517541623029644244284041450996523593864242218013504782047814581090190299166415905248867838695409347841590920309650374151730331725225989974239660262938653182161285272068381303550950735108538826775798539308620877583993867348970179671360112241832272893662574840545510982462968102126043840853928856898067172869601059004112528999003051477594880045801897142695589237315285172384696308749253474398434793446208796670831530551693921656034249361086381786786069805772634836171263366133363017108087177259052968879224651587730562812820515993707403278986094229078379848156413001024696598905954285296494423372736728866381330057624592122114274989181522458312254613922294272846213644302319373152581106901180694607765892482783177235750982394637168676354510505466876787306445940799917717563636873167583015487582871556270316518449528945465491258761259341405885017588752985296345601206580863299657271539765471899358818241931874487447162526700024113858247860430531135297805301596937755130484413547963729567340329238953252072495346343943748316949899047078172994947153040413438543985577311900919861222542630125392354903989261792915619541482379859472628314608616631513855526334797375893124834609976560178594979303177147886872922342657033823127729709913229313672658190005616877379290634979348390905218374952464100642676674732229442759810522322007086881319564135465717820424767463549899883656027302521587555727500270139184987398230321943911364168694280733293947959044930343720455499354664698966006765844510437071071602215872879202844830975759246812491877837472551488688896694928395482870611431829583908591641412854366049631741148379345719105557212410661619244125287992192888738757629004867559875551945241728939948086131974282130139359898173518373591184350795500783817254416794511167615879068451686005087704411246162355793503022659168335106408617276472643507317522023893125195927593863702845277075987962437220396327876809842168723998641334151724270185100834880892051793604248557476288304501570867138969968860297091407683458104174982030970749779678181313836763279138811044485621575463696213057971886395490167571778307866852852353379665244741973326389723066037363543173783001405667143052828199405332774517075936661470273039547741144845565959232408919152806882300607595828294078127679310441064100445567644762120374039797972235767069116116366046037551669966679673112647546831373790725124591292633811130071426410496783647771855048585477296930175638314262638430966684593942489109594866636352261135181541069082715126470264251565811794538360708645275192317675842796943264339608970627688818266631917325781956404018648468405469842783653329540709078514588738704373971616411034014312398753414593783092642023244739932348588893977583854536686852341741156787797833927625386602188600134518730638640534653509205616288555352971755211915576391579762096486237002745124690510335381524228841373553398495919262341511366478158372849384136822079287728839899725968222189081531664351379731552976057370108231777616265250181804936706543022416870689315719207606189429657154857378584312251860927197673110066549052304033184244399488927146832656284314353353362290387319099428948770811440958038492315272850848292251789648022849948405356191514540969075083754748934456719946439286891433527882513518867498826444500327085976615102644561780358406837383572826669399026883241155147197290412320995159158705950211878017414145421295114674396464300288477247193774362214978448401407567837109611939128673260767086114231321438830148318467042564710779300041829683385682656594841531056776902431843899538519341227485622370759436139618808531441615601651283506800085383317024770065005372997603448616590883743534166028898638995949504254561716192703846438834000975512425375766385417626970702629849875352244993526170562308284205715832866585309786774142906450760310643235095379216610379407444027861233046465167002541291649741668149534870689412611821915922139768955653279962484851169221117137609086340054461321710554225754366468120843889558077280233245927850122198996838397995623239946053382305863580764092014304467487824982983118621409637119463500730256759322448138701510313106783450355778698644471692626431819329399886045997962258163991292572749666516906233702150011442362011440953261615350618458598861420312466187062841330484115751071133638269640674978400710736107562073886099978299049272559567153889646453004320463512029120214713434721329149705344899974611866329264478108385116261410168941118008643801460309603487481295485824589939322314875919155274691516179952754259074620911914435154397699942736489191167062665641942676845533018189047007550016635318433287476441508147764371475828883988951430654988937907940173212360211841579575031043050179580115653471298173692544273937224927359940603367792109638322341331628797912310184637959047893075900757935693796348690309750517771249963059641517978387995364390892439057914370571378998399317267654843645738526514157368587601171421125710044169475211448360239095893312834940993792838058337601725481750981089711744985311035949678250371754594627239305917934006104722938816704594529725763271629634099792488236471223980540894527280978814868915275404206045400028150340871795440053451711254926766432242451754925365989095053695854330629726937938282610036528233124472517461580439031860502499899253832367319435526167537602933686051572789550766105387032936558366681757021772325275220894556023598495975635288718363687080657439405398049817869717153455676561477203123991774941058996365566798279355707916328520900350636072234564820272769240569886781251928426536041230033734287339555308113167215039734408779015585148410960055406229721078729332563860344456323690946995571341237036680213467595081986745176604081635834044307823669085729032361627522482014602595322054036707540308483753619271424243503883201165247222328564735822093407130773271870355668925407111381207170764259028543470384919115956438775690906010417640919942949565603470285679455387447392120154001120127214401455292038715385667099651831624920473774140472689375148851611364923420656627065195009716225462611298690999856039144719351518389093584711322111743785474587520899450485740968180788375112328706304276272273438190499351182039108441089884435648067448763259195716244029546895916617629793111342574641323172688560921132467401132577403694354580565467102983321414648295218894591820292831810318489805549427615007759208824577035396056514780907760943935215266492806262910726829075345884930483194249103467141394189009915193010707233699549619865468160614930760607162464913924047901087773309745050304236506397120810399537873930647764001008536758126186935555318889814708715143508584735593518258403225907830587768094116957897722545545816990542728136735991807076351761779644343812842625655566093602320931613123778770134749343398725189186776097791765914357455748941447857287911042996874693101352355330496650837838399473601553227786146511222525087585596182860671025415577836655755203725158151031400089956285254747636358363270180908704789258856469280631664543376663134794927500028145352043200340310320067501934616447200863270346188409405195601762413263232338333332575657314595799055898668265255564253212952947890869799132492520225861815706259697534339950102508948776725010640883359293317026664290262283265816717042216876706971349772681868500560524058173078705477278653962017217051117961729043920550162846460444629518862872656118581490924444776592161048602214292546440067621645125122462894525494314988624311215626490431721949091810604231246118432338658892103699954182938272993859621166372629504184560818442063657117466367284272003012922348384209956940014606008164466827887288021320689836646371754263800327157147917929969136576889888382661969571237191282950052552439884364779672577856654028093300910748792919685259726939751578856830499528964427725693865191850810462255368682989334834293202260508148378018594400573666037951265205518968481567724402316261675585829467164554500801850985920979268033684480186275506054421854956934902102018535286134211384653186704228438670593661895020338494591052931844867361318834356896516164927241260802226176541844978478794630465010306488322936748544755891012336517131503366200234815889016799529509552605086664570189372202550747657052685993442720076699389489855158751763083807263641457492858119150432205568720701002137222034115966819171758249958128789879597210064574672272526289800017967009037737526863070880378559727288725471440443862632178483083667812260084372618287896817976282752491094984935116156447886407520974821289605615653625520450182229049527374648711347544674722822970131383306093371990331170861715016889384791424075958866673819969458986931147387417205980483448738320617859880440447242573035174573721584850545607819964229969445552551472850612805211299420439181317821113896598443362858790288827850517786353920653957422129523808214096925206720417044234953225765989460358758214495324523775234197881599343970529349367218906081570229199140466445686094107558318486910192951748430956242888853881923886608872949158135952622703801570380550955936443923668506238000947572520803588191056653598394518905414035225512940490117494517327115572705080146300678409796305349283375973272876040172269454885437463890292371792559850472289629050787440133278129693723279044236405662481530034351068496722052833660590003953024008942412819999789353115647329396608833477921270020459218883128994355700544116499761804000814644577022570404852998223415666376674766447553534446951800780824770023800768069584669181697695567434044990011270394598796068197223442376361501479133337106103472078950694112474202556039047797117525284947838338955780784870203544716057314499101334754814358669583291156447923100105286151642225857837911894986861651282088110655213496023432279078394586814489822283438501996333243671672790483859574429885936375966681256212553957287635855759005573525126425365869875806261196878272836288856589467460415166474890788056647710177268228357687675570628852606175492747791020435447407424667403624810276242426754606731491464470181928142072945098204864088443651454261968707329593385573495213009657720150520596548691179181024000809915001205966688720071849808514385712938254436574637588080020272898858845099934437039304615346778270915078619676263785145302749077799246480211940889472126277272002579847868764974699489349728545256993583563750867826716188308321322873471468769817899208795740608942959111227610539030963158744779779377098248279954239642492283149420137590131831814697485062391825845510633585360578675948362847868200909025935732815925447881798898907323082461228445868779605764454021871913628545757237303177626978403073009768241862745397957774792151997174277222468887247935074198897823331416477857071730429104920115064984852023326508921331738743254773431468923735692498060572417277338041872306364907806349370266869650243525120295134830883440744601160639030636129874195026024422771533490361880213817841106311913420070784025420713226711916011351992438479876665378779672863270714490796165034602305266931128466123353819058946223844074396959215997568994383763990147974019604613075499957160188416983455448817458261826382861941896230577399580516143800598044891568030827019150187007941942753048157274709826300481877290722829170491623149758764314810431847235531824966569504884142454896627700764926926276191814544729024393964965601182004151332592924325715500082483370010448121450590439666689070162062230252626152862256732291315926361148997234906961957363853634642769507534881888115543990340022710687049224536350561680522062825559886890626501974360504581404237861909554143956160640034323950568790460091664320384947335217896339905261738758737339376617983058752571977701355982464612517520994940887993993418656207076123257639236824468577254790781084992264734330771139095196990444830895812313935497545572040483822452844737810503382789328606074988035324211595875633872342765136664551719093022107043030483538734847913058019297246418862394905605425149567072506542183539150143769690404840535627077743553211885841592977480207420395963178971376695680323018285175284163472605900945772758359545911288291094881852670058748107447112783129954275269866043332377868327877393576002178132288256919285010088542955755155614821992789175944712672691225383308832913617117440890065259169395847234427989032511337797591200711742146645257705837551382614377811841790764188522118290543114756686349512700631213263880358563271682932504916877435011946206824857398726479944593896639659203719493869456775229557734140856578183771883595228431509025149795418668190412868274822719441765120587468850790000997787480744008810782869434880345606063197738729533746790190068610351864630449714886541791243358669256842036771316196606296908071970966870885554769567436941913311682112568801271979313725707836199803211992489937089054400835530057586169506431355304598572927565752972097437509665910382191487665513468922781001611831348084842923922821521795416912163897011015011192564895602656246749174339415110294572804800014393924825097282408348480472598174076265592254347626992706250846519267549982649995900981663110557188992796368289089767994052965896317231200978932141631863698308627902486381651132962610114508681330603942181385859623622808972158224546968565173479779615188306786034381931721725923572112622577697001905306084742636488482569023856846744028004104771627622348574514834675375090965667605693485233275644626745379353158149158823461425350683739825818915427378039706537064410992589956838011819023417795802054110857935668521730603384298722013857078460319226761130828257402539838222963113300859220914257950197872414624538489244160125262081336159205503623816876396186606683948018813408610219451529297954677073012524387347107874314338233765374643820864614457173085805685116586645011402136614236202293000028263353020304589418081356870602356743805902980847990330835805799130501067707414209823668805442359225839690217858004589691614112569225275699629200646832395625621189472969084644111686135913484493590884261568938808535526338143587991129545515803538999228321031844978596861040363275213876890908648864900241458709015871073994018343086410938668362582223844726338531324672219484448544095924951027164746455531185786807987301178959671923728321464844321897116423801950801657301676241154746686252897492815673403300494334423959116092979220158372304145873912145200528811802258302072693056475407489870116072524702425639777196266796899419720043072862848257401442733258615030373473368441774384292466450788559460030776421857453055459822365593378950341217034797883908748623789725077832170593029067411162940668077367374475123584794156339695729667510973581407337620473899875172092536451746902126469085064407251091233822155703234118266390854703063192549095788565522936329536127093118078978523508407630293692319299774722063605862511145483291444968665043550434200446415945366187468989466692642586789239555020091392724473306644808533452852421820294371838529396933607488949786231705165578135734051896634119641678203234584329211858654189032814215746232648546831383294207540988753289143285909251793979977471671580686324553692561325900206572395955149630253630537364362197696616131503543770424150522307371093189577759201631125457912435821798333124903292099685704307600036850068242658361715036504202168095702040507489968792737006869689934572028022662870876982163426549138697040043417948156506832455848673455244457488297883899992575026017963893686022797201082647594400257571710913157185701670704729174434382277291453597892225632934389118827567514836035610742570317530840343562198223745367470188724753346676150240926065373779561962697841952804536807177977486304500938626402426599027274589942495391901896084102482182325202122018187540229480071130469433797777187273453635603824654321834680728069657537477925089157315560589627908267319675551765563164635318715848260908266419891228888588849227984976330159177993962933252242352864056154576937073296670833616789192552092061613969732316705289119032021104188624097333553914502586180778837183919332648112986793089415107233044322419741687867618447249952782977079281460790966589141638308226517937328660453399460548190288461657364590102849030889315412697246284142520895999269209846671286866510608102688434395492825901220826307488031281327656509159644352099632184429802400123924377795507519327394060193383064913404725059031468958061306806339163559511908748300835026731680026202525104601534219956901232862686529038554385935688263846255755690051241530285160737912564996249539399089510406696924406599183090892749971197080508192197766547373600434785681660206596598275214600865839868773521538074055035418095675633654400167206277435365010433465933253688897543928290974059129733057770781896783671758170968149080299910075676279092044183501403641115787164695566285868031560565824175198347145012043845513172894569210964645544288710742401442942812841943961618010458645047666832993199146442185162559250313702850273908920245591735361873457771186256810953786348403845998708586299353391120606328235702647821902853961136546048112753727624251975267228290154449063079197343859060949492272453195988998935879461565043568022073311377641831797196541075897221891665250467070347101183048184940427677250757517616123993510616781149269810045241419817513184491579849447249744471385271361744128731013289585296352496004700533266642225943148046930832985089894693753123369551345594867089758159289419183639541653581511490171201355760473215855369329686220298484727019894583651079759417022525367442514910189088005982154575032431849538064440283010348470437396034987050765424491445548565832559751597997724633677044985323179539483220345850971380228038801413322181648810115152699084213757933990227277025294819474598433580965125120771757888008055761176292050286100986350156048805106264893708188792322263440370266282695526821585095253030788747488026560812341912987621948206447921312633291880153345996118126980611965106676258469982533339758143827863765618632924813464069786306186750056762643597368900538347023603399139967175534407694570886855062486463729841510449554386289052956134204461152774652641624592286374279593336774463137604148155635677723897213165751153412975173741809944339056968820413584535054199212708920138732610704670351090643995722461030647295902167344141719902627781557537424211700440754582025560200299063981961625210431523736811158561363798119248244999071909261727173066015726385236062801738497205351301948421476836793824294085768923344971158442197534376268235594966953434653760203837197597568389302861063206697444159351667947616539923597893943390115571110488622062066855685775417538290589183674982871517390805547717962544447788496374775545648852939496972340813566725381091413118122249899033775428618259823147163696383761826082339025459789081963513583625329917396144607968430572825259502426858337389752130418676273627812661482157618500494953452401166665505877783950218690810945321071358592628875566731043825279092210653166182941632300583394327939561163276214761297210724624659946868244581701946785452697409942578984973063191556871474668922929884066083531020631130312123502118129157626688807907851898984424274710855090124594439679877024493083130379594179402305353785731467486797150552263843080022490460057473406392380985255274403134049893151324853676023397180457854441115572910199655043243126536783403875682065137205522925320577309653431922033861279955141810231563476731784828966665748201454615836424990922524195553070038562107923822149685753706490285166930362590021733389228446271304855982456912782639760225609445090136080659551082656153748994567253116674899714240601053416826486907269303284564728371708336442287971770906046757683524261694408009377950937084473744890807462629981464441284863891246455466777090159146671501572966855657382393425234342359713164341867354476856639259810892466868809309997470413566551687023239721792846943510903418819188149221854531871727018947097991833895236493072179562089502824615479036304463201548015676702420877743320720770983145306957390907797481489942391451375772308376225854071355266874867792834815793828934420608980941005986377661245011077254561364260602981573935273939644771893230487175298043542656423016872537350323865392751090601629664279012808894402870783901888795478716994298102128115428691187251892877721593816340254275660593796067499801130515647757089487375791705011549981499143623543613643336669729105650923605398436100948815474338795887289919845243575199299991228452017877125368910874798459221229459215763493981259234746074100178148467173643101223873837935811758503246926124984474140659413777191971727750879068701897809553685266050361509428280045331628406060704999594327990856999142321070908818876496020564226041262401054709406566180835161134954713861779708832333257788230982224411205622033726164659501630399991105681010285157815222825132081711630563130682241032926654551829163413186812909247924266466124133625045736511291506504026769674847300239860246100279600897456883800489305863968044645044402116280224250175339789992557713839064878226387643262654559425147952020688963495272417094985680880120123646843047425762912330003569107877460614731160426956402831032982673130109744677778196228336144847972539151540609435700564464478322893506099625497656366391539311405896256318975612123372045964212348043606850433804790348991284782958783056940938008689013103585415413508823258122725970761803528814676211939871080431403405053772601918063951071443525081991165360361052560065793313026993615995279619546239204612430870537838765029474457830736392848742896283470374042652466737691656894803135583616859394150189451497874186921820961717407883623499150074382247885686405433152144272112237249539093790375939842034629168861981187379096307689545881388144546571349971588385322192732130247096991721404682466935086644145983226607540610708338260643775846416068240954023173804377098764836409737941704633420154181174642419139025706999574444055290824391333489876759650279577227537279370272050800911191840887564072568043487814618943329838352888749111253578507970378766279414204988453044312131511877081533315059002734835286298907087411482940165578146757145142931792837930512936951622498417292787110697853468924662529966714435276434862015306513768381144841575268275410104888527607006177684890235970479600621912858661517861948443837274062879522697600233612227725965573746203300036737129065150219259190209923674930388769059359003815053537717659164382897754341428409497903425590180475954112891559539205729643349648266391895023689971881504797894070546351535577529282729387381185532772804182083442165078654304873742270170936049321530575291186717456707412305049759276342781825758044496390332976180283762277440796418034461149163967124557960793986190010491778648960101046007387044143293229902702547108681325054314042255337254296411252464038394835009151549896874719553443011394973270194803920053999670284681883021928721019920177887596031692979281954453385410418534547154537199126274974206612251400431922916520869985943409486683292248524379586020744256611560519306947552548939049226334435790246508280059753193820199843874841334240617868280327608583719570656497545743513795175397769516034509637979394385863228986446326348874094044174277534224729405821127764877102501802445648558766592639516493367650570185204564039529210034028350517301377451634314229419122311172432677619329800560633103026632289784012636032164392203161685146701268597106655862905964732306185536018385676927203558590443002573960441847973649806246508541969435504186213400245142724145649601013988938230419842517962578276425755101329055222153145483850430016597402420127010048015519825216778285842930726692166163066926054073605993774448129339191132601966339717212701327731534977300617495047937932481295546122958265509598046277871888394098871001954859413154338892239686101294853198814415596097186543525865140613235033943741736067992930521554309292592851320314444638853760745394627802475569073362028889746835573573736280515412698504792107938459862379763036271695105678126634423208743854116702748854710489362442893770083636535421665311232475995848707423227260079654485439212823674244719783770402858828726221969190127966733950558804754711398379442089522708482651690571372370701193402738626400310240500765199160300642660028894941383716394161260753259565369479081841620287314186833606505840895668757871066351740328407474696295467503977034989914806329594610443774025458219684343148586440457326746221823251466111049055177350046223353331279785890307461681260805548098603796722046952042926752617665897145881422047381997675092939091361867919640221539222539271364109716572913361138808049561521258386377696366221709900863802068108632725970421918546371334574386648558007224417205561895633354273668894875317036160841778953365163900314763992562270060286262223055280444735529159267781405765682555192352766350770618255445817878919798195683622879246378739674701459402849514618804537765845144830261993789132620924088358311090921716170628784119097378909987760702361568747956111270728640995997223988947468357889320051494135733853034533101401501438701716750847455154185577830999460314386466208578621602437317715655539746748980460141420922120224174410533447693388842277266100278682509888392061125724271942783972930263608964836316361195077919492312985653011085037353427348105241890848329601241278950708718729599320364242292862930596395148960995108641965445698711785889217936710273226286170014735390688795962591696385222586720218535497530830013115663487294652842356291931075363289069738698425671916431828982754284058456533000747017075122640298569000924626687861215646834070953551442132754775943283381514683027797367801253240117086709649041332160197302771280510954034118391921437386496671637148440885371157507343467072823552098371327764070912533588104330948443573732021005696521757097366111450082355999693339013160583995671308389037560447790670212678601150615111055152844344419623652038163407683194475787045972749244151102676966396418280586458963745000632393490299508522230263705126009840488648004238287148637752810506694924151452663335253282450504911654175788463364230683354550976899396820157107329971310420102822177007563692687903095230056856738714923963397663472068494140442024885033441510154297545651591145269099627111799362248059550456959833447226501657056977633485418517712492190955169309277412590194979464542470870223798143742256060481494531513879435000750114469340596137343511898155624641635828595597354304040734947087541170184698696465320427004348947842173564536891758501529991231746583969739453345603212795292927045832823434942099468118936983192368982509948582397867162583835337782071766453604994093715827414664189083218092180000183405338507373401313884194615389362421375795538673914909343944666892029538437050100921037593530833797010195341120021009229476133918574626050827096801321230487306638889089909018083154610677205644743440991025737480298912697894248992896086803010582590754092689449787283235005524891225533006233517546803483514149974041552924692118991784485832838615866912456571276622608882560954210452497369175198294960239941087405965575025361766617319785454416935134532746476957763758148881039793588887241423776205034923090160886371044457383060735131024620366522458103658201207129734825141142197202344031684973284569013991994780350408451498507940848637171036476921618638811174928263418292648050593908869593915524072830514635200901573367317492905822788004311192360319511550014812239384260283293780966301294708087299391962952011695626653262779534522143509303323665277451711610393591347549354127992143284841407681934064567757152765328307525066991005367698909037359771200373501025949491756147254364523678315181346735267391668285446463684625935197801199051680135754386404367393504194071797448611534192972648833147387160670724972376952139276011649934002961521999538240589996131552106848135826856640935751148255397434410713575263009862946440950366831064747734318590546507632232521911409332526715584858772080642356332603531452315887478949705067079073046908323131820672784939188670499787947892644558925532461622949972728551060691095203485803056829915475131513564270421550164909922508664949698481115280935011661156668208483090531602750631296389317718689080964162164217492934514505584685126395464860803874545736043116134274039247364216258725813082356219522530413551417772522853369522534206756315217175308499306654720344243373093174044025988027751880963469570393624397694901305312621654554492550876229946218242891658766049193573977462945227987933403532277844022399411940969422034240144263938565108771261802284105103498820863115791238127610992205860613543559253868715957818151024778063124557082936739623595280915408099903414461607366751032335397536174616425649336052947326850429504508076676460218463518156925215157545337596877243742823986882417494338795650092161251299645216673679950901759856439205608335824521600393869603057174150098357652770106444572888310946433689231594289838395460198536186887192423286358701400242410266512575381081405120588309123595316315164007348973274400118120789164939997288922844330013039963341341135131021876914473796610586030849038600509002104785122040346521406308949315680671642908886887586312613988190772801144509941941787341182992379490685032281126664264111189576858953367465733006863114473352052724820509933419355194822612821406278307781154239760675891266510742571362661432579517921178193604198635781415419663045966075118768782189561447860252868208999523811899729662544293599931380630203772914952063265589122393565624290735503290965602887396106956692280363395887082870219742163266093112175103264879130456129179165407284337647604592608846094179314704747644328510041184242418445215315901749252372439702672700794002210708529080620660999385789250184909692204952913338144020742935567302527087784581772799897012898483296100086527666775652340638910592877995297204971443144474806050880850064833379122097560699047835390934805053799388402154569947447957266276770400388077327405201759038885488100483260157174797015186614562423596925853939589222849981385020204961633438190446337730625278541244140470671412237344134027688803587690792835083710361256240804843725855523153896697514797698658049667323165630758491355738196800837712287181621176283077382422663774876905585532571643726578591250131202842602390253990770579412654650400519474188134380284814447055952803243976226900858083303575276783183019887311788313034796617641783993288978405427382533616199169707640188149393025987619747019845335043789934310476937865284436015088090177792291087067054774524860331799345969037596560751707559811859124199839683655392658374173561954232351949183398196163997281217035582211528450194336714195948604066777581205199894168548495969252213481868613673019508458633545481127332041432081250406417836979127501354300660617826486768457903651451649991811902048709256732819040279225206601137571615247799611335024590625163845250190731257980457742846534493820091092906802402369656136064524598803707703844588155380250114281517614167838970772530434142641671341110503303800578816483880874227401228151509952414101924908000552071631757669718292051367693385990849408249649951383201480474826973237651001801410466112142241292319039558295810563060132781317438317829868034496972924300169466044408470064899712017589878807982423347895596465224622699020947023846065915166538006402982458235980330355289141465895062004439559086592618298922142709894769051768912350055262790390100792739447034710309124098897099765206124250604516849371704216444618163670226886158509683305836452248674187864076006772546825458038870331873032664427942027721800592420798653959589991278387464748923074266947679570911231524068099445598419178762876485066342625310698342076565619564727811695295080903659459209772091128775978195134205351933358410307119991492526172573918379101530790136146798572047889976122024958115655326733266854813986312354010928724754747752502280092987126326859089286782706715758887716618544031911746178938747850519351277180283975866716042863792536833288748324194098418486186654965103221493997742683524665175502508892056796505111650068616296055556237058758476176259183604330115223046435478137364967686934520968697224006573525433937110865918314950575094630243058585734230421689529397556640182145555228409047951974859065945205324472636127186940134479753228051412261216372349634048424356471908968260107645857040795366729911521293088877624193035030996645923157802993732152314924668760367378965772312770970354007441572338350575732121974401985436648005103167384664168727672576991890097926767940283957220316667318478666929756697411891056797941652648172603550959868599299678600104888268897584961464740419597799196979047297230131890024236966178519576111470658213865630779712237251329928489847213703622373202767797655293846588294974109925885632950671272517847552286490656685713373105009838702792147308029776864022824376507349286315429365711847010753430111076734968977306788398630262226158702275012883596170459770119866898513808159428534683759162196279856275012222757101417786511926527464537968153434463110654679159866019242527015438831727167171112573921789374251683378758178745718488816187063672807134111142232290448259542266560273354775505737771874998309676844113354881748360645669361494688878762859284502754632614047313575643922152198006462623500261508444174740285292917165963563302759954956739559748057778919987593899887225003952130485765793447205440405093758647128665017979336442194995371122740538018243582821950761621199322914267890517074480331936370872639646608069155330991231785872685636507922906463506420917835903408991908438989573559644190201034250428008829655470158561969593086732916237301411264298109570875000786473368006190456558150898614469703552999181247949848026033314644867724949582957126405895148062958413576854571835802054081842175373425626694745670878463980415017211402821524333562671137652197454245002414854888693709812291400169198140060756370079629182210166321509410485982062076196928469537851499169502984670783803425564882524432545728286135541010355463001987187646900438152270781902105092674933680626345556525670714256192470833620228186734273946034548500913126100811481360579780639320959417546291072234265102537481680094410707523319628050764671282610629836189171029167756714247493643645063003683812150247988573032411172960831483353596215462733125677796370530609073935812936402640781801099006341847703428013777625271341331134521591740648578322083817633235926044358830218005355724010366146226916268328729369509140026207340306456325437604103504466058136895881439728200757599762937850004166749755933258827653264308786609131121171433795524823896887689800541958812126678304560162980160571862227433761015369712774875431719374476902179439098489813397271199643748220910488881348646717874856321436949101332647932858527379959706555234088083519403369420630775491595210185586805890614731018192487693978144888135985752872650056154536717384414690990067900030068697316045486460381074398439016331691339944151715787184991117568170667194075668483421905998608508612948448939458932915813130447040276176932062364375981606480545491282422188905634862690359372737449439891245519751079613920709736250376220117845121783451520024153333290482809984953060593727635294670773766036372001805215797935320919404898665460008350080935600469352094026627067379712118045608550315617749558010186065866707331920054331608628761015311324819535704714973457309156567991497447689319813148800242147883097515004662625510852200322611191976376355750160090746443204414687040900496467680549142001817533323562432087527635652461599987317225914967573785342604593208868850063064811520133030965541897434783288557775959527010220928395217492240710874854284942906602940780263644627890213423133995072931391318223263514887301919791447312162781853935285132544216625988938706321560219026061232393046725392766646651093905932760110035895162204666040968757482140760317456592670535218821968706690320840633975148628323685613960000854621160792472262584928796051927843698789711830457905391098056816654046322986186315042929269381145811779676431324816250897879030946578226439846932031231575518883262014929998962215275039781128737774826154732605856062930620639364384693105780018510514852019599538386381662429481280045001544352543476170546243858084997385754237390621600935766178924688242140330222999927416760433090301427547817234874964926775388172116375603796079115525218509169179101634279914328466367191250792267920768899398020629854125237637221848407347139110993225925503337599402072019845790338967446940385244612470276549098676238014180873470354742868605951523167087600494857566366842543047600765136025139132722527419246301969696590364274759346393385712589521162916841540282966629009761969701351280046407501709654335141932047144854755227688269833412188881750227408666023644715843612536986038743698951385169396987473254336643912051234276747538658462487112121977733724341165988937763521395653038951231484529305763004759122140425698850147773018016104599783188433189546977960783833810316527802753161805756200669134583907659452957426906211902318970559454042200152129384609112441051198068235414697942888832539452719624673679209352951021275872131032843141224974656838180971434499953569313722258438857152107708163126248249474642818237198539566957771123779538579769547327425679114132336153011748110070208073790690381408276743620460314979425750032976144051475491114112880169128682521405994030445972572908321279435390518264738834500931451978518020433998228083165053719877581545946641639019497912699445239348288951737414904520312747029795529581535613658579673164160836028347625502337156269123477444028552873028588402109045752286077103274713179868267760283159242878329827217157661458799830087255339966839779494380545764100576044335605845626629485689702655784455428028649369529531681719629475082045002299950346440916899298179739258459172240409981695672597807717344993551281854754442155989629745335434684263879803763071167765663762088620551236163462165967956512589616636365338232022956591832337777616886193905069249201931881586916698112888219948521205590915493441622271287100495026321782344513254688490223033006701795985853975606114060057892911362868336249494490993109345861758100930379897803075956705510686594329780217545721032545152101107399254376957023390261401360367648656877264391403403458554297828031009102334269456273217135660580779528668536993272016986793314124492011605820659672049936301326311973824312835276329972190160694815139992435375931634334212329660029489048740565673736744112001486687739697940683510938457684391810810584430009316540978275276179906405255822716415770735944361276876471433593033380827671423732048997616365147946306784994528451727506508364863650618249795916200926429581863518622289282168717846765501058307855074228906841537703181559863852546662576092598683501924924217269317239770622793131751434558625551346302134080788730772315104032528621571257543173493281322711385665673227875666570071720955219433587463050883950592540578413672146325243888117506516632846585679587159309795784586215214289649549429686539033350364446326135387057281196438349247094623203239805920770679773545708129147463566964105198179011033815742330969742470152302425700049776262941393227175819915598968906341276485839394829873064867657187497692860385352980889875180997598643613589858441533156634642348185805182692121112499636587458773604612696444621127354720221952393316875940780199661934695669432075437056078703797664000184975200662928634398058068655843832263865671915014961984220576897563050007750649883981281303106158515347039520445909310511571172680180805485823238383792878878813499164332334930894007814585906304709943967742870512509087451418162905928693058592342808601089277184413779043782176574873620862858501117248847575468499655637189725673441646723803182572478231708170836485837376432173331396137489658255156674702386924821381101911108714627848786678383070883238220191999284164320268807326329227731204832118619619822692337592324551305661805900143325169866207821469358572872946855101101412103912947371212538019629528542933727260899534066955680005630306950423381951087754077509832143349485757031307129257014877969000008530824492496728134294098514295508365257344279655475121900615627817855398641733709903876762747957490303463883696498434275415017614891887897308436273971022897133018333858660606665207696064877772975508462942383289366918258513698669180814466836509240891825879411117515806181862683794595702200207982353600672277702750857065938819988153681546841393529228834896886887387376748689768468945030416971897071130254717637155162113256789244169906427903347959469845916006630837856666856727821005628784050760874712143295854138653190304556023750836769501467745710155305489700271315844840402966569009807371261051261454798633399031313289601499829187179548752318910744770835237999845805839033964981233902068171089864257829589896216314307701881206040715402169671891552052976500216483304076380749330067075835142215313492384438232529410073952641319294330239407037006722870922879388117299607780369042923008964533816194946999691127056628997044098197162224714008758409416028384030103941101306989152552114078153196858916537603137916423703030900711244500329369772138051578344318641757044936286293741068712410810119999535800464508693008104001165373179157415048191901945420293940295178164911011125827095160856753483649562710101958383020322729959868565854999242384132324510953235303555289429902728133460795901432403043121131846232677961670354719382429641926428962313510820390620140413146781448237659133257566989248798516820854357585675652129998656061427367356047623002869861836877226599774010212779831448051355217122543372163372668559689821651261081536975407113510460753736397569267104998656066222110216289452639113672674603345543181341806590587515718326293036485941587456325581559271340091399728319064050811842787315959620706684224225903366566032073727456835092925319918065576692531052701443132485344360214069970348826719433413326482167496460181175601515735840808650102805932068724665043494581122807155127527164253439129597021862930348243806816683597742889346216836617010645338667299648062258054688787723391513027190326063420191343562109934876827746253458492593880847698786508260076517636327604010312154554674131427098789116015482220997421957752181955866109953731088307961804532129655254792491152251593662413312750847590191174445818257798789900406084690764516279164055694315804418581176680074484392812550900945394476189916363102380874728168629890052724975204490255116562572011902051746112252127453555590474673900827925397231829679070702326004257431360325842091196097829400926064707845612964015730238727144290448775942956135134328627907579883196447028701134315029503848178129965391432466935489768763820739279566690434361535931532204869380555634647058172589440529383535866819883994455008341862448760185655155569694065616108587745892075393410465643063396712214882244526584305291208886474100138599263555080186949769299561169569870313481997194072472819438085135510616227671860813786438915468125094918602017103639510678007928550395887447922741704153846767215113799776850480006905243570750780620120830630468989198922892271772837784252871256245890493627846013948332515535508996333921887140950318380588383655917574260584754814749039691029353871222184766646621920754144988293753069395260721523558199701637485038114728485549335931652867719298207561230034769708012949190571271185728840641034403196460927177158006587646377410364810467163777449457111764926445505809053615941358994533180755725585277964854625767830178787274781019694142465552716856683888847924155048727673775792573047047531382637678260857118144621920737513118499267386986483402511659956140971936784503416674409498327737494233148643425310132734812255621512047469980869154648184388011686065021222780285620009575610089179274010579575357146755993037544308518725429979372843601429339560329143373878758197610928463381337921178461956955005940298559920746317677141142657420246511304843849656521596461517556964407433945145778576930622287497440883528505788206775378235633332946249531053023220118057461942768663359907374310424971924882302717145024687272220525066741172449350677026267334758608460739383283504337863647776689773147259522357075656369214510216331906000195342095274263153376952955062789543187730430682781598057265687267309858426729688372316026578854589434677573358860877285361010498044504553431164476452527978081914432959877805980780486754425977366437475811125888185240848799958138265547117023947233623003683649588373690565161671377573851835309761347661324772618098251838635995932752283969046740036858212724124476820587153673147495571639633241176511955381986648729004889496573300755738359985428063761690937297601602775794336599341426141276224597899112172906851776330881518871740461304456643580080850473840196827285357593610684422062077432255344879256207577198353436576581548717923849073873190065946019668282124496880509062849649672802911868828921193877806774987089385560855191997804763922593586612467546351910531542136096834612297860345946538821982496341298132597873799246757826266777663174212770018050116174542212045246258235347867248149409669052653699648771093086289847416083674736912914898402657921499049985392011357840940246644148482829829837744309210432782980452658895427278624994415727902463120750950442018511573526217727802042700128355309876349133834416575608556381857457762763197470334294840800391757274864326116284389853968724574588325759016398949801547247793361497624401373444992244573094836269737665534037285239979519978422757516798887388348474498787111203232797845918498847830361610047295082211744176774814935623556426569700408571999328311144195347666091691538815459186505606565214568800466383264767961474613889053370311004982498946948047299529610478111796872393049885879348389717467285603533195284323928774026230328736888147088385980606552458567536256127306330710326925501480300549523089807923980294435236403718152671606640013769464167624816405361019202344135093835574972424809232062390220453646880556052440933937612085648617976742955655617954417696299870584151494746527349782845391069752097622029795136476707124264284102978459066673565999722181578258267201176024363855123485176503516602109463865257938441166850393738827404602857090997167637363942094173852929284177987198067183752330679588553546300772540210662276521249312630956783320683642960962203849405743601041516201018524675947549777665624001402999136706992584589276400332578108200555768199068607898801420334169534052296649864504603129733012695531793880881678987254711271061080342540429625567776229395763668091265894063045721689728417586412966755849270244393802080963578855478457192620094786357916862626530904582290737127201016334228979592750747915542657452483202959363820061673686755012248194599904193122545420984369264184258121370198414013535365610818660075857707994924382316938762549768133812498979281896835647916678442823385197777026172734603178771155818016793036570994220265001263211288123794177413642756220008610154800159513205110675030849810371547287409968849670456884892450530609529482321306369758872875416095378280018283104733755336847742620235441975347024192633974701097353048980052483620594669811104613835060990528182993616211575273068993008274861302425967317651970111997672306868121305313633115062709856311801687134932958833440160889234769879558615485028086233018981200212671103751844651281924182663820973450607317164981968093570073511729162043192533989827595125503982618649345635949227781103671176711920304481580919151084149133425196282239889435073233599901371355681791552222484323047824446633688700832035978284955299922711999060718761245861971311210960796119334247190852554181495395323793080466013748228982639969604163198140700842454973882548996154287647534325945463841754536445378938698921207838877932373017999129357459426527150065661910588438074795322475637033870941204550175081171698077501873163945128505185234749496168770924539721021360565783770467561919646607350421268870330573512114767661302852337331751307670167923033053848539528223381753462757113422122347300259441110585298586749932433970304240534848289574075374512054582501031612227910584121796005296153474177606544287840806810958070973025046010626924058968576702667572844998748321456516161240164154407334118513334065900398662406917661136396349993311107524140140725534072548754724286658099599032087592566946228689011740987716799236583977190322581978715973233136572866344025144339873002740068826006428497360651397697241000748148671712351611786355674159125452634062554622213617340809491654483964344605021288813996856778669875023640474162133234427910816087548240359884694140586634984293361942856292714159338235585918470773701140047465215242403446474545565693816226363472269535772786974333776233058187191783971423186393913415311574778054612777631245395792624021854618829475374257666237661158183890516054098574958746133006399426516177490402046260771171000297179872055539267989176863936505302180502222786532557306684718342417727879898818794189993165458905904481013391316953931466941364022797381809655167864460723232292897730062266375896179536912542578190779710144801557324799358757106686227318370691110591605002063982492216482709198280244512737182499398522296325808854824418023753686316753107672093420828044947018692626294135073267954242862050032959135667616150108551569054526197713676029922345435512985038645081712177547964191055182607489930548345028619466402644492395367686190408055458001425435756943338161476951161248567165396355090940295398865159289134544694125862643462222418351849746708664809689348032752961934315810300389316246555270955939936875720104553067215198032845960622970430610365170348819217231813043128064307331349808714036402425274634527703336291005947549892897947986256954033290895125019346840411939120270951610479017215715645205941308895001809737575440576569791782477933835004355180521504353566020024420844350217160781404135106117341492420235138316879731483220994557265154267833364630121931880934788289628619263371747056930196793466468925448909985256029242775546009340367616094808612138326280767046268336630936252008796150088461221924390157538920542851465351921111115361518966241768435801103930982304569695538311816063602316071570178480600070571965560736438494583527400263821058962728526387887129180034753046326854971363133151887336528263439186729800134512662085336556328582613412481787082044638566579206549755766406812824341366245762119891604301483442395783965211764162010572055558361295021366873069752935820102336755303615427644599362025070048588404432373996999765724757289653928658343730785908149067540337606964755124827275786195786845210962764876278143272073478874249274701093599435494036768523662862767535147079359472700147610155465110637423201188212764755269891727326610944654073229006686141346472662431806690996378735529764598569143844421060922331822471013351981111606286419683151582698909591483083558034222763121921228676118436753890726173701835290579775026679176086385818382419623519888301969006103817556548814424904398994348187617516100546420266672886368473834022223466391635980956466967388735521594463737438390322804059668525651558267899213295062123317683751609693408786821672428126906466001463559677253186085519303695691840516302026491710386004214683240643379038086561323004347996733948162145262807520905059979739199282738950903760570799858225369049914894352637439399676962874070846616463509335166662979544955521032634567183750336824539600149915378631311737783826377415498149372644648074115506494267521296395619704290283781766283695758723804258456738229138572278814095758179713060028466476099689386471438153554314687410617957573249752930949346369745992425578895528529531251394164653572539343866796443311190329594723151257186843031130247441315191385099573121581101521341858418773444324824250087822481342854751189444821988857204193601606249410360571966324186119633178596334922210866373164312096865039925119138847204905960242592004652876576581671437212982831301940131997032889602963808053978239668498417895851104073558431882855850283378494815882046944337473216289112933656706608641113844120336609692734713755853206995500467063746260671576626404361227640763101603290575743419031286476070792137469420261973277478597808595996126737553722549702427017000682795700886784929882488274824736478946324885348848737879189011922527945220756240600527040357655772952212396119913829680851980038116118453693594197875844694159052303641523882016035267170309062801160081659225412444178796001848164307813575883755189206421375914703565366500371157396626708137823427999733994346530915080686777628255417999457398523396225329257899014170234313117338201336132935451112899850623288629554942697390090469824440449997695768608357053150819995429794400714075232037663524338705988554002266201948171062149706800747913752232797514890081242457310276896724231906472823597509521745987594390798555003423897509782298592500042902801157094576132009425895833998430789752811416286796413381652084342578011303735477684369612226359542681319275962736945189794605246014790617045482402027967523454293936419049241758980134333557978416772786470956672594399333655694976852322864871222176176168915376844230003995887681392752671564390867145226691963492180749259185003066284821313401845286682606387776436417867294012120271961145410430353198470457105855124584967491720766338562015871329039729395313690900304571995114206091870628662747634767180806156937690840635760064006115559109163596634956785611831933491040798086308173014053799798510642108483538899742175070332609667260317286393134868604566245060776583200670834254528093008557535897189465814891454460220096466979800126616273036714662461209505324882593936990928904220946258650606749954608838989748404289454196349883302963085955621336930447455973136123985039671229179075024467853761972295201431887996943479500568169341615783409607568604460781921158770981476928348167917919490042893034022847042939120875672147098427118124048931998332085599385349659387758983456749722026902805047294879777995941992967245596811898338272781686159541457770922559621185617976028502195863439438557244575006399179500466508255543414285749136936858014430125968249794461413787317812997200564480801446809301011683473751474773102627028315637633291267713867802483289067451035208173107356430206094400784878449396108165954722519679856447249227221193115009551253492655790676655225907150319357293668563691263538044495894295437980927741529545553502151342403959492191724977239776496548100899809110099601110250332689546229556815166860271853849066840647027625214947681863261976904686742694040344531029951684471169212220167651000746230145093649148638036806391257116866200294993401093303408309464517851838601632057609709587378122318631795750428375121825663148839298866101461566603010922356361968862295033911801464870308786682290188905014129175947432673772097844135457128496652211872940464154770505793389600520831658499917997052618449430338694403828271081960309757570847885464782835143263223547120310655011719362427913038079534112579580901720974102357011875520923418857603461866634325731243392546480397815433484721202925928511628452743568778110248239512947972473338843467708106299701032885296914696490770441955764417814433303857542321859496277943574224442816673697068813772183775791588953551835708771131131682476486938226164457645547658124134666987946098248091871540868616426159906320571528242405559068860500959333621555941980313533219843369492517623054214172775249129707194018215282315771226660966272802723905431259200993357680280841782614319531337821342581728942166638831161373912348302236951639613470065014548886835930315144492028865487702160537336248381651026688326591045765828934630234245530855975006650505482153550877719350068122131191992835651465089313830768921363981168084612676983387254586939914439856741856501695017549461966223887862369033508257183770415267268577486510750942057701625637596931780159186975897050458920411165492656286984848395752901238920238253100441918178048279976350423357413541101444877739154366873706455995810103197240718696873399922217545630032462293305515637195031887301783454832135153713854596537341290675537673897195275934864574074063764754806413572853979114149048673146914848983172570620809033709851086864379478512354557005118888375713655576580078666493268475856752402685756823889313374130516516938269018074263076059913082797650892199110553903114581856383787664969455120890631725886899944577889176885202993522939917796617429267465321491122928493338412742204728137092563208330014148154810770209046107810536780201005145645567458425608745876170883811175108495566624617328720491417935719526620317207631608539290483800015322374584944628289739064650179768862046436227944785444098936087194335288458104802321941075773381334600756555566753131022791808314439341650982601173711846609012581050097278275838585334864303417270089291933544949825088817393807111476657679415037170615854672630714615404939628201594381694221554815058712736867249324258514256126545116076708366819750208938427963006144144914294072058554637900325304059688771891086690737487213747117908539437576276151028089514439387634907029309042400743604044926784901439460340555858497208524556975058197212724718022141195616305189114574535466342611315031681669169544608346686952320702206232491941260605295553765230210312300186376330594564849535753460594576859373392461303930619306748509183713713591426664113178821354869790795306084522718460199355135064881465613897600405648269264936713559810053062095358692373929817999122488686470399993487041719669678058110070897735302525702341702855436124122283615339485279879504134410339163237673968994170555955920621433073225826344885815198248463892933631168366863831859585335370270538160745942695053627827157087866584158864576992393387420844158085798161175640400595924768928266288116865111140429913042959127140972239545611833470043132298112180807467908213865438058850460066088096217396605754489268028769542721722712385450797921246538631663861600250109096228055167789415026991676107379492299215516237105559351840548950181249205978691566364694188034767324765339130111219137960625568585204379136185704060733537507465547726618742596492253167722854916300310764155627569817046774743916268006355394033862624148808153690571946037669373790478602310703904593613796225697492997136994063027179299115903353739385799942099686519245738355199292107693352257030737395868863649030222912435356221776669971609480168537796434009715779542262024580056847284457885851651071887324547492219731236384377224383159893677276185972987260472370125787619569341284745574647341805261618101399916167218974181482731916974198707495543331322104639968437292399485653415322393392590467404017504561666079382358189430726236690962468161362935904948280080468229826649903281209615891273498150993541762448093239770580083633594257867150282746101775162855262079525408536300458677546819061482513770178287034073211830515247154803830000511907093919425097270909449337767985699324568982861543963242112271056221751820762518912781706182078194408908676119458797535578914450774337795686522707660845989264776638948714334953115217960500320488362494944662559353799409539731507909488245153460367485865292858172996967143075217536068540534241744850279837398706970288978314357879045800395922453776911610004338397697635671741604005988346421344820024748393141441600764377241251365674029059600577551230918299679272594522091112586180917332312013687597785011626323791066448940333723588551714243552760582945967127890155490318431120756501301709877016227763208904569881990822234271944827593376817887220690706345438199728177714869200975947189977020175542680255419886089913447506604679253949914693452970166055081206546958398757271087237323462463020989094675161944759795653745079062778560837728260549650680071143104087038687077967371328912242889549862324234910956853955243910651098887120587424194327674778472120847406259846547917058967936802721521726615221563820337215462287645044813568373138723851162247721085293795754614087700928424578167908147899878024612169848258790045582005724510393489020965910183747160556844545107178239164196558085420062969724838098662236976347803171682294220477872212758671592933016852788144525021408458914153483570731068816113755183647819322843044939915811333690853871564337763335335165935672176498374634822744026008023361219636253841361418044729390080888237698906253226737333260139814834449902559108075453617523153240156560074224089419504384864063360948868048395889618217812308314753493868169561599226941365673827670382734731610174158746604383433965740430560571108886927563014286502109868349760644728575081502464404539510436856011232181439936028248662853449678367351914195621927150491869883369373249637205803592183716971564329829433645420824015503963677912142279764851630273806391525214526985491955549860710138355833362952938248068121393625323209596181252843288504158471460772670035280591461661047656285026612008001069531327800289291340059809675191384517054699745318289328954207208745413742154749704516175153555707645668716875417110712836682315835536264362506866228515730786364893413907935209107872692342379462056718712749240747011824589663825444908281458434087972877877000547822695655813247123847476036662451473586802535413048764265169008332067927596508325712543923375378210104088268922096610809387097159145609460214195956238213111588758110032166634596963692218969661536725287673146833881888548074823636685895427435407870514604352780802479651801535508715786556215651082153825613470333767800737783461211923957155753380938136843504592050715376615548747444193153655406818084436964449474734136751122232646058176435822320634934830539298447428949239811575413562687472111268218432792808431186848565308997277018762791254756383733567426646582268593516259209371944321857119905538235239148492045885208748438633961074669274172595369205652129921211431852364184088605810353051842282461620651955014390382710906340157229584432102251656108159298828008082275448687472631502479719966509099339831595882614516542284251595421586681952835726214171965513309320425361353053179722304601064024793826744845642329202815449267438098446156007079086389705012261756739980249417218725966037201366508909871845344728852962882695625049908165351074157386776012224185682798868419506088777088878059879037176166347415934421354502380092420797053903237427392252911716652484789872272158749939062862957754280007327557582634223264859716456182370234823191955757006223479549556274474229038707950020760134299863582292919130942647435287261885602716777837644462843903381485767120632032993372940464446522649787203084028245595127810459952427818785121865995109957750161448722671496255620181863543312716501996909189447376884864547545336855349567542798467049562835284857828915878404591544799255424583349578425118984536476358240229947583702935966879676163544559376360985550408372588765870841638819510952662242049024718361644854213205072660756447353136785351563853153536938219612956449212528314286692770688090847205675292463244360431230202895237515585609201918526429976875618345609202208173662847128828161940754624470913531007574973271139104005100137932721317382077394616482511309570165417826626100896363625993594159487015536431829418733885438067870988578059175354067045379697848581578311581735279412516996845009715749973215040868686238491768213416690798206120334705857792290117037370593444908152705378941046126920180028936497620801832691883070315505886512779478569919449280447516252034777001521426191377407452527628947023408503265146945713946063922179604632938320573640332562277720210925287883381373154950734259122643220752305564171645798814500797717061765236131571366004274390252961025940801057860952177578889332800513958072071000164770304679150453574852903839270172946397042040841453379395066507194882206209934389348029339414236970374987925632048735423822504822574924618930350059693355607892970030776275401786119454860706913204460760527041440177781119438647611813874452146456989830095426678724648662080778718696373807561341469043280479913482396677264983833074411086041193197899118935515211440451173179624521595525720871918820004776954625262146112975463150011828459800612050651348951671152204266037264869997466437182604978784271832678303872350118477456320023468963977395330888791560478097170737702603860172617775028408129962643712678552558439052036074279232518158365002364892772513705234908283735571643286090625374123734196305261376639282797284304569288908069151677652958775340443722434638980081658741630923911757710346064683479740345366823914073504509676487642686812223549756593508205710320338837074990382831510337644342715114163377393251983040037113717800262914162078203670007260169490511677912839408457159357974844488693396542024403794564767439243952056092258399040100585514266141863612757737945197955335169631070078192927500898441164711554952554461641230350219186553942504727164703489455945112175038260811904716054734579904206490477505218604969406093469789906270988899256532095383569446532481943002977498634495312614374573877014253430867298554426076042736190264199608172061504653005860438316447194905127812410202688319310778994518336736570956213029339482684791438371399885229558328520181961993350029211473654059519263844109703777421037164185319577445341694467386776752118438496357525838448076537557501801223854945271958144836358022974427058877318468526009806436583617437053831978484804971751036000008183457349824907119935492598828394743635483825465451134049868534829454409517264334318112437880167852011060758590604014628444999489204096929867049947691218455530135882697727907292135009490452660564992127030327810968944659714496376631188855205160792077479664934321122711930703732837038131248428175776027477194641346577011206550370140428481183904525302350901040749843102481211848072544223528828063208129635252714086682113164577148549316817883391122398310010979502038653271645195747772939866855381268086360995177193414897281489271337373400547320594884489928693640439663022193411289423048499727833630808083313130125302219838014191019049070610148490058234116272727227822722648352617745338982082305286946229112028760543857373007313547822326938180041996575768964219226177121578642269171547751528148546659124673517149440980530958742365732135710406981316750321471413566288425160395713728771654412127299797746861660617312519871707837057991303878282345499657300035673818887024773896131572783334700588424970411633765354840240230100717696879774806742765766640367228834476114091604961002771780501622031519669926790441363715644374942778444919154364349828577925368801636826203724785245870682179774303867325119943581387940002564961372523017213281547054169862132831154138118212371087490166709817212628306776038615471304081085205312837970207667111887997075158281529888160246044199503133120747985575613491473648266020495579061299398685811497164450877178127968347710247133425760433871009586606940953559607534725068084056381528157546871564044580689945305079219096726334736226308355953725496404309802493325953725218495327824916287751123232022247937974901590420756832869913027411613898735074116322221392613121332030583006032981340385860707914905044285497061249325178983674293951374932121857029706698561960799512921120880325034804688851189657647065216016409276530834130295610651480809413100129158493931478388490907199900564373020118229345960800728771447640543545733137606419282189851802410516299601137468702567083911407859933157560210294742105028297772822037723640634172305107155357475100636984791629336946449922896563315924580472328234682270887716618411814257109927282176228251880035697241236160493531789655901795995569854934181322970606079829027100668893063680084183512222791277128777685692023593325745339171910228588574809534058772536140918453496663537790593536522387009563128520289513117072182827481174843581315457867288195403629290611267262922903883136843457693241217947549844615082371174563425385151362108366441853333340089047810904646621003545334842016028306620009935212719335454643838458738032974006518970058306623276610808291026702847826142565062888280453457725804783640434098335388853587682177032896382170920176074433785439334125925015159780595610386119044767261986866243803995293721567913761954861339385421794887864274227734997814119352511380097828635935876492780052274374275149616328595156965448963887031163862039248761715496801089662207427842412452545557691793476179866029473241869646554156492755836353447082442777438706787575697484376403072734959296928801227965871367784295357964639220068574458325213509816272832246377743254508868791366812626743977324916698795466920702217189319568436769668731429089851426513521876996765569805918134452310822232661589511585350043956461053884848166579826836569477886855308967523244965633608247405755137700437463134247383084465308917021565308779773362441750128089923612047739494797393684391971610896113808691244474068169180995049149744344976980714024445705136787575254245306030099283921630792743053381720651998815688653024776224416335874280777705023167179786889323854683999805829636992802195550894499527185123750265626639601157802989813010273466302414262512087656940483411029354849689593738756234400640113183103628703789974942406942616811699038709212912771471252596472720371675627699501531914096303942285989239700095668645950181137292599589558737937866408646923889499792472375675047969106120939717335570918772691129325667182800748379066979817727832251555959109014494298991289050438182462742734224018182105687396739444983672594513928779933690020663814759184586688608036437109854891650664096279423753565296647638033196103768119209912821251850379107262475100641337105841492957401620737359009864751037615573822093709161234822571906919370840908992684712022898012865174729312876588479541463381155598660871843977212841869795506540606908975628440135916368830594509568426770066771492416693404661180352811131570241845194480743705074918372481131492350321759913698204323575789355093891872291930485700676556991002537925206104643294811103651024317517959138022975277218253777694824313998341747815255708379882442667457196088668733396229873448034854334172734039323967801541628140780813027407848420952257441405247873471960578717640366755189750672665650357855634733858598810407793671316435909001547119253477513758671968046053813187614145979829400876540708173784793214761683627405131954953848705281054281381585874752815084356862159542302075943914410827745695590337376894431746180855409377015730244544578195489173672869632575750780017959980795346038632366281245214472509653483826635681090669811824112785136760669048091124170867678628164962783227365256599275481310909876574904608458240460965158054764748398257351392105428933077348360919787980163696882600256133585961594797349342442274304438652411647461638476695867033597127089892004525121389421961018754638872169611121333377364377944288550601451428375996336607883605699319709435200897139106675048160194870753234271395708412274263945223960320713062295221990371341955565969147792586989167296369871272939402998229639844723776819310337943559384731534774080616308086947657023115626872799849632488202622472747784532649342879351699761080004257656256011448061155455877677783441389677905988117033822076594796833223339693314292327304070066060111188266055519758675966072605712260752568450002978551905773705831471740683394502643465788257961507746318989149794431935015193828887701596908429732085622901288020223281598645698604839262246112872215819176825241414622564403748235833484698781432089893075503809721416726148364768186832243122880444524706473694549847853577736598531674215393722557195911910817214612837754005566792456782863992686624304726748517597367326057657191685393119324908539974312754274332212840868271622267789908956639756529934178188997117326625544056580667129388735481842339401070334795789218063022672914911965071996738160728898308782947387900072713784947091513133065212837585907746898005823508609814655445222494208047044678503019806697761246381946650111326215329380343369215641514646818813175123274002543950921754219689206983476597430332471644510364551921538262633671920182851857991458794022393325966667448432380741874737268797039232837871769550536198842368318314581775383721667567795683227628047162011751176965929608578107547472266700100531417881277804616524909935826884245142141959730473498864631539434175811534127275191218319177650888601930190521671541005326987596104406792651404174322143250968576276393360545111506323364512791060902587200971376148997711533507536720176413754060898042004647156668350387436110637463923528210975723695268469443428236872237509815207068662413968859442631013057157738288264785418495871975465253350149862477183428770279568602389250353141918099662311893061354719380767288067411798663409937375265591996535820048655274280013400542517578929479445110282547367678491492181245388578288282430566838292898269966471227405373788826794922625656160835573991591807327887037054153033787992308892096794109572135908391576193660181203782925312032329133159646548488394827663046947844383768497805176678006332071439728473282504625647265670470839394627964455154694176248331998150507254843755483066950845873312777003917748504104788326999992809736874584185528668061708185507261496797555806672065798738773859726205847048330622777921733477684451082479115217991807750261619890758256697261436795515770391069762970304376024046706938273098293559024036665247178809238987670326673837678515452492466156830632495399590534553787194651086598731423181473958024214787218154564992317989736219442875327317006314924086872012566833312721017044283690210709823841461195641258658187496480549941512452228359457711657066674512381843669607655107787471223868515108939272253432740362380869793047184781570494636213431545976530028348424158905929776083838843147372619613669045965777704775365464067897399356580150392551781168969747075574336405723449146315194185839909943556331511570690517638698451217761116129549969242525279226563556036439637357572450515058738045592379037325340217198832379444285796149943834810511987442397161197539559775660438536047753743161058004036481918072701848784434207002605767312594813559888097671261320003711785620492791949445142184695265183286945771283711462370786904399139599779054309832298981136415710798366554982612863826306260888743202143795000316257612103282323211720355550834187033952580692317632582217394057859390121400208766007107148428585633743208510440206664105521839830376817938426686098008087058358974202512849965946110237566289132657650754091077742696254414209355006503004767144649144451146613599420109157409141550377301973892346535772865538756286126528206726906981821688667326342166434206283039970845518128078431637466397025456728281498742763972514047288625717542998768046967066922681288227909281105610417895676192596553671933209145147886879285477451634945336344124190205684750389273399335436638338096732753434528586309028662652805248408096128941205237916676281737198003641758495256292681368861735177106203293444248376415995189724880352911216989117414869933605797123061923073322167076777397888706529219220491815290082471104631905575223713540566548872305181384751878750388429848384051745324949393688144048827594413853450706221755149718694565504544032222237417942091961881988427804535296134834638816291378240219536474230348765106691978480771160901587265911950661378662032295177213393390227893428469259247193196463319429921815325966020868820700837186414562631325276634090205118309135041206497564220139442405172071574236475424864807120983830395028799358973137850443728725030908737587025821804604690100517287218472915151510096413899824196725898942785892177759198931675459277655206375164264914810536488178972960203604603747450351246339173970762522084972569692784476403398033453766032959125749285095602437989548848587776879761636137334471904559411687947451053583835903162395097379479146805449985477389088785193359243578783507450448772621666581736598537027179465677396848266727603012592039056516290726934546477937588597346382254161468075613152666876210861441736537719772432563608844881913283672968899310027108445269956956295649113241145468581721499581584969853839136011593162265659130713540388949118029818266225593993986656793138840413076735738084328261372345613351619394675706049937161091306835629956337247866338924217644605938223225956208974171276446498270230247132315323533776120503016983463565693239422917549531043899730043013128102682549813840949227266127116182972036520447730168652193439899441385079464845740718782500529941650785470701868754097003165820955598918619772277663059028878636804460034301840381358545386932128081726690012526611926142890628688247641378153481896190033924148453267818212943558746760502554177213633549887447973166356582127809097371966851903270961642272214598692785004621316182289143202245759940952212274917757134642257095287277402020231972057631838767517265348096669018314238849348759672560558276188252984646773153998502910028427766075138052697180170819708362289981684814322705721682650043906369215523717067390690182244308379810214712933593716234224177100531799042627869382060278013229583877572392899717294629231690997126822062493786800399241800669551991635830554433651029188795971582685758095500472049859990810962787097672826931353738682141605865556139268697526014435935089016969415074485603223359000491862931302588123511271862625798802385867656120285104300925847884198610596695745472069031997841448539402315694982902005833993646522933189694112789607089503055068533199902411971264922598515968648553697051932317899755364654417452215409435603491369963655280538025506995499080206427366610043924834013928352477923387441107276493522873158045915241444585956680342953375399663154983258896214770990335432726949659123962739269130451470957954786540233382284852201124170698576768465551865481063380384132784149117954061458673737215046203956251079319794971427002400349852971959082310663383994621600144674496556810965601806062344915657823220987049580180866405533387099020134023978234088852820496802606897123711247675465320460032812924956458192361125321294233321926751648983799865590296555011811247594416768315539929632014015167361211762477338219610815865193002065645545880234885229183802283697082413525936503849475484273414517826236445135105789530137515505935252675841695599938030504196587714151940271464473098303212864670779080769485183007448441741328159095391932972246382508251168736459567874734105871434727573557627570318322273254097516864228376793765176855704600959957251639242693414768427591784919429611395689153243114136713200206757571380890476697919924554145439486907895591500133038694887897835989627311036579266732121619963586229747063080712089956973425634446428168156761695587830393902866371759828111574648014454515735430784944204264141152507933894368498725448790847011808277965585403495887207986205459776193954893439590786530485788978986326164906177160631896734639864128343388917847069361282057136904539828829112550940268564287111197832159113531126039145999257303067084325615487340238910949774696859742052974730408248036083062207923880354383215062293398320092093245262386009833113238703110531062678307069997348096049905090066649354310540692213710331077514955210782550977821944237026058081258249000322129247200130679115399871953439809657045975884982400961818499190258570260883688401377485683425404722621284606811611106776892017218046021794097810209088831873215932896455659764420239157620964624039632541579477827977779267899758210534188544795775627507706419646566778155020320750723816438887306782361936036924341882150484043846742561619851716670084546170708263927019282706548901261846592533912848000983072978214638953918830800610542242596144250600328194324696506216457796108157263872507071647741629744796792642094945769292488696343409308691577186418551358816523690860924005700135744794648371921674910141782318246580909934766391684851945597317741465868584742938635490386111820618465704467638388270216617287591258690292576223674293398529132044005645771623068048961460008868027676611874022203247088645116227797822386132756773529331976074677820316842022223511392768919249388978596620369100362653713717885579494624003978370099804664922027830405418629776028976438818444265626279812011252201582852703547523626465601514931169358611470353781270542065252134072767771930123918531129846687012658336448286176883396331853273914883240446847004364558843022310083323053673448497518095064573359858046236350052369917916136162458932477840677174846833774221965393196766121813126298991050557660119962344944141832011998137590450064191988575890970604897678623585393769747260653990676160916134094747622275820101500830200228687997295309963882629431962218223895409003524741616908836798032040000964006910235360085153684696881459398947737202141090046571854373374733724467531948162046748960902820556050879400689103395919502239392881948152165984392929586212825728316799929470251356024923177518847041476274531103996352276328458966390044886737752191184833779514875361087825952622459541469638582242128036512236447983321131186890443897206901290136516942878321050079785382146931690642423209344996431407833161408833594245836573986828744213247918638570866947321937572433489826714715054050833562821562226428411483409609634167003307014028126550085400319641222612503241176445322310085058092888530103825744766341261862582664244449220207339112204943865908609178257048806629092305264842174954206986345289288065310834217162755317186133895399927129597687554211898863651392254436638919963790427081893330478548665330804386539844540860637431702905620124481549381780278750154412261657542146797446530634850652517793584889109156242202698028567099193324669177499223776180202682939737846733082436563205435987579108127802460053378096731151411205642037578745051668209674537416504427169238248500765439389111709876360171899889089671548573252755484265104201066552244756506313268932266555902916371979133631959903454891760292951005233872347977212833475162238087122077126536947026138970307180315658719718099808156184114270387217996917331655227179368443345602876459787844693500151540201762185145986718521110096411175185760423244052749260464175230806406553245423553771788389677989111543749709923000739976090262930003392903321977749254431253725751387831364992798151046123714680648791953683229055427504082331170521829482854445115646555490543684605799998810634285330433264049898845148909096175504547245472931783170817350651206771969349843895224151397135893490042766449882410480254556249662508355637692236218884596812125142490565047143690603024236751491675309552152234410987053358801604159468147180788581297902893943931717648258899660260338533141204233869358774331899339217679363702072467405306664445930707503703112380724894308308604485523803759618311585143629093241589866413664315079066870156825610906529767396102546511951577751029061177373789969808340397343092124522921622117573770724694526148436151638691149847496973713701581203369668678929118277146225542817844873677613119201718512861719988736368496959345131422022571193020999069439779871626395300425663647443923115366667908877447054279312878356576449466119794263885858370845043862246075153683910012624993347318143156678006477562033489681848735919698901483981745041276972519373316888971390115749760763175273852752825676385792962369931799349230970001309791954458098712400122903246644383566824518070798733420340862545946679635900838054783392457196877613496850558450118018891005912761259882217842140437994347028820502339212336783126619827460154528502915415469482275416492691348934430359436654945182278107999225466578536774516237050832091755685910937123363796747197131148390157408361767833754073872554949559134972726854750300228930243837540336206178420796711313938340846426610934076916984838147733954190241835563519384973890965336331071136340275893652500146809344191286812971669600114473353747070136972507322859397233463678029174242155405329403842362062439482085877762172658912316550295175403217246174790369532588953570008538877860555940979367353898522100768250879627657824819960934447544902867947578574557959357662141531859622819136357088799042639414104943149045197704053435720505301373284341665864582682551265377180056019100974496130693640717947221742693830549254001149139802045832809367379837227595023850730251504321547775688895865958219792634587078783541764812106281468246598892452534006508075757131686372112384558758222061854526061558446602574792327512513588145625010236836232016407222499503921796445182789929661836248174364719300355950685922432346930041211760450663908589614989046734288468921894779967292674637963486626497968266901530933457769008297117536488536266785304147396743844875655711859607348257485148028151899999851477994986572377962428118203853127997982391206375018438655832059199189224282541147205602695319791017635081806249553167609547909689046358688102315759969194967792927647240497527907014140979316849627399937382737624907244579757695727566726446891676330191949048779044957019570452690830076514128936221173391250628518812437857923059666926375004535346340522548764438782053565993056198889479089228357858097433022432471921129510107708808877892753220561045668939373081743411189917857154203589132621301505832511700465775939537378678441978959732144836785990629594524789965671587729888814649749766185055893997766091327337198954758733368266825996510975917062961833708514685262868846418995577816117826041323203233697628575624438854183812103950509960818337984776188666203637887084334910203816193239508722812333985636232570709165002331163379528410330764208581919901178591461524065417416471381488821119104081005431436438739313281302332778397334431013488476010606689766494554735687470421716418030372687747413842586295964709491969137248546916200413510484863694265854662684635454864152658381282471824565290916362175516679953439636373572930142006985670900743559410106688173305013528506409626322996519517228390194109148971604063466693145435941048322501728659606456116422500166627632201720618982280530791912622919207837379567025845244579285418209270005193027834846456429012564593018510652510531438572116097524741036549297057042320386611386370133073531772228590353381506860082508752753099597411322722108454141773493817690312871731700863893749820741966546610046053941663240504435864491999740896427338858299066903239007040870969485761801111376194332603208743966859607681276155773380657165910005769656562159166307026415822137848982736178332574665122111100117682869767119822318622921558653554970484188986678765506295423675549170131438952748695776725367909242744644449774845980316207831845677958036816213713016159350591934712228588535886194671400578316011460462152068066903156145875101097225937765771172026327045501194644882225872554431356608405298821291077405604578778497140708272438045779247900182336857691495642881501094616635072526144422380443801245204033977413126569755778799843922165675110149890915050494554009356869993691209435370154021273984765434253643911612892027805902127229475092448662616806376248557260765162932298433436804425861282164874886516334907419483110058532885053025680661301304314024525989237975298493137539043529571870296000662909168510952323711724705094747254714793380245244818917640678132432554793899957012620252130254846465732166191850961956946572548178294972866126168446891521474898127115800025472071969768235328944481960593898096553396748122813920611009032447170101522354647004780151791831697819779251627539164459275042728280929043203920254036716036427249707527265118053189984883839625227935621942993071505572310254174426770804420660345804050978889588138826987521854319037256964175572664427003996091716473172955763575056655951664652738151504427763252452904435510070173867613480096193181986206971568234112567340708384318667501813542133038229853226888047289730314126766055952133519955662233848245297581430380747931387516231099024303169607405793726818805163552069956629513906888309118241232288740001839616968480294090948080394944938943543845396900668192828513090536212837586931267674589214416708111040047748185991153566704263695099724050372674463034346116241053086785291319774398476464468870074190604002893447489065407663172453064242559753915373483649357135653015617459647584026776032603855913514952489498939537013679212469526467330460224550154287249751430609420960361322253211336122806384685865128579665674939184608961963241755079954542932698255158136021453245243242669291673017521212100196816213372264994545136784445298584581426198715584829841423977969848096496752832016830646291758442360203712784173424963263642515216068991807346230427284309721091467471944791388603560140468993745104105137059652086346059094193865447815286916314985362778566384159942483854575595211912218393167670407040408208747876758516763936282450005511413774746970381006927769467223462197340622388689078038315546198274297314560937787916308280604041478738528258902288667227165192125136780736085677000285438539383265489713503089067232464076817464970465572855759586455432716954049953889074577067385526962343172987428737222715133043213721017737814240437515034177738621334561942242543806605041346996749606182265446723222163983691463106152929338821109499792488097501320344013116003412929408177497549535636473861339716253360051482687075972207321499325590137445905227234628479971718235068381223056328629708950723623218650971066840668629504824091862209567934308185275027294325011615237565817997032223434017793218978128707886540490746351957902537967731747131623740827551294323547255849275666408836830071996822067543500721570146527437825640897608474007383229576458884135366588669714553379625654430874644835619001355694399749570682393171175199664188689567596053868249085799324219423604288537143100339790067647991751633798408068337078484549782341847551415042245564390854392159298001838384569127257591297828782828338297918189527509341720103927027903312060001318553515660295106363241579023780948045532462907693143845695397020753860041369518131003518490552381371076028663116011299444321371432277431097894170328491504887006917442637302731618703509700694453512406207349307887744695957584791498198214178826729471358348910016647765225581509937527819684131324397032917074983735939110096385129835832960204763520482183459280711284624004694624816477951788840131468974012368187733835428781912456153443898751256553729772492719098755848051486993229569426666393318910034588889937770346356652821118824861443454190022824604791834368888965014646443664380174863220540704492410560790960255278985529314957746111083753584889478866499792410844487756835437336297975569323927665202435591730352089825831623575174259403000690776282238817946915420126974017493395615695466238132827220303993049724628923147621312517788372944656985316776676083736244579880997735617211749065216790894227299544496256014456260163103121757630774320759507857996408621466351207394462429032428016264800695299054109063964997177440237468785454495652796844906269082560333684338599309065393595441924558708253943563538394671360630121818565381430363050945470507613829580083983445831251699931914042243487117913730391678808962746004237012247467479454794982761666191689939877487171813313833158017156544455681307910405481439039586577719420155717644722670323844987602642276249475915041262784677345797450280256677197745423056426020368254034594324473564653122867031362708496962294144818394772006481784036628202476763209242090333773220427356176883813575973977389960400737674222161981692869621615608732769377881051675430731743132237458800711150614631541500591175079059577544251521711617480325874856145753846267881942630694707389037116074584459465321264724263488524178798583835176572049029235401923376854114391966432061120245918196588287255161670345593755826243354866643176083739048507880121544426350230214077600539705492978228453169696524672182436973804931174807790613310587172509981998212597316078672035936510732668280316755417652364283793935315779099706082198771283872850659144551587401113329343959354946238308170636004535717918425593096557451275245300591447065547923150995889624721198898476741876464350668502386496390980260104344855877823307106587689519554408043105523403797281777394226299662639717714503438515173413730655337857905702674262665011868424039941124824239328964958031971901885867295321368951474541634692844155251841590988290461893532289951181888275777954100856568500196151923922285078740703902224310842713430481060843098616196112816100513495199233469875998367516585954731470291035447532594747979011138474702850256887066669902946826761173505895755170366658719398954441294002591452514209257938833254391588165746359340806862947967289041077807991334170899714185848515614742548808102404270148352362816642317823299862657598030295668595478507225623184175809533739787268373977541750372062620022791895916538750204508418369598015436817343230413435435904847920893431043220665621873503079166594247219619464987913313935563117228844873707909172696771693259155958486013975252272126868358178290116319394594899113824843180251013340500359998853446367715191462466725901608111572604505833858604373128484607441283806035997245993567179632352610705801220281939094191605776346424355886147259939229791007798503550982649903788014087277333293044277707910376374603193181092449212898760771108475638038751396496460155229615850869796184173934822120519674940122533579658946954655720763776448044752074695429656153818555716643488840684211751017835610896690901692690068065075863678770681834642731266583159808814468505052377818087015565935623027475627113744710862576426115923884758538911752610058161424274599114169473834446290823198509171450902626007055418595698893990941130633791317591975639676376448758688290367009533117621019124344270399224086665276062864114715750433909086411602416609660043756560438140224640462509890673795315875456893454107396232299299244188917628955895431390724487784661935077928615882567276499593192665788193807008032716296282622684674192870832816713186592800435436818417040908285539116245194710925616461177287815719722713907412571857338936300483660134363886488845100136519583506063417337548354332000009720239911268784406753221845563443941924938185503864330097891184654161403073993047412034635918726340831877214850294155514652798180694931999236799128558292292649588312973678346703256974332644769703858511910406310427578215431621805508140704016761293671880126518558756401841202257515307902306899481239370458285354364810021954941926334736754155495578310062384139674029228455469375695724214557101024816216257048046230179391103411916105652503040446309167116394724507220438803635629244920640553806094491176614164466689095001520437967058448017452546585825022493863085449069442635663862779814079071084548826849613494764515133844934647475210118905342454249607406512921481125321472908782941420475476498149950032229463555795374868298953300935267592003297323320641377218003396929280736850646268480692389285916896868427433846734087071075266786976266113585173434448525239585476111856735428349706434003817511790660236165048802929290406497323141285108037899707033186559472223686095063209069592040777062932130856439364627105033373891447205689224310718952694109321646035588451209855862892398051864941781330745881923901388159417310457854973433230301952390979884477061922905115664391585323524104660872988229975301074268800252928165912350348130905838780078377895296443146859810898032680663683132517541271058482628115094977357478448123347782256069409536335769088582955040663545889878367745324651896910820364543279634399667819766502044991420980664551879142015922714844015335549451416420308074021353876843497762267249619568231147273656362236197997817388491427712427252973544295288283933567019672615235718015815642008750561867624478108457113681651870623830411528926401732762905581182259757375807526919167162134775291547639595490803625562545465494893934712403288558673622408127143373108792447374865375979664768017119392351816918589054101051282051808794983275323722832665429499095993638464055379933492603489596707572311664048629198165599923097384327232743219158432246218470976524151092686983176707728127639355342468847275218671476342712056308811471522004916537190857831260025521844069214248790619506756787908179078882235558026686309954230025779897769450569977885339928756540467579248048379571318435128149750372821225990441929808257018148652340766917527566002966091311505322105667115304186888916325332942982883634078374193975539168443627113212313962007265862535234263866784819651543468052247308317446003903528733734135944396187153276252353413566873579248949983585436041806069206111370265636242113262726916896558281049044055308297683021166708542568174981358515625117170008193702921579795735882702828345552004753790228670765472720344013492305469167363484095728877883644196931347279405891368839003544717206667795524015679857396870955383002615793208644222885780638594526879303247126823856301192114129913744642966945480484443636602698542473547963762017702487734882304955922803940003365841730707869981440743331030399105050023113242947854336152568759194486627606462511404539700988092854828133932431121722135679004380249835207043593588059647109046077594377325115749801536046469382105277915432767052419972901233749149221455672284684633395493574585694096638434156252419791213290533828567944563001179089179923178249180516027450267189470979715999013388092757883400177972165781686343451668043155405713916593859361734307579874181334908632656670418820635141129836295291982515751876977589053392440171739164369200609550754933197318048374787769467533140907401318213859126764269915475271514709126195239912276807390746068046665685667022259445412264157450632797327346365084528128828746980572503498739894490302401991840056787658121746614619502330170285920635372424822631871078265445238587149970293922764647278780198882848300859775491973405792083673514316130858402030225270127709178810616954092502328332414442909115516953512256819047821159823187422872597623275020917676315587838053094892319064006492244426732786593474676024389166195444333115299135940667403170865682699558518462790887769247742603398315312815947236289262395685566005839658668075986268634093159118399397447776993229861696472554993810060361072035016901073752457597502061308239501807584543772322196865396295444059248181893216546256941296445211358360236228113115469442106123091753375878090320437188987077376588122370327739382250127814892948620223821828683949812466140182272954425192479196972385552076878287811623451072660989370860194813962915910534741518909666626317054149738013617190806718952274242397485115819542705018776739953878862870101885717904699366631235848768522501120838789669927270720361048816103931712757461320524303085189444044336906021118233437718731444158430822022266917104580111015001231481367228073186316344148300769126461794052437304379721622850343407901889101626586377825919189824600605669108247620999595193151352790807128407083217523829218134348780265323327944698636185534443933143798182594768048194692047406784865916016951379213636993097664341078124162438418314445561586425197161113712578673343925829901474521627991959258107957504298135797794041792005469725539503456940237638711490081150077480784205650204558292710071520425755549098483368524891724197423677474965751695399519738839261075666236245770419298480962184929883863179514057169253311640436992313681024554396323558177281704366783210066615591279701799606978019482259028835352932420794621726336451138323898976564255333554873871765197693400523042336241326638404060676760585300319400461504508283098565026946281192022210257053585807955962786580409470429589867952234648348159607146032921996079278286625227366161386170818974986516040613229399462011504204133173169448021387723351367943158285330977733203476081984264528115342150127964917180634501427884211417472507236825043184860240767002288286247398326636836101709629416507721562135663596820859690789972029110546965926665250354291934569322268138642583445948043430151700396569842643832206717397833522480469195585621346829211370003377679397260612562650964168550501544690367340791236870563708427485846454563018929862711135939751811544244938678154264447813666778576932156419501014548905831867321855802554090158358701258464965694226933415198235756620210991853737561904153393870041346606758018882513690561050373942758687981446645103786111447148776827719331281970759872762437425757518181335597458492413287719303573784742594166777535926702750300037262485272992567539688342816475663882616007793915661488258066275123283265547584508037735961404570357957346665721025219155857154624281172952058054635622043795629341425820822484324403177876215765080131881755778032258789958388290553383612694113014604300240589347787599841339357065197802997153691424103576764766694138505245410400249222651539904840963558885587685270813754580234319091297659283551298440283603635143354776884998817780403363183370288130418139598186928552656558900261160495364606680015842214582125479394055486991635396833268944686366867701736569396919885756812395999711451684536852312403289721763465918644337844750147370605076317482640225970333591066829078156753448960269965479979227971421134134299044579198141326849458575638888221741082369839208836296586811992830622271780708189682413302832642116005291327917374253955482716797326415345758605259056580690355948558189941778853800455531649252411066730510332406837940367597902076608178535574440434145266322070108155654501447498773186284060135922471262125152067092162152812212870436541230477807681300078221918231659573003273419697946734395775404595099497753479079828663054018943666411284623408551366690788241255045317690533550969693489892775957771544840418233311322005901984828858850302526802222704410864815289892692501377823149067679118914877603411171277145366512072195463039872206603468208291435952500487947049715399187829056254328004120682050684921672120243081739712722388021665105486537235842269126351804973956206258891235049815935695354756564752633931535236420589206936185789306526216262673943972046413015044650502410826047588534060035800791167715608208605086399992709519346383051998983632253243692190565088141563614444640301897928224476709971882438472801136815700409101774120991645032503219824639599654890231600651166501423675155081799954747332441761912492076829251994399824353055031261886535699697753880677807998977079537456160052701446625876013287412828435077570225006208986764991465377863428985738012022926461515722298213513642773819500363491026214716569089464053301106421186014383149776634795098333812031878894402657083632375282689207575977055643782272803190851223654300341028894605711318641106012887036993990981100267567391847191319897311874907368491806825626032017447243641791196149012112842687096725857743503910287464658952463520611961642450952656638053222198370175804782729749528599317951566487292181812370664043650802055324761852885183177938791077135643985871201388317189031557805238574988625061016024883402191442444907304682823585060255441121045280432477022290820375230860200231757195139378991935927520007822639900106706826514323765137177728331068262246868537146401138895332469408170069229025114547457486207159485060952090927388757266607650657137309923824413833594207456179730276089924869708469613272535803633388226422948852133861056412477139286286577059291277572150705048433386134787518470929410817526719598311475761265226948025179468958083968434964511129802034634387919551945830556649032945319699783333226731207743029216091460374280111916025655137351874143416549686072632749077166186347793359110673705072010429582406203171757174492873666002850517993759410496113105057214011457682482849238669827396030790066713787096996112091668491265085302930231057261519377116172897677327478877432547264004749511683432717898647393638271387909395718403890561524551965314789216879038262259418977158416121507100775313557377485213695603931103691686441634627885132686941733351163498562501655902034954623619937893042852483517744995162509808961007871240603374007818789588002933889493717687976410403889928748935630596865277080560999267198614400495550675070504993074533075391782815220854137997420409831755955085779103848436079693682966622600443439623539969910466082257498820383990384087791954974499956677833076521621320291428904014375566901855558375877009481870550064382599992175124818244851193944120607744316785061017905459757614820768385520040340929036056704660864953048014287115432650878125203150688563019990170601425812946092579843591898444730483917312049814072940496120379843613000193302387974636174914181828101066510711827632918763161530121872484382527048939257757478117567801473804014155440196078977648036407987500827957114440481037682782676401331128677243037014969900736884428669328345333259610879550374061058144459967186149094404496951761488648845423363737255545383410547035435344884884409501667273074802129761430035255112727837334128865345811871426428174280770474677830356228987762002389996151189354909507532350336710336040755755192137563768842366434405080662585422590345699292642102814520346662012363721063158808782314536012938314799323896424547085814108118334655453182152079663726053136062341566990108222763195878471991106809965657267071552462419838786615100407520953228048651702158928228094608159574672379491086419136816288781756654934615744035857665588912570326880193704979002571821786590500784173197818396892354081432661103956376958973040011340699961424187524303126694072262698668949983112252436803777054219046797931830334186278521315045504677329469505444800408090178964527118632105743998949682330113059569389448171925274835346147240308590449008549753567052459976360386311348104235707068692754877325743421516024786708371103640621435603413094751383491496773854696223945235465205085034268106354156239921908443484850053966382097031536557679319441297553828983131400453264230093102816467068177524137870867967123379386247847714962116969514771890612278404668561763452406430313236950321833563237838032513705649122520258282719059786913791149665667746904629377307194372649713572716599530321545943136102927044382112193230460246929174826706995679799962670649791462775395232391035047601521215857358513061658552585497302418592608994240865672436511272148783781495506789096511936791738483854962781945105970180198123216778091349889341810973784046952450868634406448182677154080495754835938368621885446328132050032798962402336954574460663219593966616073709131726813409209005207799205281594132666419233641990039506763511270831989346060831263453240823071566708381069200652142914568788133527254902548109097004830862619885518488487682714913889228879508557300531245788869594027449505726487882387477946433500101737797167369105207762137227055886429917280027436667834215722099943044212854778882943317863597971286190402465907438985303253836496120250617684068642682338040678581697567626382427672903804941529036051452357746391280650154824065001203928260887121118455262621516722569448783501486570963536395116988322218736322564106349524780767073165855562286867629840450054013558219711890165847419147739834385748181335372889907418145735037714290511163522612122795009904740760791810076833761223717336770087559673076176101814434706151094164147314050033336729455824923262656436667015299352923124012758433121499108996116095932903350363458707281531056064560897738382610082981332177556411694040324472485897387599154416994312618074226882399353387581620436345788619090644139598056560885451339274389446142351934547755387928942077649938218238255480837467351661540145867226431571823356243408050474197534579232348594542390096738075117564520646557648703321765027342621963143169089617183590661688198283071734334999168327495864666638218814188088148212625808991972562914075770530481862912356583540802807243440447368182412707036755574258512686231130308388522561058114965393188603382898798147599023631043490193176685789806477656199713996377872674157831071970961928875189799852356387688268405843868134337630871511826433261731554038236720376912586344589155365646692528254922457692389779454847454308928001896739895075309470591349598504664335297636503912660009022063390847715022607465130558785244639485500033607504263003466437287253046475387474199298628777821281979997567943775582728217064636239558619276330856397502566104352009879263551393706968877307047355150232451143766699089535772495704321325916696424337567100401054980770147088879890272273686756292793830074730721287903955570443851531296271732282264398135416331646747762629858621061163468015590309776723163560947075789369667150274489798741030043994756032573299081778843415187945279185608405117113851958135875934047129149534688547848103352423256961282532412499411682004115270200918533094312768799576966073280178746092987203844347022378904598821217986134816828238553039522446244003437192651547455372484953796152556626046676317815597019115899571159225158858317966915298308467925048666962112765332045528336884552215419847341170227596919245296658921137717557432744964498398695218745015562260063409700588750699766788960691346964771779745816022481469349034625496290585878768065454399949395355510459376238176710810920245019080696365162083488997912412528843957638823518066915491322248124143211643285533122439879047487003708819714260307179223450079227634232333169159988402175421840542504109337371925777669976230363847216456850130367181087762538402467236344298870543509352880728047667816278319828887857480695186153462187833036110053797856409450266169574648452664798309447947961006262308082690322300144829674899066464218944605892785499307741999918639469590164280392230683389603820869536142100122102967191043859846888263438552581313507853620056584417059434070905216972360850718238949905343713159133199140958651123285229203548356676596142426422920376706867312324073785852085812666348007066612390186763671726813693332083359080192429784160924873514266431336216146631768150819804883455455530318180675619072846530465264559321642209952105372825865378810532896034165274836146704718350867598514352898925850302467093926410319130428682523713940783061758765669570260685982591637928609355358720758780459673755799360129262264813530309749557327659800185549603234270909681836255326274679469857473826130099742432389373488691613866219975838388997183797834037907043168251360059477508505107320785449254538304732909925486376430059007492901899616820540657231953745692580964054736963269922957248238067296446655301076531813899281128072987370520018812593410032468943861584828525332814052490963155968972496679681313962651011649098845980098555642449791989406307580655614312692274961131893528594318988011602472640860475925718050672194411626519719792621990307740307229324660084826281263750286096383187323570379792583613925096394006863770932912143978791839810277314972413263453790380986404477531263638453866017307398408417127376199778320385126149179347550418223977727984514197872786190831780603165911978326742884183395024507967867418580033812314968306989760421672686587351980662409939975639480481503154438211580171884418615193478425534471299852131512628795442021387311168894242536317661088654968059657881368508762357583855834165595614263849772121834932908550184503879397133785773452948547644096147706358082742680132408908236660074610593867755964671156914063341668644837996773042016900978298384392885855176840569685064340693520990386988366312230474285116289414497165755958530024884980565440449621618621519721585753695274727510259998230801896441405537210408764666158243106224547535004173339888249722749375684840922861440978808454461837590174283139648876906847850534267152795588881016590229629449274950207573727725214760963390711032358640245264511518546660102722523512634630213287658438703267516533474861049035064991526411432975338160414250853227588997245326343818815835737613803318339385974281137664330529980925391342843143343341881115707181983108160815997592509356472376477569608798745860540673774750913953966549482033099961295768099578957208292914246026603584446342088717833822106107103596333572010809653877582515465449289034804086102559869244686727047243302173296662435350456183659434093072866647481536007455951209359497400273757250697025512442127690511563956883440984169105301418878665817264469669084092204204903259918414510875297137359155240768640000989125946486369524361923939685277143816151442871454582370430168284453372077049081799057640447668179286197492248656069546912629888246294507764481032101757069650986001233591649063500417718348921964287220365333936160661452869079617900471604303850669015261347275384841310359165778883937994805932814447006091260126701219327471754466082605965047288795607546231113852266140769934895618783166670991029901311968708442720067898258573696020724873111324570802211136278394618225980530203648735078055754959430925117684676260835392599189257108014350452683079312405226664955347716605793814885738028843116689769830018605853654230841612230948839936441118860685060249627861977788566142637554127218415507873549584523150593830991368756807182662291464102414768124986315725186092261464472656761946593810346101257489159146293420362809182281841951201748587317432554277946209554007488603214405129577612392696047579001997018703187809272292227806835664710626622920443628581486820665033193109132031607088200728231614604336503790898477053886637770049286398928272643505467538040196028276885291810284817996363529001211075442931831613071378797075245349716654829112792784342222253604854233590513669472263895236794266826767928107191636988827617635998267430861441277492049752129560604786684125710683210937115801503316884285504752222758139050345736495075399351981029425365947249147341652830879662181890513083636418018240616381830951313589867835525463068671284135685645939352785973995049494309702274624561149429301624058599519801504067659091630536347074008091378522583582152864929211827961529972226318868193602255081714458337378081862981444907472423375804281907034522178195637026219353503129966285264016046453968023054629502879121043207770793709008921762690311624660097931366096999052825325320684828057445396805438956487429493387224357921898641688923413491360498965769639180097022268735520941241377917897412644981444267327013066776371576904465631444238449534109070120021761374945157868969136202250574327584595789871134267790068616204466460360988642479103687962599194016508935948537178742154708037175410953805097330402441120309584026720029380748779135576778098262295144043701714873680088388091246090665737360081280806834586388661748398669524383419510359584491459408372549418844094749362972940595046114864730491062045738166648407013406535336319624014162201491511397117383259797620742866331253197924565021800419403300305176078168782535219709652615514443201046949888887206677357821984015426101035874457037591323647519929123550820243787435463901911646480921273150289879430423059121505392784756200595683208892515641769924274892054474405628840438586384359308624836631119731695707612370341217477064220342041166673566051973272550124046348462122995610805040888862347178698540083858182144006642827538119275733730151523831830069442641444857782458363586601227956409710590654691690078235830001788063395241498867683280830551405433512703697813610113389039916323688180844147765216170779821192214106653873367983967096355795848822448032689889351097034937860003137174724748520356941954292047660647003756802971975001698389989009096896006047630807459784415112629710614956337204532739176915610702125433030072822305994060817936723099755618349237944756366380649211222724887683809012238302311374689407651891888824844437862472790259402241802374541865622497565138767926683486800592894018401630112411488296708123781013789969330830883326368002379488189898505295771652978601758806445122518634032487305202625905628905288773136256417160467415563014787720169103964512373179865096481087598651420128108006631929204112984865012805210830012999128243238278876694042366976285769101553700450553880749525844445628708524920975797001543365191806868175223196651709852724471073927118660103655051400554391643685653991999761244808445368854737882491996067350537206632564412547018069926613594891408522916387905444668153734586341413418240235948841409929719130188171553657749809411916901892719590486019259677186947146096534922980257663082657416344905120326044916888492898126466253382214303951161998126019944585233312736894879625167698609706182405549996017935680918853329959283531230817623555078986587536997558377022428811996237327411169892363956037957648738393724572567070847779379683257665647622565659251001937965070332404613454358033316710634243539239435866963431189964579709717523903139810016049687667011522350335558448749827530851278449948743357193675762668794394875422725369139868883121955152523425420110703903090319325181659024161553542492970554296170293144252958286062466176790895093076651731139910338069144876997636021990731225118645883362822857402381870476082429375943205366904860009548850293864858276917019774773304408051528588305648374988373726817489460679754537490818362002399128957056325589779977208798048970329795734700215155305722373573700165041018699992015910476455709114840845546638737412452618191624425690882915298098656450601073140983494507746912677251464830609117102895827937465539572078015644414627534427543777409113561902512855604677481513126308878432615207497275546228225433746053364526312175590866759359948242611351253021688870546741099137704870873474148117571722162685961420372043879928926733737662082898241829440003549899245444524159560419213714492182639850043866670436191746512618860460046271667022795627005214782826462501037240748388407887024967070413415500504951066073850471883951531566572347006790343008015329332196502432335062983625154908261930572983852560862591909645371146991058460346986100302755227112769345412668198003470685720593273819583205171434287078449189208000827912603845551330681724976671354003065252164357474769967682466100116839585196300697508977674690820035839582537335679646442209588135512832760596138301589395827218938889410849663677851345411546030300667071893831575747789447480707787369001595353539491610228250201662894413839517233628921957311651069447579495912111094666469154839847120388091653610156560005465802247876131932477648364756815768561754686201252977730642454269396645347709792372784877036551567029038819865458435229325806416046548565171033636463916767585712887614354204793634416607227730352257738191543146658077281980213137754887356319688638364243632226201728791887184729071428398493324643849560975777713874087604449377500365727277147299639334320137161864189207717446521672170915990202610357134000469729144238875542829173271176771339638821922477347545655153300763227812708251582122104466048971534984730981300480335589486506276754939207871996925097220639247948595627086790006615052869196822677172263712754462990547455854407719809536723726928650785065434830725856826742293697474147278899561477960070617029468732629141387415308304798178222427147597613736117870076092232712069798202528299161884543906641478201091389936343083964598693097026376207746058009051605797873903101768845585148120153233023631863614225089138070551477480644346791970204419576745937832086690826282649526440173812503766234160201578159944804136770315378963397306732103230258594681279482865049153830260331837949345240435270757621709376804165357294607412893660154965949611555701004567939817112984989135649283916972762102841596768022730495023250808473432034819322274407007095984090134996455653394790399237632282185649680539803634792848274057007661923877128275663715512269573430171696331712540407498783139183453432490277441528789604065585043099076923971192294642747294176990020225307477446257624225433428907779286450735349001660178687995094587352307649451759051143491879809747098533587271738796782662993410951739125867582399106832507937670127532978196524235805534224146538138376022176789585587820424193116847328081433561171288289255360496076652652370932752190029413952392776740244159618545320865156120816998165514972727850925287848704553308349342624143724775668407658296386474213107989007632397185649273693657049770494987803375774776405830064160151539555631217396439701006655431075383472469698980092754930429940482429051252110089208081853483089762490887452131960980030984196191773593974126196711318678704503707682268297835503855045842384194129091647741097603724847294140248974966777316332013144891980991037501087750528708621339198057476493939153824830224192141228835945578536548973667593539403253542133792919228223667137677808252564764747905114441633239414343583738914576419146370952767466589246071212759315388457947031364301388115902604103198977912071305179652255845757396252812419298009667795307697437919397708409837416537237542558482685177356258557706781570658329467358474464921465382150787876991883621410930072108332122429393397270254425535868058683141680661612310488224204323693330683714865666233579556913853312525190385804327357504460934265567937290100702542708986704638872471435554962219729943352601219758685626975075582069865569881932264125854901213896852748638976456715968139489907108567073754739550191736553969113592642405262486594747697130413490185507164744819179066466499664225209021370219802383430391430793484543888072763090476897735889943254954109495143701375074480190880776020978748742577372508846611451227029765976784120998251764475637202344277733114627897511269447039874782109759137954247238192863550825675015662452455053837345851952303310348172461776330558089755744861807008828136405894005579006811799589645884635297343759499667086192725364023235500899228754555324761838806096723908487659008837670957692621439951530096504351287558308623052404177065336402114994124079192994957807374674152546404987032739866845493743124104797595799792875523864618359356915307453043963198274486579154345100670116722142454222544173747917361333267230745983033362548279412365581398056307451749807300061766515864242810696063779780896832651558837640330492846665610026055796080904815736958618984114745239010343210937640686567545398256397348637343636461506383667013175677877801680129599332584421231832316387864983008111486406356917069056826308456442649195372344519528973156843932718783822119300748176503717131159048541753144142858199990631676547940389921941357078988850540603872779294773824570273559358417610645580514101733940792504478899038102126663025344087708618639293032317017632885120024430675550071742027260661556549970275975251077236603329778999697722619411313166660366640032866725818927020812781256835302397924749380781978705132143009486351739983774413826555559059037745321476069101048906739716896138452809475632610903737363045108006887245130941260411772647211558771533553433289162661039847025072180256601272012040793821501845222955759218178967813572476839940723297893589079522746216554777990258905043441317750510741924408560257177434468710692320075423377937453654768023044062395700748398355617216221359145071044945991212496553395755133608510478385963066964260439247058203923653261839032961982681583014956414077549031789609494249298613201213082089092126991890945519397838890160577131568625203308229159220276715897901748766384903991465545342540022250363206539833603308770331765798844065705947643850572133857339483939209492381256663276222147092061294161274888945288083446172204515553526438117083564581913633984814502912011521187473785100280977421661664190848432557159765573749388043023313928502228940371751804839481860986252537253881217723606164889136575842328907171554239078966375741343913326594359240033748297363759564588811305583462715103121347458740023932187410351041929505408332164219835982163800670306854173836182942065658621253428459036545210557648217919974915475101470464667776390643952325088926445717672928188111008243321940030074230094823159820138208028310216558897820100664034072099104259161262292653387417000708779087672616024035183283414336897605076640504420317399219133553479772271806004293338212643884373836591094864722612183874598404983021246684728172832808584724667239179632128928874126885424465633869167133301573945591655856169794705886054269659521681768723545844668649538175021391160172726320078772199754800267280544099617583673184995649646789333833558564075895010614574838724802080462795665630376673009994466831139553155088692472494483083385569827337085590061168319379641459340375499062896225696071448941084969986430829268541742309816219995493497874695156385926890694655347825033576933203646046893717697095899606407276789197656166849618858704421613964822460880475422253821417547604886225053460979899588076089931632472178140905828411138070528952488562217732521356048819489421624227332479504998799933155516756223277583527080529506805812910709747600051130995228097975006935304199889201457856627986286188780309135611258865435819312250755746460741209948770825836816015219663041006411355850152509066023858033586633763006287226470452814133663943224518662151411231722448378814504969276453098680938968961019980236866162805637036977602148199033528578501299625020508263631577820378807168695586612896762536908428519682577156971125930142016365444418439640007675988420162946040385064815797868418907677680802123365763991791916778946691236291333033162276409975962848395218725428510674441873613545846175069746049680463404055125108686702976468153390542886778482326487026115493852702673100955097752266386932833178124162927755694177898344459315331964093237654243400321369532186338789129520601628176280324933641021231589400181004440295670505381916027392052301878379663071997741118973200457888217492887239324168695006173978133169641649338503204432413805327583990491861909262315269839092004780448015360644615029164380082916520674700882071262250670864450956624519583318203416301936379299758199428355211088759856240485791302485794060349713568013315060748535314944576298640859134624058754194950794720272968479387818930316017224962326370900009021827967359981695225094830008005374182068697297728368234167557907657403366863133463829258245100760214393016142141191760914098092499323426000966401857376712483189244866937033145653890311725791135749242140211667470420272860391186863143318444759010513829886509457528974163160170232384612112894929284324389250976903929166753446212835060576435569777042025695776490475891634564611262020054080685760153886935447921636454817373067201371362356318733017086316579677905333786186989212494343519131596364750816154144781971813837837004119418684790028382001628120941794267722258674533660217820280505147097294021822062710265203413192004217151639564654019237036082310516034522260614172454905549345259668804710714874443616027808287196309244355958807756639561429111155198011136950202021700603376214207174601360120616393795159414989571510611344752580711752812850834549783549569007320684260972571374814682394867465913786178308393913644944012009014971004005001579505528144169883258964417789640102898139080555185473169255427948197716440963101132592273016156467307393847913560321772836800328569085049187592049397981717461445448518363142107466904604930513484953883976892060598426753412984738921955225830682834759832661627792706641767689171614529969928425847366644698392912681068592970332347290895632721156069549571017418509376765490207100162242542666112126566486954133338240047074387061404575949159093801231244716420559721476317067735819098356042565438958264282949067537306165572317882819694834838612236448307881042597172617897601258881021201244489075480092521771353747733365606231208526569883108526838380239191285510319220439064402653343775124101894611343849285173682757224952981616613893579734474158130204049127511148585036332850499540493748354722026058139107859757698621301694026415159902996317948830754724671907553271210701054718292585144286101993279779847582563911986684421191213847727279591238067681102516829746870380901541099746767018065307057229510413703218964567951499171268980713120574461249760933657531060534403504074495259376367892028433861705345261716989416477825070037890789231187127415696905801895964591424169648809554618039691453354714790238730273621856514687112665909489248575192713785676607159610723361526997459499728394080681354381799058067844049666252068734344608633435023519756540989804391974053434777370776691101944636721351249340422593471757942698452217530629361808153509621256595271537791886899794546640509782997401760798328005031309909019231610816097349759474743852939469993079252908292630749115983573771732182338351326678405314376084648855064449899298056065902383394705201176738346187341789651472785540445682913807263428176320272611551075289307432109156709245949691705357006508197448895249236870172831996357733149961867419074890649470004440343137636640760343895504664826165635679642581939441747940229110889551252092569305812421054613006565260003368025366232066539089120892912623824375672821262033827154452081734775783174324260363241603013097351201998058911955292395845310047356256627473082751556251497063104045743719738099619363295759186311257602210909587610601936190622190913962098353737178116343912494492554208217948480763773480795050234692435896805638252329043434435573541462243621654516677390920986080407722602516148536880390100067344125195942681971783899113974117588503236468957882605131954695257397599667903677888641527849758643955986826558594786566792759002815291702622156295026876963764633212152359062826604821475462654093430660326646410201334874936437019940618862482694474026479079940141561726056081513257360924522448782784965874059221441116675134572398594985289300857673760185603242565942073572174940349637225096003468178253333456475114194930247601804459976740882914243350390556961491728490152181543963163346531785182346432143473058829753286451769873731512511656943823967333758139326878320052634601591270542917631738394929277616830789104078839101240101990067354702696599898974761574754299364873911563305085510091022891041090467964154688703018912453056794531242047797952386788012786479259097761088812668997699240286190485247979068124019651138096824531640559301189664399420756085807170435546400177924321909400604458600219250208375064589080791204638043586688296304390468900344500023586818298454974842316189739258844130008237900151746950381808986412248058010203553966316896261683504375351225192932107109101129116739857015632010057384757539836245888953362211214238123028423071695993389580755556154786790841239763977485394134196813403687098066386986151733096450092576022318631267392693127785762449139812508955706084647146263386046411152671101430067471742120074101964856368837968276506549630392185956861472442511047683051591209215875055287163854350784140451541312871885619803529866533699991258084108101643754045819524432210277362982145964598042818500666662693483524232988584027828964995624391467895321446082226282676688957140755679829744972689827964629035174693304659973115695713632638372576009182387603417572686123602904744234227521898820338266848659202156526777598504502554422783935806989600517347176142791354644685702900361434455900451052572790026360256584798694166606429421679343109620911036550744093497241122453145928574499586024633266913389054565694525403879566776504266399265456681253425042519057840639108205385847170466912566145784028180212843829544989295479127066633728915825169159102334962142204906834662283452018514207276020112940929400026693264951475870248465028265497528909764718467872759187024506648208672769369750635213133663559500359581104726421861690687015236158640333937456111592846592513632562266476569832434948749280942487632729925637767254198945616330754282334611944722126793033182061858670268005181588242731424028756604462312568653752999222660460068450740934702531025496111278614872253309265377678498726207753375975863220023812071682348687344119762429341501636093101533249381763661470864827765239966462370431027456633461439851618099876665870844041279130356836140987230307625131493705919569376366107603737197063894102674790765205551695500246793688692843984166359867950431452285418399096275724390373461774297385241854843486350321038519135575095583214553992027408452027446093887214564933580180442747974962632593719284831536201929879551151124996448486856350936276625263934265410765593927965717854770479546314240787745632311503401572014123184631623144607578782644381018733083880078198604233009794293173390432898079876137886702947273008908157903654012122717049390989667743862827071217772178245787507730741635053517776768691961795323187500112082826051417709507999358397333304636188836473760459441428413434757164345933206529161327090327934399650322243924331665450110919876183976072694349953200049447661863063369065155342161995914616164038746903080778395468571561157885334344440820793934996398784237281909398396915824827895999608377512539228899842899846252919985366782142829058504436046715099951369212094905146541628822142701882176728900624850797974548551946622479777206232440421881812644337582163909774849573152804837642666195166332196425863859593632846200470669727325608401736369296451163193410622218465998476558692469144038517003535798783070896843534939788545659242215549200233865412332513027455414137819817154196634409378335173193105275799590237359081725957459057546908075728746105981711500698999879458014370953554433014925243053829332405898946535733006268204670444787928439907367017574532880973735846725904841230274432216091441746183329414607811069402983570245539709753395478484639239797847319650512302768931751727622381390816038198537265645462380538385012899167756884774644773997713870900558869230095675159951397726895380921818539352182524737989395112778739943161090408828592461739517823547088456425853052548231088587130485225094079499110180793935467552702005709424777513396082647371200323113855958139593074796235438692331669865126712232469472607493947530479880945969712011777890958122815743928449829636430730986769308168037096735803653570420887738429907272748242321491394791103229474832998751113883267427632403941620636715839750969425568498669695680975015329689710152268117428950873696469367973839668427163111202855536709261881277501063393641669650291341770376043181592383734719794450542854878209010652092937286084831883725751541631242882120214964432928894521694689731334474950752309738950459189810903850755015700510461394256788785480143306409339506166767051999870426888860260157506643885472588779602218518477110872751818205977447441091563381524563940624283847405977133287394056095248995672030219611845102534624844811313380586792120261039660366263044865357283264773854061983536758614472039837969589051401484143266100017894757298454129601373320538521470143981916961666793193480355812277861817978169973415617502530483699363004281171382801878125908050168231393093542768338056578718501703475231320852759670163935813097444447753331015718800744927632220401850454937650233157959828249608617339353428519499828859968365963453690301541329104871838644770059976909577331773255319106328160390569023359086594243286067193744494464142018307605806480628021662251471584531969091481181430391493005936286358236529984490634661347983817750962792726829073155323983502938710177024192403411412198591717556553722546162108744576012836715074407601943824857727997527555949279636138167242629268122491758721211980144504063605522112673590488443975527202866270920341587663614987076339528196311127596746304335995080400511690055166174177487269900822511358288187450012007431637208647497321000139118965913241238785934919179543062681358100795785543151384244116266967660978980381124381790573818445561933163355936248350570042174261503016029444694574661065330161041175707940154725702454621560501204742979874593190627012738810203381408758578884979852625652702639635942566533473179452506125177450827556081946660129736931061780003919037950104672072591088481880941738098690380292625412051911193327031173660561463138650295686620561161322710681400420468488687567563853728920330371624638201651841869031509602077202953703809523774777562522319906851939287326993745763094418805827428776819584955720493134875803399307697920584775300739390993933152223603432510830657014903262002580288785350047622895048096743754852694280837213908802746182348730337884555273857837416135350730490362008103537549998033058752603320543067635317182206383746750096571953625811168515853270959890439043700501210325943963596753840057193312504429072139476307827593147096175097602809071876815369127917066210320680509293956941607825315120952935416913436120507576374249811462541786449823978598245550753345448350849122244261331239325578276924226281605493787940411122850363487527663919334993393893354925022761742375880847205754606996434919367122339247231542865101132292491228757334313797896117733040681830298116435251302289168676844586477589175854986078803277217535612359753915259496649457236351118911380144294228565291516946553191717672492057916016498641731286171494799232776033046799977201661498909864236772549258831606649030079725603641240828372750867651495927867714489117657882186711386013978085257693565950117553775198808504130573079605347823577933513427353746646790415655422746110930756130539559744718904641010529122292776815833790731724940627487098295085576492281904065321454055984999596666610717252554106390455603939880171525727676820183176417052538876709944388748094923953084234036430425339556765218731543618830602308464505225593997927994575155419377219576076714630167987212734242155420880312465625406101092542982521432996089669206552393379016321591871143004076401636378958135448686113746725494761911895906574873065281400837268247417527501476228759381411745544702367887150745615539458749570636652083811857513201873004976972141811136271310924779797076331929317298363422352612168045509038844559036624210378443044553194244735186409245858096713338219805791889584685129026094138024267364819386812033595043516605652201825591940554394038231169085200141041544638221753939696244397353304578125391254381147462425580467718495208064740407186320868226969030922491591435052242096821703837367386697923435508982674343382628319993189320207752378252753445431518228570203648059505655928715875230577489812012817816945637355622428656701679691713666151538597597426565905698544907722473514620190903402233059400949775651848201544173296928405237411486058001121430580810248815960544727684535104779523313929293584483159907757890511960480247836574924227495186613437861058358875137749444456013115675882013233847258374425553779396442652683836005056333572081072261288545151483431329759882063609549424957681706575099144006530546162084976468510351574701381822873315041210065559749376372655108234156642238118446165911935623561580923805867333016218564440379670595294769247477745076806549165427042663899016411508272403806904301084108432024514041284965045000880941570932399817730025614380404016934141693248008076221772493911320342686220738161116631402504625928793046267636407957412339612916887849917272575660919151613984535318847845337676919332292172179709229162531539164398273211780657819295340974327875597563908557562147737544337738946770228571827237607607993932309317678473341755240643026159399230752378364436533159291331443364202470883917808633226067557899421529638687612268480282609419201931766682686195757073337970673742670181433685028137834746898703268438190554351575629181740065478627968245950294898330147990053668158746051242503330530575713324975030246960434568506489460511018002169422510661877578016516403729094785802436162219970687320456999752427975847693945937815771207986312478962822599242237894215487890481747694031849928604100085428628260635633820984729726671704130901904616125030012403002665558052039720557992289094882069032241376648759105056351306017764069720863255742303296625285274565554380671259358166557323276136345052163226581534779245611945930314526273162154711678346314152480861695030757948504701610273883608125801754624803566571601962092358437767369587384924728315134206496708130701666618911228127526511785979953036722669092562466008021330803549807975306568703609867495579306430124147404137609262545833876529358248250597907264867796759697627896967469034549442084663018264074946648016753681779575532374745944826857606701535356856473811605618680397031423625271814533989491071448066084354400706712895716665354974808406900274323348632997664701943789372875952500950165985602137317734682345320355250252327608958774916231862804088939073394225669407723276140001244619163141161845368430065091318863472482442732980335078398154403825810579724381438526971687293165797606346730045991689045707071936908343828941397759232132133977062800339347680633103886854161921539771124033882444639577341367735473860452703704169618710744381114272685916506493908793030751794697455040499114891867346665868775506372538575015103666538463737055277483521613378075170583799558631992246054855149320916059568931354891937167975539601093942923944871792382086329950542355079706910908878080955560296411861473740174583683289873829633868131396356924218335369928944060032604290692295943061702564964300937464598730421703586461684940415765344496399009529501936670918534109330080315303147696464999566376095429208265717212762545184833812547316539950424895800055171309154353341926817793014974603805139363937680209109338422885496942140292560496836892510962776521163030063810720371127725236463622596138440557644554594664702639900068835241304830959275116559700456773093417704790231345162269283297843664001371107590438729066825120238609158996190026246214002704620684818922204567135981483721666426521439827597734738899950716896636986772945008435135186182597851451322500830599520777511892031896412901342051486511950128848010347067300455714567440774208851976459013476993626860728666680825807484852103539091797605467051011618954831828258178922376749888359153354976687871764641889807731763149189334502010196855366839843089024216653320307161977784647093530425276487347794667975073744632149533131704870829321230223060709968036612540506270467750694031122302213921650385726704674783319135403095760952835518076376688235536801628036511755625762549081139052047880314407788516163334110237818462789442105061742891699118448218319514703232545979124597102008487841739119225005390038893245762688036556140001107888846078894596345460790494905874972933417635326188453206933477242577016794925018468525714034305179224762921019008281005610418618747483858711922410921876350713405322776604141454823336613684601499500321822515386337641348087877910207081367655319016266724067468342513498363537752536509903394732142430392918981396241908984104262626400863653153549141336401814863847904768281897676224898984080549953878430302158743479509169352070670034443910129525432315544211956511735546654774964574256693315896441006779762330226124375849621115376153528464343520206020969926017796477250969006582767353054802971758184080554751641677396270041844203964511707276099141008431285364811731544442541295962110582259421467279944581287464965805816034364178709593484684169730967804790305217722848754452552878168383162788900944909183301703480083023109700005474376064512684869856112703875463631082626758069502646819967141926888582028792618178707068013526059723143950366635192337601635390503598587388021900489362136247326138371577116989054053252338932452042270626537140695612940613966448536141626960902792660403929948066366776585300094797024189344452529471141846496643568505101875170734479412438014763540378262734739196010658889573029690147530054496214895457677622305124426445682889706508668472293157883725801643193726277698486169488363293604557336374838565155600133445528155535214488289865722703493734723285914424194747454999415686456558105099960622285448358839511093557521123678708224283730432703695084459347859140771515102187899032644604248315238182481072255625629628596440873411987668867986363138621085534192036368565628097049548990486112334600830652374134591553088694819966312102132633972575002567468682362709615151476338300619574663601132074789018393985029611770699114445377224667526807098626083311019654622999798855827321152066228158152542603016328173020459853439560618825960873705603647878213065806260530257043071160231038071490903182029892485559084542335413460359793783438180980966439391814216971414565245252831000167134551758445731816084320203448411148274447895893663061633763331453219636998594127303532222344352677366126419156190146690683692086748748322052829756560980773963724688242949635694667257229912661430250392439695856287917569946910173009237130198491416464918573261686226457350215359211189898650688575778956924112798766822205367084550713755419647060035846072541067527348846806772204443153026601804570969624590023646563182473906407965438736780074320779064515571539845443110676569045060974623032712217258926930844236652324570271211701536751265991083192967113931274350716428763903406843866415037401093231907453470778611395325359607015528475381792215523436078152510568232280910187861225082779628978177398857640631535158508255443326148949183865318977749046602061876233889469144443664658530591463695985617553240806174899901045279251822677657423976170431996240162236616239852378129411560201596068163607103067716132483075345689414562227570871636695517552649327849620623623999249198040994646975845207014344016727122744340848114007851777617370728995852647410324290617249261168482056478181471899372487555327151209286472324688490630898803391953876677045734040396792003574125211263365248206126583150912751853569805983449118664789216595503599368886739139247874301675128295064210623198865845405356133339852665300260231514064737390100308129484040920456460898331511006954886202248261833190363821163442470369520664361348819139481280784540422733930653448619585380559383767071018948172863560842496071612325850045066774777034251171105470265582366195905623345186546803905196485489349548327408463018488068038146331715781823657888384381476224439864557892121163317307887164148692237368004992287680624403655607787538492671880324673428973990182309109370485142841184040490185307327322486275261225612198330364318690589334869352463322032089857948097111977827268762186471336423553905766334556472765535499624533089944609668676936655696231452662535543910008986691758255321865546120345029123986440355485776935761090839981428175850164203491820536244019883220835724710778862757294941450976192727021168764629027280417327404173433301832069669351713553367044370799188181812052197644097702624265029452115274962709022922786047754098615997212642981587963226724115596417501495650745577200889204709721835422233612158959147498769884304959275495998231234052102645701989764259561556010549242071165795758550077830300532217624914497446484624030126248409365709125110570451463506953573183945422042363281030311821673847861773552617494133347392982014837474185933301478169657814600070420659500444836661121169568493108118397073987829004567108996841624727945426306420203826673201021651587107382544971989480442463130006932834158812204171615524671900861471244549106914187082527184445579801551975671843304590651062199796851173619007679319885976307304962504456221178630406314614368004441896363329643814479687503699489513464078092428369238788102457176853984413498363772694979860687730614825690615590462895197700216312337288213029291719465179633560847194196236982816264825792927040306713612431259669278051702497076019144673075521583687847995126268871170283970379067667294682397386940496725648709302839107687825577270906112055094157647519032095863298000507237717537108576391033694906711902255385566074787193429474570617481163360419005355340692916118282512353447928500961473262287510957377794118913762908761080654787685829429967634810942890655591874555835937643286449255051616422943189448634932397068934156343154666228197552052269194801749575846665551166231548457277025627317448307308469586634644489194910427659851744569844783245837655035703971594995564609357946973934200982011396555460539405980551644801661663265844659842617888790810817750297012563640003746500064218669498289150024010221394379099178931161399770134803400996393718846763238417521589616727231371749663546467466566708173377970642398909630549907935541814209596758660525859093925674747196775786070287520242249368307618110300785936147924297531858376811685854643916247280262473634509495065689184865558548915061229438698735400687863820090561019997441374591389865198683000371250929091145898779865924709961997454438135684287811066425390789870613423307815214377393236666752558827083642356802942806838554843840616381598570318402191617631793384251070758524133391107535478650453900363277202081685190333421960360079002611690126999001214979041481151475752235763684858465273737029379725211481631061759950138603822109535158367612639548379818766803998446719161811089931279540834467320687998653687725882677380690663034735793716971364684012587960050024517007653680383172758648657842147092277467786924849859299071052567606388866134197391620729662860456199766412017503715880185522463314834066554705614803611672969432688951026577054576931981571519371367538046847401146858456777297583782165275192498089362483003524705970494002397956029501935785713836903052944591274434783587129442568846652452257212032019302490959377600609772287311089627746089188268594743429492108812302059850456356761837493655972882342499446745145516739927585055144069471322145242636360264089442849861854507690797824078362752360123461286381744978568354103440228958353130311982897356451353661869409722917343929592808154578336324456639044231787455900005968987831563006263413633075655590736564940776169046549156021190489432320798517230598546321749383934488163510817991417846420375528455260356068369713443985301541023316584119790133577192793355034602903672383248236001025224059848025196552319478541597163593893825065959784862136038697898581189673957006065286339590243964476161483686372189459983638747770671613685981771647577906963945662479104046153451913852019376436873373747111504898890427234613413131273369802287713126599008563113996737022954840391848218186840554534183392742665856153366157849735145703415823176367891228359458303751985272018585559989724641337842165544343436660772138543332889629632089039974007524471856722183820733204619753407873624666413613139746276145755498014057621547754450097611658544934289997877354177177980401944176428669482944185134360591727360298179581962739999103752766824590635021938720607584860376529537966403344353877092189110217310683991617223769083805752436833489485657408268311422581550300875196576876774670371967273392760879319762786062068749326818257763692306417618408184231355977696041750569717493215893399120298445781481527559862208207400931047400510162247286132354607082975659386874320836986392471592320113628519755539686986009904828701916524318844887380415069513797627854259420687757547361143415888344826379309714979327403954577638602756864959160917470161815429142366789146029352851954115630827168277879809602816175051901731372819181384768835553279305528218909830910964863550880225324672838405160970618723572345185959259440852311305994994254577696342189290525809027174159763312775812873262227510756724341823861680402092264630546362322959655512720182296716676335949017429206406158995058481196949354315881645203872227819639039707301052809920762237447115303577199374013264640460467978639618504223916728747490320802891491780007131131360616855580447539423807038859475476157237502511981791842731418984876708350037772385514121188761320183616494003999188647034350509405102799766419778178927628337729212851013926098048942525643453020956574793061982359723253239044093404021900197078750360559554799034577534107507340894946334323729918721097188834853748755163942023443529951391945332001972114078252821920595657681236524458365574023209518951984030729374438974061380575213627100238065434554873321634975389560881364513901060285096854080485769954373042967237841855225624717244737963618677645056503165917265651052537397347823961296337173647454873070413628213012576304010077427517393346462425401239861391544910941909490674639281573233699128266065328486222843138270668918102514431514228118602701574251929838798961082843061500583197760892023507434311789148199747549149615879999092847756750775063930320031901859062828021958551913036639610392640621573547875276322868693526384008000305884746226425784965463650770871351607931998327980349331752936312278834805371646866118216212844827011391111413264177647689651174111242779279101686621653592444334980556803484465639619520745367666520333304616782385234014803966482662113323777122132176058538153557871360317093928667918624953272296183039324612935336960769057022738123764084280337601414411614077063289757853235245881751161606489316616650333102399153542773815462190256393833307578920441149673803226198143571543060673044851023077637131509525575356693523510791583239810884769296832258964438858145196586376028578900596007741255256105433114826666640761117947502979126558650116703488995863225073129526463215174458568665108571797607924671859265317353428810583320827865012356607278748924255236172035109260351059037512861108491989771985171648750352072121778225608847102110763712258325987791230352224210751946795566015308986699259795319081424456575646843182069470093315428971570047242851820524962560840150304271588851878818713562478590004747264975526512399203528048346048753778449196190434453972698880193917770497222221712494262854997994958006750417514118298982434216279507196495986285603758610191565674681320060342429554271827132936600043841128647753577715593109238348179026322200128519142043779404892417129160941863446826877357674904603430123516958822049493309863281596133384915864874534463603418569378003809826254679335356176340898178380373773357411634608694865439686894822255615909619254588801745689662628997817024214244589439767019122359326521320234051535261738232986264014575056973624214995491800814923077922442273820090219652583605281609133030896024215648605978369299582073809144227095876150239737527794842749629672125646729208657030228728836194303531602117717372167033323143339832309229038476870738207071597075193172539395094300673181309378578090857006223641955208784879195797367449085174347781896196859060994650092211427934978768308271127773750934727811078160371022466549399816533842853490765654994122126901874408863933658969093787071670580984128600987232966427965485143258926198507410658300789842815338447560431258520897304648878435625675080765257533662612335431561092436517056471839252126507875956404604675560596857969369429929102498150212695148731702613115760672264644622931984986614665369406498212383267567856185586269836690242258480895922843280583568320056601860417222625559546196252770875914486686842474560272578462564955307482660644017352626467818300225909727876755139101162528583608255489910062409876703739940097107116428907420463932205760896713636988218501162563272196921695845245401366468664161909127953690809542630989780063864116485407488082213854731738422768823447061378157178111733170058505496178560408043138077570965536588142944512141259083367977575178786574401229219021313603174109465355068232596613717986922051271292568390149635681392461614456705020449066349442732709479793313749411468183156125876114791209514458604373753656486901968365484825403310788086696359576054992393869564066239526490870688623308317290604949856189378933176630156310492784614210130881485033397648427072784744685186793251385304787134497321597834326984879995635435504706098663623967647260222337720799128697116251744633235109957898464616782700440786982922798245200112149619411687277317453468131302056263606725402199505724941090992311283932626840745347798580840999513535206864954343947971714261511705029595019007176319618651518829015209123562688125157612286208512853303623105223096009396931758973589544365160919640372574351326890382642658851826585521604439448279261488512738467833538862715797259564792176366147787143330253605217035469454857926179561759542985919659751064765180140790053865528012280009501107353460835222863535823305575108904027951218872523978943301644280621181509663728645605820845932769561751663085478293692715954744402689746477145945368810729613825381369349941594817706853379384455362115501333510310101851585072607740976367141846666667010282898679288870313746235269086011327853845965295060272151315754128991695025004790721334276929384093250518972457909597341428504956273545409738890262518567093048458086740734168014408848789038915868480596129997593133009223157152035218993558861098313198970710147477793284369898754053854005046138065978150189495311748765172689641548434252271553197989546946871188553174855531384630652269196973877784667065112212684805883140163783128886718410822157317004123727068194857638435201148094734449870626444129529167370442583203334136931341714132051783672053885805351336254925347400001519094045849335814185442629931367161545796118430134967964460303658701330600729167884728908191795155496181351836509333963711748946340886081935377363057294284508291834972107096659200223915774005043185573797157144641559323755347333459145468508750275668966717841250268850902590393326980370680648561507781655665348536709731358549897446507196880155573657476697994505419546401288664449469430769023345659692850003233638750176042594468715093658402002064100386522871868973357689258997082831059975630363671574324536869545579850716031301533291241406702116855603624714066505623247663827673678703576854580265601745515288428683621513118084448702479648498276618188291690027446725918939399507542426939742335454336656619941191854228620008616557179843916738295265537280310237899855757576110139559567271261110176685516564029513899121242131445998965478593404991925576228744439943731471522680459407124162618208797006317845820180173582017868701997710803848985659287412979114483543090803910672221448503229680963924161300788529220699091558444842044001999702049345089122039376547278954101303390695148694357797519254144919209762954634988034449104900696888594055455614319315638692845327164582823176746954803801009015147260049182085793427073256345569916242933945648282811922532324526230270425412840106255124506901980686707971504432893116236644258826917537680155158827246465083941538531584920545158262014246126182157335989296715878844783744725097745233421938451769473052251095861139219309560322031754488621647818476227893280310646058250674905540070049078267379872813447094876120366699038796886645622915536708668950523887201861439908599612526035148484096174415656290896011627789740701014624923768859213128353946609852150688412922996183558047758097901173312679135656898594704369049163729527506990623449718049182235740143439396428799449731375699982377311285199521883425451269408496154879380700004436108102410670128535892194419863397151143893605280402702449276886428835495270857207444754796643187607323181389631226948872558208192433772807761705753852102252053378811934873064323791198544634243233272836482305030665153111536473098344052321779453047359893510018011090623650033151905644042227570174946469103464369923213636085468738558158907675000759352187554455452720530042766924740779274964243255452502974160105089692927740487616613331035534165335728657333689389154931626177881572689382591241048046866556681619334406915355637113381364924692461419379763187493740962244232863387129860288770772539289690824128407317195329668975489063832902929172851043647578834532485379645965385142495267856487579507058500297836488340239884948398685821020856562640411337995379030505623961139140988896879409958409689283655583038504498217691014152381925229511486725198056882118696342437140293310323064266509578807667620767914514100674574056149692718172988171250390980156800507452375918025942507395857602471375744309233600888726598331134559325467830082599833993323054711616432381282852363559644136352274442455947740362556336676660934798714631661685346042656976379407132716271579514290809380329600811093688060877736488007989936981457891283620618171585337518370757371539761070718560228397693176239208741062654509544225947125999698541880109452476412744943928874656867419310902224518545810284468456444697951840894467743588082239876492642550649877927381751040901579038989563176559020001928136945491838242340186403526841206188046779578558873315332688572045374123538654655072367190942858968527645658100701410384485944733615832131857627216038042732687594518474708838571319388499300974871111132027550511264700101141362144606047365848030387043281344066220862516502288503364514739810298392441162035429632439643026119265051546370737138809938839073544298220439146519050049672261509256821765333241345625142374173948625241515901986666730665710925743071522048150117120026816904169690075445234121304669013472447996316254447131462978334201557729484442092801536432588160523106945429100038865579978348460943773195886473345775765725728671474315597045457091249161277804705951950805486962248556855125438650237295306906770524889570533556788631553981004511868085123260335980262528696982824774954145700597781273014500654437507745279667707780879843762294052200278588677585445804358192885591091588705516496642888032217682695656796523730893807691808116703919479885385036147676152926225296936022994611725795976933303292728161640326907005145265752109863559455896091680835784321228383767953697094024590891204796038082902682983163544766244233034340455091978994747487229543624660267900265827576494382583080611717718666084629556164703548064668127142193717968413907762153145678749988034110694558502199753016506832231577781621527936579633790575669853562367649142508415583406527463238110724573147620811594484485544025272750081491504561095967021165850086889131032687009703217387288070862164331653784093818871819449967159633537248800641283926455901402573703408650551130401965600496541738610328499357237235478549344311314967541498686723003879746208049111986068526745932712121579751783885084226590092929776407487461009448128667072018675007128755766438677853429633178731872951835796423251623645561581857414673026683566743248487806970216286055223403016206645912183255352516232711695267757487236611239570180668101272525742524573902513433288473064904521231604542913136128415076716494783463339974027692170322586617330940813249193491877752277557355108403117203849762501704353502044885572001293926717712161858690577113493570483479452644754174432300499487437026543056716619846473677978391241973167427711258614448849520138005621052852607223315155740396240596647565754641002497687889083684295297981429909081016588230289525319346695685087011003457079116637392664545543375167735793928373190003628493120265157649749230259058453567023600124499243212215224387003078862416786285084504822596450761064211685320760168841390926117110350107434395592970251680532068661650505930944418325990135134431309444475735555023456780861756155421316921841280988331344778929734279928416594153980374512142145712953584240271136534031085347214282177756943531317344702441815106377694500056107177755536233006764224606551450886265511930941605126888000164311153747591183190849299134826206244223715850310760684805950896398447690119086045606166274161528556693944456585911399405036012274562571520696348040322504965246785502015115457482327052352170133337494032790988973915751805864523422312630796000007732132271829094114314751720894953573388878855798391492215136596133682232826770343670376045238405118863815924251934390491989014195312482918805261976415306799473984096076042828363731068753790060236742004019435804293873931766695697597850197803546988021054245116570615762435969801113212938271332341966449346937372527794514495787841448721964841003848125455248730020153519586377610531542137820902397931450178430083964956888159667569982714435273152337317842307423572761397819753274764269361190574572019455831064886361698277525083862133457742502663936636095196645577618171841608185908599715379020135497949736660442918319657793966099389780260729254237966434966632988987440055920974914604047300757295373563984340063924881858043488568215251946368598064561755911118351184676120948099197886453564558037812557652550089955143835507889840774503366383284011693158068144244644743290981261895684772351534696293173235466684648557599536672546508039184081353140693844648737008473538188116622090354028026245790101468993380711809853781653294740126983915867716044138377882408326780230040641865601019941155502584222770622242912770135794832474577198962953044206918816166063224875557366447011416642182222638523113749853739171603316322231600952953813310892983814158949196074388837761198858666974172282978535936096803225156342826800679670918915289860209891822717288336054180510879990050706315970368376709737360877497914939107366706981766354215107291786087142444461498803760880830364483202740100462491859471004778140955127183245640212022295650358660272857179050758442706754674686265783896455403778758978935607535145230473086387207371471653485851734259864498463183283087731508177274520692062868355365028901311217758835992771696486415081649743682587170237660380537653812717857901990709877053941193114844265731491275874703654489759436733211336959136148959376774876544412072628566929965736250109478661200906701977705173896668652912205113200922222547832055865604910930775436791061413639605064192436704399840661217977893799806556683212837138530539561941146168427178575747162397385354224892384248468306688097393172006888237000920406541061583526207588529114999491766905791938001739046752404760342600159750663615971435164454301474460136253458445296993871059575436401952803680176389882467062080820578904605775496148344726697225129369763704677306325073481532408415059971258930535217746297677893372232357483171797870646819234604861812639009548614864580282459846834140373954744414972658971898127353440190819635253421972891411640706540457282335230249757282959369249997987996557555825099163973529539844780570961225424695815016084952291930208322176531917823019910561221973341187695167236282413129495197300645180975415330251491430512676468457639964109283160838955418862660646056075595125785656947416632090610542232569795446377577058249521658892572436101709093096804891206953954883636513153410856147459791690218946946279435808697502975118055814273032771400295426996036641532490140816889476558015215203205501902865926793224735942214577647434660969719728744157717823230196705657354916318208247323927028921999712125602039160510235747904683759938138850318194617570085277248029313048908549169998805972283683167154437687751643139452795623705463926330449021927807714758778562843555967250174667071149360125573337623136555974324507048436716960173934054823459793034677872205217700669325078422269506749099854565492138453787931605387308187736698963012045871337027031556808688594670195663022949670174071066262932084826536495149308111617056396673830948767137417696060790683922918147617090371254633064020015397548687757117523453572820951642146181167722865820633334545879371750680814738402713673824992653269067839260166747927047367527471524528030111163639470355155028691634321637725837297209232485458647185609999770184267480868882955447200697954616232770708402772376734003729318459826368796535858106207248689028998313814438145223732825257330436889016298835367294254359490433704858491054894425871622039910472195735949049642438309159383417413001277422641536463595160425170808904313432718007275162075027664513634025847785264206544539407330595297261485462881149750882330426135433019600409834520707140697329040164399451551813495301488966476191649972042017165512216994169921547583781055197405623465491434545869631199370360292954799345955850624929144741581251144842483322699391890704403014269874015960301585492917087403173264695422521436524283189121314916491406313184129191618554783449549580467909751843103695894161116028521932390503715592013097994095996949718020335357351562837917034536908267046691631169071992723561850919009022778378798762065513433949219466786272028653570238046110974386558321967968059393972041362131315872597998426327396534131739308719992499656288336295339096774343530947028192794756207140647401897802919604541325314582838300208292012074914256856627428473311998461235827235152448556283014170823210167812346773105618441891289531979664810629174034885020640666469589742155111358153830000563222396830297118943851147788332050481005271684205030296590598786481365133215608886108517905958685927871956471842964642086479009209567315023162785576588447985893036810372048962458937738394340338863988843841736357848304946726703144399833793465302602895001022124909468976173487896122017219749512590592405781625764516534696776402021058186103876018233112089692553269457468236940896132404474524062933605920438340949768829721388192635105729862042875991670169035668156832625283681118062088920251052006355869835422770755743401810325025034437632721702499826518111687707735942020700520951122836436042137697742244468535473393482470645256914847557107289333051510794070148542898802435603534030623290677269417340425965059338981504727182717538165962537430807041496193559343938062456726720853250093384461830558463942158764987275835520009308654346112492826971129804519741109040588017992601694012331950613158742212983468795387545420140161930274557363819651462397449600860190230235499606674759657332132353804495024115596521856702478922093600862096731674332317650494089629007440036961577072279930514776769857667435706076663228705938615417171542734136273308648444816644121430248071478838657244179448946308965061209395193119121236370890759768226808511873015091564143403606823273258911247140474672552957547501230007851096195869877570908202976580692672640755943974302158621991021723711545803679477801927957901469227960082206111825669641078988987353648878662552300029823544118855407455260275823888742813568337185072145728144712949342112151403982393540713345797775569251559887417738225346140674886811734656563112274818456465794375366415851888312184071741920165645495950726164766491727563998373581396582882507337567508315625138873005147212848987671639697622536498032100861115101343631600643909203745072177339354290123198858348670732065224652901424493723915534289943091776105314346707028145022708142869453523642121591687820317205292933026703107734900963274125920815490982401201221806047565572541311631518881592079895169507965102627919234033949717989952846046783470412102742731426855047338828071475895369056467063956831740225375104280091945169216814610539336205629012731659778447016291827899695558327313909677822643209709982301963460378859251886175383647770478407494424275420401950527045511816521717404250859226647986367538623578531576126494454332828557219548817699713312328744828925281119984959190961115324541809844657447807816192765353598446031961820050266290318590727198912660484494708909257814900894727924764049828942614196375021901402164367655692208660180610582878674279622294080504144048706942408887519018111797517871988742142970651148022819957068897161038498761980435056976280254920966505583745904548843689558882541620559812776114470894964175901583533788639757542404810161169611297332583238285812028520979922333256138587281329832959984374269793897718102702771352975366380934176893867731171476292481517246406783916647925237048267437559069084697346596168708910196531682113379691460894733119250885245591540867486240636142690620109772438818398194220498722923893792706021495794310300527107289096009392845997497565018863138560879042993124624617071690018966287792520747461447498679870028391409885888543290367457709721180021823299364387393875169536039602305101583860528150253801082942117862869487669854957935340520940024449476238301319541728791211199449887010619411125150215443260979985663556973505773391420782448923146068209469540435024134071351679972280100987755775796881160587738405409640523617082737633363398035917101333545872486184478640442325853782685216955464809003236399930104687250012860670467913921951711314583864299897405040546728782379936119951164194837894515265912548363786138120208646053423834563479527445348945795641949347853642189620222103226125806630657720257073472412899755561129290726439951735079953186485965647884557492578393469643587430808077621433061962789344908482993162264939307538609328968246273209765799139905590893647161901702504736049934775232101148549753385037861689685912002505965273896215746590735826239207600645839973004584012959852088200108073386418141781761365221944737837523272305724100132841514302053534376593745173365134262676977092720416079170098834866674181693749324505835423872786282147366794435089266029048424538142493741408444380859830257631251496721384704428950509317280562312986713411169304358109970067549297877086166677414516222373552579366247260260427475699201766253227692489157620864393240936403436921655586665252886769197571353561583882589789713573341145348087660465370009080251507558915793019063210218851339911460323605591520232368106034706894804144175216331479471678423283034103152696450764411378393365696451187177531494940095954092058168980562926233048715061869236544907995837923829963952484547778923772135870937964947347535074145315251807689642487225694604523450768976624929058193158246375664733740546228833632622529588433796166139948816287006320173613293204367757254205898778650041774177654897815921866906082241496334114063443259222870949229399510224563331205101850074965501359129302359164595258201665522599812692166030035562445123471617531862472762179397923471936740522534826380476428887448855578221365374185765765742121452234962772267321197399686617713770402253995608274665288378907155783964411251639750607249196419821953986036151612615029876737051145183859303606643953717239503118441953758269020292463030329917909582590514151977663918596361860740687446859299438001113549567442003254717682247331604195357492840199187845561238055611226429560338688642725030883928426473833120266550556828389186053816087043152222621620289818651429942630823057407282512959480861356266045274507953539252664782822611680507134593594220700487790953993586676763638021068288516628806187451348210726788805610460227566716308258125923058777135287262897123544711183883640745187600607988757704527355741803348973422664816673125001006791167790660674166773438477491139926978675717113643228720759170441490717221524351187186209848852880578477001487403075919145435634612908872017969757444329582682106344810358144545090468684496168457307055971921660687847987730735097494597313706702068990166395770010507234005810956984320403303737321307585684638908363442430063918208254769421251120179866154821345149880455130513232375304680330443887051115724593779614383154015483557368042602276894227780242045288788515281763031443773045766402259075169593592772047067244376658084476336113022976681830819202724200294287389879078469252332474347944887574912941618130816196556874752654372990117079096084886299333839604011540107921387028420476261326273052285829971510524231096888910877607427024516137036660338424116244231075262478521650253622468938364860432888803117708633197208293026835067380116952066909941377800056054241919437118110147753285961442226552897350833324150127900767715008635589410094264784476120137402063910975318175149184104305267022372090203785564178090753895347484140509034407923434627466567486610894534352130058600822133367819877656314799597202043437484687987050442354655097015285042341019108047792893533236030282270437619247158330256859116629547837372987965848514405438293330054910449988360072297696982901367259361688490904027326332288170978506059484911822453556787308128261950599086680309629040092319711292968052247007339517168947419955681834043915042293294624047177375622774785247436552441117662546184943718740384336654385955253468401128001286314793965697924239831496357690706126154682222427403259945491921363255499743611258074164958785185607316944040985001311232708900572674182051564368411698312200230798575475050262005091938540983353208783870288563906589374579422843252977356477477015070742236179686119455499797701629601062478951012298926830697188164470344365613228542961361758460525680076815746273958718382939990614446281739702412550652306249198453851927577929955096241228368211423996262808923879629761354472762169206108166803087557069952143312600056604484791562132268916144101828550237737058277548608533158984838894079086958190468845610219489218238785749550442477832590179372075021012505434724750408381718186322315812580123358011243029685576191350737309128827715777191011355647348377697902800523066052663524222136492121717407401301852226010030727606386823642340557046422160479317045170665468897967623291022837818696675602964142643654826132650242580401224819349552636863022042401632265750224308456778397336340980548681670826529031236934623542972576767552930463498144437904576035128976013389838398203429997434124341493580038043657630783749944553764741148643672834971449064736309389123860048325750211354588068458764349512506298851207157829146403758028505048445414093518504965374582588195856823189070689092028736676616831265766988918447255302437268594340530533336685969029365593529116744133137066765694686752702491781698500804424958027412484525061181419220376701635943513048096578386841040237908873856948786059626435554581567710451565266721398689104577191959992511557308268893299050020296212196326797297425531264217217008633082567597733368603420563516892795804817343459973400133513739283266865313494949409238657250563687338798017957190615630413815245562858401290309751497709006646934349480482337350948720345775845843307247578577660253395165052801972329908079012258170030931292020879738310695283996940556839000910995272024159871262218146859289261861081857827873623205787466256388982006153602363926215768114090376973732035043948541905566043585927871678176262266227267448890127607122477319644588616153574737806684713410740466015669829096462783733494891179690467557560922008966302217184569512198714506137785804562189826563955681045302729882735626539262446288962185857432119624174785715734497636331222149057204618594293276684000691093435599724152414440999732853088899223076949883919546477831107834705629492250978691238659821619492137014702339486397210320113297904081057921485319301772936824772366059084719630905546111486807026397118184033732649318576640747247461465530084242785220928875820004384786141516733203168722259254443622451529265561197015174998230738952720286933749703550691564551446151761882116495051286490715941627238117606910590660824699052550953066993032821376557123508399065350138891081242085235892794885832090750502706135742985350226111367844593204799382909877819616312004455153375196149281872808035776398128301333367995018963789826156294176089651997781218891880421079966578189425707883813805027229349350064783802752249468782879236894194277113323845516525031081580837482376272396717222123693350323829666603139489304455387492153864940660491504020744770047119064372960100333233063235171147292859543597185388977832708915052342901438945410776292183361963320387655904894383316609156972249155167605870470937263986977476247342369378540379271469791863159524675578143522467140722343433257942916004945007227807747753071377897706904197040406349115857620977700871961295601505426856852819487069423124042082673263729974062878120377718258691246421163025899786157797859735142013030664523048141930194237188452652423280463885865229611374016098958964804601714678542085130847374779417015372580492406957787181393228525361943835652300661887471458382183643163480656916486420118240356363412993551011334741035995455381709926562198077692037648451603346187376101625398103241817727795645022744086142926899577303813506890334329759939664519367561973423648824345128241652603562334005239464523489484088536425792588280040281716487657451045705442395507586750844683951193822425769253879232110750190087182675230864923721705714852794888982450412949310619530732152897530623598491603168415914798055149957724129226216351946779769799776845326915194744966762455520807532916934697117858287341804211415747071940440678847252268276709884954493424190558703330567627051342400587348478905777525289323909408252628822539758704394740903832417219782910292248348512919399254269901100928294685813922410714419632560909904312670732497188348804070351858316814825540596912153895381248857119088641092735916229958595489075467090896334589717473344716989771757257805081696174774188425238238418170049957855497352275182245287848089552897935250802993818727183673439232870178791318255159285279068055503580532745284723807696835861378501068829470618687677476560731712158677144874158993672262793854800613317460258159623526012278608150579308041557704256984429063474618633171759995765979401965986089879810979437592976982321196483729662964045971901168257726560551294892381169195082745932470864877537255597017681385265255876500555318309387123083787932740388126449758812298365803452468963106194377554521635446128863264969654769347376772668450420687993506856516517474443270137843982490336533042505938897523875839673972936205810472477394845205999305200908870130383606942703804253435311375458400731763340817281453838534256361336081830554063652011063289205384145480181838300674716354929823870668381339296306377074383636927281449984987930717206234449010804415831138495684468651883352557103048204513436466577704075811546161239574031697635538704337396020638779936483729106179886241033036732579375050885005475319311167749801296062126505827289885625253316000213105412160404982801155015426698097811012671454152565101173115016777838459624867479053833077496177807794297088878784785541026429938796645727476833676410491643988106710697274832904182194884660805506566755002836746889428032549884918317039642664141471688933265326450771927860079550822833375996813464344249454622383303318829584075872511946155583259123712965491392910857285461029595206121091642284277489507736279612663048656111273964389851959084076522633382767156018401179007849688847721052410297701208645269369484194447482434648339105794965920488823355429366234236538537395129846585542666620782337873517442750007723940490183433000895645927709541423747168168870395734207748094695112209057082475561052988856123555722431975997704432632918618763278902661264009616000315567365787112720014341970781010699130930612688985429759898132119096847389561947913030936439987197625501687987977383620402455465183935804616285701938546756213330188770791884242551997495881265033868537312571454709963602283479418986765295958485607333849802816340386547124831836568112434723379101918213772683144709474307840788394961068118516165274834478071269582272304304453219543830554968844239689630490070483409228178602127117489062571204936216223053695577689365411941316023447436028982174151119184661760567650468687217685479437422998933986019507701725956896720083392684126468304777709511824759997677687440468033220797279169705950508906714011055054342727806547798100272545419293407763018223097759319969152337954176645447370076664666048266211153547791974300423744730244643367963483437713787408331807456434944691502192330091603824649560591640542482748988445400098575439822276163659194985697254846167660513627758773555390546304232378030586627317808980597413798270060596879692068932739017512950136866800735693053020121544541381432434444986963987553278905721393677769111416775100461985935294987689693597627876947309379713285145737343049752981964980614746552433344507336836502384590445029978472470598251398930550876537911292589942354193296922102196640917059504549701513345306972936821486545676855741203917038405118061452853065283541755848177130093437731153476161540181653620344804441406444055860544123806752313179381388798558325421767137726489411126836305865162067112067156323287908224277638661708784262345655716283569192841836717492822129393705478496186445064654553954283173385069542608051601871282552963044558198427249672802396163546037273822352056507167808290004712902310080050067646636864790944917157039544676026585312140054979999600826227534272018345234731542272467539344177012108499907957219579596268017156036763140618327757570343583242337751671959689722826497771200772484269018461517044788740506531304606085232569817406623784206424953358419501537082499479363136020187105511314096729131854742469060828691937839032988304031066298852392663450058118135188344242329711161901064326405041727496543323775298861600972697950591775089945352617280330088294331310184327787149280855387647086391530312325256426642070051571678892389384489854197304451640590907585930470332290149074747028365721600913301941638433244089778993335000024900237286032249154536307381440669866922507169150597231586308419030182801364205277962386420275260737009280159562061092556128121655180958269626423512559327261125100200234776367382104124979665473333734110722247128755025769326037447258558005549832751419345015353914287368796861587881079052379678186743737395046474770265909146395424470092190942615385183480249050745816186706367979705827746127307016166635903975360854611529039854757421755796320940062413976125800926925048614689633083742222262631781416478583500336491868113461115552182347237336740056954692415961049058243532335114639484573339528016484318342181179288798198842891400917399923506234827882100374599834416293702961050800775087884692310457424012471601906998403877183307538850615931274039370623152980181084975047861332724380254991159760163015157409501546418284409474717223652872636355259462884162307712972318385252965245792950056080351645626041150408322784390196102913107080630311637362946652924158176009903267339033083883185765964089283720461632265572262121188387461863338151933975056442186228248519414219664931963241258813621055274198647021801502444742158838330908279832140131088258247145483970932070977601559082862988815054743838490839920940051561824807262760477418969757689896020515271296677052928163254243626698210684258278655340693096538234501727728570766938050061044413197952264376111447512855333902666049577663316538946746240175432467589137279576650026428551696773467769212932887102859066863960085182479824030216713670071217111519316298594083888554010409459438831058540355065304342601724267363577395551602006622064506370073855033469065849442307974013980697182911972610375143197761274448000813596530496693339256583961315960627140982726305199399284092577084593775492289518190015028344515867459534314204516878172555674942266849703512757723334243649803870688248969317530142610413192738112346025800633938567127250456145573063844893083203462134042355187465315654986429979345051766034697312108557082212115154263771678392762608244905677928875827050712492037775566596043856858548247675425243423254036220314686919687118054747088587873417803886508620316497820595670423875842312622081993668889471662674646295627884917770195417368913319177273911687889729201058005134106168088237132671194034482512541496745030198691203626861002657878239407032547347148316617583273391023022312279057286110085079200522416489623193945937417980680018455033429846188543270821661308746720581340370648335320991435986880059802351579978458270442841402887485801717897308960179769706582590823784962155336689817320052318749085614565200790776732397186252156919216358806856387711815176210912081783946250712227560999501436392542567484406690779224870774105931609618639226741514201909249852441841367400659942043254467295949209245343206354594068850633242589551165755705411142100927488555784650518220832354047348312317273622081500256396844328555941727518571367034187561195965250107717137369270232419618024693093637355081251855027119735269442545152309370975655316903862767309591531507152735096489252850628652619182069114716012022011764762784633369333899941703451516624921370926286123106423383230662486324376610607295241821168872933343500265963126014524337338358366564490017017764761330038287819615849858708000915261453084439495866936317971883248653939409840867409002683981779426438142066313864513172423126005726834316391841721883625978408138755175184457935583191184408315235761665388586952416664531336109370654634825895142651511274369395169037423260963442648641889036021720188726333626217263556205888998103812768737882344962594088359507805218560968906652796402920203701170898586639450959602325218401607914025786535381020977848173768688742922222398711772436800438546526426463263423365310453614742549591749492675885179540352353010407771592095549685586213086432393896224871752288787468110344072995995107246443566271976784192935702200787076082651603831765698723983582041244204418512009567976692077071274684742263689889533398890756067315919625466256221496456266530183095452910049536072362960231923764206656539164888129433564938458914453070653949751026990553209615559145081898525666487193762827485723552436350272942841120976966497179220410479512054217446371141158639076922542027049527902150422993427721418863897882734798336378450120237844254755436227446974300239449094422325416989166197063564549197610186693617659200936695647428850453809505348176816241860251495708528925757350557254001617037252529128033340450321930654438935829825213493952022755274656968012396446274070005581779934820114396523027764860543482646338429281796137370694090544613063222703059797754663909834304397732886262693167498700637586215146960698323598959020907716204561863972818968741060880350049978189859715155440133601274766491106679798690807363344826301742394659117667647781693147856906897776481491808291391417974534285375636526267537995977783127907556680400740642754223316158026742876068967706749800785261382175739755348719557999998460140247113490626359277090155910968661387599866750748729734003933903525958038857361944216641570807439287177368080605354838681864509685957448596592728373178478768600654155598024781952177017294917380628801482308831873641475097309254771630319106155262321036563499270652506532687372047045808792992989983864792404168265373531514043582516461763658975923710186190766956541254179609540926912467950821695691906847217248382978626186930259819490797759957402246763712721542145232536978472478770451179034432992274017132136134097406298269512268771675029441735723866555317448118797394865823170756820418416987968219323193075668636733468166070762417607992556707555957580656249664730383182937252984138858632044638056022930736601925320941591731171447845595330514125251635471091260160376274860673791849494907070262024479025914155292796324132448303218594301060285372734373765200545028273680417914397901269241932949235099259393123461633423039690048715606665248958388670432439752684243549440705589584252689156198173290500207905640818199337290687879780626933409725530613606702403998134356314928758981617729009499817032688422175893758799630924910308534051900567603336522759469585625446952885424701061141548714452435789952472733127894644638415126386897353404116981446107688492941530133253568594295427512341291737860992117065820440191886538460284286560647631957102667243036621212632948651413334873708210830143640111371660003682798378130250492837782489724041101291743708514690132849832306403804176827539295992358187910338221013128976246235615310260243301271473573342065330301423921994035193760027581013302393358329233691133107525576935134274133035912814211384012179262598389274339750446662366037549765111772630222932516483916038132429996468740354087497117204294071038449198636469331142011446848696322410115737430341193292255211362465412610270856241740653476119942919087739378192292033461334420356452407414818503453441562774535009946571782167737741946115188608193888751008858799234037080635325563059192346740865479892209329423168453418652856926334619464753880047130913112448859639439517335872060855744932707769708036655223371922956221881564936103490531104378460291965091698326984428384312733957394745944937549010098701666578825161576906371792039163007207086013932950025619968796720696635569225477940026405021918426716397443334594232928950005488742594601734421928662149416909628944451835251598789217198796254234160012114308659696340373810890125975325732697136371823777194688288112382966509788124992396055493611808353227339408192817398094279788040254011505595311742934655403186370362017480323851608136520485796560708317872150458488164970562109430520984687679683760295900384015848579935443680626702856369674936884472964855947174186660295335124791843105178243269378272621831410486136971844513454720709169223942530826045000809710885897470829766187429807657731320416883263173518180812138338752004295880253321222735594226044735617696495437691298562459124999723238510775315001502747582698719552366035347910017874887008774000625150388445531279560314395691357906653482683239020909434984647750802459042770004609965044612874647808818679189598925395430515378841333912050098589036885694466399571944030553349068572744664734894205681595088699921599130922001313068406430866157739499567548960142897150435005674581708096927577194511274462543586441555181903232356075237527700973815431659012166517770971181535950395301113097694358096162618900099882430129478504007152251531764346174392130940101561219618197370037193765187337834588456604435626859648752703437136473086195876928701351694199174513454415929386015957890992837121451191471854099232900359527786524531075324702889425310545285653064544906730929580526083617245559552534889923239790533493876776445648948040024871159403573306621984401551647882593086216721095235282547143118926593927072446901168586874933768866601804753851087512488173137784642259521808227649298027233979303475964897502072963077402881394066688206691481419846720111938356185611995729062302515363912019636085386671928797881604428698810607884231107281475411121475822738771201888343026633421217090201048651862459797173913061840771193652384485460639219253941463342861883390502688861008760114555316762597647990724224785972920887801048742623934689548300365115090502926816941954492104905439674536577574563980089021505048693739456334957642078331230810779534040107907389165486307278478776014891245425376187624029137556267651621080680970591373921548214494789280914071313077448325893113720636711774288398601588738162639827133040947799186679870313587028670512961605170689136068734527454213826738370275810931533465277467780649292194172889643078366476008560658254867177131155833602424130095078796056089036145461744636963124774419593711500560614528162491482779805233956716034037928034348216729079333169460318783442540412410466400570887120759993559021905107615974146429672876622573453733408224890361205197494043761994515066195375961435261834213869339255144722069443297087206488859873503419462404872116606031152838550195554613848042915800035544899447529122528327017397640509177443831790879358848991828920690562113717312339156503816916554815827718113933411353784288268340048019040143561742938803125456036278067943579497221330313731184229907630387596673410913025343935079105778393893647582729089474023615466647853539448090609648871418846681514562402248246789650164254294735673666025506328597771465107785357556706429875747366453500557060045786746629873110405370296903157482720070001401656580819978157962924248292261286704137702764562330143372409420427327831344711358752473943069447181531314595998675873630921231183964487747284562929686924337332268355408828663351887728866881507651224999260569192943623576051143918181854220371073740687212240581595152939848408661496852270254976376253231023351696924666203063368893711070931548162465622159412159681370354716025274295125511752745982463109338044078227418054846261193764314792246138507408210357742138232657245222529171945636563245596547205005198347387902279528625374379970446932981790465520271012147974166541121196871797884096213444691502133136875342777213279176708231434969296187319526785791564765345724169663370741799706456293013689987148216733760724045478273136966913451441379913189215255418077282521645723217215322503609728363084494718313111732213092103035729881108452061535752243569943964306916530206278974761927210661721373497462104760758710448117560458344891099574516845380865255207158236762304289283617801733551938852173659889254267249239739520845307220757750916681798709613367044332029554809757987428877119605204860827323788075902554812469962552693795583155002362134172457901795640476782769946248604610610889825535501485813332623852937738466185619432216429576427985273354544381254819352811213066272605411385698725073895621434017138931965692486614463857157261270680533750720263101153156948513668649399718089678833369748854887623078876512144579178031602039424477228428914422611562713042045777746725522632974554236141195991081779942023169288585888788883162371170394333999097016719385539555005560860603294327112609235855771770668201542335977882788838777531891746319643187108891770138359786790931743545268223314430657800696575735970812790438121779024905341786515624409951485104745700883470905691849907209254213643380595686846696505331531987838966894523723322077164271376592856101091027615336806463304756936669641837817232109841351784256071415307678524845094387258105699246244243813457622889417916319481473035444208329580303489306234842673871713416344722706248022286345300070530902838884272215666430925573611933523071678865477250147326275351110457667571623124488061406990718776237427027712006902858942605880220046047857525392472881163884484567609407653634961189229430082386843784326238652530395069712594721427820474581146774851673894589889677205933683172066293513346959692676258709341113152199122844245980404224768489288781619558073914106905356298217236530353689829151481280975492046446629977571252179064501563392427853375566026057995830697638531254071614052940090813477692283343141829262073447838623734969726935597402578287703805346730123502192824068463254227747155005986658558933101386412760313245626699487212314880794011032506293855107052823590665839453770022258323001585184476414933851703686711015385447040268089388494839677056046866273059150371838910923375455271186833971371471066041005729389203541373746344634385337443189670341644201741322459214810764046535315606897279720766950128673315033818367281461734444522212849632182941541132679801126203234733397436426439112252546928219426128105669551147543086658070076285648672990022409320924633358691468463249664650928638680004430645963352588566331957175604824845462388827785356051486318876619305875417258636918187811476010483160407095851274345251301791579491413442792214228392815771790468134284749648997421951925556412492366884849242375204326310870747709302635030557305084100655920501848028425853258871539078721489842439943721803108982064654317280569587761856805145946300484021856574384837924340711600429105206563271220621757299449455788393781132935658089014612631519920573848962192682639660554556606941161946362235515001203342407568832523116459521907739872737427689262447670041734994036222203933714833972610970839542685544643507631015198117904172032883951079317870509466685302697087403880915001299933679234650728666194167181488238772333829005373273944146230412424575823178434797794822938208726501255657450580940260940232815368010227219673390874325047169193166017521198216824506579432365784685278614061445949115941311709990886812619624379228174703734453857425106329768975591835206973203096676356122751120398410139703321048668844988575862717384882941251789216215477647199081748620028211134190589591161400576011103894234410732385025461463991734691412190196852302275176465932441406886728758038874208020996592561308942313983138880534530777963237158527243539958987385203524338575863162621299385987317799581287149622272871941546890705308943922202413896068549338462056994202985272076226043624946439096541742562036309745186197429412736194453221500145988592124812891362002346545428279254527929364136138771140181024799659459697211774133550214441448066788785548692036405830122826815533288080830775877574111246653783296510485484746603316352676646046615893167078324611206127555044115595708759381066181279881470079926856888467419932294122124365408576111705215318457208519508695320306034366047847486367302084054130200255691197671810380640988333228534569151702097936779701041311702080424614197648411368983961988826251937267701559591481222975194613343598861091081792140918491870054754965370282295686458492297964496281084574954368790894028486693789024600765607406626803581912308544338483846355929424669754140097547403415151409266621192340927055314446612202569797402599616408350095415644748151788853686066138464961263720977807121557831162451880320420843525273561257345172030433214304625590623091124117131354420552453753047986788418033536692206444992671046928116771517878093324714468059988972521233089754369686977604883804493146579844211296944829382219840522724443707637694528701345479831695312062857132119360049031252517056313637423529571892717233583065084596269479371096109848008750693526518291321949063469504175657883193128704530346184456803329684505613418788046449988811027150475515953516222599932863541743479525059610260738032384239620655993885306143588732004065329501193543113810229520012104409622535571612957176110875638264925381454434627686077434122292073239313271866970879250860563962554534353751187883360035483653837767798405959287995032166993191929540301575966450584515226470789974158113890480692486551558207073631686565867634823752433256203262192540882137770302574584729361204524538262058394972473426284976072986482639117612289197875049744795573182592107428700918925271333351241524701290383163102478195153964848777183094674042820656240592991997256891132807773398552921516706573013582455250328056396092277013425886865583496006203323626247263146471429613655493110812416443697436209603248663431503295600470948516224440692668623603077732213287895634365017358200108846428948211574602067149313855117232960043032696776541572538869409790606320379084405856424962445114353421259907328222675002671414702460210929305172643419034736600376297421757127302041797169337085868301023180826443688102322304284361144294274748207626509459231795788798183987109136146464740897145474454485772577624189171633734718675523054923547218183250736993378274536943590985457403651949265278591241254624771591227369335323200111153941174635266726291106301194128795026243756044290259291295188348383023887043649129582986871618098076920838806804088768177233667461467040017778400813737104298626673044616637953243389485990019239739437105373296702019548276184354777046652418051586401142407778480714164096181109977781158694674202480977466373732158370979582546393148089764739212621175703399974557008726803015519801711069888847727525676361570434894960515611858654586885952245327710021967067580419521532380657975682402525164584590662652672839337833302354583006881809185002902359933579475072751199109225330918062845728427522742657413190372133004544121205535961741545487150066310259258447574741095817747736029200016579122188226169564978365455346525298672567303721991543424060404271038571450374227058362334726509563018594374770232101294328742332919854263421353162002639438326505890491019470646657165357492286083653344825225277935196628630587202556668248406547249044271036788854481679404669737958125184977618162526806467833001781380543867667296398882122194716663689479858604842607013827502698280363259059651454052309641677616365777060215275613736090038358849854741168546323600219074014465578654259356067334577101090507247172184104490844044779261683528869292577223139129629855479162192706223739272147604341029310871001089153010877627070736845595881573033143631585859287718335430180332137422257351762669263617442135375797505919777442887311847757174347118356253590738672909711052070568538106085725950654982723191419933776547068017162783505860466757653780512033347107368376835128734213655086796059475461636228544683801781895376200720074173310646582713136112099413618093607411856696329042673886162711478034447206590329192353380998000492911081708674136034497007910533713558543329055895119959402824366926296641510531437497692162204069924561862324745461953359342786714507763184089462345914021895974220111139523569470944634683681855789744894788045794100404810749353771883130689409400984125188901704685583782704451192924853182230404822790352043693822217475689122312230981868223468411439624920522777279539406864450415819138586027667070269449875846942607313432492209318584151770161111097656219632540304998610169162829541571588375609268087442930418478286877222102395968734333922585540328337795863554992036220745436065232997932496287428468510068982031372699831472329854700516390817642863276460419371266933687136679284687120725022070851973656811550496878110104946828709495118365477771828860601277574052268491816609809203228678766136883015935947789662427761085470790224872539192095907548041502421555385005727707089208617704801956524041724876052136782409799703012216957192666975640557304656327363067734669717101766670046788513839848638664216846143901736146671724438720618982110006048394786664828887690767705838042562459073901342330806658916880947460574271679781982700593257266186549990103049686789010154955777253002107890538432664225404326542457733048781052963121121035006006082771789642162220313945350599218552737562638781625252164330719911890697380565770195999314948572156836777448193583597740715352470695153423626192027335231254873350110268640933729900741674034969913047455264141028137126732603658185841152819852340683500948077366565514278932403930446729279583471437948404535129122959335924995823865531902852823205597857517163287894202676082428909623126875216347065489703697309141001090371286136785983246395894010921228342087269078440312033794261909037118790160923436740123342979769966363922139937668407536478254012994349567731619595773563476842418365623409135128400484322935642162682573369726381909816654048487647355365513185430515947289058614972986277152893359710506816650247206971813627389968822091217567941287694057958465091876678012998688110786261465681952930285184307147253164199243337492196105103308266416173399657003709892821008587190991897460218519920510874627057802382028197708852715927773217919794082033550824514027428741928925966268458428473105423412270425456777639738772960881814390892496887699045611583273354901772423959701905289282028607789000250647799827906592473415307100595090082159576430940120312347921093827934864663551429827619988729733979767732871714550747555844624504379255291876884898200101708947254233800721941248631159895779258066067859609016496262954991677567343531869471474088419900417344690145006067706399125942064692311277607521728667543726714482025162250604676871464970412542278845858816432959644868122714758983055174705744593525103842254855122450699600877619721629803070626074666658893545827942743268557618331324084553975975501879917601404251635481090343448621323181413927468027663954254810152440962976138062365681088773813951035379541199633167772439981125746818794565283302635055649770237953691394397144282573018904744894216909314032643510812656951124637636485918276716241292110946131485277350032653947169649204510883809432807279101781976637859564910684707778304646809925247940099021005002104475455237810527958606750587406769619931033828293121480956708504621217413584674769495822275900078608287895735666909348225763880701721686792337586958150042930554415907457060463884675242624943977337979018363158452378873299360164889136894296558132432555527908946680292349831175346402318631896779699448804455964086880719674004758857831721763203454747116690580235683972667579206853757794850727732571261910988175839406658618155625978954664524650365098829099715347385554025156438517583969680679205204445105115303703821692226019983049836020707482547153401941648808399243521699009306287482809346375213877199110364958551989419267216880804824201323589414643947624846419788695981552915014577788597146248949580529412874004439136231345573250594787646368679552697227527161813605404432040218712549226964800134154020530553960544899136214356502745509307449612569510093732493869850311768300200722692889921104997573439351473585245846764672839268325098806440797620642038241214256920033799709329777934750585281529840089976884278814479788141673314017213023870046552279591179248969334918010267474279539161155741602763865099458081979650031017744150316729708667689902048283021734780165162884763045846514599817627858444287499085986789713703860559871713088124582722986728651256199992752973631397430934468059269518199058101729502912432027074030214073430242693313100370881425509040566105829946933479798492692596858278442210924507138735699500228012288384690538869590957213847265086826529844914744337622262580434645530966237552715046946797293669693897475655559953277631793717118292439508125040534566845847028455492415502924011637704152297150954735494995511765330132852330707711317104029084935172609040100750548186491613680376501191918790171611370569274683594730407511452399030643790541667277839240172975170679437393282914483352713580336050552014999174820552984803248048346361668738109967916924137152031548644189293610755285769104850449808448664218323229822562629961806816326390592374467191508088041142280512379341573327690848707478630040210375269456206576763085049666324985481516875616714936345079563585762067615161629945169388195336664526665740343086746949706293287908990586760915239428365730882850375988586119824132634322886136388272275289771105560391024014149793739026926683991956043022885478068726964279046623451044626252499036003682992718084060999991752766783880205827888617409650769304380715151164822378835903956465681636501273328435734489397755438835831692087560411426733267491021427415749149374804355473903333273694950147745988991848893265689669635370052675356213988005698012483180346155418288277338320060215005921773501309753863809724605439448821779559170269718954570584876683318330183448731206399900043631375614994722528385421802748414012544230472734078877120469996274134744198030180884716719861059039728945105455654629190239322860878299823437459895752020323631562539612168835915305744860626161918532070856658241630980403578928602278457794132590781453203275705701777064166956338413436888050258262614316566419792615350376995054252748202877165954965824022988854567606834818933479493493765652408098077651837198940342293905775866029099362037241224149415730301814141766820551013931880913672900111378578473077717384687888415641487982659961238183274563536934435174940997520842102683440758885806062305255901336366099061322420662646256988632884357489225296242594077378563026397323227468031146958707803886219871883137424014252985676566527500765326041406986063300903874605968642532974569947284041093593719514381283172023524356082969320099251687253603731003600355609074903153114133836054467468180891267625856440312807483075190982634413025345126037073168701621947966646039470136377618403604188571489825668987637842820632792266969431755310490308325608911293277933279670951975483447803935817060117002423565421921903577014871860520987537175281141080282316841110816470244004448272173375176717579069957965197828527845136192908683558131752478740353669471031213277998867687851365434741831429571199988165050556801602563151005696556221731667770204313416445347788259635227198804635713922054993233889947306712968009894981418390270355355854668432447445719585511998491814293732557772999469639226941776192950217372979847558737130554105959986934519780899653848383907362035004988491803658324942380682191383507529590817797761094099117273891885578836316084511967277906495827492150936588320634912481736359430801238281065694045465616679297873146225115544482207892501015594303165710008523879978258335940420950521469329474310932519447767768388607921399093334425161170447780386403997079452403735178979207035465702737901604415466605594910738174609880773289842196135427471402192731759105716424603681823485087440111779240844603939780320458985751602291201909360343532539845200488233987243738680369897212916500190532742244034656862050999451559222545198719538094811052792409372782008211064730538637324270436774316621876876166500874788787721501433727853518352190854439923685101714020972720463751073242841378553237603463859485267463300827486144330378500455341199771111818531096150353979209763174659878257701491131051911683808618088898511768392954304151261743931241448217180301965423262045189516198055457095704800308873887594398297648883751546956367596257479372526820686980614591606989638773318050379915810227445122251189157450261966934244667143523470374918457392812805154479716859558647230627146135377627694120963396948326589015401272054563778298564378517743849124885988871133133375840346705908036584812614446795656865113746469001370190958606779307513321144398279812170524858113451819622190587049341603752261649105424308880960107022104508362413808969881751075516093910625227743818069055307524938282360167470576963972388085210388761938011068705199461590620647891058173762210709679415522224787392354290741124974551033991377039588040872257263812685042788539835622485997362715899136742749033767358360520152021012366267311379977313956450402130424894128423278796100513674243715187608160305739104872495346101176452474385573444602115036121326639878136859125902228345145984354119545030025530966190580160336732894176104023810754365916487692753736393979056472219860784527021914910289911027166840993473883999990435552643438896411346508555796032118122284186647650292694212893916817109371335213343096022067783241085289849062042225437178693916121344351493971678571474997259850248871521503707189367969653283613007718748601678361178310286449830174190435025658409994801546660585772803639374449035485237608139462423602108500104976409224155124171396717259371162795213173388150663005596402171817539580932793323741484493238336422138027616248478530112487847446387086321908382118795977244474240767876528982576048574120147726479982713334592616865211639660780396247089047480509330123819586371959672983167088031900062013518899253794392567437892525605307504989396010925490960112367301689535521365772977416318707689729323807155288530913811455463815289563982077351548236814023166048928947711172414548624045451804606040116400212016620414032611437173294132592126770270975200732068080931459691131203282361216181746162286676616416251472331546273174836677888941784687939304100172081092595968775574010549856023687374783209027626046399851820397248534640079726838966545235506746322427999303482091305477276001657274184161975563459670487561193643820185097909331612983698925903919725108657822840039851358922667458447026738716202765497201099146659622736165507597303368289111006852293883147330198241966243757747006531088677047509623433302380441621240442722777912611295951660649346246519007260422364892050643834361924449272218348159495490663993221031552256372183209807938818957621878088621358770120645077609479441179407199035573418409635936740241553954878499248987646416739546407136147966680464683650026795572548659498915695180521257596488106288395887449299532716633225698214127141812848832721213469185166476177633516635066135234970940706468376819668464357924635879386358729618768540251032728790157979768421493185670585098387337682772399000504325862757959427828592720426515862848691578417284832528646895682050561936594073223752516961893929055904013931176155226187806331743524905867440220062146423627654206088111989129427973522072214178694845615152916078592298811819382030170089063487044701188969283060784978950183982752342547448960111465268060910237326906644959839451296319172803670622313890760249589636456713635619246879124537651577789744791824878669231474640571951681155497640324955425808602389376959031684976012622562346797292620146830853695556039896291471317143279050382598666662041631510251349251388520227322453845318135303643810744065177291840521097800130211873718448360581704652003407817173360992463917200842503593582880872535510126263154893244489305205688595659744685442949081249311108638532702739791236240464222972814224855945291472642920961774104515602714757338123081271793355155653372351557653830346642806061118595498173745612936208719497189586533145522513387452872119287313068487453152127019847992277039450360599412665562473593735168827482317114554733225019236499237040333338841511639710576622305598347628331732293187901589036858621722525923218043098732505186661667016246003101189357590393860762981772240690942085570574204753109204741942067981776857057553052631500620355030657977124517765592855705104238061141325347177727924525435775512748229800577872031207314209846382149119108495361421836055179688082114366203759308515543877390219910518775900221032217418371333049258847871447865275659169387877942025130537802004692369768233612416091771065744552787090871436772473407225542022939048058322244952483600041507663538226699816084609374343908698721641745257517305086659430572588301346158326359783773656304007919739244077142884146762342496856957601055660615872160796562817949856510722281963115713088344050796119234372238480075405631843328662811381213210997928400525227656859506061756407805068327248058676464132515056229975116420267522188603711703182155634269352815509750810521358939779842020286554291045012481270730498878931177681740431168977794177278946667517817389190637983571381264212084436375522026940958989296806986542452698448611226907646034824384086434027679476531506689760392672115505455608270210516748126999052628461342709737631192323548032952723586625171330788414175547521097479945397409415102707056673428722687411301535662976771820376417471439267694464777661715988767380218977240838585634845248815921519805783783618243029088619930511266106305146582995704726358215194599376397923920123663602131840203703522236834845330482897435315112315585826300561064979454029854188444101532709646798043712392063996846072022176152738516734922315593556206645807444458726903478252377712063039903895891246836229933789821415976739964350318031055834797847134606966497849480631979774347762117398916020496313303210428327164214273920815140221956326923843111672845360874419512864504491023608231013316497642275898863945074808983570677887191782846437444128717052019361098344583024808602868439960639875971606412831619823407949906560462969755945808944631086333750050103452368079955089677862939588789592531071116742409385921222148586627946376762117225316233457614651819085430014297361479553520780790910508604389816761340612499768937380212348412532120305848181627360216458330339454386765654681092795296640242100319942527773430420744599705472479120383464748884575586666336702722510914108628808578219325706461562869116815490789622813135479466793338162677887958212131803202783094358264969743448847850771010181339840485563321539371536487725324024493740763774664978141680043489430706482455442250317490544953738382346606028440140452569148000425790440985907104881745679297452201319199749809642139719889098510249022925732958541785388773010827308990167099709502845983441681182539821788182375409005987239000507640018160716550295545555194394205281494541469773617509444650653328987965340638816320989709378220437256737374429443631232827482926157652265181874642303981442107188490655453483625744795629500128426561881292637803586311130540465523206634141298396370775998944025290532370984854451946347795674543247305559445357666261513814549321371545277683063125998708110909083366657615988174096230424443857415065285902763142975489462952796119227438062199223216069561538307583490146641365494869898732258249599281643590220109421799503885278790395754575278634613573818657506887952320231203393807283613603712867734321246089043323465119002888053360475802823688597493989126716288517102009978964060806273238504048103447474102518569422709481382695893667814231666433044922524315290689007357572114647870740048968049024233619688902000092484724532646565556659335781015073425718964207682241181875354302344147272073185634092966945696654718605187500415772457431138730165177890509786674448287383066886133351954347562278338013584493708395137085720253045592356117723057872669168390686038849611698049727478922609385961098207950108235409902277874634989291262084530364538724058863688214963072031029396809924228222243670306550622190212643537177282006159482673316032421858908653270577002063631913353667749464395298942562242088013071184086698734953922038273844754835765284008254079577772687514084691189326500036547720621837299268063419208794029760419049438873756461299319949900795678331343733860219345405251403262338034957629085515358097147463380492025765217733190160985209432726554297363902416612085350931211197976243664025927610957433753621440587716945745133124925244246461804387198658711712422760764477791962970240618485695842472514585170075841109337459899627610125506660976126432607728255544835392899430486069734457534246183641634906447904183903633944758517969510228610156517395740402571433313618999905078945416946864644647619556859839089657274849477321048286775357746841084394329880736373125126880648138720201517343601688958329589475832899924534527574253891837930664915689902013265504651862048071126551447417686757841777058476656490243153098612707813330827254699630387174236249196578121874117918199163349952385492711693239034625092350646477061866026564308402828386316567698961299370177785253570733969793317840757377330843900485457360501977454520343049137986803608753764240651231056992149516129539539077046905065052332131881138904598342204718614469830752200129550749929017239561356128221606872072377586367394223031557400190847786726183722130584158495135939329742716989531036642481218507470084393179649767220878829569638101761872866019512412777777485086758526940301118319154878951888238069240755282105233443486814048123970875359153037302349231829025024286373643682038235423431786933400938554568620425213933173170560250366763825928721815384342253474232538014022710495186061791110945798953904049535370590786791914603527322411225418408375754954765510338716672177919082566527506521923377575618897679870940833737871351380856031651866499699182159548196171319304986454134870031801231325526102507605207203511829020804807991480405719660008018251383301595470995138309510106193053778646387407609409180416230272762690315279341463659598682645780191004787289642713251578767839445803900439014849764597757466115669782549080364529018311355569996331042813703700196002356501280876290399153376923450986260831538731945806511514820356741632420081417640188691634083594091508941307992522889465711309556950346810032664449199383799353788847207282309912379057667524234414342687177444487509595546092430286384408180697476186401499221340772901182658612627629440549571365746583790160749098840776465005865600715210353901237435924918484935770812130748995210504139349320516336676353006547166127663605861837791856236421611538095743217260185448180261089519803436089572556487680033865151440200406248198753530917885311464767633277522539459248685533848850454256444295460110572429701659692817303566391929287931542423541772099994043744396789261969738168148179462892785130730955878795170848315435295641579064604025726795798513795472226600828711509741377103434306137068262061971557852162973762542195910191061550206758094912267337005937373122415077110459540362093758640433661549702609943103410168650182520718134581689195640821390901354468661989023590435632839004295521495483216959054125681853198487074915710996162655110388572436174199427704546752527328508743848870027224122370673116012966419216416277862327988231465742737344228367829255686633151907110629949481117140948717904933467096705289412989317328236997291714065152860918578059685706373329295275673253906693647758910336623826368175475794800287816373683137453826135552791538707017219006907067716408441384774068346721772593101511630728494093978525995142817342070356541156629981455632946370660280560752408923640510552085537852997656017128436674197172537159674760154026686891213348659152168630168865495167080822242933645191921584556972879830728175626247617451795049364601537164606327217378270680818267000199650374770980927574219957195185174953463783461413599872772973108805253788950015975220712049708696573280911540755386340148183332779114059469652393495430883954388204741676165100826106293712766693392628126820583360868077136752702767814729149610141845462790561327106847480022463922522054474441317757017891229532852026511426725214836624751847076398525686067409542327712407031816785181405633841151643919965058408349284360765845354228519134122896550536220934664895854715591839521588965603502195457948771671646728320911325407495571135003244175831114917797263596636277706642464394292956996495815171763016084221754385338972237779989846473727078677608861134941023049312888872065330340787069653343796350613833047787047008160414335041373869456906569288049159785908576501337710672842969880508775732690645015414205396661250973779075535373825507834447956136408662564139246913887182859558490809416862346999124224287939211796354484656922566055772713914543982239993319834405803884002338938183752966212273608471629165748301986360478753057092864439509665419545438542804022989222099405441468500375938493067939891960053547547601837820801082291265309990583207642390715462164001699576156721856697109661012175457567061268705705033920250313798941296630000112023396591802288635443365377730697414460812058008540500262930649984093755498993854319551267146521630730170692797401789648051327276872930037992712223345973724086403237767364565803698770705055752243596620157520360926349651396049037590546976720297752862988112682545972293979230052096585507334957456403899653948073129635983894591282363080742028497643537350272084508657129888011865211439393362180513248905067192654259924681732323031340061383444957390018971669097145522992529321033032464006376787705881682434720086557894514717221070825746834389525738053613211035658717183210911509475939053818551700684503193745226852068536144729931603911130078243930693340009131781837396418534027235022233116704485770287780387517509060343426401026246099628318187619339813323384430526439458895240862742529493139923527573098442640042326316844741661550994200275654049891771552778737045486335811453178711504895815647929666937920087332733988791122208344997369789085257797369702398679910377090384684819391899872040203845621200936505639690992271554271728727792798961037549346046437928208389957642226038332965964550072816145978563848857787964450154693196396271338173999755968044855870302339807687008855551111078729188704189498296305298835248442235847988270498998048948112352907471679595781534865189722139761648330645963208624626051643187939674410283587769406112186514982021404444104827709685610048336320307182212490551984407336895742089270423344778517978139829263523811321073877893097199564559108586237817922398071174502324639609288345291673457402135098427261722516035786984037467488473535308334224244469559276282620964028177581705061638192281517430540830070972845531233210095279681393393538067264608400390369075316369692053310724043217014788525268301392127789965141449257840933330427483543375636120971142013694081492829050337202178602369931597298152140459265747657694912163991332652350638519588011437733146137743472349564904204419307985239487498711726370984949488676262161055912231818658932471962488918887796806093099310110676762248983077178189179020482379562541854453707792040936255491749233010728016887200787768920740779628209263197327094536694044543211497760679532728942097370979722959570423255410701331324989559307643827005727234636278698899149406586330926172678470748244456713395341391100339052296780492801120439902801372052632689368178285044510694440648443823131915151985174295800537774880182403081175527689977436917512507211015680641164032919297151478737156523185626754833568435801368814206219457464896497836475106552764994334298976686459825332841021577344484801935060220824763059759132578843688358201577727519083137415212467159194641595040609654782329526975112844984129995268593718330585408043241805080914651047913392288075393144003317603342664139658845104254916019425022115132140945794379996302795768875035204742671116559189043645565867182340514692640864638389701086813185204177387757124988265610518717913826059603862273252441912841298366309576460207279191157912887350030773082735926116760279595732779346684992649424362891963424879738926562127680555308742119176881051480346891541640732954435787430554593493124610263416345044512752622562026273373370282842347992323644299493601431708575390562542620603981806184940019046167006447732399545299807025380768790468186270095922905474184249178692202538871538187485195731857917662658817754734035313337138871236721019442128602330943865370249402840199193029801521763459437504012621181754898363471733211270476058584090043511194884433430076645668863298270781193438443982026909127697013264107340163204938508221745579528099129826448052013641731352395422632012237869856588645166619629160833672499828220254276930423477939790057809178327011463836684138809463795811405607258059272099779562592064224526153216301927866146875225570820164054209056053499525195930775575251274024614824078450111557874780409504007277383389113724208549339138040757346578485209107754650346715801605865165071024622330332292582173921646444231689386072453696019330066771943831215599986086844267107880919860833948113603635022857247124488128538346628513973433616242271492845143728180753893938159980705294308927402999858916156879296303737306837009984523712399206710066174727454375770131320553970665445349721753958645665362485746245224638766485060698085321777249716401040767612032437083621445204480339967156721657761527839159528956983150879295601988762899513109153304312121708335868039054240086953970714383367018061062884391754981406371145063002370085979077843945458484213992266572481231888646748554941438192038364455440960039709636710571254923756686718311650908907645217014814005852683824071836484800518318739433872914728556412517853195798313845595428213241164650213502933149740573827361443976286203375241799176547188745202399768646786279787197735361433214701007869107444815415570788638036621969936650839178480828468021933985685995978399925640578956805409407070437965974715729220107752148116334004550680655338649380147109811875189646954409602440639344046389833075557322379562741926794553226196059330889022120391143755772583544727844621052657215687621417999007438823110667104226805866853166077276588345839818718080523577087047262845276708058021615893952904809908767549462738109120657440321853510436424800183095207693596260690488564993758318243025770452717444751700139529173375777749226287200722821508756598860040989368071433313836539483868212911302031725347883076164025156800329613546999420003631168017681096253909279081152172679314997250344464389212237890529363288566337961599747423286082223813298600277540903016710532036683364636095845733412472529310445584342031997667036117582069110035463438347491534991878045238556757479435233472548114274112521144567932603048293541803448385223038921097239105619680109469357830641173533286228637672410042778360140638222582640163413164306769062057965200191566406037419118318043043529273977443189853573686329657269713699687364353912609055369021721505821861652050588286215009312285984808876853691425331205177069000562841220663438935555162288132363164964732403216345110002894855466941276852244341542353246269288506266984347315266400602177822884753275366883370383101979706238623688490070885457993834667747256700136464026748957493925504312035308860541688378522272499800577398482719682139369650002442424340562381634777894669338846362652382506794045785743652704765825660146258560292465059296926664024059760099784307925030285369114274288622800718228287346761150302834032948500301055755306473853579919630490905019013348954498016624023665016293364840639353495855282803254348448995501690245320771290027720464859819949518193939886420034954141945922909728139298400374481125775824880775438645079607776730952222142200151462951018283683433848469329679582286189431178246846730528917844498246914599913598018213664805083334747995543060214538129242651301652003685391713055942881451613668018830848888307537440414494500884382827410491427958532329867512233318800282209214676181563629466543980958386393126613602231463664705672542706918443688031324982579727208406974835481550964125935263567019116163771094896463906173364049289709494811276791554554406967018996579405382047873533110156897984193209967043992080572165944678310940879769440039534170394781532151432503476217042888934660963984458929617969025462825412697499192746784813283813020113070042130600528393222032032711603165385585346968615088613827879369873007503610577897008095445078825059913216510972145693396343118857566139225015140562273848089405598523702102371492591077778007303690373291885272740841819135871386229820042770360485305488795255603943335646444632636515075306294871351735994222174861217909243127944583441155040186148267474311450626488431561620288728697763098370156231877261898008256276859971737896877080988388160593755961495052672578051099767064294065616976278098972994849118123129566565465791639153850210175032268313905852985365352879718881092224173345662415720000624574728934678037581839659709401030674074179461227315068529877277662857043706471687751124428235470103970450506443507825090255703883908350997348036479418248678836086088010270964886840533260844889225601893539299887544102463204238300632502582268906294750665599034760519026271650593048622786950242938510905735322174115811914719284388129460024550359772792024001881222376199765683558083422342930660816492422150004241749825713188780957907949931458166483810607283233760169346816722508461664155362984854997147777525815848860681717497276092646561843975607709577954788710534209234212324005584187745733384174829161857656493225843673626539944283336392198093866894953037647018374857595798888934630212613678474521519669887916775431006522579094688653201275644582499252031029635647723397601490696741796655182950014556688629080910605959800045040295218849425614844372354757552107947148715481674457043286629463518530955679910521277790006459691392712565808108143844447547600672993144494026817176314421248395947573462610253918782468777606100410257085499467707239604235695627744222117026281725021115380084118671196130756663792939003708820455160582951331036799574288888044831154996812227370878245526826410696299963916509611734183815805202124423265271570951244065268291716492061843807039863682919350674508889212612726876371995790506384671783595112150824496728371645556530849967433883457493489223786515566710170836209243000692354878282811056822919483742300047860774979030993450291520269505417293651431204429949946014859252542165093189368885034282364495462336288254882723863105427622830854288790787357565328612685857350922746764068820880749731539604641421375975264115088730303413401665359411849475862950733008718573749068006276737678014059302602252673643730480925230045144703925389237189136109237861587895698804280866838541576213369426281882770341682979057485346033377620510635960061427410861616357877317661656380695029222863299811243151018224145885309353316275699664156400202940131126786587413308040484690105260990182370773298077196302036679576549314053239879690256428867984221308385965039631165584409284788496684887141120678982423108150775775352852754726121697819008874764536879286190393810634952002015904509406030462301413483419220721610121573500517992831609454602581942544841452215719465934065995106112044841174350296396958147649006178086433466987683152867922361060209956256523177249716143463765521187804936165307465943998377100690502794699776031484734593538895613242404213450907680523439323553777009425958827708509641016829048766538714667329805868502929875690062638843637668569806864033302742703555759311747940053807359549234783678137206839051271195676047219662312600771048657178148961721803309402098537846847259604662591027200323425722590995748865754560800743725034073839393197698485679685874778782599622710436173505372018647766610713852365836643223142884717288580270787312623775062405061280002113245942335695909973205812720452043656788132205810843912157123911686775399115636949816538155377583764777502807356191568398133255369009320437512082825827200770475781725760192138082929221027762857128080804956355140149854717869357941761907796998485234759495242880980089113009561622382027766256853433181378761658452329760282942405924308368775136975844385353416204763859552634731506402633609825891719973517325988066828085165810532633835288139215533159766113122668911194671258939801309216200782792219584285521008363579989474192448398093880733674795316386824368434233390451199315013871599637102950826639398827384462099421131846902172930004403237206595458283170619589805031272862380780615593478483238738585618317437642650633221544623649839028305128166959339472216464430238794618272041373911683072757695434656751447879594949561981800210688291397203822534879009129917724317107837958781643152262250977478670056353058483169802723201338374541870378388134304418054492212845036341302312427295298273421836424017748751050162155033316911363626509787657091116613751818027156036964092526114351859960261976285853340057206990656209981630892340765142584186432939592243493734161878144225941368174649092415403578656052025301458376265895176560901427098149207162461008357941267641524139003165576805811166014391336250313737194507595248802431431698446647451177336865424580320467159896231339946774217834777465601193378641497421673443710166089065283537748288724271004355818989574075487606171400953343598406545694774720252215851802145162577764076039496107485951234299473522091143922978527114794555821839288453342772663308543500010995308629121305846191644597506274244907347006667426300917914459542774999163885037152298980637090825471925080649672189410404360442395027012145973464679740740134021462495016165041746375795677833610327318571905332668152796285677919963004015040295839102711482581672978730398393099806916252694473780132890737551584943529632103824610409011072384558689237410082319239254767762942966738054287212186409477642187680624487659188793979559037693109559965972344196376477872813176680737254201098220897531896155118505157322978237520709860673118358017057805328793491043189910813468646504075165744677894770004441377517746200874418972286066964903114213757750706695798545745655449001294894461407945468101526184571171119499664500751640391608148894770556945092278848071152275918326355672478257973122764438193613298387330532295783682847277448565143117262789973606760719928200054292731528727099089084314897553319935713603991786473905532072152215349449249249214976870770249009053597366140771939801806446004864498246013368185040053276683424854413317697331843588014376795209660256515112157520716500701967479870138413740342552463169088857343562578983741389165909532020605759504689726112573659942259948782568253085179436535552365635252986534900191137268902686895369408014003131677800728111261210592611643119009567712342675113352437303792685196565367999306719740837122437456274237000692767201374827139350766087005975947458322761250326994641552843243083435877183798020000284957652331562982745501457706539108964293047384742992551265301634140388788421523315188029479323785857344559444717849798956083440562812623580621712343786375667931388650029029060308954358987172119385358228509987199645151134803084763762255015007064007053599115922019159998083417219654572721723582629641368998991366514721729305495673486295953649067998212328249743746158854374443413645226197852428097562140681952238738788567552442247571921449976817736126513185647705041265527080255073209227692976993315545761230101190120824217153202219555984220172761060017590006355836719830614889098408268061292241421146160438808660538517233703650811434715187169848124630636348961064333787169965004704453653309022593360542589352687464466017580694417041613984954533065857124627374234988554990116559928610431316302663562965788004434447033491726472095163089444549946544274953879164597210723283837957334740144766504647283271135037617726668569218945834138364809710555412862515694469219908699962086706593950442262495859268450292751991352398624516356836569176047792181366503168598666161619472387842450626029843046481850804479432817316832988629217891832744177275376948055789148406675882102575558516675620763725098663259353901969867035210470252865186445823435384049898046780516197222273954957528677073330341208253997160338833234994739945228161202927144418411690835180047325101247711548594529300242347141532743919514878777608455631685243541559479992608970870260267135365298874054954680644357128936942263683393832087843420862649359779263727295300213241794920672682085822099586411717930842036201812644301070708064712273429493173278902954987907074864522141006192754834344637445111617117898883829624097608037928493278947012001640663446962295085484106864796465009761446944904999034948527825598598967501535856525398040727293157176902260380551767867017652884447543736882412478333185135866217799607748538348666756581870710350840153912287654254721305987122292056470940247912228393111032873501240812210102982630290807355886694857682012021953778352237549305066014811738536364111558187624700601543264362154357102948053972899691067468946914561479044885259320939202845878450986406422209107280184519863939677517531748335716001002790444189864213089107268191534151534509883878677254521746763403826085113968924546927711186198793610190059422962790065701077454328879309831746158422339553158647478279033580717380148275729064654440299610731925225304720755288467547618800665717540191253735643741201802373647401419484296640041914636992686659858046142451647571577340794039638255569997873541178965245957259676651635682410611004936132724089411988145783349895405623626073808608586445503744540545515639909481385659246814917173185298930656849689630400916052549384868331456141605001420873373192770848285281106732863559222189329233977682936663604973715528641324596314773592960835503142569109597037253687728031040391051344156919228819876797966570434813512770713779183446926441568597972432540693499400340172828082826281044374333745451762777382007854998153256939024456883382850399014394237681836662630808220700556457661401727310546961165171402826023526288439659810567084175159856610642574947011394053846221065540862944389668628829617139768714174978151950899462215714146159862414053166857111440573699944992839657711764687547880160662276858640257140809142032647850939543229063411845959406958708338570478616864226882664231975090470097364289561783550744920303970699644364073786983695357663946753740289591256755607025166902829415288921131139031009615779293417642355620298879801975786092384480903013522254594058979997747379088875199616895298552632801924154324955917436558704328482907795182508316638658961904706108601839182450772579722575717192796965136097296177911718891775817588900283388789501635040862080049201509170742310813607865731397504537118357753366629788946773452896121798041310882196328230459278969667681985796093149755201262640991810562975191938701663284969418973149850370450968888697983018859299280605553263764235616290213066737603052114879349660027565559316474709411714426171046611718109570383710232030036423189391432946748677538431030890193852333500029757307814775152185706864402106907443309968623242084481988210664611202743096116040399045665072495824128205215437039998713786424377879401631690433364897532070542749002214435747179473103804351397017208304366521813090054503683404014939648139580444676722101376867938433514168763411351631492743187343692216150900450698874727044237579360824908641115255972371286749576546566108963704856589892911189463963364971543821858553122927956238622450956398242836444995236046435651013252651217725290950504789216286214801212511608056517726605641363667504189499294292716041647822502685218795167541507694178743988221990263715485765598788129454304474279828219093831435824036001221976564081053993676734038276529877778458473099263716889696888493520960147280612101615526144044242231300988280539610113688555807302762547147049601734271530276404585820515934762994374385679407862613228213925410217192179668715962333477681617665522824954473326000581895590114866277921283135110229617930453879782826786837098566182172597407738988056184678553744441188795351649545949361975313823504748788430498053443168838693260365004507345713609915172426233126726387621066660625375329435386366323381491540178590942382442963805384981166623729119298694627966759089168829277113470898169713304458984654422706485746151327222130273977878756941924317766426019392181708957306557204437241483185541438648546191144787887580494735986838965278263622762117473987497427162464763346114594935051018994308931288766556053840112124320833574197911921634083316542194807703001847973389671062914610167773637277914581676438585838862700328501419176137879282927072979404758965536670346339073037420909944297872801870698206870802803471354376052532883393219502173645376490666600474789063463126808506062127079012255612141601458640493004900966037619679183214497840218422654554248571259812863904385375464911082779711387287141156247910425222864577409338749077596678338657825829714776117887156071353081299845475679208706491717306322912586596146397334820184906652148656108342708536948483570713407157791408021287365942886283641124095295900896792124874332913768723983734213834476303837352262462664058132852028650249106088113863779553829616097152617341975466142440474913609869442617266959435838694028098044886623072109921873953692845808462512188687683808654509473579812355012858652087370148669530711050281090958670383890467999494807411315847993598351419572603645099803412654452877547363007327874046242780012743143624643311163672006637615504471978363736790798595910573344907639307827856867248270574943531034504302097863382370134246487397931868499789054507437201988351588030756193837258123691999502672213051141270737804187588103176394288084676895592070128460367907013953819960858935601514041034901201020779041353292781317778453708505200402650503755292423438643495249275190106542136642531922182702889163208154413215286470115390717487188298250795157506839528375437387041664213220262556369067255760869241875848468805910951503667199558863323888112490017579300768796948156703261498031499473172381548777264592411506631436522023899528869682968264143588181441237594883305714286637774136495355352014331840803417925680729422417255376258516166923833998330166439241448032391265782919773514930702365717495091632390669047365552164094718288046158916899393899464137393548017561592183057320424780807960150955894343618793151435704797693374029943855281671235660464455803580899336812334433740731454604632578363417411629361187966728672080457871301303265170417831913704101974282429830596281746289246039077679859525628513209220034595219128654359106650396363207294672168373948472817313947795116262821887976840129412872868675314449981975976002027087024917330247998108308066287881770286340544732667391707784292668492361555038948032094464153747111432972408156410809833327460849033216795769832294592778939059937334878451802175022158489325080267945973813406821130839117878437417075193391232179740358346996781132966288008913977836615113792470421809560183353296420279301364846865159659352124462441211488234294758959946687022915674745291312232945744682277419384949355803110052134049765306540436662702349053311580141833728471418556559381335797150055680118510565834925949207703991843658997812251583648586314314505837813737682380133548304108022037271916800212122948391468735528417711316408655382729854514263407155693302829159541954004120857733104746102920385835141656899890216179525022600785738009081929454563672637872101203301931105831869669762956031915933783740907749463201389360370204837712246364158072600268773729760713064127165793474156162085184094833415539248390872789002736373779047602835603189656397590487391498514414415002496839041691600950871283150647393354359749017253047584285640187492904909485843074894860344609658333673590763954137861438077872073884521824232227988075759283461810133486217782784419201531409078093176235099862170569981459398487083770348453298106689264347994677276959318666985758321594165374987137211769924520484584601903027974262535987766287624913089003116363225927721007692366830362613851331657320246016054439251035998858805811846897720676521793599729472794586140864956049597336035598125112831012380883320484869292447382548028021056788515248492625655838956612758965572360033950137153637705866592490008779018880589203897084893095632525062214277755797363951853425772010193325985898101165060189318140605518888065635695060648694198916158461258466188937374054265283191783056258193901147691873034682594267202704764837898584783348966910751296756395580584864393984370105172851676335202910421837371219999797178888515176220123890155030370270917357357356870276616678808904197854462487718788932130767404029464263852985576968941618317509935670339716456300891232701858508454010236004968568635906128081509525701659597914737163696657771447495708331711473803094086614832042411384359443885204847963336289241009480380115164191234770836035031694771283604397302252567036482224827032285160206791889933874130237369417949345019636595990742851167622271817236716682342013530638733069034464040805457842282499559081833777768026496510612845943500392579392309328847303666639973907883792732048622692715830981748891408145238739369239532542824609776427272988199117923041613713288750022768085741595428241838961780500074480432237069006633059062255783545219042476874917729347598244170395659019373214678864767122784596106276993060883232429555639976751804206913307000734547959386442439152768553897564541734843491684649151737574397500973622246304807658418435019655124751555353820606514245180512514477061095345651706077377816468716414366592917236041881530805802185042534824440126791515913959000732717571766538590526044424453438880202166403728123075153210725714089287962569884597550560739204680891276115416177026788465382059135074062979210198254511824265734611283697972777934661844760988683798458280459554723390416249205825346518438862055027827527374379331392282856018607176792198366166407390763562337192874275315292566883450120801777573938024331218088465628441179069582508199018414717278639114150038306249084572599323616322285026421682864422112988607518556324639197543737235339554656480448383921090213432074174434895390759785336670905388891290125747441825400520432534971005360712096000782165725213995273280866171818821284142650260926394712498594515606752930571266437047837343405106192298604747956184571110645668078216961713457403416905510114267173047858811500044224981704465280420629023863798741994742375255367921321093212581420214329691062506448614316297388770911413740483155793241393751790818601521709236304881023051047845553300333334642175333330841321972222628369016311585324370040529363416837837315425199813941796874548233704102493022653779847666072805898345311952714292897606938559669204223766086996761203491373804765096019985771078468614179763210631979676352506176732004974711939837389465893609363100422411665091894584127467441387283001531476919170268318736577785956315870148940787351614459137413253481818863085888104581424914061577077553506919312483328819616426701942524505836244870316956463515940387588800561402772795380761865448411940442099760557345540563609970860615266560680719100445325595413654556026897491279272915023160312586601706921122339617921618168896876467251850677696662600576713068797176128611669785162813444600411897567239883454964668662772512981687038685955333393604237471057934655620817568154774465850112624753894225849847743910991601294166187172996235611787128666791765277271558909144134542323557428807306852792468152748231906468410360096133415664168253830749842716636776299600843507079154998421694892207164058507462791686499766041353022765067233805910156981153020063668247154312632503463694804062267117433808531691291197909834458796312761531501105021543485412927655227812025883746405534708568608220071837347331681994657057155703819159990177285740509408249315485641428088489732012763730837213239502560668669536139088173042172595493222946524092018753374201270798819705454844638622387864271277449382866771932520021679174299141918488425280101177328241019835936971756888709253852509770591786321975976422361301558418719109093131179948873748868602844032845560142468896422343477503123344474207120077122705098626990843506730067706422791850844002408323459716532422161685399351970937629823041408379800102134116220884686517747559296577874141215857736275933986926192889584266953490923291578487262442783489203024878746462143560577022217443908622370043914848787956426028223968332607048875441645374953299897318018067139205501754198733954275098138883131296695124428633252771266891685637062890936124545470655751003501919344340905011848773706626374359841440957148205065767533405896449688014673530850443460146699236042635276454909914831751417411970986070415556216563511626865582946871729895908371028784331169053745317526362382867837767846112738180270081355464173379059768052334945501662304526562509224116048505791455395741207556135836852356091896170815790857555145867387192298906946514557196714617586714329982311794498354133328676802668616944094881594212727497145635327114845657278515273416061283535547654061765281709515565848346263853499461150964458780057140655298849641172856402666346166290258568650902620388422794434074073762419778510475797262636547212537401397123047689269275454732319592813035782262041314771050141737532638485342112113857929485078701389864282361437818105290508984079498253738018498886893010403555626374558466385781623148179383255997110441563630436910896620215709277195099392137413912057164450212326794503026180400843220294598533610459917043131565834960437672147306120703578024814034507639629960465468126746192086190114170475783750509889089018535987815755729838807032435095312605941614977600989846924243984790647125241215733652620759572459977433454469501273089729986571102092835725495546374176086685965105771926132004349974191796573481856905768943833466478592639873686311971751838284429918191510206121255090960277067474548130721060257004289899829257405867810920904653217643196598222079262031956283589965939722527433558097461470032263028022168855753922891429535456480360675936016284369928260914712987925115337993654738549538719350434363894859913125519869780738819648137739232848108404805980491003377321421025255458384951501649329817866711270423649407707585889426620920608230475166734112671173074211077336354525865081042108949495593339073798274209955280496700117942246189569195472595522107007793305874976077526102922511884122871595139889613869357040534856516377108761336019771872522856707582524401874091970085151606223994820017120297203396253431688038573140269148637726859887480274320144126345547323288819275341732779289583767647469952636920473140243421734515133083891125362931098114235382208456255832752595021451418909833513019361684749549426127768767575069376617280191526843172396370203963266036667262786424037295975768643158187004234370578160185926128339018743449557239396165610966017892865908024647909314711191304403343206960210443914668620387975077417027946383655713468763399996979904133285408681334031816065593325640385378333810396198205706839008115806888930620462924157625646264223436178293331808061084443654085948662790425617826580950539619993030391490671075844855220649375079960027900057446912562299830576676937387524712434385156713081493279799614729878239815420508261665098782097335058051773542641723163936901212601132976526403682427725375657860963174805742746417384907789300072888965289019177780243354064325403935928929443552537552191862030124510131108803637200513880401761384173538179491390335849683730358531337287396063519776183912703834156716580331634056897869932459129106954594960583065843887108005832093438071339837829340800248135835240018833517707453941769873696620179055408462114431779705951513455433372097193224702498226082292143675135823538462737821181834412383057506275538763030374895752540110310431070522974425406088306577474764136270770223300470109798822431325583502569987089663327381584938734288245200097496962497880406482401891760697052855416524501663757281608097001000504091335070031190218354483575486654546112882624658651980383688575129052221765919264687760500641418537165596550122779043454001742044803832197395252505135656066435224136906319443610188478486315039633770560434073827163376936026324550207171314466339372269872052317607585195540169835389035613341150718367751922416316480078084883718041618879767884781009305855487588800663331926641753373805290333777439742220387425248295645200016326403368584837554366714016728020403577061833894067323725498732653270199273761262465644197156530372704251859491929336636333743788573169676592917657974492326329480991038345774820966382640999807847229389013527715229569466090991321438824475754595622103610347346949378835390327635484277442381884590244891405876005109909996522880704573954236128558464697081890330375758723611206924608085484142522973252000647871753190096809281939185717630492016516302414309520792278254779908574773131447748012356783816882170115358843496686386004222782978293891150709216023252606544867013876669245236625079929327546902667800197798514300772217324347460346677408813129393444584941255269940498781285677927980280973637703529322611149553259594872184663859747509161652660509943591916330212455726717522721462610536678015939716266348689179779838140053715683252611833276184974933727145144447955671142000655699972278325048080527220506240061068110915443566184232524591381989822449544468587590251544653217885537402311059960748960287077896825952776602158324646237405548883723517199937107970327680782041215629357787733116876978079698693375175271931707766515834921666051095361268257826849086343537020275909706444909155923479615018978310602813474737862063998878937755744903939194199510961545945666493695238687472517113988376050780150924830008511552705758610671342213296788542767465228050119468946686363034122613033723305394578387466145459565258691732821482259730909139325101651882015468340900801550783633995053074694443144117971578527834071839077983871770545043670179763820663729304412355278468315368194505829269605309763698513924951668028134616473459792659767785686948243679585775369532699540626388664402818680571597355416689178364693939204632920246745071409355567070486413067624858970541369858382412945605987749241692236940278359350466764334603770468567922685988657402171892965712168723317286421829283686094551697287616828885693697715824040608074865724788293639016277307486593564885893382502213590765105022484679564527045422182311439534562238794008072818359164339885050324455118809963268960360474560961684771264396797435188885480351910401937134063582348231414592596622357938726615591611892016612344908598986092818616957204920205438488778504125327615242551354443322834016990210707774595470668887091076026391101754555165729864765586079700669869651500157231902891993226082897254513213819387856923192637552234718335442727058470618734377355869525769247333942533329991120507369895332308039917578953439349133704012982850533608965030135939417164940394301701988170742305317321596304573175809487252241003303619000352919478864840586639547926103336842639434366889871150944848938871847800612064302946641658967288251698656670493241635532350879099887222112815382179873527460005843807765138992841503058767829210107883968595503392877977234636208829298502019311594018436068970124359739286199988201367381715161533438506724803533756357671924949725738917889685771939636194257598720800695608039167591476353838249354016910639380558402842232836519199918818544062061824359035301280238406904664999573844187698058914537923971603307722112446795000167505846549764948551451902751699075762069594450588196732309261804680040649234091178295268676456101667045166717631676201254766137988193781306663033640127258855387914791989942421076306026215468818977290092252721580107796003180733699277379738582713949005513766798368429045741915696847747802863825440627390996829005005001957876629202292323915115996141270923217268374666989260196579226816199551581667472675922437403126128844188038857201208530522200514866037309751843403493740636601776569276544183355778248529840353574748470949989266460335878207808443431232935033718432270611228720693104570944574706044922520961621372708126957173673444226828891928382096637612074120677456335806182050537305771755123333518838062770309302666021086901391181327507828236076174687985134717834587340948875978335364526344275842947033419189307069583530024248333138496417015468844889422616631406351128962412824058227753243515508953860891536732097123985075884637581820416089066164137743574190260066373528665895642619372567498942287235114929887516331240703610217018562867618764456039947354090118050143023492866773387447141447080445800147606938741400185609165075185862103470473843212262308353831724001126523800697431125234312226178317188614175433087172655203585483878325281100318834433886610740349943078996895158236962934176314700121968838648337318963870096984810664969355618169419498157560932793623216464821186628563342537446918229010248970757691074707237055105204192030242776834395150734809609080281296888418800264166199035323016141654546019332850831794563650820540732779585066162616107956007053192714946154292637981939723318938428407488842693412198464750960267854073361509606772829847618520201434966520304962154117097964284313622224748965986145794722382243430051135548333710985522679583643906741766425891384144104552936619702749145458768485892418022048443762405633507852540950660179638169484776262321287184615909223524662459244680229912828068217230697099491976183247574685372442679382838070975611467718514608964959965414710234601513022408889533919534076983632529631874358786836441376096120408883470624549105475790103559391340090950890078634616337098094986398947344884085163125277100142530904023590110665823372921166340973607967653796043581961986283777125498902696826279574279994272176896859963389177167794705117964927923474773592081487165978936011355459065489110995529320247567754978355123951817775916723015602994706806306446029702011704306183055795902010024808042514958323133958033402587404545933043163230159885256476487314541604693064968266042552100398059209030433271622934185661130429189895165547843181615060479629712767944492587690921049887945909729703103742411847029347061029275401943987586369057965513912320877722316114589943856030303808240230085236836505680331240874941533028337339007506814275141495480857439705604574824978172270474006269458081073637854281541537463184342593264494472113318698464440434392576735830522716349371200376105997930199841291358815653504202074971309966260744648498522434857711716240913552853688110433023115956170688682354355901808638170431353805212775072092581291752874519907925115882153745746737105959157515988650223657703798579577658091408309942973849131658745295866005251833445431823017495273880060317787108064003735489965547164945558217968720604618369486330890827014322386247225341046828516054284665994060532719835137618945680875099679946189197927864713961205360061673608584118193558128876272134317115126704348565069533125918722509803315212863945469740288200076664965422156911179649800812343297011271813240731059113299672615092975256137441380518210376581656002794799147739431587019756972991179666017724674113426839411002023576752440126963704366949567547056352161456195586901260752278712664920429750491100774280220534741690539501531987608636046810374991571461181071124759243569125875483882785979761097673442121578086533952593202810087482799970102246028955010256509493293272718027144180342673976783286055313037349190957889767137639609767158637891802581482412068470058561611624544613546518585619004581749464665479323172747786581580011292889515428979079878316414732003382522138331641693079656517873486313072320203572321656918155181343267358969925191425039464443231921058155308317865843240667694833925837482913382031930832168355991376412966141083309202991517098012124300848549342110743506510685698964868718359241689619588750248403573385533469654934012443192246126934863225540586328209999728331998466596473864033197192606344340036957470519211589189760916834491067707960472066706561219932305511389910678927671867961486228808371169222586185785444462396938074124568404813554304818718481255663308856877427230200071486568255344264970136895275416398994805697068957645534887002534557996348336374501298025340016853701778924001654481902780617841156861581545464569797220814360261466659668406298588038491377269798296284595331679341761516731301419216038832192742323140226758663375556912147556282260715965368202095546850259698902598408506941081363008485801345637925294230727215868383835767549938673187903664019641326777976421728136668206985230178125854853390241413154790389045564819974450962997396930429238794596119098699795448585843262708540436971461878001245036627940028474848047683128315166069624135346204266393976503080894293918286650687273128476757969519858223739580024502207574214314728853791535849929235213603674987805504193995238953344197331663215542491450641686571594873236194036493160925243224445880429026997190144607610148090295765741396520297617258338051024568240160613832250639825087721550341011652011919137211098675340093998149183154271030311358099760670606944002905103164622644324682645412265575230653139764700969109961547035796939530491789258947071493193670270201269853035891139368866864552557712735894697550246681868497916765259183956767035601701564647089949853571619782963430075429362749405669881710512760396621763758237305831553194644677241688097762679740794995526506001926668177643418040003028113473430827887836431631126637902142065921282679716005265433366661678826843124056825665847605522632337689507352234026346908566171546434093557724400913066558640715053804420436987760225155766323490655241390336039998802299782399936122810342510052351629257287768743957042916120532133150724420987527372579200628305419455625143795427445877287037662540524891987160544885385338096471665793244524148712035075920043485047084912588098303572571192496039480525818480421785339645141937996845861603161031389515699175626073620265898222234179119365899827449939721257927230449632458232914137659845625766821500039841582996820467551536792292909529229523118717113759185823668818841739555165365398378759061772166881811911385597876101029019707045474515617252162216981978509540263371735136953742081860692093004929844533364436793256238564360356155536583701860495868934399373922644713059066132927674080137198459477450435916546296315692759789197801046237334122079166442521094213007967539685688243569727000581138903008373669606428498210251102735955045684110912027808805301626661319154563575996991488781565855643657611005247639537112162428348580508872104432852801395533981858975532684421790762881311860068188074728541793171285173760453034667327985302235334908944068073335015177559758319434626396437866234031320273895740255863347878335865495320146913816362002366248026160890307630269933334196957817237721486763312562945528464104126069318080657919192635431980062304038738998742393456920680431513486093104362656185588276671413847679516829578363581588526644978192150241109401428596748138190802229814888612505064146879640912731232320320188877547475386535970580102313357701588605373573021460708240457311844917921298708224177641222522751207688454955628540891614108388727720196180408202938147710379135099977379676401803616450381727614315486031605152712907656408433940866835235812143953998480394651924303330171537592565449221999728844769948901470155019063408928394749908155262860298747289054037436774199461266960410042103363793181339279499460568998732464089008867566580904439543429124903121031895106415900992656458944281141500513628218989499219433931218552824255592929829813181241739515887436168653535747849389850309318587527578372458432914409718553864331296526154023778922484935930585500336855542330961452178555774587066815282453472613559886602779806933406496239679036260562467516114276298987621637401056497105777554453795466857314734313074018489925200918299319367439043593810843642435461369745514213346789802394975478096330823986826726102432824785364702331409727481857375154991778624293132109677310037330116148063659338396766505407652538958849330243936313516094942839042338388685227755575677878798257400235332445399817958845417275960227347479458124117460072414944672611036051494796990723779471400153021675054267630420605461721973629423793398980690724717282724785119900467656563677962283903263044112001080111822374060514669473740215472870013986630067630720105331485751490571521823255580733113727431617716153854873168943280463747156207345272943191924428024054650515452068609778450518924604817112479873249846927044093425504394490556194858076915703313674873478332683705390040789038004388649752765802816473962228646782749920155928610202655584621000614601620726530707482455817116267037904967872579268176912039032766787178295238437040820211429637446763994606618562087096908826108771500745179556092388068958851802674642379020587375724957195249122578695260360720273346354769036817469752230640580446552067812094189144498013912175240157798576159166625294696721192253884067783851556222400640259960011056802954749571043390701990681381820918185783821345245184538488591144464559768734730410535606800972979453612103198640193678294548402680075403467845045171727561989436286275549358642144296473676963826726186196562486896186326503659315330324730656075341152238666866911849776092614670661418777570336287182620981431548195385817164325874912102587279654354664585337147920017396053142983058043214031609264174477164467270990441957587475097732116500824328529946930825447191401873912785308977086626960390811688350252050019160825147849600829073122027556310358461803302637132749426523556829169449760776567291559005513870086963521966176016587945390650827784217591709828195652450347259886074853545638419703888516288725945722315315841119196032194902116851362192029463401636320946423541862140334909303750281212670493162898900290443700544914136590856246123174263468836412594391176843785600372718213808846777328502586404873322828881210005954337455005177016746774855040259523573236312944252051805001972754979847679748739502100373211355638632484544408200695186115961506752438269509169875754999177095507757392001003674763342193159634111243194787088821850279951697012718709015090887411355267007968682659126137736733387090595698286968778649254490400491717438168586587152162638362057917843994572967669810267388479949231286017325156261708500836119123424789965001250541891716395257032606532225217982678327440798015716452295524126441957956922776612249854405471755651730358691065545781813840846646015352933385013317405266262423212169970847047414979031476420126289354500189508444124500459116420537272220884276776340012223566313003052472574938797702602090882774706304665128498287765626718593924522976515208749027671896979312159416599975043587884671948824918850598364418457239031625077294478691723795079125892547281521400402974339472881263732485379224957397483477845913979541837366119015075905511842030554038430924805404742336183297997267044639331744586065604234131935276199844604337940269737321478650043553604605005913281655369749651087982925023663733435078837539322399565756501405706927789028347291339254998468685519435300851128441732027283050882155619998999916414959566912868663843647761240291280698198576635373266491595609065763362850000184249672953427898232844236094669866226701722673684834182294322623821319828483952679816875769717184947833759835340061812227238566876349523977331046007016795030465609500980756734912462156581132719327918475565068776604685174374043539342554191832842114704623648364835599777996051738952167920160149876133411843965678233149532131789615441245203632961633443683232662258374424071161812514719647874628329009617900346688212910322028379612052679774919813145579274601347455998011539785633617878614568466701069900090695829030719354785790140258271733861669287404226442636748224582429530569854269138203320837889947863735762183005073877853018901631991765808143030405788423813229771168324836986289647414313039421600202859523426640766710879159670920136798576766283637114448663630327942980974822850113270688580091817381158433654844213228404994908298267542764336160017704251676224509971336640188267237562412545183286873067384716105689918119378095759493813976951561354124870680498344662711736668354834708689327295527238894260589866421934227200509755061822987431658745993268037969562132075652137843289864766151615765908747758589818687921530037338935608618973636059457435981455544093173621402526262393156211850437333968536307657219209142311523922558272352017258701018189896608907596517300112944671145560177945386865393397116790133323530315889077321875989081620620190674782578172252663686849439509289851348799270919517326342991109321535343889665267073771552096616546817224672333794794707443406704548278596817032860670752111513544933686624965096588499477483018446974153293242710024068136427216828573553335638559212753731609702431305377834933066747800561750031243877750975965195857882547654548409835203538741755154399839886248417173304385763172016799891867503238149348760970242757083707081712921419951568672419643947377309026177384255972702855201696531130634860135163817191572927899185225156263409323619925815539711317438900388720523686968569719098469844049657473371808199475395381241804439502701082466874943521554805109415496989336739429936204684446280512290307036002646569522857449439911004929658869931426314191932833135975043006935305154785061065909861025724994629528963740101886674719451368252642534670076000392852189925102688520825099894277907384666839540301850555428496601158317343584927114741180263586095643911655005295337357077880277015226958770223308740753802921309199458937764430743145363990214648641022681266729228177247412655714060376036543466552609261259539351978892384852646743836722192133517927655280239371223239163804778312572913473270481153167158669551103132017204393520619174912347771602637095287594609300079347661381102882138515368022923064836155455418379496044736522449696341165481089881162628658895729369478007695131970683320401796708629802810907205035715624549196837536645822185554539192870690214184414123411821444379294910865422342850649659841605060814813259560561576705220824666468262136574491088702633754628457986299003914542952041636546306518044322150916802860928821020063117735481477080790646805648405450166723375174462273343626539404665526526421288095204641259929479477775218668222894655130655167919451680905234618796704518224115229076822128256618257831451876714370241473746995687147507882661815892357626738905504058324202565131253483123475701155624217025942523944409023302854827796172100441623587694693224513811347799262697272970072404552940260285897648037990794894713211257793191959886350856465324128377077995399192633434272728419002864655898867842710868972285770776912836644953165199083498593346221933796082811073884341750962127088329028060074447305687462747736744720275513659675391448727183685544306173469322465338701461581642915558579337434039433355062920066678417557516000996477860300318679024636519438592163701257791394145924531444286208663279121755761241737212742233995065704090085793173446293030443635178252288688865565144172081726969436898550340975633731473575911165204145017188295608860362833522028487125262628742253059852789138703030461858787942476557297913550655528364540483098695664296933438026761736056129207361536678837529179133219875252631258108224083451661504897026443504443057058899439463293154998630526852086338734789340631969208708549784555469451809499327275010213660061541906508542177776602639706229973048590409654279705319516616570674825837226484278847001078072394424375075536515927094901365793045489464151286828811354817917280065125288794762682110918148328583037708232707195290012827566345137587816403878188124491589804159768592922479424390341448056651442638923759467569880017843001290654031559300387746520690483369979317687603016705048194493835122480794392837509969455760082443990417796740272295620197316755814168233323001308527362711073771010824057706125947409733068304773846925946392063671697681436698096055753562395734962036922547685284765775070355165855009034739058472471051434200566906343651065284511259347020863825699934633003761770046087431739043965530057729543377004957493800330902289384741460832501374590238446722403598452019041451204666170640169952560703424834817784956676493255814883497189245044496241067911299408187560086276729519098876288612701435221119404063344699299914395219576698572844507671967629426446189250546726219447445362392723066716138830698171849915946054934652399307173208016751097778528031136323216723559781459807767593820199988452744285622186803942417416016839218877101858262469571319957163630461668526611654027711769302908360761417301715587788018708258672786718492918546686309431247356309826068089859843280758091596056991169887277915882267417462747322425423919588023420434622992952535661916311931667793758900381896221747257303399292136107180541823201699540797278939367995888718102266450342258006719007874821727515701886543026002365296901685921105033236991490934281772817743547563022886474107362481365920928291085682479986600045285809424708847792329734685676590116590123506069647960530306217485125448804727783987943402711151298519536736589576733608406267588222263210956377964147243120483348620577800343958371815691116920979002981787314254142044219141577674297958140941650905577569905354167232539387072470465629021140617602946634344645169414265852275142008917209684509647186446440895595926883765056722847984179553295200290751748769941646648786212040925889857584763490768104856455800165528079947293965128567689197677533673787251262043396717884220012390511071644533571322871846608022113403028002390876360998977718567108410067619730163569973336708342568563954484467819348663583895254151709709277574909680663984200007340179039020253278412798974973254284622025389653563638456984145870911867477815637675645022639952671377295595855204942707862960923212682550172663714164623718685683881338558689603774400877864030253664715346019879165163789029216126957036918467573552808095360078109660572678486982777533805168308043867694728927989420094530411525829423458719450090398096239853810459039235059180578663940460876586870214683520831324359914875478387970038026527170896568714778778920839575960151736849113933582493192494038916849883681849556228814843386294796380434472627685210872861885156834856716414132208535698266874214985761230300014044177706032658572557793690201934076523907558378385815639582769172001991015840670871543143233307704735772338446911965381683716013322066168136164552684276751448531063111543982218115086451901879614781793381125221899552147833902587480952065300136471301498973937059409742612217085455142910587680253864987431447885840718945895785287835380263245266851051378325774503312733744305050827946709100426523898716611249573453475670596104889535935759258260663717256747094358856174782772303926732952776336958850308807862607736005558225954262569818443819281797585760882851180966757084695232395861277098531551848716320455067684618603783555363268638811492249332529406564509401127661827662239713395244653515373933882273903610300743364733890291224965588108723759445525295885890644387130834075309433754414435865702376706225816698993611266960144912160815949243708403973233924512201913878991151008180728244479170204410677105026969899001177417051877362041943964089861461011953889929838345357366349186076251259468540330190848938464611089425159708169387905711356730851702467717112010684526646341499216344516069886298864345771787391710184445545273116983117182897173780829152588778210269107516202002822497326722969144784849792426422122284449866404635100248786447924944718774296369386900768659945263060440270634347055738555329331273367952555590007130181498332231723160698297493974115619669719975420786985733655992619804637177571925976040319698478106112294462613154521123488882074909586258492801162097450472438481567138692564750292097824715875365094336549292365725193836742884902740527346698441336956120086918233775245425049009203913522180185914131066137309965395618573145621034942444915878831541700441955634411039227351240483649882209499292836758702938187434600697635012822403438495270710148433531791096077814382073556749807034894568191524285964891938437793082288175501311639669478478305374522422566974138903304017058129277920361109776718734874465075655690666997903866350604593260156769511369002130623750160082094233475563079163276340161982699005864485234980792772396839872519430079842001542325817327201856203860591344439634024308934000480235476666933644319185342566335921422136580514878583054463682917780020955911807169596506882493485769291420862356371734771790710915355482663736434252547159112110536335168901239952376588443865467625569328443591535656398611808711129931731173922749352467211439665917333297789528169268727807624266104174647545279472917971150190101160834094965519704264378110986541569497164820882564480405579924944780839558388007061444753633207971591699731431158341503129760730822181605294401182084360373971915050756387333251337909041886904550219746920210418985107470849708661275924003351388049736438793007354635923793188886778718121642636534535973498440215003091779333361956553925225632765974470299191390315469356774149791060848000075753420657169551473000624667967373559230603174481455335845630496283112057147390241498738463233247978897059535741622516398319072825334148607128407869000321022320134135737615824132600718930640322598969453721899639628638763458288622631995655203461378968500567666056234840333389566988484805009495463104977370470954022544650864949764709678926057641264735444432606043815650834096800689912393344016622941729078162268961944941460157941176142036039255483446555410863252025782577100223089674307869536998408335586233298797841247598349055322065110278849999297080146021880326457161812882947929703196609874962142890993361204485499209384817542924802593961077320065998518421682325025042675005690721310009777763549798602504195541118149622539607636533864816841454773566161022276509341651917851435007662954290196385117480505111457785806041668362478971004122648072916587055651676051905033763137267436829063130436644265364889607215432122584122981413897911150477543410091219447743240550976410613759519384325763802774746778839645348461631322673458574856862342545953530082941771355705616863601578786359611689417317147989448326726808312076343302386138037676306036036117455060836620478583754085771843332783902590759820839172985382524520387777230376967696257651837731055208880165757031943213525181317007503673567182219197107822529847120326025669580735579576539433405915522961110783411060648149676449673688187615031940256137191202091559994190899544112591205050821811212847531399011053241782128645166763319342228770085352605334971712490680986204656941028373913714316614016196429669454468041780531455024390531296433264088767059487755807238757046766790876786903956724841046744368387500660128346296065179194796575491044466363709539624701171428142143905497222858583916838800227576269573322737404534423127568090782601773309061746432568321900679435163304902015864225072592672965325612684039304808804851196242755231511097882235336155823024249994992438932868156607371127583848103244525800862516857306484889738783388227062580603496201782922698580219740477966724298794837034814965113919102916697380717235882588134836157600180053949708624298067552422611682244583239338332688331194237750011100712503650381785114889635257525039521830492956820504714446962782643809044228774531391598787848341131062081904387905713552858998165502553347810446753374057016942201655067472960122392195581016227095417932445290840892824564048177776388346695016937822684759424459558125299631137059087378494725422834014649619042543444667185328407802217734098946562919851231869049383532180048670219110691017111666828572584788617007486981238213683257368925927893679871309887572486977452537659704597653119281840200804649454168189839515800071539399214141731146815418003633512781990304519782006852987256998409125005355218467242437095969162788585143664605494462537265288114247910997482460197496564719185398865635987505689065250965389877513221989145587993445327245442659698782111283403939564471445345218347883139939420873403804809921348445245990485019286915017224262269107253953417398072686692072346012710105885035962325295342787219185000704170397011369418910032733479373742459684551941622751666839940186321271416815841257656775350090472060448678755271059280152854264009877820597984175505713735849152141860282039571353897005909433337743192777200864289182171356071789229083801423333709023713785759328557204988247038484109799882690132920966853388894214879909704440625301876776799922844418620988470498773659414502716197238951490106989127110686347043575600634335870663648232774794810428360722819982852734162880186784112283437541890320967201686578214084819761830720642722299405491507190584169404301894686002985417502667791747997118729173515407940970338694984281437331108020242064079455422181391759504325287792689627194009456410722747042404253264788043248879488517561878958783722201616226910614321723736012279652418245994572062300084766660081280677998438710216511231953740394223329522877396261603245348974118257156935748861496804934001965119282375012540487931634974034977186490607121278736699695036875836306176098177345339380151831728967304631233280101062713044831088082564495792603714772272044999102227813138803979614918898791132621517801390469199270087247572716748898997987159090460840890187902354901032601603495900225277560053751475641738690814914585054349086415981424252916541140188167885675069456239431886087341030837778143490519858897530508616994154150883031897807921349862543908200590769736760803066296829280010041148963079613422895149925395986793229873397589559897903595526673434129956800498644282186303843602357409323895944261876579113424398004537579166072184771127705904414131125287163574353582787795869126991256250386183136279091692632608456821511877401862507465172386738047249174417496589734283597777255518620568975897549861021671414579894637707901017223942060198655213640085414295681159805924960415562503966915660507046848407516672148724711717468255631648590852733108606402547476901903706290482638305172159824606380955288711053625497783275104095672208870205006284844729566815809472386555264012694101114372148374161152877989711953893536074018000766263842237506163397488321893976969668525156962480377528193912764624318742814754882336401571375837451825987048959904222537147831777244580564135309787189407678471995352181169362981245594974262109201190539027485920664741032442542914573270061425505460273973668137794872393264360012554786822165605933667761653557231950440504425230596211273707650147173329858458463195744602955380776495789549252037971884883705009754143081682026675156928402626026453941936988316101226324238715262520425471002218563453957777107976931465364238835024053265263255632972356395773906468177135578480221066050617552519212367349252746454640120310154312606410928257878782803087125006926190778015332926723920725470406044708668665950116953922477484982164157788589571985959360535667492505690098499942113086518715628464310515060583874759436542296628209580009772592947881459332328297720863850158947700157069994069369752437490393595578955629131051557224080111748630995214342830695945914621838084130613777494959935482491808826920257297924808048819561745248527432925368701466018380449912495108218995145296769977222383591851820157910439884626537752928836674032231041148613851936087847850011483345865165391668073162820856730893667613560215680889763513913170683895240031343234016912794869130174729999909771843952376086747565676063736701942188072712447320771080395560059213499124118050677121231044347985336503492835202666451741520004454213479514853504071419110774784577426928509999478004056336797486162589452520478593914739351429844630461594523401568742954814916052764654113235465816538918888023811751095981270888402754526131356010645905250773635189036372735572772505410603790764330285581799769038581829481164134434295254308891758595727735392177892530298755522893171527259497395313312240598010614234224899512959002452170801453809162437817529436840311372189847216311566773650808710088185040297370991058511408403472958589418219869605594654064252221102628900718003586512962199839278309781288093200776435831083721987833347845052134580194111386720190028298652093115799212318798562798216902277653166919107204280721565634914177379158276296573128862748122183016474762428182735327874823493763831844235247902764669974676571858749234001187706513821944979913339593685753123812439404927039414659586986091588598289973228819690536430405006938066149671069936863399388287686395844797971563939224821952163593630276690438641864655223739779951365436460214358593981698171205599840756402314086392786010506860994840427489455621912546051988271169075217487500908339497172139893208395354292555409520713403574842207260456037820737569644160248738236978953794098648494161105448504416174254243350526733655019910942081929960021335880622441107272208419182139022005630267269899222208817249399694943198436933795097779201276320636127183649223604575851495389820743211365922359661683735223098706080458614352715116861354827886316958951808019126551786783994295630447377834022485078322092685243594087106765124127329032579767594070197479823034360018248383513938021839163584421569963482107711121540525839339707637723995691357758946819224067884239956727001341445182992149018249274743360199158647483191982284976106329806900194582620760662546018852819027927443086561536883155364548784863302477780994570084273702681176677157451367244920367708283742338403651451719285990846404503818740029090939701292877712912271743016070836823129296830295897127136902229272054468881269539945240399086407390453764816176643240816307433217801766031787854557525517783058391563434556765950562747131377098051014525028965195497412721044656112749704614358893548147626694752982607745012935018802811425186345004539139257044858278313967410038159708964618452694465011332769752215956286138092127080936978512857175117630861125625067121376990360687936140652934702033405524391949901149940259388402048407784994904054124719793789041801587828279270014870530313389892580420618182126739764337546763281525365221786136730732788362051459158134302099369258247926219472526535910158904714226994230553906634102992440330835323771918329176082663557259634429923693558420537413341150054440194615608251684952579510593428839173965407802789391829279884695363047774040335266754746600957324487683778971832583029522795377541142611290747612035388013243981418419443445312880228527178489184237403227169652422550786190772474343400322899738934057221616911831007312725185332997310129923765677927526329997833295651180335140896652818521239627588583018275510632428551894926285315941736520365975384730344206579286301028195121338253166976717022150060974934047895833379850305691034869090798530724166797659177006423478666710288053807722167878692792273355817799346690344108188933967693593825307381764139704471915968487592893806497714397888109994531639913657969239426531643979284886747017354498039247887033895199967432533487763298523210045607368534488385172123142421870301207602417368407872997730106653726058429349260229991274469463033581420574652408864556643952672049759078517595798383684489992127815061923618184759060025818035276816900652635136777253735099483033442495523736745609076940070845892669261906636213803259546600513159647103949630360379892261864390932728322163850370877039125161607399275769313010098716263568094907869299891880700189199777907879551334683153255848521027151570912747605910355262512242447685824645042425371028354132550597039727083063584834814594766986660494778286511171865298388103587594303606628817115747241996651233897917834997373206285542539577029483937889496534403249381159162750715628238891983017398810495006794094086086588558194608366725811065301669174947672679101616045121013619886009513676081508912529420704943492639752880941797795686763283571789405973332651018124128885231340873720394714000429927290307988081004635875009592442937069202809354861729605018824910844185218433080757227107591467405632138313132006207299618718848724480206044738823109857025105002730946920913922962205014049206818907889277200474310455063988770393481155199425291962477768711161109101363194660340943378250978745276356763252839726072606036788105092406819395588380845169881104322559096688783275869687558899008874276045573529690764309598714858315307147178819264363392723917453878600522256293220080337598210275404177099946429066395610204461250500238832644759735654173064145287186096665073086891980173831526323546151586896207031545382975726578347954136154240802099872737248492387084580249196459887140077157090149507933647299208372789696013712156954647398026223593187234769380410599906640152783134922625196407800236351832285648971782932732385728929032414753102376599098135291207953573328436146670066085018902461241477723462711018833851592886309743819456334417267816641606911207755208643629072376112659594880051854086825318264302331834619200955738684619040508072445088486117286028593292385324408882481000806647936589593033064666575954160771774956256956372264678746211613113389862507421605501333934002841571711553941898975485764060495991289040720431243975018530692806575171969426507346163032472557709348229033222483809783259923092968701677407733672606112316493735423021106462557816810533927141065167761904708526386585177157170172278664252163843009027446180666462068892494389096083958552391429848882200617872461390887616729342606618505409190975681805107045658969186487838534186110597143634226441132793395407896633823720418894284879353114769044052365861399969686695589200371360176452956653098246641101078856381908863882280278044183214599762778619628236531089282797580456591852573056293424620011786648622639943016408560625843254583565529316162740389442105186807223418787204595132568021881707663966855446905244859871849696457522808170445865957809840855093837252567926329792616124798826119958589732366397534320682996636382868750524113858028674398950835304656133573976706657021864347208375958052342034680540440373865169111886852390720808891194371588738181538703239893868922352137785158466176339328907394673860539562112281342165269270735256793679260195967180612257524095134870681040224169690522681101691548740618289153034937364766314025615693635116855675589040438571102664939260332720551245394772783633432386614985149023997322029083037061464568550878644725131147774042542906286211067196271366570225514690825966508885237190722478379106348519001984366386420032271682543385227310195298068928276916892893308013203942492728713936629906902024562583503015415618130615912675527434433366291943695755920020172795643738046109957902147828088058431399692773583314052789320877121366515010275755503773649879260534105683300192153675476280866919845346501971121454298635177297641335085179256767803481198270640731777463354569121859041653722753272387991293449931404955301382815768083233728518296962288360724766852382585622392973895974738641263491945775911736669278817145352740917302179466855357228063400499171753132417727680405669395427280362367431139275750063336572638354531745125754369479869247719324945560536295700005837318011019816007236040142914968868877755582270611061485275517080474866077322937523625439719945755681019974596224140939794088968903607573703105505944737124385039527450722355089755567270992122284794059749629345035465385791505864026855568397741858309143045751368732718973662790598826869556193986531864015341797702027140177992527150473997007610304217464218091008242675574036302501570481755337175725572381330119849600922829745405249668751119890603708315413378292676140193517387881423396936689378052712619694534575129985101839866035079895591870919289505764273854119245276939804574910789589596752828047617260846457739844923283978284952923707558981065335087382829360662573127511670422319586084719132544400285308511025459567041025574324559587584825416124011349883163144717961350835964389178199730368413556770247321040294893794315476595669951452434148067828521120086063847037252307281506759675180554670443477509022821537208769410101498118956955350349906873777598282933623907882123658422385419662112537253036465260795839373029997477070375142720249158424210263965394050950229293398987864465037271217382592525658903031529124515800393509116668941517388041658760967524855521768003807224919801521384246224855712024862665058590686413077895887425166874481235765648044550936668271281340098863791449833826867596170502727620293853673798371405033240056752577910860306530655610998109599609448659969306925304391608394600082700003186028591320523823313399939199285372911513064386172046931472753710365169296468322216763031285869975754120961687307504081897750762245059720400229267186485705870825303261295320686560026593948091923214502709393855443936633751953635900526922471397553659619440461563943451166755206845594917815784614552639835742233131906380314818040049566282012323139450601929421781981303675523317074196566596219023530667509709093154970003738515311189744310308456052843176125572848231986810337212460157302106214653606935132091950140812705045623424895123538395719732590475412047265798815501178505222269336310822170574353412483543836930719200644722353008684774070875561525518642860565504351486843707860250835395007061578939636119736607990507783210810314148230701088439409875829821826858729810191128209580656015856866602022980323449816347034061688650617519409290407280276829270695126393158818785532935791237726430999544796132577255026406873217384684936077302155733964734663823511860808778052276349209906288477496091412396859193121897641388645044788339453422558367544269237352606869809523254385586297091527122999220509543627215148477937539714262067013721510900488262286473499845715282991233855616378416674533369543619790943370347805508541516498635601386842646686251127330600594898796931534829300710835410041038839543014130407934391729376986680181912402018522188433751446430391692284306231375264969726220415125384979428305783462848720313736163752123010167440998066976179714945347443585535886864721132192586596116421442123943951422621712499697181167777348319092909065184792450627338333074987053345695597474481714438795895635600163049835932025247107694340644848197463289014241009925779354693137795863418724569588112118353808147222298745343982716146341059363302389412109411306994165206559204513440391635403894171143373392044339015925819588237863623796256751889641046629301946602470314068915714117884437468304250720586394456702596189628741983399542012551919979335596556238851624577101082020724975617109960734868261425762363953125924146298012022961435026784475741122061054608570689926140838154929705623267320092275427483450039032824014486439198848952482397797076491959467568849065352231369856616212729289389345947556955761296483060780859863263061059578908133966313811715848979460770112864438509547885061350153371693532631928248800674908806080544943518913900453236177933225865916341852010377203887975688194425306278899615033445113020071063306914206678195862161596353672895091712041407268337365390979543509707286398957039955135666471101757284291048609788523584532308393766782775347867362449811437003719435107459732052558850291735799059220132719566796268279941107797756543308506952097875744180166541964923885973174056239929585287884325511679468340633963023643423123592064543006749128876903328688967712457183580939839071773902475676924620560285695290317075046170101501436302145202426027473801779504422853115621426159602304461319769094278129789693427265759392156306074970678404621933416910200448052307041696982853677223005598993523943349393417882437585271542928530083607853086781916627351111540438122363754119303081023289004940498090684786011110018167411842420665944358680790289597916559488528782528862487403067896782229140389392758897833642989030425305933390510237420468668068453216748332763213437360910434469191924179034479027891311246670075311801832404551889661991123919264163680039602568771349341611536849607819711447965563627984639887505226454631377378761097509424472605247120100646180537135491279238618348915097959473488057269809638402663095087861246490213013896086074286601877706945250240029589139934059607455890162376560506484126020012403697104281193778883251818124967063841512357011753952031302027450737574307431351192906649674821489528270066598826798268495931481529339700049484600430676934762759738476338816722841652521832046992729769411904897421435694563654741455284012013297356923089170873431572992381080423415496701544106920175383464320304448641229461275486649014938847934789029598732542845963269033758703924230589883024784534605784675911436593935753368658666603451083280235542006853076842059487033529499988879175570264245555304099007481620129613400704787123476718431848721287543402918810033291222425194629961252289452959863015095116944707004721397971069846756144779501100150970444808052452143490087585331547503048902568517620791656824438425066168493865636667521798294884164817601524378636359689993143859830383824931581356653331329958526333214078734981169015123131280691384892735143821697193526270394938478027268748321624522067315166553751632660958232360523370413541591290295294500560268448571743470577445613173588287215921688813174857814466256832367421832805873803512612825662108869915618122202888202068399117088071211271227164900951642277394872364845217919213613585069923097301833357643818157969755724695005097360442271614452191087945404683280129475580092292495618128252390331468082524633824493347992445232806568556986157317435563847580646096037454035933294557561150998795018870999809621742534233407000410281914633005886438238814517917177501494475696766050693111865368302799956420816114727997930177924693643175151504512877930987198170865888094044456914927475460224006300182734330760532182157945688690186715065225792382181684971593533144932393421357369982549049307354881758801160079960689230773601938181506536938412859296337867172417497663038031358800419820986052735175160319178392715487113328803393321322781996408744839540415402257555525650463763074583000969484099924063617272662040942730757333764804902218585483379593940317058348338924549714803135408769752519071545302378626615039268876941329603702296371645037159647121692221100887063554528308409331682182593170591366995539376562765740061508093319411746916215116989177198808435709882110301869981207489453453938566280302043064369813205892023316122049513760401377186964112345196863335291511168309123125758680628851509206362610932724679623504713101994184705102345599062400088260028326061703067899412321389877286619748338985757257852312148753416218940330936043917800388080672262349867576788518853662319425214471550380294482832664460392325738475811872656546761896242283384815705327975358474235106339309430830297441038053654612761213375057064054076407492413735962904037067690109548511951385319239309445028393374573209505477670303273532027623235394188509058312516240062776286637672194364090389064060256110522792084498120209641943004120063152585447864354851740491306082876001978803385505495568258518644764222673209827679374884189426774119089294082388224880235212448216639459713294353730454978888144230871755615570431645673563215325311538986976908388198378124038608948360884443752187554005913024474759804585885410718935434654926220819993766811843890852615298883488390429494241083929082749934458479387986772778115048096826756088328679614686513217465100629537124469615029923909796391053056672957044382207516106722632335923840554222868415757730364798180173886824673132254886272583538731536041025793522171310676633609585550922624756778543484401401031527526476045829999225953998266454464812648466560362103831022817922984685618402356725902709112117910941735536395702139131187174347948640806912366121863710416752478641687421227100060853578368525222689257201467811173013124266582525102192381529780932629518314817073368509047042681271455449544835233341289073456400494999524362171742220651563430108053644686603227066910353183795149222899637092221325980274226236497078641845031081801055262533581923373585648578878050362143259199098262414498517584422707650736831048606067852808634774216483447794699590997709067183753068253562021064391390240754183900336524039845145993251598340126616398244258750045155186727129302232950720336284003698905114493641817256054851787495974012977780013146531962897581362929048750850202566321648326641844412249217002952776224811473259319265464616612924228157258775948140803591920400959874607716723836263673853201034561622851394167143193794875589419922255845830848825390694874970400012937017006761137128497764595934810268301330810797089915635745944052600090272431867757736446795476748775674050868996978879292065323473160439232020411038537324225610707524489629301377450463144066109371291024526288358267639995495239268103963287977281634566660745507331529146206304518454813845059862054429346894483358809087263555811005891077079780574560741647624767709056903144794381518916497977539036058003179283231718777582313894008971300615356744207576535009286675877616883292878104151995522503955569926710664695192233222625736441813036232635322056515915160982432246781298926611866544137463495443801417780544139761077010886757949302768960667887151064803997057614443454675905103762159919447010638735437721218313857974100105205981960366647504010800131383821296592398002851190170318875475011746432897625874181205235135618814973590146928235827637262994096102812844946662512129088108392867492077652345371325671168005858290274441879034833927494631180983434818471902063235720126563410729434725374366630874986963484678279493607707095615559612041371263617243864913656938252508180450399438750865859097772162010517014309772825857027597058679292828921480419582318286549876441919757609345985617378543162889923778182448431324979117439819133636231120205318237955207668964355104896131962816161960375619503674940436300718167288313998171488665468062058949940068777884702037722324615076290346326157402804757170367135290741595240727953207945226769018606765321258993654458255979566301043618394953064537246891073887111455572351501642257041506222074809156583956256720361494568657638176537186979106344430178769595712698364533867328437483458400948286208786185379512029754565802109483886392564435940213499764326706821326520018339253062385723710438548346673363240767706032858113545497165750402151731146117194952775797524338094306461078164478630323793647759132284666832283990765186959926655319784128564482587822964939350723723849991875120011985742987418486420945059953415230086014463485016600442900021377873958027394187121608467770859494820179406499891866604671635831859341233954151849543190434878753024134107468126172651677371498915802453761958139989241331788326581991953990907232976705652433754577383381131191434791980467363827716434689997424560593006237567159728572073777192853740424624891291312447065484803916556708656947461805304442390760818537294424238374973239636065699258608876868427402208003984708696549834781076188711628060037496591047044643753851008082628855551698872060550342133863948052525658170141687279574956459994217415778454377082131576860890033348882217843876091374166583568535789913416243701455824792757190579853327089712185130990344246754745426845926114391313373828235442338708297575346483994509311020129234020875040631229374738109673423612558166125436993369544803118794721103203433237778134227002012526656712103033240726797634829722251599147902414779498212506183990333993785987924265108919165306296828562699432770445867097433570920789023334139540381765650265819778889368232025687460400030661303618538313322159192492736754234948835890651900991126102352005229625759647746710557943676840059426893066933595216629975086223658409825709919739180481500695691400162472907166091722504112809301411580477274882797907367268849609635890240576141559666888907842344177867730917644236439611277365988964685543399180966291573658460811128887360846785885842311568872390161966040687413206408753492482575057233332526258564499376104808722565354471057824140127033636608589195086624509710782616755580040129545929807377711931700737241148740603614951543425436071737442386312356329391353341100165747835647141307087576695777040391295427747138119539164470352437169970165478102021966625716057052143202328019350386632817653558629582331125245975665472924776998597184361646227161390658221493417371908532664931917359326710992378372553946261509778787561706161633978918816043107549240342135038227426456559217559479207685957214961061008264871038490944523418890747584359743461332204545604353132519838066811984379706454907888131513385848408972994354197785151898317647934317967279159490445204942143531879712798933990485203945417151359318089942471533871579746130088653483219898003203465574487767276774725248268637462790559373898791887965924190750318009823471149901022611456060297618529866605259268501294679525125491497059435278970535017682228556053205074259886677318990298848564777309766530917628069470299177618881030169542859774427225892221921309579917460904619718949755669071740321384353938222864274565083271166896376138420979806719296968263498099124102856284653975603996921324201178360187247276563695847915798638636902363438661314527334793178227862028144676716928124597136204318444512545206776544408499459879707299418279954779005131332174786732065905720145564478922347663803261896779370545458518390028134467896912996613209504328370109616462969317834468808906303370731471438629872471860172463657804148770355018826005078525635661084219667333769268054798445661674750930021162534155015733783250414779017888817644487894514583172195657094196533454408352967758973896178708049502666929450931369755239141959517034888660532861340223615229718940627016288628555981341217056194716208096342870118686841455714854010672914826366726696285538349224061355030212394295849903088306566103360300377518829830641971053938355234414269642726810966393975967894280418292625424891671970592852909682561807715128707683018716938088921935864267901505894560104287274553292299581907892469807243610275169361567896998821019348918912499871155396232905528335447405999947357231841192548326310463109461240474442939114240414927074227980076977261010624865695031382671404629662631814575938642482120792109408623018221655260143432829362620009436876982208712798526550986186667945713002861872679645272548496652483762592751588487830557934837241523841305914681203448373265416707757833613517029356863762477225477576433124609792260213538661146102173120192801069017909699708996140419554866819706678294824187391651235852545422537785566053638183526177482501368931097637867931010224409550598280414040287967891391441721088415356400026358337409830873624965275088485738751528468435906287967498041836368476245382886458347660112149022682408920726250579732149666680389412998509672456898874967891585599090632214744819607762665238182405936996214502487745435243683208455045588806822259996233079809236492558402528737915402085678988294689780380835278806339652748633341698960329048788830498914220254824752070803012542823662950337712766360521174607476530928368460059113203456213492163298657746290790667534222065662671713873931909891304226435956789212525829413144319078636696183535070954735316504621000231288458226055758062881113208309121196372260107952893700329740763031706571558922378194248252171587772816416795209012738098063809811799555035578654627054349400280759246895386888822049224209169278036734881065184543226305773181352695629762678317744200264066419991646903878334683521577633678434320365102986629053530891318139771251440476271224906965353240492172165720803846006350938127611771227195085439183784262259419414126904170907281728612735201906347253916130267471666769285764225749328493965983843735739572574317424952065007688595826198169514761217794367957477069140353129730347865595507576186584929163361968386750107911234470210106727192926161258674866526754954398868220330803807613427166214679165816829161138817202718386171362459029104610507267671990706233993814975301299741080600272302647301032271542453639280053536308927281239054980266755387269062261041149059850762313034537837393430549379677079893230537572162157453975995656102231794678429247343324906467323716668170257926657600508974345609558244625435713644455273357107753974454216196933522611817758926564826782512500998725641746101195641307572614526623142229286798142317703169016662690195301585055133175887623687125788139834966812308155303189349179453369196376310114120462740521428553094315639891208986846631849745718019846790811109044817457004447543471515911042358336164660646742517504556358192789711806137932794851955852734684275199598842746543723084990795100590778451761900525659607322843664159444020121495460145357214812519997446751749510846065180693668676015636085116875693143162415446235759981674492927050344061003189919683134706045740442632761237073641628809708109596413652516249035438904761379783513482495106226704574645757109988538316064926759710107095064491538890030788446038804399651286201142721105630055449606969475061259604907615527913775182465315214761893716455443248888024460663388674569370124775413264547969531978395349303835836351197273716238053138471029755966015749143377293374149165423472714606915326894369749122728584530690273865212489069693930210193735506252369401623242786821709284591330835898017337301927838670155882704986278547410747913081984704576073732955708495644887072725918381827852899718483265571312170173720439563051597008008600559097088416444452599250817138862372279028661499425376755265463744445279794142223320202248041005383950648943408990921998133701270914061823277176641582050554590257415617099289978935577331601030097418949024204976868434934238145083612612756759098730347588164664202656665269829459805850828800000637801806914235415808167311238534101119034466047518346278724753745441553091621673933096378513272822150380891775809785902625848849502981575441496402460124687897514497357512491126885669282065164722922721035214842927004005079279106107970148450177533398436457351737827724343435043434486410818003345655782719060767660220328816730216888370314749115197644199636205606871587867409613289793165575443054783759961412456156047107514322469235579269614389445209074991894816017686210989713118476811671711516658128183236918077092608692475545387043332318171492479526650276788065119729222155594192304637531393798942586113529257392400274249972007782107192451504914852244144989279751932945851315110005475517789021311708510859968338833498453938038753469386784531841883083404729524186403417729190983053297507559797329145612998519365665805885121950191599448597461922927302811258684873337597040911427462587885906120266071592239511663575327065421133603914183896185863276736785745204464597586132084957002887087134645374300580943402265851730652026199089876357735825780389256180655242222593390133016197491139475718880915106557441410668637009129198092691252707079459028203447892767933101288894382137025181040016268576970488788640375960458745819871748157398441517462890709757317194021775860663421216048673042778165425003577610535841091080840548764792835989130603157480552412369863722895958736481447752867084009310579480512821648607595629558107260748885920026830964842793985019158090308592432308340575662653517344312083396586033548915558833229074485551352790143146749252020562568195865030536786424146962554507157499264047811137842236517139087608327486815009218791269658162071430742843615265171074392295680719144118147928773862848859453784956831897807846258232439425077215644842796844166826931808235719106799597294075862754580980070010489648034192934265428940941773274993533960417631518000771702838062426161760140894559933288247093806743145648678676394964266259328731218965227809599840552842472018270327013651558149066283767669155381828217938295878902106811821788627475041355342731407299741105905509862801822154208186009130681650710639546126124875923859759675004182597146994136715718534909271863933343844732640425082970646239896374434591234640831975651650246376929316166471762456528584892503427211262397246986808761177045053140128886921606450332940410234274865105532709416277307787944996952665700010684474910778831582306631670402250130627998901928722259773048668712685037457871805061671296277642076884286338750011684075360369759177747053557496681220869429809482263531977195483147742951008506319611433906514251551694091246521428659702306277556504990239540173467232835889902193110648299832836049810628732868187046726494045937547927282828450081294444153993967970082593242492666895375434527096259406801800779035309651234763705686511870901157091614095122372868315265035956079229457244638066122512453181584772783886322590098387680156132782745585051344029122361924870423139580054273176507352395333630755671827978391643570364725516549428762293795972307109792502135430680201097586264074160803274122222786384630278009901258556254403339522098065531078501038973600989555051325205549830355235085071326807536461813209165264553591233201040109914293507650315309692058807711564924702679466792033658809774062484871946414818770475840724050486762376822676171859073781299901709702718490928942116830932525376486914978117368010237102901695230366820060293008936399188895112065814288668122837860970902343816061470298960742095842772482100969004388767600477613353359441296030455377201726464611284500901398350073355621096395207970478065181064347086347505828193165235785756428543012179420974003619935040526487309770137911060558579927001859663555755566191898715313759044308260214180503609684725947831705041127102175684840148889930841369314128417211455393289533272947699806852471874007413519922453894997432572468465168813689468313627019919865869613118419455961261740997053298343385351471391571613322882823817783670044489524000241053031798572389619285361270146785594822725599327256989999925608802925017310650449845463497164056662908832248707661210761068634058265710686846224090867555453873136055603322376782903293422053478667729290127011654484114935673976939788024886494737586374085422222833105994076304036402406738884172152951395351855587603535776093494378327914408996427953309082109873586223049246753694419796822371082965623405036545403998430417500468472659661248855255232679160144667470560331178548374327176012166419165408017823685786664280411539210655780276003296683130488336802613361234140424300792991779823601421396106815299334126645087132172713870286703344403721191484373673349550114026194423610205332884321969786481477056791689336362067355812783282341347678894825646290454114385541548290867529959955964639950136992040292422727250740787273804997874943781530486637606597544870593850636057371369149926535896185060975344204883209379578535928527018596331574019292171975406258345116823670176112001764549195955552214915094706753432779812489232633853436031669943915291671605465831456345841900720167734514502119037272309726775382024537115257320947100814682531215750351133748073249705211783627655439765432066401282301234107074215679602242300617639444947695974226959281430549732531672056247147539552093424408643086142291225498466560072564148384882248926185321095581422090284607537160851800240716578369015810741595786669239209667819326127567489658684110516835732883824032609729663688873228514691120885178969575117572330899139419141190258644476003358435384453149415402041318527529409463116887684292167570211837569594904163930084630634503270913111994034053949102804609543777992426111879219356610810576512296590816900527347461284814434474699306571052844312627822663572381254577748573443052300037892117668030526986308915274365041297592074639684416271802499084763727744019699854387605806825732877939012115530843412120739338146163218053207948482843718916833779647686083956067176756714356452812049269636736748051481253810352807218909340060083840203761572667711624207362891071892087254422841179809601550687987350675206454302193225306417413327673440425315051926578387081270890160025403807768841043906560795537431980448981944588934859161492171702509023814778245226418118106806239278552593601000038232071297099661402249823986368542809570843356741934610059768157035540189551454880919094999754430715833796982297617508469527349327905226352279208092405403483422327545380977624906693700523750870482095590744702472128927742559272885507288602756535784491185004073181228161632845234211946926344427445005840496339815728331796573054962657674230886201337238105704269805941155017582471057387685489641249967626940061940425704679405708666718731226521383150648048502662276786803401292435011866359489919422085786610699574848172405259224239807128212753278760309079601271098034354294562508155347411987235820444225232176493046248894821837035858798323911895932899497453104300068977608551107563512954715177136818750013447980775683539925021341930734424429046312114910330575031873413975865862739207393130123218265510996958703000906551889877331135412950394736704386687988275783800229241314351005305596164533256169619729543712449594590506824182939356650621067284293258097414821400167307068110251585658195591485071309009234449829010790179695260735984885223787764532062453454137483397241229426293990463648308060816273381462873858745444294498816913654004080682722529341477581351529905401629435605580572041736408860232485313879985460902264787949243521457982956794793590759617774351472389912804694788988320005301730027637943935955315311044777994982297101981383363861500150489481561127740836143044590155862438934816872250849774897569638202347282869766933570232669469591389363493199732267330011661153930172226883038396671395327489340261827040530167788928718103304100509244097590101117687744873005863340330647749608980279877341027307774594191549523296439985691258431145312653333981882153694952407507715483304788499509084838359878150025923719429393341241984822569837906517021964220951094578221225060755773009230825632839249958545704616668233504074772209000656088995922343701603929696381507026021819665089516667128716897651579265487997529851864244179050900084303602608555196662470060550640374803246933499762182191040516083471900541473171537653006282225933635825896427911275010474108882707448695714076395960836334719246099992210628182335827111067611673970735584929477280524020478501402789798988086260040362176497693206320042469036805450789500674717930724339847105439825558151925610281590103240222811195046751839678330912653678202306134423307500873330405775608021923802516797104954810636503229206479354578132087473520537785786830852622601984323874076239717602513596894183890663217230690230990460404681970519855838482746664548837539314538246501882313113368087547349238288172459985602249242492658750423890060423851624707050411418933384489694958424080108548325771486466220769906022552497320105080338065310411487891337862917255800694936441107015550041597776362825341840336416380340602062461469283106881716808850987229860538312158461124696382652890567797208358108756076205474894146160248836551636718152924043049669226846324537233155533984297653088254437049319929869254492496206309236217797436864219886193252937990475586207482174136773389597450559665547134359708050070119345159771327361746684427255911481492617153229777638597898592507194964729359050342627997020816818966699411258391663179798512718416530657684126591723449467313416677727108520430681323256204311891671047174928172819131392466082138455766170735550236645349369815545036863139669878165936628152556272050850831596822665366610723081200112448610412455294116423790604837833071008458537386874772995979126862301192664472400826312208485183094847351107749701595927108635623864096704025033884375812264032085883634611236226507848278448755947213341268912021210691290006173110212118858784691653729070627659271020114271323495088739021345604984916892539736295748336442999486536391933644457434572551699428837364683539469999685947171826800156376548187380165325643105521247532696928399900825127197294681735242273496283301309749802466092656016277093366999958399363144457907556792119036000654194219386695269787176237921159244595638324566699106478473694467651395718829489215087723829990266481046959538035953280825379151822437603041009151078562523970218600171328855819811224684872381780632801051855694779658099561798562230909545660173415387634754575514988001351487274546268332597588941118293029186246927569234178218632784527963177346653587161019602401443429730800183120898029966225256647462177026028251697721135160613342394170485383904600119704820370174721948769177601844819652252061220007029246632002841413150827876385219246056575531816079528818484304205769742300637525367302338517961284749035697836247620100071484595350093738741979684460588645215025593586807458206210577372822127734779646310701383468339792429949876144748193940330761550798048633201756124343023214123271202543803059084124240242540112288038220084806904076115200198230739273625987557781527193293070717428114913623131656584868546363835090996725791799583468538277276205981230407572438647562597157488146228027103506672164380443656491852040022377978813389719163779385680112746043939495857616969945672442536531628353025132237984590425770328220944948916541421583009654383310016933935548744143971258911091761170752211265417015003597300312218216146237957637027323369219485040179009270223073665892364069456830920631189809887206588317584569551795748354935986780528286858734708527241570010038883799114708083099634276846300333238818448983797890259880188592295810978387868993224188982146214477132930467193411667354482663904994718981524441186047854645445508426233516977169745638731810016574206952211956708223635383505524260704777601915857647745115943466540828867451577264372857370574658700601602710323064693311174098921660779992437336575477433448686009478663389173840854103103073955728747566233785653532136491405530962775573742923909311609183203044294765182366750143647917847832882942962296224997590115086208812881527564000693694386348275446592642615289984442868671513003828732643250033247316516884651513508091178250609154267103860070573056162609697204339060333725335621846523880878571158434958627123136896245112801830066207907750710060264198371914421001714766165228075142136623383298135691460592771975363180286775037248469321760792367803809136306615581555518817605695326295447327695713534664832285821321450434900080141506429505533010672374184159060881593320406048455109220149618659945594906879291028437537197511726720047091565955695572157576992144295161431947752032342768548919944521420431684360019251559998815869540683830398912071378357603645843905931492893604006716908950685155015376381808043162648438921875476538041427158083300443344969442684574609632417649800409470139614329991828572353168224578824010375979851543420024928629627625551349501857624884191721169882893102829675956938904189639227646523512418421546739003880072605561103059139687447929211691197647492901216983472195763369963516586852262268817367352428315901247666181870914913517587410263009728682428765088788357530162163244702707474013252682637771143376891800702106801698534937825224124112738305398606335733132310313511210933411229313165328360166593160103002550262946758884584695686939201777837919782989572415349350866332949504227745667953637548556322025226084993701828485358876641750729919669030434867309194384315589922730604002801837183132678830848545353745403537358000012901764089756381439657231271645643067782921860292141677099152212671429531590696650767385015100769244030503321454901626259823041657921274035017134159161909113977521456162379577119416946953634576136478295577286776677631368962288446603066152872059659221306832933096670999317029871319142345545327398508523982716505935013374555975309256425655934071506480333148799593162793885674685633942830103467148551302763573503173713820332084031386609945419159159981850267685831037868377211193231247141423034670684914233689773293691018691864660267444659812505782350115755979369532127353331816294862505354371859045095881576353821950115082956274156114301989087180263636169461279618839959792883247664971116574797387579810030031180398602101257807860095605735144614611902414042638499809975195743457672382966696077740219087977932750485231933560228315486998108022420110394370570604485336701314355660143050082210747733310722190866006175005745490769427384400655217925386437748221828503284298047257965953925255978942369396655075785917527523941477736231266702747324015620119816345082939406312853023601903278379148877907557798946773659987858204656555479467230803059702621089331114627243788988593743023620536567632519360033908993004143803151796460340469935793754111393665408625052233554830072335694664877453131217476654467315242141084394716956599521966209715629921913681289954599343424254982199086331440293318520513768395432574445369393320893595569079565355964329717660188852929593240568397257978768965271535038473389396586482536603227452462528968745841190925114450076752801663452710854947191418122846349272596160461380520115653759026871382636882133288283773559761931978587695389565061775563194563069063196320973016607562151942925593620676343344788454850354785931234605426474922659458067622368002785667753611358059923828055333608754887829021244374495442263010792466582800650904002545027419496400968518356164246118687497186764961364699057311518933879971172994913609018923442469752054284533868077034388099465703648769308662435430610407683031122872809768456928125318028785380917436650114434082490805794315840444847927742952323775999595993730542197521938045760169985076191842044744217209207961552943787686883048530755764204904392493125871017577360459056104426091365492452457967177422680435058004403276798767768820027506013697052765746956605297755514422555590909252509338390277755644870900948470447418459492491119476721769790379157909624073551361278773646812206707937529822577217508684857963226407999391220952725105289585656439904238758494671334471660402058408398155577235249414483441569927244323091308578889263300678428383350657835660133914264424077122802446930622605236445888129794650974219879194723228582557874685856402150396837567357004302515397948688003782942666508820367203698846844305685276340018696944979481896166847808321163720557096608948539890890989036432123363046002536802045652597075781449143347186701598979221999511635284342040423122913239343043873893127762499740634779175563612877927776455262261895151695611308637676858420572777494242501150615191979704167445464505559983457969396521335153060935436375442108039135286318503647066965486282571571617772667695049217484752509667655168531096862628133337972374983356925103528998033526017342598843021364287185820037483107986664563378976281114638843057009079718165185895240670798470957837701812428337320388675622681694631456855306855670635558827010274404632711083029409206362351245558956195847695805639208449299143236282379280425106137414766795416649723402379464526658491793940489998362789084559925953154418417095340847036505177022645258667650604772072640830578342041254763438251676065830163050812998644990563895140105013159853965976145049345683301096939943905038399978488285619242192195184270660768696058525864885478063426885708258077268552513106702557052423064973123352506781729346863233120486250835883915387354147701947710011424922381536341232786082539901819814626060535056087318939231694809253036955616769649699251221322841575070635643708393108356472905827896600466970863467142891775010911131112615472409652531220046317993049771862711696554763107253481322038954062968010303721819532291767252099130709568033460540575908426293461495102982005160460384901900597405386783503847995983832942825563803974180258597296337402701155949714170850437436801939117698640318353516179334110600561030694191941772629498558108362358133898302416539524331929118771726772464122059298384792479558361433548800672987202991394792529549789275761837416609372694235427262275856600563599076723377417251200448673481778803646260235021045839176360034883838566989469168500307865865881760103031789133987139880041562025079010439042553115500459637000431617053616157883493761985714524133868511089511488445062302758466618241175515622516741416026260850740642297387922373709699522085009061918907324016504423351365243067509127227740964996172657771182381620771197026111950534088198724602615572673546091934285532730457443333229197092088984711263464054515825743966596118820848137285436845342611661821673852705506494433062161901988125975924098839697727509801630404547819149910860964381922205757257066798952805713380496857057349064899754869359728393044116453830653439671576087358739003610335721732458736063137462838488727809008846587773385177989970512640272102843384752655805107776297478508298118161123885387708667903879785902499807458314286975970598308246035284001775170293817805579095501607991730076782776489710668173465846158215814137543695871656542041738641538793642590791575527645048271278579516083069652599297742976306217696532975317366869138335842518430380768696825358639452994943821901522735207194267026562466969903910391721456054054004858554072707180433378535460148577687592443307218962404310490892250887146298530935835440820880720531189590908342647873953613907963351269983906784139958776089989691124011674035817184723512938414714051452211068911369696351468927417687927099527205212572109121240655056029600409790786042694121731194847973337831566321057396072180002361382580160207960785390835461388805189761020722866379725631431746099476072748274649065035191002973180863523793671763074736938389946490205448911014335898539222061400492330483382103437344783379998459464725514128841104579486893219898492420302611114279818885414335250396763830898293463729590223853054713075455554117843997388284445525564265247225322424269716329643106404913691890575739191562378168186970574419532140779204791855061816553721970936505453060079399372913023036351305497862342286279146980017811904362017943693941881074667024308221542779311543594472658866404891554982139796019560305787880481599399695447173047374862425515532610758399706748841253745232953648060852911881433137823402413868350581458884653487704723119338650256854606709461150643739668481223537174493408261831849828952375080911837630790480803036388275621301413657350819437104584161252927035845490829145505384040287006765975295974163743967760070041818884719341087215042821752361028255218655529769580766122704106255224560393185571369353323678539831730478056178363897544799677478805967524346734294093736053980564711773122464179590778307220430287353700009445572000763518322166185216733381040972527630884068678624747700622425044553769924093013485190912487538348371988466435050495576101081963752226934585720524751618625119033977135517218745361215839315946982987346448226757026241401490352042465815018099946886817320021438135301154293376953864317942031037969654401885055468383989265964195793511386017869845974276651693659333362353754231102973586084413736651475371268235197068246514653616704217447976973884170530925389265801135618599228671602444256021820764050237464789310534566997970731202105347705692722807689496543117671418872470420060048087409580349594995974276305072791917017466727371221856668110665384185308915803698697129301153132649536377377794407527931274863468651951672856307454741203482812512637393245367432520826027239320428228618217708254337975470866898789152679481681626614167045025061236597986954670252479602585155144629679467771885050243503328376230057069169762980346781952484515535227980883452641077182219281402424001638077717132287424280999096193779765006832911356051634908956001025124554343526933794978089525038244112869658526409324617258763457912207193661305074131045309266064095038035109761768952861993082385276455976945402716995752697661008559081861155071374354433535524189139839586035826606706557430351220259691002191048465643999398944458150847695339121013347904221787237785081127383306988005430712436865695422057571614631572680255056630572688802231242205174491478260092588091318462661641422701319859324939853336160730559254559763393871261900815974050356240817346120640153490676084025131545817637023401569435355106045331492350699224915845294995093384046371341729551276593313808987671823441198399175723321104301372392867675723705319182272838501050658605112064853884225735806647239096540080374220652300412014378912036006036570391209169164285447592342077875605008263397821267726236760905857083691605122081330480346524537704211425939546348859249236562788273077761323739953913441051033483348745589838850027984294686687854469083057989590998678288963170028133093552818580818122698390629943213691375835598268344237127913300128238868777012930628862431383233359024587681691771252971668340538905880492198039052035300563114155646252825312013073757581656726453261481592100805574029771096167558234853267865037776968479691962423287021073455265186937696173450960035791882981321800245268776214830779550562424219208100672937013583336631057220830608368582346111065016647070195500471278904516832161341242199717118304021931175283890301771308466880559436041668351628699428149120037868831087674751443271547981962445806986923700515128001145329554020460097537919435284684973493852322779147660026710784604392251107476428712763857221980120139835709930022225970943645683149822471891926187793735045435194148992413929792332503443353024244746114098479073974825174255874898553340683407429674986657805587874734652014844610888217756414550665716673793044023482197107576806360068605118681627149424207178546561184315766636073019882829431715426220922566150039225111430322014220184851690828009312427024547982728148333489762284469977738936387508744691295125179399575042027481023228733541708760866676240034827171056587752647924794201164105016466723003330061454788978402234561418174539873637061441947143622496187156657595358272326039382124596374989125478500031000328079668053970231482288494074602777667195486082198296414163452796079705127978652217592258512206758536272064019291053320927362019092541734871371270783186978752448821400746422715051514031220258081003490566999673025563946084537880358993332655226623984053460645098466125690154852922872201878987236080515251321833967648555611963360121659265787306595229086527862865245189336713503571510133318376124665879640705382772373229029462550832556197981198501259561267408201875210080102620761905606007841222076525784295739672733225494892293308745130968906153237855263617111858404315096682785634585221735055269550273484316502709813048659873762743966934050984041628190434482816553442672745867739638142806848813399474936204331589793288014182295922694072260731327843991374913434411632310760197526988284657051494180881069521688592514206360511754231090251460771255946724742115585325020943933255842156941003241515178803414611205773124971089770920442577993547071379075309984687035611648893699069829046356629760854094610825996304570082940769384671044685019407060979595056635566376417725169619944321329999700553602165946613435969147095919946577484191510198239416737457705547957803736151199755357966403495200395681198973798371111051726577495781096963347014871326959016524130882260836615308469049122451287317775424946652494829411275751710628103368507860195265969444336521732273463144554983571274714144423431475081413940587187589751034375323894644491032643635941339958843115890342932707465784062906614660435952137686860130984387239419766389936754190491151950728212463792853740890100477038609315338547337428519877510812491857417270239546441248976666948941276907180477353679134850856915368450602544991743132670800881861249274822415681366164688056195756409028503433269490740899068204309681134159850156178544214357048045819397635977428733023442169204635740010216238689197510919240859963121293007363334455895251385416698398598260926487444453296893927862499528326652894390313983688439308946080919702923110302262247637102855705769343245030054411183646519398263662086969901846000424680651213680138367737087434552628816330337624893112585195988019123513159057482913723398981762104841503315470023289822265586066867549260422760857743790775502424895429758625835189999101078078166478860711333323047788584570625508581487082880446959581907766377720541167780599056767753773522599473462223253296236557702668305373529719812038206718267971581312173714445834880492638580945917903940125816848295485480430382160178882675493697305518998831795171315235443505870747164855734877381291702740726774881997267459679499609600738637809962765688233568632515669116214296121533358587450635304769868180361104317231413220186651378178546927842468003874532431459377971334370457786249464639221814728331300438056329576758220933956263089175348072123672511251957451822703425881808094292338521139079058707242617019258791902643626050504286170864596433740780867957772650512789971188287054865838935413703941669937572937887600129073592626275261564029107512029342859872949205222702062290449159774759848767585895968681181431602117926709779070530587287299141241382092536649654899386894433492548414882670322683563374749236978372054609919112835839826508185903363114459632353350319875365427417443181812860422274795529424514218394157114832897066989816892187945408796624664130463913459737368947912167108758246271142995127394631513865034162515013211941508268054800947593456246543695505544939462170495381265679863927343375526792054728065530050890990911412409688084766214978098828311037230460609968997052232696283096553823974994396643903017951219431413954888122649397139691397100305584053378271181561445681158673113217000529165645130309287837321336285279126829081736538911445298996221242539907614769598886734187347323594218088084629771447514314403528905262000339618274406316367120918890135403969808133146663635557962141983113545094572768402057869548256220751526466840956324712655724754334771715933697726700080647843430345413733909865897957174139759822138231298881959657094802233929846078743964370203085493696062950540536000005359541213765913787947893753247694283688746018620416369083777926564156422077124338688463969994860232692779746019097485968068956168795304052768715213933429762417166526155118446255590082051495134680432988590024304961251206449582097339453666101789193056949655038637431236693842176585347413949807819688179523756372038786614533419763948389383758905440700555681604292967408641424716095505439039002896447589145562487624630068227455362529817601667813466819255978859932723378980183868722638720428735108838317078644530047337991382895667019154413353496881749849237679090386744768735945148255957989548411491457406498200053793293625428959647517603300933037347192015392315188179788978396771328684950563319080907881461932300722539506007380953178395418878520641579144915595017903397180711584073868100375381879160323122645132146396931129672415049265629399797127880186894304753665593454291316713144191931565538574486460294574402875648102870531841230104945944128077268858317062379279663898854221114903373627223406715439668636608026454268920674882443187507829251931334441325539734194651508345753617754044565284454643741127470260188042656609466055389362081290359760170608806970196103938298735522724945650604393600038838393143511817622918358903056585730610531106727230500998513879713530479884521962346939343751055803169037460429559747000502505464603749076226412217205393976199484942367176611018110373261926996957960895692963827869930889559588267796516157389238702909525471855518801319768392340199978392950768146635965504680136876589927192595193790527899063712890046248225506545707540018580297515835792084052212611151637874332934352784827165037815010921624258338719883698408273824255185913934633680983901285867257464678436613408153379508466600518824003146617949900036657297785878109716332256477490582889916063174211003198485619400882740427330164176567027678391672172450866467649317704432223760415930917035134214444563270677288963311967877775027959824871711959894820699198068012050119161736605730000941219025545711201479945919393190700396600567134793479599218452342658818979768370907020182553716036168351388258239663174047999025754294216754722040788548229025966571682135832234743033528969707996093510203418259387935966458274601676367855538495712455112906961218892193716557489331750297455880840869830753610212055784461568037227877544097754270308356814192716843605452338135946644123534873159545637737283264686162155527030941324936939146481267211575018720363297784649167572710875556859303763684585321059268515745642544279616442759212472878092735454287944389711826394258966063165223346453080704515675226870086436383593175154018622167705421789663475777596339000378222977305074699665585308512067883564777788067410245189766172372227374630670405259599835423202603498890823237239061322007520464959406685958517771139158690587649538722265628834435260069189670963885786819657313684926892640748611891920792193507200383441651770837825522633895785987548199493547159131777572438405877527396900108882079433599768602482837123019465564639864384275997894842285951510016115312581577481368354218763973838962993927846193262131384783437247130998184656415035843902831175852726199626018325088181991764319227326255647788518739043806854896718759283098063693527437584515587999891273468530509675801602140249549723712979233002345773170858523651741534543912959009914282105464249629958425923498451754684446508411200517869138709457987699320118006014300640969673520201120943673886608627453885903111082082634716761430638427687690930370145144604262851956899516819224827502511372979097216878247104945601333369040713493879740869446696192306873211373309169363230275048403860358253262130556802700200937964840987083001030345671837360666974053288310562528032526704005126603877481367815894366076098473148262298516172898390477450659886493932508719650312149917110423086463235095052375109323707672116177849956651779009107366445174658999518128928982876093629902022343558604326800353788292482004233729373614005340383422098684947083918616849730110482149324836616100269572649105005338097955000497429279676793433776452783776384591016631523762677221283584195090195886859347870672531971215089719727968244410687212951924631065389382057434942204836179947961347450773041496861162226442173201918925300912632479297896779612870765921273230949913124389747041708176421031445528592952123449534519880342334263255955543926748738065869520007648434612695603537038331728507606822481062226642137911944983245539161978230289893543915415380355334308332592089574826259989209629456034216567039565180288057138800311792288302915574503208933156579564228429200442053813698324272962506965022819815590967539602610818050938862443787024571790291487837171509311253141960477289849539489024885969984725211809948174741502496406798052808852165593574111493954133251471376108638756284771195556499167803423664107210486597857944356756376426078848849500950074696556831941552286865053521498993236959900455818701358118665064408704428041468668994534085937011632638098196803436853896813139399474830648755116144570946235842744034586632431888034187713814714678830192379757561200767022116707845857902604803232971307911257226464647144034734678635372972476276323493552019790719558052601573491076452007491739677690107504209067601058982955640031336457049818918713578756023655333602760735855129111622340026645337616587750792897080612426915933397655514190444806473508168248047050700367989173761584150525062618755883339725275349842925437267253667501612492697139467734664176798812951498953316773620645301875967568401916031017956339527704096939622567068204143615930403411881635733190301973991572965997966370061144717771363100566439646126473005966714026089236106047470932576719850101375557442028239548452023346710228227089100644658408899343494110468173901557857667297649525641519283314396619247722818279532119721156573598440580660903603448556054557268009788492973792633245889674859723739390307902979924165163940087615040812963458532802906632801707698036191009887963474163074278676730772863915769871818654776767502799149961434318626440686078507529724664882658998058990243931946180113822934938018522391809646741038965214880742670214231284754442205138722943908529984219216168360905572398385398947570560068948446572911623513445213076035096818331489790063271789595020563051832478307018909526842300832052523921345592556614107339215863635275428308677803832988432999917710265581010577747520157413652510403315605776241857271058698172901597807060755358316582220238286119591135933970073118571375239838523926870062525824524248214500036327359975826344227237284416273767378910696147363239369823777882010057726161246938379659045031417035797674220514318800601454180818695749284571406471158007753131071166038324078071476200157052854928377772347809653616999029046961771068974943680382990876172825196521824822312091340522730211617251264564639768326127400775693044558137276191832683314045603853583917245711591805474964154792945512029463116121217465935680858541414967482517263130864029061007149144163815013900019599571885671624768787080267186459786951478025503357252795411943719717815297648383628766254635932998787777123611309497010414365191955302060158368056550628786383580801645922682885116132924848483054311343240541231873747419682589132611186992704665381723884581636139217062296545364903918925779291080888581587570942871948072539927610106915610703625591871854392165464575574747284481997530993568084894548202339243907162005976924753251892844337546609049129216412277281156621449546850807647358945789946818648234627462246332439005378325162195237284920725454474103596021813625813058661834583314937641899260157180163393202228048067781758119561758956551868208928200303445622705439227197048341164019549421515533479948565534172119765946772201477005439135007099564533221011359102991964302579851234973062223601008514020906351343779809340476846398489344150579014985125444962028057081843092908016213857644992904587344193590835206017216851432023855291501315039024906696458522760547836042133350194975375198624154076874774503714691888989424580742178411023133545302363387246689628207103623169107209905156224206403801521940722443934579159001097626624577034242202217915255931460243707810195382020937231806213643904521189670067445188179015132375051497333461288357805422273755404452241075013974748598211998041869254399476936977104856683788497997442064642004815349787599789066932125604756277796316452409802410679797445129626933684554601822833442002622100132658313890806402386830452854721058884506902044906117650549364164911323905795049261046113963187526995933570939913320722695687092708960417579231297943530046871976234018563281965838878540769264984753485541498885540003241631833990266804781302716637947213498300080414591516625376692543947939718856024831969618432254086738719171667752721687150141064887369536907068206369004534144626506350932259909416268026482243122573582058173821207175283865407032712582602652268218176388824511534590197297166038608116904607197090724362841367305084489109984516557991495063508901116717224264213244479078288469633540338019269537181906300546741824290419693289093705228847505430605601839036136766899012741170589695032700319391724731596487928463039592500227944527213806047960092717143615351359204197365528644838360030302215660120847373376165229778979929582718697634976936797609974240316562816821772148519321919230216409575053758147304594992605649046154349322909189477547524137259866472249241615027647969980484626672680451148203183204715515788796217776813805805403988916802454475217802463497809256729297661970130956106846447013491922488050110200688928632580093830602904931754124616033349141633816569196052284100365520815818007100443016499443848366278098323718977511344356908955809700905185552917100633898949289929594534969081713804132538672849750326215798698844099163223024183059359638210864017286136581570417889060661621558136018396156423199427824548140917588575314584919202779310692784371423346178864637876988589334288727178321581723386051710678784627813785307439420937792032084420775961591714310510250097308283674701166286233087599422569301586122799105406344629468091559629849444325497562678162375467275113905648830762547101446240816113451420068809785888526299532618316380146218594384101212481789741388867557292425391617668411530468455206248213697429089773164235409803863336898827852766781458440652538179098495381012390097642609496397549718554071890041396144977732416143528126294196431642922809103070748899831960396323122327801009149893068969730381439226800801153929339831605660379013573270117343236801003082999699906730496035558967584218156127280986626725393102816761083469762006539651837264750516588188058405582042242309040669976624271173557754543900262492130765312273880907943157045167455266548830506556711288924423097954149610707913742858239988431435233829691977860028788586934875872090525596492948692881339449405189196358232489495288585466995106023866741081354857978102845635573275123477394033052372233486837316758137602210440189876217317563963417586679499713844263627320086635942647452628095784281966997937460364250128155410109715081519932392384158132736088329290531373936476678833200271301483824251670250527441174382031457251822405790786682337819622869309076650512481884232153665922360840482009405903648185599394538115850630340631384266931994217775671339417019550452701569149012941203691941546987021243458088683706220091311067684547869995605719790218247707540156800898380610282571388349355905952513317949050360859143219593782724073770674076665944028181334235919435838970867420793374609224186616916457013321547536959917913616238735703545417697683405022079223032633321022975684371083115323272591115783252428140804755247240720787839633023375070195429517446414863804178026706269756725128127168978773199457279572936207594538176154620027834930610100098659118645991997994488899646962114918600873841958704296425693716589692504263342739498390745214253887135734645004969000386477113631097306888700304044835565948063572232851151287404040184110397549734085134074925201885694726151052019408173193652281078663915285132527753341348603738685292266822506115791910008855931991868312731998563088521458382667315900376836066615868716900342479947499101578778954953605698045656407405141530181169778578851403162884583805386771492318260815107899993737538087166180980348707256546958545912955993190182642934901929594350409798894212674829304891835413224757865349821795614370449629913969047310771784308711239850681377429619137977268305037913262208418046540120455681035145063401939145054201320786031437815452098937300794541468205115931122716067788053405094927299200040646799928889901489222934789018643296093160053039861460873888054221088279161630316250428332255348422173732938124834220957225325263667648774553050606174626839773083773291065190241538924725191892729573379657251280472043474644816792741727951028459265169328094623363894270522104805102502404932018058620984833688338653801094815999886149759290068424029044625255384281000023716091191281180911660026594735153172953768778928687820052374095603581461477033434208543122286733754932827571838548952541812698597836448018017397263042093610631208834907172529495323811361713758201253474595747284689295189990407020232573233041003025230919095491496399516931752715034290016645659887156114796386958246612421609434962314145741120957125014961484777564010755313840766813850877263318940369181391198365301633061702440709840933990721698299449944707609112322919553880031557656562588245645616881615948159473554140261165594941345821171612093507661631014607867845116982913532012543157057187839566003249265633960910167636467602812638963523646061635450470459562661402256372676483330742203818046312953881147489881552928889839887067177615234385834722564811981631795969079966382128716811752927948504857024045563299972747100263696664951191411227912575806001950605996316396349624284355454623758690552551946264470096301471893716606889451462255900430370964621708919838887994950563706294302937260562082096869867580138223567673640226481793458852844110729214911753336621101228995343199853745229339003313838360967165951873243398216590372370703228932273513093763127476641511117244899635636719860448660290458424407988459393223214178341476078791417566532294721789484544278572047777533693516795445989228624668803186430822049653432347539891330972599458708131309623142580498419442566401530071060899510389849910250281913014688035279305861537999972097092950818750048280872427687857907186566299420488999882481199260195020165002747900796950393484933020095530462496749567597646586875272927455634076506843501842429102626683594765448171183668839774531039036225607573312075707201808776728818370438283568001783479914832450378700328931645737534569947238282689020458413419309355424003134460338794684147932848534523048366629912565843191022037968501956939309054418908916630128665888629524646031215020207863556191180980250057499251779389169909324308363575883767096382191143589289627547528045045306504747962796057427292532954792371714303444636910971399290788541229807896285028275560642468529487681918311454327376608838568320491034983174984712633251990766271303965150436459407856484415780877443172289232854106534181594808607763417807337182397403096672449009984723271163243213086705807860147149201053750672731374000885528775616018965531169216286853168204475714403329265004262660867640505852802966889080905533000514997919639810317972902013141344356441318138283987288280088477205499403657136316023191070638307048750302504243628492342927090197604576829987305770048678295825769642292002986320393700254160281314928912202595182735357195008788012578986585111801238826360756940007532553218077430310316875268351038792261844354444349481683404363876779319818676075328804393221788140137637700602498294622936730805283635475924814419851444164959599881308479434963938819171396734017254281845442261168600799560587772534465453991659620401250236237555455476100367885020340606701018096128658015531665224944841899560820211758715369502441621924575318530179533956524917112967746777643815045455280305688957511488523116378521338439314091832386138341565279326607310313796924759638017707776558147188681713583597157433134392956247569617755860131649153960945359418123579147709106504439289883655978754082036128911893985472237599433729373089202603771808587929242488046781565330739397996898910168111292675603475181692607906318358650080040668539795581137620004693000146083963785134069810476265683389519663340861546857692756980665916171959212296807638436445921695473232549084873099797325232532222871639274965930803696093111555416183901896821943723157098141242231062674950606049511350263365525252580182983102609380025309784012787199491706713314329823141212570807419894599213660017041090441930325305089183314463832847115219347498776189205952383458265563623062409103558076696833569914775864628351383768181077490808270066108764651040494107373069043896881520472351947188663367647994514231936487539747591178237864860633103884388824248020915007505444312947273446691209824039807468773389579552776592130807615074717684018030209680434715644014790161239775737524591157379377593589567922631920295748695171604163933036170699727680517986265037251219002059366902575871279394253295937359969938612160491326453051440994110340138567781102791630413592353921720295387191258417331987629585654484128690430801398572975456780167521773423698053939455230570240315065316513010194179053930526960655508322299370039527250900445171659406955656019693315650917174742881470250762973272048413120540769628250166977911630875584835970498952999593110921672878238012574765772947479550690360244745005782220066691539814881624272296586484944630330271718182331430820046248843356311365350634989133224029921736881120644996845834006146061698626523586214323355268204959537095641480302906982672829053585229366838554688251914523689550503699409272415374758502388867051326226959254957542716832319684835273064896951218722257689595410301156260453898232858490125948444421505249650659600304573199453742558891483030946214438550114860204021272809676599068795009475264013303051176990083911212544015075537740423656797728588898087764159115828944502928663830342098035471995485830754911364897073314618324047711138479453222481918113861938264667001247390570916883310810900863463254851089294016849317431490466478115816197605479189951581024049598540104585238665989676494034347102653950763408229005447482124361437883735760953044134834391486857936218116725415090343710006963322893831542396222601510957800492666956371337283913737018297677098254455480973995610867946646679620894691040181416024721172440035535376177726230493842380572118203553892201956796669184547686199864919358519892101396431399949042063808198825383093004729391955682278284630202349105036730236219304682830722391265376303021102718324018122104139164889550060117225177200228087072826503716089851050503099594358668005712308678387032939629096592051074892780759597482026285726706513053934422430493273610760439759388989245199902510020070573590740626728921758974683517819299591985592125636171289748796706619490900988409698840572568000490729838108808792520726790585741057391086217824678184278726387503737605785812551870221003830147317513214235487531488899640145134108131098959051061170566193746396481954291475131183918439018224808569765374059094321185315953895787012283230530241624852850029726840511252250083661682079871598932004050762456024536873961976789912810451747680558243967734415056592830241618912568959555757458440607379474917965544443608952122893106852908226520058599369773359732518509459332276339623448252990968152572362148903305322395442939003707598115799737230074077142166408848164305266669504359229353084346622251580698244307373764531695710968400383538505012099703179869702529247788094890912571259977201233169662687740310079029572175947834339766352338013801772961934231018650986306629377944455846661631662112808471810866943928624872464671358418246605821470044440670189207151528596063034229098921411728933654271038201368165335290714710765640536044797367395229071004698951126883228570961576329026284574790716928578703202101980309498339840247959476619143568981199335690226356554799347683696836597695896331431870367950841470212003376325197273545609540779820323568299800527575161410626407158650258442099954596186466657485188444269532225881011788269221589397616867513080868717924491437099122102223773451205014197882324356550780705839756146558618037467060899885374127839737344712054986539354401612091293293707745255472292487250221992669459917110665164626009571158767756857938875354875971989561087321486701580118844222704863429104266000879869624119156016576185683049445147977256241161077620323163331445915818984031237089641083258885067661819896223787250052326362161180523235310502607376101280878827863418136620044876007985414005994257100769229407189417743221357422632722789719366485610522240878780951117787246698220453778642539458563499953826153083148060201034450545577745153125428853232765571676357332963609006306206730525667507638693937698377365650289959803161749977441717597052253965158891838662086877010883300612506383389647014434810617783214218554968214918793526477184009967676490321932232771287122011704296282573533821218537797933680594134009313723376374968709544875929026800996423222206360089703732980176516615452083104721832806339977941813775463789091950308944715653930711476452750767086538699321745807932472730314640572924419667135323585587537672101262420904122951916681350695137467070549922754284875263622901406792063190425354960795124145202945247173111854659064496764732428051447043825482332773827213872962231068396140103007646999351369623258012844496449076436657988814814854554049071377580683823618235833493502360626419496501754862204360713258648846339644612517748755205844758336753262595873384810323537725523426721518699578539552901821788729549002017941431218693658735776240622516471507972649224835841423084992615301729300752832213623037016824748837966787860780536412455375611877011904256287717943531254727764819636579538369607467762505654300283236456364303511895536957776320385544683061398264416003391939351947010378815001744875304947278127978966482047088458404312547919828074271812483634451934815943592225315957414858330327569746637499222441592787905335727443543252772999001665942072248833591635282777530941453830933055709088125321473765975914317325324358935772361125069036591817741854407865294416696420743390124755692588820527294854900635679819081631875860030929415023540376208866049387847721462417611427044616216625542186669181406021382936005415931828208814196990535997745610275209669475538108580215612930711595845190031941906473438905703969651059686243934603975436640692159493881837745234208167560418964155733046557794429001445089774830805297508280833008010544546395128148500311989605233949140998359232059078457858060339608570737704049946338035471141901451203707234190209422512790209337703799209584721746156821881084393538485660353973153435445243143114276973689424914292118399920760330209342443244808434059440416564550328944724069772185404748852272291994942855112080976454288294830160712331269592850121986094625399985396399803219837613840262489656174722639503374003113088755654213026569739619922371326950540533647340578299785438123301119429517618846773220817492517275563597052285631566199712439720412516466889808392867186001878370071793838540493129334111162680868395598070788170727167462995026604010535825589017496982092733216243097190854371891385016230971974905742202108334398388906073851151868922733926600387605085384232675348672483135097168819223976519089685587403280926975057070298509902061978259438581888855153853189552449106145825136183120164636662612869341566253653707995571305318922817210771072308934212314555940501886173500449752528265587886377625339989582831215126836607728485493418537865797222841152272120805277815829332842353239404705840234994879904403909362685135545079366393180453360396354158211438542907960176628404979486945873091748202740573679130800181145831290106639851453024651409220318568792090490051835180552871368084723695420888947827013459373957218759774124930799829950298140122295061550614599290164108524447867063536587948820584928898310210044994344657570101463761432614707153374822639504279064237645606422298329357229962459239889640720247162074289355242096827105046921486959503755799117043529114640513258317297243950803826901270921006173602147122676404579085500847809377389185188518940325791779004518758383629995430678150872674815005170073730791542739559138603823284520351860056320347544853815215920945061086073274824432867730652814742873510772251275737664334676859512783509749679077123835522558922766899846347283021824611633740042024730300135351916631512935176216405772128991545523285055051768122283705221735592943395913899990910451941004487046917783844644102880409445926403982716934245202977039026074313575713854944770981394901167270100952300168257593588141001949509145903314875229204786148952161452586043725667137544928396210947475838333048818639808218641965588369359908636121349829768098991506562755836725644827091950123429634623831886299841808476088003619329311115217754625377076968651680727666758351638750352917954522962005875537998984312615779761261445178923468675041685517439904386172574318373343235665344013625296731005136969836612963292973334029274438028823613972562965796778183772745616126399758343015908370481925471406960659408538457514743943399797456440760110911735863321689144856309451110157830225582719496788663915918250654816953259891303623029726640833368392359122495352514641313471541107910783773944704115217390791439129011193773383754421589982257771897802617652966433121245313649488308247219461083688487298026865756264276430653473190900030028233078506403523919280344138336145297701708250020976983517351302599512053992392044424449636715452565535536524794581632366677244662909924365642049377918549970142352252320637556651188318289699698091656763453725046735649838270173674027806762720789544764328329007062666855736537930421748382140801879188361527890783440018842683166725430780237965598971265301928963271122792692860221892666811581737968432108346087560055261414109351365662805769045325115024052017959030948383983289279166364764467001795544415098286740638055874942802613981184701731289648649314062740027730358701794600296536202287891965802081663035176685267583233156200746909515684687915595652044749553025058773538260376411382452800864635613798142492184732023001191264780862397124464990085408138086164270880976196131340911596505836516786456366516509515242360316815353209216392739946661832206222169491014015640109505119432000110612482796020239753786347786095839938535059726145757582590499330881017999627077665411999275437329340424455924596728163669594035821083830225616038923919928830871444225405514835584048111235390900445849131314366379030157633147934538638265604044387042062001301798972516424101952562927974832528128056973285207663255825209600899390647697172389369383545419427202002414089925868514120108832819207634149730765192141556754534271060540030954479934857429815323350801671263121908972063910300781008855906562262405182275621135851911089356682491267403044288496342257655798086600076994374401589238162095101360556986648341950309367855042565212464337321426575604915794854024805457412532699919114371635678726808105753508768440993518310217341621726435071105347916130943096874459888130697160648543324726323701273135226075052839534373691094289321046476630059649206244295227498840235533714143367097558222887463565609875974934686555747244897900275195142368002800579110791048300367092246498499366703728315555040145432014055276350757219690191892153384370484206170231828311775136659318347107584125053608663695825821415317765748937164872584206672309081939083135813689113286344722360074703868093735332045567713710872880437445830659298803321533561222884720212405461475393313837145784247212937295102979501150102690676144364520690359177180125579248200142609810799117458717119375974414741384181752871443388469462281116637337642492119703320191366573240056683576845975400620333503859650141866599323236623554652408141297726919412877183097920680449881559523475805044013083447679266888338971460953961543945613297137397455835341605557962464284310937283057651212278890657153002759975500909107251246041035226106067799729675529427758564115145123999995599253160685383375221565875638509893824738406941604327142494779099797575194888182952888179084768587843964722462512887081384546600740272205835962852440433997699859483644673941206642608466896861222748481636259735418057704211695236579647023898827548886976402624351403000385495173422763999793951451725963080060917553638970367756356005615462976994105920561840390086257486578844045262488554951796190407417582511379959661742665407487531128224123992278444564342789410817911500597724841180227934158355956649160418879935743413416422416408654759622982543772303097030962875748271549940000483028100905310259115900246669455822179481739634917950159626980914426126913602904227764427986815926589745923434166060631509751167372652229813737457817942924826516539905274075349595249615534971179719895112888352814440411549177063157738805010876560169477811238700683175500241380652312793028544936917419988806497096260817838583039563942989422095409433483227827193611021574869002561393236721897479347533369901034251516231191849717723024918617149906831119028741050079708380504096580137369161044648542828041881882377207484248036075485575654511191603022949609084130718401671257858752201707150018504327646231766720992216257030490353992652751211631166688010861000504442015098883741082100548323297527564298728421263481933351467300827310669583330921901064372508863044380453719587428420545839822808139598046547195270699570564044078011419479596467184563591066991469564748284856845625474335375828233844582100622799544540348128354505498731104967719430767703863551507746852785675208007888223236110112825505443741697249063257149023361610604685334634210952282748189742130437559890366280099280423885601935866076816559213548332691747016269465375070888325184596445316874068837380833323424599502739041533824605266988535920790659462185138263499131735314649704947150838229434269144084152882829915242711035779161752685148543148522963209638712134202754448461265001614034564542952000418304323424170792292492282925385822941034219724402696061233461803783239733510623665033875076072828431658019104327595245279847754542995316373411329694434027407746692274412716020828450991875253267264823898238823459912307275849580539086585868195776096824849721225258782486654060347214524644197337016104660712957132336155342034085201414002275568990912467931523189564718364595250417790706393977048398949184905920391657142026857690142723751787601439112004422111461325667127202915139911882505305232437022538791818395234026174470542106029041536345013039168742725846624172638562320055432085414337110129359812697966790713814251770966361219977142872208233878185722861522382559824696669332166510387897019197857202799367988472160781376622078937250802017979418906305668001943590693997854631025236932363185762348298058855701476454006129251440610580484167951848916112591005284719634070702348765054234557768720963622808623348357379792539910175623850421904824166878944164948015978192623140038346948000634993449345457941659256017605234855900933521778202984593090967359833561707264690214846721949019362585648380479902130985589005985588008495099222680055442601044164783418966111927873368210233837606488022849294044794429429606438900375794987382882682373367197822030236647996664290848853976260786223318299718272167328728349845912132770810667104097200120392098384781615636196447981188638377387488991564583313988106001093644032963362138972026886532639010706414858029561726637478706370060829080798127272261928714239778331108843257767066067004714284034018534757253571312376916761386401630758467975260968032870298768405108422122310796319120689323729701825765072079092159954074638039650303169829949677498723593386059315968014041484032078836775292932259158477738601949969128793169660845057828508082946802046047652368861406272986415405923348661427260508244226186402845697535617043809946068178545160271697317710437901636427354791623648182031793201021499556315293662368635904521784134979811220918745940188485621531346259244110710670173413777743125328730099393563361967865160713696302720036630728066345155089013898317311696517766307418585078118239292587127491626506861854706237526169391244811659444371536603612529535294943607859352168662632802534546461531817901410945048108975664676317975899811966183694614561575726865733641883545987355065815429272455923582502353966897870891876790135745014758403681157605584506865553533610618878189373297754545852578980496827908776932212169453495810007245978612221123076405558259750479997993914381834213369554485063274274395533739192369979821707520101873124739800172682747886676083389034324381243903428049980757064327303278298553987929112567923320114094360317940669249166124620575333909448272311746354301503414623717901032130761987014786883841769904178412859233583299902242760437900964932278017955733525017032432731449171346786422998774510875864301273006968795709643254498682472053146905193649342301456742481526395181306880073994839980693703337343735652615835775249338612418847890873906320118685317406706982117799056242697437233395082393840596697858548135006062073526057797198862618002232387927638883727923019108717337567801127563096010348526260562140550155719353927231142605902592651785285202333990786798310192186208846060611682551026637015877435774213452968793842024404049878728947369012560827057242392246236041919899862346068139768555375494704212926865116352499900157644410977363694670515027128853639391299248019471402481678350500355545326362001554370115519824763771966192691289944784474776310768376855101988286128240661825673010067852208791533211718883300666829673100689057071167055227040042326015332852104672959698120891781641773620439589739129212687886416509090219659195441809961600399131212620940466822183897718262786860439418445478911333285274188316098277062376087965594960774318196566790367318092383704227684760478040669008018446770699107577871510073677606016162517579019294115559892580851569380883262394556588533782194885742620815668296795109629385085120141325262965841998391592492452716351370775134447679917847725678358451496754208515415704813282839790971463746592814948672976379404336622676047616176976867399403169431712737671884948533912988541775860895351634981345733956516433842796214492616011769762590644753264294626403981404975223854103291983346617343874121258020317053465938952053893040086618706434241477569717271868857864722709199605464284778048851024714353966296766017301831467279483272264757425024536565647501650403532237831232664701534981897130537135407732379356147790317184207492023874923889178915979247582800863352936379849996267693578632273530092480048177940049715673451046635523176238643104893382347100370489548040259551240246326273323099197526709883235561814297181102583115182294975823424973229274985530870029890941227745300550993033724352650559138388985050213752634364385379047390135858619180710057806537690674207699948851027207993313978907583340400610474108210615993567162392528347534094627196114301045448643380553955920493589203788597202072976938654654775195513400089984030697572850000818587358412908777681208962111466481477838924738361377560020500816913820903920251424957474377866108296943996615692386705568711647065032022642059098283452942524833126757359326434875141182058561464565857016407277605643443887040577699691501220311582470212651281820293828622072356071160230970363604070782317518963231992346600668418290050757773387018883170743199161005860575978571146497497518078130703145298973072998617017330454294189743788594893123073018645936890931129375843819380974482290524221184028378459606147001985540400232671423794551678597750595015427469440252750430879023609993722699842804715554587730917265919565876206573057466886034240581592476081567977576839594327661144514144898945474584981584149371564332818561900935893511881626247789453780386557918401202898301983581515690600355311935222164895790384958343778502591538545198505415433340293901054628160041312018999118751477208325296694795921594818068428384719474114232577281402556334144849221634631744748969315685036733955016030616313857646881009228400956366749022395044935300634110361667205259812428194963151119631508586059017449017181682976750754762105839524786670940393616846364913365223730175212961752098095564348185155389195277831651803621549074392242297162411040506388962183898159747632739695915205595759349058319554530050488977739562032539481458743875226800892846343320002740543379878858782449882786112305967843613829002614014889764309180969487933033278434578837329131929739202382720621328132485245420676990772585615286339087585043901691746248728919227235677325125415558533631674994966472195481518196748431342598750519927547889116605505174944130332452099622484745337900611460913397287505773187098341167407648946987580683735307370102346979690511977057645610084609133276676505349448004276876808333611050350249448285866558238143481939451560187905922082681955676309583262869384504679775862639628395779752688676693244146545314165612504906809439637739429121149965970601956068573156564194851363295347214945355867006738068589562732573821187004120409667419286098296595534585457643665565373750704648666009206632168346134351510606348907031622801724692360068931346558982547364765304517740741658937426734083427894340975678704338523201885729316082762342328156533352286532885754200596971792089447231145074539354284934936362977842873818831013810917656158528803804760690273856750017212313778815741396472843852958437255355741025890445563486437218566606875751759647076090541229075438671130026872852051398473348936810123360771336015497028466744436892088790694252733067729303369742748713536232156055494393832746734388444243320039335406258734116722459962784024377802940698013654423431389698580356245422909893957426490162605193538325041780510418920657365443140428115675012040588400229207532239986154852550578472998849631553815457266075072022999183786023543605727083453208281776985405312053298940347129031949893612923663818667834475378763784717771009147408518465397729119129149774953733698749330527667473572510471090046326421923296920360723783854382321130095989007919606882383877211358094027408724350408412939529968620838606874342109927661573714503172057338388506576660782189556712663337207630386729604359596827305654335551032233790640829240587392260341674570152172492364308749947417209976506471318318523669456276147758689269396717855558053864914097988206197845759452881819549897598113281877612628360955133840857800249798068102380653525877543960763509737928209120787776154169381600377600447090051328074871755273279964775429083342396878089389487257046025196649955341896646314810640446801459475901960958193477689536176523831282317110490461846029213502185896058030388078865567698706297484784463906135799178714392049229307227043508719285411105214835841654177229654847338010834627145341925812825151529740413840972714157232920294698065617924736968030180558086973762593682179642637851445329418615613575660273191606875381055254172932025846914807510345806212303278734107317780385215946683882612687225185405934899073441916680416962276595809448855666363750667618880632730939994999782847993804590203960609777695359645803886603119758615130936077687259352013839505185245512705740503981601253818001945821633500937869380789024867046051128942498585000545358221017361392262864128390059679962654716995190932519284821999098599752178429731740253366878042325377529946513306240315423993422036806833262029051563992965749686921050939160525734945565524247695634919506523279023744269711932687201378295670638907313228106124166331037956639385708744691763663670720649298481791157447243760322737573234874033835378031143871190986960373012623294375877743499451081681067565537903267789579694817009987895643548286470746559360936376063753588556852047382798898382128813402052213419689257119906196023240628867305520574772036599257004162018295490354706778915793507245338687831831584241051172261607554760066629599923440713533385806722071914144647367189034718843029704146340457370590698842347536052262798619487176144058915710897488958218670132358815344055639921626371945413372990171948704532328886567078666572857063762286105619548393839217254996113210883077808780174629152087054232642215640427533174878763282161921341160056458554191873441533482675901203172928025096733400915356919725320920084589498043366514255335455231376820672619573112383563009087430959698931818707413145091404103052731644109115330091173541558192336216738790264095728748645170021498226816070986657181865063300372719616241741653326740333108661945868584006489568380861751105180992664723973313087392164646518288191832753739576390018605625411938494427009498144383216847036017986546434323487963430607967162868386794393346687077658457042892413409109450969851851262724128971592890264734912475496699235804280507236620321310710723131663986212331003463292100644459037791966526182443877441409607658436847607534003879404735459646698092176883074892720487806274172303461052112670737228331355402120248779777701594181636810518000751721188119113238748358572752021211569617593040822447589340713693226984982751517199060613951285135528995087436501872908957483034784245268737037405680749222319816016978117895806007148433553268762290487467882897580582981134427750197365321968519734115429063495548421682408663532595567685034644891141878003156256907924605269280135378007513999607648057405773757078569495153796223236978946141580910958864213545794346185902156109770886413246940556626150315831460002696394473093910067854706789653317788487917536950852355297425062436098335446091431589751233260209045064525554262715471281924020708598376666913899788334621245930150412642660850988123525177117897025986135802763733391197581338192317291775904799123080310278974215125232220701840654692293433255019462287916441208305024978314784204177889105671239369206162769714372273212369145057318590083812706364618186254865202316261772091962470240502821285750571351981620068965942078074024128595979022735318349680575208868569901820400277393659476407403849973594313185951139616856658592266445292782646990391512005457019464454723276873763410485460426358399800899577021541971052602297514097773807245353783178120865934676401470197724965102791393275048398220725460107855162034148105977865655792082829436185627634790469785604363297756779181803138378777650453872632905126644826638486529853976015936904734878942458019721432863488283738072581730740577891418594381242390756179922420136272590602981585134968412752847046739219176289217730569387893048423978432568066477260875122103123618584867680033715384058748067807047089127916184328467269894232922262105647816622296378904329594326510010186831385914398508669086714123440268135767148983407145161868668718429396861641740640983595159371304124091569793409108962923302777174931418272675542933803175282830328075331761036861988904700980056145227122079362098522038330662805532432009242783860415006530496846372061325688765699643202359135887574902956494620020049353699939142460271519994040704407963832482859229526058276725857802399126965998803766443261160693338695913030579141589950734429428821600938887481850492219607406317658141217705385962800716394543753633653979465255210935177324471175216101504419137287308375565269742664707432858690743593928261205748215295292213101291973793189895687823343993476476457294913566554107807791371726041160604874805578703014065780244173971300159176264022600552159229396211773567226485374225473036417040972192008259217886164666674876800526906211524087191989226867806599743778620391869913144887087745671372197045541365465609592684728670149874017460026316350759487359370055116231683589155895653689981895054825155173663662559673216816973837542275913217200169005238779674681994885456354516706647898231905581672143766906857788772556222140078002453145234225953180895535036945520116527826153148361287334984842867042292629490066245232807982689789020198479008080656550631629321015943921082164921984200674619058484263954117154356741703794349011071310640592198008492436746162894632391575745324874755434666284676184308152998621388178868945167369220797616517482160865811569157984609266280714764373872012814993839431851737947464687371204298147242024568353122955255408892127470576674324120930016394639147094944592057060463714133588277377763769258066701597505804193092899723079038258512819709710836652000365565192888659614576260488304077977524318469650360960687407299635008665567604360695743999352726296764247213752901780229237445971238774275294019931855442063113284611889942725266089983042194949765656164501408307229503278720025027258695947975567989250506967483188412314198890860175252776812772383056764535969706226597376710716217394566820594523374972574521598478226977638328164139583863093575106934075937058427287233277962617203958616358374008425464450467643867231867445831870635791068284372312804578859135381206556062740757804715685274821996243400784461647767001365394582091227859131324731835898046982599299477636755431610004449159370097559103969988722809692881642228758108975403145884931485139806319357082248939728135192179526203943094003387504235815772497396427709351132214556142560795842316822424288927438537236698228997933968788326399062577200266844635949813735161664111107756207358939368799450213405204424340412516338899752469999828831310594927998701565732572051235736595221292258350608496382345142650455366322099401231372615796509872666780965978795776665307590774241130794106178278854795649967293905587688370306172273041846632702618604472929242635107782933424788954534712663503671932528360479188674167750839415200710441316018516690282010556395037899574055572686677812520852608558639348191927109873670628734976766780065448774224338297706115090866474891219354446150018873707036385505334301468015720082403951637425203599159528615877840294575874955559068937537108642723010193692736975433993445105868395831715712621043614533007550456555243721448505796362008567370514862588449633299195702884468101239798690727151988296220145159302321651376050216805879274898303686439871231669693449343132209754929862818895577218060356421762495999351013317986890576406752265695124679547310405633339802422616842684274408008813747911664784356201927277233122563501994865434338849116380493680449264332444123127879894806808167107826758702666355391125437781851607739131564404468906006531360132029827838818121433770112542469612257016995944520130808925022790865672264229979759328446265095456126899327246972434291906890204739237782762151377022219659790793932096626077693498756709262033337703988248672509212684030876355308381390911683748214801259255507692259421931076980356183900731592098169024152468516926780951972551327041443851656816656643098446418500017936573591141607591014248988910932070180804865363449822784202297500224566980892818147136780637311325112584194674968551579587184038760143489923984928800881958236411331591246813807581101172067040520350371752107829148492748694091917220255124263488220595351555393889045924012897002138086105314148838451727005757157514709238882548742072661379358338604028730868164182212614848284126719715870690259880451821743865839239926372485133359286942917200241128517457244932687419923476036026487401912680100581535087253434680512861962930007756504032398633861840105620916798651020594767651040724319925404027713142208400181191167441381739391038260673520138757898480151499420846294388554234826878514523637603089091444595630023395721319496950502345812037243205025834975747085083843275648264436843698064271150331845776836722957060462279414449408604132951881658292411707016223371524393665575146552786761836782544597489875577766437714201741911330122573827601872639050525196359446636026478969560252534631650129010848043907520293530454875970419235566390011117577303179080100044847319020296190222549137761632567743394078946118884655923755643633771222244096829494004078281207242882921065545238000308354332642714786599207978314655433890423609363016181116739118455005724108062694707009264719522711825922091106308413317493670222888594884118806977750882841716068543749744001247325955170222001079357378523072927103847556159303170302872331152204269784653598426264665310312335470024567227531026410447106583082844708925075183538401730921675955876711327580053439339911652626421755932293982431735934449555435981197129122174892786916254941859951785096767532344878563526764872307802612999581277034717078296208197709196590422311275850952287730777416443276583887490249174914734309231675533435808022551622477519037245462513620015378578783338645872615668884106837010307063823795252679637725401951242562423093174678425788820963145112263415134311676821873774111960502712061077528315241219951482996990361100158550294381043308957473651010557873262511149859937051194369783963648257033063564628199742824608523476465221852158917155512677833722378755429340654327747508551981091151100402268711037467526590919882368586306674129482084479342081336843846077428682585092131383433673877152103811268184197378912390367559865541282426581734365167886270856805322601705252745761501707310490139767459227708864606836132734642731416453779323420496380725326887185289259589287295623717427736983791880939721818607596420141410601508413547826600812414909182221505395907627660109712570841828899507005927628672571954054391581091534171517056687069163521218367113780127190670713897584819135769338297946995355826094893858682191509426001368497399680871332611460609310507824660180290085591414403514652844229433111825603121499301817910323999044846234527596146656770797795992456083443872635189605743751200790731483737791767891225841706547030816256243427265640301800595281337709918764248970249881955401015106035415136233862599352150338458590000961233793745102223465685772463305539369691578393701076635008216668921315855410401655938968330280098859109894578430172784621701483135217583574296032520842166088836522227762484564364114501032267711805700386457505673566983685568177435582501769761620829910910626878191825541149021208204323076770355332349171614484817725736716220667983917556135540298680375241356455289619045156788438903707905966307750516501445003210894949511420408082004227665648015462055371869077881612021186738879210287220502337039310005581622825188095981437052866054599600647368728217392255004666108970642397467063951531842061178476645851052432134262738323636178226649782015716464716950186656652640697576326067263435148514904699291586074366809937735818439343253840777572699862194591749204164627992227749332023133754534803531235614140884330083972777041582541537274496232698179588474987654228892559402512768462146966916161446376722671098689995709807890125524223223376453304034378468985567577219688116762531748346223162470470952219450172006288783833399363172682777927188742994547251597018428553774131884764220558998048674222730782093404151773570985631619965802799141926507726281668549611841267681835773669637768575008313467628690731624530664733147398399087334679288277619589649095443517012847155556963727857013791031027651226594982395513133620959589727418673203920702396993185484199376378323065601239872568708123978386441998868992153323594470782346237035971499908948884930114254136897926886117176138858412178767023153993305590957353521883413866711720078118805543456224718401060818911862802890547953377738081629106217079442597698181293768874215576438758987328118956231613702831210700860967738652167535815166182541018152939847929017893887314203614991566428068406523188083655061430286198605302358523366152822568594890650720631593367488134125580835313048241804131727107688863567328228359490267436020407040056248539061667231459944578959135847713073434466088938219385418237928971985614115474609406700527388251665325534003574000953402272484273015970254484298687144882735253172566731194992861989912585565080569521187806402112007609217569713364299918867379802475375147280477629013564456090940413200614535631431282706406165571660388763422581419156025462516583822791913217863792995295166469083954968082627084378717889174660796666440443351251984875897988028394544016519177038809430478386719052640913056470121213059169369438465298764066654146143389131837120421954483280145164655497745131812846487854627307837199229031728925913370292200655917431756961816315999976630757203453393109513982885276853532377235772339726372352638136433258287881397588831117539338712686952744454666107327986780370171975531519067202609496690493250626146563087240162567106492168613861443628492734804721700524495391983993969230128455633836955729316122357120297712213457379346556187307771258848874861409501168225234513443546766697898957267157349398058700265254157696552688901395487037349120315308149439757646255530065516776532538053733123117821754797807724599144071160047946082780868238250229123735021656534594327914656609436848348662979722204107801128317603338954739667685663749963140127346260932045653767990045648795281319600117577876712383260675922038696887367635823079900138554581098978066947649104897043047433234603535199267725576634771958637780907432596214663933502444355459876086502093692438988822102625165630041571582146977399607444812037676788955093490547728082668553850063240021116846902608831258600692173797438950012835652516908718519024596224345436607410018464429764045112232307025269905796861657353247372599227080499424850566636433384103984719411626079917565889097771651179305435935853347940471702096266192923566334848442207744963339945096697462954095349877976977817893114862409504972085439670104460693828833979243308948201035106039463070340841246869510140252303504282655841710536367013424167012977622069876991126136153470661586460192682814537752742216625108746269040927978437501930499877970595812866908314271202685509289646350583792005854685527523697312512115281617374374492174305297543876223800369799997860384693262039213488032035811690975788274212918436028054915654282641701475847365723020180085931562697657954581587379391265632988455406516084005169651955142361672859712063958488519682234529381316105205656050843828981399661522952484475067439451478642176924257481546598395307747768653212082809052396390328992971498858580559175316147669327590393219036157400188175338245002119959116143672215860675351789456774406839943604701161105866769039562446565367166741072211691192351703747769649211080405863485259808579811237979727884523181817809811733965467953414394914024777273851131764164534624126881675570559794584396845429554062291243012805472429528673627822980290604057053989904603477654528571787617305273450803376283619036819501806083549700429809914542362769654060824149788217311448075255527861256784823651322323843943107461337611295483108107585535395763251585358214747070476403799778228913800190690504511095727451314912669969998156515553572586903720720869375449705019349300733527541205904156205668040831527657371930057297187908083359537532916888034049286068684819330176183368510522900493305273485356375111483942216294738202834018115266138455635058821673645607899025473828490695301553111137306755508285868115178893033566466722245296723442339889556075479931386844324736586011821515435310956573122665011814461476961080646560775932956844033908297406567401189498842799522059707684582685540650296978425333123390162469363290719477726871600818725005818337488882517363737455907191185570984576547004024334356465269032931345270897848829891368612351123334096145712504057940417768197414886484069620132036278669990429218389655063709623801172794966706408493556875516104680979600632222576840883008761503827239610406914560755266339411170807970725244208012139985837801857556658671754477237991418540608652916923767089254042715160275144062999204783516256019762616317497452054211950962752734549875050945986903497470569218338238049508834677828099084256625407778162053165930578521042917920390799770190607119872362591686904630440558842247486986158874344439950919761093500985241661844638944738337288806402932623611315458463253980557436960819524768352717954657487225647789998766356881609327840008222461409717990416936567184721527643815140995501285264114569103621482982938393508596939704248109955891465465936499124215198718170651299839442484645172408194963930082284022027290007384729406549205898941837201714920372667991577865956854616904468740435811043981985441987230287642944490550466410970599355776724675333306817900799465789051205804082076633523882705640895935109393641208376595599006360304582363382780505147572081383226354497289770370602547718306798834294068005831954439347497015585571950999752317289327619363361898791417963916845311696844189907401829295956488809292186295424473289449868404999736510513672964437661958856207460586432113618678246474447030797601098629544556810710783055396948659188576955022312444456035366440672344325697274314130764328844254980558654989469189125400524086711729874388607932386828868514889479275271089505144078048595817521233886286794808802267192262732980421111311685098597305727675657277093293387145323301145645352142571387024292531646224797908681999060005539205784951768064359376470660578773367659031866957807483559932876427577829334447881067358600455228899400919707515423922456784544905210354446902973163309294625332396992646311469109986363961147922020453955638290550935264058638584092639962925009228211141814823602243186752905318939878254881066254449453884488883575432521041408466609082043077845633587339217816314902724591077375924020073114056752071775082832751763367705087580347455783917488524844788266964456975363469410430052806197521710575909211695588974765915219851047375463339649146684723215739868664548859436890396797961256338197224952452883411890159037339277831346548750173503484335011853627104422458109660235420930568532374599601462071151938752612498739338278725911617655872938368908066370800072482505208754939749687594380910063495795753312539389474158417392342940812505895264505782942373021452305899182894098400069852098218512791105986278925697649955749805957011991114347179344446387012670195981700887957596318356972581076537255371447452758706209331633643945771564472461842911403257954844792781956827879393825735566752136159391690611664221486633006673064535971442906337606566093847493814892911804838620326553484031111924267849913206440477861191528035539130884758185012106630209226001460641553846807640779176545345460023241404670268988853911467417063895652823951860738613547388085073385528385262926905972519259967379800849094276101914158888427017456166650189675473366903860664278745443053316184330004365224211170398810029881603625702306041261516592843491694192604909088813380885929151374913250320523886339177715438375418689945606833809076094896352544294358088724215821149181410415072392715939612880678087987602020714508926705418537548824071716472802170482424040476022845056973579346012537563761063224051096869324342625102645096575390974863616480120069057810455474788475344762164061248195701900293660635380105930266331107459819144083281864466130219623098109428560471045594098707294030387974802628678633786267367219399251864453639480809745958110750576712388755540314975113054464749843468744391469536662410814877131770868606143118978161265511351959996048033992181505810573849553136703586687573552547342594220519033747656352711696001190207965365848135074506525029613694424661583786610728873030767109313419031666187783448169992876197121822609927795342961902595307082699809350446481587753788828829979072922788515093997003302619259458347160997951742615075557350308420977589999618590882374809299247538971985233652061959178346418567956114060001217559206873320637867982396127007291927500580121315988863403378098848329914766355529030497681762235704017380136213470125868688831172235819269909845586512270826736277989037637663741738247243308406023325146058340842781543958535673897733950848730123640359736691437008867492178671258082790774244551745676765402295250696987134527415550392045199038543083214050761267177114606095624828179203713780166516666407613445994976865277825198318693743897405054005272673132748450454463714709301469446233582906764754911844849676926128404660491760835068652091562195353741478885021826995690332179548549244135245863392270040842408494208982821797392650309156546735981810695421807186719174586860683662488407927211427606743986246027425883005564503932933336644343908878319632253612624950116163119751670925362409153969282190913079944106630473421272457267256311135496409003817610804301613561499426016933945580768491106106658370019267098109444270956680023261824577851741231599729108519015519226464185746114202210501552956191896014966191052625725020804746773293056830269914114273399305368131466767602851389538902637794259652424915750882347020844296613842648937603868802523910428205554317347719962131716760946030663107345996208373490479434398047712711730111078462654633878824090911910626297125562480029553381662960955556203265214595087777222260936472379405970435858355472469706801646095875377095055438776089273410735085686752301188418713167426053684951193597262907592594759999843699070237000590734547400461403821640207873411435831316594308982974378348983132726418407107138114471572744643684458352023728971268854831405756035168756599340527282659971755263068083865033949992445057031683153141638151249548394893665391360296299864686444941627479835214844196068596032648693987738551073294337927674493163711956713425958651571055197907737431460475278664305917469047815453560834690133827737211676538880908737138708513913660791323026823296847980803770687727687637384584278680022021956386516583256471514447400830295287801420871513131531763125988205767158816162308338652310820376697255679293066968890150118776424038563846621213476381460872565165134172866899414146015607250205252891957244267237589187279771081527190076887981755740402068342060972096571362228445361003394348921748428500996716969940375222004675495349926613087349805647124130311824173241172612307795097194724863648474040214641644426682058268499025870156491368831713748257271304990244888519822041781784458676894667552614129735488231805179473368184669541549185084228569748791144660505376860450763371913504285143982305328228778189373930139907127608369807314671361451804337420634457537941314005194019009738848481408017728609006497600040695809367873978002452809140428780865730403941057825064901842792974440147214839578323935422571184920294363202611039398604191245018972358439445363563394040885654564048842908766550163030403682840324268682883605797596499901143324210119123423893241879529631505727547586179305035867928714903223185312954784835813308512261497348619335900821731386849176345953954450440299365860711151300838220592198892339873634752370441984551271374909646123162799133485376610553704152739900866532477690365968295567648952899879012013166806633217870717765534940508355952449024158483965332452462077238665601976040377726348597074884927451506181096624358166677951653996445882375203872345416969098636890612176396115907280842913378041842113984194892284899187221874041797202223088058201046212468621621294701827904268116025142771689695467191310498400125688706334695748758602377566854936292826853596891879104988736658141262737705192347159247480107067163267015916022164334804497038528143776460210230525021486341323924293886259318200581107541044158146581002220722290957936741375670648673656695066600102125938695338793791950419152514154729267553841069564647877261826043895181375914488864516861153034752108617948795674146843083525898376714415842547175738338255538073739185352903563840951483381170468246588850364977848191325019498502346401184037578288039855551018052133889984492576767647189409941834492582790175102444567941590607266416265851049151562514713490373269899879815723953505152116542635532528238626548839415006919216152260597339747180121797131845451623125942063694485916125265524265289003136098526513938884501594271689644438466755068917731442648310212830534620855868377301917921978824152462984754987551192952040174329795613911729257019282586764982506030411372056373132944003536546156952842696426903929613124402256499683478065813053718694996699271028794744759541989953483018487880205930442677421781558054462053058331203051517285736241958773287164968803197579737619330164076549980774962288915734872753712458961300886911706657475011801740784503894545010779627592495593495619455702662174340513852961209490405153470716230187884918876866812044094506482646572131281560930749346526574859620313524642348815106169941493405738707500114606531513112445305274715042615056332154711063632568110505348981704659082152292418007291514269682799065351562133374240914165403427564046977413029926603241615977280153623295347136019458063461991505780974979279370587213724207224672845594349595182216016898818708352987310502773518766790556187368458997810003512162876255839510169624202615362958902412063261614824669777686912049484766481468187883224246971942250665605556330454568749585299298946740683472662942491658270184766458555427217305298015249067831417038028315177370973212496659698049411398972374896645791677546722035048197567778442194075192010139862805593923126718262850838226126915842789550887274062227774126269443291944963885165849020462024436945660153869151949547149071706906460069778854439852837973990406464552546285569004689810305160209257268779879426696429422491132060549108139527091602709650631141529636190346650211680604678188764145754716918605083866370380080640076293337198231670193072165683002484688199598007790243338148831024282243094714336947679907665309237548319458867255061281381530094341757489595020989521533562956728949338497737924576165278971067112146450162409068107009948708803746892928132272517607606440444566857453313956505511834315015911940001764127654014826895121202429020551924852152135373014160793361394235916916132039513153959341496472032694243608909219420297218633442234157659472853182026745783017027097403657503911801510290157381405994602695714914582715616566458210869525675173250555136149142990850999987951771909583036084527545587589555938445085557844506610458064184718310608810339105984145573315210151380520666246024726784859218297054777297814531196054317438184692595538952885589646389150020121130830894229206299937880817496157640342682209547252208455973440954281416867574752519706079435136981699885967103550843026663640025415247064476686291693633856969523149557132475832377554372870308939767362106830581211774874889484644512828426946210189517216337618656580049256635011317750786714282668757945530434115591456034656442001832202622680256560287891836940381769567303976126087879198630423270306989229352473378468056807974386138453457278566223493428306946139389938032294398810527209053655410020106871634788027019489959132686797464167063420300712635202681254764382173952602223193006333994638047463628937723948425128084099249078219800584685791518122383421681849070070968424243223530842373116149294354636634799136178863484410261912577615024032956785124746243420277447330221646108434458183903286324807003672929765665459341556548083259015718022820189171357695257327398666056425856087285990930790203371265891196680862797126586225219448888248170094212378934221876871830483160710474108419854583409172775297777651586563518950272882448222173232257264055827320177133430611738278961646571950070042519910632692770941971890348272420869046056462914362656509265102801297938332857639457399989167674912328618385337318086375966335229925149256088633391428503028747966083621324562229777128450847246697161402863607361831888823485665497453904084726963037577988021333120737045341472874420602309140055149402138163259550831915372963496306534189108860497317290277428335532790826803737526997106232870784242406245245562910197978636928809941829353521971580551547828179461047360308741211864804551794835574437526448678669742814257732723790359456125471544026051462337130634514069200156681381043713553845208344794828317583460921687873652005726596862421278017584378197481823357335584023640826601354672448317760598235264421305390367966294824783756201977397327312359413177140582021302289761169498333499943732126334095470486053567445097330862295807132940367710102165088425175627788442451840437634177455409767386552952162158000084035667308763502443567503501383962564399565737889843039806332169719709153013748948761031007313891360877865404493594942362734223117014963453959235525448433090971896406622239104179362817340941072566327573751361591350073865531066172959804256916841277236504731056733100128983594839080908201824135254800458598050905311817380559484760076065881886964179833786793110203822303980650466819571532054798288918639079653948502474979821874682314502493465937979557403569274723141193044852165891219619415489970009174962678992008814868851593555778588679946584500309566878367653509505056245177555318505573954745613169439764451752387454500344464482944920523611500766467625396282413973198805648960647917691481715892300051269009018569333938972704541108403643098850873667361549488160852908119609483140502610103321877924838615806632658405719584391849075925020428534676580548448020059256759747628341675203040232916780610210129398942115965763285980382031762674382027101548720811349144515642305733267511689194357094279895799214527377858074786037243292570990272115373318703555022098895335926375860813564700452584609872700417343406886782583784096516013905554168416646377958913028650645924678210572924850219561907282109721603137717223868266286415868122492867212384968735373792153966640108547196742643057387641291471878798364509378435658750678948685149825126042709929581193742546242348173509762078246202245440472351465557958387569923617182364049178367432165333360034708040881592059929533272896702329161201092273247170687639863007323242137611256564790828248916166291341403075236961054727853997921389692890024580179267707741050080931286785274416096303934270252427400646431950317307303998441853895856530217633225268843331905938187322559929853042993819883690976746048798913842935949134604278834697034849268307640330594511610710027587095056650851966443240716865525561967777302075113918165536139684895248605412254099152736213631560703387374369148074712638538135431454897488881775457446607846928333017736227826247319300763301323078596530749276178789926185725474829900697137761302080461526538221505624372795471583175942545252153494872988389501287457665187820842722335765490524560578864836229337660381382543777458567272203052600329511865633255265955163257336668010278386854881116196905098639320507293165714330583530751024435780642730719468141718741051868008788895128684963240837693909770745587718224738999205040758841821440552514368078431973528532585738199310879710290265753128402039278584692525808589772112534165565987301097262448661004543289132958306665340743547146153164071573999088171557803594294165774787954251359526335572381000086051892220955469493571389630766745688023039577934245063749463071578628568453594044251545810382089245476392727368643537955096823109807738561646309726625897769701524957162826205826799184130779082931955016985554376613283313985256761766005052773020054018737949153337444862232238409125201707472072999966496707744965024556020318889566402476784252747515190248797159998746030858509423995641125450815414897609232616616201707445598587387602942103087126567496202085101413971341255740835235039279264266051277240970400961018717645010745854433036482677505450474549623145144222555076962227978860037825144408676332856845740015466881329655183055039999943839488698751517735031866288103528103095181560856933399374053443493909571136455249612249390695015084698827727349079916516148884739379953088769244023730535486462469525102995419776577898752699680117750963850372955013440806216164858338412494385855667682475571482755807389119739538524936710284769353905127130347933027641825869665731138403807909473713668707957314043323753512135282915978986743368440118357062382818032629641235131628228386845048089043851963426760910716189913384948840649145863032286203329405474399602426775766048518002219098632053519915311513479879286239990357364752444648183759410790966077990683728751225580311292244405149505319799304136177060621910222312735193492133182081605534317131607314905131194015610919007579221210905500648080557663882207177460008987760120762377190161999629545238881978226008959998306331224568123487047837311859666998267078191346128989791855099704129662977069600016881588686350862664615006040882675392782729742999324418284812827489678302135894798075381266873953750162656702926746767604318863159574756670473794194864013636242338312073484592875671365529105232068401415695312307044336896566724973392414681507864716818875775553119963267549346618241778749527411672330694970704220681834794898083791762808050244919580713226368588286043745013038425645718581179280305861036930652915415222557466185831858481124147612806269959664657775879050906874847543229654760820103266985411295625318169274555762865142840508156512528056923616788802724266963940242629000388732251091654383603015065839389880945472772096080078618082423081717552950299912743068411233024484032877809609001155076486876340442501465538465284297887755756135643514086515372173037297296123856567525587067340785034690480731822622944016585729738280759179280107844667237653675908294865821643686557147161660375656332810141759710934869875741938532127937655188898426303102023670505493431819834537309767826393969314249591136430797137056892404642622127345998369476505268650363420975086373103897334473340855140657680639500264302178002295669257271123146806804629111158300318866420002795963728666557185129209611197188431205031337081338707860482044618226572676558595097387100720752932006055570610586375112832412620691468793139453032568293572350946502160008676712411948255696607573421386293711485647322441944932237246161821773542422577700687140330568474295899202719081599422453770445592929944820042271178033293008910771659814718206815322044842055528446453226342250414244256307139081513053399381519056107470717783410799470075360141603177035332732681467672691916075926488508687740498256192359173457397515971640240913056868936971634442934921440062717091928015705983143534397635135085761058320901081692376675356732509959661734120048836865369350737667725557048538339591426483218769793113535449941172707703325734465823379932847244748107311330431961362593982192592830608109132204864531124251378661066098483781567785147914206105769946399501343780336907067369178407423128961623507579980588537404335422663196821884450372213588357946354096444355237392072608844598000706271682878747947237468665645673592169553761852163668610127681294870765439533518568729045494664146297136428525648604211652455862439368395798100418283107291684558657356569082936293939876822764323814871022769921771519085341889356928611674159148483179618212551659831925694335314918627691841611302307436618695263091661793321973737581324465034915534050288825795179503609294260131932188533890278128391405651273004826777616787222138881444969425747684390119838271374810501431751651212039195661597576255912963155896002507385294061219597768289471390458063769829223922744376196518021304667396859728467624082678765131656534390080988628560079811834764637137897834544161439565658250143416557124562228294296809470843144404458582691835336363340303958122486528261047624014185185954540041907239113299676710171993111145253789015186350191068260474849043938707505204297624175981125525217535666165087758311836462134456466143194164154949262993320839385469670826403115881735389923478089645545914857055261832431504930780207410649948454639220067791281674347183023858106139275283873862869411404826415279066352678175912242921284551741521274826734244413560264069685494835995837495710508777593395838495301752793527390754894388280557351018695244641895910495130393078187752283651461303060709340923995990585807247447895069070189475853899288504837883278558898655106742112922207914757299981359416631942475290517434999099499000947633737392401854079067389074322402706727139296645067418500261388271848878159014814254680768147602978439431242493938882289908287895818508644164009347692676370100620924364158018836468023491367501253885726401232541613742660917931264143633164982872530206099135918524053801500693058296833201921165734871655784893659547046437534555770908217584646025842369903825049126764373697263913709165222029717520964488118772006356723458632919164218589217111410738174518529446724791772673204289855744695242662359158053489614587178015349408574068808835600522853646372772770125566361347029056657134715630557403815288645192493989310811450839035022644069475684260480015280879894454079343575706220187041336415017122378128829396243145607226340900625364669628105208859905315227441968415604858065080507127108752900958091750090009049829511354149983570741230868851976265883640610953260113953508986749661088338371302927558502698189624159044920740718866816574216807550952445811834781481333251526744805375792456166444183644906433657014703696157881740199368968938476392735392104161353511452311673019470535448123313344743624951896492942199328373064621819197951082168219642488847814727663407371638613159300103565906759466882630953162317983880225291045262827214396374350585822184588873532581752070378489112946929302381490434567685591941101870167925600277692420075974836553007906871958569256193045478188786925681878872109204163996960243132437063134680817055102077349569938882160014684446134771096664124184884075635584604406713123254657384510769532161163273315447710252723150669263846837453379988933624836133521075699309711920560053391061048238783457803440814247297112600802916689633295888715600312131211891906713797310900479008601237844675016315525606883578676137317196647023576520630239996072554473500682835763220091973316440279006646731367311644388211391467591651401549835794671812342073308763181949764646869035513451802989934032917443972723537682707565866467792397205692247984926209877604734068896987150891832579660004544754687342845489931932463314745139383887693690654025322653543045532677589729741700745699765198166960735534681908345145320513467517088517198968179193830544037943715611378041112228419218327492799048348813075738280927658153630968576249651508757107153618005887488266626248564267345134298417903081029364820767480332251433991455421286228644617633575232734156842349723102965595967347133974428631704891281351526932785949433275845341114669689174024285311686128616697485529883695511675227580654405733891211324813309238914055604920756451650843435136284220608629944021873497238567106137163509287406493199106768450611477065419921865202532357748357518304562567525126096176442212066787432697951189147454690814554513927109582556542031212360295093053432871252174133547764457782450645933157891137497753827812684052051324381256712417367277542269167416229026689928274912966259498742521258092488008577691453927989569553562479684736948604412843314996275211455724709481434453700742414265502064439330975098563395374205611172483465126390308336612225515564755116621718760757970661029775492502105677903001965105015677916314028760116971283276024746437272971675397517299063896172065703572746490502058256436967447840912563829987744008301484419435554366439248851281891322658492611664125143637566693333526861507866140597566974707581460823192501642842045400220169148758682566261947856099713680607326933954370529447220580754461132065172523339513809859486189448650153212299676201206760704961497925910826268342300292601989237745439164493145492199085697589895490107014105366318681912549977801556591288539257478603538744604978792245853890540875201510881658558992491279109006675259065224520603170932080866575496495619784528727655119201914822779349723366613430895390253412536744945687201928456574130649252239397268152576055212989425619750516961512982853516434075309884705104763331393930619576339544376500652540890760743391339052520565836663742914690980140065223173038758926393156377338795792706137791604514997859938762141022845013171723658625758317664940468354275152199495944567848097645357350587710239675721301317065861361908215182168534837734316191378589148915790683511318225083065544086211904724903644613978973577627443510911769119018414418781521348100567752871169955158794210028245455128779278617587522973017331856533446360610211951707533202714232190693205456730517682979826972677257813653720335546004550996312849119529853600061009165138246719737474706845079964076292621114019857778534104119332591632921138321843187494810840775383581975023626927305126100736472319786466346369927368100221715737570674714427182668366901008038336949584506219541830372597110207903935636652674969942632597982881146114670560135080132747061374788858357712870171440079430960104217650774429975113917344747623868900543555512931470712738307928165999041655525547334549924030469746987574826447147834494901417928930799738566890046013076479424651439982833246317714193554242477055676286945879784911439689824714050693982846011568818561778054146935244710559382634020224101809200371126915764502332961824791888629322679053920360627497598225915831663809796279933655849879307546548055132697347982136282110035788958868420653045963011084730424041562823664465652625688680813070587310169358402367265904562987892078421348613159083002777780133879725376751838372699941318430485560675350865612058231597242254849059819833138619977440257552652540482973117779939518628231798838345780067795832567587833036074883245979126392835627194905527177164256096024088849428785540246700452916001249787009880322931651957224339668986961334486874168859133725479096805075181438318777089028368406140719403978425798756634317195028055929123986372639270003963931845212326652613841886770331813621688874827961859346530849710172356412697360058892546481392237098490526249822941259542345192219329330202047751761744443901385996894998750662703088684590215417913648283866699497485611434804233952578618840960220300669934954481505417839337629412156254767948390096589731059129014344348366463638528455030032788692972978232389831511717728531966904685653598367969435282718427456078212500356231818991348631152759397214940663957084483551764197493046990661121790702806446343228500143049364090212990186174407661914322180453007870357451236497059120049077410504056837531745229933816310077898516798300056346776286899978595799140141126774708973038870342972837706057490019675998847088961296693638073130612801708110600576922493260382879391813129247892792076967038569543355972005467103748574196610177110063604214221321167793807294041736647603705130943440312845020982286532588742786928933475339758287861701041390387225514215992158378941578373460600769645076736198776503801589417063304787089167031027200963066766847145352950530557561899604202386565657773523798208413340173061726694705674266566591046004780041879786776520506599331542625815960256638667578769464978259261223930382015026751346804553103331539305897985730589103153414093759941091495334409980219205649899610273928392992860595869701400599165057776438842967597612013018964163102291621899114685374690107689491699464559628337132254971862946061099021047169139406952454194661797271425223922824748376704618388432851915058467423252805554479741505062997725176804984263652234595272429064254489417145508784651694620574729795831064722474168475554616055118213845087189497665915291809610027524788011201508828059426338488220746786290852296366868779731979651207514473989805456601410915339567504627704663642032770801314164625790400564398379830259478386362723728558877310061261412540281432644829457503684274617907093454939778848578699532340832470127901432667443553115319671975359595935345301855987515730593194731599886043505805545479668255266814305503027298208615488352536823355817673543121056160655323403880934556107263596665989124077707107852984913354117330417318009805451022967335386554775642505620954131206423274959382086903560216161159244859514480932062113636720761251493416969171765662573103780555542682582137051964954449081988899661597122091850646733589360421698946167675377021387209104411448693269188990367962127816966943920090628745581335713581303702514126098543248068157833006022563661201086101953182892294226652901671551325947863930630794275607497914448181548188710140677815165734472312969226459278501794186844081598351790800363433854313118412292694354856827303449122794675344242910258107082129506965292721660703953967374336367770688204171965597706793636127287967559753993438376250780002180582152859686417253506456601148922262770205810199639126501247296559996410048956615290352499048587102224674888115498459691007365881288599964838610095915691206193612127704782339772622622534741758936206457776008374239984591450175901702200462314864182056106212649313544260516585741122796910152541606411126583950079557267525568555500377736501946130296475551323136672565214435406520547446471872383702333763592253580624705996059631956960333674371082166025381540559139589195893881862976910586904063722045989082271949521898900764270238498968082343582212627637177496772587172920868825178239140455957536115437207346464000418907933702980927729887011579542453525842441580002671863738538040746693284550477418893554582449942027956663951986355690554224983461388740473573057803955935944586040949785307146491770419159487033874747837042544494097720852396699340265937592081685687853396155415403560742781313330725280609526940119737040623604651405741349378580034325827829906122093188886952225170024415655646465595688120541982525807078952316517309486033869255342431797970946016190126539936679584057907034675083091402019398691420558871385084713523701768780725639146899202236049995267973115546609503768621281651201939790863543013943332881907031285161652015607113867995790923468840233414662602342274361579374159211125882594460626044330885011569758708678730635305161844381943967860236006528677679149483593146232638128863499235479458402238083926572308718105677043792219603422229397454005470490271104024116857062027178130532828307637686497716454313511217377229065603174076531616061807816225951206219854872998054956685639231113949973509320632617541808758233820293559454790644905528114523607925429223016112029899960029064805385114951082071755410864864121719523417948934223089665392609415460219673830941284120038580938961344168970867863006178904168559598368877886569288032660330003376056362333047882307711986458904592782678649018157687734847548384772715023195719077074303616746396954124447609725106605472968694380956370466378672737956254957512044278292984882961358749442717059241974466315766528615962564406218614433101682905633370106245114407183230180615680832351353830124950220033540437573452581584954605314477718199713844592774465433248583692400803390751765956710282766450338536495366602010156277268947678713813099414461656397620148871804197017106630387088897502516252004979355395614992075480153494291619790247459429560087434923210040983075822381817550051651257757018675952440583314343685594277614042672990380829701717248499061900812805492242119080235804683837737650871807938323424794973830521531886511236876594554161580664198427093393625968259616346619970623469221649232774419766587300819756956114369054400420498450230225846165035405699295199564290032918411730608199283051990883939038024636852393737570120435238693085627079293073623158257278077142187106819906419116325929226225400018971274162043688711866503543211636756226192529889626966675644482903389784725558247580250989127099479359065955902387012526201650893406544792206838658906051940703747812106048237894668561260506519991845502676712550931370528480727466453781129999005151710527622652303540964536403831999704618971041575709801165734445510701274699070226656983657191628279321179478805485165996610422267122910239162984697640124701568615249951353811193795500949771184631016316481316259815881096393420537438134260981473047257387963579767568201936620883568167028164618467892916069229129051057612698468900905916922701010033387357334842512543323079270071735796663241827845006790404001873572060969833561141300978757262611794433316414208905940355470551267503525311288513327364047876038655043423874124483859857301026906643240761289675320634115151871446720368452260739490729563331700561520214118605977343329579626066073098242919305571434791233907825904623002272906597737785477141438550118769384515155294146596775815781272635490605956572059239097738131556630045507418441856954476089872850796612904588051747010496136767104570940730623329724669549464754701789955223364042586043193442340197457938398925871411596100148094490357158884187674621438815654795221424774498999987718587619020208214079828584426920645225417098721298403930461688835945501865739384194442968553191370243558617244028411939689132300954873831344922342210692184787531693541698487351261173873237840390590807394048164995738821333420584916585943155972677044158380232716275754034867687900622382141363481346992627894296183845442607672509505226989347297483135348950406992412308344919225296942068300030250314626757782195484345448494947680404825798869684036996773639674405204290206022319452047101115632171712310810178551344892816268169045230318696107661726658743300536664994583413509849186987921274140437604984625053561280643366415304122456118219399227020882655710772026017455485217870040156622530953400836465330673770338879662627072407356133526639513610060037341381432302362319430820623912294766115952621052130027833163053630558650318474713079764100795760683220298802229223577844445515892955337517252461263516342822199850430941329812710623974911155010730723192236318484205364830800539208480062548514557212465475252890704010160621443109015301901646087365091027961605898263264695811514952014820891506527292603044476315461156755184430655399281089816348008965683563506453416448639080817043548974678346248454603826186071656628777337992123603944801605170862689240405679896704093217666028075746546271658567775690607715952802155530764309700676337786858741350484328179676503813560910456995791509931035729612271266747866769230860903557775615052808111960707633626653967900000515644079489300422648962071331796526672763350633273671956043254413319309313775090655341237792232373068902092576728047876132112376556980596047166525643303026819945360059808204105051765928545067154970650510594014569117469858182944415608678887105305299748569829007885009028365603830928472641846719550121916669328138734349083584631342786850067797488188949794437726493975729403905660978696181853157453021575779428660392026812555808580800441396401612639623080887302631618125120896086486865564118748524079473624829418350621097499039899701918685987758688874902153589798474799879340331123648091698178543984605515164012888532727823186063022839341506175563759336215630803232544145334462916725945591961040788816811786268255834758441860309468450233548377315683927189443008218932120138832004372520902962743006832701441250706083874278708715747888903560514865404578912413904640267067643030902365737593174965576453013100799346223912481218197012169789680536000837413380533939861468833848949742109362098584746560505333193574710608772461216514881584778745260891189468281439546337166972560377810894147669422362778531656775722899125810521562968391678795754676876877402110210662383943142863881971687513703518547003518903484115979585376419221045603704951992266476950591041511079725673647400960074979282643269901077005291889598185464072676887265643147267391007479887136350524885459785704103030301755126416225078545529671500308959409193712065411690200752019131736711503030105665493522164306030212005952594909664732418979991456597351574469726706718837942132784372893497951844159483010401204824017808871463208289085101141377357847781558317685060330943466113445968908657082049598722918411581647511285146107439976682495248481671119719018541014880848578954688340244688861619173462595403362678546323439903755248968775441669214489184858878654669445911298712893360120695750339843189630811023317260095674893533517095664634767987416156094779536340065910910841193199027656287260570811125748537747844908609375703022368915663647947103536575992526364674333604068106107729391543943935835205420150034317078443035033266659208973560319854769809420516726247046424770821764906887763447889467762165376927529562149249421824647093170898602302323888630338426803853646983857867381456861067251978935072960923513849971712889750784919817827330745573654395909974818630976239899577531351596537683230092773364105824624491790889995672490989087815401259642511623217337346338208645336156858732711290684141344485847681879519679853751644578016648968088312699085560555980773037502095527178802333855431264245420032570065305540609972598526049027545778082576903109883245954037056297939376716404496000437498550839770970259896613400676136528795101730866538945007740828104632141055060210696260746556630232108026050634866327379076356632625537224987258742910985221840904386748445016090224651793045833161085871729605359726203412383308941021938162861831197816007602502415969016324726375679236219297647432686217677070428222127379555619747118090492511893613453365655700291378781578361978467632881737794029872437247876659960276859344442623570507359107309572934400513132747718638153324359924687399173997791049331426705285190615927735599771313764873437892575340176508511716398633333624108971075994260495563579525072349676447155299171279063592897204483726381859814806757196097633410518450704091892641677845919494689149360999757765975634567683083237244109374357467253875613441329409358616369726454632653290097068446407913103886760611945880502546795394571940143092404488812986763185548544334757584762289112898881281653983659264381511513540452807505799291977969198215418855851204626361847277515232148262752164227679105468790529049035152045691531062941641335521995239352378819465149712657555841759770281618491054619125250894031778396936632968982687493522573694466385312026229480519104136560899368971076593693504348770931861568454340430483141399094352061879233698180291364535515815730658102287274526097088698782817535799605576877383924227995521827155609931175147487721478523689311272624155059511555290789486311319311116222302072392901808695072075039117384675377238431998521815030766253445358051880896547024160113909637816871855467165251764504880139581820769427473225408577622819166476921020284955023428974336248926408735911101403168476021715998983240197345260191371891933906468191836582934612261908357558845594319228286828299008115837358162808433383191215174749911298305736099991080579019727141656097557518910618725013546567357156746518929828283872038431206561440678536662557530646725311177321189757450724394890482676434000616657556065336725756013014975189626845312985162452846008486260933560467802600473132557071265243283446499773016239651029031213102132076689142644976540629269387290406679063483432216745277197950606231688157573519335368193244480024106882829716650636140438167568340645562247480331764095823502244782193069456855688929703889081032701325433371127109642070075699930661260421791240425098863454344099986233168988251808671557317502300925960063018474700465737444925534565550386976761555023242567127171430958248722568318461567437497445919600226704596428843236203602194739881178627437013834440729447519835277767221587396847760716752408718898509740601193902323615972224040485331084200743785323150844936506593661894444855568269561463104252282757584265017172414863451424574585816810307238010499677258171869734990964551239299359038824829949272113495722292108537136616760785351778059182681209548248135314215564409920133022365920201513951307786057285150764162757879529678318413484312395941064678800512534029790789012315048825042809511639964112850564776090502822640810618944485696647909109141023879691305133597300843909213865833589865699074123024549235663187499148313650118851002969751444150562362152265707678668685949386200428877444539256244802877101422676638179627231159943175965088140331613172822783337849018597741413931051058310475594283067272758618589099237330213609816526281825405546630357400635005163761373035963964054790904499247554358256484447613999068254579308242122569701807952392831155958262152461010820044383034183052962828054790168581758110904204079205579944200512558844395200170305667661599306114714948131108045544593597475365018528110439088259380154935866472386005708796359534529328910704132077657018359816144807206543697459522824075693665962596086833152883245473671747429605790503849643086097651193748007248023160631107521790675899898835112652235271312333289007301046540694663807521817669014907774043546707398605120533194735986824003875109665091176321308384560167340801144097237999695782197012832486587437576936707728418764389312614622467579804209592553751961890238148348828092421324046569005747601908365893147170967223702777489297814109654301918888044476516914772010707161725716593711697665896274204695987439324203170775589810494919965759424768014117180226170731933631341566654510972860706645454160997418536378925955320140035114733610931110972492289610205620697531095541085625634002008519548195198151723416058041749228377613596894183119990450268262203151188442472156772890178760399594967331036910180519141257256365215650607955278750803289568895064916587643561904518913536363026013057726221571999729026342639377790099798137630266398333446302690395469099858338857856415719191196157718649325909281506922560798614380480725224710621258667940610520797791912344614418950316562309012757408101621200292320595156512218144054950860097446770828790661857616496419318385731678808506188153749611901030075870384445399571047737238276326270035878763172180878790610983743703702966184937009710987342725182902152549430598141743232071712575491127138230343830071144880874422328893601327331248347502257334069194249025887004826071416724907713249122672232675756984769344644398569183748123087091421548562102330610393575830624956560835799796923216472800650382775105439287643103917813192720910309331558404644042992300098498355027266318354608801074517240902853875496411290574127573758848889685355414077730126182008778703388847622286729250365517182680337536792707930550653582522956256974017270993033898974314611778730812700500338476424320960355450096637859210851532300703337594316194736336063697331859244510067704725745952750454989409344712441164914063043920464673297275777850603421599568732390729806201362412426602237647161235019654462602218571527587627597874343080730004884110122897032124120420795968086392547878110295236602196280611596513596423582883948889147589797797851021073005047637830185842846741344023150603455194638611073880729084342309856033804382908477822385525732159174840790014418627017381134750767530183574212920193342605616734272992404274252527452695287669186163065331315131181451540521891927643888860666332686446625889420623542936497711640761691680212985821123166149886425785181273954819570084201066678544716694335982988994396206955763724260280057654009181391856462512830745903751985658470682932607343970797461451204542266934748084022460573247897713186721189478056337666327935498345260546722717956508090494280334983624065203502409192205990007659802821665559569839210948774343250399864353179094497137957282157197979286781385346418017343222257716055207374912858164683253567281396139272214758603160798215535068143741548970597504691957741436327707336997236826778419307930830300350049990715836253348370610645932058262748670455270540697387551457398007491961918781074745675293793974990263464559494813084036231562773268004435255918620349165763491346074510506045777538462692497108634890774785449324146845167258359559243673211940724667246201024569731459516676782149356653328953040373333411979395015970068628943350706367070463671621204220091455731256646782364634890543445124707986679833043546166582819221897452945476035486460189140001055035373617793419128130229105287419565499487763577776997232286102763834080073654635029017732214941652247637279745881144195497118192051690834686063137902310942397258774728272275099978999148681913548391525667410257857108656440068585797057075487575123440273309748371649775405877219249341992714301485079194736719330471356936000492350126391362607669775071077907158123503006125754932849071654255967534860535549572360915925307030958375284808765815278867032222407062436285171588913254486287053085152448317240243838154993428911679563899759794102039911618971425214087404567516489595061214306234603239292168901662481514220301885695823898971836295718495893630401149802475903593802696109939398544637141909851642826990198054256667970521746599242483744116827924199532430800856885357545737650167249785774765380037847605648774602686742435347390592518853543172694423563684736631639054027177620181477654495050417588253606661594399536449150796108727576670012904636575785962591076709364245657901513405336723768907855899034881208913952279461834659306219512540488891601606391192130974845448438196454469254059402434158818424296899646662174469026440983232201406188080222422540124688015002267503957521855567970436506543737064703295309177056953336116977383628896796382933345216624180063821097324955414245600208270854686187121217515900000028747464003185220978959786545339913732668177921451857236195511012018212279919586859827532822676827111474463997093459265098945039690825502725517276392070021163735461328515782714312595233953960306727353553813521144499845564763497262371051976416111365414180403969564562204966583040846408260411761331476121614219421346408683887742623181409261937101632692443176649906957977251405942462032085628085811732070164681077062222225467403332720805532837440827672290795636774336724865680538213272261143845276792396281436004887729041227445646530431282709853140432369110713960579707408808023512184655823099282513793717283285857922132980242734144923725985165079507158378536145519525991974386043142977650674179998654378111605288881692020061500124296500742529892135523290790114643098184889689627291328352361474131074481229193611675243887640452899350925589627328432977195126452122475411938556672413826442145400878775264472939250302488605869755446789574572506506908795902502592929006562257000885809565204607028480310490779054903154878721549091588985303230794197454406361052025800047580039660467437004274619001991124483372934443568082840036721322806110586012613794923031995856302438080954366378917444392423131470377920304114198812040729950952477423954657442673567846151833891826885233864483852459796122402034613356308546773888920686615109256545877628939071276511689422429879395511581288084139752675413303239901162090881671470880613718916910941486292054923619757754410541200751866289702350669981279739821017969012239985650551289567847302731565980306639425062550558844108607699905018736755218758866318558482840820656689157655813505878496988527333388286929710216383211871174338349830549661871682132483172451392613328123690215713705813261921446620651772654438685759605941556508197873751238093606328446281956675187198428093962832803249646119475555999494154023561402648826053279186748667901236766551251970368888799525117400978078211137954624063883948208791524031618159637920463625944525696767288467531736423220967831082915906413860843221537040189476332213107663713759971119354489853428034292139505596035299013019350914451996175783108876240613901980032134812196380724149298183806045813951976560739223370631267330386068212104710235152827917688052185591833475771532768488307869794684710112117222843933597048736730182007443611750438530488109581256964085872124150861224661329272721156183698179790343560855382175926326123945941391282415022564996751370600375846779716613278194103136590809927646728100182959523619077432784105638380764132371765835097088177590740138464582081899097452826123857798893068383427902864836999169789029462553511871164901178005429872500996746903418030668578944551504408826941737049759043662570799079999931262292024188433427800379753278112632053637932197986512588986992225184546188668264145085372798745481365985238566814589940535927524400396045184791553242582763737261278677879100509587321548840717385222166714619441343858369859023618684392278149846163753822939604916376022914517529411374391505618431451308290267014994344952543573484191845125792139763767119967655799148670571820433651580908591515753028941312806804164169671265616530529554837995824225848906334273983220866467518938401783766895698414932530878118311036954280458269683209462092535482443546681498755791456572835236014628029663867666945844384481698881216876471477548613862914882871930509555409710009504411699351140759452604098350411101930603345238726598282694673197962835439591241460069671990375713594283707375934341456520864603187192860738058614355690235870748174862225959964487581515994975094034031934589099280069486943731752431030516988733991321357531018028309103609933906793064006225490741161027518531221877106147524525456591723828817395479936172951364888794309709863344928395297131476721529077558652281795694548353861100535704100057594067224918317061950717543060039751600306154454077432241639889220577768101813607237019593082877835987967160005094667537432066200158303442130280194093201197874874928894791945744150396664514006686373512376663219871267416413469988219472214941251956005439646074849675164518936572719078104822983109431568672630081231124836101209671307686110576307764177068959850077089759839836291310555039506782282813580934031519177076548841221079773715991666831821399187292524683886746445742932563059777599652171338220459001783772118957658179747712892770214547731915272509615398856082912731531487402872247304878439594387645619581985588224017550227769773282329462528900206469646247966746080410847928725369160315112122423428491076166086771543085703370669490473386796146126983832627022019006041381654762053951842773490946455266674548941392782245037874507041904654647904036447089965184497721546779563777430618319333101517768260091020275502040555640043320575245424901922032932157416469224793901759868382896428537863813453453737607789815734590268895123162073099282976992106026073156873616065874676679416145793381092323418288051518669962326214198180447174917030465934451495118718844222414910313552759179234142679066274094275732442455427429406869770362859444776193335205182373816744484244893895236137609629811380335293675295037581671466119689238891501482435188609694387366502825592175829558761291267501996058690759793465421396980913029898117712399838441568249901593968742790936444885979046473773281921764543255728464091378922036727807053180450290515592973352494325038887435091466436927434148745364528149404445793951111143988756673224507276445546190960434854909647929160517327928522782969432512903511033887318665695951601123634939256150534405752991244155744299674314569842149294019958766246832372465761533301275660526024604909288394936849838636527014952130390648261090340872270214666743274633724768053903654794286520541444585414677829336195241729300364075429165414369229442759991522662977139364300949155722514705351978951429887464909156622052666958748174058336926540156369764831748828675991012215245358543278331950356749702407373460031027080511221980003037923955158338470117495676497839572958710588783601741296245683413032006061423038713771232987031149655778405872025731185516839570383995611599872019087762053873087341863186964894732844738964355727448826058543558902367660633177746763113404007168754287760274953907173797853676512285658383487209947802360972135078075298699697085025899365301610657757338766074019169761666166518396128554279818792267969589762135913990929232973196797949709086727174156074184144405205619536068109376476211280843891023312464170543636856120257101655410421311292167817113135726280096674143708780709979389883301893198675689130255274345638351539165619919678444092825784587559927241483340726632648633800721888094001715519628702022760246079272634142042063357021350197625543753195401896957656677846844120571755604027314171069371907195508123741238063564707078711960603550893179915579596846626760782797331655042101958532960068252120645513654777777555047587512579983724738314810497579997452039182164524440199934500412248271866052752834149825285890618764072248120089870403247199257294564648693211035810962850064358815288922167146475134705746057015540806463277376299120630173362296652313560034169760486477951047515542248043380524657792934772697943588485873160355151725071180980748209114889053417161257987814934613203056458496822036242555923700692373553454151943104270612505806161435523355544851459925719835709468777967479976618435194126369896488413415446474049319810579647795983607945442109735628205185484698110202649570070820137797297450716256623343584996894789907020517564419829959446397692703786466640302232568104476291007467335567649829772714415860184811035596386164493672646687831998409944205800187090409515768098553266974996116384940634648563163244471820371662263693176799067162713712364444953222628223463298930762187751159125247827074227487883560305611123478378957245954453959871659190093930697288946765302791219875768607942046775356383765840675431219730469753186615322931935488653075711295506731456714593933728656777083122339757514336771306474863371306041690003213110381634829912019604879417868469834515861609683206936941428652671463417141240270068011180250233416117644807255596267140260264864909014165537265986382743643781998291341818600033675067675259354732457102250449995523082957439242979513507891640228438579092748154092440627441887284918451019027420971114489621090991082532398940996365302719347601407111042806239112680098390075490760301390474087953019482931165253013170002314627993753690788063453690157172298115758291805706665074019910698785032600179437800189363743808869170081422974757164772164761899106119720645322999181812282706438940110869169958384094090421046647256575612431845168953280657869986312460194239340622505194094600238271912975442155076761998164278571746262636545724674835030589910655193269443665914336551002576942934702227771378688134322693277638944902213154718856308348480859013748304558850959678348632281664378181935360981470928324922419908453238655790818335747076127962900058802533501025409119504851410989064221728870327928770646369851684012821947022563215739189350116994560392614301998434510779579804035813761501469167680202537422964493723735572858787490155427291043874538566317628285659611657216442961791102176783352929632905283960073779482263616096796872777304390430338298877883345101048666029434074796613835620829516404491153582965299645835733528408908193493369253898400776890352976942995858809917894795250806214899003425946862826563886542822862888053912164308066063963579220255127436589166182357357275114326662783867179875324931426947232772815437488392553872586627338907579725888573747238482587175655016484842880839737175057339372367004038859765738554755635057609852813052552840900225234846637600093763487052312124163094734599048423226344630072420101808608801580439915070559558931066163508008565910291602308541912630244837496476394635299710862134652961518638934731160082676030431662796132403908780733096889279054613567181823910289538071530087845353895988731339227000451764865396665668449297488482952180123922462614229568234388935524156983135083759698797449981534537063536270783964681067118701227435271931695576313963275261727001450125271645651689030295829187465150481817942940726038134256052226532379295635240003469272389470555089177048973466942451551386861936903894837573791258269685627684623545948417584050689132785873295646219151578512358504067617510106076654851432149998619369570492314390274855441702548422776392449828702166572501036895493984196601699872562316994953821380262238541390342664168217970283048580097967123323680900515126341584195196710224634706308655474195542335348864000053619276845277641619678852429508075798016387214449398412768095638258654656365273713874772513217455124916630785860156736694194264627236328702271330531176088881754491173301718102157742316379561740018559823937459840294339133334140307486829625173071744224577249249859330180139319657370219159612054923857753266450251149120689959659025551171188099628274045263888376113758267933310349228776609348574558613364767462688938627531301125077231649953210198979451400016869655719727084724537438464366407515668317853837188530000161374663327412450570372241545693946847680605810018627817762950484675263651122940896543967291955095145037332293405894013466556808447797591683433195325431790479665720448525098654165150260196076306761321634665060821769910668664265088247087702448143193750444880793720111225183090718159514453467724033411109705649821247475000724874817783505864271063044135198017237910502488259944553194190695498935556477115193241211033971761813218179477743867174585373744959457228334061974569939095078144548689075625565891420114404564403357892285699818821981854507009403103948796003032486540488331736633271630974723210399046570185815585651126768238930549761421377613447098859556627291634736315277016197746395048196057518221375019295889084992132993355780407572222816796059884846620590105776598806114686615750360293803979748935613565528608120130146592321561769455069877494439852918841483108487701992415635696683415177807890127112249535532487594996140882697148965937988218636237057409420303585317822621888783509888973970192432897997741124843793044253773853344368158771834602318786710596138328038316048961024241530788085121871495974867861449139101990873698970596430242019293385681819487047435515092204691819412407580588378456804487332011963908463993076101846596647606088369581764724003111732275396336146519711499756304677988917586208317578536330683109232906653245266166770908474655361570196239431280182338079004009457137941567621229206966347589848585165634789049333971059652287738587373988150027590495489958271946322733103461433612719584688673404713065171600990892369170496841746085954085012920447332229101446054228006889995031961810223313202892909852467988645000303356878155559066131068809373822066005458632804619881578382403232823457898559792478840662865798678672839268702397530363689382276881788572118846636923222865972383621602713608635266672297539095580380022027398388242023446021029817540303829355376715904546301833712464899703643271328304124804714120621800906867800251936241858304163056472819602176372513185395197044970252679575223255694590844428543718793707478394810735340553828889591043547530657880647727529617765902665228650174303038408186533229863223085018129723545308628820649594506017090776735911464412705505455087101538942032979568833719155110738961905926979643873433808247121434713596579849568691358451077901967117215088330730251383914959985568771324375769957738217798358914631557803635042656460051923807969285449457033212076704492626151677345135573417180670449227938307799968024115845749566802833987685112654986991496986549394844368433093722857911450568926297659316866111516614895628733874935756886325291935307201677915131563930662419784118214382704950346297833876965459271449353860023544301285605246302643574572892664992889462395406512296380188545561038983679645722336781154265159963857881392125203244974978490607686359261718037113987909043868744813791694040010350626530651388624356557575414625357987510237320231001913105528313996245894627940071011600134970094524088051689641758197014074024595466954561504372235487837741535782675412006549876794278152386238576747812616882864783650783765139034696424644927800048207504335855364177740978186266956479511222869525124475843866186723995703058734437052294807301202724375586439982702193790429492697709207401069276127725214221839868756039702477537401723877876480428212732283488464582645939267319555289617625699503118434548784273900136180677915966293181102055899072461467680443373167263398220649748765777456063173176531039322150404661704865697535866455451287670073214264713841903104562789235438050488535790872826678034052988291887144543133022763998278102477098810675987211210705905710768153305776010974413147926576304596039204170806427400514137968612630264104638064128908726710372037009002008906254383035629736782945036258362031761177112744877412417314953615241279094526418071383159427973239186376649955265535760716687108442602249327250328464689912919094392870012141282760676691727320270700114337104670333202867081745133114389533249066640357387536269522635084370641156993242085850702065281299871104315471864958395517939355162595831840255815449223072912720601021839288989161714538254238766543057901139522638035310221977914655875068442378707764647278952867399047566132159027470908539713021755500593091596422446577321939531003985983096419213710893213151592913123125520934726974314568922689022648104129007499090090513191973032187332756833352502127600151336323897118221355235410678868830649359083021773763423450664717280209045059737546344655769376639963507811377319572504165341578760930314010097701964832096660021245831278631278502935251175287954574419542184876162421101236117617242464476146105984082519449688986411579954738142441001078374105362055794632577740669757379273341770235739373093498129293622641636884128781976313082365820245922334225030097623988776237563339449823196807592894327506839156455086153346897697345310310280448245183772486377385971243169882736018915640758606810878734264676630850335413723559668876155638412213017582357491118304041475792833577509438044131512846830545543377933525588681529776592568309947829191110954777923413744062750705125555196035095566342396679914480291403406985215010591344836624833604711708450071256477873446904644229438647497574685543838326453209719401277585650518677297620583477699762576978508065448255591772768131430784091206189916450621066916187748592148289931797248587547608793904958539974202146341049465893410944621874367948507812205773694145693909034245844042413545653614061849169045343797290258400719469089326778657194901475741272975978882505167771059661531764294642971189274946172460897114425286518026624869532292403066616153827004280531127163894611362024916776540290085694491424650781514127102092772601980378014073582198997198487101619557607571347106750277604007977163387225591847128855689774606865829745467974728426421468838078986464801012339269866321513825535208762111650275495449850254413613234971256402198304202113065720296906552727089538304589401921151515616055315675815460865338822863950729005171030476962833290299984835836492599640131111601742942521771987884332010539432011632550961951507995352474285492022951252726197442405280841683276429271984957830454555097614344444942329742343942208210485723411062039795995414919980105968250161764860134761141062040487029215738372821591455782805170254526727118681142202924133770382700326754621695709518202707240864719998706536097975397658469122631860951830672496785226822833938832447328077829655605564418761538175109974639469625453101929201119289320721560861441072283103758518445085947204284620676409351283151667981962214049901737728344145763444698839009037324818334497771953061117900920442146076053603571244738306142191874623726053638368945547036139889867962562073163159551710921913296598553306884335576592668154566160900641406603265725821873780189470385377143476685948328493192581951395993725279926526727492107440812608398170349674708015677819507507073496792677868364633221928391922878842652479016203449133509718477494785192955572244176126538703876057138645856808579825584859719315233343862102581502549853300378374276913051107157387749026041661037273408186581483179822090266681317217900653850649771418049223592189876175258210258879917699305661033694807110857630879764412243676814835798397989405985690549355076999386654600124891297034891702649177730615788746896600861583454963065810528788533190413871104642622909228074221535762945984650590805096346995334596300074811090903364742602189722614968559539076945450688027532229020487408616212011238576676300899305848800325834689166324980498013971726959912194030221723687448369064081512201174371175555093587912341020841848989068533840892876018875577816500410008196803749081504220085417042047032886913800618315531362331705746256998126925138895899549235477653243703062748728004555654584587248884724272266475709281175807196922208091601021078702202447255351403036553623241501876253811212596012426351984487438277352255977208259350358777766690721356626269399555114304355084677775637376385372470508145070621231606774086860105404667572044871248516163441883093720682272415158293170954975887542037977875113450591538449800165747074486866462561611937438871181490516226827315708236273426998584532961227788722719839760837609033542295295054045221071524178250672437388479667293481917101215033005779926526910792733663329470048171126358036228467947150843530691168281328926934018112866242798146682085559251867504688471879331287332216213438410460862358137488971446835254347444142257766548266158999319901999024318488466069056898181178304465778409438216065069836716183703405294109718258137128832748988759023038983268457195921071414809694332338581622781892076367255997084300339335332580478264275230008108458686155171569064907262870663636159823200523050729162016916204385212476010973677374148235638249077805562941564324485481983287520017426255515038905777123624702086555020393369400663689332754805536326563527277159282400113289503203123078101891502756218041249390437112175756757836552321292635215938238428540128949644116901165927486743515944626710086546239377985097081553485842111554164100984342149618724889226230987318160617981462253289989204544905302559419883666058987276818189584346771971697135400023438786843548993280939642670396963292007795010582424578217598448133319852741481331832047699202586846199164247641312299073832697454418857772534595602245022145042047949164113209229267102956380825416159592297046486477464258944303617547679577763817732106267591214096487809446330657485270199501654667763006757171602688685754062518613953338269447008232484214167690909783951600711210741501094149662285980746525259183247098700798991794772552976369670202030419031670124254423667425974257155941036775186914719700770915367191917477000122577613943035966543370026166909502939864878154740183153774368609638829172520813373146463886625947598699971189919231346215095935196207260802640339847043147356463305634876417269386885546593867798142026505102900572107307541080815989175165354186708451014406389668742289808748993527264442063758895519127391700879527092641321223270576217767236817836771046280785821372291522173568406780609470323787913869317114742931722425099298259515663282135149350685797794909444126330456782828104580829935510164259452567380042425381891184570187047775386043118254925227860589034045966521322981577504727556148851131813114001343596415921552442928520242449120057518585654991447014757440195139791149464058359549650158282250851749250003578900698016003081063903861770248281472824117381691053144483881939007705291485903145893929586870316339796293881477438620930258249531368464728116420947974158547577967514487752072558372053276504157759803494176573414634096476632689594520672570378590528550864876947792255777861924081281181447985678896249394110766623872995210079820424641654777323155541671571521531202822115951880077767550945626627839735216987753707610975048545388442178159440091016785849594995092910795319580005500868991540469479401234909130964845574566397823546603925641201150703268522706017332130711799802984794074446575242497413563004840855565585080901685442606093047628769318988712442699477227192243059655595986880958601602426568007992330129977632592247522331228440910467378385306334985781675918419371469905450472739488450801546582254010727554054134531776778533041420103231673525961826615431104143671651404636523116539696642534142995091464551556838773414234514634886747521607863612352907232412614728376543343297645275937953841495332026716516937487395745165829201390060003707248488722779927213325353120655467989190506053207970153559580439330144454339504721763121135369449205943551080550817673871012929734373471038707787446636766106174916863400983248998734082884353070781855697780261648517972114819593678285314830017912067136550425048980162449601346995160951346024818353678299070036950671018978180674276132743528340991975686914314805368491954695688461984764060918115245812802876657223591457816029157782646500628802442098063093003910647683153827717885608844109299956899787273172802565136129161055580474369213852419098585817352128164373378354151028507592353025056154836268445146774762065287847746340601032522390042626962466774097579141660740673378067094689572305423141654148645065124309740802888837505050297834586207675683501757370659485249903896477178922380248906451563918766904935988090155171936770470053220179834520392415921991229014045050505870706833475953166255426216678424335942386522179642363311150169481227044288968776059482208533814032384047536963572455405472031643195800619711684494152461836839934411252983597829835429571638958130810012935134215446154108842423105541886019166488950657910935142713883766136601119670199281315519301922182310781655404840995046344477459215420579544642101804175387115511423832610037294332520428085338081359142309671870058122984259048219107941335493259968373235067783332224264463616055799730210054014823031281529861041966063504290824852206052038915122143229814597891846534980671617622064249451074182283754345909804926168460911105638515869050338397518754451658894672323401650135813484809389820830112026491167083883353977521130600040408342627534422958306726289537093863415147333209459296766488031499249992412720913511373289124951388838121602595847195694145316157819487368612471589563166520002529774238980137167235847642232418632485867236844535404064718197590958914179470077497462421580480132171072267694816708481974382483686088023099852227812185333538571709979015912144613027112923378054258545582048471553432409984578260819927357012055921036848473148046793277357410740267453681273956791104152442370815589574691258056026149420937575971931581078050878496388549750972659314626864515911249496338197474142045639180531575937063471867004396237639443282543176837249491354304906153980223226820457600075389409919186992473196175510577577601940261364893347176926049562021914677058623782701188708125376750474569447576704667683318188073313559151750231905789846673688010139177663051084095670900817094752660565203724486394758446532530053477130054275480920555950504450800553356281891203572127769846733620238583749524641987899433286737661742654968055246581790143248058560508736870617468267794455366127637673847164801683772500864964047577747884383472455200905114778414155264852488334611011720967875063916193841502794997224968966145833668514587438183399229320075754754758030058601026948125345475797149283352302990092425441346524861387289144106792710720025489177660335830895298584174244091724274910508748712971466653085825280311791905814869859241807235225765574165665702524734811537222032982850437707324060740288763890837857627881796557407946396970874971446574406533460341797834656712402128743353216320622717450759179841658267655846809144563653875669602438240202299161759346628694847931897898275637437240076585092118408731788630179394485530111039877630222171637038259008535653011141871970697493845633076687880000102665435612801385343320153891029656878016782637706783790711936804320670230880169206047048234136570240151168420828790075880669592827461934563766568959026580875128841079832787286084288062588738024370028066939905979556015356362181660430757523258490503638263201937307934458436647677154739450719729926055559807244678430112427613689375915408988920206613281493660132489974641856241707628030626161783479287888643050365936580738328866930438852911256293798488289793758396875466442629429342540564893181548401352087086912300566876016567848007764580706608119842374777526594392461849387118625987676336197070005862196490069531693201764087229657994711968387762568263209390725411829010640164489278904750616421095683977928590842491071928180988720018495897301549494786873730786016176216577616857564314184489817960244075701583506394950950104603351697833109882715357139926334886939969929666792853697202945686519241015360594520704023454856252308355995259775336769563962826940516614587413134529291418631332464057011267107106525132353698141653844461278442652708304195707081527428243334138895765929364589900377989472591226306918429947047541231304411280757853240310982997368010781676343548117777300675619084288057968557242184997150995143897104725879836623190565599090416894949181250722584241219473966050289102972842971153022094901274830832029814670477463016161621885336180200204448033042094834801206758887715739798253544551215834615034489603925303427471056185198131825467463859044853818147745757943412072666028552813124526053409074854698178747416781222778001029525898012174161009855070950832853865579205167926235389337772427049793216525602849161755298789946213652326274535688293237436731546079018780807880435858439515606488683452587871260315812921293012681105541467444282436319626540995195262423631517727292772808841489877510642108963774371215608043045413827295016195622423320270853798694678442582125659521114837507433211652872573031666356144597070818196367587476948789766191023328185176366938074867794486948377493221423509110475498011193465773031711092888253205857868364993901618946096792856270943396804215163845153294404450815707663572518182411163079585107824713039879828270971405551312498339999774676500929546529083485755165936792111856049188424194993523042066056135607740488959698118532986771870888452768420340525860410058491574667260207536066332348107090364416520801280633453225591303534580681037777216656030542432363744561600405239474366150230774433521442433612470143613440544917003375833269988212125695989301881989074733911631357102895365703563044515141080726572938713565986084309737594273629623674157724523810819196916974828019728518367335337605633291010957673422118058621616572142967191930972878877872584693056856389581912603038724513034105407833679822018957584430106902670272025895264548370074141106819874435664276976895120794192329615792982772728534757119489953854315100369892199318685782242968743262946134283847279967640948323699201538354784911431866073290415540028075768530491516665594318543695032801248742670221199701314241385797275641674048067572202346788119494789800082203815402576149193469921525358937428197736748371287370057359123698172080639813787878735000923622115302527491075634699119951040165666425896607526177746714588392346800362501389088984740974643193554251498267666081559677260891754646842731540137215390365937981101795384149501830671531059847579989465502296267142322584220541548854073195410107911243038723272490396752589916338068819129968729221580159176415884559739208576356118634030166062911706331342060357497111430924588991617364095022408858911837546859869709788303139592905159131748204176695980995488595884862918848247824171576637624758215537612007527295816654951230747498062526073673892771462234786890321713051900290932107808272446093485532586716935221557799747656829622074054035142042182692497243360172741608528229582943552438924363808094427136988949971834760535634556682247609366898043804583003154009042361798242488589268516266057535380836773215503099950815725235670256032635321924295139752601565766471579232819209081244288368371895538052051413401737050376833223976105107174655931883792289124101975770552093099989050092064214691689115652240784991944860157828234003913741172971702749441919069199687693140386813489777372022239545897921550447831023904519468734919342876895670429940346768590261253454874282392006456613126199093060013728133717178962234639986112569566623214144722132933676248839102720079698332256085206063452665115524797076791758557949043354984749142574328800858526301821753349302556760577126784895571281210441307116199879120039077694068937044226625699582355571117737417371715565593290520359222111139335570205882443138084347299104560367837153866556025499715803076772889433808785533383818630381122627128573196057953912962216134379627191529751382582500512069412366893889881543743821497553596551177891889134854719128089483154806938371811821622540022361601267701143285348931110573210179327317113762548095710898401767470785733148471254131823532662469861827721330885341298365644863969144128142856561631522581590488101615875580943630414316972402825637008339275267151784931859492865700170728947403230226501703772729632909836439608659519103080778907026618231779139203226482444477935489256822576699839392911661852153067848330885889436699863679140960093314529167526934987288104825787778206645591024130820723237786692128128976380635407524091269823982462986980592867690663418297155989019243360886729489826032743313674846446642395243405237264597005421896540313454079868230371173039170023327762477102789003925997500554732731528865677218301187569195404921508332630706008954225378175113959837315343215211320464581412216051310001841032735006608591139147393780739709932443823235115023014509846205384552196754089097063173492392176394324545773898743143753545864308984798580286319094265391871334142051020634853711212594440582941918492254679215621677832315446932984360874124905457194867815597169261112287491011389255416089844826675163225033537286495991319133540287665977728974612735497934980932430832957476486713550121710827386528483984171246821682334728424902024689441846686794946130547737234602144306650374558625082560934402387773097554806059134849322790632126007363028324308274216228350465476363860812898188270818253316372411641399894065289553498775907637370004559996375638399712448994468688311112443877309008829543942707661164805647422596084375823214842959477398626023519268176566636736956155418460902292532337743593714444273755507899703219764069317459637461105485268076969933621867390773354018093212576580784352159633513057073434528787262946325694145076108381980053276742919540580185202738951545125768654684594183973843626574281059749853084070464835905509746229941808337345073362620090703272955644995921614717606552392973310840241556810178923064512203460216187459428213689206896406663057461905960758126072664215955665923951956055562000465906534849942779472707329977451398309441526888005743548709019387006100108016906085450595670738907609595808416196531807666377352178484744840165072019709204857054040974313590229170939348334665350442740052168861446173818090570602738030541990925741104135168370605915554392045933550563974305958777621807361031889842432777680915670322524644443521268334072242656156714158930543524224418195724256212924642633162197066956949868076568777726964892082741240998644170105255946286609257213730749995598249011677674797750604678745350740007130092292091480103564692795622295265798155956987260003177925822833728716293724535245145143130756339642211207560255973277488182589327273362802803822878196837637285175987845960822676351338500882229920392793786945602024025067177863845215389813545344182026534269097050362553456660222061055482152679482654056612181658943021294796340329248631661622446623465563897039571534702915973534801320902518246619717167697275686690719551900182834413381415645779437466366944297971486284512352869776751312685050872648624702963485734012018809632485982790246122973274832865268827017190652251973461530692606638351482197816673316531081561932549835703782922298296917482751453522323348157806655431217057056803832492447453061993137401970984597019248314447358701831106580244839592472107401259837335948027639902409326594931448464878785765287748148928859495287014389729507789352829206802655385321608899688355494381376757684354991622882196244947552599613885439985645839993960587520566376284144975211141146313992267090360052877525082631223819046417505803058522315449591635321258970123401867009694810655276916773022712552307946120040071403785308586554077010544385041809836782971067069815901064883704343827656111847572002421561440341835023707446846609253595123667766578582452313346371944919653885508417567688921174301963906022642637265615913774256955328065743856250465020359229692776899044554490089168468960420877606815790191221098740015050658244332520141081527595568549627014457109124936157522352720370543420082016183417016923546041087229900177972722197283863938136217061723071686746930393639098301691882245717503603013229525585109725208441583131877566885939575351947806278761553998343254837542660925070080035965989725689113327780846373617325814918102133055951157397218680755670001842338651851666275818943551580002342243439009728550857561139007981196411286047351711399570545992942334014972380900461828158642898824330364137754622372240626828936898109342114539012418347052647354002808147390145787599305153634760236748413213777353856335327791134160383489750748183308077310491369890588085495736312964409704644903601147690797207621054977127531376143696979786497332481565581764075235106562109207001397920117461154558308301162478695212711714905159036127726272747655324246202980319148481461692366325273433652524549094627352129747187190006900770230394766346882276779123266686553423906929837215495203052289453674262324960809271178048761601073475817489395028963399601502335700421170448356795028042977476823439319098555436130281674595769951107266244714335075066138179972464447474212286504183936019988882751300167202328824273912716305457283300341706320049928075835308659507011885746229717590403377531314480462806570223875001272761987418538790246309405417615361546803152762756740429185971418477458935453497310019783906032074529338298065379303747807774527333569996429483726159199659211046924568832962903592715330201137788186868178959408533108048549035939871037934343926316507991333146736185906878444179005493276364739937235963001141467809905536434451993553153745406374064206362318199797480670922771729815218109870294909308876458210990862105933921224275122889132575911252193415778852605684514254697531254554506871364096560815134404008739858710724781130592089439804534555304125764456240661516504900618543766410895240281178863216823365995266989386676938833730959046626444276387862259896521969948566035337648124419350827332264043337888739957211203366627744697176583931412003739035462091355623711788203637910426639389963513127058312699660834092157273212786754050498372940946831019881995058405450157246746844176466645221830128340625927711756971158045939767719186989888919232102010324272616367562375013792699906226975125618171951949769708540555035574315066660060503060733772287701513051696846112912464526992280619967621007017354056303127011687302583236877042582470140402091342598857325748300985180093151005148745357813361558688288137168761371033827784816032225632489810534934961830834034161179809138489125507133118706728353598012302242686023189683327928320718169714686516342759591021589877968737231833475253125074634872496276229607615749915511427383312104901841629822429559361623078993196420271814879297133621289188857799781032175397133077041790958706404032305481585178485688925121175300130068975120164668516997490955311052772568193335890675467684963725845481888355342608442740828872359647708184322751914811869874790006087166421111810334859947709086205868976039825849725967867001471123078097674849271243283366607038961066586048269946161355911904917447404146212172836857726664760489596505474591402457740374774813576505994166421636550632210151906419800802240883354931228439733998049933115051401355140801812039883189635911719276147777829129443807285180282745911029512951618867822222740654215073653571957557356392311947251153000188306864670594859859983324081114538845038280843231684748920553354532350463523648810860399145599416249726397235165687630348026011827458001240924935567824611974620597640647203994776727893369491139480981801515898359728585743577884093641437140679649403722670896531522731919736917650444379269241461953816388153492743746696634929159760217826144926610922982876730944561279356565842272063591784326127721217008400378674725932443240400676810140351885871081508339517178689026264975129090774138899396182845767086646819365575732359984752604431379037958708694026740271136620474364781470309464859779810920405901422168317918468665950020510954247840753920415866632510797040712680151701481682745038467035331937376185088906084911956219919491519624993160221943776121533671662381866528750044238695656596642782634967965689198324898218189981369589948281803753509327442825571086030921702961600729660099219012400631147367517886508118433919872713637340301679802910558862977122981959002342864343779823407481852224050616520935616259932206283488346755666715605767025477150233464534192800187073551855850369798719834762381990634060151815331788936493671020703415574545566758162764491939926694778846835547150385521353683411671212232231359963172385300283771212754474558525093252652480528522226308687448154126613557031126270541158405489145216047000109816900213175207876576332595564142802618632230256544415731934410173455815801379642290054371174241178055980738724361966858879776149470833009817542337385182813540304307517075755464649374394452897157112839997248113380049817844237739368876122487314712627550665386606463723766902205742484081525708011137570490485120264236538950783075667153218783399102740325971044416456205272196623467093743132539899426329824659167045727647547975790054756366134560316956484626897917007051850477773479302788314535142759708771126784413783632856506634398664935512543690111353754513111670289379518896264447308136955985569537484975341476395915242470985429384296090783116805091057779291364128321246785683944481171779050649779025241249602423839681337111451921307748189710558306793390462135847290279440863089090604097812746512162422035473802961863565578653627059227309484833555806503370897428530970280955005183306313558829015613770313336584231627502891790334702819563423064674685140911117943041228216281091611873182666299002858114441826916123600302210907990342003190527338220053894796980034896133339564380952264925489875346287957524957903218330389637154665720601285206572422184872272370722745601995786217369531600206411292322634344619167457694079677764900276284881114114015112933842576078131299428202102511762943349093073900724546480223063199595637982059980107451759495884642888579003340151798508034574094141343472237183015590521824618024935034162943113872306698329092646799790318886537245855109875700745571374904352717330485650830754240017618509131313436423757870712174644692185741098202384766137409881587159475992395425960559603695535245995199312750528183161810973438027810590190660852928518960152895997452032993582971323821128767519883437402329121706410562135911870414235230704323682273245682518752108165016611053565838809301635518111632238635165799371366222727847192982559446053035714584498424393420045176113567565719549828010833355362860051409668442155544632291052980846496025201739512146790257159359018338980783222475718766918975605056351745851586990078392604673261136312153362219997495161795052267227733737714424893279034460790061107118422223196676042703768976149120149351991968410278498826595195807462380563211638045229385181294996130419782438513431858189065239256768956349620856476330863451435435909506928407917252067651192186743964927475733713494871784921228400934420046185429620600448472911055888920738120699870892871040274541014075672033678771556299019005676989527212568973445669024463420722059178535612189503537221267466986403961712218661167815034009059747577498733801558621613911082729575396428251748831028389928079663905040193463240624799869422950206843029132286605274557682540730470680913827960493207651799888495923219873766101087424263813973153626471992303827027401145658412621579306420497702448914973638200091053322184961675843706927139162125892217356328716449227136909807066076465632380767373688763597724791193183929210505796351184840731562341992935151167107527513620106985610192310120166347116859067003090759425794140051832476418300898198678001941170002548569401983158988341446707217944847834809744908426553333526627223809074891279961769940838522028987652170156265477050999112717417398033105433925855503707576697020745514824407823967521916859365428468446636135701027640527376024836795495027495431770214920075987513747844029819327282993948228068877944673548319884469447630158216014647787316992456683998917348265067932938595283522340357707354534416910967865155194525283253550845857109952363404873050505796704886784022470271138234642914292926082245771555259819232359843338565664141369918203188847037386505534170732131955118159912396824112008194964806215929438519581836693165501347907007624188564312511613584391891327833863308319710482344877615223916686929717346914367279619279638996405779435119928258194253968848538750110198137847549090211642012479703640601518941730198806550880359174748789436228150216637458691425766428123312636719976293088630440431883164356563574039496562670238310799424504131871082348898709170562691396424875612769342881647742148197209833168310587500526047260932380311916810753468561301754220532507654440017339168341028954655292232213857260096925855023535410609273849897339164201146242440291551770167538960011374997103476849536095320917187724921087513824025315667505998821325479471430616170718708400290583044118006881284801962107528183263318968319958113964051898240916111480557608261880724307891604531311752706682848126475406105204206830514882837157624524798857761267444170068327705649078768220544357864025158917811911958508831784719983703908267655210825990026034644443086867430294136609031012244296772811265766262154991852266126774609903029059539477276010346351319198656935048244285160870176810476455194298712418595983708257581949180529393053367879553085073085830577618172888052713165579315415707731483988227041772385407188004253697864894001814328806618281964053710595532105081748796756624765778338158802865816990383670180267008833946785124931772233421033240186317607319977042907744229716861962917918237682143410552499178762305112183545891552455315649987261984068682272642325448238027539268442939493874162688019897690064343018645436010403483504055877249028987959899237882323362239192209552849403597327768083996106846376764288978553109367801062450048101637658696347154349154807398700694565422826681115012851922213009666309959509256271170656720739113771137771109426818145494400286660538659963962983729118754090070257838514622079251393544099136426433818024106136499348659179302734709467462171758228365229501417838669768730904623837212275875618355874819818063678172977386596504547216397707413401365808741568833571633801411484953079587408469986718938625074831066780390778546165429446755654681336253906785023439301273931056946119580177967708849978165072086248346714103882318088148103541100364083501761981295831383351987043142349181327497606168885127659363827576285645182547395355714650931108101236058205167616626026356479945096483515706692004164433024819864653675483894507235990016640433694703763111350638764436833069742530594560984406568470516638576574338252289517456824541667977996926643398959140732782092367485088334965735252965724906545020993278803268726015415308248784298295479998874843289040288503925114579000228608783420615091032674047687274736462439640236548112116504697129517938132445979845939554374764761734958694406007856260585344772827502187132966122409893797079913221800695536259242957100674752440241588618662324037349763872421319798048704625342590733745975182765668777984807469453264324304817435797492658490909336703875630368677457679727298098244938547430285883119186897319852496084363164348011341725676216479190586761880505607115698120193329674251663906440040337660906536929465248938194163160073924253605998451359729613277241632132449344599462693304348788117099942516614024246268912996358708951697698860840190961424267496044870655610098275823338655915290206749478175415851134879526370744845162101485494622103919211657837630311840437877652976891488848457479341163492738100942689155399547015088713004550168796385064320609888677038081407576347338437739928348353584071335869769809683959805914949472113415489782675870140278221356298897679442941423496859336075292963158122461732340990464290057845163156854567952669361335296396794402194427116756457020501329580463175888175050102321302676313761928993553999528581565555782556415132292236258591064251291430989135927533557913219819909033222308971689544082677940094895488914065850764677790761975362133750065567613822735271635419515516306803489200653365724931743833039305333134766188507885044087532401155048004221733985141729078133393213168741813475480679929572683614514650236175320006943234582255004272609077754564206124429858628189071866289031258799278904081411908087868811157883056009636126437245679652596310649088579281713224736256500801722477325014956174213737818834713711298404328539401505438581008145016408292518780964403116701051017332641981273671159044298668235435032547485764132471373747311845530108568631761310490516455778927889493333762946351316047259656153621704815978345169903467889114478288854564628356041982603703691113297591818232426026432971590699619273346292518062046246453047788991776863028912594044456259155341896107639611504402148334056927182251543053453614617953311151823409945959013907089619701697547620823303609687542066009434274195314261101479059926321747184995546228722319441705879302276735274921842218165078281913184485678939906210036591516844194591738060863379429848523359224979033674096850076733710965203068963047992618012641677288050076514673426418147087979434397009866343307954534699682956388371436690219809232871877232632452466183297252861135971691962780536528778836234010183830408471273459582824034005561851334177982251698804055179296373714090395980108942992714984771184907437989683632375133900909358752308704452181900571787725224936789725787963607787535730347174985747592958352029140851396071395579780826954519021639433230654486228907408973119411270477741858880732011379541984828500921259956098206892483591323716441395572775346344760223638625710593625437184388325271663046661419945094227156695370297712093740776601467287637778450172813909004513405605904424575152795489764794803961695220577476687904088396587522839475977061592470701853125313553684842956383869742424541733005011424630571967083566082315548742525896501151376879644509071006910723634708475787821505559390822135408874042365315902011037585448973345423610974942751252781636468544042257629737504291729866897533150809473215277607407391816130984080866060192950457081243432865759311369616676750892486792738060701962010812444719462243760504739613262886955899859147546502354588997055055738685025052264780523787830422659217694214344504579920656681716039532017798992705047059391419885269595873871295227494974107192325642846554755056244526058953755233557062963896855009450538995805868203369433879743480440753128658237654543152105384227103418112373173631730295432557343188593526677026304673406504324758053176552798284036978417092466966952090123608774538903332241997187422648345613099010744946894979258327802858087890283230489942425656858601529661065436529242534555297427221091902094030705261197546203611846428533658329554875109965107504650015359871637605990481658094876485295147140723275323492560406294215680213711728376503089384386352311603106115417308077769156258797046484264331484030880358425578991625701943968872616425277094203667763129550338724542249167380978175160850224334718642412625725946936933167219901782835656245442474775678076856911582997331778229876593562765507317321568829185154228090986530568141019487862531386918779914028905865984780732440123536389628349798400202453594454503068615838969815954369099420037043436826332070876286887343917116385585126574576313646220992060320206292028066786571270018777349099680860817645597675650515606552033663898686180395765701463598002284071751440139155401623716767401856971382460268777412303962728376974349559180993875595746726269576823501518971932539563553178313690242171553099650452036994802460669590525398010038529923689933743727413213798663189071840039212991177897394325722636866131251934398943294904082105257536853216858134646343874179723156534423700676261970086089321710786907998999724163818833516176020105669177335593381482231083005854812395450046281205453999185558333406230771257595762689437325215989502056839244140935893179524874407914747894737760319190212598643148824839784495719651779603584400737330369473289063555332123268431368879088164443599109947941244761950076778404648742886849154400350671022431063712995242329237837822271894105314872307972986037528422405210177663811172881557465883916857817960654058092202088592943204603442919111609599954455759827001329021138713380649904003053632337992825791036022390667192907062898719097613608570495280220822552874087844394688211669848114995346392251577418998098377073902332312882830498154774729175006322962065295558134454356185831637038753841086882647654238224335538301467664098581307318284762753444955728098539541319497482232663454796124497906542635627084503753746527470256104549147442985053216093675457454425537969590994960563121509257967395238069144181548731816404209686740475733020530926312325776354019653552052818096972451880110988892870717252509296856399371452109582653845106454802911197708945237997409198700861463605160299672852397820528184384783412716487634923051009781633375203697617768393921412346189836619414556665024756713888630425450329905243660249786862420191539473264279792271072557110970831208529600792783312577008321220984892447911872377406869019542060843942776806612810473975081202978065972472653354045303555981177838240639880389576258565700116315856131787367826432056227763442549683930995814967123806357540730648849133222943303207871538587771081969609040808035388468461153445772009845611675469202333681702353424647434280666839809645496348854215484804714723595171321062748629336956957068254020447571695046997868327912541351491114621759611152919243039866314934545214067927853146915294517391035156439968207016742074893331807719750239848609260192659021850676937674530360154470447575029469194757889637750014964598565404636248169589049410066821009156557318780095216333405752559690692654181149689646965156812589519419841467607133129564798043614778019117456240583436121582083509413951624993911805939789652806179506593998965621435916992776613692690147260297180456003150193442206790279462944914650441587353922356900652956980882089041923792385112310069609907528225440059078356837148628681316601069917280692037602686997558964581460671016485660312208142456039767590513133623346791884691686794063267683409822310883810633257257336244627212283159451682701688088057605992653236491605269876326258393397279447295723817692009735184048733967191714596757706037887987376138008384896194684656074435636434296252208148548021134231912033543294236556638264517761222322210891048759308926506675888589345237010296633939752693965948817501634586081244786504428023524489664008984912364828444542398090810437846229464279723149115430759939758061427496157775821856092489640970117109010402821600712964134138232568469269052627496970676974579380050708383234073293503335014420075564800302527554746944002916882852509772925245538060242385200623561843599552558657876472484928087115253253497444996005752944920538659531537233007036310022609114994220331032273841789057864801452773723496226016572398434559581528348217676424551008053935963539293322091458364044261547834584553457414763049394321386514829752380973570619725028429235050190054402086734148561257275555075476465369780911776191315200922548568658223637119750281764222837942641283862705818604193824355396372887384018514158526462839140793422689341308578926930885488821068764055225197099849882868429980398107859829677194184671205931482331302222388792698567456864753772126807809099727415352476497231901352579235545217362088853675095607289426149499153532873750805757115729940435206263977166992101428973118163760453040560082815923543137006578584018684112206932300333865490987059668139555061085853478136054423777377543764671760793943538854989567507412432498600050414522001239915250905027979081736356000517058422893515583449707503380436279810677959831995987417116388219999197322133680280701095785864740145748200270536791109110048176262814235393666707325119934398392742831206301430293545590083800210308870567723785573657575189672943015688007022562688884152391516134993228274371890791268957819695137613606981723836780041106850691165126800500160354914871510425903751664792815000066784045306597827681939231519408238871136199136874089844392750275292342602846444635336772363661056985021635746063175028762963796086032354560130473195242786465714339679149866569904494774729286853934155074002198610661813247731119796572611339077188186933246183224581479340195750677541369659671438071708520942181320992830566341767607104333572631691681269102754336166619214172130625576353220282696666734049545658046409093923162878373743552876640356865496832156521474341539875008946166311563321825710393754823926539537377123465829903029918948658065417077133339416713130212485225712281383404729999677491061785856731705872381958983637064175770102259910116619750331703223183717816917339689024607157648768472553253883895597949631282214112862246311856646117105673507715409080746289491007489804891026060474960636068204578592200714724557484580854352208062135719924194091968048712393581660695285957140984864949306007672526634103849863764868209599797961613186328836397299984497982768969815045905871337473661287010469011904256778156275099425713226477722269334434489954798043686876620657200591193188377363034929507657189662856574519530782689672535290905699592692347216286915314239508064432700973109190798890076440737156511536181714053299138253088419970426150391051896104806203028167318958160801058652792804122047761590825445751643188543849218460142478751219712132667001442451547953680688257181872047776056120835608176087862483853849019884040370495546475647883948914840075745582614789298797539376844895070296183647822402759945425970258166700578431215231339534875572699995420082345258094551329162892528792018308628500820750150325019032489891284519618149673527638869139184256260348804358017762888639890180077995514827737846795581174093038180936277462615104145442665239773840159879215524648572429354500631331451949887231082930024804155023307855054572734349030400936505977025980987416821777410181503520491018806998789630644985473001097300872703206161842491617350480826588439521856496463192604217877922498247761186839640861133961477031417589925725100433646780297412739508961372441782986442626417176804346992417618669454689421747698918998767474402797925935022570446001499085051310899107223749125388796273857149819093697156335057415609301977209170728903829212398604865164126595995354547797244426832415144195753258591975912672983209224489774702977803612993717424316850109552700168306017243495390699395310483315613999945112411337414228428463998853577513100993983302920767072027698625053612889023810494000495659733227921373711504958865054548844297683138003599580137518950649174170644286558237801775816873310656563215702586144955948915890005908218155185993879826055474506130994688201275079204444876831982837370057322894121976854322106438433904800744894142393068778938886177439596988319781295164368546352691358439942775898738312562497086276429870501096948369269003401765776756941671063395025761266472614230993472627025218796299613919514013949709896913834615222186368569421777819824305592044777399854383773786870059909870995615847892455091046107631800751280052595829687123839413330673702727410686449399628623464738462006519920074448649407408185422842290405522899901105292272512583909991637722849791642008225727483898650915986697952218854839814990138550715140665451162897215562222846059135279550730578569377958546092651436857002439311605343315575908074305557719444430971117866647329520833039711032840109843305312532180329589791328532453833511543213208351262923018287726954183370347694195838470987634643971485766830494978509293546973188438454960010172665275515084743074191869771872807999241483460151538595721361505788668734462658849714441990603968335520456327519633480327386459488264795139525404414282828295677359797464191872710393401642754006825376680630667354224678710896757138810751862339731770173149636175048563257355402865336373434713627677940255127175106734225392308847496639859641428275321045756939842435694846602426813390249135464629854907533281624345734461804528203247695585423605950786916528429140939910406280103390772430926343234347002119661937296798103322851532937129996061184891121929529766984803497142901422846707106592126473731384033285793404172533095368052306908846530532534780000655836787771915296612736082579027246506756328229498526500032619442986756077574500081995613617220474836929484818778772930729808579571395181590671382220636687291742435675153701151053174796152678678821534014894913732287855554011790173487613627983034241735825397531096442435168955411693807719173008915287002181947846372932382382136506274495963053348692045182287746040050650266137606913047873507724061068866309009775697829872988428147521376730546784644573674195914227660746271488681091549619132515685449757456579405023691278411982290490704079362869842792711976182387179410191583860546688142456493358722500069397719517976773996630724313830388819333006106411549233887098516460514506311705779742101056092229248329726830025757112256527429524594476401294345609530557472613098496538712168156089261169830438451125559466209091475985827349936441967098372518478510329919454688228856007493074644775113145382591487464621662511669136115604345687631280546239533835701456590072310164848643000155553130673049729631232477430599508079875201140483784812230782057630866926907678629459114859622803442246020251788517321537620637321037299200180435180760906243345515435544224214714537892914543010119174813016483682426354714915616084712613205363741365583710491835603048970724821721644419951801801189939089096930092473332484075916225414428741291760479790855896444329350698441094407297609270155036708220618260291658622706060561838356610151843385850083900281397459817844984225075062314666241594035098853496039508831265421964007591382812495984435690953618423881445611538503641858960280478650641040571987841383053829512386453073799828686302823332817395502736742047157583721290057776170174485115675875824780392141156283670983866747859576540434161849957521928786907157794265121457638039893043026749836099383494923305432344932353658980185738017743277234220198545113193308004075058425089396520851693206046664589761855163865723198882437626820276730877111324330789250491262749347302154343753196050060612076157498609143109654301360008852809272540636043959006854490276375437547626154138182308261013175558609565653458102568835093197799805415038658379693230722814173034773191635015493460573616146183785614185319082116073014398788162587827920576435969582972384225980176149245943256804802187639207033484485275626087851914901052953948834708013317678211748380509752541356472823981067525756731215142858388484773588448175289927752410469125566563198384669342629156059181560796375013038112620811876644232502364462040512130851460845843058418474675612145451778680229771610941659975507859887360466131608419200427910066980203084876358811655698073627781990927930112483564972293438352760643102586684746907882837372333410468535564488059062382038885553441612221239726740699412310835193810212826499868520106931854241210115712503939689955448429993080599661525856223969572808262717689563723679122039030387132200501951908295629895083566889265952825840931542891204555445521224700039894141037948944876893965913181926669672856290459997266637091589227198117294718835492072275284894851845918027669089526907687672364239398847653134197655102792375495066638867415698725998187164798226797523806097255388282714741276044031427296375529059266749407337093533758764618561808463356656668183023145793953858098129127602292688749644953247041669499237331335002466525093819474054824811322629761428624005307251568867173755898863555503219289423508888700059821547891324041137315355576227559966023630570911105556440748486450961288062845324311830885342883905021772739310495271534637995526961972918919664904417804566086513157865336687022388342216255153369627182189156378809690419196751583616789991788492738680312443117449625343298190719187206512390139865721786595201162707763288139006938857009017751449205015055580619335115594794362917851071900843899593962239471456516517074772238308895435614317210639330066309466913769827855473224821679542683123606965744537183098469476613015097312539317237077829595399303276848971272260081290207528604386821461389727973945270342156145216554871883618942639733070896771626018250497383142102620774280051991067942798313028759103869329434438434120543498035172338680299988257784472337836641821156264171610702651341172492118347791808424006989629688691823717457593630685131992681709321491973237978979154913116413075933391333227862807160161041229032936323881869329967073362422080785541923728814064051643530350469194949232781641593268827281447213477721245198383420480915463749799167692718322578401725006372715163799856598671533859877219857853178692279268753685185422675503927258893560703796298955303196601239814259449560584900282688208795908323705514232005374327492104040487085081907327231994044618790986848260790228299227139636913166223574075070501547979034540114619451155479473068036928291209611286519942255223657035363530571200899487354977707198280056436538311333018822020087005227066035333449296109820461964007843104345234870489543701831078770976004997854739950684093264048626758782777406470612827737140443696590052351842027761450011405123193423930157493256333952934159015775343857142308701764287089623388593555251796302902056962669941037783410851743021915703162089613670908033778968566213882750005751362928184207424733781353502507592466894559179564436155146989543824221798483269869885259445967667523972471735898802684787630609341264565607903072260226577450069088535390568916588687273717968128474376811396625301255741671217852166787816453090979779643661367885434211142470078522980211698129181967940928853751905104593907954789489960179328448718813375155081519378023212301401955250322056732752363593472407614217063084523407147728137509994987078682305054464387805803391308974276183510056272251342661459481398815414644749929018064954444390562026867393772468969727445210483847679251265280708133298602066940533497391302227814119115927182063305134324557478019507610404483824152857339093038062181768166495665260295148161854819013459331552090792225048383132599856038083634980764588005826975829375386232125004400941474910827760249627612089537320522590813174111295760028142370519279198741896353008958399357113189022026829363261597787553576696901782933541344002860277219811517968141016507650992576787271017668776181326982960075278674775163578038307082030757162601974598215996729962579190917085998782226442096003328419764366453050656501960719252843709667631901098939745574930830325467794174201500492500583510254021454090613430174859550527736468901282988057695227076968178058885681230734258454243011429762743641196913755030238087242455226128984009158777139178234838178576959200039896172704190787753395581575443368741960736029517847762108555752336488138772740068400856506546636950120607761021210731356916456776736657653026948039831610692788561792058715926025236873539066856822211735205775708731495858228616679549527842854257208379706549277970059460726672996663731864910906077293751749560451583892020503504710907176530716757867029729272954300862975451103410792687039449886808939914766193144605422300309869593018710302132371222141473602404320790204440412398851761405598061833721776304814960987108181492895272788439662903293850406531898013407451944494194417294966694278381218140079860702984312492033971134169869730320950755922639220995964093348517578432002491155319842135548206250899793494140918239643679854003297763237892764094697995589797899817233169046810471769997986063668527363149639660065333752434618483507930447074338388422238489385338077645457825689122376813077231283211415030270168091363480714843629062372039511577710066533116348437877097865445107969598320374285790099872526517291660696629183447162487990813642015481617273865344336198094667190817206301564380896590210308529788650576787817345709008013242848431504209133483633943523233933074078989324200812301330350836308478240863370246082026908903949418834028964189028692521618011220974368224303179623252942131798364145707459249964531173069302927005702673671761580823878455132842939605470972364192251383871418091685606583965474016256610592889298823711468629428558519985670942446012999588225765467711334261029661433557092108098402524787792311440889519317216781784962314051852745665715912698236640265414962006963098898914387389630464380441467019550477373720153600837102242840744990217644278850367823798064179783487491511739687912223279858716660111604637470163341718695867272565287761436690507344516004242565090385681877178801589674535209562162979598766225972738303465014733804024362418125216413945385247626453387386232284586377868617914967700440401410988884048509888622569876014288792203437000653573197823114087566548685167425307207611652512719640425522353849413962552920047708358914408476914243857470055631154749122866967128276885529272149883104215228735802240555418173636630991475267702337117427721593677977070653823785113127854167107325456212970312011304973697484053427296165748456290333980691386560078823921715204673782364222365229815934333616817492676410515669564774349052392422563637877325739765619691313222196526762854195406899329858202905291449847172156454985459035649547243399425857244961725993767308815655054361182187739553228421211884796672925041092947189252139537530639646104716047882989824811662065167458848730083684825964711351586792500892666094171030201337601123298684020963728873829951346825474056119178270289476769458084237584862331107706787582949594865392109068169650264893671673060665822644105386364238988667152735749398022946465087667104718716878501412060260787317085978671598793256576734547453740745976603187751938324857050787068702005030522476226717016981646611244397365509225810353322690197547487409102859435109333787919831536243598829352183209398905317394178353851291256118088141673259655435369278403707702943482272071731148420321364286582652778304157543043426100366116665053761869283818623697054075643617241655058535176627104622362041778008841604699158657501588984377279044179723476700749793793508734101072409793257324859822244112120191264723394059318198694384321767577885368429005698398504097661006675630123704002149728817305971023380310167840422055283262206563872500701718626104607055077482845132894488217767337917844966557241867722360880351852123496638449192335804228526345267146584481423470225901121550951560634610456340428843487984799610808146553329359308660192457448356797953618954509348767370087508920099937190361962093338771678541775515989380681947688445244815751155327535044300439636356774972458911086796359887759811494604920693995804929120683860364515045038713852008133042359734991273110886595288058689103759405021859669956363063127113609216765693272113523716196277680122415746543766243153391794081981020211304556257074806875636865701630523235124536570936978231597790504674149965594681516543439019645776761422572882604633526235108914935261106207014968241116172136795965106439630877191435938453057114792350803098084191479621340891952967650545313996961691166281114557616275443201162486525622791630829212845043707499039578501148539312362786534364661552237085104862292674003261720710910835146340636055814981371346824044592470711366119195024542560675613861537254440643641187778817647130564333217290307899835003863587705331818146535583640758688440132751293652739119593466697908339472490116422404952561969850410169458515249544560568646379124377248881222579068095997082935110772973736911439033342776547704641390129507772717420446151497335777379181768448059997248515195051747859149486576862862601966121112269284322057548880816344868858264126692900455747267607918521529075171902359676796430854192735566548636413239275323105350644742563019896909757512313038265137577666632490561243131860018849965673761540420233535258219284717023941850769093211148191418098481974022164078951631173617126346841688041271715152301364148114604184969209826729528044411101521743990742468298764542269383712587517319954877351344499679398811730887742101211533255193597812123419913542843874938786002863411973814845420113091031093638530676053156600485249192761347571904913935112435649641735331395567119208801954194606863071817865941391621856295425540474017254778560168485429203546911309126981886753208117102895292800486360657772947913362023693552956443896917922446524511658024119880198833165352081756226943109280375992278250893015206047238950097817137050769517220881997302935018154949816225768556005170428448260098967914285644717341705234740390084649785583576313289676178835902866563875636355806077568896882786384197849760045539546270537115831424695822344850873767220668421008599591066791383717033112455527109783251834824109397241697556732927624590507573682359361887751871402810543360368955786441987247069801013731947055242462744005988082185819182843573611850304286110198705846935293349032506576979798786602417399931740623888752548175136227815729507079596131110873196087790064065788553363777287742043249003959779516804146548186454545605524430285257164174427603991692219288103689177709306356840848408225487940347237560881826931304928935980041137467933781137636204152377356987966716862017111735863813228873533653888954710146036697840618891747352105844527287029739402742566431113205743941172617349769374739640528706499339330388258155271154217441232995212820065481552748032799363616272914839783632181198163517657217884262833096542069898236901361078822939388818435191231003784738780185601022560898356564705399988334688557276371648192100507904783443124460289915976576897390911142735379782760006124578891269195726676810815945697214607988579676536391225751813256081390966036847528384204700814638483393056918524706109548776916758769191879357930383889160906388499861751579694913122292458255281250717571095337315598056768061396897625668567673860086781125778948924892105180180158235314581151546079273464462214554645839364535725455731744936671125567573766028033281536528695371746314260335377885492251478731405013358647493562602055436771576562963599017286642966792498284926691388959559831701950311181966930582734281123468218379236252725068547116106912229755049588318270007619913373503599416730621409370912832011705665292775203293358875352196321553451641889612195558803069768516241057803318207006607461194393459229337431033257128034324653245515911140490338258955393432414764614674706680494172469300391684776330613322770622683475131585674971195440326798513043213744881595507311513175726334903096325566982348610001877096054335233070215538119401259712702101841945792589009005763442841298465246150131628207953543650549442930685409214488956157381198286894287587900582421037167822842471853790227696371895974191260132897425148775708333304317839494229590136566185130884956822015190958518230986049307109167826443304308076734880674664174924885261911413811093321819610627544294815499440787591831587374442900387878240930779973421840659814888385678467108854847906666195102696202384242021602890171566784544577993145843184941072377457103628535740502931020513005193149000476432329019922414405440359107799174032839341175334085201038546375679443832733627782555339485368956884854659757120264917970197129649123728712561019169376132048311966372399011016530713123319115612095083552760343579386714160045110935918113323651976956404877110024445872533235990359810469539960344229945491596382209696127257253428221739331303399196473014281933383679677722179319057206273732197689398307886567591996012014022937614985871825072468183447004025378521204903547840811494964248263655627509244589301939979368400341195854392883961177977233402431598927907053815344878521198064545839083156667676123153723612960703196110633756930133909518032941805127908264502671955595591240167103749732064286578689065512651731598841236576070654153054992054146677312092737040699572519970952116680286737355624533191807734469151818500208968400679817328203048375313588634226244684810420885658451295088124502564083080424313752242592321046472030905365318404841660160079472975160838359862103352854934535281181349749319222135062725984002668098126087568401918378553425050349604525201219167291330333399247907690440793493103920775748686463639733043178325680647439733766648829781539236901514956688468646118364686210279111313404462185621085476440769705685964088574529964130013227648762829518133952083248293384905003508137100972744860754658056715204924863017333405695404082364769387941879915968301975967492808986709294622716457512699082232626583564406050641000635878091657464534654656193098843447754500559251067330669341351789159052220874994781974865864337936106297334326683571799562680752011784199199154508450925055786417889933893969782260219821851507811300357981022898406787335737582623954726000979991274317385945949186102137611819257536608070546626453797178632247445774009042550351230296895448309546865759461788688392701771216063134268313423325970860907075542873018633722367812197471066289025139481734190482226592260830616865484860864394337628825153268075903964325734579619684710248062482464064993813175962694954115606022279906708315359395646589370178602642863547973984124324756528956879674900667540981424068607641566398762922182663540778883203985353625898132378820245509231825931572971959531003410866821314693262808363611462566641021564116462194335446707918340428249868981330471797431994534005397959291856889281127936034110871242233789241497645273343914340127423860912437529281923919054761080611799823957881424452583830489741422146910348632335344328542671080117527669633819056735417471811663041805647404314847606419160358101076324724150757885707961107857499695292075110816767828585943011071759284462401164456812399336136426214638068222432082588838064486610756870220978844450445671830639272912773935443750779643891666689971644557128269211648617060444810966329119529892983865272294709075087244601431783414456560113802238508754170980132297979209092116092773427074493002068066345316659455282657076215450047807027477312856227622288404046335760558039994326339218138718968559809557079498062704017138104288251053838825437504501050387831085515641101425089577103202932414997686944495836484933006371309763027938633935337521400933924262547531820283707159066007193378990771253320762594061656767742047764442209581192447599571144735601708455413235801417279830022641160613903191040902633706545429506694328239567790383627968949781271758048074278258103076804319941807521171439485214592422774940120394695511317797951757339972036842164490940317764189605691769334281529015605374899077124645517635212031591700049482006877202588038115100273485984311470853270642776278345852604346277211067627397506860850848973669016010779963868513768878886494983987500114187650710874624689893863643741735487363856733814650709030342446005020792876765557797773297237725746142056374289904914736691248546316968974558752904871799495393063060125559486034004548181932358583061206129497311917036089189448014105366162407676360115620107801445079014544454477316743885825498562407337177874851250715931852972930273156130432828973995786670422794195231526354039537084340916159093828324661624540975763552808276110402091207989396075531345314803965170238546994149182209162706338896870011818473911957252291194255386249100195646991277495965660538711193995491736457761915019179894099768266411999865709443727035997434948206905927871518630989057798601384079176927366885855713739053747031749925543992304990685674728284695894601617974614266017612610900284111946198974394227293826038663943030264089246866531004916021817466463379568787367565185435010692191521700446351264925762345736931203354724101946323688508038698785573398856153197579406222863064537639683550185059208914977709106519297946032797569914392815749800117010145962070474879384683537241496458103046426604832050462670929218420198910510064946950318291867651538271948417341553973168293238623594561688585438253530070344545526895744301021547689201282865457958062046319280038322935960037984073638144210176014220110854439403177773692079271362579284437758826549049828259413538532548322816324532992175235698731786181717365023219920002376592328125501187503452357236405404977357272022992298424381940832989999852938732604714699464165539491199919439706627312360691750881933565723013385904161714336693274896239244683455932836632577815423995218162369199055254405661939301854933222516380335268632045343474004387260842473164052289992855940354936647418078571178564085601580703377496391389282345379530528809743039458473931057587967403105363417066928705375332002494708457755341108314854475953876117434972336937865103019624741250340708581386713706894683898584375250109225693340000397575603683224342267284081039496103620643437441679576062283632235652971368078815318376581944050415476854388390058286855904966201405534124937038181543523103508860291912345893237672649631891376820645367576134296170049980454290855834137192365494297161191751997685433925779850931738901649140858056935582877327975734106698582845756710675381141241858407480990085550583163658784039259389623265080629908553215499432151831749745201847243604905442597100857774804257241282687693958810711872962178282873105444651908904306831270260608576335380538491504948990003701484349942680866485269798443444982536608202036562943790723656301789384310667900315872376969692265642756545158559280457224783565510955664792784773680059604474856151777372918751132516503274627771372441536718243554267660851131952760958234561235684858050049743229015619741818313405233018877717542608902472058543033918527308157441071977825753337523556101252027833998768268903859581029859330528878801556370324688148556510603256740711674549072326208998486029627330731403293691386642324828147748376473826717416140228257862606783480642229252446805097702269349509914978941294353249200877015296950090490804869375356874845438665417832624175540579007674515590440666763248680900322413336206349790826713981963422063358857503151248086794424713746079287139626562149310611430369787447980248626068178465271050350101513763970490459117679346167090348578631678358791367296312270643244018333069443817962775468645054346757118708694275514950728949340877784506055523528962047913552841773432210173193423104469949492194049964022059665328455053809825069297814119661925172781142606487335146184401089999163771104227492526169375559638641864977576609460696272972867660899342149944070170440912319647278576999496694696398846509313381758011030224780799805711301316744909351292603519294349876081594430434735774899569684398499143258517098583166939398697625514216781164773000659027827004172843060208221040207735360585993708233080810321003133275848897850278416783386684013163993478673936023728516476401676817654272006700339079354227862426520937844807526414053151671895501127157368304808428691447678840239071845823494809927696975298629828670906622356089130684008038532121515813364783283422061921291859940761426979214980647973979929426138833096386347969617156270746874281845494975819804148570274768531218431572281396510303598553276322513873402647645488318409080237637601109335991723642920508655009889279946379140350464590453279529966114217695343982842108056687198221864857789519969298177942597422378014166932599540932833029208202979711161652484976813848269409868836700936962144079232727765550588177385986599570237517790459316220500134949296270936689676624692899326451803750635935200972696378806130207736597375392913101524942698402927011755665633594816557281367301508762847773322134084666971932638537938581065986210336174242804881644690363667761556610581416531561241038421316455225878149271665288581670308812856916724698696651727070524056674060720453693958508990182107536221608423946380049302859363725342924617948930869119609278681204184796693727983346192105129315067090208481579532520155489649874930004451753904034456393719731662439520392593551916433324296475884242964277837674543977319136027320524010472377372088186673128427318777540808870556825353772094489934815265434451919130920973714721088189482321218562748921801527611944351952478141290521134502044142136415185823940231650223114012965468396419763545139119903979794964976102122357601091216822580022064150730393883589699693107911043297930016984133511029079078879101750961546962394087902166816416076597509093852120493185153485378788934803715169133131024593743989049584954487580560439246096749807598312548718925158689851825790365771570513382913421011777502346475192529334466782174382439228037999480077973743091403389350929103822826923202766051496140285144864857407793822755045938199158591100583450488023483900710545563605509721610103728487875557200418270376932190087072234671007605225329364443729322412922287977614076943377622499304391101127202976054866315851662553561000679874733341294953303117273399996934176816642644852949644706926090256710227950910035929953814517413273656157377015710191588750599377294759482782395801407185352686493336718657935707640268558603690115775547707557469540409902947490386516780379234140670555226413637080156934627511177796925130652928570071260012947294081508890610557011343546789538770371385437494771374988896898882117234268487618855943233342092139088462415460960455042300336500980488201032845497720583747467954628616845719325701348350691507747090780947414248547816355614833294647494421152505917704093651652816781704198106955527407955809527706321090065429321518298297351789926628078400839138786400976048379498090931018443399956098272289428586254612623828464543493367698039996244606154515568543179643888954277693216899032112872213617316981050077715166523972784222662990416549215389459356349801723497811899328768432959479602790578315989723246985459180919219347778006194356659149867971503633011147073592059358633807453217150288360910443083508720720022353521507648287599259521561018279165352016926618957631041758789516502940907473423205645265617346806649258849837306993042789575457998455234895874686158285838530937958358998996188483300794667726205763528404588897553313273394618194026117188808863114572127753892907265069820277829784974420086184398095938291721933852552696834391419253728006160647602683659045235466198389150343208585128898719635141318662607787936120032110515541908995097515679118558287453556781917844755759292437312124561660684722231557135098262180932546751392762279930347302510669449603596149852789311571311034882574645970161976576786109581560497603166369302396646506809491806983666768819598154324031686708501400354818357445630320143425564298726388983137880619358794970463172023730378572476677370247446655552867736715654231761170098093918743969073711006455000682295768008784534754282878079441435274610557624496470598052777060413922623031930555121012713590283779427911418582753212737762799803751974122252966863892893422375080749486662689171340011031723029735462026409615085491685010656329231517373136500865473800711701882059660756675975360441194304419382388499854468615701798080737862552995768037434702768902702395606578675170181889543745460808424947785760008595342970774522586713690617889238162993247304686479868298344865046358803017584335287415258962619888327337728128948692700189122099419866164054667028230004213197799073006514195173518955248603969162553839058708129282455596502830542489332902811829933592634676465193290319228824771438968078667316304470774971914866059406608849794924980444274937119782392724989333074955289863205854381084504473352130571374990668265437242842618744878671478645687795584181740864196314023339294389709384811449839553848187828151349794268009291510761690141226238555496027213043596514758988949898602192464078514427324307677945137231732672107921840909539862114614232561870282095528451726640201361989962127603487472226372099816223417878972033928324557541695383885354273301896164982603549689302065347187040096019725132249807860270312905633395384995939133556755221000403271428605862879722044840837284005603865067273321229940230879013249747888867617888972554624025669931292943692962087712043773292000054671808314747624977987732262028763248024698195669366012238205665358302437435216519991812167257815385209782102203689953865227975700138603523239050993251656979605445908052540054579080811184161982983512356313187708437746942814816345739776914557652393045969281213301738585803235594154160273432049014325830056344518756012087256493476411033595695366698195232408477373557554311135446803991745635080981193651596952700722217391032530977924317260420946546357668437222700242982705048272302968889800447844934367279742051953139933058655630789828959912306764333520718920001110703217942604325049127484034993573376190399374574163089216998399622772288627181890086401917606282759105051273171839149313639116584757432401317021584241446878918721814089395069153199295648374392729980707225041431890846565121360247522668521223367071137580461198617635937581920427500436939627621831382103133898341933317074651972673657077504294441286637106605840991207520283561093766306116694265769034364160591870477362680335911806687742333395736108214292173073048701009020559697181866664653096095525735002552150346411118175022183735920167220026280725913225031622865076333874951023645951779297774275193716097840482071460330683520479475961594323972046277500792762262798044084855494944375206419355037762867310133152134273635825241977888074939316077730075709381854994430808780559070629735617065050620870655428820608565013300488178275296858128387715003874687444907077890691150749103846535979849313386518636635321856981449550618533026716554561829866958717238616643671162808037271745457993833612230733208094288502680463276171889684366288637739380889147024916771221344606158784847424431711525482686694338633345415930920747717182604052853382248429862086092363576468342093620015153134001186104390606127514830932251619986472058385007005848268246762467713199773070575783821318812777308377400374966476989138700555592303375560639061977030439216969962941990272878313283359451807355956022106211093469348111382653502657184278896361644010018069714312870584553804859474802250390321046023098555500185405393059025070247161283545153523741171532863377335314236272902589650290278930724528353318797459855557469056897938176274398042039094128903852841685389278443332806437820054968068294057668200834277602915517665786748055998828929843736468520368110875103261067421230248267649871110539570221947813160649396250564363912782614104221596368994122040332055634093183222872982460454475597896242449482600601593974900830900675574823490470765542563787464568890611452258569247600592805535713224985369901581539592927866362956317217473240642981651166126922574255663435871704180960251290431391972659904654500430423872050120027585194560817211503342901799924848332701925887264476563116717624201035917551423414030495654302988047545996174251155240590618957443588238170072095114309937135798054957672214132393572215078207222868358434449475901237688977804920698447187122215093471100671404275921972783964788283526250743263477841437069382562175403844753670016596369745093096227702259611634206382631031036751892840743223918093934389697813928631620448919962382759460929349634656102780973158267603656173858560057294922820129483400461378196221269170234217195592646731143254003203956446333011256705130180279644320131724902477759393707179788619496045523396027270410203274651737477708703606054259473428381106288100319887637742184670697831475352764598906295537981677529643448536710290016403263067411232492014236377132513687908563901313447654221472520184637996408212658935022011821627348867681815882891655645957420215529897732647356044706548128286516390890575560729336784474789156839259037244554863783969341521574254332303266983569843671396910355208164122372035011696666827859879395657435608909206661014391749188895761748495325197157960727515311607321957158470488362986871168761095089525853467200131834044387815139965681140683993505594003181763569364557889487520966611116109255671492401219236625560025679909663669367042177365015365689214723762104049972216209494405844833235744905106280934555260647774984022509930550975955044327593495097411733756541656411848992371301128272681803842588232268022727365903349398246220354804888411650394579746672133678185829208781550480286089187348248447976585216528476384313864457041920748404324756071398158131361634733585172621340242091487920964517849388761728689901824046778884722490804370843370270522912758906152021071464694124508152715701353244763937864199522722453672510545702961101005189846242836262143952101664386473231037572432159249677198019917164700927514528227327728587665047950453012611811591638057810433512499306286010232811323885185081984750503469368570329927830368352640967108235793491023013836822626223097346505636436678343163541244758127588818764307937667009917750966707812913990309910446352216477908557483921596274407734593239539643227849761810386011332425334356695219155994660495391492461278373742776604514914822465340139665794244114644978712534363645941157612827717920571944252875977020786472801532087605206138272538167562306984821483426820622986833487145643646463509938189820195416335307327636794670016270685287831965450968955759822296091178483208489902819690087470325515861461968991333076742919868721571384821417668764956393588888040104339046404963896000979632526491165449589713783461530747820853972126512846314912112710979569814764693658027463352142507470726056251412295527611978982979288727546628364584139522275135898741757012258382122738867703840381426352495498356980589698420973429561475211810591582834373072422705263051704840575871235208447127427891843549604622539744157850140736755165737216986457954694991389183012693611233551996682255684422567429340028357651213852117327415499826865623444687757518333348349748435813473099409878321453230258256699214533950635391317350206187375730160129741818986674056887470642427363230223877135206390877962890557040741419730282227158271370117824972787543350663856140688929754038318293679197631948883278830995192389484720461506416048943894030080712164121392628741010705369946731805267962574072521332076317815076863982980437635106546775605648720026440054855907137048497216226359893189372143100286694906063769337703399759505866046106169215163327556858581867331232833461517695516590935356833079873584292590372125436797936561751138150584417560290039207954050422342218838367829713622008238870712504668424460406168883622315715981854285293953753540852204649234869091722647118997391965958089314630984476778531593380261308121327092322312034751417999535155490175489799647861677658398260372739377416982252820004925396292247875251395049033533512977849093788945364388624615684110034017759273959910805445727745600068483294478038118915094115308102307392859669933429840889376645642961456104381101637010034531444600439389625176379534534767625039918179796842951887484156479719505271836161334301205282719856829308790182348104851524547359964351362262221714190032975177864139623317874231239027085641939339694632244962982148240333518549824839426477131007382692325850968066890118964173923894284127581657014850525540947343755715193834753867255235512540430903461719703323022364544569349325015195570871370973755734809463634713617567774531666806318160035383126630611347161955893459340285738749298526166443523761079759731016936622752397393662399009654419236080264037454511988908138952701365423697265997409400498351490698654527862015895252663744969669357279418528080171477789089863344258354313231866902514635927979524871486937016392076957980236411834252588649368300757326338414708686317258996113366785206905632822069683177468944433978468265296321137983252328471291737657569547559189346152106554544061090377509787881373598528511801738271996921424405715661923991612572622128036794823502923779395863144024927445275247637947610410916189461143385810225067289290053015159505405015352834469798204632766157463967422736261304907208787551013115202082983886085583184377112758945880825315824661132579426695912373969642555738527147669344044796002141708738362048479874428483459826560337054873516150091119044453267258005080878183513960973743038379380223639199935979708182412787039123300471598962089541210021589040986798803726690973470322194671236460615313805711652761939112934743475895104638879023001114909350681413135750919670130167384136485527838990440981684672499365980339563408076779637789140020681517417196491496193238444366989813613409687964832143984069221401330954202849330390852210435612612440086721186583600680487825340950248913734735454184724363720140803248823372730657470481562695569386471429911323205847304156374946698990172273964740814689486264842728837027330149510232402468114549179588914255096992682410659593970783892602595713901280498025344061396957172009702364079373300392721416294433748627589527918542899332113794274083368519376696481990983317324293740814612344049330898540938958423111774192817565462743717011665254606056896900661921620242752880064386768408277516594881980088339295249772591403609248258903637708972192666820707248401071833637498906109778808132148569833214497677436517790365278880682500431898600110242660046722674819096039921305409669177431661010769435119676298403655722507364933138448354403340908179253723604189870438571661489487403865834752494613831671155822667174597423997954541317555391092442912084305292433105584289694715179787450855940013013689370606492065280388105439520368114427412062693592892510245568142729197890915959806175536912326320725000855678660395878732191354813635474230659542619769531488703642723929550000839551245196951087608777220866562592816921743907895579641804144853323265910879530629053551063973902652254539290943350658552851647049011956558395973297512915093223379322018048113793188030937880741288899878590451881051558392428148268184659222569779375438769421930522853050358802482188249116271585049838086345989398757981319163161150615085830532501290015782815650776258353328190283842150168191420074405645644155819811212351582253307190746960237973852773085905328728330120500146424477885801598266109038711715352752509496189211644658618500090089930332607576225282399634530034391013040086155878574022215077707175394736771873359452946950667824740838081524577112499535893442569831859945418130992892868753480322079638709225185603266993818567840066167744375301820267142834113505520138635164654406016058067430830920004235559389296486724352258622333275659036018648134708136707788746872478698785810052872267517764379959116129738649226956024996343691028300143868724270289623844478197879809649314426117046983279705900914661209379717472296549130714953969531554411903847810280917295467987578444080374000029668915619697539779679721001695785693160444810191943320626153898795965876864550511256932067024442892174928884589456269483294803872841782501948647965884852559924551768407830673486225163657338566460353559383897060241411626129752425010851862941386301355356369874260981732326989586516992467305310341143009706797198095124869941796165052268654402262761324165854471121126314830304681189283384481776903920607729882547076805751275539003161726888085052641662255456009327944208768517659136906598441176269642086414643898298637367506883871278690211230117092253529438929163520169551339926543231128348257804834600409933817902542005008239776280999934569177440578676203875441778703670565908306475554157318479500075900788505986652954993950208295119490823331603943141527421786981286926914029455892650143050722333966590135851031304078080306991816114937293690093441939214818368795847895305835883574337623222271567582349149975593133595933391542322431266064719273441650932253637153274997109931457810079643567655239669098225065743518319657515456886888194428373985529428901441039188089155437747482198137553397092934415586158463758115640298633872278465501630180546411303153768667980737171250760771295963857717101105440793630590292915483242163899403679976543753525952136643784963819932033244326994520112014700851677247927030406749999754666324879957901910521459741059633901467597536038061605126698543373175523761987120263179730435677241456000840329282269264683350400914369130562428741796735150172159468245088772065911686363295313133109106839230678317346466157063318250897810761976570898952857019725789349113018282588391546153073018961533289210697905593134411374894404158649938967049271821806708629238982891647422606459245066244782134199567034869939180410067562920385550553481814239262507561341289614559420046952463352785153040415385172377382212582228530486986185935418939432937735292912750154209656606438961289279608325312862686319589887963288532231429385092728096320895837567346190579813419657523998441112626101468666085563233299059201239736369984248478769449994023954029445524988058232009375075639897680011206254858955813586736251917486009598829203296212088921451424440284033307147186433777349349950667845911508125419529833049396079748231929076606635798620517291519432342221106338845369969385232402013269508812185599857717449294992762416652882606521876955429058586969951909985780526426894845992745139338010788789323172031818714307585541006505892581263377067451579409555413425600263322430566658044414977276997885252470439912607142899429315877341655738665248715657730602790961428398805254229906626433732166434629401093094763474251869250924506072001888170864411301534219428366871937645033891714076227914745419802897798997824094932923158712587362569706528033198712498078747332557516762231805014572412395899570092860586340045318049517038460297935229807232048409437207424132905283277329390848380692181303766472881766760858296767982503534043604727067913730641273327977332449120224170112640530863987319480122653324266772050427019401694290918416524671038631869202468277392873885384128803359371707003021091075998143859802338084906372687393792604494047344712111532731012945332130393453138610745561946916337773027391958607244196257117035710394789056576317937907280548692734479086118091050925634591810413454440607126664340472447414615346975083360723625054667656806515914024459814885986486654005738956369497535627615393799865214786533339701802046851215594579322719896378872150917946778712683461403340821461880503511510225500529358407389344733511622755538459333564302910766524153720236050252142939593027768366496742833043735066674376837224201376640368858366025482921343145715600579652159679182571188012694189592740348016050236314138948636975500597726762909510575463621256965867305376385112126614942551166832705554214359293479837233650758009642889747022238975989261871022646228318275514106386682315383165243180173278078413376758855419020303844400703685349881833106433302914281061394992149001828856948031348299126065569580435099555529719814251249633957097670196094184991479535895627040211699851574834234615159491366485888084726511638240278346902482656492300899965804683957898705560022596618836695169381622031844307702854302850706854294292326644406345044926942016065510670185846192550875230037380734028482519871228917302427109234300713848271251514405163913311122246134102511044868957061270492224920152055290158259321023758293381489726762065456263081766706010901755592026829663712060656309028280607339961740382502261746053924314265245959733715695118058449586702645787680756848220618916550557668676964036229695733581836836003386904162757427546757018762035070065828553267934876697383565926222427316703056755846918174170657176904335559228397618171197041905239445931866026695454707900795399153628386432547469230806966075943166210312824758213138160451049164242587513140178743325544704958760233930307436422882863114626644386194211681962061545824177810380369727143832711386898329890689923084448167627442735802294252812291765945686367385590195274047329090231423768943931521594260572688770130016840009388190734115785253217249703750866519028848764151890199181479281185480361362605431675789985596083058268479935219405229683563121053187227757826134877347989407058448509737188590181566286875386322144087307217473402675467998608967877826268837334889131424236672137975459185928232579474898977282623675690134242177330244921774115160858280402939692797741376857348486325345312251179933233429940873335416012961833668954994302069651538365091036945927137803325207913493278356234545898824290121815284907116688790074912606295812096579514507649562640780933062950899996408324162542140898819471515617941759808509469164139683215080403842402703520545279168868854152646712535601492642634481003675367943303217905132060624547892560076689713263968501310464083556889158587573094582349586432168308968264208606411386312720450764412646563126188352345006788695732443561790775699809022896990628815372027312042591707667973128593003101919311036708513978725688022942228083246338328685378909379121226954080557353557277178984896591402487973779157307377515771808985740511819255516643311591792398240684404604375623573382319627537671349635951953430744750593213055644413636537809549119551066440852759884364447968915735841878770066116315269351976811213059273187410025737051062307728506722711903877852586337549845134980846319033341181083018930480808756144559314299114222080186074660053296762068873889053074763529667364637448963619362206197767410297984577278962739884775754447096144193671341457509476749956641727414758273073597482552552689922562291420485659250190908126276705136079241489063049984500641815253006496767078865445039302547150349150258732535450950826543407564524032827156379983828737626379342126116364585030061480960251276182578296223094106514429755683766535252768431543275843525737796534042298326518065023531002651570213690505430133298688730342334085073243901435399729361592376591510840429663322615569535480954327469875539949725881456880960411501388067895029282708838096224886741842065855655228924055182261520742538427629801062910863248964835108002393114629331351621565907602099103311362580686766301740005175551598959784791501751577679829957966286603862796670608330925788964724429646020905080446878496152695154805540371829665164353044130704654093284024270153316666594124850408974814806747777226871457140803478010372203293797123189155496245268425055305810368774143082965439906698298370066238335781228976306715598341235134741854503944322228998822095080895411307842067554152069020441979289145688950770926503735769957523473955323727812678039626504485719593237475012285045304432656477053446878234577852326735006897475899052902165546368849646704711344354318735461586203756869466114159181308878826980271921274630183359781413256441311202243114826427799664191358265503901886271504324167217953953807872645128973952359612928785056430047497602605778737090007719611256567626853338042921559067601747301014952095328547542652221899768177515636824403378805583633328051960574761579638945872265676021015802252241924477127618819674172274236745487273792124676550991747030105225624737694087942100947919801997438505294434211009739237067382700293081443193944007945896842462013391026887775259216452842754842155362526877069005829247675743292207866329055164248274416447679791813451656760862133560577898451067477700638609199735379150962544029474358268486658618008657303504630487099994677599613244927707197805966445423702395460199987292354391822651408242595012261995734945613085012787805739101992479672663169157091991642007025583115533291623107550850854724307650400188262587352698416915424179275830906839618292133284172222862071107396837220371252513659170470708370700065532312456862273882792189418774598922772302202302059099623977650934899027031311375934765217024799381012688036263708838500289396732216582123491838918018427961455807156185316916695169460928412339743490853459613866416628017059880610413841380642711731805661182555217131566143592296248278981339931054909971153155666696036994208204881917382252072603928890459686778566874917176215485743223905743591893293035823501818975850646171845409460361934810539032088510602470725988338016067538265497622529481840360978777798429013998138576130253106137676007686706843990572133798721647271835747926955466003973987849863849475392916769805445148707893474701144776930614125847527141125551795720750910881232691872315230092160580641114640474254607899095590450851540880789274673996025952786355963809435880391173842224385384780641445608944030296078382830060696156812274535824160838996524213053664821372302804815311721785893582655492409700264961925193370386833203159267619117345111781851821598069520745054262330016792370124725817690200570378065913627980946229835783295626719634614909146403042527692998426462116214102546319915592492142315924505612566787180178169617385563572178010615149890849962920698035386045070400941520543060006041127266222103804807706013752680308585151947206341594543635923485338693617399972528343423191854015089989851740161128545734283874327298805677227912756973409305345581776444489513538180008423532803441455488827715431569739087771662389108900692096197452125285826190604739338998897012348551173872187039118336539958592964049749893916257616764158411146515944003349932223964464974406180259059548076566694960762285280612839816943910512568966773478655842656177604617785813627257047546112729901685328047490646888805480403482365886112327318086006260968881567114089427780196801069731868451184871264710822655887123795856289633760647090490484529811557758775326602547009045661052415086382573942850404250877255590102472663384600067744613895127430192155121486466046921102992021555936118693265234800696620164096596778459621844553050630121295408368360163675092146876670252851977288538833546260773563865130134735335322694056806763533457856223334035832011689605153414303017610620752273079700517056927990320614174021670135691647115754093285772212233709410824225660840724846447311886293119540952782555070117416228592852341656333424883689226556465958748687379124706026215443492048157420536091529864757710214065144693176856767464454616122216728237254842112593162292173690472416598425770045494071438635490727328991845278423618138415526511797252043292401513811579812178606194826515084316756190069823829960999480603289294917541771751894633179533900999252968440141678854845409206865169520857529152413479334129469853046196269814594270671488740599245064226260290264632589606406733851221018993424238324173634258366589661600325191636515287421689765948568612460193993555715275001100980680744146423804757200822590229103459322869888304799801638983496998313631328714396093112436391401879211313434033780298583025493166534265520470216811292804980007827922894450607227581738464893643153978438896894568562959519661901762310988759588041641360127508295086332733928928427013845972597278923928321498834576597729768805637603442168014123116226656657972396505535324989951988994881791365321596486740667243271754887606988674948969093876336948552960841080382083816602007689846622465418184371401891157774626413543396847441493961250554201208653293824593354767626975926595680595304269876616814347035115783857961405582770042902174359817948048417578491450649355324360264342179252242701802213707081262817316235550329230946463718338499167725169167483609472437578253886816272615380321871147862477957606179318201234433062181108793395345478797504669989383530074580784348310329187355721394983345310601885398192926742178841755984746179576501319109213993979707666698441419906041951945873506161528081553167124178277754552686548762134970192767979332600612495827573441833823539007728246921661082982207359018366197411121308363109992371513539625877360297366567837415994864588936660725000396756111206722061367776736955902702045649168260598600349071598046933880670885873136540070095273934055339490234072035274196401252516160603247763231517670018380999440111442568040993659953817565628739391995551911131943191801699170563940621780541526162985682191715261443126777004140767947236413787254969110318163606268163093354833469661873557229415409423224093663673813579134403147261279771758720823736217830322130698858847418299319596541762918810620051287445667350377511543426098138587145725751378744479129683331453851158814796499363503365380669376447908690741072510172037997819992055611677052409469468483707586388232687968730387392986124358765096678660143267804388822202100161669578134521664455668520343135761827112788740299888564667793008685724883573507033052554087730095713881524862518342054756525749282137937067636013149109406016106709821267708843898430471824583097114111763694471358253717961022707362060927037446648381565697510758711905448116795007630109581054121911850942619418109983103916784881117210829285052881049955390689689514446205384655511264586993734687958180873075918729852021463637542712101301780402209471716375369727787253616528257230591021764909114804461057303670579294846551227443478954557256830196751424337435141183442009964132503399204642200647602625524882847546833213709651799497501970761317289445079746180264384838836503163754045950398727636136309024894461123198701386185420567380169053555699925599489920923241455088996987116717063773869901465840264934194570605314265555412316491358594703075350965781656944215499860277008120537921170852625695263894462966475826950211428166123178495915368504393394549194295201354132614436523710646809662116488196521183879589681246460314048706739384339260122506081692913016562439103679628196407583702171060244194949900283633883851255412261632158804220696497904272420574083095561250419102039301672787738872201209867786609532390364609616876308472650912104057407391102058357892038781361977027664616054844632395630418980600087187219299530541153347893804156028644480896372691880002883298063480671355330396687102933545255442117368644800329233804618366982302527979918236398172358117559791329406452501827144288823932648640647333936935801175434919789684133926830504115828746806888156569860922411382379464874382559261648923940243346741634682417290362443094891491637177840218980528612445967035272248919784182632702353547924425946056052926255080379101049162985928261322367141758291465736489381861965416873739978995514251526070584827187701688063653807333600197831574296714811396794268662626889844413527918768075334568354966741567926492357677837665316331813655424206677613907149531589806771967444857589835408477493227283690159754781928556983052842882521206473895288804093980953685687206150265865961883925146978835302190243306393941095917292004147353618103466589376685493911692833965578594946831822764313666191349446456198054485766277356696301917992210266335416334256305108615933015259925484850985204161149742170797943344768219761449039664556027298408310675288427471735426858435175152324281722292971082370396521297262906817956420077634023531760839672907430828710997499006352146925257930628232182754944934405345312701380433299032292841414807453046834345358165599126961305536365417131529496965450089272309825141223772892016141122130065391834600149828635237047177243774972159468931908935160501077434427163846250462541953200711248613723252022284835774159567131786695862521023092863456438035492413869557636418394399538120704956915611134416930739641990640073657781103999440293038594959353860009424786788234896199869921738199567297416737689545711706328373244173075352079521680922795641023897877559770047399889901751292462414988362975692819167830769415934792845546815017441404848794437219265130441670362349763561115985561747648687994957177435766374816131360740310036568930409195603384827276727095623943652321545691176344440113132483612390408433203946567456098406805441204370835904691110160556745201836380742840820843811798901998848751282884331958733243816777631021316381821966915039089115896033487712294499472666570104712000401484360405113133972444527498746717087203590790755206381105948879728979831842824647597554349824989138349193874643192080756076586942134310923581756913813792471056057225252622869791369296357155804423395038754006228962296979257540445379860705982541313099256999184282943123078127766247608243047811029736583561315999150295824051877462057104704854552505991776091614586697690974166439816936767726743131249790691036825999538893656142083533458353598601898858154935981401285836278506888546096019054929265806131393217597354036547490422427912816862565034319735937718430892672736985539000287671524351137304284956533245996239932821308347760946556120301746633806840995019633490889443806805189767623484862794598082708432279725471919246923414664092882603110304216000321352155157010782304766325551432233642534077664079890737217182325821814722767461791090813006320910821759273619367594073538306040676472521489763764145280106268918016826848548697721777454355724836111458241793678220518808373857837932069697684525518698860099579318794952568883518281220523819825648574497563698962115084083628286530395110902561568968221461586400678872990317344165053474884472819437677688928945045781630737510684906552245476689170854845190824039714000856374133680378452237671357987857261612763539646991208610497714845719618205015498117911993799527491171209768881815064384947799219187932733976946840728638730293254810937385459406766839417380436427624337665102910885752275284636066239044385785326218030013170022705849656392075551935960855257268481997040239765961602327019628710466328202143764410001830334689698968411095451878654786476859967222575546528110439864068463025402953919513695846707018243448200911036667706104983276757182512818832679312579858213720911368259381635386131143684195232624822572327060029667141562479961170929243501125882110187758023803587729614292083009123541200221692117711779024424161887074986251688958472888355823960341436432816192925823318090172839387582295444772193386846640777706146969218885380559712342262239001004856694197463917175874918381967344795139783780811444043956295400679978028810772746069313042107978063244487268772459306310994179298060423085970194821998314322868046903486332357550802845715864793956875511464272144137137886696192088165956941094865646066532587858454356730406288680377806936456245141319155441533641708299508995713298254630027750241648169372700248431049785844216622990008823131820624792441334812504409706536778643632637705391494885364200779291350875199318938270245483956760210788176311243897868192059250004805592604093837675696392976715416270316380278400934759083082971192022125804215845760649183820611737102426410072689995910782888461357109777592520532917120872002167726281511891429729864191409086544566052942716501972134099363480306042849533285204543384628722866958598233624108958675054311602990364524902730069655623626368592272903707248445326485083593872070991630129715754450965803530543232051305599544231059008598498364038340550515097523417920906427772466645252327031258745903181741114808208554188663817270345026170548479285478175165102074548078780390814290583371119999874093182034420256873460520988563579980213997185385218793725851452258023406453925702752034735503916208599717759784440756629279102348300042391137094588570216175575295389529512173203423986622433983506277208608443720702724626899470372342198343972314451047799686265967506857780178663007094716078414420201163774198144058172721387932355823181141556835596154397814883289787848849890893674011672518950771951290106608846540040731087623877449560246218878231495027941727594724696080974069779618377142356236864578044246367983552797169772828719886536314008539329642752331799769546634308448355165306911777439969955845846266391018866481776651318793145627165542411875775319089130402009889891260556402761044780556623416892979712625679954592952389705268700037752691010783860257934141384938071089658146169812931231608111085217535338518679151876161341531062598494264339159812731523118916444466937424069685251559918790319972586026966065508901937289662587957100590997369625694764596310215122893366061163257134048019252824213681833822537423753327500453891903577733963125197293502758528900235409649339422795240315436632611809055789974242760954480074749436782752270897138327210975951576178782344301066353068236260008485824237194746336932040429599978600658014457829246093615162003096602749211181143641030395621520850286925306970095174018054800219622041143545174428089934278054504871349110035986470911867145736377879291300568584664846129731614610800673709853039679253187609879752996311043867865341660377598841741420574849879691851923461655173762178404572103650833964790958240763860443936271671034785906161245867800111395189643018293577355732681282430399759960962844324367420678082897705170127070991228168016348685301378798123177403621274806506836669513052031607092348956324242010857708545344660654579621508116300376978014748597392272751644625611591239793860530236338969020341803586563763970596266976307236227450837632217255724718566800108947032587868481938214054590485041978013383455211194478947412609538424195623739354465391092125057665478900693961689483703220517321896014639343598577599271536647451884604572816394188567355357625808336053105181609782954369045641745810289252796160803844874963146174129333169972332536971846711846423155231238829889772276839195521518881938135110154061846858822884447505527506744624731487402844260037545836171034479251198192613505100330981287036548626062067244847951594608450254985913227657376307669600617035275069638498993253317381858909383366763028130076993064977245446964783624570717919729626493986392591242609331201224805123370691936490720380271144948080846284274594803797042403655293837038191759010172226956068168003387208440615960382364080163060486836460310864282495552578078692412399676970799701346856862356572405110367047246151673390485364147762539958270935001159562969699705445953527950415706030152187332556555444616548565079896488775812593481383906043760525972013270665725658993973536052967112813723167612873167221821457946165835588242220521106605990017865240322690955231141981332836033732469108931437914041284215251813486921313407792904027094302922221741532442462238424753639076444270577218177292980212798610428509642575365946583955600459611290266977283470647910806678712150324912683091268427524448461922994853035729094360938080612836038185152945236792278487961092665456840690559207308933588718460377848594975658189872584124022846125427597801875771042128813887207573563416116157454180487186276251113133117186786570044853399917867755326110540754050809700304130027725913746630089805988883798419523788347120577120346216162773246590748590437296293720191261182338175568349568415876098661090794416845891858134493375230123148415280342817267609288532536283069366987954726448350535872204216998408147607088394885359477416587917291336195885438003926553087568277727590969280824413685099894390540661051744437733170751518390452498726738500179245747272387188568834043198583623915662654104319804091542485024384547522386883593704749728355579844303510054766145154749052028101373808774373384928327205736147601593352004342847636765600999991930694301764772368247091954915511561136322907176873921279610188814464259445204626576070151785215434392076128893382938639482405180907554014705775445417287271319976695318274530469777222884384259808351893981216067899380915317453945143962471714579978109793458897546737701770482440369590139350159909660932662317239767921471307683140985605331113424179554197547651316815559517227308840917124766699765468992020264943396173701786843423518421730117438091494783156015885123372196552848400227557933257077318051563102691127222258240590334058947915694711449802654081763471552816769562422694321520087717698025332100376415563284055369672135852951504291324693877873605364447055805652906163949642259881564337699862803323476269428725922212184626416223246782208741340772339699883162500756786817126601224218215518168506686369269130759318626946448825426082908333020935381329644626880008948572175932424728553508027346072924893238259057248089361639753324783822219798803492640143580891923537721990890658244877412085719890482894401336604385792241498462828365000816586485244665286269700404131532103102225014944553611898031736217509054888691221042788337525245736160773881793625773351359421509009012563418857797791149758129823547247874976901341466008376843459479302871424429885210121563014152706384467658150419367214387190821391461840642884883736572786310877287930964963109614251280884591173198594638604793330042539410005765695845402644619021578889765402619950403683290583898329542990746649374573809024295093149546086011862748199221096275326986857954027499711288092965707174872953588908261577643974303783816546790560572319904984190729062402602139985353055290028688816577448067605330826720901833832992955016240726335371716438269287604095546721648870020101120469830837585527506803466704993882897598966500142738195882105345634267958782929739949553603271365497470689914969607560794209571330213755184239638462202689801163270896412900919022627503598501214741197652146223407971360038373433449536189010591161187858535606414431817643191080828184321347495615671838723382823996627566637655576390485913579672422206423529405671357025304658660597789378254710103987441148469874036015966834908908041474971158827745187359542220005831341879038804475215367472122044748247247642506271057088199893916045450126604720712612134693635676027732545400393908894116058210823238860748956662263128424153480804358708140239833108886015252279245246930536541944658636657397965871207278686693788716588865804983936357843595906915680633752963975823029695187619881994912772396586784738523824809478485436782995030866778720287732980170448649365847844619599141827070114072781449154666221070614930429959295403775820569851780825741284150351031350920870450879392008256810888775384473567679280380189962599926295614513916365324425268666929678142767988529507267698118320923802355312691539326451273364877403624029352548676620461331187058076597974307855659673372045732306858395981585210414580095489987356935222647042825959368499151709837697239442737878410765906175734792220404453238470246830951092502232512852162616915691217122256389683301442510588712372134115655673078966056668823688335406975952646013444447506589580152271719026045707340761673565469979952632711737820697625288550411705064899934402203905456709112686415799974808917850530698271386421501862286682519510804902453326726103936694463731046612552892680011953013723364620856970301683958482566994120884393341410848196667472966352942600636701617723059625207130867041449698940108456821803399123654535226132596475701448237648334191486004296312981684398350040006960357176890683296244270776579253316026309226366512816035354284288996045233088429677293889120225388083933241508061199946408373185911661986706605430760804638892243307807216114697246663834734252784761834774144728312514848037524698003432956748150311018432174227174480999367789837191693233469629785027769786898439578982567555194468704445137801431362939437577674962409557438516488450992430740610124690425811283440317260056351545242793468590957587480261559236968575056825982387931855531263773594816180166286940505333447863986243234186063895354305362631679474578319568503033347879395868291333815172034902717374457652131693556465613082353323337500472116281717601712208144169434833205515667494219845023523614061788473571426443301598236658200761543537763299788078310872831094785261895877422425318061267859849484310708485281190142498753018414102600780150282155837838743416417235047302342870796383312418201069675196650269511244385779208206586308029526920570688831229531018968163500052513544314864633700209952852975532890016604432774058843756461506360328178991638756686144424526624957207621110819541565338772048627323399013255498448425631520007144812719913507674197674255040050784499285083774927206714948530474601500312470012938076771322043006852087079989190558590319413627500005561978642947496459042109787377112766481309111779064225796556962642934112833335245451186876743942099424931944493327505095421662637844412072781631279606634851705234131473984832661639344884936303073729575744322199131122652427028503889907650374181163551844370162416556106377702477808930787130282954140558910700422493838537670667058249865750201660034609682878019403232555068938478948886930507635538527838117497474045859663312274760189774345315680530797694334181510259623662765561990663364767044613524327202360607868783710942522992193615507662430422331166777660778468625754141461977197594530739588877827656310166784680376116925571640557225579569659497985572431405639195815641110894285880219615720740875281361684472964851175602825952765690593906574167746022859263835207209002123178351546926353535982414083873208546350055622864230486373194343284574886814939352150374095689083739344408132372972957588728416453928250011066640927371393485028435229747820395132800572990203819069644928911110115970646469070748817283276244406011734718365581370568083558775894972538281511104019386666049979153468219564731304177100255962586997259695731140405214975583220002427305124171800794833382428556600298570594917769685401077396400724774082845020505797795884139988886853440276380611374235817817538823248511554188912633094688768059339665052746435461602624680269730666903753916104387977785541786061660600161479072987682110069623599575833300726897022386861513998385184205040364979583012556958749642884277946226404461756102396384174177142743160308064125161220991853383529586077139406182101257211378084116274575727134842724116610045904230654354136699139164863590917936137318158274027872278763013500921814934547134456005712472979220584187903254030667623168672646315606219167789757732919964031064941504007000243392666766486368934505044769215398273891569744440136515259061890215596645094702372532065113077882618911446527456678909486339642827130656777565645504211845005651496623689858876657726290428390113823859172952450873795383758205358031311437765286324881868210134058336737186388673826925729353256237397279888234124078301179740329569526955829037545582711225432930575096195380042034223307813225860986991234650446677005768253387217861790036574764513599470679077827704231568630380099699861572608983153549867606486849863390285014712828510324007072042894043780949363338903893514911632577420453943234352895765853989739928739525051679158054474960313955899728602170006799656457402196774077829829064278835832173191171439925497091104150088946252744463709930121768485539328829452680087624943432555885636051315529741175554648085111290999351888150537179880345560699804104055357115129910324875773849061821040665487960300640695474310062867233723825685251099568437684472367245821377884367704857674859567398845473595395721529656955528122847588709729385597503701533956865235471459515874656978542444834880161877157154497577999424384771148433781374292838333049171164700900215400317142376204015672152667752206400917056517276270843842560492545895334077434549310712308622194602007064761368979812346549002772300827765270509642798253360582611086173349021985075715694358770442195781962402004007054514118863340921896707501329201417804629529378695574932532427810482105413606531604167407195038689444091639144323382495462365951579824611911131618529036475310261166478765454902738268100511610768894065808184306677456941971485311621288029912571451320887403210542653664406121445665644470473878175408989031475295263886175994438543953394140092785659463721304074876726889415175732903033679051144938758345701467465122890480106516100086848884169716798620012259022521548783888809649260259110976586890919703964989374444339348195343844007463236384850354015089471705685797504912672444353888195353091048254208518239271366685859585717578527451252024584635743716034062876495578354308361513969529116191357384366044357244466377250047337287044290837405474516989000114946124708204780036295532882169587180849982928726461545325721995538631741441697575342769506520662500864853554087342737362259142124935949120337646867796407561220289514752451390482200369649018004431391731571079851074340562850297577023175749309268411213993582623950689949731639399211485350010634308926328993511607813682976758922431974286833320530741141043580087469272197852226807048336566583119991845388184925475168872043740542914371267548772309193982142489498327107486967965755076053672226279503976604955545157418388895188675691590062133384867942708182825461854513872319638128143389882039421049131556621614395681642777111730025133485214162332263918394897968239626978506693629323941036641522696970796302607550886303893260416798997498498172324203421656208268978572840939965134033443138175099362455139532335789632618691209686043849730064278308533966616236145804564038367950353707032474799215478976441768720998204534996599183489550138174872271568128253284734047574172674234211724973199495513470969382258810836922536106213316058035584338540518608830780664209045910526296417729475409383870971491037977685869904029406477979144506189248827270957042118292709681954295447821519636354548111943299990030657885905354477258704355452215138297891112441432052463082709701664898699240892139303070466475441548076489526753717390572932926303490863648874338092597730573365188662004403315537468260707963041117897387780878916292528635361590666295897810968858550293594655266328118819404716213794225659160530672507505317718426289360458087829458671647548499718152791457906466106149357612184666419595418576874355174056938172887811189602969627362506047501537815153675014268615541052969830757458152656432858891153484090860541085325600851753021104097820142529621087129606329570439807209686105009411555512428934401992856627299895621675144002883037620138842315870999459645762163689603807081842136628129907515688008381869633665272710916438736809523122735023227567354059026939422205532920976100936304241867944606793965769792455490409347584619882021031055514272754628634851156527414845278930068118807215953535948813118750910856818343694772826993887095035958244830258615541694856592902973044289700097056687763868643708610787087044861721143670196083586797574987758614578102248664441024305459345552943790678602595857984720148161847656156503900185728901516855064054660271804399806306644073395977548554914665675023836686466529573603651287649190049341858613678190992222720565819833540440649117025837112593517515342027793030497564107150427226970223953620865555530010869100243161272013501546386101880881126814327327292641233045189306287240731494162723546600553631091881307539426864475820224574598336545749531419336626132583450340975444572340083041662684129441675146140514127656846100826063604634739934383203807358233009375030328812929954215710269184716506469801148880237282952537932848335045634313330970533426853906163516922789844712130905348201050961554257373191836860925671109029264556940324816420434853681725817128264550637706997733209554248047279867192033303223265899223120187603034776170553564876943116934322824084058688250050789747305043994279486798635318364805608914002674869294284519944259138530867812749737224719181275292155945147821888393850770106722647098261358023419298597703391702399333616317206942940499035008066580628129081729547814116641401704696567043995047117370215487213765184088864885652988553222666906416039262501922918817869642413193301799666410846465800612928761078223510419727256639852347642974724327006539728922005862804401027560726713242335082958596905973326005130034392180232230219332323929164725452522435626039734514604008300499908999513438727871805087097436698206120877921829748410319356790425774541308046220655090521966916339529359169041007358850290282297010973093032447200219144520160154609941515536855393812423753648520748303420008729689089210495834201590745598043012286864040033970181611682863634485106093732486157713409928723666954014019869956859551433671472528338257063478396584986873513457429712416646109553095116476431497499110167118012577256401896041046730222260559696278097318968711397327455158515394006365510332041203641009889991566541126464321417506129295384762946482248348464889747991026482091426042389265903957684408303951594854530655760800176731394460342788807983232647964111808737161534496712714971011697776127932404249454470979909384657973703070872000506545157161175417950603261837233473138936054301792347699037360121079394872118349446366958361156044282825980731049864269263291708870805294515124144548445657854322132460994356441018931318058385481052026634066529994202173960110433266495361499976103236559479348868284035254678310507883230217121695810067781571825042910683374083082843006163688007745535242334111687368890207420124965191527544557790127693664643488443836938292851258036443687778269631450613515922931091228560743066563751367783954150779855725160203485431715745731222985338024890567831455733349139116977686032074726912805023211543493413198547984937146944872288074431934798220570791525732694200589002218246986151215372041115037214576726733556075522950846696125057571020457541311608058666862663252614982062030035163733574162902337137366777199663800359329459415471549649773194618071965717966135324511117247602052277342967198092972238518037841490035763349495725366037204986452897759737369583518952412171998973846467437665938754045696412335976252847643872506769037137832680945631846580579365742973383588441435168210233045404256052291664429766087041351725612292405849117850434538442450976361323407492521991541273048051855027367856841378312992254899505136381861051831242885677554814370211610025882939917423687022856185005099857493044868303527441256872890249182577678053958628584903547579264847650906184285637704836967084530152746676472703252695114454310785215518781603418579259370828709358520566844493794179002262470238844406787816139043132096052694680432133567567943148528689710261301383029715211444338782275534697147100006712788214646688838036767834269672326202750777603220189457757285093178024772497236218008168686482683114221916551674191320053989007512119603524451162624278822185953948726081789821855239945613210000079546445775342401644031496330241533548831993327403744814152795360012842590086002840196900340899224507602244033385600487337700274903832356630822845412047325126312934166105674785060269115121744841819349097799717366798517283544542476353559356144498400018536011040490396320582168400846287587476459602893621212858563790155765156201435135389501073752407289790839095532866662945023072357206364426395009719594222669178104725192088240013529492282103835162052746566217395288849948950195430988288662742858103388889524404158506093379342194654769312242758752735201880331313409120305376735215181733639544733399605716362326734565762124843596059056119689418030372406093092430725969314250628471337832023078640476761492316499640935220177103483161402374006656697513607485513843037274368700577996250635855884033618381056297020281828489731152589097282842522219733399341640243382538877141426874652610929542826740634554308946699065364526116682477085680856302768544691129278248688650023351409958499642186285592866967889822839255752029202346338035746089523042170790278824165774997092893732000467655333637900594272535882592515081756069495169232604938995039171249522104726782308567928656503372139178739377076496027900555332883647207508135544742685214111593965411785588647618743983587490475728861743511870850326137362152676099814067503924813293200545542121604485243170662533463184677213950700225713108726668830746201239225043805805959597494649270137761490313706742307507568863469176600283642780215777575867372599142886424995920559726198535564770696013810029856148332965936004988294238621638875379002933245785992081241447439491695832111403183023567641305824162524027315439341350682906202767942907225438717804356542781247864919263086079300747371581281346967741667887526268129281367376816590882896630417750469687220271650482907195782796718810081245719034894589266768453531057258214539472970658950666447067886154198161046695267103091236073554220938849562186701135798569119485236608461194785689109093598309995516758063111578588474460673744917977050170762257249670451251776357291261922993265960078545000899451144358352619055964182140975501554299494458147078763062354101912886953254555433587178224288229233318925309843986173294045149080805548444660990602502633885015218933926857524972435655147408900174394460063818586620838873990132450761673630046573015288938436118078827831621454977109500433100217805170400137917113130740630741874667272186763301007231505556757019261429659428704252543366068734200287446437971037592104348203807011245249145845268572480776836249957155688655729580327197448804507488253037932449201143927160356169323783940070618058206301309702448726882878544749638991889965275330387599090914616178003744197428210825519047208441029833286477740783829700082286440914325577178695072465421248186496592157464283859717877436645266318963240480004820167867035215208229787750357080709564972322712398243095258133082752389170443008351297396422969394164700535094620099581649612560431447129454526998779899231083196032441441506346027699374635145146689642199244848080157485273987903098045942747498946826938603924955824642242266057124963866845234565485511894493673574607747264280680877988319621930779363156938504720167223446537670656387695216928033848341838949976487276883317809843430264402619546782371362043942309088374318425455928683080986158742818363998259059333370989901018198900997426723116131990737391755449046637905357880142850722364725811921209266845066214495134664591590485630108538090795778756889549119914811676465286828857326069897794708173728418620837783639997170383867487136694527071181196354097095629302089983032770986735428631547699086447780439482714279069290744450257878583930746242978048097825565583577569159104969505184955545579319369580850769438386236070767024905191095178849658721246863171913690091897136087245821483828800977181612399201048167995497215722579052156175328353140238951120481274921189104708757821499218754578978566933511223007062946975597338302459435335203193783228895370029019835483739203622130652799084238936875963684082443045307248153403679126677564118332136415831398720363637238915862757139482843148605826175713837039891619201678948244400919886894549405920679095607054234699048572996364511053043720277149199656550638818617569126363846797223730113210444863626104006890493993709084301973873329929668787166223345105084115029864699539034255528232077391718390670109389434438121464879469941585574903137869586894033611894894917481455184782959582915192639257666311100889146836182943485869293466989301316316398688886456208397754077974770833747197545846109153128042379501584435624919920665386907913691916905827459691548563658699604134758026849893347162438600743466716332508348185425199812595355821081329052693819584614875310303599947719942989046821513379029998980354590109693234434194839792544387588499033620779716963727877416205605497945203705240926345729565847346363752275212958496575931026892109153174338171353445471306730952214573361565483995736015295421946358124106008886205317560946475240428956691933407137664124395909569719543905496535811822444102347373199143257202989658380702105560872683536652105640720491162664194178124086029254842509446790093420236805507477809262526570589759226510755999632399867077736874373477981063312144525520162845578199442854484486141381181589611051013400936499847209971760628305438689111592199905712217504277743565896398279088007551106429103105034221197859998281797418611548359691493358143286139136316292542451588366800855455401188002559205046820091750503777199212779312325236665969879462180028040791019963971054742087565180595432229775469681114262563663360485785606594196388533415405419730308610583811002932108126323084435857519343217425421910358048786974109880851465565243286221580987910256131935452673202111249055805069270100885304960699535332480250257032927733959217058041033737396747503104702806241505903788415584972402397306649467401413288927148265170916876552445762808264768955195631605253265546417839532877521059070467242844302280342403681965280392920663199852252859600374529729638722794636757208365376597939278267366294879338407328295330847876000603728728137046482964664388303107734211702294005993446877064783400988674350408492806497837605168038194945763543977361902986515910576521646990335631538834350249140665897378332623918572100811356076207373090164524324236050385814631880666221181823583960239754584718743607523866560302466252639007487725582965923598284674744108308524899809676351410026126043987583413090318996280853923067933184459936993394441669724965632312917929130285047196615615771087615022400136504889103274508829209610282138802979043576265563428251341819033354348104684241196197836219799184924287899502606332958281725598305674782067213027161030982788571741338523665195018982745070371739811829637064863405324791749248023191705778116685921756417554182732847991964331155993752317669805121344141064145484793809140190514520816713622265712235024244828889440970014092867559290991403448230237693310024931704309116826631132830254045969242869447351170176885536666259683699772038083494884374813623840588898268867311346876034355133069009513296381925648440864624490291947869018155140911930138617267801068716884082660503504653114464350975104555303553139788230350820384943816220159645471368170728585223896148579474671673777386336883819885337754955215471647396979088186183693669655159282760539404203606380606073322847176709430886310124058780769569306025945336658054086531233656883267819312032830933778049638482466242286891154201212558092124665324460960473301589669218188744610224586394685820935322986093895153656467026476488968169925069421420212586420625604126423010725596054271013376618788004581517636537898691202116993667690488686211551633485046421582489909124735855746739986430424646122293112894453639526238357447190644450814183156646644160491620596983690773892549908871137829640741011276001600897206315426228499938302261636613312111213479829175016049272543181048095948073907303050495621795885973672670744704325590662242922060902269790562015563902436556398378307253193049529307076085101323055080192356188490142530186673636775793079596948842515564786316725434968690133182635871684356285573233823304467949578121577286764342414780344740070788069995651960368276068302268852757256387078340760473798010677686407085713386007152406736897859493660419091282267532066930416736148451127011945944835945920092436080451169071332845754511879822312042348518305194507216859172961566681819089478352199422757872694867970712845465345261396418825367036027383885288838091451656712643092394060432671828955534962846011549567232459279426936059329410946776054255736393265329708230172614107439329798600758453702385317474949666030896081018480746868461872286027358681545900741716909320332647035434029481003937085590914175268003582508866838287398090318665508292423826768932587608943573876688692386517222392799198476652464087767334946189149990946016010918399354799277488803060532096123720837082402634817161485953338915337868712955257611430966438096753283760444983768259680970134102369035919173876451270425173154000324892634325560943878363015977279878122566134816674874862178994855452260795912433617294368690732790573841850803860623436478471378322443934472795642643900113888688131681922103668582900733680279421843306648528229317792734723763568097347288251232468586739603633873008912515904547117051412080223532110548520283477535073885538324977639079753140616142327869093537806626979382602901869166086459186408132237037040711819466129734395221738588992612936844751376208188478870854372144775928561030444916645671305558251236439206858409420219620723664239951980963675653983707258562555644257248553824121184457501159212413546594931852407653520223653943711168606509120581808901930756721350328534267371049205287059375588472299734581691180310287518757917588249459416204245154338677071122345213890606281607411714618039456048006815553714188557585609102755318102944808097753338579758375135932820415092955301306427195928460432365688354493927590304975335486196200667226051377658344974640292287143017231202244466601124739378643113627198736095138511012354639406461148945837373771527686882352100274166963289239957324450813185821553501644632342878978248634863735803542361992391962591563361223385273873862552668057217307565780983904784671360535057081668105164664677274988956418535109169037143590567754823640848371101485989118428995746380351711359774012292202424729102413364127107235976445015903271647147076250667519575358971354673093170138269222573852944421199312634271226342023218817189086785187663203903704404523497875651760094532872150370647191772017078076807098124851700190136448957449085538154287826407575665600879761622538234575332517742649026411414176919053483231240718107553610268273560480253460613395674029930522669468521718906723484967824714769403495642251708250011562788930219372402549995376016354534773571261063613056074574167217640604008159946002959969722661981555704292755641028354601425324847644239455727172275323178722165813005156515003701276021340949700047039257386722795313745139336201640940661618283154302523861306044215418907418510263975523954416265958496226246429740654995094338540802645049817559689023109285442539934236234597705965159767762430624593199964817561641806407578190595651737468600616044843027073122150563539174073409498220130696216341621731696989458071254257536378284219051263366976615015041795887805201460674519834239582831666143939530528604842271731515347155483842490470238893257052989675180582420034502572602161195413682611800078755368084914518551313171187183963470130555235734928120481248204710977594787010404255598873456016444324994572665698484515066826994703289829453705838637066478698120986215853370565943518296869856976862135108006758115195642670189537403605044956861105354619757607567692904530404868041166894615744734997054707316524369212374923693226788924224342268789315082945537744293105708337329905238300178031558158147500365431608219433259907337743733844533534823731392270325978939449370468412986017240100724407817510095477909421658892546161539746935481853379413304924387977221874711303180920095846371140647009475636067132105822287344157403476514099805707496043006940250966748563991285997447966616069061093528103287303075038371883901138651824617695143975381381216179990937861323532487804352701593243402081487745785097395449829438067522624952215861267508235632811662154773287522558347811286138219607363618321418216139184656089273318864598386032784861961926544969670035898713752016855494272529832838866888357182342131357838275862990696249439238631036189942412613780405431233024946146641960993844791837590611708223208665308784482305744142537795860323189953476756480966789744621838941708972061242496809449219037895680516718248038010478266543463587486938152797812103547726130495213858233102241478792769904216611809587404049523278474097460371506320810187137139271035756424922525856758327104216112596738856846241824192298399320680930438526463609568469732450221676111204612690793455483799403528607131477740711791315441531405159943582007763992288686974974005756302518986953122467458178895452242047375444782308265791619806441385810040950261936130504423257657595420804831738332297988189389490128325425395203013618553727439295856241602231218057339684236911919432572760255658420157649393870381763034747619503793369733150305722289987500508907872317143047514901373030697639973659976104944071692236830329973184407178786247587466239920676988178812643179786476052689219382482728954275290775172476921772821151188547019584404593666490857898090963141701575072078583802259727665379948182360831746356182605174849161608859596374230190241833787889298823426656671932447422849436994353614925987880717547658793035737592586819848762222581332745846249884646822550752887073316180490807251420333620508784050033676259566328361856609785462975922129487944934193710262761621478679344661795446120309164774877440923403967647361523079332886691295342558082935134197744913472398126436323961922609877319912512200780248585636479663689339663822846498333213921912336820913053691373149210705474541206260755554836672847088067264790991512586286603337256312231712483050119376740158310510137593975273606084603547829696047351452596647625249268886259740416684038515972850736386572032578698739785244962427771819480291670041733171087376603171880880490170089930048886643203848362123564825167366180443124596816545842935826865874643779501011917132879956258800136526321112290127892989553151514133833287341522781710368161070571478215592928248743314433592609860405929120466923856629155530336179859491859214666263217417859256410506737426781812722667702383573073739176936140213253493715977514377943184699596041086105084239657306167798214511531136046274988159703266619952363007303728224724022185825937152973399237522717637343056112761149637362417273133775212911768713863848000593875842130773095235108704302794765647826096582236589927469099280296633449861571390422584327185008234002756940340682032199427388090425721081245369847456112097456651308511006456677738497007897076068493604340754173488055241385599811422380371265621771733585211986370055137564325674012836942255641430586661428239235500311599034904103851861274613696508604319653758537275808997375421460017112705921974573390522539398747223085559619605245108502403089659286273547566386499049382520668373539198552485502411886573441121149714299350563733130571474113684853303807686964180256898677822608433400717431019019848464927391537812018438332364936676998341191447012248349304814454476841013325544400654900555567133389431856262908871653873361262970189412185258532995273731767964722452212078749058735544690707475729854303244052514147697152708709247200807730133894742555908564439963336749235088836373687527108777582626002579616914367375140030646526649506081670035414302915811661691735686135179660681066438123408157947577695963346343389539411482526626644178973414008125771483192533467581502448548640330283090671296368625104698350332652169684742167488334903565851725914803791200397147675373016454203497097638828018717306565339637244126966828722056031249813727172494415995357623443731054612244527670074999720287594276153244006177670482971084235479940248569919363335534442350422354290589142394761404485455047120984976918662807399674768154957188224224033935524677368155346661238337072685354001178203932044345541082223855238252442035968678016766327941984273994530223658356523567440847539436897229768270632196712223957315075600054293328956962848804585855036339290487653829120595567550357398911908276837612296810141658696040101205567706141440322973705645174982643551871679058103714926693119509034957619181985387198570455081684473287379555093240400380476082416186434562740859597363234991435152813554575696429583101972076278895964158781352631584000660997074700676824788205991147941951316938807986513222959720426105581548103379489978230129035674652160788349115732212071482303294673805024095388408481412256622226147249333610218608471652600605004300860152905440849754844283001651851058579246052824688874298362552888527498938380239014301376253741140822265118745269973769078143102096459971438050745735085147602385813036599519108553602773421850145484176619427268090494755668595562355010653906044309284151724300453650424683482060109588592756978819021433639415082140996213339185635518654624096808154231531175240936003708944328575612810660808701936988679606114754445568552940993988224755024653201518355729863473723762515714684702701676734816933939797866275641461951688552909401606410776415159036277686548015727841405080666317690426700206631271157023538764335826827360162116622316754653057943859104560347117633822844655489135079679300374175808192444734285879342703485126467153117505928374914258261637093877729720675481610021108544056713483242752710265138958782612861141088966462459274862172353602806231744518515075939229812635306831931899208115909886637869162194648410057401672134886042742137616852271414096783616136690778613362686661658197423902076511503073945763274469838243658973795276671382103266127282164943591437381472371548879038076180809822323101451077400955788940900347231370192830177052227183308664420945022579022731450133305253132590605266424142589465058740043271332021726927397838001327518524157267057870803965392572075320177444835620666705209769784632926226255967428468171736803699929849799969812178448991132719995254414348922034555177478144985451762182150080690967676325501485484908210210926071688419334866502095635010578241386699876712602180913692921816459476397800127452944537245391924295035494788101946264658794985670364624431632931620805746535720590839271376575534347430026129533725026997722107002240353517799719924899551912325734825225681380048955357526508181728886073144441346424543561684776660697941083002485534370485213691469617806518839344088276067714354942783051273688783585983788260764543143867714403372730723240070794181197993705824830113001497480271885477883057118806036232001241162115245347813848300670485588935975996574464898631595262406931822442692681963258185931138796396650558379177251945867257701145786473325899622890072048269133222492617596349815587723904058833659595289734626803132187238310366296046768883120724571667048768044167518273271243179919263144315216276456197641499886770575472472715619121368044214728005355233271433915045486819572252278902658490772844127740640539165284139492675135508181712338754005405260084440124013074698957363890112260855684104176234287631269934563141277760682818707933092704592696082165903123400634905756555498117973500992664650373746184064738686802160756747631891269161190872275013271830450113743878941177293018556334614241404759886854241947763855841248774555789228163492186823922253129407770307325666751942390256290318456869464213543813294226539093117732547043297640485819886414434304300141569719415997098464327850480521824577320175640351886464613166679898839477199056954389099212976304475415126925368061785415540721703486276299803719501376547037038185500725717037452521382503511916804993387351831654069723441594833822450607341783945887671055534354073675372231807813909315004752649012558985778300421375761445960858379900854496994517255527725738579247630066486980920468680321678039493419942997779483992899869794650221662232902696665804919452959740497836600227208002640525537818680786899494922741130648582803040520572943069347704709249545570947306775355486484807727332973738584982935140525840564979520760112994578105723528688987566957240310201097226874355324758213127824258807369307057657607713369479468764525026385770688751283968301503586829128113460802718326968485220006966220330165209469981039082936784433984119520102483931966895199653092288074949532241640590914036749580895162612216061846717654593432584920932849365378404901587608839570285591830614344226427994366123263098812011531832134645548398341045591879420160679910950488744366068409446545074287931894268295841665361872487446095496361958748506870031211997225946191920513461601706121677960497250298214501400867250340546675988536307151513837088264897698516707792028567714561830794097463720345380512002163682122496017260698647996888152131208603555183269662789254581217007168977731932903584822676012651020778926948174119436228293382724525842811737093374452283948430898428958886788716016506438073617372909542074482089439673781028353371726945674264645401782331469344404633362285238065409394604877567594782365101129531553980551009296840498178139494363827730253169865941299506983261788315790362171955165827271114777480871088130812763317249974202265029691840198019274135472324565937829990374171453350311998557669457825069798135311918109475965507837608298562570371632275166970199471855751365349795611601042122964693763343970828813810873895269174434894368886250302527785054425741074986363476828346835718662850563116534053629380004638214861051256911400821668261058875788704188809512708034632391736071377844610987130621575546749516653894598629040481167035771347945965166564016291875397085897469640883010239529342914830515529389827033203005660190696269679812334871599967092740135923007585116390463786939946345964308862178493216664204956102030707881116722503401259896482924610538762619086317498972784456313554487244303800901416689360145733679088275262068516599119108943314751923836022985419518707702392454305173966798057798871978688411854423027295033271045108776951488943604716371621653446292483753622414066461644912197755757043367577865934701043942113307699512751166102046339854741512516814837259304454747852111554917748733243649484958120937752059802553212970433531209435159062562686996873191573835066771098885199304368910046349627127976570248855288651250570473695631131840225458088583057003816321604388511631943630548402832897442040111702972641158962252892607036599031562441751266751347561183022596544935439449358067243114261737728785531829212762948162408925590232971034534351705897366819326491733699004587538618631980198465261127991180970638967219947100592872374420582298642197965987670875939747652963383728526453301081528586366160408397358943551510124909450686005320775145537516489404283621118805505401030655004713614976817635465869951562472692376535696578425732035243972716210479442832615263861328341987467906062086808139124573140607249317471530966435579836116758182643063679947287956071638242978173194606140673536529900131967699282927659799675877229728345737752729392399153474200911930900107324389047832089107958995113098055313452401320183817527980876252456608175729861386978899501618920569051794803464394959807984062878014822212638212819207005327955647225356227564587937580562625556658517991306557578034259898594064517902084819166072968956888249520124411484017958926898957905978925851278395545478434957281342109938449658343797885933167715710190004215516490546186635740826561497280470281501031387686004770614302806151677878020975662332979159452232337398859641422553435695935930226570758686337190214345355022369099839082444775594794081562061796704772666373151312281843762137142234403712653561612860490582553743744074522774628218269467781526247083361045711440610485875253089713593456747721639156276100107535955976910697100846841822229678707099289932524076039495912735490526667685210891699373331066874519155580139357956322552365541093449520965911552514774990235705993984034492253982303815176745765614977420086998039057721175717877715342856235322146731943162249300996294899777000657483423256558906149857129480974831874298930511242478095903812148381763489585142017381493980652979676434768112018741679699103909380401324834849132551472415949967489754448759007118129479567181153714662398596547782484254316609333771463806078149170702643112298322208196633614876459806423110259815143766699156811171583652825105299977390353566129655003291375699464969863501256939280477329511842426796229384488972099061323529021531317925514264916139505253943640928397854273301179713724491654402372060018569657005346609085067633742211755321025989594476428221707050303345529784984336590636962560602437903639515871661000158072093098572762368831223621245403272523029581261937607497194641364714643715156905183526549816444224485710819065456948051615218732286870536728022672233931793079836156098129830392242794991838945481403445131858507283623764050789331912309746185787978305233167736948961602121276865627105341031574844337944732493096148378879441841472134531874017218274612412104201368109669459639290408244356188411159102815641058153155367286863030870663728124978662642969188449158394990937989850566899059576678176453152814074065821127374003714012653951712882043578992901586514303125652245544535370556061892798555397055456813434467324533696156764191577038306098797841945587711960888651995374963540098294493934823685651322885310896239254817524833887260251642113625676397988575045166550009475591399181105570176140704566677703178068047350166285034738364827731406641102015626847785012451758508710818678422005751630209811429727661911765022771311615586343841710291320259000032089317935768047474893139721816505732925009017476111625491154838202028487388856552330099481689411970305729793206654073310308312171895881419472340309467804905245586262388074486785957409280605568059790509102534253928647402097300256837463048626171997124520527248249717493401354925006138176433523022115604191893593496393772130659938170113542174575704799331738445079282679951221057332348653631830931978576113912771653983310897002049792797158681649118669129836759288075762804745482506720681220722923113429903312444336600802948220620198599118940823352285585716656813347370201886536440455198374285097911488474977164748372673125142081500902120752715276561075368120076974445476501940974507033612825904920829878038493979134831031163020819803612833071358535476795272019137321398508276607242893878337739880930277923068938863755782792796327404588901411493338460976752471264323176708071506756161163622888112947362736621617192078335554870210788329726775206505801733227600824835524035994147895268010027879641453864574293538514671245460458933842610708230684248734140621343558293028039402269463674782973578237782024583054178093401211626292731789477296895975497804131198439691904061661029156624205973932004196745771550725106006738300670460668771465661563801829212693973888184491029109169220543928503625980771741508876920261752594186846156634624915835646059164389291606099676004735747457686146953236023629902396750456818179385136289757781227371435142448529231926447967220500881986894664098754343768376844164431472547160109554991392770516097125172248869365597143328549932119262312672301105380527961793953074088701864638372634225757072315916893741103553759833760656615186411674494770778885126607383121717113773765560112224520661853379679718266751767952568144686368685037205059846129990486391881372358287884646477306109425163566962268797102818171749752800804206918240864302324598431092900771123366433929603750152454137587135789032365277034298150285077623233443815479620200665567179978981841068648564175983299869161976756785175012858576031526389126505585131011036941770137664796322325969010796372208656453110672792921836188858090189183147624140448399957445211870135302256899079674508761055351941554738735064735597785459789039482815439566347726840231334328392237518865008212238485448493194775589619773464746049554713275783481519632461666953212465592600558085541187317472297272284736552427491424722398807613371628553532745422263213001727307962324487144923419784886330428835100256405708875810069132669189749220534337498642354844683206490836734343609064022676998328570541428084990010088000698067558396758807481904203783634502439724412844696846370311263520087775868704762313319900021476309075010208851387372069018049867120392590740974328840934287547094255352375096605539177653920093333599304128691043595051613435500010083577915818849753783065914779457958800280008751467327897711057089629293014044938325199914960430170340685639418876162012459707242842390010868178172905779484001799324535381650184173941019512402791481450812080110922899378685692371833581506608082936041951866406351377090728195572757276868131091672515503914117738001958780769840861419655233872001903859914938830725725721568454472057597956198080839696481801874542961115550895898493382615537162050483695991045105480703855374684440493734225528131502269805924270561910346781248969809851684076470811230588840650586015396678235834288281242969205517089248139196131647521645273881363005514578215165441570106144488438591854193002841948162567931370201380377990702167028479736814351341755167757534729268376843177155275635732557333085830265611595226383743959248230894876232449176598526823695702196858287192266226964318095883797811783094381456681430698872393521832741788846180079515427197010807376462108209969463431820684345442974684297496216078285687553900384162835139065992607124128424419782584830236389148053226244214076765459236172620319602379876366481859603663621248760274169181553341569752014834255936650982852252048393309946285853410087191035673560049685164480049833574338187267572051156625942461182720374702634802064406455210083836137672815523620473364425518915625355717086588182127719220621395209460015026540896043342626261414813850065030473738460226984275239661807963847315970881010725578793670356066232768745430703744061701348228613066520745512333900476953936444081994795738605799725398208894873459307123385635956649695901730551341381782681660004997025012424755310158836835296201310082373700405587264537035205607041936208611195491771720000661906671970006320792685173795566478683799716779266893219504632913376561624782202595066648913623067581072077174882105362225837140492610440691806732376968816959712786341103557037434023864592076252776334326022582405451383355835576120245357089860047941950607773584115977391872301811816032950983513596812039780031440553878602409652701202301861828257726241511275694616467720772548104570916343928136684899827131529825436994607911526677808431716137140140193728139772277074989677018242554514785993423799848599448082727298990355254000537046450565551956497249513104862291723076307576133936987617051721032377629835695543595934821532741336589277702070405020481332323873860048559463965987722992125840316816799172038954025082751322791847413749071132362543651234618030206307465201777158861868515613398266601236992825675539427301302599172424708218985990859478834382530183913735194195341567247639412798855735044483677917192093508015830830769612240815024322209320676636368091333279672439492893396270273486244867865402088585486554219629505337126069584041185592120398195098565913671132004294048512002428751836079099078918241884524996006955929450055330639953474438083423351150566670990035873637218187993587631219147586175140250792181428640198150709751937046951392003049198693720799763709713789280436127962055472357014570784623327185110346649453031577097377571190247721028874696965898697355346268339129941566153270880411716900099666511480864231901971629596807562906563496858493717155269150567751019892671972367798949201824896031573338510976410330566224672325376948897615393049534857617142377106708068891439783096711899871144956159902956360086491188154107545881526600755080081498827173795287081602549179506415754798241621167519367266361326030005646313849698722139135500771570306305687347520724567301363754611041814057566541471394921148610883972768617990019981790612658627517906894093748403751343016251819998485913282934310958049068918174182154012873030323566257666144923873987768401050789938492015977506385109232556061747059734129711225037873059795184465957276406480024847958506490362058505168732126385428416563086627394176177488157272667575805473860605345935757498508161486798928793335523008462255625474318002168312334358698332089376792017763773601866573660264216396680390556869469119900600956287884271204738122443727684267149238316112124464411565502266807444378942651965355617825045794415380317963932581569615219644785271807698368508922787776025543479406503609306718833185575731410444907762935355323842665016289442166168114671448235031446244877367268198784633991111927670726590637506478661333861314320259417673410514453533185455941768419302834859853187025550360285724127484241771724924656746290099635520410159562386271488569355461027888597199253784758569197892487990412257519705425159090270666901694635471733785090324252203368886329392610140203162302497996633449477339274182960333223999628551712189441058315577301423405586303367080226673288931363706112177040686983957809960490614015330463097127236683943637413781184310420763898899797423806054244458441972949614388522009633770894390043682294245652740825960679333384242254312692529591054355608044505263747907141588218975426289049198543689089973187723933477444836169993905786422164832749611269853424409257577754573140496778045849458894488001244490304384436692981095597780011176599841569100738825222013482383798324438401350952585601060757370144578226868035185452620342025468741774283096737375973678697247775670879673364191750731246801944831787972520460639572124222912759710945380459349764060542907850288675893969895650516768854258747192727053822424382791534050471376395341700461920634156788686607950234675876512803689490160384250789206081879102590096112154816142884620882205725585368804974048371825558840214829088367795710293991850359902933892139787570931618452071791918802329333406885305793842072509527633480524089452692108788425259241988193927053053741469328081480796867906571009378628292236997631629741659441444325315644169538883229820561244225245335310769622454506958853433850304411684609595862909221373480268449441754045147294725456344059210014086083197363275910216288141040343750358175023313955057551126913216675059267996239457368995028550671025048121328438861057289885306330071014684259924929145831123826774070967461630308232259448726274171802664257510362378500162142544117273149814632329137481071345449599434113903217687633806999114441009018171484639281447699982268023408516548826680675908144934268086278460356456811737671873749249956761460164782456073573798628478739558242325804361481272283132556391536084284493400420939581701451140850352634844431537827130830072889676925783936289094254056968356470733721972604799983697542605578884310441165995832198460694851211028029873576503338406254844352558776200662056704291266482015324430242466325879903948809822956237735100316736955611502935666501984931071108243424860253368759290660105709987288280646041448812384056137047012747688363467266914980946628069284891639933071450798427010941488332994753269193630999502568753179920886663529236193790550327647030695926310053472936382259045495764464267386109774381846819202813492000829639009084765342202568927832888725317081780137533043790685163278835388941606682390802944501238671474560601227025012087760011530243314622607993492773500911033122217111696935279902554045854846719340665517848704773231434638558084292368366639899265268845478306594618183273072758183686505177803029342743678075763631849232399504627103240686257035650143743260307815820572931576820033301099625125238149474075714993540546276451278812709178294647394607260917410599356566906728869245797659350145935596303410987085127346402644568599508324225827628436073276945837038642045024767261542688038448014745173103233834458093164034827432021794271607610095719087289230612398433339548353282688459590279611726049366887452413975164125069373376982841422048432325823425359568042025932964025549046099321820119821634514876758923210122900347555814536534208386193071864481336843543987034671372891850716953231082929448747341241521153255319497228117909724295419124592964882305543646821177301617667846659948691144351350520166944111324424362370968231902652738180756109002021517633693173685263330556528290176812362340960918514007330215245363698269642171643633694170415633399758076342446558646816751518098615837552836775032408309489256462557312498461456447799626603492278491245060592937002183799468023966116466064601889206932232420730577810978777281855142425514867119745333631230989412601066146489003559685136350555358539159523784632184528405681679669958011233413896665933429059775766812185197621990308584384201085996535296592853622130794981104955953899482211338231561554528560683482745788568294522217580948388007230413363511699667745848887385771633141475998703787170003706332895923365549657611732489596520232254414978126664171290271459044868731445697566684639801266484643256996689084836133582664404663891391912851529846447658870992335900382998905561396010330154658628040858151826702838176048136303751934731124620162707937341495641440358271306665278529711542655549770487391769219243584912397059430556867412321995995665171072935093317767254252829540045334220051168230614094136611152307502221106630677252100178596080862933865883067334343298305977592745047893914935926738712390751314019096225905715996379185959015307009791247652224765146229389006449369961216096566837629267050123459915551300800506217616297253476929287333868858940632518879871740830222419553144698521933376068953216268758870051041776454252246083244263896792294048220066506859761268357072462476877673681969836679576457687978522358254460932334413875712862519826498957744044568096260127391578076171262949896982819512166936146912615780453375123878654741444613946410365096358869287584774139964521410970985904411978988416559804072504575674957521658340685853301094600785577235416724075877033533342776625457290522271694880232797216556958764739780114583123237708522685665753028710425149311272298727053407684810287775097902097118597451002355896602797122583895480316094536924755302425252089612563901480148763624806516682057584615178892053949696442053304299381833085147859657933533717279135609753997914461859516731513281649678875977294472030026512385683712942639208878312939176110775691995035600927422025020385223069746342145411541707061300579446436498212687650480968000232988926381588360507590571328009448984280529308162211149184935220783656868616262443438335825864859274363026914136804341244176111904175639886658996620944364208213859393969157708193145588051479650247876458866749126199684415097177406932469861913172172374061395764626547949083449925169175454583469101491712791027170746292168239699009846542129753300900267234438036407498576173222123004978288794347029199250625677052690409635157014162679755597575532456642364509698971757428687958609650508980492807416705623546667842228293494944832168477713731317634624117623314505275800786490958420873681783546088757825344223554518787455014492633622093150216793486061958241293982242572437898160181054387856520463569750062239180572378685679066248885985721180073776787035718812915238846371562493504932706894111853785295787183796490061817493808772924219410974116880283834749950827069057475081216167357288299122057139068511793435517105329391133490485686034289806376496685413761956988732377278966926220848426796995953917937738103886749807747460490902138919105653357347977320741914417243421124118957850468095077323012933161110285782962070079324031641478277179849546457557385713571321123815000029487605754139422967787258863911298265080563787442285162384736647634702272764882519854327063278525463833740422885620167868912828810546247994387404129358074798906013892727024757859250868853070028791112352768206672709746027272900983498074022239922798756415346657508231249070528534129787701081210055229808713188386394906882625735061195317510488987352093264547262175304172970970639486731401067936773044693916304409260844108035552665599932084938682191316132210461294548814290390484044573351403379655826922909077400341931993111730748760784978734712900155675759386821080460769682621782169055814065828192078856785638469304768689725357606442080516121616229794733655850697902790005508187701023705597407865567986870272768761525200270673916608457491480255241522678899829433582522740499754548330997581864834480577537826661957321844057822223823112392833149200385903995862146797648824466364501814667071451991561269768047661708165946107504964829034479747351590157682824347032246954290810226428159235815020053139821233990362888863944163310816615200164044290838028370246508863683616702738413240186423157764339359253521941441346653255589465737108805164556268192195347973686852144985351229294458890190624387862444455982552016353223432762072652344840269176441499660370030193134785905063133159705932556767266655803832582054503339200378757176359380513760633288101444232707523034900195035009960388370732820684316948732404722448848370621665239644883593251827381595146078812717483208330140097506025048428723747972577042381084658961498361521590212652463486592235248054972838149651876667191124942998455980568177624418906504610657516038300101663942286033610488811610610365323718625112468813111738253981034564874522887677203420782707225411496148476639184687200296492382891431021749231187453936939048899937510908121103640928138707902744509282775044444776829087214036930112277126741040356046767862231460908452752669255423533902061941189357863545073659233045227349198269141134324003996616084753754729476808985437040507313183553259170570141959339275908235636847718129486237142716992646030298422201009042878472115388126165693836283473543166581592684145851827029599863783188071738814976814503773310705317961618206452409260835462204398851214186175390052867019277975609297513624709789104787703554803716137910602969097721518424570448712616351346902346852952705463795064424185395734102664149363841459072089487043978766112107396238797816768866979306043553301797796769556779185323691797376669198826371247488449023226478554970291260990392412916006726992671454837488748702431350984961797351226520391782237528535137430648067448737378245396049819161263407447391418844536230589323859145178817055394835069319011338928506662695650332911954852711782674882216967139838275652920528193996281816506432411141025428971153161343138388218559071730690570373233193990494168110116331836020181490158907391806003991809752256647308973658350752164121138905987453229443446092193675680987071127975498566889817037800344548498213706547708718833106000588171520929674648056567197445403570412092263254655322031050661757582070242219694164655841281224194823131419101063436974577390567660248582693538766018507237858612821592556878665552813339280275871414117354338581994749814143171919934047942085897413566693883019263943401148684816178700224835592918691950404183728479590211941035422376685281793718721240102477995558829864486886754374383637039364389076573096419369991349185691254715371567851143176862449735286706895330064855994891696274930789406142008155376610436332921076695685420429795907368998255737577285945115916328697029038849603473576914042741410334773928059307713071426201200227927408323160018008671537568704460626300354975387190567188178084637459602889023206940473604376205961500469862127563308876658009193869607656994081014021888707298924404693260345612760756592860588141165207941375312229128173704012567821370749440024784800130902442931197008600065415814314384423035160729133254280278316560467324020242632744550630198486483316085922121921710689549386956611839097354363386705016312811578454896497896292329425128372848456897210152446759813697423753335361224873212895148129641828162538979901220552620065137449186990428453764559319993246391498917885886794275020131315614737777371710536704050870522292310142163138454217617207129702827569823634681004329554204732217373698036126505159637198874151385840281871688407986626767771274292692715473499731386587861388425092023308203658291463556129457902983793988234574930908576532359833717135057884096720979391403817039401340357586025498339008477390462939973089533269184808118210335230514038615976765463518411304079409572688295525890193138674050847785388631816485830996364714692963991881089887192671721770103843566928230318721075331480267686315193865078769639464626191526795174471204076173223014945962375537340492938073008079473089461406589212078733177658268607457300269675605619748191095238615271624352749279836793278946633314731959714817273819861980280707201087240474350981889756023932329390973489576805200614157104983467243251900879761288790651904323612816458492957628557087599325331830640090786452792223072110232259174391970455289886862569897567126473407194151230987252818142154922169507696319903648270972331349086256447195943224899317584682281599420934033510930218634281257952946358177905774860268329270019404365271766715324141359492637505674608018484999695906798689468453563491219077666993987200127845237695605555430089696400526421514551709046841796968263096334016797543212678782299059069962914330899623051254565449987953796493690607461808544434204322657443684054310970556265815182982879011505310332621742818099830219445341068189375177178420775437526560555701936224001379034335964931128490484050778692687661156690583772019119387444069972153072090509602240566821109669690598696386200971171763536765316920452082925837126882718740830629120375029649576775453022334118459872069144902932139151963835539037662885242158655769261953835669932852862979177710714650413815093559905833370610725378805078111987640781378458870151979417474460970110281415247946537582089206987040688093474236334445282687814345062800777708532291866018171944800466722843168718613474658457986295479195939098267926165201170917231267433792814965670779497601180578741804244244556518055847306717524976097366098746179112962644547112518047179526457026416951377550670496526550920974477364092207740287370125735488259470418896685143767289649630839047092987590963028117927194869466016461350774371487706609023870870858816416460873016678309646021115427862285548576177629364033031190616734063184418713741237495873024656309540767851659693214795462402427185089545707258675965532585895179998842432426866474530199611216830104241786339659036384355445371780874309708057495675348102088461556520301427215767011535323840706734960749615795879841007754805471160960227039358048130145285179480477536873628166021353885165487668742660095530035777792920741195514904739489594619454290749566423997652987858388525410266468284909316062173063680348704653521663197872831815827925981121479095572344646628290524579307015398962753243640883101322600003182016816361133778125812177723544642937954135878113105372611581915069051106855458694276882889830674927843296292112209291625880586051667943706748971769135977880526311007248809967709839417076911513507675883465647088676435538989028531990167256314061552652965228614317866967561329577493653821474442195599432991473932556050891953576663362578175597830880394690274934894346881328897685486197178662566707252323408126286603500690026437284414577477844090985720469763792832968357812246829795500172959963631224218626894073432236437308223576264817264017774288545178867240421393089076136778421279240695286101505629699544854863629623951029801720864928214130437931755991776551348305915807405220611545139189317597990818517821688861657897975314374566187601485752254327145045626770100815135207594182690347967479944705646622336258057647483902600479197620364211975402715046695078784844955992123404873684075635364835873343539622768385900766828023318124762942402016977064822614107287010157653690877796216905427249472045225169921826930011489924583821362796464210741772376264010915064495555184748539106659297358029084354916018838579583557807776985491093231077024295469831616148683518004908413921011949551566162758257349739235429161586387637271452334608136287366638836546924385350181281685518296160220331813822213785694502811855316305743354732623786023238491580021790161153539495618989691666565703759050806931433278725944588400996350834573553719034352217753848489938004424505325792537078657162341914669475811488788952291788075505912130176386670876410131261613727318597419541881048548458528570566004278994227613612126936599367251397173280789703331457888719946805539564491902274913559357841585657809773929889768893176051976525326396011744461072701120260412600509694353915828069800722320533966046472105291587033361481600605279722131694669893781330219136320472945845283153257741858340386174646940675816542335600404246947566122129427789360651594548979047156901971067606835445622508885850328499764184400538165781912904919897356305972451912145167697073292331569999013576417763184523954768391858785253515216547753441001652162772371573034933167639358330477555299187329471821916554488651333620290333770067366653308006418212213136371980183470532590099508470249915654091059893503799976262599980594765276617144783057293026747989583924519664197601862348844209942206585677501543006981564309221600877494569636520986270129235179507989554018171422561314715346319049931307780109182827678292041346490450704614543958885632364190122323779848848191971121593182167725297851438372855501458859561940956109015749784186480101205337427967911934749976191092506520437809905935382225722362052173354395581410261539725070879564513242331969033597377149442272628458928045749727784463067296065749365869152192191773674494563493115086721097944307332254317854838716557984460327099956306582256012462622495566402596252714687019963863313436699206360142163863009095734428870395176297270661045907491500929396196161205572131616635274759090253739037569005996456387407464091543751176123210451158407222349982470041160587610236267525102701585169972797759379902355323544492018600643176730762601937424038570006206266102372256267000935447306870103814595153750842156631900693956834448398277541586854586735814596733101933367193980701847042260585591319079752330776930145081513542549764096128236400932496028054037386529611433186082794700778715389399795310506895989711320018306423262596086213612932227896501408177766070727672275298591505452292236144207312536939983640472838209960714126856825178987269281745173877245496061656404852608253521009708885336485289813622355664711295659747669513931000232399484609853767121211195228891958164388528110593922913589404156557079573428572343970003732163179763439432554091985312647912576547049243375239758024058883337269547144487703597544570870988771317547238200999245791265457801787215514067661629605691051981197816953287401893118971383955149572027565258297567537503036898313812324953752874031692020161852096987689856421987315643844857830027926336628873089495753014452020171646598376573774513840474274868851924472554542545543136474843460914989100678806702599444391688518659977245303102386212790842351049362388058117174800254139053383330743549957488871897020913667977312684378448021188386357618719796456301343534060417627233991102618981130828623950027805663701136551687408180951223289729658084527941387782726242612290359017351356276335012830750058618095192585590860469427886961584760022292441372174840450125457296529058880725236717394400739808588165989397158920944767509617074386223377965556373805037186949230937462781131460912051842886002062383418219433711097845030782900982361407455827483890255304557554339922432941997716637546730194694738842306532934410895138896885750261294225125226779706956419593857188549303597205041921084725198878778014104554812091357838482766118782512677675103891245431111381449628025058235273593987089856895519103552669510319062814224810106342169086381932823854500098771718619922079022846932771139101969174135405150879658968868157956292870109590030282747185061003903447542197223222375588639046664835112282712721537793198483900055252611634020507352354116335802535149285560145254929154822390786553854286182945091268439599521962574737439098952851972834833618394235132886509077306898769388116144465765364138402123268836332364664166237966541576449400998382841763891183762137005320931659264119561771488366936824920501184269072919578244400916952042619974240025291087065006322717567354984682421820117685631791523486288125951601318868048670917555032904308472651810933801986801214103535801802765063286941347587414537092299518902680551116394916533588784594981969687679751537141462729729356872655937256913550457349946898579778451035430319949136676373538801668347008452151691431882349258774627289239660311360310945398206199244027135645286643529670238198356549717136418121819130133947376516326533014750053887113614749664998304704576613451278929117592437327631948204834757845716110103339653013207236517374064348583741810538375383701807923098374068334393198960342531726884816090861762888403840356425486541135441407441600501660186225113838506397276769958422014228900833881620348801751249775574499173510649326056929931237647247122339303195153235842540111117553792728764560604209510322737651695480713895470046758503658113205602338754942074138059913051879893418151072516651329435440256000143383370541152155926907987228766032883130179109754270716292867909389973253299526165735518217675292614102971100187398505762159906646769622051082341468004246230732921471373015441808906558974174617205326219745034286589296200769580121874305060388417624513652561851862800387489509483899320670438373375649660792567640500715089333893598989978821998557783459477216126275252926157310744753459915364747511441893808825917273346588384400378112162422482386690669368319723918385993913769261614453499999074425797606777241842746799117108148216119277814361394317937367307538152574690481179996923565002599577822922078774221705644144403257532752898208983319240789283844579048199884501401733996777875314685983497131165079147500148893938760485586561128711141505033578408912794229225692963407024344467248993105013751660334703082244896769516542359228758533974829969966471211356580850134233266342890171719001294311906266339025453972943376139669141783581268283043224397407360667275694480609409666131440378047525712663445853569608178476814048088988138356378783092998159463967461054387031762143898497778123935503544593287335351544429947423337289111857671797795134778057968133647160125066992081978317145144311294709511518334941245060920353172636029089208100900833712472992677742402682107434752774347765851527515477209523438376989596699090223292591420739221530864616336048259030433903589431079794413753725853833917804123435793545437978644179271806297170288424976177005364676973268833174508315873802248041698958805532212544116431207498766318068171087837663755601887551225297777447929661793618507027091151732573627492492663272836039791584947885614863674736116709856132628574188046902166909454156459135797344325834373872735558768519477327001317412601530252227122100433681735735663119804523700624385473003687977233246765300121668288865220278844762281783960763107420039115816818783244756034088269089638228186963989184546362841585102198992547347176330680219480162505598088040039828031891243737262944540941952894359749736213161581916850832727374509246195951861296601627252654817480492537557396417668661371542827035875420111929492615772351229035510610324678399754897397789112905289337237332307845476190624658329573388539706117776259046680752939315881641230465713816270131776784664513172196868287661186410220897763464076240525183411007514463012858659192440718115265105384599096189262557844892042940858425996721959542273697476018868566211702807695844588100855017266755678175659167103759651835778066823462585026592551068742016324666239765127419659459448247303727696181355075428012075215770212939994753202943075530268445371394186786494126340801640918351749395734590082815755865499182485040300853182566909983871769856713544583736214713310925633507430903882310077808696250832718169869197197487375005466821304951139262526431441483012135621219696740345536707870438949847948186732506592892870582657784386232014036670000936524970493343005754454715396044829942199086457145580127249715829476516269063270195599034364763737079105177349786630526067577072309860007163448467800911295556282590200326407887339917412782889276909767182679459031891120103510062098596858037526982970247028944370099606335900384688987436925755920631960490024251545929968110709505513054940430319792189458565864418230547779344919511511486813437872551330648917465170859191253721421632584526736164374673506661972949100774046875347710088565023897787302014882651964209528582767493544216529555655947138841165395428912760804447917500687912721548834895533405604164388593352057772347490595641808773551795840251390686659242463220271271429982729099864200950832811988671336718147331366352764484871295882749664237949592621904679422838559613200707026600691237490479857309700837048617348520090796684087578812859307169859247232947631673001230010655203228171286617289826184800659883566410743616475729708064290669723915245184723599716601719834867701765653057159605468846055143359568463301197538699718583302548618226414006300489420220175613719953285840145493126797487801183966726061193299631689757621112760363850277533193061246632256261567930203303517953692587715241560907775051548606613262112178817329544675671182014394310402481939064617841610410567902675171270773966412500970487277422667597208690745075525900365242050127172576188016334130177110141664912999484093818933927464163883475509907805996037767472532477880755935564347755622696137165412593750925565739981708269488279062320393066689078780172639303857218631254758395228071740622445305505515268968408524493418152411727299046526270665474736619332652962256155323866975760107701751178570170891957451769738901834056293184821821081217172668613004557174650417082697100485736937973411049434148353267809775880979832917625370798274117055592261461133451672732185412275367729269188748026943168095689173817425957908517586781227279247103295988504782439627734579905134008959305190863757569793993861758189054049080534666931894494477725223285143090424181429962505887433828832876628797961666973793835158667414506393430068056927719964607882488471856016265667548881840239994297449375040692328667745760559279430462154941374549529873434083659193981692618444012245524738318296046074472193546670523587166479691168871528176033766059106214134995826979474583542773309998680850762204835359448055051585896960352220667898426916376262158903479028670531032526895683581271997763148470225419151825294955260142246522401352960119459255715282553428062872720145349053693173747320725361881303483037987571983670225315700855669352623758180031315757124631576357297861697590768130313039805269358072953721558097678122553316836605854629233139335277261433143393870312353507403914056747458782894141172039962487989898525844459723266022895288303381082710724319371457148207782097064374117340083762283269180340181518723957554803387365518832456007087005988257180091500367387305006354879837439255336730717454011522951722536322359023684800407965007788392583220009972773107692872926107865390879154816293036411905507918679516513767726424545755221114678874028415493113437355948131779846452140218491541453569829642128920944443095115360527509746526561636662373855147131474740197400734144061967933304298440134525884998399223818939002780786361084602343827194037417025282134668510780772559288310896547830822852075306771352451834708529188449599253235099077772854509256599915170011909957936346831738836767708690403960044417147350352467655337595564461044427499159921061407905499486910497646198754327862773972590700375235365367262649076565633948718391784254055507642426390059024680258427202779766703793812594692769785656778595846395418888775423609986954639342243729240569029821456905376918060400430803692265513990156816984328458189612869374236371928730554736771110961102496418376756201795936516965494445517846349385775908202593225276443136152371475579721189823614556960190075222954435414953087840690470757080518821360363293258947777772150783850293092886197476306518990075981511660722489232359883005851461189045193385524163228465897436907823200141787175611262683699309351309258766864754528224516970773532018825794952902293901107490437274043285786619423495254362456109610920088908226092702260838526826971170712561024320588979210284901573361312988277249298141974700840288519027456935814756327298202386643373392859712879067008828546679687605620522550618633796781734113115897148908078102470244945335619844384989937769247670703727005575401782374930417381851859382313313994683382353037288047100475566558538169398034040851239081669217298006733990510664664124226254390206571703877514972420769672209029845218318129573070555058930241189651006679319745818890410631599045218453386640032229703646961168352383000179502058887519649531650048733103808307416025290354269975222169852585441608876667922339416088154272399806215339295577342016615554490617548776003917590634052678406150717068524682262162149736884448803586929544678946234418067035740681658863178230662599201457918584043080407363719652448636771670469593564940664651620786770498474822362189662369475067707138514250707929178467275814077382518156469046514024079512162395824006100155434780988625166245350553650045155755351345173767729729757549744500367703911138850532732537942632070885711571843170255414050225001130228484761858293950302847820807644438160815456646410183453928686132425616736115508546290740674605233571521312233500027918027353867457040981899165264423461961814124676841392565594660654262665194138339594492628512464043051027064236482156749249484184863937657991394988521764500418710442036152813975398957436846551094751304012913728479395649519470848787806692483892606830207000157879346470119714001106862164331417020097702742923165425242845641145674135338839270822794514408387711979807173794181093438787336458044872320201039944974639337267051706106632426654790334251069816811416392671188358697664893461814206103929549353634646093233227583040843370329719561394830124532144759931855725997789493131555582757244101161780211220608455158491359618973674554340963057872723799308756554141741743977499537980395439460400149635408201065385431804515980256329174084000051285909776324054711552174904262717641790397375729844509904363267015713252757503355667340226012416003401477323388780071375832688792912301958520089308750778922836996214171370969326114759264778992786461899473085702894413511401911084433408258350420962193536548182456461247850553653428664053446477274262306939403909160330369231074663793854379089983632976555623359628814493472187781619681788560260461245155216668204102053334706845680217400259421757124872193980141591070026316929411806522360074379201350020994095504469791734400940174170749335978674810430669785157695969733925043004997888385632885080269577667191658246285963559306133263866488074193226319051832457917127737551258422438552122997438627889909739434222684582544267380475640861444002134699214307063057212974355494007794563366668546263772690899959946090244900646367561572716686607141713171779688851290937931670199471532468672887591082209210334284671954051384989771195522473540269693967752478256566620591954900661458124804779303158568549235401018865534302446972138003003310049701460086845501954475318201104259920962976740151269935674770003585246572597938011345854705184921803834174343019151580186483865771049891939835027193355092933093675542765316991144518581557323138454391758664449124045715866505398423917277548581397891434941918936383697735981494643147399376632034768936665837389282187912479655498313834037649676658656624958285317354680328881348830969145422460390935549733158333284775118888058181882284582606450549301311542749052675059859981927858889107637541191638057449342736769877662927044503627411002349355154969311309865149241320104879759691590294299417224403746883137413839843515609106637869700489973036421766290923065722750613499248127280060975794481095991966617249244016651480116063977078939338106454167632935126806220655083977096729709099387315208865946782368188029345820959956321120328542367068544839341143920831306483006292207041787546129626641879353232625458074309085777270185708291281830576673827516536997061375543770417260097359836230058245100134171700822001547980858569261005332408519008507192219059851086075929217000825143384611670243545089690263259628438400458699837819060438595587049583231864616408038524768953633066720370433330791321525763325063896285463930317271610763470031796937684335426427526624016177405463769133681050304412684192740702526962790310339773081047232992073126020288539992353233121934508413472681132703206907201265346283658022667329307060272767905199292942867282132395267124870316902405736964018633828894255791961324406013040617108878584767286992910041011351699735848785051031037866191002955767559562631762532387374083156320645459545364034892132192142444925012976247646519322233786908595352108726883607328592909689384642442846832515970561903971996995719349741105782178173268215712298823241138947014483759291516937095792348373070118554901117363288099696519333274610097089774590880099295053340644886302840801999967450050177629477742377282371516128064139298544032035298606142615685102576344140899667114302596992247797956087392635559990441609836781119215979049447967612763402429132582266187013176243096659386240670288856613741862047084322535084057681059688333164824941725653642848574126302842784963152462337837585922182315857855686961348327910613420246439212898903869563497592173523396351958606226118307319120015103657417529975103999617561327719972793334061366225157032685320790684247102132245694876870775577940069237697363758498845470478907291154385501780965110357192871660443338246020295837632126114732455328822833905442487922060463916562896965967645529942743185330644334368174705782837452358657674384185097724891786319615931916725714808344514927648474149281333029565233509922286005014352626130330442207401314184999853152957243513388381295130474091603192318071347844001788864313814963134622710767433089587041889891786109440391376601415252350252886231891521974715088935115722034121572595098558480956146280189506090502601693457904011000273032351387063902736267087185827846890055620390438791303910112817449862180042606873045902024318370064099063653692214272606596444071729792812189351611064333062402004353792894191332506218653011729385797602063600221939026070848008391337017355909841891863234559462097697635462552893504060262095289364076967573258842492574646379436430786899840940529978412170026073054250699119020389133777676557559644758463999219957300043612321395515278321492449510076330017183192775374817395506705169221720152697449615528779523297414545578681976863280764187282432339426199075828691690844368744915306508620248123631629769415549149611377557971982311509567259437259373124214328232471841083319822620665119332203541443841543747669921600693307230235347502654283162852729608048925657633622769526125516684538607385777922972872498776016458928801054840555976828077158324540283857801875730439431152266909886337224492714010537047894490194932944263961641295603804299496984867197893091138533047864054454066221281747711931587588751509871870720768539542271281801881643344149297058681369720597373066852681460560167349180719081348468545292482119269922916528803911707355728955525086110068892918358512567615906114281746754551406243587827648502536580032039772734513771008157612812367178575794772609726263435571356684535504793911743626967477544871923985055291339854051980481470617610220502268617727080272958652033164192828694400109753491336924340558327641728838790334957556319818202975148573345068975268574403322658640715648103493821086913837750391489929738904645247401181752910179825250984314731033833501811922962340337395200855504383268332735962351553279914668397758657967551912422879044639482072816000760851533281626051995349470651045563556537659010886601192553308386480157999268343291588570417706262113850036545585517890921720892936223374870707712433982201074257174657148984625503688698900865805794663706964388749599439030908795058444259919605919308295799228012771059363310927634913043631110300702294955319868304505479145037777269246820114272765863836735661215094839319986071042162687256988271845971680321142380567631376332225423112917228161518974131195033604822112562959629806070181079689174088696280770606093759178988333614822544351894828221641686840096028563906149270819274063589978007543416047809328583919215177307601497870816657429129278223657593059363925788837871255009606709668948885052104436248208937073093205999512302433937290808409664448430642177773775793115444841077440775168381172617422345911740357946484821887009934558744889474780715487728705312385391018232284487034431303731967375452061109570529540879995862449770812791815537187595106185441657172668934741072159913994890066717558203021324743631755781059914801695795845145727669442309409457240782418659958695095580176916612076104601765111345963060986657431954072915701325809269697842421056608503113244018454310130101035214619170979343750634005074307460042451964138309634838622473780597806562914263506223249993662154571840749926453594137752967352107505891606288026121578688829323453101944211896678886918915741489035288450598962423485039895794474110298340876520011058488879161423707210876316803823751275943581097330554871067459880026863237322798919905083027745409914971744303574041742199678077789364250793059507038266768506119744800365950541688087713152803900637303027530946880939243206436420538681709768192081648942554606331108384573953692815262016158588523241627581106745799242989494288338227650679624215042852050241441503638541721736359944038839096950793954122955337093386010492473345446398230049757666680835336846664329424754817931200337686342236727913376496942906463573738936191227954991828217974354734298236378989169934555376221908130798136312014816928707325648048026375646931562402628961110900020625396969647242883210163290350500094168327773384686211736757834726992456423694900248649372351058628236067668491651627690045768954958371192980877080319324607946302801909491750725582949949638074635084624745811943698078402049625634708391933443876558721143626874182261236782186384315327418216570784445601486241464499627478870604552901229900701801179893160940276160645081154835352621255119292845908555910603067774896966180568288632212538680408640358919302915056988993565133765595890092783316046374599384026525011475951850153274073325747623651883473832018901998899223324033431508789417684201078828686010926304937309105546506713425390235816503959582018524651567763147387043912577146703355217545513758250208263535407119859871925816595948224784865729645658154502637515889911797286504139357860286136885366748461851562808594373588477362235829323320058203594462247927820054098154351091348087824237961920923049208924848021830519490504542945434416571718875113158057166643135679805197441228447987401878046468908103604374210393340256363024484310734426721976988707390090710961849096998530783482193758085542066382041891427387248065233203098508402094483213664333339953692755236292604808885143511614261764594788087910753024198577808723137568477663928009127368737156483697558165567334367054433547452088450471693605248505109059247091678547547970908958153249805699083345756595668890381403063029470067797136614048761284191665633924123905253747962432995755072377213754454657679938133879218117193002238477352603607393238896838921348903174664029196606220148543775968229783936352467862330091722942494406920714811322590353138420034064325666585209885757746743065449216900130927925353626102217683806106021305019423022677910221851861782008342641650047856500531460340062017249972401499423690837191238008839771268922089290417472440498357810724145551382083054599294664658746009451037495147639396519521974018741582508850481082747606382426398523600263684412940893771864746210136091821669833409682892244755744254087811181681761291910512638305886654353753517145034465332118971860901465139653071722210321543788777548959520979740148389145516420112995545732172356415436503550065550780950639100337520656783550278048678027671335795252279229616950822433212160485157158597114677090347866328006734576862969789463137284236660895161412024847923519035824445780802389295526190791886368496541488359483256994859809680851235517832381806324548624606679831267469236014630848710273920585675226884908217305591617492209043983007192927942476272793566242456175022474092180227888598539822596622301155628790498149544702120506440408342590888565324166696571871180386312316892025040340083858118783329620414685463435958302731077527217880137871731804675661917725695099828542608876995602922193493599011412914777460755083264753523561611792176520681763224800323260714103274069474908678137722982984339109321160895567926846240476424822000621432355408900057114695513608350070212514702403434573412133439657826356979005882858918127646462947801879356526094910626352411759868505216400176078052777420770925962018418087049798008885720232262915231544459404864744241035590229541248678350490053949136417057071524431813774417141299658221446125951043087191156774900564290605962405033908704053033003776372658308672140558707140254236290472632873131996389358094311708985867724477718707104324090622507001994090519274284686782966405483703018185556823572656501497697133930127513979440351951758784090006134686414695658745472344831163559292263925490958835030688368123947953046728220594621388271957353597049102135125293523982010077065467879281167505398398647398258181433141565232106201051973760852800598419099340950319136905347679715215768786557067104776632617574691683389203736430060885783343000305861347944631349863030267732979513092237593066556455621372234979851049094404173842866772878795830073478508180023992026299809793299284766145080978674188064181629227757823074088539692674767734786734134823948981116755363276467816760468307044726915485202746522209146072099791991260051540875833853177735817310799455488467938946954723622967867981798886807060963112195578971612026731973034335356957724692892952469059456486527741553420153609370009693803810530708141859957661621137994847811866631301262483035507466443909897006043902806807743360688075006497482803325361296731610157134429513438840102766311652461939789288095923013107694832572622609096063616411080914788425864807359843647187548106598816065614788106128351953748006529782046588945792761852607929271911619709203278846713509089501331588110107410015308517395479149103053483101677268432137837226312466141989666773649987690988242278039314062016407626032374910936147405868297234082447247712694643473841535703694941742604522013993665246975476255806072451809306316641745292557531798623286750572237092255284701469511199968838991826790449536739078736200306709825021130095672634421009842611639834842112590969297231688112222638952467955884090222428532568191934458159297200449928254717268695549673427993777950393666846255368114879212177061379190859171253795438078275238857244829599484637645660860624103258374642030007703430769572893640090849052515226981914978696692806247288955151050351811336058445932227085005453376225198122238431020870501839930186261675020243592965311601337165559268571934783819189118820823422136453430525204086004492785480517754741344231617314180120371965751073929823409033144072748803588862957833592190474385962502925459364179477745599564880368671570762515183535448626391911097993829395531024068573475963105141599530691652930100679360786359245443101293683363931545752562149040614540361618220624832103681925713916003504494764737536839338919650262575988934236559885220207829876566662943064034636899016302474911056323606916673419759204668349445975100730356130828961192274288178683743044570036631592604514950266773509000788296536136517619031510770084994686460393548195599518495140379824479140117960012832378014214931467242030107139958371197319381675119087236735969782183219315984798874757725660856309145234207449716860953960378643958699779081491017767654674043995529121382375600794590408085909980832174931180329927942415909496517406922669380054330407725442208199521827830578065966358574728517630091160496905436044889005550525553555690980861379677759037804892965925920425157170453679733326795118621841666130598276262492790265452583817189879128562758665545651307359439786868929452053587070934637340749790979733463499522398063983436625334365886477132415887903734591507401471055190772291412694706020943133443829942646695323408731468224948258894545397005750164529218241993965044506271158837213247528143068893301007479393156393457803820474473869375297149250435729296110864438958277130706160434907585505816161988225285867958674883113543339707013016269376691162641011240264362594517109142072927863450933230533426210970580416871006369521339344613954951760116710049876413627849381924093982112998917673222361406371978788143029800759132717169142363135928346347973735740432154452898778099597542905223626712425154157782440481789415777792537442792643780064367333906647601708536656046197747066954042377112746545142996052116656656537023791616746716178334057400147313173187752223896344893431647794809287792183141255116790750269278171527336565599718291163683586028692944062056063347682635833703477330944325548576665942224800558495316806976501478032405607851057074854804331915765120799071738574876661319397297554081847466097786999992942098603680654626190205439425865471518843373121048999460541350852683645247902781021772763777570823671422313516682312880964802187547399754771790806694460684821610051223502509532323442656248060712496221156813229972371233042926274634110624616060132089363838749295476253465422828457101337210873863915509357337816180459627375247660323761662963931748317179985169479149834422946547952756478829763178690604316250864520020608278481713620780353371129148430490012837125015598594712118945554573117713442672180949137709775948111302114395488771304608579165133952594711342367588201079333633342283190428864036948710439125534362403546545442395012483266557220215472614308232810217197945104531777250342891555152807785593783155994565446171501916724743993948518157518058232912797682609354674884719787293573808309154773804075820932804936413555381618519042152145536287361620648055715756319282206203710059571201458759166256931067806332120490085488152253045667614335726610453735226315228708923623060477385971416881109524829010143183163676553567753660941577521777306889286588743613269611934837778726639159751577260304674395581395653055643500344860059124905279354457292202167568588150756533592678131936980981823949769650952362011125637419334967521228909051846436155213898980654759043794059958091046576915826461039372847076223692601472299773597939947547886372425511440361608597273694354074574731047497632742891031774857759598727330976170734358423557809957313753459206509590226389837392987649440469108971190284151356602854780768517603215668775042303428571605742333298735789437068063816848282747118677712379020383856556130502246871408459722425734348199017374136350812870675405100192332564858289264182313396167883905258869745313017672567252142344266676927453607574736634942608250615953730921554282491618331607137578180457413308229115204327815868651956694129131328839966638242408002668584233086830016309179792995651174990619512781658053114231822784985849137600718529557461569817328257216897355010590093009533443179762019806837361602695425858313401504935267493733136089217063141152550113331599601247317008561554364000591228846420825662429385311151425773102798402727131816532511550214245610303161298529521101806630880855012352978713600080605849790192174107184532373980652340317429830448653934946528783591625858288631698173927739505265613454989967328310802409692967188742265428303133792579588381816212804037482177964168841477963503795518444775169241999833984163537490715261637888629467820654686281455648655678290861722403081711517478900537394322967127632253756382517535279209699809269562356718126666479248745762410386336153439473626751739523079254018054367717748278863117314624505997104279160620285673980304024400061833792660932207481529788443582927673046109249378459215888237042302977848803884798113358530691588122609985986911874599974785858020641925648019199748132436949033414477133226840390936067776739674782494080440705761179568587850920648897116583616922606515097513651196109621709931481745253601958295050582069147236997684917795304050237420779742669194388546533870639834294656781415526652421762898925149320173547307387591177180776469503048329514868463500101067817426856925254018897097149919809378322962298694018059129918800195597809776757990759082443042831922301368710248570532013936948053849797061042523484913397022032683519391585145708540076571930738428633171770146038078748315071409953929426827698127854376902759516429483132566816342397865100298274155537230979001633849105493195810480956485661011456221114702286788255699045294066477852939808449191609693079379235050727776870607671469082668425707139474040072673972206160690060376977524853725184467798971613183496370313668297717436910173603650019085867059532023147219410538183376274604869061009407015650483691458731449507038758367326226187075154908956306156460256300760804727796469874527916282601112141545836091358138727416619117649038656540516371933394215806291761303447079362185620570413753957629355482049507795039770710853609830503940230869372166121421019865766772587398637648104870463160448936009111638838509771506216880245352179622410152045872107083920502679684109319436941217466382970406448452639846941751810987425981301376505949961014920565581882354976066611618041827268934860805814248829616821584699288222781046466309767733395497897360842456699575962515054021888892508655116476901195227510724611124226380996405144790176569356847674113720573630872729750894584078284781174674415426669104464166541145742746402990552477485996097383014200928662590780449284894697670789842823063070580774560328193873150510341077492599096799167022997566286724329693833492510426070212606057927154904807177708615788097949724784330013605146580131526017947461214514797114943542862669599884393334166018962136088562503497629275968059954984301088426613995130933409285007297751958523763088689978346630668349089631359112678776949934727343448582623244620760551556509232502213462051971579162576426779932898352407336320418767998200455445480620277408711579298548620057654644651739908160965299860902995436960786363615499295794274567089980078526741401209414395283155809754624810163089506224908265279880566391410118223160811619351439192334416086060208711989697096971055042822688810931346059959652879118036006883043079188779299045794402189794630147676821499161144006007213027120431820345663461931099862523349260612861664375400654658688892775004469871319516377508263745784672343762215924719454359268083358940670442113181155572851148246548451095310813606136772470543230722906836967194155768499578150441398985589985130670400836301275349450699774708483075004524454921983872055197351573823018079115921518290669699044724974648378231794125274823239494488441640844343284336435470364927190541675004414917644016772730418662863058553668010899947072928826325795631696332036944262183354286582288759335415644405854484903152208787833903210824985499107644246192159442773407807466136164301181762241702596360687118734898922180773893573957083386045791637348172410929373262454720637420117638383691896737229631757038037968551658942991247771444448485746199655471454613806067373528622553293003317076105891269915048353960430231470447532801463806323387160996494271912344584525677055953507778526895212126415812636398560378765797525925085925706623200348301409510117428550268491954368038622166441789059789820688554349136819920066894129313659984467664082201546560800987727762256023090229254028488292734546888161984081440411943776338871807941345851529903176400481107518987563956764540547856764073608630635728761222087781864242513676779631221670667970241573904502168155232433122689406115084145051661740706061447349940979777938337064738001874195461740579689159926043569724972688593271011621472105882378044291157896698606520631689896661167311385146416160620477756245895252720571583886637875069748518978598835676127934295131784064078958317650941393633580185696475042346503421509295502204706857328540088172496007726860892127403834787825320010422265632504749427561524037836017033635396588002650070601117093166965550473385702329222567413326538342348251539841210393727534246997750486513930493844832065001821330290463813549946847514006400563898988891253674286042455560633955067253771765944824715195964151368237258794057539349634592768079240703502260438244902329989025780874417232886756108112134983032119788096411675470023692856408372973704388731883912176597453304316764698785123785076224388416914261475514009318666479222984765394339545993603162774453269143685312304635915795983764003877511876891027912776956061325366495111510055321770974327192188626393109163635681909005770781060618734858354431038566935448883138215617343946748385791988787258078952836366284304130056730286952484183127167950377192860095120095509508837495325074195586444557310829346155847769370308575377836444737237473079319902130125735252150669435597497155294202893012001058380662729581772757522302925523355530423017502556827821997296595403505266312727376180227796611348394315858408566861224989378002484320817639879068242101137271801205621458561319439660528071424707989012004381885291670211570970774222580098065489822518306809097255894104877066601165070159405961198352400868528380179730784734222983438557034722558691088042354843827995944737879996234837730943593793522436860434142878075039318639962684928811325468699074174807584803427904455539358386663688966126142594165364627212594373719963840852585143440626077043343121727684204714457697589858403642010674182897810123722828845897310076547937866036257456975400229215415383424714548942581022737057732441549825579025972441257029232544609610630842077607339310530287523581956792988423376348374484391863382720615184260823014155698949168382892665294346357933943252881292098301484313571417380338639188546143635235498975682082604358374334126488258596548342447777500415690554243380084307036200257495057318477200877892458310446746197969000265318622627580205819174332928743899262288028605256459883323097323098098113882861787367486736879847601485165688684416404917346843930433055037081813139976607939426264372324292698773087627555913052204152828283497155417784067988449263404388706061271250482687141295497738171805651420421548018376350616319611155232926080922078401250503922186388063316597842925173455681193413289300015860415356456270852752681691677711128858505605308305031817681565412676929170127791140672920588748661215426735419897233251338863753018163547857691762659773667548100862297970468384684919421686410344051876586220697047233626821205250222372068421449789873882443815729380809651862529287689335586260952782132971354354363351474108196398874884792661704777377625681141496810086784506451884627407836298818037313564610062049941819227820982281050176468575970629183237599652608874459463036020439407808823653456098809110501427216240790735895096475282908752012880811931214954060158839865103729657845546843069292114070919608385108973635913607604487069819462102037961908197887028492330941145528870307770871929344525642134682319489664855326796762569212320213875847102635406249361994397055899604916988338229591913258876384630918529535921397090577879737497356525386318999726772731850300382078485394845823804719447188040387481313967932757111659762754387803872035777035691177624710273907256476741897237253688099623147289743324228587244390602578562889548070899669026179586727328550699294189733150696624675587670834199234279023909019834074852544042423026754282037591399173503620381964613471999472750017998932436248382624260639462991495303468522737203631116326808500811105719368679155463682112101891091715670266754074956085420485202184084621070276427402334835394909090117551027846537726968574719305988979033983810948884487167684029809544068103732328694504425071090548307575507735081797735341630258156949801801948184509600611974709899433879062478462642994197694158359773380054877090421376865476943586833063174024495186665238916999708582012033592178801390440011073631830268456058150526755490401152797063272046718490802364842545344402617670924629073523827741567898236205800315899851268624132882978282874457771267425749583083195844639125848479152291231317655018107380739072395692370034745399806364457983520516805201557725221068566816646651496825828530790704229529994869641686945533554058564997832385060781751815956180213064828463010930707024910980856199465291087055963809018707155923473489475992277967155948122834503838441884953449177579823085811453874889950336260030339005874929704249316463599838667384595437604328314772773680033271455217689587595034151736399679551213241290813448385715105472915667712617435390159796198547244856591861489010445270772936206410224238301130407999172681890228218368641559009195900970537443651957843767131229524380482336670185528573779375190360755048166772137014901120901984518234945468929386367614274751835767325282364659243235184829841831056488927555854767486338969953654773490827613587385693859352358122124555468323878256097601259700503444634496083665709448611103965407204217173394350262927280149076503682407482831542488075659265538364191275763270661008788492827249441314852192073052334249154978791868541872848484153882175119382205382914535849088592145178412268416476372312312207183482417331281481227118567449835989360214581186176097471609288684752344140451536176871512363984754267036642873688741402228628458385593724025685448235472405950287726522632201337535351823574644696566285933443648450581979363076012411971953678426909254234123871342530440465255633631041800133972017139273539195159450177304077283298344249418524507398494013190035880538762500224938242281365467166753750923237428451579013990089293725796445218450524566523729877713650061933693857229600818750546046657050790234594413258153388830019694546404048320595616123444104176783588585907587379870009554424383014162960298234526911594255092996765438013521923571763970882829495170552997910502712158840292374580384669523327165562967494597648916327737820214380036974456403303664834347627593161438252001694015693160212654364463014930557809265150000841831952761122728333243418782206999764839439878824108147625822164907034042289275833709584579545480978530168979112773314817854876621624101868484081646016698387474861922060106863312315571044385679073948351386739744201614147131603068730793699174760215052859753084693290860297720747585050745109873719488080620482984612847367744426773484619732101323040573132893698234389154670497622779680699520799431421315472076272939222044044879925135311203052809524873722356818794936161321346253405696100953845745637466197519853858425984229028274567863835550799608801986840338045857751104757097691031808325708471148617261152958252652114731252739782618530165924550707854812151503888672468145270545944001346911062101430905358834636703838129137096431391288206647794249020271790825281830482835241209140275987151769398003578710564905249353629422090223073788708211754395883231906283631183733718981967931598554572952786001488051024066734550570536046650533281132243595628140835638587063361461944008100856802681639195780317607553426195180047083188433124918548664047192272043764949255340100300435922662266089823966014071867665104268868132425244723076154872296672027761489438752465916917469961568371370130229181616463347967115102012589873486270901662507843052209209381016191361776993563512511893495754537423101774923703223327078155151868769861535663937318694155296906813002198370070533009856600371171472637698261932094509511254293223793251916963852261606639240529273757689891909392390403619894270825719246471207363158772292417696612777349724073912537696905503725620368346560606671212233648992904215314335193224403257066741682638486712433292315835193864629083473270861543533492318668808329649328069933347426609924387929066282815479619027939097785634415838842656964197683989318577252333032925218408490991581354584811862832210910980061322060975026441511118593013882164427310878896472659090282284361129003142469454330613699038400389605881635216235738797780985846851110895822154061798580438063343919132462381088255104022221311346014102345440690822076094702971072263181944260906446302577194426987654370304390845109007226972956149327226964341165238034331190196055228781817762530290517597074080318208120452169619469838924968860308683012923227994805920610980707846873318123336463367478914918992380442292094776268089031363550919053630614989638712194168059913829989982930867843273009044018297808065185265861945297546600563193451354933784037837792364205438728461634164462226264966269417763138721688930485045661516450934777150090239176056220228976081795824790207883538683413367071676588566450557554309163123083025526813850110058994246340211022434310242924294827672163772306033083109119888152529165535405481449496539056558129311686451086528764116103279507180140873931014644467663029534879857299301674432961573296497386649655972673970657366073671963558233811127426240261734687023668118622856164868848099566007284652628851527877972945958921181217922108770587006285528780788886878142063867124815031326873754505048628466078124471855417284664132675298765930755470059985165980121965653897215628717141044726422951517740261256304565330883068044314459618259186347437104035506687482969377606481433012687525621484362228200443136333234197430124054340220048898334310972655365622780862528292458940290460581433986480371332631233486432527734552004636684775845689971283204996784450247452289399021265836265987491109312667713418868050990399907012470560878246224204831500849374381107231729518427549987350636929779205593740856579984205714598001982248374492798040323646667415904806150923510277967206846045831938992515363030789181984942705661008688057660037175619333830426713076140082927773407935071264481729830910984586253201072933336504237621776585504666316684778266322716619533331540623584792192991794187172152179329490867683537729464053773334793651741213231512842223778844853963448135410386989559598096713245694824993662127350912337843755684791537391486854452276555935329128547591880349565683487714431549300241291242997998002693033643341350310729756413966994492044803440642963155394118789112650095851530548493295635461600622304499296923544044438764127893223586916278493894476713054554039534256135312949311020626008402782723019835395654898100499111264284565130870593952959576436949021241115135504404906654898882851797517236117409881104544941907251077854934899034180577437035742216145328308422785431707938908784840169472028537549305027408125756473090400190327318039866290236008851227566333312879616650241172698816879092326897271232791806681708488900553226727402826862971953474096348323151220419879565731721937775085406087571036765944492693790303074757990529360667074837116242972691630251765146666063866741031852478261392295897416677800883614960323762362512819371301254887786357820557116516086755536429697338500707005893018394901864872870987129419063743596340893869865551237534413838183681054963068849994636602730417857989072425228742740474767712318824068487507127800420773919448912719546924128710696066370622341046954437730857077977698210319425459419997753384793221413653486591815488976041102530843056154023799662348578560358763697894917790376933730801533717268879562514324385303205362004757452047848379594594777006932673969582103119115780183940855603809555305906080447391015736920884755650513718613324554308983342430852565214473268162140486353882415443971198186246219034128997452616831412968026093799337972225971324897359619539808499489566925943965652590786015882747684841305812930855545329540947491025578744913330876095492829683058752385091182602773227600791968087386207431676022445332996158952094226893947678880722975382911286815470155583839695905638315277132243176169920799314255987293903330939947068960194344849440192864930561380682130139830624740729114450471194411436743337731822574420504369746202081467065974421945297491461120135837196547523813596486023845417513418767323601357836196505271482684990613788610975151067089343988955655586076076976057142060200326916308625223056061863011212188153418976740942386122547077506081927596207643745706482334956176909560307229212502512441341845465783583340528766573888754176674139701409149862602996429689507681531157266072849075460427204739047788867338704055250123881598882981612567850674685499230865664923949992949867731225960462490021268868629375641114725599090047987723597747571062565047341600174509051378741053163312895588425557105529709942408510921638689799225322802720705697686478856547104594036815021801568252911083835156406552489931759718420882960959326857000646262336925815118353631147624922930983495328902410501034251760114708481633149857104639101463517760047852241430166509085044514762857334587228899150951069464348913081130635012052887833710405916887305964074313750803817334771588338771185952556237857039333996761239766637834933869701002676183450473424903175485753510358850309874297952776803784693138907688923433126044187891392061125311649819677330771443831763440720348744755231710715770757927726440601611217937798710960150194057900766180156325324674138055571715132445322771005781055192243822160013976341833850761068801595169243440042715058475909727397401769520359887062705232922663852095048486221884901722274070581478308969389408905271300637841959372700050834324952521749550190868932915688656710674134695697898009001341264974009417620412629598655979251127394133804092103145179104551254398440545553337920992023992917835884275567696762168032584581270306032236740258135770556828058624446446888034851285241918686757674948152249108725903218123660025723808837828448138505433720166979577711132697363852113220430431589628174133490772204273030808479789598116343757686664792071101825738367081197022266573304273016517373551619431566025812927721174206699864974887087897240672870428096442148576527475375727106870348221911169093370035902952808866557021874897655838753062768406910501869911386891529138849577125694232112845010544928505174660179406090200820427262590170934057157428285694016820428422906133922130909497686751906951197253524354248154969817982315432111606826493457182993225557160765511135520558730853665225885576666709187782959423016109891764107115924977007385437110998645377364503598677686497796782471668741360399477664568434084069613480367580316269712549602927582278194061692244714649166707391182453996913878059251507619103906257829017292655882215840681024798475970604614673810666723216639762995130694116521100243723847200834469579996366853110310300223253958561156905312622559198379150016183907006678806311899570900554726273644904012663314274658294235941946104146778464136710630218496416277018299191685149280523610121117069867802155570173356548777748137814388824651296916440905463665768187365607722002423148027067432513268595884535284912129722817375143665930642224878956637966213595417167824053211636866965861348371396225200368656103361574709083849237382418249441176357045489929345936781497017745297904087459407765168848588974990223134584036199814037689504032649935932081371093093331043739073908131864504722423799799520561846326752786809179414789851511718146012973560866430123921098880438394740603248683928540418197383994025235969004768660737641974665008958980968959956849976241561816223394896590851752857788781401850055714609171040260999635797111642878996405238108012471763026309740950694854084482515670482756917089384992309940488159403356504611553435285024297552206760785260347201134362732746175580892707420644912006293532719639888340531716531203793853891651223594491662490011759129172455416784052776307481285914283593398480352132979314554421184907076513723944154356359272139974854818436640127582318599904949623646917185260193032962597938012619836017750150686305964265436892283734692524109226999817662551183635323187471181041096737111332006365214696394556056423633413585091193553140217946969812495688274938289768713960497363297477766800134351684843806466510476226405413225798155047558048274614815358789202758873717910489062704092015476323949874217921393297396009005199467858957210644829528227971312553798498024882142649901018492591933391127961871433272476400560004004030097401062040578810753189398065766151478269535267249271600431305452602174742137888872296428046773481914039332123175475965356300953007960915334346745404063199107067075576133284000067996822877781070215952475578355584752000657294089717301914860247329138200516448316770292510124673342252424486913756974630755618752510347225495731509435953849010390241818035876382284101883445104734418167088980133596405459748214669686454845877769523960334301015199255543268786232413282757189295144910272567327467389734771971296906582629719654555481231850238841447143839709555612145807987874376809528285679982678396072010018652961742347579250725361904763350419135662525279721935806707045836339715824371377977934966150105238489445875444543883239464179022477807313480189170469406761561081200341821040151566975721944729716836211104596447670645680903218065391135825794822784929034212601257625608325092962939922936208507046690309946574479708771833209915796123653955631792530588329482365830323784862574436875119789238894171336675650440547963856541970914645508678751444841061298848601080501676788313118091967998978989858016171462103446586417662741105026218886995737482466953167897026188552447111090716997301511157734318720031306520239455215157167901641641850674091489899704507856997062934186976018084173071369925201756720226741480849259852270570721833289605657838929413043281751835030706356598465201278949037194564759095328286438834158536433287275426037270221406371252394825396196901375943589013811390521483431923684990790644900012901442502076598374183594908750932305910046922717917098783328705845554274903600129206052744440814656335750187168987589473163131865158620450710745216945239980440266335781161611464609623438977516987074301205739483208395902788452285809991141665836821255025753696862343700482400844496882867731834117481321615085822567199251624011627819725902503278583979509040703214939867974593929602840894896871885734860563763700795698149530811759782737342641322646914992054306109978007959585937048634716674158264130409588965377783054373396301166659019342444882995992993240177902137846206031758979479383883974974845663426438478950011852271214357668288502013056001202649930773334729716324065418590568436551003138449450301250482942026830188577132297113190710853908611328182028814902048048150902331828974915727203695369073031807747531354701009644309498647663507660890150612278306216028474315234113744811845526251973089981047048355456308584433958257499698300896526763010606690172309891060581675578731098242342749593086140623020660247974942689208107518728547540760215214676261266287043721169516129528672785048103482642360593104811315110821001154355907224998096236197000282511013278856008858069691597680507743605879855510486819046832873435337059425960397275434812579256029922199075238406429625266520897733797647454961831246875904952697240104189345764411080560250782099474791398234088338538028303967176151385036611215661013981317839384750275162341855364548838232248173277308160571524137338395876240186701743275007097699620640080302206426989125145258479841985295151397307866773597237925069199663500671094225579823044872832750981159275469921301976596908506430348573417484019137531257655838293281814177613307648601619911914205711664279242805531728949656924909253412882821523172172137822205490064096935070040485476680254544211064277456771958442863165724514171461623241031715918460824809407267200758290450141080524092338248341909692766118334183406099176908526534153950156754708577021731268164165617616467898313210212178476327077313279413980764726356187702095833574939712637334424695740455416171732372402136780759068176797060636095428531158743226866375831814830301313676646002964726254088933519685571569662697916534066676628667376424828722537130862013888395820801663711736647764972130562102742513831775650233617218413146317123613040938629232402392945711123295697506010502165651468527503307956306376086389433164424415246102466386392767297071819646337139691855534793247398255705943373223462368321458795461725777658820645711173013084196623915816298860377573862145051548674812930424086740523354887359439610851289150556950370103161726757117423978981102701358900495558964456602919582092425961582053571695645714659220697109545564040303883237301299608014770449345508198738837305083435520634149368295605050731262999872431090922334856286166720641863459638721731307064610752234988798197720490372063060197802464950034481277985823583174490624942677941410284166561529902917065989135280386906386977796999891061174582156941830392872150812636848713620720513286654708869330590876663134495991893045014675778563255018293401992993836196876343596736807052011144122312064727386048375440105083544569207985762056878854433196354329127140373371794710769208628748838572671859152975153453864002593653571728781487686420954613176002091391909748606771738619248136136962727461376992038483459442439125693821477871552448827205901386967710632089270784043556035214752415227843839144886671318918439180930006275548272301302549187191170203543986711146106101728187772332619413965123581343536814325672440164452288907398228898233840785499074314425492111880953197994163373274309954272017808070643261233787360832390363492815364984556892519194984166749789031583565196245926728734972246902006409354585592432680029776294558656834048314793117101137579527048215154599941187628062411441898595626477475516128251020777884824795726842372633017706710386904867554282064490035072953416925781696732122264782183823792426557608705045045783812962566495117534771060922799149807709108582333016294611026651439030129302907749423858985142490270558227366129483593764859359420744448296687209188413188776029459169528232181908235480518792616333697386602733073304921545864230429907169158355655990061352690397166198710176050717071926908613573163490029074415126025209041541777552765581878377046891569167794362663528192462381483335211852828804512669331293196273403662062453300257182321503698908792098255895277234610617216556415615181900045046558892923705011306141310423523348686483601589712687784894468312003035521802508986501897977439435768965379212957498860741434904299377841297525315371842940695490093203585882189376313488480914851341834709554484079773362793957971964678152947947976732485997649514389738841946784253637363052946159737171329115106470438260649085557256506304668417668510816376079393441581037950686469165057033720038380615182642691558900954640139460143720953845842956974889649256497909831724971092067629489401945586348862695927785448718895442933760535268965238903719919344975443230488391680550682030561796791754099020583396019832127048162882855355741384840836590458470342622179623349311623130456648875690443383067526907630021060622367317680979807845957434978119213291995195304168673140734130312031803108096865007510949901631052344171730458386934934002513605473563782490841424738902995567290631180870252702889395489201749184896064399872721129934800950360001912839490458181352256323651786046678126832607359931840260763940803613675012591051191347637207373918518383778047834875460868207801356874548472359434088499953313322391067043106862519081228230098284204246156280938514631262308170460543841153154052623325848293578717921813904326886003031618018968993609265274312749762450562919606718608871773142290578246110839462997409673682302720852095101885721136976230492908110509153590199273859059895884363184845729825495327906854467521189126612184152807984443096321028888420842927060087008957104799142671584310912692229683497837795291058053851516154596304480493482086264805980432467001769728909195954151580916836773919611676408034910206916786089881674903318774238253615829932899601222114679651278209416712883758540300445197831472896186176971354639767915321563403942141754214823164633897886136808621081365652600706287005014237834677374091323847781203370587187421430387838536833828715971631212771738564684102797013460121202931666719360896266941830902638148528398114168316920674596012741396231034867452918389771016756860326616155578385775583131215187469264517856339116471808476000586731502208534638662959272061871340327036675827176664030057450221743951390008868559839090505587551073157663156490437020307824921688297383141714454743504950033086774169120735156343054991091215850861482632584678463737683355011361374236094794968630917769210347657057229370473735856606621462511667824834817649348245916035346124181460915554331662093769647506400263657849506491770090762232838336723537877743635058368025422499919226517510542665061929038315399486604208997542443292519955638414470371645503250606385732052022557753423788929070731149694432488521428834815419841880974537564969330206668830903603389748602412251458898024208157922454159346545232453594390085584654873223517709743027499584824053099367764682339599832283656342311789486643934818373434107835987643686859835524850031177580704213610835350866163244445624065170288897388977741607276265591510699241326078015437783663446058033030469050916682747182892685201889539819939963029024213588228894046383064746646089623346848009934649583637986150419167652848543371907856777713277596078782744258107226552669220026751471290458362646242612078772702029240376115483146669527496651130861786972561816434426597598156132302296510513845506569935100079144278982098245523425001301613701550099754443581228702358249353861086976551615677655763613976714717535064667091818499692526745444651747033587862465432536281331500307114555250494591039287329024986280641813654263554442639079980540994653513263702837091778976599954731985113809894354133655339348086764965084930586972586323344744369216230435342331318755194256168205432035891838402864690663299259146045974420636339658126595944482363934402624294780963884873849599412458882411345765076297292180967809277380633993724335045699402432793725758376421069404265369193267519925794452848911280054389576648449301896149109861152030587691031130503345803862269054987249855144884723013488971992145691507323851643627760823853575129751363625994214645932068182443967719019963187331205804497313290009661880505000864607089485032106136422436279489856287935392151568530464776076372267042205296078309772353873026377442145934912661293440407401878972627404769572391137904011916133838401551762923389900711030998063117094903114018469311029827644805678663963768269179807557416453612704181301060878522850741314987355870238104386944694963393595105651787585357677974932834944846901214585999745568458065349269670461379490250050980430584655451631035483043821544941414985465047874807698226091315915022857944270543685435071716679852864461891184239287804216322225452530387167760692011239637182759667544666214430572483520165344643154077009152368017929837311953973362106391650740953649783493153951424897040192094185865384752577922228620877480403588842026354873872919169422579071981832950619702318629031005621371543808412696877972116305928221321035361552664232693225332074464694256260646557701223780841940976257591937916938378707685574231380188178769472646637531319892648156970153752646999116376119720039333737560829381672682839968100174670575029040953791523167669467005755067215205394286164406720451275361920265490937289983807693260361971447132923414689773000284348522443352450229025538416587946577546383393449810088186349378767234612996203914175683610674291268612424202274269441792986502935685864275742864147359247637664193182071208045266380733352647809949890688275463802548579342072214105171151735100644176762104903081152164733436490717460254343839265460674560795815872182966287967241017811202596807821183458943146822804936658001254548139780301645617952612838685943337980421475929908319896606209943642959612804166807157275436441803590088426460964627325178042480087728315819548596459199348866009281363571531798212665599524153969202923108585245071446287411744438789692617870470149516107247054461304931844782361287492545452364241452346035665224314958107359101419676498300631219012764427593216762017195473177983292346001507608379256387189063799804716722572132858661659764364797207621939101032138987762026503625087368337196721459894800137250009696882590857240329886666201894200159869171618589863603772418138850523843462524014286512257858922897125642474729101203978194996788162741151790023438831988734885333088208781744459971020206806862990884878031538020139290501107242652489179677276945481672641943338057011350901992521599186876446490476876525259500012344084940634577540465667566151699147505055109978037429533607056204193828171098852997838163456126438788348595354268802004461206516284823401367181107901803976708663651488155557391773713600626450550830940245637652664423837690045079794839635704482981795514236395411893483368280819492814307116672409742943225684897976783979490305234202993414262508172655111236760821424686366691918420480448913750200719190027645434210287115427308523873881432023592173645019558198194669380779004390784026492882528113309718284503530704687669778884588993139431091689723467753309030401862113632678505745244567377535372061181424102404333617370329949450997672143477258158209894856497561291901068658210970013253296276688082791446815822224169044503815145961401474240773200155332603126891045992161850684178440981108173833135212767447281218934297484735577967302772313823014046654174527553409575168658278360770377665422623910907208294465685911721225355669176382336301862153886976737311955479381721777878196304138620512085048603995750287338342584766910685289491471002614057504408594450256353403641563544313975056676898900597207653624531984159074941868182630774610990356269505926972919846889442081792783640573670698849669425470731587486618592106474409995804610129358113007290555955077010206774649514060786742009511088988109972885928597069383323129299410367384406812311754373554159293732198050731215564075196980383879926053966238630475135579870277803794774675634277236988467839001755860524261659488377448108476935984568485574798570876048049133601488506971607946180318642257218109606764530276487543135218215425655913261001432076563432789543482748887068354611951068296788329051272098787956179661989095929808462848601764527192625999253247175428422415758848748346799890266691500195720757496850234393604983656103508732532375779294852199175587777715219340965451532033230286261005633731282358262890010658334253715173193042495507524871927789331491490337786084026923774820443046894687342403674765567166122038975298880542381668433445400043236352645029293801158496830273916109058162522414337598220912776787940035676207921831835220426780950587439634092409014305258956883370672024424478492300515614047433079884828804112162756419204561848323858182012234217896943144800967813475246743183225212597419746598748667189528469171902314544287515423535296074523205210593380771037966570828373128943218906350618871654570890573096444462557329408284450540168231954643839088666981449984749084838349190404972473134952594733597366454884485712357183704190318824150025037436979694036332580949797160954947886907498439955230500909886855890780447291145043805101649844780319440335599055900105050618127996519610599694673211039126331779281760614092517279377635210549468338837629389706094870064511950797893966419292670242963321655659591698916933926247843206701794396675112587871525598417747695588740187491195758696311985406384210727924980815651778592618728148389501028034247159791237557852839951059031533433490473622763872612771814085698126622121726902927249629057940015378108108448747161710352514753462923081781361819271315501079906068361595472052826668966713046731281384689757225152460267869129171023225380925828450824594261532029125979410760041400896878600384625426778414971575316398232026967194510715372183583702714945072067257586303761126286182709194928085341154658397197868221534705838004399048969297174859346818768245352253027570789875111591741376829950560780378559028037169590527460250926901504923776553149178968246887332535021585404787729494409748808463445460544408499795882327574391924199798910456148418584673081982397074557681641774447987324277368846513189624783666639195578927436543793447162429048602541133339469066003131589783952074777777577654802642393506657989904623876440217622172744426557684416478848149706247819251936608234737405422603097004404987871160429456316921496608984868839406956774800449527583138766600440595144624482696312033169782065458709016076142109718685668414124507724134970084870693662374666875279590305328385868685596828279498338898045152234088701708035845062565960962809227507553101573620951519137138541269324747197173781640646663057304190310797789503450179854207407668066117102720823831906176403293546222452648267032796401770631050601152560460258684096043376262787589754812228944301662344962104690675702350367833181753074767531777116042459955869701508767791467904004870278125148296628547832198984994472300854006522593742201482222204541842239211452574169486543176753171749306215130555097352354040116758651197381052406745259933858050455407524685687971482786052158464976237211110238615673261558829985010703108214591014918053216941656211957724410442545423399071953725034533423143821199800165675588093236138182786551386830929116992968163626018566623215063261492493498258446948615485196321731793796313363212175916079948507833794235918618896442900414266479839222982513308101232428114157375466522400677377835728932630449085334275327920263786263974965849021688131233753911259550360625073607318755341179156944140765524667114517385888388809874560000658564004204176176352049949459777047857409173451249160220620178853852031345353375252551790460027989636278990930143614893386603773453243092176105539879698264566349468167752670408104879416812312689811048753628564598411584094709109993852435341834365717366607366175857754697095794507069258165991994377473994514154165229577433711817740254109545876448869042554453213219353165816333484939018402139829503588268406450019409283818966927603007813023897234515480066462753822484710896877412479158767394856849230507867135719495114510819230869109951063282635176419597793706945256790352144486584877312030198598116436671573872025128980756026043960125453815610190729146712537357953382029648233871448541722793153464462199756031813404164126872914393426411387079193072903388960900374926164781949174196082012560244995055506062056698226069486635980208155142665630427947134641942940372447935026771389867560573139838421884467634591738222063959711412376077678284929690483346174795159382518651259503016388241643156191654977728922072350713031008379105179539798787496319269979560554395112842021253877035704574472316499313327203671623511541781447867568781588432940485176233830621218545638492980242514664060572664882204237296265272962868214072260880958151093351249861583690297920533380090894057510844971890711794081721410201769190840931510900253384223790376190065364085613367721963024381353083864300681978559199625634936675935058409365750850107566859012344504275659930696890094624856128955913937826195970499911509590676006883805117291033482949765077612795478293023243832166728580496527448377168176757783224670093035155492599097617042487968285105022789253408614232991982176750025075907790709847350223158012200163114388227960395873431322156051619734215284994795118856554503670499330287388627963499475404573466078641128750957301755318812302317551338730890005953279085153592782322740296010132027655813275051353246574439454885707500092113844620547153037220860687294897262666084607924637521257382561632445255769176999012252826647306625802586571677589888576296609590272454665684400957703101878221452495062543189379782764949996501633330202973947443505042863787015175536523523446506062243260785713068363280016218499028711153817670742694892544454056305641966974020848731738008570904471677554174298385996188940280240979848002370966732296953220212745437655477129355728774814908075788692206426601455292599941048711809989003409299586439801397299057399042622093708546801702437131142014968186770054703415519902714454352497959423278369116035906598821745469335648276222734296438794027644011062987634820413456560940660288448390555398952936229420859909869431131725227392053498841103688393320275951396159370042598728736496660921308664721087408188666515832751295276911692766941129520624573788254723410731162860545674231816937846412616162986520946498718059693466383274265227261499271397631434782945439894039786392820079869315040747962323016561440086320433705853695795079876339487661200032844392721143068189468950451422968934355325163376349745244183493127619659677934070435524121419653156713187832641302842175660127234355173688137730238772696543350806056149203579510593227752327573215670757571211306235627334757157242394779660038819722482645915292521588587170255832949227565259336628166281830819236477520452571457346230142871162186787937098017501709650717551673178719570117753369754861322366306349298607255272279508147864406997924154477190179470678509514894408187131231711440305505495035420904234402472179622684466073985860379669370648727697949479385616760866212294838679086766438738906378767741331875521190385880622395330281335861441333881081206724402004585741602700337594472318989373487554438484228076585103441451011316099040420604289940885957485171178090297539394236200612986160659713719326015534610131343592853075424666235523825773177743813417153102519356995981219420024642432602781895531626942681676991267933371695950948016211864402762242722012648462997728325215787110482283112005845382510870265522786873347592788932500883689752614224334032856690661429367590553872414253560662982734225150476764220935851248630709424536014473020844407984073458244498908001434267928565679251049877028716867956654324366411452163196409820242474206017329916454965909741651473462321035722991968398641074091321564020183347692664751879171292798075716592667145757080084773721463029515603891256373678002084193559920596393611976481361520678068264744922458339799635650174311327928941938179230395193598374432845328933284089035529882389084733236560798457662499141662732306026148949662639538420191851054714566241039140774824567019049616070997638683240467711662809029499372661925434492036582625716531716261290082066116609056436584596661358124326983413888372848250437436853661639489877894394040693320295867311349843869923159700169493623922383181105145011493025821424184126381263913916886263873278915810261077504080529187174116483506241105253550900265192701026791499282861630389937632642866539098857773979695155633156903793193281878679133328848194528375260393906957408079478551492675292147895019765518674114199181548656224486316192141958996607012624195655892850538029103535294367852932016826228638149979571368767229821891596485566406414807652794064537008419360743063451699027401117593299408571568380823137208817072391247486725759213963642053244291947832393293872654623328246197654856823870333782727363999217051427248021308466370604742024389677979333934376299680628081295818671912659241645687216413518366944687999390542701266741414813313787494283845686995327804104776088412773349307963470669172309466238868335714097470924681928905246480131749466675869300783331965582443499265737901633086128110361539038007280058970885623675153805965186513478680235939943374102796397783681907018278465368741384583179343129213219879803320625297439941861636935314346148556942305901741991671723575069629788290683240277561125036664633360587530549953950353618022363395495644625227213761563028223876704787302994368138159139986985465415431819085506633382038800706484503018658936523867695569939685532413407803317350437291114979727799107629666949540984639130849128490968084655798617112103316214531441484109149085236013585634250187175631525164297241922784707739733131647583472110173768652626236387296903743289026870694260780070310777623053858865517671276279083400998144810928488454358343449550211313505621342755812820033843587252880325473088394125746685433211073190358559734915388538431387007601191049174553206562152302132380175182129776170457242924499995243901865389931839547555358564385286869348846713588594726406003785423622768620064885996110604782704009574901956332406543516884133674196751806198817286794037640657490749080026825066008775402848088367693669791389342681080073570854540709639318136218680297393181723372518295000200118335185468288824378238982299683406988799232552781570986639425380613837941402544760461189591344731350491718247108891864821531735022641786996211934720837185336204523828100475490246658586187183609853147796183753980367631650467613182940085227794064918521825571728411677883779012545569740269111235210536634907289267468779024485613377653401250819877237629231428440380367536628031684211429025889554631248932248154384086601310073811558715379668599736348344335920565035463239144086167301878748545869604150541581135235101137201960554532602426885439011433148687011404604449337183578425043651034013213644345520792151347341123454966254773862422487406817314314998906404808243465693813351317940552426572454613624456053888643633943295584618464479891122167933391917365345479808507604337933332765321482371319371923065666536384059742040154653642862443458146212143176723570629749032466433092176992822429662167947650530527380324588740475917976506093223520174315707591231341821636343676306340848985476482809017323567989207865458463928915528898351233864813541602110393780461256501307390825719784786336937057066252877914202980235602760155423756878131315396074273528973459056391851074310356762956050800913258447047710249327171561201838309816506504719765468369584697742173032353197247528584229832776107977843332815254824745552843108672172527751664915312607026077885048179559521499387302852260994714657033284442934021096963143902836047839980183017084120851992892120470521245701622306161999491305700292325290842489832666038990786060514918409530334033154281675854725265473546981318637627965374684465859495953657794537254997459327961148789431335726288944038464607773926095785968573592352860935592916815022047440161911342311597073629712379940710722404810599752449167706000659744538336980179229861907051923267546568153362962854205580617238439311559309890074037480259393063704415615800403124079004994783707476408769766724726660607177989822865445672765982923080284651338472932351918128890587929893692602030142502644816946081541761958927905067599250667145532895759953292626358302303520795360213285478328054430576324159278760264200706081799046584860636346063925455131359428756972672572704659083572044857435269374650208187233702965947473206544016357766721201507853834878492860155540067375211950928781309840602928972815553412979132544376317101712750744474058436294441978251961371387743642060336185563449257886393716181222658315913786542814426665971571033545162276579306693696143056513266152592243797417521054429268297195593121330830062784398697786443365293633229863000451359829500232443858706415862832229547253891463857459127091408040869240027376622064404070429840894673843851708048369902523459284012307608740794533396003648255415501137922274368125836762428626899105666838399740978477211937632228950399194531501801938298623580796214424177518267007302008464319761962792084730482632836565296197005041563921070149103754300003713616643487980179629560854977846657784914588474281759821331859608896368700157675588642861582099260600670435255180623678945047388771860848031545503385142365105142245097412298026009754401293250518115001339086372360924045897364939790336527244730639591898562114618798827747982314839710813217838383544682320321800098799383070495759533878781745912822788153495526648659437668039778309681911582521956845840024339040610455422509872685440510026577939331613624694411303219290246856471626465635099084130764552171867870821221155799520698566797098036004239393981601918065360852145124790942426892393033722765785080194638533651893679837872497349511546744027770708370455255227363739391266982075284295765305990458980042866047202359577834504989376410069074871976499752399914920423439983690083503086764447779605443405240556842997228638341646992521632680159534963109155471936767827799352721070557165816068365555402383502797242984940377608288112057192969074291648570971987392493102891449871601841381592904802025538814365503328335097850446237065757329629040667795198308432487735647868950328888951303568092583078224407409297448909318906638889030574717189116537297359881117421455464856477133593356411589478991439820320488336788705399265335006648956276509585154856353786385446785131524866240453451209025735580035795808400664672536964345945542029378936758196513287492384696785626735922185955975844861901301500320594036563470899881132111980547975183868897684769904637716371792250142443606532890179415585138612038998043393116687621856058650679830446285961331842173111789515302445885645714181083083843412937079502597775191922113045108474387712994377898458297775539610711736537282011418621314697947943016341519879410309110981147276905566340813790631929315406398958354118547315140399392772390631476862990686564368081667223229762508549489636701249404959764771222200278170307500493458965133302772224557597874615423239382084630733132077431385991416175691392622390040451243848682305414776345662029392841325918903488580481605046465162160589037139378403649594821885100607747741213637978046757860284597337058341687439167842590794353935133043349118844893051479217871927832372891160516149284888827139884051769272741909762691217320572924687212660941547453159105322559089958522551688566152142984085975425122160589577368548034847950019123112752492732205331447379164032359025757628184126262973174008549229165781072169351861912107457676948574647704860517084461053164078230839548536597096743668676120101242660643833373489174213285275367412983581565141915169473877706785350105338240598062962027045070842581147258326125266525701269977704850811542555908592456661403586596626938231848913200241686941188383827402843694879154230513011193918064648312740584682631250907678146484839324744523236824303563545686910109383782014209709476383579364472202775228994524687948003464678410308345770101448263208845347514152025273025428383898649751423781103782277371566919015765413832916114956010140555815373390793088417720861550777710617791178891963177281490774691916786990249219754236043270775526730062114360058650525524258432874507862766328346783047608317630906468493628673734864831550126329571901733368328603770767385073945570299930828155788555625966035347157123932079539329935096179944003626485694944466377433317508867106432962077392663916625057086808213830449247248843278355697281097442829922438049705970212357841928416478678237688377798480458720090732160783396615948083973334075402468632293636670959920710715402019737585590617272665929405774769637940260376106724249539855352514452946290739488612037679464339671255598338854013660623340714286764481142015042273341513070456022826147441845883260781171170220475768161841602943002346881640469646849135426744483329248273788176877986079249063429266818878811705046934880766856281510194341907066689333294954264206566709416030388942621401064403324324384886439582883428556150101472393571667715783833051707026853546807250770695849920183399469301504556720015584158977233392324174587463309193965537510580930726131351232372734936833821676803127355306678481164394625763588483319869168228805197096464221251098989092531636428338116397467016508893938458175742024999942128316124417352946955248946958213623936708384989711883655817931904546675913078588349495011523155043333981642250166628667931247102430368107572933444027560715174349013910625195549065678802651882825246363975625067735602615936947074791156651933615010830409197534757465951865939884628725788464825535041035278753279763236344234835226370148232920236396381518442841008094126549451956729068776694430680802600097340189978593463471991639318125282778000647937314317242545580305635304676827142873434757429891485262155654242710723698525257706040286491956914914237068166265424914332952656086289991836773211216247335717548955432310961779470009123444775021773758661659243645452955893153440054218229552561311275562604545567354512365852251711760128962670295130096483182709580145976154045971904446541354170239148278937135142329321903209687661280237083777121007962608787556652246803499169906114649275609940952942455773921697521438251970970842265614213620039036180342484308731929066521249629941161609448830376870459954008414030995875803945274783215591455600645447680215367314771749963595543145549715927234213821325898153316178832203099623500366734086732495251163325439367848053646530399987908946336081397736257493689246686699280562691483678161461583887523980597199870136562780024200118039992855695391596439391187356477418903418982561025844768367666428462930037364915919178558971383542679241299339256326539183089542574371547213928789763577230278396239304524627361764900605748026828824792801378243778344228770809698874461064420758001482711227580844965291374264083138048073565017063239517004209076788925635877521918626851986606302363750801653003130979760532875600901415805816910853493543224692581956055360999937431542905012588433070085753200961658572324817583690942413767903376395361714332422349174777025731610643789600945501841524684507096995744531219422250197026171030902876968753643764103315218245080511134399629877400618047737665745283514814678914173766448916190328569535926704812179796490049306285412638827348345657549087087065870007946276432902816544368140054127566403403587008843836410664048186863619046838428687337216924630666991458638153078948955159091772460069479870602987881937399143498343881231908400517839160902561654027538442379450494226021640749753000617803714160491734031696035383483333254077986205375618327260496168361800643166665466129882659996873509633620912267773491454189837258149945092301486527846574020272914595162051727233092448145944336149920706983970657808432523664937041188222307466939294490104968865835542135182216187631090593426796299235042705164420906730356700784016669642416781513947903578513039664893324884554718092098198685463684683720732397229918395661649150216338904085877488649546275671134638459198049883314187987692943621886341193759589832476443518611147942360732553235806346582594725988792245315387400600648892134928360980448586420588802697492513404846357880451539319790217918431097853508965292589430654844738804312102298990411251697424792588495629488650763025731169939996586505619968613705249700944423284167083235041741998195569323483202441964236963391312429507663372119162415040040621121226551930711814462293909145847187163428208125926595510527538525133373066966123092894675988521115843521607857092706276254556310675090689307088864345167822904117201483180757675460561155423299603394512801296997519173758659703022053649063973295931335855241998527471450242690424766607543978687519400563801987751921189495397214368138984289306891645197970636441136463137876244698574951333844706904821780189382360033489671542043872931185086487192552554627370910968664182913699626367406560909315190256987081846677356278865393631569247298502510308099735680408635556522763124442765593876932675442777609054092220034041434170816679851285291625112589626953816094517463142281086550914098526859270014000554915944496768840175467078158027654972668403243068105204899806133441532269648961269626110418279005894774752327437915475385377817442017434711897911303421698792639709239549144916396047374258667683509701695215904634085809421220908789927447043729994924545946452138665842085706773841532581267954817322686826444115375990779057075736230888529571012074717051345954738763349335716378661800521758634300480134043114904908189627083370750969272762120728123196480563510227800423703939156255382238670391866740837001373999449801334406266234466853622961928365757585460351072426933768480212270894560155059067707389698634711461893431292924546930530908202487062841767840968659667294568315782126408026847710972083020695080913120703458211254008502907218961957078323078087866734796914308457978070191362914269136775127111906349788536957612656898158871920190485534167804357758122624394927555207209180892738059218345944739562747598887487967869847021585804483606895751048300644737574431666466097287432777036928346162765050318288925332225777753713187498244246939795901969174426643491501990526375784016191560190764939751704549818914331380568726973927796754217159538459096633911210181963595310888547599363140989977326576220800652945178310467035779621172112626590442810731600250292054766367281159642780477877907753933580384296275394341872106452050289157192791201109556891986698592159101007588772853379068019447548345773513919546908734374406153797811220627710886382027603508889924768252083389146330360771822408013617549991528785720279949564771519533342915562558902032988959331763449591536157011708103421416261162277864091552887655983500630496045703046516805946982497897795638228310892156085519339412581625100743194701154619667602546136862051903697996286580576869336539599661037434932359978890981585684444962651292977727333270987143257825803598158216505174760428826670843350869747251040030993856099826264665626641582264431963959227009040003844214233118995697283241373874964439010799857520727449773807808081389005736478863272788084292612137036117518733054728578157497009984477803525253709407443261884808573139267848321559382782231539342351218769031018001009015863588105793768394325831640280804885992401063477359540871553687904123985873648813681227412554831114942414815630736876454206753670929868913789973224250378755936573958475960550450017798783376754004990619146833867218092430395563382382486083240577968514801163898440854124134964531406532476613062075011656583893019730460013992863448453330627851308535925569012488577466615684452109827158360402534671126055721412737063019412497512594017266036905466253556464844888248123371663132598459785446115946984894564202989187120742044034675267070937733868113580282746404735447024735301153112694520952642618311906142325468061806431675501932215972071041308374969026414162363711808819377945390430975998326032762496371463438741979017535462386534306346435566074275798655086362562309348011139898039973978644482188043543594709688592825269711237977851487230592463452940599401668540181508426678490432818423039229417372105981561146803283091611103953432672580544633180632510246097489580099359491526159040029141670617955707680342507646099256808535641165748578193311752788308109531314867980288896309183496354459667165393672265771745869741660312778873708667965805802414233474668020329359405759170311152899424834233424888589698829210797867714251286916481317186350242685986095560102692728447286254611600316766481502999660681274043471376680612516681289019144074738758455745612361326568819213451302673070946723178228449928469201571664594735281570152535204360236405270578161471249925981057216159660644676660524832401798381880161839103517711020041403465445889252734503998745955287273717827311201472230376727876060506010782279875767816723753144718329817085690676198015817127804974652578823728340660509906904252042536110449597402221220254848583486473158940063653727505236382109418338727357168388936722641287905576354987080935161982568585509996467905558119945015750661686799593374472355245219633854237533246572941342652033738574751823727460198230195243851010895424070455082180721973993365205826896826491737490414777093577820184843522119070521015875091237933928317139633095114245882536300878653892785566605178494178127795970515808540268208456529771641719000700920057933292746596633317646943161205667914357242095548495774299387998401559629096963648189780274022740053293971944898788923249292874319236462035334954197749242739811897033095522832034400642610225692555332234716815521743986916368378190306231014829590793905263332427127416633981214985554541041422043620956577727165430909419765321996498779819040665286375840300395292133113557015475388037052161711434778810713641816697717904859775162331330644939800650786544495722936462632032071868420286619684903099233446239876166121485340690748209440487285896364701118956351875731136160645774861603775398440510493304387223034558404607318858843396743251899196023527368755912417519897430501531223259932343351250027500057681840369795164916952910286195909571278083453700940146950801502108940333876900864188336718124183019881918551926801492307521646586239110997122594757506383996795188200401703899567367284860880343126346598594743529777511722926659959003783069763081115119372154188781159484710646251557713345085751125931414216487842354739664392736940721924827338712825408131354728198879527891809688248146011495838483489866253305090877324625409801704157063851475738888348100021063991835275034766217431298087864510011064299546654756045439612385066254579443769106457449108408552627067243623638799736011103391614939590686595092776854635664484690590709108209117810102516067376387736694532001763561618952003560567104216115213095763075430437300823635036953948446995719195037676756451419784247972529828772112041704677286398768788455328221364695548380786897936500002303348853536138346663616508468247294991424153335875356756535277026796725537696385548123845787559316159926705629344195417110033339528034040469423041030867926107343265063146045982069573699311377914702784557714798119594190878022787980056454991972743436627597346289785892412451845419060582184508728019401950792224022496994315683985395954671374019570577765828826466724473214274419814315535170659951410211375246450919639035532058149822107041253559741525741338323887176865234991067275554344999967460590108196190663408990216549866734989357455181552809589448639357043592744351770809037711734228279723948329279385142483809061353949150917381133186848647640738728788689410738145800098388943237191902180725057492385600404437328915669462713486009655006755248947513952940659192420741179449988973056778637131603596431820665935357408031680073387058328414463223970542336186506783773469116012159009842861887110789582499803294951836413050986994707359033369297677085063419129606017109115291768822749408633094312532172078167883193868740023317379677079306030065744106559755661479344465946390847567863076435063101273418310825832261057919257696264613453451355789681604192198758871048755681288939003529694212848034258771764130820771841698276433969554167307813150836876500721626674251163842745122153985933104956158940040717879189154684732300507398990422488678896316412086089877762727124986695207534949721841829485328269393632962159350254809878865444471569235816663471292151315018590551668063897223510777126749246296002609133266916855239844794064825310501682056515185840494826582381033873587378617914894197842678881215975236619644860933720088398689607789392659375297888054812059632984384259629652673866991403638040553135123060134297279283029070963076860202867740098034944329181734878517984251328068786733961873397655887797392119005554441113660514304678417488280408534328740522254873122209810285883255331766490827938448671190363721776507716239321636729199827800839159803840612903259289236040241936852233875512471490093748455365332201559307154817573932888551240224574535066073274573571620122271692903723429119090610681857166948948938840030036219526009921775034595330629365802509867069882889878299881937859413641314643219615025310096714976623717313444406533101643147229606948298027754677737337057668910886870187029164029390548970605955799034148129270491838343866578809398592257251882331289890681720596108939935871351889235865531289484232781837801823392436876394854498796372565692963542842500798436194975388041523760416349257676972274124033869214371613328824637614223858807394157108977245536963069659354686766914422378440302190924342560790760624633039759078349654511718370845524476562233641766765931567372942438110107385573288829381148435641472890266681336654862174331614067509695664268084347313778009447769662655283998538123387068916756360635510566345870611323112969376028010539156029676584135512454378245558744308985019216602014514231805508933971066015101890600608760487899567971104013706928268817789161353334251363772237226544778201156177267533210656136781506327752938073595731679532403576920938300370714529654681472973989010455156001361910663223757917749496268282193024626500141992858303522514902495851508682057356339791541045660427612166577328965306072856928744201470681158607289617274119327492313291033352484315965778332784093836209712294500176721254841040761064458795867866197381588595148538739835122690310601942135779983543968109584552271673637810441724949685566464177056581015867693602889341055146894938009416345842220213229867388890730207477517117067596733686851927130325686091821965185391416013389664416258486843860900204082919774215950086170837579114512129973736588590038521107953108241242764854476368988865818039612356921322758073289837689953419877863701264695545941763023184110745216615664559395771291210167209895050086578522956009887716239915651176885867369770981083804716805858162266686150746701837327319750841186431644041313045548355478429960765897897935262828124143435545768259874199756970655465416548847626142287954906057317992614857280807312563937437129014332393539976048369826150830660775349708199696063357792171835539354968666200477927900847081983883078619214005243197413990506461414533984486789845966220184215786450275025207335831656402575287469199371634848980654355724523407933248402565538752447208766004676178814117550034492722735444049526525941986822748506937869609509439423051289188734825787359601773749668887681835243997916329847696544417503543785711453017080106565208469383692685654983464149625569946030299763726364755784346404647286079074097881827370745361488791127277389552179924369587074691831854944349477237835250181598067414992180801921789520681037544897729495965898605015684269715247103068155731484281378849013310284297364219493647836969589673977289711297207233636722523523073775775605727628785740031562767250703655466402536082561299296903053555788215060057031889371000199474554547840485351868201335638154158579083574786956378151676949570673953646671158327356301449914951971543682761280174429281830790044708835255983283581424636536802129199798616642260757037925827047940525100168863867424002040811969643138822328091284574626485843542302974144745657830667734524941037449877024126262038338172656993442643279269680343187248963885370283206947442381365901111739257696331345848100559186137965755885436680947086488150535467727559220099678837703035448501404577073987773144528077759648820617556416864998360419603698090137177700343027802718157632883938413886172425803969808358556272270813372552594601868557080954438871645195184744407889360477178381879610998892680522054318579009352588151403615146300867569528023868142276980961767059398486967503609350673324951478553993021909840990664205248693822935277854032826268565865684040507943800256421658961035972683999876119312406152545138240926570693975655617820833126148520280150132998621885820817045787137928066182142946779202653242790011995705423145392334539937162623647768214838807294378036483806162226038758230334084588635738025524352211991120288152012795480141745984033188499100913731125239338987566073220969655832333632772942392080401356350387182851860883020008111137305529412892035496553557737451326396442307257163218483114018716715890292765302222196439755364753187069711555193545502918377959859426917694362789753498983766513620362373175780313005710144080899898535461978631330828041293632407519560378370783018040530338738575563866970576693725945849157294032184319429667828541407676511116221990284433759303450759465077563658795486303552395888937279483453228522735077590707226899532073114312877123081125144758358893961477637989295422710978224664950044092487341126808279887012006164112912543282110828547062183395017264132462302994521317325144206248951165002628594086422909824199553689025905166767944745159984710335775969202832954686757299174232142094883703780518063666913879713143461767439954118052601742124482435451438107694446558896800548685506839806379711534000095567003311781738465796732720693735553455059415709202202792757985340810218679187615499585644112383673301742202650969511399794354952142990605824476480877885664624601831588787887215400949867724626343533415494584248350578139794282387923799802303636480756754616820895460989963340694072664402191890753521314038739397780744161716485988251122517453366268875051206886166805070762600709840749738428385090975971288293330704436686663937004615716259684610539207670144488541050224856814053661654734591054573805127258045464653172295505974247231130417428405093425402633358432911668756224728438856151172580267408025789663982459310706791117481326955629024118301207115883455455479006451339095324510310513945669991411134625211842007931475132513794909015601551584402144937685121178029441226206072966165271005695822323417352234444125071257600534801644371748484230800835750118489090092801101504267027929297740614560713264859297152500630190920210522131793172734376301117131942307838006659357809960127415857313281257329342437826654999375518286609006572340003652152290367684747592042180044522214292524861940661595375005870641231369393463425931843797962403261107949723425523663759668885923183338377603432106816042806343640277619563929535774522235706957363211091331606048302901906035204463876307759491830016702004724206500223220037643565856754606229754032312574126067373519479011578767855035498159887317871542172981602494042675045459445327055701239682861564504055386672134405953623535316821833552066044140418276680325868308434825070432065314748869279565510783086662748530352437306121193882914718615048398042810675495155451196794219874460055357061004723935120931460607742989676697757066886078354321882338558769676357352962338160144709938018751151303889128779449197792078133011271772239976146697057272444258835598001859376699406002037774333590010142620641728953848614142496512706178621620941290601878548661686143821611820038785036116474162152675495580125112769979777131269147472716230810954897986492963136350656952277614725693480762197962807409580973871140254728276244230466273972628767606426001474977283700249011974323535325886530224565529538358652246835882888883898730123143623960516828656686356489238259853398625293640470148442014893777782584792422165061873822925690791028818553011117834532811360572775556947857175778889745823215165413891782005199769586129090761123893112251279305439678676404089748824764229068678191415018348555912815823227851856639814534525874587473288611342734547380735294965394931759485751281963780601800103126541296917052633308211345409044903323558273309483869737801698683405044552220431572333336640759678205254737703782863588188006652254505687952306446892723339229245509335571235048364147163019972287732676327436673893361034643058203297805065608054028233392491403591857084105092610500677571458683537443705050305937516913907286031534775734900386315356553423488494764041760836317489325526061720693436849819702965585049657144857432861164154935671327651412712677290818468923038596762056617392029161672627502056343774519030042702226446505502435122513485569927100701897647723216313973278071028668889183958950292303088122223977389608943704582236709355944086319488084166400038454323774186058158929889720825693043179993487210906043596417634511649615421481128653248835199106603153033453865732163899254262109079597618209217724379164517214773602557660576320216880839325720428487741365959429059125895347666173246351770553041242984232465270878215261587790300743181522421814327780645770938793582390251504414420778208973034750317641554403598917882656094184681557281891328160875479314224931650905289500698780889179720923105671856602535882231050263141035822129251941913657862572016988585457002357108529864745653038611953431883143881266024597143881666327175359594381742467101290269128339102352369271534159719517741626515636834130848826480971778593076766639413635559574586600249533342791211637173305435121331491267269050566366157599458295171741944379453280145584949343449487851088827365664433812080712649612201696336229453474214725997073422729196028259626765915319649786525833850918493006866911568782909481968857045014079173011241593518373516025448302576056649702952522245719019658130734541524456787659297840161488198293566213545396710913618318397535803772634745523629266359023258468986808579550245125497612488004641041934716605356716595888499665660738210713110818128219635220479461629788175881584955343575864947639811327489716378426716680907753942507333056657988390108037514107636400293053160228430066223931855259228032692385504758497793013800762981077453868149000299731334728163468697639588022063614509116378315539962080907569231294793715873511192451869329375394382175959115197131412231475913729661280411853330111611929371434118840404009539817434452421428051589738558541368048845275801126347840376177497199625868748332097595341493192214328202689263919914926645643254512553565310595654441408805439074609974501156898289289638211551402017968747015347806166062832034159061673047020849087142932190030142579022805133546825343004812188886042902821652351223885717850653798891452032641806325810412687839985593415568117585110863281291717706896630724404613761744882288488527021961795875182070902253778495508355553532323392701394425773463903471322242517081839734116627636102485235061123275430087697908070212672551084512275515158851992440968765598618709014295611340320170298993623849789372891102078097950249554857383498511245016851736819107058363508501704347780235825000281730150290979035665188190318458139649934053802736090662880176044913770338625441768824862216128845126178269458955016934003970790418632789364912282967041335324574735475283855788912453735032902563247820109268121074926354165142440202913297301235619462256344204414380630895633198654380564764243968901368571619182300914699112793434949712851172577768231136196814634982909848119396763317420924019531930126557649135174617215509530478476296081447855864468949764605951728229229775187228635969281149944569765832719934442089965255695180572217728939165992997050223580269355775295438773647642880162281622374628352156884079828103242128775950706288788152391413819512299635402005147630843916281460598398176134209560415936305813814067985862359509610064994434489305347172046065240616844780701703126502453435607284455461413230107967374284701150997425040108536236888506314101511633798556040350165923040806917177589735478134568288324818643704466159333668774361421957217541595159480764805520135622660226418181975804483012718191356983353389115944051475523749729211576995987525612943872924755710741790906581391823922213330415845364081699303695070506822387790034920880814459701801313663675093409068585080309521056408323085218793838476622055952681333281894138329263693314103313695982601841054061087499549274688223419529331325923289851533998783517599218818625995834022059873761000171235025272265593566606343989274396033414879907080070489242744615923412338601203995440145003669388628370720041114293243312795423381716809344822724341841569480646425077016768868305330620264927652397313447336546745494005498108305671496504801092984513109183489163636684915802869188648044970931293986019513322237667728873968177095489377324781486863700375897035359770469506675528936934007976354516047478897252658076789318730275523320413070174699371058763863065477220476049917516540876179178898175104871349086687252933979791835922926865093608565023432855290521393530786345675447624287959733303295441914699754308130874562187759781777199020525311040893753765657599823242384952205468981093370636135534171710397351017744877047282762265096505017970619154089204624774791053079689725225748270813541200985687583879345217167205725417668771317874953193161721564318938062841825153466532950243011333407389616704100257704988488888579136620355973682219332619972262774582700188307456797960111157570152536220834563638423429594762481264521393416265259620158950825472378299941731551500124944342194102737390731732827577387817316141232531462662045581724913685379473541674586666800168236234990632136119497295785489461452864140876652944134423227026507129510019748525528022637002971606334281210357397272232105675228556432042514643994793036150541356977523154612619456533081268935283126445761432732404447548534613050722132208667136870296972913543840130626039814273739413039285099113318354938725462698009255950159104114574241531770363407606071666067729732405734851730656025481825687694637062603038244226950480626073016954416311353063757265979462209725926430218239478087084808487878752678950761918846587325627990320885927768062405901729511664421077505638767622021409372746856162986918207542291350390824190399542114938162998070484033467990104637029572892053986711427336630976239099070630182412815532124189624722040638313974263033032274933675561539936852319174070273903067091523555741965681907998157365214485191903490440507082775628312871117355275634554008007994456439705094187380158028857071148064875756970780500207690489661816847392089055989840705810806629763156000315060794721573795813484700187644159553193211327698278661995959647294244721406627626464946188391212221609341129059727832724548109785080106397513049793269793716607159423261188079106332038053743751976284836266631444015527607897181146696395162542137840913109065330921275488381090583571178872276691655871084944283996564083029174397653954294422453406472095158223496538542353458830278141811906644374113938005616698480266648582553141025515193317790503438624409347155908362642431556377382786204722804892002559947655949506647379390223119991388541264219762123718024516514255224865359915078659903748347554839086514474298542726060192776835069427905056493570892417359894879050915993489052393709027020604287818198576421149958867520027150242874305474606533253865334797704834047478241489494427007123818002290664386683671059588283253202420197404831415656096994907684455057625971531380257362186394447654826987715068750519403446339710135723887315944358979528170413681989891274792035342322158298491678481939236746793917625643379430081779873637440331521418130694020503184428981290464405924465701148520889922216069215076806358229927452302154335148751104062178629209737210712211329386280251039361820094568062203349998739604287266861745499505489307097338731268213834955781589224952957649639340126253222489145878799276233266321834140603193778645944178217862004749682432748921275442383898375345441984695863542688817183512374967716451899904705431648386695306532472179481118598366923300294497657335947191165564089439412386860892040627540005217278287932849667783563866670725081991079385723005368058770917206139037907875852103629611672823105651325812274477422603279926987216333983509017463029897558498626960419292670391502773043432664174302703502635420623628922926759456850634542358404856772349648253990286382477516472931406512398747624131826969349820631713323573867500235970598205537570247653658413956107634388218489281765998518749580226949851352470308411414846325998713229285335340577114325234785110855268835570990588795257908149106435719651614516016809216833568287722098209667190433193997266113101532501421164061342425769848893003555765090038967971426920576482301185859485552375131133698136825275403657061279041038603868587915322732723085704502241109278286952478595301143482509707870352178695534291102599600013567610854734338715497274467851841717324067735007274356458437289214555055784780781056623447193514094000828951446565606900221440906860014280269942897115725864764961140857242877115636906010913187398900801161085990189119986307895369816323274813279023558356291400080230203043200852661937373831413849564459476706524021495174134292903262372487642416523569130496771473116153842284206064204085656091483783737974957394381410907243204070797492924065632055883435421299331114556580239579233844166060689493807369297439314556870293240896312234741020966125747031222021312073443608419355301859144789179339695287100985531706315880969377930879676050782699749150964098655446871401928312727191588567262353763907384651675472405458898002417508304799083227474765728125318909079780278089076272394130804009068132270073056757463986758314882497420552937905442561604595585010914609111477356281280086932758560581846175094671979765066956880930336850922864724418002454773043662484328494536000293055459776480607820971794509176407883737155090903540323711560462215291423836242638751154680789895801741725713238816830114535958751027454469942202455974189380869012426941195764169696173378584358684670052843527059353776936317768499095810565138481237329948246371263588319349152122071838858698697427051213174436744449323717264673826043173612181618642332844164298696016210368983323284736216068917847350078481624578165198080808341070449438175573179105747418458141196619657559568074943502032776169390379987733603416322967149915670993127922089659068715513276924570031594682574218912762930596172311577570848087158087069711443999111979470934336903640696049532662803790510563705306637847425537342071964397485435664800636535548953429980253670524579868718344369601419570903516949611664161433400495901905068785747959205150288355642256189062931177057044434172694830125203428792386958949397463677965713799403297003747766387158452318422080581931699103113227443108784550130946122200600495826349777124005120603317571496235461807882543868956574730019770999611957568700389384463808322642805820542324664368066309730658755588569682113026539162208176174695446846209943193823068228215876269478067161038607294697762611385846610708777464714138469910219552537822455717748943197344798951730287540350796327379713705211822052583345378508069520962359645681345944075324573899870140244139280150074555416203082968491300632563623947750003244066630808275033976754694149226288101935456941018703633701578132103819981577586487948357928045889187253819766423384958182212778413233831350872756739670367714634036557404832739305263145413203570259567307468516372748326783109860120852976025396991537742219149852316001218703541174722653920792375879191906788083268081445822517313656971624749847310451759578876898548527941708948230258178728096304155942314631792971376751478844423634847953862195769020602145098492351343697033517553760194822731324148712582489712990665990919810646139438310888317294799394225452671025673774767590580049184325195838807144079435126033449654389843080670067564020010971462269302782475522888603486749449732278966437951765450527992568492500835945392023184007190875228612147323254517986410628598335096137588345660088410519819706215558925459435132947941181909419450348771413726171096069610439799771975548885365838046286150769493546506435495828110499989158999874589326455702916199537262330238787136215594148593973159262830584282040420651477634216411714372526397433800483006431711102941555625787983360229135048581686339270538042909981063089119531739199546434118960497596226901796854712800023712256908923926821014644612471947204427447872109242236825940320688635861620674276985100493133386175741589002660439242277453558605172041406058734927705727632828631923924135262336200511874658769984944243375240011049043004998468267174051016406097856588318929838929636644314138171908080844230432463210613548680066869712033886645179891464910832858697457406797424329677075803328983244613501687575584494281013333830267178189647714132376316153442340811483773068296644052674591283757799600096206379701101398522280380677860040031749925796450352502555458751986893966192025527979809684881123477547323994628529286998022741164490860161356776025042011022669309089605377896797263196213147143350766116616769215512826684205685629908204086228083798805886025525987220737715090016769284695769593336417672791838158126211473102002758255262289653070800465524522160386731183316825945754293599205781892231598170207452736802535296180981152338074163511113876780331358372584468280187150620607397722400598293330393610919890023108169717928588097003563583624125629299053492594785671139778378267807330975736134094944851123491584369373939347859101186146556122201582744377374045186715401903077053989267039062877620983769943590803938964121392328030881247705924038184513492615758279400489375933691657424459133807604699522605355833193004760906041233954149580527013466536676832659954345157155762919862225219797732956166832733384019400633067926514443360559557023972640774855948534701125972191638596647097430446716150193803619552470794608078463843424190183093092587884490651224727939234720660549053643000945842076767203173273936537034596376651552308574881958467745170724935208683111602834027431540198394862712300788880115352086508815762022755749057481297443314340126535150833525498031443914798120139177222398085246130739046738129389071604430935178992264833995721678349994720181832910788272583357690629056300365951346423841532785000275255712199306131440843658954737104742784207131863516635515958412349995971945114213803661305175994919839259211568580964932893775645301183078529925170600613941857001751227286133578737464806628338486445744622423706566904706179208334407266389125869042668097239980264363274058150744932759843039120327027767888920537878255123268569398292285084353403500481386950935584571774021413254265877729853982508836879182493047507239830356575951629118564879148464057702675016067163542338677341627493148728907519472200155266025120534412150656826714641529303382618745251838541860989398679393032673885764949344398744739783103628582038815555728756413025007150357683633532479218961095976814312226182097644080761152932333857621961815106407956479689969658257607982627315493330677605784535566384577670834142177660949474393513533978276586621705671475991009735207803964362422576662191847002923983769258789092261210758341030604853223940748616026108074321114091517723820066057317165881598317063776269911082187906399958611126759596270332668461857089437131889677970065306431681560829725352237402035841625641355474484544786702876198766586486641202329635828425971409753912302477632649998580817057146419394339336419128591676105033184538585446826138647563774675103410065283230045099939839796203730104970752573788513030531057720634432216861423957068237258536052425589368513326301264747501218628471331063706567019486468220529646856342546650967944785723602001702875132093771812065377519022249011029562062661168884699253326865575744285602206162726940089728553627718366531405327699498526105138377206186805093172803363079040075827270533795131998482176921205641579837032781191421586664710253096489709905689194658855198103919221907947302194682725762295316780678171442366426159365960223037210047165899947704443604145321552907092260101360238753844209013384160071206756122891209630628025381451390214263976765267582810495151607768766298332411792603672871507539993856299003074546007088916204197405401856701786771038506409951616217612129223039081741480099198517631119394630265270543507182121608313865723998348508631303649358216385269390434456465375228521097239141946237354411266454916973752554325375403033973157225548888412495309231977551204690339222719469620078741739481675559195720104004960886233142026098476887255593318368452265603495018928979306750035172763970285959134297605405057511152778980814595126026434182953333998253948851812398663595843084476294041475624032554691009575858446980642070978921662778343980329878853214320442882443901917522288193382488565497846143009061612111470364631567393179072448679641075863675772394969554721340778611488910285964608806882794461071812503743433238748535629983059327376354825730899856362287072496471634621717933138759012784430402911132346220929442453585759689483288966307634632261723991507272481578646924147624055485049713857134613316816952969580807068129738702931637020784678295455095560695545392826400948512372135186808198853547516012529809362451673368040722436708651835842234393180308734881899038969355348232015591392671302020995173174241431282464517961316898030460868387999689281160955826970731138237911972313744727696693887259958733945812998682094941651410106225946343147487739248355409113189761743806856539164426584986198180727528311941223360213480545695264785044762865247732124032047806917327658741313964116262398264380020979063574667665972214993964308695053504440833963187347854104623476880423626319766690386555627009321806860811944753921679394119089987957526556528687571685524705299234965807082106594245347445241912775017152532720383147232712472666842451571510806726931704282660760868643313541595303448391703933577139225068586906959626715055618853671700434871430440427698933417647072915111189007715234577871322719617853552943043626983303204516810223155891636071960109191999110497032891077588769795876866942276660942797143504976062137769632233615635010445307990888653164577310396300660506242482644043233557629917631382413891010172062920073012200474944658719067260011872546116146490158070766878495014987942195293173677009300943611926339343387919554284425439329965808706394039323980915587062337438113831004848543618575027208174241157500331002791866517127351093234491723224243266871329200047274978641374526307523762255604790428356224440769774693684725206130407535985120937118423693791721090861229734827706319174110366476933002804942252314545241941740031359541748101303303431799841349074045317881752216219788667763593318309253378098223672814087909369343515170563779096941380410100589631484457848056703295297363831790260263732632429565451344408130657358364886954660876263137691515939103356264447634358813982775445183201698116663386430336173226454068644020312707081484722195036491092476253765241194823282200999709445497056923401482947315257097547044458589222934450028667258208045204205316074589958403815176480092067636112643038757465381277936131721648989909483123671983900000606726677569358952051942237907172751735208691988004790895070504915761818991884733331248290725214144451956806866520198356888274409746841336349557469799074064526963232516824292633381623367194058684025600423013229684699392116606696527944269105372062809651298576873125390803020583710863282346483730693716963782459482020229458872555693034000587338535619279910680996624063478593091165628504933977541862862134590794748108696465737895517143352505015075943111989374532998632470048122746376233764105935379857659112356173866692319857304958592081508411084595228957459080208607219493601251975016700937650718698530675686207758960206534259203657921537773122027387659666474867198809721246964431581695826939302700025815039168856827421227611024122706700777841336523553624281035546690461797493759740458380901000932780701150287118468498979484450378362805286991409987119424821214844942481563611780774249199669895974477410450599114945515018750130152945445494775631866324218852047623785209314336256808841482247639246430004410789553437124585400162613333848230481146938951803846355471307561572527308425321167142606890650467585483153723349254714541640511491391401847971248226648875888929513198571287430576157901238893557397354320476102132211818883829236596767254965962240506913692379107970815926346959111429617511677570772541865288820083186631008908336704734181771391475389728427594589226170630694032458437055565768954788080931776117891319619410593799815922227683875613752510985841274843481144434610926309478153638450482741725939492717525980913647495652021955764460396597908065827154176208584881697161693958310628261468432809867241300721044727586675272214127126975303826281477094021076584188133426267928722355597429046381075899793158245817447200966780468379756173769236779057743138833893648033539888706573043192522548856115277323153462715438392299799473336021137941459929845389276602625485915604641276513334808018601175415982787055749623945655981526498868916859013913358716709833109219487774512964513994619358978745262432686631273440673323204503666931651082482258423653107698813351844422976394437162837293077892586476833288370788403545967841493199304933700647200190035890048234680997692499840416800992724679673641447776434056435725398731078572350340729753729969512743995079461510151619519173684950160544200078743254803908421088935037991231166940476229540144008102796452437123470264203185485259190299292478605490753542776196863629817737747753714401472004324374933367415155544741917648152476258745060294538241113627977588196893167504686516579879139177405432362019145605044368253917658831458025304888539798522836328820012230459074577372256257627618075764283274725084147585707180675142638156428195719250172313923792516516365934921863404669499844766968824709253651520101334244456396171140861284168696967002431327486861095808722823219384413875901915221052755162425464157006358837364212935964249967651024587466284463365993547411293350898460848047603014935060595749862835990705665510849190330551214944008331439110427712136299188410592268480563874892219511651807256662734044881448908875851733243169695558725439869019915412564175449690579154151756249097379078050787097154072186581595074312717403950668561400516930307438487051885747321681685507788904580205460737790758403051449666920092854008947139115342897539343515172948760829034241053696174597419878446420537198894238662619092888283911746366374053391844679097955553361391398108809889221426849195214979153596350086344726361453562296963383533227147748573302187568036455307923240175512679393239788659055636087649332226066581256442541974268201409082687489684076445938508437929099140741691922375702616963463045715489569165219807008384678612533719330734404088944251128046847438951296065314519777736395704193889442552927095517991802539659440199335154526764910695029941337556416360043649962231103712203775849060873969660370112732288913059240550568617709826617764886849052080104384331602034218940640444209421642285435484828387113659821277816763828937550535016139529887390769383550366330800307155253210584526247220128332605332673273176100801572161323211268512172426360169375914285596850246623563295248678912920492591119334000266243645087112397699921286413563923895664921804249135216180083182776832705404335128210787725075611902327255086137906794196381217408058725946671125358383586639090074548734329364318565951021684975800565285472457175023499505678914180039546741604987161665209399504931984797115667287982224441414868551008443376281975652908726036887689878540922968047008407065185057687137453595504697423273974408186614417367127566985275418451020435534191735180515228142274237237623525083868073669883817467080324643570058176232564832265114441798818038592515992909870917541810545107711969004283908012845229672170316012309973004848369998573908631415996160989853660770236654601776803553734040572700698833781767475301978562910435501973944241206158638537279661651389670588931172602105780080801379266832364757833551484235942748729344417374540916282394352361003541768344492537419557895783105776989983753460345910229913331208637667808110251648592001180979061306306350230901101501911373026099005772670998910248720082683162099749187552110141355127081464132120675272984071408281373724447560146992571096121864530551749296773267735825430871844816492055174310973075011978503137552904080445063063085001139205698291789628083348171847982746295769054804133427452419829619132728647078279920222253462435565057182895176814153366050411298636094000914763012361946090244195455049768367348389150650288909172738340541457452402326997406847461214325006025344058082896412360814697622953730372314848855536815055015234382293708043143634318418729710100336232497099227767372046143637120376131397019432717959795667957980938184673285007662900310742734112671706547725305840164850397364618287732470466451318291412581845603328329703476420126426552005458994293402803107523916628964596450922674785959548388734910331523206314501219217359177103637598786465955503818694714270598158309746227429799915267586518095182873422089899093084997059013079306551012230747581223963786044739361718523385911425144845067692769285942232749440368897833930420968440489541277859804843852786955621977372087630587906328697737827487019337723258924973817249572604453790560852780947115336778016301258092884718851602689832416625614161471176482823802192249512842284878479363901736519604100706073859376369915443667905103207069929604341596642925953778079496721058510794167525258250933915843990807949582768302096990149846334673864802171785565849894261787258609361583251219678029197205385268185947258288759056122630518084618487496238587684775512018079882382664565830480967049076431273865825432227299692941310095094969189229489722797512461424416873242130934110372852726239856909494426624700811231931431660595409812370859541016532403742161572432429085531886216205865975739862099634379509753438685458313471761747125218882091531061041910762614790523729689255314497673352898635301723555122260622910632568864649124198168843411744632985728400976871413675741097906233758481407602637675217292773437530713221964188754908477017228669886693772397744540248307055161119613403409666122753673069341299746988164612936060996969357531404938546401188016843384310550133782014840997267906716640869693749901886639431632322683306813262928441984627634053249448137975818013916902282139062870030853428049202953159501675416163917658910930760806057732370788586250731461509001087503890139460130961555497042249648442462749175940639574417287454179301113447997720900221752402800388677402203645953530837820361783200471771864419459652115976084568392498453189674831665898002115609849789693355234049527887350254395027334015490639289957420431486857460911185048191914496949322143298699896401870348166730256516269964636831169165959099243549641150444946553109748797734620829885105773206995476666216276582671412324830091194208223501689053389312313538377979746003146320290674378789726951578789193810670505048186713540730557205768327130059606430300188357993602250316715558058507443921886972858600342485361084829636348259463946004231555684469500156229158250590747630934315269728765864759807271074326639327350372622902871222786814757564322931251615479566556842071262596167086471376592298664925828953815984776674100459235455496571272980081620810031114389244724267191773544174232510485262490066873847878682296620559226101776547336025455624738412838700242739650139611314364228712333907307589099579516017602098715801435107727358632739070614124469677448004980733973270105342481363236075827019379492544574120200032191777747569819346451902594719494083758486767622831738761951715506836131153361143462919028666005269300287444735011576623678819393352549305713646022943547535678609099990625926539628452878741529633491660953747590017709336193864792268946265169896767018178471174864005498606999559006935028763560687117259028244675868551631955243775207429441939929204898459751297411543655622423226260731303815318274482097024837855900683489724994834438700278400037238657510007415374007704103265462093451094939843792358972220062324623646606576965837511568710184789736123531201193724168698824455995547344156996429568905857278289955225424654625215846016141314913729728211586168098616354346703984537017230839898786431755488649949044369531478221675898432006344855501804316134592787916783353348495442829645656207875496035924594736309202246551752315322956202278662868481315716603607816649016396785426697801733816861184067139262059912792321534922287645565937682789864620459641902577781819044297156130911995654783289540292503977072115572864912378266825307809163958926560765269041004311980032732499401875225241906211727803114671196060605174002350901108805873939080788641203322663498341382833219662637185352515486836083871789477335440436593481362035062055019215264644077395998342333922273524646990857058057901276746324157530388231418322792895936942503072585988735052092286006381272269033241807634131314024348169018320575947560050808068408386660624874294473151229856736535345153361537071432503406410522618360956086073578841419687772092063558268426031731432521791885228484562787680646978324851386336257041786195988472066254731757476756481546097102587906480554236521635070198432756369183498653609308335834290956106120145045356531156188107790195413678075092372361690545872072786497585729600916147123975840709012683684662885816523820531777839280655542489823204910310667622771623001373500044650371967734124391533432804555751528464311296283061950703168290819028700404139128558475834537612018537702742269577566576015100776788383757263768570490362548448217574197750846922591742617148129779205239224782727221474838677115582772176006205332182996160642447690983877456414281039303629072960569193157320008960616190181630787179640053357466428832926941431621880573378014561760549944099965002987183228364974855870881380999952363312514594054261079584613926613552772361848423003558617455255600601857952288401457290781483093926326091174395097227792500033222122853116471184272966500112070438133606704740571678550162921514190335863948809226393407630606594186832421593569404635942914339228442527417667243334778947667633984959838962863225095097692368094450181519936362275085327870049105234864635156877996813100644630287785823881425206601220106772139014920047026460482320937161632928217750760909131815891178886127196680767863524306258383333021074547630515996355481417096548893431980711428583462256135352221681354500020532592512935869252266009381954190665218562738471975817590242053902212393806729496790375952725754340595178127962915115523975265766368502362348759895186327324521316504217814012624903897638230893586773421222240962019465885718705395511908091554705633285242635805137651105821766511708987588562776731628368377779157134545428814726419076210876359741793442770085448636984903358258840103238270351386832700251893109559973090944510896905851809186438659332910066395394971148828354672119136857029915302411160272375510836311816819748023027052445606601105468107120879139894940653509487703099241155982943676420075427948584942115885652046123421066503218917191934278774378359388407659122050887602426443994037648741836921656220415325276571335351248407417563624433246604279390577802078061048256149026697786814596475557526734698519047642615205509981205086699577520620548159779584754901097034136883007134165030671868934630643560508759952761434549228444289483783816186903347924935184921389537536961144985917493807155909408219001165547159776986967357166786642134271520567170498885549633843990544402681537433250293315462053786677720243617628860707563365676563950617115853838741782189088284583905820405916984074181810029596449939002141751291310338378920875329969321305960716466152130110982067849668879022539690843826213178098390935000840140985192863443034005474972649608674761047240482629038012859674931773166220028456188270726999324025612920493305907575439780423711882638337709171560244130895543653116844328635726681040776605292363110413242492621219124406250341895982542214332384885833637665425521039872774225911739803131620205684612312703951392121875563619375864972771765833345514277417284161874794148339616486463130408418726871833600857134425314135978540819068471255179814210248752723394171031312284000186314185998677189914801439700354222766795513798152449987079993941680510971463306256285719652318264074986852650597775255116968895414278756450716612636335260069871660222392304889206775131399768866712626871528730481714795618541324711717114818027988164299831910386006411535202222634435772340198179421427112658864849070124279760555965703264189951125802468367778418914823830998126172685301837827709286037301758560998265031030948883151751972510678511431981735700106018839246686225048777527445566977471622001287919764726869402730299217240919895773893897777531125709922222671670856082649294773298243114395874153150534443332941556374201631554699834991703380992120945347907378698434849617662197266825913694734206373604588748309420279303312565928371447888143885660680234176923155090954645461099814719056322305862550148830279346344452465455377377315767806164139491421000671038913518458283223842758253517691043486115142264870433940671418356501398133328933231652622666040072465959810250018486950080451760133977810032329409896246306031966987278161116005413785207451348797187328650214677170474175534884852012119438927045449293671155185310964770449095127846457213090371063046006962048586910840453284694299131687406171559075082125952852670411996720287637801186091439777894960898968519778778604786005779893236202564915258693595737161791574671943653626103258407788348304988705670082525437566697263225069501720388486977292353808695126370139716062482009805976632623498473119191882220529709664507423563006913880079620654691056352690463937157520939578089593604339793533898180531993668435463318041527256593767326245075914928534245624533594345217390918537596193360913936091423999385134271699401760549775347211777066295084323546654670998181887662868379288771669089651506048997005088509254074763754386776632070515477171617405014522028999534195705975133582289687253292937786301985999555505674765535636713914769379300891393132253223813413978936090652347956746980297032736384136913619306434897215338481239064656793381729620690659972268324049369445783579057146733979466391587538392550398917036832917010157963068137968849525709973722754427595326655840250960967338332643001127255892917027341872431926112771202013134800871016915373419337718974978517317326184939769673704279408868373543551668975756037463700580096957612967486785847250188018863094121220441336190507027670996733174464485124436968145847630556679656928452979009388815392130641098075485394592456854387570655857256941186002927563709749856291263324972256671030696321748760799837154909327725497912753767611437818815948993997019569631873616903264946753241150669174948475814815711124686942245098565982827774460930706296179341842567404629899379976066845829854639388587515900546281912457310574862066974275578753894194637598813868304479239935697211686933987652591087496841869531021643872626549797395358525996709680617400316896732081413139176945368671183892435610858119478426098572858318542423805272927869700583269458873741299447967825176654120430513251710819512841356624286400187236372422760267917038284501670024091702749409174544790488234003221282309694058492460337563375851216116482753426698029241051501532033059475454658295908204717858058442055160507002634854178797532398118156364450407647926110584357905095398971384907006013186789829714236884327726953516287832553008012466380015233210076459495759205581403445601750287693501856167788487710758954168546686586703415766232175562662322034301385495910340916272741722845202188510702022486936248340606194505568911144929642930291912463548400032762272668605373506621288371426820519924976042144884642528142925097107337928999667246297436017449585457357139930386938110969490936796904957528345337550942387429345212355236640617960713037805183596062936693285716794191651947055839141285432749040421876702297006063973979801350225247600462398012299651773792605816488735009076344686310679117640590775303195276549707694382045082002523844722894942859063544302402265026321149935494533293200131862298712620707385704492075134566998553244329490677405351192860769697496232757594599911861602829756384127294986052236760223997367273054779948025079055457886243052060033020971716171993647766002135042034193132130940243517696567154589309607197529072463248404950248082343330262162820302256895143360243803870081896655365532990102455763545057256102372824547766667231519689518795252169970915536309408758961589273197243916380817275345219684212306740954393010409669347981838819234042653882589464583543839146778250288911390938752579359873616065940201784659753299243029519000441277518216006968886979919630606834602081318060679848017928202793161802440355693528828193723135141087073940738296617887482950796694710116124709141655258397051576959793263561691901577786144744218576737657614400414846371837196809260929119339951566348854215930570531250146210567627151513838297985183811319092120362545217733871525983601840846740549176296577480736560535305382337070304251365406503811972723118611058897385316507285934760539916931783855577653810987291908617817083498058571590268054280915896205292369917788727701515132266577658471792161375927550944205626880029311479928718509618136527783164302074773226180687780003056817624357026019154027897873078207864236367722608124401786843337971436050857393798619770777008375932256175291207775837146607791139689984358274220192637388809539415573582123736467280025935111945499509593490832533507650519454611700880356453242184686337080996355599613171263982153607212893161919454545319440644047912079953060726845209149803264302410863185732101348790889272938399874408884962126110290146330899919590082732456334386008490831392786912970470682638889236853822387307505660305201466001210648545068182061432667598455637966975927112576216579512286325922504548386114944330994515463887994958049056412708663538613221594904689215162131448129256326980742238176515762989544476557098791485476302546463379216752550906536552546082277495438913267043320955930863331069740534690469380663464346690556307318361443679625020448299223822297178819232790067828684327374976457570473955235543427446545110402008763147602342527831003426766431697601775772715296880151152031648054630009412483736723961121909174865400966277030019501336947325966869282654341533329311771648921065423537255733229991959342626855191248947178966745513067644262669784724948784917792304731697701960757206269322242365634208987876402532194143852352420401702005850779919954783592207156569626487836497960099970243131718025684682223660837938270403385928876060793277281808108994657149115011540866828519147080748363476847329068213581640335807623522508640409297969658467684750828755739927617885808951288010375794510286035709930281570903353636852660247854542320160376811361254318929111677694988237129631783739027901771636400939216085290067927040424645781478504708604932818252821688572295659856322278088499242313329539441282454997029662988584680860741078282826965561543256624588340757676373262944367790245880662874638551276788935924558289786962787515264711741491114025337466544656680285572307617024475175388855383112633021596234509402725797294558153350084155521260341134171044333981519943129097143813444340772108904874999144154107113591828930816644100119849962885184123483210376540586794981116107888508302834719423369956889583052355507297270170782360800571996241255191401851157915173806592463348528772911132942577235289440784106000738466208720016019408979033662543334335042731145840472723295947366868581527003961976088800142524635088473431193456413858597482160336846119918693418379553320530580630918149036059712435059436730410585180052169906151002497788719317805538976182248809108888022287718725886025727918853984470459772818501635595674947536214344796048962108266086646353332791612129102214574092141684399633769592549855459677022016913658825572261317946535376185961277491040393288828474995141086787267023734018068412997239608103392073720444594302671222244202588199512347512900341105991046036236044394633936343125453843875136245750866348139697642913262911819440733741197616539796020237423255089790646606969709629518284201468075615882677612436763398126523029371703511878715900733497525503070824391477428557764325618076846287854715398487842800214036252829133365228806884202495302393298807678054765227843981104321210091219073137809353957383335399737132515988791207903424887133854682729002774888380938256079698486842913983579259943624977271251409142077110982823400507107443445034179124774554738465045981384368806423496443139137545267289404110651369566443642680208243656229159000484944105159439818438695825069770365277474519951152173950540522027062662651584066835681157968921816590589182953536033265504341479653605097696706420865169840129421924930081783206979517738954573978966123678983552180372318097313119180128422530967696542976157019820845656823116596909002951172335198115398775049357994882705978444164675565310455901370806306540267459527618171292496399909222674420401635554691008699250645342984587406936010683976624235640069635094104430594697342101872463482117996234793022727648545615456701073039899862229410659006012429717586426954973733715266521842430435898022751667079360157340614237607206744187654071327343636262524570524964720150461234273378118158336751639126493385687229073971216004331167663169054239817906295381991968159130459274726416055074891955385731004990867980666594158579156664749590115211670312467787998322374092993057645494584776861809646636632606324255325875065938058967636880410286403496363798297439310555586199933928606938580001944298724917112152508964953721259435812059159538001874156536761059807234747490365084690843182265834988737789740922033598426967871016982786297793638987036792928111731288189585812657548488402587258201776049075767459459579741328636899563302783844516806949455814656090203718640821929377658830632579568321433428838727136858504366605571460456397244647225440986075606310587759777193412872080055270468618476187886747516477292821868874290691959181809401662137156481290542515258596835186631238635564127711052967749801787567355346789481564453528692937272269119991502963538312011056828695717570416953176151074000132510062282498061934494458430046718573605869617181597190937740365317655919747100978334406718831227318921722037948928521304143118661710058916331100181710336460345802359749029585333170774155595560258783188179643610007958011028886395028760536722512808224265491692670666193204452681883899135925272020643896037780534910570112191499887283559888695100506922947416433014294926947477106236190547821586077300652474219516271668572256197187168430996525328511710670672512316870568370585817980641164155354387623891418519328253355076697216662550672692359164324603922337003071485677507018134341896566294767255922541331883155251250691687469277219189114585862695685597171898680502249459310618316568442102923347503520736266305483155188995563615122872692733863775134018614003623809030693371655324971874821679030542778326590251549063566183468272301025748883045264459169548812599070351170403394045061254705598219602365103896171203613569262697939586678980366597805321909193339949464618916061047182104848876852900367438308111840978168921644523263541086619544640505470138329865448962498397161192677272667415049250682781835775725763696473465435601316080208989418085782761351291017342456621556211996361218801064439961981885309457586353376337347258099482395049675302825283446831296343904360828819836576983557109487421353190210516553431899901212471491079397701663104294990824122597248348774482067653859973270456571764377272159568784263881740718262691860000243652613715504588864801271560371592290615838913717680074495203712053227445729382310696477974576750518083563992041730643857400384835786116174850094372426066143413533834521590574768050552975345394208517493479990129165102518191552751460099843697903948516263938202237060738458104693546643095014430221771478728879060765487884197866689134666490560505698567011095288289714216581699760983371124090458767879171068218570762929438040743418235930058911219251068339513586176046133303432595522431159026349553714260522138148192416121983973939233497341521120244371344010330016301519036463027071509851457168207475295304351668019736831152219254287655550401537300233386875907745189599478365228264825181465709009762240764133674265960321196716206614973473181016258722716266852527301875333310106535162230752939931058588725687216370771879287109294606745876384230569583698939191581868633942495187657282953247787549102214837402796261811047009090306524095930339077160867834231613131792225083503941824340082871582870967842420453203284415195472443671759792746171562668740558086294986169323719930181970726042062263789336087859169428406358530124157291208809968801901607753279753636600094987382043033935501995581221517946645815542044441244798532168369765271579117814449980915667436892531411139149709978460270201848338679612902208093906262638137464053548800018078130593454682384620580255625603274700638676847297785054209221639073522865598528933453738066701317456350167495242749344085911973872980932808918436004024867934899886425732840674163201468310545691914677538539372428186375990351540184161572596942485136631348488889013352521243398340796138686329994740520119829900089180376525851165136977624328473902883830672573024525094783129219989395791458165947007512135138026537592188700265377791532114759835350630107519388654092683339963873322438735284517204391752340982812479256938556001392721590872729357844517911471534055988011137423093115888722515630086627876878107095360034197076852998963020269687427181049564742338012612508100089442541708922533204138374977512367751294749820082079039307408728959080665358031445688377960178073833384326605987773693433371307179589733310008880499870741946446046091914557256234477120514451112367021840226732206953412239797774048263397440419514061023281939429799719406437797560088342819467331941700197221811902304932114869741233018293825007823774640057884963880160066614611343637336118936428649987701142826731990441806096903829990880040224144183980192723666111766150637638812816176736550231268757621480882750067097721137451902208507574298846050342877229336715653136307695467852573905224798582322803298499391263272933843379260277969547495227840708035731667573127237564472756112772762404798485996683688046585861401099830415434775434590954318054740655119418563148904966223914478830034868610904767807927133592589054171170872174919109513623925336639221391440114339627918219038419303470629397901943902455047528314088016746746678797501415091074869396408902719723850500408383938369727587154405275162753604520828499608925702604630106095902633624660765403360952530437740440528744605031730492078734458703486554540549782259119684294635801870325276640079079336951048894499440747475348474000003939938639929212687091655491663848074752618068055291986901920440596483630498166958485480558492657872462382579405034708366882556543509451350071033571748902674940048677946772459033382355849891845968398137347844293038966527228270867445995503834489147025300370501018041848515821637363679198268575136943660258523495477482894307494281056294271928220232813362793793951770491660337907523322535544483059179456610018669346792568662357940361317530257886718333080590495476309341418881966920957615625325350926776285874821535392040585250359033637654685484149543952523029826528485424623258186898090443230779920194429177918399292789907647455943488788127378301670797670669940938989212599420970549389946839277779376063173243186271279378559207287809682594683785922424069456927665570510752654934014714233010408249492071626179742456535563259229046147881357047297420598180692184996998880001255377467082482974786732872496699037419953019648042835402497842758055626609525444028474709382215995934527180965235715384752969472245240774730241119796785944463874955804885531903952913473283917789307443872091090046657642317727571833753180335726922362692717150410000568178661575016348694848374600925213383892648036348689126280669839724078500163098948287677264442976968283195130263507762658195092964964741132140772726649017339682927518191984680331565776807905435060950556895377562282927723342746277283906140589310104847351602476944942733407509716845050752832270163243122040485769226120945689055067594493730504067883768450635910842140597255560694868195969702930271003935315959463118963628922276870041159336979589286088447817737964435357710398816473488952325599469327179588605707075853344279087308541078099783981837453291156691845514685741032942081509018364125233042095241514267519475892401756826093202786843902682570524129811203337704671236211140471881400803159182965701232571316528207437589023596879330358013740760783538085072913525850797529115213874738553932733393004468711506028568510955174944583695241338583588811520570610455171170874195933073572398058489454525871707035936840093585256647290695766490988581590452919652412516125885345715508593360901541934720633599665713562835139216356219938259251744356442406575642221666081801534148599164563130293277907674760141797943658838063118525324016864551036049199403813479609578657938544998711159431264804816365236201497667672699983111608098406188805899375283897936341795780468429692621268610592961252219844669474574234326490957338344141525416217668656454488991505294524369708092208437707060153434770355483779227218541248815239207931691998378477003040987006003221365276996328208069019243465144406967594342493825387226582700738068882759387489359933453213408064169036346460426295475842154271381490767461799962451974664305479239908703186426457113497611950337331734358410057939999995547551119619402887062487784123776634242896740702154238902324450750190311454615783540090984771597475387037980745983359501754998040071233918675376477877618184655006793176819274943112182940226354206714279111764026182199987280180148814864620575193474883043657205375508561564469574741127550823992429566403475997542332525874984111876352926074336392610520001098350513394049230564773156473815725859779453095323595479827334626162777103957989759786922838097569091430710898529163769783867074995414045870080165618710039742351788940181879196770795058419802152930881566545190530471973836006287487465983829092539543853476237741534452282187783558905938406318212523961108210516561368486946608980893218382004104315294797832795340360169008829669834998585255867165520179864300431745738856667502528346216572061560766701956772558729676468598312069025488788277764663193229613361602056586492603078189928782291149089371462690381543950901033643381734532168731066306267207667972466933235607008443249580728812056796008359683640848724470872126682395280279005106520457140826628715954757354047593909746899519903848133084327280013915440397754042187352048252492078057512508825419572787920084854638860395880923874714620542315534237734255504574660598907527907076706205280675749551477059259436310248352349507160188914485480350306885301926436815761501615287331229989229494878258934818861237758451393164948873331149361356871521973549381615625045115270859732513546745996164281288473293121881491557674950474096050385887416898719112072041962563686664195673690107364862968363184343399606687896310903509627427860346910173456127825545702872413631705049544214518845922713562153478177841649645231678101878885821081942841857297910728607256130566283821622796502217637355822527812739583323393865396604297155338557583553559111903076552812130341357146512764238165542393131913254836901793320785570810098853210456782605715739632137626743094950330074232403819051737837333287638554592036729725078919422780269739484810204704993398167683846314708997837473069703253533147137557197043066833333553149201447579013617715548423018463232991853387393531360756015362852613625671996000060170755387916096926861122727261099777074381309034996904232659483607632944189072943023485879761403607109374340510536284814706263372464174894802348403937618674808544478466664364049882132962222541698934864960934425352789626004900317173509293095916979630827372231423105042840271920466916085523886038331354571450131692681891544472934794138656117421164853264150445469981695990326476860458993792793895821408897202069724321982028957221948470381757263567254865138025337276408620350986588018579273325309420006815187906471263026864766423154932716301910891258069889190325008297292217691328093894278150102591007231323920215696770539999697118794552060514307563770074070290738728154923836561205529311117090318129491112328470978364859538795754127111523572363068402842769806972364959983244564734415164427797616414337863417927053450574260012042227199835100347332212687353418725349341663005892790001425669736114022418610581157304798680554638358750109163369219589585059917606960287893491770302001819199794461964174053105526397521208883442368553762211888117601423025083931670374684725773999309967533525839810467656090178973620310668070148845813780632127648736376554053076358681091594320464822548193742270906456181805953745562450307433101916934089257150805248681436703043334756999571875119995391503478375893627052417302423570306635560436987222360660372378371941419037381684914051718931388262318537351413657327352626496200204996118122243787342680970351948689924901579392742249430921951586401527557090640187266644079096231328860922759596577817431210031514947376659158270450678455436509435440330633375678561236372156209899346961883939798040357490496953940766842788482019933398802920344121132564629690272609915612454977054889283129034251036013666895707635287004812516131154956219160562635042305950950300812641368039055742576157856505974514041403383355238778738204645584827836824185224800331687428585967766577752213124868895723469171030310573959518875802662842806633689971446215466337704696080285729791976693456920052528513035313934075226836279559961677539467095013704648118263702892876874305004015985739699234684882978626324431483660222401103906654278570623614967100856089638437327587689889195797134959486241443550379677931483658467500600834918187900286326689079217371148717777270261918281502370095312246088479698932263705381682665674993095667836248510585776330266340692883919776928541116060694881570638415843262423124510482728338563843573823062758546006490519872798180771438362451633468924592488841923750456633035104688080982053866837014959890460085545664076750119683831102288620721723899203687149481096693530355411564702450790872063846815003575566607079409676054172762037851063122483523193216881029882842145791189014778752509358268993409304907212209793582324732113139119109387374115380540629452884560358740528188328058324587616493058509259139514740574366255423488072662621112771986618405722842839242571211656351936879329260275908087164708069285953581787821891467064031441446775920867922908842233474998439262684995952416541736384142143386427053600366011763551429836228855585981695521791409453513862580458482604329127879020039135577778219719869111181112947980458638564301896411457958702806725551798690973669096785962461890503100862471698217894753114499559140768264889302184957276294882870987818195994544374010418783700751863203820603543970934021749859803599769207402109710316056219302110528014254303545880046639525370381765300260028108559037858543305109939392574563626814562663951067225250184378098667783250419291083928675017769141434429468539329995533823143572936606010168650646015083674430942133053377868051272374886191754239909364710280584998083870896137153077099116110746127509534605763665530915123276371918945903709595812376281445352171784407848550537589754679455969070909464580719929295453765371429324166500358017762781063214099004471897872475647066797178444645817322145357922689338355305960236410841088560015534547313523623277842576047046372498518213571371654707808869206028300284787531806739658953581864239800726042250395921499466618158651969214429261684924569399931559266790344204309641813173941535123851918225457105823716617157779604080604959660860036343809964626616989105196960131890984112959617345582814368302192603807192484366825411735878706194719186889659974721426303540095751124887009964023979013851620695897396595559681528316088620636961159107310212450521615309519646377807823155749780184286991190999623170529849559429715037270392350161853573091033684941275711474685489841131335870830565355517921774812933584214825222801415686992506814764341077838167014241397829274000430689619524997554343450225735299415452901374335605158777054470541732158460682643939036612288125598105201686972662361182215602897602075720492445847895124936090943163537486960451981656432429204174292208383319482353483198149046831492126293905428484540658348924683831048187376377592121251105426116533767008950527540477978787971205253366696526087188852241234946808732922353092982310019827996214290463372642749332276142694672925057871361873346956293295502043762596928513697505091407782293640945147674572740621348443750182902315244181819698484043074529749401528300834762999815338128767156327592110659880899469617376566873981031659991704418522690489275808547016609748726761484634626100451580903174686543559705163948013777083107934940580845161351965718641783804683043993846308932921590884013827844958162010505688254079466652347525341293249083410240542228022657787029407492977873846447306435190781246867623605171119222500221542971713235863837921027407110864017309418920608990570811590568923353237702157267512160890072545418111493618230432205617861925660983545790472640019105979918910951135062570609780173521727973897260707620650626221137734490982274536840404750976564783793709175913071228280690689819691958640752849026837547242499959930635861010273606424265247111818300666338145231231788784008611998023027335264652417087168169079476153666832826267491909140058051219356940369397226261319319667590224289214312061335977077914373115165105498014787169616053863531175375698423098981156380956546807600671122487534535117407389155726270729591590588875805138938838753086311502636376626566165751311072703404970221826174394944113597885021013146326940523031134523370333671218692785740836340136482891233837469696385865951579026308762266516636697428270813023401565499991451274579353175493223804569634166703507197699238329639699496513158142686387467297734418028072965678369147671026684028686496712004693480598534040170482553814466883915369539229953506201453226473388880628221633386463696616843522240804994419505624904378024030614370642437166046537178027126698163685405920061710043606444421730861447932179841961249219203362626434137707980659877355968435362710489192543428460349008839663825092012661153902790481978181317119941883013094727195287690455346820597262838129257631066715861801531045926422873268207385155386206602250895410603961891397394213026307586595936666970714221095436797978093792841059472257817743947417448174513387829502589405106619338256120706996401094229130249639003883536186460012544695523450593892618102224088470921114251791902809961580544767304186325790652878273633468284211479144181272016206128842910721109044900245688152084832313838555557067345202249219172899525371174998420503057405399163232323608646788707476494451751312540178497815455964164258628454653534180878318481883341988873597482501031454490213709045544568067788231377370558571069380294699892390744951847421054153389626727767688196600883893409589212597586407946552052716516948254814946333390171521806958975051161961820226851492368678588079316223971360841759662126412927364507453342917095862750358682838091866840669033215530137170862494111857709851599369769596931767286271398751619782443966773707660651088136308875041610768707574434753194536016464715059781053074456384141188612863726468480185981841349664658171288643122534748693222441888709026941174036716674567082984791710136153213908421345518488160790994318254242058392094398330249576359040406091462362202287404726867892780409100594789147462553564841289944430294270064289507693617103928287856821280586527418577555342022073032957145639561840237518206014532954591460275126588608740415754691536270777430320807747274790895563137987055854503926856106521467747703019697513449794357459795054527077177139082128946656489271748980478237948245339128483471718350182651737908138981574825219591763603929303521426371271031339363275254945220479751992559617271641304174142183042923767485878648790264942239258119267810087316854806115686649986335958890089605281578702566666082314021551426141238814036658758463094764534354031661413617088366183184391399472483878568413772436064185244484015684190479660863974701280692050336187201147539064916467633102600966816486921868734039438977387186489920145939410431946958924829281840730917082207122338715492689093943916237906325644405547506444836135526472936817311642808315518722438635756059860969864491841896288988855771644977569162369399072361700423792474984235178480096147640940161634313407900275727946058683455911679388545551008762377916616398581169136667258890501575711097641201738938955202024914526585543170859220287093652384143196474083036124500448811414026469108896236058561557982675105043731226335893822511628684109753546922233081825758108662622936825006697768216965075406575998894630594036233594826073272687869929815026145274022888485262960911260275650038516771651814708942040420907324156807564727076155669147748387548684876425485739010058692565228442387850462146104041689099335969676827213050830585745071872789330556488823195323543210512308049180542684548750685358900410057017089326188431435291340544785137196875690439240917140423084927007985671578856864978354625472477402675219925896413530154893814145078889676596894863672234833278247019349206419122457652400232806197092246059416751263077366760311629541337167280938005062083955502843090045327243770053433766441087498188687011168538555300057801545693948305806460971608178118741886990274235667992158698292456896095943828929461707289909560584921254273380554345036791635491942939167655486521327698238102831366833130285216575838466952991614705527711375589886835798542495367816679662385608200961455725012366704612030905875651247179961527500581008474392436907386712122438618193803491120905250976643878319939751283971957212448921088227026458980297896715448675941105652233259012101275376135089084337797033999813013324094819870162321364408976937929085585266342489579398499413550739286442666260594478269976943187984447435002909433002286519303670474398655093311151294349244157895948757103237244093810747784599506044625003322523879272368625384038208068576181955533632378413481339189765310182409340179065414319824109732814206140973550216106594043512919764643185132389414772945789243883569647617779394334666700764888434582713184816374805600031495920766425356026460296818563871871538408532193439140067067718614624591218324906869856995365223833373907956038981655547724717124841399592389699602983008446469056059028145844582131820420430986905434113400314205227646049584529257110994248088149841958973695177511694617300229373869246663039212237179532987037665239659996351594753107595873420118959385294510586231527350249233865855971865101865142358431146512895295226527459586185710801348165547362986826424986868107945551963461609435294833471518883533807942682980309288090583587770447186383948031193435990242326224340802109385723778391860975245663159754299910257222473263643894577193964997197652776088665478319959164027520780746899772673325702536234355740324086426383683463227932845569490831786841813663961056605683253922444521744465432269452296390106059952837023916543202600487497992458629924718106159139092339426321618960278272447571647781853687102192889258562284033073550493677463795217753748553951538020930860859066759749188844777785491817218038009921910638513523831588415007905763295961224241961678280477661556925246640407997781441206350576169309472886144041132952292345942031750448364441100722457208932954441751031358147247370415177318740064971720706527771909992445619356090144438711060996538490509440608929897942717308715000663428286820608724822546318307533722011035411057034055274005814627502138933911716428930977514503354080247771180628272281111592641456561831435134492351205816345233759163190239673524572914732747824749744391150437933464386457837773009975314014592276984883698993414719047278608710672298137667432497658327804608557052202110495236775426235193275250610612381475569270294420231220212637167641452728078301628035452890725911227212869172935084966801400305613419349911399592358047865964510468030698051440713225329725607234938523818177605248848278353674818182416028861296738688648925389536456268044816969370838230047481182888230809712439211764537058445344384574405697930462006393427893908936605439515607690936989193209751025069596552536364862891778606862116736735595228794048848093614570421318733980620726771640443151322602873928814486134830168580737352944348468285830522559673161830892476016890068640617859655472450958805081335107236846034719540706700380474463386786608012993530103417092089232043352458570995217214170069409720552602954142815566576798188368919331506434005113069825526738097492682650693382159524257561167724728486149678150964258880351052616038819971150390536223334797519580990282264699368096045314553322932371364588946478470024513821473224533419578229228492804346189144480236333675141751884559648867725954177081689626653401267620573588366904578197775358429136631735272676396690505235821633579305218824924097326380760790322491388561832637098065082434121739312763038265143666152221660945145672070026009970981321854990265001339286496194793251977491211311261002429927658673028088397640641317925906597609764407158031000371038536876183952824026795104647905438853439433321794205122656421960289920261462543008593990837952175885858286805207028495943548678272081775880602662001552555493522863721950949616188485063977844193420792740727548435468407909170592425061698889616717335818255831317811114820563643847049364099686739400419064959913255879017646311171622823807672187823088975278457454992023204460711727820248194351580488691482017413169272623090401245351029254040050563960427294429260996623554090326710156137654112076027613015549177398840734222134302460448173648887027300986474247075850951202107480209690925503045146031769335388072621717389348920207325828299956094971432109216191720084010027243328048037987114025603349114991083775865657841189802663268389601152925381601388684633449699935010119240920933662013612666511703853513004392250158143274449160889748011111974278284992056714977603200160104220044689626571817598800839658435240340698338928673976440518510341452478274487456588227849561055767965790151528993651353700240304106599625221593979188962200523073129037856054450278657333115566076014978313955603195787726958493871819808241579788417115197654708562873144282146616473368781302916345967931324534492424027239352305558318479080202444539102146301451315553508820486918387864564743835798977672299700704462855530342146730724549199553662093134348540728231841823766301089389881755246701456920968443149531919003706495964841068249452495906771242443815634044887341230320513045206482771606133791722516062219535529187763857372055583017696607622657621320197449835683470284367677257038652391632732460679472529265621311296036998980461429834485434439053256631947521100876607201892219050410239546734675171843558236441596516622194127543405641008864763764949705523508890751124011316487904867121547292580389783322996605229769114782550160825244392101823393761471279150691490580038829487582191464272354951060195300100962954103263175059422768062379727295471541714890476184322707517228099166500083981392237767139198919317486495889495987335708054724054608010129538924146170561487944798122420552860256558646659814288821431541498343966257776416576667789982358379818179948161342421323175236764087078344239810626081405616937734774736550552133675562241602693803363287810354010289037898065813704509477097565351836302236859826295655086227373408822168421837769586895571940012297701401653365819809902722673222995798915731266334045605716965912630738278740263341669500554581593007239215243302847471753003251108791468591824943291212802433485148409774118557255424259851752984047561941530405233683868353850171298977001178627346213631845976170457942602861813725348320542943451495626279447907039618301130560763154871553786492753420919434725675517693079698858280983656177875159703295751147038975667122340080991037499258511442698306053202109960810946877590670443011124069226423704774579903876113867739095264909284749869567451266953989666242066667326711703306069683896782339655507847630413829909079141487169608161607669514103154131153259800457734768609556803720638464539411684083744323844255064523311353355831027803609187271224667848127828798067798777639260805974959002490858462792838961939946679829673230677208156023170062733941250260075800195016465271873235112985263785240888855021051867468077753739116436292334231339968778200229024280475702167690487157337781607141881731140714078165428913576447390036395904771637240999054379393789909955670899634995874069197449415027708846093384484564554916260148328185504225167859093597852268780960923842396965432005297784969012831048908692648636816746041817087404357859516352683023062805077210714383342456033862495745556916789888035281490302353607146053215007217223711036604833005629616017036323239901944964286405415264674569856571836340783356924211267720920765549153449146900662708035751290037182156219516797345712460094748868369483523163413020309348303817883757276098264901583038073975952145974931241862501367750669486170098025648499913110039174091661255829078378212373802616452092499243255650792563972074611285987710445081008306984604579297693524193464741784670854010690206248918634584188976005990136634081706872810829228835129457670782691960993555731431848461835443171791867663843149215055960385370407829065318078445406398846092926415419084927768486460194406323555746583118996510407413398978523810294904278425509223673313659168245864314640064674756054946078987208229262939680812553247458325640654692501031682098918685159339439822986080120450788177556758058522558243849572348389307925627689325461673048569717818176803166828303473224974417482226530767156673650534709676231902725007194177456947025153519515606896639863240041888521755966026673182970895031799518414311975243954253824300480273094642220111111743886441444279978199212638694085960355250542910641941363131760682134111586212951341329147861408854684881878042426499554561010571425774800057998169047039210060842842641957612081041992296726185071268012016507498408189349765633893328995664014488659407554500225559234528514260441906436660959833111676997531002919212748629881462768617826288027446757044364703664669833927719576136290131871264652698988102278781315223873792700596960875186823565208500861376962185254074827339983684063228126430514824020202450113382926047673852660672574601253183342885793188339387418612610510301152910356431711271765188853285002618356389424249918522751657384382223473968551864525897887585641747197463522357703157847061163864066865872036620362594948396908014297376378254802432838542154946718299010167067277718529806103333842569458589799368143982781329362702599314224022807792811806097839507762997788610372405861462904533549592784693485478159466842596554367684880105482338662767155326003248928190536090932665625759310094567929797618656258894147498102598652733259544791205390493916693636406971399360766632160274902203977008254708394998968231862450960497854285056040182303524091090185047060255954949427921269814860582670543585148684618104572256269186094308973348270509471984831401494161997884732537902277869928070656977904056661351922361144351306105917125018936581537046776190453601239523959663809568616908086929146807976382304649882183055652815515010281780893939347303691413759116463432242291440353142798658704201611497643337681952004135671703814348848609094834371293648871889851429423470121189447214366787238329430921898756726721642503326561001799592484340336812403572511130671234136638391211350001034170281902683659292995243169405945407138833341354197328389810222586668533760146642697456036567933538441480152640022972466789161715594823953863216835768520518179877802749707449865430450170990352072419217908030652531978938207106992590673937677127616691798099830870231708911077553789769087632063568295711404727813621891088238125955708814626761893774987126576578781907841275477485379785071312188198987956839962914232422585468985802008413779015497663176652385763425632535953749346244546517109121880468736781828306094903026642767157299571714175019840372457012264093720078758695697944720589113893875294995243880948798435514609579453863774849087927700865984639499317454372969321427574350988201207469724411427095702954517167093653474689537246086148356965837092648281333063069048224862628313358740963912190082698628328585852217586413533795847453120693841255739807489844017899472377326944411913101518223956890289200323440344832950624659046601857812177200399209834952497664696667280205245966335876758478548938268849799388589655441843526567387332761399627991780747772118702293036718896873150669979461459003266283641055592486345418411614994152584410342768340673599007268495903638862926598440532087362853674025674095223892837905731557461509475834427542710745129529577604413918551644248810220011811872641395266247248320379816341183485699823832970146878333545900034550204902227037452041936551798617579502219063122548450759863211449859802013341058533853552241747470464586749963686780944075500428376607868206278002591132489727103206270696374969425387246679370419542058501851259206968920947329336905086891312286393965619895815643379419692569396677884370535500763908848452070135925790105243084742108738647676503199269658027230209250349992922783113385108813269031414678995890335648618213184896239534704705735406822812469557072172546429809610964248496618588536513146473966099681576762776590910421731936128918372575106777647483075510323277826532246218012249347735729529123769930777652218594085948607378593651093093282704075037352271226067622737740898261793911155591685832203801148375954631747857798684358824389378264241924491096389452087203464072895650752735403799606355679412532165090466828901381562585877093669902356621377671086309645396485631700558088043227523115366523169066671673055615008867696567137753427668181912841635726770660821614394501526071669509561876999328327869583982039236927304416007697358464596204878611009222248112169206546841356616910492405902752188163360659806487971220949330023499529612070768783153566381070176584338878276359962659389237688506212405702465171018458395997864898859406721191771822296490599135854686986481762021331425575836429545678121278397957038228260945463816364877267729547793567505139490942811221805498421650005856869203787729890361758334679576791228066358945157515471447869728912907996267080085788883866156714794381697396729746987709259371822835382801909201656021459277075688410569809471751813146941973171786423015544925211329189504862971413361446626191896028529840976236037948467351584173784962581742339452205934633892221443969387938789568987858423976014981842292045724704652639119919918970149989485624121298984811987558889823473063533403556490131107526803433842407588723943759994147866098075953092746823213934949221134658127029338344514247022654844350975368450930327125962883930083561536486363445773529061285584625849725119569364509527333135026639756831590097949334568237391562671138042157506308230848536724923251323348416204377004546761264789677266951900496932031616177920939471769062071753392848632758382347192904571936810462712256277773593843385207491908263070627537332539950721974061674997201614896565753089363016678481190674288913640199625434304801538763603017008907902814320545295385914310147157554931873347142909776398351397837081641967734052453254438261833861882436634585102828734895871952363717179532948734063804757283890796418434958771435261344861763356692980337850105203553201519753765357496371125789442993906194759342253911934098533398366938999504755815592849060261445521879396592837538512525476135499790977291274990585209756635074882499370663874869582628710975968202797863004773873535869677466422974007843012231010460023435283600484351316395107970870675216513065706449201582750891297842246590164218122620644448987843696650395942955807365101945210604148316287366424203487010913955318706872926500786311853052517205026691321552185192289978332293163332205983863390625331832060659307579484684375360732118297030280257693582132627286238716717155699707310559041711807684025897590038969877872487044674927398705225604425930323567873063561697711508030909916211121101609730515536671253225215801553836312268150178124351801878673375299786661806095081892544853940872898362610461353001121187963687659874367273636344652785350950743312887928584090891807317119956207150669247555010133698552116876108611264860603411591307105456833742466597566498442693682124254937440242663345817227406591967279406613174363107756814009259762149415818954455990614317540722366525499863059818060223038106022617906524231627572416339763635081026834387710080713946946774999236563818095018465898460320781473790377301953394636627145538169946777425647466379692513512854417656209494958764361740068641512018848980324374891395775175525285463735409841178839493004849713811308551445172206383359350591009132044850389370703680076608149671704347201368106576576697769661358679683006630244428651548052438696938140396218993695926852118672798249852319973088274916334443041998498721700515704465084172706261046596378991815345445972820762232351717199032746491452961616201918284960209275980318451706730199554588045608613273541475104547135671142844924979020091290861159445854590561768263144241530003711737125108827284814844748181706271310657777172551445745832293505881074835295284900086417880169856280123760720897852176558053937556113763795407966990386320758719173262721024780506686708239504775817924628016501347568066522568076175436573120966792136251681464188343611497228882283318812806104284100819233481647175153237196789135071151028503443541459991074790420799315047099661192660339375326373305386084504541493665108921555951683018451122234656176956395242609946279049884553317977589083994517990099333299964368061039637010893327764618012755992369706343619680829991978939803751931501369207575344889476176193852347192024897616800878788459107038940417248178868588787161134625530307118628319160487939810764260828711515926058851644842677356668968828897179728385543311026624355279169748796940717609170714925487766179940618329686017316739551034434521828553659690281016428575496682381026880523235250228889264131089663812035721299415229533477134817303471021817729181738613439814040254007213521922742515563583458745311228227145350068790885097659983212919934398453566442421647667046279886039568404118344363653728224208556537872163808588175614353029976721242251710670100044808456021221323297468450275929707355109449700204346277018140935333653575048922370515405326699018085057840506269988317955231303367578873975359218430109931097471298148944369847334968360872374348581978602891049080659501245494607661083999474355085766338703420271392569375208762323978721886280588642140955278412378146228265411484135317408054440234603611191131533357444535346435733817098902814313809672766427750820978471921506523017730189726322828925308020543816192477917467194120363291378145260833779626774948146369746148537650607477567202706046417409187208748877150397739090158369535340803927088996813285527432140941969922337142620229761829303842416642418549614331150070327914170652959896712047820759489331600361406665621642038131404567479704563354710341065899253347586006797345928791547293094688959415222868641952899269493759404992716072415589647820074798119837099179657794290550599147222082428933260961369899484931955634684827533638627831532423320219938846710504073693630021821406428970801850273024802404939669627432275911966929317050743242040415612168969355475438795344303939585923140056713750642964185556018850645362730869208769964783750305194076478423706005926712904051012578491887370603437820741947396521627987593924023220529181066205085271160793930774613358672293005334620508824704272615204137101484818204588905377885377532190823363997574480674276593841986022203226346105653931448793622449674324641186381534755869661210170454182307891770885713470451348864105580054686436779374489431220516670799589976855566615939277158167380834695412433844162675504739611472619970276021534963697674599839133077883631118219737830090692731920056848001229636793972788367759028893427160263292587242659109482797730527856446116924522750122048752661578201809433528366382674799866387036076794610751799462735341288075157823560250726085664471265090213721852328260268724847535468449082299367050287325182198881285167572482105618849872666791855432973747486558025291945820857674423536536866867746331966482788779452655491129000574064404499628528468290603003786617606797251802177575798736411250638327381826528868729489673634248059695592414211182856082172838686388621798530478159278036221780953264896788564975701469880573512639064304029682577665559880382214666380195582332240715160614999935324067169423751285706738366723176780576968600026122179031022473099199615252683191944761165589414759787780153517213166094035092706154045055580536887461775913699056461192528179868939066459390060860642501716497874554838141848740740476036901098374300135398196393377981104561465621184567880333453721790159772614354135985256256732322115130693993924359651957565241888881384517732817811807740015876741683249195296766874312902834336198446121045186150861214322739122976653593677227871655064013475897351049140324158977963199374193401660082330722873100279276005528390597224358796282851426579935855982797210110141370813683495596609786046060782683962377686357910965730228998488879922164419422293904206943274127856103932833281653236261307134581034843928943635764151157637465679914446705648507352790395789105395681362705054267292310496771419628980013975489688607645339635596333916822041448227272449578745215365872216517947809922664208994051777498889457766590914084758290792973256069230900527401779459371809432082194485339401407287076266782565742554340701025684828594938421325273750922070135040186121949369436285230597126760049913903945563804669388474083007089631427223160563923253849518601815866163971481185966217881065640741059231261461665533366119708776837035838522549098533381335840121069857729018359228512680183320903161906311082536734298789284997457498400164588515143728001899155130996185835188105487230728326020373359167432024783656758142283066648496395355165548268306073554767737571085581840208711232736157755395245937327735694651737066842486743714247651922493593669323507991548603884844243563510936020694347233269952738724796580882156159895060080886444400211883378759072027041206045737637127644295568162846946465552216556104631344248739547555710006343040677440896638377206355765599683168695112370749291775658745713388866631289135135285170389208387533078520616132194751268451125025680927389918978903517887477089925048453770942470689329357984691172505267414854009898496966709342732557407072806189175891318472005867629718223341835819654029541879492192503588641832770792384107325671198690164760437349057581633573571308947665414797720511242812280300770666841631882800884062953313298607154867451009406709984263145179409212196274946854364350133851028914426126716532351038242880094819305643963407407280240477035280206425611914178343537095787759857479178509587247807676697953982632653272816678818392548969245452138380258419352505682811403294258443196677884515427284692263462382607879376087515340490364374583676796781319652397896136707589458380793777560350252098028089192728870685302640016733690096034020661848268681612787618025588862116153119041300844010735525217193051561905955733595371467437480578712843169476459088530310244448180570283184756505664082906486343163960079222400062244577682484662508645251718909147824584807559420900613344187932834248620936432316642877979758334938977027879952586827613030870400565880178571339477592468304142041423144209313549705300987622784352480100902046979140106696919230288986715517998488254309327522402651793122601042801518136016267172121143512708010577039647590476698673870589082789648461987113128474501847354823726438351908835279560977149064907551607384440344678947341950157573874213539318634670329454762982717836296076375209861051614621962420579963966728752849000211317231113988664255235362227483493576808004657461602178285470740924386334056409494320649641840379711050685144354999855617404976394964237311813109027222816967777023170915694339538815149217009566855760626984608466866028070082730547702783904489544261537740763514859747208331048235888512073278308792247432772915362750035744191019802290794820338773635937107752309362159455677201633967304879614824171568042268726458643673208318241205922585612856159155625666315033251552426376620451005361992548478027686804442212661662008970465588615391623564783421068242843196648858710660923980346409127824095640025745196798715985220131373330097003237556693983214933894109556588908924397580751614904756428597303957025030875221633263820492689984961357170261181199987154767392146285211851962313732793963372550660651816965625859417981395734828637233250388258572960490621902501462506435806469128259615280563279895813004128346213876280554419622571170015875627165475902318924475808228165698127200069514421896035520368566280697848732953463857178775590557951351487123205643296884525711134751728063325521085345848611054837838794754876350467608402501069010184232975979982250301905222995812895145891652104081397158205342280201827361578339055598173940903716130546142551370146717229474798266573573361128279173514611136195856686418399804657505315829664580904312471729220191557726627789878973112831595616917173529790232089195065836872700730425343219986108163036285506867256440173926582262439271618387444870116707297058582494005586808064631964649160244534122663918817326282611308380939075038628650482543921738593274603192419640097498293517713266723174029391173168293117841145190324788796606546870649802080205356465996487953559172610325145447228635177493406999201020381927864278482037145682616730797673068571143152468779125764444279234790313956187074195180063333993170451748108912730003952534794746568573362870645174716323378394942396335949999156549488863416102267916698101322098612427606655232658451151990090674909920996273013454656381761693465993716030068183061877461116709354715009296326940284242984450288949818153042109721100440498883400019325349531152852722890714457478104793962751349813747384776198121504451426403700432347501266099908506913074637655369753277886282500494367155721159105239128751552113627805603564327733291574906376390027061843939335696556781060486720179720771550644491297511713269988690368620068544451985288278046077814052078931906458295673480987910189746683302813140641201693642909143559362238189482314594598481598896758800332248053795907435840102315390466384056441853657483185705360508766755555694757441145121391732196709067527277088574533908011630256961449103065357498037437714611504793367544021794658862285610014241301990868457364655731840158808413298956052952278479829192911011593219866093747309426767162903308932898033465381633244994419950509715121528864698563491109096934364403804003049274253423230091690400361174226823306120649608982014548121267639579877990601244758224587558478803481530174633168792204396283697845952221202606675077233599508295465018419852828211101060284907760592213171531185001978399792984110581594144087375528414196248955795183894334765659425002074148954641443078919008236195453631509743063417967511042723826025530200601360857148047452250677651706039022876785768131708909098473963642181955671391246219638080327140424550876008054296825293452026060755102803412952646400478804213727730019959567971402206474200992861290802502974910838746078776437774160853245956756470059268479389767282159014756591309334876137618140350030133290914555810599391344941672555514487035601008317233523696688882970444306422948677006356294258988522986323368898084684866120606677308151308033588574006948879390777609466188862271602008164922771683847865373150247415451993385768121309979328142181813434813270030038707022802667280222358998748462470910722812940542301415267874253332931522791331704242596470661698088481070976079753329097069332358606332084705452020428139186447674163398744591211309725483113289662835668032160047190218380600899319247487876406315360286991498499212078322892153493636915509891605187895719498184230087644972958323033421446081806424806356723836567538830774546707267004277675033556875221945576656563240274085601444695133566724209008280719463030085139240777345897358943775596505592288923188201699177224821400058897730773512734730292691995469335752596794619708141492772796483958950672163505667872538790150468965596048313554045947101702762495434262977524977844114875811991198090372618761663939782841110873710575589314108445930486302644443228742148532782904783171255626824482307933511370887866379581905820296723734684230419469944224747259314588388355035221124522829806131464648203122722004499577864067699176195379400141107670895388699525274634436662491002752725461459895179590284662600466260246776514665799265610319590058668201512957349085177837302382969574863678179401218078247791649979790967427689208497067385292443082773098174956854266136258759775838098845776550276876697156417231753293797722291109166718539554673423416893142362652462939533990749896545095005439873706512340028237722562745505208250817884712439816666967205215900716761647555790875450873804270199098037759754359816445980893051567934229145506355584058026778476270868370664863345576316472108032885049140122948240268429122304852076243184329042189291428035217620694560541379841870140342099097951241892967467861125345456457887349412670726531349047993154887032879323595030000146024511400406133349114947857478580664426250825935699688295795766293309385919357083059413694240806903763398417568148154480419950388356604109969894614225162117329493390536210411668940271778939429499402328150302665823392211126055436287409938708401178879040226771029320339018354694464406448503772633776195874471150373959278171679224001849258223567065942158235391644146501918029063609847810560656605253618280342109638464636279175751723657525391969793492424904549075435865689678217056754238073104394512940307386563713823191956603548433906130686844669607255712053828413323541667546755394566633422971354668324422552511318128935701205603369450269276263876651717166549747931782281661752369999987880562824940686386365548298059643502949164355750461497560138110019187532326128989850606203393206998221206029856517475260290784895923544024401568848394996553224791443436047145856971393125194484230096997038197694473438116014789445914506526853407943670525622256340762009886903620158877453710517999977101886414864239958815198126784539269684244703706470195854657402521223710064086895465519373307158145069195339922204681801431719389304215660183091529729010839221776988907954975379189051611808217838701544510036292401430185123780007448323582040060827274299521617041027864876132196077970602182389199381354317110227680497145499495361701128115330830507701581609900346863358602190977176046418711764303020919466734191811783396328464021034963879133260313563683273395080657689901514096144539529387991657411620336504095492719687633448473288614603883429629950528733659273131780465934356699834880979941255430137925459219701804540309643520406727891128297801690283445469272646980337235285189761124437604689079995797706250226633165036809771000979310609287441702097123100544169705483634137477209128172017932748167378517161118664896863999982488535865272750565786515872562083488137303670408162203388430520149016535815749270451231196258306667068524265247444971481802551717013567696223032975426360139037157059451650716041961196641632001784590697856551334461670127194996300421448970142438965063267685789556966977331130193604592586965957372698905395548830823420411395975808642433234729214455900524337318578071025009989550851647160703328064891562658166416094679799492758267694118792772835092199812414016804627294965871167400804542966982063097866710812607792828950846724637309355360375288685000548744780544169973585240643837606597163353952550069678266242606008602270207542824833038517307324501988015377645125954626685577369857635442066350602515042471907473713164906149072914298934249285373506775261418185864384618660011782101321704472808450424271896096028604197689128676884606871850798364418209111877088669961572722076545707129877752670084834228114643174047039852013704547725296899949555816529669739226729735661712302096927588818272183104767447451095583238500959875480115840630630383365611172867540814956812822773640205013087847925162339457002533863380099555206880978427389062114875082830374833351698724017937817202653636223091791061845280257827343225709494313683378651308979512537856844984218005797490999317738729822639048806382435176222970747527828607480128253716774541551233474115172533923278203722882402996121008165256869750037307144283889100478019802924375956957042443991866209262187673936124461318126825579506808648863697729295210822458689414731522166393264921509630841246432211344592183538237688103366951543808872901244024250612168570706140273372895727441303577491158049251298683954281426430452860003394728115951910795377261437469234968760923496984547381087038767760910404193638900315379195158546857572813651285304733135048893479541708755069413895505526146402097404511655813193297894023697392409626034607508586438057996911521454740228276648468247836641938573183852332120158561331403102846612376709430954058440790882450952223504933407903530244434804029604135646121656877432122569688513013763407184916089621768190167915253440881526540972540231470376766057781104970695025510385602707831971215780500424675809988384748810047980311777583141232356791371820592903747371322760480149536475531900193861233423273285320664871293229172225268747408446209426729106400945107959076581325995956769893692442187261176322734785709075329733693818757736778975181393974270371057388427524293384404376475466804193040231395616931762809377515523822979052786730969459804292147276140588885266396642765919244630525665986635661375545043360447169812027502650251967250956345635181632977176882883900443111569664711774362763204144883194719227181435355528940816562491271285894724457966578882827907916147572109329889387884667331219853832552167872843214327888146275835132327031168268387064079950713786067532206117047700082427650055017712362617729579046626898393267735908624839651479843486774929969470866627900744668135996656629891901755908161772779461465203273015223141728753309815118640968211605712519720539475210451258058224248774980187299471739693866109173219437256281144245752623086479510433290517599076528188898495116167643483477271566081273209430794764259028227803403878546418564886598056265005182904138109582671839096786717618578657291258602843382083696800525834586762059286994091132155744464203900977445138682731449191276126794938098708119892130786077471554918383141737208341342452468724589191403429232632618674431553238497501305952659920404371706445865677168814972765929532182666258328986911907814738305262592365876185150390969143875644777069634264824622847749194237717642767867868073269463586020446700164069295822103549087000875138691562711512573892659104021530078544887258864139438002322373778892236220877795223007993258083085394922332370789434925654405255140662722854549769660940339571045012053139258844963376785673338427947537054595905829737315551226150267464980412206514506139731565459565367891830265665366625013920765713596057301231068294248205781287695179409047014180131167189209153718822889281640872667851394160884239254160810712243706022951880288471083560014808276015434289504741473063357995501836402631047793308565817312607646997318548182584292787056214785975636998804968537929481781489759300086208441779436865397071875144907663156213642385132973857280310913686580719256325782772556392646087480918846064301549285534274861179561095248089561376888206844460577431868385083984242531073068208540275470253047255494520073938062014973246344583496964308929104447464869529244136213333092160586026975752123107773999898910534596112729050748975241462010548940797247289010749866423478791338556240782356458608249908440580577843630613082001295960602337497215844448292250947829701468242340136588193084661144674609043354516295495890879475401603044720189680059881003761243529581846305488693098488851204841942470178584109864368686524456814542589976269254051889103895956211548564965067630326822122671690066642218528163511168498055922121615977444826155900775353026727520863286088312370954780389835263247793590187152213217217547158786376076528183972668722270986052634821240334001371071213079929647589307801321790904287548747898358299206064683823460937698671457336490933444211582823458111526212687167372526039419557762311873690163710036178482989997346139758503772975068310547955793240068893031289282535021964248220976655980753764919353174090670867826378547146904549764248831181645597191391635069334793094308162298358314013271462619120136122964322989755800139836565571752949108540619804615705376287245567777353561347599152905445231426532890271875290716991441479939603888502918269410390934698165218079393573862125908136258780048399139113615763900376239856574306233774177309787328397698949418555283979996780758518614635154261667795846788257082717999808918516831218165461104019136689213098106136817574651354062012460172458987408599676654317851644340549046939809040085456285467573986460225610828965855270233069929406222987187129814634505102806367061535606911831101802395914850323417816595831792758146974721841878285276063217021925821162305334819317368304323803339311055949731972518892661562842820709816156770977945969099780140835740164529230662805317167434670598517421585226924038413464509042807101187020607562203148071830865241165774229352972396788611650044569448295316924443590049616802814321561578759659039761580904453151197792923556376120257474901502998254784908727233771299233267093435214425441437635839548632813237875164972952975460990056859918605972538183649235080923264577420429313636435623587904705998215801391939214549946397862253004636042932018844634867646455765578918042978536875766933436476888256887721612198512929052571615711397365016648703499904787219671925014203918746894298895994198636042822563423047488337763984050323226954955116412458813827558950199270062102367104542522294463942347889031050795855625143206057369033536220940894684052062745184072821954858782813594609976936506769687683983045050448821464870827662669967741128364449352603419572889985617482786061992468878734438476745702100702610194956308656146991765694377417694787191918106884420668103447162626832580091465824892618580286102255421287895018316070055767538012618819878191459570731751177859624796611598707029203603239246394040751173520990928065791705486507274858379011244592069836673975270665332930555848331920476140883754319632921930906722647796190018749963682844599043100742285550696235316355660124606794628337966428953256658787113088471570895936887685633184308601545103663032116136552854043458502484503337636194233114764546309251538400141207234669334265560374836607980836241888019925326639006960295797229644677239011031950369934661544613186788610050850877298090220113676022999694495631935970139703669842244815314479121826049566076919193252058858389372094488942833601847872257751812461023729693276075457237757239999407536573138618978065802927265122539569186514335558924516816314362013783854925631037286852330650912323277564607656335265861593086337943348723212990776036094403739392434058411091089787589628133095523102815197146982953880590617807631245750893058176335036372195473425223895160556828993449749931836110402568037271347379298023848575118570667749714710563782217780128842316046164955160199755684068390586396175124704698050516919188286798016063631804829323125104238912396652333671218133877784594533452447193150305978836913240065782270586020621979319453024324650721677971254280983842076728961235615228967094411585432115302281729088640810274786412574430693970285538494000970137637931642194325571839839308115637896828999816496801211171992955527059997030245965847627857656170677150447086477605196686270405191555599562735821816462397149022981246467003136656705045156004935665369397138316809727014904863895082883558987827959149842459140135202070216631226248082588841453372579402010852526047326354025255400760923769398685204139185496398272959613225703389950429116479198511418059249205088366128941586533175895716712206702580074085404571618937977667747085135443319688154840374608444751359089914966184399534617348482107630283961308289130042572938646437702963002674453880015504355874060128355815657040914007032114607419008718180835684316320831221684731247656150436540258538520951395808071315543354231264405421557167685049454606180973367390855126995441847757956762000865451549822747449255111742245322811649655298226650929102925745616616657796081647134411049970753718443474582427506386003930281544340289591182653790997828508340796638182289772599909086019544986890510371829815568788034919084406508919699851691068491444684731572844153512419234019702689193544081887770548452218627809357444105605200923496160863800282778101291147359440623464192196645824814023036321169295063762593550845472849562479896055967470156755019549227804518111837686662536936882817564846755077760376174255960356074810986088579956656399614469194360746426424946354312893549961114138429365995864474899811072092635962480570231332202753176325076347333457624962313385710892591169725110001075738342104653876240408502051151290310334139598322080527726832653950504202695689188673816279190851892875399406101386177311948721322094937993859264075358646267178847705414527795157033346915487555889037056063145592789536096455413618031513163786233852826183406394305555322628048721075854226837614261671610648544016695381785657776442548059281419413484681947697969847411680147031062584877631055433807450901357123330858754160183942462654653066372392711004168251706564256349784574727147734224132948819325929196852491095804020014178027545205052722479227247098189286882988918265086669583560668361913218283856693835207908691612001869496270416647189056679419067869199372257276797788322420527826477932432741831846534125788907768195942731844299517772459062536687886707209778701993519065126740094947796808340548797305092794027152131016558996173348638496225708760216186956250808574315483505311695424197602058174552914571712421870617369542821239262477536255339070544507378884969965121475387228998895055287465199336793819009832187730950060546677744278075609162607007332128658337030609461196800353468257509786941057753257435816424851016125558822108627931754281314100124019632435308237355177344371512287841985836379028012601772104756401618921292604805344266822384360614853091221830092464515046607511727832609876981605791261465047973285280923631195056724974339734145725210062068035873647910883572030736483275019077891733256083611645308521807868917798155437270438187629395259644350591929057295433838260299570117837184628063405984276964738597566711081499276736293918143569611800642651597708320158868770050472648897211914918689939745457686167174047553839438636451320275366018589664276018288023342572421846460117159163441175326475842353283018646918987751852855215252699167785923515106821876338691152364376909914495456532308935306077540720226251448089661193414825728191614415971948238741726325241978653574028959595795687574463608505957116034211629834453160959192523344017985441940009455662207777975669366470897223759252071760340958358277456215425112854083417669919295474170353303766416850578154827570979687359055909109971223609705491141682379886081798173068434422286511414249173063558385348681205280873510178023282720787288400729650000655512570926253570458748395872122212805544120986234766083765571357961645431630851696750463265495567545795400252107395851811636850755878985192020302113563164208856932691763947680023083258379385703100764781290497181920529762588057275252571097735386106237320926856864170999832446508515369578884407650065090801176149816897062899042521939738515234266811603045609988180216569444375289337447891233332513760239805322582847866199512530312867206183131376630099529040976461081694836165398105738629121794566352935633977724105098441071567893420383570880512660616998886990868299960416322227144767928081370274452886419297840669879633654998920035662698947007285982584544697797989407090958834133529108438172462006019509881033596556196558625615688484093617689391614703335958733356372715568718671997881292821336866619555694052331657059760306357483439544290099083015238691723987059565150361555818258021641321659455930158768323837501061873688655196760775880118799783318495656899230476215754265984492958437018274468801984333242776178044841895090779990214741364742241136215793524327345408852001208610149682723904379977912988627659498194570172338340338545737171857124599442270043842561114368943032597593902037820034595300424190328523784161230108159556092763210062010088157955968999040511258893435975111301707832631547465554576330307363109944548257639340113377033196562153577187221006807140264438122009721916979437296910263844683482201292527937350069256211790498054127931467995223167168086827488893949066570019783984520464158990654320258052286618200129582256662130286434479663277583459688100096782029415009621708233339836295928988088803098453546242337660475764161131558317448862170567087992439238207359690044104279106559788919916948488556738813948712384476170962549586013759403822902012999823101852837675166743457656165559724108019618313278333199983253898485369434465757503709338536351274502962147261490818869599064006617347244153040758775803266857496735681437594501513821847218619507673006649235315882327749675363363269339482613298528685936213011447071402327179989062568706003580156822664297142979099412891467071538384823150074044504210883457844010271184515552678566773908914823698929233013370441097097505975795307959151520248973267715835146184986848224377294444648630675377293222578702868633859387240401268545786885233909502078837492275679149408684581653680245576260506311124888848635130045065378976071583998565210137256590090632923804624173183082998428787794592330064426487826003273230356473366077828917852652710360641797806255360503203229572657080619305317960260033521576980530939431449269611889829812345854517204997546053846707260648137788119649839494572203949823998528247626824288398344505637355311424364545725536697729369400042464202444323278902065136389096581896577048613519231829765676249710159434496227875223132972725212946182811331895154185221138867473877192868555770831897835129903638449006271639637559305606232952129054971535816523641825721832256346189136417690755974410896730950809451325534264830171840027291567650521986132108237693068712645764053867622882643960784441324111355168387460902038756671651396351439994870256788983646403163995194417472651504560053946606632543383707793879227467094838674871687085893026396166925407309760437506943516255715149353663439951380866472733057030208363944022968560292551803927540585514525554396057266342606248731968081713826940233581314419544614856676356116075099105789501130056478174611197058106297148134690887485708585894022169314919821567823910964666472485536243809128279965084181451347809281229487460547799832161353886757798671403945031403014531227892118988658878220077308354831501242148399581178824935711080541230838952562949157461952270425386089697443669375797788584600683165177531075423156566033381792543299182766997370341646877700820888363793096760056688396380758594033018538619512977797782257755594740024327734567524732962446045722538486766044433306686808162089132281069451179827107250301252294595735189219400766184346481684693836810042159596163717219804636515540434772722746697247938285273814571716929757876737205391176938978136400338422496146405183996097447031098978473468594538157476475973148400208738382514531524934793091331668306138661451826561270325523086473614160960118425140114379440293672372138193901255658996563161402841575850165368780647499251509039435362928394507995123991656608699701681656532314706332990631523976061076305883083520446693441434364366026138073124500114167184405205229387931949646443506823757601025919763338218909434900869890360554215172757177710015025597093861718876937700261950330357657477031162420790587157014580063456046996687404179227100615417074976915775009519655942725405061928475491469773018501130967714181872242541737642333471395557159130568848598753541074489086924998275251006322795952615947449894585383689241749474226997239194259783097650710364063377368971261236684026477092693019470181133910629133935537655425696487963249319529241444511022173349526362214671734946816583881990408765176387012541888647434764173441724899867044603880102604006969307747417754025462076737278124830172189969109300237639726574227927088545552653321740264231711423103590400688161542161454380409762106125611217766288127645933271277346678867630425293969486235654603066072339387544075452621727768688811784997636422877342946418500860615486840539203744743527535909048632250521598320229633191556429098149059225054206366386993618002175058858900499696242305959177235374855299691570480519180552607244397615250619621357188872945442814344969093072088108202283692375647182043787879775889280165688349120418934027463544342814832659292630539314579230294100065199060549258028550443596388733488937338099499122367224757423760842992135873439382188108782340504161203698296486115304003862168369185303749410145696518782911610010043216385277997053365286845268635924066236444252667694739105134538757032642209678059520717208061614991768183232407372862809964081937550528682618069095778940027269310672680941306393594928301078074994183258839133858891768974822201979154525401261212475555012619246978880792689028013980454124278637476784850480341353309187927871665553869361564224440368244965834136926672804929395826031650285067265010962470967711409652871896395187312098222622278722804492142769333784351496437550250579226695475616144022861013997754966272467414273881963479089285177000943486495620813358948355581647329557738708988475262704347356142425365614497374488468756983429353162190085407169503372283061397800882384766486168406390299946139066151133858521129371078964384471804217684784028395920407663295582163020672300636751054455870791437189269093781348370697979939232343130643812121488812805347341708516633491598537805044981988888285846215812683895304890212016580343677767489928853635617764400671434527246325889653096016274448617678802272337988580577051132700939529243155499494456181433961902461333675071801657620882872143748532845892190457511781204556263474541802546028604479444370583724134041659957494347801470722067858824816805545816667440576708311348623127581956748355005639360456603317200622453282808576666592910960563034765796049505277958010938634371310922753257291731341814235581091187487419496595891093270509364890440724440396394055371174874266836836281528523087938840814216598416549639730462153448303012068255065788404587518848127578586756793233502220448833155289213669126947444647407404497554813441019254048462621891562070776448967097063887495642645444398076281384746142352618050381950190963088933769571657385349744493539364524921635264142361962834779096907341684414650277776405276333220113204912139655337582570579912939740394101058422580501740554793017997352256675971484929882049400663038224993595916253336500375308961918861138636477193910642421671565443543250400110618043230891420051315118383724625468595183914380508808666454422381819229403607883465423947521499311994622044033607438804878788548580706784921935352319843310102270537260725168860276663297190538550528708394357829327286289256626779929600444858335643499464160988523286938866129156912269731640570493223214715114917553038522449513372228524039405949725692296983566024163297681212737083690864229852160500477601328628423213334298560968375479835754220515165970871808234817886480570067911700504248966218395725201251546999941481581090526232157687539946059432120545996702167589714042780116511676872888453793829815920896697627401487589569187916173103954351416058663710317886791757265306957024005087501861656556303420206961841771358330640639018585523971592575496908964497952026439564951828197830487623000944338556129957850055317695391286839789719384977568714887430210168130775869493087453919842505374394281277289181867745464704465624539880434450554445715321079204478961710514057479555071485359643930255108192618248654364623417931720961419324657087403673516908523997009587744467363933608078349385001498439538037275903523137868219109711245815356421100785522508501002808026538568438443164624756456681559683024192195490699359859570033165478169030629599102099797171046277672426558498673292329002852351924254259673174714105301267038606901140455233951775503091481454416463651002038810044182559671787398915139260784874723553500942775048816022021770785448934865590456018010402959117106553965948101697420832731340041641008802601681878806714564639628632154644147623188850927536079101090876569872283190214137441397325756905428028170889757239511255806624945450602017658595402797384414522856175019227667236195462105789843933515038777236162625370391482332225730268994392564330966318677110204019167027727042719534338587756778812953616585519912449920660331177653250779247541890751076627996938184405564880423447765236312581887012424536418067167315939725057580613353113913747058276901537116782897476585373214098384022082073816883891890304020697507742515634133168818857180989175576556208777390810563953072423505349505005463948681568645452959791185985393569222928864454757407416584897470612062591946715199343715449192388639770755795405592362958725927248322604017932510544197898495696916630631244757593291075737125907713829287866623608649944744368930091785507470454702582459298584376157861732272322405888857773266887531309739781986252469865479140170084956952100805005106116127148641108182295747606790716660907363209178369435780002610376602821010850630033681162796960793331884229425834552886161617231653867456530304001090775799178474030355845030643701256137620286732956208740999999781114082973803216408192238676270748234877557254569149449988663948317974655678441775754004903881428608928134898487859353648055698316269381160857027443560845249167401793387445759946545957756359975265310999510987468743011586517945833848486468166851520324207079979935770614233830309587406613039034908400611907956454130246409164601499341689765118010423434299851616423457666322343914042504699002300082049622301324062464542672805804812367847753655705748285100268608306237961921940247580492191991932596044868102379671995585098558650267852430224417527075522511417607106435087724225313543831843659773920202464301849578874713807932131426916578113663475177813346711342193612662957064635973510375626350114156866063868292035121700654171286823579762338970317837810190314337727261054833648541655054190664494200114846535778111279062294329322029136105906026759713050393062805202495612727650836906387048873588937792246380120918952290638844755962023406696487963425154565702331170302435651244797035851184431946713926991655253983696786195314479314574650733547525760780477710499801815675337361255071386765919476735679931478959647316428076607376264836530412226691413430860656430593894424022935817875848413244157440365208751110650742175571963793353308445025620377148371667796703792838641475901453047548049444743398226200938674683705879777587385934990028328985122984897443058287501254040373068056050114029810714487923304119283082488139760176685491618953336182609940635094579950532002351883558738267495898721324096485607717260070091451760385968585753673891369236524259408977796472561730740269918464204283089608564519393795160148550212671376595339821728129241010839268500757713044456868528921856480857420174939863956809515160941214781581807660564586089369140478702277374726651368571832073814075358024000460516717927984173287605117359784542552430391200046662328395384703077309703667554027840067167102390383970311190033679074243372920116029979904850913509037803804112022209165016427433237466709008576268550475650857578153007983151700804020167040327112534492648269740663830827963041528397758309697157787156098224747007599154218001089741022575341911672309840131541669921744640207342405664553217272443656648230040907838001201595606112580059557659021734038963334149310567687443537499517675795575600953009630398013594405911516151864641811230358117613899228632407443803392612570269286009937822323609411826468059654368871684144775668840216993555494960227509732702916577552971158677081081706658769184351825131674842831805576010119394780352550810837647024380354211337011803834900271072839762143985766070806780878356621773808977612174835175012627965340466225627163318368698231833016490253050059592801599257250599070194695374848794711658969241154393776152638908288865263323479473771136280748286356996785904517897063291433870251343972169135313248553371542863634758487566908656795184713390957279182621958197284490301432493349605958774405008043913735375827978924842788761036184753634631183850949160746164430520395619827072618764352433355274074409802999633874082740410571354563676799122070746432776683635142109752085644681747459593428325675134641108185482076528063245832773240876204210397775420890986886463573776832392666786639838366290653003586540129753171684100616686668049444034624862208405925483444863534229112712000788098251437709399052894516118364741850437287340089893063912052071519951587200647436570268331462339357502121372620240913866446059876423415441261469034613537038831427362963118916792854673432954454461828300910356951740036928273576301154493972825616452493095289381876974672028367988323169321436350177125246367666166297307640299502832233038477284923355169276984698927684647231487993299744313362114474857682025293052344138013413290065810185468644237325356546215949999712630512313946069111553636066001473438840203253092677403659672190517425756876972537329072580921563353765205444859901922668757004804896437592640080537769739213689968842390916110410530509166366305524096477565769577172901242411091963567753823055342535711695688807177726363308646607797459149281728049996645816860560761602194325774235828123373529943166734329242410804649126861574422182678774543568827887057189053736680823409655624923294372888063475796341652310138911028933005154105775507279841043253544616382139011486187771827995359079254653809298733199005890947706114596577563020418304684722615128406049153144880733245097179294737600647517919599787733809081286721002831208464234270710366148443289135204051372751658513337082133791532703489826024666971537238442485206211961752882287792399234390700757991087962729915569238111283194385914209826669753066012671976333641008255993291496720224197192509742045731759748022216209781734358955078493322344318681678873120405593638764925572172073615866243012221805568354982854311755290657787795635821381259522303167267163042750625373718162843979824609740072387324959526697858395805814800003000652955799693990457171480781687173217321081414863378404292237324133488111548890547920687780212018422653667754814619780255824499487746065248917898781263104332798076159298001404169485067368313901215080636105702023978896693484369970739409182831357714650066673708304038080309754691068907430992766980355588431288918943328532197579607394282084190568129283669983097882338130034585202164360893478530014690633722361547026275954928459950451958721998339984181271586276714874631599637288792279989696501296539076192550869884507383512624200524519203633114539449433984983509583065127184271578202275306907798932762247856445223132903772997385497925350046291909577618752869638205808505341005049505312604326745377766887006779315413600025440117811201964164965805852038474902534285483393473433492161362681823061187365139528897792523684163549766052145697128787864053605832229569699656044980950318536092955375340197539556613671273571396691365949752235591950916696389657344852126022198914516459160827223580943082006737737174942923322372186372517113744704291007851771843322522462149158364642861187873642064752132813555066453178181368138915836585406394799167169706418977403406886425060223822592888430753083161033021542654237488046608234962406866234403033367923433843941442205988520405217312863836844335542591940238584870291334421901139391689170051668971295679183931779657116363725883898397517831585897099833106158536856162539610765410363297397635794593573837307472959431352592193952948951946773629961719326573651610200166304629757801001401226364596414510403013444946033404505677578943461078319447479173922866963943463215529302350875308171517386414225533796248250093162857473322884162085853725994372675886104448433992996879101139777923396198696140717706708915477715448508669299147864963020414681427152923407922958652667363141141281250605361461975425428034502633476657501561313885075279995558465835492250033812661508629076370674513698193227748924337272722595914902049834813140494758808429950029712373903571376826488227354477548856622563183760647833754992545194119669553341499927098694850515644285030807263510130076623110027039577017887460923079718766503225137541498149536453961654169121622159219259812264747097123046174129437427285791525976145815815222906628003928517252400767730558798905305091275376343228784589082790308516059135061840751162544440736667189568285135248789825847339726185938482951675499536711216055465531976875504505991326264311948189680842094708410693547709014895759638005066300332904507490859047806621346795269274512782628758641833320746299483089528105122811907806658476978533315071912066500179439006875183762932389854950839752413640156574550593093139360589937391130859167555898431467108811302785077823684463224029136465972430528067828519757024318659003856270813504124677103734787407258812295594549309290013779955425759376473774664176323412815589158772486577068305069832175717521624167260915492739014869880267844511065303639587156901747008180038666394787130971916490972717431757935023394697966047427409663895369444446351521460606362925805946806353866630893351695776373514859386465080990200934068971352520300854301716900599551728572775684910565578948009111406686104657196848308080470260557558712489393387014679993953997605535794166227427779522767635897520263801878197182379380300627617732091264456028908642204519879373565732903789064864188467861039195219717692367675331185160414823966371007940053673132387985258732680424059533059698802925306292041797490643479356886406688865213880048159144262689921253767496577054031253977370160222752722770611533828866960625142793467309750135553791111944886660033700346827176291493866487206441391159161195399080887111324552054292223640066019930380366408292571460805519831058006731875393481631924613056454487635668509140845931123731963608477980231691770921459000794149780791453967768170320129365002885485106910322018106655975406073218006137010273943020965951518916394265982710053577565102187149295927999386370077162644868592044107451407323925718704228719077617300043550515873752858618777635782215273363395707597923816680506936988774558156577891528090441397115120776810367626775918932769168890877338660717043218499896950939794246343822133052014454870632411064673629483721584158026463415215418435973094273816900158382295820061417855280112040385431711167003998726534066267907698947751342823513804982969763086031340072690680354779385201385583071671994344698458107913297702981352822163752969864081024636244514291296173370756507116120626502808477384025083262301529471388945414356474791558376890990737948919016125310600278205114177020065034991022128722498257438538760235627812037556392652030709104959530827486178937282477761647286881834385967786327511108078136588654485275771296493537000822794275682567423997207565200440861183873089497890027294007044480220944235858163295012139211307966325915758678411201107863780780881543634981755743546409876222448471201813196849046545494972913629835370999898165519740521186351267395055000852831725497299125584906214623673449666484111772219209887366210994125643179965068180978165405858336374329667397198910344091166395205217313870664564865890111208442838541940789450825672136261591053610777004757804892433466540031135286380407622481944791475454178417111730425128491283150150211781842957263677802334271177502965813012029560860656911032685673926171606168749844167413729292008749287802922087469259534631383334133026417305782872173483920553175567612737547410044459516480643703508877021994181829299140223996421094182415600556287229462099530410144670501478312982529035831729637569544833735646476842351868904169457172165466544940302664486719534578762950906585385656349669741367149316126322274342400633400818348752344798486558341770447013680444609392518178066341607190380771769482066786783669740054110604653202703272076327740284309194746946749752081239911287131952423663556076400630739448984414150583853709705716238579930426299603163514691956040677001546599229499935825115154132229234409786366808740057686422228546572544676683753020519642526496173496023387228160656152622586395842226367654903906513769271389099276876743916562529290908069005285012084913482052324560558672063060478658772399388397255290083656045936822558308086693356336094595037494355417126435282013223297040498103258199157543986806671674639180717100487185061619001731674269487727564245876910241480754039941645877711921626005489613224509731137811803294365790640814888676327787965663116719698896324772864081556428570888393783636732881947196115905140952187932233839574380062626807437859019612558052966855225798003216266454720472087523197942716143278333094230542212433596985408287682563513320401111423113741073373662467111921709310494080739663270253901657212640306778459715768286304522670925081627701078751208167509663502329299885676592608769353119876356628838209025321419539566311680173951912279871037153771276298091215551349524234024108061189901640392997542858913913895388319572925596384042183662445344193360741750467879474117358725405134915247114993482952180564794590934644522412786438997092969226290643767875688191038789880256395910073145668950512703454359787288064735194394387357684950383615385690717608410052919756824435303414507202881834430988906080542725619478456648638459884684944758630657588509830959070877210138003716388877201468571906658753220408061891721513641880504057603646167653259866670475211527384123250312228027723471210258860952515961080170733226666308716128467472899274258393045166925458396347402495240886092692364260440207150967401741505660066072710590443280027879833889774083807529197582147670524450550284003119833107296848275347279211494205100637134437499615525354444659870097385013226154819369006903983406402962886955748751245536738846712171347495225600316105090877860710327181146046199308062202172468976892893626208792790048402144609125543850820828972303300812787012029124152739596397354562631527403878230261732705114576374961430460872791196557382635035112287081078557227442676470294565659920741196541476461921369909921132286905789821761594764565092192196331277453488108240515764745135608954510859922053584584335875640669430285058270353103898460018247193943475626970306527750244984784549335131351362469660670291328788870183369414487626048174241305175752290629823990985717689115926869723452803076336879209194485381540107307564472511191381515106070384594437965286406494121063103977957209345965629162414134252296449402899190548043085869128403259924766813810847717573901563713058052571581051947467345850309197701277041041176335592007640683846572232288382730662411530580813880484028201741223760154730147921166604424629086126696487814615614459423391570563359701319354158100686853864986112106023029636128194784625847412204953098678548682744389478960885518084552274594776720966016359270702390483758262260301083419611785002030696369388645497572999274055563263124787817604018310447006407667524954045407338753437464038072123141488615232133772668588340727726923332282504807720261151863985430027769623645340387001246390874047168586719821013011149440480277983683279280467482655458789318188746797904795898890732271585660506773750763901891179942135791205945204972039920615687079365398031926708726347904138763513715371518741646280627640498917746759361394387557447833872767758688318318064837688443786415294056911555455360308842087614676927014914918127215037868150012354278936303931588349536595223284249861185789467710998541103931559927066096658839588663558304963391151081646120524352988729719375715725885215166256002223443489398526254156814592754169391293216051330430154112879616004204108472232874829533495849165019332266216132525099428170006862952701806359120631564815600166922161248767011429208547878718140646069076892180883580748927550100792059614089016091355617518779561236003028681925571227773068328098414277490367140366477100803498812324574767867201390810604888980251386110635393130647262169818055910878049074903737665943837442342856752090592152121470488024378435108130294822960297293977737559453426949333064040706807418433591136124960514397752688913442604396193538190953108296764511932622983379439382649396226674048871704635371732794815225748885249823479009692320638250898992944230822176652474118332484199686674236295305560435199712107285413285277416229301643070232639999467001207614671977257715867519127916632373758376942265240773954791285107792775952611920952101821752195047868129234942173280657774086334032521373073261513006741332882396324791511719157180405256306594748252608749555142651466712719479148672274073170185944689163527273551335062299631756298250088851151972432743103175904202201614723293993163369024390231735037858448254218757958716850601109309909607984517347899658928166960904966693118539504155003890184968053002052191558026514400923113742975303581386946070261686424526379150719658988931887400910443031941980040619155928093601023686213676527909087595763686365811236342935853085865617330352193094241739741439046517193954510190936587656289931989267321619696497643435868169425596163638535336822574642670708557696498826373516388231054430931376217740703837480641039376545467946681064785657008753456544472156046193960998743828031323306752587908408531243991189634620620337828961056188579300200184362385274255484988069814666245179440445038566545400360301978210171884084431123751663736289067318823632384608676898729354710017828932482618503011941248550726587079528535715375638054319545517777541960313796050666176826721372810185503477446001549139437209375138045361958675142314652622547983182338045246739995693629117162400328115627250305311040542614535564832171186578859561400097889376761877114812614893123702160858004730312497396817303579312760764871414120564067051940949570063272260769883488243970433233306052594573294934163200627940225625185869031070564804726662237342766362862875465641420822466228627915924471597674232250196736998765907287343266839870469655727050723102471204222731454845604144641188774465263000961335759005494260103331932203871600360888739012784807751176277640646590410571847335420323550313305435035176287596871745147953824918143158593716713203381544472334358721425795464459967200876504644419415250457620297163868171822816501475482525313215076155560207064119586440570870600093673983583789892683902001886430376269904665019798962731735229007874126320301530768712590342249593801961233362964689396883045407599679101463764767487452520065327300978155159577883342533063885823588099278125064753149594727674178330867853998412615412134477585857978302835767078262263794287615941029907705621315555273201533143186032719181616711704058344453728050865218724369112272293586091424816468935370842726422152019254836881470371188605156076222791994438468987988388681497983033058988268816602124832739798285838647963083931946237970802489139126479160706215432448566818921758989068161245996705772939882771646520323092681641029970854816728795667916357045658249940159796204468498763587662906256412162649221007399400705740557171178779018870952242506495308520670624048068842893779677664245882053516142202310632810404160629275705883456687006504161263622135152760068567423020814709074731398669188263108528500405666295643065659409013602668143634340227214782865355925219193188610487635044527551742726097216484982952535005840318373828363667545052460500321215919818615797123067907505827211439456364223690725356641636813631041101906630975149448058811628288508430989551357187995337537205488395053350140012941189500221124261850729041339174553277776901793538582164432296372953163429564812856721250703107959674143936147675952138366384617762466467875783536424974325582055871175624264198504550665078096687407679444862659066986848723310549602670696684489986602675921527602118252148942882117067315291603408674943396910948756302479670821438598974755073925882555726660237483210589655452703438660145241918893171457352947710002098823433464841066094340901183473399781890950451453364379279627982714204153039686143928934753727469268849945217632515433225820444318281514838085888075810972503278785259807795926969396667749812273431338453432179965745305358283554589674738646214464849748580701437786125284127383900250901221640136127280758809623042233505505233692114613512314252809684818099899344759171209282293964070856936938254359410836146410464935340436949538885668723535042958761473394444961281119637014390790147028362115867765199622388427202602779124008497979241247587703864251575448445341848366825661224043193981240902350293650020963978653841623234553298552462745219384959647402793139951468487941000968773511241168007281926457663928200660832700141336587497947154009380279917185074334296874215312732486270178290966055505286414880831851478334977227206607657803447531415562117040532663030240323971998335384978589935795310162097135937853909137683617777904046877940702597737064799494405282810223163450728865175616595443449183202633921673639765676816566435046563027922250787699949186469511285683199337439163039078630507046488884251019579147206106822867213248083349006499984560772213485799281713224525745212330500739809523464524666904588683856136200814658439401020821632622052164470356022174688774433468949065712769519150100754826254353198861610971065851290926171837172705700936794303269335826686991971057330799018163602256132940009635774153476556444113645514196010805369640855882100982655881450605884291592276803329097010082590603847125230805149715624759284442965142792697429720259816728564092873585647465324763904503678471112510481282637857646828679917638405649961163181968265236868610606218515256180625451068555045877158115271319842479790645994016568825417363677378658913614731141570738772238393624379369422766811522750101843834495605052477782741244112121530705038371075804873437059059329312966363502646584263259355964722905887349959795181659136736275518098813034540143613918905255848990260960107036259882683109987439701321966984214362845435827739844062532174975761186002136355997690939990786871315453156139573790238277776438002138561474569960473310480143913625223470559729977667930023528168138950490224684381899025751637204327087969467083985827201254739212470570816701813911234590659909593485836004665042192147024234925623382009928069261765614896000406898129027550204404278922921335804693766350931509364838888176067933709705476386769766182797101759411374442781394088574173228139963368973043611504032336380883077259159809629395909049882180967130511225866642692627718357691505301293298453465662462779991742179330367773427733765465704442596811358858644165402837385751375254420185606955983261185313427491511606245725985720010665461544674273477332730681694313286594700803486958066938607847393737279101340240244792088510301110214552525346006357567241024095978083092512221045756140874101580720988504830164305128904083800324735007163437364164634527086346455275229082290606563309204709360315337145157358140729493952016428746476299247444564328463556056036400297385069522676621933057057662468165528832131114454909489462358563546382192981813087009575928121239319180013081650181181485034581664267369931735231502117111979097595504070179808696774426445469589893332500342115050993538775847037946148726950615751489569741701052958774539331853016177746766973280944191873742740303024416439442847078640394049496943038213599796922403177750897608485363774379361678553356400874786422219639584851576274599078271499183765999395087662407123655707482959799419227063962661035087499028800398989744988214837625359863531644992155019589577584895856109309329062855339665617622801057003641492979374532548590328874565715078514487789199573694347498338229221669007028955977607894472714372664030820324643465578360048385863026543429213459942428255995245342714862135778468854878345682539462636061994095583119058043264992808476285495315122987765394890208044698559246614994080205653308902261140285458335660525976105552903568785802753681797229507793431420468162581096689531281909528280324876019064461888224365606804277801345233004091923351018876613482542404416103304935933782784221760402724953077391310361367484391877831939779133433935733802283156383178045842588236840599730165250000263025271897006627624607392706751767592452195278505639092474694162982755937858271885595936339099247194881743580560021565910667590959867735960919850307419889417313165157585044252082808360258763857246095773473518393252771980741472954450831093454279766644343246728714407726162645502727974061319436413383644958254580717533210726239074960723139424543047732283111324427488008319187383327506196315402132602113321496475790227538452726437031828142607477049765065090848006249181789507970984669302445299396242786301673766117029268488341103445065285527696165635768798245911776958580935104689688874503225625661066966591418612901307165180369530459712098015262138188285079384100917258643981160083604859879738706757520817844556563056922059295387292932655844682262058723111208038642845568942389993592292813940356564350117711386076561809762111828759359619649789872333539427631320439222303459785907838666894884658344445398169260248380571097907432767956731176721216214485748564371876295048970552827676565230904209327694145980014697026798405778691342570947817773527344278217186153505169514326842692937552386493848821365950352026278571402176107535653021310101396270581262918216800798697536831664359550203752673727339225586866320858962390916568769890362042928460450953965420262481519112761219167835710371300702674176847804359494918704624180728075907577786254916598887978992966190310165035258342531896834290726645496649562463895186094957806253947067285010930563671280890970535708904003185876495353618356196803754743519510844747729347318984309980174428605435666268914427679588154756931123149276334514923167882405279358152738904685845241620607568437932610799628303504767040140808814261388597376394105276880080661181669211491672084432444750632679030506271415566930096993293470951124145685546682409464674135617992465788355393393973929888193962599497009820046595830716002464565120945058298839996804688151704724279376052289370785254392293669458136938241467251272291671487613661533955149685614912021053698535078538206721999570655708772257898786599961333196277094611806705467258087690899099674983147311539615786197136384603632939314662455524095148438748426436155225791306467413954288684878782315916945805353413615448829428244004081399831581700207356808904458524862329681590349192792532255600478951397378464046253605671857456083907099541089397776565576399085994214985651560605117735416771905183708460224966086153190804219983109240304323559813840708439910057790656633449205026318791069023171736386745876525514522099522849521884318103115591776467919912143971556981999721920650840534934624074639304160780978403438677301200774531289656915527866450908069539265119062140324941280706292859221083175040780232847781004948061594009778677931310550459398759850479640157633152361398577454630107997991202036862070457980375503690495957013112433174257220674739936388391002606130437395857414769854562050171051208900374251853115519068078519613610351172142683318046188023539387859778592005507590725985199126653856757308190132769268866100722958961841384937053672717880513948173861556153355621055394721626168073085373804296585463392439897712896363452787473645920240465530010231857604081154599087459322857313598477013532593370714780577697883286589078150324025021676803081539070939333473755769421214079065582848540298089438927658261143167076055017715447414479607274158300107322943209253919941042356262136317524230243442193948725325885100346829267022311834614150778787941633501517309209915924295672394631584861878081380416434452359921202603785294356533622212130344817644540212851267525806388695328396822737528887348269218250794669926976738911457230049718375924944181613738207131419837985833377271007298433113338895341010107490780516071718155908893315825238886113817744072078710007528894726160016552890220639916443888450474631163177984203205395743168283525264868220429584629782731513329164593718207908683671832775185199533535516976531432312481732671344862814423147219004058461836882258519838030878574664718706382111633879513558794246989878126157788153172518390976368643438700526643100515676432271441184830705190810258972703654979574008892606191414795966453440729338165967711015727875000887152787258812736960436394655086728040479123375045109153099964911357698774003996387157542893981944379818522318361326598575618677635645593134544766974380864813629837525303039724540993984423168578020083533092258788900872555295429162007417073393766251297339104191826027028445577907413755790210680381261981077635515339372968515196950506074144179815617000414938694422456451603250987506769035399395170156786133451430733702762581249761331070074689819551780180263064634734617666029119091808698331576590035154662674388500759075812526264434396508847923303948386008172343476038177313535411687606885682153121330569339026197027553095309156216465873680202208315562569035833054453884879848795975474851113518421003422037216235688283051083755267041922944184021193637570446723067323201621219545404811675664398535072841111208221756001819817073541544966952157391710714829034488782646474736086383099203982595853800710458690685152324007880334811697464683635147078563781134290120820783293504625230128906413150444664456406365872688096166635888222394880537374581939012633116391615743623760583727356322657381658651481982679791434001240520991270348578682007332779751176308465331722654682177578335280165313281480883226002995389468942955599247134309431096819710497764573113823933817441538238609528040180662700449721593209789809572022035090123358714747300721538393880393023448067951709375287757155457568384965972600037531550839914315811737355433858480262214535452406245430641471959437997554279417200049295841445416459353476950384815990585875224270708793871187873698003279059075372179771804702940881324779732899095596329552134961204822387248851307741749885783197473185283022758867291050711061278607326590461218332287069659476548510948755060735350818782132050097079597814104807690460100356700900586495659615213748257693972837139525614092307987451234185302327538316263755935971069959869332378950165381706193074172089131372777325592467311964124992305757840421489845520651016610599684189486032761483044052905345396232322298952252357014174404803628012551068669090744105216591866686644172904212989834120365325618856425551908738512558794054841759568632861519573469627420950227836885650216020079718704198297354825636837146195929544496173328751364969427169948864029251143928078446572997925914146378355814379932515944729021711218498373617463948332345643725481162627847653852809866377753759549567788014690333977111833591875628827115254103751572984782719261440736890416416188273953754427909477131595873479649402049190516941899571050336341232163137316041160543301554700513858072969975805587899271712657709703633137148671648285693966569230992937027817346326301519762933850844759134525341488409330229255710941311392604448683671109062646966010209598959721376311084544044302429234925566850859034522367363262743697898741590184171754987351888028324197435901716698946461500619871971211986050016176084477534530210751338702272254699785339657312872434395797872647160191372424355144976712905614817179214889038183118989164847437081733702297511351637786657977161743263553234654153343844842897610992411507501632912692575815067128634945325561507378944860618640321905308492361938200547049792206445806567272537375180605536155720470958453443612581085404606714876409862485501348053404769461950857412262177820803499416230456211009429438162458085743031053513515740297307038681856914373472270307009243252573414252565991183706024041495835685219882901926178071851485066550458578547006991484229390543891926964710540680280806996288891641088356556499548976179181722379005524112599235030313842151660853047332364460511880344892014047946656229885559697029119300736124374973269580782678505867816623589634441325130435736202058829438880080677109659465955308099033808821268223344898580828583312217305705472877257553045308149170236470661169987441844772054845023690285572883138194705227549367676205350115048360977888317577718913874634122786684025323213764674591502949197723014283551580598558744539861694570091838110606097903417279371629996279054396158197767123949509340560179235596712633230273276564663098108886784427570331476979362308947394771073029553629938762578188793138246737128391245776012950423827981613611995352878332196960669983782197103791016818013155361705515105924454226198874363383643397335982236590092433003662929983913437764996436403784430521955824005561591065160270445898708494257757847325487726619729990974261687613636559516588233543313960636805566113494186979620511211507739202969818797371772364703209911117595762487080534107771605592755973735411948621542472427117896430848178732363265495449801950438461873023775320391126245453864624186340458446768030726476185185104177491495565321733210788324609530036419033480525907798656313996879321083945280050811561124133824954982144170029150644851746509061491798308316299418259304481019930979714541191281039371483436938921435367874148236482466880581483187334645922349352236877179847313915100203201369779265204189024752227946859254534067571238004762364065223189160414740267159193927280737530222294052908507593500837810286241273011789431022302198548189970943433917252676793835378407356683443795184469736732436206689188920848121349375891652761052405360657672132591313115000105759368925901865656044980297507659425689996670233011496842021954699304383167820443085608815457728953516344459053761472585148455474667352386752151314712857265856188269958641111250797316934393025657484077919173572453533775939742499588051737607597927736628947963230684690392815957221361406808284151692873587392536812435035350109644052234707345489026564906352981203445727018671847706183861373600679850582005743923745760414778842583243659195938342781577033995955590884938312883605749354269193481806362911415687186124062715350579227141733463535508982081138595770388051429625033919715580528129808692539782095043315646069197824345471657616323935103949068305693417613240981152341212732768490404951614620773212315629180410028648215910524530177911894493513370346358919788718410034250093478150295374153500214781153235233402866751191107112625794737591342153419027394448139160091155168404436250362816342085525875232512438800403754948940892748617273685495116575833641818235640959656968535634561515669186348542164222035354478208316657123610093125943600312867004653758468511522833394429614514768916794362906593386499114254917695411143528114817974439105324610071011094762879633215055635124499485410983976059326142388790257757863671053262148691514794032670289006587212325777466567390898607554278325832726681896274109298808893351250286224779565192236185472101104685159679045058893803498494453384775423471442622302695189739248733891009636720067404545103839355773676660888002854826270310920152640556463869463389215935144935776367591694258296421622914388627606311373922976715003190524805485047901826249345968476814290044541976100798547146482959648231939758943965610495582899269998536334270684199948215365331673547093582519011239747916876206518594373073444795582937437355863135587738523536003932067649251258376637677777859317076084246974116142907767087361349246078068010191925220512800848281813306836694760512948239595337657736131756357261589102382792880292416612310544408745654175340008175643146708896459120694125188015304457497878758819270014791738808038775061847636084149742980541318957776533899011987895799800463048431806984782346754861015485639600007894878995101667374889197146385185371809771484995011867302240741962780852279957463763800256004839071342973420535171497543930377994596226920657302081497618541217549759298099676226379033376483659482861732486103960753154698912216309267965588467619962741412048760828709818225158412209030435190052056175324452745935288839312758223541326571417267150201364789578052923996622716623303889135767613080425238691540781989935869898700562572483436452432274913203511952543024346814763584804361855823003359934089134236159168589905424363713649938870635166973073737466277991641684670916724495586758596299749265508873293100270924623040234892712054042123675573930659362257777101780876479775109914075315535335126027607744805880866524746086073756649548601497276856073985276180803126619294475257496129344645702373752633817659898669201036342925655912132016458804351053889390407109122567179641925185320222779564296227941425884171683969355394456479005143464675857469427883662631403370376458162228707350859944626911693485966505817181325796867696997655684282619484632421199107020705700035255350542400476121737167806533783532736616464926951202813877174750637263880399091132130226846453794958723591758362844083515607208330372770817872885795391267664554456553284485069606667701767418464892815816584764068523283128546853715497190390414497688950141419968122978473429574644435485374302173458796836498240567511630122378678158485053481200503062351278274652126593424517798621659441515269819435756331905552081696765087831642703036387931148830483236966794379511122043109408283378155173127319494144586008320499418610904139613607520382851097567201724723048136625685789731085459860498384809396485556503282737062494797797860858276138125921366319046544203255863909399465400679720465709512404408587641874657261897505968660780038867708600840119365410701791665976144734323066913048890323542059286078886423912555444953565758363086443318639618952537264571674101318523032723962011663395938980352192619372800119858746515835577596732941798145851780305325162594088926968480153485339382830894873495052888989895634882443535230776867398238120970212940552699003040468969363466475394585720399568051397725604640815443765829291627688189743256056155610201717055739471589807887591715947873172015982721051758764292342105187284965410619452982408699968071258689591917972006027284176568939216002067926252231604295140839320705044550054027247003233350101495423642733703815006731381914353099773382075060904047112398932581031618852005821109838804207682877202261136526232180493463605198362357704539752215162671354108138951229724636270456909480819453746119101199651809706470983867774723345567881312964423841063544260695113418877359423689223499599841271282264083450501353324042648232387741367643865077098039546944055388437089810070778711018549025326478288082162004928741307572498892317480953340711616407311724422040219120614477280040183685955897640682793070231910634618979232280825459060918784284442838380808750328094240052812563104079643640747837034075584340136919320280524268832279143635178620585076714184157826832120135511207179172844617523214442960912496683126390481543093800189671122676500372241133634888535263099776899745046694143442047065648609898818068788190067606980430651162774149958488240019774367810260670334051184175961899308073705306687877909008587755337093889400221925463700250455301992281230637013833166203601256099477978412922301301167374812805500983833603812906618427604934239337899910083747962484757709930511010459935133405556518656263514197086753959160279602702705316379617202446853253622697519793937887182061191119480813822605755560488418182023020771130937086387701929491151335266216004386666579361323238109510841873675283959698667943271743004635067168997448055914584057264631922480765256603389334646371126168670288111061820857851811343483946904328213563870217117720490936957862240980659855784766825005450756918026550081364108023401597558685305398519345075817355569509608177576310181914591174833814007415933305849397411032462539602493703483168421107501959752875940868803001673383645057667245063427478206242008150202760362711347821186696383582917796107530964338692824565738453586828467929192999649453314140182249806865741473685361068292914851621831692685607159275789454368608805412797655830603801130244994835314100160637720991931406956432255293518647304209735413545951830089661631157788018869119388192337487502192106053024484615304435653330414425880707796039446556311411094787317322513124846068153949646384133074161635539807423027893357019460896061636377386281340260865714802527215793932254611115006874945486577351874929533328014652708187798332934371147678059924729234412761578831889761625283569146470768937396766107803707327154473754524668541915935334866409194208787081893565757548877684411901513824091770429307259725467067894514524055414809318882492946729431747363666280731734056726196538267721914035562922271229042048972549419376439669656957103042337524222508793878137701552750925189705456915356980714925090361944875222200344904856824582738021606646150079965667256251024705718964250291363203124009030541811028978694973518022693288913847208159544540469861431211297439725367221916407903020632698774173275801680707530394436746952146711941447261945525840311646458559251322377944698969019185531535185340562726626705876298464289376406841567377061787483945727438505002625264394963552768044625077913530485126146027527432778903396029336957772008289352160117486202436241010998831017869936770315846102415980147499651337637442075356642251737270366261419355230414918350886026102078423857577516182555937927779118234600085999437747128103444659626155483729109284233588922403559834406359898085799056462503818828026520225988682171887969309002585755014486291804411294283443406757335939218523005140575108105551284559006339571481351628857435788582514417200118211045379565536780102596120613193617062735188765559721899291363314181483667708491258568318740841203228706545342935516769183746079485269211069930892733779500532624431574008273628404940540254976372884500532799249697659995736306876420227373004794336900067485940066129467798909312990900662968751687369497870210227921979627185209518898937286855749404966434212613243905583499607515209750112555723212888762024363890274243408246904944295932435122709059203791636895643917128665246009809788293942409914005252452285887110168134204454816775556869606025659339456524630220471485183369478845083162362497280397943451831144084137816930512792759211125103614622389644508550822690240847905411865404243249723796785588497589421239251515203709208464591648455087291002689504708069690132487105706638272967183618329020813593142056928931449346163843603078486088243193351933339862959056177750781560246412750008861435803817085325421544737698736954953362203703115668824029539502558677140906568387280709949140038159687986448808869457468051986616140770075537261135167761796228877616025929337222364556095234239652756781405122300642107070715840454580008700902782014274628254949287635363313469170360653970099071714459322624530333778238901327215421441462308452760068160693516752174408025279762423837724572153662663561272151813946919627159933678960289962230448164526319547229773648714964923596370453071748973990740816769682785870921608950733276338280337877940987405824509189439824255327522543358231959772300992194346041475609284589831794439671069568248183634823515922872146476388167568052998805152879927760616446047961214195776636255526091244986087281694640534142688161468712491889178675797666336224768033331601252034818213454126633318984276508571303421420642136833878085965647804116545851453113722229013498298783472755889084148978343516956909048643046484357225207158653827629594837638269244048738879358706332121230492603116950671871495221085801445147867066055842158176035331068639760828615689663725784914383400883017543818181621166031763447566658473546707665883961194608768628819551635058207218909503133017622428782125283112702941248921513768297109628163491089536388102639909333668480361261918392225976452062198501070866114503006546082655204775137574245965259008892035204237279310951608658022346728370019978112293700062409184878268413031787305751985851035121210589595781153048478693331776705529067028559383700466106691014085701896920825421147874873861869934785866801048153388692132828887771955687728872275626645396233210231270854050130104312499063474250294762589906132413126597566259210146653191141619524422526317742200230301513262501243520261896754673970543422557364381961865963767629156358126013365914305751839484560123912201409840197550816113707501124251495740537584715671927427268166276215556020790010909347480723442739462866258238411616073107018761717511866479783975381565171578546975870922880840459565279220494035316705824411871718626483475515664385621929235558541416709286229097143683965944861287214535819418878163055052220254764299357587468040056012753053924703015984022892812852854973053730459365471425056101035338192486801083303742566252768884085833070286362550921565167163852757583239265292487874674442358407182289524005514921740711366991389749138956749856520422131748227816962261165354387212131877102967416998471204670902018095716172815245374790151742897636974119149038996382390324155269700650980952222945753034669463428199318497463582978235214692746769386462330325819161323967965094807589197163644299421103452556918680080843044901293400057735501224437074243088939356937499611678272981817416156104221288606899849547611442572150919630373120461847809090645112990306645372462061675637765178355816385191188506305817732139151401549799200901905949372103857476778449875240110512955022708604402927898828599958480026373324477144863142744513146778846903008550226782882083490009653311958848974138834829782122334609124240647694406945202593187817971996301774821207641495291355155790941958023365072058556812858105440816438473377466134458340685549425397538140523371508428003604709686398232119383220632031251014323022399514141962411884705950223712697133630006248499284802604762487302931570918682777330972017801937302968218363869873989526806808284116868363986082795756675591842813829906412987535901292300462403295616984727875091115933891583543883345742363954713430416534062448130615830169131452510225275216199596983427948493929192419322637343157858436034307270102903483762879568476105593828590535466459959810534302791226526940250913369850842846815421142817945195547340637466185658568811718142122216905376433525218856241443707799947526888930364344192406478948034040991381099905231776285562472523330561358349674146014463690709365157196073608415813799874451782807372908139305576343421042611203556526604337511624716383340523773646413113611035650285536498793704771816208516790366491263324892007714764566728256632826487343857003431221129859181389167682536319819689117728764612204212941119067906900001810311438072316957943894120314062058229071791305189018453678835523084607239507772734065043566634297214502125142014826096180919492851833398290092474288440764154643615086897549019442579914981712181319532098845298040963512117064662877782864751315575141477703460517925530347991923276341926875033300132740884645875790896065604883969316539348776897671617530865069661990681402900642475527846561490241062622145187121887620645645602445508217998500114857531692018294082122047860496574637467870896944448913621631058800853968657096870095798590441010396269710634226521131844767256535421183477447174894582315171500757784387703820546691185840599320608308560634670652605364898174694735305461294635634803864200719222729391546080164464789749279950026418070240875793508363222348594026296214169869009707652107432807899446376864566536684422996026443981908429488203181353610803174933777382121805587815248022009697300107562401722964859636008072877197610738202047548690259147390032192873574444907730556527184483377335818380321924346136289723767446525978600765434952446894086436982355599358349364986992800393146545040871725599538006328200363445174943722422725671129119619280856561726572862420476128207864217172060332580280804650154020476572628949396916466319699320392924542303007650891119988291218382179319161008655011819603269188168782235527426490541871252706277470657287742864348234567318093666680043278309989349441640311559061412614064454507281797680171256610381975984241942926874367583557487616493751337967109288023659252900228413691916110952493546944611119325395528848121012619931393976434546141814176450354606078089107271659472144053754467755344800271141321395207061271685181969359832231702602599231567942996873873085898815151866628559901081127276341442749839094259078367279742636760104707007729306565474819598442929229903156495088978809945777012545976256166064462783692864434983939673476447542946275807404022001456024257986445883083804293533677626251411706024085490083850877479701333170011497379288059458093083903232399051125260069439133136790321642379425055000620998041512045460703984385697523021932543231178013036676315404008822595656798570170998743835842645369431845978778204763899932621881759527829021109934248724815953993773435071019868037873469143363471020873166710079151053914752992570602883782120557951408457733143623299209377314603221525463259886501752957999837549491823444785870131399470200590194386975255257326298743925133863438314969420283654120326877558101511565392261379223013449342199487551810654579475148942283961694278169940741320457230099546493254804075219475220864653545178990975065043519067903446455692963839097687031033987106791724957615281193237492734035575401782506215418100173382848028880488022522247193750121515543200980630524883752919515550392727080054454138714570434515140935259490211585109457523527912154476281569608277774782511095778743192989310692139177628273420836835178826689937978418135387452528227036956364334377742391630054427892388454932212176146025899179869779119557705640552725479839916964682670665100164958168085456158543108293813077583477780285877748994514197073430812376511540459590439832973324572092795888635172746322800290751928199137457982497413150281773238062577870332982304298494562746877249768712834269909813592449220657078844336599951965309865072552625160506339177653556195477589289622160116448029732925558365071218204185137494387486811586044075378227104734854905708382346021990778617895845746840235051201142296030235795334895811937272545081961907434697849829122161999861747022336379773727781830276680580070193813515059690437313150265731203710101245028981276106892624497044762348256522856620539218516001574971682007824477362643180833619537017605942908184298925821013333276025764186927299917503001003999095576509023842865489956789689171788152065914490300543069205150769880403249853091863449134232324309897925216363510996287077733415537599262453062761124234965095521315134752005675787258106428341377236418030097343059128697759806537808297329455648040795396508024094725145876541619074688774432812642889137642419637010482923064273856475392242269720968743895601265746354564612006560730002421906997256653087333342776486296704658818384713759037618527272567356983766813315439721204938332483583993464885796013192679192697204075083978376160834225308904288221640821934742807238158487916601196254054270735424371026859612579434018570379810266909946105697383677003451841041402348452273842448914798171114813841239639406584488677298842636491508583146146571361466028069353868024337240864408860351911975178663082028737855260666131140619184768955835128172137508048277400444813410747994808754831094638119251997542597065658105972988875195290187232494856399279391089136425226124997380758467443357052524731167327620188608964967255872347266385527606805018307125072645396105953108944643912312404562489602150904869944024784716129670930463455788379026791012426578207138082285179438925221152441777911555903583218997904328575450404957337419094761387211299694206580207183770099545738463850180696216593513378708394638081955018791372140121264257053291085284284536628361319269491182917064135755811314423235901574923052103998251487870160954918007332832732814084897435947984005346859807026238147308625052542044676398143716156104511892763081676603507600840264056094997386221070096080548091372265316939377575347065952799342873198150064113046956098553935533148704199940594955753006369369493429283159090856176621865613033666638093463885633527700100540867802315139248303069603820045855444369397702103191057209162271522222896350464219315628400823858933436770271363215675677803238311711563689374848152652187746319160054643947064024781043657245588863483769015326537771888805541239773674594103916540350581456766309431714936624164012990117524264913439701099486756152756372196861986553217270687536364491566980366391223673895686062959368198214189964717939345464481484814266496176627500676455228128583951757236195480001980271949582679499444314978097965359312880015374342547493546438506591845177567385123436119602005390016956310522524021415102022013876620591660821459886205864459448035227901436520145583408360552580062820413766083243258067753710474120230082678159813442141911165790478340703857305458429158000593871350528224423251596195833877573026609789606680692099986397771205467844751821864991130465040766314136496833094149570313495745995734335318698732897482170746979217275644307887748981588131436579854894084976551168234832564658482013045639922166010779265322339711119712010380018165060086360395247877252376051702094921492167646129278986247138463858093451406867311297640280030398966877708382439298563495568298075454046496000753342875970306940801893740129631872505010655040645281458446495158471943680028213043222382103139569867901887880363315767474805107010745666973584119729097382439463628648326392733637252857606209832784918257753852665790722327709349108056304460448357312976003192635625916243665415970779263118624186549417015291092583000704236757276315553395470333092975735359208323085710584870467837432535812281788203159715119822277199450502003715159910032231347214369769281844283380861774040051013856529181629531566730335636341249056210988124865370639653046267615987694065021596672677274999234909287873107695055097103141488747143712308197430397532523915359188177992144546894168430838016338078742622954392464006644137460240739138075695002053355277878195162933050290690811404474736030670644479014109707164813483758422240509794248514977180227090176285966071890935925232643506402713214761070603577078019520877785605591785118126364744158024283869704788157118066316978743018850078978072933299264666248061242946693771447830090784329046963231293695683035357191529482624910690498790214175661414580122301519632813426238771503395929971289173788896026028680094604559461953754233212511011473703815613435082770656489044033775078032768574921365924305223641808112710567884256962009615948172742611218097639748501284507129899512318499302606276124216895902315237288357888467762395316465478606615226095834408613962704488033599929151533601734745414690143567108435139820309166051010712695416665119300362522049270782480087421733415087110846452469303134168632511144705221843016339402541045178628039298888712441414018278983531701363013729396646743182910184338101085994358304520221200780695065602296806500263737961600760621289623413281607872105224902719262749260692243197640438461906947620055193696799242568639790319643062337845583749299942569597924962450205258777250841415084373656646256475906679592802205379661283440727121064147779867737717682681169922889186599804232939687815222564640557376260440942183108497325970665811308659476826488290146516690624138080792184919500537682445417927270773744639985113297581360869700017052048733881477513369108055779348184451405933769481280681949820908773635941129872529818710720311825872624557474352520912308489417612321940542633304417741220461021721257410015273477868759533611076922515242312509894625761996615395835786371821937567357907220342520124128930196933301974020408303162476008796265270147776316553828026358547929084360919952301923210546545197680159237370711620475539580363148607413927884044509208011506791639471263781159674983156391747249814356255492282635240888554402660102430792760318737514163532937129172751873386405404106542780991554510666658358908025440736061933525757240744536065336036460645710705559500466581759496606096423202821905379806690029300862524071453521252538550185746229899713239150912875405417972431611763901304675229798869154749883801446994319170132916879813035749060893756756457185990593987359231314291782715619214754465545359650927313887867392143947050628601767931116690482628860787985784010862622803741807801791372098748024246356474473538794184798060600428245101151442462951664584413130361610293040086551814503697310895238901907080198955632591372667041549159251769298474222224265787838523123889585750539431648427131872442259206575584625556368627834193448001981048007641037569728140685679866477410611654771885210147345857420672108458109182741520299611308690683350774805098189491728108836183812256306916258807903132297342067853618924715599609349438768459032047354131548357610603682547738410901235849730097777118500396893481628788622607227113845780301264481413814753851096464855629454435065575981242291161605871932739437281975729915800434536046025563861775764275723294827827213426715480716062406324868287518880335123772210547262514515370022941737847279769267248761230415396722067240985303187425207641726366035077078741142421941234279065811403879069580305084347687860868779722479437117909281041844889587390567539295101454793101457031680563095890785056077003074578062669812846547637697855200917991616899391217868267623479822547660048189698391722105686505640367208895312610449842089670666673170943584343826438530126207748844029563584607904739892639329106271063567674737179358007989254438469779230536035127287902326514593268427496249272204787441552871629174176628677307521651207258968153724386738267978481932181906219095494046832780818914779949773902725558904016145984569925879137699968173371567256126569171388541509053039765024704084730349676532887912232084877282382109389998069518636625115374036646130912786039465391160536099562817218189797079462461786257399349538063746707208618389839325479018769942025841627199578137992174714985695426939791704150661711529745761265801644395361270645997671498582338890539048658905528240514293282147381547816172157370049898275451705710120253646558258638978202125152037985789810217864114137224916183326170331242094722959412093698433830213910297884548785757490569585129895177913597670965045863176272810212465062701217632464948164844703359272777410631207444749551131201218505278314248087981873499908423678508047977620647980959878180449653150214531384722803555198504121791045345980714534742047375562885445015160730494571871301149469659183846652900576728105293777723608935561940185713574612246763214054462477913580977389449858304702774931812774676068920327351482447832363964599939399545494264128741545833028941190936155800200725663345176013801784563006033525828445405388744605982977895246778860363713182298214700121874408107343780276607141194690641429059077414255672057353331372724773965939889085899392754710967922689117178040743759672447196896695143681245771143705450168559677867130640789170154335517988510936298350815178871188887866804202868792931028970188293072973063094495678582331413186687391958880803843394235836317324359023059260269875603876702123681975113245610646363447626466493324390088120953584845299756920541473625653610868821565491685828445116056852962665697802148984836480990602422159809981011498024196595136767259574401886063907192105189140928762710029144209057784879964567660302677114192687131867969126353027074435360234597367198126111255927089270230580331141811769015571359007131646555961074837931415631790147844584489587668952393759011929264445117257703304299335147983253810784549692978567901082132220632682331908090600658950043283761044854470186796547242805832246932280656902595337355788049195414310817913838788473518918415429301541223189440821996750056523506304047455351258837793819655534407172955826980676309224132788368229180693560464900579346464470841214580247596913621253317008277380678088853103697963214346273894391063094181846527785673356663413025489564992854277417919679783078929394817868351543893840953644650310366781689528614326617738949583442457498905061739931868856247057210500610239915984872962968684528178648277899260275067560899729045208838207803539845794592736712061393784798613017756747426287023391317821389451553194640318866047017514116649349283165915763328412960045050899431014761384425725457422184603220181536623314678758227252879836863054644595697413702400019294938291569956200657258718930486123440847830797348261647861183004468576868881247421521304175466115749682905059718368439699511844986733328698840380859302896949235067500685785906396959619786290426105038237312154306638406949416222547950156613051588797409124099821227394769100594874133762352860939522257757739198928697836102749229802642466109693310958934931301838868848011864637988724805003115933671158661685458824803395258882378014623158549573569099628571832307398306901757547729484368642065852188467584050273100638920934098530282910578663823844344731528555237321904242914098733788246097679676078190103769631713508499462498042376519189992930430072174054161360450092872164506944807541259660069664190949492129653707878974426876801623712068094957754334118902906749651553607021019887033637144058550067751140159906565265628323800137875793176655036088432251869847947474900781751103644355647055630501826422386985539504941476558598645764427551176402188461028558051886879054426568766939673096749190809271206017369908605192109619398225017008592637071994144119136383970662035943064118918599996668747625784450937784432917018811276209072358875687589299312412033118900039897646249464592426508270948077865800620710218460001627182499824001059065073179300394140865179610888973865082875583202878040538177308252858712908201230393357781453566672652598256064141862552063005686750777664155704208914382764005851501997378402930374139000289903388452256258346152277693861310762476024386045910340905217613399743913308496068419505964026297245197203817965663739197943100598829675096372694699837193583913412956809775146401430841057777987825608587071992878377844673458593315090739785525016686938568027532022145679146380044719176861774903566079414659168629406511485101121813684309018457555646938945377085435587435472561554180346978980469895410773835066261407057533558930909586793094994447286608561218076253331603742781644841389523866071994894579768996417177903852890456086478450090899193870315159627269555831451437430825208187701034587311574612295618166084175814771157173419987723887389886782041452478263380278395553904443505056613080156461586629345542799140386350242600982279609186938487386776009285411742525802270602272752800668853144816980309264664331911500206655087034148398812279769485653112367250150328586984564875870445458485760100153879322356535119243261137070334634439485605156005109705931817221003075309093424930677227698249461911137221921990924257033389005129362693409072797646658040889673729840949845919064472301483567353346044790797892117433402806390537891629944518655215926974451009635840133350563785582976631697404725917169847814582337675736851733433769254347636471659083822670667037348487877998100320715703664283648195771008113707114549957309785013475512354786363205772007574723077190460997539797641798068748734738176646720867453897732447273313447532302986538141351029763174440869226957978324104860835132442654260144296404843085263597002899855153185114708501253154100875545705390943195468023295479502267124286247813263673944653193315952366960019367681345780305929977629621637733254944581768674074132813428160568209094172706253424488794659941617201690457972525493465795118466993898195618246269608649259495498375105737494553247502246455447658588532504324305622134356631610453102548775841068911505097236312217363862447715570831072313449822157362725751437816794605122602171222710937662272960821566700226867308634227303874716962243711226739335740110916075025602568435841700614521822211426352081654643900986299538225691168028036977100488731135981693736242916878733100865247428813514362041285897659817100048302277254569719607221837783818023088989749145787346563641045317868667590555495322475447577044492594182609064215728903315322854394671882334904600996485753835644771011604213752649511436544698631247725691939357899403155090788845843077334223443877193089019890222685876044318660016769794900668090921127807969983933952567719802915667054511047730046573771157059927589581548552655600505923075053013973045271368369998808689277987149538897989849506832718532421913609214279058658400343676753068978927588793913769968207291335488438534451220275141459232984763763580636873957147265906393099753624019778625610248983590549703648718384768868830920776949664380925360125965272143730700783376218672112701109508072121189484368918969600009655421708131912246195417075783255302378059465615931716786014709830487990027755075793706458123944708779235498450555148585457539134733242779793668125333441263046831996825352672522731736174769397844060477169811913977307153763121812620874637026020195080527364103011165011923948228955767347188429885749139498846982612215950454686658360517186054004691911287132736382504365541618585245189596057524961141875475284194679673423511631889456932888171943736139591433582085669703749884561659744219956275188084572178815300902148227112742121759131585435522338183047104027819291415422667437287915015948696238937391392053307790262686133845837159586650321363110899604702800593428140605619455975948727479301834219041137995837040330034806447253413930451014376850556025032610560274839596172860033061915097100988748963497026710154702652004876938115476834095711228067145209747555292901083616608558772629642099429244265974832265213375949541567270048910059769003814958929115320144169784483443510898246413219871100949869530831152929962559660718201006261973051989237692138449564378839377388055267803891894960411766807850116450919462815882509682345709709179123658381105050928029680826839673002719457110759384072421178058956479980440129524614963010699648086831438028300303806574300601151364725758154954224546071159737205870291048674212391989407289202954710612077863017210110426163145942900216582211197881529749287151553635523287965896813931365187174588023902788125690312591191808537565699159745818920902477219861953145712617185438870580604335460200849912340604208984788866302996069372104881104370875543047124552803414812390049520372898133629034926373103897830464417834813163125162821434601752178651631928384034634892496896457703224700024327127961609257038201578002812503076958793524382183800622354477510672756747744568848085486591274603009526185298453610435143464249581801541002309160057342984249561744682793320604174682047028524094768155298848853395460120692375682981715943118292674420036657414812880207792672281177339538307206440658281679413927907578136375967319779313787032884529063285228569750057442142627201440621491658613469084128627140211682779000545653992161869135495580466312476330870663593470597520893484240992573651863452851663420050769656920020301666315633693366434995026570510535007537664393055659211294184817913030874281919802771239208720597624481835415870317840940448797462897350972778345018018323742435275294712581883299983865766810693732342994461761464667640428045560158169262447978260597006156712056813335088941750300487436289277618143814172896462088821660580539420323346196945160644062307285510337753293119182658182100423379902740895857152282414957246189034786539380770273800544910359528095520142792925761022489016245399416287340924059540967807263427864810413290588633195624583612883394902910355805168221837844915566348226924321192820438142478192985307820363997414777458831281128333622904926804148727634285803530547797872465699853886725765633179602547786253526749902507785700405660697542543193030137234852453016096917942577450261033775311214768779173174816888411673742529559450818581229568555144499872935710705329617460150377124221862536934638967137706005968286318972130699443752710168365459483948144063164315827170853149959463677837389916409012481937020484337054110893966934766450975962344671071402019912263458369240250015461514661258527394122558214001946004922391757078577791031041150469546827322848174618882453839346524498687942860108949366123354428074875712233477935168388085174553889862673113284995660034958839315182371985562076398908486454245540547765088476349687718840540383080852770771948718239412867410517033403821854071229500480837217342752434878174689483196828314660395557174781205555226904791301345025521130540759086776820196827658693379489855917261347542402490523306261563632802704356777393122184699762873491966760615161120839366872482848220211342472877760132628455684033998459118683924723656781806159165217648731855237643943278573476833118411793987643212703585628079933522392458361627651678663440975844476367471303236056157606236706737963298265288352140977838131529450897741344916607311361728513165917000837715440950935225251493512263841798878044210724623016775070878358707725901493831050476614778503261465989542238194200855526181986393486946498617972635376223331798025762689331805976735822510331581100052659925502655101676953222343501901143002807264408573289446030780388657666649866619911316948047537403523631499082697417078450601367501054424124705239578400828522948752987921617414883975193854768680859194283843016388501696727014432833233331934557349528406402162559508093687476042029292228086058860713434963184301457676757863279301836578635369560996736732149722444663828418072395830060973586794642586956183994647668468288026177193380550647252018526691922127128141849126479621151422832381465663804853751095377163330964088326722048317781225210241139527704366722179144459299848243640718649767153464185632312113537665746237185889757012535986458075344506097377960650453291012702777831719195904941122766611447865646457459853409113726090758249134855444368080542758698835177961469619118198841707129434508406587410946141054630660813184091533989068643466141619098180152788287603601368666367626591798396812723732560357425943587270972678929409854185391271300984994164815017593941808725605773910539225089913340815258012681498878799956780324038236134462447391262314125395209756693310311025234720688428254141531407569666442204239657123295451291336334601485889051367928493978068854398925349952588240283507004657650553268461302842069766845882539873404455232677392478913920165742124091964063848342761101168423718599384841293828649025965869606769641590189885075774365968199881338088208864069089494191020067762616202691615191723837689394957086497031549323927855733000449823339486825362200386174356800709395123719710482262796471285302776079565182672202107670317938490236491446849650517384556480813649679935013817913675883560634819553096110922327473313897321362863054834231018447096661199789023576874861277316035130315193112592003602737325644534936311221937590617620307438260740637720853752770308914894241545368038495732774881123991455389692500592210995799960745544916929932105905021164791831014374840329334309656850550950796702572598967180242858717383611317234265328551162337076386272370716608212696463606351871453756252581155819563047951168189162457644180406471216987413045164753785971649784285575745694099866906936856617926475993671494340212037444503058091940380387575138486441179696021948871149418584738553071949131577148004139498928482819086287818357156714940646251724211519755515063470285054184129769608410139916933863451594528532227289640435861771156211263902417966430304395406529215892674250902623877738199590269911381316193021881297938012625024319157285013590445021492433091217220529034253960379562041390006666265392038282022571667468432913732706195446572096802379773447472641658554910354038574931327666272702174924763358397524394157383922002119644187036385062111324223513553111098188193932893544690001393130835455354722349728383273583706391300136557208862114555106510385562868621183131695000571621292274303745351826917667483578012907571654110342351702165242139154302757158577357374526888887657101981272699448408078018250794156948181188432799993081826659816851133923822121010181863044868673716829172955771204089033954309134435344385008429628936760259962742082591653686614007255457423723323272161209273965584831808429770174763416643223426761820874790082953182424668466452406563559199078375938767922564005634760508415928798957179734085589892655745730786147124552881644643166808263366408137865385060067226334777120161004111595095587134120402046861844431747547377569237770583218013292742169263099274786394862593441102406050208046933040893490241406289274040542401327211035814296316019606856393583690724771137153874823759156332088295940116270484923717899385428760078268540021400486191472762249864845873473852229391387462458906987486192820406829331174439436216000277707635782728153342782750574055455545538220962312082315360946421139400638227997692112079891470876477174850716025728226518253186181926876876068702617608610263880046282260470697057853869637307266869344879584189886729881372125171022320961069126846719618338296148606660463482713818634328418272302373152247631295664515377403749462802333192990167392227986385563339960516040366579060188259314744031658746193296956097378491471647963236553065730198444327304767179447599844683891397185917870406136926905635460961849560206325776916110203285572815789460415676732624534593111793716762888301586978394347818188791323661782888513623428359279981019431611129411957337094409001487334378726720091993636042764754462569634566219890962733773394554492628030140870027561273442631397193517889234913303109164047162615914981133475764158776272821997310028942249153836841479419394278774114758240345662416034202953739736718770973826342457083019940128981389120811988507290580769348593799004223941290750265191555312747505654885851412549922266695936298872099244124599268712682239635690664003038316478184776846548334615470087166831526099763917135310726073909021215658720323256474235015120613372007042034814998202836145676532363173799599670370434607502303325727550766358490336930971096622467957540004046541183411248356153261281356143698623443751958480116644459658842316116410810995917803163762646904138302712030326413288486905231597578763575378659160252790147898030120498324616373689269479946607689038308100632243609214856188727020647409385184859193592483591355838484846414701595997244478694400790272658243525919173460226012077992364406375303670954613810803929683968174461830538681612488667715174746733332320787419584717696121540938942597893977973870234334710510171750476894224619357030182888243906452818369772655843073215898253758792072308025035364537270706859767522908976769767262137871280309661009623746956926255371891825253498713249214838767154177195300899901191478122293648263865181003226710309999653465912229654971375274176715124602273816077965647208910764267512290320999383210703866215887013504796665395034263903679307811273624886443539310923352781667134016113710376932155849814672550872602249926227141509163701019047527726398753229589824844659630593368671447152439628902105441563724753874268798323210681911399841716546189036832299538573058313341495508332677086207761545529345708543269317650349848331303444608400913614437200659984259388515489114556963696723178952105936610214818453281025960731408726733031534692882814880979108839612601821192358194292667669213643400334188666772599623465709584525740455916004483500379157360859912902195222904352185326975856955496698835557790437827412733595235469952926340877435965327214977474586462858578365275546076911900540460462866608030149775493861805741482208613516069999010979642585822609196929596686709923090723130189108383506208934092369117200129970263644088383694230407944256430795644604306426423050090167411748868646488952412700654303030369134045249549872393999141397481728092853513851968306051552198386537483736645693455392180856869607547180616383445332583812904553030065460317365827071207271593926609481892638049307185379693420111912124807736588030570706590654390230510356664891373262995704344863466493037540889542938279082109103700110079565706859450737723350282279697338016475232935644104017916260200910352192545834889455163617977039127994116339352857569335502779998939758128720044941284133781829884381238469527488932560683919984533793462102555604898728045462739855784614185670478144818438067689679370889194160477463010493042153706501678096623744960924557071919567217219594874137379887116791637091659531916886779066045441678686411165850848501624902358509419408683103129143714997987298470296161416457589820219400187932608276790969865669931638495265931353432083533469403014595842260418396407052440360143184880915117311222211375514386929089841438148817913839143845609572628152729986083797515733421570796131901253007031042441836353618093720892799634871937940384869147717710994788128720876066095969268366474520745925921164960139744531827194753828140069888706389184108970358183223655384068942258990883244527848424744064253068985374411384304947718220836538857912784259035421491178378017102715011511121995108061239351053426845374195087210050062492085200482879533895009953517639247978959283520932273065297723158214323486137350376992549908719783146175444251685733312900804058729633567713841758391562162969092018117546846048056532132802514254187685461891917089812100962698287803078466449180130734086269572087866896738129043779028577704144377726961798763206044637006341744879165027696688030295351458059669294791139433302434707563534848406120808893858507294533626148648395240986926152091798834587863404203001787442651969809803607023879911708377312353926905993817672834678065270482977304404666220915870501939856125780656255640135973309271105249195915354674421938387919038651419744697600822044385194180048655858566762420061874775226326071272972696030198713029911348778259890070742633808772007382813856344571683830434530761609642869495547134785315187965696089346435580343305892385590702421004353719643811738830040647769697735527148091918230000448256749382823900938133031189864847565135710435854415421128190053921722776840857558990517554084450820561837642212464841332224932064059644461541384242177686375701926047711383317066488287070838322979069585646577608138096050634281103835137742583449369011721861823202205087997796003257158465393141026269586713139001641880235165225317364350824236314965747184518572004698731131714281994509638680147670337395609921201512310274169988397511896302138322724480820337827162042928839642006185992222044171470945785857333484851498964655899459635169476757793130246539384906607824972451434077785343659981782591161238621092092155487538231110294363202231941992780806239796376952054098204567719080834268366874846166496937773287102849709119131611602168386824622951891731605402761156788723129952735831882111718612928929880783312656008777573966439662221324983025562481799350992448333489937576481045603178556091577159954186700445384912813389404402892592037603556655480623134799161429042727160603746019602821490160764643189149635145985867470035870768575487015312456339462215287431316396002296611467819739124836580062273791712832145312388889734996319392933805648294457069583045941863623528374650884667377111251618386962224576495129659216786500762603656776493833432918375402295238715576642173402627933969788649836634171540190454174820348821713324164782815586335422935701931131624215677510873010069945232681792705050976803600456269213929673221575183946157261567362056290156009379869400319535412623433229061146741456786010145914369178837497850347621455844649643563417467005596031812325053529646807817694067309348401329337138256548916598592596090371596621663896672319535184073157712588711502922331910395443225670978834486051321398089132360810318510464301476856239441504630274765644080007871746750368253881230327150829108193822083177377161614984163503578928534749843625015144760520502761321721929595820168314504167548467287912875285850988339410791823928596051860402235790270919409871882225802708650563734558366134710013228499264291124481541434729255492787929838720784820313881003572194478417026572314600541262439687106973607214284278994464821013997009446250597844877914541002120638330672224621338930173371645011735325129176578122365132543396016164019713349290396449790060190435121986688504446305980356908661345111227681775549879169995289032186832961162486821908221457690232030550960115714221714577236489478644775546998026742206315187746082632144076347653188422085864640819273926614638120700600221363156573566656497430731801343367573660368443422624913561812354388114240289261265002855266526617154581370344629278199680220569139300093101665810236297462255044713994978300765627738158392723240795881404225905509549952358379125967591773945016165375007498021502441675147656541587796033313323604901124680211172517884166695184906931741206500395798590678056774568257148477814856601179343159343627176612660586766377140577681505928596344516442432157743888678658768339791013643148654574302474570118996456826803704815715148107894596455905287255374776242236744104441027586538815329908081748544036618363772757806884660547293522959264080534334496433270575028465900020281933716465349273606844360849817391918573718983830373820758959335021576824686952177775873898868081324646762547248226586427946436199335904613581228401187219940279746559051346252386559754025437411347226432637207532330299810139032954730910734955439728089444097826366427262237834327502157092924425435268517322961709818754666494826323383318852539881667365093099141967379878212704525510645624395650844250317472134276184886726914515427024361719688544372265050797279710674403969037678406116836107701231066432291380958880040026365063340894428682354753586503989784934422703893839138172633261276367520837794611368797900612503108594135033765388846319364436656147460460748305022539923177103748843354327304281448613437320765664085449532825728179662672124887492349167092610216763023550531793791690013661329246948442845761616180238055290018967562018583270852784550220640453720633158765009958642666207390507108808098757743214181968323736213560022192708532258957661584459504303588976818089732411673951150181289085958035457283184200873029032123338437231877326079075307484566331018412348832866436667528534499966623866525720568898123432139628964935287707528528188105621596990103117936842063944593045284283646704502442226140557118881115730579847712614026019600697658124538807608796945950859197132012014632676571142247086037193986963045644590644955225216401284755170184402250830564030253755682733235826296091796009837247249682394905973623800036626605887516656711824009307780649432297282709577604663598784707074748058740593931929130894574506684860922260877025859986655953400186570102542323910379660935190838697640792830709106297220447655856135672640407922559776544709133264853865070564603136309265489645174028641365787943322925507558344982820079080241677347068798606881434219063062817371181244237840775457214122494223453834773606721918685223734191302619569065737202858917292451596995277290892159375498405729869225118294529089498516513777138230883105934484377136676700292013158449289918529478826191201692962045886250409649475911789670902119860316225631134245030853409286703145662712568980962982046757466826413085391820100449121877835290807625659801417525473048798208514257773119826793437658621945525723492913605321088760532902687195764845686863954914387197523569986557004039935261427181819965118111642341859301509832547645807857501878952949371471472450306736622286516452784562040205748213824223496371319994253273934869398991402186869386644540515680251560416064619243942047840396139353476197022083000573769531612410041585137979765657702306192802484387139924464508565086872282735619260688119097562854560401767346049060279780272295629329953602985058283346167341667773792721623794877326588174053874377108845772003697099319359980555551584312064638217878962118047729400482804926033418161571783619652568730694429715731755627847392036406080223256652026088740271211702389489126420295603723275607946392970987607374811346625449178385535420480990651752740770472333863992164539685663026351778953226105532584624431014956100567465730052578912371901985394895030366527818425086089846745847189886235605433702385772991502609730362348377593932829413029708897674428072568989813519043728050432821016464795924523355027305692754407295720290539972842883478238362882328116678353281896422154303988026204904693561180919539558261103748652458462949758496396102918479445959689929438725841708420121123783176370095421974492199262664956316160346569618786855320493757003538580242624088886964408623303709382239398884330610421030000681344651845267186507551280102736852951357141539605026726192222547783456485573880488049541365741988108023087511313450928051976430171754670878016721437668953210671400843085062217498951993549352349300630445570821689289360705403427814456083615082561252563999458572730462388986960686260338055976722813223165600922743959788317513795468397297509261288564865340033612938853995061470689039606026204620244032129798189890054189920487094914944466562742012778446852520261043858965998536353701389546518874966243914887934454265947617075582921517637555780437579814752411924393673841887950432014292911453813079713628040889609243210194840851955783371992977008619269024278258120389433644126923387065333558610179169486677039172174357464404455855578780938117237571481699452631501360842688733341504662185812231968337240234921026271466161210275501348988735686312054913162500930598265378409869799633071851483746398304781176300467730450232496430249861128587822842051683877920295933936180506250418065093302449401423904749808646968316815555106025992878069914894869177188055643788971091026036827852024975431045959121522220354311978935687119779261678633658876623039703270181468032191491412945438630901227672397396634739291024713439158422432960406372699439598180555517795571827011820070283201085432196837396311680666241403546697332430602262091871639920056970080438563667166794218086872896581308189451327153747886531723619506346489570029440117089356769379504410516648867720208904237857323395911003947228372906261520140067292763191628641062435590557264101439250940467282266525811044653502762030114026570803172040044922247417671784836946082573371868004495675919135985312396419740640935148825335629992783086406867262159335474617926141932389491279800888474012818041234041304393336986935569767616859270824192986943535569031204338385517412463535089311931689978105266709909047471563568441210578263897050681675860547178052320686756093730081663336791426409933684123073795970639692554549758220416931576958022821107559856093668881646858887367792656278096369602540443987200328180069249075562030312249913424400041356973584631467169341495764310547784512632068298151988519036460584925150360741692719962347443526879834310906465462831056216803245281525088257098132048596041036867973362007018918768656622617274364622206810168985420022562083936863296074018087256043909468077741707663266531517363223452285203119819156788394894384886312513728083183930659426818214870578161780585534850123679277554179097934277339278720113307296946095586741468468141296626625006307227624539721608146559988549649989244640551614957175566584326080967514674107444292009187778710278677432725235677276042069564168912333536735013382611959799810358168801075656906290324496675252730763885499628283468312472911294347866998122278764803302731920254920221827492724151757768400553670920857028494728548891559384130569673977144493593413494206934270118128160884875486618474585509976528528927343235188283703800753512206058389731831193154429239103137473667973908192883830205423724524104667478720899426425376996077952288746557466994992018364166196174760632757074227408726176815365598798455746358546550646286853056397637624926428430377316090909293747862979600845687724729637691466643338142804877602337059699133459518138884458868842103227617612350602509244878014281745078466932940098353757173092737848524313576444482945079293544107981298496463896415348210781697261303216570716234701452877925784086959608758681262122838261061059767481079342636889105142333760190332927801575234021389802891441628481196285054756873255413604431873712908878726086160447714797224160616382107816022839921740847578757193575893513987463284657683575370062926891355591769771106311877515756959058903885570182521359150327954178502600669051679647639680074120227401701282968247969209409895923457226215561395761615159052998143461798574877154338870977115633341152202688046861117390476293494401298714824235673240506541335140653348064738647375172893290563960435292234779750426866020642195019449296567941735121903317695088459252271651493772326858467847749369242246677040220192716195025950085687544321121675233203377541583014098652343993894526183707299181848717411726510708415280210869938908916683376875552209687555591992449920688866531750372883457891449821620717196370758549844127829141017442135235377655563859734115859700462603968084483697992257305425017789460988066117561070477857552438103282044395252507737852105110043224443873985945111962960143018533861884892773618691042920659699108312495153512372037080705098540115752177563855146795444953753623790884311536213344032254820529523534820869111533311409147780090377760620241650090460680081052961775365932866980010998276680193482334434278796848754567552310383413846990573812030979551836744998712910067850386612186266731795751492976127001182176384070274565389093479293464840925035903229916354625702595014856302999986304448726801029960404380324642163866495301524343183182530083248273522741249783555899156764448355937496000887399856871323536552028682972007665094016619448059341062923245281485466782072574728333096594541989143674456415733401115733638050369330790217298589407782815218088708966002077811929185564349635413457155425281632979725722925456823673422492599717770705433270849481823079802316034528651949878925508379299518143749699619761104936672909640152874581153365420528413065120871206716010425728549820770289289108326042001984344306502349414078951091856590942147175729859845051672290947500894336717416531000607546703085833298487360175540469649186534163560560675925065950587787004226221014228129255619472288681733198210359303450361536722587767788282918958358775801371758565209926839146292691208460072864773049545442893519831191042200373703484827296478072312851961978051278899158119616077333888215408510048993704547613935533968181154777583801836350365289859227068808877685654887413088884848073821238223844334636093978843800619803435671181016970045747007984078179604748318848203096020078719089957355578066415334158669575134015660105325718275665023317702966776444459537070632635952329947662576284907114700132410511311134639879193927458009220124459673767358907047606477141975493023052792285245971086376594570711468471512671067632379240036194680631610134359000853272160516742992708348940523383272883471407228896763540658747082913851471658112984868608073038408507351458510054090521499210682233310775112528437779609135895343941206684292839331941952274333166004601401889158531288155422125765243876073363600185827460625400964558798529539165017442259207581058007983494295327604375990273015717924639133587078845600134895911115046283567757580359054778095994961084848323440962971413759918493554140271172572007559444712338183048051850544982568606257052411921766880094424715555151871679403750161429740439852541644577775909880254340582764608388943026589064921604405122894844116091644241852191175746257732681358866873724508818427475160080903418437620244584687539241620470331236132239446693923927619219021094363109103772284889821226998577106388822273734232179125395966336882688933881116178291244114634689596180435964473996959894757884114198824460987488704151607819103170556736434616769240020243063064495635640278287709071651634341055648148530001449994029501235485377528983890325267544842718680102547822124268838480676540521878213886186967816906652309317771699488670959527352458334053190134044728548859677014349037597497158396912799770384639755395409527899902233866557083267588214552678477276292998134434955771307653092852621151914273634079040585900969586169136131072956431654380485445448366002307625544179774771695986608101710382223429121863179725625943780874783668776174531306577662103392392975163248028673433799656059719588344343305635409670298574203685948926619071062922907398901562363643080726680200460967163068552657738974776864769376384222326491296908788580515928573593748013200286673634737349894458440934839740669186983526925103155603650417257316170678076743028274376367851746536777170797618007288985308679387102385327564106098368512358521816656925552205132020432413738415260606957984601910148134082411047603789198121364383991502657470309134003623959911817527580393154680693007269378123172825734559374289139874545730295488700396048088780895209013418863930828696779283196090686236317648241156231381283963589411336294472967624250436315329453426412446207570404678508162890007574365294125485548240930180020192510570125046379357148374418645225688649276602336540727498925412808204824375919744673796833078187927285746691799379693789248782707516598061866982351025184862327707597839956792041646330884852101985328264851453743011457109893964091478834864832431783728627857811572190075601671646198566142600750483134358797076459033478251865968200694551602757393150637395531337418798374173871234915274448926135662815574116272268952599608930047727334057288161215871753937995710790175373786551031807297304840487075778705638087646186379466943479236573787862417387786540090415287371553571325872432119362678095898220213117305192125248573210499501314729907485225643236743766328653453293057262552756200315535285556718657452916102201031796379931119272152234763897935438394826382380347759983566075574826841551076241810401519427626151815841374606062286580816921700473213086352933518234696464347827594663801367886657715478747831005834091064150993058267309309216669364842439316387186157169773366113554998242776870422487196122013465395438091821056855647945133842225322849632299368974424528055911150303459476468961479495335856554492495531798233163477179161069996119740954464441715296787780059259731738847035981727617595994975147379865084329807952544576017276987524502628960585003784269651311857531440933160191049648444550181480441183548413756392973237932526280722739370285338086645409799394843041638963045732322952393268011982609567460223636227154012738490962870047487457274943929473093132990446867101753338443597326629626817880222440406135595868644855016341279102653304782344038476300233377283448032688354362331086985836535847304649351964123767619884922184399394853345672705486646532471021856845797267864224209535220976100331406573669796436947825854336084010989440196201299037638721435133483695922130726926884196599199509559351901121272316944355813331560712339800413193856273361222660561853315520119677401398426982363834416483568790475269945948460053644330439975924264218642384054108932760068594430339815856114789602896171869101871646338130768417670332245608042675407337682183609283097415704475754800656559377732026368325846066129533672916171785492804789690088584834919918091037112585743855837536072595929325873746484637469166943408836621744470899815604297928918031206309023608768836749874623898824863571638543772161060653004125485606543214992023206311574451395599057466099331298652214155483529871950310992975557416299367124156496933781012515524136408642681989983961230222381870870673950679876681836230541652224634662488474926614971824302927484618822784879911228730115982594627053607567267286425645341900041443883987076992909715172783026086790103507381045921305259319187619849362685104440058821542143035802061451825403534154028629469657304956185434090602030059891890188342284833022581521393170864652527724946658180371295484640047727916790580465927981193097694456487770457647449236560753444561466106036885306240201023474941138314049221898965424125618937117251569300871946247145731599899951906952417620130779502534397642027231879290965013630498470491648812663025168618309939694785497689555329756690971383674302589826425444704421075336396708119257820623744107796600682505904642515028418825559126342814010617704954430242154142820621481191115593271174703672523378131017361037241788237944253755513673246377065593454032116993799529864169250508529157581919515104689383748441994678084877192773082300341018255306503539734053214211349112394735341601127336688098175114305615819193322509938803536625546012790913748830413314893506733158423232891774878977935754122756521993420755588217021055565159732532428086909704989676799308019606111787630172553578241174618317091821979931225483668588902313705846379657422523948136929919817237682884743076140030094625604784419105879594469194321395998776277422551603505365939200940928749289940309717529497784482291453798263519990890831251820382565410882064623275522187626079763589663995595293802311226732589396148314378358313436308560402452174299765361199056078338708950374947343356809906987141144330771326402252529096285267440185792735382524889671408211281001613719957938597237786230827483826593306783637433066360695436527093394842507119380455337000970316815222137245231199368371139977707040136281046224645762879231924931128495250960637523406766179251287765456762287357416527277495571580739196764474887554624215609844603768983848751265261820308827751214605636520999732296007341826847858084801516595431144551345231693007027006115694147004567243219526510344191207456931274090366049419986956626035092569579039400776662118537969108559194143477565322811784365737790077751262113228174917892949360679507287893210952748787559259637067915350294170298884199318815199332767305905494353230289497538644727144035383675001343776902505479251355042185375533730853261564887673677872358129780589825264631423027019930096878971835920263841922050981442053853443931830448876988626988934579468561175592498135356432414108853132482559600622624241721584807130345471031534783154697766275857388865669432437784163425551707022696387136978517032348535336111956200926190951704914277182209036418084724237335546479747302111793345112381660124184806557599201930839423595087654394556707996447247864570300544793432910555431046943655120332181597891807867701171314572019054861588349899277054837753670968070430777609624671015132282647432575895094576488898930357173667568872475158095877676948811104908777799695551722626908225768992426325779497217872850085520886063764306886914035205502225401052802184326006953566356188337815239224702140095356257072821254237490931711612654292663305828750687772651929182883790408113217968748372765554467671724803969785542641662375277931843789225190704514492402474609004484548999150638340342355148483535010527207172971266874461809371052607504217625857829687978248032793129517446026268939567242205966527575789190287776862697732331679317837414263510659963745249865628553109035678991921776724490417450986939030828191499616595712926361320892399663077639548700887949443165165018474116386114873093466245970978692354893905837921649675201103522845640627688551280131053004716841378351523172166993341195892415391686602292390609510863697216924618796335806555591681216253197190256029143543895461771721401339280162345904221763401632141613809544864618754738005083098767613512404542641135312507880609465039734796920902318866396907437577563212316838118288614864694304617696878142453652511214773932385315143293537617026794083277426026097313476116546589723459256949973290905382659803512544599578412168648897359345701974373273583634126804534065682832215185205475854269473867678201880654423407739168550891989965588496045804926715523576346230391631869926340874107412929654942519197229184071195496384249936340214188491573181734008034935123467788813214925645323180509525487927000320862663044585039793986669079674227830165691313996223434363869118766000696093971161205712045804893536765926530060188141158136747443837833646682543223637340398756010635024018384898544040738484090132929601633120161568171184140258674712915745477647142657502562376807946232650382305307672442143585134782349283468978356109698549620707919135331339697928045809465321227767262545801766068061804351193256144767228214968669348967671613188620171773130977247586367982224412293262288980242022230228321221787630122319751283766935794339903741573218679946433140320775510238522352820493227927428202847295588454147392512394295722907673321341594335499592179304489063367289794791513660539171889159211757089845320388201016108991200221692821327105623116033579386623431888382010498364992748836815041652706831758699008005128308560496816645505771039099145875201283467453581132472007059190576896654502555833299915183996454884068410965829816400387320343499053997981368929930555258453003142649213382731895386370003825594615203257582477280010808883863522531156529194316938919906201934155282541687508159412943035501749100763093725113047446023908632934520785298989591391072247808500296042444346127697694031472592874189604088345780201750560009852953411116541346176152015272092914308547013594356723849957922583191616223940991034838021431790497870748069051474075933199952549609687893116736629733919452616991659688095649343441561407665636292700826001723036336249751147745321726331820236750118167906310480244482191663167621137600966106430326849613239669452399966667035740872443671246017007615395964307211198950728163705014018650802670073483127399614401307665108513667062342562908011413874367541307902021337562100261439002278978939179359368705390652050398679242312189497001115563927430302958259116255676608383464858852651457462375819568192100373283224879672410218567959636238896722779148217670387922838352555857253765750962792862137953187111645426375259702770938219297761984052167447221380577794934391796218853837955258834644428838117645153707078559482761031084525247734865016759438017938700900889177418045296657179496992576126663994349183845834258934424158814404055662039998740981234816990365135024334671832900113540841238711345912882516379637318958245874426937481505229311048816557889536956503672939499576004378480557916011050427940534360864638667880496173313091788580981431182282048890916351651744754492866361021468878966434741394434027621918345627578718359830396405188513672140474411978714384633993579152390107491214508949215908343154803320943595409316123657661872111542709269203621389463552031567704234310427076137566496692414830231959669994950530924450144266733105129228467366625828991144687401398714488804259787283633861368776915669112726488195235063715116359419461585387271203526136256288038294617321798749254685051863902667934705922139528558533484894449828193746550021447152954685946733052338959667930305524834301950264954727826399118195447278137300329796206180455651684753676341536519026040390007012832942877478548102636985480680712304943463867756784974284996598410017518497819405464476216952868712308741659425870825526076735231706268260089131086959186529113946894493133361142786523082678241942968805369039346936809243987277259198768362752197738009505110501670796717942628943354628738840430795935831451360408815877557658306302943014854975614431245377222447297260342929143209717940764041525332428819533780709381582882392246301929707971103896297985859939956931050952792341232223960590230839426374747079877678030813403802822525700552414810974172258705295925517019266959103084454131490184938405331970171383115219622580074482360153067746680844075497022121734718649806140286689662580608400214122211239319742108576278082564014466432300213978072080563488998962231563875108680033862557793567683764346395853017056762554427332194266321075404805774307938992811095706972167754436728703002719728679875992667908463896187555437910818970509775365719184840582036584414564211516131420364413678859213782761837755199848357021854325308963460196381823310559703713672415139566982912700776379431069490030787796598168363693589801055757448676513140459018797615743669700015645922360697028357400911881841106409050355130504442609279055677423252082979299842994061539229481910433003102060771256961390939434090539406808803254052405116733884258019053551876346715904442542062750146512171096598361166336151718808171461550349572671899261033914129464552545975534312634619766041002545564719613976565920035139048341374043290146249876697366984393492089929633436255257531271955181324248712430264470142267303768273935028938669854393441577457843779679937948051641899912098167820686115019916895158959710875929295852329827996700643801902466992858739907570968257244338192248898666856395436943322831371593614806909745460201562067656893416418564479913571667742504981916045607426672879581392658952533008006876569653194966124949053359164398389405668783225594088699512940248226789642302313931474000144652272313907117576369622890725694502204919766343970896806559843373432504073345010619754655225743880567836243171521575071199689174149921270470318657080628260293283237798101926496675385317465430538346129314126748097484697189536000419181447136332254325723943188487233672797172585117023455740108307640073006033887604627248087392791258873297969053236776604871914824033559577089785593866560894608690569596157907704750148434438110524800184855414543968764651579538368434043759388138031317478029742628700067193290002474605176607014338051505384568497533959071665652981420109688317301872141408670994342689232799238040647960146120952165364909346181026390279086715143988817807999724061304787547770356577374796084750850506861890328167567714214459939377497804463024307029461946096220699994414697541220397915601456496242887296606975148318600185664816428017849773442280330522411417346018362563098689140499469541650552823748780576221125042209483291304728889058780625025790828186452316069711796063189080982814496733785300008738231649801921337443029551333707308431581568866654100004840163728599893433356864890644742855073937914102167378995864069394584788771622078654963705903566000132817602663644341475698776375189871719154064009911856776371872479305181977207000021285693013532953618300121007095125294593893805118358857142871271466419340313116576968989674370206115736347886019906230041227321065698295334283782246146637428582861941892560361686090246378796048498602143679884569536283427357818965498567381142148321770823271108868977488050644673980177485714367830601712671337579140068082099288681838752924043915253897931505264529408528470052497108930996250556437727812175934879168273773411773606652685455513923972816421605840096837443581759087112432304768748328830937015208789989050090927701212242958076771923991982473810710562793526534643232886368337292555338392422831974445593386379418264255196968778045610670974190406971555020752702869851263704749668358818012163148840574644910604350684641051299901783822587190615535158777710520873094027676037189125500395978283519043878525544636542293304172575776873619381005475517971577343815194396275633666620581237469064939607426347864395864428181964471629787182017470730331981587063377809139847644250387272516799171954238680270794360561370046841122307416384468283086454578457178471857572727935573140343028004073203161896449848357717024596180286141859042801410352188884907839718314633311161663946471716489610192734302133530281514180053650895585329656048116622400176686703610966127175271018444616891197122742716662564548614508770986133390375959497459208074770206478142122234659657034333102776351147377622660481482257013165881013907453192764729402035863278903497410458571229338886954456444281855612827722227376336440016976156885703290824028936815365271424824481293125545970229986862684897247811880165178846339488732737488068448565538933564664475255271178853405543079725218593492110254230826804218676087530209207281984468940182475934009340991737082011567298174867321492404098245860924659774210925559563437548500498628951952984127319742164981807426203431446350820259607295261403952939133564203520734390005682363448354868952424873074638349724881217311801578822467110939309420697875540562188015182583038735767843432264431881011095892715992357190922761261878226679894967720486261728734825814399419415972828599605661315500719277371202915238653926892655305824583489157284442365221364084513054846304100829587686940169538111887125728135892049434367097289567393485996787990674191735518456747240721348285628033541876347178606204840975522872671014099092569819115532875192007359258755558925478517372808652820149510764695327003789680803790002368704317102814262468013578827090033286240032235084957211941638548393972224164109318367129463497351432182166325391082312470347418368491076123469589045330755682768117941393994642824516516909763997052521048615348401816884372207282460513069988712254028522145668225392806972892175200818503281061751873012400415305018666935080738302403292100131993458830641548804536545469774727016602165434061133614532422476567997364013884456799375898878500796120761901697528476431795299883450252641963778252519417307284633683366111728316013501037468622639998683262886163474928107142266538368131052721973592084375044680455171429696514121537797913564497959320477226609915153978469370546322658273563980989553112423265141743550982609091808408672271320668503531860359346184337632724224661469496285812245662848185410008654463165033306860256486946922121366626750946929830162405386516255759189630530136471589387069687115174566084984266577456885227100207678368484924174648664794792193165435697126975564549757645520755641793301200952785626381304038142954556778016346785175627370788908881457967754203640923126251483899817766772847790515772142878789003361813467443931922084433909639379860255687308539423529396597968758670763259406276645803740357582602376443550127124875817981010144555332177057196413971324631437593748778849914568335876618659953742500248420686822294685460524910678418001656772964230012257134668664279826614536876010183593035835584549508908520729061366177009597836103848530539241848157279372460406348988662817285466913931238763249276666365929326625204978233880212353884237611132623057674821922115887731525185236093814332289837261505098043759412777578565652647757537752525404262422627305991021476937545378768833269321246088838829465194882731880754372534708466067947598345535480043341698003963721737902369073724771854619749902458583884526066545954739349299767307738799745812263584834368577431266274058719154793974968857406172949907887801531281061581165349139587860877491449912808678035212381474755146014268013999329586067528734501340248856670273967520998883857707430363353863383551162990096668423266640346791377675429573847054526398189942304962635728239969931847674416652459986369446322508273856134085358455902421532665090547880308620027391847355836083129230474897280011620053025129279782088361323990365070523024518403600979991894765386329564493461168313938259984617176995296145459080900465219867898473489054234245350651406736375632134429714120187164898525730059601583588163923274113324238633329385297077921333168171529585260981152531645685451297474956361097821184205649250065708233602429010387250615256005822900467890869956040584912039124902157563655386559325118011255532741038630953763406232108183406358949219265449377680797297056546397803714487055147548795965956749050569786294484066957060944094753102793435890327127189086421820300012897918650080289211167679878058304111357459642350819988816139368213719225717523255219211710806904064121469753638325445359826365911520947854821160859335508870670899332140115752762759444242947318354646909131879486489767456928055349797928139250882019505895097382651460892540449767960755704655130992699143527797989185049252507378492920588554749066508285679598841043209460856994001796335119786047285518636090278170316495845871792721255885108926084453017093479713099407733900431806220319390161049367037452745383242703614471555638286912679980186765350350861050564205242963607188899235955281144014679836959298730503774870461262644069897627151544041032911806887287855318525379744654409149132162471388415238248400811208514096369918733448560019105207594471931691114754334287623599072171222232881349941953244957468809755448519601025907338373246504576264690010966539197505219663126463593519809982054489450556589198843135770639463441847149434165212404028530707956390904726988427270483972310693039441281210052543057967233396437887589619422793313509172957030287876860599366753368344865962407175527186529664297908024062678565281196678037521427761860356271983904074349988121100467992116767343543587856613730067490189866629073340289394197182201417925825260156236824427707383236000672371851943206789547941873027262454012738397035270428377757404361456912176778012651780318868843474382048051205567829039797573942862001217327072682499820971813770148209342882974055110056897537256528949999809605126743045874092375972527114337530302574271831923751580285237691899314125616325928327568911916220189132383672976767290735606433608915434107077761258995222720604133203442290998507016490785582959384014229902023374924590431097623266182746073207985350264484329741032333381756001317630039637479627949446628987885066797575609607611718566333356834233235453325038241929653132779516826604852968534569696980477685918833833143042057176627668632278617149301419970670919456805484449228377121368817749512754925420265567801983795489301400996564289670079678062948435849170088809747130336506121262659060795126211653568372486406931976327173028315216585798705013127343166652747607720282111637880147329816195782026164635320302452025520448277854182301696841987383984479267544996274457458158823000704174885010756354909086260497549035720864771366240369930866738169017736672021168988553699927312013449714239327287056274434319693728497366999200138402313502781945008966050821765590194538170638360720857314319499878281151591840941182952156302572662360941721246884820311462646638968518857184412019855620272833895981772704269368335548114108186540490314476947727489686858613022732832824104336563951345694304961453957529158679043608025644523214369580396377994033688369689271083417761454577212512521101253091521896882613809597066583567783408203058100159478623195216173532923355170692950817465442090702707042618822290770075391328369195063453668988592039628076823015336548775921523551221891758168935713037282704121280251644738078407168755203164755128229032327355861705646409512416838480031494454508407429658126719637560739258133237639538871732641233172202589799091340463179651531561231965865042490575915943455685799241526082952616287413213234109657802737591442318571644636995151679392230661505142176185052081565110310165500404408959676207032953120432332498873874810946337481647960975249088556213610764870862165010648159464799208637064814802310644462720873913146101140774420701650633690145138397859248882975565358269807981984374710907490327463295216005306456707447287519861427087146980364309021288522905143610587591159809705595334438063867036115022060193913626556701995755698095507513769149400431294681061176840703174809541847408556650339491151752110110728496784682787478761302186126772876143638356688080194338620091282108798133630647008208481103048436499617166410159909269113443723096920425523623767066547992173618526010192197320163885191192173544471612680859473690530975020981819823111185507145506829159437970930779227120844200266147437549694381861527219226817136269949889680091029054978598569176914046203487338854749236433030276118897607446240552286470192942591094718613770411609183460002883035004199161911035264521365054296141168190159278831560269911690206684807496052488224254673568196957421205867146426402200935902070260512130819865922592476312196198474089427717374725341660440188508232331483402975488854564010597786266374613337401296667875245903495951673390798579499092514370125890822976272806285723662589229739704867931683165992202884105380329537736768906307466325640695749567277178220460007603869007560754724096587312965488525848208813171057489710406357075563979350730373408795121293402892225548390062712053055653627358249705995254939946012387112283205062654417005847750207988186891087409213355178263232846237809246401080899583871942153856644192763662341642557726501921334063934116056795509283973808651905187585897402371835407367061134471338476512760784980925845573691692519696815403284480629503790351876974861917747182930700885277572669889118450676219651048671760020020067984131991439358330818088520868869296598690832807161201291727487063575140216778787991824549885891397505373801139585596152702517595774383258169966086787947070536819161471922047310923660312661579387996667990648750606079211131628378386288499103204039315259603451231406464759671023144183390607025262954601062513686835888304555927178521926229615479850662074779417457605366826837050095215387670045203783548693312067045814591629861060882681745168572824618278372117659870539078646414076210730475686752494880404408216971915977836143116904710828203790008408968814845614526058335112716067928322860439094660806806871024248063970392794649190638855997863756721983463333510763205655259383663331703974140873465305589454828408020406277623719907617490514162284439624954916256611031515973864117917437732474020322922958484602715600457912758719279312576898644211035627735386795494679700564639878689197198860291667446447817790847409585525259214028854169180220304946429423609076881288648004949528688308692189060125513409410020193461932704035289725286944180972855922391110811804022127540081920224574647097324560491517219306216125419192085633367349793940847117490879092895003052050239417239972629839656817692496029246747799418156265720233815009349760283657863871549167255171276656966026399202281586433771957680250440898287932556076685483489064672221161580720044964107022212842312898234783212678754120177779683316488079202819124931402130174456371021819357782851490975915233408310675180739495772984924453915675252202543158866614598395679595032978415307243132048547688396105912453815715578822417020633391495912556639957110004016311377490644874434710605808191360786104979938208486144298551528531907329425275543337088616518147187871135752980170298120138826248664545583959785433479629406338442786251326920089132584309076718646756284716416683703027477216963989157287194164192353925491669795526253906287954603612568884341284898711693912363069242215174065121328563775481015042068080657636234712094727574488507581674926019198467388824770862794949337582771703960621927131935540763281958245021863903418686398440498935018837020175882187837049502513577478744485126379875114531268453429071671531311425039555855163689785034926083811607143209645382864364480083621235034275007435349600852862576786007330142015968329548674346049344132209553791449746159822842209134403532183126315533229110331292638181400138452231284005936934493604372543576894357086957172099486860352706433685556548601962646558463326324036479249763944193840037529271609901671013484650149995654762291117237643986311198983881584442392110805487176364595283224492471081721483888159475547153549690623344731040931175512721309875498604205310747276776176902688949366931159408674129276115572880020216198675647069647126223791957853459999277676348714421712663410802667131008541530427437022872207189908147074566729606502515613173792950429024122814628745225557394074943566389515911183601890428925508860562543902531989322793769904188058178046361066709749670623235112679859789762971391192564100644260734876178589989913185140898292548561322601481440711226622852961147760069722934038896555432878403034614383389039277573904886376312725181029404676565319661083652800470976453119816615559175837726809967142358144030598868916225774329021673452633964461682817468329459309852868453534965442629398761594582391723079709946827649947538084412502101603450789634517582006349114612206012752005476699133990222246988962159183561144957363683631980040128142174834317366663910255018883885106121938112735510261857497932959852378650643566107812323764765376836629335456856481563260779554216806194807845957753844121733493788288492960192354032577629235940396109854829196786889481658307120908954735619722526330310911147030179561309430485749854829023651599412603826106294755917759260908995468864747179237685353553378177279640464474366064092267308307779991723610221191177660011547297972770474078910821174209498633507107556336864051535751346236327819102183125715518391968829417608322656371267330394060749428426697223181284245961783491061094693684676806877275820546583959285777775284714423332817243336199828658321349188575341973726594464443593957485118831547109530963807008357406383279869438754725033830236557857099149824914439676372228455934899825934417642240369246141368859445035640067659395851099041706608798835905919664428979193027852726326944690856451576886004263290260334843050938564365162159950062876233237655246528243032847250554897703457202053152469758757609718863333883092274986348305056186930209006346858483377606517468107256540665119303105530839926821325342563368963204132121374633940469105712769851658314862739884156046911182292907743022820082545339626988636491608935426536943247426611405557276598520561121055613396390350063724317555197012472650283739020887561425100526539128923498098393888917698964264298466058568838609430209850496373424857955750326014337958619928312399060667988784087244575410767650318111501437724931528524867301631317877034151251262545557835962454544267143944650260631224244244741652283465467687346948461173164075861067400027647874474602199628548051243557545470955801303364405914635850407434775982786268857551443695657516642398781286466032201000251117792224496440561019045388544337682688128945905934415296757698103565641275812202842968158157671458324850142130789414150137490739568204783095830371399146697874238639009430018583423376265910662183433763338737035057282240023562286998078351941042168931999998843906385889282749602101991875955968551112208111348139963111089012451059147583951813750751246244780723659109696076876039142241851024057242769480551983046345288149433880611661187649542858575093022207787911402994021481235286980848255222736248064552355514857894374970638101596349115514115143226370428939146845873060073594572747809776221249266498468313805029118892956841319148684617794093037356805180416913417851088114927960986226883272605165579911525154035469675974587141232311509310676591015354588675873933888497731355625928192859303994617834323729322894275441706341541872611546479029037711970702399099366434350944690086645080305488186035808793839846134125333860401985768744012061304537834030098990627234327583984684454333405247165224176569688481738069170110298674760288335886366275759482427356048995659497310942345430317203666262929096246295178809575916728766343177165452037601946956662259236060188365210402564354053625753697654450025319154151549920316375026635906911676939076231319008333721230132713788408845794660195194669774463083642302119245562720702659387877973534530736098254928915324581894237441009659367350947787405049612137157485565184246061695171740471438401857438560982612428523107981128596152032294176905302641363626687087062314563112819735321333894426523723259400349148589384083297587682448415929223600841520328836603763817105212697477362339902083038812519862535354765834374963054381707122693732359659870898925819085037972544494577152486374933149691831288872253239504560813770230114241988061683676568347309011898809734181072432110403062956866959131432585970831998002027416862070631223831491219354268997059975626362226401472126196820356572313823135883485933197128578879892291727825835197877407621797049272530222454398094498490874538466468068839143139533732282121924816272094386267308684362751648207106032802462779463922680782597435711484655068002447460056640597873397077835540163224980396437414959782696346994155095464611349378461302912222493936286041138004032933725236870224547784551595664116961537280665191645434265010557280008935493272558142070859382209288450573491975697260109316400795004867110422950097471033917089159114258816044239185329620030746420831165167210525316471364719858747270595929260343467886334149347487552700388321072268561104731220704209474650431443091594388832677318410236112628059306208831394699207721852869770732500081438456365283417847764452667665814111286019739429235319594254996274433111710916304745489176752218047649398865357873257458700414692895885943874703269420943483104946621950993876125249816284262513054628029275799008233282833871411133962558931768678704452874090100408755533882943906531655490982692375763795284636038639358420035318231298630148924662314903198360149797149935426540496488981324455646621037832708613106743745743027430488725248161373273532804729489673793008347860187955545653080451414833372721108076183393874165963226003479319476316555095016583088059329453234580034133387327202795968937131129917512378629440715934305959790280687106282896292197780658205517879233957824359724738846206819159320395205834222982175932075832754343497486709402736928820409418411767964365398874526060627073705357587980250769697296754135322648622769090498504792386133117829576560592317670187919717066890302533125800870311728327356425658338679186512053474030589238907939363125902052327304824167110054885208865350017371315060705992661405717084845901413731117044335452648907761705258931255071418025490029897653571890151297172389235681404608523680658789948205456614587173158650883709645849729131049955139801666533885818618029603108560760445473071997232200535298012412512462130556180528529455497938513265238857770004879459301565658334320268298794455128304342451286848845552588275047983859297305100142800692878978361628334742478956281664232592077361978998774634887234996176427688713855378923472176167604449930334377012079294162197715768561268580003292592919040728966901893344950962854500156970304166723132469221727156364233477821771368312539815970082708325999095512075578990696329407958683801149799539166588990042657599306919000315785136837507723855418279536263858389388771735618631790796452922161656517169852234035066662610667295060432334160917174392178977524958345014836978639504677757531299223051432666896789629678936460683017876119711635019952941788957761604834857049040832349158454619718042507938958108534266594640746838573171001256015012817485445475921241691223429294054900813451359989624255370985054776740217694416835371970640352274979757466430615873022812630091260838731731896758302066496880262446224965438988243947058209212280861468918462233777002546075640383409952037928428615499027653286540992717125449764955411622462827833421509688757199072473158142565275292632373890327110902461100143812144434321950352719868356001135998579677039561551957512014629645021585256301249278112825822900773664071753876118390034262608174733159003149023853781887924488042117190390531986760277227740269193795173849319270462038924807716148097919201990890588123235702289192760178695243618939469776771514282919181011899376114599393975710645344599274902151606653392751674398659526030704723379708933878623083112159799069021653431380723195105913906574740262077054960588807335095324918966156819752836595190631818310735155347234746127571039238326810326061015513896073075605244641012240371173128547579575753646326602644381643714961703632300090608738560838691252169506523890410314441016088372878081835806033881841954846433340520544804085653841646700771627852136668369215868090632395966572140015331675756985737146418631811038423095152050569821276743596048921465152587992379495819540127243957434597947590870430149559500602147430077308227851313355275533338335260928030818795661079222625634501300119037588965669082122171830402021965646758803117674298736849847634949366647046304633967572035611209445368301269006190214320594082367151647782371451523428143575269663844133298751589412312804768656555518866498148520469634700958380761746568237775337693298032961069096672979375583587304550377602686948999746543936548581969984186751770782054847273225798723384262053922169299179583719289419034006954661316212076669801419188309345517909701487121316741157526517885702924045713701419170048524905785036542640425705761417736019975993779285226831690247955824504002241230268180937421721871878820651800623031291388899707148658355930140543266340226741367208053793119552666533404260087594095451010203590285189377176112359734609206377491225788621775779641641459674788279948800974380626096752091195897473234554444102959352270314172473904467514011114949795595474247087958998230985797934437317248077108187007267720180430706978110102770603426492053726566524175066805007308777142720646436545430946368593533264903866571430836648942284500169923513902286987935308384699455424986443716606796324817274256442352092598402764751703759977990753043915643491964749804270335754457063109436591078902748377422824183662216126332947274184638218684568218399080583701920526330255725515139615816595541706712790510948109939435358822157120280768634768489075085863739512135734481147179748497645063476828145540439505139915918859111679028280986534741831626927312303861380189480322939909521021105054332946224083537762461300160120489031335700400806273419642652059393905752106555387525715597560864547269947111562582219941890528905192000041447593590896245912848393387917491324337941123428460576472572249891049031685044497489217233196350816166220622246977006066689280146190328735658054761604119896619400084038033237393477282585736756907862069371045423543518871421931751227377386248724381402081594038278339998412918890946110363998185847146508182540466159033542996901927355394425778384158617792552178271717216695220203186818878419571344227063238642739507001433827340240018497138560821036405259931673312135071341502466445902615108146266039034567111952118085470342824741472713588736813846571253313214039070965489661197452232205705118965321298733106411595224268797816109762667098858166934852736895605012821020378567115478555826403572847752866489623293503482628229525294066245905489067329832751196877019643819966998244731192450353347827959607152440456380217805896502339713567489009201376684008408730256966253588382375567576189319330533215132301784038381785647657939350333235647533434324457348957769300430600609130555471223168331523821055081222638337323239666535171902155380648642629848004997879989325679114636546340568818830602915499230467126136886351204725965302981025614936959119038766614368665869760902904731615770605401396803295545907748624925295463115955427535989979013429359722673664735298358602573301751428100387371838035085427181628325607589396286501833312901629131847631907153326368446871335133469901654785632673518365546228713984524218659871318781764100604723623530707757973759398978473956192043932971958553637993435477675132788143000416592707677515098732230466637832835893937276489539632933412424554378222107594274750191841676867672196508306601810781110800600207547120664657917539388376190096391809387284098427699979477599474622492185480795023558947689094146519128041557013673485756803853760024004208493925480465572777105185397973068129479802360286606304902786311099104883102755886630833120539497913314273326607874902066207116465851798537990592188306565519625943937235350133837514832539941825508368822919470432308013140439875140895966258387375333898318754163175106968481967093317170045792988224898830712135667945746491702433296198590079813340876931375126018470719618246434760664696057890344072655763207955842239918766047424167241186145913439118739544350827291666124119052425193872079227809064765045408818025543310143714081242343591037482054208585526079067728874225148159511729387271287671426272471971619595649995933326846351129943615737553668563925989945699685721543673258702331702375379589085973633230398460086178075855674092069511400849610543549046006580800541400859793626104819133563282613004487706162897566914131331419770681894406803359970983114210505601283084777369629968061765862144438655473745128001090546494645319466907902028185401676253527878098938662722821538783420523147741064557141445398072645569421510680805787377122625803743840491624882805343641208647565693970070399347486461253142240062125984386883611023218825759384586028303236397181052187653349780301098233079691436606978026314076878966605091266162239807046688558987853362404551255347814097504302792177661040174662168099567367998467491103995512940872171888760724625025030326400201816725045266472251086357843346500348640159238457317888156329680070104799394640647349599277184584425706246697233348854158824028610528829715357358362544617676813287181797900162219033391401858681432306127029278573180991695808671137062404277734969100608793198033739907698588828726845367823630100261536005855011003648449030077641935194375646630076973698182152328149390691473467180119425965664199401246483310598368531287006213006426126947168847213945129332148155432663865658733515979186574677049437153364969511434397883666518867312220859491501433079247644620777144835136382987808355700601396803947592018711838725421258754850059532318096624385910792132600943511974922186093147471879099161697571565962038782606275528663047918783982034683965029630917851581674820676041350254389240711332145096868528331150957391998284143554329414579391277913235061631538331140021974218315557249982128393962801184232866467892629570600495091985175003914860611148079568126967729855032562901802345181953150641041871628449793730121529811684491789737891478378086528731839861404757740303781883797678848247962489182629337332487107371536633145091907301740003427106805516676389713428498312577015069338478336562272042164099004781141714447806931037890742822380688737019809811474062289997262569111382159725912489157043206411727892106977556326055507746159215513199299428299896168664478930364164773784682359337604428539692154259012925664813711912271075723235676519700287871388721009932245607127322350338962176004817262303813172029130626998106761895063287795519681562578071976810603425069700499914902186707728208611332742987758815852870192113315259717287084266708809042696743681412287222251824254216947873121921548598700858529991187831474036503213559622618420924679956318029151309663825313860041007225582302091465986305830855446793584560504791973382363095735061736972678324303048328640305925013802703136228685425548731893195963393946865846981495661795428177927706287185697931338135456128193157003429733697916819183974774755084702882175726711873062748891686722884712795673538817651120463107585650489989514634241002999040466094218375918680698863328587421871233523651213048026872387637785846008530850258433258977662967826128940032925853531369649245313371915204875905139852468186544302339855803042258357306839801205580773926386199094298175150969848757528550732569980863304814307271587306186145874295041657666019529053621940537221036076624549845354107969515471351493942808932329189100821842279050783745107063761892409640757790533084581933335568119318894710075023400263803375254245181676236240708663248653887334347376606284243927580498544919713412448570116767170723691994316257152403049158148802575964510069808644868662084957943979555451764582329474727191195622044694645839372351208926787834741679334566128018629006388904412537969516640954868516636271465258246352454196875903376391617427433775241382214277637814641362323724562774927138902498683802157288805013470208182929544607339151177962286225793216577273948782352005773810344099959833570023181027921249148197551572373116778818955169433880775412122283181986854290770947289259518725561800955693977410924798448581553472888362430569939480192421948761837006086197049614298351021073193173408426147390655384097796236254308728369504805466115024162765563818115424495587668461845959172065250608191668414675496292787835738757667347474764656741096497543331032741639571877112716834222836924364858630160818751898517810267185499340611129999822475812629831479855688532674515828904994819880705151609402474069675148637951240348543927594312113953106479122497588445822742269404558869867121060919955938445840210554477571615667459422111348857855000215097641487927712119960434216946255930149342559456636591702719232878061731878637007637262323935673655215988413861417573847388857815708526712012189039147264157706555189547998927441266805556319448243607876766610372082934569086639200046498685785020791671956887839425705225911956370803540682482997864937978133026709220422987079847338650900742249316591405533304992164456396269532628398376781059879965931150670884731329873773197811189920651423879711972174733950983213102216895858867970303138150305325329913313879891313656042260796010153443221499520318729079280196616304559062363522363943161188396547255645187412513207612845504789222200913097047104643135119771443338944812116578796130161479251147684150340577051132393275842113655044246032169640539867535226695915603536360404526731798064456289902473225714559342785371385257504926053575658644360151535047739889983348651775230454692666626313856490187084054066911222804675184822202425764908614825396495569209818255738920550073324153514307721906575391785575168782223454198415292242520074210746379317806764550345220553550151080377341750272850252744863294620587731212892680545782654089806184210582488041898000215576782262377331211567444748285671321005704309592545334186263829380579620934059329842208880416693442357094812940104134250273094831325415622987084781370068367395498511746541097228082606914141796367408492914820614695546320292410837945521979149610141072231789843540125259383833534432264231647333264324364391283218281237339049991575308150680415130729656962474725868452543796002561500631282801616167981193936729273008128921798257573503618638694642057312033513059075049015584371089854779063610326032151069810141823118345005962918129253472093221720474429088714815494139988781707509356933340330951537868834976059043555436553267776956822109861893931002414661244415829473126904227642038204280166095001406215070973113418228284159936408882622143379153029137865708697572023696469633569571050667274313715706683494072134734890526699419548959133076788459738621037042740024755230451553709251643685130236209558315335974732832314044966188374703680266382543052418524091412838934320496146272641080133178700665323520746362266951886525912505533690813936915547756741115296708575203251502872451762014730890980188719338772065506151947384689718733777071665260392900812911470235384007168771850744500082290575002716565562341360262277283822961278407617874479659221987209766571673347970912802689266585116840862172403905838617901348304557765364153311863143437292363891150629900261683636206895446700467988350905870409812354828284329111674798746949204709055133981926203268507221672917414912995192426437206320964691778721834522841972808196411299491882089402873558524093878457782745992754193918708289573982398681354928277866455153348059331786634684060370006248062988184702316314263218267507971898411801509728970687706291312587180453584432198019324535497505388907721178662239453262804703118334414708997719606842766467787897209132513914834475317018835359086511185697136691863256422454445178802361812291632189353752836782832752078048699758890719333063582545314121795785244828625627470628450613986269306530896959342518086971670260656294473373599429047237537484715743742344467028364489701887805040131907128083805598817105597872243786826504319690173436613957853042491032073061051975719354097469445226985231428340399370498815124192153496442327234055462943844152682476379363904277234227686812041881745452432051006869306014476120210651856255936804944005376581630961248635519058167831969940101129812875108934858778412690062661162441111269357627917026165550774756999297898897819107078632506249693596579570121445999705864862306486468436445479042847941547829490537158838734383867942925877251912568646799014680157237268137303571922819695382934457724332812631847609497821667081101731755460484496387659489828494156477058463487989999539070242793834119862443242560872376771915592150770252792293908755491685570123956423450260563113269703443271181229414668532425780980746645044571964328589144228619875192309229133490446068256593389456141297768366138245538812214565570470380752183215580384339728710397258109585674994840136997403729301450640637208933502719422750848511710871118380584480399736146104707916918019782035388768197564252380159722942197012479412809997235767404154408709782862071610805260449001257240758176131947816735875946100082585701051084618899211114703082383877926315277946806160765815432304799685162269195327441551362456204881686696901657889596711479757952747354700216120002062061860703899895868737316752264052064697790420033386641221999756547894353962777928532633365748584355239923832183191563841351294794950058486981958359355504224008418875366112402740555903291313972253513694659942162260936380223909458396757896021517664231262275456140566886788049282954608310548950359129344211488123108424999622392312244165770113926837558760446009234964521618397944841149958888937300254163796378477331263596246737209756386535018135962368991811780248202121385184769231611328753067470978173286232577013742979262470497426068417021871746059080836826873350505919094240887522436852782742925682035319332544576559859658287928386307349214373390954349263664345388479685701598758370084572574865602531515519399431419327790570989272312904023752098984428203717362475210129307846020634669726012815354076074018313013081352439116717817061504684150985557984386398570511659999997807247532764306995710680006914649548856435825891693716088496064852408095012299413186005382566073347050664163459181484262426669226523633160192180329579029347810198914342042288522361171590405692872291265143279726164860479083208457187598283094073963851606469638872875624000059033857471440128018263049598189472340771129569066901691212569127620411899447982520520947615518829341518085860523852380048292377725855055701963161252165010421333680093392857916407250514033094717047498276170568129865813558102673804774165672229933084313840137263395325192379097647290035503466039318397034462712941405290104359200370070542659007826391184523431157513540502793453681326066280020547282397484224117195238066127740320302190292327052923043602079155269352597730415498566491118976472016414955739506737038975443487902265308497313570005432325235230042296986633133412275345363708707437425627084778351155086057518076583513286258543501138393663334794907134598033706842523791715919051068184192691173770676070227672710756442114135260542662095660558755863177639074616479947607380317380850231890835500785822093489842775445187193872614072048226697154731197990776000838762131248770277965740020234402510217245537483826336511383526561760666333735152820414053258049205088275544840933905919317679934595567866151999177428855159544948723416875002620147702555477705081420141285156402643169151543559984655112586270252615496481808090260283978713421411564515902535014087853730966729489758377661389326950731143173733102694979993999654287874641972451379720569016048615380473629120682370643713020309976543380002649198731045043248593822293507740358770767546471009354670682116049570857134174455956599299288987975063726036030706583745842464677988868183416983437155132197532023501205022932298354359652532533388259331920366108469900929200322506064345308494388564236364715313580871582723301526878712246973996413219618926969695030587117970041069926080952519826254344294762750274090496978925250313500874881936124129757530559288028926786837417562217854379724820766136736374766578450411398830201056013074354321374646843865360018100220834585634973899154210047400540269038318144240307248405028091547007866617208996241586166646369510848871901034484734676426492201646923331675549152132999241939585318968481800003438987017218822720657458053564745870272617688321924440293076920743744090778602168524288217610089121175720397631022319768295924954256295914377180351936607798667470812438761785878604576833529674076147412492640559588417307231731152604398864867398391124864267168883598048696788600052701867312680249181637622579195572306278769652235769075756280989996418083276147426928394887902584609424568110250225634404441352527192881831674192555480754313286397027029939192545078023150993449819187856895317702247744572319727940320335901046575187508983562544531953751129994114486077862968378695978154133117365342437415762982232251176228996895207965467354160148557705015137967090088139613303015831747750173014054118497759658384962997929777728665275466259463205502616732247609670330880717677477808927015186287944893448937676254908442360232420160317755262771581050336070105460855077680767759244859939154039125175261424007358957826193896878682044084397503131905218905887443996584613425645577356318432902650094472908196303274659225699017503668226457213837884665630148931155771450810485341837895795485409781728901680347186418738530353033083254207000003503187998646357136016834413556137476125116634430171222896198319673421626260897653864356002177877440156492345314577669836292615440384076093805958029440218497284847768058533151253741726549498211286006422061692373416615301333317886646906781402560855488928356783596936359898178773449475374808424372660433221354427313082976067333703496625580593368758975286178297008230327122685159154879327864763120515375539894489796875544024597494505716216241878686650380065625971701085682945587118331545967092765134944510939239577025774502039020215090025337877824923326367179669111962036325171038314699812547753707516264620991807684595325186226943466397945874157032493015719818076257504442462458565935458850076756282592164366102970663826571152820214535452188617375280677123309741118174761709710770146993585010112724133687700526300539230774137359257697191218206577729729642219557771523523104092799338645744963519745033625783037454259083483269265530928104800016001518455647664967899148979867406467941637686219773480279392115285847139429348619246802524320953843897497341484142771258898478770700598726972115892011169828682169403122468281681099754053689763658378592657362999754754196491404643312696422256506853534762551217338707479812950540494141904232868118528466837788062763728058153635503988080912627101528784224139702785701526648035231783962186578429784311815388478057676337479719618697345559829412161879241772808870004694843852144063127163747506376010497703970478563671334171581371182839394000502789277550465129852998584589120989980851652211762532212891905998680555015522316106550949203228745573603169044650218359613401684778203415951747621481325784698866707590931467888143433150488419809524997183219326077638925657940574364426901170453173482213326613014992232027099542839183632513832334908477564849517654664267064557992866478316874067716930143917963864272151594989657095305208287948514572134729096807957257001929839841859121552721210452007721120594355025706335514895139997258039038449378400050889722791472006057622112149578576294624432919478649253223067188501975087239921979486227891204965416649549624513048431321301070747531167862378460901629441639007150542492163279908148317651812783602315226837845776974665443245337158069880360406156221689229536915828893479709868899060779076549631973167374208188805305716179240898875824277697297297260144501569535575823972118957461746874608661899701913208562348050926858125950099452792027911940771600767474870809488528166983034079287196671728315206144966078300928476140677662284635221851364403919684384124703128237382233364967033646919308520933739802370643031463515232561584308047058128688653911373671342540350658063751263894729936266852008265929166833878424092715173758060236448455762214879471455633534360436381654228270653840746935422935148025285649681535416496690863944945972884444820273847962340307704484465459859351532462457552125328004556639575490271771682441679129977827208650059203180286639575639292586635384062909473306015496527400778825001973839564701432851632276600001331028452123486572463448046268481327689094682815197169765311601399668261834890307508471454010009628590978630214849746501998705694749124599699981871097297919332023987289323494223295630914250055593649737748986793743410336859628804578466724930638637069694295379990743247650588480246010845138792625767575529052082450875176525394075888142038277365726646769393085462965837092718480547807566181502620502559007580624578551162770234493470620412871006965920268342125013170340714067097997115459387552617896458921361352168126363138131842072861120556888061696569942947501642766316367479943450117878378662632722561296244091569893199121585343121491197236501519348431778327431791748232622721034089399395084464742883197383146576152871135528188148230238587720401223635036726163668258041611883488496312915071648804422114550789864583304736769954569051339502914399910630201571537102632541673896489912216925216032651679664301986616212010145999255196852656150672881083608676770831626867109661807342722553915783079325677849067383160391267510208791503782519437391167355974929777192828245153435503282091026759925156682214390761064764905614142495705204871153748286702632198703958731250262264404129938856373294223841102273979743279511394152661868654612321573878635621946349727954009490852177657058490518517771285895046062435795801914381104257169408538290624434425784718963174275748266902418282272998444465325088630941941933091765272890885465656043273876213179396398112736108347379869196051267293876214912904795523672760688168496646269344244280918608592066947307672955994226035739884621838445157631769969461336088463138076630319823587027354312523193572555431678019268760088367635987239847151510596375605154735358231917628380438067268737273228004476322008828811374941135209194532465578083067960190180362364899561137463089700914625100734575878745102623389593954632888383012848931146118514350862922818418216911980598395317566318501920197738133721567415899425816736014688805970369896284957745820734480369429846454861598239811789546046795283457832450303361568482993486548160906757236670796236225416955039672858172120046473421855404065531626646732251853143457751816416421612505969266436631961886313043072768257766940409991137192042086231224291490779453191223143561056780683897418914465097661233502099127517123357716845837716226424225340880129222762904293104325663638210368126408798765967105907884872472110828084507214659224304468164301847587901211881753998579263157077543472732747311875855273200263332208188575521563060248792406572942724527703196395733508414529294209281249769536715562192998344072325495791243150231995516709167755852892508435150526820844409372816958399755832147474663582325792980701781127340854328641713357675899400309291114614570004879496084252513862640822147090761776630607790802534011460181072049196681178217303715711403186747307831531759160457638685754832407126940829762661980153303818099866867789882708568398096386525326308504221372719331234647105609948075896610540192370401630760671016886406703500995629745337698571164195182875967100495161279047777737731689649673432976208428063024343528483186611359356452961677230784864583690940690634116202589498136841781165505027302578614625721438010107100679290708709679105372421485242570884185659984834658889902339973995747322199789614319131267847558257152931889541836093877059797353004893315045915530701937866107136059085508645743639875131323887877611424075995862944783676842114860934838034966822110310667047408758961550926567749009420033934077333624315080582950966704041946459164611173343506263488681063623913557110550434586158431801164781801108399535679564079783900223534251863229309789516604097211935539507496479886113326664830306199535945808028285082041160775888843421165372159552518638579207797149833422284424848355332169484453971357669642902716851001593268245246762528079189132544996336743055780875107309259286854094421287713424399766766888640966875700462463696098626755990069746961616585163980590404696795038466490741864241495496137591460583725176124268700502609494565612255589154225314304871098414302882098992129161880351020895051380145092852733483395178961971803968447523882608890709997359707703203817442884905869428297449528429676949796859090706020610807838957614150217384932326702269835381760712074566392721977785669818551819476162002112924669371972140708788908833433473931852743974230455622638244664213351251911910868243653686156283396439373929829258414397285267125490711659332290230773767111953925895257900885845016742559024061510403100018319897889550857802360271018918372627555862601257679261232689503030243672047822964125390995366057691303196979142325979737416412670377512645260305402389256988532909245786708489319641300407269750132554994442419864325796311447187169053136606338393814557626408578397210435085589078076258495051560088473821778168474826291883151519030524829378899239632288675267542424928728806290653487375225090461800457654493429765270798747313817926217135214954046086089444733983438082817861626186184591833798539963989223097354180922318590423516255971667736893673894603751795906846516757883296118913177738757112423234618261444262200214804208922235595585275343648585493699158969378676888921152330793666453511619043513070761708277126170658816032235684859773425205608276141013364343469127558482648840903268211922780371424171569632898951567841977625604932955120494374255274608106217398124895021431256971375029666367089359292776771450864359764331120961351919439203433382598700694593882105868488675597539615858088899320540605119865739971098873893009589655304546067127369730843669680119775080615402288349833706634065295379321094226139398548961653268009602091208402929095626458507846393979654193910330923814003318301348219587915913876655260073820103077245097867005294687885589871886073895577254546458959612100767939592757210583565874264510506621781020675641944775812823937777222616892076296895591770178302695787576305412689469934433528067703380993200027638074316686494289630071732929533684844890949783684701926677536697154778031005870567702919425279814567992385612837608542866132696277188016542489303465163388369702656917659147201800034541556867102694936720158878793876115111162564308013192107789467600466580858913087649280558367236043545764777632182744683369557823902736673970809702926695469359537313512384076479722107065706532512827667263013015804947262897415290817310985587075986929464472289416574133915475861692413381224231092399060001169780708999848950934667224926237543192145717042011645990286172993374372255257426179065843704909424061483816312780900799445297413809514013384699258445280492460895292288874239965638175869790990052908365252515794128682482509403187300994503950039285373879367888874122990764973085609203476207320603021607097437893013030702406355043404563667913562030470036146229577006223048198930837519503890373845503390546562950125713120065220684279856129614595734694537068261228407895654124501622244017003923212302074724540373688625501546278583191242722431474213853454889533914468644677905880477752376239890342062965591813301236037416909183378315546533437659196335915481899377625343515352800063465986980718337187308697627588204632371003531142042079774316930593072640593802566708512401778829577963039067032647840640112116557762658690288321757696694372424957550512690600582900233946340656174917356631026837760602246697926998049982056269082594320785719564647314041960997715625821097500183070977873722527437519402064352920189661389842699683991924921327580099508297690394923711636883143334582854071825900613261548803635009229061631082231815662151996450635728749642699308681904129563322037604645332220423625500210558537600578455479473825507383946762479634275226199935391724111251092652203504727014121382329688309920023956403806019792948539276659762949795212610768309051816554870678380066712867977979232868693195926998022109528828718563909438433829562876422121479911641263637280014173755254001704165673239999367220187804544386921195724862931641119479486222940747224572108415723622470356330311517133629291946474515481379304336440528612715265608055176966859188890042200490266422700240192534950699655266274070514791185696335308690740333714917880892906854988611706046999522061709369380297509108379149875382799650957556113468338009284454283266501710611724113797131932188825175935211812239276013158715849736821401691736594352576452585936483287082523300998444977219651722539542513264906608881439341026790590267437337438153357348052947441848669730060461710007150903132040428150912756581531006547728162321123058155557554278348241735435927143453445179065038303403865925550651252466546134599588768876619254134501793292564019227572014980013006978948468741090399493862570317428384382470439980986770437925593996201254189026622158658626717638002432580174237422066050850921965188043555110987539908624294174494443742924462594319237917720171251817230597889779938050073732848723266505586308575103379420206912277688470137402703324966933729969524035725026132054138085907472348205446164433376420521046108391901659306495855730319481458439936145696139191824287970123868751087797742779452168420392985040864276842279364289557196556807510836254603344966094616512058659669883808334383829888567342453664645410027229879903212362904081794372335329346086165555116087579054513563502706971790574628021676805784158270441622261560804689619354171721284056362391922080503158709788653575326393099867594395604763006766178171777952766786511901338751734007764909068220450227427693630354556321037648844411251385616385079606227828999199635504469002939029255791864773762936901271025531336194145910251027921767924644701676404887941247886859117300488217451523446550918175128175861944896775394421637711784685445441550648371975169945997798516795354816454567020972840527662084316100757696190306769984320890663478709836447415697250221166792701207749846293803706595108055157944373451966457164207614040749854028509414722200741715619210779965310284548791056928256284619408855380731297446499822948680501043903626768255321189391921783384979702462702112392910374453003828515923344636161205012329800746760987781314092873996821103336703682072556107298123362849277950758511467728511550625643461997771068108345833672016562894127495685247716387439326340901550533657139147777053068680287498658372293680702644744211198271516196636667603066296376017609052649882107036445619035561142905070383032538791585073095374957913558638769394563286558969634517731298916124488910288674620879408207235041409015247693756556194446617278369467820656609669988501208717824907034276624805303953952885733844765694292766484403931492668080902062062780672778731683215623677921967578006178957226270577275073971860830626095241520557426511755515222817768605745422448478719991371407582614258119072165384106451932552232264971890576262421744482807843029637913341176094673604138088792840977417968280401989908433016529910149520984817212716165542480024501921062292548917280652556041489476445872808797930819428635171694324572657297106344335440144083885764792680344081154298928129566628259567653500946557623970546802001151717940047419476533787615390233651852665646604188240246556757923192257465909107737362284568750600748716499296981465104408891837864752162108822988892441094008509186753470053879556512807148188571413017094005804715809279386738981311121174540907670670523795237319313236548279369847741418882616337834154442051904850135897614217724527688170603552733271218661389612715510128867124164390172413340529218785410247809343121704625335223249259769153925698112531466968556585632424970092625383852046283188680379751626804529372205792829842128096946683997936407388502527917750500864604632921729594742045648147018541756393578316382628203734211572090215361301758028680144425232950799185324969206802774989375357902443741302374929109519122261082277260006565350762224971818408894555729724316432417139053682366749532472762613950880740288269771910027379733913036087676295890509620818556210873816916276349098454214556544865930924378117217603812181446078591831906812292374454463032054800565717776622448362828135572663851767591144985820232441361914648488555595146466167003759621633850330225275536697105870548121777915949371798660471289469093823617261866787678528955063017033325265126795046525332804681756306837814494862527593681129995677434980441683368352850755147857922102375538240984466020346189068380315876462394549780533966250538895587641849474119144929263153572750445914501912717639673128355931521820362426950852009462157414102174709491627462125195173502198966356522739437254489083582037493558012737931681436291402373244510739497959474806651382146486964945327716014726416679770648534917132609461485176531007134897686724675546646129060470929267414978927928057252035980068293301864806381150611288627356620650180116910359374811224598684060189072279512870467720092789249639630252155452476574442901851929582727032142323393199916627526980566155270956785341406628681909108043654207698545148558804702427765699575798438846566829635639542722610101172055250294349186568008467502999076274542624064365663774742929868566082921940360574987992719025589408429521566464272739242903899300629897042841650362523212063550146293589599437679392662524547216615289755803633590635736259431928622707631676547871194210602149554226125422864042806412349493095642936629478672970264395971237967637673702321277982340034517035876628081755141783021833624175551819009807997193901196628998921206668694460026332911578293798895934947367480442675282992925390310010664590309901210639540882720664820674643514263808973700895074932796743582393277223750811422335957761981959189467001289480488066797383396822235362267752385504307706733809410293599586976442690679307230834691129331977257819414769606784973647581725488175131967551163600781458857258129249655024880595361682593924489055511567748777763373827721788840365096690351394308875951187811396827479541476163258346214072767253845419822097061011660200250438919377211023518606090841579561677649690606287946116427094910396948024337739449724672642927941757393403620059546109881825059228019975233757394840535519023132005148157562315146239372809154888851289237724124372675180428919501661376283015706021396534445824757193766148006772219026646809538693199210663534825336295078743329554122421105748902584066935155366205893941299824166638512503400252944933529779690840830210831300092875707737351106246926324813858712290100152174545213597138786099569398227603962302404315516518167058804569169407129357479086312227397995739319557957567205672289938450285191414174350886181000637157005059085220025124476089030883197296695834436742613353065701615416255554247462845807279931098028753482262586115618527695405102619713260992737906914795332500195612501597499889328595435146266870955903956814539152992483866091892725043039152883230578752126864936717719838659032663202721753312303663693447597717719204638421513851372110271681274409244230060035927393392159442372509923567769978957829782520638900065013471978040797519491600197555476419521972546711399233109632027247353019429205773457758631382528030986523958631910792808719252177739768979518650789039591693175549259728062100300446735214485221880918617953827864824410700017521824430839898565570025340742537361951997294246019398477819539299513399843685390930419885569085081743398053901747367338419853580361346863496549858522811126651256770630332035553352369542398141811672955037571494989544510827648842618862469480803404345465953488201615603184659193799483794875879924176175544052927439977724405294454632470453738376826853258249008083473189015682891854140166445322646144177627329236853758215285064359300380455032664311752709684202744560852108869768111269852972080379140208811436271544430113220385962488049295150854366040029183974500876147849268180184669935979671958506376134430985221040696318810835050163888772094525048937682095848106896679546388209710937720461081020077098369408492756516637185109181781861243652097303921358403940454325603969967950776655084473514174126808157844415290739600169380801382525229811622581875136800890355753182914223669048324924998977981219518942416124586886405062726269697354598783144955787311591470349340996441269034745676998131710313125523052787914029951465653588059989530955090417351289021756405525788003851633721927845120300490362482367877777444724595662194471254457395994871952537590689158435749952493766428498569958036220682368474133100370209893078875978740743495739580486664834500054945276943139653587001374516830604247945934086842945232393484428158168500813315807539615201250074407610539369302349700690779214003721317348846195133692242759734560919242925937559382249969276259311855447719549318082124421364944545994931735121004893105437690432061973366568587351800954986986598837817907943347046270840708644997706728505974791253693263316767476800265744480858075693421725186257918448602738180804620461009418355859515000665733602925973132867728255931454273613073955089786865634837750153561742862359862553434482879853962866648647037385650493934991325350852597628775215098510098707265043767601928241619699000670525934057132379712970765410900654800322560886744546061589396857025360594961022985699913192044242647767472646364409235172309619510878526924704859687807370702223812770115709030788166273845554048448675261229395261127409351632174374197053350203063964678226821987998580792032533655554306845006263749795179003543142720968021201608196794739839372465505000521977805913813523627521417877762207590688248265682765864056022284397545481783861502668958032214516229122095836626128316653024153682404655380543929218400977652833349854558213656549300880183435626640897736827312899186586752486597149987275802124100418470440995476430428257328740883496402240420697262084724150513811687630228035745434323676045984532960680381962689673315640583981833939560918369496071464919852030978811288965516619797122721703988001587985338423488847811501617197896438090145761788143979058778680630853685983327270933659429512282743633331149709735415181216612391238387613681920483911987234022963953529061056823190845986833259171666117373452900047332003810778880726702498930614186596319981883729906001309884000665507300226546608539517033816849013386537866145885377895299496193165068776451351037532783689181959811151954922598324760895148671294208517452787855883213380886093137111327575750097958196037524888698293822463115738686024649948900197059126627709307922815447466313052460122070508678610774360786424694716800022688816438767664697810330308722486207354239486034299280018393465869463948482296566695650330989117924448539774642286608007632841640343210601563562509359613711091231432218199781855669326496651455911541477511707902058954938755630400634887099495583815370537954702083767906433756128070545306917702255132396375775948385868241803116786039260311911150411843623565779281873647702123441013181680044687365836364310638142265865372203684721986730070005233588971308981386931448507135092016353904506597373447198127669490600815170305628044621150483693305953730606691110734911929423537927400750754020129349130678241002098423102353799984119927145938273314948490382815736195623595887151273600201442980543125999586648575139816927291738263171292970526028641151674213755617096249160800988952336311767179731122457070518457695662447215771991735813854717715910960519139593054436668083093675779216756241464137333913926537421666779178429372547624013467163002732683710240606776746374842006847148014677538688362039127317945810878213929171261614031616618599684879986069145218293155573633219394372191158217759669113505530602366784004695009140906702478128721416562100218676328266662480694560276929884460954767764094844669012047458650750519351370934660078579298298462197324528784709461635045899210498000443334774203707841888242040745246998573937101520223368636214318505921406743353111740506318709623736048130207440902385930610222998144849902818177723001328161309504728101412711232910646287441927734629806298517081467657225318299264316215795982850496169423830098992262655519081348078281448723742549994990355111425607952323801990658956788170304276590036267284202675715616857231572276566162211909269381868768371467098011777856429696798894731511690151093930621930848155694540230523400032008753989644756960700956316752110977781049420034759845881782968293742467449675024430934032433497367205570704911485071857383501857463297885435134968767521017274041405941146561409825951262828582611737859025835681483198792268371468515861227874848813422327448093515407979820549765522467499283047562623099459999488818720236989429668363117946852325444588524064241070449417487789300096240874468301746312201280423688498728188060680276662748956757329565015705072711535281516106224042300943062819755051249042100929369011284094136401551508800767947493720756296627965000724171245499507585292370743291884099956686085486223085561250108776153742021361507404069448321847959162866428876713900738612249658565445910380791388927591481271158191756146103057075475890247965529664282989855518122113035101894760740447144141690585727825149432811747924952949837083374508124117380337980728808145518772442142186499332833372060406558948648204577180598101289237919352103010757761137904020652893914616815567675263323829488344836322386466250739854867950955782035647465104748222810959746170436082596108710669856927729090726182666857509073999460376146371922773657214711387165531522947543238152982869840072207988114633181755337415845247972944096449778767479977404498104730629135174090147732437213183658127245756803432775883045502780834756023282244466618908575287713447883905296478090849724986535869311280893580759934188283130887197223614623718318218675188687773573869233985456164629074108611781778506524868094889082829829835317283241155029657297785161841870950639731540051472696459313775725990933196645073268018607082042950946969684698771933466792196379554707993476887698079375058945885045226991506812348657120126507639728739121372957664496812402940803962053194684891362597464116021873238601812201034430674084526641378371338090434991577531967751832891627242531891811353419652295538466185655390520719118895187114058853262144709701478502879649655805015901320929269494719012903252524959079462112918877447138432097600801551269351799521846963245940378456540682317376864711001800657629076507985364560783685118718519330243223298507678786114873072476006258371209570623615568913957514432953668171912451317788705381403776235428988836691745343662927086137621237857544610072904726710482032308619352060288074155980284674629419139463658041362882126227143664795861959975539806330513190218840524769173510123675390620748798120749205863395298098912865032427124837029801745041854993305996810291843574229840339393488356267231160871132929984256969418586964799457598792960493338110440546475198457854279710735564393283641968376819007331402747698002608803552782232970958496779525298379099233279333510542456242705724709804433306708432342915070258113384769123353981848928356279631514129196293578428996592596143530316885164866755426385377609945520198181807511282233463106915242936393614784593921669055885260086927294392521899154149590600940317806817083431522657066158879355963216580431819907258143907461563176620955783586366757569691734192976785777815133350560759667773204790422026087724019211006712528594494013216837030066249828463831347656181911915953757852481025838793941514366840291536117050380172659242778653249480486883201441907874561666919843802832889618424707974878758486235417228739822961438227083137518498158893523744526700814536500001780722507300664371605577498498650699545059569951454298234534994890800463410798369929984262753106483641307252967639931643502991965995917590120545825137526464994404060332785105919296952292475150872941613581873281482081660622045403499506986897962501917389276254643500714633401602067023586366048001265956496961512334454489266151643497794088069710447469132496963843432673534480059219244806299613686852990079600281658398878713428538671991981129274302717955430725691756815684361033126286890290565780004088234128344928878278259365253966812946285066026250691071170174489922528919092074119331560417674777377730902616061722701181172126261888126986080792322564941044722989332768662456240687016307560268701352463622971534559218570294824140618676755393833302926826698870812218458914127103121966651650919182459082126788562777495453086600466915642918015567762617437586878782371571362096636740544334113068216762730325750560226214234097161305483389537846330305411229729280429350018456983034674124716334415752486237519299694189133411459322026593455555213465439097487801377447864240321538866791822918721930572048899678507004219722151143587740107345423477664974049172556306116334104556444589325600929541809982618339904453953656373103216883051720183833677409421818291119527718508169537540898491848695535963049042941037845673831422978639164635379384769854413434324806554615481995166193353471968683965236509517894481792013332085437739812493541813586946745796029860479655708215804842332128651770743142388304297748220559883292425139540221514407489265963143328993273747210273925110392962478454371818288414090458747277552532998903284667512649516302103731046478968603389104690343176801897509025051432067897357637230436054983983856636390757165108485286269742013713869519268671735791928388759601337121636060972348974220378747937361066868719045429131153150217147842218477978610587972354971028315892286559639142879692664294885152619280485315606081130528440140453910038070858634053042353823410164727442170964863433306905630393833208554296963400414406996518115022488905392491577913217269539362228066642600301829904574227330124313370197598620433553850680853116159341678145756631311633900613805581728744143527163559279247968897452229744665266422791173887502976053001046376066099658100936320340682155380864429307616015585570301289766131539770701121209754444611401889384529262128716424265079358436620147689670394016352138288911420112672251688674757088924752437118221154406234963459513614435859646506639040919627373073331706612475931260451220377525054285708305657736646024804613098594442561517460431125133159264064524040322329545264514912438105842409789701456392694970029039089084650083902920170032014004220791875143518435219474262881483488776786260799730732230027666915866720137672359076125418629544578794834566832176670903479170824335650650183240070161599634984248903568539327071085191709776256022861967040980866759545356090040881078831911207966162676995959216252547227016976643965408147578351510072204782459094328814826844493107345393940274701417991167866236535325284493615455521390868083721395077153564450967992918444617383209507670167983762422593370140507374989164599617614604490599712227440552088431481418278408325368115575570951250064616577380035846484508800410067483561382382184163288912195974955182429630734213152397225029828010561308298684568308896198360392363079611903226046818738180966713711972563413188431997304419609800020935347226265692786511411868975434189925434534091293488859004724109065454439665031586777484760715783556694521009225611517204859584023529776722560143954394894890643902260965143609004812340992362900994374923228357986661431823491256771097306153201869496857543218643543042789591375019812619592406920695290701676292446958496667280693416177083824192957046129029061557466854198973389472729521203037788285953228030013562597107703660359486777976086461673682198824839853472305093694864432744518199108372438908744902356275266689488406260855192246590922271509859451190431212830974925645676713967523799375555857793105606676280120780399117756564663587744686240634989654077241412078461863156910503700552319382507834763700857404970017578755868160333672502457548334040664436779976429314630638023527390251374790463938705694906647083901579095347747844225152997054765192405659947920260511567168572799496362419218104815560277249451880442658534125657702312645822127145835808643563825916633751138817742747922436839547946869056194773465105815208175013688828305889262800510339950783126706393817555418140756241520199571302164262451991401146446535922215154736397581744205295986568822971185669862800725784080084210320260218146745427435552348571172453677106337196378673438158095896569946866360570697444829806823600977079531753383651121011946947616250146517419914824148921950706499255788309107860823983375983061354714579591204549271589750717783565850704401874971139292397190117720207575292050764041742440714888224129740961308121041579816845511907499145766818852332980054142526277678463029606909513128841237830429619989601506243480370599459412862154257831265500437971752272069637568882268631834148890654193073085910521666746745001687085310225140298552927754440815049957507314057583962462024263071329563876207921678501308195070811926769861556909056973078721076677435130836111105533297164497301603904286462278251202257973862867835198541525383294861147073762851632655107851402361684188422425966869655013287129703250517581549004276738939793020162617708356399481099430305337566548699724023983923733140896542679485272266452856349943217832789005662847691150760376501765538480736609332565280634081634529079347911923106269054133009948437886232464599797434805085634913913451954988996165834854169352193061930169889917398729126810072019177105117709228018723368078601040356765105376540761542562376930308173161828654364352186755730837713795585694834456321411553620295717525721146745652316890993316071058399395660283337160295966739829742337431645333210664055273903982309481833527715209592688262287653287715103971238701186604855062952393486810450307396859778297221942639212699341406838762326962837473885368870492396397764334287852817584187557465902808884958736079501203860805358766178993855064391262280302084686575553580365756626968620873729861817234442241057724889050659802898034369613059670099196652707792170756297930118672401686365374408960741757967766726978812969104772235983925800064885519955147534105439824690288117593932973749772767491160019761156691074876710276801320015102985596462527745839892089746230500452103842354349950902712754597529507962600772279224804475210583062884726082054342220354132767800606740050975970977272120079411208427554060422575987143167085727524827458885748141084754285798228213554853977997738423956078018310514688991577397150424043496471783174557752812062852273247763554424543551098182093953746422325188065958783460880838733017867484066335912456814706060864686032609515195738945806097944269547100470685756306809002805785174172270561977448667812051242617400202144416721054046762015916873407053369897851623948181263057597654296696425096834334238126543052039150096282887542480533323796903024168203809824417811299000131767109606937725141825823984255880987865586147877298380137451077712548637204826386289550162805784266355345211504541305731388570899053286528352896016667299237158473641946719952854435942160381264149854461075987735523632035099042054555405082929906235201873481564325981306604099507823663723593123454994818865421767192548026324077284892023099500833582521353439521268919617231316325659317694166950143663265646060018021101437551523834159749196046039653021751030033184568853256411746381848757389496482046288401194691272963238931724165888934942297868125123374664042973087800780512162000657507131819515504539472126957215397129681248353595113261987274864739750743272371432230517497758992760867921963851477339255567528009272865545534179932282411676115533362974922070489765682799866843846512952477718444666469042596879457461190682944116696736428330205005697799962083563957676311363035322017612113957271263667557855511561633802086443493107731780741187193161287673799035328251729508581216803039193914405369190605302493969398920306897719941820310104641307271211668917784438136360610034481766706651349609142407869871616387002644902430897130535438479774278595350011056818941455562319896121224806439882715700063623833849126123981582554741194756577340786676127603272572062720811796749918961820616689272551301353770603936603793349279945749648772917708453773492852226476769683339920625144979470345197262501908983423788667809965924531234167724892795305028141279549797975798855300660094977882826512389600303009317257578017373902045622003525989705082801742704509154745260076741627983039256369470146931908161324315799945010927639457818123694329564672181089693065734002244126223744914746831636019170797817815054576344441262950805722954407846356398695868785695150931120141360333562436355257595316682455455169482066051866113048457481252017412677716493704913466264431361529643273432297011945910053671749453958640646984683497838470986973013743329558032887480904129991727381889549807000581879597772815669713382944198074927726795250927814511451999567419699626607193020470405405432261973993531164544427827305501135313991380684577443718575307657463848898598385650659072759927710346072270842233025846088853469908589074687256848911011347451393031151238538941957206066220670797716490237244432180698752765579673401388703188626769435107002338021589287038880088352459890610166020561984781579487685720847322342983506074919094653459735472271817961618720403183552118914565985429951364475046989737167314210730803929023508283602040244203111345582320651274131687318344215880771856867285866924137207743992507363580206229288002880141110406070979751763960197613550232077895703065338618339796132104150995361265004935279463044081835108187694667503417697798205553688601470899308315906421985044983926225031375211658171939919589654260920993199491033719321797222355617425615525456055383280594722910644579719816875452793832934649657770169336276697475664205546676061283394806855894463425590513782021547059284397251421964895212641972288217320191750904582749551537319860576856410398267909258938000662477368889217780470034427257380207271694242441923341235467961496312817111850023581877657609072306900173399871140187966395681064501923826522877343822996740249089914032833174555018165057027977596546242860452729405955909553602937468046884046470821038745529617786866504684791087289194394706131824644498210240162452879479897465328151751232844827613890330900389845627479100953180832074967326058690748939422168742934722597681658861878828471233039691929928054745861915521204225323577492780118310781968554307979745299119310643925640238488216098982629688702567604438105517563618943384749979141640877118412045768142918720018681319820484606638038959224749432384640802514196111217764765295163917499593649013462567663698455850539836578447723606667669338341690602842346908220262281476787535835359734255179716863301759011202888989305758057801674121254259473950982159748556414025847304906507732921137309803266332201811909821679005207551586969355966973889572703226555993076561640685998235659833856767735690290038435070232298254025415697257508413022226130101250734622551397974038636104610438216788567528251477273031287560607758165302423780073562863530318944579758093570371156441223211103674437162808271735650987130564006915259001786635015397224859874473621763508220633918042306578270343467854372597718485810737370487910093861598533542954207730511150117471753564297171626787217510585300738615171561657527367040683969997834728267927455887344354160720971442455335135038257955466647333285079490708217104359060859869355275871808680548457162612877837943143151992009689502558583365182499813987511626652035394424179109694766346861323971195041476560889312293243548227725056918079682121069167032513497769048537095369664981980753843920965393595226292225239597308498426917567427373958451603392293903366730923993953686407629765526533397501339648020457956306953796986839049559565015296890500858423014712594010018676987142687429729263537607761072207553872506233834088588352188053372023936040158482452090721724599637383200275498308607637401321690061268476224268409030419341243111255312115015037443796653142972651200070976506014836945287562887251202983729822949610515854119330089497558891372957594815688104369463761407833628089005137271210109825858881605870055192653882628318937706538857666499151636254725661285793998656744512175790751615524346606803413633611239505140340254060384222995748184426207617190146137860194060601841763503071555346301914684024388803764314917546108448550741130268856066584147657818964147357374793517891921093742069861092417765658986488029676963856503000049540635916513409208161566925696308305766765512823247672413267730805356813908185783820043246324581447964685053594346320000417731909767228654385209002491898992852839858933840373844560878856362443020395626337413901088919030786635589853550540100582235827509130473387875781059126971377566853323906354834455182290395252498306351136883253262855941427351723041129272018157142210634543094509924291335746066217968204346554593765880136530821200510598505237199816745779107832232269012193288891128181908332199971665457797258118589239569915260390752130672947887610305514794223177616903713284336100618665757846255221007654136363513986415683971564905466825638102217817704200176415855216336262485594250554309115084140430875347844515087894169215539508636108083537332531461533601410263820885522474074415782783906611671087596918491811845620296979130385974375390113446357152490110329451011959076489488353578441095740718568005366210387759251614089528135283542064557478033992176000570107518248415452695155547316411265788642696868484906506371061267711970712917754485491395572417913858330606830587712242261479379797544067069026135714463983858082703703969714063406172477975646325314178101896373886093575355426326094294937497685269676402977681389815085081253489609920057748868587453905417903725232316626516864099430779177864555013641606623773138722853826356275401714803901674331224515008557254281384502447704020686647925550072428429949519277549363320158803099398818089949607831204292196961540382935690183696134289709119585365889596155826236496726638770666225021380602641369011102480338322818726941163835102826511101859565634527977918938150775741695518149595815557536746890737945695153446878539373584639517241502775365970823426229778955430358055735268668072161395744044034965894081437361657272801869745929165419627099855828064716645014591785734005450313422925239283343872559211710017770250416526304731634274587868725273072278099694154140215375963605671119788126384468107208114283870920689992206048667110070825393355713657676191586744085039568555567109527345692420990589383694975160945007582561696330735347530551467745451403488218827451897375533294466127623536590670230492508651533327068578503797793904015062971003632366026576627373249210115377616398765644303360402188787247358315891733990612346645937434343371010257582195271366089603597827577891245536957136296163897081493408420470010268591666160986073437681407617403868713964061390881886016204721874944016253716379870503541137686634018499466938168222118235829843473490696954567405471859855676453132368851064451211151877385619603223439215536926964172835727854911412702730066866088363416009217157244382435669186274716192046337135938481455364534993301495690345098023577420308901958841775863549062306000656633786838427021809979816985779555900022780888162479983673892845414409632702487794567697946067081092081333525623745814981143851879835350020667893032935437740118992079523813317367145441884861041595689621389878551201470679313557915789437222701589921464528572936616724296063120397651090752458187114408496081375572039410455148036587403742747220740344954993742195235319006123040740487864115508807585121021333785045241049165017841953174946035600362769823332305732271673544302920173501318913338798470360040154652197833258988372637892647389018694206981863342569260114791294512018603222600875536806279706844640518841820244969631687683028753233993865921026732037404620139525997856701061115742863169048041182179274713555612672825538327268241620480766954201316159776320771610588717316580140470820357147134591141148873486906224982042531451080689218264264311395680922246311318141869361154686952658131328329976491627492076152652753287220293000358529559174911723940272431832932603543263741826576050683449269990456472810396432880568948307169211073097795441914548224336350350403794427910159155189498496297216344391075566819096732781523024325746631462999836408005185506047468899416738071141958549988345667495482646417768440872696464150306958817500549810601664497298001626991476906549638589271899198369747825952409099534218424428450571205933581691311676422646927810690999880326410513498308296361437982306551313859765734240207907504033793862297888609721581881048579139966974096071816798949285353945482356133729878204210211242417011649156542492793231347259538303323307416387285110424237828979986832275595181637959345662528954850473027832480806545340334506364530669418649193212168727072634125540066108254734736810563172552940603785215798982216936592125701632850524798813102986203608130166846725230618843799033399830161345746493111400998121808881987263561715530364492652487350821092021767290567666430114722850507799073779765929246812252068566620795854382406539224228440164657962824160663927920409968762055154371298055052679746311429042436153811967064778879938706380304244825619988198304523051968168607112439094673716530117879886639218223955888363201995214883159819893531335918191447227890699253338201291991923645278236398118705447201598188268605240617688705264265610817036279747830719640468571777836464474844398018065940970518712955126931501675291203424707996629811511203937676353295335324382219659582920399048787758470228194106332923643090820841794633385123604671663487679045662559271350286329831722122160848394676211041969516739277053466933704165444723130995742606001641121200618200224092547277957319095254140544675610360648159487530567456304649661656452783482587552766901178933256293004543553055560127814577603227363960979962455307531682245128494053007920273674760846010420283967941502721791411287473283858238182911316323141480597006611326774811545209211412980674418704887887867190355031368376441738459403771114863045566894623191996447246830962232516796341898572754936103666321788903271547021981034079565966434182571314781502426000791248893662264132621472716304360488547183610699967445279997830987727162861754901326811516894689776229385480622487938573131117384699821327731245761187510430822338098614957058367613876213255892919790009727617190331853764069446087804153871958387299945330355354700227995615647820379304039877735283386179417537533002397951874146878371934693837080157783367632046094263919847595615926817445883459843123533144460218540622845543692275425505067702041956815130449574723740885661737515261695196874217110972012291535541528457841150336401119975655568689582342575701422540653200357225636616001979411599477507679655453046575882455515207498150828197920271156303206320807159572371971290761494675917932493741678178120475342433319656647901846017284975961758267105542491486084554731496265878205622911406190111397744032061191471318659107659194998804138656544357231356509755945069275323526413585489863884744909478998373902133066382990947509870201148094009021249788984953620165564276663517159542340245869207667642449842993885948952741039565915184048353208705608657945698035956628503422377226457978230064380424704995084880900203635431178949392664037662054934943702596823063737194439028697237083357189222337134595601847751652375517858411486577709769544543480397289868433202731792566414124741913281387684742113383146833679784916485978055361405736485282641087788886484278495813728220677973905039471249747982133468140600633543580644380672361378571405918438562790753011138693962524446727793356770462275843968288913885326650312868032126658396874681360956442526262646869274544172401521524259563311044003641579156759217763964299679912406079009893869344159138604781400945944421916354471771833572193918654271317007969096878431343908318942505232964982070518801633638449640849163960293396183348487850765704971511010960791812378687375218160929195364956313374285053496948159057663442412952644473164839632032276335633513052788849504611627003275253120639036997512752632927214032018573273134160716052993613988542529795522058692919425004622820926124815378205520480281403172667258309873282409484486565976365070190236225391178244481003135035797743494412316200175896427074529690991755172758672245213072134216360062788299882144164935530204468685552980181635074450393392703832828037726433631499678298448612348839316506658611450749007503027221333108874503006961910488192689113832187062538892664000613500786374082972298200658036086880543130464412225542790976062302956065257563419820701965488998066500957247317016335382790536592951290556845070807696554192958679036067433745319841356914254790034696274042115065174965645470970585657499207438051115940630142101092921702601814062833469014320453313644121460483671564916890946716932737064237869088851689872412433083809706310426827916285265404652563798742463705106583190282810793497882338836038679593487763463062573592221744800845170171275071585708702278559142802888650456455921159978452674546820111192706573734005979553274720162331791234341699483364464261467190608264373746260519792189679595677155129164430681717321445802534868487858035981100312073349643548475508912266382471154370930165189189520931529690690188900992079710060367978687434638059906550357053359866076109010580475008135257623394018315642538643331897320564686480370590576479542128257559085802826397737471463813980558051774616170832119807286891373917986903135461520468506582147746422461967467118016068854222315981832217041728012505506560299409302393848065154688263289492960110088839362997531241279615863407615412455406972529846697209043930892724894288307697618851214330509395708232943729574496412407449567322931468637638667960405083420406517280240205701070727856604948747330064055659697710453362420983890450596508627608346213691446509409530045663618184654979952420193133773729379786423185396700599772952219182121579892289818421596163034299252408357161928553067674594302765113284022317340078603134208995245252851747273224882496403785234445648682900637688472494355707558879550906108204861451223560594369696933632063335578174880588005572981398622826662678525518840863210550377017018732931163225894879080158394191811525834421441532344856141295053095283578039235906140429292481080285022763061160378388727578865895135789659707493098334701457680329234189413791474258581169901283927811486757247573423230059629112265691752863872239371572468227024653944093952335163394974205379702361346404868364335882152894699499165082623888293372007722880731461581855272487391480152826584228943471385814457805881255041306758012211804114908426291638567573940763637824621564938793856562686559273958251891789469482496223117220642136913339392023956598285936348926851605404210753901613196076575851217910871915937104663998421641954019058473950357739100108587511652812853521089335495902753607272278741506522081963408070503136145622683921221219075120280489400293578046350536228352969272481734054710652490873391600452810144086055561472596049539075831672658320323196153312043966057936872039466410499203653212314575872525050011561927186902011588944197231470943581260471865537954229002327733002408385519899145828086325678636805596057869073024666268354856657146390747634110249841627427549385367460620853835940396154107713041425939266893453969381228120084584291134461626096128889029263071711637218613416530979681657284550964460185348033744583434480461585829934557243054263175942011035076383509231273459972206898669288707224506011580635297328415647467524829894101500973877484559009062790357898537292067295375379214171813226831042438238306023246819130612783021329212870155594926076290225282115702601357814359710731044247414210637065161948423000135216144905728147362742950224049078006989369004010586670756440508633245277537546827597972392865904576353275023781228382859715089020023634114522383955344864521162218077534507996470546500044102098947550965844040201290824354495779155825771093947123878508980151392823324277209519953086570676154871496487656043312617101404144833448071197924020154145550616481197674194763585510758501053432557786848399071088047922985901777216607024194616314935786240862404321006988810973052898722285984647680292397369193196869676045198156429683315674065373670041538928072145994144473771186533254151859498592429786113168153568966166165459360277579149469664758079624067729627468697982745267852973407704415898994426229679617507503909411943039626543667543966277933757860659972370347275015371781870349406138042379121409379809253558078208009010276178888795063164618686661000808821964581859282544875682285867417174134785067062709271394491959869653703334408335048697083757987382870428819440065350134990650211245456613126869549953783645229213980503002431669356013423083243430895288117427887217366709681324373474367915590515695824811995662538415254307127397179410338477296809368221008977314166710008299184979607125966345616211083720336248895131819317988686517336669736521052181870787780207473885087843712269425787451136080499265625732156782741554385319457966880181947345262572764889010252158347776894332579826683036376515595105107939571898639733670852222551180325924533619527479851574608847280185392987166036027537300985491119891326787688801094641229289780793229274734231792285266612267062763660869355489463738770526417414727191068965247879931271369173638230104979267479099926652369514556236862485229738830915185271906939413038694800159160623480060766014827649728579944761017959188942128907856135650308171230361133140052817679961459352994822018107445351706552561963037374559759277183471836459879532380560503394805762388769705097989994538457633267699111998264458586077836467987137718587415264609886969746625546188672786232620237329805178164365023164327625308881124242745654126712331231101595250992247881960967388681361636905906866824048068859908393644576966619915781681281485660254569588641044619224196840301263369225786559999180253414868270050684362997695515947482427614063506346179336483191794019482179258840594202416088323613214207534832547936292063915783519931636677395234407018513707253547391040049206012357216069621777495406719310205917532774611545873126531493248223221433479475865442508576093810712398606324142589346343622992217392941780989828715382814004488393999535098995257015075995247447402444263949673376139801227383656357961027843419774028929825653334400874782108522152780184069497438879488582253188302004275529597896839155874517714124084067097624292881100738128947438237540400429407417259157195708285195430105807850284521831581974887472461217644206331510095008717707417655516360803603937479427983124886372112116507477094330641404866238532859339444038838794693668536256316001930603779295947959622402926250472452130247379519337270648014037056677540731830050187488874079814658530329432317424956768364252128992140442264391997745586027532491166585450134575651252400984592152162263065118414278109907468212334566174035282596267989561468019825681081642268171282803180508195710450067853251188334005013102817045189794659890775545413628734107572170648823318631420829521301131306147542694574509753846277070847616015502716094992501648135992177830421189443883947798650046428047365367334778075035140673648717752958209466693761926284164104057378071112410708384808186779264183878858987553043269082805892451068945752983103272552882588647127712239714978915548651797546414551636109800124897429218894777713453273390849218060693350074457993017055325362155898500992769415767437023047259123198152379011101697348097477576849165514201627081262565134828541003316962646000864478596328818423166718797544332763763865393307066767173775066583315651275842285921227708620362385797005698870430864877890883072335428036317547960837801268290947027303277161683437872760006736192640172381368444686844894423222777119216719801051995609385579976231409235779711668839108531974046690526229609690453068059400281796584811485602509695343554514989702743077128398738264307009286738372991255111114820830676147560197592934469335151717798983512371909822556402704938383836322811627110007360945823023183553455182577044576603599827220076180876591585404414357136417379334082060541618530005123398332642270774820803989738534496720866731669173137534718113844762003928486793960565934714505667823581338100429104238295341644385770206519286748546627608214731598640210316107079217560011006851845086939886129566250013375044580788390103931533740863645493708883698583853643930511942482953520622977518779703050073216486885816118539827445380538234615033782994118941349436211978674861183375697708881881746540104235794190481049915679688465367753052967794728950320322518377514999521374916752896148704746124168686249130556982544645098078610416987605238902439258592649615471937565135657185644317536223635426463059670723481387014452022492106198921479269470464670778896782043589988688044731172684193049198549839020660981721688517265525863083873357801513235827934836797646297444668302934584701912970897080776603891421983226130035604007653812689048910613933963429573329097552314423240638289162410706802203461071065095153402453188929988756208734305721601973598025938458111634761158244004635791804185883176683884071140484655878937659771841030458109121017031055794974747336726690792786088241838813302323645163853707157025927540452353922637744136561636130644171119861426761446466797538729760678542856231385330849299686343743990420288571209566393100704025898800732360021802000925009957847283748350640439185916443276325977359971987376134134313026747372472506950238914447994469129910535146038547707036213223245661072947278945418888748764701477936935584151695275731915465362402494921012792823405326791055684919266410540713446202417151758447815496889322353544976606211451429591648738753688975133133716078249459313186627374674196740017151536490246744910746659414396111481218622743205436754193652917888619092555988441107810547081262062071375657405378646331735877271623378963366187543129588584293808184747204227443082077638001157856198971990746545300414781656373837288512416229272159365945071719866670324225498390021181834591548491396118561767376985825682817615887108320721592037575076594860734566562030348554068340473558233413835458619524304015357290854327595670329198535928899935694417393089589160289016008669409751388595077779901031829688836126639716637982466015240785313954954722258707605372280512681219603763290167897175573841990862217565938303834157316301452708218033154796486506586547818653019589024423357604399478748933599389762331157651690590895391076101931615624234595556315763253024392864988917834809122254085204794323592004228310637610982891077397218994829498280176219485926510761802816972776257065901748990893081672701108229141810399653552073351197509050559346270594041605324992600377862186024744880694883290718764241196757198864513656723079167671741752323748758316071456624461645997694610974969010643402388630322471052836047574742661354647241685307442624975064591553510246367488496807400025749239964058283205767846154576015510085687579331156306252906390225507264550757293817217528464974767176296735761332841545377932773468390285465253904950367926969720194416675807839464863993824123158240049085276875521341916892450782322317906266182873398187776678251525168687665145035832083394463832347639595624770459066389752586237302444298228180108573250958797140807440787742070627093344490305502339806132905284201130924349511679298645198229915861362576819700382234993623418188896789482975821379040825396880930968814054637121224179754741695538873951837464784622876006886147506395258984145139114192552699577753345536807043004812257972449322195762587851102173183611970545643583495718320145797532350781630196205669388895693063749598524349371929642519153473339277114717705970184622059138394000543018767880792664191821853377164376175626159719610016473318765356840393452557592082812030590484356842615226960776749865772633175398705572361536842530295211574463075937440367555618573310497557645410492718774626357119400123819708207192119186494863078385407591040138378525139240997777228337846880026275731870977025373246487707355667098199838077128480591684316602745701621915507762928797292859236472761481367053754451840756982080727201486689812017418562579903841352144258856548968130856226751888727712492844658092891239539274755707476334125712442461058303396003930896549130756257841092404384735892225087699378063564776163500643294415224977052838039340861495637129727447638812557124304488103169277670181212791414287893204219602219109283551260397482349490763255960161335521325732243771628143971188026512039767984670812857452349059085810089147964843414709082719654009772137822202163347900723609546051584317498806160825487323878602880810932195525479200737051836086164216119783370768987015538872075266005553968373335042983010309843885968371996623923414739654123443759763016216834994397731719989738364103577668606417469193080152110378962034285950065203007787267833722015435970904593731993667781806729261947213912956957293847534132114849950033399180457778440763286145805533170306068360489696247928318813617577899015977848768637644317564498744324694613837070780750839981782862834738516224237413462686451328387158037497741924647715087418569489485058255143260539358208518023841809286681116507807304552949474148495179899608015170333326873575982627251937972650228144600212916730461683014073129152697758819903718406157644651638049786082497573207424297800855845059554073453857154102479912080971756082993819718338147008874869044211533229275559419714826684459461498879992785446755280281809429054065108452540043738618294319871816626540981040033534947655631917391527573635878071226935778643074491305398191675507185850782331140084001669882038458490134417477195524177199138096865405808617360759399258968975909973533103757618105402182108442087509556551807883214440887691469558197657929392505921207424304167812740087270825092833493338255664668751166865741204392912014628238098904147707406733990571157946464024448145274834929194411227391617622850513413359494550604409878242709074649433171863660814041449049021888559674955588573570748384497043758578705153024932181905659769395810348096179241310800942207125320745048533162782871569038224825233923981629539982326735943151496549873553069264261515373155797180009780469034633429777826748328412393915735223378710094500836354505868804863503853375056982503653742198532277217179057901123881023673466859690899788348842292668818699096375659523133497049510642649505745912251956194884806178930363087635338058307781253267078073427080028842581698773583456919161592302337508994625670931004486221093106903694753164957808268853573958834333699935146873640026660787694997519751015082440178811522710362580766743942006749711777754610480969035892598574579114162399178319414845778449252978111919934370023939417984991995065977723402902505726823598071799396120758805555398009969686828187611658420044508590114186665634515332986906686573804904186666980584399066089913302608477492503744200325604874959393580953908455091018882651540222750710606834598272456635128096420939027540871798566978985755716641689254813149001988359500267288134912180356236670090363742862629033803767284170773313080548223824664431015879762040645244830402050827935836374665393665479921554238256269751341099433709404615601989530541583901713336006695189764692075810255328920019954245886134342214010934985238149907208272977530457568602967834100931081228001935205660746276822186184820501940955931161686742073101205919726156107615963813091499218335939526413228431789463274315531970192297214791088393910463440939620817521887071838124076380496662909244637692224927617658552209092236097914685115318626967064610313964193295295169450025961516948031599716600779718478022566149176716172829311571940904468914691912079935557342926056977282509771616918216484579469553238739260343060030194301756167131693925813315946494638657377658745674126154692859726526836053657102090018576087751988490991813591529048421839902375675770850118685760046253478581407297854985813430162843453198156562646418471550710333404272169762600414236667913294566209439352152629533352688166054936673897466182938713777532490048377966862132429702435735056026125781177246094817671368962713091040370737877607867436667901143827662763022038586180675247125947322170521192559422748117945710121712805963337659474925326585789613897319462192918605326943668529657211567102892119255964338812415075825581967583166991039927122081934903783398248000354332681045614112629437165863023883147405099469481964251769324318089398755266124693051020759450923875798085612445126772113824443817231863870495432991856303440393744696967198594562054167301883216051221550769190246457691909388347626877017773771075119411414363848473885827833539666692315622688671985189869842817849489850708203278313557116171415012610048742412778437669958458470801329652055116962104637770856368593120025751837623243391284916903506543227079002291270979713654497418875288038056457339038843918737424994780775593006231890225556129879532752016696418428823630837433551166352161954721944240745532936026281276741584874933648374228951135072097586870609005057580985403088335862888915987487892569671271622346294456960203199213141145257380787142262392792869084577060374422296714441951989587730121984898846509147769295566784267320177461030991391963307035518999377652955553561016975266984536496570383080778539752607482054158527888202111080533792959481714277607554533579229239663254097395314064733997650934646854295494189819868617515416838943355898116072581480095687583054194346697220714275761839906825732129782799457160698480630480156803943231805763959541484998972538302786283347927721010591356557129444955509200311991612619273539612073874026315544441427667542129194052625716677276398351493727551061438448208300742493813238731948122281389068154212910139088174727526181357601566865397217108860974116197608169177939426365219475035547507711548024652425093104253256556974607097228438982112991208632230234963077803076873413362166676474558489253989261655275513312894776523250592883314647917672058379772743845483744686002435576760373963831129778027632183733320295923289528802128788944403352078144381445329449629847660916131085626883262169057074687544393982255027596816992985387075216162841603829715421041318974631455523445212119855711353379225740817067855651262183256492189158554237222770107800913517600852784748021103793243773490392319350910253484376526585095215202628747860484711407985855210371359820622281052229215202656068927833268557977113590312221889661334783044984469502486897365839305704842693562824043448352939405635454398016923596766614971343691532256883900887688483223593044215145202098969395041372922987171627120090526250318122622134774679583162798172901647475975851639635872877467192486429229954763156524624193550192241299186370855279917693376976008888649672673170443534971242870460783821122378909120844995271004218359957783021609042894928165198046695278501317230681946575559524181239523881410124021419626030111165256592481911935450474357112955379154122234269790150318338250565529636733893614985952215750562390656315150584910399515562807228483297863099280545926430457924486094923653306804075526502201038454966086459393933339345585859911730497259706264266708909328038224772131359543880526197614429741328773195642137431847088530792296406569823870597113922251216615212995180102422382858412070958502487758914343225368329234586614028496246236506474029269566109167510355169237040650759158643499551650065171734349929209977526635274275623915005811905193864263861487792317443244120338816269560513980285070675533559452833888676875702674398521211183051072517534081438434995405809377124406025522965661624522213317560293174285470545654943360285394408702609980413942993024332209094192192110392547893034460056803896330229443487862102336151775268217631671812930108432413408840884319773832004415615075772308052019746560476972583194446644574876980149532705531497043588333658395948248308882213051480680842455160770440632524340049917445947454359778578873901415384151167200446046881183643573715139612573108699212989282085071079818755066198103590382165454162170444522078682835560668880385301933208426020567811982641253607157611495947839650433125520340526302890633906216491422596792542316874466163822179629924338789435591205035697737831804221165011927361054912094564887844941371096525731967019242604195242611155429384174370092429745972549323448441541419703459934683573153688904509293677855435259371329696330027960289754595745309910032696418545683566755314121183551474038670878763610388737247573373893009982267512003715478274833077878803901304030791114501094339280198635765666230429056387760609560471987606463424202317045287009658890185487184416440336975269569964564487539736039389721784604728123453522494312014288310263138795304829926055408205367131794137219517134943003944926575769876133897982537946617320083622079615936830056336383734644595764702089245311659140863326329968433466412316902708605555771371529939418326662702215218587458589239849884559282020563482234573389253009686687473197403654085424458835923543093100984141689673874738188183382494495994025074165589117973355653850353058037066712603562038440524463428407582353776242002005375821647092855814447833123463566748255493552753223031430997672424371221489618262339801418258004035721566755354842798758998014172992591470493058123036320945933231974159563378092975573124155555937835310611992070938979980843544683211555893312199423949322092843490363476122109782017576447261541717271147563007419478922842513895482828485079143238207572251969867611391365278340442324046514514239441101754475863979153733293946905310223580012415681138851873315747826681042821660935403864616678025517410387811623701541135236109363014551369697318866971751595683411742697684817275224935178548300951841827820349017029354095789196822546321623894452435172296371866172014977884426715516558837195898431262902470052976611107728213848350997080983274425353266460896882359230251384667931316996977834000900209495027889468008005378061236179520604550134449577675675218824457348761316229055009638061207738984730194174613001494461633142505391225306186752782433648633685952141356951292375893418125226048636487093977851695372382141907998121268808875113700047657532487715470249020843472893663288069513432063235509317705564032834601152837694572838284356334867435352587016557724869738063548364064435927596918891789045287521604188862489420484968788417695721284957773036729587451471064232199795936990769685119267731426093554387628934257115287633209601226503165164600641929492428055091816616891920711850320656190832720964218234066058954617288588582028652170481745114871174123428029001029373818306660247537505869386001493938995866543995585733941794069512597129223350108597976223225582820771658293712562519357202224100812565664555873278551490942228427743583432622833885607872621807879829645742229565236398578657778615568917795881538790937911620278596340490806145298962024673228530042652666394657496926811121252606668046153957659030073441962090946672600360280250724222991828532896567479055897439900101153843934778914301948409488642229213994163619137459866487992525637844669542296117701819778519608224368201383369908334847370124502065932259983358759772881560693845180047922607437752212314419140437615816476392770102619914595564431253464616165314279017721522923871647488137207826953711923817490173744123817180196632211673397839090708241547893946021427173001913037251585265993547825597391552135605687716772667737475443852737238236934572443598086207267588472106162330055385951745593825337032953246058871422394169441746979318012645280552863333273425429272127910645314810380327065803885142205497560317407042142048769398917238697400972907090552100992978339430827556037035276625751937094332943640885006362314069972731221558159669476581610573796208418859499555709415186996038039424814997044682989368023057248833458727227105524626724126021789328308788987881588207299807293516919344387888309555593238080488440639592144595310731536162248607858068310473855502564969887256543310305423741744559924578448982419572270356188679475523722952036953143584748123282947115915211130586860253041262485947039584126647946250832841592251674097209433575843095968296554386992353668614359579309300651586368501038959602627552786658931719907063878085000954593187179189550539734483635137025015511281886389799903686391033073304638710758086167985453661903917863568044243116108575137573516633608182910611412133232565865056512158033952768155839465568751115212126424774772014700213621197606551018186589253267541343259903953733117789269603351552025582439656416742446818731540760118640556894807756419199890034906478170667886914245265007488400673389664172057173951993272602914240539837652796422711998298106468966896925931792378955715599926327989354394131777919296085181431487425541255716107045948243502963435843557789556284390215949146380106286863216759724971819777038372905069697352283171562864332706372663018215465095276568023418980788898099308788013806582667830061969841202708195569523405370549388230300293148892201092327976136785928256719868287430086995661866242799523208066615330890285811727579400715692313138264741120602692197013508609573263190102247238745265581618253998682308524461762741442876151811933229648818850114995052898705167880091051096107879070118894543636329106134369727983568873216727636895693852008057714586561057578780235467894204922491810542945103678269237585893328127074337340784959837848116469310596194110435910508248671951032099327444928659843440647887817073288243886789725294844802345833905989189142097351248238913560092735852766998610619317341870401210834546888597630126306158499503286763382923670989901767307572481223080295017342426270437648452314985699887071214124667144453593340887126195561175714817860693938898062381214123664177187202037766933806629935093897150179727607160283349093687818318349379863679369007126250229784025510934661353327064277398718138007041396551449500610426973478782546117924329306867497592648544634957731216809165055828484543605760822683180425819633560014695725969706480697211948035655600737082898640164505778267316346533440662910752936887697210927974644816057075655477417524107847398199246390093500380338561066386078655807270674873413203750892729244132113385241785853095509760578801674497576579328377417871104571904653109164656266743712825130853848419796317647883880419879653800254655677055738551835579596420434000876755029735965050376046520920714192808794868283318334894661929660741629613301996795695975362841852584692847589751780056218423638677509705981034067478047390549189364584369467474105594694141492637040731213701539954269175495176744458051274987039417316576990995580747714522788405105666669918192808717104994194065785409556337841007717181551239448793766677090526130126153121979929356316228163068667713807373793518677572216973507166214532094599946616639131733747251787150419795100969980595555037310407116833730354363415009215146503537988583209055113859711827502999186423436814291452730355167236991185495189018604655909945964663432560468555124749726784196165593728593001806331543200331759746785056083639425631792926767752066902831634002133912590406889203602125262927070774607478376958061253451185493518451764990322812333468296436006674274291227280567899580753851856761304977468339747340994328170267506177722027972018682266828015826157463254850509961983915130426107070817374819940279177327428683685103212579021421850594293535848076157217850212454777083820889920197802206571395718859778621861852483843660329891658931178173392206298306188249828773667634400911353243433993967340837563986191306676740264482170330325344026235432620094108868394718611730162994186717746625964690634672284008015185312950598637281218909069408463991530917137728867484006025801419865436527526776917100166490345002301001412513789472562700434758407824393379171537607963464117456563102532594204594930201550739326868409466035361662273218999085017732665371345431365805764996596781567666608984855245247106861176943194871767185600809595213111941907949529663287080643304532996295865017177378167101105041609957836910774598068752568374791877423679316934495487135920516421654214168385910277472895540365696239190128916063833879852525653649081089756084304581674704222197748051629255143514804934320096363743760414099195974286741098889160201464670862845557476132238373054331320224086064152257234389243613811737027674694286543475517948028124790806528867101456039490010374961400089758930386748014589133159678741575113404266263791697727820680981230610782051381210009476231930464572232330153390353037301966616938942686218676223828162454192422876951597174564884244258788429402298498321363272728256186127645885012107866435062898242400375353999716769245658676543963715716255330899166972843072423484143847969541832165669793459806389419569433072626271281263069608307479107229849273716677548886800385835526068424594346948066904696276946208447313648292718899964106304379286468057957795264581006464439963805382184200805550160519186847553203190231973222600542367667949751850788422533871489676278917329861127787693348697605037137939955040723991604861830832018111971032228562147863660665679354624038586590840875567177805719189437799487259484075873553711440934073047827963681512592045506433872081203464747575586025677870155668275213821833825757404280314617951569745507153983909356612462504741019354941190736608273633161940089352323212743780627816387299730333584377287555576979894333523742718611339109922614008314125460065387675203307068266863045556836746479017035027499677902190793774918667465517826409291505824984639387726999912171142882381308755742092481392349379334574478180462934072627961099939655916008115402056670109821647190774755675911101537485032793213544293704033024518900990604901196089458976127772684621524385124248001046487044273172261259736232666106382790681665438594238182113543364219480857590654742813664879571281833905989424018538528971712325907158385796044385983485503923488338480750989737416015190759718667183053276559806914827434503974616699797645066980398073841945651374496685763458877758769034047146110585800691995797583162513115241787024115109125593989865859769780760556803395608114116180690386287885491958959454211360098079100589715106886299285757279284323034992587960060917952547826419755146739034904424247348501206374333037372043173269715927884754750228211803399506374069640657284332479329103917877266852398559447592747638424921030214976567292834699340950199829608894435843344205705534996266454739721246596525630040050456153409411814967306052654459436042050330833420919213430051176005274650427779612385976429353646028274968118781821933069150710070610994060912630493757302999976792789315319556697479231174036701290483964197638564561269346189297319533671994122494187717536047298625077174285451020535230754592910367676972022981206887893440971667197710622896882590690048508940022937584689008388499991743138817544097851069691013751119776657785219043800271116232423972429155674914097180477423065031888495909456598768913192554794606946011244060149495241862435955628526443258609970679472104572127030343140851357871128519827206579814538373540761864039241186942945288257169162891388337746147942695807470125187628929986228603132658857842391442803816033972589853044455476361908140465357301362420229369326829203348107941686773544943166439524370873195125154692120827353227090499877520697380605374744709183819446761687783414819004875776207697756132158117845709644752171289183809915163428334589131404204134975186226716532800652546864902371819670406031209146158753516678208795966459794862537691550609530687169566724074660067549442013579024660646241430784847595235716133683081510410215236500025223168895696299963585489461545155289247367809471663716911266645730270110631872598141164505669866112456441933359255179378229052036655879400261996945905512807846675872991967865809140114056224937607512645817078941230430415750071587167013278888694920630423130120599482105364566074508582942666190171658509132911554705517782890924580717181795294767559151150800198693551767117189875741855694950414293917064596646309005342336758656199873918732540037120192118901633126387499852377565030787903102581918404300401956939605456788974777602939955513569379664470464419592763248931962376902262765151857068579340598413302658347096577538126635669221043395060791806449848881265519210544848965502977680568247594150438108279941511125674011501744982541757043522834725433693185519894115385287982848519450426215340532307657533056217264010613797684793842233986423254455297968212454101114714190300197913468227299160030103548989597070990409616352311186592295657436330667905548271344502524452474927911508508060151689358804992587973779663631339091474397178136503551113288447161823115915251016524533419802781585922366349115324723067821372669961211228535828899705372232254318252474919127479948697330776345293736925416140758513710159171165414487696522919348071202699949271807297752726562183775094602417451243063908203316757015082370690098820399439375219032757005908112912127691302853829146048991801639906763184649766734590479459146814814717941072722365342498642953625077237482664324262088447065986984930926176686110312336596877604038302399648585721483594613387935800185344974700392030925874253964531461463855256442297717119562894807212814752574746395043362738289508279231494276189242048434357091557630467166811964153207577336264198729601395388346440681345287673117208796998414923903694353473378312740432002160553824669714155066021139774341638051434609992824414337783736874334433970446811673342836135470380737300412039643986739777122215359728166801413739750907706858260904667765177765151789486640676727602650688603639138445191435728663760140642181975177945960752443924801681135378184846470970260997631952341998508762107046548506822653745758129620173259870216800025060498913029957803183344460809064115095792182216812121821801239222924402041110774149051641972509002124821457200587908977167718587671468491907516121823760463811197897095850659652498522083702534863966851035623766360662080377321380597761053872166502688963063706288588107996080352510637748119610784373688331852765649655055919021761123491492419196802247195977670888457317395714183408943589321889037343836388764297854244953054288685554232981983015281402452064729534428219182679719385143814480514004376590898644471588237859685774422757192105951741203457654263389268941906147826141228659408987083249852445531220795036481798386420245566701637406843275202491715430828773221393392835289788583914592292580663135897284537523606788519943415307108599897606573452858495525668005473622022387941744265733649371999763867497420649330441944147574683912381513171179099435891556849896963680931378970234592360982087216794537644206987516084803517235969050870077262966120315858239374871734351377438533593347830758988211017740375850206236490746686447819150832773958486440175699255142404969061001011792459095622516072149066366561304929872455727346557959483954829446356633440070213382310494620261385907125932916978123705023420769568562576713077555625851567349568536214043189447970781957129426590832060656328501711606660377760450653326504788887091170835451066605936546195553104379179392404867761247640211603891028598152364236619916467412713815296946081517552916054262919419049364786456445934554585384664573066155735792020154560830110414847177840702019963886200965270044320683321036659559884829726211999108622907541111407886671730459781564452294053332383459235752254925248515785724997364985574185051180587062713027969125936412707555195333078142690796461595705864034626786405431179397939325315334692736756757351100226237760011313805506715380268425351737359694600948755599058430992499374381631582128506361808214962360032784717377012617628398668442765677828993829407242314002880789852667334124886484488340377877886672999744959501049165083435912361301893038477225427882410628809562247557382374038310557995431354642423169390201006285399986805702910017582607999250394419222399523031338682019410566336141139184752937085282341108855530578273898011213341835724843317223675739982287169622100120436610246641527518418131428445607498150198087282595961107243374640183907305368588633236383915565724773949076726649120266657600858381912593934453962551022135963657902332138113076837184010819578558351780027361861250470530960364283749262829898951546472136327832022114620698663450993417787864151133902830561163683842535018158223409533775756430881222859412783651311410115299082155714145327471593259942456157975037204290401652333001314565312913701066949793475077439021718074895422207126240499497990919951644928505794816064165332141954114369108514637785241296462681495786623436626082708570608679894508377105424029223664859530891060842843171136147497284774634893287918935810599418017487749982904792388955481149199119971014763475765102393222764432543767025530400259147259647738541547439707696329317677189916964756220042566333229550427780971492924002597511985819334335298963606645888763703727789120976573819485369064041834906763763081926220252262539630254240737345803600714480718670838733632953840713290680302767744795751668976270717779441134895180457643716103085852504928205930783032973971507196366044028606866998718574483296531392212910587488844175218487459956993302814414475215449766801025840001248361242443578863657956245408782707508693604294417228596689300766849767352628076421360115333217574676096270094412002939255157151709585917382964962855433675309243524860231665596296769988124147631197305753522189776379671846415969842832056598034169943535757774855527474448743990868217581317531241360098354609754009786445114317862698337561275968564871388750672950899041655637277076716251295249961062889758872335864902470817595999242311799768903223236150713134316335754542430222211687045952388204711237766309685477205990375638823535358869516414174948488589583552954975881228775237989046992276033638926848615254339647464202283450128060004684045927189106701990394857098162911548779645502811698700150212808730295115345988567434937880988380752867972623517604462477318358069738657973232723045796984985587186455062457002267084485777676343550054807783050237418059046715076380456812518666909263654118073751733446474226400973871067490703603876788448965556883879800362186556654925933212594372306851619018789104316472862632267872392870153273969249950122133408579732385338731933294274783781402102654943691124003194157704128401609114358909640914279427030721675233261579727739406399697688007884820599559493968609445176573149851731731298571358882319908549646923426065439445662210413836974306557685354107040171093781750250752345277584500342535254522174718469269086639619316022925838815951461005440527776770451323333470837935803739159671924938595928709760479090998729278556528666337348677421606906619425278156807423365238372485728194043961896554192611316666468712996567153687848008111515992646026813966915337102960681079976559805673133629083956961506467006039298059073891218105461657464302273154595793763472523689979516472262963291750442407569902600409051441121959990425759897556868749828079555970557706068185752680354492298367149245539253279329602992700148366156453189880536428586007238319929199507569996385701211353351226644038668705276843671296122165566336314290397095864154961952610617196423484897068046475066012972510152736080523255434181640521665314939000182409690745569263965292376014643942479137622909293313924984173970571461926863342363985706409811955634511271582984087260575580313148130375636450765685923007537503364737966790041577619022895529479446045232392511866989840655218554774280814436690391169220111591727280105611994300542858747424924067935361806781364171806865837241405709016994561631550176268765621675121161153460563409907611067455273838371411579173170593704216764920197516430749454273990087461627033808464210067314484902471676768167778800966687712548918198553274610169246122066486574655716190619864773625640005810439158408772019589899193804424691258284927509587429307419690324933164869963779346838571895181148741014290523292595825604300554545265854355270426892257059751882644131057410278356732123921264187834713093381296541263126588128998397588467961038507654845472965215791879964249162780865185843602514017029118635927357351703082577302674201940663480776142774951298133061588530683217170115848526071814543578668984187656577642109837677535970567388496392470652217149824990392296218139758154882162594747014984869724326184830160343848788688824280248315734811086785375411874765835778865235551251323513539543069470117342630791239836381959405042836717107817226055615363260627944737567999081135574087343038615515583563990875402789672964954111314110570476040055500435687097275016621496157625343882627526688230369595134243666027330419733166657845320515427851927672456969776171481943703464614584319374140930373980966351483017061118680537361826442251299431662444656716338335337437589078986336210144273307858577838730999348460405943419604756441136888491230955603086746812978252227501550845770961731551430514045460772967299358875404500492647062926314930635742611103658322993452643727353369366015736221634908524599571473823504843570609905804076790389068115994708445207069827985551373124790205003700743928498100020843635905386884591721327294177437683555645884832167693128332346595418322053417831419290650558719927991275909149965012954966223949203504297808572266652636211226696129365371397463347892553721265882992135857761308369362926885719419633071473501306016209841855115068687373915236004554502828017783036511290501393524169201918028248187555074847953711124255215838554910001463195945877168640008962134480963471536725221067156396598608805643266905250532504524826563305076044074453399604620576609797471424661452163231912015167055446775790301625425964902310848501109189063945730619574972286403006286111858520790068494862249737364665443703029922238606475522420832887639964023862892140649924439375149644893877315254536504403441481595739405055266780228630970091667784924369065889275643294247281832808546755283832920605239907781206314683793994494573534602122879479525206580179920700577980013039845507892230454943400174970183482972174541945668373484101261791886969888747041739042063758428330748307263839180651049883656085454306432496837568981152428667958024545322047577788711541911970839255160498471572827030892646952500910589660325751516389165147544565360009961241728741885977172891478315188791825093988355788631957554904156344116526248826304772693579007725085171888136511359059495158247254931844487545366128955849169987354011966136432267557613574162469279862129609160504773723928445297771926975502814121717327450013611497763827866201651131108505635126541140455466409057957148972101037394563712118689147043970776589636517993082319697438761568295287121389576748962261325998172247605006973093396763977133258233148220111360725926753025905486509255742064755701976327967432021292240596954059181620049950334680310068266456759723044890898782292682221809774670910204103945834742906336628366375492297892666940782730333728853572061056523700501663708841282235085916959993825177036948159412149792863681426182941697647709359392363284590444648954584825685360636781772410324433789039802908560928170412725055283963905110914261481014504350553129582936159655032960471844667316840067324972303405285209091141921452000258658046570604507739222074863575242763632837577868636101498239876993837490141811608009159020622479520303464992651471141088703509077193039389399580494306811331540361543788987341815788250321543301427944778312015843768600385440289558713154007947197149726453906200675783756895978360558601296738528829420320375253938239391185532118341488750928352065258702955326681730559403008369987552178076032350898582149635657788331955595117188276096945334700876672617999731634745572448546395701424125329561748075459936758958122575979372308181326303668913011478018668498604713887408638865131154373808405744650053363219704108663053884146964921143196593575661433774605274900647072881718100788183789164346457243457349773676235030287653404997382661994374576528108188038591456178552461426166826213104714725344214664232127031057876827452928739060531014100567868558409407355024725633938462866199847192356386639225951729515731379706930800560288463890774547392480912085272680913508098544655718126094098043659140916972455880881629552644316492701172902554974109429974247710773830982057967739694079378141890197226365633740213826826851783819525258018403486426539978682613815644097553901431354125202976215975602754848388047506387436963004734471043144547826920507315343878622519238469092730210907234056173659977322173210820621256103124266078034831259408227588069853285271457097310331893115437552998009886818164198259839952507297776517518008521047433677964148062641109091292481639111861579398372462354415799231225561588728992633373023206421503495450182917513419075666114354280587946072092091502933610085057551416169396537066083842583762055250916866267496915433926708912967065929267918152293921186678732884059039039234639114909838708444911703696638212876635679742273599978232319389571207647733292168431020557024080179438041965509785086900454768489488946048553792422520291399639930256903510107661200235611123594216518841122593074149130351423119909945971445601328531810192370734839214239973225116126901852971650039238915628513726033437004774314452568511179275677190056408779754705252512577935053148015650088947978373910618735744203201589033024931894939853825033792219035192229470130936298439742635759801886381716333596096588600650271918608522578686644285629535036570988776435336315993100228166263673176664276983719830969212899046380211124691529360944384392213216461706840820984199498483121381266172278601190088034465547653619924008044178282479293571405090900165918392997274850874233710367999754096779597536922491275596608997232425137521941642377739676912681909884164223165071052880823148517887431778636892846632781395516269304408114511587036641252771813271831505251037947859720126227246506379065546173813459147850034309821410686987082212077272143445768344498018441593674085733140862583159857934074900839376327264698773936211954885446875385252234359140629648582752287910567081065377002232844388206802183344811562892594177969906630512765190203876448416612389093525478260794395117716766045566759196014066017149825685520602187618640038243036246532481993641788564004638025822166690621126905580032570578929888043355557515449876225967242086184621962040775710606156159151803922219087421653355993682370540072956739605045357550689548275571360283122701319039965675373897776918448804696888538384117450306565238368092509090038452959456603999469975837918691895148198420218853196930426940005776710905818247776489818430833169358831743964681901819916252059541238508735051713770161859559651242524148322212265251997270474675882365120318330896600512922251491682359661599505199652603839250234638485955714635655009306151632010937382652073755714595361523501363253367309429234076563492967702044899486116179416379310895761172771201764203235961309373444173231282007605012154999473519873498135340893675858109992350661677977983029022719596206661852893108090279206144763867762958277564542756472354734571921485125315463196531773613614605904117016045145495508627236516662976690110490392932227706103512187496883985664844896348960168492678366611311666823887631475466275771778968817896493257032147622825826253891178569461596425511018690926836041928285644539141713352086079658259988863925432959529598427826518494844001511297995606915862533469796607018349502805725142760445804042972824978151629463620091273136376817815403376832968491235294380420678214149268480125613781962642246577024823411371233595829701560908855029485179491086102745109654639762386255335972660886952113263469444260172525681287019361356760670877589169947025248050130719963590275713930254937277783312632191867134582182101504755207003677705420175457516324966626215881697628537872684210163932448031906975997931786938960028812432796552264160475225738543844851919800411210237987351263931055981033276834932404508231949464466709121153432709005999211275573686876176518662198515514692842823460518726472886049898732910442715373646494609824409352562736385976093671469115966406017889125450503071037655872131273606085462029325985516615842739968322206566943699812534798379807980649143830819788013315064084881051137185110114656599449193277694871187792181080111693301773772509573924294753464500286807263181828221214617460778217409455980843493183338479692659506767957606626713159406932262803173342265649252630204465189621757496769543497823050892092885509574906985907616079200060642376294727408501869253086935666783127425723660770581344316374345764601072732877632336641508960521870794913028803648499002785886117129792465835541254837069203940099062954146257602989359359399955829813752780956125683287039918901186882720897011090151143750820712868493936322361891197376038492408157668900718288452462698261651707432654396909193159359609757876559431471977824226788282988899358677536617719651588838834226671286592473537420326294165661936646114503549798514565422834758750472464773309989099676564351114499274778251308149083944504241926533387447163345999699717846758351175614958300488200227771809551449180147358929403415960008732073482872339002819363692347543740242883684824745839173461628701971598085159069451947870069443307125644499230627444274862101914657859317221951253948512828479075641599530082149808420438493055171744409824366025318820178946948798184541329447827358966489186156675149863149894161850217343814121607350759695933163943100351295269192335676869249258991331782548063645986267007255861947239957064548040585460958315535927067173253627462515995011155401951862096844909942164398750785775931474732037793261258679678596898304824677967174369669192565852448303495786945710785937247014394392527329439603963468589167985083121340489884246981514470890129715570212598841151070696264502151350073702486267839100430884106023587462470196079929990463320715080671834055741171343529418614523418412878918945168179668127319835807568428523200086197181185669184172849715404823422362798587949761111708686300647576830517289895155436218334227153521200145906488603293144732709744388130136217699831704885262073327432309254316994000965864272032314185105572309757252778098361876312658230519981778809311903023167197665081046883543689846784845890641001859234960692189736401578461638105728713515698211431626328124508584369469529575994287168990180604867950894903956929541777456375679921088566855497412807827635204000210915660810149268133842473587904316389674474678476512230053198874375432646527994829289396176661337298688429228477903553377262736718232936814932915172252408764050214174328414201564587265373535509914899722000444096494227058492961466470732897507746439894122082694389816986937950076909608403681285232947928214148978076972001135550358087368120859463841148845110559468315677259373610488548035373757813011153965647772103804299710194417294591593745500789765554290340790932931713430728747090257437185666037940598168677751831115768420430567373496575272380173598579645655247100823724523662893842125002320159308256206708550332741349219917325634697969862321882039504175520247239563503511056134770395796629003275326035381990380002423206130192827867404759732283510624542124605678202272413822588314647078898551624968505393100691820065340667076424205047386891299875872588069148623684455055233891839411855758179801709332217047917952238352489566637414741993556329269834871118813692895900679527502651394697487028698752448901772914769101521548759543228736867932082877039547413567475275869152286453314508708605798394151615179548493036315386666695769915757360856358865740114595764435704539981031636245848544640345666800252483303426880338609009030317657775846293642859413998436229816826301884002876612827757404996119220845507252771751928375998565528421462015392654116022230960185223462550698946800009353258242187256753563123151406145726804183949081433094569744290569135495402809211099209475941496549396004297804796463418092141570035023027077037565004181936245103857963070938836062197782241596346980486561880783068763507444539396184617686809522806946401501292396621564982802801239421836597766253402340925139724598102459208505024093285217840076478074931479799148421258585276472959699445213510659869762357700598673208327311418307386472229285404336514706973268238294824514361566907084563633291433402310945823425099082717299828863823356089815370072230620171251220633526234799131209940250565747948935574995327105093654226862628714164029374813319443930142542968399829805809831712235973628043929301890220483037497517632825175847399726478235409859791193556485876545331090975919408860914797064760603917926257191920600513389047026526658973972039362289961687522076454448514855609306459507079233020406420605204553632444140591886179405371553897634897508000226242521078007794598498707330951119419068991071578218247626669625096567520565609284902356743874195471344584236400928770417674044642662551483782366421127028253413654793067332321145424533129135335174969710543477458588272071408600264777459176930418200144775237332220291629371812773322447440554483917208373340128400878985286242757770227746046190463696530404768158882773111345982572303968363314471001094652903426898467818425952434593169609965588915054345857377187555497183505840249462217638897743453815032399378598380842116470047678746107498290374938233445390161326756874256178507045960672980292488314549858640905952506370351732026866336935085607139321185278672988544871717928044068530373144627605500927790255605046081835038760170693789709081316340959744292389476310235881119566158134995915633684541966065010522023521636532149807582860729879767626197148183497611523208561688821161681022738204865627054945316750159656914483358474239758480901010034794289867165189649579867547608308909757963315764683081931498121398543022744083189908491692132895685106974175823359434055278070627754183649998689350392678748059684466836134477274580452596229976778182441571210924335640336373834002079875953070610422514426244023288528238054947946131154831086413168411218451490186752011343512027061075337914480081121907556417356444603618276305886907816388146187619426488450587208166899284901978580679311243965846216698923131529865574061867733769381799859344461911321529140782213807596590896925049175914660312961029025414754123273947554205987194357017000860785102225262257156649273600746664117718007663710983217508253570557846972064683735617722312062763648661231817502415478388519260000627209977297520084464616267365356738386774251409013227449592135288374971972055506774069343014706387208345999859923770199628963416532236041526632368077890968647374217814471074238310627523188677305611839349179898171976105044632038028831370113589782350841727331197586583339041627990760238088658276015870983762560631885802414199549431988967488576007330755190524058391089789480700194208748491757720302441926593655400331343983306211786906087600355524773743929230542799613228203396580558665296186068130110662344636047821339754638786592888497370021087878488321078526774841919417332780499265225146895057349594790096464016251162168234823086567374475771870832136894176323959702692391063502616887685717982549642015004046340974350004751975579314174238904058245435600894273282987303588642636820423872546663346941690956189417207128820383035188839991247271857049011210537976085466923805948003890409634320380154564334794115041234704321373492215867109892774900879056954963777925516249919618464394480726844668024838855365249707608513500869676733358854833479168393904598184808061031167502876331754207129622252534561734507235427977437980216824399812064528215779436265053353523988196092103064652746943205953365540872807196164171548283479507346658999045977457821198590674692675959606755283886412084965976399544386857874691537676503489019839692390691026621510647101257468881587993807655801059523397844599573748756472891878189417517591522982724433100721430821966167464371657649376073336989684034694480919423918863297249630058441174065311693360201069808613912651684443947312591475859701668537505617568477473980585481080120836747328895345699888339537524921106691928949117436223738612135519479101248013266202141222054402498194941538715362687948077116474738511322719861203062259044939568348437052620121366829203740849473535401635136518581407596504849185799348921067335823584351877478218396610902898902083746525395311408593812575735148946695459528454252584482692055309818092426040407129411824040422841515651036548933105206518039363661385113912985527256222683264166345382747604787579952118371075277213579591511990521084412188507712888103313434351990893311179879107762078714022758758756630808014455361139759452640637534911264320789405561002694925369141588612263794919362526495759927430464268783798105906705766202847100676962857623620400982077333279446764808571577483648085579032451653309204503761662343840664712075565059267695682432196000541542540486642564598457362793359466951987235810944744655595276141034282936610832580555648864318703674133161662366599601920065647509874652265457273004879350079098365850146444897608116416320395323255372211047142620689196046626304213888537923594341815835601744050201381339927420917305167894959365034197620642544696066105404432270196195368682631756479979835817287133501653488549422484679037069515222277457465752091556223937589019207232548418927308373264843267429187133286592829020852584462648160827737577542359056201526560344733873286855935187159308527975755912152380310931580664575646591351568252825838884352902667090570511961328329400277069684654931729418102574707873436449999081070302411565747582785674431228988538120444238590896843993434981501773202686922461757623203787359647947575032595149482352706403682522056185098087241865415540994177878538017320614591397708369772998492452774235257204647700623422533585089850066889117186126732708986495636789346106004576717364044605120053168615008361602016858750316203328466262093845845265069768265067849214759257733475691962603386016423047293721751542709164041484147975590439740437705393467698118112827851310440990747478992914870906602393983750651153672626717384507224241951792818759300753725675078113127367400387337691927553567407303727995037993599338106005568677864848472957485954676176042028289649454359634265524083149342529341478086618869549809841165138271299813886046066883783600195575137798790360822149281807328295914313729037402210696243417216702143026536712164145511978645191438428749316285420537219799954337488866456082271743686673936886497973844329577112756614440132661493334251439899207695482101185967766372007620389687757002992454728250250249719206859275031702606388177888543745886904693214355143853607345904475776322256744093654522720050459836937885210644107403076443280792054142658227354210188753788300697555016752133966373938415941061387880226222550780946792310160350174107052843199581313876639840625880530479804767149072605276695205568020096924177686051975611654537500530019235182736253814641299302948434232140661074491311883513461577034627675278580635410158708278900325645422514720468111683646797595625555420924291834633851118124076591413388536501269500060857222238285160730710034711690045166518412605263184906177597484991767988071421671871517460695761323881102268061643759347176688166965494737672137471106004242192163587823564285860083433374704445412898528835593378861882078518680032266528325939687977383851176280494698144150284791313755721526701167617511206048803618117389872610152029987692938490893504612624214604958920038076200325423739184041412040840162307559876657363505722375444645239510039991809100341404115325623347579125297724027698489351755002458629615482079031769143887730180691971709834087176658353733597615608190870962075398564531005961034699550984310230658654718981596244551315748359717838960232575184567679229522947965713457923191746735811817801973332845526830514092309003845352605445608798073323442423710856730024644864517952613072645426310358377406544157502019824648370112289460915823877343760894801561675360200287647700764137611161068475983255508849130281392915082727156000915799140247487407137372504251798254118153187763085020465609739083563213172421938801930773681392773043454078273865383468676863060234222785581314985764867635485721466228645077899927511133077405615448706264253166498447453092588532694991886100073453860272053013697048764679633186163741529797076885843335972837500380396796614512421502342471516729987131373750804193833989229762414289116991565159333304071664314536957655259705932036184507825237771360802841777681889712736190226581508842971930435391377684964945461920887757349394626248299855199369989800529298537279938108826670354823045234939058640380757077321461096249318043025965106390010375149905212473883500866180234633707706381308651018978049825196049086924377207900016757576531634407689729829829181520416457217776569047970205262112633736776684000220033371890777476218487076777618726483833835424661388722184771542857167472546030549269815787771841837796887864151748990102273231889318470724197477905085179923839958916966793393929055015360264846608226573253060177604123970916540260235331236192505022334764167773419941077656749889681740266939860954091776331971011461426944673104338696675156751897496403880978430252175841183958746787357983186076057358247113366464703163738737777134629213996429541747938074010355418753946271618356888553094740102608981599996432025861608126548312561901680071059531256900289946264928451156490418442890380512109174515552206996357151146944189464630923740747966176180520260649432161318396905535241605762168579139598947483834107152121654077814724625662779821436524649839537436043811802851249820104902205796682762551983009305490287531793380394582643208555949561173499628351733215896511016038898164587618713763267879165125510638817058973853671784578684570169261990029801435909870705877200860585795817048739618671025055282844081381478900369696696295151621115318264758390639831508985235871252835830396096098891376307043056210350244737372553686473292439599516583916278522328314787719251089843526722560712848772170963521068166551853459077216963343594120723643855142318785570698926969055653219037210412525026384895722091953405881621418480094854852377514940704441953350899962400022646185589176253072358312313643033227482029334857911655735677907306978092506015666028228224140334850714431591177446740121576506668490563697388446664823761886807159872105451312129194740368354771821880631226115097387781421316174383058303447518842731587233871923574408196568179764734714980416092549092995021854846004679405344317411312829521859480520152659581288646908317720707409006959549482722537058091837368655646373128080185862244417904607664192518058721961462812126590683138840533370050302072239308416901938602426586281079055832045068553258111991826304260340721357453172450935428371395102848536632807954295379800820157826895073228886948046088910714036753214113296370992515956436921308520630660805492557510465858226702799982214916682878310452903129029125350228061813228772766882035564439139195334345640921801388739977630007523558837326024204548079749012274143608491831680522209537434512099898952201778072843558029812646585653662811475611048464848348500375700825636782162295965348928900134049331342152640335665863280626886040004575747122530780809284064299691273414390243910115246386459430017388937687467649087330734987606207202572920645956705322702185141931320026771163345519168921960429923497472294885475373502565517823964697819180356207079105261528233977005504648156579244357058554831253508679594664662091922441133405693749862210154131853237195447605596511938692826172059212950631136315434001215003088041413843886338657842998387489905462007776755832075373835260104045764274291662358068170119745467529408313394137799908726361578825594921236759772327241586002654087764281301792089790710269211712897566286253850875100389946186877791583504419828092702515002987566513376055320839138975843012911050821890625969430891160421583175684170490438728674081564564122029008977851545016003544388644838667918394744284115393853661075052860527059173056709343835372190825336045319086380462496601128242992394175905744369054156662568861950864441013294085172991069899099481361200698428785162498976881710475959653802649562390061968705090009242869174340836568357797474497483348095496608844849004392356130586590996493700495495811548905854033742931354966246202439127226959796293871887406058479482423998508522437660482312636897388308137442931358118734283684714649383077569180458306875364189488536588192650387742562765558939955294548477690582313001709061104873059036042217130955317039483032407940602897218274748975647096015733815315447760741579523835128334116640793874601949312716792539322230467335533169246479665190889400451677407464330753000756537119817368800474407110234776783262461071375822579049762226565765681128732961523336681440231491648726591974586963668563635998356758310505979198784621313097762015215482278099070771023408874315708165876581369901435491819055178913046320913127011093709840605744533766544195632902845869446381326117532577414834321646805563590124061806245506272043317930040814346258351422716529029082360750287439124855718969668726051773622422771064377135229830435871782803500669511026692734395332091120780168070059191187564493330919078673101270956070852050489816986648972041179423131813568610751533233286453700838059140835673076366081234737445275541693129126139810424979217330134803381232854035088296602111669012585584884610188089225897977677457985963270996384750908610482893944875067381900642570585643150087858035639429797096564135916319652801675043146586989873002370654676046422837265527888429182112222848344246471921529762022076391737668918540599975880903995763456683334619092336936840014266051153236923327864920629966261578231997030829083714518857623474792656127080646916634236267480586161463680205650616297750907908398039078446345043052264713770312105039416556408509317449485207161645578810744111575262274521495191742975799833190326524450561037916218189647683295251502846110348765501016571650506254809756192937307696484415132575307086122900142998823522541244932155777191325569756819247124072162009520933302192327610312286052696664544278100970665976651566511272957849866909813590013940655154994810257890937304344618762264826900169496326328133219619356067147940698466286783277202575614824928977947191817713407920396104333687783918508207923712123584147244300651977305479297994494395911153858571053386278405139233329126453251160891282664445832424073999650099024854811656865920579243687178257096049006612716077143035791998826998674789458512719850005673416662406408478234598529899318645123355355262322720780152094990547697979845470084935901331080650104950226984850084592747667683901758351327719431337802364586708753063225845650267732141127045137869072451669021040919496521789805672001498766992853598274901208356176847112996787846499815964754989779526429187421077740703388505187692668599343904526795227004819358534549160840660129705062150487576049391920542449681821382430314002218381636756244042075834625185509270078061812219756371378918791832387116489323586800420614889983201049841023963867975687260404118384224155509200762204938135303231436970874420622930845931447001633931265162917005358612533945539010959769254345179549909094720878429840132997403848150444014829105884236184251444406653571815723594294858916786192634377716430806623861948369377967852171367227345304076163554321977571995135198273960365825427247214240509579919895089812208723578500527326878233127133074765115927570851367114601510432179316894359121436994443908710941407881100862602362165163750188897341178353173328562785774881785946008354167856080121888795192952779324819572030308139912581012122184603651570069861139611501549665784231022472653304570371623624301211806247947034723334068675969707037603887530241877814267245331935839894104867955803859693875456537226783933151862853075214443449377506263740246028477488748309643337885263604961624604673666908916694880949670240006779818868843950479545546441749267104091654205745658717855827037252134559279159377983996380300265267807072814199255651939262302857771904881921249911611171037451286689978685060620732365704127038128193984592550645980609178975984681626203726195702628815402998103290532607596038156871299600988851505085832901092347252005067072226448485804731629944207077801840831989831648228644667813153501219440888680801932036044471455111160861896565963634697736886443168384646029505530602411277262954436447321459600731711693832575811200791884263389579187152506806290364385080337235989515634809884353752469759002016433674125628072293966930002227514393577513911022880724130896306064252914564545644353328667456283055151230605531898752768156458110467387420858760057865329999032661406280040595819307945249633282557967613276550586021159239570266963745689953196100544988313050945168547072759296844540383985044955751051472765140073410143079644259089020857260507679292955145483656985182709380708598667923186949384255599451829998516458640731678161174829813908045489417490599093537042699652512858200312656712811557336244471323733951912263997779858573184853064261025314337618164799067706058656362650069786084112180728994300272406519697078999574679956300483264663232648712559934857831911239669529794038503305536219788679247530615662174058022029453876660733819272361480792300580451663901676350542226088559591557399892209411059136607904900411663616601312874558396355626415821410583097255904535314600967444911609824318637814822237911654402740267347434549111631940783946746711780161877678709375187181497942689114535988014345673911297972938361576465948270932543880255432052657145404593006630808836191369219586501464570816957018706226984337822795110844177032562823808666869700145797356287257814195189059383751668103721028818144332979098013961694828354086755192594276427717337459314996424909957285607163623347034033612071090288536318206535262757068190554956215935928266447177733617086059689024202738918107975890893580630694772269028794029818889227579421474453816829229696491791465491457575138950249617260166627171987608554153899041790849295649797792854546601197833695716915428588867531154447958284324977481473969534943451407213096412801451788453168658726003680459322098082923082064884675305880497253977318470976780732560106224372726746449835741350676798851563005622620599327822551056913543088418374842550707700458308893121656966303099400865407873757186016462739203081354017509835787523254488416001817151560722536933503759592343718965305801356193494948220023107060189163531703977353420165852443625597590787479713287518725599537414895509545069588880209673008532102201388348873753439081201816055327029351393008533884801167029962253459854043565789352805042748318559367658453883279415520628828648086030506838855188627870152707126221117701926717939155022410130269198861699843303271771026836958945774559356655281601461136128282365215766492292305176403248473125256337445800943321461086258663045002776654341787469997486256730697252212605167532926319657304592909927374516579701307303203286481849090023588249779076461980597278783341915312396433186093627476776499493729311183247408287623636253739949286789548861159221693080914111655540597235348374197707150361677171438008922785462584595480369233750063781056437032747964536633171540113602113073605432195854788558110408591722504641378266797941141025522152769352982399764170831071357461821517400529639109222518813491358987706288360079315292300431394548605242269329137041054799666013582660306893183610386094958438483675601239721092230602744325352838675147663313173278922961653840299317760364550504151695212401023938072235774214599063232889866255238795344113329787203134446652452461321402157382732780939439677900085080246281677699846552208199493518254104365562678896476763615527246987405365263274639637436432378692696851379924027234592723071641993701040682641343815694679359785729449370450111471508922995458112816576920249448686657851449316512965793957401106596528221012243865420588421652251453721532762757347417350966711084704336762737670980906703968421339282798980264200939062988559182363989038272191105817987179356794479372881616038689371568526447045719266703411813122199334211751516950548054004164237015602503705669136019467687173477885896651763260267977888114146373661263107005254180281913990308492101234504311226931202675430521376643999718548608286143651909067905259965736046659812694440070179876386652738397453183978736842360860241010234592941616688632147432984338916225244887618298672673499795938957577532781706196764956095560581363083788397256956534991240521914593765875750667938239837576797836397852077633743150486544856165628035624135874513355506143717260231383933807250235921875644938443382353636044306487437503023221658581755824927453407551583225312720714329240566786705802965949890142736076886672544762110571311268821564803599012021003286369155501247415666004035928065379192573826154098130149758764549018331234384913795471793980824449123075286240364863242037682799172208577958895070059029993467877169510938232673231710876311229085932524539731256122015263726224025101538376962140528854554967491646789835299175661908368942885202997555150505941188788927142034716596154341002897601809157958316334692923473824029955278031799784622657330931928141328897678751182873444818660157559738109310260947091902548563887105902915040795380162622600458572501241514061627005299277299922168711023498294390953260513867242007824020424945183831825534321671712547467779767492399602118416892272393496790611773190946304513497145284627050624187294618853237504024720035855489791838859194673115681250629356625324306734932180597254255163147714830104586056912072564608617800872206747368241890363051967289330790909935146292969729687162795990016781181145246699391485340769633098242254371136211677361136017932487328467237002110786601779728763831868817409167331119702476347850368511327810882542500033299231711680626012117739531246063595625290623833072383417111992482844862498141352109384215414397390409621496389934609889451895117174955537479121075110510449519881440639260149740653559800370784941780309408182433490243444150891898987212405057608772029029448610047018978306360870275571530923483910059811175863455619148249573618653132148064180718556607240022578801940979559264837860118614814778074212309928100212423393621178764963004416768118696685023003294093618561018865455226602516982936005392345887278588123180225090808847889903503902526469303615151605469176196326152051613968229450365725044249093068623060786654482113922260193422509969915103699400720266601136764978610282181911593587477389718496341634803372496808282229901939930778056080920090934270178705390502491118663367197259694474124589729681599082400645339517168435674761817876339934648159614002865209896868963701250984288600016196350461313518136030038041601608410329467010966485283812779566568601429454191798666451142209811838495178180349518229590219932492493457022961129650928110281315989999861456399580526534161883898554489908536426101259522259225639941397549701326796489788851721562685599516906672934363411873470925837303049629623920304782901888622175986393054219937729717840135494166485107288508507777369759098430139426319486800202067764760498929089479578073509887517676288475879115218493567385873635981027110111265211610627288724790552208154345412486920415090045862586699086476522267362183098693388627813131591964189438150497783162084679420660219256658540628388013709586416461395594476879328018449640604879876629701504132329847849186946828041761521410336510209913788708597614973220236960698840919601394243359942835825122845070006300625252996440672451849543072137175335614333345523526748729728071728970651235858578252911953162970037189890409385162767246787106916687365706799209546933751003134092026509628266340516445827929624678376110674386984781007066501225566165821198316891616561603016938858345344943031230915476964393674382609914061453905885658878402244626951808574219847315335690359914914260337479885281947458909812100756047304430328769462776999545862201911570171041312866757745049536321075738367234641184713784341323555907297860844699662734400223512163394510271159845311260313163766288864776140114245596859664980794877513506360173028762494351705383558846404654141281680306411075082373493032856631177001920566771788284448380722716609748010311973920917429353851872906514051880813538752835738520444909061964689102554228027663708764145145294557304967566703596116912429896062348967168419746774737965961601032701140407207670013518871924094507093775679816791932541044239249024973210303848111669588816618437050066540151418612914030146066590678662133804143064912497637126265493044047785914595705507133761401231064074315748414631799687894390793509807496404869791198999041144898573818198546410637826004232628406949363328137264381512744573161821676830981965507666612051527417704377870079091235901237907529655190854354781044402788924273226132003500485641574669200615901910403992129673264366269039915744808030633170790002171455979276933659793752274961247412761901633236566785255376799874056582918817348695650144556132650414863925455567840396941752555266483030353419112822808134045543993793248941224113378818185394901260021367328995713306600737094693608716893824729282175435338131137925641127915632577686206873344655730122625613562338400292833462722263606737282974157698233557940415605479485835710126465182996473085155535106587627269480746449757401255515549355630380741857416760862723816356187729125441232569982317079738390159684617749923489540517542397211588759430079867547159703141848664573326336659699463756647613502229411331147322896409409410981947583478279838130184923741381120870617084680213911210729524944301726731252119155156055119917757805822171658344352252731488549230060713249699209825270248699393270055121034613231585256060260065849490860103849405949391387089472975837804019225230907140300633731522933276086347301870126978327801633340666563643069035047499566786224638942248374913950988478781170018662772237078207379839776592463523129679187666155989643745040960424328068142563662998610585801202581647213734988425410458905604718111609788811493009931393056572559740847589259303851149942495434860758204672169873387756896698774880262171456211413410167469676192816316153626840809221520796331045409885779688253528982328224408378897895273840685860511077176143006784960307402449743369644135598951050895926959006444438849789790876154288663943888067193034617940324449297087836368973500639291659922364625635101276588859875080078882544134377772130535746435384317641181813139166880030755262563495184324379255347219818820720504114976868854977893038183973753879420981896817748883746008404894808372456303999099677497817362112674261321115658726441903902760224860441254226872303104655525292813014302213920770548826173361531873556022198094787330546169705046470494756912732097751242263288641943815127755824243460197905921747929173300800615937407579900692439081370471684839462481562682617459120774404392088769467620728877530925510476189546216069476188660554270983047721576940142707296052467620455138882841260353112727302650911562122904256043054634914656030980207005002504015019405995240642328918211662784953342402251482453154550373183467963544777225288167163201260507509058051722468574639130838053212675198151670039255945742165342562962163745938009693071333035269818473306835758495223808786790406044640572528778896236972034730115279742704840397106855691710964893485440491820455729674470394001705668151293849936548375321857591679242284873965861012936206713386409993330644026243184253513499670558484324879074752361940417540565152654233064908990392303231231769943016479769497253897933788194973311365221032698936621047127448793378363129400117542665471216761014015804308388483971802465890353178528403266348212312290695560270510818556995820376349753689626341705887161201713894733833679394648786089470050697214225086834160913347071670677697061223310562727531092714784391657410167662032393470403381906122614686559717738167297248230440690444230855588892560116978212354211231174924524163280221536811522807820274520057568800133084714929858684117243696343280347743108215520043235046873291808952731633563843152642000237404626041903403477404247040518415868960604817802794060758275402223918049742752767864646483580199164498215580978722635456678557957017211169216450502669237808095010812575996474445692098490875155919596975825830800496967560832794199089540813856703010771538238518299818779046968809329328463459557584523613373893367303840307146601231250122426236778588139941399252905227958767179140827168777501463772272328168632262600385320973163265667339894742728581349259787367154765126170377829854951832666738441158597349706052719856967233390639913510237222890566335408444207554257873360513041998651654702099625990271189946978300626518236188482012134317591958428819668228713406098168002410263302423574978973265034160156636810199426409987419694210888132376483563188665969097881305036273588451342632521074394653618038162969377566366203174689016049198933808578942750456390513234816397886673688395996757138954625817169452974363798919790329799010831438757430191064437151903853156220513025262186997543732687601335376951485292644815344075345157711325038880170014877673932456672665989432118881295869884454686143861651768013890090551041307504183676906791647603528414482993994773046532294404189873522876886178737760522683279851309254164646246503535224192358144304813232519038530772390212176087985111883845302324062702255182087719008419005288608619448646904993917345484456228725033151346830285850058986318543967522827937494703906299463272147897457588686587851940268529604295411093255647210701861914400852415131817257234525140962907550054103224720755493977546218044965443673706379091217605501532751251634361546202090472725943224767460291137090527200530340386213430376056252886834861789425411591692585799148990918140060844935528447224256505285809575402503987239875921609680154976219443674435299506063921984668502302415657126644620761458455890608215035473441906027103568415961916826950453316746295467921857929735075174557916244108346401136151658602724467790067865245701029131281995992065800431500170376907085387770882479552686622676096618152687480950605308695204217439828373426470544779867658537749318698553667849591989242371173125883739824327203381437201481222269378605729219427932184615757799298485200337140204583141928792539440986859829358371462235121280387688214918382084160443690792973602340645399375732106504207588453525010884728447936264712210088318721124866408424534075558656969733050877412389450044168084131060521228126301506838750936419595029637384008084192224302544964518788228843618970021224395679404704117628840804284398678555353683528333757839125710255177021115407694302424314252732831679789328693907463537327112698543263121296705454218661676862212903772376975028130082398619252352953168025387382802485879458991840829669516181486925950933425651365168956465141785149316508987162119222972421584076870800286368835879328470706254466042760339766897525811472964580892251486407194052441066579369979489076553226323128517073586970804851237873496175002650450515686470670677524501920815698079482902824914539023204020476721787172800852290941957902520919602230491103614907346736718664108968899992259950693102860625014295353003498790614258270902631335822984584492948483278560493080586015994642131926722213657024078071083229204269741614484449182593365408054320253547721563239536914295045628460194383994699402171614815027858417502622941137042182273911568175721504464198546501310615347086616420873011160452920456484234305078064109975432436163657271423953895483226733971016275660860756012657784517820389901483603414188789673856280899634351623156293692094475274338690512607195977235286460450380200180800680007834162382535896219589204140485682482025460888992450813317313276300354801337799327636991542889684774791884791137844742447158802994789954315950571219990281475758938641452090701448479545879751073978585701938692888145878492292516968248849620098873967278182795992037314158333552698176798231719894614505825162780595932306795365769474278866549365595799798754905933682628942931387282776607962569833218125798892681392715772939334835070500780598958554005409956105636464349538083322526646705210831073396630242397644984600465640843884094536504122985159215501794138108054677565340130383355949985468267870092445731920083943188453724126368091530190237374035302548339673290685287370254714027861104074381436477516778424996970481315572111453897270753978298060101147546842347815547779293358761094111006763038806380789288678660662898910593959841066160157620322338505947670367308319611790665968551924787498024594022371691177804819093651944921860826482594807549831039862294047594063077150909140473675856947159559151213899131007973861766070104371182705808297711234894556273537415589775619763553657603902965266138418852631705614425685919786124915200469103563479459682857382749589506288995684960151522197801340763866432015606727846821708254971852360730970756334218459194657086572848974756586952421956943061205664565053248497969590390416203664289439788554340897597191539585423165830871062989740248314584308745178389668757971474189258470350266065144305304061643792391982793151132249067117160108717475300234335370028172833942316993210166299471290459268859285547857544735459289601271800008386726572411715314547218548704767265684907071928555545541708336529372249213174604308014932823616520662559692061092417056635165246927942666639081966268458318829377470613990797915007525319848299813427825048883786298211832169101920865050735980076380754616380289322927747889558079251766929855709386077490282926043775510185027950298354774678484406130008212673846259946372318640362015086091504651858789129193137355685445382947475328752108047421305468735630840181824381218314987742708854241778303940016053168245778421881303368365981284482890118568760960967217998223256221347755431743659184244545339703355080905564416512326708638619469121791565890891846891981888881679384684290298398782383557225660158760928939733468316746639267623511083169435997406379801798101915065341102690196445055153548344203156395388272059305911194324149289628250144327910698349346450318769504391858450481173826168673350515341159526033981179011418234398257269941712835306078392118429035427818742412661075628710527899627883591860872603696550390661114998508956873199028210538684815128026739210741093824109142644954089367421578805605858898175196534032566642382097495127156113218760940378899992762816446218133258871166848547531971699406928669312798052847196370970339792572983701976617397730564133532272535773833144596957795417562722135903685765657442927439322425242670593732336223804566790032979850559909619651825243755182725380428074469691364735920444848967233769324340029286545693258681970098973226734919156023498689883728035509993181494169904809365204037053703857071878208577256037660239614239588465159554182761012106854922407196857026176397163781678963826834798577617908841468242625220797428669465803685676124736627800618708137311080466758478607589959003147679981879687144194821948512497287597725264956087303335119320934716559046844506310248928157834414203900479085311385234621376746942601076434320529049838463278154192407754674406557327108297931323041119693816163716772423226242779169905879570076806088979239259605020762971886427002078131371070999268997613931296364169903461942412697368829327488520803278732360922052477415336666966553365676491967209180367069042254860101517655953736470106761600230567972464529465488939171060148393436254588216366461192133178478189570157503941846482617487022828331766290250826713891965543237556950250105039295912496154784918915910152425732361514394713739252576004488648799960157837171072142733094309698892346227079165497918384051106457271233808804605470998881715761692829792151780326526346650090577883138160617009715270550966723053683337148886741191343483078831661269123586837513501895741657282021321769773934417876488195273881001519710986623810742383459089389871028572109162156270949864010568597054833197032337647241287051882028139480493191073340673199793354204769016011117860004948380672857979437611715904643563272392523638953186198363621816194604035495384152532323679031222598527798077037563188260598822062407803687264294505356775788292211559676770792118662819017390950440091271221711729554427400525316332482395979182765556863683769455809390935682845676544444926790868054297622974481992658526486705508470268926123326389969890256620728765126064977415837685971256439310893447761062985973414057252877200070226701663399384486386342287587302646342088326325926612811816718828921413559574235608845349734747053853527473852508611363229102898940486721231302050981027392122358623011636809483285027149888904758439814608813864976411023845382716811989224558557335024426816975621132369469482857108000037584696800938349823501878615328996509636218988916668177285991107138988502584396079502896685809724056254451890166955752114109075459212380296622230366299032187120697906796239347212636407282196395142903619667743277334105505359473424123179218361334071655185739232894193330139990064811378893902317630982894850647562306556747167402059853385514090572976010229302514754411120586254663515505558507845135360015683385663558298111347026972770282754900485992838470875262261977873791520968303896045962205511706255738054510634290717775782477904403105240165654981097172770975590101736619142117682009282482276589676986697658414355360486237518165021601393433911420366597340335704584362249197140978282003350929035470598120850620840103551213687555008968103107154631056658963670468966625655752415388883528589835178501204800621092341546434271975871606246923318482705755399649918590337307694042512308654499855506777207377742298148960018668318418816100280035212934911880443394509692915945982590289427363953356330450250529098272899688998135261046821733646239965883338750529766242496295799373041619425975958206457819027585331257742917727442876356972654549949057919332259825463325740392032990490868764835957900480588111177261045854183548213352639450486545560537767295941962743799903293944782049223282547347355186868018012507536231038286258551075241398822761817196814656537078468252613555006901777756829741234241334357095137004321382749333135206510205605311348600347820584814598927029639417273075090330841242505411044859548151470538084875969407014903916735401213193290171033623713776012837369601718026844049378196855554679565561404807791869567240315819755293556867229080752132606387332661564844351583295119048744175527848970361973577026000249846457175351196421191931923141060689681574721031787772100825796061480083633106008692159865013219621543692461558356968691467606189910050834132141326284654483980811361766935516734688571404221319892743434936889046436194373925254728504697428346840085563076615596667870690332177841429431596080958981484612746671053079557487880033176147895188157270283574050903306135216857459298629768841933790600360353763540632718362883091060140005744168937248773293813833353096398728474744504751136349358899497257874010156540294756769562325166316625746327207280439949157625479347371964042316850779638606945036402712719633001125204542213204153372104154625237536170153005569155013879220563512366854029622230926632853021136600237344104027166068316009431315540320792672713723287923252258013613380112166017308429906363466242469822195190308923604274421845486040065094875026442819681043423445640149847423345075700206136405939912366470626887018583121981598769559161491980374267374629001629534302099400203442421286059314674856278858418689062470426668892096567794703469554999744606587884240030287259421744579962135365861750679798111321229612617891845402463234297829310812804894688210225621810046151608178011377534290018132115505276400830697575078767837810415465304545253725588523018961232059799916636218309819757514200829190873805779330204935789364851622532916272264883179282143004597517737543828709440231043742124292233821098925396342285479725810080278530396455320041911859760180376433312938603019887843036296491104636151970385324387306680984407612976870736088466523640856990361691429893442601422173778691839728455992041824633361456217917445676560750708461656882256185265662286117999155197211282492972147077830210959127071154934884497830327308762315607604505184843056670442695466146370392305876056780221794720404407573236975147956990589232987286924599541935369818525248374926156314615820883644089286758923592132757542530330754794294755147629092843601542785493268451778814671907490984507602198191174220599045849300763861421830421217337389032547455705961522441170426522451864784392320073863678580089434954255877985372404338244601198844772345626206155043329337164165884487257137476759315294927658715869672743224919910003865062790047497275905998545623908989191608832763144933233150005484401148641262050811521640716627644528638671354118547761309385042042326895687393497174762872131146789087492218648590829390298312765638416887422315791922832726988403259285991560592433579880516045658768572550036196265861728646073559522651247216618455246221126113719949729283755401472243439444871775143764965865816408065164732579592079242985546669401920358653749093888196102580865111553050383573601706415767775417926721770048108612453646746270472873607317237903470519265753100095387712974516521458640209141070639266747298697471654819579283231653341155308321768859572011508823609185208918586925106482893322274720464102091434084051905062943990819122531360158509261117771325747167715406186633085387593535581614786721888021416019104179982265847091351703029407302963335288511228716114419223333472867472020560379781357742038724791462305955938487575601801742554026641155286374113986616315625642635520411575491708042699604389889828465163885562852031664191766268429352573120045862091239852649735146937618444888270005385174227827438872739936976404236002962680992479649388321478488609073354886305842698949697934237313363528651671785361524893070935371143219854301929701232132755835590308032665683998539507234654407526432716496388768810390647366082981819653990529875039841560604124199542836493457234506472252422887764645838527216423464574201890229746147801616225664088367894190544130728583692705829551966192931281144613901820352544808351261087913304601491745845074457930439698723853547908506592340802030382233252805258915179725176868084691678696318523407725781632851186058426795017435655996150722810094821329370386226142308288690590986174673827609467203317513200791752773644449382674962552885467451224106883392287272096699710221604321723298213632862214157438204572451629688694922652294609273359987704242613107245666077904222234112854684763172252763797415748266533088832612493594968859740413905282713267969733243713333784376215796065225913042964081577855207578350593189681472774500046546008099946935949305799221626378395361254730431523989278503721187208676771553071803363909154327613200814010124490162643753600618654774338970349079083976995366828685835396238013350840300015456864473895778601277769510232298767576390505025969886255214713597486363359110504199058675889092614324910250316503513565289445921750036402422294489092033845415474320876185437043531308443515387148679013393862232610300809310911819665728236928176535471519885598016114372377096916566596095497578708254796740403661941433895662709765600236896609634925244835118163013062768972160710955588548017768464841719368027035261587272112001664342437925432992789580651198949778490120654516131321254359992606787880027464262546331265503070450556194799429946771885851347947592442185172452842827219969639441882351264452174863715889482127613199543175980526054382973690212721604309477957261109572406984474257539669447636898711116689717697720127703081659723050698174802180962580612922965734513370445883194062391952117208177474824416223717675559084435443357274268725672341738824197972416190477790762102295673256661310423448277418742923434455655505516411757814602709332228724532902996432589730055405824087125577897830877532603042614984434343073260300995914837880604580867452942887855064346750719767627546622601056399777968299823714971551737878197840678056359514532823665940723921574102633568597737327193878026685547500892896676962338877546030299902639867556534766231572965737140066525313219926698246274962774165358768613870956206347987772682689923085005734875352657680255478600052803231212301742695160912420078994619263151081039816282585987927911861981986725051335285674177040285854000677933740595324864918639837851813092736267744175719580548894958384807774562908312315991945328209982379131276692626806949156051370615903907978383987384626107590096355816639847603548183091688660021389612676561886646216576174866510473234933494603127651547855755696254772381033494173901874499099852422172094361505111786913972082432106304457638856546396257326688527399866677625724829789850041891567755431373688781309225424882131624160902835787381512818915061648016413204721958175314096678553792050106194444954135634933713577668828828601743040661808251808226721062960926659119324176643920557391282259239140190896579793729057153510052620644731904214040164293582277836951649496472233025217171480519588834277937369543277041595576202309833192599347338203389571725077140829308979694122050973851675005893117304253454351205074695945586971820925212031302178813234701324767107113504317648013698267173579208379719603950627481616575086023969218062074612448536733850731992026647678273794578666345331044580964520655977846411481107374042158989780295436246891211779160173118198391743518393382511529644884610025255269960410150947222091835936251843643267678590146838416444515367032060721185448172437266201084104973970732532312930865712062203264176855197183577487227680317798018927907343759902463836816105703252426363131704193945508716034350039953630138459274046756663202118671189664257734537328177724391069743399396973003566920925889816760506983686561123407897795809066332313743187842667672747975505122589772428084652707964395960941125456516943661599307388408248691162281267890466335768627514358538776926139826815706099523704953601562979821426461592151331124017366789359202772630419666861792772964549942445553071459149679527940304165318627940619295949475851434148865293610128855834101943018823796666811452199825631420078838545776980524113330815388130994777448347765239378449295392432338679562621654481092948005533035899872211883117705745042799272636267613504162837731529192632929532468838067116427558295626845563641832595800483336447695240377720170655586790501829019045212734678263408385701002843834241087390928263721203124158452981083293395183731014957990042172518899902627134317726289688816673729221875133822548611844744975925035061200519873985697436713249870385712716519197581234261575401119648511332117605351719410867710274236623148937777270995264741533684149692898394455293050083361667502485953992262926338269699047882836925098196671686049682717956576879396977036874080111606678807404284140753774202052189933191692994832563173809414889600126046770129515599035399694427568639711929222906719847829809867644520347706602686335634184888481411492678085280789173797724580625728450841376622145749232075086514909579116643331802452445910924767071092525874584100734244290763220145565074956061496053383081839734946318914758611808587794968662647132308296480147940286373485519002930239476895462824121866904568020195787616072454332640142297716628061382696650843733050787786415953831752499609590386438148457632025006415626563888937818856426657720463572175366683894471854184067694162961566832516675706621960642966251422161337614594152047629690750996612214463077418984749311351233589575613169591799241175302966018000091224239979980880166489098941230316598060823121057179109721461197083506531546375925377396009918102382864168709983281966954140981352107610098701287855357542336712764736330489805086709351910946271274099848281728200443459151113644664627628307670681175294545053840922713835218707027147932560692798802235123760999896259640415413769543000608457947780053253630868924861817756085664340128377022876542438565775053850706360055080796508776903767588120591520384772726854224730637840085202599053454796416613808860224397998873485591814236458214464595665934469720498731283198667957079616803790457975006926494050679510557974043876340259050753769336162335591751520495606039878718469324038403974872220522373334319540234717326313050701783890850804601650335346449776228928005429376845778829562568814860075713806605308882835663286206853269662405882615158935726118249105754041594904100500874364672166603254798547573339847975887702820681037174607787471729836018531145624824989332174568068140263137830204133304808130020249717133096805037589914146951813114680543304653183040857267189731260703699575400909205733223018628658871437940611502175424798259775806772353523405166936457842843297520123056828486435555365894861599334364224072354537023639543608482211973704067055408398861513322596101893619069432920526782728134143641319928191952710508295203769055830174575795055634959789015717094595338782138020516871738781302010131488993811132763455114139446607995953534674887388084375629392860626009484937788953167371637676499223755014832185263498908884740591505093905473077346892276440487259028940946741200121272706057098903320545059990951332415184309245955221760175947562225215837940141555331956757163508520920790582698605878048650968754469705127298675297119126157867361169798053465909826032629096231511149896995703154550402786722722955266998608783729650103876486818285397999724349900443702774629075972665164148692411954080264634994313300587220374630227313110706283886221726390393130310002364359624315632623980669183077363270387501132696807862866740392219787984803792179658218196858195503590630855224773730061092495430187581240975133896169111324285206368690194477951335119938033282185807829785110136664609384162677096662793005666684298625729229685507408959238855876657391110944314596900309363066090925471087208992655227449615284030053584012593980285409574707046701034405952126898119675535076662978262219622516840630250375602735717661941490313479635261477453411166017553683362259733155725814150712610014294390585177285763723917030843184399582074881125664796729813776363380451203473016713688833555612817290188150291643955537024225611229661667341438652418042523346300916222537942283644393715050078371315444236635396919717525316697834251734026950359932857366922712568743959526601265146574000461535657857910479070994646610601637719788052433935812007114502318278140755567235876983408889752405961225031982862989262145091474607608770166659386460227508144531449322243233945034647813530316453820477090762036487843027085834502198139876401981047535423862742173434195834151589743157109508566217786006254901923328261675909589763779163898304715172041675784033619467999155639621224943270766339153521604230172621329049670459184170674751147988668621649504014828662459585865396254987632938214666082883676704495335097681674101027953394550761434003331249381055126652323242378613580216021850546611622090909744256220897026037377866630558198692228560923907035342461171069750463310706265264054426934008305438693445626705672345005618404565218828293785178098986998277623034125839807315449492035319360454470504935156653270102092118314149423667485487231026985731827205448262339026658755018072825132348831419443079477548259050998998758689646555272671698966932297744308170626913750631368498205253015594844128108596235641856994280694916815804341104381862487760707028703914414709025980932431431079555262327965761086747534082078633177994067670559100193352087700279558218533141888079058739001075344846960706007811143837701051514821100200762649399935731507074064241780275679092074466356049807666780038898380087752028449438288978645794083085268684248549080799396838259497780522858265175295803588623318772744854718877532589607796312711055530029884892036703084970928666850290988107690984397754114539941922585904477671325510829196050976133536653427907780344851000957501266464280904476857901959803351921680284978786381437724076114200407979877295249701906345069556173513397227147303314649183345960612991097335491294896252472576953555539912135682016772898078986865423257112554199202381357037300654739184002198697467225775702371339054720795086562867602230654349853852497640668425690636796664654894151831083058198876751324016869731254847435336885765275173386232965682596844568886120924549323246107116773937572466337568133130231389641135840042061497467393927370429258809249886253102732978621281966265914731058759887656377920131387824574070111135354439833971864242879143675834695182671105415242689953615187032429623688474503957136261673137880156224600851472814890609932852564760650293051038895359399578002596190940067329849351434560952357612922739310634794713031771941106756019654270306793150979029397759325369546919997257633940327983794070931514413232974365437861439155871893850725758407174671806524544163623611063905298581767876803257479051979741124445732214837527683038906565491510114433249334979016821503549992112679879802487164680211981143356546889695771830203635175518383662043085073498259076924595820034680118106533390544940363935951835790295586279199074894777372603026733930581609389121027028303689632526013011596109009653211865206458248288669795880341981209758782595504824090221778392864606879130400467029231029302705643670911967734642996519882133698851348409150789779321606812059749943063336713094972360648726311175579737484698182631085214670619036064159847386980149464615980927305403637242390078836703138655809077483911840300103302375232205243869454498467956865809139457112273314564493356599686006636932571925254603105230943154539650682375148294513064188887673536396051040805903479375338900331748147619430803832795067087666720049874504850463469333430570469952747989033294375880133397088479202280201952816726954148658325556238274505920315517205763314535041262363196035146276989153990454595066241481266346543469821568778047741954601777510619274553446071442030198033445802684073513786673398633732568055692628104206205413342951716646368800934510940345813496314493141670324623331546055524188352668400273935470120127949215925554020667792550929724156168952688195880333262859333978546173751543556930586000143720226082279605088511817525345054024681506905711541170610122911342696002789764603346202199738149262181671654908956323380754265612485474154397490517972856512006410407614562753569610699838133006120968704024096172990094183141892620185802432442513536994743535090140267307829718503816704954829823286653580266521437048945199401974555460528461194635016430759301671032546417959091269911443879629905954043866758150750433905291216603865215623414265084677431700546874822847920037016115069743509449561753554577294944024908596679135624984695513471059367433548778355350457918051704787786416405614661980476764730006525269410240020668317241132169489225961647526503305354485237667875419036131946207656542827743369623257388826053423182416677802883027933758026403340408059295206296404906210077298883728979025809783293740263979822009202275972633378401322461564448877615131973560918362984184386726026764693921174921271291905200311084811376288736749869737051085113963432493378544763792518024904481504537652838023451912248460460236300889733971125622894301049104184313933224116096335391964543012699242659851627563768333885069133153151264038043854823418741024803961889722535711780897272884147858242705860712296147989218722629717972316376264063787678617746165245879584152086924782035216082787893502982758231915585579984929047623772668059010723281760948038603991270348025340172426400317404242873612276430164614471993345159416878028241414659426699007655642511587084570545529444659108239703294057288882193077435698453657363089733419862915209918193699422170703045369195338796913761319241414567579014346375366809410151038731504300936110406862016243336655391534752768034123640424529942265622680197613977265256856062993015189948541546740465008964563869962308339032372464351278217905560792088867253869880725103481912010306424708914209209754119846421715435144102677756248410158062937292482184901044898399739078432483940636794609612318842920380953177581960618806083957043438499828484229961345478468684237916052993113712158427686472647030447782273538541357467933625292774713254772559304916949838991286759181473795834618788187211475143073515042072529000620513243122333375531970874033753119360053521490200079514305926746622561550478549913210825276456700808317358665074516939139171206846227036580445651649602859350053092029500680508560089263722898018384677507148956898766768730494409987179088673315694824465111859311048307648634086328403272828028846129084456354149907761578316231141907601504498344636638304260542386930061192630266875703711850840347034053446387413148790665638707066845649753113748574233885947397863695342881788598959987103997515135402639058014495849858874397800088917676009603647577037490815990059084363554985397844296447575778215706136577156171473636617784715481135590047608297269579631398092248436292631311757028000758923134538379981341443859296113985952991210838531779496696623780915590734843452966374978735687595431147637607099807684406323310546920736002625569474182836824569838915898263342006423803679941027273961067266678523388167899519120343681311480999911746498931997336120632478076374849277181884682896359561654548097488007456949546320494749792555592268598752024331592675423503447479302329740758656805001727270995743721310961476144500382281378303916025270493948201968677037587138009415056063999330194840207748637813175181170059029868300561248337336924085657205841375243607227492117369873870377910803653497969685482190096554232680592715602368640292855488002632848495781525822377255900321319121594140660046278002582021048648749403147814577593918804301882228907623160641272428073012398057383599802455258537255102122945381544833148415562862728176310097989978686166319103278338872913222376292469348820095739143273847729658003314676049344706043137210550138051367702521389685078485811228863515258110439878741097528964603205004827273898260609988021283645740788899443425536466498876481310645038647451711201664562089674904846389574616294488784454464085809338547380090556761725467012161227693485774525012244656417039796359101241231469280860208327553303289468197420596302247270969747531431429593244208124750185998482930939869323411123451410373154631277412861982953674889413697799354353323727105946794864553525315253959332226410489351710186586926671465356366397648404703951676334029280635830896047461151441202998080423890177289494867509655676190428120864757448155871478500014712471209904852335170819972524009701623663532956700672775729010227506656808124816775122131474926987106644704871714242562936022790190904728186137423883235923486790272420840596461271931643195175890422739792789039360050746666129038420360849657358991995240099350825967722864622689021927674849842550731334387079155458659821910316051036921719366224455399159426091648467661784916902445585138408007362482738084414754085096944531407236379416916171071727419843729864913729362847796778825163264839384705887865507399198025898617055514048381128283394020721813783350680129536793040922946156711690878800524326353088984473256251122886255311406780932772736342138328812893873068368369779622807929172973541322622087089819335664137178777315367345144611588217078456486446424740181251571025653168902017996237352377227995972835485428456245459892363414696681371487329374459249947443596979631191705565307975639679013256152102647001485450750625030991480279193557750490134338800038419689496472575080154271334283913683769611418086459649991389307905920978975773404197236167250907640841048572133703078162511176634469997812116050051606398465428344537624995301102452224929818303957841306516024890658205928209972792320872078913060666207242395625130488776052732546328127615164828767642134442745535636883944143275313493259443779361683495091676801426504123374746521970373149195980151372632642673515904175705334809763736829956587930811259329768206304298799842528443315236334295902241816213862214161850491612794162653820332410692577597436223616468802818518603153678052067704167315418915008932733858579194068719766598346844626138844456188652545232064118241936360249214365599106302874705215763254419681918430682901688426139967992590098080997041117176792865373201028376926208011159045171057285477035579098903755554738239992336195068690361993015819480740111145423311353014736950829069273510172369718416013098819252645274329477549498784499116426287026983782243520571186650675264569806703563433265418011923033405387015195882651457915181335899980995665897418808425813803555416977991560787027864175025342901157256422592118601539059333725267414778830540612467938489834602947853725530958160986946538637640613686432607500183153537125155610551708385875162671547991787133566487609586210986073881123456132091671389539889983851221473310355570663878043506172188133504455859221861857455518877871032399233180705277514736251117973854453886422498101985149745733079705188019713221932336069938263275755587064578176606580109859889091212795561229989840791383937342687687711790395264876888761749793864601536800509347910012673945403403653241755632416137854585471974005812067589915328123863539888221252487611845057336655415394351339782963420166757573652188144509594694920906717948485936317270950424806917996679349174799615746162583754139952096576749829713418411376096729098715242604305582861860237722492742646630750007684788417326369492195645753011874400454064249914696239991602409221041352268376314309694630364063644368140517024752328481528691255216145667569163914011592363302074332791203422635529184195806307491205974810208005912094505113370879441917890436663355197278924369212344407185593312366747100478138663678022786864256994123827202633209666810551110305176696518695658273566702552957359811300230016923834778124840049244989321483927362992346048515633260788423840400647252762272591641303732418609809950189083011072720065144070172787822383580875963522850547505105035157221319694990159391394481517912459026727443564902569130955107547093377854971426785334370942811194630039083504360037787888913851145211292016732095149835412917136734466236457077563551566671582220039904359120737229285590542184720509765156515789507610426013763889540479576009800182856879529806703577472505580862539509333332099605545806224368418633823701062474040338957108959234042457706797196707225383838931798104451119688567433919400418201062713987280839377692725485973339895044801104024899422681932513425881692165011969627919583643639136959704422924777800038659717893450939237729723038681724655634056342670797466299736547427329569466125190533858963332972189170315064678897251156861285690951270594072419260630279836774477131090523468915637027585881713529890683580354899501000297182606406470322428332370602624655642404385595975528699367818208355600452458689963716125032994201711444429545480675344933352970201490014730854324025910594304074944321923317762778713308044489531245342549811253619422539512276735052436243550421131814198596112103626438739297817150265794261626025289447704359404379641121303386224383406829091592791361994013882713261847674224400163895681756035712827448725151775640784786320865713622388496089470836021955756250027194004611546913531573655030273140160021515973686982854392414531972011212602008844616673549090027294991906265920334991735372710634497084183971489706844486558664258858985614039815276987102040288927639850929164529538217425262678308003538874218816399189642219859680242693710919175185105183224966520490816438601349989375724352202665717644539318834189726895054108280331814840338474583915593302563245552594595819666114204149900340375583192346927249089191255235743013126828901875773491936394069472576883623546457149519700511418370822751087526076136494693298471841028604763264793312821385757647902063174467390836475476989067947023339402411135393161750768108407285866355106569175882356755365866018275424508555338138996506939052136138097016803736009999395327890931424089664532639814682411657750237838410802403223627017707736646175261006203398538831918787097373551803351316453748238268576344184721875966911223474743418130859174587993139835273374948650389607642196327248421437455665968548763347594176920112547788420186843663402692798428159878845745327730647753929085000575284239550992550906229386287321390425523431276468525941908572440576714273076371417018493511521740021615714778695195942373777802899863773752741471499565010441246914200100634665043675799166608437687203744775725733887898064136609524156772392535505388699259700718086934337687142728902804935291371420632322464640137200618696725825230875217918045470359711069652296974631315194360951805786015857566249907370750708989615945384248648238962991287898260737280818442066057333424893380367657438842282159573743117655743555332822136628033436987877372815299592952067803433753655129230789944367806485078534359849555576633347024491462260520096825217899112705574697734846796177962261303621552448215729350705301551750753039096814313265604097507296570859409169261613771485565638911568914316533142893436396208859471008840352655627708911522002878879845809206173556811361977821402614311785736260610994272580741562325343019018042809038735081856616008529206697822114752412592385481467832701100587699041043909183624085902638948493979768510496218171186640369430794364607452541726290047640788320640156286440820386381653668149518360396747546735212611561484073390251308442629429437037738971868644669094402406903697115247353427424443275648156799084531924375116631563989313692253237103383261059867111327195558140926431867748802104037405921065937927274401753035470181154648820500914715384835271638966072582737454236298975364228719115659689125146617226356717700004333411657977563234883143943514069998991485447032105023468070641640158981432330177314248356856017804768108656554275104535871790898492565457805583920861461933204622046369958478509409702194369894427393610994954371012844495437966872702948093136817189572347752335751814703708955897012131848478619624370634370565709855784048606008446828090021166784664030637789065542120575444271115643346660614778217059680272517443535146672761563009376257668469739211363187593569963711303865382835072980165181617071234830648407711545705811583478038228581615962729164969552908187362798465644873707326664756234983719475105391594794268411936202094731505572914782495389332284354373773019970179185426611311056103229746690486050992082732730618047736676279172998567503301130794975288375213679119801519231536739603336112284353828060449359100724151492818444455515635134436378088940472199635058698620657147581708871188075903852424554201527902740762220911351323717143320121476606499813719296772528910165112239332021494232331911761625580446492312854168989998463073326818742572791459686607029764887830773725827660285459307368661998746928524406329003031492402644111686945634575168315262623697579421879111951796897391936512142361654855337925214644351122448887573273436756333665508141384507465158765051375703005756720714233780931112620196676333573940543351693862646852113956577844323641022005496840831978824109920097885457477216759628589328882189981060651359707050807626568583060915328515665349607110773178149261329111555946150497108430596765417336294402342942774541845701900870766579944328563345652028741887403271384280207358865169730669988470688196802929902349802673021320943320898930398128854272871305603765752210076447542399929471301080736075049211863744078865075731553308828703294741663058362542175415676888798219991446719596383476047167893417146272580015728036824779306868058272666284645344256275460418660437434808382736382045909068909961308900114283672720039362368530971131760069587340542312298000324801227011996039887664630627159711164932357724093713097896350927268637961845856554812248584380801387821930679710965554402841164514345221031295491209970573736782819615186125484685376601249270632709958427521178038044335535471782936325376740488025914756084217328815073681680642417434809095690681216117061149627055183808591861259550021113227970062253730118377076296177211020945751103802831918440191700308594983313427102037300861825659670898087349806695570378853374962937157676263498479930183206347831164417245637867222857293838645318757229605345378096551294391389812693997274750000698116163827291976446250470044334081749219972716320067678106934616310666103213074976224422950801526805556611216543739179762548795554930702485202618913127080438843590801551669390651862360506217787723690625507615342728199755293156830173650551568588467654353142188435130678471051762073612911150234730702716103437423352768675745364899944428952638940585607868901544082445599781531729832065534558395345743566051521884367306607812096132541874006837601777128088048211252663987148997495426969780899186810388848608400761676623611330448454346220628967584748681359854063666501288975245210114203004535732520710559701776352728746745104358148400044406321851800483828778043569294393970827199852020267669682078752216624930456107693071213602281105516789965132545622462637847211453909051508242000397467972239074912196026825493107916858508590753072764299948455371350632964228892677649059578176007602815508821930369307217596046787391381205924298381922093976534507918413502383566309514939111115772454069563862939533061650062626113049009104348191144647413942155414034223556252190048523756374133379598311021656383007371037993353805805950343651168529926321422160096679394535923085766813171749031807581222329367243862992089689936485296721979203411884607499222503965015995792584191249384188756998595280257227809301665132063254803585681542771300699004758277916609392689446901497032165247173648028272982210577785269025207468696189208595317339662407029463138384832378263751764896608864155742295172275534044935784728545300485555246996822056593529742135857892446225611593998660207156408348289987129464604029449680895509308334296946681504268586208014901869725068918410242813178600312611051695325072395868454117250823942947779843865475167960617340444390065153611814097623643581192967785574662894676402176335442692067665783013695865575995023508057445559944607323990371531037114207530644077739176027918764280590583264525088960099351836641582725541460508138888946050413434831070384882405792407412791485755605576160840192203955137760085310850602432322758597404844798565077734312947639848921271909204086079229939696990749303295233658108196452766116575215218794937279047801753559573855181514120046126620744596668338225654957802093699818230968925346604322229264159818997934451107344809444267557455721953660019899009778037480841290501415797000540467616226328853810703249094126057988851155703488274637300679771679906114381797849657644698698234468477802139434036746006605269374865410396250346403021885775971016950958562517718340034621250718826707363394860372657287743812024705486743497435305421619475378245909122170182314006735905411922551656254488691914163103414105483606902635227281410412793379501301042210009191016065914108063242329984449661130364149936868959186504065887597433202531377758191756749200406329982806206582956791552181754914297858784935859417609754047479373235812313065403214545089834691031889858626110268094406739407713720692228237036225017218688960412141564202713643941468186109382903641577789201535083857083950165634722176177873490414914908272809350788735108112472139913480743755529416789267994458719860721951012706327030087205003037268561902377305522366513207086599081656980423598475477866332662448680328592913195317734734959206501939540363480923835971749462668227553027616580880979931497506956391155048497946715183013645104389152862854928978660265639925616570802183710880598910553734736817807476297674697049608613861798772941708345361003905436472450915233062255976946075352209245325421224449150851551119562693968494444726832660148781894374679978204891284055016809202563761078589613900858080388272352640118945334477959023143244759527641752822534457564268071334330120420563809629963494668991152120764253319989439421118402715120884504256313057314945329823695865761446218931421978818904168113988690723483500484931047915894583334821828542015665643684307288610098390304294389455402560678820763398669470243183775765484359541752548043307318398912577727272442433291581930110039294638485021115995810246583987240674309319659642056870291927863365202842069062189473842632944337645747179769065008229971624148310720161918941325578450921416976330051752528132526122177397057206604804149224354058809195083459676814203627954153484677378858452800984438204995227887936629131016452420475880565577608909187443166536339073990606701294172007612284440845735502831193630207929298117752839172162570258188492921540297011444415222647393795780037640302220176570267461294078942936661896704608066257187752106880313693489508897234164242350974048608303671225338693378119624597710333796787422130032001925401849302082136910690641581112487584359024167316811589182016249921265161550635317344484271981716354435600954506874541838902316085863175363300106961150449953829046869262604775677192462884077283485104694677443957078953956547844014695641795400129774898154518990511844330535804451648941883532913686918126142852917471041388592030104716293425681180778734229001591626755374138865652972210470630287894841315888491969714291711987975193469811765978819443101033749032507875453458301337071210648057908788759719567344273272722298600217440695351534048236546959286412175795436189800182824679823759125480302416195091297738809782197504259736497081222016354097333098731029540750385623619401525773326910107149294951499311043868074791642377540045884506243924313789508336388983401509063537167129527015649125421164243925284438383902905688955588531970856736881266992052974124462329752161712955098251057574557893351390908176320336153860837714605251134297522965207128141454681446953929486157476762727062292908309406715718382349320157799521674365010757756612261724202969374105064309443104008908359077000324228557206988733104857751393246310354957618877316215895951032844468394747923922545677844652459957653674946620754223238962966323039554368747752665202505634069275059957610410531022163412107400085836732141964408775321934641306837533629216943912567115232894681826990632685882633856847032556466907267170828661259933339508026473240624307186942854043606102263601904807828694449157748505747471948500779493435541695787544492586043692873604971193921285998720042242286922720450675719246728833479850610765170553823855838213717999110837391163401076884519562320410103152405158764928184902124549582402309873226593745539510636220100347551706274841622640278213391640988784850683270630563912074659407564186217948385183438856487363821838741308329362840628157879672758029352406172794372615173476995394731017845059323237638132627185613905184592831321152436164493853202085692407956673083470167106473810342041564743215306456058070642590942506607914855155245435789023529468914349317543660932213645596676068739141619366393426829255792382230889339777377194796484162471701340449645654180617990773939824572857453283462556994662957138210861419577744801370863898038613362075976632651449596239810918023305893629029036799146455694800041343561965953070016797292819567068711206288826922170962291868969271719118250887034669256278777043900389368848186789887699376363384078555580502381989629193467873586861474663975287495840624663441466261094605895884915064301484198755588889776398431337990372487716500351289693251968327265080886272059354968819385307287166740415863549409382903746515127550740837626542568604326788925978107890408173664314414169425557316186240437678272194263616093437426989059891066353468137989735936102856838136672620884417450151057670014212976981177120876196274484770339454873833305753803418216052690845480709783054223262780175952976132131194782748001418520495974289116514756084067353021329677024243406584361768417545282336098000523184800272751960694636797589391322091340847149201414795204873840673053405762421950382196797349983559822090314138793578529801298544545512038113448224996515758362192564479288844744213727220990866000615335830502608457496605211391747098961684510135620942600446237594129534755777305362540007138449181448033292344895563438014988599157955352411485961217508066063455179992269321936217247393010350966721535477434408010023077170416482571061923532968904747544087710148428422834216005099665272225746111374925929532364379726564540198659001453954468381261699220382910660871182360174930467890896947195825699199140852018173725285404318312888217981491180940952393796210198341027278296118461255139465506277842093350360531110536429166105556086284878337385293172447746756872940256055784295063900591297750929468667428551408748130206773391981099996072658520026808081042461471524430973977254657901535756645035997529041677747956561692042286799224137645948194750270089617496176661542508403084359043623928127858855156464151405306155555722226817421622708685298910804560479067569755179142429730772418630778278712827932635630632296594479694862962913190339172275854506745399816838260745809894825668810512373630726573094634664832888028801348047166723548404086248910498088396884437022364184084210816890695597381354292002601925420861974144550576481933991546628493187467703379522159798538751197385133962291075991675380669851132253500142927747796787768982254601988930324245478574718653594460393481001402449336866601124880176519955200422294709037804497147488591144157346497545789976223859010485268927932904793004297671843988876881220891051602406667051012066934477189780757093182016685326730032135221117064760955884311666716915979015572919546455327935549837147988596523279523709440293888718309237651580257935814128277830813828624009382010384622828334151887062698268755285269142937714931215914303243953455741691518189271385706527432887892494747712775043423681704626525923936907920355093175856325212757191329576660244881297280023513800370945017960099302684290764488179567376838438919129898120661499920383284264220584894399866461110097320381474294753388125915844559881984774705802067199540423739057024325931334860555578284764047556128153283492615712686878639374887683743639905043787831954176768857772874773832216870115353379981846934874611182525638615692863398055378070332479114664923968522866392521252293033960390606320785346136660587233507820756478914697623376675256094574403408527597853719598701989284624532170854918707233564999390848562233575635061568508245668284411144291077072397776753726776273188820558673636225422575192973742185210929914346603200032284676508762200278073428979815182401224894908612124313261071409879965997194597054865463228639379772953244317352942430105486562459581491086111323967128075605535741462771261015890671352529166005726197917612576079645815299168001550988047866649011080217430848725931056365493627234876012963253734396577175370218810963511865385716852884252736880741294866007088342671304689984499641624300453979662138912535836238244139613795410654093475666240965905425074874993781031665523877455628986120524369664966721662477026966238159147959928066248888465812708953761863907637448121893695902655795809161741334701111341481725353657888193570920335841993085381666795695338313288410939340914035780275673239787965206153156752275755473961581273062859990479976757623850319007253913859516152840226803599906778608019874294086105583895006226619143305885713926618504326014449758342175722291725404347177028140558708197512893801766258245322638834814100893842723529119702664280950742212046800631033324112009225367377116941094960216924774781584131494660435258069692625598575426444056069590943427415821597356400973992127995816428803088485891629324154969848756129642435028019842329324750290134516880080540859925981012349779763635867387718482821478934777159701772761416468037257413758071700479333301161141347477991162451287331787995610464238080349572305478417648511662066499144256842661587215108461686677791436039559972277293956964473408894813301558713595818910637126225869149791727056585984372169572563867909833322934448532525227175273095007548798329315564625454902668612913285783805179516340170564208525039790418944154041622322881111826217893691451296540463705195088426775559738186280508179365004861954293954712041347235967817703390348833938133616728638905505560508632559922963403012422254588165392002852083985841767968113365849239656466824955081638137766179083086355137904788446601763002615428069671589431082516616688218978544310370589591868224240884433385355208827604911934644069451557335360952235833974584809852021565932358025356093471966720748959420047041115070769364026477029977783030783984084330708827586676332388368464397637519307332412041661272750940660743533704800238826859185928696594011466194894147043178054267586257179536106510698014210248913161032736860772680882029121841751858883440781718201175895840782404807195952808403682897500999947928915112641938870323993632111910588669465627472245055023224532401121220185137251419104552231282499307038779354290764525762462810925262129437969381077812752411406971986293699785389527719276508896980346813305702764094522024066669673885284392400341663894374272653720684956223393856473497779234092297499043682471616626588424453528616889136180306326020823865370608192521231157026259914111622815665798448996183819501420713373834276296871256394083146172835248583264635655571875335399295352141397164272663037130163841724807275701127630243348993421309111049801528219035116932221419048090711820185812799533032499863200877595943173277888576531628868688546365277325257759054679439660443040032468612286947436845419397765526492276704313330948913759165940961940226170246043405245687326106707355512924847542794361835580250920298536354303227474110885680736497374525169260716331689441934744795317709088560814545502569632201374429745892528546703087998920149711141835617257122578449686339765183225393953829968174144336071616011352315045242334669138444798809994711455122740449247911542929783413741808613989939794681985214575446065610361503693366066022732533437422433901000470806142683823233483006783172694791208635801479078989797170430589481161902600219118758741570602804791597959162278076572485622771593786111182095115782070216735923349798671434157492144374318492864331182114977263168750722241986303351284655983020949685639304339792759322572744615267568734309926543445672990473336316076115149664266677560990668391925029995728285631500613891594645883871222182747673781618977154432072999859370904084997105391799339700451510688503159980433913393507808334043401697157371456688650106686712029301010004841563808029660419983644617674453622396293985025071742866316860386387070984541404640708239610721398423567417793224488981371387742890997108520276695227497114486004833974848280420702953328716530857079470073150049783377326504843041881270001159644229181155067853607727658556478449938306358775082090671858967071009852426768748695075685172805843790247672747689079071800138517433170597411933563461044985033251127767478621790694400137574025201018780717282641399633527897453229751283658051390594867901260170348128848141668115345672283944669533118237396871393251311545527040858993430974219261157543131369845218364777747815612652956082210467664231661435090525773633018879274801505098379340040508562082798240489249474984135651687225138385024081956746169768996373896113876067263672623257884354178515523352569448173055058298223428377219655312590142872451011230743977273872708295484816353329943037480833879434953343684045625405115681676647246945494922823255749398213251302623305832022268123916636367084241380552794444026304069438814602881789909124273745009482405998375276686101959458640348151383090629120244919497261604873340131211809369138053135846917588080787589353014147802704178021771357602134253131642794480879075051737133249392738078320481679285733268986728779823121380462787257067627870398224126085759669109002794187284375527259199430822874915940385287637238364471339935133329617005631120201110692638242954078832227998468145104145638134126400818439170769274444236225690564744054318538322629062420883240484032194363694295358429330536450224767636736437338769025042217183261952378755399916026481491313971013014943185983275995907002617648553736173718929760018676732202926900776548406572404305083968504653185768053808241705916344734695618351259413103141853699943240225736627812066578113185556769213169878201515713328660600629278339463341942506677061333869322945851536002560344801603486717057722287005066441189449575519409423188387859612383375870529870670045153228321222564795102512473913543157728032462441781235435520698193033158915576434843887633971269110407922298459790222481879964126090332094197904575193787987087532869542506943519311134851290655963650427868317904876513722148117937310330607185836829397993978651297068596374456516316241325713463908888689355392513577241426689448780784150047548185603089626088646808477284852620435132328850270531811767534032599784400630720662055798336996187553606005313908376849424233382588189598122851847652267250165422158714783846994762601737734343273653885997448505620245254205225986446595715125656171645912184911544235574057635395483174163385620718574343227740980233817492888526474687932405023146005328755436825093626666975468994394728222730396900102025554226039771953446371587567692356296427033434550668200655208642195787673382315523045451681436593058688243597985296146103860132403021660926486639604446357830147551962911281385931699181309593471906942406870304048454283166935881629953102807574930543220323703626180084694809749596198981051744278511423189453590920685646125829830610621093941897316153830422802179538987656071550495619834441954334540832478999825222242293453643458225788755217694204995705046358366104973191607312118692419455490819674096255847380497361082231754905684045319963848706224712691419993894110344750348738228541339375616939944578154958397598189173380343527744266677571277689078819798352995228762597749516908105088749604401529077123988897457666362932035577939750323195717697766835739401701277879002238514482469610559404110012500839889336088755460977841010239642349784811273357306706149240009949242069769549567332753158828278512534358097991624415279299876416541039131793616520132245985434665279956119501419871167489815741851179267812460824979761756512872726832834726946384374538042659984141425126797279169351800222464914221268403365660403120722522252466190899064698626051579825310068647215158270714955840876581808615557773861362817706492088761876828542391940258498877051273598589405447664040389222811509680424186809285914057977991684433998053202600205393002827303226709678245980000633544999502018345748699358324537352000557609305679154381211929025571532377202313184755294116357476729451554451431032811762859896697035029615038151295739315946988362516123371241675833704913817350260505349007763046024743820753620353474497585120058783862715269593240555833075277344939754732819471827985013463738766195096041731446276875403960596627284380210915605651244599844014126156465347402669430278424663281828038113965892852973958207344911272442419399645799980677315376730822912746855164332298316271667216350997739322996420928543903628748096400988713109883668900682011433368684468660516837565900383887088982851706780396301130793356557447387067356096528775741585986198217360890991122330572103949178543948582034594200604158537329066083247082438193212616215734009888187184599702615453928357275316542636679625163690188008818237882707701297149080375663990104133905312193703862617337599920482056906203597761400497372218241880603622822332225110511098984840031369611664275404397323525928151260753144407871614122167735266668298802625752428011036440160751236947916981321287812525568735006786101612372182681663717039327627682877233782059269478241979557126535115554543567546286734212840390395026629483144103997379733022247713990861872691193463315175376257356830035518588915742209051997313734862651881056338232865509984649958446326590910610596881651143659886218640642586638964641669646075752466983027607992708717757223767581388459817794077003948955280266987059908783843027961367955313681531395737458348522753130967728103284706653206233157353540296059865337353556357725974163140073731926437135060000706900341825181526366231730919103568742388911078556404626063146496903049492548060780434284264462309107842796763616714869830786899874441407151470505500952455039467124127582983520913746098489485308488560742632577684671320674909994416140682716546113083746450069932609855682238757201631753386647561889988706337310960905367383057626035254010433841752384355071064693889870333809597847447739496908599413955278038018345122062731841421392879765019678793213211740687389726983068497047464345722894059183285602633335162140413344139780524053573132699946344406969162413272823005202084015385669751183181119301840269579822388775559042968270576480106813079813118975657966347281068383673978364151683121967505340886400705361710402440966021765857325204734954775998981218158179965829433183707390978515041503614244923101550719275011752615198776630700474789309227042971532910936023568450512748901627518404113067604406822578288960097037805499324592475562958367372538661052355528106576952693521263854650071425473763893998120729121676785259171737034355399449270935456973790843636412601288325625669623598839645049354320916837318209224512958205835170181444693299882707487586077119613728073835021995319669077523807848066420973509068645625184906498636464259240016563471324335717486698800554864236369210717370357292849633717178033696878127614885794798812931332755291079905140799239043568165780700954831316382656066128260461380222193239260376721533454943036076461734274364203590068849191724891160645001323855351363831261073679698243028838332333662177086481441180612932412830471896840938707450633938652718590107162941019600257963721407021850817534274483500160762614410050603919443258289451458915474530789608602445690055635073591577920479747029155620083047362000052147343868075605324775674556662620521318488813308951597770244893952688880870879611003519515402929574820068243763897595222660175760509874510084319748015173124183331602640598500642483011939544748346902204617914223995575629490480406953372714562247283736706611748443282936865124049109662394735755939807175747019234895473913754276650437565636616348736702936798389741362586665831410978041237725768160859459252885278706984747946559041497825541618940131150985616073409601208795862972706351243556455138558562084651920955122514438549495420082001572578620821484665586957816230732567314313149458932009008442789241256497577477059935130990580076720877360912093743441417719001132177861361806122587987219663931543747563279355059873490903502942162500865439998979117694808173044422809377024755514908096256188040418020305243737320547569318719226001886196919318644226295576577949277663776374757883920688512031959583421143269051408400597007162873793047421620465663419882616259703856968427013344362245474528850088968981796096110031170652789603157061337729086481728789508161829800321504873820401813142939157694539245521420385656825965510263306785991591604821707378149290867483064868480643541510803765339911188430374512903473903576451808962670338341402752830495901453129617042720315431214169910014345594781414285226059043520464361662105741474801358805620984491782571392062889517490542552027521879652639792445621338185766646708003743827574105678075027004946947948591863823395314514564944675975101567030090415697696317146136549270398144199007224669761237708181396154058511073102843589817631658703219843331485004937022049671926618350288137297621242092008220396569619179156015871151043998400055405607538553064145254280710493564366495896561274823617824803998511927857766012960600466159935580487911841771952708506867084032354707253512979945242306089233032011001331265676146998345047121728927110994893381157504940474360885773672017206560421483056745923339071696924555376077134746330082260347827498001262545388959665810555887701012425991815261372746901557273755840404892501095035643365415286735931814222023578866902638148004948055248783411079875364190815192198996456182877375186088983697301910714089273210091894040194788644752352897395854458396361506747305854760727840493355157538109804044839723025794147231581431725870256428723750041451489626047094352462106339135786034971595638943644457203003632758356492386417980641692671684768190215326494976195264772816489400941328092246161353965909821695573887202683562277729583588507251263523819572801423643330830275472708404791441567061602000365783192167457094095100324039906599610005356340315285987050758615181684786490392354872678644350047862565846782777336342928910605482634233099143867613105352750820943023922701344118188066913454916856393387162447789813455100670795038873398045431020400086696114212601047040562887833920114004614576127525348653338523377785610971176725034785565776927618401390862961920140348469194055757743246030893678918807586014578940175529402992059550153847605701998845361991748541586983190888949004465459311901276165026862019260096738662928718172539259772841637473915620906598827738536567361323064318092600613094950716435658162907675946103321581206715197878720421372582614980032861501960107232659511591632564300193691896610759408039476364613354593397754293275849152466524052333478776988051047494427574653911384524426347783221612254530149904621367749038570501798690578250504546855896551323717500493999566763067369056690546421573886191091489350440528694522413911319766675378968516889529446963133460999281152114127484575972721838159738232435200209625631161194195270473531468884294518028687852418257988970971972876061447470039464656831738362432825919109077465954398230517819369661338085067337410378258005997253753963148968489838209322418535860634366673768445336676990582797874927350874956471966741135701436165567107388284083631788710888260756205727994026440563595370379816614215456759547364601029195673918731389352023923831471220835133836433366645071914921288370394327288072853112141256810227827701656840596830125843202279264655918216423631683541087425771048995499336306638327568991397495828322147359510074573955519993607443238749420600821510982253319928307610673383771398132770423386926896218825401634910059278079893487886308764771016170558658191001617791555809848544647364981196267561986938518213170900754580427756934825594157427572314085803180772514310694358138388289127805765424902517019970844492316172153499703468238090389668173027534552936941294695448323214188930019764886672197659001273267190573654461474621881442756066494530616113792361416486329140430524816123032081427037790691389385775709875871072958039463723467524383555556595986011937665111477457179782697093839256823632572602749106392102108745783733607334669732131532967694056119753791446245612202288877757732384281012377668720852833609878506588089539861380855329943177588382056291853855583887694465006957098806314835423821317763751181104851138482355490756492191935285001684053370352984316121788967445618588246444244578725517640184467501953924984192606008147738293946705028176542732381423932224773091629505188005849245853864532612697093398407139812161854149217257567162706233399676491750039624156561481972143891292685813178524199927815901545241631959975800910034937245586355950311495918639557650672310752733037116897636496543293773306571848797624670362881589572767993996990792199816195344881876946670621165224062378682321439056099614961591188011138206753828642523280146855853230464984644851486964591269655003740664163138270677617415950044370792709331974340398671890590979129815542320316589833389297117055841251618158371315140797680340810844157252013629673010094158595750231494182171002930231040265376682214232773322250532959547213669543787321935292784700442370198690356742944358687596748393444881527153085918286846093286769742955058810164980402562054645776970955373844209373292583382686241010143286513508712288670411124540868028975030130000344672660605227158262075858311861659811132179677899227527465522476849977953708131929203125661914730433813951054810044749564272759418245956969797584353944912761878518815236523318956849231014803928169481384103922412767988429938900966712679303062848300153548792576156360601883220111662394643260421098871777541899168843266263440683181691084681181767572426190485315160006467808037729007082558787404414641567518299104808018370128078352706566203250093101128082026241421067384779510407641775475106833785684064913725113961571707102505598768536236855117456839860490243830173459744642923056666470030516454238445040813715690034967412498104055585343789710490264425905202918343060486848737446232909551477077105412090995626960787887705929709283176396250587498317337799374695096299553442703921265551491483111748552280333566993200657082423632849555656859510057747590984125617989951534257630310550399363601859411381217871245529464936120869234084172353742505666521436329582117934500578635993139098222045003877714991563411227395228976768125870049851933741177446865657898393668745053412657794954484564508219716977108649503216972453839313533600189506499454224812629213685181915954110175314360530369151893439886755525415090857630371008304446649920355221796236508729048561988049794104315659247041674348050682752703279131449343957031567094363089692546660347233069248207547350643013116963412916542816585021742118276114279758668755132000729616007481619824836557868817494620048862567366373964813139790764830736426893305238619394644206163078496352594403505068726562908419350792753989915832107721626787055238393459748971244952008599034499042502225829654942192879178070289397726835200479873598507747139321124821891459091372108265657123554198281975737504715208086080839518919111423035938975614575225309620863027096070043462411384694036039741352849660206422776113749802575762135373275452360054932740987885014486816791473994802091377515280488649782560937492486683311557927600039364458685382770888343912811674852775419447328050314788537877136717118603988653597226757223532049301002031068699199904849774159945177725794676954863319829483723330523133542187643897057006994776036110349920880295255248228625362664746336880105329137149250737302993947506234806638018016284507765002677371765547549892276150192344292432347215018780086765152390551509148881035862181569592602610593809508842302453442992763277489721337073077119767876488758840427375666717491593542596988725890905330114174286363717301840710810795457732115752688070237248783537871863800152428392002217620626210077383099405397527170732214928236376359773523677840728667447681341416500803452491183119005224456355492266845827491474000144306112125285935422650234756355558884729207124284199114531957284734337150193170838913416644256604507808160087725249736392576887662097888601865644263872339431234485886638706927999113997278443794454967526798054669958958544806770892552001793349903762213325154726444802900236202033498892999206779837876828153344019528206053767505300107982552183170986921759960354074512960206642132831277312483150466874882918012448207505040436389982742704278425544360021034709463549662031771964608025248099259668460722693263906181824864246576247839536567381897983505924707481493955497339002223991869784801094002557662198156130135925055169735854231758142489706611606775204052458820325153189371906412851489131814406352167865186315165839440080104079561964640925987213344671995972994793127805201562181226631404262543967730121334312597154047727119577217357125587273727087166210616615427415790816487734355206699749564170030545988147826898790369722616554435258506307684803101797345356646997692738810191698923858139340567437622587265209093099784893074715619068214583624646562614999037755430012467520635858766983488865457108167061523338862547844888053689530932608256961736911600346336345271402389957478698633423897280697362205549483560711855203072655449719160275795869142392407786109299947513208510679167234442641382125665910222699513413563999265802632794259316384815986601487150163978934682083358043770723287403553159406802514540221509390383089527387428109355316105542602369728991184068957343949307544207795649249790834155646206173310362525717803060931055375928645200250862730146342779146494288060965448510086030985749614076593207202727527463236085137885991454738051438785792498957741980628816567180317017043736723453191609139960727111853214497457349989479575971213830972766605545553461723804341546909297766480602849426324381840145401302165028190762564757354393716372743829948943774488050265993185971353588892128823183491266218468169553224368196442371155024790871406610124279867623477845879850404479126472990776307993503663988009920208916279510315240661841366196842217120434988518715113210492471566143762648378677869513769094948617557515268028885763128580287797608903826847055154072541125400113354062150414726371869021495482853120033199335188033941315070658790093070577238310976456097770310768029120046252521769108577629176877413644483231532369402992842006620692772975735589838497835042462627023059104710137431704895313256697999348746381490943265575730545261183559213613675301035361653950973805029236497016897616687113827616846066490692397186362173195148545972191929743757228930992038302363777553926794234056568737078191925235803542412395526857856156667078419606873474892930367078377917419557318990734379766331980527135483971599101610973794616845351953014135052955348574755424771581639783133976432038133895961178871082487550668485298216557380813824021782831761632706143079873436934212999050705034901532024453482241863339867540331609640570643200047698841106910469925608256701828881856455378924584139288399634416193844107037572456394957457414281623981530357028938049420697753373336671159511727874135207786036329654664012840493426816753347603295160100878304676931268859294050102482654928543394844624067395138988698658000433655215090023679449485100619607700735727916218732412042202071600036115768979767063950648840864229923297660879624325355901022100795561610776465362099450956774895935519019718018277073139872304299334452225318807321159069031029765014556983279896426843025344843821095061773818309816062808269860472325653086471132302720395562488011883054618107720693497079938079109705223133553426849994701014077061529439022361719601073604817364053373977216269502931245919939912179190450240325101554771174289377193024577758281840795719724674655755818505852880408143796329992709444429202411440127294310740202203905359548601817128202295431970170285052482285889182095640773369264899120388508710178085426333187847991248389653328524720915037948506088472616664835073072603338629234820385694127045185477775627547286909265219903618642371918617033812759428050958154605874944315721006449120162632799090508853395480699420411176640161971992115417419444758286673246663447509061149418930150245141222268672750534732908542315440705325459901758257558579661219128501277673627881575110862483280881637748095568234471126051448451297169103555575849482230969745176931817258003729020924322925364183646630759201252042301781206663695931360351465188490563221783034670456927235449421871377898923862269993603383065784270061273090510143285088612925107857628191667859524277430811634310484940504918598991870071513123366645736002322530212378348475774718027982047291331086696327964243436154223687011898588518747621123634472319049362084806775825370613293682415925855159424077575415711830899515219834823127860522226076775238428622020998450896488296180626029160967267273050143408248559282762577985027181510157696140711623678644393519113072271314756756205233669818606447847090714537286086965571948030043161941628679347612020632864893827079754594392037959387303479379419740650192945093918672897079744062686993489178118575228932486547313992354023217162285011789797598603125109821592813472051536976297660879101740458787191503783626785407695252244316515752545041436847656536151735300771168885328900762102366336834524071701029384419865841559745037682408505709583398753850200402523293877241857313960639442973193927705166519130322427506809240328906347056064877561992962409237739844612499886582133642903015392180767110138552939140827710164989396775251221353350061859083297486213399239187740294915554207756969846467222786607800441737141085540593098023010739794950838461919805109576097011172620717953683110417305173417310088099536886943021143986231827391079704309683362022754277979638554559406399160472434758852614271548938594265737953008668413388811027519645246853938513309821532463891202500546846739727754423039658193293113999182674968922008227824072684896052903206228257087948918978916920420943337317516256176082896233231811569160999429011105754188448611295572750642161569679675612633359970562157002869972144056641019451563456577235854009688609693053361266733537553163410279597659632145988285016245106294828227905233259279323677253352553145307477876346740837512666183396670686019567468392816561259737155167130641866398047301923143664450703247383110590390762997132063371694723428976767696871785205689819682434834592127864006187144286358129827999946771933512763806574418783338588120282180296051481742293052697790342743281298595862579944423040342927221079840616688015559965563558665535179432847093633737343993618560830314291363244844213424851654746328137402738431479857455877670871530708692983041411311179662317445315035810204863214714306739704373740423181914260894666010446931980488228878215237829080359027291604675501330921761248649988369384952452578077064275394834865478816153220873912799169910978753059118338872339215747844535996029567810428124165858494479235611519907609076309544883774732788031622936444792615865442868450555653467370852913660357802547443471576710666059899742753921698741431579700492989174164181535746591345421824966004365819327350016004871614904160048154950306118992987368466323404497024669575353188764697961300690619657567523978910814520723181739162492497649167829311765456612848564261148647031857471252884467191662961819345094236635893042271034124734900966202769819397522483723249040771225260753367134080303111050579869149049146860290512411681867657973529593121468860664694702009405545992072538825996795628158058808291757240555696392934635951932835719933153738849506128273625168365607785437149636302359121122158730580345621639952309525571004520566711973309715682401534425751658118483762729672552061174854779095861259450085922874670018516410000068326283848162564967509835701017058275299173558684809706691233372611777746952302271498898611389565735591880389057637971446160288727131296446041065651236493882978698143624874511713699257020613328679602196132991514752976587680601758959084157275332448359344935910268226150604846064109962530548137135265394050764430598510357058704186581399570891327048428321995151924766512636405205055089797000125408089019822475396193272006857478290280643505696647298577717850549549465153134319729803968811910451814240316718214793593215900223101773203392212065425255207934470203957319422612065973403864531054906406905945708745371249687578494042890468553130835823303671214370139136194889564457019396588192889020985411379105770821494768016564845117070921134153236198051612489666317060951398154671431216980649782204491769777386939930225854516214019012042180575162600371879354698066179135634664401948060305225776105060551970796535216439503809345592361526242630131926191252162303479896173496360616507172248409382224705382276467605292405340050954667055656377150754366280390752914337127141540982947418441328353521690350248626761932952107628837286394050719159362434956702058716779073175867851119697612019461883349532239360161817972287881063341541461151066520302305287792721546528352430947629938924286453050896573640796813962353374897008482689194715173286938234238016725154655223273219877567971955743960481912459871045767329148368516456339883686425725325221773262888504561579513817312183780169304975377395877456209457176045318227921821591811855250466965813687083379152984900120471651809179145381329442562840332551974585998305124499451334938156429483100012577817647290457552808161630915309016387845053017423440022427410070821608046136920845475979653794573752945872752396783361414037009161375951708560454544137384284003208109660470110922472807553385215246105909316389408538333878438344843086063259592375700903126334666422403116147547330803253345099822115725409247783623415673319726926054862570035057155330562304153145543899884772865533321042283378147838055884069894565366772405993051092812435005026957303526292410864762388270152880174017177317313889847163320310232750448541891699993496149772571051062763688819542966448942343148581955589854785212556982730495360550898605787170757430156821312567595479445449510817644760173442376076322072599083173486349597482250013308085134889926063263296872696523992498968276163248046162676091565680330518750062373850626210578783037071206023473175052899648145920837691964497306650102344676499258971210031516636850998377290923589174709951557136405415275031079306240386672371281177842119451902570262990116991656469569633421839021782889208641420304653094200909741273922626312835705936908956102359704352874796567447440727882117581420133464132113005466272285497764081242825672080428583259800123599975044011729921132797786592426392675912415605763521479504795549226701355457058144933567712577668620971660628088170276160151818824687416015767602783886057844447207668043397592886491975196497910884696660865486063874551013677607145875203890292406257508586525897018689832910235603524358163829122122534047770023275543575699873079607490987478357526967684817907074583865917406198272874731314488556493789792807094524093150416537424744456330844845834276658846472421858111932956474902123314053062162390653142341066355495795408184096701170414570698304382049543654911488105574354325710733877408536457830501070890230411051153194722881537922435848684398269107725049058966741758601075472894585187080469826162201838014749604645831889410366377227588582692065843982563762685400398473842989202838307803642841345858252468941433991261681152326819462374715189897473937097175331135312277448637525940810020267257624462390642505293269915340229787703517721951845047798015385316354739052846807867716883177963884200376920123342949846942167720593314671052728404359508186504513263031972637539487029275874987604253334464409703725655294729046611877733270312648452754248842177329354289963378266391027425884257283411669445041395088731016280473843693851903895861076563326480313736979624340823947373299606719597047633446478503980629630970459991877249340142045722524063648722110599953713378685846377723421419894169475251644664195526242140842070231229161563488259177653683025445853716207612411337763950677092353830936091859007438349626355527769418168381723409350453453565977611369671082867574093621353612673678853431764457930372149283870242834810220018962879702041598735792694799986556929969598253274607936016691741067402968517236963016936522919594090761489735196304216718322542947229203664829444081655029435520316952134762306581470520080834700595049038491701759924014636830811576176795468044940070778180793841956847308408277370807670859403688620454987240026808342758500995315740278770894222662073263194886562109799557200322771822160988089971263609085803103924698919750025427498523027477950106371433818881947055329202411661272381406103561081770348552041437859016642354210660340758698911433738811627728556419863208225740398778525122693541568257669499311448812430987517096425079190561757196790342402614776368622671166132174713570909902924964758630253661029797952059055183118642236247476432870907753525742398528140189874445459230910279990391350695335735343776944088027142734275485371491725404711785542836748851101490600872917895723733166219162293142669055394691928946660493812384842417418665546310127662397218186041886965106730066446186957842420010357892969268602896338697239291954672790381391849853525964149926316946769897580603483954158935368979313563994994983865370468187510978820189302714733688402365173951486865049872424433670881953784416725044874925448524431323613182187315707067713525144425824127088349388127155274320535826242752655404239240864303365340758045341297986674512579907261820163176544122505086377790770941630488911752879204619070811105734223680454010437983396371907880667065531964207787102698321735151137951924752391389249685439284600686218185956064417711117919236694281884883819972847323293296568172311760388074897917072455236117949459188782378544969560015914960561987989904183322936474224957756755688163192332919514584451852171706430263790503717725229537767823601666296337416052278512369040897513695313766186505396020855669135764653550269628598262711889300854366882582015255888734032704684273299091558793639280933274558982076894283334844621126169434188251561426053341889844038134276862729095638513743594698759939122480631908416004213408030428854397896181112462082600087966080959851195610427381218548798694853584016051993583427687864757147743054883217162137997950409835793566136359282181769327899820525247916566007271462278787288611172643094219549088989890906871935457325326482757716554628121718305310577141522411723210014075486780101880596053175466102275390491995544085837927996731540070785224673419779230311251381794378853795277183539055047888714779928766061227888396836717146707028916172535529102104332886919948264243537743235249662116571772625455258852234667147938219589041748200230358788005789982535467671792808872419774012591647313082363248399429402328088363638303488550534559689358071996171946611239677357019765942984838903852574845015075170431684060685047514308305656634197334666347076675564474639280732846241470555541912073869134857526440179958612449053701906246928611348747194633510569926925353261300751180909099887901299484075423940221923814497740555839170447922731599311753309229624900828213700689366944250834245432835798807243938044172569751121054644177979559725283317356406729233034216603811317667976383693294674852245722679585394465433994270319997392276887151761172878100466605919604908905172865427792771205460066563673345233428449029121065874067297293967863256348892733718790411737829473886046988470828906843539329156706815521222954812896872436700292895400171281651187274657860544609118344134905160103340248603149073067430785258745859332307017495604853268313973265618147221581514596997502046482995933550782880796074222483246382617729852301408093855696785401304158515970361712587558148471867995690681360493520517530546581961875143912568223701292965416145523673031208549403100556196525218984420131093600240232846402554071328187590958952410709188693716994155077296248890899083122690248981660958026623452925723416768936269813229188019790934979216072628234657225476213871600503074222710025133069593960223776684003584989448652549922292395576980456351998675068647909286923913288434236340504465389083890082052529110307085530577071412979425700651099240023223047030711550003518039672877074813665064291277938689674227013379690630900117849435353768714583450376648669815047199965321776548331481196225118281313919728771682040452050884913803613789922526548740121983357534024136276146709536201612227023840872900927239217532355754270885710099368004109023237598524735260466660517804622020728547181596522368468323489200172274563849235774265098355832369974890233949678317188153415716781417952120976700227070158441498296931671378643138518078159925267734889659620358138406626711103383862921202698579465624918035766074020293635306480632983038647693999448128130721668405808701373375763216378105187064691236331328801729391318858008982694367315420197321642099362770664742698783169850425001315065606387359127486322012418355717701980107737271175742343068739152759732944997141946567179696432145201076789448439010119020883043680600692610142359438609240125358079733237009107167946324298657384079970339955670876139078800460416862372269025715643046477646739625718542790835550149686498559091321455387310275737024998298591484506898125925062492755401902414819562532344346877145207420349604461558039345287233976192478612553041132263641678616152121556538812920722209139583633729155401084522257717503869334678553609557221409299103492264635344326190824498121973162501413163428833690898841917879799580328388532209811465276299007581183047144207174390419922986686133538595891894460591036764711774735145368192251956121683040643440009964096574178483535442458436704286598229714962723662833927129049897003100700166636713295888563205908819510913096743178944337146707845788247802607565102764792414184471941618233288894076649030643354405518026893603258838456468562941755669388694831676840009890201369016214760024252053595673584363384318982153662849970223396265902440993189688683237568577935754934620324618946036232229511054250166607324987645825411880464562651037153207643412855472240496213161463012881040582866676150888992169836639788914945398712616899057875430859032146017644124302131178332362447984666348771726998669597284194307398959321659682010650602805673776452183165427137830839115059693139029575637606865466085775790694934539090798404261679831614596612070705963949765305219989231315702594815508714184143336720845803954483821417312648092015406491890309587594800819624427584449491022034471024958197596291363951547224718097853567397322587361478926852973175996204216252140098118780644912058191834780689047995170950616369323802887207791247874597070678787075218942621028857723392247981333612118466474475651375617103001272242296772007526662945588258705566961897563483140714702431104914768410337934971805916104383311548049674529225090354488049094810489210307426311292217504527407804051741262318602647602907103621308436677493951370968257803283348054164872700040143511855183524454000215741069335418815671098568676517131855492851739854760665260952328336848950954451038720025142977593505181344917368337395328069151780340847090484586610322585931263431024076267612018016833347181031965644432354277865779740706630315351664194250189046462203964792715219654241248192634012777469369286624485542349893536894046144804509862718530109231285870963939805540117884036110390466596072646807514478723128877293875103831263287677471011685461114790042226171845970405993745867889846071027910025910007528184030684666697023106883482430165200033589264108817326228937434499993908214232493202228763547820891305394156776817130964515454748591933501649984134030414790561186949660077149333219798765031020450246684163979997221374221983595767876020342834556457271783851288655543474133901447661224857793515209164734277185365852682600846800620140779044752699123540405121534581059482917302627434001228054885592548630956566146559530262399295057601787001659886595498646854262621428785477917403416006625829746715843615508287041530532537965269257963654525946550238939118730536923684260366595206051029728681195360318189995875044788767209938013980731689296262779498274585664694807866434673791571679116972353763639838746816379438445615877426506452328583353105482894508442867252416011185888075537789735699913896857411227039954718126514375118523949362478163829312492271862466458739033631312884695163012998384511341155205237960687275835299158876875583030463717321647829191081289612549515944288055687460348228923503407203638936309862568072756342224770538830260696026241704801254836831204084400964329502911657233306679386950074209982183782053303513174741584931949445379338849884725529424668453283772896907125973560741493800417873738118690968852510726339995862657004983997277496067548829796931941254369996037085703614718451447578817270079681098367150784327628972123547424295773540958155947924371012392337751692719813855729761113401449929100632181763499195453297676249252105771012859029721837638127450589345214459846657006458691072369155365311955500113450505628888255268875551003451292084563325059568385411469521165758575700613980853143043310321330270389223329318777101453110059104013056569387263087812387435078492344364054069362841797066986998738568241449536360587916140436530280304099252054890072948556715934238050437908827476014012922748196786632384484989802052408457322416687244556149517014216896810041416588103420615729852821611167640868219599151306168728317837296380281639947814064370687138220132258557009748456487207282067094970988181575765366437958357255775589872911032345254706943011462199520459937967910661442236762273756229825180156148177038678561751175439330118849273154577241453635114846241890470518471795281522612581949815457116106046710375268048749325610963765107997198890295904842091545711340716617866837657551732837045485007409786761913213667333200139808024144818303383553282499678676506974162117292408662451693452700400855573313819210962241306885914639403658641316567807870328566370929851864675957568740504573769460906628157203962333442377619747931702781303574587195057050345146914106249653925597083443759586685107606202981093366715246048161285475558102510614478888869770742044960941976871109491029056308848768547333302022260158737579644451785363828766488593719839449091477856047657676500891963673389965175328690285663630060048458676710994724599003109025708406218072552859548183143682119928457003816693032655946757578926132107093530773405512953230360364640832184803349637406834831000569877100545947793180451731362252586846032114790461404896758176639331190448561176301611967070434730225583917462915091079487104824013370859354739367976212368809033658637957078636449336245837528336163404858865659748889051075308497673214694213264431562978056529046985075531866448579965958437453068131576058100187210260687284449039499406404599110716435250768415955816643245790392842033103962977069032543676363234997962561846211886368951446511061097818586588001510103299841321079507900280070277703732437427097530456394718387407623083215472394689612814387716679666677831909995307794983289126843594750470856535344343456533824067049424230116317011905485149907554044779820145594213465428169855153809614553514446041771293364690182197093286014167029060826130135820447419058772031542431430032361161417547014569365980531426987364482487351046884072008484594398317212237881090556407131109467459577766720909813396411963443831647721909208474359789633546588437932940052048450429141256998774679128802989953855077807173266165595587728930816406495123094115096289696963192216937010845053117627119471638138272613318992717178721957944389541777911967280669617669935745097229386467295323260032134411764491631147472099671850395748671911600835009909627051330763844213106511816834486640496665759576003380579321783275812216371072886812638130177207843951692651251594110992593472182137077510080483802265546814457855097834319426799751955922732674107570763340250119268703151302921570603302191596086330815430393847857051895963422643285069752313792857638508758097208668338287828785479603167991164299490409073548565452418990504452041950055997898636134252887842900026560543805343712598357235764062206922944051783862260935178863250659247368719624622168080308980464348337560501547464369388221700244369794736383968757697710797286880297853973599458593659893156507320256574292096359522299124620793593227703173128059823925290544794218917030736960574035633960439586716500736971416572271736737446863584054902631363733218102773673809736575143787652591308797866758507210142603607155051451358532294200306967822724559130843785885821938146878776292739852073937111780057392290539015338972064001668272388702275270865982010848950115018684220183870619378725278046014617702988504199276126814915169447943523193417031048815906721994005820476892934629423553367208313078654548995806510426701441173570551814590246825822989784840065164398104170320765301587229385809247146242377973231718151441759685422725042876597812566554648461459522564604967007606060751657975761918605959181582601766190379325220647062372567750477155950059089398904620914839680834263086372619648359582482807430856538249478795518904767919510308138336958923194837315931078311784390223355029604499262442596103354147249126935123701839717892399006160690289273501854120129666789110362981793738828182100302397081021130349099277835859841665474711390566214048853766941414461999338305266216105509847430383026885712281734872182545465534418634612329154128089037429223494184656301155844022133998018695458155829941106622145946474885081643055213553963421135076242188740451270963086922352782882819072322708343800072223569727520725272188747934486517584659142223324015482753407619015983733935651557354756587455766810891048526597478246964620573507186327226601837218023076121353604983223934302766573901552761346078157378800753438566369445679494802789822968546317681240221779452458868390651185796018133917527790497897987926778672012259967105653610448093353762560422347016326712072377690931328688926092724152986194112868731270483781431521938208741262363228700219989215263589338849480827865971509191221816625021728370443054682411486260243143804857712363861041234531731889933694721327116838977767610218594288812752626628729020773033533439973775165618350165124273335873716191688242637416048047582128172944447636663713163117562080162328055799112207367818713086099947880231894737509270566339090269168004298210071902301767613757973171258424595345100978250601018523662616331633442901176317713460050342954153257637446777407585775340390205701840239802802003514645990603741734181796841091120927899409764592185119224453093815121261165002711900069705505911546281298936917272429814026287293484372561674865742951214200874730872886627007717543550348705283585446421471628592081319227939621503382984560475520288616546532381380689240451634577606467043624758376032905459630557629028197633047991106751596148156250912413072159385983427357489722628211378546037290096025080260262193408071328376455751927215022360467885270730320551841127858523803845224952669143447152239426219527737317267354154683403572197419713391456705776633583861082629245846189064236298120325619298953044109131338000362629997910073592477214104284522278572800068641015640303432064321052273162955918345050331500379066393820300291265531190666094606581994777036997083823033927298722777031769807164964257714376535390258427554752603196807284979112292528169830976825717580952878048156356093913611986056547364326933946428174842814613520439664857624295485862235829798003920159586385097374617623368692593305339816193195464313625043650633271099835136681713407477389267313277567971172175985509868359743449932233012906642126370683799644590637244324123983869989969817974071492655101526170100653630794701890824420514086333686873855676804228990763170439316378837663149664903777712896548940041809803026800248603651136854644020128747642399152919909142399060592402480284862988890761673102698806365966811160015186282155810997692668920156427716051071793753023359487149509849287552911917303646663520618694808537973839252382949737631651421468417590275079860136429736109617946295592523319722968498616689436144371543789809439904670214677054912013843917817562187046767419521521285239302883514053445519398764238097065747158990130984766328784962586357504593559206695282677466978516132669303241762944358082846653422353529129760705229664113453214588947022611864022908797692714955584842239750277642023607636119610795706005533005626801278802191617082993427513740076822117919234735260892310869874018931078192779035959797725342265239979358772984083048964245930886712932974171073218988841349898728014689898774584839125093796800419355879999392555688021589198826144050011444131992571335442186414590126542569569371843474553288667367655633378175080536343197749764050825210445455911103124804833268251811500436232548179603353521728030937053375993295992674852030732574594894475005245399096858584878948783779279101148900956631234497973343081464127709973584024370364361165699701863164901991721240498737049166874154862446079272082723588276313058123161328433555754019534332509782914722458589587651773595017526936806830336185685236295326838763913361864175323479683489871901991258945985525067427717679061911184631860429255997104828748002597798082779200561938713748085356844741375409809334333830063493389726618468819080922927806781683297674430799090301138866633551450757956932376427763421064052442140877717035480930500362492614120705592400026478121173957939147631347226252499332753087694454183246044369821814020406552201564552754741467138566451346834417654325647428512694114729446791473999152095615415883134083927449962488126680645805779722470271521511225530280892746543853273731954765501237742998926025669611927554789551467570211020728706191952654953688725557072621446345749322383337320480666371775679935078949355578869321015075255263713415732667202129864932605583209907948765677012364198180388060686130309521298870522632491648345520281265209818618275626415557822765698585941892993034862180156682571912160177105601299068434642547839893341007079501615196903689741816653120177093274074771075092260886727603683245648298313425242973583453078998609531234648024873464012403814795929987084292376533017293668377516873123593342713377477082096340435551034633347915295679181180538387267134024414387204565929333049979475668029024913934213859645760821085310725659715200066890742703577162180584580294191570818666202896687467896899628872522798060342119957882538852637953758400306059919959526955504405649360192251469753951862615619883464253669311127364650269193699615800285830088570336871344575085946724441803781955512383177798370188045356966082313879793859564229662944374774891516670961119904480157173446823689393721298596020281740314707486071399361533573711119294351558938505200904590332515757026002868938194817449982845117285230969581670222428839961512105307736487113379743465187559272281422255696034042534489485695509219472974315525963311768628769309675236100107341291323721769003888911527011183781895037736855333749441939824437307713992925623440339461454748325354850165414122077261415252890077260766057413998654696242658912538431242209027671731437553079652893293294857159360239891499258968452551718933619909199939729764999827824042972338828433697727925653517552371108037727593493565734096472768049322522936790030570831883159397880314341807306998494339636984764144075321653156516504668263043872416841051129497109516918582461534808684724584391676805063200428705396461012219270884020670494411757208327982873317607849949333106225719333757405060449407871571941856461497528285823420836123776203396775860847099154076827671879401263088912691564809301678239589767666096039949445228138569334514847762480089694830157855073784254100898915637029180500689477215847576606276323056465855740139969805597987406465742377896884357531112121829696253197355335974486545563395556557084533979089709878609781032889210633169338293308665700055602346831251313200036357595832851091374444363324159369334470900593315108362937153692042794965200565093134198943387383378465700201545711833530701806464434935562737871996590535898799715734394087852893937536604956463366988725071360096066723892397437086800034497781309573710182264905733226764830367554608092965871750400371710258535542002148289396753167370686390406847664193238332221799888502526282531633841774163933079452777062948710210393923042963286123417381276118615118247795367394462541630502556504215840659014492675039559028405353630626525811965259297525693684049882786542004116529502423273455646370134938899855163678926070374880212179577771026764210402789271970006213805946323548242248935400547356544160003385525168179952131691348222220789926682950276368612215548531149227056022866652593555974145090768334984224181091256596363950602988081370633479946032340496956553182097710904711410740182935997739402486576185121871110573466815856356171360505522297936817333230094725919241601775822181813529487345661817683816408966344859683666687784092950968443095512840109892138309627123590192977540449634834559081282541047627079247057060636146273440147939173535142308432958516344275971974570827304886975505023166217251883203397527839082335316044033342164989174286194208694122357845037565565506656359777591932940983180106120248170920229971769392512135266471035187594182394083292253158455897830693832363059876695802159170744290995469626753280636707120461690666078057303448266368703934557268147556809360983687202554207456622730988287539648103374359274951948468776031142324114836513012235019354572890948363837775575650588796491504648048956995141685861901281949074920436528246561601114791117501560507305714495761633798370375288970207993443142450967362056446679767949540720797266312449802125946277665428989428260487903749324028306764536480257349288110871009935840679624797074051887875140671995582339319230543382768740754643316247062989405689794548275721453045156631102551848401214584319674902393400639974143221677461106004340392429246887934594075826586799321917419244357336619432970167393539670105554982057752377519341433514407740672422502214460586532433761170577218269250417156338180616403009053300659359225392013796701423395706446970143645565254064715551728200847079657597341367224562474619864099106646593044340480297822691550918369012059796955405465122451904488506561746183119780294466765182146605490855433676958696414541259218845180523612799730144000469891513943087049271991478873879170136072541301523736359944512847507470970981102121126015334513075868831428432549164716708979633420387096718591931424768541006852644423993960631419546759911934458708962555817860679213885602108375629736630546625689326023163193730931326410827807097969626240179877250914011115889779679235941079388315142264724349379126943706183895000488815381259205904025891761150595653598977358658056083760395413605869090605948346971332752251701386215252509744017298155542091572612051476898333560238289768283556862579647494539246418039369234761551869409410447967527563699753067207713757198802447484160140827855017025319949593233027812181387307126262505021228608194780808578988649947844850730685068347582232439344157277098237652836032946063108780817011006218008483291221274622592917706978760241210600582116371275473446265674836332201641804672848115237707814552002853298748660753402622149200495091618457243645087180368123273698919294538715506533056193265670242016428856894787098782115180190327771474421874555116466664105248682444231190782615574422133159422908197696527521752406877326204641296303980218083668695358101583976739166075594515029379860767777088203071900414208945895365336537921960422891894685678522106441591111958549206207273060234371050206065404048052866538167299620161304103354576635622542561998476085464693202032891748365534952466329941171916884379278018254600737947245139147503641346830329235024509495283162938409568764025166732505207764416785588143806131985486295278946180583887370420936248252654626592574422589151955766293548269356708570541701011690189372652594506056446807503846062068376817093702325872933814401167137080668179171802076382604075187259994267682354889430135674563033813108879066636032527188926175225638279190180714196977949983586945644393038995407490759367608934214884587689724965352514966665312041351835686697935880882453919850479074821072060204182397504715633195525786894596931585764511439891966427491551843491592399770254946525595172852835873460121441221977744014870835639207779499370914747658146055929592844851417839083909266728723766798183957649419350842856219262355294117541243915690277482570088957171401840482196472550798069803996788061379910617458877120159863841361149804465181927282437636577135812920226250899139471795645890714041877959508104305962551969689223899261014816890129026555870906248783282171856162037548063048849271676004543719611582519767928287531726351083931873254816197833687120019033111383896439846913819402998539373983096845651340032277671563806688110560017518735558532374784444033901328675153524931199579489066095732241500615183468425085203406637535115401465302014627449040172052191862218928979683296633069528892370122172657901830677748113773077298444552982879963331882046935490960922652577136169609348931319666065386044398146830167071246341167003768317456369103163733829687812594849147639392271774801922063911279599149930707393946604832416154426095720934116206748580957513736154295868150499665891942619443390126721550950895234290547271592421216267052087466634307214351947277092416022012368436980596327274597874981272977190285460733043900250338168067052041772932247107825894861872985443716473815469553810162292426934661141312035963805256518550716459301054066477690574202683290639309954934551850098377372178556506500546264430793764412220837769871441891911761773608629141302097717051286464971306824794710213232530191075116991150747283689476983477159502644175197230462291443016641297647724670840482229996914062255860004479542985638829206098329656243648184097851791718553167503338237084757931649289157706223216495424678091020928727989657117284522398121554692954082140589604312467914626061054376522075704203942142374274393965893063922967984775306931562579529677905126559203307448401987914803078681586727895772195461792487347223548627214196502543292343690110057512057705550154918725052445801058528800878465218414897633797610758112897015737767022688263513781793934719155926067178335522165732801715708474044633518639173740318079959029240074859065501167495143355062046642746580402590912930383857855929221251783995455617019417055199823752906441761275144640915269223076712730992442386030955180406562569541104336337120273385350933258842516991336378144939377834600125889256965929679728398482819167713188605506525854455547603608872428081536551975909941526340360199565041832117245822490817057072850323700778741067480627129215252084740880723299722874289762038209364176245055312008344108413900955796193362396818838562218636413455973068747873274039597768632547956318459654787012380456560323185066687524238904564081241165703501402411518452524752233052945195686274119921655431048381945024324289636379173544531777874477509041852385994047856122691335231018502493585539521321042907104365468363539779353256486311779858416599200615505324141402230042287295646514705912556904498445996078059204739425384449452994568386293896758578555829173160185314626034513379966428274505432434757514099738733227751725382559821324197103186239641570604526473115603023018197394530336648710126367317872378218498176122890308759389615771995645995825716313866738507274101016599319344284354266004602076929378283364565700362434242097666818601225685931095466928873012860784775792234520508618607543573073547484043821495095323279559409522074503709160593446300243999092128618042422355653273704914571623758476285286861243704458964732920340949970186339847572580579104054546918834631940122624328738161892026243192709424490890944432917250030443755192219024763435461243318357299020167296104639615304131675749066078005457129836681123497715173492058452389693532493593829809202923345547906511529949988735581134979900883806527079697090438670593778780289812587680562718732349901834444888747065835244712224009603740858508075661400180930245704765272398717345036153891651965853427758112166940440211952582479854965901174572555531580551332603863514893354930131923576876509872197034068616104114117041785690491867174230735867878824448987518835515512741250867988575964585929655732779477826906380006122869733868200552154396776766825887750115830921265019933226274555039074892601151925214375297569105251531114199861589024936873014854343811681833101473131998710498602769165538297973437749602961240971708314170662453158718481553426033502106834151856030471098652755638736666958944594619059972051654584346692344323344404338780598565838340611278563437270173492339493888003320202239042166328061957712136566810022123455662122835648295841829287443664003924388632155796535174579032569292663491820965712301936155833400057752264641162812850956161149810239435290900872783883584865269780439602571402730944005924234714383443212639420592677839869985544938516579668610858017120012580485244236550887003152559661580413687096987793118380625944567133308072792736588511956715473556524232162406104427082701478574060539434696274433887965382891810318815922653227039267450827722361679284979414233977778272486069764557477089356089792136346318597213531813676000827830593367688687356412948942091443492787748558561851047413718863455312095220073148234562347328065523069209965624319802739449819942922799588817616104715852743678611481330223335698993748353150301305100861769277198418993648901409141566525381909420823293368163979647811587051559911163813039142398427701014711536752850130956863880502147807821273932891473310997927071976173083801505962301144773311877761113322320566718795367993163849232652489009866376224814788563276526340094548744609788883532192913981873730453038411638820856906423347278988951636486857585972751874054123151304665275088917384561170685695562624458878353741776893767148970904182453772371882295193233380860611108968042638272770265091721638774388385188799591908394103672498816459820134748287429632957251532386732764218339385817815949718865158931470670140551139779655288921024567850716823259266872694387974848138541229472550650611342511046163943255091527270336609039292202317650433177858093689934605148180938768423956488764252070959545190397289224509660856453936587840894904229335202301217127816344834262831314206574784547844799107548436611781197716886398638099035350758417116821592710571291626793989579956900514738601436910721570089458527607245476226203406227271898131687910280513118431954595081301239290091545313795085010542356474636630646790480713558766687972927337207478912876356090013319632460287317321476028939420520528730575384273836645311154748518473481863506105096672474249707798749994068772301745591875418936274289556033456725159787262046801862559829207312146320366631487165149211058178819854243941940772636697566333266254134744202201596013082258412256056255038655380063914547406897422662596261568846106398697756780571026093018931049997031321208810576108028365494427053669672289139376372202342563871545084349119201609111051002838777674359309398387497175123978012432591120040770193013187282030680109036973749664241163062518394178163741973439718451102131796469441904300478416049036823731814970512334524579587357784914344486558247522660664112878239632342029919497159914032377532038175814674219989356009382400026575151503365349803166796967127897888976676744005715694596606802405764990081949478083022032359105295703374739552704103759003298576381244220166205361946413166818755341658522539454872299925816197119729598721894865006041878707707163590507589100484968265144347606518972839668080588256555033692085666938417237405009289975359501878622283379197777230986287065138099599517392334900247801593297483641719889250817720259630368206244335597793627475842702020908736703938019053090694786410368194718580134837026826476681158692181378951218781261889135480243387902153575686982884812869272207860995094482770167733123110164228187753462404325571777030650116954212727899658578347128816670346906421817326134923828590398049205425307192317182072405951656001413927761027234564576748527539204925294573836001101614061938331442110046999099129764778817183906997707855295822004200224870991871461058002401666676340914440942816491467206512815456520370829742198158399577737458957900022917378045308541906012527865338925992771696741237329350302130789818858770124093499735042840852267002263777017818644782709048362911715430287725914480765203100615278133639373241699909491063734796527410996507679170937631904523972121572421000557039975413136990459409703939885533992149840618307151872343504590518302457013550648279402885014731728467415004420371004352358052200205016127484292043817465010057579557606222629073158471510920793599085046496206919051305793655946752454399401615426381138141434772786768933596866229511438115062462547545867382059726077321359087651326301104159741215704182288367914831712362213572011490448810676867968306106927383645077222047273191457763228835488753265501035237890747270558513212849495004544671764747744979399700938989915901423290680600505877158443837469729838988211795257134734724041461202356951659113456193740670087514166533348145933234945626267006516619722112345916286866768837074774799630632069360125390619751529083557995896414340647100062058788305140481299078380469085711452889385288944851607645673757675975234632934456414206102533696475168484634473555331829101610288231923328840272662383140044161039003929949327266902653762678344546111854306476687973804054016148915119958909470479849579642165213806243582112291913274597363018217597182216050653330366605764385613837484313764345635790318158515652905449742705702736196522041166813699110445821622777770445357942563287676223132589008174650760756490607348656845719052034799932590458884543019691630159717209126449179973514026069790011441659486708184558138459360086532897557188017858377238863178595096982053230334033523392356764894325003109970347301533067975647283622862343992481403725261068830112361368738439543751909353080295093816257093251287997487961529254506501355434451922423816017245363729038196877741504654444196989066870483498818074054110312986313246278558370141189932119676551727793930534869802988121951084066334059396653793072830357048814802986144200807956764576760352880291473301664477502929489945719161950957831592049438071947990537500912748005851243801072237183668388273178361376307056398817981074264810887784819259612199378604693040136125645551510602531322771566891830275658029261846758863438922410599821021769765694184290737863827288978959872072478800034109790968383160735183052883933003349348040013933627968566001657601840645211387310053893400916683525619369117847568792622188288326255621567487900140567442095690199290352564104491757355931120940868822671294230067915657950075470447463476261560069074140043460438786124105011650138647576120457553878167293874576995684437721033055362198400070015415531873799501622982683000210470590454323542583473493087557636240435868849378497191653461900520691362353331964941984607921145665331671531845663296031723626253295352096912823639472057678218564453424157718076679898768022556055358730456667534984011411329222978814856355593175972100215060630825426713877245295838607851441612681455496400557377016177929631705508115113864048246552432915632377678027621723388628689860388996135000638741160668917796139008516285193498203485632535367738860139212411018198462377389829719299206304651474176710735388746577221574800475818468916853219587172150026711910020092344660555885044175419533238857922240927595598582058097774074114511416877529691761116259708379218187840462098637761663227694017355563275682137619283149340477532533821328846922420117599509115152062143013952499641921865831350666597018430340121472516731048541896415844500801140686006654184944179586446712225086509985554950810285175651429537993902867325570049069589709206403843755799039880385198788793301536150708360625233822102141258112161624795383227621630478323373651439626775231974748021138831414616920501948853076163505620433602095079497913349986472214111208881619327825655462007585217902923885320324099697938135446084500343215956980982694588589408773394358216653640947675137853895916393969091016456516036716707333728201551181263001489832559288720816943408868951981052964432095729722494926405977988671393410514717680435856919522577967003855314564703311703861406763804591802034486409853727833443547844815791290231758110520985275766010870784027708772287995667070950622337049744046400543588025790870617037266579928724708035302918107287616423315019978493063417495010946061806441559966402036524918522186911537744846397261125479785030187335568231890481269759440280388996117371054661458946132610506526366036504400695067118578545634091601491806617608329435655988553084035751160196063108937450295785839550380441717668915711663152952137685038652114876032568558394684530440372412350640286711978933013422315746249979372111402194365641703437693510776343346202847444088099874368568065747597683232732471025047382785781530224929658731728042518032917353697422076175464873728219789562892879290981745582646630469135929650900299505214407786635480807797089878765913940043687142590877485150571997581259706274116963717312546174397304111786557356172568326841864379160274559960746637741924579912644066824769264080257696916935080126052071511412082415674933791729765149486224503665162367875863396647910893704903647456661544074327902180916786180100177082203709483474654197039583485658827770530660405631755358132624190746540178737357654894413907892901142923968383424674107894379556236095501940896394842186989589335654023074119774636925429495371776902722299252998578846824669776037701573317317550173179242324555501656330322238739728153371503254553046902641106542539222140942887766338343119212529797000197277372988147222767793402832153907436264409808388979015611164883191565632806462525409530019956008409695687487628926993438137121182539194406528606747451974470709087069714292202788501462706053569630129234149090783861214189476508135141975292485282564319846546638498719759466853323417005244231081000069307135782710293566320221098242415608053641443234268425658351272305864916881214251135576615833064296568735931053920482237190906877197416286920278490606219804903128788124605753532803572301016373431052972545307995750654494701155357913985657258773158847252810002381690722900806121668885027350096431506336190172141304125404575342746597569454522963026282664337147430216886185621079089200869244651058616117760520424428594406742610914738126075583154179042851163641866900505083707532188611889888860221476911880009174183091812394308883617308160139132737263833553092344740879519513263462818736092283124937935032343803920330504367125063827400733990722797845528404557425044284355695050051773207961989572511776070451354306191578558878500847711551968601109319604003961719426228135358922297818606106151925334257204473540910527347587746288297516361018235894730467470581302356496561343925270159253956856293119076734582823488108981080890221710816741896953901211540049680784610006071639334398455907012497729438483598076859691284727222715470587581752455997396809577376122808117904162919461818389708341554369871699511500706417198616227033910441116901947573722475368974466530526339217756007373699955691315639844634519394593572083995169123250550034475383333169817898089542566553888591361030644463098145905219496633420117947411942598344296362736044297785316883975877585975480399508931447994487129815550752139805594465826255595181506739047992472020791428692978044493502667585914601688809197598028927318337876420366879297029717692457074191849973852954439936391315051993906679193603272514846631693701455896499335062911548885755552075429941896656844026090449369858168547722270437902083331292503930957514798828381562929946217736579552187264120434590309925233714335533912131638926738391215659820267872390413883855217335212717948149585056109146118928876075836999403853335035287406892803066685792312897684382427743626558053930450536348190835030648091054084179037755217593329850467593100155265813814980295464440988237530745173548970630161086594287544987826574693438634298051714209321259118766744843514649606095613002927418467677595708241917168062369238519556027741189194899540997635930944823230175276489028075600954464345589427823253242904276426001872213960152101898396388839269672436545118982670182573937845449730563116954258112399183768438365387216200586421658626853807377252761118005892910656544591669239343043590578151978545279332747928496182890473247503870974001643460567769779986635284937932671023662900063849822336190739870733060829098900220532645106658184145222761675877952777355989196176010383500195095830749405136214103643003983648792668173292976540025349475247495475536689941907117187035503073868563295859734925302283282073988086554243693247073326637225722981525738856878902348200645708691786161196736179786978521039804302806243081351338217966797180923348826803293602101916826329568238314191264683726106616659581918636393374442102082569970261207956529831140741298780122026496458255150289538955809877301571806923854601297102991031672757982545485968186462403295774251844360153385049785001235922420248460900353133941942285733101486521983710454791637000611004620590740988667453688809787632501543413997536206900175309502560530839299667475831971370668178508945332787211506605709759578732980286276408821107661493464134152660025625169247903058425874516262751315164758554723924243499792734690990597619995006093857594169595719325135582391906498520783079489986086754022181010633058839396888222021631290235414444301689544929778327853672901762544997144616444308016275024274593480496390100235161907310526301382112953116974553258550911257572967214535265579438978785601666470557514078556962666995794177333613120627392731456762929820210661230915015021191623414800667095341142084009606458115166475330011018671867799588695709874105256887549471138416535042662368038967863242854086559609466983837594759798896583310496432017224098167984793733299858795581526911441241198334167820210372230084825067782173050883477175681661135806229650980130196319872179882295818291068710735927378355894908181393133105920750152812917161675550354596830370545831947909993712499613359617802615288343673486606836068674592948436789255248339702365989549978804839774462326866764966007595505697080730516181753744518867654603530089572113766685594933508498241267412850781420530936439190260756627238025753753705737777169697081210030247833741975031413603316675772156044793622526066876376782226913658354737815238283007800472992553690507220169490654400982503478504699131803016237320913513682085364553483601460700162897607445707941317709871744403751898949885290519471766729225274880779554676365550029162061298865536376973058264292213436223850808399805253308827994335967504107530891324031371791742908265372450662787269210101930443586476529440935282937635304449804790184179800079149184190522163675593261572609739022534921033392626263130115450674828626482061825964215086122920123955234041921269219553120042444636632916173538685188684938781721968280446206072343227193610365209685133949129397043092733489780703744418824917445786137789338897844802364015369055567721063447696750175769155209757139281858959887818638297135545498933350465053595170064012634697305738696436401704520795780653295018712207140056410850326230748450607100156791816489169148793619277377010973761155918851054799376999368022173840411067625019728526423322438419355513581182029097151916644746541436186493882912583319493626708530218109893777898635394516681208381099858514988762224487132981802307812950406153491384597753618658367424898011135991805198041497032477213531410708208758483255521186276233998480501784841212270122384598678359097626885486485500500380459886710428276261122959755119845818200259417964449699410115215343999906270609748405425657552869394177743925636515576123674754965442965851173114658702853142116818068540303808047765144863229560154360731329502162249500005768550954479626123619301650917945047103374081610518162890270659717842788993887363194775257427347964796620904616541820291348448602090878729398440716285907650352471134723529512974039952027036356306578898869959418180805324271540016194234254736264781928732770504416479097235289798198202406344271924063385314192820851927594924147908503947803961800081235725745167725541026331229633431848154335227226660760338302452933174847209052330240891107784803045027646317079408641747537671686779713526435964459566727953017239662397976512962782797872585800553671932416953550615353122885948683692597770917113652203978710952173038853340393150444756411528571515415638136237186923075555648231530467382463401658157449818871607473756979864543398614014819453453329644120616875925112249609703246721234770342513262388141972332810790658707448326029545434263714484259980736964364871912032730552693511981201258779833503523789870460762119520117077041133949764513785461151480141543846674964606050158205959778736967477234026332968659898969837024178685511705662273103628349422791277406685117116443777996908754214083290377071009396361122208312515253713514096682157624921724392441683819781736482317804444418123544632424549470906445461996954270614687589913395681842315870299388608895810056975778312843053482076424681188239151711508129221362537056664920144020839861449414246929956841987272250048014984206678768487412255627101934190408982450183074931612000270705191890514012243510949578576696554991287404575248286578598890719516039481190952145887485623332774084590988007414863535302281355063126160882535448721781655570863701838789696178845543933165394431264688048701267268665890835612729944137442401044401560277445111378755395550377267948353774986813934113817679500008511719407536596935821868786763244072459817838889590892086972974739825606467733151176714210871861564604051907023802566261073695666609460744556992256972429778869200996340821123708495166524776547035579188203642408429589200722489651767805623179778175155633058680719719889563414300212985031263454784002744279620650762141379462724804601181311630094806340654722156468288604415244336514419114001207866772955579681393747271109800867507903435566027193890779593684779697085753006450295317392054246474730055835010328989786691685727913672122460928059137124175353082720415463313540677520104417997980943883699196268962178268053014473560158895984765971100272882895945142740998295190967891340083958488909110564482395883426193503393624007214613479429427197126988174993519429586815484234755127204708234052549149209817824436102852040215832757692546686124598551010314604421389769627043546879986234706153076095992961162888157979053015854772965302418579162163872778485062236874891449248181185271830550282806573740049333400273357014016084905890927623676573476560383541794395795334885162964974142573803118085814135071122189515120538408719650514933208597526554618379804371891538394625494648884959227005855641206600828038008852583505043179307813302757567270454110401363355348896476755924811971760509018425080277586288204243895942862329719701139153690311141155128054142985766179551077843682042664556521976451920915775059000142542107232608286720378459285790524898131109957212543649878330891795987681733474373913418053801512222424685812881375729057116932640141547374659657962635363462030050107899517456073314448123417002072240883167812029060533710469996514602930166107029350525273058222863926895642965228184215128047470997096343132285039808456137019357628706064735459472334828073279183450957162742327768315639760696641326521229562124378076717176361969960978427249554256527549680378796213158485549566800121465276583426267465057167798351818925530725876493131982890281816353204894716815834714658740931704299226670193192172741354593032233020145164055728778508243512463395105387708354496823167041835803445281105903853395788503736825823587963063185721859827468871722736865587147616082059860993871971068968199016860081231369991935404282718934140729004521865198977686725915202539101426213224064951516103301270629411487130454897105641969620087755209657166162298339189387122467728705264236869946707170943915948417106067955380458412017853766994526418332487546297585667713023845567579654791457285492306744268423587209789582369443860047551092583945858903310454065325596244690563949101359818769268106327165234329825166801397354331035645026154575696201379972839516321304059189855615436259797249620668776337954968921001942649211306296650780948844134418260505183482975080147909305431984169093757243263779513220678094024399793533177513476899194937910067989858303627722164634468965278717657634554208060662877205276684666613905931320086777819710608123961411439148998654853279837809342991575107565069117391703791743524673264779864701230080347846139676011993540255712896687845087551291894286289177019851238989645227980088676839450606218282188714482666534871312583262556559165690950391115051662202466781379101600521287579893915446411606787195757898516291083354800898044599886207217647291604770621414804210814579624731652810096793319347036904595027128057025007199925373319026331818931244264148387513423569106774411815176629191182654867622900451757081847636355207109562419214299246962136178261930283873571904276071044975369904384953790802575667946924814746657713347321789686794990037345718479155241017051977663978718548696044754238311768530444566091932953335343989697336411257616527356939457387282844145270179672201291696796121594492039585079111910614311421819725447238703522814834414338526301484220330238084231647031747455751932187582665869686588586966967980287518259198094608865947464393478880523392758191090758334179568682641591666540220862370716849146156972780842661266770176647503291234267372015943870715829398969540066789022914354942182129637707118624361177811312449174913824231814257096279625735962813278420744570738857943831087271560540452796744487229064199863683744521963041843362948844186402595618844384199375014393673000569191604453309250568020770872662888748260567410651925047235954626891573686223698165323621546322573215393268412938077091181491067506250935257922227148767565271174180434969774118788936120247410676364761165730881912204567383167912311604103813188236748248258285459037365556139519098513167757410863684356139584109591358147451900927849601908612205661119114513006603275887843075124657153936489583508711757452136782491065523361977390748899332763649830398369751161898972216669206698639632313643672003454200950216842702749209301295768801797147703319530725743351524369867028979436668775363678076425221320263037293488236661986737652222680064778563017665336022650085468934914019115241312726354834796711053091489227361805011156669989412828643539781720825255915089383441598058172203682252089842940943304354487098750302398913835660914734515943628133776502490597045553719173152580867722644879424645242269951936000049682017232997574462295733478076508548853530855801542763127266766205942098416409092033502472447337269825020141240886886965755275634685370241266151083984798490156484029908548736232771095270893421286753806834215050071494220774329218897539629357522765599747821114771391652578982459772478116989213271909903723183276778468603875796810160129219550914398384332412234580780640803215987246472256949181965326709598425755988173313505488083089123152814772129036361071083320461545053617532135401601854248625267624664888218430210256227187816607798518851248541221783119035780454529843963873168163094134938960517935952969669578989093800188297071510649780248248455619610092178364170344485758811084515312126582712633094781005235724802211456977702329716751816502501934568397258963862371152221189876418723766892329443193319223898426105761465051846615656142633557431480520616273450420966229884010740821411957963601601643020888314081931416060480925654216241893907454680315987404484782070845986428284065593076539736453645596399701446983381047434178765252188982452072037056206324078763345922796303939507490026893624862520942720257512199463624702648419945199529779153251115184057191954942851345469550901026996731154253886130097585915789835726157827139573869164777856334731367388425518822827558631180765517647616555299845255481910823618617433470607031921470478111016950778830322643215490731780132365771260291012770779801813504037398106771271821885464446342955485613555307668259085353966194502999928144123619534280352911584164984402729661971325079845704173432967884477340308898117916599652321891897302466292036835621106613780802107242186022164680520099651026162233654976994817306610094036985218851830962132267325239942992172767504017561336447397369352950174789462255820020695341087978117573572056944175036883498916989849641368342064942231312054654184225165950718495673421308884752519462179593820422971402324990440436115897788818638608565056709194298007978135794770156110435914503047372415582549683556374298960448558427570151929336878103244352555090811175607242281791397001917524706595195731926886870855258940809925128344637902527049191805127351841490046696352986155956578079488749755268594663919648998252521190881068924511104489902089394321157949673410609085442458364038788786011217991490422027794570498272564873537888052094629254021408429187001497802754730616734788029196721177692624635181101076103736057773989312830747638564796018865189422725101975320582768137105201166812026900121431770952575481249411671053913971378598936135584657675683484560642570945914123811118264383667473977612127572300718159253160121124533511163791823748398125544407914057465113376090512122418720095081644533118721126371574259663556581431582375794292285203347836403487793104479867152987822985246397649128380336665392336416955782131405537941857640684204362657851663985204252667441616875244914356937288148812772176238064364275866747765787546905587392726496019925706659905592558123252025607269997866311679665106124309467124147816783477917458495757157865366492414666760849450174986464005143385267161834093703108227158103215730728767412072373027654602961265815580110674013624181184156590248428874115797342162600378618517859332038875438866742197271422473319192843308650092008310762449457649233953175829216919597553240903369315306361989237810243293281491251107389334971144660597819694067700920965179026173857793614653409148919946763248471809491154253553451700331446652125914266840456794357856948555789941959372724668078638732299771092336089957325995056112684056273262596363657948562211430359114836434438446316238672505644636377324329767709463163170209461378808116795647677703997093942185208099801772845839884223581008221288177903755154592713435166951953644117533642700052923729408723196458497226959196118594538776235920996197649957409388836192421561604043068661182664430878205377689750171121014762894738563576488664293867632784460038115852804206783044913984129788963464481464746018517028108298245498344785734220595210854207892704689204536024236924382904389381658512392325094431384512541514710649178460025949236407058012134432129289798422513979622689784202156707573365261932360368882757327626333730499448395952161481902679450446706221223333429721583733651667954598563024159213397876338791677137542058644154978769156819947769457737414960143841574297021890800178637475748045495575758787005581742601554978124257166404487880511401929463377283427466472549705791605472473513388471413557105679319524447020913092003652179158561422253387078815215885850072778723159634869732368590403908133227487003071878118183631072551606407664858675083854304878659968242186643329556673620968221772137561927385922851979817856004506588173316154534512320937934829945299685985451419652554797938949855093012785769212557654458934220413725776851846218926275790845470516832990717077837848243300094966559763628041416242441783686301423048893827780581933060409563066765235841604632050778496816048460565263755476969688020407751845422791701907808233443566542273654948815110361775876547725876576531538993644329150123031633074645254798416018292383524882361370723263484982987649470507820677356720770543544779181721828522492741492455004312442193127391859615004527349530983327068432839243585252370561688143873508370484177001459762959673328881324031437417965816135451522880646589185372214407734755815136625653289372883140179373396382889632325670503419849486816324386224495144881863518092872470398077468807047300297781717911783899413969691328288832516189434646663469304697915921573600126613553269355558745081049441391521983250088985541696083149334213357438003799106466238087330013977500144240232669150000435409991784821001209482261316467492859851051627494727538358410871556000611147115522818443437042529673473258421532657677990333907055024290155035631973854590564289701838652558831983218913843457890738819082720585089321044548753154215564428937624400220001042896516538816253266098767402123495067393901170996760477507131064508537708296227321855732224680660200939049347974519741755468785493401822333786186006269527341038074943697226420028717993764865358351586348006717460804006410646761971072397057385448013588452514329429101057505366644327703802115655060657217347908958650493706016179590120506308867774173850948953574378984935518253815310512711298646048552370570039278871958555354953050659808272700776258911647564491949540129830800277933747893899619267581309992534115383647671208328773606116145667515410453844320347387872560710928456179034779182744493413736682549080689670293752297069729908840256063143060742650337547746715411965872042962682601729994593987823709748641781296463992950198903479899533116681237030547110051873549157339394892462389769201711532783268237112496484327499364924760031834124261785657899174818848634831518053221901985643789473313561881434725484398071292434217859821908065670050010196557467542918898974057573419202984439974387192294613643816741130088229107703170504493113089871844171731854150749082465180654403436546746063705983543402766212946276107962875107209452993328537367183565386972092744558410614628213819708323799404280059369349268183419213411376395404625575768405188417342287994408461834578569792889163379245599398314354371826074268023802280571192665020273526342790607681658471905865341853005609147814624084906306151112667054103776637782617227237752748053519495516023809901676188701352888736600367494525287015034273228948438688749383295134669715331681058915437425787931604986198303729475850800190821437966929720684520784782458485466093255819570386957623816641707458617666291476264524095936417440534110134735581268547729285972680226114318873988973232549660136848987583635788022951022331091681835589864108760933394342620270816108712798427126749159652945811123457005483668935763420670200561426428634625924484638619008631857471196309734956752141810842631048663945269626245986470252172786662863244788571954369329881590786838214275072787476146705115733856958265994628991357423725143336841803868980379473011183567839590416799250433830647257375058995299621055111009431880579326607123827134833848618343914250083357669685021145102749772111256825354253337521338681609880112391782503970975434194845287461985176200137831961371020832079988204251403264415283231385985769109305240161648393164698144618969884072941797773413996973365606367395422721817485098352655010506090421077341133844802407101504976570844345975189188584883513586393230532847360896974305120175390597588884078827738590302239846020590156115034941068266132108625044579052224229363124106456349859101602466573998283912822702861296227593684983364590973604360828407574420993398722716342016382787158375835733619256685681981319468123902023350157627096875085842597190647836659023160822243334932932760853082297059861737167461613676396989312805946580376350042033283148427408400887481797131226179710913892888086585082027492040957525277696001442885163912705317584556254874493573884299223459710800251044356897439761760883944458721102348031898231002112665671983477799184571330212562598836990545492767982832594159645014506607343753755274278828108546147211496190146053006332910800891097816168043974308867273625291715834217032805693345418721946145352068787206551970452045458357886358626483042790008579611776492092855777603545775248604994226829328833034831810341982572535455700579386618211742789425190101907316766284921540887868482353980876817346765834605876673496235790188994893769147299015580511099625287355690488264891853356547693768445962552282421277056184531638117303832862977896674433269655915302372682803351623107146655337256570979430851442804214934967135374744915192527444694504389363465782908122732266792147429772572152421262037271440246734291372499294967915896731411324076193928466877131661279951768200920819484145200845455447095510472451250257054385606824107459928563018508339416841269323014827787880619583212664158768524905175061398341921072579836340233964431607537483699784302262887564663529518313390874810906493694753223553417339432511900898919017644719823158989659340681571803952518753801159476904165632396431458950687191185153701096903209151605876131204404776767497008181238726342513547939355834997916035382165338601180935750628399724602594758600290327834671105993938149750096722231931523783284298241200606930869339126558007598372406912790766627613534089221938254439120058372636492452795802993792226746559834780910997747884621144878002357413824477348161500611601966402272952824887565444443922574480466227190330740154043154974603012997994721308438719516760783609915380394235428751390912778443020353927134247357868857561225956489085225134535445484848641820921675265961595402387728765625109758933913548368797658791425329127443211179109869110967349049662950932813289942782046020200644456625963378581086301104790484816624502264802291332006021554210854289765182645286843301544354636147207730595673408048528295452524598418824665600952531979671592188059606466047584044485950129976406306854047986888979149432632722377696283532034408098720683280890650605131818590343531039120998357832369162433887619917385645420005556816435221408592549822493037173083970330790494780034622140428970519741540337962019437807397155470039527577914431233586144522816150792668850596250739845962499624880174421018321239000188037617297501691961100777268782853369584168562114286689094020137074772857129443189535579931571166231947472724883615700806476522828580263875191670509158741455917693455437431434636807494687308267104913278439476527296148433518481406477553714556203592118318014772171090015475347284045390971597777721230420546192487585812712027340982652684330230662179425737321816131433910993261330265888561241284297401043523798963764282040302651296620591998518392320255931786836421846048244136657270333594250065873945518077499328608187316999539301635516117925659010941873953272914165854421971201326663179082240401813107513140251690446664903829806849281166167738256092325166484025043103909526290067255240296836013686715547911290967765423424183555013935795005576904777801800426963197855576394838118056571451919292538905814746776355132041372574388655044124817743173483202836632657738498064850720721483105292972936303016559588147721742584897237422118287512036867552207202004843185598329890898723304272753922127867550209054680625158068452350110455793473939275076388416055220038467287301051244921784160651469397269860222294132199156498287110761581085922176530591489121755317083148637711064250729620714464740776273592663597983666107150563596484249854399388425246314424159837081114919543912348902263172483028214803607062120993261825618412120256742276653289000605277417664407188279442839130284068611257880264791020731460442594188114423568399246436430125401606400530504541615575723733607929421802235106849982264252760666861767365044121433858994862472808053420846831430803260044853778293451392257227222006473002343658873064877521605386606748000353694076885560214277893407018083693537204669294560270594965257316750764220968849480598766033000227533779296440588107613836365024823072787796254621495047240972396092943433026034110492023770657446896383101945131387552658194110419853473613249971921807959698238477134663437151014227994517627359150646388665596321619286388767078141879603187766952213519840695740545160123248726440557141920805723262565651596693107524212911478552338043392448642930396561218805061588881898149561943865229947526772051291638247862977452508364156185814567906726844355387755874272666595379275983170891569560599895088673949015502920181754564789157112237239825280704064626133927919842331495504401774058880678118353190616926418695805507479430751076566586968154762904553478660888395468468061542675092331706750350566908622320090105279981724143856773233694197793893757059268263595501873320072124255057113448601333718791951475892969514052334335938373473554218907709577808180675752210766941204789503091142501412937750735382811362989965805982910760083852013876825979197291404642718108533419223722158649566885425346461926729376495388273411565241954298260649767202949954625028493848903757912983420427501351029321581412921537957873103296005538351649870009000043567905921784713227832796820513436282967324434049813980470105108453269756946698547909727064002794464256291814911553707984127188941212322675332798238840887503404337320826841472930626873278322610490430949619621518583007714213428340754620757849241736439320839604355463126854768157100810535226197004750140459243924556474180087916254360911561849224771384802522498682802972444477642909223593458004680830629210410556892580456627738363455376712353685278070772778762200986531359851991203144066912934257426091799478725603108803155890067201968186867264553029825543637915068154999140042557012602383590075584287446052964031454519805389190105768793092602178893178905728865422741989657847487245737467185098800875765494202475878041375180169106541790492710831867280580285998800482696930883475563507759486694006103869594019277248794645918083223739684016705205705850065848143844286517195169891978556876713273035942450893671994964628008314565018648817734024069945301256338449281633193174152464235290732117880698939453318258193304567486507672411976004124881196884429995119372175739271366680917447093817699469975114976153319154496620398501691382413296326689525518405133602371935583216494304414005678223037342618240320472479583747262106471068289547941586581135791870929691906467767758202251029882333238396239964057546300808862963579855910702649535522335129072435769009588223241430533683020988080684186457564167702938244068417474919589061755216697109164585851514699915740167004270643542698082596889412804282682715734440884112577403738541580633788256489266101264266824658677320621416219146826775140038369288147134905543709473065462043166992908237647197340757510130786391929811031265664744723066302120624757151354065359214479022604544261198186246062631757160092952195565467212463515646463128149752986961795498496984340907150950091752252139580960642457592832346748941173519161370998872770439563183347630743951136373638729624782339876154591379933219172771622724724127425169711875269242701613894641464876419657536847448669743822104643821547690041998179283456599590345475212598111695027267570429135681468229866542772159063945994902278097850007432789894635023666068892526430404943588688931367563797467359668608058085929424116347951046650963627200960203794849478882588373098141928235476771014114718457171968948808550467585458032194028874564311323650235047732268763744993919210981647662725057593493210702508591903442062411535014838431766501629554594201611652573955930584741334428026956015807506036642132840718047927990635456950375188264023414351407946810951984404209807445583847752222371173732662969614198893889306949740451566134562868049675100622023860210636141478936408982078920412166479916219263121403788461212224780099530387221673779660126598875227813443509146195210086145544221815589116586737954174460939681333707165955124869727656292846626769631992758180389990736881120418871275479379369667778403108449552183943809735787035588562182130563525116816100933958916502149383708631649629701951487172683633124043785951087454446972509406636529996109900356004701876730793725985387266307903627851676630133912362856260196245562285678567712916001539302265327377824569074375443592946123240825435508878656926602942509925551622872393616466581665722879956455097770883051250426406843303236359101619716296193468246372563174588713856696724879763804117370456084546442330714427556967569354716434575418919375916521282960421260361853114739288974531278766250853070412655504535271457261442356518208821822503861929521392785847559298933690674893762397462006885223063344752535048868107397618385202467584595878262378693306702287590263217031306060983108636280816669584661169328100202965952898494001576869122211266911511570199932394663410754020758798899658181125377353760558507273217518340574780426595285872734297333586555409895715391470792695095954828905177639381286757126301368799683919486856341007284835760732949167080192341282581249418197681144306354604149716689213939658167810629712807050600489343577270886220005455561148593675506476661493898983424808866451093963366538975969444319729840978898752679178193751736911976374826116999366085386517769277826245100455631317474711132537333226520870533445972749667402294556011315213542174865547241888680522488967145402328610695326473887384588332709296349060015597011838197405084628081058145089245206985586164769109368800644329334491420828584013707617228962628760236788693797924475748947815200972383330039331017486036091172831234127929281218044634268640456473239224904559999039119770333422277604152184564993669450413975220860414207296845357970237116194953877960606831469868327253825966619449800929661236449489919803317397791050162857117447579589519079775746480618525560043972617214574674044455948665665134933305819250862332285193757711962963642427861246429430566163588780422782174406892909671112525784852882826510158710027009238930847777649490382808436056663825923464915040495163334716591511426064758711759655199468681210226436772952219996959165485831593285390828682015565511655237838615576874089859840430846945025386925759055444053330954123206438168413821748458760681749847488354564703279705969833600998416860275892815297193210631333044196880356920326335251441346653570045147327155213379328419692121884968313731389893163496923251360039618222046610908282450143554689228609657091625665130519471579414884537836454081288555625441159415313117930544654005254134890416061186795263951384723117840877117492257244099603815221383714531430380222762952790764701572931802103313236436283884270238502969567260705480509429642687840557836052883058556032455926996989781235141196457847779775553232148945494259509041951201516919814694301070793577289754298241684009112892738562632144216859977305605155935045558982395460181293538289829846820907441174716812506703738277365581145467031747045576518113270228865491589208605606776184236354825784670723855161670049549916275289296073527905160948625464104803897279775465607467365048779042949913240584077202892377755117005021111105993156649157740688454362462294482166588384908470613337175814258595688975446383465508591426024119863920974991854025893506306949892527779243786929290901706252130204995540461659618099782420035651987726250859093155241255475214468281016726702233941480327420485420805108456741423106525353093170199560786547451439637153874467076713489773037532539875310265592006467619176104334182449888199772770862530861810809444599472169012599715316304919964182649915508377884090020138001145914855203851511393807943507386578292509114821587255975563414320972662105692989500381167523674490513512136045801585593974944513405116403768263123035185625088037837811841199981486758159075445168604572013778818027038542776403927402748809596430953887670456373512867413826544417217310917207578230634706895893350374889981068312977661214134858195527171457272645310843063477113816403627887458069351869329084099606826846353734242382947602396959839351837030677682260733905782686047749136454960244017428227634957308671308071758005993585987337059722359375078857588245133618580771007446022476988687787483678530577820434315760770633640912033649192486928432452420393882305708508907290042719430217115781979097202656427521676504307855018178933896823370886549444728604997102521728672572971930851607891679310710775638463249250383253326772961734535618948350615605556810335795557542190101981000983027502590223230185122229731094539897597697755974046610372307222333315243324883989858033221716110366775512135304490428434574505969083362934092060467816981034305275366881566146155636274542823337404750561619208743445670385202024618367356697644029444192027839599883498681305041559939881681744003707653350902406745307323492203582196397161682023429598961400688872628801498808666187750048912311084689329640406324522776323685105188375482528518943449706049802715510898706444799486994984551817358671554435747732562892169552739995344462115783699950009277525985482395143587186025257698185445242327833946785637139550844853839738371404285086315638548192262436099587219778824561430097691832369997497120775726005168428036771052055369892408104671265464139742419768102195233089581823011332816309198846581345763380171062496166552449249021169525949479298206986056074413473686680928480871747153261303686077537337182783798095001798983997275280722930548703151957574445826711514072519859072571772063876130077012452191290360349458440210650280211959217875809547354846157851533567256160874988406367619280769778915155706322230627356095060614859885341235607694262786835855732524693515665833259951383842458333574686754937034635390028924744317916761450035192730571819375783313201878251063329010606951404923072149177300800439404339710693874542283449177563505032539812845865816724697181859501490690781069968841413645930150146895165806641985857482594465228989492085028059785978851324074677678914234890798234259987927270318768239478127958566049089618490737291520390736029670836631804424771616194354499765727037251679146631161015127269863336241330242964112975797722389504510046330016069003472139101524726533348974801621815967395732720545888945940924638205492751682663487279018531936151930995413905014804567503931610604239139004080249734066303442500737554939018910189092368252296006946111728372807585700547474558822486158843921490393341376952531251821740329806561320218404235862692551539522332235042621230506144422625166186829577297012554903197218511198476776707000813524103315319205149479002524718632276057290547953088570668703513102009715695762788835009346780002859888846018880468891115891836999318826857815843565668610184960652520333397768566843086246201824974304463720381975394435841630773488505113674611326094076277032643923750094141681005125636363249649984854808013028646434004599190730610873033130376048674782410746013094849225726676351933102842966506367416081636623316364210821002781401072492978890327450527874883071008983000163789473714749060637325233758265172979953643475309699016559611647209290573744513154060087017682242477731077091933615261839252878563055503462481944487556773165590094852476007203966593482021073315027662668566042871355851975942038019338591919169403883090317885138417191306017534118608965995668083403160565447404765997200749150383224931688244898823689044322624119196921947819617668514873610868849470502825833719286522100262381237372616590120488304423785107967078766793957535717054645140917595755224554661335704322541314353819405239552403038021250225785632808231023605198710621222373442100188966711790531346943160091256085378473361164727344675995567591827622747048073146280503463639776030820697390880298445345914138859596480285711149654628043546816069097422633580384447046595067869643577286045181149841080333346804966202166115623418663089994796525752449400510988784414935980393184250581228418798622256511397640221605572717494690258197246206985457068421942049704775916699829240374867959558987334746828701719980422880840042227445182013152266941966490218218217019378020395069082232512267732931558095937960700837942799312736501889193329449866805798428482721871601139225788712874417509431228156014357582233758496420186173356497108601385117457311682503398834033143467771128018381698070138755849888334490329556141317585506113935776911903776504693720109865182517656251363705324713368626037627846820378781809159253279059568483793030359202199387065326870679004460688290781314328994954347681214884669393888774339258657507777159368901267374434949920856435550193182787911979826735053906106366305035106399928363842530451857439834473522909669864944810369911055474811227715679103303589058926050395246280064468674254857470363986363023386129160425445447736192250416988357751293773440895560493921519390842539857728468923086433801392545824309483574092286390032554945674917036493283983765177441079311192426476744407421289551470742470539321255275271075054510860638304099360814179296624862768950620445305444334021207878073673534237458987169232214980179283939441767356351220369291246170213722411359042947898517899331188319444951956405284262454353470452495732186940550685076533039094040241710115491350854698040511712066157664591070447830838533219903182857723840219357103196638784368613244932861083150596688113901942167136731545143040661143348821563657417193947826150021064200814936504753096247227200263881727581789926291739222451987119250839315420839589513418659901340579556328837309743548706385454071662926468640048994131413251075761434077089565911319197715414686025293198550406532936178960278189763615175881927824376122503489660298263663974594037371653695834551790788536298936040789887206912621294171010189496534452009449719699682859096498889526303244278856628852789469456096297261385894421461426213065401226808383232789646098723026431379981462534856072458002504885376591375523186924402232134118575861658170087753599266606440904241797096717578243778540968312669776603052510907276869596221886131016310145033327767118509346721564763893479747631102515814538994462251543838189124353961668875359349308999614500480994224473710050744263925278158190402683965126309125813405896010938826198152269074483602724431771815157939641521997416160324556778707316578203034898407384703982425144899360302182877218566390446669921835875123741305393990428980814058948171207330225695849226891667914326784703762080595672178098421586746843387381231633462805801580790609444268867945596670778421235916514663568795471126110891343124319311730395220601143185835966045112133170821026953628338438490996277517798675475447955359813913683723654188947828441115088998293788881742976646556290055468310034567257669448815762923086357634934850631027569670814796236735495599141417266288563838368139387452671903030914641844334142934167623486964515229554794860106969497342404294286700415941629683479198012941732880990120552623594297068623502104706302928771772295767978224355839484834508115590847351092331700204959015752310820191231328239063802798917829831265117345374853343549282098708329208065952255503646957627750450695419135445246654732980097004218894346690879703046424781288439626409144643713173385570711589397959989221262044056394871420644212825096640783373858180686043902282288875494539167377081438823488420087050570077742498531231912629870213571663889327590753297958832065184180139297293019027447445730476831381988518958747573560236484563824473339208787422548498392270514203999462341287543894615185548207132492181139594648682098783413567958004371555093099327750541818225922974291683257081162059366576864968733411030269827611568256810856876612181858589019938163831406383085357154150332451483971831904967426248818563696844977929026236648484801333926673055668633909656153067465808968121772462421768319818947092431518407962990176826610184050524830619725856492069192039460736000599068894227103277901462341112416030040526700641499927913379787744331395843329122132390421144562860511371069889063337393256216938354031033889471901546327676317194583979520273749271757610335180944477213810998140447009856926556829926307191000927731915410508542987605713975097495474359282974073592811597048643814262627985257857938439269444482872851479021176903121092087559608568499834460220920565746232909768643853064918081000692541462358195527802589960974658522987242075972189502209867988457814362887240322550011821500104348172350532049426287414855625359597479867397090274394334601187257420575408514151006573915709177338612783990360343710977558680723406366054227014859928327061833391691914417631280277626151867775035955945607012249903412212923663923212609443419590502479058885371523027806693837050289941792466244097273498811158535213918242636187677347004497007312325756105682556927835299074171545854746913327364150755928072456298663586117720532997923073269157088506372370490026249379230465260944639892245370743287379244525148958468555734400295089831175569979273982591308576944691074832294801613762309710707006636276778453178597347521634683472898330169768174192324100075486308563510735013416649346523265778863196449701019590976871040800633732412474136882620278061954529022142772776542917565609821680124198137854071165115003035975665505353102759196546603829022876214435666675108801972728970895780504440486164797309582474205867999491333124622004060045346356023474296448771192164059858228910978687020719725093585680334247872052317546314528863071903387965197790645081763187249514851544560758347923762988261031982194438890059475425701248863914421596935106300417190652448684088587437691506828430785843048642382369980862234575828505295698772755099106905504058279164169829027797607929694882739918947219432249529093757692834417218730828787155843310183790782910696421997683043732751755846256340700691530851350558361158873852629910133197641654298619754287359842692786013861871139980534520570527310719235971993532337503422676316898546505722808369880686358452474895065981691632312621842770392489762512104431053631675165035242393280551238354664429463366095997800319800221548745283079341603480690712255370296291060655293198119661586150172193358437681336757931030512619045153451436855875587946149574995183622140779884690270760293190724953477124306768182125195207632156061425375801411201418251462513399450412743810642683536639560712878705978740532111216795807619403296073433790999254153566367270721874816921498011287443399780469604081651605373041190283061677465477101151624145171323257761383982540530219410414235215953703098492266507730458116766661823829114875691398088152708932752570222828444596758406495980834061222983930246728101734861049746406112638592049825921792004060296231877240125226937984705964540096715273903741885670434420418195525763774969937850496894552703476097529308282768558837680605032035675414352606141989509705306919074978063131526873484559992189879099403712204816985045684105803475371530762375710901328300319690684234736426862640228232158270105417961795334239938634763986635468713815371439490212513698815061237086717443616520447455782048302215583246890458642169614020820170637009339941707404955222540712154509595230740049560950454776777835798370964761209371323992818580332141315903175785493063657784016304233848013658216137844892004954852965600998581702880959139136051831596067943623732895153272772833464307976003518975255169833682087731497995615047110009265686816357011444299960920273180019625849462494589811118863336390584174476491957540598686426661043219817984020641421917603651782464594231241335665042788180748790778015887187756985781326166453165675303862525757538417218692445702089402084928489017341435921533232230526614134864269233464586462306271056543711463519477048141442876359802249067877288953655218531558434645506091220549144782698042207393412759228880784987204014228940260539138862411056893672404096077861600195741508808890365805971635303054698278940434070879679009039427321244329352968404364593561681522487458149355604102113582658205448077877667588628789249676741810291652870564443317728729791140535070374211159004922181280822515469070743916185506448364645662870199498552189338917672771427875968597988954005029186161910721643921784568356913446875519800307351627223516818650647879271521117060650147584693571436646658948269055608059100789257998361126425226414388400884140979821758436339420334134216136521942912290557753360469275843052797535953761800926408509528097246497842931560502926367599702477212616908901987843250996203926824672029651199385183157106931409131012679264320104108958681561284579725141139197449517264176767078764997294837086932851352679507422164954553031202301840299308555975569960860670726128844062166893392678570377181864941558287218309690439595118688530839749807875793081136373888500784599409130841735575161171443298806254017052289778572714682790757170300148618184045736277754969990011085579785368143626826169866936519105483952000567587978994091498233054412159272202931343210471558771881229799633547702671502955054345249928876494926774480684360748306994873587526865267817379509120209150105976953484164826339701998800121442644603762282349493002719211234261893568807530038167882920257881563407098314664496814525083342868905500503270795831068900959815132442468697692856623041210156362919661108265539711548985669897394154364798838475619112947864833551762684244782203592491474108753407030435039611600237062874516557215289783183335345612838666760895468253199825764426528093010623832235948177410268370087996255809604328368286042103619015490342487277818641150399689335207763713152540486084631471113764846694110826325049034338851851635129879879595783593412757966156678656309590121233347485935520870468834473675868940597275326336151870578560904993915769035183348556635561541518115703040416936989285863762731065758511265713674154007621529172301802820085924158463569104671417604527323690377172989035529953505476218475626611942581519149884787170601764924277660106789127103661385840253693181263863542391155302036409757459562696655847684202220892969941711853405979809204944974167533574828802396765620751979444822097290357352115484679584418257703143862720999037434785614717651270396650684013309008392484929604690873256131683275894504837208513751337512283939207592811589811194536784267042777202184131654524292731917067724871666620548783796749006653326030194887628036034969241908917043140735350238537445578914508910582329739806065175542921112813161897845885524906632794004653726313571466072141890637242473236894137317956334219374824707286665000858703501887579564392491201209593413282444500338038976787490741540661691459782878658396999022770524228865280563160650525964352547962393863134448336383779021411040838914426461691887600610064863762224549066710332754120477164108366209851110302522530155302745231831420082133150508832521235312841132364201872219546734240335966097925285536209594151920968212970073004308932851708788303033331890764429725023159805082932281929493710154936672008785657584123577760255822059752125210237722970390173242674915678008668810710480585362441583484862253955244582608716237434278587659435567851550891411765536822185579255778603247844047858800514034043443848906262652017500528897428762882929425159094191085539010436286216699615975318120967735688168172086577824330003515113892122592230637772797165107289338203214051403913140449648835858359695652554847847419370623965664876877119282857303060427845184130367330059084993994115009300542422716986258959157505740838492634992989414891839325120949257916998614053694075700933073803856239509445998266210660163712261311657487177277834457335576531408074353050458395895041337020831368667285564776389876240618989590883581215412945961170664024664641517709338140520642218689241913999839583246729967422001065577813598666254069000615119923213217275029158051485167586019827500864055096289900867024987645973387385506220796285161911179816882849125233410968235191891927492455400221845751831698529834187066484060256175525551657745294599120026752889003848270686789551258923720098160569507413032718337032710276675152600545552856584713398528125508226105055695502078684431613605015550553098149412728897674985134501955667055165539284667443592301104309606283896518769077921916486550746020728116218988521884736556814885966216726478741370895900503803548129117383072143138717482049946624861292401500135125809753038944638673358290438245660602587664459465594951370317413812252691956302639905730779418980570796715348958733557527943942678459092745265392056575862802033180808119070213602573184642622820319774177043932351615777901951084443273089287557121055404293742653257716447999043128498456362104284163217488298943885835784309019351143589434698770473938256649434412730330146344990335527003891518537555559717576565224211905497982418683771078043118200208726687050810148494722141018579355311760291892557242899648420807609258637296964961966381290590213260641107360001113492058008051102450827840202069180004025723579537120040642965631761511806645019278649454832542477498327784246097727937888505676125647073374619520041572081468755258854212195702841453990291180038824873253925538198153686371594363115263468741747193256266771640037097274347981776967067779713314641962386586904742168885256750494120141203192643721155211681882060608136337730603101609738370365467746961920116095656492502198951395917789511266654160703346981356012628199048216069387803752482658825818410689425556757285082506561102404971411805771160314261841009680955378947230620643665164923385729482418576082925307032369744753825423427778625060070529166554026631233047133700863019436324514441321887919507700448324024672217393932018838728336224366039269813575805944958750187316967900078576550267955238727800726771073789956429255955499519022545486887393535719166150831058769788617053861804174577330670692415945175798297428330065761050075949954275436486188359112682901137966876379802304485690848218117259013992388733306123798533163206489230646149393269599285448297258904109660398318817851688760038315471084754347099847599772079795899880135569081499157762506157013370981207508202354617228339648895197352413432270971825245767082043469997782514814818428473482964968453450753869799811614113994757761291823476737441585346260078032474709124406475543862862212338901746673216010411680516620906299559784191442674434176468283826427536660519762518284657097456503828529952861111703755695012767391949855871034409115780458608181581612697474952478167795002077521784047846352734554432654711983635107211360880267194118986186655049475056188178136692331174014885415814407019476366073889821630398564061496620457865126860700949941320678291661307498058334215055733922108958019618956965068937942510889340840487384765985100246177529708972086255048885468521454620696266405167718205060994119586765380060101480769271404913211248893715038939458015626156097666594910585528053209906371180945898070625162656254934912764932859300561942834021739958423817097007765671392866644916168489664399480699710672082275278141497116802722329387360393261929387927011996683334066311293223564886801405860421827554888990106030943265519827357102396549999865379650403370886298510295877848223875502264628079064694531887198446966750897800999410574443329524605496359853903322238298913277891960340242427215360092823384392173940968310943739276647690878261975651267076171813139291792123203800926864951688034908470774285992023017210376402215262186383223819618607784403020562500461919607712193027326914881557471985432501724649967277012464334661120694676022138707050199224192174545459968326974049297907866663861027888595608124547059029547401346468291601654273106998484349998279536443481414987895307810690198213821103741690966348712557001894313879702577831576264928138114033869248487399251076010289747460567036290177882309105590310415300757483557771261868110949682328163848601257007442185430328806280590637417569512696982135730894381588552323721944781588402866244928563187790296930490091111576634969067646095719087030537671915413239623363100074678810315889952102918412841943973483764369673855338797609235233522446459613924645771644438775102482121894854833058848440517838106710566335421862945613028793272764613659421178479016411595518132098402038873557571176720606328121300118482540586080343112657114652907309491400334520314126871485007848633858299741944581970532390635519218148163457288379259351549458085945426395877413621520235352332986577944412971257491591396638009000665227039959492687480155379230787676252172271486292117207053489638523980434719331305827934866114279266216588705363284649378330170304507063173459123892565849648928133108229395060036533011772682421583933953672291057886095551822270282197666959147424686426182402770970453488460346874468153928503867314360238205252635675225040782711252217554931962385658572567487634077689411049664478301123982176536928487321303112252505999531767164675945609205809954138589245016517183772147241376854388482294764654330822528158485434697215951709573520853150898518211173522143467916754613297779751434993185751832100550495233124401901403012704047561114497972357802082058370833983519684320562292671720603807603394390867281596058915180026353756861929335613793144856828436176403501041642342823273105104913152344034005738236184385661541332934956914815778086889618420666918528426760310452327236948143500616210676146613813748859341892112737241853116030080207795031800228719353699374887781407457734236061142693616946111105324304259972652394679437237518086342254808649845156625293983063635715391390643285445767152938045450659722385855253068709154775647721004641032029259070267768011389876715847403804306246579967884321364204889737994903048973604521585026600603288506255515229620647423841537444490032357243152671581715597038665165179086537452341467293012956135376077334514516145610481016167352790742698896617400457305303615881181027124821816951422717096323211143063097784681864326418364502607081903720262781528286613941562604801924306870235647828225121618608104401065809180144069565819341770070845196359534147300490396285938346768526584639249896979616515048925875915606145463412764407016457880168540430475222365958830215498301482365273040355605113256472439577331154317536988806988522179152375558843645553014700905431895232562309734515512642498686113427487024848572534582631540477715720521608325786768536960146067333956964185620518321870240175152912256361878038773382005774210052984687985885370514798229295747580753971022773723549271010925733904731240237213078518859099198923123925916493396887515531347669409432672335592723693626041414873892339959916084845753938849345946126227338086812908129694772450655543000257548082172791379226532015513890212878632079924269938159748929719810844556706427225158810384871406270461002972008788808267480726881208008949029112967764121952007831772586985780705693629102373696716047296798510192978658445424827063746425740163910402961178006581555845203257959491393627750735784462616786688578695485902919100113055320659869646722925808752878631062774978625009837675096417309684917638424294886242781391613901205661857313305047145623432074226173409863979687876615859242345255791871354514184316530070895558176642211652400985573966909312087382049548780387816831334262982732263821763729678875309328656788632535309290914983616800450663708258812974957716997124493492452936000052149467587748305697535826270202079047190079964671077686519921507884331678577608681872917078310172593663597629098562619940453977905835547109142775494160135396254532958936911289375958981849250743217696311856625966815103105758909003683681943558289496241071436657624608245937400897315274295437062640892846419088930456718573569036509142394556142629968873890875229907203931584904392630986794779437066523641358018952082267334198276843343557463632083748189000230525601244761926208934679091394067973494254801096179320315731902358365317043763647302465446584997692397714337312272981919591525449950662533364795847838253077638535015637525986370214929595991165453868366813458059544230843022473560700804226908181879450643916500095023139064580318193616255871199557654836290505760449691788504724485395129695862037403062850135548493793167869051886968963582422760841726035470710627710264383581809844545865639916639033968389820121143880251533674641594994210454863406263185633882406033615093910179104529081160775617574588747569163872348584262230459453912805544843331382061594371106350850679685375104535248996715394195200755665363375877409488882322073418112135950081125653425260692356941391459756623844684234298768774815351584841097269178168838788490519530856986735329203879431090477373175364677008222557780697892223535325792677006229955332232941538857676307479552160860664735973400820009323748129266616740582123367166942665896897154834245924557499404882486220163023566916088422677127463265771072727155456186581490291546689983131532459084652873166244182917001475503070698210898425352767362705181149152398536627168105675635682514712389694534331368775512076294828320923976250002479785684323027104556473337221681292264140301023984421403297919077898104696491437581716309601815608497094735947323486494562519403887010457769093028986264991873211027740456354321723289313622550950887684194316103943810094332512449236306812195803721500835136523249791147948143582469558495761689601206071975595866409694082390631425303436444857949901003846285542972306442917937391045474904289025184837924519097349564745207937948360141364705750284116579045386600902177462367986276379972951332890722629083632194394829948830698802617917158149493174576598385525958021756123175522978389394799854441918216328770893086740208036089208446580245433848216418049929908813748817822228114236797070260312212833772625576973175345957677448390527992289226542587027823926603545127442608947127073331288362969513842279066712844871499314016558684935934403395836101211588410726495512676159157830977006019778373835594443025815694326894900279284630828032354509664199824703202568853013632018866926373214203758078863033510838026437337888701753598970621738600905202657833585610585854595709922128065218387091457809920133444617161702711972399702162580872705949909778588072587188452365798241804015170379521344085834573159427008576084251209322835335834783978074241875892584695182132490608361203609456237440510966114623061249471641741873119730418513610918501490161517108145813655552425233979466465537646779969591781758845172042997375355391588995367576138933778244127413574368834346758067666922376958230444811172616316408270139482690974206117301750431186428336121249340091536929063746588297411503946655530775949157041666449336087764110245684034241145280551133397406877582457805509412089818427959475568479354463038117368956613230629880304303768898879811619221038559757871769329791377499361755872280232652587430420826029440212445397072306561755646185875355776797095697763317142992630982374279419675331421428595319149714678864595544848885458737506981505512708539714571696570015412295253844679918424470264822533367258660655543781024305430454505600546697139597539402840692552194725862102467356303175047330441621711479914379405478055755674550007209215489610194920466725979947445341591940777676580251804033525494564068316232378091241234265329846350030176358937850894433006238758918739537173487448207504222213194069579065384654561729543381561502781126175497979576647580320533173627751754934193167776164372526788787898347635542620863021271246016238086234173553677420736078297937426734431152307578530706718578260791209083619682114457813455439261188845283577062389709221294341789366779495993382636266949768082387410136764277604308609708937978272777209678521040494197794013722081304649720499275452804518045055320650449726479211492060974322588000025056246696301285067552467904043124239234375969269514141964073092319082345757181217069754145986345478372870818393656006639545462063669791052677308641452300818799025567677656236965813172595157585022459644181836137457428650103673275522646818247210106932131398231289025026895368750499095641385957441435477001730629007658833769239042872369430662716577386262125586544812102186739667679300980775906009504393156676283430229504412696910870076646117954978444202331039857027626685798631423448957833843148690357203420631962790153382774699938334048589288313307025875651227353171515529424609758064369484666723959295802230771720582776931963102921980685585590921761872092018725900695220859947052350653004909688341179104251295372730346686452424763325736604943809284610635718317763165626073469704816833881150090023517153826833231431311605946908409252612106955192422537198763842525318759804200652395295973223414283648036232565907024629931364607154118794661824426928903330072327386777064960000354529963465727803950049195366110760938583837066391539354460180119916889524917581335129510336488488764814550211898632781538189481724346640421395521229443241726418236216167355417004313794701395130869699580707723625930244746359387440580829975464277869616982972586148141933397819906995608050496473954187263239092122417739290919453425962432031643254066634658846075987528341010947733554646398582835444480131320773240851497749268191981203430366096037348363246382996712634777083873108966056655648270386835476153237822377462805247117484771728514146596991679270930460703074730129861960229511143892352390407501996905808269714782047755253313822101309903201066829536556720833425157231889324661044896302971646737193500229565971688573898976057597465550993876687895676350564432059438576094806480494291879072109956512321249202085704427960551910346869524079138104839543098356824678334537513993955361204810756095211926001688198142882024547545697684674023585484824348479858894427818683119367822551636402882250922853926629550195417982925430982637229489974701670484509525726268335146423138860932871184387704475055259352923077067218924679513952925954758745723145088086847631070907317999196081166446253106542301722746906717984432672870287636325838941759757308002554041650776107627670431104285271504616994304029718734481770525047954726425379679531539851591389562704544389031021359445258570588864406783263979490424136054971080922441463221523492390375578526119389206749540347909786086878474168009396469927655507896250062257547125438794802734164740713898009484195919182124677762440516424230662296643957766144403642681386683924320552252811935239181823896344104703690688079543352408854271617683450061795827882076482691684893290457140948152552760135322991633003744143585152637459098161185826883290620875395989340041624531904649205835160170917123772509224171647508840582526543398806309237142646564703557423628581460633418912063988647565647438715702128571128622295325080891609959737448058677823264253459248225944246273346475453360019488857295814156086277352593615257037816799548699825730028531880145749059812881807532273516034369808854260160262618182874546129509401137996175067393456591365363906657773370790918332127508770447359775492632607528725073582046183533344220714293727549829203446281382602055984873346891967254196143274399946753520848005451804093311631574444535761135815696813861433401789262105741767043333720026132247580613060782888941704777269623841677843373370201304893883811320494094477956082680310708868752637617991296935332228552718322906664398702248029731352521343677475591136481744523255292480602068575525829001431567846800440519949027570342024825771427188073152152830603988765638641152951064287356515628810653833879073450967308983397626096946136224120763906887380604187124231800025107965417357724281700791845089446658385502634111088767271890184252916368759698278486604053799594300646297138362127811186595715001787205294383279112930757205702404646231086138695563398484184050388113283423946667763490985038955440115860579766316343078985840719347543940146545946427598740857558540363914813551534596845118559711339361343025946763699490154050068217103800084796269941681703055922667979148972524141056216234270143313172890215045776050659012768383907587023735094317950179561970139728032223420525203430531986863694276525790431854881693423429910572007768881684296103608381844376279742232646040072059851316240026702461950560023083744388791833786651700433699281919324644771050223494222955951032642026029953606962852814531177470393972468817902607396565214017687191558097949000828188813363173648735409101403222349964279221742233134734767442822538369897115106842830259100478253988165151745544649324009092627195038681078841560701042867959092580949468640094508913426284428008330805272757652527862311284013325118971525750661753931653020247718477945397658881707538973808191226948969543912621025754904938178772047627693875914275964844992638828627265431559111604704818294919762053294323342450853845543928261690871484544318710683543485869857570811723114409242456704885198268612520992933046724842574625686069521752147036868675448967881257093338202540034955612581397495975201501300244385856376841699617506768979642414390290358285990139892228372237629982964576430876407203437746422505286645302136201526758538778144285247299966360596261763377266881820039343734644734795859660091637996654200776315763873503590370029719447254586146988200916319593094687571785299663739886910603497108144958694873781627265622760186131997073273227537786887068915656463772960970006232097146516962265288164600968369581128337677551562946042824614036940907739016464518626240530743504166928189905163152180744491498272700468873080554522672484630419770040637542367068888324959890396872999804468224355735188021040502009332779500843459467059073967401586723152926204385131075895805729209422688964689499412422366051658844418329796860346044536497563640658750761751900002784485755486431861063973104841867957545699695830715283181945502988546035616956097358414938727405713378411204410265208510478187734110687438760602894572906871933087727042322061444348445201302209431710040931836563695019965544524270636389452737083707711769982312504618973231389997911343598992781228959000500749217942790844178626144700005417380732018509355838907294157250340114931316470869652588769149467367001536535312865389661774504867998125921766693885964625676114982918221914300807278615157845214493638905620728565088059545128702521098328287711782664946666473165125768587822834424524261621833052914409230265890637968749564298604756884993027193230192900276004151776837158134815146327389727594910951162269906103036183713703341666868312985804674187586344183250048479755519991257663778896638579116940622089690372778514594342726683955286480742316832922612846222340798604915680923696893582902815542426638475297750783674489102520622843915048833306845971449274136491873109016306784570167093133568411678467702115009975276516655786419629620601605758055357135866614914970342415217077950101249906297854735255241483634120278639273667999240761402526551152821979611233993741440089541651371330902643654911649907905393572514733047039504146582504535982036353699434824142571549544860859341739749829930191321209517137306934514777401123702751560055464595502082051448005200342980650424755453313439920986627415116760489430844194045869066542644912769742575500417071254976842005078603538770954516206096810623518060568073166829662648162611585645033225933583281490409632910087468700973114228814560048655537762854401196530649974920849777431756870077915921186710860631984085051475634655893432529948203486441164512450854926055692892453064187748196401902675998808639082494826850981654992153023494208738904365321718402794542587849586140331217732695000921972167273478821844706759975423025145147654233738132329153410473270655502736035864834973714235691856375582805559771712694329780192534294856265963082202714189524275680635247246381196389171141238329220799358333559862505694149293798578367796450491664939559243334623304859985895787491483083389970909076768899535606179227397765894531081265466730855001962964324440716014231214660097298495963331651076564244987778189460110768582707454312855282430882888898723037393540778561121841890592483978194331298449365768028274349801117841863213065575618425051443841547982123900623872680405412079672414736774660217822483493135181636318080960749313237447561171795219078979849435343786199501895695218580662368853357611084645352085319306020233714799250255677208081302484107795043787412410562869749443994348241164212819573517404623496349870392483688484981221178432221004760898547953600145568976166957353930868121785331592380576225829056542148176604288306981433496220570570390869620214244965030444975747834896767247693707916525387721840865856112637999026380268219736166141303147232146691665900309723572704808261575379786769199138960293653105349953739982779006873333377223806115508263506355361458780626263569473631925367505687046986807006998044825768673272222026209076306231429068312646186116196208080721471569127786920391608020694929542677910669180709522425593215534981988997486337269241465960438440006098229449231480438433657100850987391323002268426157448281529438399442708859062082845249911728529113024364763745196838825413254190721615408038354521171912989246403530181572116691862296034820549722767425626394600593555414806187313591390861236547151719738422098591569282586536313556540194415563345297417720404502064813385201327650256416208911980355607819522100300492494346596393991049657145718425955933422502065452977416215524618857404935631249872224292867218177662715941484500474275973996122368513796475355582551353445422213270577001696284335633137917412929288265346946626848344920223774064563550434788359430302154532949225200544248655631398682387094011635093723349485378437923021168965119614642590234102220028932823552740432517155706130055969106575340156567594034444455959929853791820315573627332303516870681572070859967700035941196479462814611891457966848559474652788766143787430268390925864667614996402409868515975444519421073857779882317144969851574104887211120743219739325515926242626178975495673500797120456405522410893302093226101879698611281154663657191896912666701399575777683938277564395712213165928007692400090967482515151724439519051820225116804853552650574847945120952749521998894873346391455320133799989232066674318520603778350077417120664188840038688898242246755423468158285117095298840473961560316592993375537421603616810016880378450528948959644341594300786572424702469186592111133583855446848792662076720917115085305652204930221107793469490552342083481584993951553886015073104726609061509260434785778860539449633604715437353303622851766146177794916742482105969871505218090311150941743159387827930546510563889246086469579149804364142760251322423811377148133292757460508970595369732086529421215997421424165448198401545758089438768604860818560668555563299391584965090117526504773915289508595232314935635398483367652705104429323160304951119082372600120128471261313726622321340231966922137038999805193372615702931411041579387205320105201599842962505483096773256315351533446478446082895324367022830750804042040472525832398209243137388638296563349179554910269726455832367534310253266464222512769642484770263021947049937603060997668587117258281963448697467700419827600221200006136924583368868610024453973777045463262561536070068628841238715168611306135680321513665018074563806002442688871746710329225097866846498660848073172989203056068118666626279437374926202025029856605715882227653813218237645758917394394917793491972129658366640324000838030794939854542900611450677876409008703357264102407065454815054960933256078076148659972313689864565736949788973230406951531273497752698097341313054207077468358812849514325310126572260554537959416321484373694527646790563436161092637610411968938718541310735061978066855704925812884902683648720586295918859773612321703602859463101138254943402441206146659773531778533581490630436421990432282455683369648655370135090958203383892457452148258637901004191917200006479752583312367483797375814066241196456254283109084265955133643561426797432381175640359450451140171015308939318589185263681285545599794210353498309095242431838394888192163644713767529694611619071954845115843786179585898028175927097155337335345458286470898870608412512483930230802132474405018921868600946413357407780887819816927299704922922737055767468903252524912208506183773008426768774984120750610466654654071908675944561498979566372311522405589798087042353322508033924455790383464671006717046230711732822406263366262881179555984380978647031589908918232510600775143420180555328272041784041082307213975378787775578277425869140868464752279524701903156971620279983443971107356369812120448592857172264995418416227457441997459056040782668017063156535009778423995756112319551962943953510255450491142067595305656536607411185111855431323654617454042108121700937663144319308728399468763242552045835132303044602910988983077920363543530290267957854825050842037844676124755537382878462373852721043915608480362940242608913921136666430238832049360126506778141541993122146732595771407814572421809456893113176177673487928986844357891823589824245446992375612074241471239659667662174864873259512519483541443101506740296052718683556622030025076042029575931540116244882277644912880032506952045516467451873103008195300893880108278205337492941565096269750743470925619883193270066548347158952472062502480532902082631895489259374670897989849164942327169462209963971459746618567252961437024403538612109360285025362233721831640086375123104511260213050966700419924644235983291384650082767602550962515180051517290768829923205678939448300561330800807542234546032788583874991140533751694134453929743956074917975017132498130919002146803520733879787863337142503737065834986023965398585031988977785205430748082654609633611831219329726692966097875863728397299384661063012537879337032444766625604414769380262801371234398038529729296475078362443349676463990590448208720581293347054491390627674047204854164101284651685382555403629397229013895058350490533885988943683130255372266100290081388193949709923330197981540966245858504153426168072026424117853202844575186974127641265352230387028475366382263454439675696730745440982069606547771003138996383508595868073746495458160607499831172055374480581891055958431512626975018213447592644802206995244980823321614169101430308555586001705144029308493995344061033125981299466649002379660812987811404754757845338342063189913267567085865488496385027837505260246282654570407786885379488129029072867418530980020846067484110031321497344875268608946768700804294906662413785725719499801199053214865134005784460351527176731333555127794565813601574387853415731320928325504489516259458879453084191347380634639545933935114289045792558346110126621149600435889796511802513666417798776477244015661780725415306875015991541005322550723239016840833192805474161645533075929858662175327585217809672046603749608148663117164953904956505875825941865798662807144609166195850024206266587072440591639362454612953158876321490390665232867443423136821391539753474925485158109045043649004746819529871156544032991964966266748232573460721225441045164480236535437158668751601368818344809265687623533436310623552575844452821446043621532085421938678999245466916360689495692461105517435587668439181079575683837297775814913502468663106813638776258568038053539535430460633490845040980116179372395765535259285779760019255410505134205122265120439251388886490427676476649399550570020259701913629325184264018713794449901834882177022371832324500364906433711568445235497330845161980695565732233634494676104311067089732900926590208962040853683071960597104110835886458832930849171171668231455957007948906813756287857479227487238177526392436055695570512781107688359693157366433149143617778962553993527148078033592635325328605245351738591972387425085424942773751744980222680608203689591124725006949189286403985065465657281240099061269485955887854130308307014847172101771554192837226497651402364849718011457387431845442978750719219427527768190530385873425090940581940881202521544527682529934900501708394436700747017159590913448332126950165537352455837597530350827594323149943150620775076496786055758628981796000981611067353752273512390589668026053580689437811814437750937385896228440335770111927985090822612917285061943803943301365571270320432107796022197873206864945194348865067371108068729514700741208038779514698756498171475171039236204196709626733536389326377263191439950954618345418244636680832563501904330314980212778034673539024198398221303025938323010487639476644330457878804022449361186459294187978989572248211204257377893337255155896530336774328917368422931333281192745313317724213927783016913405958300137225694583531885582734267153646267707375091866557716895247396937309766433338054575660520568287862914189652830064355044228377643283009810640086871375514852339099122067368766676033124382262414683901384456171603338016111804998383851468382008022348734083838859345405597070779253412726723456808633307754779956319008367383362630129953702280036760016338840028841255659027475849237475103761076220563101576324748512763995456347140020893525595720225363712258703869440125895839228047365033143150438944694335643136061520328278116890197726593389779927921404175131385558133682675577785814751027517411266384567683240946793674124293846759568543799264422158996116445677433627673441996654150629022454650940620756932672263380088263555047081359829563194840518198104967808281682552714564994903239460547593444120342646083006714021100896431080567844743522990580291965518446597485438274941755099047579930504439830112620420646056884182262133105684109309197391302269816463903804500956271941755605872969802318027380121289638383684712829906596969939042792240467814158238186410589771674164477210117438643408598932897949830438256461559319787248494012724886458785429300072174015995823879462483976801854733894848858779418979508475765823516183522921177942451453018243421308251384876679764312167595923974507736320809812663211428186117725567023605499448167592389783545693770872305284031702672221055277119731179033999670806505098814026493183611674554467280209284466960035475099582063189471998891790898358507107213750365353751405694796397052879263269010510098726533582502180530795067543134218543050529621457659613353634228710518834023502349212922551743269822284502852283446053238429539470223890508413559042415379335705344414650405055868168990856315829939394357332988342049611833034238664196358188381565307708299091758376424179941190440514994368203314216432521410250243995968311658859633589918718767935875602270796424198546732848101317153222692062206201966388144569078798375272331390786250813763688831290530689918343205157119638583821625752902352214923876455658240206409740140417571952573378873012015562331748555035212124189098287001481588128761185439206322480666088437660688757290467594036940342973245531812485997188773335469253919204247272600239935237733060137394203343685549967313583073235857250126459265845471821080398128627081735258451064172268057173815292812564421921154946784499677763254583919848642969047986778964121429110378649482026423762143220342053279691333903902331342884234709094883236166505789306629920632073899429788037819070726836239430729648911187434219515701843057751294597919451368702916628491670727414380120526292179029737500262265084349685783297779710551105683760668616502305074418206733589901578004857926331484975019358357983642720216787984984213952132003286335529841561038041679205823994747833328621066114954014179721166391354685962213901313337009666928630894010737877463638755884852653127600259070760233322557747154476500945674694582890438621291725832914474905243198476648620854999187506292061825778733202613704773100213580080971575456772837238937638643847822283008686220462608214292388325157038445304486032234700794044097481839794221607243159385866144081813637422952201773919134099423908371967720072305498123008564669874114207023064000986644622645686393556288148982277275425797222511151506789031748195875498199585379167146729034481821811421389840082492896787551871059855669775808497698952932969437622205288277713370614848017784460077589553357641593077361570963126520359216140039723289669226589303785012426160102533812773465643155912889707749636281573315303042227967678787363393404277630579828419613293716809180147895421389594754612782939494482588880909475863289392815210660317821502593291590167870068566151862167692245757026126013082666344281874075517011098715535868086675702033179751251114522181900549292499471100239202696540374708045029589250652996054433556656814370653112551462235606913930856946245558839221668197690889733905741457455357989206302255520048429448432800895373636379897712784206509354699789066090086064550078339966893497960064274871040886172637500579401696875678211580053369403073784421208783659828286015317388381994833105828153829999629072458354972459202105325018560882795918559958165898363116983691781303642198552668167212662725956159503801866846235681247300280936188681596220300387133016571939857691955662687116629889782908677690194472111312430922009890700074086709298931406398164767458236944260368246675157646985788285184227894279855152153398885481125901991496399165171545461457526960946622828482629221587444026675947964848893041471136091920098005948010371741140761028978148584724183510224735150242009968494337585433982733320471111618929120851202456875468487499471305476273978432904584298636585085521172180714274363587618541044085932215963791014741089776952047362322662052405857817857172314552430000541638653240106514292147384964906171061392016369827555245783607136253716208580773225604425122120784194410022261894779353328265617270231623534034719261778045921385002814360206059563411780817605596261997463192530824817145943405974159219510062681923444387918056546920416687415731575873990922519851313544896379704824744268434389922353013565197035798332757134238615925941588906505554720303835399617376095921950395739548564952831354454355114058070856373061290544886046941969082911105234803521440951245256521158995846071309982366463121813998739092721743588157910233274740662475911092567473564451784312071879620900974748028370965507645929252235349995133717885365351931318782646423157295803801200606411149616858830476148336884999107469792329661977356338348260080668279342858445288509190209458833305189401570606033801319866720004185694585018278174861051023758676458301637350874938269983888864557706753262463973297790358137167905346559167576162669740908733506708291977532774764500262714450216060186922561844261732459970092958214831842660387515259576576605895911011803635502718966711238872723145501853089746909304088790548355071517464333745192654542225813318541671215238749303182253423140530296199973220898153998267960742158302352270841948033027169053413181419033551983124793681275972830054364084572034116260500276872741922224846449293333286900304334296135880076054807685446011395824242745776518429160598427002540548401306788475995415921912583470333251737932000934031215861893123663787559436033049715849363834458818559966624763135533349000464699335203633841019276002071753884826546200926182884225445422057516979059628622605408482272749174060278075822886656505517090180806560770482169675482895789245216803385866785527298880846058490688999441519977552778503018567232091416102396233627236665306691069391905463945073718027928076794903347116076297809452818816789622963396892217786911785287441499551235832293063290321869574857980070742017303445762748913753895585054404708267288207961321748941654796147942864894324737628053606966060526345218191410182156049286956566759972691822808577996246027382722256736481375882309998187707077138660357036294879105251234403799827105861889568237688147596139664376026343838382900780466899139144257417644265419078365496965905641618246122834096116329555487128571316190329251321840793523049660479567562163247276685039682866106716348224570398139532367679808133264249004150233184755898581581745106134922479011238366826182823016553936204987856731394947449711757882699128094423066462067546770211695284195086156234861096265963304753702165847508508592349952643198926933797708171299404477427729575808088757643510594168197575599026095228929966507437475382076860096274630780795440540371155079319160834768009568662312744942351309121301814389383770629510666507194419264836695566934312164504366672591374987522698315418891351221317821638710947045731809114949740687252460109830730392404695528009698252069962134177288366900314999327005644916323191334307307850674956387000489209082684556774552398571224564142455932197121725524527074762101394921589241826679124200768005246446576438005159747099325376563819899751720225521993962100307273217526340435354232267922049850578668578992972397124428976919167367846092658116848171326642179727842433135067981950460189466983525999845263489750591820643899660290955522253273405622559253817709213256137023161471030054106332015768467527645192294024687252467934093436929974576512288210917723647775994044471236054264535268723371926820642166380086715792977844552972540374861049871271632693393605930707295670969104962014215317337262443299677716131642867477611240806723475840634655208499417552924559115596483777837227195417083478110676984193660462873840212852407368590937639557851504390320291253701288519222680318386943099757663785544503267585814037539786218878155291706432416493869623354845618371718360400092736475742200009984375091295367748219791499387950989112324540496965646466265074847188326148725196100403729609549804919347630740711651611810639108288942011772675591233034337596187961964366784512772591229813592131589884843374697535433166154476591344148123568989023665703168090138268203090954989778965802454000202094726829477647195407521229865865209742361280451552042233762776667796285703527324199384754261182620817566427900825239933220134547872607506619967672962017225040365347519426835258019330710167494215811546091060966678836543822006747704630838810791810396655273943153519254851499413181028280976523857275701152563842441429175582626426061649855852061850441531748064423276048551195791220826838132917370093329944282821088869697387028257044304782106297181956686126750094587854753769936453484951638079295400232702548096012512674046929933664281008778486869133120490260636556588071446357241266808714353327977966846352078543872324255921813313424310780494354052334434796390180740654840817392793108268672002791606656948530638584546566047831634879018780216776096198353767584175822665046837142854398414108894966046659720639572547231625839332358620453103742361105513449933534121815481565629669153159417865991460721479722624924799656705982640760916978426175236644431101298015676066242476123720851121739776920895935506772429545252255844113367809528218294166873712099438586649076448048360087353500173086555840064788373186172863038140689121089377976343490877572676542252201960170298607663404941379315517435466555736540883099830044992762916430805212415496260260591758241071565382769736699238439254585774493007259748829155012430462419763733528011912177832287063750391234048554544836297204901616087268486101019432174200925455716151625855695369399108967913558329399961309143410209224448648535537281659488262951593225705140824870970532235229290919079155963614922245156243221601614968613014668767316205923020885892586172794973503358720911412886975113449664781933883698391693218624793072930060707542051917914502724838793607006894264424305348068716555451792481136633699193103482592323259418137907460699089184835859600743471148678538360794712214842161536798204261706030633118429276054885942964620883477693416496610960150340336296703315123077965661178336492756621217807764852533754320060278447415962879099050537799414387449594979343979485212565383929465145046002807923347162122139993512949131243050351967267330940244667373147199601234383833256734407315570989904664328958585004519347547958225451925164791229543763920288753873435167716062428879952280023503453866042872421653954786076509642803352281152279377206398487991102861888212738671299330175795503010980917123741686539723408780715950485451026589620273594332340337229755114585823034068975803602110742683122244738467408874135007447222296430919224410562181694680889686343555368699940937969022722111169323224829395984611451376371590961891165906724815307205609834111463212557489720417432228550503794825448126176092792897637523705305090178083180273691886022975984302967453060970366415454859270345574597798829980207564584306179134245734773480392530463668823817160264985743476333714875756342810439967074336323872604048271195101569482493867398401598716274949788595309428546649889873340815405336089710781312540273332057390221546877290660615020064201912768098896821288287883376327755872835820555091353801303900048463420390617475995587164928932110438579399992701661444033995779743104129008014128379515167669376392519266475370086627285308281677743988558763444424668823695497987554023697137729821311164634597166613323489106561559416932201678415322309820561204764615003779664301376582637123160542020168615851839201116347207841642323822308226748219588399482180824336478067234363709206494872070413221668793137606636958757186957239001043297429151676750079568563871948838845191077254804110092305593597716726376725622028282579979478539080698245411800685576926768308162427105388463661569702929392228081196278667021240526141487371970810933966230065920238215647415171256256290678659117108152115691045101860824853040076758440784741166478548153728867943405462542331628461536890669775543297113799399830858981900579042969042756708898810753876176045541351730496483900262581737317462511662998104291891756169861736503148642621021349660056410494189347069553473985666552642069305859243512527866375330268274231210975882513837381692816900557053679486633929252990465645263122741427233271253976620321130114063038154811237611840733238240466492879201554724426849412298152794466420502706479813629895185386789787356916612829586149665499385901323900337041003064254587190338271477773894411020114050878337638831666794265918790702029532031608088005390325046098633411397589105799692433393779042580828722426351160009025852751604196290889561807227283135382156022280434018353993016469064495892013142994812061011230616052741815149668957065242525234574111344145094897372406258728352169174326821542054126822778839278745010258034364113048644074184540313342743437596769036618293000172206951448475188151165662844462186563423738228620219341874562985634959501914320975129576014649246489975956649231051605462628102409774766982429122103325719068396535657182689550272714230650564320656764190596639762285553139848793906914745395993794213332450036974182048524748287231188411957568187361849705200643936636014314725348235338776515425461356915810503931091027341886648395121323707810910135375607236589205821498009633941738212188033379365387619948736038960116308368694730400097058082189689193547103441403789852359201855424761328641467804374762536744134127619294443561498128812164746970838984941788139829189549805441955284750360020774556083562262271492906582809078753967915066574582634603395128299366276068277333533981757265721415730082148972070816677364889662766655868015904833826960098334121851841558182446714352275731851737871900213323777842843951382186619478116158826395364421625581396258006131025215669417280723032722054737140536345903720384910012168951435403548470837920230055520036839764872112008554557799053336342518289608624165470033669392335632671314573969945638264034641706731278105178655082228587847036409081644961543244531874193007314861728225917794337979765071998886992361339028693288470698328501016002894312321901303955913537420628483691585265299540139794610650538670036871419485025364231166257852565236693547696144153092334104895823533230663034044911959912505159081278544882223284631027539838762761014655833703039937893777304479671302180574102239935869017578216280082185905376066777544272807002202965706935352470077578333616041077108103901157333984805106999881231271480607499038919288827078899377999919910498246309984164758970059259316810051763759698124413849335225008386572756986097506453824002638079502487093180323258063468435702152945682897186404267650349756715630930849684079407112400203387640758636574482545971375169463508967513913772710311696996935982485122749172903430821133645130433404985234564571138780211908487735110918055275299551263101964918775418289666331689988160016017108408540429151340514854122106521393050608264776799054126183829545249830868405990166694439423961929026754979882284694068595508427166213330225022990750330357008189339384887548879956233129452838132772929027273441840651863134538316600796673400791347503153887182324342367619927291830912429145127861328337082782898901327541087112281137730964617593846064358241523131704173899496426816521160474744062759050693423299736117449506269431133244130033562374633078067826607459982622243082057361567920207205382546349945881744309383795490042727768749021583193184345250655767411705773872222620287456069837789685622062154585374208495649324895275409457915645436101105653011375773689561013622617388704091386608241300490218451569371216156945678490139397832868457897732721468509669926625051379064814167622740862016809421698115255022974405877727290595619283410052861876074416560364176124633587572981510939764154417785733940597420707736651609322353341357257624290702454381406874485404352000300841523736050578914322720936067643580871948204453903436013722573498674500714630952427792519922443637188623406533607718317471033602630955083000547370217240415397779973463947220573120588898312882236135995343014000093965759228489550617002081292233241686859999689044823212309005637466862082713333298284530619167893236022427697917566481860342582875075827539899401368226027949677745059758625673251198115805989429870112909898733924875319184893853086102088608536470068075900504731672940893249120494619356233872584685109371470776224336150619260796764820712710116959407991413822908739762046098941362155292516896199901121054788337429697868836502176163487207955624439235960910250537252664849021316086408978645121045656738783667153844248414125242996176283335085393170900674434994684161735071098712174030896410813510249591828209445324783309647729961858251783359480495765016982666188006362174316514577466331687908111117668845414011260697633830082860812088194112506482351858324050543654774235627379875471001459820223687030210709062638051167864529023434577559664939456431909213055146774728059577209882772203210930938535582044671817923904771435411340954147613944322209324782215547667280332035712400717618921218491251762755531770321306521939625247053268155196695503289314329954759610790694697591972546793187814689862865843413720265877269657061375240493740384683392173984314871622658016910425703441588761154123335560833662889070504432839712631794916226505740613324090513618020019248943810151893651207934393756931903591720815797429277389976778350879207275329311694001372312658390108579072254882775838231408592381689561273832010743978683481190201098333013761464989176665901277008150663934854858763279542360869780257296440855939264640002555688580162040411670462122493208563167006005543176364858378744320185186637284011194930693179289027748229690370140032683995690739446494281552039493547750337357683669600359996091639555117747333419667713707337471370289112379077890380683891781056557998955915748533937784120272964474655517876456379217315827494036574733197758356623879985074554472262841064296264563950940822820510379742093621025363254520699933067350262778375309408204390792997915595625556052531873030489383329468041542930321228631058063077499836074490911456918255927348961165922904146417600244101666296002029954905416969651407691494637847799464144569597481654541471924720691920891302361230072969920829553748528065803887013790487682295135224129628642964913346701673124152893387989360327066057400603905829792546916814894218810060366432774079450748507221203214526200112964625452795828575199669583334029353239743123800184097249752668587750769105327237690470423602300912825252639275305978194124368086770104697167709923068357678801258839887258739854491635083343142208872269559485349523262704534835368398755302757946805467869133140642660067924460068091589441073726353732106491362449246878142604919997618227018222420547505573405690267194064557434488584740566008092034589170915846924447268083235966091210839303693571983470180489312505564110400580771931305296285165484576686323866926673202279273120529995349835586037886289020689993824209117942744497756854540446447586167424805297087411526617610012196853249573542244223005857973090518882177483923650462401961861359994672458594283118372423823032010660445015752714689201731176591627714325037521126950218890979408427919353991755477169028413777818295439309854044778430517253396981877489991763341640231378934223480513670145527936735226929520546038031526906075531767195526588910934051379476507575880684635967075342272144618011512562374955864414020306741496456216925319083747487577065841373954902084138262915069006455502521541840119415490317571575805200057793701857060842922375080704451174028585347348072869668124248212418009518989831056373114583304512710484358512129565418314415951718464907078238796213346427506064270762563150460406019248006142026153585421268153143035610564305558357694438817147267607175317684669036597624467397088340027031891936260143991103619440735848589944506295842283701490536643800814987422101474097767487490779144831776147510960988001020956942842667108256190998901008961977839114581655584897352505814081204862507981859744725714386466644573396280613361341098819649822894331971559880192213380273008036971762886791188719733243129121388007949117392157753486362357016473929205318608488687887245836101510318493859628617093507992839330331900364091643404389639132215364823855484322027137544776673214560450770482823172960384186400154210746611732341321210929154950218013008001617672299282684500612013209285094565623610836979690265652686486910485829390705320303920440307596671711348463410318501617245115977409341922205118647141591047666341347030647054252545958190821953388458737399303621470666284443838868312923978609977224356573326082694216720194880049391005419158116666940946302603730402518252804721809354943338064729307260118233001351941931661256464854064879368921455229726576173412841508901776385439626558912272191361635322646710857961155809722008889553450045223176222350739630856326773934670901986652639074115155557948697100428816974721745577532279840614906214089713903724073404117953625688091021056559849701008638630667508372469392940058453578780520077551190267013842123487388970426523912061723015724169587361579253259894727081242946371838016037550160769943154372920182382147765722421710555753314004199927890830088857305000025378710294889977649562227698877511816746423832878231749247701034223302625996203866889074231878176547929218040702615184794146109568704457412324823142962219202773620596347425579783107876772501995890096895490961379124068796699642780435818042416978851454551375863311376778280767791865410614433065048875999251970389163828460480330811339256731491893872754864099836312505225074477749697352204249890980471960063008007210568446255628509636723298403597326664255625113905618174647445096072438338179583136595564740746759717053871527195606436387134596992603939505993205768398711886527006405278661249433391310936317990593500147288094432465988043264516042746494608406303473330075439840739579697645525547412043896629805689589464579286077884141789345701086099114339807653361200458219968347287871844843070429621468834291961516933787774423640796263926038393961618855199861786987351597068889262865421862701315063375407653655604798590288251007879458092032397538968728069195108404129295688439594070202356783603822231093633898561518560506094532250705765817251283665490184559311594022981694554314586684273665283315194212036707043761974347264663634003356075027024378481728370561077039125982506861864533309332796672121743472653883374159550294497718337405812449070660958822217484608101347497281429008168374681541762100082476368031237213215497605493495849286755676764245239873506628123131514781408926919108850060552146340488467108667333169872217742887963931258273303337350323129374533025199360292488865341752400411171185555271999660230950553510372923235249616047179674881819850493167255459498626440574123626775585703574269331659225396037520476679557954022243940009072247592505699080568746773075810629164145277243132808754442098608789872633482156604023647646696297544340497832350441370082879068807288873269133191487903357672001494433305755809547432461568646747438404591095433741717361278052483347742588904841706089766382683697545749961232179343262147117052320942665447986215891034204326341067073272187716797560214095590348159037674025361239299286348951376308192250180405085727475349506072669527541486108705499311784851002040966202240993037422353018129589579621624036454433348526354588947321263154428157356266172433513681060512272304201152312894764355074389376842652026940353141138247459575332065064956818656358887482882236100180847225767046433120662009902317954029897253442626496402372483116503581330370914158038422829620615629096653658678940873808415186400418966685881890023191638596871631591013370434643589316084166941939007491256685612031836374444138523883609633646360887946413583635186968390775672349391133266503749486682805950772254675597535722349887497640597156696908984845469930203254070995890048385942139884017313058609123181993429052992396378197061011018193270522455478869251247949871248348795715201016620485840867495418563695019458542931751107603850776898933450166218407600812581910015433294251097926166263621391942686294558591590167318376958403443685080803017558038387081328501034556603923207639139609979592247351590128146322750392495915756685978247227320278918113284476077864006374269920818181908055622459094436061141139802897698665762732333044909650826067505298519652166737152160754219949760163698122935500268091565352665272112438995341035994795390387338533930643140400914883013725445966917945942883421712065742757023121365050373522144783138737957477892694333871784465104867510036271800753976528236969371503048822382143498510591610266154042216445649477245945994231380623794352355866713015825890243329568326652147584761185715599374688163326058395680485334966520120398753476928652542922729890514700283062629533610131763547912952610348442338768556090262924672710208737488421043552142714027564365479768591553661721742841338065759899954810533429817747717651802545439488882697207925889167330648479099439345386398578816715711447970793214481338614942202116501437267983476979940039709612237210452838039783754862637173037303852838739219747726580466836676065654236913615169471492235248350565407636785487852899284631151497796262783536213030720612260887813014117820645470494975326311208274048737916236300774621991510778508778169804220339092728257098050943245514570262736048697050050629288914238185898148409135034203265972556446363581916834902799821811118798411366894128707719412265214969936981067002169199110496191720861045700000790797231461163756552771492845058907761715032871188477611615185124707098015081200617087098809810511440574435370628592640199549411003038247009252704425746783558903778335723056893578832344267386445540007328695793719009310205223946658130573020312712136540630158864048155930443003988358772194307269793283147446488930039522042445386547332984949073170202721564595472191694003250970515246260354761928518626482104426010778161419250484377347541069041897309759297340882152765219167672988805444900885023786582203155991174246935719322981955581329795257610047245791051073993829368105054602447049762036106284798845921302466611081768320647144052818461368205632994725486926137464941228998229826189068493102190907257094234853538070849216882194692409467731528121273226163848022924449812658337477417948362681318343943308465043678289814315702782915729111375987748398765498234358647055361923056179357090028229606473931728699185372016770339352235975800377757244598065695823790347643733421576754263698288616038072482738692107814918454547434051968964119692457127098262664488343474761090635964909015724302646180730710165566987150846026851564428858810380266119064179120721058064230410190209360112315781502731496050518050665023333764423525122701021260998733111337996228859315547956946737364505508194327184161675984163699323945986733383332675038369210774714809809636273489024001977654490531006637944493456301983198104549719780765215962729370993268765748762691900151829734215994056723379665592391007580636748409687037348925324303102865056380029861471714189681663585583089522008767972761393992467780878796719908739473831042123376472156313884996454931014219944720382559955848828509680531554364490713694782930630706922265809460105347532855933730608805134536384792632902168245494304886660704640323783340916117770590225747232229984283251764210067280032652946013852341095961321313510452860898699540348148109002521017450568760115681753516006168190799047402238268639497130691998507036563114178350216083098405261952687833141832860182438812667084495140627111499512863392152449497089727836107864327418124389452982068296737720927976726775909871627115711898700603316024753338133710934755857842366168251864277136894248768417632788451718852839664914571149044729497703179794286100601081420298304955165279707521740203793590599369593384937874942723510563739114837430841227338493654664328424806946699788285462163964815422986251748261417414344999980813760076360750113640213873663449248463267800541271276847976537125017625440542862382418667852735692702931520849358603041679136028270653892983501627028836499616309897271686407233733530546914737529417543738427094115230690305266488965395233647571700797584384898383403415335102911376672410364006357237193502188353759713727287540007872425314744359096776586353796448797392609343613080259881178304238301792368325505196943565131254237386127601463675995217024883446043220514689153930514800602582739014833929914111018702010501884001540374776894130979275288734410514990326759781399756692187044547923424673801902085139329213802123898991710091054180404855859964940511564631918314238021254888929890584939579513120942471012877099154324616648703130950782388796849235729372069303369936674534233892659393181922750401746440983432725524104654835895784310317623175479485007445696034893149749258101286290032960213283485589152009923234851809056014709960017204830219542178766298173504433236591980626615432375167139496699477074352571339710399326825880334889458006619139532514161060802459571250659898282976373437438137017290827410866384601758609173398045790609259298400971559307190792877814663467618685853750237418346632497266581491403724839916201757703826972482704859161977327232414282567886867421832094418205457818808124431915013572057175050441787030876305923355672638793259700488333082055100630000764417903266072973860973305224037488035720614276948538837236663671692715554049750419732499376008265831916874749866038265331251062291652297696799914052513776271380109165039228788607446093675591675381684281178168241917782175311946571138784180025585525309931435244549111419273871296466123281908144006698485665465727801532151020840859731343529959465466630390999106841428941314892188485077593403407771045946134449522601236333416775717376724307030389451030066757233313163569776504897373378774876861598722428404975883290460219274122021137865709468933026481301478139001081571408557180247049932219781432910907414741787172133539385214447267791147568674357722020445315988225955148774307593674164066558796348225732422067672433300063092905032576700683495124721388573555061111800160320475359668823172396878007472855763543836588850714115925201919528530578303707212019217202399406872811595870805667087146807779362141364336950157287233401442257111967921593848544974963588554340477951645549399974517715262299805235540406610484458324458200008614454827268389561085216416258675287209104244362019388082375326826913895701331893529998586798443952538604513472785838289542558511448244167370871580890259276140186246807154674542588955218557824024139938510333149784288800950728742496756135497317508526716166415073293582139345955949048784047857482077520079139576345216732947269048640683162555629184693469052295585714356251719015249310015024013824364601849536564708151474012593304458232178945180356267831027991055232465529152974617671664928445083039720013379253000338808202157636340352416689724298829583870343489029653617840471493304175565354394992728974446629677024774643257536091158456617042563475561661048344349699837120190768016211101458925766219016991077723330538996945685819245441642788171480422133486220474927556285884189946572546485861372597648586849653803332173033169850796880757613168944809894263776062154806721556634601931815233939459118004988656169143568463728409346130449225937392461841704658923591078380733842247961968039371339282599691676533300952313226372803638489482155323116350179393895116923076795450115549408555884102350455489560472239716487346103082900571549503686958608344223813216466130597159142712234247513682594059860947792863033660321912883366558578838143477378436205770700128277236426441334233352142207454442204952421698332942728618635288157251444280026190308221542488402493533705279666022258298614086392186844573099248628959610952332414671784793434204183992990260929533491237746362946111851929487674669404890186035450223026854114001674475246310505260574828574713504420513336038583311254482937607172173926656182795924093150918252923804830912110132554303532044218817695343442589715807428252616822159050116616571004499725226487892156308354994337500862815508317876830191111593220777830170108801976563357912727110259069521817707953549254860309524124220587381919734219170298338338154126832591417459259982437727326965937616403944365739945888656975403887562770372014706070358904347223115646603281204124248217712287293074600308703594813877929779669159519844570411291917560770989751561237164611355529120894069291542441436287030159798571229264090463696644170301415305862926725779508951717067636854131110419586500570302654071697084688299712849635022454952914155724101141823334512760903408949053110998845439386025776636066428835374146060390216420591316248361061882321319481912531058125070442128446687180613293321899360036994328186899679336148362456812842276459881765385352473559232421692302294348107627958767813943721156504394696756390451535619419070610703831659377132113510131955072676511141059696805958056265239131067850953116869847793682297221524315614503959504995687303838231549168078560476527810538300401875779593198846513360747389834868831379980126681702716732326286442008256467927084297947358145403264556667256085802256264739729445001066038446979576064561522331811937926518870678360514931970813490187354013213979327759476068809608534603814165025318623145696478151302866969160425380671644377842993687552146596691171375885659446127567890415782503288481944086542861621391406611000139211580707864897877534186193054961409461335874462967366599600486147801193108435749044271468637153148989603089221651795083225837861809380847150375002171942594968657234672646312521468318934588648741501100001483608691537265280095450389156813048294308600092259908217137061550000642419518618564016851470300495077980855579989012006271903336679609979996684193301803132186210167031235954367472091421530767412219739847339661920891917705617534990360151912586588380090940579983925847707043255457205833574678058037049097514837786661872039699389233243838785372765604605866676703554599173850702056031532567237784399132500426810898239547861115240453297243553867568163153214487919660230136602831657709705921266260937801198776126794945418901419283129816034132491815832398444262564850735872341033151466660404728759586486035930327193521286691056470620569495090255230385741154291881456218079808828545396393693243456542053549510552691162042125564362467413091065938314710750076134495036552022234750542444521315386908006272046650899782365602677667126142398400883574279971276124696608117806018101904807286533312143860228520677363293189116047401131428258794956328938140547649682207491487865043435215669274367626177381763158904721088987376603679391399105722250167458051761955658156664541184275684276136184992507188928415683016961978771060787234530607608536350347999188549216882921954060865358995137131388747471381463611169653725467741559608762805076352818835923101424365015585864420430434718194242594566640077892999207586400759769245378724744789805589764453817814643621067351394429609472048489275276450687145574260468513879245537935123651844482627266215592137666044155007498522052748447190195895078682562665113285742311465466179765757344181893939057770346935103848739435486942133505837840259076102783939386543104688984386987923702241120060200232060112282923281179534135702746160380800088321627652013964859655675423492419719213316526994300573693654519117947834585027807264924647459411633042563524576423658337562610019168910891779247919426226492583133842782199323050643144344278711646728018839799192188331333857892179930436707903669245526805605763468265697686221372880492396075560127606560809204537803442732286135872393493124300702061512370524086987755391244767613815789714922634702571211531595384109873907911860465633410135696747262920974469434084678054126206935480515544994757948008806395472823276571696017454777106896870779499786247135725722718092781114151374588763386054778457978949225184169869950230878847977308642030360154281633188344500163184607672320238997933962405242025531020500275550483144749733670210591237731911982195516788443998567218914309326179313481905451103056471389052671201103565524659728383872418370232100428144881458439871726915788571965614970025097433722428406070465420213746780325265794367054367401645605637417457625352833861333078727551191977992376517523787031255660087907213514813214929043721970317451858003753950550231430473737504065550869651565817455903364984493820723338878764274213059485991508555525586199252782056487875531676027994187255598267321395141108705365817832443601638681319548939452100222768750735265183305589028418005920198694660923558081172522736605958416967483977503488638084956227272797280942112512118793874360212487395586736373592387247110027887624776626316353967529994784294689453399972722129269496385135102851732420383074448426127912263093750146630760543229932255681196126843571630066914002410193808913423635106231188049092823185406081688840147510265867949245408932433130013598894497737612881770053818285458153576551333410697604763193453417929743952185770641141912924069187165671725644939412859647296680771429456049208449482251727716955608198041484386439538882882632917099130651179342576420836384895320390248297250234439413574583648374785778236133248308920375431066161865996143293647404550160173031613852502928227781446770367782230996335730583759661052090045182870499951725309213985160201853143840104920767484055210087685176324230399845486327014738861866900776277096569229013163464044989300419085936858505256422989687100375656344137601381184767577856220272242062358179502869966414803811982184147292769054015565447763878416537936986597063447353596609799558006938037955866857006055270616299284847289435524293807042691069357065809162703066988294017249003725242523623881570194211467688063950613320652468559036362625863178391415838443420007173623923886624926133972709999627613836135596715287004814427068943499234946304477082444753282264228672476028633216669885299843177272426273897713392907461203620749374758747509200272771745237746143287986873802686085845106970171482414740133778967902049738325350173047963998319585100116306692066067411081949366527679469859733391812911074461860728194788622854762645878149246523794135447325756610930476132009653410509234617475357182468664033327806110235805435185639177907604641805212469882266807986786045565125242744916504708909249952588325404636320333974757661279304913642476469215479722769604224839547770649401798760709456914566659526080522730583471571101953611021894808394709552448808212880334443170244333971673176259886966315649856750743675222673950127581381043310896530698828257882425580335302965711902589394853249037960758414485298752513331921561479565851468616996395008787683068267994789233318327915934125279900414428585041837119777102563532015691012459183960886314201203942053394930998633622537135607714093476421496911230829736365993436264511440166015966926270094397249284753876369192201531110518276099582090019001772766261814540740341056907788494330926641993604935947145022018864258947833359769795519663615507567176153749474929333069681402239648502051256313718753518029821623880257721764552616369959256968408434568754841066949592525357137092566293039400505430455155967963904258974296287433449997642242293852765243621284333116315572851674681269521115629886690082120988906731884469181856549200083393067130682163473718569851472122609262573142015537249146555798795086237647360346452645939423993660181306148176903636828280539511969065045414969139821209561765891195994208363454512528746997131921527844048728619460023199699370193606460812839032210503967666972992218174034143394931893217700525448433715443127221936661818468895517616559837485480237768538908714444760976701772037288129923347855604803931914971748026693590771449384773093459890451482152032542738972282978928062734619909847313842962480532910101487206708263016894801637268968423341981894102259038321329329970533984454948822839911251164530946283214150981017516068931966116871311405256300935159623942645655642005581462649514785701431760707544864860153604150925749893038177104379378446534392019249926081673876073630878510932842044862207565198419640904387496948502945648188476423741340739836777720268687164698460557596713108433349526348287945801310394661961270688995795388907487402507391475478596532624482606855610934108017939696600213204318769565678137710218309705490941859905510695928440756714528006454323325535237517906511745871005775785974297070287354458752189924349565874900247860737533274544441981388725785504244590630505944949687153102753331668689107070655195760977481165759220093303813222614768422515282414417650709751858291859664253579060184437131958549131096081571774384237443090982727061153408021069467072205561294199041366968890189317271732955245721226754001058944781756938914402636168020432633189530855878641189253915427043454228862443896337314639458058308068454493243496581321495576134742194513063386232142893426952910429463814220134801151570216899373216686547651315461038958721141073259690953732424217751084489492499788183026256272024658821146339684079084083959270902805038381345834499409986083799281516102107391000168413380972987332568725550871120032418105752379396827899520384803476480791233792072352919315847396096722761021038663071847061893574512150846918027829774414102415816582171215854656247982979739240736637229637295890978882427003120027099489113421083206208931182125548325781218585611900303540810921190338551855217686883154030128193805579900050421013269580139781189967346916375604492850190528909696606703006795528143565964074072964170726896660380903441373599574385148082851830887910826439210913047489583658626571555446989860856821254819374483887858646582906074110933367324835461488270855549749598140753208448340582048034575464001928492317153725764863575580585681044516479090210247105078184675538962858459508525119756823923700693224082267782043810912976401840080562221490577396583600269475092562829523747765768946473206523191487871435660890863068390787113071221727622712885176723808896566156274567419325497594048849365913496566006939825362928008837137647170381825158620685123049116201675925383537675955309310846008205101006465797997058805108745319594710191322446728527929561575205914535296583596232535445688295223114727305615303144586991752486754980620565756343567566911839790686241422255163990490155279831763993204930700755007200158856459197476839224453349325174585125106104655874353955271184905072600925544971522109306300914821855406188454765080575869845347171393139154835421432088094208044591539745164580184350740500293358105322296005405187074347467762398573129994067255661334618459245490644761695778589620106085554237600679506851688334045234242250732202422780192308061101844226695634349469671803733407896063950759053037794808452525636374346910545287306790624185368654354596844240332286401922777436131576504001633863831785857331018488655686667529293010124071817576322364008165574472499521569777398180385802281679910115231690071421278408727974521355136524770853806042900827169612856679089096286094788017926089524355493520346150849649702767550203825648981018875132430778576644267602511262734330089639532089778073673446671303325203217856452909078399923792147665388772570994338878886776024502867781021545793600799102835319372313223248871490616065245099895286636481468295025781826686951498092062239580143844662745178271661893851965451458106175358742509538532869463481768057634989231695739850972400133510371494821687676532249905564030622443603675732074762932553847114025520569119261813743712314395169807179137213668530467607736662901827045455247412600497045039043415122886713684433350832174657403940198757760204095055167259635738883480075557538986914713711604242472353733375342669099134663059442967700276119506654045518310816046428886921900760275563867878032412797623612487609314694173128189167103331543204650301189111107982186841347646357996654907740833346307752788392867832643266689769968499584929009340303660724352805702126107393843076232728907573296342620966647144312014449961344590048989230771072693867776255531756358987874544645671924705543032299780541392298281378223023369862229122451246027660575286487141296458703443973193271820151830670828762532921336155364702313737817687433307978054240874597619022159945209216450356788003263645893733687925115519577127856340656944149044728169095373462758995919051063681073474832368937187833972627420237131728871763387367136061839022707833543366238712889789254127317197143002302261551234723100032126042994440859895177351955709546280868938140737143244271820286900392360615034938171414599092777957195958912349462839056439320631277117372124623044321563120521667762882958218412567620696812582666686470542378516011734537569799203979437225324160334372512328865491064862014369273633576761492879075825391806032882124501108270293558121684907597593619923852590475073656939850250732195803824858164869790232490759166979923259935540808090675285421545068964112036989365814394596211443915326212573140978324575318691998184595127649589891672595189286193265657564288752424307097602872930537436720929023946680617418176540020537036584810595015012567864905818397334813790586944090611270083145236002952851225507947947161553286170274619832405691620523653766276148316567883918383870728027923964832040202532726275834928864140461999323046807431162646529889886704627155831208863794765647339609446398379122333533436944782589387238740978621153180122886544442761134096405805423839932541070134065672109443000935899041323791199796312418703177882108093034303614040672312802709867180454262702154202960905116069423540655318422596332587790056192312783311766326200587758547009109554405973886255780753774537212544167130105690398832573378215035407609721525838529597732816070956479695693257049331026253051886817962588371962461087817016080820309534926104943691887751377689455076637500587616614944622144838863829372899375530861421628578480025541190295169853421582179612429744820900521989040650026281449802129724861839412671979695180617369381969894037712609521456688657410513505532913140483621995013261502288115992072426704771809716797105031101729666943032274015807770558157499770384408442217779836698607163623097667810299743339233701679204130213260113032310152561588900657369179252890172510821714033405339573101651357267568058041974297631812634585190166144816987279721240056811703851988603779475622609224841392399722898628309225250625002718503894769623663248803274176990345766425150395209573397939950217045458620445009866822109448915677717216048653207383527653700811001547344649216178014518255624707646151952446281119640671868620007705575869747255600969421662882884384223960148248185607328628629682215844104419208716180354611110482938324590953493501530445626380823405921844497428834231618370631005083558693683888230946227221582335393156245367092407426347987086650602598071344696695179390723218330774865529884998409097605594831326517921486370551838575635340771011459356423071111639865801521932841225417711393401607924509813860247809672996189599092463493592576949394193310455111509160550917953924601616939592560110113754735774549738582942795638269858311213370407320894761021546260798146246484679604979300280414872291639239382689683514975113870999084084899882691562398251958870432073405342398380513599986775694996177485187111675912123631989874816292727886350809747341888317750107483964598057893050502380525151989616076097875237378502072146116132789023778086720435409628427580488548665202863469372850043829541740510102307422249043289373757211306509573583543931244682481292856928097684532113860593259933709190831140134239323607488535301467391802678644437602513034017633141792888264216987105058083615789064126826676533041410535206267003254576073957701552088200343765023434979590113880137234206272245992873968857268206764288422967218963467180155238050464732331656366909043653299129312544979514031835935332493066618241544377402943238299907525861931146393221485014480308672659144390029146568127023629288425990442640814098509152046309537709774719182087555669617958526382465718070759187417168339708934255588404399051041281118927304752423556615251202663841921094299973588531652503953290168413872569349837555453283864367144849703550106028691194807316662663668381155755502632399397581371637268324618394587805373003092935448197035285628015648631252421965367700893925165532939383626997074665058422064989635089375938526693187017477158977119469579370629557760310316524441988371513033373169270592700743049682524503933988289784320136944392998542274124960512788162975684901898577070250573388213029900945471781781545625009620460292544099459438005627275501774545631875116529657424334896856859936620878293569810989531070070149853844035186801684802195704673442674259084026375755182742570939666434486348168326372859836792039636499798899788617763976076750252192782189480073254291143725261395323225696316752548678538627061970687111912135156224532578064612785592852276191316221201392588205635080871159320114335895074386129440785989166165434855392474085168832528752374914466781382949428406636568621146419542739454700440410360073218173074126639372381534954067394995974046215397100476693811857079218119971390491812422651620326710237453153905072924847474524696950950858137723585281163472668849477049104716287071425111967450202426439720297129915448867390443602363991698027702025469157450126578778586169103454160144958196640342103041209395262577253299108230064172445263580818819327041899267441842986996230904836200414847797349393864388485061950183874183695232055120934077154915982238855389459057315303602422105759656425719545206477187759802838590441100123319205495833588764971482028845345137006539209649055423696546654754225852581533811019080438858907012189203002724079418612540802639752425143211846648697051019983217151496548784770470048843804118084518921088680313143784612803410843634326115549296985647868732007843667663425497229818465442491798065646999181888392774519794856274520000958348422389346766215387173767477572474724414844664207147448558728488137016023239583090050566646596041944325895068906817831877203272755306921829617647241656252580969326444248189523950065139208826243782015697628647330008270285454120504129538441275778446551880684417976612359646936662040709834209584341303480134143067197343511139381186018469973946456371120221474425542574903561035231473254334784218773259690225418973019307698598828018771602618920563795952607219931497101364347328176154461467407503580165107685894038400784634195082325778811929036468049218588587910951461204080614400498084705869866260209503084339605722823675964286867958847932400088790919815779536267775007173747611545853214471970687605587471247642824379696636812191284446773202216833249868454253976052331600341441717915218219995600168099591049281212352840676068397684838334591448387126602548155217844476614969649149061268339939165059488317582972841101261625824687297239714275646105662563176866179691888206040238281452474337523013164285701173092544096108313158346629885864646843744646413619995180900620607413553539487267311693559051996958651815055267590044263157646154056038892119583711491387288375923340638303320161568964852221997681288341695117397715028199407115752172367902395117178494728541374478793952624633181309679336032482941784172073606237849378148695734727686302086291812118518898696141911824484968057737062125865966188788240042012792291284816740125155242418200177665761886761758985260653681752401406208385232451110213690610187934693984304699333419014984637666833781045599955625440449966115056717190007353928839713462304408749936236855125005645053200825466326219203647509613883434860527430874621657844545248089723049425489924475955668943096491715695092835931094217129647626828700447363965928768250897986556727508909986948370905668843007996728090813883520148942833654680388342404652212962340769930274414802870308151845234846195773830894243851788848054610096710060668471992735522729328309031849890710165850965426765324779989554592256161277011521696646119745549462659225678213859221327547580902729469906364442638993890114098679018717994188538707824972129820076721027622803510638395344284251586266832699001891847593874719784044882829233130122448507474141132580554015818189398525726563787885068427434605630580059910625785712749122253251950730706756542776179079422815931335128508693211436892890675519979643764439505140356250454142134022602228760932697543723426177007397302318697285093533681712967771937166975629999410005546726531864037844175191899669936514087471619173723167462746333194409884925388594204588464479763904082875008685204557547271453380812431332439962995786892157273552207063277296129452407934657582442970138337124018363978980512649408529485022189205782942971945201520777020554983550193491026470291849081652378336977642977294577986631551807711643345343067487660566130194638557593468162113387959809657517591411309185349535218937358837949746564940458856286304985868863131156972817852594542883970854753918408499113120260027095007534259759730544190685184354387586614733745182980911165474687539873795447253201876017420964754648172691568583769512441311412466165285090739420262026753175293420563646186783782996234768768233342257521329107105956050770002677883016159465032961218653202215575199078301332260044467595394470055920710589610586190120805538901841174791442670606726559098019225652187928461512657823191897365829139051304539409789116006217286651198166857564247206259551673942137297129350275327935559899238632890511689790619312722768873923586594859195562411318749482153494935247151919568278331495062263343210548113596412294659915717874030675007078217337852102313629378870905074114235350621608818306235639926230772879429569222611274664439825824589476388888514081799524965923798514453529755777327426171690991748986691330929912194856154411593503092970374909663380001898871688211296236629651745491476108089457889177839454697113647125768781219729797501197645386177275944204727409819935530956482065133543035247679887943831666508169060504745068619298145439507770258959169040308813587401409221810051653365302769840786890925974513538050056333379129700699092825476442675139971693488901531740063213218502155963027716698155136284524310645194650681064323864490788332678077606934457769611942400443592559587143173105737028411054722689887912130826043338941130201389575012882112382039619585219320449583991151796649690175352030447352791466152223992290630121430747155021003741740377052100178448491922712632312418011689827130822678338269322133624187952142400939556813260590239511111808035526595572055177856920497748141712735779875264434122580851078580641196329587626424972879965892444698683476767169623254012234049177394001567881820403944742139000514651598306721885505536917540572188928444739582749251969440204077974741101520880777919677830978374443140668195649960171867567390225504011403040396004093359003395200473300938683439856567502303427461218098036238044592716427602562756033474676996384311566948741287713939282864263525999341329538373087034260806205085438458918676597316186943440966121201972955373960846691153202312715324198856301571428837733843707389789197480330713423401117459529772119839835092944825651066305311072093410039281989284408402331068094721622790014895098894611543979106518054868465932681459313747109533441424895648736460253108781271546576195753939730107430770535346625585624005852368770891444244339033389454190266003889922859771686348142490084543737109264608542352044929071104402123149884756178974231376967691850052088007969550498654007438510345502934477932050144452774588129504301212670375756804034283188612737468395035714910361088436885362369846241872101551182906013884317042128446309319169029925301496034108012318944345142666607758295089061076822530430977543801384655852452056232565038379102340213606381131343460409943722641407580151132447919325164599453034831388306202371137865128579348061889688231626615783678798750184019784662681525248882356077814235644132663151457513975912040084218204169054889928231729908328503296862906772964264162235059444246029031658090119480061316651319292766624876788182081159182764695547528946758041138185731325691493935731694263690475862091335556934302994489624572314195428825916442177180551921220232138239079397479689204878879304333696761635023316486156015812012961236768357643966588978854773560435868567026774673951178324367677672224764573941056774289262938595616729847111722346470602860088728077839065773857678214626774749449601123478731521037718103546145805081634994758953710025487090334792354812893553445612946679977499394344868079581968154184088644579829608453481222635767932090616099084767561417769733240082013405005502474876001655832415117310054854839101425506318719642910618249743740089022427825614403783378009176651140010707555521841783562001700440571535928290546363974601705449584676113954164646438316027868888508778818877062796488225616254222602552066555073668608372194924478130825355954256942211694728207284640019512156848541663544567271313471367964171098167103433732424920276258709859837073496850967713254484819077475251932695290376415513684779689697748376522919493281036810338389869304112800415235322857256676389598208448690123899571057498332844771932470984499554462680656089941327146639454283492188514796376905133145872001758541030576834786819519297643007947077960429920700571118818428279052469146608506022809047902596363470513214267102665161434177276564498466073037291791817129384065720418664354502547674102284365117926422113167273732810543337793116766733096179156627095008429667521856279922474746727932634012860532351279075975702454674912097413220178308706277153639345354669817342058987141291605382112561550755974816282535145957344498892744679923875684202359131660011604256032378445104969960152497176719538501494952245594173411283955630230165371340730365469000951051148745216477634020742452137595081691225381738301153286153302041706970745934838694935121128860183241090734642678930200105059441997989256742744124579805246383367970061198755775034223295070506103554609652427345372736980691567151742473923145890772011255161792611944913007229891143459802425775984952933021662507529198534062837434399988398430279592426840990060607266156237764642232177077969298491118854099230510076675384872214934609818545102804185236211697042654868125595930789588874055457614080505515211563621702959618613739635164938202286217005140349712182437808427193088456331095876031323474842112363103241614888654344109177633841929807904363066171941503067128332083486746703905043014471706592280905975006178555653292026301070422531554581042069117844443744808563070273239975436187686827159986135822243886445140608304392963540975047198829755737765223417116003653334344309075873141287082596816118174179864058833971491857635459700810953544486508877283506419502549370346407167840770896537921469273053795396869440770717296172696279759186680257770610484047557935434161446240257228822734106145138388315588102222022875648953206324977548238040086468161159575942823017354046943584479331957309059372361130851907271071423788123715586131192999960319432864080554424009686970962495765594662130129444416148051114807609118813694608191349323331879531156325480547057807099876701788368587124583034820904576508755617419360963057664670633958329775947155174379276657121062998896089083298569964550628179634654420710412161071550244699593920146404832280643610969618307241412853281618454218564456252841980930059001610617956861585993953969476667330221633193064433770273126614379610569745751942627201720751920786121363035206971149827212015054621665849800842956720988249974798413124496364634651887748108119434343193715846854484928432088523772717098338035704233371991580794716935998781677677736255493905778629768363625697927390932092495931406672098694387699124838111530026853902315272136596530396972462126711762246117311637925142747281634149218352014502857336641087936264283952365453623046657930145349705380332508317616112105889856117887653643681749998883015064207177488896663625190582477512024380165338238843709282587929404842513686609142022761113935630776255719883114684236277813086027900584858899658065131547529469884135710845189592561908634676571374450293132727245770174389573254289465187751112345400830580230347397721769016848190129678829113864941602418170547460109870903894826983333926570672637403037802327504621151768017917518137679906727920969076255439042939605144685365449922489973906537889789234817581041193006787278546498277334477117768887168536925420482766408774156340241454724871412540033557205056643432294255839542202034520605758141804460014733794938924056264232751032039799124308706207212085848221773402429936540199175898329080761759812969351055566849076402534224321534592596920252585151165145495220783754595905531838692223134942255879648416036949369499062933029389531750883119290489390350031215027213183165668390218310847903460358373813213160990889423955923871050354107121521127816477879302112993588111716963661926452922308961571767531753486198126376012733747092800570871740268372942808694980866791714970441902993894137132906402599663570489188530173826155624484357399458740458830883802155684977048092479764510735219065559119670437160135996559280480369275966193226637836448715705268715461738542766731857552032117017775270489930155177854583093945485042776818730992334106384641569932011182466737921976597294109042993963275588107924918047556997606882048969941514477332222882131219136523861708409422315296573024410877706046034574316328904012205312086742218256890606857619735310271363695508178227487588985702046859672922875259393610645536014596212948704581227115559500859257984137971835972769787460019576508284115467583058718183786934149920212656599954491555131887445547342385244515905504691349550458793428245187032674616577158139310386202877560888068225503783833238765306840746770712257024925075551646721850994559178914597575326466035796214660898610376787230867023593136634723816814090913161821533677320698022904879063336700036536566569698888731897584496524672222936537763136566159235518345767022310020165865252270557615464555298527149808517567199123277863766069556265247962519184047841921788361532939714560319775867339485222553982168882639316466226920400087212723180755662403805554911428783886212510101948140091045908301726540247615787058748130458280621614234144779506357633856848176925461980002277316208793210083072983897677601055019688190807292040138249817942718406400564952409573001201857805960390141043878385766961383666709751276308421154760372078539602531551953620782716405588511230877536418499737182730944497196867107337393324720595987349148242890620125273650745302295702477908501315204674120124194318678985390904966962094243492125587018020297751038954665041911710425142466634170464893025511576210485129353356355870277106242995594282865430595844870796873980282649199620205479146384756194151053726142038257218236522195877720940162654734093254148001656912087537387714475146525431891268961179469312696138807858182728975818960710191773773685738000324844162991437737345735709489831150595221689020093972477597099265814820288148519065221579606474224781027285749940155288421677472292774840966577597825035626019987264613342676105185272006923710088609951750278261654541098854102600614461980663953812073403244798969274522865018226627121388240403593299112243511419699186852838872475363166826940372198784581121124909999957512255209180433734865745942462482398249236477497843496453499836265802583256734209380879438162266391153009106909321085742388104638409007977058946274102330308059985919736194553472002178253385409525472344890192914159685818571614452158358173121700453641256186620713509514200351688827050872956215354290053083176343838353298941909718917251817061998789750005833117172091032746261531519553233830024541881313491944786517925177701922139821529820778014024016069048565973735293636555295556573396416943818085756711929214767784165651624528171291044479633863307931752030090579149296034410009844317648089395849907682416886623228905857837371167030397356857072517072976915039141735732433252689290501860528910879049597043445678169196145631549333227768346403044501805454647354277400295996528536524380967733686082687616733754744491973783189513911909852595498855734175710714595559253984337306244378514060907049181661635382540497201040335219264259371037628245107226440000039585677649546228545407969945382359348836856251568565509890505248609105119235375153772841512952432434277248909996621501301717870525726172815927762814790377710485718446585917004784469963294335818280122258997986783258902934026000649574644439925690896604952787889179016200990875276268144036169895212389066971798744639610258933733908393549734217082503280216988183138163195738149644527281627012357261473722909510313657008626531162265868277587443407149225469047090814725814866521412434973498477557495044041820948796416717361148166109984276922570555891059838252886250926716674208401713214630189772750130986857170384930691473620636457900396188422807121018423617621271073705149327748927783793384944408982356102061993374198134051115599048560970201122913679135415345388722892664092649816427757420415287391586093635561055154474398413022265045967560282339220243034947650885400554735420018510157128615554338956938132810891289479158536359816606834372288648514069753597770258069157174952620151276944998902356999782783816189562681537948482269949000633734427516051045663910335527377988054623995316933678850250141909262602978196006767669154185043518220971711156434377304922793303203733176991828802102343036472874001049520989649371446948236470747158318655632288453892606848834099172681986898071991948574628484451886424632748756151020358733576269961818124042281307861618167133213004913986185793501112425880344366413220111163360400348042063911611785167771952939695299080215292091562369981911155243159098418756470849643360178448540100726086596647013524407805879890393167727918078950259928287425876447116894299932354159004208925075738508873859179797996220914378230681909270297566464787969077389730116273052661191355133451825784151739974608939378114641853157755946871143697716731248017246374952066441451623017592427975289015981352934477200436769188980360213126781359498053407703094822982922589735603703281130053083918511808578796306401716930614818528743984076831443142899343414795862006999475582986712862751934454146236503701092737799455236632775976719912202082409955822145255646173573566783345626777795483765051446358393287451985252434604344373115980352771907982369245049606782833491982477648385082483383118180516151907716498300479949854340498698535055774006066705893139585406700952251839975974781511626424156525396639311570723895989008807028970317466655064523457019871902089972074799031142565520826475729739704695601992892114941995963845857935774235390630365797874939307266165085516874792120972627329624735145960007703980247845982259566789607171901190856673625656424850495537387999254990837547308027280364191165445985919662973252764620481389824275778649849387836313111567938511500206602745702834553333139407089281266800937063836432461848694300163949435708176507386680148549330979766857076245641364474706463458875520838435716147665128326357536105293934405146016954528650630087653312433317356106986743831757153992982182103773984981409064222593787003165807726892068633489398827352917680173352603091167563481897855946979772173537569394588088694290894420051143550454660263384850940093080067740761651912761940574843543820691522576799268680104732259690496004914386173075636745442646186852243888424928729243475769373265655334203794646982004053388038330013502602902607374430255333008257577996147353775520182040016675819789451031961118635956767766028401256559539253432394679072785434365114276115386602029726531417781499140892820506787825112694491940905497918800519097258425007113959702226793802688184745009400097157379068655430614316998920758743565077571617133316625521211837709066643384339375794902330122255427047847090321580017771880198832502836998828512926789383356566217324552466954524593893485957854356223807600964380508911743538340344361431383284065315307419199508191870885712872203201603163356973002903146338053834907547472203509787674970533864885515555593680697971267592371178505700066522242366287245084550260768218668238580237673122784059501621983206025096778779079658460387276055375294152942769408891980489828506187275064514858918113424928372425774141116037843388877240247488045443492248443893010233677316383186962380693270243189246005938222268057318019351361043731596970281006929534660646864330114823241839128429413927447280318730632137691862058101308055605506584515826573649325553889047393798376279819128716571379722278547920196178548089165754446378116874852756288283614066631430099070404154564067442694399433938417260602362460601674055112233732208402008424224670984344078716802095090135303972684171713436369383916126946241820283805030565274392834065104215135667660119334179608065096700755607900780065982696457873304722140713721776740335209260726460390955266126070193399304320728368532213418760459703643680056335170487178455835020953391822155429283007210999240225917551191186388043785726878493293130153572151767968454105539896195913366825719765625012762970467004472043603399734320438807684642974086720674701056581346485681776929254477846763008087821273170788488017006709862722878847518284577594399538271630344165790580036606445325762859577386855364220264615949029071062886356923092944445360813409057467186904455345329733717112609700937146609272323025603950767177480574583844345696415419942420712457411194245162045465131282553035705039982289588814549045833900776487946484596805925080042535128846595684824132100216044582576846134928391452663317168083028986755887081908461674144219281910968024841860171704017596044682167605771624311370341497387433522866291020712913411544853519990099479327519222390460775775448658734412336287042944439492669520176862631234185267487932002308244071112314064258516299460584828527143865590939677622561683642113931492078438226644527297540424394605532509858494258829351789845284159550558802158587869326688189351849526389911897058672889600713985938698662932857089679153371000561991197646210605006229208827450664597263763828009950331590849624318246694546073738697131872473095469881016889931541265098618441361945960222667033449402608465099854046493140764431566122830583733982747898416414170063246224879860031737198493494833748848485054957005707557398918164434559331057765977150951171051155366365523107204480357639037620118002385085016594122989182001870385388815484994528109659920877492109279146613887460175897246487699693371367711625007795910575299290595597724159990372180918487749235205957276355117282794438667583689977100601323003509081678375160293639956865037769204829732747486637152985451929008413852997660122831846141445363907027452255535814539977452976006021370532897389568782483461822198600443537450715349304743028592295992003578013678028668101423621573771211354877955318385845074951731382988650533881834798079577318944025548119066315921579390506417761749144678482318442229974651652389473559777111816781780034603421373847639263330000191891837597926209172583180242508246889308284770674432558705447945923324030269207480144910903008276586408166972394411091752982226252885077188969924340399616516975081975532049032298092513201255483814199350470666851506990766661883625314268993749513172767417315338922423046634305344382941448464267231628350634841988680153477143012341963128436038711346695987523612481290022184711308884281592233800149163261963820308974314802073177031389068061373044145068277555410212727629469776761411449214570178029514576194905606102550667429951470310303295492458359357678241610130414069848446733323179993774081677611457656739917228732312473604805777065625220715432933659180754543469012641927064207252465241023421453606546481617249844538243542623589063930195643398762309428915523023043363890987183499351684342261312774233881436701108238783143060893448191849769491952232355433986249772529160968095874139838137127734000261857013294772147910965429391979373183771947570299278362789035059700083455347280298156583339297618697102159088772084894914825046648750293962163072905265334194154597080264331940651422611371701842526080129797814707599793219784113411169877285205259768727701250878743128743113765317691190091959133442220384095211468163874642110409355483561519154897997972706073127224250519132341090740443500756384949898782345929328727804039912574883199763804931433721187123283609411620853400832222528706782620139846405602681932124512627783053032587467605597145036539644868487507398395106671591820150212826208633614583957323542310318052532091174932838415539971858737545162994254754222043133646339875668427432057416631933441566261471186929108326928691790525029147145717748337636717850378569850624801355312748134610026407426866922651795408568164502422154463203959701299097438045127393072748806629247873112090642463119758300487087343447138658256082050295118035413639717882581068040947712669838286240851493542629948855545997868268224459052442678401159153481129729245832285701377487330039771281107611931167492310005036242900129173095662480154940764114194889595704690439335008648310008696591183179156029871639981075062151360843948221663827517988186706724684131223461728458834112476802403285829574462739795316617336220615210777832741237048375079437142545920096586695254334503022358442024442859616114903859953435940594913182193393747230666995851699749657057145862845435739162492083670135459595796712358795476087192736582922794482488504050717381238248958434967781896637516719076298172816997505952324115080123516599436033608023678359646839959181257643760679408553079412042341254409892370256891051741730397999067714941198511620515371430843196078714711052960456589659732316033504148804699628060566153993044128508139482516890398463085247305072234443043744303142829833280949359083824765640904416265148999333425859435087216461758389369851008107986511669886808465508000986381416357418056151780923559590044831405553642737436571049228931727582986840872990251445801334194942425255968823970949903352714356372981887433556720087292643550749340592574449758751755890382583565703953838054713774666160998293778678793016002030604688172254439512988723236598861167822583758849061675428224975367382813405663676226515729626136572927652039336293405317752284972416294931981157892479053835664813171262408006997085375335940608498867006869476574454113289016998123051436353278326209597484533291546898627865669196089171640834154460132343543889568481229805654815085435857248163180337957567332634842994975378728011155517428410395499854231560733398447875674180331574021101894813357781541751704071993241288683683571585168252178992906126924509149283364435420222577766901049411053674902365995673147514390533954001503923751521347082858285174305510524297772267059439939973232072523635616217775941495747088400963124005067491191792005759768972032152497083831347821256267307658342072700026323254770342377716004710963693053818525491996732252801001712729201630123038920439746837075189347383342590744864289705726425094472426777123135712850848308416834700052919555099272141746677124138108180319507522084414853521613113397592762024639416630542580946464281120780992739326564454151480803872730320281450058866541398235345009548086700571980978299403732457979949682725806508004855608884008466515955066400513512438582752158750902905749116147496781382932838080802373953413513836318165175786451131694999072800648210626613664714337664777294877633280613020652402420804261149701059394378868028736891033207124447730414376561958464398967365980923228145166053143590971009383377637474668516527015232560156959072460922584406074207976780442868275354021092286023624076935997600613553537954426897369756379672273457868248226916566497231068374596703785428900039155583059014200123237652707067186861813290130870427772979635029773221069303310502952774130718943743696536893700492899292946485047255296549724094779355458414207455459653692468180414858356453512362176001274873184267519383288531089710025061683215305983640945713092251555753947842842761087954587912716099863785311908913375543728097422515084606796706687443187283093829460938363028335928152733255523764341183803080409684334407270623020515258069820991658931915395339404090192296401295953831781463297099298308906873123207598049341531040868062248577406273625774452540156526765538451473385072658272022901596614734537891995494425900297722491707397214127675543108972184155909589441380653894699916724576944377949660583646598563299299479632681810854560277851335293863551169279097808657520512209484054293365352804231131960798702922264348380033239328904594948586987667721150150665357310404555217192852497486050209943285965781141930299152013399305783269485563910959485400704248351978275891169965771429719036411424126004112113080902418700496197952265379800900631023570760868805454642625895358411210447436006816879579292253764655771970587597027404001335610755598159956263628120196141376901554059163001428257138339313456016760411355925587012056319412634721709005312145012468650537681257944217686020503564385186758653459109459811326371790595182662439324462760182837625014825668136355361735022293433628337365462723904162523935164915688745443814195347899832913457009970633020962080355826814487104578671466356774035694405895406775160027554304926776075294581568233878266127674511998467749071807079769936987651541351128548318448850605976957988778059434076636806239381918417587846434960545485081569938416392058815590831091054768303031169663573958484194312061299132088364555357821524202406214137009749047873025797405314278761924149926609795937601105773149300074589859487203798513537421363957827445544788391694443997697360796694976369254796196872329091929009033079697264916702490979686860642999078468532285098019749781150405717173695944229221116903487776533736547026857730126809586192765778689567931676078542267372078907207128547969683984929332291785088901536392271509175849553787750077048206455387685358068263781870936491987681992064831655324064928006230582919589758845294792425354858466049200339080488731464632570476522530862243523172106241630117312613118124679380946511021222492586845182816974033278931749648421822631625566545132002376712074548815826323988648054378161943823482352515423798197249237383686369470831330991796848990892641725302695493853788882894578871683493673657224526422434073154774033709154367264966524950330561860050295830076467383824552511544680283987105720803654837347289664221840558404182733634074879253936434326977488569394415317046334046070069931010803093123041792208661374636330132736334514511871793485003341959685096747885384913515473481694054437898022043392099588409964728338051829520735272850245247510029241240777019915038672000893052516259531860348251140064500636270206873935910002173963922438852296481793496527811051603316719183692262474893463722907192114908833808074735089291318791493398666596885225307809300584259127775651837768245989992461300230580595965746975406513165587840642979061650946985769704012465262424127622965254828552808728873848065887721500074128766858966821330147620412073056025412460791751272034153330481974885369957658183061128904837824364720358302237906653639032156636613292401968263377854980389793338554553902509956002985420450766707317691946608136228216856892525734223093601883743255881292425305391597748484457988883746918843100717561527606341903050096498467950971375424575840995314766356467045353075935994081864121329434290946300898629676696476999643036822460501360881310908336563430346804731050384581598075147568819078718344588990315572763070926190658948746980617093585518597416285829145237841682857517730583748393182972771581370380123425665304169714301847641914906854517508043275509710256523335675749183041743016196150526880394848137582004217970773217769940750253020794258698368842572596027475497456403565991183979694641038760815735522861134441992456125141494183535408786038579293389380249690809118536305330384748924974925523754212510271156957411504298517423190879510276509008342867754398565600560050193606964401394410115180370962482425330131020430569072073453225197594051699991037601676873228813187403655482540635902835775767402224538603435282008257871772981184847559732649945979196592079693859375012799072151222190173694233770227463530281256850776877377912958301593123213646129123147558913567783988150653640574110834763014581969292351829323834544393101582659638832634512253587895545002377787062897047069346656650853702463353721691393035789976778781723923062082896501168640300879372580148861608359080512555179571450914723093802714148568954855901221495804697692755604314376576390921538778503665000557803317597395961426880501365190025017400092507775278514269042404071033504463489985595328536243668734885897537119916807706938741804593720549228987101821495705973549000279788542822451037913493330382578710133638495124914335188238877082918063850462776638549211541507301046221998545563269332283968894606483145943980146990485766840767231415528836252952146859303053087291481198227243512757272801960682616964858071020032398354272826568487290848173641441071956242004176290322776359990613347910254847093096931728868070196783263014752674982307264326152487367675333073017207733104210174331009773244441554331104844980472819940605760189358625637675242477865958215054753381901550578850039553542503873006732841088745495236118215846735328681310761329406164310527962886407473234924425667235598118517755036426059813839864495610380957478395402561738694596668917075697001956266389401120440912508879007307752935580046455381941380609234658411618710317310699525493435420007576073198616277825783713027701371644241827071429946707152634437032311972841845912670746608068686287045923051911241385526463617003955149078221751135758947382144626866749864448396096570954250748430082267230350653346959847891327486799029701008688462796959442871903804377939284607509324058799291906610920090560969448315858174893805473879184348081751928896211233578767187410971262589400973365004873622301927771915257803370415475060678341719898993236263229765126443212059252816588163842518022068304086081997756129185044225471398573998999100482588916966291790506686202060284416273727954541088829636844867388358102443635489224839181115789839404136183401172426005622060234601247816363710380237376927224791772787736621008539872521403188188540481088854014484479693554221850544803029852731615239663924926390925314185555866771847738334503190766832416548588089257027792124481969935784226211790017904509647814221518960251454230696025310664497618952867028481461971623462001675504141360843651407049947535311885645947306473649229396880023143247047361841881006562358140203612056142123917905378145555260059465460239393233041057599471121687603193854778773215551819286023161131972042955945579771446475488959588874322225371802144620386154395175898416216158265488360015596869867540927425819595227470503916565633656554961011122910981655570452046259395492864377872684053718630107504727658797848299843937127876664615682106812372945629240789423444358777074785154961655114985210043513253222070878143622847416268221166109962473929114299582718386271794303455703433499129360064468865964202244064259294280179140977272119761052680838081850591204609428050911812698347071355452533759283079296295389754485918430850317794174682498524454359872956857993116430935607594534167357258095552224034991693404508290863844519503242010967588576376440100590907405924842398520872941187315296260371815963715911322736318651112726408145904301405011525465278161506780694293446803556904831726372824012894605643862974560000195124140881986608872896436832038826094988505859183057883607138740492034148727285731196345090922945395920294888898403230259783208423429195562785026197746276639856288016438868487625253289431595347674292821768937838833852087569895132469697585245490650311773282524588404025577998775641249946512566052243618304340314585807237632828048578003050092583152509494681039811321153627059942566238481580334802456097695322646016128544219730976007047245537573628135498958825155825862557145520814318040503865453144502305914042604678844974659365682776703683600628715463884028521522808313318527900344802622160065850448709454260158706848713379205493880518051275709267011717468062621727333533953237649432737650253862600301471837493887015109506285313628869748520875915225869823799855727698416076657492512965959957786810320529653740249000514557870920843915922118055042998048688774363928954459457144937199623180230973410882254446894310785922589770031156356640209313622078391776764992625199523079709963756581830020617210150462006377617542776760175357490898856575251562628586416982704451354326600936127596057774554633824208061816483523494090197050954322137043378852805742722288119236061358215551642536348067557137858996753082177427897639993941693505675449748586052773367795353095507708382506599365168947451346758590662757360093256898410378434887821733813165798594692464274033241016852307760354145262034595771270266847184035641972146311171802939041381762646825697911608644365361429943118482547484956433616020482964538670599313258311436571665319296006817508035610001299198853047505470671432314251086267085080745859475133848748719566543828706280264645853743479964077432316861596576500642312271203051346495215019732688339068563820324345335062523128254855480660005126896837614780162724956894945021428016492461086261992498042171783339021448847444513540991911662906798200097270866726882648982028432470838565750395629355752662169832619512682336748187708474393206010985673248987727348600970630835803597015840954250076008333230428013942097295229688935260749812928352360710280752191209671892223676727188381468993933576175650265174978566176938119559013973991094468384655844244184920905058105472019549766757178548485100036566295643072478126471611077074000091499451401759243559239194009307367588626810989105259923597912760645370920076005793678418697645156684341617832091587959659785701831648749247025576964591519238370578149707565567634115460891182816405706592542772422510209713666640857389015468603772773394669685406315646440496289261916529671537056599611532228770696593989164908557956282901435536839145521277081689287581122983099607327054732159818046455424378376064200006696113349705816949507245972756432142747388943920078259178747311007565005397497034075882124761592953459268981426070480041074931239110813425499228115734494481866385605935516313493602812943800046490163618409517012320049323072465826970423212043648253193214247891323713815435511509691861288879344761296213525801873871342203822363336263447090564950349549017805729207804380877520808022217433882454400494407756687595507488195228750975341184516182052747620229567128141754165898161241553426215489977896673955161159302733491385448764979011512001179512430368922088578736124584467038922913216424454094952694813470904916128834887030367248935099375118019773252398408288820659900448931844733362448056141250745730274704683517016182763037200807521313164335871584986575870635322411420105895457752829833015513735252563344902464838777431413167741255339038735625132763345582169786241363381624818694705044516611656278484877581038440732992281489710272439291214535875868890358882164335173935540982494478037814144113474783442564329943144599711305647991059774720626351506322737221175296400714581873048754982457287028187099466144897019946016998900576346370432036539903833237417469228800553499927096049058412719498957122458326375017925619490544034649028674063505104240234302330792957618670511934414711736279228076459512285970874356027239947354748437379323762582391145509463728021586898896562689858274901055126775883692398330475533249083262607069495275086692449787999121966829671308393676510909578775345963369882361687311849796880476336421922285560433418372142784731222406645735917138729964308309969536827832845143999221307427926834626669461615071568760384454495643317208912820118185580350146096656188981205089778824876565133904608591360705712037375678234722673090451893135794052350757158207047646483994588678728648931197757627430218623412864796303775282357429137673607007718957870121830341891071594068034333422328398255371597829003879849098554693644133790817543411072307124988653254803571085347152035364242251130786494072689223579234730426902760365562041878507819482060701218428382752653790914031762498786733346283873963510023094108346285615890480854553051640139144267451271670396752983216878761310846888597324419039035378902698647859815796211774553298618992149561306384084519415510695688211152481101298355676247025257691807853583981434651361668505682544196932481005570818317441723308405288128334901667939470649596223352072262053082211001212803038626919318525329130707238928304014550743824166649305115339471247225861808422744856170476038557301965142593505174983247000200613916062429330544214188353716796994360277130348297466737846560988368657916520966139429159129737961738412241860320015025330177045117149704240842543901787629376672965174642707158083237447901453127418582464128140037421987941241254736881412125653574530829201402346839413164954962232787428946327518758626077121821886966257726882563452282140072628701410847517517613757119158712053634748246010367426781424952694502655121828304197219819774576789393755725026076627439234386592961758373904896704546527292532172337146575354391279975341352184461747534638539818722390827222878976617042015402365999241019737241828728547460924550950957849386095885986670005869667009124216633822407359742131387367863650474566621543657955111283617147291863838059471175777621238601933102193155687934076693891044829983909226202686013665740005019307577855593682198653121256087423074661526899838804211168466269113798140166256476501349680372279434318831174400276493666649590758802987900349959224645490553101424229206427678334441881164336201273610018466338205103933426575930671608311370262292843455622280819794436713790594709158061627066076717280455902372771167636334007699399764378280628237170088450629975163551741326789954203083275435273362468283448469420961660874515840748399569186257254758446005440912132976112400532408206329664478189334238071506162660398342665371278543223886140647265405990818125256127087636106863581667966149643968024318003853045560842736960565241022846395540462707512972918814309532209673500443680002938030884837588974209311265397888716593132914694034371953638842489148058783587930548030445326688373810996423927089957552753608493098830021423188563697738478583701264057081096060848446034346654753207443880699832110432300742775488986859699649622185327459146298291064190910672173855108499861484279928571042530496152493296290216258762815329130888085282022771007109016897800174246193891271906106649777250520334208080190890643281892242999402448660223702199116646820363938021356272538446633179959149295922900655702968050012462557990990482698991470231825161041434533766032020886576396225409799856121270400331589402038324080976465959045620879794966326274262581946379005534513159425506506708788432820977713130366228414248612990579233122956461611046848070851734308743247611524431280811910596511673549943648538654934402588420828476768531026336785201279169064866495082357057301423521543802678413717325765550373000483786138566548866602428747637213278957767333324803033378841841448907165365726607417760199914859704314954029207572253988310306448594012941063036530120565029745093648191379464725028621989059465864767182925821020695651347776145391513505243239003251916581633161014722890815511945377471215470400737093815535060449623626549568545549946164420736755698432138949405557023344303394365689050905741081142698452758772375398121288335666073012856598321359731671781292111282159947486218688786271191933544860012408478644367350483949224268992262410736561950396103608449960247188745524706818164197603679300390040153977171303807131442544926283951126027050322114845102714124322872137310794646375568942600747866280327630740379015034214158560051063884809807627424670042861162193471513658035745592681596828543456350557828994257547117466316227598926030198086442975095825329436237836180065710603975941073483318420471340872854509855996045751720040134883075001135067276908791826985134934309503743073584977878583619460394132174611028325191130653246666545330381809028153848003970881289019204885945510588174027233634395651574933233718217366905290022820442439833470243389811537669218081709638865942554863979888800847294781771834361824259648742110876012135618119983394453220095103575752959942131202283622400963600869407024689915766719724856186089592638110348009054443264532614196414349091398396914365636082678374055285164925641160943421201218032640829346831198200130371738844479303754880551820528063105442293999348308429857524682047956177563564399535023116350208587639908318476502178186937906866126083240666866900566198100883947299606034428350809766902459895000903425442834802947792995615402240776604946037489584395660139180234946723215690967809619393594569243782543743222194037064053340749717147000649360750229744600969185067388727991044881844284000063929154777825703215662427184416303249674593843687786173387364123015976454197143736726957461993746469314170473007440073770886037189791322632225910794269672699244067315549286758629992444521636409786718254672591317458983717727436699954825646351895513217893179445591172940551991071615425179605545266909833405957958461209115396910446188997843814106322977975452934773994572125631282864403396670866377961457323625493567327117914268224383733775561770545389974474433548975765779879701747190265183006685744597074887894498406380800712830702683029150675387965456374455059834099540057100314402151541140264153417802934810043190521467199013537554144801214702586330280735308783721708841060026550534937039489447600505755812003310151519771073785265202909526684435636525970486401817932937508669359446747867766136199980398749759876489092595571375212902298281115062567941259386329556527284123783490631772027399684021556509812955830636807933943981463204862680583106799335833228611896808360474086265945978529178973762483931359415820017328254386772449056739634105083470374785814515618187875907379111762520861374110791306111794562243008652756076720396918220085337879502089476444475287938270003748911322903045197162301540378336191593905242380002161072361988134816334372594067145881173421665124891264647485103032540957624038833586619640460074219971086096578373399030564138438710020033649063244100323407572632377280678487843797875031488570004385920873967676597554678569153110376780758768805361236861317793122145437334197185471242500130861866637292316068813266560645282306863468557289115532972606879707153810442642549653745422503909920072948679321691193971697797431804444835220124184282370214752343259643322084904178581011822444159714267832169423248916111544235569373636740501610008033665590668026854159133051121992570457870292902467537789954421274707488665638448550969728567732020805029491292239376266693137964117359380187470022260763515244432765190574549050046413939291835684660202188848839070642716102778213210450831686938298610026858102731182986518672192871195876153057664122912477005210630204189400700380427714461009387296526214930825512018972499546908418596926909427997397467048059538534785198929128382821600568443704623668947021681720783369605918602542579747942793415170599506132058425145848409151304832272854594018160146659379688531334472215320711153121982000544161836392885741103993764123718531848893860281434428320972857993943139467434315336803949975784539808162536642693172214745045397358947972883735080586891249699970138985503906964499278626169782003109191012843398753499136795525907937232131548554631380062081766946776174537228831586998625053995571111422898049646208505609458912671390867226142791678018758993723115357833450048763335179005525378865115019484931722294389138163097649828428019427473269282416258497683218182377775749950954744170335035922078274958321362929210504760982336625291780944898572604819760815069227860817348183461369187412493796017970420270264628581370249562469176377850528048233528700452687815747587289734937325627180388657148179041171782335254822575339339028316202763308128214186619499798370061477510074376454667232694627822870118336587871513601886207661971134910694257785982212693605901712742812684961368379828321902819110448126386926601973218579305901483702149639201740011143526495012782210633487792743696560568739453733968220777494748627353182464374890745644007404329512290035609782113808799789010191136121591951884287105352322117487492732175351350305308969091246814704135501179700343689510545766967422991636222912427928845591527447016292873273125653853710960140611368002991221108300327338473522934748896476360548129321874148268843910919270010459317458941338419652989701613562424383244159555776671454397250404907222536658605288847771089433011817473141043415954288138500005760585371432790656522328351713804102326003221287421449839724322951047006909161754502697588493769204067700877931434997446583336510270904678915330873132959368077947787377008971784089016431409505315863444691823552438001131245353867996330715287452285058546689877647603658589519936566836047035661137674001080991539784267354339001535260352526686732286801775661633780313904944924604142518555155115973237993229024431443460568138427997450910278711244405378280390023494755410919066413962855171683101984816789979750576924878799913022358392914000654102475113867697890215286159885354241304255835640402425312656942648054356422113711536864264047636229304754282330742118283460870158029841578325781527443227988490209699063528417333912934937615505766581869043693919707736586351064928402559001770496336804506018072378118410377641967209110169505019511227487475101844329762893307189177473164711700718792958498115073453732106860873740683977404449537793422168736846712828493419906084106135363734899264513958285215185970784059714626875936629491730170894048773510247367408295190091674270944670950871034497831173005769337409057478189606006197364303964750353931557150782617734818769946814416904125589039461858926689460263269715081595912548255946090083206763750736614272230745356281738042100279845589846328194485768195650690243402191096356356441739934068502045070390194268528893340583841385767854776768738966338681312991308271418604703315125948990957353479873486942983884653455955919308795413289031142644722500113853325787029464804172494784197552348973909878746467610838608045174936398384178731207654209278466696499249307058026754507330138271827859583735161260746765186375837458284291331232337170583644492435075327057263450105650841598400741225525865754463838815749522519563013490249336351406515905360631932589224801495863858989441459795916371299367748050863526211232305314477379418407321114829301009527916172884222000052192574526622304624734871071082264985504993810848346807295286195388327613412980624305068003560053003929386478187943472986495884158280171094482673274665299770016947053255604027395116578512952488364924108650429372023969061732164696151146975958198716474801621233751527981113154710775333082343066589235739846161625055790985624255734063338601510487715796487775022727363130746591696836389341445941575238816783246130802840495255820384779689945690603549390591358609152548811662392204957701410631867315389614602374853291569847909685663869015192322727430444959499299924860619617018454997189146308568811251765527557883964604310642903141701210304338023953236020265954942239364750733986231476181093686541471831765373975738580569780125201647024724938944807640523992143366484909328938199954614090782162493648066293651228664954420108589232312298094032951072423076038129389423715745526554272107752890700359313480951331930743202546341390572723009092877675567794268053519758458233036020542603784370669933461835421885308690549387074624730363870970907983914299423656762858301681004301694267515737068476233061661931333603446831199520876384680040255913351533054825947846276112061669115320288972220227153315015484248497786363437043954687370758985335013536233313027155525744414137137291545769614292132968420417820297311492274343525871326661555201753849674652812367652873270380168799606384357969587035907148201768877180054049521829686790777178615255593049926201732973933034549404983806301607502409905604692068220426797265974947064342711734423286013980046584874051397128012354324656105611247088569705139400923505101538187921627747713173008690951136894490679653601583920028970806496445501215161988475922578143556530684248259901234356806263165593617133081897336196421886036664217461740008155205441373498269792016751140610099572101308961840187512867331925970769732816278071886477790778977208104859587466515000027233262348001802779145176100018157003123143623619788004150074998388067325520577972444776865032425059013855611910412092892850725013405187419285321955071733559855594146498043184261043764394864925971748700518362270752995063895235854326451422150392901868382055164981922956204592368570602418563838600812550921154289022440915300683816917417707123558796605961293982270968732830096406623551684743058110833299949783150718874095086059284306123846609321670376707182746424098058049428108053700562975827424473808057121902704913515930072124160432776326664762232273139141800875078319974376929911838978629501916573914958056294580403986013949266000278940422137583075225677735948295736810878669698387429010362449614172428639063845470597039725661913198402765188467034298005489481572037528571579362009886879957695644443258764108796438028655926769811337009740782514214124430724528314362052784311842884481317094853412331990246419299816952510527990507102011996814010131815634874314737253818677676825689847966878469100623589173204193488541915901673754776662025775260762847297616884517827675962264733298798597115523517999475041583380517023284543337697144754889698087804361354206158509991310453906147109209079071714513424079771301898555588130046386411476705284960821885261305631459472862660447915510261794735851647605254878563372319701791547656913954064821902856178755422779605787579308777224391810593209306221116168825417378256930678569742088978024859334423930006203484916443002534201757358930464173071071011175155080651205602868085855995102658320547835777475331203046682690242519656416488863879007507696667466085794035574700984127593165212166795797158016169715370118317983722276153629202105162704052767018629994232546145418970746120982626301845790181630384143530078067720405726944339070637886105199284025503584701544322173001466755654664780274702681079532073563537140892825408676954637449973754068772816099664956192527547701814775580082942940395966311949338668658755161277966091141618267544131675877944631762332465234700240281907268041303941129491639561544884849193703653335887471564941479988493410040352878435930851413276801688377377072240958685704816145457121206610590995272853363367862773858089414413580501443859263673787612994483080592275503864484643644375270867665774367930128735102429001030189289994282128406698015405637293055410366522970071198271656802317370483310878040570152541236099961163922476935384967577645299114671385287527689001318979594669538261556472469576974572489236672992134846427160856970898269029763267360961243083654388002719945936287243441184209396481071067742863011051298390913182150908178971288063343830323165740791318030139216704929038698760311827869102684558466305769019462712382911337252861694133158517143586740895988285911017722846713564068387105247233971062846480497229826320109627340100485856645002879043966753323684751068629810824358448974803355052073406378080854046466313109985136150239592300132787522029231104748636444243363205311043166450657188709018923504578588688065482890152178082948840420484226097012766334272579478759842670355898442480790743854547403813352810860534167918842400689246610951070302693447472706065072177576031840473753861065564187926282764710563960749578356686168628409221643492778080302408424445524069493667364036578740396919875665907931400314951035093868882608581287805140997440852401226149773947315545580757700432086855577880450893230869306933256964266045050827619401885372871952428526568406894017881969007171119290794578453399316702040745515527693737295396531572626879874606093788301464103469482876480702370087192388182656152318105680394323727187909045053914668236256304478530100325368073078555256876740946835440183013865995525947044203898993516513428992805993066880818230715195304894970003879465180091694251162010428880116189369765506513308034721431398590082389413931632873923596714882773233755030073783088111954549765318072014078843531401787141281166284161294976481339425150385885763769949752701602374971513222764745495464867889788655295961870575244287873661375882836403239520301967159451508781661903014640590228363207065696031834819452241814553563881712828052892066964227703833641705222575467792444888757371212575984364536343778342218840951128978212536503819894423673934805328109875492919578151053930132333021420517571986946922527701444422349455048838135439782983168932655967159376354353561113842330984576134691477722681418756376583654433573544272732463441856691898197592308179294902978363881373070041019982346029730102393729587391005434145630870529387763276144580721521456500668795005112389267954452903048877855364548852830546419258273452966272648599672613903304553350392142542022746216553815830352016165451927352603205542764616666312982538046152845763968868827159045181480786258346959291770678065563235836292266863768590647152914436247482396466699620884724392841090894239857860863199613114430304652219463140387502313093705638903619422775029754973478383771273668341234309708489524071536264812389318533023700661933645207678404183200447668597810149999932335809032513767046770303292018637061199355341710552233959002506562709086769085583066614731791633102115839135431207166810103022075089170805461115369776045578507242837796052269741507685526421317112138120170205859029920112722286844697336769988640165074602961773592495492685710659599947696789772569343239707393871188494683755776697520517506624389184729963377150381986169752010669843795977169281699778041098775964680359131483238174222222915956047826714778411401926374884566252443021802830739946834388150868155816732446060238271449553750390259680077731580169628472414741010742272609121867452235344608392134432142110489271186655615969736535184738967792160632663443065605442218162061895983014383928303057249537716893703248637106920573414825413991364746074350051285012044452236315438121201510859350293983666415197293831641662183472255351355508794421223192810065453215089081945592980947540850529306401955605202119078490406803475371434687740747936010434362476142160277683721094897936145364375123277093827190266531989224703560139998145704704824656280291021629536032241505259907411114803701762756308853221468665153336760901847386475344232864406463542935158022653357630434797498407815985241362880163101192611607671585560895459509175834054296368591463083790536471892628196031702801793013809418942344810842732021582926987532097832158573044524932203266049617977825345424085643435851399205132181695967968007608232534311202275581013475668480738981527967286374271005911965121949437769008726133950424388255854138541023618163598065805267626352462302282988546748690726732798714587015825837881294613735567064059829337953472845841234680076775254444354973964263339212180878601915372004106783429208810553417893108190871451358494873841747024155314543412204935937145632298883545228302806023098711970812852684057827896040078288725078504495555535168883308952373344270239868453542870878634611499696732650468042952798774655172835468249766437283450636591684179899487849953547346101682687090019090432973537556172218947445374937466206892346889125771909324992420963889723391760099300204849209946214649815538960284090864616966822394208091634619959602791071793367245001828147842288226778819857387931908705248158782601455389040338451771725910160591685176074106072538225173947182921695391757489892924921848640318641371920051328895645218617398463152392767770439852222710349657065238055269917902032637495061099140378651147436223804404246298007404100833544909910151931816437041680664765421459883979395884078708363754804345042965616091469999394112517013250445598841676592901360805113445568476773294878785827788309648948215762881265156742869582043440468676310862408347065986131785497158798749773905000530579351188933116089155419176905351503655570236464069813830509146431156956988428042327777655532096786652550020323548670549111432685444833193684798020076112308790380858582004239729149986285625594199695313769787241393406055319721746210289389871350273375994118550598637699256416274831171823292342145111598822645170977193393590259368253609981241246547549874080255005494292448613642245190907054342947828349873286459758528230911341770267924156391727376369051113140730106984308340439712726557183752113146102820516739839707594574657961483715407678575125821734343134200816019664190119161581308945247597118009485113388706265218432305657867099403874786827622623739705304678868546180410735624812747011914147262764349483911284346490551013952188604059275530830219362214629467110276608695151033405246130512322541104541719981269028777472538435986301633077406201833050319714613199453353239894699317169082279589864459126013797536097886825604717873801913766185312071805331483496016525942197774875400256667508510397356491102256659658293024239925364236706886071712390779199561864849947555607988968720422279655673706044986962135008228027892299678790684655517222619883692493297516627342138009079480193756236052860899966787758519929581602404213873437699956156608085723142922733965502293292253440388379342302250773579316180093536927672925039694606607101238005493811772103263808387137626533219785279585083251139144787201935997055439546308412813196227812455154069067358288670857676039161100848500234936011187876312991389945280795134268886782038541623788716452255647208167994162759856924437860124327716811015652256062439988659638836749445330680563903306362188958680907337821563939319773146217102223091082959871573042363751958490767462163932868256470498249108671792766789573056523252968978215597203588347266221413068358571292845706340229117331201498130785267576799887827386303637607167372425363208185824917123851171349242708078795922051323159859644622942708552072056359106847798833934682202653934954301111836664329137751106779896742221394835996087724133173046058028028332283441537270190250031651254741815822020919785040531801937041017049761393827781308263931756791944503996428954451903457904185274501890141381319918985738828270803691666081646611578103455012329840656732758376130321352394046787608049002392670202121196863463962996389483413756806317686009689548874318221122627469267830891901406500126906792490643975296149792995476167271756972591295921702618091898510637960626824768855368709072262717332860598456708840025532812929607458325869915144071257998428307762358681684341398508183734843865594636264504691504141557136881276506791736566703320099095236309548393656177522244776167075026505850393124587130515606293484947035991881739227773624070916858729366357725326054477036861532515780237296004072619933906149982820176454460040528268109531841088979624873409760432560115628573990510873922891722192666007395410943394921466356684410942449908700276275802834026589308228176154815146870076555027797471903062416567068638092810915472096559535200384700504481682866394433067041319833896286768058995572743261032868401839077044059610790657167940706343015650554343892496751656057025829205256702977108693150777205471314011647487502209761572804891626810388423686530343085602497327867514664931689813378378634872071642077954601981235566551522562042864027614378880517148231211015349711952552976748577320746346822885097213325446077452820835807103748500836642253042842434654611039289350102774085093248760360887432562915877045346647286855845372185759166619996053222186061415630474532783803449520774153874654581545519728335288396266953150610020242706145461396182574899805291402231512012701907816318168110324282189598815810581026812680532883574316479296556367189886126000512613562814776378721086469543522742078108734944779809961558830823408378516599153303446466044350104992464986144352649349818782126340903781861229811160045220273233958375757093297565765754643575923041717825557404415402775152022240784977151322749087395294962062247242585280230291806259511026534921220772311535149093729642242607687829525809037548089354350749004407252936748599542796875519199703748618058322862547433718938902483168702932739819096400563478772719627385840542106210476576348994692692516069756173308109273641838929886622800188225638757266521079168049497843488667347990342997067847645394475343797450316652413300077721162297817346799617447614644488086878283153043102471369812621947025002141763227861659516691454301243116681224547904150353332772471822670632068228389373223064734092600400758734948549963919321515755462517656131819391990362509073434955611233357281271807686510031772352307390625125655618126145731023765015379224988636840687416093511448259084398666107306236677633779139495845531615066676129786904711214665376528657188595534847877357993049653138344464261012476092243379834896183836865350638674450350874554460158564679335472650450320530747589301343093535178284379233434625901904167804064559589589252288135700986704711406671605119842758556716016683129630442139596478137230288414314404529076218199502090981873015362180817233580016826452044039298486570568391865246048999760452155755501658770436866751367553076252879132849344092389339595769174884403789822503388778720305830243613249236902695933815307272917865990187196102075076940418191266346443698852358952308222747875881906457639025082580567498501892687428857339997250539600655985238278431254300282603874097914173531763831963472244336552267058063130578615087671647498028257613865169343751941627621280739088313986011626716810088686532003454328246472533625255528445068911592167976996323836876350275373922172454145249858467756027794549350030347781202099480752846948954491082628375873503702974077528429781145929994069608310512687218779549381481217350312348216854923128876972388966433868980160231804218759067661537522429544178478110039779707828632992360760331392127171870323615349081063902580995015861756599044905596274982895234920707999078684099504639420232783960180429464140980886080827274451760501029665982765802506430967682537028893449889859188054668003647602703780729381487580292133994320297320246684938304347693970416653409873742003978402870650484232208419259966053224634219164195488986243922529193512811036467376595205493686597140007622016088057034886393966675827145601670405882963029441420763686833731636137889678504688494510615644710748298166948599866398619924186236865608833639359657619755889478625515240006495689706341355267834806284728763896321255418067698092755443790436906318520283503201703811696268764933984831222563706026447112406810955496950419449952796837570655780606713403376421415842987894173236483812804913353134814359086322616535044099320918409574541415819339760941280623666358728333960175269854254416669753077137293465117604004169323069648363458912844957009413389956864839987313638109355822000503312796739675925807198701329276905145783962385433604950706879338741962469152245743630505147680867671692934394705930980713110746557046219330855057202582833138577100333587733405092206529144334433268721825681230524689226812472030675762852395830804755776885586847460674079365104387897898464290322081984858758570817049297962712346186294743490344572313883812643196099310078316981610699155816287898803200325678808219370953532561763405080348776864470929409400520923056461273134527193836110470472420302749647065024165728329229318676927831243030100923107773858517431133255958397844026478527168647662423000561505506351188480434167660921200028664184830965794682538714220810309050461264087767900448250176881367438650993361863482474555904253771991997579168955687784045279183486065590874129037856846013564274440545130373298277219059013778207620158796938756669150937312305258793775606720845302727682863027353615560666819358971384756644534771175373867538389696576738169745727246649800508162501394838772833368937146465845724087289118786483929890806353220015679184484776571680229140312271224871919930160977693817141179023027885392363218762272269356269739071988482623129049505805957391206545140921772739860692439355379488254962030305676055629170554493874651313496047759417041960434700899082147930451047054751183081418633848249518042948530266589068868646611320672151835945990016106283921877282772140443281408269392261668869624523800508572252381488655159854371893322651732183649696013375654765717974212183753073764559553647455310383113445093827557128729240406198293293032495988293433857708598111844742637044030143514681634769969252785820834568757865195073893723305656779527863365679097493724118990084428864465262026928563393475221106871129703652635164436758214348916947535031628031898560608802590013704271504622645085606162145767531147212249865773983157277305602670238974212602484920405810551425540845281728726735417692734099664524059857591436029098225000099066853693939740758795049586662074422506169280964831306068164455193663604895214836619240080922436836450269404311148763101034767704359204681864820538451667536809516080287067693140537292492886054672376636769062945704884551165047265588058811367730568912106382378976660618113784538678454814131053581299894987545551356533611537264988939189805390869648552072593326168897302672914701286089220003712223691064089128784611079635819010296808218856288348338694578581854329419368914946395961953222924923327297231881123419640213027353376166783363953503707393355464585117870148365585789716349531088885741568260257344980835444723796756431542591667187200190068683388596633792925850697843549621879078149847558420495136508256180944001746488983781658742791955881092458569729516544925527232787555257087615375061845780116393154756659691689405287745898766429743976126227608351331461704075374153139346921526870890457142031789242110815123679692478933012761845670306324779069291665991905261374705635055644765195821196074518130191390820593080904566534594844268096326452170938342314356811108444423513261189231807974868691420147028975758362234422508231589899262315426983103713307781221673849407295630912931552320296909922433033852504032397310778790430059106536178238081244833150959803169340942493543325841583384997710579370381838078319327358607518857321260024424387273062168435305189479701516317640266617957743767725574233878458181219251773975969967201131640502636616660221621273952774168667278728630517173764842783670019880151747935929723729477193305438980943013035930408037223419767665838906833088467436245777625702388127986842179370225195240513640373450087390871451049359577880101434599662998110193314758427158851420830014469074609496314074212864572067935161529503446607723655226504631266620598813884335837469750882965603249047516000512876590378252832752391484835889729675137626538756642694307745608297924582381465272978531257791321608518025735159755671504689845200277997375952972029574983760771208818822961715266986896556449324311320629771074856835308996608972778319403358518662353980356249358476420277528084079957889677350150342207257739210158366190014775487021565416561000838496249346806556557921677775957792589100108431753931036823025048984832300367153652605642240739804337055145600440032807181800236106970840321501665069763189694987772454214422059188807628782906826822806623858180670915536747866818476041473780047619846916707205621955700970827681671825476161513941358569070966685510272659731762220702355985933259686002557641716258783586631831821290383139532678262185878465693195094469454149619518874231640735486241649209935671101778380510317634731089129784960671097857989561117799023647402119036614767133073523449629277713163060554270513190250117988880723442297046716084480874157810150753211951389173587842938122545679974979328784930296230160596616101543001069287403697713294285036915204027321006855658480962513544693790306554866834857980602655934851379230659026486380352038310123426878728811800593466031526190959117398174191326432870988018686675193467722339157945662349883012512279604681326047377490514543819404786697819330835389452947338926933551416184413183687117469672162406956583069973118839005773920574474715549243033274696155780471303255650085874623461328548645607656019781880741245130621606049060553342644165910987627222079356509126498321161481965503655096475883789599365435703064284554514065798974929879998514085034567643523455255164023847698747943169052847975030444049840074606873594285641965893298458734506354841669722259821988310946379529121501058858978948190839744574937207798961414161027581523076414804228402696987682895592375270241825418027919432850623878215054006749128880846134808704394071392748139439334348979961776466775646835666906882003417118005715813387539588963310521694760925961709150391499037949501692599736946510321719058510213540904743208605076027609964958903771506702762370570680403115754614118662336010684896504188642585321594260724808959633569594751792711285936385037709574365221747904029760939562909208540018210208570116270320347325204740941373123428103954754448671845564788285748908221200720486470235003905113162199044638270383786886807648018425094531344823275744768445593264576105867321992772660055502570589447119998423102674359430659894137041370767838674678612912550709344880268543232296668182910332635798185089881859172835170218933296955409523073964316381255343851955854880823013948731715205535503664504692981978863444324730940121278348199118101636328824072578980508118718933946398799951022675655768979601537405486511873579789485633241198462586509044392060147850702714008557404700047700385487343912798454951202887815916710114601472903955420842752893433647118411718318351557279753551380248864683554664780175848784260975322318177558043095298353369840189976659614584053269565551601764460540707345092036164521600121236554683717676950863457761406711577846412356587399666596465975748784808837606396964156613024952757898069210837120360438542241824745250683642763501728086024865656851003292429866147568373910557786430909267110970814405631277175900340653621471395095401518312556830263055740209387279790602457006763493225611523503568697123730803893458819034379343986904507835625727073662243275647563191350692687563658294055993847082081515727515553051479263504799858465837800403350037571298675028566128922233438996275242514068859733824715433408143021811854446417493650322582672245331203556010480512779862054069181398178863503822712680390972750823259002522696100720649815988654763862638952849816142073023567846892860902381587247728573484095223859503868095019628693031467429820750883565190860186127617573640594311387489599181563265359742152274504146483691754372397794928968135198566384070461613152096742217375463640883653966450658286498854669028445245897055397555794568088599174098204795924761405907354573943758750969738190203241845764899939439742227189568707585860818988088894649406375147504419030551521235470717857270038963220400215014597761195588437214950323305091701106926501526367169146666491821710763243734551578340245091354342008184367254595611867141646904115033941743315995405521242912020715419574836575760232162668221143009167338417257524256861287864521055272705467143528478303057213035223836164343563470178734360041752421922258144342034289092078406404048683557974658979448635904055321167592235011158111800112227204809610220744936271295689886645820920037316964274197460783640088278148375423277357258437510948157573826601181070526225536672539110024001900317236911086837713431888899818458834866683341686149372353699560359243267029756643192817555629417858776673967244306463190097942275477716959242711116199238529153667759022707250061133262721330846160563308724513918356939067062118664020529645073427631439720810890229859407656295358543971709495973144444858185803509168466459358688020930119069870355491687603660567003563873550799089884759123048159922358777739623782430069513226353203013274863071186376102108396120440580295315121066899947929565293766910342157359950522466207901361826607575132797041143206121672138022145377396500143979125586454306313622736759701235942584184216788543130123593695106912686455555371001189912183275329063997852148125562681850827091990669063988907850366888855035135764836419756609581016931120359921255855834860577005695840222008777731460274731014909567602672882421511999845343218388282518032718820219518501749807983499162006227374617175060409032467554853562195061930223764650247642850918150371011205278939276454706698761638281391847207184161875096296209827944391590849253434675727090507004551526553188974832151872083561066857685471710727412759210326562308824483301805816960447097756511045188739987073812840045525512111159858704200670253952686695631780791188172139612869255765903745376792129493740762463995214909281932644833950998904548063646714486625772072657634515738406149491586551771563178710461871933539930390606398004268217306865155083376261095310992624977101792618377912770992495113538136822605768298810862963799732840426593823844065845443674674173697580079490239620038231191711980118413388861549816919953912251984767883110147841142485515006872181714067427908068176922055004952096774955133865002904586397058327345878425114150012711441081147772298978540002459010632574880682502497977861084955027095308356267457791803049403267448478332448596021951421353907011114241625001997867143062184065174509414253839360479219229863317070596220250313164835645278250179649219780297436084674190770363026844770223091558450852845141789753812797020197203363368599447454385036198688538738680222988243928564856643785103599665481658530148913635378509182339460606895250179101795323857019995001215414345953493653028232785230838643537684449468611030426080587718598829436349541936357274013428892677167171037729151207004591636734491414407925455916442511257751878129179517472779459946308428875265448302845870544068312982751702721822121610864099259469619366027019692130480331594703882695195458006732972850015711535751677805949030316492314430146208402718013896413605339603936613424375974080037901880560929758750319273288067265037310290137304010034119977045125221170345903498290974449239270542853722390224845266979420362530644709776770492971819135427864720186500304770805332325262627499275572555801783920640691543929684845521005295598946231082493216875202750317826200868108918398859243867552637513311062044012574214784024077265913939934560749053811861780631752450084287859273312101408381766741598084309087946043043548207454409871390771370244480224315764108131951537557854175091949809571073789503895388478795603722135745042011100064656356424362569796097892725165128334678875124852625309461968205863110272573968349656721042237987644508069040945161448272208599664883700330101800391365625523271660829480149415513373050787939984180117267287341353856878687893864733217755502474042025306147758542208245795863832001582897425780606033386888525026673365692237881341550921494065402133195806052179365162460161197382536506586769475908752358731983654238566572728768896570883020783689953309344027228499556979896763564420847969996074081195357738982779107650888136320844300843787636880466997279700083854441272412388427678404259006856383593038986072544305840129172345997436943360642354129651428727158621584561767878015106825938320052735525582797111251109701217697227235204694991077502996151287806287613367871352091475987104108446537602573032431955229910255169901679835005492886479063913344751255703960840374392282348879647663475761976959915944025647999082690396514802102042710728121397245602201438293688171622393039614144396981519400520633633832926847508619464556665566426027319443378325251074963961067103993903558918853211122697069662305739745113127878134042182776810155945681184078180632119626272322980540847238443065680436251654048365134272641891284513455489468080780722032398538293380112979662066200326324844065846472377966549816160646713610309743587804096935667621683539799046353803635278529125175297260611994051796524356790384099485008883665116210600927197136246711785000707439215567429349058333315910672956765311722228943787810694853027856096881872318062695821503634294586533604510074069787340366037630020469523264310658370939930769930024466606883901858326734022410363271468391360992989789466893423070472605416341483595233078313963483684598873661488406629816115908248415547122528149411318530853684268794305792411379551917057121679436110004953522609097350159913777097784867206306700361909082860104445854579577614300383920414434828247377143998304660892539227772981097189818765163197471534014668208854437210293742059804327492618439782933317378392856220494755216207240463106433098313882122594907965653425278416387358974618677107755834963808106449991714045561069229972527679965555647220200207676916698126771588349241326272394107394582000096181035279358320655322056717190325783095049147361647879895300851129939446013709719957567526404021641446751167891541648296511196824503172605929815708179874212330859948447910733277232068078098533781190863018412772420040643920459196981477635982435728198203563882128417476429374277211735418162295945076135682383712077718051947858614405456680992923983395407984956876088019783927577379094612817174253026774938959605179286055668723076731897223563525362625228850756699536919489479530630842485887689993968982704903859476799089014560881670642459359566817091162159798700071463714003352819038864984646398338226574016071360583254972308946510789392545211432648272525450529127834543853733557830131238296289001522146547340821128588485136768414603778189909891769096130437387882635010834462358764408805865797424080914465536670987091070132687111631849509707059429015899837898917293074923227979606406657567518983429449371276366749565528365233468915839799305616423382320213241701498266539568352433619543966075850123122584722718381089462503604007123553802426447440685969229471881227969248425298212580047456682389970318662856995584591133648197127619740160797217096522881090923560926649170286572688618658298716237508475856515535480592172582446543185449645317454484268795835476246948096589995167563094975423958241627677181329585056759884794170718566808318186840758269645166363802898450055836294120198487899761951754972077567249292871872728139288311257214007926988928887426421682521006754498829192329305024751731391736626255987975344107453349634472018586361726837744798459964537380688459045814385548059621424693696980304255333012613694253864815669302757164156109706436723288088580199642868836031534766820388283873693271455667831580155228010125036161126802804819037119703003122863851697998088507619563509682835266555727193054569844940049588946424171052423559027445611870678836469205665613256466550680311864191494159628051608323028208051993346641781666629124969448147273417208255764708798077623164803960568378561018188480585475545610177559246574570018545798775745124836888953263435726397836843747767250294001909474931501359027156927133981286298618402753425075726602992710721095717198904711447525989396765437674156370102769171567847267510311679047447858969360079455603264607140956328679233615628837528743707617159266851118619939615160559807697653283491854851730867417627584216310265411115749950162203841023269312391472295961007851190808509262243678533567316748572955553593468351907260812836708368140704929787312553997748308676255429188084059104287585625699845787904748171247598113104038895329843734699987441263447483623750981024207741641178353655214030828562424994208039140347768620200866545778387975046681524999994746353584923487795834442171411182701750912762597850756783712495278333671567969387798832351089359316904613576425337600898695918852747101526933107274259605672871561805231891715451238335721269876383780939369589746794157565506783992375885340257089536916345019273744898680748738514592572239356031831834680195597272611902688674150082835901599802596864095322531188641828945959351267579985075094693796990366752733045512606634749544783723109857451351841130348324295685968024503283110329865792278290921142294063425148329585684238072751231065378128839016005353683385651976918212915264446353096779698089909361156956611102935747141918538461568019478702848794721717986958234873081364112221082489241713567459222863816892148429782173702151565547104650935254898469211801054679954325782376955534695090746524170377776938924890925960501174020717844254443762349206151573884222515248216780793923254134516590496054656566381036318788493561201409787042149920800294839847259485729617447926729157316516681294455704529419085150053022228794148811312847078789853575050092570424408316437510885560927484197127075433516587694054702470954990826810961432600979085649081685951723152164083457656505799234605287632123636598199903578900167549430652884898276450206893320739131676981244234159818313937588739852299618116937822506765510081064100211940864554241879746753518692186892782929837966472897449203057359764096580131127197435619883953757521513876768245220119359952328120130101851286231065646806084451280676201990539598910487867153542859706762854399408985447434356540251605224832733190135123386802360439772963667384488252428095461987386893527563747364689907699039300575768761399819171025579682353071137270162368669439542034267026524854353731196217177083777821673499439901486556261923943463904995552926816478753779878836150166668826649796950703190471647218747741994184946227799011108790320892601750187048030663333656522713356170438459815454450118771622047225660216821582760418950105208844144081226035655117818539557581715209139357284096136377125102825592901955378095206033039804853433976104802788121675292118450651144782365919301560043287701317410470796944436641383407572763315921302956652540560676357114272133513947507406048060967745643979898239557150271509451128209714044826618073305505904458806440900431950167571691154042124835524577015830348141051648027526657822269963845396205794630753289865600782248856596617919109338211436045334126741955899986200794971087685944809910203413557694937972838602337064126910565445545788870105246125891428561816133430980328406552359504057935833555840549747936217208533526582696793376199726426045857461807552444275131343612987152090405177335310239598027625102054726194700156056693266476360830446514476136871678561365605988275575907514751166491182991717792572365351196576500720602201845798970567953855970733397409242320556736714571072214937495459049698302403787727738520799557599099812716030255219019813711663182598823641311437597827033596961062925589002654665691661681463937528278659073704282684714233493303103893933418239747904485625350773648886462341059086472924958573945040080879395454425425333591699304558632654958839502278823997370915120487872049243145818487859143918100968058680629366398541017158556622325660563366306894017255417637737303431023472820096143283621511597733922335474350016152975375203434067808907998757070530773916398038255796945365450772478238677612016031018526541721542028731812336579765421707643698431504252255635549470223126394978824582704709974234149634985371166673905087108893652559604168519486382272509509062401182021771856207817898180013298201562775489744873736215348676710798563220138497462285747902721650338812760806958831853952437635483698503879726364953213046104575247987327028787344785934899711002909966365547103596836480961373454591068023728271914462912323341852862460142962435434070695296335764486312137496813412671379757318984073017873380443383399319109680671222549731678996025502426912419769210775994809346802692732006535795450225618601090616628586858375716991530241838391412112385031175061660827795168420685067366022972023330118367437605659149092070948048054728505369786953895713773850865367981116780272169699460295810918920339427601281197162641754525041343467518464257774923177546728245365720823149896332509019430811055961512261184462578082422177781222964233121204463525386957906916729597933893742075731776538349504256231120574052915892269235351005423464635471478507864926589251605804190990095424872207089718241022239731506749254217538669225881393475801662636621080087511372171417548085531980362444950477689367494432356261957590644578058176696078246009481391992947249359384383630803798237939067324038589528880978933605249780885243902105161299928317246925404538533059989620619866437028960967176579585725802237150121073574537988069564028874730201213882086162802402183301442878360510777611436867011887030083822372723544635036733933636433098371150149448996524023818980274357037281373708874574099302937266645155895037242199401695505552437531125107596165700408048950679424469119441763332438727094292327379088899495114187722508587734958395335843235915821589446592290474675129860595724265160511037603498642596336243012908846572252039912086176617603239388076746856639616884019638146620877378986016989211404625199744469678992437241232501160334055652261525008592712312156753481288106792480382967258244012697579536391519272781522763765736732813600053506447413108598967048055261888534346744043596400046645215688631394397703085545136359408375416641811832760281147713724426252856423720165793638417834453948676689566195925588075325120747787859389195317374158329216327741104703457406026667977313003125170053321842250784879121565262466947529798087223581658201765606011727845255061284144960092974467123467666251300920010790291974155986939529344742858260928429519638179942562616279271558649970320512848954435310306973410631099982790909725229596449336722401066217956349597493386616835533310931119064204889956829525640670532632077422444977038890687016429626170663187946584193998656827703032630421870753355177243569302670830461946168035868190420963758096722830978454548408488724887799406702561133084215118292763428468857227491759719342826942668390117080783504644543476027813676509072011495007286264644513355831317244494693186090250228702532776469218749716927498079246617412405306588535783208211621137360544945832195882562781112437944398470720719369268695357960397819463085949636308575889733929093123541424122903851569908029142415233588446394553614331792245011865344956714015380880088189958423418249199793495782777354065349906463257395212022351032729037234139171494803529874706469313192058689769841926072250063696124001113439959956174954684832879184412109124361892523437420389896187417547765903138775015553599703211163921951105057932017807821776513132508613415425315536848632968344109017747958460495485217477101270481640035803280951707833755011679442215467547566793329837349944115579703575405387500310715090088372502205544821684849479295689369021639186096647698010593951263219564812648801663128359908350911543536675791724401430914889578841255679669905531060183067568407914954797243025608132628625298588673812578770832242744951919338461722721946692935178595894629437809065277541533032296410571956813995304195276447930175814020885767860257040526723109757553531547870352505186026230684156994453536444482322545179871304913350909665791484720128027699539198141477624375479490859722831059150564897837908716460373767452182836721621764563011052375661889773016214985373537990991140221432751548308285760419177330150070660951484269500583632776750827560628688203866294131590839885122662710659017775382931250812343743968268438932573835249357833935270490491473010269362434392535210231373967795745792842557122997097022204564492882920660583603770093885384364433312176754084646530433567126280340606302691620659676785273823833404470352457268820689720713161653266054891103319648554015145919787821283608104048352657852934203527614668358359108109317755255180701066204110416133930184504619750884895501803366468649384507603563780276052672208404126554919311649883379265392236578497406757259034852445250242158022185856048093684866052577527845683862944303650873034037343650109097516612248456076273198465276805890496477481823152209168077212811334225267924536492919086125152232088191602315023740707971026027038096258575645846673176707059468005906069833532547982285184790155563828190026601115853614139597351137340009892047097158701939213997878935450455929922076685581005941950947509006113640020318351419732205041753355381683362335597602398333954355058484450762703657613862408682034195299528774531073661664257674126757293046073141437668004828029941631866939343287372039441696327602916146911582493907181903383801038100154540747823022646282722169534885330543745080179392558626880292604261065811765254515669013466232208085379623259229697797088860829781910173837934052367742985150486339280594714848888860723766256307448353557016621742104073313142789318776731791952402614184552246304533185250993004797461638378616755922762683627303648460789179566284999705450919864982971575273420263833040728297049270831747557330592526061846924839554080435391042928750975122757469502663783032498451105851275792346596795536968093884372538717907716539277535694357151317814567250267349950177088320937589671745857032072921086937481361938932775040223927271469561781712969665327050888681915754786204288336123340700819567962175665977661325660249625318822316641489521880105333429527417830653864304525496157554525050102802256203958731312353985528084331337376755201966299902894374379127250786485227780697239167858079622948581523103204831745950265689489061215658814019245567886196383324002222595116949048022662181522149801535014968344192820796192067757588791224007670656677454653661353976512187208320491454884410489102177043977494508331919019641949502261491048483786385614609631226054947890981737483991923377944017628030383757322128629229341478810001545304151357990589574578031345086821650582820145109385209201844955055761319457432605807652185587141626680964296196055545216503597356056532244094931179677011397153715455100954386462306675661478127020953102421396937139543110242775743061414399404392497247352706985447369045655932662669926178852273107331550444465527568765159321838036751253786232308282649467231677459724537656204262353413556420365356009691922920173659491510294561191657792619333923817357835930527308246553114056452075007208344892437262688022515967974465226675216238856515636355012831036226741022586929723887301856481518768037425380472089669400149072401948399604012751152710829009210948007180073286618591136674849503601886249524956521528036823072458581230386326546947395446116750876663420178689783089031350455038193222868646121354707500796943220774118544006392120942242968761980957163155569693434160962848110409060302091072188648589708631367827659279929158552859031113825946389561009470183850795352395687770455641678474380623239352988099476489713951852968386322330543368555889682001661024969927419572962907727329288848477114245174227393064730744049402729752714942806820040969147817281893487015110027235039528616661330151314584312966375087050084019754650856524027400337857606571315447934521519775010826914395430342851791529438545530252208036644926794152614859919599363717610731352162841574603785319379020812708566576314210854363196848223544408077829995851715518101071244356807257301974623733789796795849527317620893306896425281322929659321189675704413771919170238279387826389227808124706989276081029773890698089335667794316896288189802931184322930462715700414947558239695873573752367885772537483632215751934126337327351536877998908136864576332481845431242157789138546607293258344872762256494378766482413533338403867765874392249927385424497687880305297739032294079870218226524910424111567096066442483666075805981774499435829742109442092085855108972165542132749633844383586382977423446307350351831746075938732287320138741311685929988543016995580382393214276488165382215208147721762016143577498707371267386084128737035733569027849331266766527461757249573854314328034439497891435937714092849421632789375095136184155596385684072194015005607778267920340855234203869576752994736284066928350965951447209246666286349382415867916221372944565831023522021261934604921603940446381376608811097460134512805446044087481041357214785303859068042080392146203616578044497038973906791332068654546519886705623512137666652796703347463246162527711488908170731125595424460198954357017272157569059919922710966394422567795882110230496664394682226975905558346350158411260021866010722696772249634356732091196829044175369451501128078219309270094520349073348888113125500003299812933041285054013865885033035426652684391207686279768626620006351072562243515626119505789140935759967570610767663000077579469290729833610091344987435240937565946084378637448480135039403764209364768082344835614038380175892170055747357782436115243076915617478269267515921520904961088470273348819082889850861165883555547991516522356940763140212267404739850368785846578628526657023505787076079598038968066575226348044455729886381139320539190270671415458919071308331246567950781128730777834334332302628061439646620346734029015287453394642760435368670839747116395356430615347841154095434306336349775544346848381642120359256547100788030754101092055510998670435339007134971384190726216251610573670005256427503918753882442130461965660742587026950484938516494767180577761254696460359243248023160332057198579688883481348250006238229977864751506440183936875013782401359521150593654374140841679838059048081435078706013985343571570601233723116820773255296970267911663311202099185738621464413489478367454098426642910114863120701717249439463975023119097150065930544253408780171132694429680329962407125826582451660365343824428008361833606668126818437106312523566379653427671650344574275127305646986516389750195176445605033238019685168709829123620648653092171075643009455526441124591686383361887575115734625311755315430977536847421815749119386105395957916998842725255609517846300375874656675046664756709125083577963502872533813701149215219951824808655795489698170692881401530068819111734416005525194768177151553967818847050427018325213232307264174950558206274426281346690748392073531105644763703681105912967203727220636335314310563114976240463382525277612344161804615220405830157113300654466462738626285568086798958212193774650125837460592759173212808131337864994324070418224408395224619072702376374018316343250317973341722215907557004736275364060555685676262270603171230958336020988234167952156925871987403373051411392550757148148773981587014046291407121698810745167834706907240984783832378350720553352878279877019181522759714621969896949663760133456610826178404287258442941640231610414960326342130661570343102131834648842812212391588994650709430432620272888901764854888611555144394754038019090731975984540630250704963786234314536938161693140863934893025790919521570176368937192869423959159950751007654632717144824354024939107696889001806649994465390618411889674282960622956032080030281178911774520045555045240407648133117096329158123449173490707346616331103409637037809386070892073731984943852299896751492223850086161124477536963785235578502936976042331190310628156446139950508422952698171543186367040829930686518612733792771651032509926145410048549724092347604169381238732386131236213487634802573382258154108164862688798092360787344483659988804152044911898977772138841344720647672061022781323132148853842790663867399666691946530572392868717950195105595574945680404015035439680322160561536700885424506939458108478804277052568208697331357922844841779400833230746283743653635466392588027866216737343531715736227559890476372116927204609162767881297441548082054180267133972627349073559226221203466321344921700341494180362016570044393839595264718907760216761979163711916989490913886443603902585833552866634524221625329556414432924411604011456203890849998755127693362720602341186989433011146078225311230002347113416368579466374421882756588326678922544900576304196589297367141642772467508517274087632361573703920655462938543307660708037790331017522804048145074108051188872642147165297750422215451681608067398189029161472184805461236073340558714902061141614397447252013973563087906434268178761782390045608991002635973262730002635040279757121570566027237095884313511230721806601546414426668610320621275407184904045731809584937711767187062174827242989511228181555638577446365813942641281300503562555886100308608437418463954287159682278974568729826186643646132049610975366678246045952955147751885720098634337535417153653818990868080688452596006480528028376419240585694204277255210177098461770501490235304757353188877971007292470465168520039370483137704626963443270730504043129913363778738404040957994278431811334600551119533049218805780021605337000670936252580382200289868270781242738235885152382400884447708484204847866761833623401655788382835725228267404254487927412856833029179778010532342503291038697418912755878794751079493549124506419532851114838696579374906739467426863181667443233927387215627908177316987230276363101434055427141472509535256307645852080152208644863391283649986520016713592645797991833568720559103726224144891064727270890885670855039467340694777286932492631516834735423077153970286057602254352530707413996964337601388796543332018004992284257296363356176868821844790018978611636358607422219239565670893887543853306256096554750211972990113021963060226698047178885370203864614026255415299129914946972863837958271680910296278084000099535800229622894037602830352314783816417370738837068620245473909603625086290358488143333861210741960539191378336344107337174621701422120107865364662826409816575383015656332705023024587393737224518116173169034198555333315771406101260342121492349793381630699142853801181713397244256597289825652485567454247281480823203038484724578187373937268789944404995982754697738743219461470815579515948070599482015888555874741055344276433315794943690952536352407941799547679357919558158949473798007516652696715396940277617351332830592379816541599629480309556257702528625453219784423576904429598325095951655578548712977648975413457846865693595196724487595935398445380527780907892879652640751193290160275188441788303709280513702128944338919967591328397131950092750473261015650722204799480216258959666874264501080817087462113274049153591197768694632545937313440887132956600562401702526368207980841662484814771830039087990805129762730500014716636489092378190604079230335554198691376308309081779568921679900325927582681327325727820672988652496770899310541334300563687238487547309914159532040008686950503209857548439263793888492647854470308391626081914517581781584834132997975385600758773763486797373215849878591378412936153561299176532973277920840735168833552803030459723053099182214038694728549080778654774234454040324601815689523238989083422690947587778639874841605154296729695923179698117260315888307707323826807291975267708267286660209075936275119899097936823508847538558447628533572778884397183338041334507685080852620847599724670820477001245665497188553133287748372724965586331720456561967619971641057277810006877144810126181725386799425312375313211909451965035473281727568934815272465449608445507115299444996740383734842615375437430949324369211004807140906618113726637689398561766840264387364436645010961170043390182866154378911650921402509393854353775539266887561992874190449058367386323931105701161009185249818513073727530767944662607095585421657486664196940444234107850948425737136726006030182679853205871476499059556085322524275136560879713930464020383695858879716544670185735453620715756815200443297091651569046285075639058423226720165477685476099781667322352342447065241475389501395317685118602688646279912198546942377260954330222772042501623087140008194433231681966019412761808731525399414390849248592314099521032884026908108469381886976626696211255284579476437874012608923034236577240944141132150610799862492473809438515115563518118290328750844310423947770856679044595962215171584233816899615859349383024148697201625283882844776360796627118238086364252483244274969835953756187565438015044141633190534867417193057172315047203796203429716438643140377865289868097615512434024284683728440121630049316546751840706162834758287157810877367457811988074979896672370400867118103196061360589409738041930232085366442364973051857754562184735668303380571364717413521435382250283444749148375726316882987595130881805719187505159048595602490571429072099421452287627320329365508525556993703383586991127247309304927932391273702978669607244122449535910850141400855816355043861994332951494572399482156346772485518861738593762778476580950986740022971064565301420645301583620467916406585468985487727358690339055041281525656690165210048113414569783697443973088623781754215514115710363647903960722517787600716843383490400276865361399534860257292192681738187813773799942497219111957262583513048684198696345051594531172093132362741259584234322733953604520035550402952603230442970788624976247223072886079409582635194599911167754412210955783816686605585300936134990642841041134260723089410424489318234089456192928566767891480193225148465954928208948645641137922144746168225215008288864449730696574279855683481379012874346365212379838621598650029979895400897009549907781749935527881587106325905927138178692983776670666201797192208524912889624107824598767138780648915559815551058388403471813043003818612186560192715326943901012434610616951006744843131609276900867116749143816175285867278514278860728054662182361418374577941344293797763694432047196195018061759238356478025689011380671157414695236355323366951783194196291878033503283436587846400558604938913685697610354662598416486460724958232940338624500467415688973251922961895849767576692048572639317621094413315030912037062539502063862916334838153646686239917200582145853696513471321514909921730155268000923647393053367601963319571126670961406327072390997821307723890653932825949920503958846780041666739971408359484408792165241480147881637191280691600025398055517782492042122635301192970970550667801583683992925939681410682320006962620765399739185528239027648436400343716359086837099852624628870003387283727851680176765590547558608395105010875695462194359357530598129234038499280876680370477695066080861496709591429811987543088119157790444649471059941758349524823360109878753402265264201616351254832896650088664270871582026901893957523819865182801516722560256478130906759227036947951733780446786743384514640230743035410325537840315491099911715847538085349210722785348151425100977887102208155320734787204312436737970587749351375630191386566425900573495454946233915831548293998972239503720669270564742302149737932706583701630940521016978615891864618240784010691269301078057396569964157023436281206549440003497661971809700726676452248606913818388791986431574129607103988358712865176778121530454642200443566782419603255138742624908726124841392991139358660306024862068009878883696066592726270822210237896474937814544381610116904566643615792859346186298060422378935291687009577665338782683313840868033272707989168199995907214835355145444862361559043363034553343991593966843995062427402760227243452592507493089789555881605763182794962696234174528653525393713815377814031882503721491389807233657963081958617512474851734436997983188150679383261741739613066257620620108700910602385985015250819948816600564638428649229204689410057544325530613083113063563099233613764039464643288874140148285427621012847845258766678987224492014237513079815001920714012820949218977194618199559040206745109844098336910766507775560399405847037115854542322483662922747720577525846948970278287435490011430159407709444606120269445461133022691055069748434737537925448707665359325713616115192248716293592060505600222942773146656761505213875151090115760555413231517890518737499188951622464446488124924963739234438865936193571246004683964080761521793852508567011200854969255473073677484019340042195537773908711379545957946673772075142790649316612520265921813270145401435150416662453149567007932348567176027775533362976695280167276036683461179294974347383712819896096029862634696693637378063274495706360454805299611223382443743514295888402123410391398221263815658638650322449096332462499202940060371985311974111408434730130636499233003760877191908139313464605112922820404043387855554254615524048460043206418905124157599493743181981527981327883987642592359042923081684230082017301694179033412357957699450451234428593871671147189366372920217973301488521081777664789294239745128287576221724268101292097362364659831520902280550563424905649836423163902731395918449674305704005005280667488699917122131240796655453306685475127871328582770391439724162283582031849811962106612609636053959784524132237343578939456231812726203463324734685547669170752237011099621970424833617079715654588043461206097075234739320514895843253465511473547826105647415821482176653226200675389180080686372394523571251935444795743992411937715426760325847004378274680182806792401047261699210375048154906489410629148768338371807344371124577673564115943304773883816147848120266755399546949477029625268803343658066038611772413365407276662944048465138388359095854123776110915718723633605290362956717615283896151343407088786933890402809089794028028872764207425566788864914548817214732414318819296968934389938410558527082403488906448169753455883918180976288420439077540894100636402371442705569181711577495185312060168109364196141437508616142264950407545383387451765590300324831111387497727500050021351501746022612779254643998529568187358777470077449938802787131249017672458122804301926606202517484613120231560841897835297456749918045850890545087126406102997291255971222981456693237462260258887512158519571283584775222155710681214633539129875535235439263902671754280481724387844911780636409103405318065628921428497691048351274476446860242650753643618832634021995078375914632281845815951323213137875411700292861095330499090134907437378395424913095828894266925518701412751954036710702984977699392527499276296865383552344947761511494966482166551653520026945959081595825968663422365387733879078534695258327100230799035117184394245343799265417687581701875853219128007989269398638257639710796861873573931970441659070833541154741195936773957337716339271896078556265610527810455216272873977594738027517810995824234907188789328395944791474811511297466957683970869780399845455428067885310172771897720853606400211755555562366757736210077583088523237879271612159562714831366053775092219530110501300378625673851645712566610819205256860111864357092617121260274585690049139667163174347779500319885546293582151813938973462909134135802103758791991464795944649212112285688835285901642154634355874997263439618616883268175692789225387585231112585060298742330398611659302653467944841232674861705393747681499590106244096248945391849399899257523893292080721506787576934459323233280031858925865581324256328132356828213034518394547434528313167239433277369239091513306321567091540345370379595586993507304411207704933388649799941219455857688495148334238356721423044379466299549652665009183636932145795849402825253680134125392323479636926368180553905539557220246013934664076254578036088577560156073171219483849492087752495241174318965250082074013391206474128831618039262479538581016742926945422040153654847815726283474237672911978724814887020338235737300342739573371173426233141844007570002547699717225124905422760813963706192706488022199689898234851141021000528341240456882599895276407317519133966238155425135906313649987941303030842246869633148080457648581032857254137640284369229686039894233724823504308679246772396241361784989262993318142726824075113328903678984126391295939494881528170335621253321391382096492391897031165987698553713584398134257254854010942708513084251442044434167059355154920795656902040108053956421417533948544297635976099675286300571634780220233462868737067787097271429138923533221359949900130014353964518358803859387411845290580242638044845416885722385651168085937322786467661516441068160854913819456155708864155855428305811521309590355842027969702430109188882598612375374344238593621516933537893034311734746056082131115088190443948462496092445935132679780848051647069427931444530851064698875345145276436829165541076947275715040379967959757755060930162164806496840710311484752957003687986320314644889834280554932784825782738944980292212696148278857572538677055378880771003987362300745008828272686138906969535280725444213958925172976243855286075266065282875098297857154096412619771953922569748601897082783751720150077305386468303950980672017710656622200051049665882644133115467309731314499905295203257059482215735718782525516502449526426723134370429405451793251878685816735922364967208656999796120567940129570596459882436355741425371496491637060155253283205487109107577300398919322148695624855053109024535856524211297642344959973061362435671032247433208197785891042757184856979653113043419068932511138733484606713898505942413809991696273955736801060602506731220042035460016703321796910995607967126599113896613134226144571031285319090621030006004417159248479629236994369103608015947979809221236630849590741787784825578006450687144988680757690233403957524888065089315682636351412183599387097419985417612122290835066626332104812053117414078227918806779820310904400300256910990048228749639549580554753688416751128168320490224384983210513167035628832364543328573577772131328264971026355217619424191067431734874818410542048263639564760026013726274128946446655195278396644669005598099156945888298266956602641219201346237076437654147622152102443740745310187303350124444201561612874999063082415617115758143314625366982480773466259205078563681765161228252629925124449461333993773224622271037278187563252641482920033589547218334719271546446029899101437555834341522264624872356502686953209522114521121434986788125270321607855978506974356662146306295526650125880676154270892787080607947114773263725002799573450650644500324510811991353741619731131151285484949725087535309778962426580609013071860444622566713292942762689930690772811725546004750004538960639679803862508596549276887367480898465770458005412676131702599399051331965983134551859697777530985026885283139516908633992148254704786137946161332076362797841169332551266280750597294275204292797534316385506721840491837196295927077781655540548253441759780289593676006889429450080096933486135557944497937027096142767781368736561288202955895049646420187146048932584082002521556075203491594272974968213871429170533054590865977973531291789234181681103055345174397270849041465491481770850551854485619063396084065025331354549213788984582521315628509600229817248795470907529717207268826490164615538221961759750100120435941402076530368349194739442633135645884684965357974220488472166219166446875298838017741051662266332268653046954659000840359416252130884594671526367552224476794837260012851409062512285610063326262751084558906213938101080863248150481267692152281611385981502922197988655356052533053102248939836207713348585004552110854057926565874833867901916602722004894875497767814125072248189158996545094486363234470155535598276030791331130337432092663922662189743495078415872295757559259681922715321673747884444324305052318042944881029808896743594795190942695458522302092326161391259037833513671913483557972038148393397038716286901874364411164758791092659747924917823292169139267171255065644064849796422453306235453844733596405476107179956065273171561395541955042607590529504999044434754470147050398944807903467222203464286068334533478181774860153251583009077603741886044679426034101125024142065140126388678309689787103724532932011840799896621871276645957828066331054091588947777401573541341488534995788698680376171834566047205996893367650017070484486649322727943929644110417695130614647937374690649482419348140608363962935081980009656545257533481884920170287811478266389983876360618263523700593402578529103554627658415450540585383990213998500510312514359873496529440927364048676347494076124683487079952557011795613301853091995557200656098537080440049194795148031992419647446717366139361086351676562501172313024938847191807174704213561367062879453439954756154272433292616246093097823710474641783026817090958328032225033996682033764589585596963183147959681245795746433141177172783839209923586285560189488385924345049087995505581549589359224698700133449003823577232288720093245563440708185929922935067355531641395292442700389007506652644410768283378068867864528786733529628873754063481517932694208749167117794651158784328446820784086608709926328400548823923444723476686562282747657635757458017484566177793642010834830121900372582419999476168456656629551423807020993084239627670287063304475416879946806026277095726813124184829969821180084155599477936665110271093501393186571786983424402242238948418433975656343212448314297809402075591088632703071299504705621376347442485725244260470039300762151440020136175103183335845699431323442808696168315649724114365378109227189345251702906362798792676120590098580786322889760431284937910409269096736926222713230816894777704357376392761387057826199278776116528177889364190432461338696475363337364468137253928326543892027424249815062107271557093137660997813083300455281281820976513642990414745084282190818649169493645258380521559471535333200742258387053174246252774996948622173293464443843758308564953096132047772714875281267494545321025202868671371553068912562482668624585346709817621204832883309083148957781489415622307795086183771739361514171041699202892926653659843423833696284917194899226775068497224283834321416571810549780061597175748706245615015549354772525280568490812696168539495700227124213423481744275136920556769399950340801461239659053470227124272869664232966678723175741985317750610402966367607320401881643951060960993415697053583322635535366786325266768480625513253059186603607903014611756147683685267111359305200218490875447486902604807268984175170603163235810639612687398007313446573162682274952582858032866409591499463314755684031911376707528386061085740743678924804992264003996784817946938231971356793041519114296127056420983757257999113090716573063911175898222023111736345275459032953500685800635244096916642014288441828130317347531946873667435246895793642164455471619426733944107113392976544223937613001557682328756572634884763375860111850824652835890819481600688367507361160822617681228913976457164476827112717504109955707623040734504828586545478692760694541128643670603863347016343657781120145816881739773611574073731168971965495060807616812484182618251974318932566772394422984463164344661226940635317926999091316830509697949629201230757060220823618932232939198057740836314306489969401673415705505820713012022150023761961435907855093667104177824444198941352830461990998753436056565804491797372200968703561400087956688961673511531724822916345865993600032011558562790455885900949065372956702104104283705251658859045857535419443480431362430745993735791747775646359295982464806360084389092113560122095957148283931653743274795094055663691585130665645410637864060189793850433775476993500745942185053709166948388247058638145629504799778952591617773559926223755595794089184391182865207035251405182364134248629873278611472869796404786937992578473550156146432096105964116314278301569667734097740098657080543790000314254987661305320796242856990612296888089632162255776465721111068564101265013673483879539283563655051842341404743971685131424820869712418423631376808066938534623905324879899573565686915157536224025490677077831271863982821971350749839562136138645999436728581121675552179071392123543334047402350092582702052563846831441982515293589985884267312417576738888329435119616331665835568204048830462928168746233482151100329221718647517150804963061589488647898318890796131412452394884203102284938230105061951405643546189199895812651684204830783329121271044251022317960837392845724230914137435145734930721327531955046030286422081491023392918112719219229215259038046454695620452873899648341307318738442745994902786201401971338051172311997621233270610515927693485194536262148918818573340259376153741138174862256235093196197368874423078664561145563503115274367312376345161927430068765493477838507783363699687341591460706422550942251152783539129408341420947354770986115114150669867661051928951763402339403610862811038837284927828368843679908983622133876369195011437988146106824105524662320988056506548862491250075295980698030668944701721482118935516648720575589517689019862884429188214016054424299958505546725360414953785122209095685001841907495236403723492345356677224634565333109007897224410960553471252502397895872795552959482954761514363818555976557956867353487810497828118779707709195762292754212405012769929802706390327705996261908445574282415667176124731278921600589549231022350626434716857721380016576261200709659587555004507721773816089646699250044416257420587034208006394459381699723575846000389428150777854299189689289594917044929787138442373242308187068015206427533056658409496123647817001966360190215047610948492005389078273246308170116127416156050316706581731527923860686107514279284924141205831966865062535240181006023459479526195456094517380993780658851234710002897825034251532510157702212497691848405384709632331334718219633493310771711543349583326104087272289885681924924785801256409809179519979829189362594869728884414760021820166496553274951979051601743955031901052272833446972592077940654160966563370275157037373184838400204043432007929275125113823080519260806625533592005015522454320624850852273520505320451326956986064246225740975535951316849723745133893668821594696861130492485055038018759517071825778499266190163161544106939176319598420129385443123152216118423890042529824166214888766506418568258222599541460883146543495546461761538911480651886184625182350917736586915124882198367151016633117779052611411937612632840577012756429657986136798657877782405848867535906038163177820697116969564199579846506940165480771447839743525867474105826104721182804660376773839302221098039222223001029168447677948400962155466313363275563207978207254024448959146765935579711430830362391478646657813288619583656629583173451292065280578221153383162968616341819591953006012109279035632621159739071455949696873102153880820781598586885632004318342305755458422382871736482943086599593986777740048467789328402143893138479837005101379388887904428135787701911613349969574337420252071305775569726276059492202477907804336014141518461315148153299279724958103128470930948006769382511311199875281010027971023101641528255041317046246232707922778078880022969728745382461903977072772022108431596155978601114274438984948884143581873163979220931946865037975513613365065293571336841469415818643380262299258294577611985326582221346133397055279117224593065081334741320379681058634602262475156958763726753061244245435002415751001970260169558363592958380276363784733856684215038844580225535087653636915215298845952542426220885856593623035179101946836847733714881514655979344959771548495532386120086596945952140370829570327279921555489736175737255456160813116272846293373528842950775899599055134172667493698888905068191597964820130293522824606997594632186479995439485373113348448188380157288296735655161623841666481006268734689905206114835084975694482237776583974866815365077586061059643402560252406916573252895640596288413364243633386318325087928996421631767970004330518535937010855615054263531812942206587601238130603280446114856892184272932951343868293601206319694709479611615589599710048415378074331961023233970707485774932218322632839557154903559172886836932566589136355999897806656975704410110673847774902003560661775283471368333901379545047631116725544637323573739645565509162789855725018919704960832390300268523674652387174115376290240194228555031382131270243632391772832171573845031824556047701349667031434597732214509700731312964800431305861988491088474596350607063815232690889228512335850725098419902582222338544614067812231685194610725382276824837058358512107457161771544225275179915851864786952971181093620627338561814716380483758049048788652438771283638049669938439133372342757070504665861816016397121676351338040480553592125689361062354916244767710403121084288059296056250800303874205401740385466644255482849738289486909120926970590305311381652166995083989664519252282259751231491094955622308258673552551964982570773402506987043922144872601658820773336737473187354361902051216701681877381210290191627983892473632552158547240374356641804084524472667651668186518322845751845011462341033652400222592810923595625333875207029909178002286680396083268260226046260163712854256429060652957171692277551351279523488021284530180772502617484224657035637314667498047684954596002199854562809637847756805355246068285955960773713620020098776207599273714242770664451458411147827144093550370737714395958194879552810312849717800943578909907378301883809808471644676278144979068329475898377533422334868440256172403019239891864587634825374194759909326768529097070104274220165561200186706322507182007501263894866655519322055738665556761078095632890494168394947493451200146517926870986106955941318900017206526344953311648002206885203637207443679796562483047101639825075930661999215577942140629126849571109863700590246041227555726515951426706276592357643494837083698815436131266735080043385621623263099986890677198490952485440248973768217174139521744825144732218904876954417233015283254210593833754695916381926010109673985214250456336750370284737210664019112846850207311644431368347996392057279870090764174988880981554525649135152013394831727587296907060131787746841354979889482486593578070204489154460410763587774258548237612547367694496374228529797734676605218663377343413658797561107936815661549046016001186774493624636278264708069471212872511592202454686813713092630677964385490183293253606106074851018368458804016619824025894890695608024441728843499694115967067146077638507931706934137350452782849769613268899469681313271660174712997254741225108482797140163436891044612779254247576364848113570598041418066965619039997421541538247871107149306183499126681341668802870607807238887991111572858106329216005183596224376854793721395829521776124457403973383966723040393426992273681065932317136061336622376314782156918938388011699864186420084918515490675372588830298449092822839906762039559766600163453400120959007683790702655765841494169971808112046135774940406933641744885706659042451140821571850178739320501574345255284608866475177426809236361465928978136514117059283614909935851534703036905459511879445962926791210062667746414238360374854803850561645335145183107855413884221813812741468034079701878300431528325470061728809439812873608347704484678324564848349236592125482915348883747965062456401657387619246601752982096656485295698112473449464050186238342359391675165609787368390347994284264476753787566438029788194700816374154884091579434022832812332467182555570619324160682883763275127055662496558353785820168949817560298518072014757414478953534126022638284826266399867753136276743704452622828531177216669461266894480363985376908659110343564717294553024758185845320445062553711398986367028958756179109900216700511841777732693925782418917357716784938826248422222894174323054065708527037011416504503277985949188015262426975150676590765596955430136228086401453941209587243103907684071453930548390823636864038056446426206242134287744926314848542045790262291441161506209883731685368913776123570170913443776293011779726070151583260289516949413291233329571738509707961104713293309996932105490428401393793654159305588428685370125389763915831245757947649430697644383494356917020356581377332491186987508120175588370635036514989023817053392578164123241033113949010070675633024552254569426649107369265887330769820630403525379076353247000031883386383855912069389182772880920839994970248365587120105944871316431479552807948850259465154679925518700289060589813091221999651551959853284084104896026553094757695296053310539847324802906619601107970851823864364138449757354539389020781892526971303380617656576885382066016089758072239014879085451372910698384925579239118423829834691170760657464897334345666205397284287079222522888639367894188384865116179039756582946210198019792201198446725426476345648322488606626704021360484849665788039204817725618193117476753473715315854153744398870849070351405370656807868530944296383592332154443421491101497714235865171189843089951584238158204586549122259082555373617478776718305467645045990902979795686235106355039278951154586120717593156479201507534348727507981337744167150600757937377303056260361428714287094176676554133737970844316810511520113520348962294814272968878501626584311125783189691845019138202238317612920516045073614665290191353890683092622781251342566981828675239907969569234275965287256578310139634698129683038296466713578253983221453436296494926102606325104679189219871553912174435633357263613636202312895142885620987193339033324181674049226284333067748539098495229228544811156678423816768262496931178020582133724645277729940918282700351487960182473003462640484940921883212953504343199220109930824168880490776633933995515497809617549828657661597405561606875477729841887669887725871075475345316220052319448922393110092691984898008395086498686001320280947854035326599565374910442345989985187354973317073966695585151686972443734221663593425581784047486415211374990953592292358793273764048186765293362308286973195261710387477507464534929010892595849678350466142998860984127394078835957891719565635952008047186070347599852490068731676638253377253588681866807479877898228562834512528784245016239924341292927971515658526011126235927343437161906170862988117397301568206177152601180833749568234608135351831226424326070338822880711959802341813937628418945886573795404640258719902676732977430627025207849448897137010752950012442837012401085090478785594090668924457923787619505035803623999640694481484490566891527007425372345977014358338340029029916781058810935359086196362635343558707485012726404570162899080521689514203715279701651624098302184667941727942838859387203861980395329415451823134065128949377929308546940976824594108602608732694760091368561384510338163428487314570544382652892627719355392227169695290465334299987484386827362657640838135004302476773599462375978827270264144189334522952211981169653551889141182124439454103928466277403274750390800180547965768079134317963598849374926942005944112913579390915879774156804761385738651650078563490429799436169565392515190847791184503029839117668307872793889706419832550851854692873610984797047564192054355359729176505605210386053465317027303895016504984990352812164515397371389454652380332557502953365516879840236286989998179601297133398517034087326548962472334623642919024976401320789125392098470469772730727354576830794572621214464247608696415503565749033141151183774673070413056425147211887155465511694557472439152535560550031990163459032508619876130796503729455656760607203577467186566303120595985761247320649125431701565878833574103549626323371157735904481698243260522349443688038635938985072737594022599381822281380799961242399232710422649576616926659928867482293225709542991746035387380435297363845829674179431526086635466719447120127420906562142776262091050928890388369826716495604247465116460657959971285625839167186759457655817297372107710879743608446980168125326144106638396052048556369679043401656196179402743419421331266061268863031134745612803804947546114111054388452341744409786767304411613605254597986623912255997029169145328487108038370283030739730353724089174033910397343934645381777189251662948307611954638002407064421538752338974903224544286625714540468092048177159088261259943126858305905987552709502704206207667937674662288704510988576714235083385585975489451508744987512214134023798547692694366606304229824839286240239969373103068034886677877670500338826507534594697033428398128574745021317720179111531088928605658192144696302179770595514446006058984257334297448298441160780221397313001182093325974762986446819666047270839373336865800484930256833755669029469451222562800222179967718249273593222158324113802958042022894732549454427575883514938817431421938121013843727557824032119316787210095473446664731302507878289524978364483411580626037883202520993135851410097888355690463755593059347367250551591854331619186441602807668190133636141381265025798075345172384630135079107370494375398417682735635891720415270256945663069744097331762827951887004546120523218714057681419405837830546402445713524767372698127904457156725474164140826083780072870068952383641130267387105570492959050286124846158062710730696592586230525411373598433561914906263732474856636682492475735979144166251355570825798004666446745383154862387393009758387963788962520407478979845387302194306700505211515124807223746710059833935536769572432773863293991183757098691898461499421541178564719804861371016077572334942770973211033235728682800880265779529393721892244498941953615663478060875064187658883681580089454335009917951773593293428997051410191760523929954593673987694609210728135285633840540966729599660360701054890157392179927355009830630797645436813034822656795571840204645983276009614422957691263634118215068309026377357686465374353425727880237334246013178684283115215145004438848799007173618742146969504216013775576412388517747761204320881041906499078125789782402836879052856278258191317086951919046465168622025461099771195496801890605697998346216388119230858439642006418316221153092134118143758371310183415289449008743634493082292695835070566774373957342525515845997972059030105745789804605531516403176802175897983549272156955523780408100892879135516975685397341417548137180884834728509581155431370381412352519700901605254466869763827457888912096336278457072800338765795921975837591690809023451193179294704320746164723318874192559581953704033432476353975533766472625805125735649951551402250850865583145738683667012281749393167768386275678359783128153561712725274080293717922591887471228489594529743517141858110498542507263494846218010419351997050509927699730358581018312521732996167427110785615686255983445465502551085163320850420492295932211206698997490158220430617907593603699020013775253183501042100479145777994065122528960130597592458216892010656656489508919814889330152123821117169164846305898068848083697450137955138718263144522103439073615554133791586698849699182897981685923847267793251607286917735665035674943241706238459296555994538254645453517470622510656424694826521749996677376120369038542476171020908889546811548363010430996176289311164865894299672941594736151358995877386553535409916327056405275892271592250011716909020973125755174282899532232178996065389512124163457714737824815174691622509995766975968112026318450947236008874872653662396833782593209878376093636300499070850900892973602142403357414256333969329867852447837850474173898410245345013121224088322192368965533161686062708772580415886036417865844041298192874397410174352580671798446593998067044096507211407032149947654682465254610369444504451530524191107283187920041629329948229744235694325364993952163336572032457209444473029354642548988688096747625009808677968288463742379071312869945455986801488925846678666449629799404035304469379903067492326121934023760194998588429940877231851887415452227521934898454992388571782213799392212629067496671085294902008805688611711699737499983762446040576503268456680880684701956515867488272000801248833317225668122291744373474409319101080966790010602192354252534817438782781643218352146858817912976558493159151955762197970073644808026775877515758362366106262227081528184209762863588411455063407640267906921307245414419676888204140459751761794256811397772914626958513748098018419881673496701764362696957643088850707595191498934277189812174537528384372746985881878650294622179776816309015227342717282565969696089125774061172006696488817167554816855426094472905081965052461717789459094916433247868897918382814747369047504146545579572252502461080599423261998669231241166435257654149491461394261206201706260648426437231934048716254214573447881138497735166160879187109987105866800456676102122835675036907693491390700729545853020432753918203968240619876301610334668748056308350124289770631076183007504969686219903756130225049799624384844746108090498077370301636291924448545494602751231644151732628954550265076243577394806214529752888370801138738960361553376914234776878952033612094135546790629961628737806121139144438598777919456707581714316330724838568353323829109128222700401394384424052840578978721027651050942414849787168850002372443331797276009912481359926271174642960111890259662422501543033236659515870887872832697581964125117067869672142833597008350556202941126852092823979829005114900070573183409249629228001562872399819825753298002702149008889254899502657889088411275659979136608098539342735209118653631697911115419281551838474699548692423588666209063054161588703746391233035336673875882856848793543314576122379849556626881138880822266552614170386468844654485114306777924480071769069424748611806184521902456211069768891215110763816372448057274262233568319961168077842530856651797236958185942591671306660888823258029101857362918895190903376795321529126686731121437058582924115713527456227230615540171425300151522320999892999066515438714088628229434939704172310692540865003789101185058461955021406618923371026380487963749287956511973237966907869331240901060227693284382064267350710653927528086824372718854916400063252023630383977761602939289436989399866898636093123425536692081072458589425952398145025347566906302540228523561239994172223944110500434935719736899184681683482684124159835714836961507316692155268885059850372764532518997639920617906201677314859982711664081646418729975634958715808106848983025936391649265048423795298709883783858508719397363249248185523591343300952188716723128186117696790667799698312363698946699797803646252665567885704445830080352165889743889159682635015213970564468542439899776215690224674376400040582196226114126331070110409525933865685300752889736062214594014441165400443514588055632030726519623792280908595262187376948247013905351168016494232235837714045376279767449662889459966028397495417649374382663945842687320557693404053226103302874849391106416131120674297577270984691018572095981609562362955078666627093140437562323211363161304964121798845678794305552218237231160409333683429060989091687128111617933096231087399546033446722192934716431664889586479809263125066056779534281046342064673842771911676971874436256601253806228069256802474371549230890829736898056836898410367710443660713643993813341539813638253151484241369400414251990279458013248784928189329023733336459584703864539569951517328508888178288357402236003457590900320279708703626981868562398937932913294171068090872681667308469234151984631100054904417330538704153331813237008913131243371936064700597246921413763425492054106717923690940891406437638028606997341487927843632973101779437121729398044713066400828936048138213906680271420906645021615532190395338555721512119696432575620213506212221233925090473717350186244210523368479853910651147972513720151251037730962035406928644329196514016564628446405974200455900236289709733038334446400577488786531754275252424964202819764161574897943078584792965474360881194459255588253544944303104612925467689948469114983972873412652224754188185133780337454130904442317880345000394743997459609101712913572543441173205747605030125221138110123674989622752564342703761440471759483041502132467344360533420591878038427022677853318073423292909298716529538498684960721715887221892203601395080891349088184716269450711717895951716513223729791809184215192848473684184420346830465303194038988967963391167809018412547982864599679608348433466104364780362050852854251530038140686968801870607694470560599240592718300288502408524073234348196620293994435019257910390011688416323862388416108080998255286096500497724506729649184772435746815851992846125903666242895067505771292311025650258876716737937886028904132437429040850251531828060593233104785341166719362214239145041030874658124122459487815163754771856594165641320864452139005984556781395695169426258291491483341396479725620493312540371238185669705661934182838293715699071286325717950748627286919194002098756151939804164430782393519015047352776137304063276640443189327569878893798265256189398641403017023118098120303885353611043469581809352723737994895851525348743584181720774232068677014112349848672093965032657371362925994946223754446031816468249410293134149142478698024533450813832655608626875486242641326745220815971610939018254889423952238734026875091869322154590087761659800758607001705910118837220375946530645261661720955095745365676682002000637773463939944317260962430941719701526176877640694393903456422593181445977029871198338910212343922393326475257048502422927097442735541412215012764510482372922586300657505849632019796454447848812767888473357220077840725066724721782198678765170391989260371194347882651257421138265933697470133908034362064027046356889502879294496883628732975436005776340103400902902749641203203279624175723518186506151128774383974415098563652773103360447426975446655167822808968649346267376415223760790460582667826084517099760066760173781923226107704093264674014956836815871681557989428569223435267372472787507271576289288234164825758113133076266041424644077354567161241819971347938534212888900389739457768915815952224892021129096752075029140032701981582470818422009541352477117577344983557410952273017144724992534278315674030292209984500300514623027431577197679023964898749131678075597783864550313120310350537051200751534932108623367901488279624677054351876210319180631393762322504842760590794701595502798979899553381175727035698321327271956285379042172189370822048442683758680751503688485661207431075322577404795659487833473443026838338839220069131348771842864663652448652868920792604682041567462408274647831037601559362584572895438347858577733225614074812647985563883846191738517181129563670754103469649180327750782102231538407508778972511257412487484118052841101058652294597302929544429938483132029760935814793346107825567366460996094124486091048933562124580974976173975522492138404594811306318745315387004612933026046014512147317329264125553228201816531000382317777269908382663314829298905501056424020541059898100490388088304611896465653567846045895199842778458364043268280549616637901915290991981652563392979881907267404871770739930206458814331581903321591566548551129830287904941926483412596617646008862814524576257309300523615701400346445584377551602366003712992457752663595786764332886329624030887327543810410645078937360411725061501399734304207464920297047685022079606813414719323182056123917387818754635128411645838990833298121493007246350984210861485302948428700332632405625182072096053556676050388779497952025001433380050418689043316371106831435434663797290862148680638185563760454131920517386081771520321107038516556709817343578564944311014185332037018241156981458609842518126425222765336928758281077173197899415648047151604287725754154788839127186516456328044898220582682955176664801334507114071123721755396094472029857333791265282739851893050559628878645082945519432100894855168235845292700940880647620802699303442224022879369190935617527111597744720710196544137938140441731243553356473967277439203165992023244062974777693427544022646984017866834082658307757651315829937789147616279312160758711481907528399896944176681562425726794055695585087228425734126605530449514836660968928131095550123224686462265116691149864759298205250857673789930501961210604477069219153016340982688702589126307781407899383998215657280382632263672992748753262421880477988264025990660706243706446951330234912252331433375915158495896572098175815175324433160510888236561980861566666685146658083889862091580912617605382493593637557070788717693898546323624227324356473312129313576799900121172834163191086810059834094937623769431681808812174711190656469465683729085298407341051449855433202098654194590639892646759908921080494068096372625009392572741737764274659739567936925485291321051357043739767574701981442158447022243039119751161395274542930484880331869695960142021266348017925974267254817020369927543554243748492814603755738583707871654238342093815421687160616764043942724920030483389876233571045134621225532126570216261793391391317531816878239860853980366066679931162849876837951757116918855983488731537611450124632216891874254313076191771682900511167736669010002266644162473201805075630392979215518348544405586297577217240867274205755975420960461973562989211482254869114436385216764414572151467235926780005372092179914491427608670308839108908533028597977477170288935907252280561532204889424006729428508303273704017088427466115294908461026340763362772213815073599435940933613423419102613085429249702410294006589145189968245875809829103584927415635706964844841970542540167919271074324626279755169217804198860058813908536093768992762874410575172393316239584606638918655296972693553239160137648327127207841299071609686952875036046807075758664964605423033359541048068413462713908659523662460398963684793058899443346206897278442423294955444402465655820460223041480988903038389398513576945989913893973607458472544894832753839594028033579083263193040744653823730245808556259329623407449447451850129471024522468944287397888100351308673656651821245524490428246030423920126375475334909951059928442183988368249241413340248085530682801492958827552441263135527881811310678847092466754197519033445701836528113760093128000262893463831257751808604249709754245426068471706512901061231331383042935353085110366678251495564396728124330665650718511871051359285051253487514232580577746796844190888558819003733928807158541489509970985264685864978954844579397758399195564963304029567232603312734874433101716094691955448715751751732524953595213641264732807238435629448212031742041381939867731920519653923853707142256558225780171316699019059857329697962225314834780875458153131269318194596958097298628014069427469439843892455908033456684594524901451833778872981597278052376552167947706350819567703519850092149898366851233051926391725314371047324038742199972588162806156955639869645518201253410425136310802812326930944705681496816279257082395230166400875724374551748332478887737579432499544842391285843398992872354306352753929331186593167322666138155193626947733297756263549030808510383573420405293023338244279755955136584198760199252259617508341490591186127343293059657212956321878912123306669826467353895605778854333318469111268256514897576742967914758065488187240764024108501139817749153943517806393040195841336961886629183963024509552588628260207871160392640690321262947461485968084934011245062143402035695439005061888343511049884674389631592593391109783908677085614120746044905214172973351992766524127227916529287869884279720751804290824480937851053482815210420981404098255017384707656627546078219973980913506833127041348905268127136907039550644003305497448939904072711152905780927722517167705641757474033074285942529225635435639932055481147485620303531005735807901395665652746611246367121272970564856562367848222203679971078744007318707479112408150521431406849390339897876726749533975239250777390221585090344249375334460375407220573606448554046551937869486038238305930795541825005171475104073226546500282449368898823696492747203436775174157317092417510185238804329115045412160326496274826613433599894460246293887566195011265599691792088807134798500345366057803338162614673399489521859617847121113301628049219435681181264826644017913028473190498535772822590455675442167266093565450740422504501599399959034703307027261748486009094170745408771538425150929345272604129179244327215789464625793402869936669730898890292163369255268879132113340322477697551053885615418205082320213744948442373134525516342746332411476637672434779610167178272607428312227325302497656089017710353967250858698603645329158535892708709510590146637775679599507455435221617752809362570423110954723828047247066047701084932863004865439312886405622650969483096914449039298332929567667193576222774520078043389213252101558991825322164345769749848323473905976369123091101143836598027373779943317457778149674843183770427198916693878505630607253905816212549054499325315337994779262668972040346672224277510786891310490903610464758007388242649537991782269211321496754128040826381137523157194462944359266894295252448965110035458982179940730630352938508897093501770396392926678628125205393949695166182279874208828817302205404974849999573479751870114643345558386484446706947878388092684900070834048642237390074305265683061976349838207093897956396700117578279175180142506332786149456242136136859334666331254417046698228538659735956206441191762554310275710850344940889552915373392967244387996375245561631253802970112137850050485459748017671871348321226269023163034644630142203301087166609344956199154352214579689439812180061599991173034239368622250572091089042695548616998250288759927136286737263965737247994397618653462212840629916035088023920534299726955218038297702894182623773117952577695810598997094127661902480642351097474205029802820586311402227219467489431210999573749931476167792532181581665746898517659580342886536224555822705155053044804611922285923755331649915801266944459349567916501547195423754608638397908537789975368039789576693472651521164823244884214747632036364719532681720950300698321958819047801524403917161152978711869354677037777291899884019708101369887141090146529536575314727724904630371319601821473256395775276305930709533530570304342095054051258929103451623466320418011153380882222994499931722459634453976454410783390510294986145325682209799903852819500423878378388396881714148280760474654230818435728804466568233437115744413200376031633755675237618649549693764013459163352497356694643984095026990926044688081900805057297695388232644664826444043924304037122604615654683885168371852593082293485653871345519704277530134440798563245883996697984696794989627117351127750452619750764780716128558248173839963924419880860762866513697821545622774906831227883830969143990837957929527678436512923643096028482486504697890305507880730023753371629410428485105683042024309651202455950851059271908849411589117487698916201014423459732991618360143975328612488075861556239914629223225294380128460063414193921433482683441716735895615972828079681028210241219589940886513052074453790935954594289044440562663288532209694628856671410949475743206903350869649696760947001820001219703654310921697055986205999285320846230979318674864559741222814170037264145632246143690596253682972120900444358140986089841511691598245664018846663514257794218770454118642957820771301463864695386452701283148483680396076661153379417018068535055453929660775477764141723677369454055077984802889067052118755482825134307088964181430847153279664257264820965559143131701808569064251202341715655343309894526160383480142704603905309651944586515087940374784070343882265806184252273550859100725786202860270399821872420374297368651533954911585222380856940279233358503114196693860807010522458557147968025480225270440289660933504147562488202651945447101134437631842221316705416878764539047485499965805900751922930360228014303686781423338874867360796345435100832016109080320168617369754882651490814676710199138091073507423443883543405602086800272124644761734037198593580550760972787712046246982187310486030166850318899033896347132556073871748152766380129452862683650716311317448965597786848458314485506371470328926725501378508622438457650039964835590300274232286253095751870373486455651691650810008581887955063323899565080110410886592610086522960610749708750270103377215535110921279442203719269977316979542098302660309837894589361713793308088906759272133300203632172589345731770839575854705447150598206957705054535146489238723544608814646188673708404709412363679937255714900331901298032999477836834408151785829466971289456249410178761728265276624109386715515838854110547909648325173576822729675096758391290288177926684645862744133722176350914442541422437281084413572974374671915821669511163044418446983749004270603232169343288018808872882708175872754239042768462876016978890010766750292320699339022151282780839186380970345012947038017587707319345289306485979560779473183644981264956658243773435138255546297814405142803096971706379046784387739694008266348338588406135822533745884887892484479273208679937861513569463645319837656102029751222314423006036687713250308603950418789468334771552343848882338291631522861408533792171980598187074969810828615987579290087866810053304474409558593289017772969585000074276407993071478023740128791780776270640196107152291326134745276721326230727511806026114345357715189620878220263811689999604403229991446547453337920637087737965077035753874129926321748080499715261558678985394201559660003873292886231000419901202627627896681277879343969168402938709206784170157155694126657948088296463529253316991666238839945703358924210704116336037936533505352398341854967242029526629779749173409097280755498192151849768867727404264269523408376018706220037624303729310342357465397783712202385700173342707166049593986711815951008633440729522878828640208472434292136999087517910722758176975330374472677829676555853436909545730770662608468733017788665342587737349025007119567077775244611878395362636576414814442444798264389860392546130758383660045852898561009628166903006704292695789693265242126060473274592754163944455109908200080716068408438836120552842015070529683486963559002523428747606041957018258434231328330804772980573872519704784972756742843351537449907362521261775890037459938021353850815336468126960389257886626785855451053298423689248297773677317756010105906936999921026127953388938540855954681910922186170922882510149236568501988626829429498862827473450309774430885323567846547242400637235821527552828737243013896890617443353532848036192477841094846813242475667960383687903512148429126195846183585114356623660255405320631032353083360378381285609987080041003578479141661596612662765229145688671918952350216546711137489010796342073151995761393506872632014429655256256736006940190308999038558613717880082117897733952136933632846949002950828616343296166910334522384913360277030769837453627426754446734424977719204957529886801293085666202444540618694367350166391673621531637281124164897125119977872478250984037082199515729538450609455850153272741702889442881020064453600913501140989236728065671795138322398177188215244552420021024102091936427993814037072620101061851992977106280637524292767189122567046703151911419695974350586013703884246517329087939559917200303193039684486789555295874031993211004600854028681149327196105567616119709048412978557500223945596209258999026172794847483193638469970789819925945294251540186792248256700600520910924638116778832377162138182905243554463201296825661667237554811221761446243440499758719637201214675878796026542285138863794699082810115166610024505309597064348643498255416165015572329251206373720792837637055442237775021199701595102524162355285607709375705021502823737306959000804564261886462675537460355893978186754554669164271591760704666633662770165354684254812577458205725824175919321736383360059355845084931680918668941635738661758151355478720567817558193807687603413520667443643948249068520227132230617117253118723458152722465881296350285734117752036404193508474491123996786885242467775493264333724631851590803577772102154740039531951198929507740795179743794838860862852669603637485783480087202541002362540960891789923475464493735491911953906783420067508951873414809573490222821169472031993344382577256906791910887811112879376479315392054389592830822839647045011123791996982409040610063763004154583043988045010728443093703838906679068916441658211875146118767719561520326209093243341306809062574328636773262152343917942488488603123255285032116219250710798838166803708853522909623980862689375406734127681477352698248339149751935858409131574120756995351945789186800400135306241744809714676633444126610368645024021140297085342518685576837824612510385837819619066199722937275659135190754732975264426548788744183683017685778729688899744816462935618818472868913802647263563092594102957684920410273401609688773185874093895485971050516038890321237465470027091147557542419026823813897801213961003952681088337929949085628624217061697456746448993398997861859498433225089004185091313375790008040262475013296650841099069800813807763953541438804945761552747691380750695616407504503328332097735653335755097938783839234708505360495224174455407720062765023492055877939448910134895629526845613978244918782744587006419139881058007946986457176545090308391243281814546837912003827248876417100303530780332317628777467346299802068707126810056943220690467295321879589279409104892142554026307288558801945670466600281078048545181921364164641217010588911285579202041931152110000437968945706358092499288871405008760596975339143830241628477209757791281284064113884493077413298022517414493220285290610390466638762054802390031656692027600400696427681267214954428980348248637661793248605818223210958272314393502658888209833142807238653032919212330324853798511122367151603290181601152522565640672478590042034676029675150924283335685602580944983645160519702167182812864024230404092234674531730194214310927829416290202548987212200164735358748994167967751121730476893530169661669190035869689383060329493214482586015951258339861099806442723060100418352691682010934547230530357601716853232724778814432936355982970186971065195786424899652048787099343252665796831423762077096122448239628571874523926446297414128363711237515579945249021636816030276077433123351666979651171471880190859666135054739152515230170068901469207050747959009282421295040849274428512029113021133887271376419724773125982694713325277358474464472323062867831744597623335613669011991117689301877573892130657963216625967195520970700827405000451139285238980714288667775677734989725275658804723902340000321018907637673601516690371701903173076849510767071151730165530868346865915569190192828584210224035249083926232642511532306189826880684844164145325931234314900588809027644071092322896123007985254567986824451658150671762799674437363142491630532511201183222481686793979086760951832851877383281715197872902228214869460479644681401318577962264646695227574208919539638504560086045969270767756858737193855821858066650936747840061882325743889328220750623027326926430630459329534532970224799100368285681098533645797194436446323940159491393926904269979072547047286438984838527269195229782043047877122852275398817868805011666245240587910631683697783354340269369464281741088096682598798716583651464603211034701001988149291869938759535477694656639539153922470691531435704902776597212291845801206636905337175656960604779209727724184824226397193380825467976176910267814679415102897120485932996661731617395476644620313479331753726975356045455234696102326006059021643334357395839026026977181328070322701750686788129959392920054285199141075924415456452334864449749270087867002097639888020925975273632896548612962070114935837764653050320791689302242078058068333268973815294100574003826526095498526940113969879828166717302516603837876420112616627208955326207557447669580773416666569422743259671446383200325901265460234906495550293763820709336306414768539696093321799507502655686968342097526628343497391255204267710642530420636275376188001244072294863442482807272039724312296069095929997259913212576464767099474014225970699505316390744090479125474274386331173840044716150815358210920523855241303430694526211546241776401548171571497992499385792105565831294352340733150861466901775029740028177155254566389296432921387660411145711473030714201704237915133926491917263619394683815862552281925509717042866479301413783096437290099272686765302589094880613029306231402986017747274728357705781241943373534867790226605205743101530510139670447598644973255949880602575752598677262015728039555818546768763362912958581411902986904132944024856230631442450645871715763876557699713156285825485932361867035944918847795417274456071452519184298136667038596941695092166947678983184903738682223357615685484349677525952347966126869619685833702959611153040499742451445965032218611382251403912035295447685823898733214698426456227928552507306705701643956462010988482210443945840731285855471094636687681192137866254893940099929700945181006489320625892627414916116885014072167648291077151733268730955793152748876881609190011566730471043815141677172914702350366493719351735693458699705841285893575919167913579945788936120839586400201623162919647267752050512064664419565521812118266338682276521962375299889757531245875916647268824432664248894238966149105757428062949328226903449380786395549713268009152328633542197185978765954869820464856930121369553103839498180383149627438676754252212651993943660307600282642815482754979947873488872677035079860054769272833271877941544229690540714207442494056978329277441179725294571432443891396874163551190887389516184152414888569726649271571464391940092562384796212651869209500301497955296210719309307104703520588227092999320779958261442687674260844450501175615221363752563357646362496098915323475116444965372826307244156347308322309611786775650963810229439465821913303878935157898749139520344295234057560673454036370114319055475106469608142244038083493927811457343645072567930723429366477564972755996024419397644692315453714104418712911652188666080900309686969164144621688877644170246231662739340098575163093834181229165912981447632030096339882797866985134428665649538030384139484966348373753365916894328534134825433183822223398146534720609506730415617673099817710155203682264933802298330661436562376523746953558262654975443581676062883315347734857562678025618739994513258642474195338889948882192189133600879899059479449974689767120345881469799731847250341865444979053682741889037778544478037856924932656022932755516079142993319161029598033058821320762570772443970868428010676683708994468231058991031787063415937646533770924447694937705025133288932850550260834266881962302015816289823082477868079221860456404934992659543047947621145728505340838472365311096743864364139918872084026637719458077932554711529806600088875468760175980622275262979920881358971970443256005354766086793391600708688329785610427110412709827204827445730431272157593350984266471660836041071435932910518215575251323624021285183022193345004613580719074442888880458842989400743883379653117434946169337680685610103767624555444713103982817823071357777661705837493515481516999860083096723792752081388483734280614538378748346648808445069949497289692799765860451854190810702609976298475112902735466483697867454874864379050183279106234315469241056235319095718156754921288275463818003619976135876897391946899648146925788698456446945025703601820717310222173786448615065073824237905553700583303185083909402848546034813353108174281917514057957592977598196720505625957964051562230855251580149430343776232334831513586481247097758509902614118831897856867754816655268830453328917896473300429418973832237426982215140368714497025105674767009143406055395960894825892656978617510715409295161240971740093986133309695200175727462947966418162156379440834010695655824009392639425365147232580996505470688156169433782220891254806343563067735406031689869191216922963544849905484484313459589188329874257065421444697717778221622134128566835257009071513971689093442946279417349259557051006058054390415159132608509671093936930644061355741878225833881173228082168663033400908251665358501131069117864379302785730126974724340414280314869916018640585756534702925664605061136487501048879991803218226951868127631746844908618129144373780779171725625609259112259945473640340382784561287442056276259324176858457851374270974845200636504239518368563131615450964020137616738796204238101038946512970424982472630763887969108633632786580305419993120222435322577000449642665753866831386636890836194140221784821353716291686965367641840895319795132625865428685140333840130968441883506801473271194766930124090924527301670883960552053970895360839311005987452439794052376829402942096526497806978508818597917628648872764757019317915366224164789332801953678141178895394415470634967764098807215747899449407726005689037984031348737767256661801001460776774879255237706242210910164325595811048943929577365594900033038510359499303810310517144546671853864853656700257297622359775721637265293435627209419554859709623793778343731529329839187761638575681862110272251973528345445706805032036749123744124936012749038743080253683498062555131759923298595670277550915712009641862809720523955525895286470515945226373852069792011452553389513653693770528948032579892588776860069649698794921151451603423368477195035110083763876346970408982355406543104293275394802486408861616734907251901516544819085999685587837102168965257814129876574191218171785909322543759418748613401686779569191238041986952094326905366631936202350901498267777208399487534259676798848937006561108352619377388093203901928057732749553940599061854432840556905613848805911560576059265563741622358182302825132549028875503922827802908505303038244221943233308961606145161215031108631688161455955914320154326688270645117657047725744483222095083897111329454081322340514584612284130644523665366572454349808735220860454774433387128083520775214964566357000737977928889560345208922846162694946906702172144017309410565869529616157515479221551424931499424876049031602697792248682065438479568178637471687362734577214597635214114199747877844191402546323293099217491499734626168815502450190003189497669309797081565381926814518611360989609235641428498277140813710780539547956908022883595734167796271478945302888160318347268987281648850759780147505187971793685871853557180957695578485357615987235934265777903235523478938418453546060308038798128465188835750807912207712457728683636514814002083069635961250520034143366036761361961703798011131728944522611265665411367429935954484602307628243388367901567197718202817915819808434352806062281879471407945571612103266638507565038656419730469120095674240665843803258957395466375871586235375492449316763625033181035804495781407771791885678437726109955545377431479947365570328574635929270826783711696528004762140074497178261357790250081541824175652257210738511709097160732501798776635719222334207603731836637888457575597876502198051711771474677359798922010716118193366666123388504228986782107611735103130043255006966720821935627239488353702559590633621219913545794386067356133947626860180345214347893704533100880075517533700047993001181691060995997541560592773796243968052722749476567953965031263281851655038100844173089359054473285982285567560143597944452386457746647385994836686094395083034416600312280653678143805541475124225210606199835094845564927833633586665548251051068197654880690880119517559399280706608761834875580586376876063593944778430273469174348875802631990495912802020576836911037134644079022015154668572121304061500117304882316290545003621924283944396657125202342992598027331161439211432120666292863196457181542830593135863808035614091007156976993740888475874081282665655636123565514554555309531299396450191629862295459656436273035859070569323083402360823440966125795426687568860051281227176192030203683050676284520782212180137950844579046841481602213423520511483741079188670024807550754647581825020546931216817060253127301396432970480679184071349607558937330050970777569503920975114509257685260493760265841857192874548233685349546779463257718202857893363275413933034750513400604980056584871117342883342252624494372483666825260705643703712189240643128742089082693593097247453282912271048988159525791647664312963035298878979597638590901969128490442828907335404235720850458722433701614316056134595623312975041142991754817847825292918423307576445596658489030458236741737560759349637180997000115130174404976273756135319875369282599512338640796952680372333264554576535849866290133965058646392439564759422088464419571981286330320346606056215608447165693661863925059463743099150055924552927859583282794119173669206582657534708680023364022931024261073594075822076440707246669165385871527432000285077386931046917820203924201270923463462075334631001095759257995544254728428364206795693846868307549644247393419407713893673286194938101628294584880899220057372708823524055232088329742693566616011648053601647790406313464353462345690681125224741185453581358572640901283441011551018803468060496539316801242726348572881160061002814791373968210200129649819749040994601519610225527983690468114684767134196745630757386858133784835935411642780246853834316639895970264547720160957863788968265734261953092479336051605204683740790669493837605733185211230330285535456469382747864525356124463432212864834451462249530032472310099023005777141218548207254543577653074625959312380968636804016259751729758300650417863583541790797093598811120571320826494933625134353362070443461902065786549603682627132019994477680013980122906233839857737133773880315850658995650251917625249068461474584544075933817545331199780258054044241941501102835186189001713667650241253268065031123181028422763447595322936712628119890785987571301318529736244004591373063327200707488751346418062532020388055020706806554133697666483459850496878526063257933787020587983341018576639290601728304316914519152034769359117108453251778732356561081894009222590427446649793209617556126338740162371948724481295276478946897722776652565651050960795132852923290913517985095727570291776423753738134111781572474700279342896102251254470280409737163469218408075891496784953010846247559098733605815776905139775774721692054963617939924654212822614192869019146487013130408605481117230236524706877435242003305944012182875705785492801340112258902916705530560627868345138976704136974963525037527324206301231546807635087747419434718270432344659823973922362754324231011004359937649967721699049311097221882799604222710592644099688554162725891184064805486645669645897022289939174469968479947036085037013087010479759145985992834901029358781528100470257660697239810168566027045758988977244062611028131535597180490004879638932767422880233193531597011028685532662318310306711662402724368318861782920387628559769316593324986840437612133611015813665696339658571703241721860830696294044138825006012474749238596000703639697150109917708809478973670071755535369938847793793732479832177087814597471251149449381404664120703954831599446115553841701270131843751244409128963880552744870525611568199331703431537076564864731270312937319303267067686867093403607733355584459464371564460175502498315292169908265051373970822590492778209886822961953120570730669951521648337728024152724236814119227985881046868508267011360900799824314758418549842621838189737504924322311328175462219268528875994391525924791360482442531742873025969376326221770092056752254474874015284378894866991746173239771103449693790837076881163123078436403463426635957156070301689042962226376503109876868236760730316494593940318766953960782913539916965798739959845867494649844905626487980669383450988737015652311333271347824293796675470667334479187711415704916613476038001901271604117106369860468439472924410714536634246493503092501675482323210786617672325126330305556629032734567707572106838689562889082932734122389947882116851361477996996258510728009845090507252165032737816715825438058490474423619998852358126518964844654233671070619664679208711908244347346645209834053825994193896400351266402479935274131056121991300587700508933552756248251108108592674140755510632163095604361266157003741905004074773067515197704168880282134038402188494338677677540210940966955377096836281979057553419902574665006406064155738444516907188966341332400905313728451057482277082494607916159927442031082101068918671452994519426288145851166592109322358987908963129237493500153655767821924321493201202419936679043758765727661892875907037729186685395160885625641129117876944264825673352886974906366082498878094417143425133080928595324672387499083376371022255746558835855995844579467037271420169216277573557953555799641175446542192103801662371381340967498907177336292985554255755378414354066834725363593294483556984271729303274180406069750047650452730764243161635798872729722122855225073174463924236280543824542709201532417530405014731459451272529156930514657774252157829183439172461843332350891429813618353403943675624747641613583429020953713228738053218285070218487433621758124280052719604734856202895070941129234961476084989049053173644280271969591786287772685230642029944117600465142072125205914261023301426728808805711687357855703511651435062012615249527907239280575005776416461808725090672441650343565661398420048187388662815665788547901156655853536315661992290781919433895280552560456833200506341592485755923983832501633319693054481254408631607283917324259865582108375976341682087349629905290128187033107537403918784830331897590046802655553329293824204269917022011977649615507233371940852673511700328470769465849679132757391267438682472899363998593110832608871019642259031663420223979473773419821499795845029358094471790058334461138424624183199668808346305918739378155347505356090711360503810390186927243036827196566913225799838267325061467622209623211692380986539450075295467975080370251303859247242069396632073000538552847843640891366385689173607133443879749751072327543809523966889319626273731399078771412481714104199402104197223057981909390624577329049123622915432796198950808323450975030767353871691010781690775089424785102027474921026686248804083591250767803598254333649344739207909641629456703200220408697945158808410429696772352436917174415054104914125696726041429422226208142068776518792305845851614184655419427226356357299573385061016815317308884681577204206350252660673521369563619309270733973096987142324256080405127508370968704657356074327580825980526788070960526796115316623989839672261763245340355230540358766370945942997127130367865759810280826931888372137228582265890282160783016503820401428062700288581841175092007560300413722048442985722306087304065902281114446562829704970452660747301492515152212100466402135894235962881425702747210528131363347360016622238128057843786744043063201611782573407856673016303920008942513917620945768763746901548122457312797067723063030982391578696202720510368704205382826476437605849274555917043520544114195491700496665021379008541895513179491130188838177885398789715741356174979049901668829476411998612356856381271298665534821063796061454778660419396569376516631355637762922100070374126697058330817872819595997661112267897309242690102168643368507792213273231626360538284463220835197867846887196983466664463453980500034900032689668088333918217757050205004079551770827529103196230870030793376704023743235039263603686279974211009621725337585491746700146740857502331973928618318625704375707603438059348937820844423270004441556583473603973256923484150610073286863491155647179835134553600833158487717082890622734167703598430549681341797439338925163179025084298858953121107327728739835320187730833474076976115849746276113570164512365248349657183738127886944449022416833067021493605973885185594996045265477674351593278417347700436617953558744964084508995272984987553524709006159347423141569923384622879999631965422143807148655832476027330887442424274929211733302609506680134313615490521731172667356753361236391014515304064384155137135816027292532067860617764609813935333009064860785407960535202439636600080593112912608844891067187031073520277331085926758636310524385626423223832903407156088559238810220072105315945636604694982163827270270241796459792606528882055795318737037897655702835068605279131893869815658730407428982138131605264435567091153258511844127862347025675775448076874984939398583870056632785203984892771358136360315609115828212515224934620544090703657166076269477049377279050975837229417503983834554772649802271507650598530904493147851885860097246631030497859572917580424730985721250402401992302077508308296215938138086824299578106584620612680580787611688255660893833461535995989404347261193883949665627131561204090728647495358218115883435981916249269673999212440225556318422121323215333565045099181181932006359287084543282423447674329580430858518537412465151571087435730746013154832871524819208520597168913313710260204737379077189094349592863637917512513325748108564794784781297754835637402545894260399568129789256862752133806775816745233081249632163352024450956231354867443473799721853617067465792967539342233143669032269794223756953386606855501185418346495383174393974066499881170196858478662594361956393016505018267642985288868166563725029778560442727342141947849657218186193246024304976698536103651286965743313924360873083132975241546701952868798836426491618099225144751707523962616348976825395981645728726178894349590873441969381508776190064420265450406328446151979112090343471173642527508626049287020126715415715678203534049149773016909762990768390401540217477366421815076788600170367513296667306913939539477604622912712787464072148915147028977807390075239991023689554936021022272240691827471572151281933126003160075496087500678593651193597909979773335734186428456003246152158391643629936157592016087266395104595094029773416838134404040789709593936622244162376624711568819552545040319491847273661221503460611251280919276175632270717348396356578018492778753652266898062438238060349565853234663256920547871773744852540563799217277900359969301588312423999559062304446679203787220828137077848990160324071164627422639098990285552363351727026493078321968519776696840417540224895527756823676379751051915424814629898998431505965806850079031197454614022124129912753283115949592284078947366302279643032345694813760081306909871100220417485791125281150928434035065170658895151764431362322531845991792022364589435325018407770543414714423131599290868117750405190256584286167780090878202864167868059498635859821841441780564224737741814377682150259159941169124919562336169795450734380871574418080875186894112304375386351215850778771429644726081655457876513796286913982288119269156154796183779448672612505344240348421516265478380252370603916188319929465746495091310267602475489447191749976241486215671021728746898848991606314488280442002650276596146047643895821138865494846875045185230490747294658939398184823717430762987668656055075470295502888685493740750239915733827075426587712303115892694698541265484932954818885426610590367450750389377888468884587163542798732909606405668335274904972465057663085668055054332564502207545162236697042849625893845392430062053607140319421543896026298804412425296866843457979665399812384874253196990544944045449154677883914550070336868183676053634306528280676047904781950867989354178852065359520312516012144701249712120774006743391434359911001414665217801544341810437424870233854285665785295813625256659618900906366776922709559048312443295114859611166531736363765620363677854153457227557566226564601835815731832420437702864904293538221300514549486378557747785882914496531997138532394489949085306624802804742498953572086588560704703453367437943672311005808278788386071444398899027039380567620187882983947687650371126891484253672336143954070798741230769567751462992424662834902880071373254817733979526059388058493860798225338675157882003509748648372646256268941812217231762871090363502462366856277829699270884743156944207248448764542380725314490867398126905969187568814872433413733744325124847810387275914665444955096505239685863661100000205470774255970194829477534591622111950785195493492898752304812733315646059453872992957521339313781370220976503700880629816775998684865564369712989323930677341633393105398716187803410874650211399506316930471155340703132451202802415057952918246042387766593517080505339252642779875686292872744276073859848239237765883961464588866893687743097852653883616311813527006281351251613669985496006776729355253821767814788860486190933736880748393194812662309224788974631073930482528530245357282078491743892245797330051107897701061054471686524951262526603999019408932374115039657431232581969223923552008970753508521748427794501092949651698243662346984053334126678720049509855646609914265542400905095182252665580481069931826916274749590805822236634541399856747076172522944137026177931023284346371828275312860231123992870113372148174838560230228316299958507464568670834387979015695808587352380283306495013818966392558062356111291809636601624723013291339286541803107339621324165863029380495228243568679780361736960100861225376680631449103632222884379505099383238012602579716545216069512441723214799560963507229312644410832828093342073777985461412124781275206087367827813357860775646139810759289046407152397430559858498856858676933006611649408046700590804587300923565675395748137770458931644914219853761061575692001430390891774542828528458024918110876499699394820310426664036112790158444795938621267492198609656799720555240189280352528163169584551620305326021950772923193563512565622924925851359785933670032310386053090061189135013619163744311124543529698331587141112994663116377431409307296713057020245071176459702751316000116906719295116881721575554397448386214407650156239129151829838745385968147224282219410077909875601694804537136454868998572673323926083935193509936766726979623213456094178633366386183567609127795282707295972795931309122266149404686464331891698142790420311662452933873683530695544289975330361097105767358180565499933647633152354892445304338043443135066111866890596378819515389054632730624457050490952431021835193952889778781502527820539254986665394264186865089945897116356222363407632703864087755724327022445168421919439848702708404293835384089738219481103518024264640558792739855370029482962679426808557113357324142235146308917076664188452641862908268302544811482480471797720298126279968405829794432815840976433413056269253614038714187573825599514064472695449707831730092721401715106181401807476803601093867350990444328101055587391214503030545651062050209718983480646218146806924376387657877390931575627347700135167300338636347131543138217298838354524859708171708497056656236241560576800852566122234953362320755847471603429397969841344625605063864084659667074016724368629474206400100074714995822395963452560097660204151336465560764784248302963612824189952710667372305750545741525955280148022660644634419595290796856245458649662492837495708592757455136964366819751305018326590448804932547670725802393849940224491782486652761972929579095026470451873025348499702387163227723969706803975297540046250295713263001787311237259367068980755931148089612642696109955198577899639463531560067881882318377813959798168836259429327454989048804560866052499001681450695285109211172916475783742602507413032246488923790098201087573648566638545239823073215170435885631459887902846802086649317792947034276182297121089334909490212438935023544383717797058884750418399558704143261909964536740882643602143533087665731840527492999281294238356381960419949238438641530643581523049612340815968483822020863352096621968813680321422694871587847235997825948519518697645602047214881592442875986734188269241536925464090700306038389360893845771119305573588435231161290777186418062789017386299359749728112070624808673965602438134502779347608574824372306561042212817523817238134213571803420928519453468886191135919261478219508028293056919227757889031981044669527168442550969052391143066735844828514888368159748679110214418049812512694826538724846018954168213514237113087000561500525435130954078262012002432754298906962217500877529645848305849981385914063052428957615955170973059318293242034398772186558778496436601289378568908111793172809602782463873803465840154886420178005425702223921393398846354983049442598182865007893289265502535575735034183277040875581043917827354498694291234950102536464267611474967956595469724443520581628294460417942212843965458449290195860253973382980413847959452841679875231308493199158106224896592134483857055984797025027962871345767875179755633788686394187432198632952173972110928503015838157361452143820935287996845242923411888720896702269383299288525648703435856749289930370514913732944926386676947069053194882650752906037383556469926398110589746148125548441998155439095479532734061574841610621563978393084767440249103372475491388368817256413340251100812060464522142957337532701620569314203484888268800303117747814348136682543075926949675329705300429337728573419356462759538422489038870610636819746388325006080389190417533088521744422542691561688737596198581707924533579100880730918398905459254993690903518517831495685445784999103138497097578891832585942769681093738185943262582335003145684202538709227514781124074773366439604817545962443013230149059802236827214627509980686267157108050873547335722432532026725208032298484194686481862530194431165873368879423816344421735553346769499314163776736379559831518000260131838548185737291505684405315331225426368441099061045929780753575057195075854239234741519805473109064341926434182331110958164138712027225329532929238462128225279110512897472394924212888985902834416491922035244961653394048696021538727620695718534543459042993957997483354847958279627921160640242921268884757817459131812643014001311242071071068088190533521839640312244735380084426119531822115001120408058813763812959963063739502107363267625532835450035467829451982465563436705988191640754477569411938815864374034971038447217984987218821662275586130688356722770700128432625267571541941812908011948437019336700111814320759574816130917350077252262122862496233257398527615203358748419347917934216587051663863437936039189949829777812824156954031167266378773242534067406135827947394884493965648581247105248965306840260480863634355631837057119227361972060721065758998070127812828656073707362390885388416924834815520410084922957552441230020901967357391368382910416805070642390430836920446865073505610592955102532613814484928286093557565701386989262080610424999483502702887812251343623994068100037740196234973699118538197271884685156838327894361547292344193292943261629846590883043513083959900544956721090709496580556996054329646505268089480646340666107944062451033886538842985027451461826158196528348864520413361957751537721002794136484634256792892539100449705431219023137774801836481752504307464595167919774323102871294118224687087229767344851959129306950924417548843982781379952315832497612760453985688273668943377889684777199806336553598134620457959533608867589481901441552809080474251910381423191228878236123386583849261105261202110097793876726598391548788332752997307585768347430627193630268325330582685786385037476963235571429930765532982330690074772418317072425664864458909258157566620403463100835463959564376410295107388326731580054896708733493387625916873036937270565725617660672540017804115430608093587106511481513090075629118782015871130251946430374073142684329085468707161468364787107988847616119432980064620703411414550329046336414868707361970109671440345290777742636983119428492026619715293644566679737377559206761593157206168718949198366498617406918389838128485807668386252254037746123248603827287186175380266950384472881266108073579685544817279788920140353311553714631620502493616400625268187356759310035651289495438504879674775726626749731294764979873012079586754099096976957732025693234248761877467701661538210970415810286311857367840996608202515942399914257165695600164076740768058212498072985386604575513219074122427751666077417616540564773409679063747566391108824635303110478397275087012500758087957050157490882557937702167644674842698396467918633713179724126857436516632533949916690995337898856742812189512177298152089653786122308183856617375113446544373582110163973817417046153731398830379186139563370567284837559624400946118104518947177580860494537068962610315292331369913726092548218176120449496946037504748948679559595276535960391978536933287681431864301304147066688238278049997903555567702334477237483504528075717107856090389672834737455851347323280066195347990338261886363185289628069384270994842687739035945341667218731978042687409188542700582314022964990735178734164427163406177564429832572222201599396696244505446544556854427174502663242322707824108824830962819429704084272271941065589077584948364246746615147324766196844837040239173636152023359253226071333745384346431405799883909501020958425907066896337583543691385450820563733086054582743455846854969157191259302561412553867618682247634737810568506881212037400237902505661710162026031091633540518580200676684408972718838122619066674880024637215456526306099553986795518333978313866929573798953758469611297259478915966359121659044515627496770858183163227868009861012732888841933851703257764319885618297230460859613690013222353543214844081714639358438275999292924839479063790558520885297620722304010152216902391118595518988222640071095282016447241938474453549795184540467547502040519576941797205554123667470005789880658626338812371974955123620266271632642229336331864264237698008815768717107008356183629510789415070808680451908496712395552010957486043078803621497848711394933572812785693185060195789544762898716222307544566601964596130855977673979759923029544657145105616112926951938794696240929531237316796169458892398564307387709608797965840840883959715930551426866184507241310750716881112410606736407905272807832644770075809402234433311491396310344273063391900631144418569943038623651363870385617457370331519609753344213013527723517264880468160977157216179810570590217941906371331857822395207998371916942311546592435039987530257636725271627457878103987303773501004421162170935505356505014391886277827091150085694234362674546191530734158731228661796434109765203842201293532681211145261782780470527102064730786039321446842395799055286787906485914220741903660225486771292323253915694629284094914544929095370585360191605873884843871021752196859276515389719771741167460964477192016363235230831209039814909486174172393430556242218578208337400416561996541631415364447166298944714248528483561513499370014396513082717235098277503437591877292337042960945781136921459834265033003278307659927037576689888855934970359156368542991183221878048626796799098534410125139026659320145041603879810896564626019697341166994262112346206504143529674481387402821868662744820049265803642931038837224214306822795875315435828891797857773138163913343752850011999158959691597013336278652218665608403587609919099103365628350925753522066370210967589483851354544138083510752789285416044164276358342831049479310981396805103385405851493602328958295242542821823381276137554606536096418418793466899886921036971680923616060920301286186597890011374891338593412871124520235964787108099261661801207762056584696280493342154702515099419033809545339005824030920934594026740978428604013140368258622375640436765839706423468970186332991952800979874445606292063475687982934138417177104565443287950706220014668326690383057577304108819852986939557635179493562090528379371505004673752254247525353766729771606666856072577484393743256173631412319727104181913529214484696805392302069173692232651171458500799646067470175078740189354215335079533470119861511859250568153499485624474718780851547763181077758001823015464404211652959210108438844521591746021880765891016779091943007037294870068889642581657261923185247326884007184005033380565935947965931441450968611473774811801887422322086990493743422471925232577501980931975832216063326773573283166766777170434677634236380479356347715500365803220758712361882061565576559138388994125906305049734035434839818801014133769238099799813729188032127217498663757147700336115875980604574314800230458288995590807888492901420787815614247411673738790615843620171813478054754579171751615541640632651798589708020317785105579852111995838582801340247139506942111873503093177165636320552375909031962056018616821420015809234179341784186077139157553504308809010933218150137109148792927312371211817439945089668998029457119119576242102370825753774797669228174059880706204407488796614201622154393425984052177405590660336497426154525816989997450895818861133700859601640244579886531012349213096694962465716945972162805402899501484814177979172974439468586858903970626955068228721529920154508654472680652893525311214475319875777455739504808628420532817678994411162817696302889204178337377698638270974392690947018702995624980538761900078038778176507347145040091945691664737325797027917994031954680270203776522155127379257165649927050720930453888527920184338364942183281347816418522206878852055332707548125337995214352712406062511475194386695808409454595402891464932203162490235795223612572832771690327547384973570615483329490191770138114224325046566904987472215902487762168943104172867479171501898445269053636602975159666107404706468599521932008188504756838170189207366831850650981891256259477021314264737439164470603570093559083787870961204287212260547933265008314321985965795423728701094152845099811879923524246990256124297702577401765359152798754476932439565728377502947689849048925191608178999575134841965109087743471390459395864129105776672384981171332755931220742194432886693018168511358556443492253250394862026137086458679897886262124453056877932577904472470369123228369287643713115329787499868726509525283202447566566663748105610333213852720501459401711916746404251651858395848222037697063217506738102093263716826402158501343851668419156980352621719838306739924191784060563431708431575447923590700248629908719041424534645400673696174298793141036112714504989999871592689831701451242700868103886522656929417321570850897951445993372142205485557953167373863374203289227500585559347863251608357444507892770127319386788268481682419562037259015359968695307389022954149528654175070755075198667331974004852236270666889711654223840530270756775339904392358785272034110880462538811184165047677332271776364132321495525513046219646841433273931340294428143060991005126441979231024766974465959862661972093182406228263057659073226110133387257405351871082474850350983381143541179834417451103744407899624544395957004740936076211946980996710558843008578088442671982328375305773360938690707286729067907501295235458999795813863414406356334976941411704458936361907903953483254455668846715287401030710598606741618814557613438563437677696304207849065050719100487878339599838661761310439964661558709513416182585446205034658456341970667571128525915362845648842318882805542548712770741399032295218409800389067898632167107036303903035420930139921830921207511000861646294236224494004184021868802677188236052251812893936577152448600604640226627570162516569720424142446008343984834201705218078951047852865806321626680042296290651570822750095557357331686835602938440284953949504604557098130845560260630698584877233867240554974965432781956694288322250786077110942894924143062146121474891671332983432208102464362840793672576796705678572595901946503790197894460117105592612690916753783020123003322653426101352835081715153590136356777630756318713005970749700893653883287955420767381189076930036939479357034688267212362028197604206251334866802070646850432153223693980326775969093175829557417403353243703609925485428481992714687582943255742090337377033355816815307734348693830404491782500733993236257368574799503081854929111061013585873866747315619303745555832228811613310612754958909492337637285142073886761905878611994053213714784149683011549501314816699593056477530951733247157142164265731580839646645197493656950294438816911980950271839483473993503185000242367605717797234660505718292273613184914577763890654889393375968273472819721048323084547187697252244261909326177568786173797158859131387676260007543123338898195519444236677857335423223258851385454619502533695627702477676507346203618338090748252595033552170747525705304191268955717081446655526954841336813088008017998853800472419247390925624058077721317055756674675684774068967853383287401119085947398442479419134101239772326939371250780866396846492633234893616957423725204709697810015010918672778149691920114548296526366182781213685335591879723479757308491465331139063346823262101341325842453926616505323918843444861896200453460339185914781829706087359085321548097374620451534770983492504862555915007949919480620944366507593522188989653080617292136357269823105792434480639304586253194059617434450389029063224270847142066407542448552035640452759712855929590951320183225350664520427959793573002266965759046560312949044926622780092200106627611353893900149412887998718854038077156828341046665165988783845814990485187350506394301642248734853680068561791006466397524893353994351783007298985473264195603114038022009178945060091117804280090118120318954491575945662300187265532367845274919216009210703534765173465373809292598601552822054287169788396228937148434764231132264144348868665698346119076905089657593176833794187239762162474261143198235076070035507813311810324916198568332068181657651159323041191518993633540452560048830779777766976114413539112280932822052416728239957047625886368776977637056178643481813079213097084139516957091225214069529429350558776974818678471412119121192084867616700132331516571858176881522429103759846119571847342398596526482379436823266821709619720242492208299333317236041099154929399892741840307142074593059008557081587076643515982895339889864034554316946851935742002671351984053467947705293808936194500262952981840286524457532784782853708209265765981612417973735104431068552555174972659013717026570750224231350965815751043599915099981544181094525154621404153631692223778154498977997450020080053654042087176539083004956773382762608209260168800475428343035151345001551382879337640790564262859408635832995452760233582467690722218362898001976054097230972536310323573751209805095626043749275327000989193203225869669590339498128292992178298919968302997718118618903010570878900293891364505505717920748807919804660092840904372240349351210716089543585642633091725940990979966227610089247401709455377927548980998423152240214033575459608025536345119153843223988854916219233489758437251858003649920062851407250268929356834178952515390776617318195186301390836343105806597517941613756118273882602322711980157798055343415884911080277967837386305945739588216436394372891991178559011709821651826895747382135154371977869736358753981515510016177267927784027277081999643284446913797772777450730889351094796150468808823330014220374816737711813434375447095881376530505717888067044432176002213635542463125793422151162160676085817995966398789998890265642336748121518424899713282210845434076713162068310364137785978584608062409342169004327824989277572298506724049688486397099089809103051392325704925336497051154634503175838082028452099577086691599760893728672337063592865934527226891636949060268629562379102726337880376601318002394986155449764547711482243353858285852060087318904143903047369041306518068584019902925593804206098869344657336244624307144350998790180160030600530013944192589399107542846430203762678881717539719644849310750868123990959969237699550119674869671635209997642449227226002272630784082662802349017904596363143386361217373974177408908098508986152316043108780173540547402079371951468771058466763494189775614043925303282419360800481930749582891901303289784990274056043829932648265555571436371148920099971967570047755541035053465486885294758080700289970762979981975536818613344618109658892597068981864879838516508284323562065383659436199150828697138756539683821112260912286233165225307394745496215058921215251000997487307854534993184130231673344545116852773376474161163069590938479706828428932611222826082270630490092761890282185837359855089674292092544516434239480871687272760201594717587120353883399134214817395326742151065972643452223004036881072233604496698504754364510962658135579615938624494005840540897094154799382143466311848942627745373407714885052240202540512392702127853441522572980157883723599634598038015309059770789067186628402391424734785236663472869694461479165873128134643541033118395904608992967470970856795129683751942098619499607909907831121963413700430812167606459111569636342846507560187581715909707592835597215330070860572244821837967143175376076245536448661536775155251535909940096866959988583149019736614791641549638470860296901737568651769334365042576698612938874540768946873536333737566237413904185924562539038418231812720050307555787989647422259961840314321991102242914726661996330813783553611063517302445883519845847378549624055949820215035127404567330934276452454932215834412184754539611063924996342913053829668994450963925070070325179714198853107118018041617636326133172745548545054902025336081350529315673667022176611595837155286524821792896689356879100262491289312477715288889385193577961233349182795107513996390482173375005374668989872048187394314953035728969341870007144477481879721478377483000853011318510552316543019574762057581025155381149177750738903524701169391378974879698332267340759343880818536442361230470425907332196877552264546528223245073011323499653278085879325137746259294677174222278452541844856664937358192067400149247103934928878001143841529827517837407224571318780422305253550125855480326109580447116051920678434579234754252916539593341494833715969137050492576107305630550167914495757862610408516873326275378679128931779223510158622340865763232450799321777593800304780971511302816674114360191101189297353722470787605441629310143401575299663370814514201521535667737290683286627666344107628273118816650196378062427873187961645896402424395140305406767819768132532767820562323232232019532695446457824446203267356309427740576630409185638358127296741548529976328113569593272872891399140855510707560571624761722446335870179413386096358222082111898797911973160091899090766893626376787404786248744575456936243387814087041322160863121143047690443168601217634594549281623744314140753059270616134109680480925911443338393485929333185183472920104707860248833942899909011102114831064704104633826483035046582247717448278305328204533688062174593412453394694480813622838551145891690622442725804533741722555819204794853394447046677413063804924539187690188160290667258372799863086856972322070306035470066815308302791815579704224983697694320863375907413727629415352861411281578225071139168824899191172184938458983759082786102495334076380521860298380758804097780286720484191083393160804800966564865394399189271829537638778930077888117102520907250337255252267486133766533152774492708752790956606124305888570544893850258717360455448184181903494851143244132742621997963608563898561675363625596757788999536797014629415536109602944601951971232794654334650806375820049755273856016333967391101237581026301523694208078041750905454671780166445311022350862677519863593583414346927845506124155157518391998730759947470850460442301201044013902200423459264005812531099027296744979075508508553338552816734769163745668846586637139317108712038852704746943270197039057348946417470145339171212981806716875144035763828639629046571861321572395302533003549273174119653285166114818983814587691845747421097538848224321929997806917476409348103355359778033796413040372277671808247777799148614961590610330026332787999956438882198934440858561432219780091479184627533834515160728334035550613363504408204942199313773138598267690918202478438121673536396112017248928543299384826284913208942575816144207509099878158639620082115808010870644238620229244021635423084714412134686272956167897437926353358004662106739229778573230597924318195934137261434105932740843121517559056283133467112144559145139392964733283610730147210869161926947962900095195522048519902194290890153570858479436685244735287971073603090385492481344212948053560333089292813132777514205964563568957664257748941718299236029347479624998085190413537984415396460775480327645939578077783675526264632525241495084926358306394553302593923580613879668736346959430643050900169416431407164967350962069892282874631830465738775008269212368570322759908574344398867076784257279163034999174040396216207809902529155469026962612596747532322771212525169656591612576128276324715571835734475483032543404827931779515865023681198509098971034589408426371691930097226751709878225722014967469075486024635895227422020567590567635626150214305888816796681036824131018536311043152924394807259230288376665134884366245189984127207666680354459742809370747325176111316407907844937988724172304524830632825600713710425617330000990962150286066284926309652539059054380117278431547658977470503711373963294284702020029997726499257321601319189515759031891142801057598667400197156396413594678224288578565868697565417074985810427479293111068475137239484743992827961412249888827347409523773521828927556291763443905949806459004327896486719903508645543208927160330183992847084737790610183161108187468031099952749778681545779944256435468319618461992167888234588020545716919186898412963812695593055770769361102775723356038904215967870489349470631428262159871904027018291906622801777539346716019303088032539788814366548796195233903721539697805023006999564019476316242848862668449811936498302296543223390952475892249859073375595752915341121155062830207432989707136371275330191544999959242435249898812955212837075018268095388462861579880920918152366621100282313232366162097178045565925787881844169095726444110972799083374129440782701352612353506148874306545182843473422109185102907027283861825757291925000920093987837227571373692605552530403520487919291191349357228773559261547696484594426970796242093884388344209519545013744662880027758885834223404962810823054137535856112074135846022537054540014815495528458476676114779098123879297647059098935095847096605034143920251877150428257753465361170036152454004752439260818936986260339592169016824166383919276784285501292757069612166069526985566486416299935216356067919915323856373811992108239866247778629627394474838788536232268025483287965219975486509373965119384201362412700768041366125703792719372170805361920267310468002300019963652405638733705475136014969495813417594603996009141192597871409409719295942385934363965023572552796759357439909344882688015281084553749366587168971269968917002421630759716212230917332070914318878911799242711658462215906972249948929867179124362468231958052658423390485065119189948699170150657733733152995629434715260152412033441100396455692423028396170701588442361255291320060841993164597854937580335710572873852418444962664107796566996035715697429288802404732855969079077723414075804072102142914882955669416857602684114687171076321853880212398851777963300844165439666082113783245054936441663324666999095015602300635141911520171862966992784439079918158020804125623810370303007714135945382396911438771218974695608978779717121230295885552781573816042952804858283340857677035022299487704551697251640833819756340557658634934049192849392067216243274279064471448927221616470555440814583738557366158422985157672908013497910962022231954543506013990978673017657164151757296423004659733889741352628612356732468470108915578918568719058004248877096970256936824945064414943755135358750026816813187166845456180118642942755164150847014552163430950378922207943331976282915756455902213413298432363945047905699626720657901629925318182910038718080211873755625426239030049298876748199244972679208617185680834830748376061002694662804363169403837178914974742014545660157689846109460411648767224707670343530297854421447365085037973723398237615460341189141859988809095047178680971675326466828562875748722370490762125693112519534777795517647095695186268733386317264014946230828328403751944233699442413568367919595746292669159330307907950581195374619103814612548146567289636676311516690126049025663080249707300404336046296148332759618501561000055040874165292902884927295130440829061323443831120317426884253550124357603887708620911344033083094546139678635741157431574969959136924613718989847764663966000308840202271457935178447553330041611497382295666584116518820852920524026918300877405253255313346088138065346056095778986420298550524017902349081596932783394142440225146017098466455771916615142905498222516588186584649907181959914841595830076876436544015031251461268260089704032602432639309969680085409689470701504921341141427342690715933053005502292948596126350393034003982966004104303175263885730444943364025804074734716516015326818231182508211012564367646596089029893062029760924555354637036112691811210793381636095039493040786131378656459089080834622354575588341084212685894635130344353043102198736318652613288345051946391412352164951552248146592347070643534838666931643268081305367327506904446014350891640026473408060086675384896703225235460107648181405209588523036504096632251961955241962177998324209448757387917166512792753558409624892656684677485528473388127053189263565043742839410926206353564802222422918469495479043043654897274508423813009960564377245858728289484033485456940929013428023252618999980316656439379198016572731031037641475335220485993270112725802278100540346478030816558902575188029662694839806070989777959596777992478960375618413045924656188499278400448253177017188213719960094646602525421368631855466510312768373912916794764455793075619985584897505514964659341353449496222116373967244181673174498171608987479209597866614879988633080851641502023757472036503165961462814189009766909330502832087427273347134763914899651424276281476879103265956659429591454498268500335975156667880988069336845280391964004706485838128387294659579448544816867494143112935421514637629206360221548746128271542026685754662588195783890239890376660111353951867578779749971458712045904085975024406415741513354727252751627837511194911057037935870063532318751636134858118351627679342639712212126850092257809184331912568797018911395589472147880092282962327058335646094815098131072586321493579887729911914490252561103366676462451546401628065625129686107366251203604402277135800483289919894565674500466958812229510261735625544610496185289743636626873237656625172329067187321451747986321195317595363560848735045667481234841259689694914611114629423761276876397565650513027131888494387196564933208287101838331180979118837272508346594874806575243235500288218700417816119209168716249570303610598420942683940498937104262258923418373342496944319271572668489799277603071090045592136004736774333456044951393590162040023328593534614369446508858969862722744508432994509578014566850311052673937263423845151820105672774760968847508380828473937633604771772898684244227757133665471901663318562886217899030895285001596225891251010174057816913060766999148545482171027804079965271780586077340807911145630062280085146943304547148949988324300754161530670908250628938654122001531241518760307207332911665983055523778004341413151213471764329928444931797117148165544660134238789592462792290721618843189450924218001208521602404667728896228593943491363146422204624150008791221173589671336379384052151218605791357074022929437963175169617054906080093730073983860261188501234222503957734058353653441787043784495322239092923223102501402945330311040691745224016538578167720051672931859228828517675681585359718806037915755694095130136416515440164953687380588844102576629009829856053533801324229600059299826894142516339380588586163673525545573246271104303233606080167640553455089233531577001768739701832325528483661088941310064113989869888994733720967523603031302586715365922279260992368210676720415012274660965113388146198907217822141323397217354039563575004846256928991348318525605821343689281354888201181170112694681211907031477468669734339434459833234755850605212268428843893410105939105001009940675031821524127862911055766873034208866322210112480285377289113097494897643277040224677020633739046362237352182611466139129623217156294096771670743862797683523367287931924217318495804952908441548926956042941998838410139912875829999617712367280950756102560839785903682309490810500920885554672761856382796917020932588910026766153676386075119360162866969752718161846728851797524457241457271121023289397338606509128509830409983015268796024201515560539188796560555403398454763761397826500509231580826258974129676756679732740709146601228114871439812889469266120774777492978303302087471749333239079081261792591021484588409229762779616667665350267435829965899505392679115588472799300263063835841091201064191508625112830688097068640802857025007166787864493804696519833966497276409523894987425841788183687317356745776587669958889417500890413014861307792397128527679901438381233104390961858224192281647882948006675708597674385617802722445328446615212370578540927940459078703261768847627144863101232188752077817607033793748573666881010989231280359598315638072569844186087345832200230535917988490399564079264639250406911820533487735964550003214121656856039116004324314785035788421750731096154666383443454301956787523035764710080269452314016557688044179552110733510806044009626794211821187849917432969164943859502660190363430642226317162600076947479485137969831279051716688082590413948687040615100016381594930911663399923322649358764477327517861918163582572754320172374424156638399383924111618337424760233911149691973219910158104575755510486320693594700022914756814712177269497137215667815628106871281396628998899487122758388014702981298387918948962597887922805628758646689938192293455712135453405331576282635358049351906079979519734511450545823704755062197726413665368964332349015431956456705889991873796809365350450396700758649444323539209644293731670886359373354447135444686272278021873729725687193738650114740678599748508688525753799890889994737598409040448218881596334133665244533903455788336913762803125959501800006664831453290872470872694305911289875304749777327339900946078025548663074140437873962784932787432671592518482718154587313660115387162269423896061467757527085508929156112647081952443693969674330776492538612227940260961931488743461367030785708530501568831072967032791584495757997439361099926326525912637906356252517162100162247817675134298130012614872755995504688235709436162089964702330035038779297707520911459477732714828547711805501459536796814713649174523313231864324460166587562291273861628209791717738834422287784200771164230588998177851455888423778234484988045610988132088609703891576387649518063061964292072205835407667112520521307438116945132942651591779276279645568544223285989899663619017841880467045165719115744694910071373094135384341149990040034046196637563713995501689373508433700628392424296860445672480277416853579617944599694362972118804408250732297138429005677251475903445563695863515152489835163479738983207675018141368427337053949668243330225529286521468442599348006051109724279271071438874450452238982367252504708450656513104276786459972005462829082496333877112920554860916905653004023647034319009907182212296810760703580052428930131765695360767774708085702055916766260331139906100199648305360718239189721710717848972102746246750024344744228111612178630962877181693813449020242291686027681199082327924420489167704276204143164907805094412025057490003453893782023279393554103846850897690330060286760837168153632882491094943808380615285630014769487910721086578031671638099634562946508043711711310116769207727468287938521783085199211824084935712024338955451393287711231201957733578495362954001612434160114348621670422332955217465080233947213763829591635231120261606088399792716050759707022481191372760396427584720716269586042640427843491445851437437419972868460898330772198491002670328308716801064688479029062758123915086515988737273512943394536114881980438455446117184293966272799313175323863947986379659085804298946799989256887356928406247700909863490907707790102824402724114999974406507584781229846948676311327097741167024324669018186541287876549920070487276734347259266715044893492172289977205124012869765809614767627573704718848800042525432234747613803311551667815306037692101029050199823886953301708576849028713367908422728728910498947668251099598588715762772815756815115990517445213799569427600476307499612485255220576931759736539489626260500355759134518946733072855259361759395277735110965896688605004657116335304464327934746804181114985446114287431786236204969445751828696973473823898627719579610414142055305113338692864218127501880992948738445451480531852080032198376204429399326483423448624338592758886230852367019518864939358213440783829021426998816804071550710494830417734827169374759780863732410873729340129223919451472288113970405951152819659197344945793118137009517980045333663532952497591182414545650953028078402941916745902553704111642071327938661827687563388640545391281567621211160963992210336087979744800127497028310688935485066701619782872501380569434943050354371718511757417692065815293349995845728623633693626510653676809229145581741134168026274862502578404461030436253712091842537831125085523801231025362528764751373044029843658677153649833028991630973234139655338066410520570802048959529517310225360414030152371838573514603466335360492335242782202771030214320906936527109389761585742635829692921151868905942671013979572363930929965736471440572669838230832377550035071081437368440840538011749227309185849195301456212600228879230398637224653982859424920976806766284158990363551812505783973631962607589165182192646968911920363211821573126942043624445574222252678893663587047872339271695554614934659668922276149251761409667571458515806232786404760677915249142628561174047737334430114283663688575420109732293701650685069151854322125944090919050080972172229126026193612661380161181413147212966461058900403415925636133322961246533618948200987189408913874128917525464834893117089142923678852801229954337206755993133075637480347764378726073446380758896606211664926982098681340797651077935461896867828612699644951306567523123488869918524613841415502411414924456680794993939227795671442487217499946040788442829348035419574252882290074398803959965604575123720335127385809922462905897590196019252497361139262580698279756260867804703211206072579544005184877633260309281050228740216842050673071032113047812370237903158662322339085699785121843761338399182278129912214845031492029343099878417907307612671763894908232478436542478859677969553156342059266712438607844714984246154909748568595077742834568842437071233422802183549125388504608661310416137769237454701765053390766061307019169967001757099896888675463369716614709486808946743340106546164104901421465092653006633321009131842208374520033739550335041733544399027984461695494379150766902389698552087162722843888849005745775010594808204185867312443705032849693916025921782776627385070998414562120350016862314237106596142448834069776567368005860293746867581688322144409321834444751173301834355175641177220596996021015993330425637423569330634045388447463860249738169157599965097660586576769747821988719869183096710342492502000358520408313814079441596563256365706925483221430153721838327498724273337614635837717202563022459101995737718372888073887696993116408577330664576992414698849271568919170353774566724420178841852130377321924368492178356511391211688051100472702312038288962612880680464966832508334204816126882957308167452427251864756744878753219482728796999405661082088981293150967907257000448821810368371823340672351870550425867776852066716442745712375213755282255614654745180605212489563596717605267055032366224607342631218397445354583159046094977615707472633492874798511430516620057553861099984126105182607101352695139845410160223454533968994610166556558712574361270076738945842646320814564518108483602158630035566813682336723938123436699867358654928373081909109978130212318416089770102435087264955786030420100437248683153522341893166931031816681846793370761300773171051385381851508863039532491830051396651137679822144160057567912740151505708658961556610898590630830192178496265248596963433194278558278937203988556195467736151567673358098538614339615505737793041485605022959438482055017411464110606939784991177145167629843143754217242285325563504008956017677476323059934911538024945678729407630230456504245876700831763376817103763055615396459810503162363938262624486875965648613718492765324668695742867565616165179461517584239049214732245914241298984155261666258665593898366110652041710857594256443460594347489035824058054560379380038555935494024628878909601583058531565145519652588568706735799425161686042518622947638494885656937788749257813844160132654858901258668552680770556265847383723129284515512106408554985062444154768824631289725204949049953823560141413021828007736589871513079023841544870905854785289003882425650031203869485043558055061400146640587709586063504279470267051054218982559411055680862881450492040084057908967330102808589757789574243118213184600395566232242971799686265981316949505701723254918808439010423137558270434542120818086784900825092603621719111287984042171395255685991528706179119061163181539521911390430844226819462450033017236131570229524915435586591179795798795450254120352442541467428124866094802596291579349724058543692140217193072434600726802967844281772230451838963733219788211001894744598470097922311047796064314106207418540594307043374972993247588937476623654526857505243859019231952316423336117180898599851281325218163510014635361748657032963636045270571630694778460932104795244327915418695841781005622203805662598669940007691717026318485937031472937514730511228006004088115429059160479646316247873186018870979902277159571584445221415264014350578778833261710545939026499025012858999165261692907593038905748779263465436507323470824015444170585713622553577236362649470617263184625268550018725374277108086150869545650679583849453214777860231340820812960612802314704394465457072844539990230430437068015074976253067761295456373448316608826350933573555400599119719538721097787390309709617382018331558172395195342902374159174058934267312211057800159148103828293119876734420991785650091070165454056643162466924607418100617505184928121002231963129152683688511539922689190269597442459496707160539920444781062311227076094939731910808585604282905034006526381044386078789730409282096552218010742102497722354938798675680872182696070623441042402808208742830889743701861884720270163727903305465799687077525454465169150682342090320170830183317910660826418124957145611561354568841841598219023712364549138211350035920143370078007595243944100134800012842924503554396852463712431512062690474011730558127338040045351987006875679528000477831430779015158785439872579111358799184646099588904392730596332316447834462615887622273813483850963637211284086425475661219755267413872677736567297185556625804913062520654296975589162710028128481389034030702496476523923085057655578048091790480977738837137824165701760921217468249936640497566327944614904490155029344287911151842789319874188923090116465626205092539135103792101591379168669439472398959424163325690288916069087484503063863859997309298540381720601306665832829018239727870920690552452374165791731799801512188649543872971578104819510331238378297302465778392587671067179737739605672912486347454244076060633870753033685703671134724372296010128833612002238908503899283190665985246768561118931573591358300567556409309395530904632452882293431642625985117672368320701688747030435902955856530999299921490020863773575079330139883039831303313295857825932954949452378853177899236942691201232655251846625334781829432853651441445427242026469786046679363837590903291028997981573666935424391307520486688066945200361950777949237542807442934996819988668916875384734293488015434796714739785942141913739656121439132142169673492001049280570953738151543175367650917879083089461661849854343985381755250382282449973880780723783413687919836367649334815352620793263086400856567576396809072258944906429450594181664955155801088861331138455385824372495846905459402506518676344172791232761720894107441735430750518244705336436714942029264059660648491401003768776929063882038538043643741202614568869375814909714476766168729668053545507376834054866968784571401786167663244220754109293097545461216384811642832864454063250765773221460896958120079442518771695611697757667691508157428863138882181156312559460322658739360025108410232995575324545093197022925572521023362910011059855696542132541590632608853131224624775737183578134783634147209676657277986809686857987589999730261301072067134192326488702683181282977104436335779821850650732693654512144636954764637301884155370505261808727695919566262270572099257331328046087524315726373885194332764834927787449796801367829673733948965166253317807460968757337792179091312635881709311040871805051518801915345062088722176690057190608807586473462374268683910645910163037281060429440851464256210514812721182397100629129288636142818448094305038566973204014600474876147326581923474839250642021949439086335030945312390513241815370517909552301935779265638522301812709561462620647543826188263490015939697475867291098000768378551685189232747670881782980271222797940491796455418801865228532684767098229848301628178287418513604040673743656026275344867444112038201237151062084184464168699545450523855106500991142741743088465051478236522265323646988681716604769514336677378778720862421600675418587045848153236563809360423517312375769728441210240617665082026369102683167149698413218768499310879463508177770546422295322029634823111324484926422537271972327913351276173045092101437302268672910099791439694476194794977616547818308019101524011681750164691206076801952401470012202436602291617701021320290874577861915691817004268412943246741807484369892885919550298786000028578053617193932224530500770658766768636454168399481179872254167445597721262425389288817259973719522356842747676334073705271750243563872118475366075722370100791366961075392994370062327463479217661754568210354321735171264372003644571970949621952230186625331284350260621299837904870164524746829383938693275724148695563640709725952081791852016792044687454798291218401996387306784393285252526450568301189662863831488613135638978679898862520990327612840869755151738263633967396869295622527819972199524643176132519995048074530086196687786436536020078712674459849721952080789747230617759237355343314341408443722563733098915661641288953846203872291067746850789955474880403028004904970021624756106811015956080723971994551998329424483949987061037653352446023090749487016719142452661707949199499685630338139757538278150524810282312718931172780778073871440951910669890330549250256233838914918545288599060636354756535125129753497407969965032015633784435299371899718362693645004201200859572117458280473235872507259090281256217698331974829594045343024271517770876821553362936119153480242315506569163848428773884438997295063742130418271789330071271104906042174987670117591090051478770160257579143003121209207019271545079727778867102976292359054932654082689718145575377812165698513105648530772288333873052521608960635749989430065328280281077748793215265080004331764138440409279617347509212699398057648672406548947831766517657305494631563367843811942818558385157190452179324479376703692966381829805397422811663065360110611184163857959019378769818766831295673845360565076888938415996751701943162979637579596472317681514196282409037351354236927258650487439767965800065140698882208689677509379551934801471422440977844933248967808475150333246136214609247921669615298664239399796394781951296853040774788619441170760538521068676516232272552195607359163384697822741430014067819049279747712710280565901834598448996332509604703293079039849453463468132078722986633854662905966884860484011121539009909367874082243214586537409998551439974991723559335390352188521272076908381133874773266563792115156848528812365584119280129375864245576286740413426688773329523374199088513972672704051121074467132715396542763681760186625076730031403554789047855696739621469474712053487561207930682988988001721043480723295347097479873080288525851677414944557004518604632304502877393380564674000881028398290350732129225552789443883941719011123336721984160614317987627986834883738794775188676674363829397337362446649503292728213140480318837166751249436242198930381143901605593348518602278618227582728967807842976364105340661347510600021422732567754528189529007530126591166563634899898209513186813942101012155631072560380397785409137730856167096861535043285720856980575213588862373265029765535673226757357985337577253928329890505657327097764804225697036769562945161232500573650135599509258218201478061932508258750596348154420453108006636793529586812358508567622120948775144259561639455025081655406233926094265616385158307353380970105890427883043758329738676483030002438075715082187916506078092576119983721466839310485919766785660044331898305741288994149759495857720155020181181267429931951534027941258795909118891151352665417190893765302755857120400872541454287597980792272384348594001468782703992707549524352074703201646637032745360218111023617618931734021984773581675226915544039412223749466535892983818427020788501340787788399712023054690023204199984329217008610952497462900226581916467158340888193605470434763079971368711763421975498027969562848023491499041580543667230285072678531431053759695330669317336708520305383508405113607225435348185303527931055352492261994149553225904087979215070977504914840758816807327654534808539560429369494248929692626094260570299448647809413387122162261821963429832952594817866322942194236806315293676473418137555749497760588988735441971705909771476676729565149660474915239903725106127189505770748042850998774158927593001125395310531100914898836829821502051980473190461917547557634835693736164112976870753911858634190300313158110576570178218014247054840266115556979359588345745536926300854732719638710742764474783839129280628172089432422460489405676624294176667483575715989952024894172536902760403939693300777154221655446332652620219332553729908376845065778823317310764487991189204236354599188028395441997610522328491173633868131991440832422778591818391991434530120394784691172162804566994921807456945911029756836242311616109579583690682029710432703343552456049605995134459838286984452232507034371172493245644694867780655124225509600741756954833139668747302173533121391850187165323812599741724435689825904383172725312240468794018425240241866677364487979298521017243549518825266713650317412553296678561184455442086933005796102572284501454888622790873667831892991217761669542820415325866585091952449018076039473331795896897403387748321466624011046379729307077299659148216738345316915541247727625519805149862479023110570439656049625147666912805817430241556593259239254463586327264374918560185736472860593173784331199613864930450536879196345879537401702674285253970147671356918788914259251038127221846039243967525940666920840794417617486074110265521687772118184023275711788539737686282250442425018999986598193104073363579979261141087255218635730003758615916386938775410584683800235861101995130509313188933897281994705525482883891447335283966868533839868363095716612427801118387108674290108468308884348915676212991543897839706320508920895202515179043122396666989644142631763726947622956800637090694831087792263838086849311469762333493580176488837206151241501518762263064518531304965405139880163766008697179437366053305431563912619503468231630113320811904649247797412724119569093986056572710217532022311461777596408159095924047121234116720198533349270989916502562165252686149404875301688992987639581207895582538280190021422333915215962914262140535894233376279975503707313075899450223453433088374111440118016972207988296657252645283174714800791432186187193346137002592927744811722268604880262245933417377442694771255097389998597082783418739578396320446673656812048057431469080880932208016371031580715031596686197259913644673789790503441256218940082864553996516813413107260829925803384967366459598600139185974171509674660616416225671061970597186878901074989291398833919464092872679214303461642244771266016098480927058298146587319298738585454777164137591198675749005477315507855230849247609854990048686230045152458789963576822975465029323834912222464200465826524187848771092591345748114350830486091784435022705621520583561829285415947025260318829873060359676793077779911236266280419898761930959207018999241222908814708079651999117731131795256700661748007281833093489705516958068803279886917966179338617302820695730672143318666989698696534388497067768865372533309821699160974766376452843086610672073584201328381126975846613875885293438383645184399697367873961854242748962578809348526396373825276885920315898536798127093038575996992725233398091938051990031973046922644929309018047840084552026896959716724028889935300205708771381919883380961548594444664080769415393361370913135434144716682299904643028784186692281825139075704885073966132695449846360345508304258434725784622337916200236322982043484161177757354971465133077902270876420652918050898145439422817986050860306462395951060396129715419667057763429690121094910146997032796489648216011224814327293447808876550192386352366555269060482557053547053036989126363146363956123156692976685113461333238981930320694668535884118021119914990501654679607038046814926187508105521999457605516264588334696435562792942389298659251607224307572682099836754740276105821808793886874078453951129877009832560819123000652938770212797881806347419659238077136762350635149170781219375934333648922821245785402119526961627409194158390517861180695906798440939273349119069540911672137743241214264213936530399630375889565405642846473871398151527346121616062610428878051831883580281949328402949007516442117426320159182537829928578470836562133858342706977667661575417624898839637294313243256336142782597130682937071151624824810017465529401594274533325268010907401002170439018743351904834392230420244820079150498929716874685273382113610887780196570083577353128915364797268702711300088957956633534338335488438314793689594345367655188900655872383736924385120652200599726137383217675935639806066226985276169891112693859015076047364567198902138067911994307630020830595169059294491786115565019271685726576804416346260419489727003818344440569756256687440894357265101112698875236003372906507110690143822040714814357573502842724849897008214593255998310030798429951566476166388087901988098090297285006850923318603191221923175465953715285879024013901048565027973858307795668647609104150388018034659083036559835200088650314573616547014960583410194056150150293223241993698008926384020559640154380015183380045391835932969464528067889013541036669345915874089604049147219894075402474253678281635077478914893918592476135117286763124111094930852048027467844320425852014760342386980200747079015773966224514053430603255689224838622581681425635246718467433598601081909838767831717300731574570578816948356062378731893156047893038425163844036914213856701845978974532102630479285851873433658633269724838154074799127226860349239071943358239067826954130723031731394221932221448775574716688330336924359990996096687602032371147827872335980470591146936984440982119441609886579647430294825543443677308461923913259952934523797759608735991236715386269216218328022254794664605041414708426862738257431431506601506866606943148353930775602727567103141638803703308711962549247420576341117862440605052286671192400776146006102410424100977522336542614971165459214425144497648305199832602467706933141972185574625660096715214433449283213832029419951622869510929014183820530302625560596856915369383407687041930746286215844538708282629555163432491666010957251638171948821740687360746097689185846288493125992504690632499455522297289930181192029045522614094140473033973894087413207338977277960456773393234626911211112503638405604076345487525351405170424014141686380081046249468577201680490937501245242012010061404084427613352697784708359251512852654243100475576041371153219081744850727401480928952483890372852778380893263509101069784388142074221651072443281639470262476910179721757379211630828405570047772328156750791426532690276694917546007589949587417481577581647735825744060992108901026608358279087306457906541980024268628110227783841225137947658836962973285441129312637125742349714261302629914564641636796350255703433614789600365846705815795255648412550751759744035322570586006952463379050363559599359969994225355125777611302070490175041578601797461871954817041170234625989427782223936837461862737674262236867685641527243705824415793890373336480728173650230316964042675144649834716463559954966475991776241418887770433116099956280063826054823659039609753087641052240169240606563094679195732025249378940682791114146220227793600815491067142692025610756787678905943372308935535433905483184174320215675574687741290882080642945839371823553068079072384566418954675488918523367886478393890862913838247199618585387359153136355812603097462773437190623701458480897595480523083411506158571345648566363543559515091487632871039122860017370882064753424258307385685877024788370507145518618315230754161246302669823225425606795185254118072160131987518471576795149050103002776187441053924749813317970698554786757846793014684858686018995873986011614823141546732636455277803183596686448793437680331739020461706060256814894244407945771810671640224638806665770036342009538395529608197967576316726117082606291639801961007394453630478396378289737644563135328296848343435241340791587418004062162173552421749167749312595495813617517337259472115601251122493030503657360738366014693005909605445352133467356971923052825985903723433544109534064781720662696095564900618912181790584793466402218954360929789823959653937783170845790174018161571114074421169072754766633439500499435811382251747358981028809866040043647080993709258107949322193854028593043723010931777055329793024255709313832004427069332814360529030131844511615141837556599128663464270487674467827244867434824076446638020384580777665801384144530161176292391296635127695431274947994180118547063890881362273450413775425791289571244658871351439907730352116245023412922267663264829639146526180072674378389690553840448269420735959565949670566724700996633935941366638291184557217202719406826077418479573775696574863319314583526480193084789925042684462310916286324677604130106473245096591636529002630069426724432422076132513090402139927240517493898639328236590082726445773880983813909978444627906169827024568641428769796727434723360341916275782879662148279216659702999443310217211469621713056500374682062850483116632408445841765244094190217626236060283405116528366837207156260084400024078149979355045164388860638580239631210874594127637057995475272920998826334489077029874964952170849805929192559247082053202501914806389283062710404209299543977510350790614149241188872827694942759467971735112409334361139825416773523519116141386610013158523003879621316130492953511291968459237503398513249128191129196528755381019415567787223675746960961425709450327938000958397498864432070574585429960105613468635267934741433566197136604973040786794981279613088171806504347884705026938545917198394100153158860660126950091970530909859077189323812037616582801092263980667215347111718707110968026641627369693244496529468549041659005267401990718446085956686717299570196157334203904118320793412152187933457598242141867711565395496464771296840086045890614718693181809080470225544120552067770144446266057844294426176018899905011695802088502738485960297214812034789264222647456715457515607163240482725840318664356397502775064901006465887987189598929842929650294061795244174802177588076317863503096702818105654341494114435671973324005014697755005374805692618120504572398144058588643794638195040179541170854712421252911786285119425790290613476679376417528564947833719101615048169080030514923022438518684627484988674512968346946858765943502860492881205918198815109415100460266084646137266954398766238008419624026711764143819536868292181617962030702464557865304962746296497346962143717128133330256929944785992608123383680715930055131550059440996623830098187850408223552795408650007552330190522032623801142748800624139519973973701479843872366804366167542390012221623437555992558259921754900568703751532870297273128550135501243426552462917285861454600829813750030494279315595123053164911255125850479983858617173453860883929163069138678531888659031278894355220329622031838874891194309539150974299473249774491255465952441098070739048481478691956659771785254980794440760756454442344857548646312939924910885048796500878881744538457615651854661452151347859006060774059546317280088856905418120107760729586134500907904092967706297004418153972131363193417097164352092506819357759249934354778659010683962279496847482355267714199713767531793798033482215646504131996762743826257008706625005757965693721275579773445958189153780008106444295251286220265322387733663264209470501183393853603259498616481380301583347814097465758724863049929698248662614874720143541352659652956666985735396160392990375242694420752302754804347889233451512145863382061502817552302627804115327428998733826143064602196689572933206944774247738866114331219520781533628355263535219471390161593173608706530890635265719799245006170452572030149480239008928757253144644332095129863222522472647004716879412659563895154503101863107825296230708560331420201349674499461263791882433829532049603566777468745574362349123764906036028078913998705184643354197690786656115660001913594014778921399257093489063274082827527793075362587039717544434439851663974343384715168702442956045268837511990023872044549911252495702899059443732864815873087887119001579994896694285698035758277460111075700613730483187254308780732349938318681175544849018542861356922205102595984018534046768787856399400708020060642399313855405541106723872232663603231004667860114843262253989299172758292583765533346877475660171708474119724704958391133941849973006103803518208041169444406623482250752490526039417722119932487703213021980016748885119297456224889610924848256635493166083382762832807939291054200445388206972510850524184437218281193671530709896557497288784105991639369784545129636845865012065473480723290728399188505874898887827886002361463797133329836696034352201830086837788872810652147467155815009869194112288830708514053086177180991952311967753556371582288761788590013954146781968942865046714186794336351660241721053043626417815001657191307842585246993452148522512254302219527668336369321918832431081007254939271465140153762016866048913065839845739686371309014760616675512227341527332418995928514735744678217455056781440448038562850946538744399942934665414036246938112364571050761091510273067246073727617825627530479881354693354409075259552830090053621696607162343673568463150507766852945604765831505365145899333906486004326231044403901673001374239698899234493375667244719683290108630109035502381700391431113737656987441984769413137309516075314383348845948835031882494566771769506995279586276227876052927994182572588928242784336985011744257522016744769174709221853429586900247892099147760696648145780690818004309113145255813541311826383750145362744847306329167969978612069391368417508110783852489825858463852997527404429731849885210766937822025119446485550965843189227029069079133742791743478046618232036490206470349970868997494724449285003649817913895374381243650434225110592214086094747426773032127002474811540478825135226709818101643671179212099798293524428415515986840163553884009249743854355445787151304069686270011091284540687153686328771705344148250993463631077720362911437199310297045954977498497998513585480250156542813276917431340600200214598143919978929303779087005910701499069246949821098488386045972660123884094334117899818696193662461300264500654335474645506325417348375648810623084618124298016671755272028688085635247270491769990847737355895498629878020045049697012099064670518065137414156024370303217957174026122903508414139019556054086671335461451834945459963229157352343780208541549623000149114097290388035904324575798915415771426406247124961852173058390303124892141659065318170622398280625742972008975723073464513227241691043600257123111910083981226903367724522472013139333792604498546236670813558297738269010999649827368502015570858396182927110792627163269507442802822316532750541442298747421712113629939863043827920573879749998019075655074280830540577422170440164843863775944869515255901977434177642685494429388063623670207985905597188811805029055642752084027926709856335169816928518454767261426055772612400930276201981732027528699296929190524948038349472909455692311581085238176598537265461788078724410651558837471214230372455363426977622091052879839368997350202480023271253002180803858498364326192826289688512775239179182831271374411010157548230403672110681965187398875470621322924544301295653046523333893827528944870094134119541674192692252355712855209615432455680592945986593040626673837330960913164054752941587625656313187152942347983647277686706152588930725212902881002394524481799825350868009023930194695019073557584159126287027838457766926637767794359456515999270536239056202538626122599003401703174599063763045835937205689654115792081375798446123516419212832374533212235135661535662686049468100522675894096945781837171352151993039378081674224452353756486307525611009146780661944300379576604488637936385475148198929272336080231215726651106423569573492646761142135028734037060039073797125438732600865997509315274695105235882826080026668041467584716276680797702578331967262464799648581072313550275706802767431538875043432844514159501608462031482174334190978763912307415526275982283823752177993725812213068903757075337629779934361841278842157722872250145609651006606387730014013900056117353196468404742304290123141162803210099632586559206518522289292675458458811355497888859890760594263563972491626044064401169524493602850834492023671216636174564809130516567650568398027682743607440151494929085649163879693863801065669701104302625128917153215900320116129483556554398093192659641969360523916621723648101735821058033423761218501782963118430098167605420689395411955121349431968365546429316481951334425398637146021255240795562801050868909947842211294967181759776039208193279579982009093465427415803712132966774714469764543155518777143522804969589090320461447052425454969740370023348894059513324783131175037433770030442023172669771238999447845108687806938636018848436779397905265401748024366053772856046518715064390054391432535181981430791344871033350987479284188287377779063010119961676635929368094981168191413670569305725304765487779885321641939436738231411400739640453278757953342078626542204079060044963800648528730125325477644871861060832460514795476926570289100684744762342216389624745662519780866640575395293409399781850874206363318717123493232745944048258909501966230727842816071581523835750996730156324440418497239471623148727517655995497371359453785178908960237637568403375150285620334222315178630436109885685285521125434145307284891782138858180200349337158669651177585888412374049376684517712448352768284157826197284490699861937449938548116927193682939370979035304885122612370564418486241356921668367808074335979624582034454933728584038524492008386220462714762365629431015097156213287758789921738349495977186825020422158266425282221832833007714465356310375373055618697452224956037582272419116953906664233194060618558398996503935568595317849599019519325843129266743317819838948331855202980577109030567826015572071607538309408121884420980075532093920757379840970577827885487726988321501741189144646583877948888807222892480878872587274530947868873146909603419479953549080892888071034847598721151225398708982101242778105959308145102616933413267221794489667675760805392318122507160650356477545374173380685304712226995211826607290088300417643124956816345173164975674674204958992870782499174088803830100689237445893643513944142554791525805474714623027816592952777177151624327783353470475230506896244234145469826611154876137354165319816040555717808368702392581268394635622286122495834059164970664110199297237114117774394034358919285547885905764349576963199905335417551229588152442904042636577758774575958658704662785086214163168738527208668664138962195799266061873261183321285458319856744958229757418709235082589590025474486554870389300926941406954759955967232455546612968586634736525643650892182002524759958965839504062159716405167289912062735764749802131915051574270782219848461687544967958353873975998874506278772784028751554418922391409323275672868481139197808452089258622436503126998534190950585627817452839851136984184747463848361082492783393888642108016141640838255016554344971832836821114016176730622693421577707187656358783972548538693804723300757658358395171321757063053301566254972012802301739815701568897467902585810546719422941073148931403839825065742540389011985330599444265682142043885211291269088271689493373957618571698750929808160252527508165246739823800999967283576130240149038375332455018732348482320228086643937795000175045852777770438830558128961842731206729771802048465811097292944212871316268609073824433116909165694005995319192077040496216730085546854900409091312849773688545159476946277709329592924933545025378520127125750236013407872608061981232624799541112241495978480994526331983968184768226892793304047645566854842737057407802247587853402166774491423020369271731312693650943596976439317602106633441095221183953096625767560007337671559489432832285013014753655253929897937835831910844371052900687874130962556415628704117048839979482256973086829745731277366600564909632593252367536329171847501362763813081033725790962475465055308432589963346338951160987820839929051001557914507622956862779279748576408668391244118932804025969264797036290186762784128170631922329747677327724766882875709459775573668681329012558886273646956478504224021019305690989918234959993276397270004893716899380210403099774193642409244028912604282469173002202591204750022715078345153494225967999379250500267345528675016476491360752144002145139865852125665318293950395227982635483815055480967039872883705828659936138963889282430123651402600153597717656466414670161483243730412964861563493169135334685791634004133505222995795937293260827945158823800810149297713094986574087373892384255329530828964409081466000305824912886234753596401642874199248457806700302415608567808032192179438531320849232882862205654712850467780959897816396741143078914403798044973399807964913970665802406392105666026342710552544559791602584088795847657302216836622386299641133604202574280345190939117557982786818791280472093001452758309862255901127411534314189025208977406398791165599506305173535339786700125891765564832108618610461561953071174208297285359653884289820614227045408205068627436305837283987091045077589655082733284614992031167872837087959029405061471960040774364689256188107102534939449529855647213035232874312301843170887289796633548315175920800742040576857555496999965266864344757183169291116782812788732390352499234024024759301546175648135173124914949773349910650987362749758652226924634769398023781893171494857183994032215320163832063134018179416019364691951147944980391087985742952544401342993583267701599518708019289723573080567067369353944883884409683766131107244106347494350917861766338517084053258378219984514153962441037717159540101659325495304648803139962672678759137297907530007687524103644169557588476534726816323638959484970876223070375112849216055209446888865713278625102013027026642068008337372571368997465418799707771885720465802078684393438493103887567090199367216093304556058278468051380522064324666939922734561883032691505163793395454270672062634836538129698606163715968057060790507308518877177915629604021795466337723758101506398773469562672910071747103643684074315215419874965516275711074356608766870945789164864702739154861055735854072943342293092394075504926334384893856589812167768641602724253826978245526548406448876133995418473551049303431625714402729479555623860730572342146368536296930330384470614456258698764966073327563889026763333754864022078013969488177264011103825662977838097151893560277644134656301232870177862484409397552952464357324384056494646313442281443316404197807839648728793538873554035682993484998576903509459212413418611584732764917832850097540462708861005907812586442854502601557621057962792392216844400725671440518198515840172808258029700853834404289495556065125859009760026335445993312735208469355348109947470725602628872159385680999493802775683140874980869164837287338795429669277542958856191420571936483378423294751813084691949018636224361251946631049026957699048824480142414549711510810847363776514515781993981648768366286381288123717156928418054320457934230505514921003162309642138082395347949491035873972695504616675550105063440794887029511906246114879035782244120019012339370678599533684882253695104379699612947627390993850870835165218590099589774059285435016323526423531889707677983397731174065914985841540132699526455055648405083349465324133593511618556655183674886006791607255643321476939823390660494226994023590615019014135176978210478252223496459017618849122932885264450491859895553136671446261340441438723876061273758346171938653614527353388314517704268972861674786889101114031377444427316365961490303363694094657730215316692688762419415402020618237962079939871348975561208136184500002745766368553291367013193818814807430767672196220635148938034675798021932325259634938300264933790327729735191340966198497873956613112954519276512316615979071256190195007674086343184280386321315332619191197197605611447570685876359829120909093433977487184718887733259681744690797369044297946148698209978173502023077804523899648233416404894621384750284185849289963195062338743669382177908232614809787838806682246063070554930668473368347274852034465952725133341670833471249448346632830781547202720062700099138605556407733455211663066589724212358183802068596135029055759130518268176665357833240293333142412745509191769366087933673897579350787641346434245624180223751516307783493068703868735104892173541583084797581469987924319702815117041107986389154532350408417495362781545713734635959438460281160294354056468775977911328551640261608890039657875995788860946168956906174027724112661103080655528108737999435367203795177735605928724348658487388505935021708827008595391959556628639480951611739723021669443125792022339049556626636419772497921507249915673806183781223224580873786206358252548664993702613886432509586292942303279509996273286689246252188434383491818956098056945547519797350657474399188405041917340383269699930001716971273112601718310971772304946378127234765290128923362521134321471229007879642935025541626242070997530762086190660114685950174918086752933668452225748923232763079264243865175187169990195728760948258557496897277035028612743715304938731243819093267977021327169887530053094900924798371479585835669323584626533616060418049721695667195455285789910340399622515214895969431552969575168253719970316598216953788252732508319224683429499381091107222573767893116543003785047013199190541808997352491597385300738521602332014138940269864121041381810813245514606568524374769381701866693458935657527055539506632491627462244557385566381850015770980637422118120569053679457392147415810196830436864455904969539433672648354389115981999324484087638868676859802371840650354637025576031014896200195649993030619775661019496111980979219864189854172699974873531877727484934789698490351280034140588418389702812851006205046421813079252173343089285837454348099349711401453263664929534565269297043221392778191563876866219500303528521768590562659836498114732433404327810318841927310681202536007029558335739395603983563600862676618374929754787799938511183151290005267716960314098659046550024736368683691221862227067761120871803237687019535950655123013920768038414333861261559370625762087092261023453525307401799534450384542428968116827135437548345125515872442240754944246008458994774841655044056107512482028478393966381822584044186306710347426249027606328364575061050918983972736221929233777097812326060327523669710567384185469504223019152832363782055018823473048272375272325292174308181284904530633136476724703941604810703655195130643233806562429937288887738997095670641232535290253840161801582086223069937911935484567169719012310273552749949308676520391141897041079496137307624231056478724031443796440916342494805568356753811282816276270724818315831481817817056263095163395314177334215181492922570377235430998801636885142589765159250712217068961575673988423340411774182982658291998821370138215018012406233002702767058698265079651709718800542387141979142120062141989158929200435116377815878411066637633416824314165924511618846116280329432950397148083364658755384947439853034694161562003735318600839585245754005563366511690742329905332910340611987668881775555689744000811013269222039541678449786884768224585856386195904459638170992459064676217456396037941130783234552887352150479375393927346763218861245701595808322591259016415555107094099216366327537734919815775069753931594844870429098761986287197428304402526115110514543904240536439774900535154619573185156989861246116178937654111525353490121223550702435338777889125793676363867874362435433693867799836070565880871832221550365213395160558308812224473951510399021137196400918760251306822387591103973141680460475771802918962376585419314301717461934568073763479689068036330652544164334689126698366553030801050419308441749988747093411864599085882631357240373333056768850802648477787098576043647154111718126633681142446410481117852989478523938420619980646340038800301950349340474046589093426195654036628990987263672224759299672416912688682263641407979608345859237584466023683768664114061341712154481031946700460811122218117858936039174508744800068311396343231154677698434954611438037376875999423124500372531169078621545562937466191674016191723660487219058666127639374549161756054564787874641556406915728257330822989964279776369370640882608884258520156369810553589924442069763031400720104639189760771174014517817009605260053215412183183119555750192162600797211975066116421267113780033909559761172616688882452425374108623854986841690250584197601274604788283757625629371348858478985803204776483115236862715606951902985548957868432156909443075864744909539288166991712411851766713710230523977035873120562009634251871207506536990545448325330611340502204332599383120212290095467735611600797517849316126723096198006606097271616012913311311902548729973064014929682309788999687493032295691174898909634193997384153909190511299189292459705355759740289397215888961867195713696634331149078326530930742578161530597278131002180403499536780584753808287011290821509097352373931414029798609635986513010404885852987060863836246849588236859531532405014677599169336337915421487109924486160260790111677791461222364517695440104004019925823102910862030039841995931905372575399635015649842895294091719158168738482388892197241363076576637683544075881769650209154497257549282948664348070062137703598975360826010311067108592629492577029927357964890694121720039914125740389539331134620861152716219324662139239153341502011992620551657518769075365764303150023654706777138243486989655785248274840953249352501879430263818603081543904128106130029856656382986902359382230838353782345891516552081383448183639350849697892799057479283646986908822004820979394517753423843387764316698219391937883412750586658525418838029185783858068746122964794752286222698705504026528332327196228746422081646342660083399422950940303816307531447696177622289306359322636385778785146852304156915168214597179486365203532378056366169693719661828829318501481402295962282576009395654285313611057358144507014872303285202111382934261179412159658200090864062064424739986830436668319830574206357097459785993529330709787880137305202622703579776677976062808115106080624560139392572845504902515525495471034986157892567893727420577665452042733275158649659603562521682509935920898089680726503335359754391306418901924878495760344069115377219165390605742518596176483843525891237724426206752210555794499173010929024422389722510118132364643726389999568389582007128648619322497479551499822987176827188654003951575694010404306370367044147200479873608524510971029580289293874871423474252558937518242405821799269437446303748502971049165499274473793212411891759949839798467045510359053370216871202343328108336366894839609661061102782785219494931072721794665584409415325016702618829519030137111502237173998015449199508795232584059971554679186645014421165026453195562657337463817432289418232494379925967423968004193642999942726087646381637884733776792244841605647361900207797574729729551967733379439962417870515391318049971197632318425110717822648952869188316695693758365831944413000473930631429657776759691832492118669947601412849780093346106499612809892318760338923070199849066546321998082306588262073850569450772326100594261518429559831221393661224361145752362893131071254351005331571575462576388186814306089654521246217072267024866764459025075766461550858175069732476002094055307818023749160014774999654030748201320233614673147765678332895863178641041649663052124122355270704408458288699887378919371180681677381587728345616400766824853255960998566248319648046850140022220216832936466696741310513324389922129659355647127624128326988778046878218700451442712779782721609290990139794845674763270105164452860590398385106559748183882762147285794129433395132911674829931599331308451222166131021528086122007614041024769053090303414779362361624627961573981891693179318819433391718452862877704772289498418096492299166098454710401104100351772623549028150745074027034417828291554204657349534100440144141030826581305726901190957375696338117259528661860667503381112822458273429390045283692773709419753908526939833076532131406249584194781468440280055260851325695308006623421283211397412159209718037236054106322803381438191267394375405087796611265198684318654888390791678521840294753560879890203653454824350648136034522587624797027355441346124985888915575813220460674281608204701985872434431514777709583525766480653839446653767714988302219353443384295912164494204557453321155434870318739273706593391449495627777066538167138662174088653674774327423404061109550579378991729093357585959853271249301370185241166968306079058300326947537050648124785107766001506317714917005785084066751198016230751076894903280394577707102502883865178546323828998556195773759288769450490366353617542303271512760742881373038220540757104658151735622363849337488869125835121827821630659387462303727582722507132028178309257997483928226863626115899461748139949772620788176427468078789413384043784235906898567405750140128417737275618385934189878765076173357424320630345600886699749273028209829780553920588312851488213498021612386688219283192711644408387424027708393530770517283130446491264666972336201166604614796151975322474736259108586332433321872154726354834552952086654815604008680447128792335081038490428110030662417517535526058849350007351645896472206968481174245474732363604786149994254858959046162641793004642887089757002451630041405153438539998415267615839942349474991781607592132424363272857949409424916919216030741294619537456929195934939374697980286345124261850570717686623746552395348651713365623003112716976632906459106647633673117950580322673187346238394645212099335769493258816404006282266641273374196912501337558926024678373369962597714856187135181503400009204945439154293790447209358096045499332542811573941162120258301058076132686563004699810957045665782453373069779191310920022617735396058239850027849731990868842033716653466439684236008989556932566678683245650338640212315735735816257299241209533094078551994768171017407801366473777191265144389247165019867275272998904125187239815737088924431567149750734670449756341870684957865757111445966468368777602245795164290068061242152012465142689418322688159589764733003947974518976941600113081878012347979489580989237500484361610471219403759573634433383192286309105606741796122175533340099339140989125919431013961522359268645984373565560772888236825385826129744250836646812389006339259983868451474775909097560156174885248963442613627431820036112711084079416020672282640156828234126335477943351837047414490130332780314292884460022927228251108106785201536818519329524324067522283511297637159575462616446194247713293780272655769437093107280630862456344179594742115443254609001330796558549140181884122326434682373795886992712711461456903181618195583655342184286945560922807563965343129429142211493254037022673014872436046547583302586044042486167416636116573431301637076512168117523941577110687978232284137325740312134088936307024943419204711195025177721110975959595711801282198363901183372586738415452611987074568824099315968873815964316324527441687718961752015617534992566551658306015831981157255161205068208199164546383403885509853790574632447471802677294498773924103958340068467675551013286609671496142411718316962095234980043733424317373079267727863888003212450262721963870499238827724523154375472799426811967070264073375130976466574751489365260309328872840039214206006142213830237272578973962961419685244895834995665028114067379256634524823210579181870077375982745256092713710174517312126912220012566651995695637795730069450716747754699947516302403380000867467256793304432624577812058926622255618558619102774800541280444481618796191277474520013201173694254319905372246219105081165932213740328881517970031469897862448622571139525431168288362525245390518500070635239616738329951166650113894679444850696913377735122991109882950159534271876533790930348866135228433613388581463420996308900953186454396172374498116924782371288952350669785746836659065972511829672007680580685591781781285104171604798322014502451910006698358108188894220691006355526527293795250069440707754689053323556064714129915532871922276261552119764834913785708203459327253764640316890844164889516947545022379821180686762023314212340035887968827803398394863233877192543438207073410223105736379380334550855041821047117039174822615739963810345897983688253674859891325860783778481526311450950751744419925886612134830290746589137402974347549127285843006032802754321762419208082204439389917245451655811068198002980900897565611108073922525638951358689273024649120676958753229292120419670745061229736442080568621065007569140465341440167530070166403635567474450184542367165881198747418619866766874188866074045065505277521650863785449177469024132040794379083324068493481244157970391133275136366481512852108580129162942569007910106695349203922702647190809209569698101535240205465953718670193278280719806471942356944652350934260788319301761172099496497172684414439555291066202991559925570640284327018353897451100938001702805056572709172427665730750716702300318061961670162159730869323036287011009244219992022280601317939755600449924677164127197884789398922209230357888596054637269838382986743174336361099654330710803815747635567872283145008408290032036537401594286288669960731664878259306341024510121279603328076000720994316144048085355758326323302604675580263120452289634259067327050138698434058961582476202714995682397066731950878560196898869576316453964896212236750137352415307856495217760750764149145091797484796483005821945268471972308675673909405454258117819339469031837240884131097942636332283670512332339761867534870987291269182173010269147301268475486748250494651887585075740391324324911929884684903968214627053955931517876846753032393720235861272875298240732441099635143595753161386921452789411541337800254830985483832650500306962941280387548443057705052780570685588994267184247819187673479591245887327692104175551087270664592166886953851045183393542408421096735829326918032655057100672890722849815842528552594592925452179605004872082625604589797148781949613625945539881954966009512101676105277036613854395749683352375002319803236014490926093171870280888736619099368331147754278847880673420127796863358643917383649069505489108471664921921226825509006107126235489223604110743902557581053574061428695722396333182492010097002492221858952656978781551075088917206486100631311662232015167895301441326090433547786791148487601451033200008603370393955471918293276939158633767945070218279757121925295460825324105294583606544201549324915910074691392842867355215426936945249760501363842952456892500283018795785284333655724957696797822427191187604307794368164372127689961740061036481686443586083025778609383337803469290102217693716502006962618248935934161646779432907164022182040474676679455196258159741034084478838142998474677095933780759645035530067315667905735934564149288720949779908643420966944577224841399494858999760055139713881189352926419778508739934953688290647487800249956925688045708048449939392362571368745900894604147997123303295067299449083163299644214287563999864350622511127329180834479628470250028408115671955002975134918024132374760828258924935230904123005362280626891609877121855853982291878674855990717627605866949670104361798000532220968235882958912073058528861677744889949460907237056394106297336569406759388291347224045136628324124905104920760884540901699833475686330189819153573326856572323973418824920324663281140706996942955192212681708879168749280422724783961154679956686311250285345596814263676963659477432344644643324632602128938387147339995651914376911365583462931474257158070771910066523762266868120245931480858849759293199983892220884618512799976003413988053976380201297422654975964637536721007489804475320388548577242959612583446475789160077106030524275704701354078250669009999827627996612791409293936906171415197828104605839631282103313232843278287577544328062174790635612048847678729034431355081488980237270981315572749945722092415360613259126429660741082745328046568657198852459331347672370738050251711690797822693724855385127360490361683187987371647729162648068621749643341327028606239811145545895724675977292800219708825854167621411917654278917208046161257445413840766382712960527230436249589687675213607009151952598930992658525596582157743859008411469042183670847661516044215658609404913622460187399670741512836406575140511025588769951626402424476364416497459582891977658550233543422796851905542513395481186788097688009218515131279736110031145350148060685862024435117557717193083099204037919956463468014096109362660217254826900133636530407917891262410475599717570356046374711199435480503155986825054984260044755665191629595872228659274446650308665276023530977814242604604910873747578541926671159703694782361549043555468626989174484308405813390523262833251896992244846979426977592511781139729796552817096264344963993768785536408451583607641228704100476585992474985316598550905841787269344557711526850025084053683161368969031127542008962515023805173938675140265061159903126227879780800577101970664696102872604814502865293386121172384477575204122303494284447336123778790081477682178410407859730895606743354275874116058778849279588489500752452423721525403772805978552461714449452167094892265394517507233082519698386524011243753466126948866259312299434339302029500884610854008093251607906008725191106742563792564875029515023189013748536761634629186467838404749685888960510393918334405520373046480259959512926047533504630364873628598994210969445453783052739928813743682602071504671909165818879358812758777610091483967563771200766429269231604724758950333863988508650341026936626789661009058525990230112916533505690755307680911669440761651957069675029969436986242630811498506900387029645051217673339857539145667393911284363985898767661472710206930419841967697420137071102906466932331728790872258014416433663414457811840625628544290045152722520774215068649853231048204648043189259365231159366819835941390056159127556361432332574826591218804329396529593683219660966226792758768552032750096972801397954181734801606987529664552750365537455699930329541650112102942975919454047665135853907625449211395903982789754884470581003447769528589113077055891867934145831889678368469337981202488296283285869102491029060278523276322759310014010004743940732483253323032598833386616604798013104397177396003799201563414659572576584575841885621288229222459382049594252839948651502449085641109149083645173529042532058149830330970551888515484097042348216177405154366119875515780410933616786186433368239058396203419464747256321913094298741266607671846389470225877949670525063966680362602541720711330737333739636846845306567102666912508760124305665892973071285750009259549814262217812928300466329996793770818774105508802946982597643622497882711752573092018499136735567792549038551176548786354452900045000571512243402287966824388332018303576266527695990732736177367611342889293188594041902532043190424315495193293371285432225955186523730255560105880894191471391943390371841416632377695947281157051275592612290315988332527716931421105410206085909233382755073007578558686949415660708626704187348333380301642153425943892249040587626045575662694210839765211761201378252857428896224883083684548799201430966079366757276467921710001176519107930734137833424432740204157874262854276689014159237861902683971831154040376246022397669830896355999676663151720327998340079774244932975307735026926340005789326346127269200213889818205935788413310451312410352809347141487284716419420200470582537853758848746043033951532498625333346141108339899131812691798447399668468592708692757942351350170389943350756257425105159940526325625246180632731437958798232313590075394378718389953216410624818309516344398981824942936677517447147779175627454764493749807058963057574128493136298526745042137444748273327444585638083144273517981648301096930751307764972992126246454084414551850269299287777013799432175875104866117640637641462175143590113660934411627604745127887555599458199588682412799652474358489699223269948494783972819027210473593109003459304060880834946176572278220151996065066686341828211429358958467794091956775151117475282725536810833806469176261444561878110247885480832115318941550851250110676520872665064532028179863527999918567195937534472606110046195646030102157982300073393968644942194161749073652377818332135493831696430005303296025451608503133074117792291973254390327607936497815683510314108418600642172723171147994356196370765403096166366697276005142575782047243595356194036074297081824171320095938234968307622173948383688888651804409280214311669935665785577508410694125187920908527425073517651864004084971307020563596864553052015457068492759694020834949479092441583846876691576352580064783043409850458500466414035692178036230672513002234453258569303257339541634406783619385754183403247472370627667478416886274802956762205504452925688980349079745320535628007626954184100878349921392201068626958751452924670626742693799085308805444829883498056864358221889396959109768648305100559093555918064745273882562983180623585454556591775544663272229435903674519992811226937795401498700488931209003489333606015415106572437699981230616328696539046592585194661668447338876969722144704694666681410250288640100722739099006639989527927159484978971426841326506799991071102127613886336221453568141256554924336576637470016432009127501263924511735906338324716872005739349816483935722967349422989249813067477625685331717394571986259372752631072285371457698420057474638959712769337438492758447481038908485369405443899491826320792957179554654894999049118799835489783061720164583006378251184996515971243972287298417430665635280387696915608620152462151484229787806496011988809318894385874073739406782285801488662057261943163027807480279713023845602905845250952583206670184999153243563107388763095474916952022597274699624096947101313098180817349533705969063500728820171494228359912735904320451891907577457579627540468876569046330443056648659769770269799334078619700327808934548806628132688634944467635383913064408557259677435661050738329033874145457645562084652599272310350260234613625022231633001324128595432166544474993940151468261254440418262022628726641784324089277082736413517955304656446869091957519138835398209078618007805863392312108749713196625606247846083013951418991926271732774712826076332440246813933994517330526540815031797474631143585490236395218129361592134068756751982795664915842514642665274051535342160289384064881663194560611087284723412194561286592384504728315352504446736650842902861163118372342452264580402337268551946348523782012435536334562156569044184767475478144048374605111103010813018598995949542337206445593158361948057263365080898837323774200790543309144847398185936153406334306471989568452282558138431667332396440551713841412028856382491694231843809282062863733757668676520385873239561337687534433959813231329593106892302110575214823632874774783641998314977796052480787998829964595124649246210051216356024328983743309337630510202853792832142436328964754487439754642677834719596997725522496047024082141664715249278240705178524128037882708681259225852665092799555491763794456390862559068540909386327935492115500903242578870874127664735453392558685495449265182906443577810379753757556302134588379770837742233850058718908053864598984517649477580002610834156942951799530299282554074251177698256031737075069142294418930995593961519823831840100867064460723943415714271268478567577504079744806004905671172823297884892889767969119924557879875633145212642387211741761843011665850990087744488546896393623514322929909775092967768657410028337723313942828062423146226621130019082696690488561469825562743948883824942836448805481924672692877567248869164937296748532167179915035694799731729741893926697978941852224709929140208394620107349712073171323632966913596933106817838337176580917887408870922953799532760617001850341358013947151710258700636316440131329274709630602458085704099101903442737476356906073405702197731494049511681312715348197771949950070713988424276996086258291695644121804242138114486552710645220957497715632429564637711269668517261764799018805971645026084172261648945930820407191763150981822683045491976338032195675984144130766016797020603465353098792907604656752861784850863796960960081095840068512347350316001230972885069309734049760340724430021696615188201620467564699123215091044536885737283845432686159487656663991519917256655206786947087568912151092844777684634632889874922119932798192644500489262626953059231604793793726665161909263961381996319952469361333172389754835735653062371689905891746386958239733706717184606200705693403782767524623511629724576846548248638325819354266876765348792100603229856857230853480940913282617912323585396119348534456688053458368925034967146335537242477332021250501337948003573819032403781410337984366086692788543502101772245195950265927404163200189847061059863896047774456888939436442108099216595902874928648683824257020398963879688186836602071067730983163755378852563576898880506237752190663655492277697185783430816148544366609584573510996815160528472578650838340254423896046761159246161254632764612146299597445277080807495943212502374298494030227438933222734769570195142802243538760280565278696211121941064594685903808999064486797782507078886384084982057861526983480153595722871893538737998301891578344097401261550929607288426640137093521394174985331785929520873504669744898393763871307478090028761702877657196258888369851574103732301699567005453988036942836420299063173786228757343635712648960567658403450820939420048544428076432817509918213601470376975089711473160365602694767624609336850048778668031273354155301984286333212093577107245984136993065341353291539826091273895315046923509147491355125857780593702476823422841625855772411668980967985570774248344669248360241192794077094743731038321194562814702756572954096194899371338082401982543726856333599199371386330574575832689775251227221050177552697932126960596100921555114607627379607944008937139073197265425509386991429977823511357836402247273038171014729580655005412171790672780596421001560486948282239437840516883722722461975477592848436933811837435419688963307574103071190227284844672419501564088171061254625380921581013026095194737984319672495100383425144966994022600642096532368763185128122575367763865570962576246596441959516537545368199692412048408665499852739835237911612269954841996550792938497317893238126483003587465572979899698262081975157481630983708144556289211430784137184004592336217880689210618778508950437811422274458401859018632198913011105438440870020819287263826556833282218685733302473125625795323382940674615925446680781724530987541193090648735381458713541489209932808652587314133084920492906434638057727262340983317618817395958413708599625101896527204374183839729185698742190842393157370435959077353238343862224890273233334609712676329885690437254553910694989002679433885924223715522226787072090778777700127112957902804001555538942150057130603316569553455251385449521007516716794022078008069386945388397254733289397165906694175711318103221242303644857971078947348381955282305611543317667228926917554513828413746764206824186947175717154834471415284232249465576536592996047782039419857769634393131062769789825141037442969911010441118323100617081021659995239106839024098103140397879982148237830592841205142270943472964764551237426135274392717384808813090992481376999154719566109944135290953804855184508883822767864744193946289556716970186121788154236111835274689705902085155782349786383148786983720629519555132010974407567621608677316399542060612483382252194304487467671164825640564817200661948675951841851921267338857110926534108166380889904241761048450563903174094044446804385525073334809333053117197649301101572477647370207988962290636549454568121203203412286735688674687447453951405290461240678216219427988366103162541471898684795244388246090132544933074760860670852164200244829414788387052550473937978221030306106798475323418128296885524514521433661385257877704888701607930938014353884195281945146507044077923213173751160637448742080699639693481664891513471422495448349247564128436507473605262282616961815615945683162197027796379053099822181876455917142930356907362189401194765625383029096051821146250822177428143974119393167354999794352191127716564642217416445877874733776506908986260390137357321431592425529671399893978047545555075123792024741104553663944679407876805688891312228212794006460472434733503295521239965243397180446839768809548891100449857176491344924912615872565612639708557807057085116343409550263642490472782869485267354959138845479242118905393995752858887531841993183294943589257561716702907784191924839751015272965222115273024002359818911754416242966486701771082397747316041381750067304993360206464895225851731155433006972117220543379918092762557734306042226836418432779084648888320942284791220744109666062022724179228206138884604701448044594368189032786886597063247581001503554201094927309535097105555273779518205738064977058537749365915798899481216738995642238951174965514880753351580173625154869121916113602518252776621298556072289135882754820297043439099165039835663982943232114943400256544095053779752006462170106539470764518476720940003541051023856568995842945010514339205925845238398732564236324717048968452233728315767781960338003059201387371726261611374180718999983773232775261161812571889987067097096745573860344301975268844300591417534698664795933076199005623050229022551381194484068102646334631453620706288670112096177191142218245927971048719119755464234048426302964563806041490676960137629919007597438547659684662459227923739089258511319594680056529569607350882522629764667207708937862416572403398037758856702947466208997992417356269949183914332047873395492022549581115443501824402762668958178334776087941026758185101607465522559770430912766936031952725852210505196322152910362898810894065479206090639913206894338012571555932227355806456985477337138045304134883429561485547625619622327413286449656004663844541610817237341745989219492992238402314257586832970276374726080891891581770605390052641658493087458547300354710087734577806272835332776514007900155619401291163804298956532854975225970665946748341112986258405006187936877274494531220495187215596630290452494583915422254408504032340771991142051334046542898529951553095031629613435416514767066726308001436493399831952232752867180987702351109624435689897486585707906926741878977372666660165431555396910041944317193905700075496622059113920479507995300373716226868581948567477251247179935034988901478984842028874455909461677965206461094380987542605223905383033200260062055443542475470259797392183618519953108963361775625974626939756767384557752013237129155600403064254862293931942117079754157234236196063228439863128078181590682969964287234227511523804721089056208116231062675928295360474862691287375176968883259717039973363971307313504782507796992636107045128903226342557582826787013065465949048721076120326928894497944245133473928433309901738945919513225716653330092054523988219389330950190490280235907988135245894010246249518832746792912607096942391989584822523434461584428386064215187312287457836014650189621314654690373253409690835872909206370016456016569119520510414839717582944261735900094554511392906499551649012322664554316361478313134045066885152712715456745321953814183614089296372249861419106398192707959792431316785120896770497771978435761509000610155068526767922634020728012094825211671205974133470206848902293437134638940919081819321184512121163051565071886883499276583855263425725068634088671030602420667933373803827852424647282831435293677580486465854901072598852913062874836285221248529730585375413577369315378143923474550337086328632148018015906194269840537103354079255869312710935163833260192403292566492172920683049830628752712931921168580969573691926033484788123577152684642927882628151912874229059404197326552250420334617099415574337009970838484131784072635486697650365264591109246970224816244908351606547672655872808354897016796800376935849376126093556556561113478618992996222213321388726981094672824404858638903835098868934007869216424584946221440176246891274020287153267397047251483834568333336636423549831445412758490437051133356875647028305251323111888015267945088035940534976055786546601901759911570941044447271370661223457404152635701197824320829905967401027286959267645124648463880915107497438342049247134013661349433534598118186928784126058003326487637533691836082156729723028219935868868819816191755053264378909707773756260476544686364121437723070208863974583909032275946067416191632832136787189064901646718564339742918654832465044193386816632102975958811147653707943538372130708006283065033768470428891470874964000209657901621537916114087986066057836665535488053721184844774769179393596329110147500387068952708740127618364084648102212283572460449324199699311888651369787726519005075195853383112126450884102647711619841163254941143571430206371731662790148877038995541621797522656135025852164896809084343011744879880499445719716359781445944573365377178026666741761396634944682458435997610561434048516942987151301130623141495038279771361363886551190074044685723347267185244012190091182327810284218615709375967688138592275448785279787429734559705136784135461504062653416583278363042802239261301104120816760872108494721417182977391724065905848871893981337917306369170955326695778842415097359135263771314832749454201551518804252572647133407720669655584213704550302430981848077515669701128285870796328479460075660145478537660811130216691822498870481735950806676902274918576620531198726887708386402491134188268907281432028302236775119023730697538333635273035110495939006626197760023371862028980403492370252988002119979255668898016437219126001259472079673009949133757593612686873143475928350766071475549305601543236423381927787996438530138871000718678288688323480503401854700715087821602349411722934856205050279048129408207676429468780301303415914251329360833108778631158833736160532606612782082441847764444066372960537860894462538438506055862236981365461627107511564002911681981807152028244787938731820726351049905534674065015087641425140456982159779486260450494691219835859259021756314562347041539647342823698356432289167434881251532200599810001746877069185685358627247902400804111960263278802170614506182915909876426693915138266784237785198868084449538738800259205043943460575927402863059845987862187541972993026691423249855752594185497506728280728901327704039213235641169255796927917214732957579278010454663391381349247318322682515986275936166332537106865094043713299124445374528873326192397295408646210710377911945906118477901530333070655353088085895108273797658412380323931334140819949616978835072257957118960996452457281668709294522938711203205564646727435131299794926636614680176249880588631289813566175644626558232538036325671938234127432096326744502298888386213533892469758599076916264694643922363724883193817962271798933320047081555576491076179601521932876769305599646123238081045484217878876948488525259020576727642978271710228789961052070852516660587827383516682804792959716713874587012917783015832191871837051735087088296030950220389661273186400039333425371021620970547263121085641946340517983935543382235776389293884783748121238303703654116848359847881989834887972883328688795354531607534849870747389762418357505760122654066708057480326984760934011898101407347111310446910010129857095519284046663552289454722011309109957085051752961394097510416079017002090287027679443917120910840413929715076134344919503181468656334069783885246035214469194879419999456519716768012083295652034656003683375131188069499582825561564271952905068671491936547884526884680089234943316494050834027771151157059146131380361828974694260028550275603078378729354605593738425822208949335969109156003606518919999934769522914477550506071599983692262804480518447997213655611755748921344993602806740436894051679107542781926138717763613248222751118208687851081731509024003162725984297872849620839445587980633188986224845879085110323790790713876829396881317139052734177320478350893781567136316383467874787787155713626587158123319094458735010660463239671953393379900127881013408904458309945705711400708512553431246445705167525271186772906182276571205502117662919743408607073908554322929529534442795579705960432631326143825681504209168530058656867677492736509618686086545176078570316915319908835229483397317756456807710650778929681710037840297565581625267922030023119788959705830622926820995994715306138630893175070044728648410064721256931633530737003088116740188410651210822381562562071914519968525244789517984972840547672240080823680503339048351276287476749600925442112580175639581292508654760750870016558200966081600989483962467740341308613103292701383945150324837832304547116008165639975886134985160354250441181813833024787538490708100247011350695576011806262528381150385008564331530544546066517931672955931751488278981571211828534150967993927848326655643977537499637434429631423258539665459191456950072223204393454024833426440507581679866838830107879071535325994660659724675827699127774956205805296136680174303571963961328482573712037338362146559590917165939894462165592654320264423757075734555487270113030470022637256761657302003146014924851042761429249075281463526189750800670219008968864285802524465700782743386379636366129455288810237433192372830805119952725400476157138928237813830952781468059785886569408452003284255675797285527825117757789161009167284183000823406678321909259318105742787019207711864695394521273827970239238406092924260004340475080179269371012518265644886203598657847308785535044703513563766250078730135327551675327684016303948249855347094963393671738992720721172169540091953717923401088028232421191601219220064900637903989178135715769561495370023825953695316467737353646274727702869054566676900226468347268051077826117391228596375682832254338821748204217915434925946598040666995065021467958133743562933909458206287718123634591576300313422197106090305449973666884693878313781384383110731969179636067147623428771496531695627563230235623207360299320172393195106477513759735475172616059375845027620233873640352348697479493986750598865208414726441977269616853076759610268193365833739310726943343310137644304905214317343801263528069766609234778169879122328581676135409375877540233184090241928126851769118853813429866231705605789474076511745315533646621254603108598445985530425890362543755723994529339487127934846103027054131410373574336668144485288580864994782320867372871108233872164197749277075735927801275376701990564447686454650779581376486328282329582398714219247053400422954609831645977366519757711421095564331030502629044060197525400953602845883342280008485005575352548304317217995117573311602898395524726613340081203037407975032072262532978889447934548180379249998878194651772697372985507320211453379547801616504112857537074860056006111525536999804913651324815397436885664316467800454861879648381295286554019709062389813127025861143359392409009396942868714340773434085313403802865649284456854779009189879076250659916912919496740386020839419891553586615068743615863193786939683110441915931816695416293587081893486173566990410440866026781164269853998932443342051582143178660026471476311234922419330702949784098906996894441519013021958819373248463724362823985807090468310823615038938554511401373556750447705398058740712464986428134840209831359592967695192857902684226782832521658005197308679372791856896650224817198539884288391191926500639155529145702723985000100253523041849623319733639132417421912032181586247081266407159203456278577668809896881613321582575325098517097954474233250672318096417387302911946167167235956226825957036094907177119600762272529803350825859564997861275811992927032089953120162417181720880445364102044633391879201070233774798291111883398959199219327187903596259335042657948511518738147641860539730858445270153714425919051266493641710512824951673483444766597822032556611086472850844067080460593717376203052295673895376687057880529897453046831020437828522804469033894963666465698239714711704935860695855287502637991975736185210964585974146532767747276300884374096467173855616725495933629920931772463685902920797574619491107520464552098980064314307455856554546536463063653760796133019994559494745065770351983277653247718587740531864203773945581627388970672140756762339126684673908971492750737354607859394354412098261212062911379954299779312401980198364112108409725554124032553677950042321512327803677758292292039830379077856024085891193993931560159689810534821890513122511099299138363031694741676247272879064406962339220941409972011936185432698086024341538642105251335624980629138492674751703615420600558978054546353342388834312980895042830908268191781379181707261931618853313870069955606746537988878070864393783541069656544875223628106096989802492415661217842648969607276436654466685894253355817869893016508172558404894297599997004478576072507380376320351305124731164046286902875389135365155243706462801392836501412001050423102145078575364695726758339559597291404889354040115924063563621040689341091612691294524955031212472550947868257261941403591089737237944357021624664362766058565302409837596914759033031833414973780026425586976032204387578654547790723034568832121742718224459103068688013406044949118451946945677803652654528511286941923491982441692320390543620051050165489331902647488721544440616205484650997224100000619972675177240639291483041008950028307971119578594611048861687083362949869783339202438498138527005639410771454221614367940629223241189632036773348487487585212382356244312211111866006655127000747966394319175438821035360532663879150684636685834980117732468563109389670542148978280753371804001024549190380299460080408654599626502687736673484216614534298409372737480578856336979854689690395128414832983471973891355111233917740951555592793351916463136387706229188632736235529063317706371476299154977036746285479493227247218123113523736523929907655099632133904925238711407806736069954263936656679756421801126900523738663533482364179168610695116780841340895084851105284757481536883826508430619096156774329117917710985271175151322390148666257232860076438177588248550775535931650381842800192813826918618214435534246969109715605703942965089214343453304271113160748967897415024037334422544876246965968739187296169927167429528178639626851254779904081270569578603839997585519628289912233609953287976072724394266962999427188082545946101579374309717327095397742141564344786963640874790334265744480657388291222365249611996872472434511752812357566025926741315455135281966600124561117945633303505207741740296690398092387389016290345041102200269305911054739381726264629943017239078800143686372700806490946241915306015042427088182558233776678146034802368026669530878784705949276471632822847015015096991099225928128944914090417650972276370336147398484612606588312556988154554062413143249389377559792885796013048683945908374422721422805617523822400809191130185127092773147039856957526478813355328294181484636812561065599466070595948338210281566721252077577159083459679819000324465352080554864163237587388905000846294795690425822105570729032540774276288248444318191469685305747491487378447868518035227102719990800564061584246837129145765288626915550183002438977435613465962247433759563452733953630416723026994584503296250629885422447745777937213253806201303620506866297548928634576527940436777312374557871809547581485448457268870425694714431709497149816144808444432280637931616153092822416579048563932983280364887509793373064995405882197527038249428183437382701914274034327250280054058779762408162412051092733387779596393112492330925488177273218656768469822295720403179298970679184031770902076042146962141822181072398420910022516914921161483198400014508161694057134684979781136219448103892503963663705284400414830072598551363942441261526290338803237469766604637831154066525941036687260316187836713330176406857447017691519214408071465306775476154439083508580893865873975435610888540870678606100357547769419874769105129160245284246159163312560295824298898195469309320852266473811840537299489784498634586105927263498236324359554283066290754381123856931759125970553572579355801017081120375680607700846831868000441630013266298980758847792434914590292314794053465929846996430577372547910307632721932340264603446970005212180463423670737602219558600152061107386775973098222257392230025541665119252211388852805926310653889724173653090613283325558806413234030306106111941768958429013978633046765748816183526686240118026381931848643755031224846030996607287416786670584996946004576612866089488472863323276698011020604038639344207921974521615292557601329055270559079216280259366217510092950608602264978961124313483713060051513494933547056441205786463225822303537388806151150191653279946885167122492687978281246666497236619184670736146649078358564932460432214064883249737524518536420655571545572012345552563326173375967371946266692499788735151677707209761102661104063137603714676800421044170974816800180068766791768579733768333677194364992915116845318941316426428850137725945555061054809131160311288310705663002366161971326736060439031344084762699549190880449995082159935052361891757677798828117794255901264629630888524980749683007712160075102847442051180638585296545066765674357122265455762014973914353120513221558228556674418649229482017004836390467719201197002615021066008194827552568552892147533743516259848934529380498334808670147662478619619852915246051542915620896955147624073531663083318971039806977875502799525556895523342815867564246315191527519453313966123221647489461198126999835045876720848984397889686199684762979138469822916266406585521766268916029453899068069490355854694458343136644478234661851222609122196022028821935055751781945705611719675338556919498116975491664297426040660133702851578140041209531906656730822556198124974875709369508205803888117565365888410849337428919536650254740716250981100254767272589472842975774313477185037852753833930660274005440672309442689034718822784260062979202640321331972562127220254244463042661187808183105510509997717671752683757444332143919710126115798338154962809740322887475883831270049736371112082645971280380378132862084424604662581741611801557268304933246934598145657158869341114180509181178221250196831847867637481588222301526238030806936129637952964218357028076737152255698286209892987309693994571342963784871885290791623540369967693750103101607911923846715583370460501968347050518532857489571154793013720306982744341942446410042172450770653078471306435316509631314465940432581725276559324491235591338188213591653929582764395673823773282021092599578054707685644892932781831280741376675879555294915182072451146329981108794020893503924853199078422366635531122683114948146814485693001668933318600952034518597821145630744907993159141622883175359021023100663545598328149259200213942892841042474869900913487781440785419505932927441766056901692098578098973772350190941835357174703955697293881613686470194059068635784691951528970238811096407798120303232724159223401952079218699902102363714567238818883522609581328952314734692394282938869683770861475679406194579777608363024434436831358468838980562067735164852027221030559848796244283491429936451293634432941052566379822114743029478964280224592975495578028083994113830591197598040030767079804032225195891262739967852168872503984280787603019531820463575004393703954760681017412780404655156229653582571289010825447122435871271995647873761012754543742093698987478920726392486008311501454524865075871594375753746480613716096034974932043662942206546534958091602107284360091615105293337231891910505548947706923315173657627674058039635733546780823446554349794692454274657885962394045666049161592784182610754992044202915046396237707531783714555618642991483997416591518385380014063666504922083756811038436505217006221834490862902819670671580470788673932537544420386414733334981401173773449432243689139403556532625248437176554993007598801169472462743749255804661115073678893092031736549288808252238682003738503771344203462282591461949430567814111005010151605579211608221287549737096565565989722168980097392561334443532256949328905194715575558632386467461276445462545454847289613014207031681103937768897086299784023306026231249243672001206203716055340237578659441618402655579842690519041501482156298001053737427306529285323147560781559801615486950946833465811050685822019652535652168399781832982706742746077168345982215403441746131650342201663184937070666533979238992495870863047143489860145581722989609386383232269720196335098718419695918024523334238207823460904121951709529856809060034732154640678892441936833068182068584262657280481373374669826191884193986689778473731653790979091007696315417766998866965128294370980542339271007830100642015930401135890534915964395881886180445044686853848704371598792559525875229601185579865738925834745693785612605664564831466402348232009941130183917152630752195671063473518877839524379826360518341651797877440283729038240801915516985056839916799322554549196564461445323447920436636529235605429641896254248563994061579625073589841741321031371992064134288011181943024381816466500307605268388482203103010876435784918392500751398057074274072823164412800015584871490025294339232630885497980888095729802920535942804464418302128897454690078522728882147449722876292580594970306278612484619553023440975084048104029402772687329035750634040606177665925956393317265686244519372138350291564218676000506513719360775530053341988191169577764610406984694823844998461943467030275115931545043094067634135946080581597999371747888446675084022145488904960361206651135079842575760988416020859604560239407927560774599481792963198920480831668622928459155708120140996986241053441732813298235617141087928619554087030417977326363575394654771949325957056467996505350238464306236268530577114840351213366269830051678297688934387151890121715400555903069133417187278843927432378409049025806883245943211753221528902542858761063562001553498459099186357813067532086718457893920431209981221460706027453633813635156644693158755172667836867713998035943577718174556982877935552457229947132290252298520557082566739738534215749928432226096556265410658072061420804516378704750758608247051064621737472600649411989698197833228406847685548693682137016335529100397961277095910411463486133228064780554091747702304372888327147381028205082468058959256605374215612674531046524249786364044412542179832407017467645567247074720908429743850149970112886953257757968854048104947670629951952116253752287559925631158249809100427705198474091620161663474623273076144455869035229153931267975967392998679196818746814641389208238441123974542721102197347560744097004410935704470548265199361864130125248861553196639895099687749798464914509342259624676103730546984344923616381336844985949821239022534047194400922331134773697707393619692609960236304746982127599760893471155031156300009676960456225332170786564686405339564560970481795513867239390788008615803543488380180112446227517265710629597343340190406620589962227564814408598449159667515573462029135483425654468122391735839757491284135258204970719947165898822126926304796023881819109556800161327886426323533100829609899299785945538690491999433032998445346892151518217905381017003049668634999645667935766793841269811675495806710451087078093510326660555062197633767946108499276228584574343411741915256249291753053360595406876986365216713263733141338341246275884549746134495860192775419715400711657347801693541604436266359909333852553625188621374767485583336926295452355209237039048377090633793204129926787479965095660103195287025847675766944736129132383208310312346462332201061984488736502114813972261214674589688451857064109220835896933710168295853859245445090105632684622843587323839884561783468923058618881898913850151946163605222152157253404910173357634659679566813312141116201863349879183829575419924414365831648183718039888093636219619166854856836496062817331799022521384475883121244554095444972412096924635753937691694971635997315329516498108850591814358445128007988899016122977440874965682425682641488859350634065173882291788321618252121634820863845749840579376620840405865633134899650868272736140729116109871072082044740527566550551897803576035047040296115043767048597760389933804444529656166614485633431837359555573494909074447187785239196359603435722511629753214106102436365282331341312840498464550704178285169649050538851044702948875671366478367014160162458709238898463759807071867465573047727539522725511695734643008135536025578943071542016797831313246879050782878866681840830551116253011087426582248827431755231253828774564286138699741567567028042858650421617884587321846628194522893476894247970678365651255161219645005903341513583302931246690938595158680684655424629310486374830409354397343114714696895419546464984682791915586955311508562988898507258273614939318631259018124910924294397598445847443179080155181952733717909665323673142886000566861408054801666505768477604722620281068050331270165616259736417614454959285110341117780627178703751526726892769244302140663751354185780199884112498118934090321973647116319490641832120853947454018912604931190155413615685445292525436214835749872273196123205507516027058530430781560956034235299694029466548947353348698144280862297561786175892830785678409723867129264247108365334948831626145939225994672016165041461053467813173342009677147910229978476693647832269129680417291259211259712183355893910146660582738140307336943254637020632423549410448413248545206204966719256841111024559441782763876693518462830892528956541187936974322613037225678039026075957165652582731491722996409249211232177375635588926977648934120128287148367255279697496356377407110262442468982728285228678816520627672405978537203979187210569344607345414198377016252272430088795670465568899798285913323083394057462381068506823994926761874792021039857090344557392883887783811573192206323633003146955922047972819942093815796814610527507249044462192356307312847986509120310842785495067519118850552514629153090740085133807222939666469881912022967001652323912354613195097160265398829044986388283118138857314351965620497214643902815632191735522784765634877622848149772724047338104389019870891529378726953072711214259428298648687362532719499527921674878754698103489073978780936174790049833877420005721573221308006496390764376880481886316188931741864247139649794505217772122713437474110585287355814043304563224846245109638225919297941980953718831714761963792886417320641698403655759278949651758627658967046490384158944224794935675937540993213179622754196864728866203900627767180151089940555044336458289899679217748037864056919708843805796017247900377510522564474026516020478022310919908430146935464191675945979272856922277635013536894676405190073876215155063620867277322801860409094832269726021784347198252977326324613619437702520341616904761304541214033547676175677888694647130070530990510178041184609907119818892231082352537010346892941223176304862696420794349705918793447633386048080191788979042299656040467972078970697794023688399225698876353782778782370343862011419061929047123839375279477563774618385274487905381956595053360585345973097676645120930164343630652124359291509674575453971422678600550340971339764069789812831785036887837542768045389761481491319030623507913851657315357273373141259773678511742097303867158104190011409003102110279393316647535618838830783040721514375866580062928425429249233419604308204622015833504295830469146496516567085979445253800419395743600677177771684037313566083645512432022847815607835364147815736291969066061236564051574227724934410800125004051395641125514369438201192749851434421630149291341047632113258141282046700868516693702545082664391613618138536808450870016874404177430845052851643310169288353446900920559753367830452019994007403918994161536195282166396297665003536494511143403845306551170320314554888719522566656711069562808560699296633712973609353275364751241611709700489849939165495248854024124875286005511717810808368673862216214982987089527572104105658359473146824959657242362793933354389519962613029264407931339600540415590411864586297861154855157861615162950883561786814874306442193173502257969710664179142978328923507885566573685809654476448259486489193072234093026815615690953235378485972753533529521566777746232063363759227125687210659204646417119365761022191892656654185875755716203969382320530552595767374161172383663102718281306646051990160720620475636350498682136857980606937478301042284755771103778846597666265819601279820692615246178615116581791283150826121623959157530596060417370376426936641908796455491487240994303157027437510133956968986506834049357919113978047998546038671101372471203473684495756511653335145047639035832814105593573636895924172797039790400158039688211690146745658677370686652895725217705023646089926922416545154906448852342865621008482457661208197730791964381740068645236580529776743511391225812894505121779872683070712947104003901527960471974923679613235250364338704588986942172315017872775755752688706036293393563153260879319173317892122540110982914070512535994282823215046216768902643947537816246083371152878950891183734057394945609095824281253450993878516391821275814956389257111087899505339154786667224766522479950827792935993432054937662104678995795619083720930412812874021384473677087978890646174709411910405938208285523345175519505624150311357561584270063022576523179369981206692987028253247902848437832255904044342337047202136485712888776463629872146810335432715772946226094015258427673453128274258953786060566951737634513457607700535294766067965578086295941166710274820944048332668332681611924142115318541083221658234650688968899738724960144887811095926739272054559247647632574469907083777415388837326366282232375793289486099743016170082848468690632111980221569407272981805057742392108482386138022414160678274300450996818892353906431560013931855325790760431812349543725179030779911891511567065485378725350454800584326579047404497494934776512717338645638382434662830803906192152882954388319100112654372209177738810847936893407846922967637602868622816159684234914641818468057989921558199757131022359131344843768451822104510247234725118856907523943520949968094339632767506998022982747111520500448937912775153787321597813769434067375455592881340265939608304785901019910893935272854740657022070429629023082395517758434582444093831986423329568787482995398535979960536548600308188706045303536273437277092619171359103517155003932888354223246620587563266115260560826871974602731161501379303640168290365937554434553965655160266999939958833442947263476172850451105138960309604874008100568872926654327256327704990086317519479957254591591110538981388268069595911873775187702481176194039843835632610744108662966981493911787653073030989007691290444209592208773923010861133859592744980321781395572016125694826331801065293502767483566490901003868013202627591853711389674342037665422792453561571305853538225975605189521033640627537416881880067481234557851432618238317618481142035032324143748556865608307994539539316178052613379368733961175968324278711809857329587685951980747945460265032195562106343388755171161022827758890864811127295853607670616581043131912072968830474460759998253836318716687777883053889071819029767316761520216336292911601996211033295561029841268186607372249853526542037782613645061033948490248216372257828864944901383445661882434269889604654631417058043657013807008695929443453768839606071730500658549854389614110621839240179408649179671531406667405956760301427408606042207638592741371499497254356615657397770501390931689751910452848351814775880661575154167771164207640674182852742483116605585924130757500088462535960233519383384473222616795679420223718283749181274389983501978420467505536957643945151677331019870361631621815678633868047609211019016290176765160527890383074110740537577610675300264116028784683845854444150601458156800792657209875017961869903979570238466849064588747567194415840151349940691526995917770821697652981588639337360131422938394352257064623237207289788288209918345838844981024403860452407589514541170398904612559210046995936004825705034013723052476251606394845865098733701209648305871569735382817960831127232755258116539773371720463437032826469369352318960813010324908868196713340793731035106686133899592134220926701996495119265206443974549453152665542528374100989390127591515245478875251794737174774645078741135270587874934527443667150226835419680883013548127800885833249275246418799946349988425352874022831563248158150819734989584660580353860839013964286373000740524040878148099076422315884503716238212854717472591280129398241266164660017116134880397980026945510386912883338600161691553422917066310306016900850258748650002197876491056658437215750821046496580458207837170497976030109239042198019190750853955607998247611302496816130988675131157359212411705766102099848226994126311978019088133884136896213099781792116524227306572549578455854741799669462510275272544526584476060245343833611230891399455748954734824876119726125201850884085659160541785406653823302136844005923677629979989881268016814798194771511763105359911040080818876155364580143796097779098647387328080113124177502994012948498606777996303785723990994645586936229102221388255225329539862503684832725563434395535421936803810730562253745694283842550576374681464675951783977712954169201669560671450919599942969167614241427082034041127735772504976178128719160057720291932083372188321407559286634563627435983054052872477272932490027887797312451156842333178201799219238157371435958177092758802874170564610404168287422152237350813610252463764861077486827547485922009061228441528312521634133630754990502111917468746735754800989362026373674444036315728216927297444797527455364690716748980033804666928443489433405934905222625627560656191071799596397819964698233830258678267330027358942994736876910784384518568232210605186064633141494683352262372197678034296641022825737500253031955363321186622858700928227799125587461329231676786828768644625327610045821364772847003361177259124364251498650135567408394653846604864263701681374839618055568122048055633989598478503198286412806480975337424204557875338420128070555424886848209520898830149809625063689596527980809234714555238243119284804627034532989864566502875123445367811186368749869307475233412193763805663389402707784793579078409786832927407021739911956745292256985874440714567387431675842218820623345607021494079058440802655765485922360347517326267867912435953507481963935111326028174252788816359181846259991614602737942036130554255043504504383155710837073393263278726216381787814284049377841056315203645140207069998947527151706888113417751965378761090028512870800558708234535452613239851047406730717340700044517242974972798300913752268865048275149098700195247471475879989990361830030492193102411391083445643587162092450736979673923354195609272065397924007006294243647988101409218140726852953801099012179933627900161843809324370185798814956481901138071061627833232304166271610213178461928500887634100881569715467072097718161058031847190978005740022788253196974653462194342751208567594090977570285122529853249083512751568082021753222402494633656404220370010958324578416866707105780709766006863612165876770636742153328157548447059828882444611770229180158469216268266976858669640583250373836851356179132492760209538534799943886397457838387265229354498986499491551464540053420276311283741075399024564665501247741559585705603272801849468901778745567514018005250527914430687725750253100685575514031269223147529892308096894946393056523380605837315159606153572799003530432976300923965208975982979875236269346664794135484921160791624089580167956103173032147671944126974969028365354359388143706096761598099268312966514131382639954072959879247151466025658766025670359878461947110220160376650364142222983904694836335397177150546901476727224581856109470632590153415031100647338663419347057143863942420665769311469628956308334596807090669972160861352327214645403249265978302219279794579883425396896287364828410413129244117001725351801034138651899729378369776415202663766846536592393008524732868616275427931726922373184823539498499839852858108084334153848304958370421294115865885806300258331409529355064521575708596161041062255034755583050372876695990840317554385446743072799125426446861349784630271965204924340724007938550673618722419758485348478734928191081371714436800407794717205235442275769145927071207083795880765097179817486086910633092768281942248970664996433176583633252870244784549706602518396968385342608902056038624356750188967463625101305194515765579024485152466252354623383980107777444813196760628544313358227897660060341262099008681307790820080740034643108213379608755157197566515607898678709765295174498990584458508891332962491014008986980049184146713163405199591804350508757626809634374331020979462150798184939301452092268484415462908466667009401560882240092201413387368888052220398962328821804143146122850620240527840931234474026104796216844058577603483622913607761585899096440868821137001921836222577714313410416980903403387642502793685563512340052245092597583910067111583043083132225758271294450972609292398660308577240122979900851989923838371610518495270082706191747526017851359663550898358499207587223059833032696920591933203982250647437300246193679962118537966555681499849417025838090489759478156473869824016933970316579647060946133330387138554568841113576075655173557714649285169873937235861217906531661340926883311029785156481378687311704371719946707623992590973991611155628597823309484358604357083881148379809995587752836282077992267002436874677105359466487170836897151968485763971915715159554238274734817329257023539444073369731160714065133928525011377853116274344000200495321393510609973322952322301163970623379391439971090479556739504937799667252792800937339647414095732426129516293465334645544551793041645918545119110718152428922965345626612326158750534780516521315424024216022213240313222760587267958451572645232181627440180266499640699116082743146238834080068730327252470948201268449816457583600112809694014418988227363177986575229165018501569497290731629460551349049484868026971648747416212173574881526735290219508861147474655371831726944976043158857730967966505326096608984067827689545339061391834118774966677096387359528393433222758249692076628793431715582328591555441623195384839925913573179960982194717349454397204446632553419634158229637535396939886949137898831363695457486928300544381007394469552808901572183338549032338808665085370378082781008717472833113493150298292431297294039474505639853016248198421726571414207520778476727893931426796188253151007752841515502996404921345393165859745567825971421378346397516117513282009339349650902817007248551723106778962341112135142686534411245345114943655552644533762325532678602806528892612237924897352847473474707143528581227785277680491307758044075820391991913197427259295614013908198402246527433553507574156628624269641725521672918245337318543625562425569780070344009433439464446333663589110139026612925459241311145577650151188134518569534798359168864361211360122918027696510427963851516650986333400884937155918104255967270979802961801505406918796377352289938036403707444157369002974354819456785764366899917968775460503382358159967192990973466495795134019859024002152689643279066209970848026852815688775649042536703837066470662610366509146268304099055081901806728062274143569986926788070476786677326626072557687021787168924848530368368901089609439543122147568896055849140262071662561383915061216803819218313804871498314937040080365849441478975099618504876931065534905978219672895161202249372239125815716538658455293268027487646441220887055660741333362171823643798001193648524946567566718800799016794712830286579796187662629869465547589629271525985008186260813377260110207990402601101366214242925454665158381673106422797239624460904220559021410139723528799415667515814688246502749043024195256286715948709431639336454928533011733091476045317964638260906857514288978014486606279538021267792580863011673989613288146458970350407808286748906570094477203827134605115164899493375229073378760741315777568181334440742655282516580578325653293603430721329313793793907107662261123588155179521161524418894803812246569411300290772326641036332344136311796731454430685484556875077858542627213946065892919425278327568323673251603597666486278974116325005990642954761078318467118292723057881777060525819966323704354926471950499908304642366790141042079138361961208678982521160362852255872936169227445111878160743688731719103695826399765177061220597559887967730833977190040170708661578052684076316677244215393695016614540463700213382024217349465859604109989699870942017495039322851340992810994854451153143214239153423287568122837155656237270816708860987197178222449117023528712766757456590709109259347654377901628891225871775133007400647295062691563029078975234160939283491080536730372265572288523787814412891682978788014257034603645193629502881601478069304681793989377408321106678203851720834725577367415483298675104479371171660684661754766736743678406258352607258601400496143550189685136872208355990876061482065989305541396057113941131775392509476595564500282261071254837978400534314283439834785333169789100883732849740534670336352427753242407131780740816771817765260712544920551280765262540866637714414993818712980614713010707328848218315807087646342596282102476206609628615983739930488247431111808127916284693385935404955436875856234708044153424667295047909469756191194685145940537689380046224891624066497475716545467861454344863371177906516077371481050734965151524673058088679855880559627683514376542433750777548075690452329375837093360501676993473719742579134732888597895119439288477468947724591294469799549787798819670717769365581258609313979069217794633967764836792400323447165183497772127730479269220442989447881208690723199569397522725561262129840998274459662679560322771750213186142922996564474202759136357257026469573490112935824966947665383244497990620757973658952278712287578424187944746430677786828335186168083413473150515799166372982246563490810596170842343577921581819411013738175243421513328762599088265129858482257605548404650967256019452408174648652784389701352210139346880023814946007209102699822810214307018542737645737352647806814414621398888109034019547667614835916980938853412117126086790482877678511791953709240211997498289774420356664990615847961245177338961595523251024129506601209453599296089965240871760472777488200112403069351686758277529260603357812366255639954476445157683929600983949588791190032147805052189743895080008849437921600474830565604843488792676388911875505629308424103453378196413081882896501658814193821489831769856315662075081568273563784974664499753772447168812724142203015057018732503084496831967592362528446441871757948969146638851048001676808533914226144959776705022774313513527402412455940826844785237431420160054062503892988257679132341701213645587529669764997272400833982071179361611128035792057042884963036680735028473858752020619687997037815387690237973187179179585717852562390213152218941288608439067434211111939267987900531975589294377929146368636644717192663717136316573400887089915082065427484424169443515366153220009232954579425676983592998092213872526108698674448701121388875558257494590048321985613609427684186074719744552261362390390203469007108146735125113609300191600802203839391597215662415256348549893210970788897965177544074928108690202650420607490729468474795857784066945260466882417785840676466739042782837817182006432004950232858923137259248862849692616844372922130879671813981221114216248169957374902874552207999347050613700279815781533953739985789872080266725920805285955916056654275716278390766964872631386858664205376497316733517286818805217664572358234489039722707728549933197223667032652408323984255315280119008004028786767537451596072183488152121345414666483318475318458102290503818207341553962057957646509408900299726345689363848027671500463196204745075501717941885488921768704833592909341852617059156231781108657174107226092743667732879027881532043934953591505726779237822772854609553694457224887314121984747516225904521087133756005907831887871034988089962747361029389316357682809962036571048565878027096543293758278115037305792822596558614316898560519321621924080433178198660485370425034122262328901687501791738341828165296755483109138526025470706091207764728007083285324428474719586165660140193283485617777239715713430782020953937027241237403908623022742403874237628861119007254437404313602693107318343981711530672992294983190471672553838626867376148349550754907447710652804564616393051617932196870418799831919857281923508036087466581070781908516793859877190873356906830030626275519705027191255496617027336855608441386772204020012830234977716359991488878372574166223611761626545833675030757677734591683837055205122786090823815615253297780481630513351463623679324456094364302350642777045774627843397205026952601959737943011095301513908218543743722869941014655394894305615094133722952105935265898164436282319285285986409290226368701437604234699941697686940295236785199263176593417890120355775675315395762668580317743546518899797401516208598280726268838345188229082906630544197615685547761888326935277910921518924196962418634796073439940638429926476037205440749440773436623126281136075803942414957375715428639454351124699574225456423153660415319081795164825573736152919843308386921831516909216761795024684612641590349660896391703775756475568100331867701880835028227083782516295462619856812734263426776147728862598395385194463121322546551530041596715513056298772235326929819392384160874886767559299259512741068936145816361295539247554932498221318950038014900476888198377665537275875916837492768038864378057830918614551317475239187993165757824860171479989243844846105245261731809748857683666709671726933299954318098246221916201042365923866318161817771601025135536530135736275020970278907535309983751311634219203144300074520990655908041317195493657032475322817810273421480899573009857950339286479026552954806693638428315319995934932064037288516124385111775816988815767909711926699794802126970378757302498949924930758263827229499860483855896220463439464743400767111168902605570329101652550610955224400631363738549545426292530084377772245585065193351323132488093298646091947248081515525843337990557271705746631912549300667342620243780346499123880302128731328597712381373046433156936540482907378473682356559969234622040031200230499435798008796117253615695508115764968800630306057974309101889700291164007721747514482986893032980408974933289453956799473137712178068943510226078919741346623755067515344321711094029353908890519227959076641845951324615298613822028616102250228707477710019338980684848187854212852630654274306690019963211398553352987269930261506953943194494287563397147915879709542868372550166323654683863089526993369395748102862293502175725368008853249952078512446278765779269548661539286238373144015261878299466795519470255523782977940781815098656068008622570574220674325062175799798744994878199974321290622661288892519894609807258005624905219762798689812058780915226113133813261246019319942304261139661980733541725247435345703666885005285316741217529239149284737113774589342208378315591767178565890642607948475726091287917038261593421229303856774830918995022848164873679519466404481615976893533051059967371663137873604275584926920437093973768128880982552964422653698838812478433376308115330923096039055626280403131305931723715747454015785645250015648767525300657025869587047908993559031414095668155787269894651218950768402053566790710679225620103379153382658578730303640758844623980179474134450841412743728623974135246704575173182799263527803360029427899558726620528328581268997291138657780078930971040689020501425532950504181182412185003672422677979314281013354785017866100448281243315686539237192331292801459139357781225782367713895723129902568066143082248680785081818564067515438529232326855952934916313996567299574882825861745282512891381140288573040537689468849940830959359936222468598547433326823465405895437485637543133834228630764462309597708772545553523373375476298273342243095848586009576372071082311032310766328127473369516795748907988853619300116644128940114642958705165271365086729863342056728052036491507173684556422076490369997786360850362105508059721170646259892559293432094249870089008999830612717198651094255680389117663293908359645389864714485313507684024816535976449322296055326140227451096448052392036492603935642810861320958432677775383082451535594312153271105464522101978313797239363156251348213340520722169636598391291044848667360918955915814690714857883125489249928598228830611530634820941938039977831395579183252453880813881078294382663818303619640549913916066465946517178437147558127111090202026594914381419824510717543495109848294399932959950255309194998171202209430490053437599635136815658814259851492438272925931385031869720691109438096129014520613681564631426255109079192803929565394160274359027514862597282320821110427176037825814393609256129771286528668138205383425139645315609416220445309838775934443971134457340531275690898882951937293116172199973035425448885734838611073214101935093165316775469584644436660146864291209607228199596695986646712294464651109686439010472540471558488969586389690634576723412773256066931914411680405980676957569514190862375472840209236170193924627365326472712117232148147244082683539940510331152928338673567345509285508724573603531956685429793576359556274544000215766093333599535066945937727487694464380899111124200054562819613867224640514124853901365567596106477838221606861185333371103233425705649853893426006419934287630046374115697352383124076500698821951435076696031395924616093264146071135134312672690195938580122011237820066056537103966176936576041490890632791592028129787664355528730373735508971168724395535137249453631756176581445014651207316577623540854241972571265533425945672666002639737954199860164639082383291631767517349402183646689541849360816221739246407022949306323455741056017818029395797929697491255970014073450272005687939710547812456566429089199834948361622867987745863791715905176138353229784716519785466847140285974892345006753978273011360918915494502319943766158006666343078623985831388267989696831977331302228286610292566489657068385231268257013878110365022619889317261329628907859312273680605440386469299675685199916047786290441490173913557214417975493914211313987703450994913595204424454851402505328657438427685333627196184355227622959724788185978658334135379340920604534481917752512633641814366577246977357454482028480292438310930868359539244939829033193360123957961723327168897395953145079176881825379224988463837222803426624952606884575521981173793169098068443459276146036344219301603018908726601635336796184364356492920924473054713635352161557199744888068471862692069378188738954674482060775505952495359196338544401375786786001460438999418657121076419728965796034425071524635182592578196419518689786542742278468280948640377944229060127768301964947373105303901705571690018180657617418031709426572552700435296865789003551738442959539481346243585406088196444401847500667285785090191410365066230658596443793356011568428579707722893473711504262024200536239899721333745475040892621869679838198701481133455398453634550074150297422990232410081384996673966781082867739200047604702838614997508699664169783813289753471099321558851502679470633571684155919826207825915711874097746306117363963336785798145606453012343459402529899973791288121310454194148663752824813017873931284294997450310104429942464672305230174619246617583069733107359563391264616478188850727486143861676457359969659762643430570664243162487102233717963413442001409362204310088949094572674077548964927801125446910514259161846692944190518319193286600338309150583306386446028124282004660128166544565484627336733669325658137977667083409897766348163490947075031877155679220294303330843173754207043698037278393137132154782431627136098415557941480906040699855801033420321438113639413143923487967931913932486763932739863173992837474059369964540191505845966692789541211486433287454452610890944648525210047486239045989026680911509076029397337926328964400844448632789394696984424406341651092831236429102110451667379815870406036964787565248841090850560135834403825481235088874616933856781234491727944081307699584157412748984866782082800410591885815061038556329619080458619332196946436827563050303910110231940790847421141847511675214513489258073139200977726933300174760942170268583965164137016041406803664599313111520928488332898487835660095212503484895738340971824459190954171451810267537309522655969311923551634371674684906763266178172863958017224680875926865683933283412234580276676554005386789095214099006435549174741080187767575468362422524737060518785244446181595958390350248708470800486558282894369377155306062164350932796414643867548986507490484598136924142477610106855798933499392872651064070355920577415195852768512693299285392763305725870393934033659122106978591804524211687424556256211556045435822243923911357195718293590649998544461871318611979263343100872889345911039345558665963008669959842857812546411027862339919725907106040487286763954480719050430917716244786424185782122041391870849558560801925828345091620776943810835442230251352367442046522005826496290584182103866885233776638911121898053001107344387383340228863646274993429135756026163453240898615386997763214763277688342084535882616683384142208507069882600371553325034968647205038027881732506429817511888678651847117881754110391249393813024056046030851541439685983208297184572880938554455882563736872997789000394840767121274904511982413731580059375610539429602025842864363758245099568301613215116579714706232671331485168901913606969190544567893801420066271065159137978830154195008288247420371124863358798611082346690405191810781627170521863703728899956935246040507638903552838499742406415807779936890399969834659910481021846714690164143401527067597519664764047370805493104669449832691778164156835864287883329163602477143470904035399901545170241866112798258752904903223035842442833481006614484347020338477446863447679741422202236250935746819911841428867547831255165317619354942232211401020728404845666946313434924584191755055363584529647394826739116541071643878529529600091925449232367497796874081274053945671188508882281347336314122164835390449919580843524937880754171200136572499383376913034104195472167053908851551213850347175881911925828187245084832131751627219203931194719212331718491903670134744384503402193091591680203935988722004246839735662185806957714753752101580606900023059425884542348737315488680595120082405782725152081244035876694576800577843719479916535261780544912176348621031985725769849047726111334085850144600442255690722651783235973796366677297899373460529407722103057663453126332631073489515101788802867810487573692673813469374292415667653685522104893569911395530881458199475439859893565577329147557666199428644891918658780066198905682663892025436595623497500401240285180507467464964017662501019326752165079837913205907596499689412469727284153114420178202738645963583669678968513590842381390934381422045538306735713932580385182184486423930972287954954652999998299414042728138333667551255019059568844037426602902403854861843036953916331327191737927267969060677883707298581998894262554512281270456283365720878384094940586136293800932156974075685778011371115633994202346691112790716310123467640664783990504366682905184014894914416283652960972703645338582615593363053596397807186879339713604554997860902651749928784327701367344972495787315120863754343686554876297305162053699603208969345381562156503108245304112686568950176889963803911898652902012596756419765872381279748479444237583059789948168063923498092175085634857336259795338560402097757417002836822520280975773021196165924808089235091604318681447458236599215237587813383319944145677089175544563976951152692325470656941569778873393824612594528273541875499609011852682503696079981683877045674243107609269681591242323668685496099747990858877974597029363666210556398917737397977539875026853997445006363507346910576455534860973865234906400769418891025701293346365810534191258353931659353685760061067749954353525720819315428072113368444310535314548156278798745847856845900947734026161951777848114223713247552787706166147897720834170232035992530824199309574922101809740682354543658828164608955992291701511364774261944032145514931372816281168867504155898212450129093848083687599625453595656687047190039220635657492251642296984740441684657925272471098155217223164070788233782974057240585440733797291992494194354840213548230094827478094677617170607568432526793374969770103570170700662122051109138732751202369430351406899080636222538554483462519494156109228046483505278398378518359412300379853459150215213968816375803050732299959568240293800356535935879369562512095995347090191152316260916067973081343828036735765191740288059241348599624039090037877518463500043443190360712785812080211013601970351721821975926906410712870398888537499401103234771068650210160724621962252562320861434065097814073361559166281615272290676594905097314751200237577122658974306777111086978231324186630863698522555271087505624186052001014955805861020194009017224496361332005181973310318737764861873645232552285736432227686642654818211790481829966263195574712119105681894478709661995535130940645322508240620027013913192489806408361964325323843304185733721467858826796603285689025709868620046375903253830371601696174133728628429699156604051013452210004058117324576490381335479543392190709148353093716600856544910922366130872725528253352874161785363667925308875149479204830938832325629186049433294546347477252891481105734514745555378574982139798749818354119200956853221819821533905267259554981526316703363794107200823916485579630797103836007487616556001647736664885372515186883357292546336424409873397841277915941011452572422681972919566049083703020223552176473073002641662962835387750655395670214971033363294061593993867251133881466483925307391691069092674987684317791602890615017574238954325933905081321621706593070018355667302674026172654259188034922139948993129904423803440323185943596958467917039525816222569841428114254446923514086507374070684294014949345356618355383494645442404015055473953180168054542815385131258630156180621301954867553529254244940105601587159836948468729486279376391339708298742615089078662776106127438030504163281383736646743287657022540319542775654446520763081944595464452960180191062531794063333123185768812044580213437713623502615961843428069941478959955078820620613479160882593409333493219989071945014848784424681143171846785993140126937078236220034108559949163179396549426310926073412820996951067809519347671548985889256269398369377081038287324407073323670895609031690459751118485104409231727645586361949724760666525875726854514696877787212031501518640787453931946938879376072870433007818647263167875351702729241252356858052123473981132776905590003876306962346744234344157601222606140549846518373550044046970142691748700377716580668134671265128637144180865177386471836728030302282622109160802042140708954228634237958863440392948932461716395968441345837671313551802237059408458043980143470424177160564852568415810469159839265053085494745276492626824868022895794014726129176850638107827916240738983342603583145047148306017077496744241385148982817632897307330305783061282386650568558658262692801593026375824700080360600716967604827048044393528389105094965413016392285362011140689675296487028090482438648924158777759974296883829650651297771323740057971177526404943826070698818435572034061332679456278218218965561417056679245987120358091975625596633971457795344667806569633016254287978429705127029696009740552768992402028748492120612008325406633372931801085476312010839578340917852287724717702701588237548210507688789758507182948752719234058951900931171376479962295481731480204455548259028424442350306392559213107766212050113638775613431591099817404201556764149871420616930284979819674302343665407732887205274946085714044728771985013032514904516987159299090287711131896422102831282527555250672949828447216244684057754594679277099190815489274089206806084528080438319118540154568292101167694714738260224963412268703312104431416628562233773157751420762210186425622745574026974441555894658642791073395234634134504795735823096632026807283264783181990813425340352011869877221865267931067529819381920275014198445391099609738102215525766898037016420789824403948709779365901869617162140144485609990974606319304097281267080657158396781626510463057360841885495213141043336581049962146770844817215821492604332160700087596256115799974366025504718798899041389662056347717004592666923246122480727473674659931096342681828806309363512366204836977605472205528716532026730263960913690636365634690416977569597195908686461385870467636911456825371066710524890585142114575510781188388308349148359650772219276515705707905181303905383608325771574252542936497879791584432219429156677513789863636983310094369382820795988037240130674807410238928401806603328521097988686981596615649736984411632100541822807943786974994875617652414127564749937522422198972551419985959907159627352895762944205797655355497273060097335842389918786547760338538493531454554755732518669211271251085397454790242703508187712318345175870805845084593752964343118641399185133974449448492939771720099724730255500236199901260335979283919770499328657653981254244122193838581284576393833490710621000735672237621117592350152632318702837781096871012379149359148574596805564887365271363713480853611544024833334532287323670137915855283262133434192792154692949749409135618842236024005925344313412286960279673213512516070017285823557261655075017846904645966025421093636674426338156820558419582624800481988326926332562505113606149522947771591631837790411727635228613440599853175272820954736388412065134324282556708600788254047915114057026611541791652939334566333953835262796826670711483284712123341714063805927333112325833723320056542761961672973544260715370978470324777674194453702619200136315228547681572411592516301995516566931583411858293428312597915288105452988802193929840872234420081448502410006681036671050618384127359083015109977102687807979252899618970132031094913842131683560772182033143957590972845363423717299828734460236726150715007973614153538631298138193296440962591647539914876652375859866648338820217634740637059499648308941477244187022556180228538565747087317800099234201551001192823979273872043774615816340499692873334767209216023750931238020173332800169606740172704250465414580498617327771309732670196095936124716229685792165529638781335220292896982001942699642240098965784792722856169693879725451992126356059951327166551610407034840653053937624587533260643248966306283225984293884196216807534367893024529488912562646214991261758845522117698601385706141374332364637101445048872806638274324495061972297521278778037124188817881705482330379266872998289027417825644226150530142594452200390847885171957854923552442786594018457092684290929987832123101127374539923233337586219481527486352968039726303957968007223002815033315790701983053955059353007798938345568130694212250562916062126542144697907920629191388991578865322820861987847038539357414327345863046824075348267106108411484562619816661995621957031100490183907578759192720645823523701524809078307447339695576565452190557465213958513819056938536428142024852068562114335529131504357000447204306026857632664456074577849453092218184375706060487150995823536249258180338929625551319690520108704219766129930065319733599810053796644299158817787740848749631003590135471874065060082324792568409568270344631413417887270931420957212142527656898210751230451135076859847421916781234191140856389556825152803210777778980354818656699883415373717091173007216120863615534387971289199160769981321992931973423860123733376615397144850949471374625695693109552765461549224647993835720073546564250158477556992553239771256465926425623317500685489086062866099166173300826069678278655522164389553253224435970488592760724340242984241356711774271453688883176320054779911140840562297262280496663840837862376293207077757858018703041449004453385230710130386220907762933130949467709841639169380393700546547060405845906017019971497361824584415310244157872884918347298141262584179144392270377020436468570691687326005787991757896422502229197567633023963519905525037702728350011264733747974531702734249025816492139352930182295516357299272379532585187978128754313898901490269533516567360688462120509903343863413431997564522319187100932167134924549276389599924372440486128462489066288673032047287737239663376674078999996054062025867620099959551173740434746008193998021217155663220428275836475228151569541357813967237137824295044194397943369974042618426768901612607527779013293819847330358505346031521333569711164140449741077329695257443199826166262271547900305567582691091258200519151700850898918528287732730867341649500456032372754705496459257013051256370313396506602223990898697150157966957000416973899818543393318404182265518173559147856192048325287680381436130607316159289071251201485794955850485765166596901364489846804280018518101345135317139857174904954836886361987388436885102965208990179795536986290705028934292826031313812898315008597339620885209224619871516600111300127999687209828070466649083919802677392405014879944440925473430265313233317798207478069590169384025416628766838871652298542930413734158943194398234048569915836038297547860578838856215773824039894941781345110868808540406053492634618860385100079185132721917835072996097230700911546198429619966613919666026125778219184349291021020898822007889489543858741093588399641972821066495461579931503916843867170352620863967562711457382528975424207088404495562366084423782028045079774186457282638266959160143213794243115534045768417155209958393781521953261394194921119568955274058994412576820497296627688208156159753484299520644275376675355891066543977850572180481960709215830747551573970249742944686082982058234039428559892212390746163774677592066466416885951860111987411444260233830434622257829636456428203815419259493225421823788063658620199795486051401157347942688659355921186255567944219962028695618679234849306501781515857944434957394991057403356498175636648346282628771516910681140343347186539839918117954819037606640313940667953870446834052469082884091538209066556567188403719547195490200516546484711349385561813525592097261585372655276456865655174670178235375591658261373747409181910311943099240110973040589045562549015248201549080513853971875895144102693879656666016794884117750976186804635144248726682649332152157037240412376008576344577427956529367035728718269234515836982921742503204891171411865800583869943191957643748185343068613252182331491470018960790100137857921624233915313892866450245251127508842641506590469620355343941292111063647400936502186949369284370752397824393944910327115359872380439318050955934214788370500059685523270276138028431037738881903019196590347310158881451864928404246049074916075582222587089572601308565202878220855385950286813331612778238522697709522324826484211483798630525431245970897602618437856621962497571778999393453998461620310525760108143498962390111977657246938619667002916249960464413940858828007140034247308133239970499565959028409118801031235885157090438343227961917326147964705628699097061254678472521783162300070787510973877386223721907564831104152058797426547630090879361758724957664503445335052457960554061814820424093923414329850447506055706658323580419448091997466390342793355999117727626784846801513249990385513311253452109106766789081952826641277465425905750039730171454229414418506952489910896056004817782101427779176060869118951715353946368621983214644826026061879408104189536478766509400781918231990634727273836942403556306359956553908546141527201664624143280194883584471808847210425752564597710691444492905034413521995828327944186539301469049737063955960204566986390929421417362636233156437591077973978854440563733804777673647569601761406754276368319370119118974902634944795200608389046865389014389292464658266340289961870367827506117854790481402139720091607325205933604103702598366597083679616542365188839206865098561547715745265552195938498012039854089745200753690483725256442116654771984410912967587898160199155949669034848435041736046378636598918629569181023355831214486487107798007752880340829113567590487420901430341638372940134931330207741570021835145661712611289066180398883722234893327992690557790360160452176817287433192512473240323261004237220668846821413864885753964636751753468095262194445424907949624431634042364417544441221000273874586157560800036311202225823637914202999326376477376127743173104379831203613397820818714566094747050573913411452644095863687273866301934387127989401868937487921806706472944760254703747466562062118770714785102589790871040406001952249379062623853395474993403109732242474702055351035385387848686639770239747004449109757012467910461044671719375635863812566103980579517474531607184806705708693903436018572886721948926934997599231048144210132691138759379600589369699456065473827554255988296976884818569525755294410280200389571270815835463378094163451111816703806887953264998764801676348056411860035146686871772018919364323972066083582077999971715530239131769543959218862058726698592461805606387550081586049635975333842789407919987898755179112772668945312144073815928582710366486340099461763928613559306044038517323223927854852860185409770004376926229472272813526284174872510333925429964130582677750695086937397435790477777115794766030258497864484879456379299420657357331057403039265278985747370620458683178970201127843730557742456480912755140278824510986447912285379165420818944197151047106137263079610038960667342915309547237101049531747981066398276743855113873293648298824849492018911883185383148241357903074893916871758591879933234419768937113120655496205154087487471260078392790645837560071391081261334969106758346687657879703841662356673436250830299097524451861939090651191809728137828073032022786813590092925104090340292534461308497782623103796760850191120894691312945268179430580285187674955346978330254952772608728853960463658405779635719531482024070570291078093373860115548677609007381163941720789736510380061549595329389755480049961577742360663333200939008842471789331445253313120018577595529129166097642299911520164832217066289914474745386772130179330623583382519188329619748726429842574705352950853754694033882171743349704597784663941779299958284104947871884577755869530964339033406140863034443555573154832645459949091460221226288748244089366777376563538597058990621489925495754300044590433183918966988696977429517535258004702058534934984597702923684422065953037618922332746814538625120166073381210468487843785323447336455458408320254137890457780402786974282321370828324003344909228248325211992925164059653966400066547424063810456003898869873307922881518141568666179573165582651821756342293885853083385209457226463443324272572548244656306887938613750107035660537132883384251585339566666245249769261102460072055071866950560511607103988236298743031085504849514142235376009275932843743076339824459937954416143053905709802492179611804201661872529545554694605476410642794846235040330422278036856063531887065259524715395274490611536659041906189414360019421485901343298795100209193519330427920283239290483245166905657614907976594619365751882558452963427706967433594350598671399656914113913623301876198678502912784317444617373978281809861273595743330989215210002435489251337922479470704826819595913431556485079634901206159298927704271509890981887164243501500070315011404395060481557861891382783988498854403839264571978759595142253255927266408827381462020905300420595524070600419143012533668495366265842144227885966718295734773016656878181194499994177913962351975783391588373437569796493169898362022513786816786635157131198850071604001773285020000298589157463098415267705185058032811004967299054592960202834973464596749994089796540785765000717329980806794781529888031122147946925274348284403432181639799426126252256410488747568485113352936843795655500438054674497475446748537586640771777331313955679452735111331416859975042358466439500557236646926153822215887508207805271344887003359031154085390289199225528114980502759164933397105035324720047844837961704016742881020826842817066428218600308484747388369405311846335989312601916518332572697195926836410786812912651928357227583022208326692120763336387371149256569643818373281996702793693643531033220058503063681221171297000318257784442805579804408264611857348297828440597702201812716079157210798551680816851810994894347760011138341884522520665501086260923559383224183237722801731859556406890550446041794747879329076817502703479962699432966811100516428569854050226629380632563187580465917951802492530479334678659444000691271403089934605962087847227354546135109805601839546264872217469113959833945249226052791158469001714875995818029124639838141797676605830851346648425773405912760991361449513938989163542171813407382632682851109996437473859912205522553327065227075508092763673455712653012331473000706090138308587164904739303105020180961519665513228430074737506101535272245921242401407002888611225155319068121643852097615215946443653295803866742764781486923552559533421216509067180482543253834978274520777760634933395717421326955955442049859263839975432259048050866363688493496503979347072121118373341170442622565229401384712359762367675996888275432349914889250462854798807674088437861461894183812504751774001210669884457821171302815424957207611168500685909940012473975685433542471062396794226069422366883524155894171940237076616011633786725974182995373894858550759039204720577752977103661574535264222805684398146475460210078610520240834232675291562008891986780123580008772129254067907456955483952906784301524989705229142360900660439182587298445935257782369064108015661705248430236549131001034233009811938636799486836504759417061561990386813537954781819162052120452952154570035782844352221208211690432422813934611991932206904027011583737536347047670094539100726626387853032620433102455049663234035817496460287555579999617182338738157590826552896883940917936041874559904310709358476828940386097634235614034482262588368717057660217565752419994288994238136588879895129209094202138714921975894128709080713929004911090112526325534931727448808906925794415111732584851978615398896866943974912235401775345867987979112531308374906326752822719027844668940313901941314935533746009573820773140943466794108525746130417983353757404896689562009114973203118733108015784203257141041863625988894644380600163454029877352991687434021641852532940392765299601561792362040027643242327837093142240067983779507615211994037368431238162028838499918975476500163736710349594893440839649155886706945069865625799266979524565063769244447809557230633394200685246555801341714597632408042349783946013617233019781203018801846730966579643386815587985266033625448362591055362592908257456961476017990856866865926981015250059471480355403527122998868444561938088952203311418500041769520623459236185102570069814620395208025636165785663270241757016154424969036700678302800720629716081177112500083013817591038624281651989518686010173720094500915160520873769269629857282480794073234188931868141932716976181121309358585057901585968819169110633358519974745652604853635713223975945911491097062944513347411634088909738373219957108554540939142578492959861990636887287231972598474559134617670798289655649765659441889278534728590308719914156328378778926595790753223837654036879792033201214906571200536121339748299516295998360208190782865869239041993898795136287422794042970492739778874973847181632264358454253244695914085817781427518879174790245496593079553189272634509827731458977656548149267022591097239891388517647181549455569869082425839846339066570460302335071315341714329774625245130039116166893088828304479307484142794715304203756184145880017615554998017037107456723544735085264842602293395596747467402064370566886525917768686823109062279559232492077793523117220764984767713634253244922980772954500344508819624419357123142220539534130089771521002697706801101438980393488519211585864958722495259906322441841133306397110135575859213038983815419731712132838285582141204933856119593246613274556512459678287768301008848623921664855025956125614193928650899075356993375118236355863427385529263376210290711165080103597848974421972901589706470063422343311575639584431193119408249025361885019576038600327450313039421167132726040992976619596315807208326688458713991376517532532447896169310614789420326139549627915394843636441512147229598652380128484481351969882854498896491823664175861459078268182486108928098847608724570082010480224081254597445019980964869396449630592931902900699790051219165610957679407582837885007486159963045055326018758982546866941387931724478246513935616991604049597223446331357127816224355221211067669909442910395891037500294252554477605867619131104576926870482860611966247835982833688785500499960406081177087076252931334215203398291868203621739715226906980241729605484055815345466287832883377987520843571801079438368767297068712609492850227660241467582816350414145443621723712127083821227265582891893275742422453114152101739320182471397684656922100057536794489686038744411522870653941408612587163811278183957896878090315663905196709164922395815550434770142948633524487127952466705803470358747374302709682778140058336700294951396141755920152530319920157040133525676398721385491088590104137263701917828552107208005601991688147449187942578528606524860894069701296819881987095740928766029130336906633018965517163811949120764296748215445150468496527667817061408492626568984768652382255325129932072562660220235241409588528399336251013176122093047434205062514713689712603480254917401346806986998786980335589759417923633530255397051966529577042063240320532944784932891113582988694629965019709441390465544189249058155651622226678797112849773004429028331665000920591973956298968443697450670282203373829656072529815469151474585652132955241736885734490689347628139437714137406548218725224398678701692631180084671067280436600999749058948132078349771599775802328548132075184707856507316068360762680174257541327438201781378572771792369859238056114583359151583543661185094283728140225628666994864762789409379894935329372224773725398221917401259942848193125863368741775119666763892596083710119545139857901166430807875838618290163348835082055101267545447376158577684944981734002694096143291095955085851144304365088296229734354502364369030863626541134899998339572016467817415989898528099824620025499987436136339810923149495728444679655730087803020958918764870653050114506048082175374472341721333258613949432416239144395427078437480964620615468107314110483641559650887879480021333209244234292137379968138144925356048382751389346639750785668288062069284557077971543861036322015776535234950204140937011700037238888033029718524132711922627385385355461968038685617280450178672666272019295185541198576258928285198330076412050382210771308617083011037397751919669767755284847708090608118911261767801115056144478056158864901005236170563953719779823596144564247136472114471222133621291629148728349030035944832458198057525425719901330561296387653585530015006685237624875770269734003664851921184490528784656611249569184225809703206245516972873315715715408679126436665097069044652971968289434268337445160363472516231908622358843555570301095105195734425816967368961045863424513475688978396402095316718425968491685143733659438612030888695956417815470015966345052129199010489173168341671775011686455806264172590558064321883095072256614108580397550740744842287465008252852934146073566474950093137180727989364207575375466500511933923665327743679383175723719653357822305843379928236872782584940311310568220523468973943559516919133676504222343589071499165385211241899586571268438191571595163488212971701962962501066759890026976081248866176616676415223316905842085845298766055597630188642726848111987786415237085389144289646014224591873460126999561716703917547640459111930375875281090084111508799233269610729619025465674734872664359885673913887336801676051288837974923846122237959709600782071175214948290005899800344412294076885183268352729618442690807862431461307569231822540593975096590710719825306295290376740432679212041668410839693372925851115634543640786150172706903061063386183432127966261916069661594028804391672077423223885095411696189462929007574263807184366139096510630821013946846927551165677533910776434446986973364786966962138133020701248912940718730001032485518974642621373378081113655305253448707446461357804421768481295902239995425909866109471223069057408025123460272222450542843978732203781903886976689022573077419869563724548428076975011005499561728696769638075997770120600923579147989334155468752148571397446367545950166216147455109372527851955817009902680790321743418607158759957853779197113205668029474770536158538103233004032618535786406859335148581658716287293177634172867834261368592424135316256561810573463663483544756928748224459972280530377252122775468960891619138792928920050674530265539582127935160681567904150255436962082210823555409636756328928575689472321282429190110923059764385909587544948478417131002177620784424276258844870603168774605743825740529249443820706353694427231058180394013168368959858467225405918948612990036683472528834324686321878948628120348905569804668620400480019714420732024671679668516232422620083513795696140512793204437878357901877099918675201188562197035318624104439288136502075894953349494897724752852990612152760555211259746167325528392108526533867445272912383352769713956830969355066420693643781379131744641482174246047088811860779246878262018621765049434114908054498242872817246410027150338387987539595636320950922516618324174290356386706906068640864722371071196700623769217359816660243746668194881883240482659736186659561553987019915320971624712508493240429166643772443991725039356694301844123839427204756342875361364165820081131052631952528980164334697168221259636665915001929020833437554058021104760743638661254056494602907376475320849054013685799823559631563433372308170692881217973961673854533846265846104750183845053861243673021924140796642772689379918548906445751985604865228774910578213001918515215662988570284683888643927658832964978639649080234920842615439635669200465860249880164107368589081078079923591836474064094089177878043631687497478232787103857297600343693109513871734119244259044629807609402862654315685102793902577392646070703503141457102215916208693653912929799560334826371307083317255404786761648613265710610121244133663650018217247500146961825865907561570292762872546406495517717446533358388609136021684006388916520841237511521110618361366072902428786457876982234073516579636849007939608366199777972558383993187535098158320811796846475164931441519195246762715420248602603171345900131194991358545175817219397966442533697631616289931625760546990168568520451716049778120164005474470753370487258228890122491462272813370359462358617882971886243539106224447219082658767274689885140197552241103907149026351064160226865412317162598735167304099534280802007297286073102023123817450015159171132380796081561445321683226341936124744108530867188630024574559897975947128373244021638098224207057621728487824841699255289764053712637172593589740893218114032868610874848716512510182680434507496162105550792945281832742995886937545860085487209164058286228560118735953580663358860225747464948757595347220788617275932943324517582630945410502065955508570589444178617314918233035025222566918428780376215814195394069795494362301306349967166309877600588327923957403571076123727467596269228874658065342130341194953210114804014460690271155895563811977102683132428420357057880941261609948321474347455923015501943895346477095594592787888675619979094516256968379431212072068965200729143196354325746207366510757908989819169641870405097787840726428383825552624436369462731529797758183854100880756626931411105747580540345422329580866584262440180668566830739271324022479359990305475758006447592754012664919838397234688508176542968601299348712211044408774717772956494544101782167467654516192824807906924970564323826227110136817182542095086761036019453755978922589773350194043977481347389387832553673591585079275909101857685997023447007930400704234883517338215674279071761366279224635847593409757803890260662068558951800854528138205641708140843808624350718668798665265219031888372610918729399442176606241633517237620980963313461283511582901142656134991753867333974566864651867080511127895647258090495091890138643428420320254208536248774765539544221432239963638979897153128664723160492243774072836412250328494308912068252749087685601824769707346833505729734330841926235507241492768986992248227705441147163734028749977504550451970513533851991956883779836341055829825118854950738120224404994972905372572203100896353303259075768432203078026847994337407510845386021593439114385671921624309296045321167418680133084132642692815884415676317384713075506816307316124281577771487370612523554318450403479544150587522737372826702716268757306015047459866410711370364311764119550558210072971839131198204871048970842750690238106170789541441621785915151985498069484024502509499125201221554441892505935635435931020982180562393707351016697385293367067641069972432823735869206128255431885170230802957512694942826334988295111248497717067268184824940993904896550262347629938930401780270800954278416319654662916847241117541141203874520355391932524040462737768150097142852359869880821891602357586801269359373914663133124430264719757836562153821233586041496980157232234509329274504472240846778432774746412410925181335011188434367662711695842847185096414693004058206882225021512701831487483114659333754771266037040591862374844222973234406662117933354640516454077888954781274956764192673118899806141534350003046114437175591259507450174536801956515114169867079470221234955055272537097157252783318083014076940395566769953637346980319657851528434146523613404825025413312118271572502027106938305839118806153099721170054927649529012563080627705963306486253469992823887188112684289672358968845854032921275190448484128689742922086223404436953019151445657706672044639525984599991622242414708775310027621859306703172567641676996403566459804188926795789557213198762941289492535958699086579141162846787625556041576300898437094638834784662770381604646269027173050263273192800213051508878394178237765849791927596076629605043743132172662714306321780469277190600201927456811509128293476481955060734719956691003859546368603181542698706262939315526174825922512511891067800466610293707019757486756024011209442119491036235769625094864450787610362003170958380501340952171536066148364755746490083261041576358350346241808214026519504149194048888308964155045634528260664202237994638172110983528949058525015494448131413967930017564978460248573769498946482637542363303827846762517086837624996478304087982811438459526765878150993044246874922752194526691992659905052627597980705763400136248363442781851086773614107434367663552740768986114011028047909061378657269772159617488849616673859593022775456816999348230765076413170187035059087822661255736212863942809412204344293552431008082034993843793266722564085980447235345378351587755517020683586314011919332773495511526464425198560273809815642227276894645189514820753049164077740151069287043278955565758763686244249394425343299372024475134104428517937740385374535207378839482155718643072964071215116540038688730467966878844728845440546002776980471204586387973135791287970605056223574490344812551706890439569671193178461286788998310927143741030357242162826735323636784315739408388455556630503569280586650837130618836375505165698952646226393102188618913666304517659587109032599219056515444178162155901102485076079009029120832192925401906207593869254591791074271574574743049439014855731827455707783632986704012032462619591775467477934720194888487765934300872506453139671814295568295172531820170654160729157184221885079454332377165361361591267249307361107913309472930128333674814539081300807876862931590180323712858517682657538265573102706475609441051996383537362861451886071904464704017813199976197898163096504856282096146947910523925062293361651306974795605647303559082833524919671568804294729880033962143005710345534583367000459653783986598564908070208032314853445605583157910231768312158320054142615913685038100429293118966047537058261476351137481039637977775004298660551917310691499915197039175233579256700323177729940140982676805396940529280648916524753759054832688661615142903035647946702559016664661470698344842727166654061387040585937234811833775949575652435128332761211665260974864412560263228402217057645311449945034742967976171586972264198525300478329137005601151963716548243054788346171799017765040612362108931701851005450448390229242394629999921963722520713621153975541792912515197774851148017488010612670078019865979610069623541825285896788688292783267272227954375479922438975823630848959151647550923215950363992016615213212966123396204670517390256803662999867146577993807626101850610183162895121657849081604742268326955695737550026471357597208777801248458772550815713256240523759203332233009738697426924468707268766582736198413704459554660463074401160255405757290629366745288109894402001945809336457007771828660147586946017332084167778503329155134072534509550183632674262641307799511409334450767997202729040554820527391076775606542857629127834948649838156072831503442910079887928605796076112036610056095025157221811008579691044988381760509219190034459580239756611169683231053826491620319661534568917459156928332439264517883542883225734300123204350707441902324631633121735447749859725568258521017686076214585000393154019901337238778017131820926237010118758480146529867503838910411093960143292665525850913039764497070275222891568808146544976821597789024482598331945324717451979212321817035294048233195330563106731185012575688141350182200170783310332462152465702469325800480628363959064711980168627091056736801619533946249590916936760464416063041469036426211562908839605783629550446634857714303680646897121043592091982547986691223138069712749049740253828191563470547328868355773775785537613941654517673301985885361230541436214451564515362604854724780970217177991142088224768665288687773974129880210606553238920268648755764548000674233536132112013856095366549421049277820984573906636372800252627303148869425542606831066977539398257202692853884692947317965725635197041278424117684331341977508147016125851932939253601237207398527795656830371327773066050082369336767122921214037182169780173097117087089166328988727892171088377194062035538007951164134877179038422804423271439773893486283952585108543448059370763223633487515413017211949474443089752133400011566750429901869708073837722630370946070198269697406235028431828197753734591501080041511512105253557037359300150190161017851244874715328375885423761419020852793106463271019494097850711558024658390904000342586271886856159888063797466801641009856223979273372091274931670730134005401954400394839433403158814755413030127273033452684094070617583177235192271972078219693842272543349666201537709675033705295517001409642629214708096214719308598422235669268827312919765232801967498572579609602473884871374852376090836259914996676124595479738389012791990239879173898842212717104390424338964131656334430068569836541303839458604454881961322167336722863326557475378534973796383768891845416410608628958220629252712690953395547624067933975829090295349468710438776484424545259510627188352509400590494468556753880388428434033194796923401712703767250585859197692462000400200181972637191524253963403553039016183165579984102632160314175511989273288434271511688518241406005139855126239593914485206920172564656720306472420583778855047279339137989608378847826920913829872726839140128648485666760703727428512680371726821916689382650925215343985440501679662719319938162720002338423282990919498881448652121329153692521249223709815129614345102246537705266351049840461897221502762197173859844018133055187416965977951213575978344343723500555937254479354971827010250786210232242419463464097426894151203494356892869938712565027021297018204539553071830429200876683617073330267147468253957854558129828057316554965077261380002158537799669608600174822699023388329837675595878429714659516171140341466787833755798800113610703664032017056937948802075080176906857986086957495344709638517128399222174013255900007781556019557952943240303996064328380570032125441196812022848266749972135250384361110588336470032810227625551874417277162827046027444714466064280559424928773759132011574866436887814404605472125757210747570810849886689008344286417187914543650904825274423262326573643260033615345574283895996783387803977675250023707355335623610886281316525807078352469527402110107319469495026163721179957899111543995929678285692564609951381610497675370841313210040053401119296170305315577451302522200241610827187759770730258356030596396344866365831206488495288897367445620141948108011023032508462491723820191491919341167258177079779619025179497385352905921622346852927448202262934833799264698228882986945439782177539208224124096853138399255747677886627507587324359326400944160941655656645096499883209339740188017706615929700300135463797940992650264487291867832419256316840262403027509968579885672017739768198015844707378782296710497714081821406471656437739070720256395337426562898851733722431897842853967170475087538708390405375814866558307024309232808158712314119496070020390197134098585733103043846085244230638374754139741020336207841269022416407303583109908370729591284306278603109330814339056162317749555180434019192618853752542738267886104668117864637841740523946692441179829419826347396448518824885899965202055262481278825629737455805830084631436334109505672637599701465447417354405639958636875739160324426933038779747367091168752417863087860232877749566155752091698727921898082757313851923871898919504107288881719085489644586707172791647692594564165421453440561330097690357945990952944059586310457329894017213908372415779999415820146455713974625240601998648361280100929884505601560276053627509176213967957980866425165547604555388945352558585579934118863134664693709903507966202825889749721452134758584514154048940825442836769384007862343853318715904824240956300781496370761082907447816259377321929361349127730174690037441507356109732099799931978580491422315181685957627912548636070573937433466805495453714637083396811001354545971698945917877108494003593796685615991729165512471115466104326102415377109667326094175197062585879920292564411034423385975356841214670483897306943122998014352184229659937696293911289787588307986472886112849484121509348389482263589869228889702737284179973971053694094110965174256558842839429698448219767158437642687290520306645799450389878465695812920037878962319243704942754125836568050821474871726671280098222851685036232809188511398456953127892138059631831134966880018524085962614316606222598191885037199250085584817333562885388886960725924085438223665424416748838809574044409072002236516540481120970245448864610628435657404160663791173564575423413893101953883979990646892672006926515253306310002655770451786660509180178412261117146978454782416325101417640093328861439010266246041830067457078323215770579469341946495399626433369601329417910816169590533980269331059579044449476355229887477911745072930773029968295286512020831104345708581774784267593378810960592297299303795471616011304885464002367428844076910707704474033372747287479414501747774834748277994780967455069477982830173700942411428139743657927394704369563352984330618077550240999622560973723131773733579102213347649848120689434834833639747392987320480165192884367238966554344491404137686178083795248367670815803543564373018118566085017402307040634785938884007677001791480826783534767890680452110800096264820462079895681569268368354464186155301314250888243723085164979614506802040760387562206203792098922246275998916753266241283151082716169849396319430842385217308566965777286462426871097587920321937269219348038964530475210151295884478807710768201512977963688226877326564749470439253856222795070277173868444436776036648191242809210539113996327896887563473551449519153434369717558042930482374741135260551365781788738639580023831209267668358593991464669790728019039768730117592777586960232721805835215613711317012754268745445046668264406066447442633396750008143908602261219464470001844935950146042741111337951860020688869449560346165622171538273172123682060215404053875130123032930720231416603064427645478047524742615273322657707536494031649563756256520260348059771353316142063578552582317684545267767509919190518152301170164005418433464970575939166933032516397817495525349958468504152069302268153278160782137019273951498590772649448413283394290824631867328876103244736201456355608290928616041127369387156347928537833821948592932756871102145130293606108906731327443235302137632202082956780322285351121343267003522924992812770396079608418159794101583636200824187938056427819492110051049009324158545611574459780768783148072045041895730493818642112188873123368556053520373176556063312811115703363466637549050592101890895533355315141601249704244145131882817146777943080375296139426760754365432318419469047734580026997561171355974040705549394872743858365563623671566820047033425857913809609701060539892219314266456941267525606016952942267492742573519302271275004878823350011969007249228734744290169870562410021132905259660163284397693598825642133814478539385532457064096237757560684960183003782449210159293942144799537166423629831799926443586649538473202497305785387457043357695390659072373849591781606646178407307575631901588763417098259274942794577742815323292985482686972669042417781378223608582282657221571525011663631690536871190390481881048357907250779948381583966784557654372132860502170553374881688474335913650980459476217301007574271673584996083201903746471034187777841364394302050567015579150983777044948311703953994067777242293997531729562368688068258333595075007253202041829895282750642574201423299816221861505909988032074087790777377719064785933333410627192559115383806928955214770291149990581068355070279864239989329353319128822963876826738600559610960673642235012188457217426418503120224060967312378478847599131087070103567141419546596145266598441569704129366058277704077209744960056700770028565145514138193911831057008974893414492908048576404506944891515935760319240589883528845246706145892313252281475303041302499877481456867939114762266292155360173647852938493965994361547626142480299747407553102234232001406236936708738614376665032586079202891026261175112530063567394185461038156441583204277314667494122913837237263763241576120300439935350483946444025505315839178196703004596258634810164441651274164329758508773812955297111538380561139118201655242762441239857646009107021919628393735244216873073878793031516217338388557959418622235680543705589217416993993506743283689142955053115460774487127375980983250775179115804449301414465188764830127460351644382041023650099779359083495123322807756947584892760827739366128349726093331285934640241399402748223314829633742719991416093520213554306473220443318249633161114081450792565095395302120762555476218410600410104747845336947032976642236819009035526991241610012193901484876638827707831836580515305398484514365527399452681250616530033890717473882624520503832917383349422694386140261154196579799303762288710527164592512472343831161602250864655966458832155786177918055540222735210814554867889018458659592503152454259400948745229356366734958816663253707651144565367004543540223528879439517251369049208262472074468674221121172029947754281351183258467329779188322428912486210331551076671842249642504501821917324767581047297942857345698914540425976614007861706219064532110298598618687850100318338353417803076782668299761006542950540156151973711627289044612159088463522747560068890262831872184812332339833477521042794025989508990569486917896378998215946107322313839839635862121932065713423115032879212129373650518437773788611796416256296639570059280999734293535094867182661482741385896903847680077822624342717841369873907963275036221759529495658218435735894189185290242433382501289680866617045257904948100220732885435664472711374384224862902996479812899123669324259575249109864438330608566957403345297067086621548457277916329755383807741293852100313127932596678129580081832049239490104128650537580999534171090588287998600644048413550436240533460557484954950444716758825279677791594784351327133453052423011688189430874889107088555859744024680148076045288564950169878922843674696379145118778928717990661617138675682076170466730962085379956030018325669963499537715351494454999872356832976341513744534365857223011740969375141330025544430927161511985131207595801446816745548060051160950829718849864592829712652832763704518907068933943224904902889590257717795841004097675867917174885403299397106915205689236011937170298429140135321940194289939837156273017493147276315361278086827952859642758492576561916651336247828406154772012620748315535719239760934487572629784198335293390167805283671867679148283226368675183452167855703399518623165872583171488376596572242343751547681501859320317749956937204981720360633540268711150232802553805205523806627288972153560848761186752212641780743758478509569182507864032460455774810476393899397063959657859292768025184136048430984691624352573392206016787110541780823782956490999822316983219298898219170303724619128768177839513009452596587563242898919627584296194689827652257083661094880189768971258533880885921374222841206708812963835035207180224566655239617911468605522868906164578450831290876873457621619671499182483971238449142684375494040443941650531407486832634816189540461745783671418113021448102799061474559092676247564604704812742704349178027386523033870031088464033367994298967705781604691006451265126278019644209323899332126445043040637969494508948093817530998443008177941173540599321245590735633446878473448443907762853213486935718810382803150156883170482831260380999398338643060867640982135701074479350017262242228805199241860304277382240577869447144626275418639256733386614920232939529235059076436055596765339336701666990322224271325331808155143603346152320853226751612096409738775964827987684547680021550756049226711377427417837759836182294380737186994685469082283060478996071277155598451538922765135006351445795748719260596828869399085503949942443093601199508381437173257824439706804437631948640763751114865332998333779399380048436950565727607687675059565320554030000215549881743919871741809074893099725554039445617555857157673928449995083566071673275040510105272512185543235616375547625606816671286192935699649869069511566782345321677244886651827623500242429914153869041451959314460062315080471734566158317634452587488916378409257080817079138476372106363948486370873005450952293313827625144191611743094976919427627333250746686172986617486584844408640744647100711974245858409210159294002562711600513450348868834265406392924849154702988667520749079767867631548383922043154418804828519393434635597537081859538345402282495366253183296216101832183400321059106203247371757426021567718050905105979895173886153793540342056995232016208475735012710383074473858601238168029788537186182727372446599394823306752737007713758520332050980865785005585278198677542109990340359651919111137925657984897695311232320058685568083333845199623883416968057789629016465169430297817228205704575305402738917712967647225666863873601514379271165095923582355999861642746997615529885138776837407962867634279902171079851544156666022328981504101631217379761427473957128736182273898360985518014729002233571948606115401272125326951113179458702308004579510852072557677432849244840696989370639733836674162679239221232804878992929270049023624734742841003118054157038639264456299522665696663973398965351390752728942358498321943709048117704762766766231461198867330859067662455856731822107113183596981706121792549183217741182299161075035302276056446807265945059066226588368070987916468610674216943402564274384724721332030780325515935460003415877388872695491756888995951604791319697146572832065383034075820970893265284459078924305689106592898140394325577199837888580737341881174848386715008911298835369277162724980679547015397940784779723308811351044001964392925527222108705771441998259790531111467142596758209256634644472411754862210124505884391514001610778920426086404850689274702458849634088990435799273553089394067728915508588120052845243608658414538440257549420750719310777993934545765165203617275516855823685123202022245329471276886369069397421006492296340855990971981419592249259210328789546701802389064193928249189706975128748485813062808110377484214846089097226430856487403413181279815517845369305273177769573247814692172435809048149668988786975595314886181159493207563633150065799248813642232611652409234064911137840240816378751839750391137679952502178419016734836860591868158377237089622756464926859930878050108090311032343999558073060453708258054920470168834191223649942742410454574251463172945238702381863232974603024406231109393598745869992296561123466788728927100017994631394379296341665090083843770013259053961738367447329953059014762032647379778109687136150841100994087001378960677311370010721037494453776703013473036489492078868137825864287383146016405996853249183132898658302191551513166201291123035039185272708853125329671597895597825634803683607326789110854611697687174748955401907225587777413838000498556141525149067236300144727507301829089558805036578533000719054230599394730942268316860641275763237579517975709458652912789015958950436727047035589426261409486584659155049730243451740209845015623725881718218956293880263896132315862267017054129477506444976507626597989065343387962050257930742312574871708871524101724685438410208273327004984157167516497843738389105245631608486276101829729590848673401104546084709757652504141662608321641212086802502087348786738117007141030183801784840144391819854025900164500032687144298516700654601297266866003225872027278213132860443694398658478974584580499348914100425529811739799124028536875801556514733108472807025836051739626914060442788108714810222366718874475960137995893305615995801793661870538419140285992411631610419221225385567539960532887512698349156530851453435530038676746622985744217085119070388295830594125453322994560430336318407754092367527679025944117194349519819046828150699340669005734088365076577507523745856805521650036871895514789857695354199548803609259335882978809454057166363043204453305599869546765531144410549983521538479518714922563933268779403357266002215581213676045045942738257754762990764725509619149563542014846208583651726787936544115881481818534521761649864172755138322310300927895989985668990156471137587250706546973587258934839210835652419439286309500388507478305866590720002257700910866640916951339897954745498744509492585080681818425882583592115465014756102699413193065916129631295019570997352285082056461973999144945044845456764926720059679278381084204015015517629056601910331975453648781893763324029988219347572445262055144248185559948158280572350158883215072509033295167881932218952683557611177033420921996991688496979699606696416722004262910740925124832944599064472554451297185837168588184975568004729556957309771714716393398086766670280827444968450876351795001054774907706938618122846872877711286566891411741747750691235467221428031972197170500300542264388288841137934513880667892834028748413430037943664471461363668027620924048649616112319427635870073897379197599285567774887088776006666596809399116838774347255241539541666430456144166777548549889703056554685697197821325550135705317568095341190245986987452964508793398171371489374047123561644719676286301673678689409974374008194019579511454843293969261723065443303840403766543280634168790412138309743220485972051576570887259897042178597143842724729214393976079474391974403302811412759812094937130613788213440337635224827883746896927934532321638195773240568638147616962943746797741929911057578287946582139535284491307002164008719397186255822323245311534927474975524413959638583851081284830596467721594175404757117821546480132524908712032158189296499423269730442403117539701673064710479864783155233886090280110526259990757259997199730181578474439889034743983193310384428106394900859515986494852554457828678561380342090741092452251973916584180706794349571543285871194258749960269807718081890409235092387855102415172992439552900419156894358291751180658999166696987337209259551234341611901824485192194596790469374053387303012120894550548923441203949116407972070703575771092835268900135598026691967409534893364883050729009334089623840339217514357637619088863449484061927237749329040782490434583781190796516101729286501435753471407274093133199245062854777939920941095028968533488553403633747941604008324609705708378347616679863220492617217881321242808714319287760956457462215225836399680160427411614023245784428028829473412560037327182035417338690642599356541794502706445994600416558596207777008743969066690119888109104415587853586812067750583758081081981279053205717709487719713053835210050199895582467208897222055931566776276760154900054327658105615016181554026848096034776154456539141691189618523877665144804231611750134992210756651951256474390626300097026512182907826051596677362262662702396535950866931461552952728713836681601013373143685906002009960585545610370690557704897106367316242847485099480858361508264136201836066292703958227010519822295158578555639860204492907624349049360854599241530353613913762571599890722539705891342891053457980041594214301502888566957893235144549420851162321348955635922385371438812152614163369608460381478160072065200876324163955018149928806167141431036114266093603755775331986101848393502713124614590514662090651014661329986373235067568509533775816380452267872272791680680948882707091236500738048409760669564752207784883055466382046624600945395840581596831057941034359230058850339605905524269265540439967947219485486476125581303038283210557791579155170224646816126450567767873256431309533990533672002875094776258419812326516101341900911959740450450595929789445864816935067455281417196955431275757967598023295645278140376914064008455434854038790271561486171961413754294847495162237879117485035618408514396324096654336628901524099853562936535339072247875196651332571494861867389037470086166957206585050868010864061138937239627485525017501885086120789378835684726317870106602122949790627963334134250655142561989960190235716505934909284990114126562251470516163908478583549728471312838896102146679627100807774309711697482842667241681110860412713368556804337798349617611139261794501691414760353544476705728449974751937824462032023869381075530379461429071179607336582466621734115404451766313276781254563508958788128100417727136664849612291313763579934845953714253088439945753889905084664865894847067961423147166577909867838242690746604099269830501053418358063553397660553353464139537541874770464433681840888900136466617290022770755863640207238940341602779481656043061223806011975864475116109518208357526040955474567322315407476524195497964732788951761016029818083893173003673641073855425319992377371681903903172332689810486609619011638472566450465914610735223532899568309815831492600350929305485020749877408791475164862962855293796088165046634211124826401979948060757603382485721619372473331105288554597157870482791829398499361792365771983851096686859572960680165160518505639569531329051224073457286827748899049617175772625282649736543386166564158719976389291361352345642576156752986863470190438237842717403135447226856205854856056349084003994231819906844041917146835797234861713304688567689087387936528051476983802139235800692854102503580625799545627238799578107776890025069639951662479088411375884694859521624409007073361418966664459567639493967039110477166447486642628737551388193490692781252334145403147084814837391547014636925486297777221753211078269017097733665898822333016136907850033789635456557526295783083787963934514096288438355421640754525823047583022307550691201091362780609415514391424566436183738299252293717611467674623959143346752275480213580724078093116145184314575206387660267655828078310844180541298882616437554415921781526510341402621862049710886396061356620573765941902732921592289271823226265770403253015340340475616646163487795995016217457472740977472718212006954270676192707598291995961423058061776613229462463550933461783763071830108024908864937013990330987695381471847738156967177435479000047558035525436164597347533232610319576176323462403551261926692544451626264380365345948287722301713492826756474985447368710048837594081484691161107059822209726688397700769069127928548489746498459321425135622797233723994505840237970927049063643166588936286661176544046600279203602672306802276013950408451644332463117314519349584603615921245958135808409393908992591787049046478639555255258941132462826381838011464428733682131783087944296238748086044549309846473550015522411905864201732013406057110537917621477803968037805657074399549334761878003680280092705009456755170793890045768458251530097070226725910934762315631010526190449262047641408114162241031003267999144228046278504708550908569296535266344518929993353620511346391080293727156098767053498366732506000166281623681067715928796749849671077862552565350291331744101574618969043569617169805607518013069032396829339372011438847729495263959166007138534870508972436551802993676201736435164825586530605384212744134477878026767208707616097748757493649515896975661971252936063129709926633155670768069036012376794920788643785749300479917320173895911537559825491591988895949169676220242617190513496058888371997198861448518025005034659959212507917777364759753685556136188921538535424436083514588973436478731881950242167350816218572410642902174006293727784184817617696857810715948492642552926358796354902927088802126455314886831251143306134453914756738243178641821023783192440861640850147519794050694596041182126247592307154083780690903844826426609524327612398782073474810387968829658436645380730379238029454746209071188280479174592849848080460543787005637362735023667985864001529734629278085524671749836966549336992461242692141644988449293365733400265469602348279306932242254952176232477423997479785927287817255193539800285499220231038742527489035405490630986248442515472931414787937129476766663940240926304088761274483544365204613160007679166473793044868004674704073066981636555403829429282711944038348845519329623943540580747548465887826809633067812748107904592461030518876627891298617758052326565917976776068072712407866646519807717287887077571018839699947570533031532567114778638870208778150663194774603505868340691343614722843325284986715106166078704662745182840472334372093316856589881158179196865710383168840616793485868985142212961782395552360618865859869818322064690530422502817245725629612781212312381500940738882198666905572578010052501001865737749511998001727238392895243204477064800255988450191692345251974605816349214268194673018805542450249622500056161617810588739959311906455083156943511916415213379106454152792030549105755337326799768236310310587333700661117724188382974268977546339846085805953967700732429718493165305485693252449909690011703004285576305123816626270025202514652604853550215897929791075452047875776310640548587411921255787525603146186490661205318273737124040237531801375032822615167763733606095308585735868089184913762158117188482321889405326302796342805908163504582022284253267297495850071754308313366453072107499809768138373812301699947397738925891332698855640064329665345428000171552374749073720072562100920360492758325397266774426215869333623378357299920452392927742487204364723242695065853155583699668970320967511191040182110777935679374810796065702057549018737502527057164144112281861017437167114649855544964505929503072443054573029504641948205746269658823301413133224533555586711976513881810407949977305418301360106318134999505969521771367119096023248648191150334257521206506221204495166509580824654447033008629603427925517635403939378502041482681500934705550141445136387969550414603330503555353254627210435920375668647301068468625280448490899544326160258528082185110314557441085967549431251596925056690720382950035946964211486593974290514482941910402491872482265190194131400536358946424565706707096852029133471095997162910539755492670526013614895180246616837824437700080510706974051422278016492795395506652208341255681703235595357204835145814127235498117733747849952362066570141936549994387060647874474498849381605036568511815852171947172345342656525031396494670709137625211702523398753517196730256721902969332329818031530426761062651225312210075575461944815557688177006116608894242138041125756054917472152930157621090377841032210874455487329527758995819761738015184914894046319455637248850083613508805936338206940751611357118412241815438961463892246972392086481614564046461829556284361518441497453417823522863126000703266261410659224949398450356065248916047270718613110392756241734959477143837094584519233440090253776670684774610886173361631152907633971004463140723104076849910206923438097761393709476696332467208073288745105937589039282059503208739980937117443375100300849567211525100484611137456642148440316879067689820938895037085112846216786452235178552028002644647082028862258405232100308433318027200655588541474759883673013183383574638187318555896185011492273347233629263413587728813913936266862776028976471161743622718443921043642544197374171190814222589085547830919269898657178462608691246729227732666868180689983013573671243312086988214949695572133623868686775958154824885905334578535659299944940666883572641324337413870609895632622932132365298682923657977137703004761540277475011331707583126645550337464777349048780744089261087444977752260411988474164608335738590945377312921646136088735267246295566289300552123365003515394107853975596485154871410213794123671012082560491192052604664447031124566286570452532841700356165110981186269207349827742853020164590310886286059715211655510715717341709943715346907719953953100922452688299030784244258715137839848916818748080198243937819620972912752490855403427287841068672204417876831125592579272918678020567533186778954487856823839349267775734294606658993495185688871933000220873698260272755550813300630297791199064881030523813782771886807454922307445763264654207594198380964757855215842129909675236111603570221698766839554308710759450177558458976137419467200121411065791664468632014797758382239216948813758590718583081430748379660072755258724431465782860822545626597514560155386515043201444761900491972146977874968971515658667650707768563923720679314066826506685832089475290107899073365808017665336732867002473713983894949954997303106009964673638822791856413383946309645337729410550835703418432143539830232455858891942290794321316884606810939532449382161698799412336146626663101474492623494429753771836020253160540278592899408663536756986292751693160497620318055145558724164657837638158185364116020564575204264839138130496390793476931973548976184332338606019311488585973214047378319470447225281246639541707919725614228518835719048302431866285787510869602541280240023466668595806755416944052262940998345079216017926948671944765909512405975715166854206865838879177387059206560784961804229759042746878502876777217390030071007603097814868585630410204860864468128064151034708913700492481058709415264058478020764181681035640842364185564740263012597263912342249175172221606911139329978778415636392347583930722236577872510919562484927275669004577441988825300169978880635051063712122627330082976406530814377027549892924571280113742222873560801695996339783300039946959135733892163775680503359473299226620112170899586164931633154253984444124169429646530330453143839125237489631801272299247958980740543844102858082665018151915157299848069752254803745598403639998408891934433587421677068720270316368222091168253259892369921381028402650487051058711751358262173043551053656892601221304771951173445883958443059000322978275888284264561954505564650306707872406369894735321365034410736209222696621341166579595470942626001808027646108818745129061220014760035388856814732568801064876587323772385514510632716729900289814025273871254824335707998662767620537265541233219250196901946493253758590782983492508135261198332035523730370919088790614240041378314787515159722859363591858329196541078047680380017824674383480780037813747014975503019282459168782002385359678810123633274704896452834664459566982265120037151623945517617653716334115816769904765383434968334109555556305505951975890180323654336189792559085795842509059929976191447374148237325925721571937657183512824671580120376820197696763535730752999696969232456057732727986166268785110004449040891261097838112408218960459134723826350469020303656975862246663553228604686456210797451928631386211963497785734967630950462995921996683076452110387794266205632933532406801742022010034933205176198524549726275132272281379647107080025471879519316807423800954921993366600651782150463995173102809901639006328574633856411551163775837819864716992717988317663695855299388996392915697503677843802734751929537731167571975649348457977934717774125970360294121719182655811726655301920010389841936470514145424834628590370748866563995695117520382243388193072340728735441603292146799930342670795840832967710282684065638372803727539458544210486807804616474444174208707241478000459380775375750240601479506838833177202050034861421649242612890207954487950277179945360086486198074977326645395329715650794814549027872804115160356643683889270940112571332875864615522030105593006026407803433459341369154097730537908625007147840580441311761551704868522511754786814595736182576713112785173753313766076451297344601248172944651017466554440143631760216412932689100508149860620561579249320175072571655804304759527406365418162362371166335264118339973108707231320902103982746760536452881556122557678740270569375550333707153292793402462790304024905423020791449852024406925413549238902194719186330069471563340418210105470015349591097081038709977075241636450069481778620332167789255450785118244229433181856585808728457256957211106965881367392202804912833158422878501338111607285764872438402959998260612250028261318961135372137171421459131046879614002729620653199931893110402028681607474801341017937882469556220095372069041684668195680067402691005980312693525273866445028447004133723665960263358067764092659535329001532734738419293003302285081546756155726369023676967605692266256290260739972340576158781973324976996605351902051730450059059567224356223930515634871493359735010229561097690850855741217271203159506675034127115545394173930369896110028297720194995428614449646095993042772260673906953071905007213629206891574399685539309384842036636054989060436309249664927240170119064183166227854317708413937525655585702575783576301933493296606410823311502409783107203133442772105303428021366219673539813159498053957995479921497805897418148760723686447221724862313995274489257964742538293673313509253537099487280949941959337819088857242960032444410720551488595651716060586447869971940926915985752137511817988449759654639473508322219040648099713577936064072448688215148631399620956532587300347245798052709802387571743220729654676982627663131435314986023895426550887451752568992848562124181387317525181375080068961047747196495013951204867286045288890473061221814764408948658291447608476498337914587452817659079847984157779702240166807550618144156991978295503220012898109857967257993796500597873842234051703053658055484626510680263401155999686776102380144781982293647969153590146211992349037223138796734639964064058911307906965089249057884109087275171281788418724488867113041134745873333552727464763577684308480150729451259674254966273240845305994737396225298007598371106993002566874867543069465034586831571986651972971843781584854494705019110065782316349819625342633908158888256051254135131145922378950963869272447356001272970079655821718893214673964864679058535952998080304122182836693023537830039639607966595304958782163086864707465162910096812242740910148099859976573098246400835339626365231853232469276458318805483852195101236001971001821436177323430478122431157167834828951379094621625867221483595077112322278625491793028485758856698085343170541747882032022579623257304264426667329288354146262853832343413785403493887946170444122492285269690873240791063105989732007122561712420961473414771045255027841000707679155138702304106496833161301170789512155310304718231286982337255020095548410940682607248404244624017040486579046459766572407564941213772146947969827327547803435986422950538355777252080981560084605328308115677908586548945500537557703729385842697923643150833611976978036792066061359982838123239192458366545292786201255160441191817251145596181677887353641542466835981743623901487592481117609010086314471604949420640427592135100757373083256366937744598932072189263818354005618208881276489811643236143871745946756348854789599447784184759649148305332536674611018276086747005908451967367151026809673603246641990802041629551309550161002769419656409480670000395799970861418628703858242035553674881422514497391263156901017666790648653713830085903030350478177885988363149882509487519449818028331429027510785019336599916487203319180272236363790196755105695897757182671312167761112872161622540714188962067650376387514561110835599982391938097037577904294363113835589480401415974849051080173850101939722180361341892522428036804009065430792366114498110443740525835668685928975868605980382329293578358740681035094554692865820958453136167897271723014079750949595421051405816306812411926162140479380178170988900179160454307641234328810666097433844588765756555487061971203453384561720571082524057783490622564297770375654048567563794573839690123601416963536796241586842571261423475361850281312387543909253014136748961234398891608237795266726639249417416600872803596070808526224983792054896531404346394855116351935840313800934775698289816402080616466896073072273203212994105679843601606105729040947888697117187551852853208868311135918361231848397455326868908288862333605125009262358392706844696557810898310012768626312272657659905729142684971931720511088618515207837875776672483231277235328575953376648067319595067844017772443784197115627396003892437899599211376843272469695093734548027841657269126882942823974348505920207786170598083968064326415147201829039727047554754381303149077631555536168878985629726502075149369272111272254728669908474305156239446096324908152111550911813538695744084428251912567784220417298839018757380926093623946673451261836905049305094045188755737095511475738922611450604113876027332333775838666122755261163653602995216123806410131482121726021502933325659560904478560272980864496698534532097051497791488519774228200913901976866710785000670729945923929978920225320021472158943272651747759529013015013016699897073299007580555037104389014859109226036733832277998536974623709523327559829968956823828249125670718696080743062303395927752658591994593104191045806087474579246416455319884035281569049332497399590111681455819320978804342715931098097928439044882738315243107931175132637440696136835509500926066428994045378930521769847512739501017616802170275365899506701659124270605295069302854762265185282241814903138655400758060100935438446588752312545959002435381583745709439749363247941566331832369124317853339297831169328301310717501389584695550693522447203765536515159953560387267587408196985295544492865057492809752684158878501203304103183714705637234411356591550034180661567957038000309978112774979079449052674752719860463592925936818605781467514942571304490125539103245762747223721530552661895319392363619424295673480183923831717948040824435474576091043570370621887285181312653105897890247875042686360521607489885361074040075106459412453843480875432826103468539904204017743973908981167303243411144482979325631792677318682561693530145082822639014070530181988910005435047381348570490217058892986387211119225508552179574963551277913234667768430669269370940708406740611726649216135093873764630145457181706394772554246133846004667402955573087447029128775005182531145011358816614923005939318053404150124434398508253206979611611853580107920442577032804825619936087713500608456553131649371673736099794779153417005338763288303699942292251175049787483788138771653611662296739080497292793959094693582599832964528142906282633262359004124324033792996105319443666531254175060969340906895606977917338609237904933370395070230984508044614030441735872325503521775043636629710092726687147838065778540648713619457348467315243817647956788063252592542578322388140976232164949293917926617035452807507362495178934981357153722300706318345633465050820545101952242293428149200829558677069115310686063481654668378952600814979170525862053184376670755609142256014834600313958132579040263210727467713827943195464903012802713737518201044198742307127264711836832333174056233798156011338057931111576481427097000362612162713942640988575381992085342711803165785610819950254385852381971303367014340914526876849917314207275930087516384102456891134282935267690925822820222386044736099654276761963478089153838699126421234680015112957925267322057263317455110914878659514999089845374816072755970435719099801625135828093940348349552743718270178221184573755620858450186910475733038765201628421215753833648586266435627688000659301097000317411784378879204150567942164473045781541116361076670132750843791575906617501674321439660025258422435703407441490878187072758272266206613573314118510534478472626299936364711989530141973783776190404937985137611660772744189635124322962189725222666501182782860216278764586434898841142940148874686848675761330072590544741434354775806137883575724139827049930857657936624647214019331324155645763585723922055026804750842528380739282182540461692204956689163773957874217529633423920126404923901841335716346719362397274544854442109484644368293681863428256378724428758887677747808311353908955398255813715919014135748236157595943945845796321602029818060402269269810776682202412836855696536074794271078646259224965699906340476067642887072223404852737757931619873744340367096499246851809430866654890749618061275394842091990380131818014512421873414939222637022262203744592957774163010452630340210728969675779702944876993536281037994398218139793295251233426150001201266685338674904120440866624857790730110818363455157556332368634572942516550686050038120718246764143857479412743687946742490598191121908622148620521706586342730475131106226137440434312268105508941558234622276249501442731306557024171189505379394754858741108780780390086628459476669980718417039011009199386620406751396244690381686335122607068298972059807595016939276342560827512244371918579528578314912778732137079653750655677912447343780185686923822871870830172804307177919078191320928276167001651955005862988126116423981429794598716028600931562839629274407631001767514740306187520989269953632728984659172549027041454358053362068500094294859285994262652324109002856131527903499690207506623488523550658184199610018789973879341768229891512379064157079336190656242637570191937656718000205266086328046969056602466489469267523559511553718578018115102966835509878235190846033688215297865123413739400573362056155751922409851183962252664628486987804487724367028636844127757809529239406614346703493154237696983681788547561312984814629240831669931385513005976071691970714247239554254282752237993663824740199147052549830646279896437767460348034017574920187364104587161974367732829791625894538200068950468538207120586279185813785421627417436313211151965787366633723112146051721134588836225531332065940596426690727976857452331353627675262719959399957683226361655658955983547974143748766858137340085604226951739871630590440336541605489713491472899147253276470137445248328151273476092116173423710250552032795570600295395220530833085581302769494034574708465569748014513767344999199606019568789225626671456786305281781094338067342526567006516099823248532152487428329513306038717790801212848328864659026748032529399633500658948702926028412109330624330246081304431220889103849547247440285261223930645745036470757176222253933808786378350110810550276196903106631122157160194822631701761070911344858523347881330176836865483489205439166226322648129916333369010263360900458470012381572579754706446214728180167088872005291896963994553140827269674911836191175219777307141547561827958977785067795832159405836290426532927609535971141912974517526317509546288716047721067320320781102617352701354504079303261928509338650396108714739257183827938038575909579489498322536546889649245290022584480076111039109395482504039823328786908161265315985603759175336454597317746650542316593589471940342619618017029870561987156755385069407951402651478919121164354468654312389037595456277587346588468345049717776708840949538060844832640691472192313872488083977371680834663225756943401972654132127231070089227395322034178930058349893492849523485077493317455227754589600721045410392188223611821452292747400298522086801523436433555166356176548911049553058471791091940791147287682008632287694977713503054049479837606910816315283229128538697423084459691165942079093316330320262988094685119353654557553382330108375562554016506635971644970935024765629020753453669683199490342754775965982448232388236009309797636076213164066169157659468626699640741543830728196384019651912457539285821285868799329871052044268633512715124779976064477877676370992549469545450371151513689725092334281531003549417580927091913076646091764822102704902099909395362552429789587358116980689573137942856387773564346181681747695964727007554535210158590417293002256423042271466123787969181307773753639442179123493240366405840321294717770649260442987058123101829746759267179393840515222276964073298318887333360359405365935448217947558070142345886329342422395810246467819421288756779675900030975305553017375505349226113894265589403144132233236141601415536290298110573930590142287151513713721428593854649438513851596929140751757150487188999391639771110153143705143602206962771173429041953882423970375392494095780810024358067050207794617915095571263043041268572008379103722966656145837967826759028634909329749476141742957133654340643278158132454177636453546662914007207626040627496377090066935396334827042705130472524147566499278300939943810046508213667963160093778220322725759392024940228544624583936820483116258022724151199075760411805884291045240231621965651057314568876879840760355231820289329339277529700294645886757804021464759481444254941303084701636818383992604256722995421312949357787826673868515629097366378359221489212997545280524481597086079456136484428047313052029896315760800186040085156221640352998138422588650352396872558504396462586184337686122187305305887621211325260539551700116116007045498562704792503211170937954951889836347101841621606924216592889455172613349796957602216007528312909284833956403547919839278559353497134142862542919553631130971793491030326892338842213126256769386251010746897091727506581332868505103566411301347019938200018816693560839491987190282976604016418060916529882881102867522777597772232252477806912505542798095005258827595634610923915436626733046149906517163427864412285270242218462746244141812576505391690548379815958572167395371417375921537058695034870201097890684213994952227286035815403105737405169503124857023420741014283430544222796044509828952177098595516697938937005449711254623372980279621003471837453625011748662496509807266460712001295270724685177814041269294535864454974521657499186022326382188923560900059924519800117621386946534072365707652408243598599469293199908979631419248396556391992447378128513751377707901153986849472719340647996271093663943641931866390667968564756494478255365581816833208157466251915775783648018604824031332841542041360817947654822924091191240998010272624855914436149550843500376961778401073183435827110052357959824509256276206204621310203650890441523187155935307986658691010925399523993510125394428368254212338093983545077425743359440689987663696375420755205686816966393441792337541594284482294434377247331278105101989700829715435834119481200918893959259966739946929547220834000685278942103066618663899859904577889288068970607210594831377238825651373297842818057561107245727998468148180514132188849487638855606143665762047318155027960707726208308222428046456427643951934590788795579340394225013841271666123822964026930482020751599636353383169967238814241564668093488542919315093830369724619602451562444287365062824538260933341216279840964997438885680907847110279755151618561270071389576777074311756763608150732029487832399359837590071596376867878527167331665236771432876002616226550259026562439799242293871320248344836872678704460451917688090741635391887899646926643963156411634527436795390830190556023396002901258618881839598338044049239579711622748702919518957079024211604328396006122223454446592464973819483985165535451433304402790641630001938936222237163084319738619336688927415808403342714031280820307230047833612001007235199389149948859682187328911573451677046766875583721633508500018671580983654521435761318915762406229839312316732011289159512480184887335734814221499881878587710708489427479781278040327411274191998998790664056334981552727232122383869038610660682015964904143956728701981837551717531128684807562732959249262241978368386941346168532877585190173114617675660001445281987067099784043787324462073231110122713502750762961425630319355532354791134401440310738864009805231536030778878857387945529149423835405462866539700366607831394204775171568788678166740658239528456790187164819962898300593784575736093829560058973112639350607418306885097370908606064207192470805575648355245178143115391446441152996611687132885573026068809133400251160602834293320559598820630033717325310574089921896148837667156427400766247802206272226948528828296378165665866077503121809643970882621783755726850623580735466117702763021332475773699646010943305727466210548214451433276834582706648418073112277952411581444283668294504803480382206033392431425422960804729319175537587241072907169685285411751650460884448708122555339195350206628117220132121583469052072735612304472306142796928275192643976173270451193414378954556445445461941962404935874361145647592193069994769815759426082392950824266994463906728481665332122382421718310930270298686483762583051923167819242607030995306231708261113102108140055236294711182688838040935885061455449644116562359538091090270603140010993376958156837297590544305801484741846733924324384662034799890758277982638692136307190648425840607967590936271513780288089739450724860262450686085741798200916002521422759145609612996153521156443285843703204876702759946916386761486539865771389330395839560982566415345768351333157997909566143459580515056587625009310157600558232906698038127110959188928651422099279652036230884072855538731722093473922743130233248225797865587282055681845541466715550425658743232901490376937819991376452600004455910189887145881558977719390915944067553515405934394772911504741748819727119008187896360148756115839294690892656492157119279463677853831420049605254570685423458500101094790345945010787402429936873624060845023625145007944672199497941353598126364526821626804728205634980707252491989770823225850049023769155035097744039870413312121140545835641247679486022150949442161735947406015018607646765298310654371037411542499395050779009125380882239592747508488405757786564029644678435409552172076416944578529079046823837072607964947407101530904076268069709667865513445996159847233757242254145516948905270522634104928810948886195364858312154145476182110645912202525233512467134161669147288330443241042931897234132224033679411771396577996901308134381182612456411702477078238359281397116021418774363982958744002224023858693922927820132217844487232927204122072368344386863492513620070602965079715095214523143024456144604122746951830278543893058104064285631825557023497583442771634320758070028533008059409528141202974065913679308252228384404137306367870115825754809105302323306807312676288457029363090659048737861224259337482415821487748811304250879105784866828276232484083265287569640931446507909774597753669233296483660476440180276924386790418104750230746499473393755863915159598811610982868236866535649971162257644997592432622655593509498627349534803105275595578624068519197112856627442286548187823204679356930263624233766141917240005859213260090315162820390038128405838574358533888920705268283714738088325618248849265165729524306354649446566625040655067566682897117418350086737934144752882932734347994043827518649373225354198392352116904609022630026220046836177298819792807054514349171168517580739231457952088414772016291912559909016025912192628360057280448399369096404312660952349457851964430358085076920041895972124289196017209679562743453706612178554750684386911513736904853137133510550390302376107516950306363669019685587711748162540169615591408020184242342021437280661364386692794190930231352543094259381829988525735664627729268220522123894373897051769962163243804686641294867175841559772570243014337725918388887540613708478847071044839220323216517563386314525386260568156461176934989223062249549159543221731586183393699802285698757402557530087377042017391220070698950285319179322323166372141496318721573006689515823804532550225708497658363566571672189623927579803407601978140428743923337784720040754829840198624161502663725275122959578995195523984499134122127404796335253370862481588267889632416120730300231662401714967015277551056459213559724162014437099620560685940702970028346756692214008416569065355580060026800900672303852871065820631325342553261303166849160446195960722293105960132932775261344685865082564050543288484773164546904982132048814486523976241370192786542918489095856467239861061381379801247578073917988725161030178490875034577654961542568713739486351179461970904463501569788651172080912725396339960090539787075935463069079169701338510156476372301237747738769565905225238954468748998891368598108055751383762906759226005882815406307264000746661984604263409491951267463920521126341770812135019327602571757986946558644360064550298161020289466954388282385471829895972826525475393901894801100183306731697079272867829063146048189120255549890817937595903163850783516390366009178585075295661623430213305809946798312201889700397124697361535026553301607256209700247980120124814551485940725829580884759948752105167565534715409922720290042894621548674580143006066657118260582887013650180495385338186808566544925118970082858521658351362864911107352702213305058019342757607707262648063325146107049970352321618333046129142534701017878142133806746115946141385702818414648346548837044918293536522060197746108349204937540909904877932869741935289870936222076438563429232966371445572858305664855101109039578200399608645747685472670921220389438776277318736413100190888755940383322022678810007151476354315344354809781346077862387269293122919156271736634711584760846163579166392282523468124215135666237541708886486939636261259505814701472761211178070580457327503538202131325410225193046681026522289332956815503515963206038893569260198724022585075943444247223082656187765106777046920138960399030299471643908339372668424369966111191531459954235259814529338959558170885852429645263769105562320628735687924006020017525606199503000910152665443369206139277315348075597214504779522833777965957609502035210829211828212451558406462224689499509623331586316929453199761667362176655918146201973704483790571033477091522305905926372284250058278010687643913056696357700853434074939501698482610540948370749648541963859859555601777846045742490225472282051074256730181267346884146440757345270155141048740174561511715861513241463339041692528547642640132252108711137669255458866892443299810371910873199558642305085387059307737280758899643487052903332233953295956550038340601733592070772054631340011897345368255737107682326115567341178522747802182846468073275090734720337937661258849063377310707941946734259677853795813960914013510901370510234987860776626408228170719937141279134630761630093151795607285681569582643298605934027116827961681266281182328744113309267531933873818534845290040454452162852103278996888420545471827307393843083969991391063497128746235301705112687870148380426286180046345302262303778711088304741025133985650623132445694234059675324474767052893694968637948418183098529320002672970912357957877541238618653539094111139670149832476988245035920662019105310503930357356583046499801523982413927987065282389878436921173093856647002787726239033186516376726543658403835738139464881622410117381159726381665981401861792664850507914677304819617005779470041023958599000111817324855535132968320186302744302902618167022700209791038067463329630739830655470493203263792468543219480088778022600096919951162202307455865980857053032573271261002267831428925516195857921964233016356330370320122805502149174331837455297864071235078680500277178602407393174164380107302437616517232966626882339007443472060059173100680543179429136625439513502616057112609901915481501643439389414688457822442572790077096924766412743569130275346380116866059709056247439796861633325343907953014902025421286330655992186840601245140641907603025498075628645964170164197373790521962785674042411469748369129300196959990663865573256611526440693674769304635401984225631366320540757383274335980799797035612729009853289170297290578452124167155202473340336459860656756280054470529748568483662866522219617881173507976778681572196962079012386868622481213897441728295354483455626727062875068832574705531111540164254750018710328010953307386114049049139827082047025895914206083997549866087614942675452830736652037994406899761733762153145028922289702931930093204503028141725655347380949814402353980530705148844656777074152963739161877072255036994465092231679137413846302974264874773539826507908493509763948275889144711037389055585454810990391565393642333875869364877065601223180571244541221655138155574244337941584954720467446902090163853296453231631185533954607601417482323383289636383866867443577107087003703857849707112524232810413492311235669117556072541310405208179901359904127850950902644455748475817384262223680594837388236205579293944163184249757637179491802985507304950317166356213949391309118667646166621093307329554826549535618273822260427131288440969019969280930398436904170892241771645295815007858861962236533503433556048877870682065323475470955677730830780749773854303810261295120327871685936801858911868426827957623755714150389090300236814535569934123205844048645001345323149123968004595304975466265624864071280586175437327327370939350540474484507400283361602389560378412009802545846220843948054549922338943801009528246570833133347344354210605265139902402070384229448807053299561139399789253676556356729180330304086743240234139540324756633275448615178884431092087440670469319491567797995151841062407387789193436585148432429740736713439547638181314355825041349546448319633584726495985762133998059433526659567069246331039254100347933382404768609357049735506468709267908349158319418769382603386578166725484938871074999586147373029241922650704380039836591044075187572838108807690074558656700545533884382752213131990646350422469500101681725893767558671487910993665343970567539396683361530635780987079542838536881463476630821337591499313297087280279405263350367306312539785876022577775416947635653021236098710962537020946136268643175010811737475978110054139752421887387469912454107762018123618566521068068606417071471656236511820326072923863867483084294640580749658314583374098833264836069610711031993182730175721473062444054509046864609756465314314782637229233936458910705285313196670566154744200274962458835763810131590149606783092347178666782281512507758221211448661802791424868913458328569584076260906943667937951840628500950666993646619364904605991378194905123946193020206149393255410589262620831469001967652526936031691830519243094131923808654153436471186574008012440658531120232431873947420981592377165841684838489369495706483522458030282249819970095693667101489849626086985908662291016226846955682525325285092484048611958204395859474374909278061276266346038742908048349193607227098947659413555568836201703222578494714749906951005548885819947789570142586346310898599297441548370926781535991866571403390015668196384744983039234377371186899537279660887291732752745298402440702301262820978445734446626137638748832656973461716444228862333786866107037641748155566917137334832356031080163087303787118342390207590534505530546008034643211238401443264449004337898128416359238381236786412037233103394979493764308619140071255164792309157594301450966331564665821033808314388871973597240464417742022013791853382782940919659030009411456319549090439757620371273806666321970146948667002431004118511958337641475829405727887819575156565056106227858779598230966436951542618226754043185585337109900303479423969188867390117938469977251009240715846405873586249745847004106523394859739812777043378194172730123661968964834157809712997749154119133659990850119098545222166403636569259836690304916488737295331759075891166447988073310297995394845572159547543609992596714073901240071465355251060782729874287988781992624732855555844402495063677051354076617920425354195393903624082318389310813060267880316824316551930593888741145072579309454657186212185424702079668571827801710839951161769827307201308713673348538581449272751205017322147049072539263517417824913694335759996064608093074717941830737126236743777639702587644964711449148007532627953924505761680020865722818796002950924691340896385815847526196643011617846806860614077416207578764366196828775460830548241188193412306147984137054326812859128930284443336076458454844560927257679779304024437276575761527237514199326728279302137460951962533967513420729259128490249010460137459360996800990266379170572921246056037671271859569921879946791359912246627039518406025240168982895233859620052946146740665588325593912114807811188314191621152411156560794572220303285320375152370974750007298678191738587655797338142321063573470573321277287728777659086054981260374687134012223820134220234672928999018860772364001818678681727909479457000845888931618004665815241531770412561663719560576722738296061000717016329901853864832031399245027764746701244456765945770025735701607779955946860196733243588367540735092622654900045208018860357637293421448106037515393923346610034572703532550719173702582373047703946639814767288755071199514793704248998979005409845428806072416549544179534874269311157774533285775384337375371305838657290652616900749609635324568625646456477970839821343762308445629873110670426656572333548604541956252697986006544002384824799834898621589114796725492334949922837105855443843465565444457286649478545603625076680596512510164992144948383544427722488825601291488814203425496055935401824855507709589901152313823088038490005169661482810157222708103977274599750064931143721610137202226767739071259380073992987704586000395125539740313258331989562240178562806139460579922899762337104552623197186602972887252666829896575919623967028135199224886696826111187692175620094039429828231460534856827567286888066224152976887856110879347779024099470617714002015843284407283644512888482035383366467420172094350001666356338544383902638861923683274623084592272037591350926475411857663132811493028641224195695757719652576375239977376137511957271549967818190339858147665413724770785879093818274003153727353298343866542912197883514918084043440141664017433667724234770257245156682300065169143167853395310593188078521956348749912423969877247877681193603167141083511872187423961021966115526945979521356681327924056006407037190993840258584246203474194163392184408329415189347498273321451497717135768952562678160260928421017858860122766248048787489485815813754005554396756164470968228423408639497480717490203442782254253648694942620682705169930469320104369305751728654597140395118066313108226044466297010718412342140289206154281604870263241831093131123983871072102136309764431162216045201286558029133300036301172545967632775604525557211779353965283086408704408000346246469550900028612062138746448111246709985421048714993519469976587978533150895014705267672997952696024176786086231409435095703636566026513093608798510940894860772745865112573566787339403043141007073577405192508102564610687402368876254700031706091485335563739161852041581597543226998311286194821867755418944225618751370437612163777483240691712735818094700094417807070232686369495128570505152897226845462108244572536568532390295664515208613695764025181133772084982689555168372235020538294239046938504778194088258210639743947037551557676252536640924932647240021765561194249041102443475522451912306665403669943342276495949749544637584893113583546524095886598304171217749751734344815239060128068021055184018586143183726451294502201802619026078021248925726193846928329551341104845570066266053222814432748435045441599035731233391337213798444334610670084345861040520507044872073600081680409652789054829894322886629601488503772008237774036985822215462803066465994082580268974263476731890378515694237939673981282018833261586683930409656317701306797994023904550774467039817875593219140190362521573168876644179611165801005362321745154665653738929804118460419795926190074494388028992622065304845558010358730593105040214211438995979769709462755982376075941547859370471469326816930345917313129445366527418736514703668694418522282524295825674866876572853072762912558876598998848568799027246906298116074347204297618734709423253875521743451733083028942389652885047080753248349265990590003333125755927615505156465144499624303732497394540989269923292462019337021912449994565437464659072158116690327376216617696550666633347816848963118572939480041141654307175040566622616492010115209850835058695323835938185940380467238687747219101583836020703600582223749385213327086660303210451342790825309865363290303763012705125319021858981532491198117354124929527114467666943317906527739409551636544065865749209552827000823441945684387833133471185577293563190009492250095097131235955734629057707677265133701713514925407977451745747471446012019751216255062684461592331958626825309313981222293583365581635669883325617182561388537608716299487774344087993507500458890602056236308339833589363586112162678847061708006499781895061583202347391078426015391687375576900814698414973234917127926622938163868463489013854847979869069646217749901051580052183259277724675029574293250822919758439809366528467813251127875900270141331000944164271755100733077759637616328785809006164741999986514178268533195358653748478839808782244721393110131819161439248105421431223995022674126451437716959676722293972580174047150978179683665015154322586265304544351517683696909035733946489384977154283518001800819659386589705740590727333750356219424863071361284613536684268044846329437337336635145940027425402098656160325847746903266604058586383427638321758435607074124010578084610522595783581531196354443309267500344064986329081524033408810549318963695472544759041750251436836051279478186272255956853290630546830349928019363404118571420318112710212119640658594944104783847909222844911372909233104454227235617357220910818499694093968401841623913016494780470979417456125113773559163644540838099348999447884499854608301661321825291672194504707092636865851786056772247114243369397113975991405900931633286872171669552151662544088786935900354823403382265307117839405861416937820252979239317302603645331202017914208929888316863633655559750663765029722071013327678277672814550036075164170962760914052744192638692593182533253012990288722417236420853112021315048465853200698148077132666663834610194805819449442897390505597977440468128736266200994003297150888005423461147304402260530249077816097623319383620524989616105695445249827432412752727904681585658903902779908057571894205218853258474834421723541087344141152686999660552007470704644157441199470884376569143155941787926360709096884734753611250858738807256436041718963805618075315191835493462186214310877260353072380197860873331243807773322156196723883807130969471923272819991924066950583755052128278135694746249053070574525502620224591891200868123702302722360652180825953513878894988645835977381602817927797225700257151216111255397038676062443682043148666392959493552003227581598170281718114001933412200214990034547239905977809512543761676501532651296664649974799554702199051978396164519583273574854907972759530887998909103767467490766303049336396731483102427501750611956496215103619904284758841144120533653652775095421214703598536096234324089934793741069913005904856890680144351557226953208120965824550565951717261913252018627991866121010993862012960887031717030205312855856488348319453972728316394511248578462165541054421320787843737661298205782439680023073026733450747173179930362364498070955263315615571939879206083433995641713794169343333609040200707912201041276746712545572508466354486112779851434314532414397106276369636431806638470948684979233755345485061870233846664181461980911187746067719668320421521557745616678347265165613306586903754679435919506663088730086239266585143643239470151045767289453040304120404072751054434600673906099837864107017481592248611192667624763957877080945847877614625147974787976962923266964207755110507069291413425585462958925900110268077708822640600897912900549208415674276594130689199195418284981710041005206609211165947166644617757016678460541264990226576063568224607792140208297779554576958816275894629259960733937375729309786348824658191932622641759984911451503233728780803456800247394497393026462286427159990319466046243038416433531995948171652265873842757999799757050217964664735393465670195703970543107464245241088485304048688750275794462615143133892746995638866361791941035863609483946674863409532547459287970125184528401855429581121636994442787970003459001586525784839007000393611494767638905448996233737513549680641339582449862751947179394439968636759120439039848942593290673096821968840395016619784695173004158933174532316536899361397346444424672563466738758971274731359181682496906010467107790043700566247059388047940892100648675560824465175291827495293570455473833150411393079820476074829363683981563365081351518553772942925321363801096918154311152245735414621678699609511670954528319880389494492010871093729592466259379531546196391524180781884325045037309186209338155370509085681816295716742211445335266104439830147047204964859129185059149367652819112267042582310536045390155060492806272857002433504780484472202995716640846789265042576696147306026238672604706046210789846040630513886256942815472110193480227122294277918696121841235691242754875512392851186641442875180243062878453764863316194422062503109711865384200614146867400670329591357759722603328258860389667007079905688598124141904624338178261748747384478054813165791574799840858386435335629010354841181863553787409040269866837404077585296788286592072939658452196779714546934184462814898020931044914737040980020621083265312824888218550856544903082491652288326351320734953739720525083114852536291412517648849474348578262809708722979562540491017212783126086309089871773910822696111019346109662168702634651676174269753677277602497138093587981439111999575786620619151570422877130432959998349344858944303786773745140727669299141156768620800912209930542145270285727561689436618782417292687081701022326917435891316003718523682261737321921885313795721757428749572502320796222139035970808629884631285182303519916446053577674324765048061218359255141407162012107499587459708958926233442422252060738713441297456259954538901825375476997931671114207172509717299321360483415995303350243638819025742084456709098172395617631646720066948814263059308316122898767049167055340380016440359122129606892783771436318184999806484307293410964074112813219393283529166417745465235054970328333366735713582945454993463356027132239198857698997015133829526053249626527738965025130490837183235347518940995229381192656342796513418244848512755276691320141165545197256668160265095826407745204167332859311269379559225857327688925589080449596428143318490688998104748092536890730049546288582525067052625948999844673250854120194287641838770862102670457301729209832699362882582641983044638130975776899054152426965252760312583943645919559838628605970133430547407490695238240919176152429047971074577283215936156402910168711730939199573540308417764314191006007591134463213458084538538939303949519871796347571830070666779519876322721748215293399857621428996357957837160307445842247036588114079339206755984961742905218416853444021873264489966450909106976260014474363257271753406986351140412660454422406429016627964565736724235601090346187404001449661996862658778613741427674936561994135686679368231102296661390745222889510741830212964060133304361384318670314830081169770982559508864822081605493809114037136974295972415382434150825078575265466320076732550315773696332568254488706966500119477464544923988724194485678718739914791220905163426351314517208309419572304561292278798900767278618307779341920214749222362623715693906563121106305281493641457681159363101924548369819105513730966813158652441606349700707634731515702873732163929879344813810823277479299968390949418111847795679373433992092009253214796090185611566619158830199441117587764204695979431496881360099562580912865979756787137559123509429450592521446365378366378358579139109872047610660647551810480041218526967291011705400876986502561951239769782290974214922997823892580514132759584948383263770850898714592155789221003004296600960197699062113372689385229459061540635875344990881193678329826780256561109306344495239779247845272365079227588356021945980640796004469748666773527027027468149598520312101768580090089880280887155599425306563366173044908747943705643033317839248827209432975407192939210631112546690566956739620497967484383816837192353838984708205724300669906250687655656576089771983910558861091017293940274942974091956991771116060870747696412033900892450575467745149875338725155129853915275131393781205325859567649018126815846630065025556128611906887585719645852176353801727576660599392016488195229156585925623428009539141340627655255740823648120026020114875675404586969282841078102133197904184295871151552689857486378440984456931065580119110409353717146653961821311094960800657167733934476047533769984538165719827825699893478489321950507152382391342268682656389734813223909821912913846369453094514156576877710236545606669598928327168713411670887730980811509068080038200856925977516434360543959293645652351813140855369546563266781495473666369726548882122681879452334858475136466321169972382947401997662150884739237098195310514208180042037044944069464363108721506699269222284177974619359855429302021272962234821521486716695139308849038479676271101275408682565050346013617568202658277603116343049164181938401649923494269308422333044040318821701319525215525399237647213083731298284000536707120263930162476678499754789199446793022084036422197387517150706176791275859766726689872101249324023417214342803574549137401263568201637607389071390598278549691109860437961779372724425030857638065528805514619013114265026156858172392251520878668192777103715816473554509762043631612236674408123647852348458215368269604365467072234330996818401617660099083205058401001127220894101441839043430965474491546603571236956127658469361744447738582723937298378842729019742053675020831959557807969061319991838753845306717942232695893110106843589603265521862442883674104808528310820603471089087088000109000446490741158317617561960023893348350703066633131271351448763567206107978788991039316733911424010866022969984319142141960759907092923959991095712733408715700746023012497778842796457478458311166121655483172005885065623682752721214531810993334802477197317647716695717425955131103008383006366809743971308480706056684086756425455436181137356884278424085494129833985326818565540395591256615920616563975669771253312638118132688607716185785600273483682132826653285904876884972025333293385688002224487187381197304203103250935021191883939535239329543872406159298861866785374243949166354666318078841974352891870479892413338715694476941535349558727571959082259250188835523448984439232038668757233525112017347257789290326271799653487163054070717148964603783641500016020966058580212729149880450145755269728448440065305606173043554639936200252464183037873922031682937752914899595504727529448610321371691598342886531839503362307690770401390016730072592022948350161706026786713276951219408104898182398555481826749839607445020852838159533367731154725188037448899177469336160690027948711383967951246441604610508413501842291554362216597435261687155055015036166142853080921835201419920228170597812434455109334935817165405438305439468389449215819619722699895828096797479916036904113646152547072601083838204531983699330158263465694367452006152634857357810648099644951243296582122600563693001127187069575581375316047051028261566374722185465588171201423570399254511015349536215760413098644442260910434621647908493107152394936510941037135184043277744003746430015500298056004418750461314843546004042482017656602877958947876995140033492044143025921965714033532706303487141903823760296656607349597799797711335182701310679046225885666799348678441917514695630086109773985604143940977624406508308850318452761838784172864640870972146595212083277989283339875035484328010860506108326056643952014638537497745605471534471516568587385770664634289434285335214403306286911382751388959458577765866004927305481045800007559263730966018503164718144874693589753067414440133482620205166799646320672813617534947341868827565157247758411993921589297407490796885632156639550242869465191289556318358416421462973455046390998326330914089506413455248411522261126943360461532484871518853045237624648371425463028490211728998837461278530418640033189985641188973259078182264775440296919693885074985020953520975173811562951024037672565478200771635968325332925183190284632315551692608852318527968705254815583061331859173679366632609450822333728507131298512795820635098961758822599441318811872471689428749510816762957170930047500164593934928076102880897843424117752340283812907344348698262898570524408870063783839393461002571098695959946948791886516594100096100744276620118213698814347228552746330203023198400509398817504733811899048135579174885975511644186703709554511294153168206297021346753368806740906672766692258297870501025866123894164916771766744926536556156777514594491378630703828658754258556871676675487044889644668902680804385795254381732665697390882853496375105965891607809502988903529471865963315906094259048059952857935392700185609525227434699218632221074128013426858647530934509385430912280813939006645326130725280039163229173335733158130015135949792488974583981794951251456010267042371091382411888080757874282105066327982539233044524338299501508739016177069168537830620243443980518232387264014915348133720879574169646418343331496602818842247342461394919267353558804046361251044507968870229562524347713877936661774168795195732878373397862063591123980369312835317289912268947594194928423098684855025577078235545708526444280354303965441823349265013191275882707337954661651740741578863572606038244706865873832350052768205904091903385768710130199508929978837171107435801803754496607953585549034463195030043638349069494246084618913108693615180628706923132394707408293788054992742657559666161747704348586688522278828944240283220287370470551903238072243431965521109644428376930886099690805647318856081887340397060108245989252278609703778663383315639153949293511229322818251421683956175363943291376909084729764504980875160815014336674778434613950243387913538001345904610636464904890686217314968973329947006134483396342351257257925758825524639786190672753711259349428412464263362586009515340225995530801640503488569605677888148209216022180267595113523836450613840976228297324298250699254100723875622287569960315389232579009639249771132988842200112064238603395884341380585496194595981188973397212085904859360801116155143751043010161244230878558941359928232547670804576497213934289639540860630055969023838306989730673020633016792722105141959210659579012475385205155239656669857943008078298882406440638037852752695791653259691381888402055308572060083829901423476434232127248857334594719581084575152449693891635498577749347832489955266596001186371533872975005258269098541949857240166374895081163298363456527233463998635804649995148421850847371556701621164392306866378665326073743050972258816591118726780344224606681427963596682079927876205046801846235085173817822976654294312926743940621171014051271011839609735598883962404866486866044034494303705408455957826617788776481117399462371276693393297617316994799469509511610543694436097256269001827746243889525910723694607710438251999327097506992576342741192850260750522618785885509011918112530845895976582086219868797405381257509622816049931237357695704829760508924797567572670273944913440073750615107275824827271771108408648469719330286586561805368179863928556966253365838312172019445155305075621276011374414255051736202682803527992228426752246450882078071236745871272072098477589389588593165059789173967290345827656105970952723527052553389183622960456896373517383481871712925100759499239731555385236523377192239356691704212895004123553621819591114415207441630161562062618279229112733985141147900672683004550357253772741499229320591268612425410331126691421428161298172720483639357658520466029464534199824492837272127281158079206001826746458805519123826049790143812342162676505701870590861484319112435998948298933986870632791261030271192995613540878239920779570358733177663894184214565860449791585402823349215720575893447802865018243709194916071828430824110055648146526877746642937914618464195396417527873968305969437162431686480954906691810304484673027622896605530687055203060409033541491179061966626953691376289140048111719321729110905081769571649264788886164610340952956951986226079685163216324832718225968130630351370577568709670680880440328132903187060468435447506053878747348550052282347467941614326462596402526508043525711307936976663061461368399358420774200023210192506676363506264626573657595813785779654690641488616534056541479149846999162452778563638506008281142629301741683708285884071728711539216368808394807995459368264545154146506162721574566699855928022711387792163162708141812268104322615004191224845592622984422776276088106578812501978936217246628763420888463899481079450734732523615957426354280706785611934493165611640937351490928502475759650574738060717006995336414774392412131939582462436112982725591503233877909932222093958261928852347986027842819052394645073150986073018102044213370809452749147666762585151974659899813705733675983557130722647830855671713569863050055997507203100770331365156927862510726676708567355957876969755190281891992777046894628407084823142030014426709533309570515391881983001779288562302154739572481379133047245987202947455324524825872917513359611051680179957902079839972780869783104643188497331149547400805081332908095307968612794070573651913335554835747760623022208677062366375462268638588652826348131013255327605418151677545966700225442981797068639177546840711130606205114627682035555063727011476301809840483840289633350623447745556469369675631506729208917754289505264460377797123468961920708814620332481891937248217375837780848377427083861564939464331069540146500160794757166489915639893646154155161261043160263489612533395861312174959674678841819910491132892024013685829891525083428403960554261388164632257472559238133563997535538350452599076676469995371849342788651486941716226584544094516813179461466360841266311082888725282135472910806694409100688092955052700820828489591241801199805547662480223347844946214956099771222507856823620131256157879121081410317791711130289008975150650761065736042692205093670056949315094540289864583185384823584548310504297697306144603279133446341175173506986452434872640532389972635323590625204439558491682942505573569768397489159800635769805913670629985706363677657583303978418078885251600688572999412233795393990744228645693512345806123509853494587321013809991526643016446439886124573348959256029315478401197508248188980660204912506757143442367076844267686792808297208080945281433981931956666107089976722383292261880964909067430591867387296646482675311080371926519003216178493426916115032718591952759247301985978377968859774488306798178034655459563226565022311947824186114736601818919850581719206657709459981647694197580403848987178698987151712439843993582158908091059897359767944556792896690710978418451499029698391604533062834485453072919277324740082561863698971922524637371408861477256858291812926214876725798566991955074654294909851490054426350091959918310694136438122515768343507039307170347539654292370544032026855968138228553114933441833127862263947705039339694686923658152616172501099767461365208168170737491464593758515258223675748765390253738269323743701328020872000241461543138696679692594242408178492994343767848591187284477052687650312405907595621742920624818125299491951366133161441203243934141049090932866146033853543001665612411637161375585371107262230090047590958477728009772501058797066987141953570496923794697959974491027538983774372567477767503508932474151619884741385725349838369719649636982902673603416074873529252927756940703434884764733189387504288397661945778635528293615952764024089146171603604709825944891834131552458791517550578322048627349187408978546943872688993197672877211168881304997477734737132670514787632946785065610661753601522093038087919094640169495766203809686942652775896090643433026844120311980141316057915509793840359930117824255929355520468433674613402695869851321771814921759845034764379025309392478502301294635288808781004735275184353644988803718955991034471879270787797023126770633524985583991083500404822959558476679816347881544590587068296288592753383994920208150316889055060016646708394521475388008612822791439469107821856942736796071439087698695792889887768445281411910528549170467070459333229575709412918420224186680848290860058996600985042022639184410385550556548336724006670696810589100175818309911562444331305315230271459669157739252024261578036873954574669134961459033533190264285272082278039693737190853622744448640490384733877318213340208772850976838536856553036135838473702880963979680543349887939753937946693601998977678371243649622669639620383544449719140960840959604196480146811543671317861535786756136983176529394243989955184093008739178841363468012524334688067921923269079862445427875887943025023008217360837369902190231126456981048576299807317949733389839406195124139365025603426668412380486555810564687747188857152940339509858914160311944667214940597037281830654693899597922874306466270955763414143629842344453379470547258227826754096656692600895866017203267479276576063090133820031678891229956620204461269546288033004352211433480960827437028944866231161437046697736481525501495576149149742074165158433962951477056559088842300557172682022187269660938837957600183247991746649640996355806773837772289701722097406722606602592901733956597379614011514020580105024590879935749798785093703165648758706855792104500352840127973175011975596599417092773176707038947457923986405007501062215866947835413404052847192013723846325533309538394128976873938443453995467524593242873218673884781355321579579381715671610622501071525624927954418482150798847573898202153905456974093480439299221531467205426023355134853402716101512462718346929762089053116622069636878395465246783363501098047278270966042062375425966281149305669245282742259979752270523835833087816345257170431686882344262998481301339302287638842755893670970895958222000055828544241522865265989959683246229011639000899935264075855764084935922303604250237241677910346420852534370258961966668480306274709948599851692464273620267166008877463229666320584194820088715233987219012569835579969815021841759183067775003619605411561966292092091256468133752102979420279622788277236010298806040067453282173136453538365719161646892300395772641126784301243354340200412752703101666272129756728113995040012613324378972272909819689750747121698466172341215323974992282832058384896364630587123853281543376883388128058170127247244640447535694062208240147950876245170755924498562596150813126764256512786070454984736352516924897358075560561279450824550831207905852180285882057924402402808282330741517196937959973646931464236532402680706391042369726849661221431649735406898313242080602857323323788058366748537416764860017599724256746099097736278082968874245895819222643703947499155769301556230875310245067012293719404018092940113557451953650258677436281373814053083092353862555719561503093744645996450177204612036884371495879855252337858869780312749036799053656268919154087097574343928703074230210690801628845057792483575640431530591181154461322957406620526742602710366792134767743610010804093643090531061910806284395919334366893085567272110553914572857872985048870043196829147921515997111594695230324531061302041406617779085544467512084584968428013350224215995450515880214124606030912553920614478867249203560370822046751936998339234516645437779993806168980499720181326204659084950044336705355459627362077090779645823629146413927914052865900325390751200939483996098202320012878465806867756412983802478709297826412495871473868737206286890867767109346497513073811618777256737843729382606891533231447561406838571265445605698742422858919457890652615301889771489282700402122303301811912499955195159947326255691373223926585050794663184709625950540380478690495914971605420439479051588733551413187463280266911373709389903878004728440665366679611409287378600461199431657820755080046053191677130985001515983919895180521394105714775372229901492143511697958504140136059776002367451039518705283460050148812051378766985517123497394723651354783451457796979491551760367237873969042692621365564616873658092613924354366126626744117221467426757686842374433462769825704282728587957243670459743635915709790926054075891290521780257436578259232477820662672093836243279075698391641379407992469679049393834165238352871976987952466767023515639435103215500170166784424126162684708292966376663341431217390630119760341213645428723746217632366156923522131090636676271345003500417819361340006681166266100339924785605811349733439336347189768757045040556880846824036013625554279962414888301862917679673471028968538185161693645868138370342946373552363430724755652085576900197335937238910435684653453797992492872831981385396942865787809723548409851309715258930432542028502110210413084360547321948187899841467664553847793757268260299530740151754342599370899774847533096057390736654013186010941712021500934980260215816164315989341824425385612501303883326272152461783941982000053167152724451179789042274520551437658719919543666965292054487584013636103207945856565055065428693185472385227577560158248104729099401837348019691456471902540544340414724039302571208597357177719848261818132136213183823068306236674793623334114616397384596061876927748350677051191750637699052939424088520659120095793202491648390931311662273713627715385830975936400695808218873691820577172181872687053446375863032028839965219007138343943169925223440013620760942574869613457664668327894270769684356396091962529833449063047793394983020617049207253557607349576293690610356640079913073122113628958450959313836343616753260140720425886133608866934587546298106313909140952197800781021618341739811391576683446062331669458214502869704424711528980577453294185787833532220777221092798483682180953952038941358131045365983712865627367591449717351037621599518647603419966191210816401596910882876580756976331878822616567201814431651337359749369695467720162863805015217241102396277644119149822496927551949636045883820010224397492963788553984365002996036156271653020473290142399181358762579144361979883398609295162224706607556200989870500444313538867584026730424311720460246612864933531597544871567407698075394786546162454551118654267338333563749258073491956643946224329520513249293151068797314735982310803461947327492986397306785306361077416496691133876250050644675485403068864034881132816597354376443915558112366548827343898564685966138303858808352752319434681583487750518352463328188199496339453647306037260813418137657939889209126344878010323171480821191734687658735727973607140763437733543214951419664360903023934547512065801554295910825442676755440392746151096443785125561454739573475925508778155182528835814161982256903803677960434505717184548270610897462368588162350163708528755904015172823953669478248951216850360560764351277033718410348285782424618828135532546266043334102857846701618753327389350374205936488979566694611058974278466152671744823390654716187192532126299074906935415955512548119020368923005280142441579376524782551692815065123853527079488176868762026852231261279028843899476141437969997152696844493757897380045335602956392947036498157667508709527581319663353914254317814993392652883261470005850249902168994250065268147975762994354425066881527621878866233032540917930612007304919626779730674694372976308789382959845297139326912977878849519433203231211392749979457917784432062840500233560882462089273126972873682295667535834941097148757864524571817546637152737027603879913666580681859283843965603065785479363505377337996906908265613537568951452693132391382400327377258263603744141978569865079660224315592705755742195688360280001409270078001531537186159839481516391283234154998860110363774481008133130044678053233633144547824335645341460790040866285434886850031968141713883146041926766021489850162744454318595648184994332605419953557422498023605521583205705360563405232033216744766365897020105186605518292475860841438833861727853866608220038520699239982904692953377548862620562690115230988851135780097701475820763863294393652181881881683849983813941987749124056360014318454497348782594662827195320413232296762290780269781480912884770692621128409407982079770946077239333103798548256838536672000321780437653511295521652477280875639784368197120972762988188960473324000118442095442310496274470721068811499931404089536611929406501356850395883922516686320481645735183484891013523973309374182292342758126076680367342437438017358642407487888324980004863608150499346429344399550308561789383518670933064144027231177241212997307199007644538266170442990588526854426935238940676065906210559577766132742253503984256688166917969260937903999665402313248100116665088125076338280275457299190110954841781309389361815721871889862259480034693300050031360012554833151601200954114628185099307172706491121308699352638063010843191303521216021814197376715830688246114506160394116983201983337680879108791604433346842487079907499879516765165581658885345847791372159247245055387683576921513180271305627830653469783298723710079849815734027043898974608695073769725253714226197940450600953709796210834316863554103745400697354693646376988253130131024141901775811216322130658488233624377724449627711598511351015876775342064128342107797273112559358311213948296595986798905286783178197389516276318465275510632969862433568777718267496938460472217392503837295913610779621426251078865887690601965616244928271286782247003445038107675115107893353414989409316003124941690527507463894043676901136818843999810621872512406386496600580903381490842093273345818255501083323340349543554040103293159798500945789545659979165201569709766362538716460660097725550687255610295216503854318588471915588416890114083901424486466573499406015422878367202610386602387957691604008235601640683883321669341309590082646716637750884427333385303633803006701883544904934713152366449352305779542523569042877946339599705716366044341913428545026105680397109891040063857703114600560367574501708051445075196243709066660570317417041948143929554845413569146255295783808844277713912391671690659961877400234876462435782798633131455877933194629200798739169279679714503855177073122816237981668158356470228570963743329506289688180994853509040523603688522378578444589279002046601757072411689632579567419592467656362573158438907401652145915624821886266155225381218550210810220830587690789037751639503516017265065730569324553514916878268536299467781385657331022702614338503770997421623026377226784501027842591707816119668228425972535300613279497352291013060835591420853214267330543360166093947890429079145479236193720357952845432258054145880845988679044127463590528079062124794762899740645243906006401803875659694592771663386677850664788239272214203995780489624540673813158871335131425725464646989433918782310749450007601163274874324280911795128693733220257972889535279597057462416270349892934948036456397065526635255063722791029228825486749439417432262785305717288340906865306950640836770720328870486938396044119587842290406440555174840066924311708260934431253680463566954871103658064018741188703554763868025772267234524082068927333268954499435163471235485075620405208506261014229176538903971815596567035555146414750036612368715725714192817415444706191482612995321648041783155056422380938198479475097570319821087203761863538358429003073947553056391322040048739008391285872570890453221159437702343547405213346417196261101170817636297696001458362862017556799117227793702008624321716528530885869162425166301608745182534446772907430135281267267006921772943012239324643352364161494641100182502884572168457432668007045249843113637735524598252774254395678434978944421163611825300936121335379238929277878550502061323014955294031134515727540157120645958874412780032763745922905172143552461154924929783083112764335281891367898225030930089955849765474827821326534004865947796132069266113362403184875373017227849828230563504443733752743067880275082296250681156121373647004668824793843707449323803170695244823013583394787504554385764740303538495358534282605175874747616798569797022364587721572182201837876881018376058008481361236166724852043844067011576897407750122115601527442295862378687566350947950937939278111170581065203719010197237180551809338914381395647698411563200986476628164640300907086679329329162906794180524886675874715323666489646948019601721235914083161109579071158334160669310872167518999377742093833762473138810844903759070575743005956728440732137474526900818483814863156202197893246586676976257401500947243193747725586048802314116079047448920412003439535381516575504819636413427940579230912893459529089584171960001709246505036455878060488852556949372439866564091071526339132079472723044739899572444457819276814629115666245651361213990468954424849586907146524577454562995721037097148075767768767929470390531919079716906175464795455455635740344196276246487494268439722733090278747623794950347616971583280537014297384839422219625848914372382116694255298244210971563251524078132640568306760402259191302412466103611917222397332155165579005059084437121483967500072345255099786662680842974493186190919168360612388765908731992662187797967829139968098840541434820679993353036855771799353031063437144595120648930589232042577740704451395750211827110782947489463066874840562409747497828640391070059984817254353921050364762914126369480755915270639700695238144677960671666454102106007227552788382971230956832932115971030713777158266023675688785942827815669156868587391745649296901082655101325477282893401762355441122845171378506161934186360535516894649848872243205157024700226531554918135330232040740110382757275033157014274042923921237106635408286109940073174840121486372557585089925569525780613925777676200884227427126015422553648563505327725431835977376416621619051410443925657334814249377206595230361966661797336735200636626497789421745736387729207679181280182789191859442631036196676068641962363485063464023446695449659573105389058110782595648395598512970386239347620386506150219090277311337456400765003290984876308147008351290163454624591260866136448014558959697648418237831988986345922809634602683696226119203459673674134210023947256864486905924271642887005096705040731337131473879716546004638332572226535507915243575838893286234684047922599453424314412073676633422479179862979882073247799896994049003754598965517115784901201336408173492143791484063334828215468581794097003069090041019955062424365876551226018680307286080316063544852843003030188672916544558962828391828532598522344375553980491428906943417714759598831561758360696622528177222616665301951193783429926852620140650012372872377320071774042899292990275907793357808460395100627289769569191563128887820897881191420432158610881778823789946023398102703870899012347797912355280623392426014726044616074859999181477231579509832501406319362016252474472679648614058252956634948368246378331507754074886178875670965110155526538255949292345134536128613160535433253648124150567215031835830725274047960302716829454896402228686976914811843845961976937307980849734793750691627134761251051895272929361114043985781808835970280401519081930093884901750330859325418804107186154948663053797385799038131759612337629791121819337421255856527665115258716308999831594559458787193356010932899938577330183259610584670640895276544459600797259038418819554740861474589793946688687801980613081092467117983960497937635779155213008288656851099183059513456629241475194160490563569249356918569919548086118305211964891698802376809859050002916883072335424956998833988028413384743126969248794620205738947044570981416443783963459464684388712708919333856913427802331230599432104746021806841048667625731360265877159837164409497112855181708193940673796106590574060174358954034382188556191601706386721209751911222324964895813554107693878154560097411281081720944108344248586435792171961117713949221740129473875369689847843666030914660089285833045090526956495690194379379741308478425973348093438638156544549481962989479099301219803547117836185038570869238016297982745370726286313154817164588905067573012188149485237956791292379963623057538418354970225633536706834041291349627885949061224564202451680881966393318304920667545692973407096537032080765621345278852231096735854070189724198257165547726806168606838457715691093370764718393238383658948177640167499364058111585753051233140496513193205738420905773002298016308958392419356031012544803361894530495900680455744607039162032820189583171821084253070469182886217117408988990569036872709088219604122125255156121976873326001835869607705912980531414605693623110370646576618230226623113711468488854364804713145228775721401475782511177973692253401304098816742548867371155276256242978458814339083574466550952285230453199720285634814038656418829562832981214103242328554276937305531176888287169786134454906621521495435962439425728731622717507900217820000030705269329860724535032379640869096549272297453320337518696487406717576822863303900108423087571963007012370768398845443777815147190847566275291720660912711178181819737889289319221570875482509635312616932645217997136165823542471192905162106580394652782206591716531483683326462053831753205710035553461458980429276995529674056457891352648100338639011556638631547609446691860169111304417099406267845435661521609033057289639442363366136182966253131691175038740376830106959256008123845629334440872000891907374566666866478955117632216691672647694377846896293798128586743242855626142019887652667868115153898314984577039474686118660146420261345096804193297924835693540337281961949608313290123624830899637052163164961008826191691248057138659877130051795563184587411720101555937674442433001654118428874738643978667755562706632833692447853032921019967452908350867130617775648875221972360214812691159049757397281967704080251515264453519788685291696141626148426946537474747399400267338767801749219979327661439885089310455100389337663588336520441939157079873178468315486754435605275856630494781394747885960268744575030817211540670872041981473789569798148995817727210425059419870111406118555804343435921483177678090754696129441587584937526628054857613762400813773708428653678395734574721848079743818805181137815263810718477448582813281846742860588622465852071034128740163158896446359979257948857062996905686242740243502089744393071760089087894643924002435677141869443136138676115712409775701043141711477554323520183079145170443924808298899763044152063199505250476446601849070419360251387367188473065361903154957340660860815925834435806264553346119682780063027841000889203482091061552010450297507407507508995354347633349727454332677985466417192937111378489415929653406653180489793589895513079655868613098934330081289196778295903323228024658505211572742118914917252439271086819006979150306864422509269379557954441539531581021902004524567164320496904759290534866712115746021817677934228929597687128713010168470361973566484520595883257229417248430694102687136033965367942403009369133996815901229294108253718985975136403253349131056239979524671954605157486809274552444371887861752693836129602728530404624763138673067131753167505807503729518122886207746677823389640447587652498102021401643757231184275044054291383640836067582142893662323082046620727843694923363981409679449175655407420171433804986833108948021413721893451954018225529043045158675676660843689426081583911989091009581369081630214221581855955760557083642665962719496533794618841640887589887373910942153108579652508105012255932637698986704766738931517710031906891411433097602254199907611951886905762818701749165102704838650915843722292428921452690468110251232093510120699599931401193515911908974514903040004010795712182358341071094412110617596768690026968534712712251912187749058570432836924299795236790183743547393360012223173287335928275558836087668763014122719205626358757829135355661741578074764474947336467597950434291554949488646265082640923217739389947992307874904038912368696988996277107802384030479887274821860333049274651919875034051030767299551332845070147730787232992094346063304943304648233769943913657336312245047294335706132196270401842248582879624281909778732627211603318411448603012651660619843061390283262079457634736170590036785606747495950581668180946046807639435375622734763852907745222474182813629283873844668795937904531583706112570502915127554198687619065797316381953725360097272879657032214728364202462262461803671494381963113880053396090222608826375390807807418645224201485064536442993335173697047709992078348476973364745299364277618321991550897209891384919943023176622851874786023893509168643905393464144913612483101440249887616517050875760369571114278161512901292205304745762681886262288954614635472868784780864810969952333834386554925417756586695339311529132692568962088509647554055080894175504675845435631759936723141147258984004818447032501628334979415398247359089425439421506629114600695903782284556681287175827816466520892036748787901986209584168434763455703639994917876339524200871542192160106540423872196320526849144807867167193756568231386595664865712723233831204632110741106435786231930864340858530004144767863055329701213775368074680022230502136433392165599530095606038180842376814759291719883525349814685528220102536851372384895461887221771190713582112904895643444539417286392036584057249937933099321869068220619855051806164936301528865726003419983827332114142627350163734728931284723254982587694284034071696119535963101509723822600282354126497634071674262449933271492901380154986867344870537272217879538790898720610279762737149250018499923531784699007749307275494796094654013060351979326380166482759914528513641605589326554178488852330585637624793631000965195601100892776946556909290906146498170697854050859225414776405053992845978833925635974815450357650384744042970190032317037648823320564477567995218245428680751084474497973564777070114240439646280236201348265131230012719150568252696060924079964145284894924210422598429297297047208874569375622031082955628801563224498485500086063526696694781975775396815234230797763687895133041238958614065186881604808021375209709024683833235474317864653732694675176165444247439170897580158899144088030189683559913558893966418940328494307673739055337555596068378173922235704686589636560578258749020386229453634618706077618643096659154866735554325768004210363633463263170394424420190662124948179563732158365072697136398653176278801993296876335032956881532875163598676029347076419524066129123835178951999366122664759464986133011303520399230802308538102168763144097113590669942770642207886192229126989880332426428058033963109582864018925825381424555150141834302503936052461081625172461322322799230003419163466252589683955593193672152337102786624271082638651254384732744629758369174859220563299650609768663154905658004250148512903469673220128550385573400251082671705932571377996233703082702875296131278472845256343808930623736718398065836164243483374417344163970176218060038255836931872094552992971466185725487091806738389214816023159234743784740891481256865278561753653381540466893835741954070816637200851812884202596199683963005303028525202306668584727450358331297405729818768918881798223047319523371962720209579709641588032807054589860303334184298093502825616384204390896229064138365201067259041495631498368650601389119856630156192583288303535297760442817403348328969802491792685842167383095551799483288371635523991954569227529671781324660685391161280771364319860907183348399676950810750251297495382079943599485800719262944377532927842788288187770608766438878121596594049198814899212612485102970012291961780225567388881760333151982401631952036321848993533684755282221380843869969752283747668027773535455775002829086532509868932204650127073913623502767864957835924098125417830771298665333260072599989449342247248630797840518163139990254509047933174990280260157345786576472152094090362091381347130020469444693434770460120790613067411572538660943392918463143435836091627723668704126847126949774854935178336882759128565489269645878550572876856062330974951842360141300719996005854300397669257938457866071663299057491221310211113281271629205542124357774807130487535193071325599262251340075740082257028265573883814646828312258657209427209724199507904192031101282208461264297015478969183213158067711573204237908138705713051111309794677257236143709642501691003436234448868444294507830081385519177039651375541944639826010322563798352624119194424888441074430686190301824475331289081330588961298274489366518696981483151061775771864022773206733531313305668663896429907432895275428209275359602294469388370128828685067791994014093250002083301495657247877166838393692272452637530286323849557760332790562821633064511853130568675906136584744114762897504855224951703150532589849238593470473281159594466564054498250168383532527561663953059108756372523832658142624122646258957962823280730801163661553925487510374195446412415664766253059590004887244273984487990633058620853686297689475401985688802857637852752314547273825942426879713230027828845480126383184913212624033757190734071701676745358410956021659746282003328756325289070972065023928739958006550438978461270556955636173002095044467382698136835570872862338300803190343880792167101746353626809041460454915145720520066059747936751329827812009540653786618985945955788980151494222839420310636936796587612048886387948712993337756786675463578375973986289829972891620641929763768987621104546567605892643527388279886667684333562408712583359491356238246552284979406699051626733254387928368399257053105733118626315692245765161166337278316645158377413188984249299721458088941231827418762139073418700452088732153973816994011332016849478428184407455906894123502346924947919658634206126078718087202477602539101482939591148564165048146559714402841102431736277756871970551651934678796038195793760393457808793558236249890055434659013953951039138281881909836137596266971397425080381118674484066606777197258171296400803910184314872450572915019440573866419665063523012703091399640036140098871947457313047670971404648068249936758730057491100541551100941091413313694898791030637366529818696796196108165738295389604661294231076037312921658506782831347566820901501392534905923897371775660410058738720797064871625368873771577505968209238776128308047277478809795922254307603363388089175074500724567956359938236258052848006722448870389638100037661311837122824975294528795333741165838462596312168335037157424274775790025273086972916354189229731155641354478333655365545784313995534979220735598261057621593481929134264903637788371931994941326783561979291906713914206088737249356395169760866556526084596800481093949045317804388114379065060081894291055912704917653849682722094054313773182872431561309679461798877298705517891997387147917403946710142352532016826693006284013124512799423368982074924069198823780380519313054550210525550713939359749167023661501354156509715803637909832297412612073248224796038250008023765106583831028939002959994670975600527776955793481270040810443475194372829536240877395704433964268522452924843018668131343558233986108146062057064120108794495453257599947130121706984833668531458811240645874937649533671978139212417950881014765109878675597303071635490575230034192676729257777368683851505262507440045524538920416227752741041423167801425088616902466204749378533212741001461927360632958691045219505141738389853778222868683954564510980486524947965382775008235947238623949534834332728328695900048680947238282848556134324548003015634159338614459519127822744226782828368489043837547108492112835668670664094688376687022222624774898327153917888020163100086570373480919142101411595839706683338933546235026700817517550120385090702188790377294394367381181655431376769156877928943168313136377861059886283176033889516093232552489277872878157517774958325049951451029011645295000841620178030004723279890960380861909112453492861129072699552382505266791478527155673400873665058805559620742295941962230393416896339496695394244305086006718694277116796809335625910796665780358798043051507871089620797932782562506291733547238328409626117241617264640287639216788334488700994926550293664095446158928200898779388851169209918237362409382955322339593275105231665314111759350898562985928473708392248417986154283563986253224378928975584519446921038457510904258840788016483479713721291079771582181626738100571472642935009684559192635187449489142689036446794583411618119913794795288063915733882098476563283563856585716988343594983882433360265238124765875375009786398207515143111466158581733359068531745650252473318281900708131998392026024117717424819493737955771713967735749190922356084577381465317011964901202000503310954375213261291850650236707713031019120429900162943898380931461344382805102239532934335734781690975043834081025612329735992666048111100574813613874574005362596954371188436351830959207117763802461891876318334698344022951087412896956985062467865489274528532212722808856172489630860645838190622672946808570879262660443126324694489496532842585569892812761084845920975010642068178431579168470538429072985796141590100691167611406411955620972578319183985464984317804299862897617144978370417828916586782247646234665874174118388650839528675570624939236192548380427633802412004178956299016929112274198262143694577766964983255414805919456228034470390280089593984786324437140247428811408524799393609208470753557593748290008412623709291191962597558739374894437816786452138820715579649790557488580535882393620903863058363801894742415717270636516780470399697234906661920112318738594752737612403545097695558517013470412605582591241860322241883299701394738682825841088212113244094030170137627648420007285729689098690734764715637921015508183649590054265904380552748323246019064361947834765194207743114722504056039134007227263970195758729547545311191294921848433123669864353173896879213313697693546761568612636682114994842141087710785283755874003691255991370618109731107080684863564647303475171417017229185318309364738760708732329439507022111566816024614003215078498817972772049992256120909246544064866412142853932933134411679249362230504046893134528040995614501519646676905278461825090292207174149257453449454501091277447424371656910339133667353063603484695913616159036538104974978938655034099348651237849424136864975730207123237989352411547177585283219906694217757469593278665758341294861724334773031973737083807763582677083013987590766150692438381511686069711050528927506190844657189678154835799101670655909527660836622358720930727495980954362748610429370616744177688546989883050144368604869124930711192495166286807341295060896300859796860836609835794804475576050038340599250459166518778255750259787102697912307867638369739430172120965477750761109005880154295605305909231065055889224776017174657749526136741560952733480621461197602427548684573791392787860587869089975940167056163173133708714310948112738952312572919898873835388750786147718942858587438378937505271708781341194786198472419938941755448008445082905036967077090172031501843661253201843974269542458228255955526529736482733051476912627087009334491592592160583213132743500114498586713968168860469364492356103567561173010513856494391937985595832261791334171797271541083912251714392021742482097853460268814339937567752849600960354792589222847073214863890117024041997264047657811378284799291263814705308996164032404902357889144604355043773147244082413705246053272108932303457819710708964387507023757398205741419551792345236094407033001216548524654079790437556941891452147776502800273015328797682066191533807157532496430848401052017143277374531382664047525712787148804975370747885758056359669431456224913839246628140408921315433838141146591716349011747748655630600306796969549317625536509277946203211057488488176942750986571083865861560996587273837988332818749301559852878778267435585815102653037825461993064140399151393826644354555626961911234440487257952817276078394492588374963292440375166601220228698375050385398871194454700813380517514283437681907295552983063736915277222694281398777128654714043207724862482627991407169000766263854773954276031806758716245220755012794561676186667673482450834211143840759477413634004346640651186912740108065441905770413660946578133231700362473686352893388703499959249839779857788261386688917829593652917361511843562125133509394710261208711057651688721761441915687786485166477258475249079109102180918945398916424625942535249008651359138262804707521993212674181906764816450555334977629395874454175859292771291575433639873623023390051192411513034771244313024789882720571833816534002912309123328098370626976464002660154953787540421115899032127543936795723304921210051533545030580186706533106042232522425258372303724565121433444852677573796426059040283511717052710194163287147137295337584907918008016484953478222423156420556498918662212460916047198128458544153724738956280672209603476933139960607363241418489952789506640930172671494197462098146100384534435773957043332767665844129599071852895979867235023819665947409916007208510310632049205173580605039756794921785435860282783819608873505967250144724790746258339686864207007495967114980000333107314611561266894877562461330494409047607202465835172835099732526624934023742642431342426721547376576425336534458133326309115132826905495425369780129862652783031173219458232470369915436564946684907672198262235869963307112870907404470697058698634232889662216893119765728468472279106200634572824558494650903511363607012272274147354865942849401318821554795267287658477301016425503694305506739626464568664438721644366023986298751238619593332567174557993034634374396298972603584735182891830027495950807763689476259124994301147079959232297103707608549525013074307908410702044691444098595407743183961862733994366048022861270662653284035718419094359975269139765707281770369697919052511121203457658126404266721071146556807964222490637251949999878379982859325046748263787947144174419861416164502066302876218342419873580558513253755346569951193468394666999206337756277523168985325474174217119724907726059939785707609831517839400933535665219180057998997478761770403890201801796086717715881563970763723565242423157609667003908448660171474923627224584731966732840732557701182138844249858172591861646845191107647269983496703694634025610665659252444258756436068163337647287653850960875115358867264930916359285438294438482712115951429254802099127534440407363298166847732518362288688177327962087859907189438281430543295314834778278195817092447059966075034762844886423724879185111959250591984217309780611136688757678129337768696538642241083533403873567809286601058411528875179528534573920597922333005234719484759139680324421020648378533328022283884695108844925046981645580021518986360660755574862122498078889595175634443506156851098296210828843614757647043755515414259555632347399122817625994006793489557987112190588283285111185108530063852831331025138483761159714584025377895666548611371101957193121585975824433318932055004999696736975985669499702769814695479369455737488655586595810659115822285471025765049321438242017897758874917111678460203302143045798285010128363766593629558556655589838822838101518838665098001567494610132336434104333774963034911522561431766912802299009579213563074351572520985073852512320661663770666624775342015826205080752084275293827508942218635058788930494106239179793002574935878922272929245246931187927223761182235647092688538271561602581788666099615001628633881562853240950023007254567987958675216541226813110293954888650362923632358094556219287831438495331234445935953933459475854784104349153620677186794685939091828626869079756607277074261599482615733568992349678787747860897032598210387269546972795820726985955774213620868085000086131207462108808099878593336551698320472881774912204862671092323468758806434086876104108037102501743400001318617353348541904322627842214996158733944330949508337270810273371329056698482609355041526782661482339919595585065791232238678749006680489976423995137896770893360557985414666686130746477807753725834335115861666089090424480974484728994329313618367997875670213774417003747930680452203270329296573309647761385517894523403196129381868441792333899669820465730110331613807335048499213386563459246551356783580837455901505961003410913298171097233417789222384025805897276532595709673338967835935188384966150839336314979101602815455155404031216517103733117971802656248220979816437751766449722652056935043702109481406677298575792225522411475540957610772632284240818738170376988859917792165993032904097423352332259056603366892444788651579964916969181359411171583571612905469746693638391530659886349332191780556984305708272353699082397552636241151258070753906470858504637392342124115045916635223086842758329565272677666930899171505134418028351525986008911521053039174313308070242550010648782069106425558202152505826718093776750971708312736658156837131455369840113581623235867082845730044065876448087553663465608178469018830250851255743721964081344240512414439242376516204853265651461673198938423483099046540592073013670617359107756491928008041406046856672925337971885057338683115027690783221925577056176335025926463960019002619855713041329222945877208906986216505888990948027146400022775275294278536217633424439954135552224446792397224882374607747712278599534499467014732279211189116976483478001358904490043985805728041113146825601045898332873072041348478165306649733247116466837814431299382332929782395085281825897375499874183833184428433785616088488505055701043604763473837319750505069899098907136416280864731564928895567547156321461101348976266070364102602601673063771134379639262256195883659360937134728271568950872587815989094406960980430356026894323207720988062660345288497345201192273114072226735409307835582844395727085893250651734347372180739833857986682364294171294068527077492308569610509404472743915948338347264096342384289761480242929628108461334431616459873000778347242022010705258063309067308029602740179719524874563142858739811210653207692689307349775503120126418068205610808120175948038872676036862488732961540087296573436875186910417607105595120440922677160886946840232816008692457758385896213581736674750201635813719963709769925302188251444843360178851550018412457291326761905110122083734449030823275069356866950935546670892495941797105491844882124296417876325741118270614989952186065891209740170559865414274895691614435438519560762536541266116115716704518583313375685112655536791011841720903639171102781786208435439575800951582975036414630640920046980706309657017717896022259056914393451260121945464255470198496281686894094156998514743395250997863284973950830011088494346582369145058551441438199322541534440913142613328415665819523552640451186694944261394765997562626311722720608938001086720096566622093476954384385196536321486819034626735833496578402093174420578625039314421030639332259326854384590467402005130064688223000431784080750029088660617757608440818568549708626128499051012251478714238838173047605261922564151146695419897572552538411811500756529710258676878468255866467507046777396618050575054952406748902720628840776983733502651094726801543359368046079760585066579590568173235890464940827110521327655291210502605943185435479766055676701624220068558687381336770637648364656450071383123856008817505104308826953619874208373936105605629141687978844383657895747549969059831625281417264355462374762765231001597401827526577956483128326920990740190710468527333402771445476404276754925297786410492386542119823755764111684620627290216510348341555024651903019473613121982876964103818892240721714092119196623748850895982483809765158701203977088933551638337100668510853966372789693149902566549838221062551282333601074377446474296077207679468971522716603705432745801849378111760740905572505482048701799425108923976076874222487153996356733857278952918043163429256042581097461528168301949310248294321319040698994991829196463784335775941483726865795771575239386163068907034316220444878489825537069717278191003470491118296394550604249412772955989850103448741154906454737272715644596049928943242542977275206888975118426178570261426052801796076057507562219746834073712771708751429632095672627258534880460580606862113334894545834616466146899056994909806943535190006711376589959112993233254297275264692474155281933257354017956497157765100398194170990685073945940130272978945187657462155990258865741270728287394079832612465645607875607380463214131399871413038456653701025650053906801922576889363148945269307710492988864366449780926031819032082113383750306846791240683605734765028181068618568488559367132995460651778239104787883854823602268791739797625624098858948010794749991962615223689494060803968902291517777832448061680729813948270919185760740131028230169344609885752759456136016765694757395329998556574186588984032355791656496024243326357024463321247913964568766315273674313978804987975365435479261106997998706653100502718911352829975699618069356496515022488844325253543202158720634241664117608192467204682907095113064694331089969800329885266976053575400053497048174320428901960240526850770539301818926581497174601367096899641376599165401833529940241900958337441487688610719875350314111651022594332467930929151258425781130622886685168870793637658663976404871540635547345242872832850049323065847127328063902530605242187357068646846017807029165832384775848235176367082396757279755985491869504265336355055312175612003516889041346638307007562065813184771420400147549250457304606841423335905862767663082575035085714434191972661099415862375825392985496053848040017387495562880083657611142890586697250821291742540707970307445097779518556075707635207191570264664374653709934497355349183171370433061788672517906127233167219197309244514926814621669048846011726562851698078107273026580763277535889835383952076174349060748790095864515066252196762428631997036163642115102581105067645937040235293606749250648376303609330543882078965211175206836899261547629448825018482316191190005218180058898981687318453293203365570828287223472283646965186249054779381765826364041349730578271471237118595180776610477026647431145405448403299141423054701549979892528000667896656713337226502057726053433562609807652684545890499249810096665122481117961369201081745338688455632307916665426719090878627702175207733991943691703923368246872189854068713176594298099398002822979875256173030835828557904908705419447038571730285438160435365843350713988224002775504253148907476268469299043385893678669575676048916142039650196679188852006681637993285426607787096691880918256695722533984661406684305639713060185606671309167485284919127152521067055714310744382421441711157490199825992091737335969977070072694154258096970701261894143369113918265741334343973165311645561810136744869110719674431878594509661950758987757966876189051873382715690169074457057281523561025430336957179177351055774225454920173618342238658137358005524811990237229866460919297177321027503041565224101274644769984834004960352672498121479470023304593048897430822507325414036517482256908999744458199008874050761306735684610788764738364150501231610913812169422362428837329144388836782481740081511408209254388586848334895029331605581349770573878578148208845192567989765336617225345631216440932984072404087842940604834979422618777803266522800832159332521142887549534413806975060784492605767775828802814307075846770401778883854191367989973440456238258423166080402876887329735536869585816966444730887972666349510593498900587898447679993422540774073606281684369734738662001709077307119713819840244792361855528091827307474371660162165070796899270790347637436996877067247790521552442914069088722739213507485914230301434845296268842709649523367860358877265800106905704289258488199290147940733167934378021855917609029851531056776745907269692369698499638392823397324502870124500600574445027732671088829134548876864908886141266946441012759425145994471550387480984796231834765747849334687000631488851838987050659722158154137658567331602799424763009236778155168270782418635130257129992074451928495022034629991338171222077226934426524789723570301547750333463483713112431950216691297670185693782182546967168775266425415708836466428905616675143129430011054478205103912802972779061013934013601703836073407723940408106691548798541687599330109050659389420496018198315184793469624846791066808315963654651392814447843765198382188687836695396606513094772328042263510655942818357296235870544205469426855699148947164928853377134613628828135080288141755899037888569465105953532591766606337618294071002138002989630162780406457961820422339238319998194708351985039778828271173402684279711101718257716920418249600178814488212935133936828954085355634205526610930815523131613294040611551163021007598986704446599642130920681447552126224234569525398857539736267085953134226599484382859762400870048178415626397967308279166716104724205829447740167790095444748480056551552105957196463357068257288736139600924183751068582662054148195427373584602220071360849335214334558675985197251916766239087815345073081700577756782939487864842276734717640722827467416838678892742978385262290727055082262983527243347551818974096487630649661013606404591611755476051646128510861924159771479372336703500434675446018216454733260242371876813175443026677796418706722239705353986008394644496949282440097467529685116289169682852274565469959511662653385870432126098169714574270904604917760715263313702722172164059280285070186108789950844363892769456858184970037029254145923929914461941244751868532767761310079052614145616669409466510551194335204159797637185499959874917176630243976188484174150519289481118980388809996757177387450057456628724970238720669287437474801177277625040747349860943261427056219465632355070610147985957513040179282325725962159683498300846918454796129050826943397864563693810166015237461325388579000302009040873383441000143484658828324845720350857840050646978640715582473766983148238112728880693098199862975283756887809413570367353455971471506366436671211178385100851240729380097289670273211043807797736935922629950342011262423731906932552050133691823218861185359525490505738960231098717528186546020635926700824343843820586164191546875539332541186951708821880058879643899098703479667217177609430964391395404336016601791091441697221401307848976487887450483386945497801549937896022304170824317086598492464153341763582440696234663412721152487107734075213827693603223164915335716861044000575402988040615215912354414673576284713034197190596020792410737715958003890223302415207647545786385350356157491895928353995562533677225663180850142303142240085051689063633645971449887401769602440875094935915829660684780222984405813531292130572545066242982211563965786330451611867552440510983489632230158999957377933372963223757647065919067259097840878569851118461949118229075133013242799483326839764108583698573417926333637604760559475252865983811518407720198965547341424707727171344828190871965852735381019609154854264415229767943104098837463997004687908471949157129672006912420255305341344331996886870190550091574697570231003632971726040093678636136880738026659063690271508377080944580357053375690737327952285153800078839813561144672049551636187250890141664666136003326820898477270241871450504870577391424356851901869260945231171876383507863762015843425830246469774403471274465153414034708782278347004776192745562305535201745254533798589876353647254576260461164043494235238448568623489198726554506170131155398185957734018633662771679793010835052937072347968183669337128936098509860673882646293245918471639222567470201140273335349057313300864988378491232166395236054474220257738945380249132901425021174202296879680024195868472344125458585844552689259548354510572319388776907190370360289301236145878936982719069736740846992376176405363066633237497304895108457888763682587839813955222794827132221290649562985361699709103275653383278849612189119062081214141874890454980216421970503542071253469077593984334372492868586800660873809615986932032799225009952859345101959260150791578758146155926526522617742987674645765957598092459388263313323271436892495623023431720093816511774231566339560399300717271887350537247928993087203650313591064271236828406150232023501244529868856564297026998366066647675043725108110216784043140558585130468941500266682762630612211307177233115740135343469901808417914721942807089941592157919361545805102787563201941446408762073282373274510633013529351004475555251456509594666968860508028377638754135216653569748587723846559621388766848809502903073095759461695109791560503940391631252336663300229641617054524594093215267368924619010078089419054938895806422259449325436959607679794831687014199052836828186766511515564301013951655023040749979550570758269186273433799540493501128570331931356463802098532682664253732616821291789079961560475785119381650388778134385328205017570774115721495815163040385769155848718739940091093059603240810852127897968463005890840463948205137391389530787610112173148976578520599202032110748413258402455823759598117232600110752516792062006275333285248120439104646968000707057946985139012433895125117325162681310270262538034415118928049006911099195538523589639176304526971485637401149975472944988199633448262881280363585296925605763610490916449559545496677527470550647462258827278995138406365962464220808990211942909599072494428415244916757376769390419305960480403585982814911155277142503438728617409094914932824527333958455815492184864579447859177973770628331090291737635640758870295606037527529955855487403569558565803710830498510369095092015946518445148509131025047907656852816770505679765080059134564888970141782829401726733967233938760911915470976400474842343283595719321436175991033220203107233095105459191207215965673143042807208073988904232312678753909290702787008730826341153828242674110270465432134144615923843932163737362355337078410082828054996231559571296095389110428411764513070705954447006747196114677263388644139045357572535331002546809969595459838903955783075567919929546294677049213394867076843171195114954164537958151231514596127049789277977586158844707685767129146957325970666155752731645858194853759710599256633427474960610310701060494778378694790729484593123279687687045468366357872279783251055996214212733566884003906115884469673836406292532856354580188482290245278680681080999196352974935166293280897025608730231307443289066445334303211742178559169525585190188550056456135769055308447235358527541894374405659041938701766620577214519046803269762882659212232379384047244119450549386387057495433495220700705688300713561995252855481455995974596164435680216088229197046369039005021534698668387104423034543439822980712967346951535493631324229982114718652542069946575306085482052664315801242271691467748331610799869971271378570601785913234353802457939592383741266463651916945575764862589146805228429111390045504415251053086885830917850729678819099927247946369803594575461702019343860229107721504167462474007741227975682700912204108047172146939562250205477245658010653595774759749363867935109472367269543208775349896440135058679197125666459056626641293892675899564140801621398250174370366861875815551092482985685806195623041697776539419977956185009686021496067335114919848244025757806432676411344250486501550182022505996884845847892042166727497375885740264050886307690776473438783696763794106853876795469825653764203064925177123215407340347239704613011096315292411672512474155416855566107183547046116146988505148257816870642384152975970136319484713603479306482061195087165947367337859258399687878012221481387908122574550427873569501041145087966269230096117919922639093903191412826371177054143091330766095097978932234693168902776727194868397433322283321710592610086277286444380446604196040363799399079482008809286435320604431312608385035886566444951241975955123745425713474478789052422284898186592993498559699788135769972390296273911509974881947816904131460758051760589722764899535224742007498836906851097691642299462557679623659861872024155649421450066619019906518092093190551321464962187498704517240692420234741477676496097343909618298067324041704408923151185121127700085209925310336946933348177744846288939056971322916341263087704272370820384726734029986919384787810060055403401344770755432617844691278849092026584895188662844870896459998735853919954929216267531290157618689488569051693636042282246486594913063792363706592598734596235942138449339154636469559453660510732491592336589602154892245093806357296407627789113551628863159695983659177628131526209686381099049214852862001099454006463915694710163285812060278105220405086946429696405343561483952036421521772290949701904971722867354850798558894125101783655889506828868695827575356121720186031212979879209899507084950247133488218710882269601847964420664759242062673334226413383720311863291364291992406211464753923643221486387372296008760276459480016877153230141925471704417259899720384905852209881842952999258395391059354283144123262370948329873248907771389266572694697567966783969390818582970923773739890133575969467380625913735443371167092468732285020456949180427113109981362737522059975666700043990014041375996931914373379792581320690470448204756842346889491726513708186845898171431232579719478004201360647060720226144713315659740050044209494021011137741244601904137300606707321394391906884131362223518979083093891148783811654408252824703319734499226218609550200750831274416850241784040021770481205971202879700815296235540258533393528703658406709387284543144439815726287041082657403457595338381121398021046301797057031094837863097921390320177505828805496680021636248253144975378166917267753544893310751044756090203096072901817193229280781969686418887321871900926706396667987993728490237396785894389784520911394008813859465122589600100755895615471541513701708772106623898127322394953499934045181269437134301277527574685150455901806975654919707024976298079576453344979176312105492311434889797885804023694717876250997938190665498356127004002660373943494210173758698842104638203727226666518977876194316885636825660500041849219859602847475631623236442614043152987264747062813132565276581864731333636332990845849185325507640589872576323406909400587627605631798093085353139901296786605648897205778095737886194335303715751611657840302998160019286014176493312852575612922281582031030108186809890503800898521918703176237865066573423852699043709088584478255012833314061447274722094748065532155453842134386231528250239393954617476043770251571413188573268074241445875525777436906118426188335677626391098688795878862901255124048592546831083748976881001898099046687095504190973436822377616433038278568264387864248187354273101758767598959593550040576994729377648641233230560898264199246951278162746963699680218873231392325461672912096050759256129734451226646743244636608064373649596202942966313638000688022909781219655180402921368934904157774459441969439340050812343734847033706445332139082645667648447628684787527027436719906569214329074340572617199268229655557610568694263200548148350723248805151365383672871393622486494259819902316886599784953203941387818773086942939574305549805290409578815076173115496194761677190582913498994431002332436744553352370471895089254295100975889325752497690944859173376944546608400247543684779410843657207279525578956848712202860793656860861948299637890493930116359574320086819006313790061028693104100616014042614972909768441238705601128474473108381895165091384797979164392719952591639724139922693438245436980042960645330899800274385245337612778269108943188474685900192608193046844528534888918590866419738563804000689143078073941831862668857931439362150309432837524745015298062773650451559846048522773025422797132490487228351417749535604397236536625022883407240534446458103765943493712738231465812377809940249096658696556324949319158583375796864422023870558671060370523581477849799321386504868370977783105398016163449254345245998788847884661367640679120573657267606043197832368151564063550304947301206919295987040614214886063600648542771357604683944644168013024926693684965191309104852032789507068629710524546616069778896453159990041151740181401832457452623415651031588602983630846237105970060290191871587825656681380227112408602299810479842294273157082823118675080359963484153076154990933685546516825459018528648528338999847171938377043344489619576187606516482368008372013686943112387655557490954094083844690085789933001642871899530290304012447464755474711134158542345473278696543374280549582964870567683871369506096583316142043801238403853726796936333543376187477571549163013966341058466274247173819162817631911165773607523949112660630203155680989509101457570389895983626779061428683680324612702903641972795358956086321491566473964311514628099430143055643275635503178739056565338841849302689398920868676872132396360298147321226128771894065193550115673399787311031369208257031748117313221917607125231731998841145046795069378782529938649408955147965448759334321442437507954977698087261101902439207653003958852477669763963184247334085890583906094681955240620195086755296809283243716687688295131247608679096812724064663752526804234153865268027181780937242667001766264502420338190819553849976367387657536310851284664590714249785829895251436304554199823408711906024924163636724821762469873526185784038787784440858973051438442405154945613271885585768375286001204210311337957455677256395429286181988402849688929105061520790787939353081270528916571358319952824970562860809745697288992547942039725616665125325109021832397683909167619276046742698182011254512459271455630220929758443888341697683920357388214385038692364891112096276961837457122400652197286746372211514133675051295261457118501900458181303589718491446352601320238477777966314644731440236814071172099577325380879014940617404169161754647671816090274376377584450588860111194348359514321948266214310505557922457692262606847933580283887040872433305985254566769138303339492087963085296421186306355225875642811400488276520838645737980093478381227799054173785563977623643552778855980630448665343969479955440489502251416045777674711097800979771385211428596157659602193074620410435490753944475851577833486900323395894012998926061702523108534081225320232115489176509815317946727309193801131022853619299441975080980414822767982792157098760784371654005599273004561744148148617096114882156117385146228860070198022881770146916642610457214319194328462974986518146431781885734852656034323427358824380522309313742784942406579034976596169927794611090132747759169534643210474069713514743860608745585647931988491292253700285319516319455469910660791964525012355325585577875167428144277160321629227091046559583166663826631913069759205335737743960760169959932749871752460811889527111436354553712530472471643186320963078385077689127015752265995674332385020788948546454695118796590163318013892827689010300846082800574236494116815243773402300564107505963952905857603304684466917476884330706579236424386232736274353436597722687672912643506885069966883536781197248747174921549416632238375853833544127688540870550251168802387992152764696270251492981684767619843125936038089535355225778482064628660367045220606021621635369129254752292427700282646518114178689455294988782742452396115302291954383645945100980555656903286122153693401250678906988114880274883516126585156494795794805443585540916226265915194542099541073940111032224758116651578862995260612268943543832828500380531202704494588082177357794688731014742731550851694954826250855557274026784500118529642499912257431622527770486487571377982115110935654377352841132381134493870587690627487990989344804378133637660367762541734544287093522598105018810125013853382972677789827868694516119054338841321256620320869867949045118814197991329277412158609147934666206565310754788345269256341120403319552803130538672210818158287674052914486983502963241383749758508127836069386268084476392491981746324865281086823729514525616071298384146104923299656879582883177902289297354774035875368508020232603237097239827527591737181487486710561446959294611400213571567545455229633897438236415345979224734161927676641324456904151161643022889903021477514657936295870614239172158858706165284539219008405951871626207826245224547991444991710752575075995443112917258653328742019223930530170670775276003628444859444482542780308445088387565135425634562170392598388312999984058248727291739239495229455908063995770458450971822751108548193921990834246100860476977135088440196340896486761591200577092098842922422683809465769655706251263195942282844436428719131422861226341394984398616657262597621399609604670102494074510733874694723420542428305534342625678296347086887330513081948809962437301079286668587141490927960631058305023948791625972338399140269249100334442297948276148404266251435604977464463651463616145748452972918579874258769495532921924146744174225506639884733535897344001280259516907398471649279707651032658023005158525907485290323152364360843282244283952295099461791247251981877836786186991292557695832934546858452176216124471217365993027677408735481533095514235552515390242867208072390061304484829118992221133393912987215659963318946143674888940102248128553342203902599261204094905851830874991591535388480976213699986670003138812934868046542278650950341444093583450603932715705754495768748901108669529080589872017075516106914344053469528218526388351238632392067823206086476772936037078292417814218900444965781103547722207472251646725382033593400443490585172259295735644853088851568687622769043570126225162648548210508725619133571191316081068160865925242128995967116893107483230421039107901361314212816185158516383559444660530397200719902916042957465294754766019044539794818332948878719773383248141383781747741255102837796999464191826292002631558788530352854754073840800515948306403222913472645379373490541834157436847440857434553302411233516003042641256286550044978676914781747463171964970146641062013824819534086404695645954746063286579274083786510878664115022089867973671217403774840268457461346447126598655225737514935647846551786197445521317916147006935511497521907741945699106531707500774603033526540025364105985098320742848436491720205360551865368215840562346003521380063041587654069884831459673699688351434276162823261233791766307719397343436898123581776552747543797350540906801404607183127931716794106157042159353583714006053871319589073078419528022140240018549658771433106348530529498984012986728582614389856660515969543275356522330614009902854653704385380918802566530476803092170792546807155249110511999057199284459684161049324988964979446774371061243209200979730277108198213124266369859922007249665675287254515332235442925194914287613874532251837599795114459116022473539830510783533688001164135607844050535404380129394321663944097147849968175770675342581066335742315486732963268070077325565846399252020222992269195249831965612884251197590636000145993931242635668145166716909243696644329424866040945682348457276370511810138210765462207673958721591061593918931533086480981165073154294795418822612143319736055187818697649144395535303660387349374352154488106614713015790071398277769978570801688126852470316206522181444872077113502701359704421709941155547212329216107339164217027496460093246504308540495099986211113664001677440309078517557131594108610315970882927073343208259151707523436314233395687620576286840639159719387632859425714790513537137331497869157320171858291070108014293292304670078930992443831162028198469214262912005585987803212510035100038242897169642043898037490690918753637955868203293213029079994171530621817906400398502003502925994651134411122825824286718437850126625388448151840282346378485050472336738086032270016780241490386274675699931664083334908220394321063085114888808219317969636198543077068428914450997170359146833288119505128714847807818693427017818937574001412165084990739974431818122568339819936813749533813515277244266662862249036757638438313956664873690711057196466879234709434538028156765213771317139001919540352461189212098539805386564224830534511056746804184362817280966513834090594522446586269114759199065258254605435921828732372155052591443760310018006943900157603730560236929887788377979216477117711423751509155002373449797548734707755643369432422531307759458357809020491558476507792286587718660761398659292944908177553417402712170254727513545532922539591278165592500660279136562066140351596545403104534337529790883822957976221607220910906079377437732891753805121392518393990680338090484230813376566302972526237481721122195291979037074683880449076865628992519089140783375020792398776529904486016014829499999042940140042106219680907249121475191304800178645177438053052678222619600528282121121166348228454134857966747212624173408353234837610394082124663105599179835822315735550874516044056822741008759958602340491903983889732428502222044685622037195014900821585039649663311868988815260583040659930286177989871357545781086164689855871264797782548880265602729567330788012441376028980145206952179052454342293101854335789449621286192846592699207504322116009572540869957382292404599119416340789682419479820512955786815602018146308890931499586755408079857214314378345185494662370761580265377840048917336335590611702986019838428532247429538516966741495505423609713065891897658389405678527586572908290178321842200248618847264995415400041988213542868955103030065533553703458941130166997915398613882911612894859213755491426999380602432342945683993309188609290926456952825955200301545740575112012125129163698970549365236705872568943401724199577262412755460710012848859179379641750267120129565353491231742245828282360198271295754329897126319706811910551690259051932865520807637489232595593426583633497374954291437304628518677376551883197870952028160416925762918767511931516117293739179135013834083210386211058034579778024473442562030714598651439257181454266383353829484185955265893161542065159867717125035796120942754949045237305886953882621447198880245962414778520328882641773038213512532625053674607118172764440798932421818328196243207450572256891103375398946184416852467233357529782593596067455224082391954844170298246556236411357613686266111583743795115199375472505840433262313557252003901537489507138075156635775855146331300250413209382948995931080001655827845931416430843499928910900147604505089892794128915573520515974545188615899701009811232088955906827368090199868036793089924811361733156782437392638603215938316669360666520976942405074250881329883351081045334661752865565377046883626756361060445798165474517821514646101724664263012610242484589217303697814362170904805033328784271326213648797042707218542229600888172686199232783706489122981714875724345125524991065001339967914937374805645572566445034170438213646965244981857366662628820376454657574130214231561830166795452588427180257864132792933471955401756975056658433746324305660224541681435363449981619292067225025978758207945196016958747329064475189680621075008143212622002116657278396681781369885151454369984419319055067960016554841625138089348505576767087267944828686160099488713269199077584194815996398288554056855047871988932010259609099088280408454585263469206420515889719994277356818940514399327973294696092694844025482427640465848739026184718664449549917672992457300724889980620345475467470016643482752146293972767562821721084568617166879591638833359658875070492489560580905069801838271763497378232122837763344419020749666771052199385511453452745157507169206444471442238163203743654330187069057984037595814574094490061268236764776909007353793939038833096736074753569307879233912477298743131099447414639699580734176759921233244667948197436580521060784628384400132106351274108532402907245567735435416718977321269751674190462823159020707351932656040238106391180063273422231118758793162301912440987840583117432839416954248749742976070612015174573934533380389111116863072456955267747359377147256398483498837083430604212994885097119366330329615493677122412845425210405675911457984835915792228839233928382381912631038053138421842495125293984686017808472123778931083313197726302261695414575647354398679661576718030429554099187600934076503984675924725600464490347040948135635749144635882822565913279805910138482027387357337145237118060355430029636686120990192791587053105744606155188432448572145865985282037661475203564851133352325798025953037230660895517211291061764479424926005817170806108645752990938895258727678252050732480231061160677254916878381142260369822202095856871529906057063908608504623091432320960185473924203616244874536455142269238368994893528824835456844624396370856907055669893145052986397414964003902753936979995714025305094577726658374268957520892049904443746727702566319214998667031228472225129535915081956912043830185183401770821674159439622776254007800011083528801882312690282269432514349986122432325045189358040176637219732300239857591498421949855954711441842110924045936090930931235904525468163803073330439776273702291734834741206812788850981222083101283876334765662434932522154159425733486897815473047255268745198808160484054045429842268621128748902356129635142074547764102232437207011364626278822631443089745126639231050387153443316932182225962363042371886169862363089391519558654619235836262880395679669244879959827270656593773107444505531575264381503687287543091784549503149019146639498249892020510509114917153941193472094582563626336297625574118444902680290244079539689575625543941608102427021596927081278195833517353808782264138686311920139548880890106933389167589740441296319951063154836248606450674736364674633045536749453446003937697851173712385055183812805612525239452480227546760941112396500282958001829089137724479274351679929611377494374457913196907060676941929995783987302926618695163080422549551193850570044347402705329624361101897877712609238319850389897403990650864167083445347881670423367014984410214835363802450423023315617290844206298663661744687884886074205604103571704730361550452324275584290662214206250410132326834787477299186153054289908737015248090972914944731725784416428033202587600951931334292011641870790924332278727229913995830951427346405504773631950469209290948238758489587546709350034130562460005951755621021306109245062002166472010460506934631684867200200985630370541997455916496233189885127778020977473606567453272826961022666515780798128146621873800567592839642789515645168760200762888499954673850977100473469720708934678306248011649400808614331729851574618245934496006582517074585478982865724027920196199380889650701276719393165905635585910504158385461326091904818403541641660018759679450617961209190585571282619233183408106891934925602036878947126659546224236318472660919167733535103716668128840841692362761392409134102533516133019439198317462800592741026698472302398498210945710630459768049296595729125760918122030535032055043634324556358824393684138665975409830179990816838841258716209511794894690343660561684890129601221378166404395434560487783250830117206152345783999995755105709269151206216021828783810709112489012622264593486695855983184183759166849155143514769582671807520449675289873659218103211918357132104948549001023791790998096009511613710914628582061985941500723337981352313828668929079381605490299067159234871066948680560270579305927613699533620731543923571358020361932738703617624985025442805196183986990618057516121692504704638627101468357110746383746731587324806383452620148554250806783484183341969207217158120554408599914166736604537090227022011328188012098202303612159469912814900532921428699933740658301787648344567495487884796069072835583443567295199649780857144469551772742461846450045346311277275372252049283059858338593924321583041913004860825499587862834082605576185910555859221720434216640551657710858928563899597514257815934411009586129386736127088550259392086464036849950667134848598512389381320403661471886881544866286824336706313567573107504917286965348118008455552535521558062601336975834665042362598183486171237320801489015369063362887513289317358141259826901221772797736661187546663302853971241972859072697056680214605995963025663823689961736216144937753702491523256463678358326270328493481480860717586492399258761289532926533453610640072860216666845712791019769735017156558490344112038571443771304544058483148548729568415647344150118486056961916217420292192220441715509713852800590059646341938777753410907088412357667262694651441976386989729483059889279918737996652154832061573690668701256474454583829702003820590182649039434389625930955830345330019844490261511881968774665689404758231721009516837344013123108227746819431505212111629403092800986807347399906590329485450490071866363861428371945499695967089889292182116701814307089970470952568382667750298191974610293505647188785691118171398744472085022459372137248602654340987992532843117251482217537969648909844153156692854682764123460274650553362846816078321032875634828161778780249593344557447627704045078234700839853741343475547271616313706942869801998297964890496378892886523289559024327333978366200013243354675559754962761397647930300934456790538534382463866772694032704470846845446898676837615457858352191495402299641523136762650743156714603737948766660531667330851428582890910990835665576458823067248325555334515710096828073507190375466671134029150437496671070479654101905946143014958838091381040214098305279775850269384665637400873290403691519589048728004311697801615372187632126894187189097028169552853636963688950539762035450848532463532777412639071996879954000747293668085009248601925985276018582657825072674620168599388759131185419870965685815214954592258191712088162006827705730620615280822243060214856247357159670680089719366407019387194847196163646360928812436198890251089384946720373676470589230121857505305784994376267654958960964739082243091443498568040462079782302145375467076994936422474064945815485770473430212261081094755296344405818500607016675061904991832134300153692216769933644384043496448837135136299095393531251225447384844830352506013088146475821103209221462744635106887207124866829369303888605973127110489893123933897468939079717819652078479315045187109401416707497516964903768797852738342713632073969266725066378567149977986351678069096964432299815538821173250314111447637734933025817117382941639057259641422778866338146923723959694588836543934312326069352440131602595861235045788431892834850130209122881955868794665112814423713496482942467867766751211964392069890792453112065108126990540448939079633450875906210360918941567398138215399257546164447263756587035777941114461373927628807498364935253960478777809037761069655365218471705233036044662033616108376889331109640280888513723860134004596723630079603094372492554506225402601362342340741581908645210067673853573864173750449404887780376264550143920124096742387884015119515571417868956078921115062823241041515914102002432519952134679961714249808241577808110337173783930012330544828502079208795624276177753392437593369284646123880603537179846142861694966742365722470059769592292551322387397164788684776180484990754589240015994080985084226697403563003858064991209998458215861800027548823519965860278274753055848973987010123633474517235423556451397571667648381213274779457869640427141799988098192312472411785497637305464893310586395514501519181209659199158307689398069276000345514680051621855570234300231774386561336871524427181723139619794224613214480581674673211750429822119947081654577451461312076018970004467863772421884136618651736639117591712396441813944767460303269543466345308443834532080034183024471046550303042151236344404179131667630451755276710451755009774059877736954451017180846739473653729173743053876711388210989865266652700817240127287102167613707643185925026332382203894137416461808618812892995058828568592186236277286235009880659358789183474536888213270583406201339642921759195162659187912452733426232816896720675913886767803996304404582193632865157944834819437187579442372750794324424220496729923333449186574998685588121350862635651048347311301340800372044848686798566524769462865912044271623421151787468741552327745392879596168407904424207556972445096218467646447867215512353944849639397741936771443743539478371824155839672353707175927657053183477788095130940336910038931518699364534509115708017991830335413821696019467479514027402154596117109291785260081415909113684539642854313497244503623789146711158235607194832442259516052056419091805702058516601321804950817805662405523871218736489424847461220621423759737197212885000064632847651193012377173488213935299369168017922326647962768892538584908295771427127179213758049182829096089768960068868333207704196327880454290718485278692058004089213690425531873836750233082402673185641752110689330277847810146131009062612176533449527933386180786799009563787754723265686164626549797595971305091451596112380283492595308508277220292335249070228133125655491956861408089729251886222747547338146918317222505851811948929598500624825875515102035727836419299818604994709831927360582521545963221346164132189836338204734314496458053241223821650702022547190089312560337640679539003544139717940050921038206123700291208829305458845123071933658153070555133632293566556691081864791593969673473607874407311828238462532226815186092773169164369665957724185656823824002961819516344086346283341226965297648658823412238021745797170409196549303898037735525114724733091117439324497509776615093147547147632584379627388977344767723214358896675818605500953313324507361099721287516330552645427092788828923182619900334813518134865650170007434022162609022062975606209187369780465359839547991692115698995413878988843825906407034435298530868586601973690473466185688835810465500095204375893707410136691851008507876172264554261160605608904303350744661682625723398166189606854830201291955044984053175717349031062938840070082053815576594896899429095492437853912976919253617606628740866729449096708280904111907600431937439768975647559916921182750126371555919935801322600937871457660346212217165759745247623191772861945140995560004688734149605158373911194459646678312883918575169358340932405195587715349221380197679824437632687871421518185973660386205614491599138185542754143474389423327032644384172170099069555945091977641181355940741691960291166822676995309042046650258725761358196431939156474025593314933694372784275641732672970437368868063004185788110177041891478284601282171779700302573451117484641824974265095385518571299294671087446803189721769887068854307655841197151649601970962651860579075261460390037196375779702440560202356575291981778795800684884911313762209276556129760603560312148302214518900572408970489955781206126810633002592764101759857930513784231801507038320735895529607743936877637104066830794749344244794061513383057978475012808371703601499876054973122620659046494264947349830862938433388411293614590159884376940328902557183397530279272637763731728299261991815215466210892800818735939059321801254651063721934686498778093678310964083884321807522781818750493965080890392916928074601155283081567690569701092612271896491373028457207844783030738011786500068822574781920069140274649032195209801057585922747072397759364296082751102328680897011665698148909273263631318489282480326496566167354184284810685883621676260621757014118944401373008701997470714406102938872873110293542706655801168660290314436379601043713513154942790740497293782705349965513819335512679845089022476132401974061391721799869932669866142893706793337679142930620794024739516473700714131362769073369727133326685275117978910766547684555415399622666081238009368630694689427359607399649236439613991557733417662791631258813848481142241783602843963051204205285993439345345185743980960004736001172969162789269600020874488695682950136428507013673247861912468442644119898549504234679781459810494237563660314201493928330726379982723558194880247471058134709240158036160848753109683285032904221684225941899767257599976338543495358167057392635849915119931313857578327571611605373302572148124234113266459459432198300660537351472661554208508981055433391394853146240640151619296362527712689032106193124130670618312685850686296079408003836248179027239443649192861415329045667013869798534214450963480935349090436548353750353242197022326291057812115208046313992677081960479314737494671342121674218574498410266103303356210060065554216161551674224221777356796861327000314553140409275203812733335526590798941309019366031687793598923202630729002018950856284019765797481007331180659949416280686054892593580346055744339124063067563657807646711015234069742057659332954411344562572316790553394681845946128726581425148577614785124087784103821271421120826502540607060625307020377817436597577699529582051103740200825236731786311999923158699279831845752844691733814813619929867297066107548567199602728709864937907619107016468416015220029082176168009355428880424946514781559927314338069992541728717690483422837415089239326595384243008698944019845889986929794378471603485669149443784915283164151965693327621703603227720004692629044889160184726308902716517451063875227732219830327909957962505742574675489434719081757808173648959528611572638346617932638352727848624650943408646466289744129091512898564830504625856966712081376143340332594697790556234165368054532493818642030500697715392869994990692249364899577845828722273863362070948031583991763981706390701696612761176200949006847526288399763438259423784564939769948437152968188358884504731207847342515071836788401693816397965100950836677101109725321597837127934145424495150890645103378844446895055606505837101517332692436479504341768100237198822006947107401736484482766319609552189612991199834812030456404942193571824579695513781105859408724139773689347178858276604224450373819458423663971452850318010301405636005086302487028852641567949180736162526734079810090878844962203706132413017161489439933111316444546030723429323633776299126019184788129367938818023349475136724120764041440647264597462695469010016261999746138295756245601020458333046167508241405002732128592166110147037573692382815950051504230303084537067179883209425869561548463489577321563574517327799871068304540479816577301765043690200210255631673593831161214593144752083115075775536874101107633859271704400444524028896500124803561331784657937362977793837772963567684451043819809594765849461395209860966518058565095489226203079677509632707153559641551088003671834602564942544287935861108526142959846225204914297346819997706922380775768968822687118158755385958513952734490468980281916353347761323737368876028972945165133799178860112264539580508772034379528940733249212487939181369001307538748430087594494231850529137388616274908957680763052829825198357943387033473209443053216579855922798662897898183658891198238423116486573006444783250108264792417835686557843392777296391839537356928173173584043721009616059233504090880696546310074284568889819629196848823546490907813448311389092398038432311601638187260684009401713906901454280142014001945302466368045304760707284065427273487112498625695547779469943630742708081760988166441420519084692038838898493367701416324258544566834401032255633006854585876416548697988807137767634819348620116228377578314602420437865510259146227724686959420813022159967395141430228758430511475659620599124757914197456269111873768933930152380231060591355302879302563765369799312460799397541618465736150752137865813410512540628340815266023968838129460041185635011887745036762625723302010503670243080331581703917264193734699982573434552200578709057364318401521512640642629462059004388897720213259837994953107549654688385231497273912217207292199250961188885505735411930143365604436028123592030011681791127984275704150793976978696766143611764942352360001850792914537102713217045854680732540523283162660984517789621468584619624857636251081048973267589777882767200169014626821036296404318917805441384644329064836674267869051025970938790647695739380806883570605948916933027785108620463898933505012391308167435212056272981704427225466989365565137763004473436332506636785845137119423564688819025859033163288885274307075353126852360282600520638522121162252758236684523196392267604515133436097758593761580258630582003560589819976110546678248537471150294783373506413606809141589695871410104901610741766491859730820663228738545772517542330978945549140638843879087313446640515188249600285003759586242515201201723687145664534608206740808269659266187573320823441156470338316198908787375512226970623681263353596571428395427019759420529985572989509775311019717618063045968535421130552372078995208569724142095714644794860111472390945253058811244452249069064399200686442025653258505352801713305006971249043494881954247434952595706418885956845555949129773720037496045385366582283761343229262709470249406708126925766649361096745997326111517584501090132305805053993318420584983991658694068136921036397424390860934451505536511470028070889649306764459010286622754136859781791713235628254546917882554727770448184972175723878889199436853049129480549282848660780541485607355168170223975522870082153822754945790040323975072651959016645337197186877633098023432077889235607859739431278237611335581534560089319086720355837057743692514008990183118927824642002210708071470851015353565505995847400475369669296458797459490278472604936651402114724663996478358380483644370472226341822508657545424686682551979291231522954287799019084161723664753585281909267371819028510704456930984460767408304770445270591593279224236073231464498020318402757469199476712515748217875948786317095441027184218112140145358132900930430136166688334122830593956514475123146828704276926866308261485427407804351827266053667888567253703637652383620358124921999941076025819076136117534453212028700731745759790567146267826527423183966303642657361950702345596012946067532475705962875233323241279721176647815204043261790767378441325288582762830001799463778761172945278972711404999928943172427030959334240458055904514178258020023716134460740542836015552777209069942280674640516715700466950062296210804304684774715978371662276302118320045095294211705355120880400903639444568581155069574007433863337209084429000476724128556229149345376342101924404491758951106501849670486438128559381361984956465360200924496177275185766686902533221669795143589254880298802397972747933677618746877261613426209140835736505635797091187495237776055546239001930350364788385249589649442159983230580978567540896623357618395391123155262932057846332227025561161871997085385399526458807200023655662315959092315000585411711588746404150668565150773361939881251160676079433601652951930980007583961135641074487055307146741035450111245708605414220352951227044521336007407929533638797782987334922930595955990453222123504866504937938254787459503603898463011534514187518937176955708981964740123572950903721715479747858537945927017769893062563328044170864201375416668095145599667041557427152271168054597985473755660940221619284414683242771007257376338948971136338761917781385906244521422142492022564136682805788075571103151063021622983739827220989416706253211262652326918927692431877245696832777679563944053288277110445136227117717484970823479383362416931902057014896526667203244855937828140037235986889813428032298698624393020901933660594238150727138009588691762770246279004213280220699949785975495792220971453114888345559268808577238821146411406874570279023946455316665550462796797221950959851123962979828715137603802697106314533308189536605166894922007355486694460594658332011313151442968491597841106695540482489855063548243266955692249110594275453389583083401754999532850683637774218644056686963440572092419379329939727742978482596352222936182065253114984009543027856918824674074128505122465094886958187385508104537639932610852522419384326105588191378747596939174528132214090385706941529909466508761780145552782550869569161832828122213199618717295321937115425874998966659074611132801054444428879885710292635571395538447191113107627215476724602862310301798480791664058217584215295976933404332445783367541198600090030440955276637143338085988378388164347202497636105137372191477226660525880074276177924498541263500140256386241482321662676592899109270837096116915240409678055967204515208116221459212064408944814185261500934219281039348219127469701945255188297316805000057218668438610816325105364938810571613273937032980990611034262345801140839126177145047449296221912805410317253295661612809654052199044998847130196703314673011944975053798515982453677283507880604414125960400399290257398051365283357781870693452105617418765133229018887243015645042908569098625674639961475618786613482373367938002643818827228005461716897175638085541956430226510992312856835879146425365235923612642995555272769971284120287894168925957801145946495780030495472875897661569629971640770939605242884764050930091442186449412555660843647348974413214839454802226096610812949512331309243919475817308615347647551952702957224787273065525851134937820146289382668848401046142444743819723343413784368277707259045885040389171210467068359826402813947550814906652075998479087104094699188639508719208726918572300048066731197875898439299407966821239347760506050491070089941546349898337740445875705205746705539183444903900709496124191069814746117279490015241715584637462603293236782386693292229979201104295294817909395851277621983645671253154389536866538559018590099715043131207256924485612365759518838454219255215133067194045526197368140665396629889771785151397891989238747514949651212457115925119560752773166476128706421401507644743450905390474510184432052961156401928122768135055476429761487373826461002349029324675724657353523384406774725208043447636041659238633552826866819914552848149531929801173960099738863830127529376192550376269152333630045475873926069629766846663489735140224539027659425218908524589837261847262796952231543633201661252973941681002292394233094621476362217587097284931820709017961961742107150535670891267263279791004009244755744048124507645842098807439044846609069322068805413661228383767157883988297462435827664856239527023202328966108150183944585509295863130580394633931300217397488265986045727625559573526173238099436166167630527724105131853866012023662712160130852786341230024537488630676098687118818297673297291162552852166056590108848366431623789128211431815812685387508943846347720480875730577966600324478128606067985211770488422195961500682208783940513490663703865865657273583330197736815967294943150804253398210187042907167432077681232142233473581440498773493940445690749681227242682768339371373480584632749740738428286397149334994598211939092571225352827204677176288140638156354881038719862996040906383287483008473601040422294695947455988034351791280237010655574678619826516948733273100209932491974188665012672062858993204905295938805535948318975927328519562852784785428271850476586622033367537595902149517655696074601966225635469809430761328722074959669627748831983602919546680073202661289159508828233662689752763345348644670109842392468948754766597063332580588999758079119329521432833525995028695254443306452551485870429393035779068159520001280799209224235622949393122149313687359010218578997510132945857842122811096495266451284940542388305929277215672633789466027037898677037981199479619945727970550366282469925936761024592197544056574559948228118197252687602353553983421518876744086064352213139339597902745009972862532014975944434462172372357134703191348145592681799947723304855006610293293523480661249594057494895977473176541697259319996597571800276760491343848705313755972397219988810511943596808006481829772901437000475528750341045417577217338791684336864520265382720637953796983123359767522860158568100810004351231160653569241220327485289455276829507146985343541460156980729609927372375158851061195898415152249713487186374595121145847225811663235249836803007151405514251413235617960936472391905339990072028632057552950317772675449140983319198054494093516045771950569807654612870933613683947271084882451090223207439922198261390554710168903010087741301554614646114625141974085009308585392358855002636520098598414819545681242644976712851615000825643543967944107368601140527612553721274349228431585050398695445436825124563543066275989534701898865506454342385457639425047989106681943048719687061748269301146708557823111271755111293219907812384308657818481601885814862844579959931983176426598967420214515919943575732516735686513550017442820984965229182081294401173490317841176816759600061192491639359898166977296977305985977257771826907754707364553904835805151902909288821401664942581327121209623440753772501907111627904593472619320947792383670699377303711153498372627048568587093867965052210208392318298381404678418238740544692804832131856394255552514134017766308159837717460559435245488199410735958454285512978495620891519101516478843009021211122131287844711466223626099116859670194223385771793136280383514242081832921982485731044830909309238329713657231808991086534925599411862620945180379568847151929856525743919710775491946417957931908657464187153762833645591026011344956529480350437240721661833777361252394102086407179539244420621519618687293804005369516200778737801355280100707510848490823609818881279191012859296065908013833200847007215891953203673970084194501975528163020439494071624934775797754036217489726250674182808410448872890194270041244162417859534657804493107560300758870698468961789900213855598706677161481948433416502157940058826597510035960271751631306954779642667327218981874284125793683898874508802655098395365955206533289688981637949517104348283853664245607629383925070700587649781674037746722029413664741456257268059927265364770392786689884061673526994821790783379729786706134946005587794702801783076429663434326533574213117024974383425737011971791625078075839700852280051650375246675468714602228351720534293386082664315862909826463989711446532789706833357752936280797068813500243090378049534483161497803459851367704323744112827290463175659874110271364005546676705343639304906072791679999888703013806417517562684906639289749723506967529551548969973844969677385118875480327046064824649553599650203336479915411754759695422626192296069784208088727222453522619941344569507556168685702598516349635944973198576632974540979425265963600360127716167778988861773526015680671464639411375265348319437591382858944768647563935447310072011555967820529557174305028900237600273593339487070011371540901005745131083398044677956561139137400089742577600135475701324518120663799326565123713768654114593040136272809239207009353895916665609098207974878803625338726098136210146977063128565776560166181599313019612386585257529483063587043138508009057970619819910811883228941414226851306636320194971083282281119688720732668999290450720479656076481955754846482923550141526625210139172664925889723098384878469918508939028192519048159699562659480962553721996041303629664925983120553190830360735571085057758363570831945874990813112866183200403704490114079692636772587511525396806986954218436946806494972549269886416614196922657914943956973973353912483851144907624848405588190603741654841535323921687254517415997077076756762395623100512315070972731093423001171396132658273830789853772387969451086515868286907367843939496184305617002900453432716783990942221704992613665465029399831589132374129444983407947069672511555247322391951629013925113861131367367173701037219505377610096208382126848466981155583260881837001298786269328807539918215477821125071308785626508474621055473846571001895016943722747756378244659865170724929576317057567482814892600533034133092751669075451959011875763338442427687523617613997206671920492651059803160848621705308714175882637462785562175570174054217571077001055935140545875325617786023173330117753887348614273207227683704133717804888591209508807602497548811814483729002807580031044716398960654660013645096306211142970507918993495467141254932346900401414181310683809719696842179356440707977996072307565478320241688384151766697080292520115154754643563135587923720284722560392675736300931747808137515844228735213151657840594279976736285982725720355575094607041041165748126607657321285510383189063616657341673711412544542037039053002247626593201485805613641198544506829191465017901169834895333098699614016079674907336417485649369017415438315894518694936188053022866562106557063319905796220877858121619625457714609306953270544132709963989561269848836706583855555473896325843995175414227771154642384605701926750485888383088731421581997877157936662733156736155458279677329511808397054020292021057511504040946390278382946518328863245615755521688346592345128725422484064289214328507468948217285625778318767675485390152151404258457060091606442920594230941511371192737359771531091054579019579174198022562128606899299543854173506535516581628522746529991217167510824067226186066425060420921850242101523460108330172289029864506777583093795887242764101200762565406115604559459033190229342652501388059530841374027142086708248389816570779776184906004022937601853334977806611290261327820612948588136783627537176232898274057942806956286146238214847200856207383550016349272445551047021846367131867889591173309110463988576542747560150141202388722618188641388745962777293222114143101552639627976460282681206361106666351580274990459296198805796357476032474887448397854338742265091523263072630987210191769562526387436544068254673703378880691017609665293399670421179316295345175814261465166381835900346044184487488331956706385638275899949657428701889085166171431589212356508902432254520759873905558619366131852833209349356767325747742950994289614342712547754257888214036242017545436598955215753381753082322957479663668615731380887838361118900953215679405728275371148931925538552115064466821463740658620542981826831285467604991945543108541111690267295598040970569994829417980814828047554724789999728186315066530931838338562596371868016249308203884652736975771375319483312114044733077117079161378511578658718962066796246110952195829653627245873651337643042283928571588530819183562210958610688778278052310349824227171432630743100814587463235640991742587063395445041807682368466208814263527909700652057100932601834725677984401230405565331400384880282755765738171186090961985347797263568866141287486276811040734487831822701436340374707448125522782687319505103481311101818073048462951284080493705921323588967137901898676551225520698552256367167137425460715602303465994712975864313522881089865531076860095973657405431438894081915405145293213103258950151006600227724443280283289955357678124417637283689283423880547187419901051082987361291795134186623054522361466276334364973289013588390934442439936947119828745016410471592753309210486123086614569431241094024968578987289175251028784124171313911674328929030303628538782423176008769935997526828334490108944262560803721936563967314613143306438271369050226145940573037820146881897406561768117427296492980225405734549730623857986821669566045552022180963236328940544690313239778832526573087222004005979975773392545574853973315492925856728646508367033408180947714974295700361121575745035860258260156083887665073934202841791769582115329834407921338075780185920585766344810115524892817219761302505719290558781811408647236525481206638299871985858196702467651308412916864905737753447227026591220548890927393407730412535160823479339357617274683106282850846570628587869238446002738661055146532659001375686684976699154151447138725782841185422353245891135825796709446176123057135848197159241052672567553584274850452265953486897159311655291279654826557018974161163336533309173315612304954390461056561335819817608115228998438764392811096067392323266434165979687976073582877780484042889892383771540075627827905502047015600283801019052929781933451044332351362573713965019508598450054001667961312114226919791884828124406694201012997738087778211777473637665041473429797929760133335877335303709668207295886547052421376724139341970750457192421089503936157842198848288194670825618772104730510054171080280364770378955068112973754696167839742008052761836467901028727686451346384263232950925305450073616193281189394043822734189079253521035219692324214871233629484135249544091060662868344630559760247484174153670863432147382085729862994381730667092234659488432858291736365360752157087406802952542739253851269415866053018881820023146212261490350200886174469912187852464775611310480959897282771044945016120694389064880196926292630837182482969551087450334359123464148021793905980007247016013799979030262264546135841521562291842891282676652476367619132615419052188666376454480943016217586728523247654792393190664244318554456726625662621431845028012322166421968673557336933488468268040696278426752034869848950310492541934669189170770152223429942593993076215577937807795275833332420474013857938419923319271589475909859939346349030142044716532001806523054324600422548399862988355840838444059742369150607776652597388537385856840595376091357665450208144125207618129364968443577873933131089882495302107095237667454133696345688246972943759632448463765490244906922853194391046450146987264617046316971104356397791194806504507875662684000947407169530425502202234658061362876485230084890934429718935191802046211995152712988151384216633322772879617173691124314543190864418088120106146837720278247013275071539626106193038955314264386762154595689668876017395276043441980839143003559985414004121551429665355726686345115178780253002156182753618184415301077299593267287791823213542800269653018894117122452688393117017806461017655281193609547248643184820905303945024300595402388793993507617815303138518867530478319604829583395454406580571653266829065900369642970596210750208045572195653912429234002970434777163566868122465011046300849008929142617074070796185722626755387859018073471592457739513850095303697149021072507525401149174631300803066595218911358120063127632635087203900273739430174466339504611747088069332829384609909401702302908360121017039838638734893451728983951795592187973793159907976999349458354318025729453870302726581513766013635000948013910012814247208748009620900240163093778508455700279333891391148575089119924397161624307747167709509893646041331964951083258857428795121390031793227248572168056553285192083714395164717740917434829074022847368077792773577439913785086051054494105123093751421840271206859279896787640892814223242642094744297234480314594431172036429935720849549395754076337647900654147802712768766897139206834866664122403989292903761879225394389168508543244460695075494043552268795857282762569755698992616205862369777391561184743732238672053794417358825801233277355247370460840911098544714685535557887681077264823913325817051378002092140387503464027570814189308196820414088042678963348927278061219803378427895168687133578188052362431548487854309569600072370562120883187421598744304056382793310509953885005996232870649667504698656795582586485081517512406462663314150291437415804660307369527565148275372227246492847060547847452438595688596235345801264468003559048172127690308146483579025320397176838642745374431166552332774663024452836152867620988954017702104407184126113495679738468363356009022870034210124224313683519363717965263478188456954933943491485251347151627508265904131475952111442196130751639838163868480353686096088896102709694289618016683920880357947049105732993501400752082983419346366805843363665463443363529436159915798147286770814747903117807008039565434938819006270232729546662666517485935818119080996410671575703360101120467005968929658309614845901831865603812077057973674697386890523359784094884287966198639729211002570631116388398075397311358144106364220500418571206920063430858306928041451210762886885770628744874159732312195672484525548027764256426236383742731338435280958036411284290351958553032046196647572741440253531168535341041531139562813983004425176073812107507222119550931595570072404423146833101464968949373554574468986068513609475825190934912678460093971958760206836436826481058255443584830970603648700604409539454526469338354757002480692541785655688106531247422592409453882250798684156193986084724531981928817436707552841229631638640160350351565414478871946955799347598781339664165013651912774540459977015714413503027909794343843248856908164622343788221977846016004880811595737912031597993717600596177674670878050728586369941641835887229192942643888310703291282437745103402749143028513579234589603433813695922303811039000031286696618230801392454005354554120421537479605342725141757608152183316867807006245083270135132657755466680377871349841402622497813067351380948020513261449167888625870538880989811159703089821761189788656337541919336241638855444887676328351886988688037378143947768958781518677904216587209710494181887561105986461040637848601535004404750231299876748687676052888435641559492965434174699596773771828528207138971107733395114312140584969693844960133400939215529479099080069148738224071530289721448890238107107948857973309282408214374970949075276347111366229524951555261303689835694621702565704855666795567985817903485210797851476128060280377322699582948501550478480398535256158812446641506723020493191907319251782736145886010932047040949068363643240560578925286489076321266734480540514854157307452908407901009626243467525685324795897430531958953721794486898627056381331017652602288271562344996796859878037915093785667615837212173344913869345894516035852594814100066757910252777695139291291876192403644237101318846715149421320027650007164906594379874238416978020472584200757578862038716374541292979205437903582165905555633240756138565646931457137800629036319603391296892022162367228240654437186405927538588637840429669132679059158184537124127182306543494777280344670418073853611996527036812552793065859130315772551213370505766015669993190246622584230178645431574985003476496575583712393519606649518855223006265358654177715618836428280344645042141975596299384403565373775186501941804459593938579597859437791861556816059463296858429162614196087927649174482853018244316580967569173453883084407583338084288614809683932398204681926769562269068510294595956444439261134998958152789900566215638928650010168002579069204309211516718897695292333345688736188967411724058171407244954416795234110605693752452485672265884811946391792449553089948437476160995080595421178647628941848773688457923259559728231188726057262755182948854233420105317868232574229081407931743120459855680314460402137593198548758015046986706582906624392427310073564364244903325052970977062640841669228028524346522421977026121315779333942792052995136496601956482602852905435002892710884814018221594026809241268926264515768519220081645893099705372799140814118166167896988875301003870953226298037697998034473951088891494940221873845416551987281389394911933515268672954305095237053111929471529708819791231992349021873841980022073039575980612867315683401644917179857814860700231359905844769387069937847208238660729596950979351660407828429395342390668471208575213875074699544049345389185513665619556316748654712801219621263532985200109276036099838422652663432209514513241684110807789059966829358543892677492290485370624885740535112864793404813781676022769712986045464783320455851567427702535384348361387014478671649424845006464833701180542925768934807133366499913176897035609206085556321768814374425706662751467522971707371485690012236091134954421663940330035311814135462331307458203080805902810389225123900236110640070778054748401868494901241735633136919111537228526398589606090399196791405841706120598694457441094615188558657441551398095952076451453263518525554836335846995049526315911768817245758097700084110753073031408960141613401377648483366168465255653089383055257168504975903856858083864352585887048392137485626982469207626572710437990373577177682724769069239891301548478454921705306341446289859613917160507495687898463856135503924837218148707314079362026825047446021131948387462780202123537654162379990994916655759643681096563924539117302121684997597351421815161729018717626165176633301659949027351839592984100308079758671611670108608893107357893686537810397895104986133349754773936055281505260088241237054335650487549761610999457258188398455669822859385601909748514507546400586062550163989268605788847633859234423935562687781680270271066234920040565991437072213968090373852300709374267803691454723881961361127849025434955878690335632560439122342620939290054831335363167916765466915655628465985997715434540488575501020613601725891776996059860189369674829899517589425817508890262585904057301941520223639902034122379012274961440650498464087806424464433247348939081588037020994370170668751863486985134507896174823287678368419303524740050501208218529399225682937160446331832162739192571496893408382539372298928922351865972684358464773830087156537411518090643899360076359382442859745719108690323901377414326574868440774655052655719271123151595953014563354306989995735470614454055816790602316775777879441165142681467709723011526086681346197208210770515033881490876604514162448765923003107728197124679874577189359438247842153782567862841944057747580630249103913822436260231102508528674580491239253801379755435547474313673904993753658451901208254846721076362120397502418717901274035624414585063583310627605543610882188617177229695617533841514023256818949144334939414214338867926972726336680152012205560681925933992281726508487977872569672735981906006366840839624796189714351053439876539299722721313562563037571066882253828544646589466456638069535479955957349963735786354931867109574228452147800311500800704869144759410262893654777962158026781424265170824893261135858158298134919490701878344485525130958570949145571304313430731301222772369902092017944136009332088317544837359422228134508254479746163372108341145703135993718494372687006575969320497678540380968780903900142724104273703620526961283018305874581754259067757798643077271307851922471374631904495078635223834258769484981843489704928021413820057096571422501280947420274006095294166399064002944609898573930384797340069388776771284546013339297520818608075754668563465495943133935773460515376457614925575765105349867589024566273887264688193555107055117767969374439564150813377739955034696450717979847754725208760542809453088172270214872432458005399113213621030464557135672656331789870740396928459249782185023125551120340104612216149067795852658625544905240169673527637775340652410929112463837234647379617751645199932428804196806726248815902694637837038418051789451945660982436927373915026395061046293722077939976369685571469989912716551367579777466608435467677985255333807230020388413143894399224584330417421851766238696102063746906658434735908918155155063531316511006162650533119427150442181435221272020659081015570644398150278299505528096312966772194176153835438780539478739760082034250569292889623886394423878384616045688629160835373562844312408447812094356831721510231506358603602324254018152084996943255877215541271549141579619971368882861511739543069889901232927917127466285840372150182074208866206369440520120405516770693796467989544763999696170151689447781691584365848443203409247254836181795876959303755143473129928463656299814459354585816262260409626465917976944807347756966754579052597785496055680507546812376960667019683351719853267792288353302616084625026054811536962370998396817380734956715203204222376201436682966553865005670921568061544659657364011860103071276268578694416238830294790578451094177843100778769643966090807648403735065581766444547794780172586940329476327605338568424891483069024505992691746462782270533690425833872368012549321649229035159550677669125551665036231250370821753924365078968160807329673273953838430146802248747226087152719243126426163261183008618058241817260435815914597616814204922175486191252137712638594444556092401806811360414592128055473666129448270835511958183533466295695939822862591907501491349795868609376428536340893326353501423965980655810945723441094800791712406100465117805912540652518455229732095442836922321014741567377782755236810131172839759954033660261257347854086007406375668417065500246709472383406746866317652480049989084988127735212257703285296982216158053221875425560497485834608877817130660101124950138105573536752695977668609283380955159698213419106328741759500953851150821987018852445635478967680332340696422650055859537338559381666691677972046084313162422543687785790534261592297592633969957843741111909330754249834813473440908159224778573174860877421634684504937350976826757666731230203619636685064883122646646440344968598081577393144441325572082094795594552428337594113174900423925946669662737917044809722218910717216115796468107007685254083882916826304117740913386872633993943767020450215816799967115108805435482186052476999683223247019381230083335383007314947742707692709221571823034145691493038734621868943690757711583624814313872644452575799339457681827266894227130337643529307594873000663069456566755544905623212564587664196421557007695916312560054226750675841283239270433603926317018654447227945867956055568015781165493991349752439586924363453200097618622912812903419724194342851433660229865657730591034228182062371096846055224516432535520103630738412528547201627553156550851572478979123091630169631227625057624328692385071159174651003433027234592805350956927664851353057980221335057098356659232603163153545851574704276793571339125857521853919865617861149187726486598839215615565068488992519655457373306502903080900299189315989633199926902917812746548752296148249461366283444458134179865254497662947330907175458964948321223543673143579600668962698149810942401299451773694152033987008493609119399860337934804419263611000342205190924878688535757040021422230698921267528629270237351512936892724828723237511992656310162122468736837078485114185611817777493754474043121131163189959872011358876731693310479985482893862581478321341025997115051308509924564470979210534847569405108763481211202337445340027987650327865169429025449208896229358984160682231716471521758547283878500445742096206955725251077982134690588631997261105981806282258620946671087184685178119542997271456390468104270923804777844561074839447886769547668045509882430157739522678415290839552877175178253489391575228052486167257821584627644401414374538588485607263498065573239335848788367380713972462133498050437713549639097360013737204461851498915549817063559085471248494782308621117606188131214599309143387021559157137646634775886291772277519086114000421040847922373637169625523955224052345972366552264444850783022673207186351668041013883509102872985984252228864174381680031645441831959165313560315159935863755844561645941102714871660518331871940857705796336459691045312640096686298308035031406782587894071179883364991439873396839833226580553244850380442399432447646758758777177710115520132532577535523515687274605074843751868293725407334298007485695857741035470688893280509588004531452000404178651058219658003179522318189839941526792981762922213007785336110375652752633721461799538021806869538120142177871594351353329008793228024720805713218161148985167647969001538853141341746097937774071469253035355835636685798813674798270955956669313344053615062079922932019445049191795903851072345042875476539444829684456782293796328756583253091335302961645151510668279969676842803416498580200834127751273755177625075260446135549172017451626880176297843247268440717114681865274662763098800397900945715692092117061356504793365167197676656492511587527110125191368434471348157826624099557976691923622301199524221067087079127368046383333421332259154043766611334450539671454847356479058208695371422601297970351850553920008049290894600422873596721682742481299486416318665172044196901473419111222616839073580460489049641564639011629804696977950368056988713657600462559380286798151731100704594409032358129695461341013690060666541994747715448894088882598080249526141060785996983422070164154743164463015844846517025994335819637088227835799362971200840844671728799341585989448866274714941341189757875781381432905801617726751858632180975816960867393378366259417862995344372839117301946205123725760933245077718868746958483007192739433453862537870232152110317920320816706252479909231765761239795209784816590910701910311524377724023839281759312314111473583733575169600831184815372199820102720859145078066622984123917587540870317780636079278204704990433097511845040802038431041192989690449980508267349055217050945744613227337753060521470301688557084470194143323404039904267380218431234477387818467050784787411893592592071248699490889823699527825710264445081948279823921810831785222011535394968668798811890806486958217903083479973588707146374462168806237770421171749680021818600333257238675339673347456739193823425837033995913195548399386495114842580804188543742626241851204262679831516501636271782781571663922513301315008338375958187802273478930261435457585227158711584481494474264092243992626874591306310863430014172325311388381901949845017874687493876056606915718067881004239403334027720570501233980140311995078707016588594683210674002013344144760340161016394454866467702575917133616204389239896550850065411153316526309945314503776721693509087706885449850374031451821691185783442992468225476739798174041548711090319914912039931379427103165632313867480996391039202014769741948278075888776619783763381228397773629249865750609238769651061870294629635093360225175680891657230501056293680759832949011541411337500430139163311964876230059331510651422842104618556721770898452625491039436298367693319478289115519468757390788218189688642726357799726737367934140114811800104582739793854045855681723768281726503584884604437106903232745692606879960455474182615268764321353014151629589996132293064846976244845808518879392704478184670210521843907110827068293752446537945285393301081471328809751384727151458111173405765042015986975921030826932732022408804937615290998393797276480309336985592608023154239423636495948416344870642576243905979710961395647744299168790822540994233943150763788836946834874069765921543018573085762216716522092902339036473161670770506570136739809320286630127377793687874923193657328649724483674017265650916462769288661356751638006022045018925002405904831273585087301499931758973520289957082884217518005222634881582234512629844148236670637152016233293874587125106596213262829044419504898546296248417213558065189764627363297126970281554741375685564052924432581490821820638412010682763626230900126502186079591947064287258129305757751076788297490248574127276339959359635581669094696245424142182989684879991601575604205713255410694720330557585725117727947872002901614265986309457435217111958041390848456930760953277862969777753113012006542164967610205873222757497098002160308867617367333567033166607714815413419732447010895974668062359158384501614633288020276558173161379288621499326278480053786434514752528925473585215807439009823248911941962373163747081062174692488582504447630338769850440955308001511809220076762093423547382141830080641816243385825249249859725168780530258216172387998832965163916723833871704185010458041483861693151074578800076720843029675872415061058183920658523813386789840997014858874197759423988659612848443954219831555200828637123669692267893648908655557253869569162604863586533916987494339750274168421593650278062853624992540334862152032739971000257680128864413570575559675698625343231003360639891191930253120388253139546316108728275928286088749207833572896414859488755250395139641907536657066389905799280041881768305766129162612894145378335585516021283730345993427747362257802175960285455570532311643442564533180750837915864160741796293415821578687009337819087211176773376916381698655664960755265693667192035036900957969377017115067335464606314787181859932233510376899751697082555166744541424227939014074006230741990850179735707328013997979817859033964096382606786480975500707078091405176392820130424917659906846617262007463815283088556751658472684438450943670803749972218390515189322253317174133900687164380957616315573847933180944688957930851680272571933442958261546282045817501990637456986053471794908279584866390322242852583625899538965457179088321777124907640453817995500701659991964684612429368527079088480552933288969563393325510485598556283600206162891601011514547633444148606864964043408195554026195893004708224728323193681800900980648292581297961310545632355777421078283399009872280840031336400960674695822929037876418480068394474365623605866146888242696059019669660281656027387290080294047599710728926413454368767363945087068809360434069815025810257794957875548514606322649198735959193537208904478655518212924716839537376238283412671692555047997943957997039740745553265399442149586699871608358501087469591397526657710478100673507180300048406667672327833898102988670877053939294346359140086972800125542735883820119003671814359512866995666988335885739204206998989759118830962694078044054435416447237377982721180626517235735434406043631340147133148210834738956856904791459592517985101241039341238125144998095060983766082833675412393921384629479125482690572217301864735239140262302979563181508917540998294970880683284306926362460800059810203605002516765036972489490434749211360171761108786765801591262049237220261840746815429291489736345207886379188067149242136557089197236622714429560914073302636053710539502859789149007782952447671076992670911936256303270316465423296456045437082497733356799477789472363162371261969406705314167263147116121826885934338966061562422546976283926115809662979095076434881361371993179805065310670044497941440025857048913984008468734538309522918529376875632813466598298012324040296131293129430716579668119312731892254416802905595321084378094055081699513614374092026492062048424467398235314725058218175198750933029432340791572090796549625692864207706515129028788989959733242022958449970632282782224277794390077481146597633679769359787004367280780998517553402434053929674582330807918421951067022327793818050758475406650436257968972469316732606113291116609153409640993776536688528855759148910279485445542233576430999824691420478028033429909459933826711492074940795144081850634461194674746515082880941279902326537975626009169359883849201010684800253607406424722350957813838377062076237395061551734978383729548771381803083300629956894215375988469361574071203821445748769408307795242186433831625679396485148589023027598420262009947136129162689195881009961564534102586983586239447690690675153436121006433126182311073432004409281745583737711638768120520135557003415352766987527328712169746662351003859576683084116943565283193650978794582081341888516703483181684216317193125257082677784561058114903144538583389325397265595913197562620913307183027240170350889704942907637914829751996383611793852128015817334555487777158848766552312972963559667999958910280779065514342467313516726035160183881596464859394523012010771029123192526406722996616424569766172399672526773177332673865552382287727435445614190390242604814603526392252891169206056597028616446298142951683124192421304103815586415246889651564194865553030421029889849099074845196421312493598883817867231935533327942929826429354002297352457851545483807345336826708313858005076654724433356042374451548338486844199562447849824206662519406283418697897470781195451162012310578052449916161682222460813312673054831372067193945024040939600242136481768284454972386299628528430771648017365224142545263354574206811697173417105363798426222419518565337898625595161949322007715566624386002208890879367048767587957580844555187680901108995556396047968763359151284353086040601843578152358128803645953329258589472031087226363644500143512431680746801553037327954194696891252462091736636887771281149078414563767868248391249695170400071247085109777202666446793839827733445917267663436537090150294710526621971613266133484334055582529694881804836475551477091920189406297503104509242435228348582252871200181438803884110975004908339253066052269494549432666342969442909649044836366318731973044428123990521863536505734965057651850063507355663528127803344355473435292717272885175588547136545497873054763151538486478027338229289375033373982799723249110878729813420585428533576315668644415519307882375122973456611450258965805570533753489184008878294842216303580031785296766556440231925185082660455854970729174842645958986866639951741783642697653037130467167957823861462633421746295883184238758295415848068154587008751238464983362465985034759934800365875733411886130492264889580194452612736167812113787567364462977730847879796172733464283542546906553561199370291291875761836237108322182784404300065007392322814533021051183621824573214818114593248745145030305306114146848009091658799058858393621459627241731464370675083090059642846145453133985619105188706136393212057765698600603194991049951091767708789485863915008681229806448288540704715504340542500408432891497099953434013294342683087443225680018951054251806381698815186970333425517525682348554734565716658036809865443801904270303113039929680659935206267348261284532060940521759829586670187490948277686995372589946907078043156996166245279675377066512657335563957877159868732766305456594471898132048572764478460591701757479870119071291185251596351548733263650910237003766669165915707600581684192358601673657877748530500250621533379517308424900875092995177664128278630767097461532214600351594909097541510103859862568778183847319810658410374474453132365866617559428697918926120795732816745002464035161110592832340588823280562960551612682398694279291776296576641745405116290507867660723999716825158751021360952453028383899437399074590531765508054921129894057382416158011478464835831991635482404429179862916444242833925597415111902494070227753297071426813214884052943372603183774020599248016198886814155836566865944390676602011999673286911726556703339859909224035325145101450018965013324885554073177467556875974580624911182800676409160105790360647102889993918396981822051749699284983781480100861626730666858578208795007192577344778383502958184852959192112595644389718089062691241841559799349373144067939218108586036369302004872285347747216123539547041027373601124028558932764774132687021145296283660632495741252148845677143868886655941013192153828183015894779324194350772523222207315095301404959935948938893756752961773533841749798298065673904979644430855956336744021311030352358178535799980765343992588446136205699578453332234886999864007925691074277030505509988814957888099380696830534380855709435724808301945054458694032646590417983902738903649621826683345811026120396389405147977406681060502532952441985686772625005831423934711669052213611119156472064671946938933694355019086869019738097144323788704792415482306876633552728431208168102613593004748672720389187219476500340138538443366708409817291186542300167813824762674839488644532782828399959480689521075005738052477599191623753393932673433163741979395890834542526063160311522278370788656803773921893053730146287758708724121827464883312352044678060063315818640271789174537847962151584434666553379727110837860868804704017048142284997025297930895314959051610510769881211446344703988630477609865066083266959101903902228497601515142912630302193225389809954433641701997854299428222574895268605271249444046540627646839535682933740041909503018989021667395326073369913434917311183351180660169349135626106788938419182139894797828536307074445079783666276411486985387150826798961401080261293902599771675259458551279046984102288381648921865380412059677922237184223124230786059875600066481938139974718644528333546126943375779332112196088920112255392699199410739541859971254863884177330086339034010954671504486800050133947217892760505809644580594173788837360212654585636319579821762832070975537158171635222359779330679865312922825022080322338169120871405887892433589206836185999801322209233713088256151582207496893076616859753843845330199225529317128826097774173904738600388030116345600251202453473673652209246255303400865266194588928742150925401082369495795993019965038615250458572860261883337642205567681342701332246635192787965958565040885523636911027221347540167975136081368808154091510423224298545077897273233792764035853017293715701784363066434742957784600275913161269349154665407255377313772169783736328056372553182857886528406425865047085792498601522311846081819739162553082695906165089111025808572470572292286733208561475631882000675925722776360208300845774477025958310969515189248965685775761651309215350783016571333893843908892672667381686119394860350057035468834195577994003378947597039753785358692335045142320086896319815002051086282100616883975706856082651492321160227599818588750410997914607688207794525397097205958416975714361561702049844376266956974414866541738795187665975931720723275767044631944904104290875012890611067148765455002874558581211697719455950043970326843151238026596337488195296812454137518750735824115811482153517260329270995659900349200034628442547317175896058718855413717020379791583725338139919052546166199250831012635339633088921614191226108390151313103855104888346767778284027595755257299566949972969386213298735294204460216527822711169051342434353432753652212649954211704815727518449022063567877168342926666930078769367243004298852644316286998576657444834489662986201129642717962853460543302070066065889626393184134936376035605742367227631715835136792689668913101262110358002231041324090338616818678578941461372937765728576542331074065293019963351866915580038424688366312612703944884734352448712629110710462387840067379419817148179233180726851941620326025796957988562337976335925770880571007361207904510248198566212526334612619682741854281663059410483030771085153439692888865737196254842324831895227132414204769949007522146697883628964068098269866160875236770367917917668629971815287278056821727956690568660805713398216241439978737743121847128513611853645349985176730354507306202820805962306823592309770158784529168656004622627826282568274460973527512082108884541337936404705927280137498701675662122954303499178936230996294744007260219987932313873235127083492478283467585925903919668823947980454241983938072328632764374263256349557937807173884238438669133360956010885512148591021605656074799102500043897982403220202264752616810131922350101853249427005896834266972190459685480019388925036623701653961220590525694101845394396219874791335351507007366891468734599468683140219561588212586889636518110851249554395617571096379193239223020416879795117987033596759243663611149352822858810049948732379029551843727470781883840684941515242990848468379378407249046750708519433513123823029918114682208202603617308834120323282073896177164721030197144202667740534221683678577718064627526813252323413372529185667068095550274665392885376859594234237411889967326527441372481668041958843079539431954211957897762636567958783418900688346925984489119220317138684443583151586992460047646409314686400265005888303530221231068467926859163420985116452260955711011733818937190279207041667839856164562434212474323715778059878725853236678794599152314405142331868980992904508010092892998871503080782132117432441549293146777904041192336179231534563350794532752027129270112742911431139991363482141215895556647352138840150806221363587711961774451759510641764485594274185525238797922332064661830773109081599962820837806594007769386212976349353706859440169559350939349593636086872977656824619783588196213231237449047267831940303884833645973087064928510811025255661155497420266886239238502449204267399843242193120367730068663345509643599946230219138364168571907289834398820912400416909974164615607497054354771956044228143917305587573506058151263283598025593230843168835098158490773953031506667127569544409962276425007214003718826061158306391643578229834096173463538227276617760773434268606021865098686815428952281458343851541555748898992488282712512825981703566105371162106656868030897381528992420560918312778565931279418469231610135025456820346100016061473950523236055553117251794097180559288560659083776515850752261007801283399538738929601179120111750365257822703808184197920930804209380324897924419062689932478674019110917434504499580174662298451467277202078898485482574328214465037492814490525746842402163855636357663376462552886101983364806370624612608791555126559205570321432242384996775830025270614300500338955527542118283179866107400903724272097741463129446990423597385293647265277068417564928390717962753629266797291897798221608793126104897082829007288291402977462542168362820995249857561630345451333752120463633813844941172803510538062343078881515431730145869681760363252043623160897531251986753502161802916162872324950085477951432072549341645515841040381333776353621839309547367338202240735592049630209317424263457154444438505109208727248498980554258308519979460467280951183415842033380207295427133315379177369555182966330247026492438492977986161785035912010084948028004994452915666318178085218070092658898845126278585267435624954997846234283629023361686676765782419221427017152665666439289149536085323402935428454544943604009335934879339360458574629111391174661466219351043380196954785049160768924714412307419935808058361331046870003587477126130379008742468666329686085392685665496935465043218725589540974447729162624200982661175238352926728092819661608543774942393000792194198919868222467649819719419597967007453035601280949221226647593350666689301167040633952008400386963405599520878138828645826448279949424325540593009966709684092178525249890081447153262154912635522020844406570551089517504048335149489335107475206714906113010753250598795759092438845519849980615131278004897651120062478118461895012717623408864590037050908424989532424357762726620662360088461850702355922440937357987926518575022467493032023402159705549702248127800733497901732304192400304321335426598134053926804014853520312364410037011387481393228369427895384955026587749118366874835728407411256693305370990841864093023378746449559386447705884446594438942081106580911841720787081625601230179201630770310655095488831000520668613422021538022862068369323880183080442579510501791311995002248647301705559257891659690004523812634387666263691388379161060718558905255337705977231943473460031502551805182563758152355799669764244161453757406372345994701620248468431571970543023040553766754001491766542237351479498181810434283513321403885029669481032278285928123835959589186465667537390799274143449523219682567921117016281752266458738819520704879351011019267089612352295033506398676709768414043082518457980429426162167211106879601830647465807597010349562594224030825471934695191062706933797864422580936824018852991362743466949192784640400008636367583552905149787129073467682767441081635737705368071005375340436078273398602564686935464210455937459029332175821570496915885908148377809118218210489879595719427323454524764930575252493601224454764142324316869871651781408988876321824909741577980141729746004157193900730630227038987924741498675287025822343100237938876493757048286700604300928423999784139997009603319092917287459771407315217089328402549510834031436039483727430594231605520269335343043180203981674515237712692328724086666929268243654971715861932281008498951709229186499872889343673482969539745556266561567098105050593500980072883975780451855474896945267412569915762798121336209882399104302728534636332314369620678452507778446700602541363773699514462245268095552561359056083197000958660038511096544715363304790268521277052757353470316810599992230393885276983002604473288296182199474893466562276882851877362793684339540353167029206945639414251528621835649957552917582135757144885535516675856955004565693476013907277251427253420655735460659709320288848654432825204739572123343378779919143312894838172157917851855601712150768512860269725628863551464124577494829994081436470716659904612493979572232606934649186079162055728005466599104126071460956888022228714852045195480190460583876479884120344121237751278157115997831677998887042113589910629960755389122207675375666085375038598399247055975846242102779059390552816793855021393989534465564419300949123943343647375152351000851752488220994808117958155824387478308113841870373601525936028619456786050009612670423415360804944554149160243552715822522420377168465761863579416230536549319732492584246635190392128354083518398684559536458316499460378582688228272489079235225078379854984535706992832062353065697516025278144423722285057305288828231438511421463697996797874648545487830697468678457490297314675384034777024777724070004241679025514874112148702625753374774440803279594929512373361305946548215503900101234898719112169217480070066821535136292048150944340461818936421598501560945830533680870745774488200710003721413047431903436631405253473215024254327015966262758336896541525202114975691146454193109437689577286820533998239726572972703569954025147765762100021134078752496446653806709420084781356499617931330357284076705556746409656736665820285258349835837908338205817699870351698206552066423907492304846584252655988153655023552680518328052452613440510700709061932639609859698495738251600533695909419292854025829104774483565537460068006335096603114224985100187234017377677591347276772832498358564002967543433894318401423612961989856779644508950099433850069342320019151115201264382085782899770983833697278618791698502199649723834564321274392001141240940593419610172962805453424974416489562237409873354787723576038666627889015709023818253462002500618192054047950152949294025261380873691257649433707861873953080336836449715212638724558282349938486760061929908945938870085027125195158423195232662318637139210205928277907671725724703493848359713423655813489682884632684845546980046302945197168194475732967450433535071580668240538973516486594457326382112418520403872554423545167788516747660138579637139038829014347032075721043197748924964770190655097071918170124649723599400113874129769983866104709418353415239459972400159554022669149044836344181893015326798706445113247080369421434563261411776159589068048333490249003521871847174620626989559523290989058885166709169762205368923183909836266271135593287833873338204208313475743054399388661112779318410875680898673005506731057453956916501710437280241174222478689671329099955040037663286656090174878373214199577916836255485250853707153640372371316192925924127296278095114977185446523618799111162783074561825817162270477724490049333992469460299556449349660214834349018830568937988647806241344131555226633423969498920950239209149069413680700295719502455726627027483627860034872677147647865689579830522027597797627741686205457505941054519101794017892121546172887630614055524487720296584624183227381339474945843487100622821115039280826563834691376484477210196678469977344773436591200540580178366132484739045657778858518221618679223732774157284470774408631948397677849570108771415385520224376630672548219143920603199952180309315484974231834656818451365190717154372337676110294323950417773176810364863312138429408421762046028058742981608733400946411083329083750912560659859143987118465200616936678220452793709333231170332252801005748082547270437021361882117496912852476103269394782783888801815089889020414855900869176754730512410019578611509855806056462491847496407350294982644524808619494163376473271133023385765640196797970447776302001140757485459385759321389476313589152191497398832108362272448725462161701848757114452313101907828363749668632249149084017440866752091278059787135853633142202481410029304881444752487398910144333891271879849141755854079841282714243504842667043652990979186836067805866135989097635657598432395377987548412797471732773852044069101607550166789296763858157373828362921664057289306694129969021625521784428579083990964923798490459041452844681455710040690969680737918825926863171327395248217998735659492648652296179848962082332038328510243181092172134534483346319726404278743984406766702104117542832692652977909195652791430687679910093456255659064104684650788373392468199368393602785822253128648431673394128342621190586008240944566933165377007387208405841383609421951899117185181647553669831638979837075864579793183140695510499107027909458033428244663923993714605241048193183874099704979705009269758230963620537767860161924461930328656837307000491908027483287743187957970502575500456075928027251690782974033586987288597245013051908184104088345913719801531397409898060257269774504588846029495035354808363656425326811555869534793823866453483590428294369760782561596401649824572801131107171962136378831743440880320137718396997707945128338249473730792091062393137210304326893063076144096115141865449646936918957454821589412269312219839354365662043987122453657433412664184875431223757509741040164497064072550933982837621479468960436741418572281110006027187070285054589869696825159807172627452260259811657706537423435634751073740350585463664839031627154917900466185768626519830017537931407640908906088094386218992463612195876275461513627317137473990508831640489029157970824030415314105933239619587899952940788079812926286415277283273912937705235565422939938165474421751453112884869170907319293654217654080122441709913373067465572587768398719672467237322344545273246153640875795760300338277609543166086524346648770897275652960756933416138620593119124485487234829873312604754006674551576144404097571339399959007181930090345116491047784956753061130078463863957195025157218534091133411076083458275724513677021054844457141247426066313375300360951131739100031368358479038165393440813922571425525259839715867157362595747056424285189644743728920556837515969384148278298433446899909056478731368828597939366856548002720764727179778691981808607403790583921942437211109373693055736850335316573536396965002065875645924268165064355705834034472407608956183889590904804623803223412724994079950955386396395954067183797716112541678346135195442718456100296379375011536609754653811145248925479402765833271341957953768966003340550789033455472270986654742711065020567185557420484123038982765340560923717676989048641168632548614198730813731530697357227886874856457677626860531666158612448955759417383633494764724118791259106958096558015814263162689394145697381051434714852701440000654519183212406028355476862170566913269149429525803095529769644474052534691256116898876330795201158251228544753379469611832099945946042954136595090430603600560211708604942819246126655271624471842625830721490435046623436840322012838294370607024927859228523963591530759856019007684321932048435831266533726903505439821563958262812896930432393588425780324923273346316886894498119676581879296391903099293242356156331286974443951189072335946267550074174994224512193862296899971647179333028405800833639919528970236809821995954572667746049331484195018688355272377276910085724361991994294482860460486601201730529150652901712238102541038823525674119088296262115448277261515811111450009619983487607712126512240358515804474354564506285537937973823533532219578826424263498898599116517814565866720541513533095974941215905896109482445572888373528579256249489701258043015522572849403544915747069328332850937620511989409268132757385588627431844127676218481508195963978818401284656760080596279290952413183448694461841350391538738414836017426705802145886632861093195763466376061873796458988765055555409132131966614529250477907477068938026784129214651684540790229312366288435124836564940238163328649266290153007604362152564734833915435328051834424042451882307443618056819467185194614025703021261769259488358066976012207458264983438764029145748947367378436539446510547602952555263097467335381224117963322081082581866865040193880319450897116948842764574439479729486946850430619277551871340467427153558309182933241612264084977062845023806746189210388220382377027552659388084419573222171062556931519714040147427726343884337434321152507906602474432439401829245246435011801358944945554804921948311570298999961408428862503733353073000982482433812028959180369989934740813463620404016478904353718398420043351031681790955733988215524584144095706491088806085201981852257723956867994500507908302545757343905685955092822991757059157281646238730169549837022506729667220940567772174358403721786448361441371025597965946226675184227559869345403847051052448821593925313728073310855902675561326161435580035390234916183232241292044050697138187935300085874905050685590961128282708577441095524693086813168879037322417941176485999822615705627625445435700416318251223383129003865352042954441054984312264414578849342414160881738878971464155785178680008642864300191483828612267796009996509468438093861053214055173706145696019307351008606156600534970701300164225616238768037029445876694541195461925920793542409770441432707741722308299983507570052297376845662844161193619494251307505265632018134385920897644219955261701366765019653465870234499627041949937417080963845514159621158991478508011339656815533176823428537883328149696205869484241693378972012392833305928783115929234235253445835404377698299024543829689466233710118134097054024102531075454024322279191872434398200963405434327036695236145848318193151123756830497110769618979185966941143863160301428115092264408210863836446742407619922822716510704682128714480116501255112577583974259269962679276032210152895037316077298799676891443887939834030484450281379698626837064069966768301047133546115431539599197713337758833083813797971799210656461274435557359506976512522565234594599708238381521204340013091640675216181103176716951943754053581459862809451426616803542688436467603346625806499474096342929792149890943371973381229664017567790213080162321583194428341160233035794304650717747543570799472090651126806513586412576424794071284372735358499361335944649313016231093985445129968827348058011722409169994963808939686302903259028271013314970047238171603097651189657000482305131603675774565728468854076305768020424747467097420604559036066629723218355951648939078042111192742889356230742176899554322477680811156969614577882805226474259115737936638017319851412246171529273308828123282829796471369993263954456447714238090715505495822793158721871113969846112965707712114405243978894501766131690051452056895949144942827290415344475493284094423118178888774433935778513993219547761116704302123222975207382334552736190823760131708343829523290237901523638865299174871686738206548749211138952593441363796070122551310934542736656572866816769803306506877931686079658147234602209812840686489829478372934938343169718271279650914814009434738243368321808967252170742684983498742277994666122927761943752430676347272588633663591508045430345476952473832069448927697712486034481502565690303269882589693124459616622629764915886953610721794027709532751367842080492109395181636587411334457298732838208394894968416540609196949721923240705788314269215898746365120108933421630105083248514140992658840522184482383087842845057582828427093493889859590776949468697657595760043189499835945173317884445148932768643763860331753223680446359495844387169289991384472289463678338486825424765955256014038598584339383780270869196358257783142641202440676132644453932046662919184420060785364427566301770761633125910376647467186929593577333954672854622736612777987438687270337536715891700437937537528005654289458522231565576879793653857981689820837992839535280244970502423018204640130353099821732449155824166569915145555705883189829795272132349738916955388141022596915394080037929386397220423867479913846219281892878321837644831493247391609196340971122635131003323593901362984081211776718275815539500177226953340443681444794501771620713580101082739556424674387498205844948731265948804620576859303585852325777533134474813759772492525195587491623831488796882415082769923314137353890820543488567858884569298576841053341189686588918300448596837533421078988105760967134173487545136740759028712344346921392906966636702679887377891560421725700504854408815114890371291154173638244473657012103294769718930155959449367384220527046518602776023477328008427099185759682782428404557888473548800454966680990846335732289459098676921024810845686369257840005167233066565738536388612220772200365118565121982631178629935408606120390734400570319844029719864725332107770020406734177890381325086097408369654906149119682760118931047283487538880137493175080419097668673450256343413658195380380669494327679779655594418623195626761304560746336645024894895586130697413212131222534218262468582498161410110243089567464575275253549775089214171135877982982185602388563918710206922526952972095285933746814736354988410095297124490900365497847759382860892103713230555705370955831859380028609858320106268855056382371471462934759718604708631850737962257757872667428990418940761003363275611442575162932910197776661137490601370973055752508097653423363457378590441927433163216446139890827833027896535134716004747159505325434959459689739180297892781291558363006739772426235660730406969973503781006212745134239114425880636409106561453272409004195352704608876323816683896983198601490262927401570277673077483198253390834818639856680864369585828532388116426168376262688091070656394383382056634557733989104788753422937821465219544752176873954598972135158363081328726387109515137692376590561931433256570130144327978609972545567430618178467540493052458395937712830081224779427136387451511523297256982292132982878169287343756002001268479387578860855156380342102915280580830782400482636987169292924993471546087317057803586760591346806830709574671324372553879603600120406463282414942616324438691138892155623283607464378396868422332626956682295120872341674174257404282005115571958868727661593816626364732610000115660079127121080170661624796567968025701779739429500969152418978134043608504309575398028653911716823939326868651779769012087428119404928239152728344382714678063081715460069717750737413360120851994003701775650762294186355163784130338074998943238612628857258767794348778058612486617577698197746302110165619262007853201290647355380259311242118863480734234186330966841418435309268890835314016308254643709997306075144270638150580551267454770424517165807736111920036541124995059761885590395875154841079505884150290457154801829412568956403706673538706112910174239859503865559244697053112249893530450475883599088804050838608034770108004835026357359177701468351898204905208504969588748036622548661939489774024585214446785545348487176390692464434261705741180319915113994683746251912984689301018261879977542316604081341195954765939923937576514834686035614457013440312218732872334222396821228489381696345791102022977199638763093338872495788929110713648028240705255702827114494384404544370421397165545828886223225908798722483529101209733870222932764673350160840511789864653054684703376898629101553852001634835562958549918781362332537956740833460768887842782948311301868132917875282993102120689023317720766943993371201207808373128073080046538641640254816607160050998762391741384083025798614300736607436249271976668023136450126496212613070135021998679077167749748897099804561815274613232199974864312513299687521775214204183421271044268815351673491057321103492918483832126517210779235482217513577657854628156231415632341712719845129461119201917427203101514693848234208417956260016611512182276618256761865555064089570133467110633463722955215234405479206637603817588474825096427561443097771950935232920092013698914570800415966559458345525332071569044239296672417640058444300153003738333922628045804031506788652454151096098463321357012296568402693726746447925046157708186253575634807716061569839299829358053377977069573194846336153518980175281905147010050101124244673754207328052341033129503729763109615157258894593774778976205736068093376895083351078491031859514670329919924441328794347604100229090423121995680396190436730955911800417328500453460368726758145214143053468479265608524846512415209684844913259269161165246169508344974912383026041355651679620494965655568765493480288079397334487659365319733606807496136342590114258997754349914917848602947138410234476862082904421885245189256030736813219670388522362583711103563272850392579162253840067772651007637105291315055630748037507542834837822401053291208468516615254445328911035050905288419884181826664986214821569550347463463580244068852922070585942635198632641319723353306149610243621602186399075965047878482497867067527985991230624697244076374522369313528834644282563966223680932559800398158418840149173008086386795527946663812614417310859077765921930736343253305165418509788445310087347776922047726244435312401488709638435636729722781768094224443073464129110938717287594186682759148626608589658313877644148994969800791346137831017493560454767266104935971718607296400523483656027562888328691421577333902065182185351525439112392905702510236860264082440052983405984155364141542823430915728162904016862420558562916409445605830678474500927248098434890891685490015304294422556553306815607669396241297826463208190257659070975479893716988902033502097218181784019834082701755059192779323355644496274718273776927114197659533646954161781365170128430700810673605032829242555743784365184049808930966639653729543526359027416168489811689099515352983659471170731581517977642124355805640874079937467088084950332615952531629226606957561171097744265999713412897197344735515196610080045605359490408675819323481933874937649247078592873885068389010201308208004870011053677160175862700150989350014284647186333635034245959411489593865158387538500358389750769131662857333270142667443791866546499610589529573647882424056504417547093245614989620507328357752547681565874581511191763167792358956362486792760709062090327283222872892308648597866276285188745152339227450455437100321030121042526296587486560189008185526413161012422260527261941728765498862051118130000217242927546994910830698854128624506857164523557691118575480752783615238337066269874555119872666473136453639388684011571579742258854976680844836304860448884451925771720431058056155127687668756816898328201424966802779569935669793319610590011944860892153542657829636794534621865678115833956361937882119308641858805008844638535749757463397851733465375364671607663387651507779474213295483387016850608483485971462632485679983818925314004408791832237381395678665658626705881035069112786719644624961930942650617971160166025042587760602075439751780205043605233073463336302589447089240509470740333184340653505160243074377477345617867118964288225311988705635194843970842957968606675481517605312193259804460627922226588010340931835449631821746152343436967547569196513643418391003583003001773056275808554444045911190122862990849086344712474557128661900424417864435432504894249174413770978647843971832979660916823177725183422861546244733063990911940446969830793975320565956847159556635523855051928545264360211173424321347747295361457602256456499914598017410519847351608288038332185750443723584536965915913291173203903901249020903645092158165668015244807603423252972519244367109574731484667079229450107681926799447739582824564691126644084716191130850528203722141765655124757367928097270352077888783245903223956153755578405718046124560177444145181206137616172922360309471586356658043288580302565306285174770127409001834540630751327754716720463587524125817437849763622315583538116897585571494733673736402443680591313797434958433074620647582973925032707911391464070943300211717157765003099396773817326612186337469326626947143329587461027391861202366492095563338190991737296294881873456737221265388941883557554089944141196282555731691111744106360086148366492845726125678268949085553639917250187661328858402386722375525937470713232363717512103039064402318900183435876686777367672277515902360758636513051210234101128894443105532716530219252642504988938236889182814157549802148533072081242565388868364803139418804234869691812447827804948217181056430416486614140834256092963282791388657436018496347463321201386199578877929352195773722131041432571564339259101186474830554681648844412796183065551281109961353232084783598492434109848715992851898620200933867071000728199466442144829164249703442482306709575423503540386967727729669755523447852479638560421582669052199097345370459577149439146983360737974255953083686607543281428141100125361811261366973217044460786398216095971985801716407513167820813782851427678719154057121130575701385048679712102896229469318783988629805593234678747944991839837923606794230986481364207572235661486853751163714071536827857036737395706820246355623123840514016749505074568654856376842331711075157831090568049154602620448596433099383147812926647587301175445204644354133326072208974456437379842467620750852672477314761372802369931787922900713708433156170970498706545305877586361558445498241066823000649480002868243145780936026759876754953747904810658523659738292103344921590954586258338989195890516070012403981759723306795147776408896930974496518927840739906348707941678487089419999971955212412217697263302083347935465639649918551278376917182114592595727271649551989842044755845585724117887202656042990816455448542226694499522490184412112684923732923317583446500464900965804974942083154923616415089861230604955643583400681146502281301672057636499465562339334806656880498571839334119414404030778289643347276701203055308927985512535440890099137655830513139805973240955975111119693915691018520041878280570517783946773369706184813757375883942647912531361620189561538207768132454747554451009592622874334995210097867900815962789222472356023042997626049529382484810998590432646059783455214977260792567191169207549375952615875022539916688598921563618822509386379314943087020125279240308653299321389254986847412829283097437732505613066760773875069722908757254258523334690832472076264514775181124449460233839141561768732376011732295857450287016178260194683650321639987028567654384667050860909077348808330616710824751234234797881879932525587832418161292552029621535948577031865558169799495224982625542739669379545368827621973474178808366230912119352356899021510297990190510108859988922610160407369652825155005431896343186220469200204645619469736584719769913815653987801974979972669597320462273110808686886495119622201425122474101540665203714360336687026613307944743893616239751197551695600257127472965723175498068311322970232973114003107550780072645852809714889484708078425807777693653839117482014619173896352007097711417560829988407600699609641507611500529573366132105014044898528322260484571352254529010576804021384383577018995608845156631903047653415413877408750905460103627161690767017549359396407940844071181357039599017863837831793869377388637794701877516502604926030805388890795011564828770674283464399734626751517968130788560415222334179782655534051288433103951818052360507307060621603507096243037467655090444639060773990614497721709727926726491423387831393776954335595738809411775682892005206335054192607042416814325719566906789850123227528276150001460540388735428516013926860861578788378675145422152743882535770849177907508846529149514659387570984747852266793319757966325419389866080519180068572468521633630756966137008564196802469832984743235068405744878200290769723365960342766595104952686473364062097485420620881260361406812200521999619708076706860162386266607318698733661592085211824392723079385571025385038195718261962709988388315879870127282488938415412455575567316335622011496238259224715931502382802303897920159281858229593009612308822569853114154922379203042686288208502563742045209127009854456726496664834930017698519005486790827242207949434155843722801432047486536360929394977475205081049107507119469242756009437644104170516560345610751561981589266105601003672955536917001358775455377292773827228568064341869545960095820428197243588653509326407088912932709086874042467554829736392559472675295484232917398104430532811101017135154094836732997240418264306087034068372014699516746360297929772317803806815858208583233439970931510503442561158130543215766084047645009177277120739376868193023351264613605769895476500391941141684623452950286320697422243958140279965953350763829544739982082479841727537794809857048262199036154763210151598584589496578899486277012067494660740119117118111965950161883599584981370642644548353911112657886813482268335140310727841135036692045703078290176353141947818031840494384416924763899391026789270500997688466152218214491327732146414147723770485687485420875617086549480519738265235809614594090009657125153740630096268753721862889778859155491199022479547376241343712308608025759473316988672800227229142756427231653531681590130531416445035186486642044337798285466933727471082793002620599874499389604871862600901033830823147025022647317848867534886867755771226295941647583062813915207283181576566632542079815826487350959893013096389248962321890833193729859147464280103883663683811321771442367812986810123967268574866169226999523909879880273033272631702633808892767551585786795569536028526350977220295787356627413846376176768210301608369908283967517564453576563413207628616950725170722334598642064679540791867111027255784974355685089646638973173319937479810213979533817609999206872166781089333167384858905318938848221014838641074810261673351941550101690030585334390327574707178187558358180747167388580217878505142020687272056619095544029459835851547968721935350327707097703711966828619189968027051863350242915237803188195170016437057875891317331509103024667615900182429151056561099302089026136199867246574679550231114419882872145992668887854960816304696092588128320539548741521106959243716055508314460533389398398167546666269345244454550732908972977080868491182835490987820694848922158154579393693310685064196044323894319908113111148949739913421518592231428799139528168751633395537541358915110992210939975978603494403692342819376779936873353444960964877675334289955213948509851364015925648687972084474331680219758340109188144258461683810655597113391606288555569430884668345252161485296535174900444063520539208994006652995373620421798384054445391431668417582509102253892383018465287599799574754120369300693720289112226685996615228135168167369625910880653411614131975385621906753932386946084145985747404717332026663526997087553228427967481390903709161655456032713470602023501270147414416079628029983910074246616407228262145402444445194207971906690334309593455077593966049028520538618869094251884060124482047309047099410176957179952486590122847294898997216294596485066590100336325367275941649046553400645579213751046131451326714493890398425526648272118328156237418181466651448781288850749866511075625146340921104732052791857755068502780769279809007481718773966078102604187214798395530905092050178440043203278054039709911919645176797617717155290733881951254249283580139202600561542654128801877954052368329277133928453695694005349527265406480115427949402486434401801312520659965290781069149632556714307513378036627805561250740934824541462936463263193799762034101357586199946349514584981193919927606198267705324075083494369259107636595688714808228225263084478590478598914369836144666312114960329545111605983093498973890202974654198721119502678652417284229526506783460072601594952074848449397858941804666205416602855369478870010800595243798949739570671017199313805189967918495897361619392174378873973293608956989303031200728824607813798275667922793314025713879280260895200840391571782663624052921100278749706490615648663736593867261780895566292602737822409149126885000121705508769682692584944713260822093618590484609833536171919516619481637408144761499417358883399721412213927005068973982613920300060258974377021140782103597237281526325881427084065429454526307587496176658458850577085079717040516916515894346508854287071647139682428216612875404031591745568796472136311515138634352131072156506419641753744278379834929294189408565594551288906476398125116680514260683679737589694770990324877042343064006243298850112124271526826744341889014789166205090156882899790590185695116223518373125245622836728432054528504740495789035932435721727625564653295838690361670756921893524087692506666700527476373231709488113900620319331553802622209652438895938818083069021281442108520503934962613943832617917808186979019664363624724683953256519325473749857815024015823913903311401319593770464974932894627123946845218601493731852424013789435198877939750250454487654431315453587678799540651058944593732864747423374237924270620432797087723933514419906196107155437476794691977175692748489049633560249085957789636716627859493107605220931137399868454304676569665216609015518945333027757112181064842952857756126890594242776831225274022883481181983656489775876434904811755019798204314822535128316585003434984384898973269536622746372259120776486266718426325538994329302504617982498046285088775791295456246313186199441744680044033796481264300451169181263534985784180500050049562352359705708867607777899121198658062713154544908699883134381242129052705110691378354211260197368762712015561781420754939349773100982596302952829658752685062183446476625532120513942550047014896921527977901827860693185906741087423531615884214703760738984553698363850193665680269550816587552262849068773038552077077587663913811428059718852800925022444357378286365954571225416670658548323023783405777502061512209837553832692252404532363565243419759345613129073093375901515362548306279806632509928145477850141899051273047332198922704205499848630903049071706325776173059753821217467651101734445898222125686351212503210568572446632699786748138463149508987868001897174585434073392756154211408426200316717417932169891772864021762131201103706144511669064041544678722729077438391618817449684879869754120938922248802102314845812863990122981597949925483623848703710639059361721428112419081451595317799449485014394194982723132869234867520940854498848176826156240613344017882679637844766449316520109788753820928100211046839848633548961773537191041063336545199150758217246778628905733179931075446716208353972682350296143422138963496682894519944820745041339067082130228810564558925399948723263606608332795664706067278646017683812739458739051615016711081063551350547999474545565742837948994236578162344608718159294326359878192120908805656913034612523647367021142427230141209418653112529960754662851409941966708337598234028986384949540364695916324419853014826843015125595959464313109959196997064178102648758210201916095199008984223119861486078700427254257267527991367844680000052429294446459849712443449353471250358469672077851118304509453669000448297040882033550845621489999446454729382853555243984260263747604998173868999716483683195781227365428491583119619274175755934677889234525669406567094197603190363922166034702755167974203310119414138337889809713591961808144178764402179907215089626704426928238471629822538118675892645341283754419393889648505665377927020702277505072921811434656830544444937483123695698336184303960673513576821324283131694981005808813525152487545423739953874297595463157942173110191383214422112627747734578409980418641666635742090981478182936795296342886766769779386057350344147123381972177959882393474112816891999951567914704696473452030366432350592184752362413338396641587841389019585396672431824243485432167409329136675375031648546974461898460283891701549206419417781666194660287397515289333968492304004506107439572473767256693385199365368279544942425570318181987669973149940486053763817247545555285910601944504509949261217766635441441577237370532922674388198725347615792759963767510402800995705162334890403050578647006847502846162449339479364660848816438714697373933682924877237330061543579221680240816526883355213664193501590255844282859110655542626680515233032532682012345779782260061340271949871903532927982786667043113516068512219943412806089470761623424179308249847054752857678532696045656843551904579792242963791467038148197874622744170223128238026745868217964817302337204668537130397235000462882145311364539337031067729580418673716342029651284014400939392275956594408906512896841780853509661602056516351125987500208100296456533054452418165760288199933213912266745007294787108347801806357625026088871136199674072050267972938307940462115484624425621520231827978596290278302540575272369518493079349791871296287879791887789165337601058627943162848701271237814595376387520843942528238037693065028503820292227018055237539128733053891383725835703242191536408607574789290677481609129390404482729913654068519676891908696785760159957755379371767547806875899712869683012061743916134652787732965877560371167828905052815797321393514264818901547309779591672564680664402942874295520803905318324805094517638113314515035984942403161354931471075435377355020685404363447533088905767309110373984797141019118866105836750344713640314752219606316401210166564720528621751386293618119340522633932772105228549220336641748397733567664962739679610571089311058171243513693573451600565935720794907211243131768933637153679509717779141883567444199456385113149805973622707023326284851027835243611216954802430142061656462722063830267702660434320325789286828898318523325572663409176215550855690444147723402480315525491501609175141424704818467020612815086940614590450429172431196641730223640334517850759022515703871183810445270515566994127337158998480549772221305397289200380494898408866969890821400983702992314984757499556709224419082450406808699168572328481529421267652304153433026270221827522438285703109187886938229476441128931092757041252617307746909514812640130438186456929242876531805044686394836212514411508304362830821084537058738378022798986211657145271822954520181022629458766898765293236890107095882032838874333969873826916562058752179872213935208348601495840190920534311452588470655306194405728212349393940213677446586553780406274090949084888561464414061575558226909231590372901432684973226979056389430800809086661410060337695168960838812464276631933960148533296128410084990998571538912746391083001539312393154757322216688021385393293523213731273877946438864926474132991803682300169185159519494305285916567773504010771436953073917616027024748230995440733253194918924382744034298943932254073484670605765547035889830889493040344496699468419518355247645596540192048854389636252595000332148325081534555771746645409610249730799531580635558215300226459650109305116114834850437250559729229505068910205263242429224404176139460243934109084232641570287000189168497121379030440088863115747502315796776369466242334454720664861047354586588738061531426952592838589425389944182540461246224469159160605049186538069708504682584356564907066075647893955443094504148031454553291692036758617542379005243095073754144105173931180622077292991034894127728108190844297546360625834890100939684730519532204287408127932466899566523072302831042174414185690487696198216416478841375105335121159036085898577215036966604002877992591713678991302243951604926466724440101285415607547462377744687612141645692497902802536478821129808719013933493579501783056059545468596241965329726725700043722340504524031152154507834549157463206194893932814939342254727701688320740640257777333334202414025614985899553465543300231361875686987488027434565685318237800298073493545210184150609825123318393374577358521430272760179324319772193829126626528533657332755063483784300884234416814950188821084854598082528644859956524451437072876041446326139648692687902767569530805505906298187800360858992760409368712369321217926884525170489268850148651893748464933124013131920847459901169856153289011014915763735909077128226483320661878671772402567149494360274912524924409767099271688939798638774084512020048784317744509389023623647755897960438860826208671883318755466727532269649020961638331784470518559539345163734597456891748603500822771638387890091408127041424404103437971122408823596927069490577542781623061074464082512034276533567922675114328452889266468316202590475572856544306092903005340024826992863521929634099352395690583078954767259343024950004754626919553034381766787921507946849682094046253209996261911467025445899345855925589361265207800124930904572393525878552566833320853770871857427507511272688712435578209995653107209362079640670957810188627962394611053808029046669662723720294366534712281969007940653833359554649941206485548919487928161695888366537413418449511195516215896247669020851550564896500903049004243681880082741327861139000240616383311975907513158389009709304933781133961051135222380968718992555421180634897649232546685306492068841332501987291295221006569591015392331190655258188363065197046552053315489694406800406128028465909034793600906536778489584359803865214019936776013769859737295099962069087653756087744565497380481620732045730408363322647663106749397482785449460670471284664891745276437563012410459922026563313915537044046861070895033954977008547549237167539442306312144883421557081978946040602119856326902861216304788835161349069975640507412351587777281432493084709755751606624933739261618190288183073825003011180456466138419040609417566321329226084693630503518424150074536286171493366130004451855832706965841234418613187918868901917922928502001518583079653625805456496692786040993824498311152232791965835072974562550005127407768308259530189976696452818705346987204020072368037170384615767071202899349352291483243724630083025447928683304569172075542106116999170588401128425948477833404079241035937352350057292574146206279335295120102668478384708637531869180169878360303101571067797622611120240110654765232612788088298523388096434614811121340073206457561775268928541611144613283131967257417666142766489141220816109016000021223616885157859531800961022758367650350944003803724922817890804768701901303283688412810382686257862771441983692158243420427046550972146401266294749531954071180167998583937028435062692741323561756072955441209100721212519482530524644679601172844368025637306715631373569751952669432957578774776652385926177678590969987307097017429825724792653039190766033082451449331456496772940087517903173771797570249120933032844688123959500904325751996437289580244909374550011721281868622672639275770473254265815673856115323026672766149435195049470801612220321686755197634496950452042516186212777391740320553586091407244730546299924566331779489830724035177571179317335095970868358504931430704177951709561238078402339217226391340718615930684663651942776523752507304894481056745294396753095567171534885239255692880050181052596770890828766385189575109269428940268146799790911773729162508507229162457889648407991714789926057736873835063296412230397022995335931676660942089186226123494218036129077068274010542131362065018142366374143156247623793085384771255537071595566966357169352132142418193381921681123674037646529992849022712499893501074412402741962236833995843128569342903754868530211813556704132330142828198933720653656042918096729627517711157337917588650070242060095583046540536382602269753331137354142129356159751271687970637390160927668794501644620521643159103812122883938719741814936944052289160990984879442206337162114809967349788936243138270691639811635303487371641277285721581915003369309416709345392606181566684809371184698131375511272952610572238583705492339522363111088976281147075827561315470978397552216060619928391754724249667624863705572936294560247475677205759822842644644971961383541281742008253305951919864091158561460113625433041329625855615394505984562631025358284731611545348830844957570955776180389961533985407827872068429387312353587888315281838377778905429837017102928496918329463481362382086093673226507291686526488552717753477090017222841347099269341564208147326864697156562021872378122434264299831262256543840164588834416898790134682474703280285254452095303924004723526131751118087132441097640666573701830694719874239401450463248216028549378196997776810250786675309423722365892829929229205195212312591224306914782536890333231368883998387172176670929195301494288821429397361633475856914355168658289545506387055659395862899497348108681008457253594231583560116675949796800673695949022394284010141882147445162674379331479339941557660830097249368818295726490388139034458301989964656937837910770117384053524910811506506269483766292899534008830472495984882560535123739865116377915432703789681595735829899502436858757994874040160901438507865696262648731569229298475627666621997310684930692836336354970455235610658154262293783703133738362230450360372190185548888170266427857755845686195546586791698796953255170987499110350542746668539873991732017049139659274630419578993754300206341072321009062822841826203707094900233337232514383818153598945472555880371471422413776999918536199428139212085108971364716300493204242299042966871292888968634844443617296875114745380542316785522818205887582633907359613716569446631236062570571993442797388536780171934714289156829409521021636281204019489227089275132609905774069311470495366258710059480527555472772356216231774779476731578852936612395956415004188365356363146720105795986568193473216151731968321975145231019507278462210979395174443388937624220892607719495173404191319098922988609392854336531977985379192710645862467547606707947710938267389019212696227121932635701029853519406419839597491861892957024086902396302557615828869611168472585540284958089067383975996133791833216931746354686876357219769548597589985108292071197143654013450872087592992212335030027681238879303745485120878557921663493384631404945412971793268597776420511508878553962022444092550215530600996884336616702833612946416450248761513233149807098404828775094256635091847361368983315257063295462259515325234578375785304577689103957213736339436317349026071393291925383566258071541539631260518900792354293905865192985242176566754258100510885497048378595279456303197916011187387696134768468820130027096442258599519215393308226990565618941303288231895298629285241534518645041190633706294622884700249260864040241959710264675125423960951537177432077448665135994897601304153684347889696181421883701964813658566116086819955860169248191730900722115893363265523777801244315832587363910240710458201662283854237500548495932315262148252079949151345056895114675491456425502253182476031647909415752303485035160569262832579741815993096093760039455658767837435583260636334321827593899158863677843728339071815747708633453448832454578506466798746884298475822566570064808498480900886819518666058888733799100201285193436451965400426169690495135946327902687351648738027753843750013251930023761828632067032996475546375743698092137051134602316046251685490888428623763844204114372532339159636608412858163765582088855893429650489275578149328335893368774571062262623365327479874040080191271279558772522345890420166360320787983555263370064295905169076472832428025606852812790898640658180745609000713080632449286824626948049282428697871995418171033320854750561041806249976192272473311145449719371156577296256095522038177844820961484878559716565499401000762322129853109468379145269344075190404042639541010750245870211586788496373746229481862906370943595293588728434798639241055872042663696141621332501476237457140408197907192112380224459722770534857586381808814519212942747557466721400706958130369181368276590499072352486088286349453526426494349033016293267822303043370595879742506022205957493201198476277064440252347226712837995695160662296332302121526361903920535361388354575119065047448451074106057967467558767667633135847853690116373055325122758998247229187119734017015445074107313483138319643682985629686757304338014949780500682942361406805701487847025574174827935157355492578650325358542798448718762049839680765519991464710558596537473006928675606163171028987174354245430287479965313393084339192244711361633078032917440512507848299533724545498445055766031576819123792941140188166215019985556570742138783765582811184696968861562206954003787794721989135473710999103216661742460862955056101047147797069626314694535738361912089560862005287316007829760502938006960686119143166783874242699828122175244985257645980662698642804946401155370111560673532921878462670931621987479633481382768720597985283984749063433687156432417660826078320122594793246772828278560145895937309975737856945179203969249200508685870729185883464503870520098759914170866258224156664016567994865967106167723213109771374924531867188700845387563327915088324607257273884012542082953399332994287495147933534902171800308366510488255688636989297773463265945401736600925348402172461057628487462286441138244337184781480968494382486145572795629709092226480544029884662918357163149931438440162364500978623787257014933857227350114997086776198022330524696264015797949406899288742224177175704065319132665470997064734624178082051271341046410748117993986571054322925574570189361176861403569878984566647012190169093450007430769902679461818055571300801183655388904507819519135825253972676555718183734178444159798232549928698990423568367196897785534594872397017545433185103531410265937693711717597108496223936625215244719621223559230357584604747662629805908292401472882944570121874427536357054448189980605178228633398946290600473288385618944509798161849521754405483418536182212135858381990174434298820624691560812661415805778632221396944665586822522830076119363639446886231607191537598559182867965326834439734176101411604772669682763564689255147887020971298302682537852923371248974441093637396980606198786205341466577367466036553880888745569393114114729924123616892153188211357383425743255129866284416361178245668434846419310950353704443001443314845327064508557159488864751485933561764025988251427102102044405652695746018928988021671772446885809067023273900477982557054575740677992671464342334636771332550594719597375111853207477527973993480703997595788620697813381553294844620607777511186997943470682320612024179709630664285546830399560922916485725407155048376388283296762274406811773675649714249896882863237129345289223975295076250178852067917749135474348655034054893145537280988771095194976590529830797398709639403548551604082485881733800227332796653871739210182266243459452703070931354341936243114502628165201523085772659532062965488608355535454132729716016741058628585261828026298614355453811078451421608273780751678860250701046907246836068576706357188624281333540072096933540963533157860223976738243852735070861633969228409627412953910651922946567763852757981445259322230039384015860877847727345547153700134875617132412203349621900424102075283930739324325604665806401629531202882833023009423414070788731395059428716742894211200685610844701463109748178940379881702483607911838099785435169098353210280116316103442025751879209066020311179257829695450426768232020058478466497487745461077652963676780493307136986478121805419694797478808876485112903769611901867872546499572633293338853307917619191798410343822708813339912746420128100215314349741751900518189618861140718179545173261208181078017646297822777580374087774596239477741971110462908914890138329929188383172708345776610865019399349811445566457817514543855728225335529210452142873776357441999475730292720432744909903107060468541344928531993445566461597410680285865960356940935801098696242676404312350487800065943815736024512292756778551416943235914426938108529744295762382511481173778994109180078480818609858873150343994139686025922336123100502647711945863765192802529871506958365563320109096022107892931747587623398019336650178838220290906971480736208426353116597553399547965456059935043957986461507098287375887900483324042524255498238580413210724947777715429378268973112248695569505177141006099033138596024036236993529761172080863649830734223069699585939124105159663889850234032121469062889837357600198632178424382392029117006674517014082628887075939191847909202949236508364919401189511055373638192082604400359616680792746050346767341787891175439474134160111627225890661541393760629054316047143957919411766512439506924305145102584081837680980155650393971792140884860437302181126552098961237581279292813132990415848789615344064103711001720900665154484937206066232980983446176685627250347360546016103000695555480743128704570017961321686429361598598819077104420818417703748562802377551239613777673152090068524342732694518000956406908489199353863390503294670130035279085306379127116902504322318781455822886866028941071921454917230063190801846629482569359808010085270575893069467329015705182485452638034498866843157931803691061107021399716851753664119081595487803664026473824153825176627246524125512889572683720065742001374865293764612439632776630044400799252208447384777714453774656500734777905389328930493918571246959840756806453515311349532645053340047239064770787814519802992120288340366962752914649533946011428645954736093105346998821005116520741463564600249101581138240027063869606861412080969593749782557979230144843541332508674559184571150062649640895534184394089894184375512835661627803614005962953788188208927512543445581384432832833457494401302709406084313063337002006954059197354823082097995885150398989539981994415138438669771591120501521003349075618289936786207825850310992734510647023360408935335886158640483425711135495050997688293118248561874014291948131236309071546841507370976329087706939691474647902847114807949191859329106890949016642079757018064292537393028853223994776004417152892221399086965229265433270369109179020631985448525443419015895096443306999519820145632682210840979095228209472041728720563093087844223132256203562942634347510762203111202888928487367172573881275911675264639407467350923638162133928950352056373500810603113320960203796635989363438997008187249626715448235785375489542552446517244299658738045977374617308201507439949525795770618501594819577167621628753540358324904710882827154789684473299534872575635473719352966885814679119110970709920547756417315062818268886042063989824245076454468008706978216926963134131144553902200749787286217216657267390010974774653771962876558591355146911678111434970298540724493979756290965300168151198257063661278829830138602231616240440183321410135773048746100169648378754677910232418986181000325113773266630919553037708989638601647216124537723764812279998002942549445072556086693763485349431279660725730097256293262775922945195952970510011271397006626626004795374870575293665254321701649423513674597558538644654776042526541118271047014791286815230504457177279117707892547165762546279135228374668288558900362466477116621402907169981855941140156249026094342098735681391376487354171431505150249089287662569444957763185525272058799760705408884391338060173440987606726342326357534958425885502471344898210297634824250992930557280276110144898123880815782977234401552516350402034177687110620899702113222828032530698849913500956146356606250649890474480636113847648057651501660824144061778908429320694002794229656316047432601291729645697072598017705594870554512547724734492939862016590358754435237123237857980486530740764658420177643616886021442606651157704239806638777773989732138639743116616065192422092227658948467058519057983417022307065866670268667722369931038467991729679488207428991783363329011824981806704947962958153146283589051146314822722174446362943020591698826874135331895707839149067034995678755779894156904964770039806484618327557504538143157588769419292574685137757021393344915047052483557837933390944453517967810195044373681791588508469120967382199238774886709366049854541477798259234079897387609188711729861682720605943014754700289987508244074307489026967449474888523063034948056387359246575393094422214879580336681055533801159521547618177787388122750265797972712879149704313816167024190582435304159691910624916778887338118239472633978668823102705120856253388870946805524927784560132978275111025922330502541011583374396633385712057874703672900933120583030746686248382518350283472000847605412409093864982764651943093526862014148363808720716576930977532505382702905477574755880461050732746323609664539081315153994535425261335896505757887502896324363848044717745986644360873748381448251758599135069500021521830541071095915352778913503401046194142289040211783772028340929949336296818747639762920587427159936230421985532710006435478448895714112466518014865906084729889830394646354127799136435164733272111656275668322985895229063877562062156614321371167353420917467327811699025906640700373677377793036400795320712738068725865501250096723662518593824882762836667144280999113803571392645430738359303900705294400411212707768211597092677969160796692996798393017191450754898601221440289786495380073852749464667875141410504108598799505175673310646374830880910186724183235069767534567885281345820287873374474329390355396615858105994286618530838610269567328014920808559041017500238109453453406323125977046440398718647093097724230169898854741380559620925540365331596399163226404078907004285520183447077400383561027699134171065659851953061519996372751098682451034994758583688106124701882797897371953907071733942802342483148120322124028667949084391135378900858656541083666868375628799271308719717211333847067483352340600448573220930747613616217152488956706376159789173109558025936371002341726416350809594466746128649764243656677610973810699963214304175693206400604498703112285423985779272899264619123539939152271543624919087836601080725313363562920719711342209987780571169310804409182873218185023723068240408927497989691810117055290202995465188429475162648861057150094533897355977366174686483197437239072747560264458606360424356248173060998875538670902709196395259871535518984597336253166033140538514792467304949524750671926859564771379244854471723645741727771962284772511410125431300241203777269468554619762182394170001035548054216135159675199339118279519103336903205788123209985776421082989825255117218587907435165454468506323068859792396902100067705521516262772632333903961324865325225419650588829880396434771374829637858842525092698280554101000714805338389533987445138893009278553837823211951086606180439620382542656088294523287164182012123310437388125588529079239827207794870827868905016404010275019818840035729267889096655985595895494097858359894870327251680288386669034699093381728773391286452174222655799304576106218837616874809057323526140909112770186988359989852352448243788128208416624035069880251504076004050565215902226779158956205220410792181731070167025349494358723458306652738358987558123946721694426285698635488185660186520479193703508767255853411667878917511983575352162269216682156495110719594257294373398949825404537330744124939529781152755760678725144048045902305510586601844897062536082078452294847012743914370205930958160078373928821480392978644789174638631689055569873278204706042919872236043827315200510460315743489426375456640022172555299232420090522592697244881397215567456763727557115053461151716115430313259447469396632455841166953574721768380595512118567944185602551715265689007786235705438717703936569847725257778267212416356420404400109787248787427779922346184971409465290135692753284867485828541270759665109849865939680467828335074146359718088873906558244282163733303099117822196092469810181251437639186332115898647198192638873273764598701107595369191249831026730839977239815707710341410525886208827329287044912110988400804385126809309775051908024691887995375057741524888750271376012721669003249274568999762848142481744145938445516382587757283538690351614469129822184263317124074278088589734619088194185467135798250747157477619049229688792805661396144262973436033789972049533276500969842304569361183107771326948287669187496501593995913674973372649515137909911215787442643968673747278687478378374965329966747307388415532486414311893705248917094113637177981793792640263859381199100847195463215993299250692527384391632979305035217003331265821444746873034932655372819062432784089171572196512496459046478691834537076711079890214866197279010558032555136129205039349296204505050985749631447990053444522413879638690221196468616971514079390266149371320644631335541778726252056373834590243323316207675514375191373208442888023307073970887486468104299110858591193527482349645378177196976714152229238958677430908554972927340671952935876327687735375430543259099054107392512746127300680291845616326719179065421336710185306010857589076280216398901306038060912185865408538116535710830477554558740792378780294432953323045046964234567588088071445418060727114418629841437452845029919510592894257887262181045713931672047460264760052886124424540393066615247224409802466679310085939249168291009620407399990963322847737345613263487671278711419036342037635953584410623165907580921788491779365262715128300882904860048617566380868719410440338481287644482871251440362536950144606036182115078145472437938407596936205330049606325383377107643736625988598078166415725232760329034663804262612827731965927577085835645687947670599680990244829542381694589905550509540108684661752387949039677911315851841597706494103681433294002934291454461784286102450969884164476551747544525126259945424827464505214412941342666678729197489310614986037623952580478535397111925415295641336270747352432662946413775401461302755087945408192219393230848986054292351684329967221383332772193097827595805495379681591471763723026557004177416543182193430220737828782122375016351110592517751880021286369517624161971547937017633574610997983925095376840915434563276749222374920590307709942830403322402236315159099307798114529988348771683507768139459327615290115478673052563793742636418757153238361797937840472195137575864722587237773402540536926051491609779438570867848198551310643005924288701686102264994097328013089333084305127528181677957070143685824739569412174301370527486924644652399521968955628648992857516646573322951820317556639418550471096513789271661117402871195544040019538565140040857764496352513731758260269501657425609739763250658085812869901286843964007711067302979727104949444896645305334016605877624598850311124747192657689730777138982006214620301553192030817079499701027986195603129242171231109670300175210681835546744611830016086092158741294846608183272168699113023265005622793781132469498256218978301528929321044787529840837177852779453461751005767743169317768203434410999167725759967529427308990948183163380920715357307177356072863144238609232299881146266938623373916189563527506283020171305408670642730064654053176450741670333204522419052509701082999219856113925051004719001747509959045878528570277840738945588590575796871776665346763257558242288022172781690987199999248823182180030311581982700109905602379508287136832116621161355013253812006525521854497750293026442123415055409485439178503656991133328655152506236808668017209794911004594964940592756170681786761940842557384240307116538483492483459101290649764189109711199671877015086635971718438553077583721129218754813529782420195778044173066151860560699923141287716683706511755894446331515188395972145840562268497592605619821263110288842360472472635230966141599221107932063763092534600778153068551764055364879761708049410761135000029653328090641460806668568043632897885425739047850462585163665366992200675752537520668247161912768659729405937040352520888796697041186525351717447259206462745276612532965136346009533823737520369161670094944837864355345638889716634632748521434861574245049878873531086912634169408139476206275435618514068073395080465806717864086378370290494727762573033327154442913509266662242775151425050310019506735760250503836985551205988957910782404785457293004163355573328881747842646465910204981980427923087481508786197576781957136725127844882124190835010170665671967118457125097870394214341549837407744273333826160405166726546333981436532339360847847686563115787456959348000184092479957541090924631816047067446838011671274770644901302779311551357703936329599009616952650163799178494605056752644541059366345390334731917577065275414463690456597768793759235553915426530413159586399066057717556774436465052368151816900128582134203660268881479710594146577435443452566157094715307532190055264853554186140768509942751829886787222017463122981278371777584902007323046802468377269394367900709289054279237216355453942251047856225265657199337675817162392604746281609257487709782097577010710012785815168684206227510574801844673642132755781152713480578709028723036929153394553176447442154167759469912091420865092681369100660012781540552414523133193894104472390769318651517139002054537654667769498471430778046921970249275174315567821934608617058760887124920557126642296167905770808673081733714887903972316322055080127296704230597474051297624255845490314977042292286905132338658953622231543594522222263109738280406315636658157781459185093985987847221533897585574879737447700589985369972206181379989954344664656016575459618097775202336420472428534983975533233845435870988157932883191054989083556393937452363297899118174006653592335247982984442783955462087376868912489716035358034137760711821984915601651066539148519750575802675961552930090760351182518787826874887691429405832843794972411669850728997874299202183781082725975954393823227197121179163477180187023257861312072515417446335174426586010846831108168424896243871969106311994711958598593701887009544914408089657522865158293438569694363309644427381468565832876343623445082498291846906913929539778363792643296488693931756158562077928981215805480418823289330682802332870204185908302833721704171019888762382010247412912916980174312982005540256729236028170922316746310927122066801229032871194889589267343590670123405094800736170677617504892114521765438412383698201980062663972135571689192033307341049355236931212623781751052577144440287966221156098845390442095944621937778526051741518099863503948652377649024913552632206237367086624896704124444495453444443812710045863168512119763801252903593001503506289420511553543527876138119325167739369512813267193306442561504451029368906713435971626720557274727698631821634891332973505491051775560395963866096133241011554234361162643161327222252524819824947902695216286710262759271837561892200219821016917784982128555719464948679173618623767544502283608499377203400380817522944365882190900479561606561760561650314470331074193738389549665661169941963352008522321247824878849943629809438027320478902680167188830794217665015757786118416366659835816967854247509813897935673822588665824775876367988449994146569475486317185282224369145769718698176321334059375088499457747228731336814514557864132402116471855004694630252213564189787515417340167566594680292208193032502906496211223951950442706817561733703745654807177293527163174490486073971346383995094468539658950796611410795302772723924914974169537993230363648531359427968712235280405961793459861352406091056576281841230417899193301123039299988126445583642859703909750655149690775905572234756070072009456079524925727177339793774442077550176839140946544527820576075389187519932324026213420826466307537970675685674944766803626757037162640290223485999318669432022514969680714743130561698347417672803415990809751273955066547815203087622506186461626803493699884594494904481160158120814451332828622362508424446640000291923039355172281697986902892835397424923997176947085672788811654824611066458238433805365295179625333297710756290283299651887597064177409188412183510156600287902032231987922659012795640604854756935629611039382674257934785728622922952193397075890109389475992225505248118664353067914112762029591283216006325593256234819576041539670983135708039757153919237061005240757154979997745866741417919827212476797380199955425825230817561268108671761425029151650705572632765465341001814139609504314308049131986423064740951028222799622982890703444940339508635378483956676810370999180889914270184908297449131054624072307090995304001841774074785193369996917529726213016149165919146639843639062714765933699454131880240894489600544328884917490072222537186069711171531645230513165948293373036803519624144238412622720218861175726331947357795600692006412378396976044354097525137341221231797741235917831762589114234344010185146279193072912446769467207433290186323221809261521337857071678338002135004307162113212317467047462248935745294483407673577946204943546233575723324318210134332872870389766647234915822705977018804937131361609003434197305208571525765573763279601858436868439209014425519432858223438566047135408786913392566918154166970438740114909096976051664214112166815889292597259271172018728769437902732298906103495629767738511787843927411319656590333652182749996755454999260249120825150354448873006545282175011956354238771023375413429382193661284505886049565472049081712263342883505808973692300442295981564713240272461334725314309445611150725683757681356747616393895149918930917768294992382671874830183791682561588497494617470027942311489109782445668580320194581836446838336891446502195165292444758192185901417682964797766679360020867021168318808665330339861049412034571781161763624156141491018191277786300503521982995264094279830232809989203748858083677381393165499394141748892627982959543254860973276575705647305629979385367647677669742311305504538019041751538193548147953580239167429236108638763780264027645136435915648334379023430342507748821186961969479120444389455375099317630754079076698385608192227447844396837566710959826908336070111249737874655825803234861609614007671129558412669683824199448533169867905434377005327285979642927918188485843216521959643315114847276768489468957644488047362195206234168530589982679561689138713418719957005401906583243586379362925772532655604235977175286655289329846828542135200203427767786654967171496437336005530089456969979538531507085007909099655302377647243460026622740830061723838275021396028894480676589527215701690914225832287054328632804319843527210851012635730891340646513407658416348485694288139210843131517626713483635104026314142867747001538004489625443635187806538561914849702597213958208496240044154593916002500953320641868289855005587119274051096398543690439799479465083438940751549781474828125818116733149795889404064524609200701440363467969399429730400963944015901225878752994495352079719569861625177006641106708872092601878253296625663141969893876727609009626153890620334936135875958021274871403228513372080568797062960248545547870483004905058104782235426757980610595459571132323758547421264025249396139907474110749498572554265819620448815996607056154463605935741172915153378011472227021211714739805817171507540769351257858439595698463843256499436252410262575569858024113423818872573489216239463260629002731262337000868522401975357286443214305855467256393730388766367366246777281972709776840390724006835828317540044128380431386812529980008354016777606375935076357095641761977730295243379405804497007792400493196719547398648335009530899137792314606555378389490724727114940205216445734592561877195425613411617399822805080585687450787946473941126798513651951350987964653679117622265930772709195989499846142262918254624971663329655650204532650836689760115222875852062388068400790864704297224363592806777746297038508596563216386045520905928603994435321449952494645699013049513209949574144198925085195865660046570966316969577299479986030533926124227301753004501049658893224075122113534724592030037492344387196595984257511900278995309255070334450700240956893240431130920999694578338363843649618511011179363492416127210378979070097774658881148341665573415600870620095560005348117972896650557185785429459608769401419095188102615421777443497788125922022781053393705193677510251341830930369265478625366260790552038890359759773351752643399599195494916803492043644777951139174718733919201294887672379910156687193883996091435015645362397542916121221087287814439228621543498194088453734187018743484245954208864743161248823151009019927145358210608262238286855877750775962970890065572180868078292814859878192220335365464992812637599650089602114680865842161787223114853314498348900922194070716612555818237100802532090953344064234645428557148361541541401446204076476932852342544258772086642236071716319775788395471622243862326243741003530572709872684830372079229524784822686495851341698315820791538045032118112718754589897515143115730151806659164955868018732979233683226301678239534156931358012567148639696658725971601373536004279077046304570626241958579244962789738520738474078153555406148045813618548308853575773543149583724890327163119370354230276391940375032667299668234045780117981538101972775779758163019228367996766023313308278517309483454875703193726506640685674591461559718948035418761924717246287861727280267603020071104145855564652607484974017399680173380235546826993193101965152711941930167680974222276698845098403060325566567001274311304940189885810714970338737968006968602576259347603171483426432958586435520153162642594470048205196633296109556832077059117611005439580828197597890634776539631602701706898905685313703651817121766804302205242116747445431649076806551984164402432140991472896174448018441776551371951884235526168464836322743537030565680692590713393339246451504334731776138961530269584896027398955553552889733110382734392881345439113165375119533937052238929765824488630849937799456334321545231111032097301392987225126405568257546442632196802818879098193806645703581839267651727103520508673524264172328505228973485619753209741710731540959302177637391086125636541550416459414481765551738019229091418854721680403306261719816246853487148685807275265494224582492062087005966369585840218941422287827388179154548743035426382046973747961249730688609034264783029781538135810353878312903223548323078411194737367695851182664584498763570181786984401536906272072233153216223130524176673836146716613350270983863749602112412069295708204791705390365532062388535251191430503190470730102059666175292857404200258563031523987131836268130718692641634023424641337340457822360798323710131232683912646636435309350492373901950537415194158426598267549270990541178726924942441593308953365788697008898919118057993364898308067295685423394124748355370916990710178240837516068265009582916962104530340172988365522506195486936179316801547375223306184468079637420826787605262683564281662684519480196775278919315677655835365836781676132067764364189906594650426301801219457589321260515629252943092465198117588454704933879942989679922911636115623722203267216366649228903681606463893356119681025843295704345736841271904270798295644838071634559437966343374322644395410179577414094367692517229457920230173622024194024193339339677824220078511786062362273466894062487966232045058271189941439170196102743596565817193705183623412150612477677296183752248058197851707778879878492964828155658539448997213505020558400054417440835110251893518629703455246021929301553177107611379892211086467969905006541939922706082470370076232537813579877588339660038968239212914837417712669176016587330292103110364238348676312536100574206069817055929656725817412862910960751526800223095993798977350951337836604994785496700716790718228229631342888127742762123271774773668849338563089329595924288142884631760408083453949261122322913594759294695881359201410882586272677082811538794380802679389555148327724430178261781400095570064198162259795966620219991887928924033132210227004138434190081862719415003891349580450521528900090217439950471906481812717806114184304107616657059701938885408901840532884229424832610625618551698549816847822545266958484470891751686933001217588182719687879037177764743368729175096342555315747465744943759834696450095294481764956842789713593335499190079379836873047607872757294745493680330889522428884871974144079904624106596370927125509372410578771529586149966989497171125828151242731191703414171206065408700294115065032907065009495349842571679468519434835765013384380357867705780373570408487551707691741244772284554934836657539341044287947434708929497704572278900351053501270385024357013224164894217881972489517557852813993809363016678242698400286791147499002115567680365804545090180926774654434532520925900119845102072788866902964611808725158189605668160193856470629106020587079596897076242147356760332479248426829395588754198912735030906724384035318633760579351217003618497567679867558123817142898034322184903151111214690299027558004004858497959140148262573273766119924388307859237807974654545518290816719553624355087196356156686064148327091665256848623750398394853599648291283861400740969471741788478948273303217449072303259397565134336760829425942515295004172264447190932638869906548906087591673667731283674734907317120821264802191965921278671263392127640047505565132392295199613312116477615667071419704019581183444269315932946827044649948880872278113275009793917532170340310494520689561038248654356972514237621103663847808968675369449296733116285769581006424349992989510660031073277415328197867584458165473583620853259328021612364920425011956838261826731856147907446213384630090957906494194155428912456107532711270457483762235320080621378760772570724675536476979600561489482038444397474614716804148250951313038695778579421306917719106322533167481704893812871218546201359985701991297153041955208812677092598368420031231188696046206909010016412831236054515789160167479340788102921009066873530333280224407636560660878167071368224299343399238170893683595427550162303688197985156020975853693256334570620614322054176268644945431284730197785652190146233296893649119725543581127902081129950938504833247939484296965286334657898151719078466938343817008750478123319953377259341352603958409439703015912539592963375558043425330729843288860659582725077613959995138984362696678312603262795145764848472628252588125933383207183195301247803387214817673267915562802465852638246935899164466984791087397786327971516367986537886311113233528282779393532385719160634966533399586592901072078431529697523254689819676019096099348168393487704440301742727104180748072480322102745903077064840287332967000701213308573380729281554610930735126484347007062319573667562190053564265737377308893261395518870799870840120859925308804284300237529531339767410193756163658086708694403813972653850647978525136535301433804727256065071500008045793882025516531848065585170634996778161497116601796149924485291270287139045278101333467161561582970284528282085372221049427451992334340121905951202441019709432539651850691425578033020905042573444734600092289449956925014308408158837143983383312579526422405821671419984224052869050123708592760492468525505250142254986398602589475422094738804995743632252522482458290910664831172483144657483499184809917096187168222565427925015985476789659757963922281308457684852907684905121360014780125095413893114069258403905873286937131463676714600267235600775406749438306349833460810968082550423422625598183346045781176307101189427649191219580257587462726784050489254062789407789336256771429468519701706554657344623057734951692257715586678645489180308691543859237574000781930182135019898023871271696212439733987217163806459044031766444112551846283243357881952894654569580605028194139352387918595116429991502009357207655502257260386506846120188758577707084666344538710554273139298013080504039721901937623713123295138737029974560309933976906167294955186696845415949249146112119179663639376428564179744979339058520803461917735494099285268434715568380881114947343298166781053381436337625758911906177748506670383520285975449184568788154890109813143062467985351957194589473704373777525163315067739134322521164279066285216833132605859765039388624507655415760537477399633807328903478993811210021703447344508513186912186196498425680433188390629446594775637962500007741669656312804972883830997269229484894343367744233636182869605314876951130666893135964253791245959188276561973437240152780282675307182550252701869698297498129961787658484614378539872035311210225491979789485518044534921124140645589910372382458215914051428271790589485904207331009429082636633932781423349454652105853164818193079673389760245816960850876754597413003922301602818208748555524472733750296349437113010776686664198341578677734285718572396409554453641787944244485223151472200007359590604792126153905110504728777061502855413693912466359599646053034142808570488194890073126456439795062346797968792361450330930385361150809316167920887798172769338043612234412452842182456065079886335301335485315345875414970279183146618909901025296158813026949899803022406983080159175755662586951249382928311474103292309719215946574671455910870409327845232580044693486462710999720195278644708447711923981585380830828120820432086530064689689451424992336713805705498864725385983619211942175661039498650961381038736922463823945636766286400122215950269563946044557104167112469208290095049687349842391478174440716775760070561618760801602320673965705500963312862567502880909471588053679757587294383108796404474474970666207611740840720882548704789402330935565486994486674079822413778933333799592777183182989318753723678766786332626880775306152493197952827659271571213213347278830486990733070519459819881584328905066184171693417322004033911271182952430094237969170535190583767300982227636677826527975894115143462407974248073851601419354788438446706137284128647036021870893484952601598542897623248568193806837421985424919873112584501079236227977783280927845569723377178956996644692607529464541129308808638799555387087524775990406408105384854093289553100910596502126836631546079983697370322880430373375968955374723413899237307369095709455760492544590488278475024942733597260999640904420537749322923389023899410221516560966316808512486082020621162146979836834271973059970753694121404696197293717147206989173130141775673912251273658307053317230005806345955326149092403104758750567541817587535808674313215615883375450043245536209533798931557434641270778996951680766400964486316613625146822274208149474713891815605480130050978960295455203287351165170002209414359066246495144108280165002824444866287725402036630795861251338623086765941519695692091969388765826460587063163707564679929972576898614728992027602492170411370484717701378666198088866694436100078413589324976435167338340034806413328714632328968441782054884393419718385739451205614842782094668936221013734110879712189851036880298632339957404025276500114313474231279404976797494515957541069400358149024252898597877806537363925680707330272837281145007988398569384976901640232267988485575768241967125058353490750164986896828814179765533052923785605964227104785426921503997253098377221187242688054090753037921983533638715529806520458274570064047332468049567754052130935379865150899629921109490717139375118040329982229249152854366906258048031196172032959117904756067416889432786272396501506891158349604615359671990603509836252549489009190581763943873658548707419042142606507687182678933896456692917457249745990232497661578235889865424417118730366782928181678326901904629298779699242819389991188653170981497562751011403308698799300334798857467560986266032888283538978368813250779348521850218557137960869026791552832226568302734579984283976749959268862465619227611666242578071026018292075662462582885360221854519892428747963213029606447758228879847807726002417834196522476890276659325726019916249161853718710571684959600623095823323946275210230134226196743490351223466888627997812714458203029053840568567576464515479086043438957883366042894691411115980289466511185584458649415528558488043195122845717966446898692492392550370414499344622861129434700391382683679335659994629099715353339566983016511756789554869284755727478462448666168835747890991637916257517233165704329786515035820683421583015880375348845089707449327423756259745894967600360682653324392400127009602664224280438950408233760187657609298576158035766449058421941786568234737847302389709893483457411215070447507840092655299796432800511329309682367600235227390409332307663288497301523079833554760469644626602136183643896588085077507946297310169233705760120565976809953538428711726755344821163007054126144576782334182701423964127943382076234253557757521112192152801786779930726893916633287571556259273337238884297797671211566917191030574101315927750494857567638817354838953329994259426597573559007588243110410290479619148187564415845842220415352470251395526049028519680356828892004357744181344860793666569202831690946077405688650004487838630835048525420499315033000027456743956292918895047089273385696550528267140827275164301096020115804452707505455210099635688533162702820791378849792849451043657576742228537942468719494311347355684457210239643797435750893137590657860740201328311258460876003971240114172377741561258429544313420417258573358074893585050911891112449194439683532550126086825538184962170031587594866612542851736759445155128291935693222379229337575589952352123849022896366991640595697425298152053699437834148012550829293304037119721165245127376741248578778074684934900098634168212060903866164263442254979010364756980654210204119539637542094773274840259015098569690358179395369230337358558108080825871639284871177420557621571946389106290155233699033857814285394049754601816592847819959006884467943249547219142957807115128437026741551488950659063325149316577053303443280889286167163858800231075743288026190429020755346944523596264062627577539710498011655349807980665388219080991621892536532422506537287845705230592582334149085892109879234981634989371216953802354747020866597098176939934999715097308404656815377575298071884890668234054997212321126663771478215736137304695656710975978197130157082908576853241908157591459281196202209708452432479479751569412893682527762371570253891400317632124972501218614762639246621584729000073474938406806037250521794752036569521679338828975863024661443046428559096452333602406642142011651345873115201169795886509695964777286949837901701009768002710188573479985224685876467771227646391064612702874624250025481164591202311321012843161282915095839499423730273975073705906135315621579766767028761329679437923950976488100466222403998329784082769084252622296035241343072569639974684685174366450972147410700168185298327665886730843202039892739311364405467078191811057260209076443425847057976157980305058043989858112702627735697241849200112108075943603606276839528800708820581290545217223011157024788165946326560461928628038246406285025591060940590655373751193709663648143418096758400748139639069813109082179325418775534600817713377230300401087993329347943521816306746043960161199312956837568542574378948883984174036898042890535560883490645437330064322162960543641785781168421252569871601097919454939081392126072558440410108232859078606814809484033225496582665514077085519849402106113625654310251473719898103596488678518795778222127982910892269426700040099565533151939998888449676025956988134020633883950910931005060570393552439109052554720406987061957888086610126703996675294586414154364939971796213263827140907465033709600901458530620543100710463063695571840238503872729562977238523254615956691526421548151910648768112378876356078662681109912547536048091039604299611307857799402783217280434213831972920074904090257921303633690396797730096820239954832446308005453542472899252249975008228961254291604344676132911401587362806169911376435591977835633633397917152441675873492734604469816660431780445749669909301686514057491839648886024569250962863345196923342984810473719224696273774358989721996550364598903460725246104893350096163038118363689061198495104594989903668821678537645521644194711046460632586216782210769866004315809093805118621829463633074473774865729479776887858811110790141591981048544603464324833445417464995571618903529000291496580091054133999740976963393198607480640319907728018291417016140246157911391950649543468947893872288813805480625675279163179715976823732014191728936925442494109696548235149440470064843951324630713943094649322974267243114560853135001435720178434769531460646529940190827455722078658267148889849137039057488485763594363858430381717468640792999764558311836768463474185732233137280220407044008185190613902344991156317103611916418664990932026839118340489695370729266429596932042616423421110769054922285168238357141393106911203743859050720610946816260558469523875410113127623994878595138329612220369924156074733141887142548492119654032163654890054232946447210986224374515632436954249328856204568314913761084535453074338275867240629140520129668548740853687477984572139304795432140929163439802016096745136226619665952399710978391383194184984735054057196790466075095668207212216907607852792093366128902010494905113197358346093574991720098831067457523028447881112202627243941005518367968732922617785298758742760035865897208969819664096345882067875480136291397850676170834829016625598463096617940811715659675609400317333074752757369482199141633535848950143520703814337528433246908434173988859102518856860929496917091264787233574683695475592187079206083881282256217706084536846824500409005736246602246895126069579125818692184848973080471677529489731743674537570599399315670967423796208736764670471225701481798949287981235617004425608778636689457474456609911917052672589852946906566577535213389713840471527134045629628776718762109239681525692742303760163046942501410446314037547889689981427131821922375252418921739000476439461958608779665786151124422879215722791482365359769439357236181366377988438928695501729362461468120941776663100486999717639676518103011431855632975046768068615373517637637227987989194110774037383605125775934930052546477071192160931676044552107841286496206109026850603726969707753417904185096158943346278410174971442950769444456607875843491114641927897305267145836691408461473829275540729508279536609277405917197281275164830232800981460457862016494093303624233245837866724845909636202524850775708480341651860839629452604521344035133014687154109106176523623974743729988287115565924183941572789800412486121111653897972833493203648055239949180694530640431156995182849837148907715945532408930472231400300019412731081319653085811068684369865219286233523140719110633326860942265445876436974882712983289772072641299478752779387433971344964709125998712300562356244402108320933279435480836796787384685195866137825025412113421649947166801476904896949778673785250815427859892051176259945922631275524590710495828754351768356266546440597297410383058715783271599062021621068113476066544956506075618332473970838221002925347977414421190057058866552825311809859906900383133594464332386898646218298638645956703246061251198927977441692462258320745919697161370593158409955932913009544981757028438766075247959515934003858643591218760605144522503484040838064274502686537750273256429151696132005843373067424357408812964952187054934062571254680052356013376233156619193273575995002648931902581031866060355485284488867731620534448870784061720218876398859621123517482091624573834939882725900592514985986807357663521891432350791618845456301067454966884159976543119521930959897534212612615303061154401965487548184594458536750504797391838771719797325502714952402951610650460819834132002736146907540907590668901477731507836649762185054707130455458506855879249382747227953309492427020692163114233028237048177910152844819582027792157383920962918298752826952927403577401158016433107459473456078156747360758046296332103471701936454040900396725092055477369665133607059854490221939208648767526609514832973642715670104956279900742594957880573341142035311665189550884779771142388833339637887259735050234359069327789009073156464906936999337473373213836867541788612629160331155579951572309316052673433514606172837662011730493615824053138834266699326839119197368979536161687051449811092032530235344185524072256348826921233784129871710130253692294424884544855323586049634339539901215542631791580065773077994264407943744245703861067013914726620938139324854593203145794520391082271566468395744413238598454202980179664028467587336947049856650679295582005972075960620566713486404556818767800721529790745357085761423467407704385198418011519206691932343348292903184288411362893967379029045529304707398012433973796412901344212973679296592521811789707050024013935608536760153120215838873698468972090424017890644668946297482304252260660535811061537316542136279354582149988662205761356174961731594881339264632413924725313143873835582906160836176239811766311832028659473576588834759097553393806823032880943504872436598983964425089493884551651925246587693992065459079959880192662184689901411821862009926509042039750612508346259262650537584369730504135080567901050209999195006906980275787350653529164093225024026977746488226249723803201917493958528197899969934568740047609706820239648471236758832202535343708034918604189424606893042239273964714084042852807976213337535778893669490105655323217927872146423002833882874384116968112674718594326560445800981595914989069808347133349331777525631636905344004355647542747366220553552621201086918612575015838870612213620629643367653682084147652637147167176424552122355745956489471820406922472803831190301846110369809003519560143601241070702514556960047566706904556696594056477038855702293739626736063739633374021403303366659537842040381601588385155503792310776191529524009435971688349393437823066221943633010711860508314948576958954022572349360969337323436980149033434091101032107749972625748677861218249557067711001605135584129220413408212355157744543700956795959741384525354890427835618801396030384132394616628380807514306682011333120994529664593381704623085844809750245290655213824703430576220705300030070674619726572831307953443584413039797561406509785975075461959873075240994941618960398742046605752400555143712233429536958379556205334796647993552448026719866102882430468658914433580233968032096220389091324309018467385280995865197789481822562775129743462476346722676786618092537826831031615471982207884757624589290531597057574496403980016701441917225199705166694984913510070188708721378029301506374911553348948651584104616741046624581763929883231224940145274919507942159793695441206038185162402638319086102936304983478415018800399258221366606819044235426583914266542972397593399103969701696335388570829214996776191914941461163800566536546504368364163882454876990567146973585348584802597233854352252382694998965599026780108509896540987164973934103147632671973220431349805644561035622616009805354546254431992784902769541333344661222077575633299645725132423633360506541809612326683132817381452192294583107013107591237393571502853567854054953282030183798778856762826013032087156645270981451206621256271002358425514409111248033306678762108090038858927199138026554725805845894477988092269931290284959324171299520909537750083667311070100806867960555954940525499706113559610698025605963464090680958237878020264738564252827957060274082066681609497341425734405688828922103313052696932272422944476761564362534436665944626408582361508667986722475095993557195965582008902137744189523699366378662876229596959834923661330762766152409000976644516033913742206083847534626115059040716767641820350025926490453829532002846853262801626109286852200361043318632110050986138599045613051801570878755476276326721456519563786512587862029383256755808967344694709154250856856707564780403336240189924420730945327968881622868813281468948862924492984948803231451146264210975312815851690870928423230298820754772262338234623399534186832002012391410474563451174116136546477351468460854657860208433490445185234064446852429689406445912254550627145745321292100921182489920553291214835030317733169368987283188609036048169220324104972489275241322933026451972602488115959894579260675506035084840422455100517307545853422795519300795910706273635583123111078201853170882694317000404186067082789525484951683834961672141882979672293864292616711002690136511302326422185082998564678686304802251552632260344178820083570032886216571470442729902530903173270466063721149101642052491826434543980423311455016910838982927000544452533599336032234387678960914522310751009771750196113771284715034477778354376633371462591138780124409526786961899906809581541718929486168176174130816128685270656422044607123797194204336285570194279310667366793726214780983232409829941073296179271554852060365625122038980449869946791735897642900414966327600525776233265989146863642563786807630885007167845521734640541382408217242704411583960629024458134383956054315357011340880426376185387300718012856994019720799101176570701061525559865602573874901680590101251937760673725130640101165124520135812771522332952776127071381004855987544616013152960788608643088843200607712735408059582102438170969908584726372396982206528769246948625108470278128582409846505471841143180749155594153437144528044075202442414431302737871199092984609234127193188343168146117362651024243800565536588988093330193892218741195131559971515642594236772537056640385397885706832686298269882468898756638252077279110226850169003735981156722282641042442024572205795476327272688407398141133953544176129850108274569944002311308444095458832792291696280177594126986567649757471992913506021074397599016727057132726546327326090720885934674506784098701769466828475281101414846350939669042480214645248454811910834202727573730848493799394273650903679491025202073466806248416631406120622250539452124907264860271438532980579732900922912022337860797683223990175360279575551689607408815082082594545438668986252891049482920579531372201520676179849137274812135800766032480059335817764778482888210917368833552734253365962691105881495612308933443351443741652454852403367175646083470052587465656696350529392501252645817558048275747883269330205273802926020666183512922579217615383903145075191514317369179282503946365002959617033663120482695204051865372397594316571409173446268882096478113779854104720726507779577662411422244878674382954823724430047411689496948896197318487472786611426887843047153016413696505497163620351649165711349344237177118830449542965266770963586095867783658189336061157574555170483066334690768278699657992797506504695323886528084677915604814067338582101543973936211601488782369693644352448629638719203819526130561413351552542797298764352872596596792114215687550478273223755708659454585953348757681841222855639754537722013668499598213357470677001831284467086903101773778853362348828807850272309588718178724321414958623822801128133926252055056820912180546094826085803638203773416276666044537183104536190177809134636243993264794125883422498609091360441612025593484119701088012782942612540586020209180936802213011390848296858163315441361879650848541933025904022870048484449629870281865424399944665388931395430223221067247065910800348267430433236036033710734484647563874160343719174523621285920877959249182805943471169272812248619603993640430854759117743169582340007641950246708715379309307379952093611733067178099528004069019671566597402342836544319436799303039335734759572718900967610037228893783257324284225649404853641356103316393871202639617463847272132205895829180433603988441579649663777276985483055562796946747987463762234182701889072440315478964911979048619271794496959976523847930225820894621652990585516436491915848955739838612356760079040772777087131530784237724073037612804059458290846718230124516670033680982326110809695318289585744372713752313826288312670952058515764670948397337480291168800518805054200555768914792248420551452661139371465079741860871062369079809434066646699644938571765956452671504575289462975741843683343760751018867236450129831096255931776041185788154128967541433972315346154958724954932735121310805238579599844713677971179845139214451037520876734766966641957196665429390772209914328927430389717142585698504596392070247366137733443647514480011141242796494768438272169029423295145870809462085586193735202202631612339072697518154710651373998427686301619477801612494926045519175370219853379927122172495424837820471184658963448551945090655702764413316439449089063360678709096491314371458609403172089005015181411082441701500293490653404711864767745640509299032677816012232737730712683125124911061712429074938817161250019819926308339407831248901034267135534261009174065541241534709030480501978492118918939998921854753312062903719204895982115126333537591561784990432309500501080183110634030937884310813826432474113163087466542849840595710853933805435633369586468877782849320895051973867999022990113568718964374930326670045635351115832223069684372315967270859924400323534849744045409291081048608298174478323855852419282737906783919372222634268903186118668308451255360118333115588250859839356677204823087455445680621539116450925588115223685247955747587856584140801055330184678316862454415911937898488217613331068429783169423973636111037939603886182021717679533671460060581096281081784040945845136471811764605937973489202942680154870288999014652540128131588496065350689776947629477499284996175451085411613831172039254442677727298203214840633612160432653844803395756828103881821823469242216168701699855673183392039862660241292195313471355561852932895009071885054952449857965555113595575464465493221598477747447693658973607388734525560839280730478767005083942318129183144702756062695560800114780083763135578905606692924256634824738286012281905244309942764989375522488456534914922767695285521965521268342768818458718741142341478200447951921955105414396181146276562648465946569202925245996701342419576250823678991311714454439610929938460615031558573177058066709781391381249093138074375527577431995981739690763171175657392069392380592298192461416093459297480360489776470939846050085193117497731975314569495098970194242699772036148051728522108238733555558397923278028532669749884935038166126545005432009182755559079163025129883636174630458396511561733633962789481806971276621244584039649988554112533629057993674319215566684702439120499420334635547365573873649475797587716272091038737849432115871723834883323799319569262205673560152953536425548002632206125824682190560087834410963360627999294870752736748513468460470686781455637324448771650347718322207951995973764401631789916208917575097315090377851946170200667203852104279183432644618995421137768745988998890441830465824758719647549170586566548899341093991777715258586159713601194304364280433015416193604570360774863423574815790489350734870770440709996810075051038858824215487950857846417411391226662706739272562881475902688090312204887113010180669723867082193206187082796577441990045350829529435378763918389343866015097933349224304692361684251931893299999238180844163811736908294304776794431637616109701920162317652216899967097893104520052887189589948047670300403246417740812425794096466655716720901613612862926163525750332065143710188630795407130698167576292910536495666556591484139370931283880367959904843751465686566915814027700957921429235392607189203139970414171577881887815457285836501510559658494413619123001747260522421150297018660973829524491789655014035419208216629660425776253050550131368004413775292888891993413161303345037344052508403966828571114931004743040279584423855778914443675753940718677252654312740233763066028165660561239175936579900787989104325088452956795700327515028653554903099360149707172567977469074035371695589772171709107015206911572000396968207173103222286842553432251851503971774383660111603941227351739444522806982657181227180712920272461304464425118507803222637738920928080434461304018805262277841557534718557017300627502041940560284494866656921466418094350518971395437830183470469897531564094938625485604326614257659704825302652737642921243887580997438020973425282044460391009407083046967575048273532403011948127063764685147304730920705846867618566063476596216879026146326500635979980763248238450608354961545179786053488433282050706018205395605155512925867696832368564194118300050484101859494469452359438664764761321853963627465941450437133130226913244729054438398642492006514647681692101598534852127339976135609677431409566130323434467222583921174325726970709372275967397649406729723841705390024349462209722739957282639049899820343404232084235581243751616604428291286859827584235907264366685790060809554417940498187721709742830629055308204358016305328161258484915097865391773705295986922464421162587781842242675762492435460739111086403276826697239369753577923263771944526177329043951352738312963633238884832069437029286539165340011806536487497146987267277691695258483096701363602849364824307243157152877753003991175672605115932877923178354768435713874447610013041527015209621329196536196683639671361536478657917470239234081132589135058792247709259807198119679396823220916323257922559990706943809328437913731677912216777017978558506986395828401086643126204883990502199368846911838828708484658634546932814239742790837746887249247256130054647008407351601581395097634281833124045310690673710514823249431484949696487569881777297556103795080889319483860081222881833773227924303880948735557822846340843009467879166731376490233576561322247865782928196386053142379247349744988182816615517587634418299115340179357508709779215970117378015213463343885694378322776328782629700458158260988825185149083508937419447528728057149825492924026261840438793798537057008740805332203856998874832891142629098764454772450530201021070321626310358877907130739054271274602840550747458153224530595234038205741477751595212005256316358073280774591968898227345290021335586959274484044775860701982899363676157737203302156171801949565849641629950341504254799324361952081330576233646943897141389667033885657088788081834688492002203138113864370637464242323842037470578198673854174647757486836169677497254210285269416473542119589024041530966431110456050692130111458344968204570982615399224892036896522028632733401892318842652644764136084294306312674050786102847049804444190666781057720543761294845757122711226299254381903442605957203385415906365713019695818494101929591237095929609674886301364943935734325483086487761707749743297831286597834983561422931374371048740276803845254928453469348825341669280973992733358458681313865317224428887583919847927808623307585987916120324358450982491141486839553866824154720081769755021329078638447262772757920615029263403823412761150697816616343672589333032912053655839699792681351678416951089477532472244242575587989855384917553695351639398247523186213097146836180369373912050722400963729606214401737698385578422601032176099770534655732246277115249638167678318554861002257797081160443532013644667237224607399091475199570220556258197701584581838030576361329905422496031247532840719277942027576166007083176635062987402592322041755503175127737632803257511741854142648308125185506341049721932705400194678640497626979991062034368755818382198446425042933357634543909567694540355811515001216711820273375351093363240104198271250004040045889817060241742252400421214341483718433557397528013577644528781568711413003294393710798240267111663036853773542468240058604784630429836312031302744463670886370991513798698551219803888390501276127267760909385068043877855366223439323956668532515779751325375958494355155791350811516489960581304299661177943870978636293647194272112246059127869292244475096092563192736699364010166825840735056733469745107388742807928120031885947825765027679007158799272845654139838471299043301462698992691129437140870512555736777788130927328513170109667110340070013869597417164785495082274684012875980089396321032430697070360699577237607948960044421234386202273627686221058610900636853905072569036416228204365378502322231040129951511407854344691443266611922053521021607015142051768488941613765679611699336870128082664361150768550697932629575431538695478306313347251686876780876465021671724626016324471871237880614382952133118055277468607262111635839568291674811161339383252984971661977219447340575280083558313971937236922276599692853536361858361752878877467418706911465139305322641067362814004755176055493660268306369088341844787968567298615126972227910858904430858648367561450281824452840943984765758119246780578476507197210456394249796114997651291856165169928658550401941083741732815883459520115689799695602591521770989996267296364599720979920183477041181189810627542197462856505018780305286628200305185334271208164143194552814623506016302625898174773549946777785817980202307391911023687412178987338062307534396111810910632081401302770917582083205209013735786526399219948386493329999264991415109908457723970308878303517937732323286214690482520265645710374805201730478275143341361894477906570838751143352248913891696084848430824381080458672599241623860234692448428396791277957733220502543894262147901494104816460847672012575041395060072469786340670511057033569943065554410779067664371381729963180924746165650068196031596554849553440662716536240876549527661719732986261810007640952696530933603063811442867701154144315044067234009826929350096858620893471858198089495570000596059466285715842080836852874895419998178674533564783482585413761909052152048940087946099354488525273218388569590637464528400681373905541280000943861446493232290518365121546722383375967339605884857832127535053460728146241754046151893123571415467957083143609764563108873825377462487948438435669084393682659400126314533632096551900237625152838920017973943383172579070188771905506865020442820996442244357125816515384341422461814694451498919552375577098271598709798135170583691734312402569326482803255180820018849007155584437267930861140740282899979041417024994519759645644684145145115277469885341382003649303131357064029183312207511756612626470578685485376240923104213479833493150225579504539118852445977990355061741942519252713392831980183331380721439819496860664577877991199025979731052430600912259281025192148960728283436693482031099613014128802997627421088981270500438906174722311682770396045706274936852369123003740819240817658329641015060664877216449436061024593686713249627620003753267916054858872642091122352148988942676154866280933459984246498544328664361406848032320774855811351950749304709293663086309755150160426444822009294216453186538384471706922264623295471195768552795080190914833935583502727300684728710335525240564225911653616109807287268491363566031245263282185514811961625860988531837287497966095288566352375428615537888997177232655645081608127850007382895616427494889211759342542817574880739245319591863842659708204171899086832053398798046780535675099873158705701488057545805824334347837699715267942560554941688167910381112342414286369910192917791606180563916745631870716732353214206479717971814748367900987716618923558641416018332077969409353643820086717058091873278561067747773520147602918592922583094674108825267009745682390812230799580063564231274134629473773208184022325074199864302255190690851962513312705167076810284049573074232437482332604707472091088700471125580217328281794613317275930407885880805042374658100910967687963985778876774342258117210940600732344419601836780126415770274976644336189562332187034530119175134498919059632187945009942082195765197737115040575948063094728606560209965489068473550798293058206428332340858352555344872728036064758319783756782571947937442473836912861309587260451747718029581406218035977022576566583949741824496298658226850558134348171656591707558623560538410910822261518495762999643747764202774771831311949958266521773129793256329328041322237873281744737925375209325349797810624641220306411704964399694243590282209280459567294024722492683535425816104290940236001827254438635048311222651018876403781951459294280698173491552580501295164196970297191301646733721863402162285874746620554526603522096602612531599209991496312748182792885763269663508066835171693941632721407626436289712967588565914399471986670869116294179647357069617672336645324192422053757368323945775865177102939763032846088785920984482561703915794506731320557270456182450520485595468357089154451019125857814803747572924773170683280892634160823315077547716448084198962247440663305722765085732641354388331202466631137996988733834840079153380068818583544804769183241663888823228327254405011183449098604208514680845227998969550822025764063832142904493787074048594964565879746206362800916842408015574464119516936272311433476243308634590695442228410078311262320439291642486849613567062583974893011027168669623530098443994665413823668719730452561983677985855626236627320035087989487277346404755294161319120466499205605766170921030522346145321485605916641963574558356464469311711292981596564409747253404996790281058117463441478007376900168765383336026230859475771345331074577704651582600051204803049362764730884551079667364847419313272781620062679108126639870308486881581935664385856925006344807198845087214555737369138505443474802240864277906545588784091076266079224726516457231200465982794165484759630217396558592089048056350913097536422600679269032745493078092160455277466826058642816974096655785246822004169255550539148742966566842759508511351020224762883877568543619801931227920008494190997801593355287212401043681385404849912536191500330876419532348903075878577986176734088561604120788261407914781136087528441500373948351147130143034215267706944335500313776522348327532839437271981870343377759518513444007219485169225168677075986463369294802241309597009090660189083014766386163536809057777161800471259754389695920154573578369635746864104332484329234363133469897919341056686536546438681938006359141194852461800352684805284954607191982396613715719117545758119936995698620852849525958906858822089865683605527030864772371357350767441170714650644929882203218375214076559074250076632559661964382396730771309515037339295824507978853934575527755531919135389078495425799812067987310558733006734367015284573615873160947290757747053637049547670049323755075293663088615758029131141692473648670770484891370034824951856592860929480192008381321246693916591804189514841665436714908367489344702276717300477832057129708395672582269197416326277026648912704301513835705236673854798910341199180192077408221964520082943376450130801267345855241607553606403186825471006600303077753858437751032976409156529726348810402407213481043048242865619877260165173719303965656995642779659746690227349872093857747342921731582254430298934516853001169957337929290286834872848432328887395743777102734330863453203633679775912666438337782563197789337740408398931282293133162605015163427260700179553930110804297140111887211917365582449051887866988399300334391433990735381233436402372049032186015384749819951331048871045170474994947094352551130665750048649618535223907352080981700795595868044526769375044855475517538163418809584392578452815442136751334041760358130679727690399969635511424581615615508707577730068937668663724934896429961315380206480540879324121027960408849339640481801070397274360052044575345113834380465473544622275359100673511659316195201843834927668242489677127189546377958060756138352837199489137945286035573753689680683259934311399425303654438611607552396791612223390366807415179412173965111462602998518839327537851318964149992874763593213516762240623391530294797975545723125555592184206824943283720283483513773811953579586912878771845090531558075259461088269357033862268120260666909841994357652667042205821685643213751999433544654694495291389614946214700399188291415314881247213206294224531132455900938808061458658866841807903817500574652552556878203291689627528686019947324032947490344195890187504408893962017017173110841145420476028469134759327938040140342357306817688006750565442938452786226864993552021534962054810690955865699338661063321201883061035727681628430507353386355714450573718749192860818695255829520775682074323622018176453071041303859244144760552433923300611146631523011745015536295677846232615261320938836233189644327786817850324765073397202005916690280840573994607402062478625931427911226757485737536145461326614521607927102445685384339776044893915988114543638744975724768928839869383783084116350249966605325636472234730530028029973415553525118785807695934161866257064961125916868567547235109526554633696781775767906631899227149080951399848480093986532569824232300597992913148070511159838111798368171775473194540610690125747593761648884183131455493319518662388965522068238949449049592963762837288825940762417460975928016993722589374220587772838360524484237580909351625700892146339268251286005357330237778631822931030241018018322259186969876730408505825775391185040609851874938805805793447834958974307586252046849095990380106624683668788667067107982495755544546914261383722177592372197308074153058515269713960531553556368453302050618991207010902993097350947767304107208844574289059689102574669168682115863577144483865112886532519779008420484589029666604573971370402429032487163970552418340590606668505442551172760340693238743162278310814537730130657549358603485309906611339062117531413825871625912973851426115875360678787009505664020071640665818604973044227679128296063090402707439355104009651428044779187623956080575199110918353477838468732082034974807168164211050062667402098934504010134491710177606734066194417423679833163537108115715560213016210733638989921713791625061282563376743019372127594882552615655060074125035461080551434182485596389654748472184690950687588199802677571184602765138541249381095773639277812384543039137664823433899551522750794384118538613861701906246307555225618981373531040940962203931755283205070997818464496525825120841716772801924798771960612659829235722582485516776621589841402746196649425412765495363738099685271374386021558914772757048718359078917099032079521560299523815454077040845238566236142969742764777473225997555533649697093952612717632348924940084890313818282882954831440448294322526106509356069138395265960415050260999345972602474124091288629867380245913538392778995668263090518566815242185787047412222288815900535530231769413431841619799953079762931065227414080614659246375426331546387351325740284311508464264509476576172731470687539858173768181914855476760223782057188074614719882002971608984166922009639717989414444698463496599884557450502176720336651126411619715087309575930515488903422200951419139283404218853263614827893367804730896978935289020837330244911241025074271706495598024515087652699786812593639751074648832701213328453273841304350824649860599809897088122923090290872590917583603221473810713264568379459568077781215195335089283915080610711311947797985256334725588252567002318316813911956678181760828670876121872963734140014031181087277608598158505303424743965220787461252204442683632227072376177399917876719959322275558089042067503975777317074960697057662639629598702856659645102677882852693223359923311287207243423772873862769645396422857128171860119374436430637488871139752627210800614310332648769743312455359928909963007307246446356342676407466690241205173793605381151949763571322182851056221589754209492807743087567791830734691482275567992812801773145001990983634584144788764648630965235000087431583363291051405674004152280364025836733864815252993100003328681724800960180102482110870329108246608307521633091122989409854694067450841678672726667268395316658831492643520771404792854108661147455997386116646320401762502312686104439455569261470674604175404417954823287792396300179784502632039706476811177307179421405004700254759138747682125301537448971893297339838351477480405189913225360806778923602038719258234216775899017241955464634377785395492681924052145571463921395371623843286058304975337319904293069415622654984075072663856066968110437647438256751490020133341079500180846734485773044873301100820440106243608178585873327075290284953422817256348964183406317572310647972958926285898533107661815020268857384466964994440813394316886569475799998078851199733145672536053308592856316007730429109259984611273465354609937679349567440983582102450359146865094391131092654963484311036479190000538409230085958976923488107259300119411783491572108809743187341981807019766555717431721170669642924668452836065946986402485342609268231067794433249229362227157209826047331752510250879888781228578083068766411950025847886825146725141996716882810260968179717457763154520953474871786490082152661460062494674058607154894037279601877118151950737699010383234945833640768549655865440184169113908319379660693237391732776044924519485879636808762637354751381496971882375815867698352336679327611725312188436207175568086839211462507740245343089591241841724798357102502381312000156947271684783361473729972957770942250943385504769010710437848500670242286243389187010516087570368282806740078636947860648935512437817454723455833974868855851350237164565641284829175324862722763183565453141374865067123935923195314217756057711862516304701370246807113591648316936672279497468018252877860789705137584437068148787176932560838875364551681940078531318632927133443292749127946001756747820168963967186785778779539747477182397778231748949144268193112401382125642675641492238671661498230377821598300813939760370860539386737548947870613191013563371820977697302725767067999726696675142806880416369152376692532182549936806261003982275112463495835714823501017972675288021555436087737910265339190825911370087263770498818654237271035201325721193210903021645354502314404468328408582579394061924075569459782297903516214179980039583402263041300067371428981871770871403788473043221434304216846153755247203211772429801125279082614804811502374500162869746424677233520031039164359210973524505198503073300903488010331556930486333048020728521872273008441065237130947958486683761219921594422793738231364305091450578042998588133311618760135008799085306995235541728275347625667297634074565163735391308309109883388488062270607579038262475813272887760623788033251318741147227282257070094342244777748978487000354207321838598305332163588841273016915915041409373287443581620390401455204759435565277061361930003610707588280341680975393381207407450886621903240414665713027337752180691294418799302986440488775546163067798651627471242438323395476684680651119709837905828775866878046462998903014650589371406809558469830838586780569413692019452261553646956979436259515935637689461353050355660948507069190133435138142904058388963988635475106229856347836571493860699636003116409895163948151954233098148672351364339514381832067928302538428292594201985630527477522170046468886558946114429094279651558437994376833317071065256264389878015905745730763058178892087980556932778964346057421831574819356675914755149635141273411313442192937986373609409125177676728635286972476383356357462738612614370494231355303839031346711139134765934161576280792441634150301108181845308889611645852568104285097350470398432347932341621100964244855163092160010007640600933589253665910795418399288767833009847579493963975750094732258160932775083646491804288724304942597577816057951052998998126215899162167089965726037289642770955962103371919964608816441898483257663922842195663715075995031050139765451385594407751128613430578715334109249376535829361055804417464058139094076968437681033025671108001785826205733366153295807335716920415886435698047430220454551612999682693551351236145414871397644689081069751868852725756673943599881352169803360861037112739171345349566605142406327506740239465722115318161534893610776540548162644706726787591234169345391942227756607692669972160584211217200086796499141836746418118749722444759458117517202568858420111598342816571366471445093746211043896503048589496685517380174354984792268396693542272630961526899139987296522974515121980388568020457226290261370776979941181109488472474786908741904248343282719067263444878899085990937749782857842687297128373460421067570280439986671394975511910864069461890180829236684502269870423206141777570204802608528013106391526785227546044326219753256279826236189437268697947878053602699210379283672151764715695579356289363613702695712806438786292875763797767016195419009896631345972549648303735152583956761002755240379540635747649034532720010872420994206681237550348870691271220899356796345443225826617088874764076405317412913687951770587868108583782706465240387472649139277895314950601375507446941755784239095739941189351960935254767651776554405556719147569912240044454268601415444662237612623977730539689029014068547002696002679210516799556290200199890123411495991122739460822414626926508581892328970675372720955224372867116767112859533480487101950880387752017467029510248379737573855816416245854151842777416774956700576781788210857678773323550284088183393402412195624721047927496897042685494165228558700216237661368000414576069263853117683315013456916762212956361425790618487429228305420940028960453555875857224550296650049290363695920786152559573161885353627725568126781363213771949923161801094055810523960016638311293258125585092471323690875381476991660145170081485882561068503665239798748593181142564664251166338854024960796382695756876526231759089034928436699130858872720450555976859223960856823741111559421142129958207483785262850961662951252177199584823448545922435235104209969017621584980944987671694539154552585044047909808736118007095772084350136271477943623023903363664171733185110660132193225248198534656480089328652013061049745985352589539152073518018494431355521579437599010815091463916968888367099503208166544257924141985810865442430017420183084810960515451545622733539259562565178060370848509715311317805824764741586296688625497909135649410087256629568196428636880656029600227965286259119699496877230965013535686069825570076993229475225047515179373029799885415443731761310669301697065612586355754278283672349207384784379764925300650349341955358901784754536883496550715682856512696457373940971385433060965009219052034318222170406931498692710940029126868682597764761662902254957023721720509701421178098445134557113232629078787692975956936770054820539257166378200008207448685677982411276608079026946773483219705792156346710023861395898502668803933426625097142623989251235074203084653279792314508034594341560077147672533232798703836826773471837688847606349288397776604328420290763720439612318506627355166636192811622489014195545620253505870322467294300007945863077360306898089683930106931671130730064622550605393071492807272804521899477652084099408105802330623326501874423200444501705951957842796231932442614468107103721760095835031838860273214664722239395398462714714929956468764193767048585754414301512561641457556310415545279664480987686043947749042954823354550363606243822720878663945444553715114611247983497659067666548122811114632251075069506383660551333425562566987295889320884227912027710127974936044491802674817832324508696863866959849474426059483136216383668230204708413131215783662202409178532237395935283495441915570819641221258674976529579172323820249091737218366439901179487444455079979648856728326046790537839274426132546191055007040055323710175844125074064339942141195703325954109245204314386525388573311442601554942569727981331388422583922069251403387474131729087873640461340993225731380022548890143021338332057901594968898757563653254813020855303167957387486768341036737976448836883214048136125800852260356968864459798652398515959867791325598994473320222788576139785677889788942533636628725545229772486195541086153275384597818205461255895198362769596714614081070451605942168412852428720132783927567618441945301329319220486593049468752915819803952533383523817725107536698950176724062474761593955873238102696511499318301001627691494313269550433667990560532909335792954333547812339600204278450214806185190309296983613273724972388796616403890775994866577075415384473875229228556186175655949513139758323795133375928002873940777127386330561103814009221114656471247532843067666570642093616330128050902586546080117058644457283330162093505367647048370378102782051560469528503359238249131253461076338005496591924811861035453009210928892767124495811046486776302280208841706273043086299466183147403163920001861200143643143240080479115807055082962129712274298645934722934616940046458264508035180862280480726858707708695130491801759347039496173731726735055045394773350566506799379506675569382627176547108330815498358175301483386066955536802778284802068446494448902696659750152553681110939920875250638770407969725216587235107907053648732292039108670225295024289195761815373242800213174291675139563926575870704124933769426025786840924618413453753585739464301383618824278402588068502572698071871168395090670526674253471199057394158680692855166269342830878376104444805790814013231983775795266311207039267413714137703864893673320300191898719960010453703284718206646738453375871326938074212635572747223635749965835257213998022627583522696555082536819938587740525817647829651808760119719597653781219630898203084232025521990845217698637325229019924746397810937616245410450008431011040538713343106032152970331472795811044343771695159252643043705437102979305742138136103665134630929173131042013480205193564126651998670640558757363256843721991769268032054512459035044548094332758922490641279266114601784106833036370906718130935034803677692729607839536893764531542923425343948126543857168103603504136906168746997438419971895663148878507780983314864512606974739974312558480296065582956530777634560306140278361879591738552904663469558384552744457373658698945890105795001359723365839787821824600414072540936843179100972393277932489104106039764096589437698393052062584914559138579120780238455894897112180322277685385079284010213165032952906161758479797387174492979153029769801953407152158603725273817473261158973956784320317691106036979499680659080880182928977645772285029579694823708805442175998038007005894447116960180552451404121567615025850915426077790496023874823719928395527937859647742061629028126075960888300625799594873891725104641954064307767444806607103369342916140508421666651789284827571455195427253105269848024385778192755052786097315028509284522530222272889491118589560013448849850222118747156638804154990539552470884008585194176191561861770968590853327328271191145953303680015567511213259693495335117772160169666855567980690663916668022057105940232851240243776747070176475465441305120817284537922072259927614122858017647783389750345450347026120106308909351377707639504575640582772797487877444370988066641089687877356991569055670040055993912827178972635090199936031150588660092955977487300248444357586471152810655001581980147610361084465394427979187042192183564062509360926766516021583468591497801378803572501772195791680632981908086316253963220509495489430504575536793602418698144252685154198440797036651555826856912337706299247655230568624989174330260207760351717462885053156586683169093516079940565216117941332172415230056929951750798645057635525204510872744294884345133060767651250013183903827914960722529621337077251586019763663583146635755908984640654333990285482902247964097542255272791975028780804192215214904887303391384655168411933796518599858477270710197324336487348708779478515445122521929367649603944175453745974290747938026305553086611407801239449325963926512503146025770496439226084307230975873592391532481849898676890369650036268862722808045205474085982799127744270509304964641020945991617657237700058325481933147169252890927385335406290579967164325484591926303469430764253384038498031525651191107451619368261670886228882556547539286270539984440187817502865163724333832441653917390355141923778631120899410824420345665379749735433378398217882517839879189616775128058390799620002894002858479671017874017782114052870732634601516545967818393761114626909598434320773640562606080614507737774327414167652105599421115341305397913405093137589510764485869216331875036916130329170677103625260336895046545383187467860549182749143010310621731087498917829431218476392867383714084890678306675990124435610886485319193552851844078461731669088584366077418171710418588138696098457120208942615331729580776790215730321138794022618900788397143581948759546719709619113944947061052077514483806050370455737136745342497832130959741591597459021440987202954083113035853187372524615653788479489946900914917743160588225836751635402829234977001211434354696982400573608379400254964557254971035337843486544084383856484059989457773882202984316400808705044248953677668911129991766875514339613675200409262961775289317849717426571001951923815786768022753189100626330721004675777782574297530637958284608435828243561668568223975258301499010473295863624348212820580825884546817904141700413972728312606267915378630604219308256292200907838825391178581097954788754785230226001442717951340965552620989744759792194457690052025348777690382925554950711111723291963651870504059428964010434162234059049188300753549878120329879202265060068341940232540528723390149253455242751309717921063813574070505234525202678109812918367626035050764656933839876590536283259357199687758382844024675590998677299943610911261818970518649575924439247942155647406590342644257366239713343573029607724921449336783004128353986901115612506255181953412436053843406265144724144679545334341624700982092221440234741823241266867575183834883972229306078976973591449262194528156652744965041448225991074636904507230458568123840117003340090313261569038046197833511499355119855804033890909792050133792700551473118899463154800493854802522311277381569128097058114497617230826459742635440472043974939318061164255998985270840724783905888184411782857623231739372535181420454736099167458330386571469958317041132040958950280337918083303711739348430465735515794783096903203843526623008970186154532757016850789176520050388157984844181917071672084115788131490333778940395304403973972429271488784956231972202356632814066916457949863978087295402965140468218880465985912795169463266284929224184032281610197697008882332824985274231488803539500387848154546335165488793489989391420774874721756534601334489342423391800782897019969309823430195425830861362019255244590927108457269687880086321234324424044473836239222047585518529933432472450292878132820072142199790258272755397562105180541361511777553181400708798224427361585286776310753054693768227511372012629203044423670569264755336260566357751229530520933111443515263559071052940956914936460233749012283549473877034677067559205010081292451692554046752329722254877264764937577746534792947104112968543988604214502614706533847654537623779244370506705178651764195067137838054627245934509284397320562628232686777247532867323292819170741411600952479676744081867311618503855371714658498269476189469149860720589517200206746264999522262521629247241113699912812624703126393939073068561383742612539059605949576538005045067114051599161336001775097232464175621384381101515406587505729816590755562816129031901131658487017717318896089292659149086012252298344365486172700738157397723176958297763980901357126823780859551369668251331405668860583624396720938187333900118035709629313637971009887738013358342640686111195439478798957452005621805625505466688928230748817723127787527000800023462877172784559258285772170613388837772327761585423182245212310957986450167664720140336234312616960185488137031557211064679230119277786347344724641959983836705728065413020800090989643007123711096059747835451801074170951758954446823192169951852386193625827043064937475697354131461292632557805706591872980900110684561483966893909602463891473425947330015899259992424999277954665450920420967160751537207976612224905014765388138655720470662015476813375274452601208464741779135671569325930293065804642352774545337388527015902564745425618932734211923988150470661891594630392663240287027879194506852441906102053929122697098487922365044534734733145373036106984658289128198302925538309363010863568867663279916771622218566838884877787133183211669158604196883492570665274944857995407652404345504217521629067931107133297714184298814999562108486093427472393052956513269203917753632282028145184110478638571248763575226340765835737177245286214407340965161026856608327214606062978437401874191461183983764395447259106042617591630877324184794787934354946787112663194943926179896938134325797105848074926631838602278437633758240194480351946500852571377260187473120553350559657163113114854939223548395343357149173545947508477267058176744842427936371698876672466066411428795838918954272244952032135112022423557851279246759668491108668219197843669829586566962092497734331711566049310023920620393114141987265718105294329485859640312378752861159975335925180000433131906781256855311010564917651159589787644434791426478343223478810454638784153893900904704269708027238990034460243952698512951817698037917040791626798508248539429068978548458418273788433171651058173335499192206053679975422923734527317047995177927936815141793040487925536849544297220269350959326678431920273738465506104516650578948322387391450673773414163335676776739101775671319114301918533261095362345197757098367241347113759522363893602471241307669796249466167019763453842865009304991572398497357576197309704761860494095410265263463817532656727577670170844480879310258273331894590078666581523233987883533349695843126345996292514327196896012767519071688237432807639092228407838304692975565842499122037443947539018408066821972486021182709415238789323132415432693972611712105898436057644371877513875439760648822558946214406733564192583494398116992589632659827334873108909074501186772443844157915937137284939633740234509163736939888542444260594685528483941237865043537167955010823346519863621965810257409252777047064335062864571810322457528562361722432736011991013566676962666333069641136473072837551468523873976526662648622168271013845276646467519369803816043157746277320470343996826636312954414965773403188005948843319981540414575933707599306624774812689417242946387148704750200046041085862904989194911322484659635610689817257051677336334849279266359340829735200371413107483400863290725229271875159967427322158312917134056296156772357256607917432974658012094585018753361919139219685109523915415127673698036064709726468327704243672997038508710918861398162651961208286666050872933602067852190297386682608193279994835502566524673633005254728637946179766179425998160750654968623629113657534698330905321714093226675507961501056116974647512895268775148705508188676325645698822390349205026677865642368186542815895337824205556861702007063430797758239109186415412716564392862587355998671917827418382721104214349210843686313938273222721952579506613088542293350650690785281818756807814712818020770134610797312738699230530049984921421578807345500440572515475304300858864004051137975258571851861928400037159719451202637981971456888850827761434580686432003680162102736622295254087201334522791648471117633087421389726477868808717539569123576486444101296148563233777821257716401708360480139727647039617898546081905352616949740244508631903413394091357234643556156139890121252613058979577894900791343343655061200692221661892881517698905524664893908529957787111488690353885329939681406184254762809859678663466236990662257288472543836101234671222785091556963948252146373877629440320595272654712656453324443981821224860913681833708265925442976958359520033845456375797858229858402625900430179089721068636900505054782661665937870195273705720918522625236441336635905518767849419257063259946659577340901540733027319682502147398146590873310799489699243247514806843702219709301505024750491319737849947370416670636398655734496315065951060295248604109010418974761473878540451174971371966341523914388541767833644989684528963256530283008949459142409390064486512802925336497466871434697939836676408944496067775366538281645380679628939675549414324780562495544235285518708724380274509261402414912063734162629440626051712161035417644843618242815988433142712504354786641898665970218263246452293055383976825006660179773394929944188843349606169730886984338733082982113715320765223535388856376149558897068882005590314672434212766152279220924696366309683002104423979330980096488840279188638340202531535909781997434160771422398967605671262629410024005739133225614066161990066931970794422219777842789453058454791220565532644257541752784333367236541038101299465696322983129357883133316399454019129641581005927549560328679706159965676492455711203175335884065381003418620474123797328464255521167084149759018306923696490361724331582754045969021772201720885295454186559005979345975233362838855747851908426365435559994056793659621814740889857300536165586672115170037305107612484080903780149218269591874371946329534427878449991311653057290338533511818075811316854769775381747794780409918871365552929381533307727453587182900975683684825850555935019339833100486269275935802994545839986453698437936016624174877340974918922562943817879285329050196235027582865508614616877973000820944181585421360995552983768527308540007729046189395395790741709921848028380953829160387616513979366149525336827536752664814386623271286612445105764746728069794636039850121995757449895665131266361541167108625628215834217994471497174909284778741306343774348170210591905496967205564127615145212147790465353261108190367822142611577724725172205692370727979442396205450634211175101681060912378205939062022686350802932822486552961644524332427822603376250214420926529619797027729079723065083022770127483128132304282232527577329151508997500060128550833397901480915298335887694536983572177999864126494741495490575715730790318186313699919055202532414524016486492914394763214916901963161180048917262130806390945369261570241936255727509073889983851143590040884299387335714339589439055788872739154989662338166690562135278529064051428215951444138062635848370782682029448216778917231253278501105598825787624657372683761475247336897153020229499922828012365258078487657470551773626429748723963134028227651144338629914365385072162543322802889667505014058073207126075196458786254625353209360291924276285347015660051574701271699979076357013666665034175769714873730823385967781908695431451014653769340346425082538706172259531776022585968475653685893820959635809625189277983412225347718272565808690551610525247484194867713706450527153548533002850750538348174673296175223514283380857215619610926493259064992008038370665291603423916675201281713015590559668317058459116801731567165057369992505317864907943931785584583312735820380387387385848593705541331403817321542982446082914719705387378374472824814137991176378198252320497683323591445590562005332072040901692108968769021966897937409436364680234588656033093016611849714358491091265908638716954285173569169836838226122081547727939578063845654044988012525894318784434397061903171905418412472096467944878698677314313929359439457541636446763375664512039805066276621389097544369447289618324051367562246147436009140256972054703721316280981024232995308240625948442140680920784881555837058482716552940607587846637519210863702137853248393495008673523304294726349317094283214075888499085056663353869595872513631963181837800477870294202250784687285562127301747424186584513788989096425191099107511860532873646973080723629118638682496256472754828176642003070513690054297284665869339098941722621869310276342837148290506335896755537918674025616956147412524328000552035523025745840663482718488323955018985815517779634733314320738353328412543393121026557780833446306396494455795925872941359100525933714079210460692443607222841169903261593758194064583091934504462942579217837000734811810916531147731905060752491742383146153367046735377992246736814619763817752767922865797485120210516289334618398977192334435953150362260965595950744438825187225562706521271684420617076505412729133350908847283002861929296113432075006835084582140280749294896469180066133883979542376359486319826586570568559106290702441618249847136730939502084843776101188536755638346968888235657981390868142005202494707111859911225952396486165596743824475136226078260547711600009654750436367741584536627449991607471448602696353861620270501428313415943008829693233965729138582283613962202893417452750167888703507862039715621953841780736625276811206678585562734545731411162538264296136976626797917983723739502875400996784466744423207151133568705677424605002512893509670828204193824922345306879232656608730587846024879870815278234220459093814139898867952072488992760304835566221904630605148222430903763097424493368805535238285798049735708897286934949340472496867657224845012933459535314043708876700356077348489922917153379934973061100364267396054066160336994239680444902749296425065149620322807516954277706421454058524735632389165772027439816342336420531692358063278390688402939088449670456732927305184126834692890386667650458956260200026247991412348916336731669201294411539111209836467684764861595680467538566591787430717244417015593731215638876352237196126678095245468100460905606430470017184295410645561545315308436905809453066182634314565407989955262251011946188379747670243676318437234937652053565846722269166128810550617137513226862537784993369958378325260009847449366449846475583245223188480114015876566270179710476343587851711360651210934150306713361638432056772025281201322397121161761463082346403362554103871840585941904630671573346588804572329168497874141321525339483681171006358260177161403798728525529131739884819524975131596798338640327240300078982863052725780095554301986228283297363922474417686860794208560782864246188775674656647275047784519203676997207857045736095453887701864518488601666275261528774384205712469497935111691804402702085011632908206627993513691086146956601137559014253870141366147518537556979206253629451763510589579170580512878564601406773484643455561181433163563500794610318115849146291270966122548051820733725098187487180786366191528295669912556565061309975364717176354218125685715853688010816017160501739416601370632019731353817537853017879223001926591654736457041551390438968770611613367980870152652110323493147951120341110842341115653544973233257994796628431763965032134693235786985649426942106999928225499575646583952257441857442700374300813057814641065068011162160319729109267648682516414702288239123965782110345793317327103132884512001539755711253482131345791084564831122517758973866268352820706980673703578901579249164241948024378840281934011577443385217475226943389152021043478601900164621179497934532855777632788699935447455406983624224495581652415511616464444376648757904398710765837515408021265187066345178028496857010205889766930880614008396602205516181414211960574227825403478131352155654663077746150896584315965958850455379580571405328645880972491859813974463470193352136937617560080132544964930204575261532977212345879112124561744025742076931836096946482453430526905124841158077577314663495571943908124406190575070614618015693296119569158931722278996229102178583923188699922994245623190708427012902593799678465085277683571236968979403804802534019235146564221898481415693430987436882394227133074890408569170603944196528792216871195339233745490408541808323973746399413264341243145390253404564308302476764045975406774032045821679135640818148065991443701239728962905050959569597031605771879137331678027841809683936502938501317319413821307721152762507952890107760214397289362708597050918873612761086830916517682516493559172286026293923948998906185433634668626650094649018798971991354957437040491222140116804813987396800214835493458733558026085477169342927949021488070084863691401554520896727111732804666805565666755074006650976672615525966183647614504580920603441523341852909593998619841162379000320549596735745936245622643159428503723677981133714486755766034345583326824572509470389714345768654146444453069585008501999804096679950741862394907812444645368853392058398786369130442257737562277594568508868290042458040154659452955981458210950677320293358897209050144950487242313068101431491591800281605657948118153250322534960364395011191366798022376030362291605321858995900003437224281735903138601814467481455492123075200815319269495079167136892771571911283339393515777911403573844783776164122177046662098553434036798664929420994590565174057167638761428217529009731499299163426591410706841659418242128303652181548134133567007623325056147981769960526147034088086533490192569499720734761089729160386950264741477568748405473874796964516034541636215886131454634537559772980108226467580852205360399899723423952328891621941301475707241879774663252992744552114110732628191264928402331951996022051177601335461444243520827196203222562035492179204955906235629790606593580814714643324360567967213086546056286794037239303396324917048369869685135400480635057393196884776446443626698652691819984319329599243260147550490166799754214130688117364015362253693189576514712017840255290470616199592982166819692857269538968535142165892842972977946306499525489604856906996094782776776977288522955268794613137833485594723833636807896656861665890849919557623844129498208725172136549233161955492372941016824719765771137894587147312932368112980739739680990303350903284642713074142911595093729822457959277337031062359143789406079709587215799678545613095444235220226930531704824371890939063917831739286320607827499475963179499184279752307465149135590361382488868729569081164171397683364056575577674093716860476466969962240503803850230263701091952264969397045380945200237016864102653209051537162165145132489859075192837878963830392446283277969952552638184102002184208334601550173379114619625986702893904550599880153714346410058344155718513907917747639346809632948875241738447451697887740413095337188751778148602075144063220929004178422109273077525217256722005648230898549664892456008666421008058473347578812320988816713115913913924490287441145992914391418825919484438007702039941471980007439324873812512189261763861628010927298364251373834790337552273243680733880367046554421644328769467877595022880856329942089011783399567012654799993432957938386171941244563560681537387418909821398953350826838511159978969333650806086964404489341986387778742297119356075820629493354850449423843497296620634060214999512725040266985740223535547805572780486172559335535284654191263914952681093288153858876065025600123871059004271923331838320872778810265485935210248437353658265732359146883447192185610955822972938098013064296559297560344167111374857363973716459007424166325842490050701609762511564584623948921989458372660555793357762653968042730551068095495559778933424787562882084608393726264832939116488813527415432318510022171764333937027005610990336374388340702863882386658329977116508058742265003224335350169464388637112725265603330319985573471953558654604228802897047918357065648575079817852215234206803248038111153294784188104724061720796411315328693177167540394637630226395180849538767420731245761517299436777028700132428937580457690219771536366328319281510416375221675235446060162421326064792008044326227570166833387155592654743383246888297694254648050164950339490290782101832025641633563919659337921549355100641606961972006195023830950969201431534763241362661107152707902663400745499961425983392247397557645821899493665615735502878063712146634202745656202778326646831656604766698940665563713853029276744450966889514129865609242199252148548741130816718547305733910148171035358662160308189020375296719753467469380419896304044884499882500949371865296687601816284319778806489929038245753589630583290590806799214062255993178598070368698681976470011904008264767327569400958062928546007627579535958814789793532655483929273613504750116905637417876545511610096971860314676217693157191353973939597308064023072819975914309168562467796997496549349124957344350716385579656997347480308679195354728757112725931323242581964105486492886621404146503372809264727602437985861207426905105586122217881218503994837136403977311809169293380989829059303841120989831973234792168501503712229859292744519424719041074937190928331140157186991419752858139798105709545969017195057137698133964134834067177644459367175851765728771131423623166516509753849971699868574294503266909649813547707241188767308821180679089651313571495948355143762657308657224978159604995172018852555008310701571629107473505032578294206323791755546754503753728324283695045503880625434899761397928017861226295350165049668998437944035492246125397810463174557021152139242716766814007375197905288809630815467090453688332392520039256421186631532059686410165918958396915285754604524235077853076932701204876090954261923040946664564423956876999556827193412477530881984348534084100379758809272845152198977875662596248465708448349545159387865436421477917037514200338633566051676326522788124949439650998012552851296548892439716528275418582283361740003499733501345306494277479288803326827010302803087271493841958840644496053021180000330787194193614161681834483024632396796171916018565378691216555477766636825727729742498936309525680629642904988306426369993807704894138109476025069776994936729320161079160676724318459243266203743423474811262770957205142289550438668519900569465567668103834647399579328461559491881946996149193928596639344628546715767950834518552068031741981505357753617500936261850423378901312651633337737686541877140348349848814229573170807104833772917139909368652795562664595748386969614141215658258639120064161337743963027974172402592494736454413475113501187448106395187435498169854690081681194168861289573233774992779244945916275237212658825053486886351762865369864302540608765883540461222552190024709708701128958651550082560056853975439458606510904320361101310637698704077571040061870431885576799100318129720864819913789241733947972035479627739352192605592328704989956761769021449029235166455922244661613714069235498844819763673084641541536082819059495765814555936410610316172043407309641951676287868739219808572691402906168575960549762004690029407735325971980943029605969484459329537801580566277006321984444056299062378316686857139623319574816152455534542577633859921202176103902954619661632066675637162159225940760147115687213112654073525014658132799834897444819203293149424181380584855217721807965638161686259886941209590491516707421462205310019776091715799238163234481087172103391257250235526621141325089935455196418825195410344244910786146121754153884514198531708631521377570887748133489018028718578585349010991501862385333858727793933208293049969648187285071601876913830404570261154579503809150444561230451793766865217229416931054141795364131493029726994410860276819774347665956829622478106019579885844408501964682609130949611687063303204482155866765083737197881618006040789424623018304176356886764954292026991790796553825679315467337406315869703470748862687452448548887019132429107042648070759429986626969354246274995616425946840559844062284497807540307518911173070284677090015808295932583600782527319578247405602539167235209014678759135863454241940464074502384449665994261088249957693515750109723905178854178716339835956273263338900293469869166992707191137299232636699450346208902192677862097589322048087545177086458688674063703832655030380825906924518367091494915167414269834660920195552545867298845788226476301866761408534399020306851237899096433949668228914113870031030004774331336635846958442872014804742012317006819633798887361687560386394088357334279993026822687060138346347776956546068577053890897336697198707823122813356497444952657598022081905063795542919228639935387751172467992415741163452878977232881765704983765278155872524166764948052907112812479985097507232150453709877326167130864088066907371035337463335534770345967495640059385608213798438520288063936816793123082126294512819872344951554194187352972856667580579855111883156645177882550349113226195414611633647121907559710904921863514264510456051858411679992519275674768961193545983770468052066012820610368621190424074926828658791072145310411913769096447529247981497176822134598715563393729035246269224351502141000992188054102091431083012394593259062654889464792445705449770754000904389929828552663367315914891042941101424919906603678762677217535774333985334077104506972994014071186706431474378357061526211784374734912346132128554931324670769493385995743524324193690736532172332076134011625275661947093981137694413192428467760821053474675461594668717471130414068949212251497222977813006582999264859857457798357572846998297342972898948264444153499032566746545771760373510619048847197761058730556384576615187947398918687847518130692418834798196485453621526621300240448239313115746410104725230639629817617262394052018713626501043790614021755491452961092391390792033904562940833721088285010122880769225217953307873582191817171265911408410808135788080602577894000971696886828592690451121385338790568001940980079118868972855116269719885482612471954677692339654584514281189962302770226411986196956615508394199837215402773938573580308405594201200365640468790228842698654158239785408971993624027007020139421001533154279243713537859244685754751649054331914101349794798389528093745070260664367835351585408804585651165953936797339186925484982672088802503884204609199578240555555329030149818167201507325440396132003109151998892509089687236261007573556797208272473471115050197471331981367970775884764831499403937964859537017201098262268605184779584252767695396456680272345597456607230721888014691497405130318011715004084521616936172596752517365670639855364929611096434724699068781856535886487582414138252683136130406230724629773306976347252172726129330047090340080559224788440879504517829100775312641085981217150763642909167259337597690261582586240745269359481436303719035385830693166774217825839315478715452521173244746957979214195971093142595131480185025397396894319580097883483313639443296581009183221254927274737775341987318729180803895326523352049583272984604800140393806720911491191269792698586958099935191211091828204351031455865467039288047525653596052504437829466937548541200197143981830393638352007561647965150850344529056308107794510001644344107193285876941672059623052333088591190850037293680924497009177496625624608713588690211576261613982958974250825190769552280676702621585822389804729442850717650553936987723047669310807532840284337504144801858485683154679354088325221999628095177115574152717606362425327992052416236500252964926227025101563000036767839499277919066048141195218950377911296943068609812513809480256816897483056038624947039212372420781570233188375533659892640352965977445793835397504628545740256000162494532773200137664204405842040823449172758537467853041079829149333993992821358523306813207276575662527803301939597239525380056390395481739947861931553144807320274928170252912970635217679375469003227961886613465056146778206661972992336309969400253577177250947478347979678596049001601791483590016688843900532349770121221550985052266451892124571249571089787426163385316766301953087554202503710972207238842061186126361849788248364057015118606153225389426010999781226653701732942109475827249969501733881667805563099466310474790915584811570673899598916414230858720582145613482292243183409878576349495863526100808239682893806365169477331055350855206644200373654093681385421022958544262248486983954251282170688042341274481182536866581447981545884254519409418587040532677246407649092832297725204718229650636901075961939813158479917584985820981066470133595710412007218215301007794430144584665311571919312602320712372378512286506619050378583120030754466805222805381284888842844766227030631309617163026745572396048080591843647889724410979574666068078411795205721419717246659856357467940854073002055700593739569096759100587290277352128896726369476490229153933542701529492884213609196455388928188600418700474824025129918655477702115465003570803090038792796061869511804171797285490043807009932953445595158715855953473157687105969468492054999559255450956092676693464217677290810847028944835626765767620138355790444904531182958154200159906016038437602889970316327801182537870225788353883671612418036798284485519737962993950010896998848404669390722732506937504102269383313235408432736296312001080702230766876881454785114603646456453345475773961332150851079335321156897376657762168470140034070342389148202216278154103838368247470701608840172426960727592392664668522633966297960877831538779947812241271115359061490643118984085941576724831512007664497116345209790609563100148460185328175813884124846995344977851124772940836010761432613485692465629867632535569900056549588864934517123484133834743416557925509146606186340324399861153355818346787603722549372742155491106898143265642162425359556629756313384200326975934734476148178985809954511130105579403949837285377424714299625721249787628687846249284414223609788656272948532568121149785970245017578910411603683108589351850922602265513155926004025340436160047177377702011623759102577781362018691311891258447773736614517547888331141091002755594130940746997392137542704710669839273547282878312714923034127960889171092251130875409602988507163675393440010444213337816933554907978851764685089864354434665531934056353667516930228152331167918635362384134021831277437036952385338003324786110409298609468416799195883071068856110535149889214955531190629738379440286044077208576575736356484673421627413444319091042182773227089190978827863342797800628090935647420716390118392131018590215830603002266352275242878141110813042140325245828567562235909501590635865394782780039955125390755393577350474366935167365392328089079293238964974961286085833880684373087907204803278069338308501848768074401338341294594555627485061051262247711607576974113054396259253288756063930914975704432681050181033106555385737311080012471029039401458717941167043980445172398857418781710126806888583556452373481580433996316612159724861456767353528896117760538731725107568767684877944959741691598512786949448289094931194293279321986836616297644020725106423834036761494117396142272532713263849889046015870155083783154278586663140614657852228315965644136328068218743145987920945377971542069699524572941246025230340375414415435565571994623036972512488989214435904917853985158252804474307243916414553370123245681305069157802282089885440942246524182760143218350287228115398292597839601734379594133822675900910789681216620190634907437087107420631335186350453709849736246212930702123536277148821054419311144876222704038931302698153472786964361268159570717128969155988590315386313276953072409870030920133159350923718983743961343511503955384857562778860196327262377207210320625460851387496476291974656919534287402139168062927600374326600493446934478930006034918538402480941527181624531977353053793467068797642439910795505159632437779327230405063309309125713198166695674937176241140720218063944801946782963618037803346555768105350709376216122965050634645443250633318251695601750587980633970609212732894398557686090200309161406346245083809048308921478567777862695710839585110588998083204582982853528324965712488974693315905646781969279955927163506043591630942109061488786588247302825246843332114554604987877086615496514594189767426477954637829557956688204902950332743222619874310569369279606519930443140724592218056911122015589336551707351723043367159531125610535306220620411445465631688273911786200734250678440806634927739127278636288350530689861754112678132261087676379009442321980757376746772438334555161923123111923101486412293775135274978784904422338894326959994270538302450133541851314841903781126639645280324135390099517799405980264255916555327759143500431441273930859167346800008857662523587837226002847490945007346889646939038828623602921343254036396010567882667715750544659280955675512297310924323520290488590897489360122710191016831137079943557566612414357876602713223771208830689060160293973804720372203899428954611541719719405657347187692406239049542698577656057288574295514339600631496267418473684033811415107782128114231677672126759305080602137719313111226303299923275941188441132701639037639711102379485188538303007082890451898187590962595834670340116224018130883040461977289828103214027332998328182001111817547016101475146080808004618556093553164686794708712276220825322988180582644136844280861370416297345800079154037018310968651621595577690537838874066247870678002698189666653485488395801988466163953776252868701865972273886794748975013939966003999187864194372341260062240191950951097105315157574386904335724712032838341483127288615029451583064674087397543426383183043107250415068071810214140345838255849711992623825969232518368884686348805628979507543346782413818990774329406186393798330949852286637430815035939389984942454996251162716229591051385738034810034979822701559888402163306628599541604545351662681878346702250872912677757351282690110826645219120571820062305371564602225645919526599710145258680919120240327774100174762914744508432028604538392694840867472346903824312038665563573001875128367586567726450365172838030350598707966499906878278932849102717681094998562762799572865923935421947558490821850753217470493986200969949194577846665574873304512006620993231331630659278064621270626834703658498773159216411409157841351438396178406032650005024686388014915607981943636653430345581757658584704169356987112105802210208188514109879094837606414443648156361017789380718685664989818570454202670663985917437215331421753357354774719554344419267106192490210365775284122000504972557495217312561879077749182416003888740677763658691262805885301943676892535915765047348839208937443668190359665239547590879070739940453615372757533943598612335324273684237477846768067111689417709532493606713976953806748026268576269172707248430147693538412731357789871396592798534290078393534006900448116906064955794514101487971854478010330020719399592496054037160917402577835000326986400946258489927390935262695031344746202167338891068356391626569869426679579561708686896723561706334661309860154958706700164458250338532372434866009186215925587644895072499872600575794887634298450456043207968386669887535776207997392477307850139458487229713904435786435741416741795511572156584865202325574509248171106120407723704188132152419378849617938162965203515415777072682862968710084916890396222792209831875746291042574651927272231818919881957661431041777689451705970572178907965053466556189057421730261830298030344124556329912898308979166172883724360935560715213389884525975248106743179424523658001118598072837044492228239474648549199315288444165582502365551335199898007646433582072385971765606805386322230609055099205781025471075504653775394195833772161856455403436416682617345972666352009332235961851508400372449840696403462348520639090943962954663062280115688754229651835803565020771962721829110299957824057994163662305896198293481692095919510118080924396025221586431292582466122810420519433198047637367562636251913229653335286293372744159608139797382477479896772175989194180477765860984215742993033957877974835671206192717923232864627379428617054203244429208305317495855456840262582409470150023337163170539558958812099251438494442145194784705210929110171411478692362410949157117308826334880145458042209121483978123300753786479228668472435148462174967220308118872371483996148620866635395713847826858506349598578270749271528957264634901204316743411256241731541699480330964612930661702720011496381707611233448611421417427527577269229399340667551839448055228305098988505873460397607230939549912813393689774699696828443164903259862242341882878074201376342125172345964133299165086393803729460943802790348685635729420101698901059139594382781187562412660731240350591823128855913413158218387745080087663869108326011195334478521612540956518960069301717083529079398240513106184164500750254362727789209589220968798479746257281669996149669787396206435672378775459879759161266181014856926409025408513270814554198639970612188831884995739251676926357652530655061527737262673990867012851142754083996228431020667214125753870917555069580852105241925658192604084333893200321560516154904450714946648818427174828386590080363274428346190326140088497720611771520600244946482107860987205270846024282915135069350903145068145370410368329021304501705642986723205723513064141050670475594891199552879083976595463053149117997338023812768235991722291672570613600843890175452610418379869747606163476010043556270955242558312849735187067509536579585412601339598059724150074974423857225124390214240141020376028917354499046119188357981359723687948031226220327048727511409667200291501747415273883579265367525245413833974980612690835133792797416864308256701295152715102948110760120784109021800929137357623663113166367531995357234502156377829935025625047857240370745094021151831852553569906773883817161168779833619039152299900369512629920486391119510667092704827507231191483938566786337551516530882526965612689512499808882840752218874017130895255912047296816667565231114534229708158944416306090811947205147219496211213688752005967080852267006985114327307148444605909811051258352119294377594871563801881346992012013619680294961940317834894897012490722616756989766371416294986214142395015282979862028042997468073989137960088911694431942515765955928101945939344353313914641864133653493229236677528445864206609926232118309839188841120596081778346150825756888601472726356674435206604059486430428223647350155082506759544132288859333453996006072191677544188146674309899441134575809576531508738877442483028771284304205105729046839857229530464772471985721946790207855814146886743790986347632625276802788526162987977258845222808368303229039179031184758271620813675315086762805901971875118953191439467788603856404925158946318707893905984484726208014563939503462374538717971934670981634371864413627482109718908858055515802672307222504130348960204149846940259283353764206842879357224827262473054089515198514088611065410591122932326699882440967864215021253719666979315657165496257553952300217042541996839176731836466540034973443883206793395571255081498748704716020803022619293506247732287571145360587909603486831767862885600536874847234701384279439416877673991614865315761357132199672171537503268815928896463073904705610390368782309798698640387873573595664368332622502007427426103786209211557455004823036911315536319027877485642237008964484551149107114858973111092186547455551613950469582014101283512408475982847075049705253812370615525763849922651723319203855492111478289592168690216627001791167553555204144618732191589070364733496308032151394618613896718393669913526426318333346407687444513900271988174858692304409927255575997847101463863326454458646972708898625770821282131976780106506463084253285695828893684107663210999429368391115080852736220674829269836638701117080621852358000350860635509287294629888040287692179416269303630318772364910725565697317611353288751372824257756472010991022165756427086061510210316782586638079983213000381639102007658946557004623249722073430064438655374431067728394627892038829159159468508814521460443712715988276760633151588079138608355295410865822262729847704249818790359737588995505794869679879600346209589934915671067110971130081116146234781668072290759954077679582226585830541246067963938567136615850161245814633175322829669257428799750476534656267376573836569274511217506115406295952593290537689348733655930017841206053657210273598409862396325334740412936112542427883790782319471485356821226167319736607928189093635132330985381809963576575016919322010409032885887679419532519213988436062716891160513295864499983811975619918120488185763334974036864511670718778663000576700805803812596670773253836542908061124907002853679384051835481258092954279762044196848895121383005698993699520281000672333100324891017197983495547352649741596234103966736259495856980792903173317077984021318677960687656849075656653057789409386616938822256476819982298322283017615557562116276065387211589289296976717147418174554978789214869206708467070608540743138993476371314693469729817609996699447228537148650757984364122169089880014073202583068850896591311820558736002038533185742769678345534319187324086248991755847385733224939965087868452020039390289071115433963714754394704796781529872526702004748928948055757762251380193763130267695201060225347868301500154756218782497670603959038188765789630683455655647227645923321742229614511936553226727696028631702602002012462565380990652758492467470223578959843991168125104397334676688643737867056810563892375503175471812155659014570931532070271935590922949941814823304283723244322772195168739021109039675237632731331223082798175463390286901263510946845875733433280677863720894032394931561455529476597715158648304317866768752979766383871277671304892878325958350204155789625916501506205194370423342370740553721830522483508649146626627144035421159362898236660590503858387321744025377424621798173059395834236494475833497845984808578509082290837999968432959050843309697125086392000657973982435731759520511066648689141587740983753738928559901779705045230005839132181679129928220875544113612814425110244571773521364288827014890912681374493964640334951758717168052247803701505281545568711081308333775241775029401701006432164389760235906361612839926963814812934754871886054996788175023596140605624725055049582824206699291393152164915220625163357792957987751581374478791136761560076075859820055916295793149806783695115497555651284581222407418950421686143105939553222054698933033373102765885284387530257146598666183004074639455342929294081030753121470968322004387394739767694382312733096060183404096246151459206010636062311291399617787632297461362704686621071131724351075861430205854168314982116068678785000587022745297313677454690916342077957345524172212003573842239535382373159272426793813026824730215548209616359513964074761924259156452690765510171426750854288829919511553926725912221683178516380351545005091885864131935231506071016442660664090215313265555169852169952219033816219843441994174554884877829086801317402416034804390331035835113788507388851405666732852495810521726959716830926529622856613708821441878260527128270449009433248681256030566024705957494272329960296915152998617212182995081567069616701742424135401620828583256393348703395404339725282755653545764011621921267658965708555299843780543285148801348212659005224359330110214955109216241914060215118832283566065815855789003595130564695107473783661592212665839472720671215678593778638077232454178018801426476083425007438610213277265101858910636900080887841807426137412330838292640403023260304845769527531291353293289101976456573145165600200931034736186065653047262125675598018814629766049295038766091343875008099934631170660448085770843775334771846582634056996650052016568793650302726967263422268037559393567487426324696208451548210969442972702132761572897839758334023331363843870720265376028530468190682182228462980478537338066905743052699440746898008843723706554325051125185358387521854631213689264554234389845756392008793074277078232400492784414333846513794678005891198363255555601999435515201782391864741395815664646178376862942552178155064679095050403709497043630717885535782498668763486430043652255176268583754661011632538551734844173963426366648283312626998246414516522161097938351839906339587782000287956197105884194860445106103622730931596250288625076114771555269958437504157870194477683409642789208810607149863808577574287835330418398871507634978700915338150100902387629670160208064553609521496913551809550168649809374188387869912883805507420126053370486794364762730321492055026660905382974341954384473361536459477796432925000083096751609599263375339764465412346611484744733092967368306341824684897244614713772999683935202746521506721903691570305623264641273597470537896347678472239868638849063049154653344713390386417479493342427773039271743104982903358183055104383215108953386724990103452378411146419487070073948800658501061549956680814429141764200554332109431777378869665285482242449427891346672766444750651576251846138580296969182295415134054366974878562827352178432850583085883451171070814749504095004301639911563333715944400398891440513682584787075760596045264134755955742161810093398518972750661430713358085402166234549005616614389399400040008745724781016533193298427432823743732906581837309739600333271211667117960887673728035536149189139381349700649432117418134836369313403211413834255770491603107624513297734399990487102427069971465321180795323500411251086243339130567258727510645582250462434881759345284584425697913958090946812600504321447753393550271774990662716573393802418374854197888108967225860376907717072314342799388084819977300393787830880645359953581950768355566226621700732396736728948902361497997077059416081193164120270818143567858110875217294680387679137983997578217298814831942675241220195195271998886061862863714526010045413513388121413640362733053454317571577746415581669537295860846824155850568285024308750497431513954313277295845028952148868588892301432795634134433723678562245820838719799897847976715318203276572259634500520006656543307949273471998376776592934492131991345513401472173096677331861509725622976088764335667452174467200576581849089485206490037818119481614568279529230386317749673952644988143525763888517115525124113288868150988535836994454316524404107281813343008772571083468722198936479584651255002780038224465809730208207890987562469721377149137399401861542441310448150087278997859820101442078440061469375699036506583702699094747177463300122616299854706557053527648981625480278705582184196051576993206063379648499525521731738623427925621830725540211654811821355626737872639132342882880922143286232732698604902021244130403942058395966792718165927362095464938797805164239411302846143385438349659045854487394959158800227227852943947778353464468504691411685013278562967336557000818895337050719984597900703236450408402371058344041336687209603553744698477617892943769941567442021030546996606091902666181690001472858334762519903201092917601542314106116281641207568323534151092489231284054375880957024253646753879256471629315750912952249383508531850510895704632156188640536473534242510777651773493575172065037047096312884561624477850101191247959976723392191862263586420691915409982482577595890421068286641914127347681577670799523413562978466172913196341480400176264266975726913910367554521567331476496977125012640824206144018535251431735601046694245449306921490141564675277411801483907316472913465019665035531989611779066848910780193984179547533333000170768202536231204408218369022952339387291509091343477369250557114649257523995853372036710203423163844591737283339905638624784116610786807392699609781030289402192761730093303363229826190513065580794086034724205929737014433840619077529638701835820193504405875180550054401693790235744999928241859975300123542454309424798808837742321969476231575104959391211391466217807046797918215025216620379587991792311693097883753400163127219738184285883042140345666543591729946448096694826449109043815715757857193861285785173480368976634645759612854377757888025578277075422039507708302036379747441121074422150298664206539861737924947223793177642306737475832877585455245918945393946878873445995705185176284302241406043549095560823093020708474440303817011346015038825702833185416062957763320396429842820262062653734812271515502392853382099456338373532580370468403872408581488896072479860526099279984493171764962128850806874933664695439120209634385746480288812047609721963785620028876777332357930161833625656602822653681843909992088761372977118350034978357141936388182665202316453141490623901993108840544310902480776320983570098358838381244427890707997448472508409984019295151868793782655923240380809436213257590784183209906569153107940041716797166155859751700236269443535078021055062641397046745027296533475459125183631194105485710424682963637976342775712137723178493176533006376096507571191060806928502244517988845051214788372688611861662758656442421841379232300465033480468630450480245072945101881855071104863645144575995032787280082359575198671757823471239892558630975445929393953083262022134772042065785080171887248666002763220102644542184123717714121010616149560309665558571880672632163121238332118918369413262244980292614145443433873639195893972173000605272658962654130117867421295696446919207396468686471184638070316052184990475169903903408404644755436096040381846307676274322639888283981054299590110266442628881006531160421843088440602065739011448186350992957018284505950993838187683391388781566518920507078617206573212712162272591544300573343958670473460369861035639148034423648264862767331545962994880019418624663940346119090128159404437910031084544283619987573877324886207037347213237639581164876636764510778280372917355945081407125582274343713684242996251138862406257881022847719595592772164488580334665798887051739930808012604021736159988577310757876805366316651995839513242645624341911616503315527795388411408921472098742251794742639640819065619883636601709253162592446198744898656435449337669112945365171964602633362192140771476312531275578924241640894953259664284547318707888029417243730829192798463707872261206309634377125039547880289149684673061238253230252658506240268136671735297297473262350061531721091572509414305591874166303766947447631474290024141369288947798372658095897276233207039523804529084794855349032822540678893656499874252577244528401573685123115289475962610567928102036502935530584658488953040122196041426139478409061784392027310084301629854365992621439920278823335760575790791408972042765054513221809458354071539122017741447891793143612528378960332709837949647943848037744651420516037215732103724141287899248127385178315935983795267351763690116268858612707360518144747919915525578067372496798997909220560953287341308280609733273543281579142573305609308958257581556934231008579141568849369679207004968676583050475590734281803126416938928941100771899766132370436176865090772323763420547534519500707421916101804230739456249050252526970737030236339746615651073765060882444597961227637290559226533048478203043880309700639998786249908779428848648992160256052226553647493901231280137949682571365005027740502136160379873561970904641045896210961147708335756018265070614640575240662148246577772348230614167425034188831787671486844560311914419979473560858894382154074465421558004325335741991669907494707753699725527672770431772432311593825394863057585281404333818114029558543650006901705310116572041637554658315887223132359333095812200816564092217851925360710901441230000353378485681496944943615106645493526970106267903152762223445534720164600250218654054507588346155619036423453314756056854129927371873987097760175564882616602709860134454780633456979130629121668720838137959499860986458875718022000944376457491729788744499030017104412580082124991414472558783902679234739263262446062857532949618976391661864735278081398611296226234508223905793129854213724517251433152326307160885457346959296340960043937523637066901561381441831002845699653845103800197889200962612099070466410591935282070845077144128658920939425430283621461321043569092906658270201389727187184453239624857544628284416846158865444140151682505012260808167209475032063471370151846129517619839606787787929937271605001019034430183187420508589454028386908511028055370089793580306050727602960192245952192707994082245963663848992828967628706736372868002936920991474711912058762478096612882871856824261997216248302815209259173344606587122638549442249779456611152844409142313515508137155004389678122279140754812427968270054737045404739624177121557378718916264638768905860612499083731517640359275644657460270482268201746428498520865240859941234301718573582812553047637488524347102860980632128286616682252725957986363373092061407568570121684723709559804576393650077645156466658197565000819650044828703406486415147620095985804956436316900219334769059870457127141631913518813995068403623761436096024030077610717197507603832778959347018313705937779364160636679356089366630501060859188385063947790658648832160461792825253832070037207867492774212946253465527199778899495254796237471629491088891821023690203392112946733658170292522122231437510627832908882999126955238035333279144972211915160725205712349002184620988656001253177367789740902975107225969162023827088710050865983987906121794502962400539609158142515340623361388192295588284063778112104196978059078198836943854676946511894363803086688559992395271666134748801055673149624779797388982198301425920620157309040250307163187419657011769226752434099062812710473191864942130489337784941244208500577668904164331028892430065997041315098242099456399816689427960920171623745616855194604568558466221651101347118655435082504255346023709407263246493507561727683849058522459993726045819168503240450275882532008163694785675670746614975907363393500636254432263947231475258495360175109895523049193844195021997774035698411617908048880646546214459016582552540524815391227707744268121967191560972357425254240969306248177115587006329315055140877300964062788130190369958953478424532548386237027177590789196722915036197873702659039345048593992420228048335493344611092073143871656740716002951981706256650256177024354152739040829830072544436210500800724462464298581567882189320640642941567091392654191098391520837901704256224970538351659105029516000192799635857494227693400194376175264511846774302520988749600815537930103445771525113121530938581132036450537744352895948483106834247651324977953034601887910096236330729168069390110242890414203645608606663854733132896174183703295441654100348357081724914976733711208482256636011985486502969738494543013745872896766295728398476907023262036441897263107835616222179394224994118866324754556265942939582047596627499233052894907468255913234879124536638887151606178057303260277976372100418737995093723512329543385296017079163797323419226583688191673958807823106191464696128703871696633462334072839999967455912182817526161256541154900152533527640191168086867919085926599638436105952717094624218173136802240682079761874128802657089952900017770225929614801713522828220925621688951379025533122194858437863957060766290775952743996558297787767878288878927045712992245896669823613685547466468025458785864097581429428799833141194461621205497479866282177200826319214557258302472180037789000185911606053247548578817298999441866389557238875023033592233571081064726346998581816072925245529237554835108041627904773342653712650878502901117521317951537985694775767700435230242829293794659444326005176543972764857179163974177472127415967847933371271117029795635093135225230586276890929350399301912198189594930745071635984152395382110452997861188672038032120859431035629044349863900395289015974836802472512779159721279963584199212906480698913221757781802969536117696487207100880060561187341044135263666172773361902382382532739966201830520743450131813745893902845438752378841768375264243797738647051646339725442058502275205193365662670721774706529467865620056414203349656717829898772627552169971584056013102607656565133359431433818384055965360254913763206217808792238314781666480506697596831652885928790090433378490723424794000659537431540061496846910568846742748197519206640803293715279958301572819235685152960541293854767409448047025551728512698856070064285259302656460246393300479716497531629033157900108500024873263725727771544633328394830218099044395702076613673129714932918445217087787062529517325364296171558158826744234592861285642814455202579216290535893331826399792352150898476435926737043377152661825827098262589881080998663039408193869117004477367508526906134486634909976115060253984280323917852098914635393345230766514855069801658979686903071873513085087555207561869594844529564401363921787592326493066698128577905566063025501446612972846879127811973550239429385163239835792211026723751961207214762606130987999263087460498478850657317115931176411253425760335162545264235552431365083085909979723473614156470876854728008162093744755866547806375047465999206838663347957478383137000356727923741082586152982405204153116712345754671370583360629522614599994972000537441827311171345406907430195958387366881142999451644435298768180031616115313776503542826808962016533339417918121274041741049508733554379626656656821832659003950844361515513154561019106594385816059929315763347776507560651295059781356304170869881962343056138662235675406386303970297278711053679609702614755875381210468362268058337386197843911323936592629319177669707003493874998100514617386717121186765493203344151181641260667902219369779550102221959521796395831101518250121906754553717237627908381987009895022372613115080604499753456329885190062695840627584675069403271615904051639350428039911034235715655891243657435006962311597157835764287881588553017637905363276267213856969193468095564173817927115324113766693757121928520928873103904661244474172245071591178884827363086400708151407873870265411184282145003054176045637614142636434257080977551926947831928865043095797838158258811460962834264728225340909688180368946080051979351682167870401497689798408766094364619373209424834047933204868687890071149902886005153369815862108907441763155685727642036135655001838809066311305824223726985681611863593486198740886795826765895719409598966266440407631577997387613389204291290068422554600576850160036044961814324086081850378278358587653927598642159233687825496423385733451580223453931946270326906740304560806969216456387433574007931627384534888454129616169755649755539708362736902196563650749912335857543825297959189937489876697165176835814708621318290365780583507631806422250358933634607342669549882256292753315882807112228566952965421734812648512278427311452006746413953382394602143033685706773509294192281454081898013851073504375135488347582698037739588693706793255808047787403777658992388063636234611050705083127812092817611050932013440433733901907583691258554939053531503134846937107581096474090195974572555942273647332300178761464343655044429504140331440895384991444879881875213395006050509775795474926851950508872845618338350051298526809706629255531438677057056063367453518986836376055783474087832621689833380967964219674439020744101966290105176213191276097296899181111287510700104998136995605083300095086692025870523661684121028791576925966150792443121646086382478898409080183327521293174689895452038752797346863193157298946924703234227602727701197969382711238510867480035901505534249093451538356568024006906141928070709133723436696102368223575673881294348239162142324260853377232491528824788130568745249897748441784354750301095469959129774347914733104584888796099896417172056420815481119166367077693474629029703268347890182804654551597921887779604034632144643542008108164304557838341876415218965047663997173071800060842599441878719950911584707930950120322656062012083260279089230141332263879609331889335702960857398172623261635986048751478823354281246387762213842459036688080014911442511120466637448305424325284951633486430215751741759554630220512050061861074085198423896436935253252318483294013986495167871854277786507349270220281498496275968159655280022309505372808506275582256689271290232969820373007995949963311234226736688382639668642250514228126587855470322572982385922335981694528205057017274444137057830313425207491976334088373991064606931076764590212142510447669511206371246620285378840278676462587430311018270818359004736780708183210421134208918231923558043806602565923937560262196191066316717408357950342152465099675615118150626747970201059540681712226821274686289589497603166400232250155652670811105822077372597580892266244897842296885883623102087328062933712317874177279605145233197895969638107803021836183107163257898422589351542881670104290082052882848698094223290307628062221210740969651397713518106055105962553006500525929660631712948305547769329805988609212666532821183368942993286320723898716459531764695057489414072205761118690826519495032624989981209040367290131855415804707547614180581356118819022553914100794700043773162592155514674463974412829488286676879042066090528882980490211293609942324838976754560968186854719796309100909292186613353429586363085023097988194639513999841535098828617917175307923286810359727739440878211541371646712661987703044719585234451703699691518273087629828947308539938533557189054664325628492692837624115532696612745816795298635037625697381752213948049801467195167890719209465140449817285176384536018117874792469801883500564415349736886489851256946371351979429476831893535559408001769796456617434148614750856384611861039607053830435803491763495140277302476821788513765436038032901470705915298753268182434849262629832666921633961402228100777311827811685708291448631335341148877641351918539028110043616234689086439155490165678535407700429531550291052802757942108075447503030144181235194349815952238057050479745021541743289465004819986906665294296212171147647423151674834392273275583986392250208308648663909731047486241770063335917774072425665158928169860985488538453381791424756178479366822783144760795142578869615162246823667223799500965524153551844028671150414322779472897551435563546521387279995489973299483318899179047455288348634822013831491283940542511325803241045282607240941753145158225334811801708402376567103093920560224292633070137736482867998632319589156336402595131264156819801314136759652381907002717409307274274134420923657751925846526077152709307529004501501029140796034356003774129975523908431332576789356981499896800374624306232285558421292400177599756094701618557301226946074952812417373107139785299782064011361044549117244946579633608575719728877273188078956282670528797673783803611587821727759143489869692436470132854501063933351180726714285240777813885501567209674148604566859888113127160850952452461880825601925318040745254801125648037292810747632786964613055440027769921906462689254384571827723268554638574913798324177992574804473023741618546006995206576787572169172024995980561761284002263847661121817840819064890964973866693607888843360913210679040369765458649029437698997204030000528296568476825831406959120012974968540513285923853235117160077379861726622971995686135573315705650745529432951327848234895520487036695403590768507967742885901655476586040065235581370903992905540928248001572323625921484547154184739269360835573097452014929738546481747391825958995815468353407134694029503562325979032389497696181912693625293784607956105464902764246176870856798930866069509166864510872331891029035768389489961512079241314245174263466472602273516543144669357566375903539693963410602868963926181664898999521585820717183454783899649202974719688309404577572640009332683042115215097679488188376391013730708039867084817377906535322937895449148768903016570185032465568113948575101587516455369477343238632971206865447503022276993966980573746157982911168980404089083807934048432020116342462387321511099122311362504943884631737333925055049411751818769669981355870841539512482792070726939347148556788663048572636674166463070130660959083852440306396156382045073570147990058095108110500726327108589060163539640939157620757576457175064428803516594561345036607120335516388122029711284779427083388613637387402127728428725605486876039763910811591168383772211111240967893590659816559023931562222458660872941155389618055817033086144813629751894679000049713608948436353227961438683633847322371459601720115057210898412142195219132368456853910800598444779352249935459212106146317179385013583943217411475531988399485275508332524571047739111199643980908662696527043927077472016469955501902580415961108141208579110480592335109129231819759407655184909636150387340165242979290974624520540414155274012211289997874794756155556123365925225238272810477040791631483512980944613634825175651836778249114552039079830301432435728770937288486232246475020942016230046861064087936569066278948603752580746358767750163640708142715628228007632975337658350763358077544820439774733098412429560525219836010092931497179067984716393189236699488088942807962625276188778903123204567230565391663869674141817420988756947866753798511689671864459376058112822663476505795258396308130836367693893623098332491889994454436776959729654157726018666377488043233177130612776206765518537436155470381461405533281587785121769192841706970880030833856717738452097288519243408116110217403928535056978338598306711048909410395490014231197976920758927819281447375353647444163383674745785528161910250866755568762911316563445108112673659855365475105783938835256269102190137387342689860016892078978745673599071946300816155000529513398061952797377119447814117129430230759968453660768349058061014964796117071713801945439978969216186534409416665721324621864589484923111812062676053539231174679581476743407779294003364161574897710342262224156977217428414091142953933641214685133632424740009146781218463384567661659168842012846685790631093221157867440160089889195533401953778627467877262113315408774672668339436016942781427021140252355338722050790953496839531656696161883302390280087377786486003743367277551216466450321864009931978126197481092033782778474018583878409712767799501336550993871650915327201404250753866765604687126891590391097327484699739657377130986178684892096909966150002426016264980373265535175906599883424398807634171155366943997663115333470585757654910058818493430527879649099253930982334575818719967086447691155066488405564619911893147005824496651357660675558591807257545844131152631115493253519086950732981274080433416212179492865715052880100250673353910184747498786703058200729117899539563335071811168683381140935702607699513988860165167752784438154620529955634988311705813058072919759710873726195303303094043531561198060109705645970477527563577431443201337244048835700598156348123226829640817778304754935296427854608327866133692125282061154245198702020474267024921497780479624839470994275164241093175073263692070828210556432952665972976136103842164500200544482730088108378514006801826426701181612052735870280190046733905408400551069675933226152334485759717670619660346148943106906300084097196139280198042916525899504758257669192252035553293251459930925291420101362082893579861179430794001749794726700007866283948346447135332359598793606637003211583076494460019631473232603427745341973061524324282779688828558959123678087909034808933103593527049127239697871986699783594996831328102026961321428128921080126406584335086748435230182298570345342368512788605907899314330393822438648451894514223722113623827126922698865703924601511497293070602468785129006976276007770787826641369989966578942928506388392755847948125209505665260311894218613364154577167994793375063107814156479632361210419312540237130375383328524658642145037418901491190407847387917627783685276847665707736800356511855600153977001781572275357401840230512529586653812096606356813856562816395868134454240965260722823766456752906415508309304870476820258821198903644321082568840075487961524487573400952215155211555898955907337215509155378747927329063681826881678956395514123121653782773080242709415524899849258846526510313896629090422816295854187754393179290599598516961087927625265719649214549693191752060657780441232536105217841142253797793913521259292598083773645369316157948449967775419327293727416235270635418267616065299709037584291338720654148231020464214553498078650623116968476184831363777878535119298467347720564151697570513459862599239981839754819071384757277892392362411221231147766482620867859908743323062815699090577117219367593079570515227879788055100048403285583955309805826190470133482230783312114308568959347968631354342331925945884021393343445473705145709376589860079049578452352412049063374717037389352264610976080687223367184973396564883621458812794711617984728480619468508380569204747793210001110097000417623741253669767121119216603159312312032169444386172270946038549035534332364946024488904826091577874090469959499390620978732386678018962820305540965503599377015665976698369831469502295602609067835204541846074498804475910402555737069876726274108235678733235571984043264763016269072165900031824695558952472517777097038227545462363632679812900424355847585557539366278686853276480160294677474795725716744301454182455573297984432664874107097353314146900254811864791720984851856817750459996454175585198303472446422303815698799722264799404695625460713925840349340680460575040171396810993264300626947392314419381550280172810430567370983511356350271775382061056800002405861686160886744173986715945227147820644392977335133925348712891164408091335290570364786409686017226625810500038525814516986751938540368356021749052259225627456974831539871546277569055647844659322604222449921029894427475201109840138177862814741251673739596468713140291035805836469276745456315993265856609904735029243705451839160868962657797473374601962697996900178265449879791877481056945602121957818303905607533256719192967999441059331454647867141021877196696520414878626476690889328289405412965678560527374859264266113785961677047567914106430061036774203774352676433613885201340806366365945842849470769746957680115827547879075101073973482012367371328521255869699385485797931388927835783924905232475885416047439438625672591834574917180519044050515802986937489789841072916385403468229055677111186489229884843583008368140269578728206310702874027371527897456559571426655773140557563611260718618842665599109598813235400928790867479007791261122208001930231656615187714703297782491231925340699203085646535493342309951319684666846349779264251574596987302914711881536358666428436520749532371342962179966699095949956300575502259855882473154643138083359326999035222813967804921032416854367991983362240239076423964165490232246252875355679676932825812500220925525145259449984822894949071950295307237817545027201735806984470984672364219808463533185327179857439115625548335677848207807279306794154050869429293652023105647956000660324021595646123023148564612245752934038298651200214459699181167106327429020593914289792048692164739178616811272357645134795402572774550561565276700679174022220533906446439303550694356500681071154740627106501531237913751546006887034685820931953005019003833699237144293299320099006511406833646643406507656077986530312096268619708056980564042848393185162704148236640706230860152007756533769832810450784676837076044560850274224943949715186712468984803217827915875125276659513787141178752114338785048783326229080041846205892827649567732005133026546324264330750721257279643608768324404859019213802462054036481930846948836433514195252519994723867989580317390828826780941858456105961291158397600569195467005838030562148873835615105378829773874474880388851822829664671028579999450621343081569352846559247085028762169909045183514427791188753860307885579085950093734439839368774610063453340513080806296970489024322779535618368301878343795399409550654418921479527683353298114042997315467266811684723602246932274546697659934249042159699379904991062402733762840319291181810649899880361395807382029441039574950862890733654779790113498781651706359976223582646213116013800733106723756560230701037626174309333459830081276612438033059312929168252022506303399651719738354162699612935192874639464688122026703268909886671010482538832961036073340557678248987106358605070420152696443873068396682504973351753515228759722205402036483942331454113887250006154630376014558854244978862940895405254284825934817331869131463592965087068976770959088792524519030458522890529623570194426241524977514243273394123965050000614281275319207996419864910464897112296930142695897251656808403853546954698169020354667808999277334632680135214684861429049895001721273265188644031747891415644132197733046988373085153902120854382901773711147908518344532635072302920701938357164633133368478398059499229332272555409305744527314847328489461624540493525625947730728598493118804303086682829363303131834782809202423453098899572380811977446788848719725955608495698311767234554232510874057180127623069491019053628053914643891232305187361130305677645816077070939128034951004513721695020383854373629190489486421221542881244812587973926334450987384458459473945712823083988432121507951893899494962312375674085463850171162469957377527217469234797418784303162303045757051410749400015910302837368514610203486677248162640227664963514497048821068732027589552438883598551056768611562468652072071506381501564516730766554515563814217658943707699981885429561451031461349255490202877736188499311487976143415030990906492000551328389328373540501202753193950038850417019769411129418548481837329416553571086356479077833744335788586984426539266132343489900101223275571082797506123721669923030577318199086140173662088158653277120861350008751637413025269575452897167995731687688856444182832714431694646010377080221267524769810589499916031614155970209392262729260035752658972551203500064917862938679579990717379469178500164439856349305261830751020436519948611463918332418815310592553323718681099400115268446343625611934456318416478351881657456243817968119801653733849196785086751066301844701343274891201204262196609612636478288879126478425683647623679348087540606088347634958246872095224067437442880004126912643640150994031858439600615595071752127836405093298823884281369875830667252343946521155844378411882613371763984569775504034171473380852292280098975205116857554312971394323932880350156648268143860731690090304190241102857896810006023669434569227467111454497042820320421322412624888950580564680700969036745481426428209899003544666334225782600135422966129239079104649621407743804375439742406611966654728524259451803904477586780094732134771851600187120163433641607554190824071870452638965507872809486651245146280676831770080531514266625549446172756690874693802868870097918962355570662445880207832596623420497794262638459237328486304558952339936273041430843990203935447677406829188793367058030744071364787670973535995325672954200132960191793860393548048429213954866535588714272353257867210236533371793765125597311070074567966920186905941045330746436633108574673512016264185583908164734739151736635232684620701558430205900189623736875935098077444125662516538448469437311881097338662215905558897069105204099295560138522673459430202200731133348809014654249575544435272084192337910028578411901272214405296426447110199518180343667522956404930081913966038580670162290993733229322418002314779569677036242914552984713002645579990608797353061265710823106723212503049412757754838386822149747012554966880444670287422592786754839425690405654389735595656516411714748516402807816727086049811006186001109850731320708939322646546543584216102929263973533496221823073931467819600092023175986707260053985491980379351703873624656644790357711083836323792681271014239851994095107462646517824382094783124284687548299221722377199141053279334129853912505778388928307242011943457869520745184491784415969895211089513036443081196759908473356398173176834134325569574591854351328531360440641188758091777580468803477168374022336947135406248776445004158102753039801452164521817030869357199359260556349129958258759584376962535973713818882486739758901290151700616380383613080936336810324357867789826288655140274425080175048435787307850701269618613321637785675968743799960093910159745016334047520298524519297636341772362949943198190675178233343538538174188808656576010899094429013922437577210374134217841351634428281455919033310640663111860921810124140094783037685868661245327445761872908969283649310348295179879213912247355344588642086146504119731340518655767036503564734373510284099654455875350738969286586394925982457709146781299017472647718623301698194808286129534923247891838856891607068252904799624180081610001231293430661509535460687033963932167027586750627166850003083488060595327554991389885107967136850704407906058637861158340431726064943665713204784166117476209191982347134966800603156709229517497531225031594147705120158875054727674304157953344090867091591888514554446802034095250251354024054852879146927202879978911221133566239407171461960299247744415223425377527661768390806319268327920417066217387771731259271545016658520525568859640575497477316957509401672733374355929422009017435425181706560333096836606620765462819954078222200194853362003570639328736919097295544388211640055730942630637347930021563140295080146370962833136645445699501929836586048076149382558136803641037842053105380494562247119043662076619399930244051759924149724136254542399479150327689705166547709245553628569341144805959615393658874369045502403280987742261600835643573719006605949598317162420256434923600764124251504906604794729057612610728250216016093840686093079257863456079956897903046322149593823377261120698188129828025883103257809185007783541435139046885932524553099903775085707596618012878830581300270747254695054942600524522426399025905248896614321093124523406928395478987013748662495439913935320505397181141876393387296148861896004497864869136325216112577885286346282141714521594747097747495743114443266516841203249196116507572274238652731117495565063344360765055066963101189323859995091819309599196986466914095887633295683914332559672530991107189940307878420509859009413224036356558619121440370857510477557536654772591004754677694328462266802997167026572267435828149643508409666706811899160652630260251103678756063166867260528937757827600125571646236786791340102771212619882369622279992399727447681839645134388832165150323325193391394598672108577066984666671033747326265094521544816731222675073306078144151458276512061583974055300488992904041112775143858598593851512795247684256900134711547434089830045772985957287852603967838547142716809206170622519935985628659738096496387511037392537915461606939287565131400396189204929479475304198823307160424368526276479757325705440139024015750952405125531201199619293291564210589491981157466417666285117178258332945940096475531561310964884286828681854732412314502183542345548715415703240234019007630475557284229260086876165239201482533653798294709873958758001744869530154402136184024501708627793604022017681239004901736519018401858878699262898168617802665055643735103232135328404591164138140120559968323761339326564961767216170654700033070404298258421592296536110015207444619689795813430211990643489566074221316571316589124063543992042731846669550016681704045327341743573079693973956004410620794313634670239264308453294766847838758926444900592647840894609484741009907479627974642763403193330759003365226545689449127335185283591802861808354761435989054815022680665131100941247567944281664877678625122005327044710046215224635893807522375135673622186255272056862365177341577955781374157722455195294579549730152271435871605606940547867244207456225517883795533250393375534761047815604389658153888526702161700979784499628245943260109426349074239172917638451528788909412388289870655168000421254422651095170219909244401299308295315548055459188196911546068612439949641339718238521482021180942677391112761036878044737208547553746232686951205490945497699965374570437288948282962324915508333978205080753420172233221395495601986944029427688944036746679787102822226302448146188564984664131309158921155729197885515236798989010517396650353895727352222080192087868228435547097569294418385457348125993564562684407550794303633460337798697948153767198681155251730790639559896804872235807707039078679189457339586021997599661621097302497018650926805883668271801299653958562821194875523006221950322046574645625869551676767281990003968455355861418613263544067357303919033872879918047663448611439682253144001847105309597674795483189843481990601204903511452100450466603387754978889139917293617137690127758526228425167122465497373573145561752259437632001375136341576735044877358738249849802248401938711099488101288886411614463492411139686360698501720653247715437619151434847415525854052573675145244861246255219413478689644238709586333967318494361669515137200726582303716241813367020983170025083624299935941724872135172665014957427914317965860670787542357104393521854958743679547810472310866903465625441778465276461402852653657309544707687955769961787766182602687880666518821462904410402976218430273369883931838820389343492962090848428643094681809112929704652716759859155270683220837819278874311111749712016487626755411431361118493334164222343752366043012501507109583439592667535145370633714198379152912330005116124100019505288035662671526921597075732558928583437795182601733791163265479544057605011165178308852197084992424461021903601901802949759148814934240321148069667824632371321213058132824246740740950345944340394424144752571520621773994353755482010415301798904260030637327868883013933598415702753522516524778075061573750696727312440085209804228605305200521087836575569640020964855691216269456453809311993878430670564641496081084109597806258986512759826014895709116066962062800397447773317089344606765126369459250111611345942844992207980357647175438110628025248792068862506416819109441401763688298116151819287998140390644483289849271430826599702637205574879763601778759601260197679790985296325412470880225797482804663982493213249113652348976826762140082986621002433595754114479862643541231934867801604021842853898240684122574985912272081091806217880072743091086558419620278022973740050463509858587668859826270532139501807576050836157569786705565410244171484009243912069491782136278467398483097535337242165178461778272128074986240402539481011822557661965852919997978367409330666533356473508513430228699975920471458799567353619843889814895734748663154001912914935583054138022687169188714022820614915625220420322266491083973255833513230755940730875042198921434033177201509346094317519923642312909218251682822137009218751303954043349049521198585838596301887897115264415412097813759387659560522681152399551412375735270896609075105263877095730041052417467367901723979728685835740886987775372813835974744644029978357587797515014770103659058982301507294523066920412018283588558692697796053048398886725568265112471847200706209839646151929626892083090843905960143864282389682801437563436156926863531727725357067891678988716744400201326861465648592050662114484468827934452177132681822686044765131136437663283669354338589438332582411354631766888778305535953864719764857948381872572420110053393429817521067834689776090672371357817676782988423388790874396029941508090042504943122750631171618280262070052205039977444977473850052139544647219065262131329617659115319419749963037841367503599476980693469192599994501220728608600547535491393541855090669808466399802743732716805181299630787945987602065450104042102056019880229528384777670212913421299483950856621138718150654516453502896228686015958362784971192268935304082517870621676422617913154921781963348827526526046679814760985470942142062762028713366383864443683176418508934025119535155552162667156531319133237723984026768596382623253039107916616242545347769890375855121995177495970358569973958667831065834226083786136274518601648036932262878649880081948510081217907788588885315277890024726274251689699477541548529527065587340139734444635617951282681907546474721098820036207078630301999365026194928221580616912444290853216132429452437888028866569903332662333681645966661621498921532486460584645806066022555484983214230037409361122862938333762137800162863896160007026214551797142375823123923753908396105549935209390613199081587666077782759192434140236754155524490658488704354065225699444477541163313952603797949103721455858730780529976126613252889266626549146238659669921561177662142319005841268100949577545317589204069642849149899131542317967765550108407538722421835801806969166899475433397035426441820094614449130676101590734517288869016702143054759872157329120271273618187399803649629268075112828004826090783076126199548618825298985115593516132439920011801236051154603491812021580496163085217764274541760496335054538762929881758869380771882146073318797280560705121004847777068004092968943846555543256620118361307007179206441272811241460115297736727677290889935349040927249562568705582919744843819542380171075022339062010945893404082781601375343685425215148746153309739845825179707928423888906290651419111122948840041407353171699136232602380931894466537611599470810577203484575631308990277182562954608269915727205722858718998639168996936664971407082404846999904837718391597267264992917267465254717375655951905545030565607024010551167044841709858940064651003997344342840892200871831256901068422145597968030516867273249305977256178864729379058208683855110840487496682393362571309133792663025097786637809169268802469119350102605622979964827406673562468272576957028682489192489684556533454781779877231131872083582370971804898007435136007946273811773058197591187468207625400794670386464662318642005730944835061619043953343866437234828061315315555489815433297135764924782664928389615112778757729511965062650907554818058673004654998823334162718449567082139514858798646542283894392459666975939465846020456440797130054526091006076986208326554415901366694706051454377033843561852614517334490360355225898241876779337297698499601722815523476553766873369284615475823712711953430152458116693685710651981129764383073877841456848159598886431562798569957265793474329047967686955795465170801556809323147304435821537873073948805356797668218004580603269124061138372824942224883342893207933511398920299259897991358335454896083270351493117151600374143908941420585477899218943806588109954040767464009557911142231397630692102909231921526193737448700193258591683362075158714753493224311139668005554942242332417980230168994951633965986404448675883313898280815562995812211837199960329538239116493661283320113396321906847022802808192941396523334446734096059646857645835235338688122199857271086939877838662568313001784696094290168990381770750323597021587021671655694551208720829198695990965362182296556802598032025627070469281784367919695376634515552299082784613434140837546014717063640468257835370450906475194727198294057470200750012076353119023678409150842836555060741067033059102769670343844328331700208692279295023571003159289886927880772161617814851808649491297343964794097538252586984114865471893074255762364378309022305478700529314015104894002685061889662776436060013812166969539279194138061384978765309842266816137792827182024902934045435459373515935186698443418003063563609810471612201665988995275670238072280565762623104094408607321728343640875114395284876150963188956844686407456367310933332567074715631691493911249008105411487836798552038207922156101099195107873055059170781780454764072968030249500956103509130312618782360997764847150273660958080617877112469409538905059427662902363227058561397804597965998819878533689839247678762462187700508984595570485911291557352539370486197981397407828731955034784989229311779332294235971730267787084760200966329854809640309190577715816315200270298580077620143687974926174053101568198182748673975880097268837675820092117200409120295138073773308482196629268414820787715344811119825199160024360775451408686140933224246588437660028481721415777172655659562566591087983591989318474019829887844253810751031197261825143821565443767563978043349567195868303752814220264058508580314614960288475262413378805843248718782611116865839138720645412317686932302199703773738836197049403855849654325310651172959907857659143063367209357418430062975692604099688711218785031949848714881183305888663132356580594745523133057358215620142990864018911308746507611459498860196078716092801161989087030735133346868470588197319307547961025588748098435615714657549499567071027716581306668231842652075964478680627289706534785898862559236814783200026239357539386986490830966885671032441577072557920987757457777871508013120327283442286531579211197601809695771808647559669295615723904381475434143357002101027707847674655651756624345163584314055954489651572116972223207991775832540529767891285257212359894225982107257095361508270804171438613933979117847632408316701911968655173650248983195842450099501804236746397981687522187142664152739759319960764743513256936193372124139218311605374089602777708380329252868470894931228048129158900675619590548971464071179552558413045004420108433940043435319713085678768733251503729260354346487939853093830670217797173889339803002613560357069605694468107736058473610810893936002809157965549670250773092876403019971749606122646584533708554748135570998492838434319257464493147400783120671689049459960024064917169092878146358822312948555787528423218790200493337858726746652087386692432571564473829514561428623145525454966153312274712621471501386372489389408057367796745934133843289710585626775961090207927068507371802981290934763432147959442819212009007425044798522315678286881046923733177547249844804873521084464017095036063625289182523025224035325046108856051074082182527131786791231379422936917629804576215694842781606685787428449542066826424361789745226583036647325241532209243338855320917324854629206279671738376032761615759957098893359433636130172895128806467055305860887557066679961219101464764770928443872939764377421774442382039381371852265031375561578584856487039984525729490044678896851674970230319857997351200443557285928888017885321159736419183483951484498685473285988020219463001235531138999241623086780020724310671254270697867304335386611483182939151021960807776169710592476317623021572509572484724452609620553497673895180893197054740176017879624242152379398738809296737110707841134385993010458627910810247009386314608416605543404364564612125911864019233882097295839926157774623734166795539314519624263738521423919191634539060165454951685311188196227398713378880853505825406219558734389341567595488770174995817180205068568965300312157000094147783144939080439882078626329349391006215565032455409078406699333937551834656608303835897648505527659248952172182004346685047013007456422599452841869718671843433269566189535207968676636014857173961143785829670864618516577275536849227128498532351119335275585559788153962731512278653323413423143867145007215466182850696644582857578890472989652273274072759179147414338000217664440211485216484682325247359703515916394355965419063646068854208345269519704426645052801659816389390426729565192039456783773171345395288682333778027834654454857124783736310273213786141636288706549684449068410116649069443024702628954786875930698921529655262156678443874412681782455216984477336733538552794421917605499524643643558426710753724706564052872059380984710511551492159868320396392513072478895617265142227333098432499356135981032096064687676865263083971318817294834805181984858494818292269100939167027012645664427025443886427071914941217244692918606827326104597644913535663718558498310788096807863671023224441932593292222898905570702438861528627561189233841174708816527630450562680203152445693760778656801205228597648316975572607788801167179571104722085459627948317917492570452661782405726956282346374277851217552655587302214310900409798232528087582379423377998301346104281989672473095137145659591982340931808647362108251775944539186040987342061347926337383477292172189598453511479036677571439430976846303569291005747979297348867397294200333488045146537185202083015083905448673979850291191956375907287556832170229283813620490014977084616806862868640179078187949199167401470822009790614508489180768877791517175607179300939804556589068467750351812064394668211665184894941007197020650331494229551585548346947878122103074389225876765845082043148738747299944829979574708894137429746610155890225617864305362265971499339291689545983108639767927541449889913886809647425496537576579440642412438087281088629546150176138930959564455609203043097439186384073155430700775131937027159896849725506708583096209757307152580933072600287927283377670383173084692200647631897113306557865971761232836916236312579434013781812465036354979868730469219947279402876209117828231366085389665972541722167430095083868906461762531611069505434648855622010128147307458756625940460303092440461230855503224199067587149784057773731936623464631000897076866575924977759404799992332276758947412519282343897711315517149558193790690784738158907952239967273711743688116542572990689522056807697411256102225640225210545356347894896111277356552779721238830063502655006449409957651446079356260155504352916778097511993519362850901614487410768595877868466995167756741255059601642366531050048316741750134244743758522620092633802573951727605418127683490898749831459161472135152709057210734898321930447161207690893708025065320887479073309791373535953197223499932747009218717842994132570541947597750790313289849650918965263295724848836435677508546997261772572501892688021328405783462431784675015342174600224154754838209897429640173317471098494012626658995504942694830542318902698690154749503604325995227975518663051015633044833290722956332025552860874175374218418471404834031070320639774224940831276153351360524567652527004624243175742952956577680686877297543129615411860773746533008782259649929483169063420201618622191144005105711556495578862773897058207772694410919313093168810305028204097725895970083360942554338510119982799187239078374386566073572016838901342850512658995459052677088453202449590057047257528213750667182794363820581007432414656147644619939799768529750169795558156344643002932804981243253268080588125126697382837247937445682146788416465354674477869002598075227107689159005166564807831218962137180715162076002057029347706176715676188108350436487753169797407761305970622427718168811697861975919055987946723897425860327872642086097715955112279363832986210408006632439176211695401929211623156215635262332044791090791555703911074449982736686975459024330015359892131082699012902246643577066264696869484622796023122701276411883998611792190658336019660998747363335302137787103469679461225886508511236101895606737030024825609919149488790512062092295213405496370639549460831853713022071471102836211717136405241707699215827762616899017968763476340171661449151152764559583069451394033761799495729966007006930334025338127942348813552605220591074959637095598005997539616562099656988919109346381119384144596303406986712732772670189376114408907860947898683609924917852107390547005973629910107928041903340413797908911613206996037291536488840961943512469227801418308436573070891525638212262475910729661246436412481337878342514788122292475937462660445109483482705619700892728598862882029185582754946668534340507396767832632011173343233797829054521899991795812036978346526923594174694317616599349961666796492179949870054879683687998665652468208518626934567188625241872398659753025112643560173842141926742082465652684311833097456116246534374100903574915958463449753664454546926096889096441763000079426022818580495579351636061761295031823177934496649738366817003678749770445362496061559922396957826844509312829614695189307060560336325066346131773761372078975489008582721380407235411805948249262928308856190243060826624352343460682220008870448559143590070766715703361886483749537768371110346697309508227584157179821505524825557584948104189734190813184398269821696050562251550673513681662845225229051385362167303094923369404398648056413851287973134405823349063188272794221944836473641447247877502225257720942396215265106653261790657863482478204884078800953805018427967691289140329699734151278820572406933178463376676269260579744999835873293221555931794427898724065086872106240909964424228641437447082587607582364407818948563007360350192578050851692131006733993262815171427449537022876338645649414874008431168497384143699968029782217736290091028280132629965394823282993483720595875072596608523684103002182850433783721235537562657608944202659049092739077558022002657456580404135464590793386766015478309511621356622787072643199972941426998622108834043438078747889203663199277845084585093251980234420720218132387752676668091609603462431386854653624540833958215273914974863239703726555119382974937520698993216415612459182078520969152789927230289427425956311328753470337163022542154652288870434440450077930397073640418317897910237269293973872405344205350852141461288596056791991719730428634714752885906583358860329759890692141315693580649353812659575356569148715269476001296209107582541467053216050478824893285816750626120655723205561018756867109305004358728275167094773641264857014533195100319577241968847693649905412959986959790812855391898099228667777478184399368332873138531066857871227380672785557287223500080978541470888072968501947560056823285311212157231436920151636659425466964158336986399648664739714834877045271177754911008483282476821156392761669258651583120423919209689987496958180600903040353978905576192348934418387878282042794953684673107967757977546694087934153835613633309831783696861872972203349151692376637028017948160196879791763593338193535008225548272319064555478304693162214135962379428220511205876134312124659278347217334563574105258736022485755445340094836221253066978033854940507226047234243110670622694001569315404942264024036552299675672961071664138561957971378791402413287692985988630884004092006847817020630246402720246185335017981365195960293614110309925482584725814743418413667548264466034701180024876562252783967767485794857386916991070774662968280792454371688351954319711311189062149551333169709575894588961612408299215724911519200469847041641677595692831843888877556279299948881668981719942046028309228467759031386518979280494087754643834259102231892172510682110949087220677652725376614738744066014002661310037383130770275245945863926873659243669490776292895441190306166329334093572878104107924921337619484114980617990948950919456977043177702870971944905069784201922158148692982282621619268079964322553267988178936524147111937613441037201035357291027972716243513971376569697158014494168557230715417443136130949144477358120297175040168983437283857624469301627525422910862160598674375065691275639319914918332539295146336818418697279847436148511046086150369989888928192495980572562121764936696229855261795971714978072119426971150204927679435293202048493708080789262065760414237876416781361547629714324080323346255715067890305087156428001716200894317818346130974888573655205660319669530444498666668012755782316171814366351578051855598351605904551421684521155651480260584890924811136250113929103546916414369857200947872528576891374646206029334344645792642340006416867221602161658183478985370461947913787897633750151057013866142552536176537306345506174472723627800966369700168405417778851801693621362029942907502453151502743765788660435392957356369711117408248117721071332341731717287500857762979611440825518527084904795016122881365925945732593911779467770072290437080588158555557225852622077551448126662669485730490867542078007156877974322208596956901614477862311853001261806689807998111016147366519053109607903258300330491617748494002447307478025077151148808105485154481748942567110402499938391751298425117082383761149076440517221939128683701471264920648088414907746175925464992532940646001089337867427546271794043249272601884679720633115476766319732206689562589822792876536876846950723339342110899129559915406627741853801242228325883533945002562672025449982952429922915579963488454725854128039899584467580623113600575394816560590302086175863078791942095336984455567089129319410777336715514170313436338012574578394760395116762006768742698134821715972391397847209267440733361110931030074943646739787559436650618779222672167323744545582703698627806249827337962895506172287755593297226276541230066210694299310644386255120768101057234962532128438154159568021641950497530615041122194467017928798516318683305361454589106322693102679886469235717161571586986572492218850052386140782563888435281502128445635448982988730099061029514583113635221626823334211720919362165735366235196574776828497601054231261497015129226169591088353261773194344431189470207423597671169714607762931813002786689977486357175319373687253503665753351388895288080050915293991266949713074089313576856660297739375049499905006838633873498604213233397439987910107887935150681000555364435715992428376790880085970950271441471158245057621828167954061156564789353835343766177617885842402029806867616137293565685216603026996799820544843298925404918497669434179168648621195213978675554173198713573892451181213276883659777334712115285328779287073649727283056249095649310485954416430033734666612514306962212241248570189070559285200749526008461161939575832575754711896805496657510895512823091601789082813340666516207415132212844143114722101510250634205297598916011823498553863366523010021708440051924664519091357119106599898271862624109552222496798936063575550860813242081792039786602096682783986799501795566584377574832385815517507518391097749716179598792343869701207733941120423373636915135655455847668696503384272089252227591190998057446564576749347630173070549654999400903243286772152801456912878841024402629147956926738071471706108138738169273135634492688808518092534087097213409933366155153164528696237259050528010620491883645245494698699528166541349272508406118939897351149908575426856969696947604498125423158582742322459034399763055565258802741971996862008642122237558334855626427777058721885720724806167104888212758060207589797924597341644649406663481548939963369340543951838889762291715196239462785803329664990902692947701776177834032153711284562630608544522225542760418930184411874326564133031208769076367629437272480335909788918249657419313373700596135439736152017676072453414855166362316472162879508049324229889227978108563572567463408725142522845009592758844639277253040355634666337535263082389770788649557489465868879758686945471444710873658113747807076906082553688328899883601081790874637323736706383718385574474446033946728446246381559840205910474078745679127366056422496419063878690691167143717110576265161332107393933895183074956890604277430658656724478431186366955746818788540359317677808780842704110715296745840107978325750927051414806552550912867080951922940900840995822014305196991336974701011873443061547981455098552313137405574849533498036516631840418270639119422456869656077265178129646839605553348821246782335191541746542913895839860001826804310945559691386050358950297473021591336508486635449243772724386138349913657060578764211502162805548772748537180708977100604763207990680311802349422341984088700088004765723898509228016904476978402164679678587268799251202403162930602244612310003706508670572095202492535831914889511097642009204042297018296569660774997659022767691477629917329604917327627892695508471002251306028775973048479942914985240059115432204103832334486447557513852736754255634560451515435375939113732748666742803785635249954562648942565359282792554810683676208246762766959115565825915959600474049370900845659163646850397911548130445747046721538062466052675827885849269008709573141635197063683836911977419572212561198778705571110656091251873582210692270188883022529554362815007843304024954142610497792124645858611167249591198580908459480391096091700423450763019796690300178850282364335269036081695629658169065253492318303843961663997327861740790235124796364494999388547709877456404391699066212745535217345383083814505890520324174953752523796862197223204464207256932600372566678697803655988394125682028685655355414548876300981323575880338344709650289166886685029114698044527172870283758120669229699140577421894898420295464926701932268415715601014539564749974994008343876239578033216873496355926849902915873413902458434563081482060284217732472350962766852232145608573911415687189078760378143049475518296588608758813941643276511844407380074502238004696741856486330050353745356484809225258367113016659636105845597582325182004984440646676698989860394362321045938594290283709236520702670368995985003104262621100153119304849355424167779374240880931030714323631179498729834013468687947115335936383802904793679487590590125487333612432507016820194369877108899300313761510624274043823173952058295200048751410703404041979080212479696845130409002719603759708818609315526968087886756278652167303313761849264910895913940597756321326140658862842045506160058645182289804074563758979904631946555617601593797005366189540888327282800604388441087743263482139203517258255505995678237003196509613975001253269308616482458924641665505205108167787689377598647815775823508626792553707726628444574668612545828233028950911657614670123486377248975248370488443292797505985825619530550540842756601502204960468329778619736449005604937278283764167387947315570258871768187746321137016538600722556462843698784623428358186063773147180072250878767417786990008332496644985747003205367326213136234027673667415291027569125711312286190478823292547847204046098601714971570065693845406002899493563767802649825653598905029578511477846645106866675949809377315285941978343092950529925012862776043052084074314054646846337554881068439847232484243618305292394821761927337623990788263657722870148158163481394414885748649215955121675841502025231261401802267562666172231741495477908787762435250081150770024841923928837761878074760859893115664182786822869967091610049669668543116829800132699422167385081031593252251127260445429025583692424183977387696364509724168743798258729996229073682317354855612111414756072628030293142903183390501940932541027040797431448093271875420868660605743195936693869014990022377634689861054326147537312264645949659332495779326005696426454995488828433886817513712492330574875797741337554332010022982289675121230282762473130727386032727604511113445710351069407823554289795017268682155934979242887572947022817584255079127562289271692697693044754143513889153775453382619671311683887879917537369307218701441010164535401734464718133241873347352939363675528237371034151972025958765573924118609590584681875488373684421052112718886884562431826089541860131637969018164875645418333149923576022232298979769883802861612562929625845597722501640650217968255154025751511721105721925466565095134772030498621506607920615823964455779456295731646416967471054951888353276058393004994333638421221302927096889016965138108326235283139567078379974427909808826154337749693460843163497128427335423782510266587866716159350927254149408449883123193315464991909479098029920991808786106894387718716639092120484545939018803888305499490593367850880768403352879503358060229079788580748960345916969483950360406193390244250878911331806359420528697665421508699805074880576219421538262208891379109338646304590782067606773826808463519591186829394112629860454894989301450797036031112571581046766630896024975298851806477602944323848525507355493516917252860173681209132712376725384195664749065683040219500597093690523418747241401930619760852822742663196319700803207202340460532857803983386851134117038381283684769608969454686347870984930462818881844581768426885791543657471384193695980684794761055663512514210849069552713428896917525301534133769640606748474936253433206372024585898675955909144289311585004101897914724781939157398595683473645444575015349823687586154073121748501991849516391985505184514837643108742152857961042764056312073097563827722635290441866577670546073106024868863195321231671225443565912410555940036548102859777496305721857532447526895617133373145668354325862610089180238044104153516516516890861519676201021483265531070311849924071385476751862959611359077981397622044637823592835213326525324860701829194889290875399614680817376508518073700618276578273343227366864771418653040590984202552715570984088134997678296347757798251666387707364514441913288016363162195078554666802802560557877727132906874197870455589933951855538562506544600530492095849615591880824082725141870854998703307789935664042490475635115037308527254944494092199947527281335471002439211856305403758475581216039502003513018349350946597264666905137190867019526960906814343472539438667658374752535667860907637453648618314521569920897669579578716224675056928984750717345793730412979713862019943964059570144126664567915807495267463523293374621951002652623586637782730995780789871965428230341343794534226622657437059275896738214681481406385983290800813461793190791141648290379080998848505225910883911933554561572079664074901792239112186631945862177891102277385988596912905209190559647454228611948993208090477408407814709800216103245556275646592512755277649400303613161885256358479580296543170979136854592776260641312279058399934658615171281001356281079339806559556570005494448660183348441671391953585709489295648703407589767172104838262855180693390266043741044856948699955814800363489638719586946895284990523296389821600443743306809088269994053641320766357833792640695238159944918722061584503394972257506126362257109563366477509340653311001953135649736384897903269240476127503787451196546304804790392470744872995455216253323476104692290600819042103771364824158565981499562822420368243516548942229663586712679016697149088225329468689483999459717421240389004895215005895356718039832848324463807097012460784367711391859475661102286132479234119186249115327128827203312647776404198463938898539783194164334496915560118371856951073792003969786304968669134732114065218684637865097683850552155580678368472970799153326099831802673418766112862972582511544340366307748310157901227452806685419454971259253802839391934079687612654406000404520252146884461582487985544133609359694070048900878976080877028733272155006268051486491852725643200446915873723462436631743089238273833457417524670493666784760819133505864679510801672845707730201534195807648441034751827834284678091138626898875588718947273700059989836443213844444479014840127190605353366891527635058399317353663110336193382409799729499058585945477505866229629243130696198011842884336757807166204398290161155288369935198307687813068593329619310976454961436197935270519266675735241032087257219219151453911172673171588210065134288489072613033905187505146559113856380235233207548290006366896055826563863987847135108199943161811034682729867964343039452817071843869004218638663511806495495514724367407935925570908778520090454357519915972944167275292455911951657787558688633876302051149703444216539661271512467736245691509133309399846189685893078354873437343115504129120630783827168141897297214168434219980359307999693588248616098715265726301386039960210448833240449821747050434959337239972559506544970543829112237260277692730222343888551076071898679231561124799002798710982101596336778726229119351385595743189138982241542213902228824823641952457618266945020932622052676209677482715012662705808154886944884009938883592006653709463441255907932288128918051329325232785596935882862185242474063017923874050212822868863670260855805765140076762782462950239753728683888748411329033798932402996326883545438037723016044613963551051027243544171195174451982624063544632385889554369981560254547595784932474329032663570294964735718714135997516762723460928449200553557583929780779933956342702785075053179172706902168398506379238206029958515526907660852813898314866860698806851240506426245950534397298405042949676242777001505457353925998002722550353867810583983957638599282855692015508285790781202809280378513152443672123682833782131261021899379351514713042441655055893011904348673417582037443131066736598637984251253231310436594874880299303728357110542521538642199778706625186339850489855040315459302152914182051275068172030576249447567671641456911749109336109261754279003822462531025325971206724972685459403115003560743093252036153773420181123504613558073967847115800157111715921399383751377150533398344744681469733295609403538298453929130762098331411633647624901282153470448963218099428365146755367426626822976308185225775979082734677151778542661912259087224963783720824918536928726367712250716696234576464951955352748177207586483248317791793077751312685122166126730927175397568489100840628927290529761734023858351107354628251086863528246986215971404644379641777036492009091234972400790171858283905421860981205126783318009422725591733091019731896897755795096156626023203034048313564268428608446563088134430514531289078412008297471840239883779401327236636753474643041693275903071950375536018717019447429103151893953545472100589188318644227067774500563934730025101097700430069789914309759287479176790898787176168062796104197150286394825613346904892128067630956566690609082298291955896408245791236357940901671762717950142617669767855110451471835709216429492917332430107569062129305488903076051164611139681171531879400343860094745760196061679230084980819994575007062811139346380560053504540889646600942674927197207616863770929546797077778068468354298527938824846663506481939402754362147062768617010296746306999198065881990878510157251861087015182575362876971702336854036750213017413740631734234618449023795751869198391015432317673799243504122607466834251727916701037732675817162032732441244610502721384924217047461145770223455409039591397772593977275507491312819043933552395070708994435601096176691952177845781927484851440095235608997689353723313957193969173299888304364844228387603117409774941066610987432298254910244125222052932933525978420775738193257787608960210766387676281223619328290582451095846673925880264265063418949415663372585344395306118685055598739815621989667811444629136238583343313535651304997821747383326500859057761134499846375028613318023478751003381380425268992162471712054554238743808716341541347308137500809083666452007934569297507546535814542702618169724519413864247750095270333383967530940074738920644630766715621387466714049941018054213382077021398142578777662521549364374601263730364618083396059683615694006064700076781864741251372071770001083511131312501442150746702819541171614455457967187608679541876691923345827526583241657730405849351395712210046900132042578702226030182208022869434480883042980401032515627435651669425173448117294240986088831717244944388508807062476250764946800345972587196818161121920333940924638396777572397339347492752764282435179698160857683694578688341667384976378052558387349360330541999651181837548981065501789525525821875863623262810305961743670582250973498888288343645750542822044418722972564001287357556679809895846786566923237505179759367483291407711018978542078668573363910317599833008979296346444837568920180251140215513467659203754388121623220134498923391681920075346498685095503904160652236342034282496961992563106309278172844775804973598940249355136065472733992871326565950385183762806891715724170869252924152713692270996337529093084015965937515984477625316718570788818046300288005305455816089167313309977497415706583057144679282576176722633926362687723728758950130462814920719748762891696983944167683747385709443442734495251914470660227747256156122568089995236051068970943816940403047803239034219694602612653161812012847023674735223115089022248516581772389612305352133486729232234270427585184430955339321615971960033609944365927871739993802101460206815429815705315427518019898314338619857855579628605604024843485924123904417240065449334487616544538746309401304312938253743058043881391377947068727460359226243876689444425662760070747576665008021317080765981930478665733503150567172042524610908608879876302732344207114450297032076355172306523488603033562402356434157025704242420608551755506135086180428323240978532564571307781656339059033574254947448553490112067524147405133195655887410956827132860543907525692140767184266837356858383182344293560075241615183651447424114403369086739437213024367159636651046411092108652060119972229498479763154153489548870089922132255654721530883252172347155219306185723953263356782787801553830144129701312947466049224666683677323937860575021263250493770436769640890567475059488605663946074111227895059632015775078140478535452010230042676886038437269576160320284529353939694788026072771140417387880730088404889941469854107098168359755347016033946713297256811154450666857450922184609768295789907959693709759394891247678432613075799461300548810066220459927385855198472517498324654247944606971026214922462191937856690939238838444552670880005560888623292279464156475980398326040394453658394099417739893505561838057683937401618611706441885424849718600809648759828090160688234549853439954332360207362185851608198729604753113642705287703655504281526617278375471026147061768208007953149693017295076539383608593386849624007732601397171167768493771309766843266913972516573783847194370486393759559238598572268948194099516927900905515255806391125637954904049333808328105099462510462538609183961481754288517811016654957735682662813065703887694359262188254138534794366655592961432043229870630950395839675476772753476381946404996653318586934777269456702167020716963160739369443258820070675029927703431695432072932124613339229549941935063773178349823299379873077787715971501004535498028985409871977532240330326880522867290042201886748274166308574533150555781419448442132798571715614342043917991723467022206720181340091899152923518151993301820183567631989733560176452836461615158924788041282429958715833331893710565651610644191849027014622718837040628128370754696273709271264596657208469750979868708694863805308385982299521045164866783384515275770922949775102956831349581786223812162858390834734794106150909038807680121953370150855471578408037561733550722388993263896220545414550329380021882688363788588866108723578821311856065481062513643991722277167473037447944135540296080789956538766705020511720217196595308008874540260182637840949601904630057121387322405975748087262598516710258736324907788278990118480102240118831546307838125802164618708182283650721360232636818749132351419039728290329475525544809441872716206889470664933322336662461444125108453886034397784163120817664549040939673767511716067003714197755268962462895169975411107780168146901000192407512888843568761377818385416368706744371074089680452833890136166706526384677869025406036607289900005726428040493960555590138495356723987864920845778946017757872803630779652722790145514198950863670993713753344257147436586668627446188983662059434927102242683328465186498475315689622335095237822583859875410265908596360539207027780868429100380660081029491456989401807232150793400323359852107358784514579945599535732552724759015483610383887698321894531285244969373536636402422066034941738553376659618076661120223954431844258175268817945600807517247295431275287825642951402272258526191896446950062759223944150574429281029514691925093117900894883009302180417006032621154626202729853290909340412079632282458514679275556832616405299534471073302556539847244312108898862367737918729697163641489619926789273221554648315055097920169141740338044471300160770183645376000525853846438697953437509184982127507633646980665700297776907770897661357047576100263603561590825087147549382801741633807854834230219328785838924569759633959118844001249099545076163379786213812833833469253548861618643507985470171584105694408866967767646739227586960582114484833911788192009209172446985712106001471235291293867000143718394538451096785668445550544252971648223584989164473293188847179358519508223335693108808162873191376826823870417422738170845979339752856970070694926103707765859278419525807697412734769051726869550856736366170230908721257459962583578540102356633738512066261565522661403296551177790133634609650647812946822937523233660370291966664223836813343699420484724800103613292201713622531720349757127013969226319763399399765546189879177582393953557963820118496461480843709350247819985994720274466473902176725565168921865837813690347948782233999594319085770465843963420668083244266106825626887146002889272000182161622894081536080772597178214807735005073617953251919718285974717329432481196013090873855762345102864179554578497558468132307588194766435363215820637447075159737263698564230103181212832943613303013630260653248985885056109073319824280541676193843139265344296914477876459012310388296226945431706055734627231693820612489890224166250877443191883194651420528960964543217940483151665483688077387674381414295182413817879156791517235863161777264271927330132428303752786105685131297482519449606983146624607677334606770693722531203156377390359224370013276487083195000437729715425225394500994805849002239203410057776522858181681574058326673143595302770084692853694407997909578723483933412516575710314780093212327290701805897493303636510197678673770421744248261267694827581908708048451047329596627169320168815464904982569311752498295927667762116515776697690706370532256383148091863919818797651152158955972093563967637608951320298158441895412099197243585153285678577116588643308703859369624207361607530596737593768104952874253298043378580280243519962056752012364711336595037650404872392499296597916135482249370502889175177791964499847776903574898739727319428975237574758634787459577044733997765257377141366572325008963755933334781827151708408980279261637698562940648513191107715444385117301938093212219616726977647140078636450931031372552116090678924519961323692054218886678778805789086707489052026121256917706032778480989091932861403861415749656805881788054188407622110984880491336785910765957642320153817270598172970821655267185092824372415327713363266215097095755879116730903684480537588622501094325384037745632683625487582366840650849155828614945800485738751087564170336042272029735615811811486948867359055640291419529901662729121445529032323924197885796827501425142497847601379927129570575243597174815444932761476007350619727650514585977984743429283118472784280652689591312565066377149005465683579783385483631388898544966909440050055042937592901902340565449149457857700494054081508100171990878959498053918734378831041522073173593003979173287831011920188434610173022498967331892933935700128999042576690522387964769979419511113514863081199199103812805718702068937804935002522566990879148248964922969688696400929151600055852766714395041521530701994294647322263988097701511175820407328137246502610875755640535264921649642442698390594940021244228569887995740122321641851411789938663041993546587432436903264391142334818407974069585848747495639645125668302765293286692114753373183841585855728312611179405928876781468933223228074730203669649461646882371579651404244856605585919387998714074322241672222844026695997383028713799751270924689819649093987320903775973538460084280539766529467570438338171580453838489987554551469904243874283862466683903557030969450470774925750738337790799430970088886431793239565757064015995170178270582763616941478866611546412302652276688171850017286319155839174829049174226187929755028610481821699306665892823381107539830677587745036049594589553427968736935047964415961772188566119087837398390968991842824707760798525029871087903459592903499204202320137343735320525957791684803039966215993406583779555770311683196837596114742266905703562586950123341336427967122431421012422045232596743229184078687554639285885084925809955433703658571597165112338344610657873585697767253132416150266985938343734260720594950337197851459286999388102281327784937653394491726209496757257117880285101110194897163260192941901471752782910305887943225782549414950546733567984011962482276588981543823684044935917484419029879245697859354476414762656661208103424355430920881141732050408520748162689429323821595998591355124937525835583453338787796330121285955114881102890365191835078558473197461336883818666333984535947682599997632875780328686578844372948356133623774128819993694272170302542702571663587574001769984561961715155129530000831336002731154989978459732061444167265934049565119530091783901487798205382040561986495608244645499813468508181032618176139808997969647265328263813613749076878649312300148201342449240500911644128971932592299619179367033913377170557484274145329835428580190281689662638989876694836192500409387682539683953577587078354480569416126666166079783148494259819431193665769496337850671188774493685943147122067254622850823946555032659897117452228494820238016061897349893593965094185274016899468915015836378914140301397716480402732306827246872164291242304425733159875957256460445304810196661461151316980095988978168283077075511994417894106619111736775875521137728536256721422569527952177516541971474625799537236323268066723253024605347556875292296595936995722147217622493582199623768281943897107771845455248599574244045842678125378985233964666086868022574564467436175700422401577893083880919388401449612446247533715895856026427782240595276793497040259948734304650320826348212323976824015673308848999924328109290451771360916333375844785278841198943356940339648979860692086202192393973062345072350087983059467873948241630544360250068932313446742742422177046599615663846461976170449081955384147973454341607125925440685197026015753644615711969342140289550943334981541379684916902414680446068245229337988450499423754397595869650510085483675712794363948915081552992070031240979984926447560684209989658144560147241023494923164722802266953207325168700556937210118736780463749939202991275024235476420141339985211907312481048989403955677350895516829105216938683084652788111516873578435967044929755262564932170255971755465315533386375258421208886732497451572356199766242059300973379586242611240493039695297628861744245644113319081452493947145132256413305472001782292478108566340485180576003949564419784207238048768907546930940522323120731679620357759544835767023909625121517695923530916659150400081359175376952831042053732027004485991578894956989446340019719899883621671125191127952502284913524207861972712236355836077479102057605598836622428800965179881233955642258917001916121038403280061647852264651795843084139539770633609828861482721449273330300877446019956173682415134030575408467777865703020735930790198740068596391330724710621281200467329815768967251132626285150455569114295875997880371947594522853426132854012969693174879598151595507650677713017698360382514421165169887508233699658699221649335428629736682126911729833672918956219062415915871433283528786100685610616051879445579184312908467370998410161427658158013247968564004993127818702417805972911226101128274745325975133001128932441230666853891949700559799849050090797640020859294935863188171917053778266682534923764412273468099102553998533656237338303976926531117918130918975400999255421200821331244183843734973143443168940969217096213378457366900446251684723344626938906559295321261199969310953662369332609474798114389862400685224181153492734117833277910979847622784239735386534543870505362906686340715271152795581930681441898587447247379564930339098547077124328670816688586687966328219870465068496660010590447606160340262294305159756210516223492868837446786451554007130119620182265966155461859462513022104581753628301643251175607870017677220903071880361795950221040793663151708683500428021555855858244700840803777381207935301777302616896308988919671066141620079411707489570588075980278201764031087580064761321596763200036899051036688446625608218363267608380208839028746923588280845546237932410096586997307009379273305052933920551323271656860542535970991975747360571157975226054537062825010141219528350354895321059610427088342306721445217985148900266188312929803583069073497754284676900989200206345167266750977080253319851026816631371298535866086901809266845684293581783296388968545084627872457260191198845059212018203899087859981303946529842068118904916245719416909841180601307296089265475647913548382600272813677925856860964855468102945458686844246315838914106973007888244657241013993273515154397169723468325009600023518740209968104223023814162358105064511534338500745400678351480318971225592182828193471365825259926061814731025092251252514925399613810941599226773130063284633324351997770733392787577195050484632817259337493186041882270302958503855620758324103542539865197144198669369405544354210641955122187312426676719582895131826995679105907078539371373060229132773501793221145639447726347852782084013939736038160097415480656710907563704208466601982602680467837214945869600585151709423945225894053908609418644877282267285371164105397446120591768213222227859308964354008987635958168487299830819304579944164297947218864418379985600821734679804407750337411179781937049442342340663106685104907636772164413277614482919223599756204753572439872434656383112089373126928189402698395255752081422410012248396932457043249656826816856012626644061136462831170439207577253616716896976851852309168062844567367443820741124809161436740022413667975460934237962880707724504376300193677088995661487970405209014915098815997795152322024187155612250635433999152269620994115528030147308424861260965000894126448855116258213195675359058105711565830035583698468546148745483633899843314664505069249562946415892089283136467051712534199401747610345753467324637643239740523483725872776897741449063080454263760119266433620153244270865630249153741480884794949351265027064947960576785475759413579814560212691413433810013904915990428811115548393457235002146321988550441128085588945013092987855136252778146869853740487213722846676042116807749125606824824274877274990866758521538950732677311178290962302367423716890336399924318278550294930670344307189742729256814508864772824093285536835870650506031404102329396217040279587088292015888939619980679489601061513012161894696773855500391645678474887177103415286681354636680829625060090664765228427663553800906795847747473726481686668974964599267153503718782434021847208773717154501030479964772323891709750638740454895856278329878243690780707926789317795845549143636065583226743815322842097196954341536819253772299972389202672341177604366996913665245401985030640625644171673978672603326991164102072563369227637290840799057067494687132179366468786843402633796812239199015135811524638082430966040491124766412425788403211846635095322780837288274684775790857473794454420139205372812979657736069831878611753719901579664552132580871289596376387752934886338057398851995099984836176401959975736178115941978076477148275681583483786224136098760945764756952206815589721336198697699001437362224354241213940389188769943078035723281020989098356141737921192598975728710969584684263616256230367324051255658218696505089546040069681113047165311752942825345025541626736262514587787250578209620314441555876997190710479381504665083256341187026886433967391515272155592929412183845449857960947461166580023925502354935552712553093168125468573881067781762789971489347104663036264733613654397515283325911237858379370680985340398632131705939706420145685270526827484040725710220514369755713860486802707409379268032279805078522933381884562581265234168122787485646847954579567694606293081743936815863343977939131991460481399093449491491566327452097589813697073161808091103835369810478063965971006182277245391380529929328303361660529735587131854421335036277254783264786163369402426709436187831044128825259245009421977027626918563274428084983242309993280901949026499190150094420310299363707486617268859228362062743352980132631480789823970470000271369674925523952236716882855885206143417823020471468260593128351953354885061360830978488834958154635153770889069649641373188617514364391638205799241281955031618261040963594134028828242824899277359309739700764549256921851660318201373920878983267036936555913197360987413038131522971676014335913528440560673059343598067825612801428608443258610404351495325149914830652105430103029331143577312704666125542559713575440430926442427253286369505971563835440009624276030821737301324237846879212323446833454855781127981426373538269271479012587917302213189649002669876417703461520010000280694568537744080803401730395767974231116388803045069946906548671882374299880142410854214707311829930576181156304194224892117013030671030193294085432656569029506866754801159068793304101082765368818333223232115890925616542974664166093594025494725232227366561186120451264163126252557074828655886680644365108038517818872491994159907770426241898606001620347495437700474833193543237306388822528115445801362858716971788273923944026478308845653403731348104584053620018528845148045438494561820037906479191479360784304413382713633513724398536593943994883598429632738167300067018006412304324662065210427288116041033161477090269728166783130907879952213091528330112174030776006357213151329220072104610826395677993553435494013677061559546475463938133066602371972830525896546935278284174646663938142360606332700420359907877528689211358152083437911804116209337301082645557593998839298687704139817397238255064914040039234689320052876007606287621122055812766871003460602866380704803562511845909001196161726268204734984817840725903308909327543085247593659445904906886922800124581805822769894150975431591983354015041866099210546594634875257839357808668192132021985201020124227605495132136751113680903165540901134979482400410105362797750746704826465727768771370608365022861025983706367351960522560776032652594081331505966199562678111436080736866119331238084837170022760310301459020312900053124365773890405702711370365104709414737772728821876317056081114402900139914663764487517168126568476916932598534999737566712366116034314346246259547305562751608831474604386737253319107257990254372651665173015214870823309414251808890703741227658198012016302860270773187638188635751887772481574440643194711769216795086689952509834430862953171965553057434271511024113191176342437324246687549875993004533534155749370389608294460172670256932687659682972439886929699501334478583868972929263738367738780164808436326325839142273623071152290413654714437767692878642147391451361999103754246569453748906309217433061759153122856656340838727898890451271698117923021357785444776982027077556150676953967806847420036983201845719650962305392548528520270467241071173163551799974851183212837381543124107343577743857872663589800804115620526787040856867167540087361877550346081254608736675033021501715766708927649310793871229243017229438675317564721381490679246405594966001998295655840368641914894098784046813489384085764789024172591833974803716675920898370991900426035818055384407814984820416751106536535433050883211226779120212121038884308533709264500607523002355511296301889064822933157637531199540640084896723017050651570582412910647995511037930053158057652318344643273016057716623844510535348734220645070319469417285069469081704376829982236074567160614685696997947361618843455857146281304177029736265957282089664249835111105094620040741161317917303512161302260901647328188342481366036108071835105171937621587355810734717245319838940106616196874650340996185068281284171170483826067769763625033440762319011901505568812684320695175730871612870150420173341098729818225576577277873450166583232516867750998061024319802253596944141089769945042933320489428335222561038220686945800903850827078705694550396300492129824670650136626784642929231429730431864654133524471054815666770032208691839815436438136076610218248246550874944861716934495336556728349042522761871560374771807418473583836307062109248841754326012252792828824236363657986124739149116668742010274237329395456365403039460846138823126477902955233741529358212033923776666019595028189313639657717641828406832005284256957591836552814669054869657124955687902444543036284974752732454757671295823870205670649322672398905689317247640025137391272545488911115154497472154375551926335719485244909826063847586427938739516783456089108305399655544122226752036578563588864368922067515046149498557645568010161877124337409847828856683904912546539586015362836773711565747358791586823210640853044529388536396278980917815856441433472935603695985394034175537798434681489518426703836217361195559397118160986664585943262521137593278828164028806706163788796465588137370124332867331467215234367509613601181629547649865219526658731104987246276453713668434962251070005135708915832072076338958625280682365020773553685970434716227457446215299821290194966193604430350615543294704049191491843694276508069817361647390878288346570564220152662944819375028006938506781519778614448125115433051192082817896488224001644196518500526377030912871119079591232659410434811176543244793797673502725771461727314930128788315033162002431708297135138943346414687405177411290269293136797165374736052772030730664016410124908549869842050739803311521913835088909047789314860819670325896443032329581963682151447025043559304192634192804165040626284649347496252581782641909292627328429715316460234247069346432344446800946193604930751676878504509440477577646512998867504675437240273076089741166557705668416613892808214618453685535262731710441632067877364091570443669433866787881904775882660180519425679868207122894210957104223845940254098072287918449205728538306256454574830179129090694968930904831355488720775422594293989608573735040449422802755431773234056720242658996362704659231424817907136296713135850841053334958894462477392181956328285402935644480177387352513658812844309680500101369549503727832370983830606804666523354137961096377783444350254068277732012704063388578445188447224202921947971965902213292640184178773329236066729460924061181289148817313543416943404700551695892512859736862407893313090270466132415532292892525581105023305029226214503453386462795861540251920126964518386898793866152063677785745417603708602571987909117005883618564207494893458299389345342351961235175735518498245225717931471669156427828907788100706926744900669932771866435474141686843145801918098716672091742893399856369467138902398621188355231908420805767753105733400428138956671737287697395125690442580390508822205191953773800141066767844092508490169628994372932542044206525325502738467026931305218198151700726578556507615533008943104430022466349105695435544314820824306810575457386585863404281127883598435632626780221248613594259571203348203867217123828741183987640909086261181831710876519257691142898938780165670331091562741639580478427803978635180391119401019536562210900207723586852058179552792800069391076475286105682486030130623681812258509029221048729862730972492969332666234813604201457052290904048333003210973706468653770200405199865930012246571180796925265279170304160916154352636370550085485967223973748358061642508580927364284237955679513957132150069210901529434417629765744012999640273999143533253185965107688921429756376608617992932978130173079554338963121977226718678831150251119304473360380082880917423546185670246802820755378862204654701663626138314698051275970033175608241365975779908353817833484337781606562786743117048393309986115975354842046499810831958615925450486352548693754933497552588430247086681333821150832089955415840397856011609885498990592374719695648101210588009328102342974334763346102907502551633349719395438161762865509177417811055154170580913150118419845890528405551448790798015316133895114408671644680250717802013073085102430535729044309464158640540105272237744330380307427738699416339191087980718982927120761701082115322707168815684670346194243844288416135499171247720658747141315541381306911652299288367773460826366813392635367190418949653057822922052343286425051053256498324279289832705623831032035411803686742978039668310357898517871391348178954995037348983582571772711014733680936130255242508049217138005955686471651448202824277630276583549409815588779982276211086266611118992393245477017765613891569266254457702310002318502214702997477975475739761668919513673818860795375051232081907915387100473668985656613956007010513954968989367720925078138105063047919298680599496269823846751773795233805488053186240142144929558985443995828299967902412904616571304277568319337869757472205105516479255053831405315469425838934042908237244787369358147890653036160214128895462911338669352902232728509925565484191677615929142416103205629676641829198249871193900275737869713533984137337400359976095288129380619802994121382768402123350107439547070319584347149055594805033540576392434808730884892266584580356197684059953604274974932600079699234214463647952841208330542623197490918444038091370980956016208010414185386749544417910261839034284788191150527411702773290143280266383009049539524271850575934044648382608414360990292522682521879854691963395949167508824260573806180674156730874558981383492573098846822661365834320244513908351231345249385917270518845800423367213919239434516482750506160786201164106265459370788033112985365611183505445316993537417473263163969328328819996991850871786599854505393371744964402971494696204024095534831368997373701013771733768295833223702357793646735832424603070889160344529865587878749990256158244458483730384911226170793799933330251869606546172933391153401617397038433920983901258929467130532035329584585742313485267099385831366105465469006247992486864068945315186969058381337192406447125987022306778076845245480352533718522498682784988502201028140311988097473947669417629541759585906607977807634718656379451222754849814278334653129587601485765966990340135506000249441312081881776637161556145044161110522508816773109109434151794244681044267913656022313208876797830376642483115615500695779117570257454370112451087124585388365659126855005860531119670221778283601758459913072010687494869228476276484372349118369759772697525877139181285143564732207101740340793378836889252411478166129455415781662628001757402541632441718995668605305446500533186180514494206171032447779413538976007532453661894416375269182736012151783812541423257949219755134170669134645091819192515156871353966554975328635956634799392085132360681558793779570736770128467020754472028902005587785208692575197103310890611623220915991614154448138918024932242831109273938448163244940146491527713929365139268869158633672244497661150312644566388113884817010470520724092546362849392879215156973669384015285738826556678613397027227936298672059798197230737532150847380618338379438757217573271947541267463668070733009371646114865101471120639979145699672673798940125774166210704805192912675427027347187033265155106790588440325610535952124358692898171395860046043781485783611323724374254032116270828027142813974455945132868831451760923581980789359649819828392802545253878997618815725113935054651835154052584810638090409081663940320327079707956143926275104995941956054401005046337739768622141056556483765150928985382542813071528514691332867220512471187945539219899022809371369115705248145663583645133801747080797196848684061789747588334319595842508878950046969883080073490682779606820309197306080868484119758787127211856803389679180853593097154492310842693276218681792790968644186199433237376393208246145025068979718448425871100622358593295854675451917402647121978899104776352079891406074535326585702334154460199537178668617633104505059036366966251205565610849024226291122652744981861774504531522111016817351408817689837724948369035193869640364040322403552556441799111206519911003083722303941309035572342435513840203443612520185194727087177984707330184266861028467651567367746519685922509658863888652185580795599756328659999687230434493685435381039902641927395839804232172044444296172127478727335722408084698957311358476159847320976133034016895695804809623538851464742547796974170753816526778169400922320054613982570339681077602539534986817985726095123924237982757846396640971231220553585297381436065612127051485192294926327424539030523449124857334474507108634862265477453428610144625647156115257762464993085958765033670305513650218308404356304552400940369516135836056136982548613509566750327331773056628358731332102499019127543305435047243117209000705236519683107331118548085765288853061530732002603396480453485220282617831704216769180815979973199001996311812390543527843288629207245179312734620239278691149046776893178605723652189823489616939723516028645001251759158470351519968752222269028793168364788606160679217995394424689026779641479809970805891907456227622177419021931505765919478347637093558718206273950714252691058966444799167240349221944256132712432421392555324666467816492921882786291064651582663886917758234085474370952565969830977592103384071286639763723610041705772343971581619323827670900769778450226955646656260860195163927095662059828727423142068098414506929053084500929475784430420527130818645772413201212343942176547013130499764173595873509833133615888079680059186554625888842675754199391007618333552550177874308879815497515242488551356569442937759511550453068855217216682927369795467681063485171744682171701885569074548365364372655104577479213947817108751247395990894095406802317243289337722390121660048982035363034260501965992798839529215787416038878752805155720613064005644903891472037177454351213230135105647671837051361969585306810599006785738686086176613947402468035457598668895840015948629351462575393410872141834842960707925703961888240756638932726233645590570710361659936533071572658566330970553972824715466608110250262410101395626120024606342102032435186390744644383391188557656264612799846811259296791428823641981929653375748905623998215954472593935999474447329376572376163800747078930474992774646426063069360497135375405382336456640304089047350548234454041094753773587421493140141762325635612363802621904866100409220177106529025363909123089821540048408080976522447454087618593247844131079070749047741333056321954854500009709692137209698410220389537824928004282078781109090542333145163540789385636674453543350972150684691659925739180153795944170370799814723677780834234788744071139625609485701715127162760673407416213258726385899737386424510675956197092024882694586620386293950484195133899250933695088824157261611463018300775901275078091709914290218854626050536729882680173801360403092002306752070565166229554254358008828873796883966519096384358363424214923439049090976878444585047941791284261401180692762283449387680603236350023325831218366314340341651403658145760101118483138123813100547491547503823344665144275955944182923500927015751266960474651582976168012494795747325419695368596284995311235540015327688915021014753397817259979033851780205939434387173959715842794390639003286428408832587597771466813128930399989873648324253407277006521476730609118857742235982880608397898652026093003455122444737629644986036723292076506859542601530577703584264911108438650323083990432499403210371366156459371184979063377954510838149216131658278081249610444422440628239498661923318025478666249034608720358654884908115140940012088650302327604727287851993268531431221400396011682103854477314945299617963483531055313559530454758282210473474432049272449086913980930479303196476654234356629045357403852656315567651091206643006097158423607379364248828213099888388753516098982462255146974281739363737665170781992768588607292206785198472946642479518849225630109608527614077676771532989713567647563270712341449123769063237593707602187359372368356564129465228449854978065540047086062321472292790373395442211063608498064475330746348247127744894401692024314435878106648200100111832558281851006251623735692862065410476406403442099839564162496989579022721287952066154250392775836736990382745926247780034284928835692823493267018379551541513328389576031998206449025431524150302119761413118765099515521491178439076404224062990948786755758009475213613494520603898039394634691544647631432717154990740521198760563890097257816200167836017467864989733268665009903917855009504822068899397716500447457698301132506827481913682478529132329034823957739854073399604937875306767585229783176123335110424582333987188300993134692935336895478184053580677170344714039837727636088431065792785177441184983901435687990048963807029413950403630069997533773935856989629745414156147474487642335485312475043111828993878951566658205296711996863374071980614493547159705289826823031446367245606220955837519342617240533349344998546508706568058613220948522334633493446074300708020729475542499721766311722060160165367295379065938714629130904384809812065721865106056147786824047275381069182913566127665871051777975962646195157116974543758846873677695466156220724996387238801547743688820531420478830728768302099761847701617784062406636665395027744990951527155512087595951934992485400466954367411358497512572713283323263604102014012603375346724809612218894304000241613279449321505992218127338313428822733646226990219835395508124150135806686815100465630866777908159834381488146148219570675543913466673242398821572151933665044433605427448175900007856670664654546900958458536714195235194170223185573195147333190089298049199422566494477501191265734455790265931846156027068087007532305939440978503036633247997352077526394279976705195424755014302908639374333932971574991838640978118626094447470918998979395904618201961969430327690662476374742688873451162587434331961508468105459156963715825779715327972498878523694921220719886550633365548214055292299238634417469960467931533475673192620422998585979973923215639661092259085797549838933439084058284602453618489087570840275434612195748954809927069629819727689032806747382564252651369030918411063862811732484649047263666663606668167635964769483666084267688206522664226701950592997919287581144673954193651252670573314110794253130959292934729287615467388813540642096367996788013099243361182577466376918391307342961973130947129237827172092622716565183265496728284626985752442291126598444096613589061101759907849743645613619089939526668443537218285181986190947471906311843452567991991389488237121175478681698830677353868211114544129326584013923222047434197297281162635458045314638900473960991514236141341462516251492894578827348902745957493586102901403729872899240404804213742901259869844913946215909516728210730462626870340737498738091043685680897929542753471827823372937069493144794373306075635209363865074882282970245172536321022948867621315629849501307533860282536514582942425866015117174573495879699647229412026332358542167619309479230267684130524419359669267907127516058001378009485747789721291722002042974958487105908237704476692574786776893428692587631969169048223439338297119600904805546547399032042784551661300866270276926460624248864526253144912249913388758578261306700394377192120323823224737844727396199816937298891421878926505971673120369444689515208930889701323828347806550080277134978757981951456703981430929600854896235701036049767933036350857441002305175290485347363029370370247283341563487394780866019271205405540471851460160528369649310617091312148790482001154207990986650057182073997577709511872130473777344637968228505089863910284204280269279039774011664842393322224732209762603502312628065327304169689122097004601568010757738869364646647635849537066400763974553107299063043546971664594653048237624779272177528586154755678802786063493246754365915899217189251165527511753261813137378308635989987758289494710762947832417950372445612353688126021470823756772966301328167770922283287170786289481489638031460443385976430044398821349493976589075940798759115736125614959250289490628946795364487555543947021055934791548046920425942066132306232790506210663409157287653542056603256535615323040225052140301164087669767077134102461505088296099908013688249892524281617298296411946508032947111384961620704136347698591134587465507404657416134682354541498896006126382994498492202884817293267961956241264838265016288526480809515895429500961066648454933452425332732364378387032192845611408237190530365190107789468648300860870504413168276218294911672164749066260274817803572925376154880341933068564221748889259112257813783897086065069124075806835894764875002849013788444482283880730523107218734380073183549184097960987013097357284985492278086283395018419854048517691929476172441861022684418605389129602328439150266142532861052041084200761190344789614815972722292835170763591887126320386351325819351693769752853259882892292367951111165269996300484868714421264729929198941944312379611917890700063560351455989220381883028369909091178126236301157560729994841293774268455450328345850765920366561987592217304908461478443273012862720569193793974599929431632864591997474093865093932577522679164995856121445084745500869773639894292115890787994797049692264824228670243559663758060309534631557504323095832773128129800445029752413483303621636821813003639557946479778723265653185304465433230888419824687852465148457660218839148502883852972006632282547967525549154856299567030749441791396186405760360494730779759961129661156090791024225287549800588606913908992289376497315235153485410029655452324119403195657979019469381377850219137125932486634495169530075447436556444789363781641340725946399848964591974845030562191799890854021188240436405414654928347708399777931852469512200375444861348557759273087579788484525702052610239692090324649374782975333974937158245282441750908979315804378565114723623356780444810544054049685676063128246864216982355196460444678039363475638048922122685251863785369032711877036492801607440407573376815882109389498115364454320257138668974973746165872311837008171041343560964815649436609823301425852949429224827349664603801494502550087213070344693635785675579650160038862804634908547344403219112734746640430637342036262002254436995794705861164825232032534920356434145349646118712868877460340308558879709735505979656389101287256522071320804269871768950767083651573999853909088279127250548182261960084834158823601094326560062863944648444549394766030547281076580214420295999037383161436656598978807339503720540374286246744513512010367746525475344219200866244071334740110321125929218991644134584674617464136679717075531737640074908068849291316067036301537183913250530422020141441004684357818607844593028660710037734147128806215378727824671663748331439244039822104172311063899808490156897950712172093692079165591361324461854352394459909699042119609946130935719093369959642315912760970777748258895505964793358117032667977729891037467250756209087094778070681650587348713784872432778021368278393033113342923557847183576409481223719359179973083288438010395128570202973359893814653490668797491850758642705658297659593416499488160389219122782792393296444417949601313235722899583532277578640167132213264409438826087258799698348675246022719589877944319913286121086855560288183479040451251207838469051094652945050655569343417056764383255329843536478486890020677389343083461145857195222354207263037000084584496766464159436410823955638195812781042375753750300993894292308931673860262519939834682426681455463667538146506135940965708686074773004625835208332404590069714536397714742274358557754061989007497335747582557075513409700443968536555798686458328832033520305195174914298242039325118113223970800449983454919690526188898355016431948309530384135521582648786986860824714155939013578840787708361953588116240662743335541348577882531145243556646512992845415243104042483070670230273580194138867617758753877648980174494899636344209175559797325499948564799527003944120455606193906506030250410396411764336092229087302554182930513697757143003649373376671990258290414132384061351712278142964659706514675645688315277731448554924084317491661041767744729129591956922622803791478768957263405809387719509562121493888685949104880937792691878437935105599644749648298597972884085091521614633640121915565221007862103238977211573491967147845512104734496765578377869072700541675585992070827471716078055316604607346219792640431576832699592460485110192743644512082554464649410768134222391743716126240851839183674591856415894767339891598401063951819037191168886879474500415552499396818810526913879709313825460366441539904601710754153800664301569371795977157110660696811983245662930297041889279443535349973507117384151600197478213746264926848974046638982440772063045889223732224957198397216730532947608655375079632771039944942629772914490697595091768829521228752600983888770436481489362470229009379828993711764540637477553183923721959310911929888590520490817910370272142140810576646884581074198802025617819587042549744722822416671737848029921078189235582257169139801892609419671593444981183384813061417714718453435537610311189696158708761173707390936896273644514076545955950537458718896817734032798138982160089430614000853674768870500273364302316101742357582515399688279756863849462680524953709998076576283855748650347117228568172547068576150572681380420234760241746317923380315369456092727453307619258047785741446444752737749009142121576529813177285458107084107473750890991337701875283231270202610984389185491962545282140907052637011052277488044611122041530306894849459098771466105981043842975569235385028083900327775289990570975771285298752609421548066503736668816475523213712230905131120919853901690574300978491173463955615963097444434778635874485564777915699700625751512618376477068226733424506033991268741556165879329128370037782396888525164857982433178979328977776607794690062153600522872766149762956275085598445195836347213546501107906338647397769788037226047012097307479135123071382088969959870865212275283793878570358843484535137907082769912724441191530488256509936144009296088129680142077992950665861175079048605619267716114754553918709984267750458737976654229602808276010435379898100755791098711345693145196588714574246376409028760717893209438705521863978103149540390296633652397622502002254812134309438245975336255548859084934619175926374915938472318479014446126007636598803945510727669126321560922775454569119802065463574070307476112649103385176552772430442596822458657347036550328832942039236964281810628557395725990521145483546609092098173004574792626472121966237370045780694902663053786553914956973434100706421040989738312149034372558213636888629108996253310779327688429089221945481043392396954304415356956677656433068908614728352802567750531148536465131670090566210358436778446488194502491526175808080759041809862974010102017707462966818992731893913873177144475616872124698221985018870851618737785270994676654667127355548812664251772011349848564834924161223709573811700668979485176672281723915941537960118140677912823090254643126308799871665842900765959955991045169009991966840656382051707208645029983083321642004431291632052338231907284388281860690089379700400993183815306686328042730551422665837636350507358384261810269565638538337259015876932627351007192033197309540586415960708004393213187464290094178236573404108849544200698886982148908417777250975134866393542972628405493578553417804011384165202353756278840477853166436922686967414402290228318129742616342163360564500728446414864291446543866235770126111751290354389050005578836846254180811410302576199412621640503324546599462183626427791312384770881129477768150917266174542322674354736281983678134816187126039823254474799701806171759870889245801787577431114064372538542495555161106316406397253467760595306392613572114814822837573682272764599760841903249999814885630104364060714278240017568024299844787606852375350835230857208062360063837715925058339587061295354050035052685856471336755655688900764394058182583214455039101795147457160822724856635739702488051964183503509687211010088112177693085015672559264393099680969878891137384447676456879148109229532042621053813456404993705369526884511444528341254590601266717405210546136852382643055369277126086193435457538106493341768396801686957347563110773796643682768727160280972097682356951690138837745481656235421278643537001624879565302265672184707695241048407535358634008055368835414359059942781092377473677883446958194994113134541166854216690303020580118489757024449513642546936428216963612454024426147618852643270653833144536918632899583180100092482558847656144456211137973462686016664528363687004318941245310179890694893352872662537000481675456140011823235257980372550430992596021596210761866026693151971717970820139791444739198211241805858950768406542667277819392805303601622837257371149489913361717659263687112806093225067064834670484373608312185756974724155626120097965805196637992115127776528324965775461820216593664586535471555817810624198142791619764334333588788018211718202795654267685931776772491651470836834571781730821419443863983490644976658424497041201938681925790114889872445951881574859783923882701499370865473625318421233962976132484916697091340402920281993034610708231708861845963068995499725645345751185321968082146197442597617892692502086521216558332679776496958636908474764384367965184203884483712392231151778328913300223195834392906820321993989471803275118662497823780680099864157881971948550487264400286670047341883574529816688705823439867890496136697525053049615549664354662856394843298534038534386591584954939799959839686829121702483004154644881763902558217523751129700590684710165795183464887812662971117675479821396160112843182130227924936390143239683788899777012019188039349377254384177918999619812152812140422541978951833460992147516159504765062790576587338268800293303003487671049486965591491475923613784450390410878626967565599224158561795019145275148246210662032120532181479854596111269509602484307601660678943989320777782591745668418336100886888663206533025180948849061380749792935208126444267006305337464611044877035283810789649894717152475859321986936299869996895204130042312878508388441062620740356033995854384800837016825398569841627347634803120717937651951218538742035703163863443221242074649051898520565444774493061798884301807447739528468203083991385021685440824347293975041397700976166979372783303417421240350516725508337818814940675991776530280456964794020869298697314341100099944008806515909908856827662918520466240521832613066804609746469266873287695366486724245338052480627039561800839674538814496027778829810370616082005837065668763143898809125144273263592598756235103693480761116415778940950400011403756099146691945551187739557244938953117873812704290493436159424364350552996790449676414377579954725321709133301001811862276782974561038391209566865737628628549210328437236726256160237636569439877555814161557862313532655723819696786437322977984374977244487975693547069246911901681988126478809598324385112953157854631629831250859960611309226435727937735614958729516351840659700085118154555930184124532261689600165315005640951683341347948920069155995313882809551920014250283541107500505702681738718816713565289925631668451830002716723367067373032729121646201947968958581663301516198822804577124399394448623693036903879969796319141785187047335068603066588774098183895396377504703321795318408444710175763317583425913122745807429103329853748641941682691525388372961881154091851972408257794839038784072049267460000630084646840880158336271001393738489336421883125898317785938204822098992947993329063302412040878389684093485053023600289746828221075226566352433157976257048622964967438953891793898869290935317358749350472788017362301838119943697466306225942325129518216430260300456473172533284544789172904988075248281240298198756056193189515374513096392029168241777693479298641632458198520618835402786300928263554012730587840166534460274511116058708104058154075280448557916193393720393155053628334659881221924430133638570850530959342801074830866250548193957877364636698967267484608749647267342922342474912368687798497287098613685904344614354828892587575419090252982274194027718296188209504969410527979477800051186515890254721154478232103066297270049683079332960649124245016206995689528832750263730311968463125240082018959898224657372874630491373619620668578008614263424245884278580247219124917298049662380694424011642933353671900264924535418256658430887937855942758819898254588235061132975461848476918772325844952433942899687773240051911013883233577708568715708870147916873205130229624404339959673408613222729633971419348262111183191368895324191748563618433930853308853984019106605888227475842087757595541924542734208460475321948788794263686640957461621914058449652564777157589557799251095350985909651283082782274952736050962098544304885296826766144903210104210021875123348849239805898960813536069194352959407305504440446797992852345145742005650365113186102183589318852621264985148001937348889408594334874745524346203367186616350083692030223189962762216828886290029669750382705012221079930598424073639497962502431570018832534845341581348336028659326776147977479026401183280147141779799342950623535548387500898530662106620683093547418278307771387281343944674426922985806080101420302082210334909542760571544860891134882844023343199410166154091231077326491515382171497223175752170886467311261580006715853617549652760801963870096700477884680120799735571290231951359365903454318162505829755125599551487687908003438168353742339131677367011837103751390413733014611910149807115933402282001914616213972931417185274724292380415189038023261567525796345194859178211940492226472949956095339243340599607460334666276434446396110310898193429318827992794010768011037954672202931160245757902126929852824556327274654035555690151226677762162219797410486353873488445976421512650781394312568611442223774191930533558284360851697936906321458727285771387965450539295482701398192686633290040128220638657777931617316864862150059256205419450935480042461261053011874578464627734031800828734202669450861121443525490148324163526644800469150006061914094274969336037338222540449773157973120965549879797268100524320516160682602018433160513816905962174228249624061587590163355083327999021715406496731913989588710414280989570611527291718606972515018357659923431716128919223497671116803005948717888659139197459849328094489889002768852476597524970213268927520085857061870270697449214100849415051317912621637300200072255761914144085475951449585368805092248634152780996298149806213471718718043457342432319845561387248497828876770784118611896044033683219492143337577258505000805878938126269685255757684057752575766310406355038462983716418320201986604320420542060519827290231095663403276193797590524888270313460411862968487694106379978786499234864440558640697197635291424208633831070588000160999686675021111655382399493394063555121703069164748222773012445897078761087620791485855425991597707827959318643711284661617489001910010234998579259714847308729002234919107148760688546554099167190116375115519427702604759608978763094559128498554291339495888837931861290324035928674388381073074493518826258618164422855806408198132879675028991642594693385975417239580193431537756737316800233707524743980195640620084338503148919705714627030276446458186396751157150052713190456677722212679007547631295885439429878403247256523786783685500963036224350024124169007276597822604168293144893775063993153689350304836405711449029698793130030852312808775066658000352835873846819030140521386636581288029612012313963141455631259136880220300465312682316240920506838252635985419586936283126814109011107099839860644028788713654074386901888330730746345121711423386160998337087999467304398755985279361693123592434838436417082740365673914156345885814739358696924799100100870706301535888758784767949486946331305958504019182573254633264919351758769067394919729850036986144584987578731157930130307785346381674646523134190402911775142446652173918182120950414483220945006737605625539575254916319315795972304150900132554591129453405062309648202408404127238419523114515077864492918653207912306346273351393341654445657089559620854233392685918748792423754131584916789083619086005364462036305920588456483248098104443814746595684109740482073294815639799114135303329374524676365401206578688790853386005535338450959647141496055591281902968341672459147116025904554183232999393101934186674184050164186717042913066859828791143140471484837539089074972991769861472626477013963415290495632004712826094722134904137825223184741479659458505749679739592097628197463241591575874853796625676593801527640331899436495415451825630347138404540569032760294728592663935937096008509183711410505878094630855834058271045488361091673211682315249085102076245890576826889997762460044444355593235406278767708477909208754051232819413316625069537390032268206027158890253544061702843232209998634960449700140102925802381153964782964139003071428614127934320202315810506992558401711313137641452069850577106892266062041680746053786191912299024180380275843387234258910425170308790113073898499009043461311076013552149803772247437992949944821374168803991108051856424782527965059960544701046162824202374172083488821869068854001064190894040114340321717636069630643590165479022170390058577455014971663131984238587146525046136696131754782515699362458300331695072688193946493741170727624973758080966656188228698556886278932526775194956477699280006158879400085952644949483911770036518808963892688337703328394200092611583390998210407842678364387455005727988061237187395176401861472834014538809426397121492466835105319249573638145589829736860637281803844712853981727176286541652999574759408915492560392301527101822941966406225581495829445736582190442247136491894364957556965778624594286464840498060508669989215519375826560905714197142774807993509396296325917639168095765501866675222867273431346158977386061097624309832082279206444340917165685697944807252933913046497307986651458084167476125206290478187917682927508068432761731282330523067842568741710610934174038454225909646175301000001713694500748631079609127689608773854726775834675630513931070511455205881569471866452199745550450653318233975176417743993015402535398345499347357411236765196624273032102503997931009602537255596892677636454978462973393093222594766526256560630248365829547694806545216928196007273721831965530672643011738468821875189601754555173224208587479631752480152162433942939996969583394722691633803047615864927485851584806308091336655284157002103647646129203688458980424251561924297694281512688553327013895226453310008020706986195760566990460977035323750787821800536244835794262267965140847096174658679511886264877179281928038035604513206595116518093723597730998298399689369458915037539238825137004915413782353936630565441285987885158763851375759900439865331119097321603740906047462428838116535050603009015494926041111327295992274187032555423898156519478639237862905692573673545432811214139097629838449345482132383268932359263442981202814137224723435218244052214904438840530152867253112781258718691664894779976459121563653529408114940815086183523094274085648859344047536526442952735513723294968287074698751938097057032593719393225302810980019268157062089476977923388523130405860072501478396176588350646234130150886723617210045815681405912851124815289612060137412418090677123916790942633757612697126706347989084319262343565850003903008128937667421145770412879638356742761306685281837679553160071996005744429217130105994313362701180637782692868486016526364867927722474436472243676753276665004428844815187197782164564586726090118205045215683917046054109342662531393933989940469398123526831165855674522004558161562512063052084743581854885516172865189580411116239834515049295342062916130974880985635290878278197858876527928722286579432718852500978281853183675459535837637931474133459719235489160857507577953350476179760369531735719564991871227615805313248959685998258285755033016365660655233019803964731735562964160075903953660775040986784602254624443997004230048327119583520767138864582595031212224254919427147775804179627011573613010204964054126020576924979668600299442974457317007225947931936484644096044087801986414095592498644257567561373636950179433743279897907740354868002967874769641265248681909143834905937056992832846209574408892280116227857692874883373163130066397149100863862500133515590241755758125173240397874573210237837332421387670474267238705391867466463127824655441997459026497993448486182101164914026026041352459078577897119224797018356547654161049652740538419154640710398639633659146658524722643693715794789055958990579638784637450164735157043551092231167885327961031713975200702806838058460659896828324023044116498044886789258044197841639381847473302321557772193720896975180264589475924563916034939918200696278774186571171239398000369329358519251521542020257148292306446228091506734136920276450656612453220915270157401186203518616365948374794933905643759279707127323082399521478727777103391244042325633844853219089684524186404403426826904527086197841089637732881233983072454119145981973401516419063711270789112809294172248620248055141068112704153208247805287303597828494635960857141246470925170471106840229332449294788680565987649516463364385850590804882847986702710998002886276960382395339011265528365261629323146876934533416357400770738261600026958015711678080278799620230266209191396470011719134306887137801312797999225603290746122485852717440303858952123392242184295069120861136615038730587528985865478046626173409782849399714269905428190453617465566155853496803205860502986164131552007930923771242139966679852652683574359233891095550091204517487539946078208697011108130507086099228228481119544790478245572284072605505946719941522604586670711004747030324564725568864910167925867901556259530058253754449642076402919274930238738675925833602417122178851974748096403371477530657762215455423846320768881023264487764508791798629398431596414025061737260895367649466980079804506074478328187781440375403861994631550617664771344665206561383300878046306214431143858943728001913173294331676538947719203252029863585349476850760266614416561301210366786220292497710364139538973829195292510525749224794898134267736744156557211072978523677076005107225279176006062000520830613800914386387443857906547220879338913690061242592549876021813061472368365922502286557776373962204213610902599010843440079362892306745801853561461493236671939685407856140108710179308831301587035598888088423672307491782336952973009610446049972567447723909922168700244362464777347105942003859658318928757551619510577492196467692488894129657071418801110261927110720202720349325483282099690844370449312083095599215394169421952741942210282334262370268812520488536231087150427409262375440884404063870753994822774233573904555072350972442995269401077816359105634268186849455965883437749993416453008093776583455510452851184717634673297862901725049932546471714512715176468427386705622861777383117254322564930320046126684558620702632279204358066114887639701656627509562439213330039876701567371924935825112047481549501021225631843405729728966811195343947136288843699825459750715660113692621785723104092294601522018071928061182971089421676215438607896713586159515400806093843194585391493959284214170529658832837131453876286224179804522127194838875291180060842548720410989963162836609987724143793493220239401686215017649219408579879723109914632128234837496168503388835778621821927805097680543691492654062175777329793681832875633864445642280020662434184801101697692283898263005621025137346370823949558138854142675011551664971661717387089213016055808552511809164801361763554573874374598747776683774784124891041541064231400753050480732093334466602217784331035028801532347568975227895648811231067267720549352435687316386658157343486923696879811684626499219446005547977152707732175738238850244516304217145246639929149032937210559021153003171352790516852377208112928770679453915754493989401865829541431707582352360491398141748042917235525108907530895294120919041524750551502388851728660250581846715592047088682538090769980902578637979795111436118960184367971315845623138372890012694312004908801471933174034528900606266371431368584800066482584507794499753366901190791344682419996902751080132540724168870051116315826037036051749568360224120432681307746609750560287950842409551270959321870076390431145022702398180874518868194702657879309706598375689744430763854547117525353196391698211812228106089366081504411943495900293524975819891153092471435155797080397052160268949128609703883717727275410913319672639467001217183250873046636828094736054290347783395751108300094264806382922339468813302130157334462589761373976086096144317305532204619681530067468332958909607421912936026872568760975705692926197369441824417047998757931713210798041086934122034011028054679358272411678832005823700864993059894522000992887835220874501699830632532890515927015451016610238768121567804547344569364590698606538957142983054002771150017839962920844209265890254400494146668242820168688819613107962653250238954354678745429588842810827614250696199948821600558393051491534306420612420017264116022144773326813924985848262833957162093318324022398697344795697506784098396957723960720054073032753726681968099140788616269832205495977634182221849577128185048085302597990117920439168902406754523109848890820458258151805544976903612660959387811098382972821559969250621812148763415380116660254824119379742493280918687189080693251099413025896794373654904329381599199746049391250331217570504003451152076786948342312596580421387496748749913218633981158673171557631204911244184388998464399456155197421635234298451654130480176987410169747677105830723274004046221131997668644106181636449091812420844389566175100084045809805086885368529705428418667451754211911635590863876002041936085827353607915854097026274330776151122206204638435452612355871533520875303406744128991093638487017061643274541705600121641039843229709539210634022172401115785967794575783929162899799359442389792197017170079948755187736778175823545197405258444868225608467583527157514900503621904513487808231639471077448263518197338668627634374811948774182724313673267347864554271794276098198602445334683815360633189080016687626372328155149903329813983887664754221581316751105633503728186895309361578975888930850379681369086204590722617023561147367651813415172531980364552019443462661792496450802152451790596985666826573489804797568337106449244294757043940772512840515288655763945098888050466646169980201032512291916113680630796772398577389461111888071416744434947641191785053167101394457877424202440199418956122462419143108028390788180251003051138505368914749110656356935514492041844918156452071053260592452116032619764111858856822880247535089778038213662093796499789980670781877777126229400568748649208376145393013545578110204456737335012902022299624553561751429347074763040547072213203738302696189453774280135025789460730317435282598123774377046123926394388397135119626789844615726826035622765524652552967689651456319237172369343243822642534873525185038388982780990582348280238618447746509030108449258934563042415230709589494395411519831149300034529468321470663336047746060792933838690514378023182590654145862218467741590167594666080718426528407579088607715028546962775554293150324762893765751454608314639676286940562562330732303253052762057275530753826468443735743173508222137570503857996659043363774778238307432591986078660607374893414440951558632944961195009903670317434474497725260543036196095758845413501109295342131616462275285744543463736146777023844200323099729091154578716707312808854190812980412600262950396986845268316454928420950023318679288919062829620478868758031088668161373856322545472299120484044453157508351663153968847204827942991349055968605784731891910819299336872128743365014091898756229218242563622169021776619783391667331760935802687495196406981828588397826694860066658729852329097719464560868890750138823337654548327722200915870490128273486337855372400372852783771785832270565423297801345930666146096192151078121719564380383989792418922039828172900121107545708165682751845163061104916655850504188269077476417735737422334812185311821182629615059479135114005299439219052273501029438496857126414313866441731924983845560515788603259417789270082928291261375947344469762108505557129063728229487902548239892490902272563512280977193822245077949831733623198591486336204998675411666010237120786772729596225197059666731817389185287197612353441637316930105052896461432857663011848228898129911919868252602804627626343614528671681112064142456095008266707164466486219859088024275509193465466682149314168589060810862850997488872965534378206778110056648553446751378811573905126903806095758964487253783197156110909006209557982993335239976744657870135895658547457817363160163196453970365299166157307057839707643516324597341589963179853033642650669730188963455111423483897559410924475662243725062986037596102309228809604873369635036429542498941991548904252821195609698081634470007559770084531467224399616805351762584375822308783414788855962002291379954642701753519136061311196747162189739531975092437169675886667679448812862783506191510955392685945855602803174356444181762038625727321019448554568892456020221258882899762073240896666588770745069369928897529085352757978744084162081840189447798170204325292257678183611699568597427049958639281461767563841108489931450896503226538798279882782408628164340053215760795176444173333541487193635166379081611508706497100584318017058714693018066503191000598733536942664824993980923666038500839237950995420304054467721897306171782406691168395719884733513917794689628424044519281019193874713606479197163828318515265405365807506508669180651971215050853269854093569872645768384873600301145728717027049635479550703546266449545182560020856157927055954472960355530215712797936302173847278540885359134100866342360821073898882684332619067810428524088726862109365168380268651192362344494620320703670722186258413488303780243584099837952472758039648643543185509249642276660816357036134528440238588683871838456705407249468899764122488105301229577355844311691836010998485755560776470958895208411780887473690830727345436441680357641427236782975070392646493134353242360967474418113440301513287368270337926610875976709045746566448744820319640412256613821668553248863389772341224817093188834907352374948277868593392505626240560313703220211975870427862865045335911378348294540336269611833942550400817085230099698250291498276741513510128586371070201640509835748541072962639518421163705421585853997628646240457422602817394887203439460776345016359930560542702558814642711891355906540027274389679250175854125758690859555707693956887330892333345526950062079876698682525473133535439534712607358363745098445341774065551140968239592539673139013097392652229797634064039618031649555366529858045798161400997720087330378537573957281817639164170662549416512982474414079627185521466595462193282192917049939736165542194267602355941384899446823226018233897356427846632236031592562048970447010063835762539774797089855818276014152570007118389125161549783586741082041642282989985604214927040917032382224084415795891801152008979089757407887892364606326069774414238998565185647438148889459223337329127480988235940412241790124409042339058125646751760626909942231421937158110232624836161356940504869143892761088362950632659537627335355024006826408997792661098771330375446991206692464149372697837296581393234468072906642100131631525164803126422978717805568804313350836576779079576613549745890926074828459282934830306869679752224459629707342157357107080194343359257603934108469782641133211020918024463916520602765778289196014393991935130751843149122536823370630100070738290877707051312609870064575364365866035795346510229274981888935397345674577684341794807574991160262816581443363327293737525368018023418272340336910533182934859559184782747009675380012680450337200404805906158772665846460535623537366141263542529072349383065628607767209167984496631266302774114622498472027106924782863241814243638980275556295509528536817192281221067263841960401374506490536468477569658795675591907186212826325798619236382839559137235029807498112103306403974608364745104581689622625315451471502190334754276392042644315584378247967243534736512048417064233745498247892473238326846578863028619654759755698987060301531424437115924162041678489342460064672522942166787501151286401774176630889869427913443338979180281828215037522020285360128573418512787698577388480860508217858097795262393734143295248390866000498885469475974067733231538828239212218308817389198590166366403402677246800068400952144130441989011248376515763930021329277014076069352585098308099201449769155082161043372818861170490211889276589805935840636648752173957765731035361361789926127588369349472597028553459122835397779754248778165749053103763717006986617628027468730374240495317979741974981027750983668185860151928157366360110258573354619931400409929227269710830594750934898151090122414021004642488525683432886023643570664892911791496049188644282967962318140227679134482693460673750278162600861925366634545205783951593502560359685642623687751976200347927264692218958000022169420922600269817643329644713146691495625714662902110546144464860655307447907331253349841520728540061360705815171285323948655491823688333751825150916862183347340106659161985077940222167657647580328524015528268086679770160942059989598052466677818882123971249621704961367399825062865828299211825841272902010705160433269424508968592239997817525571922356640825269622071941305201592532928969986789849781340912654062912810363212800833644324570338680384304240261827275397587336625859999951919991819208856615959307288563395991482247304989316167878215223999151013309079498844017519553065289999336156849257816836072948246150227982268370735708431941256463457793745234006438803420172269103922203197763535389024973215810749145387473086637211483968349514760520299561690836715979288308220240292108550078646552351469483542570899066321969943034716461392270012209333024921318782711891477622801130516107519332864776928032222979237637470958569417581806161045527298585785400264198028642762528340873248751753007751414309312476399566147048407592135516668476962765558988226221581939623955021832008449553878735677424038398990399715696483230040097795994554426366964163517685934251744234923831610540370940289968740257204583936436570751488825118575062951344678402163772562791088743329100202468342201585045933762615770129355911697539216231900886340621077690643179538693278820671888736253402877286714895704233739849865449015294908650277863466200454150889151664036603147258021680243809653772043708010298414676299073286013332413883296874316196355294233535238521149368303375783136739166510359218735469967887381373629164862967528242259185509821405089690685563176856632636254435112741279343011840471079262529612110060592715624931047985902222465968782379843620210804117382804005421082127561498944531718293138058512906815434598137735610999620942234600022644261111406910021862304224030621676956642133021476981660312184720656146924365515346778077960046860231360106550206459560821153570444038488295420351832186055553485881992761503036897770717535471820899042125574599055470072966740169713101363169598574097225436711317113858609217446328075857225374015831065255145640710151388829390991349201076727997424756780384231992361487945632610621086602685839678163834290607144135548469788983472277197935521640700363975947580429404441844508261621344342519939814711104197836559810570353418804201504892374581720568416533520642578199316410581967401352698336207804295874608426872838368054030419085884700017426032477802479065025045223307568128350092171182234250029910810045586862423776211199753273621468964667095558518586032275706014385748200029934219310882368388629739428935724295831220930928214534139949927531067733917972953881408751950272849481596333913713734407628636173416798473654360825330579218605504729767024848775780868909064456642630897725634090060806537200873538228820036458244775080108166204289159390807129830455478849376528786199554612178139039742827067369916091831430095711918274326429571566171984792545628748440290428310512181220804898100638108335732100342473999817282534828301924549423728715892386654373146278675379201922442569267304571595089610018660331986829864837736556050838232934208797377961782833566828765590786737561454113798366850399851434398640810956808176673067815010842488306710607440536007592729093288938728377890009377715625175234055360048830501557378702571697856491131690114850851843104332402972645865264442372657687952143685650979973442342005381723967174221912417188291465524289629467556142446067653892993671083979749000908024509667905031527631465646029516825619834873457759878688096890946054953766438272719453774710785458018178019576625618985618547745132953431810206972948970449173218487191095851854306428844473330285846915137556527641832293453661109814074265716701522794423273094989373055440955894258900223129304664139759401139125617889916600615664034586238551439365282187342700083382074258396267494953800530988565338074026001234317389959447639179653142059049884568511537082415133483235276163203130943656436564087182662521987825373185930753693355923740257320365480099550362403683930332199129334945942421943373611282778064676705125053802834304501866411943626937981338534656761767198230587294983343228173366037246579576364826068063596106727810666759993403135526181810161630335320854917524837334614573351224383242219040254705391738783905121363825834011611310607232275859996588516342492559845498150182331437806178358817527787457814673997874714136402711290230601995590745037277560148391282678351912173446439444792533066287924035791550418320219286830720326679080642586658269134826654183138076545954717988422125708002969777778266026080802849792916044848259673442301493878441881150601954178741272308368232450295144255264843815956308602150777395290290689854480214338753609486664658627060647922158470063292408822757620463878297130511593957383503173302523851750968232090361145930191890162888249547944147229834193729816487586937679607515760927461661626219350379018465103497646221014869171714000084698899152925626954719667058595044872455029513236666855281139313658477731975829975294710420424835447550721680343579890743765051486549020923182528699899184685955288435760373414290965200035462765286791535725926549472515671923376230464262561451544608567272211317989413775387134938436450545320970124308666784659052287446510259763022562881554092965840590466012098771956138158550485910632262854296477739256755052465347645325792073112509267419218962000944462442669531349522643670695598012035702044279725746113722171337118396494898651679388997211721401277384963934138666781056527355847683908204721100699860706271912914222778361356279552455988704930677072808376618184748731598335793072691157753396951590854370811019667853876083455964462574672510453664572516230794135162638663029730645431052304938151363690084595600110681568494505731167705700124010432242856128641317997598809021553491025991176051548589671544770538981067172023228786577833435082435150446021813817010122653247331083638363813621222043229226411013845944458659737126866265133608161896423665571375222392614968507814976608740545245083326791832627673686595439580330026511278817986057626142311645769949073745757887744419515556050854343899217594358791520128923071877236031333852579450203541852698466669442403195158490049558973479193856114933235867813424047935247390693199992270888137357062082292518485348283957108581300086637938303985150853895680389712457543897330964045192734268979973946589457588493560590273988889946090461973573961651180114477794675162802777816850049944267894605228109514309820290615340243766877252990067517940562803781728913574249104561013730194226064746224683605554009255820704901542279691844890849384718526472677399306333824419129369009739426758944671849211742477550021308590581854033594788749995531512857897370907874240153468242583260099957459738869041667639132243311229867804508379265601225581011584352809258531258065998427032587115990892483188461632459764053064279752747887393682274316359546874871451074698897014825661613202700093646326637770885184357075536519139099811653801771913882535169118762937046537730390812574725930824544932781607091803973282586301446425876913841990472113586420946780502516419820996423923997259536776081560231817480586228532937888242508564571675226600398850559260078866574422954615927392870038859465524141576923955172568612960882229916490718672727850055065319702104122684991791740568950784914441407552529833671237685750516205598187003952423466059974508470488709735930939636017405600883046672327085356234576459611608544730306956705062088160567667335552416448292741419076709388415958337070009853928702298583360560559977154747865286117993010801591452195057677377461661491135554471222581739005586552010353430926380038549811459739723066252456346489172525671704702691445531425920185711526583574570442712031676548603071619727583265327294580764384373912818491337294067270124956970148158435287936452883539459684489788883945593082042309377357436721838596908299211638659260528388148862693256233013518803859200487060467984347370995086219042373639810391092376399566345116330798083402054195593264311876545495643707115047750550916801417682765712734282397312645604963117154429091490975254466538290066831560680330913784932883924084127516583217133477476180873993946213338396142791314702292493350459259357127951946770267889268067463062261950177749332296418613062748506116485204990205859530706945967587995176878454952800702115766160706904937833712483485534687565504008135877633949205689335487545243368483827872132536574241257135947109627792052448396886256807017839671844205007587736631122026770565819141099173640709531102548196905842119733478457757245011166157059007231091668188482207968212970556096311606636301462708158997809563906177953315331650647788383105576460550087179540414767650203059729020923626512577658626536557114255475033782338487927851503207563454183035811608732453839778937795514363650919747476784573615554934663600103064327450990327844947278356402735250043967578415953012898870165027838658694182605299800010922868154215577108678592594730573307213331654016073759697106988479857300772131772704109495500620684287966335731533763908026474027481477298877961355819740513489937073799721040923633220562527311626882847454146498532227569963448909514070737226382395610969232430821048867033649363725968962649570478633060109740654672160671718580332432486624511859869610559248427161479048940848618573150133624466759076398382772124207197697129893493411865404615402419167506307077978359440635869456723096916398453004606070122582386806108550770389002356805240329819056561212499768368991375598713576993641574451722469488107239944694367092003605465235671903338095766871733897077795094326879166175751570749079306952311031309171760833572061401391787420381321309331900532326463232742155721202872359113832769965609382103776357593841226555485716688727211351613496331896753690450405081672503543177449672686901205339017721401252385491535269772541260632208640044086519046941984031718795663557309541594777110008687404044868450376061782038848998917944757951356071903703159423230051034978328343693774461682596705164523137355015343950330610733259470939573746009085969638995951244482241911661802247791885072985892051177889435994132195547069882486284779652151353830371826402015999214046047482613285961399356658770603753153792948702878515333766168063439439220394748823477065730918658919768087138613499427376414002957455067844607895838119764238190769949769091674682036627135344039050842293922360923531355257543393518424782782153008705569636542682413452719933306465951294405810439520013057164438792689666991147530550693581688540398147313668275075742849450293342432936015077466397827943373886431451454034746602058475261167895641616851565448784098864955304110251585677753498227073236667511304349209025006213096660508733418757128460232118727308718415783870869546665322652812738242274776884728593645327206401829216394596963687141654356439377478980448098678804838000268413211017842424957957496498253795868542475180328859269061879720357236960545145402802935656037154924378500585720827964764542434176568954206789937735271789241105347448295144383891385268430824362301179106716309568604393117669971049332541076411869361909316300168928015147267661591176146921559957427121581338825793648328886460635741334367062026511859831942824314772798779339116652935546286176583897493408504049413877234348635471379942620772931189902535708018984280363173713250159526538730861397077096529567012300481528792919584219025710138962444547753012086346035854606163230411747259640187932973223969715187435984227940905114512866043287866027202522768248619838573055394211485465645117087692988413577893827482172961203492360819504061293886271792414511359611807354559093827678278137205341305908483277107804976399864069803122131549225989597288755375907307821168963960839147574896657280536759713980221758923896819188732028076725258802913298019607641946855468803757863526680868066355792719145386182210003769181818168529728323358601453835130645953959515074923708664433153308092247248014458530089028316034813123365572111742783443168578833644937985165284050688460141154062842527781123824751872102497746754107782803742764444944873939060770232491659702750179332973024963183522087962390772425627457937451041733936604166160685856409032127866414862895548067566177806785125375551791190776342126164911433152504829183794481443956319274728129550019547162677552232550660654368969643449546088464044689330034551942116549240809338308954232952688894379119906593925858803073550942701260966917051482805388221476964352411831525245416425196413299857943114992683764077811490393086196616733648970717055889988245988098460869820715250555228271966727793462626099792580377655936994933146047364862225590277235687323671857556503848163200019034792162323084616829840526915152069190010366466415200134245328259768896064927775771344169251093440262947733127231443107092503378596399088258658764033073523908508956364842287780176237964269499528389614894166495584529878321430940140252243934279629894629813522237467157245283511827711173202670910623727560479296123192996778814773695100910406354967362279314888915579360971216672426709470709441879106784834217956296147186638427390411719654986934498443382727364046082868214060766216362366157674447001498676514961872013714932672638052122035219766484858070793632313366321434562436000321633815728558488001585141391465823625404448656715669616031715422472576140829464746780717174241839182243452871319402273801851181584394757083980604266578430679844826910803688283362188484704044096924824654569947990610616207258802477198994657632405334913699389393818714254796574270433398526359874300837813455849565322979045417165250136222849012745498417398098187651784101597026082189986900726215841667068873576117064216824391519345937892075932973913679516781072350845794168143879376088719704246356762251128020589775935250396639994865260254609317066299901462353881798264651866382820309039017608403871920535031053165760566957214427392956457365446774396293491433012815506211830897944192519558886979441979424023467725966721822842162714871683708644064483317514378041671547793659576214758131229009772857314230346821275214891695499061235923518778602605607648639122139312671178287390895466530083356240065889194574757105561487315390022355059033421724089532833279607955210183649919551886656048770081483570083752683713032191306952977401114494488972523772989462821834199678785738067822198741295424260050962295712648480139888107978312125756895257255948728267134603703584962081575894628202401774107048657292320452450111915823675911355110315950440551888008207769648963881478806651901360746004272471608113010955923946280712558248756867939083660867377966684958371585485197132784836424586240048390240441155415774364092779688402392828086551058251056155294980442809834539614297974533155231328816507318499218708498806346647736877738483336141766838433147690936691274479810677003014309199160292006097623189426747851443999643893405355638030420637798762450930625454466595126470382237977658232569616605065772374389405248511399541780440189951319400251786052000449485634553827064759173652798316773544790090800355373591437926984401748493148938937993018389346256514572101323124353935989697111400815505371078813391223935091129993005563299321482480286409582808286978137234910828560131563790980543593978338874436113398922855953117424147494775629857675104181324278812039558993250171995146684978733000588154935169001491629431652406398490551971941766333003831323141594965228393660605512065883860729148623850554258607768615640316858461135844446343172653686715023950200110751648482075038380102067373739650481397124541647886179165788893329067025280177633727746016643799178542505989884753387571598610755873772604727374409938252284606097256209076921382589829102562507732882772872514201825045715982252135064156806579728566557141882565142415466571618290639990536436284171947931289612205413942595844608813199101736875892558291277864717910212393292560706506829828526255466011267901059601607461360908829688291978447857877478182062942494885667366662807595366709832103254830404467026421939990048969882209520032395838052429223446362553826190910873681001350429402052567893659120953868874757462881990763938652583734094145932156789126178442682311372661056184283083582625944113667530254199160623040035170668106115020491350293523669994309127397542445318361828817186067102891475965249363294702880451274113795428138618918027937298311094671514169510850940357856388974100584979293722634423967932708946453353340327946965036027844394693614421261289792571229552603861581870472063211128705743703438122343111987847644004558431360214149910757279851775638788528739161359617231526949332129300363151079183160872007599405712446631601636398889930967998371511106474467377709992845015479015839750585046187208463596057916775849153855437087841401887207528778543429075724518957921684337108849162477464098725743817265515685224725682249724199077423729084594030673107378175191771246426559199114943932103907538403295908566700206677956294041774947702015425189336915355897201262414915283766931515069647349166558586423855605977023154788459173032705323867735942259349531956147161365217802866700319111153354555040659210122204164721044913175495663300639821412969691613136350417219293916686529898776519270487967838217767492749929800905814431226866647222914335304557285608393710926459038351747111220657637632120095202246725695657877140412990449450953779049224301435416208593722476489230523418838276269565802933177904739627672756543760938184995224285805493162142038485281279895858499125965836492875157714009132721005002975836424201350809000301398363145738153325992806743141875019540678951731349948578133709815518137105269937923434546299135821662550798314661110177991627213210411127304785547328024175671442734482511715829359302300448822176972141893044186100871595062207702048393145234143386316034995967997020327199237700259759915884548443490388895550826920644008276560945583561909170009741476461293405355182720156540057662738589625410843916887282598635458243787502089783246769766197569050189355399608320707033321269952447508260641814498570430525219047385105232357202694253733874543944870303452038906578836281158750012028156223156978392770899482628918387396473512712201512704057485533483446616649445347462409006895447954353030925184216970111685506973099745041345946726389702120930427741273580311983915391300858945457442153220918207987034121811233825919022207778498098062820893856151372892626885749624081306666382635643878738985641747094149143994200564667163218694680235210767241045529523713098034189098892445660803734118032824691572836911539953854206791308997944901846369057551712433754751334679690969321084276202196481026453024176419105934075589148728683801839340596990121736796779767812808440975460143572772850382090501012453820089026766374841779554724488284449886228606319178044562241426006608007735283988970844131819831890231266532009756435703016528913104776236102687934959742025259099137989869441503852265817782213138378889161560176480723810824395029636166914175379267150266500168194804526022852534264018311585128821076715612604207896135874439995498038079701756301883928387070669467918202875132345327273980792342897877627517527932513115408564073302883380265548917184832689785764480484790861044736561593934710832160635462968559077161535802991957523060197062476791643647842595396118246980137914214060957961448235914551853786994798704417140309527361649185630986148012806363710454089413251294236456130685007858503339172740045411836089048251798500808128388968421630390407350156876436088871359401593140254605992613437148484954655656318293246876411412257831867526752295876173631904325126898444086921003617988990393806642980081522475058103749639977550216161338369602167224821522024515258937561900315506179947689735003789576019819113743045163210270086124506350526858771946892349473465567458692080596477193750593356061821888361406052881759012628680561297786488761742922539189633423217706324900155042921047171795931118864126262448508080510991524266336581941698519552652174959883039307908472333578480847312976408932493688681749080142429176656078678868629964209437583147138144894173453657315830778025891043110279738721574705908725077305813806085996464084855078011490725625745935369950892544025876328542182788133877959131830403389530436896749694231447138795879276791331713517623719113307711610923930678787293760250849524056799176822608352220889706701375556358621971858193168065360842871946033633390631394051668512198431136775184125088242211321075010787791461461726180831212362458556077290522009172491740811920198767998382652313301463375267087288333303197385378528070639015173837129470746997717144012669935381852265377203489764410483395393684609226439930678348404538525577821750998797904969222499283283136424974585457991611809307254430966232602573849643360340545269573936442261717342772472591851369733608893344932714802201815799971996085305017858329671350502346137368080032139278149144954310575163690311226385216853020177616964024009712787848524647859065538852291828330586671770955558073406670596790874455538212131384589777049038545223162730699123554195690822800235806042111019689106107460398646177650289861094075028454412858060190942129189170628512054802120500683587285575871959972251843065436285698395847291389321864346758752802183361191510213669826576986611314716513191846699697959597511389765392997295673217021267463535436941087205123977580485893691275764909066895359406345352935637676135698133155635923190288748752727425927083821331235230369652435734913420461077551704295990207847435191229470546271062133549590392724556662568467228542322980723813998258000437163866417654720716535535315540263590431606813008075863163379136591709272393106213322707393427065496617394120850697306413443701821600694428088850602301079180663909005706396493921823097917527461817059258418340347884111147495742908587301340053035281845876533668133574175865160630789113262411413445316385127233609975745262398426564414844412751710650960173652992013355307103857964562468765130251244717066783505765786415255126906900376609580107515230783395828250272218829041263844365534431926890063651623208961926768361087751678467439215690867988032851686345109862985984606255167165490800431693492642178576899323726898417955629889266531181157076892729378249221682115814712775752274577751958281858298909864133575699485581567631734380083379403746902888721620204469663985350112651342384289536291758850978131201973174400721276171273478677402736345364783559274817010414063798952000379145339853873181270508823805304440246726228159545528434124846751344856450988216119335273467630106850059693680858850373479497782978060258176462379274551430584692854622891190719813352129597025393061711712521868455579882689813085475711897172810936797834832972104368645908265751586528703605878310315128276486384231644144779688239187426488337263961660642991538098517994776691699992685497427568924703394072524147201888564888415151147030719582031004087692465869140323617702871916878939992720627913201901352328322107906543602094667504490682353204041729965845004045929201444042158118010914152630149864262551552261128341704876765437797180717711210136257032531535137296635586561745861254580448345702066793401219914760658958428432555991294589300025561111367317296650105063606120389169990113951804002034291480819837526351685269212993133925074132565766005411068310728261737571672579913547051303984707750339141249644087692506076433319428121335286915915153716257695733928769945386881907511075129338900705724599203065149191095736726625617417175909679737914720864197404610211260537979214302690667812057286724517254514956634640189511559347684268537970775891929838265451235412212914762242082644938940689966822019533359946149314639074475071577178008990560036335476197954159722025710750957919427834865297347081549190492133879492333607639728100434116127220638570201875887875852831872743322083565563675493316589427502364762668093037786551322529794073988703770240971808619705506271152568641996356844383745738284253015987306563028331991807206107583312536266054602586799322218926500154291922840501830286582483212376798036324763709746425424931130605409446943301903701065631665887795365234765623529985336542785747039107008101839403517716457565098695223026359253278334447613998613689734371760609949170182990994035786435956810426816713285210055477252677787897505599282317632509228094812320853526722513017619640988141898150657293736335610349697147961777605506181469552345678050691308860261099333027028834589471660038061015167864005942976473348063532000529455703981538619413200485046765284449433464745574668610733346570671926111472364695470556715060186588536144793650614627467825039439402556369010268395095672162431294718366715875939967806131168426856645182375151501881299959747019272073999854811684913966788337209838690702839649924158279272865736942411187166977569272633628637990559755416849045899303015396308132679106256992118706649408640994365293473669002093250157953224917632487938223274723734430002645049227609628764018373176395787338051596365637247896239099711825864521904063105291525223702897313049075668698031533333784430365082854416911455394649173709950628959788697952667104120418372431528888876256017470334277238996534087248909753717175250279178433484544557989794021782601132348107853364281402324553756158443626128789877316428824373967654038827912842978668894444897316160880630636814107720543117731288332551095140634033602186929877106833362214083523229995338518694581141483628122686762218502649696782282679339805758645677239942466810189301201941458777171192672103034340930824800283492518395468987118317993183821435793896764876790958908232125532859637228173569263941348145671569747155058894011827625190430135481088518312658339095305625418523501940660800191365010958342138261190760814768868298935602091544797896913273176846465121955675042300370321889695839599736250405478194832412259173806399451176119551310356806166776674380931006318876255576656893303908669616726673846924621701938497710479648271594239057622177998150652572464839668949162651038341018886489413012150948829911514953942894170116027007273798200957336847728283428887397674474513032324869309901511688202409448718746323966441743756062765103322990782076481511655445779682665336619570758944815954806183041385963325332142466969770515764373941097273345027739891907557593588044949495279716759778736900081014203770370510236682765492314666254478600383747263072603683773997540499344125460985398549227767834909878601500634874367341816134798126045118280404846928098564908144483560863764921924423088467272169841646878741276262647154942711406099551775707351247553826338461096693958804806054014713768665321863015782982369191165658807903740157346406777732948792813415051045100221612385129377672313307763314425611473010310700974136361831066805417278797708486421157061114993417352426923289073309704693373586541031952775465457407653922893213704445492200869076792314032345704326948665330042347042685703012901670884122095343584647497066649242227066462630302292397987719766084527308628995459776988011159346779112404665929802737517260953217441907498903459358527403789906190252424210237092812212271428744474386694963312161295488757120693662363747217743711551818649797302440069955281596640729098517908032860685310345206324519761165138471998008799439212916119921952741071332945542208088818589537374016428623201555924369987818789992601848980163913650732028781251374208676237210918634874803056627223817757656476801158914434705750971186871257858632210641002307314269005579526945038482968346891501146279749265541892508831446438090311359898889454026048893286923507783545387538224418732005595248357279870692172843798990560199826553021312356977487196232287209731691258406731735985993587602654821031039304423295160361710666321063834896039602384049795523379031785673458094783628070597855373531313002465218310802790272373177531222513878465100307927778285572344240781876762588315756985577592555377576213689381832430608376007039374866518842073664181013121243476775572510685532323102470449142673738772003125856009221627793280430752564671598059021564570710260749930550104702187555063434214349223705815861963873617742943409990732049763887037035916735081121716242094310171088999388036580937800972294048286133238879396324794796579864629624113491274707656909171713031444450339387475762855833251053816668328131221127878297302421748988705791593450857033169142962326501218818932238939427421012854248518257092472913215996856000047625955332912274100390520541014247252977158681145116460316421085898715949357119850318654337849078434879164868372934599417916821053709155457567899851230687278824002853072534865272774733935020228458214796054527272171499491242470666378624449884445041874900890786218023973013784610414892991310584113227416701151311411798002629873719680011627427472144916254677361999578142611010345518841020226137600883758322737919883375086139981760432273093414749766912487512855089740761058655516891579252552764357477396521176855777532855643259338044241735387271323841482364191275623213139925293897745163996596765024309011035913993277969206563091526730427521518958085616898399722553527179042300372011375759423952400815607958661286200314035717347130824840953607876292685410557673799910281937568094243721046545594546306774291190553061158707901893792328972752782641419721645827282634462845976976153355466828728863734476599911587915022134548326559625948466175543751904123314912553068145886233299316014647750403410337492737174130072113278602119134862030143681160110038097251675749190482095027291706423227341579951774926402836764661985604614724035294644012951631318127191223817202039341687597620913521997235169099441183899288665389787270149413205107357097315617009676994533965353470707855156262019136765766254506405822729518011191869237362432267402026753790221083109284594879688678762980758007884908810902457572865540970224901872302341634557331949552413008582555432088231317783283674661230012691721638565353424823344211659874683347186314366792074821978931771050381067521488313888136857489512023835877869318258397755464681770058338451925536083700292514861892535865735093714945042683019686790372381511941842018932627617508103933430186805084221333383553806425081325443363017523199684833242302120466783531501741911717910135182465426168240479733249719458428592049745220182396492829145256106573624612063870805045532359283742790455326845252208826606343020155766386009954843605809986373827341199509843330491497157427117825054894796257015756731894874855766765630661727837290766687546568584071699267573087593123228331301589625457458819390844802852783098993546046131651087681963251026311494099908438271670939522586031679825662660206867417203508335160383481474753543233061072133335745151171526152394210278481066330089329964700050210493223326221006319058221053229930700579076990082337288317229384055894191813325583338939169653436166870240886427940266903790463413341356459017044462390492155111393328989236061298595450497293659101937932809245198110150277053779901294614845043049420532203793325398089162224736427540218104453537122015349658000596912462427616612161879560813993515644154812813400403705162222004229721947337271842205925549456294201281279338027573423832030245655840138181312168553434216178199309573236339538881481712414859144736457628207199523284233876370335611970645929761733125401050891715692859979923063258532039821785872083799736109982535325640044317748965985463630741803987586729567466032623844909472972420273410919570216472957142721485741620003197044843941085579025005505538029875993673369946121950694917779682179685755211836508263342250941740016348707351069405761976508994850902640238464427147618136308291402415162254170097313546955589591835222354974153421849180820382823773854558347506061799319864454697463210300822736686487189964808149371485053053019173338833674142670797943100014659997884859634658555612460249512755420783208429694077511505229835488277012220007258067925433707618115037386065838535599958276719302619482607543629088156766821869258094735144750120346933183637342027422181193528012912745198445898091711715006858293558258796139390227087822909341313679676404485705969116348459633698282971390871496205114578972638997598833124045114229081916707186291083904708175694317001427947499030295363755515731462543960501130650603482095949822025200948651157030001013106421855125758741442956192472561819921110089884649075621010210875835823641796531263582863747221003775257297783417498660448108415129055541471270189332119964468085961640517420495386155646688175590187558430933122539914829695903784202327789406324546732685288067826345730313544563992424089971518801922815372714573224621544636256173555081980070768075139062190673033211569251224497423134958685276195231250956846668532465834341798387314101986242327234592435276222494705663493196976122595169855442479310846100990958038054724962168647389132023881260501537984725574974345411123103416586219331708848431309105892694697252648547390535500854624199112629813802361985747831471278814329382066173864314048670488844446981626788888143507299937338155392727871127192688257014854754212752417329196149708020876809403494618280537823594509552434334704154271126991812020016154879212292762586738216803250678526523569991926085755430424010516134528924011635521222365838672331110483386573108920959162867014704198935515242151847384205870403748814559387013882084904553055730788513959465519793827688464486110445549004304153863549258334746466358917016236271800961611374733129385330351824974500054341801811317039489090893244155787866606406049687792326337875670409879496834047255035476848946288323407798132618017808193364133202829519191511963755062208562809230727185841170666430272943311294438706290589551724049533713900464228480418106174329544936350142174002531104587015178079317830556979289959322573464787343220475532960927126166365794145622715412711883159675335010997068543074147604441340338144869206761017949981727872100257685963154670590576313398289635969037479469193525543648637890811744981147064617399207967066547637223232544943215804719199937373854050074205984187447547540717071206501010024086801209551981510494872212662706647198894644204104021300158905863046111412170145193835824000847050865842674355316676980859909196576858485451208994962444652061175947397028936119762248444200245604450357929081181121368375758498146154244824434091293359220076062179906673119076490073574106067797863977620564528043737832098338839138436987317323883853744160749932510020620648701579078537200585331092016421344628662161592750623608924166355601882176652564885520354826447021225861230713031931696233898754127251452355044329730748279658061156381201702397381805284417146467958044490378833962751950448622832302799370799184360330732943116190547848203023440979122351323632984207421272210292117851946538109004145529636348795451010163681860906786955441945398230648270569491400358986429348555391086133217418591188865022731739259669594452322060055380422279873237464416381921104084702264458232380610350934260393565149549705306511036525694477339855874017341146423196885740907551721723342283894374648593893345417286756032767988020333886730984515927790277085285289312596352697528634523412732464620611450050637997984329890972509751264105949416914434948103267181427483793611130002985305466559315283556150823065268701388129815469463524813859016089266132347943282348324493180939265764275899071784315727276373513765503044823071254487097945262557789270997879788715296287778404573405129188656168089907626755996516845981671453130880046485502887501676874411028935732987076041970269150247535559345233628877596576157945925081534349138304308191269828272328671166152029099003390055527316333986512548876269407898085800866552052761057416777923046939453394463639691336452064031297917360293825055098974635101759304945649709270346249972113616739628720855284713513718307853735680872268124592512745902631003136693123476726494466102760754032697213323925828652444117151529937879221656602293039596125387800129095037144334958296505071758863374740922069158175356985774164139948237293054881852804659554651707114725504199569834652433485107229873633038233351058640187489958521869095361682299693380005455322848992966026402532357360976840195367805549585672350141353215689469461895737655473561064590637024048103049845006362678219178805125629193428127234332027755901983822967593231712727192210511295315316920764414014171203221420714664982856938128824426649280088323974265324986778718212647148311641429165014004839032171556265159343202369544069615676264765546421541644386110635567433049005265952422519490241819828864725225603970474785456156792747315327589213629666228765970633637850637610999188261288465119895556600270793404931180370955437569741582323435863965392678698134373863386637649692069124135844917553291893198766420595407470793532360898009153681062895817641836547018449499771458729368701967785734645740900888352565712348188999901867335624082976297604473857935322020955828797330313531732277178778424467211026882870832123523211620743172829417809853097917643603186695907720161873160638403840333420049973279681470570795025448726984709669379399931216111033275634843567457026873673390932872496392150466944626240459755280697345673597866453063531103001954775594950143043301613189390536547498166730068073632825319635499128614749524086145817990989695965780348686230570922865288447229584832354533673597287880866121000332067680186121661228261392712146439729714099757102548231171183796434387692637262554980639478968916910451707888226322448898149980751386103832000964343898483933381865613153325185801127904791907499495285770102236822336429843093735631018354322761157905263630477109103675701250690360709661981546840314803099698731982733263069705658302616084939072985338068441616878885305942590619821399601576023376980865121611230359309134741465956710554883278003596458973498514100904626603921993565572669257711870246305776721009581561289371627441381097360122229599329544383624306290448759674077977977862995918520960827895079746072688412965957569556311879585634962158051068185946419329977210295313193306957937902198644073727374035954467616981919930687867670881461591454270905797642052617173936928092306649590505357624348923635092401548811737230761924783305408697888193716843552284298852934563457866637575802090946171212253814245277849910115164236136594818756585638864109420198238007757219134953882204711806962480814592775837938128003532575568339650017495518325500877259398757100329344522374265765390792863785294378431558457154398551810496822835344284633295350304629098525823856816136248486278965985546243964952602213745936953506743919835324992035620731692673018561065721016596524983666956295433680738023014874094878160223167836591999165506454544455262222049736520712738925688937118979668244645198998107948312322295718681756426087335053710243637814305569385995251072921745213480772732167740989798743686172678203952910367275610793267658191345067093004478472166626315420435402483552689561914901443632771289247427922971756692642823193206052229577324554934525331367590152310091555495570691738811655336328576701393506570786096244974298505108951848990294649692637488470086079373747309120869301167375292618685744852994978287756779585051803819922806027247359175202288862807854975388849784545297841142164074349991867737028375345138194298293896084081118726629377837791050613187895621017288571204277100159327097624070074022896613035538299203871937684796836261288281824810256761559036245924389454325473219393828153714948932971429790371744004239154506498430646236159051188619116855346672809681997346667782197794286498449238391062783822540979367544782241009642289329215406597983187659200595288007393893985705220935277010849440892741461469698586686507403937214413881750691717509439627161113162788684362863751039606491402094183541717498329663085239888833040264091587590749101907811823358264097634889934749230634684325217940245206238475066803369438678952299342330607747986972486488346108673740874511511274540429653676819647775177920883198911940695318147244382573172021628308595884251684716395585700423179397832881083747846944864860121476357928938777660589627823409687951429468700443005996914875013310492384910407098871079784257143618566369761232775654794960964123423289333981062704986560080564384447538391925289984333585889969666085952148934487501365215956093451593085716719598130494152457156593906150939254246370129727925139759855675341710708012919106755456936985339047198119180227309276365124118849113654394492110727988577352983024489194725597100747181335016775415268754583966669411954551001558351469836946525772961656481940520125223499981169730794483717083502605586298072993950204971415912746583468068138428028252393394618431976551227593359241375008882906963465573528323065389633790712345700899392210484691095146439529665697486777441368117730798715418196383724829929945447688856796127055495637844221839298511545376276894034251362583538373062581958558354811681300804418194053110663014948403230169383319336674308142420916116779442936975980067707055089641780137970817105954450793175151396528354834963890757678590922349745789899469928856135438848915033553346946732833713228191056269892050770518563160217484747220143994167499919494833570058012343648409328759172299703358086177033572914463863424674164037151743549315827291436050239469626020746953034915672715287041209199546741258973214332386779153024072264042073966583440739592890490459669556838004834092164989478109643512728674694313475360648127821625154516138988713402604811784611133236013265046954477495316560428644705334613083623607165378905743228786773950188344020067955468399265093521945644443123594465452151823505505996576088075506868183707620630452657058037682777901740668840052641104911327382177765117557519037954038246014975183220409663735446406440120972285457441893357692108437192215410341353611279904114046335782576033425040993054741062746458573822021610646407562989546791645455657787875488660077465036677688340963166687643665738135802925974649244925522919628855703038186142316631117161180801799587121464139071230465468764182336979306680049390741305235629665636960711823805169560278120968916730277587661121143846840916519348931249321002895961641530541611112233511800168725810524032189975578147734204353771658042620369073308681015877007823521344654895060027453614293519487368118217219127564086485291281263951665907657570295886095930913248646912155716124149557987761196205223728817937619069784074481078994946618280625645156794693089315615231843428751264197721732964619471501594613573511118420163390031383823722907189375952236684031305010207747128119903988695739063091901021722533448126739194125331377621722484912184063743429972487187544678228705363079025152645587818145436384848071637755346176494779118161059218110660018525316412018950410672830932599993298760243667124832056153010883539452174175009432355071157041525040451961759355979870480360560306325091252290659322423834256309765577850417477045312386627115166125390367482097117024312651093415870930611317262750654123914190276413571739891464409165630706072968103292101037320080865660964402629192069493827975474085250747229502487503445617706517755841549642008518128546681367591996065259672522513796156728021900587929682751154057112329203586861858628397175208827130850997860809890786251267871353660626286323995449988651823985240205189012060457735923469192074255359856989510588253859911003453712199437259264211612988865951567283969532213794077879030900908656558426336775693243152839234653426648731243523554893997965877762293598352081962463306776719422984378134236488608308528292959343561781364482764926590594968606733697956365124828631477028913175795381409869475522366886515298124618409005388306884807746850619018485208991464040066407086409147942894510549942217988126574531060561060702480271111219843595468266764217489134098234228267964371423653846853372528146164629778271702399806329792615484673073183537710350069231276935173833065375729689147078230585464419867347283553150246809451071058554322062091116265358774989568881786206221733804102202277048914238834947105087179449154163034781870506228950828327260562797063126527080626993622286364289409176012354622960773680414716206755093241531478246665678327842457489976522649454207142632848147157782357770692256477098410745541413379040068222584222645192306241565408110710004611453714458867176368311720744381056184073110399822042310161617951123161510156194950007747263942686977544102966540493415720595722301039008250030458910189159440355178095506892927989538388591540576983976969950745073759642278894077682819563240688981107190100672321674348956311903298140942032150084954920356824599622832229479489660423321157794668327041577855061119890720381681153672821587682517225759752195009242878963564251368613738587531970441944508886322584387466231453114829826472097027853103401171495862922293635639821066408388172512019282705376800668936556338644553249906243859943561175530587940631971450261555888150231314629069008695870576474669529389206105809238340940938017427143301105177400282870532683819268824997943935442598917905818519295398528013168942874772277535231297375387963631877393780969341511462848645460256931323048685734364236227089006876926436521109776740512379295017798772821889225959670889248867708324685603663792203334405441132684421383323854357070160553290698126988243107734139948538525456911210945183911640761828963920771121176685783046119140560992240502583848968025719912760214866984791899722567412434104350894426418475048847654116635290024113225232562086603616514232924388236622373396709223469307936824747794988285329129762599136325462184293819354275024518036562886990883364876706620171544204880727581627315700377715085667751455125306313815193991741167577088894651134770467961784656248872673892678544496736289420311992850529326621959420798643987490222473334313921364750438804772706920232538779966918941564820541434897584473764612874775145497958940403898509534976066226729457182116095761160837217521223907371564187654597559887590253696909435280359905026454129874385264052298411505813472885885760825112766627723157828475869450315150179515961686030647797163027167058779702323615556530829008499947933642266868640101980301687930261589409267437479322920358480922740685826666385326126090701607257961885869941120090069084476607334903055669100617639679877362684087141280164981525579121602931657107696227215837190302698820495340000663492513922076538387640571201431733585045000953855996866066045710279888006652406246029385751606346795572427157367909752575103937752886868058481193992490239846265799924230277884579687169222724405992593549155461104987177317198546357334680902402500940569765325508400009876455686721939295659627195218301065252251098121714790560582693842295685217666925980012101886599570069370081285921269668767222033222069302535920450217756993728686734465817453108449222954670084233812576490145272080871455793342183895430107292591090291853429868734324639557050203705195721836680447549913773523224730862427590978264655047966686203959506477471437678380237589304619895405088529753946996227121759797760793166652157610792266264215110314908981544237788398516632754067787144579454462038571357872530703756176275214100502440565588874580738789218536897742728734658144223377465776808345479394677535934378737068409768278835887888007966143265213778458459719232029546365086460384907647803332992995321058083781021450535172441764987026489250122743065627620027357432482508763756757087525669626472253511713392071679824693962168082235571035597749331215128693613821370515577920693552771471157392066459574848113835401233503069801210472009394719197923050172142878354355277921482581503811141901042097941776506832415104485287352588140456829551721710782706159749410775888065005952802280970394669976415653064944755603597783412255308564859509879241768188093262929509373560303472560421397616674057227655079892737586370328901589267228270750950410186419305803988589903919570007619588205749705822597401221915622156571970155778344037482344557649920754006521704270995114924814759819447822451902371797886016487339817218875677894728999804393952719282038337071235851487101189658127331385664155120358614267720604796228560390745637041694889115766794534788767018894451103476874449750126987228998866823878866732489454098637503238183008780644363909086948263730250925355794156984883373530431593381965396064678556934947604402981355653415004800128863450696143372408076556442979982616430846858115118739821926433015165712005967526791094711593525224261530704668702911415722871303147209109677745783049992555319553853433184180113493930486237819235362743611728151634843859141504380293152820540030157198430738639249110573992552468142178282878318028065379224653033711240845118056349452202757619063144287041365176716366419479557441240740613449761688115715698061358794090660036414129982944225312112542821234949015590943114312718770066659510208982046055315680475842792882769759042896209943472283194087217000555367224392969980406236605320758688566882024150818247372964689962919510871569395791629874888230546651616170293389501778882576136147918766511847254831529770404518255702682346550984720510247009797637013683736453997974438071593183050635635528194249480459208700949175977567571531145649977706499491051575113855377164583299630828148995220236514252310120909024546094182985830742069970400421078004479284322393767501792867225973609330314636066066025900408157592571695311942583143605644049109744183222568866774161888825501798465922336881786297980248520479429413830368999494139023715453675507659319307431677060294745663710648472920116448627970187753904779858068119405274867114155796668803107313982635858502150096646446008052200053439948138648852973397194397972134634926926760892298847246797336770272467323785122175410216257178235167253889363858223220448611919614681961915062281600971012705662821048961006962637351499681336431064270164532571185642199372321282614118388201336532621246443194468440717960091465720265284252030608956238381839176608856975852464081542064254590777879546221232526466368107439405481833189228065569879438166250287373047070819417901715627019167651988468707518694598179507394130607095909875739729626776911076333775525282816089846707483226046135940035627624361956976042200292550663275734738153999572890580058023115043057067993197405593493033320702277393919103085331943237638361003359291892352755772068531868117447819021213344122815024209462842498492301211437598330942025451635811080161013797595041749353145507843222575085242494357613827121646819970688530184105318834348323986180785247793539065853120460825491620030308724263480775007000510745220345494104402491812549444619716379788824554629428127461205383704007636964464743076866176302972471198904716651754083355176477527024146686596414698484401455569515925848150552799455430411323087184901876923784173550047936539378213608012907463312903719291585387916630774699597821940648067694990763809200392189043759987433647236518412054133217183937160965289019267283457353171924579562715532061759590584049046383390596393570682974955142033540713082593499211067232314916040915020949299330218845385456106356691953176237565723614903575654064579775871584610908146498520637920361629208712028074725293058020876714325304715197147244645827409831069182511342658136326303908517070003640752159341549079573528017269174380784851510912103552380843791442897380008537399314751336739113925514210041400733779585449537083209245104284739983524950401128247402034736539613486993645316453107333884342608709056477718589029643769554372771143573928532788243555245010129551277904778831374107640774551277099007619870091286518571805551216551495238689278506555364383690549415527816761606553073415652013139831497925529951772378416935206081337650082909201869615365695065696584188570669678879245331941278185197225442932455025445611952974683217502295630004387962508777632153304629570542421504708367651599694608275506873035685109840207484776996699551896459060228136821468680986685710234829814724451423072039740099834470478585200203303193216946035393125163867810519750317526159823283257879248691896424299981323470950059841787493561252297166731960323316825147949446564778323312284260606409642591672555129863436023739234801533336225828352803576832407398286759944184361042355795012455854818612529458074992224144452159324143423921766575561909156555868718425371596274088130290655343700975629025422504940658215309702666048389173217264939141546402755532468554940620996258829383234842296800036193073284354883998517594589949659571656121330282760140501695649167905212387416915955210323974526871807558830360848218127549734421316462108429072662386605945736620454615805731538130464271422370011743838715646224204936203659901243073882749866455601583005836394903742391584817039013372662998330457356026804308246119967410828061897167580531619705411942201606478755869738453722869116998266932811081242673481124169299300368869990604403835344719200806976760088460159255597106444309026937990577141242716609454715546084638465633333048335822963845741332424984951376368479864537177174393471431012736586956812083464881699574853025677880595596877289582851504545186172579366252025638605230382347693245225033744445689874199987936261431232236157745844099576257212502199894977267513531061772533551687735812567485844443100676473599472788285169552210369563265630052391247267677901980650592728894647036767355418357501578648678339811117031581597062314256812126263063053795028861123431261675580674246543590082569231292838033584017087044115844440537088437955957832344662476234392322563558325949539053992569499219636439174699987422750032303221536092854339760316052753745131888219983377322824545043974990051538992697178566888299207617373096937263784480852473843262585706555382784968118969245368196814736673583019505136380746150679428321964876367353200383393349834385237530884993286563448422719668524377816084913859771424147735681282615232539887993685153661568934913036480005136995393184792367224255823607952045160429008733964200783422253294802222153061104591873113936160445111872473737224598317022221034612214926898566153669527156084053037448294005060288680086959560644308056383022098116232851593236878043585897798158121552250443112339860852491776840210430945082164841983924052123484703070419643658404040672839882326721445327055597280613662301076295618035858879263053475755708744616316730082009822332349433122359612450595107193319996186225650957346139513591446746640124365982675043970066238878541029946335216711509714025588205408150281730929655308227416529780210125249483801396979992155070956451419726446116712040214568637789526074210923273547312214201609743797864070013864488155017695888946105452746611917680608045794218461988028636766596080713823636767811616584273929290725194297779078433017908491780780692068554570817368809062228747314465777365822607849612702783840488029225280524291431229361273860107559295112775232633444722910059262117538271720711585226597915683823666372852906716894833099918731711969924017872347743381851620602481453212966622311774211902276768346501682350968012088544935098265099182100668252152376676175257053927320261271775824134081650873966620872090122855739050961389741492161609652182380738391110149840131203874266415023755327403207194413089247503223193352332186557576594239917643959143253554245951819795113384944793278641458298740213998513984268527197369248852299553578802065244059983765069658511718910018018222591434324223271338139592419290540556695756163474332676402467148736602706020441856063469650456407325847832162162701584417331294358706578669598968164126904065151139665045888379439102129833092796179120563464397948763215420776782440202891439060850413622905755181034119017657281387616233617245890549777797519772695619120352583069002533031567848780528895420195031255412323979353968722178887850339466693659747298248128388517768124392697628327959300763205982275200964290658112420063253870762081947302877049245676215317030113687083466941582386521963294197756626106372957340371225399363672039667561508762125255517566159527002695305815477799740523884487343523101715689762560245841725834680999056933778429525915089202576528431736177058778899866644483720603429632221843342118434242912312316333977855457270024283565754837584244322611739222660949515577769856845031474293583575007658072662971345957670653090930919554547665737567899861975328513458975675811541026536581658129591677051039005355640319194307542729247555304238518559490774074057344436531773898398798412016587533273372800995363250319895222552064467656564494557471534081240266059217202897858640866147909789846848049362963335746174698639108749479804817245875999707638348943149619363783301193829051866152374589949489317441962281657827147735082603398081767693548138713813300118450085755883809774418996769731940872092574669166988363998979078930231562321283946992291615979025470692353143452996095312543314120440987492802669286227049232679231364681226731735642662126457863783501527425419892300365897567283324469058248675623388784454174215180090631005501251258755002100154331261246130307431499392989188670188964823651863824972508290211079358033983027282800211634740366435093782386014160462228684798011935937804269623923830122918126603705099016146504856840391898371773971833998199293634403133664806184749878332631260828554619538850037705460149733289306723914860220931508117496456211134762015726093269874339921035246584818598917959766968047018166257495293959302987615432610586031033874050495465959631340878365599910992431683942932923573222663080004973298645363735259773420793610212045977959797492332359361934098420630772504787869461812387573068290190393646281328935929225039740545559745452806547919583917654188172434327828489719397278997751804326766556815382706557350481511717968187655492220473299831775900820835929651640596400217117414968670724100611680534760444735683725850544655636555761695371157316488134849595090998229195006563424962194828347933367353178693770930184335870459354521248097585941473959294064774153936642481021186980239513425664018269974506152545976472419017350904051816658972258146051186135661642089741445621910067716707352293853004122388871152394012834624734950534799692882520748913213296818737373092971510755538430473831583428692419204860807051312968386573568294225905907274673270920788666376878274305968363100861632711396726103167094473282241116105501538737545119586352403475671464779405768021507626522278357389425378967779287667171252168721448044148489849121111841100164961511245203484825457902623579361164341996388085673365850239244454190846196250103867742175627288951972805744033300244764710843427410541960443825049673161708458483728350853673926842943106186798151707699487455042249343381411369887441215017658967500485852670464096745761749898872992282863765952403056233359887173294663094545780503621951420636396696833687887502781819962002085582688592289157049748179938048911209916004185787947729132068924194655754215931773126784062210777201727716371207759452189232569442637640491324196179831289401081559027900148603052315464526732010702740745581312403612867336091700997687845344662354274432126754287527644490970785090842612836589484165979718487127697405198802147902131208640550602564417790171001788360791289793435821381983735979490511177496036463742517177440275770086116441614239708651813159284560575974238496121480561577465142205963039370164790800340563594487243054050552528600907052935460845779698134260894807157096100983981139206271772960501538164304174394845885570799340665691632704969517067923913921198877057959849231104883245235800534396990354829083062276989966045475057429314940353521152048918119991443477701522916314879169034555457377543350728527295336531682890480033434019924629084342477650897661159570076232300735831150471075624539761561133245385487783008765680093088526830482231586310876311591426399360136562552742036521184374036980151148304824868192637787654776495158872802250723706967194916773971027411806387560659937314317250567940415856004661765848358403318982739699333647460676488430878578225771591088783621290146055857876100305109567637978390243819091830872816991420899301174565438987754008575669968560062282959734608384129743333394546386039936004329262039674595290227745388158775438414972193016289763576888086949830587680399803980819763231233537659017742577109148764154751734687958447521430515357420636437589122646031233580277349428655719057249229958252858586392700662266569760313854271166011274817599871666294813041565101277106338696697420235524025016617492230885660174086739937837487619521022312044067673728728713631275220557746407677375078575528124877320780751381103002749845055312988481026382034509474306493399567502299679074893599372730271480710856037377578608289960189915003408663002339377202084896800107594262562221558916817507436258487597371387085801283693268230345579990374396213591049784880222138511106873298261383806706340123117225734676807524512834819242738471114422049878569046766943165374279264380050727339374794480392373271710475036504151167508616275468206161303556515333467251571367714063062459690505570030074076635609746357297511382242563032846930271180044120413273785598435997191491068298985707137173763324824100269457191448653599098598478058821793179304152487859071278910876115597451237240334653599420419473306856721818477790121630056521458780166399670272157058697214658308204639162761678290315843629612247735132107541593938158464709812687550895131883073208068628561861631973963147896296660451163901186811553767323676682926868211428286099385571480001226946803428473846642009944662637990415859491739741223758369041156982132629680804034326464341744438488763913980139542510464874993439794482053479844161190930564481458330138024164306190928240587038474247713934828825690515794523540188788518938210983800747906872921489548388683812243722255906687268597103980963037433134246651318109834951675540387600666530914481126085071041383144150357221998702363866546483069266700356127550993483682162311563982541526168983037147661560553159742830140629716249731429347583448021280585069452915527363469695510570812317657967778294334528110168312126847228045803451736700815448227579368512763965031504323768076055724279955441011283525004435661945574936486551782952659445268392878037844255225120292464313252958276330732432991425590261580750479990806185811380943662723238808353074873252294292623902334892483815437318415544535111987018020234958986010001420777440607204460092546166839176811685632642661384474997440594376562396936710210896058753761324205822809589054924548464639916060304939650238797178379130314962794502687221235913344359150577024799602736309040168462334619841383542101553471782522365410411776606608032023025411009938299613558201840145926406249736538559183578854085413564518479971054735804118369873749466313191414955634570696628763723963041773254326622065378764233624005989516838819341908341101862683968333003150414413121737523094096819129654966509142664328755066457224004490919844257258508985360218204973372225958447685745754895700060260716958183961508246950241401216695728996287941007192783469872489660564457493437560823719855791187108623559599996544981921364135192451089164202330836903396057603115894497760909076017789778132731628619608471779153378797714820930817081065219610831766805327001096674954199751283873022223871165787556516883577445581257010396616230696452617033963422798839150738626020058895569938737762254646693280899989290531702469722900776194132085548079822286215132299188110328060118137581242330412132982482737543537144884078628687166064578760767657789472540025571235414141886084562685426747854745189904581971907588612185026271822415010223664974165043926927855970661206203565610072223754260554894018995551569222200418728973067253914999500688585591099401989432493594252830063537107372130663395897230983738551592519760884696454972673262333497624940155457024558994826366555867375637553255538953308950833264995416326315128569910944887536144348829237485984509105351364508829669103285156452487881971844303621905890684329449869715518197560143866759295047637042158539512004218805628698711825954385957224529706384079649471139776036338140387162153642653460283736196883318674235914912262295412801418609778076972055165312874064924458859187545568562082264069708757716795181574238331710684400163424988871112976475688056031440236165156339103356201770503079838172098520963962353292342210835287614719054156903602292974155128131543501348305618404340023130087232019324125842130271516618787201753859937177864351895576160592310891055929068733004602466402971150991679485437124934620738665681761097842340362268776365056923609864987861648097189104909043253480150406053368948913932942706089683102653860559246033622046809423116866642835199444289955176520939824204104624077761213766791878829827275342363207972462362749659134044058191309911317972569319236107263401422340082741798214628135846238184345863896958443419293288452104303671585167357689995141922460141266726385741491762218677019370686884583994451613383229827604655092101597687193561728053937650986752023771226136731800356873160631033833095316260634185890141209560523799150894004929770694374381732857788009441273557735767877012811883770524488892361832929036323964834987606995590890918607662832269806547745366396214608800613762907665273041132521535832476253066545799103935809293698179742948828390394400160215667317203423488581131682293454244043378834878136167681246602724790563205411021410121386146379840406837855275844511329349836697887125843694182682457718409913136524872244800035384675479493757943740370671567044003914260654620882020143322518669262567915935182264375267710332783893849934943755741480687018134995162739111272529334875957241034626318513408825579569054785613182546552449437653965975829472627178546128353783690716929457794552000223108854654471199615558906647578802321164001862650970330015139778273629799451632181309819609182049729837907469206233682699012055555500394944390622275536234578092329412634132659938631651075005671603062289895535663804808879881626650412066825947988273859938061915093621410597317663328623340357053230087086883468737263531036378623286350751019423624882615236332404157750452324902078648372268282113767462563469974790277346599409333241944544877349008216696598041684378524987140906970835285586391399469981560991214774084858738513546691581030384645937287089033912683382557867519905597524536798850219391984032418582762087531873504598861538521452232189699460965745947684957227441743828732859151416504297528736238202234764225228387530825246642895517174935984343839672621159497253973658841597877562763927425727414225514053242948648962517898474291341982303058988420358518736008950285626488336822820135117121519315658222608702578058696778495486856118248866107794575847758013432058765731386569768727992599167352742504697879703955196065890971222091170521164136552859627385654405104024385307594050027204189293337742117298155323153909423134382629998893122702396172977543244894314006924021165157362383694360107617329070047885037314795305492962073054831658073361662600078812198508097306769370523440830103899835534211333662219987360110751582662801561815594233653702546968278806181605030810210988656914834867069315786767942063957533409627166089680617164561381063533939710859923643150096818153735940614635650433798450371755371672488449191185790158986830349718141891564472073301424255493836473502684968115663843960021963945172280939493219968739902660068641143483850173107113578974351785058658432988661103033476247602714354987036750573602312797262712796136083192343375911042185738072382247743409279864542356895475634451427643476206137303313106032227716978931905340516174139791393394553756907899489225355992383294528328424671031565593022379771376323860635800151323312347449294543330211783459841725294830286575626537748948865982859452291959560326874863023746005208603711651213415722116677662946823535716530976171427074034181358389156650039417485285380492411036945426220279249731836048349983116459443597172280470572357540817669404490218846854122708485295931311946664400118175840742388061281822850087181956933334826986771421715007007800318726149020105774658842297165945224165740812155195227111150189838358919702075609651171706004420399425138004605941635479877754083951215192869798178090898468469272236241163081942222241815742232246184714145671541190588464802334140665189664564942519407499534343235848302175385767936596225468625349307141896657496473083170593628576222491092488023665087185062941682862400757450112881297278874579554559865826664765061989587401639865483231674459081072693604913949512917410444454160354840079774673635097391811902773568987219188926478587348384777061590642405479513401110110818005386618361776821894487115774838042949481544318372395122754818615562570113778795652123898906533614539769285639467408986780139015035279468170385832911223163931165416022052987845607042320533425471194346864664197488635839626055853550750117664298418966014210575433986128404644614920851545929902053351206974483610025447837790386740976638688705393565122920854494700958350063254879992039059484002316696721183423692094301259205480882898699318460243097914436691517226288931962943979263563237137342216327954142830868492244343143305121636015252246723250141273385685842890514582566605988478726992745132324259092923108828153873629214084285833357794740239240095925948881181071965815583000491983515911547154430261152881086935338529784754926798536293507653646479005069089517731020543568437155826798872663153258495891821455309683189308232095328400936190493396102259450225584192913777768784065464781527599549566537589903160224439981864218352234327360173612326257651507295448340314787717644805268276096165320908830869811747888571286493508352773735279599817780996584233704698448534128538975189488892281239402504900799856528437144946463197125342760989988172130480799020144746747437814083374867912193256119830845816988294291302158129333710619120102158820461112546680977736670264047050043889618768033970784475027214198123546592333807288575248853027750990219872414355539993466369496660443359047300388038542777621137797174975215093807796496261998489690048290715697505713163743016646857471532420041950536674749123922345046345229199128174966180432787378278437474645289942609592140593019388599246414638994798837399502973853166032965285262711882014868864600178148036003573858565754496400930516864689208690069194754810691894782292566546409118984200831887340202604591300217739089103736444807533857097276752315867421880164501200152466056808073153280927120093523453980320828705620585808036512872407302250362183991470946077365293015199508465986469433074153904098716809480397826626661480283231456496700568991775592217463473447176869025655774607155192852022895219677601865405992996818622561225753014649543463762564959152301512225023278782623852778770061775088569125271867154169507132371457645355581177487997823089655668110610525841594339037039459672003774298336417693193328168828094134038202789542116698225969243722934758491779054877964691598810184172497881170157228932360655004391444290611893386703979630562975410323214301096839757334611557227071373553904140858027679789494213662371170856691502732244051891845620515363647467667194077694486662878824116932003835765701870556222639974495386735029304636337143830515764821244105441568298338756969158543766593833193233478553234452034282665658970935961241686486909655310199476839943615261990149324248617782426818485277320110866225262968662481551719991522775172069195333600594697781220314749769711686016865666761565345314974500475019108904864595189342513268395707197624919683476545366775303421465514949165037091969272243374147605682034578109304188107233173669132356664482343036736892016528837075009067807615596037611955435660130039652435394496560814995574821409852420614648590097926252605768836492591559648020895216213339896644100650633410871429858353642088758893449420160440533896526061154902698387962972999845881190118061871615942499333487212510706158472500951759466744501812544739318813838977722704047149130080867613421148312045358094806519853134016962886296827045032646893240099597548413181197493187102385090209084154650594463768629312454154651621904688376057528639601911985110503147661794182920853996309210140740882105897100670295115441813631312121648204159433381088771026593110293636047093094448319145565882966129287377744990135488439602235146535941661554772012717575575059636764985274481461160737333439065227634504600485845834518769901455767696440843849035384896039882120008119474025636823841630659500489950994297660593639491249866534246599386992590740143598785312308181252507252185555163311945831827973707224696757075952851585484338346290106259774086218976402774640631322290626073800942254398376657283556483107062201018466049887275032570865083933615824885906561240464296232754398229933854096502157420798415626083667671612011655385756160690166323780164576572074384861882927930808671297867405118231905791209536500687013348606500292983470293712042768127857507914648977619750847658794666157009675577075823430983818073091749520939660885042472589187069446843561339037148269811351409924088663195891555823244747286010641159780604133881366333226614784055675719764793989121373400575393734346332813360448135487714729848813815433317670175396288077433688244723721275939895404895877783897576945794693872135283769001752389800543780388287079585533473065296296496321584790098003452541364087891556617647749055803563850374655242385771914874695869421388797131717446703803718041381252289067708666773629068643684833489798030499877265742077977243355393337603545672945439112936823585097052540611593021981218410977992750315081249796726824114916617094038133756184811718046383857697531110176593565302572701105622086109824283205513411044337303696130376729973205792175386477741567401544370147117313524662364860880839946908324970447783262477555823939615188227048462749115740419010433375036741624067374116075077957522153760016473297784189802829611705776169800900654755530020106135931595263526628027739621916622336383497685769165361883790457751335103971212671467529498368860505695919525130221606650318806773975383129389583043270660285614717512221360091356892983444789718046363747824756891551155868743376193835840455387410235794848621314764908964780501695433556315016286451637172129222254367168138017333697575477716531006520176558427376940099805489333993384612518168239623120871771713957419273239532898934973515328380004565808625611574357403202409437298376637308718636741303340323953426822527147585545130436341033094180288288180015971161497746026747198276775680868944052052104189475435389836802678375709410782897943048795227163992719559372265906434948853638390336114696105577463190840275360002702365815266084908435890503160558902423128750484469063995187483597614181825409514698956091567024015960513765294444693804784181496131735265582668329324345856195052001345293382716428248490227602392730522903361192628581177633461923088490232409815512578264475723481735455967806249422324007528369156988672522218415246638449464738075482036612500638121422975478431775770634040192350480637227405283524239940370421034045382037995969508733607685627313425587569616190020353370718826375682806671029841038758553086754292563359313848397733801833527552043913281975644910290563501517685813452069643893806681121914573335704101122237521608948182948135222387242945378396723065055667006257188645052210574768695226871300294591453653024396017065439417117670771108169539898449087535578809605101779424700938311632306995472831600713403789984606350766457758323199556225895024218125439046669295197291543620509189774993791114139404527578923165156340088510691494617738770495758427062986538884564769372835678655784414695538381524292049409197584493572480917319726377069088598619111303488607725696206976247671813314892094692467596489931230676238092853712308739901131046654970791525222005311369634765303198526728025164514824165224287967169401142526276560440789771299099214594548271788542280631181024678687715063080295207292953942247138466836951277434680104395250674784465214297344098867494563877071034761697287096845606024409605319871702519640247813890322984091080207011143407538010436500814322588733312191142186060138091610717580354539564863754527652657159134376934794717893619675578891424077198097356242882208325827946056070580667808323237806473115549458998127210212065680943408762306712318746153976641450967810947122003318241594877255325736283868379022661224231464075735611798591860781095814621992238921123330001057378162087230654259977558010634284580745898188854450692126955072863692539722927652952851768320538780407317195812826979110700150174551640148722999579746106080332526312301317753740203916610549327712838817707354378051495973818228390125146459205393398839736202621560141831661086740589048811186661742336941630468822334486665120734125723503324660347331180628095358560752121036874898853948961028273510353323529184999256221594281634713059422961174356589898689097682154237417974175440059686252558767421752779500476660623184631058754498861617531338598121434064767286046996452661634357922935519188166811254376137567350880421786609637701229386182530365947615790826892553008354955922210606091653935992431026145418799772131188651044574522795225266056361209711761459713443674985255879551845819607635083750234881628366027554152756805536811152654311877017688825017820386099513145917660341797543852180489997046639796262950828640120824653052498997261151828337924662286516851307683921436157423228923928042302295918208431732271524724628080155179469865834678787930445990382285741085679677325431699352774682032464639046609742160502649843206897120288562464631380535660024489776805630463036275742661589224287402946926793938855348352114409344177307825627779186155977159101634921453386871050425794245620976387514327334532512452525629649360730606395523065546698058146017645800702571240767709448450827510224108551016477240426768936072753952886854922634185448478768492426648390665381410297408532452503892749408757194417285185891940508080978227243062614161823451934567291635985057895238841397163267513315030414925513418972614430221334742582610960260229710275010913009303804447287412036508547851537498509366609512095888611234371595029298496826599416674470357834174105795394148495757264288292975670754807607758811764427456209633696077699022034718414178550222486438470640163382460519187714246272672858706020360249695234518402492114427147095972349563990781034200793341214782510713463368389786717781668398214952359913708632639635367562915464347498753064488782414880611842808783981599610096729270001410123590518401146501379519426771133442819924789242848528989957323882318644674502319975655237732677049552489034648501270749594124985605777091258798002493472045404367009060395608922734980553994759508901025979401678701036276922609145966959728843845741753575726670051647816495053624529047336270974462540654205901099014761438487769868246285815956272837677476922824574697979820363539031821843535193097914081199210395449748007847660008633491659268470031846576668288607397844654064966016526224694426267134647241935705754122099090028048918405497128296477851566551634935009638644503862344579480468658095004537986571004712775672872843180496622704478841743062987632572540723318191677829175257609343571028413359948933786883532537301449308009256412612151841491872662779844562451433750377290208209381222501072624605545242534238186883559447767624149170515806876424223190923666123046523114183934444460100249414365703886109895524041556525316355209644116150433087937228606019789604978028568222341797978571907710405761562801772696368462130321104647921398167666156626089242963877732973380959319720370392200112317730544577069461939596627047920885848838726473136297410649251225911515116007184126339690009158824956075010703098108219649721997915783314113042303292545666642894966169789370074667723130598136110151185577425724978648442448167801461712987792163146794314208784825650761628503310394954983750985295232049554772070551472354480113547740169587630888658739254358221816916486147446017398704930437122481471275065061686757337956897822023451987448788487114094086742489441582780655333350469074213098249739070535135282500617534594585419566979666108970541932392771969288919322173184115061019408835713006295600887266582171294726631808145857053466689276580386046458850380927886801182673056802967543471608744796604981025561778217816184526924279288250312433404605726426318568287944464316306373347387809978146315439876808541603193655825375410285177662944712232719452809781419121672904967419672299117146296459149272352849499757721575822112349401684207461734871384709600163066114935260921836471815222544164024414175514071348697841834240305177239213936790744493497041008807719861346750501336784828656416016276699483141921308383637721036766380337389144055437332120665003677728561624678492785669145416229601262833329970069002272026313683986018069573843260317985793869427144195758324919362707478685865407350761049903899935828473328374616285320726771215417049340800280811539573816041432842625993320005945789036939912947448880897448010329316745462543661598451687106767549279542818206698629437840898758378998809453323529684044065116488513783082219147557789839514329684203607751248859279431247427459921640577641690713709908247908016562806453015911378199686992152243589536023887961577063659915301994795445814295671146535879834466805958592056037621368168351866617604108640221046835400473594847573802581096410853041752291117864845478574295140901371171603741449258650575131256358834732887479235626303517172821202950142794376660425504096422732795471389843434500931464330367016681736996756714418169502858680184045363282985910221265480145243564325349943109215492826703543390727796322226531541535343974617014315030421471050900679481432578471692695148836140312370338980507501305502029221408297654552790260540753840574970678881374151077035447083353540727977109341198655763973292222387053083110874598461010991882357577093872371009679175475620338118638683167164364643111093000874946132524754025382409637493818308189140193794308982952384702176688082435693177371304313300049526936229786949719152655564429724336597115057378184904852121722712894736519248114624381716526590746282338269992121188557870042646726966738338242761700415156234663080313167003345523574128256372932162592380455625945969090644263284733976196501216283054764915731365825489513587951477288620935818132581213716588707155890752870012951869814084621322397909961652104974219629159758618558377580198658691463135122230252155198349187269641742314514273160959648279385794355568863029447214020608596760354571219637797835007428824417765967934790854897439301807385933199952002077098283830154666648768183212784832448745632263537094766968084113895350531053410358367554436873275092764082573556346720382803919508719845902632943149519359445207221003889536988188113616875620676746183994678579280890205315760286174305320187064117716797054144636531700053430485353715811857177363412355801887930963539144807637173533771839344014794688801575583712941959734459287816859110671382964403384647331184409723786860692942106030364290303733593894819798148050763365211442100598002504555065132697912376368772827600292601790535941435018278704673107524761330435561321236536716733266523545455988765523765702340025307801290521584951287050115743569016275764360748301241592628532814559282445678639859858276442341748208286798179876962651151976576533028223499283804427537670759795113770653299431167645559431981191097295666079094457712941630753384202216032738350345137118894742487389132209647586404541122933030176913604188632561121003315659854363415854111855973286546962264623811000268828616118356355512872600935311038418423362565665341924752643847854986410634550673284713216609030465589252895097849219818402852570815247983523712919341735194089465777358202431219911545740820941160569690809425348389016123547874628674288772277574634477738969861052365855008387244006147304738394947660881861703768777403431727717411886908854986753553282256980795734955691062779101235506234470278299369403673560908188811831601446925624964938639952442945591560037719046767776141876079202614253369890734602840590591722044332398016507910611660285774376492946599972797681546538651710911460938462690630109581514661281329365482197026155969146349404459352918692778071100535250100600055391841624543555311755407250219889149912672878775337973862595415588759354428070626252000696191414136717067038938730395256697416329281656771751339506346132174368169527918326703804200633954123806579197218162601929916993306725133935450329183990853661191889379635966933363719101469796665833744883916105842479730408457308438473652882580214014418723160064557821170309425544193214298581973688425796322828285246342800266846655437195169393725820577782945138575372487663778811880596143197113349486489324882977741423912904032556046133023427802021576102193793937991552345394749832030657680828276358870986814414926269359211881033785190707185021840153001201461917948097638734918033901901632454450792965455817016173362910638569117774070823029937067599409529004040647776072849630414935234800966563444613062363935801238343282659089198372778046573394084937653816563640800750638677761888902356024664958703588229357770518210334553262905769973282758759297169406719511750457842494039386219812040655808819214797608101417982596986890868912520101233614028316856002731036992836671312689098590839108157630703741611640070639919241870286086922238872574691498866997565627677287464790840909512693538275083161975697099097096143225546648860987251788771426662071958189847048764568811789092127731058190360821343953403064108585606299898242678716629262183325481177732233665266957611435493620326666586324771133259861244275008147286114359907287045223267731653314303096833003974922558522458564181731079842144012253212313561261853709250608274449198320236315171806773508375217932848673912638791134283800846866667804959134101715544336685007494254945710087299809874412318752761091227456621707360396882265229649247075907367231497764878166921537051409714700724052219703094459626385910457468847379374444950782994304106779561581719622810835996281463693020517512249625204171427282405249343092653097630407068144011360917529160158691946761395045173274518129526267690041279545409386143062676987507271088251200021183802370787891615300046364807064767085617472862615577837715714452827682932207486361753772104259539866635099152673446363373964683766632907239097730829063805041462016721358438522017551474224384805685758866127764236731612771540941622502462239250266608237161380551946166820729405594144823511030465430390758099096920038069117531250898489145475764778333777129223044934733009480422747044269342057794311439409223017065491094489257858746783667030210663983762895702629406246770761727619166350030570517506104361582853728297487875587991399401976330430386263316016436348368910370551399879815251008169133256185939870103241359786729257815264497743727425793449987434691331888014485115058622151389800923810865807511592959435230492829662039031527782191172324856031213568412462764242480281830275401297901241747573634401441148135728955696837080052880212929061087422540932841066523808748966169739443794826276622288938582859800031591903735346517871335112522717857764184518675675444152901349217851749909129012872693675334071044832805866939945057093831278749587623408957993810153701897838842123746426649517754089497862498705623427471380162927085640034000323744871651190875406932625680569326613401629384851017494161156713085520015345078025373162297111672454864173055983358398182991028894675366844305429307659245742669272536946795307813018738729685442932236858556953015442743883367278700557967683039127063529523187672785250444552212600885399262942839555782132851944605483804405298650443253865775985067386510955220614283462845605749621982439983367998585686629140449848796117966324167552336507586318610049851988205601029314811878680085338224512439460681687637880338752285840079310183249510607823855036928248632377448945736798903270598829155476609983495921152020320941787789966229856229211167137744783773083081098642884035896656912125215027176812688255694554155543960065070309314184308214277734950592646280376527500267375856777169419976093560889890548111552597244156925052773671201803843363552307182896580886432755827674773097931209999325906835084294508194881826078059960524821568495394436016025236707733336376697445780500962047050645961011607031512316265331728776655788329865894429538815161762647194900328860686815116900721574099266085726966419600792954454182638028800647781495118180842374625632885567690165289771862009176789852503117530352529240388594710734762898901664810076744590293637000980891140324710058424289025973113140230252451142040792735021118533126301705847993842156018654913666586571716591345514212836439477346894598848169631974540720040012850584093316379272391831178214574363412341807755169379662713609935158460595482472486377380860062374981316133046372234997039745145797662326955945930731900120069408848773349973422167225130667027759110327959437233823797937718586810299414219823211896118202471275686885352947955624801813107359229092262686260397753020880300758880592666909648559056456845693264301026934115343970357776398787803665644599832286305000403883138302092798020293162258835718533983601213818506051589538564622099247254165971769126704989178729489555759278774014034843266559237011727848306984093118512850349871972438396018578517817563796820483135781966353626754665610021367003917574241210695885756535669210204650179992679708228697286409970173078335696874589248746813186019219240354827265725218358043053548335044875878264678622942449643658887223100537524542789138027584027573422210077288260623056693701210872545545381713600132808017031818438166616869624380975346784381337719971877462319126888838854184852977573541570854360538041296066500479715117498311268948843344409025834623981512555287931150932672930299698798046878076598249970273297096903538962760658691766888612554055367254458748568784201852084445475655553744038481925224042157032448005515615109534258332181659803520275240456375975855003824988106347839359699152870424524350802210929920525115870029678585611438406724288659192900312405914828821616656053526989912383267029096070474897642404936252295645803724228110447620936611264211902537645477728550919632443339405700117578670637233967628356590016752273219732356911830811194716569366811104118917180557769301623472128810179782094365077342533321967550950125245227733099820410288629694125047595058367159392302747198913346649040376692587310435447656729467369481085470806567536268326546868381138589278719903070171552714061911155849040622360305577642026565320479852536828339824593032847122376812859812992616422619237132639636089803447332640434392621669547175046935237187082381258419359942446847037390864496743488422134304184730983155733318929834524654477267047248640228931319070723704356459328289862241470124266330577287854541619026949633450857051051840821318709127850176854722188018357388496603304988785043401395272158869363954830876725737445152935511901613065620139457584457345891294178577330001572097309951932564792482503911481447424786109368899451349346789174657240407098062930336904047676589014295371837005695479818036149404215179858380886013681320507392434566439171688668936689151229182846640266543830750418724470993534742460416300990097054851120448994726074810051755295992561370903832887248795400551086975817804072188670062802868952178079622052686431464113892286369940001139123126512618857963464327690976449564071138953506857253524083223188582278120985908965016052124475395603991777493119259475920724512851963023707885115016814001132708103318008550433640086050525255450985694349726356340155335148013003840590100748219682128381304748339124302594563894298037577549875186344885360845683664611252911095382075817516429155123880901173180371953377677766683853407690020399059629782041902812567341032954717100803269253336018467085880459227544198882851763993580734620470482790759569266703337843132282053570009476880425988209079961994271686730236275341714975921218151580244704271419952806489946960735408256695793833553723199219841788718955375307211829788158088557847042012247521530640508254821412336619115372835797978743539406075593807311605401417825844819034645726645321268227530430546484881283299166364905534399409576473007675723845587697145168907140047219315679287359988566872462628241910111317291220775461928047692174519088856363481244137462066515182993826782688654843768260092177683455461467298718987368249103696556014267335442662125538110946177476434294929477336083488726773363281001222629870820673926124035283200173505564630641484761223947135729301253595116603669746207705546934780886569146447219872906888029001361929462570193117001886099116520330930830206577949158754237511947090802491625374633983521720962807141820154091762232316444241239902375753552719770288522657075608683413550705391924100532757462162785489330753616756217295949093304456222483154143480772032384376142903939980642424077404594713417781727254324576948002538022992700315099681519909511455201297676754022399245028894806527994669789315641574738361277064222637709824133836541453494364499789694250878732041363047566257039480504706987351127885972966962511455192676685142751297781476061852784708566850907587803160569755069062508221266326660907603632642827168115780892808466980138066765481122243317365550561329552403870121133388876738018406446129215209432663018039645132963209862242253109611956606744639703572595129257355167588696058685763542957941604525073197986296248176353478168443922098296802030136065536172158206840822536967997162792900355749348050351186153452363980577022015704624239337008100976976658767123248755346097023044339366165617375760176966429043446198138825090816536529246841582707911825139033793758545843922136607025115271475528975558020892326313703502534870893850865682725609026362082341115593597923923789063605650550918062685056608592904688614087858805340727089057595228413531953901790260335047879765186439867285822420392160327343435757629002398095452154385239679518665277300878778150696473644693111836146706046946774227667111928872165139763067823957925736561188409495554173323860389282752055258624264022285135318765147350342805067263948054280144327452564945077797971619393544753979488412070955468267245846423528694568015871691571152229174672277117319439776382809316770956312349703574926855188959630310749036019835977026495457283293293376057925003189572228106247329102185409153254896734310782770845249193263292680805371045449316115377969835311523591179675958284511489383104518971323701288563409397032226342419374220974751112643008262361356570519123138746966976606945264564483576293457189310645405404396882782126957041911005324085924873993510930615316004792431006584171458690176783009844156687923659621912839955550695148842622239672502951016694753506826452029445178247851070550857265343605916561994080061669025093604257798270058389221171992701598025921528308248665150500743118325272869334498054081134833860596593614755831481246660109048468896518725362131151626151980618910610978394677965636555390579165272468259157360626369269561765271013256911644036528020970260348169639091549528402389854009201290893596577504568340257272641417900020240714122678207569888462153094266077998700288736397235383563792837933765878519858425053252348438738884274226382157677894669478896549127401420327722186344701734188296808725294977330446097396772766418411665444641817069701478979576385624425023353505976071174765104571969596335497544565364630303194815454648200115723853183626448041089056815086282133881129577911563286077891855787407959231207696763623547380263190784218359104789803589673613834777069352689733150925161606031457603432856461733271270246529205025906203202768224577141091491619918229729876371469494336370405793893827952015401279815621960249736207227712989018529845352414438210586281736926798578557765344248662326918823906418869978403904201602265296141428781956271361185086844617663394338846264519578228773550844550975352163861314295899357714323127170204917879014415606651585136771509363581693153881716597542751176380435230922524461945519785956270091528272086642959862440848745336578047414106497984489643172937120336856567746461410485053285392222773673441665519125968823018037599738841406332058844252534723402281905608751444274346239724692411776176302659826929220101676864767832849806492022980635519456244625999627070838982378896643321968437109598394608364483019177146930531014034660391053116506751185824939567766307256425736783269248990884422447213502870043949792050802641359738321861454959567826946794514189283286400731703105837317591775826672355952025409974406955727411302866692629002002367284106565737277447815297625535373576646554881335102131073592043301736321811740304861873271146805156001807595364752417267551522837621082822344392225624715229632996062221724187016440037394193624893998979450608026325499852940531709850996353552687411355725355141714263342112574090201238642224604527482350675416805749062263914716827426859793909076244765231341730095483366002134536365998647986341394888689393436316194961797984858338980595708298220379323942150225207318804798026072704711915356426968101918918901498736619187825358514664773514790025193420494801129491375978050910064548198961359631318859306222466040796989830157787127991702291279211091948172765612896096738621797667883148032769591676235351444835174267925020002743120688410394997513495814898225841405208904154262499036771628167808211726585426247743023662061524400717579833346310739019342734659965473537375292212193231088498908338363886923006163613054689895843858978686733457965241744744909822645281957081458158902868792925259436819970024482784170271653745898732362432183072185717445491088629807267917624817736697329868299595111147450712935797366682222018972527972223198303491831293439186372444734063091260998073416064872934435762853123208221315524754881445531334261648985852314039571580900197676709274200127356868990049561466391904024439523985364063994901249098434053533860727313624132707566763196106971591502414591548902151516989779155380912679965668128582121554066722693450219261070162042648424195683947552097322928948425381353197815761494537858986699646302924182818775713695091421602604479774420528210131517402156750260180616165758542383523419288036546845478193693133758824734945243321315158696031412171330633815221028699710079357361016400545472846597055236003747762737407293287959229803809346099381440569136752291306605461970340660480227888400782741227282014054278255191324546957155350289374865444583016879087716227922478145225986597597484286268900353740493110624702276115178404650345649442425170325305742660830700327084990228118362090946304513699044282455202159778505826680407282731243080879874433570910569485384109108070973675257955534431362119066984544144659379220706199454417099833528009097887271158625534099935899188425882116928019691898843187702352986313532491185549553822101168431933250272940743977854239014313891101100168804135972734022802836428939499604504807816727163105502562928466884624463048167433492695081294046771451922267103713824103935693643468076746137394735768360117968981739042202098954481102836245372524798831107954412078954201821570561427846181846232397751897982491482695009480180723603937315092177109970091844767194461959716831349665037073903844082191330372746553935972691194356936344479516469056052389650197447862158244055658489698796219370921420289013389554609116733408563847606867337983360311240369636099619050540098186090998788241296515554516504787315178513751336373310649965255275369269235105223158642462910201652028298951735939208549409122811512524905536703886276726983613022725266196918829128975848676454826618845624078157076691001942441901263341224890399177582768782456585829967702370869835601534356605708802529330271185549053995501316695837436055530153429765467625213778220952147536108729633164275969051526506272334042519851353941594867462902371073518238730415305633355243518943334648670707350621099543669572735088043372883361693390139599807359655510925092646269431312529273810309474949124343732627782896764608948392024408508221480124061923281426600213121051050383506322031599911487789974816267317470206929217796658913048902969473512743091235478807945179138116857061457024843154291813289623676229980421610703476648156069136036806227129188512339658612960023243268369779941977676658258939911310306387801235789269443436807744362119311731057241432314591316583413406426641242676600679602986792007692517227587656236783023478093764229710596954586952660548519090491121953612542419757171566912665604966590564975660188617525360434429992041466541118829905283382161603047274346900141409947369109400220957818346007087875440108441731698302848525465479405355293614440897219885478686965736794654275704317699853233328649195818133844494532812010305163977414623113550807877357316822588980364477119748000150409206669330465610943477568924657049034176171732255085494859196540143678145101441707764256783086976581236987938919221423379453815348062686927945017740067170042664367767218345084348578647913591755472523406505077604094134917624035117491033946373856969553390896617309449432152199389301432779519982560544721513561493399964468074046659986886628702930873994209640157939116568021296388764415004167589641807061222476626789928671721072463392520620405255876133772451995346366701351661908837671452630690244906305236381787845896474167753898728768128436359661012857196207981792756670556778728535391424195065830995404053149495664465236757276941636169125518551060132205261732667644533462748903415342483085160503138208781061349973480100569562905632791159913215187472975271797760306476788322279403376822342847002414370721200935682013652121054102880079268612237435839334294275054729346113622354041317276845916640822822797041606180569426150931006288421842373583228479488812072766195744254688593658468832309109970081650301689413675732051077317873615875584777895391540098421434816864540911645036594769058043568591411708862794203457111655811391705336584695401038425754304611979219081494287144600446845114907755331578856117371576800749790317545705340165947405755552064220832851876083083589824096711181026836937031199970280708705843386702644897673071543283825806266973420635945388874815458490240241976813279625327674554643656737405130889222203745442627625430590058706453886004509389188304796460357991494709940486364693133992511072691114574129922935514637755530248158998641747431465309584142305110188769910547177102378871633415223657921887483740761954185209289022257372229119903296192678059046269035814411386727383873434265863283209869142431147817805093436020223379587274033815080282048970057181443968083212111244091874209115001410757412625930189300252770658680228118131473136970252178668205271168947963225336841730514690221824964577558981997827823129643524853082153518261182085394074166653408351928112802376491287156433938271073789748585660800595081490190741937141329322887431408667844914396155594046833711941536202633447416076132568256843963162409777579329914131133464470260370249328265415780547772703762545527903383516885309045357550822663820983334972330034608357821259079051089933487601691153402075243133606756433360516775959164111623781107649355197568505585388448018975372903614028034067134278970670555335059433330450047140431055279876311850454016919809796978177452363879980890245587118489520862390946124601929393395037773117826871468245850899841009133605523906186590220868411240453939411837208807540198362167582187556047115458807607415561004746044918193005626484844953142607643540851226744596194100481665098201801504216891441869834356564075495103039976063170123303209094651765513705004438879322421889318535365354664959101819736846288374433759157572653394689346644532083631999556107612825768414604888017356107859030019861866828950050971657975407045859596488731059811790351510979294814222654483783378367494811706893137981709592357179527516335480315443866540311715133557664703151437505392905192672369490141138634896835183739151268140801813813488598458937514709818831024569744167220515918133881045317872832235631264485053896726994010944501782859591727280818108033208731933668778006152180761544534234473195120341204645681361480035081288264021347938071596409549679467750550225238437104011633356563878882601126365955013381361670930977996534308988368959487523789933815205643663460620689756908370140177883609986214327850743232019905833901871304661327364470891608283600153541550618339211806624409971648059461532073070633574536898675611174507758821840152907551465447094692652994454359501541140381084346578177120263807235013802099235197674261425688475317342443700945809520155947161088268329575774571191516246331728872085380015966095182427408613100648932499178940450250942841434124963210937022554749523361440804787673800711377351241665690514926285371555957238814970513576202617543467556839023547584430082688003157188315238625803926613008271410868798834719825950694527621417999733014358942845951903981505849967976541302402577531417124694585306451156312428249410407037287988691261430987346387473151819489246879400381995226856902743094502291747923355843790866346524537706429911402250071048483488468179943109908309559363883059406736527422086769099062351229395217971412573738834338253350122898909743589589036223782633659492764353897639817796495289903288559797758156196788125518633903004381034605721233823719477661491536749257612942857399718436331096080540344094277809712381981464122315797002906286437684439728685120817641166532138067006671110049309806166847107335033469054703678533215339722511674467093380015321650979140545794387177934838215851879798655009596768339925028205961840380852568837339764707125851862898862996200101971829965423388850459901994866139134670476212594592757120151001641445417304594245729906016936138781413003561696743463798404154081756689804089207290722980134904211653614451108446777775159959162517388413602366612896014983006864564465166923947247070679870404014524219607421755957735043126894954272232235271569845632107028331159854504103649418075896841216715797183177489707984221814244198846272006496063215534061451692992120346509358044773601978347017220323345565340904162355877820428093550489542509424633062232316642104391027349302982635671677576600546063834708784532710230353922975011983870056022642422481267036980321766479091613546449819080297298516057535660568493949333579460477597704643190868296840984351499502726200321786155198387440919877541182060897606320426279353887810144103837347440566356760793661891195439263415594654509943544021720996375080784433490684846296680593946239477185098982894236136642295851052497429995892250757320662084499749471876153800570637380136966582021238135305347542750695671096548140524343751572255869547059816564496601743423353951727469390841374176611420494294710947048651718188160496950018519779939502989709706455171649474547946179829201959315645830360296979786520718148465670912122754769762282163057139464153993268408115171446628495079476433152355650250199487023426434395614012808425864720598033195279173398652575639450318739806050434520017004906655292158276342503205894538991819158460758081275700856393528310109568879135613518752247274750572754550957421575689470344335583960936903926160511501604197737187078760377885112188530650279311205294232351605030378921485754790245902018774397451490110794327541786340869925875042965007940770343432668929606473700810024307546501635539214727146429314124705125960806159738215489934516925050364842394878976702580957802636742957254975327594865574114634859852639515506525780823267614907062431523644474143569319919531886630014033986523136945494883877509617560961347394059655638402462625078764256428201618590812847726472129479884159009369920952317304749531311364427192423703119359338841053319186711871365949219078892327316440094309421019778484566545418298999345111997181088338225097030400094802642467305315183420635587355618730126428519313364002907236522142721868240778277636547098006877921061081295640332707934838137698206666221004228075416541413196812052315795989215487807419251453409413917049675388906478874056057118378927386289880457771298794648274692321123102288706728703308392196502730636381076056686464759344647186191554035730249164885496504177890325185218094522231752481874724924144840375282436165117868340410671902938732089971568357442591931564659639279623736176037360607601016243641052379013368117939421840881048987654576283772534822796586313890665388448411524003358660827056568160800161282083777004678949417427116176740553384085440581456538896786419626533192338629805815826623359363291319498319152036408755409258121614169411112478842917515901691181946304489461500053739001157850301139896168065565922247758000800247871258400415122445725582981456016953713074721328066338704386125297263196572708038175395763415052672552214152412214687247696932473581972797726637919107362367310797463711947968100547520520001886023648729801107119509312448186883033228835940537611815609215255478118078449257112456283443061444656484056021508257584561681406469329680806140886969223159544853782447884450287642800023204561869693765087197864865277203796354631275176724888159873093844685657846311883611766467655640713507432574668473001126318522346894634188786864066002348686798989750809455519846734983180421636576539969487757491696927826050289273652912666475640625975089336432994760348665466741499341445195858465129028540653313872886853778220610335364600874540681283151355226488578643338372046437315397919196656141190934990592414596155115188107558984666043928313344223987761510703328372471394235264291758330543719904333518625323940512767708498186070720972563806065539834175665832631363730392322224149797749326460285775496689380886405049956335397191005643218709503147983158053250845040028337233690334128956053995034769151158743255827873535872040208261872113654989261322689993725512562490858647638858554069783387157939825369988993733490814590270023827576112993716024366690818041357731040452004329369548858199824308494949097469796902886875444715074038715897488689138315080751275411524389866956793966635731099186184071139734159641881849615795519041838726395931262937207997792044638235919801185250032113978478947472157074008630179960161855654702475886731426285691719124718056166691499921543754840101964043383436924541622187600623563712053570575312132946605279330662141634339644147857998352174395549556108720052500704474781248812289841365159377850637464312139956139561780036706794786694263423267060049672003432397806621303351238875096576141484621808505101961967396865554992351494799116592494776958413660232280011327407049248252622695594429792469572987636984204125885290836863619560649248301585458035519534365269545785269302111031459358122219962780664725259739211387534147626869315753765372858810153459275911120539251006995379369232460590263633574876651055648785010382793959714749510700332959873940756081615033557079282446987640439025696645316110365917576961233670996163790961417083978142321863153056553565016034041837670077149827441766508728445900134146673914025081012147576353637975563323313874058298755969554065686023724547261922814810848832999201995174560624658888645687951925073760124881854042347382770705351108096453446393666107742657617909326453821566672422938217550672836055820689215799788178615674436275132796758382100999090992696523404467936326337588109441024406409812455349615297464512762186348754293156311966393845253568893815726804383717536310793203684429193504125394433350025606750483185307493769150784178415639362774055638101378662664832988229973412706132657349940921351458141486812789485490340800673543970753970665695245986749091548642628099655834174620359352059447496701402965813731310141487501478024433058942336106287263939914878895878195146874783882060360805001558965060283112374273887328176295102041924210714872473523622994981362339353167606294961278789833487849022718050569358837638255299933386258881542807129004622602437725452204363124727808541409011362204000733531442807206951053422647261639525734102610567284805996265700547267597537179315883220132896121697474836251327016738640377458495488804789094878232063455227017690540165419106850432696057385664572601591780903455621750703529003229660804815891788845530655116482040447644600086658899392152822567060199350317869753658265472227300335865889446517683802984230531491696186395798901675531274791680380474226951724964985593124184509734954570103815121571668847937951161202202416878347913397090765284041792950306290690851289255508036856160453336188014185957080217841304566431665588827764909773425792008792380235196451854463140374852497161004810654836344101715575118573194719233958929118750455257213079820869328723473840433649100735369438380237116228737137822867756655221522828907952015055800934531922688688962962936910289777761930245634101174680582405760001257143146083217948057198998480660695910096327142720558847546029805192024197208741529188117097224525870347031456792919659541606105658156082760001860825572006351366145609365717849341978004718102909591060810780465859731059284490793696099828195026560052711796101176108765373120748970395249327824225184660760827540497056170368789463555346887883588396883234417157493115962579105372822607632686604328216001247367109023185510834933167960058720796069686001601470208771192793730889144171709391943505378796153798849320124940369642112969458610317531531255766708162541979991512372122124177947613249763449096508852024366293982877431690287931347699248428195333621802295126655524621136228730472672309537394836657005371025516868355476833696571263823399711972822759689698859158808237263531607263012598834519634184279538615200160915297143958049991514144115672389335274747235118999041550474163364983733881056748586972320263151071855149907906150405837672726940205623137622202302982844839032489815628537811831482007370302086587457561192088915103836109669975098594047794415447340182626886931827388481981319400937662786786637660843884743789972269946629593279602197990224029738179738362508345735639113271403973241964133613044432571547719835232776653411361448234578257374490652816737042478795729665392872484378113708546139903465221335533362496493809015491346584542102406685030427907728150515973339817687157773762762976428032464305276732174374508362853144304832171006856036236478396346669058310961998920722364611472012721360257040048115789097269091626951413240277130627530178962336264670698415020014306013354291678458049776845284966231259117356769353053506672163114406772908454015937049658366428791699464182386009632875505348115316835334408923373583834851559853560143887448716058800466812522430238060837864850696730980921091353108239329234772297257588729393126457357085250065745743249335715596425314902494857736553278637211547432804919514979402544108767276460678070914698999481095960150079083000908658728225381883109078107861428189622353398896980012577280134802722846026258595702168435855378513219114033869383751225620083710871718395566612998617512532435453767872055876642654792895703096776710236633751800593952718197667002650884897738882801384637282936872930314635059764572693950916556730055472572173105587486129195527943373659291953319799278360108988734365977739983629154527869475314026604751542646628123057727420793594125114053898319728593645361459031910005519432575764245342169818886331999438223260911551463476173452181697120247098772616045204630787401555431667453467008231985685886048323172907048637570522554949827977933447515847680154945545411678975022965037561737402464633179893916839995587052438898728896035563166000008021270249326708158557071321637668332113504989771146909403737288667990601727535028064170042260348603019108110143997865233440322900772663702931988516316247965878608516318367788047132787033925408490089161922544445979797812594471782277879570308231311887829735153694379724377322413701460044210766140705626663912238886023916701750945317114457092242818585962134548943737233918525795229818645396142025123118977113102978915820689398558479563397377472741418784314719556754242834944319840368907866331214308871829982971333664717528020066304162366057197464875738912051164712970247132779191946105324236129699135278619987886075834786730038988404486230164852009397514383807710524302597872510588074655990436062338672455806787147494385298076663385605426279999085042153012905965843649076304495149355874859155193138141761850146274939279880206342576519320915078399691204090362046530939893477557242300790518658843727832810860846649070801573201652365086701464434120040000237711842998810887623021408613079897687881157371103978209595802641941024311089696639778533073806518705450213313429057441538050376677055187590356388619725905601190705296485545554569569702760617766636129062699997705524188943688564316303747237942071224648437823597707061555095796119690517599890944261066971838394053144852550214617389670634263069871600864416045657419129584664969029675090021271412045691149521650488349572522678538416708125337025985168291977901657772465469775444254491397536886924930179047067583309431839408613420402104171233980470726786731809294079985976005949574517714092071620605694417779748733900105682781675005399909533890903875208902692516355888859402637984515340200603454582815509949457398349458252073123576194367575265201976242909728631696868256167241344520643336837080486468699857014728079841668800771266653815886680166783107089605653113121189155497605132786391826748581002080389343666092712616285151882721148269070624824453470674423217828508156372499476180680115825265526262349073647629064470525437023965213625398553283613863804920049104090888459683876961484510785619937485137901890317046187705072511062758066680986170825780146275746790806756832186962125391227556264588276406353378026205665475587574685538932195030094571918682271083562486782395894125025800511441101669572159761267675998444005766381354556904239221531121777262348772543402507517690994839952521167701638706738072864270822235279777143354307971754399691019014679578693555930967616369098316973726976723192797000151710093665807482068716811471683723631212918363605595816451405900522604229501415136929778437045657584278110910188494950108493840578375480766162432281143765492290839897817656015624353032244840123990360073813720043079647796001111271858660958454608019400700354541745782853764058668760026621817285768939993965485435811407983820913858215948327329324328167498554508986667194992008429759404532788858025859687062055513404707522087118043826083138884485076918543263243649143728951982215093517647008994330441252082628482750481428422167300404450349940661077317038728847906919972278768041628221149492294070325124878264206599221318867431785588904442979151933283191557546228297501412967385698375248867279995964459418100539331079214570378174316702628392035921686589019258098381802566148948589835580444550102288017420060156364196184148273847651076671708821294596328478431869083455987275211191173600800989773882441279977777699307607419353527867128068159126951304168226397547282074070625811466907036819815842899833338785176140281039815175428871918959511476906063395282913966503319924751200528313386659539685092696395115846914331976085694651307035609833609546435863569406282501035869840667029457109868769212306892534689698046784114321549997233982379871155233716043666014771684980317591354969010729488588785222001109499839593265017114174257752985001865644129091328049495005842011103276469869670285106090637025737650878945045573733483578885920291723545356626851328919051794409271243483505181565301383009263895192515576822134993293101321995208237856315269271090513392750532439701034561915592561639435471637556767807483649449624435945860038246425886080874272014023592921868160342716312243563726511318692349271859980191135911381442205369333197422778518187231869387388330768965577460677342957481148386963979027133001662057968068301651221462089126298530947981800638377259378594924211022697149124723951768369822186120934029048022335234967416119584810275005548519784664471905973974566026590439668471756986849743281500688811884277610201119325480807526859174312437327260888606417807150803388647806859633897453514130550010668657993925887038980598166685010810590609759366275412991109654266914384643369838717097246914335592371207756738930769534650361672040440435092382564494649739965728110997131703301856313143401030074301559533736031647901330909447304619123844380291389207365218527730014041000770458896637809611642450870216727710471049697602589312232689025919767942756565827103462473118467108972715475820095501627702669717878104468764138162000141803117785196485864496276412701148572613276160209424379624244404643906662516234193694107546334276752063198187911275355108540406887911919210727302459054447583073074357248256756577467790712210456228935562086305835414462551530894448208162383764908197344975554153626758272302565139966129361207909009981489902999049820052846126735794737538397477208263211171954534344429527028881494780742348798365441006967576322631406071831838179067503104443798968698953645834250825073829752476201621704985829228846178639683236128414526406206607719172831339072441724339892313288446318607139818711944694847043108332916301591881824756363564065900100736410288200852033397004454905026983389942488160697561769414103922215131644862251092586201712685837211067680914803133178761036945797531101487434376679129825068823925788786981510859173964080989382964082628278837293712234084912007573976208218595600334900062790540343602627120652649819898355715635098337850130099008536237315215297860287008750846682473599962587887775287586940813555635083694987519791378565290668232730870060355611564138223697471361467490260443368496573461886222685390634961752274217084624510032138122660157763622145014941528270400132600708146564104259042437335476988643994803321280260766899499271325596775760815179201268763280847976581361685320778359979815469486516549152202211057202076786314681837125396995717782637530470394338655049390056352517416097475646914656513360136381964106552102447250337724672701245293241813946529456752512139701553063221213152712554246978729155534826563405508081930227274886143495457216228699885184898285750457264858897559170149598258259187404028182758808950639980732416602771395679862965551877975674810757522039890248214494358985340696445490379637471015973484118492997360007036181497060250606286309841522095608883574771250740868928815142755542853789052639469977541188770576030293523918297637919761877608126028099578395181466806636747808905623162180364885404497896874197026157014367665005105549591994052012044025508755457448158224749949445107252266269720953316394675147054382756915652182623310863870650293230181904169467157376251429484760891106098435057605162096967095933931081071550863484621457262241399359676964518365607841246798104363647257665562724400607236588637583782148373367528539773574973912882323263477280878458303010952814859488094616769483282925489410609603151180487987169732607275076161794163133054086935418043161939659422513462241860160921881204400138085373091669254987113046058511132662117282470586893956925011850883690502790581943064123315784543857991647725929036519502985646933466348335088694879381823954168374036940838315661077244782146915153901283711912129751100114103397755854201796061316848143317507251852815191396161914313578325958063303337596900759714699932057053271833703566953648876143825303264603996938715182639742427153102712690792773434450580079999020621789598836983871177147245027183805517622269667262141164664166475974296014641137449593145111708400824168179026812157350703951454223420169743366759680019183340475986382153363997596775671109130196475068454182146818162309658158449952372161342119778362763458359688940758673548813776518978731298845942363671748908195427677884131102158512052695818477215744695333017514551934991090408991669118622511619599251905406341559712362728571680207493072915466990287045377183639556680499390661489327013301673583115127019011485705825314009800975243424779725026674623418809420193786068679683947664228036817796537677631454098846148641143708498421037865926179096934166797849007464339340117859516926823470885393430196701268994740763926850451642982970344306864739452244958510949140283642839772326444485424665731643840554999041553719933052288402657379415847208563293734571524777889724043695918112285665655649859387373921946803679924204940232905827384042144412536867507355631985600326238361542414881831075120757323526591809399933402036423051603752779130468756448945348150997988409575842746236957283479664099057445961207573209462187614848725580177087162752771094354265141454907409747384296904380414641371580443165317399749679523207811961872774746053532428761343202354719301066494704830633061382591124951161028278942478664963921925379969745394017732147527145470493432157777411869731452917544461227395073522236757751016382292995678559311003647697685698929051653162320094351415111014729455446960020778965506546102249331183103326877337232447937793913310403092932984204905163239328071912624867458335236964537579455750130457995854560573690455382761308643190133837189152934290785804485993321043188060085284223896297161267740488442805927768236271561586181158436179475550355544513212165297419018801876566930819498359208059261435489301232645644232168931290012403205055039273589255714060885843922146665228299829368523700489765561043761939727815220652972414562351959684819450745798437166531673353096417110397416099988953735646750899234479129499391735001032631111386923013490134230759508204311565474345088329786459502326807451574768508973065466215226207663669717715675102773623176732081702159279848773350654135539748559987063305051096287727889865194576092534925864732308319342039040204535904611203096794226595238252846813521858886202160689524658055439027624200764029375995878404029327376055915454232151336741347128428545361587921752188388869099850253283903837062597009971839832088296628388302739222559343975786834266795778133431834740947393894704522889149217681421643433140946570799206533538446499568050143458803112666406750627307270992759741951371601112231165198169869145037244162278286426207084869236931538499653303115970692211472370060050492515616783643186210817226123947489312031934134900605334056212786424242709996940528990198459692238107086009962016060907045256120863750866242364235176771249959493564446706672690113280255888569224298080796817374671701741957174454548999688732240689964904920227965028734663859374900602308820714215365017867756088798535531068074553183333285162441059222443515857588867589675027863165905854970277077177645997377855290585771908438367878533407659463678163590456131863223840236879063908295113311234808909732785858095333087720457408422538433332954336349177743983716518124072843088122508508739443650899832711311815254282751984684151153745310381535478160081284614473334843477596341249629229041632819355343797188544855159642976596802900646989440365551771713158494520794468217522080442123320592687444915307789088566537070071085268119682622279160871997311098621269201781020811465565776863620760397712671997747921475240498077532089502995051737926085690982623219804725836370002526363066022526569226855862891832210627420961302516627975743648170585950112447671115772982894971901369624152615634927063568017772143200620849358191170919765648442363326757041107213962825209906698852260877530669904772645422379400520941968199636780678896145652206977037772195043275696759515056205704107909866217883970998880707405973550901492676737115355942844934550063709965147796837690120621197319597619791655310881961587711338176000991794568067622227117398254810644296086402049393035237924816732853852260856634555065624812464030696844646546644676265126834289485789161453065200363858764650616097860121871758069401581677914133622464369817507026738318272929190715027162369770821420746154356033507702250000882855694473199946929128013627033965432685501966431470943185996511464090009724542709583548830557553962560587473282064116190111286360221907263168004944782406671464238302772875884911305037885987654381803524023767171605232543118818912296830224020647896710187299054517959306322910773436208998835717281207889085758048132519358845626263661594044072390352863652883174621476317991331338267842803955950451351522564082208036778725011455147053226661791264312661618820457281768077737331132850564129414273323511717085946255687486822977736105641596538734816507007223283220354887016211794345397950670416549428978295400145714370363902753215196403503933711680624475675549890452556111909337636149943738556992652500286413050371873383386364031559548668273987191110791483606979258362074696935483140126691814053027012265330885630410800911053067902893820144995106855958645111498668659611046449540981952986594974343101419457531415662407512644578184120019717917039543822569060781836721467132125117640377348852959801770070275119300151525541982481793707332939845612174232080249754356456601521895834703893241479757039736826428571270768124185975150015467945769393443925853453477685071212949753492158066716854348607766854321438255425672846938231524853960534722540994918908178596640673916017526798243452470178796123575747611069396633326783761711834298119559357655707707304023914501510106953314379331913722420950155991144038000944087773384649203597868994847415628963131861540659268942111160610486405322796992016928141444930105242860568078972038520095931478256811540311618065808146186884824410464772783615739441013139227264038369051451946496373840846317079980932096189117426851058624546445020185213041686797958205345252668534804608349139551195145989035556280918773806760529149781541815045925535095186766727654548783847792018158820271772832120146446398022227795662740823393212899424322732711491244102405718380822525793619085353658934389995277077812111130843516019463291016943574253874896714710555178080132270927756057048496784138886360194320193380324741991953969916841752276799140978547988978639009127992667379655973069930591598262491509327035309072286292004991238594446596441837477014074669773534507499167906808620767898564685603055715930449187856010134415845638808377298483588928302413641064682022481767551534500144143255817990425765865214302972340056594311759911685289777767814649649886193205162490113508097412231259760650615103383322554783005617670642595303659065783278568544492109328381973666644851153391276229988364742441285339857953635465533978368455877643794006723470144570671865866731347304127174997563243262416029070986159528508737863055792826237936978581627513081292072031876361158568688263014899372115600863796141602196269777410194524675869634917623252307697986789943127177191176347727710887651210375716321832461217917386871717271730006075662306469946445350323918432052822543856466175535955326661632615932424514263887580301530532060028863372395942169395591879706386427103677166514805033359974163395448068199551336147285140665995825930328122450129142748143821404642924713193053700939890581455148648169638678990931559214791559111438965570522076556129646861961143065298302652035662644049126021059087881580479376961427274723301757827534138887666065661805846335895533075613486523492420957860601076670773500108279580043387500239264208984944035112562457032016220248286128871942706664200274007258526769926685312220631879644152207994853027655155223089865970277061687688214598348433170805454216183274165238769294926129015001821625326270190114044400894715763346718295153286854396343893108556579801397253381804864760535418983847550000321176576735347956758211910597142043063468457798185737032124256091709299860803948836122632293034155111733715095661456067203228199617360178086542253308696019123602240862780860637956296457821748651668961043539545363270388654057623716278537166119508387665252631123484662709423803054537117068286492233848219074212322339316156097222678783584020840245663560996671509812727217654662062052226982816237052971086495815353027659736736628201812056692476306153752422311189556456547345732348041256537494803268355488026741433837813760874486165211858144573090484004815755409770850567425902169906724452076380570715228178350110750965378343583651233082697330017288518274588854592760060014341850626264664749575714936468612586821625346831705991856700090674883652026345370471293085614440128005844979288347249062512300541898535848756183071339585111683845903537991030230110167949074922884643993173175360122633297672541332160626620365724739185569201794746859256484064658326720247029699716950158502031539277512349550223422239403795330658814382424652095367827465075448814779181004772694132214723229895552819553669105175370496094332817119358123333613528932126863202217548507171188071573456947507283973181781869810341030855351834394427965386462868604869483632026569395135972701115928686408039585143306639755516716789407974936335045891178459609486896375688938647285000173114758957219613518256861711050265174408511880460999330106009657481046659302999990602728930285463798499195215880030191903641298899496102486047078861749373362571136873881590357338218452077113622009642658030410155458014338742543576893738310467851632925114021494212105906369215609740183016736189200862990304252922346348285967014159401417868265696601455576217498333182655830564854572830385298707574877096699495378170264713606085319812825100537935558200252942944189682153330215932487468881655640961760365991722561522178719714575034995560147808485499277414079128161116357371107291050540326482010166816227572978681781593654428696938480319363328292488526791383284655877893964439009685565828873640808929237582996479709989492128111096766433985153097410411988511298202548165144095116632068557380231309125337883058266443906427100405831967240128177660014539872685042859942484178601573247661997760454196472114789559231481248170744791154294687035074342229519163660165290103086476373540352414080625107935984475003315356519360754225394564009159554753798831191091501523264721008329910612943521225519399553306058908808057803470327717431112552277934457119964420993682857305501514431890345844466447259080704505788097650977955907126183734966526638197253269786384588753464997564453819323342954978654479889437985294062602568325340378685937921003233554116113015623038964587463469322478065625319250615859034872902114582687868460495326739589855485839636526801205020038632007461500870254328525519377884886780640663363008474791157084379583935716872306298897907346293151110966580101221050515155809545221259185842739640413910515393309972959574906147600372059256092737346931150463825023375273543084637837422619380237330895001994003504004727439119411993428043762238916692597727448988975329350434546951336417709754118125887665444616120363319247594518101904463732159789233234057563013995981138619269700110110924386847275922278287320297771703729057079951701372034080221378718585209205576174586908113243475529304149292614843932607374195658148163129721072143345343032755453468209912731529755120339789289424614067312227519752541471322601113594641208697310356972661725241828072458615957072353060285772465574760566133447413044542813382848867008176719682721623243214689301482325221198839354739954679709212543360768519112240197763694041449064370081964945005957242100396988410382016284168229044667761184455702526787779836134639314108228580870332168970009104528087760858097270565099143339594113521411363441787281330694376530147812713666889799289737935649645410732917454799596517721883159737053499786408270649885360000030249510298237548000533444174465397484447746754510463498319534994223529082783020577413273096177354278444720353262104465995867881517409647104680996492971283967966251729470028160645898513585358864245448646685849935660909674963352282510037270218510072741442503619504161088500005773225390865624517541010339490721109988039010331866245187297768640834842672320555602169658448487965578762250120909610770948919626815681260611437292719972812443305521543840647308082329125412943631263576617316353006041814727320435803663084940229412145367075339876236188282896717222847644239598796711367207933120332442744049069785269902540064672437599252082355959817267862511451207932731256742670960679451796207023070965279892267588301189080208545609708966924594736273132146516513739927884084958258742156233161629899547107737344734965036802992735918452395577257357199105628975329236077004977311721114390252947416170836861948286163064105530888748627700064413599912004763120619388280202564934190646862023941118413117234774856922419476999664784201251463059461443550491562911101485794283289976501378483883781050277486758663907512313407010402791093482973662355883063090637832163906390613400077127213645471874056454059852505916604427614096570702100481571396243635837554591580983347169800431443998449235868674211334345522997410025515374381752170958812272491641985257288780365228750992534013136085546419223921588357657825678688303462881216204703199779897551759975265872561845588321853034751749246826464254788141503906493374111449272406425002135569616644518813179260430845422878245377203078287456874621505474438953827978011259390369003425468675676478460165642829194686987056897423056774530136332702396644341526500864359681782710837461207782500960492371609264348544123241755108962032911844421893682257612210273941567767337477440386892614033789494437758339421342148004088516169967008329184263700213345918974632737326805807639562262902446981311901693358319499660588975495675886113215079217197065189975002153617691646568255431908930149600819800252149431819057041648149642252185852396249012675969500641514457511861911576119479659044382632818852892342816149227635576010249820273396505975769266720178130474406522547164238477479763363639467810836611910701654988446000568804339196387529125760810436552835306242378504689638799037426936908458216777372662000021310882493638782450160223918760401754242712676729006978241868504980814975302389669934332501474748939119205071917118433820479362004046913513618256403662714961446859082533740785156367735130533283803645539781943359165363771760083809768641740884067063194086976236213721999781452471454599207638452618534075444816399983700266947534093403578395087862920422632006774772921723542449313600207200857977488284376444404570061097115324771209556325544655950522922074891669906132695500479051079126294667594841222377821180679258633789651725261118653159710406456974031990345424288624421123269195395449665635725615178390266202511977748034893559861626365971052850387725128715011292934574063942637471406507373656525310560276350646844021195808438039706710482942789288714187475122415940825981705881880761089593806537235771453208550556940689019033551697508657752254819798922470785629500678184309708788615773049173279634443463964997071586526805938097141941881103532447453382807434100747326089168151407469993335694776537791643355899275928335749717101067009042285778864157496963051379903545806794586063100184263459802677474746085919202313363088620592631574949981235276785885593055419793635639255366654457380543652866046142958978696598723220404766514435223043999319567247619707194583175959648764209825318842206880071787756323365255216586503106522913290589480089812384928965081370439811727143450345301210946406363472209608631464167466451587523156299109498069989648277669916587626017160054092984021895310579735906963161655598291491311381441507006217371594039055216900823753138388149561889479892436989046243901910949244060653921481570125102788552676791595225567837580479476859708831141335713529220377331132503641534909974508827865964883515066308324836838781368296567960385299835277795812273380499775138290106791603279731268489401447700976339254344864917275875148623154716618394639539248032164490082650327792835505950532588643937271288668162406963513922749914605102962321954790543896043055865473227286955755220025323300082156493504388849045891908509885217415880538212015236763605007269989689607819508089198090068085134583483194673003309310623467545436890094111896856766094342436776725586694908576193293084692990106207189615046387442314322784107121371817655476871632109886003908894420407049981967193119284429372560991036241439271610572379999467308185532653400519900037582609539146296936497129797499186844822857959151353735435751303977542606014603803948319881791544982525523932836440885973953358124451328160663375438714097506047457295852363050968480617204079222037980739992891781444710391582359774076944049618962717465208839227104440986190936752532206591633086632564068319918324758873336109873748244468557837361632221687644390158511169113823145479395572808874318088200766395657613524923236591617329506755066405467851705680182362617218559948933767972347887322002458034137149656252130300789495247326624771590191509561365782725638386206545847707035886833118183802157385535361916314798829459729559935779396468743957997989341462286704583708371729676746918404299256307538178740485840713511995399569454707413443597364816901036504044456292348554031183769144514745858425754408814619882219396145216878321288499717813136890193731560267951227823260024765578531854049259549781450774423776045639266599529941487221486481070869688559040967712440239667777929892586794144228328347365248253405023124119199905513148353095059917404533685490008789420477589595583966036050698174382209147686349590413233870147019660737314009648252356056554361024299347475942229475559145227625356506651969925174850550589944465174206590102363144534035614573781202382705328626809657327992020693187620986744185837110719045357138864645149850902761291816412224707645790807399049008045397343667738785495157147641976188272420450710957362984903966064446544081897813485870275801353788663001006760833973389678923407762862634350425530032214132883490143930839252345757251070253226093630688629149884417822967372740921465180379407910755142886724367998080967298448124522355571947824333697191544178851667541010997461368435932557103057583562202919437338650677337243785346179062041594745217851271133795879498812983746500709744372218335435429687668641695032555859469511836592092343756946311367712428217338769736273522056045947949133074215109702583436928198088758530931289843122555430301789774780625706697275022976414392951647952339270263470235939540787016739290988785493602401796226841178812879326739976267702588230882602222064028486261367043533936960431792759403974201764513719601896891656997295455021110683214143236965324811537090532230271428389714955407717664988152389982601210732321068906195375172563253478752961909602210317197864498187420128934093225742789808964396397063099015367233209811160314480566293203012562832856776468020172878826925316369862178280461875717640059389024944902381979995547536915504829890218422141180128940345187497378899696081364008828124556006916438105770541605052093733709716213878708470189333767225967287828944585188615772663167285993697394611793478593224959951334297187906673378932678821870551710148440477868459493407728841797223678959463363993009264009546471586421971851096168658025183384599804363298180678963906891615017424315214411783414869324805304550311967606490835607885711567814533292329873359453780190233336991074229881396816318614993984641156717902949889128972601394056335271043528041016405852643218834172199699180035119446615067530859003967034244708472496397563059109916595898916143023921575343620051747140267506224814105237453416447963219208974648687841621477832175061333433100334600381186843008224102900098803111671271672248398053939155929772980030563916143240485301429817073306472731682656426777006777752918038103391237229109426379343701545071464577803739202317831912258494962509592502221222660480409611675845544634887738602589131920013607306540763690786349109380066655757693464409748830624861889579344429730248801144948048887500608669328410988761356163856953173958903579920544218929261125875633746661757285396251437920079714645389314772657368062717347748039543949733204946036562082118844381512634359082203669029883628607788232185634013301612430699909277563462664688722134061648320054237446795727118547753499275943558420879598231391137540402369709224826703546200659694019813921230131511666001486659402791715633222880803800868825635112457303840107434559052114829247545228312896219496908680538169081030024832993295862273389960989018652312855962299405934753983908613043397367752376344315021117370159223097263908164557280356911173763032540641358644493918270972229413418984460619025296119314304725854659155443868978593161636779291777569837132785423682895907206689374345312644681233574402312201373186229249751588224462907078121742354174962537460420967588219639704010487128201376315617450076801968812371332861443542108406430409016320762328135020879046182869136274703488442906262578021567942746888714897760014426693911389814790054727478297036530789085562236856867043526555213635121093358294999508049491688122472210964080548846207479762378584791628265315823317610105940013140383280823364275177654102309763939780415098441239637030370407136654827693566636562658798375598691171868369759293902720415934560491902487613263256315953871702367699337102112282661292228085147078063599920682836166260712573113151318674225279495338079553732639082482761524078192729324933927513970051790807627564395939070069562468585287809778860206326773904715781965961795529939566933812725350928894003025023828468163396000449743989328367751709525769048123354321729538428036727883487161033887888386567594367973272037220748411266585783142116264324450754130883717975851307582551395723466380194085523164911632601984307164877026370555088768661578121631341230336185194058621185550054585180081402988587990989100373193882072683068856959033456151120121972069460282232460857356991918497235895211418636505343081198150367572659951282875382906535083366591590082532442168310967853367888404153425025613299146950274761797949245217459570797250284442762230033387563701806136422443553876965173691215870495739769516543926443685789464920249095365393075687071870896758046704478288443425364106624357909754913556079002733066677080084978160803673321339887175465768654238764128576708093122028675978449366520995027068028203751861400412026586468371350764270519094216706921673668770129892079113548111216435078428515794850738165978876390525784649694654367398387253122580116980483389866903294449940371965320780477118410805908163673891490638763098070662401292447045135931334369613863913706039435951765185042559820263733394182660256914619581235399550883670092505847776712617500316662760514739892505146433718868681515973888736757229377013379681260801054005821992373139037218922897736119852059711196663145135305982015218269370647938204202641654326837246245545650626641451351518031828952923204367383679391621706797937167958358838395004763437159125052323036291016219488715836615879348191025472197039416477303992555563167173504473043478537146028635454503921520291983745056694455267243632780209224549370624545990027771130586759252900280324361689570649542812717830313683218202489647558594876542010847902857910532009281343339653799024639795422839500528063908375565899501493156170616292562524841368881796267246820058823643187766101978193005503658438901589956971521120682046137122938017087197726467207351442937447452855662082840321182697876995063090470829862460556428610713450607384350056906191354037853483389959877614569420832357681571060611294937907709681974855604643351611103258594803373047120249072055568247553748432130067322793886781291600261080238961284721275558798277294572931871616680389492719139917987906137052510257774656086732290877979788146507070108795471286109022351600286704012411186697622562987865645646512741330598536138543694460967401936050476780988438903842448318120354946464443002751686498870975545355541293677085617363561339806400259086592955741180801673131852948843481717337068520603415407549882705916609958164095946452495950902071795098244981830194940032312760785660002241125300496466599803993088752540797017709671712585698303089840998501081111402394796157852248081435619151275602830109935894991886280360749332141964242675437777116705095530940619938111765679430739850367217332920684247939089099000020508214783347644163537738743427411535424606790047031816663437577785935309214740059627511706579473475196831294891279518447725330459413445573993693712491578389032252959930110333670423212646840002624739526555437761933906299030266912484746742429030443311939227471813264245088626880310160896525645845675602493095507602494011226942616484408523679524622230000830894459912760145618941228773575379911559961894886897260730589594731744431738967242962481606961295887660986621389874863299466381399525879776592561775646706943795710767460153769182533020198712589665896159135374491399861259092130215191971837943695895292285481749165116216329203712126590308943848250564267239571081866839465293591648264415266735475288344232256561347003915422452949155871237113858357281534729187254681370231981598844362352707951758277124640022988945172634812193624120581860536514848960360490522470825119019304800426010716864128220879874444637323868944792664382736286633097866053401182482009896458393527169665240347542336366819332014052652217334190816281112037245366936003746694143310030411662876967047890870277125640820375554552773031914302419318924018755484723554943451928785654216348889352779343275217202328793221847206703428156428741032741393959972253772397017231797667248036853495177533757612567517709384061782024259890656965057966873871521373794010021011565553820131923886000034299561659878595872928158909783237062723687318575200912721527471908511852586053185983273317477804960225972443290062626549607868328124175371627223617966259362659428578758276126230188220771300587011298346667828062401704150333082748309800716530168912242737171006986053746269993707520651132927931349892412224021358934795186268371439248516224097803691411645578550730424422841947701429893391627200239115668733668945889610436451540742335988795974004330567431725371958302473054983990791633930659376170780681031244224733003095716601703142593955369779810862689777867882895094465683064267847728955893012872492531711698821418231162949990567151571567113469792544081574013101665026590705067239474622776291688480467392447373530782013928674108084253690769606869515236091546284220789774248118341139787573023741967216611039231506732298001758887855581661719480937300964260113628142803793133371620391432114810427466154592097897604313677159132353853324482023833984863839984943161786621794886811288683696562572603083570279793719382481482191433101232155826024997113253657814620175000776287700457470526750280428658941718464803463909270120930913950017242063351899108152959533599574015940280695063742999498875172467969197208699450194093649855116004914120030793535630133722169123827417121587759868722749720601368491149947139337199410545986967518574252078003980880595112818530088148186149240861317370718889990098146142335013017663407123033784959522697877213852912711902162635784918882928664435070855264410655878317278514385473872934293136002503225640871942121939611550514798817070290334530060663377729647186885562783920473318030345686188627117495702738594264734788074130835483349531409104669644064935969768881399706708177126903014616863881047573948089134520637126983806742061711177759744030417519178771628410665147210314564203342944436376199137356684858376699314211004291409329453003576740779813547200700950159747110200053132528666296742465891481370562379642871158311483861887449425391710583246955705745277695109695544690616678034303043495459970411417833691877726427903218071761883632719021728591515779921299697247506463956473093514917075861726359009469466836346022271964475552700233030549780514100316653982534733491920936791468536377850772421058625658940777952824571763948763682636521294995484054580799848931321286627624299423554040580064597586590655258506291794263534981047767957651640199403842046127166815085546782186084076163395127199589599647008161407083524986867109377393677992433781718239276432875208576588864701700092782561710875902929725633438827459754741040519741009701012526124653120304952797112101297253816838435304511222980235849780074388606122097550695484550809303404808016168055236146609436492312065391063015710186847326157966608853333053304626020184921329855703372848124481259845894220714941492288768739712476815463853097838648901014407690845662860198265127456125571825229204391594848308166931466894986929505723629588151842403996604983109063355666776659968609282661127781783487024298701475862648955261266902008184304641117207398236146897083796583424223748392249530610842257429725025607879936665800510939930539257283656900103492801304910928371304652392725177778304524022506882886503420865322766317625077531596449005984413689969105470579130184492230468758197036056736758288547035607985567471281713252198461236761283072784940875179341011775711419473842910156911725973557728876596859484114968013763153515967567013521087746733065066865439293865468504373635259021175731361197282476203944992921221698177317631270966590109398121088855494776510409650250380187538385228172331896967795206736986820181993956718397381234808620174921823391118458063739513279683904993194294526747893702875591485581026440345108763663407871196215895379213581109801366409192857334303329980819926491706164050098464015648496618402815242264185239239434944779159913526812181049197421858588097145053288169305979225631946928578952158210104668470205827174384496418721526855365590016928380770693286004385033064765000746779728820286653933921935745958122580780901928747742488901234659931488839310934718041256970679026860979439725192729589315994347431823835552184331669933780498562358877087768234876921683297154389866648739407641220317094044257651519156815923692633276159321820088933867371925861511102717607568296285392726315125435576284737024334446369708822952121372274138211828346684490261733785066673837367373975447588687901954767458006829264232061589707384980650894634880423885237492132146480850424385064296823480573970243823012125997422440794053622122300105473924121738995603564595005443270142451727003944296768908520722245148190788627330530840175746520794060554106810926528593182241666179971426335417578749755455219620588981151481907248258724613707801066408506116057370232595393661726226537984115799377801926549799719941925840689335218366003087080315213367188338204268625098003262756254473720079093881626576949919022927233182146761238408694338312238903714304267291855151221452851226357337761963807679113807013659663416750317739387530313941133012334409240928117120464599353148396745295523602545610995472244591677896877028229735899352944888170153576539244936773920714178978118509697149117770392867107646077957878596995990207815766904273872790321572038185452999395399524545144336144429482991666890515348623773815933862338046324095156471410967405687555321486833344148840612591096161074592111030993128473858368260970464303312807191529146766160303395233919543762920345599405901023485402547813780487774186833483690703321541149583396525837824104945546580161777034516262595895412013638230664414035611675659305019973226511492994049505489492502327874260855619963138747014102325139675045766796314970377465780785954822360354757004311959128048392488496505099282903208856113327626869977581709322740246324807967813857840303558983859670984884950659291680724740537847972025175313549603753822795183530145587059251889816341536794051144310950872610965478494418766779525134115707307705143974298267541035738570463280896748089400460249922671063636398148840079778723568474613124667076809732224448739241543489321398441256004468886818944611536343079369503436309208331277387046981238212370715438129098904693578407357926054985590817546796868012069520003943073621516304668467715995188015802919709734407379792652767017594917869046598657937969268915906307099226106756434406977637865824322261528162769883497736706913067427659337804871383491841114247593296310984989549963744432631592311629888782448367370039408428245556202885529423935190342991296394864363784234163105888813836111544103298843293025652676880547906452261455679755595475303172913811511016264887082599049791062863314986890838977088213809472494276686299796407707183853636042937283675697132037107961693596697961816988767419420476576069637643536093043678187778795230661703902923157968566810838960115927558426867278757674751931851828254022799095459463613717526930543338817862082999640122625008073975685517522455330380940520184009472795633696712052237414517415187597934281850396821941511526556914389054742314954649467069592786913798467056622732108120492456490442033558068986740857319495203491043885051997795041133060471661430583689176115998296834291577155073731182383476265819145559776980770584028158846658723707018152940140036886395466401962830451632212493918478516904182756849891970875147467305390251016302139518675506275631588409575899502470260982939593950939124385205000842042004909642247566586525822630564525429641495376943699071536193216105859233032082510513626115814575782943128046232110477415846852403411069245796481230014804163193656400694180378417663511706449894928353757727055557525919269020596825698784686179797706101926609782073850876686289981532020968109387745578485549123999577172467521378668893880184593201070111837217940282780270409940538719377882782853551713626283178989743420243437473635010808317961371072099227950162240360713598402127122454501216293542844997969267317919294912163905031760752254505041243125450496477857049171389293285924577854025680880860571845474429806298292189883204232411739253745410279462759894221807466238232976424177330058045406738306359045828228574824918984122768207628486565834137229368720917979306705814016813798881538824551323015137571816961377358671208687918013803756263432688056288226231174489723794402687388312744913576819005705638639716617825542217148089295958525842390133545167902972261516375189929026369744623060794431945369212318154557037703975288699437958363090996742017080105075534625962597904675793839321143629009329241826574775140345810287126337035592509182277268649551911627490968504537509448471573196634217787316851800990957536019772654041232555994368901340902692599873105738439717093695404607913319578457398915728646883999124656026837936356585388669731075304807051610347393628386215700919804011433350750716158957248434822209787242833063295864883609639605904011161770138160462383736488234435917708771967047435686296548414968828240900458448990924455437391047403844518786284800359615512707949857203883837700038521813337386068266730869630289029732919575938306684327853860369402037923171134595226483375869256082524109209917133489718124715267051295997645197460981743613644125421931218906597737803312591975862668779924104533664227491358512454831516952369045156359661915115610949511506264710384107667109698868544106997596731898542652961966586560885002087824533236801497100678034876373764476089146501683338517808154180850995826903442337299786771634389879602216824760713827415337810807477533578939830957187266186748352112324867737922513648485201985491060636894976306951688714655572394156059617487444083922971769409225181956655348105314079219357455374415012717818221228523046124317721683025119179903288437767124034057090497192686650914237492024000932702078793017918685043330592846838966630886233948116421415683667339276493135542652927656057062675167242987117395299571780066457179974044512095697266905917001449196229011180579427313565123046879159735817519727043857290197732418485957572722645904074868604761069120897411724139172065266212116906139659941406992709566141056831303058213540404662801696062459269585491767595165235212167761477173265599462355460120259067451902327037357778008051963522163778072563382964236134213664709685676014996520981362461941295357301019594763812586274833525371846786301428542719782988306337260034831763892320546379007787749808000329347692954189077612123417023750254607577721219000386527987068450147105564606666682448731241913964168233867218667525252526178141037217025356288786481634284672930900773137251314604671588918090726151541720181091005460948178765977810940109269767193124285589022379975079389399239470503089674638760882031710391712436077935321822348678812012798035755385429234119256351515570592472989304376717066590172677116408662554309859775581756489893831710176226899900777938140646402485936789173278939001048957770013646262464071907079679189908146426992524454387300543182429481477735496629514156642323935142792639128756986133614113570294442416298782947890488662351749468665727501320972212577451642239024464525127423697567014572886286609634807318682112259715835616921253226367445227196290171471960812599053264142805253129895375058397105223332885122288480217775170644829579180330182636341901434754630148947899486590374016816184235466884971391665622725710310316703755635916442273803969285683975236334762664164697744436513216243793365657272360424529212615620645680800667369598713748949174669852605827186129330685445099778548642484704901018088550592326241389757332169925928397810573985446834116368980534135012380410089623235336264208432230447743622135759962625388014911132959378555154465510034758856525990977994918765441296572054084182641652015937458601364629757515662935837879563589002229241902352817624099379053322010957207692231395779954850374949578547743101744967293374426794086979427465806214261839970609861348901213589900176614308457993756422845686210970823073996703672334319292511921905951359037274332080344776926482279411760529832275472569668279196620507664190470386711303969510089452603141134424467964136882944308224834921101870165620844867473698747262482308914651002863170661925696002596522156257222670089905029442604595698157993515904725793902455775335673457610839447446705319714069790158768550255791063282335410731444323764177653142623108093838623701345284155311831983210669292074896953655904594600993058613723412500522387071120922459470296127814639430489809984487848075215237686644812645515102726752433407425901558279992880212733607703757038643916324012006978653028073645533389392134231580227211252130754849148290179610412597892149983938947629450411301950285321927847205596862432666291132235206302547950416426747123974972528966112715855873774572367982783381601701805545903033074113918204545212419760676261145302174275718623410515934508427033753117058645922109894543588538439288075279048059415207743216179653720998576117418171829357773793452360885474826822874534603503218569833836308323386509146879923653546887769476750783052953070475966872314892517755585714688797612628152970044032263026847049561009400872450945518311161225215419001306569357461520946432009598588074431352049644756300603548229103537952029430040362377929486483446657666717830536815115829827134388385161999347174828713352433838344851473413608307242783130641443931101293685485017325915812330015481683931140499568780539254983606215617920151786303486629496416083057051666627942564602371031661037599084585709487976302034622391107013699385333113085584400854204100097916366004720977782216155608150599452639444568126039312848351456520287385437212101609947539068306797504188612166712149464609166472637409425818935740897513366891945497362355713784781225398640383471370971347554826726699708401677717438762505081018691730734910187767220829878596588059565763405944933559646932165765333310496217506096968634546705128227629702338873998767300697456266664868326754747889810644930780176440198176064535153198331636842085455814043692006685871729291794280612125967251852728393092808223909122845909666400458251460770668924440305689622403579717142333799030742480431814035561632013189521165443833229565800069906715552367119126243466980100827734070261655033990039179687607165047889942996952116678171772570635845280382047205449737766859367287445515582337052907653716321226615085066845223267920729868291712134773192711563877718291514588456143522149050420236236027880121652539163561506832874422700138701350695095617952741400135697720866306613171465116967079171525965992307244046309419524877824668635070367810286318045506949871270371604574382648228564292952973431983610168827187140101643163412560586136181264553244935124554576933360397577467897354243445326650880234243567689346651060233387249899582992792345961454135601110680696288841469357320001376588768332089862245995104685887025692797071445878803742301999727243452820546987081496193096809225574069264201994715519430371872656159500627937546695631150182966361309415063397939134115876454763463570017937565827592638288350371761174491402607462388323820646270665943067861682383924499446424229310587054929531436241048973295753889462861010866340143156489865143785691907624166666090535773902507195933089477635849267878946789463045606340904818827043728761404437172628786188474033521871955208881956553763315940628976063199020500490192463331003587467925557523302034632742660306067996284811063049881985544427307191958952025946912870773010277343869475812369628157346755961511887874354663892054444177295614792742437553945438667601896912524141320395601997768030935092403677719235643999964655284868885875407160822935895781321957578543531632325713202486356127670410699765788197573911306702171159615058371422324919512127572021510821582918449977493347059618054620811091475151907332998609863914078770109177093113117997807385571374530711953261495979709171841557768853773355768596128849028475584267101477694235031891541197173739485179353322237051095561616336269409809872639032885395169140131238121673840621772261790933863747974411068865803298079586983236149497926883091661161385147547347628962579967539908477625561043321115574652136023083759141986071248076114279057609719502693213382044846326764762929564981716277406401054935415190574427931286917079863954779376457407438030197746966851650707565440074173597468291165126271946094032096481010808338245717498411107224868274045716235957294113000872185529685658432247368147631750434667117028043059598951008970561961081687213301101697893267516656106099118853391800836053995668227481638445427546372628795198053546383364192553219806744254221505511822544826455429681870560083264543915502511519564824518309633601547374236647874128909697263671979003305716560638566177535970739129338473557795573167517522477481023878528680548124517843525241768519335233177482497545153728743888530289872659329085777541668237120670536476433361068556723508806979673935768475947556654381154262351122941887615844446959104219809101400120129677113663226509973123162735546024247446953950262146063686294306013691043843021857523656414643205576924186274850129829870107945175794086967975735671474636845260729703881345174046592727825551068102994544884573149351148370753143994328090629826435355457816337844462583053606763071482884767840589937118063752138658800312544030847405115048250529422547887645202519185380494486840485821163498094113080669594746184456189296030632097901923511422337040581220857364430509228964633538511269001166587733248549079651555085185942249062561388583977620663616968998639928141644918749688873810700919902872375791555015046130091653422906221929245017236249623673365346418473289927358582366884046950807325598630287612652686112016939942730897948660495345800061668713138102053158618373151233567054698321726469110691355030711454735247211725743105747460652988285206801617701905161537244525663856052175800067722839056914919126735007960692907525629692734677820789012212893551629157797222985302935747199663863156861761762243243475499365076423090307293105940480917183966739026195745467316698643815664961881356903175261661369924108378525213623597649037636745438548299138051482899844415126120660475211622649489458747120337030572666957739319598102344139900723877493049277098212280176149210459461351998049505919341933481403478006107102587679849760838005684137637718886184526774000180661014247744831056858808275679488317805452280778281212633556843784674850707104238339047460646944527725527544092304629454939850963218670730535946041590300791219243866449256949147525456010637167346656640350097815167012336355572341486183209573388656582438404291143978840033927008073710275342719508526826605041836612704508104344994132524747399790798281840413430359917216894314734382561454116495572668051103060332263006230189311205692851620509622098071361526627639222895506428357447012105827554791854028204367171521808440588163109733994967403941627433705768450845606109630457912589203765448715468404758088127165844062683767331778856740003154649410558244567353875953319790939642424401440018393958133569223454539834729021546757747572490018306082110951058067276171858967667262905136080527838503699588618866651771338262638482020833112451975582687703885842889171228465665311728978608453723175371260567045841710339609106240623627424667782239706850620735389472855212640848344937707553832929227947631511209389510443788235824754070243022773139918968400649093062867215269623045286333565850986728835201466823055008206474601125747722622340449720294122759135988255930218962824825648045398029398434899541691047757617119214695556819844952160419428327592075976156207896947499027455343915774400313225389657393135973437869915186281028139046056009817954816591629799874024201575553745137725371232382681276511295683718001809606264849553290178545538515438391943647192399097660799098077112022912588362971132111900487488070151793669125897331370523565127212410142951571895587465877204014988592101881477976636907892935405970853649893786789418787134483638725256077616045908883536251664685732783488035231129434407744490896861823066357873391316105397537552633822239545914145291185742041269850250941036373470658365462161005013153252156199325824502249582887131272398382318872062844161825268560741836583675661348677246480386422819339837169515698525980184136164468491659788923518027196205385946080247288524710603536157626871608339474046876055864019533426226366966728712933235386290213443198876324878354533353438183933884860250093451808672373905128261647270371767824462415625064778547356197308104472680911491312446863895956915495707546850299414267634892874701061859488074904253820025580913572044379420957751472332182772034128846810418071907584999328381864681835760254243997104758409015924966783150753433706008704499377013939145498330225480474867847557086580363023518335570706462104284166664828776119537018507301201851231645399184061191302790464912308635638270819197915956898348712965729691535499264879003714963574201756938141144490891767380250724810944666559504720839113589234783865904922868070296438367425054301708859285551317823477121277584174439897542913811542248999430112610938845982571876090927140750123786074617818892554561522098988577162532195267542313002140535476682740126736045276171099303244226090895554360202244261152344886935434489880783439926349015117860772098516351642353624101738989991552051691343678514608645504499469621753009019777715182568899670170579913448227114454882498193031149154995825027475523486410380560837192625069344990712362105107430090236278687417034236843443196726049673091027402564208647962490945178230608819836779905569494528791000291475013817053386500528589071272952311564405993848437723777359759196024254370266798709441961650448379540223313524647778538902466020951104556642114845947931194473652822331578413353361391423704083590378305640925002466683494308025817656886699525153148357865745090982429631823369114370711937305179891349037094516442087300765174547939990981175470576042115942838307592193848871406117618034013985572786859618012057966628283690389478527236745002119262434361653473612789922199038064588098753316794091477757375800505773605934267695923439076028298302638412426157986867057955665109399657770470035530486671175065213682150388217618868550284251848825060837291188533317855697963733795110495057928100595321818949211639789715046765637879694684424185055501542975246926947254971402633955369992768169981952012948230957278938420422551400623959349282104509530966453210703945724761164174051961729269974931559440121306994262694905070054938755264453491627015346697003601789999173651786153529533290562127392799752318463836672347692853189228426321006348310757665453178604610681830964124445065183714384184485199993326039594429728739605208198260826553738734495493430648975480439214853491578806021507546471569471942810820013635356136021857462533132419892824326370098488716309600694950668151464258271363004224135780183476387423588582523978032230423456095404421113356117626286494205274479018664946728728018083445618944172380848152094206548458076907177335626902560206927250104048320103553363251301032689968818157087155125826325239993855269746301440656496461786179511195525450649775551095740379590956905972730950975025016665779763561371511236323053584146090203764402893546137589855136926922394053400406482074996241680203750944369313177521937450121668605014141034880869682533714420436040037176681079919887009852617412713517950372337781577246948155330507709924587848476110558325127689545000549700551459969746499283294185348287551730807789278962011583016459286039577228109781990991352300928281871663130526888440599352882586453841266144429428232049546362324669200405264437256031140400292284328625740169154935753281872548906718446996929529546499670870530019499627737497147776862067410252152685668971391870788987892894767850805467573405884699970305494466802723559576067092093274751887004676668065868058330644678107724827710726104792827864327773727608107807510095645585305126239903664341207878510782564265903842425712698517518307823384138132683935133499973602286371566617921505819031666068670933767421782923296789197287960697982478232505709607565721277331816195691891282434268414135582804774462510698781860875999378202217888124692301024539379320885821362116904635017945828694921345083650374983461924222097936375025870608289362587775876365258223585288693259685384903998860482529607155533181383788340751828248569447756171231267389808572372643823607259421550800195822562320968782942846914600359354567667886375440997759309988151036109105369557914087591179363149097482634353196921480796121781333899458927493003147813466811042001966435967402040701745635050046024895830421005666176487927898877096784233088624082030935778439603045871673430144748504612556899330991199406056289333261013344506832722248118873816901393830107063760545043973158204559823475712931285173989625893829983287977999115164222900320649681690885183932994429371328242669701487520191508911183592985162902541865963197030930181713607948644207841237447666846465362663051827073652961016741730235682698157581612545350283714690914493943951826453020946332277928988403948290037117243273328564250103674773420961834357076405201251201210835243151478624576545562783584043724842539266602450990119619563417803190125585423169395590853803585510957455363001031756692761202075244349760801478939028339332774381073499685740505675088345382038719452164600109323444720648974865404884742265531261121744207797137220836885511861721901576614580322884601739981046658147068581983202453090295896907837504019055978871447876995525508180055494970287446920128804814952289581763132971674353414446919665749187524391769070624061712719406355787956549978806309967199071727172530285761014692652539391247835995192626362539410503138718238869296246321092654978274254184217128581661014066650199798970244066017821535356656492159851070962909805138497712231743774040402333582506396822659959963946701276157995457142805458368458326910267454767604794378760951760142689842354723525072752709463124933915476459800285024699904522766076711514940415619851603877485230985881875369988512668005772823516350637905149017847378333828569119801363760968724554804862799749042637726384955905363714427226919728317098369591638228132177228347398857383206342863354240127612703113890280502451337654302429587744803711514196653132649384464386171085407453927245343426761531770228611789462960121860252156459419866445653971883075383226992219273207308208027482153094458008412399581906719297443748689759415913302786964517921990611865233326650807045509257391784918199015178414058973567376015187074699769481406657054664645896636307452567192199712395780146640210185591261490680926261855535607892748222313425729595317033214111273865510085148938209534723863111336957963280235659026976859721656267651860308329797301172096513882093827692499644198333397774565571443366701255872962625139125920685966392500870328546525781997031800428208297445672225634536699313982932156586689973629569087481524072030655542412918729336698300822518688389862534993584977294455281865125762546413871961264536061070707446896229698558022172962794649426989652580262814427384566064976298657020046046611488071162391000258818810182973500928530164183913473281622077315527265350938180446846138066853194167769888413713750915441505520539740431342436921998768997511276244162595279482564971956683875510802690144078213900433422198220341633434285292354203003504463101120583482676854283626122485961879830702289747719162125919469049816319464775465263526772490166937717682410608262418935998404311340151707557653746783380973917339590792608429378046440205319616139877831275506547716085247242238946241810232591695386093171708762103740666951827166789156256663709402615234244842106994124035291325637116825526618536886008711597380802011870089098309165585192487714040580685938314040473357322376493172225783359328421063530973905898864459430462024720957205420726515491154862039095404540674596661287150621430675383519482485229885103552729246643115953967821145268985835571985508136770239879789035706262447112206418619412230217987518153882750176342712208799376775784360026001975779657050512135311187448842334601014823679293963033946656439660003140186400132010329481078511726327290738357438084185209749106865944719332875051188759315650133242660660539383189346391069324201430453719567460752485271918511769128767198160065171352373926808952782326670765898693822178942519712411365239446959868366917202367081880970796181410555268995041109308788678787863587832313332306803369586587888335290375747445780612155581590657726594372725945860132749066479469340626859064493038657772006938474881070601327403389631696754081259853640258840309910964378855062141278620174316182257601003749955400081495633910288504144927799854700626211736895210710234504437726361510143338264446447934393210025873270512296329770310825670699959966638159467363658680450859985392515976762672649032812425894057611494843495032176905939432904618666177214642671085684914779104206926763239075519402258515632128899664408272938190096241755450412405113005261414167146839487345391350079120387923912326784814789869380151225529630137055433063315547324530198954033248381721774052859645077169487556035131694369614541598887825244160720362414871332564867477443629155458902463205863974410467131622695200392397183121788791312659993544568851715896225595513539313072245622513773717135570711354985412615505998933724699126771133436116376891377923979716208979766842753087963859960730350758177912117788122306852478025254722743325598191787175187098564461258842286659230814775132673403062130353592908377366705998354865694770203914648282543756840899053007668007078720856681561503587465034642887289957209917473115304296736475436430498577689701806405426681692207176547446478794653653339223893057273149908885421079349291520042497515788325529226264100544073236936021530983002584874923457047420682528344266927279412367191591047761491698140448557142791978871477668407838809618499618684205860437721154963374134907221378175189569456751033986866113325465112800516002361613799162417829256905434158614888137156932811839489082329105903266086886950190330727298005432487666063379161128382252913552317579030330891995816596300927916174319496154040126110084732621408344130369190803953037788627810597134060799451835277866624322633853717097844359345339580700966155359320598448211442827781958337050605406227874402951958756940799728079673661755881791909622005932229178583324791588684547292330280373008546952853158994030143959018741663671389296687566717563218742121754982463384679765508243972013186628524117932031291766511011909434203339460740197665043584959594487060824093936149894469575123187038046247054611020031030154848808103602502821325001670527425773867164453492656008881979743045595316891227277746601509640540571477429572815630013716141137319709946287381069702880449046369121287541343141632996392984868543762152268404719403563171035538224796373630104280866381540923525279044903363803141417410336361515664502182596306269214193930342454646208638476122052996198683819344319568276497256755811028957420303736576831298432194486138476207983927902869264865366799088691511684034084486948476348863771548792009771440917142284087077643519551357584783217126259219717739740219735768513355174024717319158739903076373147588921017718849766317390065645361103584900955547051315235970405198491127285037745112397342382863604196927340418319895543406840734109179787562814699204233581620132542601488040726487534683871139167857920829426080582347482205320652931277887958056742671365830929073500168675780179741349450004970458678892528749709026329878508379556875926153189337919718642289813660318715123349505659642093595082384444369456872239464907234969216186870253014565625986835974527494151617722517498114078921481669271881054534183153654150513658798016183860941213170191667375360826844623882790264665922719955283960735836389978142101653958956902922711151653102775336086377190517036274281107312505241600194365826386121182368435646910612115258551539065739843950863376206374318992606202083312634915831744624524538195604723148220303076825796579042766790724310966826447308323392452725090304287524105245146525800656342347638434953171616100754512878029057477750438505240946971576368651563978790331860210410159910794768062486241047566578225573730997877378918037685695042764859965430309284544884447346056728650155890922295021051854093881358891698549736427065786228651895387594614226829302180020595476504769636002304385124737250420223060847468876893572951932403582652367943035773869512483879734878036615429720569448659793186007210900608111872180254325918859200967535669671831351265552120868781172722637861852034005671694661683538879504558345081190343036573002604955683637034051469220776822989009248243883914221243501221139297703272823680630131614763240701770971630804756266272139428917000101025415091719762997841691641127989758034917844275671602959360252081104364464111044927838530152915352524763110265416641084376502936085465446291578487450424166849757148139815923480174610259357293325004714654969884750606429231028114022842030041796453346084310764999516453596449069759241470946996191687367436592880912552455111963374072341134161348114688643088651687311159891850636196286909131717871048719340438122592816902867842774785902944848678651418282160322703678757810767064192480317654612771348559595892780432223121887220247725834385896477877854232523367457150549044947342632334858278315198922236688541857140223062533154315570918410497456204821868517664042711726251347684338912172439804319147403292435508141729011256290919593364786139763217250102448292886914563251038556802702523106284883462480550767056310428215750959069129592574236146070223743012932043051524744222818989759327374926661871836447681259125767616824408983162601685017762560216802202477951495003133419456889035280207523298485016913129044588536976654409293661183260992401245094834987250762561319316392330137341297952288402152949956962669910122901939561079649657258598122314192704782821371083138758009404543786487574047175890128271996127949318908561215811102400239159364714333461429106550095974971821918683786701552605004345034913005773815261522633272067981330112248382333958714598722910377871833451386232237997309211967571576016171647816374654222427825439461743263930511139019014902081527205940522365199541542357653086273975398919323090140297952835339110614389620124224469068203984491569774075371491514192544605582099184651828850629547475111436357304037404080053463825463877022955315731087768929366584270333523336611588282206474193711345493744358260943613774751748480488632135669315792741429566118703915452739191267879784658506217551551193521925850854078619825281592779506539104972116392038537593336709425152121363322993091512917557497360955310043174966843727113397452941080470653658002404141829946267430309149088767617857976463696961985460662152232124855963441945049351885198589424572845824433225121714156300207128632743773461796901023570298174803452727464945117238109072138614167728734516591693203371985927747088149050938000635179609418662551912094130934696768232552175809778155535417959851544249280928932615870580862806071628273135439844195977993698326297050709058930839439026509918773067480528003980418291180524133916118515192030962065727521933889709979697691312626928198436592587805625342267062039521723853267597944156285790309221013586640564456035584017524254728551695400648708298147393442890942377923100425583040162778813430411988683221156804709460326828375476264701301261102040465268146020907396729686807823944552569041095432190213195237405290541401399049134888934805555402343328449634157078230377724033928722811631595841940782758929706482458617300368852389605791605176768120215373708071460502661187334145084118756454722997154151628087525294274395099599889203275661043194037103607704783000636785059613374587826676674272460411314947328792770881097838288564005796033491655167704879519583842087278039605674579140309770977083752156640285337808212507273270733686208848920004251217410231420194496466088411515963225006195901573715576951932514505070652597518012065861750796681395249104669801669176739961080436183192621286613651720839010973650018122615562707112522951188713697748630050322798085359948962676752030563456610777989690480209916478103845559888892772619376221742863637725553610798717917803044992044617578528102320653645772130895843384446338564956975470677743501839939401328338554322962413525657013170526985284388364298189054499972547884843511038790848005711464184327757883459205182893595884550131484938912439304045489973235104587290268265881607065711957628130820288930195579728309016300640169874242851005620258553954374720659181698723946885920120600242109330223240609875513396547982203576187198791361445812925819466714197086787835811826070628995801445439279589930452897132700701092847414535534627425087216723727095471958536638235580807654404303179810040626616777051861737060616225608065654205585192464015226221498818361421985208606757242015146276207154063636361870873306627702804925234916386946305696192832517604518979741994551174186797643412176612297920343627675681112823331041222183461859265162910363091348362771353093667123103130101383357656186963499239391052037867992325505171102875990236846912433169304780159946206482820659783421654310052136867823054411936008631057426851540994242478838849938297731539175031856734457163558241876274321903781622954808227800872023708417905450262016757298870271481134839485269659384276110544951034103593161108770393818986486635884689133099408230935098791837280460641506430022426408015736977504306048264420717328066191571466123847267227036611066101623432248289351432207882909493886313701039467572726510332276734185421860079586886256757564777771800814135193550037628127751075767455508872497309200662570802182344342059345927579754552546169443016883482471397156639543186739461207734819446862695180663324457206426222161762678084085392126087727136689128534454116161214689055261389114316525174521449440745449531993489401237908494835868195939242308287817214596543684419156459457788324405574853546737824004457871113725591330793662409420611952861958127959582681728804320580711148552997127479494335941190301599895094453746428465188707183195599015867912562014616500950073615946983774642300508676678105425535636523128231186802741591847417560338379019519935069150312689838500289089366441429484982447342127681550263184467482866240757053854690228331467876529902441680551415642392363148689446453336281638274405677387133799047026899716316004311426896847078832863723555357526441329789673627886665929531770445132095171103336579205283805387549168159684621319120836425014450345447251091155373513718771555291216567683317346168855189144041749165638458609470095452274562996808168619456871251313566423374748250975117117204399408880639993280713413028500622714540043364661808184444288471539522890406035148241090883649642783871537015235859833324071822696412186363048427608125716183212173466139747936739077725708967106479010544369502928329297448689585454276752746790619161028734864909018274291606934365157700407821124350534871870263786312375058574379723552741212551984767778455841772026942358481075481129215273546364720613602106015499316866009950775271170733570458626375437636776869939697684410211540136428911545893687233187759724251896704581187363517477256291547477883878569695036107938422370818381581089561302678186650906674668211186552179747913658584978693954343910814351092995095644831908813793218667600163743310669746344011994480004112873181194163195495104047952658020835072207631925781893057909389083301893720079837083130147776987150697784763119079632130551469029911445046787013783034543652952371347804521620125336156297733031146373030309904733596671349689906648644047103212543554711158015546055532496144179752607731266831239339597503549850250453519364182168036597807927338304821163229727952072950974714332190056120081721915502521509766978486256538289814979204025851897831037034184545697741027449859432545992668168827931634162765166856379926553357393027956558364305921669031508136236343673541798888506068930227427469602036479075461967517506708114493786178303303774003690066280927079251732452829749007767987870110781615722808176240249486828848374366569905260805021318771990039771650296129028528226553124447398675440962705563810025387126852411719764790165652088540218936902845846631421402524751944831060912812252824255195804523273884037097235938000194407337378872080700480397443733793490445649612874329550783354477520586177976181327206449918260877207118555395686370274925058861347187936664550626912441187131647557065547610895151930650476991695881146099062544182494884217400986425435580425054102967974833480194700171511025472364140227563658829129662142619763273288541654245344020739226705058739243914172127606253097974727593951907461442672856524243909389230705072012348506412604978964833838656899017977008160139249757393543118698633457447381481898049079379061043158347407391702949556988536360078192807257998394899567616173907743012359743205265919385574602269172714544554789061057988854341408463086959110718595001861164240041307520979294865546469651375215860586047681314330381332402756816011240544623284850135748669392368504636862531744934698914414574304316158478795333149763385771403901996878294931652261393849327497168131800450513205676585248236014800572521696653013638091760893688600306137601469413019357986448932541607156221082546580914769891739430386292785562254512701222807111540153100541360085860864172454623776116535968239593524145413165828496399889630641641588196960020329232790758969409754797169962012551077693263553737313554142639755816328936185933669733502723970528944835698868891883287508286561389092683104906646093407666112066884012242233375426101438606801977650766560778202428677068170357343424669687241331055520083464906790011374236233107671744665939295281587395036761054639672698033316481544264024726895907629212814462592851172620371103080021321802051133406183428503979623112904401122940125602306199029659186780410571619364054480844755424430027741319071458671796750093960518546503114751703665064153899042484738053413343931941305336326308419457160979315729641616494185697302057719156064753578001342332239949268279047832241798343539214294578331536371432931965539174204843345998813507809320562491205743903077465579545172201339916547812706674267178227194944846134516746964381489143095953331388758321194515340277625907911235893357044634224006147395877735746639812098820789847364548477664171000739282981457912607186400482072451032833148260032537572395231479790020501367616403694379660733642418091234217396738499179045967188012307554896506556443368331161998485921530394616008810218975216956836315659004855031679086765355125778025051035830577063024086079535303808553485205262900512349362389178202068395369766633539831000466987815930026887966303745946823638988448874701535980398909592080455862007800865276640906146134149461834609876383199172341226180016960423733376712317106427647429935275270277696144543462982989367707782051094148976417601569187785973082729205185979138244999350420446474542866375494910965561175220704445740214444509591656526284975593540473033487203630189158478577777432242604733714029036792062881540418295791724795280756132766706410538105813861664969070735351396525809032637378121220771271994418637705713125571404787912609225507984009528506825885956721241600430441757684904938738783012410835243592627938218244053322796232107188550681908706887466878051072597582236691803692265851910793584598522677266871765708037475136190392702109072569251841126547061677219457114145046652224279960526079322649391498744679118397555085002525483505075912866084453126070769627969351500598501869931225330472443943426517791430175747521377611748141552957392897241578456168078250067497077871894057591517797319940636752068343054270229107537330992965536657105463865472266610250221406875548019645926598582144472418931778838095443989599055064197053280635368763877003604234284288023824508912510802041601844157602510310372744148441862579352394242552290103315900001383170753086075721751149944463201258030334255619053342673039220637442625116662975819364382419942562588356676015348992052649623081128831787820763915115068429490342614242586957459426871145467544574323832713507348500796694603287768892562188903760996456755519788551512064257456236284530358691721030376727779246382250039001983763527694301177235091119592910060886880610737162122706194340390376491262112736370021421325402800565694866102491200566843222285506733806199412874150640775768389647318795000661847847405961422512203054983591225415509123726458059730208695053707854101611598254306698489381074252772320875976296568014609141441814337534445304695822545424804560090021593856595240428708131918948024087715009000793582112487791519553819337240079094772166515200132457660184864183295716498775378637957725587907643129958140030720557395471280954034939763132268339399974424916470478377083844152681504443144581337173989912948775810489315047021857817901310429584450469162568188820601352628477291087277476367100677338947091588947766970684651453112889060645737547568691216813004993872614322894192071909408860808440851391685371703596228645890427415663067780000402510764852571439931813319994459812275591426842461140326314159414835488129855289195462020666116932776641443530055700341985170602386075278079160706991934189352565001618259203888288673774776444227253115732680176767764723040925583722393384400938073800960218868402911328933957157364283679166008126649939436362644766294290518625601017730210032814816160988812005052629775146160855499412952850706566437302189196748354487075053928660397993589975188941507338985271070262083054460867946807894651251781023720759300226365465234913087905922900695381707262393596898564254547187948490022029375023527783861144993992919662804938743869454117479743363271559117393216150901453129126964309671796813033732637896781735275454383110908491044374420081108967540210863614498911624818033766377960236226094330972739167024803515286932467026129538681010956998815813338925414116784089491278317564380312689168982068476675880635711686357130449069554703482494159576808272019962008472261182729334333793883876139503002703837947344824801022859108629734052079220350196648684835953190200781878766125778444964084001242899988689463452179931510595329789253328068973942453886958460700646807943736379549330866446489480873588674498525100532860896020008637324251417514755201733072719656467605349029880540489596553290951095804459217826620466373288024306619454652266471263018751474132440600974114642843274756137997743273964079699736230554138949518693992056211108465280961193659329870769725142102953397288604937588270093762883742278548454479461679488144134536050118887173696065248734097775389383610966282252928610313833448408786401154744233161175506806417878981344010444354961725368026507439348656345426630321182098273447092761527125435482130924663047121049511046805545642659037235092293270317808980655270294140033086249926810541519625358895342418966273661576360283474544530975419780652134262649653574524633412723372577668984074536938684981026336781068804440360511593054668675361805289684066736490304698694143181748994382272923020693245772585887571650689006008949905972146458099432408487312771709078233170595222951148644800537349983316483621745094262498065383808919258714187240049848375562943799060278977982130261332590520693575238994288896845972928821305148956352858069351581579599143056706421976476308088551975061156330124759282786524327880639386443320143232489771547800410293177683899124870723208414583570387404096584356053786210469219016684030168841466384215334622152725008313843004219356295859096635290680340497930036968409489507218469477874240433018529788042601042570265880516426254433963721073048614561116199631087847339172821718943261367061070976474793537966523457889170986815370759467969994938754359190593745983638565156085274658591223487284361675558196320857526868679361362992316199566730138684931102290695411573794182961388101101006360755570353326973060166154394585646418445858550321217030358168767163314589083445966627965971001442120483716899061790991001497680526859375246545496975956514070489958530529212591524813471998338272913364036045239543053676615176512207604399264260545794503999197677675810536744098316082448099338929965845372272005120706257726323754713216110220379887953268888847281654154271220874794102687232268327196227373963652295401099988408965625852709962474065764696400585792700857643165347397751091647704425981428031445172157591731394682585861581710667658370215620122576990997133916300038129494811161611348044238342416214169483256349574275522585218769384708014372714353707526767445868491908321259341340262543416731890891274630556090922889579541596656134016100081401627309432136894875366400879420347035003543397240153274726900747767713489789124669290571899109731293722605628608218607828928596604794205980398041011541917949525648115445798131929073920000313289043641238949008539987602978717923508307180361744381003580456251350007232307535535301179029233814131984576830800450670791248713067353299360711307335994456283069238152341571467373808319689589998250536028887174690873310856669636467133550253047414503604643222892612559012628085289193391141586143480284049944159321586358113923186759852445252716747804788878017194063457324001027227957991679453915129756007817583740813684235740432720836380375246574964595324675680424367588110405464860994812983138451449653507781101828236196633544230316572074392241404461283736201644338534560773133740946925678265227112403267785767382722829153087142022619069843374833439031217262126659867605940148375719669338516142696310682387093657664873527535236316007432610925866890351309823445029004895120491591567562347787815469251985838501547573766662142707704083799014488107038129142162901865966547556055956489918381409188196513681791042088215063027835852498946665246342670638769881631944276312578585004956168046281047554434281049863405090903452085827824427296832274916982772050545209168560931009000031699888207627726689130801285772698666563400826438341637180323297008062709494503170498655700687256373905857709192907843165309071277991844067514111043340332507058835930338519550086874222519987153220073483408533169126623214473143932918315015691656091587980453891364181437006169462577538950519429309519412089252935313714515685096873786388434324714170128556512940608236414615111583448518335321883794483058571440944925733413675478156257543567434246596428590382504554000055644331818932883863233418316438710922970756071962305483241782574493149251258583157168813234226266400200437429328346535588057451912844405492300135800561627707287875136661879096158354054042381246318049344937829493799415598933041118781692696190130015581516012258748177011179661270012075268796730668510417992732150896605782495369904887503228483362755744019361994445292775403637804033542208052436974755940925443354316109683197068763303709476509179735171311856951650186316911332959790715899387068693193089435185182600200188694325050222695448453832294320688409879280187650867242342969897770199642732944815041949073705668394357027924619775053187905689951854165059491626382034188245355040948722769419145978253276606390619309089604680739590110039995289879722759754837344145771673671119464874728810924123399238586987673874280844012545877646929299467149842695755854122394599192962810358303980500780105758474807442881826635400774156767829740065715957249025758675804213738841291685179012989480852044312494194490758322793978756045044768559768957721813641543540996694780686819433148016041317033659534494844601640373618753276322793844396707016474708016955571633136785644863200520222959954277346753310504640341464881502485375543802639864933774610778231259923581423940165732080013626161582011201556951164337468744514554825466579008447056206896582819102242855543721526527609276940410003712144040973678939984350933113027511865439646072464123678194466744447276007978368027522911110696901680070479631219024615401325986850509242236840053410295524363719217720411736299292614552950444913895601837039834244437871667605040523028406333903918421803333336801070675882121302109339831538478342034686642464352899648801846221052664806117097023804194652748019525289429832454324293545239736857694100169665610650637032628229065172283627485490244793424189552748847298154427030252161613594218820247845411121524086264178219514958782844613135169492629652737868820760936660086966767387077143924522182546682243148111792657758498299053420841703958678416100535688213714033964025213948216275606277688149844274072607563230481142980982544715715120178303281730429481416960049632031494905423232890739606773303840026394139294296986375359750248557764210391640225031091177132200262949381315743556536302642446076856096460279608278064028100315970935948585591351057810136804114511238039426026079505123902138522299659602969782995373707694484315832250989430815497374605315914614415679993791146465546868525165233659974851794215142564071719241600156694421439106944080632487660786200820425842493421180474676194457847013531454125749048840150904608781602215603057079896001325910762169298714695343423202307302957326567454657618711916237405655258217274915639955916314824209968012029061859971985791729484071808818225290748252499429698644476477366877523757580120530749712165412986704651216611265463438123313118302279737976019982503276984258236819133165678066309771115321135358954858036691650312343839321847687701106386957290020427719300588069261340060114104236190471114090712474749053914644831669787413029927641055242233972353243311502672146716000240097739556447333900427816824338119105739917146772288355496557861549180172333667377896004671419785504916963631618703666015602927887209168301367342034780455644949800190327819893943055261582705853932331681009403736568441061942904822289124997856548664812757190893160084740661791271950619041231855006857414796205141963660674682186380714690366178793838836285155947682981024071684622405557762592388069413685808857063288189314251502515904275479228104195413547621528623988044214546341102380334064008266204036213254688590247410248984369904613062598971182996651609523594002706016446456484521312910143601261478766853092701029125795952460614542425753456252665797805453583026287802424185683498102091552204673765992380744632179894535051453667683851347002952904253876605541384204233038790545797708298333348712832557168020134912030176677539337065167526750725656487358733757470253899789723647575353992709180606133258753640972290038760373866875248974096316066838777847670799923317791268831562776296141892830611265936401137753961118228805412415050113182362053917473891576388273355705919838336323914309289923344903461101585499690234442217635554266624966857678520075922803132391283786485307646227832576866842926067673143680869646748190965636069474892533932134202548684573511251030336690491348219426889895960866076435413317386128975963160105739806474663753166706576004957661662082111752230684501386176806255060088793717833538664537251937318618531742999667735901366964835398429956446134047089671674728738843837531779957401583973026348632233361870277796689049155150422955596051871205453284244820528959197296663028670851415634319511045212323206252121456164580533345724618253614014914989920662306270767681138850974039004294388265285663977704636728027508346754445972167876404992526586708300957612928459092839911397741345944015784949699789520055337422243218474173931971832418495293153573257973018109680136081518390251195744356307630375206956541260711958291700376755466652711141341013145878975335877045472794163272397791684274950815591697973716651539454947771411273350383462933454551666889472668011410167299321985087731939525316006113969410293375335380252491519142857429190107968224765751411519571700140139949084430469428362392241873854842896743885106427804029206583800040680263808338516347815858883921467291178666497076748812538316212062648938772028441559108185914471895555318057883956814082831311934038033205635914896852617442528942246713848074633884780685480446167024307244299764147642652443835256056206437628128589075077764706431720726247703118650804769389580407096762633156902957992360757428200168475734858588030510926775140157282102699980786074815407088943797964960343188639005066754510389065828295674827195939089742787813615970924614527385068825303542259755569946464505102499939302880787280526519109877732583251454733509622958515757433709214984522546342677303706408370092279491589678810939282996369531712044127105057793815507590185355165658528851924315561696341565680614690696635257761219896470376601703324402206315974422368769876920651252418055283244024086955799169674224998149261479456450820011753143753988027850761729716626321900232432557600626909676483645009592247633973367875554422474907503316438366554477967971767759094628318404610288935045705976612322361869484230372956061955672043947159608511593000902097254857203491632216250952211979605507503327471849245647790282277021239799777291727219577456173870937233562771417704741597881734344393597059275444259233792980886826562540720796560193527991504399013141321922042437822104232116813390161009032623605620703949627446733594176630966804972351277867756427180850688499054232950836013586420009151028292220664685642576452733801374987442043366389916191702016957235535974279444443597480101241741053537916906586285226089816301255924854395110964484867317076957434984104260671239917658623477444922927008147558322704889815876026450618225873404262938129853857473530408627707225029840531084734976665854123107274465756966580396971031931790474539441036290167626993316655306576564992759911324079914927297440271780423607357563929637881476552614564867824396126724606435386834859990079193464487762403254482653331296873941676257284808849413117321283037452769983265036326725640516976441072792482032118048723330864129019693067829075847886603886928841309661350058531375344350451898514630317927620853422572032054819887784115941752931090007016635250246395828382495992206258949858733923263586230988022067258820052458023441845364955017779540627906769360781753820721102858503882594362596285360425785835748525117726631535220932858085080678306147006603516027988366413734147487363128640579629154972853941539647994543231764546403317038613628733454446356122637031505382503657442886473364623834440009403951372255839827955288166193278779952186520114840405867345098145671681536127094176273307243943207228987753907750567922349754755457604758625084257500396281881414128671728341761600243203637826028924556286800585844753056212261595606568997229447746814769038144846409765486429669540529419901758568057135734117623456398504364786007017074802778249664447582669394710111274785686756033407642044865293388104561731893560550194525713732641147097198164430677522476921836450483900973418325270867438048888053372201101096418047560139100051933363815998763295244931696028632553821977039670188242715142673972021869320240080547439886071646203559569590636259467949850863707144112724818021154186689616676098176896365835754903704610839876794297208286514312821623438501245140368252430512389108682591059992755560698029035825813357567615814821545208951929865932572985181934937607014989167920923501736013834715066281585683159867647350319612660863667528731448060166688487531834890240965804990510689702254907641483446976347306947463860305885387188078110296626874267775901004855306239671109235903780574808296570525207367363828537675134269756655061959772779150023955564573231457302299245031312993267357103075528705033795049811614199799086299477349728694661698067892935067042729485167453973558349113227364923227013526322734506167454928667238463861584001439238717787454513548983186749123467268315588560343937855721270311320242101545203563742864538620951111913935024597062767097042489723364413965969276084188279280631821496698667186908119821124334422484761887040332441205443402681473703090424736932541737844495946131991879513440563149645961062467291456588053880410056737886765784233905195530409137428021653547907418905097213827323615192495191935287094475800136966370644259236389649261894025217512058293858930468268467754195744043334592921087945456751337594636992354116352988167053839533307640026450637538299125591677563289452700195517415388590738862638346633264875655946521088392327818776486600348631069336273864895015238685668760070520911036347166825285185819575602598769040393713711329818720056017881834556551162032547052750590767776125341645925437292905600012180293265165997388535136043649033576149154095487951107091946228792171688376662302409030980293331087004263283860964948518631782474738945276025870132736903526966196491151039790423382189121856480577464999124150138181140131530375287987804620676531860725351230815957092550245061514381776129481279722601230211037280141350804720005226946226386622471629980303086478000565502547018599913741630777839329563840140216081603537259908344700747785736564560755149181671339650450027784597363003453166537898387272142344781554813101876266749535767251777170316491598470874917467012684695940678218211798313175850981161477868776818839194113017316852243097259780292264048296079432026794125347495034792760641317909341704698787084163892371711070730254532285630513106922320461600776757938099169051722883398714310085324956364985257557898391919045978506968744472474554182990317182183647626665136266152620711285510953130655172610931386336100000433934303213480837586203749306329123998175585546156038263542047241075186551762048594223138221911258440092291435600151916750809885366369933463039909413856861447467701389034072849109432660407229691484721932968484721048477153858338506172027046709368046797085188085535782813447158626499519296033391602386109238209192372327476332214260615339147594669120097996961406353784640380882403985006178727259796255430708664738722802114179219323343778026262313277937652314145985519066563090711307890575381374311862698096031136679721397099841939497565522770423041415187636546438641348818703136221525201405501832041692593272441451529044071012087687089251415433651301372014494989094265854522171343633659883289918354125675773611373715933303677333073657474951053103423484265280774005820461192570251679867044494237154201165209219174276018917739685892807460210958128118923313079773727003178765000492071970009449093630856376704064548118590047946866344921483388516379496792885818303271732570136518453101070926812941428978258374596420066857080712349978319779115291718054304615287805930787206446540185892657856258680047482394755500643451293056199934870585295643090981658638679398161845237797013740745896534156048112451453847729554287137540836331986927849906379785435850392445102671194217052911919117910170062115501695332013743477964433055259778211642511220386007506219486552835045363782163488320060317796852104000929807958984288367032471322741700973544155192167754020000341862952204345573988438601002909688100040194948443143805866891782391871251448457561782602729373532229833601480360297900174770105657984276249163028110750851732908948656530618106251943305595628875965225781675215554006677868101552461462689077157128149298030005524429603342819966643968094268267158751884734487212058834182456278251996793562580485578518925257689436197759784627342187343452919677895768303240808120366332436614878066422974548772134399781474989234925826366797803484727529995617048160393572639989760128511123995144956359247668918777042529542584227337379369482788375079496887744183251439882288942851103735697468727219296554131107800541918293862185228608139922536250251312365462611939520084783825821142042625247013877878510183816399076614048645046460385564594261241999551636134727320395280271845106594194868378698191999463720163406317133092970492063447530480713604619864075855743579108620926365389259418299673590653129705070192361736601949630902705043755033192049120272938559014458435207076769328304536831309886211408710454888702076673903818608487882487511052455680958779922370382966960264765203705362293505911159993682135878324938005638538947843554049278774856342621146568009735162815639162879020717578802962520216852840622155493285100617462656609770181764944952128223967838523994330725389510456524700379197762323405222023312377803019301914992235849116640005944195354333981304499987216200794768520950773782030007102399884890517149056569761384901158253446710838304307794043009444618292592801078242340524750063863261364536498030929070175526137194186432657076483482315384645178894907090200000147154603054825547549456330063083161713216450327756337036964505279418930900156479067123249483894614999643153046359276771247972702754551515171986757074979195948467634047731752340677105812232507556711680351831422771243506192409540299594095661827404933273311393837477279548971898852011727887121643205921768073047365576958331635807106464654128621908296266706635073076625104624738704537843599363038792372793234242959887324848886623699431291681312280090666398246461466246897143486603071916507294218508985485140714891150546485799861660835274124435355044215451991779941559588085003372531008166595184616890316339981873250109044109083463899655309984521230179225236996940480762116131957500929562521153319085430151862271421845587978577071673958925975543784976471773820265820516174055673400714991100576895191609529763240265329226767179888357247492478129126797335734756833541363866128917088705744049349632523381665898428768581830598113250022537408385760124782610993244184932242222209817543652501191002315999160854466292929030769224380323265298038407224944269197983146975997654993839167062035778675632127279682787871617559445819892996503786134490491996070062893086587832379649572923606698481758591225567918926282373723513888619220714920981749451369624015377941670048429237172925430197859412335054887118760220871122407131736472608570569899724366994875349682535910096749027549591352796779069709382818235131258903790946981148246823609804534439642145276492915993743532785213907635077036075975433974548933625984591905808573123043383620787237747562457238775273299960944377960349353713191378223716211671750215520623640420191728997276743860330752799100841151991578689018213378234237695478740202908835773995952927470265676159436735460225934753830841119227521470488765488976434376724516679733166491030447971428984153443936211317961480249613561931984322460688852201398151042246749206670853934083229286407244148206447072747957495517818794445494742384825510727781848318162929048929560005921113020546497489339732020461015328040287725866285133679444492562067736948879463339026692500740801315233044465970566531990397983439864915420021448377482533531545487791930838455904690178920452447884900622604351961996875291725407169436702916121518550277927204755579773211897414842708486346475154398528975581598187707200133197987010996021806350056501654242834372348764309083976437654301774303499789858190439009913486611911591016714109087347753088186452280799052365357773762912864861114668048342088669557459786287496195545979841048405223411254257416625575403279326026802729752681867794307566005556695940342773637739796210311059620340379324285212705981191124566436200320125094026479644444431942545447070777984673187444983452573548578230870146379891282212650557366660875498759642453835806204636835468296236588258199829023284785365184136906454680574497711298252852302392263373229748582847802690787742553388539591567745732644965579604577799751627767585085869389613542585991894260089094017673463909233304585959252739466950430272864213110388051534535816130108193681317435128326535482917689398780340401663902979890652080678462315071743420558246071917967057377215485083856052133506596149316305335400677034339792223210445542944803226518129030073267528383328442190853949903374526490266467448848259577893543922123002762705908266009677920909427049219171371433174652767356188187674642842369851010421481067492224004902998863894994354102230933056306118010592556462773587044988530404992056872440610679583602013768599349442782174480220207683970351405607305757188071230260105585953294139406605106390109209940110793341066153035803082964418856320783263534474372441931058446532470582374832071631068934012752955676480185287469215819096547017725278529064722969695666500001469678055589243109194610783748725012506744261674358538794573764666739058863994944541794348637464193715648950613384655313839282764146081004846264917872538046113530411998759953969865046683320436513513542416993952458152114795636637013945275528097591880488369599937534914817653979878729369188986349449154617630610603672099822424146019818974872418826309337941575427450422984045693804198563041299044465802831003389100340125482466674542333128235298245024929380828769661342945524379693020963477512507841628204451075052045327152880550037389109236708947981415545098247385200247376943189790702914340555844339512199326393230921318194187256742363989322391468845198289306586211442130945979882748429775695015416471998442507341840887059341810182532159840581258676472280675224324716806611599649608370054410655876097755297830217273465181932091090942764403326206096230398539358288955673050628893878014095007365476765475170096009316804787179807794089910040446600294007333085995555292032342920744916004509468250108818243787334570109129692145005138073473067787173421686682022759245013061297468542528868720557630904093231496956533298108051710894503295932565755854413909423104394637726180827069695213009064050912054052583847215347359126915189781828205598806774801245520676045317262012053845073487192457626603270342683050770841873469569412348865775043926998895750751771075161873733118301683766192944953986630821411509620724076412257001708522948243961068782419323080004212541808547792177926033618717114962442635107779007436660173998929088706428020939483438380520955916868689781716466688572875549131458687206454484975135436330453028890511815257583718198142398368358968138439595942370968224515392675343528724204558259490108442228706718222314194336904904616446239336624473722795337207358926574967496133600645179688330554550769053609246422291524821457202867672347073864903686625900295874887179941789342915761596272993607056582810783346119314667034790379288878425045777761852583407754459886032234782444411093261891742330497443514096030650074333907310849421917080394225504728924722800147403313904030439943123785617366968852267717608703253224701537756033923461923275941896172697857749724587181783793721210898956751416212992814189880216496186939390571577065163045733196838228236728356962301659908705061182493635963582702420649725532630808645181034069056668848567633192893833950153317114557386577147265083581550925863284795564582766062015366532963959332548390038807059926657738652651173655523049075615126693584203932523653153145691110489377615423107166120701226893085667573587751619695542773329389703581206905738540207307769437080974957329298923568984306045409937756930394300807187617113353033565931311923233244613479942308420899480051246632546816896081196280536629250334611081989890336574508936523227826169163147769955897581352039767079842742500055888889346733020393938996280873549313516655803088676247287289799179812989912064100938243220327090016000564422819336129776259621190198412520582028361418699099000191166752106042437269430615360034643879583194812093597612236080906541734173366856867491679204649999703878204413792891261689128101990836148800962401218546152645516614526890592156612381608742901312148612370680316062101964822531247272283915238996855454901942406373131117432376140298568070784553111840666018914789565802176664928845283561032091452333130920262151960212542998287941159819509120939546310898990885773204280876019026005917797667214211113719047963755923516537134127674900518931154962387954917743279396846175917519651310313560952433049047673620940028985802121304162041633021174430429439354516800373130277508846549680038598629358242707488424170925322482129248939699272640114164494275736219036041257651518784170328151400396159036030127836234718512892350953193280964836392041975243735417019427006719646329247085268160883860038418666710793459401951339838503316816679564606401746476014881640070497267582146876175124019571046070071679988098837225745154634727902136614452722148143993830418298531311591952811227082154652471288472180580793940897584675238042676663600446226668234957085127126727855488796755116445911600381651928009391672338008689518959727633881443344776338614570799689107593585633433170492262555581931378350406631068282277814799569408330288667988278665685602521245456301454060308271277860391803653391461550446375808288845833364725969140655596664043246380710178104622331750316880166899103611012420915322702829217954475649307099538831176487787755403016279384379619447456031154336133403977759658208511567389703562006178669955794403650688499388678395752942599810271951203889279381879677583934259923684919923082356235220874545409557310340809390496431464131707132949882894398541543550995341884331455498820201974058426108829189074137545093379630091049245643656292677928866973636107288234424482541259495912356991681320730779058228965947151285735913137552811946566322862613040983965258838361423488712363143559013263930947176866120004073761173350277050220674423700072422872775797711092472434871066960708029529561248765599964681687790583192679295015642017099262178125241042019080102281811055919508027217313195537190325550493335416836783556090282235394429742564453175021527730415477375946008101652509817515184276187425379856317110188002492192086488266974998381165802412920731783779080784675082643235877906114815339775763789182850591355367358541919879486248891239901265333440226416380335303395951638130678679292091338359159751439840417884726075943372977490014611615465166807478075702242061617666165885339383138831386843338041076566048543024208485158116590120737625947595546617142589557796818304102988458848024437531215905116530953630746687400484811209514629182566330375606482174377887835915464089792323754874083050791168922967758757764037674668769974343610679980621064215644336009083778919262422969800138846276498654028628535696020075517008099861777562357219755778235264658297571871899738540902083980244030735835627862914705154916187875320857286135288064891580489714719177377435695245719056209237451679292541617897425267598559845302079071113748489452568451886741013727314258090679453046628143565102648893568006817047329576790645614483043763705528580141400319394422078616291030512010691425444659197703047795264008180061371867345840812322568931436870307892725547758628570900260518015231561306159196658774804591136063907816200599461672581725713744247950960960578309259689378294454058359437038347835331688267648058809505688797961012645047139928744801701730991707210975249460535738125165550140517859162034737787541770237517910156860338658932772734529178051579252578838473336398744512809723609268481250630372851403689148641820642868839067387113105664038040340060858837663389377634561854864276038563196078482094717417652971941248303199565959099304058481301091957134814376678981288376586847933994996392165799641143882876406030483787828216181598769432356472476323257252953527384809543142113046348445595640902563979025627990757522402125749813634365631256037186377583456804889066892560641815116261113287798481344502014658939203376196940308054152270609534664166034084854806205877468753060368351391378074938140128429851612229051238528151677536847462030985881956106282354119213474522425143406658037930031043474043800788603654715086642698631344209334610637185029162382214832663209825844468643670744292783121305979480844118066810827353825373487406272110918209674197916002076428500261135848147625253422896742474516126312134392474365540583645938173645813800281308071677851893184534747071029954479737749046778135497952845215978421409320072688633037508480998386850828248362300865180666928000653893193295394950733812861670167525907442270959397868833138155055195469573669553520642550924322511764201791494974264382048076460698384360531169402381658919420615394494526915490986896741328666025961886040829252911329900805683197254858339058633557317471512310907516057041895042050122238335484834996403995071522613035189726056788398156359039806600741932774041609747042138207502362715612149766632461733295373794514989540851313261790258193828305824329327379424902535180625795465296224937876694526724253558221279003218521136970625881561468862747259610217986324645499346297123598802550752563180611613059345327870114462036079799139384216459460722107849436112015616452375479594013768912781747072956895208391892029477997094770018129961576595220283740084630013419404150551280152712032210390200798656270574448591662592523403216170721368617968497518417393356898564896703313147263484009606186451251299831593982293024006541810688064318582729914558651765885729494569507504163615027396267206442656186613026924963274164262138488951769930387322205588704733461060761223797705617642678355367986614584040052463957525177465989780512584083637026715388959658313432143246942438346853079040903599313653356262813583498232135123466798591585565142046811783742193407792196833805854092870547598751100222274163443426056628603301911879991118617186559753713984869456967501902506286042289753439352035683731340685809046431583139727847840921805636893096949160578997099333676081125394879880825035003336503404205183094210846245228324458376394902754938464957889332935699589301715399076779674417273694285194357031518950572586850862811536292562302693450533933543327373456832164806565845001663251102038716594667377649255823062895596905360320432464220911903465416693124691530661647806364042657989690550151023008569362155436071164104647433375410896509217819811173082245182117461056881906656706388210108949562068917501401722205554732524879929492911569255260002024493795562639120123853759695548299925441884219916185307631404823060988188276466978091272782352287096492752710813830886643211596502539730162669935954802788538317899777951685416601879387438807154640253816116224955411285537705009693199513045416000069608853260283535863600985247501496202758249232334277727262121660529690703374510202464756510352762662403210975331932019394190062727320275829004909664478782525835857497929994464146726632491596668784770293349661254754880000435520366560958761722140998942169224582024403383157154476413241567999465716533052062448130113773712657900769656603476252986246630744161935133015139602258453101504745204885304358020540870192353221592357078017746615434751725160687926479782816539660215342740908950886594747416719014362098053562231243701473563859936723037948068459200743399686733291854621096908119250285529534900478027290483185762614415186223237461837486044374099248689050404520235714838020617485368001850101267433910249286705610770449993066192065975742329649484046002912785104483666330616295879306432040539952307000178580309667818790009196910598288742332930552539101089124145094720584139134214033186325730441592936984038618828356064876923193385704098788321253600761630539834437663872872359052021703994628350629311959470864102737378587598387062678557497892321215853685833816690879863780169025976573705621922741125920536878800034719329387283528863765087628544119674133807841462171091941569377594999955422499758184145485399977106474475763646273739058624679346245957012677010559372072573967404159011325038607087115752400026063742583396621180019109005243803074581869661954526992768060367701902463734480348061284308928967162318062318515888563471519700581095442119622479267936164223473817911347364379034398443231282344641072666177290079342425791225706950903777011838657544468982073974357605342667174835919737237862345904855945227163517303989970858458006290325999895900059296775453727146092266358854579783592870488807622198079844793991220048060056516592290215766478092174681718969325695855401806472057133966479105197388669226704570276748226181256088265053048056823926422428660204719250681152361319749859889195443063206924605018988871868644247787223391268555439526010822314807258725005413459511226362779676874544919391355375516750982490407543748087703478174933668408074858923525498383362951772309510754611480045568989810053919894559151750305634725300645566001536072256689876734795707257956883141441096129353164311518454459396307797722222262422542451515137820814092274418983774097757630583394182445163481696928928342570857161578674852512052991266375870259036426701490778680846566445974855139881734737457338089745039588833058730128478292443101920889895515385110898858832209080621373400203488608967225978656532950627612157275356994961535634508783826464282783182369632964468298849582903416559335470693806669015588899334773712630421220323979256506268823380847006587092638733008607645655806970428953959033329420590548846855949997007964220678142383432822929597306139393457876492229073490931359010932030910751819356703488959901182271140173091200899125222474938880594282685180295440092729247845692678525731550288135050586751027194496852914565725469905566131117372245469091106240555880371177507936836221279227534230328563197764323060187131496715861204187863048705913707569847579612954674557429926786086321862583531587660188248047263735773755382366154400052495471087934250292891975986283730894410566101390282778326675528440125223514362786754592633385698066052364745852884780593840258929869953920988524992768283821457186783977003077833862910171907611373479002730166160919698501925680285861724013536547670504581995536704211975574632797876190311794327317193475149249002607402431580662686860086232032698455614745401978256095655006521560183356226525108278691138407353655349477852253459191283929140302460372239173379642876969839995789293828124024896026660692111422033820424973570230449709716392370686123811786404661784727610320246564946352917380981677995697373767681810043297976629255481719263944958631106100856444768936960512922130754586173822990328425193084137513810580900409415889328540104068688164584706310398281301879063634240814377802577728488742131324876316551181361594319826740128819391384221117904791663426132185965876625431517745939196634517487103147498572787877624239221991933587599671740363221182689964170911855238392633421953917938321666682323619196508457070541320014049804729506126761561662861046301030864127654310228766978994941258208234503964804284478722891928055868121990290304385792845776797988754054014673174118129780591199446925951237177603792288596067162046464735024487113923124588907167315246194193597548425580617484321053203906954237606669645683547449596009979205124276052451969556816726366228272887801887462690147088106464961081407469490801066352830717923851193574471500803496814802932994053541860313662877598335096963710073088802829270596977511407171086177243071428862934690610850951235109437157816779686109015007163508536931799118310029311395005834446279085035553300460980892397853244994026628270333154307222689979852036472200304329296870462179207310349355577678147004526868819342412923886621366503755540792058776466776448697617008871297629598182046854700444830930700507639656741210468447149233180747440443181731358231178151253761447618076318308607135582113648060609905203200373635590216798953134035200123507345396481690954403030208577084444115808743867371583354362209067858836675348583004292351922991823141468309318747211129060630532056943047016794362047661288473317613389210556127727912444211859200046542315817472493910736394626408362418175890667641440308712289833052855435595450705397998216534131189130506666529364637125341309722715390435960613915810474488149757922767622390944661317141166279471408798779573273098785954395795778528842998722454818328400699941331045906628363438121425345645580056334085472182108651995471605870511167198594405892117023205035051716708911335622010074686730895557679396941388360243642716652623069190777364258489921391981673053206020605241903273020537381267735748981110844597543921862128363790320905046279631140567905139843349345930700152527814001550098773122557510307605862412109111908039085951903017607527240250072639181311798451937206918277779527605584885726046591186869800008640128045801605188628457098500133059527147032476505303459101753666997249070829134782963384515409620893535360479519324833276540615745626295808404303246890932628356290408075008654103738243504630247855598849521858661937820447797578936518472572571445708344189186277611683405155727807825870703767943044145816529343087690291918508128697875619640746753296521582249370254854479846450058772760756723446406154012323027003533358182396046379165492919562147770695492871605227068661292246920234370459205307350994854012092083868519250412554670765787225726479946199451208257293805373469567480681716123481665867479261345668495561658030679231088829341530498448288862504580969159722963497766144691421493665681998379364183874909279477573960598591010930987169199584002696565686506207577096309787979117477783253104566456731547052460755379478594763206266778486266234174871865422986818294561189393842191988261154380648112987771792251460358404378640431034469215693019978138308893287885165308585016395678793891726535464330510820126429697657753468710615187897282660127767110482140865624948449243472445986395292829842191032235314603657775665259775427890129890734940732564205252932502253516876296616559555942137573590410584829788021143096715780239640629288476028286916260104516036942964612242454480324550037553964835083723504527424501130030300702378874378135113324848846642136913945792280879693549483693865468601090865363041626554664504571237055520721230541980814607977603405830034467739906591663969032103238842657095702269375070545155040988115609436563495499812272900465381273969148440022343084011008953560768710680158025941532989558971754452819154027741090552858675409689889671268255532221763493011333031028357188557255385057459591102445985009725353153727835425894556863370168481921592490809606154935173056291736161303583611929340095457232603949871946563429690836945917218388821872626840438712808513767259382311804432969805450517580009319556677486762611024291379440958683179547488393098692065039210119238175851139640636700942798646919445478946944372761922750163251886719938873264068290586444084220712795644609158615702115478562622081534090515051724272015508344485813911600358435413602150863093503527480800579483538077327558803107101587770787374450065381160973251553886789058114927730866683726783089329619486033385057582328004371641323859447900190685380633154309205452323641374983327447446860110743218545370900169244479154893545125987506091143581405663580033183283529016497603317892141213379557071031917395382406047722563166860857284849520256778119553407853401118404511197796414214277454375256341909433150021472470288993202382246950672621942811959623193429745559450761132142151114289123461051827840344901877588106503499680356279714501758795040439535580362469599305131131025495686223457348209470354706248219968179640447210394877336010370182614117407641860648863990613932953879102275332741585430793568507263308405024159160375658644296916968505571777703501917873255165042387303526247695017273109955483781888105422229178013355270909543699142083067356700007940787687153263083178864630227615497652342969313792927737409207569132717674548015980538751313301513304243320490049143111987122561284479862869740141030454922624311237810118728013478797995804164412122682993127677603053438258477130523827576170865467421858404813925869432296300406462644797860623585043738060780627542073533631145352406897430697148259965583374433733844278103982227210248259958574511675315726602230369833911090871761929163297011628681160960629594890668025761094260415393391067283986003206536710116188925507387714959326714667636718610871943658439249972403737709965914166798047415612862909787187550876126131248239823024990620080576480469176031684235088077517806776221181415831534727514401962507905732907535946816101231749672058938647593589626856610002837903428087628726209620644363425192041265985370496873123990106737161511030123485250916237023355680561853077229409151268428570257875219378464828907162681918766980534424229059847737369211021810857396956937058843187531474300180447301526111138501642519980884805670085067060042949426098169464495142109677477161436548966496357029997188345143712081581881823252631410888071355706267393339700790441516566963116736572904279734683545401628467494626652723310021920495080726195542631771433690772421886828168865588063926376830756659291067468164273650972731934931365551511241901743053841399766145607714087912996549548629302243882114624472732876580101498962744672119835556501311868053928757892088934136284913931336647028193520638241424161113760480529536330786557032714053645672727468822232775585042227703845531352971617900969739999858469936717886989640477598716014433748357687964213585186306335141482800804112264461958827394133673062014773866661312240810232679676268182830311723609352557028228389690464785562874926340678344657692749656905978164754203234919245980243547417715840942286237260264780055795859411225368559110238456458177978381035743569757707399066788469604763514393210705975461772644013626991730082588925981524533189377393158267047257897311980871028547064296466717290243313434123793710986493393953786021181238595954446197211354488577604038467106504982031194533318354974351713899055191107312919165452848267306261767821800997668980434965178471688849082964797505559157471559534202679426727554269826369742920752052097534776052582944126779905980316520050732412937490662341334564411069300593588768936990088397898097197520585990183806908141585417061773204695897423988798195814942121485921645531406641341307622811281766910249138521148756358592355188424906039867130580885693999717576918869141668807440873353736398711719855004722167368146318655451002730655635415123053015492785095965402292228600005483379951609921729738989230891537088806444053870235700800628130504243881082593935440147609791330267471874737902892382166198209076350590892351262925679608207567877112395001081508863098611779328707567470925830445440658038994546579427750317010914696483042534777345962609264208440101752409815758505374669468295143207459810007015363419992873102353521644291463289015802558864466505327082140433488715241191467740574954169966703640228028782638296259474193682024038723740465486120090242419983476033620264631199342931624164242874435448473566203944690460261754771490893585340659147029753197192254267686663056109767493932018875960247907573540810518185690280489712434122053011241395678715043181892864958966560939644090892936432704943846908570004284784165099456158245452656766604087027523706514303611184376047987270745828548005250955803661278847090864622410569841428603002200842513004429322688392792264868960764680599169419032082845672062219132923885439065007679688977479001376126307552948687817978372123521714222337122296905344072144483853933983249344207945402145025838135353760089244565105405815334679741963627654177699661178688056208889978996543835120178601247023136633374040557465439569945693516449954290789218503667122956156377285986100990384984059038863580360625613059536703825764962796900778440502508234535849217223407711692317307221728440606031273215344263575288870570549763345943722907566016991881742870750216547634308864105529872552599237656277065235199062553665127341920151266568026032701276491710816466031079893732382610190119257152597414439690853548363000153469313765931712644400363751344046127132191590888769890297335454303692895479240565695822861713123258064823887954861165618967567886181855591782574160689422783176621579168486096476973169529000935771127268585784936694464139023048394771049651060772043131173652906006509499416711706661400263675465098262816889733886550991725701464654612827770027646070781108380039346700999060298879895479056694463262911105281713620165001854155553118399131184445812084776462539023545954826624740883731907237612974241152767881851426020481741686596335720951070235321831025151953003651388751576834022434506251741256494017263346616230221011658452884901608364254288932426170585431772339795979982773734286473968152337955406714276528986714362841698581988471034648184061938719990835670414752335503124935137140922497488614574586460016873547999493962396390562516390607201717285814828934956222201493448657729414562858791431925372671666478269036087885250281894209599667671587170505929516964526278164673875958155921215671134862554262804597475995197921140281034487449685504361188494129941889550446235683741904402153863853370601680125361796797541706820132946637534671641233330603980220606583375768077703701274334416709415048046542680778553217377240470221050845465797703223525155810589794747289428701711147448290034808130219842130261006343235027587390550421177215606209655078378304326277683552689335909217403195336921290390574064097627830647644201673035846115918978095444240024760247152689784299985371172338661850249123834461085389633468828007210077180074735944407447438624583352696667183254561888321663683356387730673996505531559189185063524104477332843268887101923388391042305072785753722916082732193465719174900151372555994073824300396996238699818047257106684164728387632773680321530577621249900954193935594693160435979167612280358371004709115980715369342062830948086850812539026433601978735835184398096051008097806348200365055894391459642836186063430033593341158401236737290904592631108917558889223052600969914243772407240221642636026078003023858578713874885491177355080431655831873348131635458848186163727683070084264614058060284639779478010458251874380041853487778681060224241294705262243118378222074890195600640743678609557811137099257231856090623694000319916766401317697366894127800222236481101999405849768833361676962917331748183036559436426807989097305638886617310743378413141152085700549593168919306529928358905608256945378495814682711956825777920263516539996524693496555864370500991343699906347550302969623965663866364296311503446224318205814644393611019182016347808291490847946936317632121337046177698282812162509784003421402109452474132299639308877902347555925478743529841007842346949337393044547539885765055449327375168609283617821248478309697107928766861627491563497203909733848680810157820789373278990292465723686629341483321688095116215187034314591738562955595578209052083512366575522381304351917205029211556324800826715666363926871820394823486377770703008522557005148056936529659672477864846572918187827375683119087140226877921422049340884488078952283946057546172024081868834437123837369953369615859433580688563163060512420371614769135605963599272393207270081955761670663850192407754996843627912896767075141502180628056598780660482850353959799736369928092876116301436140166912130837728489521083582020358904053440274155153307628263905505303591790681407865917738250953946239455565455472991714446963818399005493380950531502770398479705589138808394728020283583353622708374116799155398471224104469511593981940000828540678896245116968892487657084602255160878962264319789842365111511736800496705860463109203829883805133609864722153714875483686761203007186680446000444510413169137099929227174148378884247779763342715468030095746699421339643796340758069408859120631632323834417948842220006777757274045686779074050445449484918366964584348111000884137458392415173809557931209736915441253114883342601150674929978740231383346935927254752743320966405141038899726369700891979827905806148392201290151558370632107701260553791098428343489303121561390176501230092198870302774891963265474163784634203491911346037503940857798852313657223926696546157413063248514952069807015510473737806957466586707764354356470452758873426595411107194082494970018047158667087081140724728043299054330311625466052576342090351731600320517223236568151804205612159335318761617902553482904237250241135745078849866585824617520729921767450696485437252378311988034060227063356155267520737074478296148515966722558480726478289423062096876543081357178930961052184585192862621606760766914901892680247908013077709164066367659482858256016103413271271588051739606274042180234881227735667863966304752269718499744213700544686093424778485832163852265905978570129354658018410559681021909326215181669875571988122582076283860442961934509860212721504662358262187318044768498038353318481900318074100989974042694497616380535682942216583749359522883517168074972592756408090636575393168640469931818069512780084845289786242880984289304353091294767597099577753556527796240217277655660902696534254058727256809221302365613940751240455141167873808383558258932964480571373255043988401810183492207383945349412987732384677282653763204025814083658796578903972178622547380061406342878035760503134331832910074739217057572779167835192300070430875521405697361216972793303410945278837745953998317298534582570760164348395134487960700512088447126188980283763389660078877078828038226042573013723242545008887315109881417354591869847261781217856405055844472599606067964027096422871001629540736782361641716808205574707669046556567529253024570894953070650939518841446826819590682843730424692932368314254675444991995083702631061286465721999239588857817474902203913210503614630119692968595150083826028218280648786340089140075683212199690782653439489280552935966426204615572244245033324759126562290055237106826519472718324284921152232021718446294813758143382800033849569082237732009399442026988144613013082019307934432488081207886803849633149382010786664190121444506172182550396235834717356326487644490416085163123052836228577495429148571063523723976620095680406242481827191093740995780024560955840736709097257435987858688736517658768206703543880178020000395956601165057444006361398496258267949904590410970840621773135366335999186568063804972588805878327326560928474847063225940848214298630930080334692933780936836925134324107801182325771723361835651290237031532201952423238734849369254764100409083955087472319556417742705612206885746369242768337307554396574661673403433868976577792504759248535102565009280834302902690671039060504756538294832792374118768480045859010807491547991795007023533009390954547356818781014471300245852016481281268624331131957147752171715725084442422308289633419197580709688208097631446420281870347406249178835617985437387690726993601308618551543628840515557339949270107131669329571809813299329949202824951270515066673069669112701842689595875078596564582623982105617036314783532693283620750279462532684067055326670395910357953688457539643383009465576676249353673496739887687245931875392278590609224662988213722226779280629814257837563115005744620051896974547588788778354732338514725137481766321996358036810915695911746740452828008614480588260628555225202613986616020377265058990684024479323171005918851320938128936476311171439056120712097102641093248387088845845245201391508233854086697521928866527463945560137889181930973300698006022684184833131371430580339036858426744491426177989884568329446392487416334356330285325478745482444790284034260987572607814273752922894245472554916897496772115936730359481942360274030506573599953058557315912990643888101545151518035003542217241338896395731647123602806044907421042885978921103111421881931872138619680539810650766955795540551073497084460529211764296626740814733848183181653801597140278233905043944834996008000697092141571569577633113720718502807201156036390388104512344300545041028942153279706733411412676371369937486512048658238661474920174132199573991188789511259098782741883277858577282349326223135171190086313783765296530270295894327867547839101535502219465780708560139759824948047558895183058009942844291983448093197224913837470936453752523892219193474716220802897529667852368484412442870310668282689681108537369083406766885711429710692513737556066675112294852984674010295096293970267062636033066018167232314331240782328039853944305284605498849998837622734650753961811900663918693257972587728491292758165340809539616515794180467110225729403849418509781434925361467399389338197594511284872201415818103743024511225122275730524327716727104701324311510967661220665043541237030069725592483713354024709288912419796585242727660613193625556779552491786775946625504456649763883507364666771475024835493520914732211130661669327153289789551165326863042692137501347365097606377330365247643149936010728855856984461895227134770320069261072852106652916394051332577561189495084915928353829746422355734220560788337854308526135662229218265548655757824639867173283306867980812791210069941338134626590126972520853340673434589413541994074329586248143824117797066533058399863682998385681436381849246796490402570815627783685998462788848999015435284027239775001806501023624460393259214676165772194323523695440475544367738952213723796759441118377433523809400367074026125772250166157318452171022561058825605501901968577402764787138346627657902623189567928877639503502295348302033774397978363308588531989157266127672819141191782070830996968759999451384759685759058093869303297945231435805020102965281562298692060692154549544509932463039631883726550860769728911820216242226026109258865168607702308506085185690389332465594214433558565583083348066563778801614000617970812714136860454385824085978519739986313835995599903610339888706811746101241345688085635140169327861689542580702372085281741528478087767542646260878008651842352015589974864302338419342153717193889363942024049563006295425095804957847880030477512823244453908255670566468131053899576975893240154437236327125031397153521378825217158567081061204433752879002564053940618397600137840998254209429146840150641009507349118055415074013527038237322216659541831434639870439017714933956882390036787398489603283107256354737250222865866728839252278848590041725503578020036850122990864340847379485108417740660237478980516557353649094723253904069169726161362801965617833937658154428721900488794215491457565093636521629537871005439499245167173122007681595940039307543417115882375979985808383458733598236119302981135413265326676643429682375857003313980586891925948340321693040242034181273392593717615149554385125961117336273102552304723753204473412691404758490280769106513686615956451270551689806924677871373702418337859946488222207859153037534750458184323433657425900532997800222287918765986371936577198119861688792408463263416533444561268771835254110495329066051839271250337324737138114761050681056860456212858070461149407233426791240065054010801934022622509671172774560110716679463085503047679473781136463726812105329669493760029429867008911734929039095281345731100677435810253477899192092081428504323250364521094957842709116388697588924835043732642811925563227932263565507924859371971852728500021452439324790111900729103939226366664301385282496126057733887171247599606721788126476495342605607030120474235228515213814957856319339402614085994531039518698019331166784768473904309462383781341491810222904599333274750780037225441268668611137219195811560297536992975988680802835912270956255114904630543893303052024966980930680957415966415537269054993449440241508251343231436799472696080084514463401183351091222941624972259666135426373125591806436167401997942413950525209456789862225694285165766334993477313646159893015089893460684671102358471145045122944612804866375515121617965636059413286208267272408472601308379122816027627264316910984161196865925838523913232442861110509892218053692119748689165437947508271864291856258592779549453816266106092181733870065190832466883194559766747806193543549912143939879865947638701240228310062023343574833387342798750128136971699833727740297053481311432559115219309565592315011772185475054834334046864142437726548912979336877974230090302154481155593538519242462362307113504788561823827473268366913679115039548188643217179571775849545394659919738575017185157094875531192998724611488397143263109234141544283358495800703138367464845808220012670536309985043645092102425500245854118426406620096585814369577638118823821275144682554377838315550945423787989699943300915295885975686937078931878307387114556802510663456200821494892242440773453366990702352213367356067106818240346435488522591934982190171108828466891389558085290103780579061574637000279397203849088724615553230110685074479562921133282209029409035958620613867193030844427743479271663921160924178806167891205986663261071692844114531986452901936380429518008571882701780834761661852503111942537759614185652185982406557052007772993985627180068815589531749296123646236930600172627876123819975991512440131442826782856977074298181162797264254485917843090418360465012923143042194809929060547130731118356670853527934493542069432579533033486828041179512495019886138748801518450057458864199603668913892508708446695836508767971945281718124664073993076015592508940354803615878937768067751517060909162166675998769525369165764374030130960004243510253466195078086855260082287679016963670462847289550343550930605601984733340711226710741584933273119260192664876884459064851227553977007734383940729768858802300260855897878340799527368965388863300386365404758934150223074615743096559459159240738244638110303606667817561469150531060802792434638271364785123614828756363197002222889716177597610409225423469210779553907661250605746274063277749838667478415550241429342409497751152386870907819750819056486405385561950902233152551028504925036058293850574625159608741753938777914795264926853826587159979238444766413202256237799074224817197811263587956787952561790111342751730764664558248639489803537638276086968774553534516778621183774558709089863948288498906008135158827848804202300062038311830271575998080327726444500336220413237860143925819280459144374884550642215098255885998015502672114010833462239414292145596232168790092876064739198170238304623054183744701327441149812526405374758787708769967247501738721555299454786467180741945383488569961250324911825080941962214659614259099580438990124199476450020123084501361337940435077438442294060869263236277478157542683912327068132117741227954668308096169966225991537045807813297929842245250282951491813276432513626624512793311875455066256677948320268477840432691199186595911518707811052667422162363333654963415021608899679791899697873219325730189434229635725287952198823600587043396364198352746585794724100730794623157640696930055524973642614947277973017725514397691189963466562791978660690264629726155169614081626536951683899530551118563619930647430144897627972249237396090962795717001585048645108613770972681157309789429493470205163312064083256168102141077884471144123337191253334840368731862612033614592043446201088504000555629605927160854854439084259426752912797516671313053063333730720621106673977222734741560489665167994713352326052200169786071205255461227278138961513687806272931995445213841002023867031546902052419007264771961626725950499904153062326228850464354669123065830328124645993374997000897909624609496558081659868251199663502413561329948855056864919072667186469145809263494584369330122600534982110232661968540543354951992471577815614367019910412010421443557317436934760617420961120831387134962849914141632276235113468146208464515461136635796409769667146431329362828887465419988772268646849023390177085627904636491007893530006128715932098149045783051328665492742745091002711981110963053780201947090348061675430896733527402539139389054837373123636376451209331700571000078097201247559902385729021304894077674210067562422430145628559753792908829013682164979007875258736126406563051059346690785414461563877567373058374480988972130188763982791723989561701239294306073434548635028583468058645673452556395483632825286703131825352006280928644658198878205325947425673764811521348448364146256772952439386073810264575358587283331628554671455680783529855470761851598977486937922347431775383937853117526761853004170977071051400348643351079208978668447476840518742603599869956537014273239905399291142299430101001021530987533356001817762289213266704688457201778735546819398965948359779000092292711535371443401215663988835309896555344568936134396389500744288173131509488820241073683593339713763223012412131513075656194443366228115124645517881526245929040073910201441333836727778407211674098328179686512864315114034176385989470196642182977199429935345204734236334578874644116677500976480565018017192001028557431695536223882957996967229238450380465955880770491617354170443649780228010464587893416791068742178836226441565165472868208249026529057149658228361033581331703083332275194344021362129816828813711475138624011594284520284245351862781099443284108529778572894158230910339181903445952120893457769181674434496739105480811229824815232106720890826058656776491773644577779508674901188186123345152965571865743483454705531401742161974545151705009878475009934818751672582513090999470474882334788729282418938183178500443427264767641261712265860132911383281820714427685671442879101912634118224322776551729995602858931363582045623758444294775052607305428393297530581855117956304925315309759522764232929090231197094013335535629837727960124338483701508795351622197731335221583683408365963312445309838960486309933478431093058511557204704844314223170646628477381351177268396152870879465524922016309839197565997148914637526290842920232264322545084620336775987686257356745456539640048779482917433058589870055116435768490662985195850865409575223137537810217592999747294336095203300742379337917744522810775507758273194015907480998875564180362742775812641789040871798616371478586035874402543579159832871967069115600074748394854245305294125866226577469190265985370209803252640082817785755199816778824689674547491237747140222172063296770997325636281568153566275572012230079920654229492164043849381383823883453647396874059005151878682044137063740261734628293446122607532881067025178728111287406831656514696519468862149479803186164346936518739043615298077065439840376484328106919881211927977545214608018451071562454297565791834560944627183326970374997132310307291912448867433747101643231901536802153466687533969909659947028438257480717324743585807547401683573749476706825934044708028396673327034629372497498645373706299771737725924874466647884962351773940154976862896553765468979538757519857928726334190323904000624799791612937442064790458483028493633142808940756056809316507210550814767678778739719983904237233036440016382617749577887547105066953710840959327632067242708471406613487278701599131013320201239605094713234636510847278575921923622733298489471982739815949071530691035604651722029132484306307358580847472512553739640342245335744345036010339111162498823205017316788838297772881929990860898100521213407016625698255116515479189830461996703060573000977234438055517929644280418208369992648992805135904128640085880961485729600834873573119818044147464599968365605183775774764949463133353920960136411577747181789546890717521312398311353877963049054344645741420873018491362300049342082117551940381055117713752232910164439396145935800218763133648329312014914699963802294414113931029216107941710628592555727895068785623281065886931886994218302210615050404295692272552929696171545399546697960045553698173392432800460809488922389591648565160245675984873088849231236400271987214135985934427609931158794253791439760429588381093521441458587493316746258714512944964873451882780651405216089838386644797571469498831089731215553394860412184017094601400689365477555016825133956272246625318741890004441727035215851775645034205040682317226836573573309819943027433243686273436405568296802698368894770607015143249904321374804940141174061312631905090751440072879305156584632131338339043611688570532039203818399063240501884950798869719084072589270971618941251304345145263826575281470704774120090273044038957716229075606843189006002284495360077859117586173093982102858023026457820396747375057888234820769285289034155221308835091650125118510996316971360746384696540267413459901203688345739528301114690537204044172772481465052257365334875287667594078169975226039756114710564797721569953298464221889510701026931783737390685037446862782444500819027606720554835862458886658003088372392582415769093961934615218271579078352379040053272665894915468185568564683643715776675156609503560003318840348148303650452985206097557755474827961394942840556401461731469185277076968058876129617863334264395742162340090059016422289028045871198542851047089649205768999395375044859732903072143071463245238062116991180090885344393256876544438314677545447529262657906958525696276456522803537828517335868097105310195505346201182907273207502914791385844775117751017203532673890571965305275303808412536949370796679250880383159546888955402816507285398847727903607474716411268608631271001752716691771611901145512902344330483868785949669395276905999531364496798625756801419700952011640790881022761172883106010666431411931694317492925424232360545964864586588255858838034288913643953706741938946566994843001057030747035260243254472284442417766664361101717332626393965602987931550529651298000563183183522719352519328491028402825080188286601577789579672980496947454017719787431543085995465603802414004715876506610870951688855248323409080328521053509105869965551051977443511741339704039492593672628275171764562094394530662717697286620083200918758423911861407712274628906519775756722351830641985643666887272014489889260036954679686743059941835740041053930672278024700413763176199315419721600034321645222040788703968268672258948099163654773830466580685532014736816576555765524500250001693255880245692470676141436929515855300661544326680439136076691186828023521032215548407759851882988537687098150764920970498388383317291012369892475995074151732797500697449299966578391923854920126227738568171998667770811424855603313698944389305899330791584786977583911792394358590036884244494499714236713983323392831791558153848984120955901781038930067830153348833253524850663839784196891251609737325345673028774689465181852822641774265590672598002808918619613598381510201516645615233520140859675106167467331565429571013568504912896362976386149775698533021567828754196898968377519888062404632896438176309416629073107225932105842301168173089083959507727438826409584696523949694832390533627410387253235490167381415311975471433767946947445464261892294901897701222482684769039056603452934401668192288879016008628113612421446381389416919468905597412533595500129854683262020434565271442071898996715977817548868177720584396446632134489250266030747214401422057730488740875940160892226954243825463214141556739118281091973702752617905387212845592282049412508025770160560666419331966887468691810206089298474658177721618887304480714711818561335504478945461442066834302740898370436737306178665919197842792769161071251827224912569998621652715457109869689146875174981063625496666171163273694703135342211017253919522220624737055668052976197182260825958514373329492554621570116047029839923710882853475943302284272050433030177516902772838825119404997878800483153529633977322750709050663914623827466211578642456721311660066805787299716555572406096056507058771318711929366518232914245867099264810196440943008481513595668670207492130670724146375945538736422928166134081434798127749988408465255904539470251017231448563305797301360661817176349494721868262617546307902049186890540565165235544770693195094263857134277266610962795224575463282600177207151940054616972059821691832450265361118103914226404568066517153741284646684147175064692957293797492354202331083884421381535935250436884101270818658699528867259844310835119819685738456307957898712588061249549113183362661236634697205074693606766246328467969929992693189466569099534629679721970315682437714378325913025684232081645010026952204362357176963156786342970942791317258315038873267581914546917199096489782847184344717297250679003149276451226540419825625664318205184617286646752016385758530152819773960290718738274718252698616359743440165043475047436638538989672019542728907752538688304618504735114621236581695783479016572674009077194190675501424499783799291373030591243825591887083095902503335500251127346216950759284329147707932844966613275550238807580121776478583228182057985331441196754393991919202693699850767293369203816314255542572124987860738512858985331804267654820326594805689687335471836688123869417406972403200172146816679742087627007718339687737424898392246853794214372159004071780402136538730457785909543361891837241380773290735942814314076244046380324601796134159326031613103033753410975227525739367059202559204119107330501380904546231806998155615437512181321127337596004969015693618095746263314343108432222694501258285692904195103987022464040740451396339837376318073352329459884573753616470286828483795048865687239973319779474025266408472084463927309095002182408074899019168269793097441405917515099331748999794594093883650679117419335213427765604063358377881467489696874432059066259507098279532122662253136757951534739454170592462628273198964402703908437979403121734322556686333046353280153812644546530175422379989495995684053742758272046633360946548526097045555464187635125444022475649321559647874450696520461587996742752766190080799458414156283364152904093727216736115950491135026350154765217829427564118347176443999266870632567830042788010238111899336771324860294881771314807421073930198234520385133257628714409257679349931577360306854867298497584453958391031367596231420259656493438132720667959705710945729860510658674930435154446488494509613851056029057940881735701982258157140723568297954164467690786716299078273533177151357668350274068350390109466691664793051826317651203079599065840053131872024302296732125067149069840225253055250641206668691713488532882161064127616615801049726806351704179665000223869387827916150295338018373031046282671306170156991930035801051504184057420616935581426664815639185803860779506055040995005508089570787218272289727981279348457283461250628771783947813576669613179035467839905513284219223120593088796564274865410520547754377952216392621678033180300045461721221568194622426218601863971611332311935660389815007706168886961632831032732115100514579226818135242773605977262465674976552542127447444693192286762859723060623725234587410548915537519530005941234040549623873694586197186452266975534808079765305047217199734092049981112314536371998746096407338103291612325308768641245170935735184025841724608603687874483261866499085119421261312212243155503632302312035168552827455511561693551521145178073422862063516938908131477095864097613067418884532793395073602536323460256379990778093724285655997113326531320736446222973339112238177461063731395192886330193478419952334493330094316629330895183446707492985108110586299985069928762932696777487974830680015367546871586077627197711831757691096604781266221293368757496472219603276474562893432691303593134205789625239234384107834742654412789393905486994461315155333459487864903071358547428558935416183293694756392041924009714956677743372955300785133836259345537932368802049782371461480763085592253115656027483611710497645860139059602327644179311034613891151183853980951489731624885074778007884187999233389543661564317096229976112214656872222956505285171909462719590094566943605045338547741852979399757753541339775690807966399491427384030576674651188079215619913988678870339099523835255641731751719155989915652622763151002271138173369098333870682992610001892930695539123833687610021784140881714371998888342202344516674154703273355680573712021362354291008242252488416133770324788484973414239589986895967375213957158183708016594989467502426193076529732443862377912094080063051807586872286055714719480016881237300259427116454959175233898222726372270417443667352854064646706008939118416591310823329320505820899700265771234767728683049121713271024257704177369003195521957241822702620683764690411628966949004404760786054462062874072447913599128946245513678907113073124524469162591709629581778763957150420133115961576884349638328681462721621117399941663268122400543427191602339409662221491333636773476016683100848161814715353516344359353059343386377403221059719106513955783144274671955737762246098717871712905342815647518928155914007034335177424803350072995636902115414581971443460051524164260922939814896964425555362520651662999235341447711949692366937653192755943602161416633973120223858546266347099978629659460272132402373753532421722537611630707952321415042189184525419903999778090592071169313579447661416751896011337408075066921443446538116800856866652594447839278780617084244657461555556136653286706772042209843652608099895926135893373707364437380330323192694441827048967308919658772876502618036618579303455728729451230922428138951594323782034101824392438449588017905475752020772271113170079783908098462691617407317067694655044584831693798443404896257023987049708658847186572170161499700525100575692563429102731431369332747310893369180528801324054319241361509197270534665511933066615721943311852088918074464740908654862242644154991202390250233000743400440589717191657504086277754265796050864898579810194235693654564244265433264045676194283147249623583817655746495617703397333789123269223960165477451190206190782182836550009639119055025912862823998956906429447024919165148644798832509992291748376981461616280360521540487614680277111834926294901645086505598354801305200053579194045737119108620974256301190696670291553394114483112246997245476742303966693797872018108464470853754484601158427033027351444469227868041630607964294034970471982038746577583400874345085805415699677349869712958390410473011145724647012747375622930688487411759508826142788877781901855716284964172834963091703875395228141382234470682008403150104649939209838759905737634263575333325300140574272109236893257284173144607837905619591308503694718754241943950795539020503499172601083080429462922554423865646093326557389246041880469808008271341254493867327277475640668498351337272810319198162427291906798132077223866848530863551028424203925148718930149983402808063558336909351887899872131062628460217048779360277930483023942848584460026180125017391986143650086532656628502889367924898936838743347291907407439613108965662909668294803803946663888082512870359330335837120345327784002780432307467721033519760436257494563469526338556571814397687906231535856352758724876966114972349816257732129203274599586373979583966188075600151451408048385143030325528694521454052222464587413439459029569905317201976772319089191512749116855536446906119712981296611800486915901761359935044393074956417592120219159785331004955064955182276054767472455045259355025242948415003716915833995128586303083706891188103722737113330199566138533262494241053513853327710254408224155237920048006852870745372514930873403434121526759983002164090161089744252405972391006034209100410636839954775583164768482668497143192994962025268294367151115464385257347630337916983637203466499104415326021639479877485577175936470908179639488415339660848023889494934151771377665224047494415186964263816606050996559328078227472662782227877842988089556009028894216925536499997720633498555179646408289468550924029476202426656966428892344834882784412692236292988321025932052421144045969278173348286950663566644437609934132140916674508867657680379464919961385972260562853044051376096358178632547019262532756878731853149726154534311698990196880114279710260522859913617057185508751811044918938935290037485640076098110058012058980462078253616111668791464392130208286174123848097809658599948400715409678029149230998127938440691130117122853101114993027779370918072314935767731661382843248682051139786536056570937771944510328646509047210530686905746207544278624478353181656932987100934053844987186925546959023884170146908458491760373755161780982168706248959327667163512886606012684453022681856193455284670218931290073212527802550192880631835008718196545861592556211525375784381419519096909386400085992837045450937300421453380091202830355879367763846062946157500588186704099960097945087878393513488297297250481303674745301394880374224042401410048028332175002929544449717346848612122112489956554831486252402258439292979229052640025604952251385142605133497325688463160447840499636043532521855089733362294520769513423358341646522767690671229441755066448048909927234437488764906103638539661881348658222458092576892414000051898628988278975136469489441140146251984833279172206347804311247625568782533214554590083768058756820721691018400091828673533705479225759276434692520464409942472226316898482685676081536503226319877174254902499104655963036509167237260041144465115918894134970911726767819502090826136215583410545323157192365985390579098721202231921949292895923739763086833958857806172332971927226674921889111243919668902106716562943672222510034289753835078814950099783711653726847956080192096402395060023268317899050670709033030968129030324739993309369388990765162721834506244987972115169434594034076733228449541301246392479404245949527103211280963308072435090020137362054964204578376012863206721996351247621888981399477621464560921362980892820165300154370247046389904916740250441197809541473770082563562681817013827183171687682698561584172857442424053532143972049719469380946353085492388272409730255607963708870329229761242948345377863452076860796733181783094639197161451438884429892206175846751108177764426075901677815362535925441337038233134396336555353193186258650082827680516379529589365838019866336535137405761652335761209298692009549760088140813292792016636235846273100328294286574397674311300223178590090782108634796324005760448843767317868748755991560540277929235253818439954290506379925155408491242531225084257323863813575668740513382440214341240133009526930441821500953816791135288373832629228915629316828002316893279933877464912189179901002460471280467195298041818745987208391239247201606420206661042795618932206323961724336303066976168408389849949482021677681460581068403784861001543463240629590237478906194705925919528455150199397194214854963453317649593161370989778900866841141290538232131032039114674173077347028690097290530175300427761805486238710573189852708122566622853207902100364834854879465140888096988357673482749822215338780208360663685079204876415392071309517237327496199979551509200514486853967363176224627354622898221635195011671876669065658416030730228092339955644142889764218584857361976836146316786717512584393705622428233797324831058242900987640434267680396004277708919557839821896141676007867331774907735679174725676505734004555875362702534403978025809593430209916518947838858715228073005957420197722190166677931820072614719790893923100765166513688304619372644545296446266597032312411617113499900767186139980715167360858014207062399810210165803596746450512137055114248340035194026871177340771975155081570098035079381471340206621583008884628906519315101515645471502737818425893546717059560603754834826776563113493793943208391833082637297730889891206448230730896443448652485932273684126327240134033966828296310279876200379008078302361409425222252707867087677627950403616740656167162431220689653157425249870439207293014334739543969706914215474571037344591096334982043802040733033036150628698963738210596588559904707849969991588681307324567273434655636730475931038568322069740124412311797092797157137767108728971452362462531897818151587991142271559244293168971282347120383282791771501869169034644131941265531831090959384497973169655856579886413081165181927233072334553602773115941018178233812674633294274572180884393881056510483745168127759032214524964686797238744362272783547996845165248534340536504270021010836491831787497974504207181627227747397801297246281172910863288651550762361987956107546053393965585593562735512673350738474899645776159439972721843585812380215818289461557976014274736436612887301346632711296826454362167372275062510240898736469988740425309969165357696187196692753484782463739595473342791730282839184782008756935137803673701022709157501991898370412963518419032122133166222067489637154339444868302915077912284304796916534806682199889665337592892550852282958966757788737071744833224830948975913325524171412959043998799732446370689150158775156325774804857824734490491344545409823863564877483684232151074487205643516575361543318770489458884547981769475662434939217029804265843148458067426104941068758036699892328679152517553295646270021911327444983936437725372944295232282938808166755180678900546609420687669311297876383623157191678342882557785341090952572130231836179464945553897441833151920383148047321296421829280265566337579891588601072107685340870619609338810972438907695349117501958336462981665256469568121078560711195062429499866035846153814787979809657776421584181322503321550689140450900619259353168019594221706728201564362547510912787542778938817451575951126260609917688263784767498444117814093467254019939787433172449140127755298184214219711634651515107371851740794449861989832251496325756300426834343589212655118439638522772940803752344894288877298267623304453223638049592073252420316866649773987808981448056276301155121835434090946352043467127084846109869237250751717647226463145898629127747580152633756395831442217525557268939414393390786460404937004518743964183631770534155211067098935440160005087306760600280167513346194396903551652109714717678250733574168414534719409813305651366031687717358720017242729316154604365416301689726110863557260383898054451143883124861393513156527499740008487228711336883591482583700507906037641166413350771504086540945291098494978635861999861891845215353268262508280463500740566738595419624008380325774788222509628233632551893977361306052623203295211527639737655004587445826673221580103447539164590094965982298792080209058200822612484195833186320001536462877893232216309267679212749112468510795890411990498685856764538816899066665046564834291872530467051163959731230891788478052273934892464656026101096709054173154767921048452211159885849454099671488898263852460231741275500454892691083980368843688988335493365622547883701681981550625996636070393184903817060427420635454491497066481382241306893376870324867089825777740149234367754999761753814559521485495638382599982777258422228237672289767125530597760995868927483397170224279466452620723385171783129823891009000632700650684644681224542279019449533722654193232091110197781787745468478245532598006745636310325207232760074926980637860901274240299975326198771534702099288438233749343266608558298205363154674963812366885600519407485967191987263018543719109665638288693061876854059300828204795607234125329667171203442411903984387418352171317596346541869157365561248820790781876185118598953098318415923698084358995720667156973285094547108804778559907251828287090073327920365282199379536158374812467067591118397934505326090526298806562885445078412255168026121982816578883779879004851779901151574870213306815104964363938202976094633850260280846557818950848805703874987861897356777946145909096993292769064594425687827224534643444603174434084074900858350523081798927242286592789982896760282615105576673752748408011605874024550385469274906701505796271998938381098153921641466506044914794126496788378188810413634578182392529406128122967114436296265694584616054247657132986106497040143975825248477604388210032028292893022671957342417515865515806251408109846912665928404256398407400847282302251495994377955013492626915029739337588392742179564032861165537414797410335518214722028269384334157542164806450876889244408775422099922694118216048151932570705221469898822167899683569884471114131633835938166881963312989954950856368665717603074964513337781191564106297681169715380394518027718846442936781409315640959547538813061986795106454840300794271751977431170854530871604477950552414450391573294862655985746033329483231169370851490371243548066485874361713249167459336637540489944910648726878551267047357066288083480026678628944086812904062806331337075676515305489085158145858042468436086916704745127289096520010678048277737694387410670821741756639052704990786480310732966170848366003061300767739585485015875774818602838427861521026242906072525630951166224012359827860544977923487774099408771704382045359896088699601307936157934785717070033441539351973924126389381625411510929019156231940953110673233803688303671304381285110303905051932476922802807093428144881754214595067044180862594852278686536688968280567419644486789997970648850819039191396081398998191036574447081424974524321455719091460174040227108936466465231820939084195805516266134972392469648037449907301780629879026178449890695930869998209723516794796658032445662342293544675525166801403498010507152945726758387878665604542741971239870751655284522146916843894478184089299514844713145625900031845850449304634373505870437277629436210288947980939185235231719137835754193090593113678867157932873684578723051136824034696554666634741476943368994843363097897505621440398656058373932553297399163678930486277385607512987358774552657622373556000448201257602207944536517872441906075643432608213560380727548633135673133727388351878399276863105599559374763994790353749753679093796007262190417297741610901832152580861992915112047935948595087540273876118225603695564779760056248177479669718045107409137998392159281680298082329127993436645125616838519567232164839494762243988256791789132013614023105828700136033238193619882973068288556235292400986183105442526957188690350694769138575295503527478896854932870784718311951087939382700799299105949453186466281112834873872485718309797040049538165613999228987345553312198023286265488722259574118842766380512247622056864804627705674039433081273764887499090525483111049576616004618789934653712882214067273900683087629880408179773375825417163480681668119811956114475607597021301911469699358553732659931592600708315143229348423532612241357456715941651275325098064937633538697218432272091626688835286985172388703976122301672900201226838686776520277865873522551618132287501683430698318790758189097089430687908890412536726644241216943690425825997194548537331147791531914192433599208025618575198108252418011573591341240059889001949207524658312254882549093074616332822244542928303099389894845589148756089284824172399238208972690781038404386504097500234492374863671100595145126276423651434427607630624561112430106236846302210744709413440274101172705609836008941131448207629507399878377591911831915683874279782748380719455182098352901331873020269049283362684848508657726598635666938924230738141580636329589052366823691811491395254893636532321943096021767089653666918324117628427751664011254324454774175202134178509570621369245683820444572494280060098697575260777814364608745004534657817844212163922816809301683948608847137951244845700469500591792132777867267043556150337851019930264649045320001190445009408709324856684481822959843822326243203593475792869577213456920135661848879742092311962333999327374644634654483815645887767234586799841732697581581261632418770697072440709065219333017386597487102285646433371503243614993477384241555980231146937187833822060862683482207495463075715520033674250756450398988238540034397929309411229899749974071416620132915357218095655731399558340685236291353597790536042542250363812619712033017293561389928207304488701689862859073006890892933853684552149558201652159079192453031453178402153895818782672472799418334441739302919714725969008435289850112754786582492195020935681448153387281125325974805292792045677882200926805947672914459276769046434216117604843737071155499217728802066106539912945983051712148849727339114270113529091188603161780752069693479799306897497892626306798697038319738773605691361703865970452261465320113508916342042091126859329058047045394654456526206251523248223225297166651524086078856929269078614614999351082031115915204792703608265779282861187916699284274335747157684325179790329180688092557750983490514780032567980423420801043483461856370891245984820766965280567550291034216359711009330158229129202599350641747246560833183010200538163337299388665568495605217617374087913367415188194834649314391129959745997728360604078215796614191112986480518874567871851713139869630434928077110749985329392830723937583968161078781714156802700057837473598206731706847239153034591097482240747053151704741400715899308219005291883440446461002795672981562856418063693159529315026238946208781372900525861773549481777362045622967695060579756921794147001422876853286487111595674959364209993647343212893096911917864506247079540677574822865528031907666411113612196167105252866855372687817698822480022827019777536229658111938027042985840921327211711994075905736309063890301436134331798742701387238339287407205461270194494972927136853584782070119342729784217481909170488595741959456873903413708142888347407736122800704269642129169749759290679482761329539850043764627284817576320861260594448733161813542349626676362865498317910435430395466771680841204118233689206755650733926362070956433293587010286284498311758315176087464974004376286640812540925345124310523076685591030886624687677664095067219684597642665707552550345196124274356417544486490817525511959845487314845767150012727573156163521975202115930399672071799603910898919954819169565626051253298367334446526598314895483252529031636886855911746395238041816003808693588395271600940699772000494910683816237369864182716248700723397264493116829707088776895697867286245723896938496097849291912259052115805771809288088574854368703914817834706586118573456071743384433969889915531918142386510155531958484720884068777453546907541949991772056455741619329665542711190707167786504733757100989629057469182407766460274048402035104443306381712033459482528045474948315571305071803353334608040420811458800968961020444778364486613731194760798348356283690540507452362790108471222965695673130034164845400939775610092066508121041867538420789264742916204337736367664790069953142111211139990800306824710482649079393022569811604449346219569988221744937220033636933274123708503190098695347889525960480518568241005582873028573180985193648601129213363135976244319001426948545190517437625910385979665108269629990601358505470869405654806067427625823496065524844039844801673600031899043664575064765660012617598712995130226452689494170465205543838713097966527340453909358650630163243361392970303078162454895314057911090906393818516127397940084259625062277849926698526930143875957324465796726761203866318437976722176716499727741257937132697726588739745287983862014248930607248533553546597707966576202852328708008085204628697680336179711022269122634631093455425193376396994131560945196901734896102689052946397129774353341888434951312427782495632549878033075475387690120850578834460862138997527077503634790332448695143935445346347271512534312379347882344417600440675105366817411228469021523237291280602440784832558957923072005076643378575504166211548873483713165474975281704485136713111281791798149444343464816753552144519011006679337398553698096300336181106011520930044744093590528380405169601454789353354892144987182010045995581320581521184003740009736352760534564776290926861960276188163744790131396870876349004484070124790604801180243893454536808435747813397987000808415866056815476242050618635562347277801685208736100430193191860482216440101204211249037838287697158464528268824753095544779450629909339170937236200957411412450271681101492939624175150065262601493386874981663939635668570872865213253130352623633726291325524711305209744060065563997803201006634143989018556450977757103646126479448484948515531638212007942549770312148703998371584862576293205474504112967357891446498479529640481460740310794196027275392786321796335230936688893381031121210531085614386970253952069719136947731174402241653222370704311875269976218058550237059549042901595041350439858055178910572892103874169537723119628934385132039840390943275346699702640938510707480864686647386964294393388848991835849363307540174206979934840998282720414723380735705519406255077411687360491878308417364398566037688035615080840277621691576325831321775272249780981113271671707541473209688459386888629687225829279182772292022070207366170604796830506358802163253492381632252528006354318738054042498651780471454745446486022673304198632571773212827481580389389419042063620857542615488095296922425611606829584949615071643760542053524035207105376337883980932379171458741081275696066664899722917642383534951615827486880527923544862808251786203880130518422081942033266480789962695469023761740899001126572353377701580847588347819009303783283392805208646395783828486698485031400638315725483189116687950267146605155423646751939210634517909807398063464891179613054547959128473482396455138400180419792191809423083746645871617382801002685943941382735315945899304749458805878523682762027578582299945010331739850067334115546177805093776360482150476909378101382557602827089958840379148491836511436899438900114955434636891803386575797859348645036407345069720555196745691675263621884107325073241223924282573857071476510443624092963538180345919394930662452931585769958098977938556682519665633266891390289234786457785425722623854926936136495507871767756849035521606237980575772590861714827362684532698859869138074370141536310619034332784668166854393241351588146564759433063862939648366877995783759485103867738781252878636041354097072137899301398368235503337945320061177611868692992756245477195832947201354219968373122066215332262465492458310087820700449402759840819530452853602162010459036043011603117193906541978105404153302791423880159332672165643217212424415318195257259655791546444735345244317212832723912629899058276471301319942507141531857642609337089333968357232505956869231605269087184584901114714927035146060349519692664411790286071119480346053107779814989226027289199352723267455922839366478702234027912558082246457851749808850093096925029320425037430179261951642326709191881118737217947571445393007078138307151381006460192269226027638455873794784007677730202366376019513919555300493762306218607051115812731066515672854564992603984119045317935029151960669619548819975850922345130320692950380976742827577662660317924171587796430165127643442592022650242795102461232741369376229326938273120443508752732570065035230275632369927197189265986351216035265696377090104695484859709158405420550382127540203221838776259066561869160801489531763815804455306373109730333122615725051851169188677624123028409267506991912945477868222763271156927604973193948057741203030169037265287907132743682730780134891303445195425998090025274754082767849021586885157293521963879985158884519170379046916090080231653075588533475704138717335903523938972589461576875503950896683987508316786328561351505105308391540852825979220787432042093282927370569600573405940654370828010171973062248529897041209251100355506179613268940331007219785125044357604615792324780432330001011714193757740732348420497632062800046235305940147273381821802492658763177488704499057321388746433897819115673959131770233326893674701772596701961859232416908513506370856962352404128144310243773477657549468626343446723886068211954132240912401920079082349932080708172070507669204060711155090814197636914213295342953697982330719844447450800582311359214505907208910920539402159204361949019705458136502975778147839488124275330331804457266529069346692817865631071542253483227365574430028104140582675142709335809494699710680495368149191676028114260467934896373771985362427754010046354047363735628720874373411595215612268076649601822441107390574347695275072930175679823548627065022045641102527423718450024440273972821508787496766098718158893547717029236595840883500088377161892844734997062899711751964126169772194603899872523957009044831854548556132048025713569044234035054727480636297091463677961936023200846683545114787264857446630801643559500871997927212032652644633163159571944624992135225438534186421396572259795767027376562719894968068733881932712899405802223149686744911714966067475350836697056592450200159863112643699881953518516394900143646447338344752091909724304440228330134891319745104540247396697816602599326316527210202395022679207423546642978689894076066815542924454252909439831254555947909252248288552221384197092749380002280596834636750037961639406449954798054155668862574370996579241610114622432509276079058827160112497145793400524269509727863142407523332512021451185378534920960300361765651434062479193475139255206142523680289236370413664072734020197195660850384782925910193937634717996878541446533999587466278773173334795054793361691303664862782488047688784168072362275996716121602994313607393889125490693484149678217687158485566797301499481470844711923800376954176954143715664358505541841402278523121335922329747056538338223951597876464553106640058488658590900055076986545025624909655755420967074893578980145232463598589554763465076581893455632893940560992941417234773074739030022598632322321242487984522482822342295886738518599448133147153075981041414579702440998666126283805724082701894707758940029240158331170313362055852492960315763801025266073138441357826466267501588271416867208610712899101378512361130977062046241990644815344436590355340282106250001142921488473639749869509673986062433107621637883621035082562489748854688527440004337854691775975167691865997675946465974950208786520526176309087393199906708291177156819836553930406381868371633577947028316413647587278544870749187231301571003224822683472120480529859316081161061612742738862599880039089851152846411240623552766200900258658937506961415725430734779927603510542950766354614996519162134306224943899637064884112869862350938294013642727591515174666249323188722158262718300948731820452649715889514031345692440232630766350441018135502214645097772647624638093949891241642804375606370128127591256677765393502033564933024269030442908082086180119424865581928565836342777622243372278736853352110503550770524449133262143359582256033795618891534102572061658552838890942562865175950564361305874230268043440835871267892431882747644210890019317729011799106432487752649993942754263762295717614181246894207404360520746852233210360393674505493573619784061157482447348312655949121883670147124817164431032995771638033702391288635452986616686121228719388378043745772573812509278708043308065874336838926149127132239592477388762158961765533280733088226534965982732174784208826755053335700677217469716892269100605952739753488694831509525601135648114903697771084558693610366858597621645017904342876005372715832696052968589484263135429015731646498937742910875783873811754991138055916936068808207375129546524663688861042829429658575367122143992615604670920584844465062918945500735397218806554561389448317074189372865797811285448222283315234273454755342292658204910267189348251458556085115842370902371356564802366718865711728043563642916837726237809862093936556729592685284336615117685745812285725939827959494884490660527964600143434138442376846304255592225393472023706279405020519586128040635574978267003907413449906972814559685038342242774302029839444445922788836300901908835455635362805366080351584223026892669015235670527463790661842552870567192262561883217982884872061239978524250649060699887397411140984220368213034599038670052915834379067177029238934447073135094144989351027626731513519990424209794686708350476092974446790401933343630394573773755398276355972200727847779873897485774545133624843935093545081232700576431557229114349933618037101135570291167278566609008212656951029685908039041154009961528126318693336853898841603461710482405651238349714165855994981265328870457568802238311964946140148436038632194686723527045785167540485396474940806470127159697001259401724487615202846390498695848291127165085501024698130413888206948328517023486676145715307120398972285238401223810497024870156772267382432415611619889897672348575656719210281246365373731500631761986765161181064245185589844277273512479205479871650775781514289088628659177321624812170613505012505734279135010599147500038131948206318995140602388693033160892032019906950932009868303263926647442008734496068085253663150014088771334943381662643692431993452645997342950109657392814729607888793425067919031174707557931639753727818434447447768532674552790456091097532559685907488570111872229111046641869264082353647311181200276440420576159995015896304290502873407444005860217831735883593469230623905019264637212388287296354649603058071824816581728971565813238298791004982882121528748875778819017580145285027466832726652165533293425313369739832692208989952989617660729357542218509468957001079583304275550881030261148458162691618717872530595793790513234558985801916067479881551280708250600168004896609387145469881469732999305117607557301506457320078105445282345687147888393093846091675413515868517411614306926791178830487459462798194561103305733451141786761061159550958767232822932301589143245437133105408912277781687169907677588608510739392172553161275794154234096563055986481802566545157184273119305286954061505799053051681598326899874071346826039455871055766064746291972073621748133906323392713988912495848056952176535772629259176560172319373263288568563323333430885928954864965510904142332087325333723637261857290778661690395603533999770146552783544485722037102640123371058481763597816444663179292387542271510321989791185084657009395113293294724235401503379331621688952898963370348312642305752394330426041139296767683760444929760568830586736974822819471990208492072009952556098475423832929039258713268950935358782401945916948967940163840064049952798267728923033349511972949194204399726386444252066867505914002410181123920838883615963499953382497408916721792112928227543841789177523606713233940331050764014902713998256736657762812309116800240600289419150130600049241401536090651516084790849407662996838484892572022674307589370366129280496280295206630885655948479837122779540135770265974348638970002499803817349413164193297942153837114408159918316915877846730999901650246835178253759353667068479037857423863347085501841527917020068307753661530411788633793290249193472474411592296732615770706118829158284753504461732143120723044173648354494494054461472953768694983405421102653422193135031648719604763421934913282984063792204425682783576399284396631431600090895987995460115577796186403094277212134437492220317689740230935254978241858913740727507308075523987085080197796233988807417595235779362565590530739877643146828397912621232802842037091163472018765539792485609983257666864260752186049064824368804443785032373801937721374987037545350159944150130038574796658855853336535614130931906926131994677759342447692811266714088833320683689162832893926915961976836367283409039724936562983139260444464593061068600216924101562403838142880558693413005418680910615260886912106800953324423518520036775810980110335822870543758172171226792421364147229990552442622061966877577574770230324354821723453192095983374015051880694335467760858549828654928711166372534184733916588138583235518346104600424789137897108832038856584535047214940129339714483760107030024348925250879390003199548390065486951239308328924592187905351508426584033731937445058814100357104498722660738284501107610241800203874210392815825789195734048165415023436877685836372905276195008268183508371701250217334525902603850657725876121298202779250322316682548259158042666818901600497431751181966468733388585083122112469025685574092411169194314988723197111856600020119534878121349198874184468337324851319834566489175676191146294855392961544030999980439420616507995069174864825779281843197767398389407823024286867020452707050368506437599680485826221007477638346612722890123423463125729740170100676308464238161956882002164522443649252390928928465621664735251873043659297343447642423373885588065244858345737388458131103447931268042692025989566393902455911950238642293670945779503105308990438653340295181133471593698985212945720260054681504883329226698548152710747643270906124257555110128663619011252126734226584548745430801852620029795270731292060929348982265705462789114367538039429580703616810437761230393159192359014172951329051731105504853819037297334419504610175036961162825284409698244301280602558675290084659214577702886416336905053458873913799749089854845533810493876177688714120191118975474265449267296283536263616408664893226935822725624779092081299446282656963188318861900590098856037246293677718971962742133176925922139023018270623224514491709346661496421083326537826540357910822047887038495312815738582048421600350990000994240405200887534440691660390608164032110916462796455757335809984124954899394661199007379459110706573861917587906622106703138766997858881359708888448447206164843413554085044216396916138965065804031031624223444441497535778421747349674610642998645416943498458069210546953884705997753562432409695229386258291545121399281992009117132878902977210644176630307551062534064527164750069494482276482736962477936087577702713326608937256544890826227456929979752158648923850995642661391063763241267724776152598111475266325672602530937900956085941342724987630926354975401179330181073066460260681562170183058171845915503814153276649547850917343193124509070384763159319541851457591317766534516706520426925155166297816030585392165605816664608901502679441137946572160393079601666297127738109888736586276861462766622951536173153505907972037872445337106409236614745232360427222762714679067000058239220614437415282728818339219858117736778546542000504121737092836267060999362597653273765952779895179672583053287894354819297636483932448068856595250442945389055660775449357280685288356004526518843451248501359633564231876218295062339735456452055267722066623464398491524080321304872008630112176663857109174107100382064337207505210857974483513559076050314582006066463365052634616558128727031591490675386183525119019732594601352609918337210092403475343276440330144117731469707489323777858794819209322388463678012424412986877815365089203548806277490249526984869063704272534259023821939552520952630921065207431268515354613592609452466011574376211080028303515131891233384942286048788005389756075720907298453250110513052719896545283273627531728195470004570295430195702298030438396993603436159214149644381619056674165528173096187780500456991552848583864269972839059311336885381534823640092638251350031021616712662510440054683118525878562098525855500319798294025596916655722785105735428749719583794121206681786806712543506829691326364565641687608349373553883734995776604173302671276800792100105510411443114649895041704847653234643689754136974213502318676013610330102031769828991045271065369209929810759585411050472369144594590704145869904793699548963203521547907403276245904810210066849555619270069164992818723206441627179481758727151272998483183167949918942134717237502603281294216175485909551168621949414930202525908950140128954078353000405936979812904712025633238698344099176736332015288090304725211975082507426744996414064328761458339748478586490751416422065405501528603192599977797438280602354129625900673667590547899104285872295524120077751508374141586911273428649931757608036217364758394155399760414520570988386648364170695886519215337867084201826503259727519993218120691347427748411503988168838992087915351423997899961878247065137269770294803521375559932997069447632399476251749820674767737539332865532010954712013537195182287416020235665248246975958312706880141914705979665690035506419199782654063858729468309512535438013493603036087095160733558817586720963993591512436940523010537027029926480226392524930807505802236416664506955106455951182951099995988641741933476382907152318104229251837417098396713482449440551125703145459745710690243911049953687488918035279484540990761396706576583301954249403068529615756699375821288852772640871167963295869609641558843482933573234512572643680012737885254477238312290356034950250824800378667101591180278931502044729646009962432205636129450680906861402791886827611890110538273985123309636198144395418625819884449850618059092176371516721147918930309428553318681244112362111188110470242394645435538853230531871598907930759978633812137710442841916639387736833854273244676864601131697599114390864331768560749732659715709915858119864815708856485224556284202390378393097823303627743830112056438953666669169605912935704549019893010990087376510427581840241594290056045220760048796185732296555786342926614623723162444643948591170561802444881357838159011858472438585363734965691172159787475839428961224391141672710780780194797193646395870005162073103887267511621293266752733046424816621506139381287591934521336988702451898703732003568838610409982600933356724785822739278729201486180259942497586333452427601768673805563626043944108941821402644382405691337791254884788344464032019448419028076912101228522969122387005769253631765444465954043667468853432342880920161545483921185798242256015613327186284872391417067049781591974532237275250470216877944933183311127403135646475669568183370311059839215788545043677153893554571073609980117911125911760252165365366680850595492754499391484160470740264343377143840194181643219040129397444013465362549588925807122441573815630756429499680052984269441764225121459685819039714260718898032392759640723790176501400166464171698312098426911188284059344667201884081942896556420631245680894036023144013790343189641025595079727741933618246342769179892981249084041579269878243308171820303828088247667288134109600565166592682426478282180436461750745820070350616864495288358710100394699297356817928427752897090016218365800941468232196278493074691572951958304406455634572244978711524402155058920749750879412316471500724795790237011634130424909947814847758983961066004412670294727923227890587506231243481775357067461564400144842057938621460677394732303393544066373895366176185984396137305845892402138643291614894797524011704654005741691046609372706121063056625944019626577591162735777750508239128470516179960252116606113763292802698136863544615043748956253461937720749457668884910834410252175275286169035387886951303226880294531080872646294973377170649380102468881708936917877734776110647311349932240143453317314093238542646430217695486562264588204027681444022156207890018473115083322850581357695836399430106736280825961134047423269300404047047778415552181136649789378557108015709852047309449882325539434207450449018125753902960720261749928525105129207675197413958592927945010170504170484782285516834285926484652811311701151765358538796054721487026935687174246010276488673433380539054476221320965039343190795919212635306129959237807211189851207417817836470807951964426143168524375608698653908848155540859493066513084295164813116910364823673014151512956726500695325440692698845912716907840867165554063770682057872170863868610595871954093075787228198539441650695156435290126626631678291413399152036719492869005025867583141651067682763869072495099498829051237347144373519104376718434272595512458269541071128392268249659895522537391044007183227243641694165328288241633524660110701618154435413876746963117148800839422456778235806465275527260536219803267750333132737518287263833166140147142458241660506848255432759839347160252146321405871401013656460169973045517588758846235468642218858420317435900609905877065821541309377020275329642724723460778855854377164031141042132584462208595064352397238778966566564061687691983305197166752241339268881044838537582114329004736298069515164630424921456346136348496612643823928896766129071597854845915502955160879105302975331150174943879096974477317889021814796072172739166194002179550274114196730209748394983679644917239284596522788495910090751847256091167013756003497437827451048395058553951305848081729580576321715374990124608103256267981208068073310904199205307130556791130041335426084390241135096419849734487632066929145783937939472338478095695799327264510734440447856654699673784235922666159628229894135827660671322822208000975414886644686970633510619640013230662348470089958376987530869667249411182143164559134480416854442261052015113055226797395215937354150547228995816317100848763584987733735496199157418968197408807119727564954033267280836994178041566446610064057378815289645262854510276772072329864041405096706267415790495825640996796562804755677932911447088456408893374852142685549595998394861060597219162561522302308836501921514771749566610718940548898543087003463675971829147108728002612750141612904295728205161595191291911603113154863442042407075540609981709618700701594087371355628730445816345103924915168604243204001390322166913999196390401519025400991635659408993666139594143124562791960076694235615197675050524483413371217689586651252942766357225139871046953926568976290272310476508257263249088029301006366399215249781006496404076806967525881951716086582259908206061682925570654754318557816081268897537960004490425260737271826754430372169697454681079756984642753185812179555909058981250850488879080547671106097455887921753559316516634662331493145239433379358364283784217410684029679055027833320940774401626290423164610435091929418045030081764018332550250022681618933497077113841239124891038155743305027158426465432497436512738362273432943551444304905001183750097029005360405462123052500294420004677373212338983803371729162459241398535796237422440998965922977925563500214902961438523787232846133020552867204005207934306902779242155288337963209951988326123289654522085855770080378759841117815618786954776859810956570658284250334839029454116565542787452218986568306712590358806830555148108614944956590289911328090895230651499113254068324446978475828449894435431869965545948707224082139587738524131933967573123500561023462426715169823455553439916739514772058027335242360216289730208583368905467957641496941096266752551203694493864602028567365413449137239417736114078856744167058586983511702350930743379746285754120439480312164914987910202908543653537459782779914154246061944653951972624827309344110356340746533870990058483664463774118375014506466192882738289352717888937760360193710775184047749898905762152730920346388932897527456545520332384083516373309792204828455310729018166440741562416922800021265995459808218446169985002511608695036761522519050343719877576160429859519175904517652361917041324277449648652145082202225642758776309898288677242027133563172389484084135165000317559962744362294825669032027145316257723847901179393866645900622883744740794093924872049850294138566773373673032925977503725283395641356561191063652795710694940429414060874815770436443369751553920838326938553903840258183320339861141142498909100433911292481600016638577474536053709789365593086980561540110977291164928211362227969608391841577473644375851649561239106392582733170782345329675541955862648355201600827021122245444685435377914933136931331253558001044009128807050410990616457509924603537905078140036195165932638721466582445360294648722776721796393161101736808116791640909204601041176518628061105536866901146502900902991242084051890839911342821359557797045321415237917696159448790010377649122763985398687895009626935724917007507869949821130165074155040635900230579466540804442099714552594076886952494627251413279127539048379625496099653723647096858000611895682313396134009414643825541285586608695237075830349894253490009845259478329212548942689754568701439672157042950078070766778084697117088623346285187929623298881322089861410120624000030646681286252609770276939703819339199745816441108165414129322151946804331460086708308162576997395104746373861836892521525278291911893597446936008222833957209978577714135971844722254288619504591642484233274109106666153774340219433284662996348398592269433208229477265393899066425844707043069672290390315713083001793628458942031309854504684830614587550609072188399728456493068552017429798286473116875229638452561826935889787508853154741548343021124883408325105714709275861934834225052966201753322525774916291291822768958149253888266025248601719850560122277852739294171036120317026186284638632881487234632380127505886716914969539041105877775870978417934696413318947915140599555298808702837652456784712092408727166634848386954376819696978900882412832359475834463794985510590882871939481603914771749601519910032483680578752542782866385863305229518128150180837381866148247216753075603385029053427505267410581901944302870223093044601266949971573941664218889268992452350701816782341372098683336175606217048059286116804844530329206069684838622805286060216837514200134586589867573265712107435131133690098041902949976401080639426930699343163562303920865379640811213683091683362469080892754266305711414394496600812847537954760103658430198878145611307899237332125319201041645802580470802206093083757996440955908922569522450816729893323099241992238180894703459218990581184119865230062922974145653513408077806114615061922301915689630160865288650966233569585788855093262916189245968918364952232596414790775001147290324109547102173161116273536017512033103692815036608039231225087921688422125471201715420788751755328460024015273622197558116344675274038122914741821964594296322014257120002654485058023900829340949452980855064345713190924125633021079456862025920199200203660630072015958252587101292601321431812334795874646890713958683533831708700157012776078311731649850196407691703289389633464630414562794320613256423585897608496539362265685006342218245782771883527377486143982359094818742183351202363602183791286837749300498318874572698854379812324244202740757028612297468487900477207612277502712843280199348707593343738580042789339657727629338314705761136589361114434078292056168630824971876566718199695258189632891378736573270519587593051564460880764671245963848213865039698523694744246582092916785812058424568281903523652606056532492043772409297757697726997001321180826046858439768812390713459330420615311313267714983773450413013883016195569488882807728599451574491669339810706551887040327683955259124679149631875920270239832646423294864391186429154702658926442016289402671940143968046277060040320252591761820140763435942814389989410124912034692776851304204246376913055567097378854571230320801380459647509593323850606399211668830146336792937045564463618591071590214215721087673504387068936369556117548464863007228140589865676202734802581513615147964725379213639996723641696501057902825962457470267971503628799012590659567800350648912527805101394545299078364051177243718090313677152033968089536304142253623639333774647792176899935145769551583159190640189382332990911699955215237799563999401052970158225765177370525539864892637664252256751380164003236533686866426689557366294458360323924829367289736468280657988962347218709366823384392624288171176283541173777043661761667867123043388788494428809035812449374253814548617984893398393268173558509732351752484001685974969489362031755895668569408977593204465770589987415798974139758840804914281994059373498371218798227901036789716741681418953947601829219321176423362777179624240489605451100394037949702802635782771893320905381308920504556203403362046747760700440075790814534566464032666154371413755944138813043417135580903884449906441661923985707213306087326471646000161387766629843328417207787080213206101511006504822218251076853743606174582766185170897667325797220896866279902054368287216131336276658282487669048962142203024941716797803615286902333547936464002279918249880473995093634881042704736052175861725543048450227731501249908264915803195433491646610320434329875564189451881394774675447902726024907633600239624634079335187865117194611957965775700881477790999283273743416253315703570863696096478360173134746490600474215102185172510037246934280651105159221192384137251698108837322560201924112291444483825284855580091059597225745392878794321449418205785359576452506360825711240947534990191429233821406122150855102388778391249590976862145465722274965762241389784850129648475678331382225276806547938725047790090520846813372756511282616297981819517672140333474200494825635506553382479631517224423791627761286786237476609493660633389845789335843815324055307620639295119875322156335200373642756799721241391002062627459649156481625981729086205436906497854933851981299706363905939853615545058722613634526894723729071801563500018981262206501772970259274892204356499929416834725755360230366984874919833707038425473049942257388503549840853729420995365765221807296001838981910439284086760474274803458087877671757246682048036971612849527790592644939115337180258311669708294550360140378717119352242866911868095073725928967245063522255577123480718175785612191339530817646833817957176856178891542956291967476521063131854034041557263024481368566964755591195709619222981664960452932494403661726323668033973212517768575564182160988386602883428600067792336317047486203180262753514537882934324553819877536334719305130044963855196984928707794689913370264708535508956489478839014220448061739842269334836937003752076176477447259809506080608174985325574622809930494126260586349362298812989104582921297695191440773009200114578113217985568937095832296695925205502983031077751212309921732797136624486955660003975402882734386687170214996211899167051713586261112506614066132387925128025708967262782026132257831031126082028829624218338396656298187150551627149192815412757455626735438752262232545839204650503871245705868868654455117160060003284811214529815160648966868687908671411133989932359470336313819265984257089067507390814689956675407602667427853320889361472062914218934163557864858241709260102624271972765617997578901459820901735134202473665137255566543007511299537613788277213783375025666404293479404520708089523283836446910929462327965929672199332744823459224513535107354352798192691393145613067865567732547686991672476077122354623519759025819099351143155993354506544185150966649688637369671750467014859318641727371281029633713631587222485770316132839263219069923742002527908760900458840437272488918163162848508167503587904878443811268212216944839097889755890110521675801108030836620667536969029209295254466231458091546552677684232536851086598647018573493869528858196336325299872927754181649791106408458660786339730536833037585084973269270172956226315600453699084977113665242125330349250843796047989149342437697016536127266638206055991951022815366642725077054813069449123539201404028128079640908332193916559591510829996212905496834940487360635449539872155426027611113827398691300820931762122651421126424040556400817372984374875539490090841372550655030966392467892823067376042720770904894905818430629302353311289112168486090483656773951051466186921394729755345333168260004354301826251113490251528318026484532003412089057595810326892359558046067236001751582374821190306192781670645241439845542408125443179831994000758582360056786421512224629798470791276671390438949133040654695402750780695982063742452176121740997924713618406289530686608503446447242238865016454555783743514353873338415145763784448355640179883491759051480422739463187783411119024879868177730844145398566775539788634892645723223995440213494603355405341359335843337862899638347350166277729488641019278229339574309287694180737862958331666124482270768376683374053105561524063216216977453595276431815850545782771057321748063981114033067058099077318119561241697300588184088599861374339412353281205103564116474143923842691857397267809551467052679874369577580819970479959307078189782959053802940421925173252994773025982103158063760516412684373343897731245639050573713374605977512664965583244022236618614024886086059230689578354088641927368047376307167785374729001125693898953107805747414217145024557833273511149624589104600418915492831773940207435799861809629508025863421238676748308540584165982001163218284084705909673585989637226760888429040339561371669699201799647680025647076900486897532741036688862610007394466042157297760995145579992961756349397188032019712441773687647778831168923087769461309115793065450447385620408119470461706021091306840754731155688333779142041652042704928990864750436864397882351287765259328294643762661449029402513335698039285502100928018205618353170489866038794540845097864977991304684838899349128679538163326817702473807957092291552357709588904084219041850973593503262858012083090631474784750503021025152478957190616758589727591848580325325932393289003582984793138081052297150524026889856593702512235240953329524539282190868695106652680370891198581324806137949881769762372213432506393006763899735539656601541774407508223892441217024463746716234115527582424630517131831504051176444940877862406459849613964212505497242563660490306863308899232577706382432173863375794744363610904395191592185619869557249811467901277381377548401812684412182404123498528939433783007204358497716167007379791297799619944264973794269826640337470844897377484009601108517242589062810867928089114658866001579962270978258356824009194614163772126445431092884913761076885288688306292183081472727189583381271395611810515752288508581837237269946248881136476173622510571579421439029708340000357086725994558219966506301131129277947147692902465751128937982225008525028469901720793440018757388448964482284943751568071005493641536196519731429145604619403701672818431150111298166128492183461793391592639603561978926490020403862732190105518344751520683659550410131802711271378235780687267028382630893773616652949700154853823123935172347823586428109789543032959520656388531142862010260838125562746538846305153244906032906001726307790928162647225834764891533109457249974556559604755505043511100110563294645139376625519208391004359884371890120853814986483125952184799041503515858439098477810055557536887829132177804722591782651157213438537432005851224081634209553820729629924133187276402239367790190953049669480794294794059112206895418520401996843164231193552645864342622705760917585967393101023572514513154543862710646976609937725874825216984731515384775690552852496899807300998284851216204449970054954197609877794264242003634239666160217078776389909005730844458332536404360799355455759412349632304267371862195174257773696158602804375538487106120830166025924637741087165062305328633656706358018772521835299235805938034086543821096460984947751996078179091927010212222365720352029025545466130680559952846035918985172086372006046056437444524346633102379539204282647551283424809793738228846486636630517266906382674701127273327060731714721449972675189799109136092092913669840296489398394539606528319584650774787823416026449831361825206740742570918098037368730020649586168572532963262178662688015914262427656522145773003269350100695134106153352305727561972144700794942187136869150599694212445870200389528244516822831557991744300265251880605022174030859556851291555168754927064775149006326074239768978407666426340211586704542870890629803693939761045367363907977065201669864855779258976483738482314471918906128528714721860528059521740448852841433239889005511295175118837319548969292146057538287917065748818379794222413681853889713757437234486689643693052859879143363410009041386013272232542479024963930913972562321523146879038623544668664490525258911451880287815010188937687956587371653719939301064792598803943456500565634866513249420878527846216196948499207681089873555701788911143623567292409362448332794663017051469835087984647235116369412981738143375440945457903468862577909063774755490593714801092366536881069744137141910530174052020337822140794396897326018021432012117527348878098297798887843227441277149958821793558479497241193011627518812884209560555691997366949306370206002256933361049977738387561838585093730707434401925161204587688287140061432494242331876615437928948519112011136209955564468975062292396329556814274438825480501365936654286054647197747310183767170973076886644661058082708444099188653040660472879047374044382163073467674246841020886574407363059553369834980961481694822411733732155299780105992513618047400892370139068695818817762434597262091029163043087071121834707263105192577267187297102710580395044946266280746873913665151578190353429147548663206588334478492619889087281351828223477427312095425045510135761486925078862264879460768690399322853969326254531517059939583166364405714598584829615157712751977521698627732737802973360476332172305623008917096068838104849860907295569545591714387257484474346393350143787502397773722632838343072556451159711076307307759020933294984733261935500010903764727897003758337013431579844134302010429669521047410449702180166766490986051148443336818178114050372760344899533711566742563339982963551439158628381209587320900094475873263290246653165574437602828492612623515933119027013224674733473215098138998953575000682132589270029217678068178800226716355724698243087613037809406315861966408852516965834523074557182138631027050588539744759870250361647099542956455510555306905221314596652999498974560121973997868515233975391861654315150828651714272062179360777607694720520004601582870956744733256168798009096485348447209208245260846750630732958714620136308008649353070521417717701651699601437432822772063573885819262087114304923303048416185689562381778203645659912947651059899218290151548439905562157091999838527650394540564400886837316489702011981262346945978168597913915412348679592010061559987932050247975749786896411379956622909955577371483399169554921230709668764496863329726607170869553098343493834417694025024705262556764454694296507175670078029828647386853451248631104578953317969781906980331979261536890382304934885876070943381776974311799323677179493223347162162098633079300920974383405552493802732307696325584065830055886454649115817996929400389095236611069279102571095637754352776271526418053101927648908063962604350543000254312918173366869167447486556043427913334627537134352386152742159681891909668050462705238703124125351258850774230848941634544362911698497831305458093140193097024284572430333941829019039011626785464444099580601943684878897180487932298789352193364059629205945114371472747162038341024518574667714888409875065775095545953366688247782560232834695130971846512778358558279625666423106884766400620610642308152732777613216841580121455732585605634078820141487196310118582464045579187520961367334872167377772747246680211581353864317951294540109055445183029036992443426814090772808546369400360415719768220579576511909106173771375899081845631612224021396819925324836300828445696707919958228343428558367134988021361440836532111014724068447415650140174418541939372190344980322089532795494858150061909123421662982342191609824882267114870789573430568010766563159702488311037814695850629327812390503533015511477123403173896365481154425579261205096660383362934751614813698166342362151328605666263894686649917896133936057325450629339526407861122935738904493401933592690154527952358746818134088391868009721867680772468379338393252775323636332827941797126746851772720915166113099004226250965824502967110003499284679269361732721710200334085079726178100648359211838031354041206337733688990248073886851513996740115749256640003501789629870421327331235617700456020417466808327625984646043770860157617045690203678587357237424364946383436725132841400204114588340759929695336059250492349254415208476301381179817279401670507596683490428155392978042863152948650670219467417633228112172816035189580818341556175340017034142480510938320589440776200493237403385931279873913898541157417223199896188429629442411889002761247485894618300116890770180890872036475184405719928614113342122341568475141852252468175943511769982838675166641476833019652191518547683191503893332910919258100816099352705811650233584473573429720740127763740906449530057424960361654236107077770852259522374429243718806868192238554184204452892509585329629618702650018595390649090919065711777205721677968773067385949165841934755865070827442975552801499833056629676827035227867292331785448241598388723494228677881416388303020161219728156364257392706412482539417859129936121395551235101147073223552630791041818997331981301586773551863622255821174824383557339004963415425287752087234896908871767055194535792912063408714006115092912126506637151624295533071078682566292101411008462313394967120264639548405130128861837440700832047272166588357707917665089540446640203534596302701081103440611388101030000673931487927564161746293206020397653941267291298625890110000660270873516914728894134667916929843859264944513516494617510316280481201796792544667531253822611164095204813046642460061544048327891967704862565644743249001606844001837514302534176631551207566993929392919626153371916301378333246368738315811902783663375469568974355040924345379648367647325299862347948858044633546995231421262834195372180108954985456037683440489988089012186605935490250819571873997657585065706568241371739799921314996812356863095874807966452254491796106115284477594462413875720236046774287195114014802576109964822813027094837129192200304816490584901097947061027649590933180199198125649902148686495169541831406517807947743913704634256135050398083860021009130277036933537870179072258997243727605168228799286356853574297688774965525193080445312702469640552035357947184871838976313813187668397283167574106476325656855310964425994612884928905199680643874589705324923429070025509229787561105712927936052594029737853834670214655635609512873227338114536155970489045091256954149848056394163435315183991682010895271508415059739878383173983397346816126196970539797791530720230667618886703390522322690466863249779269310305061118159561135565732661804915124493541915127595107667399101618341709610649595093180928535573258481480709674357311229956678643511339692320703715071894766308195365023701086512146999651400138577204500318651419951018840796519473612229323005505280223991268697211209316286050327674756332475145239173188903379362326941258579146015236804428962361302586022416580373555396755880335410064055303315934419113951258114387769482298633702346935359827624156820521777545127970892987573307031941473927565054722596116688683197812455111157789696957151307152467043412909165820219378423154453859587690816853971430514030586678841197696378651201663599713084674761435318348464785047231852583035278331136325611984323183159822458996861969976478274395192524369986708392965489915928207374088179541179313653701870191335017684769366830012225788551311274248690051336916902480379040377244358967906513048653968522150682453825765821198165849358291733774572540094963572237383773460223468281375067389415388318090384872858723556700482106150944180373233884952699878184104968653523563050610405613389674144960103599720192084102765870264243350862626198545264659682055629604429404863827065350988691586273776549113134824654811452011882115801132118045913747838168503335231158111762843019620604114555550757253669571261374795057795278249613946117156936925910225141963013914049981189764521548693245434780918034619772829809536333600063439296162164860429420156155724001893356217476544906144585678279637036558030243366635229896567370056717693617062635341099631647406417693983219247110885556380713057821056352899907379938284308964244826214256932162091165112910359003765523457373185675586689518392696644039509535313399085195088130819379595994664858351094465643070343753889070226936186898268424986209606494445293832748732942380884333515026176309907648455271079354532094012576010497705107194526717421288803095279939962813685995991007273808589355668438537894663142504281660785606490186776125633966536681509693448828464097982850670117303124266495594348199389534479087389160282574981270078558692626902527223257100061238241233676044150415786661855335596085850115295607261353877123528424963800167265433148566255689197077803589119806677856165369405251589734751805457409072428311629555052321921786853727684728621691141280094678250724774466456832779365245241859236261876992532362019605969101888025129861741438287415332589521624767937365271707924486659698292533152763131986637862688676679480236742554147741745268089050219730803863198993729649764778118397117819463584583616236308202452570097989695181100922904886865206468377622662704580305064448295978528913387478955652750253630852608029850632492865710772537144668204159205834642950110480527849697802267807811334384593990707349867227709934938362051424952701959716814124607574621190651008376584173223679817670483791083357021134830889922594912395337826867656469263346531118037495386224882985059944138525886048844679885682545390317192735960636352896823995312291581112330063761645084866522106668426963195563681601739973134463201903543538975220656082132969357532174774688855804190565745406906849627764888067364819262841872693470075531439442337922194722308095773671033413782952962167771778878445923707490131998070642883461492397210067930237474218726655995755068669627379803092054764125028364625847389996752826714440118579271554713508592409783387083637050196924922851700621041772351546267168452851518611602085466985767674409550935429221113402488352415198856468444499001038811323902067939290576851001541477103864595607283655890863111565800639458144745520913524498290660632511425536477757827140676866737445878399382796214337073086358517071210506562854226455817662833539936094183727405029825298908016641340679484087659374933559871730103466350956649172083012357982663687628990939544280709723090657455255636093377542460947733622739520655700266498513152615421497478927371615291650802015158540158429572864606274853233074368463100029464570730744041596795547942258793412180208140000348547531311261949067313930080104091768252431938422544740792142382657035218039149705834299607737119858818253768014384628804487591513627089904039816223341613893012633642094443577896623939509488487736331429348446431225012005154215822984453297160896733347136019085025620557687585281814395714836002928439069547618106594096010556383555245461782608271959701621331902503211429548276805075862246090325139953262903475906403252008079887657425646710103318463725091434162199393627363578869615905100631576195638963395249820735511018847046555638511570419874372221425952650412367252387489065516343415213139812349115691874577566313592159055476410606272797914703516945165327271989638419825429872546697549622798663431790928707341486345652727779016287323616958250836436213598795660842411265631546796542283876818357785300660174362182249947331958467863668084204405844630582957405543694525511778788545004386944340463086087921395833941041012415624597582824444894066910731324713561737648154963759704115970375511887171989864819843193556374125050218201632896001602709349548208752311714259282478534075199931826209964303642232353928237635531738062163152669919378409476886841694517604994334696626932612196326568948990172612576853186798480091756075079922202787985404580300573255981201153909545553755680822721317498039779364827602574961590727688086187625838937407125002692988591399420264649007873933336873431730301190373380828291627791080129393746176327693197161774002687597304781248631506474771668508380284559814662507796148539338378003015620932027984466615276578451021251706463839098739194261633903770947535715092687892443535261179513261154493806259941550024317524690366750938590176813807279937083450857390404190353367811216379073818271234556177699328033050566486855585996824634053885228637229345181710492651983956691463098368799575546196362930605304531468629439437543331913356902019121763961735548046844374353754488066103371106409451365509746133414321688065160367667019595930169365853500025105505054819478795595089299104731056220338823476089352721266326674753735534131891009907891889290038974724040038257956226170006410114024690794884322470418572506951337641692468183634962236581343990368336511955922595927045831833813708119840236295138061025503620186867893088655758224618798204456723308071576347259867836657245943253430152343755912753733204870945225098311892298623286805288270656014544158611636037953737057097377955532520191383701700312207185546579641754282404708497057468653298340121655091279987382864709307642684330677849290918761988789111276355918822047283361386439081295846858596391218822974871016715751277192473886864508492927207062527733933049943102435931572415340534794552487184528092618856816819123449739389909663702229509353587094966050992586913264170672460032657761600938376746460512042474755363711431689628622135191633517898998824299563804340047816249587651985507552507119562835241690913419853223989229844523745977520291597536681323145706447093004339882868564789340731450669314883057845751700882405176186146241195040665761374036435380458088615609801548502485242892938718172180043522664387534152721779608583011723924828703295524382658482650970707259518172771616053040831412785364809717370464954292467862265096700042893796830130129785318079075406838767432750073083294702814852742689761117746555769097890895007924626549398358779713042175817381784643161882922449204023344435608763995711335256163171162599969754687030883909537782012215187934397818414733398359058608183216775391548210957310541991679906309210802429406731434222192890188206235729265501069117221051154265802488683280740650427712773160043279242733731727813029540146102149213792828511698069703179664793250599004174399185383265909515107745880600118494931981860261158613541645073770330626906590611302326196859819793909295656542537789468121296975091507905983052572101355541185591719319420734600214440628673292980871595563444122427064255568584223295312522031143195583977762052587351338514446172541289654433900134364543209919356986878121119469407636660855541396348693922338353091383455190603458761408832990310410392088159140489154666491640469855773773588144687163907068841984642247779239814110225717548468164979425807278714921632701948015032050075710156149358403791784990744448327505079061361348518599130186899986306613437924335116924309425283066896289833391421564182914895253703305273984461841388055263322261409184914783997514813573086681217795115390093598781037615388780513563679195321708711036589778880923516807372157004195384654101139629902506997673591343251024375484676615928137134650762438620688704832127014793230148708901304452299070755334018236139363940236750730156530002207981769994728590914460608433845092282339588886833377858054047717556041965097835234395006396624268819958710579893325176767471991971882023199136441103104332847931823178037462233451081406519455618131195242476911790159022200138833866682345444564587273476553318964840407128613630074093215869245582423747603285863139112323666779173224843631443458856983128017408451889576857828530666295348243138947374266959690265256717855122945647775380812192518128210845084521864694557075592720137748676424191340312563696599613382751475120366089188918833645246308583154444226107469427670072790630385372057151033375909612115419028620761841991735994166641552268683776310112639968168015538302558876755528052804892658337648349423570809507699773717615692950656178703112971768545395953768249448004843465386214687835445027385812292592979020763162472128932589367731068491646630914736055669062061814996093333115413923692220269345818869417112321453406064685194154655211924025896632480892458077141792580322336265255364804812197823344575859536882567322421559654500667869665985571514082736712622588177003207460961457849284550950722739133444864724416258339686013257233189183570620438526530331630878679402798372170949343538297863917379496971103728728296776384181983531315998564253694431311170302367175858969372118988540229089875157794442918665298325456680452060355242746017678245701245691416686754654438189916403216055562515272109713305123376102958499057084904239538363516829121874994970256162927691319341886160810493172647126780964846669937063691316781162556342828593273521691735013786621371194352305007569751712007926759401485672254511313983049253743694105661264279306998651175306764471466513864958965846301901879494550578316253601567829078008807218924294337482272811232159395183091416133214619505307080904511018993872294276689934836309701998315140300685601060475954112604986187235039267471198659843060935471740533068286267792384066167879700581021482622572521481276978356309490110786819697392512931004123340461565695375117382513885027332235690302070698414916042272892063277373342988716715882933977514283913273673746895448462490052013687885334826485807265768612389399873070554183537587987516338070681705299399568440442434402599448880344196414789898113027139133747159059135394164343278817203358251912657007758744733012483747681415954076464742989657205751492788460700889559113386342104676104666632415490902118266473239623692180061118590951311442353142637621011030363020651639046185382378761352872828699788993445828224265561227040372852732676770378424892070077409674848853881089466458349073505111159871187625374124128345050817712236777935813346965995722194669485814759099218999554342569521943791468716657422191108430104046384286492242806937233830460407617703068233348826966319807027166837110703575729272758233025936258637585785323769650489959613270092371785328616311709194812176775640705759040111546947530613891482320215093708444458256147210698286053161859141262067741240233917428671641912643788514182895426409258538779388347003795801496655296576296486762575047987580705518982146789390974795929415913382524911527514989210254062274197634522152209929676623057953888712246863804396495367126207336410172515880043285145275737023610722569274515819839729015717599692250249925650150012920974875672830695739779610206584307685382049777083038099957548487924896995295799947784735325573912863942117350534356837701985454768756437430888586593776276790711941607880858760208688954047416998907216481667416854415367066220198119960014802720482165548265989073785524533537370806193251331992214489461705869913832584173525537581340101051077781139601915272732738565229404761959217216940424739053454212199333453790177912226171640443838820940346981822296919915702806394783991403315323031000680600891210004669993405506395742441068982768131681272674076360212982377648581535056544987115175789251673714171436867577778317875442957962692132881361004766775275029951318200271018855756202386053846474365833879356528424810559685538827328302922985790718716948202248145112235098608246117837693550268438937676697576464629938698867444083435764930739576986963753372269897860085193045973159511907172211345643819866938247716232278094570336182123459411565771612039230946614936662588480483918696810869523839189686549838278315506090217391536079245574259792391708214755002399573342050327833816452107681628767939675831512260180340827275162825207052039351027208228603235781987719388498219490578061221172046366362900070072290763032440241032633640791725154720737370159646260375376734988272926746518228226356665781053148813487842864897043207828371161077673314056685685603899177808216584187456055791165517279994564412699559160564115988209003280857744518465044819209431783087153905900519120372348018807085210677048256056615805589978362105756498687424643435738741268250730012845508091850028271862022326931140662874364412116975352477243697981906958036196525245700921739088362962861494471719551201585720583199851374745366075817036512440405130089530508824370062571905775497788312255137174136064056861931122344505454457639777971439958333910268612938923309492430069503141598745441287404712902488110079527135003960673909833672230198336374623305290459664587261834410619326103091700630974699338206702388650523080819680672508292515155758358470071943120499415300957275862197559034277154948311969882011424234938703104665605896076403416714994847891105264416770974388693380557753623233439887858581574922697121376108793856147598033256387657022131857583563170479886770083891340891168476976193446661305880223117759203712639418551880995013275426984565728463979157990229199039832248196947314107864118239068874470067083373121255557403163538328468338342832747097646348665016956290859512509353121017149686032619948692363412067876911468662121705822711840612213102670411889160222723050937633951554354098429121820365636663910803923886046391944294568196556209823026917863564547213786329142155752090632714325839946287092711038949275306196816834468033503492846304200774240436441449025386050289721076406640507753275960357978760307197658109395663408758156832287079103694738226745432887561234649039023490827377642196088843757716554516708367662807311618069628143597541821350379748253999105438630099331524976355375041745217016587837422617975320381176120269501163797901853716701435304014115945428370174510414415622914289845089072851288564299673397088190889158140887952729996938209946372096837381485557763753520568579647022650525016166923486232061266279562763271406600326555154731394891756177362786415396814082750128058686367225713957071927537237408840769512136136796999848943051669104805730549165714634220957294096092243606865236746172144294832712783011936837064512759407186984188427663720448469718886764702279126537809120500079455847126107379931937327281525636615210815102421114592175873239965810372604037025577064892489537165703315024014499788964370384395190009977380230437618669857276419176948336280809941907377346149877895513462387788023141052684889088508442258758018825904623879789990303390574409287161288713841607360953056621236720590975873374557619864758243239258461534483483252849313218432222006175489310907920288520643916576061724895035079203403112992281414680733628951973363142379011473586371397064102733681826221423477776025172141208182473607543127373488344526230679672308701977370456846299658600708462006501123383072367705981633488194735592991734945593328350336170232849404194665784122158677169510602454809493207691249542628300131897851976409181548081444482588278176872030837542866842835696633764063273947967798523083910453739188569777698659716907616592161448673150121577594015856779266473037610167633679108773912255832408230196228242560143223769032133994989701930641424468117965619299290446161161489751639771579743079557738076720007717274321092366948129650497096020990200144155000591999442624256001399378514537367863487270861070269179101017941839997999442507959094502111705362812102784349686439331255096972656590582530138598109015323088011652828620293629511635334166522369208522382171176067859061973663949744397127437134925162749599201581320800091863663526633198522541039311838715139173267440376481178806931890237192057721607566814313647200939700366749225221961305824905447227237949168973524297217591163774013727133349007892374177881838874634836493219159853617526281006696300485047763470467762751733675902482460352196890857091904259993523650505427283595097453360529522154812276924512417000605787848095793014041804863599046284725812340690568792273110603724960018318768351318577815439481247627270894545603538599281543397808503698969742858997700903532616656008707852573761321038514032371604162579180085495687080400823541706661195773699219057344801064323569734530118775650911620008204891044845831660467234434369741935462176398991902931102417674766294348769613135547078747407361868047259910571269757115136675442467588912270760122184096275301790785044256139253983962788788364458135283583690929715954137076109079239118388065148194594470990476895215498299813463833980196657485600351573621898159339108060170542852108538470578594856500569465083452200025213021644862880856791637675821854774312036065475713819621844804054523762193751096261630881013069342329934522622492281172456134124256429307541594679577877346941703319981612007566027699936396761887444499692930715752969255127835250114202385530445222584188551346639054464062351916974265861487560495789900754224949836531488470853051742514810364039798719694621667200004005978690132786743951814930016765895404685968007528916729455057410090602891847036424975582707961698839977609856634764876627475367761125853010752148668076002855640854373079315627810523253855490156786207725649122665887767142897844930114169150083943548777955640950973591812816967608786362924904411255232521703598287036906229191957949843354327671245607994920047294504585297000408849283487126790263485859687548343845414889166914477199262475546893983592441848372325762786882780435246829770607274687030975217622080031165545751490891872988513675636579574824087332821897497210079990866130696772821016161724428865100938738543959834382330039673273306019059180830861970889532651414934853619607619017781529737619405297929633871553846487851819610734041670810748540022608198468410377996284762151084892778370201387196558643406751451650296243634110034214932999205822691265613177842823071361938359489525335664481346237477635561764186546457257772708622019348428644869007879917313574022984279477826602059993410678521753054135507051124392933659949896270924501348264064178477486212556543318167751570256925598416118094763728693936862019206222784641839783197106121823726859954209569575545099662633886491206578266777444225405917077624170097221794649678334488709435040051296919897660288480042852660728700804277008223468321832939006720177869190843602476129531551459930490717136217503085206721818021341579896537726598296274100852340292514295980721443040810903541834442484327855003100193484184283695135563384275502692149149485994635719642303191156522009953807496013278391530628500813109993380219153437475247721220375020153194609780717709288046707362766249381823075385956045022942589799857891356356256770103401009238527134501238555229786720275672703631114023093066761059959096401827868053732081256900953014259216781856435538482725928579072441054496253254299989393852481994420228923742671207711102732275173310772659789741024475785632535238001893252664289902291228043385333390483164208179083931992036746949406060493420706951924697848106256315689281793888312980368035778162068877539625837607239659894212648813598056921662463438492266146967556378710397322931315264503656275244558336129803799752265566314192410049728259067989734520933687115864619520961943698566221192769610957911155581604635101913290478590193335291336308772979400398678006393805667799277210587082768739038809979318989805569679934035112791142506102328400813102393497558559220072520465859751587393752801711784645979528610538926520392480908452706774523623778099837684141551861156333031978136975935650214316501012213916686994009910346987365662093517043549950448595771053773429372678633142344543434733423255280446431866047885681943586786895300415300433449361084105155198577095520781265420226837916095072637354125415337893503553237154850649698570508739179576844428398291051684112221400561604414917077157511961115059768876725165535443829717911572886871827861406909690334511259203559851137339068107101651294884706835529111183441228142487654424959908280229968895065776258587841165074207627372185935039844925064633744070329995084916619113210014703060588347344910072508617633437572764820416470309496912800290573652854356399948846841852089276103374463929972883215025181464217542014374901812862873007516631746877353019090600629650887622983346772064575837277704077822140537432721602968288307786641988677860012679546215538132018746862141641751788531979248471764210212195294345304138950698473252873782700923734121920819669877758167177261309683543729289775254075500189998103198611949998678943007562195618484384327925352334822396963169160853872904351197186744785794937190262597941095640515391809944307936726807572541961620372422375743021454725450790549410711807344206584592619194962314897462283725753727075290223912583911597449508611915593437292976628946031893395938754044007886174994555582813974311839018535869961140620950983468588601562177357244864795649088394026993501722763501773169085140566588434111272121233059749532017610551312546713274677063082467190623635422920822102262098261302614376973476483932112547415930534057506592717212125779641592270562628414096755127472388948939457331103182347401190832270239281000491205761984834204076865810673961175354371334154989177179255598345418264919353210912476961279601053672746766995443042486728943620790426491042263687147006038822672582573721538196942677341117844895499408130505714854207204529205640527551743463161661454736035222817107623846194155794657123737520241886180123129878533039457818754561429157648920496862684881066139231907334609001956547923936276202463944250454271367052413990946218808566725867342101020478600510029764169024873669111563078244392806239919285372823334980376965768179894129965812360657684831597534552972924032271717990471086435091034299063566616523522336474217149249274270645477004603065938441794577865885687464951157643459605252074875731086336433795508456799344076955857363176248443919005290195702425165115960513487272740044003453139989940807055479228374206438670127006474434356125007065774265992946224626356698549852695782743157174128985769304888596460476267937203935593827957994577050366174659414138037904786259877541962202744592667285814128822570545094257608378011868630261272959567668938397661465613284523443491223704877118332507971576848787143037421844761719309118247855299272677329612299510905395905922371979628336422936606097292233454103139447625205575384817309337964020757498946464057773841960674542036991083801441901153973748079107005236935180269544630805468310351320302807639498100631646210208100167458649039749041515293679968478571151705015105404227043098111946919821305652605711589780827236616391839752652416758839836779680141650159090809481609547953774372677200939664635954590577779467367325011718211548553840141536637909855918800466071802959505005815774908363897105975591740276335749130881847185512924749943139739621543445848302726490425067953253938632260656937759983744805643000958195459135770681753009069734051160079632842311960187119706009811605926351731913392620197716588525390364078626009856851864700305828354299726475044985448701080245594275013702653113979887188816649040327999798317644895046531083297676559780420469639549629285386175557235357796409304627452902958118010880620914411424344926426181403710878007709195863299193463444545670392493197353270957091978334334664541645238106333984900576913592041908336992721716426761795971854548498789212905004645385548474050585024199942409673895657528504475665498372511425033309755381387693160185743802454601678309229342071320653055996667011046456752534649793477917298376552142958116061121789467103922394183783783141599371606866659124901743242167295193771654411035862163001753582715919038025172007465100003775893229052785646747927486097863048916267269134100945473652595316180625383812161518275124014070881911638473230603528786399452398042457299636826434143481784555541814273166564956099254987618796040773857967701345544262108337313184623816915536537978956389053153404111403085590870760895827812921646235759651145344449858872220645254648088632923936073361950174370210507523951810099100172854131004123332956899508805169664582552565997927707492863877584108836212019800526575725056224245779290350358367947776992622607281296952128276259771354890321997813602961617172552891353626930464308076697618945439943572017086622244145011885612274229082935594176577341039369228584481774779294603954155939847631100007952705623105514388586564060237589906782711417737105549812934392843606196538874084198998769997092931473116351303130725215009622117656335135859009490240508777803088570439120435855767873459612229239804294582467296096975768595218442922932708545643195501201557540156819876873842752596035251606449745479189721026087225251206309633568007748656840182335462109512269473561603984418739272278223635132471271940386769529985634930269180623463029359561212083229703887631324581165332544692593876581597310380335902429631539818372277237360556703030766435148753895174063319424586407070869852396238919104987133608399064734395172444666761775056110982200035106792136943241474094885573247900404674551583575532855079004475846658063427682201266707698380495328626495921481912909849582924444497028579258064241433227849013891265732069835448722183940609400817739214638911388217931049145723044115365606636518979307734769320511692002927224619952457060560983374997819062718002192649016589939998029061612125493340369302585903738934566787695682707898977578306570331719234188465877980759670592647772306207359323611357302452008343444477483349171399033074329400237939247040003822388404939528403836670583625769554486038635687046839059607089287149739121959233313132943741004320726977346546891083612566078871527305779325944589943733958296771066418016718010735572409978052159753544274937328059943581931098440351262583661777150949890052691783930130462945663328765651136480383997305810106986917366217264245070628699476494575200794433762343206625067584943315816963589624259171866075828632168044475368390803623238130789712535837013106497554742507435069174664775854078601882911513404881931076175103291738738855374581972593482288934211156825239404915723835203690710254191419182967167859343811375668007806710617810889439863947262103137556350303382593713325078583668565446276249993852104674130914196990956857695623791778902506189135581501848948401531184961265155860741615745050313012730809201013814131990829889446773758707838959322776269153256862856267344387136987078767456227525454908561766974268893151676018010637209479693084048382410162166280530918231005973803627653349429002262023605741508558275605914183940223151183978437328042644284646443796751480574405912402274793558912671822294627100988599445512360483335883110016783897521148905245252972054603955083455051313486461679670463094172737281814826987356236230406446114296958175066363035792304129711911865013169686849912369783835150783325780341449355116047044839812765904432650732238152259951600675114286049186512243436898130209973799391422929614582610317053319408291485993427179662350385451383858294541894822493644821056450966409160284917632589077820124610845301577663573652745587798092890384104299174635399052363959562957678358867130874194082382342876542017782760418451236707935984824712049844967877981298071601225680031788763435911053751970495057588324289572137760497341274931512348476690313852393800805595910778291439578765978982155723503767775293666947234673427126794758527059003421226326660462381632360344857390038906854201397686113260122739245669667643576596698404107373589602692408310321825597298168207226748960925328083762140653203689920053826327055601513515989886979405020751739839905334479527514329787204691605383070074476826308699182416124852680095671733913641418671661119639974226471282261783539048244555360832605229659288992383901633152104289104343770647176598894509562276959035779930900228649895603992911046783536233437941459662866680429054724516487781646626994530079619480788576203669358133357729108350889178831952695265341304196664190388996799706275910657226003747548869740624088097633653668362064773096632776100342600250423768913078823383814140225179247458492961464383740778113275518162743904287122752958264601798584138396088210665854659294259955527549582275739651362475203673426684126005968399690652103490155132774553152976505419762008434775562546280030738280968299035228583433779136566693495961436389698379564968265226194974938433215894621728152639860088497103970369853196455784035693418810328065074276143992843652928390133531091310382564805120008282357384346403473904611462489635006685639285804347658652807442608490815593340351643066958414201360798116982467145900565675214604456578742637984889590815621055418827132995812906592976585355750614321511851020427971418337335853563738006209935771834552322217023703902229837712110669195733550203043905897332057492811579916609870478373073392110656432351779884886269145711341108267426037863645074318554797080657658215385559203038376778738678939462927391776394449057789668299054942375237850687654244804919948976193215359876147555182525751964968767848522406850604394395849952073241726434795085563261724183605948549570901862821420433865226711597262942378318219706820185431404361974666003330165873713732482856312208247659818488830564944528433920467955757604171777602936853158873976085462416814246033692658938862361265646216884289180021955006327173430119071087536805329551666721373745109708208136627073477969936373922191826742264029591779276405696171420042802139542172010946860785763840661226624877521060132040268179739698650382821218870368866890523320194865352558802633209884599862673721610076618899558411173643065652439248472105184599188694332019510098719661941307038050221383220581412282575678406331104241170601953066324453100019221403722627860956328998219255460177721158032461298022616605290360461890453444194576748882122446631958411867684710153068215888559737235138684924155058949047499911217125474977951292230947688234973514669187059440447568627412803091672772256820729037765606221510712071881466077293416889072883461869210951224543413309801076593580159836808934584787245521697918994942004666467435515223015405373200202474900497173540912261115644093909414866786569659473666397743983601301552141190312550574104682215520684890796519385148913010609535430618418903174588294293972642063955536198561326456256713585223768107456618992207622111793763663956814508039612504537737541119467818564624741429486726568266004607023798435561228748869728655930028749226376018092066164656427362087615010758306982698218164373726810616947101749337846143102138531009077733310095342701305663707741563996890132742004107599486176922059723085633066519741555125340995072843480183147386058239246228431588797064216530494034412082490890558049042293539013439457963126399216634763757260114301247445049342569187423425779354361486408774751022207520800063613493030675265493433991161905661312519740744154135682412340628639695716961602872870265212447135962681617112261009014914006306575338372007217695516455525267204106620894446933342429025200903669903964802158306542060204348566073671057103047649662196281680381363432812282958763081887953372928181646032875712247338403655501491532701412331616352272741341841580188973555330958754287022108417312013725261919790187426894065199253479957919229488866356126397248740757101907017605114178658774806126375506461679951603858509216490261719346975516146536227484649108736888607208325459644882922877901971152058406101189421890975618846085738314448794695412218734088301379513765012123377766208440732129934308075454849549160991240351122840667670783564941106174596119869822627977733376126271925773118763533549173741490862928645797260273460041392772865700393652045122445921985206888344018291245204328888887886090665558965556243583910746403176151547885005553173827462149070010461459026547312171890498457476189976838869418542881558506597626076670576205694687813293562020250016277027950719096879978162789946347487088825788085310519284747827300261967905481739353636037875057800874896799300387752611286138433952080964168670278754444766574696659206579512983238918286289066726389715547673757967950307387155566583422893428789630769394610826260919244958505078592619536686005383023248488252738707278112373343494540377016912969718307654170438166045714444235786726657049032888536157120250163940517102349223802925072222851768710091912405189659443504405918804812438081186683507148734875846849511470040620121291259737458366807949974560265848796841020184824259027197315591392830335519446378772618082448288672555020483447131292962077498207792170357495186899354814948238754323264563854787355820183083903066225848375062498572299012883610474883451358949976700527009677739829762851821352654517074808853289702540671340734443779697778835924426623772906246559824418360683957487925356408490968472077026262868471101457421435220500535996910105292952793291786800573277081810328118936912677886119080585845507323690938959358146937736811844619960277984699932116243360855144847240600030260132872943277999748139269130131064740630275097627276397484864429036021146071021412248159609103535299250137746674671488729772441496767108106378016228766530228397313012941930862923457767049813564229114128582623163051325352381861504705144659011891808153243789091604586700093310037165303222489061419271975564357708434426701043314589563451434847479866469843121587815436066335592221519731433559114325328796211281244183435357291720330215219603612858037218845726447527457241518284825919193649235208483268105317410887619262926535280545194678014481417049147050388910996667732311786603377938098255240879798294750990617118039853969440176594982701912700334091472455054226955737438891619828344299959332006915903914558173752246525225573513232699760693153606254874001584180109433065016934952684355115194668118384618133658289270251542508347278521372653554348811845134841043855966458329897279310346996917959381895353380501841120105023282816946176381645890349210954039158032255875923381407624954689567308344907287892104440074961434980794075538180915750733847899398879810665074437638108366814916420026906430582074577282174081291213193780203018839228566673568290057092569793413378140257480239049171386221240768054054107739806332176511372234203993370646948340988951551399388906957738660630306369480709462815461028126978242136881177725636840444385994137398140790346741717858237674343941727121747096293030290405178378303902063023022533090367728926637341658955297273289023414775278831542295369647932259563343221906089221181727382666364779875914961320166961240331345933310405423360506431526547999353586636953187192734122196906981566016051371890186693680312601210257022775917978895600880212820519005587879371391851092404945835050245541350110995796823530364722592686085138352456425187790700845044538959883518550197151759524914160215009717619115558406468194066896820503079793638404576953871496264344013501277287097877700250466971671863327359280581602199383866151791686617779844195673995344464738199683862324591542458043218310360799867771478285501942177320527726858017668438854892376673402453581519588530784727320344633651577139853873670204026347153237697875731632440189338268439119577954132904459922934728663422676023325369862925162358967373907717978926554251426691789099989702135714893797155281475853153305102730319900514641868439268180211709399882368433551362832215331062173275234123838712691637452838886664514602874181423142976273377646303167558010674258087179054894976544786920230668660967830284693756046745464024919805473354077335194706013702914086370645162845123632622042462061255831692259073441313655204721621557843168615346623414867839289817148823944048852642955415569692410890664561535060506618633741461886208445598059908101221267343798856445000603160624040513302257112083544035996010593468097373361403291689342260593993149611300288354989734467620452991067860747563136224324407108549883234785079676463934498663894913203184112244656000381773724609906612268422668460392709482188677998128592630153263409911724267586623618579260675389644410098624275195159138900961285813993887131431861588478319770963029248896575089289613773525884101187635335483556867934852407173079615111443644179142497150451947106504506367095847616668070033679760582826024440065272555785953465061410950967952863743565407346539635511046716760109057456387629653725682329409117337782186266548101161430846740503069459886815948232728663457891859562728335379217197525540317527096071978757920991558469367800439055607853044329456364996655327087180373986332704930124360883159383604335598246710814200860745066208013686006774777219647509923763433150389317785564478609213821206022213488448045842615878176300068520030269264708074346768424525523419053276732345415413362160884459365010969370580875110451174073819634003189443697699900394359722279697291440428254798908727819915046724095708158805975373827110937095000990153963102463045226659002716242524952380435720884436455124389212372627008279728821920632373013390213625139058284658592028005320835784067581325845379282611390711660527589028212571316760034867755211191183231152503474425817784768520627950562017060488612855577090771978829964149807009748242064282665112727418874438773066480875415075714061778353256355407886339325710339367623349123413289118772194080727672261789688339000761504942353849725227955167190577780951380411231998965178404889990558496795318450244957806876956029449686960545796696557197861913305357122964909957809898537663724307174659582737462473272359314202803811393168756331942594548183330005570962313792552659383657025860241832319894432135288212071300647817425286812248919565897246371837947178069396177917967646783751281436501607372560728495261076539957896609003554238995101396798538759925201978357318586952898736064168763703122729358564894862241333019135712703818606023689147390154494774330838870598384275077285674913544291470486520035451027392184357264314308694582243519703429223418753746307464220932680086995786383912382594445423991290194719525606896523721149340528465668503995161286724766599358092547532339263531491427777336524381615708580856396538298373849835101817239586820273920457620163848430063359262347238869374517580593348263351220390840204193896749793662047191139169779250040114370618369775429701355353787900847509394984599285949085532248993572114186246323657606743605833986686522008151512866408543880855615239729209098479077572294689902846347144328902405620916112779508257231071227451791720499044113946035370554902136309735681956362798494259907409155241587694254706175522528303010156253939812966452389322142148494933349104844902558783234657179494856665569243692089373579246532248568136481377166741555663140484821652168188548687359025166424696058276025998454565067780900343880323198656468544229964049176398547224404214690346997061041353635198547027862992492088235115591417512374184444366003285466638945446266091345990000242483331100119305679671306778647530965604626509866823887106157043839965032210986189831940783641721968172380109257959774765120446309070846024737024453038212429313316397539280597846981002521129351381174982696272913395295794461760659993023039376986036080422932921416180976611622611322572147251502188849054773751562861696437627995854447451251185300732761267002413880396571266034045306716481508910080913836667382985207179863205208584930998221096214235196093558777435394241558096935050242060889061546749549883248350409440499709891678970442054568376289071459555026773792216162491496421455712830060766446487298023187972692353845365394946653245362638284837634010843845505334366117254726857645747874175361547540210745413693982067104229152305858503717486831089423565751743251203098777064993489126744278151854538888694119484114925030783766461139095724220598219304341456103085890678423302670654927353981103028252600921780298622090802447174151889100887599919086987744280482456548096436210687486449283436373680678528548834491915243277499860008870685958165169801081512883304536652265693940717078899804965201956251882884207522844070192431806498590819957755015447124973597909656410024309949903734766295597146715760324929828924915905733515760442539150042732419294243244860762058996909217967107611665104600704946699975398766685886372873388394580314905881633286724353791242561846908677852262847879108699846209830219710561308445030940299682510011946159133811384768148954880036087791111512727588710296764912080532026575778889193464818772556225599155175159804218642125118268835597738527077866365955049200036902481120568238841586661224431986922611077732586252359131120916388497918947155864074235252525952495297445367017465434133392524940882323660078057731952839944210680989557098996786859107332493140721115445179274186312879693333568444906222921645176025030540714605053569823624678406176048560390103519694690975004221841064352580931874419623355025299896794590164941524201874779169704091367442941169949228142964348896739725010211004187408840186217676080532692861615455946361682616088532037864514643601855736405511786528190089308765283307273385629105827763390483630406593258955347346333897291198826191829696836104709850477194214406545978343737724863624975072121470533092185493498508712387776624505357452215656951255701619107334049664763793394790894644560316339884890248626037625887514443512867521076679441845669227617285114447451629809232045250691479221099235417777379756115463841700227808792166457216512882300822856959121110312824650137622007326805782545974488395748082856697545071726885900153441041170639739336423884630252129827621476283670842650232562764083479895974475509247305843229013726309022932927224487276621615999910956122441997116553721937467184567099665190759024385516916572026880655545714752550166321499333744689169947975052180848805504040798055527717406765108573542078372714984691675487320461562214539445064715876142886285294764451667291665832909349893078740823763751061843560323862323454450795024374988786719609636338883281657591400201176876400433944582320766341139495312960138981985168356293614528137246745232639356209042068956172236992616224794508318334307305941058597960272884300449835648536890359361617028123436714159611163008460949625901998432746126977607008748773347258953646060654316282461599831864114404400155807309426409004985165252934333172925799199800126476624990375827524995102812624730709269542145111138404063987652652050648663767670955032481203564417058049515856921971778019797216375498922996772986992829438226858443643178233445488269775140132469551391333429325378110581685586846417642789826690353137185613275632906850831578828984289708466370955659981184998809184653258670504807899658065964837760687505090250281993341961721871653479477029964967222808722988775035401268462742349712323651958488954166519504628499103938462160357883245232740966380775576248879545771845376069187892718952654514085841123237343343702124246804326719131851106909715031203467095938862386854048094254599177414126457574725819902827314927404245262125914975177320501383733196274898791357687355254301147321046772978206584563908518488146556994698605713157398938914159761970634376648756221900570171233385222587506858698613978353059946025852975543981613726431980676045005985536562357122911267276828705217638308106713006093422234733594887649391823563927690400042388451177104884258642801158429632231943511027646692107275844366240941898918579554347252790640602049950595213708435466374621931481822428074353891158268206454156265906514324249488807145611742328627893795646446984350762401171430905863241004926727959542478575755644671630694849389914187765462514479928020601453486212251054341800230478903300070243693400071137668806146624397118857375503387120065786661055608606797656284055357005847724629991807992981586258789156945282161729299519552090582596325611290203991157459255026223935886774344734714992014161508989349984769302911229439638139286623985075279766766819641140026680634670867726449054114349699138371784522631045173349691365259632008822994210866559352507403524676796922154386596316983505102844105916563409679450763482781591365291646878472774001178241563319851079279191440353015265188900389879051805949518415885824236582046844403125961392228398798888271639251844817973066368094989585817920199180869414796201265471309414610001909448849075442843536711109936471811633730576359329977883157396421480520581609799230442209921515293655430990520250821598496026740371229584486317116056722973597228950678148485642627083925792983906556171617913888514513837681306937486800974130379481311589601576700050535872474484551838119909482178935934577455621908556830224699159173496321707594493499208851047595380137039204860938762036277111155837473353224037057802739416395353763829373017849108012855572811183809618485291725508699311123921832947061830420943167384177756612445048315263896973176511012386106099552985287889212784225283891223771862900608722623247264396475982887965321844524923120180589680812079802561910188768496993232716055694727962998434198836194757590913304171969742218716539651725596688059449557173076189159227936127663181315953566537575381764778626989460350932373330913866432945591901206898216398707309546367312034340421338675054443102998695463740782352655386048597595902169519409404508951324035551652247047292685355168274526166770929256702949357849182086864954594250345158220930326074928465761340725192363297115619697000564984255796341331758839066591657512727448755387689746837464896164604845464883826909985776268056079140595819292976868254073799380262060789728606522245465966617504828565123893898718772536507430032961300624499232303546655215091294462580875149084001493433559909454756293828607157853255208407224204515759754822385789544901796121558436026915059602768691623040960747658526031906107808288016730156915881820832426195524646408585187306461914875031441773301575121191794835546816629163098744111584460147912338278061117289528622126267528952121552366941535665924047662203591802429579020430462818471807738638480891489882312632279578710258567266150098504152768304849290349122502949003783118099396708928002161836605245775953675898907464111565565456020853467973697984127356577428431479796830922434117795358948546070735936865871705260741170844380527295840522062500187220831370200675570747923290713643539717256749550360367984177246068585614307171692288002876863442176946171599106915555055247838179088782604646414640759820000530547257232494423470827664940769821813871133370169480644444073244047293578472875211543862383565071555105820443547907948979616376797370355018201456458694499856034061513846376180207824438359816191015531172053180762225869567589703313508480761642753251319901007617606228962482069747455349683566994189487701387352282384945745995557309784327229368018723495743292397223354397009797152600430049681953388597683709554286287414769580681874568315729702222700810144796927337921543220143583892135672898433167173526623488416088610022361929056766020376560183404142469569688701896291233020229359542911216522289078223066861675295880433385647324512819641751630291351926264690682392415189087982527736839649144745406677256935910444075255034389839074495081572073328228506661001051404702467906826588269742760440093127337357230152315936618303562736156134914276524337725514701031570372223410715493643986183510711075762064376614060222644154176584447287267037868370375023938175853878505637513601335649764148186987525722677091769699687885885009221541734434611606206438787170705516113114542596467117223720393821337881013906049402064172083654590742850762247701277148698896737042261762002326942982441721620435368710056433413556273694565307764858399712183128243173726348525800312590201517512469670841300287231186057952334554569871327052314548299602749404806380116623094622819696296540403239673875758200376008078122089304936621691194546795565342616105918143247301727349327808197421552327285631690434656322793965251787000923386471965247687054450790447621356157796806900755085203783533252225758428970721852525022943258441380653719486464209152505521119684137550604169753823047233043048949488044826711210050315240734976589858638529475394633065062896348001648782605974781646169243861371950129356187136141013862080683055728827929520900006601654186386262856031654773621245875796973068258076440288835870335021382207226804310393504956236460497577655003905378059270430027489068881360793455129492723179271864527000245981481635451835451105333761333885321750930841450906709222718963904779611636307047771316268287326557149322514990064232066407276389086599033900055157154781090517243040218075783939985705823994739193554926333988197407936681109002254812167653512578674162522374325932769408711397497467680053967573197370925122127761375954778092277678046165449375264752298204690401849782654651431978911278892340297247432465094923156782873621631015269726108958302589709186610545497907419361432482759603554475199718229613530855251901874265414103914162506125197892980959622468653160732483819922063805847251598986177907870809697992587039282749270023697927770471725382970233939791046899495113531382472680653828321935706155587367943610803272864284810878335759830341149435943290591309041492559625100681496808596421580269314245184129659567356839412712922116576499005954206705015523602864521540827250269853063731439467757490642934274641921785896368293647785397680478334848649099032090041396618262819517280430668248394359488533990125220378876043619158121008716871332998066241600801795668479302253541686169694570283539193465041602776235216876503289173900133189051651893963920129638835747300569832152009194427482345435577094561650933844614518357886100700589893540240314971889010469252414590880000347603921880785836631748904351511171548267377243390157631460118405930587675852181016759546829820762247685088687824337259382628635976258863278063250840674608468300841731335686515472769402610783175236189465958993864159919274416555631052931436142858624473524403193216844517089033890483390530854831863730156782433999480537613998003397659036021454355013271547135867814404664954398758928732665621999417250112899579169413811747405170683029818604741141540298980835254828861085474744409456912788914378363548682116761100091848302724266587753903716439813400295167541928756713534410138463691038772256372701695162165407662310311674518839305805750917818948233736652195860371937879638497767365136247693433020758013397782664718242327466235666543121406020453401931295099406548867356557118658455118264710944529674389652630673219698916903239720330895640303340361469666758941010278398723615261604949235943172152213351998062428291170898595993167757102105928459828065307048736997288977018074069616333152824963046604730272168903040510622634808258569059688590004372298572886474892038967791738304344000101873105711839928270470452251355882446124565455098794075961437712504062075760109346880802836392259841830810251012994669475712945859033793298445382564402085144253781953573035105998622408304407831038354713225181946026492032496242069221521707320452694789118535721295083421813350834703577846332266672271649419085483962299117842512031545368026837010261334428319993426421542360599097656073635710255528701543167116143963650819839771739164038719135052767963102745789369354360174372803772020925949284771784456327109440118502069884042502275242599125750644107914140513323187533258869353617882377745339125175856779295068627495875779556982956877302572093649356050962309465704959928825503590994367670730615939998887657481981556442959030408987082525152951408590147902486572483187975315109376961985796082426844192095243052118580836857010865304179590077146589970862720646705570599694039953701291828856418568050679064076656334560714696509790925771972559531779875753495597788080830725224338350305272550101776783213815884908042621058471465105918730134274425425576341507025158458439816466591973557096495610803816748231932844886996052264843040805025011085348379447068366007501582594517614095101398396402802123059865829504240595623450607361915019364535296517866215922408874943187035260291399790543505518929278750647008223956765691746577760273122152260607251698854822376920730658493438704607322529030701946438803911122788120110841036055367364438671821684143140187674225094840436447559402070522530431420061582021669923628745842222493181490597431859564309559350335687476580549157241060132452267013425819031978142375216729858788049411527952017831643082005710853306459105144641090522955897267343558494520776521281676801697270609432961972870584696217692452647834335811640017455389272408774872713240262343647825104007924773738981408505768127669864894222093916071962680850561952571262188340741775817363160422413636009365199093658709486593433011497374675941058791828535034664873795371215762655649769635983438725956753935834984481599866508786615546086194708541967057387384146369134697214132576681742654676238572524944298490037359079205039403408760775639417310103170004400152131008073243128296015513822523853620319050627837820765108530006605280519653538952995456507453553669536882020672251380485060178191119634458309170389925470826618624311830925861023190881690807042303567144555930915433886587860382774725434877734194668210307859353614913700491892905966577773783682477349224119076528798901046625368735605537928521539420305619286656069207788897668775202675232891060104352974384225946819011412841037997693393704982073070829674172656071969045941976770015691445040882009153875589065652185821283806096690434882610066286145918158560081704400770994847811026568757343982986946209803432482386281783121545062382614440515661906425604917439991973508881489218988301265871959633203191824873398435184221295031543553335730887418264000712911607964654674781587771869539168057327946735666758592821509466712938447885532355151214052138051630346202593421016788061261684445349682866939200180822510188428965493876110234464198258441697969240803081217050370376658266671402829375737255980643730597374636627561387109488158218040490631089245853928335143189587986070134407402450655321049207716426870393312451345606860293883113764715355515176754320092516058199935446378114670785195532597438919826758680239497779757295181330063348406938203552036594531309017580001121187833963190371721846474394516855192403288204457617420845377573239517937327890273876922475220286569270157055438006889302818477190965177301341685856154303764469627431537473665119513839135177349204281617249320712160114430866909733746365525149002591435573882122444550760550733063115557167598574921741212551066418309915863944212742223590225043276350095458214799126329052725009933405242333247771651727098934975469812717474748347265852955766294693982901765737884800946193965871934759646174777564738074547135651814591777098643682188516658328381543763110376793846463401931151396059167834346381037024689975172952060334631081664631676272232213142016304518020895083617618280274732647832020514277380631352873640739760069005702038584888858010589186038807318141953017278281813714272942186694892286481096275696346401331904925511648287276218687319640378736540223620858371989799216054603685129631392928352065759099464542183283712912201238827891305140245718100643236741050318179812395221543054168962622096497064222065730785393405818336000457214398604030227483662347951896871353172843308212294789225762043914498054825164894286760874516629820374653316602376642097006047784818899293994380304581723331095496903003994304534544580586264310988355127743054983388004675603305850600103922375373837039130867460718853349240237061671522831471724454431892261378435676887623728189813041977869457258758134841129962385623642399009161284709425540405845137147681688990460696575218294049106086144313412038442723795749923190007963058859743501082314725417799515358290544298150614613948264830122023003824846951431048134793017182557691999598613850853409281326160323271077728030175825590718235422374503847658549138666500218803492458224585315773116477495278494562337301603788573596512853199548760757776707738788229737093029904769318700480832868391718108600879419711430147749634497565464055175908059955316913181069596393072028108766511783695571237121154519432769717697570615530233992041524755871726687038296871343535363570756573600738607433384403307945460497396902945835096783430379715460697697033386118668819621113411603249085759844228469573164375728601885997757525492243425687947301837914788387913543839786515437514046261140226124309877981453681688957210297951190400444033803421125803264151924626769852123847571874359874510869431774008944146576517207710045306767215275064705700589916355050438568056056757218738651209969343623736869105053012917748851088628406774545290922479548473734203104640123958214332793867871541867798239421425786674091326630923029588940699668651701984728757951859132073829338424697975697438792668641294106996962661977669956786965574303670078049768395508776567740103397583817830133248398542457966544052066473161392765610232364583383287811750183403179621852176194528055245843501688148271503694169411098697257050841195089070712089588917028033567223646114321293016586892258215852745291266457289891819249777185622933477642568544442672876118087704085418345317328271548938209968861700027010602835108210774539944795551381753572288417403022600331981406188740035332227810980000790786518619172195805708102858279599198272661237691354805525782614147250870634688590588824783457823611023779533885018183373634247845468792890668815553570493007119669554201304204811213227797293149771418053230323601299477017382483766515701661560792562321997153671100121248874422591259660640849600692903440850130000065725540647202727600110733325826024323297025786239902455096347846370684221532127118040440883013870785355218782242234299612898115338339441835206620750731661336354162473559304495969752595238691366801441992632596044677733764267281266469032633310158780449529400028161068282736933622565009019106160347512019117559870760269235974419387187595005337153749280571913104322572906931816369780896666591115502428000313375848890180045102601397180915825537795566857601970089060539528356465160138114884065807236684523802273454224386612972194416218159344653191131731624707614462934050930521860465227428685719456541664346116850454767399087164407809135947438139619861035384441588862526051977997136307339543195532416930894940088294411250926888513521949196037751518104807429928598025393052808614113884920851300453224354880534317702946704371119678246829583423693090285898193520365420430194650892419374244945078781484430710097420991323222278358918546093741957472134854116964996533521093088985640484801236280348992502352757539094240728352955569199369681762628392579356351997494171845405979700045084005653181295755960459797370551467731511501775981201354934331776042845001765960747705943517444266499427682539379044698575857834238150047898597416129618636513784313042108228163719006860656086200969239230417597180331874375920581568634465868221811987738463875505199248088925407629241776421313061748415739001165486547394508635140598052827890868836734164125525098820860297558237979626588665269785631573232544103140970150154457693313765560818490104940032640666642991564225710843795969357979936114677260703874522221995875508737144034247304816960128592927599716646975020944668106514418191088849100719050150498739151846872385113082619516808539288469821934220380444623181298849515005329843281907165433338858593908754128037724907236384065842839883104536382830302700861247129443945271391971427023795739793673106470564004850235700048102348509605852074214911111960068533351604727972607068462329076104572835417072554570331927846639238402956163134335507085405033876153162603653502119549570615993610238150372440220154130610891399393788813657445597069033448632285290988596416946159710994553641874021492395311999787849271532770196417069479399115520631343704045922743500677319922258122642879337361170018430589323530302588140052711332188122875137661473151847589612332842419446726745221216974221593129991791473491377139240079771900088380220251963464198863104641714134492088725801010296037911568117609889571663735115574515588042972996620377308223056492393533092747990520523887676179132877779717299305847342386182745332589855931362564932665240641272217102476734436850598641787660722169613484584149339692621420907666842410026836719261574986565788658353615061597185806893904149145481010109600867211858686912879114482039001743965204859628240252334342530538379872948864256643569206062292434440017327495082821239547297743955100768924302902355373955121234528000033584638575301931503969457165544288239889276186170481284700985668450346523235826827943798878619853857353629771306718879003631132660685481297726897703206713495915362547290658055320654081628472619468938172241207542827491712511218597971704409694534017774251076288053520353586523178221071916209804911788538134248249675031660820494976561709537642140836731864731055686487976538012018929247616226468153595689630537942117327777700954402356023967607382187203834469324779352593438233545224166815470211990198102605065178134279906846413948101740361634539310954486505222637079545765430274154912319657856639506100482386165072088086700017912454539496008618159527872526641132435257089606021277480421760535343251443539137760764848142602749576080453559687597507546210264313288272316117524902168107506331908571247950596765598259243864600984533717559416432362365561825835041161035881116631827773865090698508376803350604470895946783892664619270248622293404221321722264284556336018176271603076570052206781262004205797244551625917285410280216369672388646785142115600890714434402147736525607497339045666303574230519683435193905326740384416248157295018548553885516354782040867263276683566996606356537430575393780608551358996902417084883493548448278349117471181502156648350792111287870405533375312521295632163419664726951258980789211705171433799802737944159699903184597295667583490392059525903425469332535129867366008532507616689652253083178146784641429608043649283393193856275038002913397769149934708390549741282960525657096010635985827002462422447432420672507877657199985855413477168961808772080123021501342927977046265838414759670903701754040998784718965267560938152978392824035245344408261366803966449254007092361428788833231656303744309389809332596212219029225886263976770863281301483539692109736649215218753062748921452786682078702839011011046732751222503469040349219626188921697268878240292653352485890377271723447780920855493536468438865912847189121523797764175993040358828899927965506842720476659429805735165679519466458959469495560916144602684451794229699313273864479674120499957967734372298924650560505690068935177508822316180010663335999551644424852283447720166689852179554538944447242534661872990241976468717395294614273350141227571111142411017863898540984583617387790558445350279169335836719590998091483893623767344111983980324813409254443988983748735513606413329821367268860962075467699502593724796241709156008482112339579291570710684837022938968754315187190084842182096960742148075970981957607348282784008642678944391019466943744733943989985727823848218209474628745966246107645792467684886476899342543519185108082645073316151526182245470846352549123391019995447272896598315502003784525256709630799772504404140377464542879413182140777162318756993677284571752571516672294249748827816470373917738557705093243210152154900315982735273037284702796766746002614671916059060029651952547150121940430506811101485979523135794288480055470130228026319277624383355223326541349281419038123918852078233724984296983947512387459582332085997861836831124514999692853166795769929634673492596761615095113857163134779921686403368404569605123606421339738617850665965963591215498936496514431007520911508599727325283565338297980373346596060992419603157849536202293140499733809531313214566915553466431739523799597115867866407503186825722697276592563791907212127622341585460225598686277219453257824143388947295595661933044232785933877024776726529881643928400191583332084576818135814328592891724944129986636244596534045697985381539001611166399425438510417134556804192065234356995110292646992096715302681019380503750876399613928417964388624823078451127786896647609308902783767090787505205868651959505420324537704486451002351335811471513549623863324811799366387051601857996284989796056228178383419959587991097556891978531998509158688773579416373189943917297548762817951991084886641646371211082104681302477253734537927906131831412602651501168886831610023435302791379857552220239028212559407736610445522814185291978771940446910000725351233817488905037286942631980668432072862929929361119043361321655595820601735727203792170835555257879356984448021201572786570611933250046400430168437646687445632445346665827233355153951710861191685636450084837326532316876272912480222997546390927769182560841849390020205224970477838015520726096160423041679202217664460810189276073750141650249987309276814195195310256025389036484125404471110031823280889923478206739646647344621250456269627891681862764662895408146763439937905993969160001771455533590698075650451521617487258822495396870129748864560342169251297038447696239196303739212206024186812956562325422880377647061037325867969479456988291485861611681384179554755975483023231887507432621113817975112023006152417888947496678604679819491483658614162463833838479590917865160321775739269358011172378918264427643497271592319728284129969548353107814157996198086834252647860426054701020196330460399074153091972702652294817641600992591679889402495447325170696167988142808185124972046943764561756745168356820652003338989515244369014827622175788017017365778426943594875417123201683691921844253224722732933431505781548758997025524310364934833178296934815696237000985455117679245662600580654626432360240096899921070289412784967966624635851822169250055507194924811101335184612996422691484807952603842683662278680097182809048936809990527299672935154323789636946975395934433793368506291444604093199948023934708873776019316029610250531036148347621073970334931895667157875218406091130769628634596758211417238305957148858442647997548844459502883087100830146332333985078769788326611473304285585433365468430543120693535548000591213449386868431583499191800456897159148052655256814411772740199519181167137227987050401847422437956606451592384808848395004535275039113788781391566490226427509698165128125435094664374558078626002713258015733251261211943109089212515270345888414112618629387115290729557530439213207829351046330435263192516385331609870361824229534026098911284925760578901520047490005500417615372546464664443357194072019506157377035628599547981862811555852063214810513939231651927740754127445312908869210541167683591086170796795388475873233108228576275820546392460196607864592014009931820692384703444270132297883228778247728825424796292370630008525001842627681744449382998059685738713653953864023944599763994475668172556598174589931550833167323421602509187275550970073687477158403774854203714724837792604606084580193164169440314906328446154679121075753725191389739971760805607574154564562108186193189328336943482044688209495897294139230372202411436956974516045911526843006020569588591241123065693086441153494807571227054104994946633351246454376348840385534249451758223222657914351733676556656248091351936288180366457994901437722756422228867239854920972045689309242450534792260092806300958358069031445485559288789729583359342221552001581151443294100192149666915380212370964054384930540829898145462128197242217558149215827896767868063645710820689629630830588432173493595559542945689915513378507661459167582746773041417345547937082200540276885243914783888267760409890861373270371525382468043686997398407868421502783693276890439390882932024439609726016630583313235341070805429998139239266010159542040780279096449265461906000777026056227539614667724545851121099791376483705578834772973975017154112450414937848140718126152440981097457539289284113120796840604564090987371389559663068422742833776451182697678021883460933713345789009799111778263965664049424398094700958604639124912184092341243449953196314362740169321367233746569053151675868015297437854690959373048433671752311092905020172334599610335588405679781173835473861177641245908920808751703434749757831982470392928619821031086735668169996415713348925555514168698690559613231561573260387076762166463328091770365172834390782727816993907754393610306300460305106028590700907061693269002627352700114902016622143966629644745781133986668482431061336768887336527803380749955340408518630590319649614813788239140391156943841671748656709584763552387517632476229275988009842984389722011428072444254165316185025572884065729156377998933683832506777400981530679363340045718744899726722133929895738810095836133816663490992607464636205024618883045228492926798538342144804583892504353861732002610320618613536192477272630203077500669297700909654584518218433240024646401181728940891965551138941632953365682656106136825907668147335468344081899767759447134184029386777757458397221409568955190766720148117092239859467245354667632037435021932067258740659638401508607211444009530383753617675770239115364105262296968260879641648537096299764309090653951260867213602166183173878340826107055960600851618738245931355779927877575978556976110266183436989460934678262656652303900134816507377556381572413572125804378761219003554680500411528869014048928697628319509920235715024310591979090471110273715108603946206646933899854645212695303878738323318614244916756047597975010711943803484924620976193648530027400832252063412185043151731989840598163576644231060741255682408592291791912983927505555717450948142582480674721832681747510371619631411967011427827539663722093094459259217772332399072064374965983720156791644855293499187395358172973212601029071943190361303986807959401693098425664585109779833163647842658224087277890802114381462015613309554802937334060796940464235643631547343067369471284215322865905159031894293782363445536840165636672084941905260930523603046889706787153041879038985187789390306587683248030903367200866757581439691690009946080166365218974355587831979670999653796087025329014351303965251040336637564536800649061916192451590260209820274141151457650875995828630343115218477724075334587268746409567181203401972307126152759412108421829197664627888001375991079245998763413963758263114197840287085193691373156767914611161147864904641882026885686169676529716024637640080497971857577973801668219488446599230155966765927143210854484543511819176940936145843934296607231382749123177564207659882006220157731649314325353531993125279727523505855461441560973823251272514503638752256808327812800392973606978267969890582487664069337039559494867626214550403050515072289993732656109523399007071351837955469956318874064574909944053806054320985944315609736354788268950543372190592504876371260247763404860261027783360930467507646233166035047507113193660286969985689715688804063318983243050377748827895138867453590692747973057545936620316618602466290114124429981589209058986486838166867456637198372362662488562913011539693388991306213152518173827339112206140029054936957730898227518565472168260486552227259948490978978414664360085786077642284720176344368797984900668821483285780460444629555419417004519903260084936738941548398365669984040311683700015935032175262040712617630791982842646976018093063013468336852393855133779418550961122769240049009902837848098239689578929118619054156233828261565988862894562385694550368712370792675432011194149635181531118759434714245935568573330595057872465556521096535840752253434060779684965550779778520087192308801270410217952321986538835453120095523458358697129855017450318691089713281015309685594669642570111503557955778939088657726391273491122048333530756526139087568779656124759368462409409333834295695784597506699305205743165142106516679303845193743565394996518845082396394084788118318659146150917502189976500578446213933006292097843756267092702515031915614890131635174613086681345685009515167908454002340261098751411531047696028924061879195016652059785514215216083134875103559378394255382839918915149058908706456507038729797303999969502036838169613177526491759118507869485980022425685256029318450074227974118572357025370195657757786167519835793432591017959196986368381555585953098362855824585305786433340906020210956615083589426459339396635836249961005790636885423506108453227140907652392006794332305828889189625710269332280884064022739525071738771689217717209245867977205687625826316774717864836328338657055582813226867264308383380279165733963375209995404030435995954343649501531746275251512749402011897718248941514929095723852101591612854032170717359656304185784884584147638045729458338903965294791213634781729466936417062191406503018560701021799927999634235099193375350904576395130151446697381927314282434153960410451832074945777586612759467545123634838009351322617159450056277022775031736175247213364968802489753245956693127307493170365024287237199207753968102278389887792106216358619772031986018612486340949384121084948449985663120549616771150955288122636182230536892203140404004747591038284209677392868061706202299437213917366499634304873689577988790464927287023215668476786272927573568746729839829668893870849033267853196254932620242816332247515315364217353656785238579567896775005735140815339454571972715523999784600593786100683992804580935866512201597174232408460755540296808594142321045523991908957397468062655391202330531869702053116843460649594611820735958604207899110960497265297409444893727425440712979845878533276831360075708953503280328743275416463707571127213512296925801992944635772310392916080438588444058194307865869504046785925901879992718995215011480952530963656363144078409788656618572763244939112282176047176084184377427650832053789348964125951598995169578238322466979394359096474382924605091562108713715617336646625467941770668373524985723478244297510261648113049341551769096586993782691151229331753030325707410681824852943556177852251302200582737906535890617700714344470750178264166848734509015112574081174689946457345897115602850771511939829726302859389036112843596563260894162201453199779326138336662737616302213066595238317006255049329074683040807071826603939830670305225733337220034024377392621971225189073470561577994337070087980678424933091440630015343622407703985300007810207584933001953574494933916895306444093969386055925940505162675813670123201029572669458082406858750905673340410369927942522570784442837696357095206539560475885509381824999741334766011175320910609647728460293922745508529948419506901839359303820624996672496467811677879512279217943615104071095899387547853124284000069456670090869434175248853782401270121218252520820157251946507337378334834709078127950299565155897798568859768282801807471768642210761283305340831001286596196424450198191871853148337741119220409705727658416145005485898227150712645875635114469000998367671188247744236309786783813787063214361861601816236095325284468361918796152093447908254840009223502042243954417688425083130380071387879079511901249453177901931049635794649565226337748337193967742605503550250357716488253586239263952659698613699375738086083394862099147281804224919263377746404002709667420361231991513040393675755373432620832100313284079965491692858806352952038890609051162735005918223337975125766193941203026800183899305420900695140382812476496938942052857217924757438257845023252815113829349995682757467942140963354383327074434966514303447373461043757290199326943476874130017683888620849918386272954498029345820544501433496767468791672902328711041329537134108690014273962788289709441794694563240824694651699210987803860418725780011848571503330990788109758125095533566761327689775041866267126230671168696011648395246944613442481432443305701859720842826895468847850469017544019795074498763711794926789166310346041471775819129446440685987141870210810071793020717272266280030002357857625697680832311503963003827551111439923929796732661990918053624825598911876762600727932892368727349644625125574752527673881410153914279357308221918769373160625179128205566926889004402664489012356386628012031268900822765630578547394055924864503356045482887829012552235794270067120233481504066360344585138640581956873950640716327356720310182531731889241165451864050785725280973081494510247499556570146836237331265319380880939977278554374257113718125584788003864095141293597227798856110530095130763212249010896277525657378079494552820745394240985904600892722802599846231721223196553880863157488460734146184530882317119434997523031209494958613203424257043582806341648130037531817303039196624768963848944378871245046531420788755949606466168237901272173972242497960190280452665834762313720508231604822215859588418966662683867030346896183139260521202945272354323243618240733739302445903356450277424317708225601516989678347715479317793556020257299419754470170445994110706553317555089194677682206532384009976270214536961966327351881060376122430863883204491440817937065265976565414408617022811073518163038554158144764044094306301065551746702410602049411265444263739457927550345761608519578528939135531534383938956890601141348244117397824241375071537320326021195258476104771400289345100037188867895224207058652963890286091735727254969901846861802416804321970356184186676845852725330084615436163530622220302307083539510900438867524954323660370204986626797372532563555530620228083614602470430263792813516243337320155297259929411427183092646882126255468915887246384152954747970603468341884021803483856490371904365856962980857845771535675384065342003691025634924885624936815110729105072393824133483179431244820834402786075109808389201458909521995843418523317406806895058332798125515114618106178147129643413476686366660922722112807421804374860549996934647852402489459494298039236420101206326269307339946508446438535700763110190438242967005638257286708713057505345528545766295097246046671942358070651023735770184243435858567748977693056653701297699484491380964011816589361966852124417350835885993503762380095570380332772218823038958820593436543273484253167713348751991166074511420913853505556336778601949041156473749223520182315750419239669055310643043532453078910033258073560103949198229345698683071892743716902304384389991781308348205958586614963527407189489669154094933528832394077315113234328838209983669623865865882628403762147699991686055512412729812440565925303522834596927335628565858712085986133843156125324554595710367305142709626707137967737703918277169771092294657397644114534799608020611399036381615009340857571530232528391340175981439010545889276622954437987878826101073710800238316981940043456914300712368994257672127096871930329295663395145983969330765952235730720765486392248046301656054631338886196895696251007934383564476790433255439804111424789559418905915121229979494205257713870172352314608649505761912946322756410239109022208181770253067865936018846034790846849712306679501808444238235223220630646753069018408766080483405165312621842609836283340745009601745643760605806329729081861093565890878831946377907840459679211189321514211085708899421988997713397523573891098877043250785332948372688093452358187509719905038997340662629874467232586634878558327420026240114982147673278246149614069917101009582752526956613996940399596897465580884978214709154732250284015413247748399558422295759353519117791682717774824953779333568836952831181987532456498531517060559460824118262614812396066115045890800814849314620136519175860994432139519397809204043140768098664155319905615379102878227778147375676517170191886744416440180061553367302008410023234648877700091995492227769905057379582049989508300761491115891261656827836986603367591005204803728295725978010567047960928838073356267686680014689218989951781620639016922111696960331941362747675108356100901556870561224065206394183364525428232911214841624066878261393657997482017662910254316347123813318189789155837433273750003954305515020648098796029411355075634796951932115552714040370911054909817747336187819888604822492141641751744064752600795669503097206852183117621083378834427958455511947084641154264748670665807942581494042737673818388229026703011640994563294127599575208735038275230173295302260796795973694847885316906995738965917121710377739408557850227237233836578088234360966375594567264793586308109664294709558022885036923019333540537883797802761591957129462791524373347612940957981635365297669465906348612776770472311271706698884351969405331464863966713230598237200182801416323469461411788741844045783895056547745595465003380906865825879024745340828805515180266525654901024116224076929149960886776941651572751433844930494317374780047898430367245301915489892051204716068051712977313185912433048785244819453848784261618037660075887083925401409582759041271653468269853041707948906401491135608485217903138002337631654337271741040866635559633925493792376187033074395681527272100677715362008156046123466749922958451724387654874117197516551176399341935389796624302561197219384299972503454181670973683299171467989029081105642303264723159727371665413749072660471879572598618359715325373821904333446799061973420677839860445029317798867611933708691839661999678792405482186736824650726372344800804603948675692747313209579741857224295280414208281992478094095140162773380083062877478517154563849879363120665946025168797473041769920547235331800309580347532112923303696965810997107922857894882114650171613875186705953354054005952700376425404016827556778112055024412907412878471222596933425100520928903906486577945670675715019503106931137843915325343079118912685591294961837909441522350249219682793236097930686176280126552882453059954747665429754057959087655596239590165645657719542828140073276825915789478600189434273581150178427865211187103520078233784780493500417222215117004285169234931620095228920724789844153863348095702730015134282867795183288331576290160405521216825640853676469125545288786821160890097985426462409258124722184517773767689518487180469702464840376252854507633501272958882550777962326260235198161926640937477760415042488446130055842097644943977066877142190340649819039606087528317927714349116260141971305871387084176832510350706997893485680707057795962574642492927576406149368356550093498178348918321484624260704443614738337493930117198754122855231847772704601886343982689160602856026530290334840862730524418852400049509648691596561561143528432077675931597760314477204628549970732825789984601945732135266302210691361457054155807728200846523401923234063253652562354686202391509405798087657184530572318755599893261113262142586355837235409703645554923955220868420113547634833323183823983058484951782427183013749169660060705830637236639070472219212102091223633249545550846271627210856803836294190340838944099405233243476596537540465374285511821232264400178746088848847128473135111567381377525704841187782335710618311711812690680368025743705064271764622206379726075903230075981024582765427933069607946865291898370222321481575752055648915921278701740908800729838373591043208545830550404154465990952621485809173600606771221766989140264599244260297572343137006174537921801016670146939977886282408816838356783054747212506635585573049313871366435662216875880711772924612114052098743059644999122658383178757694877395043541078085415499625348402678182224552193158426297925946035678882988708041013325521078266993719588184798439349085056174108485723012500803315804722453770430615027385496061195479536383746949243362399005525211331845425706258376758041069743708683908930677385565902266644372124540792033333510835610529557134019339705518742549414086401380782972620460056915829830888721353565396105097142035684797227866825055469184684852938411012532201140819295585191786618972805113127969605396500769773016432861998489030761330151552005513815938181962182875542389309764040686433422675561864638263455102332381791673212336798415555719247843987111511254572956302177570934242958774062918215800232556691391863714782776117063806157527370367491718645215671897508682930617415006522107007971601187768386656570545161918078701801420272633829151004827064613430799307163353787382529112673554046228422186260846938967410646927877939497592239817417477560539079461177803594805861347269355741880179030303469403480327580448848468079234324724369264455423396062330989104903426286585000708181576757413740829759894333525750246732695983782314794077031736799919734227791961212476097975422204750024871532272662065806114029435859844237665855230166380038116882008812104324475404468810030561191907050330300526692697426064897752495307531189712453193284705438150229876384969617811665538211248121430805879779978172060594172744217880535802713979688571229663296401682399911810399560043835426880260722025973512059814360700259626247101642824586928261337984144584843225205229406278816023151233438529152842275432800075841160677209671922900063911455481893063903293211848514650583178928789296387104731731938562582554860555808815872046772697329869948799130230798629844882279843273655280106660680423748665952893161441920540168034652897064775500952035089932721133558682123717085279166418342887892500718621179517121840654237168567915599663117556312932791022947448786634915461981994205745125530915249914058208213828946416680621371469382276102989988434372139672668055803377133100644319944984349919310069445784772992704579032812384832404119728206407382045506983351517228103481861215248273037590668978037343789629609714479768156817257624621681054077724223223612376053564849813864610922200051672769648356275714471220132721672766400426271394843546778652688193276282802988966913362788326513872420221058490942892210768024678406802191015525365892379402711558295705519168979538525402703122790531600298701373997708285336274616494173951968283912036577013217901013945761006982555345339179764876396318064019537447190384807353480828145469570957975142739210019388291397448382510369765143329641690406408123658003569962082784704288887312195485265078043679061583757298597871215678194373286047875120569950747837334468445470607300657393924841289416111995955968439501749302739534540834501983122012051785093994130636331117255506490990271276279759058026453436104636427470420496751580303898247990254619119614120705563277271474547921145873253440223161598400535104556328877192978839800834923940645575507600243054862704643393524787120946135875471681058924458566510097514402654430752677654247001921902770543955735410819609509124044127939255094164510752062971021664543041936974004656826824480849975154340605805841803582646606180583123442233673627847895183558157335499521443623420097224885738690017037513378359648285707302677917803963206792834150806321658137337969674377472744116669470090231778514221517156279502588557374395932892332570675114797654385399712089915764111850752937297221679415352238525320688287657512812379785660658694912477878346514432814552889988647916007305963208946549415739129207338473203462869768116957285165220672265480441903634991518435897642918199814949852362482113422678580348644937039085043298384823887974832872623873855584578225679054509001382295430902561241300353238928613889187362185080170652270814445770202484495221580693142302126229298505354645615592330473405645955905762600327477403158317408734000004235206936614360411357319414665925330565836601576905916836523986467203350991886328361808989109880435569881988296706901196350791139940682542055360674665981719461890217507131967033296908991369796950848575705599703974465232323328767391630031493870365548269889732193028231946705911460310180953482462602327190155316626421240099490954873977745693996863125982678619704899668751614097939539516569514164260879493662823175476988290808752726831999691976163828304503527006292340395398006327287799932268458784693022953557036113351791964221963655679274589237362906212947741618848901589173895687081507058956751730650433245952198445397184665638102678284293505466662620095065767498893541617706542510112195302035660158172246699127297768045320403607075759665112918797954443413199396492948850889209254707164777795158051839241892335295733103219047597519018279798385980449643435641873715148933509413464239093868497963875503859246723268202061131766668113716967210247359988533943233774235095314135115799344348102160552576045739398494892482222850151780703045744365287228170901680411246850407442840912792862029424272340711682967276313148007934074977082532302154170275196128916171594298961517064969436193064912143029138938524658935435428968627445906558333333312794707794766827633733625275783652549466701744109833512324959765097593037982289805334038304560521311286870142102230537694140313843316440695053112768168425942332435841463506554304692140001560659970904255628053764435160725812481841744057479446334981495593296022409170095419979078929961595032075096032845124079000461329199091448346399234816223422862058144159440227624208002186382125595253257864351989598532952117389433855933208126133283691758508162464409586201787388892272852078326984406322426170093221312332609743415302781348196140452066106955806382761643196833227261638333505322558627076856375412305579861060424079661761837831677440488990885501134719615545961467399376968185205953161747209279329811436401092004833476035112601763518160758948267715533429555823075596971501780021227959238825397854625306641719021968207208286562759280295793224703062273781082939747592407649886392690036665370387891603784671415720805252748824551855337592929888759462795335030775766941015549335542070309192832585533171888188079148217029232949181283813450984805922330399347720163290583768660161468383567402571549772127701702413645540607178959024605920125174199600683704044238841599705166857915059060677943133224974660785087169731602107742750284609282577227435100652224046711559383509115796573406030888135031922803490303884010805368440711622743060939370693527728169157361147366037528203378902426694785695421826185209190727645054790524230251928140486692991842187083362163090206163623218623876427635456328019127503923870527164311260137851955601742917342707582850237409826691743545605643286029786070468866938533045584749913419581309126861141903009258226615565963398600392962354984552499399931666928521256213652482079826930888124669060928508784478562644620050245926100332982350117458473282372871740825756270655944727733957691745091972099981025348087628565346054718854955991037088676671936425906954822680947535228463518047853514364288865459578150749143373365580366398595195698577508856728204027751957166572946624736270027230026829077291957500262454670722299614300985033956749899900194677277094139362401676351356715205327882109476468894908253281059744947269586642536627466893740970131161068093222706974116935665818548639071606674427009334766019519387635616338397163496732511385713380389626583432733718156249506412572319009458474607906372351079849700299770752204123683306585266640807220107943651799537801581768886787270373841691699092829414985720748539893665133533513209570491305538617049392220778132360140216142235468815370957222696927504744761619281887653022415802644461839186073429905165385730062553575478186942096442919421655177984497822259594503530244242982505082569701270902830306475181067349589696369162071269441716616552532367430036100709859288499048302464331570235740859686176214834565474970862828703278597401686264202540740454531142728268606248956301728495449183226054151294898956101101150052468274299048313298415265849154315603555392354757500378148668181020349927687704690377139799604316080928185187712119421487356997959261673756722770971726256666150770486618692345198019697047632379871476295698232850531113911649007845237890872413019625051807519407675986356875028706387254333414044613091251117381038584134211996264402334273247743483865810930826357379486920314992555563202323460580207828975377644952827488886137388028913633646766720509574393259239598628129286182279086559702218108416847225366257545778131162073948409566022978790103454322401458534342734696538969801129282586658367169861697302486068537202006457911095485023815047677250753438334445066419651181690699224280966616362653627072699802535205193315373396130594179336472827291172100336580155944297442978504263025034131205788874109359846566213447351182870365296807528350719323798943080648283766295241369694756392472043279054126095358949575660447622564010768144316257009335952354077568241220469060911385315243597318235730626237579138833967584448750344071226039091664615336184156281799199663661903516335837791828938864719940698651689831704599996717638174778498075559350699036662571254460800054280560315796583412105403563358279242331659488644554278079931825714094776962217144569836068764127758038196324265990919188342678228702865714698829190856834115162375747800007146134700318860913556032392198736784970077193743522172690238197748994726960568094690092937237919998327497078696808989530820232919068502200543037094342195627987671893707511942023565966092747289243742046273978634923537806488584803833054193229043664649421139572714922265444461943858687730069293416954096352090098609792290346610599169002447998433140854415872185902198081239782378928052452499957904043939154913000759516499102516508401601412419468498826614433943519252375199787335048665546921371282337577459266079270691205184476489279194611965681823993387461418979282155719709761377884630611621670046514227858127118409957323165612666750304607334538069988349041477756030810965606129766798145796371603232701516038532222333832403856433134802299889287562132422965226054209973732458302589107855470815514789031059590837127090972651954155070114956110416289828582750630767319443723767820985226808423724217931719593185140691295101932993614041829341362091563976902698885371620597514317793467204054244711370758389365458965787338342095053268434846979844348973409875251192005313640075369231378759481257997351464380352179246995610438682321957554088195555676430602873164474447760421310144355777205471639989316953408845901360149419393757079579304365581594422744502060480933690953415006442582763667137603654634602802457224703588539102970755531258851243963397237194236710372172748423453864524800912776018866681685475667090460883918642843016577043120465706852031387092527909967458079135340981652433377795688785140490569827330556472561098708327518517492527046395558297218696383943967280159648667619565060674471422150269241386356722163941407418198700105555067236293290723942217878131045274937007333306076992468246817143670698295219285333069712281080190856131588063803076118933819630664136621808719580751572600887983848374399367113285060971931941933581740316748911842817087754452567019776805556925305980756276706549409190458117173009896414741486494441196374258004787770816557725010775482916796826591673355091921335079200813839589123016980882896561349070333976500644755873025461781932994423570908055893047959561803829659148198968106108819184447504961371449133072815526429960071856043614637872060462052430915350879261430393762109804376917944667647131878583332177372410925825663263608757084677230036201956384076260930996777933850621012576373078063997452627251665402382270225553807027739185271932087470403073952838949788261937064224134318243601921635641293788473628698930497623718561297995126965257670335048967275065310704764724599896347685102776700808400323597522244659402012431983971104750724527192196693080986600195191581333432391663393573199189094937692332603046374206881528497327137665251766614105412687258584402640542720020037621497366603857638292310685267751172684825837495536596401972934914834770543254395889457048521286015155286161149320084382375514239016600483303284560151328120283892739410833751203127262134625492429757334687415319097653436255629143682043390741781606405507730798581599281124821874624009367043270375122465545547721057134142814614672706803342783848752483647997891538837113053715098840751667559986013401183749435785231700083204757363997066889118335523534196642145443394847412288810209035481594778747551629484567259615450982785777140153456633595874797682851651464405099577333693752388307039656913153937553806279004316854444503082929626611695782249140834874923599082005078744641094232234810265288916347738130160729292880386905051607464583187585036532722140910935053962548979976507602766999648678233317154147687103661839646501448490180264470416079454266335079671496095278121741236080483948581644175452276666780206960958063980139107397620388982651705097755449901140848172540795869635953317322306469273674518502713059248770794670294774453145058753083300514376624373659794777719118264615459193241278109555905913044739675355915779237127080597018496784965353195430115010335162541256058493170859466113893433653913875949784996810958880615803552228561019533220242112676619249009431396535458791365381176317946747267200808720919917925875887659875755033870118016650325019924446299986754558600520248978641829824838676691818581623202355773919442574589509586319401503642207638948391632601990498601869401169347565007910195375901128738974052142782643823531063901147977607183136297485461209807758574483562126472443770330140764004344922505180761764231881281872508884732026770140837265841690264004429904172320095956433516746300198573232093682949319319263099253321309119128208198950434651859247959178242211893679540883289526673533864892955927080079448457557990507815264212721792077130145557183987549662721173118201414826282347080489988270929407070341296153016532313966755756462773570278116258402321590906772005905333433908013223907352133223437834657768010203621691685431037607770737857236901463780447699916158197155479841763517516072723241247960134861321435245595218179981606471794184839355321440499076412255755977194316765343021903062544067846435121258812527569178979560086322546803426147824359750749412658884627151949205521203136785229200627220611473069691105814770703734672224411147704491570594057796378056908665762859764666713299280802280479687328427977948508120943014398284972451132987342241294308349710910628586986625624046999239471039990071381630231919570019774551584706719754631552124429289978603151800465206089097503465966266429845348116990237119956974719946075284905437583627010375088660060814388818591781183806118655137204725229394628783714961409060408527245468695364889102845693266087696625443220105218314125935130849349173351944411303971108054755070619110022015590509492229455768656521691102769214494520084112346745774380471722647836133241081413131508062177232946347815322757044734834566169550002055058361489531600429220731997836258940372703989065880275204492837438961152721261151566134587204539751088331463785734961727125601741493272508819925088879613969212937110080913412189574405485070919724184366142616716871605691168856488720635193152035318812138805090079104851373883378381533725856671296787215802206730299052824594950441076801192288162086147207435650976112271622446168581280028204846412362697375662758037110658622853267311720849089763957362258994248214231842757253333940875870272351220118271111550777241472042540571121092378980932608024479780753507991936749372523165422572611273415561651585370525967114171903401142310946059448013550350519727306022966066245569340083660802745615041005243940667232612481631561053426916377303012054407773759204745263066648407199161503277225758320363595960328144471897085932915631845654401286574743435460239191184330038484762809799532146533966959811431307332918591090531041442196071075770167164535953268311642274071841911212322036670155347229501134792280876978556740966355703194851160482488878689599447509561780479647339167252508071092981669859569188146161639753353448631779077567431490148162391699636813248960609807646710168895423101189036783611359500850003309026642423556559891487315675609700810983497224367869699509488380797448707759168666637153591209476739655282643417955802523000789362921306071964042500264152634816982133047241281368898001114698035542563229807162828864427271927898681169471694140127992671602929312351600834253052315816890966409629525885255702910549572196023419408920215374487979611649650304521016708020825913533420207590934233854087519164598907839607603492326406166168347231833024545337320512038861792083866976456563857927667871211076694483109939535154075059271431001104396202279613423435284524403264951160542868927689421317525078538147392045822085777552689830343928408820274907463730411302267878274840331593667122611304819916559178232492045252015045217151371883070663580778547686621184307201635220926188780299921821931861232277776480945309995438267036023945577137369591806737656142400713382408787372315201577992833550309223364471935004105654935488696608319498657249612016755937124829981518767538000104328802378088166640498272359541198490221961751816848202184017674962503993899164600347475073730896085637278858543199788645511406965987589410939196081954912053676059278528242927384198383652268649090151617635369261527382538021315159024439489008994540884201691694929732125879695544847570989987589925586719833080959369985543653844654995601014460274231717429281753420484754675004977902110904910244126012039552183399418593136880901075903715814858774723745517350862259063597569408877412525224945381277667261403135799147400533323342646647152265371916790129571385261263083124055415295947212892033968915440966395245804511753668500483298417347245760622594620387828151711743167195005654607166177353459001731465632218074372203851084031608153821935066853262944124810113759492875758043129165387404426294428605796751105154972560161239941919841905609302235321628354943306080153545377620206689948651040435445011512503476535152433940038091630465394512827901032286126657925459208424132045559150521104095819674244633600635781247232901859007566023904151600238466492489075622923876014719809208809373856588600759698707846351734456196899695015261624390595428917615752006511464933369102772787076409996520502985316305703743119676425282543838788706576063374576011818677111870481677042734942827712971943811989030701016052598537163311376455011660224037695731259281147728604856850033426716228145759789331059893179074590434105751591216131388563323265402694359728419888374972004373172612693402336698204978115180274233635660713363288396124782655780125886388215204246588744269924521273813035359852219315480286047561717636936351462846202977489848540360086602395346505843089687697851184487498028646136415190851082656515655562101990927410808228889481624073798896691963295726610187374836701536854527256556927958628277806633203072482534328526903009174273799237848698323319239858772780175135514836776076733836796921114620009451921610728991420902564353079973829977288467584997003517389939675388662088529260818028971563059809050144279928101236300437817251424483661404460502655373078750042351175020399326815834300050719114686376771973098062934968494254750992760520828515667506891433832841044832877378740314967350467978439853570000778946789193709780676488399549570568929387995382592078278713206887924968356882341565896704114573909894949187143675101352290958787636122115207410955772188653508652740162301253989610725973610691674536089072529375488733282814867694326355112821567811415609203814960772515169338251278820804366715322697731313019076685286515193231315462217558613424508253903631265942879868048397224305838888102117924236746521566479303661741488048759354217359858325345592945893622347198048207930446662688407346408992818420763247823888167282615884871103257482288541833704470768848875513872353587212991546570588593829208049961319069937264190009572671673284416922617065522923283288952374109887555465416216500722560223006894806251776322945764289595084917735660611974664372217457145781008104125903603716472705539168020546018542850085494125808748049379817586547117438849979538052913962253039835943809559693070271917138425782653236557008462712622095697772459484495578371041533122557627528334719782056532287726172415618786214010683191205800489785320519828651231260902915996417810639492182912927382330973971360063246593217503987807546809275597827726875234006203714171690568389563127370799102626269999325065936452409315237571455497152647875281066343713403654122353475670146967667130487129885736109151021973429854935866396289532575026864091137467924440780200816762103873547403404896828095472787404572317678929520758746191010673217190357212519119318793747214309815172814219047260552477229749842376721289423612215942013049480975756381198191525790765761095818709278766175097277302038570345750508945745391840100439186075150353602059878548845231426028693701297159757937824897466417740357622474250996092670376728116580458184567656090234686285214312751428677869856263208745094562304450925930125949022746093842683632765545903965754040598540135107295517345820332476811660447530261986476828415071305656331104091956018510241731127028100540967517654045768473203788922693066289767121800945955624422367337876486387399665814733533894002944586619958255883657921384309004185213532710372396375129501942487772263655848765229203519611376951690093169566869276241674836444595361045435152972234796907263828861930348380736979192812654941177838841363520197186345154582027245374621583827502685613892651157395429950822532847370652282365589019190808846298261545799048045615867534009595134682216899116374061467210276675415296665154536737314657810433566092459629712937204607087830849878860332193816042186021399107187797589491877327296895335202360773868112258915559825898443009883951053816154139723887328279554829217816087696106414369326271698175445031250577411711522621641836690521725346165755599439549646213974674514085916829836282529907584050860266423639546645614761427715306501028527115764971946608045364125528984711575617791125943399184025696248347114396608692691377072957372785243693678250177234597740083866562125893292207232596720923067566472709019010271168980424064834360911138698192534536430384026038203219209741633408527945013061499312572750033579299783718184684803978937572316146007134724494459391372148895863254778818141895008522359141536927092604481400215613333841265183919825446139865134234049766349663664375267243237603800500853915173155391667037288902029219066513678409253962744163763926234745240930017565441833273620338226233971816792550595064840687395827334151646434252470340768458281369682642534106316766536209140346196292884640850945757428160341197498566092266807736435781428453099277483339125510927318676992471968175687604516658510542349060912548417083942931734633817374153792666274359496100863727161831246634398222381537010791106351735660936544215379711826087739563597982411879280325629099309572145036089248384759626568693421593285274604941515600507277611812738518350066149626536096537229100573395021105563448161712849741934156829663442595739303057238127935195030076740133744880927632415880431513140730572873911008755847983731213079208009804697436524615482767563531857835735892814792115922169973445164465384943026657034609213251134345410975336256446240349152277865311424323577777275669039684038937643423730458335914200533359985198420090087469497610984670515983211105921892837341952393907970370647082226625513703492752232841516934866527250122989171990549620247527857096020077208643107793431276503290489001678811448511942736584177780351681821163189746037337237694115035993087132536047256854477876215744869451644516622449201922461564808089310782619234778349251265783666953936432488333373257151941395008632020449733517635909071723446896678635245999409561055451661421350960934925072972643725608202639768304844773135290189595700659961683070054982191187759739991964301676333196760094818553177811171323202576421444097367583905237131282493179917720858067934246357024949518965185642549634323027150405534212709743084724100767738690688061553644557086914290686343953685621952127405472210187579833477601671816489290283423533690900668467773723907964344122546161429478879897311383632002489805648394212091987144526042510103419951248486189052625528925384036852835778169993979209530675932344097396421913371493187676232694485500714114654831386958562752139488420917059606697963702820053844058715571085390114165102061702082293250179170903005174913183323699677393485722557262203110986176207029325213399313091037184366261158959727198251897807333804381080531843829995086085583746305918741309749196583812540435998759230884037230718302550896100622962231188123516053606379101649329560785486528322855832250352394760736567292431851380700100549082850387507726103731777599317251806733484836642378436581293721174120899135998982558584282835384920356698737761474625152889838198357901866256785033984748378739717452052113494244316428963840398765661940000585618907909351066504754836379381262805799545066366154856197306009313436609392452142597275261284557193393670175420222914433171520667592197104184912453113510831522147563442243078833462009669231544239937176977232789959301230004231428495501712625223408299182987604448473237293578397171345369747682028167166139073249764328636922557215089359178432610106331439990571449719100782253566651676723482378381903374595782955847778172308227201418245017679941765553698602066984878344084618753975270726721282299455656217546870256454835997270940442511081505603417882710228226346297502658183221481375771139653129631555256876043763698426164744747768775318441168345544905729173655701672763445189894490616338367569667177586383540770739778932761651124962092427615420933287418215083628150228560779812294219762273657694057521368321289095224345693054215153092315165643214405352037782052565255600258090362116146077245597079882421106361505057606599287324639322203720249939492237804845458005046435746584450547167553290220871942692750113345394529446250671778895818420440781154037840205731171301664523052860906454883451225672832074951516421237108506805630245141219017436464376924247367364204523456086555936380500314242142650315126539779861137711737022578627463045515263264341984141427081924402293545156742621331457683654094189502607127229690756937845870675600365383916301780989609818923039857206738484175372323638160458536301115917065058724440328785183792227464189125257778487457885876077050014475452654477407620707675229400857396949076499275155688844302772040200220926410598933015456173880705753172227646963091560542180577156968250788978937262352500520019878504979853992733642322234151963341435659639616255874414939108056531987916361600089620359927455720423918369796647771324063112011594454428279661967764354321239940442701381879082170701833418894297652307928358481358824798780365765043758191712683282009213424826053162007158819563841929678915867339985418667723978856618140018551996204606581248181041061584298676967201613566152743720630813955020686458227974578809145342484090669160076234032773574219687350124629598639214476797125213590314171999710709499124004600548597638541655110601300270305590722212534816468192691385253235044908688891890845487413456471197337285947260229716144303872553110454110308596459733376119685924634834918135606720005532750641515955716669055082707652064963615203437581379584117884543948558447441961967007159879823235709244334469515090360711888955506993091529605701124110109052305400930531435927155567125766026591793308050146652906826006176993681343716330281671809194157491450160797826796520811026658714876569208707661014688901601783463501481029543599019775255150141384929338296133944738848775260620413449178499547354494065273750164972872973001896936880956700922193246240356212071418171127523792051819065169872811489707187772036842899916225218544468890226012834056303397221308514308303430011746840976283608593381540458940035178481835682365449985884035229179717192253811566862787373653222239592098944653008642572686504702375570900249265863830129409565552890651537011765597718934488419233779038629129071420102987126787443491417337251912112980512285585000294144163349663029391705256568359143645652715452103795351064333578443599231535423318511899399562621714579776186965244811616037760811729210448489380978620812767076333536288498636613846800423969148063821399429046885273653612208417892114922638805420071931801963707677509734433131948045831250579290834251509658700222151175675740396776980491875275361266391446271609414124999128280167969007288838433455443305070756202856824652300296774821762054521004840959308463264565572333532210471778849638817059324711370087013924795211584145350816097750257537325539846254670909253603672737485234136786237666628498583378583356255499116293386366254796228974370053287491610461860031571923189249112443435889371518811257039417337776942132040890574797482224992532864349334045099513620936294344926947982163863742210855535462169213441793638983863047510627699141677971093572605877247888794740253244958553141320656290508009165781155120520191161857645875184000879474393656303045953510553005046400900249202226548742986491073271637134087367977684710584459106011155259178845013235707521386830990320616821874129758656052616788723680106094718891645222272970384724999414951352034699229766219082581301859228134167109551208539249108544770166480333633012629795635651266973180324633092240107358330243106120950069065949837722542942034789299400218520602713476020893040044862065287789624790855255655962396789920763569021269944489168459484727567057151051260308442398180030124006258188264784411345956786477499077999932408641917607511008576884368553273840420939490198634442769606764097048454996333784882575082120190486031769979716317864817602605586557065841973157587115771100144937741682943612689298235542383344985523592650940316078428273285888884379789124211344153300567777934559156629575030017020619616661539037912424450676186553375297949367616251169707797364668751508939861248358111659255928363941050450386221734140709043773396908474823603636611566291486472721713537785719635562663238169217891460685590536404015269794404508974885362386191358783084234535330963064878787283221207568296422516924928043919061259910351713760063505480254644538292354568639918766153531656823363878810586261532584965665441500920881808547911479628800379207328650416381702956928990100344942960316104644058444122911000125689593811890104728677177438351609923691998282639899111352988304875785577111655505131009405452774001066921965473492430662157662565146931772172437836424631042795906564384632232590918540316315381080964207713621709258167999130493147364068478013205330053511093294128838908327216977396372993376935539455140412242715003605255620172477970668984009430091755322575117923709118548578618660311401568926950253771345156362310431073337885326983587187792103088378397372091519167716153601548317767887385684885961459132348602225577506302293227046198055087629722349485960957869542987628330395001060453165618571316103857655887676748839378808203973835780465641794632611813730105748021895151966959157930842516885676390548839345127187707451800572127603315458026606146685434151708207589078276333629154685378867309684978591488831933745005929673080061589187957375584856000291461464479531484930940608409894512701909792581600789676000626448372661485762652153027800446580233001797515462684327319155698663022974875394503776028499735174836416955733100861194597891635382051591735643442776308255606993574690986905539902694301557775045543541506734713300905144406604402979790673403729210854488957476105676097903967335991838783595784543302541781054050336187241623868091564499620220166058112481851062079134971267948412202310303225358996864494372524810585514526085789749318708015068768262634496531913890437900014514180323780680200846268920748090322327217824296444500758277994270697727464457189811455348596484120949746161368379310008843997088124585270736395452923945495921241247470722732496543212604483523375896106898927420989509046070247937907743547023940492542558457362979401490890934423266483289500902716900336027369894205536200496093241405659455048583737264842071588560808358264647723577103871180686898556720315661982672133029456225281292068661828096492187593251336934880529893423486180694929296784874404248651181811085428812184168796998491592316155685462019539325887560409856970360363877683425866016492268660359706290988723620080929197870151718858215834711928164139644024107664231806651203681352283947829495316550661534386020773365123785479838172736423419728729884425088447200528325490013073648849813098203541096704061176114992164591819640860551712990113261428767455051302133447335124092734051709746782992404459165162209965282181700184668164249467773927491688877138094503168842993053713194304021247107796078047898829579188444348930485175363814112637415470316675745664169713202148477244017077186802454731429681520540903162857598150034806152315429209904167939396345987598777590179644386853106155085787549804515070505240619457780397844230706196266683443637462386166609892369623351794625800560563779883825573974066719450906468040813022200227476706654253610432314326483924823499466893018762726440547947208242325946425922924152188909803950432898341028541878099007128447662854977929247777055843299732124296701385162050780148698907777238001327250529023342953734375149741465258160900939968706724804958366434664710303345065090613805399925553322424864277368411756620093159218640229554775872616001107208174158965369445623858334087381169951674013156192288708818948395511906915651383892101217846975986718581587817544837647371099046598003412482527221435224978926157494152433394088924554221641455687136668872275772376059707002288453969180649699233388282817584496272516647719152768202368847416037294634219299376372780604997886221320156392527628468667604594015487486306108081421083779257564468536353833180202761545869191433645368481480767498980298516481883904581878646641199976335692976021814908146712188120576425284081094004850319299483073171770890692702924755238305883116299372207326225997132960462262638946260622091592985129458505118337700926740022632277222618045268886758210159365817458781001758127739440608558479441635492777388101820188162106216497934408032261854649216792343273061396712646724301385247465680432800722397566473846044782632585885877949189188872816287079037977694501445444735382801940440601154823288356081701251376890186993596891966989288343827204546548344665389885447212425187974275792111995754510386059091385342538578451299833529997249239982826619109813764828270440458445873062128914382579715085158099852337687662172183711698820418717928981685447294745045403680523313430812924254943127835693901579839611286652984331048854577431574769444173151934446757178684057521883941452133008519229176613619831467551292094364722355656782803170265607058172749394422457542232925375512264154619107751633065937462330633027096078663243538487535826653036671856324525826463950828403329916387471987122689215421600756542555277176979676269498167101645506560150277773873468000303668801548910164534774709486449976124075790680722318582539894938610435474030127986799531996741095558309843623870749455806561926149522334608361260758386772156255517741932108050480851812492530659643606266229712816103072161293809586656717830747093780213390158889394750976394075235735418654990640766772731845141061148652331167938625796081043194820485415102579433733439397770305476311080575764416263214047191571738852825520933393936221476242601608218615188972695217809044158574691878511305509837301112283557687764902504693287024331357456485112680776073313054936028894714126938229925170449705914887757129928429881909207678362747151011929266319330647027079442250958027110340803575442990133447986036376657098015623446314020751150168898348046405818784424155757866310287678848342169192237420101374656776372809542123130710382284261263715745409467572380100742842895422911202293237388994379002362073548319790279687397365340142359279520075165152263244399178625841286473211777129198177821110374280571081887430198147341902305712878900626847845979058073195097770038043324015169792944268135216643428486609472505435381577234746745481883222206540440702703840582599878924508295834501880662158924706889102367534514004976964920971182049667461583914076915762165344149383188059360406156033294224874577196277155681505912140435743664559418875254809259161434655093631012415168205971488430795552245195680705605593324964122507849709042548604642817865765718712157309132598824033872032524639625249439251906987913519040186680930904967717477102110191129277960621055507836942376144149755869541049815386378387618632423228196286801971564747624695129663085088408578685868917829076103519739572974494852093944667646619791896543603654843405761594336563925536339366031900982882118644416608998589706761933897752348499175005302642724348215128474415151693630140765560931038250721714109625870046723731852544131438671787961196764210813079583707450428426709353121101104177902239445007780385924274605239432564361517507840861540432554356607466032365528739811992595412542410292744430059214021584464398503899913841600840682955921449606647871823089893580251595417786542208667868513048256985405692726173472731637111591604207664712251984957270964554458913961322418175028412668405114013891804766170250438471778683203135242660192994786690315111915599136655601425396303915492925521924921915379601725079073453754509036594393681313248854385876651013097046355178094280490300517006258596786837220412102549619233619548992982598896005271103696142998185604107808909649552285825141393926597655738206159228815509010751226068540900341666878484093416444891573674753505206204185880156341084930494754530450182623675368035812830988087784879285219008339857937810751043733481447773854793687685263860690039577785385085734563413649544587423761628450140963476513815573118110951574425809767992277935527882181296804966953612208592274760330175614222225763563921763060950892592858387248925844496995330704504256216205989228742360303500148587834943140000510002183646087626848376061740158699289173279956359916204128834078135184553193415246875978727763127097133103629834142166983441587319252813099768221656306933622655302250894706780572740421242248258432412527086140445944539722513342348997370204065012628080989349432725813261386661754636636090160679970720319254075142888420096977589928682881815351694507286065853294652877478484423140572353485602369907050816121327992525153321639938693290295069564533761398555514773832742626948834996604955971135884038812304273185057349544571199294348755633244932359694323096032330339552545941236607027660486223781266233994522573465203325998634620244369595516240996053756731060927821723661048711604940265649797818848934280507757038139585872250700052347461572001477149013016399051601384873886379980579492852030715751754917598196324481693493568000570431552978587761262222533462526952058840294078240107490902595850508292632817505693086667745519267463404674844802703388423165195243175537428395795357703081669208192525136813586732683787850214192431827197064390567726917261955039903246572429367970817034567494463991439358167027990086845163994969486219027887005367822186890882554770586934273219890188215919106827770087949902805381114581646166528623613227931110047985770368195060875904434071473316813185591798325893092932745987351063851172957014313949252678664683392028655093480166452516691069132359337663492524525431286911256731862079331526217626107289952848023913460919179784746685557915679747306947377479563531876784433397937119504730258596310187353502829974912594537634604647442556973977538438161095712807152562403653742101394834010315613813185574889697609576324482396215958430481630352234864843634083235617432676501862687326203036143724311083611753973907899819512141967522817237794258959096075839219000048971378614600855061132301201594375471727387916686617440315059328239818987990052590338968770511108148322284980351119686178166380709218402059793294871822198244626570961500979220610216898038915674113060495792938479967447150426184366285999987443942322652296244772718051971082697646001397710843160738178950552979442542578999438513435350471832726412813466247399924783160537241509112307518383458934751176976708984341840950453983579184786124716267484143195008516249828672959126432212721739678874574819483680478055159381250277645997962532685372668524724451906302388562736566059899518669509252620078629823424963535233963501270929483168999470202799438199959111284811022596486917262028414263923547301016607106807298132580786568095153001958963028605855972565095163438376124289480702014907214971738757870465292051459735967998819986392356315325886290923399550081820608231279946303463501907564567278422335114234803890590045984776585807544159624133434778407968040811362505212099505408936424767574867189964906245510374096723871446054600429125285936299053783829432684948464093125182936513191266856939404819301911700596131745649030096967668289639002891621626576763281285646108624452966130451437820927441862021303707308973787178020528338973680330393155520341787956970279603560094456110047195742601183621286260376062430014080329114453673613506788454658019884271938205095423617363096902822051498261298183650914788210225696646768751358948072535396233351803969231349947689573637334493909392363604080367738154697829044542855432960978840675611251505330420232023313570007112488846962235388867435615125896964784779899851541337665342580150057985129578060692966241291572333594142349827167834133686288119075128352057177652141049373035151476885641319416260302673842270175668954283539982981902522535712834132101559422952147421875122289154094494843656116756640382076570540718226883671066013647865988511620603715018529674180557385250724284997611294721691234159312802085858632089386018661974268297014175261675791346277723353945792072902555309506729498564582722949739419285557180351623587917054656938218997248930406897831031496944354244328569068235826359344269149177620272726027008500002670533125787446161356217168977655644313952056131523545559238404348897392486509352289198011504782493537433597920483124169772204915248591066830072093671025361089501794331829744050702957563775538733328190833270764400102114497965777199792659272718387820333149914320073448687079656175006039243172049783317783320624311917006362177655755803027129828355064137150360109940675616150018647459756719916524077681231913098817216712049442673445027869710464094363540053894882959217951880740119952258794252851220017917575190217544338143302006634977725592484326902829957894937363643302116483270727899758664865354717920652134447297989776147558973242619193087354517640610479883138776624438520253510233489024022516598541687627461035415593396523760803714483356519509664073206241801434879163733907118727500470390804880917787786202436283592669456988625268878585348792218982407835735033012128473463663470832096332258620116807652526856648105124714213409621772744128903762829723023599008968158307859703331193919585077032984921015914071960141883388477036154005772518151810722239363172534584487911273935087273099485365269888959815808968701431896721148117687545772405290439245186238990448424941461445984455882332639866787865934970039421646100878638358932970124020193929007979342646889864099963033832412498003347706011254035453307590829754068153952760446908217596502503791756837347837297631033199452653802203024600945836509835906314901275911120165148302725482634847119529192699125239621148469669029166407985955362589822728319314922656815642665749692523002303575752262689805256616101214912917403030315334000572721377345863582119391812699284142036721185296913561683418443161323756910718483756680938113792501312872378850767490516278739476595893928302299922321757739736025039529332321802605632332580747226652558404847931012350889859558979098158448633645062870338936334290098048439974346324686048063225210084642748369365314709069402524178624046690970152495128521478589579702574405560620335937473840833573807521688574110648070117777270442693019030828928611349331500567654669288911210703013191419681835388464002886134537096692446563156301456236235869081413168732856922789888077899486304913276680978641935096183591792102344254787430074500723898251951678126275498150571724615470259498646388885959575479392640093644650713643945714821232402433806160025502695632280463032052744213238446374635495124806590146135169601613090436045453808895693319779094873254216048929310052794667018215834397871906894647218050936412862934139829966179882409981634227477081685908231658153229644643770659728650398037350682258706471765785022481019261510865660348508995318385097480917854475450973065926534814793403582721072902528166357151334494793317499227576625703762635320438529626801169576633134279124504715352688678941378990850992344024974802660092471832820366825033924516363927896521402321222373001129054379526509953997592199937982464099889533317513192127157309677775347128848273772422667211398322573718234898923037110062592129414368377495173319609773074141776633481445810182131759459050915744936663892700396071463474401118288567726542944192916969257141226313835942713434442428533027207182697648309442898607430003478942085978509434683558207395068694076473903714176112306341552024278927897513415617212634079508122809549009765995162391863927145238462292449533130316008523353586978287578235361757573735624400398211446036785884271434885200525749415017559270473796880389924637361102911572350602292627120281236248870918316335107524757701572556522380318935193618917244498865813298892538386783932396088082721075065139075743117883277696697740045251918572541440878986594242810727391060381544423911193191919403399735014017086769568957094297060226145078436555355156578311849915196337383161878493001216439493457700572999529706471166793269863810467079971589087443662474296950665674434093856230968759900502759230100948907359457480971577130701842562334351504349669181097619633236930761741963060396629877594320423605740769765806933197125816639651790238233402728371838010973814580158970511755217696290019590260514647080185173972077214783183051781052392666022172087627972523862862951430662871195490259423737145067351284915623348063289920278447230076631078127194589183816449904831411473397694610288346031868230347591507849272939567984890789293131377877877952206615333533321237842810794893481300939948874564825959979987829699474055405429366484400050971942045998455585514645973346728221870723569463547626700152182083391158016500070730344249431923444271612384719827878266025851956627218410662904587227606735807283208215421606490856211393468394135961084169198006012517950957603823216611424673602075037905733217054065440825928166384393424515695194707067559428356925652358436243077955610273053651174183450754392758278663336068192453590075091561781308387198745456755604780883667512988931036470624076034718208658354152357341176552800414809427292018337590639518219789546540596820790983339734209144482496719851969078486354695785087828211260017929717213899224590289175564771156001513261817494546401173866765753792548020501286148676655024650655422991861897520386497637755559086134142140533279641426729924716831034496156805384788568710249334826049715037291924407386792340278841971464877937110505520354117697197193751858116583788786987903836475926866847989552409607863227870789611711969636568422650134791297504944190490319575617795311651210794021649595900408816546975606177806076087058077975622131873541127002872804798970702087448906764290825017919709803578823217152173283702494959813206715875693853779343258480466652371418108303151337273298518542941706012222596102269048588185552073321745362880701280104288978172403443504843408994757942310702992719937316025181596791830293939905180492684158551253165164795257212269591782745312804154001516341380693271177308594875083667229676986590391671407187712952149564299951451832567092844905412795277320345504483044392681124157364930661116125692811936902690850223273995761409755338100029752307414922453487566002506901383006974586287235474541505711340803215653317755888013558518615315960246959592687097322442745819843865221605952229895208426110901497963077565949642534513821195137231618082067260562582628481294693557072071643703862821338903799864577579894730657964423115653247709409346484387348345061884310619928335535669547645281193669525488736092100009737897504453271336024623693692514814957441754306413261732742966032479345685971635530838791541191047059874928721475063908842877012178644135548247183511308729212930663814058843912134663933490780917346714349211832994660347293457959975840751693449936985814795152073852816168566759853394795330014683925503509231276422378038420752529826499970912785587307366298092494479743786333844279807026769487218530538601834002674537252865207509264589880307084988813454525426116201834844915065910810112957677146459218566438667153781178645346059701631996178357024275804852269659096596476377703924279236831019307694386374859912903932232976142432733727268681430260814663349078130787705083446662895414987994437447250785818541121332182216650566435746825382149890410733465929903109601188065892414304342986311940240678437508540975597760767847967481828828979519011032741860131857721921235411182751790788790161858363597904293460857026485517588189172185272780801165221947476872270836031624909093563598323462193140632249626935499716106144792443549454480910585860720322116408911621831432711679704183909139786687388576168400265992583575474374985435511407016831538307637744552977694641508692154602139382570166478746812318043604453452600962469769411406654390903918422013152836904365414351523196127947628201316463237101320036845775676932922046510434253610206507797840708188025379708031538765530406289421674190531679018516608318277701378166715187266390811315398619191655709499337046789141719988120280929732669477555342994355628500303500917251272258334693879102190550955193207946399949358574792611598439067779861214642994261432833958486548515201400897316295949482288775900565333959574279579231631811665827692983045319267079861163540611091928220020979845393259593471489679675942864664100148498718613474499165624155688049466950459511077252950839068215342463240777290955368419422963737995148492031929361600460612362336116105560497272804714985624419247310929812557971711794673876470649688509152430093458470917121120886627398513651448318889325686991758112903133076788664189769708660779581688432906777923389878859962681838631829190027536181062552088699940136318224310617774272219715699974298214439993774939607682565650433647599478743706289938020879066255391624740833393329314404293329114809966103205389676160883149445157135192705322513003690772675038079857311072264400315773447295845851229040102712605199020816995010753798039250952341070548023417124992925371797285430411140821105283459639200769683867185641572168393040234509025046314715522294145837885106593842030499432027043754424491348475407068979986180404615104724813737071679609509644425823581558172895422294030454207890921973366038794194215917727190918919790468199677130771457771832481419766033124280286384389445533552318777312237152293882168250788888070198443978478560473890763964065743267980049410059175588773289871652448126779900249014559804465450726536169633824520132298436638031485692248322032523661433709872813107814478036494528267632443815915786597359602276958014685939618083597019870084489873622087248781073818187624024210644238442365562930800108847995680696315224781700802168660449878807305634282354281981857560399186902903262079102723725310031243094451343476699360432676389164376031634736200019709881050369334599725169379051190247916558569048134114164028189801341568571048603109298804516898902295858186881358129473764204633807025714725709561155350904502651611285592722543274470718370754425610050558440980686802023124619199755810665935342526645137363480613047119616967389516549859943018747685700797944077728957834571786793029525901864434902745059852255476773436128330127827293742229651829066789039184625550693392986778195606690209770850766490480854204732642726615518369680687194215528084650009906946711680956856218696780219849673560648142616269670738617715249415817405545743688365879634703940519580347014618189450707589398625321026394275459913563675676076226090707460738988562490748584141525483408932557574765677354952157056254588279567557344606097178838558502030845228889823202356026759841202120625854468909012451870204903292713976786160854846309619870822122885715595169770359382627400844183609003368202641679018399898849181381795582674891637577561925379542746395873761421319009706324665965884075763321680959861498452590409081200081986329918161927685201912050170810482092816275544834577388057346009402185006311964020987904588228226449348389949057771584171721108491244993050841471485917574123564682501363654145242907811950094173897494703381653415382115313674900946149531345826766367250773059059979327875411653578641733969887480841594606827827871149302754707773568140084214277900852400449912255179640361536602036272672154371435977933273803089679800732566532172535322049751808679948156186718028821619230009824403609672010955662949242060899167233712749085291240535941852161779368821445493094798466437581682277444556215490397766283441536213978853587330111745502580037559320503693636350843493141886552576722926666917700140217384279470903988651577749956434178395844293696133644292349841670403281372685279577409791101443212360842960048935731492214839479831785517157780686727949524164327093439876562755291852692663496287636646016522947433785157496349974064475421170652749863645043705107516447364536025976630125778961235808316623680381537661131108921824457053633514262035671595763197812599934053408667995607277024276675338427968008226736399828585965966347343497201599272043379801587065581739045561493440566825748164150902655014861824523896195132208631507199016769174940371509640226820975096584406475619884028470693660234577709560484042844850384965676583007713154002556823507941892513419720094312693515995598374031565245395328114721966172781318033580550564003425589301578906572133618712334127344143858614743876776608909997209897581735608841991183493445810436119010984936736159589497755791724795095045266765267926555056661063719633093516262302258088693556893936616419227125853432266699093831329695746153838375900765749207439093118800694368927890351724530135542670547659133819554998934543278500060710599525245496964001614790765909036908503239553839411591804509080491646821928484795718069913168742580527620056157439923474897248686514438811338438960778268089270640851158575027524842139765854872375696518202618469085330959610193609326287898815437696713346122032476119608116102724912977387247974263720533740644016795186543422857751414277521396895925166938986518648002738852225259038951492039133980865732297734163039912124816027874625389748657297106300925811364830054357333916093176618242445835729487946486655816004113447296272013354470754023674171064462005215288524095128625892514072908610247219681760839145276472394236080282119271689055635022099605969699371409815981444244089267352529848896508578645123612479068168640938090525221746173676452651421844157022423502505229661127026385503540806622183573890456770981769148404868897042980872172147993963838994981074871958600983880378969855700875740169878844165909787672097928363573659238227555072752253738255724552071448702612109442536339218495541213834028062178093487770047159949662138702227359984986193824299361024485386102605430564292895797276201524489262963113524414620247116543476576931007922035910834036013229659413649089568071487513898348064125796464639731459249253224625273852012673565403122173878085388819916658720605552673093311758186068990017096244679056574261731458499648184501762274044454179110760038889252958421491883788714622382272284513056714971854927378561137783633562667892136608107759089335323934679249002400813914102716110579446222380696427951734834706685571667086674109327348752168913672079897943426217405755259881200575923662566919713223103099346216351711659581677271137337671010909366281166708479841574007955193437108945641038095974412205409634965508932949819447126247132548013003496793579797018539722924261824207098583757931576531951229056082308108607946356049759095739654481837823954050345409686265375812974898481793007352806580645034650029100639406549114408147897811715543353120003121545481963237588402332121863308988940956992677294988660622999631087518337122531006242929920561533296808499687422410682332142786426861571716448608952113800851157762652269011743172058910650362646999653931545253466331800280558946988537581178593847433548701913718463722959005342106553054455725727813764559442333006439105078928392100313288438702925341440576182029552520116989262484182524326403500108891188883429407806582315417339527435203491242196782505363227564274190766869107491083165822930758563284423685255760201691721762891390342711356996455210566016606556781425796749569973270980459479581268828563451827476285989442596818668762057102257573514051596161446682944564620923925290569946365346159765609851033182179595711978389358701336129557883080925293399026764069152498792971503740579253326710890928317674392635770110733582721442520386162257565871396874946762852116261391127760195068677107893945747619566410191292230813105133208030193921201569331777773421275656865065151878555005553431190219559097705605802038652836523761554709275245043522837786950383012120712729051083012942393752564726579374224954838095465408830535384866103086395275982222726888145808400889724845129471835012693725263358185664384334301973027617553920631570848305609971366956596723392384168943336817954838798733285294525207462325348771227181459252467519867670849514362562180241389708661710960596053222002266836054740956004691145490381620270346096351913219891086058340869881657577878397607666667397357009173934106974643097398582616864966632214017145953191782537564361608688830277230440086461393501936104114746988541291595477587811839234282625856979095612042462504843484936234034574091474269491692251717490824408996799436201095269418202200570927522105524888854402807154480845642221338496732015400587148686395387078014222843697591686338563848373047229026913626271578769238235869033408209643479864323371083735948402597817008705510600531919937036580228651535015463909906152606512350410804504639112414478887461664520205420216532660446130599126318878383294064907628804521457754574521626743691591666288908676342673668725844428335800685059980695980091021429590394591188069859070556083621910161870641029942166458487581966449464804043434933812209876473454384516984104278573637208771851107215189846804972172517517477206013293149110124048182691891232301090220285584724975708872667897097491097716915258205188212342809406086810953600683102580257181071306879724468225497680219290178487103509407398693309906674940689306639176078285261850676296037248812852978040049199783621724922430477040558434243789677450776401305362260004741752281588748073808569160272119247283847538012855373032228776826951770706891861907513081352785312849490583928565641919522126649505452984231735050405399510496699249224267867338908826348150446112619842906867389129804500283279291124535112951335651929084457645129084018786804799432222447640793821396040187187779480715944284586924790587620821513621369870600030456077898088415709121509000221449019882541499323375054586213385751269375659312476961526273192154273362590038577509629040903731679269261001802772556320225440264774550068312112165391419774820208646451433591399931178634386182697687978937934775651431758861215435910561399111602736502017122210855212910341278140334870569131542994224211608933484118048216760166201278011037648763122242053320838874202648867300542727034950131987368269342094675114301552487480161134154274788241855627930483765852546937969322852413189590725104484231695910434700009884074822653194248202051729248710681525832306312688136624825532336317012945139313516724634640305172587829202525670205295460447147626980628071521693034865847669812759028263696987417463891230673375741994522061859851271969199266762116050431775018742843684008795806402173522168249644500287545319866402603070111185068647908211030491262290542264471426229204644905791131241324856597016549771989781734223272160805702850921669644584069760182828953224413413927172038644523195758667417437402934262046551044736787249902963408377484712976388842052010014666298317963604159397561100408982726520594255626076980006491204001460554209274159834951830535787217659126182182475894039662639157312198863542484123381165737743793640903271763741740986223506035388179873060753832905784845731484040469185769799650001262775291020141431772025013163991012828690175687334192745410072787349858270321628960536071083696984783892597697900384033075183924698862693709259299948903427222344331956327294905694444282242507225269563897838996490141417826033388942737923561700336558012712258207371497251649887690067561321337889136653525262466558351549603195192162290314418483072856339134504478288115581662485752256735242895154317119113259302279455252736402020656591642442556628903958586005889890643855503294178219809559597722457832286596867722837981930480478764888378124241782139267012618198181584149280627155283705166055992667411898964864573232184057681424635005628159031790969674592375061202420041781967256575089274792523523368387184360251051511791937383144062297152986172802603530936626669959322554406909894289096333127590877152558903072235013646753382379827632309033714631520780707886405295545987767459752528571840062098854872808852775125261724474020095524804091751286763187090026719651633103567945322084973421324810981047080725794459596237748270721692726060952468943025234857330437394217632169299426343387993757002933142097486370099931974436872676601140008604283811793307245336096981571613115716248136010126506958897918076170737553215228526790307310666311262169730446427751406158138345825022128956632997076905678207764227997828416759385695238750561787155227979564583625806734194692841946232185035523545967630957459682994471286166720891909363994331565494241373650360389009369217216569339530528295918601374080008106683179147625367840106834553274273065111701922967480473711973031384572801479502788930765613645228805214340115412001429470284405046133688698023422714569806682737262922534556134316540471920840208846899569421418042421191788016031548109055475289359094539262216445021622346764074379016821910073491102733258902023007945706403130017292579952067900753266095243022685421548101498581562991711188757687262723814412992759349714925702399333471605824963404755995294999122590773964871463133834068932217462122156045947506699328997490729191957939100923786195851072727961560225186402896581338812834466265969872283618412230250608824025957986383387300843904401604470752149126918164584459053157091175184629479261402139991100195858098527662343891673568269315346699423785162541784969599889888390093457367496233977991790900187171630142424300284797421110081461914085087815123027626922765184075210325228380339955522231237650213957361903319257244205823007200259055676766621724331918878634715149510331955690744994648771682039024938794717776303708436162757477720832750911618113576103451490428719279437441124800195580279422214899811511931004568375583143503034651784231544636170696917435150653197578138397668219983639027447669694370166302284215619905696334104583911622189648083122618445695631676304149755644326210150711028374966131234684547782860002064434127051324864928341920242871163722793713984768812542632567957206051651686061005765466269231210108939113033968373475946028809023968778061613251532167185283491984692406577950672416193112743598715698543359422216989047452907397813106851053529025544528245587256071403854037604862882956464491021437625975566764824986315867400583140372583084962862154047069907173840758200760790767434532496670395178195609333647109055316975086491363255308447603846849299866519208222327942590085859733684358407818642070989670640208373482096687966571633764799177960150204274079051551218948395306131197684074925149012093470512473020334237862417781870621420453210941134063200782003308207647105319714155304051148005464034732609402885036676097291111317190829213376545794806088684314269276546743657417695904095209218340364332262259411046480860106749354534675908149264346613939343512556515636897120344056191095191204349863648274869773933529649104345638989669545392583120470959502785245088624763056242057293997651565791200632377486503649254824570828181166135835961938922640255968940434412011764418601293284141446050220508576743669827679631215023426205046126322105516861187610807049722639936600965112365008866112853293974073672199345171373626154719453430110804722516587665745488925777914030106016151640601409576536245861470578107798498514535130270889345546917126990008789384996443362606751832117027158241198096966751013081291595809199207902143048624964836499786926382147736107417774319806443179790694428280307078704330023178129753367878289538839705130689586165601609205554573129858920015835613976951965915802986116130867147689581589451712061157396090177557308722720288281735391930222604453149015976930218661059208631843896303318401770204811901065059111248854885964873918158665003707872906979444239001777673969165865242946340042339077969982167362019351415845164859735045553659351066850578554751357000263577745300724006704548106979017089222828171197815347469723330034212288950620345482750578998669798410427785443870447728802504005800264025844859515530023694911715334985556117030689952853667679965450619636011136910498440455655571483873520787406816534582067405198940681760047354596568528114826419637574339428769449324939687908463011817605616538133004824067401965222281742432246465020761546340291201232255276387941095502145420999009431037417883158374601840449228230757980987927163786481460107895245334687452883251197823084889823536333054205840484494199538013640157891528760875501120418627186935447694909734664071088359064227983536729548535366249035434958162144436033420103855003048767821674777600541733702349299891696454818122808981691281869239955155411671860866126056272574883831414765016560017602155577708686005003437781713587880740183385914985141683036664747751808158069089188097626326027916173141909685241367767097246048549351089991067326285253460338663730932894661547980191844407221131446037050942904810647616962238740600443365424923090950182227255063251819345459256206237752892152028650971166600695244068409665794400862837662195466675402221345543017373500872306521828939791210934559939326122625977055348884476030151782356564765893115904744453946366278254234121563408939706555233537240086898751374769323409557234901736692221657595739758513931658527053889210436144248433194477458290636572816267514046834288035011815923424288368052315757844586203602316191249496202995020157046555610644309170993538867922055141468888011457169884167731482931659610256995354304734747292636184646811796821955725907761539800690107502343463611051703197314290592833735142586895076445371727150144421144636142507955883236265507118142082694884124298176065006683537609954917901877984072480388337051756621845307470700402475625581101741973285823871807550868790280103452631815874532596209793871161726240770014076955826877252205859417702188742989569646710818460730699898124850905167318710350184036032471738822011434923752796106057829028763335905522835607973221250079404215945381679846707042598152904278643982265799702023678071738524083796603318097635352323917383368823735571988570986483551074676691993238367883608681021948235850360029115374004290113109035147174668904400056338802621685816145699710432726978934502724431381169874745679701236792873408200868291627181173525144254800071310768125570004370118224227521211133819906099837569069333315712142279232937170900589136922083230942382612250958356504618592978487049112189850833427093925842147439367278393702311554626896551162147386315593578373884656694874760405274760699511436227540894502335721733954887192413573712376236143219808324601087603876274771893230747432962090343651049166021459517515926288212928303066816213028672918495318043693593666797809437492580962233231696252352347460664877683030403060660372019762048427436363235124242870648915974200195484871255503763720255868797018485799977596091538199138535950329000868689422585302077928728584851006391023424397458127762516292512923580135606965709172701327106075327826983311749463796977002246408160829752870045435566724285868217622902277197955671944995008710143075904530873337885877426036204306834077136857053437482654633549941424983115975557016947116286562383513091845688926820784498994574208390389985202059432707552894907221505093361709832809971274166428315242368238260336116645753002684854378494890065844462977075425180445669446312911512989063125894235340293919564305094832868777031771674815235307342958623988158081221800656640219407647896840802310126972382063269994532310540276659675763617556213450724350093412321178830459336648131389620494594328149863269071841869560183355741703445979912295264673683551608946733045459080445522811589167630900973892148081667389510285864315787915682198836216752825963045108649212594527398850175455956239026359703586166014703529756030959240367611752504788818679913179756121547231722584267454342730909122554646105584626736856636577879386844240467390330545708648287805994483271586798094409132987919760071925514221723070820149360192079461945055112790394624948886410914655122448024150088092689729350969028991137233515549844780086511790803847859333498066723033867776801236930416229994814123806730196917749332137348189119004464601679413749128874624125699735552845480931829884074114837924650029788140702234173628820279807028655063730057380228266287130642318438160951400740092384491431141155746529313927039266781051102388054771324194236443196062086713083387254586914511212576245610276101180528770259026930472122888409130203658701818324696969174880926458042273301276285496980649901168797576458900333091173826102268332126192925177272699958115256538242518022251402352671560553270246361961819459856234581268277752457707593809448882219273106605339990767257089953667978070716075763966413764014737534030099806542539824774794223339780287101837366628925364221976123536178621500858392225400259104326901954526907720057764409020576021443023223685857139814977899629340307649443294069296433425555451332604261440340750685203928825841803385380224643390592341481337496585188450988810125670828670692619650056576497045669183906966470080289314701611913048807400563460828522277875296636084121309422932295764356620707376855274567962436527679825388638081705525344869061053979458715519295817680538968996057107939314853805074847899313164226217361350893716867415045610054307442151752940616305997356662735093202800278938092222184906008395834986317975789642301113808936828528557239398277374973396659681917207086392978004240752096617566705044452952754970338062192691693530399962012586575522792149875092688759929811209660981349962833421234479362888626154027061470242924863464581304417987350382799848824918528581098553947523484690460401473876751511895956394464429136095630223040835950683462541923744807608606950356014107008440871455917556349600303122454230616856079414114021678996626365727732391423811437490593563350475838860314136495845741611758726083064602410919745255488720828163537795481733579674197523708603586307871692138894624113004291514517804482493507605378156109445460876756665722588971418086832607318122997067321326459959514922930324033047795861445516100278933200254655563162299603394252007550539541472792727045205028529534597291728577165523572195822166261292294750679481275099611024535149577696144709677396062588570929459299653706468808525753385109242081010188314151200113862532693155638365009485911038448787862842876960629279600898359961899813930857994287559271710230710569425952742613418296358056026747955459329555856964409761728458425459809762499100061019928849466585887848472241920412266514731226720372075851331148528195721764174403068116515232419984206812397282265312630970319823484570581140398799912083567145201744452093038192279266403848120065719572502120172058614061586301369685070629775036712336404168131111855579432975320377251147868561538222437582605627567319014558324715683214454054807354179330750767286134471112780868983624701018550228806673112506188672961479468713994994664441816096764853006768000008106379235290402745486187991197667727637473371278821079440172165433344229502455011427632267606932619494689030152113653510096150254017653085149925856294337395828932934171236152745592660775046634292113986168128802025684330091362775875417517620010627581915290942352739549984694985832568037228857218263505499076144436812200150241609388740200611332375359700622545496255843115303243579153222505790110285703647811767315906201802124395359670958128759325256206494662327670502942575068437213791072777013753101530700625764990255573539288374156097944514809258080868854353532787389957979356207771340242965279123898468883994744912885254867181811882734120543757644349080588257904165933980953760415459898824512140333246099359991762659767313761081130383504719210508861581823192045912881469326633862449872271888661186585122052771871508460471570166096181878971785463979507564470519666692702585732233300468508158381305216617439338775016719301746146857160542695607765235819084041001397656056963363675255227200067692942333230908584633827782957404607890937254095762182049700309437844691734225830793468051031722337505282107854073263284986089858121735844048620638734304794954991301794055864965162363643722592509897492292870189818912765998083829425040230966755504302319338457554639700080168488203245352677755077145236684321427765484240680067686520592030058486440747433108038716005973453460284168452896371157769226108478796939357443944343969501465202712414754826652416514973597956868395015459963696116102519291266425446944327599731571061438332994448483895084322686877536601424005377467090622073121005983302176798079383063410116136152651905945276698494053336899256346619217340624971542732423762892626967289162871645609243682143663843955718123696705534950401023678584326537684989451867369357429477868862849170161019455695108091742041483100851030569188356661028387727488173701957910749691194694000513859157826467839293706823667586905964846298972421928656448079179230346856812486966639086412761402702594153707237483535154630627849665377112175045031009743217491210253237768436173793806176116417957187292685074906038949763489205915578446702309049566271084860114101703226778660092097528867760300823758466060524742658826865974193815552961846060254555668174316621018285167068110070829062733909308707613794140127768864120580793640111509237748017674063669378308387277510062566351489258061107257644044696711520769080561413237883482627435684139680338006372676943206919993280543111552759366278486100687447092931280714673653348486909210462856349903063843438567008190520836555769829268630094011585069697169422538392266753294505153106081082199589044189705653529950874032955829214239448657755671439714356544052185949892057499653592016425193860571864562568988546083723243479992302401940928076717464453358190854560867803566760339477236374144762466176414185636115194451903801010241037685123149619775209525951422976646826007948257186934845199365317811009305343858110435624521091168124223488422910611035661887579774507791978110653033209955096595830983253163718444451241950036634250352933429152415634568944447807414198440886797883819611027619593977749080510923149745869750557642964353157401392662908270467491416035168409833813377775728862890350038029213659057222861183922720558524648443300169143924632213066910256555815003152492697849024721453313015925461936265437746707499609608607449875187980935102746188058507116202030419923970359784721358356556515540668339747710848340679211918306288998003897611943588653402095459567409850187524144198776979767341343285330342873038254916340643367335022482096340679584002882780870161080131746989425136474804689702116857811257425999922488987053059551595564185907051860127696652810103304272220342622789572117571486164256435352010201034458212808188258038334935474792252251625936465151880202029671998767960240400422647440258632999565324843092991379657161143660148078983965679137499697083202019797528133217417317887507708363700560102881538744893618623352422595848015613878470773157270107846678809206268629250030723959911804788695853766504837671249156957280061772771928628188820589201933904404396716914530184057284160858257519114164621079382998973608743153905266666604533703775943187502367568274740435955764734830152750462327578624185519444046945232992661571917205521030791602870612334719413400633662674509492208421662243190121425067461859511748960592847152910099064541922709342190397036875451832107086781278169261197262542976005449132488613229649139626586898495037894169657364813946793744664688782397607552855111491705482171505595559612454831666987076781499957231797876558761508568532756912082639956435807184815458663057202089286635960344911848758326189760271369623904394804054572047670938444872525120110078032249404211556373657762816689827763962278430867989497846081507851288805241468032595694073518518592993830610036347387309284713766148056122875691168321857875820540878543756812983798755281422050224887110015641535017817610206358008332863074269212991817264489592185318547555087088888148034337029752843286246829232107680995454231826259251080636851566914879655908169911674345251131558113187580024420641040938227644260767457599308819543945292602733674975738223732825982796166204442903045816228658498149473289230787736095827330995327799288545266662210192797910869160523773306161589256831426523814554480116325354954570705520223932899713735385584989931412436644356593049102491367215956463293009588080842992798030303264216986934308770318013588038911040013305771369374141807744159725333848498869204130337523876328462674318342546369731192971641351960761524189255721869678408097717058941575088290439702352141589744746996680214742653157539471967991428160793750590229173912731542031162996894876899905000829498665894667039412192308122937004010963296202196260621368085139319608214537197029000011668045373023387516005671223480156633286010125762673599968902112947137398018409985788463677119049604043790768879642411699925243668581896605393088625325920283323052598689955621312962333445697249541634323381790562822150341505758218451322232910584185896624476010517821948775981835499245370479828890679612387980325975312449080906244356969942485836038092656493557565531817776033887745803447318425302873767038066366981590476569115929485447777793454257604002495259503494085835013781010537942081257366482196205662430451625968266168246886849347335579521617214889874583568047540911222575278304955029987998359152439240568693129345404462575748844674076340401031311430760236458244643469898289132199968270656070740091013585080475633108557887193595309131947823417072963052237117389220764693876662486528517913252513431851011755633917845295883965122120314326408624925560035715594728278664229427675189700417935289960124714128626640388350711360633756577637095852164380460360058577512308216923849019994562736434983278809915140015979128003176754528225979089887518848887720606213299667165069609734712658678634610688018659862946635289804182321011022043621752705328613014189084016818964173079804498282715310967863892903457399895980896610077950491007562665458506884042772856597914549552812263026070310401787119984389782624057091616358133508621455355489524855604757772194238578142223453363547584291266890781850145559446531770398641229230460705888842471420973082987796878409221745126576341206759143824691461956460191863160752785422717382762439803075863149215698771782163312294565953784134344259214370158744489314307134244930505273012131610582241886561391480539915129831887205421594812924304932940110249131675755023917837804833142261048766568769562415493631920631655225182149967647862936998934652506079014071234168401800668148782278971983363643108184622350552701667339911761794633376449682589353069162053628957039002726578657574318495131535264075277170425023936134584903466089704928020313427207213330276158879567438773484711287788932020878755115231612959342254864049571026090381067157333291340995393671448589987067509833395726635890005217466441645221767178412786047315150443639610628890267191370664954792065552480988545985970306238202816376896775064907728456911460624583084367216573519663539768748256864312852938867730297844343699253486963893546079113194940452351395740278950523410386376805354437068805421743639623500996779490543534242528615400490194659120151962196306162690208804662954536309607817476495639705897754746347002138149320641217853244511082947544781039337303573243849155585531342680951631063783390616249678947742077197053646725592604750478793487815923306920738089470882882925038149399742621831383727502920298332826738644903291405113662164585536878462580589076992356230502276336007546953896998108146616812308227528359212857461859582349444873592572096372545806400067036326000678674685196649356553176772008685757810269466470971320563119211013965421364543288435985195834916645948424551741757374915433658612768737565572481752571607005269943565469335675761660289213252147028001551562746568735735614937756830341921729301728543432711715796865943861579028940556870460947497324893254368073188000393784992252147346381428120527931563762086812287210066686951727551417314967212840508168471560572281188223227696982421057248280824101463357599391981784943936138796988047444806854604952043204672494724008147896240466821994499208015026483072905242987064775597519090685490448129524663685106354982826534820522128327487730352122033164093833548570372869259731078648174997721193501766107406127009608746464703378642590252064810946038210987459298006753550636904046529811179536810439139129306217992171372000571538965572263155116057918037745817363181178656343450749675729879107178885968295537007097703328739521201389517674946943189329620641451853484828821289619864353795060263485863805509790294526544537508900751977441987851250779989435535341912359778197683502689762003690719094279990774041852346266885665566315345549638682252207137317737747571273847738022721979362920848788408657941128616871777451550593699921615042993174240372190476839271994639027762067051381090087100633107027034360168694303835564644743041962168539412653192295342338471074043569719118273926532285518497732658336962631131926135841379843312663264902862566596892314238784131685452446444254481947267497685782062624339770865321486060317740520805369513970745438679109373352053119138033048177866562108618895670769654527089210194132801481340970955207449364898389656897620296534815258670385214949842859915450973562218906284533682016791378506308381123262242210430602204853814988726052324564989353635527099254303386793974518905742149092139206822762812967125306042188073322204598551089777792560498359830433061203810191397994698369392308940557529385879821537164554284544054988108841775523619020997761967949157520645053853255330708459668648341103360226465869111767217167115288124223093365984878326700849497661289800326192581735984548509082276506419803603567504997279901363299524887759150434587949322440861543725853979840804262384032179163786947809479729034917711098009213634754567311646608758856526612241213604493052450229722616781959829745256296678003882367932420166915547917406567475732657278804511194338192494040284370087671751772341927247062800532630784283020408157236885896276688271605315487204140905337116609600888816536325509949610447504969225695397822469349916776361518383644048058628550077172033294238169217708795997377670554625458956812566248343258655224968266419715291039052675123435081977835363144352725065880817999307168251861432414839761239470894470324018923368360151420939096957671428030149153084462639428807331170034861932415549883002210040646440557677187500502497923763671265159114399710562539520395366790358934677629496638076707780739034498511982839353192070537193328205248254602985794804351937629473933812287092616903562442303360940402251631501813449421440257500848238108326203427212518420985204457763675499990992479330954842386340710795572519348948475558043006048592722744736367249858635345106555100882206181599911799346582532810730347285344463109308181413060206146639615048164555868172559019918141362629923595142616311602337900012078625538611183026117162924926551579976297424515151954813504690780098995378594406701893078920570698885849827003527751796769897231782443061931219009472391293047993150609602400982873270886117306687713405471053529340417445103884911091102369350797306584835941848017552177237441537135337344478586919423728210770194309656642895554791288555130880274623599526209149754352103705484336480184837971184130594043347875562047107071239270789774795075766793446509658235218816364952470182343652767861900843457954001933550966764899416153507883333173864952330664027464076751634365567210685050323513839409827593260377820617950669269255368901393116543830449279727841654325693943012300779279020281942450394974489103894628932611683206324556667728483069890550059378859858138773856627539930129371130039678620997145137115755505042603448927134827938869974836246426054119706127375632816095842576184359136073318937858480500122802677116206647204456229166185699876651325248898972756320428476730013719195129110591510577554830044737187055506903717802426846336386565145753753327511541756272619039276350439590426736046817852418224364425250504446966460513311493149710913536768943185114180199415324472603949676544807051354430993024336919506765432064405179296176208547052717111574784277527244822485464071965488728528211621204546752826169226259349455322652879442741578726151639142129494054438364094744442809944990556538864876760794989648872613512202788838543759266722793772835619762204598289529559730898792029287823188845287383810108330371349083450926437848235491165984596150394411716773174397632951142040873042429188205722485624602978224669239632994711345615496125160804137139511793168479029733173871696290992614096355332499975995843707122197592457306154095262938697538914059538353521543421698998634170868717682290246821837108079923992223327813692233016127440443313086962080694893957928225997653627138234668162868850118521828121468803754734606847561727848199953826482804057710240500392414272711691901960179581967397852179562077708254910280721519810739908661438664957818511705347546264523855621940898668282948425672865212686222386952925984742802621929192393431326651912035526921554781255275430523454127745721412938628548826035000183357522114052710796788809860585206461124102547773749349511564421576790083649572516836353634089947041632069734061473603693962548413476912691392210600566913212182012003316775289861023120287603860224508193049080274999829408051991131245597490705377631343943605235752807556489588173431095850389919064851972542356766883805175930248671607645640779927670777662033744401038343210501162224173555394648488249422378952909589952714588106878799884427077017705924177641368333854820958345050025672705600595274196402550980449886329080759995406934392402326654020680513073070655857801145510281921624055947422081793969232081531677553324525245914889127638360427742244901867128125717293650372565888318228842986107162442540253159331360403653468214375016940018267411569207621959159590661774180514083737425055566293038789899225957077970929425812904664070943983418477082808344169348768349246889929902028790978915523762569460508589125287404746746283675028146428784364616127257786288147522921315604667951231466652762272117052338029130007219390683160153242101482169195433325838376476475810327408693349147070137059364685826735760583950693685370255323369013410157112410246366560504942420132481949074050680952535829951885399786979397387576868376722703661705481123566242314120975722173344774335893603258826011633101808397617784430409370167720892850895489537516683527182943753060220751480559296205189273999467282809012668816964685678359782133041045384636210299986151720538423717281090783114584216546741598208161531954837878947700751803029269060670544849293514968017603505530797295338989484516427192090433639144621059379298401114744743438512918750434209387312296132054852400980396444238484403516020554383216814208816445583910087941932231792236835179782594513476478561806708227192548366270206224567707204859880418355683695755458978360719275626301799438050837063329228775908492505588874369166025675247027025622397457710646727519890395414802554007579288689559504810791204095537140358506434769068551548974451585389365185288424917583383914705780806676256178187037803694008890359347093096142517464585816840872302851228239035270849510558703095769463973482428853442079206319909814146256054889471033995541107338197118895872816778785658032383204526976615100683210468229680470432700191655247878959411029468744913700785320669024041698897993801403124986740009835944171645025580717993818283212957949331589534643294277382143007641664005944837715740306350928620390143919096738167019098172285400379278761388051709814986394658846548701572355303813245555046210360638554448794707097270579239731499332793806786802059256083446858911466606473432608609718298783185493587524234648205164072055383539054711165637816093403540526558609392647773624647238445286605879620124605722839389330965071875135186327539462009900171472216723489968328134078975652267255452432832094137701489303601966540601074973089163123051714635379390898837980241436088850288440315717843734913739248390894701846094453561747318054442907760985173468790474953382732097267120819584476385786259484045748707341311036516889065228032484023484097741697622969899397192579577160327776713892101951297567508404085541353366745931348941148140891388094282779386840171502459244799478284307270477086859329754986704254048760122328248509631947635900262603234446736629698113390327833399909479357498201017396780222552873332005938651455907283796279234629886609929614334631230669172767017752752882949509617250489326966195320980734121704294077494901364726822749044411120261586132602381029793703022927437007520116171753838674521948668897538428161591757361251155777354268700681627956473345187188731324654545261946063464848315101058507863120729769201881767590604979326690164032690486924641812954327005447124213377151969105814532494217833840348576712395692365975912612392382552115115106217616246931075209283749724420087734907746171113688024822140021925998825899447505485750509811304454096612883374709266575501010807472701091317303920428222308837996436033274608290698984088930715944891496666212449887765377010796149887773041622994374067100472775593071249498385536242428887139886826793435318301889578289147500556596291573997481724629611423321993394725543948203923017362307258072755678495620226514861145881460191340019544388914413257839896911439400708737563454374919862915039584441827195749543738132104473429332008744005816202675911807266212618791550166439914472608493068344855201621445443218486654931752562377003300836550482008646376054976917637215940040020177441985603892723851799522876981467747692683886573059414282619203761451365247155656573541075492413787896246984959790508303648988804602085836336245500658717050587952469946607642945250607372481230357628958336985532100337646203664493255213937867500381697280219736565873190078741292254214635695410921045239386638747341444817880273428107480216356898922934648287124548134449939155806977294235573244959871719574548344570615834755100977408012193642519883206928667027678003088771820213939612748807630699864642167690938401262969605753212369297263977654281159767448988537514029287786189017503777676760561261826915272503714859237051150982587027482025654123300761907355739217791942100624016570786226285572777843765012883458738941952207131704473375883685040490366135230426333211522296293619910876867520802382373736015635223824674353905987771424812677894307979905081703988134532576064194655676706653176287843105263749018755374150936390281682253396337220282380671746379678778968091967787939437275150916653474637300259768567189321116204612159947430911704711010941047883137244413451251765594607595298519254700512279738472895623263508675494463795844377196080837037423070129116453607680060626838785915323378393917217424059214765150651134516723772255808610961999940182610409147014267080411322170488461361969178043354445712546074662725095190756827266673379467923778380746142595894643260469904140299140830288192636116833894826798058889070750356555695835098989060168239396752476408280899433820764300294447035404839949148695654932215082766710560955923810268899264498843744938125893194625097354748027592418595482033861956866238624845324804645155343279737794241931628849972336496796444322133307458323151015949638582927148058332133922833045767616068765657580518654937628741165371898388461775818605071927188792021126848245099726872611306094886158160464293078292165550259622751130604724392864864553518905716582109531343967713058268030141650913207113156233156056934904941731332294243031017862129891770512207711971487289245581181126722997270118589745177165528587204883026780853289688287054201895790838095906795089200202728836731131311145027213821036318496724596683646415328710420943897757070737453964266679771021150231745750283789781780784684682207485746029397703791228120730762478621170480480702433737118829388814422570178685989938161418826487264931001641884695365122390824885056009021713825053349459886926813371897326853475099553363336757035509225751016397517377128187155327856745308298912298282813443809992758092836317293191068785381787122264867626682752686985120280022743111412334746073326567488405729171634303210169385410149030340655421480176938066193983079320798952210392943583474074866866003203997937957162891072821276458106929075985814288004970450043981075638451832681489030134479963931713573108312121647619053717536163001646636020123699081768697522318084471029817332875178692772385745046178672945726675787642939770427706348878616374211720323709163396828457668278524631615829390275505293205443207548572340185426190152836180427505086952003925582552390315041358788596873030312892689345093584381355454037019659265745503552409492530846706517262583252969730651990796803624035982890349413888182160648768803495824528571368290469314751643164327262638893556112956429142476044848324569780032600822494591462050933273176401309627688456267849864374453765650909234612113389024056783228965273280442832503187216631414690334025538151358834964722205406295922755311259869422114494682837443282726593762177884744232626715623145090025241671810653041880656381963547781314839503404942121932170874784071995626208739123102507336530789327424099833974324976464424550887167432168480094985193740167596912742996938661219944500228833158151996880334784423441520208348154080954241307527976956393681830840014538305306858323058088107765022002102933770294331726386948789468685460613886881261927298102174889632042985208056273006686690502644422770533597166854430559562217935732810417583301798856587340370477304611092362487936093807498154132033308160974614583485574241247696474994548739684519552132797964938088169249069608673191736972410490178833128842059306691829954448300358373502109937133050935894588423039868241894284728854731649379771302599025997658762796019256845186612524530427950564031326426250647067107518075773449244475981732257691217298232219581580656158635843018621611680168167548042749803140172082693021848309928412995901718269756396373229701748544682259737825862634873963361901091444848506948417684357661598912413845693667957034196472375499102927099260074912041085425618223792973793224662110876024571236239425298042709398185422543121494369633240858905819899581683428063739105231400036455866528995441841218234662355388049946817351500273683236846962152539103549287897579166882372523716878266978499985611875122236603554215668403052730279155464795030459850882889990221762305518079442721958239410525592933633517615082105980037080789204442145614223543311232276919975972011493940914372276144654206747305741074441100170054813307530895344515127514345313109073682222498162983421046760084114378675151826045773622969314763589597019898630629287848360338762017783593505585887163846502637459586210376298696495029225961149231843728924136539595458828628300156237279262496580973852632815014192914237407120760524889585805363074457976742713452397824343012066747468885062461215502234825931819024635788036216022255299908742379346567157072640310650656469535310517476120915694474316343773787116283817297691098826512065577053826831818334139539365909026835451674072548064167119136045737294053749502959989647719951187406098258768092078845718289916529512218277000680108906754742827005517086458496864069465544529536327331371194274309610680808370968188701099138001212648294318317583727038022150820928075493364305233844995815823813204502650059347640818307938602992782915439911842611126325684542687371697117863714310367368835797377679693261250347683847692201592681418247966893712929976625244370436791574209824858161770559750419359012291989922007443783780607583229440337453585201906048014695596974252993243514585972012585015936834287944808667076404319657804525998499180731883982215236865117320452933675083936525358256352889948578535688348611346485686144541062257099832722687732680171301268923740763759919433955176308603121695566813021295612212619943056610662838885898865238744903159883294209851646290153846838938544884908209328552836846384589328109028384647020653084684053385525856830706346859685696950453896344991983211077122693549801030611282043203310917829134315879715126393267907516279391008761536486786203167791291175203926457579929016925705155813137605080844128816853228269227047064906496947104225448520037676560325968913418047272531249460301292677470068000852953743931112225639977235555937660596150384997020328906215534036032908080016811412049909609849338500406727049308634861703715725419530076510822874666774100006053241987297511953799207024784501953214281571899058392474393593760295019607867232973148587620369432976959011598160238122468804181343348816573576788871328916358656291154010937189407899383938422605290160536135235371793898617117825333818109845164563582051440794774389842770789545360196106761698726513349636306185327019919394124223447563457436911354540058104341053478186247490190112173480699129638786478383460586627216704394179955568901777141306799794830789493572726045949458444209454813527503545743870147303998040828574221699918058151693372000285399285435768573990054744341710842344744497379101412888468974249236351374060971129940648333126709188022722236914434866070318515016489916611195855563186596313394602247223054363119009570213060861628774660914190558688384160327517227240976189864850904915114961551278349825974250898164781808776998802193653848595005539240041725131731752427532100153452325943252362978944123780455692510600168054036444503814195774082454644168384021140463414629956484261714812681012265456536549828835253251146330011411878594699399750527791972212865715018153541694081036385609373692275782095287386708016292761319761018769080176780903188193103001621361291395506929144221150427202362525876323908117550747892742552245533173882077447256187393660577528806129783210228663402091933853447415631053911604759477964509493010580819218713380020442705181648826953689768833609049450098091720756765234128353018823132244904211931913962313160277134577212767270374858589973287260029657752712981814513882964961088486210326371048235860963317650346559874016420064762484952628671956316259184695357473632778221340645320316512923921142628534804098855653994698369409482945229910890787118897681017297979516428783975919291874817821459557038429353628491923268724619503809147494374230713277253116774333810012646364509219042815835724659453195690965047841780600080374942067373302116348933536544647805764266946364955128947199091813915638860873595228400051024844634132567608709004527354861020424093313731978437324759505247868257487171515238081749514223638785406850194553178537914433433782001247675402933017939708674597335419819822453379644594548105974999099755208985003234171058473069535706620545777032883706660675180946298497902908403581437488315662215597677881785665629868216306917614383882969619909508589824638708297430231314142023485851292272536699959106299531024155050321207625068673481778977262335902412265518514604220833439491217447192331157093826563492535623583807824876251515442218273750318361002633956113875188083683636359423509703984035800442415171166382630087786853803471796571521093446821875429336608142679851026737556892419288422099800266310440465539619837357324094021080092728726462012026979824985135486900955485947602843471204049063687387518394781762951653620471199747879221894067932672543690742519485819084372839774719587993934428933047311925412852925205427100791408488855103460421945336728724407596442872584734923900896317897535203826026402253804301727340723089107544919334769125966662203422814844152876759172731436630562997902552340599800198501286551102239297852884467298269639696759433633476168812397773433212682359499593319837102439678205111309280266098832714817613180919205577084607947499498683131606144413339827358527723353584361596531729718961176699480450063986027402027581771105042573234705653433370444455906299446509146849158631575737473081258145780191398248641744484176432949832439607793682467838302632267382963479184999931029307715203985417823564071599587644934722330284031140100586848989181067653992206353844422091626833437138778171029021085911851623620095027240996347478609997564743843374406849100249174241734019316963343048976227577984591923998147333354668372908144275317802148754028790397835658645801998878405809434142903867775022291956335018836287913585319463405399080274895892447831681751656403343279345613376572612092354762404806269115961080639099177324222862737210568505376449083093964732567309363223804118212399880190311139316570171889173535017479336073541692139260529941073369901678364646106182666411445590940772895679536517057852817963587974307918154474445145083194378469061066403694548467057231946670934423147484162665594926831466255645333446588879788884443294076526985823088423841392007035178884773208572096953706203646549450948245580596074954594525847256822598395744862464772926421542955181800028301551872796099875227095418735977358737056116902414788910996450958324247223440288633986645950633774653621484537679275291872848818459715738185945283051809306061980228912014819500626375967638566567027331240856363241445810804050698093200489432610606016681224249015439403094125375744657047563287561732919891991917903101580725024150127240977193807397886811990959829125827246720804098287790524370473035403944154765136419755148120088869817199366834298909318107580896429860787396584665066936971805428507665539497887536285344045822274696932956557896902320214423369836372758380546444275046586895635814605379036138045218035784724879053490424144253836566718458239034522665479866864374062848691361566067433534474029168066636560612744119733360793919954894481890170881144008426481710525786102898796664934837860953108109184281312638029804419047819741586790506641582394815499898063903470754155443389648783131636508925322821369875990590055671531129288162193506026911841940933137259471946195273834280241869020697029020268106492799642926830162243722967291097939384412732221553114112935348323620716673423116170709541348909281673549390754844533687488474434838499178113260560710961877165024099858008508093319128198289837683228500283400852415404757074294072470925893238460597040037471702304904054620715403346189504266395367623245678541276030320910198970189421493891754516618490166726766429056831374543929870057639049387902544269790379314435870839179842686854485845532390532847147450243999351038322569832957898426631911369818449431029806044899204946982272371150841470016135379708315274711209205405271892144109705211459575376680722378781007521899062431620684811923148097408621631760274671672378638656716562143736035916399858797306089154886513847088522246277406096385317339890569121526147452494457875682300765590249027692767310007451185075307965803765220111203882253742078040282278620320507734403485878600577433051329864480439635728310454823620969931424960312010817156600513763731718125507097135397760499933401012635870546441611579610894087507879871708909466396610678260123242258580806772783745467488194793979993221989557559489519517600087138279495226933444407593181769950183487687506207253596283268321702185482556569867909393572670950954256574785108780768275668801012662022117733880500027685977180524182774786878499257383267717061829688506905349407997031586288847860021710501444090248055273531638188994568790637870883227959391075376548141912631123479928717223681668759984007045879897217921016460562982080236204267426035949110884128747708969178859593548119755931566072143939117667264129157115639954008172957874616535270719053148992565007591840429492726491987314174756896293576119247874713999977160783944058636370689823962586948199329510726182581267505673526369761871799878120008786711255510123911170125224016578647898176793444249584901621147443207496850793294955012804429168614451969361174146186407057786553123317965164560290990033587527639061138670354912408430958733780811266215178568103707720865293639278646238867192691445582060678958771227538072652161726517692578612330160305336862617699607160411399148190007673705267528321719960205408098570281199867133142600319277917252213379172741686055629548275755006520992232792595021337011685203637588768221540502103284970783913299984636062837386921539229468780756591130775347833421528348511278733076089760845304289255738140991803498785979252818363195857682027055880703097035954010884708039204773318328394194679479287371097007994347248821056786466891641882496819626299981691293222254084388839672409030580523617367426113361770558172088805379011649124575794902727570177218720117575363397041951264761011162592080391437685458197745418673199002403607684197746092788595704947754597852973150990829525062399590177598657582078162170550851485470068286553197495542475152688744436504798437656259401102613968305177063807145520852274160545902256909586304581421094936497402603194447885023662933202920675008683643857977709522470968812405334409749578388525442958761005374351263697144706818906441458113969777466284085618795465187468317531514683218098784265746794555368730349578456569314377686419147008453166102164832402974313901907251393867741484001810475597550874578796959717474848074707456791822242168472334881190736604967335767252947705783873713318825683688067909106772276462872019196053228182424428516876643967765791065518493679249251681147736146562936871284124666690529197160748093968931239401482033404516850962876491787757340619737393293571739433346512488588169844303401288063792167898870439453508260244398505039586116844211706883038749107478755893985328438800642708502538749869888796993902090933276805859705226557075140675603023352008988501508346890474041335569033543918325956418870784577676973994774372917496703634621895595879067757416852729027646945741464014110478115265480531503885646918916855922751485341653842289633631691052954188909422159146185712776640476311707745405235665222649186091928977427781610221220787892248021744591312003488535269168721143066563500474552274286962025172185055794377503872734899877333089214570155260867292744384017304821883948698920048292834618243323809355380251938152955379674776732539068814777765302391148515529065625882887667866598474377138327374280918059459977241282097253757451189553597029997210906808945196620484457143209353876510891978372682098155814461197426072167125099384505796374506898990535210959684387409497319620208460569485322492378316097623511581486629199247507816620921631467574180676662555112776375292734158283559405405455352955096554784353644922819813615508179358147494728682261175093045483795540398328372958146717830730441896756320456143413775738566153931050480519665692263941205648362571892353025126565151590948062573950637425301222899799031585637606520686612861456297324772713351652958975936674232496990794949827499992788841689727720997390584738539399181768611654992391978870063079997314134870393850481184104868710071514155434275784030272762509637328216898547007663863477809847898238738137249296408404014065633037497349295619066691179518078297739866118911981026097179923377325794952667368854117657239146456410007313751089490049222397176022811889399841837388179545811580207514773414264354637094853680343962981707483188480568431305925641177206901434835521375414029226430649376150049720676226205576812657078677546014074450069699939262954230564956125789154145838744180259143469606782481232272522029420641942247851776896861410640636007275741335576302917643692479990787397416675952145708800584157956832145541263449650923099613316580462286581527431442281360593841661234359725742914559147512507406831342765712227252811519762982060374636141737739824618692949243899585562349043947348438086738967252177277443012157832942597432768894580798802917759425009771626396715943635272519724176919991247211589973488393021750733452685039569854410392050095639636947244336979866045196479831279471909492219281566976226422963280042799928694690498293662726475075407352137747614230670449606547095538326948825145769656094502898828388202222178995355531011585718653388030749129160002562311096414519235464263362314453844599900470341168300478955549683568006644195775320178099810221186850643748137503246239959040219998616659449447102434930213961899963908945670214691714355286485188696101625332151432804712932350986640428915128234515005936097923015793836871497225516552836918554330538295951093523777256225195567336799329296978954761158584698803422328436780111408229089186077340676641333375413813941643547595780651743727302525237810872427226350054768365613236217926216172546024566342218833100601440266567337135795284911000819677043285237516938978468806309901728176793324083001530905402650746708329772637606454750569474462744107278216422483810666764374064348479062811254053965894946301374938217361737498940591998397341690025305898572602084587005245845337184487982766924608094259786094984375864261584999196969032317116062573304756080648992013868605052022953610302463438645738292062562249239158370272827347235803862705557547710199881422286189895576228610631099058788203974391483349839376748731612604604643116138741481672977959884775907570892946591337389578504498144623775231540349610207005036260767878668786308192000807186963338314452424458371873093686227662828575766175098565094184537486838052615096937113599552227834965160466822750559808746344689723002757161079428562715328984747466463269306479636430751343702485575234511898208526832200700470175221258192119261069614226906624398101129701281598472824112939150806411976396156329701728017151788334046012202891381195121204134774769406547235572046090044969078232654490548250894619151111915704808153847910819839170006628071831326031288065777529238720968618213731732625447006452491311484767585493600479733968462488132369859087434827215785798045208870986827303316340686755575699130752239170777201038570847650965989238333081069604601395881190514445904812259147015149038439698348821108640515121862944796435727997868654801106696481018285424266379148649193309404954405901059656564953983370845378795620021080794699217726264214004361095076415427404165904175899976692718981956155111512580696981755750833231710475998159641864386144411934143525452222528111661452527459985955596217375500967439403141746943377040781068997432977661224757886555075862950264254628218000058199477446058763532240672750830202482249295077888972989999127319920486983747972957108706075071634255804859492200029790137720611367708378145102233007386192296657279057253832525205476725169559628551264277721365959091541508351013208596770938922333843804603831110945725466752505752950009274994395047074698870977025161688443684502560271493448962560196950705924517599414153730573763315447423718951612747756488575332833672363588512492620336098679454396472477865379116688646558626932970201998538930694858137673868904761181283459050821870999479933607466157119838920619932330225292526957365183623548199636876792880732185243244926329414165713467160649169547043822809242224541810157930880097499765694901943243905181376551758132367587878598829273068608864049098122334415598900054692762452755487656032624951839340410136670860452717847490458383694184936122161485083482143784079057614688234515595446338843991711794650636388998740655408681390887059757786685914572694087017845060256333728163284517426923297299112308553429706490103999191138140258830325149218577997625785562338968824045981917224384605831293414936215871400182025083980994332461990094724464703324554058457785121315300787169178196415418144357303830250352347280280504708648034038427243700346279838877001554421202898243038468064682846976659140307824547194918574944766216110114278284510324403213645592172969243218923084155145933525018586897442354524279227829650755034872496546430051974281025956062959912671308141517525338773845129199090985901127465349735158855442649436926612234433104116441395342528286063349599775913476762687097716003435440494115318281802521593397568086959295393990356373841368111708086839343055900442539187121434375609122928207477648393566420006284524293885023832204861869971392522952162073876934781533640552884103414359982581075355107905294519034186641352995788963658808386449199234051866298489446269585476850281806101414728017395646401792038544939537229365493342322756381683052805167107181257345527027693552498614025012585666899746864743657813456521920213129377266316148353981560191267642598450891510767484084657305724348548827063787858402182309996573321921996598556807940719761133618457681148115227165050230719713452271023362122272444635647095534650537145959801221400442612377860887201727104329542633686858429768872671176981732112772303610263577326804541287800918393719228834742103669700743107318650045288208466986891472298209700972771901339440893804354928120444016570220768857225203609696304336050379060847241379707193743456216988440284326185538195895842070046409455889115779120189388311314864616108468783704338688076051856755275038783280190575663202631465872572202492510451932310554806113540618973974939694807338683048789294051314893534351403254039971683423327991783378478449016523792767738457641768865846987220225647811907514489000036896794247111387472216649102355483325098222491386082988858721654052819582116396707477237816139130764284413822739449137210037418883914901872677198938809047685590322274311028651806752298671226489092419620652991341814817911033977493049003328970753736966478175609268146359909601218763563872797313339196265570068139093584125572220382762787969797685953880612378968585241002054366813369944289415235302286426968624404472074561151801381137611300366474021471404479094690204500623136107976351776989377881752679563050750832393447438166249185994760786895537434309197879736695015039044194177207944566759018535375253781630951080207717698807126976891017423817680269396073658002060081909499648319772628063153834973866099622289200539939286236859577708284483971876435879890713155535018530879281282597565627288298827082859544255698190638705697219399630181801637701539023081559643535988657198241844442234871680113917550420941727407407664165339657771444016996334342890965915282512108640282229464393099702196304988416930860006955399273173207581937092078882078642669807152199880726146512348963180120436923272561399459973169480815906272464782415399517309357579003119241813803778827583084398712109970966986184895981591204534539636536567201030279299556928648225543911715458131001979702500006971953719860563806963828573928899251880924111721364293288778214990864539155474885966163421555706409882848288770192086255674050157309864880493571366570408806257641138758625366960889704155202887121045702985470528872736767037046314997772695543699922098106111956364840492317816806391385248490490321219772470742304065982197605618225971400401063993211109093050722692289961595695550389805731835884135991312643785722698015202117887434910005919724369265355647489522045777213498667539329078782077213823683616880511804468002898486078692509268383822751257791147066489656389298571871828579894029737964967928818270629540208270859036867320374065241682068256016998277851253048338108735416705874849191479283346652769528475236584576053631470255855278173706705788540979306046393035117351178208727187208572355455461127873840722465982118143830458680922396852712619396162688946042590889140447637888619658455036498392356126476794728174295625121100347139569363133091579990184005466048084285997464586283953890734641812620884674427400437554090014989163519782050903921602949150290533259516334943767598595241659064159514148988776286332277938182626044174207843471221141853900687284274014609740585482211290553459160310620238403220001054974917499511725093060685163310396521310544155975091938684811079972881796216472533590559821133051799444902879799937517916311351283726098503555553734772078562564490237576476071672873405683088754200649192815772941973610627030470796216328948406624628307849277121400864848053238778333304265304415928776521650867098780321589210896670808016870316984990088870383828904692533791639687082738889747998162727364761881805657383906129772625891464881248053474359625088698501143868275379152246237543988445628541892539031770080392193856463333334827416981863337084647029118740359243996603484191261134469916241542302384803484408004135936255679408350378522691189593804252513506536570683585684814416804765908938451331745054086504701543291597622623280995494619849694468459776446920030357891461748808558342358542222077677424427644415287620806689561670162379941620374435647282985819379369438399878757148486588560591310353812240574852456885773819656503671818128071116789568878797121968517487865282123051226670883125096448575083189250128282688178431320984161861676589575623096497534304304224696784465638906859101807464449125410323188460973014647121930161961599245634133645023810320457306610975172920277711773493222801654024621828734472551208586750851503302281736179845202093546196149283815922655603130616198423661958375239880792258835378437333518412749857828974961243952164121058704100243070027425123453861704758923577206214498011836263536556120112092109926284842138824211531232437189369504281373002780466057028329508225846419280053397423105671967839053433430726701862984985937100591038295691821333415092501139189344852017964149204480170244076925622543491139855118475225933695010586307290692702178830382986050315084655022178776226967396693072921343470329519233225576339890808053631085952199916460133599015875480737406894076355207741510550324413787061404628758135955074331620279867463435255535604144197402249706391299498918322220510150256312158222426683526696057228423351147118311305565180111308254100140617109544876446769140952419973365394057723587536745473638311660109871080921885086329962911558878403146646920189121490863434779419895477744858106542074962924659496750190014431026081045036769717472550139592226476368497729244157426052783058156585116524077567446371487986527942315477258693500036816126307048512698511066902192356113628771632271746079444698478525051122100756538215551186548590327292527563688832551560547543645315596515167422994157356913631913524624541759409716286695459985322187227379817542225035721399166653407226289496617978688849754791668477117625407094681949237982370029656323893645857677315332521426780826339982079963515829319671859294329516139005107578205347599803913647632294529802453851046290708994749508992192585397715438616990586726458141368563357583503369270780686974236309640429943178353198414584944677894043506594681259688940958509184955788457049818702083672590882547429643184484572809907487245086723014718122550862411764462247432768910290712650888767380866993078226195903424378909005623411569366941527328793443845522897876297567137040407607189095549286821919785396573472391086006721548830212274759810176471409845820578261845689970265204819202858104244550835575037900750633074764694628706736562585054871199492859343439383287002898174031086859995647429448782399918751573481871628198359599714469677414582210331222499916564236551157505601461640854252668161366515576208895248906868454713172533552113120071879495883302734329378122024797768730062664602641435904837102042291353253124241394799861649929987186075395573010157087740216359508459089074051729974837447820484040005720771630612747038005613216623589032327838155356212045426733555836554110970321901477033310627228674705716551320228351834614221549551430545832245823771626004968127454088388566410588998564685458349939611809606601926339640297048479854194308135396160116476920737442849492217895413738424442741682394323643763608333942782509337392658025841480380202771233910781709859779853581678301631452381331346133988325995260635847376729650192865956543678617259861280275739048809778205151521813314947707569875227194922300126046381623089629219338382657934330771154697114191451258209812050458304707867641485961346094596711746011807176049906276624503096946219936949289005901896337583488191371099106240961380325241862017066793326596279225470352369133512180004287584404060436215854544583074986952809613457998732400557260983101733491678209941752202214964755690933279959665354747944797691190036187129181295071478954352664128351101584262842469307638266752688668530115812141734155563088492096082011815548470077508151925419668066176734822834894930352944908984547668337065182154394733826244645418318026384473123332896638196509600745649433361914859430612984519378308680255018938788220114312362562664793184401837507399131832344245471576484788488808382384104418895883286751789657283486705044678387919142815118572131478834234709762815818929390358675715957540807709840733298916781496203941500421112841819337248034844866376618726028595801624621215182543653385967924034165199319347574497372921345032844759093016864899597329572328222429843710826128387726895588067282453862687385650739524680260928680252178989282075519991044215829970399182117669611969992475875091778231235408664577922001754668791023732179086797038857633946913397697775563313145370986746948406818477837629901897003150440963555643931180699828364727916449904841373063555274232409188022661168744200807203264441744040548280858475405318132136377802627792245265345166843621176149321343672650039916014802252269130385754590545820348059161455297927268704222982286627556442324502142686128261863154616098639174893981571889349835877708343810922764673163127333442893067262382170339360281998015717727084849057045971536160743700363143326069433550665560129009506883099367917214240686125931298405951767355902202101056138994556241524198331449189606778188902409636824066623011679256162752369777108146200205811589768678579195400704786551078045325506513675731785089206452203397113072934272363347689018129763953710312991840663873155561326118556235877558602823678753061071731546416754090902894134784754648271006255821617428880003652920510577287337276687259916604262427832689689129242670742778419919480719529120111701621176615320326843304182405864004148572769842414577330681955247189894556428601591012229170117662018619914338727091409499390242283512722738866593440406976798795733546149788025449201279810467399738949643836812195702911471934482735298436432869939116269312421370954395642687458770730640674600291464921051560349565713742093766859304608415425273134148998701299002263004116182957925052603941468709785959363641275937923397762405427523366119612598021591076296604482499868281871409325126646073360101113310630860270556444880988868062171193571743348771024312996682349473242725945520930603638691558646335909835657873873258114529999582343418454413858686407700705508391492648075776631083578346083048614526291909018439970293980868304658007000844436909346704788396924022651609841389023102190314556957523970227123368914935521949487082795900821474041247264706457719688401518578858522327201033037024784220768347972147495320669160636275722463302847831703833823224136211206893565509759797874031546088431247737547807304888833556165634540815649770653663181678781023096374399363223523047738485220667534684075151371050869531074552211445207193730866367950704859545139787420459904546570470758354205866009927626091565789964389845444578995299638744185268191676551489325939928666647673539096391882455444637366579622477623942950469043918361083248787602929318269034074402513466331868197821676041171869668063217372156372984934368599457460273910664418416173756105027617545442761083331185847980992782757522207704563073487939917202447841779358655390998668960810508290752458782867023245353249556635026586529774614581310414751732981817265692798432114902364853905076686646279771715335733941548699647844868045142468018424063361532835108191378247100857186159814868412605941410184383128574242068666345983682316040952180813522244660537135480993823988488017371050879109610288974526291155391209537868379757569426473184241806638256134640667337534626858085106355174651766351015930269928660060202829869775474279433736369713279401678010767359985036827312447828370827583307918222514089825016614528485919098927711417658366788274930082418894636245441485020232871383831686416515349241317684376593277594316329842568528629944485210886969441062332836935752533873935734430155027420679217562631656578752822604240373448837688231724607437986476912935723200751781183828303804883221421562003023051569782935482211121427939033410386382605509806850711976858345925405299987362547757566082202759039822101530910761484312905617969031163239115633294827824381475273297282443902715926349014510449332574828284033828979942197253792442143193810500390993545192508351808701871372620083528742415117913539406947913136930147951412293925160365597126925405788037868853773995715815656431696332717183469333527045846995370896152804150083502837733038966790111172859564816325946451819243179475921472903799423761105366094967204167038854353718203907426255513170554048450312692110705225542544058269817326682682587698782271401689642669469188788566310630875016404212184612937000549243367122952248793188407648230823435399591872835455457303667971472049936309335324043033505238613948076897806424244946516258169124891899882017905813605002230053676776980623675265453309999993124532017403574064826295379670654425549845084081242316246347772739606084002715571719436431138873766898474577577833756659007950908674692971981442400347381218201326454689508919573637998866167553058904981665499310650042291282446540959201498399477971344404451914895894467730904204570358684668929152527433064933546701305150773076807800064878344137942230484645928163860404560504380495785064148175474893785920715518294476380784407378633233903061447303302083077124085935052940958923926645095050439596625766291422431682691759555217752543455730922023674727435016709675519348987408393549086408231526016999392579986916499361401780469690096544341561620429492212377917576862040045573813749899808784108603118664608576704759514733991666928740865320469091869394055059003302180460287770254699643880299323941402161206019899185601164518840123965833922417267037061281356641584524815405369503231934053531687489348068309250613768227722912003055644645700459254557468395876692895531155997262246995174270939132428060611834904694723533276592580831792551619427483922014639404464701674626779181830796032815864946215790866936136231663732769066245354858386344709161365349715047410869665304021673691462990288922253169547335622176235702887649572158596561661685617907467535360613300819388129637473081371678159257084998966468560741854611483726734338717926525364738173831897664785473508484436183493129750172606379960113716951229948150234960800719224083151346032906381652686035265079096866425570262250339897766881325635084673573674713294152290947800715902253676106093608705100086251082073755079467801200134761716265837209644990098702639207817311931642747439995030855610846511078950861793661484610762843971215818131629836345339775794563946864351378391420425578811889559846529521122536866113402301719142104770394280290961589355730500839039683426552650900763158515975395342604291132203289401494787704658061247575481749025529309481643757126227703790751469931081848864134197668983310235412323206752509610657582324496322864830023554216660278188696315977283347354886325006394932351701514695065443235165860650688616816000210432549345967906683143863993912800869296245493945260148212279876532215435324216368168363941487104070927078852363710092711977774604226411400684212379695292473493519470158472879045842663434856251072365812364066374752799928589258672984319890999315160264371028368588617931442534531842447452189871387019462160202650669739328419803932253002881341440620624522563253245497015013503162807843219597086919465482806978476101138568965391911957529368664038712384326212246912604374336160056099375920481311616708961524622118823744586297765533331306597163047634595923846323777803061494895101652511881739011666788697160052867538358807196879938128223516137078123927632238456049569340024575868333960453097424165821849244055378982744071593120776022208276199228031367658680283832028044248072173459374503396194440157511895476453845522337884157906712345872618717045590106778944613952136083854279955661011093910464338995072307469396542659939201070802427300648078586885216641520740302240444095077431668298896330781441256633275837676178454150894803653049549607921928537212263609918707920425826275206171102052436221044954547854743027728049591033372677206957149969429609105813028350243634216553032255786592701082125650762850624100519119950965147410224415168893505864517963429394338839135604654996975814756895740107790448197102482106459718760574353159845394455469401531240148927429834434470232167480004873617517461315860581196406567819544228477888620058978543200410263298239070535683240622351292917814970936329279304652564509747579541147525806708080684456471016411183770348345062652514308533809309156637947986255388672601503621776475987593143204728227077645880900074328519176739498349523693325092478101452940694565834351183580162604053216883449173130914918922318736788596115614241905021122674022377288289823688920046961342968381836123673252457743135444189082090860814180545552782861712718598482667515164861074056354023824413492261534976692512370912207109191748989530894392716406786864322981697548534143302128097101401680652040506512089647597727851377133321367657684098586498658971375150961897544009887590805883250171424591593635343717635863207752597817678094343028191550199199862441792913761445502565932252173781813013487364676530485761950241998609122530868493032073841331619828671648003839873413839798973457932908078013210276456457210717857292164669583694406968971422770778653664586396310206381078156632179807169530481880013461866373309378466642657878921592293679813184224384409937630536777695934582502740208761037626637543541849498369414667864140832904168661200129277545142468156372537311083777724146094055924557852678870342804164385758449246027475841915979309213411648665243117462925296895221671103830001544256219052572704524807538664473449217311505552469909321407008612789898116295925542380365752490412304052008914061840610034940149982573284889904434121534388139506242684854328079527020883589714328595785233163470532630835137476059763446585350658313442513622973531669666825552925197683810652168685386218729047639325810397407611208054123272614002323829006675267819147976348634357485313232538857223799410996785215959583306064889354204583743199599741187950483350551929119169812076853815395028202963071569917138290409693802085495757499726275312486310849099414937114615800530030474240647867600164595052822722508063546388281040435454981873060028638969643563577223982989850234407638969074113557713462098610875357699620933619178625948071516970981222550171330031149829009886496149444417245278142792140254762444674168689564102282317772789790703014966409384001412717373255725510917003767845508032036893547322353742256326776617673988851491714374572989302886790525277465976370304919859231537213848029065526081682587922160154211730487793810109384627600889734479467386929788128543082569481560522145612087143581330657168498742877538655931390388325450114444711337159312239981428248526456578228576925722881370159198139681894057004617151890984106489285297474142234626197076540909051351758079064336283666841407475853226185075995749287670494467123572511262418658419937938749280857659652812639017762730635667134284355991567147491546445638799284629178932121428358690276286201609253694522558167546903982748410541747439740548245690867233621406340903945069924252583325947186253442108802896713674870385605798672760655052018534170250897093187605866736719764267719235456596145026236090858323298791768180444417559272033370210276438728026039781502715496037680367117560121123888784074394142040981306384519451860709652184192070351153666170702528716727227200792046079098516762082961306191105429919379318069993733693941745531076060812975989002443600648104765203803245195621130761500656296786096863544522277343926160622392772378368075630355894719790608708877566598330304350126107042119622855236304747708925773360331393542515616291870859316617110070494092770882839420139926520342811557250941662693554631552647134789819697895729650119310567603150312949088437933440000229953170357138068892684678665109106014838915758238453166086738639082898944835724211725547056383248183885528793245558361535151583365489716241420294119341729409329154968980098261379714288022812803428419671040353882910765570389618401900237843759222218878285310282492726809419213537716683896923281525976329412916009761882996952359222701063164626469310094702508775231398991185438017446167275370168645912759945207445752219345386764595423496042247912703002538885034562783395633376114710885200698492030305800204996093878714755083769076306515447995826350339935900049423909216515094588757653274509404986938379656625496419609757259516909893026404424078972076615443046672219868860858190886770608145658575810884468034568906289530263333051330955019547707452575457112498669212841883389921470745068609014852776187353210614173753342125395270899270684571836082778346491546369500506826675350195640139068305252878683771497768106100968833030722312809719533788918639003441809692693397274062961085446075866486323165383143468596962739237495995677479112885999820059376936194771944856105782948264482044920501554432470835901593938170505059781032546390954237092272196297270684341346099658649429220072753760484539510925766027468719586136561545749178828999756265314372357805803079091350546506603532537199024697068832405978452740243805421691126936024793029162084268173368496248369068954837864752745220458358077637434421151711837046954950270047113601113053042890355016070920843369717585451431105494081465783773023131065740555540767790008773911657219646834743610871193531512369964010040050566940375498162568530176028625775359585856753565954415083832054337108954747202293735220466944446458325191819962295371179949066779299556040931172333975460743532963421679237452463321022276886388498057259616852035944738509937321617275929413158792403137365856442878415806942472428610949586066897786580347570010091583284375773784655729811261424921210847005946866629921626754447603206205291160021081863247221770646161505337867684009495777672653972011586580566216883824308575277173010880860955793918926242078800821659205289986186226416734406914257979206951149385281721541252914365621108741208813512751134853113969414761612905418071899070995685761238189246145097803815101193352025522883018548221835285579769942805535955633924756546479437992071054649990882000652080775012687478699878889295463399261667801310859130511864098167840151756565701312248079013588014363041556860661889202488441462110634421218273494976056527051886430902956250741410009447286156551418354944189031899127235480730136958496388233403978112422766452754811439477487233092828288314043697888056087672037556043205831591259695851929865760032066826378811428661065625998619120039497467556238054495667188633443731302922227506064316589623109464281412848957080867241638845044669108261713015305331484292555195561103571890375663430492880148139053398221752323727293232685984061049624033004328371032871380189759258276948684252534579688719008808195005398188783297809222732434655139003377872712251232094759465285709267818488259118954200056688447945938158834048273285733033423511832322939514125382363566861478555249574819872910385662337026863739275045922387597322512555725020394467620052918379458213519302117899758498741156816458555830692679993687581259725527228042656032195314646776532362185589015236027120628177794756629967347617105228757753960988384549774243290714083031946651351126835183972786458916598241185841593517187893606215626931788089391985282491794820087524822246808441400215438808329414010435556489718286595001668044480349386449458414592964575213980196446086620872699548536219833375284874464660770677869717204677348180346048816773180400574911511393946220801110908516166677867540855769843942366994340648490820426094743793142541522600570359131549724219407631648416400868338707475477586565127006204617261095777148548121407585522539443905290813178626195407230434593142337725519369975083289945833469514288448045817892302833681716325445293299280704977496055963016596839290877258523660148595689315299036014684154120739275570354677237718400472309950801461296621873456092576498644461618194567185804729820844677268557612680659403943869748852980045947647642809725876718832006967535147261452283607496830759031582983762958758254035417757967838595173005413449877940910635153794813637223483878647890964054005422150235088426546723951101078703272677451160589945790836137760305134617835314107625283523363847480874565720523148444389864970978761495508187630619542006769810893933746566378375897777777715847464700335585237919572254900936235862897939640789304081739357307163879536851173317950545023677574015998578239451084232622182047773692706249396012554509413266093461330900073519476674066173103000917628321669643963591721051031743494471062481100470448316071772651217197142607595659852129106705696762099857908505186576102943570302297733402221073639786681757136989825871456482355311324490876863346017072747047938668742442086121940518727087530960494491239801924147788729810538897503676489217565602400049333951147641669061173101852863376504991112139897832816155005619246317109062312750449976524976299928114420180310539670163958305743329492395492636853281886126545593010698631129932379149823780381160487047860736625838269842330019555906155329746884032677499158987505297020914001677569720641968615867239347947074090768704394013923785612623394338092336036415015726889259973689209596952544104987571364007102444035279733077519029553323458690420384129635947797289445912167912050243195990943513116264330760244329364318321125347073740580293159087555532535993840893810055509385490276450386650200159534051093239946135773456092826506465210945260789811476790047688565003517974906201395282255809679894251092932630138559493212833355179946533721553229863181109623769679615380373438357819431356844955780588101868107335027990165523749935780609403206684257627266488096314690351526051613099272402656342162443532334468468148392938009863762686064423985920061397680789625260378705308554582912004278795977701634031601473529423750178651892681935213427464193322497674694163981660211175480396995179684490714176643527351291489755051143346139677824566374713432298015499664668442317413269746080687906206912326597390126295700524484291764601570041277521467618825438618500819543884242187519866440161846263615062398448037233772944585623252111828365413934486472391176077218282807867009269860185518703422139781704944732170402424751324881728630465967505436337915697745425286407187239841330870301388220707571843286631904253129320436174152334754491577709647308301036233379495825622184234020694130928454684308234479138520753674922366490319027070265728290335640987972793367711934681641409906614905320797888428690631948045600628065719427119724627996858910374485729811834642987415283909335158740564711706166941922796273184931342722995412711432259807158285070233997645467195249764400828879702866411859755871778940778398983654774307251496115733218479074931281204526549179463145976344253465954947343976403451736781456235866100510905336254090258352104902439880588983929343103581420009305162537218555881762159594779274192792580947428447495432620382410270618958246722662605350059849488613562231519193609184393925677558948204253785120227041287958354764262108421962123488391140976365237617574201327989645274666221288331343419303403985708150941595214720186298871813557090151363281627765683552396476185062799361613837077515840435226503503516904104948475289873718057987032087072963309897089999897984548738730947215382993125576107644910607842261530593866263094670360615986314111295180538360675102034264775719722346463314592062761505137702378611821231854291423176164571575405188515659576691119887769374851920356449563229804016593849854425616107499296413333855685125554160456341141288840067738871303306674953489302895819283496055691364517023993555750479683225062652774402962524732941104808558329101365109490179654328809419666509868778444022137281473339781575253322946121197156043517611047831266072839048777696023282694018710853470896539190757255607419766114594031374854456524007259176814224924546947519544962940771096692254588081230656187378155879843851805616797211797179725440031460743931296729461344647604337183161582219448910223551530070878820723184379831776803104494173590000378040241304221054638932343088832779398230661009208256409513491362285499085359151209640824190223404019008106305537654356446383196154026974825511072425376292482732075358908267501013373727019650353582045088437851855403810271648235342696589971322264197793422552227965873258269941195214354913965715523113143341762394267510184760743976007214776945867668589173380541472716687981316022902097830664281313174125665918104588458473815838545607016155828677261321268372857613220897357703042249428569802761109074414924041372309375682519255596304974056265278149614637731115940096106243764570202397456132979045100926521563072998778855325872569416575030226944322010617109970926124897315169560537291723189921030009433833963398502338595965445344513716279120854505478327171562503471054930392571453660956474534903992401980872767130398573518420251181055320553874231732983307988120750467923083490971004001365820974792848542949158260589175071779549435895212720920356907990715139437144518394091986435522857718153205164128884276687273038718373576126504048944259689179676987730587536124428936234700176809881603364739742682859629312623329533234482923248080096186733503674914754783802633235741066101425332444802281815505469754649068881703253003672883105418916124095434908027415096740380098361981769263793355830266235253520747425895177476547308804160604896338320920359275122285431234119599112447067231067102517707424940054638261028161075351486026047242102467891500036646591828086154272002491623439181707685360216532040051727993334047059832848474430408359015698016437379041283088810472199070303233645421496064897731562349294250531084593592809284319931620936544843749682769627628092685415226657874194612098348017385863178171592340878701990699100239289968819496397416413203429265372882048723733948209306183713932943504875294002482373951579069182762155388107481786610263696442895840445713051424529238343150018299401323808091135173078148407766094069130167413597397638121914642137311266238162414802175825132135763879236842560350252867696176756902326171115611056149659674378667688006415375041205837431303506815116623129704546039523421138645951576789575336869281300627941903373864633862950198679036337776201778585125212511251900037871222025191516778287549427984333759037044798246111705585720634672363191668903954863251097405923836646513680437058568095133599252051934409119357941207324025217446955409106064404336626058180213289602442556880087812497241525832294674585155027651588355841918695476416166177285383721095305836318251588809674897960975820535895857870864186041219447871017562676722970427581428922885812198835960926909009176064512075074481469523123477359138270034744568170474300092346438558508110453974215672740906134033848118552615810600997064318868013516663308597661000221246069088986726442936328105593913248205103788562194053850397815452343746514416240003789758494530172014617118169182083392426344579628973371340037587672380964125272529126688090215316315971991402111927638803097909313701950658787861015232422967560072880257744798297002953971348133515075453215491051910655167806063945216317514985367620214751052683928602028951323388169940443279573514476167872791671313703033644927095931370668859725366837633021158809762057572058935728171872372603836351097238871810802804441172583725215167155601810192582295551339385690606152104686634391741278979264481916109569761744140185651396136789812970635142064638779383023965476011972726245256886591384496466221448706957857739466549772580580485992811235530747806890924612757973565033191461526374499586143601683643535252826190190348548814957212264343583038999016812936404321829683321729927684368183659370956024425376381849514376635756465032165143108271876245418334344672984861384453858230927213112526413723591548219057802014803045676420197699198741823717181320884834806090079645825924532661216175426303826004097444478790082392655826042313772762383684078860939849367028510713978402753520566989649152822304622914630130199106100735132670145177270635822154946464416195116199289628967515023643992179613232082164575135758649687797567838837526009524293764630655134707296189701785205661761402107423819259448145429340802779620971447363263525202297717376425175149746905056820664087784892878678068059471249626106424102033721364621214910406193298357049591501422733019247474899088566909256017688267839086942228307390878459461333354473687543187836235862716242580704248969296196176576330905876461529450731431721005606152577640993195263553968827771198177678167536820581599453677219392076602609412513299835088703392278622628484755333517428673689094208016750307154979922215237130083179413558615803403824287319607229192385022019357124831549659439385575001863272763311862420702098951163340705036093068785882877724037876298393354450606013096415214889281018936959935610608586283008623001681602615374621847550835935676801331596257354790031387253391899547966493760383261946891489041893366668235695871250776936570542371554152950155339778970231720641789609700243522371449491858038101830889854743501094801734117494798227976689649105772067137270200372988493044346059570022237845356646234602384529455640168287634477578800087285256392608679855797723555512919716516909705304531530306122678156337751499181709793902407141958420117289060209297778372519288219043843680186376820312463010358032213347131931894778956722434547299556694446775251622215058434636743240608021467785155553668820783744211678767351907317040107174313766152034916303047494673601585106779203005777252867870184155077063216289070796581166194161218335286687718025490503704061761062438567236452573534069662254837102484709344930515751861024296191861577189222394431361709819632978583899869424805936640841431270807823772040420314830173553637060767382027957374771613458510451795781887696323793004914965872750835510614455979396684220271040089033563979094026869304697793459262454814311739489866812192938725141780388419823920157884232100667564644257898255543301931756988087502515624248533238920643320009082219877106931976353334188048286919238722737925178943949575682855665613071487460110819101201019990820701878029243655964055781091724128813162933238146231285361626300939230798943196235234029119443869375743332565692041205554335642160082205995044577150411214199045645041710047437319629181307479767853700407277747203425625439654757146087163339341665737529831547147767123955906595537148400103786058571978174815804279938875161390027065294752921021376269880817650017993181198303589568375871612454415576623306690512417082815110710301379135206416019598231226795365587392455509954326193540445901152193783795375933774284373680846832005788167361546575987765133602320101610265218290570551189777694361720309012351717084252940061096737640158134777326876834285319618114254415119848202381442775149280404232496531133116349391143372406511088042405211198658396225346137561683257782127348758607685459187163952265291446499953415154120767034322043113744796662141421008061048641033792929381979406429475618418088971839998681116300903223528318295840012310273560111466581897182045841174941456713102459398116857451913392148611426694241196466788379114898196482810125915448350525401772552883394502977589374956459995368535875737260066978883994679398753734534721479139174594822352871333475007743770221662771354823183395724404636283207837857001473676989431386749246636132871828239146334776801021016400128893271880760830843217483698822273882309822399539304489322493789681435917855361898642841278342557288178143690321251617350326446843906866993323502889137731681111852739389592874891402705687002947651706297287339470242043502635895887746501349481549295587489832063008649592418021644510889213713093955918078647539674413425404506927983675712153191120931623143974850598226626710078230805183591316515241182899273849659858479047794393308814674618927412791294714761442433212757869510973897134084095920069199852043751091050491428704354366085960454340353087818527394413815706256067006565548962446811356954056711138793904665377710857844606191351054478496229402269229781798138974041605180405398108810518031311441938260211521045421284550758629390805754748648111081136878609358048113869634098741811413918288781185513011053927287276857894178858962530267465795682681828694024384729778883129326038470224324875524873310858251274924404841226509237901230110861683861307534131822402816821186622822465641589559699718934144928294167715475938370048502438710406020704188268634148883735374143999075254309756075120163111443413809152689377824997695221953587387804784748495178358610645083060556553974848337489515776190235730272666203523883626103553648071336393586012958191557566778638289941792816332510677950733062687731988974193613343458029277928752466593388900294981603271931754451716780417945227977889187364889420509316611021188208497790512477806945583769133794298393401080786003208786789686805406132059765569185816605314829438041543756882435061852795923548715337610947884344982943497983185183675942752544224004603787496161549077133441157032329360603383651927054246087094921837786525117966273277005059509093492148392875067167701542576039527689004157667375685650898124043033909302210515231109096128613974666548552860037210037240447097724379030210111667732640277596582813604814796631735253089322418885670932176173407533865332279195827276732480472238073170808508296861987408970774209713016280670159600578882317735318511721260168357251392683855378108657801423666430339810940885511724005754890852008807852880057819364926262341480137299741456307323320107498570799633744016757664794952093115956524217973415238489819389948088735013672965946242982411897044003677140207730202870749185037006083493380885079227376671551053259439901364889855938313602824151485658685169517260484750447035202844370811760341157664453711333814769973749739109983683117332134792548866001145248109930564108191681203636443759375596572489677901202364619159279844208923785235409275290614175180949591323006660482553808069082515690222625385379415301528375945367447860797373295336640001406884737241803421290865082392188311320896719818962565994205857895070567243451956604515642283541297890801333632569440899880052976051162920436405919934526424986860422418508239631333899673581281083813250493804639972082478993914922266757009975801425438077416007612638818558240019242631654611926550532870592917111619056632818881888315823738581161170215357898426735162949339419856937104313800491622604139677375406174752558870918987489051652553721543950484721934925197937380050468676297794132881242138731174472310010308230198488101892796828645513432896948077920241664391884940884577465133781251074723616280285722336783671039526826677947443357265990870459833989656150799962078491053484814243211583869381448203526629781653762969721734078415126755718757280434936926581016945112081985278890561586625421167490727312686125545935275993920436629312489809971495872531425727739339203855394515112607133451799867341525138482808487647562190688742033481115194130224767532401752974133945140100175446450327161674509179528003727330541122184320002128707886847345549534336789475654325616202700952529356716134848606706858978095290730048213075274821115181869611022271184799447096519636923944971712934431052520953650298940359474035645010270535003605730531322035350833103397029343578783012330782800025889001522943603637014146699663915066278593948250772297576615076573111236598613532084182132515954696672849575008591752849602916183574429088697678435154442759085697874255380090498767416118182573439695348309622079218959351216980000241166284439148127117014530052097440066590387921600252076807813616214616532336033259941148866611798471480856458987575378841440788824539305128917949403939061699624737835687518374295255456391197668873506721336276718420138888269976489339166193976405735772660085230920649500358327327611888105348006490658308487930572566930670749485033301279687139236795563816054719941287017873406686303361063772516155023059825882184823463546507830142015208934690080729999126988094249930782567201457516780209719954483385749989925696461784639992727289730031606519442085444458996844009116586572637655905194308131105239593574191798091137937597206560870181142264288085019614169473189340772919326028725356943182087366331814020065363871442952537035466234873323901118345437842891945072080898131152714301296882248196822061371282845996169226406016459839952687993378914599596777213182967609767539993472947856032159295231421880330451114986853938603549884478977565457908218154076637664736741742563615416176344645423659772695005930956860102551220588366398658727068100265688264161006539118960803565779123940604491055354917645921488347988878369222121168716952036159539811078687853578237526141858281739519853341120724646288358368811009354231051470292127965300555804969774812427985597037333157823318738351972720267943959586764823621257613449886610265291495725042282183037995839949145150087352334770861598431485051775779428060796406377517160084565123414116308657368082508778754109976199206003704179528590907868665324725945823457570958070783999140775155357739430836199680432737923729510867480885117956549155764508182756592369244732215559513252426481574983766815542039025543346892341659880979301599835752554797855507718201999094846363760148848204151704416804223272691610336778291410737468239180069003582598900401369329488332931865694342205467151496285195826181978020517019891371965899811180815416133685609990284632034816864312083600110198353358670410208758890792059962299021261291420477426026875782385881837253841062143860766173829504401463189021019727570075012039258054204873280920611197931590928182432110050496825710737746951918057256992097535425907721217699567405189055095206598167344650182736079353430568634355107606925688121063900621481885120668645133877010510089868526125299190728193707539410155052752621027941551743044078810597992433427551078230497566126231330824660633788793353241285987206650216209555063814787494308786277043264219221688036534263309507495040105221645164561923191040117384111785398423163294192336026745480068417051331061413012259816760079353170547363156831615646380398005453225010966849934333293753123899468568667791106424253246500043918130179564500255636671774642365243106626772478026573623701704482739924049136552134675212573161525327440853578541855268514264482861440036697554486661399589201829494421088895776867985686961076325198061779043328116134294386665246851238621666679963109230676672858649025529973867973026447106594473288559300201525352392544700222029849275601744965275025360293050762440731183574723693093608284748145532649673763734157430025668393938817117197508191964584757752787873061863129429033763996008540120373253886450507082360120707810524046344746120507215071567579486680695861113214954647044244161476759720472862113004512725526457137887240730212502869419995032883278032269021953620625034052841839222486805766577855502236523384490936903422091285380932573348518637344287193955637536070327261614609644398518023889054510715073222809553415813592538811474757533302466583910026962255223815409669641771484869764720551402093119436668096763777825954708515555247121857436286563185919101718246473624066309857736167057232134466802133094695460432857356127255671726161653580674992873318534528732116338830625974479284130506368688656173620568927951947082494317965466108575046589077557890556958897593285604255947989295215816821816105302725347068522576991053816303928402267629649651255249692691890026074806520254662259923782214351736913784777234061815663453768283657002310906400957342934378893607607645788643036730432050044112246566613856406193982861104480403057212193884053854785969066332246418265929209337832256372047622187619042367231374776503713108596934091679736286888844634331080978028429873438338643726452894914062299009798859578179327194415060163876710214937680654283054367370058020695491165254782967726257622120826161820278799532289240266024684767394230675563125983703316061683136797490068316616882515535816748975376673006929904947363593437990134018570777778212891642029632464693591428664056865629954848210786692911984051610453876350244061370097715107420375705224086608797771241211906539434729026073087965464988734206568534738758691594964796188809396247371650511847805882960366432599433748360523012848461987131740437569945120454084483280942788042268185434144311204274701853319361714512238655234163554423858195113198987097004561818731929350450817593277027683890588978720465265512656069778825708221088177212624729416445091028619335954454854497417533094501870914940875234541001752827652457257776373386865189502502004624668835169894541350241035994378749690904001036602900117748076903665148795055605271342534169560982630342579995284250365690950707915211937894943759261357207267307293977384465199856148205805124714458437588182970872670868570870145937502549983414793380257824043195429657194508192505028965171425443195146679077588281971066170441651612570002535634481500011677367497461567261771500887019989410456580218030513898486559155922014951153405630797881700157208058746660878126892084921555300790047699136997794143525055240010594807578041388021022403294394741047312420092790951981980579028749246792565300679845831974847342550553183539053365515804355732826593354049332895439457843222394399684861413591397615260102558921059831452582678405180221689520574617991858904287075056943554379300282684054068716449463962946332954421502424874198399204867389679814962584320933715159706873275495470727924467494397530655114840195391917749210376912304646465269620228853668249313347448623444907636177179624263983182844838870917105357119147215612089273606371414722664707434466970893325572951695913880294896276063774413528588208249890372035942056758283424282013719038709159867882289158790280350640213929297198214651747502975010359417033702560929779881138427731841239343219073463630822425553341874973808266085027345320545641108300703642138130141976913260949122666225313983168918846922786758698279360882974333941311821833016794151958880452781418580193581719714708450245539579714328402015644628214667719590696494828663674154595422770860081829912145141793641031006157381371431287098320376967669613390910693071590999038961820931983912542104547175589796918310656607758670739742263563120949572833905924695607150591247940941238390509737286861098743890137190283134099220492178593936918639204400162194283471360713531806601342445604777510935261295202365933010613970548842260965448518215811837266628200032834919845209157905242668112031998653497746648472631607275827064981308750518539850605728419497112924148315054669762724514350546055094675100422284150346695933011836287388280914144341416536615496254045348131681560900507484461479372637490210383175567684545753751780267968161925462591438767596163397487974314478420780367801409812786406034015416652066738249671502030574528947127388474195028687348227394315044297926180784944949524736229180456069277151689368044367267259369749212042257177509206835892857877380617353071019507757508406334474762892138597494805162983483436828708145658737108089521170340802506182409160624217658438025055880222323307479193506868798583088756969718272675587084544311163363699116116900863713733285901439564365841840510540221944527717102607834424734312708929763934026469117569460311874388958583347498987788564539017112861724906070945037211334532479043760832775410863072653710210972644390814778090781209081680331197358430082898021230315339275815125234258595068833489106977905019700146128427991286884744344467138267306894534933099366153034692594973761370983913912433110244270613683480909675566629852141063395569207600106400066033644557419985605873751964517869307305277813121241390459226082551816011111376700209945266015279380393833023433881209184797646202139491424933910132074330070629083806058147671453316931053781294052150108842495066852129425997259886691345451260586338643188152335998507350599888324565721129524453414557598071502869156040541964077974134055427831167150278626772000216354720372147110110566643532862963861353033799276830503181329663983172495898479585466126312066977490428160121250914895024367309464827091453067994585692380384298285529826068183460701087643924088315515442159196462841023822995609894105603625434261894360815516014735243394549304351310961269535749211213653285800100791331460862748699949683219594098711029572254018648656024599550232890397313999790626635370398545571378698307495905789444074199732376854950787267448286659740022577114813452940730211091506373444775854968833653330601558581577983227513751458240708236554171609760654970286061421540303076737862030543153074055671051281126470584841383505821456749028224369690497715035858897608245402112388084858580410347976953238381608983647566297145982491759615177864463046414282878831463140701338023304897159279352891999538808900023434755813145497847763296988459923967462155437384161750525026991838660115662170851079309858510197831004070006936403027006480629860971862069736291464721518389581062670525619937538578851082520929170912622281476037599331918805019591065305527105764131553013526121790113552932441606402340784029633900706439790741427890546232728372628753996355291666239257851126741444002059823516368736133068297167684700725813496428247815301980274443435460117434731569848250936448281819208164005362750433483555465209492195408346449985144462521164897287992917337396002229963372163568122136594737870154647566761092701299756788940199769875962757222875888498133972076879903251262713440300560923623645008750957227444954424357059979079633857282139686774131392054140579458727269548710435147779213642368217382669774405653003542164903250921949574544826874674651552218791667094579915878922466785355368359029902975780279307053605178669476751701143972650833846378465348959127633498563866044613655686353260390465066207253757248623020440557116576520148266175821667237876348591933736036978650314282970518759034597927944196281927831263468976568378007280394014168229868652631538813178245861788946227692003274609114677561809094663013487485751606218995318385860320430439979357040837635019825302376673309182629781822531808435011444508195188025920178281170859242747359501678952061679701873821608829794350406844157468600944474208096512772303522016601676725937254012802938660047555683171221273950922151298939652356999467795570563719991891272925558355221169668083224834914080048038856380470458823282997275855490923117117731678146142805658558445063218113707455384822404821865384736245142183113774548681626670982133610051936529571031914215459185729903102050193171903335685982665002992457079463943618239083835653026545861496048619482563643954123671240690818035790377894614917228645558498952441006170170009660016062857603597235534936172924492079515913541081660691281075211211361764546840227205140291083386917387434184289285348751794012314697282742954614717588725093010082827165026707584011780244058959903652176744489371066834788603897099579794854550705150856440370924096303934544150856851742805962871157983311711401796826528623489571418156945667357291914544044262374890374077462281488354533163950223899521687776390975756532461010899324388707572236555679120798275756140452198390344081934426311064224099149862206488757667871358333656276832235169483647579222821064528939360105578837808447661480232227306946722583388248726366421521124630106480289350352595365209422920189017417242771783197552602288148555623182516477046841974849151103554462722777554811332992740392013951537502807479744755347326890477886188302563331310425993438060993870645468242808231839008019327841871810581772286888759451142225853016412226555812255947963932600851512409358869458293972657133689049185109177673923701189160233137881427991799413561896806396754442019593779558463754434833443970190111408210625863693194219826201689960214446227659489304377707910994056717099088082729594516680955089732081161081660366594387868601816683544012030548858325014431685696602269516408193122347958462148405235776915829179434418947503866800635696825458614288112542485660273933547106340098010772911085958275546419909270156122875672134696138354213961544270880731511702761487374843148909100451609539798569635141532747164154346526729815377352977197393530409479366552579160611305156551008094389715930493868294075716039556426930893280560333690933259232030751461850333448332575240752827822993591850243301499691798884528097497607962735224822820245851064238248928512418375410040606204061735672140577858174197077963091963759535260969907451430688135166339367704374801079909797973030542501761282709529643730059376961948158010745262144395630800502075224959256631888417638836637075948841771047815410573379927445724688808840453277648551102124628653988058750573688365762766416348381628362922598637041079130976753414365060116596838259750170300236390740399662680109359435103578186305301565234933593320984660137071234781661526997756657280250546137367302586036728828931146209535237771421838671849820475513972192696057125417366697024914072157887433509783024538806247852758674019618524770074787216422665720681801421657288388705114934046334471499279473229668867332918375291817210025830104939529870731158116947060828440022386567344784442355416037158425976262093855763523291453104528850278700202994286220198700715971914281623098280486468519544004688047748185838849844951952318614416009033633684472191188718999459427575493417202853133448423037946587708011976716699472286486123677647556851989422533777099919861970058933146511443863848180907138350943205803014743968190461941984479522921002219413223800089402874363336883027994289956251274507858105375843337524104057741344302134123007188095134009139588620304510941596044281686004855005248519021054933329382270811292295995491074086049227435124368057412949000147704689167097377677536142186526826180379866573829922573952813511518923279856055916056209912216313452250070051604484599176235411517331136489202954380564444467774223809274291445968605471331114554056476839627580088563674709612365812936538671162284197028330365291196119361662721440117972250687236808864649431757993777120962601172758640684241960716609347285388940152711898785438620770072005707462574151707324705285364944562454658331707616704715613232751320156874743237718525418731137616449708287618340997299248999174376324054725877236510596952671551994772430188148640385786812749446276877662167064039451928703975455487053885325912807470182517890246450025412563317665326791115177154346918278684644930450557505623764898789551639523453482345902354105085480841760225347260121353837483403304574815306732700630252709876362156463352686891516831214307086354407378953435793629671222304142372420970065230252114149058672628426021829544273028249299539821047492239143670684941330637013710216271645583390568836318426849303175536480965438701181421358663573954924512623669465884413060099699032923137585950009464127472874982270244683023837493734637774355344973288922027030021724818349806360032134517491950130169043880463674443401393123465296905361936928601676252968130085501226937512225729920728806904690012191760651183774247705069633599807039980058450242915830420687364840790043144941676549348587704697908813022707040817777751857866444004232969973118404193023923333384413602251075955999988333472560971217243203353534136936223660873892603353454850872184659537509573875531890207720767006183459213090846679129241462966067167248489683643831493778992445747294276766313208238151760132533435179160855805169780943450288225692273307106946503676318513674051309458913051493042982775636615164531843790069001140190835481953969941552409320590691932881654270156127749492676230480195334354824762934702630518192742513903072709273260123239434056477743135503884427968259614109387349676404688842573599607333942676564748174006256461196646959385381278161725124945412544395541411444939883124832851158480277677145049176836417296868571905799279253002698441406887310754176760975371221623497583884427718341146696904102006345637386995398756165399998569154685835434811272400539563264048756979342085084237518262922297177269460292992048650946226088789015083654144593821700775732641916918205356951568130839344146902505241548283890184118453564821533849550388368440842765701034318629306089063255370072866075125978948075126986908126302186196491796119314272165950811875725028393706099540800728430418288402579326556891176516352404054504622666155863557967620215981613333201562234198737069629177174181837444477235486010030382184583378925171800332349652994788013150534076212691263427059415385611856063629707986815837888530372327883924848922837303989095928471797972434796922066055368193431854841729430840661095862942039537866574397861477101893019001832949726631601908431192508293578454000989979117577961148846903621073746741136665125629265524479523792312364633712130997523310327784850794991579444471082036948904153926703122985239516941414712554958445485128149201540421900303094347519826547961621389064885289698119495335942324830005768835885412458011603188869193464334838171137679939871767585340114931326019543916431479013866905937924614370013027868988329612872434960237187881596986220943383317779003778538868070048264738749949873285436402646071229465441417320885456226729701149700971881657459946029340350916609125210070872675085400786471447546297837567367480049666311102354051259381937885692319867830466335757408204172200163657604340071416558295586784801929499404120344970957983354316685309146444476630174424477640522425933476615133151233350954053225175666209119753011752921630486159473370549078440854083338294629707189589294587909442887822879367918079290411127545452840683898698660439809700696960277034663081673411330990161549886547189824177915146523481452970486944979404169949397279958541691165139661009172660423868086672278286716325339970898435064290074894617169415555337639136083742819293782300258888198268423084386699323281537797084399944918752363102492930842087238489730219947673898979303423488840543077281841395301896350405756494753368905358587976654438900896229680017182449021790472355353473032239002843718465356787631691284832291021791635339138794344542190804616795088967025227590071557134745797775870386298925294629428935324854460129187747228164684558029728731553436316892382659695076959185367609381705169078141609846075745439755591384338802620485733782605861116505217584881821815625371229569156846730390144913552517157746657425353999499099842754327898127166173816792113046610482490999416466185168688265679844424251116146303714342512848994005471641155125305838590621222851563621205818468395325111303152813764623280409898890498894047177762468493319846413509921524047773858651313649773404970646564212472490590071406342918341195320549257712192862442357495894977699547020898828362915318194834260270653548042491981743588494578089945248365806731373516214780283185333305754582384115454171250372068154991936932830925506859236963695088562131592395899821686057852879791639726785840143012869342753424126967446927506986318294967939687991560758299847980157158742551984746334661760274862627090415000845190135873467020163376062388474490654252977822832922792377953181655808514283974283511093847313516048491325775761665759931915062760616563600257671928677587681531113299918729095261976628639564035964022905922752054672631649963622704407719936887679641476849408853903414439971823920814465619983593876138415459920590869072845853019049591404682300570317186916367131631848262434058289782675256012784718296697976252777020210137245107066139913547539226947055738093420210403960418514616768791665447256890479968063855336595155493483998388691366550617379503286030699521806320684669739864682671967452177498983642573036301864425522463090792529483178278310928389426731931998360634076342158559042560051274783996855870046467073683600925395069166656421191560382519279289991179865089786190417308996250301112221981118908805273527966504312803150426189670967634890678721980825162958758237689196110933025188071223785207167064685107285105000559704864644493440678671955652611215413553007706353019402914234220836357715951037976516492561503365692578259912198669711229950856518392817188925914602820721925420482785271501416178165996928080431630963743878045146740630877504196932879789461410212047718556973921384684541880559478066161568660154451794470247295361937898471977731607709692637488953319995097858501556942451623282936087359923907891092528908149419857018898904226529264001081759693294453804683639215005115143164005032878151199638097237951002220733580306438174245056403357760162770599985482427560832358121305607826772881529296555351885963258032816076208045541905155610610719098136059230212672017333715275665380155477777963900106456787918082686456229956600174687634705600867306147908383816998169143307845770173170331924997756131487382169119676377750054615911173334848777703530630291503213775622353385232665426752304166907244495837481878160691963945000136952404907955216196346335104259232883397370815404560631058922584392668594335581404846268307085575199450256782762120028892361763360530503219177424277734570681047122325366407711233663712961811432027284823269185769245811204364952494302550924771147864998711169861379873464131620770755436873990492600734334305456473012130286378826943712671395575636634603231456163196455152268961157321468731007679667921269510921742679911029057149040147102516863927570531207151871811609636550294483559647257991350618174002927401652532969137291213943221089839586240289362866270444843426549274056628904631818731202442995593155704273385965053308427320720271251668350932299836373593560391223165229527447463977716646495218006506315918590352838049486169624626737764174751700423590738298663767929954780704144055893837169883193126161205135998875249008468640124072806177745071234695520690929033513625319472190035068987182122209991781009543996449832793713907912625909088972323294915117163271360402545050995129535667151488869078710199421039242753744764940991912336364491798810635836164128488295942944646155495942870620219900424313686575677230296094997220606427483697283566145436336595205946118787809028237319091796435544131291459912687138133521991320670540571045343668954608430699406867895665770553700988010364884873801194246532246045689472158780776578785558114231396157526800155691103550562782284725926640437416735902567725225340661151769308584231410302362881134380907162240427036412595705913446339627153022639459303446961485812204676320158525359922492876146275272362970247101983585248117670099135029435358618355958073356858125253624975353147402709237879356373588614479374024682027742700341182979214132171460844279017845738099168833755178232592791765710499266049012141666676224443855071192160811942019549951832378895874371204391779363395671009451797551922192454529566778208823398593105664338883824925201360363282281938659304823550267312647265005860097831665571148811355988083627637975221839675513746759190348997074055492618362030970596899681072226848434550784367984697790221383503009545851935007191059297575104706720279905988263273751511431405004342126504563477425233778582756070927391649808298780188178939470355904794534778729228686971086321790826450318507071135692554036115971962734497193828733508760430339870209541867617446845784292834354509505091719824027184413426200749094664464410015330258620053510369445753189329997553712915868570925678618084121604151671561715935563938750968087278454483944169038937779817049896561946397788243039794473766848717994565300558971296181486675451993291292266905879242935533716643724890026775908598171885120793477530532938055240658321973954977360029453367180666425072008488537727688163279563377623353058815391399790850733578634448481401440225251860568248423436880512711022533362181921053347904456680141270449461631052870296292473118582746679758968521146016129138985079367638933318006503941319494363724935260699939804795692378720480486814258109104763771145885225958453627231036210666987184138977552971180295705363075226403659577010480562525578664142024714924128931454215068850553108901849581615513458409089692558833252137924779858789142103572043722218955303331584161285904845764313573968901851633793824065436033233366218175340610703990643773753998358735259247551293039668644173145872245084574259554369886795804091702734169846037189656446242601097591290548733165020671918553553914884262582628272225707736522855782787586305836967702066364331151328269362392623762114147270491428411965785949188694229390360956866162451735809073504142138760961093780265612927250461421100782906332348621940954931938430058646814948157157404482790824055535073039334341112959202204269501724720843470011336848759530223482533986676184514328012311477162321312064327178919387521604182479632765964377069835402405253194108418587896902377698808027085797472551018432655209261999369586008506436520780170898356172070341445574817007017785227394868603451765734740331897496725036520112166101833731255309309358792622669962829523090395125266062639007718422271842189251946821277100056652554654657952861544560105037187565422879046700692303298067146285236286631154943146689608716087392001400903782773557908869652233277506245685755234542988289148401340408056451948722802385345484284790097464960470821875191977775216692007958485770210232354977061687561805834465882100788374608297646761171841082654160719885092792022469337771328939164930472782080013200104357548507167520212254132569301685378320747029815277053000472736753402550128530770730362677843617027886839560050393095347101605231529115512510528195519172134804454812023490395241988853203490087355526924509835031789294302138755503779637905082924222363562622738234354726043655790567622079475878761092859284258381784487692109319699902397451129636176115745033187390463410348659148992842741651954066149236628592498397647629269026208151816645866559659201747815067898194457191281462099475988495325862944387542919245476762079153993088721025029701443166367230745124888397299655072495220531536037536251714773558833827415953811806997494995452825106917710062708183867493483595300911150339380675498843840739489600322268208007869065897925124752725233142422069762028229286564679437899806847480189561324521269701452919658763094136819093192599354983598201231565965618385790647432365600834689683754187650172118960140723433452945968878804618266333275551569378933461366037893480015218354038812339440493096793472996937148403559111438803550461385739629979067654762010122049033293281861988898681140543927366521693938573880961309575619280836218481415098883088353950178386796424089507977682556637776720722306930421094054418217118225119089795727815333415284313621945781480945396127810680695033805919548406405502806452576781099070050904193882680680684759092389400158606354208005017247291211147666244829189209422428181656191931402175059124197331144666409442701925617353368621959019460193799368071759438403146940774631308186876228117822070123576323538059501707003141764411076720647345346863928180693362266664352350407108898168039215982979614261463125689656243284845360865105725636480355137943478382011667122779335538711986186631618451473819833625115606973603473131605132358898754335338196550478324341607596457643526196080048066675991912975120582295472421126718820190263363748042518375280441145378870531501839347290653780433478972726496986568481414712337534486269807067692307985802513232981456240977362915798877257283127129928642983899046344926514619129756711690306436750990594899677171267721661030850101771268477481238461702233368854154473265735952130419960874081859148220314158266033373958329113030481958308251036199999569250649453433255523597046810558596340081748807875150638365918207322250481653229056698288296877152407788980316400713701961521357252815947995942306980481692810994726127370750673860749651128622010862155782631284479301511921961626563837879158758873774391918562951892616642653308807989280364932653246043617286063062510212321515656199868359861987821630828106507824544721152142039349310939191827627726751586150532047563376004244548583567921400465955988704269808002277544324497623024546476743302780364364162493798490578092338127658966316303794296103043636144299709550160837472179532440055231408334590167368838179537729153633718158264037861441755403167573601875005343367559847142795185426844674098967975110976881012894180290278328196956262371864840891708887841175453556638258810472200495289046953246032981904050761353763231575380376741019407785179673683771356816990703145017604436971785596058417996145376617124492053911942338303067451952145306535868405186925232365336526656262629791444247195975824542363960988635223767835381159918543594343627511048505348467498223064296101101758345367817634215432730202955874879992441397641759914280698367001489689671226832649518346779773471392880038897589003745377492697070787633826123381702372662989250561996711423605861755313320549373975265129113009232540953198927765892652131225931571509586875673740669949632768640708652174946281754639813350317141218150834495145841276894946480752892517809795181786853086303874937945217526963367050393516855718527977699231709804481101436748521919179445315195468814950532495144900264820875953665148248609018623583927892881843606359039370051428955068205008165720373115475690482834128894233678148346557379441535162049833947212184911355197316455883116229117227553279963304712017292478080652515636146636123597470976165695904781604639138816178028008697393230734412775697799172744455023910803490366126311283354555903451136072485590673297200840912001682203734217576841157834822293358528575298049551493527797303143074054552724474857291592174770586604114640581516468776535904520781884215188479081031163952336060948174700228986619960120374870012824859386909165841030755409330740922158170800835080202520356242518858314103717978255901598904647246295465634650630673983361601884701647000715870590053597173143612960111864624436754883308128064281581756841208068469955895788435681584976052400110100595030612497129712718287291327930834881039728368995471824458803357975409297408202011866616580767573072471219819558378184667854504949236251876550910860633972497829820539724692986070587230402622418148274758579576524662228248406636084609768362471257811979411083910472169216324397537305804306920276786998310825521549685162906111175320639178777641789464545216724504407367541282339000191511234569005747551504180452867842642495706356362024134926739343982583968757290806563204863837093712171009760871924046488007928487543046261385755416879668540855170540256158569036881022082032608692394562958950211460527378911337932086265499484711700766529790560584614579368700350672576312221079939261948322053539218357147820469104835808455064097142766482483925516560413089672078937290559895761059179643083605296078782447655978758788892284967764821170861089185919980997429586557321412644458129080411399409122236902663579687723035944987381236621043618232302379801838330538522270829879740997906770784493438144123178124341547981442664654808653408713298040437220920730310027219202730209441835519161810636776369838815650272196594121342278213903409883708967667848569105127199725695638520971539697115018401918628739554184058332771569039779234987843897045631721575504610506041423246137426753338893754719673420507469338435680717281530953841549501859964493809001854095402872152061226679507919725483854035440347128897901246518038392675894899934255498963303037030991141093977369553241349684052104316601444590985131162449140726581112231488305533935348363691394128160009033252005711858594750562870957505686534153247358108742186748082075175961423218827334210831182666292052178055909658068278257556398339140288741020221748498925125013472901851580369152106429614623769473719734109986473020700164392498399752210477478361887172911908266230242754331119690607655749761179136947907047112536567981526299018334979191314420207644943574595226652354939027737417069565445184610469744931865672957382367983997655269801015457400497843007407285294666012111071075190270073605047355200601334398047586157855553379398248867678306987671324301438701965501283824512595295260795765222798286749044377204643233598379624425275843501057279588505647318420607702638749073965136770201628090238558801085425089423549831017601610975913881024756583662416784264475829906452622651972099720192948889470465982548661499855905266939528221268719221550635087493730210038601361713312228349076604899057824783475459045509698357398271814089843236976962162393229790920064373582941167616839323786893471429148998651461234486421805336935157013226513588073233216757969606607167640002171163025780229501963424491571180209005574378916673595957681088515603581933393214512117623366234417218306788877070381261674439267098079916694926732294722141210859253239108970734279061861666821052222848075456901072479466170846892934994137436775599367775042044557742733311756628404537119384199453498080042381163499843560988312485344174473649344997101155388561646948212264691391251616316849607055409549678387661794975371462762385799583801574684171552097676490530278101485353220999021725338257839396643290675536362207030461815146924432200022837035572754399016746966213938785732758024378191999367991517614253023650732204605802176135132661682878139123531043454995539669820306604211266402200471693876546687537081564218557008404976753200747879292003568317566956848837150584077291503833719021138385449202789058478178103444306856515201899310853903500667325119370266444219044329551129501026069546107534936082771679833600665188536836156347682010183341335869411384722751520325244092468649637398266311055788691156627297944794924798139855547103260766943127870772970658205325178174794223073515268855877244826888065763181435522105429224832709835910477241586773066447242124635249658392020341902212631002781060950255863364677977843665662004513730390641544688916216342733275211480866633467488135558875571216362235493410123570247954910560799817753818963937692570467635517274197831034387920560647348105579713492519407900762114972719469044271807933678298821735252754539460681548609546143283723431584692630873324010900876673109071774785522555495839388568098264257819481366232345229670266036209730657176140488177152542778987159679781630381818537103232194685476867487861798283375297923404568024029273240776681346289980480228912652047242879331907271761086477633178142485426204729381727138397148662327001717299005976110635151058969532897435804637047200700859865086172328281225731850687529458300966591342850363889229912157136956052786347960241258562867889556524888084048001924155977911523019593478911064845613400839993003365661911764096254487596672290108052498660394587524308613199924992511937951520755668080395539935962237049927550007367825813560476275135097410996923506679699106917447548862505967654779816397923841651100157481315495470848020847010499135791438785456530450718944004178900012897637030476275220149820988981098383751243224971134058668214427261875246643761820045619274805054765059954248633509723261627455283516147462746940805747920381394009191101668668133307933041784365775155423337163724312609793490669735993541989118166571954918637270558282695042102123813009780674926303036545113155672281986099070653886517373706561796931559809233516056267724337093824981748335190125615925809905597953961006911527253986239389968965389024999266122484807956863124097444681456109428119713645451072220852164038902371916187187544625870172326208343662695268580834326752859979718640011619400453746659229690696361100507662207497980952527315558348486602164265079870195214225884629181408188091621717980320594963921348115701351724786211807764105805937817941016495912486386325707400669520964605778317987512309207404485621172535102145449136232319239286583234081255993731818960986549970641660239036706857856245372293540061002911993680849638729156291823827297707729479164748334437637502668884539473126424156977773602620111269634714518097798109840829212757890615137781672622288286149982920508904576264432988106877862653967227304353468065152102972887015612978107308425672947692938167804785238403598730788831081806321713612916429228705996593132134674708137401330035874893991646590702318776662466773080612777610529879850856465702686194331378291038499766251205371617959523761068593344118174495318107853418657237137167697004309633679578727541995472412087942183534167312352852179954064576728265498260038802237697054179289078339315438022854776057017987691646753663383517344714631670034117004103258687473892659712878951390925815508127005969168315326792441335418865163979346291122062334272135361008810367479633661235999841455141183592511875833225731475208879239127309932251556249944358842602793189331021726847428247887328088132208777883392070110418705212866945025034840499634664184434905142040152347206711854192326904048688822151446723376955476848516887165699781485966058159818672927053783647200327471946889301739329208483325693538972529796626070907473723017384673344698903871380389449737950246683325313666200741021768333106524726211395312400743180254753672622497833407134744524501173564804922648859462449214594686987242176775403278393490747835224396891802118274829957821027318100772675224667134317284490635381755678184705097519771706095658967980262553006528652715390172621250362784897865799950326796447012462526601088474816878708845637798925936446537881427908597411391904080421847303546930884361029121528078132581942330751310768420568907929068254014987385938566969599594906406095174951066215838420581850757041590472075489140956229444153972733126951558196594230594240789277689348826155528315468605465641613786231660099404218995680904281973445741277796438726105265106626113195201585079612211902213792195955440253552143579954099695707672793305511059181965716086327272092694569212355435782014957664887474439090542309767579923055950911334025172599247180586974185396823493351697041291822586035201170776787886431086479226207499024682268891074701097772423968570411277507115195005136331777853866638099872427778322296606381165552872503634140542360267629049535951423348206739850846292476824983261211928350246997955209739085054827655514330315521975469549120232290795123112488991466374349363511734646034324178638041116591890235144149299878382353624549125506356948106343509903958788632754154928450548931563839202720875764633079931884335369517829051554347120696138742277568306822975975349082177049442446444425364909656116499225198026650760440454477398429911635633647699753712879277880208824024688112015872299452743671015553248062028088159580175798012273890500606021212047616615876694066939501770412174559897119551452696314764849357043027779792604816202283351801900428062406754411465305352212758836639887104713170765210625773191452936611110079263405425396153578265119555744660695362951819028673949578016774423299984890173568725521968401865817276714258893471315856501747497698680751603061241184125047556011201119497591751185925588146809355635536894833559446909555690637892615703874976866339208927760247744372439225694571198082629194697909045956243052845955516996437629443192029890813568007791619361439829770231036621908620201454331063070585769520765069936760627628461096049409038476623567788812554823396635601798484736429688821548617174451653860212692399310606053572884420675186344770507090625382125278702835028326854845835198734368116635801255913091487523375700181116284543947530424521845827483980949698614654449176716201877639847019304810754479865135063598952417989698541372240448563517369189610759027820589754542093522651342798602396662323315004378473818997654568400653577355684750535429858700140493907965629300847801317672614978635464676914809089264088251919323289577939846838789823464832776903357358107334745549348033604926593591823763116941218388978209225995387473489633701839307739159552398549094498337224887007315588390996528938563705717192865305704901892445869396485355645543208639764398556266106107283243279197702115617595011579667233325403437077694900496722178176517209580275399896587331368056183891808336119377519126665840408283087572885429138094094235404170242651795664634427271885733413402637202003974388663656771688925664915352781905817486673312985969696979531627655235986509721613061175358060210200169717316292550244476883330081652075857839675275403853007708165137435560685886775022284643102753742489782711535887961171064242972036360783725882127808657836935646750103739342663530517244852582592952524848890463695183860055396959513766756856465461706119572959790448318785528536664895571247236288424224656426386871007930711972492417968766083828952184418802692719681313299333033452132834345395802383199916544686955203329768513915660727031633720308123215767262549337046863696185833141920938195261005248523972384517887152663712427618095991164596117565132025143513617813389127212183200449891164278714095540053181783219937908160273461584200123340295567439974066537384796572411992545521684216971814271866268825390154103612244250579335291896959463628097187467991991500068758572751473712669196014421040119647685451203971901170519464642979861899840520211393061075965316606871417320389152288186653912018216712403620737646491684186037324683917597861206513043415455869724988213106812510407024335707798033505971571481585102889181885653055869314920231236237337583193714452935165323183674813891901631902292329343786432528743993735396268103727919063957593556621343125178765495050198390111935063116205891498721016185289379761314505376621784135630086730766504722717193050741660391860096311668047157214004175525091280644054612701145372857217494733820873904832336553437428401102913813114314356804680588984817143467322598446840633289964130820655028566151277251500235751511878112163375780685062642651697051021045964584630811154675839578678569710038115791998946307701306658793284263766369973954102406711756519094133963530962619905509816192545984858836104039781297385467667542869553336079323988056229160623284264155404683295255696797890981362604543591827270960100710864179827055477350284801992680305134921161009382496068612602077773021338039950735672764998094781689767132551932530690066455563083617707624477016296015482504664412730190518265195564404255894579936951203809836209932214371446036311846970195634658774365512650836911000077332410531047975325726093594615428337426607584076553425151751276038870255147726599384526308388946858201631983735655193296099968437767132759117250835183255616946207914996222384395993639385611890293251368831971022197221170776578578406650445859760111135531935973748605457838199922577902878752020724655964609021751164110776345558571971756730873265703328090384369789924123625852576807037285354491534031904972184783541095112056837741350589434057091612490117766668149986967522667098302934655465081177888285473886355303561385444239053843912708291993819088717973802714338378596152952967359424641768929603473326418292360058265553696235307838165161110991126610859127865512399787431915789755752446650038891199090796925255317992571737536948351150034947407143035328404820398850358510732085761347869079903340696548943680907059893488229475820957851655372175107366717512448321105778085954319566551179820431428134042031528779969015260654029484513897024537821644504983973003191030559945799082968904305294735143616453231228110347465256168108453206391654163722471527910378041738806266441412799602571560132686079010268723150042332277511027448420084591704734982460862907843262778460903825226344606393253302317643992504109685126245181492840723629136951181677767525025661656993655924750527912157581276433833270659295358789135609015537164783317686151403357132523562635524965442932322691781668503291449531582229343810999569994406643316573532921708939436432948378610586987519530634369128387478429913211230413994017525053850454138388742563529994682327903735395235178158517484136753516556036579061048504756237320974488597074152276795276354086165456336866755163705330332396157336470721085920435949823630748607313812175921703645919999909284883999132063583032942604440295893725360361363428166456246762631175039083245178495375849913010547092076216305140830988269343668536754376409590833347633571515617774432305511448045755667955981950012129615218894708931196831749104942159428171938137612251919906467943142886595950141407747961143227206670189083241563297526359663712039481840136285981769884284975048767546703740581557990666054026747516410963626968634994390741238418049988390275296597019329143520726624080284077377378683980010576055216771664384666185517977576440928900430343073284843746042063393870268864415832345404030505796933183987955580303293253994643996019848834463363616322611940587188376478213919083677458327041465572023461813901090083984229103817999852606806580582812399469648909558568367785835234801428122782654559487701550075336557557912321466417606654059580315848549396034816972824846980676426940523850248029554037944305095701785414934196316008023472065222770158782049456149842077199542438727135580343071334326630954818172419865121014765890250697446081624476518791827259622604635894450305996940696840018400102977459020482685014260671353397436961829428099747019064682908090177197202896764447840587763449583490128336238754944167752154259713930720216742880648217734307404006072896442954898462253483764381963203004149552175595794459444562481351913219486513435284790962951989133481907935379565315995340812902989613396905007530102119296926112047589638270746714253961875602645870302440924005805135022885078517409820890994968127992795998157199278304247055147961248149695129418245902099544777576031239879606974164870446053749742936771921132416159696155321478579454020185223186117293525700766714778166531099670253826377308500021107140833957801459986345065583892168271174194590375727256780096500075669616987317596800575582255191803448493048192923607820178440701470316443045472585589325406293644695642386146201156430850792179465813184441139950664907522732811867451308503774304021641931604034913569781833101396013746100094123299160194521390963198559891797647994852316133194021064898635589448213122699414882640986126625265668116928284821872473770989855120084186408947484563701707735591599529253148474529617116169626493644026059003682305815714480217355468736714355247275027613084717887764419565714037118509168613470117751126763560587370964085675490399847095063123947043992583018041149777464440967046535044387216471224663634165561644338067647350496189239103871553162780670842418057491140945660268929713994563284909328281695007766595982604303976837138449093878496137066673316435406022927022820484680235953228670468584884820633354359370135292258270543790209312671739539693491718358242414297361975401320644200088600507419053518977072858595719834501262280746181598292239091212936193154221514882064753835721882351367423687754983286839164442869406140699674167150486178895296405024014447859525429245723160509145961307220604153720739120388163779853515645269562835604799913946203160037591945742530378077158238360701127264851602087381363112638302002057711330101261849216514435888902274566224534796762467006250741797836504520543592059790071991039826611975725192787866591731653551787141822714252885466920029577686857755466385173563745066369291951519047304331292170960825899908365522836004129573608981170639300108889412088037017675958336672971054519767473652179295670619031289642504999722540857210950743493014855831702147581934369214868340151650263690024492962333387937548596954467205528218536774938904752938215770918813555645624809922146534353026537294267120741496478569643016848703381317420526391336963453705026677359099299820986134684893446838461976264058902906197717253858184118334829705928100326976646487275076049178432506571821361942718597250571117776717025263611150585944182603796819280427363170449563791536900041123116744231778217050171315889974041291513837740220230294352456201928159189649132671008796003524209425105039998791187087353974334006785619643486429161828805302234669293015512393486709651997601363564239780633826004807301127871498137720434903757005884555497329162329108919938813726482761643155098142209503776583012836991188696389159729580248623016413809010767545460910553592091382097108737980621871144315485556304041233955854583794342584409500246962428029980241251009583483298424118493036731757628369804387285948414204582866093339585466232469999801498171722500430415573329173407134535876258729916119111175519515453294659911601263566024971423438871715725996349927776808565328705954910075667036531665666942381217331526398238571492543285362338958060083045816912283289100119989893593129702364186014710603074457303231443066238801020977146791811675962666061465660720199546871990345990673147544214652629605259131284664905236932855087611853177896834757579234527083306071787821917113131108694488696818933601572092023490583986308151592036692093975249344372214142500864462015211991358665766508199637986679616646199020617064820904486634756972423429524326576950035357135273240120496496675779611318983652832211627304383669228573331569894589868114171340926175147486686036777577129673936435801017391515693299607340382412685847188209452868487369289242703565326873599219235952213413991725775842609556589110934752729127500729429441913006450095154166651460392740270081188267733875663219985641608984998429426846713777051785963251933150824628704114508387524890070941403928546058415026540193127878776953596876995314128982304563641556955329217621979748840189227484430482570221413816913041261348939507678967488230553516722926261692847869815922111409166066761231825234903376641459765627279246486844336042959042927539275854890883699648328330732845350103578735617896851080029769010217208529782082507151518390921793390962111772865334443857986219842201960826525108385816910388956987783810850306422523202263762978497314883832608526923399720861268611927554510616199126095396107818700507021378858322010825061805387417874074981746170795409181381291543686889074945184537360855662760941038214201290057342468520667470457570677238147632885695826870040867595737700489389384378665311093290265884421043411970557760131104929244458820095942872414230065762476196119062053795732021867570183927619146727424555977176280518056269683600442571591608245674484692552353648923105179422779800122147640085993750902377023232253414764433558900155203628910912021835987634911526777307052764960954728776358699374717440905535729362317685626339903430871110139057950553867502966135937372837012377806178283035935481173155190172227539512071782630946162899653398636497782888274654288244433669417448064815636233470295009534795276773509149532924243343047762406298539622187790826229722979314635854064975898171365296699581220333041357671544951215244630644878799437000423813797523656481558559586882309456561124714634501627574428628794669052335369625167801839229803326462218509094197130232438403592101464303309320540303690350584080153786124308980513205432677556892674120571034626196082931908245811724123200650720140129308596452770864882033352054381566026669720477790101607258262573343717298520559509627479208724287119399043166237944602897396710643477813165559486544080377441791216506402520869224118881139852068645560269075225007688417432075257039815335947129764829818200565443628960696172688519283938307801800224000742433378825960672260303097606619730858545491166354542874632222204430334239997225518279441846847746469482612638370235943734517666286238592435859598519361589104858167741744878813215211818524567262809877088745187766148406502031786699019444761987433380339042887019653238906787838173686725203995872654330652719710387138317903051361033113569578319128326803312975678504580778032187335589852603039368371131867548188731040933586237100177900953956387770471878648393018652471389863484311674012637522890209693838519312874649015381567463435384805605840105015752979458685828048170940306839205683697855871470259844426519355117577411850311213318188052920786791982486635174911167441709361202887919920906083198445333530976319764767661685524919584563537572236896915741511922784797006618722331451300010912664061644444023933020984516825914719518395832542258731202215500246312990218664604709143840839570062464734536636582413522292342500210989388317621211976416836279070772440842138877246007200858094210920384864187538685632710634515058116983479455428842236140078352761615728422131426095498918183949892198247857504325515553162923266713746734547211737116286654863098245818177584903006392640199944567206708423073833514146588933556759541830388879351726679235861760758654626145681425141053105080591993324909555559999928126903977542868938423249329314263508499381438891945183178688941311257711623974133557800232310640456451616319686578519522160560749232246943219030077784870900714764411316060670033894674131407830883114374958840934465196218513281189928657437130829334659313638423017652878405783654879214637786544740564061099285741712692528588857737176018815388052436177922778063746122594376766767401115350996966229055952787837600210564495718231627525417058751130070471176393260475856234887954911075172212630944947451472706661560292287678136157119126539409168485972428783831597129187304296041094938623381921499745685152033354015966830275531754074384293331010778228564351579686496730394836456715711656940329502139720176776402191993893934698215627932571019487534273774614640640073089446463573000105983239089680923787154640266049655268514020152891347814601714811894556892598343160134611593775623809601014244361698769974440165504788980675170511529976797321520039347974831022497612913242744943813344454358039375648980146151878678838152814003393124885915189139957970664158932856771987969905546034204656299524363282262434434320050602026568935789103433070168478560375509762096985727627757957387543012060227450821287099140349416749512591905399562237158571986344762609096577987016820474057940845830344016969116068110487742353995201989602169458947002935867223419857548790177541982410748346372151823781521465904995361343221132897040671647153676476467563374680460020490946592364076739746472400859893780828309753202474117498901432069698425764750507299265366199727314728726675587872689605189315776547872667519149764247607454029007099891066014210053703189871268103534787501471927794609214723201221609784438401791393962551107354929135241441093584068981649595491095435091225982586894357893284199579808445196899345746825501925161186006103584999107391087286947444934951785904739640922849076922723824486569098528029627762893670370989835747097309652016822910792823657830723184362549626348441744237672504997349686681838071477663925303595116850654359531916406554644019401993725497146420711621357119168793138071559017673909136500362188494426252887637682235938492009405109933389092417740345106778408317843395829033463586761125212553657034318081621702378898973719802203212963463254516008220581212436457594755014033546200844348665364162756071558469466855127685661482094672641903188868343013521052240854971098591320006906505722922195077943996618518456784245943682993031636247582387440230070227260794062571826464002266580280640336447600788879179315468705145762685991098174274897013927322283378629995530975232030853354240624104663759484394081711615833456071412228279643937325420416694022031491440383866599935150877888398836976119884909353207905807290800361489938242111174745265909956632984008236484386724539173659872567323394261444031977229799584765541490138035348361474078729371270432825006588006834099384578367769222952725445275690550640956244419495216677349053046593376860406503381087933727719340060659521732009023915445604397226332574922592778469705612585735807977930845341667218832701720391322094088705763011170043785634296854085249667128682709475854331293342297841283360986991366451270166749746589545765397678559975568830876512620640225182697779960226125476071538490842449649247740233092656039137579071515760142320911117385571279161016869864255212427702939252374341646044485463852901382657306176311522385345558324784203049501220859110996533832065380234590814680440640459096482478498616649251187059527690771972913499847665340819178836662322805965043935783289547244514002347635983179797852246529530032015231869624143651176225507906904734784588020073165915313500283724645534029023023144965432576720758827682016654420774721503276871162457063516953077025413401777215993234522323971187488687337088460528477320763263299818273372981089867034816774697925148153480647606707381662377904793084669254465119624144521547726142310528467542837053000403275186150252064274328919398218832883779001467747911900912249980743557001216249673196208071267465126430223256768575284285519631175128718490870573414798107918159881600664467837136642348823731613271748274063865837576782111593190892987488136718988188758519129213289233381054964360100501443882193434748540990686061928779504729798241573878601778448288475962541462635411558193635426590358124202021936543893111157464693825060860711738967568335909495693029197003099793407898586325480651582339514247581399880890418951908465438319872245252389517010661446653037507729105937476829899586168364513929861997589333686137260867239377801076706769919752633519920584472914275465313412649428223873600015796856308885200191053236215566559508301511953081575364383893369771346545644303772139655101551361795113616796090969321326927323207037124112593239358886479641886647422409462391981890833181956485015088387525892461825505445793445805754337618257359139219712651124445967109457738485352894793112069895268723887651072543159327221126439591931566376218080746733760426854328019339007127896875838221861676947993863388838577656378183647262564950470755820206466553686179061294576275498924304614418029445249814094574324329090887091792742206371740883935571248083964312834419826888460603828793822249605384875705455590174166570926117606383209486293957588780694209713614110628008393312708786668016201115122329234028460360466626363885370094355971339765302337076729319458236311771348785117816861237920457206470577804438861843223918330130567094704726692273236484294661976546521595538875128058731635490779248285627709730667978794986351641057887615382062369024670762432958459877713181850104162580841962035116232942905538366234281029434055877092764543530584404446933609301837493849356106059555289358877875441912483819818667561963350136396042472296870892988806573904673969699330494554662461341430015775565726295060467490117807412164176438688306108628092341319019201993019156713939155059335232440221439833113683970786212736391829465482563481898355719957926398385487583281890710730885158442976045745816619698979241033504668717390143170464965710868711528569974844350097431776898600307913396420989218204701856756700604112426659017940345271454501213086205897708313269377160586199139897378479450155883719933280378249895711527469436641201107334512572724868552887384650558041766194876417298210771494455986461898956524491555422156308670305890241904150273698737356365897076306588650872356023636247396186928164783166778287437495005831873093793167386980184728511024895800673941690004373651367371997399510834158525088036943718549699190917500567098616487935569710319317454349204586366608721723679489016435956432560731211843138390512075450921812872146164362168280045938399725279549775301503271868305925632569064201028138129130215187881001815747884347357804694441330816647611477254219159308497527182207397831793376628970278434903594495081701840516695235893770388074591835801923845820185821801344968585586137270678840075041156924501300147122286447594756853189088492751436670110367355988581571035392019860487082447668179359917972662746084263399534918896094570032165061147393853893688195654724352361794112667184362993639783863073854589009522807894522151130454137971721469412495528378829991709970859484861979225971236642541795062213883939861049207489057076199821382803208220393207859757327940885563889057600121310703876551397901856655049065216959320859730673546810545987765848435627739999155259396899370307608225410487009325661844842750236521861533759586756054917981661987809504724796283571425334873076535537704888772835537008105836939116953645822954496354595981264084872427260554628851905793005715698850689192189329955400093200426137057399617485671492762051478462203465723032247018264777072568692669682301996091775283205732908304415608059730868740478317698878784340879292647451046421642248522299127581947072805358064769681033198432852107065365282458844056685344950847269476385497101053497137175322648821054629673105131995271284529129034596032249471926455885415291900290151725971965781598389650774668426852305566128994434729065015667425277914996769583860764139208935391926345296136249078449253780918862230809772031313097614342095004602568197888685989149674123061275724628965988404561422587060814205455518454674060943086793593444751192373455241542322815521124524762675998630595609138579892167753947418776300269828464987408919720866709073749490199305434885793194327760914898130486848166962826004368208611974711847921672864145474678274685756805818428885220228103855882988056438091738092132132060922687441300538171869813644367983108247444168931318991678531513081178859347086808197951047393488420357194592252882151494566711977418261596223548469033037393305961085253147126187165869702906071509239726826599488110080436872680091797150689996883439201463491257669963357132416766775903547379749147894804419135875269448184597010761890692799735326033957763404246698346849379724911913946070423750957012748810822757727307626855555512947623886609054167611122733842182115125204148512030790402879062579282857047512424395430643249997671553643885169264248562605247346125104293831239016368614516742641288213995666946502077405007215282313264626562792869843826647466200278324474666616573499673308213933510771728876256599625208037683031795376011714214036908933243070333041262824552038434096723864573302759517076576056472832383617221111276596096623290130115569776051427920121036302035704489863375145962257226355443971191083534972589045308253498836284802391411404594237746340625774723349532878982558391228750791448967194495028718505970233211741970055250984174590056081244349929970878557619665714722899691533320184858756035266266472310546559925373380550157216517802547312481278733468775172259633900264994011119198323507254845992554437379708767329573066050488703574750643076867900718409880210366241910871674387457613756632149533900484281531918750677724007335599010082337764194360256396923849525476435549304046731180007703362891361793802669737190107920262922697173824813852177134920584017839809049870927166656892586228982623782373889876709828401907937085334010619015916511426498012668704007839190967231272604591396381644077220813603314256243661377684924685004167576267062665021315473367346625676853016120269701605207061008197552129168650101171369001538511373609457590622119141367575745519846902767601644796461341318753939919525464126913021728176866221989120887212063276969519077628577005502245740848225043840608043477451527665336761153297004173044106292414912832610377736810377991909275008141943034468240950203137880420123952460726804377207640510299496608104571706086653302298441067172071765276720865105949696557966121320084733289595452372095731930687406363495282043442809593425409042905162492087841816000855173999357391379856520767371707009581970217950056388194750838127183560703812159772493261636771410253352523870762968478046640351900565734552818654132915062637678162941843471168144605104887850030973143377870355789445785493399654839854026099779129136680033972187338740723884006659253180918195612981542286399995265726443053193405462670218395013336594632670613054140633171904557722909458027287539108574332349977145838973692457641372349304293960312946846363790735951135549252535137748912776399642025601683917170669974649175279107426055986228506851334433606392030224726839579480348907885271213166019522548122598128325629279755154785685771274192561345926602766099617561528247875177666587077682934637600674714761405164532123818982159351059018145031549170459624816520177597144236121584202032778131361941807599528193869632897099621111088765706601365893616134137915101633946147982716695271665339601778424400285654489678097437818234617655364759403218389179071070181982791837539850479909577395009425667848433005526865925049013246968451798164409548464709268446739709574616715143286869408962188139641455090991087942570459689105826003047939651692653508569865745397649604047255077201365375771084161874434089782635037546228856063688802142674514008553097841170387019542825617209122555333981954968380829300133299914931017716374938670131106009780038598058581036621879372748942958376493590403066203943406996688775678179823970408309477915962797259833628864951357400798171056072800379750533496861618114060948416053935955634405388391025687059470452441253702821013426320005026667056008830633616810158519633606824022101201703790086480294503987306226412906060971884817684219023500367452677961067776562728816241367046505166707423936682977648492803519201223322409389923727037387786342177595298250462478221191252096404716765372193940504349404840975920810970966853053837856787535763763570573053662637201677344763974855620144250658849752435877479959123699599650568631664194709917069377684553465698479177992206066495027868061987925676516903021361272543396148481124229807962225646571176646540684057207807923490770080735405879285540981133604776825946574442556568476163839817942478926522376845195974570415315487467675577462636200248020000756979345626958582073689078557354831284641616586362144146237947110077578171875826244704945356098845333729487419390528381928348807590751831579025603099094632981850794547670205344869082458807761661041146557855746927389122027248024880023916049586599637065840113501957378433889496766679878858968938903572638703368503209296657829682438621115978222178364508190579512238041291774684928552619728133070173149666323439796615579367448779512025702753909592333381949844401263806874569412503054921851258292319960620032957046214799786882245353341909659105708314004671465143515612034478205976286121924123804282323186925691036380939626864634666715312733436239320525653912352926652921183997738757668029318980848763861471103990186874938745233690917928057862920435414092866546427394463539836861944073069402498985225783274644396944917232423979603710646440192427150944933537249344054001371860986059447719949805593526317748067024197762701550969076211778273519981033922021607783154980711122891352777949983954519738885563045591744241105805788965712463922029799845483593805575399360446002116453864103189005279064244991777925363303452887929490935469638918528823986062377613358193030133425871746030944517117894654437542057050097888095212805800144890182695969442626824130406219769310156590206114448136849476047091978546357679458858158853918853136783563507333483009803817943172965060141408363025577612179059042968714444453553689089286281326237696557507256376345718147064249510910500589579609901851864075697433147554915680993864764971167827877655359661189114573854749735589028281464320721755850844780017252174925403363342852986792780082988053380328315847962400724665596936997913216454346377921268515807777898014695748975719402873840160378761614637520998521095190872850772290027343741074933090245373889394486946293788715997446457027084775610817780253476196480904189656527380472155711564675154152377953472820323381155710366228619901706335912339797681559861430193090222223908418112697413583884071057205130786708026556547845579135945267191362642514608262580239162224385778017181199882233086353107738485067124086262485509386094130034992338155507504097502172863597544320055143003855849110348531885293006655388321181052523147940908095992337788905608536676635068735476166494595824404828688755755481922855316468135043535995029046702649838576353247493153993121653226210424524920706599819730988139408612891605409754092610448296955230011866340044011228357744256228742519411563169409078976693595117266973560553493326595671898032657844467101397289990240288785147520401037799662995043568582945462268696862461115177090280324080489622986437695757832278515351865504021979749783737290885727193342263403247745344184035572483494612043786277961103174253749378302826525645614829133514247637411615188155536631190808798692970859378677010299917899776438287960763551150572390365696763099720365041712904284020235882202300751416839036557912011801389924013078195038459962295792817350431219160734614520112656594669930696642861906519851013376202924897483919100154266136948193288489415305383782150534000393408759472064865358981354028668672263190765703926381542302051725829830527860140780488558792109705212166735300456551186877995641027722811729491942771375600432702007806838975243978591946105202058987794640110658711695014139040788610174932850242287395951732847622265782470211931659186954282840194742868026839295360267993431655015448976012298009320895497843901207846082053083029220669306056544368219596856845256417910192115669445807381607581146589223210448625521139673212639204133127588217263546587557978904960082064490646851402749180281093098180615007024051109554036251242707312990307630766964347261796975606581150479345739141855228802933168050006976235254546810845242993919093197782213487000750702183539971908733197459711057836061609022543233200436047372602848748435077887200408335059270861926228854092425200836378097032958300187616518784412575332433819729537406880760521453000339772772555383652514129212438702304459904118979289373348537936828886421525584358637384451621050092977017414386051359481257949681191897536212393768631559235719379154171327831599096416598859439573366402038464096639619671353535313300579246079641520336703946296531971456826613095008211863397733447789080484268390214916614492824603284701625119017881704074959732868130026186297414900101536460940574940246987393020654622222316805717822856746903432194823204892545131443233035558837564904997029228935062158443997538816020585792672275961870454955335358473952740465403532785683608603429019722278272785008317211843961039370469164295352397387402228510150826894661153225183771434728250583535705974989658045194322912990657891837728455927670190179144660850537502594506006698820528300669082950907448071986880716976630867335692959592956525823737922449237400345007588009194729839611274230376466616153518573690654843984085431909504526687246248665101561712294801315030181967313868766919223410178563740533746626194187768952501947292815156806564963441415048107482167471963212700250271793649645878914254512123973006057853002680637575583593700619671616311235025171317488481384218981515516033349909791884815690211374606460612364901912610522358415868762170237154797833953105223163034160964244009513710965197009709541499132251953999768919808200573440743055786142431312057922916584066399318779854870159947990803744874412262301217459271145508233752144204764367537314343000088105939951518837866118904083405655320799854499565425435555910588562021818712921548042826528175571279393027991456695283240649660663871310793409059856129536256677300251783563246181269004144882122342884785396085691745940055556825704257321478778544911059688354586588928004174963971837885093151500077872355738636450161382602064045725579689552794650288948368238610685034437086095703032995499898011075441878014257234960888777164333047699938872298713729494931850617910772814120621591741689819219229268770228047705377080489315744150294838902144933872938823871576835496212348912725686447526761839263448512481645205470762890579541460486886063153002663532882195032419859853680327401790351691382702835869795660363995564814983465409796328750995007797477637661575232755994384540585743040814861651361232035426210914496768767022837847917328866772028600248417937654331981222235474050989754999427489738387023774323637984581373745720407900168322898333032606706327303422025485516392167839775484295546753625711949569487406877662299307356930366570995651850212959374565993194010385548212150867885753173379025064418826603045118066681303020918319635626081923443538083397008487365757706110481755224612010367413738904289685940262645422743825053147498612555777361747838899802879774980440728458448727725139029795074861040106840186822915238897665048167546221613513916290329151095402258087490495547396941604755224412428973689743190847697928750287901510646062142954732697225500621978103400362092935421753336192632529169627165995504784127206035341900172247515160648521291220332135426724376418367217993911657903869083011430553756821712042827612291655779966841538194924669558688694433911419701741049530056375754259532377471406775273220372754058278013141710891764177869805254697758672841936859827392989260579160508793412816045177412934805659891428310998958170459898883265428938760387586268699315964939728103860736961826599471000636817628846662707931420202279794837041683087879846161435277054589004416893224811562430228155059951171240513063672316247379294915192404042624254771200601084598359905731714144618219219716151523874268260154903942798690527739565417093145061777358799850520849623369853375796442409984476191589130707079539730378275301765555646197535657290689135645208919501565274382333163839265447327664553713425424390804392748403893730265313310435256648437367552518114062711762200579424889614210784211096099577291827134269503230654736131469733713804782834259882087018089471177451134474244562153993370096090549856721129173548042537198296808828794453348625671634762555371104018836574101717727938199928051042960913850438144407174475653052136630702896058601767687610851535994417903384037130975571053975175780795911918042570702778344726937297281935524994557472942224206093691816130340027454830598291806631370254862459855652141150752512200089723765921593014994877607320199332037294338879408361448251079079956010579524037408099798993684930836302939975949123756963455674916588393754925291948445406380647835943718225029614647966591058930901584393363336572270838920540659004630937128657769411590822219705277577253525413755332944435620190321706567344730276802712653294075887320649323544822808528842885574831533115586530688064308674758275525619777148448124125046247143460214788965851373286789154139577350225514897332611410753424280609894492346011306126355853086977670231573680153460310587096608194700515066981671176671929469756554962178087735270362165895704073848832969099680406985277702877397651902752847340396412934375108098125882460035913003030801017865692162525546990457580525937496374124350705382766864108498920488243565665150107793685511150756916897978860205645520541512949424803826592555195214362053277402190588511240235396563911732950093713353449809395857000512753100378707749918293932199817451218994063661217648488654324438749220289103384728110905900694384359584100032439785864320153703319286374243563603957105030682741297947319822994078586475469252820307451161321461308812798902179984463277878700365460010923220198159345887767916083068921240314352045668001134966760101737486474650620395600430775929380237467196328257951743777727273201458618555131011208019216336398312557471250929466535873481672072219246966711502349677637482509702334578632489724168457695630112244396178685701084207509056198356955152065359517706133406373782012819090613094280024455091960101887921505691984504365901599139498267641332366471764029279014877033595045678268867833959504707086219311418231170885033872033614118427625055153751507786142194182811674114063104185272038649619012816368633863699535410538669167606334823716558869957480658607543591589585864697894987317938311246240991510330634933462736222910402103703715743649307494390281984040159828937646261740907395360958878949901422322876585758433593438335868176644856005081928131899938852066198326336470948867903489238903594512047804923494182175599181260768743278471675178963895085472656181649367645857046227767016739984462823522032076379289187775877432255392058671793717852911869020061177734342078747551487491967430842437020183104114902824293074613153172409489655493587667168219977076257049066872323110689521001469999809614311120544338502345532433412431429013562732279448093777242489931013786554671971297725000933633338502319304019015840067701578867853281063138463537086472436801370111559752669185178215743465215305600763636783107680583550789199386380268699171491202755392046853421247492617631228841245927664025889839860216845984859483720377527790606134108620036974856806786411956715626813793873403598305547380321404135404389750167839073922834938437346960849996975178543116099033837777640891879883140796396833833854068565993171049643614913910421018100390085925977803495130387350423400028789474121695087967596273156786046823869868793667735999310474632234583097723578590808546176541465721523352121667832845252600251936099844094681390892259642985550150300404901636892300254980386776294431172280005751268324662455640067795294931652026836610056250033482334550620147323831642650398662466101932457935187801775736988343721986652015172136699285836070873564379293433807406672971334220010919253774598570328608314522325787288025276263295854140524788214657884264544219761321654846373324151335617939236760082942447387965200574949849413915539846612568113623265925304415814344843283166760331948189373572643632809344842369652053216773299269557587709620570009238559590559391856806721382775867867411137422284772560678345327774542554551068252127827001957480171853908139380244143831076999010899917224652399657962554116421234887870323358067827289370434741715548365994199580169470890915471608103884391099312140707336822693609029935647796480934148391006424510943006590627871934150032014439021246060109259886343633012867854704234253201397392976860440662662312170299103786991518044059781866668162244223262880223308503771626754587328326885442757768621714185462574722729078178899467817416142126284128351557255218362617525984291760211542462281875914042938995992490068262287719659507219907439727746665529455719527718964718930170654053913779555990299254782289011003877820027394227899690095223178453524553285608362451029861573398798280152687644712964411897093951704162190357402316016901654280490965068434311701565390173010266429160706448575823695665530749851120675820052455916560690316606357459715760096627371665720062302147247685621909966755493443333443900707909684764640118290757664622957541829780406958636180186674780758231697898008047549444747602210127631301125768994242856333972611368567186497607849687018497508173692789834871416460633660426186805440210782733072143345733857377197028837163509541254070702941890683250035242188627143921418047298352954173243906017455608915553019377286272232575386885471166225050507373627740915505191946134136823962774437795387945161982037558367664902491980949311550307470561351473310084700137855771403606424459580098355700308542847135615812028357309010506920349052134968151500775986134176044290656103807755835105200871442719620006664569404106321919886322819529588677485220924356001994543835834830381451736340495687686117877259545094396618485512604020987149303493609869700086010805056611583397127208057267044135785614833253329398651470149711242110307876588272700857758708018870451470936346876321860315935074198582438328477758525107852398960065373956941287131521822612157888042716052352579354780340189331883243281959248787787996431483163672246099561898733261291459409022854803656956964002243941560521937839027127319947807088745453619018855984422182693225356545657870105063319729850460968141976305563317680452386399572458654772270770460212878668987397765678973663099373079824834654034744179053727668112577222419042331791760664549652766853323887808242420948322983903573189003880864579582998934176221311671578304026953425732166449279889634681014785480369416850461622769352351910169967172603190179950571250711271418185769325572274975099465114235447697208453382323256490003624123009352799595965638487710180247745460652892526498837632305421675250590964006116316523483516651700684515331735091404769670355617556643169004391179639172506466538763604336168951179292532436112969729054820181505523794514028090303740417164911636510986802767952022313895010370797827453438775578011031472448393606565997158094929665520317452724025666094802128890416805246911027668943797787007369756661653688636778550333938179517969382720649011565119784072950631975123854783671138772449988720371470822176567301622890325331848701894343474415808079963219439361229853654304037922104516254706083117387801245626756574977267471926573599513661489146265451875539725887053050780395534097242184477917712257301944413971961483435967282052011818417237911629288841188457475995124180959401864318781847760376303383983878816723896641103550326008205506690000560128139912843585389592219973374707460577743178837584546344403201408423934704347965053333048290739236062235082780458602076442461474467779065854610108042160774801893200126479878140011832230145570443925002968887091353619634474771271742417512435371847145842482079177374723784714949648167634293636929274771258718922123551400756805043049563108958384216470381839466924228442631681629262321585280685419122393311982016315212680159671526979553974402298323636834446466829242222747615935859384398701432238476973265799350234290879759902431312212392143742193268154467438082301483484397251213369126914604082759800749280186758096273623560093050645335277759514704466628757418205618982598230906645149584316057257265005914500557066457388639414722914899009822959454987113612898489352358368624791129033533712803525133963932358982430749646473603509903066335796691116233588791087343629436448154441713307876034430038249636066456648921598459644633183072603926169445342024043662061128895199191428928976365608166174905825297324749980673708908258936554304423513393961004261629118048635860856976628652133808166794580838838899611686848616422332459389215649634110730291820058358735854184898490427973802799313548913670589877185470796070186637712855857172038795478826296014715812868467574474197012277750537817945053630570545368851783195922565612784534844297433960787511988792206866850778117245255746264776368467133439099682952545231348101905356254825943996356585527730586394114014165085599157338516747174431506932813290059756341349720401013365482123681106558929520090635893234950757042648532362049532534603745118788611109787318449204241965941188601815047314383020813176688934990384578364695210451886820727296259374155479484699185357267091595431169797664314199389949205553052958134797346504726373455097820886964509141637154386229716106136867865566415312947043609738747877063355810841521142093615150581782062068691058777985234355676799627325474155227079205072428150055593144142075310525323544291275311779873251549794326449772491963172689400358821059797546074348055039358799577111630692960504931577700921110316531772633050641293332927507203315404180534459643591339072021575735237001874632174021474579083333298978542233740085354996959776811438437779091431218814195766210356149466631226787474063571700731291022440579111088449401944996727085144630128275319916818658965674448365632537545909645346511466998726273206404306247755737243291331785000098530428572544192023807708387873141624215839814366772352753230087067891648222953301231119481561367059796111279141369796651468549851644500148316219232245527398282563366018851785329475392592002887728638230008401751702232288018462520311201600674339944612647753904603452676046094274506577903120904147630067700700569587641508181059769022928969127281733186617949675585546016496345831936376292803093924151049973339456709416170654078823549384176547606346572050381067183860647296594061400208756868995338157920382611285733794734837072826794419114147449339692550389274157333003619785791599861719927842556697207622440211551050484413119769374773887812152521031880065898424706356639071213147154954228822860809967826382845193753865946871015819792262001710747172848306717554536141359720636546244991441272581206222565472056529867542151923800122454530710561706940810640426921289443413644731057482469756103356558505656153552426694390329365080656347181413565459697930887765884127228652919593177064872812258266512727115621390823296477114546960110023431546593782166145422834444799274993707183140021706463763762153275608369208250631844699258432774356871111289475703194170741198416621732664628643697408425092184371083884766015857813411373180894638697399608196945198842633496225152351151960467086990186345664634756168983363858044459745042484629262081798838554454415285038612528863516813776866063155045587370561069196433386971990337921967092086344572208646665039121826259553626947078254140509643478105817040644836253898669812849087422480368952771497055038785841037287325472826018440495980986900120884140891220316259159496292818402268461582453041532686253379166612132840207945896352937533598760535985819705332670987349408701721093401667308253495431794707838583346212893995177437260531441300715041988859855679783382609623238854234657881810884683490031620164511585156626370292394230387888464033293020312690066911579669322171039379515801614603898015834559859949848002728431334845619218296863629878288525351371363864620984419316387107695688528473130835080711106343777297237277481345334483494887512028987234016402772441565248945953219658712503087722866475771591320415335584277519579419952507232377502733890411760927225749608001727262824377883768711107628915067879747964079704957111174612809927616834182354147719115883316466386760231613544180280918010448457059176878641862565133603804194864575564232910695767228733505666167737328777438967040372565699976470065002764584384931927905688952092197247077544081456797188406668228343221025839378539632259020688960614672236782697153916463179092444101361121565706861799923804054851299656448858773879832085238981035862371862492097626140265405751563953217641890871240251904335735202942883313290777575594877973651328628714421344213677106385723889776300876062126793382318570424249038168784164296487202266834948785239460930649707381676258346999186752238996431286158572919538993317280426401012171071876325819442182789541114022563247492132693924411026720659831445070106782615056896566765548659956321414164316553216845873549193864770757012615021491002738545882670464599688023954812343269185049218244312853434585301407080051332016782274045552160237637852571960639494194420484526173398991782911087048110267099510083016438258149033009437683128160426224155949806599709704697775067878910114256426366094734453313385962465071593218855432996365677839993834306961990859798209852187264938598199238463882265434951909651778210364018156799503881831920784335837998065702921002127059238831857532978974132063624805153632858883455086550096861405753385930329898398361035556042422141116543678232511704572451719890019176168147486608691431695077191690349889297394854478903738067628277593695002979744485184306431227636428442803967318798812533927692740555654988073612328597919046886531819232240829792866174596302922304671705006478147036319413215964741793255040966940654114132467815688442665680203330023309773585825421579580988197549148753416027219850455664283543955282466566192097396217208576408534653593753936091000823234277389311610039069882307515857784630270336021692253894388346395100729287111409028064397093764903084607174141331456624128150481858422553298731006467311744508975322846589707453210344768934058660864738446186956928506345695913432088629904752854901117662329219805619459542993749999149641579842541222145842900082975719975257035276695237327865627391747636988979624499206953513120435280358730623282514004499038692145426706831721940609278470783563135841738874644780636309319496626210533709101642605675063729438136139206129499033569712886714225316507613692387453339203324091522331158468453866726787068818178406998523767014837663758039314456309573241356426605558462957135451332993123911916494177683523957791367357840857752667833633501597620718598237480375982368243343753902939385981470608253876307217830782422418279264301591357618959945559563364348226313906213675082228840357817596892853215392530667631686385464406517647028230081322910540026955028440319106893289688016266583683000565345559638326734601868037162729241985955710319179382555777919934829545171624759471457834519681952608120722782178163143148425089302584384882577587156407821827557243192200186707851607097575584182272701527291849229317714886821895465319140078792897808635964930466240076575540420403587357208438392844856857999520436729259767503732588751603095967510149962912517148550305548375936279176670112275434183954588937692606452769974512400079281574541311845881764134050883510036174947855458267814009236410707588168978121981377235233727139801074001963304173227074993944720398224791875742700649238498757532865288234786625871129641034981924951286180476209653719261327422657633752836714523251469521791408231074739073768252650529643194233361979001542280011928813578599591725445842556244458621068859405417049505147254939053553924218466813002851669962607527465771259237095109254803009172559430789061775526362479060822197914409944887968746657373172007275184468870111727903884152911482857084688643479078630289451230869657802953379766021275474308854448332656775909958039084045678036600680655108822717881707290136738943290023624431838033475653709959016772700909361825945325655249876219802498083427262923325262765417954457775500876509889529133514340873706768549173090506586084114050017542184614169190251524708218744528188572632060371361683781616221745928939980091506311444805370399131445057467783581022173557321336526143845373950399974211601391036148617572756648697721509518841908219623916188358025723521013866508045865248149940014922026865178416480662865884053086119749103750557464226535657299010084122777536408593194074221948101930205180404340231665908022197002588844214916183080537429473245357768441390161663517717977788754913723826577368990577999641516368741634468752708170366897047457891317402189585889004333676091614243706838120024666029736329126034574701628576786407269294678080103302725407504595302119070953480825542763995748445314795558793732262272801420096063799539595117435990053459292084891417299907493336270422469160775585651420819442761503191580285205737295358555357176504393791820765103001382686016217295334032249178953006781317442015785864559552484928829461878990130311291253432416053063086186635596628071380194176754258984716396022576990753957368537078836978356468802895153286142004794288004581403138773190715859737858182447930593077525622655605977550310719333345391001404112600001920869714270597801322086704042243974390684842371375351912973993709675811750038859303248857854158630141197319884095875290780705350461309102769232074630929668233785754880655654256286206252187424008100835206347377023472146024368676332988956729992486362212393893939480386849667308129066491833632163293049218268063514500766017492307608767705927874465066966697494296194095551460865968132780930854718670083499228549902117895049521201422987422672371373491869425167604330794099647771462769342400176123359388593950429539506024184005824020082579321578340826911865303843554678060052809612463813496223011581104204591674648055554084985200111721547774181156418599854512050493528875799799255285560658545152988263614859517587505909580845374010036869145693857376565371719390150054745909953027473673283307713681260904110661005840439866738690001063042924287469700241986191641232578718537851164789480506370589786737629145292337380049574441576621265388714532914203218201080170877922748779447174555054796174168886978236876030272225685948468986407331636962643740274510403979664993019358147153848100921699996749209409134931490971513345278141999151372665894694083102060117608014421168370184355245643066297940852807949092010507924279104343476813612693043631364036873044550580755920374317560358194257345642402713128809399086579381398513730667543150706694667143399732265027997783190415488918915649355961901606239944836021990463429207606109560767200796089168193035850733160088221689885413878331831932471487018510591032967498827752149300926959201275862084774444203919642978457715050335939612637205784655106675820664987073073296497613999556612762893863989210719976752897989879560109059364081217208148303299825362294064138627666118466212416932912316613274239716291039766039700496211614804272943257032270715036488445018721354300973497032018354489140893457685284581094388734883802774678046804843773321803348065197748368899087409357142717912977692725361015089789019208132987000657184791871323990749256890697385636835057523392148272282150742424452064633740350695719336818146117483363833020399440033791790837563569364741893482121405041914190484568264600703285348043241223205674301107134807805155198261384811427084337964056266581414633040165139200185888428525586182260330215733543237472276119114209386003627196681589643457010371811636177541662188076840295348679655677988717215715383105015092762190705504070063876766970911374885257793944541626959144527707725666544855447815961834036134527985468221954448942226288681891106929721335373677517316230685755487585050347481031560735578330565499803636096932370266542486994148735952719631891959992204238541408644183164076792402524912056751409796578486146256393436924574164359417470902034213225143475906764627836352785632368774120293492247132969439929974520423155342839791178224900141772583136349956041987320197859393837466542176787608030099509725338468221831259918603429193892018373441264035873029550664628933516075290508534439973440252680737452189202821394061571333562515860843745413803213408681651801259873301986369438124158960146998112260801258405275540557881484061950498639557328451530128480448045010572269749645795151772057425345486326102767573585317602196232248254579793473561981278839179097186999782570324083630378953101032682735660013051515896677797985515602412107101339045509728352894916980960407319496856407775895989928612230027665785265030364627412478642733942516757701641986178119284369629698798326109332905437642711925781207047773366258520967840209250131171103676286958116013948786341715150102571331928106573996949948364711224468751299413975853146957971267218525543892426659434826648996299151406828817549296185574984447652053467463656518088485263616063666854197295115652684931727057359162753356751039310355599149684565221346968950609181705633860136439503525665467831008706259068097251486328329506255368776646741097634806477074106478577139327809986819218454270152543145031320362189336182860920669891206349033374327090018766717194183753289207339585413891518369397945374652994912813743955631624749673564191116133782426698865675809844853498621963036822072751941384419566162839820736309638522563718181852167245617054170323004173488821182596226022597246379751049003796017727947642917149258589133897149380869739823991499072344570325251226874300185329898992095758352748167191218006870443367328833902852353085350725859948606860730384856069581990742237195837845628211827755459921987358376339279661229104611596151158072179548649832518960819936616563331811251813379095861202110007780887566201913377587700483413994949083355093565661369895862069003032173300620293945546117477998278110622840790240891093194654770480196720711964731419272458924147536960121832359227771451579898470728608681411434371215870874324917099468716201613594991864826563016104152178687435146786142080930431793490288641070806601338117377935095325954645191835413118192996843438137220611254940299400831276674180362487490395052767806635936179470619858006487720393948537662977582771349611908196697312881521848601879524327041284285506897918046593136519662398025445866063922295547447161180740094261650136422710519562063461773315875424094046087386621147535872871906457808465698226828974842030526630348694661315594345288306165522049472384632861093865344468889260256514957384565731884205526208814035282847017460416321683195532392026018742374140330868245507551148113622610363469253196777228431942683937975950206311622871127088895275105070031053254616060842138890810884855893447768447973278692202380129019585768739833678862838057772752716213208276763723224894666532144409591253341282624649672305868624329309868354794530243445081541977092635080441473253903069932331542464535503783937594386053926836790349366386056999603568087931071923206089522144127962554709966618581580579404971730970856422328578018211534123939258453853743580232035541562381051698140304913054457934075487631931296299741306091567525315521472575251334877249001503116284324628493375830852888445740784308233320214180186194024261918534137127816967523129052938218344480721290658288796814848675666441704596709840408660982951001827185040389549792104854373128481343483222324707120539263465921674848574796476958675102364930034929986898198646186911692280814293084589015109020679185595594652913734249818021596521829370668261296430942608325605219497310908107207811897252083005954931309515912607448723485171236495017788649561683667725571379160994030670446890515843167272396179378566323753646507427039163219751472178906491777618731220877432843675456173509041184095570168533378534377440493616604332161470744713845707082783563443070945571042662796451690990668047400586411016524409420476219066482400533010259248381581082991202161314509450049498437542219070070916133321008399743993548082145586114528281868279782223952900083867562515679615097060079685826636002302502800716743913821741542647119292147925925609540694666914473784235169663020959315223942184170061303493336410811432074239786445535623245664896712531730422649356760309714829095069291072828102623377215832234593673126292271796476702225188828019874494305611494541252854228135224598024880684940010822336817367570462588157917563971522011925825703364133161128337526347897472776261670073402981787671558572545290855160311623971916453485659117689466273203913647299340168491108890528643250876823171778395991866338739665060346803045315162145356347952804088522299143246933938302076899541864221829623131741039644876996526104691244538912148778381264039443640012612577034723884841830131488107095426620721719066590455112247549244112783185215646757152812855691930774601612143522952605586705464247082464016650905637939379730241220655886020759473434891578885220039454097423443425221002650307506230868241305317979391709627051460159263498631474269146121185467363014394284558187324554877316835205736814552591703624862197818200526451376568632056871897154695360112408596575976983155092734237517430656965871370186198535320181869314654234694679043620649381414202478346378022826878890980807002051511707678877745518371101410259699559969761799209262564435000244604796086986384975047535761796625631904818831519841530512611433578717745555170591336808081240695652718447986582710800932531512459402371253902290986220689811297859982516733032659506013389350054216742313275818066408924647832174296581029251841080613238786920440858291320239285817775664284827565920053760383506382675522824640048779406782720820536196925442323203402018338716822607167285736565151405047561220694926803188819399663386289368425705610961316471165202512511917883224670932213609761590108068307196964555077918230396511828200778418217363289457164848172593958608612098398679650623054763961754941967556224275033078250986667951163618546457569208772684151905044686800806962748935528066368135452994047120359490490883885752974461240801242670874451845869063924525208360257449166223645067034905320596792294750159236872396507446044663720775997233691166695408917711183656553452949183572561495461661744604308057203584994317141525102968756326187184713626084584366583576534437432111613485966017812724684908967144461559477978704839925529115793275227618576913475371947517766836300483952412837305356324780044555623044139375572638221813257556493151743246658229431634610541984157238935536347316493053913287021704063180442984383757690056382720098533835418777607424963775925354682697981861995411098047201833718766021822188219275622776218742756487884377924968972381787501086697345653788438160443941265211230310458933841242405703548738214893617234298095590299923772917248799655702716001220480837422402988617717919289852182754892007337767287686262648796867956140821036821346055833994474292003082024318372519717182167609294883397993873433448725932727394462345167216608532002313645119286558173161857005408698105566230083794038729145110689629870300464191017011866048713398636909255659884264299623603193135171980788045587678319899445833463602767710278387497357623146605451884608339926155857660600549125998131073526759653992666250398958404384168027692079497853723193108776145954427815610371860662119553368117195567976795959112384380063411519476522301096415302082412693694064607551606399131793810517513619019880539302688202653329218576918550827471878558788367305930889641054549811999482854448847279647755969565253480759242482112050107948369879596672089942181966799529168636257143920157895222550176626522292906773483217899679980529712995602622144141518099671978352446821768985748597537154026170822038907866039276342831531818922920227248958893654566936653901306922183788203183133910706513546574518240092887735835852532473979956115911942782205551043319556594794008976249679029578150991248073732184188046375456680723985018478730602475872618461378816593641037843402883723916170557415118792264279718541403747088137367768864382185472783227554972386302058309625232384924048141229079172266293961332752359769450443561123254110920855584411807437088456157493932678798619088815970486374215746259256673302251458680433758849425481037171936171581162115562182979712830420651382451138793349366836833117413960084712943709424095494537090848515430067378814248301817193115279328107860793687516200451904050204684817112511423845776960772948457398975480202193248921404395589395677897616482230013950449472399542828387922632742208701708559457518520012100334066612288921085938556208813834712967519303847668850736122429851668082359410199712566196691980015430047113024830738538416990401914797077102180870375703597499632253229029504228077349548379371378503570159571550299593203613881168780146546808266146274162597659770904224386544661569105543452480647629220107317769444788299903259279600550161731367250384921930629669645123978519173982981503138271485277943462126791694630794088908217255234563368837913487937355881820817577513525266425226900434587250401246363949500739860698473973593755432069300545993519483281021990771684375834409298545612292760212123553089386549835765355206085670968312132415225396605406441570737750476016180769975733161757904297586265491217245993742249989523669968361119483527316660368835211228512574564536618812699346388536602573397641215981547324159357078161282327249098075614573680577046226854151837662696899314540127007373654219674860819968234870558453819190575026994914786767306692547343488031514109916093957096073025588503040607308620818148143568775143358945145934583015382306567725717051270709520314974166622698305295531895511577231030411021306606274364128432803421583254507339833489976870224531148318716514236369254517654845151618656738828822460002802576597467884022327226050811833685895571637833845895784507459358753433374168575260621366364745090869458060918326026529462821566025666928819975262622946594592945483264389090597095947459667150901466465683580375386082467121573839809986443725146969113255322620537611723426410648979209634056819466957961540326777785766416646693128483210543037928849120644766769673524047129904274519315557075645385577550928168811776673333327090578670950444742726206792743252894618283179587825324951300756856466130836471129689463923117585631719203937527597168617862948750435882679192784747638819013789591319068209179805364424982034693736219880857103761020771144576020731235623545168964087284759329186745073189551825800845085582154187910856069023791979225343644683482716022150464089444749873285835464262540669887475246316801424727811681185830869133437380122185976946138917333152696479575928757599286959852595202264104433969732762626395251763796143124334509064616965670357471165844266729700741403304303269838781557673883688103999151833498400930702357330489738362252974950392134551741201124514376464883432027497879432869745518891418385914610756954942895030631933550451201023070052985690706024436182324611352609061017788306800456736065476375607983323778518868011490734470694579922075384772288407785355015716590827298381236803534278348190343833181327479270548988066349197992256289877761564059288387509819158657033229092975674928284623773632809608517192051936038040823855696396542169812418184856941931500654460402936530272069425833195245175904108422991904563451872115295632427526220928012264215228449137523093605911606846308700926015998384765227516972390055903344712906290649468830329981909582068973832072965792390845248306026956468750739301764030950829467538118853920266864278745182603883177554915143725001679227510354032980384813885936140780398008902934274206408282142334107682970065317277550286247512566304218876545077076073633584674718183821686188307334323271164388153451192865062791711653215577609512024885061514972304710796903610340802763948129547393718052600248671207989715974376976842833105841711945081407731412575138563042590576726363854111706640795540843977390593887824308241218471011206120863049570333977968767145010910521079817713556121633861314400606302133425537055422387602899603972222942227294773548176461917513435240928861983416379190771271637477782420988218049813240689137317158540510513167868457911426950690315339145956692952042359277197485665001233542666014551875932814365493946527379666156920530187601329420812744231423499191891547453064039588450139385696320311941681969344016073771946131929098608304988641495521608627056931613749663383230118088999563562270315808273846900648619759028941645120200554384467639008849559130859710635919979031462676586209741711506035544550995720132588836339637151039802317562442200488408395190528725570472717080756093223020894661443379334487405805833785173167934517934808847644433245498897281446243281257880433923973145367901641509155482842250229681372679402934363099120861457171001617484231698882366200921535165392185753387544879441386933442426176647090722382125965617012415475923988745458547006141564156843107435417288951530509469103139779126797453996973944833708216343841670462079995281076205768509373059160543337546768307833179503767989850924897932694616025584164043313204157572798627911874858491081962839515556548495766662255688489205934898303921361929413134848730008564880128761393455627918328476951820517857109409659874951324593630855811986871878437622577537249257669863380493884210536974600560897930598746088782607559958609987622348810070524671131610209751801012158838284476848559209729977580692272656302512110660638307064869853183485151936891506399808664860126945249705031453820362024080340696280478512883550534189169018170662929628394273194999156589885774064286664363063211351185810205907951648039857831770444531169238886512726237020796745479451193008679383545993583806571339987162229146900106869792922123395148941917923726057348156095473702859049932316146353399897739709430639226019263910650811782750670150133640342020649244493841960060842760631532111935347897091125781185536423917448553912806973277198778669144043581739474914544718799217471166964221246086968581834475674044659137205381459120918844442235612519955252414522030395003110188641943988105454351177631033319460983950511799465381463099046110097297179979107221989955699779756903920134490947292234846190146195717385138890997287015526168020883587245853947675279080544597100457902009488719536489178349702457915262356418641114749362680030358638107406838658176059632841504420924489017073062244566408054392855976572056850961411266215792277882729082015053743642612190235959764096981873594378499574351306633458553061501778056950071511791283877256290594211261112246964550876601599531561974043150569524427703347528855977446068575311894296039305117349257025962538077047512025002736137269446590172708549839880611929210986093602136642794751317765566580260498684875551457203304042029096718733343021744778241713392976992757454007559566014601903174734950781465448035299887002258707779183602192890245150688809752058413694468364799651844143695727950502432511582333471999161109335719434493507852786263648209276890652460598700112393916999547412180842298822610981326750056532472654712834273174811301232156087400334932764643387409795583861591973006591435429148538368186478281216522667652657992008274536072586712191360209636895077172029051380842466763437781254434253328313935602915464442689870146743326529754212549322935931307961623328121692752696627233943381718034170718144206266680793635396747006663645678289554986496997764386603815815179631287912141554385560133942011515337578716703255690608814531444079192915140478369365990864065490150007054757323937130041637943653538852400575687074075481216228802953971072883544797288408528030803571017530923065572145947117892303102522243583252576782652090728148927702472988132344508110255468661832206004574659241826001638894007333598516325472207443685015252852718982682798441461151071141344023685788638737099298333844302043788365550037230214956627532318360662732189376518567968138709068305937004320906398460214819381884688665077823836130449834781197332724122004580473538280300395327158624247792389586036541739965172660306413452762438945730583292856999186343772164601773851573850458050490201154024391995520687223044836805756763443228772244698924226490362230835270328730569607215318817014917583768576242525866098251082254127494464864561561503183836608452748449354477808820090700521109821125537780446665078287789620874375778333766668569497452775680212972036412987039656646617779865387436284757830405342782150639566172281849229729020749625745814705201039297579155662383268002261639342302757426965731817088207035688650067065012268150644389638315660752666673495436011081613441826135469244723812647358529964395225032325635293672064032046940985816564630892560822877562404740375441224583224020778550406174918938606035670810462587652879826922803444833553245625055515011682358325096770225406624625298702203405277528469546016961686938810141635786979672670412645669559892027175716024191931864229357062174312528567561845454940436302514500815099110610683036581799318182606249917520608561064075205022452548216696080933959367669022293185909898149815559388526432124695415211024968436430958339366222514397675501734256108729219161359144039237416194043818075827138532555106601063800623850270944863178456478790836151225289178872068647400104088109734059308267839908084719342788873008927890574155147653903431653356987567570725404163230602070664042572916544370888045661822785256203349573794403701586493830679208093424280654548195253426481391607822789210083237142391453480496760190224677405194972127270992549483261360306184284187298472525813152483965636920003938940069707915942211991894840079653612375662570579754573339521109372885385510599930369835057131220932815473150537568871694370841201859549486131930314589318208989192064031239857585390028800464423798996931209358989825347241838899366006844665076978553391645250840461610896759151638384589602367645567197068472961255042956504016080252089539757959634554446407249751897293909350540863414792189466466580781762693868180066273203406372689927395765067710706871542534524631437438679698481055786725472300480406890202156636802895299904041983792299000133919671743076968700442198483584776321934641870683839533224986311293852893392241531080516668386323803525614021375649782476708082869494051187768588553342418557257566606014845254474727097727101304907882070419738197506120749935450550648424973732611815508232675953805157513067278116444324672498532006341972688229907382289770926711776419777180127208614510635256928054647692175487451071357809514643009515416871582916335541983350627342473038763136852321411861930335580736130856616371167619424062763413913201494282173863795122472853861522316366819835695953497857368070562311746556254901741457513086026972998802645978336330255473604294634472638550322315985063599921054491447905263047433281772444961031285277083290677985972000608620827988319152069548031817584813397297149474208624655254631454999463866536276280236260010155611625991040692478375765579182474225430654607797716685453006073024482093129075959796467982619842493359187680057915308857162068396726951028168660403956562403176133684115032026891203462203241569113366601518099152761294375522501478012561688759173351153895399176875670163939526117353165537822304430763771505344189632457710320526569562671635395798276836647488438880216703345967881244148250637471848020233386751381925650620587872492857208968131038596972580727171811384949409804013247848371574229337464989132026063192780003228227150516585030511792820828245946055250175627544004016608490135383985088697680054667961527550586450649163947955251783489732102281414430989407019839818701560150544647311208508234153610105003621801986833228747080572915829412354044356477587925737447136277080684704445182870751201186846432090243584945594061506916082527536985542027824882556671572354452540231066872961912445940318067079539063801204121281030712076280707779051775694425933483974942419274143366642232986102334872154061966626336946179263649374742405571324649264153149867235061199810242931990581409022877799553170146274635569812465592469272903162421452879860545167795469578600781179050703902439922480924080008863110423742365230785827771668268645317723543640160942377029965096829530374158660955886836478588474778051372879404415964460711733486271352170678933378228550981260240484073845644791469083926723493237927857579756509504403775728548797738397421450137989426934961667501616008278769042322448210047264157593548215752743861879848069568527205223070159483196527591893168573336470097701679493313502266495508876407386266285824396855984346313019065936446351712544427566766079340807948591552974876467109073708843775408577821682693876371836457931592926255566024427338324712565323529478201416967230957743622552047732558179010639907572900631070992879720639330908970489369664674132886511774521952572525272617587467331687702676172423619032830793369765047633099245466754006577897883977965777157552977157939444573029968234108932043524773545455684410689364548667229601105760473625859720725795683862681213195135896305659726799982095859674382944164214361718536675526795103604841620309453885721983351289542291671891751684601664723466669653085005855017875252172684037521996333383945597950685233401278134923900122416656598114996104166899939199292972382494879526731120704342515994199231080747570686270382406928989983430910891437258822818791476522940349975263432584432952408727259385921829865389788880158528942938501383494718101122409932661470486595644727390751832619557728901697231813370601441899774520188586138866117540167543857699142368312175234259933862123973593136945002312714130870139805314757549598834027209655047716058716655740223241028889216105226211152857575935093855289852371902882227576898283164679717683415448643865826062833578850346032835201263737569715253615725470184224922875676724889132170819845621328606812083282964876827451066049384924489585138498898551258693250396467513454062438010719482282763260546997378585728479277353005895719682590074433465462954289991961231944724259676377986963791286440036137728632125605633191697775675474969056196303809266370369417116690407557597982184160635137031804427025409442639446042939283066470569403096344592785874006233026031661851790433586158922300330267267454475264248712247304129238874434694936437850481860280511398276751978378528381225629565484953423123837655959462156901130160689697983092044034653524329896585681279953635158201701494272738564110960083545916344679524703558219501391280857908599585100510008562969117442142614408515925610750875171231953773919103633755528706454344128463091150238425899569552455204901533732274292045055006192341467864796359080974674842543910249807093750630984472926997208057069607731107584365011040071774995794485290010554120638030943618814736440911379386575998953037606187432440709360409713398251012959915247315028224078733579101980588984145098773775321178489946557521188740005241856288426872393425731860978320104606535680506833826430448341309549755107332188354997389323480849451178603401430228558181898700076732836198956351235051229095203215013323680054151281293129491816639773901254321940804392650493917483804319192660258532812535286039739585164009028043030637186910060334336629739796178202544288893865549505115940137735429867539489170033771545796901147509228407297223169530137565284582410995216251268347866155866684390114054484828326866671655262922465469739979617556300418899081255982792488512988880358960286795173646247742923421324223597810245334745918219380194038077939102562631692695084595819488291951485234186146716011088669569706511104130893995630035778264432378953332408729866266434833374236283393043723944236584732270025987276603128369662043194391416316298012941225614458766667865469706787183418313816232733707960255489667443270105482808870235362951189810608601060069301509463412943202792917193306906125429859178791189459200393389559918583482555154194662591626665208646292004429695865868842089485527298063738120707758533656637930123409839336424363668489250504111357263129076279437218100346674924091961112767272990408319107319676529370327192633469046599888468960479368280179653756843756976813374938649150325173265251327001886139307454645307441790178155888456130254561865248276788129194729609771690528678287838997988623181575606345072657868821363688121205728309430163265197427571746172843336579889572046080762297991607273680593712854270628079687455209007589026739583205411419668193327794752107113693022852598490546408127541815736172694702967554899814400729162176716566076762953083273157916714213265013870679978929832453907957369584392278074619290731217652694853406402704668631779582717463775827976134090497136996492144104883018694316663065573132018397825837958132499463639927067670300477478969395128476789741157171343833583518632104740783524675554581307158069343175786856106825228260590172022486751785050626913156324016655096600320072318759867829074482667902893982417611812771489961909430127643576027228718527142680588602901427816999444572061241941100623204949620175970324833533942867710871593686349437335045428987942737248624396035435549925916279963912822932422926514222965969122579857818983068707119503601792994550990634057897805280534906701401890955131820395234105220954207618721208521397095812793072210912895171532776217021443422680786852416611473335692986413104993810320317841138921601243259746406258564260359643307880819353362409032009708721783870366359977758201881211676807537622314711144240276693781316009770425773906992587164984765251507167084285838030977585755355073092247231544098585692155628613820520461970886651756605885210471933886591887735217842717946046861095557541794355853630853461545845860358963612055629319860868715989975620779426764613352371164703756564391672679789531410290467009836410707353512473512288442427773575817508043243255202769736046543794612676004264095837565957061910066621538263157132755527948453706028677046771594263382893503168625575666260960814533631315983825450782317255724365146440786818043030240424991935232641531079335901869715031691423098833431304483718670373320029160522769206115206755860584473613585975497874105467294816820589781170101962814112164885016345298735310498425402774900793020859817091693585582308761234443937571273722852669344233155204512062894815220710861576939400018189527013760934141071204379600464820109941368721978406496676442889202279218165822109885364753074023337641974428443792049146851788391266596851714160358479028611208776656830281423141516690390224615098071912255681090878216648790932053716440654131467655970027765967854956120912338626546353885891546393988358533212035443312913799584301176039883371211474814918192793179792258345526199173132145110452216770178871281305879546443916816888679645741064436811855108073557032075910672463882254727265359197261892805489004227365904216013455025633638840184274865233784358052467503168421825455450669513216395244696309534337412867292760479401722212924081851025953363923686381983132569868570866652653183176107672869760396090833583873433867709368717312589559362444285472672742667741395177023676059914246159019476865599563369123602703042096000155062563138257123282584271041820396349152483408332285168342432373368835792273439365654253651881204622653716115474605342565123126745126804967137994064473519966888054985274818794904245839915533966274683926154758660324158253751284938966595808316019954805072852659361589156205201645679723411973262390225980048708095355223556147106642014445170920821233434100124633598028003742850803023707080985956839211533411930072004388219439561682073729916567625364819391543391311931131534903919695036702214898753660206313709172651517800202780568182067419862879365075418228719353513468924237948174402282319164360523667117643920324885044154047294886831742262512021793707312437298508743936689288563303296902433065879439490990121555873631094068140610051774737855998868797128574837991046114854130359746779434560775738396654460396709174522779156801825919187556550809440294254381511123044943988894288392997871796128081341931395874606519923227359851843225244960164203605115135671011376480442141417600190788594826267189610018398476860711954608770895013287208763452392542683355179839926692034964797760243088279664306378206453218397920953511628124551106926822585381398048726829329248342911461324155532751827099839892648181474289716437749123445461022712731992642004740086896282786231251192840167047402476477554998027847769031237083091319987272006830569833881003529466737593950665998368240041032500109814680350226831838715812023826864869014333938466272687613522698026476252229397516105446768514088937181773644646603131981429074537270645262980896994915798672719279047448619141604858860239463581633402487237820559192678071254224506454516765277160378085380866053311539628699978560365802698170665519122647333627962320874736335822783843979990379887621769476087541071597140525142142151582581951061846924655886039917557748878717458492814423590061943238573009947070937632383722340171957388874715739150406371835523306143805818894783331446900618937351521285942634994587522282358805269381364441526289466936975420486789815487722820665382791948691814459376237692077596431544794690239571502436010672537411023161234737744263621692879842091016904932801731636232106050891935869885916651163417514124115055346221022482719328742693280590980132774805141761993383001536761502872277150277801681949142716368108646668615013228837166828623550465326118064128005210355954005224582291211150344959477623565135034496599510652572457147080881760512327502620288189913560564542632055997142355444122142024238213415650350332173040675490037856353627003438195486276854711507434334107206313701090366797416006287537056543270397161735373157948366836834371381550168980985656208804144769781238368551971024101574396526234920389026313389478356620336215238146958279488458921290513543007578948142312424858960375046924338414262720398928448647146618079560535319433631571326255373501941629796877891805041502744510127807243347691528321918380234110328312639176650804456480731677442069740632104391962082400745836690959466152127912946713604162152377161477130200889459400977065521535335263805089985323003047235791296148619073674842131319864107264694879535782713270906311685407435448448997279209059641809717174779140555046630567821145225041570350045189378718638955322610760870027140347879542632645679039731515486162238088278418410589846646494492535606074625550626438802576269225731132161679717220812128960529132508004858817936158632333581944779385577358051636660026046585969614497847572097544744691699007841231364729195278766831264816636022613768462526727953473247891352915633480606011512778007488560950632796247796467306210437368563706055884897616124946162104768066794780582923256284276973231738777687521664508629844898816613294010216635251782788563506127695095128288872568147871527603040023597944015888555561730867510657004262750709956942028742590906841950288514677862085490669043256752493785596387735090408110645839885956443095242891186047738815327875879503074360221866758920840116447213430975890086768153114443346698472812972836606789539977296221678868377245706946278061307740311864489856047420324481672333296747706481244823250305039340206411826166733956928766345360235532966966544060712334070918364282290791373468688088798886630126735477494612687113292892663998457834126997537207795046471384358972063005908504421439019876095509124356316276668364093219714926137002036778888000221358321713418981256264211342150501563121192243385180871631457307208461914688865527085802056276368594627781023941645366782860387371596485476773602870742839530605495180456752613011813933210782741194046503881532451014251639163534485851703924832909231071019187096281787131591444471632376755092016302777611638649419819056698646658321391825666849688791959565513468245403916914982933773628530211785976702844496232364863840668042463973761660085579504250431702683536107860540337779028773326993950947686724226083416595434623083548105220065191305388810888566297161938722747771938920062805382489074426539867918414391694591608575789904013952582667324859085523102794929819540411979626759753913096740895225725014994401367663605133091464881329854116493662075332191609145971823247866428965539843885955061986706328910629949822838064913303426720925889299927382011740031936198940530114578484545546236292186313096963188036482001360050759476833266990500408506577377071197994709546111360119806541568198166636485553820700554029189195860558497667198959653447896500428466652964429569744957394186534688068178302091443163947235162298493325211688960579689022448574292093325326140443764319450327281363413098420174226572498440519894703989097775840469391386824222279175293507247992914525837428047752169569375068718518371582568423343185298040101473697204863136088522107654451874904691842878198828462517487636330950637351687966429643431780333986355774145150832317600022626203722655531550827939254953870278247124473075101073832707395540093166917344683383164380428508395317276886105879407916387188357415844732080861076903926676874578611050682717442766929167744625620101636565236261229412269742463965961168768633016032695159576585669243281469964991654841103276542865794728654717269219857233260429632029512175369357778617557853069798777320603742927163812148050545344312003651062753852709984864593232282211101082256428213656658554955776733842379566564678193442817091524252231752917123142672844539251829325760569713286857951242157841779847098187400289610029685814959947788023823932161781814774964552654416417920646405194329476064868117180315988560699611901512752540558821300026405671423150004339143986699074694795923191608869761809722196234973900809052587362964120364824281905162459099478916951416317456150710002724098838404794576717388340586980835292860943176719603356099504786368926161139568240537484183136268244281928393643583515595584712067736944000797560805535812570414951902204925506506904729819390616246178967878166457561961368904676830415024901725009338170442658532670478926407190297033917550342907352984428770211037947563006293721428633460983301633376160619228529068120963132402886805478703581179774504561011054030715871754508310487387554306382335316537359089045393657518693508430954288760022274004433319570652947280220215385304029080056389121077000183146709345770747814858105992730842714404349155177036716468460406350799416829946483528864122043750703714765643479618946811375561857196959848414537044285111300957156387995325675390015415448301807487068504970924809089369427758961323905741781577937582246994569678504052005281533693525249771782345366727380398100045618437857442041381807309526700139542552650997064959976152040163814404745961670795684779385441262843869045402562501570898031198161278155248647475291154547157276496030554835867703506761313990486002599490697660373283287724454709108965160794372617394211128971899387508840121538144145400617410104702461111335393429796720310432721512437950473752136406455754761221509457130393646534398012493892335791288936395480928117800171237918256233034310540710243628987687075050601957707344697058548023612440071095468759723148789722760900467507873524517591094983622588849629524829690263032547625745222661028365725214734218211197654014557802677749076678693725822446220171577801557328597001593489870851980013387551580796818216971613769708154468331517786397068353770564462479194082499303127286295706099566856410340584350567976616716015617186667603276879676257409439710180450833116347577494731138668314267025519924604711527310126711657776975341116796738772510021474416599199793247744038150482894444205821267439335342767104964639883918669951866944578715490320410715303988531515349827888911640644781735534737569033245908150165560997334417181518607267043960357023603726099964067373120612262355557646047763200184833647830002226556994608302344013941669576335227586044918718445524101208886788192637590299664378110869727106750276186194387256657782960851256515473265744215391353269466887421751377464139905076201246898754919123281349183887691509636050831039504041840767612455880087926106059092677793267402672730875555350483365975849796936527486772992388952706279468431091014139324349540187215826965969465081782033735223288640787509109582193395460017179511515170398150561101759444324095685118460396822730810915772815336146543537236190601388438163291098069984824927318924407754486187296536110951054284403750028238807724905680685869158460424420257499194750662344323130738248667952499657814633177006858501048853825763847727832602736524352296540323348867204489597513388880885221771453044622743001677809822146501024684972501648102218265000681236449569235177636525677283647021667231317145162217729427407680617550388484075697624242006070572853625332735383780463981269460526914498291732522808963765732977906914084604812667477732742350827530745125725577962085781388225656146054806482221486167535229942196734288901284646625921214274415932675008093371158160787069807519651365479879010870817529881311135409941766613943479447593856774726281269437752692741069986139406432152509164642854670420446487638517134447688657882114505385333831713969343185849382398676125770311664769770435436415380963873655584086973604328285764824492276967432928590423817641206312335480937819966793828952124531617496046633753637355288425675321220925218019871049878805966928152593425819565843754667113650225061830772216710287783742911801811297780058598544866967419619430185700489802329814869972395304692662483599374950521997183437114252924065110168424954061155077746748993121186588518395751703030803712475615956264270541602760684301719395287647675089943233673975972865970047203659246040771993657167516303844357469101300475902703073709790508560465471525790627445034795509485384229478069369983347446910317061000008808436222630147423650516286997117942923063552977847089440375849072676397328004006628790060772392434932714531864127293571414824655245741662906235468898462059982979054696433750121620164157046791660465021823408316267368121218845553553114973008987198359163554910083205597841153819026945346205371694775190190896021163048283122445098965886366794025681437978995312775771355059573970405298529344707590018367656820774927760655812847012391762229931180192020614465646700658979824599875365734190725049269828267218581113445089470770024767360847906229066772138613453188260840934003785399271432939741846049015607643948007837825307687253483903101998523248794679733054771339324263435845862745018799692381836834724391724645782726164254731291702217194803842421671144416792089690454606482167523146578090858289400216021219496352085594490019590180866007920008256550392819235514401327530242377719950115991566847154386005822752366513880391643760514760999016868300664742848518832320443820102466166881517895792145330909759476562078446027833208797264265927266444043240245001357471824774077501920898164863805262935156808698193281297298315215620889989047778037053777388240417907580049984590715395259547863065792047689222545702768048577681376279344681700124138626484179681759040486955229800446039578230971459537382723561528071512670190201864305319970005546614832363015811310693632699473753386319564774518451397361472779126518301393560695726939314653395549093319445485906394026809293945131351723218861070380814355228059241405791057642389380893308436022079701037312178291059336309492830710402973332659359747347392790906575883288112165040960835325618993520499898831254713095951039146277595643540312053493326443372221741075682268742377255730831056255897958793577178391688982958458098503124692644327074592008800126827384334370596449402267361349396707357978076496845370728937462841702401842048950751939748385020093067260784471724396089808898730287939545780879858896137144717016671984455712930200890871459265525432445724986277006399626064998718864212996847088249514362732736529217864740180647844482611294640494650207878106370419984892063994204405016818036362361330301361160731443512740588574878125158678858592699374261385099228226789780801673024051257667265155256137871105086299661869078871429780453411477619091221459214886626443245293713536411754071797574384026350632244699571235876506600438071853151348684404173097362509863146628661002595285476704784584437477307909135276156056054853330603733516714326926303923980494744487485760426329804884104841904536189500612496592681640768628564374051286357801917558747638824046857043376662566664064297703326540482208017736158818293933673849261167781298433960251637185474935608316423171856433211018169404717723162186809475222603932136722322547404061676732785121332872066413912895281256875013448888560647419968100157519996392346291401693953349663166972660109015613002794484614651385094345798779256344361855742648442573505339398505598974940885661907194114588540713012697816323768082780542661474986662856280366453350142980843452248297455059145878356678987674172119558525596774284284495786666818631600709526464169989824342421799465013045673878664070663879608829800009843009202067898529181842172915515554930617238922652626117205142708726956160680595189838585379335675136031423742003779722917366600267878211069628407249574008921610422819360647552441194771955071929570048104339375119711385656466167314491698285654332050810411443157299948665823677111665384520207369746156731493138044406565197331346513160332459657005016067374749563394316911256608880191030478385777846214704270341609588100994571837092389749566233170829716206012929838570655913010612593548455570765025253916402384963239143856958373936747416656684639969486982556454666525508226221393516438107794168105140988650998363362643353446655627847456783485064234879595227963125457841124924842816735953776238826344845901465761331397287616234376697353848542045900578770825401202900115702431732231680141306761813452321684531064952643370068799464611224340799881803528729647179942353435789074822284585538743287639277984023294046579043849317330761256319590959757603353193130429800028019767004385594811073376895571038363876149253111375778534648351639415709041713538311989375910891839394403888767799951620574543175908657652092569902356221171110393990362009288186334767960335161722408190148808467576356307958419669184195916121409509338503099756513952361231625072868706332562426429482212846081733854803384112981343196082694043211128681666715591898202842197534858792564370406949951780364116942541314059464890377195486009212264911751484885543407691804175228083884251308278157721696013007428303609507666767736504305385640073977170789173257353909363825413772083106951318727391233876420945957544534829272458060942233769289258470660239973279572701092972811092327462541258410173750606723060117047587233147423859749620133825177814498968657911937797797344918111905043368342826737886450721237404660823140113387075680899533131700944872841233136049354560598511433537295071015739028436479635317782302033605576878509995244267850492227433123749876612752716932274787253283598319683272465131165438458879143205662752654773234355172546350572740935017300183691565053566941916033005824519374322526116766172911983452005798956613974017446597003548075058916483773855492366269441924500678422747607210063394667851140243206949825051643685646186460976720970594730176839741944209077728675073316543177404178152561308062560680575856560118150844758027045992124169042199613705127769956641869402389946386812202410442183719882151958955368496283688834794225566070987272588440854305129128653097393464579381207782789781929843155101158879314546690488683872430725854606643138686364036533600279956378167370838416659476844151862014493557170233548423755315984939093665061448742671522572500379167321743741285098175836860059858043842758607134541392471697103983312597826284857797796360955218093845784943961888723356324216922507012784945322792783573274591567614082296596905046941622796404356793699983641603009412616256546381004436233940779540989426620127387215654098333477353356266460190278397420237678491300634972347931446141159928364540313454747418597700660441647688774391379581858346792545823273975144691124563143284060262861447047224943153232112532999379057148781445716901798257223678589074179724218948880838000220137031272697373266043232975717364094207097385030422420265941133494391300768957134270046851797505452385048584698735461306954573132401270013298491666259817123196051608739284232395581981295646752636803340847119287636143551744694349007831397773311702744736890685193641308185166930482223929976992191855954916491103603361215940757965673967849554024336634034523176169239018388037587121614322803876442460339426006374256230985693156355886831071177497692255449946323307217214553723252683246685550704963668648954525907786646757740902237234756223233177512947212550148263582604305035241135192545614042109910519770493458310284309701561616850146182235679397867213743357113634820729202797746612138253596182367074361118688015016222174344869861630503893247464263447345293693721715706581171785981153385358134596273998022826364776639493047796334390843478791657723849964452838389115666298338404718602694803011380502353535948021463724889085734661798122410114781246609637918851409601470258961743038779689731179667506553676131416054423823520531617763022860099059381958342503663479931353860191466964583277553786201126903489408058526373210483046356639598785701963283366471960568383878750017663899687535555655996022009733469512085336368460184254118592986359735879961131046797425646089220562228029659215649599069069598622925339892109170682480485129914650621801636077620909675501654516166068289866133465697856427115258785330842873843358537988882352859368566050247438833786866533714284519987401421569967135606517959747233293551577604650743695019271939626905176692334568070613420917227396644066168705549673325572159169620370963064461540593770757527939986968781529733749356157635313326655961864528087299771417367243448095708085197209083868235215841340564488537307507756193252488663087760642761420244339745093921729435643226941122520598882374730668595972169880177837115233703265233283652199402548902932772041506953753869392548273850669593653953443917230393596201497579319595042851798871156461586602996014955763803259661719836332850647623973610828965596596785641486379919557098574535377384840914857330491968424875605472795309418809413989596674157888333338925741702367184559741253513514042505490538400297767856566267894893766118519072897186747804290954357575133549813367099649989131107922330251292402921956047801117368185148255005677693719209365410883781038999175666902715709042099921496432501699941051058584818668655746484920335802409265401184318300276624093843810636891566109426206840065070410980534092069892279221409132290624666028530642624973593054015561451826759919602421448154379031741979361247442790418158070888472045725858302505392863800409691668885553839244332154033903667975475657400642675480560407720500774478864911048315873092057281793153980568914558983327081329984293100037720425059512610887487074991824293813160425251993592553949464657246316684507631923737242014704231462872356961862388907723396605481065130253266079645211857675167498414196847298859616934348877411242982421491203371885341599922356451797508015913235790760146988078089608768138618503319380364759973044173374104460308690854511303909727726855107673146374734593981697144190888528395422187716775226865269081298335777915010069884235743306181559056475996983749693188586436441008354733242968610782384573051900866851337357983443520063798912578172147437421596244159920677226289486464130617801091444188284223631197622484683405762770298354605383732599692153355887832372049781752353284022378389717383782139776417566019610739489637492038285508858888391145265753155750755283814435146909065441074754711998144180003038878761102011813559663225437971754330401123943840248738556667089205435580965859646097209406748341099624106873160478770974813214139233700781138764477152382535034160371304306934833214784728025378690527488542610744710980343680772437577143774960676691317066135571250809754185353692872787220490891709827148188339935949228745756480718997980767598328930445852125107010195249697284905524490472540702437246816285462780053402684500585041862566739568335357642824653930266467173066577990569806266352631310746712466125918167006123728756821391536389005990859706981236533379637581942664737431856409367499659788645593164922451701685164153912610117645956942965531646794012450840495657782316800380827193033110428154628667749077283155399968725156672638107169249927892694899316344638522603202381901499179681841395764575628539406632735240834666692784288648218804523930338654760583723691108132707305698233534149406435624901848899538711514695676490206856787891001449916401667308837889133833148116504885773378722691269229608971186007448495509572838638869155852430864031079366247271094462816181652516845279256531641035877672146570446595713610361245563614836539755130925743299256468797152643948578294350183146325658655348505261855014321069140217060441864499198511114223421810573562215398741907472975495324995426168526091174052626637038624285410122913492611591552255476666696219567303430928751668555372198468161998918129906123615005109021203049296616079012526290990203914056482399769600804195814187466476434546862219833474992390233123826063672522303712843283307395592724932345852071930131160626218332049315597916147973868565869439353576235766201672859576202924329451858837991428941574277207031628796415024661136631430854197850270134883562254070198851928802911137139676977551911180777515606076726724912890290030075855241046085346816151189563381209788251646973513407748392047075590547071723454759287986582725662332066396437887340475000057337431993445856862770817854687338970007735199923894930526623234873291190517654702229650807804074347061182537891333572595884870394737885502346168547383757438964679468108533538163377370364231593248683099883566406635675316867689140388670301335419633162691615447965003832738709999292002048123835708730223598527754036013054262023870455403987213845618745513308634642526335187718785228174878475520066842620741156872046652642276610298349593178820556758507580779797986978668836481235261325264344371524458373859679701580968528250783281115027336016486664080246745882489288751527797368377295795310433821641266528219053290828861229249915458246223897251205222899634524498339004233104704033970088200862670771816208486927406957985295639210833978320324272466790383601509034219135450260133265397502842603684896523097441237372571632061134449247701240637542645404978700399091716906568816593839461343952766522114398555922413767221522325722931500562782034693114273289453480226142635206680599256075171758694235332130282064258542596007863315919376462889074342507094758248857022930253550221871952233062568001337089905269444069895376273222597098575599228115406870094308982207022429559159553083015569730771416196714818503724310522178166566957338018670585819657082522111333980188068791571519746772791857312017823298384591765599283905139202731278619701700377736486834991864994999645875126409473887550836552630826447580552143944583575069887431153233974137145450308615507179539468776322526890774614199429338709462635776827183858756942957666317798143313632004706662787350331062539890878586797781728750689652485476053760836273108673551738764869331197282819926290601041352857274428564854701921910305780428792569557139464348227122342135246754684116139605469226308524031592061330250198732338290932413305628507535528852114277376309282714207275703286946700383666519242261989248044009729907014433707323371220956501296735560118128824237550664864942497315664133731469212899814306416833293555393422023152614721013064838422366184909284348950098943158210356270420790274424871618987178134942037962890522443662675618225625150803029801549764096071192665166756965208140506106459569813087910491791884905534834904256470593761645677940542662668990938213172163072836489190410784514808923725547032714654960268976924028719321144956831359073826274440585303696226706250477223639983063988561369967999850615558830332969593662495347454320076130641190732267359312503092526070498031375045368189227007745437386349010510361422342124949017005126653075763871617409400127051568223481804115542964999868804967898788145818243064065555044706225024969837088339352142219728577202407103670751069025742889667643758277001623588061667678102245202395070485869804836356412044678129001410405211251197095889061808905022304920041371810761357370906857989718482879785994482270073094629111160567671352330243783367132752138433952062372266528865113574240561039031964623600904626748443840232480924556956949034761351853916735343207865860802372649081020130149929868229793313104743356899008646729749967109600403171090724719144814334344345692345391261273511121308345724870618235763529937497689896256210324044166984714736830523260165506786062598130901570164889285003242174436963798769668709744831664549614089406646421786074331006489155043604675404246345673284601910289722174134716758338511287518929690981485541599148346560163624275934346814932284940884917934161416766708828888621568883672353225888457607553692853909677899339914725749423209966561197622550611040915232955908498928725083497777285122468870319648378358855073715222349988370825354273397187281645557296280881413442720133662831902397552345671555270905681936881722507615788381396905509126433674575414452195712583959450847718291020386788931377542800467962996639363764798096193262100217530549388208083024467400461954431722297509267984852704221364764784182729029152830090130462758430660948319037712597079133214694450031331715867265981963891210101375794598779401866350073226795506110001779778688154814523655356902843065317594299202661704418799376297033770827260126661129283383473710435088717908446911446184104697572964007151927012241951574259757813554651332297641345325102665801564811421488615417042117544430450740297530219849410909515960827774227231015367268678218640039978503000268246786558515711094357283332169778112690141156313104953402527935386339087169035021190322780608052308920610020827936469487194256012227292797655184897169815644390515217691954746156070941209240453277053133206029180828692520958743981692291520747458128358642778534378036757197470781943227792077962223928577922650019630863525851399126114632140595150235022587715209707139840565924327733168403929119693734673131882180963152828173800546764600491654434441144257573398298401222157131784466372426945603171917957919065682501713184638138383337213092389154332420021009802983819455800238320707275796627844525837629863800171081879019092603546805701196736783214790474534056016975478837986683687256183461812224912254386605492241767378741004003387488145742027302369443967678188381006810900015486403175697396901116154675485766462626556133121988687212626795507821324386441929625251388416067101057445179515629673687303005990219729721149838566128416387195312506157336181465031836603519398451897065903571026295672899465084364541860803500664937337856124360760686535143814982930952793882618368709681635825068529077168719409787804714632136876767993658669501992117342810869318702417771473297935646121047178905555309432143140312858261025449389795863929905002833775132511765963867759300143607334148276229054203101939658837170502041950563097047320743748824104398593993532108784865996347626817641329801652268183536705392496003121019585067648565501769389209454596411910543598351800008948563356904431292001294133953579496211364060412391623907814250836080858996409834044394194896406920219276373146484458427023611846597178909426645681927602109415972798576505113310135353859896229816468691370920826647719774620309214394664532160632892054846602374703266745139957037825222537537369419874023988409709688165987942225633923255323787792912346734794417676095730077468754363466264490421760660903579186465141079285279114674838122564376636188235684994847460540909550934091098173331549931832048080599241040430175968450225550763856025871863179642116992247546769524928021233878882240147542088774549589167306370497767011487814544732122951163522935719800195071334547120337698784750530230137684803037123155069549765295572493431272489585423264584979538188849970302737929852774086460280138647910909815832092081687357515263927031204035708666839690923227951196864676605432575164599633384316080217533925217476422625806956947914179650068410232414783052785029272758456085341286970465732392986067439983064378623676901121245015410567503700639441441691903651940599146787604571925323866725026884521900611739864517501569636931503736992071225679757842265515866520030725319940039654477530307597432313026630692504846116228478625012300913789709339811851735519400198235236028010717389149705213766949821681570158489912685364771221652646046346005464805049805926038935849492078220753012839790244499037050176313816673331562426268659425704174823925323493459913711792057765717925897358240667717270814187277353329150322599843195542356124355128957559561161953446853323108133863459094657081675576987061589483518814402576894596256456697847309950129359395013538903173828315253504885743039684612937348049682663409429843254920639989981429479365708494964892384341607414397819487429498936830346116003132436855702861106716932113241735498406512601980776894358688939477385454864052945236986331142283440647560843600126077096871134626455224032444934297963061397667172745669740321020824705022940125066364087466119295351651009191197967211334712300132752247634573031605323422143351209776719568751826104493904370386819821871123461939891774511918699928906444867036086244641746151987635292609846564487748295130131471215231079603876348261702549213166663890158366853353398564794352732564020000798877568868562528834762825629888005783218360061884797437285564969578030465210848419523403753277842911389304297625691268451152810225038869795309940344929993625133189859718605637403705281934147807523627576026937337311761576319592371988491979800026071218532433332710718918295446481796416748788298993607469786492105079071892154864669195910365417251937719299886472339830650772605345884180788331029731215073286684924682435683317178794158480850479295248311363076737112171841593998303703083174439323006161986595219935884977283464258680238305406588946408913266570786684954078235007444947796902589588904880027503668117676367212404158718222006955295701056026498683112486805655774053684415652117860520402463317036449091103626464656156157362755044613493961847121624081947382508464205177504793085413283635846776081023317208711513978120268299074139581429719942254544718871283094054446759181211421666551318188229953767373956242710507796583993833816778739388433471350639533307972939194956143978553084938577044295252062785999893210597709241507062330934073761363962858680116225824772214899492337979364324357203270993448524553048439239492223558698488153608435487811704500865050407820107580879438144075000031848018325831204999830799780633642918023285232557272788206956928677505952864964574014218126118407667525613802121463973699852994187360088936484709500173346214754159297104707499683384274482021997473003440796717760245436578787205316550247072597129727226493533561264938130479519429715177289645070997686153221771793438253264496407469099365657801513746658299391354277430137915603869546049541273967798970161379884777319312961115763781137800500187780055860064094868026662585534442897143555355568947439249077241957838386061919456727336166182622506508868552472126007651686505164207679259780660332543445834407311514026888838113111017440605527626411681654312032900725851317087400895648462733833455913825844937551103464299845728112745713502957804187352100603963122589585363640622982030381419743115923415690944393665446953933468032266543208558391157355713831280974252385753741187444699064659302682058128941341877776673045445728637156298619983373569776880932681283536087783794335230252291043543358815510319723368526915269110885063926261176090042102270052356070895986308582817435060260811421575294290043944753234073540423492260890446443602992433791197158021779739716218516323254469935065384079500648830768450000915309913216765093867915056357186374890482021907744588754547607149521220520472456766492888574542635764056321132456581245879962709982470459956886409394431257563172025779254992933985932964733969491920522217577262061783819041791488951026231675220763391069908695718500050054865395327747643037107562795189934227487054028359058912540029577534833750947023363463559259940224744005459455223357072558752091557886888215463834351566827834282331039304346189533268374032365676531786711457663409497696170269438865645396831451783827655384523788112679839787611120432888210110993907754384065420397606430786156045187193488768374694861834780279659199092305748601218481558443149943895458460347450613289083645976216486576212813028424804682676941186122282822351722068372647210728747718625651599360028986228280901328538588260653871861909765918079543195445401569237155083675915170167536776833789892787379312965047653515646840699668321734309969815047062573254513724038826077938287160242965617715202535933082627851506000921521711186404991506216849414139984959404389725956343196031127018607811763995715070510667726081164414442099073996449870252771356932031520745527426160120292495595410999027341789768940271782595469446101440425609860742874318149556673403564273487624411033663748407934496085673423354161925659464442472316081693639532828582846491435141868755472882254129413158991283654327274926755192810815229059481499250710141702664493959895300925043185902483710884489771510871277204142105149000241230945718600445449510613118030993057345854597502930279132028315976728136129380642776929220440037662162192687628859923347873627482123203415263084856335360369266134562727518167541410139094782142299407141132063973030003745413027946281266555071160480009173978169566146604900379231928350518870331127763086580795045204384663627207706168314161664241656461213928064773802225914398414355410497380365142311482781838095063289927666150712673487093269734880006925800424087758697508537690708087938107437927672746835872301424922144831991323850987861777555713209700999387972595440190967056938622575794158315641500284191191208415184973095054818942144508251179841552025788739003718544444204862101937739343949760849069431813299123332926481163277750133008744861133358821374225619072846225949059276632872847369983727797843836170831686053003604350462609922311299157105235686721903556130968612382128919871564475513005394875322373505620069664995428074293025327704236519655000571076963967699633096942565675489446394231942532800671587842780479392264575551412966520332116647682199214602426845012112947949310350703072626219696383216931874954629835802164342368367267429448872969309950740940223058806619339823990866869796274798431169143502800351357794450427181746629860008770056724470325727930086680252864533846219183574351194153322573708573910228547887482894016676065197572234212711456969083372133780256519005649114291269895414031065273457692019842294580921554916992379116698103710598617954606807136466037939559244029423574617136997541389145980796621480363710126086469608305263186597174134093228859773878214990535963755319619864105336481215686396624136369444573614392188171564001101884531880189889069163328795541757953749414640141559905030583528791320578270301997372950633281423718904455664564468894889681807198806912041149867926758489759186846405638263500447240736873279029383231355081317131450353898012147994152082900273388499538066944398962781825448916004625996650943219560680739496738943832221949220695209075821201519370387924497976647025339984899500841436486472318831561701703792068861941084124851429778475022251014917013246152554850223690742888663621806894931674851847123243597179004536287117333430820280622625341490099444708691306975611612851908823156193694520243047073974067292929846648721562958769416363543286738415521469850168675141126685304426495447517946048953666829567798269505065184910021357840804294083481778983511278870573414288385698248280954261968635935548418180081805539939709675918711505143156239828613448576030658655512716854394692556713478499697624841779504587745943781651723093745411611634135556076768875369928204053585839463221638298435988515095786237515654363026994138481531029349825205345662742110051025325283818638553109968589191226300101734452867496921692321717325410043555772583512097602532151996229138498934086428453157262565743738873568228799001229233502977546236705696894589900770265577159419576183795235456315579320889356685843997122912802830600753918651949477889536143149312387225119083537742032605349692146472393205165084586567202879085685999105881262343465128974697794588410557086250312566373543797040601914615617799355940106186019723555204101278985979674958935603356215755605164989400105835708375294987237264419383240171608836871509517345185440662422857542415842840909917683244072997887186982496480559408076937885832327818034001014361592252065431300413354635977933801193723530561850004320113863400831795865709613122786332814325120658080549611201093255663833140808034500092272477914534896576091925920065776189286428259472760447327160200234912086303054800879955538873464111830170321291676307965650670734433575353346975806821624174686491506347555878469977258723276067005453044230871117418753393119863220704742901738675696209628210966996819351643741170095816731907170330812272840397472511442617585225719708647679371816101796967416760643793580675038282702584522947215263086074792070081949489252190655285141427955055191257581223223087507762654481874717606007745772404458817678537547425481680409767060959352368678831174102886320159999184604439014110612584497460172353778492740852578253666543262117907959586930869537076958762846320298198073560536934017690040350413400473499077496782606213472561280392475313070646533529911150383123790595649594742246733397413045236866400856519479056689131561510957644559698306389292504902065113518620670150861953563764013503155934588311527495343233038906903902717850306552035168430247629876301615662146254093369492386807176810436166305442683259269410352959958123631837495000918591988162679720347627218252942036369163801651969117948169012003811709354494561163006302612359807252605823779408829727974022795049889684437485081390233601315142102838703821596754475638506931247283876472451882309703543754230064440291228869663958587278537875295225920545737057247684568567387832408238811321365298396340490369256990730137514836584323805170073365549040696855507202133286031765353632558849591714443068386946717715089423284684686409070268715313745907123787435910349397004613390359682519302550742442599351527432664214519140061059273704750838454007994440457896250966959352784684271198434332695909854642604712988691525999997083308677297964293083094582835478605881910028902674547605667209769887101338908912400182870947735198802853379816265680188979335806606532326994269993597540155209167229576994711241039662457565337084736695588797456404863583638376105095238272962871598215365329750540585127921397609267154986629218341120144106653283326063086793241883276756536824378347583510552251475176259221353976453021834459406198466628782106783226305016148901783538818713204668254380700179955822706748765152373168632375538014023671792130799462993008916459835625445467397389081917214883097600570904287641383547446319618238917203920542782431759615729331782210812389820821045891657443360552400999124380161651203249357836335703827742848115362595056430690392006796356412404517213510608152040508389671461098572719141860200108182752682833957858272344296438894984062607073813649370885802525067150843518973675499916139988870482029314146639424675017201381382379957228375653190549481336400508491182305388500022688342725076895821273609756497175365300684166400988729043439429650757545295601599831732448846660217642837654690443720887736285859764606376167238652663753994862946908622935968814452989013199702284044973601312862254452709300561062735655263598375445107343637776362732875004335073872733541053126094785838450577861517529528837608316765583355232082229950944888784318953367095288669134464483189412665435593137689552584695558540361832191084104351616905832028657237524398642747392774198531424847606590480362843328479079314048854411066920493913569562877497892309556682359158781047817751919399102103653318954714808993971551038568981170157544854173603525930790586665683920785117096433049451828407066029041270750849133785940534109659530658895464257857580339421619774256730737923830237815966912920510209787329337021105010390704156782554459484622887318714231441860760108709507305740185631115878263446188539332179697878061157292755442556745178928785580557693663628616466636198150253848879735961184535136860153093914930434991091818759089915431814109122591357079740860092073486541483247184200063260483323056680741512733663792722573088983899997947992948453209567096393263317388334737257085810521649296783868010593302115631110793080269834862738594791622972562128086191144356866217567905986452274162173575476108024052610568843967571368077446906025118941309805487182280584805497678709964631605688606885062565800516235827054052845209678103704125552971801162860899851773920509087238687039409752359924192265466940858413284785732345458954580525315624195652729864668853488761900621322084196505488353044553160617813736690037841296655088768089966075035188733091345865950192598583809320522473001278325061357577598705745342975373380255981635437775061731047053702364025411372535455322486502538114376401970543411234482300516560126061905903539604164278029435783636866781745368349404950898426607054250553359497331197715034142524577705425405167530488680013415159520156928297161917505381906936541624628305051943582357416956196026301309744305583695570615438712664965685578771199357115016845401399176735541079109446043304775518559581525445813198451361719813343519830249080934217378572075087219368847777959852617736298676608150944996038578232232373738502270833764127230040756232065104003027198286650469435493510129539984198813414818314775788088030764233643148578884851727001047253967847756948859505927451852267130129558127774526021594485512225415125452846591961394732956812616514540201263677002385602044322485637578531258866711076105219198223081451429758261088566946038463029999984316231435287874590905802963893589946159277369691239480294048720345126231927748140565205046106865224455460752603109662502195541387112921517224049905148720678680046865377029434120491001200816878810352083151737224669203930340400978148634330095125016895589625413516006195897230827360225420464689416841272408251465614373615304600890464395594763651933819048856361643148620016374662256648512595666848973664176680086841177543647688040500026305797468924147578585280943233223848488232102061575287553468189035187631057783011333452591054375339701104489744651409500867372557410327138396189139919424577137579048757436145130525740199297280129688722128859366746261770884429524095532959458207547957656018235626538245397620948650076217117445612783567567158806340542384292367216560103054165625237914982575054419904931339076101974219865133436621403451500014434937245425771831792431097763468716713153803445764233728898952755683942612075089858332043378608517696745574050163776049388031988341996677538024336580474665413168839482684144774612852823896321088093987128447520390212209098012320107373580477548837633535554191421277288654669644376896066735850847433854389506591034459680651815446291806872560140406274983398113238974880255966450668460511726633502612234874187171909719500600139799681766300057918139320205752839733454416901848131501188224701731624286339596256926920797797143896319947127744203353581326678889934725528129656236750561516634706239669160438980309102645793966911492591636053924672065312082079723300509095201753565794024792389642282548715818634257559131297597065417454980343387217558846849800101313141540668547240815285887695579644578983685314339022349857107348229193071700868877756133614133586795892143024347337843171721682234912869308503590215472899379096501880773219226004946516622665754223422731526220824842208647436026566981926047954404853544304155202006544057749764847652848405897199161692709427958729546656946480589877973080875271744208664469612496798194554959673332373375999167924235438373092340927203588387110306658344930096435227744434804589233912624548628233806649593135208430096825156969286864455752457875385649123519324756766450207125754271632373261505627056961473300348273826612598821576538516007032129012073298666382397227024049708309159430050858933011704983838357296871142385801197931795736766901672481997137325961647146347278866608546438939624543728701146025506947132891221719368766170663681284902920039508447655921047817839016884342640622728694258074373570562297328674838492229175835706440596359500831082142058208731331034716978584308223345585414443625722474817478452895453870755897589938792154809173090241055179374744233473046124958395179952335098089622489278087617085065729603287554732629106980508537197537347898673897994112047622764110368721153897960694417920411872000943187643945398673522654624633626996093350261663971889640032039695040046459264288663443062183944084582316301071798343310825695731197205306958285802982440439106336661056081166265312816487335764298525924063693495523903494722723176929397339784830509792646761549760672193404752370285463071631264642152904804460507902571386774145715562978759192164852662354004096335931435369865538403436251945026143547120047230225109269103789283281832467452692382565519734288360560309808485891772285063877155267546978018530329624602131889388422795988563595570442543805459978512870667553480993151726541685312307248914495645161560164351224448307583385133363514015278549288430869802344313022965356713576728383489195780160738759693371269554452106698893983472184841141257239181413291430783222041341461206823975905744662821522759793392589463762375669058590928309679787613185398268009281971572829068578844758276224503811741698673755413621635912947736821753199213868799724418797555138748711523519110650778348964682357040638615889379949582755628875084651741171820333147519592573820282109459371563054664961890372293070415703499198737727239554646141275111558025194455829779744593835855523654202327408439546984022929298649423090999570998525224952143564796337018261890054741000908953178197144487263259242742332937441649497350616815067197963250693223988112554047154450168126948312582661110498989560804202357244927359382178620869738433735714357355949907445235210718544304445347691533816296112602583353397384158102026346828631782931586546990449963657855457604069063366726801131780863511482643685056557729118090896154450313250365247953977084867661507920052189925604535796071351014631059586267487127194933892512426319959563684403737645109287499705344468561467252641922722354422333500861185999020245122094587160101450817512676812792204137605881220165107281108508461487378367763900926731386206271659907919703346678327201102542570912467184332695183291747369277285074626986843681661216868770257297048514864491365840632494948031530126152449108824944458983322977441372013874555740174824361683774297698043135382875246452215590875815523731095263569845734882662138104674510762298707194227854478743171139879995353227036603548780034223065451661441383236006104238694857428264729980505617914499032640750778891525996807088062200748718320089730744455581853886964929863100068187278063943255598412015988901780870013623956248794393684990470579059603075241101528412621317346053837319998739209673388407699104137520321339450196315613143901082245220719098361067816151777154772181604846191087747097209147796816305927303241639976512355740988333570302386496643971494110337935881779775002213751498954234175275796951758292754806379799155637462721608126413789994976126101394457506665089114988293390899803940014872966779161074176716466994323721759856198325044881270167681185606091030488926183178661555617811780207126112105491837430153392934650970309073730053705617104836932557165491412088786083638539877416687953963267144023694327112687494961228452581259061187364538199094574944872042950788395345283631521763976973939402742662380295833498172957054109499395482545230365676467402636842654309580856204191770801930938234302120011784401314724707978558013843615146500338662295835177079250256980887041545210709466401995851628201420511321095158022245622408434032203085071835702217129341899988159022766422873571795744866749192644375396293013700042522042924933043310849263257963139764908306977545134157586192971915316878733198246347754293847973529993228964270169653102029433298076233670704251913355178333294921464340634393494075413013093155915412070047115595727925662571099152609912090377418985687020012722048702855170596325769441056988296377868974556709280689468967520575170966620116437678646695279137238472417238457600998321129322879515409727419874359889443289359807618411936695274825266647983886968408829296232044033274956521267459640546209841441467144105244699010036776083919746965453077887284065170381018231709248040901581267897058532718009595886251935874756078222630535073065669886813998928327227507199711767430364542092939903702105569457884758364020568946580924487511169584887395752883341498972680908934067431680436576575681353055691377830347419489201402650213906238197084607890730598802692894653198825084231727914564309970080834144837548023633301821800910897421472244205487083259421080733332625314187620808119721075544278456120557847361086242557529045239405371454595460490899016363972534943781750070801646778537666965141695296212062688804978706664389663916778176113374360139688365129845053284464963302279154468476068478172587156209841970800609242687329234522172121666179481696290358402335901504961662487138870736632399703796101852704404134535464819719479360768875563002818059781799097204267058685041590145684708059552341292719724239028244063531609714724959124518341646587159736252035113165579604448748190710932718419461166338525422359433249738103986536625080361645324847570063401594477318982823897386539309965983844132059378768654983289073567332528044114382401765988488453176139501992786674611683002885406036951641417607865443009693558766771833373592387743452806779315785383277781567310263874484910286646511155312180747987188848377861761781935305527138347474595568209145093576846196344460687135121363091591419665833211382423455076001306216189441356002829983229364912048247324533900325888604275791057392346639585474736904900884644902961875566104778148872981072907041658889178501511886364707916467817056499540240827772270490597663600646404163929915597660735831740334545471356592160879286659409755446592464787709645893502009414472714267783095983237910486866750426585465679921303030345182791147057075275872783001651534026041362104267159350460696005940072233957031000328022669328334960957292342869731652859452765890173115916835350663508779250765896784316075880991987752710426790290832730607616389532400683765181063236833973518834187807737098755231798704899463374480372430989032769427057366190639148655566721999527593393705992661401881102178711896533342156254606122361668061329517021564533031881894953329569954243666219942802716198082134241571054707490644779537083005936671072677448058954213931821557410336210471241428752393425556518478395464844510027324297910302866319561215703777142494241027880659054363073162938889949511335898647737581655777968708958271455400991404452154311727219947125653638307294295555355517779853387345831540349693829887186178455888232120872570538614885231854566048376975218776906688411084660890892767454953262661810743475321394430069460439549273150463663444675061932586049715824324046874248022270286633651464454991453013956163088986420521317678937953814518947357314545512111315557838302589053057038349151250019632607341093962288783472370078314392870477766839105802579301322952798043031614367830962741600450718522027803569549433450177439420190251094459709096771424552595893772714915054279773168786829972395849759805899083489199721275303463026880591581046790328367986610100850276423588667989571859441952739266500932319617238179356940349562733885508999846792502889171721219004194023169906205067650719182124117690976157857123422039669575620700795738829810186478921563345418746972327491148312238955804108741128162035015362265532238954355092550566873460292076839656904223329380424232044257907983820172563977535809171513056115505702231969452369155615334171375327086919915320447279116609077164943289764827589543873583465711667340032149280071776893950880875238810858095804479850934258976929794296539175065248123393486323317852600164320748915836921301498769781571855519587980546792148375971073242189069162608282880997904476860519448839769959727258914808536533834925109722642151205982977338920442662032957903230587348045651006719757527986741191615784883464193498845752255599353990306288962187731304146272678888547033612580147642174050311035762082330511583404754536422596049196228754574309343946598103112597184890779473504599181436486168628700234496544445206779737447088444739377088800377846121906194739434370229836221549221621908701780083234918767355208253862090510272572180361392630905929046872175085278091223807736612555622719780923209448220537667641381507618010448197292194691088539538136744718873959329948494376005683194356431203584532313633956460279567562504598635974723099521393122327546894190530636976474431250869417686343886036529944513786571998837853472779920493465481188035305059592367446466946212379355367306148612716831353854877870969465043184170557388932075742412134904223609540593646224345072792539580561655205204668908016468255350618071425929718937925345154683516861308407837058379933418476366354000339837060446326553861396123952507179764452610255199501621822305332549351890673368590195306555217351941996915410114208140001525503709330301520659942992376077241944814506137482493403202841929337610821518888185513011577971282290713272786930219391670261772142005267546537519021033924135830040042195353664966234485179572464512602297852094229239745628016668077505016274951507587722173959103026053865439027288449378225930372965625917319859557200747702086726449461980302075298249852089430415935122522187460927842282220957583880658550954384937294119591258431035220146235688253008036413828862844969267276897464000845542161799373530029081181547825635661509863198077486614161179242655087214725066071015955370011882253537911536513931996442717950993914239226769013685699836793586836525314924366160237256607267014772987744938967703538306011556343522067926388696778529935842454044873315111232303392776269222516001535834622899002494398198417358862650292676416256343630589369702561488447211929479644615370541302989436824230534242414004132693254725727304662846326660522977889929213038779561222543027228761311272680586602445822453158731775685239469482853209832465634528933928055966410666657773983262882254662008849518927250617431491052940244684548200732833888258683406366775640641283274233071911098733833284535045687167952525322566819680192325339346904087931543526587104363642343436648971887152202911743514076769591481959442709749929849127521174020416161831807756965956152023249794577989170793179658027500184153109318273260330864579960861874002055468358514461664181781728768048892901884084225394915445373712473938622202628549307239468640982414000389127427950982072915708066264437607097770090121927685142062073618549842209668337806638028557522268596954347632660368772194523547019947225291916123865991632184076837371422896443883969803731953775168548180539972284201630700929571894311229817930576851909269972240021191330332146961040046214543347222755202917208843079619017916826852440287975014137184427234494705063327933010006234881138069357313885689776457040454051593882268359564942899817213988314996186534676440226466702194671702948354821594278272323988193419877460303813474020317491886227494908659528972158289622970712695203598898855079363090896945165404796797187344520642848954161272268413828836050758299334411836891010240857305085518197961155141359202354750946605874018339868526725291375123014667230919361654068151025450074840713178890896657458725030669730022616311839316634611781148447717414496834895940002564770614940353632258744285241824750906044814682469936744963241469904056228822517099832735772291873012128839751122111153649458862675208879623866886882405042989716781449952838148222103914670018229864882627158885638994193804225426734584942013962530259289242984571524164954199796205879667506892312492913032946375754449573415106516711122193264533102157560979487139902220563881940184684257245578761321371003551550340604173813478437425448194778628687400010410444479189494456077876137738820239553574039053136568170546525614585832072663370902800328739134339781222180551961258795136096508751421822692159391538627176575655644703199846064319196370054955545074870181018112824093234126427420373183013850218647810498057845422411752519335405511719096025383897011132221135442335622012040816889958280866636345626646061568642817989703603593809282620542865467060793488688269137495085459022048346627358328568738324580244369935884367173841506943983939386117893482591294683454998799214181256757841512284468491388013503823999478364437770935405934016162719669515166449886100093780724148517877030619163157880705271957185490672550564230728207153862087358528359493090690028414091161062320807330093512516425193462726937386783709434248697575371627634428194288545345426645113094780899081702639016138309636608897118701427703533361326423319380341565385160597890177178050624420499443616226490166417872760010542939929218396618800954121485504732412303196589672832217125781980215861632332217164825341782793097200089797444705837875868967885041187991833563438533997165068730748964595919942187588964354749439351819426021586951664270517693510705880204888665346821207165869163084570845197079678598823355251088764776942055021188903783675800714616553843027321777313241660596013623110371002663648314864272823243601306457865190444060042706342013177321115109034857643241211140277769194962510312549999737322511072713113556423350587376750390243442529542470316697374667970502321407874169040447348322778043669353815674868164886521680428267000058236829829301539153998479302581277821143432377541385666584457656471320565023184441869357645661207911954353892527918423395920136963125177246757041237654337341532840631136263347866950206207783222460888275078510766164983829923547934483809056834508554426202198843879774462566535708174202654497093463315003387731667657406868762701439600949430486144173882396823234281113178885005563138001124496400109192534870417590225582797431498247817907470953747106219503596731458018372601523478836706094945998204502549976299948359053312457185775520080937306635934898804752625274354051583735214874552529528688070299514182237963620785078659359524862393380908956555888823000256679714653157673097228421273315525995016535080455134667114725088649494457659276873302681359318290950418119922732080686766637732617503804071471663443178699145220959570947113089850759334084998069891912262993133846269321810291435455353489156077815540260857866948104816523092779174487149058729904794795631188045000237145249757585357221830561415078532266841735364949627075674990274159138811837882634719842348281906902968935095282323486764261705797900701422741189442147089069038473053198454822324116947899110625750028867894689290746096193007850177874782162682583694857712048784517103504220264788089685464798575594331113684272101207229559894571231707510577661025916060458439246858723538475459398377585817390340147020070661102469965710963858700207762913984566649857263123818593276920760646840483785294314233572337079994397667697539687683517827414052361560619016459146265427701248611518743009500984478156737916432638588596456386209352652095032978171040937992494839797055547385373354721315853693178043222092417174606405020426334439079207051202617161106022083538682061462189911564718039120471999806452401666011164119343909279077891039066910782450435462790996388796140912070860795619590594011395531549831950236419014641564756368279729105982781065661680979485879179981828688981362086058924349141244324415352967712774710153904107140877058015811481690951857905915872311969616421433441852035269430293721959185945560213487965430671620505459846992669742947448967772782334015430940524053000696266307181928797918134551277195264106758216955532106673498172180223561945372688093805400925490719410774879359233044644439206970739477940404505568391753255073252164882417231710579834808383108456585146403379463211663176455641973630522275072153327101729257049622934272751510876968605020827675029190697717611629572920538728387629829819997897925206090075653225372121318887798966228216686226404051494828036367995512035998365745362898797040467511059803809302260448735124152026685846903915362465074706016003555700315033105506839413713721394286392464933158991819049235000309467417184441297616266953939169625004612502742025813122559078747491158584314899355733401155300730458088362563520122855666152364288882019372774152976367065226553324188147820553177847180900683685893723369208639239690901787432470684790699141608377958864545021323314381041053719412192208010269975277999130090250994027977756969861759897595699907411909797574615286693297409133496512584638199520783605663399289241968297416847916023318541366045065360843307466808463193060518452805426418190472896953038116904855171040560220951913903846457399182105704119813872887421925091150464299015127734326804393225688671797580766037520722237530594680991526605022227676293363486329632473690982269517598750418606499246675917570902998017491762495999423364370643195405991158716753392572691096560427184237401070323428198421179796449179914934061230762829186494199272883553908697528868893304581367105652999191636066587614484529739479439127819797058678922489495388585748217562495280805916491869409123548661267194643755168992232375863629963875660646809684849142119511981582389126958449507037715603842334470428149289005803616094805092230348773187105918639585591154720462721711371850221733050895736748361368513556371940976427672849709946778608063716684049058533406420683175061112080312423679414858611681672383925317745294530669360198819226835037841282703971917062639598259409758357226145587518303746362614947450402138174261635467533740054436386034282630016614685362020836344968069940377520449164706334863562887607710018279274183433864556004526738967571661416217360257420899464765029771352857667910958369363916226480894348362713265548776188217805700478926377077974423949496254194054746269077735078626835548059788349447277844492208544842849436165611708469041769690989720552967590779376873402373255059193351153191160698213635273201818204035158999143207710107100711292814028508820607498305188240464676003805121188846411888534742824100336671527393896129196213197670093783282657745198632010195433956615693879738475202440627343635605064059878747538404110120439497899594295426813220364973945924551613734417204297598538584364454987932667537381584723869757300232011325478065958245799725907733238564585447193084151409968553609379007219208504128856015069367381145133721311596767847592015130691892990288374647122971910875682617562078192414793317980233172517636844896012239685289474225085753849651187333280968574749150968147217181007425018372197056320145080870678469582110273453390902962706953789290813734872708313582393277446962945252925711934093818264280904377420647440019267948823830455728596846411780056082987486284229694456949557177305440666826514178307436697265949546105433519678833929008875017893844533987982536916313190226009330800040457557401674834176580773545785106632959828085334289461324249010764593708557214036429476482486950159031783676065788393818498627271595200215511289215815800161805965940104278525473511926085455907527970348808308993776401786366360728817592830437707467921305046883330754224337261486160327412343141899096418902425220328334538430156207304323354085077763953940818035705725692765586198633053091500520274593987799993260977236282093726720021807046810026652680396491091147354195681193183166684274963628792376121790333794085564097293154807959237615420700333431419898535606342496291488799060619917235277964350137952673593816882382166689024766543146483048849430893463647200262134078992977784925963588024463250655865076572884777768951607068853398827737346308255334341970788018514361798213430065496822681275244120769206546784257349109432076179639826077807413973293299390937659653757146622059753231544821658752019327263986526192897111435365491282831589509003372845143992903964437837199940189936520505627920649568203446172794101105328924218197166691951682531637909083735852528305988823226480888666698209182052878315865715292675063235558403040365094887070468367082147990270789194050762164375840845843509422788497204603659291464987013007846502833336627998760430127409664233373177113010771423027857161725213272410773408826401265001552529638002394355559041269150602944205424495077677016027571664455923547935907384865910940449943225749562291355118983429785909924857933741780187840046480711702909123451657677100315631593053177461110466090341535526256623947022659425520460492828459707216721820885426692082844152641906764106900038108059376136059993507186363699227033841999565523581983748617664059451356876051630139310898262162516736424003916409922798448228172710392241499982819814540310215759247082943180496434661478742725866213671616656999620503170213772004952570722761699887273134999389519796432215071288606775441014682053710120523052298005825546666934729802336946082703349989763156260611390173197988176761250008958835825804762469403138862946599983243117168060007908675502062864841273028976068466606254810020744808164796495967368212776819159410855957710159576035385402762307626976704315946254915763960096720559690287359021263908502987928461983484230538446700101382246771378217409215077863128963089831550218848914147585355095779774821996644524711265169466051381480554492158277661170040596145332150707586880220669319721072340896710830777295073851248098873063875395368134452457600711197356135889919344292083992981202793530000076246257318375700613842193571597048204264975018545354634344425712966675865109917915834058457202635578456811928170623098015037991457695606615945894359423952191968923347659585076252394119973326295850562791205328841536057246066592180142740848962446183588411846494516727152895858513481969020680803097310244204535891495150269406459335649656692983688118069473276010180957002085257161760036065377941677343422837132608268940933204612095697879603754576686570100076684669182655518867379835918135244736842530000971767133116503843066373717313045630398741154718594914197568637563230701058244509751956302383445467327600035314959656271463579203500245901891103912911973222500290196387862244979638895749108947211431254711521833049610495713709565302938559185971464044069805813628959475692294820978296222282167072467139635848810153741584799649649355457086155907624821245354994357388583462294796550610161547047315211268023984371425813245162238265013970977669443645344197026613108628698254674322132481811869896596298546752986036013728537949461615118112069051372734985895652398839914045717414611388851722062098877480272670294988494333759239012569816184933139616086682673704370916058613889022350124645936796125441081923722621011813233157284585701683320510824398102497791882099906641436167232776862937445763704644088085558966132735421183999321471948279927012904585010289595295299244526420155100118677026466957569889965095703384336364410184044579617244557658370239282972021389074271402769739828319840327756923352946629360071028119712108147634066774383930090008201986550381024366087371606545046319127821551799242531417242489357415047155945328410168160653470540299616825693050314789477535909562441798991824338389315366774755818427527951957049516104139761313739423214207863450123513006086315726200532265566215986738216532048218602827708411816144246760132879030233924352089615759042816842876772312480115521926918049708311057178228735019157216834926086050470428316370272380892649788790816065447135498074322740956372686390797470984509871325751594340930796841839129460956360101022252110178957751615688105540614651156671367474407533165701095112195602161845120412164709522059002958129716614751194781550205501688492740344297690638898531268467214640707896913177312836782381269823575648972394367817303043504163852596582058732273937589785147547869238732566644815959238601730627556836010572948108507409987110363861761944309696359492174241992646443934598236375282441237372217665310973324819058366475023513415674532146718865217713334833487900540920924721670829346622196103891820493881028545672252415486717574637477850662093811358993708030528648436066199147858234271538201426750414731142893306868332910785301780012811551274004941771425514135885930911108143341712997746082751588548240458701855272866834949260182563189984697765020710193160226881761146100918667055627988840662944746945080088897903337553714537885247267850222750513821882588832782157832549757867222337435698837106571603482006868546831242069231481271710470331067893531754969335256771698805420115093224888147078538992052742299680961050049054416539742101581341081761609053943636333026676207193598775907416288107528795433517596563420077729498961620591489883492081648179957245975913159931608485453571529613027784900902784309063396190604010313174185324398994825876282878065382828135063223962371459946072438668986273885812008666406247556183127696800526284542371722785454594424182512658779635064366010320700555694511195691517792461399580141301513196330455425987288322313877937775379877970206085357720419716310086174719644023655429584102544597559647576097610890894858486124073585310478059108568014203805166998542679872554522223730586605512761471710439511957568030647091096380644353739985839041506622152682021263663909516308828029066304309992713205700390384959502201423104117843988294072244255064195228668345233657247251418516367522121086841852025049546910089508584891453288700253606436131695317566136288774603912291495790898296283456694921137800157692130181902823628916475646185980379083338588827539379596127284615939423913938383364092698473415670430937725715665164711753613371663756220896815092383212962172291506714119980610541508482091574557361379660404943340632473260413152969587260749702580842072381552923949680900272630531472088338125797851032352022393430600365502435166778869610785542801637129795254890855285535578559796702705238681776122918807052920928876997558931805465835828342168075451111060724516152245830344304097388065696012490784619780733053767559934345681092809485300098881575207333732833336007282473164579413276784744173787392940228242151175267898615752290831564327278370104877646435275983457899589062952966480532284259128287883305434248186338509952747265579325420391692652460318645757786915749503575064806090300753795922201236779959046974396290976398877226122447113032053980172915689860835386549513384284991404461384584062426534322985071168975692353159223595608782577675470921032825018700255697248169622959413961675940922886535335784446667949526286514969730796726527945890829266029740932883291570118470300390569048484481386421901630386046349058615185367353528004127513158384736478708085885175354461520394611023180455042951509717390416052200103076038239952656117304152131634649630253472838099047338512502911012986882489397778665600876602369363131333721132050239204935784684632281557316849519730536047953660236829652341281317205501795265024698759503382298496950619043804533614109120045937455625665153041422175558179480568267521403545050250993440995587234391239070279695525322803988215539090789558421749808893410678918174265203375067531117654005177308220616683296239014494832848028995600322778894529394072578870463984631041417457179044307340394108514224462998522663244089989717572055371176022727030106236728620313596193614222605688500864640268582554564269506313543712820282335772991170304954552453563504450003610601784656932194653618580849156963406641688290729578160486557454402090711038229252370922010231752487237076907119110339994711997413832785986094675070466024345006392726134073141855413083285475597969414658873963643200197405278358194821678942975362725903159917980775510051954392375833286342654053054950253485539840496174177769058489874617172385731667705327070193028316149614288926121709499033093123837033204732078913082670172571599381253457108176289705495761414570067381524711425717536200750042616990266232004651306657851163632990982335332037409686538179274698342545159841031920930857753587601126401857249107162019239059109556191376334665646308207648228033193189439122631518550122273011986801656703881664767497539925999144162622488000330170758828811664341570034371248624435811960455209735211986060472508170692524427916016673023812510330820349420945645316963971725778758523362725755546050498602070789113593859522043316531802166153728870512117905502611474438111984319829338802589037912885947917115324506821663606453982606735066474869340144496892005335129094778024388766150952342257319817815926453053287877731816508901822035040071416932129077484390769975609069244362340646765212672382833266877401569349350996249591040840864869948083255294081447307192942532380157032062492788268165127461382979799596787914353197520175465042901960437731053184899721942714940624735796135519314397255528026583738776434072474115783940678835399045882742202440211566428075448866629623461984163329911885259802984308959718503718465602476956524214397949821150474294370322426505159465430897345462467351943379670550464649277243446273347398961311122753998293427182344808843413350687239677186446692346798660896300248219114956090416930321413248429518202996628701554062819934961284659418979584686549244206138511249032696184592247032621175710222820239117398056248638620610395244209492049474710123222754968119678385505315723311717553371284948101888308755413684614925342043020968572949236968197733219054451038319621338736565780899649243235236386072315626131422743182976176376253213753355846591597595173979438990147244583224906947037978695652119125879059742980567172770139325355844108310518598120662808543500576953671238899689603159631824844938187159315119727702461031438449514830370735082475908707701234983085206579234667266513646939042238858779418015716258275358259868690358434369447403094212447501003834698064736596366508527986029669700665669634343255971184086910876853047420231183346756363751065568922515426423535305840287741979670068018645256551880583099975556715904032495371125180468451021046764629097092040114454174849457713979217449977517762976441494796870767132286815282729984516602488495325479578900584901581295768673671594678666743450189591173062921640745576626169445756139336505025504498274430005390817132148150071894464145335142166521256229319971199647345836295585325791673783724677520032724700507655430434835309521401137702327508780649054440562299602924618892241376035939452081122153037445398883717258696630755835049986134718051020810729960836495427027951051150649665749979422714627266034137895266192167831806800138498815558047076728726270484736374520610434039812058497322515031865213014728119829814247184736791283061183748036737706217945096217593978702521830507713580399813545903801423444217243493326061141151615079777926630720189580029504942923193306475758674501327799019948838728316429181561834591477842219160952144390594063701160248671558177205207392958965415253298844707335702765301594884166624326966767806972703789960451753623535750767221489274131040036007464015234312430031250030284474303091923074874784512445962150616027420116808438094270282947316215392023271962555421703637394446705350220767503415453716781999123510926970135970409636025849295858375517035732172709280097744380172901878941064043883715712547887317557368406541322939817978778228900081735019792500214320258496527688168981033282792978057803663319419799965016953204741020401611941483043610398188193636018931991357612911249357250251413458071517673509731473523282123831646941616501036565438304974728723909733719278088307121238403081869462725516496896315147989998711060865482562400343744435668492325577484805300330216876875280186807965865100873406136988968976382983959793899850822716430097075877480887147105908879635623587953272032112017449894983762488540298724050910198721637122043996858925336753390757283391050469192823272787498724342893141711417693309764368821722292364163508793974238088825590372568075022315961525012712658580004115637493428232780856910843426281196593320040437623503142958622531215413815346866015203944988983781936100600196059248601592518695749734801097787271299284845376447711312461087130620263073630840474362021947683291743476770599422666284861241811097301794276556088509808444925847283618211030507682931455507116509979433369949988281074213796948228997555973293056587458143136078468531801332610525781551580392284372159538817443176562546841402190831528038276264474243176519367353605248973296501460627285655288492622299986919336022102073651001372821507066708058361711778253801271765654502364724919971215944321793770533595232980586466099503069858947018582472019426724146941408120972876357044521287301524456661802171293930135077796546386917861269751580996199671559739880105169722381776304505676948332971244587235678858448882038807729323256885005011848553341893943832211644803953914442105237753653770286917882276073600372476390583262673082524658736639141572915843079729573722087011215156388178954597531283844228148448495209684892121065060662693227389002717678590389314003219064972428715787634031572516254139033112746504370901127503596782644867446580079767714657724816321467760360659500099212804891503007694845496593459961536879490936964540079068068746395934182079038406917872787563523181762005948982668754890060188628947908390725369549951838888131840859666335779392390135770194049540401474152130813861562354580124470941385073959750050533417474074104219294745635332774875980852836940316472066417531976392205676079507695726840128639475968233512929798955918995366248817183493527049496244799816360583862836759871230949820747612622897831623867223935558584448493683767135120047240026024416707925639567313137028621164791622013726973415371217176500269200354680308908217310963380068357644564879796200405971079075701618364012221429034226203948930015173536092560241740188875125348376100505474523170973981673617154499089088215595755700739681611586734842700229282473403668171597060491310767845691494781649712967371151386314736726120387621507686043504917452083472783094220661826839983230147410017751747192802693205414478208364601033158184864913412139693418960192869114544133049081993577934099046259768918251065979599456904395967591024681843288382217883724432205177865399872284883144097255365616834305337567968262080048411796571589990769268870008269542775367935234353099469897491025776331210220345500996222853101719119434869252360085264122403659843720361775608366248948924506499043242840065310215781250847378547491533515871795728903692137596346740435193031079367892375101045272701719670062331642519954867013441415148600541347229690469656831547843170637527229432911203751205026055258678601980922110972957205223249503608016728479277457310345126035668529684011257565242118142650481043639225424978693058661988680543205866275879686316388433151415415038979147894621887605466520005206924627709785099244178851847188895403270905463052030660741289497140369215890198410727064741443745536555160260231720817862211378885078892962123874211353650102790291361827014823371464776485727299774505338643591629414485199380186395919519639132694089672247368281025902211349992894753494374160306832083753862553347320214609266463242780285165455098261692708363991720087762609605639188472457928516899258208030632287358595255305797154015536823498194121983491208620418983320795702831520731867673934988499871020568054266226204795003259117837327847591480624985190948381845720885373969872555126894444296949441014416863241544929691100681829654973426322805321373033340146462013584471418991984883606950019024900811290297349742296870930602294918814526342354295046791353420579230427796078199051488752683594118391567456089353362391150215859156223062718588356311382660257701847077737276465374364270106499165872345211254055001324840727651691961820803273821538017974725072136365010635588658140406647294907364136369778279193191585752807250973102420737484271958225618180336423845066973335468549532827359489439346810005815241055997789667780091530733892005461311212441484113000001180113871478167308803061198399348017245372689247738478891176090318705685731813209100197788183493753925137945189722177233423862055283069022875499587601364585934929745680928385975122829237350324746545612381585812933463751463638764559044512087985298491340902363664691146210493095696681880014817325580899215618962408139530810936281528479845461758828791788844102399544198536063736134915251939483229591278387437422122368474864546413345113653959985325917696910747936789097164759420719641753882293129273773393614583352186206299837960576646520629560369547876978637054133772350932453767802600512401245863432895118185779467727338375703978344086847626176628926046507072427839756266856005029087062307103480478775861543389380237743289857749430141490449778921336784129406100372771003140411722118125133247671199661223374753444060850297918393722409056260312539311533929625033321781722639766201025241641312544522919909723262747799132563934155457539555050577644173371185410115262185038483144757359669872112759813326187090816279232648227268552562104506420069211776695175765534211498904223807456813432554805104671241737212406276111243132648581170987958895935190104531820622315484247696550366154250196224853960418014834331231370532058992776292690409723518765346952157660278252289113733375188137218483707804787424698108825138959292480615897169695043711518694592862532903179443169858170065278739758486120550683808290463422416615497856443064603764332260150187054925992209271248851787089405708779547613705569779649312538982183036083046000644513784413099001686754006595130511318644167083823936527041683413513533199778358870639989364272374850036283408403483758725074891908657726842058174134034249612403889608720995043693023817568984433758635432921804252948891068606321592723220564197872126200948727269581338486697870439811388748510495064821158456948319797916619455367398510517709513906252225822212810784870659323539702856136752392887509935846870198364634321705461964913166288624608785166762722990203389232516869493528071787213481222364197396895298550460533866059672465167892450811347285926342113863740288034339099446649729289022329256203109638935963779400147376048481749987882980236155260501927646044906099515836795926331804150708488203571336686326270609481803301929487112840261919658600301107128200983791188257327152618303331111820220434003280877373122886812549154879366179619768640970442635621816127352707308183158868482058119328825138406126747463361070929814796651992685849191773598165441151447972695311138256093865789788486077816017556507087443671188781200046357602517307675167102498909416723054606165080781153427586149610962361437984933609580241141739831907666862284418710964004439954275473432451612077652389007544197514309087449136715259917332282025423846782261107315977605866510363574119176479801805739273173611601675762850673278983021861528869569067191914984101644663422825331434829658621471326497923150339441964585846830719707436426457008485460856161060697736786167998153905136646077508731880868886273241844926208467248183174622244604159505272201057841597685249534347055470298528346671272156039197630801951292042446428410867112078047046695446623504185006475514005932259111518607903137520036167979740224045941296559300349286633816514061649602112118522125325964333700107031085355008561685731654115508511227048909254577733124962389214975233012458871501937641552935754303387229662578145384702098840398003634971802034474092458850457605486247517767000629255684025556725267060818923643650574022829834757472292289669882647952227949396952903776674924503501471686370877706542137788787271418013756468824141698098202915143579555963948702193709857783721243592275252390693465562654243407736210268821483906424584106043000613660479095766379865069281177537054911478424271839448536902139219653741780922248540843807598891643360429595201111786363072635259384569310287609392560336876515690815693353763047596044995806519799512416345889390285888545837851505237512936925125183885012752491233262293114891854047803855960622682391938808255510354236434909105748369129284337301418948544020757744042004506511326940157296738081670063583356034691751756572972049833170074569674440102137865204935098320334436940216122173133964986362294282606332093134008035588041878334645228786557703511703696743112406950902322017050132729469998227112611871631158137831537489969239338050706537605266455494741608891405560869899699847595292637010231458614388166148625139701648028119740542249853993939407845718978850780853931288773940602960187080595734302521162790103062926183485993999024889720391300161406846894792686260062206609989787168374678193966314811408637091769861268354726697267417460803814924035779102704490560427793738478709486235017451354219254424948035543289626911451367388405749804615561003617573548391695347686377713439073052834973822847992537622612846054801150530225971502771550749680480837378540593716281597674725405199855843659115331231393119739841988988882714044807885629962735620566657168697854455163566693375565036687853074634996573434323210335479797219199357369080284942212581733227128235539286537013536903424776335501811379914533017714141334100556030300884130473977375060491267626886965111170002917994643950130703673337137435885926487855030747477680489670581864904913989641770078724338650424960003021610650179568222875153929957871036738791586034685064582799333945135293340299874783794432547046416356773942684944326295637025875726098999521298773326387545549410050261924737323104083328348540481460097745107281282886786214218306832338465621954721882264841855003441997661107940876846872180027042970049771744638508001927549198518166270420658174254553591819271848349157882654699448460251088624045450678789241329990147695590674273901668822326834008666923867661349256173392547982696861488323470837273947874976828856854169488398781953206040245547961938476621766102723562721833242430575820083970410218095730098270492906012675938630730094089024815334711899661984776119829717163851793470837249704439784509178100226455273405809330061789553162994299659891365312309676176325987371947070123814716561567001145291693326702176858474109401147938261361464693462552464629025917720202499265525033701282089334579446369872379830682751860788143572003928983740508943269230990266196452702427668604356011906800427784105955677652379162234256705067503653870316803857866378994849938331548438097020910954189883236658650181430044587628189895500671719632586261702246833762679790741675737444491270944739787119388701947799698103094165914854341042451639855366499629002371381627803847655793568598007545380013229714422416820880298790487036905016363606377432539689223862805718197110027030718798859714082215817997214482483619178277748468146143334752286647945555413834416800071222520457389880408918922998377998159617074440089184320024374631757680576979068650402518905757856823744439794488323040693490477801458691758763885365250086578238886768848447300997756114567011049449133795858462081225972814152836691789874525906991288356111631157798799919333878052095980272239992979870659000160687850582961756325011137563596255625273746945949843674167646295622872137473286413569649024026246893565351543330887570884199099983736978244749599757493194392027100130411891937635003797773552941389293359003916297925765205803619203589944803906701277344084399654301650937912222266202841606301526117958734483744024758876908394044221838551066433940038672315608950668151292569471450938391271624764785132802209439614326543508542803982196696116230119338762529012181015377930449904468136328167012455840218953540568630621027864776453943746514874974201395083130550108209866486072014554031428694710025429166792671740280891219293797554950221069615156379682325478564793993481844119624893483258163068211328577278464822720000820070786131518641104439726544153501106710701847559480709485502649669829121210919507457230369265498449353132341962412038268778578261574966477087978886038846036405475245438501640791910714510540425849105358400885541803984794589735818631451620081592350890784895781942130031637362159697368406859042835122672447367037875373567729023803175305687648272346569394900098092257763675827527571893817747250415299107736264994998622824105236482455067474382156746947294890714605764677022500127411841955676865008542909060617754769652957335375540933883373585550967425362814466124034072662240179466939629181901925566842407763254495751599260120591480351335631967548846696472915430734309278212956632916775428930243988125874367645544536563620055815636765057723004597646682012496658678534432629722954457486025364054243185013433437820736850125480751259011338278473275575903945964932571516157062193469407767817499796766075391249378377474690816626459512921095824983623588250155916048064896712608315652395541153627283886179834567805221871807729843218018407643820844826033314153989224212655942230583905564681036549301608189507842310427325027638350041677245638685865953710465660656221191546127997081619429540725717854335042522767654746997761892888588491356465671992072537745998986415804945448168977396275334272067535895462207851617360755732034802936998606569294043222545276772155272530833701338247018794264462415796316420951112493576398613560841594773544942526472050743058295970414394412437268760061353860330048498643432274142924850466808881085782752795270936238512026529577337046528664729618962369350577791094991387633264040593505476384722335276733148135505455655464644753998304053128081443125740656655933943138446046803214477635799218298825656916371214492976289402521324741194455910149702390972549875246036555043643131410832433716802871210448594333231172961482406461916676830710571921123889738219596440980663819805901534091149669421995570897044757628296153281825849345088494327026133459177402900450547207027647414839127526762867568640158164398095252090634029382360975086240668212095815578290530442654788377356110335090541051395037051304107953999618932627742737204824851353914421059989191704359529890013685477356345728556331283926457633117406378718094096773006298540549953091013579690499149320003863513654676994355483077690784375383585486020178342102113405506529806674904142991563964176946669960944129240752897234397825045980788233056156477594472825484795667390916370895115831065870163927193719508864116123780412361851048729681176849047261733415344757922631550235232977275621607340962288029335126020409112569748715972565595893891245287759823256222432027912821245242101309678086326826394013766405271497735170159579605902060033425044902910390914398578938247191842141180165693012708740235933694650983710467126280719302822145338344850654168500191705233023826877482056624726702156954062700204462771642314592962777043865904665721677983083305656388055125229213377681935172193052948244799411575668942154961974223136677016352064348706831909734301084031192155495364392666703874665046884224040224980157529421878999207876679664437344531061453210010685637500584483023125564576248226869054872492611285863706889461493409354639640777410495406642913716311688649473004175557654457658823586456329247683399128672558682463006122059557570604467377881950590727086585776466236874542498577396283237920059809594191501651066643999591802526430886788005666823393328620005693578469649319292349100427567099971123737160897040728649774176870405660759471157667953362124966804000793341728629944057092044033559975031993806326446491726034647313691711169567411001467458956596377184048148696249479853214251225365583866189719637877785097184036746880941654877286017927381260825732464442995959710811954603245974397996914364230663864021255002679128083317392856900243841643550541433235251364424439263002008618753417991525944086525417770450488546970176039487732469294944988913270399049256684415842232235573545233025771587057915603613719384391358637932606695692177049441994306578674583257673821376331786899350801817586528142277840524358874111855019691147830203649103267765069298617400136888102108007330184522581076098554818658831367176251754310784457799296074075797430059574368238414584984797318047344063261544671278513076600517444571949418107226235151165152224781510542677104087047543512231293352307928138107935256264338681563743167657177950988193814850445949077731555857991934649654158914709343074938903422666504719031690632098064976950855789571506953189659462417061871657717318302982288245446611751447226289969868195392331782506376510778919276707945132167365444205285574239066112795477392577880758109906749030335418445652058783050119364306748889170683158374720672591461091221395710465954431753404755468064654925443463625568407242485166652175151854771713495375800022072927086701950348339694116672980690040790449964864153770437807299743380070334522243244714160547713393209984016712467097317955857945003763036262637607431310837036465596331398543391928827386291029821184394964685681580089024389556451788027339497691024357475995528005088722194105435009881637726217496180670710434430529197149349011768711847945881421175188885207649673197623395994909772129641192129359146998452179766209803451584732323706134215657381831500051659072400284304130090184864621445013944461043741915049668689793493295351777393988308348233929762324340365463138361645684270303915889996592139426429710215626670134848250391624579275111069673972492950031596613007124007474445842853173308605426003002411937662430486858942077516357540071436132498203744022903438267105070804027231510117541080611310956676834242543882819572359917672456989242996944769481334823821159165427827993947425756690838375743279209863237233273580124089971969997921470169847250019781348794352626569888729758606733006774180840295569709128856374592212252417279794123737525962965538628953095705581151608527843851352310690942385009588366577089146499306281610751728805093426486126496222627880745346057459398761644394905724386641013632174054048551340043366241509866134716247424353737773397058564621833114585447922439371021000950408655614385445021562543742086363660372195473424767963114496176837144193925315224762525824786139800888699045293117745417617746575273641026635240448854517992670788632238752012231898795665920692492697884256190711700851137417280144753418050788347895877835973296302634534558854771841514545643892905630544816631415950229688813846580680586227966957373241009488388614625854022568885562759994392807205410089740414782856360357746751471416230340053564845772119310162277105608546981580436993436477171259594466654343540101136224905055938755412609870044938350451664637058941851514236076187442884842947706965554612715174320517366498203109671689008559962189493605642574257660243047542938642369309628705082850921246581343614877497804138905432232437646722772131266625490625998120282433137130435927145835534094589173678368106712660483311186902588395767355913919657187113489959711461469836586337593551757425325757651962769164033901114564738986594015995424437041338740409315877620958362186427456098678640549264412123316722424247850328208782652829185698156119182910789041436964255688919490068447621264083302450002685208336732999292325675159152773979844359427411437650093351174883367613340808727062905092694072209060677475595875335285322031496979146682655751029527400417769958417205783698394559253269767165470836294054240962932017414525116611951369036086827102264558454226721595009656307201465226661657185323203045820494293012076002485419553907100190848726964776875674953889259422384554729722441387485279886321471466171041299562088455900719271153606051909556282784342247090379856158237473003932362941044297097737506795550880421767174150902186822598975461964680440640553296657981770838756002902882367460279874109502084290413706232001513754582549040191608146385394038639343133995913200959983072630584500130753410142146455481054768130199642005708262851345331324704605660958074257064752154960885200348502289636937542021423815816733731515686318435705566168064992357851251712772025183680629192989991963389659175753931858198984405789857017728102266963392315271467768884610733639052770789218607048724066034571051634039604547870778610038260925882937459336076038785691234371950499355584475874264565548978368657472785873407464663887760559343410917768564379351751593931956853328925181617458222536864120097951101836475174957844374625676307563836572102201181340676864047572765948737550689104059145281261689489717482183680171463718335231149636358538111057585768217692987994001374199729317273654294395594872655230550619574897791870178095595333996850541655323520850527891306221139170620574396735518514937298975968708846865646678792032182738098373745629989751272065991731405598058279558377998164179365720881979347418910130469998130146066330546951343390295759850825646558013581366342769456281676979842439112434843972941854277601467250674883888834587124383443081281242066168801493357006738081069890455999063943724911644793306763019703000957547033571774317018417701068947169138487042518872372781798824933620111023590727132098190847776745489953119104654472715533627653434039973200601165171544859671454803360136218331380475502422059897850829384082364893787981645328240566402066921419806820866468216366817956672851523090861575181324883920248831003981879005370907249404209270226470682091707602111501578266564328652148425546217442236914600633922211792791077615421107262405924828623309601868977956398394931752312996682590435828432071514987278173881289894769487959474169434995748811627380390769113799316484404675951991093333655617202107355482343095730376547239432931892243693423394268695049899745508420260165001731696636718290603455494104804280698069958041062951635034391327509156517365329933796290967930055910646447977233125282768858375071646841376256741519745422202609506887551522625409078533869583815840893321165618545817649566708926057641327340635395720459835439903971462259632542366835522310114241635014477936932070455185400429513661467512131771833591162176430777706860080075412259753815915685318855502554205855633079947287707653935225273271535940830270842754245541165007864827634876466638312408187265157539074358985483368953729483080401273587690013728797002987929157837214837284826795410335788311467447145011446369787516502586777119488544377830580466775384890228329843832992537406831927065164101691556976849924359519573644938516015833723919410590830782172983024661252267080639843128015149152442988062297073216314700020746297991928420131776595898448952739444914514223743751825896676416439605376364936288606061258464735145138669296917312993426021070183390028731527546197008942082315447296164454276678351417779872602669894589458082487748216397289928565078670563737374545054884745484006234705798583667000759781632244586681313635449264482543320855999967012874092470518477656385000074924261854446898051850210022492460608063849345543252965681238193836254435193930611627288627213417153490440382469850755991757395161491303803526813572699655003292356110411019114346303941308064983893349928494504120634291486938394381014609946379931862860692461677953006504708292948374339416866322669376152056994079678604748749693613126047678662022652981461269328066701887818021117103017600738872708236485587688584675225878115418378733408459906798269365761858267429428739462588197791094767240522716097972868679799308984643382679119297704757972289224317535045513869611105382196521113985021355577538355668321089139956029672438480930411214177702611579347119566500172579930633648878868443887972274643880078619738695358334888335096472442847338152256826287844768041464602395177486957369230193696910859928987810340446722190370272841236061731337581065585726403273964164752868570557172249824481139947302932089749636544919942609206775337089363803697366952113696328860003874345939430239725841585717947960390800187811183487119647585319083904893289202768073616683639499063140213000471505638095764345123568446134379280343899094362464534000809281929573243279775900603601999884742347241173283022967094317443247843314930431419221581486869043908591723257375611776790835014542821375733027888658035135436856661919262401708533076160699747953467270982703267417960649145309586452925326782378236513148369176984685740632780180721040909416137098572633403514391996533864458619533200379879082463848013224033165378677024591641621635595595152407249726658525859463090950835153323160826153817176547759013487428389530053166185483237364229491968001769091998894933536081585646267428597873346446903076941472418782538269672232446853256068337136066210116684104244244132011596683752596137906609062179878191960019225618751928701502938132705945272205860350049669460802818207064817354260060988128502899345855394897439973089762368172554540671876098507096882670153273748674724009029476078868153387049988290523058297455932659092387329110118492948774919987349486649527514911867248640561721217553955315267423648713998928324250741433637549194349893732851422176539700867872284972708692151582153418212486152835892913158474895853364665606063334206938739281913423498133661508652099834854017775947286948526977563000514466710377530147579055975236944453657845967486533766512648134723015641294409849883660562986787389596679521461776461037239039254045790949633867433824380324451398833234118857134238213504442909481875136960880718102404287185048711545887360437659779438565785431687097061417759986284246203135791927397189060638257380516991321476194091879705043371419007516361980902806709119618071962945875182390766804679047299397723366979444341940448542466860544781508128373727184773018382333988892589693342863799012331796067051373254726662154850573135952843027606459841642317392456210006635039610639729894862685605220450655146085345108380013606740109558949367408756567233479300866916531831486295797292673056913732590601715792546098830951837035703929546806245734244772661368998405232450729765380765225244046458566545351031099699533713352521872467929462431385100673687061959339193749368277510413907263529132252492139571562195010238655221537011678750364372208449911369281122523135533312849400150972545991214131386941175717410121483690280606140097076623387435173615038573192693839986961717099645019957905369506179728118660202692097423272920601415844835773716674091500630584423821783630875480533608231636444471825435969696301334200331248712970315784690585264579319195020919998772508963338543736117341365558787187038128794594553785449965040340620968107565660441239209139667557503942719207019785087867663688383942436537098910976791745818951275586333692940299930311749462665311848722432616141263507115253852418205821245420080444909479823788196402458626138602083156038175787955986856661606975783323553440330527319465193180579870758449038272006074486772581579045834650049776227022262566084580638099810233819470564794870930050692037523345094702340344176159494686936098761795229797580580728613861418569686833877247228619029046388825764999065271050155046397516783613262848190405918761222049356452707882477014688252601498572328007774203881309025304167339916783822805757106607382060315780902221970948237511734633445098412649882562725845459110841791394366468972482396179402186460515526261309545971015378403712519665155512861177071301306449347776935722435519032814779212247826675979244869042821291800955758770482564496632889026453987612893767860978780521296821581103148123842612435020206246875569980781621075923029478040058793472928175158315726893915508935830673875608100206744451931262747306235963400900874523634102337419300643190324025044380909428373657163991120590849810529730925136098916750671461579122920745250497895642888865892259964144829134899677295855007654386321021914267471304346379906778524160150551061511580434745124025877615554218139262198118404236254357402666987733464610585564995134025241945164798327929843800570595107299224335078395410417666653788006562917032776440617223816422333116481764784922839743634915006430038978563695910675667984131185638133283721186821880882096970552204960137014393739965937549502847319878708247101005235447142608493461834353900119648201118120578098238924505340662642224230590719639169269974869737479202999063627987727680859686104261110102281553952318025969943829533422156844647489280853729552045126892497025908023210959296043229379136612159403990247219640525213725365913383167508578545798645994752508647285499389038826093237707481327542740410282615401819040544597247058077791920865388501528797830176216016709396885042655321552261677096117823730034641597149789266128847666509276119413466539145881151252072278560397776451295319686271107265604611903285783203107738365728225548105597724838335497096776999928003618378593332490367956605726261886115740625804462818430784970245109561872564718799995528338643908842921576209494719724636412094466345921168039013050753888247508102006204856290507688780067884449651672009110494027074179130399646938500090919955964010380874062679289029158842341352791304240886409170799147948059053400883383621923377111796445897342820620007545610084215792680737754812912965497314582961307211337776808093111695184922284023817917154784944944627946133820279794566894762695360991524789429329907735548482384872720079721915681924640348130136537898329988701937132648921398295568419057832033528950259324062030785527389171626327837060948093811374411145466116373028973159339690869821363188677923684891763017333383273048353077077249805307533472494455989946792227597750326167868123950722249846123063265954827382517760181880277338507953760192949786910906812217709324471932672240920853099227866422936434486816464573633804573327481216591225027163474143244512126531531766633286454269238515561715116274690252055415618387427913951458110020205331208234924415595822831642200034654918734531079933462429606814197035942977686311979079302003830660089951463852721362984411741993295674839375809179049852712583962018309844385790543514957842688230879304000755769564400575534144560690193566665507235409526670751055311473113281790218449055513783556832950060748139293481626696575667409470096647202462389133032958261820647678571130146912976337920743004378645394238688526496635652211509386829669198436350202547562930517169240970361985433176624973741642941960685453936908757451254363140487408624184755555086814088059550987776303820898174558147821120343524240700280353742265341212512874807903256606819447647867244359779661412125120084656942259199587442203403966299905514443727880419378728531345714866735130713855094845563095161780072434193385639075278426134537341072575178153225307203956976464599692724075075692593732270416735019235883329647414555613998679789329156159758627985873776770090741468367959073743886958277987996346465929363487438786778749953395304528115170668935271360179547407867252313610151601240389913312879436033287990289423216757008787667943171351907507634847679774311028544533005066440783968768497495803401637755101517595139681500120146777575741818171511791549519371665179366739994557401445561536932637592073571078276281035134342778308854497574923130757362355118233912912381248037292317541118812361164903401466686914769489801516949603578117005688850161334528052516967943944439470028360257706526002306145581907042768150973745597952045407357102552875660325324060383583122877635209394458277177801272559322714122514779364461328047574681936471321411094877023151388619941464693427005113023082042847023326208561569293883415215345498633156609735256825895883298886515183086095609169603948635269751930065937289096201567469176846266834493370813260267146910714808821864916078865161150977135219701949477042402188570765808209411705922588405576477341171477937668160660687928172228927578822070803757447600798617078634635940537519700678900122554594242741088353730601533275660963298664536502679468339338419416488615397396041096790295624804255387172108871635995739511530416066662346426056819985592342315410176658096891900053142676653068202465013124632404971789872873241464391047994277418683081817083941628842212069267691135760213569629021780255198325486852708282969727753096927575994638313728886830868480814023885390571847121271505230683008443763057248088513733929901168392385354092927182348982558314648995229724771459747753129657637528592765325291196982221457134093056701358135917257833645473109253412703273413701583191987188343181474926709523663311747443786269606315525841371389282704965858572972758683027095193770202762754470405021587353040544558400944609809627730051044983511590323138482166293014163720934650143321370990083784645682702188737378503219917921076581408828490519082200252106649028760443884070108421599689392731073492333783899084125761098940507277142829576858468971227057606572516620780021151179903052165787428145843716904589772771742300672031271524405266791927278823811263789826573855818491737203561308814518036650532492763761330258651966588948032636948833720059467396645781026809764637030920991204787685055771514213825090487151976846058945463853766486853817820698481573604382651689982308820660182971951430329072062298072316838887994709501565985216617929845491778705504344994183314692227539567043974257386249443933758216078136976157021274825156017490750593635728920923447294932580056274065073838077035430842502656851809740362924031540520238993743131290241742013079523902413236059258802972032679228852982854115693625199600864285460299951048946874689571193604073789868402572461573621851568009842829212871532097782103960075779024621450929396182701998255187389424176128506100052707136561900198631717021686442779808217681082573105511270593589825066795119762493746206448846339234528899156706667612465166873825549716466786231441572141492218909967396737438443028465614431400492031971543451547075324262473145833002525626667416959070789981756994881366114588853722605307703846972662464374623548376292699203080792637983946989436952652069955520388378786457761514034817644867355466512417736048052186612203867052966505148729475010743802188436162496060567091389361532972582486439035349620592752670734805606397297866730136998618675559950266109060813821656433801215342212722548846154797777008826083130089833332242149251554692692555232902806244272016140863207170486848353130816829082144348875994046486063412695071049921720148454643747477884195165349292466550523884747371404664315481420379567014934003346444216736183333985467940357343261334122277699193297864197732200857747190364703009986491443023507793885041626415079338830599665947833104871875939520372297225734272022365828954963035412135205347201282745842601025262025844141140609113663386022270690749757931082216324320820670322595141314809484150559074305717900084162575046894935572357464997547388649285002950438099669681740847142759507844321391034749563299652369753606420250240939504346830376766174543289383640865450688318864606865318207222991181507591645136154435276997631817177937123476387405899121104964125430636652559995528498339417138044807313432576885730470280767086929625995073669335961019143468337783591498484361999184840751735208189468264209827520452827271859059820158744575768160165393455434783725006731222314222342723154719529438381947659994191380036223928309039695353315489457575166796964364084880065149145341190917418355624427788351994897770729274372793182554108024823119116381930117988684159449200061535685223963432104290585721749784646224492726138247906453947262269817255328079795815059542788107639378970775537233875636543985551071384599032433592336638337431396108882759648709204839692421095258241383935437145308240219725564723181998505912846675886041836256981105960110939591824004494820799463584507078049607003700236117935721951935271841475817397307215852471995020082864106250769188379274168612945480596669542463999660715093556462702664201710730169462690792570341653275650437126539254887343557900843750589235128942251149432435537809937660159058233486090877104339438765818387883288891747739604659702443561361072538002644725833482065499675421961578388584823510445198960570124525634474884399535065594220224909333978045974508770651814637281861173311231592292634299263608721549588729208778128428175410346102648582245478764853104832189725897386065927166441903955709788354809744499662060982773872401580067622644701791139154508782248291651274041098984130334644509962505990719356928041573018537789329969751263711201889384096134290270764923795157450327293820936360231706243910261060424592929266639129374540658106224045532798696079958137426414463114451455970196626272053098385519170146030586904321047099512096833153442371837189154359183393266493579770421165723000203815313210365571458203756184965102098748205943300586688633153709020216519946314753708992226471066601429886377414415607326942452161289074465582647539331306099185541028685591809628053827632680372660666225545801554145522196568103205069021554423550333140015361051242993547482467509383961995191268980675349252235444004581465846166902406587892945487199340097805281102525252954662041912865539972900875542366552582099076858336849166191706617151820088639287902425760998006452712710908938517838200946093908435204156301323261071740034888515283011939451623794648680127786742643152167320616890739590944191496812812295652382141546973228808393193092587057940774785689952617902713699065167977299692082031686438442047775425666481711061979310102369035008225934216922228049894312811507984858490207079812710563100752389480410139367320584815650889271857428288442074241926438880969019423810761070273892236297204985806744134072468786781410059999856226864880058480983554165201534668479838412325904377692244483258856147278463958749324151885109564342732403245549222625157552470407641840292557154285802660236584063280647768119292281360872807232452985361406641553026288531478130562869237387611494243686042476326664332728108788385733586962577881384944693975656672851791780276256944052360849166902675691174210392071061606819068629451771534731341917346832853721934959191177716616432299144225913813030861265040436192752942253945536113581428479106557006984756979065116233282179762915900431395516849601101741045139694493915521720168268362447956942598798677420810096038491491680108058560837382074927799477240553071464293688350696802531812850253144723335139343968481858525431150646919294224711163989979398758982318953616349455081914943911837258272255817839270361959861465726928834202593362816838814685152398839892255469990442327417723726625195727048455165348776816189458339377365285458039010454289876279716801308423382323015140200459741752845997425682828178279865551781759316975496098386218003301729336833028064838090539013993956931629565051821579926856865388627426220232865726499731805843827366206434958437325325228656125345889121548745640610574442758008478534300009973264258757132891482026854709543815190568475492853171732977904623241267031453099027333593428432375646880952152237156647567849339354254890572995143931146048983195637350708749216251799048693668846244017412710973492998351733783532384372078533029726802836814222502522284961275442404878145085086739744520506881718854249613960625573893846115764772914148718605305624364511338698941010999599422577053220113460624110509709111429273987387368923212394887278715868860148069162313646109851771416694240448166940326623850426703089596137463018768156175952957103437803928970014846908676885452978578830145882013418692439228328038714601253789115874820697916115440034220958566512631571526306020550258837368278417479612513313171557192247357456198137393862612298161285012237919424203645919129728806133022196875139985761607086258642478484076201153884540077395428292358509444979839887430194429199250009095786023707493327052487736265311796933972358979804554485847755522096622697110817331763880833627798078936913246886337630004192605298876621574816703736810225853767699356948456842967382788534378074119753152465144901886705868545788499166496972639798046156667454472737746447499357686802247708280942419668559495367103024955644078267473632645630189473003570553738106294970979507760112935663450216287526531878027763021958253051138884839702822428346819029876818150704314325331348657283119430960469791082854702925428133281297954084632034960530709832654927424859885452440418196122884361814067015571250284262578679918487089229702452657147822574335616293402897650313833741129706474150074713824152541288913255329972596472596140417790241209710546123671199856964020874727793830770457653501042368179995546962790148404657577410403304129507218974462781460705212161296456609738240924905309739730119687992618848512437044646586822795895276702908516247349634473568280071923168064819375221654753856176707594777536020074562198221928396830382921946577869087681069173389641175781826991382456709082906519613958528651924959054524474803656655490673003339186725305088752826253746369937588171897719541554570974310459151106322688305053058660712987580916903631721791828818528313643890049433613822513891981916943164261974085435990287140042172773612442458980307517468081828475428295139929393777589393848192063366852923667779412475300414565211674145915373467971513927288163964167729725501892553463893748606961439709836312175818072351979510722240998226476414993871313025889164007353077295418803498223963184298703466830886947310352731595573767563230808338899110716722629434852269857484926952583727688971097595995974841223349435159396538291642468871948904186180451914556115292095187838188247541726508483555053993400569058079252901164584397629989400860256452618785542399164931851654914181400615176716479828733599349780278111367616377090058012006079549728556241450490327567784403057725295923479283998101348446982430340878312763016784916232085779890177757702784127371687253808798363814065568939608054828293795677675263916234443734371822444596486318857568170027704503591928372788933876493876844517658830166761108178427789569174332683616191731379068878911128156907277077657679584122303163670884791814332617170552216108576568810624586069306180528295389356866326526921562123533337021118160361957120177613487208919238138594674155339356730253382051403624748787830812701045655031850559477442215612259461135022036934779546518882812574979248300039463379061280699838074623457245781644180723366225454580411635067738134291911056597650941411054388890926983193581777965380819337466466694612168958755164396741906257981548812331146584586110242640587864528713147739909445897574410714026783523695871665810279706574576174278325832769755280066073321079562848539071501038897878630442114430066170143110021736875924460276931025864322325343177262389818527344291930088357304373596057285006934257247976164660529752359572908978476159744114419427381507296407412610805308677078582986749723470041954976985487629507857992623887171573577263705236848698315678587120714527257055365126850011832377218726847157338552749336299736248744871525937649858531077136078852812394802408651167963069680827301646022844225340462144496688536359327788244120022611551081904013324534135265794476331191325581008731325320758459602163943625315437615148958998111460707612935001455036357508209169719471941465182925771805462778822839138947879299966655763360819321410451423629872305274884721585091767990132317217793293099990746985160527597281984051285647765915410311815657505773697531092372589140589279281882235209730122999519997058514052309148441991587144554270807587527493708068223726208220122932329116897489283164903914636920502212629113919468383163566935948152195325791120759967099019787913644586454164082984336139232666925211001872292493508207405840398640008092452116777549549416592966323806643029957217461760829603679272755130604055736197238031887829017019238574928049063815751525538093317428582102439104853859857867212341783068810096238079516326436186473951648477907998057446465923521807397829086829975566043754711190843588938297433914505044879143971680220140112069534758056816569523306228725469926408888660911283953785985007173886642173334927366530271541387697037174818876725410593437041220839868049829071035700468549601084882806596008301404187048903462421118180821277454781619421606460746509573771469433692482448528248109665073621684764115430710117927992093076530191928033670482429580454360278728962926736021306247119910876978821429371105221529914328191017700834757879610827418816437475047514661085784383789173390612283526678954948209051478296787772640283984438546393874014821988048689284088253328407433789458289455967256091382743941874964509121940620713917918779626950752190350028791142418505484859858581379675232035495184624329676384070774997258313991367546880485915429597949469039820427772756406019075565240369634033748062909181911669942208979707778238052928225182409536929025454276397708075361237188759935463474059723235802407458454876571470872564365683706073063625686410363315135645178822174401267684938078929318749922486102852972046701194769313503910674325139607775397830363095645503323829237433187485102671930171340724403352899352971063684546438938595295781796955308849246014325616607012854077410066566515083214673460660331188110811775870845393283924164596844961078125293351756451462984102114245936782223636910643285557405406386717898094424944694327783427558240914782750937275456570644122177876607544909280165313196280577204456026289769105617069030317342876455933759917688375676761251707583421556126613610508050624474766375919108362531721920148860962834127793150750525737055105295211167238484796125593565197134041780974830350840312609934054825711832506231656472033292923433408645197941148519575338532534098218093340703793078150951899384298258250381418537410750254147181309150112152151739057298858032506233187870720436331980617264507692409431652423873749973632415578575062024788337584785776024996908294154724058966221653154635388519159642086820622142326614477229737238802901949915390979473365756301232718317983684239231553524153583344711568822914223402136075647563568238475754882253529844582115874284363451505657557841240227806697490440019779591504266699209322863544246634745485861009907904380085822128317656937286602043448923033841693096628572981848320998942658417390176946680257040989793150034391242618291211733662529400821170112195504432230030431334933328672563962879205938175577023461771972948594526911854028636248984920835804467256561348723567849803438691410557010560495195752555576854560196660565160797171440262609667260658219002083383080694804295707890774123416715512842011443050012619810125635639232408264909818217181517312505041859655330186729850105236167354976496315359369289844472585556467146152882314887347584692642275730968387704954785480479737370138107519864266825989968525421323368763419240901291877985688990913270840495838001411834935086514258347953043378037846127004094564383373671966680733979269636105897851636057528110861654444364134734993267894380097602533505211317543324537110028141025902038752716717045557863351686844889604482827182951507200866599228129100020051224792685487448076201402661985912923050430536170377258691001947067275956335953969712753859309999234401936871210184724574772112591484939989639900802983063426345101768861834591518292259621829539064414703445313008126824394394819763296722377901834741317558941300885674043009039190688815783339914898743665384677519480964374385692794524759839023230193974371153557070358594732754073507181321071025352149097628471609206513866851418116053957740495111031386574661203495451995237395643912650139989699172612314353566301690308524999244648032240120040785226855548790300570813242708866349778069282667847689739206936290717855652167479035998341574910701177423867163510882820758954995750966442075204437411596378478665947438517449901434677539317310936812985039805882515535418060575760211666022749518772777740319735843107056646512505533031346252681132640720264126795701942023245547176845218141172740288231330822586973544717519508053072941990868936147353652218704504447094583740442867440493096800348988345004755753696334813791592117225073614187410356725117812909291534205834971641660963400147865093071759126756151531992193064398864686191851448621402300542734024351139854512137851228830772594709429234770406367052544623785665156783784659134240819098414251789694529956765866648580836045867729020993353244061904995920661742528858629141225472686810910468344346391432823566005228798135299097844189711250969221744485219851278905876484691969938232037425181424754228213464690325894331385343858300186633753192665947393884124794643522490827376551169807500058948598102867204732848430646486397391121590977020539567825475877271113792521902912553909812602642499130280507812661812485015831789958312977806496954829739033317470631990467330428244934086378046660486080705406509525148424762477431781934508277148828502253016397898613155160790333009667116195099262028393803540004170195141283043398648130020559479332054707896553571780760863753133203160007020876786957286309538485984575214074310706060932139563346661142571979698411404401701805218322447492592310513975723833204634388552931992524700280402214305486199894213362741427766408686569558502454614691428782987434910738111449507935613685478923765123208168760661503363821607079693032641253608162300999406082762628366578464419132165746966626474252185740145002622623383786911341170561410898035082888191064754687510302644336824256693592924606074559219166078858552929929115891852346920832758269639874017563562029791960986138438975578797385721418181958251220962150525080634987394319755822588143186588590950145035875606306135906338051567073533090385600604648330659485984438748795215637349195360255481832467225825705981338466084569327840822395077916485632956355210597460670136495161723225602302925314953796853091476810182589960513145151019481392689976738394566042007824173804356861140074278933998987142828757234275778830844646084823234011229226954911395750052026684952374584146398408724208548200432614962775898940322022576663046342059957411067025732976309653898749872182744392093745400844882409397994688021863223093647225692652745736846581399109409927856559926387516431068400493970976429639188412694758050861176500773947736589609074095185549918810954782270573695342318824376188089046973292976906256391305011956491813617167386810710076827708739516730638997200333180960786343522605332293242803794579894975991490727821253284300947731728173410793985123670902637868659825646981227763261878372995990083599150919632388432838261216371651887406959893725744449405189516243869236395410954592251563669003137274349884602576364699843696050165661466538279181876168626931823102667563274633808037154513037060397118758648537262474638871013095724371585063309649461328628033631492151642896937581961217683748234946982904309756027313180021501974305238503137788878900636942930748865258049712681990645379861182242613653909616679823709886009410843865189778308942472865218415867868524689013580302678254527486307570245499741904631900674326187336969811379965989828574295848346867618763727060735273698455364577581194482068437686667513382508851285229537748435960618649304829118807933173551460152890120723053058807400224246763307205042795283976792728791305065083245911473476720148193630260786639886273772278471518786073550181153511577021988362933756264390310833451725236601713640466157340301606128515864959080925892426412798639630038534551075054335397251016725401573781735956178877896137403738641646820879470480072569921727348721829407107763069316848889835908267879247499411385014865000567575820630081801631719323277466291692845023564194812298311147457888788942228479653772862757610827770722346633275047148568830279579239788127183841704182314955648472713460498566689057501944470543618779784603044804968377779543518761621701792774520677468853592368163074105211793897122509922195375846672088536143991473599528088889973199795290734293633618897610069367176238237717288698893851629532414086290832510016433210599294315467164227262716565338510323738812455640179971882444651103929620633781171153650169899357209042628816050618234834224741612928066494618000337723781074539383045563775429454535850702191967576480392617112522500776227627069268955615003575046683211011706770933552216027024758602546244325122049948424364151566820580157796120517907636429761456529921446264589116649322851843561414909302727926735533350492801176276839621045099482685433826428965556704346099388015825436434223618027162991874392354456771473528630618595181462103280979868040571026669656379116844242306300061003927691804867160401325633637582947901400650806687591287994679292182568361722320248420475120061600228346334630018048300160043570595179603992669182866003255900254045701625132730472228215640037710026608735917233477315731325144193677797770067418750269109570963412530768370412636526951363358812211497727305097289934015787098384040345102110032865387994391442305468371250998693231539746692057037220254256530145710147211706934835534214948359867064545731233403935255507888003297894920185681733396969526676302888226390817852889008349782557244082155037362669627730413501592015017744100368717209535075450759559247962983493703160552278473811355782277806522222279021222937163514056456005753458238785629152235450227927541768390906900979296887193682886162949817545923220684985084430580011627730132872939156768975697762622315368104437006678421837129331509430215190429574287687095467214176521587013559890251111413712855700348836965000129399686853411919530002757642791704074949248721907849034458498568841870625244756072132170276756551298969264289625261336335111232530644909040303589891496713536884216363815462324208926764929596738643660362101127860881816595820908939415467867452869803120079673890229556671325474387386635218957181862284350042396998999006468690223085226116817881247676096597042158121847739530219393395869347388660134834503561718094746069409478624852977771652793886699952535287555415771144516267351820040533996776460789333243580907480950014093095378799554769399139550761521488836981080138170921338831032234742282007454471917626096966078081748653283993503271253923912000742415927755125064402463929711025943169498691176910150419174302272635660722958142090489003569958806642654698404435444823982627157557299377113654930722681853453716229777326268240568640114558720452361041989792634092145486796363243421270784937722769049583886538055597641175101970677454220043452762840836550704629311553728423623233662229714212143382561526045921316792853916371041424594550046452911403288141095192766991811706617601389112337028461150994149766055540926999022866157000047064075340366385559346839251141605190081806708572907947593779482075813089498178492586731372734715314926844275970558131627503325553668615017743521625761812074193413243162982914186655953490089705276622305931090933374011908994855986595431343397998627787449549243103746506033272656104693834420361405424254472731200139911803611399779041295275163975556847631601983988362417477817573486818125145710619756930976870992091381231494757851756005009134490573426236975851049820933776569539247758336367678259969184105281426463247394094160455371416495184877243491865134330830797985796962247087392918849143981951698729922675711789223211403567688817970468807283524964467971687824335899122973780973291780415902258643929479365142789695541933517435420212624299356002002603587256591598419242950155946280780116213672583838032804857028689493759030075974570920648190544716611561001195570363364242793766080560667856761500975172667014871424784490704991276580759086199512770385965409636761634783687214609854238486099472212332901929714954777278818882665452100760012055827884350423713892492598855161214589599998028424244871366370175835953167625565169490248887052126423673923001723138314901684063013075723917294556696308876152637245950310605154878838970327442115864340782866793135458601091515055372943602932069648653063273433850277994705413172462074643097468014839812966173566374362241662836030143432656015434271095677683073338236244597762210221439939059177553072364967836779495753129330328802318530227897220772663008826880769153032767460144698239982146345141630335692777365186359966749846317444906405174519334109665614657801168287205203460598461938882468090045639302087155403749530626790672561454474159664029759460009491538278541951604550001380509736428172792209433859825618165537908763991924454405990051265293720096165647523085616082740905972928153368613693844442045309179211653541060053606677038688077170476670945720805499362286635309120325527943179113579274079916142382944282129684032271653608534861712536744519947640105946898325166807513557390261543153542083045156181987921622173195307607305294581475986851773343537040384031017911942932578364971412044149546171977903400782332079416339052434275427319580656828283913893910988347877512655273918283648419730202206583495813958368074923229629917865918579022084813149539846208875658506690822377196799643971173785383068203347459075554945006176863453276055487797741011543185560606818108366127113686359557921667157584191501367399362463624859751756600097256591560947278754161642079555870744451850112862888371879982165791212153444856563747904971856269067452425241453880106881219816395879062732158937050099800057288872316486760715312582095032589458690109997111613087863412465468791583055259543094147593315597834920092561914483127130487148865648996038909599450990941611380393247591178128014477197037997552084485180085192608304517555946079176734373121153256442720934718316085255478708079911517491808235217689019112065610165979428591743929938363925568284963317914300063470833696580608830507177233628608153526407996506021448788360387250649594043925386673861221361404248083254499710363755120028788952674059253333549721419355443640631692268388710722030396071947682197707015701042399407485648653239775961322823259666837036575299124961722702546581042476364249585087777804138507526204280693740332984317229598119985970741942019340324065442545732696840477217988925777827149165339698892287277217541568953892625948115593471427271275101003003432701855087773442534265743033882039101127821604969252163192415474877808505310990362459449227512679496404480658620142540504636103352267101904767037887560220699625353643656381515047797429805239345629230170037958425153329407625020973352783753364756530646515103489477583295368830193991854972833375843278903238441112354729279162019202098624074814412994494462821248646575572132084900472820816425914491165179081133837145008625497864013220916063664372982215949958365405574779097920293474083062483824985397508384677480962349018224818090149289963505268093082043389284629562885128084612992799836244627062449449911413095276541199564437162757463752706656472065770579874359357147477749086103223266614023843727281761065921723912665529168231217204895832549806963063658307281896198408525739870515020860159842303720947660825074771635702522890900682736971195628276809010592193242815499185238863642815375830333054042471151987721971088994043241488920285459115567057483520466811932834222001051946513021960158708201449497374655999900258940684836563713959896002958301952653598037735751727375669904775457635672073088538497775311812707787546222366206995921115418795474999413314950274748205270033581425225172059904535759176925255501880303954505392289698837547272310981298833522894039516580955181523250081398494252934477890035724825549917178497001398098763286355161385516287188914605543818509075006330060190796282408302807245003208381295874845104412191729662458621492187289240509236813194927634522208469220498540501362875264851572651423616104347768557304387181167050739102684587417968913946782317507938412049581436903619439905380369501912218350029807278048664179746257672642827014803429364131638821586637036261224996855080961826814613757849652555664391660436175680016472531078941376959494060250874898638302018322983819960106927053705713807601843106776846886292583878211540494540585077355167143711436433410323125871707530050802884000999560511784536915053100261531430787834040434054818134289452165563166317021724477315466616424794324554361951628500774090983898490014000051482054296752849189628284084336106062459760817132015481768913808261009775167326536036287891178634921736639690984635398214052298746193616824777860421363576209625288618294705097512848891680448785241291171912793494106650060363315173355431913787004263287109307428340506460315682132807634943955548494008668069963094309189293591358446456564544009362340489942339799118268555821048561973130356414085785347807457974950121270590036628992038469002035934715351371868614437702391185830036376113477658996399798785653626490402068149556150661306364534970935715175014458174332224572300309430697763010715028988536344222424899403579534004372108282123716085757206881119514419497383025739543971245308976635881404249685397727994855307865616665787218906006895464601612356171888614232756409019154747577064025569759082307660277176002961368882258331206293194465439016649548744082767684240968095639709858812266895995410936308828589962308325281454398728157813797725545558005185281879610181854443689000772693585732463513321105102398859203432097928364414567641184796466001000878008734218500527983038198501833124127987410017310758241094441724405280884309973728808372094389853928755406903999559869897828006075600864631737021963376545005227435904444419448320140242287620782739178240070995408000855645284209333047971720822561619415867725712253259099392389225824729000024403737404221970255182586470216947099874613396173606369254346618332237651360597299625078536930120226286894966851379016847301283503317704018255850019679489046173136679714217468047660006181134267744864561852551879442114221651224701209018006926070987695222338348626373096372972643095882026560508759143909176164346901958158983360276328701418041070918554102014273957465192454073167874595529476403663689921243330944378513442017177163150306630344511703557311096583674288110770738349035450206079889972160534101264908763084360045869156716854880595064764287395863498461668821327767916086075997427580044491238603596903388683399559955288444706714796126532830959390490499420451822946941553815113302725280274208346458762293671711072011573739714833430888382422207329582012011315926695718260540875629897454845578559514104787618326943250244988898890086613246485068629046062988227384707221325812907926309021923493713144632810944357098444787607069957174722205898975135595140848971143048602956173074043100186356566849673025237182253048194743984263845791131912869954150204727243883186344816816649102829436437894474000847304298006727273512811106917466859228610014869034725591456107314669778191599074583976931220087664977206525234204736681638192764381447845875475078332464384581270005136249547428806487188460627329514570333465491885143994355725467716341272883503127885427117167307499193790384715676360353681097347939166854663403839390903888116203426096217519231382269183729973552625765699014267231559518538570125486886101176861352780763476568309321839797565835222065731186802845001488793875426144163682963282572313606878211919969048256020529175758754573929691734203087926238162117637279999127066474604051299778347173089189032985772643594707048490425982266797667592629923877123324810066985212985569849501812324479758339336504745021376476333737669611466578163751204197515979033257061299698573923758773198510677821449096678816050858529748039999333923821954460401875479921475242083248512254518175397215231726868173884144890574429989054490738563901226053749099299185467018863874280750959941097246375833712163370386994548032988373601406268772114387260836469970116520323917404758145625939425418719926763840394171167220917036493247608653839646352849917564443282940339441002602908399731630541893819221637315720649623232388246566000410188963045943026023937460290594970011322125091845827356710001575195451977882443992278692346517845564033061842516802247013431905265348456122407523300506081294891783710705427047235975598912230881441388818296035624728414006404451326764898975013500992466305171830374341843834871463887370446028824887819543357878850637964626541376943861811929634280893834319844469833221639265491367885913273687493263057027234032050523888618200096212456052076033192835467024238172894432036809455099382360143136806665967769148687667499241812800558960580967667593074528989624840051328448434753824258455999912417753383239664370706269983242013040489233738897843619661957214087750038652340133499180711736132254732212460559246162497904222200942465598881110299021217704420263325912411498997344672975337511965065614291949916406261734314762145181444727891295698691935449238828986233438011022313901813417183289615891139663153529633499429625716947318299190360320801246593237838684932337738106361750452042988625103649635749195817508293595408421617733181723702526022178446091805838344524620239131747756807667113580523179421472836316735907833643244480293820203432120503585505657606434306342213725246010448430551330037214954951882679482061667242423446004114269942175531974057311158209614460917566358209080476904586474888751779436724906462516548126859831867373436113028508787205032253290235185396246335593411559591619156191051543469623913539438158894926240918565992092246418903470152298281521960162869799588412861354758663952089946736400581017659406415865903447572463228794051808369762593670276095214335396119795364188119892527206963734963191628004814009094220673661090273245420223802347907892871423614737562326295196313662345003985474035114971121914621321839091582988742054494546287683106164639683930915852819529552694122316391617181810240309165570921590292173518290125664204378228307453756743452434267536814801306913773920462192876669102614283239593497648540211846266450971315316010233435777156788071843252427519462838573143987152758358149104241909708685726306699937305741536290050293478783136966426402747951740997901361258223178532826435138392258784667554068882401867463892887085351315684009752476438278709785883598977854536563935019077531739490404410843007441671217819574378868879572903644581697374363423778172907863253753608923211841091667476203171182234488782483286011434016474555941572503032202947416011375633978450406228954649070833114701497901742676773010949207621533157435284344518593019704561011434148289595110646790744915877307778320296893994297673249146799550102237285839106844574395789983111462322074771794704759966698004868708612723466036888655246310573237416383330432937046776322584967098644996815565393067077919385126271096303242287992391680879346976475333287479768677021790592491368589776916869596606896077329632324418299130704445564210445174007970116372406944596207114885470195233130450659756119070357872643594120856354492789615259801953004373828999856261787733047187443885595873471281017135368892077827256925389891269007302866191075620401766331396269859243379639687579499195568113189570883954331340858472191882459706666524221050733078469229527293045755758286188760842784210806995893391961990073820371386346280750898096972028283122979039535227661485099807153375275103576980970106565819597525279642159600959041093377745009396376973340612477303750797182943440674377453499284767138957864449894245026994157922458727723381724537978709450117422075692997115340062025512332370315041646931429325037104523197403895264449519885172692105995382767435504445748287369853508244972546310434135601878912725462661504204349903502130534077335554846199395242320704027955446076934592754358120439081687784526580546862370835463622286971946558013402700894154273339956906699802163852533778163452904862739210056776590909478398621550039546716457101140072976719827469328143767451579713166676475846339467873977238332358897716777740939552365358295669072673628490886125487501417322790592047095679530156003303090427308591886526342680550724830202643099889133014662024459707613759187861142811704029765318106564724874831072857289541323402710612734727622064842941765376352205496237804602808792181384971943071118399870334524777738714402817280229592772016140461342944965420265163296979244753967168273232037396637494038430099787403951360291007172150226031190182458873174332467452507602638690643246105665333839493948914656137620931580893046177268327912599050432736907016580506612024852948282880308019520354909722656143535247364211609893101973732702020233029758258890297899197171367572718022459727244784256928296157988094658496181869290332008151621118730990415747537854195163737506542592741037133883448104718189035522895996389578026718466629254137072230944334282852477733748153011316937060337146795137249696760401022498108374092482913549696372986241514509368387563411874996033610041804022057981341468780890945899298842464112027792335675685487079342148432135868126644964615319747986495676538547770195312866743526759206931046058470656091986077039032857642648118047117394128965483717594678702917691850545483501476876609458097946499222671676994300266840362636651326395546781175496362122146885709940355625499453298658294679383061960362014724025886149335965678934137442454416956727030884173252644918104845658799249324989074601832375812268190648699000498722154498910746296073306420871172536845511336048623696404100032445087042176168962808915165905158989469767854765789349506791083704896447308948564814510906442852046170081846141601593261898767937567207306246036176652137267629357080092416837199448177222820542813988209653885758308322376906919917236327373966773695414870986547159905372698254655934965446303601638900115493363556152583507399056304368833551175696191378802434858020067226708514739276750373512692735937307207412597158708128676058178236179172253643855896671969957616787653898716119293253273458779440896342568400410939687172824981052768393374106981562218987851335584538177123366077236918013349585675122727085615185953814993921943577474605435007849797205812340527289013516104793312831641525660829526567439420732440832440384177040616188601245957677121522266880172959137819509354139486675723396692331012395557860386423862870788777384671227672693245952519810372469295873540149261518731408046298386424571016385629537104711069884505826049264798984275023838367211569249082130786856878046186819653128457355909756267688449675023215337679048831332191414622568586738704817799769015401521012608426615667337998361778041992446655011571904529306915318674134446294009852071703682195512658915456779527397619616429401793897515265943588834749783553255869399267678210793984074808710468934606111774772632008728813814687469511589278311986845631812610584961354108944327630305098843014355073317627456292169714289558611528403047234873946303950887736380903664436077424032494495462023706196775538916573822163319704694069533554068779048662592597094498724094303939324940700691280822578348343310841468567274216486423875288592518608793352888535084866926730962630854817138926918399637305359082446494592171540915241091277614660213669553762921935293563432759172263282280422501630286704592913454047936557960572211891611279402425145305235040469041072412631354327703447072140625819677425018863471624260296088448198516405895470924619961945215971455759516749039437748403861985889317434995997755437868536345411219485852831502537229103782195024127330213202207571290471606808456502409999598242396532242466961098268155145065908217359405145396785936194210363395592490547550877157576114232569246075054227303289332274646230788602888898948209465288495202976051399942477819879085758468346216321617835857664544250752810945862776157597830226995135638448633298736756828046073376004358215606484653451507489677755433443144982380480286661061049262169720121494548246362741758653712919753658539983134864809152306634874026672458415866053030880938290654342668947804884200531887603050723593576105700383703088993038480549966904442257143289614820708917281855736039542107132678641717357942983550030414692459584733466583676960063382235932860185940641459160425703781755231609214244328712703723565259679276544946877169009174160785946384986019053369197720451356555034111890529747219835888141265089277067123224633917539939819496294288156124851552787708352984760213934745608737203243329799865275086339266247420304982098716371605600464409101963709932112344404773355824855127690586083268436334897682439174775264129741433476556667196781193004733656340371389614206815267170996887271827236051773432737913734217202169027986287744429001140142326600468351452131194983042279523305945013590591159539273582022854208292452653897458306972793947427108682252800488314079897441706512660209096782464989466281858079776381111028273166015473055277157087758513085737072289974292240377329969847044131191774541545470164638972609086241195376052178390548391911131279722901710227567657977732457403301160524893451072016222003018665866691034441852482614257970821922851048065036775131272680863403058893201537749711071314379663394292023148812744021120416818587818956896434660183066615600793625149208600169481841165258091025313217489900504087747801188348615599431521143252424536072872905420346626412417440668408518808183664606725208620339025261545792988659866040167785488062507937082876499023854972444925322886433064685420056391602056776806952163808037768390074203996762630010452714168695300070856125666267538451005204434619132947234304439913606339352668060295131806630815401597199017435031906813327181056149478802768158124966806944659552739194921178952031332912843992749784892579561473668941090972641393705882359632591496579877405715488703640360309449762842886898978667451785386965501723281118050663389915025326122493921815350839040863855858968958415592176480679022875930458267549019999440990689765497902968657684899637733471183991865681301937780620604568850805003352002563785518593002034910367322749698012407738809205578948471127597976384584494863664996048150389650781911372726645322430472571592867592602450768959698836197680814289529289876866184679603731116551194559380253004911015165399562741979151208337205031569072374480793404694384912319684976977824663124251361559833601314071572748064297208890026487409180714897226199539326448182793561357804369566351543894062908247112245645802157325019295638549472500725830369932971353603980832910422504513376028376037418887058355174856552043418831772838296163337070010221187669123779359906010031851597790001527881644775607335532977042820452350214888735265447944300710392763498579649614289753556335965955805980383619753341463658804181433678825121873264823567370456819639232306448756499446820745935227028400410240429246553390723966726842517481540547429335446388782937484801383958791577391006718812531458088761897328280245711579636651890169878456744846087131664589006530331998040083264429955276875991633252863440312661675608461780129986770710294060456225045495774834008172354488284844243459674153872298753793645263255799356920908438589169545111040753915802039345154106581977411347250514017510726567686435493502330243412607383269199411667364614498901584146688797710014373879496485161673494358320572044712664288192814887082347287612085791902967271543560752855474161861082214323546200069247127374451407429694090772984085821153448791684568455120254608404275830160456184070611583586796305684473335037627880702862445333452150378460734016073561879474333830624810577700455748326030138279395068389505992438175380389301557147301050648713898905233218467158615604612665614453117859446429623438690693789699484739442153821893061653001644028173150085403662773028657003350595473438158049106937111857875396193873669743671157851726294439039940113020187413082175655923154863613270988871239426524687879567105864244316389688156796127445101730746443150954536182022512144706744187133863327036558644183275149834466596863779158270218543070949231590474544335797795212305440634112329323738363649290024369862015387833482766224513776155886503201895025500883771166610716377366084129099340751184624134444228238306946798497246095638795805940574692639899566865072143680912650032149048621838667101750220750049963984817362837658033465413751251954777234607545436371148637395523396506800911232739179973444536827874247426271016068127202316674516315449041592461666839225497785515588149689685514474711852500172407845488223835840579679636648869820020558923054731055080631449185272383664181948498815313588877859749328489912781104278315805095926122114218724571014613120216564334385137670613010382138493517551899911777038557434315390688119037631599524489021575696665883261490752824613010376753389507842071299417678091943879476903963765872737353143867251912428339950089182344813277968274044626885102134754800703401546092596348522918014219932463424790058617738285969887151887856555303759394352013508637294919361400149091845659153000472213984503756547906725887032188351083263997972449613634247098477538381156607960481581114606746187696343728363068181606616945046982505376905609956489985023549410349286006797852422318333781243043599188784786927367278834106849211038874449592514399278740950423444309563353488642122931943361557196997210681643675067548007273714639878529346670038730086451955700234349614457888336589459685866620138427649040831631736080212719860563117164738664920650203860344718737072578450431206407963938093092246240447141555287864209074624288785180148826619647337281501143930475610762759793122657396490169683397248456837726120790550520481983573485973983936208555619989841593866521833700920669578831198345613040563580761655736708840832481689106827607027889211476919450195915389659084371014331896251915533380628746566609409564207737804935254118704107478422346601539122156020977893312664574950004095579180574639128038105937997508472251790118985201517959531701255051661133313085516518853968259027480722485601661643681448282655616082788185065454518307850019939620286888349317581550101222276086506858648715571836184801073052372149251083840555613507961323526495485413412234937903920183606360386666201266567986995669386879550102851676661583253108534993464538659863492258645328612743600776740806400560178493642527722218213222601274122420733335719519345158578476060954718541557068971359017216160091327690321078249867883876671617070050886908830709990639654624933931902038748358615982204220450808267552750564163704888358751197180583981618499981964598969402957441050813156508253886620373528434246906467730346672214844635216392199342359111478631808795655363364001807405424497816438333480952219989108147618574885464362914516610658713782378916135785336056904726811713492764304328158370751470570070981706074215027108490983536237134291388946030348618528902019502138783243896586163392426646760068843462105003091253752650010182572445838245041733387018102852159978481544067250982555437181043904805193523386945929558689404205035745333674652896745961491897359313861665785270089913878681596298032601148518787402313937525795062005033223184069644083622408135240169134009877561798567790625755130038020080826246205651114574381354019299918960295685129014671090458387223929143174741549578704427539541036000585341427859352823241306246997013266965244955858249214580557653858380698930083099633633700444398760928564541451492290436395361648681303600212353069373977658547819526670471065227214869523000410098669310962138044053921132608920505152314878454183886898906285355306129463276864138641146190193775283182333870918478276141457169957442734572444589897720344802844189543443119046289288009293818511204264034553536024823381687323568362271119509336323972024438758038794626946804770893114778230297187920722191432898710113450211020001260298143296879916329589700790472472208443592144900672040561480114906825788215942496015730067851249867765866247361470708117592184006517532568587206255472575278900812653974758748672806535340750728735573263994659772451065258239470770928645216441895240452338394310169903211997173823435247547011961477463075425882185895383058927482738257346188479195902032786871891713990342626339055784507322186062198305581764402424275018961732877606909521237472896974854271098271789687334722573186177772724430187164760028274432925623920198772082367277780405854386507858554324927322340952022768723602105234871921998971744003258763792888881797933279392741772953692724834073246731268897730655530074283000344885996521900467957110531039608741976506439937286548262841625800092709771882630329076410720351043526705167602609293878642285137106721626293884191486262488709607051443932470333277625090179899639838077534277262062313620512924214539125499345445117048911654081974178451291230483066490168686086863670710505411406651481222861363951517249914442681017658634579234889341764518195937076898261712898079095123359962723669157197213126608307637359471523257308323049039667594056552986456436679807177713586954574081813356569271676091317052568870258583643611424758765688637158611881535164904330473908345048705055992571539284606873792138723245744073071385229154643219509703423988184456846363397587003939776981100684331106947291381839890410558807075301374564878402737350740009125207671043455915224369725962344452607923767427874040882847241200683996572955405795912355344397870160244261730501071519195658148188349925997698060722813300419031963005307681624676699533470045669321356304403270250585011863475692149412845223271716175494210602824130373763101683634626353845588182510015353893039840060571242814576489524648546840676389289274673114614259268230655005136661153916571021491436013378285973497705067252604308625480481486102114948435878086981796405700219521770653468608104605754723897834407721782153215456296472263727178653573550649231450760560010673874854575916774069739224782986826504853575525019726937318348794501980621108175196942277515038933634986362447948102937483061484409142303167659409758041506875664316937301835478883487369515851668204318403017125752978903220931945141034272637187373555319779859814447031980073245636362225766802808675029525130614046561664999845362462962612717779513726472050838690543009518481609389757462673206394577747028804701889986743553635379496979179753708908872143509242611033219966190495946299690058514094789967180185187847915369786757766828751273398912320424928373269436052860864470329368655572173835641687269347460987975782739817477025087065375237422151485600731551414119944988518315268095348600577226648897037775871852778646772587625683974109643240212700366862990035018354544457316263910724718638886660508705950293035157210491675430738748305329694021326078258502190733262411980114414803442090838061447028145943863621686034923536621166424427554719792945353364930764861264310828661159884842813434384680332130375153839324478846845863799736910704051436938546524787061365992278981879151946250148397170764665982274376317465231384816437732709564304119584298916078955118785323163408235891567362091110540673889647758028216391278964627323200435565867099864112399675965492866720186904457897040748499768038710968660357440055163462573112796157735173479676656538358429206776031021855189657070165423730720893610225469316912167865706916184345519988700026753531329713502974067156685953936426593790146612550861318076751117384129374662209800213243893868792067496391882828397542442687617458170292718733891556891507057910181429606963773993025806191452224758016567564122624755561701137249675813445604593180620617008283262373882784132108003525311939813886876809121435253805377711577286696865383124908946138339362325787976625228911544058297174755834468416514822738554414085220685890161652058366251619147250700675219260004815461506209037345787583219702157770768570353863426287228669425263060901748194119574351291006269259649974815032056327326072476961049544578775964181176365609667455248701243520095764804748046076407120080361406818908371671300790727322325307713402794209240951231629418563691315834687025626555301254779228025732180686843610840577644160860104109036958820867257212961297066393040390744640656532927958507351675197683222092426155624086570216681067769169718631707474537837955733253156309611510048282737421769211550636058687889248632761267194680746733326436614196035960417282318271732169702148073317792763828507858997719153583919649660372645380217236743235248749071047768518613997846684936924487902075031168896699282697312018827724318048498682691445074660505904846274182911802822315885889556661781776953027510451386018665439100352892091009300612409992856796715132600496405479620782025784382750539842969417397023417381185054885450160790761000393483860687212599926406964396047351713638752470015542164404219592444237578893878363983566052669743565672230317873288777222702332473278186644232737576702146995456188480503809400073567393007737882244612582587140761725537420990498593684365771736158458929253144510208032329348566673733005949473537380699178571035913754730369461630044062795926059750735711424610801655163466594978239542832573991464893791347758587040140717766225359822151039149529534010481934166178990436245440852954528413129539637577584923834494572432914888069802087981333446097346634794675371032651582045956864153763392990047844229009910645488428949952374609879854477130555775764304968078411541974471074433419602626842771647398050470784814141658599811851558884448070897432583232974466312314812044739304798925120485898915728563198670580447786863295514415905314919613735331679159632964612351109677374590776567116571308964222607691083636033647779782109086709537705964562865834941499759239917212442917055357243866388815071694688551037339553741449204519091396642270545053307148916609536821049802264170002272525684693817108171907857607453454458541580025503333122911131235033456892465393468940068763360607542922060655643192295316028530988632659126854221518007230653770113872322756178363958126677664262448405060988711082959318983561116155653805985248308817062860529247024513390017158590541174416178432455834544584354317059761952628139605411691046521786075264921091600413128106423251864146491726943843203780030819452454341606787544147928391119095198168531768752362589474001291546861408988111107460909968411784423953748390719772154233368084561059013644264297686364775086016235124604170433500440757667504277312940179412469915096980170153282934830695919359913667180492471532507317041596282634302305890217760242925199387155035662573138518181419886833674307359200612793550482335036474752501738001766379280110555157683083248792218335714380488153274986289100655135434177992051070223845811760104824213288609585052223295600701642193535048958703094792620974663478417965224023727820894627125417509897727908015565036031192482766663921168535444315000877606354793628447675605745873560401402940214073730198707777417751774143369258950033651235625143890519497066130390272906720142195159173764569695053504932762245710312108770282600942114362122805340730416306387925396764918600322312879606251457654026114113178062386734713120256136895631907303895877967760214852143508935816988433783433915923903370929534209449925727999560715108768283425577039520665704325661420568195967635761547390884415389774239659272558440772182802183952339408508878307257349292447118359199811305535002058679841344597508009888535408122971243800278748330408586111213704551760981926990886116791798295633663062449138336472841521221055692817142414754767640728063062746799079547922969784846787398702355066582863283389232220404911929159282160033157413442551678260182871288896808447924071379867345496306481880068398087352189309629943726560044000491643726751887501766809565988777055043001424328759807987389694826815919085478176917655900997127059835008915600779489610467095230422496426278889681901391489333146068180446717171535012887900796155217175325903770950154822670360078730034455284863673951648027980460288627335262001451222700003957179696733292024266674833197095626180065895504087932916854424515271816162466197111976434824112827234969364000918421527893256667264842836322337728355079909660389148912427626498299692780413535112037812576471911056440006824772988675170284901098800670161340450615426926281035767921717940952850469734710155670521176159187885504670779968993070168309193359404460755686732313216223951568124930946656056832976951848905512894469830572437388894575579099609753654150731950631720916801100146622431694179462218062825629413438876930539933510212607753014095172585290896223742616453885140027629451798139898249133439411860190771730913969093845623637540244534085281849099096053655552684185043811184586483844194799505812238292983321563500705441197295445996633799349269522430211277672234380456904165450058423646564439594321537080965193719972365319766524306752205003299132522948240155946197967758775336763933192835734788038313620652497448397644361803635649866011573925230655350462914259541567933241918134972555879742933114507083569266144557979111025262997851257275768538724789432659211657019450939508288062023982851802621335282723056690983303982721304546513958669628691317006263870077880783823275028255351770295938472236668255946821891146659273323930592133712183644956711864736116373242878397991981073500526919324899264281965487251833248001538688137261778164873873720147644144230330332116360430877930007953711173782375890743736971512876804320760585249205365638618877343649063081658584348565109854058672898513388210232550694281435090488010025022141259084786699936001650052186946878768968119514050331626911411357880995165517248842812777269664781610810386025850225363562186438814248275415593702060964072886496851317224654402863844402942285442840502349302088045845986790241805197047718239679956654260913975587456283906089082524928383252876948283991306671134649365424781177713506117342060453231502320218938553081229128453122666117741739202896818277942919939397234963533584840700562247491345605945648876040023279347282768800907619806388962013126585229034106223001464750258195396396710241611301232001031428114102881635679994775375911299330865967395623651161435360906730638139503849261198188374130426575391929500809795783401090541210385574634328433278549334144201292898876770672571870202554247697889133928060477078514253975408116077126815332581737108446361579307672487891201533263423969641897763228266223879661842112561972738512099275374057260189044964134722158002828802383136611256775174645642564051264950165328142107005862607282064067803360947195337129270775360760863206478039515555771398176232615087471982260602886811009935558959903050241972107073559848144942242181727607070174851814814664649220842990904210051549435664843031243718691146939649569828946444224845658692582184513056938242723853263839050963520466668990950287478051089338152360881090495042061739997617708028966430455517756673849794550690452345605978214705780495688784254332457060791724629140195326093851760676876726242170146136902306422628711738887969594649075607967908270028164927613995609253573905545198043146942028349228054980414026678632485719356020278592588518456836832587020952457362080032309826634096829241780705545938889586271747104660662229799634417652959216589355465803264861704281701209764372981297707575471306909805916445326885258808664662444249140592358620634838696510985429758885342404772196818513425405928157627336113291924342487120789953852649344122877142299057092068985252930481729821713116196476181694377370880290279788154060623964092730468078904203892348145234932098585712409773490176614768946695864880756531055157167706465926589372086944698359255911052535664545168344893823670468244901514083413331883274113370854480581571347132556952452905551202343942555641699120772773722592795987059235798221016543953401650796634142795241256768140731333004535282058109570277299348908723400356649985259868086544842869534366656265316133010057997331750207020480099228135436177138306462549709356476516559188576464209500657318985896746674979368476547466722306416345129675553990406476739305320136248291890534664271589772455065510395565045783549678351652098447088303677091887195148356849916265632910392837719435270116197495814425263949539296949990160409234213566181464804717417011463285616718673590658703170308922369482209184105119824320729100707045024694750478460015564244205466312790302472272170511040820080713662915144213308115898369621903706057324787510946167408594827295683248933667136524855450588106888611654862580842418143224796069451666648576212140649674277559976470852614565609292062565681621310618229167165120347222143845766724173089497522290279751049533066665782919568178946424119445027443310744148785030882329375213183404006890443687299206655313550955726270583311612751435348729810433685440618794223586517205067477161890951029707637959776761581103244714743756734395211834246735503785061839531330143363666338522782034831360063650460023764761122813933915046054266174421041609104405141483343322466423151380816155301338534261172625698087260420198897460214220845596985189400076466517406292947985423640171610888790990827004424537868073268818831474833286128874787198574176465292033934892148164543868927944019390141716505702705362165466532327092871587828443439293542985329400413923099981897729486125233864432339139192879331942351797862283872615756120870912720635341818608115880399061833831327003137220513228274486565671014981195542745539948617121949653317432125542729308179010056981636480324121131516997429241935483277429146175195860332389381710237054445454523714446135325138239164364211943319509082735812385835443425035086411370172727890558299136257163290215659207758084322411718561178462240938972312801045115651636984222714907596551357321475327473343259602741558727051998946628948232429949946186101307407751306744960658869880966321627118653853122576480540608449200906592218787451486715955453779326108336310943606884789339859088847493179382773639966586298999459579804604751623959837121483459471734945931368100770433074931843242191133653289377779054609392029406156710745094839298609202177914697846383220483737313236703175911851570214002609129468461359655726590810042678196914191978603687713825947496938044824351959842327415553589996496773424626040161463137168762054333324048075717390885607791561630654121087912289301532670340456327793327322868860571478957117596052735027531758380967924557316603564238248082739279951787763362630368059907766296881160681187558270263865429880782282276844412713121912385350152008447336809190457533397563739169712472416710797794977478941875284478262100794556770109853181193758281808695964197970661724681037122121649358611336652962118494839985325676523504785717437175347654224672804172874185029776853202369206396665623825595323974071915685331831556096355413420593323802574308851199970858579362607822547827976013761614282627424515925158148120680074035426220284186666516745905784101752541023196443180883714881216726607875645884447057564101000043227527468824682967581302064616222413774218701760192824006290995956864507703553865177161629557480405774283283231641616715883575891059254761248985032304770564873436537124720407692300227955507866947127284773620461613374663605530572222229010407221934181449512963966910656154015317428454071504249664956516149625513016062085485896826230810160316160571911715870281373004851696588687470267734832192941387894106056844905718777992623668965982138652149401508774898618432237332779775710490720112765073188275212251686052395267212693400195744202170363304373869166208622469361645105814527269352606939036001005859380570660907003363902522403740131037858740594614305424698527033693369115701795270170187874069465484002777425671556871199432624369730578733260658022691967302173622581719633938991309522315210368455126983042160577816144266158061049179248459859410404255786121773445963681216792004785705223378181384273253348710472542250786842178859129709288155558156259312259969024020810755565671987526975196154424933576389009016471548705986242169109510743958604468541120185040064421482038834107821522922983204277989099949719508358723069468033951586342190034683491981231719942602732465189086348982146176567116330707520755925291367891164843999497901857678820377875099386298505010944148649586778838882452587894126716844298736816350618420766366928165268846754545246540239654727881767542993755622482184139665349140470717111888145015383683844826835791718999040874210827109100890966580543812294664692251347087296397308870991847302428674847306399673158562990533168072487150433434159831154425656161971719459999432006473760384833181098913996719118589294579316218858459283495956101454767055105977943421527747729308376165561640391145981762422352912975373048198305484554009054972633639347861040419841586303277579113089164385466799706891522058430673605183167419749338164002722335717462857252033795935521328920488525078229653578487885641457487867194394820151510541079727552119119949464206022668305233850585421749577851820062294214452708231392897854354992040292827673279893321251379187307594512865265553564342891474373750552139205850383538754230656118753751894119741537161348468337336110514320202043132183648355446164077364987337035050077699757958568164807934161835667234783124634970642236867907996054147545239304372681198871240203451986657185855727601995465152612806440689868425383720020921483152625056074817866420625022757214434975460274210267138057719551927587583317810312477960499084035425728225019797604211489519138132505285208874907402314902108610966765816310216030204244472978701317863171721244192191591426447797561838764428943956908800989878673266934185962371261029451079161030043240046717329154945697073585050895788283092671545194294978458134685027221029136257161213550773021900504383608344705477684964274389350946821117489686228483659429105752387622617876233873512620641362365762362350311856052799049027773369310647863192358636396674219854411157048743883109936570939190160970532974244466208595727082615247449605002585868733875251862154602318753889297008164480544527822930788442952057884042605693611093521130942085929238475367650517412695241036405457206673519510046236426096035841400458591644117574502710612055225499412852556348703519031772272857178202853864986115745779309125620343391477791258549933236625472180496510057577135410104724249649903228311438878876105335940539539979715276073072461215634040392898068094751783920037854140922651105637101251039466896428141892991508992437695461240784366143800202610190004336807627653655514027808077742880894597797221253634471845106447727398450075256351987407310168112679556617831614871624719400576095740292162771650276977096011275845770312027642968591311697638450209846945528455963442508558401366800779376455115416006299411710696839177597799478836685880798952276211827167845282433314198880831132252119250194894896342634606863321199748743318551522376739710342332195372415071307368360137641400319662202901432831405577151423931485781401094520524749303711002297071386875450169447146416678302399733188126245568816336102674490653375118104266954348042794746451950129528510996895778245119595634164836926850975252408934907045956934500502885066045639445192347339716638464360736793187867152107618291615222757918773767478017384172012018995514239626238019012136545317426116728557638237061197819195820732441426736377049076694733402932984961056583185675074298730114307264623759639117732550616385275715527145364975219955173670845561566836874082200548652237785208576531260656583643926077975382955929519126801707037447544501335450722665181579149843404998942723031396378081389473855071061127525195565551057478297482893162809456384214037402640955599336854409655846751040440644631343992304031593752182417590399946330338043516790695840437744208398354555154691014410561883658237700784591976913632322202969064690162952096796602952979764132609711185393592604742094948376113178316341115457044656230174453315753218030336470436958825274189023544239640316490767118988152545088157037225033358253610418803389572308216443707011416256578112910100898542086309308973009460363586615443958320627381876562358082978169595229165946248455667511450566542583070743133085233736697754944744087407380838672695428018151380594213441028579571568190381128110614404855922647571778466854782919157029785498395853903463242051771067400868191214620211609319578340364286158088828361666762043465418843511104875387697497311765310095371761326589549789343620757345260383336348968936985023526955089614453745978128872907408950867222210342770481738133272909841548596015627914843740086717818462628616519112883883847846618961165457216684250711300686096135952966278688985933697888238979458256163398858556363402200586108468145468544870653738144744255176614640032869267861405966328168563256394718431847208207183764330779313005806082417807780804678908323925492612134599041255825765813605287030391465789119991824036917608571306478676776757721452014684316158218485406525158024582698096037428057726975680272916037940719169508750674902547228146272716682660802629912073000990133331859146726359145604005641221166735124613742282116997292484301084030883530541313413374885832036430813171715985754795423322765440236830934674769246922789889488135538468569952045552027636023552285984638561834007834877675219140014376611985827292817053265520079611471803113683529980273112196026578739655415871658894061374604920713312091571217065875938309591115205673597613657107451154785989258040927940647502547188449126489235076323877078769587428962276880953389975847591760460520672876446411801400420014999170052410357690103071715144873501691267384313351713997131183214977734030604593557609937015189700837909150612617317607088114348220432001925665925487377904602779367537508118529539828801924010809813026317191607224559719670701326698120958027648815069067892511908508397938237393105662179434571291302923409260149450418762426282682553906356239073192726205844690130615896514145819649421741473153332025261477285606606815593868299782142847152969868299975715932524546886337132339385185455640083631241672077152451416446240542047405853713306500921233416107801277181339323405327485795159410005107246720616662193355568808851629520118647712107275783478343636544148082252207844839865469216175488002933750246800903453988707237552846077073284758912409263705031443620195865808950420422828175140338850102807124306994781102782227230986026580498841702998414199223633803716742166154723503925315873560048823324321596010708946540206564044337982333658442052182257609602599798251023971496283586025617905563243081249699079609025755432985853373397534078593305765558725004604494903469622450714152587843161815831357561387956959903513593920294076674999470588473992297210818319632770126930430142836125379346351091513505018382413435554820706575285675041903817850828754118926921218926619507457591579903380711855024152720311346617161792475284096231150939269900342670398385757904233421089820133900590776676489921888154430965084977876804219113404023132078692449974640167365872971107512000956336368959928137982976269499885626702165540504323013422885868908210786067146908098400827614865475564921741770460758996128005512514139819529949586683872449379362473706852963074253640862946181044707708162953013793549469365258755864171771233345897231672766893659174457059384992288950265897049323340373769549716777008228954249257667776798598823942588851317637875226678275420600072612925895740144795015737415717092764394918938658603065458410416163242782528838319801367036546505078906705900272933968834180938449044326426001527286466758811263612699818377925031727692862134302546472009496872717034189336832511411547232936742129910372975238757203921298211139626817780845183689856081418994226965927314702017674532418692570337358223417996886888334921453826743074902231278336988847970143700081241101580665658072990818828252811955531100430566821448403838497276702881583824116451297061646423865235781167989516119534462609035480393379808395344895307944967861368315779634066592878608054030865337257990098321278255986180456823374633747068485511290665256198416526238153636870054441843035197776004439876062055142164720960832000124666234098060770123860398597693830019257861415672401937094293500528764758437622678992036481184692475049429279680358604164083829569117794145947593672373279119515843812424920099912202302349816132632785164734294163428161926846926963049004927915315068218785426415854859937188619757746108866524070523124738632975306150918227009379209932114619652026627402867109581294145975134177467202446303761967522637657177592391083217337616260402438424190708706151609412925339927110281971213338065746864470378033037592797097296778050098644764652333297776536487061411581413071324277251548376712024061020934183312953407545540746645630533217770210682386792116953153719302904930439968178343588008689222997201544774387992968265159186463528320636905783850552369770190229445338504980273271956734284347770973873776081315966601515316542584171657082290058924060392834289342025880518062761607860568301082661851786435631390881516551985563069529340751394405605468316721799646730775621627533126448057347110019589213082436828942699730746551339009058995251609353353792097490078664287683470368817590221633056724960742033061210155567738851838683607414863702097838222399438068305369766521751230726844853908077076718060245548774905030454842319441003211012370287600925932353558260077188521882326221430234610138636605843913586024502334532761824103849614081176736864363009792750520510133629308017963201074274042784015753482931889175829736741292904473312383921102904546263311431904563024356884871767078623333941417463859525720640230129567642475107918033604490437329425014274164334167039510450346058569112331583529852435720073497514548462976458532013174460788656875984148258025646084492696203452005078175362268833921439016244591234885339915263904836591248947095605340522917846904318228177044251810926663458398550199555644285110297013181355415743356816875470890718404835765061392600231410367765560034243044057590076807000059309093670024613499841059390700923960557764887849058515764449751397099325876802652324993372677350138872745508384146948123665851360111405266312792662133637517537099053001419861537058473636828059820525748743964155546250082491809534266070574652174624250968476027464359559743434461236601546079144858417440582007688646634247656511156142943981541744104362498083407712529162310869852128683328313060683626135503844174953324931283250756178250315570300268335459587967538786203482144332104918704149635727262175912095685746075987515045816556246659004064826407073103890103359979251608031228288495054401586769181370599958001419878692349856317555439170197964841932050215172683283404092569347389955019084705052136294099742053838151725944955524425305646157462710098889690361013010357062961172012175359400193378649620588799247602907274880753855571879278414852411249196534560922936282248150682425819787641882632702229928804669422751202801621251739944702555191397996860304946861904163610172476444068685275296695147085432579286582573592293267835918851556129337757493208065947373816030711022107284238407119773079480407206963902021192553454948391537311023608872487400250160351409025028003226391624390097780274295607364654118833914496852152064373177877978502725908421250118587053988530802223651915402243220645867277564023092396513269428019685462873712036966208537416698296448470449088449488005680164483453973814598864975945150172563214335497385709891008504290109918513256630946428239748536491954841302092348531782843769309314934806405848611167610677593356735236778226534917920627763425133778572068321034515161525164803679372065298263735361746854616921491867861503090481891877895431347622236834200951696932283957395309049441157554886912474312047490955676148625444760177566396221309708775970784397438536979985839398083446748779880111518096571190619629851021653704022926439181703714074726170574543965113157077536697538396740519533647873256829110877259669557603091981394668542536961146155420755503138431959454810893387981875515137642717285314679626613898438744402705575857799038258626311769658542699981479076525485522938910381872276350588624153708821702526504017389337450644109194081882574213933032754509789480937090969809970547599241820726332680653030592621833552034717967179970067507026186752443260400486761928359748239454869395519241719837265142986949703116112287623814646531886003767380211173433112736519626927673403627911467769905336284524048983976374268645651263453324978788104827687574571042366946021970840751351279120320795181675682032085029985294825663677310315879422348702554061586212561266628603758398567368275329584040868936023971730999452901814275839710721666197180991757330490550888623654414498230210276285427138720146170555855035999033601068614884242401624841730974857437708198930306955090763366638069830879675109273290386004948006694784138768076127839057911009896249354922197383805726419534521357625838432113696949396540677363815748025543369127774806975673562200282196375100501012785869257043028637203831607932067535674490936194098496457058053708485794780728392193008868588887433298704772305716528383743583605762874679243293016040612505339506215456693626915137914015358386172488270031402996611835448865959170484256652278605128224171684031333135483617018051203640268312540363060094607852303331620028574358386509990805388936391745848500858077057224511260169782574806261838059341013624570944583776620451480302053148423383170339591095084764346728949661543117323057820320572930614160884392001274889085831182053458866990408870825662111537228893254384443886726439104127111741091729961583102652113348753908559263967951306446919795796298942930771397401146515976583178366598440114163811781067278265043100193791011954152562656157045144436666301200121865865915667303252877890569912056870808997176223862544388099336483231866579648399011805925585198516555913348723387956596036339080769338491423534712597403338964037218305592149771744982443812562506265116634040427204597576406338978743719405877348002844957838811826001210343271785070769078884360223599081790200507948954173119708497420704197213343772633877548045639600682745537451806261195967173865560891419427155783536771786593297329095867682550542385090157798278366652667162814008696971219471390836732858811930401241805563496341165576355326753811846109883754566412939510493359365196123145466980051118505678555428884798696055412784779830073503929634018165786488401040391303107847256509415931616058768163591989576841833805875804782955540777266147303757221292672146850543921727024724740998349045834765597362352204115156136067156510226021906084835513859378475324292758212215087624972696984184088924131695283053477951434898294649096780212148421934213611366894576965677931205982587805607158557499939141726301957263210286159115404603100220952670684391092869927442941729896933540924368096246233147701377260933799544686972903533980456798094459822320404923203028222969878000051144087181814532977178516906400135851589541994226900870286226689970949712719728797288136731533205187761303180430229511819515167716778128275536584454672246051066039061710870336859038790217890531462156065144423820629869107333328893439691150421315336529007969853484590532197690055732723487845670321661754663514178316422667499514972263058663345474037807346351727895933668786549872765892327773182672005314300916614657879400896434720377383548494082707423440587830998739573246020507235200430033079203286976218347723460089756219075519693403213854636927044241281219416809835114744293993208473358362674672513372868351052411016546009599212767291866125092745043299712484483208734028354767280895807380891797487510812660086083931327134839024406969704231232181110207789872589378495500606122147091963125439565713892824174115043066484672216745421162892396503473755842032995277536882554538040181770364119610715327632531617387330051944143303826930587784529854134295654971329099019900230311064687251869359153240108964296712612421252761942193416025022876010255610588832318258963904566832965923717504643396885727212628652550848578089916537835505986152763146576334102095385213946283864730850009907710526489121711358138526380053767158917507447280241992217420089279675591961940416607002367557168225566572596227186516103641191741089716779768454595928101398488903859416971779043583809509651590013607574895166164936641918110497363335392664020203499378481986427705081755471509630005426959599749150890502116787043947518993409450827275473469361605103095982902352556610691949107055772710576480723561308345926603157993379350560460514457784910452484018568643998451733213271867103588355135360610219222523491400415863709338014975118332930450228221188949724947008929237139394843612029741218035078090177631165566888526990540847242997707053388170364452134918953170551350992192831608001105713395500573876463512490432896199010528674617681501738698814542844178656568960662642928098978988625411806317432255079159037746409942488725257299696493227792609123795479976743804110421153785569467055045256335558452004853398833108752259426910542746498865518975171712301091754016254261937649777843135107904252243178467965184816299390919132882308243147789263447565155490056845761414447842620695834166655275515041875319105375918204781108964751932571087826197075670972097161723602042003823598917971229112980069268906319288717139644253978960254044625877033926642204612015328611232929506114731161900650923916223862663822118020715282874902995082258755714700650023714310212460031118698295671793968638339198191118258576638017829763749512060596136936861922554792566806804114695012722516317824556244265842414876500121160810680262626111840080236213707417774068576534254305368049599132592432823192147709374999154073987288420678673010090386935837738284591415797854285306961747071326207513765177637594394140033882405579307073979641434725406751919819019574997624151994718458955259702821205480995712477045495567308058440029005802929667917926131110366444344337885893664519795649423129815085799381372898622355591832009930291476545629678666789842315048488911275761768215305120838414416226090772625449053099508916400055812432752648952863928967633243228644362845793174769683716453291154259764396589293805544952437160040794322599025489382260037213424669482183024473177496678212597193918753164988770293245061893445762244147911974527142334458259258038519251188788521680906935848559865231474634568470611539726130804252324835880770837179298618329897825708189374572917075594920384915647462864044972224959198539442257865219387741182946972992845716999230212500437638835255104755884429528752875620654829024517289461777223178018418292653752816586582074089639178926722750721976017324553750104715411217516704428098429507409708808321592107778524009922764049352386269542298428043049324335202956043615030867883595328879226205821254870932136068379904322322246413311552100012641652550711896801816933335578541478292324055993348135616103959314263096975781986566279338410470085008262090337647311801427915825905029713789721731168157428231267935500168031375888929897992084361146947032317504055304245876691317172968612100735624533271609471643706462628014167132931085382035850589635916954230742189834545850731277789473435563175655020293846920320467219436502476802104959481587130359885732110916218881644764040379740902556570804396725515721537552003344442783963399720661113562836567185117155998428205336269891030572831532643513417678775297615282759374064289380904462894873043112641235885132443354462990458609512600152141880884084212244314337902297487236985051594257683330580699200954161504029806528065805601010396499566858566715101050519372565798637258490474527299642439130121906868600123335915428711180934923874387699126118084494709608150266631027345851590304565691312324331117569465737668834332187637652197602575894168719058619099383530524137109773248901499217649450783487045284566896201377489225996310969608605015798087593783017136476143347647180977963340845308885665740089178355940559475047856458670735284766293771059647502277010733891792760489919689267440295207009303409957622332075809507357937415388703126424545098434398798695028030023078634942454921758658702341120041989544994788012897508866423140481063776697213487701264840819155705263085729641026483794546038938848838904370636114156387613111365270739568778770709137990783532304102939753517775005468937788685220467929620225716427752112173979120675869529421963100446194524567009474257479920035971952535764112366076537391631865400119642487138234323388801634569783653334076603097542102984373661318228643763621417087588676981744008975282043590119401518021932874920143350209064037950529137554635886322753404814318367638372813680796429219776491715160257217937549631528575755373064289231381609576717293287225000164344069621588725205396129165633326309019062300892563292550452006672742961693785425262603327801886848072049695702311975699634432770409068338697149067479380675316064394396889407681878396739731224227368776995206603163344950384510616267103816413381818550828674794341462357365852130594418177066175922338945119450551372215785230173708946496876095757154081628278321348811060378987379843796295057631136199753373674364192035693424935813139688820321787653554635156053994146626015927483426210072425314713220891906951692215308796816739447323088638665666056996925628571635529127434429679623498688831454370602742031271163017102969161783209981986744559550475661318524419851734012631301363913534175918545640653323362920262867130832046688297720668015016802327978243869975595599985915779107665693153856517681787357085274280774393644712149137062035129620195698051391425722748259102574996521031405351751032560834833232835171795408829010018707696687497057700003820119466638875208873754871826493566273196148571781905245130814097724495606694112825903067475193705763217764658575228999767876775733550535212546155640364507704278270557494920279688214985051951016725670305467371710502966849125802708041309645991003116923123102338398613625498215296167731090765203550874122514124240722185197006148792368417282040596733080326422713385010800168215004296540663124950157360997975863682856025089598255314375085666344350023086174169747688269072836661827963776659898821502440750748448496304237646790292430015085569290556307419148908290816134121552317337420525504944414646160371787055992076313945295214263231545995475309317825846183402095390992688817456720983913884650188278374541794271201563814068155403131533142124553509372079060517141151506563394973149313839977727963358271546426945174800902965440915989100648540911195212886971665315775937124787697389258575460321565914364802278843282609964194588679970104086284128725427539145528583242281479475757662435048477029715965469121163715463261563493789456987714065953515361774418699659093848199889046274727691994439639828900302948857868951027747593054475211148027352996426501084192805297244531665865246702381401783506126476417502889105534429160451392068466819722886767756021594902523009831148338407510171184081924206485685699539475541451727247535509584258946144407177356424735017629836837663948426664580954990396653851656544006715125148276671228600582741721031544281956064324993331338831103671464462709173928360595118998920062299831694275277264183667720506323978933600252456143452156554926355474106151867339851729450642221135722699050769951053271801187948325414178294186821277881479736214326849980153176210230880884752808860341626168690050918756680006556702741772880743104236956376626048604949412179837943353935827625013196907760354492875357290401049302032711624416943033045420628495162335923939650908255413351412012984938647758037771955249442393031936698266424590122453087632080058083290967850083748059049272667995699809415880524020994527073720181949451679739870714756475468294528333696687090029324946069019996033978160197011629823836702072206164893530966857796653390780721138274875623368561579621414387262325231370396184395398025833888248519085341002043194970690644618131580868180582646681363552237477292391265477772826039860460612991461939625422095447418226418423991713878912850625630419757794113370412316614186241806027077509875178777088553325487897084204734663334511680330382883025068717098065497385182890597877204609999585460880719619339433107140419465812817753194776774090242228477428060398689597256972300386208180726538047449634746321838917813013837756791877479520590745155587902361977062218024629729903894917742013652282507769833295679304207159711129176218416919765780779891491700529115755390528754250577537395836550830654171793968279613767938540238676429520723708561317513791324176462184991155911887326083587052268591220308409146275208093742685028529664481324788433997274984986602375866203957517417866639818279488196462723232760193975055206573019354910146063536301175971476052696758467950380691680385406493370087528966583819774677751134015713755520746424946193410875223316749426869584888705686500898419332314116743236654211528689705688942584625784498251191553424934548817649062024952218290516381352945597835952503318458319862093018732282875340447732790442786558234221989274194635230959888886583651546695498096573884399865951884764512489026351728090946450364862605690177869138605895844747779269911419262626700988563416856910975159702705048782127691674324458296678914192179414379952408997936904030827839427520370833948427300606489745193540746855995696724927026695569408590323647421275015972777890999684168203571139997091788945273070692369038760994242620346207308985021039178848289492610352890395913440340089760756045639991402517231124950330340634527630747958310013011697419053921929925637078138925757033752406742022032303683924544624526921278567829392091718496101773132783097224892173398877178559292792904231099483629787531280658337357752158822523465215535318423821791612330072467885242570165895582580262803508980678970040786240621405479417208047256063744856661338381840550350149461249137402469092225100515920040345175398575963393766618582803689002629057960364167825585784105514413394805821129242841783927079914610965552014008485910574237895161814333336388792126734381149860539235190869902261739545942459364408356804316997092364010086970469103324143385821870787708776597859420276390752413908518645207064458985780315130323227304744559304029224658990118448823413136810917989996710796100859411277590767651670081200133610534049217969302307252656910310977127389172976229968840877650798972205710755407606694620137726096486614241240805288073385936768662003782991259943522125849615107596825053371617201558248853251128069582879257825276373291452271092782817032256385757261932698406044367092566240592431945683781972352306456608787964347798033051335993687892949236496869295716560172721785179272257429941795575683846601199243059193143104534580310451134191375750566505217881921917046206850734823290183278578874696476110094557621343881719769922713785589565576966683956622176573121182168117917088298609144748079503179221739613872600251257164654222538754750573469578870929698834490938400501096783777473396685858816940756444075292665167404292531420250240103194114214878301250697815777756583811867242861711573818600589007592089394943061091513893945513858609706004797800629941695832507727014054807046936984211570971968309278818331650414378631578703781396834723975420084437919786115742686310935014658872038966385201238636855561605594186426801190256547275577027079432243236698311277190994662622880321866505177606548645491799819259234775358000714795150837613973303696305015454164473035262174870937851196546206537266356359433179457963895610011368152970314019854469477289986348421340889574302970457412222261005998098082207292054743642786015165746776982869346936778710892578081813373633804917781473522999672677027643490169818659191517754500349316317645600912068259922642000120798613527027025050014174840487338280794409153966525447873798060531793385030245364506836443604775895873885417625544890825130478864286137373900344347383826947838417494132917505056229782617908831979450687095181421704932602528590230700397771920857597700181819543638958042056264992008139140428262801069801767618157267490940789344053533308119303656380856010751762151148885792639076305567775390129866457122342565741574417905899667783975457428608616905623530493155388474654588034937957864496377542581499194104818763212516491926146286704842432877004661002717618277442961536821693523325611050529494798289687768325744639071384356067733472248633799607676069579591902368046539633194619332142552311247139546103022025822428129353207115689990886316030410271235273938949356663718648137377544350723962519976703691671877186805032807775754486493812801732992661906107855428519775766681594186305037201557240320161599099737453419240667821627255335145364774436527073135822331696892907901156313688355176544252565217235078427263308216634630829476924025767325690241630660157649857060577064482549181757331027095825072996808928273513105008144970331951408503022623326128616089485596418236293618130528756848523041376532650933406722220307775491431703486937070018790416288349204531069113767140277278366956469083361849093039585827812957997521439132691202366910575869490489532888486079314950730609148381837719910434049244618743883574557416626647733486546616441342331616994320220406752390745189535217249891142717204608076742568263515827652965174798630572562970082562197906963317159649121108063519007884735999785659207931855278882059107545391124614199671834058353301515917315972875108948650214283283219758942542507571631244085570585944177917918232385131837011161538547047138168301091154381871005524176519142183599019474225660993890126425520644342748319156172323724688516623221062724405625344569342874143319167508922921115080980692657515797244772619187883939286575267616939079124490897714255163936073496534654789845839028218980551095723926319670037372685928047544561831365211739017156580051879536757245967740148967642021755212217529463396535635955221550561635267106626586344152154728948396194329102882155974618293407004397715290004570457658210479383459891033754708130062502176028837814913829142595769136306342016267994468760668163359030553835380413978301948113905905225545787593074666910341467598301961070141144317628150975379614175702039789562294153529648234952052563804523877536735651056792223152850614598897126513444584539394127540587539346873432943923403713926648056168126991259216855411326212784350179853240150521865585079169830035769619981927729211594068898022138315725949022235197993351652070220742304419098695258657888480374557128955758100834647630757006032708838362181121176037204339975629532906045175054015909355332868264851161123723780910247434043560785938737779955383619849353909870817152288748794176816891941109070209357162395074527637672603413442254663310840464370845350771426662923880207387318101874059299663130283459100349282772471570396618358649461174506619900784940971945845811231467914008205444373026382645711249663164509868345091526973889810298903053965446668293050383263200327288739822748867929942512385650626073618165437578706881475425965610996275269274147031149176007210314055724259697311361719703081190809692211690461152368801849131439976836018138793567079222533381368233155838815137189519349272074098868020805164157452964495666638722319623946919853467644391957319783090100262908596605849598100893071866736828483682552085813644022138826097991805744528083381813907660796768881728716863314554206849526067464845518347847842794050014839403377506192587390773294387947621239913938865238135140835905965339710335901124704429311025576345923213984283530625465583118564670324748894187979839707203898377355944209407322737041814751771157368430445024578256128235558956247378754631805660561260566833043449397383054831922609875810896499994352538012818377799496118438791412399251688069579400586468645615987354285718769549196697554847670546916336430915839747210520352620796030405276734018372623169498652295297758945742576118731799145471062357834179908683405008767191310212874318518625268228279006713270068952677351833085648238011553689133893021712534364287708961299157558854315970650567660299341189102969403359581751266802032164484641056658520687376167267386609185759840488986188276383300758948316379608665419391420570225048054426243299112407571982434369116986523511481281257370057445044833297538164145322370046083777504496812146151362726482874683925696883095414826814356818264564732881948250582109641697086004735984217823731513806904341591470613717976000613911562149411147405850750379529919367164910107623342429129697753108005826499485504321387171780573729129095089049761041996432076301828178706955356551507678326352733452695070572095935975766052636974803207767418390479830234614214056075971137027989026985833786539765907869822106961073668335439387015217675617751097101590491762214956568417892327806614042114228783551053493779464688390605171391139631802323898638921656559756873639841230841007787813559921334865717807684284291836682011125935115229529834744563806516259944563331425630579911869844653427720305656555991144448313429068923988189698266655271606040274254358491308488247038164303481366069379904455290917333631700738884976428832848464824154946630163657209616125034504205686523431497523714994282259535055034100335969391234512037159792729009133827911941605812366652870051498663505518001870333777931099830106941118704330027976293735008827205703915108461381587332434488639955833261309827666294204002234988181983776024505418486907778502767977246047458462797462918587114830502693952143130252323753275366690182923824304120007750831214571537954901939370124829130312071478204539666886188769921025379364957772398010126521411915580568730810906036074644260760162038863934370374804226116736494100895633310910032713110949311058299313930540121908969180620953344017033717376459561567026141332962650241961445767002386086594514980839389844152449560939506656248974377770884188418774396120230207423080758723175480304070703464854470584444367539089241399963827281535418769107527776968002180774850085799707347619770696745462825018255496103591996328724826160792529957365514237481753908117293330372923691434450985150119399347733404110367831666388614841065324813499697120464730897484003874124189115677637083774938945913387254151800325451434047042230158917185016249223820881435726442661582853527394072895573876800732465014251504691117263322382115849166248492223228960874588451738197387672839523905041172115657559197452108178719584641247877340268501481778433278698623818068730983059403287377365820783332473075056661625521937214410500499983045639552459290371513056254086364505327885425721689936960552732656881981068038743489854760673875571740750848818491524527848244034929270969974503976194792851094241866011424290594325148699770974966662092626294877193905352093570854237222750866268830326759343410862459791128939075241039425981372914343782542032361750336180916606904050465445190884457873797118590607528332366096494528615973655035533289730017362132009343926588502299503097246628057832247625473934078423351364824842506093800161393923067925942474340659694682785018471701884935242619926271687967077268023764217410491061256719268937513420993471730369466166091860021076307854897883026562283572207290122157749520855547299945861432014563783623151373405482555810478485155958839119785904019336988040364905893313891817426130006732972475473621958039358540878697000846537600718427978967307696262679866458121063665216768569663328289979768334205817100045291183019575426683277615335106361444540285848078453054211111448779315144324502982059722671434306804921976294840130526618541161109888107779601688466824018922728490423792970806263340163476428311640496738132438053779029367205558184592870045642950283481146305835364862588789135831803047195657205638195275927392562249279908482937510975841400631514895916069086250915500475632580908163747004340610874884827133548386544123758189178736492665477454586675866987500603579330972152025713854395197197657921669022860338427451537857516521585247619598406487723736124351566591032022298368634742655642821953569753966370292642425887809149585100872533526165586803699908982449515965952944585153308803459563902869966452486576868480128408190702400670253211057151685201946175337026056698214706721731169776141657934853735633414567451487268541944933949485439420354249865978684748135935946585734724305013480821152104427597418420194021223112381322020445611710146696065636932643204659428039771893301088465522142798161147404387240277644663916908767967896274762551592640014861953267580275582553464811908112925394506945381638037458927001999717288264626246857004083350817822335590499483817319893373192961505462192238344389497309212092103386765247794827700799644909469574134531303582523284875038567819013841928370571521715529304586521024883691925032634404396426646042708142445295649396768744153757250132182397280968608044468575517358358785618575474732657335723499980631518527068846378810774321804489393028417088809911006584717125776321515518950513206934281638497909464279288677061758258114713549933604648366118347812872279292187479053855070714999872638167202368597875228360251974787963094317031283991838205808964873532008060008638383099662620669326091080320429243604171367855297963343580855986262703205998018186886650536877909501263940059451558876875190769033687786232067053509692307835759530252465134185200725467679216761063044190464589991482000937383601379951352607322101471685535499235936119488407056493301659961098637897327781462398740448281560518840019504832074924130636117118415807268877692756274023990229729502495464724304405920289716232354034052592530148314923237948516678992228889178221007038546253223656202134963465145000946976996063580550540325721040567905901164460278957193563940174313633714334887530490922611103595629297293023878641929541796907975718472239075555618751810327212450849364114766829275355688248565658626187307441025368415564114086188537397375882714873026235543305295253622810390241803124825216266225944808415192686164717027059940443895343029681497256693708367222113291127374347863687661555956978690262186086691731467608732821887729793646377264681747599970592734871728448630466856474424315351030060909476433301015899784768396552819718967657589573268057590449046000489339514403012406634438236124850069068213949078886937959387757347147738848555983917711933773077420883595544052590253841506997182190545012524556329596781243485488403981365914265404104822685257626798407203413347217658855991842237106899443174437892011810400146071391318854831873990268347845619710677190613399640765237676788635258100521927606170041458928148842547167908888057311827174789559075896408872472981706648594108039558042472977115256066342847380680736652864219401495632011614539065991343200618385932401001122460679169959078702837404340184155343991868931706558270739816682393636624878717927106891893004819820420585853827269606607290074460657621687868589300975428709771710740384206466846140125700444846133952617070733999417761620048968454124017377277397771904002781771226569417933956352320650690724990210128966568591275500984414900119904886743057925846521130672826285086270095936475348807232598513940117754146027593044513252891339547054595526396203877808659480267214557973184884288548110719763701676120152494242566127250599423555443001874203619649400595040655449029068956458192653478701361852548051121940435186395001741959926709305535170277833856016046312310989809588797090450942240058742720168997244471543077371655581042973776171914639414265307173085854018466214643399698769472096575359741172667465920483044910094431183098558416237661081770074466732012105664188056460954322397713496313017550761963431391641683497839765319986645263222340987826068043621519322840894389694839431073039240057600166707794702846304442196896732900620288946022759642485052827056958374836255153567779271002083817000192603805325331255656056593391586830019227742328520048356593852385387801606257324005963895016466192834776443028727124870240276642644423246837712679038115758511647345518747469455095566332645827632845583627964009952297485450528941325532886004938980164952801655806864299537717310811928585624190927159493168125178906636389692189674492542348168006414753162709732838104857847644864765590700000922366494394775172713870277149137658575592738743131192949528933527634184788737467284238095179774920281333854575429043215582523408821116921662415418986475990329351367907780482857623095853986308339092220754514970261469519298857470101100714450855670525666006968535477671012821537495921966657813911008250514575280142133216258782816482166598407887997442675026865140196782197849348926405471063761091733431497321357040995110676605712408235914019697899585632431551071611019797152852360753114435063645939137786795920941447080733179455845339503501528220672918591172946915261938174357904630079213424136168423039832882234244355731984076020936881870413583827243676611720054172113048731881354069016376055705067492359783674546259195416126024680114654215931778704274756636485925659917067369092874797948560140936550826686259455180716739894966967039073783252503854508070489729693814531251442707910437441534529086130803140180283466113772347959383359780905964567140645301396124998364136090993501413663826354492725816917782327952418656348625242883486999925873323200281280952230268676906385228611360460315279749593945592909353182891588105609333880471565577312770895889560747188235159250828642363927369126933820347832610461410456129508682772482531129148410377690075688396165835071626102310913163731469417650103247172750592876635806059890107437158891518615421991408274646987315590414041280106028716791611199231656522206219420708382903583738213603502624439520355891313177379422587830602811711209696963787333674623067293600594287503103052516503222401312682844477630037983967738427271796996997953684997414973040772857599162858070234944813137164351038409096580659714654586777623507221151155921279764434653865917978781416341679264439468964441907108183389489052536334600480506748462502177296103479100147515917101841322136339509229120873670583857209456823304357773643347968970290347320631906361667283367921845523797575134966191075667724017758014546748809268300923935826171969981340268764586067486616480533191405988572706194727582187507621997690436060056201638913756419445614315640473725088152318196644856957618856390232335765107890573023903033980304861855800286051456661294668338519950908977310766792320709470554038629867781158305932021311529727220358332966620313095871903744184531910707114383371040633689685215753131429576896803061269643508711772027358092658461100126085949831572322086861705927558700510377968277629854415614276252148725782709349753790302161039574472561284585919042605466079347086943581588093060156778046895425480639636649074458548336872723883994240405950010684653463301060552817162465496461794162929955491159882556136048334249565066026581155307556683837359153272848969821850579121582160823014650910405168263804291905569980999706857378958550493314107456711468631269339655551028963163058439077262276768117217196472708636537725114277899518236803985985054538844118713550196491966086376836309281927789231547442191223897177106470581886347165276754961874969263591773903722528655322120521807117393729922830407217476219905098905324312717326228380793191660542177153572468935204899213035066115086938633570251155136745955866999101168400185355527587130256486466076782009417774589481543984202719220743472199805646521484807467209740520729826663054380218654824436409402133893794574240484639263061484733504865124235402323199840360560592777378746697751397860431060205693372775040216151759279064883322581110149059405790520049527369390755979391747647609502741700756384739322620780484530478927637572901796425640528727054250442041043349029185727758741038215478095410629536172134579574042944840820771463115495085289205054380747141012468551750164750570523976177839349280949790534030680527068632391452618676211104485821605255623188919345523919586639185597173607387429528516298081170111032121409343487781910525164835661626229567831229591194931553182919772201565082740037380415966006056311424602296380517796837142526597819701712197596746170805921526952594182856720646846631842371359149490655454984218369845137957041518630975029176161808502113472624778279063116678823228471290872601413332640514483555871693802370882396390318186498720730932481144059063276746153174849037846306742652159902530072165688634414828688637308720027864727259390360052391333754937593815335930150125313415136143503012547680297502405117749146668343877634850695670502965866563095570976673601769005020715491274793917202062447221148322815148900651542961669785375419764620726446750765791014289535878534652032172685085977943729844432846006051401129713510287442610273419434816884028497714786589715681603652753190208328534041875752709594439051130582537489174791643285406657596632334627023176950251163002294239339173977607322925236253707408862676375096121716765729508301297489489376801276451947651996186510959025407829989972220252652144207263578286555783548744718609362820992795628305952809412145738753398867080401639332080046976733131787623418979556892015133487167616982180022011080327487416207570570504170157953436429516379252082027532274597425708489466982926519874895071034846753315696090947359203851875749080008025291371128023518706584294611174540526152842482264967809332325616549331661512483535367353482938048940879478150309235029408575388546976618725006380554027730927487902731426057825862939276108745211327877373830784401159921969798878388562189074980819564799381273470409338394106418691407746902173422626457115448861130638241231813813163211603784615971905538737714009313908390089456463142592528458015071529719144438497047520380379684007531300965501692067423799077221301372240786196124149826084101756174428384638920219834935208049161460745789641673472054158089374962080461353698569283527469531484686183174762070618868777053086107369293498021113718070621303962123712674667622752389378798248044113614359813900054854259106863016922555614196766952434570204413358500397997867007188562555585780521605463989089145206851556346532831528698711979631348106305046092731946391140134387074638294098290419749212686093941015675628139207943935705576540017151364378413977049530807878430004286187891384018456508031310984709918740340227347958216838030628001553791017418564441733595244462443503238930249682506015447603370840366737277868080290292099374263438053330416375631231401715832030182823645560807425846603803259731693146431498939981020152322797473589922929017541646188249673662185762133304590044942959750374638460623070963215630795717801638498896774320917289546517213167784506024837053372938618984457286971875276454698636740829540615215856931217856465725585247632110163375525577153290840247263365653162206697783058414159731407779159675901432340102392014586784969181980316550334617217474808606689100540875724312282204296568409081643018798971154893586172747510559305387499656524856573976109219301507261297057940979455539852300615552474871661612600589117662919678802955853721859637281189418485080771329057185710557525256239623793298990322333216070435201973910434331861769155257003886371063163128107307007821424128632407524924330071785706540640559874429651924366021415241848889284839883221933124608584579269702070814581049620886555984917923359375552454730844153016301042905190088723367542278651138332414786654241955817553701914841960212598965837700591055646378674974128958636813274746895781086509662111799005049925185615320010364902958680037717459264981926127420457783238029035277071723995103863961380175614412063729858321649439874953463939158851565235169997331270825782250026498918651684614107691565974204162362430365340098626195083453484952045698578050137363262590685466308787241363122287096689610912012847746226066663525464560942892470165118522893254916281710888280278531149827090814354324363907662376648818890332975122684254638436697665330436982816701211251339596550949039767163247717336190843693944642692493180749367806749859559794957133969465463912141441508725487221162454576428842654188853222661168333533431842117063634262123813298237420490807624155771859165203902067436969740697324107467355498029221030193555921722767235493850611380575995950522361887274841430731899637235998677250646115778412066455697775487333102390991437491481026295234406246961189710920828188371373847452168110737836096615037145590769697785818036295856415681990744065713900552480723822617772918621630431000940040163367097985396942640420789038660498615140568893261715600889816697853905488957442250476689913624535800335525989502836910395174756645216848267998717398329235589855809414200274751459090036276654571206559182545382355822695133833372134267117605697076202055232551518037394482397147959707133053117298944750658214285367858815204348771206745537450824914784708146557908520014841978938235395654080382001483141427815649884224784505486539478061559167423613634598298513332026797110554570017536474902117051851822676541844204563591763222750017396378092193380033946492626197602430519724873633991014751332615001066982893036493719224527687251059002316424733042276563602363803305066296116503432902565936052861116765572026904999798237675243487950167622665241135785672286087462348194915061545749118251480592960149250028905478879579526588006728190952056230245565587565522069430978765667175171683708201954895847161349221312466783111632174226874213666195375629738018217571535991566096841714257030842104570887752201031786500596681299728297082977832797310477444392659833597963159908397546644088583769997884223539169329374296293455701085165572354254560065088395833106631051208086377882629829084504231529517728340730457930974511866899348637272647929178757848276829880940723090377560686217893406008281053487065834629759726214765227451109050549498771317049915093613854225158018236028274585823141111632297643666938442051568079861014255228400083362409190817440816377643338802155165105603830540203319749670851639499966042329596167734203504979368766356250540760901732292920112784543417282271503732560618657365395903332994646677095069945546279459152703855661835199598877682298579860494820119083836481657091974971682115954244919002880884695356881683008544810115890961957890733524607194917269915559710430736801042447169498229156791755979137073542620776582731471838021362003638974364283996100466530271372750688331172266571489721558565717389077989035399559532469021794383585317574112416720562583980045479784718177585307823565101877247744213946630781681216902134805659977952247618265518503604255919746945754552183426423598645689459602571002538998903804376449116183140003323966019778259993246956860771046763904431802749700970588379931831820241129169512100570151221118165783987144825385310002492906670838497458852599994719197360222481520496096821213968844539664808216978161167848616821448166361627066066261504447897932263354388016432062032927666164092355131229867923894409420614185676717745548251235544142658746206039933319180203275295870811934889387857959064652695724179758267055350120451910625043042678826248225591464420658046368174661414018283199406479071284644318226040140149747340657159243176091687936887241596968707870415805403192468999431344407009518937977926421801073594482846783105637072373616297398294467530799888330359569201952789306478510637235944480501684969944719668224105092716963939792172194275297963381022876351709150086644321203058324052612673641152014594209684862358712062910247581666215975816695390676428833167456846491688687567732667366010327691747617946089472621107193308661510551773033147261579916723810962001017206208658630003029417121742340833183448535257702888601893919651901996347167258143109691861588533357136030328981322344243115454448692538008695244255079677792383121274871296219619213823897530519425953389546719918229861125327729941473883070951549951321761648654336878144771517041918940807794082424454862792530722699683557138189527125991374347032360173237134817690034349577460805410901488977626301113669814254952872144111436946838527344579784283255784512477553083868999229845945043503575103323936124652476083017436165325953071187636429014558069188716404602544875804861269082605108602727797545103105718703425419570315433647130917248282527016777440660537547366393337970119550272152294342042408297907732421921649356406994907015637110755778440882866560357215065864143922416403062070216124093280191118678117256611382779165697877161261240638697503292575479651915720405449680015020604909981646604694005818220837213289091164514288831496257979186954983840858917640489982437222397872086971883966008466938007646742259459383511544326225102247050915439555281649849544129396395802133513550666988752204831931062411622424812273276817498154161644883789611067336701461931958041073645504015658639826636855797065259579051325423452235661172848054513931197804346015634780301497817246617587072886371681065973807465626066254766351012714266939733484794132304488700864483227530173505755839917870346183236994179675935273680081280614452623745609116203802262219293978663575423408800537170059318870882664101437712785505508307447847545537340286455253648546247946446170411759854691499586165419781108102559367976465816320561436057112474593396974955541094775043004427665581397784061588644383284857334601186189745194822265538712745028817067288000421941887003262903530638182548255016387974460542376066922186516953337215339693448164626861228363605942239267159611580348637390238986096783509490924301933903460531640305569006233918933478002606600390636935429295379761376151296300030136026565399275729657696687566350650134354236593381557815608276880629054858921701817933663276444045344333617938124081907510744460623995722451748708261878802164801946769073754747569412151210114039082272438967904525321702150105171203300951317597781971491746609450079478069008536301333849253944186563671683670912432974131314264849897563818855516230643391530172132515176186725864391181561007656298429902579682154100542521159633909461791628636964591746815843196434931960988656396659472121925181104506665244127412462662092673659373768826256159065704567801895314639702099483441767210156804736584492849675995911504593672521478236842200792558454207688428687158163941719015078006070382987811709008991629816321893519219153404862233784407119347339500697065300081917909438736125223402549294899696468325479012159248800915511478762009933524582351884680140707959755423170917259607282813622773975645334851324339599691049338936878970860090290273032394219969343292341963301583993784700342686485809050569892160261323397239445881014839065152876233451274550775770157601224208061518040574533780679280050987865057954678572298992529132591129788011507525964784092367719172780514984008684202599245494004324995170278988380694058407042906560219832460944130694055464505353352014115856205668385838649799401551621408631568266993115730452839738660176516869446168516941067704640470890647649064029283661501340651518042180991158570006095891137033873354265793225190723810047849777184563694291169252822621447934516967187058385354542583710532016223438330283176631917559419207184574389568011504871538090489120183942391528922819381837073593745211899108910703070432083575612501739875437652569379984991765887065807827314269494806439701546114619218622801471055119550193437010445279992585033101560102702350305591459018307247800107540240558164893381395522407934127898608390386393972363448811715716595833786025323775561361116052962854332303468241450231235550951634478130012426413669698701558990669570712742568993401597296164367902998938224767558235207372309191832213072381503859707393060238985176863085108265755798917478863851226120769711250917220487273269266910330324485095916111127663783407889891399682647321232613847314146097635319805146907996023160129124385509282986200019539378495591165374484073291055400185741364490365801177297424723135401474822564916263417356183430547675299231196588922938256889596084894319932636878044618287291232766303207160152556218024867235724683033804938416529496158802051131384490371177682679490165265742751637130565127419096517773447297994198894104982947451151417798383384294196269587742481723302039977237990168199379987969572388594403435898631822803934499403439122378609677283249200199172189757845205837619964813928825074673877998168719512868908447781296563685287333955105027988599180468321440367407109373871782067923547617906844641399828906338550710495658678590246366439714727780542498227332497505773032671329282424428954426234209690695706645833797262199340256890505470776875069753389294920265574203927574669082707367593513348076426628723797410031884918840033187690099275902488028353224226595894667907420347890584435830209408970315901078485030170900584590695473008715168773296552327725685569721755563420588516576599968465132115543988440320846862545401553000461868383230414471186136508515376376334484168458630617827350764017405284412770234904111354543249354146762502522628433105391571903145345902764417076488522415472558051814080392983425750161678656709129528657592068920432619313779831934445388364937634130706210874556782927444527697809057562447493144552163451028065446964509328009132591711445371276731823822406233362694970991887226984841114950775810774133977034490587923476752997618967797605577316261407225908818633974789640180587226648501697610263455922494665690617129704691510606980883849274205938759386518932736659528851000789588996647195905461480842303617738455335420161594114180060793916081848983712489781401475754570475924751523379181578976364522298796056655043272779564418701604748353014477706409206711788207131223837113619890493143282867560738675156236611467309081781860156919547387971273608696304565548200504733736973812658038757235354096483330115159827054716609707558535433637758595272717032362454755282440908157822054336946114369840481434248745692435109107180449560525142350362195328229860000915454903755629739460908270917931004167595872358120621951142516355067817606792941911155574107513081949733462135859226148483959944915226937752476347688546972727914672397098955997834503975716551810624472732022317386553741914325879309025534399371527549603165044763286722284132933034927932595577347519301932029845272250318678667638448138561194602265342143519356178551809913329620022510063997938372654271364295706545752230775037679963587947200689346053762889401500738498377014209611859429463828469602503614950392114988658883085007506144169196512122909999906618791255020170893086295755020859182701950179854176006075578700483655146622562035532203003799426589281241260508126884742832373502156335714162661278056097355658923664882278711406941665652512196878184996400757218532908535104466333951856624272510118038522416946022330071392729116791506716578667699731173215431975598579256200836088004063061513882491584995765333219774017659979789280540031167032639898648959418455153288249378438096229817466971496545853671630357407979528436502023187195242952107415373367494416771375614324917759977868070547621956250708996123846584338022503983772080288847009318397297427517857373536202845539461776585838907834089823794780291543327043047416880876719980621481643478269173796379749459653808275785804807620066560367360349228284271228929050951332747847897652405937824289990169155915378137905536741187697390403909616625144967631861890606454125897841153872697651995413688032595271488822764751088207342152516421151536537223827084019949141900424910761841401161771551714462981817030682185402548789878534498147922815988302512296402419639286865048440540516162574350936990725164679821705007731535829975504040863703228189952693575330982400751141971859552074226373943952751462804220405155933992974050125028057888309736170624597498105135175896366754220377163026310657101527596407523553894945956471578808372252381281033604853963833577887069099325486913778828493696134578545714137299793008318596609074432204727122002942020114721148903299451145446384126395631781576052017175357443217213813315256262787135626559367463580983178360063648155065291878306618323106500053233523995587038850614104684837910414348836526859657325903018338209870931928972659147229427370283356610307176634332099533800164128315539470031829103930372580654831597482214483175649515182485207371273169955354980384070749485065149694887943154448068168237616533986327273473656880866395962386351851273440336580887377858162576707961134304363962936861572555081125946980108730694058175436208676201675976790693333717957179024607401152935233004268003682166960902502526180189367667991579933869441010651847408056120026731009595653681437176593377719372895727605003912790031104327986178390627210638587637668732960646809225415985982604744066138301744732316300020009245475761040440161568014323284646270526905866183543524068625239433869168386067166191283391420407257343677879121625728274730407959970014204177373822253486058974018083446608535969965417603824467452219184873439361327045893982292775736522559493776659629437899574134331813779408935824162727011761631188123561451821779415484054846706230366385843744391160675689738182120302333902581929463902065066608095426456820694857398854581756933449793247810526915635631697858768685317251870908701205397816243912752608057321048980353984982417793618645365144044200563920377526798412457267840161599756480785183093510051846213594208170167466221836848786781340440112401948802766741870892676100025897849729372074281523302519068574677741772022703774854570516190900831963815135740177102697345489143594996242472285117664091299413042464218630377353918256240171635380775262573258555779667311559566161794178847117875088291623254959294692285903500463891080623976644037986271537423573381886675244131963976586310538727978564907605906222641932732987563003504232496450207067141786068181934416153081290816642176069652191002808825873015040353432509238327887175388039225935233909073381103884897300747323382525415287362322276058386412740222430944616099125650098131247024765112516352308502331990328452445958827878069556780362117977016543434662942411515054811145318233059169503298033753238054742839544542390593396835081610917370674535405197077921268308669438871250348891580751949888436146135949792593056171666785710986913773699968397527293765301298860616467830357432619460977004908223815727340235679826391121744940788656362231363590977434749312381187770557752051531570172179723584922275796136464237354512148225640577822837931475505495803135832637647078430165684526688819728311414056914930355346992830505158369685175186721594119889496948907341824235977004364257772360441435239427346918012747220750318139141551729526737373547811266887856347176592109050438404536699784531556453337083514126167034002985538671650577652504040767393241726626885494769816938993248794638322100413518207375137016489860539292688670884869093399772125844629493373129194233925085443028875554821266408032608244921334378358608322152472559609955887435500405737282647837178617357517425079260295385884300599791166534423691179903868716604526923265357560373726260011308761591660413228673312683011734193316936718682863016043796914103341580191588783822862217712139627452122923619842934349939288156158779466099005664459886166892606324209005106588328296638689882972558770372777270501175176971813272255181308415323692838534542657842273817879260044155741356165740395742509798921991644260411750180869984211073081011028933428243770997032262491053009016967030539986776302744005176934804231142251007243496023267765196269953561766874394379703184970186680683548748139414676071561871741648728095339783934694566154771303888615890353242647918513710387492648096063158892813719508777050789176655012945079711898744022283986548053543904523079584661696229841837574958109417005338985857686143047823675575392273518674078587509626373363818018271839388424553531321282607483287153051538140537592618167850905327145311261311741873802865024612820661267339971541430233880683895201856294285452968594689919709314874121607691112383516945706173989427120876425642187242783035055631331394655543422096727741585538982865124736080490763002298446596078180802593999896345055799826707443992955493837977311682049967968102847864221160978321569470818455975943663066898234480250169592290122436157995801367701513594853061494461401202105254520214448078683509086559624929461028439069473496827079490074815457624830289543845925396387291358932477964385813628855501705882416400454441470902396134736091152312808969982977110095385168295073834198195001148229251493014718079236987088053649258262310408716861705132495024280288463284789067782185354661737113014534107312779410156538300308928497053032275601269273923732997959568611270229905622944029583148956499264870214837925753001099055623444711657852524919196509579190925004152509597906882832256973321769441979812417113253976129009047952603972077180866409898491480051505855460236560120288999367663159875443027719298703313830433202735797485260493002824070821078099979129918988416283676757751040469007529139914151812954578320811993746438364374801815327829464977277674363168650301586073455413014224044031588107172759562975103901054283845411732721649368493843854253441413227395719020038333271205744416339241358703776875571706373954456972032706397240274018666172854303379837210091785643123314165736139563710538645428206657695916952882813078073177570553405972796572190188920085159006457866159056562607633693691453776360436465028516718223155337222646734064810208737188268382067723821403150098802280066460015350603648718291680036734169535271887756705287356504943772788751330879312657569908692280648079589290494212686625058034416306602465295026262238556970374648591704926021028879539621242920699810074457083124011643038437080304382822240085448303008969457102272813468586831000486053710231492957311456559124641054518121944202759071616912784418983515007456998617736435612007513406534599032320463083209739544954385501888432144050260079732130587713240572612178890829216166769368638608214684618206954927059271222810256568304002258163186982390869965025809319253376394031653952573725473309703506154308180312556319184960011496819747136956366189151916075708191748176045870178384680577730450222127380398114892857669619704480307706641627440404960230275375615094560025565358997675130642183565505659940269617426122871401719523281017035492715130356213937947784848777663400053080234339526176932098537980211807071315987739658906877059153876858137370811470732231414404708462111670057548593740164719016370306359120197516785438524941173763696911219673407450135237028185650101237738919604613608087311454284680654028136845963041149790820948234034911545535193178958094134644441162320797820812097130518307175105808499938185461152218655700281919670564022450808807226340145072329907667244897299656335705039967258786989694076943168786186990984863596886169119113158585365255020955232099706436232565430415741450295908335786117010469900026748612904865481063238657203288892061896861207259040956806685722677063473006061562627284045534616944442080366055244077945011796386191997228017634189750954366438091796960843597143049902427285928860136714288137154369582466921603227378926471627645697603349752015555830991094728157818303909074827055862582516747060043164964255113516285096424191493819742254428071433523051723000577209049873711900205690630866036025919896101643896855313382494292651222313851070097938327106250897556814000954157400309499644346473439753186884210579588400298398430150540381748747470832214265257759635526885022037001326801245791316517635806699573195476636158003894221730502015697676584850853028880793647891703960947673965017473406298570571802118509354789936144152015122692794001272432617109747485450510559876127362165504448427142817321468435858827976054407509726751931818794253130485381070219056908236541560535312780554384115963529490058520543769521335021326959534239346735211340017885662338609416555680825847003293967841051347490471104264594092839877382134362680554821867769671624366975215450680277681515462132002390926511039848222255670252771419304436209637025619850963628407978608101513970962940553438582972204730067883445855511101711377126316723965470873002866398163244579065352581984028641751400153861272346377902525419397195691816518213675167406805821240177360535971042884205110352731667769780255225551452595665763454465140293070908690378052918442252273763232416667551267850120766665883194827783028466632618186941331471081936393269158285020978695475488360177229883566544191213563738968996343913128360042759973062508030871745911841715497604450863850137412986144013131583562063064170787763319777672727782428556367314958568059864340412920374434665357853432853925970125270082908047149351083501065222122636258546856801550037312577190233026905517551172561215430501683311377882871785892409225253890210786685624530492741823446416725742503784798047814835561519933385554636749909810891490102215963347367182508363533206756508659101097825052804726810192497367080763389447109499073784267974972920527213702049238014539719609079403570998617418423173853783524061491866855247266653268792978789011254537685878484966851107910272062096933505565039164441779825857440605084194472706169627515257338087905161784615731505306533144874436520888162913626642377324883290220068529202245921811230299345849174669936848432931889476610120639025202596793696669199224591616887589600530264332828078198086112422500478511020596332927282253383419131379336702825383970377520110200696780221949365769353031505484055152514473492948356856408841530600951243592419428079835816268746277552733836948636830207921498156267578955149009314908811983031214634284448911710895760953745913238044349305492654451147036673284689141832913884030392189313554795162073012539714132741340843315406924416796652739656485216612076016466515122581494534213334043381981362294122908494934679508599771350538528714366106761860940047538942725225766428248920584183882798447493426727280089781501668910030227588696838185496810121469541469758335363657849539795705350073303862540750963808618666573859372185472771611966254984058670212558226594924324514223996489191235964297142328082495653234841964243159311905275531294273612159642862065220866668971111902815792998313189842780785791034031929654930378114427752888399920612040163045800156326877079406167156400377271252710758965996435553519350372918511503594013591615306616339126010246578449303179642415841356852577518449650194318456544676468532003388574368827702903994193894037337323637837931571005280526571698418679726684188568073987823531641113392774161829428315610240992906016707799592628980938306520116847410468762749785089973429578573770698200546886085234688705990479916557611786232042178704983403742440619209221945866534600924195808855322509420272663900917550369450548335788889521859713958442376326025718177767027173030446123741031470090089666839884670270565270579775342853657547146530900901043681634020745000388753028673094684851150724449233477223729291442577075244116722928459965501337705769998375108370812616057433977736817324744983140855604281979819969591505110209031071077408054873735163138372354797195160205362268490260447107831686615546386300008900038851953250477060327864942202078570272250184964287817873685449271081950343385429631646585264050072019709335050943377652071528189429122262275422672036772708770422271941313829122555959075389817872585923985145136455276244676194764114290203669478178731083200123159382309853283894002265994728869874868618544422838835569062625581326254555893451857418417471417984761327597253680970788931368738570426012394089063779688985401932717091241536832270094692143071951600810404964191805901533813664349401215079081264958715773213798041531468937216198379412302055693422394606938065384176980835878256169902878602103247941219854720812831996816074106227154126078310366921854408132496425646059637943687841854888199126550004708167596574125564790464615177391651274739395369746700268869075302872448014129711114950224871012230624071177726939590475631012132084448357641866160107334129397900058952995225797587423648520721101622559652683134607598719740518732610442470368252802968014296589835054644512045226409912218562823104477711666640323475444262643989613727828160983999076912900048631712552035319565651451011795762587362078941162979248372691191735325120420033206783051792973195052494299509349289646213099154716580897232295969839929064713449356124124081933786644288256932033947261412642859947770488550010791053216728653603720717512465308705274167996775326457184263690593186308810913932835287317409094380547237597583877195694084834279125745803201567732753774912400825491390907066034913181985308515219170217334162714030646533688259740020854328136476951533014803569092097155230162773094083005681839908851139026546947840591988567282431487720136109678749662627643714150514829759644891483191709031960112027544463263497297292994175503108646057227361161186847348508814927306193246463187197930587203929301709229520714374012723569783538538408647681990990162305030203707508499155791210446327215100082407642515668563150162006555100821323030673023984141748424896551513712773049060712101129910169500498514470598820639414363568895052492376915304369573597702678564578017782552905899839092095073455075414623372059750536728341419855220974369603670079046354728073298152310451030511787642581297386741470825788238572657687853381322242176252612719091179795908935614549364413171138631417166973762116941293512246761462335982181517228703551071701206356995391502473692223105791707680515718355963753512870549265973958160469721854773307409544276283737473121170573716898935107591924311141159008087003617368496084192348637446643918013918082326111184560430567584522438059583592734766853345194147568619843684843206755951403623758296910290517757849130039441248593064181657366771733689109497069420282618664344273183882111300078864175012131058989676230719506931901566769152412132260865818495467284152747568896469914908473145003757985888859078008363746507538602280657676272830063574565157250622360268924981313972627410610334325584021551891094200404895705945021597773251390521914126411561495334671887828796243270411600165823694599515386996669980995181851827625491820558197524334350104830827531683941800442247223186962242384794986819489425329372916851539479020129482582990236235306230313758576137586235197077710676859398128011095366142634110050754732416647343941371264717576162756290968217494300347854049130985430468053265136182802452726813173241656493398010559304738858921848320932158451443979534442952819668237063088212294000144826436979022391931044437151144886892841928016874399129033434312587399574113732880422785406046284894234764758464749703899584191255305092122326014560443586005636463398128186569002613390792928940758074472651031009784444551433636303912899400524673253315748857076638927686062257690541519642566591712467226372994751807192201018298250070716640540515516352874643436691987794389949416506468296034180552906067542682690079918909201433262478486916136733510800076678668183501278801138871105173148769992538211287102257643973414160441906488783286191927212861566032107981116615163065020902113779347470845004668658242853316308174854363543207757364197210068041577229586127842497070659653286865094573914277226066419347549874485016467231353470012825160568747618516818574484156382961319026751135654023773084855572266343448319413557739607533165063817514178693166418145150117933152124502886602383709947714884073880299521468550558455842731484958820523798053411195190013308678636589803801942188347436599499909903746536152654695897855969568341293018309970559162924990940679804650932021699467378026570471003388829570547779182130825251125484297604302574400879320787354220161669005593467234644002742746282777107321459357378691574125306422022182480921766051018297340328077766396111888945244419223952435728862113361248596692394168105908972975534108529764839805729617159315087435905057047008585329076810049142857256666694609674104652025551013166005285185107276556423201736478982210737968440917274379831682480607227447495068176526181547680745457478029346554027379104462797193542985255920975977222718627612360307829955844373327886590466345740610724253619588002786352026612254514070486707216318902572425555610955997425830875343010285332104537622182625877731158341663111690463090381936250565061781331998406056923768465511984316589386409281360826924613953349033828719730310770310858050647087535677306353640042460725145405152527824434639596588458061529011508659820615392964913850188969646956059790551509710069845507907270486934395905335882154168240963243997903082976764533569811929006582100156262703625433405378468545588572903047151444193400758357712765613785489810041811087753050144134784115770308557810238083356692141893484573161696296023038219607226784919737732365291381184436528912640235263258650265363841100377750106393112044503351635535263208924221156794489847899287252114221665482499109311795941106133666549192772231055141921159874629087394973836034274473678682072070915334091341576585395999971712093899539908061594239370207917583907895332630755434300560752158560952549812493574228516900923683245440511506069684910972111448415367229387613736680838094960896983262535381739801762331510530907053500265879069084956353398143377167150573119784183316343581996294671856171712112033950177720260358463447690140159366344466297436791558690207164457394524042371939605464161777390846323547214898731995023207013991866458663402249669563196591922716645505889752331864237785428253272632458817269273774950619577580780127132911914455040500254035146458009484996129453976382694139975939476352838265823974956037172439258624666392436028647984756882495666036141360865772699267163224168814169779591480149252338371119472912468857191805487243220340279727445901656407724205017725607064938942243184321314359962406886410784814180138321631541621548633677302640787248428726836048442419805611259239637163325249854720223201966932686799458066583611762132783336923235519781225581255233099698332334764453373649413760014878498873415244789875756042768660258160042740027336145010845099800989529153225559087258549616214321811269132273699975965406717082407256054711401184796292835634699111193670095814411360094041742541253863821270940169326399960795205679825932227382259802932796172137072639177169689888713058029463375543622346774858488145072554385637537860115665925434471849290794112874030695452316897683512165335497869245961307284234362603600137924229840089682400629626970481048741578392221142123599741577207267723438144552887439330968848287704219878091042651785042941974902118735898890609731740639373272169214436383139198418633028783026698630937011220835204602935297436020617907033026063996214278520739694892438649248407175578816628758207232156202873909615894856113142669860962305411587586205966290782680495562952690365171373786534980365195553100320537352012161796078227968925744052049629157403735172284886118188319152992081677094741223308511724470574033834166003075581039216568492955264645525008962975400862102798728201186912749843001959918208044680106152052465981170975104213089491723327204217859360894045861304000454374478624906090804026371170425103741625435899533074363757452348816096687916491870606853502255097087378634119448966562570578864363057925008355552148732355443319473918799863098941682122926700019985553744867012734831402997803481437533879991556235898787690663239174196106945775601775177489521100229957040525070106833193335798607531700107661568076842998680170522188888668384940335702370463831161083168949465889989954322258895229719455476778373155189778986592426185833800313205668339339269173911207948644542414698786314866726494544993250959964937333118495183795816370031450573253348211147609739328098417380225916181344627748118601056764015282544636836519573335879918923712242466333853864645273156883759320288507677591952517794638317760512776527534861651187963656422852098606281955504371303259534818119471166880011294299036208809672516694727522524232871239457105435027490782767305793051566317646070785383374887227931344655080258899065941969652155139670309144119232424586604603073416583581324650756085678048702809298653200607265472415126180136919795914880905160063997115292325025488210920665680847435632664890110652566032557414485265230267069159049794261362256294254919115031466858849712582582911288272028875052458978691343216575721513364438652198613123336753646983775108230958250428428644763912229599554307353702740662024849794939968847097235046453833766906298519806176026600319055645875509946710283398542553627738910587940763038295145000258079562428079219368169486376889059583801705812680688652440643529921046522874901373988133621358748593769534073630181540084781367235854780656790492160665251505967753812662208213852454521483890669995060437433345157640538560733061993782883455848011004504675064586441944874998153020233153606885640353534126804691960360936255289686936864939273548104581437112828768838351115225752160868533903778126925633527652486388002782264929630300822576396335899986741521459902920750000519237151075672190257004338512040054521078600382233467867111141101376858780197911490638148218436136848591397055780120413986349136389949544805269264087014751835996303956358193655424848839550535358199015442941584796250990690820840223085247944132609336172070252849609584807656206221460879554241227533174096534627119850319932865347444025448326990078883714715907826753785777182999371957776741440136747307867870878089370553095247079835644134061946025328789694468558974303262879263751130961620284979178076488924927082199301346155558168497177779107591396465011412256739741215733234748499417567422854991831220351705324146946247375423954095857015902645893306833534762750132733135163342893256396555258058892719242201313344118607182505084171116971571218811738816173666931009955667238834720952517273153116562640635663419794309696371441435856594322095749635517041756091720912475447450600968811704314620644474852063179423039057507550068148227108037459518614968657588707393119769004438711217685446409565402985994877624214673562936801244574925430625249321294742172004802411373605958844033241675017174211931902972339867632826190082782180755520378759965090170913407855816382934427594246907170139037682679776502690524612316988044301976405478231046202598058311078425254333201826619003612871529390484467138237485607446972719527399863120671823222721203568443089717313692621602757878408874234488670108663331738884386259018508641917053538682284988985641516984733522102214930237806854612344378349457396982062112068299509920696075105533684225388527590506568932802382926908574959900454776183471405299780966590157681718511189270060860272935314981715518258907236561358638630750295968564513757227442843534851539237495582524406574395835930757102386985185293030989518984949695769014454771733875411877726561854671173434636933785642516132231742295291968305719801997894328744285250840249481937332725806018124583984914974418428254136082028311888549832738055715107434296305960189354337791195919754581808513483206599242660823345979394626595699933290929643772834802015600477004647159603020071410160219192080590697474942644466686559573782628612206734051626962113610247371902693795635736064952831817707376621595111002327238250367251183941213007910384743758592985083588227287466849868898562929208590745440340066392954376017984880781984184110285400100714262850757442396784141555803134339826748678083336470673374072986228777722167007008200705083506086754301864690941340291342849220955804318610911664546074121376807952192217039298539679752833553538812982966055928133657646789209943521187846308871936807877397195891403472156658282014897603567011044250678990291573543658985325506864862513619056271647809769737736190089021424576590920366098434709866308120521626168969298557926049707085269134027990980859617020760266371955228396647623173512874106165036416354895588701918984055147936322374953747806694293110751692909031822831001247996469425836066955637148006485282918533027125808178636375478155069806043144596195169471207371855985665399129688724438912519272310539170928123621261906244523673822434885464076702663236295293141487981151868990277873686483541099448882434748595328815578772823411236637502816035561448355824926338262204439500594442475244543801754457388852300361951946167409546821561006945745155559776287476721216022239911336600997928506408583682519152996431755370247213616599422214816087133843551524442614420627346432538356743179418467918362665102334055161105901216452318270365983279723382214672040357127413647091968714641639589065149006626671761702592321637944688600450332186915094186105563750571569815945122454836052302140653401322824977788925050696627029336828717436241031823768848050871800032602893931879849666176325742963958056791559357566109078933782835158612422055008813883900118912300093410230875941203525023166927262146490925909218688678379700875221374605985691668617643889452476900444399731557878477757914104316794474947989882245902478995528303030891153552533349047738602046671496889048696217088892769132196951565791079381801042566022134263888456508647538122400386820940819618762647444509434142890219673883695917676595494638698554667694247962756694572719935432136111398253166506314739791359932714659580872784346934042239466391161808711170345608427227150321040383306421002824673170023925183448055425171844792834997214712700198268831881871445125097055865345829641670246718954437908244910638458690874250144208913632419220703959470286410432717151738137209889592268356308235747069921013617571840502523450224541493683431732093073541014145778384417993676740060864154255872805692448458189998043671957337018992663131114943139284291105194935453873466621619886168612565021355620759458697268521936977732376000141671474794712098265179870390545760874174307885756766217018537387469358445942988066217971326062562152040696232057938003761418364372775629276499175518601293214369849276278453576233968082897166084241190985754608512900524027266399656311763972316720155444726012347953335996476221022375807214278105319818855059599479362905380735101292125450873434056198771787064160185198769945864124917892898220907549530393372068694913642287704082804883803091541733347716691434029142757084019442766668344802160423093692080020769044688055634645182154599286473932900692923473512372207077634741164639463025454018365545769696254787171093865365654557300385526664663488300945511595920782625173051017290759536936535727244171125056036875800416740454602372178299088719456058841482239596103554727040403573109326723760285155222361108665090572922273136540546310748184104963234920868611909078652165778505933611918622177213886943219990518856906853269711990935515121991575693038300049570302094894144617966280516583067101123374256344961004949499542069129101280222692367002436263693055878449184000372511444960516986410108008874841137233555532512279750304659437345524116883128808107055153300609849471763772018116854900291959174130928089739105900518044617215183053687790860902867503603313030774828534621567884116075163346772505524953391117511129917347660999600449514122899171041992622300865001823424783768577447389652143739125645223821009038115307085915478800465827599134747431085813634591297595611733089480904284294606315040277435125485639320218178411606791478850523020039897252280891264116057703139581943980032175567810149663734167699605431075915755302616237164899610192961995742617240501956798485452094348832473560838129011357933495064674045409460052765802572580501312780533010488172663658677640298363440338890582937244204870749656763011228505111265100529599560215971486261054678002616367519953928934441667917461788125219141424407482540939348838941463160909752558736655385714918416340874447760645749239654402995647535118378558115741200949407471708291433967013529771780965998249054894594361721531251499257080232656474930048047778190095141189334820612179693240180989589962860494982387951770947167472957488800213028074285453725410846350914680361846305540469715500915392723265232159648995081119398567439463127453423612760430351901079194719063461587948640858973268717839546043880484329743879526029149275635190468730411378903507498143881681989754669652928349921473400175757707909877817498996941333148716537576941437149348417139188084624997123774019347601410671979998376818230437959822374528473114696837060242409444886720733672139710547434342676072983012581701882975558412831873349031695556875373266711242311262118082643017768490111300197106414727394261847272517090074660674397619706165220873428679644930466579461369746140644618459101837385678151207238346185062621225994611481179528824982343152963214975209730118034858698571490959564394067285172011273622792199830918016749622778968199134780932601022397688873133031368741933508508975594202185204008053302561100178193274927129249182915469461868791640894463063828297219168143141205554819413028645447764189419922747840088096394008928971966236941351748485877266491307222197095194551453259714129395691110078976758468444443177147400393284628717154076273808980173983159733177993240681697541904610738674666609118391444409091924549581625050709252249260971053123604364116461579610992092964635719131508699827544821351695977385086445918833238245742393591248153142084866789696494501672037550414670464518727818612919932426195306271723918936678639388640216728315859667412697554568863902381218073657753881613495351145541087109303185239675618496311535774002550887783431384702735091101588167706701025429983617518641845510734592843478044452036121231264854898413576567311558338985181115349934502212834519106748652078834948757218022452741397949339343317681783897520290148372417536993281555585122266801023183767640869533063150209704194557775131874038933146113610521442212148945874215998707570627774759991491613934335334701944334927431319567136084922946468215739059030571735226969833637868486481035747912964858648890782918452117631871193575435566565616225585551443929445558680414779699981951586806402758438938764697772277016289230696729951210092877973860746007973421115554082006377032819506720177924538692902976350443251017483987509768317806075262824156773520118423666912471476112858527308082287768858940667669250866943755090289349154009830311894009847430778071286284943093919432218224074410722333822843164631905828354309106630752503753767343841598872578798979062321917483067706522337776438877045139416316533876154503151523794385111410257305304493826980471219717726421076417227854042284372988707391937084855815777008394586230074092342808411465051218820876955438471387950695571640118254619644437041756895338822559383830172843933205209371337580061586607509171263267683282169056624010420936672142450115325662765931478606427862497762162319700892487103943013267029041254980753273559709013355795164726922060763020757869684496721240430180896695082742485670708193911356456461731479845344589132789367784066882771768311166499469187481815702317649327837269399656049064132919818324755476454048274775598508120790123090788509813385501057075157674087121137900292452341140966275739062545102271261565264250251507726781751849488339392951174068456732658105834198571048851942548979982543968145960324494001191974103915089840931707804327921646096346405434492696184831072479582769853222713975075202958817803196183810115532628933559866491229841994130823231716723258390479424170070642073378098350947731209802734044481438696725187261919714723298746762619018957992423670903916728960412378186269774486168398535455609324399531749038467271661697011941748262268929362353901162632004576289622622432499070058362653997651036112802891050248577326306983345136928304610220786478931695221794616510353151208501550191772481298755009102723240595355856485400281619461159960270380938115142019089087389457144565685291744704923521659543075488458184601503753903194757768514674138755352394190709570233544053921235937272282512504208225764994700558316572900529306238998153334760716585251717225978999983249199737655037948206462705944471863661488598735042959415114527919833246647594646943885758357566502758047906224560581299539638208037925748286318280353982933364659972773168993551825271242805188106955043259041617075068793227775711688306682527084725144359122169786838945514528219183586896714363318697973942448987820187567948455078460482427924973896275945643273492486027129816998781842840719790492204872287408696119372216693065403390856184250588767478564840644702071421498364442274656178588289991627324762186922674991006941534933318516458557001413198553406697681457789965496515970135334469976249610806892072800926983046648309220256376641179759811463385132777368978007879262875449198139086891525787786206838769496217638191291034458854089650580835639429443918414724363350017216751309027987942278853035012786255379732063449120372480787313455355055270270132784645178404363279106013089836376566528042399440231987197464736902365560271690295641201552521208907271206485622550334818609933861842785264742529688056806774316224309093032003352350626758652054935982896822152709855774350819477512735609279212879756112950086539640062441943120269824442618398625545105490436913933836484322243030265286955269588310336118520641450779613500599906296610225163841320986223129417288642727854662589511401731089501811554753388317441549489847327409645970728135956135995754959201733195567348081898638104581140181277666906190939902206224871671089408469543561314377687385845398549008076923059327805213082289285292946614235705931731058997659413380172472701626510605984422486667737169234248063240921997131195120987631817747055490886542237279988120578103493351752043981914034102358621202261997984746042542255414510662504214724246777544088588924135222835571724802385658106703981987852658728624185207163399188858862409014517425421621222019762543242086159126153577855814160854932971301943753197070250143918297474365998168371029434734705483599761751213040310816661226173297287106796642486820606648353865514005110289503635312249817808436017105458467532015783839484360977445896097203870469208718388474970493625503276362576225245142137877810227968390875569640092359967960032592155813602787197619689205175018255407867658243527996201452444069134355184861275667300737982961812796777402426882674774601540301916534979691771134942482320450527912830124652830612686461445366984458624553998661487569091268177559478025609181564766123462372978743926921161883533895403661787872977802815515608700940708216478430964446822391108473469576212233765481960401288371413700570950245536158251067850832399105567393134854880682908326066930993560211146479411067850193219335564075711847528360688795166740948776297549631642179280978655017336667829017201904616771666201240168215454509217084118586214880412590907316595861470797673280576619904648060638838303044817403092919446899420771843668273548362697729639804736475667008114031033922317018738938509603994779281722196618046051426278390930434532445985205139863676450210621367453521335924774243733123635791915149421265674162871768981014463382950836376779041488837468458063250778645371699192414235274783908367062725421379684558602769635003249615841298814593716863174396385631012832486850337590578084221315610518753564915033610221550261549518709795919109712706786392688988612261559093648605370418775088046047245054416046103793178338864690471816257901277172288719224957924956347233397964574851264782402443713204391695055267494187170149371233818836335527205315496880481823025149684282114538710365168495040212998193390674300026330745104517005377662109041713408167895739335466590223424040064939228420336124454402226350648193222346498492999669011055513722849311902067868696310609168890708586955349882489365806465181341326065763991640106759486964848545070755792988128127520703470410321967637193502514121121508759759187314833802046854768529374048843816719890417864031994803714539742654631790539647187195363319688418236553681890495226980273200722058873352813665456404265772723664167448393282655791213049789486542364303229183513720888120904853257764419056600115841458996578951552279654542493198101077930051350810249499544513026922979594541125921589488256202887873537114661154702554451183100491877936087537337392909269114287190611231583167804401087781800160958346988983070071818400767280910895051297115992618468807386821813758166535098761043565158109056014327348014951282615644794483870352343889324040697539073454820204580169962596301653020143733361419491336101289819029938255660801188294996537207731943761552297196928994074332488927963086043556158868649166670310563602304260735114964394651257206688666492256569548256946690191882583317269815832634527612589652376746087077812291062983448318017545651876849463970467091582817260819765825801220073779516658787312623730845316247111360073657404254178653887164230533759051008085379559248104593799250164055273564122166887267615765374718954237578743598279342573448814563801383342670727989486705272965744141836360597859193926971627213310379768554376373768865655825513152281143380572126408140843272338348567149705622536541823378437157663531216269262090857555681452997183395928702247067563462040116111926942604495161743705206450961232104702801919273416973391422533148215942413028698347153323828632917487280284096564001436868318472608325084044794499261197830099985461197727250364593798577621071221691308784041349380485208413227279563417505368408921905980001519216582612176214655626660520660804526418273305158719276123659329233685632742786099924649842217612684315768848213901662189890581696137451714576390399855300388479466875584672222521772731450060302833986399995380318825354196755209401699346295878291497424063667481932228580430374985998897464990326883491257480996105352355486395680855430414568407506852955721034641641693894459766302948518300989552980820829613733458418997286062398607112899469194383955861098670465331417724204920033039457043131441495308690061556846240438669873814604730514546546084385994967240130428400598873940465741224244849393558331248525119073882219954524968666350515647542721842176101023854918885525764589781679494860113681487364088076981218668295448172956087198282424391647184537865480392340743362461734572366204561769774715371610726654265268215071046121144292938886348632782202365789802531024183991869246170130433046700940723923096555486548023058242970460050821410044694814920978652744456995609081562662008591801860335624413664810207587755807533470308786702443623637973242125628319415206000096644765081676497612774836171140762494697705809207919823272401153884634946151182318570041433030942764096154765143313329652910847116964252382732308087311790903619738990480008304219208183023129189164601614036052996101530764921075534961397116804060581146970562086069685435839920121889804166816189484056201615644299416812955422898261641444460625812935287193511640144712235453537853270722402404651406579867862521994086685566447445113220572408895919439547318444343736427751984547201320623592351580825027408375813203334023664424642003994840373199803697382073608986533696703534577765129430248527617840565121032756498506662477815601055784143784717195228599804700590060289737441822763343092100060213798659338721503341240254776834549241219238103035434817748121548652638114951994588563629078734697672012333683105306656091203853466344678625442178155604598309519267987240611095571980731830445877477637498000003968435954674126880323083839795104168933237268787760483642999186032070046365721769914659541916118964690070287191414007823833382180665421909633268670422925021947111009032352962150168860063562248199050486120922798931196146289721856295320214369323636915498620912243576838446723530463695058284659705490652454461124389531278647103258708930814741640614300479665487671093109797328695538832247837938674946199574558001272398441128688610334258051905264306647077371222216327551191857630632433288578781428801493768877380558848663832164608535364373237818484545199539061752033695719121009128091918162008211695980922250244210167446886066278751449191683856150083019681768950469541265477470874859312396948488506693811286916813080923885143063389635538945059651790620638433256517248156883833816928771588895430458958208998988877164844411240926654985820786518770056521880681390004988702876308325085552456211816639961683666141971441437197620935549584987575003108084530129383852619280841997527683547612993813299266713837357101809158475207158533991828726118750549985852067388568499381131548952456684893256239105378482837414481389132056129053701990517401483467596347745459717906881847223266771477771480032348699239396240440241220317402706838997377356851083711152017495528796953202168604364282031874939219301222323435044934956644166624612052761628155257691881429467413311239242861440546071067844058518887219435216888966021207610856761096856639152453014882960102202993535121915819438066907746689003836499103298982813059794048650666129600064989938384964489021535950023250739317432747172022832083910490772077444098173590788511748500877978665605958301713429128115587786443521575714434550363001906730598780369693090411003359265877432913144807580863420123750823621383403468327043525491215707805642557211476059748718218983786664442178091299451254267128215258017361052697597823079822304841779185042967208021478215201271811037108305532236366104878674674864301999742087156105472818498350143878475997470404648002488338555319908718010873301688372251506150819718008737579219755529488497262112053691058187774253730194874973215253438638820831708025388479571542129419422729402133804853841105427851637374990768578219184048820583068132050418226738853950500532493032292914232484110010276707688646371017691552361052318886728896941913712151140758502335558210294918457017804188042351628547472267199284429475780355777818914692604128222339838029384422108821857274467269196313158091781033380628154309411313765122891870887967683757256762396032132296842884175156952608542501379933550613077100766721441359113732136863876599942553796205591779965858087437540639837065156014169862009745261651780607921651848087164948277816694201405208420155359497697717980277301636214553666262051334068361858573463105927710655580740899788601309100137052111426328559049552779960014674434471041096709191087518128492754811037264015899462080979768345329684561339559950918977367752501329778789659844267915906819651189612419717353869090346264130912310853045899997769051544967325397769313642204196455556256027788493787288196414373864665918393377839528401625684275074708356384525984801925918662272857744146161463022750873887600150382899761371897657135491244369181146966403305988959292641063443380395764311884435729166600954142328154328171103078962619553958739318304672757171366819531114823818193378267985311965110616757205412358187196720572044364925324613738709674839581679813158221387594549819830269562439455463342387138906295006973388233203935128784276290114492965247779491301033109291475154352653696211266010521141456946032459515486327517847455143749045669952852312266035887459200860078915786444850403076690765722287531581407766081500747885212616811820397308498660867291808518199149070508754602499356181691035385327232638066420994210666887274807282723057752166731978774114559749939970792938366215022411377394409205387970566338917999321826678554299914687282418939804487697077504993824008098061580345904459845319886444702413459929227375109462670202026932455233026996957490591939779628795104097404925725442858635541449504344237593333760485569405823231577325991338084205625328887650004312409794752197788821947986952591903553567249474688482224354478854671324598581522496484589006886055250074500008101074545710163693785294417678822637065214545212938633360504482995893340843010185384379589894489795945149553562957357690878710320336149329601032680695604257880210298036234477682221273915079102163963816377658003285958733545921679149094380954585101416641139302757511450008557347244977343141298791766738380613397529818631884249347201729505291412069197958780931246503324968801928431542538227531305823967396914546348372406188852702638892367735388657206483972839978697188952340046812645736140712326402630098659608471190825917111723874243548535129782440655273454724363556414165975209998574456225299306223405877681604252510743965020239081496399020763115049539991791648308390820720074418897858212362881348236112621391421193842635012150172250707012423669660291279397942487670624671756714709824630223587997749873802372332516066376580457509425372418322672948760908741675937871621257515426678955969581518808216516300372484325252960577839678558712062064462173846772812266982967454321430767647586193923147366367830853480748946791310847419348698362364568582341457417972492727328819208577385856010680053017802975523901960677259851005426144063831582072014173467578355103749473328223596323400799216339787276897123729185557071506727679217530981110813059020194901287675509598019738458746990837451115778110647412445813241424666305518242544329204881687591628253754105832824202207792016464271886679734949102454962400966070725195099528006157257064134163521465015939642648563315452946110065959646061223308881474685161788020344853632818705459452313893798545681389198469045575297728049327323579402724444634684144375087918266998942257642108314443144349433767071099561003916716696781946887231032355074087098310325812613957084255292380867303044987498204633196366612682005362773338094981755790460708667906629394099494146997980669968254364877443920800043066148789766916788440201834978241485503760276489938925097911816926088318177203810814150130770122769122376454222539525075284720490224701278804813692128083299324680335712110524590728675266578748509953310570942676391579527170755760332264602043948638352653076980470190905088935685697800482244566916387515719204910769665441477441075489268754845186074780688489738292712868040198377988135359541399057573201954487607695504721935327986987720149457192715162901453339963453680596855819277728151073915671809959254028559190051395035808682481579425266595977517478608125508119089399910967809034423769811595602875977406195851521692545230754476376392162752320707904646249735253299336409807250766669031858718297744618956889409000343598477918454806915838388263396367892154102738642536475400634013714350999790071724487169535269373625466084990988458920210598984939797569323316906746782379728171752076587078642584336241545500125615325852931894014719118469850963657161577543444414207612216572309038406640872712744824259279276557441856802708260128476453150478545718491090176723043763464958962004607481857845710228529541415971191168572951700941154654957755997431911424814987878281222840100912507956748700414589213874279628725601233050618109680857079305162108869024629824107775769910520713132948811166947440469738075104548786423269843721802892391342272173098612547622515785633173645308988130041220724483326754596259112802777055174499325960712081860943303084070973355930974126061579425444974517226006432935329603544597006822197963343252991699927086285802840277199370359419691237236779747229197284992332857436149979373811439799449343928509497882710979625460761029190824126934512151054812540553864390395367312342950144370382155104919795199526622295909966459227310301297088965105239394482645893482516130323586867201986346013879299663272219491007673697410820911082636178504545145000348486701465901893607605302309540970105671139857552519344701044703761704265277501626017633539162325290423617001022839402549315645974142395416964248130529296497559414556840559684791327873791593182935988539275073771225975301226005122516665645840714350703091483419089786168330905923830017289809208719872902102704527641996241605500888661252785413139635598317770206848361682367899696267055522615667530742279282078327304101980056189043843489640652744484454721797569568264153896755444348549666520580123064600058127830016617358532381301968166500269166733349791508655003175737570300587328303438447828593181098236360969636087211016463167305173341022846160967123444433631807962687061295639730127066594913474954640285210021424545639452513025058095153639093847467177064958040185330864897040721532689192086943511625033531641093569310870391923312423323633312040969288952833633745881279728520954526361976399846235306485441382262337246768142630113792135311434673735006933452216000179057209990196736694969764465763435586720012261506376901896510802973573917850748438616670740400703463807722037047058167010308701289790176272933713935328288240423281074118017083465614905366142016679090322616866590607792164544823561208249251315897773629974281768810598430479703878574011850771817722448351427414460805089032865346031054842262692270480156055622463280002075934269393857118639937000272604315488273424831132957389316265128009723548964883772807449095607269932104121506648688759372590417255230668756522572291831358248770780511154117842382088145713790900991780869816658178905371763766368082978365402840531147188055044914907167836036177445427955865666533770531350603549079474012543192616678845302424996095652262536633653239275395184875328537868229252573234609228444190285285031807129711614235589478548228523972965534277324360843691754489824589556016555872645630432498480141466692148752299356384315113042564286023606299938129992155276336450026107766167508183350609026165393859037053875925146064169916022290902466013941705954896454117517689301282758069619701178579938776722141109798009269288105375754277931261006542412448402976071939580664502681879726777022068333373584716282268936885403178052525103031578463352331833933236668571673002241051813829687966805508133913072909919992754313402868582570996571891835691137197985951030013970745611317408192994633700279078206844980290238349759370446446826660099207249408774166047926293170659008810152377504532916310444691028149158250175135681230455647079541580239243532269344106286644261623208812589617039729459016908263830056649981327196429019013007646724964067293635350218842004407269869219697614341827339233477425854828157598096633784078699968918112669445289891481919270334045420292376996265168352129744557409949925562539661121815784503917092922398983196710150064940320230025016640095830762507095174992590375488336666197999724750325699943572947534247838467005529307850575449186816414331270619001923438955943934464534406902720629191823994496676369009810109851115435584378909024507433812764339612934712971516716229828376981798572069657303717809495556759603563328174901949813290370432618136967692751104973061842256801808737323193584968019173599223948943856515054002606233378588553150634482537394764157038350930980891682809079407486353891076520550739606370208435064787823927794266348404231664192402765846224207815307419171297547592154198710536326390348701697177236462763474045064649570153293333924996206183990860716586380833478094418636508691439772707076309141533890297310533351741918481578735825942825597223614456358457462572694732123193336732122708203966454987558979010702792258698587957509280720223588487538875734793612264922112107545950900827648623606621394657182918649853043459918319433613549289288982080008644605225590989596360801434356720710023417685929374567639913362691645169294487606189288767643044451242315928168286191184993593258612409019561978281007438428921220353218807450544026200322530281724729017074056385261184515672726188096500238444974320948106553663108375782082434878111956908596819133867193511012964142242139551534229447455133873541449753393307423902691148882067216143751871916926349738307697774442282678814085220368017777646493140820662649502177942518139363582239117222855835949400371089978906085522459812930023710698757475924708837717584672887705573247024088203324680732679071934575847795961130351535281376625525355689139827884608236679163255481115550707319886541254274185566754514756177259935250700078166992875110011447948048268418231651584926997531880982601900475314093982426586713233182373608013287115370973178371591088953752047251312720751501241817903077627862146145764786069877871200137758712604335514304432204771830672563307696300616859096597558941952849795438964673053420820782350929664249893974110043785484501379402658217480303743268513234459915955894995461693917639430284779088794782292127922872897538166299760120108796264742577854659895731125339730934271601138843336794120282209748908144655210970356039452704197762472105959355342171683313012800125913840043666864482979106161174167574859542156896854694979913931137206705329806120432735852771492669411691225488497479080780279058816164818480882975956087616892600179672777586905040337132944802877411236951238655370941272357996942025561288347707567456272035736490992785795272455727392932396110616717270236586058638142851490047053704857664272322257151087257602661369548587749519776061286570338322706717897771878585152298684443481280417261705118780665412390410113399557118909972023693281125830216207276063887556347142163876712991614705985154202588634611275326785215627758883753569298899872139651394760549695305977295833536628605135272657451225548660283989080417894946197623947825653380360233949537324264043350504712967405680873908870983233172992836468018303161165722217740081254237565382274791681007727969977866557662222161059179846899786608970612759789678719195302790574047197674706238901630078493927622234267956106180804945707367547883382064951406156145378049021864391488511927351618582215269761255575475849763035830561657037760396120293868009401663258287406005378007827014509180242596981376350854566581789514865184338904915053704288941189646147219292193924888778120289927797791996715427196627061494220965723562080260516359357873340175239245523527588201423497094305814519721148757070910912191191506230337791388774186780153131998067902429428900053414201228909340780542890449417064064567199368082166560961597237508646245270084493128184118616633943140580732727869292899446545104846818943346718964802231147223549060246625044646612992697895739454598290379638977978035044086826130066394098591363074673835116001503272442927468408340914908642853738452087969816129284966546839928655226661174989322035115638228765161606446987923919197068315689373122186804125904616324363446588260183432107487004544947609571749206009749179385905142285588961773220880606385870469722878949488514638476898568868792696941971744140888209991623074290840764297538697314007171726529550338983019311104605667243375470331521160021023244475936816012907737450529665159469463882685452041440109044741229032847758574629771176102203591930719690777797322255168329485205253272968620415429272764017614863927530999327280689971383442460288295812262092454935805495702613464616068324482867610583602476555690141489310864634007731270115637873260774834966488646227841153681718635046762752048732211650529998950573297368910727909456890039876791176178248953830559275240413470075364357781192467287613955024004992789106651641640868832930078183327648112339756280709022450895052347468371110093724273774098315631856254547275486327099399639028430789958230648839017586349747271944905719333300198797983070140662009659208636178788104500842664288035525753487987296870028481024439581516596413738824680054235014477668704136320974135701809156637251320835188224639510319228629219245592563437383896436900592915561632844848585180104823562653625673373466006271235835724725351549029932432191619436243062707918138664151975308397174976152844519058734615463619107031075894236193514558374225968536213081256763908357686841393235033914401826118172768255484699358123513534398645122740586146311621786474264244249409368684600261762186728160174959649525542932617068388342786665766192692011463466705614656178846207120380851029088248318843573521551698953793671059222044843756381269796505726089387452683613702815057839432630281518189484063471551410936146305711575960563847548667420335354642905564451964634841673580266468335915414404044099618911364424931283997602967348044226609091088391180095004814344532322718613219052011412790927805000048348043799245225530838942544610390861582911521547686839223101738369614582170914622726140399303670338101151265989318761119072942708973611051836211680872776922547100705778338911568193153909337162402593434824918557085490029351824750501513941229956236816423827885850573354849854848688174484313502533542822544693391707624075395664421992385196237846608513847320900885600201668906976208737668265874147681437129483874774479090733431640581476514085899105987719067542815868199831582266863622248737288204760215445341496951442979487980113392438656279678631163688674714110746051530698573179133283606787038317049551862582543388119702045399115371403204724997295819911291665400616301604644930356439935148718726001285516006543153167005481734588227486055035957091612023332074437112541688066438200722696097246959504495471758935051906851800401057668710991576861892235705217196750625595185613921539630670795239098684215581587562063398708721620290295135353045206925212562179701856137140450415976096795001912962351706519326851589675193920698811306479349587028159814311504768438340864791538407821679703735182004560276974884821600191844996480153223225506495000797202611156508706065943291139903340858046170150915884050760904498481150829838396664847260046773946310865259781234948055447657563726902751758409315379700250753182547367265659016459848490996184575356052860416992238341381138940978137306209254224689128704078596555702615979592358464148302212297493308184073424709661710626815738041270630646443625247020430801865245470666246463511370543016812324025716795511543231666943636159050449462519793628337022416663451061855883317076607545940931426927116002031205028917391703921657814946855706824555391393132507621029127799198794034463323725348916908268594742751029822437995359559467205915162589417023154107726578813131940916414673023121742687804439659405419566559539692757077118039147909712173950084344299624212544195482985385611079298355563446147205137507776979504845843161679072001053427260473039479300381780956931340564992139635733998098414732453358859986871511547646809895749590620176358744414157703028776048956697925623412729354642801072297366641409555306058918791124400428241482484734993410017472542196663571597896609877758817599703534568157936182344539434253647593094416638124778163950411198167698246239921840115497570667333965650553232839551154224858674124437322872080749955838766289547192987907939270574277890454888053487947614694521654407772328466639870293036862546800631346969830570449777881331494275392154682386419754307665343827290754895825262859760847849488015972725206978842359750046106832645565099702064997541272198590389034454271834924298445751335500502774254613844655801200443084095714502287619927915672064465592785877765635106515578516140784308296004102657517591379854693427249962220175870422962732498663329290271385638995200279068537696949246356529078332683111500418754788161790052622459364739255030276162562185135236004114055366011453187307028835924190183261995739760142060381001160898147538989712399051515110145828584504766222295618309176185992915153597908310478519202739582525802971356236950461451834151189362792855575643874730877474308549551971053819902229946816311404261983730874558381677514507844135670314684766343418956075397085724031832548854483377876479684428332919823209686490405970983123886080215953939220567773189581685069434354878907163650604956291001607585064052526406819084582712292322867023294217034028216564477486669311957880287575608150159401314066255591217451315701900966310920974744574268775439607805966754726442953868033320354160053901210109716214039220682373442703806509730990905356432201481529682484864505042266517875919062868098506497086557140157498327200551333299200385153401039436961340027957987130556218195972883933636422665608957870769597452799319912453625246583200158477218818443022883621192352314904751844171782253531596660896522392555910787758824277127314162555923337175767529847027756901671081424439906466374971021953349997375155530493812018369990920148210550483324576839403228913189235350045411115178359367281926365601881663333987904317160613074351113918686465928523710489348642609563701110663713670970234034336025450754498479552291631060582243121314661876120142697601680142779177618220124523423088439157169320835540849902048011040661321174029702772002751589869111295771832274702630362823321508111058609343904226333486714381526493242275375598116928081493614571584790720358271249751071189380935976882306338786719675609626193126922501083698171098233970750565273524611341909970207168767266870429183462217330819829759539994742350004030998162236119431675434681462825447987927376161600046997307070599900036982652733465695699389701983758767054587333974903492402449278847390768446512436299337709582183624373837569256894954406649300336547021362752106593616471577263597002927328371332742088827073986518328510769141941148029974275313123933294490172419437383159288427172537076470621609918863458947258038302280926530501292980930184461391213005721920829384193806583346863734053701084292682284425146870416065318018578485434790340359106964453265695793803132389232061945943787845199988628897328786109663343781278535711352147989471613406523657963046136486456844378794860995451795714271404298515053660281584443165632361598224356368619534789091106823655212830304406615690384403631657001799476115745631429310645213461636122050898040937152143359553140776861133029235592236440604775478973832011071864983125982485136822839432756468507788264488212495899580993831013912483633085286566796078957293819781366138986817716610088011758653139412015210365834260675476028037428170749411614898329208250054568129372380934013106415487825255980957506925169825350929554463502144775858977345550908873335142146142410573072005129396274897004727886625266147373132989153923546995715232152213091015599373762885018202467649752458562407516258190045177592518782743119209138180350206557784582801083066183675274277570591204295712331443487132612139130083471477519112785671682514015993529744717585954858148730031758115179441101234605539168513661673058516507951308039376882735952523877945689379598713567956544478343070094566569395542992236720880113780349680889733664113861000225016921378448812834391803984393716598913322048760771577538354080352724915561241475884083434475174074093509423789065995951378425429063866032963428507337049675679577417966447926854990563431149248703536925912944484139455622531329747981521634111858043139939567682627081149121571237226848516730057068392422681197835096442859494824939185986902076157922440694512243953734555662094175340686672434358269843076923417447508701099823369580152954749883178659386706706639893154596436078427868921280445989885544114803810205156236864605918661569505475556928986300347086977755151490363269499660660338060878861797663468103623422149598010480557690024817761487731374469896982873240910777653639367027245937620055970748502281487173529583107462936118802552186837061292248927127179878871203288785948591465146623025651453897774639573361805630458132531121061579123019481051866942474585712313005892026244065670231072708975952743347711706789594978717041583874787257147527046457594041563616675298893118528854260360021653660587851231269878928808942009179319481408832593773869571907083474655623845702283728617874480996231059859573985595757458903711515451587138423614021327268545369736535790909175506389522404825207372058569171564845456066078084844712151248639999267586615017923859188414880283841316920207794708448072544454578214829699653106686768537432491577497781130011868260291791070471978033583271627135182888597040061210412530173250024567888230066732769686526737135419534202134160060042840870329028583384323205618270620812193929740557387226982453427570427914248724927349393614358207557763005649615640008235761364994561936402307954186484025807883684138751446111214490789628831901234501040883532100248608343275289761074572471562094584276343776087586876252238757386530720933927290141683608717610969576120859904237383493627694612499535026079191333343395494718068201228757684498961362552242055184399346218753151879815657672781267256187249272085180734666826178704627815768973965810546238127651119508708117990753755796896410575672951365691910348496065339580737492653257693638268441409110313881052498947584558409896201844551366894643809225801847925399055132227943630441952946203380483022922174264238534624365769250272955274784790390036908121245455698995579334028677014220051051044802127591451523605000352953231797377785126314007018725899522513992978772296611915532378929230310506221628386596714316588244715119556646108421269370386906942439083441453584378495612891858476233040405538372937260116252626267547192145049600385277220563772793341901968078557758617394628665901486924156160098336057575085440773922901422192430100781165538742074376615331636995258936878344275648906712027796145639126161199341382505501706075797397243256865569426857903095823017938427056747968318275176437961070158504977301665198870619028526302128423491283504424500447845571247189403997911265498993846047035526796847500096248776679065733355076113602854639512866616667509181344558816095054227914041409193931509187275813677248747792245983916490057375765156161046962570060641281723110594860370216212448925035923713597563700599323493341162086384702241169467127709832326459520486046477710361432501209047248804452724365134658848060795078041821422973453153979186321910930166873402805140638691824635602779808752792344757934763453475005017563675356659943072133826685777182935622249607716655772288991078463138685381576262657743336115807981323688408439291793467688895442162897937622011555196362326767744246038650713420418860089005660127688750742270384930497096284018409484606698019271667311591925698398870429802811567736200935570026847105748199428233529584068865990926765339407285655608060559921867702909322156513386725316766722347539915832123023444336784329229007567816025229956288790388392553641513684203809708949283965703700906129963127434026427339559476735146213626349884447790765172377507045640527200505445017135661725849464700580150997028650286131638482585826602160755201334775707278681576351884283467587468913617994222851537688241305581848413366204508375632213730093079897359708811421334064409408248157754315131121155767580602605204750141421037480720266140716220490161144550151294681225517169781067649543607906301642300886452778541757979160229212199035070554329562944979179528515453233456797362601017337183753066651103274740599389815772087960948885904039666077745178319008665787887675340267645304222828243806778782522205304852387884785754999006647448439496931081703186222954959428810806786786323983108142563337009267996286466195190781351119137322600400818231482036782312896267714167148082706408071995844275931597528445748758634401699408728062998688669978343549982871138771588099156050290731279660455349420948836965423237985331141781536238319880933327663808191465713335760765454196360419764148773720126573433321112623041734404650007294434660996802177442966515437265601816737400797729316481017221259629952486214474009255150232392616285194582176452908970052884808703663444452040311770534023942444428456862598022277164773704021188744113180518678732319971950841375184510275377043505671882403668051160626971764561647542244568381623532555901785480690955258341056058971644860245890782615190287898023158351217737714932263624292494694833178530843685573767446189253728871928112552614041053241003100748676903535819353496592457559232086970890581004604055800797311887510553073781218911758957168077145178274185009608387104424029332479411079320964065859732605067462754716376424781562397586959487411406816915519370865472595998165196303714993456000947572735003992620207959313791630593225303090417420952560336775824422778970046470182713259864750384754513739352521819167956813731841041909755606001770597931013096512835620144541080567954549332890177886245163750262552075930785641571648444129048304651075665451933213713078408215583697075749134546084689029072254344871740229792092414849975831720497542602391030013872942053222063517098944495584818691762033701036646537566398066922142814350489356214656810492003825479059113515841199929824861441391328759314678330204520507122530592638563681528928817240752358620668566894531856401278044455245882726468314940162598190112267060649822863754840640714866477540703711015837023446622026099990642320022404231896273813344839541472802384365846175511982347645427786394741752250321102445234476988100205287783902618174900715946771775183773095649931213549105865473464244318655575324461920881433045261902875413137279662432422708089695738603425428077725594964034516796439868661784452556987124351407412825653752928897403583973782127731545384424526809928310536068158596771516320061762406242644134909995996968231576144518450610225223979640781187410861643355425951416040885293207500270610174375745863680524112834440716462738317533085554658774587179657399059246046926617083618240222263474541351577370272214684758273834928560554008821686926151852297058816725588581346741462580295200522885224716544928694668594234901855216704455176570842530327172164600575076331064549974165942098033685914477748485388952923571234901275500406985243487256433890479280609492206876304310852402749295905008565841808529077464557307055835114690339648621723350212903245003901263931227331252315370183493937308366519180823612800199878672420409430543402477592295776208407761163274846488984644338154949316717758065419239643115443419748251715458500676184789012839744424308154620236680926026098314131558408916288684568435278656486440752162609947018255988062886535419412425596075280389726501871072061827045456783756502969763997726512332828598576671332766647273184366904049915931614495944720905643841534470526895317205635645492220804857471387650788528998911277334197387213374291134150647025184740618285933373628524251648310337173327333533516763701129442834829577585775910890516337983508788247678921935536796764142867022120108005604098676307922461716558556647998950342295128434880467736056132476520395973111478564659666780954569951301206580712633494954886956517724174974141502943764268634663196636525473067827284182394251029561856491424639373279341172665838587243106912873691606508664510512674983526978166491400562733383198273948108316998820240426284700728016752710328846414871961420674328779782709498027727514203154235569455114703187542420724300855287630096085037926130956944715312434455600142225804453103640042118029209774942906282599312023557649097912594161668391553152496609081165432714722577293054829840078074192116377188016871396271309753194753316680011841999185352145931800908988787015152775999992240100338942664178495419563546827214362597674423749490853602149209437637210839379035990756937007246707897311877508992430811472802422579287697069222178969470550004658485984110661626839333911321047392461636909968074068754121921710468399685241681610721189515501311789408522671269904624199381176838744996360819854665747098638550033848002753591932138651119087762606705103743775312459712282380495001745113985055774268327032327848833243657428260125735249877379524729383034901221866150385890477702066165788604000578049064447285104421925906734005139060460863110446414464882537905558467737898269463184245852937983881558611310188541534072685051072200814075625384972067770717703547481421365649068920361176263384324894237082853747368825376181254351632474801822340453500939071379248145720789351866051978490107786833813169335337415470519822874537511598456169274114547353568916571802742321443865225099519198505395924980237613677927389174378146368307936652357930509751877298614026058427185169622891266178458802866102008149256203975042047128568517161236056558999240288748030270303409847909740787118988520511148545400265201828317499577399629673377658809491721066172139640454479339580984132022188761219675251461661766268707172103099328362245434993676020112759588259830157442239401583345507839693783567629827032847745591807461620730467333306909495590006143702601242350337494719997558874182873604028592712586217718948933854660891975442258313423001917566005117084681538652763110335248598761171351582841710636875374488738377518752319442086599873329598675185187569248821486851067616790529493844504829304080722229803983524714937872796914792222140178513092281200367095511603311174426681588328672574589095536470963909235449735214915564374295079335524927229910291919119749208341864581619336154642570191050964731908615824230080834325395170911140012434445244975136715691209565142519622568241166652634248539399915123894567871702714066089015377676877807042934964074421204985940454790157690209313250900850835513580797144429393168451287250739668175668953995292432302331632625582146692603979368563677441149752840136887183844031414370238569481917771006555318963817759157677579615473826203868482649633006228885769043233456134474053818079513080333821980048613184257219068372543444513640208643491145763946992120616009121106600010725438683071134821138492781904984807164636313165201159740868421315738870100520187617513673254441658282540570479509588316541070994865120746635546610019185116252977529853514800357095459890894110186128436861508048607595967591514691316536701342130662827533937254763791241312636133134674528729601364635558541382165952841866936293052176786665450886126432829724550588157468620883890509413389842527057818011462115648200832831545305113595377321510906853199758036267651670967342915417386989460074621454278776382510675898740119345011580977107421453910414193265140133576033600699976150135532763070765455847597677305934836111313386544705590220777605307831573416385150927571174671367767077993130196338189087470510839021933453938115812655208537925209175283625068998829243241470188250818762002692711160225695827748640207142571647642450670227182081427406830409943086011693527540964958419580705636811475436627627625710493195244217143078197732462466499541133699517894214751966693830894207450157952770305967377598853688917892583702744573241532871257321758409196668413941890887595508647704815195214679340330657546803625833754405785911746431901721828711574200912901082271520582920536817265520349797180023236357148625336180551129453702893346970433254681373387374561986389661926352989727601887060432106406223993661349664686516934261329614963215670380544718402842064032884972047467904501946880044194832745139436462419828860671100393552994602442201368121439413768402047525614613013054283275239551482287974852621164956668815484454220173683373709312064405572949335063432811837571007991492519034621092211328516013863148642388409986214349487032963962321228308754625145414939022020015533647050201495709841940259459838160803647076086939437966135896891958754688458235823101672902470372484739379114638688625885844155427366636892510292904504233598563114558085084733664789175684696432054536788649896379711873708105430006100524518044254601039811645937992234558944578558754484482316207611958413190210975987427666002329010704550922436773478678212574183538613048980848019861486965576610753385610700856877729721551317228277823964401108232624493793977078260364047542835661767902944385444706142753906599002997535205999305972439650163517729508644218189380019724488943176330373282746301995256296282970534379628484745617032696046128101157755537835046518854752421130882616096813857614801994150974992756816353442529045139195217794167622352924006417545980055928494911835289035546764513129674795238543184591527621594428715689628136391630336528124902538536009459038312641066970667035450617043834097595707559501730706699016782738755815610672177515106731873883728812709681654453356970162179514268737816626615639190459511046282679444092698805704608998088866832301314663713757538737911083817514888050343264019507632218299871800043208512093938111358666056170538341103366867052085344015658762404735702102269234846013061114416528213029640129830180356617359479402089849387130813327724058845631161140324030296127627828697617464967765723409079743065707278091911897216317405044714378318399592484045224644054342432832908609744983407254528725443116136748207464984094619681309280789663297466792863981951258358316572784539453361142218828252295556543473746287070112320896310646293378266334125844191321836132739619882692629319292511001091531437739356116232393423038684353164859174284574968767187035963197822815505636504288395936523359248856831334362028492788646480620171912446453837609785418239247643402460387938252089507807122306999914791876820110387773394349531768587702467856203463362869514123083597852462640550906742262111404296490198527815352643722762943398809632911692670837555339835391606040047691406290092202582138077097268354715594673983453079815480049181664044482320852099612615348843678266711277519479580628779576732190405399250138658151410593883466923587667768921893346733591253501869616993881377884366915050879335123941442641746097836182824114279813383192782877691424060104182709182031315332829919159508151790934161044600711038034216976589436111398089268602656652028788946800747424068881000136861397778851208840126772271138910547798315797020846674601358285213245879324577317968926313449142003447410922300280847744806000646137467334374922852115778163061781735569962640870757980663199853087074399867217290571670136178860099926232230055907028268485447964849955227289869082834321621168411238538996615213802762514472202821459003318269038840431571409335267769038735662448260271844289490924475938734071761559698851976239107205834752084132357649391055423003693103654793898153867709067765410529596041183724428982057791084440163806709467346423627162101545223816121319075290734993051407255081238707547909262660412930337569365756188209193202671895651264291068289022887416946791752060756910780085559849872577757426014547078821608656037798097833074988422886451883413354907757544988797110943945919948243295192170404107700669590325217773221298049700188801117000492771326048426022028845148184961313087020177634046778183191055057013413548795003843104054925800807757068358206236686943982583233012862666718539971106559741735800783979546681705127183887531595870543666604772159698890150342152450966434822521123002140691381474983942847731890301077019782690676926402480890641741082883510026122587169834043574802961141022219355747222581110914238703495876029845606375563624399872724422409154913955651289486165585370212273583822736314767950103213074282361398951461224061581936120576927405072547617807302325151825364379007926321030887144383717901317720688812298028572115656748446170337339120407693355010510339313165164607062320481606004003468735427877903398377665690509594446154003370264997267154623348088658910039609863865512332178544035740758303844093930739819323139878871979255539564417624412518853163256032554023369482809749433652426926463313417760898049760557400900861512083784426731635433728054716381817678475468315316500197162891109033610579644194082933375615357686329945448591546651747270496448905096589399682832277026166676549357780513497027933095609145743796789961507331568840487524238382881893270089384434983650398930900383277786747678914054611326355096285416180429469068971359205282001776536860336843794669964450116916534239698910182983343627169652369063847201687090244751302939593545786028351859879437443649373373642698489695420254729200733999594785257049819057009351146497699413444921721669177598459376839560004816871701873378798715344482386400560762131763686684668785175889798807675469691946218966112038603995198385552989686937674143446470403251043284559751555436750072668299352932816284725475195131465067459523452516590620844073812534986214073583412488217030919111600090178173197110155506634698718670494405659442922147562766775126965914184825136717037725399581996803853418605252895774686940615512602295948474201942105133425706224421018610737530396430828957914483053223241735766670669168694978753639960770236233532507049150558157916111868882823271350583684848947718309237660604088290564298742961475313658277371963869245359795126044622425468018753866963506182598991293894630283613931137333189491125329491669057538192861045969066606026516155860106139965204903693149136061286338584518334631599841205208772478969918124556432747183431837153338872626126651852301144409545634018867557997527802929453570013456385132135266877865306311958876409362621514461931886526407360711320726768084527993239476822674120408797810084173074511814497210944845273297450524068668936018489770027586666514825554752650403345890046759408649613152643469160234441150891014957546565941690489329697243736736749558760708600414499861046315932991385357985904138618421716063812509666389866451498142191285127804527705287577623444107253066486591310438504766941478513805310516509955573829051326885128703354908113679786643455845090702508927344438937634860183113456990492148858197178394310252645952510883061364060294575831054234237313972632892031834110550037921956588937345958659617558399425736319769610230353658845341349902749342272820958082864811952046955035762879162207967532701940855056020610280282727995974254974673306815012537189224216462581943738135526399286719809811300614195361280242357317258179700724770174560850280460586343096366416541081598178400641294538091930568924412571619526985984311033381571325990354164678570225394720359916242131043431859813665666385378877442428820781277389844391856776324057248213325782044393312389314335648023689674559271826982979960334293806791853056423071976393488990679249420616682263125737479277312552504184766683032295445193884394746326361337073320165688888466079091296151637456099700151613690441697028352346202865881622991656140725345093905470584488340305814659085999682408095555203530207210402704934240859186304329265662582930429460657129435979604333293304479028040147724570201120413719651245558827624380241535854528722773967703263366065710129995574090462191006872320689278215304093867511490868367474525205317439806742670493711585083959998122787206503729796631980722202391597254431838864465496696931201051579091277538690112898680655330831251239010982949701933629599626230425607926539425909825813437679109826800133514072978398934256252253505677290854921249230673706780209988491606742557663580204203220731151604002455684339173084257302250887435213802302773415083337090782563959132407213533835002929615464836699502709114401433881184690612929531338355929669490813126007022817854035140406776544636653727993697481199546569350964443562444295701397063404956535931567496622733538095375918499516729722433077506746351089303536645798770046246742187683923178642095863865870638185559811492647941506007132004227093999781331445411046843791733180990809914093158465988572002630319744902174399501947625343751258740947363623782319424273509656498383312232979034500096874712744221460619518870421605824984388542478960374294879966538456849423217500635399395077324991656036052731884456461575464149246284056988084790694948627462402633787372287101532617094226356534170450675251043774039306461308176571367062623023548154491047355747173389863561140539352311715289109462601498945008295137764110519568108057100238201782964353268718097369199362721112183196182087667509283943639897248539717133711424884985322005986411927247202150187403560043587487182702492076564730255599523719534153904940810734880400456068529938699972781965771419027728091019088371093476677056878516079166743546702528891918614219393826680280067967108754009887984773161575773784285043494477237541837947658652720884565066623812199280312259328143183645890291724983893520033604333394792657741478078805425141837839295093129791213511849974487234322044055005264025517147644484740661839614341021190081167998279360163872181220904062857122474891250644855856916549727267920456183643795434803074613321855214252375725624213877665335184228195019603807137190464501490872898071917140083994049970696186683735710066126063390427595062279263899810234159855087683469050613897667688678679054225931817071265679170299213688975764058232815833616119053639798151191883912412228163400291999802946546079285684184169396659746210006177308356017060866704243813611591670266942959367788870624262011622074236547069209950036653801750136389768072322819118487883532415350764995078434009485135218288890624138606735799938354506957777731149299156722713217101501381785043523498661347896225294530632537403445829044899339089516385059347784459988292814017804593481630508359225381270110774932894898758748722249505306499539368142139127910179521941740752823840085151019960506424377484555467397674037579081568407587463900722719818167212508564070090583206376669587873081922960348038498109507590513766679551371559506813901453376009250713647539194233821969093025003036620602371399346051883655436347070431166539972654691404648959152778517795846210793133377342247707273457515401707087137883511737959311801399270265758150755775808386012178942312119612652074886297050112715350763967913445746729951897639579273491205599280030410175155531179605983371792607894049165674784867276077656924083736234042023467641125543142225940433240900899995504976915444774225331171356896428928566398074245992304455453606363645071233105409134628103696691823305024293284949517198469785008394063297031508470778679013559665700166469020703969976647028239794896471055212071887287492017859240068653656125377472288081291488317473811306274985439480401371567570269472538486605481863279694643502200740273640037450069059599724497086421947494014659136283733342457211284422970589494875764910610244245467706975207131746114055174044286335944824145128503607078346091537282133020969476167097434398747961308660898623185216452458599052341804239508265407071616286129534463590273686798161756774435713786883292643792313841518015022012453395106099180975544200433905004970602234095910690066830399675224760971269747714233280440697674453189490274517823377908641063406360100642572950037734340720122300481884803408413499437065297645094350970679008782322388064893233801856749394781032460863039253482977704418157666814580601443162182858703574570176123846891389756304716760602625366412524992407352126590000075981999813134362313971978758039470286821000243229338522789472733689709303094259241557708258222964524856952895838039380798791369398677979428915143624009339925688900770420670219269873139751907564186525853967076830267988665280632261498847514679996628572541967360187046080690890366058803868777929097594979422594043040031039536623398234716543185757091143634961096017563434343700267221487184920851012157987966145735995207470081369388565964956131610427297614972270968223804211445119861987197513596986307654042166614419360168500763654230816705010216421333572058437850963314396671268044344552250889454775561279852374481006970954114503994152252281975162262850079373230715071516886872379948607124961398350274841360514952962500565890587736830419929290141242647826719130851063308378845801121891976477406546236859504657165923181050759465159201586818676550335630564159756864858994120375157012373610856656398893141267340751435729929410634047881012925493339969137893383629531941393930016573185730517189118705000386765411902545566984589479108261078359971811477610371206186104547298506456835084628895455301245069744100042849345022737019267446542746038777115661462541009313122037788941198091240586346871232180218480618615510669915966041935238566493386328641742421308817394687418747809931965458085752269492123944080888046946911445178555728923169608501614569279633489252124388116523757960375466628946461285056176504151579567102038817575948798708987717348460845212506687913356008925934613167371522329201924157185879675030861246933261358433841278177688247123730773170116185672827255141345665380956270703297800334132615474564476285649053799084702204838241508600384337190418459043051497891989088841750291764729539396022408011869251914973348042550016199064095410426198751972525327370811254848333286109041130151933730924409387356278010779152862815516883668521544790642341688169482415350137481714740800682205622606091780477224527860035772984185683709362605706571280284911413033248061855425356035169456675053237261711785879581531939270394688256755034588452230245327342317987086292672590356980159569437826750520435954497413283979856058901292242812003726785417230231633098343512080549082895229865717108514236766729818504699226066261572966923818473380138139624259355483505331466651268090877070179560747386248934351485632094673322696618843584879904362900590360829831259774332353359488078696511838940433914726942537227567298261298225450236332894946696654136390145955814581605859222115350033498329777015279605445507667614565825049592491634821772425070234360288579233249733109658265466829655302495570284326903104973598027581784334866178435303329366364205889711781127413626254836141191949156522930036187807688020931058989241322007827875950132003831654735946889859823598553953788709705353180162471222573257251963774868806254873567446641267240801502181258809221339609131070308310277577550847263483649202987869063374216696155266577828392919305130386292366586947805512158874672156386670561648513286240544148867893533712284430817417559438741337724240644255504801708422074908806058473724324131944504606046859394648402516261583316249548657799614472939022254788460347445171995392087359886994344916604906835834427689146663498667753166446226349127784886800075426886742335369342646287122844252568267735148281794035921297221887684280997640969493690516089825071012305399355261939539199103760097209375442544010767214594259730658738268612212056615689230090554535872144770800548683216900423297336847157652351084138880837018481556446528267380589882206765851594134257932237369235994265128357853307233370791820407495252508615186055759589254175620334365492381168521281028873670855513600339099784901523211538740260914192822256528537708465123674954150847977028519379910359106923231361346075592669098999963233285496685003027872465790437198992712131819202284524843002756008022909389730192973030754989360286420198315457560361054315604251733207838172070220745329045826097120187641770171833223854402531735455181560975254815434790487688979266250911211366434213829759445563632752293363199814782469292040734754905032083172118844632857334050834012015201089736324553848703261046854967199820292365126136335322677370034817488312684686767935237343423786507044091934737145355850637800087125686327693397601688973013129672437773823068460502521935850915296008382242190708995008529802931716194182043914834500569608523179661452285830650523971576025151794519418837324383004555110524607255560663673692325730425694665565787378081473238584996630689865303062272753578020758302248167384769629079121379745786579031934765871565078722460870497862479382349521734333937783567935577572129855495229654779222420904243660693629928007057424585923054565996899086930490946654930169015548706324570035291949004597402029204530547371499190533307841350906215420870048232395992034600162313787831014143561109819986551083956191218255176391171915042432225132202986195664760629815143911521616513015481871925274804185929765930799463202479170701536509956471386047453577670675157812902566526730833538160459580580760118014549159924198923435796096300361634597322805231760586204024299722234136744973489541418217070989625041118908179570166014623076385234231443105602677114065202818529483799999933312003481439469822930405916067505589493143125784819199668903089461005183855053745449037286601331474206826723009918756561745504314198907192568622126261473698847130883774368894493298762185740032215207478030400691540097457880178829027237508143876043629413932103297176053990429784794667343777305799799921782009900781924951349402210558547331646120444897886871214193748295836857191089298176868937306339520490258270542138020765465205256407036658159774946428744495543454371143987921800783383266804665923959665820922052717002974091731256321010064365908449019292985030569462024487363320764496243168516408042373361251763550925985827459324871587790253867577717283505304647627332477036077526563917669395782848785348161433961595967645298305999308220326785004579596675553355285304629102951856968494520361044860484355058087241112115763303316746313159978768390699589537929896283227484810060658399178557006962335740595807986451088130732276279101709481568616675407425076719735031191948899610712543308654178356729279219302708509686293019382460593655586040871362939841271525246762150760261627411256187391948070077881997030799761662769310315773797112338057884235014543088239651078398855032655577431836629059305427032228564687229250788094952558441791241690000014595297945819976076343779884236085341807567737440983663685413710176616915845627416504990012062784458465621532467574710919953026030909200290999763026740356986263072702465989284384678058206798592943878223372978201287314692076127673606653542285642317165037184781795674638593119205363349752303277067798328311905027845889600612144600792154455578460208453591161430521824174654610880219088076829469912520926202403078731619481828292362059717958163490449275313933695770589455775051973655897962427134502363774202070791291138336450673162576261736769014278793912787097455529103396941993621524364915158422938619731331140094080791233698727844537686187014810861403912877002086291239622668275826877997307822300893604090713501456019664952485580325824791370950039050360189063049939261893266838120979537265151525696832572920189969907767121859415139802214938406641184152366664054775576958695412972395165180925939644910725697686645403522729251583897043816858251767962191284250432668962702024327870661689268192963690363856806602895641260194579820749899303142266528903004115760929140024088385091392473561214267106829647862868799702614427046002808736909067497988113492546761921507565957596086475109930707421127138733677959905194552145057767463145224895699644301611582474102079110363506433549024658018683894617397254136569232093666900846312922639716078537991954824602022325866822718588216661503987362726376008450646204291253676365447848922371526097223744713311123733971618245785612842324061701418020723553396049079295859097833125395325016531363399957651356566325961009754658823239317835191270891011421745851181221827307134369186286389009150027935254477518702871740510759501511573106245889162888848420751880143598345355708732400528121005343003019552151409501402634981405745198305341359777558013878015336028347927655329529580340535178708134814693118283702843898360968746114879545700069010432612840673486847002676704403398408466967411288674826606605186930051287019503428207217705567923307320017163181116827065198323039758393029250832765351926753636795430673150213916347210157504890860411036168207798368010781334797817068539391463549723205770718670757087958004293790490998153252194378513900851150880376810259694707287978190379212295769599547362133973724606362675573519785180998028380849365940551503782143913730128240985881591080655300387044053619653872028557250495382217222299227043782655410528255519628079362076251075570806517033864145404110068063618925326226141338234494554772800739757685426304537250865167610629781560786472720368125851586298587123424314921434364018343165517713438591594007218653703096112765781058061917538813687569802783267807753846828792260152920438132066887769609272038504079159860743595820924579713741721238829114304992498175772147500822849846004196292050682391967957501603485615380598812307294967009230809095641098095941334309393481641879788858979664137178377567221022538303177648550718890006888176904201343637532910227065364214398927122618731293873044615871900613523742018801827080201401023531212668962145562502796333560044167850617888436122827801761011208299931017581724303998639755509002167152281557752848395755006894201316284999421790322277867899140683887453551392111010118268705433651938262994605677562015607738728993054480217274429426563641776783074770229360961418058753371043151144162282574867948026904996773726897676399186250037027676949727709813289290277444252922395530640038946202375440505332599518828640243025057095018407051891729499923997998070598795345488215937771034418808482657068774434276741576674332592481704860016820497567406259064223826182536004412917230568936396998596214985501456043702575105313430941713220845573819515414976811195782229395832024311324630033706926003903800078125912464863650399433751705625284889558058578636471400265081267130895164659242595372816198723671922643474208848439595969377162132102660000952581958208833120807483253133354067765557491558879432392051240393608686763945317029305898810770476649962556870471045237439219595212246204171575895592653760516980876548197424396453509857543193484797097917044132649777897075511933317743189185597942257375024062630461282395395736571833534565752401072206093186086085371639101313532840768565284577283333874375739647437556103794632617456636133387505872825042477930000205726488834144572493336829714674140861198591241768042762295705285818908611759978719916818005185974237388083806907698992956226393062593435833946535842449024526368712835940767235107557219620526441752738295785743329123603956785097325929719791437588866429195335753231331431822627185958696935297776724684524948236298600124206645470901769767661499509674136612659157952422920015238474421467999265004202349729494078390276452590186772138197308451033931616793328006209881441840933695226432827879226509815365262616986515027813859662923291715658843373146014960569203628868582398636909267591333881919951468403084431280407374169971085695264926586540786683800306646937906518455699220306190058978357055892902094222408472902284899721495809839998383866122112378790558576217595146392439943853219628519725607635582187168991195712222385049508708538266251045649617227555137899022117656679126120938004896888666765695297699647974710039587929630683682652879812909248690322474742125977608077863675531889428190694160553620797970882768316668703357010860949377513115009825574823044287277993205487257244684047804530257149246632118823975566504162606174688797949250751798458628884396458055838257283622205323678838283796337036501825474115259363660223211865405631415739772378704034800859838164712123499930906388131691848607449787343095806999458331940011117251482997333623865694363050304058147082357910962053573366063820756951949843820823117861980066900685373399427648370065346729778025414430643006652904926726295895808235899384396500541616292274875800456926122196706316340482548074532136341330945214836727795794115745170593267709686037191666240911161161000608254163014997285167982956207925931757424215672155031036903821659672781345886178342413253164040881006557104204762997438267201784877189329821875849005208370753198400011279595576777009494396146197303246809659096942457702030169881518912326925102246846589508844047100142075762444329390612352178126524923592370224475650061036515689156574043957997220021594011137544797079739063626821157311345445980456079388704002682701567589383872985121396717517317577107391103216772260158657172786264421868261502229593107830946046319422524596074631862861604659012359947857371415672302403247848122920911335794992262980964172753361304043354687307841409704931511298299600574301622076886769255082795210232953094369224311154013099807774821390757113013921329591673813008987173298236054714564688401400678830099891116955688144754326154261505118665535315447745559701816260799380291968955586130859692466872730237669000567679342507523471627086702633409856072372369386645361337140973701730801039017805876783906891378442888000169995914278656002611445278552277392527188995543020816710464002472263945315589054077172203276610819232325184114356712689264374875973411901099083277434075782320532812280544282562398383719485611475805273998196045892821698857071648882038590860204043127199698510535687298464888200728097029455326178137774079517160395795226988439950749973706243406958436996423576816120085998588079744669571347748978913947981941566936986913133602917331241520086354346901723699645785843489120495045496987629228212688225406299516667046931100711392813831901022664874646026055401357924859556421206586150157826663842347870353224682831719581993083907331921830350351599793712228459674042476216073395383273921542342238332948564972849872019718192972122545373600672885353215297774916165738127042945001777068757989359068420115171096727447132768528632773924129860539086830756128361774625536323873311230325028374216714572358814944016291408595332569000870366688828753533034014886938650488371388817573453338868882985604861512328119230437940265109682829081278235366325579777799938488291203433442165011080180371717968168863869381675637391721080651520606151571546285684272343546678348234961823451679018986164191257839860893068693956968130048177115302426107520170768432986922472942109269226239143465690019350309521043843421379765215349554433202820419596907181973872929286102345334133397014961447126628448512059308387753804562026298169086981143425335390358618550095275699680422414423327666486459594797551630217389380032980837638012341659013745229403263543175095491666942902875735308722843621016860043307428771586951140450778208058836170077367690243833090957104483195010529600538585577565974541885193674759614127011623467130977079122530309507825339353411868378456729071437411255343715480319892853565528896373150229018687620675250543797319616578143359872870586843883289499860909995692937066501803871772831335319022246471255877530305181448372775138445657664914017497140951932419056228456598805834204057904268016652244602316292166373848975753298099055991890533418569300662897665476979954786780460110747168327284863213518146992843193210885327050965853849459864840849798843297368260114824411028496217703660232183410457798829193337863870262114937864318335426703107728248850687219044885795032021253193008195752240552691565020865688595264653472478348462849455943859933273288035784237159142386445196690976919255795638033649430655450789517095647185781503578263410342172626631141111021137972575781923206415619219867256464150052118510564326955108130933462729793248567477412893318865443238668192301733519295418133018891637541288867825110743118423076587345622265308212408851987831501122584563922686341213634345672936630141118813646124138376596585778358820728815050625252814830676041036326323066326540567169061228528012860560573307438690617725049573128943258490572577756420534134363021148694240685075092728995113577882487205598056365916420728569541754516344089971543506258488074859710829484224311533871088987612413112211447887342487381221316007187772169576257432030931639131447300753984507567614438610967114858120996585601454740956353614016538608167445600078477604022500425744702358416359756773190530065443208437614986203548622699929426761760372244015092584009880181076485976104259339084892142110292534325685740758423800147144326564391115334084004492247491409333993218039052486361353285340533074670925402358785382948422476808863092830809436672612338381198663192948810773710828945683598046473672441931749082119071025131525114197400663724879027780385098828625554401730683684859277013091511414877779255740645103437753063940663291628796983395291915947451560840059981896538988737870404707025572839295680715414488664642439093994955694598049861632774266427131242513966223920415969576561736919097036252203893748402285941789756621090239534617976172353627104712409372423899074370634919317810524683762960806651184635495180757660150932531414462387124788626453358082604445483677214225951001165313295471144330507149846467208965203593312594603577039643195042640925685429238911142898254326506814948571158775457753035754671149743172565223201751507109797902344563979913514633461691075784902846101663128147219305115966556769021741011273248485812260743520484286523701375774168432398597875386557058720405876346190720056659775370751043107812949673143950604281238328654669475328337788097848082787669409457446321945665976440483390670537416076438500423048163770201321480345423226479211669747605442982532466985170106060377516754361696215706059495243147055429652772429850488405088087618619566215611622148349814593076234731277602378958503858234901729000658382325217437950027256043570720473816227361954292611858169564635490091293163078097742030978339288621563767011914814384019025247144419037615052716893036369375782880221876619582811979146947406227496423161938748449914890878545958871804574449933163476202744779240027145988105610126209363737643089363920319058649299668044739646274370741748772860952749259196925658636084974998479520271526993827465610885950279672988049921210948519488214571075072793880847765288049220699098617758394413483225713075388082799588153314502872833318421583798922648975581136211428633505612447741760467363333217325369025375673431904017186506213974851235570826287605892026947831572410110959879717764577178078288778839315078889203468273910759007560789343788704358264680333480154422876700944051432470588093947343128794660301349247598513337841296607079073097738799668870804665537480694113688658778130127925894049848790928691515096605886919836964575014176457655490309476374025044852801729896890276660419473233261794301450392499785504952050735474283494319836974252490724284017043711685022344972102064527509214801282471589294074786200638661303035013598590930385138118835826766005526077140225093400430557518388840910331404359156845271421587794238394290051056327719490102929202035810885857399613319560625453535352370386525937150444231880632626926619545892365158388955943165155251512930162354702083007127348033014507895364788542437266074934927507716349100008353858730785275687168396923017958220096891892275359952617275875438606578156402550370172151664398122434735414138928657818419668557298895972054362398849104789216715160235235699173728710609544828532958966614012362847063934915086673204538219262870800160983841876452008485906286454268493214400536807857602446561880017669424522281079874503336030354218187924048193332741584923113041872826769597856648406236491534042573430173558598920640284256490858682183844913936745151062752853176273752945451022795058831165151707948332673222592253095192679373330859192687733582096138944322413392827831510807847459065054614230022403615348541240359416423814450988789371632610988721858475747566327295456935882746284408260510831652845155323237900696392866209568767277486070936143262605751192987809529638865923898530026716337121115140886929071522226600125291075467933490237080383929626443764962627825758716901757440207063477296573775727053385241055504106808552175427363264112003600163057071564205377657832100417638883667670901740804916410142755157033628109947816299361769985971672960936443790717909381614782696437104091358093149649569354184932219369549647341128275240493583831815980093435048412135067850851650508233317176242850583437370015860614569767587942698458115087027744457625294591891689229749500532815430196677995012404675131426367342721064426136699032342964237704026714242839288821271573227332566230483413123036729208549990159829965129038854063705013733360503283439921050727662133301443439739365649616540183711254097531356962638359977023538850800466792764022225641107315598157957184002534488660521401456725889668637829531970085600907615807602593308266535760263863361479897059068905844822673110701427826466598219208606951438063707462370609032645796267719397472201916557834542313227759584723309412495845069656123550693519051059282448420486775452377623327176403650134901353600044471949343469854866773753618733238876451496005562800886340782447495166473698624249800875510416007877641845023214943049101289254586002654825622481253572505868152304397357344485015672843253443818804802601097320906889460606917288355328333281243565150622895528820716969652891444707080507041472272435724367310045340162121554191514387932561673833213574439418955863619506190040441239996844049835561076934080608851566778378973621359929398942104725362598514082178047171500652431326580036804842929312679123601125543744283803281098953452478899544729368899549433387097850843764695375696485869640599557045190505544646558882507884677397725049569878170485875089171005460719478914330134951044380397893032308874641604199834471982755197416109835757183463480554518148656598118005494220979726833659039036012062786979189942653329283945846211871209840133768028577835752905804430894049074333879694738614459241430789782129031414136518251467415024553764240508180676698287789492638382976031023135306334317912082836663444081931777710018326046660457629475873320701620713234116231512972503898861808492203921368863339648996890236879955477494548994934194828972242479564594023676483604776733526064420110034347056384605337637838522461801945738566681457061761166719711904051218864927794479874935298903966866158178616630804398113077030502309555520754685188410590240390862312448248906666297817261968046306893100906076685039382228058151553689824035156992027860984059464480014432555939936320248923649509996894444825695218210375183974054023255696058134914958607695164043892977151080755406920045456400301344927184353867505504511965136912586930884761882022127431679208501644070690763600695224575837300744638121840636550743762069724803117262026764518594926854360460842093563110897033748174471370999174603472164754229511718492722235740164874953950421197854801429225121776525842976686518075538775035489927579145749730040676765756996991460932550771096670961864775395779891833644848936247174993148506555954011218238098991129159825708862558281108662926384352712059248214844418942761071942406734986357330431932376053150328778132660595951517429120922977087236969943673145757567271421953432277929520435653915971259368693327819414336250391218978546965879041597469466873263746727740717304337864848503458418470596384191080865362545914775495170065589956292512974592237658121123028891695153264795788040195716690918088020729056238469933499646241379999029199239309890604254501302863650789929787549038655272669856294535850002667494829459006478072044799425818496460036488441623524857767832233102772993997186894067770697656976717308991708348224784672641452354090050349391075855392269374531777190394367677451446543860089630051624891406221386296291959603111601535895169281857221331796856513113110750910700946448154143374954925122125783587752404354353389428044769474328387469736150751278045401488981208253831393073244814330629628970953005349164019250247378968585118141859433877105199813337349298589518586444232916052747763480373624027671787971346358154127157405255591807038136105136358383248271681806942438760070876690665894228820645453990703278782740149909145221048754945988461952920784983394937013091235621273980969180866986185675273861422674446568129119281100321688427849615591756333843671974803637324649649270604737102266015625157371783886648387196234592770099038071812458865174919783856410481603976541532933571159924100439637140983264340283318793646647733319659096069208709263249857461715552760376077738571039250469816446579022170464030792718912039964326248010576739770529088818750149392975442698493877388304958930540792057356827760413025402720431192774378425970553138121660668678988287335828616269163925568907034278558479209489281392154474294951605059693052344291573729370785822464425166722461063476489628748598497357713121985263493509890467897739614630084813909426751994356152935305478516159759425659135252285773078673645898052864547383337936885540529630080820758629804428409136406648290972230235868923424926621952105292769568032421579526347293969688544409081545726526184993291935535625461312615714257065720889415205677226481484656172516050223844119436046431839212230760737077496041377471056265691761008042141402049008580292349301261786573875936967951343619738673066377262370919527058724045351564779973561258441566283220399288597445761934287948055152266474511349541781430441801325362037923010942737682758318494861151590033023543101542469643065101677020829644714741826514408858075846798196061812900592928459384653704668654617794183129953012944882768951428851485638980386814583513980776046298682632347233384578523967215045992725445508275760747128098184234728941322253665070129901666229482011271223279990460281902232066010493678957871940105785292157973056006576183686740598567814714845429310798136739309285027721195382412433314987188464533738117425735524752739771520518251407921202619908264382359138541804254661137644720315064831249999442488196826414487787694464459845340144475805781859055908703242482476594781024694281524750397554277812014115309626544102090107752452623012374426156748651446294342871788240994680701176330554626354285218205323009220675369796498076890870838526417748250958288307330469445522652712302226837308587627910910101792481243533231477108401477267733186522378060217010966981290465173952560858639259852428876654519265412154509503729693255888860924399739476187027527188657338024058908780456548624978753750462986451566557466432299109650001314366353261013378650434722404729932602375317921682911993239733807597281605771623973190255066278598938674221227701052058178288670345586478209988127628559351775728321130211313009940306437100360812764434523195192617454469823436550823959744475604506352883080723522321684998542742872591998266911774743277213548358868478840588851003979462715312682154684946985680140218313576688082107203213184854597873923025316506628392186619188942554101412357506912802107631114925752982402347042848613276944817832836983695264847019633137879901608261528426138065391445084211673519822362577752870955776098211716564426775293312688602160643277738284344393991346112957677259758514740504421222691736694296621052727487484824883049189016814917114980189066003801242408662011889825090532403040021007950665267017449939029891768471450507608294163662024578701131479196536675072800479231480884462644641463826233571626047659569747550576622510951128783278377865135171630324521242348346187453126435727755073558191318152862231463520179160034942067087173478092004189843764024556280435535521821252485155310782201343986792676221191299284623810373588821074453399977775898786076166444396681882149669304650935888705096078892159769282412487742761526814863417132739090932098496352900427693053088764710568699265536220796458483816121220673482147425277580348462738823210197900882476025976668750541553120824857223587915511583552691946385580706426502074727379927911632152986850869962891893502717696383006821411574707974796881684503340721672401039355096173289866106739065445789484140122557325417283187262230785217915780614878201567281707053334067384603091819410879206141270373901768504495039512794441826709447385917224018945511696816958550176218696427683345745690280871825526624264593797306073976409576310893660080344647430761243484570096905996624612556815427646326205495278282757226185013233885822298609781573888740750507170408123223991508877272020532009723656480815030312644509195202584350625873304616485984117790964415451857450563514533431334170457322366523085400096967658773685985102930939775515779513158461856874812639626953709222326441752684649647214191148444892818303545757652201137729996849820359761460152886016984638545327418889583373825634039036427850096627592046924147956885082280646399551990238731083075745769149792841274733104520684696999719498748098404674307957167725601047579021536856390638835970292194000663561572662923560163797840634505001304781272819557071563205054607758195445357221455101129490861205065855352981695097747815192685593564395364246408118375954616689158993227160570548094898523302138685570279265412569488482758020286918072707413999925925136661250794704907836603563377548940824466447703632979179542213477066811170354114609540231139879957052556127524395332308298336736921043363641053368676912011499053094366580139425400145092746184899182591275470771744518829694326533328496988241906524006786170611238780056207153844618942410663714178659241051125670210900026993074129606829740347826049415294748035539832896166963999651638540624703798187715359098232958633268233678659120920355575339282315467460106722324838664300347410786915245268224819167409599846655975087032483817956585450149993424516480161288611815367810689811496647813151063223339795945926407219984128596838595471811685450811732998276934747112245922094058934024559677436296144729553307938126821444050163857866572358849645092102688076357892927632167696004149783406181673598944756743858150581335479957877747582008756006681507498554365168403249834899382995627447531516547546835256660087224000215620140122325758036107098028171325162025310124129766489775457533075914429304200463507317711150139581484885269421834037178336709587094634572827465500569379141431966548219212685886190451805399274980834801213307228147996946480332630042795850640938336789473272263145837154368766411812547098718629038305499013557617757890458599495183485932666129387840414541003927829920772614507106414595686708742014983017411476802128934771713277843735384722550427339590703343970529464818650807441614060705773836081733373434807337465368327222650174444522219825215341868109001785281207307022565298491734746654957571603620600388428248395049806182828247094921157272113777268166640182276034746199396188761169307427390828186979724881277695160760200123350350288168285102428092271982872133144989681041053466184179239095473533192452135755304758877003153583259861020210690337346821139420382647600513440826901579041023752759969074776925360782442124690909892923064356657382698792854563268822865179548932717155519288691959523463977392583078906025026352668942502135289109507068465524622187655442419840746812433862193828069447588646482013035977414716826761699712497162817271007951957314633424508545841114141452540822090890953200162102946101351903005157755454613142307983848158127517540682329907623357812463172066371477212724831928181138382906636802154971495155607700483660767449181739655861569311507981777932472444264479864022009951968405249331757285043898777325678752516514767339976137616881845429261916455271947104353630294833248443366351943714972754105336192935675184262105441022376214341419375610706921904448322270823007853145753058367913780740094304675220913592561202767122430655584659676199700870675998565564352649733125461904453686905105808721662275017310957403207243298353415530431606567300647185082626037142003604175350758761302712095447851626346836295667548271299710417401990887314438686390938903218220542681202545357057959258740957127706475402487534024654531290235341288945310364836411862369421932853342240320072715361002820624204546750673727951512881851481930667382098813788447605973092180123310239477916130132996711437327935944593089849504160059596744421893536536384595671224716222621726691258706098664672520901055164910079449496119757277344580157100472509107177841285218658812712550810652645446298571691490189093117613505565447632235831783510786634544330080367197309304079258450351223433051410542091983802152876411245204479477275503496301949843308038305759481472204972535585475580162715158478933538879498162247134037852410235915649626629279305859884757498256494029172128661547880962684433013390898231682297107387170802256856954786817734000958367718852677204808392793864133746448691596621786182638737919187934979329174736943622441384095560333579523600338432359626177964708776319737720778298711710594398920081887671216788651818786561290941509483836714418498951480378610165925276572778462025988154178717963828235469710887615721630289316908440228554252438144277045651935974534865858079231712395200981299121699165556294027545300459011067055247405883019882773743637273440505978036107767895050059365366386019516527585697660719238479691725329650486367134497845190647092289025393175610412215248258172240002806087139176320758746137971676306859503764356459091762215669916431659740036370756229562799259570335896295455583029264862704067084863529875200018028604390346990525024988951929430302963440656479004508378714145479586031768649547990513723970784404583834512704092386366176922140440322822808167094932724913821756861057236767845809826558774786987719899444676312339847587410259173190108684226391844665658056459144271804542641996926727044867762523939842781540655314418424670464456825765694858406750304919685531976892136003789682889297036310026345404402110202467774441915895277332230894207783344350910767973663383987705605823833110114067744928864977112784492483014695730147733843467808350012926525916955953381379181601911655213153359656575732026492776415771642245335670714352444058495404856876789532400279128969997827683009769744277742562129520612073120235873637964807693272476444371978328365819802756155053771993444322534301575084807900926249929387389847452120949134372653113683942051964788295011901115168359965517649979426941599316591333181101582995197395075394526614981232974286592520836571589093259764932491175859407560073632028747075838756106434099977553978642355703725145166066309775173537556043049693129879960413197926143382452597805084886252463840305247997226190303294170434779179099939681611301840690460006717335457678951276253879727685287318347938023884108025462702611310646403456879003523994008402650738652956532351274008343654125717674094710141091666735863020518635699845186967511082444296901664819932123120575715384538049715497934895217599392234290685860384839660974031080674849092907987802936464220894834454507927572033283646514383994747449569658463839017148873079699365946048652690843414572514202828558407931076198876869876273308708884844791731234511231016456804399150319884569019712948178825340280868287661558142393465533494695827534209101334463288588880935060318971979809311823087086189373941876727421216593135564420174810506785176088832992418176997776249514642775289823322238573136024328066382182463361104324286952213624313569891045441410953460997800348626110288422344454488723462524665826499624042563802321227432200823050056672022643161922630083535422164352268257084826645393676173013879266026302054035598624826010735550255206420288801518308448773216298354554759455997955709475256365917331030005591075738816543930827479898752248222420103971434070485186324172983143752300199371803741684907708797496358673322152828150306044588785731192092981102898172639997338575990021143446597736210389949162794011784043571240184991028876063938015453802345788554940324523368029137070669922835481758977876067281176166035355363037651843137302096008341526401452786080520868892640974743520815467085268833207474765137299306482720273035211015362821404504265884709381948763211745687580299266065382073428763976812681459895377385220925249224969604977133701886575791482755104227955297811661867407541153393901460632491845531602230996945868179348937499900686054760112951128166227096581599045851213071524846178877111508834523018937270845620991938110431384595434502649070673534933055715877890994375979576208561673923291980908102366594350452384230099201926189988456518058937596628313214857891200761024115866580872263533207008729577984660915510886973583731127605490653309387091732429685749852353581457600132516996632731959096954860852317191627294088224177400709424723931284735616484410754208994640192084708813640318974735641703504389962032850731076052886640964102014807753763810086583367275176621763706045107996595973362544901888323698730890162888922300151242406134778927573814394814567111496999993554183126918569726671193700835379527757878310971453845555350083336376852860182712513510091127296022577189683149741036865341386968203862857800813771489267664049859821827656027303044112472880749651427075740426461756657702872653459078435694542965217818655610783241012613554018035490387785001584275290992228916298299348675684207191353045425531060338202751873723632084808859820324700609847160215139513351874452174268752619054142408195893056560744741444879332087212347035322371732108992762309395526031147688524406798694037563231585035342021551206862440189425282357852740000663641121643910644449151880163268493838037852438021600625849348795030073053249117912767004460885388604307728688738268690620383546457225039887103254990668729070518965964901259196708911137502604251927370987592220314596689365715785434553001380004965469251421229597643848715213627727024752675907613759207284391848189255335584667088681920002488762819298990560089214076979843800084107816559027237742318190816936525372080769479139301393914932305319305774921194048847773248205949777148756054757153524181197219661767144095537174314633626916247887819182261597173386194898893186191886420506088619312554184972166529374074819066539475745451776118388025808251137801769396197607411894170967065476622462914629596598994516088274199312898342888027215717919462917784158233891224596537166362769292508269813102717776271996053764699827398110776185352600629740843261082807841844775009308356048286718298259694864134546973717567925418450770527407462626908674361415855726801943422338798744304718241449291834544133447106824692541477102519133972514382738729047943721167486473226137553093185331966151403055836087552036269298111531345037892127758003877892597648178141242362965734484452933489280584607102952237889316401594666172587277410421422158782640222098923479707386431401233880672085139482567771231487669390736565836306048545416775431179452973461980393734541257016816448889997917641647373339973373354484484053054631414956860992967917346648764222847085914678732144376709810853829261397029592694626024032571406900761759381130684061656089017518751381282131633493784367971260204720846479966634981809349386225213335993252703815880799508088667899799700651812955811821813286245722676815933962772088166101698506096839358878454064162059674258133413457156020803361419367606707868139324202925353250094733513942211692373379664881396216145800153642482571694115188298890792333367551526810323281942608982900118019875319429567269296283566207004661709463677116509686881319463135466459677759164083233662262372270554368057967172483752469201934276533597354893452806697394868951764885897816549755234809355054771192081846245450722859488508897249888494976350905514924934319214211150876234085231058096653730873482608134097710494277864630025226177937304513687906520725506283946533726691734403673756308619142408120035986620872135351397517734464051929727691043669523383812469399712265584678162646492723308198341022573969324939522124366316131328139700776057465640828419813291036829341266030440091449499778642980020895132265191062380381789995159936555864465061136022341857239179537479469801039702512579170355959998910449385008604185393669434355217774589028904418038721541145717561375628984003451943441228376039713569957088675508978321706635090873070556702404931005448294349409077529230465819087937647278579361672060725696114044477681859903620317072664084444533350207485937397013163538571870589007021370667785935334095964172325581898978551143495404813730602758360486108125280787584724675114507219335928360382916606551889749224671790290814076427630246018275604034021691543643477410696316656553301471965746590516065967696897972730450210111348494799416953084038419003441561193465458060558357984766894025313836222617168234064875856104499701959415802322330764279166507286572590925963846913218579526214329711587936083225734430932549499257232395901103755619558742104554059261957305311921027840811992627693459195698934007907177553019291166159432853488715486357285209377560421370087757966183237048166712177903790153134385284350622462323433196800379299997056496464798134609062328629728869280456033808574027965808730843647192930207962656646540537346517982788976615955533535837512702127209383810042009939785910526316055103162844524179265227367422126121279246394699565283714110033599033772272961541478646522655130596558023462360990143513850091320585411553282649842414719661517305968760467214861259709217581928164723924817815447756659888302309967710220155848253420281332657410739071381396510813004331744063403416774438441381887384162051392674792689763667820360472820015662471684351958395246227587819459288311120037974616061094421347819751373379807053252434186373661140777112787511793656928435957500920172607569312679132909869649394992610645295722514530520099804589764350920820303489405021376215948386243069932509270930753509133884141350064828130398369758010746500343513718102498093674101322728997039943334955454900372678845088008056435389269540718572484070170274852998764222095124606554108079351883857010347921765397446306263932500334440766149770021839313647571818691164784330456404961825682276330172098386694201326222595758886477838048734133406856265029443149251195024532729645883023776104268593502171107384593724443684164931771524904944562000004438712439697745631160914982870099142869072230045921118523484968515718779384837939937639495232786287014984881340021577881612655256730086239047659275537175145299608583133606419139510072321618239345075266842661960877197484421532155340419691738481908383513316775617967778779054546669823852992843459918459567430789268324438343759926875349113257741843897510675119547331955211496443166036407340437875369582928301630395176009850234529801989153855019135982265773092543456184269811478083037387722718998190480806529846044906818325970653212172408860088643189613731082544288880932411018405021584458253500951426593179402627811256177390341492841926364781240614777241883014642580044973922528207894834060681344566847032390538625352367334698837130414451073579003983454163629825244544564231225400099875403557325299261461511717630174490841079965250943979955436040983793745910488602870130893707835675894937689979539179383319900301649957749318361414458504395367165120529899661156620812462677324725527074981488326611811238732072467523823026252993189578769326344989483340503802253262526650940328915607007915606300958680176409677060633821732787626771135473959450036228247101142189424069829799746829100562949137477116745357711056916363210162421243814591459846645725670855463960462691568882339444000148111251417274929787847321524105888251222600464563190554661497866583984752250070343840858108226065922238919308068338446479967094890409183497524734029686405185750618000359881716286907234552298578058743810597293667137258009716471010383644619580621558757376891002762169459601167685253483720944769229438493596376202834693244451130988411158880383343739120898866138266511802613023391086628665166345951043300572733037752242641134617675967387175605892618244385358087521683715194527579612799840015289506183987096291127589585378490432977077373992359436582853872426659659613761779734672128289609983827351111336931030394559928384717096709552301481457518172274943623680261133378732521322745547886869188553604934578243551143072101877497759587466863618447079259062316489407489928941789690465881705231284271167834862213529284358826472397185778226484026421067302156337322846404622697826023194061708821994634236281169891252216820512746657863928643465942528064600568934270974738047250532595563366492883392005283420784585496316176113341276951336331400361301752188066793721084190972117173022677034568149876445836921579168057992872670093304295548718816876410380573415151688605221630476614634769932445311501210220294796519434863277008361638619224135150486237681260566041078457424312684721774375116632970613311662434091729892580737674374028051044026058423063265715097278887451998125030413064317282278049693678503977436828427551783934067039417376782218271372769273161550731374380388738028242733179754136634676200871252807899724543529063831862186404408083028238422242379551840411830553822270935142138151742921309136274195311352659460631540649099404470217130807761085691763121088354879594323681590575618375591277864519669652598934331024326944222639590929478320760099706356829402146148866229250731613235989166598893158931361641703003533210754671492204582102936110926372297033104127514244229817425389424876829312914622455811072926068692892676999421246117859749415383882974202402006411853050156246087277926038810821975271561238637639459441775654885590650015048254338834886021239073671812149046829840617225239155844278346687762315764896043371724601397178973275443604048761477274971941655123673470053756679675193483465088669998093170870679195489153128890488056030017632991062098967324746765583461410232764768976875185681214313302360877464534144862220361312115723473858532321436149707341389705821630684979411215075137488236618794413640245070519279493694938080431566632045985956338449616034329851179270315328624916070481462281216365719969586903325574968955792422246631829336825249973272887117587936299875272013185668449773478201729261418107871838299583199044759029303476619619043373420973110716843422498645087740726333611797603763051864085963404864200471057298297888195884006867198831028846757218961914518649072366009618351341923504363270942414890914905856072716923688364506472638500588569579262974250885397644086043178523680397234814386261842044853373171144877718472529865405029276533564044172579106728594563641996753713880990180689369518720262072324773993236029203592171393874182342936377466187799043018021407001130475747602349178032577706693071107249361928485042129918433554576558836549078063988745692999518575920350502604343962213310116973293398370624780585973511530258207583043900678525278288404067258801092454223678610700317817653704281593178857364909655023140725935746001154852609376616872620406457556111184254105202445464710319904043666868472981946304204811789548165952991174391373806418426128047678448761553537247019048983176827078204720555643981687512613912433079314169890412119898917844528209883438763545207747714960079931925462671193221080385374982986549886726273716220948626445975149413912218512791935795292665712692999589303462452629366590472817198801346060305003858044402867477572748526919053181880641140718293151774334123765000873698194824990774126077189390012012387267089932522052242851616234427955294505256664851505699536671428928204291086788962122503104494151716737315703422964418833033449961805274115430435163177388258351459105719036202526655000753813871140938015399951892258963517861337086945839518219640717983328783901114182317638275757702899000104142114925661557456014341186411452003977581977636118303641644202071500206496813293178280605762965736294688620244867464990977449254461620886594393956129892985951571044743592516763600565597894306353153800754842033771427581456571676563410139187176689267160058262067184988045920005431540087590310558121865949147311554728677861641075967663078641157285832932299889343425643492050584547291826821727452657367740777724522272715247054527460188994507201010387378735280346226743769663410704452422735647834785510814218955095287045846617890757247170177881226897570798080244697206472146961039039124484673331737317626444224904866863300663621135686443111140606267653328716041791040330941533282275725991298247361878825710330096502657592732718774735296457618526682306141448318040874709477070185748933134521230159227546435299093713108001133451110394326789028282564243057603348861795287297712631516158625732340665559615382164791256563693208286101690563707095660874318580822682891341703382153713065876261139642625192776760687055586721707433521525932633663813737450635975781577673827492137629687935382744091373524836299559151772022762010555564058004788738620214571688353381835146439222413296576389404157744928795626970624070387971000403989724606032777632854961118921866244403608487489487360833095768640332942911493382844157277603138553812070011536161916968455377807120312835006445300316054455244763902822081572938105644569131998270767584337902610759917993112350883100229718713959557355913299139332353435778858676691670437268667442865796719927299536582943731497973560538017340961957462812146818668397527619956942443398969361078743522785891015420533352233798906599123460486775618674475450959794101284658235811930758335091818788444938709733495672364652454147144319846706875818017305434930557376433893053657035134127735740373731168908758360358936458159183961686927562905828481786495516364277932944328545675284365697740032391460215425306156875311541943468989990643985345942579174012701603655207187506487709269418786268623336542008335737411903578975484241062443364193817692423086464466088539100078077951936202024339801536054168680582098509729036275210040760453880135060642759490489794140369179856098079689075753972262678626579268649370910546440828686029631132121202865530509070668847332855883233419251286226910873718378825827032406631249326977777819376931715567277719369070859329084990182984656462842779521400587115953951301230824955409499295368275588192520927420713264934939886368548581475193963082306838765784536820361357224011378307723524233682186609507796089506216678278432160328734531589539944948521039564243961265634332170680345646200943252304583599574693538808201126515248281817939100601750461391611471051080124320860277765715868375787030499150712931351668925640635045318957153083647429818613094727489187244632540842781437276351460612679066415883411150184143201347945452415041009729668408908159589526303585180099929709102544172496590034255193260068978821628077928124089196274733043215200317603220195238162783824415637957942273831431425760529622096792908979771591425302515849565056054196997136300700890524646537247821519711254224804568495417704144365653855921391510403063902261320732749267176153650905807369557054389049719632189436430149317331862592428013942497544455658895773089595400873043049055468509755364974455172107273436204991907369455455539580766392176917398582580145390674089421036665558596339008448484322866716999362201212134178983580205913082461543382018222205416323340740452253554679485059840477616389651618326354375473501815728292262991126488862794164012541053002861061015644276066934244658249415038688654234700847040161947072809270738384710767179060682203296143991359932713241789725285967485472242640782255748769559931720652803317185458291547743852576589622850764050912094527339456494120350560582123619378934565787942802441372611645999404858984826473233093982207381021865313902224943979250836945171655303728643078710531242355184056516251177215549600592999639894412158094326890058893146593251883259615894273188617617718081700600182433434764938985969645737506497505049955862629663400682637285095274784552684667223804667919300298737937548605840980319222577661318317668252108261044058912147008773453873641854029341507389347147212930173278546051562209428428877205550822879960389117770843652328807258856907146015603452655125509249989907728247035534830053513216585809646595403583022595462225502969319856204743009109894803462912836517372451478643930166164575240371559909473406614647532140793839713827021035978956753575639185960489832750036160204082658995187406316064350284361747509919488592005595328889612187125434452075202626442159825954243006508880281690855028695374045278679031335410840450707605786355302067095337250830798790451240549070073355087714924057284278404301126041458461437210998178223312986031898300364751471138627300200266839728051278486865025227559338389736645898798194633011154222222342412694532202512432449174248287901888941487506437208396254706398642882419215407975462492385617767595308645997178314576448797262186631726070785020169602371058779223339434802616436727208863157538496698070149241351080792387918581510313124810437130481066659669215996928526222717860505567867457092867040215489992588074650876096716349193364643397995524442839566052922607001260589832073516074066346571002662224592187354074126042264324753201499096517538946361608293301864318762720880779528565431492526587846472058163813643263769610985579791745566068207951176855317057157237536662143489512965717097479397496968726982324158071565581643565545490943087524988390956430971260744266555677488190480959151323987527893616704433927852255007007719297038125950460188940980814589898104852232559476599069164211421414519294586860453750151397384068143357461664232586576217035799960218722072405121978525050167466167659132382887623826429680569988709912122086562902239129453980992679294524134307458298858539157585011691798756503227825759509935458340292555345910050092854628609834766307182367655084466986245129245434062838444741950873961793064782677173995074685277377520024158173990947256730175287770027797768839829573438532468243238841322194246889346693209955135358082820953041001308075426428470843136279117857377855767334147959495240101940178148077217601745056516470509417301893986504240847622560586226394018111537537748515064475806237432253524244532157496416190991032459765496822359028163680422952719719945186371282770952240771423443222372855416670121752252065112418926945223309021483561946415600657489742847589672078621606348495275290502061877325082654843445751344171336817027384191307832555113284266808827597856789585723608157508250636287644668723532723121854380705222840411103984875557879863586799242931371317768405561544109829507706432584218246529608300341982763667161144235893765259063421154129642861718629500754515061824163514168179138044994857178884292429160279486271164194548526294358442615487461229078519584265805298063259235450332826314293356879806974039134698196852694663054014959426284254303132403785667773063120558114155722855135021519267387133204982998747340493364758653651285146745594353089459238670159493981081087458535212943500934828991135394504587658223370155308399139465918585942269526318446940831112577897193348193003127962761038263858524736726586418862647766466777953656944130615083099207868015373718836193536971535495806098745609456133566689944250232830539161430801212554772194401592729869999415051236265129072182643169207258522276821251806750860164399137311149140226380184583129411120092155230158312441613143966054973865380344227547151635234466371817725468342233461859862357507885816437612428521182879441284654150713166709467414801778698037558808171942923582964212778439735969913998118046937133401700595932988288467330997891982957395274492714668546401251230950199071434100273392603161538732033702014264896401570234246079508283072900161303460447982954243638421109287408468966436281428720942955529872841019878828310800082479538115373562449358848101205457705643955792125081484954210611126833331946685808166739006748710169821111137237745670748748827196652210938811803387809640648205829573991549629155366038865193779408338049671850377677750506067431466532157589495363648081274740549970825804318001337068884689774650291502963970875920677706831517253278093863731011144664491627307325501234303558984284649330124198107614277481939593059213739296865990710918491706198003737693773121116186223834793023153958479878331672848505298245973666563970533591617684344905357422691558885362892876730443076597918964717005529550980710564444537824332755682752995559566921254865338788969763306728850362546722801051807399486391988323334903770508208700191400109197188050767442566370646203806951276746069348682875257942328772540595986455962645899770472481312636138654604988051744938517137715168456499174223893649400831144969926095056467622817282245920869832350783806025130947174143221840761256696370861734701630055344282695663610925422072648240316888587720683321454385675693446311274515745040614981912674383226217790389778873474825656546408511343419389645293189718909791821566584342275682042084057212074409436409376577551170702096559193346658436563961434906259185396555148977785935713537410010864494067996137200245158742211017571667410682149650694081087381431919057428644622669709490513150843840453435139458796204303545868549584730023020535979489629656071657307428284659444823198060942926189254745536250664460687095699028849527097445433195776059486682786185808900552295108621641513381882244632711719190222328987150292875857283352581428033866929205389713077267255880881032871560887607018064450556038132946688417449460548785063134341882404330747413469553848150546402608281007912737427796289115623476658791918625788737579299627109832842923550958242390552730101977095522995538177567120511990248877263597652303922996884478925466067061345324605622622028250624384980315227894329779317935428234748982105905631258153103413345237567322371119753999211966014700160917545226061868878864983331962176004990670472758207347590319849862448974482225990236477833672074443056516966189937216292627115210267794153921039814512584776643542466015313046502837182699770738024995014056933021098405489672639779262018129460870436442212538806241653355188308424100017877571178199847612029874414037003986304525709359307313976694817066327624966511782432561798148252309652477460395523756082657781708588944013452560277386906602924593712696004808344574230295044089389033009243646164249124182335998258962474355339808700846163216747514185829800201612433500337212286772315530157528006772313584035131409180126891784093558779878822919327843949196141914409020907474814270555218541889064269737505872188798974108485697500995950676179480425166151981328253815614062262811335227210166090464848121002743631508552971770974872787369824177414442577743485015482105048370334767902006004168624237726434794516572694879827852544318833660382380981084195316392600924332734664009682162365652856484775464609641795012976620527229158891346538502449695865642063868790282355391221823283298170167230903128081127587244537869828222320297189330524018786797991529053431138815330636387956962456473123652208991399933108736496277603977173776713975780244931826247733401149857727596228776166038606676385184312441188303257006943308421984672465044085910007826663343824331557856487757936247400078532617038260367445953654746175927236548972896425829499575767379512962741254480918102244078559949495164589261155600817902620134485415499450887622835485592872002595479390913902669039308916968093474647753420915584928866899352515482777546426337298963093686351293513601014937767962211091939110348613551360351586914501539106092552065912936808041910978742348595727360733654446794112810497849398935786775056716557274227501907797799289606906927654108060371952624125365962853343487352385272575221547986254563796664163060100259826308078464768435983226378802957339546106427566207312489356123051852595011472306812628779852803108469578233156390882956364498099835652872172325544536878184627876536295309279720710784659867754140484687073954737713343703704199730289599190055135367513332868632747750534383501343885777209461220407312227144742981661456387984418553289354729351372073828489737342736453556798391898177295813796391970948009417320026552482799089220055951695605168721800651348726834335876017896417385573263464311177807922436437914363726739303777906544335870339737819416687595553834258628141800581261979244696107308250014120419454218861931015920297000436424017005111563505490382895718502000807133431200481615759993371992747239909307045988539403619269633923487645036730796934717784876116228402712562764719006106333888555690902351535515574473596952017786604986989818871714910196223771344918583192963397601906557718034562491459912270441277381101845807602837446977328913872339349328764561584027379440745125871751901061309737172276929678815116855801192125913909794181559066719070206643072453361391327771059416197203465938482528751467512301842454126957242181520800539905326840770396280052520012054229015314813394623062765860774374444622909966737088173284010262597137622608444100155934991574169259072828263432790329114056360214258063390702474625846812013468511916980910651393177488260683935668750660833937229537817609491311764380420487055676269921769973672075526768013550643844427207320835512859688872946835710662259920618122556796259310153509845456667248445244093714180912884979532056812927151613535680256316403250270565973964101051628112195993927787145352460247130659467346263882094957957480451431844315310993359956982211064976646023405160565143517638487188643829849829745484436153172732741732007772273410866832318591015475164561995790419236837827954366025228499394330375816474575622726103285755628481488355174743611238226401368106773863139834689505611465427781866160599234691223393041425379995582464982555107929909205641444707647854124356888316804815433086197633816494879480792371865399036871869607195561868483781020822217085684820034976765748849680963254676913392657105280414982866364069680667297354260591508481111372590342631939652028891025473428158917163390614519548446151303924965297100876199342440639001063817670035102041111477119591187950983143923430229085491409997251813309477686719517782619072155975975138117565956234863820184534781221906884192787989781632513035078203518031376803180408785752450805826446748883116240820466321938980639894315750798892916029312626070059945795346022962855860497210060836162274318511581322247038355241786271645774314863989046944059659852492090131701385281296193255905080702040811300158608634898940359439349469021964423622762638080446956314979889148492776346725159164899111940960737369210341455883379501890817688134248850512106192023684246683681044552723528958627432267555207071782549727193900981100958648381200417382666552695764178167354054980316635239929158080299300689732105195757971419227648244025738695155035916248108375856848484868236268533229223163868724157230105916996838985174425713256589363545031714241631585403796119894228442651712919057535291004459264965953095808408483243928802872256573626030561694598313395161025306556778059346343966652555176028148479185363467495486632849932202884434214369513147685331018805116520892075440207410212624863453617328077801508392300752964610857362133017995083534308411724567206726566433815589313704393364983407752988526466814996546082695173828626360660585193268713803266493546238330599674340035285002805345797053136559420607798384052807737143350411143285866719913969213365589578399263941766407227993276270486050597856011477439606127158647059167631477972937384816994322388406962857140455194563463486449603181163343190441494546020248250503051748104277640464743343333997112946980442751010839741322210695568484348827015121324004943033538594454542621658134086045399840501841347054018489741889592682252850399211141284784389526097062716072851434726656005546623364438521042835345782526612303271019461814702780252320466249879647933015881762379886225904740424007274838304114387341508366029703020442859802021818115645247329258166510532188173564538427788719942581947385061028189835300235188577224927550872145362592113170605065389981122331674894166092805448948295028233970769657704038531816938641066924759150852379358136350335199579016854563246715217018783101855100777084155870259065198612069020230404576357266484796331990963205505821201003299659900582448320526752156470273723440680424383401062829447304449627289287760754183621849508675279188746152982076106353013952278109828785564073229058928454211320311238013333462845874297165856574486331887480794157149757098410115787394430570758090021704093387821125139459927799076012053207476928782365075090748676649537096063096952941691039180919320007439159180838900311128580778719174181489948675416820270413929694147789851724968948721322294721257973672122790862283164222854859975046339500283039743249330495353448897076574527743000870235924967508767278893436065299447369905010637675525832090172432663432194495674667879200793758817180684865779579865554937077818716939442139245878772303692597125406230316051254293595492645125859198721448719829551090118914454834237813775770769948047320949135105173243184270681726100692113475352041911796989512620251981456649171119068364424203465425272787884928613034019753572578158905580204019366790505097907014523767888463580585858768768740611211568778270917884371134622223833925342389425920804793525092341189557374552385295486445078389378979018312004156517899189603277641616401003782465308143665015259043120253652964630719553102557690953581047999806564440551805424440004781927229496432260668393063707034278435677259875605811532357575976186960916951020479590057345936507220406865508515073016875620775086013000141532406747967295466272180209851546322591618384745465098391417551747207528916324104561559748376263750674063756011864654027785481703692196044541173456855072215336173282553798811308932002018169706581027113873359059653459362230046560912915297772613096239992212051092996083933294871942009177549764981957692280630904909314947446439273140999424223585023541210496823119798277895085281200268418518311079138329010383188522248643600074874909688909478824852841648208365055448116359045369986197423222253557008687345220546479899157064188032877511697101541688212627853949906515107995713496133219809305458553641485724890384007228219361427777935330555590699657839756054479944745411811059764392629499690751147764883107196285375880543157339725609995031359384795589338390931828477721661837750348731759558945804579718756626481672390290385371780931696752630519121471927787901733464284525984952079906954577499501716236717770041993558820123616183408539797692845478753774790159780035112662666084558820737857787466834867091787879081826469078940267337524458472661517086735118729716331035169789393405455472502386205677252928318329128600499587555118510445459541118125269909074090555032801084685436730854255401714964802987457500524672577821510029566306782011474516701183383475730799513109402612945083004839838652315621952636326459641153124815348368497315423146244767821465755584014438381179919678815554840057261625759948850689757453744561177903789795615471925782636652918205784138640159983207952851732975435150322518165300896471756539952043839232516396389557874369590390250032267068006505879055188632572410683744476819846475541719584074801667189377414993837147208408165328304106897403698095700733164707828763226805935585245380170301706609903368389697136112678519892627892381807932481828087172687556076694078882520898858123213245103521349602473029885315978120118982688798899613312874914656083958924750381343428034797661240804521599586596026059590710521822914211130353608401878658904393037210454705225346694369708027507733347905086140925817667388394898421639515006306476806550014090030416964662291598760363470605105306059916089915888463038871877125654347570750841452060375302794225358438204074402741163657920892046810512387189929465096239216215025144728770242161446608750024969163185062749050503405333209478987282039076772530947451295919834894539166923022707815555570006829791752371099655990556984595104901979081575028059361853420697414230056755735831181866170670450257088406390103069850781192209749923826021168380838533849267897654441116176011141855578684242660392969835889527376209845855021317513012552098516667987578160430357026171827199356307524604238319697403018683673268759222032634045270420847217359341878113058362782445704217511159630717025079567123210626246658053126629427006817106938968797036675656229677888738465886882672408512163052297674961497868906481762612647514382941463055634735090914363865703895315402980926078438850372128695436898184054742651305440682710639475315584886311812816382144685248066702683358874849021219924523837107792083386502349695295443120392395062005007397979263729640885252592508083566432427475963662474424409067633754719890112251130385689019380162969985736114531812172713014504267310227222742431771671114207548753126558864181358899621498357729427162944830969987503957718482215554106331128617229352520862311597308247835164423363914518496114349258425780167385712969155658441460763293385470950749419191652047151052838356408507048559636508632952522762172647509246391934544096126152659774228886596551114950608236661247515258790267857936291912838334892736721680776987507947311869644030980248386959934765851155205728684657854835971426219084658849804015727171010235413655528108095177790163899016351095970989755776330976785779738478994435026105740524367063248497275028700403335315271646418813401914849249181024967579244762609950307079876041871205010192239329854480462452350542810344572194900869120064624509184524451828798653671939589434202513755621561581876988352697695025930361477350175131202049531451880907558801242975273649965953150270274227527393114465503167221056501382853919307537618905713380361201740746820007876001748616559865158482972554786326476795501688319165922433001920451629692429191186431334395892125027548073548153190094114843255497713301893693726382158675908957440061723052411846911881272913814293287215806189131638645120803426315496811142764709632035638295297976585251898992575292937552554738503483510809193426984743916579744949274676366815250016599997526481865846956495704520660198409422290160363884070113208833433270499651061661795284718088919581795636479033751269679126282374475088337246697020646345220644613497617746151042531440621989702340770527806121596791003091083163528339311042766826751834613757040947038575168154200730511000969244197320215012100784124705993600927776894175417271777930860496310412908434637009987058534897570245060526635945334568272662385096522839008120584539518185260588563001496036667337236210385717533831360648047713230023511720868130892199969044328366954277376715297778182569860306046725187839128761845984817613465210085770960349404209203929496321872322440293007547136983224480074575560859344583945001246096112855688270918168398386876839509357584134514489189380745261360618990884225886229995535414142788125636698893439438232491250075140977879187889980383019265693055137997456553949683973705386375302667658616599196242951339578727217892037867560340883257061989043011833326528926289530514196042645113875013398596686500503812732979803188191833302634994069506828765781407713453495886677122397634433253811251793503208444019207209464145413809981147714672275236449802604328216419578126012096787738030898084249455504542155421143302031063726997243278657011658616969452728708430472202708605130310348665072744262685331544497049989024682377866831993089756974067084085516265637340761598904686333348514202710277810247008891117496751207780240843212631543250118782238963809888940167240146958318965441724812598350964066487234497761560671689637258519541840198293924548540974163272822765709737779567337955227851274363495292421900925783473740853514533535948823877094171303198253532120573370376051270996778175858559065893902631591655662657168712944880985107383547723655280508787463595292459160763386746284822662601221987525307604711756578883955197455771645457591315939657514448981951970789355521081106154164532658841005068329776268171336786835440166157581060250445244000539881070719462147080010375081606498779303899275450200272828666155730421113354943179881980828336538245353912600447437730109214425385253158172757965899583114568775627428607351461880002430557771377493837867868653256566453351830627768224180966124606063696294042655757942614680997786642143909153127652372266190287734617856503210054036460458455327817643375464382550551077364098568927601529834177893735378819526367037700810015889932287012425436322254509434535534529220225808325241978181334067971901173987942974025414988912342626844154450061684647727123880510841181939259223492015604607899187449185657918976015374291140223286186450752328181645365200859350750365482328456519768692729392972239600844990058848653794276740063938535334002292314143959862759868844227826191574322335003338538378008966637705408296285392298138191589648120177257690356081391270268055236927880786089348418904151269647877474942470388848116533038057690748954263505964276569017785916756125248070208724175970792789423942085890267381278810764410158738120779846924431887011343407291648087312114993878986674799479214466884727500415403744734648670865923661668927318878715649989304421337673446933692918114119615829670819036494255621504788594729877458509065380074547765776511912000539928848440775315881092873394378460857615725779860947473579085657350638214167157819323109916359934291881827787610670258349459652135621130759732065222897478611541032817767879092876758498845896944817336614530997112573649493339314658664924260014616815601246024174315012562335984012762179011325001062363160644123007768062489571120797052705348393423309998919559536529648844562910514588584658192718057964190410001723181411946060638495620493452799963473760693768850545388107172543700196837502813373789530930812485797958605437009354285612660775508464601170373080800776152683597774055482804563978399535812223766598664608306422057151398291320210262474892015111615170198771409862487091001283294955360642229729539481246875481338866499692000545075304886651719652897714057499937392448936324076590754106347372797911427905275670615266476945543434229413724695329425316182540610182176864433638081195030285297246888621208308732024306925760405410883887995713008751680748842753508509721812437725876740135924074379460987741713393738055792037756109537327600586506673109079718935170406407063280439018181252305001796140206332074282916960020385873342618527779171836062773413559517952481639350063764201401700157568057048283465330541480084143179435869005810031615859622824304794003471004795377445950006803420466395712083234755803926497741113451869239625747543598163509044677386073029205339830958869784726483775209840277289683865498805549625590971174362227030680244317708399229756672598291910903207322862873031684980052472418674088637640477111650248678523074170936190132210589552519798875851491470981692382344225420362017872468756943487754473634265139451362191153538475354433449948791793465376923641772147177935332422478716338432376568601576977581603974925750953096032900763616881428807939888785188730475651075380643114188926248618253216536711656850241096053357996385468152253826441538175451661993246715518828544831757911882640853826179199024261675849783747536843743552787121220929177916391356699957492734361475898957234815733296841883688409185919488983655895334756373392358704932194615911009899873673481653382148188592053776287625202720825959615205855105381187282885194738603236025400599515512581635963962702544442999137464230534955468197075247824872399104420177772383904120445583364319963439291384170704462639888283963819083321324389470324796544418267791587990268346600846740339607316902558264885886526133663490411365122464998092731589250925889471927465522870439448275689208830748037766931026047103612278496894555563380268660561813365472750559029574490353111067035665240788728022577655191204097992086348238673478013031558106776153673852951216936974635963315169272698584059538225037532394536870056328580181616930954953510948632478221034245299628117902168673832123699681588739189653678032105230389302896931560417270220888265660562844315772739761297013418338528009582369604721089623521691033592472026012088730584866657740142446359372304332732068737195580396164239726337879059173622516027141892523198005625099385090819767110056759365664025096632889794162472180826393011131167850916951122001166410562748260697807906163413892331457236698776050187519633514460618685358814844079186228829160457121961252616279724089368474537652807075662790626080001955305744396839302082165308233412073733208880260473565778531016937236156086667991506871423181447816653462526014502275208589586637812362447018055224035817074135279523251094888240618915822129564884296353129448670901983209439455909448305095642029026989077902283376916479372435186731326499005417265211346941018441950070799767729484559574943353358792927906347912665531337543961452515962708416926199868627603747013003321081202145213512570143332308497911173057711763654249506065687724076530875308072232399273878747453389127406042599201046136115197071792934145061430478751816391043681293785341205144026523225786377817114931377041764002312398021081435496767321181262466976192185636736866295552698464511423072259811145741129942724489300854949126272618041775812166264688280855831756441345627013438309169855081789594451156777851996268387731358438831509629247885370378731927944203790415229013343178528446135078685871057896785353983084631023538198822857880440103706755192061354323504037883611454856516589929011539493105151301866986508300501972019074591818371450110650886909159528638440058116182785454617516849134940716905534157636577144929845290324950994962496170598437484247625978555039815526073082062070779913767425848620651248335410154716530634087826267490487361450142422543800814942846993179546662682742319095044354405811520935574821469316286312071844996243665148301903573263395422354133409636737937232847401131657280592873999961664675609323183174652696113162469890417216117910378953939560404277322172607556186202832278304687330523914292099058899277999803901336776873039567555296368925202908855090747041235523502788506524980742911727167653408583217949189284154112965074001027257760524073894840124889174851324855011445949437471686607090243547608610326793873510071000363175006978486661555338504701116375297990934404086257883178205824154023536687462354716377429507285055752252125017649459532039239679196436954372012504014893093040007363718030352181641274347725822209407732200065444055245490112565213060348997042809445680860416837480521349497786386631526607782343676264793845860221995804802743246903580700309238316593347405486518557556850685197774067116528690477222850630511761840115712002639319971153342079312044053509319696821867581011891596692123470976580938964485323315248734581653309985197268816752657559723061418878927418516863887963921794648632588760458890043866937031201463103933574914614609047628374386009130986183169242437618341123920108822909869302086346418597223277753364475472262984055349125709183519730014505266865169734219081785224288627404523113602008824971603284888025062926648625978132113340278763867506866555448441613400976399180356907531087382816322767228104802117257009973447602604326113910483506288041444677723787006148685356846873627021796214553170201225758311201204838292094661605500757232729881512109974735902139632566240554143577150981296573748364106271531338623197091678755228802158831209098235759512571662430298509303010807680869382231854445530495075447699454599059006225539565949631288799519434982364836510987452300670647280660821510394742957796883177715155306479520520397031713481056355274961234342794827525319904405958817172210963604301703405870070999802953720549205369215757694523887262804071196359491184805158068993933390819625602422322061843924972134566458212414205648938563288008130061330659501544429188079024137573116794171319210857927844902970541240408443976076224077577564033237692150625563020112335286938113720530857071149939120651521540214305550482365199686890613200791008703630361070124826163926644761661090182541567996505701886172365084230522468632576902101346942470092871033664885371337655634098686544235014046837741320190868563806147009084760292739514092301186923864278129881338227346606999399261714144607246817663955124813867088158990884160197598507540595178035910617596422532738260337153338991127187997108794923008222337174059929761070562123580953071200597293386546824169274709477866036687738401593718090866744777601328907712962247141284726280750445749150677409388743286902106570228014923004788853205415077226518903346159469220379480082647491659975712715777510165806816319117373605665913576988199173602489308454978894729378580879936269811408015112953378158276912078067241670399374220218591316182337979544064637305815045990511444460471061565059796430232039121008677325812008540803943453214110460423644482366750446540815596376671633482730800617645384281930789766343734333815715338929659057689577884977470856498764025428190428279973000160914689622480153077805886916502082784738106823928376803911355393156721684776236700808042303340652350985653554555500226941870387352153658727350379036969965536570430212656682001351634351254994759104632647160493050987394029560788589499302637079361244281886189626389493420108811558760392953802933217189492109501558713195126992543387930415069807798557117568730895838233266365127719997022243729410258380371848543537581935559065189737882234416401517850777744305267539774036560378033917077532214938972410962083254577069165824718014476892192986974332738817038961927586003807174622070613701344662160773244778898263556721244951237984428541063003291773951803856671175427556587147912195819770851823893383905990253315246394257811764922902031232380635649760159364001366612993725486278625635479461356143904843077347909256422355078407646735443073828678049201933607258518709554236305704577545780134200236308952180395411367442730319583527295130063491087821353350000128918021143974328922984038939863880063752199899235283209847850794073066847631882848521339166683360662310290964434329654563962125151615459856730035659210638450407219522131678568102169211803724631975100972961617740131946285090314562774812173868420427093548264484657239968384132486691354052375637651346616214065839965782547834287294731799388630998834525513420809651379290715112667697465611267869150051000634066047155919172430455542602693233682406786719003774456056303359353960320801001222929032376767125936613981749512426212118688338105392236164110828156509709389601990709892101295391136469338577493356712164797367470901050864227536505177721226451424987295133258141917219707395119881232918941178009432988426824269302900744451592268302600292446110257055523659584050689856617794735549207632481712740066297106527543497679402992663562674028562870152813073033849134530274864974581591486430267819151463615635882980710361412955422627129780595284843247097150638303852627129453298216948185818308098219707640027022632245244609061727588621964003280081244984348761280110294375629809992255114588962227669366886774826187167257179937484651780966020018783634685820103067897342249623701691974149548827335552106198800248064692113681656094549537308687647733989224666680118771626756200996901077452541016963339745771200056828545168047671760167968147043181934514700376442802261700670118382187124963103943525939682834469271611336215376527179142747583383017317199756668545004204780440910901930505254868010073640445625426348137518825065488567646644781612447334491375676572387550366866314730098037352905435202065467285248111106454084694718439054227084749617013794694191904169338160727233832288002601283741161295999644242088099443939129108962922003532907819755818997316320934278950409761915952778088156256235729462194362556208853571146999011425720748041835006743204775541447281610252619649420416138809803100734504299297861318752989608265980903797416392706245413472800478856531502946671571048457986870853422935380711305727013164888002644427058966785600913044717789298203004259155208373786205813056975450623210336063450519172055753026635302950332149894333454787408187528305357819354998519733267960648135988928708852363012755985766692276100432791488174604705138808094685735752257161603616004918255748287967940716141624980985612911716383627294379385553959719233961232193646150041758372336700466066718489828589366758540379606887511117923906846417259755621016185195347603865150630693596974402895054273774562297262623338352030382699130063951989632101782397180133001356655551079248550864981739507478469183408973541937386093847483092540147899672576731703974573362759146429722508708519011705431998110929136859040947039661613506809269211222643864388446672093969379897701912557440715074172714476687623859352174651659242370186569521559201564606947950995789827518682708520069841563070858680810365785340679942158695170025589974119313640013157355367277167173589444377543799458273919110688695487948808742293531179266033070837615615721568101913330778116787559494601000532561752933084820878294959426392941101687333134043052915293838701775945117180886971631690941760370514460706634353200094216288512272855773699105221037272908754037821583140767658576487502817659109223390046542018410629629041196020439671146282456719614021008589565262744802538110998982097088761981896008033584860582579334861199422360005861396919462794402056477669056548313311220662882810408009261007879509568739761870484869247380595354010050632220679422069719614220013584525151535226495098218679720686081328491715442214269188079842118612233367664059925429861780531240081979579108583517735232145728584828043411361006389226111810140777197658442824837489046634683219967824035137073908882324882110296058525802634875732269406141208565248919623058588951904107611042276960245351609524680015445799143235322544957068013570872051296580294381679930652692359312235122435477740159743081164408259644588635681526530586124640179399097342147606158706501132020814834415269874014936007846691689924666214210356066461178495469244155092776243311389337040010890337397245522439276537186911642853016421151222022421578720870762130182143064763577995622872727336811151649135243400822411779377556992292580337412746453093251166458546813360876775260468659189598626676469520435414741454895531627823730438924453802591077902430336839327081265235860148233210905121873506164584577128448575498417105541847923886905539645342245821909897156732152162915118428219632812626095918936188552998612897990565585635216653798066770839651282112189833701368775291663286244191655972301743480432749518251263567033770432982019244040704790743741620846230410375321801822127288914606266224239207564620964923885547678280896080739936466833432376319160763391463855193440552060430901624547561315045900476413495807726778194986215439050541962241944290092160975284215649702267491711482575995371802319760642483646626375540121082972224526511932591579780195287958875118531468315901239878665855023770223386670377762534581207161007105285062812289545532656279568531207346155215516483171092646252725473989906369742536702154677734827816416853694077137885921650063861504629333742463990114775327957350873877615237335003997857185669164476537525573774467540030306310500248813400635883619125521576465952961218191238634294950415887252948317163228957318081809086304527651987062423787082278359245277138544821753580794519861140046175276615721797391230832121611462926677596387341314075888359038711772130889561564556662117210139835354938524762057534888550212279967257862564102707107418232223747161237683087730626954923706660295635123583367969683530763084787078932184829488263956887297397200107142822538216304358057829142612270026691069410883747531227864738653218608834230188558136021794014809975492593597476273494522305018002070924131574525569516047187566901689655079701204290610572612688497248864935791042738021928455933050705161766761489803108092422869440913461851976871123522237961647654357627811657805223424708696093200908309681253643702506257168659843713197521907770520353105256992666452842204319761688233471652994831586450779369560879855196930609255741067393451337301157318294486789833313074547283917453117595705129219567330872569992238681477408475687669267593123927630649247926520762947028917341249276930381955878080091752704316322645393781085239685905890387773673517831106996947984471073191054028712627956740970004176179967394799700059483706609349395657966104370111790832384667383904931760666397852843885786207793164237746525955383085413737459357050057093536305963901858264428336086003736693686023435099575094151147494779293951990322610048708040230069031383992743695072646032238256092437937305133184925057260765464196789568152697642003121746512142854761472120033483818312868204682631816057496898547245477214926498210192983949633126462797343783948222710896163874195491530115413931051005865842639875227904363376742404337536624247893037782593032588295560967391478715980502145281315036049008303317742442423721685901664926476979431976946024804691904726099498194754969665134012147032384825634690698684378250984583348509173345261575621490575757983976722073932925235866836835719167003533976755603270489237085440112131602448743184912885043871810523434994288624056032206862586098237909949850578463392531584011696119164535507110052947697528352461203676982331818714153133380070105799116246295884218463794047736417079604013616966301716808204362389319786138753730468566012240855170005242395011880970088355256480095288245120313447554071857110883188656641240688817304837636204770222444400650124570150726913432747442965049086314053006347659145770451666139718982556508660924021843394137686547467179740851295807705833187701803485480455160484526450582696223636631181947927736913113698265229700601064371779100655691093983415090590376109528391971682878190482187131934137545114489002539751246502939052083247755379255752421686243209856968812401347091976485774084095545192669427283466902425931940481297960445013927756647267855822945816205201468764755539222579237361301405076190064974801981766581544319899804605624973242839838503138280057294813210697292793227215869800078915122933174114365796115475504532153454618122418269035175039461266655560151800791982880745667049174525006793219603020135818297491354782966601807934012196775199053023549926255898038413843858420561627200808209923849127675234197577234173981589063883783218831151981872190108827542194125663309013217780617948445496173209609281578514639724147993565123008713718352278090976424326168179292025977626261672261344380502235541593295632709493210791831900772249332523094478804296732561309682825954399855064417532146599837765376762648325513488221777986877247801151806343109858411142786018041114645578975175096904156183110647944045377178324143832123079119740292708189435431064754354019772485092934218753492884945312982819166884701967418131487410284013142783135624415958163260222815248805163067873465933199787562233330211122327235801088683354559630710078639872317591560932001651345118979291143108946589399075468256416670110164410551049367242912571429563862702597727628303966851450931101155854901592214867134892365393277290035259558401368644640971936364196667859762167303345356718498881262612214362137005600937920847339884631478689703106834552382500752160130104932880820919151400068533212707405078778726998323665260323448052854013227801895650737006929242450465043587735054607265254219582734852407716022164307683251913639099847968480250895451620468941230246717791043146537692553296471762888972649080136559569381040318355872977124294791856954992694703105176160082454945912522806547030426220584413807678096782534161323768003988083441169345119598400478018001289727191621370021219410973591414780719925990278194442482352260990869510365345299066031875793217957133845785249490775126211817872707429862550821695479899524385744395820943922080361862191632058683431456059632576440901150479530856334868171714723880486702531715270502764219332156641887930847066451591707620555583585329420498557043150340314307684260146506846489232068452331551648857372529851832885592475526505502597703362132194539747549093965351883873053742173650211574657594701027480570532855316288314287009855356123802031284481457495415278895911892980394561875474829512148450497793102523959143375302477411707622802254634979767912517368369336961939999695833888033977663341300742992788757259549020590797702626601177217436080391934514750575902249051210071017000600241899391803464621658709730935166317625366358118979664332066341031073798201089038182393960330137482205929931536180598063742087843482832453555198307610510812170148923909906701784769974499514347593271061045425718977292222202069057546794022764001129168090616079194729647247310827639146432679714007982071781016052368180565379091048212697372820832913187504386944081716022634863203494618149776642405150676082604195703217815735352118723742263357595436501229287732134237236217397106886529891995285275089136541367788121492281007758523850931279970533385755983607746467981239460726975676265889923185536321450192447130950847124174000352209423085766964460855021133931478322960471180733757309810391891013783293451889479405983279740151538311492922682670927246191391391787738649597475055959332758997081130706859107805210168605851833067307703834298767708564372905520182770124090492548514691658327807301504001928448628827167017984057816214732305181431198766629133218053182217674627077304047496378081417502788518573588432878136445117633020367490538716721165431871802512159818953961872939140270226779578282703546418098734961050343425795106338996437417821835884832210366362960633500939387740570229206160038422645975848941326766443544953576039200377401109399628574096987822965032060184006828188150444190194998878967052529957444708099522272170812272191622402612348567779119090869082087760873168538399188156254550638840187712513711020785953473731794496156800632510228909309842244491281252647551875290234443140473466684982050512555014689742331071324860950760688523559241010234383615588264797978504491433558069060734854133160933849276034618809132921643766277195781775230383252788227412621759578779102093403602272288333730018307897887061632352230281225154766491598808650927640939480602092513908607134864098467800245627848984798917009014260744630175560055893586159326421907347890337595959990187313915155109408925413062154293666185843765500902306090825986862792507954467861713882190020041070535236656821801959436184991359537877225876894344536939676748616935568767895918191356512913919212114263924376072167966151719746542015009800447183243418875729606219431316353433293198320053346122607129107213211376641497579563105010803859236777364352164145867416252119909316185327208866912753489158658643122333714744174471492523344235413457916428956995360801535624699283918834972555151157197351168148577633702316213317239686303358893927200008054924830700500652084324365026493991156116364305609484322519603345824405434010603743315680792424369729096877595481576878932282447995575422017621213321651942178465806731900702960950136569361213327981325972520066192388263102004775986502190846887150414410356737966166898536666203790880427671263185653413015820176820625492450312767736343612209660066505768271415484678176731849795099576616280753904781961027590748546364321887906926972353296694912648317822350616135575105052370061162672855809092409425282911423292679470611872782462920775658941387116153011111543400178518080917867394273157377880434393271364300768001514391360790946383631352898370977395938868751021832189284089583435482298575744028452392204366374038291413765084328061031905610116827413913571034108543212026986686928948466224739175535586013888379961796081205364356939444385731580929420700702508448552370224900639771030326172581186275065497892571656756711860591609526532895528365179300416656503264047232068013860189303357514992938301259298327158700460890465702721082635240872164922606841651165953168130698689172639005677820943141734880889644546232033348229746610017178479516044196617365690117931461476946755340971259130024746047045568738111145085976750515195084830996344937859504510254531100813569371260888300773961140438492156405121099951946153362611408575661578690454501194354877453424381855700441655811512425340663592541862390893072089279661379343419631791179351336819779337410301410467998153083739866034343177077453366912944556449738705507233969407001905277810035614766900475029169013844348300102436200762055644889962855158966538838407295745560564509713988646922370066739011319390413788856883803513439510621357048926909841823627840582084556474470553315007835223420021738440752695930087758289181465431014904597821393689524058681925452724637159346656014586526866065753101972569429833029407167465778871731465300272134265326516169187630200278169502423541711150655356569148140656735259738618608556858422830147604338296395126917616284457865955448092356608096805278064005916857062421907732854338138048476523274513603163325951852475873588344230091242807767195620615889607020271986247162051342612007827564508832832326296237987025610270890276068249009959269858461185230889849076130880335786765476803838709711323951440596530278322700901085870980336766944651978206269530128515893759395163127555033556199930386586835630519818934158972527825894826714108042339002590008094418522766160878693537705376128983178297390901714463409033464167971248237469187040224752170066100450939366548636697653440854944371604992573207970939750780201449595647567628403883951444446353916989018446517154174763944657096469108879241648704516731790216813805796889465838704748613357044805771054828602243491329795661169541807512610061738623304753914249862806960417663634421621781314142505619856549378138863894162197097148723308375244910853990921888482172448116828151176139843167309587568314065208443045032628462102700890841096447408698167872824025995506251390407902743760939413154302093006716938266223520386996699376164545201827305122086596327780291522886658227362728768328103416863430997760123337276156680660341337159299511377936079376596995754204084900108816831035466084457332447866892294940057749694940484027543147583423556705950502340528299022037272346491115081987196635156832903763191040140530698773440192763922090786108501914352184060886198187270630352132535993509356221905433601345853906652824204535816226108413704659186902011144514023733958991932200072206324039594226202254897058193942513795505778160865133320041151264783320959530223375838889340172620549108863784023771211599103495647009249773007977271023133956860322419180544288139160209991136759495989010604991813517254974704773708712734367642516358274465086093697787735005733835775250761327551485715170282900211173087511952096323887439774700002682105429000603571017857454717894493230587313095305885187341952791800014854438518782564638023746016324417079042102611943387920884144121845861079626700928097487265060028756862135167940097541389052367730803897806766020508112697018419863352769804913068018997957584038942456795812490480900603906784545614968221338624218242396503018279346025698523664865199041792341836231136665968177428892348399497341815976343937718335004992488673931916094740728830934914463638878445584059006635734548165156807427349092938215850580750587266009296331420140436631387065378577945335917184165971902459395044228396731143264608462138810394606480506134499371860734821597683445580580029229338639437555351737053245702519900933621584028152989742786086649501851210414020228996480071773818688380442371042516359070913270432328696069915582165253913365912411080069438652745447944370957160022259479139954191005827953808294600595128741534850055030254975061605628806772128986650754085969582307241888521809903410717754796924211977813249077255618512185515664996590255597644081104938921863721579761929493981502017580229898949856893510759336555037383269569949264954569627037747862767877237310191781094687612042503221465478070933360187063755475690110640737713594871851560548748990577971544864566785700363446015107543412194493520046107543292020956738198031549914702241112747577082971274466066404191648986540789790682184209324951999000651958467242099507757838874615823445526323091187746022337808195185927665149778367871386604341603077751215454724237939431768666538905716834673074130198321355619954604953194970820363802390216346111961556548715948918198821601742892118654705645156191679456518312885949933469689437660295973344312624611955725268382688255054178437030083400106701021775544562413962395217811884004756730948708190533340458180484367005393267212660069655596006938667588234290694601708060585762905705030449552701353428422953761203542793417496051696620066682398924132408642588070392536406313585324202097184825619262071550289409094042067167649613930712696647183648431275806254952311007508241487032039097108044257080323949742528172406508234511845755348963967720013250684480356346557779601705171908042415183555778108668631916481082873843602435005169612673879703442848669144886319684170981417668242018781139848105290886352347332006796341460204866423619633075523898915422506344228786728624416123659602328225244806039278547859437487461963431442872314728580925142089473874814774929209176457602295489568750835697275339977403619406055473114871820636837320563603845673822292295137033879008885293148778739435431107199704058175428515334764719001340643425101726213554406996361763436467311689241024411438841162075609876773190877433272468710081974446376037499643460634974403364117183536883242628402421950293632722402144686860688031125458512113683642092468727761050465522237812451722444650451083921135438869190901044925681194959632841355107413084775223600798337352581105612496323272605737128228481509045230353404078329936764136718165870412965033944072726359547397622468636086079891968112494775591582766550665041652477054765471513586207554328313235179468434892453124302511549875444883196026743659995382829465514998388781047968033335409145978005167495246644393381146229577226559094298282258351961792979291015347558471843225848363216496828221729888504860125374925417610577680016013477181757281913207415306061024425553377793329213537620088812642653653893252180068004559541751413848646648404202246979339518992151452823606276950590785693370257754148006182908809609100763819774759051097084118714168591978767208389209913707687155807793049102125500907050698759739730146258768475738632475399354930883029513602530590524996869109544618200137409141747581553630504913723891023221339264982636012155342794609848874931357089681691922491915233835831460808138371587260675807119725053778359084027501182840833639780609456890077012825935472036331599306481761142351914386764243259251537242576201626852405465679776667739017476467950789779856600387342035580138971057281427309372200798251767777624587775385560768696988552050691335583109942849533220579441681678298743060191696911325001641795389127492056726214988671776397589278018926733059857056072418508108187260920425729765777020245629149534752993383574505663658717932452680399067638490578882526124720260709688392339515130689754871003560600629096494514650311638120968842553111446806017873088472225163429773527634539008742441504595931570115074220974859565259534963048464586493721322580680753260485461817634408549559539481614599615902103903794462997356105706601932686308369902296506586755240229581680895231196538769972317146659419205165430797443480086374248815429141652305270982932666609295112876246761307356824422655231779072365328726412406974234368421168088689762078292932955957692617296266439538416501657484157733194590201678181875861388382836701285231296519968706071832007977696552820472006825631097580020584287708054642762854699612917104683133684972623728395048038614664914633949780191255729527403473666010792110206455819951115099851606267460506548518977181453395899571883362640882852648344039827600806084315319118421018692187489623049985223197899611154135832417936767625467428886767362792195475302869978328464793088114983950613380536555923682320528242451937597706974828132443248918070394637076870716677311509109542138403542675695434066552953248251175517810364895979420838425035374910513338291585130407193004569529391252895430827463889733030392851335224817224829290269401961175728082062481528327867257864848539752143441932580352902945898671625868504895208353247872394403952721661009363079714553454096672271528511873214517095953241701270998069792551157192904631720820916316505226581088600189573282457312679235440177489510444972561787018641511598681317936824307040251099633903743057781522358942740991550892619820859204183426626730253155473049043968015733792819615271026812751818731997677957516345209474032033361138425099398802610178870958811347061714692913064703893142585371251581323794182485663948054256967401986399155789373441879509030900014955442069315583180581681867867581132019751348429208441282736118228897513464307655233343490538426438814163254412004817107119782347324471927195657246492444785579791935806941885589149155196193256189772563742849534480245006907082688713193519935555467821632549765612658545768331990383723847267771277985781575742022956402026110386706788114028433566345445234829270509328980964805528631389124407823288051881608484759971890188473316277973913308941636664932113223247908458094305089159602659673634562938152918479404423232052485113593453579358759382569146828569320999740116219640043100637883291006310777100094104545693785274802217964654479152826972844158620311893170888275119598694665150655422275677378474208039336263421670771234304958494062492745528206143372518777268932715057188746999753545726988615268905114398656267230949024017601301140894833542410468954106043847557278427576752821438795822932094699599073977174929013893164826510598740012303504983235141078821545855114094512915633493432539546571228334469366613610114988028905423119891242268621957276851375966458711162651258792142288334535501164412569388354033752038894251635892265665095379024920596655554136823949332230667298179051869721304896296953107541503111951124393958871221050217037296750111975372556570188578596523769822565978788042105405214992293329078209115205567574090457666025424287441642388360824304078060898840121611838929592780198345234056460945211016942981625376666342998357217512896027680188077964714998531172652151119603211427878371784304944066420714729270363918744919915653084753281593787926638966223066268681541246423403184906813432096598500027596837035887313579325640110831972149645273910922388684935715136166169894644153554589892870237588691881102459875268560270450379956036595317961278553812937812895217879701776566189526469010459355964158401696477083864131676464860835102483590645576823732390249723188812329118971574245014116080157313802655651224388575013864926911952365005270497336092135975945436934563836388496888881219182339436503955804097579269675486569668289504326780459445343367099958788868072636274700962140770709727465422012621924784756694226323554397602877236967924465655465533221812119169156813570109082272832980233111788955906364454391084988270268378356416508631435472373445001716091178765370043199832671974597497531675963583507088685530755020967165381600339771795655832303454519414367095337902344952670306272539690907256259895566564193470653806821387649124457682211975418192507025781340475829177982816975800595003833968993416377846638204794630568279679782528037038654747223839470697722750264056955186182918215536854439028918696030225397179324033347564563528782524032179693874698241146056656021426141660161949395532452432298440944752350645636553506084665309801315517275369476378022628908153874478576186173681993661442316094069013983687262496210597512426152268454684658210968192073972239870482171352924438103063330373680632753621510761033312103937519097681727328575427642123182188862677995999256539822027544452646861640365527778490135334593109202729716274794385377213633991706196980349198300665166873843461046165382345806328869081415075197464778872909810002183953174579332537290461979966352343219291929758188119944314078941979037506287744716133276573259480901658119778869458953278120504948544841440615518022861427026122538957665027532363129196060010932396982768280572148156938357767949689349246912421385652227117087728342775154821417983267009794070431252650823435006746514572211363002814538340520677275493696234670629196238282477488066354128140406213954154966114574498451411687746535273109854365740734807714362500730837819610171943649795585580162202613741138146067342236733571756638443204910823195784450166372349644408413591244307385749225293067937431720595880752036054138657203581735361091434603204047010337186729833265152047862920770960873610613686706009300351956695585684953813730965776168150181072747064115603134248042692685892765559039949110334954235840910847014669446056239018535707672302201276764917251910768582376622165672188559366310252416468021566943462688542641803350430132544133399289326597980030085546108282656958119831658007280829783535837250247051968099474022360079136440230743424076422612300540594940476573094354884515480945955730335665876344472195216318139946499752600847658645530377219045904707620235443461728242190351659747303937133754451180990622424608251128598850110752322232281213947107960917343961708909636930875677542486962217918373239879851223206401773980876868977443646080981958341566192469458034568504787896726162587284360719455872374003690325822363836357591343489805385661077566626815797140865556472497315355978181297868230803165590366024824270699295565609104396910939635862721291577521846150395559132277098963169652662290315318926634974989401434461311124970345303400169069546256828721729751120415578945714270575471574319880086490461654263542607716335347299739279951012013382237857749684474598955403709830248716547031761883690497936612537114179767715663204440347449211268165148459592637347104205846326429113933923192802175108561026548627114300250282566721944581797635983422124927882880762732466453470772493837215329744139644457426412820926627368928297646642602952420078621836563145067374314614226354183743694168958246929220296682996313634778667345188411513970813798503118097657092733270315895384211211496354559157225834529260756251295616377383418386350508938189518818837540264602606166958954368531630566432485104958092967848577376866506693021761791075859491535046840391629268993682410774121288335612488127878537024129836531203638417788174089724807632878753472486589036053912478187694045323930139554382924987081432364578137082834336382153139406443322789191108179918623331154628883905704304845449639291232035662947556384087792886273390802666420809608355269755178587046262381311109576820412866044732262722428232525809970462546075050732992428726664268126941759986197520804014895813405919363581641986403145624859316206209992133936758186089705712580389551872812412371123826627758016707066644709001932522892868906260008709504137137483373528335867069748771563781753061436280877247543844128230328494946765044246978699186580374527198238210944652696491823152698868231501566088679678620128117636276437574041915529500242011617390428834679949546939506330959692169967381057101774220272198895123965816279041918498558186969753764990411378697821375939900115132269579350925524718307862213096158035292029729740163372116859021743761672024624055272371541037320971997686716559773774449526086449985566131584994360070018515039125661617277685905970721640877926504874365608628049290732939504551044625147633526384303968264315637607711399992997349087023864728363102401415394177370485387699751331873134459904717560353785299007600705204859657040375997601852542478796568595868981654061743234282968302956503303981826732018901367023091381248613617782934077933946817094403983218664485829835934678318740377235199988922506009772109719927430742360196704320840162688225359450174921161794368648283644010294188140515024659337432163894172120194621421537418474236035287854236356928731628963207223512338400647623886323629544172116845361381724148055803772069199590255848516954400077074493054866380042662779134552686383617279593400112676831745716302312670132087247406294965648887395277917482988007911003470180528141659602827496302526894861136414172692275268630132918701352710206511241851385124257772389149956795639845538993027621899356145754011924920623584875548079362398374469699249908516537066543700968029281581706067527972907605788408481250009209803864012728225225066022574135291670639946290788946807588439488308584955865391718600603270422311820126251476431272991621188412307177606630189831688297901536656699435103332040673316067680838943640938675576160874189835414110366685110405906459009374919768377899916599134316232428232200208228954477868277795121655280480362116857632357961554537816773627769537712586129229764723224875348433467172948540311632899938920679325489644470117580075301790549076001536794933950319734369268986751725720066454996222868156941516110832042748311827687227448186888851280724499134432504689082494474323267748218447970547557468271378747121645399606046010277134961890192401295450044066163408474233227205313961896730004424521911025353963590867899214327441548109904161892305767598964816069387659121535538797813228847372629711730931062308344461134546405453045730453042887624745068882002900356482861053481598098518917918276223575424876611151975393083584153488417896276726263885447691071042085881175777816445356527624345613615604034638401516091648115507328358927099084009403025395218497867257024031594370531262432368647928447873211470525959845728453728628887390406774074684917239288825840359171679770034351428600759013907499762571353987749825499788569653514126756212544041094725935223262103198016207454325958221739672005018904558277157051294902628191791670143171527169470812300735672825972525369043341538548976273798712790808971558633174009380899216985819465517285081563849658328096782533819077932994615860352577663730553436342795781720373488491039226574285847225944009157464191877033911650775206715023714651563528419851198262451802614004441123409905875397503698435934399674063614774862878441142205772258256230796205626546632974753536381400400045493786625550701112187862385921601345386926770914149864616587769603353890032652177339986416460231407269530835804685248018076421176916158287647224085936520774653320252215515286128864596949584493293167932467463386240520375493984366438319927526917664436260533550045610524592513208675763472200871000215818544588703470130020452042444006029116970239789992352562248286215650038680272598145934477737970310161147116265085083231401274913367310684222167577618552156152201619802812576272112893909938285176007887209363945773912040971535859006154522316333940112914450939549540912444039752566319818991133866501903569143236791200463446914999345329862947056852053442574828948948768589524110983185233538606604028340190094164261122812774117692919743732564983224347230617444287631790776873642582479226426852145917938138542886478162590400552401078802265913156116262891355806274452677560362588138348956554074240544340279001047104462748199220059786297447523991864227522194895025567632365655420501386469009649849731411318347158165584844732911656833556272726235576539046064086322101385983582039056718697888852851734667400833664870216008045915823267448047257087507177232216606861711417469964853085179500572587455741825211732058274300836550250207926522188954298269680605689813631031933954270692596337924208539148448156378017868623868203684731481558803116826806698692087561252622114433852364060772236778583915167125404679031186184514819229306933873517627292527697929596623124524847504501344075389409515756748451579880989814529987541040518046544208857478742091585183811843319224107063415596864362525531818390998937948934924296588171338088376918068249543861710193814835948319946463036317584762840693838127782334716335407508635365517841021879147880581719348887390933562149208700014106951660104354095997460078001892600971636134999307663769807341686102409151813693858456448342501253550040123139935718547325584685668122239105503381980820711466199804005897936414457859197174200241228932754518814873838046057048700989068479261423353659920093447204002825715064877571203800894973356986677016649625948865659910076502318469663924978892391802615431771161697856084035636222421655739003543907018351678640096487283131513636665066290204126228786396542222949028296763592326028706604211605966904905300809988239699173139629877442887825683580859754021035951925005585694990478719606948587037071308540031157238302595028571262418222416664394837274870030272479328792037458787594569984220254898463996702455302435849996808577015041967100045405419441487661452397805032695552036007907801503753691487392956686578504073819795008004419590095909720081551320344318529275186122999989493499787124684756824257710376927133991088972127706480345178755660993578340652284637870321400450572791730608732793188137212407213095632299499112667670842886375019844597313300438246241743723153443039365281950270873758927792287050147001837793399380185916965426131781493019042493120026174745557184145176336518620924675274320757522475403567596038885415841248802487527906414049327474149559682223186301237820340616049141060500719384873929789102443169747048004582280696786145416038970650254574003174666087162416400968249481600162068095574959539473522303446153229976687079053105314840090969890083375858300633431392578055363257038058624740336813818503719859490903252125052419804352720625879154664107471244236723277007029375720246741337913176637647663631789641331324864787098867153778747519151522449084981214608797721467552722018248423745305488819536990430720817106487495123215303203096797784155369171125925839550664347941647701629862477313501371293223361271049619101309555424108230174181407797649694514121135156273795193131677193441503031898501688264688275623370478412860396981108245593253800273519414555458705769007999491459249320336293744368920573260910152037661210752884494959416077201895416741167672560907642473250499696493572955294941331447083600661600757199318780546931893197451132463491909396977204575573836021839215444770883080948624028735109762694717375933964543022106261148706094484063938975938687622153010858138142619897952018063460964146659694797538811923635760893072845127707906229572710646963362724681362506554580320534190651953191169788037723452049912339830739816835690947854645906184473055326248102133525645018200716829329768841815227922235477227836224214366895143557727837200992731700269547693531037557748533237390756447433360827957442229797824157593646559113564425148771738488442586748077756483981931700810286579435457397326384677221980489755425028749967679968554342568147745563363769476503130592005813349219081141683460117053379095309361899421385815850271053165521400086854666005411092145139443949340393800057446119429071597252605603178476405677130653023264525130056834715299316211113434657316097788681639419121213858978766382106500275855177798833043289138926784385879930867930551944900996581195869140399085066939494547632855866786784788858297021862643689377002094082547192062692069666714125191655763155044964273145863664062212434179992775820604242439401339017847007716419496158773465632194953979096927871950051824849157570397832608531262134908693600118017344426977846354690322987023054310214109125358275196721592309927687122479747140491328772250209494147010017307603961998071081902247352940104366511266516991632326073813531641926960955517225515241163917178323824294903376489252375642690256960469164685746839156255049806151911624273082632178775531603023507866593809059121120812530111523750293198474468586774056629326528844412479852815591514839887544113695003427367470495595426429063112712734996965708718761658269500225789365444620217795121225682458588037997739135584504404259766910297483467103806163342312660621969933546884448582927656503077798584324610418074184046960263881703468917787753738562266901409691503931744297601643667157738329850707778480477201709141831650517575472986005490990793901775398985261934131404925164015803463922532374303676198552382865355582879736524684019928640828774899460227369395077351426852539870617505261930543735973291614613595766705257370319018488960551082880403713456081706105470909858390807322275547255938311909773353015279532219366163634725155963952041559784514591101685316511212755659316441319265800384547947994346408486828692688050271073011939297695091383183513932881094690837074561879065259451999343331953008907301634813191752311678340483752680578907980993473187406696672211208729076575169730833027681894604874126657952376289387898404575718769832636355909268176202900733107478918902632674725023583842422776320123490534350091765731331430654987768445696133196411063741751430027619862374674486643968970998371197343408507535575019295147316531500790023707433283642480974550464211525041003964112203548973392444918401324676896302888904760656394791993143246293265678657073728672299354573839935203724234267785010871029612761482594303963290518973562409513652751166100353751210159095124126869948774761614415454942613357628406518603599061295929001621493659848767028250249240390137952449242327422887547147229443960934424938954313617832803943902742582760626655709407582710403029799169719017116816683483513347810253102540845466337091548232634411846213964348368106113235302024275117134410957045830050057102124046551910041779851881970322432760246695792508260821845527993190918111788150379239247197262842808581356022184533660399425314439644505311805465775198676842095302204102755885352150644462680007033733400929657647888988048356662915986979929988903608327805116950221117081009199990971735161993872696312070392028876206730230477268498258577908969772190111426992820676956854723597212178189800137304312917475767641883344035559380824522972438767355812989381033417862896311310079838403621333910615035272420024523230456348120651212476782534255708474078309791792068113746911547481959978711646520756327172654021056868661189568170236473795088818161070796888353384973295595269204608800222345287954479873051915354231568742757141699352054616724813894306131920736778182766213638445715114016541713820960469938836774767241147735419438098726030605578425040526533077444709806677499042789687523886601760114838250040400939770725099822562780382907124382354581603734052027242715820993766087815547325899781280759726651179708689893030088915633978070633838710898157282660040865081460466098196730028145437586275435111241604907174303269481037382171391156580613062491013837331973498679422284750954997885982138661340037343284314574860078952848609930750923799995015887189570264028785385562150018299444111756673192588210452303776618189264553244845496219026381834422525836214419602394805613319171570928345430451567624544239813077448521436496626106855005867485355220934350772713199618060759223606068706359112940179278235409490184047982081110834814734707698052856080981985345010353543495014365567074967474529291784716104983067391951341549573227262263141229850996845377316871843655874073710981785883949771020071410566822454654281789905661159417185328688917775015106625956805181405781216062829022864298968923979917479727242406212596583351188998810288432248324455551000578770265797101002001950504205542535242856320336298042921274327628218026645762174227890635975843159240331499385682623091916700344773774555803672224981157209852852688793726340809588705856692445000987793356803923980807632770939051555470828280161584172162953157768329336398478128446758534365935867849910230622818462375486310619387165620889552336036312174640620415389019804796571450170715600983338000447469751108197720699167062076705461390471644246274949040746534803243007059195749597190538496301506746653058763902865656924600043835089882208562854023962596393884018345011016378550241512043911919236333198048677333782905871250895917794360768607774660022458408596140643144896254051342075275169099097313663702809062295465760896831458173165650833057368944164200662586918554042924427683605481009731286999282672320717798820654104257713839657465873038113884378307548017712689954511756446131838798270122582732573481036147126742911923206779105810971489142569279963604097780954515885719502038047775229175245059762133629582087012762287081473179850091651789712808891458481708490593353758095264715454818096966881580840102966372105294404755789933933722265166335626784279672906761681649099887676696029022038055974473466583139673596137794968456232738733013321792098516380437970598737727592772554411961896152272030590365855989117550249696853722004511779085169647788973946820761216840509763742069074387420842622284526857529199164685872572911681578040336538046987520986016599844611913676040933684922015159241552311174194640283423251619805429859861673232473909226640979675005460470966710166731143589592281327109202861915706474091356896035738150743874183415459984404065569745628253695358766627283645553261267251535276864240059468489617192215022546888768620776206254477736590218632340590912632488845055592489648584536228139003074244449132985887626868020966043147394880967351533083780555408586042110420404851810253362662904104108214736533876969893301592634658090315630000341272007552707980482950541716734356860683323304036193437537109102329339301269338993812806037754958259700887963026565278820395657583067937774166546930678593696024226773414114670599225707269678280875293971194315175687935826389778203276563033515779532265049405285034984034971437380295031201891814023355141018487723616251751794230255613575656640189648372149904686099431912084118949937348877454339697169304389952038924209391950723511342598434069024522304487149976060216985675419968574770757157601966643824442166133445441263853880405658097776740580681273931853724507856749078600043217071498389723870986433468439129569216289772358992538194866587844274890332782231472026313131363321025718156963643737148787441900083945606808596237420659340638932775521907091994191177309476519341224292248886644477108340699395059973354998854426848158560057004404598880538778322138991445928290213256473322596178409063670042360228491015595112037617105443357970695185762590271894257716505842265855798426515350000795508110700419525018527475915562030482827476822610670932453380070352359414144248925023856206768088596144716518224559289504748915616288448272831337190382867880628316489834904493003671937392024691785858567464322458455786370711599541284218614731205029837524443845725622059150713152600768102248082529239530046839161478442231149106353141130016561239985085514095454801214247194543908882433436644024761679563015695175206485207714771314206044380972317702810461113438255531753833105236540190523970034698075752707383795897322327685297272840065454863340783531461823521915362985566451175490699086252683125806556437776227403093636137114027417612935780496386955096405700809827822387968034625208546524270243331406421961918863286114601454161016824372489701502618363899572976283178701977923695761485561962522182132622699911976089629163889434020464297294808023268270490242493195734274708130042463065768509618488945620645366739215263787673211182627479245064379235993681396160729177479919749482560320196031907744110719925496839494271673653951207614492302246315296374273992091045227269174477173832617470241292168884448480219191358967331182663796375542982435614577510009701916592807380341314689262253784121612995324954955133398982906506579569950123047885861609790024404999544820626414198796473288422326573663477461062395343550683658576527665321262331741546114351348552132390868137133811288333461630897258797774947358068128918952517872991458974069221261781083227586292405198760846175069468346264340622714459953950691357010570757113276185848720598950781668012200985399365279017899930026442425462291408698858066841456124204055400118948345144216267622714681578984674560905854889517380088213175939419820920092301266508270873045921968605085947240527040788757144698023216833000319306204798732601642960510299481293960722284163107580141453559191101637652135837219645205571107034090095450600245061525830178960557490202203832715282943887596257295953896922691509780522224055395510949203818559323702865992289004128796498318942473509828434949856310004598215057399547122734771866791159103535939975993528463652395142001548164347650780402254098098341617577505243576213226294465386387881592404003241238949334295435747904811651540909310323967448179908652097101857920759370181537549708960312840273139764816916977880210612401018183187244383921979321331829398638752456925644088527535521415288377128972345248816346232346302060321471075058114449549364073789090996106398378321430581779277282998661303876028163759110453217223106637161258001793934395791127514070579741133160942340848263102083756284058366388631861619409930117310228779755266420953917273539464981741399051210519968081400797302845199838168522679481312221457928329691455552247314839191446537744691523527880611498825197352730380678671520870193029975562093894453802425222595558255038603667431357525058708195184618987183029455821991919258786179300812583273749578924102239157421339848896476938094631910355213244544047777314121682960147712983130858333701750035045543238376723463107187970845088868959167357968184632409283105049872284492591450206955687145202258747682897415998384170572175083329300352411646449466650433114748132816338629377742254651714624838083882885587221696943188444252982663270586052029505790316720850056545315094717983704069139403841885942539787725408663428064406338709846547501723580822748769244280162983005256749770691820993184185724463076212275560212843721483337461040111323227842778200405976099482795217428038409333796608023451089204218441480023171384628455058250347946675774393659327369656983395467857887777833610634728109707178119680089871791312461727035989728170107069657477770615773974898480407239711708092677680128601591091276503837265405098259433025289579813554590633986536200058961575825143548363337622500471673173490718360024714801958370766292656215936998209198578584563633033797851868586498839750537379818806487905384530713003542140317851070344943501608477727234317024246628458688463941690433200030432295732040288251043548105146615396607469914118598714476691111175403867444472077043641290759948755640827153341296501677250889022013079730647208237897750270343720012333441078796728680139716391368468035612153877468829643090704371468179165469687817203343061181503494225931493872851648791879639659079828517570064127719292209723425913819309335328886055231975603912615145387677974924767889487969186543723995466278495464069655342357392839402656757646921214628480241162178169087174195893031417774370536412187443534781246853156322086518494550947120302547209812321045330387214506602422975138216071498882328226003950439544616405036550224920905887436714393272281175985114753266467391869908035849002866079927560072242497155842014154375405397299250722141069425918298896400935313024518927200350144252831264737706163933629083931167592512237850803815663341882086377633855856739708984968296012097449797916871930418489925027487971060244623811996341537228315510817700330578180750414979810950979643945235478658734453262539354474034357417315042514021298672477507402985652614653926313460149560043398905664756569111394587275186447690216539059451627428698457521142758615781835774546560934916500637383434995193719847010967057206535999863708653208248177987538545800611442834922616002488745110119686254386203113314787249458577030939022455127896716940734108220340801605834647172854733179331208667856143792691724919586581611597619839077526478488379871715197363552157199803816577173572676789186989664413591115353852911265463725373363102703164778063661143267208623264538734938322902870876552838819272815118636258832692611211866595050576643336554755188423327416261024678335412983806225126259038118599038962012879456362788448140749069613562375831141306385125218827100640413849187957587306588412632089753003690402917992959191708831532599748029295599995620388071921520394548389043106388302413910460324114986068374551012192955020412692369102332897225275792674854093998781859638607979490877418430931206044050365829361018014383054636949217951619903750953753152204021827802483477848525571279054976782260537945918453583726433900418252758434369419558677822054695038235847459369157074606396977216784629262680390448428390017524425172622596384557596929386978073838012414869395005033213364682713543781511847018250620951333144709709071747482832146126958179822858198978548982196553255455336259760991448301604832049875707542803285809333803006067736398789649656050077214907653350668032322991028176815291989081356146858471633137686761484932422390652725468527282860812107848245239730889125718830472275703033086399944299418124016072653115863569512168260172331338882185801114924649403776034482386688709770244146923538330818271220212802731231669634726496859250848540446348740456530667538555537232047685477867451268713362380828264974071579696386486066696152645661191675152649075828108991202402431001544798732522320909121947835391224570797684074500223907520114239747156991172666315379262905721023563800209021695726734798407226035884776617849043836245818158440319488367352042667041843022809435721602153823332215643533681171977126628068603339810834814393987994341112783122694401113180781297125260090236803803956516221877837555383039993165777643916893635968217112949462370143487798240218407687387439988703673412283168347996905617925050261993824685910578058719784579397344882401582762992513778979749831710645497535892709399932975127069708960758741556439512023303826008199710415125008669852792480436051691911089873470112674464779467137331981388031465479575900723579605045909970739878359765241676451644874899250482429487384164661583514541251304255972756508562585765107163399187104873214727854309902799502709014998862534324622286892828967789674045285953811789109203019120988974492373633249117222560766077763707092480059304274775502497369740157525496482427793362366461419662548218255047235989063973202634316858430899522499892174460570949996908816159006345717056910690266779191308927255191135011049769224763066955232762932323697397600850665197883998825002802854416945447509227582748479330956887430258236481873116514383208063471474243549625656014845503230839233913347308778606818034963373134081295589164795997363695190105605351864134121645889960440456659684444467827567523307210761702702491108982375287173609884525730676844973402915397895089427224189698842334765486589669122547236150038505290502029230994510212796550399133512937443437844870718592052530298264399536301216132200277713679705475689284318731528134025090949152876449669433097057585183537708988110474739940146999424444215962650547934197893195663366313374812184754871933014719203656809372396368353013190861325601856328010955084350199885494393047043662342257153002561483272373244751835566732553040398180647696496689348152385562052013396471489582270594193914585583290760922152339283923444736232437938392193978705701628943780051869891810887327835439774694278320191270544999700376998145683391571748309768059775091153320317176362509183987224696731704908922539091220114400241785554299707693302446847295060783250844944725632312087445946427809512794899724647517207783375894546894629482593242356321186032126096467590540727080223147592354377327921049209076948390852927996210217141942712254640016416078954452707227721998092402985378739829409416424996922628708426517514105048472617103896778104965609414388406517387319080262537057235293918815298879442907453493187799905968453931293417237779877265054241667827947659745731431077259897574074683419839906239089114816444676466589946763697232902150944790254694771887278764311488360296896856410767157646254746059968498892630312501855167465101552764778187429629636106006242751811668708545273484194249728023636565553140169795692580413938872345135182526130891337254630511959062088056556474884907203531567928346174636193408119730942148707666518450382628306067001647205515026024356652644385310149811067639917062706766368759246490089494067670893205345892388560015209453774153931938760528624826858080647014250911100100549963232350656972602687902962338631226581393898782797181914834397844688975080565117964562268326980726700724835266907292604783610040943966286211251018719786487596475553908745463561673330120944880139738288831891440560733470073706315386514647214844087408874750397560288541769805996636103063009044186448405433622672985284297737511024402127051200292006544366594929356440932221197648864294451542819805960987511907350693400348320650043384176184578743869837218208948445780174046120290287084620108714707773784088933158792971641633563800963994114660015853076711752958189071037753571308133477619534920401204293596228433099355977615112672028117830097353863195430442176553056919622739886569224390206214884089556989008015612342606459495628652713740834405523223586988164396649498287011766597689886045261898534715913530692178377026991391105722948815892074140324888102054330365940300927414131541773604433957664741169207966541603393272963795340276480264302390138683301040811226354600078448832700975508614932550004758048798420002145902580831654782698505153167795036136142456126151844283742572359897078691132855406040463285939728332636662392766687653600362001377611295995105250995479914487592158537464498135387615802329166676023218559338357806794976299046211996840365551761111604532417214285626858977356576383916106020291981273592661720586508379756491988254432785186977802982972148665467716589936991346176837297869884146099371797315247959846947251237404473240219043030247759410209020342514052113837301434451925724880268075875956373113933339841204082721141052843482746281229770461767941462766157889162187427610146612204263929318820177784437933221150525332508451875323937390424929413336384415890105310801548268907129693966211861247198236753034672836004022153660037671303690887589903873447705382924582290512008617198071252349402356220653883333400352031574791771609073159580728095597631111523183603328705454867223128532122167063684597211620039652738131927998660809121798905767755689894813409192596895112480489949754176374690577512361450345480267442141256069382394133180870562585071272316428966564063529681196464140490538927287344652539853376455347433364684065229429107872644952158348480136304541764251187769182673316448339857059728907121715546019018517721780213352218052809103817062331203334629563206847049857068596449559936151163806131675605631371761539997133045941954729618100092523275951597302596408787133988699891176513863165582075338670830700019460577216693867613592780143029479713503973561975679073488371354525088745798957682401171065502575035475034931551772079857371180907979318292206828064997147790346418495901859256597678640385232939009281010815193217992544989251660322721965989760462986409048297172065694149138457505794701903070482955209342601425331098446312944334761715370232502489241981997462715661475351822172813339354174256475987117912373196926894160841860835451239962853326157699443156787255296692738433700822019445186558086736043313889400817935855969167919366831627892875719931800008237637679171659974669796780018679681476782039802286204356684066873578760133406227819963915990234319315737948412624895139244765489227285910265884422181755931380415956017954240534160722674069918871406228707596320901476291570351553038343601397762672197531830403663925113357096245173938821538735773459249233244072388184168372238942629423321471758663430354675861021213609145005489488131570769196283805379594391901370024828371218050733214832577644538793955035640070522366830158737786513715990329870942070818986632399688179665398567503573223276749344466723172707399187793911478374626419947063962562538928227289263198102403175603907039940411962978110737946930993381452781827373001788266432501977510695021529382919853606713097474720753817936423489114564433318775843718581480641249925795424106008858131607333530949046499100084382668622327533733028160389537074589417056624227080862020214159810455759437867388779365461207990313756828472417619197436537960843443787390180422451958748025809134398959258473634506429167534158664868417086369687854308007005099565984400916820072541640177842217432438112426016637444636527144928179582630313825510714529683936161390435845895687435456945491207560698193695275248748681624981139490240207557544511088402572034412133080087057000213135341581903456849790729487167980902738262129229083864252736274943950205009019237195052491634654403640764466790749380615950605011007127145611101185496457841750936815384125736259691763805450558393570472455777933233130907362884587221646011817329877862581211659622461773979926375145234766979647493221272225944177850993785269783630218105272279251181421865404047121229982802394031479024599151808344937725436256928988894639795568127498998692849583219070734980857819287481350622807985584283922465574101687292198298403956517064090148751931880881373977567561996652155923018064395649588523607567482786246043652202096476659444871859090226346923146176914364898980885793044652545060941629341149017214734730935783077579351669557485708890459468891580658462085427496637922383526920853693799526213863642744272013989554775589423306138198008252129116039781582725265455518373910166034680571675162871677129424856261643740969176654404727750475463533639347271339548054503285467127024408884986115234793882445856396471523597310973256905360360488748424905821474876823801736200365107513167123384551326623056562436647405864422925353110270853466666919232791513731408464857935139403736621452734086686985841136527695509004028969438330983390156214734487899085091227056095058414888353366459864335033064722828178598652087249508485669956864921379539908609722478078099201312449155650458042205895473627781780412743452020717488197266497222907510335408075093136065780951876256833747317974381837045794805036878448544778627100006995644763003887521611921655158020712499004869723311815856847083855343214137971200458242155674015841945269186004116973575683973832008561239457231274149629001059329200295455156705198571346560685094156020066695582137155457735463849688749784607982088290123807021013471169934964962331532242930372906048767557831495305273613878268508565070293542989579521346567553233253607635882670873673271654104080931579353124166706018969338290476717226317281552610359246084671378743334993811636168087130998051977703752370639698552123481858745987091982343007163222078829466227385415265485724160931910130632360917392663513987677181008394291052637068436550821721014928269513012458011719212300802212622449547771477761047400858010986534030290458275493876373937839090093053872341599225459964456807230115655035096747722829666119587023054203167581722311311210711893884476539671498465572182555449431466358506008106960473909130873321384837681091067143301200505287679264964613245009220273023558591067934273676603654738328463786870100352451125580177865344102527289257134842637518770851519857119584906690729513438561308631042758674504975010227113870778650215043345716198417324231996690986592088262229253760294568257999518919075625534962823396316881209763409375956265856059480956757177374356007825538676314652054559968522580190445217057577217600807285536585305480949686970580888029929024323942342702410919512956862284816214296614530553435887051116392248213118274123692022978724360950201149900680075439343767552895185705137025212662763939641531561615083726589997255424528458802074421808988852425526432222799769542224796771056898305720299656901726981117769424917064693347536008712344485531389066762164980704955789642064628152667374054750096326507546576376151279784462111101722372742591120461876376800519405865656188922810025043381418239174731809288452120843965862044167389311256879918171780292288170406878121842163196826287965451875465379174202868821807412951690941742154142041237981199038282117044921190011681322669849834394089809485729527122040438976282817126655680800271472962046643447461652956509860012673140601242047566257135887206094374094050295985959778867546374448591549257721251677711870596635266982287903662886143217329061524889278928999587052908958627035466092292016525838168108284993203936528012538586682710369771158062334277232494062637818182529477634914815985585134909855775247198944132113515702876888716119754059386502979977211668641051220786290915215987668089467268977523991217437073854842527926185173133963533681300041517307841080629361332115722244437625457346648660657690929365190103865536291953855367743383887067539875214256792817973737118751617354166798163669431950279472746028484808236891705874688245403830106394737190585117489109680716408058500098580554551895468185659015617463939032933508459123012356079321843337603314888879375967917618928578726324670087760881723008630763446166184998105336462368244118496497759556742293897076979358380218408220193842724965513019533362523330521148867403185238222070000127511225028335747235768240824947648904242339076790147676962670193333072980872680817548716159102579423355603145272810927741678802261448453814907941568709473855705923271303076833767101933383600569175383188354776231838246764130756226384580702195271474608796990592569176610503652553494880702629745130009113238165471238617779450367105431419383545637539888185096409594729103956219189227574686012540617226293181711389985617679477203466596555948625368331877862369352887350236053909884839184040714455815648302738426561316844248765535379455074717442778681452552064880566502901245380202082330422062887452839215060866953247158608781807076826769770452155476242372325706480260194017110054181005431412155076281692696031912712534140841265487625823678942194641837328930894792022388541899815701159753947917444819375157195151426535295358525130091897314934312958880777860348901872569059154014542923856454383959626478406757072142906480027582037689499230051333240754579681179188493880601970266294163688554365079006535492153475283533473457340640670861514844556335412117320997721509272420488505938637193932784179360208672725692155224997745090187198026165774616606556789057833242614062568087514760228067523064341400169796215501602828303672878378880964744508321973919370834935253518085841914250568883748185067659739340304087780936360297497502235822846512814758092464445776795547707703839898011650488242851208331944116315749971705975748093229360689772795183834761173128169774919704950665946576343009429924634470238478965323189946821901951791823198661108470957438868348540139764542808083735836273159422993740334055651679802653813364136483352810360723249457717682818237772813924786718171129328918604951742360171152045290201342624541476202299896572474436544666226366775700898391743479336322884281877407877222370445503315297077153034209856927543803721944748814720377492180486667925607806398600191751229586777429129660254997652556821230188440592919475387575046547805455824402053148618211054856608871769787929026578889760947366819930972322389837069682999491504257994773221258183390063506687738527306136934173811394955570896499701882029565644397853894067771249830673127014648999300819819819240965286238372115249567716629747268923241415232149542788579536315012684117944179199110344322265745375757713221282875769565251554508940876869221745631317437042327601960561743148303442149633936229042944246778590086062610559266921967142457492102526999839192175132252240356930121676433344666585917746445247072061317138266372316222647221238778228127695194905345111135724126796140566028845286832815602353422301659676228569616782061843071228134769937482691383420873226880272456447922989997683260416458444029585172338063915099057763862451400023752766863759512127882003708557660855843964698465334598480663486982835088136390522426250958878975898874350938828056156467642289976710573894252143767070816531992397988492136710679381238858153903711747341193437693172931810803308916619636596100015073229201009809567209263033181185364859445246389063184431991248884979903912632223425245736578344445891107765603599697367907619154613632443827945896806550965681919359633474982550497312212661041818901272434767359141939746032262373962759498893285967246227623854877084243200324443570180948002862596292799658364428451900396991576176257439108643668800787564339345379396959886299242642875848875573092999943579054870977057345679005275501488599285854109892791808137814811908487472905066134631286579611538283409318625648657142516098729418512875878476615450262932513736161930926189509873012684975195952767262844079721324906974182782123617385389979777529938596681883900074482192765015273152827003883621640757369121124065755731267734237832902239877121269760358536991456539409576340147507808084538544505509383569071639675191226872839028228474500728999701790966237349458711676582820330212895405507017724152916662067369959714901325163529410912349484751331937665352401620943283519799629911465860838090294202599222308695962299028166700037134301404985510042333894849066146464792885743723608085418083914052001864514069971726728613069385099058433210311090334828603289572815802377619435819680230474464829540413281050976502707847257864941343775632575231605377418224438684105544621996893218777792116563207994642170921841297200218868337426768893138760666314273171520263831717048120472401943024034765668752477471845891833611545868726415545125108009921561881801182895273960075651822193075310693677930537349481528751804522419469102954571390376129598474951661095195793637994062588976777868899256548238889226727982661137919511818125193567245900194993920301346902810478978337119626332600006727397874418526133004842919122324349320512583876115028038046793011348411179214107794713530686214899999354668433145572852819516752175297494809936928062107030588524120256514735932099169873085096016744070874214021759716748883965667524159908811259595489909689435337400341834500293869294252491521017792684101582855979711059068734742477901584507828385341217511171430134198439726610230854742757452562430865004687295410799687304565923124129893986157291029700267278623431810906985788553080747451659937161326508341087280298101198355740617397168526458941235874271514447264888222782621910820914507617087987274184387260105319518548681825585198230785749503583197206571451640364637989407740834835396159536051257599162158098444125261691090236694603240297755326896116769067564069052655053994290941777312496885910812422517392718812397498302245660859191579773350462779482825293260317375530350387223311677590154899295371280266499174421432840972225726538583469839067243401509707305220705899761145458351698968048313849918650364230811916874546770743912924716176727338454907325628585107229752417808530426414459923538034517559677151056886813884288678214923301463361379224492815126723055874302930319907737907806183205901325326343585944334597902548541317133985995403896166488334548967552783822491176121222731599237675914939042115272531473273467089173665420941069275202682919793688494190726457602858111761377230861272411492964355585683745261901731283948514120910982762492515429246253953842463752177567827471652934664265150501414711174057146617928040151335093242035364295248688537655024276122057860657901311222858388909884024197988231805412846748124714107718471796599057949309417692258701049014043385221222797877912163084052141289874160864805312793731260426542599154673585320135397930754535162079245582498704780402939558715286332903530402161581056743053146374068601678910907663039375908556850679149487285046933631371238747148003958387232463716295609505877331812680033382783290962591907487788200945289304019168048161590464002475022893834512423698503650573767495252547333508190763599339360590157842860995094702394322611084252561492944134726117095573695759267659917555436374438567510161465052319637466990325520935954791435086522728200392867605037594099014333981991807127446699498689811410993747576488931950595346193474680051347703400743808793350055691751571606858506043582281836972533240864853063795670245549089345560261979829261403632242271101195393864623657056630023068471077379534723408084152003003237448992563522448800429876239689944499851636667587576268536636857005563506533120220813560659524891799826367279186050903759536401590644486793767573393741835664925080272208069002974074922071972424088366796103802100966067238882534000598894903762364501594203468651694331690085947873541451175002611228615506505978533612188913512790396989126672079628845704263527864466323115551297178367656441000781833601809119981809804483495042158782271612308082335244430349257921932204447153921401290634705395737018084916269041877035762013150418240048161420531931711015974285239680778759787164040151788440723049222212089315705209122726144286700388777805365194273079259633593896477141727117916867915217870597282626629342929080934050068896145576848263810866494755229480383963070009972290119236578739364017944030293081446165870037299047842337158062126162161907254390890098921408820751271982115745989759255323669000608421578097141618093641976076243384173642192308220458198484399335821407922677598379445894163141680920697380588093990133077925999008180794374818619027457023083258131925045887653464514093387751765020534851138704052410835018645412623974657944705046152953438983234997663265966740015804014584839215559926672877278156493080528685231480864110303196929534961479707470349820219407639905813432993868586114913470145154901305550975404193706123634871440813322946932170343467102071405018148036885513527671472819887310148763154050401593932533299082760775240786548171187508112582535546574762010906149783575497611468361125697174608891856979825388522824800687656959805533826706146703657160333550602380462899307824419734159054003440141331290369197168374264195183222240443290542343118441238852581053064438809078244971657915630827785723062288541587052459001385595881670903999219796700607164535746726626394874379666244703974229085334060636822652436664468779645100570107051715701661777957010519524643074605697803765135055138472772122524095897036872720689892328472420862235346232781950866355734986002918702992169356608174836235516087805453743731424976716472676771577963887685824029405432703892614793454269337919963840939727165889620337018871334910319274374525597800246168320952602867691196483596238875997650391138333133597710455989736600665829573319020677609053523238186649992421868189656667255800016151959287481083713201454057109293072086383240289323371309187175319438547954555420127223128308731536302011124006221069699565648152805322247278284452621481103420803910982261272246690718910091981695596229785724893031148084338158057641124527289146191320407893083843644757105462128386362139759699710829647836900295878968044113353085141930314790682537774989945106265217724507380434135154911755730780038269005401501356893415071352542588508930995599523470560355503073710333875267749638827496815469089515344918497426845685317117954897275844912173087902567684314286038988356395118988909180288248922511105134636318245405656686696599209741503092461324483422334543509850433807272306618726700522545838682211916113264442709467095696485477160043981103702580914350384637766075347926174528363780109064489285498854958841249308175583081039774853075199349003850911067303624342050814837002688119764141902119326793622931033811292219540866085880779187277893654011464881543792765999294094788930889772639064127699340419275262173325346673702861250833752678807041623385294742227929153596772589695125098685163177702799948630016620486850010226398851081045484317385017815816696685622134463614492614937407303077260851041462325168431195789828016765224090247590219871476133385304506423872934874870537781178644223042213750686462791761007949793048763399172209995436413264820688211530697271657593883305604158729843140547044090108028540685069195774843479678652636032102652764381628614408702215014815746258034971862813666735906287124240956578818523756587681396543953226424952573198152422389345054082754291510447947685969580651415891565730040992020604144119006690057854545419501851909192059986966501214151085925656267799733292842906311966841362064815434054656117181437900870464678989326019071363087816136645107177504002971133672704004147823741129072220557894592756003444412893550229331136463900935097680133240910848458671221869673092115091871362022131197961642197481667496523035946588661832746080032694213318187343947692736586183472979255300696992598618282274977441691723006404671439685308585575261829420179626003059238572752619212105863226893340297368526627282495948579586679335928421162647564202438117028493756311351002395879815251178818958668907015490815081006425027800178517406042990529106793881544309509768222209743753822546058018031478260769907682996785808443855198226099431689280028047431092991951738534925058996614466632003972011480397715432507518212859189251789883377160072957726309861174472341714167769208631540630009244084759364561371510727676988350537190856092965063453834905986279796878576986734601208522806416000479810531039448074055326452584630067480191765933077533361910739793498617649299986843705430484166657577281199745617770019852615518304320335390340128234496119465412538859721060486854654127945935705494516444068216016550002971221141838581661752131573500501711899450632915000500386156219850562380099300051260280468156748844877892944047276633053623406273828685712330615734669825395571336931949203042112903837234354815463541733213867674426299691046594628290924872317345124553345681838057011752550144558919034950324385522418204170410832039672844999483816604919392229485879710818407784370292637324949665247604702001951986989455121372117013411624202054692043829476084733646518129684693449649772577077052957505072897252341089122000616439909908281379806338514429788020443681786746290216707294559146721209667932675522419129621363634194516562457043435077787546548395139323852298252001327967020229993409583970830364887484085271941413188651736735731241610989974576684707685326683209578000485801689548545843980591377224417248989651578121809837000390667425574346126435593713984019051652147969766381239627861522506271170938193665661112926532750338864306761837318106372332894558377629621928196812794810479971557728976069746990793554797492795152953884434032688464022974271586355672013748172816102242026302628451678399077756636085258401705305880026738674200006816108073759174830073819952655885605409333923133064390748048350178227185299209663946550745100733100561417641158842396538417647793649591215569075873459971851746497022504656282879531224665190091271378070548964379363793021598963650339744320219049079180835160686605225088327383453756747171284019003513545402153529834476110272503007765477068537952376564550360187223047051256540289604700019084592313624426695035238344765473331562289918593435670858492023396769583466565028516710954905456962294804981828104791564664022217517189948356804257068245096152036305413549096233393225370333435500827855142087976808221438236200615659793129352259096421929227337770775667319370007543371310617197223749606700405381311713821637259826248929625253246064964968046207872998442087736411846267245382762444845249417860261554007137983928657669937724922283550664061821599408096050521258335906248060574314386996522903095918093506553271495262716164484768073990498154653584300297327529881542858712367004184340400377508086001578884833357241268725435054774501411846098231038485071691719126506409793008130017646938742107598290593394782821628507286431626341517284244334645595629718576330391628623325346176051031756099781879277351267487493852595292346358067716805592708237654549590151158615192675173641158368584796255233993898399303743441088680469834572405872276658996160912609550100483223125404088324877384847259504338445023011101203867281058580307428858302489016991016128594848223100110283186687076413739898100498224994168062397807805885264630028039092684179684061607580079854347917402942537557008642008740193176001389652851541148674645448591589200013715756951161814550142695029276026946747883374508613359153009762129772298264793996293762498289303775161626225553724971673133853443599343138040598384347246284589167142543792081896735607529097977999839265362311919357492304040581634547271862723872889295265524848970667240432033541545142731894885605339206688168772874813738002043674377996086320782302855640570062394905747911857729558442262224071300696587627272579878784904017519661183962897813843150001044939902275135345896346006398400437743887506079161639320238932800902183871417118356663272753074087885256156342928031133871507527885916762536486188884547783159454384854705662709953088976488555750352183355926523224301844692154089712092139826533368951695829855380277094530330567653338902075533519591009408421120548134508234020155467111375054260241923968844572722399000680867189093438315167113594851069532754878696304332242344211558577315519577709373608510431894958107539678994541193046454046393964926101616301938000639867765048371375449953125857327557115006333019778687432755633557918934342166494306600058977697558749393483587007675143613305477957399581592473396111914421211060675564862938924696393572287350160392210444784841448946670412936924322189609486204039486173121094082051370843821333004919353523021062270406808232120461859682850397895154261178080954883458518830072157840130794148852850936297837498300529871436105508056437690569073241788910481847835071763049624120828815439975434826131095761900170317260817615838890733915606301370677943978198960632179413596405072860245654836996956275844663852672915006331850854023764735969746326902143098057625632781219190774286951306423889654069679472348398065135232700213808406991836152811219184410556948858427745790522349219542690487627607713526205959619127848092706015091515309429510099876012772829303495656960519291747160933323427985979862965449453184977556331680802903532240545180796251361047242643619315294369691292716102244574545879042349827317401514168132542098371620642774524456194356756667252178018522701104048708102198745535625898361957612036782563276908108151526473584078638424424856689689500227248088079061377217645308284407922032798597180106218402693064594702877723100764666913079158498212359349744673752974413792926382283178467703708834782023470290513205215416567815260241234009639996201773494354163348483725339522584482683843970506486272229629458000589236142034070173150506276806974858957918704093302374437890113917910687304275937540804133938282422720072764273021201479946709795835342699930528224710218407858412771607191242476552284935357132792722006054270613272557271943773873582330957380505859308548010422057466806142423514037841271150555414861276524206235851498926234504348884783393544389974995087322495317096928142715202042602354868925399571462156910925620577975592802868748590641341310688223784800002018828968115733952263505013096108702720479704361445626828039309409669593116930847749338525886600569130134747107724928226206070521046505176336520374328188693786588257317363840377979846664713624728846847974913464079452894690493253492907319398918375660580016247255774650369566790980019937311918854547087459629512285462399376042121900711639299722978537372416860267512728407516821687541423309835394994334443471610339825984360708112359528078816140389865121285629049150303085723546449572997162271491323430908680594100525899273586797463691723819232807397575018217040668829660368584041595428504638996914176917426474322475412124727353329494016223584958128389869491756931695203072351634834921415047084233637361760911583611313388911824232746903648639951397215881392459491227260960537101333385748427184950554755231867312877369116605767960634067572960519484857303254741829247276165233944009303527245169699031516466346224389716815510681289950431973984028879095259900306726842812754768559022627652816029341333664790051802217097681813834699355194985050826920941692409287797318838154546721927658682244201401672537807944374123351397495704025859673438526580696026487991895478386711118629935712179306017586500531057909828466172850520944926364157808308207023844372930213508210833917580118706115906776236262352388782131973975110568343908283979157664832208237568974877737170479872324851922195842924703947657363562024298935926728681948040782211343178363190589289961171772037958270138952071410147480364519938004908133056797228081111369596922416778671313376517219973728758154754186792387915846813269224610214654024359376014955098651986985015646669107442975982649564409880779344098829873188014755598529314689958843669006514821779566151244994913651759308536235856554819678432593753754093086462042559031902882552335484258183655161351676816388061352959506908745148356845847792178165076410280641214297225860636591053496954040380284972437674142186563719531376849891372142832997607752363370370856698654265010717692725115496442719095374646218016099435104055620384317982221527308625417728321649296083469774050655511739980057841818947841887004014103698808659353415359572068336993421677843124450055220375864004860301128665880145408830288629591585869595932594144412357872890307685204940047799710083913445451252198870989787431938917151180616348836351595506470766369056206413743632848039971718709678633432328753210730722448135381132257593275371815469080801067915485359165673650854248925912867084317526367666937911165351585466129283934979010009331802377401752537107290760728779576584662912955216039994694540572561847254458174372084876240078730696584031871600916902128387731231514585767323006959486643995125117850325133367520927683313364944171420579943356884722103213819019457296238941772048690943285909525821698127344847071904200390936427307644430105200323979851800417285105216030045373063042455000094655424308589318440479849161742782246122690746311194933508086506363551480016800908925292884484319920951419762888182789103895976666496500408422217991050118438753283685884947092632868233258326774364318269886910098020959493443405836356333521178003309169679127437510770190951169398636480820791125495148007159340376527558369428591803681721526721614478811666702404310696824683917393445366419930580334396019126544557747075198179438658073467710313337143370321646867606643798904019450076604213028026096094956799791604662422081339615594984132624548927375017453862270414431415843482389975856569581630643659493581389946330830102430781294024127257346950405121073961815518361999347834284290508967297172806472844938889797248028687435706761986434569602566961476560514734744813553040974792260349188094673857895565041349392389937273245255717560404675481601278107852411188700991770589320047027953041439931928227440482779870040345517645662546717372316021316198611392081322071452368751115862448114750509563531611745069210450649793070137897886557533299344416141846205514758141777779014027169230839705975609889953700157453628823576312086691930913496598468407994234642202153739747959365361543052514843902111646771945778457941682065705853427624564985169086365907345522748395227888228139516874454368671378953762531087841287856083412094481355277184253776841371293834432511207543909438819446271549241805121898440624993891292609954283868977952540686274225873404986635250763899539694347717545331548716096051626582791649233281516818540853535393616365953230082798437786303851429132825459072062203321490798635858306801218248035068881959469878177343904050782692309842651241007124984764829329209511546121822891868677181706253033992459478422016966511542015095894709209123688569943187163345662213857753790682400064126177470221741253643279776281416537933481886134142534263407679249973284829449616098981674380744794692632087217660520746292361958978829213952182958039961597527599373972684464676302432667615610962090412823491129452012394710054679607586290772888778400464289542857174575615791646206190534553749241297633149689658808550242615577723977642691012934984498535852496118459610137577890199564641983057205160051599432796691690969625671334608380578576428481122387225429375061767193080297822651181618738081377143830967272522971173381454974092807905904051243986155877501406333434226240579308613978485551381597524820674374682322630944349071612223989086973041643718507552841037700660834470190268875028203799772414666452418659264062744999662717222259439671199246952149432003270965008649243274207118046572586199429589303521376129288952735115088955240781006609767625702190006192906569304874381974197722160366696839860710047546808092032129433240321720776754851880426981675611340743717589588885134047971806860164430283433081464615045895490722450618276868156923918650661477578241212634381116355666473329003886039405982360190022564803855971541516747130619070098946628298427195330870597553425037233460788361524627391227027072325520526799140946587455947450984632292130403013954354547814244490070147086407734017579578128789955114098579205626656702953515427156318348930187202645055734957265257847294951438781311650281540546861188171920703255765619499560030674060908343315027218231568288861559547971990189070134822346959413838362461699799547061207796867634751550863470686960043215496729640760101308948288966727749259290309582929453872916570247212109149429424012102973819624330489854639724606034412528178419278097395731027171452368424428245622461040189845729885074833986662755945181538258330699208053014467997166087506905666578200749876429932968400264234815585589001834754989940073317198827631576801720094242750088939993374574272360255614325090553875962149828953427703156133061040829516739458309607150295439936782470852880796496533145660181952288543895475418464386470835238256438257572776407645821159745190011593583055347682422896022080848107729970604313771099729453088728535084167149070132717404321863184706315196205420741298751855706828543766097785728346106227976624061809130033008372201239155732973229225027061013262753741723150027193572276400675289773561557287656920063914008718830570405673627855466409078268734898629620947293958007818867180108073088435518252935994789680279252820777638970110278094546427633974060219564276875755867333417651383939416274296662211407018877996026753996129729361007989866682095302095362813641264153389081036031459852048935241009375781918051644967939650567084835890084669810178516714398081220027740473748271340827533096720979689544078490567733324051803604856382287023044783118338318267478167877597325020023117403863782403517028172988958036603309516090784231421741495135133468772107285400847380384411652640797999329573209675399438067122969694543864864169629982781124013199192337181270598881414589381669307921123685062408084462269582929127708926698172445944762946077750197435950532051368580301798221494132536716154683839347939229739937271298448043160175962622677913812922511770304706053737042742051489676980852694696198255545083322559898466678353380397904543941292150638241503436810924772274825844813726125744887297622407379089801708741343026634447563892867972447439850451250587208568836977636508525628828612693262332313036862304926584332385362418295195795903380860413777682186220280871663969991188577912500302327674055377845636427320037105930282127744609979516121382195649393218262968057398475754583325631254644330626474757090820643012526513997037307176207487883160891645428307419758014222427116287697793301884406403258161069364187017568319657763960754167342570106434018085596568115639486932961966392987554947347129709605157922542578002237114367490178232609367414598328741708669973066026549438579016617899351036391765237362651725493304919562679752145295759238766307177242347472472831501806128979811525132433269323127507096671894833610919656775175844684169040540724754515017076501188615159242899402194452345068708215111744219425209530897772450243683716215275559447116171453622501626719723648114930906423914220866452252762147989032747070851046649664957570321100645745000323177277541189125087858241890579293424169036812700290749343734249885649028232093163029730836403914199304548243644332687902601471032627412666898939682386487749180432746506989071907111607389919834227105548242329077272366524492280903378492383812784068363245187926535719512492040320612035954591191727519847691647512504264485209120669155597239238001445534222214762895500771353017467245868638620385083714812514600303507847297932653460622743388461337355838351707281695611317378408171537891666946902601179813475337310765168751522641344704973124545539932285645903945238245936611161357803461936581446800100844718640701481184122817552014653502832759563592550985660784293640900642159536056621509789083315973226664186263599727550586727618359120383658736378072215300448658440997322671588684007624197612619820993401169351147551119155081407884367872830724337422475122327977031596669262617635504351978684326426837833811391184262558972487849191421028118857103397794469462036323520634237707920447894516826068592438287557763791373980591118566841755497144060400413841318602365212351568798876474913206431641597505172321324864201916428050570629467011972031060318460274437222005701195612817424522478268019148833474967244275796926820101517526024933085072180240287011631483551678578320420559763156952616012459936380359451625382509397531074124977213541184835922879310466741752157714086100125927503561054939659415279448486408558796118162879630222812038082425085112432209554041604601006521953366119947523562852701858137256639591234850232760442790582078792718242975652038242357101792565180029480528351238937601187955371522217109670018936833749320901215629641188826154610929203227791444126481253050274787951831946354293138410715960141184751758098528055222937045694573290763480837162449134336141533525707903841545678692724468967727098748965603626143600846496709043258250911821347628861036995074663229919593779788573772672417208479983628571025849954922038607786919798735798871464425818356537408620038555812199299479413464213607002953374872391061486975907214667254210681124926688459015387020881147810988019656782991884312045346998109598376649728997995946761721975042569569231398447111157403602831849060179362840852014624525491813393053479875354793291886346067182564946098723182764193023019083419808352545906722355479082937515149262011092024709530150745877088002901785074756072152302007137603264403795593826502090536108295418626664803142064904080235071563654303509893966742836357942399583274035597689574995962047982919700309192917778438788416879901522994756672569370208933122329494859288982703269711510142661218963174731311938281690848440362445949524799971268537428382298275428941985160157534849856166480039423445100808241854217054440352087773218703624647351379700110071960461840380700460498600680779328808883043940045367039647098962963995225440602446801334661333539489721658546944350968316363714055647757234614943935038056216481285523258739047290566134828031049968373316614448156010221023496969611359422066912763652945905806677618227759930167764575622124889797590385026366898781662319392598190732425645923381885359345239182946897578267281823065039804839594299934635326481483465783944735154838705254493594232715241886845910776423750559065114747021213006980816185718287870037636618911214269546030151853537188576793673770816362083796094697076760509270239446821732901838958651611533691710630503081567939032007366484806968755992945154619797122840295961037790869604550090871577979664920121880881754900068999397207214127414460880845165221657978705903367394071681227910176110098103039231153909135337887599443436545302933105342115218001272988572964239424114463624130418088047640416321076591168851859721539119983559115106470665257807889264918307253083398867004697192502364177437306963375209673088616274603003033547421212178898188951371511923957768539775709908075017689116699431254775077128698968539122457073990559054484496548430188033341217621217459428734739720026193422556976662092023951137978980166616260864082456428336896786952465449697741033235431205020964686067436426399908916271015474564892646358724618837914008251488071095346477371466274819124191861336985034609545882751741982938153286326568374338862803036936353782206233385928846543549056328298599323269021354901579280403309111590512766241261272328015491995567515626190123387206300548877192777725221063738100726998524623671250420216337841297338479610956644684074731527533070731582129434103167364621752777572449295278690065473616948437488820016731554291086607550801564167228779222768167661043895903845417582419090751025862124265606330822024195650141435326255027708062820388121622061583124355770177547245961647772129745481610935291186836070434165973447892738310676293117561290925693794444107560990805106723150062771382817259024478558482151580611630363744369592892338515025398726938392594071507531013157917262742973804467518336308111258889610687289473532441144204635290304405196800947597787751625651149475142289582774088706026923339879864066696722292958150471547106138608859165277799674908875362950895938362797097085968034736447113166938610758715236400768612566750604105518423011380799036775310135012283284544973913043598186150411295829693754572240921665653452021266718673157034353096393953304797829612211465326782995629235460608190168874144696439290778945366367040573944620643172432505670139808662769212691957757697479068682631603011706524915204396943070155887226054897540932279278666337687016614567204520934488000192993984207532131858608433958364585565444711852607944110535476938648554642808344354028428325544664210504753336638364283383422134991046532104316614389852120859004629159098455033882759272490293966851782204898756437596713191878280103522092417640374558541700855790458900213325626858536007855919033955972143522407269124397377476634082137744353806007027692015393558467254577767252236350979423904915169015130453814001176453334482186936316791231560453256235048665362967431043077864053581868100978456248483590035309536539135851035553940573027660795992923356212594350448211720948795488063378722789008991366094165524677641681519875215023514933631189947769977718068439658769691727013892871248504859229850483341325905616630737248848486201421828868604873814596923064152901225164371974197608951776046333253957103208498379896228960357692255221688394635710994598200258861427397855524644202951391199004826350116780691574907059026790860408719837130216922946435841646790853682257937253244176564450428576069985964411905165095037454579477812825436546778077981676338125851614685306174704573773211058490796975153233132301034262127050475941977584821549019054619066898923500821868168292583150290880284406389498791658849367757319379597503361755605461232651944499886949579824794381359831297284139722987525418274915438212481645759261475934052564900556687348199509271718801469871296822034188091109742728100817138696644051972257074672930513711894130987239899935557548205618856823084259802593653705110410018697373683788987794186258803834939542199521851740233764457383364856013263202916609860952854402260708556490134309157338082097248201659585348811749459302502997691162915465665239665210534280130028048200403271020230048028157658223049826848718305919487150780205664890966490683690825492000403021588418891700158099436616265620219852455048520683859251841307691884133690049634757904779553641559745000794985857210945948614900429305966714165881748419059402084459436031346158954424212431772774514906936536394211199224295311832061094661815100882333007388560638591771571164212473357141034584805471706263689348341437079806519345192934049649877861669611429224134736615093904123873199999722142362331903174611525964600181618617915110648930399100726342828932574623538916783492690104186472601174708636716239976425778911877379487642930610392110881858947592202502722398325424976570378617482990557908999421320656783343448778952053391442242705511089059410012774631111220053870774050361926736192420574152799488540940011292991972219331074022948263436903699089363269278186974882423662104002465099161136150219664517460591418672234669184559281727379668270553465567201999303947272948489507468837833296353408347612187752555997156087486854838853777773659301707996564759615072703059455696790713602038216948851323034054516540527115196774374056483535923300956753414336119393036453704327710710945949260563351373962172006800020015102443800799494708486078808870259530053349918235543668766980502079277703147330440405657684771976855639882088319574072625867923534923854609147149195328275783316984579410284183420874054549246485941029445918545668571815144134421133099793186134854196009988924384395450526512916436540332270067815363978234165648153577095467635999534393935404644376023952127560030284106613599616515541879478963757814715008005270842989129559032845398469465174263988922976253304923579413354467264594615421678873300261000132006756648138254289248543356931265969692022611948033175722733891633111308875238670787675522971138129266268754127602384890590019706523909648397072689580708999312064657551963689528022253052214880297567889763920526798141421437634581510380881084779080258524203880697300680823804089928196915502789971054143450128235818928744884634142494363927148279526243909125943843614057659786418155690841674658195211260526832073563420985869502698164337205364034456254396441883994900498927491769012925684813739631975393972562558169590122263867948009544200859637083836347930859646759630182951555043066132370892507119722716088015052312890020479965101346146496638306236280418006422708286785602430934252433493635677593798738738317593904423362237136522200563409272260301212215455040767869327749386682033444596141107002090700764409559399408669121482505328271885423509901300516861568899271630842384122926324118021041142828124021319435258142084525632654675018964846547735125166134777548473392268714968422305386339226698483671041319015055259154391464384402494295509060551895943572845662242105212933869974024843333314536594681974114900064195244338431025371964554984190977445813888377138497759047451750842038638055512651129117807904225614570241847858833501558297308184394228962681420422187715312345976511227272488976029343343343993970964781131066635116832488495010210037253534069575329672489929540142589184688322198954331107141819323301741107427576658672680919753682295688982949607843561472134827335003962912867079229626610458802941002184362098245588164606566035910372964946163420139649612893139372330399030249143876861399505405948559763681965593253090806864887105428827406262766355231457744398106248556310745442042756764285558604874636495846139923397018017801016252577494141939590521513778786326283943778875554489574519970813555224564786073186257398071622416752807596920062806722741708130576851933439660470345634753515930439056444451601354817443616252323513896745068219222148756970815261287035936925544587946087983742971846848891158706445018753580668778303662338596681998170157677006001614398449588240938987955835857771547812207223402980099170711816330316809637878217817928739772197148830510479043690299794987274173740194343281694497143735513104272046653331954918916826063218708562077859817534884002904595676393430043544151673169927840235872961602729336430890272447854188640507066074287898994209910549695066992606685214126567127769926046356305459053532752284803943858984814850879533115652682069902951498409314320557267554974495111249126739222398842757480157026604705731810035529356829238759233847809529877640662858836256410924991820672987748448749420326716236885115389031325004972742910831713074131866429306003883373268455622514611191545075470259956755496025678484513024528701689838303708766975564586130267683657369043132613485245346383503055782730620124418151787409246573783250463199544893694547197528899218276391136614955145768348113343666017483551255538911476347121061876207427004701997369667094517565566694644748762807269661695882734158554636721191483136607002409039296152516546440830150189867655709438531562362310787182710113299986085102331111803968469841527790644097246301615323924879205701896787402340061131315875387272094089891718955696114207503594775491468113461258590990533045141530239496883315691542418025039866117364933547119142007096404227959336575891721967678560412735016466101294692472914873581913095252339842760408598525908171033513140700600759603444857743682989102023365359374422815459751163018186943244531924639826569751650209769099554060034689930240418546205181082564510399426127765922542874538044603241704270883842129275350156689048942135930724828855944211901784392213175980484793255560485707844096588764431019060131712033577435141137615205993901252577956690336645261260253845877674199113183485625145667922841198619350855809666719716707928659573715783879969238285256913872513306364915375274691133470638441843446374060448618893989442118439429898413392378359634732514419696377570463795527182072338571914708868623528423623514617350765323759567559353770419506641966323627382397720116378657995777583618181386542013792591929928460920879979277487317204837993160207817148406596161651578712652996634345543415068797255250868253945918184319314255425406792771135178943507487766778570662654583429138890126404030038039334729323627205250552563999030409592639102096941465360606005579430832766327284057177348398554702985258017810736141202056684311011725921223941005812079228878093576324925505264918275751970743631078066826236804583679013387511859623599881287527149068566206039179341375969957897619158882753569393160380475436027957947768253759108253047020101741034136089049731813680369198283613547840009703271653917305282368672234622735597498790117699392243976504084800351160972218216087607735354811267779771933143518982523243971409924119761299120574138319571023596980480433294487279127379528948492644380230774910968743809001977907298320550488863262872942734434962981648121361166996354651793302359935182808586946951917425886129689969187957491112970100739424645501382872054668561796848074699333860506754304553301511629840485637132583910406275126709337615478942082262299512123986402514378516467261854992101368420914114858916475402205213208210590806075931041476085800251695240395036526844787935039606661802195266597069936849732599383875260067184054874031217648633134562285686091275765444183268677060941429227344584632122877948101118531526238569206572735870466396366032016699834676615014303574226033361136021678387483599073521709795780310678008616002268398577537537431491084335193758880651188071982295439720782821306182720852306682346054972633106063507277789294259454876846157317298533029931617681012923863965360499001320474590697475853655320710226157436784684054648533892048175463141692897139935692118345485278034344369003356304479475107270587157880338015719175204120940939017940439300774992797913007624439521117398828802739654753800665522581619619447458268059140697046517128509669468320055050635227520896501884504706958891547878499670688612078369259529341019264204535741025308043256979360512091672883592804673172180934057826512139596143195370601016784621897818042263440393031750378406597682308233135766238309726556181276898796757637409482606691466031207000263080238516015081347586816155629437452652783884105170089524535753839232332720850723984457368492487297865512035099617256708130928682974339116482735360842847397053211155152246903653139352995540958724524304078803879966898837415807621836299144059100100779948740470969494628489576826547140355328746120619880095154386410411810000275275347012281945415661031780188919093725389912196769731588010150452645607664963374603106056474569905894102308691401047341357408948177727280145413822808252513584397347588251493178979355623017547377687680482186511493664623904716900249402284901637816898451542009864973966586891968578756502067925380365093314834899065806280447108192749548848794344255593910262014959773693020524457205718899040046048151292787416886135168692781218344305534366266877998680253184297205548707132265402518407938975160531082621962717278443685636475014282776392896848269108637306717010191594281708186587174891233977828012855530559490952377788046313216689851323788096652204577962881365450246601047687436979351687869890748982569405723081760101025665166494698168503847958583955104822323449879833470462190568390638209851076241945029808286530897719172980986220206157930570165293966573961023516083930459541941355740640601395532887966738480274012242753473692212033373444472960646067857161925186184755651860658069294625448862125835204249517658104640901398529275276810788502408540391239669431347373144645767547446694084389290353241420412861904557218303080255251345867404796335751339739755455545028448273179943609146465660511978814339122483225927226705567554099398474280395405212183705175144962221929423662190887834721309317251544365936841975230810053031045194361356314715286780474797749546329344477576800973961757065365839622702862367006539651396620157836931995204487256046135443997513914240173478587838813549911405889332003110301224626978997095807328680824248560584556161932230395881054366073508326009313991579340983825195329314460771256932627100072008759858054969014825322580269953263648557893619481372488203532526025165790795718650261312773181633723224174243919263482282118247227860869900061718035781589332401103640804561730531216781514066763367029585149404950707857884758029084286032462656819541804761555403006370829072281119253426050724612156442339870492361611341145783733356475273388448173886921623679781653132389034590070858681295533240532624007358493707152568309918596095835957487640980079591566360457619493295833079204463866132339039728643060986775041697831010899425063523573407620313786445512299678627044103836260351481032302575066415604349897918890875706544360232203863440797840825522599987370411505131503704122297865479503886791700210154891941045921539892472921185887371377215919483570726624290049340477180012753991717581101497820457481126621279571986903099173984242946338116779778909863953574990399028591605950527166713829075650226034061932819830967922288770555091585530240238498552880893534647595986835499777694321365382716109262278235266351923630140133972424814540331003142406647236365452704793141739782979963472877767917883596587387977349856712745013067668165361055493370595875079427149411607729855452665406220820271736792639936276300891867581470899227621596019534125942198081700583000708005954232336946950088585280769828610930778014312001299737430857129207558734414921847990545977603389829452266554846292936031637774646100687410079243917472248452588731526883116939792994312908110567148338025380672250903927430398587903873862154108495672362335231154831945740300448788581635119052061644426326439585305759901800185088953679287893601461921857959443586450560057605836185658721766261126969169908851563624925725229569643755668236354525838821229659929244366896408479286275866561057957594558948433206393343384240818320847989828290724950037305663976422811445233454015612051233826433818205050704954232177100545784119328924900471251930379074596390154474224668488415844691337153393941139568949307876749813461708816024154795356608399624065476903220924660654129315266070860370643920063614401529800921787457508508272306976415262526344125733123566751550968749954374304125340256022059240493492712971434755082398231379843608312675666810141274071973674836257527840733877702691187367132088322026054759114051340215601410549824774632482506145311147967063589160853540869404216158687818764143389419613576617898312109305073004164889469326552248462865594329834621246289406127014568859124290930604607693771717451858919665254497429552675354376590287283600928981589170580320658087274738053251905574006024244215627077854742268400607861342976113788926088077345081950216532348098350355721688758173413638583636673651270386623062444651668977851765034501959410770833308010466478089796009098016156102446155093257517328187107542838365776808422989602193350722675231979242744957283121716185763432048819617871869681312483561304826606468200363479360873976386445221695577538129996744262733649248485449273567281196107654028151877098776989671920114666373960576649969791342917529367260345948087832113809152779317681885039717614263121561952818837738542039366500539127371443077504090703765221316418088017182120735147854081911041319797145173764135240532059611430555090386170128435202829941760043159686181878949998862515025450378665149611943381559653115509109728305284127084853167909463070527208959601533998060842504533642491920058498007271939577020935449612772575034015458304757318007329330635872159725820319202487559072400566807464824854522101586111422591301060790826160626202686825682968110966529173796148964588549120917769412188444171188973005727843112865143478230909075508993768409450591496806089255223368084580020536533373863282854806085065771607836185466542525152335435544848904159256173405616906481708166163702292864307388575666866022896661042619091963767395764946307835231497125067850471494659501889744061254158517286272449702035933069171826939672927292765287308504220737260750827925630676939923987379679813279314359684629404575101476890249699109717785162260198043359069659963356348639011013894714193825939456827298102455259355138936009327416164333880993338868205376038926544414906738615728968965274583322303427503304483183314729243193743673273440574613058821334571859911681683674063637410458124437237030889216500145092873459733771770756996173761207320635030605261775443670694572628705443908205022672103725145958445561715719916967832582715271688825273807532485151960019223649200963750610789435334839841736797655740583843091779353093589543716323710362479275565039607976025993549302799212370002543041558299693963521393442023837208446476109666021256985057123458180387615374115714051371537745866049086839598214881416424086128126853073607582044865233871836571258172020354651313184829178747981272668180489407701420647530978340170220457455376800814563900151752509765295513686748744072494833364088361954303020283816451233624396222385165880833360889353279927190371480342939950973542089677157617592613086606934741665722809347429570587915223104683703211571321811428576535966718553435439940888125477500098528191577763491565343410433436595522053200185432641510303322593321149503065502952829770385637151575408168670531539726797032358198057368497448888509454766191017925514160005245823609043291834986066406076722336888344612118770798860386041338775262924592139093202098246664104837587529280471053779904977018146632846880375561266903538350013413233787606823094999904762192418817721342955191421129713237128979309879044478752586574981668908545021227184170797909288133010469245224477741562524417465667897920222983793331273076304641770815282133418816484678023333393047125789703490364215843728580123784495811903900429502304662446002784801069654410705407480675201729774749770180481781550014149573657199977523799216881066228002637917619113768851646836588235911541046910792665821659840214867059862163412979341917922397538081818652617434494298605233109312840147223043490567888450177414646799464824272526530265238341128868740874545425623982936233640796033606537418605115997751079690125612304922587278508614727274432144392438168573702229953921675065585171468901365537179734403411781109892761724420327363160775970706998166904235527742893187935310598219992654878400187183514583767067067549482531334741116228988918173896031283980079533942243343840957535532136433576868085458953811466061734166732591523408392427017061634043771661177233718424573352116370405222582018955148711556072689238988933966425213448352976232754163790588238165227067709302577626783236730929342010616856111373091611133524468350720726534594327896445460201650253272032801006375110383126802559434883376240710007800903231303634484768456976546075192171837067894832189279733662032694251570425799704197125689559183449173618087180619225558797118459424757305285582101842108597233596502489755446534206486490818815195356213071877185286836595851900626584120644827165514471721818237034802656672724135717511350681840571634661183251147709510812911339017713081412455591625988515609133647381774737898067272251123219981678946080618931215289147109393615922955001215229629600488276724968308907559405678707272454363999579810027033248305300298221951562655324601134982927172834982933664666386969194501624305925764928575212059054400806931592243147633987724285688208584166736943996940502915473193995960883593091404676106559864952944950887617950877187732170490906717988231658806323482766994145745580308446680893941077544584086689165243877110162843627474545837244609426901488077951435275273335455716003101751132615718456942126222795694437845618510422006556851083896859256310562279849970558898151413520404773727038924483052651730456056087791950557534882378705034288346084620431870814310619725192553766761497491442123655729004720970959430341555690070628766974624859290975973780773382395545638623152499168076352847664635617029648026008008219679276601089455400612808553872164573292315671930038953748658947245931917779155828837340801237095446919361478880462826185528587063577690127286502386843551359864424591566811905182698844998438112443118246208197785920936623033704752632677547362582914060296356883734861541571116257574752504448831700324093015566271982501785834343201425681675714938190799610583448068979898082158890926765128525058787917714368305941926323758324139975540118260036795059392770984220482737183613300077741218983332505587704946304191442332180561277509431029181431660733445833231023311190513594769740105638119005746493526089623431065274160535252509853130717815850243681940910071338621502751880806496509408870604899593915415146322533168196269367917077015209237692508818170527797996108805544493740263631599851421259922766234680424402725087246217790967803495354560565699693703278160618406004798246845920566497485887083822216719284695103755270043285040969437687250099932393016336139715337007765149770559170114601451728835839457334279242023595689899354544087477132080378241854212127464664280434156487222237523741897729701094681982763647356457809828792271569083067113469635683937836351753662590559392593584041038491931618821199597296644562625362042344001716856365984385236532072450152347822375351351800591317707545681414939564968159750248353130814561431290524448230207019499403869779065613620152996619342995368866018299835117379538400563723018797719036639960825711822856331184894844231589451196316472659124637339713346802363121298698518031262952757512384733867634469108161729891750064098766770413900841767567640504872834079200605588596151257324904440829765853414896326562746775757942427171431042213504874984843488226272907311345817000132645391598417372051062446359116252741394218230199220778045351294532467391169430165735393476841818419270703595542846730537855531185265094778585071895425157845107629788174797753953009235688992393292355526728941314299674133350467604969640399879895645733144638875171026936734036532305566712373254692335954427017543653252611778519399509285121108203312762187514966817715283247794279048917524040274494577802149033255575621189204715279354446504018886915008847129374500967795870231217097726151133707662275488391424524453868089750597319747613790284057349803717474989684871737513150368965223531923304777978383525314439133658224915050712728971616662415130612599359873300969056302519919638342366839713603029286396074580590054815070793847900933938153673848612940684681854171519417994880198576258704314183637232595572005413227410299108256026375472954821996333567589293033327426941742139934555255241824193436052936458773569323049692128562611036653315261340039341631361295104510603542014033069636257588438808736311306279872631368473707811833496458610420223366324482984637843684118591255698450095941934695582920292772791190510410496605621898776187235898535370477981065463069392895054127628823283240909925773925251457099217111182647851260957795944470001083358668832060367607864230105862498671239494937059944268179235961007597436075014514690680991091195839418165947478215347173905674718288312133159806205150930639619349521515505153296126626002448614919126750892295878152214330072117251532525396468441807658689138148141982264471226625036932036069257736464333692297541309522317161208539080370011606655664970533846829153286034382575756269352945347613879469813627898381379638021420784309088607601424658694987985720215698632046260736598267128523091318641943606000054781606207331798834180579580593053688603495136140767183268423300304106413224796550605517837968399969259718739402883634703999742813863419160147315487359868713859885825174004234055697334986949990956970374189498779390573948286563169659867867663994159529482297891449092754842925025834674882452542677058652266189280024718239192210445059054649675666843197779729835167056361111670105966838275860650946703233617551909783612923569568872414509515640567075960212163682150160031151806254056513554083236684757956932785202332115222663089202664863198333659214293510201953641381687605805301628733504987447527865386455281210525708978395550917654978200573397218439682998517530622070515810516347938665241399656836601042966112588442018732553975417952931387338392662863478541863514732700675916067063281835201080435361041243257630183270410318720762495183960476028319687544038351549570430648194627180428046665433744910648620022598637692933068957911132005477837957191925961655735768324267581767978631001954956254352826490413729286678799039302639124351221479582420489469477904937045566638772058013946117518833876913093791634893317964475298216717635224696863084227105923082637161161905173189275624214080442394909204574048021822948186561121012620182625405943407382480269386409394921392285727377222736623450696140754812869281408619774813677993460612100916211151292893132852246014359532089801258482257453220555644676057295667252548374113619570302220506165770431541343699917265685618114240477580302441278919283722012456592011804394362243551007271835889950401950449030582622141652102038717731816292172360458326865479122225621449899108330941229508371650280140841372305156252217645382551981002566137840519962330014945876222020529569439925773916292239109607550984495150065261538033593428179267579802707346604910124222375747532905157061919902062057533490280724771188933780264631241597823365544473540936626192302593323566317894369333301825024882545600152597840417203708034135454412295066990689186724118546204432368147250957065263029530554291914189723969500752681067658201078662031302188401961495417310355726108354698699635347728340580399784994990650041988569258896197101969455300691157869219819774880333670694195185459116838463693377851165376431685554154780326378945032472186712336313894598984249394283101391661052481540682185463354903408893232713862737855098420777882274871950650926118783831957374284038628786212437425110441617196449283422701044642788114087709421621963336000473973193687367510608773554577372772057858123806714222499581987756710053557724173801459803774231692101644792290028996523851448911068506573932467705248179153813807309200070348943690586232887748817316106493800328708303548087821105913938434976033039596346047551309055602886874692768324208508960891392002978425537076721477464609268688609405753476073993927158314174876861675432969954316311374814856720799452556624992968777410215701954323878036171675882851200343392606363404717245416675175187754846307324453076215117606035972472963884920283304355093613545462330990213141836043135668094326838374027919420938574665971969224830393685166953932565330075575968543150965543693214231863761640547865187619123909733227747214092921323139202049681181873654297558193641058356323864619241944172261375910236144161580162732895057995291445262036071114009267112931141636532565950782957133627501934653123235683032476920139994461673379246257155446268811459726622932669877921571779893760941491721355472528514597625619800426590278947552093814917612397472181985037711896042005173641318466088121336454913972437005926328868756078859423557265194855740933282425326510554342671298930482837280726737510892898814253830477392453083411119780037280007960864637809860531492708631886359954018096739977276728040447410468427291596283043151462805493217689321596834690708810858067798644916257933281070343763725372925253842616799247477860191968479004935998563380910436059701221627790543218277938589090266205067157758088843612957900126796261105023336398610474673216988620164580513729313721539921886309542720406651007533328449039350144722956422998092377717258391133346551270603929105681039557238321841392511080325651633396241866324503902068966705699905757541310748353521152634732557514471843150823223883934079265819079250866720173818363578654680771897394507718944850074847375155602298095865698672984856351934911249341034892899899062369466770385012190945390181798943244325145377276387641072921420825497160061092827947348600271869162826546607056185434266716891314567991401529642467161952845789569906024393178944068507278117637993801229358116618962204013591794543826717487860288066228331229004304980543190569918075580722644977178196993728786851491442242717608392748728516776259169231864515294544948242785988184786655643400591971419303515262141367822144552416138096204280072286684601912233053744036203894800661963189531703536013606541700662087379958503503335640168385458626190502255999537580284318633969801691261774874951707399983765053367752069977657144350344324450203050764981220971396208366203574304282471292329008526043445888636181071505106024959952256537000286527797520933452719700923445722777409399469597082979703814829256703402903773035808457002335284128742266403908480993047515019590996976680738206773636206001192315439174100181676966364667057783689513893043785816066187051705277525103213080631695198263282411061395960882627064102405684954165085555433598273327570864185608033732520718790817811607391294337994276094340044747453508658027519083693795476387511337271401048221246096749701450999939154618751428257390851249146772836074980585265390649796847319142871202322490376800976327948967762507852933892496809405593786668787218809873146756724116403665737698325525558230014942829244404869385113685464540045644343844596452455944571275548256918871536220646792637275491326549554047469130355372273882599414145470133301864353059719713752791087664035482781552404686500354183784935113506990027547787401065147914063867248580318992274593621182673913301235441356349392437808166415681323339896054396499559035573028202894420647077670091676397479895402975796722762964699365438985395796063036178255893796696319128317614683687485210871864093919490481540358189032728914590201565728397689097459895440364009713480410122936375639625674872999735395747201454647349342282896211003991532452818711003883627518355250258867276321724205748938495934741345482628748042791803132634119292137802518366422874968275374731707528537119005839395018781405490111048867123978965000431100880901474574512555226337327877333452820950644985724238749327908582634825170152011122066622183440187944489716143687263204869115593737574491787152086587835827803695517155907349074305549669869055030298785103848463482938970946677654498538179431312792115095224028730750168976517250184960539144736474846674204460452565300277839007353715710087669391206912942927866444687903389447431328236022357782461728118081388595450221701005650268219224071474257446100799837803220206515718590084551455255070128757331416621932530683355177589882874283180293542445834129795828718060750017734698615181122250238484754039039289074631123964030383004437071802468051827531224724153695528578632573287335222104073955219425736171124575681446400147929446167727333000636362689859501863902240528083865394945501383822539305128432060029292533250303246081208805073233584208678743286737321389509022225853691882685259626360448960458136978615173246078503427212388452555696971888279204937581370141912499667459566941571157737626657193329357506910084893522742019235816065603314259159026851427717838125313644299254221285074327876585754173062966077092616914289390061946611326839119986426044792247526305753953038165809634754315075480043598805678651772684754767874913324359218971378558233426601720879490295597019301485954219394420688873833611547266815591728721674554996653067434524504055221882881539429476015664367200950790392049296693541281178594575135444267056126680639176988298673235949536009534162631963848079510365375156815255593499916268663966485148585587849266307788118828682116864116089385354644607991397684765434360779351563795181881098166889873796536477424278056877854970073383053007163778697616514284515036544871183974967430979394887523806403512603569555786322272860099230463027200506605986013548485931260868133477098982728254947122059109175992475435238975730868090843331342478330276084788894634956950392824213579759202334976966417952887794286861535201512950034618473645836739822276648175993799038334658378744193042654206457872677623483990658762818497715465661121284802088708056593375755631682291429987884127505630443317463718758259346330018051020971080394236286905341502076815706345481144522302106262136042109610703385976094400800169026022298147464580882560819099443783783625911763273100004599672543398984140648988850847187963204246488173697604504912169388599493070975691656259552119930735785618767252742978707354384557727219786285897184591191129577536135369190064043604376638466835794050611267095797604563815803061456088996096419471249836058575645886787663549311070516702091948441625835539512069976026561472689849968905746184902654385556325558002521003247911231797463963983337384290805322036329771770752882369399894261897469967071070120028200144636997345004475527703871424833461485610138425740126579136883112606487995545109487244601641912090380243066977124448140827036737508248584358468746886356488300723770949375398150213803747334537323903973805962775687621973631063056698379465993934322040612115165315476696902001624951706885293384696043939565377349136201232261523755458007870318358017705125499593983475487319718107873858924290926383366609570886978005629337774639444119849703558623968640290922665964964209466550669877983782365848040038708693869648730990659843686591170050292820545074750228221699039638781441148701209988403846302186485843310163990756716269623625788900971670135187850072647279364531719600302889976383023658973207533525670193333028823252573419105124952385069063051217010849136322803004454433261427498666815098134452820559825296078220999616872182157467255114914268020445987005101292255895326228361754117770971832507318033499186710725145681489444464640058859088714040381648275842137712778927071732255526489322822189387688743126870122317981717021643269988841800447426475184320491891459390460744826618650485128899757786116345184783570737071638077296751051154087828809302024321623919453239418232508769409415332212503955754853165801235363357363252829108097028836764977481164002944207608393545264795177653165753516977289655306282076897994841329636889862022975323730711515041633686356786385048658809640917489898409547284797484264437051351311166991459175304125923261660216757057552687330739105933862929404542241523899231695683833355592544371987413297235452532810944258228245721879393060121755246212952292304446918775391370048937284695948083256581549984717504517604220223730484139286175577068691874702266509968129813144494404884040942039847963332293632246863166735968357955401581790950100746923795128311248625020596483625125891678560934973030890664455976195495273659326685205226404757366667304846818385808465233280257646307152657067742236140993847410039710233854380928245971840438707653923799830764711371884591907434961291426585715034525845227773476789482714588936501636822417613061110649845088710737154907463422436737442686868771873704162667971893063407325525096748548597526403574747732578155020616807685872199079374290899473224530791670862094934259273784124623245543831543701634790613043633251443174725353209864694978047492859325781322370090320865926558383016778943046283429000533585607254309640993670596648181380113775674753684582466627317800568701143201743229284232756262291448545865575252746588772126707306076765821395112957617084294561335242026780011971935880443053118262786281228249098155081093849968195748533059237447311092877018089076753195311098489198006795292924478613525809173769119144326571513967739227555306146841729923565729487850631657198665652916984396915000701862185884213559830733586640055355009691142485303812282823895490075485942456975024899760908015774213955463510470725694642103425912853144507821755179518500895542415980041817104399636760239764918289550670066963995010702193207756741378337650494200700989962159574630578079168919072102659037524509079518862658860416151836941342373138189360637873671370565572195275904484342854685354361856563700589451018560584646267567746783227456410368592695628178590648208918014698876960543609800918473324575216872252913015805793077618314495844122662010480950598256915914966269797538677827893409884694715984808165595600922849395858850143393359403838462932360392369805082832920064362236531547369069917090537706056747632877793692228974165226249060708804998515964916743563868016718817477493438570127932573478546689280938555515207222607866830027478083829224414035926252830702421815796949459406732051806943212769314757022918605867036099708803493008466692667860242266302740357659876102825146617006766440031150964050211016763084888632545682611230015580138618243982923262628709175446586267423915850017804905829006742082165804140864237711752809469495573710072729674654564073850816807379885279438876428714874131631565112889507695242813523164845142239560472790309640893402460646696692110704413448158669614135840634474431388906749231478958093213303431644756555916645363458503369329265223622381234232639796542023647366190660723739870663455035402783227493333197150771796909536327861328011077973184586247967656169053846760142744136398737219297760279409175735914148483983897331891677469964314858520055618988723816950722701363067553910594672074130783616030416048408654252848718674888092619542522629590742441784460754567757497642290377220603976120964788844971732019842897170575214028900234660705623302405585717499575135704864109515378147295056583538227957107964902135048116823444279206734537574870283984155421786311917819505266507677409590863905762456811898473021878085374597911875151256411541655956439194183315398339467208516331019112799283338157853769779040535347541177708760573837284452991660255905790513538444965542282683013623469491975683479643557595911187760146979878339038734485023945257254633007022646995256058134740919688180793452679312076893343896951812485744451667497416798431436621833490864351521012860209058694017145485179090592178292050130831920381817638171624990145874422382200175512737455066516397772980372493382231004743296307962273249472318462427698888474730924044379029801033787996642178132497845259433871972616130536264838263885740264622280496310014041868004004644589456163693171382842170934367720000580568880555523225127426661878960665571911370539256646571782144281764068659623918241108114264585027184916032130851425927146540296196719072111404204729745375916117023281000628869393809781844811672447019142607608203087251685344443146390957068654120047207860198188871393773893455412313177010260936980247355711080322695013214905465131770559864205468722403988575869817490547764230503717868298333267120772955626026162613711365392187742370517974569725337923588517440520372257068863755787350128073899792928757055465270599589675964625436149497513505720565506930397871128080014323983731312535862524509075446856074383008944437431836952397384906322080629327645027972020708655261170116496859606835995087477244387134413213980663114817687037937096762963322218310976556441901995435093039876604011636610651661681126548879131787814420494595483426671965127378456417340416060973968981166715441361079440504260273123476840407155788295444752326141698744759366713888405383732651890297730629931309033486105972910397156836542984161624463058000140618731827474695805907907940589007436506454895366831294476245909518903135188882035834737672189602942874169858975798249552120125011167157098931828454811081906978429223827058852958024629599694493496987152911252416291413778008544639683580627529042420055636371846290032762285898880543481619965724372729371173285007929734268079538739480520777671390412456117969989230397590145840993394492282713401734898893592724827868900607917195775387387299682039408134438906444381525511825569448623354352002427372699778649028531723649663621619823838404921829727678833617172358208833591080824763857039115401847388692460254776813107612823970140459585520944579097584567141290026270999161596678365980890197764581814928186570977391615956919952887761643153901206488511870616064057847310725640825629752755793290463436689669735799644486944751548638579049564321327837350570301819400812697870312486825942544531222508419232870692649510462119577886574753892040780517290415613122683837810145135289845240287739599096276160629879755374598175399987106213851415064717712550245377580206973898886721894729493915278156394853410524102030250568151310651734243781545107438044903853420435560793379014521326625846714457447348064791210097496803256105708280301349033791649087727670627892520888645312311088797518811068082239650219273925967050152691411309771236108788378657179471207145050764935549272158667185316166032323029293451667644008263158170287826432475798071340134308167552425962702643460366205451012710889087275952029059999920878243217588394927394178048001999727265068791296139845470175494258415384218280043756129608601775266777062652664432042336030044030619241676925640723513027636478748067190712870217315160900632800872802295576811133116006313682804612223270709557989617112335065362825659559533206679065599400402112850537738883990818199079608612230562742816544846674236253038106260298165742393925392145046948474793621159419216120843112526290786839849163982595776306455778592771725871975188097022984943217861213864225295713237816370336012905614084646678862913743027420816986360041764832446244813078953927531398432342083548568315545767037779261729470809573443796958498844385265144850696804162721152435869233120255216227942961634386135858895029178083405200519036725458012435161721450162672795141697376276826268679084794360734875895179957671446852863223561084160271336282347823622756860603020924505608638062543665938218513728669824919293410779949254759380733892490228131088836285576223041005294219945439243726897884011162174491015500268990761558845240974896649358486659609239941713188616170534692409719167024491643103366421245708374214524631180003317597905467263710638005705664718476253618733817070177637432581922837642725526157838901209355949089575403924415430703087793446339801636048831151065656825906860022739714328724831236849995120177817862496698501651340153468512876959641988847592317956759737552987976998346924000504588150685755404955867636569874866511177410022498267041051427989109583768434774830838118558836160553392636404345192624985035270295556379153969004801544949222463089364644743164604172788976500053999440984510936651615262524342560966193576748864598379075507237870225646358392696405647177724271570683945821524563155857326555486956233177934410087028659508814486119597889811777929828813600429983875225445456185139434405654825320632068353740666506530531241070014719268813457738975344843828708111836204416532856138632271695093059663183633790149687031652772568362999651483652133055133720757916272381257358754906960376452487949637373235375730998762024808903104739495313163660583336761047060150623307760502211048591704480701042635532421296728635720418339043452302778515982845270173860699598158121478770420898373941683096298264959557699657295567872618656759228497391130941341468585656969152691114238171769978586906278530598296254169890365444301299810693539976769501883142484600259285449593816680283050992671888959868791508808508462955362547558459540229724592487772777270965933670012220621002034568084005961092104564716099875006062697829370363953758081612091880603159844700880869317247005078424882996339522175683946608371561350153521273794519904968375781663953580931831923673692807259017192887093675548035237546023272445737562647893530646669167434708415073768155871222724402549662661795510534232053018201569339266119953704099617136868896948570381850032797263316556055324942041107956613072420272314177847343834555623469165882285775265647986436930014825575606660868528561462795192417163934784005881514264585178390603417852005698359476110851194944997996459212132090790623804871087028101680067187649341883940211257158608771011535317850409431105342416807553858586892290037192929506195201125886594223334609693957719223861483507318397528365898550175755105751465081106212019622028017938426994070159232788540939311380412628431440542569497761239032596397323953494055862628010809866866365502116748671681317506476424911465842312760556084684843710115607190680589844830223289071452746401932961837962434695944385160810036021384262294992059257543456289730671275937759715317458477713392209070874334282560562188290070791688570100566511215089345636841317165440918051979298488386117235654486805407586065516309799263331229423123183652746826510406550919207382437570339310834969465301397928312575392624200807127506733109295875106793510490282428529671620418479289370693709536714390301120143611721349688528320417252626109346705289933518897725314645046322771456759582166602592638207143868921893963121653162278929291229947431924998984072972460593760744294079941686673804796080054173556322294415470903153460810973810262142368975638453226213421763191316627858895383629737563686511102024279218033184145540541942939385062787736360283497867309628333025358639240401353788457941712382816224194330221808413213516306245334868091316161013476467100102009630471762832104771505936037389261338242718071775579191347452488844618529083196649871773853353222460687084743704882937731517385781173762963434967816900190240008167814091206189022806575116498345655208467577701353550286460029244781956451285207653259085711290519449477973741842040359037442098007003560932765764668953276119490946846146882927091933288091752993014602069838411494045170279261159283076249031899248628251895882881652661127401786141772667438355582122446890527956551427636194716835638217135766720879020848329641717705943979053702016068324713818053260610236919661595300229972291371442487856417572712824537601135481522746709389786150852210077798716908453066985797442624432959158594010588099350049636011523450815872603257222263195675505510725643419853254920836778732968445123004769732537145881867550330924811558373727834328976696207720634130415726439153715409365325986135560848783048693038463152220476677439004277959379686096123373269127785174027174852878845234493464484096014921555551252226964419051801762436550116311981707108867289521828133553037471571566381541717918485511942945498537384466236305165592493754812023197605839084548805317144469874478334965647162393482483566735966534739149558595751891470237301025621191084852602672923723492107364608284905083562238826174970671860369728502694367831986856164314990801291212776116544309022683558436265458610554226133385993419916706479777928501388280518752736106932968924112643132968347539793535184223535430296099721322660616826628412132115123112279976183749898942176759116362753121430906871372457110578648879585839726132909714099660017912802780517718366171757890142523168453051933365155686569205743117296998720016637621422738154086850072273554343580420588888038188404713535794659921338878441153034838735865168511747613284934671044446669896242136319849489375435913164617057582370361681835387515084645755155039498775070338696498975871669604213236542729047747782489352235663229008624110084186340688403186163929054784675782225296888373306615167819450510272100601539587362558287093425247584942182417731248621055761591554525390159558718377325875887121751734569610085771769632051652299904057579450181180545056088262430786539145739331847100871084191182598923705273938556446879336732924773451572529251945955688257984313090758232467041097488005538942813740302233693404008355232689808891612125257224794967970060566355668673386140048659166359683105871186488658579195916193530365644771878382486504945034414167148460672657646305104913647991518830629472648661966629818691795401659746805627444601963056226191202611552579655281525262433769339404454944369581072700837714655641853480451332061697153493605340323750542176515310526030364818436446743974024439283438460987889998542066018142376376942029794368543755627952249817807471698918914144300735214098346280431673362083305354661006552421776524559797671411353703021332325291676754809317596321565970491143859811801995348296511261680382464571828218333000248352846689059048030848741126171540056616564962391189271061539329872388414113027393049723427176264041080957143525128354697617589937618229748098426135552981197263672090454541138734074044385042359827424645455568183760505964746108463178280870750081319980288458258518469730885592754285402603568668393535660175608984829651244847168560939363028601702380983236282710745725962346385530209680896159117748792641873384394411136308410805246484808987315556029851901123761657157837374390303727497668576613857369859246476300619314224986932250137400036391383335013626741287463893372385894851054785013574711641881841529601939071935773036392334709969062079358472274005829675027104239297749326024312463276901519995557415041786627180769524897865873334482047348030320562759092018008181668370738342492038375478824251526401026691102355897478734230949482860995177625488403385054329879920650595177091518489371353713057475525862401500332857001816179334331325099168401796919160649407129405395636024501508255363574549107383463818237936752283936158171222414693630610137707273535895261039575174040082499674370739268772666646466677860251188075843836825012496338634380408605513555979515065114488027195402432994094024579975305657042349445334715057965676193301276996852476210705286389889993255593323426579573823281449426982457947403325931044678234182788681406915449486706665050247554160795867254094479415278123918254577973443943704286105310714056439596818064676970992796798048802116955631043707011340568534034345556936777517006056940913900416930750662309475796022889659700554769518940085151787243352238223033009896982446367433427773778405660313566360643616065342385775283123321958606943283739750989689185634626944844889269621385512901640367809708491596688836147436962061294985167237553547541550321815078300056582507192399095637754644165345192181473317919119938013834077775372328952491258234636692542927731903883404370371882721888649966746781853378279741074622414311817791082746362038194073010849674785076823051658569940824463774040793668793146128567208429286257190144896791837715728218674508148984774013009289101618251295660872224570790688297054749667050467433267501204223654058135069676168935685541727490942769387295745818148513358791239234587990613936213725187657210162751187082294716405420059428866919590073681091458742158305708293137968707231617367490212314076115107096275967804669817126017835581231177281860154351701968502701628809656943108779897522114481517909318743936362084811063445940711483746704925530004882765430744966653029025953521174842266409124191093335313453740077542916965282123301979380862329208226474296043865570079656323541489229228924588238011742271224278218940211595146207125810169322808309111384454460576342559808225448947462667612492662778200884018226333686388600964737443531553542079897375826561944004446696279108279944952977499652374453145178692771933729525575843442635796704874629172606991370445917931161152437045237955722112096543288183319975596324758597419762319240503140774319875004496195474309231830295372701811884107388016246428523603433807096105409207461680697946401024295505305399433305008179344922133389405498116936994834469793492867154770728549783087006216963700265437814361344904416224151558863172167923801606055790770932124694525267667286089210099163739780660464689742715515359211968460169860803779683155926399641419068499975241516008526610204833005461813721256013057983957744466796489785933464425494936665384648562153875969237951571265316154212336713679682958960271025606341998758306487402181145579339972512815349323588276798890326432611788209639937969266030217563587132210287515177588063447280043984229222697011614831179687573135504882080309477906025492613293817379091817727835797533518107243772666253302835277127708582442145353100006165355697407496522482051913246754809468949890373399258677080502340333796258986175605840753974923599590215436726846999054137059598843495314815019561051500032167298365456936418727780195884118482153096683406349708990227456472878762694007595277772392271140562145393278553063309644704191771915917078984653616932960213931975179913642205081527127721317900950918519526246500697345642948715467139501532335451131384232976326458654557057502054656048622809505566839057130116781687930043679708056101312244735238448139475581160291718088131150879249504871986989316590798358165895995225834441636258180142796718128362415967083846202838556720994310110304269499136745080213036613958297387263479128728842380333686440322215917389656047563938011787319261289459909463032765655457261264876375700796650223179713959722818570540022368603546606527041433045273954930021259433966437448896923806479601048023630028517348072369111925362919021002734135958157891137811174417503020764592547004750486117376461251987396606040617919179873511756806618929960375082138080197997639835266244694101890616070737915266112346524121441347469906104832041079308862745069388555829536646574782889379239657033887376021621229799541971151136883948249064806647759773234462100230378710182141704827187570238994887697115017864530742686962982770883189029085290912525423124752826935401502532039938038482949132833311988211455764410839325296214638298627789619003048864832829051742841190065477131534618515567443778525596090950319743939179629745622865964239287296120624130445414163913495413074453883954457225474546358913553608627679651463054124379415511328586252733582290743049204315790071561567722387652564773661841862193939816303668306771871584292449944177277708703255182697250111657612990246900522671574302448380279818610395217141446380108850742790634253149967034211382036278761226435193773225694654703246993474191547975357371705643601403321343050463595599490432106113021913993933074220844565655960507349012253499219931852216111967292896306974972942525475271089711401594632531986382180528184751819256060263632248243032047048871795843422882242291584476503197408684801652557014311786216977233332836535694556565951746940113301474731135867385145846572472451639552740144796908532992295849093775848180845396202951272439656621023614697493689799618933256499153018131300978769738610537322443142599102051801287359039698217641434956606315224285177942649738890130213745768905235478788026374281711256536160363395382566870421941006527178010450418890369742026427662077054899983864019863115384783668312696528004570532237664794916097382448308294889457861869964175422768788099279765004478741578134735651097006128986369040718813172565634590864440117797190764905069903965934985340978924541764270430596365815955331316183559722527749961223561916603029027006517559145895448704289742229710617683168464285239730300791035661662352290167500722579850660859114720788521574904511785057941109947609698830528370240102684709688979947822229692966907485957770470695197574785580564299478272513125129133943430601196595537151487223698497880093727141744981024011784833659369349180352209306784090938132309384514841423413499353955608306962561937434333037678912738981187284616597468289725314488594588740140653853974455632036529158813466886540674847387051269279154036335341229296046777440096098014391247762522685023716222459226155826783879492385974110755782591394255958220783427898579958154912335450873126939650278597267723186536733813039669565563006582004094261260986317000509556909670467370678522000351214037972269011769015996079312518094292573453264557292014101553142121465738778636074294325216297797873298783629881667088124166407900556170633153998136754379111863512369528176252116065974893402512149652397460455356217572710883460221857066719115918001883827661572348834406954223252143292954509811136958051557216963531572500728028969580123880420644713876969491630996499096452309008347012463498592763727421108946877103795501933820798919792925532405273483399199937820999848235633168271884657657147833198833496770124983886722664802702181074303281932570418509209342382234154804466042506857336873537494216454704831794384006937863729556595164145205827814659705975120277678029881440324426459928617991074947560899529243500830922196579080417856124322484010479017457036016071383430726495400308570268402911645440000172208264788231514199574939567982489352741610793391186298621149860826282632893517556197044994539013506710922042685988097966751394687972286442846782514200182593598600348173804214031514772201086888894642270465383877974804611989149373811743771734847790477935984414182044467740477580860271509357495472403482708838543182201855826340645988933184378673231707776359220406756628206664559921934291369113749857018884230297745928431028344277496562666086133793892134287590403269795743083017696249714798871562860212199583187578548828572582513551709033082949661747659631791937093688174635576275328817843842199289562820376302569362958057569104319729421910406724462523350761055838825785905623162404282094691880713011080820896313899493340266168398396994216348337785360598470981605742275480898626495051327929806010935435901052338283074114798756878306940682286234919517640304901970280970657641181557701196663254680589885421016304014080856060208963317065114487738390712749401861054402146202245693361064035854232898485036447510317612471856241621030862213545561298939443937574101321902146244678782310327990850342108108434619139159358476770109996316331401332004315591223788546967682089675025069338787259101107801464403009580293938513323635085962039595882131996503315764241852753416232463056528173958646594869256725018666315704567232880314362482523873730323162121819227226923274661754250939309818307974472369784110869484401816111597301157438639981091598521784534854223247231651909627099910008694934839136563024995929499237681889172201046948040983981840406448769422196737104488279569401738816286166643925162527225544314480894486790262811545834530448962944919270707540539447671499927400292988041141140111576210181229916219866892736480254038410733213799204863561285201976444758235750876015195991942012755646054307206424147163532259957451168479749015858548071273093430521252757725702854171440437892540153859743595590252054345006023850048649493537090669556077555281802850151153493612775074635701866479971392457129012039749475548086096975615102648016628301948448604735933549224198777040376453321067374542225656739393669685172950460869531653356815159422204230066761361517916589930363735321472643214170765695765323718364043433543851699641118096738546696911611846818839067474539504737046138343052389468751672739336867700250762900572680837078587151784388660421902939927096208786431388414733537072618135494630947006177544786983163591480019514030827312737560725413184876945126319726543236144551551546207906910675701932861170658749523654365169186823302166908596103980382371673960128912213925230985051782496320304478686993622455873667709174005877824305068352247050387839685251218955351836941379481450318268023501186126339970812311652093700189330457699909712912958017524242959787501692761128331337174827626080007023508158903593433809061527704616266507214244425999131946333357494565162357545191930010135041838356981583336996842651308597851268925494929474350767359629600622485088833874841525468651175223026547731519540998226455592774728877467279306995949534423410935935180202969694746880675078849151749517279886359248021158691771263018535821296089550532200011083532344953820474373017467489701902872772101845917116546133189845750197535414607887131670012485268525145525676452049015678939136248354256609843117798776147072975511634465233955090529504669877051800853626905760539485310288928475624541447133109814026311744327737833421011102112550302888229450009195374540799034756670865609587620851441385675619814547796230656158622019607189895372548428846806326073244581969747005685615049789006763649919112701899141441198222859155017239103363608125546151301319953329293957810370881296125114633775003292533352326122465258642503471763119187847784508086176021009009460332482224394757440577706083217006933271073374326019985743377010496733001241965537849879208415444556286019785783866006126593132086728270972916455378353558172517362211844625383490521292482054703114425501534059575530906100386321693472742772581690818010655335046850745729454380233361340765823032721910699653038717231854076611530410296290700621539114227483077294168387731433008067152788288119046417921907640980310872801731857917416576893306159899647800124872426823629327255989741916677806921101921364930932499093749961785781281662877463600305622478947833755787454169183801119332194925122665498672593380225785711645969635279831416772947116573159565185155753319562386534807401199589586641241772984790871207358400042438592395231200101170272957450074726016665240548527735723925163437741964970908847525018717592212753308142517792879236585790194714774142039178963042044564139792054772067693488807337584107386620372465499061210773517699329064255828441297701802252084661164323013985390830867074811496912237517700667084111331787652136503688241200322735081070137628772916982602096343165401233891023944283406377359473373911051537421731963380596557290563529503720168518887169794378674151756833928810833546505895406634092580521196442567020209784932221383877560875005775433251634111040925730580601429966894336606144625175077884168259455895830571325366383269395767908824814770935201722045934151575823506149025178621605057137588222203032111413559786721765094799552112148002738756278273535859186931311473329571903326368938028931207228453603872489228039074985335521277212926433821971478653016894179115569307095250519003064295070563198124057653830184999351835384194857621563475743913140321779150486402789915899819752287915452999014782082352440024382019825934037565275424959475849600439956512858883860546005817401507205452219602277963217512143610425402843831390639735002641970884878476973391840726036504778369120905900147406696660997272979409315017576037994754781178237852818095666052210631810381614291138115898658313050883610094890890416243892338590884516469803089407754442284696808461250581456762245543349950430394282788440190382678602635057468341398838175700214578204540846067220861370456164996184014240998322500936818199583007200644943447723322602432208409238595109160759172316034773669280134757215897935269003605458811650483025340594187040177901196322841981458697458874453735467539033656832224229081572499887667508662807846733083762541908106371402955422594292653298600011183013267995742390555124244350105490313294026978211965408323875547300276565845691277360568773706574946717937836951341316158938352217883363948977412677118604922045033203228738166385718562874898541333881165581171815390838144966136745346694716964820046929572140282634910126166409012503751199756096023085907446498965277286867891717457562983521922681660519982197757157191507448923097439495079191653662909638200102792431082647727512188270869513182742863317011406614099291679416441767127901870879803846952437843933746895332209651003419887003159549018156446170401448606890882444372433159308418505220034099174298117565601900393372187654286351812813188000179779121154028525045138278685182158700798426699064783114907745027606905911655809993425756128212327685071730817189719077999769866008253239843782541870390044015457576211431826060878698975370902134554785830209878945002668733129726286264723236324924921149165958002788647218811516328927497682666776217509912944873442312531141864779780461159809170839859868588026700029832418513213143547165793079787504267122780407844711424796067291011497019626674455772447144900546064565125895165937137140593682079122504078945538262806702668225653648381813032614736523091921757660843917293664975412848491237830775011623135336147855041590158735106703813937068329225770971333169037619305605909262787712497394209025158722279752066811946607076708260530928729120509753134335687175383992941294743980759098368408217387709283581119193406025878792722557922860505066969664628377152429850720260144401984271992450667489977718384660876767593085597187040924906860626859345570720432527295415913815935704143920683437970076961818117062406217059019696603981929360308704389107495940020878764317324659008869213787750318042204586618150124646959146961643262772993686534388861942208045078967582965963223735770530626670310801694511727212725624227138088594038169917011986340979167871894771070403998212328678262546841494744273214622168591266810522652677702035445677662499927736668410606962737656713665884481657240450115581284626647675118642973228417828697799815204723133924185223004496771236625343451834030163273116435786424208873460839598387497864710272534463767116954503262912477377664945929032421635298173529687073962117983446924430942086941839692654612073690888267977725189159930238731215904660946626935274374005411880497644187586525626644036312073672877613589089638690335208348181828640892230824715591665013134876372705461254408416479492712219443587164285961481688829862207169310534309457626122518174861503511763663345581931744587393662946398540555511334910652783213969029345810167613965652004160882333971511088094306235162468687357111680410369777623879813608792573255746313430803626286079599635550956576420648211230393542314673216551181549238971520034775448552470256993320322051432027342689279419870628635646939446299165588763230608135141214471524090662922767986018038815011949465024915574647380901326395450266745044003733591851766247755142936289912914136615650992293633807363883249944970775466324909954846600262907862573341085217479706652261348749170089020456985386504239677282028155881757654950511184496232874771814234022322940535844975491079478955787374436957762236626329602317363998796727238981451059315176554244610711277552627640168024947712344660479694930293485797797366219179800799864893534685515477815993752444085578558436693335207290904426392480956567381168346491468489225560265322844224533318659694490986988495863004439193751931467261315781787317381965411904661115040266626974661403068149359412855767834113501207068581362445059451999891606327165418018096096793532635169704437037514509893053210513465192024770577444791668373027159885880651621853258788431491742824614749670944628614873716851333611493716776605403303070401552086952728376626934413754216675606787823687387834073957882972277924014985473882023005735145646730037987375049978065119748044946003984103738400208549232707738139600908291614383801641158700163316405561555189965162580298286048758059281660146008211534750942283700587065503778781194154696260364122794793716123932225845755172467693276838101732636859359436140093816101591665482592935191934125683493840668209193556656017771741613681968543059220363067916526821703751619352414094218445663600186881923584886507678334028087669575323482347658196841330563952550037972482675902772061153778726513809307509147860917934054396001771687599647109477477201968150017262812667705496826873444232608246548040054829771643995095612416761922077038716008932770073776314130125939960452321763653070735173009350627933738958226063245656666452172625765653510856668345008996557862618991512281063348924658095826217307695996699574875456185833609932316296707219192267831574197780638122487584031844951431041309928636932982032979971979809077140434921912479818736575546724503096379344993575859072132014836474422630718568437256571730120305446429244546633045674250875475336724891568197631698416125632182091760516737853314310135835326782425620825852934397784703668637926287253444689052738011809784975740536834639725553973205419715079762152473014239647021016803990662719254444283836479408852681779923624047574221363883022725789860571085113740427031213878346880388520769715442379983728628379602500790749683206809135145406398141398362935292199436514126450891825803028800660401134051523927790433058581021181350391332077024016746176928283813832626841278658922844270661817577946032665749399476742032386001787935032252251733147337746008747202449248490278785063455660614467738173245588082403677286794478731491196932622332880806993223194545187952729985716588943787569674690198441274431065660770634494962836849251311554061700418792774087590182597930998339154633055386095862935075498972169816434717887182343473401445562733369719965456049508368800999288889337578476184033412321586349608359075163900615016391439419155388210745690615924845813544427051466685695116789665891044146807617838261733963320141097008144017058090047501570674420597157182348303368445257125822082980049460901652574208825601608811784636700493008362751160258429887277235931325272903517772201815049081300114773172512839569929250221209482864836334544759144630554938972382663439775159628062857050799253456318620764773278175645601851641005340654264006850937463159768828213520154621942005370874993489834620417225688435782275998764217389168695676853922776620294121437680837253290714479569073628954199802016969583321263261467162418703852655123219260340653368296149366474005109804378278895782664684812669700707995159720902968673602595575453922563190595441276004881822742850993411742666085061387518516845819321154789355125634111163625019321429168672746290204281445128876559906002654957681517673187455376285052238026014171337988438425746831691472450240130940015669221121643452809058603178147587233889212562744003703386821842831894392442979679456691487978421192359940937472379761221289734808645223024040820700449267545488531929046011364362667189623026695725943018756422174537163690373035477781060898554427444886083564846166530758440084097844667722894331339960685588225634687556110745288922580616430259309022998146880887863882709188021276617447434928018087164806960933908966298457467688685744392375861632940922317304457866570253268289645078415395307734614543236884940761944675723218694279873436250877393605640353488135097522174335917242087466288060446888571827218187179982050723636174310199653307196975151996706780546852366812221982562827269800553717383067361980076195991087026884455808906832918749059535077625837148530048950043155004043282311350079081320909682785820793839200955654218410003008627741455923400666042999786236864401387078807872587913535546212780201728217947402303492179576791975234552387441577940784040082720695718064594842619783236307192938964262581774808696606637936603004871491343234496879017540961638855306359104698650761015539887875984159183527965185827687338423000758979988207878195854328202146746128213651043109593598612329036469173979469445091265893197055175764433489186361014136824130820471765731928792268633030289210049104639529709559434203860115973609704948190860356543978479166672837057618437622900022526599123115894604709396676970144079865548583390819883387462800755813076899163518445355468873824752082422247456987951748027917653466435417292474422245607237414863405911686850813905955625934311039249476340012104232451115626664781237670060753164130734330786502740097885071625161024998463857130977581356617051012520857427731763146436983711935580433952163518938654932322413897896180507210206867716574675678328361431869736363580345699012863208336264474698126668762915346253794403061793311853267104180026490194771346646420877516863085704625507322439725116285868755094725059927075115633952683496735224039375036573870457913529004088605679715835028578917581518520357165910094763059304475124095891906312039644574668741120699978053617588089219884953825030857695199138281309516533106810761476802982006190337768508535889897544459480318647527981452691021645100261435840811170809027566172415870931479365476298662339291083472712930900197977788368061152756701351240405234534409965910490070490746827146577956195159401457367362815087504833529530516570702668014605349036062372576794996521491112165438203744615361312452722020280652912992834077058061143828435082170473993909512727860031775988946437949486458680824668593643035341025379860191461219431781671598333368138407011363047112928397964878627639595917147654017900797803973162839396501218308861797090475481114333571961659844717266430804809822988933679756509822349015054249185059744492898246545819361304311602114965363300922011105378166052994947656712699503325170974490350489705559703098601151060861030987585930662910576546983754750916748542848237068672034754996695978644533574372799256115983290152775901078221351148327872406495172557093958369953005829520521202746170935097537306389155569658045411894554372794054965162070570725817523577563316602803399653778723476292788500041520870651869817642603481679200392627150232252381426114097419537347594071626077712199946979003475673453482089630166088513257064731061103166137644176887105445467296407913499719954567419397547909128937340224346154866122837844569563016584494459430901237884791812617543714999062048754540969480799557963340365773953558803390285293293347427725665445448114839116184710176951939193708428824041308951835391764430968398618380499665891386614047599427780767589388082932525375054350522866457872610322679688328811170910845192820539019866322757470099634547242120499435578082514034026999299181187654755422211236647899571577262011238968119123383375789928214824898298503321439172826244784638643990929003428907782173968658082399338611961404006314820801498421284706477779503474696162041009967443473732701870073488032050661993711235494471837993684927433491797243092882591467179300536626927623749563292942424246106762711814591824323973896997084592923764478985378572330442814069423402455405821874096879307533634006225732307688048713203458639191963937774940499676539751080736005214135276149084947559416466000049603990057752700614215456570964324536037140258025928182302291917755748032921980356117916389195012508687475678499705164164997169436825538484932668776701718987668718461758761622324795412826899346835015907298110156412088543241711235193589864088196174351431538157543302918279071164143572005908353627221683781543444014574292360135993847363575775011318516635488934829908990156745167166215162606187700119237040156618284856385367363786706530976885537631653250000411365808100688296168917163855065605762053981970188357426683417159959966622457803847632007112569331921580186604433172588659241772241424306123461451531948586446497890145063993312087524652980130239684379037435900737195524652168560923263026995897954377362881256208697177282624325380061682635898171213534822606361281609436813149418238683687796477018805873238203756187049111820289240144657205716992239981263770517328610784123137879173754372944713568792375063961555113164777826310501748336920056869885984626132761059386490663520254517307627365507610976511817447726147325030038401807965831869981671850561077273047627746705161727828951084586217339503677190989974541243619057727608052259441461314590043866486932082493600333816788953396927073603301730671613423937303687227075733684400963862865594174723202651125208011416200772275141635251601650688583998328502084734686761478692387718445838895442534724496209745778703669589730525614985397971317397947990230742041686031709457785496152554231434579548227318452543634647305610695928892537414369573324419533088431365470593477173524650664854255268101725734742217300853664166914823784731142365809308756941322573974141347382128104827745152485775530883929094314492323835362464500845794705371671717844651987619960765410358457130750293671493261842648677122988344981493216557003477295965906766235077910262475803153908290813993827295663396421478378861713554998526787883208337408906997813223009828782903208852010083322491652088339270332431225186796951854993120435861410513493428225744919395886915689048678567836574799548035744684628786705037379906845674450769779284089142117086208380539870020541540156917663105895845118613543463964906562761195300765375843820127412655992626793570171596914875794190158548973608457215353602613301171064892102467426999800763100710314969377389615457727363536002409882498143345693355926738715499415940464943957432194465152960629349050186905837118073442190646156334065221883761967922535359796794067359024131677589854548000720293973837791505084032934595875668726594638835446020397508930857696410323461046367474599970859567422848269946489283078563675265302868233679808717325137678243107306433446648546003271048295616819830302153400886031353364649354135506361493558474459268670719055042370654208248931195402640886343775013570576984656037840759274636742751394464279633321056688206504205711339030806884662868937021694861445103402107285533300356915522352002611044627262238268638866689890686222168317501736703230547447764408400040890854587962364183382389785861259108536296024998744119000134739567196011766578332686801870202037764268466132941366897585994419179898014778989043015497903942492346313519133468013234594028290398532922423011458117192140988050871833392266438037396154792088332680168182716143657591080487666916525498627238184882855926459829410876030790849017757001836729818273827002170893163838891008043232040938497454736752473628883683528322257226356074552456970488648696071623535977397599975150059679496394927272746473117583920144557531984848196764307461915099336126099462536515530319020206055365267053419579727935010808357289266803890011909602711378063366130525254569082899170500519202334841864987032748033298878149966405374971749473743834477051902124544433756743551637372388320745194277853704676676814836523606031495723330264800606757505333450510747120261692577931063100324856376081567644694977508495595575721192641230839808132474749860509156041301319625099652276331112015439439532749634788852656542637577247720263713825362045508471905383058078212174984325673168345429155102944354526548367303340969006988349075304535701633141656204400513651675820857436357723778457143365715316019628756969228057732909890164579576359599528539009850317712339045931161301084437841745403547636436434743676415000343344900982835036635872704176388400266710189153836344857404563139028992379420277024107943069591964112173785786826143457585229899728061037404717968087904619126781299085084474778059412516098411647216433078262859072596673282193260808622119525521324543870882905735579056723694532097635962563218169875739879977591155113713247584444691726288358730272020115709482526302154845866294471957063870455461916741006672670249205976555719405883259716121643386396970741902058922639000163971489434394704273240327261553328043347823028503526839653422499229902959753674637331155704236490565193050101521124670811998589021590448272466669557993080920822181344729737973450156050970533756166840311950471520559272449662789908982175013933534268706423921275550790865232246315641731917534977268735286355949836147048863169760569221079672622987359156878334007305124044989769368428507118669164808620802881160404124904606282341175687658418473388029575053077234135783989105404662871769795983431330283961605470712538615778863070481293175055204835035820973448816854152840579315872050245889866004057483601668674847256497743655328533914667369763129695751237872848877541648668674884915106387991542517759076881927545873377631454018532725830904598242017102398854169524521059655192577862276686208718279289545814049855308725201087915234224530968996446841071818651278746671403619448114860125925197996150687086449847881766790702064964930304177212004998737710190027225875909262026231420520961190897067548590166855201122688875234129698737225497474200935200203854026724657054251982254114957416789780725325607530992091151387900367123623276994207900540402666567185595756246154422649514782687010551894834420055004961343590141003091467104492754771135755817222273746747983625913978077872034352098649221871828970499246398651218889138049647672433506168536345025512125902902893653960501502144523230603488803146713372508316672645131790730683898486426854573895300404634772715022790519254447853389901715136230043360199498826012742717510111841656722129869341471550495661274067168645971275320098486453488533856592100526031765180801785111853481176679256138013717314114535342467513412846689783643803231371927567315869869000539956882205307413118123292687877811910553069254547478819562194887000648608626821104004561030140026538651337238123820908864078255470683305135877231554207644875590467575487215257661855705921560649593107058609901461678788599414132836465065144486167065056395381129023102548085008337742108526885283831356890913131868125623972607699620165432660712367510506067038447143281922812032689817074037255611212932437165237303688534055068356819655492443445335014520420012425500537804571730905108159042935941086711354516670459094597898552605229635480021302472244498672835638110175731793784505512141084955910321082114898950645385421964512149053322815223585800303126564917593407224854622529744125741315133742867509850150482580527327169437004978539923788916938754049922947155101325171262743019945056117320087081522081283160879433950561133093166848917274945668956903432128984656857409607339911485242082126482882685773289746784945031184571905210645675110954124355715174587030464517661617096857765058377285928153208732256784589130732520785953769458956213024458857602981662833288560157882583567807625525459497148304426863035973603152160439137639853641150002850740097217369956031592678026364720844389987713545312172954916189343847963051208690591141519645466607103824028857723008765112403501115930888241542156533395710426501539029823221256735308743529635017834999022319718462550386400483999162609287682283286140937792886432856931599480137760401300233717603849291251860005160632444910887624985574368616305522448095325478595537506548244116511729235622863677142156595063489122115742674582763147257304813088630483429746062884668750306708446069474658744044118481372871845519625823692106015369595586543025374249448141433936793037155530160368530955777737704548880309170984129264670498742108767866714746484535359236315051402662498974114683374372848554120205843650937451914244551766114073354609306876582698827699321900451412511675455611975105702002741620804146367073116787749758725346217614978010002350424461302384934263397149082638463554560333745156022816719792082065801383187405784559729521231068587280109055398090598889462871377573572038679439944563294737216191176806222362476820205529781854902640209034516846919660644833505202098383432695834310734082966932567816072381557605687551312141563167759431703546205119678771704315663538470587157059675977764314308858109218997561345707373785391539535574330511670714772998959195834432969187226158104516336327589151342946346393347284489689821007479433285410331115054098197285125941678798283055262681795632010830036157567438621740076546472758558791622447198183658742045716808006649919190736164663285847825393278316745957577718151904304467756950299515128630781179862590565842997256449476322605497771154108447137331536151418411060007546734461932890865876738090537083213318950854140080635748755189378932085419429916528423465354268622423413012382420141131041922839973047441817670548428277885528385118541351865007662243501169171318697546800246442065814865678939139483380640261093550514697726875049488299669446831490918633948324917905896822820632437730938894652594122525984729147340341568150392936463409928648096378056615106958298321214136763976056045804721042117592760118897118421653079068072267945966341945520028375865804414311800568231398661199228477755534170519858929113301464664143649568633599800076299207227925722832867391583833006445002985663971330522214706098275720333798240832684023884602392075437159063159637569192687894440812994000105644430061435665572846199653555053155153275190965879899154905210882515669824745893535188676513584188710416300156378916140229744241435315929452230278265476173306508157276956415293732895241630797008404061898541009045342237325832219346261807375701894756683315073895013710113032600648641962490144768451597732832158051017625452205246851811693880448422730684195982939508971338284172827662927709824395672401674618260701366857437634134409827688812694590692302597943617741377915273730279143615683950748111747858154175788127981193783138791219591170955458059304167312817618268064008154517674395722530316295819194312341589430914866507364185388436028559927894580860777529383665236328343894617000683151459773083883055119199327797487101094182728273782208520388781994655797715528822575680256210648525017411557863854800487510086026513026809641771302144224919850933296556304596495392523516873360483029396240417488219814543363455915779013154347092220741381699454479541628770511482560461266114099765184413814287820010223529096401912622737438800883274361197402391204154892122784645563688438306442127751258736441776462339999501627434873841503990509995033132567645161093802664233036192333304352155751657601252229909184154299409915430138254005761835357920056456030759090868212307411701756643246855163525570432985624061707646996901103492419294518656946366788996084910394703772287928596671550378033427613626141857995976558354290963232498360207356372527442786885016360877213874380114066084017287002284963431023540095439864896298453682840178810756257966246597810604727282152717307584320765278260167717409422275530552172493506151880792905060327296660422781040904840722288955313707922758390719786571122711926226182784890447152298707982417807125493903121120690492485565123968825416330881048021960984174758676379496935149625707628450624650762786710968515945155215548466188626382429990211414729289276764746275668411251845668459902395128864511247161558378415746692741068033330954721593099743996151873342942486301668626126576605330909967627375367050793066045837318954202133318875198234229575302758259349881133204224678380472540476242882217671696012644078923413330306872832543561825755584411798740597799549926951235937747795182996765079662808238946622727886805700999074910729345630520182168496608800676880127650585268739644664331852155317409958591035798888787251157587634500997876808073383612253563492924045285690352972881757308443693905192650702866309941312968245912366415941768900626597561645954899628495641206627881090594099023858315164686702476956587923544872253582505343508167169490707845055193355861845630037591795086452828785051869646425673822285902770004664583410620795668735311992599457116126294215323639994777410143659260233234392293554108170312065214328597175249242792001441867301583173793076950747038395726187882679062523492149775671461589467387493787747344143253594866040576741568019748971327860744663285603521428876726706836109728467421359143579049806470450173704589668802136723798013494794909185608525910690902875177740267317574348122113514259978994821329481839175093684365194910817511865819564284846579652025210237655595848493201156943654283540292387163620831434146180793492883553175438677088167364932749299512301647587569799582389876560214644189184386937760915601629268024799826894387875901489300330108002181684097079257353800147986277122951510376616091823526259043887818690709406027583850735773129875061369183927379744597628625337518909333629898059779575150561281128126436030376568656772121378254154013773773181114843466800447934916843677828587316478101352900671685925280716531021449737858750678367118682556220072957693636630879022263467561844015324624112435482067871395412541114418001429082839935632781271601608192989521275829704110866060007774859082560614156353808247104018018408836501334678439682516341314610138978994299299181424918843496689039743041964905686909596775142511065842877342063067474727911195170851665634401061277820641071048703292323830902469679196507554873620361319149738118228973033017853481099048496377492519688383615865420352908770635261817029538420532106868454927317971415749288714017330362500787870712677564901602640955068909319055550112584933102239405220119094909221738832711790294842200933976103742854814033776284494642961600082628603513437017082018954481685373085628016039792245767449660767743539549053868042001235609837238353686077497441158214871223589390233956680458483046954853860619092854185264399370565227180523365656898748436439984503304511718099808655011858965425515048973742426730194903132376876722199285548461852486846799626443790505209845557789669200444291756565542214630308548466192806311572852969106443192482596307824365177610675424087285950829725550593129554386608581665042497739035773568477612661832092887480190846466872250079602746811299697859626603471197953264787982231357349079172363848319727765736421393932407255864782044414821030376094337359904726285067912097867519112713008876523321237573527188433944923763221036416622001207497866938176986420272407149157988248406368938510846834443525794376192754558885669063445445712727216707784716018598880001700213977453725795627912325289088694633263138611978265558201001980329278410650002643784178143382056530562547506984208914618976391009581493569654292619130418078983932450401698717069150306173915659752279014339810153585591186223250886407332741914037599836031583670791300256705966834982123199670058879480718468609876936835060626545553103218373537745690692463489806340305238576346048050899771587737550164115043085002598126212926103166676232097248704386781284965822749856554273574920384916486495513533415585512889888557075688154812703499184725075296855255164548241515939956193522115582441073797630723474346861629165402749376731556786361954256687176344430307727410884479997326602414060418829861171326093059379954107234051372356414205045694094032683049636251024714556006147969996247325973693732680727301782741461795085339021041602703226307323460884603044931569184768512131142629804794357863911362860646029940019319882571886153598952515806062547803567540559336427728407948546341404397006146348021392258664074792298496686235138659156447407180037443488010002338660229581839190487280872889432776373204468535449674380775406048932306911684318875972626332259144661228580557564732301469589851459988270351465744316668636852991002321905061496456841685529392668564138726953283872421430232572783578008085209339282644449103906837125439290508238440813779274419456088517871750117760785867547310786605604911247454758212850390070448927926517427919462278481471913009869002069816362583129448719145877847893960692773770462219490577802339379242822135536731185702976926527662690936120330193024976627667192049570477382592639313782330298889129274476903259857397333006028340230112612622712345863966977916534674017877454239109739978277752605883343379128907674179417665812443284180717829884228632030927868897316808030300120411173436110257504294857435273818499935678930635026461383116619593687808454539201113876160438763833825930988784179148558709961046853174688058167805602310890757063294737587663059054282258243313897852612578141867014127625687770245636754188279415868724094408548144593202692606091591327973956781710726174728791376508276983013076461687327373387047536083242240116222002657930737497160504289425672637336148240778739960260010817248865045672517561561089175352195460186233172895792438830672960413479593985703530854554596347878857007264269110027870280307009091940804194397444791662329338226007943873714355475233002531367379452799556030784409278433135383726046223860042490467811782095625268411919228616959292403822581539161391522293864235958345214236899694049206694138299193934666272693473070524827065426383107821313854478692249992550076616376368434438899203178419617910323705335494256884731058597588668619624074632060844244860903566187031270686085432457520386562199496240568565001305456260070729594397539237239597343377402930206303867500529975492789851168831847097677113203169362097365249813944899729350936469108694273792336982043920825452297466121424445649153801041784124252585014915942896240497190515145308004380011088120255599689542128462466969149342452338639048340418218716582504711476417519099580001004535682107544438257395595899036619799286883028982534042903312775581249371641046236271171473775070656334382889665519792937069138973686047236075362432438534502497546774294878490855925168018987964344540735604623165760481310633528262938951151845505454949903744895942531198326953809274678203105681823699315757209309819668086549118089374640933539984094128062835181168364620892741762480683518407456122724039392393346916616838915446056403131844436592182762373486997730439420373051801587906500365225612772317494533336960862514092327074703482631721486628231491204716084962867820022802522675637911466602417654143512650023386677626579246841240805120274428921352648626346712991418612050034172471414048270886217571835773616737314665945639936888722517061614813655278991965265931238001440561128023315595526972611998024801521160167015064953463608128053812934679617743605864091300555159330912248436271071050882919350268261709894190682387395531059013860588683877188673720462470826740595127476542939992289189671942487629080921104491412060416442539978920824714102297411037111143943225195714331826435577138046098439116972257740403247460711035787393121193575146515418393810717573955246823402832898800855777356857428172374703381223461188772464939767821794444458562566472653125682348355634886945249764437594860691196827776530954370914263320343297679647874022902231296285180182637502918598376443777733088566269770577033334866333683646037455039018140452153024915058921260894222857680890306479821272990283514295645490163028881582899773599145326521680597992095429824060889251251821041520436666429791248557730893887851829625052380530081344871214913463590797911468442284642107788880964249817150318838839634709026944081321003023708311029381621666249862029111605070044830275436370949183271929805905893606654651979267003140531211336381978249808416239926334470574614238414083795503344400369955318622960118573825953225255815985620326981341060750803466353610503164909740332133082004843916526059811072354561469547318106307496302592488191827536909197256352545237938908572427707742367201327824595427784872576927808099221164783033748998732712432021092011997635992207320826718060265151871058322762571569259114934330986991612560812935906664590157197045141542109609357630900796609194110479340931738414574383178607941265420927112799060727457410460999739863307859595647881631492298757814283744362212578334876622173937593337369274970971895639068029858683860290000765355644900822225083237749566124881986433553654534755468546913072272876537421897434630602164394967158969033378120228084277077553941127605767751633762332845144637136443775486558917063585067762451915230517840753874280465173652465673338041716439976513617141123389616852510225728319239630695963987666149674826039437248031924842728258919486070391698205531049868662707187602049030006807105620338300202060047545828171842349897734459913078471727819240325269641989898519778881414696951343510099850729280070579405860049966876945156587838384985047529628349744547909195728535830253338130224876724357998274807038185162006229300192795093095530038460757550160458178113213168145416895129284792644993098579897843228998660184492947812981601663150890332750507034704439753755987847209323117538691985550198392664396467076842175402948856543428459789997791977753185495485766427079356420945147278350325387188020084413442575127498445991407113841736989925489971456841827041627507772765644227537623382173879648872997098821007853240766189112869229212205940782852872470686745227724638334987957950839476273688800053292847505311171439206511043093414455944017382866113373003259866258191278151776946349189341215242572478781263883181175847894758307354891306883797174812552181680759425403760365503220606062981354282107272674341469298859870212326349079179973884228964936151603236320193196832673422122174472253662268515824486927231929976578807242672612580506938007926387403226618633211393949114742617403525458949240561332530297286941627691371556629123966399487725715623177084425880350386354068155317070361581221741671835213176473681825293913349090114203624134739992688061091437161033789669160241699426087774879845857371898424018366571756259600666732491303248137434185347341771799424032038366528161324457037805001305049356754263824385995268247184586992991859283202325794491081266381879795818847247245480450924338101641175211687562458334641507634358531194351557535747964955189767242186585841998553522654279456545020743950568244309259004156830338362362649182377860005894351760949344159608602985900752304444716444125386023604074630579963920018353352682183779716018198849594164418928960749787129590900416320538620903884984162109454073948872565325501381553826469078184809085707003182483990396552529492395376570958439791174248253144643440753312047662146239715729663650327446849729379199691111233855069724051050504179679923550896852763874169711736415129894493386388209901971711854467841880302377888151934493820324856695716364499889712050788356768440155011401358703619377625028514457254041582311903840718095591487771232222184146424216039127709140737733438755291079094300715914566210702921809923863722995948836189331302592603742713480186790444748481970258423002813528891193184931292393088944979493723636977112985272704041194784209393493004587600071290247410103997525880346851931397487873245734471090620653966395604951948751098444218493751920573541750608940631338054290439395610493067580640172050887869406903609107637335432458280352585720143439585890204276611437087068194489791025752301934112423651922352769643199605646776020099205055052077334209597995578761003606475556208140938419963491996477277321025177694011706547261074948444361027156702065226897622353218539197629657205671388971901143207524326103579297908897910211746657247158520995690998667060046138247879806131082520012854764831641794449440693692243494237237176198721581150323636642470564276805054488667975974473439818853987912411546240688926988607768202673842893889562236021756278448479896615833387876540692992888200652768557595958918009162181215626538868824242978551447930465747514653290615537324851204364035792306404672293853505689788267012171501561199996386667955632134205842547214072841532184137695624531496328279403033096710815429160017946772999959448335881928561504992787664851464083946620985011270478720652563272655176218644463504638972847124034219358709482549889568142048964169125659320943784025804669216658983758063072592665089723595358198279374424440509078170112846198703894347885905658109256830933383681277546412102572846725759830644015900766206200079688997056336601160081550734871056698056302146504779412132703952426099747871540611975592486922382609374582376565792492883815488538218181569294892299079405592878411546898207760861701909224537549230983101029109028444901538648160991000349380413053588783612163325611010984942337279521495475847671943901208878738226037241056045494301562577493855039089282912960906319285220828475585031445398432568391912173095108288111880100661341995235723270877030251583492187504983086808354584386410024466633106464405331306161418259868886106488367329976814325693596244913915893777970286667812103818646836159336671675353513924784279944810284083854154262882545028470991210198060126923765576381282934773439208533569343723016526640736126276089381729701514374414414697014901587824320561570438542670799914406537704234533126215853204192236202306746757295805893141347749686800707495939801595231148647897578973048370427271981505804982519112633862101498972360091805175363482348265389261461663003930640536457986571739308407294807879721597610135838555473016767651964433566820501876383299415468532803745406800862054271349540016598049514003274701100944243029595627872853243021411286639900377964402682465096769353016018016754902521433344853349084917887421299506676670654471580784297460512714489598137942014674730887670255541325164549714009296435527105108766525465778877640017012704456573145521924707384649836048566694077339748825662306948616553207279461362365874456836906662384216239742073689809178158215005091781437070078119954512963272297078901279813717987009187633403957966454363303562350105519811265963531112639052578015130941975270169008475073421946840328257635859042297843462243814788222688748640261092081264210219073586535235886724842031475313884365271024569688050811429741699394754761432698699716900570457713437559667885511344902858731713387688886410904847553028883686629791396918042575152251911999155999883223234530639143335135624930418283243894318309485604967885536242497800840187493674132886528909437897122712322538684047302083906644977410478152026030519161495309721073647952128874580671124512930233176932326571001300541091788518148200451501342727603154386971738818026291492712311766078749936992217280623482847361662781358078586457352358297959631714695063127853826853789201368943821023309468810680057283764625803726828924041462158944104635136210572958347704245838991243366077810867892287654851154729708575875873076531390310565917958758817656850247332552963017747902320542424660912752906036307915445938099997454626077201947586919185500991164876458692895012827776470933553026566506217283607085148555350110529004248628769221250005360779353940494386871816909814347521075526895297581009485429219106413240286876233099643715648612829496374912043718916286741070771871816086442561468950276232186921423490793467094798537623297086452562288338003233637790070180363715524933327040228961384249467620996401365967679364523143515073191593530990386866099438681994606920454215721077570651015486798341339549008433534936868668722911595413039851529638277753557008525710625288191920455204512744008277412929641186163786327169179382020487982465056194972248354042928158554740254780395868635207344224148574305836355928408383991074932480562235050514348416760044490365549294559678491939150903434732805779912365120383676284309148599872710460464045628449369431071363701132307391417302388384473221631222793584382208208771749567842028298381000155565030733220840826201501432326215792871854604955713276924540559035243401689069381127520877120728334651252840583356085220588403257266204260545797591940415738742587040115596356230727037560903998709668947693291496175876652478864998363265291505415025333616907898657403650773017871060661231858981026627718960322156608389037085230188806144596481885772747866336427023823206829871400131302277972023607643166402481251605234617805264456454896468617233177615374912008611188201338112193063459053941772608524957713305996749013482269862908283577039763859637728327607096713367577918652692161766255832968721296198806216473268260390436523681951390396958150367122865854234505779603073817611908367580746250733763301897919700062183338052621019403120683308369331298897031830207299264801414493960368500045356111307391923175685463818170512629146449663642027626648221515251034267206071477304305353017330609209622003784444654870316536624313798228914083183827673262609623804338679786101609719581576155382278904879977407674811476495936603565461890649064519225767987640704734775401194241113948811959219337193539785205928154186643410672857907313184593635691218917754053797938658035384972721506354363237502467105457224548918763952186204436333723357921507953713016090541209675037744719346879739405659902317605024527875740322919455505831814215479108869106665996670500536276678113995491565047229762561377118207236113950464649825937375846183515719090512014828937941055955460624666922236674199278465746072988312988490672397417014730689100933211136505586649226300152954684712793178996315343366515865836530191855764854975672616940187217384148277137314306936878946742566571140643707174570013350071320219910849648404742881930936936093722623470397699016118101436996532939908707781343577780969291112132582031816338333395021106868133152626494710738550861473974361377062978864558879682855970803589492210033427361135403989172715840753944101433983529502444985274044593044482516993241316926453369733334399719463613079332065233326304890298586217757314391831738781535899621824860318177702989274177043122221112606325495955390222648348323284221013433005188257747167185773134265614977309802249820315445402132954184629287716196913136431748041104779866575512377467491833229468852658841038641974969925462534629671486523218754740234971158684192587426597040117253697461262052111865807159635353928158777476675108071328421964670569420302836502525595683629896350799680406320116382444288059495637238177364858902063421794322245172455050121674681318098701335698147860560211995378886143202911750036052401753741481556362942675521138803902794458683293747445550934782181185015048965968391186230179750286506877383030703301247492350288959993752662640211525414123213000944296253583569193756672774137567012811330905318348241796808388121135944927425638883932615449389283294462964451584885049387539434086785035775196293208953133036715585021279024976230198338559112417068755336744829422909475141338084640549955189892356413972176657987929363631572260598950549486843327733643072430470649436164775756406211644204496663048943963675770946509576504783998481800567893216508391758759590597072565636280376394551170038175233439070584915500598750451188701546277216860338658219629191937581256529621854769749499950985938102261565544623808065343458424267858435774016861709957839245393699647881652843527396693825135553378522715269553422540721232279054111352166041558220648942931024046104073272632014917017932381207007947732246771016941002694805246963812562602112059517233060532731338635127036707266333387710898836526194600346838706137491275367692540129448073042960368956389671153067642029101339613686716753520395705361967201655238928292319483969552431510946085375106318717931780563874677731059369954155881745153770702918912047930009122810275973164462147117395410564812309314349921733616342023264223303702161997867252834320253715298392047250393542360269135212973669740853547841645479741359129694239732374100225894337979866148315168561861397343012055396382692668019683966406583213070230650512755715808707653701099821753257413654770353397938871874733772516978789908547295927078797223986232391190450744307792006229886898075409545746742126843101795169622979118936693711309267338131387558905843058281658456355910155652197244442928132839217630277339971052120028221242569856997720933359328540610683214112299783000945879222816958002049800198004509783869924727207571261076586285053947226281675574552602141323125705768447835579673600679057892657394429663908870893938263924272406474457090818174780265895833843348915238037394650571211040748053297006508938435888618931752354639009609319413420860839857783651851478460519264574982323751304062545227760537289187041949238935345420634684565534559828297285894368477320734865343069003141315165164796421378945792396362803936426044787786903680168541717550746521923670159194959340839215277123989441322395047416079443098244029884867308215862775665257900971220509857906856053391115940681055599459760278675203433008720398646817546005591890170348153343883027175042793448641883273034730650696903912859558370052001184181098223435280261721366778846986743058618200475406113842381403530006540063524168843040688774464612911796461217403550952252335145004431571729483602278415125362454809560658269340527766360271650524321898166621287479604662519247402503701571098028388886306571567921965548135153003945583188186541639494138725770218330150921188390153265809247798707854018902207791071404794759660831233676859140572228284193507676683893306829557446205108003889277425844031861989825535437572100511875891244443451960368168766597283662092994404065606575511744801116477032267544768291106760745203072097655778489343977891447841210487407257145115408350142687693482948018004976678362675731534111231063407297181760413909118422245860793296328316093593304078439868345947551914327219329194187229915213494005332801384548901042336327246698052407202678158706766121174920098813278560873164719295185130095027742308708877323190827318434064759562031710778398006684687022564149478735448229967314127677129785665146391587131438955118943893760251652679292543589793848369407292104658314768599097297144067950927506616989392992344936248818914551284642846943867629166779536073507766787127100310611617051385403154657923899540139224205941356941251737118937603930509849882552148698829738924194589957530911283800099442895168200399613714398645335912411694051730669790225177456943680357205899778789163631475095960631632542238644738111956481413345732667634561778408309357056965837547806326638025893845386904684417464380318133561232689688585196047719421920147717369757889227232893249727802880398843764154089302164597410921130587738255097288004497643025715432714508357979315242649537692084967710054833916475922784476339026402376692614047053865892437996482597977784537587296757141803341813244603877276906177300128807570467928878266259290536625426465739096938925834408515750992744458705092363004391675725548343559854255582237776268900362866298712664946901917427766529341653236962671563856236479452247489313432742264439052655040300162947439268137433341196975665557378486882262251145978374842917985826050598154068732608639602858222927028560165897435462971310855252683983618726876151295386299887190201630717987688704595995083677896215407970274171343638295793106622592566659463383227218332357687210000216626069626011516545214899678503351705922608646922102015069431119681038768862395284419690552714349445775505042563387843232258117640515273514140219105440676657451837568211737273989739484387462206797374911027998241261388770084152449736476898378120521654935564110717615259618845113216396613791216622495463287901573279128692893804574502268356016734391440398416072795664275877259469051940928181731345804402379425824580273059205606578243037458477311514957382191926723906098770955775152540750720729031962752408324207030014377705093188733079469309552624825332256225100951695347390149739241384606675006201734384089071145399919941781096779003339995243846198910520264164239705210911063286679095072282155508567881964466072034823288977389894271641027699527220239505153834929758149248748102874126914896258100427364958555887380443223481060626824118105170117832984549268544921390351349305527319103957909367110899718264535932910044416049472375416771624890946446523829895526234276112854549466706371266552921108091265577001353119290994611263243444639689416118712737261274199710082246747012093111879042304947609680005115363382575321880360767856361923839070083510947713605368773086265597633900402047358412231852646315737448600319811735835511483132299893285956763846131664905983338920446848338405686175146255437451691350508981773723413000307821474517203740920039257889065628196372270099695743979005369330527569790623466320354803978668527765166800768291301924076953726253240468557967286641517019469253790661124998273039830234544942315941719028270484207886043821283279427051787343825751233272067987927045392112499016020292728110965756178281724546033311944452311600510715376758064199867129607083074592159412036225541580425805975225459610928589303143805187445375661678503075506035698279387555445360953122461956512654758556998369066890018401796588657060986495151787742500545015779725356253936894746892865675880192447388403924495967360949001092968090344750633081347303495071849600662045378315352060599940939278984131225812344930888758426520845536886697530217443609742249232403436802628012230069758620309426858711228230877212932940238271486523151388730904106565482943205008837241763527575423877397664439054496073111776964975983341303092529736062051641759625007381871089626124325968029437538694155185286583316893869700590042142345020051359170172779143557904529561483670707852367124876695192220245942614325344181039967709044335259233585764867626265989676807889696660705839653710998512441152506165425580105323487469333354202706170920986364652557904237621215144161925567360237372837010706750704994035888255033469523460281944902324558142585059204628803880375591981571951564989066476107124189508438327842684433154999643494773520148903277262018335894076166315948202104125618020597798053850704623910809271385931277491301450552185937025536444389899157630990703592342089422546668720632925087277986144041533173216767549150333160386476848020977118584112282492133784017004879970010580851052636938871338477176140808703680314362023024707685905335493910176627835203068727312967349332257888334134104014648100729770812250731581874863716586936412583932614999032548688082984819258979101345737769258523997912925416743206663891056158652970206730178035906015250402189125473183500202892461241834911399626066344159977892785543683911100609496317827267778175068825491637871264456600374720818454497087998378577362257756518558323766287964844527828559519266015956001245519720671552778542953441790492174448751457395860414709967897763311099171135039994324978719823533034887589791482444724807060333594710793443604834605685205696905522073867870944889887949073858620830331425487099089359502885146422474411428958227033345092131064876022395712204708112029154652866212001544506534677278010996032202982311550854959454763637520063212306158599128223731321579789828897947679276052404515682358416614215926158386865449644818275184170845169865763845769445136775571876422849586010091890319537771800398533026773673064523340620970329004514362298353974316110982429708613098982783352512145662440691351111816715765111015198633842665534341955488965722780873824509337743325126522003274722696392953857122280194052857099822604729783619026507685241933148327663586955815611944440643684486708377052799641850909796178690757731807813307121098667907649455768290234793574897156046617792871695993616994332371779631068588738463845130694229652057088399639103571737644539278150294634359912436445254200091597374443659792085707502815489323271427400464080548795772405079443795012295923880827785877860507664174714286568007042998709808509622790266493954119456643811623922506557961452145114288485502904848042613520924629861792027608065511364269730371446149226369208056659417519646003614899351771720620286165190659944771901614291059881303476123948514071393897704274490226395003382491957735598766780539940578782118714674491208783265320611675449523161956987732316292039519770283827386517736972663887294981547408733321205904937591291394570790990999799525606326240983666866434363262954356804060427400251123330507644849281989487656726460474142089216706524190566569683979768092024073305091961552611465605022144086658585651876103987070052296496458894308287136085808213066536986049649312590495868319752864668985324637146722471419730484452502052218219531458101771007525595818990776311664732847542121312189050959086728429734359534761406654029514508420781529421270322195543842894176533072774053429647436301095447732761883529455976681040267532653232515567374529981600985971210233299055984040599427202942580803482485833530165587128841759547337195344077253750036878920713872275831110114217825349138179049178432854297664265513537798688473952176780869039956494804841580073128960519085441480850176204512162054607539266999695455529395908026394421916772937751741168717629826028494168913949470849945771945577282909751669156863149498420890808646465365703992826012442380057272334726345362634056453595038165396426692279555920014163877665254743833459752063466372351133106359042766739514534781875362742884546361756427069019846613026677035688308968670197295631452351882821194859998380895307608425316173849089902464954903209300501291179382592546922619747575328674813798625080554931483310416595209668885452295980464025041968710344969455213634486498649152914896796822602534619543521473173133563259393417757866001633252927953276018902979815898314574802207191923985556712204492888449152093299681771981619681116271481054716628513021935263048315030339553711144944686429182827323375534384938814784749727866354600756278486054070885481909852353929694115799648190244875963833687677836030048124009240391860822038009332025097080955524223502531072493732707725530679707026789139197216860150078348697002669882556189280965216379302692265556860903493137685344447898000305847783982638123647906022769422647738398766529247764169589623000270822772874453846317852273300986216455659281150410039655701228912136350381730623725919157666098059906566609860010597118378598517127041038979184633553058098302122367165550599071379903719351262811441765061064474225795001132560905564567454620745000396780599007736117893198627172123371706286249544800053411227169624582849753518022531663224459625720151380644697860302139170324633916573973657599084840088131141820590196634178345535340336944510089677620223692248996253619136952196676993502277044942368527016561716859716558348588352063232409200195572615557828558951953604211717028329241572378003805488419279958009080806120125384113391147123838971904559876792220243128088345933638489338932181449065373986915014020354312126630451605179206810380655913359827506558966990201136360674275243531667818869114601624428533103824818854755633301489641291311000205584235612522587115441936584302828426358499802878433366718572014590056538546487665681979543118163760020745237710153983583106862336836048306464712084176633883391307772814407982139157104595597866028072762515240287978765960851933555174679527696877835827860427822427479127111519896602349929467706302886939434097712427724769406351792393293784118931081036253028152335155256456054318868163539858757391383495027222263662990862400020706039865443343559162002139195248748159334341649119015320367970023920816008090306117758931603076960181953765291220578644222865145589094890079347742827320931350896662596460586340827013393097366004253781452241274024229938363021260999909028712747928432233540489104282442285152027079933659215509787010758532218582644015534979398889083908377206783487147875645610034575183082811747132488579376312598118855172600242557563717593977677894557651199099515068824174006456638993328918461665160325159947169344913230354758676043794340276180715104467166232771188700468053844182785285468864257190579276277170171154554175735983973067089388379868528785263919437131904532854359760009105114167300619889375614340305704417066091025316519125994309203623360477084122722522440850894351661697805140607416530510527933320963367900332379772533203891561329467009279643927034732417058648855476587890835541542200692505814732310305908453895324230096327646895817340653547589489964639956099417231129372273376901881457970131545070632717515290038101683940496073890234656076849711056346642948741698842069022374587502223373899728088905782897558108135980457909757628868225020214599372250150169582880708598158284773717820569106772128636185617003509992623404621589699294630033784936069197765370113401014050583375202363353493185053584978000436619818477631523896636498956884681527331562811355071254838405008868997301906900523704112395595651603412941793133912640575798136447585772415209645674158400154320967717259823556018561909262815122047808205014222460007844299438271969007021708935440048823675602408846923340357208113830207855842568693903928369924102455921384907243326787482147961503682523909499772044914957935644991588579790714314247200528839997227344577812872429422099723449047651934696505773199085416742225132214156367390489810869426262807703607782169902258562957244070780304505692650951056443786928472720582341500941024855530546066266428240636608816184880175926498068349419230845500788729240050429957839101845671199148003294269896372310574201655054168333060383367230050469175238767855963995701396258226741981730450884543215267116518596249769397429018491486587333440145737798521630637354931918782067677164329825195512999161838452689481414952657527016194176295312895033302749915727795774208452514536266020155592814227283688581191093268178000664661810516515841328776091482328388119155039140757243460026725827053517964631007846712474276700767633484053689907367487431708206166910561483056636256646793522197455357062013739083253299910785052436283731897105717126562246959116388905565750457046669064791675064038562245850742361740829221911049312143154175922833377816895064754807758585683884252731620094102380146176550084259035758486329886368195191834178616024492656608356262762207689382855677963073859309859617672980461359945801244327687575580389893121396957540171700750170522368416575179627710208326912450571730721914469431290275310173467312409889145438576940233218204988565943904062971443974338617605883773768949447918925524445498369560196194417441180032828486521113920756561324421907585898781174493621659041413010456555323873117027836323613972969703836207744086616705040813248520763814619733125529852452962007780468557214634311345613240618816135350894252089236357770344990940574452375790682640131594548269340478854067981964949051646386491304101920328242377850590877880984016536637211329733592439296237435430621721585905956353515520676807879908392960215247756897076359048480129202505738562546709166258187489490678445994257639725755622254355843417046267932469004115667607735712373621295957100581289526520092460943505995457119244039436213045268031031109818583498797517399365496165801895786964996673297979750380882810382305567999461695318340358032726831619307893667224143674560380789437114256019452113022703799065418897370760031223099552977667481366377868978183676070366752298995784347895389144758592221281552123300601267767402836929961015553226434500524438446146408201510896050623627542355101794780298393674576210705180497033790220306430056898769358629733475554555749129553750564411110467888268748770200335470702999685033507377376768720125577878168668273214411240858635170901220155902776511178276025007919273237876306230176934690725443611473517447121421171907352298353404828580497197986893734664292021972730066901588028385447636659067674513490399713033765046831394524004835293223313354110995087414023821531920089490139341784889467389845453473754442097238453451983170043640759119584764900419850063881582871457451319507967630492504684541281236175692534524295803236942922027814850218101162089525481794354861011461048330065739964039690375199718176454561418471334777022249849290326791899563644997514583104766084923652149884802080869882756349194736877651452333892137104197921712257506691899859083698815403898629591485763321155742297931154052193309872945833328890861200017583090466912347791812642531744559908887689848673789929834905245455968929991837804729290433818529881477774621063840731116579663700354275458421726702300492352231576803881372975937700533387380055491132318032170520475451180386852106636002836580874818273377156389489942324155910774086853132710038902459462557163059319142433619245778986816680649599762340935161376559480697750673167627338738032189628928791371968864926440232158971900803075848375234581836827092455806627976168715862585614871330519589466727916157004233186338869095057889923793330475912644474716642920738443497095615096064941432291854841795489559485848037132645285381757743624972748470852568213452189564368458425496182399112367345954054878659337372884744615036283297535484307009422515189238728881912574647794222528868780647943380115141601600960746753093424771195012553201534069588431477645840154607598366942834781526990037183364654406260356568468893836768194076508691870626229769990334124481980624647364257626287704182454621231067007240684810069172665478296896354352637844580893562164261336654386715141017258112735361275528314158956416160753670218059822383199831386232481207629614233948777646275965200096425188039533707042195242523009356285294428944327606502631906706100034114991363880781708251753571763162203417171380754821643499515179867725128352231473470235399380816700325613417274400577459983416042027004462475002744026444389029697507167527340575000216533287395182147096147652801891480474732346487725591378108644937201713350532536092966427354307303655470053710024860410599299008874075720429187235916335002284480671261663421716155812626821469003377576116159863299825295370600629540951260053236831376213415289101979865520177602740329834252378944116450184371098441561397035154739055788208407192817449365706306339108881059054569114472381253759444562409176849396849866746083669959538834023960476689079045048863782935941817102613720549424736719078768148899151386078922619980146625468981672157281256673733950246144268385209975638016775344168717078056446685261759215796732065809220447752671727456053672455933558559431036792929694874939733672676346281187226360057875970863886474225121407778431677447608385647545559435863361404072728822143307019317153658788665088133721083896340634297664775776615824985619849223321741350981066802700432742374717056841910354613169724270636065084847968315705419217453244181370259694336777895830048980686005068195851404298521775634585912305771007517582779950024865343565554505052281345589020935471619118725855593206874472696058321344311186448576585894026579220150107870117384065785755102122234319731725578572128659591445322660785463587544982809398491122935981386606141311433914797905140139816829705739101150134603359412426079028638029487462109758390439016605483806923580342355768669862884044901951110077010868996411423421148856992499468283648829959061269267998117537311967328238314365433325661862460715651851730538448105252912769443342973932479969985304299559754226574664783966990112958192136736018942094764911669873113365422194773710977806297987011666677334818469233122974579440257160548656872999749088917220654993010511564460529148176024353824032245453556344975139704341041078775976788596770508207522722619352315417550443142591027247812336696028592154401857790442788574527442904279719541819473355201600515419983036378740395861974488939597240340187699239387256959652088732507830386052969278433191642266035571065992199988742069875877882539994294877101291663468994428904340489313815887646075128597643162839283033268364617002111928274828009534317699815604262340679321832252997309433820580609390012324285413379363088416495891699213716790445211202048804243780862920041878724497725743643000160253325828516834417567165674525596795724211551506011248229387059458210790666977337908365025490858422736048362020675290687921676515886083841049671755939821840841112656218758667404359175605199304441671169541045722152044330565370676464614244003817397730825003625272136923824021206080471230899079580023513889547971109130964998076027358871312152845607343359190132402886688299817758725866762103487177683315107944279151369324734896835726374541686357127800537219187957724424858730037598077042668703881455429464803984794585231090742200218677361262697983424114722440354733538449264591913539554769198480143042496744891754528827479323170203269311083278274071613505465960946933187222213488548600035981769205119812694282605755822395412992156908736114293405025444415936504604674033568358614829786943075415222915871104508653746333180857351450875324069616289120261638491087206857278577631800797106159091202267733045439262342593017918597431920168370752646217593866901134422407730878185575116134200409942948888419963655841029053815278530071230512345715147334463329234010827659693739729616596493961126805440049173160584031821839909197504834358659521303188083719284487078799408765001339541942126827710933045645096832527233945024530205855108126677398561212108393220530796431996430008808069789638124289681896840184868508880733720765259191007388299922167943569330641883127173302229753460483974138569387810976599388349251318064120946081024289994555785176676639677642641592563668491367826061406415695291160954057255535962121549646910454528804328375772629831770429946443243244552597831215863785666963388447806606871798292488461852573305279223223851537445291030054463127124800335914650912516485084901490567890411491001450637737490574694467629452113239859674748838399533677273319381027656773643753500128327115136890169402642489701735594847262237888440677488820029239396988893255760352682787921116281224433581336029894221056043571915410677138923966466204573003957829815680404086432909243743934504119576567031133130562706567397530221581744633796078137876519193828733520883738144750067168055073860908265330184870474791369477927550466460948160411440085079846600293364726509896196801916033911537558927581547001672555371065286332619445259336970825943161545742677511477712482130745959722232571196747674480966089055551786789906491829472890028291099526274226816980847631848656631909005650165502167469730554745429488345055593373461768803169843973336947836874446845811982316026496802233290222331849002057434730577968915437274426131288563338442507208111889356508771789644911122102182741317508828693356248502597904708852157237407316014290514746266226023362697252310794811133561829783101560389567497320006955004438379589319858167357461160327201750592202614180489065203272503856241990275608484452224211346936367397317491758566847850157195047362933558105861771437551658869826590344871983947394442411623524881553443979310207790578904272526963975541046853617638503610524955042649102090859539865310580141669440377757415941936687355065836622663425432012864963668016814526931001567147931227158085016344774699349211775180797699152207773973822936453806863771182528428561863722837817586855651627071490964948323420199900825825677163174739086484362363366463777298223994283821730706208929288886759343107320490032001351131543045050231559813787121169774222530911029569047337273897014123543589983054393318652787685047272985098510327334317516756271728666025951370652287040871685189664258974982750086738983538730045487835498915148175295349568917342037064516270681960988519022707104162425270364332420503397724611144047608993629911767656267319511259688092576848972903694451732002739695712772256115771785478003626554555244735665539470442656898669327284227475362517165544761777248906278662962421095473589920293322553932464090854059422256775690055430936798802304052381262790700217037980738785989156589119116307526137644330662469437479837663732224146466474751883255061684916720158305735616218483767797364640867840184780030712353845825620170973509324607690433954110876517396068156631907686997269381078629404348827741148141911305960754744747800717345587102297800834440569989993155552541545930362297450347927329025070650491839452382128985665420335511442217030072429958000810708658090360874070509866432164964494246182811153171982230651660387054774472514100121338328739518791859341258369812639773871152639456679804533470294949031565218879808687039215673300779096490757526265308097685985697752539415174073755912681117291692223586997842627580187798723287169029098402153596066310296940657959607489731698140378472752062816597719047714071925722099936254717852666510353073077591220558018195865780839071053591579393690428683383075842777481871579987672258969204752428982352075383768467201785369554707036239206994958672677846355282752497185966889630630739298116543822882498165027163412195385311336566658456653032965384671089495032997170046652813477013811023441113070251827233174455431195100754220913786408160854340468644795559907522468641974610073678144812134455189541251284688997264320697100498939206551157839225015851555151489827412640119101314807307716930421704364073200311747217035297891616278582348726521883971874093386972829937452370185842235529316890977595732027584092391398181940695862434205934114485670974051681067202122044178785281223220982232887287044741998106721738957163160445913202797946394011301580011166991577248192941580575564172037621421842449124632360383735986744464904814185612377976662788451587127680865994759867965908249788503983896232040158009200495025059475121719511278580130843028171446152439243313410451820977251720819885212323135349434339189043188939333790735131365981870130261931767146346423555789545468886660245596347048179185671688517294162625188061751633860452607103593586868982594418494305543930275611237306259114242530326946079725071405121141326687928449692090912825869490167498914095319961580090561053094051547052559566953929319993519796318555954132757770239426650790813519711214918574353870623401899360481241427647300531515812521954472864409394856057925209726820421486523454450260559978044003118245991611436308163638033540247236629298225651170688756245030951738438078251540493963930402392865234460530970188425662575981234594078039481018087952954156421713086095954907730098667256730052730676697842261649980635930551838940011746586257068088341092851684841269854337984827611276572077937374878705286246485147125750352708201491051049333156350874930020203553524210015288091918499649089847569509221459939931395161003890473575162029192669386995402632759194853296489293989217403324519885946613171806118140210113326052497100888261953484574304205523151021575920424462290600772670183191374002815588497283340415030686588875418645544856242106008399274313953763756651066706922705853631324936048982576480747374662205079189811995802733169513947773627363843634123747872487677370357870766593067363536955636442841165987333626219694404818644127652133255142846241406904931208897397458689814158604421785575934990319773786922478724510791722698282074536151514614336086343143218601425233188960569504037941181255976817103073963482450317167385477483748592258793776145574945466995920738126129775832521139837630834180685207137496409497431842838096492785203574869290842103707564922757692616276287180123444358396527827962653093926476801806309710081840958075326276924555726376819178569097490491171251989129740814508539065999063646060466469409281724381939781942660416521369436481048748758522752118579250206924945315732881756953522135166032071623436519217580356521267659103253767017812268403746552499449478738025833061864822478358351834013586325988083560542457515728685754195031180367030357212378344492715039323293635682393790285742531889968092093793696116650310058561779408472352318976707265425760599439950015009267649424770856822138378654846067695251736486956893768042393049254662644244861831141538516641788899355636264031817356320309369425881696081350328803463242788038542968357748246004661743484578742667419192058104357811426005342748437490386292770857770935714661193120306737283436231009118606921437620862652900059204120337244407810908324744793921084220478741630485222726629655396135813898894860441440567098102100584296899299316979990765119649880369986066519388146063233404869083792351184813543970552244726348394163202528277715201416942575132202715470217142535552672451084946148243948296223497256263548733347368273846739548320573231009013627494910136280657463083728010776195423394732388978182276972205728343547408537338225324931290406789826106612392132093630499254695591377821326519852643584529130658647458655016959584843622400599911604825788289739142764530648090284430103338475621661499035921904614830496398705840352732462943564185585369785848060776362662922804598436435241086390053337772724200767972564293462349587143304972879719697523895310926655192688096091718084124266625186022678147786823508472376906158785905271705330378534007256035059872062146679884979751854085416209822810103108360678546181804297415381210667482481144920161937923634692922309029842799554502331056874840155353510050752137391054376825513532630486480813554477266069973364931601167870139675534003406973228492109199087374694349612147320184280675359552113740799965932484404299634661964815119457830847254863236063328012853946415464430324477358425990398583381473880726451295167078289170202893949619270602354186814815742646953681907794214104499327004422233746301490947235920349507695909747030523213467947631244271654869489632459418553771269258903260599733912356727893675648159485905540194238204377960363989950639980435081964979017600005856430947002052819110593608210638336233012643298362040137575086212722314556351404753317708150655285832846320185319777040825381972338724709352501878120818353407325987864442450582678034112704628667548675763748532332042896448865973444687964756201120922673449661073750810328033038152020931188469156312410410851288781646944749719878886151647076124777473384884106124639483824672850560138425506818498782254045598745047904528332227695342470841176822569784622912488821438263028585190063480668602093321211381231059794615825337234447684890668280489420988778915546292528912665765377106605529011270532380015454707117454789224156664641391350521023354578483675064305733517147003128988770256514618431009264243147957709458911881529229559555445710028010226256743111407890083036371240920211359727421706015918623010801025108562247063246035050611363642839220219727401768697688049438383663131656276942285133428774355581651548287595950570388353097553835124493900084025041318058014981571974800824116984239657068909428253744254957628195591833578075487183517710151167752213310753007678298786795609999013110958198212440188372148102943043291229911868989357468099302648258260276208185373235015387685583813718907010741279818325872398939229153245902289584433168822459515516516557710661284417744951492164250550569907062598138026170386133261927572519573161999206734658625502339836324949978468333190830559289470462660629840399768619408565264101808057693650871519354274345846167911115224153594058546820737243369663132397398151327504101823473518403416452272011156101769757795452485009500187992812382078575927141020117429971243173400777914865030035515888605709360679770514018014022772448290815029744493832616620227943032971960245600685851956228144198857612618286912946153247850007176960718480525995601653516712833085888365844190369454514017670112630967973856652008016792539679195017181052528462790233867466518264219944779571683816622654894100091297449691815441208166949795624350657261038500612063899853954928253143516748523875164928576623094472724721173006705857385663523145798102323700996915081389894915338087104875940043936690093492199411477664623657637831876656818506428149453854555564671028217971720028843583092276377418113170017030646852644972487370581083533904696989600701184676518486253250973244764862690347727281051376240851573098540956919317166329920930477062841164472315585811648123563304504916328246259410846884149916365201704467626300495189751003939493281917198006778608430548291822097418639409113772554556185238462780803282172630132153261329915566527204516503879834778539382727270456693619570410899885345425409303673696725479003766044562148597285638155826537603002383621297059776407845947791174190020527017581083888574282098335941401194125125262599076571490894674970703056663929564279646540383815691097712176767244849930829611640826803810165856797558352996079323432417966756721972055380464986042131988528364716569307427829006253616929921151483877969187318623885721021964969696165114170723516270965952929438798133919590288193793021772728081583312289611649378708182690533221414608554393481033826295236271142321306567151310318130555117637418470363764836201195567491467562877292508590439000613477677074049717813798070030607056591394980054942012438098311686553990761964992473907790981257352399659441078125034258464777239211734578362549201751934888670069563624036030442398952229382794663939756405469231216331975150423085765583048948809293331183181219872879462391833605981217145881659983411317582987941162043477861650600585789383901695849198138849611885383826337301243596543875913310181449719372926425096088928236729793714747682185476014162108770207349732770848078151261752703522929149339973900467018450731352696844699757350221317674294125202572981992920973673506813407375201592182459969123856016001684480272014796490368122280604599089359373321065248846821867026473029668958115096449169595335048604551440423275643515737882537588952023048454575927802182140195927714252884302461191853616964061506348940121432039963016914096497787700459233505956861779514163980827022732546873077244958926472129536182012482688129748447796728102188678672531617579644281179503023911889262932981586417325088402210603097910737248733939622945227212258581323394487460245971925228203925253014891223880975581856590512815470703836733916918693633998735746489727151192965897008225000551557158119978509340063440070220800730264850247583446349852624435254214006783865906459692895561297638259565456694585097959183512902948886715366590022140669146964942538046852805550633172620710582866229278568211351985171778946278458296130960748134710657987024797579621963684450814505292647538804388515770398359613329911714744119392336026974072094312470847858745661790260857198023978974699822215772035106822994333445934253630268227402879788052047869910328396752576829612270328776815358157229648859664073327794022984693206750993260331682009718978455269856067114719217496398727597932017913298129235965837551178038424368409612402465650993376067759697587424630839440744144272679114598335193549382534590950709623346593063151566150682079349138891584928274761673880080760196805790873818973610481724731249156964690293545296637081027703630099387072516149648355463180942613931106694551736558984528836123927646616722770605003393489307501768051868987025274294801366890868781687526556734055588185509003152031304129900266249325678105086437955138097281221960993198268010209170005211041441606383610578776499500392013522822636918742462618318156287261326382533843472077951080795001451484170990703888769668383028083449619673724005617576281688461491440125815278098269011359321683458129613300848464320918982095081712793739884884870914857550274855910794675408968144241361882811521632733098947708272926271408966256438455628394228460273505597304666245344719587879133035962053687343358641215863848141508198880955462342921177519097016929219673098261242498478227910971444791065342617458155327402527264692159089606805089452092088929951682475310051026528067616162224113026669973927948767993197307263146887973831948571276369917962893175972427480482187820343558848505788700044593750182345075412348015962978022312279400647975016819308819359258543721081373182821003329186574768335906824598715984189489085009085552416683914539989876770142371219180246459492157800499286692479518761923338108516839739748684810908564087628263211108801824320259999208101560622406464848957394320837470065430128412810358929987487263687334693501252976777548454224874784401040602664593213670207477292109196749442594280343772621274547073879328081762242820644898059756188673355444371707836511523036675017018983961302395518768655784859151432569353734304814953488615966434690486553030441812470054534339949783543496821871119838916012536842058502977686074801401632041756577762105861085226419315929162557738095349460318193924588191701358530243858723436868800549747748217643508465264709236972722976582965939355129439163640559974084952339168707424062507966302493836957012977544028260568624883774215285809583473299764956478868203310325165376656809855008654859456998651162966450007423506530569077956823825996497943048397750089952769322097734324987045693634071581652773991568687717388696597472279978809095476151292947954428644131967855579074130030891267221758543468291702858122827523978756309038506453529996142404537754957290834134191539717514605093897004448459947954223147620087895077191381528917406325444534161132113261832974870913814141619366811244823707927525972185156882644217023931734783823140379726097180157183652006089103036934933054695768748673407654407159843101366746664516101232070578428815689325900822952535149341737768585244919464163461606023368632401748272914366254658400159874276243504365023756401911129578602380401184660599777106365435410438281339088240802418713889361336516144358473748184958955379093469828242047429529530750666317696698354595339025228357393076533696598076532432073306298155216037908048744091417964958732575848841310756983568884158461007425017250571857747802960998969333195108274811524447383624560903642338899887272743632729376144731338813237797091193406976823448423054594997717083539205460320875890664978890879890162487752095122695863631437982602138195072830620713149341373979296101206783268447228657824030641810974683669194451915870757843781085668969748728118500267953324895247004485403876102861960446873611553262752824009727230458088124157291551193677523212788895734961576492967247505978460759948067329703694008272866149632661005218411423847599413668283366618791011528176263903602638884467671987059815636807128433749424179532477837840204277286941164089968460900362778711977873331181011411703914309012579983184308072475237153596693570406894831474353143372661687191020026254137742500570348616240343931539700515000142901287610414109134510087940517370085622433993595480596455649426316435234584430522846975321593850435699427841983122140528106595150494174849444947444915374500336467504321665607137345551273047764657176290244054018470719464787915321536519039842879822011675919347937881561293078813438269274257383611937704164392673701156150438608986749108999166557755176939420480086035248360890975164007304333896250141629718525159220438384649395731189144184962288744925170643920112340586200828155972500951695356093356249041279612964864031568205471408655785093477627819619065818424041165726177543165081818538280877008768560035233279055548015740641045155696480983409721608214301638441796125548732982992583130590935960575066084835018236301879092381416175239625692200478480002257055377432731772570889913147334484271288612213484332956331717459543918453671230827631118733567444824760415958243438350287598516447838353911251669138450444758673704409383207798787009634317628104210661694333039334166808762756889261255852050785863687415692867705609621421251518116238541703266842789226665099593039740637941692572370358763838286413922117837437719198858307982384445917534368024884102143104893590326774123259720308208692112577195730078402165472087583424978348700579230162063788904659561518376242887923536116784285982227998324341762257611384069640526802716698262169579167432498293985519562787394645104827441955784305434136021830927529622917103498492949057087294002121122532442404002064605269488880320418015492532463093124699158523784448650821019374193413163903063915076261498480782602658650355435254973255472442499187531684409603356631342515766249278422701660529812730264465170281875502992295089043339893631404488258328499103982465796196192113380447907918197072548789137023104651865174196805310668678592855673618544766516953520164193742431387268825495565759046941410644898545687461871886496012199518938079508165013467476288559083079375789336176632390430176104807627068472163914726221399032014187844674747605621644164156866006535830650373657367842339274878998583521743016003940552739398454269069035576041185444695190435848581190669788676825468927023702227109110454543706902206408057546745325577357805457182810575099196008112686814141678217558627352083223401489513805065310215059287941939152921159166613494683803306135012002701232370655547731747554266107885310672823342961081302791934954997782864937170247322271102856534472709211841129420865710221335529622765338158812351311858899720114794086592133097801236727805796594522716388233899383719991397667520412203926600292931074145516768318570991485249243841579845183698768455620131316093514869380130997403325397614795221301538768060763902500755663073472689422262066441015142121136119089509448583372843793378528230259555951753715139826667969129613204863982973196797217107116160036420890557459589989436567342218093991723393196771981520837954044422922176488184677110898285881595833408017919210806125628662268559132431038941160930127252297223516496221868139143212577346814362188070070239003554855741609500059841201608960933027575273723007182122256367691439179439022822209556458091311361116806888428197130210188254292591057057044436211277609232716255422048012554895841023388619240485462460595712763998906249358422350496704529299232578700349638893977422622717984912992063923598774654813349717584538791749414164330345734261789952491914378635392781539518034712469339936639964609260580677533873125064246983265463945862234093721218966968325315180421302488527785125258449349612307579200234054878486128187345648522243114781419978226948986526487015999565154792040178150740213402449939245530357256813727379957499186879544742896119771627762847356847589478527431950354256434834891562751765775225448288510935324708528908632411663272262500550073721364694303795204497729252727838822326199492446446500296622805541946155433932889101785889541325598353431316049588259459558860842963753934366793286441140358701779515924809252214224492097379871606082998282771501720150884917322137010221161720830154295875353484569949156025920325366445798471718267955962823044716289987520860723368271125124365875578745733806300371263602636554560960650476766691908732478185468327210687570436814909675805917922736389223235668131459341979436930878098021874290484229415890947751184018539495147619168680990363179570456235777059179260926556483787716442681582921674457257661193232176339584634870504739772215552551489447785652551763541867071829631894693893134245778694565672217545187346679703509735803703980432780674305809492467556627166030774188610301828016381244676320848702598557931595787738828126812985825540421452006596205195629976256471510401564014801561271075304175481333539089105537304419049195803699790083660092232926714314863249438202793591826687953086534672568297070532112417236148906196456267214505186232536368507895309561248755559729586518938722357326532198719231411822259804273737186003526676436768461959196607378111007459229288540259805513660751148358185174577027266008529294618709068027148593193250296719072181236811453691594463308921486089109601997269614116518134335518029219935737189984779835312307078118806417922837723865375564933868468662644966277523984999890273053075670358916960232324903276789779013616006341200329687653049065306872321616531414694583654505028971998614685151580588534661703790818805887427483956405874020818120081247030685839604768154170692653054940153354774813528202265626168907251206477236594561210539905242626488879456691566949695537669279342528118955675645908222534583749096832437104786979483997229945224068452643142981972111380056643689972790781280350431592884042265658378787468038734945834599552221650376085718952520473311902467250510730021642365516323859143919072237641411333666869972877011064808545308770745450883680485896394616051862864356751813703609477116605615865787255965678183735251749955856907173479425099977101281598530168073074619009031116981733200904929139319905953748020658918116418998431509788948197562449612322848504215157816640543974319139446836463826825431509801431701821784510957050239594383327810068772003540359636341928490321655207218815489244708528274088193963299794081539571162950049691937600829630516845534332893946276463857468403086874749708570788608023481683905286016423123461272013984560194419889022118078265958560220714093311841018828623527482421057180292588214243603650308171860405718730541311929370963414782817188522857444660626884698361177768642021905295748476952357069917523955890337115798257857620374191049770776095309792343335127242613451931183751629929960120804324048184569572978234877153996222594561445952379242373195950948567713203628340440294912048393255382219634689590402099386907415081155778216536396051164920481051342891852522952929365069212089014288371155208755208324244117246606967213366154176622195159713076127830368110464325152314531489790108332580001295650633533233364267099471821621876859108033326910019574481294524268866050492935576107356010359638158442488843321377824480116794784024557054390647884066371473678398921762619574777099268703917965430498076728800962469777533329433184136821011740605131170490347431812016744859680774601818025892409810871353112012020061876294921274345506676823456753189113924355278408028765384291075107890584179205916137093191924371467556365407412843871974773342120180082787351446117084583212882262133097001872584093050850658341803559463188443776619550701404259733949994889620039074358084692686351455064815047799081681660975810916286537190338431295428330559602820067400442218971635643571744830134403534805829106132664620849507609685631122195033314265970612906526360692574107790938624368276534084555038001812139228865126797267688005989504905254860911664816679427596648302231618386593887774465958565772631574638233629704014125508962660807380324173581324404769457459290940782463534051912101152707997517642937054050392550879812086261539093191164491352971624844710227176183970053302513370496751691261367547353120824908111164170727418062985589535966016460365912435100683795247896720155626951155327990079086859401052371881197390480984121546710234507167168171760821766164784064107240166015151472476186460925507818524730888098143965800992906097888447307193250340286749047656168186631256342716550335428357484449584367960878851985857086222838845177282063139057838654568356636168841787088754278364792240832615758502468511904069184449793485431588533407749740406672182877080859827445738783007275700939027387663146260859169144902666598971198467520398887810977712839776184060703795274597363785861796438807367590339467959827822961976809370305881895482880259272146691701145878531958839563596647769260077782541546860686199796439725353794514641301680445972116082200509694670658404710973567162015737111938330126670763376578314946781506905987397201206062610713140777084045390099991885529656488047887101480174906960777733346855536341414763564059357141448057378100184456059171289610325670710269853872957025807932477946593462340981845025592732303338952906842384356177035493668987480795341168103333357027381247304650566566148221752804620404177231534094314096376856510552018479360066962917157990882151324319305325778894062197692668998701100167821675587976240978543086917059349605050306132446526536782681559806228472041315509073567320325388842072873437870029406425331236830295575792772032741951991917372015766252762635367149794368981444836039054651887362660860514666562501698605984028419376103950016314540413687650280127797814777046118267983460578398692488653158747295227913111876749488211345753944405004849470982917857704981019811335642425368743146822757279265266079066404779252652447240177558911919461964334541118152461106181576327654149601822967780704498902595877229314628391683024570016716919902670353515569334281139669511833165950464702744603154902594886012070787577726397155108683038330533742245176796528738750081283558018215991174703506806803357323015610106134428373974169697251970449823403303807770881442603480504285087842732977188297588146490703775440262011749246487271602788281268501654236993499309071676465119844243104938350504692597313594764657995461436333616600499882718570461767572238337692823712082388108615179698358245834551006241551773442657807997833629147807001044640529202479823538901645547978686521903630329509028828854152725498679350226379055717693200200138496508909245384392889199826573931028720374758814567533668460147100714811321222083922156222548541502887038388862476241837724979731012828948319558046730094055931639499568900916547423375241886322348492728136092248924930586259700239279144893658715173170228854717538689640369197002785832452931828409333121337287989353940857105425371214338519416791760712236874435970033926035459795796702521159774400693454540645899752962249907504342767128723076017445470854354052622752735984563662177267360032750364432256474291710831564044741561288760098306187217836703060212212005170819638994858843682213148927754210450549294678969219183189995859653799387431461379006089662758404586472680154470915795880145766487451869059027883553754603993819748991871526316117663243016905782580337428915929952075249499489487856794650745652163406251933814118220151318433975164726875211438084631161483015050923303512138098601652463813549035089391986661072047096641630297785650905473588537482184887875280707165013477693994329906804709970758427617597866597060683312352509925586085311007776869102363626047647312359187435372473115638067279377361585079637327716682499383353744483702337632591987033962515025637978330173677396223654483319923960438267107949326741997633178778254940311660930344589776241014891221969466997482275367968139656142267663730484061121930167347454100950293287167093226885444052814438719238502831882906613333710702478666815689123321687927091293378716943708626249856266188035938646260769717597486208878787876618138662452762412083702062438426667168438222238280501714360975441863257815807110110031480809870570266524487587641655777976812154168134200459188446472683899501214294789478325597274362191480503688658724960650370917276947215621860860436552295265339129990094536500091441535348934486281991491038022690651837161422435969083760942125114650288408452022055844507421259094564495454944439685641723782720425860422224582989497469573983441482034181731090938735362048180448408276855606616175990242230151908787878360307664319889901279772459681361315500176669027963361396711949952001856948192050724982894729516536954486869441663878632746519580869640433688753357594519579691280582337504043741553013940497490798724888813840140649276824711102346175269001478488511492030422996475160057962691460805846102793858168679737090133122577477966571782549382415857946668814091595545627928195659324058390995551496461274983728449660750118956719264841603370961302639087554492655732032041993310231762279489099700961930278430415750043953084438081991226566159036653717412350891137055186279683461919061991742593038755829920694046115597554845387069528780234585827791416426564912548560230312766451649298261008606853785374642098745721153885724725392131033744481980130390852292559673706205336725549136419613599478346975032820134450426018064973448129367541115142639042143326991693732952750213103678570220174874469559219566906895636768624030070751317489091808159672492857422592327511830112964229513266206606586081692197207043309645387882421669843303037533691136929156966432765490376768583468414252043239751966467412349492598817660890587470830509158364859003081626369780276714764051234046238819289653916421210897618099797768367343282789280256924604949049952067520707804041463830155812997152980483340931932175138056316831768207752857855099903912963900239381618038734200446067338050323182469585781995038655020333583593365522809094727710598880374823509330141326135289293455646342748860069430876997243726371796756824404489114591327701569791914224919053564728812305420937513187223278086713081155738824033579246655416576970819513100334398725464758213384646710542214555735308572597443812618750652815791613491788308191211891381599999904887580497700822432412542626235735360086828061441409921146164000844584371736315425512957224916115897698142193704133156385341663412453239949062644923384148321774036727057231691497640873802022593775199930311669319442124605850859858505738026589759071185165064666643891769981994731125518082336068636331019990882313495757810262302827266618011128177404304746009466463728644144100457050599825574776126764097604997049085001027990421399420526742027812524041285129332044402967524202835259414991485452771718719341598202653141703330553545755544545500702159110912030332694962881404450032871186734343126534054027497740141649768721780632970616255151835030194333780096075680474530550904763412389881860002175777916437194189332746460039134880619666653034930620563841274875824651724081921967612436373158692732052658128169185717768841517256977924871294181931074731534132350292833677641949460399276865304677739214400113134509715967724886313161620427480166346310033312598559185380563202742353199080111137857123617309277714262194481458088824901974299049515570388086244780216096798265402075920604244549434776147003189776540584206375146420857089111923095353945267104328104413548931586219627098806983145250086796826594488017659674922294282085305594595533123841629070484100026225502154181939423527566446805344550937514355634575570852510625525335517688601891359888411764077614406533227184646362344636667395370705428884139956080333684189602345237607742313763039200477063313539056497919511325787175714703984895035024782191140066749247788286913011800110831686804818694160204469817281049384966862532958955707096749976726536071301646804341687084845268114312167479555202151981683437249641044105456068104456121540138588146197128121748585212947371833634136797669215553693543779557797917367834891507260783968912433000017860084383395093620997599455328062204334693594643904924722357994542698242702365936862302606989801959023743200697637704288022371306095007105643640241874175972612990412672350805127785430186042536413570566206436918120886347038096992325757472438996427348524440499127894256824701847821626882679772847841493810338821048291033031527968614294885968997953194581986714230740192509318571230240682499503091597222460902340307307314594864036506749234993260646550937095025522413331554793004002867643843656080820296856822801795427051063453765651335840442411964135677795345403440862291223957839691085412396040892181367287862258803288785605188090986640971762170285788052893865354533946501481533918698662104871517303781510298953111258479841165713259974739890728136288345009912182667608001574054368384892774722073942455573763455330641897508277462405882910271053964739172790937114172152893639262603243177569260786620007318514102863420951977983138258040107015828923659453723862318120307018400408334465970966838836809504413307958739703946038909313515822851526701312680965201980232101517013556730360864028961771847698542622464607544952613618073344606630015987366259653412137869298459310198336253594762443125354869133885015334618289790092362858131740163587743404212705008004563910841000405398833980409437306225061723112577059354525725119637862349777585678926792835946073386286914338991522472463209305832098795637471939385880818951189793546584168314573206288674275925057955552936159355781152054822639664281096844919193061483696542703723309785517693769754210215145805242491665094126920889143078541721337819272607411175040961482520716636063854658838377993872920887741659292090333156471410978693181393712888016103677678732172637776187255949374208818845661019086264968887740223304994901706873296461745939219202125312464210086078637297174443776605210076825239325383971974549092113189503786427378725628340619058457345749727424648934849715056114717017777967255166884365761471977085769508163121293252674199039287101558931332149085580714865056572612939164981271422004795933950509995243968343713144329169843879262240589726658934174154763014438291013390688629959427449308325696391146686164590137879515762130406327930767697372889151424975708740908418697708828893019760108540480463243666750479461218431658070611941791513760010003887299658426460047900223660738316667154060446435650881897719493008737941824385221686234411522740035857755136050913004380997567005623511458737923494075250865968110258260856560528183909799680006309502105732443565526570217994105290707447715996892059711350149023954151918242207721992979064880296532190154595472528587162235269832427466707653093311347228042604393332638432583257864743264200794887053937845710729828914055191742547809298181875683768685269830374694545095515652037738966293635498467782911947417440288591005151514100440281778467380656146513424810677646317583606911024102927759629433559378264572150149550687271410905080398874520346672640770371698288370926576679480513984187865837405590217010184137327771044503233431993324946853399150215247821656769058298155820438090377177371226313328288731213289226282778132210903515573133743327598219962995369842354158949275166514366122679286971999938771961530925628987305189290185617805810742676786757387121313689750806552076127182779324755464300935225998817086458568010851728654105125140553797226824880597113115365605514925128982197213981457720188421743606157873636612616343008160621341507224581887590799065189268241210330993181807617407144989933182344206839802685380872394238988501831198830415272107932590060743302447819788857531854428269240276895146478866755783822078308815197292594968014893536842256316628001665247968977463045647538710666169286239759843323762309966258194153397562855117412492336552258299928299149488468382495657007339747954936050012533263001877710010514247385698730912591227810700843815197196037289375883861694762967577316857978807752690627730076583644500292847372237642877370486483594302153139720183782270005785266064967587828419684331009277548411272971437185251874777374640524156669581689830977242598917399388278834561767893825596700190529502958894473929850017739693553047720195172355636396528516660175313110824146240489474678196317453593472126481410884475680186624154925188135037304105871749522750527328986599012421713449713510917510107021899167890053522603429861182648838230868361870845071643422815111154964036006842672123024769928154086453976565890430426734372433165806548958764165172935449922688598385026201990745323500129400885514168969812932353887130389343517691410480275577150491918384519354035150072544494417072078039014027190013168012352511317250875711039967874935983604410985896665207265617139910821193312112477737527408709080906890289124842513229304226776940934490743292635237113800469750143898772116911993101582516075198338355377599177235860411761071175796608403714950869540847652608133940219856233127297749803635036407874149521068424339551935813885210350279782231233522944020266043436804823373610923638315766054357758131313580538977168084005312444508622435389943053130365104081919731697655511458038926406689009332654210911871343728008834448440021133205127024247762167565425861514172514763577815896962822620094273949172998786935836025472762022102382160614035087120918419750821362703242764673362339444293214276768807944864438653438320698420831140020873753142723543247090033595027263848873995209034132367954296081592303015797403216815783951618153857311526396665944663124847524020706728773292606524531992668186091561629803115586716124535709191458857116399133300025104861986890463392405955409279253279681460769955925650422344421393398338294778674128414741936780546669529887714726180467793741297375213292449981854648031203472676088491867116949695846412850042969775029847015811542419387099815533882189573716744755321273356168727972099365213580437832465394871377218797552576311465565179635029536082215206684080720887406786569759090686149859790907206628611456830695282473235073827617607142353662571699973064646645515835346969571593863113644994106043688456292966260143417550205674719518071982163715955202416579564681827092898794886839418178504296627685802531370406668284823674526785557097496863228099763661677803525957194866642659285783898372866185560305858765891771219854841824343362850818560811936078581102997021451717450723682235253676103034518868556007584946034503449958124370181319091710976756729895420843117979664606448430568998220528380006961265983665920658654348295324849647171240987157571375562656104258965961947380476884351350542468141231463542276663029691232610140527131428294121813183136809429486392485653668768974683832939892934048689531808057759176965203141867235456773584791560426232360321923436490174822440671539156768764880516829534957038825931343345252091726644253661235084775628269285986104470164313405009829529965937645679290162965316324548693607681435411014305976406775523739277787769556410673368185862567288710799734226233151750010429192665986967813214906348881497433134107460958874377184469380858986136418357260504126535548055172140463524077967841614522118506950758979523572991498219642823400738598386881626122993920211161497993564411535388437312518471304585502502179039259107583754976257258585781467147131776072032180106608430974857550692676439069861785983311477975772324386180217392287641163625269560299138290346920527604829834785140023007794089741374356779762117357145351623834153702363633669245410161443624813633125672425184023814788802213618067634945434854219064680359270119730909986177467556946176919432212890804678163868581596725303006447330187516613103394171693841143953375509937032468056789167092433283188022434974190664145411355580124003643086980477456517817990017078804955397424126795302770012017252518590659123456331296079625505462614546213223771231032227138359233159916705781634904120410278614158505502232760498597044142350394013926506879753656367368070325612123273550115787977340649851825610212895403016061294329177416935765101946210555322462287770218383683844627663672602398434351232932762012380048958975902314335189288336720487324985306089851304415893014727050079378257862123595608043009305723656533640961697428554604117736575857597405817954580474829874879509670340140268871068621655990827076039109622800867820415811157494497332261765559787000078000495702627277120522518371686112472151904791914313686311200752293234440315044725861178337535937756516779219755225509530612579712481869186110392487656119474628359622800840755486038137339081901486021224313651025195042835489262115818159623800942577645329207854948222372051591522315550696049877595561148351559805514039183253434895081922346776312870600537966738897333802259806027886942662950741014112488556534241605973340350076505551851494671171687327234558666452965700736055399643831769176205127970767509734379775864944771608740976330901552553266976163274021301797020750145495751158380374124290531737402818176502399933616561587779059335561700874633546368804144713328138111271768878337635246779725423462417098639905091509120617074747594473505924435999713023043684211450381720096801970605987921259494137356095411209211958324646362875711040130127880356449493242388322047423948430428205105190226598717612064298466733890301726637619755084868429495880205283566634460230926912025802669069751053587264471183184039038367308013989531959716546090351887927610389428563467801873113573878923882253999091704421011052070569952908992421633987342824829069938476645123242510806128998857086566017164245723112730439532379198435233649203826042062249842698494788597477343712166572091480539119896636246993022665272334508828603044798706126441251779989656476150281618972868320624304594906223604615145652519155011269943483000293177980200119595104485876300772930895427627754651577882893490472290367399493784842051181941206219930672489083216621312192449452202168506129226073977732657923580855211564337005614200359311943041733559190569856644079578755945944159708007614605019222465367451429551626847795329480711385551052981206052723008318526493477022109847059678118508748013048508929054253287838278242152186073457802415408056615606400455540405529496493443334142992801590485757622661652602637045094069822603854644271658785374800521436090800521684560756545802052024593756890002674641290257361864109043465046711412482690615805824788478430893679197067666665104032222477927872870987096329147182741424358636586595555437482567187403319391096631371482548067123389120977146218028299870564229451851032285552466056093589118870181907033030545616583611185482756932575668414491299050909311660878262959048756137155038643125873004315231857913330438832030985575073437529358139038725202715393003381048689662192368807677122862469117842048698529723934505070753397250911452715199583722077783865079997415497804339128747602077928046769296767485592951298418861196122591239243099683361403600318533868992266211463315451619276079906140132835778924371941252052627165701995409403417525184614375470070619455798886042813183577335455989553102918828788515271174615411470267268799028048395914206021735244885488431547741503856009328076302572616385464723550151108167400447005172079995102800507377316207590671588379765214593214501365435142586323600243446412220737196045441996131912816351248560378289993810289993374298045013233837000902891499082833680465117955149398054474476467805363917463448505642241095896776959691467586669923615968598687804992780985000536971948827667050964699985709866266580002563370232092580765513453723049802788407799233804754030800612368498281795028440935185833180693357830258401749112751068899168140444148912789259932122756122298465527005300907265721466379818853367721058639116516925326601306643498065051456564673545231738478249974905863197215400685220820323214482708723827160677355888168743347937695459807708626855816375831470314551778050392653207570027651319441451906079425203949791092854594472359742908283608216871374608807839540176463756374029661807485573294828882649192548058982397119595826512489366777071025275241887430613440877102721654819641934849995373085332893662757364170761017761551377899808330275267560476075695995317490953375060717397096645832627714162440916238480265735397166128409773528154766933975219155156099325838857716523210580378639392450266230868692012738439886402089127323363567344588489207055696500986185278333304767071575132236274661397178497194566978578958335659108985765778968808649426972331307213265495145018058595296038232647585874491135299075919881982868535241381391685786319566978634440051125402546395876574583638517626824954382775885414062890388870750203168366991221650645201564012751683419239779422591009417208406838467728588497623444182080665912560534496958291912700277643094607050410624606684931788119169256919690937293793616117151632512746795470774789737981170333798351914920734948182232873049557702431188659352736907486535095567698513495089509709346942356585259643532136365939450161260230169977368798929067721577312477427016004938242327939139571355753709920344883440464458996999199331894471258839781457521122062209266554599669428325301134023454082389327894205872107445231673971509153975527204989261176048522844893702569360379291986981959424163867266152966409828412893982496005354408197026895366230899413607647279864034618422974865539871089048526764070791945027751451489777548114612275499703055057643655349856669653958225553610127294472105057870131272835208729071778689669126418537748459780257149076793938260376124676472722171090841903267272650349905795549869681180474179850541194884387046904668321101330531208859651723282003009363758122544424540789036846463303303562838417304400721686829766685396132867373459825786627629351171181940249969099523277569639724406023949193498276194535969092833400596253740116879010609418529652575586435396681957673904833759889678460933738443606995629687487400586290610042602868207716682009653170633593183213049337846580879150701586162571667789826716499487505804365679062915932667127707305790834910828792515078709773698823292162903736758119537235751494256162976762795864040075327023281011982823248107535960903166995723328845968325071302781262719591409244614847201284350501130761806327008660691933045793553548877496431770189106641609538216173544197197747579741334535362572251992579212981095365723659352730947576870746819561086659119511275777059404559617043451253300089333548457718840830634295248007760408527289274596231757838431856476126772879035330185923354976376880888735565082450658286999457082344655466533382085256337065397659335056500131717956397158384365531742323723901224213383352475868665278122777253958295628877912138529004738200121698073656412279322048296712280675441874437801553080503784083762089447335897051594841281326425468608182056745617793948005064835370897261112101857462754289585861547178740874689110307324593257480600881061792603884442349237649631803041673764657240494958808352338337826829494356678142961140937013180362218599529738711020928319872329491501906398690241288273499136098951384429869541066861040037629893167787751674625252796477697694572564658607663254343221512017788147946263076043142038904750978761593514106352335527687214249299526491122607614990537011248301545963967174985600590618643097423748518650323828863707815374200152162690422413116821809423568184626409875854986326369370000432315401338749127565328260786139470655287110214028907216704043931492606452244421614446908689164428464991388239938126745421640615870306836459517584434849162730350464266131185275983516452543020062604908553799257251865435307120946016391493085028985858713844701524464046439125531845254628621108314345737131057573233212758882476980038304955468296595403999649273674216638444107741200756565148740233290791699500647589400186581799221934404733735297250517435526259521416528402459150452837738649927898206260706196761085718584277702147344246019072962847245092791827646461864773075903972427939728350661560684265407934730715047873141565294830379101376237034087131071145853824458840756460611049017287610854980723424855980810395554395977925728575014941755804283705929103881286683556655808002210620321731471675943252414535326745744273590474303644268112383090301180905863448983819905076509913629940603099615235857891467935394817938369499017310378944111679261419863467230913331258185025906984767754308520587345666367043710397068473286579823175845641147316687387139332116463281755492819958618979423842942840838340029559545284483170734782099247968240160346533803521738069148759275504254591511931840630068231859669324275324414504289220600158779082986754364483200227188256008159284044695043415043469049029099498158956982988749778573607911977717881544579522959418751052293265061765377057897175170954371338624616839914920336641008039833948322762077824591840462270233091417272060001590604617032720924874465373761726231316914480389066403431270866859084157728743737001776224177445713984455042348143173150253224002579772317370638760839672297060670322636391331556501403403765685486417978293672365292001538500462906039465199982408083307477194860583912816289437595226614703959301942959409839263901662174512721136816644405986050068572717682533143913703698257404893536726383828201301819814154150040243585172805504431013867297474904267639696255809678566700245480816344293618100005540703780931823748103576582040553345778707505392499264331269376538262297155007204240905988232615833728626155502899629406473380994732325267545486312251853529500945299565589193167816464442165713866826323765307162978521212783008831045116215290743671331266222211126753091671964378601914965675112339803118101738753431715389205759287389184149150587149217392678134603318628758415537382616477713703723380268105999576179082244210119106207855197935104727031040727709343350619405786366195601885589341058149338193492449591184176829395971041423602034573615040446668406903419214012933877020656036379524939669593561970890823355708193684282628174388024098858473439579472310800991400946673756010207362009291852101840821997445465513162838318838468197502036964458121896953783168723118941724020394513074158031813874051991043117399325163786102235852278614048399171876198233729582373604155029873821618940875798320747997049123672986335207664059228858374767850478919980804089151543157616892786788059192015619626612742658919716125415199809316143626097139908073500717342198681418194378399174800334734709834949971626144777565962004053754732580845408309791210120762594418684897142117973779381228807491565797486407932802076562603540440697529908344952558392369908139932739983931474826083561991049937059271567189183466957392039023113824699058718149981307490045574006001134279158260265825899150900164166488076043487295478093974149888678872199983666650721670582057046712492316709063179412084203248830561722760299377054688546940156025110779635071341103012472807651970757107506425972186168456114901355409523601951972712451296066231809849906154462103926397118399950147822946149497493050093066568021714404076038890389136688012288849775742751125630887538369991714497224069520749389529618867699524628065181998113353819917203741151108317638174230689208450560183243361892370538442439215541117936071246741834126978754530832456539181918722069894867155004801387845244638796056636675744817076419115976322687474380097330222491135615657642296109483662598844199563962573149111845059466759185877628414921119256259864383323361880646435497593085589243120670774356662250374999639602914381892306588160662658907417725086235980971337480278072010786550224251741232239022682298788002269121709259382090601336754080397033631448602577168241899033562161000543553606351870463102951975375789039847671041449498870162144773554844029133902585993824717016053813594390776039017452945086523080759015490186356623988644370707484293238224919521030274788974136211038357771464562243043894848288717275758738845217993076967371264031867323926992012470837142777107572149118299088895728001711518039736804693603502983307387436114317608026629048980673617529731425970482248950251756417331222488932546168551144719897216666973022158262621144639619976434578512972276821885693135352094233569997125058792880936664103969565975233710342354758699701021521708998377803820455418070491188094277833188994360914430178827802081624946926770566206634821107664067856853514727075475834288204433238263427180535139369704101253904973618379229513772491523868926579546717627922295178432731831116188996330724922414065350041888071199779338309103662304705473987033936771352760848923344530071767832473729682210464717801066996390034206975062069606086122599330554628420634256862495797979950058496055576834830101290963180673435548237328903599638969004861582359490793931926174486144215079049928134562571409667313928322030195666910855062753844676839127136633029979051801469410362368269737264984785055769061547373579915390853727171586274041252118352410234863400865730228049855648965142037495852446101209282626807502364904360238009698716026795083247419610295820661451849103290842335752092883975987659708915412657902605864138767211532248749734245901073551504558959767405145496846956314623150444240870569522193476517903046523801249683427525643818955106006570857479242250553731305020728740105400532034396265978832521715459347536226462762462698251487932477583699528806788413821054772232344219643743407938283640840672276657964404568141461774281899409097285601925747742006350394826403565197038558843692988758742886400133250520256711916147837219712455880949217740498982301668849963179511634671694632424589283185220423915198306724643929373270245592273861283817454066065227872207652788116625402699884603043149247065903370320884963582681472711489537978680373995817495333753442159494726871799791803980172935887094715958481738403152308632785651320919652419935587077346818956090665716179918667498245507012328556625370326304031962712521974451130170560042298100234245430807594438045226424607717350167255570379987632800755383114983199347706291954821321723833294838857275915665147352144900893954679679059634615320636789513414997846162876958131319244046385077037675025572216619722625276889498996215873932849388997528195105581737960581282907444830674895194732715775933353871600061423646182213375679618453963994292814923636607479883443513344761069966255994987037916130380496895454063738617365664332309180427250695320178205027115147050700535347935031301710050536058633618034765373682046268094936892585115545842722114286465734435803152514194682352211830489471606845382577406280028752441008157359425523691045536462486120147975563357914734545091510064065367984535680017514464890455389863199803783304155455376093336626934791681915435729697689638750121925901225554743478115805896382015892699163517523995269500994075768096219575543256584785608300692477933871636537353908379312595893988033986828821759515892974224466944921415495342766142798369096848134740517618379057219404150593900754453093550229340389481866779127729192107881773649950123820762296950447956015866885405003101886090461370950609974351071390954918814418631402184449112273205454975766001869894822186328510165219674702085922409610363560387899711318884103631742631156315674705356903104492985363048899235850886871080634889921385120102308385270350248638832106889069918227257425541086172941324463616149093051423647238618501650892985739731609628692811543781146020444935128268747776906029613248785728050024869626576866211430319904785107159026144968147825170399727103331153310861948715703890493159533985377528004046718520018018627607012080859568663551828897224285701577173421969783094611503444398853091015709340951896289916025856574631630085537282192126901869369031399469585213590663193894503701610399924333227233723689655585064834613711693774489800215507645663513576068900843833866341980358032071672152881607034055779430591748235774589623836223406443240211630729980140791708694896649948410440271318189858540011595389896399388264464135432970746463758780740639358299712996351319012714247903710324584734429271624870503604568757339215334550440977132006777927588175141410490725347463815153985301589697675011775026678287089444455724716486771371576586137129376019456063503383196679828134394936470228227618155652865929269894801328562882654832650295641836694617285308701930303764495710193971415220963371104162136963659821866597370277334995935451966761641685065024148462928835489930630808814419927806265310209342756689398338966568450884844338195627342789256142997992156893494740249630974206539661967429825092401922527610989705883375740570417879189353148917208138537193132383133726058985433870123790708081648475064052535235784010684972947918094325496090626567366892349139450419373020862609410263832146779560933529508808811674323501556047163049597418367234465135406374039697382241683926728373291170737188491562520625958206418556586526730987091178736904257252204300267757580784605353696092292902194931710441484831043224707506338748968425763630142010340933561893992758390478782067458823071795731905813191586483975161604044881422640399589411426736237945303327095931360133784760056600432241473261691811680039126585588084439421333948377074514188191893673111079986370277868559915774389692867320698962871873118151753474780372123728660338539053079003518892971239083007201112498624381683306004485072790059497774404803985157537714075781151260259167668019267266088975068443548896450468471642323627047365445467818761747345598920388961135649221492508044013364773505191540149379325082921658049674783912045372930079605144625732035506348568824981666563764755408982730553681940849757638143363970413457964831610222521056200611935301193584132881552893181019402056489494118976835560146990609498243036722446956224126800179391677447725303566802192298152770704460309222224131875905268652309712913104556424846908695813166449097345202440415055922274521477278217659207848069384400075176063421103269714742671549406245778375226115391425566731480400656445362168179617564779048170397085515306344600342957762394757294500177557927925102990179984162719029813879054822326173380504242706977616810612155155232407637558736602779371526569517026184241295744705138003208968630006528771709066501614310661511414542822947676090980452053308015000506293545113380691179039927432885561870146148674362201020315238810921507697828463600307869724468332566982244629360378459931023998916174482910094574397299309793156803069505454122960161726168257993843068374453812262691379091921426722300117998625722231743347373716847138196405652964359648489957998337812387082796484580332934927807859762092554881587348219427693722237349192881010517346211430208900723994733483409395486854020594224091462730217225554276364153763507525170505916265075512822794510175802671981517181049580072432894907180952346120548068033364085724834059288892500215133002351326692778144520648644010612966518359305216909857798673093178400691723633188711625695162147438477812591240943743075555960198323928012150698875400242902835691740290086997196917855463905540054003508285649710084034769699507261221820112834734553012478547664766231728848691258260135621301859674113523931501715845663999226897679923538851082451122405905922010891509693392045073321508658034426691655402542954538244861477067032375404632683945818275852549324091120742874486030504334552358238030174530556711744001708725188572423100992063854390080809496710978372306999846176296361314785381000309389752636658922398449255970435955987605602031241700226016729496839205673536486494944268373100727018194611587461219570700467143436989537691985691791630825628627519214894821005431573603923359803783235532051005700974704089363573548857685964351223191204616551024313337832977698355760105907915161440684043121163228501871956862077775805987439898734428515268708849129340321391146487678973645402200263968533279406071431674732949858671843312384385160070353675030546503698848041572532159006514048453057236778158912968140280278959337459937132310557452689029798301069333708998643775397927067739509379131750290889409470261468602119256591896864964592979668756655426475959169763542106983573809433086150325404684277432340280207353231305610495399786931969732368609057682621234652015859967561420759417885658247521481128698459394735675658261737337276905843032833840255316733972929511619179749805443785746256171635139798295524687082035166471776458885939219794273055575239674841896360245457518433455295064649683115006376473859152732595743884420200228641669730913840486430826736983871823351158863264807394199530321201982425933585590140071034062623371633665327504977778631731411691691552837382649529960878239755388970995889876836553926536721617433695475572131974625300123001526094990475560519169966145882796559530763637390027086021983905916594354608285326015591990051086802962502996974706621562168111460794401685675995050457623737553874571313649470939688988770304019123483451926238870726815592193953310870910545937544242686622320841647955177940068713318912022608785674263639455904445859088079410792395064581383043605636976201777167656081026953989493001730605041771287020780860556476312341913588762826458419396129787899538320520035128103256924635955697646906732287727909873208206410032245759826161390776531207892588838000290066878233781951445042704408267586069268416321735943845980787412360554421813097746458178155641253930450052679938765777684459305504183754219540726893907770933619774972736562422135553421239643814017602451055816406592525122551173097434598848760956178491036130581767406646906263380020888214831978625601196059793204493072006593863131520626312908429438119974563155502165779362783668193014842428528609927464457302425399200897424044174621977687510495370244662326281386524786487201430018853944344391948012346298379738263359413895489152071559778275116316884926830312540587099590354184868189807588592346374448475089131350200506838840728515777867659415091215798717277380447145218468202452690390025143645150599111832157559388731674765290025583334839213797238724967244244055990970783502751273890679864249835968508447961506053114244177550944079774463379926559492831306186969308832653414943920877136039319334439022575190352005865831719653774346004015472974067433482789153813794898347408057643908195834236302256082870803702780562049095831370438279499148275131733862060767198109411783474156471783570176657856350956688993260977581771491389387623815510658625363235175155165022255895245534124419703398136624225104257182247567169065163623522236789645455784302674447661714073038247265808746143812532588410282824597888999724420590372875018820914544841932718048702000030756916265408459112145667326354906510860778207019051408336233144374212244797821365228526033660393346056465021117181658372355595884080430471308537066844973783599267791999606018777954464136346714064318910818430689061351729039289858495585473562718695056723534125955003358917838399157759345425325802706760578117466831159504513371519414089201130886494209257837373101349703418882715651617010952888249389604337785357156927241894364455099138190277866442101577202749474864048361614354989577237247061046267571709248403393682035269501082816065370431802671303282842128280127114572089955925645060210593777411527249121953289033758663262235556158629617650545258760837727258529151606371298766308600469815669920601797441129121156309624343438821111614810976987330004629766646584563117835235434625601315517760506913201548184717182134095141378145276478713412886106081257464059407586041514778457307531694550498966880777274170132418527742135474964797140137202082775439549222140425655135842484751141693659539759116989159818292271848818319167619763610027600583090081429234332633420503207075462200093947975866689859548263054546927329971272517694702138751518084237717993799201075844009154873282915659125573222237567365983392439085651247204778459621166755745733400519944498899738674433425390918018472898527146327227907079941648663471137842193529919866436939189912032043241994287955039463338113742979165413689215533534921878721123093416550892073892747900373481081012583612822804880989537408134794528588656995176866468613209445064769258533902360029897967531914001190884444717721457638051502180093764727903946267258747907742189309973852420987026038223769316206791627888243451125085574134002434916616299458945834369286238305976972837496815595354117117755375957043879795021358240814886219495573204261040518373545275648750671160951306348678284554020150976976358821874194483708473881004427824525372557041181218185799405322062539637000747711676956993783940499276133100720338115005289557545986767824464963383796162846160974756031279481975523722317567763611004474398127124636226057779820911470028624481633940921915774938725128092108476046302969707061888532591463515233141415903473632846453548965457040420236476486343653775871898135982502216107577274713424867318046822036957683455330982024680744741116639710846516135783256915834109360302362407277131075108407651145144895594318483617300181355192153500727068263952726499447759497868130934190271524672271900430414227573770701039333736200157215232970718918352000626630518501660604182552857135019180059114997178691413387456806975116902605800537854079826045239742917312789949737008773513332300882694644530748906401554538241420946765703756486099473654194724212750544646048322602205992471876785489521558944185524541802457854478888089343764192373815876811432869863016439791414313093247384606718584820999271869073120736110646783941580672188440213904063614487924460417496316117159905486321571628170984993505973649184589888563105638090576329671303277256428169685002410498613701099685201840931341182108911326217329543379586864824468292580425383017799935179426259071509244276522305041066363839376563969546005702438681413523295122732638212868345971939451620764791545243486005139841929813724511923406097298871214079048099328003006561630499954038541252985800941974595267920931414869007736465823173565298065538538549843670580560256960279696046304255242545611312135171027213880242776540080908175410541449486618282521446011328891291566405705660715170281445628882884078188461182513093712406951274076249781646639062542788551894343285089381522583336517590661715732736119556549556155375336303023848014325854708547657626325597985340437362522603132103299545274104786644913477132697020174883887243447769445666766648775427171774143691028403109877797115117489233348596936743914206762331608843135995021328902997604261312800230116758830097355317297784545506591221467359103068032425989983117187612558066408414623499755386187210172120639570694660185886250790036526258543084219206663776614396651485220415645809625643239057197224124868132378061035521381708664720031456994984347319767166553144261169630742190948072471590408611246248918037437714994702216398364674984045007149098146091877669186103306784234818340052917808697849310420746398114573903645408328367157158646182079770321571949707565177376926999354112037153674422839381898312430464617228062242122878014164546505032346416977910227363793291394743551602561785663956067308001611286302513915671469983843280556148053238070633673505491321233859719293647060344412309057807072676181790092789661868029038443924323420170759662214808306215805481839079410460001309533291261401247133514991213009345706173855088352868383779084001839166734932671533281839790809276195044544595794123887007737412834753220227835701291319100199283083549832418260459491240884227073045596836471693566475933749716155518023883091229912957951591876917739369983825456410566368525875387516590760975514319457808116820792579982922275672249655037238011883985455693160284199027154779479212815266372007716634355461596530943973499587168664757760491682636385792505377609697451839106390261740151041334042059346911963943567476522665967666728570843819491911056708264083845435401176221091102085689025405335193171595256199029131704145850458248864740486183632771402392860988492042583104576579644053851577486709807292558648892462044564036413857392188371820848131104415042715788283067894304709484930180313171493689752581807312473875877916144881554470289651198190308799576644157943370844464184072603015583485333588386687070758432499703468441276217502024742788435561306101676437078576678376249253631393739894242412728186471660974019043526572943629751675211763711726546466035989401626380509468273972485621364602992909484805185549155065441820038139871887660643111203846432850554065482089540947181952009703734485937606015919147220230542881490136339223903249762849700446887999531673030463478043620707203927932149805576326667029905290357598084515021265758401981100342156626688003582135454749098755320441067289684194532485027113676681841573583800748659925779114399927789725770614142164228951338618591688603916298294895195933411382964444814013924550410280092820504252876538801958903120416244592531724484784198364306102671625688891774440681239920538104890785277486174342438458586009355785506292345029002264677136416302322570866472140167595645883867518303254605493516004640561811284372750727038247555379123194746949512591532628355743271132385931418667236222489512092452533955117632752941204330918097477620438660643888442312550630467182439318140018352702851444265666098223503284927025118635500103540222939878399042400324249873331106178239221375980852217973546467349949335946281283842337971730215710855315591410980284273370410706101112793639463604778422907256804033242657190470471168246645692273614789691315550759463125814794105734638545575235941267073871435707973984960631261402352808989046117690296785700717776702533694759858265763542328651341404316718650220864213546822425891134102667876081865622168375469104376395543112569334314101183139595862929150283873817562070659255817599000918677066567036339769493437608217411528458156527399924108681905232987242621524440013876370290317387445215698560614575093891423751464495562160751243842682307567738057635218005902130277995325670332423326501742192284331340493849193971150553495151442698988459502413290823202955600410074239048713480101718788097807469894110066702142108663523784990026884187060379001238191227817673690063991739347591416895054056133783805755574868027757494806607650283641554583970563178187102151025726285828706047412267776392867604702331499438749164018870697086667874532041977260065014826183277693779893154432902768300221854279782130248409599540138199690052893579381514063627237954812807319967441520501303332747882779707210910804029323166991431823308493766458488141751938138372793371144873825162573941890544885739897699462118130243440004576467548330357639483079807853564626308984657990997604204924311304746215364538431676326330760143559854391937687544502712550153934668461007095800375210070821482536577625320951789821512177104689024015726610042224913382743284904803646052898272753117462886958386008311987920680547633422151278869267544595044221949644634832200406542249091475536493518677512921347534905981415544461033082653451063116780662547935577478399872820763166975554722992528735597935113646865885542547582597769544307764029278616073480911355527237421629105024579193954355124080230988310290068715739580556072928300492038361716572517485412910270492373458252385234399802458758260787702534093124726632042131882667004079574591883322491501794293300279017537527311448704175794585085541887727921634351060798491333446944472019342047098836154632780123074997597043649447477546367563877544206888525770955943385535546717060832600266243921838977540533616546951012453209545220101456242072901556094377298463370050590986899960357359125459129714953911194406640056165031247190398477650779633501718682686650699023509280835206514317273296135093314572514130459267482934803362313942734139001994100199383524319393353932403835240823334415073496359261232049682588878500079714122622059869915096314608007638538101432935844371059012465778472379861338165582905904098483220592584675144727574441074684447830344881691702597487150812435053870092506415054261258570926722551494126883103629240315918598889078230291147394782579563777948947213770571442097265504065726340438529840970921344382043006215442050592062256412948401058309053448863554359105143822420805204089877019885079749503708427975132430178786885750584960751893625855398218323930691598834948294965089874617996049448530738634315849026667259606477508867107232165283961950955633694149493414372467100795810914670116887179329327030612514548511173919538768277567256228166931898803174128053927168127596583714816243296780568719541101148067094176781285656843842448035268118003403896325593631335603579226596430791086640260448405987796902603275376251179664221068590818416548916296555913435930652129619717533256597788851682319296737327175312387386329989072037770875529841144490178320135812240299427848270475388118342686124939541145612278499847998396306624946401643901867894706462219209071640455071140088230331219013320398426158243583702686598310035594236864574782392856852531535148845493896455649985529589190742839377994368197161373428635986149928958228591215255948698116087493870480183359845056157216729037480185214867028907977536585829493629731804695200695516703376116285997429700813792307899282579114375655467727536240428196797196126797689615652757362791287313694673843863111380902109252590669422352525252374232129186528882443568131758583487580409607837988830333614639854288491115648519299592832315283182407721974662167730792504556388485405341122029839855731904348491018695024879376517117228005411957915789140967317891427557978131794687539513556468182678931298947918785083596138830543460977462892888993371633938087776695545669354610336037432729980456822563784932560288669567382504850110214677578559407188594869525853700099606510782273654290559682590765868417508299215375125993403240104501132096573924920526726770552513905528596195657174959054709644840546814807524868916962261735875533178054142265109039175157075575340512215203342684792895774468521107043321709099038965795422101707137647944970147012842134950230096070915970035383760880352999654660018158472064557690257777523754486351890518890190861226068562746471573131654313186247879208349497937768067390666845821006989342639190150737847772398617464409397921637299781919850069273024813794648395731963372028386948631816928472099015430997592531542369140023881953156440991861795558670673674816655017965074151444112029263741024746359946481127633659264597689773319587848219351503560816116342918184367137128275030807295327484593296951198028847067150313277134031326098173781751819395499435354016999607716194745870650548323384357829585720291396667796052694767532271500400386801743114804253115835082287827757708684404565602939688087455326769662134186140640021319365091654419592773296971206656682860768512612540244816806286925955628890397566664962124592475700631983307864785232160841888178593665308576548159179438823207892985939316555276996996835519470431939463105065794256780440744664102751538590307331924923352616190865523256508321432002373326963236564017830597842533598651615909748824192948381839464868847865101954410460349447228902131433904834448745199814289912099468820547409182413941513155151442125948620515153569740394274058142291541314053445826166735615201763634928267045781422274999374035221158817154803170526491059437506699166252933348487783709904910288427769303225370163389016434678399134894999309810381677279115519282076209215032851256309909338810135591702895149686306054951393827766583897966894336504480830541394484931394960937233089529127955714896470772836520099549921776526966070170943568972664684048598476413830374258209560695445193101872670834656080747940089171380228140075157850253135240458769174776540591119106611040942209022879355780940284764225433613485234031046451457609384590942312626640796246686338346719428669837599557498228456465560480950225884896456998227390859244745212478318411421628973075324111887133744884907417727061182270943583043555252667608582349606020401636948203402964267328096716766314098491784006292744204750688628008863328737933732038734443264990034524256011969394528930576705059064518496446194357569316231110395295754680951085742874862077291118760944418480159608236145664769595820219401821425120761150311970473150366115321777004729746501352458304035703732272267290718708323769002776653384739177601030361439089539687606409412878342548195188243712956452452998064041678315102134081337502379045481557183800225893091065564571240121618210713794721550745219784222904118445014140702841245400297408631558141575554741611624302594178564315796228101847646118272001927952327251617493171347362020729431612664367192573719657266226831754590605340879419207076240663672139588042528079811887845965985407896096068588723598891427474396900545358625386887541014222865600157372819767474513164958745943187752976182969228211065496314233809827263140121047278883066200697187421812451337075730077777366064592770214080714862684353205512349770065670434819088321431041994824864512264136086658731875747057361125334690047797744666484270337124523610967483786132827558732449093110469849977934203341934614214478633843232141111443558650748913787009513587539974054139565788645530539911498525548338645126470284600908444218863862228013566873128949070263016228992468988295247834275252714826678866097412643836455210907779482016300745065368729146305241117844630801568522454782818531439761955228548283088210364191616123862032937013014547597760292419224491018547454325327252209997303194753800554026046726420212285754023376298904187590854047352253292680283286771771133396921465198854492342200137399619266681284661645905342531097795323000860880091689785991189440920594232888082635963752581582836696223259676155929833383848026715947426208566111794003098851481561723927505541480162380439104210333274408528646682173737447155545741267502037738519891948295690838518349671117038879169186401496792570750080564326750014068287774572634987282454893499704738062412180336519756850445805597963919449812667484993275963199004331010017318587646598649294219442921372348001931678246332203947670572893365481366115018748909630863709278721891281919216077002097518024602777029146411775095451940669228433481425342767897816925760878233015743200394923804017171193133854012223304807430477294247448610084452190026418865602569647393655455531942472728753117438472708468165089202756552114329379401454957527549475226171493857147725681076580005918617575257906721956229134905516018890437537629682847036925627248570834233484578618224074436030984211036088511651026621294404675759013507840508080255384012041263778576129934640832172678815856499354258494418411919945287726218405542530792834538443641771152269514805246201954876013589059880587401070852433072425973135268977984201422920731083295750271425665475220066231920905053568123340626091905551351403577024896385860512888182117732724060489957683441161323289034150332385252663827538960266437930450404145617741486212286469249098830193114483677836833397192541765450033118050611208877448591512897105993601369421495699507879774624414717997518635263658032974472708567543460550392372369660887108918637588966177924805305398605218595677983233591294717691404163722000428940153445555299420321965676818856298516731349213179209883526777560518421083029535298339707731593941663573421394201555967590200031597362841398780828665358013619482432031867330960178849805233944547863108961567716401410974120193598375609820917217115227088282796480535311260561813876683393307384946266775108198527857396994654246339947715912805330879386285538858249188338402203055800051879743045264614856968403692883941230418448001619917474645944499866333492589631759440316260209459257943070590615393096137579366518925266777226883350879598187679419799710813957428457624759899700654749921549095174418213596504757046507098091189810643236441936228450245599994644295824778851913196791222753181459894574551331619854764404268027788625194993196142546628333513563737260477709694108739636738101964355476846309485133674837052967118601919877652485303421859493023914272522868093274733702848881211702801960519638054185816897508204792093535442384000010943450770150274796881174535230991934099208011805268877976650439844191405508219206875291957362142501616870037500883249027338203627368494238783008974965694232606806723564159533177536393602918609127749338436012085299937740017975148840793752702315850525901700717070865389374608945642340938922372387830525899588409671544811914484104314603730244614350655529575876950013872461021866981271653756440804527326344940047933608795972667003492716194721850261876282995643715964164983095999702953002468206452312924384627714189358595205899216781748230418356141861842533332203892694353604184202486375086439826014024785689314809875237902219745446631634848459473174630378340858432761408347663915902336232672848150764176976535396550817025806348136579636195386038811613628117680321081385891161291070925938762178375284223593549259978901043070796261256724732035407108961173094789405402193990435344677535508751180183099881297752571518627214429737938976338215741530195725818034922111814635385352659963048641903323436111028607293576869193318608533056081093838301459215405554933224031075815963262190462666204113663608089265498645741872383281285785999078324368982764920321702877940002017728064560606544850407336149206961692736727457859348342553737599477372247991421922458393004997543502269406640178266815034036067354923954272919297961833077023167333182434426524561254223565443085000860601794462980081562767334957424920292684445610320112818969702650998197514515482822465032062473600747030855134270688984282186328025143755765504187195671391218469963929033233693763174590906208983353860728611887287438396549171331674301078102445962454765774368460249261408866230315989603489093153226827794920090325861182872513922981504063282777060640587096987695794258623305235795587844361144206286029423195584192504397144182412729004528754779943735445691919968771243228243510711214357550963786667077373896123751929297154281181820806965206603010193119418897168296580910122075936151659752082895330997155822278189784799305322162275781172966221292404156894068200969928175766939236479350795784890234754763759744639637475889218842993287567565983244932813363684370572202901800392382776783456843794958333450402108357346135391989230612842459115558288418924551271006289608200725691391334697163346008729839265665251024395665288529066871673739628929545492932265589002248557543057031939074174261340047842440976273360352341676031820426478621994091962172912484422748285339210647938056255217576613118444737410849748666658128455887257519842804900040008755405392782032799929269137430262757185434475375631271755322868159871979705524505685860508566023027995482427298235974454227493187262978840067605167229535371971394561517355586422485320798222575188398008040475139295632536334806939896324911230604133900196182611558806647323022981090851687615248025045483247372023225285166490902688109546049138509906603524087574389432678670118605822213439603204393167074064024324777390401973922161428315401596526783495253202586687045707237683161319584103083798790041206131105320006744737403016419662099594885467616191767657401211954028551697844497294531123864540343737111968537830837679551281304562115849347379188760499788117185589094830904369497653151456639965862982710879998096573289325179813624008925410931236142265113223182143264978098065927703754165371690685929342095454256278474492857589709936830288783699781410841622026288121126574078701032623666642714638212765361814166876551370322235585056572771632551286079787548968778355229279303454778372469525076713099247344754707902955349571907471645765207223474431046416493688617924325959929988049163120006347901825555721910521091579727965928179163158249083359617017459074284682529494175792353157523422210241097960442582171390907345720622410235482469148090728028485906892874585349308210454208907795135521958490192721916803587382234281195914723899783110262537435152733976826128716116661040136845891582597677720368786133094509440576300270683581823801518652829796292942070472659122739875630520676084006896228585811724375474122531289294296332267821104008234355814165483572607021003246829793457162628173902257290774528074273922448765724759161660923093925821353758866590137242618966039172605705655684700532579110759574490813312223849997494786424391478682284603420352538107786450704437864659257093650769195208913381034021720512615609710329028746500061845360124833558495563097218410000288837072232090832333515874820119433398922156975258147277434373682666101862706400871568752129214217578489451452024558634556325867932616521469088739726766167466299446304944433760002007245751581040079748212769128901784930338344213701875206149899972173428711796819716199759754369914183922322205088218001421124688375097687147219201152488635394153238841187801506380543841546490799805309941613653576978515661651367546301658969652118123171849870146832109376794794047884730185710353577668049426143514595465149946277389130236915040646152941102361289931189285008884002046728890963072290050733269298993417248812523742559982917340216648910644728977276171704657942918172676045470010237397642846087567406661265757328338582257205548194286359716428427843712661517111833518532360191497846528431638539936737830872796644840265544747535188324400267365352016424450253803159603734118181269731281720585288501026529755613947040286479754668177147048776343242162099572392682846039952064746643791257469409817546561234012854659621582896103517199275581106496592988145273598051745121546200347617382172231299404287635185894065850192375949296468426094838421545649942057727042303393024907427024200631637473601229878258012737701420991186250957800527129457338275339776248471743974797972389678923985343248523401351029104518626389933614974699481410490456016056332060805927897206972467648960080074604695963550530834323328588232126772032948902684260607450477573197261314871449128295891633327326655069688055336533179534046306658210227132978925022211713816748916972807722589724853884019214620896869309794353798500942847992819065097460133615323542536351107828464644540923722251545440616242631044283839347319266293325465285090917684475678667819701560812244001099320633664585095550490899273788734733734923613435008024430121230669774996883585582952501156040407677646179329154169419501619530061972451638107836482498585418541985059745827809981019917765861835301010145037521237308248985953791326616934086124538666451009955422467231472645030832249041759090226387606375216132911518579436882971199005825902375348672417328435081758144715461418916631891319010013563219304688962239909758331187574754159790964744121461805332192914329211420080335837047261082661615872921486295015611481645452234159084970395009664836004155972313492060800565839756082709982894537019560458181825773426921801120758308615476992503559816168983233073379919833677281918370876334564005639675992753897138912224730714538794726987989383400442668310360305154786888185923942678110541570817029114194072206999048858050158351917408090392025010234540477015874697350975947039703840629525063251012737545762406774489373428884280207725780529551323899330495474906806518251592646704596419099703476956444112523895056522864362897910382594293793152838640400441798083823174638909422042978167070268484267454559128554728531117431686924472745721089000635479994353492698097587022395484088862911707666834838015031169093314478268397989835907658375123080374009074457168547844358652333163034447681193017728428645635297802677312942750067582947183147350891965530170992035881565352342095110693697541177577060874245392795041034442805775496842867055049939248005732218053671592589698984660521018691691804266225830088123500908013669132041714004492625768806069198686699681631418284702479220651612611789798479360427991984135630651357762987959149995280955203168785664999255517349084848886048878449817111505729822509077455838026540640526340625746648408124409682037578167611088169005258766686573894750313249926012494376052391195688541025698323057218693900171120183238981478504252766510733785926055801593092262871764786060572242653930021392500052967688565739710492393744555128377619815012469042719841958178239207192182151751364656983603585145220284635804797377101750208493949218731312862681330132931287771870392957942989057413162974496191025169093485610350145832792100544362743063523832022489937932815830273618762476180066187199598829829438140419245813952101114372618044020407838967429837253645540044111588020369594737945569448586214305602370645760556940578911470795602404807721412417401454703898531844429160145580679471661110253246523895928970967378970215980310940517449154017322578814404617794918394260548446632690109434170525429387454157880008431532319165630423091819020685169760403694597857108145713978727945811947601024937272287642715213879644280437735716438357950606275098193537907024483854532630052435038127724537604091725781355391227361749868936167276299086733479591546080949827673347984040608122141212358551741867998666425529901407547587400766457290578122052125763416934170485640626705404026173984745753730881002684300532436208209765044876516557450098479672940632077862516595123659578906797167676158081725865929412694414052979300070686252450777440233839694961189189619117532090153584239620331778292673542622310826590467749733617338869446565696453221103370344234158043945240563556511333537817365462661614959973158795317564861343898023963363533065484773422314386635098533051076406502298269697583174750183980348907760975130725720967914670279348008688231548924287758135761463956408505162730494436336993719152416560983984241748786845086770031163775263544159153311984929339136250227204342543900312768346095252621043537969619914372582057944639045353571185565193190871142893955041082864510687486003993534174755854940541082358603173427033146430662658307247770148883700808209425180551277193394496593637632865523310226052270559072149951659788000084260984377351226797056217737495866734165290591945588752671265681342302389862988452245470212806706039418633958562762499571144259163666961077646095684186560861749767044992669345271887426966020430242536298521578537495378918686424691582521983670639395399553681688407418651698004710296426484661683992811429875035877047389604978455006775517880636113242750919557752045524043923740456551334711063765829206178230680797697597944461995055748606800229369990917370954248978832987844417807936760380724448356609152367349358658357151408826238062034401140052196096462950732794896627815060705793015201351350606168443631023441025225361070837793615847284388704095912206538642227590600162972492103389082126059006696998640951574630230493608099207841511532549873477643286014237814199626199602504878248808830970005160105195746978865108309659356523297878893012874888637305479927459509649407592925636802771450756131800071837380984325011332028409151667216990029882914512858652366468601574898032026858718647429369729869578208676667292811049882189703859175126886479501472866890300661216195053759584914680460881586016051800136271195482253968495386555729875760622736926256349817591423564809527464499090945067967303626713800454006401470764728130599850707682361308230204234532806377848307348181824920370938971875095550795799795915552825343831870624829143826561374267992147751970377101113166558940133316511480887063337876935948636210133491567667389341937107818010598440489546043008714592782828152656497653557921218234363783680912414842580428927189943833884581870501591582813712439493831955915672535275581914393279627107285726511422735311301022767923273843313508193271188853016529814841370492041652951769880966031813163676576963336982659165531697703475786517954992025140998490660747213688262564395034221962444998918074156291719993084792404985289367518204576585611431419386841778125639338735889442873490302593238229863984328459002164623625693367687249653927457534374624636087795199705423581982419289497072383750365106381477637687693981773026364782585197852255265757802008692941445284614712555487709610782445384095566800439862068558214759403394256488485242034310229903793978778723310294159067387898363525339940828582001686589213576441439086518679568120416959865859440523781140060014389219778112426349181128957852890643420814025699825628219102734366049038520035286325311385146348197673115209040476566527825644206520189692181616641016765275246083475469610197544699742309833734122647020609219352157347454202326510966162455672437117563301304371420814188276196346553353723814617835963000202731626867647726842248777028037876989939939464747888516982169265756304597518137384555459639560208900931949730636435171021359432643943141078848007893330687296903443325458396254990137960317262324323165308852986314452202514939693291394286288133764513097442205442726885319788822428477817061593695417597372313662394107023543885024443714547609924544430780792768602312153625145712342325964379470308786459914735565668280641338259365220556049262247428034082075355670029705005290941535110776384802240802985464297255258723764291195182545431010375177559896751093806505908547273033094315983463647417120158740859930573139949934431713929233744558214468984140583630129268200762495657685696238916293065895867266643868204994785974186621013537744019048520354374916021410195730995701943461577986016297194517539018388579682639439317557118602573403754905595098531547352716729889663159020858102021662982304904700589040815485857298277508947830198454891173129619593131022465720567183243179495375268616349497283835597385465355001127629384545391669798089694304679040462192565163186436057382666112224591028627792694470697826842572067503130523974078887540923984607081742756322667358078046135972000818479293351505428494153596100680114756853262040224128914778831338180219752863240053915126418180604006965872222050290463466464244687208815510210701818851831981303860734692804156481699373603953218992017268061953164297890208824742593514365604696714971225084048241341781866863284358252808377507195310420562685821955445442806552134998070786033667331962730114969360316482626210479769684968744884679520449818934903709754090260184452607178814824181741861927852572758160355823017030481767758827337128867971781913354278302819960281801601793568328083633543383873413502510924316470828531342473229291589934902943793099394461156817881586085196538048750493481083353867596268455626297965116116146393886931568170594864157409782139935340872456073414068893829454015734213885182103047383571744035214285071028967106745573318203300932586760611305940155115134144612824268126435490958304476014367312785293071624116790463334157702481415108384945255127540826315417747184150793282207903240899600291835046382384220561218167220356379152408123239949472225901908549832732918191997373767203273768421145499935725403026734199818045513990437470468120464673812040092037281181109263441569737134254357540072650337964102948213293232639807681295650116829484926439305524470105383877187065736294902712994459329765517089701647776895735832987916791597118222178340138098291940035201953928268501248574781610646039365856541477010117410561306819079706659491498538915295731687510929074525124359113131107893751071835968062145972970785352638518100667549224586440218329794994150528117028662135350375628582905993255047316025341930505042521901769530787451178816702540000895260524346487348816267080278878768019690063884951569947005994004602218528558519841142393707644954214063962438360774733221516706527606618124961453918422602233301878414892969596885812720527992235795236694316687856197339966465743931710040522484815024271758342652552680054517589989898385466786945464819383413137883675536608606961050548389429817127750394201772042347301365757577783662902234586820885797596408751845322991054765093715767321282267950692492886830790455228491032768780594381169412945517106372565241431465950315094919618003956019805186849044610971923966991945316896715791190130234525025146728951768115867000945398173293249666762637510625751418936355725594102429683966165863164899197227955188043774723570818018608883194418646890726544387384098830381181165823346407143982097829114041989123100793215192039953085968427538110905292486070162175802840688975874778181623535725438817870773949641211206301411584912200726675493491394751801006968319104266015250788084606045175154014166347208990702862492026593657577755114693264844283160194548392801058290316351119715776816724937646787248302481079529908972099811949453781518038812155905867102784988346894957555348727556551899772463768625890711114888929384921083852473827668384256963457016143072721383427554728028335183316005534611603951786331912807548771416482494722229426745515079443668662915029657081910601840272094360429657450876934379104276792749952807168138653228470063817127809903817974796313266164055497395975689339833664198277133353322094753594105815636251894485797539707149525461227520572194028999659455377107413848275654453064500540418442022834614303318507740024947308708682810877456521410558944289361799343649379666272824310353360099583639888519589034613005486804755944304858865830312880359100231711645356129132103728035923061177608137079818795286361391953400981939360458869587071061251588767540487896831117223912716866978795708356092292030253826379441413679774022420248226248173667081330652077222928940057465870334682372578518781109904483315377511802737568058425747627626773946422709713631334526803505244692334133412551765495888324794170004218929160698383955543522988207357293586934287731860753334478354112804420496501396876775115503577734174534097883132187237449135307340118399572416673685046000865156673675390883084223873695104610079761679985880567549716553194517775311611497532182347637693752918890659273284017557001649837592075970913666986562107198195733751693378952837154202178719260744750541241803290826116233328904512408671685061736714692909728367816143369128952476034382459381597231714559613656084495419981265322198767529902599137799453799920862151839712808487704608773982271437424209321541063823096275793226324504330343727307792538787850300717613091444069690784869344887975702363227260641802404195698930318402180736127948556792530160653770568398790716189495228583350826406902819667468553066795469966986597843365738211915106990944584817570918892707298286375145480368825428535612572178700457576753441404421641753336948796788719446792404228753330021913905011904632385938878149976409043111902079578012069557755918766136823675347953852898921848210433267295518692994550264962925602180537377117081352827442877096696305446771421616772169416186936084224955485849276821499059889331684642967325284308835778072882884251981601142328981408850060544263617591331514111656783316333003056918927983853917472629559672425724875707791428626591235533292736204041269074569312375171985156713749362367065996429937774784797542102454587390351169650952533494588043571627408234932029941441316715695163478330148782740723658780184720254368845580188421281743185967608088691119246978398132387434076161499591930051997822158200367531886171413002400359346200649055420775238031570911319685416071356442609667125047311950886213153181347503162613275646066888234375405138289392005036400804366895542824946131760576161130592705846589887758843988212097034474924233639821455073607389777399194600776788480505794603316792111630395839085905699772278350708310497761231329072619802009462655909471374304022702126972580909659965625421951935039296367088683141199942030201791355962105210973725842016752278810337136600231991698958897665232905955811230927607427862742147748870395102724996974339540716444436610706035926032677112819564293381082514690754878390762212284682054188413330042197336313915208854575062543966515065808533562517559100510375702554599017449931157002843215567871646189174541206732140442808017534474940121553519221016748055711728178832288801999632950490482914234941342371912252005192129704437969093298845439492913212952015112405746692610985130439106395641443878044832413715451924007486415665077905160041764682059621118559595896800652524024255863764546908479674984322047619705437367811410816612300612618621988550863921362802706678333085063542579314096934320432657893875724049478487835947476610119899781706209351483307740859482083715066032929465325164285377899892217428427342274840228089036071550918532620430183984210313434042554951050515398721960582564786533854101739374845635409922947059775674448181353531633988849896396934453242337174204705012806270235008720483338202075556980499875711432454650191682629318901911473444617663760463219508989532500555449848463145418621748554899931436910267993359078242344321887862078105307919945385253902684473242037885800308671522806665661498448812583662412528872802351240277022370019375237886271108423841062450495226517011242381430381086293676947669925531828920903432710957013769725180820711520800492342995362332373890687528055018538645706953667473976542942891176683247708288859351902697913785790163992084483752260352200288437368656862125598393956733945823102054224376424279583478927239125183393240023687036241863833033669538882628766280979753651693982145270686069103545210539020640674650933218764481899317998589698914876826957531383032977504074341651514604745402029929647204328106462425023820750647376089091865459580123526802546287922935814974848945183589981492424013712898020615699525959326944572412532980473123063888052889003948217490290191862837206364802863006337236517567995994472965979612521229765498029235434050827040443843132435580568031709622498293225658693502868888715955711915138067867407210708648311886773838999127332242822200479103429810722085082406151566394633723165267235894228490159869471919173934947901848480412259196288853144479455358721388465034286360204349819935077287197850324584100887441696407423301867712240013487735247732901304972936590908042038046338929640423728124474258096918003319199561401690250811961067526659331135731593466836887528148995849081679855672416807426491925417175346813100560658067750286249536975931834252632897944228612668911207264774990503216452757457659850746321535473316719158321227678462752168732127909660874805174301305386363622217124749398103357716672316932716349329307735578308055760886707272234604512768192089796440406975921925272586584771829857098794851307593029411165609284779733216795131475121179335784467164286688690042637797275961323652794463813557084551463596580526339328966330957562100970307035041489010435453423632507537328486933707012906478095158343508123273869557100854066095774885217946011486994917705345147399422794797606264838227897787367497661443743177140215798064785073185054596982848285404988057760355532822954647335550033913765524812808754858317574429384897122809925601003565173874773757365590441261259864684279010977152549443114422612339547086163553112791513988462902458054382548536215242018956641726378245209612839543035351289723221275444522343974766576684074227204519015452473959017194070038021725663000345241673431332678670609292613432291525838611103890185473569886701825014012688001349220168201278959263316764323689201874050628407240390142403324571408788839267330478105860963947463562738692457642525893010031652038385864473136544311378178678184594966454468412752770714001410170875745574294444755558096174521102760208112908303102881841392277217224745528239478363605937336647897990078967859123311761736405176199553633110048174364927945020786812104563440800205125680296325321355968073944407626457133001740355250359849307967085269668191856690807718970050907915799681588678942759486655273852419840476605087962961106388662762273329823674842397052322195088030334487654714057995705932021726533306952241455425000202744316663391537415941611609967741609167977944862537868928881075628874024733248093136370675920104683807347821969864208522175680254878857415123920972574367747300234354313431543691772154994040014554492861463390891816138288896910120042714874012845464198177019325997868035841442256057101624038131869391564177075163567809206171412228186039736963819718702262470271759512415342204069343106976605350652556862580941866373773704083447669023443090670403367740567033938465451969614688023210005514978430886902425680305457078669615490458354177449160479545437509428208002542884636536857618758862250931175613986309646654816828636191869185986634877822473190363653350602624338226371758690329590230660622048896797989475503247479722483117928175422274706438606994506783406149700985360529181708653235367214383883002675401578152109342066031374131744569121013346152992517423241746415659456936922186676392141651433034126164721957561273146227104392626865369202571089572018234898424610384551425066292837467404792831050050577521137990057950778446808383571173918063628344422218460374291135131420594572754667261458536639886481678610551896617752663415534116020329513072898044518297544093795201694518116707466086574762335191116450927656027709298083845654954776765461563651823532369794243209047486840308656379821983963489383076508553599490392177233744515716614758900485465807909104494116957695987606838909275908215993860948906907676950556469528288417086530248868026494230587004609061898739683070623545918458064787790832293389343188267207348231038036371867742403938427196690792185898276975452239423381566598574852635624594692760688979194348573161569869603482971185405243928348225400587039191738958911642500172360521314640969033866118475764890766461624972507477300676129240398020035199047732047302718105363121808907754531046913882329448420343927951357439867450185806602655155872889077406736949885550037134847363012260569337119261965374424933797887017203618462781905278148350843679852459671870437416767872872259385772028721854061244179815234049178304398537533575305259509525108806690825579679971487832027455756295831129658370758413721743939963616618540128468741407896250103452032761851709601364187235477355234274060532369234484217651297989573462106713335629536270611241329880023108871110099201834652142357188773692306077369423087241927403681673358989098709260816468908293065680410372271074118091443460392477142948293766898423377243030685041125365317934328810489053738609300886942949527799374162747595869230959849606056549582907450791120185751228228777034756135022574677952160808940913276738159134355746563269887219895594249046986372264376762240478555492699810496813791507903763758084756357527272669471798439730626118829405021695573279930490995420648699199452111137545252145186276412156105195463440594218336833118489665159329140178556342190146312036825452707309150322067261800264996418754448123782836554964397654754866731847716514007568746721799641436636555659127480823864158711404677767638424512131341954066869022472239737581546139841737264907403124468072882126906274078269137778478959143831097958888854620276134068308442988124173612889448863210297499881990706160234060262324640755957627374541271523660499143822367349198594397216975139257930542111478903417862613511051548979061730965573861326216582504779565746698070384961379528853893701907236183699367582643341788120459414735857926779798775306500897484876059026112222950526741942327622637060547402867551056514435163752025497672227550344370381183681524764106715799791834215655403102648613977641681383761068709259440828700692436692012911161341710924124672608125996217843864005038768698613825787370484660219533000508981514185935009797349244042981354813890502724946944404130578961893916693203067545406461667288854114930668210494868049282882496717769457427693504391962534950683735839904444470125838262184166485658564847843485987731077745892422402508938850121601775711736631931307840070715993771714702777001657765608581031519383322092606936401575261742613298854153158996087200876687521804307524822474170424490451684215439003437515879903498826244885934661408091385799924553576883721005585304447240127967985597366129343039986835029014087360733149887360891771968531174936714499739619966022647513523070258774355794895789430002277483380401290472972304569392818153601239162892108607527009774833932896111203815998512851800636813181999618895894935799103370063846776417611921483950816842542713645144341929276944026444122599118699370987901851878984928677500938834110296061589869254033812826061124855167005519737490343244023026885992367735402427478437407392063632216369200838689754570241165401965341107347202777156323839840709838410886258059794595386456867064177430627513690243891814141822337455305170536762045754692673835479297219691196631541774408019924690042330125994177742745455018070943220462050598320730774770608221646900634907092677834850043544797166026978338947534535262628366505703069883827349042061377982034329489074471461732428460804486076108932259068180445146146588038603807129583412505879402378708862746991558721262719370113913185128250306597267432152228671683917416797971937199979913140616486158694640559491624498485692822284839467713176052327330102706412492439036281412493024987390280657498970557781826340532644012915822297568341399081857518837294235804501458984759648914988809845712716078374961397034631722464447217964272408709743428627426104048944660107905707344516685557087131758474446954733355398264115556184232536356137413736660950517040300145894745310789532518059597222941325980312847302647647777344545464317203615239130047486334013072816386619058832692174802924379697088066026118194773945525500464257551112103013084572808610748792281204960383162038671505031390267521505286498378591621678715059196718164859853138378532218556720430004015470795649390351189187906292869334000559192285200717170911295038639061926568453877247729469217597497480696684105926265502990597116318619558968119029013914690479453859494415100141779085659793319719452832347603672034595864726741457782587138354118948971901840256345046380513137179941760354046106647580741901458302961523794809380905385702483188414516662808706401252785455150124189599836963448096062934296144083671788477297815382152679664814292303163151262889654719599860803551722648435847632812109976353604129153048033936331487631272444348765674793934546533348469454170665316559208753433972888354365839299798768668905995874215204143895820866419991419618535128708874145668619710206362764490283245608795438951375262008621364374794661776273253615098906982815569213647885820822004207160947419766840086913035301831621243393375972595133145240912219595810521226792218288443686349467161250880394944497404183955167581858491307758913622081405695426147306775603151735213334812429735648742795824299036985766043164587252401089233736891282646692422129583311872963364366347865489520628539975367763899795712042433503345592902132850938923856644983193029695798315768778448007487691574664105945657874771940503137507654865092643238062354230156660624931007407692362841010338492014533349046837141296454515413140385469838795150792621491703414785936481007536593199299635305755019288934792591412893251375324455722589862289648007301766792760737855644887651510214722209459923467011151704794508128291674056740131402710763370249847923767702025805261259349247742533290673688864005328130642095274743083820152911629314743970197813431210013332198183419728702469357486877751333323168684288531064241566779557878330666105241552730276677275345913071387562073645388983706875340074014274691699306754316371693260175245600571772943734490411419756966301292365745728888062867962885582869168891635561445040296170147493092925536841969705133491252359817827557317070062936325423932947673576840438261528849283403006072667202537627964006583306921381410118101415120588416833596288565743652865812063032285447969486925412916218472481195988639808257379742797453435037928299765800448884258818424550053317199715265916550728945324904581713976332108403939543610990524695142115870341280200662991251499728129722420420178040464105784656920124023500587903055362479174439269121179844588104095233019949046531022372492061367206090648630335796533990987697323770736153531742217454202900296293705020964386990979055956254150904040454544582989561362434221960835060832438786391678208246142072456784802192161912830588380063050542369414763957760803875644671261647580407953998340418802941666547836994397508239057519921567129805520699867592887273360104099507305807468994862512921760044175797194295253723801414029529977010572293715147104101565876970359196969820652375052797892193142673436105270724437504088126813374586042024449275147670207478155651114935749727714832966504758587809151354619631088624028124193251522667636949388238656413928222505625402120734079498685227683161286159378347353838750492964802346347506481573923982825419993728818585069482684820559208391932215142502653324618597298190275609439732565267006414726601108507397834194156720038294562212159826461510123981599711878007632588962437015998299489890904396787962468280983748670413228485742476130454328829453735521705463865775460442784890296527722758983343031580872766564125765049490065811920763800358671379292540141696735043470070189192080686507164649258604000375358413015350955419698576986268014107815694756284681118882298329159540940491042928759038258893315412703103294321326440775508422824063342384158719529659166732563464941221860944688049597545501556271069295164711002831605010097802080362999901292006156506547622343402345926205627827793247860576931457031222718580041016483984241932098916609665288631728116547805669604402626001623958261043091585995762480465846512685008266260824740905429082100406541673665251509476356790164115155240846935998349635128591800226400058639643304906558692753790437004061977268163925252708413024164326515629006412134553043083501661376601895208081673984853557078169539850009211112183557612566087597769504112173096276053795491335438539303743839243541831326025909667802654521797467437935554238200622342862685748853941585306827520030987694768341849541416856872705779684462202173346694663466074121545388597011180506937585070259036945588849387399385452530038873320138567318838136489301446813072864820580614716102553332975168367628839108725837037627081931349836383550104162335418001569914382940187723258857497856114062321442903118258340878935187243584761436616140785624225032766190852276830236235869930013661363385444850328068328368989656503256600833931191818229797164265737248885727470607493515979124056208208908753087332568808013151236462120208439292463896664595949174214459208314461345753963676388087137492631286727623936558003437399396462982474473001617796494009433409615001517766927329822850063547527870264833301828830323340651001833187637936180866043538522436935851667626564026786843401784101525023682620581408263353304927609685182234205321047946145630666270699268548404006103396894685343849806191540005452224889524991754722449487317975612573132747952997732787387417224871902442358497155742329248606653458521960147132724642441546956698585587479800392488872622760837452521839912891762960318372508021397393118978682134453093942382521419081987667705143197067584011648724295389163463997693586090962226736173991823989512570735705657634047601460667313400044356893060603567716762012541733371375443513622283154079864346550414263448433929739452983147652327707470227640123285623280954102590976211349551454816222699930880091819683402464212998236508948583199296252014470028912072581637007441083044230022888499343133877960406934759118740856710660441859168969111701064866690054185982765342334584995784520819498656175869209645834150013974930680317833916840325072079964931449428253244045131040767863837756195988298045763183929855935590284852346439435511999494615766430731793429325435048203209158725703338120162968426970519890842272832937375126741726167163536554558694362651918695958312113345107749853217854825142343615443721622178602609453568555463393640454108665532913036620086427819271716702082109759218344736745995177042801548483379801653280355402766273151823862756541776088843160822759303880243111885763171715518720471320948159564665109300237377143841214068444275429136510784276361303897276125405640485013950018608490806756156632671805588960537710128238037457821869977128572505520137821217089699670827277499504125061159435475252158904116157448064644668819443581851176206744529955077000538450944302751759200506959958298808635496763788357139057893713087981784381255435506805018951090236428640873429736597291225003922591545044427868190429506060144466452733591090703339130193900605176410484756419641568963751631388487257257861095885549688734062751929613012133675107588705259423524683722424859198442882541102779490121225004811778368780199717948250192545310626689591238437765596809738068514357435001318434734657797616187794074808854632546634341593375277147238688248412042067182655598671033673025232660575932594449941123422126407217925947681301241609529935350886695843737753817066086836467620248607011038108761725406509744147681071550112199654184200179574035819786628622713376495503985063366584659508604937772239636676430194380394787388359880928302062981691532507505620416539877450099622771354582081515443408809122309079329192253649613088940745816379683717056605089767756917486261829802408310228786704203113860766180233179689395079896956292630768184096760788244843932955423089093183592571975385671436751616806303292312055400576224145212418056959795026187131947374450989362964455025845962525360059111122432476059982597718308303826226329749902013180431487955822288577261631604034539447984880897838815972857047577944750184069274898934403156978367185890993096438863382792426628570161089674193540743824046379376669649576209310674580308093601441259717270624094541783879581406196192470791543700452788519280105301228060496942536620170021575309350297839678817992067144339172587454355281422324613062245356884309855929963301886550281428484728705830288498174963427580048419221972727754469828464191467154735550315176802411092066096913689375883519133849401193831829774428039769738590845269519794557093978173548652093485789273726165346918233807268977800833018414445319906648232991901712430852832854275489835818490902958901405348159939661784783882904867965792688284631652456019247636289811240301132313252557631395670200929278465074187489827204044552222682168675495343535155276138450987059736396407009801550717090155119603901870597839164662009089343919973637554099538883080305295759120801126950272031762897676121061125694826020160445934819861700426853944339697608332287380118879752151377413134787141380420642588158509540748493386374605371576101712560130862857836556580246461904173429878461690611818980010213226024714512661850315685146371892613167121712208954008910933335302505643178111250735895167542373914162813526267691570916720193520111304475907205682743234638564101243452698399135845976434000756057604354827470535637423787479225364277154242729470405408583043949165132966463140830714419274210240744730158580386789358525859729698200539866952473219176941631929973967968759367674068007193552575254439079977788352215203785934086129134118612610971156859005190415721743982366031024627775449600360038971660132249221764206669117256567628782768709876186858232190735063489390748930469707836155044454131148116875465603606226583504447584871740416662124020953278748623751205069149831372696854787291849228545660458869078239925871475792667103226449681360864552544644126613408395587172754446548865278756590703575149858023263662358881406465345930002375919260783719214892871161171974889742459977279782140567345327114405857416361779901788890423106988865448466320068914365010982358490035887163256092886502525544328387683515641704409171996408152913731396470044754607948419616177181619190693891026904320407301484449308850617275730879222526881089038595960393566061579798186762028314152709415798116030086399703220502481353909132564043250460365682578851599231980624337941692626417544481072051611065480443875361101519231119631302296467779527091655444518746205978620680701606587268224009550360940176315733786720688523443040559776690203747246454528650187831459201033920451455284662529237938344815744887926289802900828597448338888077054026110876456156065457726945418736677805299041899434172192187852503330720444414325139016006319386400671436112383437371945420180161368486175526364716554241104208227561574284140243615553421919340910489435590985826227898371962405129944931257338711693622972672693855214669854264179852585311862259586680661621473107134104762408564710708610597083981747003568512394132333883652517402732226483109613197810613505841447630004853592326388797421101186795190754463566374594959159156852973885547558901771102552550776445311806792742701224961009598757086940812000185973328537810672082028804134820520887174062940243732276165253999869959692373267880982479767925372447206722263105926797390444369710910771385883872161368889924130609004707433382010689319087348794311291613190658781214105202944277602937134543912005398179938011627796768688723679514552969385847509834574967536810879958542340268422060733885315946209091395842169450974636446790470600454328297715213792419162551056537278090394196279853644117236735928143245596958265404790018961390614537172118096590907097664713954918293578877970296275885843716814200639085780516456207304598016768980747379872582898670950573799714860224997250055453817716238415955988168854811422888804075519697013414695668986445405764553023837827552580362384695931321860727258099631498537044257793354036554204016032424643069224048757618241841684635562498281018514679370122175247512101207784584077181640063557273533728683936775903079004706859912511069554989213515652381279513250922787779935118497346461593893538180578724284146461812161985393775279091245989239803188822487551613473523587570336113177380884859499764071515545809027208034304019039738369588316478198737733049154243766354596839649976142723727874420621742073011527019327565851504285599922731726204647882347678502931966443521724276866775761718636911409816522220352501844987839256963383614745176001143760170675091570355436500244065855256236220030311593289695276635777814821922793495959265700668544872889824268091269702941007939365419042058986732609052106761166331125285179661152002457682034170954251749807541395751266594761851167723310327753264167603872919906446967582827862443534259405776089574086747058494681769585878464751145067792181609095970122708890844852338815849947775417979971996933108523607839794259246249912798826535236445807219996723138567117182665918196482072912001662465829240817514211571161038799405836289871694611276273116895930752064813242426539769148344581668240152253856377055824182389707730890858716165017841882172301639561963549480046241002663097361422193337415440153785028319126959152033152170423521981012304182844130004507965638818956350288625016519983790006621058469651074351318439862149648155751325499390969773397115024224463331889082272439429737049205098194491391608169997082211812812748465202590183226770630815383416279682532482949941376983704948845970514384559134239468830887326227788855256555440570748535660899911151049096615175841436845545511553450825185500358385338916976840926965512383997025328342134768940451294657639475802231571320625939221026508703482351011908732126069176930292895290311224859451144972601604305446026313388188676351865188193852962957328383607453976755372839427879415514099954103166979331870830120518409059676058604647547332737406865700868391229411312400533290837095486323103820755448509459008334260432027771979258109600562182024083137900526916267284549829825174737836311851358265505480312006000081720391060659149201357477190785360093516914489406630602036797546829158032572899559594625548508803211538714418290772860080328636239561989492470953477822202972204569012185095265718973306620559144885533554842748777590159649919831232731752196852312069948644845374493283594768619419859892835489987350663375720902942203192984278045523242035669584767677144340573909551293880891599651805098803349139126321088343289290808151829983288911538789818213811855158527904146743291247825515141960894987436842673035904288235772398275075812403166168754879149102088780774173483026883959999645087422615155921455594034111633471196907313844074772656523127214868407935659850789328176314833738654306883285050209664140538352860764189048076854269963011044556660152192809717935843907519941326699143543036949756011652125728436545468678866401891188532290579564188409119258334207130931820883501914675754077638266122399757412960281211121474553050032381806896833570292480126931254613630359463817563998204214582514387270790364353748506081450404639575080843814321072668942823484842590699595843653732700835319181248310568736581799119445146349720904129889926556387078856037934142599918471964049280752556114299720232787856721724393650358405968897278781875763354461620764908541633972848524443018551124679943417011791618008249146052872210021415114293437093300620728323402890521735707020468225180937373623580809965518084216585068617976092525421155726680897701740565265518084609438878907967561879494915722226324356447527527190297772599484275432900882606838115616006509549789813593858880922294719498128869802488059058190097443920419323349533277111825456731329388239861627380656151646691391637719922982420203549217933460507914581419902194516789380421196945208576707891605081361557326415563062097929404817247028867716770673637056626075510299752311839606383964945069460203619369710011903970769268036297947109860014748397106486668098062892719664805505696067317224367954649286504957717597425831347789373322790761220203128617703088007525627265509716337043857201803758709546653291326381674099715146449907302343366726012226762644732104320979297045437173642066582150248581799232861310919275284122649327588210171196796501214494863592611300204252684175368785381070863295719892687527147871569881696920751327942776825564357946247472088024211811105010613556242467860151656496426007384809655476288683896438947568119992703673557769128193300517884461357201511262079750972299056777345608742473881707819084111949666790909686237676432312252653544111198119092288852113610129202124668798465408478105990175747841619777926350292691830634715057787775163587486669497052761917452413891147480690366614633884943368903438960867764240382024216574119637352027637938945769334651032496559437984250344345159859477406713857575504861447103272716821438325169702528086718069577733975773919718246955913447316380057411538617753044329286577565624044360357942616997560572027779929108535419893084422920428133330568356972765743142256878182257688244929837704373677754296620225819075247607994841913734219343852266043564252660617544691808687662206560088923541028017656266663700306230902281643054690193452377463902033938387612618351613028795167730543072444458267829983301612814699845935565598489227241803566415554999545531870592474506595172059009399913237360224165047741541946899668167119723216693361532542444785570155572648833072209449571995587304848340124306152510879468477824755259348040774660906198159029833709907553595534698207520545194154147765577571714143858445611710537686064251268344018648219482919932698248894521069357423959926774161151502726478232947448343323416032062525478727195252793749015228993404066096071913290233345253282202649658657545078778860664691498009692123398638127986278092835965185032627015673407875662021935896773855660224419395829647827949386205266344519369471067893130253478362988702248277976190957267869058313435074062359295158773868160358935106752582644926035145162019711967407751076004438568819149488484510116613744374715165827589098773645634266881267870817384676744270633322284570138363213814676356394130742090786679847187265296825615022080403562292181278953327139221659626973803038313288725004122498536838419626382749524654234353070762076222551985678818875166986900854368030222190063617413835356532669571255791550452797767583638171878378520937994279397901844588680778403363771665775456428865566558534313488916275108034766796527173473962168859056374752450684060217214215757840952349142945702533545676754411219486171686364554920736988783516611943082521077705882946112853238613743797327739461499215612610990612233638542386814176782345052361643331173577184007866819266499096226940452991495946990538455435412748348625958777677747863212835681119922523729689092606496059266665881810280446648314111687862509609891298628919891272335979352008396224967883788416265337357902941267844634050115567688312450337559564137102702885582780390220676586460503451899612693514158840895218482991995948348156495639622376528438027275471016467970705162005621993855425216050041821550000192462239588891876731104226016660024320244785183419315559493048289018679612139186694741014106533151965561487652986671901182754078571372216427964570798396847499372505024309099729414207380107275592326298779645616863563466426654316328728203644867329365793096077095985193326101531442140114731709137901991016757165975642491413484820216119368741166365371803425688502628668862437949084765036271780608701507364394735043903080189334207019469100607280772964254604431255351345366880590780244631734004673220448761797647156422269658939323042069414337983311258625183482603150173220590519623462730923025030941181028418659976484464467966333465835542225386756003396091122103688842706765159892820816318174337271898155358496131196920249515413165227302448721267245670537023142019770541757874204394772145052181064066982305635591153248312511495759561669045861038287144851388697491180496567146459875207140211297480546498343714282032432656921711340620169040001380555576217923575912846633230858708318283028638331393913017039258596894787922219569005970475944461580849378026510724287076054533171512160392327288865415590837872819972177218646300352772511220297956133688970414446796895324345981836304191577610803625259721829878668171875227896114136983917081713678410418421513427407099935787695506826651581253927624601360554409641720331394044360016860002033671726212102598778684259600210593602239464042528806135303140560456841267942830829741125887301063039102220435887062980388376361254428645505416748839250679086977028920313769375080869812643709864915609286022263510146361098812493134597813582599619149898254621145557689028837204878374602391016870574973980364417218527194702254301586898645153177514577893647422687920162647028768410899204400895496662883618488170822045601334189067016076579633219412745318256412306613319020671688402026409590256735982951301161618391731469263577640233885021568934953641430366560367164836003057139640484576422916277416085510407165814148225092595371497594754145362669355024600493835953404819132682793056178322985875774552945275290089884295560648623038951610092890357467878588919803724395827935889919710299152163390137692749428221661993254252764429174819335888717812316348534639824318570668671362508604142837222977030740506867372408812452679340435081184489367821046504405003297401784370446967537817671240782444887076620567652851239453105664227957401149576048186379192500641632586474503288511095181802447074375126539805298811880026322111185222636955176665020002023145423631433410525504101155342463374928235287932519675889699375331087203169166611235184439964059014769038969525484478588683701631769611906448443922326628993104564524098138901153740022924104219449997851694694607696594351438370322930390039332839350387813808098639820674456998607876723637542148413612900451605202275792724162019264941097615227689991310137367194183533163630220842013270003066250878458236551766430924175248275586959679342546276513012126604528864883968318603431830365667184819023416926666445124021006444070983175590511185537294450806119187894049380238286785010216053046113944256708424295568430475204763652245571581460104274105381829167892392340951241987640291620341210041733114456892441483372003757376246942498457068405423654918172725946819103007622191990257944181922418748990796288359071266953183786250651446119215684848480883808582911660965740147453784780065122624991744269269680271723757514801410587124756115821264704283232662982774915708028750678958113411707359801001451670070609262445251618864592736770838599855272735816835573530570329299974027595816551985024710261915453106638802991054359559889390142484396656087390284023517345924187207378200067077890195905416575496820411229754094256772726715883057179035335879908060004390212456656925899029833905003049370064561322860899498772061414832270353290275371739103097369279588163166687013436538446338990554916036797775427947759633562038768925966525585886456345992759547994351233524619895194145058640958888026975151426619873274833196145167714104745587376026250898814439136804000636036963796050490278737443643998820088879283494330918032144956621216791477038298037978906466491711773353850571138035949952068284013800255100296437760911685055272514584964746194438645404359893927620136599914125839588690523100442518488041206178359641745514386753073303977289403763983201665934047263116747255485990869393720642574083124564665889252813670851823796669451883366225390011422474424481977242999118468163181218873365532853059311875103750650202299606670317676100985555747473595412491933748479175209769688604338153991376479904041358898132013920051145317435953635963337379497349708567043477923295754541700148792056780339327679600122878384661051634003989715294357130915503130744359372430398464573779586764287665608028174525027676935277384392381208077688642490249005036272877518547492720921656128023742988232298098845324287451456365734243076497472273276673479083120992673691656028464679639060763113424527411440073042076394890023760478491907235691582602578492172817387525713162486536178841166893679791192311022853275403091941374005076636325026003730509496331978984704015685637982205206417348080389052709087753503704056185004448159025863805964516909134789990760311687904744975812663502026339522555038577326843109553548090277034585645250673098533549785852318768446684452545026923966473189080041310572230232534271414667494227691510288751777040242275799507345418067461060297084386702385997208708745049500137688154266305358025525907850342101772921371301690104895782721264807961255474848091045995860961397581443945737329598796138575193859125728421470615925546738607269632245339682502562354854163850254459854101838086355192992566641592307291409972430458831125728762720168602424897146849809549318460742884214463722678241423181169761916400126316206989039822234037515162728251636833480565168736169838308371783766697250942018524931127973855411932396034617363628930105385163266622335881957338362957940488181526866555501074438375441343372274508396121693198854428384537635455627738116505746299402261869697818619155768587561778940965460707904769784909698639814341909685969399475529159051553559377325546525786605571120632195226371819747328111426461853368513016189056526238742885067546232394805850346030596688638005680712300005909746292728075186268309669635578607119123635052213536516991561501391615669344319678606350843869871159636448879924472671727781249350618906724544849974386461661166060553636627145377876081341205790792515021392368823041284051010682957163760120260792524386595773867656195474421444566964981011115576019130149857527407165419999632991244219504800598485617447120208076332980192951615029337587819315822857874810751217835223140355529015397400410269854428297438596119238436655039309800405998675015824980991716768504782698855829027907812726746445270674767842609938403939810555776028555969865498214561989390334018264848002317321950658246838088247848483788573565397000727540016184818356165527138758858419252246469724495707570591697604705400275839409992995991310815363856381691173269297467495516580360537112124958904186325106893263022400505557699243988275935659789021491570970246796712286780562498588372400948585705068490553573429434968219063480428996986149592687532961058128923677032093330167087051372716073747979782055693781761360964557290909999719946540448206269163723196887196250578527919921077988950817326888694494331941839204217450923996652021784587881499323383798275921370300359150277676842301114686645654925219771635149972788048501949581977991370101498597621927131870490283555285186049025858418771884922983743825847270148636131827960462454619688415391481626212233350047012066814068038713202114325010378254588031084716109357750664416987530780093027949617543421852405413345309153923275298819491581050329947985487584798068852935724199274182964468866585760888074915423534836521528996352260451859327677967945298564386637375505966045284965430313511396140087984065009258247943010444180158423372040628863755452757474813550181332819476797881411399047704607920659135519874177566956149786348948494491230901575453866034444075647732324958325315308074001689133772956107607823383565496828263102214577620004723361709232378519640302583443935491069966238573791496063949016355905361832458058777896585631824382293081201281322338057848559140635746376745671447365172758603484108969212113967926201538188609744399918303900857724205924346100212414965438009182066064640159141266341943554090775103088308803907959097893158161350169446734272753295950024644325791680311090872430048315296179551069956749704805870646348612441648524021617293923148628986912784568987390908764749558454809141587353040015238165214821887117749087370047092744614575004726525642890241105257127802802229586039362542811403130287624147700481648094271358913010038866917731582894053462978484718058173431641371977944444361600760574484303256091060800344086636932767908023577828436574084431448888844485192581671864134976864741548950300603662231897553252508581535943141091698407666257189836009975333772213953328926996802477486082435713877258224729537596250787535703065623731567166873842276918057094239609974270773886274994685699876448511892854856069247741759737897974193910629554099058547239520002815483655672766599104317532978290456324299883505483397074339133502204464604126344706793374545498205659256514134508055226859109587517380533209696033503275862316975708663022986327948789827662691338194606848990541234807246312295506080177581576495701939936498496184816398262546108498005282175823979074215231049378894511682383480697348649869603849233735422925149843193650297929163585419133842597472156996186339179169041908642982081677166666217344722757675023848724034208352044040262702023034507684097549432427759502179044766198753071796579248076853756823374841609278653083334385538902245942884845552637849679591927265053106469035150833136716142306196230842445242738356205506141580562618446261423613076344472173405336354772195418021080078317353969441273866816702693454520304675290306216730631737764661932195261953325392540869870096417084719165900500363620550432267058712632803200046205580333834950647610383967752211149738946818597574181059195115506354143538625855166572841024823411129081331446385847594880059604154277642640829547515400846492028958455514647416691987356160227627850796676826189727985866557097949633588309967295682974760779759707107930497347405424892625890879547985016002834482849803083247774302394628751476619021722311339385749471789092682959180922229530854699158075672871826248805776458243887362597694756405988477004606843115778627938289249649467802834243289096329325584899911052963238382468706096411952944589775027005655127752270817946520691573141818732482609508278293379481471185184268575944237369303663965212057362166694758044284427679585856303641217584382968986339158734559136398454185541633333518003972547203650637693887667546084549846497408494787375300254544985516551869209074549186856770400314985945722103512546508243460075392161807164172546221181723711759419277988880550855390971421636000763811753850172454524522179756516179575993419980767914123463291445897510659502892019542362493777094062564660453862748205223479677140982681048864605569428899087977838547375718824611585201342633503201807181425608149646619457454171653603590237026747309959329455771204623774278060685144275855584015664709724315919036585219386680923364213677728405959292042853148917150773679530833410549536746203395249806341239400306978705955807877245965278222534339302618402126352383486092287305894031805839600769025569731700831576696165330005211460647233131272850219441429196761697732546349015549880827509033757413749619638645760919065830689632113810791879666287532893676232588653200535190476007427108312891274269986689476517215731355826544685500928683527308548857960348625815181513698047319698819280664506476402893963727170856933942723483374101342976483865078754799139845287582325103180584044180919179342075060223587066070332309451220473600310027754886600705634481409512281153960751547129435022232046699128533682924499536659214732442296136797338521046320984540488407285303451899534477393698459184253448876976872774797167854034960652611102316853126861779484373624655350125161914515203711971330476717969931880463244852826585368822501723786605113264079877459816559611008927059777567345674773831435042768240686524983242508158615656131837100687843741056411225364726436420413064983949943319369287681345829201429647975294005289897232618465413700872775722245869259148124318728435603566319587638828469878210696408495020912741901630112019115344501194362445572639875183114017943859477547857154243547563227586357148314596335176015408331879879065439720037181789254871918128274959404242403165441066690123362337957861853557479822019406511065259372876641646953282486792230700750223309147802716836308222536951122393521269813517008559967070885236370660615375290073148963665517247834452658330941318158759987518109292726768568398725881564882789407956214489145321074019315743591673715435833825275753189988055649988288031795783607558332743295170254583418858327037112905121051835813930535192288366802091372230683493014001666720863254768308664781953238760528693165675502251850760962348188440431908412270658440024543845745141892684910320003275372068065028625645751487234045364760615082060394352195811102785974633061285538816099532556420816469454036585748560451710421433979565323680193147349820083023135407556694818932435289692366607807090593701120770628320477240641931195759439486815744159398790905356665611301414111406333924093040148677927648824735977903393692822899520241434987340079430075237055891135324276315541464169046066573870401142406870149657440058777451674795357384380971530772274662479325194196759060886357417621634957481444649002088767991157364451594624877788389739644993234783405226240269840663673350249641879722336407464644864683216641007396859597101124650902770390594026410849626568438196311726680570799128034032790191921108628472813148557631010053063748495228871802611295101127669545260067643998288933035676464183953642870977835660784284214986485438337336052310675801610237119892964756198967764569118464660630878684995568981907640464576850709422314956961022248775767420330103231335163927646703079601597868434202502439192614127023109748947943241112974825178008128099570115511790819754973447202086718603243739793734592179523474259797508792789704261719857178147079109895283556379134302392081391894748009377048074768966424324001483516181088982316453871889508412332672603343461981842983371497679065794229108358861585932950034394856753362275171507545387391939462282757182117757166763641945895466753551071948074082832376915000018565464842913113935685539283831475072865587241099208022324078967596844627984612004097833310425826789890871350179137707742980993819715021398109319098342955434382233211556490061036085002511270248231642686116115093873499514358756835038371390304561535606570090194095771102098065376862958868106808085563534143200374521627321660124680968694294679196248971853120091561089361978794678988787604449847780615609323632414883472038183893563893114161407186854004826183962514191147140857397321538296481543293215449082863616637527592502622674221072791222145297421710938662272351903400160993501840041683458137775679745420120951118721300155971833453578445975783477384908504652996383322946371124200320083075732565186089138254955001571762996409588332621446962166734852129557175165688175549432707998697247995113013610659619565857015941772008040949939966046860478592892120478837486080607533378756917549015784433585624214783221340662276540754718574367055286332743876420965216617832179569079641420838448461329806131493892438495015635235604886795199722918747192329632766332081293950441768160270807000137622747895346854100550961555752425553927692875220332476514603558291343493099128236979546921791578184132843257747710583210669874720109935441110219749023753746429997253292403031848134666853547853156246420259462027704262300951532171212801062543172230296688087623229853793727189406778251152119189862372700096547548269542637723661703601014010466449004560973832538203213252053526482116016729828527750115356566276239288597899807494149405471734449019491387405039028042554578121776047659988427061703572812030499658575479554816450725298674561522888550503076585656527981464238015430012484229580345533293052349520265808824357395515731914113751864609583916387725772190154778062329551463080042933395841401881686395939709079676494295293108767214032049669684904430261988806854379863268741913606022123211779486427372927300154083660899169014736723454294778610216057332176730817216076867918092008468332298510253041457855859003495843966154381780582035534970672208477575156005255519354807163906601594768218117120375483885694020058828878133808912445013420167139231943127189477744471825276936838718605183987218646276752766931648795472478955145115532244086073585136176910850844593479770258405774079634054456605161849193841116258479127400172539318630242928943460505664014601789896740914515617824634801164441098081679226171165656292894151251828678717878730607440825796980389577985166232153611913547422616537147461740499654538058901500014121943137460239951427895796233138440744922212692036924406438694652408514832339745498598039522822280480405081319655667933781075402100019753893704309640013765921796628877946895483328724814145059157773552059549406208807999372996981279249446587076077415776527542107969224800145441071443124836389424274104871185784668951306987848261217697103297405233383070107873035991922521709380688316025999892305245743517789980639551759726047946521663947740009000461521426263599780271726299199692805009123014964672190193494283688136172219312312132993944040911606410333959724677747183508736968380903190226136613840560064073445915200383315014330878048047883554794687530275031218121045770863711725395440023809192253113339090891078508605722451930947238937230982773077128649704268096445694534355908898445567048602717964080533848513563430538709291365629378792719985519599231948838424763258198887061441115625690268106544867502662653020866755149843305517574271944005110512091246033109228255563087162890427310569735043877336201522274958883732406239709703403811085250546246548519317121857643661105339066149732938143527787125537301183022066577062432043602741282271966039934381454517805086304506006382965920880756284536393638254835534350184520919261384517968862716525603948547502484711042635618797870338597957583301690921646002312591071918604120233370227384391515314300792453710414059757014000349917927893998293263635426284535472126589046944543927216824776752709152129982333988921666968035710894455554961117743924285934551363866472689385445683407194874239339705919191288987546751646821038827364659371376115531855099917737314157113815088158793232936094184270215833443291503493039855068655169274492998359333191436849070179286886296137780915045239734633088055054571207311296542023051129814422307923940926335524024484103883448691521463295611255886282243565630159477710755796428165365287200269839177960323936124618915927257749260966056362526906351672314712897196646128632474018213696058565324792815959398940241239742301914530750904765034904979897949623035229029278742889251499401881374107863229296700123655854336484973494682267462913583986541128016459165595156623343469843041903833420430754660000206969834544779451146984262555501622781104255253428153879015054699175374380435605196241612606267583865655748559740657415013684783267553032211631045314307195984187138918902095422156720138229549672666858580934464946194801436138203906208895502050565469133547385873440739945799104209993263926253196749850060509102885973637222786655452738845361104817107487572920389012421149069128767674866157646428241467628747227875355842772707539833160276025789467370061891142670311962961965800672882876795609159450725051705510539709498741610791686027451596571593907825096388174437079340863480468995993359702504880059946591481501841882750372758047356133643199301584471282523921837346727849308730468529087946885255254297466328031204733592904425205241389043600726207025629966341227517658093323188961255623531714677868483988764595754462625484864825932740414022525437734528066772395294126513558419804909577320631276793243225350858660911489458732360122141377335128756647196890651631348431507953494103002481263572112029419810663502115178884268924030712533949318383711316936602412136825039720308507956284997688025125425227312627702724130765705758073814676629866109778572641549088986869186722070466223952412398523737667715691797506844551690139303889934112885776907385741426758610529207978160596318159625335794745091299538907084931002423358170683464464864618052196412848410173364097323923639628162560699863451168166973563637546044256308067415994966323338299626532157026490886662285703784661121302400819134297138732527709437401350154994296657586354584294407742216197288114612245795223988939392684619953859360836181820807723087080948545868051666436213568133355943620634423702587893001817219895603504185183739981412020233946743502312982809828012554232157427885255969737804646739563391084238446218208055702082359756246425808852277678655787107635252462827960614628983449998421897954243635893300137912760773660940849930075863656803406284571160964399978386292867993468136293980984241683852317840971507624736603917586252894137106602264888156096220147420633638872504012340639694522671251306772171300327154293474020075514245146035604773521022267219616371257141000583307927751934472096323747892238256637155565991313639634674726128439551680728346251356983386112954434896307665186600670029876949598685096796616901874443318909447736638256767613335287002952228331104520270284263668978714887840431905118118931449989040076095875561689989627344294852757400617930604350815261768997840040032301763633664951553559166430312595055854691428650953400032623576738812396019231421329900304109734087148284581591714019630469388511240363050933734261467981145444978870046118751570838139372069504950410281136742990521211982336706063349686997138757699178903989657138266639557694632283974538381256770729125826790194318665984349897176446100350644851109358999415721057349582948635669845591812041780035149766019919498297840226443054313057123944678977830657083763016964421489354335424159442955740390743964462131081967588696241094998226760643176545860830199115701797721252710219110181637343473555031126145473129697945502784963670363521842710254675703877631404548145212326596437063870277147695551969007710001447921209700781242374215846014373583648381727206684529535227278219835555723765310841622195030305351773041056432649502214924735307715734783887609691991372049458913480250972406936311049438288660956714365286741603980072574747286853498243625981280681624960116227212610518719628003472356802336792940183515805976491473922797528469027558428197457498373604034013825841806542558853197653777489906423590001161899057440118920584927275471454200056841279635670919042488798232733763056911870369570413142779602782488480636554839074368887394691563629979463778823418884420377769707608145073692024432908097853617764855488767921528959640629258595978514866133051434677652415997999049066853739207948441233608220538309389485353287379309326738036975069436361760352547475253067334761298451502262659758491710643689063211200881053688429619995833357627560381796801087209292699570039784447198238640525520159065187449216784891736393786754229977289380299509912667596140768790792674282347919229455812136109473134237709657698658807452088562974142626688883052906967080217245861018317881118319653917044781828546222949386457084769139082717317170158074363781480987779509761982533969474763843305535199533350135339690412649542956585711737127659963483177000123529127693007861514031475007648397113912838588514777844508788865546958935677053945668335562110609084917603321693258590520914976158910442205726530307660491487639836014246209360085772519305379187024443290117644732329452858794485327357522223675319312208868318740654568741044302825279091735455493133990479607721779772079295780001181413275038236946609794122654481480787521787365199273990239875277105018411672506997343858573628087316923281818946607015851396251986046903935325691459562209345663367994893971575575925457603974386310953913956212327325589588118115555345242181280819921447421551085769310506275596014470073662749138757297894260743262854777660379490093758321560055610862762886999110508236415236801923201190369347836309427624100445392914481295030296028556904030186883977414959438849818799169127361243391449004347559949372265730753249322572248347734090593013232109576145240423470844767421070510482325095103108403083240042987294463908245132144124403058299401613365085665581908724364564211152412712384692981585004616058086949579823970584768955207879609727845589921549189119304678769142292583696809916444230599190858193029012238097215393247354492017280972316144646318068862537665045385864317486138419532620024898173571955947936179895580901980030487278676624241684456682135492754389885861743551472091619945750129021434743124949182645061368321395077524279569483158904875556139584498548026193830242636174360438038514468498193915960653255170981466014029255009390189911992417075488466984850396301272566672915618459074586121141880173643610596236067407237816707250405597119361595975871610692853947602081376677686508874735628993802284194247770111296103313071564250897422902342156251804192729864252517898955776764613994626190988066216152008690583433769266910470891070396017777047115224532900135650784671343888349644011173328114043027698261236056731881562507560354939905175473507899533198745332268123322381204232787295890384881621282293114695669953457122567709714774897012611250987056460568659346754454603537486913767784857077984436620554357777390377360370261040968605106181863125485667445675016993299342354200648277498881082620120444594314126995060519665663605362751914673296494101009776681983723381406524945240588616725966194437303760691320179694334973767375651267082509804877762274492737944763722365504765709383656397050157908259594733148382509724143892238231839801441730610560634674213270000649372286101512295375079180459166954902410327008758155792310291387181723594821920349129822553879792470589842248508803766664157978642793074953696444891009732254318486787440254799687454192946423695864712561501896808169266188995404025216390217469215072841070965824081129569401741719402152854294875896712895718698480032809491132171616917996429225467347803517588455963953951352707360803317676774911479464311802307695482347807139825845687143498874110426316143441561885998478549177788037499845002351967738950797932557600484247289484713393866148076128360402446258157062759495271774382517939966303693203469794070165373638903469772307405161172118864839341689148590521859630024354261432036576869783334545068888639756577724836546944360141895209513537907693723143039277257601131122831563416003147457882391444769459341937551124373817672131296654181804887183366179877293378376291642439449306244443292636346322503628894361509768947776217658693583872701205267265032068118160198577895829602150194745313026780862953893194647148714219315592202738590433240902754180528375786804325764751793671273586127689189240346912655505760476450686155620244234608299728461224867457415563246554060410953458182543537794532230735227335603151294008483832612511654894489553007437238935776328142070879533662849932156701080004714740959144513456103079038311615602399222273691698459681372092439999982674199304826688058307715093650394033726738963742402223188973878771102769188367021161557128242872545785035885569881453128557547084680558865359934797510996055541152026415962030204762537254529430260775241391578274740372388607609728690188806517767468231530771401744823641697057370763070493456187046876374600371174989969184060118817204859753706000548655907221322584097957148073898664546666020454494085882187007447701646828664024203886233506686000797600647068827361038571498596189638723337105107478221973919062847501672536541481440878948712744581395027338154371482805170915634248466428531718287535463751305965675536964360069692009222905487613362352969585390091071234143134998659464580310324748549973692432039791560832465517416317385549666912030608199280320017775991744134602454319443022762011648441421831794369179450050011316793434889021532280912416740061529982919415517527706475393006539797158438248057555277302975225387343705492385765471933135015956093231235149523229066537482708433050708495975524333115465601711459598016077038801144038361862696793449905906829576175165256097164641832707984429985676513194483006342799891050365759001706336975532481461289983747470346186935412844997787382740370931606424230640073889372929102237670932033648550718023859771777840182424343965725936767486486098043371111898198629902804272878767393856909358009268688605018898600198007007921654893553989333584589705258671057370997065497560360322666382363929648635170635675902615667076464722358187494870237268589487438405004187847261359775108433879499290391010399722163376159505737876360095625200321868395482874264598463920366688072323994484336476610020143215065857796212985926530333625668244765524583914122627569945566177100423359679618034315945776780613514241618214424208757006700516426786179067710125094587463772897765415274087528249411420519758668668160735859828027791493514308527033635678180633857812574174394208031394542160549754876218253164419957231134781535267617879060930604913582953289091164883043516470850589522338780122184820552560312534041838677547135141839529502130441775799824465779887587389067602964136590152107261207294709672537008012392830394947773437847592078538912382755370669530571389651698428705833015221810585015307769831511547023454006852881626485522412338178263936134160375191985978937181628180285943898861345197013753379935897966108164802060498053884859004443282591315923309188961747220506072056483215151928811773239466297533222284458555473379914648715587516498034576847453461801035255586297038408772790235342780602660756361322027697198792681307215225241904002658299218627789876763993052684959401708366897523648140975811397643012952780598714943978113895679319973927735957005101540640057137798600766087332477119264496800485137860736262777036664441538606441370221452328197182307558975984494921628299992009614870643589219911813725270687675240923224511842053142012989933922598679410170111946599790420240120293182652612246201142050573531589163766892948110067890374266394312581285571442497536456270352019055012350831926241965591675843120478678717059814933146651248965226367687515659036923163401833374565881241212258086226553783823304769237608112295785017232413701817344571174370430286761060868419007758353944678328611476290523716350645983611125792040626577414212745205928373421151857848388480668341486914584417527470612568780862352495650873552673699532193381927046788043436102572306634465692732849860878020055825762591104062481850838890864968394564466967639452271004633863268533235803429718762657271508483790430305841021668642561441499169586152807549158275191592252259212529391112849002869937126581329466536675068739459299214381240699911595750292989265810491771024061516552952414089675830724460478872661099369640040046783230855989834733832255938428829019089289448310851494445505467258382886142524984486749707487485372171907403583931543581495760151737278033674968301551028482908414841295381384181153387994683525815750480488139729051740747391925577980504279639605149200659828164702655408707075159951117505474988388579468970635487117136100854515200264991094592615271859353196562497495212364834950822487445592285133288041505155955943959665565294018340454855441630547933917505868273436138505470286376289920092384304108573092010058217440575831540816185559202730945636379281499170098520678415149158844167342638838357832126785300741550582504484851115515516700028476374465073693082621746842850380867768027855510392279866013627302063831716617267808849301651457254374844139904604714347464017263336743354394992873186256149872755822530416859163257488773952412417229632517758415493620677816324375284186229462749414655160843621793456330702212931744775207534710570025221381513769505277477480737523471394082367519899652194998567391183594562371874379103624140403694508682081938920255657887702851865710830257062209205649835307421341938238991459429686271092945635388940307974867786601718132533100288218714122113440268220131627410734444087150655804683336045466101852944971182218344629170568117265313514636272958691254055195077669798352551755700982271903764938735890236935543371308133299873046959044215038356466515047247339182875291719873990137764701379920315877996875696375302912851126609977277253228676194658299446431905249969538493695469764890154752175244454926322843130683478768445051144128846001607050090465206247713385429952287641624948517617293124499521655804958378342315724442026431232587813015208322450939920929855190249526201177256794228395129881127940253445923293127670778311457056315178109829544785213832980049129406037233945754952838620403586119184182955768833340671938483498133653982327483792344872330590945860994492184128950054706752440313989370554929368647927197816044532756085942314343655077385143578932560354857145353587358048287700337088345929620917610048748820199932808354452165951966024223397859693057036671530712270435144536863111634567289296448080350499966510401538125292373254667403515775352125101379269933908775131856919059720653375147983173074430078856521400499073060931358772397951023824061518989398864337918327129473315130679035073682409900731144271982148144044903336011110588617461310865817479437676829320084795732187384892716829660508117521334149860068771714544778127184583318663843459280200159553426616383162318885092823418154380454080173842720334406940737825158861679144149963803692851923086436294846880528924802485590716305725671854765763986555956756284527818950332238638055608445042349272644648864138357888504940088259655891719684743808230153997909594236841021774980932857896673963194494896839847651653037916763349696429294378094789686694961957127948523565907814804587380523509563659209238173753353187110983647517439346127225474356454312306938298101814298707725774542664042987382936304031537716561992998653975437951022849264100006138012126507770875211126787655793029509256583590542406178225436464272784375449878646343485395927129436573213497594153200275900436225013282346268046886557728745481698701924577831930768763944623908967471501013682463613394780462942103977000885280184358575115706696607231704257462593448464759751442360589731607605606127757099366081143551276111890456949091245333271193392722585852271221959003444085450529753185024248968452793914999486209750904313103478480909280502278068249900293376127095490689681338028013089996371949965450455377704922843583338175691422812112561455600985683621416498934390681419836380347135769414335749927356929893944101696579766197086170188237542078765047247369337106963051591380939912286662737285570819820252624432061714825345842536009190003091205768468951978793379952433886877351838777674742240573487935130375603413848200893924558876092481887133187122849710068177476798798272911117837187877871854177754644011863579970526631897837675398826917106113018793673136972513671751419519644545121520815030701474918995902952859235024594214568531270678213157073935417280097008453765314812711999569242895427986890294985027061209138552995623827049785714747330006230348805327012551816109008144208550814703939652377801789275702835265471435329903488911887821022926621149970513939254679205466058859892965800498876955447203571958590608309513221928049307845155595428654710749959482211179317138891964880520765329452390544704586185567792622323832499964326326792604230816279271040370454240015934413655043668770910685126560907049218513236795200108530648315645400909858200902218769976897552112803146402055110738625558169516163396770681200127207323106467685105377224917083702924617459963419164801664548480541077347787668513482298573383554467268397874679367100091392594249819349166425099465815013132335494602177170854739550452424775117907078444890956934041237640188604490668339979077581130468870770999636868229396412897102000675400847505512571900817616487380620606949745600689766155912445913385883231056683108646620459208425677406040846513510983478439025576462624633909310500037657566517169780152821780388608147644052130634151349495530902474476526507498190092579952246009275977715587190870716289132557208797967774768935773233245835886961231088143534959057504811151030820753512390717856655859970169873937346540718080720357486407096567657760656422094494477609316847947983077002777344635700921589613496666002871237711087094500198942664565597703697494313849673424562631649961758585634432167140510632857114624451133640173923025850717357216546662132081347609186371582518434962044456375167272305587389947968116604836510074634224843480748922998874217577829460850737288656862909842270948912203269005399238335806520250046972541278054543395394013513294365765792732172528358863291749737421954010881935450718859850999509915561302539967983567976261026152726342938783545471119191922539660983994563265922654148645357105545829369746596264339039959602290603325361647529577918205061549641192171484658764036990210920041322006767093088815972110872217219622743810757974281332168497663562376239370513553446530675157157766901251101104619905107456798947106689090486426099605383993700873087918488261242142693770229773150742614365686399672671889721168179998176579081746899388152760511453312307942562960290575674331632278748280015085618658312218046677508440110336176614462835761414615642684555926417691109296537850168473190168695195031999516250447267103766476461330334750278195877770034320481948152846961869238922597114117236882733238468398402496650946495802097075006017971370203870164467025286172876321238880551624908172046581308526717592474576035522990296115296271616963070020979674006747297817056929472220724895470669707859990009083597930178467190923450474200215055589296955088536094116116486949225134213397697714294983079976437892691278535048917016802621707411502203260438433530575082749775211090020661628819380140266135200518172178613891442282045836735236503546013280872940530629608849827375711526889696955221137185212808699285416030671971789563698131872966238947848324645686340893715657732006353074777159208704152612188446443950990029335350782677596080466181517564044439930817068573137075219079487201969560080225049739823659344061228808625106845368996774675929360089922853602513383958654263874422820213275673148889322537601280102471716647909244746845572599365376346630079394816214171197719858740681312072815697604104970739038019215574477175179254090564213702733859164637269239671840224430385053820638975297177623043023551198438077912117399084592892504412739711323915282144412466054684556833104280673108501290052584674264801547178513261940895628204815073146748357431599426393755761750313234241323765730113171967234698804885788238020346975197847333345959832022417766737343258644725313567622711370608022362972513539327445304582150855527624203205390236168256977957126012058954321554379060773362792595452962014343972194744766651651672389559895670149858207025485863116982787000393968068270567378728281762943703192151018878064695105423705871123553522435443463486084414970298958339794693965755239945232594053489365809290895886860321789731341344728675380370202445229947321146513250058502069891585717836781894002892562234990369371866221145276988276426223425411658867417227548555836437943233016546077523799313979225191515536208891739300215897301331322037372175750933405800509026652381391552797659348812562679611918519000010070766631693261569309040649822096115218162752287370891178299891721146340221157317761508031382654832273625310426954346956432388178675100579261784921672834541616911825379573302935602998005005416380198085688827869864409691468341326700215085645562226151912258617710405178741701095324285308596231736636483390293140312237695635471405530453279477491833113773518233921653002715807473285512081595250015586944436912725260876552654857643388955455250740150707501918862013929006758848522595668159176395798808756960865106780360884334669612622196502271410235311964036042218484797332957230437943163494895206114190941287600592591804278470578928393805050077790912933488808374782997447562778156132972730936133007133864903258734629843553217341195125168703048550071586648629863235261551195196742578907140133210120927900729657150413170121856311902244338120768881067721361920167934746760427251755151540947931099358556663148499885019158546671919570749056704150322128290436247018832385063826772657971169190197150560788722053708676872011757799192935456818794524483209788683274278228898871408063646380447155536050361252100384059495882246128336919561285277403334566330474065090547463888120632034861149988195391506549755939370854247272980851225116942076523443216091865502171319844434918600332252824122899745522495944310081556725894428053220311837759464921243495698644529259623081052251944893707559922906656519803647982282217589816579283836808953906930186810023133820544656019775433536188890114659139887297214350226997387319642406480912606349887418914362443171977595740123910184687735117864754585521829880190148107862178817879681909707488649896238257026546232345868893345035316716811501225976117458581929922303704115147613088233301267037488432166588159379254385262249126146819442392673349873262091943606747487330633339983985176996278521997614435069766894280352776643609623594048457869884538389602855053111524249483038678936884029867822109450218867709109487076175658173460644683923164540449738819220460522158654194238816524085970586542775528723168003665885957771670892099168269530228636445968292665209789727735756045871500592442711395281369817331091247226775301185967777310974712861842025073389680054363411998999290965442003174642895996806539825678928673741630288695549065314325956822477527785401014231217776389745533197911518300806896545838063186793410799440609407112095481175327737747831121536783827224783875665463268447060846406657799267252930081318893788189558000314437350419513160314134769564387064797953177650117047227482104722248166033132930740704585505843468009664997750231140243529192215077292713246320383453707360985965848905423630579217927581420225957514750216034274916474051493609018079755574890618734078156844028381536088048600789015196348940815365637407355366134197728578164966223969401860379750118292789132461366036006964714601514349815626117078541215542786891281098617070915919398251066381940249190070288005704766104067866476506897063736716587192904873418272881377983108654933149445927051605296940748988967553109348757728051582802424796514673160031257416900508034795369882034205794038377783887238106626186372205261938863750402659917238481256524253500794743426464978011487125813355053468815267477995456854680803172109674525204161758278500666304890404832568583423040353864128689022595649331015777912300125070005655444047289475270599409568692976414645468151816209830970976151753873492638320623481803856036250806164979285713140934316769286382621008231087508798949306235922486126210866490259011673904387172068699148764980225133703337968714218424112219344132281386891400236981005297386242661268516892092444710387174057637753633464511866390595577128677401005325351005332570590701426012546772200591309735764004508399873508212394712252072657043404388879723353230610927080822495801634959962025867030156241347758787213061114578601458373313488140099240350981248580595956605862751236286700037440218340869281994783427871062230842777196764572244495042077887738035744464755721136981443374901224334495566105189383057329696700595015739184224212350904889393062229489344725604185520921902327288875396362070884972677773127923944138109560649092832483156706571355890978552036469786156441971867726722055855803567612139377436051758394534762824357838550790640221897541887458871562630966576662376212470390148519900367261612212341824816294904166016007848353851936149861848917086218855797168680022670947254614959610510301056410704657276141323018913361004512644605705600666045795804465758509200837659943386132381529127932404579431201669724670511204252563342728066703059048794743282834832179751278497121958736497235123301427549706562639296222873032845305111123357722342309095455072710433919010524453041994382468418554244514656313351295348523618581998593513312807468174503363147231472392243115029418826872703333444118219712356192023204391413949490207225143182460607016115410440762130541528508103279399213553896504918846095100593951371459680313358323411802193531455499573885378467463774567062265452756804558428487293249798641215020434513373571976198404015022555312633732599933701008460993539431681219525169761028756725112987672593741933486944483863007925005581064551678544458986082860370814844443053087763435939756242157979773707847695731461997418915426277369090963667907506941732786876354338492232382942448644818248902380069501535643608656201467514734424409115547181321932945437206397182881474838047230482733638822507677274311622655963802241255077488167844650581160450472007542282245442743971192333202081224968492108396071775481467193459785861095243794111469836031873018527952006948490135589716074800508957838367846173378150243871623430814760629405607670216171782346210608556643365716529236070737572581625175490734876714058028921450474416212014593775740578800542343235799920188163190522284043555960860867468319320220893255400751808367515420737349602588822601896079913558617725806021018646040370092201336929320126283861599045970709453661792944753397021329858719497113054216250563720653240094356509619580528912391009193419757770969320138651555388158163739068678051413133126018844346224316121176969209794360585294332598882605004687800951704731857122960219355912190533377868689496971199246540366888638377792380881074085562399534905492558253116028228478656110886132463323854288542123985896884773288428307394755077233077588058341111668822747965379831207184200734614735416495758589148320782586409904054619213599093726589919112137116116285481885256058046806477417742282772081284182993273220309655964246185450083520334695980291303319184565775383017369025886800492115158259998455655063477743295661754243485805109968424078342636502538660559882354906479790527747302835971435441747662115160721883592987968192253273662432297079215664431331782617188554694389398779159623950004192980635114830735962586972009609295440132819269934935433093812777064909676076769369539373923182236198035625228981713551292910479699976900316515905642059307477482409506045392335200862595388042672832290615810837806877826727487711308533885934274315200663482315149734464675806714389837413155221369721908938721845372743304210940437649648778673438439679735528164563137188996671323376218712485517056640514480201920045056135429792206948109489844964549223286449062955559601789958734735344977731318280103976323554303123474141019075084595698742232881822827628696292849491289913452113672359341622913204270397309228637086226732878320486930382999620348474882472092658749282027709702739773112535344680437213702842000390349999882483757714628091200914331774615588234808775702994692282211804253320517756386681249511375890650317889533194605839262210024676728262608893264697562064190693038355783050759737140095530722986355647370479664239797782709017416089520126231141806442362322234202929383163308924554887045804865075595902977424161943458211104872407410980669392591980522187590327131107074774413843796329212810940413432961956694009809326600724330812536680781245224059043038747092118819659503169064627675357370246085320386224135647066156818612604723926448333715102835478636350041033288940080991924414480235294484339385818654661852866798839453816738024489362758522590827307287695691970890311617807856009894484183235397967018212227339650113873006194906869713537239768557187213855498021317985374868914466860785629047240986824265504992503614086067730557271888988589370139997625039059506854571489836530728610359129122750815495955296738736591551047570659485766731094985288754693278688927878255260891636097494096721723739821543910246735240669393308790156141478880988167133406322567569345493290248353115305062085672485408686064253240148906043072543376336359018334759479238157144139181065092769097250011991917269405634421753922678233854908357307645528318382480798254213640824066760702217109521881954312781587191262444424175298591282307198926722622670037009935404135464577177733850812510159371622165206123857507276974748281315645600389616119257321595011076955894732526516394626288803774730972525119612133234757022789683910760477916616400367472097405399673138521243528814055912893394150423408897226955768148628647357362752064346250510616968054992434752723215255654342771296836171622954896504061538220881401255821263560743393762667502358480769737492562621059510091724956082222015523130011079222674221809950916029253530035583828040783095198737874199724999975289265692596674910303509610087296444803634264656092426701471818367333009480340708089356239022041348004595524087977103545448800388458177455034620556711432106478056452728300926829932049704504720026476776120385183073096374923825348742425074020362111245213751989367554036613268594128964853629340997075483655270524252447915441418641366987661034298608289694483743338244525518911190709031931754822942955206722216007841559104686761692020687888984734230358801414231729375023886397433176232429507624934779790259847580742950392047997963119119565779706602951195024525318145637139403076294771348895451695200351156171026282154092744631844329368247331971282246005486788622842515398804674235623062065556126632486866909676352168968556499326907069534421559793618438093427246943124227934296683100266534961091787814984114420304074962962738308933095410974367529506891730366021002275633101783268859123603331972910531232524795274006476995656204064968783359856132268413884039541632912903897746314712472234434117194565599818014123373284441220433531334531476908006454973760983363288169029202815503925295979650502988447386406160569516342123969589079725640392645568186408820137006503935640103091548941922023306121556545372223988073680585953258296572420899805580486984706320261681433107869807073402184120034779347107633086666752166847258321523560050925098326857815861175823377780204220628028340934563667814214134739483028695041574057254167309686310093611335452690637837355160429290993039138585953423369844828480453792586701808088538717130915032974319888814228147382759923059486642835610209557490845326420212264473101264359400786094950332076843011555933488946779515511039572323187680954451068200686318647103612127385129467650761235856737127775613195258392165309296216451512345884939725851815847493822926921767784565003568952634969814539793932477098663979514673956023145714619990365388792730546027083085339693020089565092610536877697333102814127120791551209492898501789069110378881905360553577466825724772444317419056903718285146868150948731604786042683297477291107634572310341170402925734755581714215072341170318339182896098634649951252340924223513104034170134993394252656955991365624132756754473757380230103807792545036901926821846198790844757587298726826836286250060433182241645696941946200764545099397233006802835796351653446506570482040483211260217904630048262894961474412248751880786484659985844573794545552023690517313809813426538262534426536922794638006177145508691733919680150597373205649718198100237071993521398361034030300967793758256656720361947604356367591571257156689978920273630472901971851553815810493329690749933749616992063672942101882869635596805876694958665850323209044393453228436167879725649496242517851725830974885848314901916434737191901572513212074851161166215406827054281759968164212138372139233321897265060951511494632705254996465065569170328662621060847095918042206539286635607882138781315457623614732777964875304933208338687011647392810729553752611611154408661741048583718071269664857437855485844966693981994394919572719189814183550507546000327153540844548798181347790687930061550599422943364195340853009498221735232915913911204758383802465556828304418440366030950210968035818377621784136252237775865689313427275085165948593394754307066207355396534860706738221715756184800979104389910601743975324048806891816822167989783309779526632021174309804539784635983385214115749105664459703336318654957048857692205011482306298644363061617935247729048409311276182162475359156163647715496462654538765998091128048601247379774668639187544163428130586648068991368538281996575361533212262964709038184391567141846322196459551896892268256734669025180666707045268700807351108687185173297967501170938582104669523140530928761089388564887809111780707375718037373590701331478227008683410467669191661746840649046776687544070934223579286336893051372156490323491224638194637155529249833062452878938021737576424459122194927531380422930507926489631568233128064054028352290496381779708882710601166621570132906719425091676979277597171853044150058179806237883230098445635306599958456004746203900407682067408967289149351494264192632129837833580266870032814988823052986401497629944968967781834475891522130946524806436306002884896623937455508127484434359133126361484889559731803188252426070045977874065621474648768112614521335486960540782283918202740523242340195313373712856285884711447951855565139873056761771438556714857007425931028592761851682046640688675076410679710722553184838455153615942541529527151019673497511486707527368427307271107335633452840280781102554858883463555781494260597273651852814922497759089455254263737068778888484313013811560752794751462110619284795507070166704445207728262728806201185973473690665552183961698248471341575625737755116358040366791800082905200536637819548278213331115259127607730435411655334233509838569740703789217035799311118417726018138103890681461930315839221939664502286291537110096171376975783517903765528764212574408165474034507824638274285900110928189634893846142357151258115108206894740326675608408572228387872037390773541087373248267027448006575692045001102402056118249014135269008363792003736961725836455388979922044475386629305836005151012932673373604091033855138113601567909212922901730964403565216787041630183040107009046059301322177099775502763739462469302615638491168414012648726024617446250269284432303956478375697893015335915077725193800223370691379460921631232274659760042863514142299131250319830406673954257729294266460016214689264166735878266458645953727480132348831013840498450011417438878072197998032533603256198213703945382569751094445562966420775751542800560560539134061813679282758471038284078588041235747620050955028756853093372353339227293444486666473539817287772467237650702450400355712671635151812028356663873552628714085399376701826632212753074653036066394105353127256417486889366806405219240583281191944620281392449716585387473367525956765434421874194336969723498311477897827676812495928359943608446951428546847581512034713910977207786950258653555708127070251351267004418207221879351791044852253589905327911013505354550150768829841445887423861265708612758709829093829024175993625316120662262287324577571808033370530325473053326817023442902954851840114889946119270632259535885997038824820990472250805203969605313239328782669122538456338868337749558033360521883911660289526384415310623654337100051551844563645654865741645239652393576194992181635595932603358442146064517676899994247940435265235037853450711980306851044347282449357032927413329889309768326761937224089247855419996332747133952669889989767356016479221886360293329422765473007126728244521005300021390628929337181300350278810270201041456649084815035995634633138409656675953446852540776342409587435488989819911991535305809199448042142649651700430734117855685666275361547970295536398945500909364715038082427309379320743715032561031385805384929025994594792599486948547355871431827387979357278374353825907528537722738412358927630783435107284731272849235597984509932782974991736734933008219579996157996892438476288605684055097368953702686523097363949089020534058071740894135488876512217347361901274346335123025236019559290961609066244528529729227774784874128652769174271013005772193125233404496265978835083767378958434083991531655833331233692787607363309615755180846897759325714558640984808680155412738572252568417204496719230818184668605968200843379856454489511226807917442579177758067380838333875199989178158646610196713843271180854865609288298131824674695747892526002327363269597570860003783192832255704599348948182647195724907872692639567075151641220177992877333826804484134466231299247764103855161600253666842258089783023357050197313240919425070472586251514514721027835717679867093807293672616278579904666885963253964510055838956920819859277539335358202588395841084963099820077819477196903669180781015620585213584325993403157802470330552898755773781536139348436742442356168446234000236522322577818501760511722549558667164476646629295814954665919113525101501801994224734966763226909826239280209709339522833814330695734016896719113434314150639899002954139294204998134271178458247791922005772334110752262884429819833542924895986945788436197676084807339764603843365480272988015489899018532321397877378583595023536695496438209309490380683325666568853378501760684640203894962613922655310989398618893586246744521479869088843141507696380237794005813977476982614051237279857794849029186347912550924005542493172315405929031517383657994387795454692664493752328006508336512325243044342134708294710070226939346816770693576092014795050527849449958586338701774557604190471667901416732438689371307417724841848049092987907716340925449832737680107409443580647761598059608178131149911048899129845190688124825258866079937529019426882858568761392434570939737896780830158563888429065651883728479141594493979771798782001011694345180292287164378419708485352954800208336627081699742461219014589810034841941564792446522787237288705687112873806598924563528639053953225274153705435638914123347983015041980627024516214164880061324034451648186275746356476771378504132111691791265519994277870224740557823092097504624010543377844018386905372667476230336233780868199955527925222251041707117620722384591567252903189188331223928293099561941244637068768081953268077943476764860850755612900240238885164536467256845694670363436429122018608747031853488778797254347164848630174925485633617068426628451844901776459395072598616851522354742170972598450734010129315353031219911655452481770977266868211341942853428276004970799497558859248513877818754757456727674808980420543915710916841007991289207376971301524856642133475855071769886314522232667321744293098888652086725150017228646251669782883779093570286715742694725772735723199604556015499789731317375685038542740205378313765588007976967500832674732312791504342293956267159589946192176925500146161999622646299021346380514780832660410858272293773093331385891715433831304426099653638900501929987907647922276125329208324547815802659535010440064416800148334862852532737057214881181913592236619283613658477417053036166495495502518219314840469887484499246680574484206660439610571337277363661129107904876037207724896480377973816109205719947382689820327307518675795724020517998377719644868369104329159114087174529729209391117049246107842562192409732957400491483962079348950980503332996673510338987332593871656073332462331022275539329506965320943859989768378125523689146936059888837148448855459323325292268658205162903570089415239992319088283554602426125695974837803659014680801032937096483405108368681074108366950291541782783613600535669233287933274827949570453818170483310053806816386863432386534331641974518307980944062339979291065155584462228521078396749398555866158573305970075198166862517971730868339625343142339171732345884266715499819683807994576196299216637397653820497179346563130040123774611204080336656400225956209573543890033462700729653673484150482264444204827378810216631095664147317932374773480664546187664627540200185272582813843952149811575447792172658528266758112686748963315056527110630844392796915757455320827048916708811524828455458371645998643055573398981990228852246485291409927352808253695436472900076368317073353800119796835919510764632072863878379432297524847698062704983867405020616780602411136585772741181204935896418250497972304417277706153333116701385511881004079360189050358137371738544720486941929980316267240807464400801980650605086123878845826433450296090783264753089967911407258461250534435877330583700994357797740833063481645760896154456373319811664695030394867279982248930942965610110938516810457288697614178252432997117181941392386929825008819047423882209706501492956344549374892643365886479095691862178319159286000645160539175915167708282321754935654628882797994976321471892220704934281714523472601949454441337811292221629336623186047431966397329158712332434379034898317691759078977899847901986204722712384837663340010375726770143883123081419638986964717979893599119132968951438566452598779664132459765318545784243168456601192172132619701442498950850245074745324098008996494815230323091995121723907214050524111556963164434634529880406058119590902338184436073580038490951630602246204362481808578536792227451579014455986957616680273127366582434709620509166084043493163572056255157921591359463785459254488265663403365604021427752733666303703698754741620531816197130011496287272077476554312787576764890219662853152841393993581919927271936818625940285571899057435508993883191218623158777548426726655806404548650240937816859847145575242399903685480390968408107901339760953114245015774237222583854836210766453140505663101265946975495153130401101860202334087283765645126229655977256801201223627139734820824161016964438109033066692352146327966505665463681452615979599710020558057258592647331590914875420768533152651829554280490868186785462806340532139634972361985317082815913088896346329141251413301152217734336166394260654874745224631327294294330969064643539280248269799894902795212871625677566230433418738115954067848364564472862600572737207290994610346634929372794327665240995532894237107733141738716900390025931665945218896639475062900207318913435654130757716600294294238356855596495643850782103134235127665209048700588875118954199159743225067397436033450783667292338385847961025711938851475222682242645857439299121339575252353885196201262773707217558345318875700408983695714929803723241519651171650167550428046371703877844521021714335739979578207220969649209118354555438636505029837660481333925867998494930417095746116348827149328293112662630018731775355150834747138045773044325032728635731430688903316161488293037252130535680227854809647665482442493299478088552390211481932192200759039822674273573439077278237819587272176333381368500067309853972793867701253857262887744047572732478341274808641198951416217331348222905135323116607341533694561247997270471350269277224221576049835405345059240807272088684926110366802695100655668580246081553794632210208904382490118566754833464147276690822783048652345798561017354745864361734587908871455535216981553235893096528653244143887157741460197738052709411401182608001301480287346148106352856741505602355151349112103578422432992506816885146688107673133401002348378724211510642170737131741615035162250538598973386628843643066732594469951897944305356641760507886552766039992821083787778766225633626976886891392083576115743623031017258228058364558568128302085296408509618721431066522481786187595114478015275928293704954933646986508028474644503474315176914766471421374408419582755307209911748079253016698716123759639948319590176922561859243221830692071989670095261804437046554618918501930530177756640867763960231309865439180061453937199634076456046309573236849925250450270052251884875895758836560022644538132342983395503780112587296494464793608912056542023105606118468707416962388435129587638108001728655711358980581322420853760791215182034408939720553282483620085314313916810048895890144768568572182604876329655451723208180120221182633505094635313365113372264180585895005599570617247363465581964733518377699402815645248078191669300984164004082660080055596190297616581356372751510802265059686970925994703735457867270448064949422024246679215638109804235145986945100201444607020648596407860925251957119268253258742012445210069722711417720679121484497592793479451389872565003247951289040854074989141511371771925987330277779146511143519741736852984159090942411639474411034673949044613478263400611408194982494260894751123004640756696271649520566970071239949020780106068732753257630256691883259162585204715247404941342414730589160593987225863065077409458215245979092132983937806285012690954048636700087862381721070791414594916907678357185495391153910231945597878090530030147522815074729293507474089781082417886972403528745571241377979152764893956373457916824796008478774120490614086321302878423607547657685395246910948628654269739877634920371359105359983105390256285028331864168292357702650068091001777361237224988012538668338813568541648182515868270483794921730582254810706454565657523269627753751024478998952669406199119969472575222411710242566171482519172077848143852553466245685214022515188438385872458675610564351514965014641556888912109887902755449664880905557583280181133042533008786891762257300751699390548336295712494405580030578706645665426902061019892012445990962334223856374564382216481317487158357395526786142024039242706541674291187153840384793099663419234661974171885482523392709124165656577756522361479572775173940677850039888645619231247724497829107130680140231524852041193535926760512612453610636315109329553572351197711307718702088421444761758552032257433973090273379472164859986644143186929717317742861006962801760748131078844608211968116144042979208074246553151767570485205794158219196446618913736480943931144960115013330042682617771706130496029516046471169234214093775151734297386677143682078433220636819185045559978607725805866564062874044323073318970789433780626627864004797054735940743327668735110703996143013683874020279644417701197006644404351377013816494363946392831350781052603382413355971721690141018722718465235092726150469422379003885026878892732751328756716050098138969811161366692342436054272408941860628665411884354390813281301235855957003035270185685530344268081827944587274980512994239620060963017070918907337015499580593021609980437923494453298306499195492160418505699002389780783310947801717892614041792338099267061721158426332918841197607930972116757341821881195737936800742784393678333930720089090159336715525577837949598379915162730553377839365847545511121095317553301812439781516401540757548300527121021349689161186477556411520980115846631437393347641244539313051179897975457868166874257741178652974406409794648136522930380911125734804946821924382891543452156787717332256444204237297243141939473984961658287445253586300484930658213901119810234957221719446822001848956194807942621657463522652184303910763266957199012723194581048644533008595276328963543380746492861240857600447906529054226344929169882707878325731368536085477498921618021292726021101729701311179682968041127070438744154799282629601198597497939349652305956485849579219395474341944252157684731888764905502094990930446957721148959301441099524341399458094160755752937681491415737160079385484192820159805585636941056275845603605813433534716060416397091082273000628408647841921675314203693633241426260382775729406167667943457368199768580720091628034639611099940122636880320689956106797930740088614578314874332886936119824659052377964812435215489089657359109792816333051160930236161177041840668501480391320607943029379304455463745012639636911722914523921869776783623899389154494903236110586991001121377379086621879605971933490084782167108493608374699189585898929656777971282340446288500498528806844006341974361305594170463809988351465098884395235080792551998570917738529059926225382095733321119988711183192411379322836533225205459695920108050376256830860554470869742750980095010419532492336836440515770454601612892230893471794991338769130808470660992542211192174504873726956624967608672508677619022497721888075596009073806295108888172594527652159124287501221962936071020673646450331077551293582763470332449462989070976021059802079414787751310063574949776545684319562524577788382073963756581923426489798772889710963728713413934768660848707333060877260765181806082084004329496209762984278063413578702442313504071127738833618984621133462378350509694554316899092192381529497615679849809055550793264898637528511504408993797795702274367036869819860489504864737129482702018443464283402641220248601675634206423028411626254857942840575978174968344286549225025409883684990275035480927103906371679511430552155239687436286100429560219956863392763993604899370900120010441779413506275117220888517968057806712522582685122081251047429963716552474819585116606436726939134414125996551819622538504481535944681978631377074452253267576657312268304754951962652682573665309998941179808507222631452120827468259173194328506870299048548449289515701714658907976554505176002708754716477209478862002088864521592412546791527102821368120068217238889124391489456435284748950826047476439170723870206670258657439491292147638415311460775042467592018674288651206362829276480402003614606745325898143809763772188372993133028348197001164349505915518761418349568314863053298778000172970801978080739855208504503137056058396703904136073844016786840559764445678812068541645215429887906706314892536922835347713722960783929355307739668106232096134200092095896378961796163431064947927907758890006306644229485108912170933202350052462151694779094156604619865294644363032819837041269191896631326157094026972888953639322915896896734288423694254629612662654330961377064458116441806394139801635211181959586588824394142554460606515860510440551563571032960492102685665871148301530592405951448642232894363693968954251409182738164989702593034839476507685714010456954198287259821252780416347232910254160388001135188153942889286963394629829264994933356269393783506083746307833627416398711583571869111315885608637665795270104101771710935642307337041723333173839991915320441040899443146839314930349191762937832325869971932148175899684092165817707203477487696732477133630512022773920226062333541097864112588826208093541223475207808246584303593058636992663467815121664247963014125409459563070393903395058759279606166838135459060289561599033125211128861980433065489901869763871655977133822913696870442578454650383141230330014930628448584135923488898679900685227438105755170766837072943629422608063710331472051868095557255772156837532544198357167955808137358830489984693881947908243535576535424073527924441015283179278820271884741783268034972132459514570427237519180456109967291186511862077651216944498341714455965313510878029370144620148273798641104569827265308233378837071679958084592225846445301605693254154726295791610160051759447124759512166441759485323007304561738404950635323693061228544337325365521789497070639068772006193917078686161776179445900518390958365635962459975025882150372869706408370181419419945790831903157702295492643297662170751138853402406643715269161536161018389478535855509651065549015942365642794570659659814971359521470460588894870845835435385265566782580954523927694576607414357185300992142156520823646934953535757266494813921242889333987642249040299903708708318282843465153244341914321646960121463794899845325773784510842412785948991508541008372903117516803441140983801806771347072164526785571820436665093491728130346395380935419449808854323305114972577394092361186302780319542111591398482892642656362225468332342139700169189672242969051646040346090321751788954410211675127480630137333782333468757321218492405464880283483720846654342405905183404094402303665763137979340564140050000987112623049814172909672105702652154047107352927087299192570611127647843871312867180672650504807116879195968695988758316845841418367252398016748513134085823780636966531137395397420354219152954561892844796620984231699136237713658437539915894036859890216234209214525329526852014738292332958452292580121207467976846650579774998605652509872103096862394008680823075328306431835406214531281149353613579350455763028571039032626795200162974252382178423573442521209275597667313185058781569484261830625361610710701561705580066995046937888171543693829418191770361135808505033805275694648328520993295363768358606776963326976582929082834112400518714078760971459260549073479920676754356886250507553731515108702217294723154208253465942730149931815027392316963385291749418065374272004997298775483997855038856777589737121561145802331655522983404918980144135037220119155567814818657184185648281423393105149205271694696609673756080361980374488392944869682515755190395278868798669701420487978499026981878521758312623025472389571454136208901941646301951407242952738902142903698426244316875084248099003889444729319197440996179861088089083167737569271746690452947027832836012694723749924240395616926147493382732015400507490155510260567372443922383000105747825541276658853656265681980332988062887661603163711547880119021061194471671580923553807253447882108807750635131570254891698508347947555105988468933025457189590508756796286718462601358890057585450967427519174387379284607073676172369202066476716385044680691729587170482283899071408565248510610673418884010184555298086361841185585055168195042011327486550018968610757422694319630690534242018539023078778462894512871624111140947345807834171037632743333250611982278845637952448335281021286125775201277782578307617790128784406798178056768606133097270227570445285247920263285203539993421677332834887932523995974649755846958924442662158828710402970023457145313802130317115244860885136172770062064789295393857784411545929459138780329172483512608497109196810456805429670608489433632893507206798750253532071662180228724336000782186243586226563738030704458923860924525738339299311536641768602816592508759465204025712458485519637708316027422826440053473156941591484689032969029456060882444244928249420392840959384537400437019565083549882896757180147738307223928949167032926040637485409192744462323083787346570171550881089971102574596196218287487020412523099551566339135026021652387713581519053447322883672623829210310420071253098785547568525648980938473004211134381891914992370209389962096066788502305882652696554510921249573248153507077589934795370466019869629227601548014722321282982710024359269379681084192346639841389941465060198383022434979934013715684065163503099249614874375594853528918262873133794319715703781174991964888323822750395027756155543103231977542085165821123499576005383490933564436942332466352681965024694468740019477817577777179901412937305865951649076328579919370271374658439190870387473863707187797228557377148033042768568862687429140867672878150281805899295985008590667639754711759819933367382130597183965634224157485681254851215066298118906076495375332032187808103267429637986692457562089967257965186120913093068225400075462454208853900473940108578514895868998209615370968743991458962027303404132192458566822109687085538997601998060380248513863040998961544435220391280394155280168689415334327945030879040088868550951829113587629732458456065621113969601844281262651350899113321868172138394498634592155700600002573195692746086357905872780338347091402256167921381348551503351234084562563306414475650189967308065203086232821493972200058297279483401397782815537347178183438117387103278697332444673520104696678679143852751553937128787625657871673233196665501829290475037508973695812633017169646159702320137735976031545365135216919126014198543974988330987999008037189575487287600753806695350247731279231125880515326873717641384161926337560133366699615394378714628074789992269938851946196748090219516647919518819423576562091776893482179736078238997987960868971919566856031467696444744080653265569812743236287233898364033267535583693289024369214493026567668911914327905034034193532549079274361574018021726257240093072984531253233878255751353261841279319499970406344278871983854108815469269352640848691502139654141884758155913453050617697003156012195389291168526028301147723248516703572591975722175798650477522735855789593193153269494638426100714470797210050166509100223486501582821388580953417804213953958318299379180206278434829924429251104088648145900105531242607956736438425246281439911923745914030096741970177613387167526821627570590961985213050488773467695389019051336351861527188380902740679330165911054199912371469792776558673921484633860130427142353659123905168574206811955558755383695206862370501370852049962182290031078464464460188797176398419550990430839653012794670891140742390115436318060920402526642494001962183764541241080822112383153571108739861635631767537707724354316990768943470199249538785194607885335142924882965425739061482995062391693847447248615654837342751454104715978194435022854688053974720449405835480852202318748244075218553314768374072657084735637721147921916508378743995080198870984222423869780857611627578039428435811988770017152915088796209917225472415334789140374562875876649605240077012643569604733374255320636219324061360094342829845126995696205291374586627371465588930524630611610511963918292985234023904647379725179068755114853786378068823049925600813845852738550222730165140525284298115442881084960398228670462284400474181582006136365292433707252615175463213045141183944080455316121544965880502008113516919964087209558539332292354118488969455124752038583237965814143545481089603836915277732267612510228575592470010931274493166526315467369037039445821145839577232158124116383778569231697037595265039279629861563040220080446569719254799155164004772701757788921009282922069376353131678899098265829203823553621427525633681066509949035730670132011814331093220814938773120415370669726123508459643055661290908806823400786915743418036281670797921287205191036541917113826770542073533642142592565314034927218871101702045211632634899023132826732786574384127966053175641078305623600218464357388528098317657982385293609851279386173388382376271304452629722400478895103792835723480021935513363637993072837660989612616184978693712738099471020595994643803278895974199443301520930298698294574812134733336047215481601073842239621521335025845307750730754554908304498108165100078630306888510990534915819758634427020592728219899568169578817526835592997219047247090843909960816522844092865285458303794711809309436312547530224178971898941848459419032081172800530288388666730561307439201265574718632350970016951673036319181864805648000879983747350222605440370193627036431570975039220109908950272437772903444746775421083651707826516530691347142324473386678700657581927192078412671251681233418425884535331533267114288599107961843120572392946619065973566960192140947067824357126947163922675775714263697890784576754698754936842812477414457031569796044195068876004164939982087626177278438722419579019311304223947905706230824345097634859170852098965962958765100796351439821846019604246562494762394151447742788908643622199798480428359945877746423253743781855650082152744457986732397832446405333291288723178452596051207697004205557002553529659203895805992255563958233300429656662333778229545135263875738998356255273204494953285444462438373623022789617817529933584277618986107773009179945480466589129966984715685626334115458708764469662218891547015274805845891243479107970185997225735098428339155980706531098375773102422208846368770321941233413165201863864145005046348201785497197098644163543010192356084999686582545762639733041101176585822113563130863263805765678989544715511022576560710282168037715050230491347310537751751813329278174030311761936608990326361440370921577850886891158656531546115731766544897710289126858451873449267988041694426279162490993648928917715443519887427217013367273403950039677152463644629225658895342515934540257234297408380372920830384011888474217954140970603146438232328498620806335971976380327396078176766466180073762856612492602070366765316276135783365983689355413542929219981375878203800653166662312742762900474738757139696367693272727149544203091390298699390441725152987122464896480874296595756831688279446658680613614137861894025773140381797028011626585799514922194759531089658278972244520817315410847406885604083288918100759402670346456362373134535308792440650851112777748202742823179454936026508185121179090526760801473498995795517203613074201558110649373943278902916801828113254205603287963491254007178365956578686429706705926280392502664055996921266970503244685821797522172889880472841857140473711102596374459144184382453153217884324949467971464971279709293541549933192326106114123248463227449891205639651792879603578175678406271074842668909051249879022243318766759233146866056169481515444686851810436308688656682869170201038670837835350879788555468049242841944323159112123603835465954623837945550182200584201552159810266069176210009140316465881520876147269172146867736540767349392749771889473211386306685632810041076951157068421323324286396416131233850532483610647828446689014303634566378891270842148728451938031787636184844157743895539500920758039051002492808467124477515457784251609452493500784729454830594984025311510917197262967701946552833546942523176001127713970578781513578920286087950616667499143831860449802248719716101811555157585878609702519901350304307104941184637274147537171149028229682484851888964413449698531571420714144301845612377594855991738674170352815987770622807886571796551069842812636371589791737741558576781153829130942775957283703443604276415439483201185437211044141311486497290344406991533574095362397894388258211840772396214388025482585562165318984134671627151447441223448020105141814034814224070827446868920437073322566658308890619163378067753356729369813755939424541852263893140677336193749061908891388592997530607386596902407996670540149771656756345702244142506866319082904963663960519863625745904395603475403897774950029863229800172737578442375364161599395700758578635040067769021310147666519027182336136353580355513682238111096014949768725732461264922497115904794201212468982438633504299906417694933397340189819297665132489944658744332363885014738065637210681485132091484056371730960816908191857878030518909926868940212503923438813808032808437096811790429730791938236752857638871409079730687265163808885135726166597225427989508463211824937735729560678259815025051254531561332802469151809798689354300827117068298290468157160487270590051297588669872686226802323851896983745532083210844603982203077874732685587056025850204348501426560900161382257800846987512141419157830200118357381536432793503943214087915474888158089847739235969047437834734349769478619880287198603895657452855312366202655598884464668458850325203132344304681762409890282944695817723847116856156335878403512426376995054164766407352235773430139228869246228399812233563598263847093374410334545297888411017835927895803407398386593777676315209634014851506126213295202449272220018033021018050984827819213279699841476497501703813113261178938224407498539932311067093302141903427052893957087927292955884275755230079173714648079810744690662995938283199720504080475377626459601737942442247177335500797260053240195667630622246736246131315102814015219518709533317489492418182637072951634033291005389206347318352197456730553193722980295903288224287127784813770134577933550836043763082168412312665526273598534349435957570083477799684061856041560552132270940360910403084603849984018627437668042138743149908257554492985342128070609683401389729436623567927220990207239127037426829068678443837110968559394747145153432507150766586865099905644669776804082336271202551934065857536646424582469430736634111522053932036988228087633565941544972896264960898388541618246724793390129225537106168017761762704005423336059023730997818991687640849304633815698151476091753955723906516006312931307263036271820552069696883614992519008916109077979934408291346299568084479329287753736138300861860701194491183575696832782294012509983297568627995982628685985224483927596366791018713843090930047956072930135490649956393352771913191289883547086096474472352427108253181814957121636381154150612439233428290665117429852384944919817731492707488560957256457230372414813480901280603913562350975718735188110922732393208121419490958693360182631634418294178187798476539458535311426158831507079143328567100523077963337782242919816123100342926386650235977535749580504593198288123585055805957173251796446274066036960937313871012995434584119517001298361486182675395664400376586607473572758887871035726413192201058446930815069148936359007672506405045601863261500925130153605459137210167908489366483147816545467351528856311813053710106804157905017320447891778075074953446805675908571755597465230657382944169829511713635589947564059594046219321927900750473779983230723589377361695523990740971047575975014327554893198939325395859219494513588564652801306213941900967762846958939268359462416957263292253800570639705373366223065756177153423064531674892511709215748485890310334411700931696974159147908349917421173084934511254338211862972048240937633391369382808150117392116418532484886667405733722058646202970258104186881213661116021281233219945299155768537217184576311378030141619594254678202420605075686774568487082652546189853782705487444012486400023362819795193672645118733156620354082348021965121964952333227294606424619118180251458474550553321563165615719791649111850140982508150796561070776985756007313489401807252296281274882917048782224321140842392115401443970876051392205005781566547639402034542521358405177057870028786806189515618165582067882617056628757278121197286380712826330392929118511710583300559847442795823872047179178513656559438015174819375319357596442516847509220494800240449098413798233716100094382781617443164297947845738310587983936528432260169821163282408081894782142574733287528183468124522339800533836509986100810515085309829875193930749585867580799029431824480622348003107100119083860182256476211044575944181827489549975410647000595413906509942995959872656785305194840116822362591181566441856296072642416135347830485408499910801775288478009579487779481343666313549778813763369917850611371585724423534432564164922910853105422096132004854339169121021226909989888841990771348697360707794973132192671299484341092670213006899171852245052286043961011335706924709549464568813242914392758774019186508130465219250145250236427260692226552869101856913661131698147989413270709073396212695260563551698951478868357387598802672648389659078106117320938192306883538220056277697384931013850817056112148815004724796489199646079799652806452499103823631947715891196429165886927269395512408843271427048802494013185033815413366633210045687569061195504389693355513052646122781973872372381637478686009084363119155526622158203535152091381902616975658969140407934191680433290755121896542415679167408978613596071960065584989294882104493278900581063835621463915351770244867095449307799337583391484063846370662652848413410876893168328184955265578623879427436598176966277533315302878475421057699788009077283067446052793471311617382763963100601511169624303890657345879071417701182421459637517921767874879100980332584458609603389835752527697944946118938458230428862124654705359341041164006993599390695054790151663687406844597964857633387276715030739459408592101906046577432287585793097188991634314925527021128000340933025467254367356504673463876457118312398823430429854534358330038444077232696090699099812464384473336793120882902408336052714087287677059165953290774382867086280692868053447645625207678521767319779019319013879837270354779349934823553420728173656184611061663351996316250692661760317629038734776885477329718066965946695096043078821355102464707661463902549407559990300465298157966448619898548847825325475828146923710080331164632892775782219112410372219416364461642477935274201080635071273473324580347518234144888194261143175411160760008256560590867565657222993537074260318065260886262014831998857306428846226929945927776606668710431817065686573505100414068712643478869962103008432643180096097806699884808737808043129650440797754936987186169748830538396910600739371577274532158283231732767440184015437190805595858015636982367408381202050071870517011248710913317095950936738053314131118021584454278932209635443633429174909095757508103234250860760252032369516701546484519106343609561996953363576925328914631683299073819068799025344842213409761817236842520577840898602474756942256784237519302044744652120127345908571172865176573112170627376965216365536128947274247998030904711504492167043347216834361537245593932144898204101969467204512908410104002161169939833049094891878845827591333989955417084876175626130509336620864480590571207006888322312935018085011822051566407828223509820833373099913730379652146438124132599833114482261624824156375046392114519172932311197763068944943039392235078705851678642852430781717738373219286227720960173336396643838390151403645679595414710112240556651695884229792995534417279828846146390115211167016797569291340722559871348343658112187225347236328632843143932860686120786752427192993396501538921269173774289473691842327739845155212105410375457101862448024423883266612849915627458978917131508106236990279725852219789751046707697893261705731588185959319212328532461151857498682639303175719202315463662961589700198217213350354316174035392209027610700167947812061949375350517699315424034981118081304821571701155849996530758859764993946082026142567515223493495662817410177414137557236010031332150350805880311203922403905009715558393149750036354495873817844018464530770820682823468478591258552645304555466407150810824992737767032098381028393242803182689692210916784984196160949206059764862071500979658498021793512136733911583305649247507142176945477945636032799725463982976798700698517619739847155831005707416202677160748275332238516479025584605785456911469339363365187133820154124599847057089686167732337536288327802833023942443412981091589290249703062736875650583245443063013760008082207076892135864945662979700376133973172005020535058407504848775440042481711703685033079140170438873217014702342925991389559481830697476260873466287997957322175895463561488973240727162268846857563634724498304902995883428803299793392036759559806557230663807919709320312658813390153476548040883312256902825003384220908335594981016582466495682933825783443579227215434198427447862475978573704281129398146082746979230978843637162248725904356760428690764989383968989339907432445525778010637298745787156920080940767293975967391693779961371141068237050189323112311326073834139670686677234289333537248687009805736591234366424618023195012477078146761454285735749401264556937028836102745863091815930462626191783541918425711508248583569382563025419257725972027345757422308220398915460740194685759054093916759932665103008661585775285124536670848704052906451968399126540860260668815717156166530969068565115107507498756213192717284354437652544483114972012226951592904797586428630221828041816926470325363020414316934241557782763173730953539535166051410658962013150632054437343215226778513386637765514703086027743887803975488679497997669026149982497225216423134197372167160893913597604511875113043751673467472750400010214609227591698686220987674539775119567726020019263921658917833273481358204482946666030125834235608189319899370731732788680709041168044508753035706108329780811187357351536063255822969388009855198749689876360772795922558836971323019387770616563305632005097752298313842862406838226357566111860780951176810961227030627562328731211870336678376163446767393921725252030529226680766562785961191018767329325927494861841386674112834383207366336640200558948425251113928070896713654692485264658053165474705484498576101074673916382680015944665849401064030046601361570993437738803088039127644266320691230635473580481564610065620389757524827748628228690123714263349271723086973411214699332420241420421358460679117415586184977203482896046962884506183284391619580806200805381926814019514659351919170956561848522828459592357294522510876556296809540516311162383655177206507929161958797963689431551332946150151332955121680919347333901571920394067275785241166596689447954758606599274894558825771441898613565862538750302136568826666105144786863465461201906781392238479446205124483346970327045137695876970009894258475521019933156230786725493576879772729889554358835215016590739098789932991045239720650597126543869633056047899814353965353232458955943201521702731282099860243524034841909126952939646574861405662698862662038457994972981429030400038316619556090187265084137750413635581594691698020113738936919389206331327265016008175061304461275135605465923963940274711690072402940156408355618389038549088230027869698259315469112141908403144804086662941930870727594435680905966268784551838582461150734915278540709347064704689414331364144737070359870160919623593253852745112888390454665343571441587079784231138480113487811724601382045788891561341809702420294011162643257986832794686426546362707420580845503202842260560481357167051293794734848238409083548422029460965990008848708232879760823613651897498800092897213594450082607138904598197345792865088947693717692934461986239601944032618740399893820151626310625057810130016276675102362986604000470225183260610672227334722587357865884142307401520324055296810442595746261470366196444469298742899423182364419186539584784157855200063066119796026692514457573618687427936762963732430110843584820316176855247956377032691615738657592440722952719219437641395902281689097764159529913842512382827669964305690073936464896835183055406478553596098241711583360013284167772434801633683787859103287544917576893382599715134396050429643011572138796272037288711577742550312702227408004898711992581837071183060381002842192362807941055507342671009228834268784854777445501271368285203458799053316055384329435348172427396951366507884021591398806933921209494932678806602848113563864313981172836188335526832932546433339317359518794404246815677411320289137400461736610745997440286378059849557873433634146296513467389382267442564160121524323551480182762341562168022399717915142446795776750329648815031098523476852727452818366396837899618790857456784811940994901232497902376642077052213916348565375660281149438549340376201514568779457135587884266158372020607227559241854833787305356012224868596847503791799706870700282376802039908097164824865919163426133672924170760216183135741651071352088650180377550524024292585862965356333423537740394713160492830519552174373560082525001112113726750259323310225755737657582660214903187960609229767742912562508334851967920260897251090794286044437545569122005080186863640590314242590550047276037219516779104109948040363359667027091388833660421489456545472591604576417478525730597722915604338851114383793672151367903925420870482044635857718814547134050163025756834547634532867110604875335751001338353067127220881246518866309220823311978570136739304607625370338378144884253211468710112095127359233339301813967171449112202689532559008965033216198628669932519376866760186998633586834104074353755738831364612610521892858741770884064630043843966037735709674564870683015847679178470288383749041806704222184698272441468986711680913923175191048753687979603674272675940403914902536667078419676810036131184550620333432321859246154865689411435215428899796711586925057745242446234244369545362052143949459401160982308368304812765015501545237530702465991255849126793978958950922841161617905404944112887139831225293959713693154434704530664013532560036797337437555321600503199827128613583596974849782206077783503628279138119121254402577938632760227196962474268515864253797568482595030835262920444356136364649181239151142295314773222624378969554149978636581681827840027770543188095303639106276989795539926864873968243152461657592608381805205918843710895679889722583360326236309292937448866240910007473872601056055988850426026448620253707050792603308497266419945829590832947052135327766168698086211181374459796573621499731603541398374547989468757383875749104076860337351678132658247053674342378332117691059390633681154318382100126418634262962379430042297856719056325172403884638503854972991525543803563563696417998015305633358947452431133583229575862724569219526175952659580179324396607981842731244964547750522791420058000492357870736698789829134024305478849162572735342749347539581762912202083012243995285473526144204992088034645769295910032449569657702055805517541172866335104509850755847183867533473545771715139931609775602490387652534533085551665396893055471729341083586853475701740577891298576667718697375449036832334570497663389053873190548810346117301016950985809125739778947469585490965223867237469979201287544755651004900097551611886370836059103327270059237616890004554750987472290956745955041619906743803251761891856789149214136969814975566779794113763544183418565948850218728999429517677304388483610373112329856843023716119903377133160341124570297315952188640084416665676400908611154402338125173486233718814191994152953263164067978907852794070318841966212910355662390796161201000824838205054867816123706442984941803111563466188622274088427700344836048836923086721273073651379037696476060172756364394742823604891214150121549580050501076718562303710303678011571370835313701388855298867984430633136216703289276257818000349175219313646817452236562200156313087920667926918121870593636200752454683688257569643334569008283550485203968434540496806019504469831528775418510627687971267675259967451209432443983088990670885376947061291724816188460017662749590599633439628803596255379436711202288059044600589454201330304359284828484120693174782112688094410806276164904810770627592500701394374739253619654311366677069792284862529847116732699941765345878119067994635076057647777271948069484191589264281005755686373994524155716965680073113489101439200623306416730627740260271746545079073376404455082536298883063222129938295009723712178117327611563880360176353566289053396938328961500316859092297970697195189726527511436794103740387001208071494829464249798502733040885748687881711870264587592865561801423543380007939995188969192399549522333260389800262708271203050047897670976428933593179975369820986621492894338117363643255885263349177127821472622287169354228198412621397844309628875725309890754410422080220326780710447021021352534703476225139002013027031341768680001619843094645177229441535452568546411836067623761744654323269168227217161011843263146811178235296091858664554818583794118770222806834313896179236065838887518543351634291333350111881006106256289353892270970109763763965906429717788577129036021947413251386255130229531576442564193438400119987965579168749307882806004407759738820539606886226445005002284049133898458114130009435703170832188268553445415111392675110608318582845066836827387196461532274661445154299520796079143233744753428531983990691450980488268290498055933838615526845725379228860798863410689092177378910636177047193705457104221598859311046451179592579546238248584172277977936077733154021159879381666398751410858696172893553327338831382555994172271963360437298170389582335409901551860491503699670296680068732866895469079932712290499379440868921684374912714157182217255624159272688758565641098825724416091475320918690700768758458314385967448474837525807591243735178925970241668823925441104379518498220800306533146910863388698675480943102746930623606887465114823252607117524443431535630507674628014486837881417240034515626875163710325922621884823414726880488840806341207964222885244614697077787562251158151912003820785255461383039475369169036463787538794581088378663824717529974265458474740288705744132880785953206724149155235710957215310127973684579872021223378802019125003783614340158616357655588292364978529981683910524510356271325012258195687073921179223621759195247994664640241316628181504613993288465481461444485133788667944543269811982974354313001162070650633529008904520507436725747019002983105518230303507667998636465581011386924262988968876376473818129704120686380137131831338142503566729239415108588540316377482837062869245942412462521434968751884156672009391641819418578875199204038547865737926444406863040827581850985387081657706389208995963663327878476579089815998322600312457421917717805893067222690061057689312874264315295424461343234109040165886571934367375838217064866826081402781542713832044375691715245099599353338263615573979572362654699592667476392417735812440532102402737497066854400395235575718837770212864593104381393526914038742727094528613029233345345362716314104563057339837664621339883598460423287366730316540079093141420278929960587480330502098597319029034098819108757362220562391819237956340234448767734346006641708850555363501689246091055695637729453042715439752648675829596518585779458115994836211453801668938459890314622096937751653883317803056219246331326554762526641827844955584239736488942419187905923248889914132748040300342597114817661354840948748566857930018435594632295440166186967007852071655263059335987673620158327708897392334827363395376884928607381852160285036070569702851572113478513537240066104253300203600222315021418515562559743668958093321003832501201492844921716091071001707463100080158105357482189768538830063547111270512487901489648509215954472374429551441787102092829335871425057997983551242459336834838356136346695441883559246139357702012607638925662461040525404347671063829452774043387599538310849383291812411304998957488772042547769849310740407289713935123228430959325465607201756504997783757893933659306026872476434916471119831960053435972006925020588568773232949574047697921321954315430553301126888610155483661135257597763937705897922109410557606745887828152967830864941882807527494952006378966123983359375681223141985120802635772187833193609982961552948738707593458010702447512611944636017471256163758597681417698330149338262013584230511213728669860809404956917566182579541916308830850778372672104279326169013119993110535781773984413106527202978506938075959177435262466700944535614826510011969244983727231277375496671863233548138819577718013528294538164351288490749632635129135341959731553979335920440699933868636630689940265478510050286401451873406905759354396840021841829575830883005908337245233701469763922545066686116500588581209379663324911291080084738334556266567808137930567796923841591404568356431178734110491514789553369309535064809747813423599188388617593035875397154032086923145992231447432398989621517153059041443015912382110590489761700256176303567255534738420993913727005879556065351975199063122573824914541799335586138659706108907307397972412764135416798220555780857926791801360505156330026893721811166963605630496310827816550671028930533610687555086882581277025930363883067262510987271702488496820237817041983464595364840405615153542142091736732737466083885807550109135545417788611677935710243901808320678756267269164717272564455449289032985046159559806052648278871450640034283014820661751602103321861183193855987098744128951796817046361380776937688517404842450771574509360983233772105144333328509216230221437872489264217320843899283822017142816856082339031688342175376945841833390000335741690555183457807166165638272105322910199974407818677765728139679232847958449817029162717217835171496487669965876571858922905618044101590976327880114339771427926592938782221714328875039031449328339826031182218659568682393262161146661637930046658228313014879230169925817979391854415049363648230673160254005373003814312370811745913147987343258164502179534873463945807200036311762409608971368827630097194371656209758546292285602791473341468206273686531401212506657412674411994152762266578364167790128591047318755794690678714639039487198146160800779946941376264886204294719179250548780602337869158698425030537552266439330095035061343773617879587231812926653517156613214779181818780311958722269772587461280729618513096956697324077257718763027403737593917805829456894459562436055075125738698828729112734940399779654205905612993927630070131955656751146362940443743010159632951266826303727280657489673821119418628736593309839272222661810901452662523460467880386065650050610929844043757684620385795652942979694997565112169290147554648845606221726219110372157000128896767861259919567963889673810148998142685218268446155235960062372427180917250742282627819755370988825585699302079513099480697683632782910975065174400218725868526940950005302296697965621792667141130282248280379752090284746815432803407349657689434289015659125185433507301261550639073319041212850473610622341744714696393355550464350334102362050691436293883296270717403583540754165878779217286805995331226628702485773256568567197304210902544706231567562083718007949000492529127475655525994463602781590773940445193609966867433636098961076852649792296635323514169864901928470071636322688856486078566962019556750004915768174501294387247767214519040985017450276004806268254116910478304609227420158623359530028420495050525161524630950302836267218350644935935565773204167726354677021034469974487753245874223488967876082210097783644746387988904125066611071596889688989203359527901382027726576322639516005705418583688714042826209023240251866986187872610991157130057030858295138917393543627759928442722473730996153058091796822032173297250773279061659097770300029979032611973603263707809542656990849236064575003218733315397803211567739265262959742727235743760965410659160552376881778511741574010303450095618355367927263977341728459618697047656197406576083086933056771744011753750699539985946727056878580147344787621749406557617764675591169227338995852136530726048372918902189892319081874504918602694943500310467405479064780927426537417976954087512535443216132103922406453711376049217754631756243886114314151079934142570613332141786007216437179541579290413270989475472958072272485461648941636979063920648734684415060430559187760190865803620496513292044149340061972585730611088590819229760226062194968895027226934236285535863961736039325437349318368290876424994423629111492474265333560500650778395317733855394209605011091552639694568241621873048083449010941235220936006056365008032068157476661672224029044086345160677978380214794160344715725433376927416008877607765510107818502697627720500942103882635727599604842789633985672563990815603676200295028938105661761547424304300182947336379193390867514239345912584204094368707433488073397038390633303812636843550065136458603961659792735804995084999971949939019238288546979178912603834195070499666954718755659285078643427277191335159872817457245322936514858170502137850462240036034584016791011525938672946775258693138459464774353768373901133546035564393253279593220632954174167731306476193446600966267822085019854493052064280875094897776602166846870128652319082411345892706537647272725606852956503315920402279330625632590071411566085213212050068980274731387873641507691175108289765586298446663556326274241956944187623884637318066742508621499371436476408121458197229105744077480616669890268253282732121310166914519730108038965340228319308592117428442299543443937569675750183293370415180062214686085707632365070452008683814189503239187285467015710704367974198985186673236247246117986333126994466135129029755238165369258664147304360958603075860543491653394522594005108872679216024768852116961005423992676069224808277677322812426241749158987415235683093066294522159648846730951321917364557023027625986314417417080987917341588965632355840499752681452004622450816821370617884498277393327851086968277828531465142826453536966047016508680360678653790639699884850870009291393459720264763024931491347398982591852220798218659137019372751308857499424314836475262478631795348982812723198119891900200485321544148027446832710099601808821355121196038719260534840225295946354941518256447733859908267550054525850293811788847422140679409181569661777991099617826096367625971301678939427043413118422434133397182490621591343958562572808316273177418743374688036524679762981134497598891382216469503545276550512816961085912535249240738756592790682782822700097363808912502359431137502961619192268007865768176307019568512968936501256843002140465505194931796710155998580679177444110436511839048003161906508571006806165329896461503539862580609801885721532506461182009969805667329222267119123518405132857887566983339583011246220219962015294877072419916307147110230719831414528540460698219723428787531999760335064861179463322575658770063690325305627914943586156061600894453547013566544835495456376213012711233034283984768984397798842658841134602077265229940709917996783716949153497165248594231170126870463586964359578976456635447342290097217515037277621914639114345030354177853971333457849389175972338624592000518292945983426672918067952192362682749285338899474201849172610662267964061863243829888970959055046808328168282490278303589592145141448247803941491577177303099752237924362736086252528146592748057509372240375703018876220439286503038117614156291498935252485170904962839464416433945274964758191635486362587897088157446656229556726772943599221903820475284939629736429494747373746800644548593481084350503328591274772423521842547673927905532513747185366384015940203477232803197435014407896140670458392026566713460796557996791616812576885248534470097859376439400369486128046813880506320367510148655028905152270717320280164743450856506893357112987336618569195205195474496843173319635279708345693755544793092038865694934050099357484210450179914229316755349798710167692561380086245867725352097670913446506168874818298795162227959375301936557370252553764778127293151999970082198117436672519642879779815382031326554676641642666357364550423349111650489137233438946679887488050528877460059426598975588230696848420590977129170153268140486917620836956402484366376725743800602616029968530406934643509235353670905087238370221393808609165759815428476344579910926172136479714973753975145701687552839760788607557005168345525279964787815065056049370403204083857799265112928992438558046799786008517800178233611902322806692489217043486698307424480156921657505454766033786363948696239616483341729650972992047441216461365368474317376690531922742128591966353314240042625581119655430442672494643730213750595252996173546111485092472448460415960766523295280962166993138662407381075204761469484606134955482099591285129686143153591326063455892555004215556719618081191548844213230887076398501624452109961314152471199697325033156262733684904532436251689138101532895557377397424841895924906465045413036166214317307597996937835190927713490040172374239718658457848129184278784014226118111752999745490658983862970289432856283991093290303199042314900578758798798738932818540126922157635467044357554001565651086205339617795648404928908796107797671983348124446471492018099136291379201000447930076745708432263909946491234312523609232805857009127463849737230860237065863753227568151754046858946968501037324333877660908552284980693062923198886527128246664964073751382834370086150634846306376430455405988054924558623195908640805015903432815493626134256371700721066140376824277109784085774273607129393346265943676010419841239805554469923104388096621829486878766587005030768825362924425616143223228226185870049963775917124670803840642379463582698522252620903382041715161018711870056112042222229122742414859135448849235474400420046697893236541961017259442469911911973601553218268848973325841184261784240265879953695695700070156687572819209319502220195353627484189970136082158843101319056747928659121360081977169494752021521121420294676344859636124853390739725671672673880609259509209209425812667812500294626806307082931834024751585105401780288396028108014763238569599155735686730513748735545236856802302371568698173937921528813399697756432614478627174392359278279535827381036492276034137190361333827868873890085745041086021679914956267068912291052076143736141309756693058685951377985637338172621228410284576242996390030601668729268756287570800299754883718501453273873830493844323691737056426924514600472564501767335408915039425813670133460099817954551878181818598329601375479929150403078913965896767461124702333722034558938932770636056161035938019233247010752324077156407700129885030449853441340325694201428661150994671166219910454966760290002459549365075220710096329924147463977465163138280442626046776390621851305591846334856874044636230723809543317954376409081596076972518585802374121699158971941524975289176886009265314458102051324582008316598690544102192103255788398031441186493024095606057972085549100320268631778563872948209588552972801294768436440387014400432274071383483252967007993257737086820225721582576384779948424766711150140182520341644822360654316828556545129688269850404166595918718928736932098102135079879035230011624251976141130612236066484257177163716389505928220678815248597884204766529548546034957994446917426439761518085861131477914919914360360571210374798361536625736754187396620079878894972608981225837262630187722367073148143951007056279853275999204769826402786057294034041787632044959252138211492761586369992264857864159732059019947611882748365617643994264250154032182760160429507460989961513160563048522174882846871461444319293213985019354509137653058574935904817415348309919862642495086145871238892417729535267415894443858600112911460150704429184045916861526215034551608519146950501414234538453366209278476908346740339414012546753199412239984300203764692356399961895840139788691782328427178723159888284983075113111607471634633768919677078113022787788916826411697754592028721805069683712981988311354312998271629656343816217350161287497459299398927757070422305562359895642279575696431676684152578346736075582545897900950706394457812708157179407009203860199531032205669374474125709195794416440665934162483168351280429546249194003981446065962964968091797321974334146547985759214963817397010973954559053024778422677649426064494937567166892440097799864258746433238976148044797379936154682048989820770549711850002988002667044883669862095282186774109722956581788005937834122277923962258325985106066486838889289921408292368722595225820947149889435123269476348630208053767322814112688911834314602055405525407290641854862522260532440733771904190254223012549405533832467661431704238016379917920948243954185390847039309571643757959979892938817247170702025558849077565430800090602804296456994888418718586635748303241883998890952570453159936898582143293948403175017874718578212530730365713307583374291064451257851897618228665335149773885011905810100715730301445423980302965946108748694633506631331105122070946577907575012669868888422379428310222490837188993681657759181951634562892744607407015133691952381781926009747219867950089764428190732517568577795097503954295425029132591847459563541389603905483142730972023187969086022484531913856350450324408048416589129624746857476984720288402777081644945065577273755303672484878288610994489124626429203803299264429825194092392631055860830677792673542380225501296246685737394319644115975538969830707624793354867849671063077153283953597683773697220125895287743987772871854993312510691103741932248651309853430252754931628223712590540991625847942426014591415911970204267988791511142047037104366495990425686856008852428628957861141800862827193322318770301576559072716409523899375795372151432616163340198602022444263073554029830084848237754307924572851974730311778015568838060288606789856473281440783506300513750318572877800609252790217815614945635340832858073384739124415092117818572939104203907477237074134521381379940845884963994861021705234546250016317489248577148831779349273987691119086835905909026398436161914093483029901446290636982965100114596106398764463203885914719570633065265237588630057579047452837400327405315125602082480566916265492898847449389065258877880875965027335380006708531207285724068217388530102563264088047983657294317572540076642562344390741639416565580911914070765676193003164933758116295829851206543549579363857388863864606424359571418717757541521984073544047502355410782777927513745933842730242854106694943991334160349266152962044349923022727437464801598509561456808436243715651651328360383831255015908745738943197245017524358999028251248378426004055088643776518082952881255684555903577953924093841652011587564951527111865112726974920281549087256502589857904709211406231485055956722875550295820814921843965714565905303032012727048175091220778310957164000644066782428790071885266968942633958401721074331176366326035267089911432419193557374020083948074833260361164893850296798615894384706119531978822528858925974255918399858117424875942910704975048670029238718720937292604664468989982469783184395106136390298512653659737389054278610718449488258580131044728415193532830739931998482583492785360403014344747074341254518931806839138575536186717058797595448709410864496410167099379945258152689927174354949313256583263955661222653534931185845884047206582431658762110283651779352546923759725357842549982818098509550579382556255531525330009296206743287460705112961062368658110773215768283585555680559933494912338716339540124967093172292961913240184258734855418687125890689714787448850406032991400622686666930676230717652373801169480912059763168512796995834646364363367836915320570702205354197590482226506057397984916112399696905735358135249819295838915685248617957088113132426127312594310897643564391804718359763227282613600313552436394534442157377673155484215460476576046286817011920578633751038117091044564506099880141127794691381255605531630409942050069606015082074724796961817795064460152884060578280490491743778126695240904226641306809464931513957549019462415541645514004541407244884155820809028539263003575455354537518257309914023954341638023848741794797166565567426694429748342274858699717699761447821531979451675579347892454751328963146491269030753744836100905780003892808462422799963178266051533005191081545065835015991023537198579730294100474910561473654259976519179782366975602414580634776697169881625921312955912652535732664214400513593642858534941003518047456526771782948208920852369549841099546151869239079014509382998303396222977803175071612978149114617585903349611419797305264379650138649698540793506766648712190066999680441747553386065409967344494109028474327884596034058190164856647941381357149546598254796332285227674170915420620911580107608260590154246613164217919104348321359665787898368834947469167082085634248977437213131206408814021247446811289245235509534348179756855288660803636306274171289943168850858772719925597942609247575788910740905115564028106398716055157689210716768734220379543125852045786822934503769344504379858059517412426408712640153997871176044375847530649879368077923655345346312466514573960848663740274192688222841611045491619118994126737896694803004126168786204672435553887198229072549839982733026326748056873994084807622977359778811225464808111667356956835808846466837947893392743795994754280770389427305171285616184273794451864212663606939760877921302428432665409825004347754074539721670720589410537079720000530254689175926347877309004989931132767038148156703988976874242235229287089210402748989366383557170100419694034276270975423269397529479374671768934053260023018048027402419500004183493272351343226348890441194118108441839693383191538410252048940409089052764378241117857851216648342461875035597391256776108054362966051824197512657990336395656413708142362862543529721727921852953577526771749788927948526882280065277636593833758311238865894061799716398009699422882049786630263266468819324067663832222669119981664140945058786618584999718072053602493760108216439283956516804156012116696004145662697154139695682321040315622917278606236486296720733705305249606612397629644512460269071064075495371136407844137341669920532745241077605213967850707995352817257103036662434598758572288490794681903894905622176791130178827060306735922662553689220265447578406278483227018918569107346004655274811759896356997383138167533180558830776797679097147172857452523107471068222615973668643137206272265238859041597506869362993287137659080942357345158047963789013922191312085647835318823184723842132859037111760878535621133768277588137185848190747331563007102072152178756292970170371501258962285868454361975102833482880450937365160718284678619977339387264999327566150229583833039893517283165813922732019488618876345240040931343521951313143399734799910338973852725747912829803199535589106463042463602066380232333800576786215491136021919065272171187604220050101586073819743115356715426894099286014002011292194465760244811052624876141558621032789805361206893228486207169551935427277386069467282595844924980415579258944356881172581771971880567922121312676309084755571742425513774836646039491843347588700220986448728510779186780235767472799163286920250843198931434123224319897562060699161170186329645059220378323367583037970758202255551002706116560049953189426672013823483554434589902858127940355276389529825632838742834164219073313057924073697684588196356950593543586107788123974533415588110332836839740282670576477936517131345468580606653389408137336293962613566050719608383927761883528173017303684150593998015445902633943823837723322003916174739297736479785110806848149778686443070902100958462263505967937427276946016751696225721357869849208500416529207657047458371059873539252518219022279477638442076108406951388024458104410870309602781253156646661481384086707041162324394297589994789284185218187140510816872384958431996441929555645501358041085759150092153608947924331707270382098940187196642241214557680937244320635683909076523622285675787553692253620987259586814122039071368131271890222649146307128554352118801434498853569922137661187923703023417311259723562582741266403370144746714501110814569182283354474147428785617745986224655510247988362544050567394562602017495937564365935151020761422825754964282038018605357659275612118933356959710977199057461468789836569542152073821784322091662027646752060100915299388923228233247920317877205115472834211510992814931444493193288878046041601930394725363542246654682718907176998015155511637764711470981467707529577952493719353550751707263670725721986225963411084260690216801897410573303603953169061508390461835802713454033167085515638629595984116864199817011873635570702828338899144222022022715435103556741986068832879471982389458832529130572524555532614759338989339938853324092791793362270869557752072206812150995398903868937556485378065565990215157180024008099287104198364926142166012974956858453580624879952580561488280383981732184638573515843002737307784696731105924327558003243338865175477957542879689585546861036815417952590376288474449354517504608144357294558556187890925072546238204829391107314870067663197134826351162077876450602836904449015896213494980213735200142983705592463344486556104560875375790492788456541115826034521508880497001179053048690108525816137394052293621929275371438908036799485551632023135343126208614002682939677750116974647944521433964331435487838939306841661058083327122031104328328301850252574112289767246115867774718481231296539308886723198485936107478738801462835749267212753395070932884816289975596722079935609579144563989140483473047532146947491600744226673752987670467071197517348730992333219813923560115358588440937965723241932951713066373730728289861195502240422970705257024001923727515347878724037271596023944026730042052127838988084364078733842608057252173470042121297035769942750424706514700218280586913329494443111159503148163275679958790190235543600465761606898318580189660292723645689951110922463261064409245092742322209570682162386060465229674232601887767456575596848952092409619625904214464399671585567231403151147010164482572300534252341377701012990653739577259867847743410268359638971832312796701943255006362528266966286549987500245528801443309721203446816809497279213628176706926462919982976083698136335566165004225662257502302959833625206305128301936861588923071089481968407127408248811125631221409285703034047142431507395843330129040146783820539066834726299948639066689710988826221487869374982815864775245869013804805474313620668270280203852331259836056927671268624310518267021542282750142329823742502024416003506314162822420940383359539737252174024711479412399227129144357690696024044310603913105350299293086327742082792702451986264420521914782158464830219503435827676868286163919725768153979502447451809505987773517883144226351898354640329446570938327098750061522628116889025342256728330739220035739698994432752221780655120816212528665537229037271388917209083619099615058650777100478536267965378196495483388916156493790637999117090468171290351015533179639703375550216912966036907637713187497584065048141723339044051055046789623126717334242645357282668583617696403330851159817096831379736637175414232901000959704619444040833579305497817356334865364701761799949039650856823528836246658587367230678859599892027659150854165365970474711701379236685933738426030984752714964411371763047806448809151284226015000491612283739392608804788185492057529531595421630137344178442266349426480453192067574982516153545950206171159057055995710124229624272135258143981916597450310455528247359351316227886981624276827509239537571149810870249670630295276797509556298621921761319070692859814022294264601476039658354102233745033824301867456864030597382610645404401791929221107122035816066237466871755344219599850683046792983377251730538075359791136400719750187586775779568909555488938502628964514313996928792436065924513442857938024910363359679812152470729379335264333376138037914249007483539865261698038543498844101133611608334501500884549134990808999892408465657988389396380431051549225605646948034074120598612252765961216018254616076930659719494184358414482387622557983867720293400492766282317317724375518569910919024109369824700501865942886411230861679188430728066868698763703372717577868081182381758755766225264029734102509887303832381802599470215287142924516939562514153638634283600397229255848727274573566260819967568954941515123580177389875244899725483800022015119841072039466939107489921427203301036134499575295656331267364660882801419889529194462227916060865906103100816285224601438919921109944834592281493602419402350095017266005157434509088890866071218475730590598021563775294185526015027240355176013797923938239339453596707282519728105213739764018500617159344655438869057180855022732630419745538371830102580143270578841883174048196485990813263127515005847113947452026193765526195234147541559889422641879883152264738751596997158054260378553934314133545532654415342280638998818846770964907829521586046830602179370368334186554160160452764101323237948362732521852031772103359885596255757218229432909487965310511510864172888608359188028408378983439879916601053233131109925988870597875588485187380508222824454914863792867943438361431393474086767086466037193262660825801678932284167719458456249344368084327288903120454617654600072026890036647188947322500035155621030205047369989586756564765836494760789905993806788286604527304145706140025256800514497665171647802176632692677174411665166730267382816522933277160874878029581939395905672260298018437157493714228570510011352662756162214080800432161482102264963728878861270589988229466417647116834726875176187830957062312421032392847919153064204314420415174383703223721835080222411941541045453572447114379619008059919634489240500252942312072331869692487934915014789853976123039987380207621212520354317619477873953473769438507636999220152723900869229385223008270834071983759075254221436866030358147542128824906731004814911114942812113399580642135563959935198626058848790069330595522019965927995192464526912055109750111379079896096469784312151135253403208250818651790402976873765374555366967066404553421325499803110633201928076556434207201752438973972912415806803295783326482431743121966886054258728230710682641249671010261741206256564877294502381229843313903264565929700500615868136981423146791169855102368174838711983437679319092298542253824925082868469119202534749908349657424574399167377387447505782810751868894070676455151764351404037447371462960995598054350175908767842807705853151769124359537451315302912257794108475594930136765810032478541301316796394020594914983423978136078013855238783723662404284888624476140981103322679409266198045231472914076213182867264489065783305406637686526328313376017811444619401144610569441387440131221226462429835597944497887608542645144302292772214886959559099411363772632631727490426001471365883349329953470406484383264178672803107958611013137787392181007725122978727233120720650145745583466995269055628785276826561676544787478358159270355060711818308037615223840644484303284457148820357320322157675201317406406175359391741220321349318494470774697698079019745386407558628914663730605866302628481490549653738366754036267376714729802939452330435179535337501464670467430038617943692486847074036154272130658827403126765765626897412212003911340177647678792275711695247537119947262516551147554137359368307372543884027406185630817930877557211244314415518304936370340106272488200203596010811174654846121612132685923168249224517622304526161398234639726159332698090420363804985841128582677299790568486781396057945259585009393883522043847092850020179355868186688678241205167421580716629207766898734865993716087594939840265140045525886294520278693133567686437674151455493388970934105769063648885653406613306338464784573202474768444144268264582699201819665940918368841059976469219983587174361996151252575475461576835091864691686281467437202362568763195957725267663053805507646127385601154215740446058570792034397767370289030123788060176793536990135255079236488375756972593297303234123049384765082468935625269854324094902664735678552660968825112833212106983193179155375130524654221205394386039035532001075469106060383418422815302178201557759875470662969137206033855611483546469964445768265565922661335856416338485803429041728810046659272316869763249268046040106167722011086347048084145693405389918812630328486109908056582779312018769593288581670316061049790994278818493965010434527171640906434478095552085934040351589959363961094685291016183362170448873464132389086788075838380289761168275874277744494914406528881549846180664240659455848435719293637518653794416740200872792060379450348425812591253309764558459716654027477668950722152951241287753070568310644716987292665971660829787795115488595875098579993443664175440755926124480280165661536402582473021820990546844335471527769961690748212696484532838999014853856708211355986305397475323182704863490113339224360034266718196597405783716145182047719823691861854385730616126414857024457136839162074898730164900394338781350018337797385838832753940891586515160786182392174620338554163289889785866896656314141614383742224263026804366811325914040259385175116826607813776585884894263387481063503937483726390368762944593669267000863367826482065825089885696612461772499298597831926033144241652216952353458148014735728690355238958125824263422525787398959991360156815486218012479842064041736704668406397183947490664424125625171490838129408906516623638088741660527030686249096264456190987752950426844180301385151060803655820846375311144534212044314406157010974642275433696936319658867717843919943604263151269482674095916613660469608411409655831180691413116657624831816757252290773119415069805544690859815714007767287832125456317661288267340183914235519280341074301774022197786952802404591269024753349650133534317670575698701579257376343676805152662221686797163396593568043402835596848596752570286022114523965154948322707694568563299977431589249606956954700466437179508135665450100814768662290359172371450254809675524142497832675894166762163572816015204432913840998848208496928592407587822819365954104988703111144404513681891578390556901280582711600818696859680360770314680619487323100857257248817435030285650130358214678505850869879320349160346962309700074438781313698882917478412812852089078796255789744162551370276278567096872396010908447517457484742088033043120351070841891415754094640993941517907466486818830869906791520183918248043661572115534001864184846338562951595414069941803607214591953458031242009795062044618397808497415979946300022589864615834566088859160262702345303446785384144397797545339872717909803644243333874028742955187195873206009377822357030625817765750219134652399976648232874463711873310998723300181956452822121811740003402689505195927117469582823545437967269827549172340716954594318668442336584130553590315655487548043939749221801569147331789795849899396427142455982857824132821832172897226357083417798952919947223586503923161759058325596121153298441988045179918752386164900991746689298886789450324822703962163890479100547329220823995881146622813680954107025210121754509036494149705417609522961653418275691893517595897721856436457803058882939173153633756048988671540965234063916539950513946877951553575027723146773964225504764641244414023854951122217482218873326821154524524239289530508320504206652850348304717703752638954868418398843666242074565390156155166181483905482333416613272584933408103006233073673473323447781456840343475772751443453864485911981206399198011830069891298013192380307321034020025577173010230632923708103420522008920266149339065007221979751811083959691669302586336263598130822359369858893197768931476203406570230183876764574169911102172976713072035390277230206817824506720579416344867862752270431507416150528741793823863517941221043981588881115443186640788854244244801425016369502935426694598973719387371396825927191996517877959152947300425770545479873872717032943686376078671679218088575875653870888668845398830501224347798968456736416302000138886331058678505245156696108463283701942632519256398988571119528540786077685975766341960611249102814375288316257665501420651404898091537195320101065955573535177185218464605583200480834854791246548960320968185667204112620442870525838664612831989300320083703611914661160849854469230534449047040607812171352321448572739905342146643695754371452489596579842967010451713548030231087623312805736130609840217393576796048464797492149560839820672495863220867125698855141521189185681495577063128806271756120294575489598096881560408429801247845419081694451985135369543991965370519033112632652903718177953719085193004463011902344640911206473126732973284510993471196114167625290122774439824782308512127366444775056829125751589621308404566069117290951864637934674272218816278023700574866237795128994795776094979511541028211127309354784489561947918830781719671461498231464406008005539561007791547543661430893656557746030652201717816496854170666050587641338545754137853505820460706915325791833770572636265986521729166570165086019558544553180577014188767014962363521574257809643883493598952007694106613882241983503970810184137819303237542366687214370381471066310439429740898923515068348854145731085014977410870323163705940579014975562302731287709924827264198402646804427992632270467616133002934583690541416697125319792560993656496593727052784113641971422752232015111192499115146563270586109855258257045155602065725657116009465875879718764117624187455343376519168468754524347119640940412824545399548303043461115997914489811160293493102914019765353482045352131733796572486942313344096085052727229441543400246726824899310581498251926920521795788482299973823148318589494505267932502728033514986999563922799302873291037626702938710690020475718248899738890373445710990077620245970644044226619029526817149744226502535627634550012120843202881813006816659451552410286516136095277391425926915279217711827119511111777135222257830111677461143422739889187875181318030767229704529935905493853395313902418760194193293038373063670538242584277375902385892489982416420767803539779183361264654708090906209035659521254244318540693988300731553771549373698073003554266192852138748105839745909084180898293902487577288814921416738723515936258212788223295387096894494868018388078043037090199061230398764816389984223719647378305078909966842968345988765749827889625361858393667101471674219398209021642811477047263002534423354135783915079503669409349594794159903216461393652273980041019325059592057961894124322534837042735987249532846979833459124839135332861104783127980413206823723166176321568978033778708994301773049743162045523378004749168031912635874015419725883611914502722366772859073234632779963952424329699883596037020459766590643569272937221959119712862737105101148085619548529546774014731724425383999985560982317506147906010118961868512697056756843958423014654077525869759885515457601981204710373574586852707625197541069613035683333861738748608109186553233881967919732676346322341604305841174412894780544556477874666336677906893715785885283546603483195694946666450168366420021012270167649291832410391938059516446846472489296842321575842379413320883872708669690682155844203865935017518061643773882455243404591665035412063670101519490605498938943391440946868348421455977916812651645665257157487615644080769290620378773448694101279764865668521749159567225712669090830048432300717743393165719628200896885622783879387118630672375358356855263303902441157582403656265457029879110673928905389335054717159383078423146557107140973011107123785471808055990377244467400551737389313997442441129386390744739082342772668838246503836152369992115752246517636073048605647915222433546159272661874989199267208846171557203457592625135826924020535814241359110178101784753806265268971368828619015967457177858607003680924704016188138780616625770715733553219552927779621190186095186526527746568851199990279646158464692693609888903950865128171567851689272870103549735992752489630171364061812227101353290664488514563299938263758787146358780676984960906451702143265129650645280500460232730980491094978230761156220029736480951969558656247095199469649573732041208422718341305106424420216089116810500106495338644264920241585629924452139174488428473717803783265393635767424646896490225741404356623945259757297066664691428602662963528799237815941271516780726802169084684553803434710309456245191567205429081435429608617636034453504523753230197167664317735657397222312096951048880531261410975712572015206769626943912631247170366994941602969167960707300201018491135197552048576434372929318288617784121915597209545994565801867235931339044582657844140978962919596179024235648256825010431917641669053355548776013438751345470480132016769202935710639188128708784531593249864462853963590536605702837823439890608111174241053573643695794563050167197077084202952964860049402185993861238350567210337915014827750995691346064985883666402977959456107960166453132424557436629000061432681707633653848583252668632109454302148854816322203165948470263089598357953336387527275038811037818410929797579751286482466693327465810984259447329197279434879505406241626527968881166780225706069185132745628286534192343303358868618369148527948317720141860071956088560891320975485631609787150454352954224619905319125514790886070957820623388922275291924364826925567559648804649633848892064928274455450675998048658081579182532523907638188059540634618862061193577009968588392694594272835389194587646778460085928528578877134633739429465097463790646833733410766365015105678033521560595374057812540554980591439654113926378460701751998016241660656984980576287656256320064048144380970674799368576082100071082396587995080388420858712771954095059487018694616459675232400252173436103162040089717990250623819738765720946421214950709683548077763989635801760203139038178378275220666129606476158527646735338366007696216007094120213035912996164173210309456611908930042787857069322239113345596200585966220353741581841874444055743391421019029793216920084613954192667371992728769889576329821290917467274470985337678846290224964591757506644653722881398221837595806592706378362528585910788693407541128024360779069440120632737724779679001356898258512543197794733372220660961371056175558852582583856276860555457606866064680755099358612013195145941822957781157638236166195595129175246826576168987956916037262600628281911220156219500099820257306445371382756025066610720013950278990374002890644352247175401495317698309099420694104413464061816117450676255565836906556795848584305178740202930613723521322822790119938631656373779253726372837629619040408229594919551029747993811284897535226258952036315111126702094424946341668569775327684714793903812394491782145326687874689203154128651904373609134678093442281354047632056039034930111548726129286026205970371919224103921157014726379891426208920444184218740689613949196091212512009653065364273444849024389296947350281141149194238564785658629971914005481885414958132884989321042397136621045656999513646276528005914192787846114393373381319452123487242745798327107925835621887151130948156711816207409063436751590132454528817560245167009214033477191462727747915494277275390905115813150377685118684758874335619508570589366761289043920995610550531225476825505942142963271102724670256094841952347933719124640278279113980561530756355634229120468951817367939758337487523562081737161249857024983866367454827056548091960519019482267479374918725358949383790490941891364362732810377897709370243771486699948572915978592510070097181760104298932964443169053327335235010095140698636136387758714552882005091692078426446745482740655355429771570209151373255684896028909400479644242794100298069453852002440015734123353094681690474909998112401330788646761350086921701885214640421496399714794797823524953955857247711772200684316538905556515953942883629247783015844609319336078009074114248328038963663113695248299740284760131652309368598101023997786826537203253388049545192389331305267084062196190487281563459046495593282145121159617290213803026443154042583658685760833506136246111860714980093331134864110187806925763350688604707490689093014586739050888947057992498310978386304285167305234553103342082553223388435059644378963535886453432058019187696904698189826655968020451117016988541220613386018178708413703360113652660625529855925192845177904374877877294781579941535938476208367572565974070573257174382895074207689625273185522544747735355379800667619207919189844802854889234000063738136296609892831865089494818866910284995153100604108598649755854521884037834969400718720825644659381486388855889741563705708190372627938876565959414658637125421054493069361760720500986256204097729332660080986349502825048073790309619875600515812098346237477039904550877427277834956260645055681929182703140818186356775283741029535243890962437910040485045354685167685262220070270499375401237341957961304368023739729322995193679080917416603096019732451038958598620729525859848483257542804738398145524443663389552979468814294524673658766574147454716435165114029135234815049836268830931526391949355336153753815135957422195074148255615203182409522710983536621723917016891539047658636928659847912211218189934379637266446744147956414101911806257238434327256962858787029591463646615215822315648393182177590291724175135997605115480190886985690629705084607589429697760146668188318639912617255210126426089368601517396157343533958709029987183846907366317339481726442232846486552440569591184464882832966033473933196322156068389650638927074925367870337671998440474380040676669346643972937810736232273834914456884629797943407017565220747003934985432518138910503171782109798093189951943181150539230078937604012280216045726258614240237567177256631509787761703128909263876247228313843417070954462654620405250447062641838570063774051087667337630749211327518349837485887207029097398399518840649835202140354253381662290866810899469609478415506884001127645031710841133254959128105951834062813698819073720509886318836136549349321867064755059021408999203851881443696366380180435668943704818753616111638315034133023153629374144836766095327275205561615949228914995771360547003057877207911509382614774077772211652455593704674864048859657046081033357160391472612635111014856518081806136248258535282908046664652903196420222963759500817194919107937809022377582352441877005209082133341845048418202590593114275022992683420513368700267039918380247656557164126421234464612596648950460375454063253869932166084903522449425937529140652205475596414101130277386132574147794353970863900610110681513590489941124621911415970387602605345828096557890943934380243221166091251413426471904504984735413105069933079135245994944311624281095357448781660254829966507360594837426360618408573642470461438232254785683562593988213412805597259145357398576921692485274379206888644379407144380095895913206428858289449640164120862932834950392208264174026477982593592817147115273863775596733005220637064841709652271680313820568109193878946299721264124700829389310186679061873752109857074965267774598208076884879900793081132212781633152383787999706181672924282425620330223900040528038035933655387591405252268856593002382437125584753506988470195828685929106997752180641228289899385287911733051304493453245652631713007793910929566078936458687031381589872586243114041578304345760670276631193109508660970406571760737604504670263319111263359654067490922681574278078923188186597146888264844276970377629654405169443520049324601454856106290802052283791308473995285084723500201176618911047813041939628326861000656483731949641150327555527067530246894644575689558157993467961524689559263522691884693746471150815092694687044088064410294931757172745672361493341595703026364363809292896753961448887764401398664118576541524918747379265073765168689781068982666608297730058657676736230353458466044647844260508173698970641715702420458273011732749090620396908942773075749584009086808692768100232251812968064244557048146667871794216188447898932586835984229630137823515877878322594889468294434720162123647679048983513450038128679897163338478800652160171383357925543068071025894727330350670880381128467557097651109157163011516250142366423348303723656512530396954739724341427839883398789782348742227070816976193593845252458328676723920536333032508939752255217654845540375064008533033303260543908464572418216953356082104406303336794132580008030487027306103277301073680484892950776854124433512351837677359756959042458252765083341396999491950567317028283826591393746539725083290470040532605842742234528656861616040854079099655662483582674523107854913247304657390299581469924272945450014566891206412591901487137030005175279988572837359309610947711891638705112296426701780094192152090560400884218464569203547824955867557363252118801860038522805938842718592473733265095273120956692920215782442455106625241762435397489268858189604958592988424049915651436559261072258288375590305472435203992188419616350438364299228099997528740011782355247818784660669518675168148307078789716375931499716956367296819098522162386909088907015722687098906185359294339061508788191577127480798970641294298442672937971611901120342321373019328894379776918334426784175843790631959731051607283444350900424287527565739614585375375769868605704246152271887128276306724834421781111137320592883992157332807213634811693983909836734088224677388818049352529495525488376216041932345851465033377820910270602597441231630805964433962125148968360141817565159465090309943642807660720935869298949936454643100237403225823839038748653956408951642570960582611258377395796822768451130536981015055787726334688201372698785434740257361828588948905594052080067603805354219110383185157896426822329790238483025667953839739472265455118504868996752151171062326874500445167543971911702331147904416622770770571529655801059831447219012567744721594344380451285606463470967245947187810096851182865218103127006494949022970474844470394879975932614034592296129541481979484801939867116783669735092363759994286288523804035909837065797699576132390355748978473361985914367368074230228671883073445233829958307699529020558678882960973809832127795819133784458712263971627830891072261805125670743253469688664155489988821569572628304225232496623742439986392839699812502563714885388568541198232302133348775432368368387947680718928570521532548789848853671435377590273258579233509753850456205100786299984069871815437145808711099186084685109573122282176157288631194754039022009360305258569837392544031645951119203491145548053591248108405447394016907426297716702219595194874054071511810086208951022269972823059374027734272138489258779195247909673734515835202775256920261102715381993425706757158409714348300425407656063182742259604470029516712704639139573301719306545654873115350567283966856436547380124242491997634542908359671581770251383194879425775168701603857986338932349969827388033722346383702947858618746955036547787779289764976493724345200108877376549175166325968611577881390498924049986591613159307263308700302173750816682755782915982205292589466681520851024844489716477182884897022667518639630826680203248455799144905320046219080629355339494932083498540251351114258627256744159978202016060981995461988555483694685749406825206215484034709261493364987059287454141666914918674795999365625825419443745827290858921254808823110671026573650518311061859257694228859410800679773396524273001436708286915455691075110839010863307384474404833598585397880206392025444258158582034388478609192159940216324001241587147807662546370396519573771550005403287281716434511852989851581332246443846202566084687758831679626506096606735234722360194860426274457667416291967999401460218196875511201524011563515907372146895267382648040268640758483616893562433611340882678114077836963460530977487456044801282971160268797096587090340836279598803781535404960964045837781521806978541388443536418449057781544772378798246825560516645788995956192275309957959877166576085612132445599102898623543929676259145983803598144493469295621637802336695160750701858847265268231648628103957759375786189361174169363629395261564353961742911662736324434714228614386527341914289225399871512936188820479842802073011541441474584764567164935114557006144196482246928119134459017928846132848490468861778729322026312594494711928245651242828016961336873715715925310892428932794950250962198656136538980558775040897090031591071605642859995425301038494652908479811928439008060693619050601507416881090689661591582589026547141450089207317517885406954311323261682132769590827750773030919727644691709604314890983698925429621751334810055280069773492141785840398250274635907474070932316352860080666229195128768979106940365073333002922440525807549881632815758906057585147730357616498394031568365065562180826950649551813418710046689679636692278044295664644781731858838948592045270024133485047208941357211785824451224794292381394784083286117942890460979912414980970492613961133126480685963244534291573985092770987419942165440642865715077720296426802476095486065325265307038833721331735144629560659429986868255493038484818693611479974367787341688393668027555137230852837226557049990023674486485428966247365400351148659245555220287892079057007046166701883979320603624540560998509801201461739309412318014988297418337727142866307427147480662165750170502876040675724148661862074783996337185676389030298462278523594118234565891755645781139873060773617156146000293521512116574968653621751186683798427190380897592225801633910189517902113221952057707580344400944930150917466316146733923611216536149871867462694765099252472179265881464106297081879584886280951603381100645591355867544688236520253176082910603835048448650163021740730399296649711975483233076268318278584617090468123005478444619238605541497495065646872244768093635431127533414991840365183317585068737939294135575168044721472669677258745088269376553950571121619272252535695674778556576875585406756274481979133049185110652133923478405017808428509866296279364503493913049257838392505595576043636732610090610134569081785371463555704845676329394717852091537566066531813197076726442953603640978398405219921384005463018734217586191597306175978784040541693831380157395132171325244298451449051910264570655910123671039042008740868931224765405699293291097614422457587821237502312351937769509020024997332260734341403193165463188412984959522518284042143194434130466306650488127503119336285058679564398193410730274273160196072723969371357035436035590829589511458926101020509938951212553432026875337615719207209602936568210406188698810453960885574128027434216566654016203803614976025179157319803985237868711639548857993573375688018397621371071901705814985830409797546009565306962605803612449372868050377222594386815259898060790705094459977961899557393489012993649682039460077436424043729274354016260347410405132777429669341958408969118970458944595304201074567951095134173854740610929500960268948622774631692529771761239727111314001826536775999010933629526450071135717799847089861393250612384611024529162256073257880133411787636991736763034481638328553489036088614733324846793013112572189308935595517804532034482795997829833194395782616911791722872260611847250189019070627621165344777782121440783464759117048598695700201786675995640595268221566452309513407366187591625788180686299877602548675133510561104148563643790275509302221216200890025241581641491396778059085862402014978694545042691287346712355459907916577540045197637554102628464314376929051684226336975333011069571544921896993315743869217592888864180962741550185812287097313604480551191320384833544884938486545709619983159813051894254282712859730856392141958333699144636237711904508180274467594748879042251772398332998996501463591526896286362689309984098913559921833857510587630296536264428517022806311913853036311813903312489457039360011939658486941028073137524978885709268293247853722614983117015239706729096102970767686143132670071512531674074247546983121821659989868618105224361006859361459663857823840720445397106430024739205873998221246888915821693090514111472413255223751262290045753353270361114532677772255640961967482192437623873618602421679990407675882792296937337991185298548359294868005693119231269517283105593953900435000575579728614156813752513830436769318481298034746174740732560711211560054341807834012418597961545370503174005717181168956279414920190130943402324097020700978090127110701100619407665884651971784828964634463360315678314875940855198386578520692986598119142861759764843699278358158033949491577501338237187172088839971047256588881854568440573183780734236110329128429065811086454658655466683402727259182966860109222097526724661258470071883833313730451003585626476267229837371890636833394073698442783540366143322772998400949074742226975678886861122712069624007524573349789500063890372538568488185282841261425958209246268993361639254791729960026799021767565293159707742528053892255384390467932417338843747121342773914598323746239007036588433158393670338832887116773105876873306736481368485753502853094735220825131483480506805325011059624048698092604151538377896510255355599102334771786117681295735414541845607710863935983205236092769081607205572206416628909868759273071134488767377851716464144547329982044044551442442837371409362642196629259619139522512324446967840015676539632201968221559184487467290584504772873135361861510690064789450902623931446689931155929761884013003628488435108964679996047479118502624722535045918069964959870726813110312673461325923915589019028743577213560388955332345592755912490789579531399554711760443526141719252716249685680835491508353355208843495885877139657245530180384881207438924372049738652141695661221059367392091124321749741303389857782798703892562483129779955335729390468443830250706955504596071926080347620166460652899147402222336478450077341084874915721515994831060318240021691103761657506276743947773780153806326917209496586831306442963747363162999360006638873477608697541615461641284394816122943600209691703128842377264622650772332456486906221175476237732351458185478585743527278064377016057626060552581477381465145667487265175483265172140284047413563007441450170624970820416836536084900145878357279333096790422756024621879501242605873481001876743531836541581387792606847998671700851419595492689239740746157794028085240841373106802642143498491397188354469700732484270928388584309037354365843472230227875236537769324771234536846284074397212853377744052037642512079440637793922390840435958642295620730126330419484779406363279697757806853728846760868895344058099065156743931034514084805348296019098226215762961058184259502865701021693473848344472856643436944088132875122067507175965078813539728440254820672745019226730317535715651019688676503662803081776472738230770592407548352254544148391515593122258229848640844584831815888337011738082432280105930922960628171096375943813528460078102182064732128774972520899940906047523601793532021424847556910265956083607254068448969910764120523548264739712436883564790514447925941670341293333880261196970801271609704555310845590049345366147977519342648942570205490760021572060177993392728678423030304384264080507792696886575910294390585744993810734455105459969653129593536279898902519226067367645882316522262238851571299530369909537806157577849412248327485265966283675838782517596262561933619463250935996388943121969202780595078432606317501055556569369923040451336301401908534331731824859661251832045486767250698767870442016208743508572660209837996930936861737546414672922366031204189904167122431846659017428078243743927434618471687888187999785942532648093458134153165128042808206263085221436879993512185581891909543211489735728214039624011107346980154061381548740388795575729162963071684540999511120395685550335459225344554374540544705067839571745013233791639958864183916200686186628183228409210575479715799445332172816185222684716692338704178716815400460522922267870294980149052447024904710876044021238338066880452557347382608652670512574892471996954387827785187155107230100632342387258142221787808966730813516706270976330251860413311398302968658663919999291643250446576861384133868063378143728007102290354272799754532714692635910555794303665587390959088251942686081108617857781282749147090120171169882988048142093345808482906271321207306145110424070664335220746252634238362088381460824309307649720219294691802506507474299878788750528032050112083585052934891858689570621229882352529743964946513275910253979035763630426796666624972964119573240142412585577681462697108074572035465599161004256420817234352256415063408476413450971154736424053290708585165622577081672934090300924513401547197419351435679955122862417747247483499971789330765221369099487337257062869580211557020864414557098035328001472995086770814121621024494904042112639534800690438319281766013703598374060287748790958059900314229895517652477492819397139049105163346808757438738051583383992436486724502774383952160956941481933663968134476132199468993154962709604878373846343149346307097000531955272621384356551759119690798858506643082870652776210946638756789815539473334330814901489433849028009823150660359302979879079448385688636437014384596256941852046598267445874194637342213001824025600380832028976911145274117299496069302048628013958329513621204314457388394209676845662611243852057141837465269053305789880672259039387474480430895266410710527303804576892047803911344965178301410886216343510823473919462720450788495387811312979156462913402423034674833956850579029042750434049179650866240864109856897780626017869021578748369174528909805963859109714199921236023153058605995259761298604019170557093049271644038539615234106520356771241757342563543746823721453504597594611462760921790114602644756523090406137016344098316843291121029782463514789539300649389595380572080989224160602891234592203358608444546260598179541162132964848340759445998635760407028321155618478404532186947176685547822815668592158507694799051844143563331310908429281183867191286030404012908912004407519384618277323532108810273330230581755087427398556547494624416978209287675889963832858012908154386921059439641123508836233745624014905596222640834195131852076476788258089271995892821809089098485726558005195990838487143824897951430506584464433082791143131409391480005344525837611961517197567359633744933904955263353549521330993459548433622902157794952400643243632636808280990188301905504675250469133825992992322220969856661424925319822670174563544979612899352939002091729622344002789060364525233803021720981921471649799843920944790660176054667035350065628926630311823967469453052346788168423425570641977502986369917394720118520697750963105433330934710450017086911300528673857576351017828506229945300193595770477768365857342267795087607355870801679501354306718955072780397995678868580605951156414635357403330982118415131453082415543640357679551585170514224188062564136812877131463680922101612639959098327305001565704461507736546353904115186081326783415892992922545281494460199897114583006114850720336967098862466945414067851982640110357622902176964226068073365809270400954969172053895859157165679087726581901649540675171895995251976150513745162220893053888020461623623195110604775559001727015816803999022092912952847363696576571243301555902344630329991905268825254660522274983008617950994265310961494554410814553837686645119567631149405205634630873842345685243052062821815828947504267912021519896637950356408406006825553412309743207628655771254372508137365456118121528337731212835498000519635135919441767080586565208754709235019201739039369193405520993879237057286165448628085896894666107432164044632570144842809609262202438698357429672954145633317526474439393090727590486017961100819346819272281061345716375361555029596411973451419360614467432235005134232250959289260218100705332698281625332644620844580041484799747603355098862943052685363267502694540252452045642294177423346385144189696143643557849405567880466537132922523594355152922369642662939419549212690584108395713126694405052281066243535892040697534693103928946068232946504993345997387460239273150632069081156531415638466492099398144983971679771753047123781102623393342767846580206512045236104374398688358861955168964959768068846722536354083856642568280437678968501884942604997247633459774407462266047286229792563376214926419966254492948809824311775380880379149912138373098507615116012015344096770253467574918504463610890738204268891319418718730350074112955617296659588512482177970249827082174295150170428595759272857470351675028247571063444712118311531191979632347781354279422251273681798954025115220891048401507253636401910702254740978379181186629981527119559176588463770603820493371124977111381279961751773856384018078357184120860628225708648733676428521521923019537962788271579121982953370509248308007554947937041977205303752916076113568373139269871452333275521893096841358507232502118184994133513266762200860596001811290384247271766186709381233331430828815218473617625389327031166149903577828634450761545309075319308747795299201770257114278375835884743383485584026597219802848059708120565672646330393380452671532014570100666298931842924494863937057965120956989449866075492756988795483381393260864040256065213155180476548325359070247614203308258093240461850655426591824722314759818673273604852449567151550227576744245930737269296944304362929910856321705357318207953537583508898878569716070658373255748513481994790833825778222650875219069951382722187884025376710891388962458267262204236783056744101318662903796665247612268168134275121011611784561766543370823372163204911044800239142657919911602221050502740813233805591089706831577656130209169383069180368029635333089217696921017080004049100013300926183960047583267968472043830214710772406629568235373497423488766615846123872755443624306373017385546712943925621126679332224002364858682605967213170237983944344605382431291699537688401090771990037183711793041001009243277391599776054452795509390444790303742008006904969817263725872983754785921914915855364884194268434961319057556334423213097321612129937757509889463991655681965752612812396705551084632885449148062568140392309457723057461525039468609791321574455180921454241114370159308149599074609349533986869350481867367150860666588496007872891255254348222473865193021455645333756760950852310301726237402663535495327512156705720737986806164653221171082227048880234866483373832152627292703828304332465852355975457057417099094410783581290535851524717680779238943464222561245539941485978173869610034766674541353807279124116568927046235622721391030529932820698807928427755507765863701488182091565555471670606747815787042667475440808344827406782396229562935881206739750200896160219258019760328877083588042274915878947166280332460032740846060439652128021904938219449988776593544007284072602594437766166693194987956168117055128196085074473168754507881041460262678416168466050642928918755843386008442657447434791875488668087022984904319705056674680267884181193897446403614676187671853376931857098225467475674987592959466377144392058362604443124166807901199114387508903418570892097878573234728530196172725557128432388116699851194704254101593714560185049776395732799609067511016354792039899923153320052675369047474565133544998126171572245487898568640573961693900976931145513589744708493884546347300062999185780112715408437041065666132133538047044035660721024829117364808974374554618721240941900382153760224194372190621631429771351630891376798950100830823557398610931059945278418682281552665557378306544919201309564356318032917996307404117586077217874652457976260803221308127185911127761293970994769535216604273846059226567101960038458622932332269179538898540240032164564564715732327304796038580671274004522371925249655163122371610710662203614358351374383276508291182811321312214836103307645407475621005637285189874685844091926526448775299130611502116518062041643634160774535362202697645374942702493181847847870365665934890099032160473135030236109166086957094659093699127269772795738857016530247906228725689132175156319302856117612639317063590676482681583044088803438333799656573775777103064358415309936970264072377593695264752502503770097835943764011526690259001340316655106042764480735174663720547482850709404071737276060892215789352325817423073580201652113365679108355633228194919494516135399636675671783127316111337787271894720814786913000273129847151616217956159760393803057259655675588595541943527187376311624960126020207581792133144380569498914514960659407882432999512233014289464043939001208433672195983196986595870672054528962945939308431660315146995042408249542387657412066920837735734691644315180527588002990401558914014703232803296942829690216357202054957901531964018742196752174040150071358422673889798404931307912960891734758816434642714442124500125448579742626568946034997013973270461276213451467350002200426654368532770781722253854487607383559672147385342997237437890809573505902187735856516510738260485985060566404580869935718567762699634262717796930557271797141162369638351084133928542877196501221287441658092682693144630920234553244264884877345906427118613430189063803195556359473646236986398892973642947402095437836556461264231115247899073713780586669470284883429735662954072011649871580467091160267929520253726543017387577146205073308355358233113368345853153835496398339499915795703671524780037339273835441145291898712253953378120200947880333492745750594907961577095877417652356618982276275991424862479269142428098702176725208866134485183238442501439400783931143461647098133362880348629618947783889688609618738573809695015760595948874606275799843717571613507266728589811368595106541905208472061593976131854026103219362835502140578885775889165084577299894777835391928466488369553085943442635058022613814390832616840138847414799156805573392836818072529018664603269593095523882824880061011407436167609564910899661369784720233828257585755724561570830003218323285617251936105547628917460344784745454814218508107818473576872669480084174413556238575786225947851869341645225105603517395112163385304977566730144948883296943841839554218624730575030132118525338770540923702538312532532158366960494625857356312994182454620139516225010707890022021674804651328059096638943077762623615150084169702434351699537275651693197530595948553334728952988674078263446271128823117591965771520685605262755337377256287292596928475814544766092327833793361961768272083233225058434174436345793480572627598900407423087227133484632747905389826355482399717530735820893580173379832222062523480824034367426514907795927241288358891008540500197103849775868626745109998899755595086634948250638154402520382519113022932594131783559068779993461389997295809978628220138240662041990789589937179138136617312507959177039214342921673435223242819076623280338559837586818853011945871435925731875816956746329202717473817152999336691162322323590951680309196351219858427782567446725616727831532909663099872594959845006014356354218244228559555241202265800911540842340426934437987248920820728915524045709453249900731901009760543536855816498711532048364927364293942640847037010718083286986097188994292570168366917984614262088629986132279265659636758598844404230924193017987103306823430676757463301220242155397285722642286924452831199709710580937019962311727611866660637425577503361371839502957430240062217998642640508429041708455241812428009540912963007757910673131567318925744331587699674304926363807317196081306710407135919790502339506841047997957669121268924618793521075699736239222549384039453392830768908010872752714812265267308058828764473428669591290695202787984876333042905603968564542502592982407080104041033586683709217393590413772864680967781227901655220500145555540601367308152048851330508757165913696399579498742024997743860421139675082178055326295306602051692408771410580962916200705940156449961371855556687343943631971678305112792814933675235321997620138321008990887652720343235050813495998032838341863369398033510496605544951259398885013524670801499550784089733509028225174264895602946995966996620221019660398958596175270630909191361950563454078537307051296786895048290445131456156600227019370741191294117201110140424452753236736764205059868686616692379544150209876741325770282129226375112993118270493463280562728971223928820472524288495782728790996829741821621350505724182668272578841619965031006079222944716237106467577277748030842170103970528043456382032590715506798323136832894191209004157826745071451860293109136661811063632376155805455576511421609729944040582293705978115233441518124296720326337660098301227816836348120501834820555819117838610207680501360987201548147581824236441079993569544866566810100033328660722242532907460858470123468309189345817069011706909747661120328684123676699288446952583463355505184506371533272189915939653627263977382787858242847290153148208308647999280203209838525696999672526380610444646547713217241168207572973741777405835657331976313544599991838587959775951572236129974962567864210836228915728669770147449577663605534627224104598409110375834515858697362056032933642245686176339148893235565568568146028175022598370970537908451379385136114835780276443817139026697798865492463556788280675511190844142469254420974325481595930566138553957484408681755403256826543490825083047269833130811985863084659695660183173234249377607812785656715830908383448251880384606582208825150527176847339159064660124143090213714968200981848754824040069189728475881637024151742755573076138522460259308145446177429673162144986411086928888126103896042123359831578399938694794425831316897803950178043106963170051325886795736887819749296998627764317089039104132449603460575100077769608119018759503756371110160171563667280756867646170570538743152492872137296643190909932706374804071472449224232002778402069394185085699208796573487347535729517407023784684920492610031683251545644758893926937520990755697588403096491007401386043635637310238604600734177914478841632962917334364536384822834303631853055334672445383875770237357007494533395321241793156352595679055639573821628789985243398698696136342945438768557317112335243474368654649084486610334799531755421923459334512842034896830962396007725263186494905897716671043503506040453166421374463488553429088243313024313394982249279458560752185389685917661357386124624219514542296340115865000045265369536712496068367740819977501415808708834222019188435552389854728230832127471728022324562654212140355471367239642074139993438501256756644663024145533259117633304618132041551161870625116785123522348834281039224050794891960402120899712074601455995919913785465646076934015859172681152578673389439433983818341602071430309026757765923069290534948566453043252902517005043455747046058465346878934317851988484570432603055386336657698903680770600412375156414881975001234976543996679201380321687516434821482606616754322849367230919042734644273533164244452097440109096914100029087960977689295540272817061462878987230756366482201140657936395220462372703718995258539008559221229432591409467617694283400423069071362039210560050471067532197656567869832778469737359628683520831777772255804548630277691296713477026266701873928464336313665993178864602452742862867796226578856337691792293731620615269265721591855948017730023350858187134936522630226447993562002253580694087464017052612197091509873683100737919883186891231052817430054298809628737852659936694793758697700804238892894384795690516855856368134582089321119461206926918956923077602585475807744746861719285472702652087827108401342218571571785208092899596900492215917555501324409310900336858318566501091403420961603711491191030913102585424562657992610791425150826694103626590342142426445064454319645980461289858080569475895419199501707438617606477487815386837371767555836500197065109631576688124082348725784569839087611532970778177601224929684200698343876641638919673687955096531947889038224348461350787360287233907292864463996036349373858633284527940271019572742419843794897186467096373310047851791390323263974582632516262889250589835512952855755977291141783753058523452207157494612994048534458473859314487027459381902223097852860160129489791143187893668412167965669644861058147298302289059473746808641255347296685942655644461509771309551593072997589689283097212940564207645286534654735472666368156559326276108933848401044252177843035933873847746544217043175588651051427963861259352388785559748122817983636145377481338395845034020522707432072797055614457134205192830598920820138603194346697095982718865889837222425315223556933139213164418023188586921052797957751770841376922354447706058604617810128572553654785690016705379566651547739822711530216543391811867629412700612012090139065368046464142496887962042435525355527649974208253761617423316094382034372013534116976141298918778381451206899380611430485714109591963201714932283555007032385497251349494540676388898804913258422717908453782582155943530100199771003041605817714583736519073339513619078149915140257923653081571637994191669107861716546927072363325224748638913995128552307440755613430214795423551750614006981498641944520484666303301157603415390203047044644067667212099204155291763086802607444837520812104319369018868194216837362587005914091263389185548760285441026654908104938104829943368048725302630487025920779934491444785795644311348762286754647741093677679847637199336760628961332188922338102583723261022277870086045953196900601037107368552798404665076655539416920707012098211467807147765992734778210946819311321508878483604177916498951461403855821923460230667330054193318355596749349833698129114377609634496456457293958612527659887467353305894277631210258654178313695512470321871677457440450190562871637044982993381159765423279793505977690800481865233777998687487425720108860045717687768131547934765505519777437239358944861970311834848885679419821100604941627803426407303927569398283293286770093140811809139630702181063090191811486653977712241814195036281912461546594708726565388427555945909313684423210638029947795530606415817958666988384248377069660319071900139889455127806274039374470500465234596725624151163199808117829088401128088066195437837850891233196106857378753651583986077345067466163756830914835091094747879084000246794102820933042785692995307947580185401446177654805890827136319291557859225227246426964336181746654033827210171481135343336746729364152669542169428392558565365495557574873549934482564375209793165267329181119465634279005807566672886835401364836390445145653712119499861724328778288887213591766324695653008870788050198345852181994155247569317178905438535710694938952458139848428927218772146319759042953226481354618510777156144333873466929017287530915159855842030506762267135548312852098377505207470812976671782778891538994823651984138382542170312317641375129978774148745424124597772174773255675001540688666113302689155785063273155019597593845240636473232479010173893421028461732120329247075136857254922353663637114455061151860218202527503379555549257807898134251005320487464854409996207258656741266125203794353446884230851883460625736354292956342344252096668663213222254171805495162378127739952311232357383936699061843455909787908889618581761572116405266977223161630711183876398706383801064292895841346896442396964993197512391320153695732913048528479231569874365341640105254698498268982771501479814365319196037967661436231985412144596366372447128885648859215057956432149329726191017443158758080700620404923037435486458203033749702755382307523501758710880213743606975061599539393285814943032941144274897316247974320952791960607165849832526543882714785418908090375252581763571548051269114647575819581670485112033252908403587282327428817654996961606317219847663859225564838449468678981387585931780941762570325891079004502818174120276985597980393556501750382163641094449512530675581115106621704997832918423532245887900282196429160088400478981850590317345516613409376362988647468920494327513161180634326611217887719940867739838569778049609492865835583632891898374539589526100495577237518716757581011705134409902108398821558624215474152134717900867723184472140614060514210503801223829335563167959098587875661631283244347438664832319040874240624321527290505808303943623471217104041966839217532905858352316598981025578548005587789647496782006116265984800401586247745637791828963655705496751126345678802407363449739388399443608805366591614600967454797862033994237100977740230156663100910714941359974867847579743083362173394159022644525088121389164183953997830636327994173267360591914340178323671539428029048853457052859364712246735575917038904585256941826799124292548937688016420669500418103653864849518324036089305092039765137488979537036973567961205114643011588411813059755680525031660873768941494442538958822934269793709836515441057951955260503356135401554292494208079997007402662717553844734091645934932065041869113221710771104154775600159125711560468425155290504086519551712810825190675201053505326778334503188616371878726825867723321952586769148260796801100724610069572334733245972410675385490412080591458510571185316378345783013295816945342568088320379504951967085382120887588920654920889147826290059688368115911861351628922550867621485914329881787775198267016109155967643615331613427258429940103568307551175940539438023851408348334618881562208441843098199790065091692970658996966169436255215006459882202572958548001576294060734450491971205962649210910139610820588754400396880192769074303920508168437878278648598941388130906048872220927978292324904744586372237209273549600356112778634349102371225839351622273804716728016834909407642347999988733324987409491118357803870146803958780836988167691253198920096492613450899738611204942399327701362515279653223800618863691671771496218880587772809746574084211508745279798752653197451288272102385717430041507580652920752743717771256406548540383980160837561455673161370353314068925633239836360727389000382133026660211356414424391197936379843132879165923911253768852806168832101704930672016964179294459301895939232251859638677537132649731822365297308549254075958792493476898699357572582645808131071931675760731720663741691579717701202614860290512816152258622203609862851929141015574433960497225018344094481221702384571840297808094625568107875800878847614878380069940381747841785891591029343945230358819452348663049333898769149339375377856618688503938204037385049579881176023924023028257560134088169630914593454749217533475174657435281872770290243421495200470474926608702196347791553724231682393856421860195033815518849082491522134027428205793357697774020357549929259038901561011152413518991128554326837152903469182102510890683923723701732442100278384492960980534319631615074093144513858178112993150498918106887897734705984090258453544319099941486922020430497753228981464971013488739154444706762006810445701778769290494651014373018590433081185016385444531695864711908819500232714332532351892597528365497210488675770116775883291726343539779866074074371341466216576784522665493414225564452946239799496202759379457793957318246564656445700915459354827290812684048472879143702180004504562344475966480845265754671845299489972759755318502966555512923465832141841392901543645505846995723151442797465172024296140217357853685094773891770985677579969236284570242426473102840324218464097853738897329863659451510043973122564816576114952194753996957648757756856921681896088117948353023039960104208020989912631650637287813056169327620973617167981301152059238042229892750482793487524430305980041335050441012945969298621177125514923912645259834453259895072895914115893884354836081683170626239776637168105816585769186630964881056651885969898129655324442300367229751516615730425851700861430349743715633560286219190223798024596491551137816461897320902806410037537206540122688628005687401302256561080584151408445279794444209056488112413622494819775295661473866990076894427201696491305635414359374305835087137621976597132395179394187578339743786606638111341268904879837083412427134731940256693901775000208465894770687672888382738023624119163066220006876340402143369077652968142047160380263830969575219342886775749907754588051374488408142934316491366914953427520891478349166567906144242409502817962558342793839328830787870317015770222283585871021425837637650044618394177601504642299406375532433280503547854024937064292523164570680990389400806673915231429115582790594672314242094260335286976798148063199004253968378841221797251339704568016200529163051211136202846379806452584269760385603608431190738291473338803390576646873896649454187731178722063409219554304738473072797939659021413988497985727954738556285947458412385159568857419650416518896603821407979276209284301051408693618852274507277776463596591190153324391991346466166822586512433609385989282303404877794342463157785195589031438464116113219000660243693177518043512487780568007518541386194431973915171841306786913130927930274359382669943317662807510793727885983577239240669916391611586906632236001256716228602316537746003178348688028757569839889734022858624290871296886166085093721847110695751852789434797104243129666043193678133905450283834005910956246821378290533230493281275418843760385202066359408144066675208280171462766388795527949990040881833394795800021605715333517087389371194947897437450151061249221115560683865808906789552033617072836027060344044947824444672083608847001441675277656040898620255100392282472575086403737961984832844455975410953102608644566190406133163657259145895375229976312070123980474202405519138966236584444144209760837654520687099443818586392728710051922821223747150067676399810367372480376083262423236084810657862250514876826516777765175998503649101037559089775366358257893026267655317591727864168526805807404979034071573567485771843937536171197957078267761785159478270049816754117707381057424315335929989530699278650185024372659998682777876686316804065476498839666651237444753905976353937926807349561952507905195740071848098868359501514654642282453586753198929932845375643603814892088137298189133726642770620976021915786853328544530419951417850645886648947994867729783971775656349146605516861384161033574477830954299196404959397964145882142394289813809389868956779196696860202122234616644880783106692334420074933728397127019062926843250039162887935364943705221992368856733852185427606247119863197156365916176972849007151747059763744725799192850838697255458113078202459231103577031879643513414326333738239395470550131140441513541456209663654805108693026858080425481682235756790697142131808257279499187844696386316366380945441000893116293157077290579396759598407620200700476625865879633764701311441586771382681803791067502267101948949582237968388942834366783704026418802117377466957354593317944133894959282887994596260268286202017209293876280433642185667146900792826151859402000155683863522554957954092273587241576009418593211364103106462876223038911199515553602629339589496995027641718951971272404318712861248751633385246776033711823332466625101037252421584375795357558003357519050337246115768125410272406872868742257954475149977738846492867761655924876170698871466622407412623564279433694728470170702037748112915985525035014820958869988840708887973109784308093396719703147224483274291504762711932500317876570522957012550921726133518891962545087668281571346069879546019257615013382415026311807967641945964056983004537624793093715546463039683611280839516273407179383765838377664484828688898902444843321602561476370344817339675160869728108919164507973082973296249416325599856131873423825618157286547828997974342400521034086000747207630883906146862214769064972740811347977467310909831441561269834132770325097043704657409298116018924526426692875937465426509116321014926394916154795742574291215355690618705311191213080166746727356329693966311279895909160857346158219697309365251014217273700360948264133586681187719618994588960869711354861892270300690434876217664323473730108785198629286069735787603405861684118443260673013634046477507169326070383252649145450380243048304303118463171736091003258664165320498595821150762604301555300718080230757121665348613632492436469228522531232876124908381433279862744883437756585176814599080630698238884843064170906804887307385133048046471205283347095562097213456502410439347966199742779736356019181964112771810509228673508915617011803780877374910959047081990203823212598962926182599273425361950297728227965173068438596465332685198646122563187008913081777301025692943648215728369458754122040137849051169300744214731488633269960277530874755239239119192232237186248420349283453630804470984266474638874034229349678948648730722246475247840570979013048293012161164593338425798799899960314860638818547101142749213534112113518601314837250341159191968522891724739529420183577529654474189395725542326326973911100628468256433285367718041927805447257906433908521310367489345746699535495348067659821874062609054365274837336726566680728658723970424674282164018695864455791474611220180290231458723723032245561325563365770577909081901396021047166995255941155009535677063981193863611090780685522629684521171698834247103731056100601793407305006218725661514553070003437737524427893415896534364065723431598071352362932729983515430351295650231007815272872888546915242867049860643790083331578883733169616275205290034648016834213705518984085545403040002209575151464934371836627854588802766788695576270606448945916925622095147142788028068542864657315220931303526476868696908595011839069771657445114850565374911020959147669569970754804472896503343385282979634247705425271890332500105595339373871008696316945740986930254555042453824856938616582893356115451712632000909157562278063806633996820976635127076130252347566792622445898051956345308932574867725040245754340915515162676782809744771771599555801587534295182792941198657056252799260654186022811893782146476943355257958457350323647214828924100891115504982060931293940466529120487772425763015555535651936061870217979930237272424925692117283778844775237623647867179793934617780316221462313755548338852958580790644343040188009215417735357099718524495604168660328536054307540332277930162286395803528839816478201579968951250800445277067857413668978015952377363245553392852894764964898787480335668096477938299537596542095557006639866314099304616738436726398208201025958508103680307611603807325158189512918953665103933415971042549395991562852342257616316525785041152847145892652066379343514711928319751767114967000789556379239195329336067971205526992348884716572417198743366696764340994034369104482048739106630982731279078924196809713160814130355466173899517861290208103346428320254731584243653229558993537633720134104733420081281078081630849879371917763156566344127343897816428195938253395696140194236411593085487146487900886369707455273685559893521760327333313290554242990039069924418608696053329668342114853026383290222052082046472120463383868582293845204561208523541831032377684056096917948618230023798484391937094721614766915956154882873544233289496267722119262474511536934556825671133647819537910687043339839974768554446543997080635474800306233264442329403014902519617503268462144671106642089777842822890365164513645272104333652750491149026656233640108802734322782291488668813952487617486735815848122181937776032140705715283123613421678779199121892490297045368828189576338249836320206607388109951787738464837489720744048900883603627267575756607975217423843521202718562817900032610184841360110091587324747467101709141445254730868562903254127306511879519328690640367957411647058424756310964995647901194811974885796540553916112138187482416690426949564966421378355968606877854568413375927462575095023414333942052592496881606699423106389967694330424219769752427434036561102985042348179577081237599213796331779411273818230267493717362888914491257180396353721489490081970844496070469573952919463760598488224912293151221923184405995586163745404843516115136022530332916532697411587852077169299784462576955209292663409043573063400120926334276577083653197023870422531089766091337678929249545793272457307592702278169876566089733523981538622173458101347264767064684943545485795456839861811785136606369037112223359969047610442231755175396697243849205503436166549790047237951820679613705195163453166398754986364167906237114403289481665128527667767469469969887233374430247039788703008409401324959585331662341602058616571512463265188360093318729187146298478768986768304565240735176845876549488365249271297278590696094351263842328854516331682899068437234854143624826792622790810151293965355620004658579553337678586000131617120047761470266939780021668423127957458745296148818081517268619231897387840782848607062315397283941470599409742788022711690727675963689688508662365495567448348914713342138544858528268423095481635667001904367285510132250168886520822293039048875780809378508576344353483250841732970467714618007442093459956521314806839848964180864067444309327502361837071259805169998665124300832276498442145067545837988174513023352423515395129323871079781302927197220194062245569079034029140395664007865564206579490281079489802103930657708589078866453445175854109140656749090610178590093856089109419122923621273269409863887019230052078533193129526786597741769911784630362375921524076431450155412213049024502096182587768132421366039475132480954227862582387500815111923373797965916051459352212893465150105433032057978338558119052021866582169244032095384837986561478406751839415914360371219728471048836627480337142597644786779841460535269208821848440979053883805138063536841879250535685290600274173267523608629498516460519116546874315839685161950045362773132491092998738563743482029057254402808985719243706457102444981368295141845757798456850830584237009908078671902900865358722884223342833484130347663305448700974177224815482003788993286737619583895138881330195414917638011072919750393867636482034209051882278232118036941684857936248609800086069421416256185671710223040750947040473615062407840109533224119062867276425288921647337050114303450601378538071774627682485125269167821681060999783348549846280105275127410872719737108856543909358074872772526307207393262786167014847918310332160738391320730356125526544380881752744915287642239180364394596972746051199974782653824211940873936769511683421290820737775057240205282369736128908962587938644214950522191124012696872098284778657116418622154455277268566836799362445459026929214301858635169610158681884226480143604257611120598370119849284256892259475333454744427525131160379938712147482832631936374613731743656868765887209102252731526734763402538046196166008508732082638556685350782854479726470713235557397611163605245712926730090073899171671240502764951155236945970485337915624625551697401584311564214186957214990290545794517617358580143215119420368417155524270179755208670909134495164152385950718741723219789888775949905237027500586421922803752837034353173080392214120625764507750286329198345109593752477139546121917120016739251560310239919805004420782378201006634959511821610687941946431229184265941871294588118661800310917731676423814541404375447536545355005297610869109500697680852229125264090027024312885782873426590228786491168903771504394794239364376143223070521716054641809078437591890978436536908143098183042554639862036346290960869942935554800385202235173321239625973826641748225303107027452232795796030666005910644137621922840038696080068406586900600287861147652703237739737211136725530855113884835807424307786863954172128710584911173037727206155594168327749545193463091771584086484451399233370410313076581171927492840735037573524143528150701491683394123854760862099424846003766453793729147732383814320820375525136993605074885190422635120519648020783503836926611871509482945478941468355875554016617939299379706276074185386227832185244416782331327613775878122904888039611465664766737404862936918933504659462672238210365481839520314862064159123234208328224298634832950159983797812153599338910325167950101764541846939982801771251673843372729556684367426391012195229618426960389177790902308768885673508755051316198617834601413337313689603697396464167383868627111473253639538666960734695719945320431541172752680632701280168036798008051609660144269632745386279219602906040445654958560790278233074503461919076409757158424642017645414838475433904282327253760419786993043815520606869597936061388173979246564649608331569025475303252688863822299092562936212836754758462913411138203342539973270246610522742154254213944218432954056777227438775682567080382462091018466888120729240023415621640678292661504701723526282238478881422505628980216230083784372267343273186048079343087237051171279255046818443287010357818458611508311387850337505796206140050447337245186857745586508360781838208326111457285627224691248288519052709649642141834602781527255119068032097264904895328561602506781392925952763781084395025637836989337064272838671840921940500269698784245480871752340019665004744465524434182093571366460523689764122039307306905113987023574833357516375374279736590566464949897480755260772549050615041029012827809550653301591383377702423826288267957992093625878009188060535940382250597032699807790681653102352706430818417287035630196296788745829365452351074372902980357774288973339255623738737865576515300663767526796273792050782919154799619918651943375707148606956491344925587736125802887515083858997370115173805585605293863592596141987658860361520289272008429958906550262422681885052842120956587546001004834152373339555304583399088215775165108456448822747846837663303489421384692876486186208478733883256420890230203804164510372723702719024490862001122833456374948911326988228180231569234676085338311500374955164814190410982093917614591954506968527472863074927266658946718588009647315295260999635217127753866204323893052164849427703981859170087526102724559955302804339469059470506759881695771170831901801602236143037752755884576442521767319421519909987122430315412821034316582584659261262335810936260519504719707290974860833870918965240287396561982606097395012437863558865540426123510029466062582930187887484822530210545514442932062625477075885190587230520153874610648986129497695677195123117988565825473179122231706588716184271037124673866106042068321530603525162366630435293892018804213335937962250923943077046603754099902142105961537432153717067372217597426783449896428762396544688430376008215779545155667125547134892879407206046453491269732371177312496268407009913789602615839942624607342283731408986851976339405618897979562222930390616436672176752359572782077189852048061157547825413328290778826920555957798294962809953898858988685652197878401059036008825460420280641884918621280540669049345543902827043579953064741046985534692859475957210274471817205539742413246882240872980679347764058479468122930057383010651426477520269503735780915424559895204550556890630556653077985777780488659983941493893521489820713682469130330548153411574051915879436602017144189003254136473085233106868949649633170255446938265799128903828077252678173534763079895304677926337434196757810499604483018822227383782313154809510512331270022721193142628621583747192267917125195828134676415178319975815095919720005531431927513127005739207874851582264205464934192551232666704984412697528195457828101615535160536277655535117335262184927679824840650525054500828142305812299255203377457886086926736568358450963364249130532456023170842302877389992418478478694276183464282563373950024654097453713687902979333696188973832140141170248424593585131759403872066140618745029829348662346173304113162319516373349066462018083270939210608799134893765651611210007416216591445913030653495217497589655361857600033648925745258733987056528161201075698411708935994377712053212195900443507319976755428037317607503019172943030037344408089905779000773863991401010483183123240012348451070085933407255431008220811617095520899938601838178864846118225504916970490050335506833791880395275148563297782689475866760314674859029151830161848107894630881837270088572112870691579569349155753510075612040043581800299895545474401942516602750112827515595063347596933374640450305164507753060792472569699521461254553577363162075326891672219482179283240823240884744387595056841610619489215389302711294697384012063550370843007072192107570659165955765323981328709536542490104859612005441839968474270584600173248520253954712978937714061281253876088734146043989027524228239626150101488260531328412050889084721844479652670692544220449791378719461512440375914571908669755929600111343162316751411129300437453515397715223686213349497269351891002754805046836207900777354349191517292219129553127917041983486425206316603938972346080053397251010619974738396381405711383500435400508411162930042377464288677583416356200583581285312151196421103935600292258940317303049783844297722232716833885376302774030888962698682270998426647797125503850812165070855767501309065214146080519836926541640171788798366696524054546843610856229461573991569340059180029202616138911882693267926999474600894071194084609294720371747139717082088694577436057433856068796596519609821070830419510860159174651699506613538750383949002228244127570860686406370794451403090707449761635075180657168674249582467061260179101669282539224353606141203009726012081339511624015036137305421747320529132742279761635031696809127543469339482681582104082201279005761988446678322221972710262865481236007702235504091250291351540964579361918557262201166523738898022393072232340955322992520859360915955160358079037687476412302303372846627327429136148063211943617417235839539855400804941681047970036477904436176854304300722635707705936274806042529993274718273584569722435625441407352676835286020879632943634197067131406661984577751880313991219304640233783098444140020074931615711210167763521623325897932243380628532433498246745427830028204102702173118414651998882516853306255222552560143127582880254660325174851746254632176831397709875965541790637780858260263986232718598698932059154071733289569675960716837834350699460850780683220687743505366384102737275562681084410266650340303801298532847211984612059821328355436023136096446709445751188355298515339366062458101940139395863946519449448470838992948354348727927859307088603830667299211354882663141969577727545183155182607216989683394197904208530542704474511307297000383260610414861742148008607592504531553155544039326364386194656751807179703721120709064946019285060372216504533968273454558560124648291147645014392894630904749576061617195239576456718842034991344258853008966093378430878761999856447578555830779329396919847659776127306421162878971718435049576929428876607546648343518328769032507668416625767248046925979692257653487823804787808738090745110099493475644906119636264790314975435557053532622300597035661907829519262536034969526425956066065172987632078866590023891744922953461780871050258375033923517572714537537427011988627995067431048758496140704385690763279619979496802921818523377609659907761539888796939129049189877160636216565450865246714955019716930840354378385243929419993062327010231106197768906853672342796665544874545591730445187032416785458529464284830303860409310377851098170949869235185979990196675437607957807636837514954721651881941149018018860244612017067557641660247083959438566050394653411138156504530027998693607178983834455411711077367503228499119114544303718313944416307656505854648415732707038813207209458971236609118400761031849967143041222721013727401621660117009612376421070366019324165105696168773358317085108276316417908620281669684668719934877850379641895489587036923475748399940607539381094864652083543498307954449980861467919185327150989243297916728328729616191580739674799673962909383581131534414668493566091024300111382113567865641449708948791576559338384765728328569098370223218305511048383336698940574852586735244668254377112742912156781136336151394780062137526690896680763688499613977522027946470492889354292551190133451193012428233574880630126604419626575672035869395481690619942526098403901546129668084034778383165335934006101703418455977294060335808665032594743068185241703913414629923817924011932371834361375352585245379660528769073412013560763676435190462570111742676660489389210487205957016238919276589358909304612243273507278051044699124980664954197681355102665674364045097503990731000097522532705137495866731566123159996934957173839403397159178406955327358044307808068183060263206985006070454161891781757432615065579137417784496943920687108232591781412071699017849370543265295687865754385007603159196658839691264743067537855218298034351695779282414417905666528724554519464718975923968666193360117216375707081644578917289221477376347794469044259054463356589933142340340520498526179241077932178405341969461768441952402741397431073588632522425865104666453454996872165710054544315859083648407258874860648100035795092522621244452766261641749467447142502389621799191173404956427415095806973630704157133564033747308476142065603462759385297910271410076748298028942411663164017163951305437168518646605112328728313849342774800016777914095206477515057039064925947100124604371359844755255334983297015162683131288601644080853944523773818326506598960529109321845560623085819090038977145222299557048456144836354130119961126702426124891241683411750217636582084422503712994144815320024890639465094195742060242459964427361634237611582962326349381430806192353928682161733874117972064758496536485539754132470604907184548349650828788468810021646384894904869140093427130306261034262207231598245282770518764636502552413667232181193097903041253679673842547260775025365367804442924935081397291649720988047877686822838769759858715516802663547959308917818885959268803890897790290559770322279674037250012756399768045777769461265044103453346602191215195282541920843746939890997668468105136012126178498913678669457079789403912540856773538014624073005480649560415953233360578574721061582032595786501786851977962619632768974645607193724026670488307732134666799308592659190017085923533076642050989265826210507659959955581400140551203166858355130175666036997243440667123215884991690807040182968759970755748690153322202024388371571498904640575928899033350251436772191764208160086321531092474501436799436233846172983135811027112020611959405690905043614902064262343964776496263171534886819061756646824896166552880739534095593802359625228067543979453692155314229349750222398589403738272983221500858514238174195555409897628572577329809006887975564777929841978880973425407339542814261513743575842338026303246983417556758560476376896515309936254803838505288587884761289681600713994001817081670482449108963896073972889891300608305778577620037144600226379099637813864488391131807113857959501561535422580253257269831349584888924245886531108262059855450719791438498130335966202483239243003595617453174350796424551692336114796433496579382808327957886980827909845733940440750760209224837963390446578404508074138545115000998612122958377484371558888055783360879250857646309760946605379178053510875529247117159313730787430985778988957491502917869290901720895127301174774643053514687640762329890135004905754127661162208204859755629272060871058100017110467109396062621156533433003273754397355000599074087802165435282155359570078025503369712912226548177320355759234184486755657138162332789217682501805325196534054138632845840227261784974477971711296263619357428266297974769998588133986004992077418529047419082024859042514198632814793275793977800784864426426674170867428413382977834780744218790364371908265538020595896547688293621785072379344404462324986051941532293307314606892921538005838126180434615361327802509042737158386730020006892241859131248843402632165051339540881621749928259184647816965106499935604100356169049408147664827745864215366243791346685855227222013017938474624556077997886856423238541308812069460811021642233312303684342403456020765151569418946628068505831774442414786332084760069484835850070912218740583377201365509413353117312802855283915409990635815289531986744634277821144663966277353989586337725382260192537170424478481684110998710660954709997794495467400603403388823419099554212755276962640836181665318567845595401496561809889848456843191705148063540922068207141391951987747107522975405028360464872571832044719626385828543335666452286742798405995546337962645513398076992760208578360694362334687187576488070385555711977200158954708827687831313133078484182666574656045429492223854059747165672021539200780322558990444040369649863530126977327195124716750085241053662704152956034426364453335321714428752011647281375927141709298397285690253166587168466024632604784755811791748274963630874494625849800887040059100579237131543473704303622719998953440081803611328456614105174716073449627052417275197140070120857141107058295445292659096285816261649459092262466839454904321634321686796564892946129922215028440031673202179342783691166798710945031408562444232053991399075584578332045404523090919371632996633811087091608745403006169916723993002455976883833334797976409778552799215251457127620887677866567991931478548014723762114789575653867631723725213223069505540027346829363783380934871801806055988507225108604769712692527540805680900977504833532331147567015767817055350510691879727693436858861562102376232823588024589796885301120533513139220063703285641971461201357020223774256702390163764897282488612899766529476389476011528488071766143009561755531514886725753825230116930335354057553094677522492427347409140920875925411131277789727618222798457512203969798533417253306395652256446669253915970854559307058611354184192389078131657199443694717044880879379557918926939358138898941937869667147371182955393977288550177145330329739646088894470355402546900307226138772678335072994245409333806160480725679322379120519440300002870341163151690756812265492890477701301357789634260378715428693135812749456469890254287806294770794666642959093030431380478865006836834536200545630582466762999903978835247749922072842700025750722623883563982943714947148417920783059869201130933727861314209222034097936966700420515268537573527608376510820145397403526344462737841631246735001654005078665941917597769413432904624451156154717508491980475216338727426930108529177730749236088169337691559326664501063403100865690716874397617282616925788065068810421490914671913288190194110293020746205306883396309849089627592593736890704757339287719638051529961847609234443348430025456664043664374127382892764820284272950169471836644608794627568993474626585938130543459795434601061943471770255301987717412406484357352150752936933037164142006000787135567012608222000793503196406938478346437177440786050475530698095529114529531601574913380474575777833953649953105214337297646109850072890622690364356707184680512737749181620961658964619646388412419010389599564240815150985845116211002967362256070797110053800050866611801429814519943439231021838079182870631169691434223117105399835793285606932534929404078565612071429120292684876981782310867570610827195580358110698256825311855888957720167943132880477679383290560565002811099187060794320251716689572805155140709165924842905263370325458946775109268798453822722785409197152431073796788970161914277030241971358141507111070189260196678554591111932311752373622592042910520243430769573411595860485874981633137494584372185618673536887579192405175306148077129836834221910370937209580265806664952045688891016085867547494188227585676551553226176416309335976590946115155472624519530435645323688239642380676356083204787161436090515739276371506919999659562741814595815235568900372904955929901089965803802191548749019891488653161704553282404969196987392120356635627614928078773115301629414475596564099533325883902840049334113074793639133520622961962745778974993611938356761465195619487300070482402200041679667594913562225911499517746341556359385983997488299269729838977717673668136917860168405205894004984895887733673494533759104989887612381771358094896463287345855146742024401406399582380431320181525650962863195875441620428395420008650857763549695595974302360508326624469970859689267649454259961056107040052012505935957974945606008156465675096654760141200343298786424159738754651567132195864334207004169006095886363833177824101602442288896681940533690596184700540413883957322046059751818989325679282745493930011073491285454263773112586141911039781232139516889383346533253985175286832108190893280793559784536904490125498772968282763631709868334891483379473833890220759398922118693246326331095576796737845946229047821723812510754293483914496238139332486861679713895268907490654869038000810212590153648077401165773384855645792858701221747942238023619015367111616241450718597843598765529066266593354166237198744965661252685226718618097425099770852367398291084261210248401256151146656765357756305682305001177679523133011224062646561678072367560623512465347456126443399903034593301001719934607483948550830459121134645207773900544884314516843218701368056169179096064378406242474817686976897393857494566732156517069498730334382366374414099037275863827763609286385909614080218686063326593319986769346438334975202806532900420526766861237652571131254246382918635049723457436294772728591151126950702120856389104394072257281710255800615686443163605954466677552292992476131553766171394166578634366478143820280763058866904623701706902779699264565452822754209489618276998207757564773628807375913081045609666358428957853650458345845818239400498088622223370381356179671643631254686769240848667758830283610868945184761026037934943275306515692230062546562200164189626056151752680325633147399359946228503585317543572905804258752730998268878260341772230801218401594656043752318960573477533195422539035031614663217705967996187596544473310993666566069298943610958933467813502826905092199163326969983670042945814011531344534219306811661652089239506606877749518276424260553489243015550451094953817925519951840063945193013655918482671046114419260152137126325216177119914696789339512618364115529128822704568633296783178849828476249662857298551038017303190511243777567654138460073213156573203939647011890840211381726691923840582787979396365356753345838612165299853961818742565191590766392611174594323633656809500775100317765230546309525643549706979299392125101536067592726353569969566732190437013398334185167486447717320380688506360097151187016616360403271341740728129911122269050390377191726989757143694523351935449120219699113347973322548485287776246612511018212413275670114120256625947189255177366962024512540104847650746031337937818346368011401991149379071231990039877461772710634576843189573508356408197931252369152159280951415667537295932793143410108391320468040734301321382315367805509841473697395676534539735218246832013721578528106024653129401933663948581435636796533843739937281725184906571956963188125437915341947285602650900389955597701200865921204880986353392086186528770150572617680387976511204642432734880989092609670772934925077719017104537933992839207869970534819265520601049249938081610801372857035808828072747570556447787332829773150194469411363100408887356978791283677675056712783516783259639377735065208817067954427603833004786167650074409747287951041306244053176470586445823174442538997997899729822921278678696007048032218447394193226535651077187998500324274980679674039860415541583559555209485526188542586349831231618800029759424564785773298397060128019126912344883085465961750586456514508422800658265578410828614622405707287510101151184770779337711140835950150573591672021918090836380024048747814542440119564869895581497134797416557145316064087211098331377524987295276710565835420822968233493638943023504551277263766853791603440613726486912713823278249281305937946342927060765065912332113121737856191607818507880980277499168266326589359367065876828160848745084075883131967717708774383126024803434860602503658636584512384088330627670569405864290513693574630525059486107035389241298033207604095346385318529041099607453562151730297398835385269123476322976163360482289392568055980125560193553172049545590464929884499039395688454155451157631490011887436855244700135851090296672220490980485880932801619913564634939149666261771210165161607521992601972435284300071192615157887423555909038288529983404213482700271268379770385210199749536315551406007223328880198160370578826894734052261506433274620924507698171979912935872519181296044847676356850588103924946368120492862635474588855446451458513469092041953608005427797188419463099384440023608553849823737279678598342794309958279832309104239755908701209517404350797292262031195305977571694413007311973265482997831125416845771265303789175435922108070339306371848185626654446241488377389360731963422324733683216804182723931578860965084949925621055075207142676820773300290925954888737827611910168544707675946239451418752010121775000964026935083662917663478114977346612468739653607218489047859143165431908271502618016589852163611387581900745530438638201222348921221183158641545205563334881012881282871485419958493533867814841324453838313966097973249978521783393964009614201727279168835663797957001858250891901584061878979444000389855041283131652895561543831281321383158855478267370615593987826212839714693480897248624880511184835865503751543097401616990612696557138056749501020976633824978269643756762531940649384044831409861461209185529917762877736566580995062664573333206389117820294028633299571722770416194089075345557542418987404440763770342255209823722747250671932695351957678978995171215536782458292711871506414035438270724950035415342394634679130567823022167181146801002797286931569049252105973377853398886096684314336508816608794930411894388621604490671867200614770298369661585531117965542368240096848572546763261076991388881498972839181065692400211625615352086000322014993597688059716090436873495822423910565405416929541690747289685874802725037300816237997068160764500248692160665918132381571959129138505157813593534965436664334818435146606982176643040554155431303663210464564211269118643128149147664688390280146762222917395537949592929041863814336898003219904976609943956984370514514720930287499215370292155242585804109877332710115793555551180980791034959936087489024701456546919150670190930605892755424414904698651618637332574473234846100495420198674068390703603737512322265771177982613973420803935948174416812882444593412031018575585669925420651038529165346242280061892259520929244716958484662854727043117139536794667943972894616008781088320315100743887273788240793312054754508268362590676559638204988937116356732832243447615463442062740663632112829615013400793060794970177469920170128706402149909812501843781870645440774877816628686323295740496362635941051602487263271340123970624284323981305336228313996098197935073053043024252843142220052270856396889687774350440341019869960753802393738941987594763089311249547820230456404788128849337923053934155324612969347071948801314333264164792533119180860044961936625227964034243844429248360141523274204064611685527137770765764099205433996543391666094976393772973036111661702241626596771351006208432168812515930070591557213254117444648225673801269498531768624954853733797999086523989776037936420935340738156706946667482868843650650592654311278387277084161629886258772232369996530356386359835893691000629989554011957499821412756745603621200034257806500149508186450549039245047690599108519641526019451507721382718512989863751579113801266738069124572647137072674942254090166383132479293815726449608373034918543674638562689829130371849693192686268068559320737014343947417644846381287240157664122643076002948564356987320846263950605808772184244520903261910371511549405890180953598539270170863308172772962017142721636388170169093546204169121760834722968267814685079785133633951029845756360677588850703291788296924360947479492990805687594311402589011561037455716303114633138451399506359138320815185400017423146144465301358592468005210819107705436133429091122978820085594955650666767143002850484150244249040442929026262715364590596461456063423053240698609026211689201138421370488978952958566990267555174557565798614287581327430298756778691611316093156595278696359760248526205212694354544986470791056398493970093145312476329814030099102240114184945498638656070521312516055586497442843982262185165347897617823513516787783628059713314776925153722144704237732536679377246059287146041004696349105530087297740229344204621682861034219683104783356741136839985273066871035048367634458170362308757255498141262134304445467603949493378085426485561696576214935034034601445857831080209384963978204472113735084331984418786549013582200101718921365904128623620474437638368013552024456699950926659598019307196690982556764347923308737342245039556550378106961044429951769612511729036867429069774352388162923519767521545667506729012151630559683643632790482260792493671452758206227801513198199643576116965907856820716745567302973283182900928474802030792683823138153457630448886964763764618374000058724283116367982845621839801818014862305322241874249677822873283192475872816266212285151604043929368172387863375400368991711069846044494667128400119075161685108501536536710269644942911189984114088398290013604298874209153143310811369584009653213194031780406098058818170926054103588922302612367686767258573550919554295042330552359668962627968515784165168550850601489904552088763392922532278591342137319359174886422054255113504585172470449589978689341048593208581424562831377574247459194576872109695171629627657915490287153358054475555048804401028521610492838653359779837625864065952430952137683004591748778331854494706746133638953125541593000813885774494023074122612724506736543066030753185436379698738338678035566792485195932757122486541113863964295471231636540620416978823244573414361713390244064922410328308543983911400237910116881045815749894712053287777072818240661631623823788817789450281338493744083988854632925460885572486796279080730302138475825393371243797602360570414000751187256895641516890196346735801154372649692169579538804501903089483105024265435269541245957517537409943215742081013119770972630462149250180504617664030812627234155570793176536033981702714669955555517008484453170428663024042940283648174951164298400757097371473702296730486695748743528740646106923260013277537447196837298265659672192991499516065688828359949753863027730251799178332462445949139426231419959728256103104712227681697324935175681314541991830079563421852484168661223401063907830110610494771981379622944062049583976726038323241012936411766882621559810389209547019470415079833053023293635901864859286446027752978684931940879230556014180083661364513780804997650589324075862297719968599973169318424883013837042769827553701706972272130108037519996610798411118140188940009481099414218954976272366778505120754279494964347961763687600360993628414539840587461076047978980264709904202928817986528728123217479110293773735229991542818084651112474998460062048589674876403823344530843890955867586739974644309696429299488763276599533601356805252844568574543239370926470805893236624657563955346318067459332439149835407685749402694569470779861729744252119512534518436290746466293799987282250082994299391796126883242961949066950605046445320619891850743849107286529679017466887036877184087735811866510156746941910509297999537784998295468515821863635827019236875218690537233304021831447068565067899914899285800993200066575244640942145017919201435737083695349138724622173912398772696849668771974799539921506891664037126629835940989064624401344469854035536464842542377268057255301307484242316141004074441044680843100204265345223167188910475634688431388725023693040951954540885180231525931410630944275265918391928164997857623060649957826974823528781748587576185895150425121003322486129830766742402009629019346107603348439287361266572525300079150619669056043657147551714147143472034289401756474289286202512333863507859499646884146462917671711463579385451275267776895962433019710440058507453989108169858485501592282620173510509632800040056116468025067862418551912396484596119814294685651282682381213145874295080502045779420230577434137408226389069200483164358152397897897438519228329827846815765342790004237638081656963750904861800722022286223094461037403421414778739166614108459536021867692492885929591020617365700637424883000737528983143102381699017254624964265411170207908245855837109613220392557769287376847386829245253932922217426457709502718479885048110904768858501128647246827527286318175128918055158134882225503115966812788774287618891506643517995926297501154149496266107100508379073570896712433475066725286865342899520972632292905741529790655993489164195019761873405121654256598365137287168200448329187303218675283206965305239347906146297391045548507255140905135865178563353950087131536005723184067656134495836985873101482585644444537847808013866760238877168939707366818209245318596037877147448878820381312963946771930640042704960357944189678740379076879562104789192270754110005248022383137701398309772653386957105593242537784329830937136106332324489589120682693531794880423864975127887755659597700714494344711453038628754352261745149629683713900611537469207583684127467555360345806233824989745487210416856665356910358541314532048169333570400531108508349790276944414036658750605097040914753659098760685838802848423132048499168536128692224690532794968162861092337835249304090208783798000399228233876166709445036268519040236803246068995875590361908489648062703440465454264527804339342243197931915247276492412455565003696058219082649315079302446562157363425066238725309066965053919040309181401691953032298173452603199260134054692799233005302810859144764613416877687663835021005088551278028733138404207654099911211749021680981278533382450547303819007043171992275387554137493692925794503726041262872154263633751769517309941826068612970380369595380383995570955332429578788010300373959914708901535052534665502964606995334714639492889635568567950281882870288770085210640139877958649071070791004801057324451499617247933602622994481470590398804458432820641254815809028901642487311150713707687769233383888383680006595208346583056253277491708246588339851578910127205029370334674488525994464144890348193521781917179510804557910951826433386095056201503958636362755843231228479484796984786942224097088055728855198066290587399343581449524166308790766699030372373459832342407436132710730592191739249754038888605278740720813881681742312613801622059560555243097956537083930206527938413633934527809440243743007613481569213343745302425752497247902765406687249545013869424245824295322395983515639042131224515257245623738746158514883151474417032184768705391434693086919772371342021606075841569552454776272763143745424589985542967241699787120804640585495761026306888571590400881151474315181818171054870847278591364144366017656083611139960091311218295676896434665718139755207385551085882561252738217023317937253010214513222567529034773609502186733435618671879241474716840638643080127872249197131879152260389398146755210803919966373684122405967637179671280746299666140268944171313362993316736125647355439235743961864738818184820848784380363646343978861630851151312890528865531480088549112362006557035270304656766623305715307388741726115492599422101380822809122945129638500860949496290443733687390531311097959654564003424018942990313393876107035789561926368357949265065903748216104705382550728595981296094500674214266965754355711967450208660381192335162149557385524163304361589794933408218325465192544700795418435154021360375684620003606758647130517242335693673200071700044858872594828653441756070052338016168581183526458254098093862327984289206152966744231084787455993500954763171161201890763401580458508989245026652017130752047306406208677146749294540768754208541264921210908158157588062858151772368143141276864126663975518350092076808619824161400832421383738897255828876101818252360764519280555240880704353229748598524830154578903079564003600482109377099886101743061945497200161171344542584365047797359193805456731050071321982778585979001639490180691409856328919340607127010637754675813323410510948856810628941310756602642229219707274340414449600909053482920433314713701252788606477784875785271672346308670951512773996458162968112853415372032446163971975507938354077541724609580866813438762210477376899252061937461542186287378641367535088619466347920035605223642390182800957158164239403611544121234594907614385905347774664511841592155944719429840994259361289517156960624189029522048109677004081788165651680013489687982483973713417251518781665109516461582497537786672810822701990485301659428458293816259293551969625212367928525691898976251357860568369581731191259518068722370492126273038909881713495808510127671315580129906530381742879981788915255183815925133592589836322842975650972768503237859804242262462741406754604406251600560224826117781922662764457384963048032879871219310178725761454082858473325185087153992594800970559789914429128447170889053371511935498819822953496155291807220184655576318310533025610367823178304930151620126662869775059733749648773015216322162271171671154545718786056546229048266681222802012799864508687825984871148650529450465784586294546584319030340215631434623036936963100476569974649736641317618572761836354538842059366431276334748451682531505999010560650549007690139049389966949467762521459482958770092929680195820820707176950499995107084749811539589689779150359848330947739356507369435931713302982246332720990144092268796838834348412307457320330110404296824131140871839774038917063426277104385565297463590846728539050053943070938888502078532166522589221423449620608012612697969328805843616794910308538902386757567453795044718196853331850417670408760098420243331894915442665616015460795582422791578119788557250485296045453989984999979619555706837872765440247093005947390834140010494834019152624046016258140070268411907168876894541336606669077851060943961515027698289421912345413272213917109651333079108212275935528031311360668042497858939293756825557715081139239867425733719375972765130704119642375487740639334411484905450182388841696426316713754502588328465424182445516571287157956136689170837932647856794605568144826892292167895260308527575142495836774675710035519868440136563514819034094626327389514287319982004460697153329186632690861967186103181260212092373704173937371049015446897442328443129199145313385859287732412063813608688630789667435024069392931820307873370300282349270490298198656280699362525839046361655230636474590287319942376513140651898682916547533800096499541097776350120515286162568292808700810174702035508502514961578841349744038091779110188075774853358335244911503342298710644129431856503207816454066568008603724559064298217294421961679886127210990228815089402849136098354187813928550268965564512713748002633314418364212501293243252715219325033915071655407761985192366621526482623322343758328732955101244492276583675602669885038770817136578547674677463853626979387213849472170782475345466019909097532422882991807041991133247234692813148658214948938183943706731920605834850462425375468526220592245810687661609929199575133148950314361611736810899889866477093816932382382849460718609625262746965298384766131109065679106176795971278550200972630417651812005460429707896513656691278304762637587826959552600815660527093340881113198453596509371484635433764373544809991104508374463301606371730035269771077943054151989943046646150079234158411571215520272896745625269973424806249541122130905743708408581987683556429337932338270680523585896749341738401477890546693041237390178160675299644156343719133880584878583077991872381958017215054844332908303514725856635674142413821857732037706739904047957776792190632235359001911687253210454593505298004634386984259680273176310856202964414574260474509792980109134452039457862426589450531063310824690274702277638737372366155718584390516122079582071431019239104668595720126654366864312578093715879411562146043738766831512547952856937737444623490252309578853552740523971289138928749098535310197039772735171389368343038021071406019033325733506632187207361862704388177947419597959470582912082583349808727797373514251683261147811301128945024716522575788259282618161393549389126985769200016546190908311044739890447573432677217279498072609581963843042905671229815758352360280397303274609314739530009488777412526956789929550160885908611482310472778828434172142696057551767306697056163917583614023434679635003470538881820106335785157587925665384389757909177848057695932049660120534885647497920785453505584266065225605745075208134185051378284848771438461154319755737337012669878787285659167684587637464714388168987747900057836147945125969247814427484114115982661631480735159775070419392427438360970378266302877701541807497944035216711590663337089383940233970794565179691197410598776102617722654303650018642407638578446715429625816942211391391606434975788445813327102968821639763379633947441705593330022382018299364396854101946952141579546801341466655829766640235711752098096182697259368451824468188878764941346448376233126047818771640102435769501353020821793341613166053242891889857918030374435859814036398384117500228891960889678620179589677973241478494124555595608505712348559597203348900008900502422824498605806366296298619044376877325444953406499807979599725546090532701241505396328027691752815356377668633917608535505770667733979122185454824472370273608802700674494458227337289649179525165936072403694607783283147638120571009722542589781221661599382566607111318716948004320260972581824051133050410998846377044859364956596161152737292691599660321293580305378408044669763378655130513545918881753248788154787377878379633705490738940266223655980634048362259162924170543696920599199350671886176081307021261722938587853368273578137795011748569264988421169124865727442978742630261334208599819982617428524039760647179794360194582314694966271656503880735673590452899960728142882641991203567627684024234569532092543373792014601635866901494723446020181653050326552852438912562032262795315189926599064226708542506083937445336384454975628178653879798697175681378727170965502844861506266607214345116925601148181414925207370971531555118102480342140173367439355402519973064511010833567691686051188305784147239252431619257504896226024286279377517297469505651167152499768103704842810168797664041198630443429681921504974865782189513506919299560088164841723051610323593317551509484686279584089594916997425475664760714262329239882825113727784128870603509650196361457440197953035061954292112082895798959236842713439677123246820110241158923676173129017690841714809822751724389470311682064051682325898125229690672241890979832466283859817132381732520843853121086259468081801262899839817083411200442628412555579720537692684527021444403825551412053831622548967234048031976367099206114483414949876505230487231333821019752872917709871272781346473333766767910014488860366794382294692202939801973532585104125128629623317838710985010313944651746928963681482324201354866239402454585654050004947546604054615557759019182819509303662538145363067881495164042337806837189512049548453883565417536253988193041333826139726186112473865347793964410371558807828937830253223051088688141618656307409482815511492817693692869166458436594183365053532772094898551040223421725769304906013886427997591801666707643585503470880394326425045465088368947819089671939403349140728318853456395667198553387816037736442228703991389258566136173985843107772692146733014264218646856193904450761052195552435324946598341841310757146157893945719240682354180103385822640939705001867564442870896747873981443013797736004195900713456760046881504291600504068628554609829416381052298599096401359868620549195819813811350483167959493810613199410980232116659937926661636258445475760161782429471802115437705107543337097094586880097707425217342158918478061097790349248778494663256548582787587585192331272981689380208820611349387118183703037514078658116297176085986501514839144773545495625767561059313258897628318846404659105395803577917455521551508693883506273534295472354729929730669317998912250107134822177711892764474669125963790901364623585347716413978631781616566064650078733004136322558866689436974399886373581011748699085303925784107779819739899526184773355716939508096266821480810955461876715398368418020571150096135450327735594222184878551381696548641260810722787060520073019632738165923391099887532362169321575870848447800460079890846380575603137565456365639121680483060135548651649890868227461431904357953297261808872944890239381819029901310393040676571285199343323326574182354462523231010486119754842356967258319610547604544455787619455333032281006504774654158667651786287097211504623183551862653467803246786512859072356288189186505691159877398030127652429449031137060136457153565604530811811762559660630047503512952232630562222286445293140781424780275984827635136309049895431074400567171386699949024222534644991650577080567910834157243750399202644162804797685744047618705802009472826886517485745978044020641685603169249123895218237614545448511155466100044224464873218169588312863065150421274204291968440662794917922078365314368328505241076947550985964505989537485349164161067769229347133069750444032248210938748958584151339126310245427742910504559608084279380192649596733032098927196456591990596900707130760536618918412596754870737335507910455180273808363203576374155206933879712249809272430834322322648862256234138237557241513223660231119809937477018392946838778866101796426030945592087389204625280331678427683714235061740280282738295229389195046239450116608223236465729635475352821660676490723621205583722050378291170160896156073018085496664659837356289191189613571199270453783800258715507328853626783423917954159382938087086439470180317488647173953907344835178896868610910721410756349672928169337862446932469759880284701540942041233006834414169643852290973017047840839457389570271708007213119183434389433036066665195111144406595244286067266153729906788442984916535740083149761996611334881747649129321187624083409729978884651434093255050711582973553766861004487813682209991710212268354226198136812744061660617272034636629162542082641236398238014872238194157781568388167734494823823600962731196808700892090596424226589579086708568723841162306843547390238104826124571129326523283916415014349571275653618618319825213748692154698319618906670180101553522764757686976024666910029866507480037563297835207813347901576856937202869977679703958545232569428090056359503452490280373084522852930548159507932090738450501050242725202353976199340321637883391730039842168490058715037373567422697025228864418860475199450044881643083595961195550910441993395571141441597921752036895489791946025377489497736004117625424872297770302424902708335586675968968849312947104755077219349936447039920402261440279415934553297220063068364388692994876758485011134269675936506942914869481407814069298537143777865530409347222218901671255390264814289999834739092253898144719971857376304648008536172993251720806840087287641056173030316077147215173824169943496518072333718238856122748755542260170996125173155417347280468728665355833191072156768677855758124879311739695522217618166838233990946752562728453402758728310412250459563697096901041118868595145384710696742111282809418045484579458709639098246270691776279593203102602914744003915118893674346884241380464249508643974704939351972132684924205684863338747980873486231525972788827593628821957208531657557946592694567922699726992255466884342924924184285568887179137881848939702137855783322976288677823202293831502431385207276373837970859880942155514304038784491094065601964051371561197395635886287761940353868065821577767583031315098774137779484788523858473555614683571432411364821752886208120728499908758363177795454987136942972912848990839547251557830735157750466449195203749268288957402228527223859856928435424589641132796657155530880323090954500469861113774921367701972078177791668309685450866477822142562254957782324304654518890034587248651663254132750644747466862325572390054313726484151697961594628031857145373566850685813747918240393097232237608757441921195466582998538828586658113056457322577483433739246271354284442356108901183357648219026016972586410088255398408537516377775383195703958081464052122163238094029480149102750316235255890870499091607901797483129367463433535995234162396368969622640663177925879616785581888925206736988277414356860299377272829390710601490250428135089075563562206859433902187089707203010544731856518332555901416124377306165866737028621075549999350307659042611389585392744704453808436439101192360395885414364881162025447853985101504697835834419090619551181653553053378754627086623713086419805260003114436080836620951267475675013648739672095158159003688834732347259710684922584801592553166476713416625561638257508056721806253569128674867466653608737659687359385160650718466055745905407381497734782464329966448764295299803562259360956510682470625385899445811831593627451338822570273577180924020881280192067518178361898696236739988776236334325542654734236517784418205197104259931464997260940053489896756137186341067610460489390405025481807466196015330762285446387419385898101753708631154981090698297050673287074447407103454999943448342892949051671532606693306116274434240776399289318619072480236965372838106753656530790447260676106911767154727584681382394691542545083396446539757224418693261351269851271918676341011030758837748276521592056690442861259520214429298054700701211667437270390058553029506477404698383961736140114602414393486696988823039341240435120206583013024535984085777701977926331937050728839969203503965883861075958400527398980205559435407023137697228715223668252803224167219099618634235322451760750875297428038038949355832139110158173466493572692380393224414225064851953193267768015008015626348368135024043413351606340022052458564143560662597695101925644694521394458758888444732618187706088182663778245067152663334929573139194789790526952210411711746619614599210308651470305223460360479988525930835344148287959442966623090449545826253160673406011632680175395134967008774566737381881981715521991442998270967920312504035114070714295080229121608971694563695425111731125253698293876565954456811224098863445295343473835957526509182014591261831673100379504343211246500656465989406891995375255186556271424879252608711631045651385503434230633070934130075095328162650210635270414657378915699846555213890479163543322110557384529727953946912419531421355866724823639910838985410427597105573627293484685682667899661684347887107266705374843714565050482499356382593455604259356483201976704423462591452718050682392775829437604491220057491149499441779227036586714534779899499562956534043010059631289706210301132916885046595782356876120169265648073128800292324895037348274660797773668962197506612552888174932367091889782952882087248451768341372496874312233932748029720845568006002270041708970009475454831508969430228271626719125794166638786459427521663238739739960380020030912983771142316401657793164509738702636336461185444196574943865759779014435177768568501458975455576387848018114083651620517361866789121207273424496372201331600803348676369094403196709206231870240669357039837746877096316200929089312584197659467361214156587624146610356808606024871390683412652237416519590874071908311951522007888817353501499318596994906976784310441032140189667256930152850441117951311378590275232591982708438530613483278882671805985434773415632329037177215823085256193026061232709431156180155321807689300365445534658939153207112496186101674613264968064406170033701171215829456455508987562040591743071781966370324861155667159899473634112842939284470983558292700278747997250238467831897254283020788077659077800943428178998475473768453557456545724214713613943633627870707571224291071067574889452557534735171698219989718483604174926973210549600802657009756895030854636009379138962849236575587365349072323195700489244261665193805110297607374106289606500566178528724819578546496216904646413006051474678833640116632400046082621303708572126487526103773663267080474388053295536776799220827408994585435090606730856222117096621401710683981439658367585820949737127582439225759075757304371345462311274983939356926958967530194926111547048478028255223723309596099074717995408274612191963714533456010905453394349078134066270770051500001615369329663718918552829666575666838974615876426749840730722856234531038248522491638754981165183082014683012698755229898780748423617684816516436228314108137992196818089465066397795539580681610815711859452351204530297370458084430893050595277636551135705813084568743533739291964142153364556150608840575995564016233782384760567965644248236122865294611643824356043397479611986085403271254856634852954147047688578262490487512374745547588639341050374392086059079324980158443528192642614069604167585152746631707764464234253816547859685413468159057738372536102393014650071187347600657183057157764055318223271024984947222352633505211990668295883615090616204123531814290809574289193728840894152447406129750171866984868404284921902212650657077768228701597663758000351910675110222900221953840611595032865097434049168268444283654327369221759768707629254393544674590771313098737544575339060851371852791125740968782883838988567001217395700372284012879787262181548901559067070826632447096590237804520309729247044670914623369734473892590421278300788423431475860566497625501581073705525622860700574875510920515009374476433977372554764058257419629206980717447155284026970004193589766839270357025238326323151765725838081872915158229927430097988688468039891649166417236632126361801049805580589134400134909639372395764789344872611235526303208889101728202164256146550524729575939305922040598392019755175494112283928177144067980369554140645191641356592631429991997003469080752447289775324485784299980968399150559380318406618676941181428503946635465752723979160592273594079384707512683361554171211823471328715770035879105629511214312691488521609979803435928886052670332734545960983924801227899504598742943968119888261933600495976741803094122135020595680247279616637547077729179933671472167872092883347818121303258818196214979946162241315669791239364816889809702341556325421121745986207341965633356429217175479941519457484275704717881403017098122410457242356087818647351749456086342339613378995904968095287551300179755550469452736161150763738458552398470164155433691780541397606236228137827264358074184949055028889531937471612746376058819466115628948319078685902054471842897268183293546205706903450555099214966598761508484423938896400519547397835003777197995763149470356079872148421789327611228005007805163458367370891328178266390027801731108927471192534890877188300204042282893600047495254012056069900829539621502584958279443226214270176938513069284927323333771299447009215234108702798696998655372105408248903580551775459748917941733622430717609016712096401553963587125197335583800592587432961283030901604673238622327256548206767729549933949645941516130247379686941461424580936236404599711678033028294292305194358495457262153913225618750887617908107757038589729474073758972305976440002098758714899054231523329141342626628349663118372252224188256491305030953479218748524482237115047765171540650637088194986845931191112146779654191585081119586170195152861274154083248246558516194096548456127623925547858398135934080192384030191217824878925905103674085618064008247920397819212248809536526942692963857834938920229537284207528121322262019741961977324576360900528091042138318354083962263225395210092734912755792581036551178674487767856092209407167170537324550240514376334930700715677812269943993779208984548017270044956995500304091941747093102004397110918952906107683577181405335697357200726757645636901750393796358643618338261445569559046144735413211237034438531237982178675516809112893610428107619039093216734343871473743783779882361783918535444611482572172663474866013363815634533775170009284582017435413221834939447469320654229939923202993797072445781748967662022076369202572177212311827326182979843365700237519357816347153748859411404224770248209531067725273745648843106459957673749819797579890070743521935085501009809723372334548539068601419750636477357060205461483483817149815435785211984235760184463102044982187750440653428850045091650562252027501537957056844191188781345633506032811973803658441637688768339276085418292035884116764432832067841550478241075132825882321258158713274621673307799382954109402880008217983812821931726353157166520775245334189510443552462667632210456418187802485732921404414058439236133070224850076817704687947584528678773624098766197865742011927475662629445270765917053907291762665626283206605977693989381126723169165839909200204697072730124951052274989830438442732628192101783754846097333908630807150622243998871467753059089841194984593336259329051019092874437175372715196648200701872454516772478696877568984010636070415375293052044105546348813348181063342507671712255162239543281048897337722467009633888178114549601502929565803389218425164077449490546200919500957867284248306488980521542253451480548267136132889594716798956766573236042659935512627842841858987866589800692137390547316833380142410156497432306639848189987698014808877792696063503990927511389946932929920246310557364921119551023308608021761584469743887147488118748487469322358203002207257116239107779914558334445974698774156879058772172358159595624253767644951418446047161139858951870289708081122854030316000751478587341827502307532577777971646407812302399422185631372588497453241778347262072380919138836998395586426111988305774020753878664977952146541138579990441881277001473097705151250359107610863831189458542109400447290197817192217224773102012650110720335905458856778638245689016095659640317504511105006490683898774806903598983040980111092836969057450999706472598089881985298311332932703728347381361493564243170575942150729022560056496287764966112141188401890240366234273542447796995382165778908344946923214149336646104966787481448944250872339833889721365152979090460985539000038675325229722402595623135968821510690612102492423007775591168814118633835481295386977525657603880639398236763740157623294332003318231118005083705838599107351321125282705469068629371191823509065897722113496092251590443319285870611174730027665409685219120159885277544003068412910990965875327244451560217592437004273702754493521878480836665100446402799251665052829250694036389941593517137445157739507697308420449709663457051829227009519145638716259962663340832531862821965714826712765644831230355967875461004956162743413715492240172045515944472011092741665742075814460108110465831351283823516995141561589234408774001335600921663785909187237530475922386390848132357031397506729016261866262021634247985022607512088476260155930119874056932733675536393639235769901737183919760677465184087478292509902079453830962934352519425288287723286095699178266790021728271990127131179891101494652950264316868441390960469129467669643686446772465229287286729294857480492588255756539684935019757432868232765014618655089117624112577475957024823868591060432400647437913868588278701580651315793526624875721072892593613057613119389935764597220784179572463411688045063650653064454057895930613528716775316645717600678967102554407875072876679988497386684827800002910285048193929131225636004642743960245906745353030893798110252623470941193561561237006117847190112301974398543447907088761607578106971887987795040855954312341520012169129035645430260298870340815991767552788602303294723706406402255281922863778029671500069092395036557470770604738320853028154899303196934855226934860414720356005149997171553127036401295099179456040736211724948569199290546526085706274380896392458525213234510908112312466979673734286499107793468711598611635118737718456044282696157234276881748536192491112116236564616349012232816775313050232918099811620280466114776261006724095911144398172937284225629755319475711680668435365128387944350349223046763755028255102089109371557996256252177009323261468952751855086093455771922673097768016622920667172405804807401925260873674122346132680654541815668451328896687283384034933640572938484265593259922101915071462022480383597759129153987737149837702725645040922437583529823961304343222627563453197373429893283429863588350783768304748923070398923312722625747001552874659239243563006665199108216175994837597071326588105583040239263404187793822014105489159747250353183069208842264228275348752030406002390651331831027371906447814127449338440788976284919297721552347651771878432069204940283238944634124529707756874475538599083127556690113260836628510125607042506524180964031466175935441329868635634058403648793330338918368430573856682528069973508757885846205382359804691332305255391564128865113119208626592973219393772826157131933638548768793923035967742820045728866990193703528092580902828347823822299007270006044072841306029081508100261412858526227307686897531287445541416353577423151955533918687853192140252821622488822403046291931373317351342947777071887858265701398733531152471695209828968397742080858020304578066450393796115639369353869164070880523995580446424332983880505027734415942398163852875333790220323768453942207684874081092692751331964181363718771223467586403432054817054166906369421740156126742043585894713697602511907479730906797456569521740316690974204306110463698130834721788060279868440748373844216468635830835585510274387206802450507688041453575163484698579768922324424521493108837601319908297887463583585184317151882544094029554464748676903572400584990439976683622264403657087812558449083959437097695298632593252928351809375087592437522466328508304898258062188323984508282809100305691950129200342571217322773659982644890304285419950475737722427026488399905505315286005944037884362950373322797616952301503996694082786234237700136178257845183972195871868455430705271068126899899320771055474668610579736486690215034591269695178514137526710503590062659990167419545555869904031511997163294514900939716971960793473008695317761429815202540420804579685601565522356408581397357609256675191199334053070240053701168457108425737927002689152056205520420545690412797176714467629396191571040803432707166179537108389892425082784075232520670581730002221049841938648363543624639269582948005611362452335649455444995854861965978322115307960721681050821551235137557542416259741980285641390728557517282343844713225514110459637452332636840827730065696149917659784786245770905757497982267397188414141019591550938833535919539599256259235297131882785872293334886452238009981663015607018560696861127172350237570885280477830306818124300149947114649006032623686768339578076072706318461330446808287086453403164649860702332074049315554785977235922423137011297481406729519059012656076871414960942620158383787655422812980240980152262165672690953149750864086573070713702773987659302689621001969512871854002002960102858205030266804076797439636766865841431093655083809699070596311921725171251992852005007544852606240568153059726894874120412516570285033672651648570482963942827655616646845351163416090062926803455725790331595926745457165600947553475822279551011437426190597018608702081716421730121517359730615057250041861200756260119310089516059605982245496901521374500707527196064688205287484374518871056370443676931704209772922802646668483737076082770108287612526219787859202669432974860146597276182264061942039807224260613328792415453913729211143694818938006812417172772373156528019991446094972621694951094067695045570865852042420781107335300403206398635129849322912600660661132900759545813859128977505147248416820189654397196439084621084004014374468664067479655199411686625865244454436233779221170625556682127658842373445327414431019857157844846148158831321017671405650710494882762047369703105036278275248594969420347428120470927812754922108202904418784350662161526916816648211219731958593510306806997962865133271665139464520720464720573761102344851308137779548034153192216004672527767769685422591862180374602233636279416408400534386154655117493425110550903358124789841397979998374628251757682606289122831871838690354568171135568973257574617610938987999556658666287290411577936746917106259036682967637424319610910018523553436885192323716980960419870575142714601385715513888795217879698701066424993339499592067371484922510799676212456987438361157863879225331272898160117506605648329292817066996866682528164368533863271498188759642266965578118539838850200504682140450363346273928201312185203398981538645328427330545156215094929975398472394493893798030327183913490218101103970408572484986558951708746298025061997855249548815974808555967473073515136203974396868207078763621960352005225550964470218354641263261824085788640910933929815280904575115721535401428999366868151006815444381711138233190746433929754240554624063230603507460487225713631366540109199407069651317937299208572043930130021873044856432087933392935621744233463952974947537155646206107941127514872946801914247753609187852814098675018989411201414950900555730155803278583448135209805363087768364397276997373114482898162160207756873600503048117343305302836896745381435276702496909979028933136114571912723757115532050856964033227958569925868492591178140907827724325597016901442702820398944817396808863775619266267199729192597528076012978977697883186865353608599588378505347756591036602958556761198519889441705552160730026799818216463631901150336339167590398625514704332346380258426139476869111133131230450688799993801501241292649744581305861154384729246124983494999302563054621032807021150938778527608270569616050395682888842863828098410473092665194057809566900786311689453060678549341677555315834802586619510402642754405078934905411880116133157273155892960023320370676579652358675667331896371888024459409433299236402029192582907043572618521271706723872276442033092754734952474161681561471849235096299425795866257353050694678502906640008301157324541900663671292426737466637398011972570124404659071836995275989760398069062266219329620171208046675628797013873737624403394843158336185837364872649015699838591373600135415128709139236255328240642383731353873817371963525456519524540645073683055969170387964430178412570154016454075146442860308175451041583603136505307958522248417191613170884858922539340265659227859254930522308541901641915323689535193273511153074420953864719040481991497278339861333965974966133967370916259209073357578225943738108503968018270040870845929443773089898165408281739507774081580852933990277448529190447678138701694947380844010530785060866898177966757322522246935975525444351074173337238045711768340548304121962509089994158964886140353001875951396249345502670480013462829886896911429672439045319677497737258696936628255273599764036020125256359656617662189933422467310626861258622074591378675028423948128520471419488227106815925893179412152969147350254160543922487994559395027302056518717082566709510012981978560577511424058152849507372775552054015824425283839016742154738640444312732771261846958299541845620219100970786930229204902131515632996277098687340041058911040638549148296784776007626578526650760046191364441791125514440419906236119655454397144546763227305576293136913078840549732409887420186752847768829738134349909689457366755961899904587826902728225667813861013144645176992451242367267533108287156372728143254174275448355091772080609402519606567136907365973802418651172851263143198923050535550632811427646490785098115039631623171275682874793130787169069760765388206764710231800270158453077666259109159117123334059182042648107425804579629635300136146512814073299894359368112261424171177241306915867555921613470271051687836125543114883038199245465460897791893566942897541383148898871132452948990096719390414615857534750748001832280294530730097960806174472550757845967100062374910810545212848192098364193838638689311362647169390756426446136977680415382792721402337840144289693978508084849243645265404226872520043730795983978329527619351108097290789603661003424589994364534002003066833419137285506507094916119005895615597588687797082687633892343409937421104967738224291171209460786091014563424781503963352445451026630461783309763570921260331350134347442582397228915682455853963518528164609900176585732690007773903441774985850366267107289728566287785041250334722725982045157553224381895203080559572514929698236420449058047474874532598223023013247406855901133049920143009386273691589913929873425356970805546388411237945076398179202731473980111771295532708471581118691326747940925357288777069299218598640684732208604177467254838869578923609574602707559706889617184603567491130313262823413028098365090748418114461763211219786269826840802655887073173810968996875597586562115059420028681093766336968322132892557557873112803319050950712378720398781106375533119748032834195260039705545651466998402039473756640139212988563729932864953510092446447578716901585909143533644692570551324556274373282149581684255245857975261521264172462571833514931703376494978107398432985786052509081597818043553862619245588450495051655334667210745901524419285664253480706430272965816226797042098580107671853764372987217044676036859229334721700776174259082396875359613672501969016976923017616770780551237375790864520810832766114238224866032671033456197165017549696152802364096945710378136991777354011753281399527805869380186384447012254845525656195636386758896238619729885680870047370145819388656860988634175503024636581266582624788349059318981804841970474648122716511678159261737083740780587831536157672260712211972695928154666496860580394921603344481130775228368895062704057472345423117354642442813649055983677249234488748922167239569541904414138370981553167189910193717415326248025102748967994361674779553928521457420677701661581134881770071685502024367957978941709100966918452104436340144010263663669169388018554899229651278279920685982937918016853543342349608872444731609521443838608053662185843913609166750675223483015752269587740893055803501182339939550618651017529806601960368333578885395418462651777634970288392436668460206501048732911728198523297225858302120538389419692719457282043810165558467240621985166561693392179766426490876487335312553213577169648880170563608045014632888375443201753245494849248815328367767516764052001488107583250782239628864624850474110760991244272506632899663355073548042810726637702106723407370497532811499106112527724732397795961175937199124454163889280441084221840787874992655150680467879478255871123864385440243057827153589886294957910699143586941123021403875552884222359321666808714163299499674195879983780601874293120833184292630432892216754131437546182783756231804393480554611993337216472381452530250410966046441092113519127694956527199578337728252407529737351264960083308851558272220029228457657068501676287080226691543086951889858700099385681820809985300237595550190217675683917199125621435498141371590527936353073298650033431014176081136149174822790033049751802983098946597357770350669423472016061530188761895213643882626050877651656693455335663820243041882886800437091260255587156956155114695958120920580990783341344874315793334843777505681271372662351973183286731501520952918205488921064954986132430081191398267410293346574900158540282851131741445651873270947805712923822120845920871454364974529383187920627912805235891398253705313237614333426641159234956700827734888949738743171146122027711037142306094861880197259122190206631074801270346787073047251010567224410574205903165190144171575837445301229285895387575144240704545530474785701519944732855876696912866522485022262608935599245091798896344631909657211099859226523668565584267277191774428514383050668881112070238256048361813708245877972184087212918501726479659102561259464860805099212326604951552698007347325549572259204595679934391501998719798311989672669780861925644936269812505497651508689301285250510101547406614787190301812102391803204593306923253087626478560083423275130999976968262227746245548604035702437170757516447714006730711870363313186911960646913255930529630084018576893622344038555458640067125649387913717886396361350025515836539925832335656450906566517605592268841271004098422642906593814016472415345783965875660628995732794552682880507601226262604614381446810599339781219781135542945722445836447759001815760587377108535087206178432276725176994601954366839020374789424178634724517041291348497895505260747983325312943305088063782688520857283751631426773706386566615073413330961527061140311250525378033707006520977708392958043750060937055288592611280568403567477304759781819635296715635514848843686453412813529867750794152894440730840705985658438658463567483718550067492245995562116576418285127091431299409219704738050088798624884205193238127326410756614873015985973531834257334535974629971389643322836517972233732987225809981692808712646706236112206775947760383058082893483732615627561226624949750708834083495682471178031441990644688849726097980063731925130749819353391252686288600998958171279411586350533298730120342873535597601556865423662349747532776987497388879568158924545407049234344787214955101670282803128484282216305639915044745418122404489081646900703631487552153552189999857946205415848950524924367102223506448163066437478715768053220653116188944593487810270008673439489597963572065956842380647183511683701288955925620368322352329472593283796391380934790392674395735008779075302824605187064414172792608294262825797368586740923736822532473291444429855929579165314099910179559483798801378504551270139681263696165088580731371123190666331996808455545436914365091760145577445518385060380698605938829526601882867038079932639355464515919851368454289359630058891031153182589511677662172652390652202303909303789452377704960356549797813957471668034744212756452051713821507368910127063514399564285129856190124447229914553231310550417080871310215669204658097112715122365903031859778677357282003975292506919482432855800649732296002990728665124997201791225837264684064528675776599776234811303080389219992070696848641995935581770638259957945190084214887406617671752850903993781040515045472864684418775102909084958774564920481131768078053989084669545396571860544657200931028808105491060502767803275933349605916373300336708046137393432040518827313670398328882648848077443902644736842246624702398808614336301282194306081261794442572914255895008491269104240592171047009483705320073654058842702953512126603262607242617226494316629061983108825133814089840026329666267019235216135432582524174567010588272488110139529671229510356587440561884207442570788641253010136965072052510146051869061463682756408065039697917173001623394309158528954308603811727547529632245505396602303484188118540493896839354222120921598071414506139347129144383915844058070002312023168794546430469598719430216225582936233768688543605694630158949054414205477855439285380300479540158575022029033596299563526582605711298239870167297178296005728095394287700537190659414449496922160287045065413808778473819053660379925701630040942607332240462376214538153044467826219884365024856034737683647012117939903130741179361024434697764963852873637877174269100906587543000039467312646843604637797723885144740633810317967279899423713956175631015786888704333331845700622099856134934590487410653259141066316535722046353824396220699781094186366543784609825068938063156597332814167957597878626918362207513268426503107827038267654196081199487411899383452709020445869555561932530902921045212939258677448951355030083086332409878825890056756383221811222690455713836355760928046931820634720762763432001145068712844696097317515631924240563814012937751904430506679116204136559514373970251043617378317189623240693347040086158003134541991692711432021786026174505805242302935927923107708825572582602926588362364429180889998099011914169692398547232784868275585695796078952915458501609338186055219155392680137907661179194383498362517177037858201332824075774644744258441303768974698579328888461019296270639277695267252458332933032489737521104357878989867517589772501085332239606804934494782176241395293498969106725356107157944909860453809465204229825063218195774578479675787098349200180833162764121824759175276769317518896007995300544381361016577397493316031899735609825567165351646311062611310203592184793502722413107597528218740890673022980592332994338149742325857619612030819901165499894954710929467547436409303286588612341318685261693418160660639832797777581478902217052058096701607577398769280029981423161207919245798164619274359535785841409365205605250458927037749941792935711282320200583787531718665121705786239716034929563181767305707545538702861458940726960860306004674637025875023073145670003583901592562351865716223652418299551083410755225817374793476401401519276448650919665017886146457151616414753760292930673512868076025893805584045247914169129315168627806119051285059563578073882831827162147352088999671858897494635935859629574568577071088784887275431428349848818945835516082584234648265466255530767418320401702649474008162189862827209987582580457104742450063516548900439671079838902373652849153762864969627876454684443317061047531131098756135011705505426710737551377744224470448477361168539419126215567469335360461404499225667547429859284577778279696196263309378465331238746776516953098173724108852198426442329443815979800965449044074046344502256141465458226210303733176184820663768231215896997157320633634265667072191679197132980498519581163810079874351127354977542865439576767905266250225337005775807004799989701345013919129951513484443365153668261618782471163811424344792021040219219200675118181519809491985804791802766049164677022070369036403798033935869533827209175808184042432692120526661069274411844510936037694843507562347157360528895073321479674540104874469613322059611008373864481780336221704881144767259040323899638644430594196563230040581192333650546885303934258292570024473419084075982309434504608793355488725251906504800661526159914684052648398439592618492258208215474821742595419816517435512827267698361237578879962288637515215862986043049386228257757354368394092365349692852359150779061066630026926335489124212045757893512352576292896921427376540773272094762397481908845928880988709436486384254394010786091940858909291924455478783618361560900204477190995629289336971734409152391176589591067740009830853205359867311259232442862109370361530131894173140974281606644976721540168662457223751973656928252135153348863867505612347477147151772971772203084250212673572384271600560789834803665803103656234692174366647187053611167783162911614178151759407462755148166371306566955041774704875237798982510117847644955975167521319931538367835939141452720545899778923411310858646027607221683461078717455278038434380700252087340038478908750581577391001858910683865120239818501110035717411134718911674573300832843883187132325393877069466440839565532712050467348563950641285490772898959696235524109775524156722493467952836739729436589875325439614511870644944867089615887589309572887419794942898006341925575816352536703982297316801018875656595400763150664035058224639272821081303988644519981901545635712483849479368172374321935779539363323895884348215799436323893513705267821908260247287077316615497418417802813266592481681764608922117406095977772777115281739716241011186017893222703566593790780752395727508570647747624813041866473221071413147331855224116576955723106993210287164600565480276331949192506661921129531513652562969263314484783413829997508661119821137230139553637900096769797672716533164265197188251025601622434881979585399343985189163078004509365893138501954986929577474130002432393754871724061030614514194199834631964580765757499684240502402029936193151878151975193552437826997980973237738825459837365961101655816966459140564663864881656840162781687618947156751538767182224427608674170132237074351095122045490307336162589085961850360900673405240245205843531919992180308524803881618299800362399334890416979705743539083068715152326427756699355080425326437619376441785942867205739334773932145548814812698113613118004411966499561561334760042189773583905808422649451853949063976127440366658813415329115996776878178373566760203266939714088898108476087329922847148859667541902595778240679360309159026217162864748123244572587458285073409286129036779737384040394472508656665717595513729491856362862625016009047346046669459438438945413954007036298662307267615515480873365691039115173238974624883392836093889149566464494460588448590592936670487405785203437124843387696049612621744732402591688987051794328729247049478887466129257365919901915629796210743253743466476462130200663285627512706786167412430271010993753164761240469390547324909061350435194524103603369405094724784619582234797266781583149764385397496821378152147484045090763011296791456670500042711285213760491557074394486576233042433214049380399129893910408138969885126008876831871578930450232074581688854806132635960876611868650690045362520597935127272031639203912968660919943096785326590837684236506716285661415150453386788980769728618429479274731590310579526060212555819670516877762481238431904549097025474970821204034988707977451535066126279261306242566263981931141353910618472937297408860880176439998073934215315901628894627528467451757234412035081404519204094366270113295326003582784207970327452448188029734632652038687698507323681037297787492796903807412631720752485431957131190872163674179116146340621271086380144022628766172191415314267340251419172277780697022891435188830369059845755129641802325607396159292111561791663604187732409497160619977102628863745908657867088082527671099420319511776160137933265920329005029776869378572861741892824676108183448675568044964511457107480276903286219787931714961065169639626023865848251424014356395027639641802857297965539276178977645802939451794819987289704339388249135613561298572052425406690543397512331939093479903076247951547265894498685586168549582768638336252478786434042688365129742243808144024449189784307963911063020476281311887714940339751876539923963991870363485555961979549157983024143171817930978818559080538960509164659604708998447004011629575011803800071824961834489976491554264672741586221452465668245898371410000281131163373592812668337065734392141351671382994674371003908330498457324498444260140201658912603086208157671193150030931885696035423357568297046125020163837015960416573456788592751851196656235531021789254562821149555871925852794210693483114449278388718602044538239054565540838887200835548702804680948593864377787818464472147027395167603141034728682583282788218019983756126902314389007590978688867189611825563805651594403705050536722051260574560789612177202017676207350486374771159594367908390330075153733187266556858566762248440781296902718597851306267275387113061686271016178149697465966249443255181295055492131225066693948617092185170417524982884626318406064682908820414227867705246030388723357553404388312562912542562046868347467379462122123973094346735032946908345982621810900533721336499224889443532879002820446054011010466037485212667592273092148127965694987077091949980635428274375475953825570219003827004695825288979944888346426167662438514511163198332066693295583963713877855310113177053945540282463533207124252953354731446892301961018198605550161226599768858419040062559139404025600836465613043496855474675913470124730819314435614899099601316399435047837027473939451359427419723653884825016097065295071602977162032961214053035467907480052520319774973615697786332919247436468638761244567763868005710275232233646529134031129002656981157359105399051039238980321292748065256109676158454920871681009866947652708263487612371642898891158956217663918035662971807084776329451167536494899001372341242627341942580969406717500523521537306873700388168679045161245539536436630565857881252629250927708443670675137047499596389794413548948206070034614025190742332463604103601818967806345880571492969294961468341202028613020301077042648129889969983420974878235297680313273613796715194323300119286028543139949094965592159933840085336474880596811770965460865484338520439793940542154064647193955531987867716885630862444387331929574159631718341423400034552816161556047759491295838454521708426122962247821103958251567731257099270173955270350377596835148011490609523299665274108074380231681348986803047672165945039769910460805405046851898676885698462972672320759200567884413977642749991946690149637054723778842483009165859524965438767088922765473607828317910624197177774543286550305579295168817905503564639546090770696005682081746022167323384734439981600825682200526715513103101673147178898813106118361306848950882185217383934594656888925504286891646866117534784125116942005361606111306732605783142524826383425989279460085818697256896710916270021075788429292527177936638776214972219680682947580937246954212128372208708540623525593668532494419549531766801748631952735624841172447202537469511871738839595244172739985974583875366198430229168583389508614824645138548017464528601690890457072533445406387231882313314076152766984074166860060244035167529865295318084252142266591596815052937950088527737579318452276559680292722786285125618416236343312088222564788198590370868687278696252145009744830140651594884483679164408526383409941385201945324579345490927586741196002161697710967035352490173282866897685174426902937720712144863762528596183232080179997979891997291061341843236929846134989201108820139136041966086602171117163264761036660977772846726798153430515952995931015578034723543897310978442709809361995506618105258671641918412010470434894342737686264469114168330854503310938330706421608138735731815235755493299350654681317137671625090183367234402697666794212969925048871807091027913499895704614757564953448597152669415665742865320401989515053583057274107669957807594306957061450461363658439289277167704252945570399104150749430655440566995609567824163249758712348064167548962044342688543112101019911134240237241980429612895412703045879111741613974513814309918491191642192769803591791156500906061460951578819779390181984727139822888384013812217612330629872911421942579061372262836597899169643684542755913818132351693196471810066549479500180341984911006497272630006935682749988147830131408393042320577527977946115104030154276164031760956259999654216814254144625624204755808342240971205052911715221894629193610363862907533762480861222474216820076999479122398844064896019922618647065008891141368437847165618599713858316193923865546290836026394908326103549123751177182283293194085436274499004620120457664903512672987245690320372813512370148607214290193488053728357366344115458500520883165048097424923739914445169792643630341805141696637528644520015663461542585049665319985072551132919840154751392888292081401185665084351521162904991104377482832768544666644992508929051050147207366464758138064281828848434055513038983980153412669181034095554093876107314954803588501078950343693881716680844741981359243505774356836147864344567692637907403944567372981084503466578473109537284281516678996988533356765716402258004431479296406926516308280709795125659547929459008609819193180897181448672504292092830851582736394363511331200500735071650494148511942163778416252030742870242960356829268106632900868293000401232635073076184875544350468153029770689106180285407577660871019060709784604590714510591085757712493799976141645503694763319266143732957769826027833522846501809898761544813164382256951332902101846279118008843098041980760453101092682099823440861748804310505272273247449557116269032773829202334584052780602617876036352216149830274689772728814501809291659475027571243407421997588878092901304085218926086771982189982619416184619241932659869862010200482004155904315577337560295238471764315848350354797609103435914503273578556801407255391128505081314797167931769768158193495412033547365734645329662662594720357355856757846840868629294977251341290467095893674825608100300584824357341541417822124025058430669565011495324212128823555435585613534080185399589728032229035179685058389447571546769347346663917023216480476788096240846849780076120126786801861020702755821152900461605026665899872699560905482772453143394879930650806559453907365273375725675803063670600520929236040605377479750050589579704109783660409648544819653706996670034732136401705000526258162864007171915976569746066301438972554705969510208565734418596031515877613773537835445569617117530256526353883952318919911287419747010081818025426429137205539331856101188311315867497566719576691954072231996145462686090937565676416864370624840696455270717366816392720429043167312835843892052032887992850609183308036797713895759021729538775083923176396054233226506312122872082301262947061478123724427853144065382959934804962244661470563664915631955950916491052851057263491866880904769761473565131652364136918604713363311621584105569487074451511666065918092687175994895708568509946136066347174750884098550023441257282486022577222905095285506319079798737814814714979980727197988530551562695245791718231654857209275008424053083516037041341095819533760712737678487005615628359037212790595983637735014128922811983467800573056968075090754058548670794100197465271137091228425105560534960911422695407035674907148748440537103650590286789924003548997590691670886054382015639891570257066237647742034656433617461149869819656947604052430670910263975497617787351636241736050371709109055209041434758151087677707861856549422419667394482295615997955651723715671968840435661500798067466118934185724571185286639903532281453189159800394424681739724774862371717278546562267462294876486807760044438286156463559161740960422966406746935212372702949549647005269728688090165982458182964597388070789852980268179707736789288043335877781785546813324048951650446509093110611113600706506003447940343240732115347351145010525202634078289032560120010913124852959414962153441404602474184869604382380023050308233827749018010412623211603060611116234977249537123586912301019282864637838631873979751211199026797361467759645463540658884409438532343207620634859513374527401814992430618111256409131217932590391039020525358915345966227326817341599253105847258985798694809248606047306152092985882619286929312721875817527653764006778760924572326618772861067124945417998685777257858835717644693269839831963844159031001089991777374073683969952035088349265156919863434928243780832121668808186209531550332646962342408913826582116027601773510742808477920685774762326495801009481036968648120255646853944366389700223640697738382570304465638304751165095638675042820069552897345227057988770729010877096087994685225073266200340593473512695242166702558537993760446184850785245025486723575246245040897278739930858232847971806679232029998367243737720873648724926690916673090229233677885267326881421250997464991112167843560547051673536973058542090625367679695178602656504568192433960244060271567230282570385231644296059844420542056527427226606104588268459271012394074011124537110075452421156949355341233156593145670785819780847210213561056212012767782768064308706690558108047071452087671210022224257598744024182873420735498165042083851813332480329449360305055898961610011293448087877558317381252319405036758187270989176632791561432987210874256769414572302450350170267844479856238018915535767147674251704723386801135644668152401762547486972216434465685688551949573247702243227256808796526261246242896774020724079580060811648455731989420674431701232811162911878555365069428391586329368321493224613631687774517252315814107572037656996412823094333550972273321966012660999994337613898738275148565742728356174921048805249577298931020137384600699686002388476285567091775682980420527389377266469507568737191972917071976487299955425751241934349156033193993329037390948839027377753780837485091898767353641369850083023928210801261899685779905871780789478638387302437405911351178542092522890362703466090470419497914448753224249935401697760354509050708005628327119253501504326849936380393555782017182361917981829970717650905733100109259176152879930098742556829023499789699025906061463499268126859274912314681246751360070278970417484069760291947199908758351121666338566687330914227583832483704681092797712394877036430862766607213880575276725437695126684290110757364222435998390103822313384833296458757322708179419705316515493385464768399909910128460939064112141303912344889828589643509974657068069622896344801341379682518121457365686457147863959542383091016715136067798110975764427668150871086106066915942849240045933386727537901947901013388616495325901424251836483791777218292925278437748899080293492884290666967033759651658642066215384558867120842191979313590684397900664202427243693500869757766643928148022471570973328912405585124076475673517407988121858623941171066060362094833062141119264301059927136966345648841523797489029103415165844553695211045077170506212314855859797496903095310360796031434694806136612682877713335298127147712140315825507478136391488379722414453015004221391876779011175740864590582068424474033272195939455792831762983566623156263311728734662254079231076301951759262574422580422229223439642170279421127454953057846413518385030399012043440338045839816954327040789268447984271494762611908900898834413688491063891792500145294239431979980761731933880427300155302045661979854207056122521690515566349689059751268895551372168036016343014674799513837199678045767093831138633606518931227161184260981142931174707645700283478846600293958310572464979909344427264206668419139093616052812235764448974969602448218006906122417514509550744637747833817697857861185311471545236357346108359675564931870126012937683141217469918113882516639043250928450989204645491204776346427402812289976878115422174063469758454819075763257860174939453716318092069152739853051865499971933808904187689053139537115591186728730582713170427673267610204491367934726135868215523905354256053452701901301362666958607810190217189403935148390907996568769815124965517378500091913032013226004650500878124164286668200291320228288441722480238840420332923867895356917690229351454496592637345283706578214851071973442962960001275995580724703370575788387602501687981486078558293890197957832508224805617073991620411483074806437977228909880534423362431407220317604320594348003894096632735634022706174265276818564740823405407829523698679580806629960096748057718956514976456232243790213280332664404699053981037526161278412987319040657242203358302038729151668168810771180416074505885541274612852776227507382525657479849336772004631428953335516306218718321741268664136266234357557851150302352068790269727799258815827988563189253056637209598283014734986378640016114071852490038787063561734992064354422442934949397057850352989407163786689607562508877221688271151628750347801934690266666276431534286224286472593205862486441119292909176210922203390370855458766557916304887914557739135072127121481185356643373427882566903807621696730984634909547112677025280675224875794337381662254426700857884795594744500917153401316413846823429000234242275730963472021228201286630666796016275023309486628892827975861043011614406143800958458707678453502284872035481902672478119607059203766363403508035140192564598243573305475673109276586721760293322679182198299358232954003613756487694224364114283990778923282713730005862020647417019113879813920118384906253354484113174068844525222771224242788054132026098782477195601546048199435378288895079375145270176482875771953023491634851537663233628332274103963088241854398570373920565556023430565282241939271225416999129900605514907430325085146559685256177705409932209709147471284451063597789496632102058176460266138764334987011800923098958172313238328219959748695566178494912426293641428913628949142194595856274837094899020446519176004184762783308763336336315839005562454743598824461308900421767648143028194493441579964849046253891940082771822182266505648948476060490867807049783518185996379012139339222453276070311683018190503965478005896480632141320273796429983526047572863403328056869340843676784954515939486408580461558397872595745997789213146138342708610523356428895599610773073051051181556622594744579472967146013470316691246071000697702304987680292991037547358788917666740366915451772980212812413817793338393492944081803325078673483682785708615142183187845496578041573803687987682999097479547343634493904444804654815944672984271966330042222991554717888685826176205958982359164111847078416967492426980357277552883488841288668378080123195342252113038262993070438354001068937703357464780952133030933905009029496981752218971624850357333274762798565826677440802361799599022510788347320595060459897597141536110446476336176320435494662227106187186660799688434225907345377266428030278192591936055561204742821912101890104532757276233597044804622785437254961089146517644163248543144435241302912983051910986267177665167443768842315959210166002145372137088672434284011634244572740123630627660915581417652904700163484098066159063960526903933930540593216889180756331399348399389195929553666179990255947296288511279379840668395265784816662358434907476036110263267096611859102757887758117220772448893686588903408062965152749492289319125240929767159814106158151872091363619627044125854253838322801233772327328194180673762495915284134573249484847925168159765668394011782974838605306949823289034940328748927905730624131693035642006615698932498804480031771101672141357670854328059370826022157755317025205973920983311337251513183557285180951712430441246246779504394491653808355194120558749866296462298777838050986434337133844933825533842253942133408404630852355908477283914684525537433920836780073246049501403189779975506120338454102720064338603661290391656133304339645653835303709404772131869511053461685175915824979078786331756277357609527337213731515840070400346754173852059867648460567759339874297508558041675887667777787026305258221955859010395066971828187413727711636012435303954902682486505821762376745888710419643491563627496667527862394648239042044161220265463255454222810716445779604198675945290359017768238964728710857891050369542422286040514806928824267109137266506784402834625872593569507035849898374778491033207242540156555246496271511897601588360663023848143324090716978901955257613769745815434128969870865699433620434009114953035712636492260135397679503326180159626741006420423977319081983867335771464237667339700809588904438587536448062352150125700688877102933317380968520820770318243106705888185739262197225015346760250185584571246082635319937858307307097233523639430883524478207098670485611171030741981871924253827993346184523897753613567910390458831176357705435135718683282027146903167383095713272105784372774943599280679745762348816238664778397967234334840202163959275243000954867924952973819948326933937817187051388447064964940392332203638661574208859002560816767415141688090354182287240703296415770555017475432131011092109998371243856270710268240199667888688826973478756320062544472175757301733706779871529948772356644599273309098266078649505474410488175239644114588658350137616606400017162373952506260677714189933968746247459694480481703456697727305637651733546612209844197142538096155060476313003594623930684124003560709225957887877199056184454599429735743199707888336480612220904194732701466593904089623846137894003238771256258703302296770673379908868699398012386257728952096322619954297826523107847750014819125181673762693468158124992172649817542899879372458617440801424145468531607947167749056853201018008230220806903681669885785284577443223119157742988438852298068154684810634681877653748408931879152978338302392831556196861544212645201036084888941142847646941775254300640104354168584594044363520688373729243323126553897685877994113043728919952803629663959717496201819984951189684611225303287896157880824773784777832735993789405689321502574193851384675819756442509900201633190492166114242427871840340653528891268166385988890242779431560734184421664102582716756534534613796430126096092363263844458401127423250967198005811030619112400300989791491202538457470902171163813248578330274392865088778279630896372171733363408733959313890520392351147564897878266674331939495022478176984724856910711016015035809142377154607939819182234984734447243215057794114427007450708408700395510923944606820705890152879360078145488302147133509063799909907373252586595033983617791313397609665106012111320921140367192633602382384153342340430440658899455834930363394599771421223156158508248640803760378061617050586717333773829835700082120886081473777886702998640449300424685357720357355439803319773232724645475037691331849399262686481722174497151459670209303885958118668942608650788162093222311316488992757614992585008255491348471526992811165864414907306285745747604379659428952781549312815627861352395970864050009466976467529326135169365814608166999202420839789532506313398636335717993870945862808324966233803412253983128997958750140055015849459152114147739877871441855075562903453705820891282538963094214844323993775793874357483452042319788984000723990637514555520396366576037764089776939309369087315606590258932454789361433054096294765608178594044249519418643701502517099816685269008185839818758164729143972867194362608118108339479135789842063401964366197203652597416351026794919806319602523317209576391087623253244991890478622257366172024888530991171020214919489384873513526736172759470382168602535053768989393849953791737816181357006894426490367741580888259736816489565904885217692601501056289331323959604403181917705072112840594170967002321551438075144763159393131193559149195192554895618177291104018534723921155125509624551386003493493143120884047586004553719210790065229180062045596513022793625518605871904554412547606806122380091456044500798294709072116969475178261607902987249294574363979733283695546077101241181455955751239567288657960330727507004238263176882143408175349706955810692747971806823306882633854647435118187077404822926815795934851909213648537586336813245142739783628452281778126599700878185903576038663120578719464281232928015627616046332834046980368758276723856714798048096759834044573950015161062045757406584551413764895290117952660377761593391742479341714436761356694921652546884782522789342101779721569850930022654613304857646427283619682032867297627612862597537995705899130456225544422411655196177116120798954892494463060027580622172115809751788097228638207262504924883309967025131801666341880914807664488891202058826037602665845292730132638009445328147353470302546809948751443411029075455240273788400934706538041905274911097267758838682967398126177870704988180446896055074288847802074299486854492048672648655653643224707868477689130190582614151409836610752280554501281928182757793281741862947144227333015014825250481277832178742637016375856569257429257132014216495932706448566439143496712808754294222968528537598480063505957516740817403254633949647425560275104582454978021224708319754121193062701728671875551982980470965397306991669536971561526946388925355102263772223194253426808041245554397829587059033290650281229319222002328898007473608336893642665397871248796921143013669471184485805748999501077367108852429121271682794719243565298217115602694730859331738390896940167632157307020913210029809910232438545584164172960989034924575930744120601918137084682300732839987347145962779092787597016848624125703581422862430750610602697560833734564868807236183696262111855572095659434453341382025993689525037931460793307149914815093186356793838646197617858521149068765496352586841925776634195126202821642541622918027021366898393657630605604205706048152081698328128996369832747362418926361498433435589125656684637424613169009110023499644140978056596696819720235415121855637716804721605147998832005227551268384977310403476285120747929388662313024555848104158053942495051317170413473657797498318868521386427193634822537430955195266629605868601255731618806845482909940103259149936676002149079877586995832037645169406056081511860015910541317069168590277545239706221710230395989536414151731714813476415538001463187736959090479570204106294028484751952520726447551756543073641481893925708086956526963899915095430154870281808894407992570938146049133938152240559671690991623297516675581201946449720576452625323127776621927405369203505639103472769555973389945452380453961777991379828687604497543655847758991759719166595840938956008174736582448297879458882394748744964214947429182401394334356219014722784382304655203688925653067755207915197053583704659295962086712113428776483808416194186770940329555152649870257548217357627755404120128641007069297532163240252103767025705988064399966613345929938557388174578444321727518238123918070434585662680373423684140431261733773589171366110702265351424075269682878693060869812617817980871329912162866741160821322440009537432308901439863946616479093447463603682954273468126878387689837328578400001890801624618071958857287797706070503796613666362826397508675329553427491520975086353820626203039943471768593468303630001122811501419015687680143638599020807315147911958941489408973610512369146943796976908118235188670356862762272047320970361870511014657018416286199027075915566611334993185382171885841646216455009755412136625491594625094504305472301405558513536146497291945282283626854860595458936513763976993707459000775096149955331495521952961569143174063127394953668389650903911878862035044995230587751392094890077671010573839984123865607967833861970737817176118066565297765503033989494010763363294649110875971103671828833192860476634889767327666345672379800781890360896064358813775707508150257059955489479435609769942505340092131609554701030443297783451025214878017184712531642251524275594001373374002892398201191592155789202642827499488290222586070133042687987716349791944113081920548381680540992320289262765209027089379277749394660105775210941901244278321869810322626596498580779779247748066120239266201436930104980845924975338225540429464369845563911253302468150620920932872006303364359453908168994603063856415227136222115100018327089056760248856577325838647321572740025727801882685451646967124095701438648891980741325023582817552524004129969272758703331898390065116285855005303556136514917606322503068344750497977946129122237168064716879612538665728040072859161075095527721060722832961456576081570683370476752723182985528835914522729784831894966871698631642133208218379124924746433254508469730270970295176784282737729295449985001643604802291798100761420418302299109738530631485658764158755147612716660780928000570755836779478001396936712308110242205867992594390229208861941651707438092741555378286847703674421294723179665025532391710960506732858038112934086304873501867677762901964663716445898207042825290139444388584321666799288137020364114611370055942982524983267744424190479737615156254913933228745465485295005684944651692006125835310619736968998723721705645291660726616764606921134481717708410404695345995997538671918689282757101485987887309453462080004707581689849197131747782671346106962463997835872200393665448520170960860092494016624292159724522147187210849201697514081261380695563593245102236525881938568218017197962809767547847163168872258931855724300267431146820451367487532855729554780440172568354932378903722898273478381224587364016200865356564501094684436351281608386907504615325196740013752768596394379138948548256424778327783432295228059006947047879215598362204014704634335063900219326735610300575171252072359439946080599120054054082264142897033676923667242298351053864156961355746814334393114912511018160988176141141918324272762697760492216897338683675319431023284401343058606405721037080370971198142625237309952092823401069404661296994144463582239096282798523723955908625315381544182210350734776351593633875984146387031050575232114227402038409874799402585731939441777141504717719822526985151191915186510903058479380208162749244278254802910057924189984680735761411260794473779188734659588409813679632773340265763082360628511388094564157299820183812062625640376179914290955514143969850617585307893081782075553085814363108354449532842195462989479981621291620528895358696558865359566677173121338709071722632275745697446872227080226543634946784641820370639124352546173885879731509656272959712863412282968544143311988440941566443593070500276098581778265262409309813471748889164194519671330968386987212914044308050145467080326321574412805754565821705691012916133147242587174688200932950751288319155885242392698607748762824991989428858648296782576534285208508313211132265814038673438547556109696556437800013639886998190868685112700862156280549088064779344666995040537959779615852356556852093710537093040795328040147981215715718436273847342105413211433711300380360979554153334923635932716274152809484128249439911272172134632691510944061321734052957578180460085474031239539378416934806151658523352615499937087376831404930482633121339287735840981365145386029827334129914340461911901024063378865891631229069862379509253732729228649982614688283522435776446325129165358156251757862771917640278322448212937824411561857914808628080288591909149552630669779670714854014422676281492624817791773347782198885315819616814139142465218952011054561528507540634421048909453067372173647834098567615564378490608592426534374171928016534586349916285309356840738025770234601352444766918209024847080983403031453474964275360057719902924337342081539252352374858249574743878439028827854505938251891040436876424865339024428625246827326922727029358639549706468251599234062425568522026053334912196118567166191208564759335481509548294977880252673865725896209196877287919519206153190668597304371990119134301368582116164071238104158373273698221033829354144208916092543726239157642553875874239069718772099274727989407301274819783349983731578626875197758014820916339655243576099880395489810210468678971271411273014127886186110328956088787782542247005335308155172132224872279795317219681449107850083675418058993961279787084790510397724442375949070842525459402414277304389376361799835981229798971402551200882994852330775299902778102535083594521472076246208888001491462624032229807105855549205232151812873294054251251392490280226794814314711884572628320524774044811746462274563782185008937537255832559417450736911077560904833870984156202205919754519022411252703124528109552270281418061792289883026342906367852052477410967772493694418526832201187993588900260937311658908902973447169134898289068524566870458358808975525944672481638852721268994804685712650285387365412990036364674184911980560886365296661409973073005364453382696482667310708093158674138030458545752452881460758364467655242231674149935056884582106245883015459252005871716489078664751716106791277744298039317382916306183945074595753135849858330816665574716452756255066116911707273214797681489595053773176292653459204792985502351766854524190584110662517867954721471812681908068771075164488696380759363951974680882787278745960767296787998405530922125883103197704336071379358264113292328875782079848750061862083664567313369482188896362437327515783718894944417936630744024808766618770022596906573819802508783591597344061744161559482154024019585368171354822952916882899207955980437328445675062947594929554718523120369096172775938805488951342255677354764157572800623353515939578855175593642987020475805288961906890084151077211629264869874677077079670487340659930218537110574806776299773712164954552948338084481393927909390700736695678926956989884526322037570851270804597253878470382361821397390827149350803829872148202504843949455595178243423871879629194661027443337528853319662616763341595084777285060371340511382580454535401298966913817208284893006423980687136657821746141317195839271092243736279103602856365770884012391018735456369709617404791343366195032296042683731459703944656943078585806886221981786346737576752494777500439661702037960556686432449546305513317644936360452027174063151870232694659201764448278967550957035824819496991541647389398377837609891654868274956677504267208451602043007678645040347475244021326495285921879087388723282850248429722386662331934400368850181967602556120610162388894181806912306331709168228817698964060642502374525894027731633878713941114562258832367629896791464775710304742254196967864872803159674016477942244435942365929919459221727559506186392245096055253144790152557031492183053763404402312253285075278109761885219183198966618808887122768387112054608678768925970882558912103698417036135054643487988083888830811931987663400434940943908090948240108804317720610376941866278578870497320985151714169299884533312775193137189824311357996079347638842580493114825091938452014656964284592762544440074301446220873450796546085768477816762873876983305835969677949157887062172822110258960827871665107332435305943141761295048601521000242055440896247015625360375538576699384757092363024056116576873463981171045826040120604320066098574280460253377969080600541539860286466060229804153024907793737558119734294966210348823636381931319236681796973743088853756401668912884679427571284299460896632797592395646988808606477398900168099237326712195468153309283396968622323259719642709106383267600075528993603211663640646563190949528747009825330074001458985911218094090084215020997190637730777317655336677858562367934477537761108941584690424028906692789937422531747059651118114735108569384105425370713899426584180464738147827961705399738041010418642873638649817741896935521117920575828420890919158744823660430131952051922068132462241595996612160893416142827822225917761049121584356524283260026255215269030647976565482668365583559901035726163093084601146316810455243504253786977804407509305814916133439482384698764439155011074913672684040643946056848627594848865043348086242218545769566393481211788184795855054116525151145976684533845005610219118626833318857732955603620516352568607607203212979129779212782949894201299479430927551023793291228309407321709310729744833170860277036786003878608122955668638523295472411780825035102340334634221640541969559321440805675809550739052838889728873129711046116479635193741983128499136901714096392320850021008871878782686607264544120276143538080166473122216619662471700229630084645966415892474356297307888160985053274528454709059316586743844788589135604261368875185241001293710818604577072877836976146082465983796092572682571212701083965950741898621491091120467959307125599069329974896759933075136130197859528399821032789838898942918282787330255759083296308427294375492823590466554718182070686235450037576345055926392353136227734487883425880197968724964580715243836140215626689890356257641994825351735692731787955070908224077273683266088770969929415222129500754225595520196397376128711120350874197202219339972898347182529133852943710784942478975925986674795519865791776923872207061203854827799220002731071481587025673171157295428538897383456449185261965995740645998381883933337208544831261697286705762788319743589930141861390497456128215194033199033043227680164594271398400517203027330199989745751771875746923631074484366641461367392600817337557186355269145046170993619275923978517557033978499238805736527764808223598751350578768600542740715734109289478721947684238634444534186309551054789675089771110508623477944607368702718350462341029263625604174009951711709925458599676721979339864678144858964128741679278042378475835035277059534206432979946572049673263905615079738430627309996957268756578852754574237117388019331316513121732866339484049029408314753504294707336650110236739890236826188545648848849322573627653798558525074516293379650126630556795805012408332859711254983005278631678002996527844384875169577797989545684782418353676286591736779536525826437914953580875190324156230094159938075240518097780913666775091792522127330303302678914027669991141545104636264168571577288164817831721817135608603201854382781529775310355554183250091602402884899309727300419490815442605221552310323618822779430160110726419490819564470836024817581170784853694295503091871635779149582235605843511885806955705222762740188160430083131328400222263680373023216038257667332485408863021901009697301354403335096089841943398224018221015284038392363736302000952669273198241230367215667608516043277582244892629540978825847426349958059231500548442340280317407980022606960381622096760970151579915963713670124758468308802004821088556805643760319148462206041816920018484560187765832436920274346524377285650275199768947071801227794969493582318537104197948413666983889281870093965816213671175766658131466582875121938231775513541033344564716802153752819236960775717150510282299651254562164145881462359489325901036814106466814598599260843869990768141202660323846346755125346474087313059020107332486653421458603394983938835280885200744300306939513083845124714189296182220940029237839202075285885624465644916636727931495385874779728474343630435721481176920676558597902456232189880337573361609671381428212496021162933986963527810474320124680000210217552472026155046422915618474823705199717901544168650855949086088815342615348063249563139484089751165703954854477869412585961649135605621047641130334282397529669424229584453143057230677505585717493724519999273993287771137755878056317084449644525257329636884428462650718645783263824033914658959295831674806763260693524444695251048803092620574223336721225660245559526695686432440541017433242080820144816446141137967153911822494588382958511770915881262244375192343541878845308222946271540489602162576922905847419349958808985002474078968071149044557080006603523570986572914223084924584785706743171837061834073694973806950327551704480231202094216109083666181487184194028872479422153562813141455916959215294255645297538010282652306182458556813534684761006909731733550300380078616424984178399970306782131412254997573016973816644523978547743631459731836481909709596672765722257289600925982830159301189199983110348038375995101802120678696493904656240024288270506929985447635633133969380342892310422056270954496935489561839231629287175194745493330275943037776321063548218202029977323372736878233404016119569912025699540198071321601859196285771668621888729094145734297750444991666580103846897112160777626502974914494469587758832578209716895151049519932146336581220732089529380141224591524874790952192460092229063079223279530109576422643153778763353582194214763403722026545748866615322393453330825272707437062000986375476529820822292752225578628623775840428210123783017259270349938949244559931068065147723333659701108014619234013811433573684660823451855861620926603157880025397153180623967169704377859758203689811045488104909412795201409338495338398986137001096453250576512423145909866408221337923633045665963510346062567257854771648234211019298644939820298615408500516300927041401515179798761256914134775245397187208084327360971894515485569723033041781420352564285954569744368546541402414510957750165040313706963135143462348001378928936696036441228268281250481028036411204279100347578952202089740071012711010406525970523404159896354073215929095062989152513036456839277483439840523557546102854877878407993967182668434466982546074118533915985172445576880690493981222942839358213182693592981969791630492805338646606965968491836554476663724947122237589039811341980665913587321490575155199935482573668322763907973422854500749966354311274569165610915343984959937368579152702242782505537685092246807885557610186443262021853005365135454701566208268897307919571627740003369143073139962503949078907774810478138402793262525167514521260144580895931669156801241501719122107986219928667282099387250033826683005086179756263719636050819388160643945296505881199979688811676954056601901658580942295830941800668766771410745322090363803150811596805080971148064911657543489171833156467887100616617201532408457983874618964175785118308907234290984097577191559278426974740142410661193213372646737326635790276974661277527915130032834820189859784966055464634990227218640316957618274786332412523172620291659733961746887734819756820206613370619164767468122892246913229402189934316422222158457514712004259148016936316046541580827920123742852478685946691188478375244677841613811485738699087427794414624959734930597061027768385588848487311704548491246713695432082208802061294801734167051364953463158010192750942671356603055657557434567121777590208889429138275766042767033532758345906545498602634520849854994112332083190819614818354652406408991756983212372336828699061882232751417476807829871828066403554237433533913354449727454167663448120273808018653534198900953455543101950833095889579496030581163194419874270318917199551220479889632576833238871168334548758069563041953217569180335814106252956624799078446570605577443333937290454611346531608838148530452202627188165442796173722577971630779804617829242475065718557027107942935840545497573924515481010829302743690993272977261747603727273889192260701221253619293310010245810668155219585137460967483272835426602864999519419091614579048772201319769483891882463430525777807186438346621341355456391923816192326876958645382890191249123215149596704513176957338156752215259871568209338245796311877962551684026047683757315498277757005332908425425211442161088946643042284773871985748406320300877590988298692430591277759807429749776120383940943060642850650181538018450529717182235531366304310080438844701669138118053623272258385488444558417667166532694071793077695756396523481112225765938542936022776592508972722426921855081127608961451300391117612882446590673308197881953402473266911867339352242547167638887061959875835918272335356212668658491310526398395145475836273693039865799905192621128333281686116337771115565145326278454266861113440506598684228819305421337579411502860104017490395133192188102610037117497143138233028606009358269085280584177880027449937509821406145225069872959351272509580532094825543748658746053390544249524382074906787811800608473584066421680945675775056276367480030904487630745083065108011595075397914124455212002551368215014426362402475034618829104227070981327565928868943355174899025213717931987385231160922948728802493253641532214208963862549390338464939486118429645677000517256725633877976780537687966319938714456228590655787647632062767057021612796245871914254899613891274060785031029805448228049478366927190950075376883952286798802471199686245047449787455656097234724616122884153037619738912459333145289850996739456310987537628511240119151948838845634949033780016069801417065312321317795788896452487939438300364361232411815706009530333791116973347888137920383296431944058825860756912049789579422184357453692371906264693083751419828234965016136939854558718765765470431210103097027662360336168289733449667610441197838545260953847857037822758417070809252460457524795007296036571136342592232178999701191234773315677082744136662182515174138461425185523974609906666589584583052766871611608634988721685028848482678416520440960963746833000135566623607150301131980426907521798105893616691859716850127056516810553183665025059900348186789784802986896457289975352036799568069348498979611224726724220530721009129115969726013442557544891293798418809630696122059202325745819986828164102220864417279882703581104274986559599758977414464467482490527006140128802438975585278825619977417006603420092959199067246211994329679307815091718223740629054360099134030872042054122672823327437116421570692234357813332381888654806691361233148556624579342329689241075893252337563406865060013880000092948714634716322062288502975044202168562515860936641087679675174380001899204277329823691231395493400814982679970015170845359630440732269393900160772908597484304556764721744381546091569500232235500697146678616111937391364998600824676593188108219111277975293714208482340312854467372266874280955674443952935033421828611006423134986454630247406805728204450577544402721678317841048571464695297891672435483539306455303683071140739712592894257313087610828722312313756838508423588631245086906093848281503201130173606599485755916307012840144510414377149070591483434843743534645021237073992476757790379778046335881771780273566302098120425105702085822500021844909572570421062739373055996316269403098783150624394101669931949826276033243687583996143942028522178573335080132038128853222722551690736744211058072931742469717766042755400204030937583248623117048642188254107454085516793837321315161402091406384777963983033939981311989312923063666120516578673114653316969569494693387091247776548986154720919755012059499295301656909261047600528396086521743139159380730014747334136698307908447920901112121814139262503275634068167646194832209021812184014357060661286902169458960468996864671871858654191001661492578630522634540769559115308908916476804243336447241608625418289979134876612311095843584630882731855083802289227533806916162773299781772126588385754962212582992781043652628107597927877348001105198774476240678846605663595218647201596663843582107375966693970710381623158278384658884728369587082494517300794482667672040101467076016607813258837697744134876530704246449689695083691727225827775279358613308303150482589668034736105258306098137467116369514385806541893376210668061831940350904810817328218125164464381578099613042165992439237191932768991660128639666612558417850634215404228767593050134122280766714312830769068018940809034357973238855694611721024543630691484472235243968049020607768807215824298416377453882891050944880733330494796656790225813369565800690119060701368098326227341913463017243782058570864709544875633341644103683827906646635541800506619205074709952264083781015412639096369747555493472269187897113826768610498945047363406798656731718722224060562158781940786455798804167569625347052057253375331029509241190452229634457541029877890586981758629467591264108486763893001510628213638944146425597674692915887853967558841961614522815057615529725255594797421071141924428017031552682953658429283999099922780348636557028489768123134236453418598895419898091043103845519255734981902626002161738737829444460612730864122523861302210095801022289135302263024472908722988659855143951978666361254830778417391925016227708672404541315735868596198901635567214961384831838628393053443711284420786277240825799987569728805795112624846220809538762830249338526030547727313174402812712508630072560167914288391805100168532643619258878696179597778621724389553963285306101325942597058304320270955873931780238408502401511879931000112325337773854987619015366886396239621603253001723330051803951426433092634042354398054451157405345551355252621378129321666631247496823510041818212272655905470197142040429345483069071141857488675038671644918100497709816297304172308099903419067293788703146172784221367639357399876488631439331796511942204699860801858078275557910266879723626139869924931681359760600367301568432935912087141603255809305292070641349979590731191657070862606902060987987134972879435326930190522718132825606777779303007823920333707769605618180089738244953333483799879415077050769223414993545611993972150905871027454164328724619291137779956699485243551012595334620721919196969088346023461066908518849401820370467853327843861522710597523459103632589300855822513662901920814935386916824141549863856510088630844435129136224683932694788545882451625040247681515554097253181089279994896464631408533031664468768091650615079278218869833794993366215672672913683570658821271558992298638957536091880987989080261544948950882763198946603474784318933572704771370969977750404053790990945011068943095895860568655491520361091060896607777045870344125772644176919109412081520443513346567908052616370649332958867288152024178197203561818960919503423350548990854270908351762774076932076700619736270997400648705489786836991570072395508850525671295260615196381962041295323374856105306459741813542067902689831414751029104003879723916608269941679126022716125412493633072128440135271206463338690789572366012044865103993991773407231704287460630005456406582801221408029250897905005234008557129113755858060093649230830963271373794908743825606615965402165721758530720047825437801325549523974644814965290123868368403332561265910922756213684718026509233963176162789607815932174891508456252828169420949939546874921906113443704851906412216555529477381642116297789396778244911735850205073315514180074594883398240487978456082711113969511379913182020777800314429209127666781680219890836069259961636034545365351686436906626351783180173375961797329960559738571991877151511974935114831649850385464447563049950848263700685393446652035482971404386415262979745757928199155295221066626831703386851978630793890012514979868088812015723125625773390224023236512158702830191593247373104294560839799850851145708593597570331971097629993971860413047892360910896453123348087534388271127325582658451482663624153173924222916479599470885451400653157734143254786447577922041940620463017243838325631613276112635037541693103621135940321845957101135697713219236023921401611924243151749259207945897098961677824945837173554486754242001774409617437408669276270294838801250136533561056583470197809539757288519509017663024994667572663996273035640339266945776745096359448900246990728058467028198981334438822004085654576915651259997647821722533785682189559949836880460653275323198242693171847579574686144146754301659536001670823690600290133971749158685419695736128403945876429220950685329510169457601680637532282059753073209220479797213398413171617093190163818342218387044473921958090049781434187354614477274011948567928780704822638164145734108066979435405171399107295082330379764902574332110637942420869193021565370938301226003372960768270952740047324131784043902022444192010962180265478465049626243184829515025230579071516290746215076710320734592251495058513164995949785918293838001820971167923578594797185116820278542311052258753434858395811334800461553202944841004981767468120503303118324266117557907786190195961214020143239632741898981424755558843086124232642821820257221873541366624382742076221830586677182910130675574563118361415628241337017931988169150301851099405520565593469166866717325413233719666838474771295483317978936141620485506964241671379042112196141410653420723966639496080453586072397571385698479681477433731886548823053392113481173550699295829107270873448548344969955163464427398923125663888678093100589606864322986083720294467090961812232984587258551245943970286679194511630599834094285307092119765959731996052412602789981789326686595136242605418967138480544994644861891482151552705595022793943760155957474306924011937423396641859525358885546839990057098875859380285883194748242744942992070696370027286037382868415313707473524928273629821926897067556463786259114817858647505269637103871379742100643816912056141717252765348055780009922513223163910629797866433306818143163480035032286842325590205713505983579121769998254632589624084217422105262858156508612979165313397436355771446205648867424737984952361632291775460070231379668334664703736335814439703732444707585839123836096948651890496913528934878724158409216297909237602943367156910856666209150535744746650565434646197080922825468700510054042142326795111159712650783375036885367563978357368231264546187299040490434662197199655115490137399820835191568697260265581897342768768973938929620701240573221620275873640614657358403217840442177615542118679152663538612637162391309317898749699819613495452183538679432730177858841713700593405145201454613548274096303204191418106193963067500524542255184757866489965633911814247079929965641190585171670569244680744982404871976632118377473973696923054741800959980878304759472445524345261087808175398524611986879935547083356727361341610119735886961497074834457921687163639038417750464381891276146954113560369165210722626685861006552051536660879695868349973236304107127255999236299887530559501812232471322156590246250077014214720508746409673251987323793549451909508726913706010016871672726093187631366591845453773493771946189518925504079536789475299809767440042158071535932763768372976495178278292407020220341074265800397122426429906499898407284801217513166039431304851287930328841129034852775345154618383346974879987159258966370806654422227685881771603798994202420833865234329163077455408663492982551758023912869765169236265578740895218589779260981060375257393209791563911967321790791942857825718408713452835214353881570360691713462668158407025271263801732201526595664164328677820300558763115910938197793193048246143621255072674442445972457817736245722089539050904201331006863279629612172407185885907124869957463165976559161779504579010598737309508619396607803367632861575417823278844143696214471242588719386134129047629575642877169450130017422033626722070185485878589333485886507610000056653891293088545102524999162414193415615290154137349335959819038439240067412100689773965675648641427495744758214241587591744127934012541867607314946482674748875545521168885986187013313743554040079554307469100519832873690101040259881964252986128549134929323140949606454935945404842638043745930296375575463033348498010239209693581296435886801169112569199235608298311454017984637312054730834845639385621275503447409979426391912106604410216561826902589246258099096882248224348387058276050290887511268075856485527718239565784180786244342258648557404754997017974336145646408653244221733402937613162586035847916057958861328557301535884954178690434415191138159690241899197018285532156170164503817024515588215679284508046007752967102409133434208464449538351060939937348869794034975077798116016146632783400695561220244482691515186903940768382638198380728647643266614373527708898618699926492667042005717059098585973328969503297187830111914204348263772472584775508277571960997476943365913225691071081358557014881988537239200456794152055300370034056611016224913856311346231883667500438566559697904304152514298548656193892112606262319168266583454224115505080967449762169779281234591944714138485800510197247821528629541629287066527495659303980131286945249074883677279768854207378465298058218624483302426292546811461181095617365197047125474337999850259996218126388540050079322514356686179391033702112579973234881109795197434399382837603917732658394078558182400375234396080274827746901569874662395567706846854839663085994915276850753074154540626382388801620312276361947771473892723308828850334350008573168016928891262795332203810499581845998341582812663788205241171676205554318779986495823564906431434233383207509451586104776332588036095966120838070484742842368785697272590450157305097311176620901780227861139800700676608584456671215986158558390438984154365654139110840540464503472141501620259249574585117635594065980851938322996872593030111493390197779009855933584039730957789151192721949720772581941098799843983430443728813919246270805858858564003091129840700757711462009367729516930493156259901616428656062945685757103894683531643335380706307387664611281240868007519854539059814631470130900059530952729120616184413388561434689494935542163733614014174749140403952500002386272752686074088996943024429867597636416889007230622044745062220556968841780425402281568872483520907640153747203611834110294932185788723178908354939158436664977232474133740115312004692336543616080657898620235211659508213460601379414456505774131343946777556266489931709285977659427039185903627492662501799859423870641129979223069671826986866124594260944545276796143403306853274726275901244298054975258224897299347445960044961125080711567492064716450296650401611742482124629048756177493760859039118900858776870277642468481188392281982574918372331407133489126072213813978717585708646693257780412276903127157333434883379845507853392473465377707406833564191422260868949201838035304360731531174272419525560480505236593028428443343647392765568625344348149698763811638605578728084094486289666588281077139195417879074432712010005467533150575311363995660493280626634099722709221286965377436973314260416638685820324590016915327209155035066393495781456365909407305817462156931431227119726707724856552970521402105267327511557456500623080160442243742968442766187763900537922087102629447342621775266921820988367012558273780507176118133666593954055245379504546432867710101985167460604399177891200674358147370258983387421968627665526895509413237783422445636099236314168693182809010624299244394947193303917663508291213392948495036234302666772189006454211715508329308484129899166105732305317795689603541422602715069510565018505807686814359103750933003446912838262872691872961423420053018226676948360878805218287658772965254941128434186295402133953826088141010284135252696500860747942768209547083608756626819455676541042504233224737760449294950596545121652130273302253126753547272610901063092352778028307554950597874736220802175783670302257065024233839750823844301320434991862076220375594371739059221283409493968895321804230953105119141300295344267577602266916428222253290170145472000068977127653424402207634768033479512949317339149010647255590147820196661299835223699978567895107389036205794886194592759750136426412691181853742354807919952099222510775285268647710155339169420169175433960604464683631829902251854480721419019166526592170752815504256278377650465352285462820440786709390241816775051254984874618066474603779283114703397105025061415128478038266045202553308342985297037192659350839514919292737455289769369236656264589571032721761821791376279062460182395241315527422451397028636674678379820979977158007995830169661640853699560802065440236605406709025338263287659191785461275047398174326924059416241302029385154357188802251784718706021160401327044047124374538344827698348390293466133410371166346563814834580698496233143117355700177136131723133716880596160075377052073736930908868933351512555557064486698227182485072608319390564670924046508200824064742659833183707079626611537843085995145043824335413505074043121801999076519505428348629676047345588243478569003984704207872736162662288505911325890754066716417664466574295576350766620504705040834927775518153368214941736053570830963104768594819307579973697305047125094927738895170397613873718828656352160356609208558045105564710898038854527616370630101170375939642520163185589002134293233136809829101436876499076521966046199161658694943650177984386262456604901675145029595296345498345046027648396984419784137805594284962404744418071773472409663388418334283175477938547730970854859482824482271240973463731943634106756484319013786773751636414478124636144771433005013318160616957336523434859416945024500892322934644335374283040744710057101929140945463300550337706801094713491446251266314679237682217282464171594083359183042971791636676029317097518866105315742010614470140729914083749652818724492212798047248810127964394708467870492107819922806054574350183471310635238627066809372220333442849856438284684402600335144205871634906928084999259033423846375323666818608809885161428544603856090831822958603502924390362399847871958172376975946972964543957983440463400167314151074714349936335759149437953790625861784730324252035032370248639147264335168311466586351913822469404204302082670050323945448123029895659204975806464932102297869767894512452277371165335002745178070127723035976741387663589390546640533606938189227378345390962706104575690928372138544942138908510525240430435836798290817445994922988171130666381089685365709073696315395320371852420757888197134496020310853725670270054714280489211544558924469036991822811223449039653341507194636512228720320382558630064816692402965237138799128346724736070861183707186227312633249634374665945583399499741354214486715081907603173201664235682431925603624238099321495032962652213995220423839349060818548202174570964952823199876574338790700307166230330789950070594948815800842199743840779047046549262306595956503268745373438528963931500662399555477694201126068435344644968848755966966013297750694916158245325723636030392277874359493010383337958323826648001992039504309801631444948080266976169187005300492706316604041896856364769647563834717437708048988445233092825070382438265002064067004429213529694308611242819085628994903902499622577669418591940847174995180772826505251336216215768991281462882464559761803603713231595928984554346938534030382309934250881857614902134315819432304030182620441991215676948541892625746902966137087709882227932059995264404577644325368263924223321639348116071358596102777208502281927461329930199799249987526372072057850920416139566125459258710611372905716926304873673247033003591503003843005686420898538554320057635806924760089825931876061989242460942061675204707716198677515770598373770374274663570630929180574291422067951279516107843196326122683397735036909364413893046156645763255233445907897772746131166794323855614763093778760987173295331408314224301679683449137418597393886095252746018942452581615945398896426632399721522292377770446546320225343557858912735130922431709096015258040175462683944449263557990245818796372567206705464976619639797723767028154933255661246617772639726694331101080581400761446331580161908445692270130038185003101973009520201087370974074058078535325200492384928597480619811049119578262132936243332672585382324301717631253643377138801536635155187197500197822011873946420780488205840841611470204339684252460635496222591116333130538066872121922322290806388293708993024271253304110940931514465446900735635653083556990584586729827130166844437013231869915945918750568959238345557864645133074750549299472336096815757938282988121467880824081268402396479653211342971035718718776135094463931640670402281559698442247790968919970105412075125637219692043525388759446635535778164807626874264205618251457607959898281238326074422255518027113480085623064367755931146165924599812198957543435145307275992817112310350336603458464171571822621519149611014751590663758616980412807705320132542592196658479814057140712765092426754357749531029074706281481249364102259282893570434008231412008259551424748426860334180124523057098657659551991488611129548385660556239095583703665300437725632532535709011982155514496883449180068007837269886974857590975029040097799156121475157400300973493946083135664074372539116263355320268894628635943933400831808205101178701325712940665388284226830683421517846066140181922606510214552570399042525678483543615423259582622693094566229587543827590494969839354126245020624773947362851214866393691640441028146282084443242765584372705590824393834114009090047700806404615084545115451207578715441963465517822322028229990084657226459899147559008629469038810956154476045019775830330839039370755993864208383043548708612285218610558922172280326139714049440689250175362130443802516721893913131643503289343581840440844453206591956821039851848486969839950368877687766024925798396061539016857089430024060073459147342458290805208737687401447389211171659047931050067672609618863584606887830068031192489847653354432877483390245182749940121548868360101197087576977667079490226149461772328562673963082225684903534030704650375058251198752667901366902443546167219789245153705534310312048873838965535658640936063819018848536235650955428011330447150660732902329216612874027877212390455755789675265956633287269299774462836764571957214588748476549155075265744235153038932821518584466279415750009335708204937540087647166106811768624778640424669309652389954881444122156547074395347915137858080948410448336714236047081758902532804823564515697926936660651593224236714068004019159102662880544203332910574765422007187913435825988083661466384235066238449692519091373627929529338425924273854826196421621853299480127860380299894066097736766468987528516023895699860915966328983046507700482684342595675642037619095378513444614782318936204009003751489216265235835870621498276806924923976436224922893775557509231364797312690964912147980397693332557265014199203622351864666215716601393160240576103753090783691673253305959199485184730388448634599178515372598107881568965129553116060362409041562894017566195063618010933297877589559095779699609840919330960723673015657569818343795658732557756209925726732717992000956787199161427591317892397363574996338506257847906540666017149474395422822684286706109415907400817188541075369541504094014372139902618685947084254364520306824693754809636507030474744520793565357817070834440365139132716133857392359112628229204909449083599096217159856929052970382108588321197460117906494963165022794474252464610475312130186301302807400668240039947015586830823152190098087994845991007762805525635566459558601929837800929507451248428418136284063293865754924090840468515494666089210924737393393932821466159467169296546798821717338920237660099869035726965517450754930599784031921679613546211476370658258170426963772756395203257560591254311070583735680264158707100565749874463815935277997945720532663164485902998579054728400067990908281820636425337643120984318745451325721531299735934606065863372241495038483136098640915296678400047673971039074482016879704233958054213148324926957569526671296789149769346932699884578406528228211561650701373004582375521298896080770176142832786180903626164346827515958061530351174012320563549009487372809927394608818147959957950278774306930897383763891244041696844551229296091655338726869285208808933515215477267225490592236007134363941845829562539839230102239840438667750474599504222691591950264011911428666493744226628826723295548148191473730937213955396450044761699627176195999107882547525608564070179118206056963560749964064026199908249158939656215169471975548551918878151142585306752256641201168550746091570753596579153965918218817901539608353002611933310470783337573519077052361314339483768051472448663700594788857749904058647611626222313383185084295489361587263531629106017659608403898019339001016759654448641920448069122769018493087296737346529296390193278931320104999959411287975787446541083119496272767249222318584608221314109517701851760607906765329776506208819577757798883316568957040319956312800932370723708195939428377253525879071717652928557755231639190803284191204360348772086990819571920127898195580068609824277650394947854691872577564668201450330283670744847103683154870184179794131285160674918780870616699431276024226359465456753185874117265669821457929751231351549435840670103537540739078374957931310117669007563065997602840235511809648433327221565738811778722023549990168927752831866611807866749207537140926182954877061312259372524865578335550597595680120177934132456296578470442874962416628407908391277277334874090604196845575133828086310708552337829368549572503631238146595067933928392545246090438853811926976475675140561129421571074496894315917150615292785479160186236646851541905109971485241889953226385736333401404461287992469104167350026834359001286550422515241061427138038593842786137674422030825766307146243986992331496219945456479682825819570510239141135682756680272025319672699554443494431373488949860623997224199954322665830674609704076514485258980956413057028945042790309170724633583340001097808833080288671703570213101579147695980538830186777936883870365429887478237970876935630355617109056442772369196342314282534619786099072409831009208322554868880806432762492467818288142332098407593717292616059490225537636978520270892817938447958152463454769246181755064564051422132595934547439759116067405152699018536698887979970597538836912785854343507247702988535504917292265699390576216972670549493755834011193140249870125879329679325411123178497045772558541513814519608666942748893346710171297523788829273410779292146035220378268574392601489558097999389747346934971170948732399864431678870516449231901273021165752531446470463902291763689664477844883486068980034485720487737385372205853828943706145028583960936918403216377629682560678805277368958019149002987374225731620479796613928441870704664981320880815796987568265438808046609480790325628059897095887560179361382247019365173297874392096777724724805187965100788986545996127461655634336472277337312995020080527875039174708407502633454688995370187485864407924726819257696981618849072933169435371293637794136045592383484077233894874588616379170476499434354705431162960962316649582766244480755256880056977775920760081119870471917014018252276781809568876555481167151833910421027086521958083879184926578807310058013960321464247542610753351335430920511818893712697197432850890770512011034723115057959746821177863690436970876389331584046858913279954031526319837449955927745836109338788165737151639509824398161133340956010573761850618109015697809344283882240897125154866383828724271840370925628709464666389121838946851942244133341276546080823126633619676022947492903006419527819961220898136388936319213459989829543013554269706165593485845132167078390885909500552319831915835921174387850259516319757836127046233105225907043658372333506240338231354467484822848799640286653844018010992244691106042029830386124001077144156528848592261076118055045087380872501496226274860292161761121037392924356508942828163184761114556307019525896954871335179618684564797816921665920623924728582329720420177324667528572855181791009913745460452870402953187885247966049507348943495273655728124000525665002677132337965458424261105520855779129946373983102395510646029818998217232250974386260619094641333833930239524588663527742989154764591879003133228155668044841531890872987026893772131256233152210656876055270649793015757146540702563687777045387315528463925484743113055282153051587676115617290068582211859585407115285264960902458090322250049131984618920521989512494219048794322795458660387927082972538754361029708785564623935024237153904943414925415123500563999532100283720049864834317562594422052781608415269430998408330500623455585281093694985440643777209412280317412699001756963071983705230638354724174935276911915725593396244017726340030147075047719936610096659227798141510023100821624778850355338820826138194399530571222683585814449142919990604388873952377357669263501848952711848469373911300805234385046339366171082704622622542491878727429642607737895735507365180070007563153156315156645317409607295450737905145987116921048176673148092916225852798413195833710299968756084434833463233957116106256557977933945567161074977291680287401207901528342665822859920898672721491382272119968292799042631112681021929517160695496221229873056992078367527201271579639839268822471053863346661177554048099848912357141746298550898515529552236351509410191564078686514458762309748549121906265818104685652114202841010708275482705233801584546309888809505670841373807637896555140686359355954944850595519657376676845228041595379323562713172731250204394433187260009214929507227365467292568013090413743422436739286562353507833114978654866244441727198015657011930658610775943758313957151717414300318806152940452541559196136246881681778761995502441219192471208827621802977532193164636495386887338361364787965359549274928202479507650176989934375228970574550055409165418989317999147319044033682232760813114890511437840458421696429651048755978826484855027667463927257272719616821508142256554727360868023477130714855212542329612166581321184601900046416821005523033378061793203243992790880823940346238149882996024350498741244962063952616038132400762532648577602459856402390035484310761121180917905791397557752531323567275980866493893848799258856275915847396701688684827153605300276545240060673052086661086893330725204004558496666810402972454069800667995009070582833985377522112585738079384368650990417660327964945352251476017182155396989959105014200749201347902612694546013849961897744581776084131059267899349144928729354210953659415100606362528492264946271618768037323751980820231947398295852821207260296795076001456853810451734598592782370315008206993591068659236553552109802294511536502383146115128475183811600052606479787286756352268756927409991264929738735771190928147952752342463860908591023161225782959483379302133952415582675284458029811553947527422294121017164898214165632518294847515382402216952166257090914639966318818097227734724916503296820512327451149315948476810016064128119567876843116820315072226043737316888874035439090967377593375955523667311373961691134399706808427307568004491964902860113202807541714954182483824906177383083412333543438837135668774156061646836286230575054780042238064245512421649437649787879046130648519375828675639402628875503464477965098916481168668047802399755151610549224794598085810914255153031046076346298193330732277138265387182800332467500130959622582898916930045239296754781377494443377207155472208896786482151030640924226709727016811547132222938488197397030301161279689591467736167825753638594088489150112831613629477450520509620904989934743000312613927628212992815978591465178315550162166141096565739433008709658137972621805134886267097078048939645692252512668270660033607705010195246913900778152460933350206077380080545986627633530284557742626671651564430236271065017019388710622482991806450806068042381486527357810491861252029737487312671544754818465157025107897238445125914501403237011476134638485322726010717505462870555558448245463104577803478157043405367544666577352164035557332225998100291068630597848394155787850174733479943727972507688335654070972808683055190755060580405512520686056169912306169040104592653815695996896847513333925482632594956041735614435097474889188595163677481175789407563043247514630892165886234683944665973970350015611623841680875064801054924829844032122987743665734322497345049324449842011040285205762445321661074408130678517723613879174585248221298248631030140461339030618369089997564917907223596911862555396689244410021382532791167579736677762024114794561805531468825438712893614820014448101198733802348565158839154380972890150508012867443874670762717528130985396934612074438191648124205830404372274238260261720616825824284917898684046664136743309654217962206270992641560302214242708116095026786459961317961364398942628229102805026786289652994531240617655154586698954182756123985482503590287612105392604453880835575299205476110501132283191027208559280249225185463383448790942506375423812111036043309243840854664121283402830792397503542703377254032229250119152080844859915555573764340923300657139574847524815062654405483506780489760331100385074444275284280374213240021733510044232118325507367293926463786036925194017510751624398475743312655727103851780917815100932624866939233466466710529311550857170051050705182199113157452231636423577443577134771478226661136289849675744914720928427174321497084160178801980538604201046637111880194328598867068805467609221915703269722510540616217700295622686761988623896614374557538483314332873069030382000801773227925648743011636360010409444059316868631766720433637164063344447318224947072264160342206669158401584204843051464212792007496361399178325317676198592307417359511427213180928278176120112621130685637790556783041028128132578934653407021401534314890222141351784610997669113545777188947887014280974426989062084684475573311284066074429946447901243019003623133439837579326830973509919998273541316466308098727063534213786717187967836050908072157053522387009579329848390182019033128742508874227607371277841793541284290011183190354702946475017340237317913038377106822835941929571602856685583298214166288016165093917288912944740481110740013495653423500024563178299740119931841425389449404800047534556131971907174573560214474410552382033966746349893128181355110991595844614653848421466162695788159094349634265221447643557552682617307855239055481714451765563384573228269781557722547768277734160679242846818205203562927421991646817255293492685818526423957045104386795076777100117517029946013418933256105050519111534028377927583295367676866790073524241303084492979025822048642099569739710143704945939808873575149504400301245324705062826865366590864601394843050495532150718173963108301721335766234021356595805323410368912387188932348433331280005685850880091079367526498145690234374068051134619730329763892428262019751612803810760406604242129517539038332691570186687336255150680906276050022907232527644441707259266199613006710376001688760004339429111334994219157672677433858460358294746564898141338874195801223040009609929593874322936703275153799359275775826428576164060176969231297009091964503353269438164745722705327750945633009101917890999296919761597353762433146110822720280402195164093991791730354793814001114536459272213890197560668328430322960371991718043897406147583924414365780842225249451979500710852975851393329078795603968947226055099805526643741704437410458204442786333237910677412953106764576453054252549677527207246682050438217250622277747534306997716799418124594960096397396057379904414135754763983564580128127471942704271484251890372905479873378016439799084364566846560206151543508919290517142858923002043987247775973871304839511520446346330843697252749471841719054509366480739899052345632448854214081711518551017975716366893845674360994770023182258898983585956892605278297229518212117594861345417634451322910043610561510919531990558741207754537490848921570695759814991426825964018564865275664914830022799123917413871802890804262106646624618259363992643754970975091135773873227087150612247501790322892814499910133276700223150931294892688182643796701314059970598678120429511087903566202322144364922741140867597965731094419878471314972458940064047446916641437785387826991061162032971423783245927918704166699949691388327283249065156842712924806025508113181402054048416684253674013725574814408054472090681066487105143597571039815465962129716692581319474004593622244029701889615911808289460041615699766484835208243050808843076256539487230705281454881598535451379076019729281992090595292543666084421715375898680637835749505763380260413600746929589022536860271900821862787536267051470560346504934948024915007224678614641188433046596537205269912163855644796780269616783990876540320041750958834990448749036394303777876480843429222007946200903295650108112027447534735000594057897819741200544730647012436190699044246524070297440617956334211889821619691533425461331688767183460472639358998689821699656648215488835020218663639751076663883661512347302029528797313635959842372740968805565919090996529453027656290391944869931903958679748823828320248582426214066454671830072011483166955484631828467751702758739313940604639477222529913677887114962377610040203164519312782499710913772461766698747425918979261915184167259580162374467392548234473253406935151005693298613664723627635373395363691610687614193260562140283737640747876983186226910282567859814612152222719692642375080322211533685049209279568949619109139913635216162307915674237788164738797002305471401093987839458200749434715368857945967609356591685662354990006089802568964005076710155644099470337142685322894410499496879231949234373994552176063533469045476610365624009951792899309508350663808341945685463918840741858313269056759813861633357937866374694472704049101995530502143714101085079817086328032651469091708204924316035771970368515738874451405491776020411032244660900200638934412036150976609467457094169491232899165197235394462277863076423568407219395912151449522008072663581950938778442727913122316546980808671416680356438688579801785481184857727465796116491365442651226859728388940575374114076128079470416040613689427317293110294205733918416447740187335186692479936382279703736429734592719792248023289284500968864056939175322404770300628620981433533482528914594112706626883806648479481353037705226106218125631942383658376233317580050467987383012659225956235178668014080326613251222686951432001174763432998294094840542070178481405918999763330430519991670242410235783822140219069794346824766882525559398061575504364183337847360611825235146020429387089780900050403020472946711662955810360787506507332887523557198105018783524649509955830759535897286554787158278672789175429700238626494603476563372153071362091344050391700992881870859288066651010382425870860989141259320293204743609346992675059000850062938409665153658616967393621503273257618694681093363674622216578546250047427454434552017100218232903862318429388667103389193083558372819115369766065778881275331716153899433646825221220125246014493490621788138063376134800948936973981348995044506820052818631171328067300460860018955649330994790484322316249955896541060037869874277304184783743839013425068669517506322391533771142039674477676473544166590190977218653578402708447081868275276513846184931571556324123953903602146208720006920229754759337032016166277438849474778009833027417703342444380957477031195145834817162354526728800960593101201879417650458792971867272243675215309901002978509209188741960427198259612968484330992839408843183330051141988145257660303058484454415133099242808628927111886826255394425626227578356966002127388562957579431047614615008625926535986269812117719709568081589514859615019046743933976211665845381729056701337728965587154130881932504056895327525102009877123245159555125697038326132900968732063201156034889265763753198906750169693225680939466043818117118042075189056853279660265708261581331200289702159648368749576905304994222128398405626326655530039017046180014096532747793821366185863696260457489457400797951323638434729566739141552301027209488734017417818706666569095377008761709502921928779068498162379638705905271679923415758836989314308302858593960645879955421012328665973264094462256002873437856392336788873468450784704660444998723661207832198736383023411442255162227259081037384199102354712147489218926677136905727343542477251043971660544222071413323192264414533374176154863917421444877299374618919533225212636466461828356162887532373487502697679307643783868815178447069030692851223489583967665059383954555397212410762730218677919488627001294428825522054317776677953471062759962793551049851357545016885718032187705941237482740601452153831404893910369650542648528975273139159065515037522492807080278801361857125030786885660622624793664941845755072485942018666817533593713172698403669254640509467161151485942200698776325005325180792385104293638275730762625888797295169693193449391424043773515386623536204201590597879119879262262027429106682425903764373647477178049897113710441440413645273217244342683398801882367111406973711327976487741105644086395054136721863893188563228927136034612541197274227455450121231025582884396326958991665952446360784320439586444088628986415857839390192050126951263793983011588005900716843806923448514040584756282743158370958291760961880030057358917490553678194944470963871615652778397773487349425994302171429904258306630926768781764599450327435220739461944010611448620806908953132922477348444328146853790659442044763901652133232889864642089142630375646239787908148147640870631092095451484129267320907983407169755060040383803563952723923311847210235244022483080958790538275716117266417737967183790018753583805162556980657705278020577978891022944643497062264459282545099895621833372886002328374893550012924901631276289773415788852309267083625787185704328815958052893946511230669343458553097496133905011718785099161084708859980985772645479978088465992235513863084991549692156685318005731387519428005190669778145011181744930099117211624805265068470516120300288898122079544382162009729313382426667099485319202370051166289789026687528872526066023037213159300926180273596769328269431639115164826257769770712039783878039823719378492629930108947754849324464679078210077067768146780472577072628991955200762699973528984201295037096425647387794891768968470828755849509872655387767339102028356230685244449274388656990342816488767506625866139329331054472864095646094982683476424848565317543494680973700966223897123102884720835000041089276651975524735931670806439178968144371325759405441361636715866734886808140988469510635160343241783514293687276103098274296595174547513753390575166394878997798858328625254115872275097265585706954891702835613357786205142523844302241377694331394594014961312434374889924620099246315247091645324251461001839938894390224335382639921480793016258420976894920526929494408869392653999754077345910819920957816392724314110135082881881328015669186741926036505182054197855006407600250031901053296156377076212133197022285678315659446179964879214689602342828352602932087368922991127778488821120410102238416890544288940558582711323560861073783527601244283101169189177505722162076416515134164417461202345406435497872884723563923355133055059733716279282909868335683481804604210083489041368412959322100090180093745759685935764202096134946293305223842785878760887012476014198988961825056336531827997362352665156401370034166611450680522496834488450134022273493522216664790620567715275380975457639570445591849572420522480401046273425313595364462717890731088048453822643721173353333272958881396020887714495308066575727205315873069738708730757454178227718714448722956524738116237009114517855771054095518828331065461022238066618367925578376990695496381631293146848274366822262274751782473302095201754619692130356997122135030479144765222189337893478665678018987503619297413477650406720061810223889328428426913801903785819144168261504138369103223056629318594649605738912304139510445612379739633357053789821499549733045774622987075955468476047777280930225502930315698813774531533059499828674253379280708690335906209690652434908380927090387535007808041501380076570886205942670070512831909564536165233125245557652109792923377410087665244258602592896921404987525781877503750774587848876072432120440788763751321575789791185883027201353777295503614224119557834441137278654552023053523133908699623109363452422495578256634426023086963587277679167040984688350781162046645268650681161594771070638824155833797766317062574549331942640869442209076007977966235422959841315696469445510026708887466663928169917939067732290647129661131248035720516618648167463328220108905980611890735739741113412434417917355291598185890796978124899944252111381768065653978737390504236146558069733208403957951179059285302828613887462399220271054581295528209839483121082136940585345084065581857735323039377977907703176131153300892199610682485032517191186116828967959032499597396481387967268206150980075371930575483903538937563202538939236719434187344882806383703138941504324977874236326185276731693927887259648841121590988372037776939997351070301292064983037386630337602360189683656187503943367186618389851972078637194325261198477352725536442342536922639171529951289863705151146078427364483595859010134708702494326378477716933632136684243809741785344805042782496868051635412066255955366189424753567736998778732117060708260961568227063331262407645352754101803505313309845043298211060887293932021371437855748592035317820608531176101305571549291734589571066686887615491374685795238874582714202501529029395368302551200990740681774329043121630708103668502505272767125044188952925958251717227314033305075004420181629893671400351996793593672351095886490178252943563338174341197434922378996501146150636943146399646474091462171248140189917238934832912958106882301170017639664564832851469653680471300339263301706386183943323366853470897839499425920020398615139270139253480582566474731789412332019493614220492525472684668555770370801418944969032399453155682112155479446360839289950000555728898808658663040289376660166702102095307682179967901931958925861275356632095278119470227403114170925506426080618202582971998815393238441929076297712295076447937285715957265825624866781015041561796832635774990097889723035831660799957322229934235639286477886398110268063864812804335008672753859537539995673035197767239437176794583135029866009096814043403194093111774429312597576333102667471275682329571845514908496652933776999624982478594253990791622795751665093799511447643790237059152302051771244845938489347933844279351471084928994081751782442060605903087337503463390139625605333564727085322979744532305695732622012789258629614283877782053128457864608216810983887396283447539886279976308583288432146626402797020928779980410137462948380510081070904009878001974396824805932928677684583572000033180535977981503606127423727039481076598147837742370750392027128309724799342054542565546633684192108804093407842599896112789432406518177104414152595390971893015866848114047927857428193479941375513426157064824429370988734824674219864434603315859015461288773666965180855167809421963340199981591289410529717114126083557318420784195901895529129416488681202193261040928804346562150292593434602640302020409237066398125079151859661813705075815897665649189997379545499588267879194033200717252680984588036144569250700953450048730317891346719161537814662739031828210946575007328142203920942304289960569839365333589713428925507601341120319390614038499290498929562602219264753777746257917921136314189276549071797806403977353816029902239309733881062930963180060490165801767568160951089843112449107468960387046310163980926706692268683938249176331681707111750960364473644510176601157646197510108492280656880494018590759449119463591027936404471068852149679673873626544924648692937983642055216071117485639482688965280239165196175519104244980025857697100122049751364108090693406191017434159785667300036424119272174592783462308012915124655797886262296091268149706309462496470467205604243553998525970924746790667641106145580482234778769652502402453135528488411528418229539961252548533625578183431577282095859141976495037311310962395005575742998242781329328969549369895063648676261988532260954981130352334843209597350592704218067715863957135597142133006884146591455903406882545992764246125003786046696970084028834554079944633138694005881473642188900059432676157035274370075358380546156892125283105482814369412503495200629015146411705216431743518186585116560986646028916995895893577346074619514070520149458292308980476674872489543067219668820556075904410619314908259088980385685717663417481782409659778845792176333745902202345332438769906019321502177445559500048376002286102684385184116160944073843044579503361390676808630160043392027541199496997563106861754259229085635964592414117024274276215078777847443574557300663917290915308429941749830195967794973912569295156776540945658143251149852825775348065476862310119778304426050617853222939940245690846667634079837325338012385830717442695683423964630690156917942069900446857973680153622957376332599875097002733010265573051591089244347424376831094498515849391728549964343345028577635024395653305158214958398842712468903300003422142263662366011016957455006289029363385848794190994285830110364296337341580750687088474265301458921283968446336665439720749595617832631092662936935566828290579727352880173928879599670246055449020856004148251558848378153055711116127037955133992447432659874971645390153786386862219492784791832550600874454454441055255707955682040028805728593270139507217446326349764471179779690403463008018177538093375879051459088939722502156214528157099456193419137119944924901246101411353355316068104213168733263834805342562290432625059705131867243067100786109100555875002721375643365278491796392234941368148474585645585580383579741562989020832706364089616642829988022035619648086059960604217133056091044450515855471022148994082717425561828602026690948409640526989219884477431609947246987411942271874756982806334716370127512052904414562529752167636671007830390660956392913324367815903017241957628892859774280427527074860482278601696018764374355859763385851734311747677311033493728216432678917657327645966818218580298048757249867080739436320111021031571581140369499964115164861112213141186231755504205616735759677995774379287932519440727122255657366567355527716855767235132633803370972709240293346845564689287815953138241674753612272111694154910330424769490378855655685774959684310943596032332341966391988195490893580423935969522259148685231721883678610301342289151536138336899767142600640039980239674034541649297007613000427210738251322777949897625765620214963618507840319615472121830393273377946198928317340126815318209205001592924870904475522474616277095457219656849263875271355432919535011344664263497904267860582547348860386302410500636628261668329397237473993767288956322175394252663330586207429555916116692384420065438940184145928937778915715484948779219925194178089467500141687955753076507356722824309689023540299041243244298289993241921251302056979566656691460402511156274096865987765048379909845642976527835375972700362236062888916464575730041489748672485327514643962293406603290323729404752773574721359001415552163967414543453559943021373202415409369925851596202250621485249927523675751753066530972310457445913348543698156435461513058287823000417682272703777440931073761511000005103902347576068990070751771506501154756256030983789878031926403301992570143552362710536558192832965276538243021693071751482269149915838528824748857081528912200813595581219140849612740138449441318497586463369261310576464024806097027969130544515746038267705595220916502949433439255555237764601466373562323961926383468727972563971345084322680202405197510535251229297897535127243289024083265733452241357627909945039399929485564780620700909068442523215000989301761807029345822846396685601944667341341375353350171744552641912329018419314548825030328876676596015118751430319192114581204397638256529851330659083472355579990981210002506948783796195838945450884920025132616288162009463889508747479433469780828216525893006010944403795808851817964885471320687519303852961311599227383247461358006279599673582796304467459775134726072332297161719518360106311664839387823822155793229577330440572361272821870246394024115513348653946302920625905111605889438211200690309571895944074244836052396556467476254935516206780122951151331665814787129313723209729015983574368553326293699941278873150705884579285839354463584211344148334236721210335143134841109724518439555639573771009148060807645202987733355793636134992231065123707537245144032475313540780014530733052272654111206244973321997812192405004880482108661444459114011625262188050385637400149462831107748795737721933701203172421182321236407750441513305734646703212768568326251826125475910602848019069997860382936932964288242739355935215503398028786259728952566885705564798181995384576370936124252496816191305111470655681668028201882531253354263904227130942447946815848390323447932937222039227447466060856455465510154530356536442691292461441784930094899282861199713059523926254252446021180862216504404011591751672713271931560597540421623235829702099918001624385092270181275114621857819195742431853784501720951362072771150552153555508991001669041931373968858652387568534133115981755787944436974136631600248700645827750559236827184458750597823451180471607733198712747222025577329465300993994878265648865262902987461239383052206354995259775372617807400544889187999803983051118018950861275786570334887321756650924663465372431630354603672593915433093272730748380121147097339248562634145912153033302558518761460935898797629273258981915671791545435675334539120642322370764089728792652068127092085383880608444211582070080108296838700947147758211248927104577331825650251711474788416511054173362380878742004334173199803627306164529676245809648887768748291492288893341753519427750536314761640126198629158279056571628268525433689033158138526525459657591715698574798075442954186648850159120952193625611643819978571195971743083067244324699585785266357931563564597349049353133264126964236729872622721790443570797632138954835070983762463433796979658673082321969502129303709217575435052181385021788661533971560861580265138569860868252094162767536612065507096757299997137091925412956108354256326749379071816788765173481911857629827859696497131296677338351280317348132149350756396520528539635012738705419599840298972079212295616557724843148727837985700108009351328679575838996775025490704126367379428926286155698525607898669410494072684595303437965288526694065064136234260377540331267371136239696252603290517723548244225850596923158912262013427649812923070574966536160141380387732422782050105588302816000304217930843313555605656169301695071756780888148889546006663014990081020166849854520846347911069797434826881893033434759195454338424513457470705055753035674176335039348867354402288709021885051322416033992406204778924870459863724222429465050416353117347137637903998288993279995715829839311910342151341606695366267117637781767946623587344406869157243885774819932516185887201375184009050420449580130417968258355306392878453374243824837807024919589230226939627828466990505862834793100389180440745791270782582961783939958211046148100265822783617040716149084098952557950945446268235159958018080963678842630078593309511375316718635558002056254071694068906777110120658253013648646945825398616309428777695864005547916201501730108738468289168765110858216547089951396799360231195601876177625726575590665570018184155643331623507563425724999434812601999009317282363725118208535219298251167795432554926573227725594384997488538330465014648590032683394759052981211622353871914291801409279871113444452638044802696413432628584118798249333077367747479526878005419503750189887253316134853641751328241121122650921840056142750599064364874651999432534262743653378346225768250698695458133028000217841865858026880393386972159880758378342543807993155780017522478292779866146019914372877754959699833142371978581741572284893098334934467004135356399164725844174649949156602897454915644453192932999460686024520487294653139020839592665491206174291247379089953176371360096699459309075938926706489251418974148897724746120291042661301099546528368704655769670302111998303481615188097382546595383950929237100938539763759125697084156379783742862631013723009092956038923918549314066637850867536343197520549123073219093126984223559796416500793576156080464283980184306110285208918651229278778952037383138584481844830812181338938130337192131065124866861901147242777415174037746191427544732358846717124048451824601063299973840270021008520196131003104494126042916823695845462241534064559266510570676811567018625040057928443126885902785629045862821255014555296827622619185586653347617820177676102195395755631614429078149843553369002141266567800457075981144468853891699364674071464393692232439324720144781717195574268834626284330293507754636714909919245323517377630551705789428309057598250713661096239501745143144225373070717942019990504957791901503086082942308167780693204040688390078928929944037810855066016135545159157480551290191820366451973921464024691089734067696523019378542590365958325336524722695886821205126069461256039198557906821942343741000359273294523598123831844355203402387654406220757595793190074997030607633955802122018786189755481260212611568226444108389158974849305799392931322790252260522088608319607835386851613624935728872837377402771344293981635562372902545137575500247047342783751985303744825215213110893637988891610080276715714107856413292802760258835264120927713518698709781967731845216275399750108571229570094265776339788450688662663050816998928039821462767020760228008316538686103409024826878732806323379283709668849905485162480055938816221849048279773661852985055531444310687332523294649061629740054473039984191908655196907837419241103126890703816871504500804083348338879861676955545648593699550211992783118234211500820396313129521558366423715797640429856580218829625355657636482128357912447663149785444427409277202195893394701183881375008921764743177600004310200371173074433473101915224593851364333872717073361451752348835619813801174327996257957265814270272672083100158789282516970582312140409017062205734003937265385912923701545052226744332571268580952351525837792077245226883920318020947997770759434205095212076730345636140570629829430721299142446065801987096624916966694036467729720859442856668221909954648423192609919004551635593743651892030081812858011490081963479923975290867033650495326309173839304916342408561067674577071026701900255849126403125745843600910748652631307961120214752433920651260470726146056471539290391699339340524290974633080790299940037136154626468133703507798586766535646164550891133190368698286294076347607996032814173285485015725187297433675240926599017852590003848451681502863175266561346707665390925926383523708996472095312582785486786464769335514189885843614568972589250235052758216277795529449575290746233813842543226741666482116271201587670603139155385054271181057338567946242133122627804702492677594395140843655580420030987042658552319925477233148272828165998022588748018136302344142757564188727596168336792457217798407352555558678680960788138822297452257372407634340336893373420280882347527644473661119149296331318685044835339753842933082087798613810271631513286937950373421658153161269724380494231706695521193962853712381231592926195771070948709829186060174617401790037136166416626366293394635576419081835556890698502332532124642015890829438453416972676010549236256184587412951806535440830004909933522804508420763562650718511631394329945691250876319358524217525207961911878038595277938767126896383451272910042708409593336547813344229770609491597612400989416519983661823279068272224390199787036436170111354772632511247496329005017453125321947241013137229016918291003134184895846272160486704866008428725305596940515285211608974880736061707917332680987180447889230356370281519256227830500867184791657035090403204041563562929646167989160339566462798930396422790707021097671998054837469569709674050414152761313881543288131795695397583312275664749486025551072349348938448810364343217560297421104107451120835109392873063003827532736350358468012784240360649025536252049117565613397946702293546201092777056026880638210711774665947681421574157877198218553446723199532999556357790974909832757156716923804118286236891892224853893399920865210122057131398740088702967185896913374608959289701997469448471604197151364933371916208213021044618256865982072192541731959925187877905437171760046049700766862643805859066865337029716317064280060376420010444188630564624057502289205134808360914800954402653951991696901671582501597091049518617758118784979251607127235380493352922680151471326143354429234776701104237598046296167583443859417723713401045030613207103410799290821877125834455162731201873684029082771300482146668170406049346596841436067798758861876940711281285037351231651657257149097497734112016049950762293160866237388197966380350208426140437228000948576735988897680033921981226926335913313016658446848154783562563532046416418218489239496726936804695895668476780918086974141718867991804728578931380805644195063542399871694808664855799391241475211485480220917893103160552651835791419718477664611577504551142116941708182410395597576184071515705292233728621930511390292970464913942958002576934260888008967945794136832761365400279208677334311165496068062451399416318047374523799680899159346308212432215786526238468080215330425047588957705016408755300974627196428095351346919705729069923649492865819423345210589977717906098014537418924958890138429054734008986736093306182841856134187914429189629208314532320866930770216700507087671104249015205825058770644075335738761246189025045447076118854657825965532244128161683390881445689014674021973884732322769956996226813706181205175314818160771594025449625445582286545413757644368896868191516705695785238369705316733187762859057298949938692266520016687943367583608573350004406916725165964805733831718573651415182753588194707587546128410105172834878746867458988114501744561121526269763711322038740770068973977250708307524710430814518793261611456790623558686840813456468957204826797883157229344082336105566339398122623812995552572504129716683814336806278717622100071901561947766496203544736547569415276822749187377319193243908602842910222690802779638574785646188958751684579593891413283670447522855395294080667535691190062662838426212434518477707007883823793522653087576768753991781692898621703494803209520994026840026348106763817958732844181525445630329411909289783533757059911382872769367600460434973779275628749741668220475216342107671297419813895856884028623527956181277471919505363679244711918704306433652832537915764132130578116001913707537972327989588496875304072017309400545188497440386098466736589692922440271920679524457283830603005358333480840374132550451269424187852213324137473509558847446755840214814841925774312057517851382612577678991884639875684861202867818812078429512760465454985566667606982679424010359766661557613532227504287200605832824105658550041965384522873383012112253928282563904899652372862207443039290144923014352675362773203312242819992735808280459901996340575827345186435495809045991344157868769400189504962997450941009419024028466768306412690805636383422855185125043168928750879340624481527902564631268207241505390918647929335569032642172301023721260274401754492110998839129064848502209243712645802325086913210932085638624122954684008463003023033388617007889533141420729288710746144760700381735181321248164098089023069417435710139112225058152766012925018900313360692168248980863213531481013562843887996186248014745699680652985277146162987702916762308893123254270545746861716120240950896069870345210681285229486940023564672828321768305769876011489744237470209723136264780680547313349257851912814165349937395846921227267078866983944520424397512954349905215802116044629202740304637668113144453935707312835984801842521310430818541215528767827963795460432847917768707960299320094833060384975572221020333493911276409880675984689902804935634559926487312695226064807266857207641324792596129606955481661222153703338373216302852089527217866691673722159885135791147444369939537046411615468920025944260164404338320733299351433710718226412094599144686100613202247435969318892530163548421427744477697005811927751326670941087753468605249964000022645853071776378805082936801762623648929469933106013506808503929808877525785077953168432546106849173341660422639922398795735180776940621056239001388936393681883791199815740989088818782209934159011552266550669905056986976043857008026325605859384204993193331164163559746374801791852640320158658479972335001046636066037798495511486735100465058031986350907373619823891198995246233768942680408925224756104423065879334787132258397433587672304425131688562966609675323938990751501603756925156574082872462606886046666395855859535851241243619282080245398023019420074186611619956611628283439922041419020605888624070911544231102351990408809584660846656815230921977970536417475129510298728703609841221576193317346844779090375423403633341801706274555411498552191106428057841590050974087050723909222549522107681236290449258285458088771870358883143316103051602735692244583563621665878990352519054601197944274057720957989127006516999811762584353579565506608490688692162920356932708797304394592252398814695077084400954188773960285797825008757216744710466891757636175897433139342386988644468598564350705935771915045280672796496887773529144392832529136771142427920299540876464182447222015104670272713104263285803632529258924083336827607992621050521084159127834696640829393459390201203312561029188387810401730873440799723856650144427713616953065230884356645896272650558308102878289495317371100865755915042017756038522449101961348443498462869353879185662801839260573660337039841486266246207450938908084896792749003724910529577556262350049514593971552329618737747678501952267547745801892149759900534766996435351924847950890075452832870302198571797487525271368245591820772379429993193784067662677729505296645189516910279524349010352264175669112300405596885710422756467924163542999271475122707794699966350689162907501029609221061926767918069389225578285558307215397681712000872613101985677252412482163071263228905042625781339387870284771806099458274647575394693408595097556527644570435394685694552802080769452765568708917527815906568099092224560233366242834774075081754220839479058297537953508876238332522449763601167322572453234276069903330202066108030437795979243684231145354078610899954758201022744785831244496464336865801745602960005988312522617128478807395795500628561693723187878474586298301029143712472396522586160363727703054692237836874434734150082662482767084359867671462915665869913168858427259334975093857866868177499890911492166901877340689384098100988637522799493814067296008805788855543886962092274290295665735388537138628495452122465472751466535686868118739864051917846593457606992995773739164866168625120996280231574286452442579062004715400948276160827483127207605778164102067062633106480554253065716727867322416030601862265471066669705340438989515431015711938585702136629215722334346943121781579244115418129988821739120772339949509666187692832292881105057891112597539687496863813658398361874900762075119150640120535901705348899620279235148429024944872048395897299456749666162740671077047124731722574077807658507129689549633117702938359437050316589911733766723863888623820605741898284664248829733660038385845731736004815181842039821203659841008463710796159850087950790866684036489655704382326307277573768630893846740679346718294513598009198868504096688605783175917494592310030000038223098991855116074658913287294371804437012672609636062057648683448934183817845906240021442599849709705101190558208367006202554035377799154337131010086139134494612068477979511121664693258416305633248402922992082009860342589627763420428388257365165466090756155699254141275514789072681428063171082193025516032187643651542158939765677502665805115982098965882582025808211458321569189083005867564184913066987533437324155304461467496787351731134668936165521162804213160631719467643657294295062063524842212653866725065088992099511344356609598613913880552396094423438163370343505831848616813308224177116775709864571882972916362541859663424449965537330264691841738994251244923312162635905363181870114118762906143306913509792585659597305896297821110014717154212177456541410524969480855816367983698455530938576339894250573146687287705623859146787644696262952090032254239068589624751845107924638823248021737478268232067352404728680025830501673761397136994043616269997740063001575031867648015305713437785066147524620397091153497827298118247718454268800240023340100331041728887958993451538008457430633642568692992133191774237650839562394850261085515813786616713992163209590779713722586727483386315096622775554908412452193024172354104105184781999702229346144341113537595522622847002124657947512766572399527796517080079674703045706939561194443611932953969524073473250559118535953885036998339407704872351491256907507607220165706381109257020403066232350271847502052269597170326348992589516808616118275705589973279110333812894849132443744847034387717797634833708663318406710308412115934610036789234261246615733406326053214181627622806926053032152474226236701700838681125385944691459847682112707779191804911971519916032596363087618379975725180497559688075683987733594158140002371629243155957681024237751969900173379059786936172478871572931292759932913081493597724577287471690142334532628589004005881451316298759892874632285096913961600039851466883868936412618572303128841760658330663211528613036419933960835463892831523868965089304730313815548161331204513392222322460898611954688648985845449593325189678791497393779170396880562146167555358420986241008868495867040153207554188524881695621097240267245844325979176169778826639185522515064159638792790162846516697263286277138818403486792127030401414467534235033285213116618389762523735043874325866817814146177818514032616475024352768455316681791806861857182120360879564328233997377057382128863248286303979977743212583710217328118406157724567556252059523322561775222948024940100190164810348949888676126474211965152199061451067977323212846896979830367255488910656926888425227602657349705542674542823473629990603888251667230585053697112812802884788223402891967490274820878010243227411751497565998301977140387534598901663306387418754857716057200512460874374331632399002313674042477053169410209851601589876970050783560240544185401350080231025366717227938177541302769398086129420920798960816011685172498982148438697001880932674456261328815555405548901293993208886885252498089452172263516251156531162778060296349208479622518943093231208080473899604923440629674828450137774773055859819106681149020547076947115487275176306956724960985227058774461142522929544893110092848555050982938867644038773669306933418936815006284597323627732969380971926788977801191146740749164186803296514354247782174080279033834853750767492590321518888166814883057553777800474760900360306081709073580492308712387757143380409671649043385906432744997153920950015317246832813721837396613187229241039901219579281190951567390934643966659950019009264630533427346497920041738373235001498671052948429817017708588200270357259414528233267847905156732331666063090410621395916506831702185497412984112136364297749874353700099627740688322275712160211718313561399649266609622784323595590788605866243832353256152988328623878594546646109855599724000353141844496965392455321119554457321894375941174402993781946622374258994395145522074078086165580372298789484961883578597393047253952515800119633700817485322086947760227437306131705781955452795986095599102570214186853645839622697855377838146466528754151404330218218011448804052553099607223901157755412168176505504533879358270680539539812855136874939352179631869851335957802157400607959914003042361684831922409270992379669226220020111654081455668638566849534993619028505841041793453891272687215334684098088552543526738735103542176157608691669518094768662992518449203173579093023220002112701558259922047136249804778713851930604963514704383225912188100847675303165479143132365952497017108891949054866336373702063997656340992122388199402317221336502387651969873767119654211267114731320969744762305921996151724195784244590951179317912410964294334203438135101188821129864383123595297282699391796972667433467477894181579451539838600640314742012495725028476207685722735052205532905233986992941649903993003190739245218696615266447796681905050639854498770443518715218889378073277214617357857362518335719790366923846265102728035008454351937872039840521352907572947523846269892428273271173022571341700360956742072439898348811007759889507394788102643583518896648440808773179697293716820900472593209862094195204469534126863166777280507115748410270211366781169075453058499976134061501749050893303518467089056803317464510949178969051814016969595732796794052486203858159634710905734853239296515899733828814495464814547902322856586878347318404660180143392405692145919484239164678791115975615281686570705814740384113564725120562180421259166194142788242037107446456491286213546277098015232185018270182425324368516628503987942733671000810820522061645481589093747986596219622065342278928493275034370131873899509896830480029604645860756180719554522348780392357026982700424398861530578611493139273680945593757894445361522285453434628135998966724062367285758500267789078938843637037895816071678079840864841680101479940126258753865346587730024133314826623016549448690716122935015539528114961142885763860372294234418220916478522777586804396649868835900033627460446751498792377937165731363242362550879835978800460992228266346738113489201218055239920673026341501369995445249219314936299403298558644284885764148557693445016714370702855294015355201820831929091430845237006775316511821650933339866615833680269768307878246443505475869079407643727364959728169755573584183006362520111327750398232676844534417843517681510461325160592516483655824782200326494725960485201044225354796361328064426489211738891148578058365412051464122159191015697778027421786556926972495661652625878850919876957679132043161244750847768496761099635398560848813068156600795871877644278350746572962628997164726163487134543356513094005191769529496653523803101886338208591065996761171517947125871136993023931060091134584018557366316754619822406829343332299503755078779179464930267515556481672755649386396036438522102460856495787657288315273279356000111919101070021551594197381213275923280596066731315419234867793115634347766628918604536019909061575152419050995633347910341012138447402232716806410422318650105555591193932346143899961893216377913467098050983425862891410463164428443563481514699686844937197053208043627178287113971844452238428906465255818756559338758645193145443463841558128611149525104829413726594781621436891877750115980339568237098902555742586234516786256524197617022788027518870021520645911271684655433290490676216922718401423729230373585571574279638399697725653317107939462928432337374480315753883837903633265853952382769923985249411162306211358028078188959582568622948545769387194667140868661197744746991599828019264796974782297222430610740160354849490146903518971382007199063630933539326247057061879401132935775573245055185161986109357950657046102395281412645079759687794382766478804831273807568722135243904310359407658237697107666759508334455975956783062348356905683316710643283227517666493756640535221266065378964215424347787956656170766113929711913065439100559199309329214540712060180259786518278441049798109112251891632268490935516537769770292892756586575127218404676593405284681750213271274376134597019653404998865990040127338436562305101108502485450623087083460298240369799280383769490497027650828612687135973213317261197154770993369940244974050737346601735929658384109435987240107186547504753625568458714695837537994198449844019796940450636148535835646313585106687903399642192643859131672919079229525372287288752169183395373982936215186680259940657545947864937084827493311764412447763888883845868534379533208787431248368258697908771536917509071690660706989047590812759209201721913915947257300510271345239287121114584027800170031103567532811284885218609992566881228114092058355739039506074018057595268758259297258915307000009573472432371791770324089319303600856105540159217196559111272463870235730931124209088579388377994667443845058943771203302247365255803887517380936520309106005209248271412109115876509725479622636592469631506125937437128004883858949017023632471971153300939571587950778538285658697040018098239247248243422111652582129689640039675975038539484172576855755988833047724278549550212708928691068212978124954567577002469764792312517617007957956726873532245886502248728812565904375846706735119810646859615744567945653826569165626002774533411838655061972612785332685475234230567999045805241459233869829097996987500651424390671494621831683622051852400232759982683159260602824292066156445691230903930826677949847258425321303001360377903112629133633629059137933855224187497587955746689907710300547764911499149432067713673030554960550470917231850897171694596215371451150432628694139745033700530843599335044218033841048239567845527236525036812895239359095069836291750406279706160776276880884118790763288230712482198278531452282128573781903715047217949302865746528343618995360386519622254445122009035933304899303309113285310017680853974277879582709085446378152222167451326220665928436646457915790488974797675119313930316224299677929485644418832729540541290880693542254162412141827253516018728319641972270107942373837472811352783115354454661558030867754994404403628689471493096785243587223487854178748522987489621939954916335268454608191091522788311147577016476916866352862670072267489942366190164264462702565535610401661346058664498774481056267831369256544825941978894374516006125184808953574392702079530172585578016259696833432258788016107956085876288824760304160235633220709110251966774298434469201138116226464620941760002861169150023674614241300044577693339643327356122916845636840996670657870654951487231401780166778427268073688733132584392853848643843202770550197145615816852251021691913239256770301871389417535368867608879486854131517615176436415650974612843331168042929674561032075856490885521072723327905892464253574973583194912461849747025248149418368513920639678599561911126779511944015466028944872002350270352693420241902037398845359674902446444620807800304381097629311884335206913857790085398213615218039905685817924576978499667199969777649112752697948257650463831701695499500752231042293442803498693440405859431146772105114563015119795748043406647906340342347331323874932916224034466488525619592906156969826241859666448310804763923404751634118987135341664737831677876752293624735170603235507057319389196582564433039034984597930115433185522733329531627604392505248692353170978413205481349129650416544925547983804342441336979384680878492379271008764505549103779627356423933467012918683863119472826136640228510093171352859076457299120957702070850275401096028948587000938777457560318809392410587748723009130006260365460928443879167356793323085426781302011887550109586071253734504379525809092329139133896374846270912517184668743488753865219499855746262103927045581497778083371132898057203654524929208214527604484542280829430273689349930460628811172624505887302757377602897371109133105399701028971526459035306341502892543879249556177673296373425070889304017588240245189827726083091457150730276536577245958308538724060887914119160934458555455451914368690047430125831935671301229629996733414895953007838698573618529922069165049280546113842777592270485129197188440617177151267859339451674452212793455650442844560138271274890661518170189207250741354829784735348216895976740827021166970737056465933082447499849297812420668673912701023037029426770588520580810287207227980133537271483929557006568202058139673560554431924433687516951986626716264401758486201827816989130931635507609342765327027184882831630200004350753670829513625574040165616594833478965663010173005866061844282575535287737968325003823997556392257431978493279015886094251158921878779973961050031360532795819650902416615624025630360464860528218175602077251271009985363000959377576798687115806700595937366530449198783279412642144310966418856444573065696304009527078398077150474251044431684736186719087710209417656965754015543494321446165086576398337721676250801088156801773118726469646508373463205416956739309462867512049200601383400902523397362149870884173541189438245969466481948862557903073619636124068552032137211513071453906007527866533337761668461587640035715971134870042363246772005260290927617302274416561573808462275584088184293204018763163242643089640451547458989449659221977893295654264857290586367301962627930085131400045089970116409633039352181347970812961129898036957196276457937842621204175778005163212887456528364819256119499160022035302719198442220706657985310494145684778505624406793636959567476681929954310270011727729806788244872568362185869302657209935915800321543097130418130223710889119622208101580923061139048801485777255111365421706863181375665291944094551875964508299562199578523322337257364335687753832074552626437247229911255802328754194862537765432114799282340609611266432429408673071826952384035779990374503184203180440539400689677690883520669440796532087016949026267982126076364111008811810594236136286360474133139587900945735635029054896874682693649472080179304890774980687861470245687374336741700700770928097000505208157027525140997028537473756609258335980938911449156993306053632962664844937819574474118493769571242139463477969209969820420958312683029700204473983028715820024660251399246804603091796693166522254823961715872687419906861893951879221470320526819242347251621930144313260168887434838607768423821487573094997992186886847792504117626428536822340501624189665744631278017639477325339619062768909741210589236955452301022181019608885274871424238922563038457955443717833219978461318954938089241740372356510221151821845512873008705206912864878705460075598655021887064948580914244279850424907308500744005581733807918428878198933630577024696941349014773007491965847598382680804539479790217123107234714472028846768392734856830583376898765485718422089430407164079014749193322779178630116525997855655141729746921780862359485953824476117180226518866111063297275246451826479161735334473995600734010526777415630717600047845337292863549163254528233845970813516735240098605825784226237996392105952933805887718372295472694333253721668851171161953713392908428269840526087493111698459988797439916646901128723131562716640961491256956285274107211542841430333158792078728634054089388214693349744560489585068152436475943237135007042173961179734506106476746897560094675799569909267747819515754083723647756949199490728023084543007518981507608848805676069346977016078496858507806026760765085629113883725897966100304566857704295911857243029038984530397957716758182640781455363978255429897755449133037965712776806566278282759348738238247713761341265145342480390126989390941611663929876852567610969469314107546131099622978518394380013004705190489921089232962475402887388272414477865330663843620775667031605477689302261620416021096096273750860461260336976329900306132767047615830080693449247498583696931328832385512719772487864861112353989605639938108703608115135694208636793027581727701503471808147281111976309095803847935118546425699693768920887545622580739010209786533452405522998787839868451872997574260291222813744847567532554122288783070851512202245724970763284663098195483651832421313247471121175020040573188281703970560550401545268330603937172107296799580205362608244300490612682563328018629313927198622608684887399655452288349907993699941505618083985729853167241118370652484124942437342101933095944012567937898263114873515609171307117166804622123032353141019869266477864786764917658689705041060118308629612430590048534302217014834445864340365031574107497932763369968283175863578684429550611308291428453129856788729491721190536613438449780314877438521096408664173305020450032422073322768393486018200554058724522002256390342786553225495432814663717286368816442759809418630952276329538859984087955295842572743727041512223732218806743760059111428239438902348178035173695126865629227862234219020178244294665412110159884296027419149894132302965450502355353930777570170780578369833609807074470334517418058984984577412687522698398079374594161699615866518436617987855715049882833245102768005959987213027816776877084677795572194537863183120486752455078687849463900460068921558630463204641737695484515723410223954457135205277195578428685863110868504458054648272206128308617855600252656092346363576528665285629604035955201436116104525788713566752879735971952674053422339600509185393249054780527311793950042386379992831793941497422414502175371016714478470181838969087064770640937363998945100813592262458491805960095280876374504916201683701846160673130151556307269888649127380921085408416059241951245404022744236380846513103814411288235720545594495956748942962567685273588730202765107268836755726187237318550761540525017640553374486833066673502641067528675649350817334290697831966528819202626031590924875411107944029258083291157530079896417929782514767737944870196950239552743678423062835212812512312240286474059336351368582985706895813053097576925020534520514371453879957805960647084660922471265310809529629842906972143955637369770476174793335015069140836459279112922729114378378270881833785079279400719420972380868098284035095277296173538940245879415831643064967784343359406363493171407040592493156809311193249157431959474251837006305732261687964255590677020144492164786871804004802259793274812024900817893528708978779827014210223556540891290228179563223448337576185604643331638099917757127662564919145120615244542491632583485776308366162612562811871865757264493837192354259413965263263855150484935693014802138678638144694728359098788167342455046142090451879037832595609125444714086090256850822984862284105606843937375124567290288590727116762475215350328527842791237528871316105432344602850628502305782676296983185789267935240318053252102314750153181090396778556566875586104236989233223230249622237079282087021982924916244071761353409679858097467266274371480886991608438759564491296575352281601862154678178323512568460497348893557552459313469011402983389308765954986605687798916374943813460924723863558529776404127884515747944944314610122630375540057361680228080701474689726019246100681707408160686308310216778167006695874776556101693467208360637286517155413794358973410783217757701833488805372774884675774721826170143077495602217435738992877684043294513138815719930325089042691767344659387063635539358702628573258935595578534960397169238122633334818170506801764168517565078288859985348363946319958065661100568123336436964793073407820963850760896987229300561572502198843638176904402570074527724672843831665138227286893095281030629727015563384704340001880396280076799600619002152233737523152045498030482388521431061063786900384520066864712276094052966480931333002113665421450408313105844211669887544479228714177279688255549728111692598954450134897914228461589275615664858210478883180280324560009065092120485453830482581695589513714488852475479432005799586016170363436572312044076390040018196362539092002611034809801517059937916166702254182278543708752725445370743390133890585252190007714976542184500363817116881624696965436804338177700209889520616002710935202653520388364014510571576441720722910901497087192254818571260462459399310574636276499405543058458931772545011346950168021020386360731457064632296795700160183650775784945896338104064158875329565572503585001505608737181387538913497989052277546640997800463446051797930165785072003144647785491504945153782000717219116330376492290402728233099255615099130477888559560541178708545637166876033082888342186066151690856475201559203970750238248003107059036191842292774524988775452488617514543114588006658640583961330777525505955298712367197269579223185137189113253764225373230047290711861375416092470310638284239022238560262745453019998623488191504254988225173739127434497044491386848359643780745569448979514553950668088446417341262031614659221821437729074405461403209820205972640089566561010224795463810697131578296294477640358849330849488844381658095516915011760238157775697290645677993067154546730408337594815134056153170401472910890294397765518711933575737061684557364924131896080479138402167201777155347552765844190104482896851832188380626179902190165719805762463063689018118710286450335590131931374652695877892621435682739201030099509778981023162687442235628659689554250238239151565430288853736988844872348566151696861737353686056524694335876352561054741063745856607858980118615694601112754148614212398608122208091528008529059314858550876660005939716280917382393979427645724402761524319618694766952884170810506070317487127403784868440256042858667225797826036309641389039271627772978870350828953392995671171378676355015747799807603803249933796220809258651845911114930809266370167023465822532049534710255011718058779462279389119570823598431695802080551417424781862850595570950627188439184222365891793974732820879376090634626145185156796605590262312680235699421870499570173773410338895572608163140722272022773004597724830057900445314607695334394281552478277582351681808205361045760716157282060131169308375932364452306680361295532729433248235102243261272855629695114137944286871348110141668303196404379116610408303698732502555940885400952094556676608550400385738370147249227890433072564222288588950058976552833173598041412624037423957333309025280507221146717267756217122605166282641969448914628134371696771204186284475191156922151755635853589571404652232481032296968029370990098699780862063694564264951990992659906410068578566749036209268442914357685513654573988094946782694439903369311597166024224014872263931761566206605305236140588780423144938848026816006220062254005659655847996421594503465624328540179708233931749865175365257935878135783313758404204304334636560189861696718170213187400129702274139401211873284260369132028148648162156731611078781960849425740765632684561723603797250496875595960350670084873693597815800162580839711591043830811113463562778528121258665819371276469305430060706855718382913194272746560469154716003574690640709333610583309974975843932328246316735785493754822662351951295522681387688143305639257352486247633542010414880356644540219428200303424925040994316577692074928842019816558880197694803296817604351212369901025395213368967974324026250210705487599104237987413046928625325217711168402217495159864639910475096265353174736491481467840308458102727205865178390075185253294467868263702984472024853692336773337560612958215063408962068488531880619382013327587915568435176054324299796072804623808471616745025397156513518942306134071288358538472210468877195537050220139641449991468285785807969516444875915055775866137725567211027665249648453582926131876725288480396661577195630992196557773733098202693079563970027783329755203796360456905897867308120726894808174713012053477743968255210202687814654235794448307724059902899010392434135369051000778868582143082630339861914589365314380422062046725759358087599372139621311755558065021086873506121368736555774176713527747632430221447415377084393812435205731713609720145209359073045338645540139628648341286079979955534507626177819485121748023789125175380700854044385799704661954124451111527260463640481896075750529134465053023819692663521116216941891967595154635566979411623547202713101017716332204295380519385472230196742499661722249078909854297583414524900797623207624844117185293765857674128802538344289539876585570458747243551296254098312334879713972290121968651966781377762769632944618469447400075649268498945419145089233111001693675433183882376745827317683972958963142623187402555985047958770726362358446098605518516840721523196216191698799117981902943069363558631486548152342327262047190573659255782014467238994264058026357651046726110678731636372682034145671197122479567857825480244239197309614556219595908208568949116442054364123354258143335813192835352066849068073038728875590517427977384233153277975635047660094660599074056127072317440906898093162146293366625974873068576134097459506937351998640428653977443019053533206036573017533619038809309358504335966730492815840255862526121119074546448723811985125613690422597068727387370573781833521227818981403978153340111626493373040166807422692659266444882398739143899555002400328383895680271239162697330136352267798680822093633872772221838738730301984164214755510353203664003282841035707596029071472465959803595870501038538081265039029809614472866033563374930384593258398245264562727570528721994585517670889451436243765883976597743410734079321819626737632473820593272767559729637339683204287311871910219131370630575330862598342911081762186542611420638032300395867904059994054097564887316109581121013870510748786105006241806077985811079090978032289266605895570807023126814453021690874617948616760251460237917467150938404325834516662217375414769360680733371995179856648465125541274557383397950762416556140913988662326222751027079447164466466759780709163033939568420132720168482940649688681380409018791226238285485370590836490231044641725044387729930180515166577954923622474878568676587802624152507019474641545576618532608700603093794951084963905373353505703611386735015510913665523768293789079728210689170945329747644108454988409585402741842916888652971369893926520208073959495486206718137782719223518801609457132559431239779157977334465186270024050143240499936121501191464692998090893602174929261332636521685400560892879821919226690501668396849970117135714108051320341453059784065952842952418371893943971959553210087920527699543922436258383102415238303786519811833931524842261857074871345122711101012040147675091513651649482472660550537827055579997813925085469681727452434284967982645111028380782168271713954042612525312840376836916680229685181790513870257610081851840760464498547051448318786814533430961877691089500019213204235917956949645017116911716025090528707344210070899799951452614183093434422658148110933040037161228900390058519453811916153466140150549992923128951998448159544976315032728030310565565834067215922203612814915608068278030882591468018594177802326041785216598914365299465793013617566479660216452282929590961509510889128418292510902162922310011430001676393506280434876902973358558843545367444369815904728396795741329692809179475196183171209353329368478907260078567369247341275548599979325911453854989118666670881750032914913352699221615260004098950050358692292921889241900556003568841632753945585015036003612469431878256155013641985983787423872789599489099583963331609429768230727360598079384909473634623132448463119932229510971905313593454954498055323986030802373641640596167980206264062183352370090011704869698575799865065823394665193729626348698148479657075783316593302049428401081006033086564494092888696548190659259239571846096710601334384998885622038308265624038674281837023088648805427301972992528051325449346495639091495676299900981049966763523274057567281903675776162828809606727451502622853522705859445454575677111447025036482755379587664857766293363130861243883115601874735592795478473259009209695432911691929683318245870149802359074177723425405988089978721805432202388157522418747420347644050117329313122267820683258304328280047884344551563960247840104604098398775696373637927548187635768847138468426156562500145928571819004434409114524427434469890291713652361236559762914127440925745388018859309966737494302687080887592044695792381485016070143368244171182681353796497368444097320528097183928691640767902032786134039349596282593211516968173252388626831116471443094323937195425102201301372835428555156121553359395100800977208632903585324027507538355100362181087209756129202195685172501440295093143071389808164275479417221798007458212653092177851533171909385988162861437436159980958947891275154723915402668173953729664378558203753187426330532633576614239580415551004607944467404692513265375844005869385253785998865368201592945257070117512773451349351934479513407519402671081885268077628080423591646791844529326980022759103693112087878501186432445254418218298125846770507022905835676090369664875699700262075650168841188471848367475492882118969254366541366632658531026959383754506170211808475979569556813460120360221476192892936504731638989702961154109601906116004227290336788460781002802147748633002920752067685340528563504174555178178362138699975772843208380020056673465494162407789907142448770716843743929004939967278331017807248124547072453318440920453235048439493304730070354980438488549839167695023061244897309056833846597871322933684181657489357725194504077718503572196055582496192223935536335900405526926572362490267565470337417412343221124652390687782658361092428916990089194653438719681534698245893540114965720579625130363921324980399306889721069822805202273209981129783772426813742988768677598754025400643622893281981094985941170164233956815763822734403165134855098559591626291718244421870599322541522635667041988919495899439371335717806766568686900518196591911990758411856510908054929823479964434091663914705179471556582418785968060393781959369189010546403594948458229230457629221209151501288765978653672386238437781478113594320171835513346404898816901657974915758085527354662182355911623665667531502737145685692577615756512063460493053305188947620261780024662945486722681270625671792829138771719477969051126208633514975696523942532832090715285159830597077561800874501586129678578267746900345966452755989416386365892090478061518371799496249868605923329198652295526556760043035078263746493374196341962367393739302553790279565805066346770681374975929167467796320818670211591770237536741292802221411854264862455987884385342722374583282694671895240348060325016049173841923266106590863772102048616911367127635905460047214823716171449425666586967533305177043452739356321192305802145027606893388791127689124843716917780388866669722160555155787946219394338814925389076296362695293537820451573008189424517234828857999611368353507094621794819749345775281050008199952319965012092071011395475531767769525928881123769708287805014874293754351695302851300535258585505520344817204695770853015450349567079452796451030844638955289085923058828638185763729908463046447514803621234336202966808689016747472631672229902390923239329407318455610975840025084279438055157164497571832871985565510803428919938008641395741522966357262431256922495381706162481688676293816487348978389297535752545997618110703209146400405082865208671814922609626496633582908514451113574404980796215737948647458273110492437752409384354036401969048555763116608744422231984273168063506484611632349423849634726337187745035994591060534901332345525644742393520175441694520877586298140965195331449373326346982973638721710046922234238161216989552300564303028116027832405576258050174557546080380350186110967044512472980903586184327060347772844281638532351988227335431171852662578447690207678157691583550066383313190228171230050439564711136606621927385681006379215629398401188927738713412360365272668059253947215176095169458464348533357742339363337313350854460513711959488172265476858350893441255403264446954653203013326735394703810777450552800786905476161263011275234826164312847998482253321965413357576458364627625675143875970962823879513755328632184146872521230005723304262163384791059149003993654678578365476690051707277638449709420905129717575933244894805229750316262049161152853087899060470484283935826321173967090016279189867263271811813976972247649909831917619957667871742331834938306536064300673521013534443596091286486675441980536186686546748315985517829626567124971869231676992987019784216454952521422077090053005570682438533055073227701570380124364831434302725835911419059375021597062783798564412528198507556724845921776833707429737833190317205712196152844920432625560994962477906110447344060164541839860249160134974857953044864131798043595873868949597528923355742988304041642552684468050426713020882209016782775096377658219462582613660832162214796934798391027877141800838206370167704626549949628056689431998633613647287640738095829874872367256047064759156386872190845563729179108503924674422358905433087157220531931291113909415167261632696699861370051393311843806288238624198785953005899375829377316630088912840021719442372286535099526050188342994974963044589514981876371801889159995326623405531650531189805091513877599250394827968082699763761368525539857436258125210673886118146773651555205335522511826905524951562239687053080067149316613545464070246879479011889679432154319498944884522413146129671629678232225703249643907471216976754414898011799011727332925343965603192128763243275445006970471308449638138887488232293828689231015764067514949078751917072263636580950092519930938448985969562112328281574637217669859395627011653472317864353512377951503159638358716780580517455635645904505866511286732702846131630988342644670311972190582609402309485808618160309656750765846698747850983732661885322834970343369271190774621469972695636296801520617700802428818854037828551786273091534122580423266293514440282324210457056381947482726370207370925801211417864822294864579189453902773053426458299756531038893598329842355358294146465725266341428850459152394281567029079193244916116220498144456744742097994096858306219684531566462336943861985014415441803614581128530205272648959147380625212752592167442454422304555203223955604146156554187504022557122583532913264436810267768420018947453551216113202624015565276631981066157497666700623428843553056988810298842823318631184050538922353345631555888401439659733345331099453298431198730627374144167890235827957330146801710734695665879778148541909341868212727411336642912449515679882718984892266669321198510833552653978035158683451541134150557952813469670375540429176645335129770220460572829859989389162147983888391386673306810740981752423324972861645879095150873591584244168732624030850586284059221230952626181905320105299507168898454152331011539057671353016468308936288683799982071040485286449000203812323087868205775323725138340205720582193100718364234142717466222476721455341612362349671164696598622600430440278753051515148072171668315106018656985715147593530772593680850896477062973378689820714429656082325886432921654612479959054417664063655450543638329982417708702709833834112973120284118640275635605473908756995312255028846961093002227856896922244452077834440525625276664422074593120245189275275171799557898171150824314714133365177610225712036357246705525725217459114194205461677547562886838605728908832925089168222948648845676704558451668363584733489021927793756227833467467625952341496625346669899439896363970647713722137540463569151282571365622560177136967011590404710816581183098540816108892313219048073329371002547623424528303020623119527184195873753655654255154363359208322520643995569137520389664819258245401996237503694753545210360112995035037334362789729491240175019095295165921617964136376719937202424464504340183298804779600914728342724880165776468989757141880390201377730265937646180394584866824602620344242785775976783956118505514157291452348376810229211050353207498340069224846380216757442382022075980646556338907154997846293435018004517169614298618997251566583391044007449500924023316401649065951350046814997878728849193727362375621462506589079175403087469235439174775886497216870126377100600642077495552499086116026363246185080711203234549654987885481885748117236374992124572924112264061010761447338131880122585793515369026372673943868461428475672478236276411263093127062140133099919728546348206762403701470947539194739923030446168834137561227859290853396562047962557621693475014368513324409026275150456027579764441874863710781589474644150153961692143145883648977219582712525669870198178598317351345018218534394057895709342965642499708830403912258238656682360433996743642930030297032360556942579464063237784303847464669092148006568870615663493315720424793888225320353007531635791690957266433220266101695222377987137129410927283576743606620332090389514031216031912262870583087674772803611184776437963822268329645594869325083035768027116711746045752148628651340441238497370303728892809150979866149744395801767558870305382476376963359024116180396262282837825305702890369016465659140810192157828727291800301663568263635517854304797335231737748112981594343078711390276842150726524156362375763709921376198480853332833256777973662952405516586669387141778271447649235743149174646239723504801942307563099779121907886632969091263551840968362762598012346993147641681387236121230181416365602804370248283756587154797079599688469393042313600197082063732472315360128996608100118050104807884691843814089536677032231130922837765565161515403353741330643310185205033255578644371448221503952310054350976187363878951153854576522728265356773478342314594836433614181840220382083153903149360072927032233457148169930557697231568322238856263339642459034356352850573646862792018708519173197744017021128823014539196140703980736272087056249865820837647632467021129721457728041741797186470335148670547365127746278017645418145818653900989731385275510178896839139431603875514385368889863901265003251770849192010917746289393335534614991028857034521499416013537517495692972057917477247796931307447975105473789639147626656445276338742946508001118178384469117369454699760350189162643238911002325499513031947951725497612289257533056405004630181392140851950987289137775084982500865117203682090610646974991326403049269162688689968519358539703085816779473303753146562390721404741039365832839195292804646778892756144929584089618191772956490432163419644724284690052771256483045712441381754250443021721705927405007069390054899109235228170217377165620211921606922161368891546949979960718825409283146308909788501072273327833448305400990365483777553047057424306638502487840245064744674558089598361554903627816411347176939009406175214608379155247604186055895729311823036966514747597903972015532357198402500368176332550487617200053075329179893233971910871708675696629914638204981267180929184181531113329769598882213001126569762893354735706207907830690020102692410222426176631624134984136535302019722776981746889801524425978557961896280023373482280012467517539870883208940610439567036053567031017110106223500067833496221878442462938870811213123542301531202133032718032300208052894577505936644791733494387508116458180809782391075959744636378346255717179442272085157383087063347491003678531604165329622595497302692509126135755442281988237869103693200764288832791673250944771833622022056472668333745490056130785914077081462303241136668458037854790736427602722617734302288869364820353234257341575678532891407493142415622182508452958464659565076605497520362826711023776878112759464016401786208461656680030498556077443791748360496732134121574051600459221934866852146896908336630125082745408591363121951126545003920088192298603134922792904283623020729069122132698587646950447471310292354238790961522200890900414544826595724984324152855854407624629562771726154811256291567091103084633372974103963350073966676268817307075723120999703037068913440431196826792000496763651939449803727373335599543270338505858591555717099812769926891314634493185918357260292298692146408986912881325786589619463407958163141105670445766920179195074813535628989169520820793819562352173939672681056076249251174517074968245477060371589725061368579941288688118036318253288852777289336466447692002098301973010883313777824422302726556680721701611162314333534005039711145784074699736153895633040391881797567121633790415077486805167728785821360621803061492948230524306499239017766727025748034401177903555449295437845546959161968235538929934967112307745847353847996118392548766548378694256860482480796702819245333023522727277298187878507014322046510123303068629998778545621434097246204333953635974046755461321582277659181996307841234832228192334982729571561538387268268334671746500079439107816981726488099881195095617365530616552877903230490429913849269961467851552313718562024182118869175156650140158745822477963948207522184154732512033005405416524154297592186772913325023193994872869813105635826904511638162594580970625971151245412559904785843222881371821524401993845236707577536406982359130589700033570319295034752183469490628676871226171263514273221225493251001959279877021963400988949589991409654701615124626888248539346214515156219302624241728290929299114755570863881003531093168420641532033363663334087996053947919111916096041446391915380888729576812319846650259461259835598706859042429463854198086303629038402397341518100621949061311320842364556525756772911900868626843759133012999904584526894289076676596677520309796201489877258774620853296968535467454089710681544867488906475181283243753484822761171483430812893997165154632611604151671745478622859018819173339064048256655626980819955311819714134733315184951870113616023215593742929401889237609371696961212338710577630088892676191558675928380773934676618891818924950824984326509465124668687424585814199187670584717052258398173813511702630299533935760992264986477101648019341905093935384486109227063475270978713225313000335989626683929457914482312726247645537688462604342886058723548563846865444334977796251488810940266699274637784552716993634805440183926327577176891652569005866408275857768831201575853996844140114538254637632481357200645097874252953422331090847115360107612530586499691113114189282496334577373982997898508814125239050803516519048374704194001616663672197089701977342703410668303636141096203249519049775410751859535034071481358295887637298846307057883262152419524936249028402321269327223225547570717714571603242378744132684547294982205583140192014696967887316685950207169048401485673549055508382843519081319597280100359805809906278698057315242137092729469446018853549546612754407383870311708917172065799268514191705355295619736587007320705088344118438497471042800772963554854692730340734290392870812329691876962049088129191267058969947174352692586804688623397917280972293115599276977421448844167508641752867229965522860856451052511701350709067860433113867571527799274859882183950623721662190222996468476083199674223850998606473375594093729852104998607603582006660680126467371722187185576234729770731266365416733485320805709022900623103800829616367071547161300138922088322016943764777105362168895492888219485445064623912145941732733840535868729832244615966851069616834743935225877875373460830296595314933805910611120053287266418064706364282683763849788920533244191718078942507938544921167619151846025062048408408588414883289374467536256766880664514218445773218640491117651966377204318784923152578379066412909896856291933238796669565022978345764379900822604380213214351432145581170860603637499182106011975344926337980058932055423725817286259502408032462724464985945682271029969353944529000537131311874031287703036701442901767794892026970082737526647107121504118349250254501775014001888695403514294058242877636727803006440629993874261255035477642441943903209326986150379307382852915138207719288275272028851534995793947092524606833159802489134004866316958394910858744456165888121569862523411071666017408405147879048886703359862962688222116011764294008863796999160340411376941035617862764343233210756170526236536580789537141704564901311173680651013381159126205065386149842797599159364379311026358720329539041693920969076243766737581376812746372702211337561473257416584298693210981991056276177741186860858671840847296811273130095543204797494633325529525277395076394277060649313050817741144141264177967435233115487177351947439103593510939252323709192749344373866941049176036497945859435065912899209971888075114408638737652663880761197657015118982893843673476149639613937719292317674045448286206836564265364402870924833154377611156164062959943794339010531826402006017187949607976743895321883718763031604023140003487049852753797545863500688418771294605670976646445934714793589537496072717439829515893220578252734266856961812536925513488543316107403490733672048255218379172517843674544198982606304059591679327967730721619399943154979811336777363471521668514153287135424048467113799232806433168917899932047764395656727124602251373326129839088229627907703668578709917684135008625354715418991667506260781697739875995854058761695408387780530756557893333304856475697669711799671718662331677640697403999605444830473464732272461748069046635199130526129575484152902547885830673093873739770519195817073893377448149593531983116152143338375266423346623945099330512769426206407363903387876068491531873816242472667564917483600585281788221793350804992661014985104873097274717537683335086617274525285061807244502410627633632991998294547443282151204054823160283134484608070457031437672735716115213574902864519177410525546524819037328609759640612526763597124059025099975572592476955381635970705030029048539324060285080188260657642243875016428404761037850680072176284604602006962856772242669575653942867329395483621685844230402961374295133325467797947976327015487612858020190676658052158710436376351105878432539555275645384981526963004231198307148341455785438537098065026323189587823548823282351940385337093454313750674264359847899289753018454829823382602380760814921614305589862510839858836712591533286215184372199065799835360545233098593290037384182615330677786564491075419842936347382393149287218217043930562539632914207492876661928994787013114842159938205459047822596599980030210581430075749481141333917873721709185914072189854946349522033168169005534011717765815511918368720404486164874885893786645502046815697874278989660022757324744518248728527783137536021641606928839899217372621008573749544577160764608419811732482867482799589285719382484481790378660908373581478404514992364596536284451275937426092889405427593935979803253303699796253717179560420523358822088261718125051571613598264678094763102471513222531621188010545937783338433575374294574457727622138017648694957608683043761919208066175788972521828318869780291282066548488497362421906306699726951645205467426470359351107869107023092322117447598972418966043573155443230098443737693247640455780576274047678241634857453401569540617043428528984634236495101795206746337205874870891575632554606334793146505086882773495585666707502135812487932476802601721993823799165296061476276634495607242583123164325523646396131715711510441974967168915705311251379946620330225829479104629119860718176353188080835303756117685617125084800693801679697260154633783432501296634824702105720405719318222265644229350946125001730026519240018425065888194546077865010466990886708179935869836954307602325008424934955558442721817639043662359676703470049029419791957770268992866448314896106865571297496967345853240697374265858175321227846958134056352469535038306845863503636418903588676705301504930625764348517612475829691480154254232868497855965755441955294477433876992893652611298162397654499737518134588401322263516544997034096176337386865415857665385536644785703060428158108128607268391687400899388785080684896300659408121897877638008780494292257290088575733000087014782306407197788693169467033182761840296637539159858951755469112674522580259833257296429175858452048495259841545169167385056332090863082269353390672291643239938904235902035935765667265100174749781227463387361088771927443067947738445003126948506758278092288125105373345251071545536999081187290077385639324699201506828510048368680800923084251314404797669702706003780088194542773145211959022175326776599829566845393152327100491740671467456766821256662195563016811796677610989324012192631777304236107406069078738115899886551825758076959409415650466261611393815435977197537390909001462443025900345072285008107516715956425605719648531343062066330003080635119481015619498333706599467578816258215229246218908159790276647761977397960192611347336946697720712753212042093946632516532083820618064029455111756067971148624091040312745566956190699756085470012435362482162554701546649100202985399826363125357204158257491289516734052546503457225666598508422184923346342483828631561794325009705612690409081720972324017087298372366727863476027624897473539086236362096563209683181463147068151510571387186046962814965404666370846334694978126109555033165590880134723042342527056257824877231794551916397691995901237418021556330457758073397068107543608941639646202151542300197725508018924326287086138502025624975714210111553191431284802985298738007091679767536639053612867690483630266502898644325261033311770289379527490945279732253433214242655717389447650927531327665455717257389498313911925153219803822800011385589140357608191375866942385758225178458367942098974951790888916181031901755401171552588064347816025812199577923249158872485609329801790027944640083837265930303617837882281604812074118841290132023481036994694909535877013057883466511664940318765979316760060277650692692104405137363813047892532985552244542517043584861946196015161219387815065751761871713476476864971639673602876972570187921748234425438842871600657779361975219572152580946815031425463230770463081909848274971117929215350284781118615173012812285833025972104325117141227869004379690370112316073267043779651421565751063308489728618094405455662146453162243293913257185580118917997105822135908445015482119221036343564992569800605495765723944696289414045004537783111590329359265997046488839134193801309280155051900850264307129573694054859069739656541923689264562756643682164139613154497779492327626416263670525592463234015457622012742696366835822095518346750734473997140591847975876240018163568172943984777121372864100141822551289639136616957172805946785933322175048987785898398205272137912636345810541105826141338890750317115424315148257351693028569158333524730882279556658776826323925435029099271984880692789124722168573147708511684729034763824087690931667730930496220319844670240441836297483401959837245220759383250527708990745125102121883001615453926582298366000057750865501919537486212438490111699688412604262688750786660207266383212081647972595001034131210891863494233877613752796077188939043189193931333217110503904193566639641167134464303768276004535713205895648335971648103649037923758817563355359655967906569636387499872356170637357017537320959206459020185201059824782156719456596405129003073575452828004107087223161182190305636157635407553104091133968620534330573757455279910153876915758303556235372395108266239417101647346726930321207392088076067347822820160806431025258994855644115434196963234371120449484582126717816131792688331756107626568179606424508588873736923684912665015274868883932722016254525583904204816481255721064146486891092620905584773738364612864897861222520126068289458401414616784290061293267395154589650381651971522847184252801362724205548862394363817539521474274742158116666410610071786359361958067242685893031753691500537635002091500182963145921601059620650682324052982002748660282102055733247942393685160227342368075241390869927172255646702227795715910511087992362523684982112449374394327976991622519666824627288046800217645510853522161798940086757824733082177483851697626815934511394591003552294190557922242615668486629823571752201115889377004815245849502051349690418594730848862838395624161157490485833554146087555951015658179525631961426286837488808920761620495202682135949247390710921796865908326499064011734915274017956566826957931168584436119685790352861057950353747956571201006147465738340719158540504555617647895574602083980665713238388296390376547872130482373664749041341995177622192393141679578231232431587755150262771109625474504793923740220287092003037909416614700951769096299946357917978180580729401747959563182540098055712675646281529645126297648519665946398257667473552917835789790419184419158534936548724232116610330094845016321170078229166370894439550954084884591042039625594725744766562325373687210777866945240150861353797130017131760540863122599230386152844596294190452899555752802950916760792240367052341352437786285598215023176145630597072525784364369079800604823466384430590144231726610741316206764534272716957284590515860962278861679725496211987373950259805284219266662318291593021303380655332417914761870549481253918371007232857942721692246333545435009195852900922389083121131735098059066200657785686860163607186051545011911973275695845002540009358795631859411961498023330458828844282487446885647859136517060152156015401121655933445903422394710960257558250692775874487658375181301753103530278244850681401512019631901910467469607282531409179700176276114719214399083754276585729385471929880784854607064401074622730551537591767433126363309592835072246505306814151636540174277332438808697780603748710757828964118556648810628015545017628502496328641613586608885915501769769728928495152521707213027042332695573514505357417658647879166949737896655725050641397712390078545066307912503884137551872011193281718945903046532667663426232725673230114947364504749695715247147248462015576625592902315980083009292292004287178162825406987920192619966856905486335864936983906557614669710764158455078819973319869839885425338236994868314359937162362675418176864791993944340372885425882102976357223008770718117168564297704927243312855679127437623769059265163567821843160016687647069514890044362121934367434322883253877160812933501852486420294854364265361472889655826210501419011554069915003029228353597723425163132159218220241374087228993831781569334573947751283679053010112340980447736904449606488877783476068881143173247601615736749628273434944661306696808528377321054920211090267270291138855051302188846932712672444868548205898492262801638855732366951580244461140053136975931708547884924042537567475061031986222550475623491431715708775000329768636020238225508627405241156525763912001047105472718882955907641947366940490523328522122575412579011200445196563876954186878164230480363384575065447945721106127208238632576880829415740380009211091221820918597329856666411175723811860558737409612073091698952381099926925107729111672989104556521020365318573186798847796911237413753705706363584450991686343942782682648600566841596547968008887405251517915281294229684931418322816651386653655892881741711940845564463392774278754229246781995953373696688130238955201544037690654070112031046188274089350651546164432567743902541186776319853461240502287346894678145666476944165026127072443332734566998481010341795784683073922474163409985000299489672218133281392959854389548036452563973613227371546516794231809677524492317227742779986389956731267655245253152781753805725286118449525906574916167609019304054598720196360062505896114748898577239592229412683149092006542335092380165870305380894004316110380018411070833981577074978015885793209402915301488325445077400550547496689145243195979859637297594757166090175894461698725774137041180071128578713961011154187061031322907223417323827589811923366962020717733550181337638264118894711174696751763585261740179935815155202397927861563389422459229357353879752870535646247797737162572505807802704125020293013512499382461262438604210265743854564824727517307800867772295332975966734196489668788660723209061209370754515806758253109648204837706460701027488208277245291523552511443148931478762624680725318012983439002605797798565306296324605656814323328285584075751211654386061936369037978032595566716016309836823670214222735058871680717539883949833570311846011471551567056180963426828349571711113392247068159863636931027876200929258941342090124238198785206795423057238164201746972335107126553214868985273218562284748206790604602613001487758033258576558516416693885753962974459663179884877230265923240622620891319570730922393315516111691859820770222983691692941324893769930384019986820117894905952214708048471610100292578103642153071825401933655740428391265280849953023807017741979101860766900251507930909808191978812145791396265310342580523761602242294590138453624749112233823639098047485676750006261992663311719147307125496878295269142790159041892523268117145552076972283595590346321122803141495821009782823445476188151792797683643551262435823315332675129037090887441717859357737867982631309584440985706733187790827259816081495655079550255748725191285241404524732806884267355359028575324725976280225300825009881782214116747898357308678148996586843570841010441736848853438961787803383682361251241216994893220908589956711198102282679480691816594241538934918397024490202072368358760526779411210038964013919975658488989352656947358414574181722103172995676560961164871685882857656634194512193977587460133429744754733735933953132175991700710811140876884296805377793586316081856878202955521810909976463234329835997658252530866203993852974241240032967647474301130035989090211977688546215734385416964859490145260405651517917145262577468798404712022824587863693009592950743102129113222060476280309457188350587950509518903018543215293993649233257777835206306530532644001941352276081454546612647214414810163568039665045935423950742091679796965990854453741189091062228911996519063746585440258442793650629080172232766105209931963532532780846144631083221023576149114221813057275833971169446910270854813448833868336796555770947234842360052341679173128504074273739253305297759952725955553043014252498750599299554466981431935257920463056645267074568499969160521861468417852141993334532438956396370443476087526113954781121819685659909647617476686303749560576820190091152163174230916696571250248536623757495098906375480466498617012858821391274501189277628602795637898564968731498355796553979664535373399357955635099374454015701112240113398954503203504019834287543741136678826691682579711789123035635966993811250949468536228731583946731299151983730234859450775104722234664965227171058080261742934283319151432301908972258345215267053719171757041800407064437980666619590941786581673848169465155423851472201824608176015676498649500414546092879429336766745804776715684657451214440203638967511056477651666202206617326001334603752020396738123989968380714226636782454600380641932287574850599126648341722595774252783630106239226928923806151113241729682177848946395192041627992866278765220513493559989556531850297658417058021291669082506159436342407608370804761480376719729312216244750840327484793065421561918040888965760961211940087140401051712065179634458900616819331648252684046494431313994096724521845410637039301832709394853051458851373315934559679284276154384947310204833649929241522203013766411547842593746117207409064791291398377717382948431619538017107190723934704593057891940928563116445770764172534689959057320877155800820388365155699890786968900633427698637905721972148791747014504836711108593214621493716360309373304755542887559625581174765372531681660928571684537289975425861078368915506259438856184087109337681431602911784459037279077530729264177784881684831532654053635773988447478859111834192967341706683570782305518400069629107945645571328819697190015304147791908124798032034995515560897895458697206950564608535382569746960340448339187603249068976219252591957113832349565394891246108707701270934100683775939936221454765746989219432593203996842483590900491588312705520023504316479171965031331361507139336152821507755944448765786516801494799252134890386184751680906706123236216064184320263600010483924901851200308273103694520548038994803514128109247735579736861079845736804075782414434971542848160655239596581402524824636613698451614448165611081439743813023575418031533217475305296421217985234256928975997261413902861525595999427994393684788653885752637177678284014858215434998745204315839947960895438941565844349392794237118006561321583367695096607287471040520028169370435134182921252074884954092403237831629936765985387537537764416668570788658209133862881311755453482614565016648783138117059187980276023309747031899619770673091245832985634235108393517028804558488940200973445266830671551351117789747219404295816192985606104143356070849958627111440936759644171249467750576338950359559429779082832053584665048684343927031986499933229959112723609077137706188864620305145178207078531378056887320881507854965225211401031571948784988684464986708988538406911217946150413594537202089867396451378451335629042521406111635741650485801922751716289069231290092819369431357609507704763967338461247318581644588546264705436518273501561222769522428444656214119422049383127223036428248396144645888274172100667975658650633103054738767155232998843904760018634211599904024373449741862801952772125198588278408627968430748686207991193688336665085598599633870880716626907400381846502756851193425153292788108930143293756111034109436102617512797324627506351680884080974641332119496233107878761530116551764485848613699380637975981923976813079750137862820680094151933391790113244415012426475426499437486412203016699999116094708072499814093189648403526057888443160938329852298392411067114641736956489457676790151638927810548473689671324453473114257205759255903913372570639932558807214223977389255501225403152564461989374141897829972497428097231254839239808864957041130155494305634421194291147892122273117307400347719829896428730623825198037891026981511259514041151933650537952714858896062568321169756373527657968543549964642774214850087755978311566233382178914921208459311050762312485736643299991381030622034364447056178562182627291164756282146300622365429247070004419372418854293818671991055907203581527962325182526191993717274181662460417635777902159043218531855631844343334362164010407191833039198134424812915949317879095267848998493282256976341450253513719369201545542249725551867516989641177184642003894496346814559844170095835725384462170678904516443529214978625543306311834584656696024731890256246944741625902864077392736586306764062564306178176510337712673380473439496137260955535212773747616969221118495613267590602162620690858301355113404791464324777556519014239320845216075348713514631137069576418969505703664105302181210309271303808815206583604778073595187242366225779165883408483405566696969537597948414574980470154787878482090102928741804660977849188225600338879501554634917406324767356346608461382253831505837576435051463725020345128765997515620645401876397470550599632017102607722758425490428458587391287693502113736108337269975892989657773857863533149401426406464028311480052693294505076209890834508612525512946285975713362449140918837966194983750172669505794128631848193124837514197566225282833190794753513882879073599165580014054107352588750635435301038739886838051207415370527727405644239539431687261560731845155026184173780164141535726305029114767005826691707777206382201762019759793012087375466052825036556077633912250195584741635859924913487979584834308864804878126187429765782698518422914339562685179511582290892946451784239871198838235487434040936354504273940779363692872084863618575118992464129155100836750535728839839924124367394829546614987371022703748718328409694989915335382758516844613351309750484380386041679989421598360361514307199407810586147763308633985390894097204145919258117705156630081027828184073358267366314653203424984863619281842303529216658625129473360368028916968768111493934647864839847269795899173329340476493167030049038410468804443156003686764078202454850666959783715646949256253554765197336543346575986787250649244392290921564627953324380624756971226723800988109171373695961855463612737948280258709196356125638663345301808845933524628148593023513222048709055353095605163673247076337557938080829898002784208075399607790784582878538976280639734317713319824304716294741637812192292970605387560417010290191451174741787953542955593264039466552958322269416794643785797928749821837438419810289103641289944186023795801445558757110904335276125198176729770539497057415302325072280777854041877222462101594559987819929837202173920283174620376808344807072751089159038025211116556164029053715239148392292011999599145944984232353354312437504737139799376441915925200595128236465539624465304172309390745524010430705756871011105427869584311167733701555963074276461446837681780431018382000195329471792817051284041697886781940825603780690576496040865400686128386194718743688240811744288507560509190036962210660791948551081207350492983427839744876684613799782285856277060628429469290368051643139629733028778640419959669042814395781775096342175312299873742760424628712537080883762718717724781634374627141476171722466483270127815979377177157151642580000217334465297278475443560055807463212086295228852848426404512009712261418975367119687847451979901191024554952274306108132663566236931643527993972777666432451079677461616732797944521914430653391072125219566924681187798866768276681608897226331411284670031955549631172451438098572527917557156225604012637865158385431053948982693930152001093287233136666177658516933627343496369134711579655256902375553499370607935190712187741390565720641168438419867187120488613052308041663944314629177076070455444192324417086485923558792145692774469356539899380985079050138434166675554770745706839267513144027604485279239657149693973931282614120611410038165550095188669905898298079815398745058965425636510836836156983490125273655413086806730544047023032452712331934095469006638799071605551430450106948016719080489845588840014562003694401998660517843972018933043210409891630844931456113179700234169449091989158359086796778459275598221592154608482819250771575772962091234021225674873659766416338344433032391423085107595646380857057067237401613477532446871319712748068881075047808063643319025227820853968104002800198025178079139758893641329423375339096866279073217513265676502699953422472561477158970800080757601381893560346032062638073148907673784339482969954263878245952318017718828181126305545658487868644657761294900847575857856128066364711289399533512985118491352307404391378323031490193687708873070517098800851248669002142289455840711833200384071203343019402946716039243313756284961662187779619661476215757204691262980595943279834474466826019033220289402870012662395826941224769545739880278291604493858156632599946608494552250085267599209083141506658271673993082784452302271144801928200669607858986572894570694334892276524047971166667173056511687474225219703942888006137233659458304094256272818758505522971114173150494215823210202598387087109437915811819921968195243892244404452474486776856741682335000749690698955821605028159424340233286947393593717959770464387992043562823901041755620168579854464001354423065717028134808257233982702587718527432822021903371036598597282495213528310429770456109173638773042486882896242961333285814436518380494268857209501706011427031115439527795079374552121911413631690317890812773719324475754666715977218587135137708309425186951383337059131392700016983702286455630992707407826321736000738331364737196540223231271578799771745323826961310155902084120998979188911876178395508607662178248723757793479044444568757943776439855521388327769359229040640487836130998840228412442106076488608213264229861158940931400839742188263044737716325656130037339521490882925019297055936195471317819324090086320173772444872653275337322704975728781101147990380604630400038507702759135306561359697444470613509390619071630585725873995425060693511466621290375925136755110311424512367722575250474713447462518562042703853263680185328203272638106875985986519554651427394152352853243106841972414370575368132504733574398776453314606485664894457815059251153122721868625560783643883970178276896190574682140312740603771020318806097300132883437652448239230414787155418855608416331195163256363382894023393141893279962747684789157903072781496510052505579646577584753701160396198583051187961558108163790643202647331761377206326091179385582953865630947180215585984170539850196820101833299471609995119971893337209504483064808357282765785503899233342268269502100954091311830681193046598702044111324120023164932568468177958193230989291173828880592250620193956739514437671354953735293093881781447128001218507805351836880086517527100121400726992723978026354567344992221943510428348712853426759890688134470033745923880912417509992620114230694048544967154178023491330930499326448697847946037735762495277886325590159267076575872188648483769118869859453989708925224185587148502940758353919931888004081324465910205856008248400311151362502562550925632738190616132444031367276840862361928054985458951863746438767381368595714983139130106013596123352147497681955003418558163836330486451251883189195187360380453495340259935479775685188744612362683799128205617867344252060303785898368423367495684781788495315311036125038886861824807199017822249235423623483346752157668912696896777063954043440258070907427552700701105719492177271693119179566161518047530289385482175338028850788995678644933422433127784595207115477989756750045161019607803188099199260280490999579750576694283672868763973497695251109007997549036665183834519709040736753656387846175542977001998390835197535127442588727579877669935655263653065325944935809549501802583941604289063403426287336807875989211614485196970493209068509938622468468284601862915287304218027748643311036282010047811629454298374685553505140795830815819197151013189977745648923316472624160702552406107341920500138355662690019262504487132894884492609238849475656910381027239215624909628484740247418125079652324727942253399168934743108322426814867623140016598700718065648301275630485031794001518758305723652942693276243183702219371648492827537548865400956680421791280996386054123180293915826763115272571088050543042311590085313266784309133372961458145461095176647539680592609080002227261831360868371217033805617877157523287600953684895689795280796915875617387891411212405219535370355303782100943527143903059922696807802787730995750529627619495410303774570498823993713791466703643933958168868484549533001854266973660011719889969205052207269357401441177839652993754115539863286867029596158170010848255356040754578881283747709161520635923025570148538225252907828608239802931776821621832198067962570903983183038741649222747983644887999719933604547292260639874100296328591753031055524122910761898992424491728364010980700211746010568865457740391184182890146189459666022727893907507766424912041061874566410661739645444794938393787597836794398323675820876327036170497774127702125889759618426196137753533444254462224937815602713220547375772026779082385124185536771504879648451253792563611928407605105896740938044222497951303499061583104899642061978423155324060983795434416722072263837444368812158898633066272013312413336491565096800010659482814709182603533512491895822176546013594942480006658824267500306230161142400748869641413366894901568306625764167410207936215090805274398250367371902509432241635395020492844693572240056552587595922030474004386091387235523083563873798160411312733476615290558645828299902902223730633941470441981282309580049789612836803479978598523378970811936804541080492244193259745732443721890481018523260909450276795844135654027013291432384891408685252247494226178061891293951394811103548225592210881678838381130236563084929111547122921522050125159386403454598482690571696853281119691148080585381018039731104984844497562273822575665083551255147912398335443619415502331218473064633699872150550350357976277511213123473609930756744159192930416658874316568980747838574704035917440489410168457787854089720265969951366374093851751449423097257639259452739056567777503849487147865124719172526209012146574205953106380430597405740483922170507725761399746681234888162820319289787623826051597116391947144934039884299355852622466197718130724008363280333051419702806341211989786119134998173154168820637346092874780335021630081445907571269159531517313104772195214741288820851655958818641694776820008731564133796175226676643626611419886738611533163413420677641983567268358368095401478587453195482773194151635083935585147387389401550624601548072155691386444509272388071655299429534934885988493940865443212335231623129404919321798154168479237312892303283616019435010470587352757548987592173046031590928771719092683066015729068235607481599236146377492531582529462731675819162500915361672827037844066001430008958393298775835038169428691585484889444836437404139379087557080326428078926565497294015584356138957313989929523748706905416674929594563460392227329812258121930875561146087787573098689225765557730477074375981050989750399576287993295099574015785043243726569547487856017148295304546882691573605746950045151486388198361730875367028154266175955832563662036465029198123876432666559199958106905719308830876131690992992062218488600125079422593256192910236134869304113828910821683505539928179539692371797412867916449838517107902579596128993566323636115221498846043531993207267314164973115486503259823069335773131399004315495239721311363924656235490505027927684844047191844317109402889911433830930775061254075430151013552116247168909848136065949508599592624667283310002766045838110716389372532785383648572511025261627066055233684348439786111157574769988666569089953200479193315246325057968385304475296368306044604485390078274430126021366957437332796951602977058909468256778447530052043579296010633525490078284566687878349671663553140467471640450916094849085530091615005972237258292716454952793370089122558130402103461945083999250564203612577137638917156035090487727326540715996717371967874866555504688465817798035164858720339943877151127377448008293838156980479344544164409517490641210648719840707315213399670215097866626683835475866883240677162135000912874360561884798665751008943805941043570186640090560615980910943997797219278211520414745545527570449294084580603581428937238830498594044447957729440917144202924645713070649248476171151587813242766120401032619461430255901212538533442809231531184146617826083106206906464372229316853152435342033208759033455758270791073367596741641221850040857965319465992214389805169127808469175319055480340708066230554933573457310821965029370479834771211980102133846399235833642927114182646502532081899262376531702686615702668418103602690380820512524166524329311739636228838012969492530125998189127498081426581708928610198424501490266100739020210317082571662905419518259821859407462801850329590114951457758852937780335923709688980320611222271361987760909856587104893325772103853994428288695646118119942399062003306483950300833994894668539933723003267604379420831099441243001979745716301986841847692146448000607737164868166276590922613636228627799741581946136486471791897682205973396819305008558733959259331854315593957821475363261656198815457743704768747187927948829326931006141703371263665291997212723272722598696803476359886523922423345702446610266541376764086485469606741516130203099637305653655913336065218816675607000019706162269670304463688598611486293177307435910582205394230244027822791782754504814806426922886589703413985631686664557471223551474530313141583566517990570395705858427290306150655813211479954959428796349805141424718907902584296135541291112566016715556333877783259877614905297951501648480728896011319640936682484538762746506877266773968126649566740236124349609399429056468589632834753701424510237933312000514322057207099592094128426361773908973056527090808108969752833091398508499139225264036200466979084778973006109539994764477358427520427925509041417434937632241261909410259717815792182072255117608628189639744048193816296182300689754032482597826301845488326153090741576192605820641747431316258423735569036992990439653810639192958089511301437641344776576356254986590468503916323037483077574472815596715482847791521768037392485774997306932014894777357254792226809514916286783296597214641376902180613947368819255232806074359401704638391096153108598481916686659376528502886896237520370278352081573530045595013660714912616035746624058520746872816757001336608850945967896599610889978221270463400529215300989013703269082975205076489240629943235742071443157739937052696454957425642139401823093952250906136237682986304031864375993252254877456442096254250992513673780685933425472560636374354061721642468932973222485971809566994176303708579669758678204149644010368456844151860958533742233941833064842839562568852702336102912140484400588505949312443241540771767942915592287942432493712413460505957079664796680217491578018957221368495422482274675752377188896786854458831786054555832370612548149713585862509654381140364651376192012256289146417720088847031564109767309813052554051212049466821752096417253909674648470342423590248474441426571037084510774831816348337087875198014107486657469859366978425952975477104580541320001271895071426613079512614571559951034375985245562405038700596538194361615616130958618559719474481950229355928240675334428351155314284296732397364588837468964769371914863118680446004476509631606369048897969386107091825369207982050655614982509024514671986727543097141383520427770093667526439968655147960211524731897747866636708264820430622410658545817742520061677511948474263223111624118112813564620914476024221344486383902580754752692086137230948667542682522712826494220772423653104012460575697119386325117783335508109932958740831631278384154988689981128126084784721104307094335876491219436736467994426230363360978478582853752641741680980829009383016050772005518084189848258207005813815011653429577726228024659182165523296598448843907329932550698896564500238371008057955779503625933014551873645026920663527366689055622371976716809250173435662741957884506496626380682987657567691427689330222006739468798190490047111821428875612803380199309421285401251248660032140051471070983035981328462492506367890048440557414109542531139619572337823624003959113373194158896073063956143987183942284013880070145836633294871943277792867493747362899627046712045229108453822749562028799121082113993557766925938128079114729906915660289867180695546267183176841177975408878188096831978802958831337129266252424378862294226497910780654631352573528835712439340303424973241652511580283712752469064042794015383434300138936051368815107295964825676848959315524347473295718250831476840817516870932495363288164166599369269673682767772502815456515915127341872942260765405581827055893594133208722258842674999121205999482294868372655762828494315965742937378401281255958628898151007880843616517418108970631002834020237712003979080686932011715078166373372506169897604290223526399160881280780338427480105205266948479989246965908888276216167281616646101905851249371242349187880830701368273333798400358606334571626982610691295642801850740891681209764401227688882343373335146734256336981530779026834321017256008279647731502468423064001321434243006383860646759805199344325598816412693807464190094540226702300634685995467830400510217589686979890362667498154746499161878543998345967868234913143916127326332387198998354884888588760524126403488619086792476051620823953827220097777614782760134407510905061688333684157756974385352228468066372692227478250560733914834645986942332597605664101966406074969387894942023448251419369082182160456482231641311297825254086928749650911903161320361457168238692413586115824319681194623363554178679847274889600581309782490856707425906246063424503850202567520718931706762900071466677720987908066474963954087723788530348767327277858203023032570081156650810768829267667454729983299813286171065848432288218056194903763408203674319150805694869071378193935301374054796123981556102764750936763883531530828199257576677752236840365638899833379661589917932150856902480947493652527093159332191685100680048097129113019399211431156343788983887068175235948000837881844788980642036753939531600174890123571170602289241293051754604030817428320486283950642100059965779468276129990640818190925545998450902669065703098901645280339620799540702868108189581686812841160662222964721185252880086392351009716597021509392665207888470828856103478952600837382701543798815195448051243931170470619920584717266129045965908135834627192435254639624806710624187603958110125274766006427539350254505653858350092786176895966180492665329429602068814093222301966859479774922575630882913007366049430064112345847187332577497198257397033496375386868396834729161936409832067661269575141776683268351812735391668381110342396377284411024405572479694501390480375474228111362007983734926720621766483934511289708550440411603233059327087903477705172962501867502485647380420970743474557505443572746871910536901043144795276245089745467173254255435578909498766096313617809458621579640105114583808776998322533608947591576115196861288185082666604634469787379366167990136885830234081150692806690380881322366186863148828813978099347692318097676391837043813922054096214521196796108595816888630587632201818834869997407394964580007721531082518200250849139024374616624859898114911413444467555509209175303773913737920049412101568126434390399493135211438484776053686876549990498228750791340490454119469479589881916517513205782011672710410166677744016837898680269806687182528085926853209795858020579391497355225935755697974094747976548481075436185005425869210613351223762028415320020794872418150868163255657573029119479723963275952092212087461753563412539327844506258304099033548446415287852222859347174239670925475152542973797015960168603374529320282382329755863093718286566008849484441936333042648633574577504359249465516245191462902013508957929810525360901148846224432598948222075559178386034398324618123219490706945094488449056406203610488121581572080462888429531996230719252187864833601450382815495811794182845008354327428182973623025732755042451492686331920817689325793026021097266591131869430518519229869502847474377044368867347674905907843722568823984525576579178243896471482601106179044633200069953593164047156915969071594840695232433126416608363057367376441692066971899304706440443279102476617709330412493640297365153615275022099359519739353303263133577721435114269174710568237053115989374372440983071245467113056525764161696303238225698826748470691900179971468590056348723779632727334875100715773654345478263101582317629946387408516315394681663892775054108596746057549404282142228871085792008479006348740345248450733702061891240985803569005835324023749986876534283845073482156902637380697255473147958523579513805758483802031280672271364900449665544635624934284476786913732531319358867591866602358852145846295335830295725365479188665064166652116011284247780892287368143972586194363305847776611428075144791684145851333282822495418324454688721868378078882552973344168712325791199022961580827013452768437797359430590193166590344465982534069765648139179211359886678145958557470171747413583569498856934387790481821669241662315161127290684812704415674197784386216459315843654844405595244983715388100126560594428604659288718179456577518504505377279575908323313106828315959142477562957482526964011315796963152783044736076280936241730941266029311325337085356435723976756907323690228645471641027320428104501888554759770421483008139259914223757688597333097904186997610406063887776937112738678755872052059708279956788010943311160908424361797026019953768720292404362800266221777561752755453536956285855247893243165599816521628456150416113611438232716589600159223690134833924923955625156974562322310547148777539281325486923892880830636815296756870958233088618530028282179095579503740069097983836830772371353784416983011414992433249555919324344788981129029931970544308504613246831660044277443905384103844335769715898812389197903584932131069621071672826378420983088177258253231328037639039697952041818707997542250584998808781929670921778589380840725912013864441215683889218307799597310951081063451799235317398746193245193307396610890778811001300337219075857577515282054723706453549564141152536929013884547645387372832092266683368004669589284304001183693972254842197741630847565502577324748979086295548825920682974113030962894853170081241141991404286596044900628149498766075536667067722952354782273972795237785046808107146827590115105563925580089036849006358146555822117601698098751161713354275452770228701729991670737656275848186516601237666838847547989619603789318100324693483142056092951249930842084546238777321070757394302727177991922738803799276797096118606638240003773399450287216669378548524288718825209852569214667327006865615327987174234548706001141808837279705574274492857258706828325867608067705769524720864301620423351580279029317764651740089192449180339903774711875294397869489318411641287988243716959880909862059690421851566307253403115907583779567258047260669053795471289657540950115097181909917850764562168546821847545829501692983095479975620802194044557902498109855536539675932958515917512991093647420687360507718712022757338161107306780077185718153504863350607244959008245077896537318359306897158647681589253901711066316782044554046874477636827552044144693214485823328872671589290089530924371050418890546780251055790985608018396235244421069005076791774175279409562392243075818348999769303115299160179777230862358743180471834966146596771210039801669443128330242273441045183085613534941784029551581958611597670926359783916974980095156942947428979326905234901055248386827964506646840486638344793395185504495401849763286102653555387720580559799959718622674019568088759907236650948618454765649531472519382369980270404970273499428941181713517488683913383606873513704938625302644227412042938502058871066669081762532340205526247079251360436649180090015084501881006961036399629965046135163948677401952727205633745921527389672320208626832739890110558323715134155869011507165581261540407530277638853544925006341590962872024219395718016664655099688912322987910480365600575499931441605627356125963054247824214960710574190906660817107611522632111269194110591162548569727328175589446407994505993895411593639063581335822184862996245051640431796482212746126643667311319273695947805732446590203216080876102357759045279590531683306667297073781360534215452120416286275807403206978855996408078967389688928324814996371726709873510691811205783604651356508177845252919553961462353534650384988714279136864497678158823857003943822655804866553180104959617777844389229365238485396530069535176154912707907084383355361024046633388421547806689129614808365740404112704535779929275434911282246970915003366641246156208775454963712890277439571756686466454895905170665545013676476380319019054746733821161366903729135118030451725328708423755890224249654155209893357212624327128298234722753244674030220314678285008266324336735268994393167759685064290823599598974844882423175084473017124097518207336303620926814881603729980665068461789675971525512016974581304570023526952039538393231186336775187687391400320460600885764252932524486547520429219236761044295716138509508521582495779630498149016939213095775373604391220749922934197882074517009889056049681107660288640568956590963267185867494319183906910670993480094460410541138171877809421554037755362787437775856469817397947821604689200070218562574137977334467622613977703848187797451724849949532176659233941717154453529069963097032638386425830677490699623033895139972895683197056018788706316124361427727641489965253861395196275845972821857226817468044225618153102739500120597228375525362002572091874291437964739898911039834128427858718727751403733733837642792185809672569248066184178139965120992277657267294178552470973433436948637084838012042967034538916735835470349065637106571385495972049147619969537133893155742289439332376269721308562329909825676371776696982261148140679769459276184360321641696686885252674010400432633413930844352118771250109473245183701903773520385231845782273344948544159165082862686395909546498313304977183070970625533423908222000048601696915530391705973124097207010508863000990410044433312785123584066855644140003599426450605935030769234566901676947376293995180745731425299577765616578607338061560551992495623295021889294599212369905038745545285731530759800801242764477664089207196628581137358206029776274708493386616695034159222978651987549603115151563277816723621911670074661529232472137505590962264909716297754088994796506814192590230345114511697386307388205660930622778041162679688820980033416822568861879445016731119806635997827054566101085922134498252503242946458301675820182363033155558457311707447776912404165333683305975231407879003656896094369222810474475458355877388553191981247083720924851742372614519497916794799556895912518275860590738744673429351770502380066789368152456725563797751294030458974023687333719333363268261740581667665100222684787791856900353236963862127345766715245694654999898778549597002103551937540568434230942298257487868794959833132825558077565709659341099749192743282710027526899464945667213447545143996840241933047284117159664174733486824869501828790087631823804374706401504415081092651618641621099655336242110829741761679868542226538811961573712251909216669269594344469472907796709141009613446323903593975115673491720095947169816329555348007960878554128458508067874303481136163055221307529427822597005286127374844150765147262372866273369271999309868398038128378132136289189617633922113139944394202526774072322163559446862551324909417400997111128764081643331343544079247666859486688959807765493154768810674829654691118618295071400922146514887498155108597516584342877653637781468096795145397113964562471639108674900253357810931992662074117358092028910329497075570479916788390847718210356083072386992293188431389280356819120384705746141872879884996555390067985568796806673961846350188926392812603916277092152727610365704998448387925333368534155482985296517699616459912565101969591437028637708311067770241606959016897175629729385451195968221472037893175608887485945894420909116895581578416664284212717498469808139166986746181477877704265308922387186052745665096059480063728237288516767654035877105827120898087585313508729092226343413596053352632650076666967495789127770764471181474049476938804480803384023730053906291677611778335598570448512433089115561132974258069115628538940789295171960373508455160457044795263636135415108971116643018548773400131554360526321620969860068293916773961894050332389779718262822978833789751450656982616855908742114018496941152056607569811763517139694446028706084665047832402082893243620319152646639000128127200627765801157397115613502859426398998381859957932929650210736280579071428753502980984837119759397832605266023217606945018650335021215163873319460001934397117224103926049863144229447097791527399402187674765273262992642466059099949403800817290074641766270507330110622680475105423849314967396808009198387028200421702128054091603272346315306253477140104759579090448892722014929998878803295596555975372458553066814221226112675426141733449627309456854237735333736454504804582868734222077762692182003944631706435042878120889997033227666305221071951139215281496870996480072989037797173292336775155746196204009353067904115095582739954442419226682704749371318055569308540847607458504207687938268438399113705132161343117959806117816798995099419249203557976514029776745926043407721221966615560222725927925339548501672441046939123467293011388842848871847171259162574463594213521125974179700898453812478361176668042701467875583224791927893936799391827747096750002127262106370402580449564983697891977512420529274720937060528583931126931347293466737929316666266369700791766472681836696449798668734787769993912999563316432996347047418858173529239104302143849154923779235483858882005143939581075750819895590265162921054244972411431969149369675076163043321012129471208300517736084981802482304786783105747629099623835154151772014882135737483888686643788852700398410184899793237967943402254512534175596467238778587650633844674637085081744071173412309052418239142537252782515672342859096442991268197528139484377510422439671634156406063050203973023148663155953522316829170483579722638051754449543136384972058461089543893159807600326443934780243654663724918852148213334293358383639635339039865436960685653568859592239660996841927076617729247646606172379075381003063988021438898587633189565963894527183464277318510942548082655169248601752760294042937144211844283835819968429216801747871121206677714369216712193598051887646975547196701985233564319855706012276640894319485017898314471834592108405203866779164103384989731409406402145045932463172671720503538312934965818150405263144159688789127354250635558546366722646914273641271708990776145534471168848253075653890723652654396719106311217098142673767024768594383692446893251851719544602059777175115969563874885342047539877587158037399890482465010811290301915019953131350606748605103350629290720585268019455912593491861685581028925370532151588589893059296039304785240549114316638694322086423132935291311668517813889876849067090823285435917420957599225095324982177971971703406930773998177863584397983385286972738967228495962582190068073870957559476525662481841761395985564490532062131851290005599595264778233979740154846388487659346650617543386430615876668540009619263964596919010932319143541372083940774236025298320258971052526107753200151684178790568938373057955026416328251915059700761938332211421739248488922655609525407748342111589864474772343726692826991467524523872850364537588302806290798684397050806769707393080592348060962493933215795672405018041149045978967511441894797090677604337649898413759363742316515241460150230582368154640661269766079263185903031477189803245027599446113591053308675360374451511630744095335610140080671589166267586790054027857151819365886238615743305363599864424409539770138968954596577951106234086795452690596597701831172179470886845670594329977912794704217306394096763008746556754638727441713584149465161234559002692967289371746350956112565941751354693015443489483378432937797130849847684554864438374739732869200070326761290083108025813358410630922619645357818977924990449347047917739582160491781933313664971639052142385798338696378804815874738855808795476650186504818192360968393527414974891443206323784164738158298790163348131015583533308190127586704863051084743949889548783540540674094634641184403322635294764479006822414257026432920621971731729126242405493066333416588883007149553779454526542136240860127139360131304491540178986893787684197033265699940929670713182920069102851430007559467142589695994818193313624033251440344125377322171528979471590381487029817769841656161256488903270306729144586689027812887900073373756690967959238278196359469909804656602871949687607627076829245801245153758269717920796045780201314138158860061918188816695197865085881795147909635330169084549392648292990975422453532430959204804604116404487380433045689397441567236834918631460148960167995582506162366392593745286775975909181925041402070269634504886716158349152211990393784959893198717131040016347713075319067156835204155618237364163176479315074740257843500689084718516407191490543959129350476227670249281265391464286831063238725749781608703071800107889224935919915626161511744634143271537538560790694581090727030261094058614995917179940517325596328279655180861245228035624202704345685031349424996008778432650396622308287836618619964787931873319589793801584713843856005906615107953752641317512942025413504666067820782404100565921880300903952814177725307302965533884496886072339767520969975420298157240714898302458128831788190503297771123693691421631996747240269161216868902575586057197296103869363319729757556429255352211929265471977223165955149108779977823348548031962241695337143976135571638361010509646186563930892231468151491499106720190371125472705082759715585076239506316681620331870552311130211555770554455908187484038450606514310402059192101453322309977462515101566862233691608808499980090985702275700086030089421169903841142583805319699030658392790632503819437168434934744990944802977818233012515598727226962442747861049491678222933817806893431595029767049587999654313743559419543759969685830173295206392157146537400037573006295230044883086062614272696028380103884026405139289267236766454169464022392819460772551155074207656494280142000825471525045017511091495415915229991045516947648952751024797523419296641864091759520371775817121388941823312522436965403794258747883853051664339645488424813672765623407523327216965627217522815686649950593472022799320342616592206729085456792817672239903149697601337756199071454353221607402713289667115967494908286552811559002839021687387105243701196740108262740539271729432569916720419402447559241048020990888479875816651321555547432414884247044063249644103917431826554541639464020900413281054156679192773268201615794519547254065263261057704026609769704936142467632687372034393825050272994838387303960877219256403420213565969526151974133743285240339225019771109474005868339834913114350383254394266577989772623710680582269651170099486197992226464588387178386075195257977951613294711973144852402968735098613657958059629166771200557053808947041712044957246888930877920489817568080800599416036812191151006295531124787856081760841152368579506743686681179975662596119104000754251478228401401047829766252030896581804603198060135201430475800901865479384701345518135954059826614877093634248772804857870873315127569329695341164152438311119539880069074201163765229626428371379956665252848303605051490572467738467709092220687390810416380794230793398517692604527657333828647126285186225819338497734772047818788875993896519864456466537265969370383795855043200684402105065997268370107573460203346734441184825357980871106196891271881117902336114813513972952461260809961260187500413125547679233528888012219742007900496801737185847804303837025119654008742354281316097894875674637114040579786562863590693491773135120770921783028576151021986421919039888602954934639639665549880734457173651078502514095090990981892676784739534500641210611812288634008325740601230556631145975485428638965046501357276099588966326487749070976143484214251710734813978672786236941502030453210597673108202161304314714175204032515478759968317284804279641641312956881478451186265165166350284331452453040315912881281595676316832336109475611270972713409669778404152279458244115832742639688156368302305796681383289376344890241925862893302186886937796050069104570694276660020808014169626200269280367577257325478924050078586300390046414515605788214151138165882243200460223416346072987963522201732939765806600485913606069616970460344266271733857447079413917343275441614439426974600964921425219990190436797320555884917576007696741233725121775791576293120924937626949583026482412183252914681880746398302510057932798495685002927580549037198302536445099420689542789172410803510841364464464522558052998265411744878661389998771666725531679886423771649915085917971963098336977912584820449074657263356316728318877688304891940730024279483479252602814147981111404923937868514997469176569646541205001908932824638399676003641493415208942782634592444177125585816459074429645927581648146153448063270781249479246673487770923052035875734723949643444711161734826840396079405227335174329472519393074597042467678048695140495813980574309783339420068142652731549035160618195148155788589405094986412100756211251712689750225569106228790282436757143940432536982507800557251302092705409036539679232632903781996544670316596294506255030104832421165850734010255219894710481742285666704312128855930750409129575371617197602907729418215872235036250999030870570214533195393778149164617500467861463829059470566388971594736603800358954510116387523570093488829787670728822213019134636497416277018145266235680487524300731534200649490685991198154245930441327141725879438110261477925648897548612960474659661115401952312910928247436086778148800565649481236881911224769550077865923317540528343635902340238411795137037927202762899574014455296846094133132498032181752348676256203070390537445655005435557001034311827943084134047667740433120067397507786852596423487207765570471695789011436376196357433492746835071211844328440745996442120254910909383923256406915655638091650992809521031609085502715758953461563652024164540270398419306720806935239474688880557967230681990196748971291444222288749090711581035236078371506483657287001122964450243179321443117031080097042630086891590682665423010430638578497711215347813375860818783600563730042685304074196781044886726618064314758277026538834684121000645607449720473606711637905115492747077825661033500187947421506811126466514331030913436475615254128977313118166337733617585904614924458626767625567931387132967700362814228062358364565875465267697614777939862160735004955727931975534638637087075565925388283635813562362422674885354773226290691469978931872053966251482217534406287169876201432046897295274993337217225006739042508082725179016784468885877174092394840688533075973243022300466104467665149957188975421508568536098553125847118520806403454142124118207026893590263911410138044560250705612382540867366850396589203245771580818734134102930756437750590907268052806707162396417078993897084587432407230647710843072098680032962690687114291025349175665058591923004723328954905084835981824607131565205363395373848571253897546649600710115306691243211482878266326023327627475223529056940935548419787159912922967147282320424794030829883018080219523705949809589559475078461752003858408198914393766637178533979038877731297353622898120834922722961838364240456684841454589832650336542744168251619576767448479816228875215294469443026414387520595511465679067488729913671140568646900997635302352615916885802658966592260431672949581942733085723046338805823258569008477074254879459871967512946249652345537266808249257445488426133169437542789373632102187911413477268176480243504769887985204953421984256878258416919324732887866732610534145048132373331096939340144664337338977129827593281010799812379723097797092492736970846739507563301499118174666434742097393033448488068225332281657313895260839382905596610767847006585068525310555092833759092293100954585626594279422049136211402847056476815754501040019391982204828537661941103007861862950142170623526007128449771913313374955395941211983035259837059076003454713916535869631932267516147946210809651159931890344190633634773373688080701915554532896831188869066469620671041392855289650730461257391963772900893728710030140092735173084801738560723479484817163628185625201735979675724149928463363503962356572124148075325418811155932925174506365769889969515610887283988616730600343673470699641886617918191124277648129081428923842758268936729096968736016144874677745651195864526827532235841251453345225571129506616718173954442525371324930158788114722077043972659137523240503174720069042598639570630425345424005136432050116058950022397731456779969021721950496261970313551142032208295732654944893121820632150663291952560128744596791842627654108284783434650503670391004608970211890579264726885663248201724196416460334802386337171388591017374660939736031794937120367141000501794545963776312748965407224838967112110408190292751699697336212842876031799356910280346988418141667784418518006965733317647134268739565812170247889678468691556422741313470815824598166941590485227768795861266764716591987808648042107709630913807634539649624172500537807164177187807396424059004009940713201587369973210966797240692671033059908783307528555027458981146446673179312448332401539832318766747252234443958284606498382218114216779566971753730530197418919007855506769524705280266778128983665152890645932213277485020856461655565950859867463947332187761765761043011380345269870576074305501946252256713567626912952430493208596651877738167284042468080113565572964905051503992616798012490518677216095175948516070281859686481423459063126294175481117849217134903571881301543775288353336982290384432634312406051742610760083036723531206666797196109495203396188199645023620413399840394233454426231743764270203346773598472038455122704564765426976776932081886626322505940188686569273566042666702032585965578569538536502778011236029606591188903735451485021059790941056632760995655694854681025399230439302130299532703728474517925291495063228957245601234151260214665800726572632342920120947200504136831972852659156253319584083526047642057882441878312465368375917138113339972765996593130472096083059437568093286567348420024253748732581737968403991201362726826755046576654481061834505023506455374939408765084193625680687163100959786669216040341190345938380420926654572841560845453518450268972336599610199452079118047008607680717180206399225359795015710392783796482300033881360981363143617569471431842889639344223952762950864255019746659596339457331045742798758993143549075282029824248816433625071387400738834311729853422287354125942384045971709260356616438685877882864612901637685852819606515418124985531043290885650446829139011771511591977896139165187820215343058272341613759890778045121883951374822292537023089918684855315946972915214013589820610729572225893605992520495089226969881802201784180463645653842059783986851136380206655373088985351314829326071395841292517940939063127749593202139275864433039851089747438703576235029018700757234460440048545262983054025319362334393432269425012845577449734635257101776725606629941132629437035760048760317599573597444212655478071352616116749482221597463810759411384132352785352945900194578115619628547880619120081291191990765630417915994113558191413293008601412358211502280882790513185200892982665477336949248164145089325386647119645073621857337263956192417716960232436477574615115196815943287887626388348858356278389260855955759078363893692602302719391321214772536684218057212194473439705392504456948653065487765730446288730810446383209786706793837175370770915979377631161765707815458999197141076698971416258229368286094782417397219461255801974975963412141027192336022825058484020802120256527086911312487796797683446312213833265772005581399421540329119856045793481089566527544306399582355413944893745745229978982944446952406741662500872842551005625620035524845423181447657315063680271842037586244245970459042666557258122432614564613807344603042594900803752419377571643974060515164766139030345532112101985919497396702679530015343018206415774060435064974927732760668782041846742658033234554324078634096595918579265622990142658179385402242804617930330267131672164809978235305401823713140725312982743599147294575988246846077288431146609698227404591139169327759749648774636402374769019244252858552283253016591092513711728933173279829207715097810864507293690797400989851124202333243685545767145627363414340663712743570383982073203479041440011996478068674671050863692907176518221044046031258873215788980203561442948677911187593636166869536706268761569065315124786949129786633119233204879953473337019737511749031414139348746115987767873855441188562129407939950154134486918948940985920400257509279784498141131494779804215804707636819911677028736802540383826614858313139433347821990166662971817291452061631196739722536151920081083501746716507442829962229885359692149423805704650865431955504607825042801178846463212196943421652730658538172351661824258150170354804967666290297380067295224470236741710310671044579076130870788477845609796278946761769094227414364466611446732182060972816039485770444795870093364449074887886822922044976380743801292348579120735210996027121217154959146551543107968047032250166588446045342291402100187311680882485052249052693407320593109728241022778510616143648017977264477877484249063298892423279391250074252731065674445126763847432206127619806148882372737991971349506298785297466254214659948916230930632837992117215116396220585346985473119414556289138583354252807667745410807384735679259457328615930675304601698192644355926938092501197126723121624573155789776750866467156585272962973526993958322459069054827144879502739034317776711290969414748637693553949543747888499469347082817830580060154148469199304011277635561822832923597083070296072091252250673964433697216836924163623926855089657240912717417916951955229885963207153687414039513215676607748850074511575463376376495126266354055779580431360699145295109252814460749883708324811716099232164521862433099502628752271060721331376289879964451841584105039144137219631487005881532265117673438963611287149648477168465537918092243809221924068012792809741953010050160524253218452382329173242692713639928932439857358969204740358992761929921762393102660915742789915508291010531075020824301491954269603440783238084366601080425605985473965523411232543275240978886458364623733551375536721944616347985910476100264307067938962919879711873231473552702085252643754830608638912000063214917206739032402204363069058460250966340348626958537187548652280319970155619025714099027091939805120355497944226811770667716061598216397103468217084095117667489064887825990162745698480847236738846357476698452159089040786002049887944009415857738972866297355570505532909822762287388131328199174902614136494591227368230125717593743914293204904200817778121595334342287369635982751827993872848026531691176323624310205536045822504295753461585682159711688634617837515025785250553626828152311878065969988167302355901577683139734231000986948819952745738105912456551690944028517997792032004203320794459625448461015077586192519425331210494757541176158809076243770989094835293494327847950637265447158966768590336486959447358014433379964423525863706012594116393060404236159665229515356484261941703808438413394457725513620301665693761816985996754117736093314036361474348159505030377592914973072716435617043359696700388085843901780087908200818561853134966902185943466042731184190050875160400007592050745053427595633592083735695036451513863518367323369157826670496019764741410972420123874274050958615416125417841526484049960625789663142851122197419187288642449788951130639191377657130806770563436948244765093213841992494935380440254466909496123700067410243179252995762613259025809127296390176610957956686506581400016133364984913554038457543696496364298115342464718144539042226155107126871667522543382490225973581858338181201524744610853453799619532833304630607050068364384690136451389573564027526267317098997836274793207436933574892842872419790937599718430323877372077848363194150613256987675640723994645063642192331589435966532277103738365558970868498713343495151240361381648312038512662574812347429074576724351532038220730922101648975524145474947394060766435626556625114863827674626076693761030345519567467462548177036121320895732649462651991355969996432983670991419435067401975745881331256640446707090951612665612024491308307727013725689964464169279399911290411884476522480925841593514096042465495430714654654076933362673152980880945853333206351555854228982958172060845795995131396925972061518286087776752764625266782085381366018021953525538309555888378517043931509325848735540091981552408853556617444205481814772243854680451391066256965595373278038111345444586820298669963368036100687476555150012045445643435254919810564040266143393401165404160798975907972036811126188097586186600782599609576725291975198023653310474983193697569268929935859981883350893667295150976350617726014722680490557816107226780610354249402464114069757026942532889894176197959859851313405049789441498594174752967975142175607289775744127235475391862149131803438428992761380762731927521109461036835335899586336217766552718521272307504041466799338968641705451448178866822186826788735892459599080646039429793476978184036322950303427068325477504978312432617844042130438173575271421959066193970357504691261419643494427444073571738040031263553398295245919337130526439390840683185148585247675583030097946323988791822309341366968132311779841814636246622061727561448423954704297040546412858232931501661916457763084510709625194186303627586035885683183796444116656670888797463658785742514803088559469105917057840470817403311681728397293300338118894418153635310852866907244579153183065751784519463928168728592323005706375935161856156412969246437484562969178011494121636414151541194769086165088404346453443126376837336798109245676494682077752329440017353297372138982797159550533776505281911156135799531706568138149001352431197279193901768761567729326164577038870215344033081484504846118327409604184524704727535059752893237214594894852566380283896506826453949093893750820217980326514297962724661743099804181433436080796648513860637789027720991072103378614802964405127655216869262161542200564693716614192042240676966798419533491218244003281680677842221539722072849196662886392354456240096511303939268153332412761022680592943607802351653847882201492835392303965012121639047255166122641258178015653419640603098460914467579081165790696410810305324903073463265700570123650083673829795773544609343919669028047703953903234017364738598120574103367020938495239853509246361792440888410208033719020504404125119924731946413253767438697243526412062166214318242895815322182261122546780080427991207403362740583625777998875443615251042453604339596277757331048406637242392226401292875376082149821393383602945066119160004559615210877505147511179452329487236978657596540561751750407997927072811475066400695776603597242031068944497246042418577050381001816229247510371169194638374402566738639603515258208184272676529391490483337969914706046976020888017085371166637081563395034775601683104776488146964339998324199566954327963733248404741565344865831289619418693889138976546287964153066368682929940227985073159667855699862955795217472716172813314940316299963232409842440986905635537009106033979511535670459442075339264655994748917540302626578369373649382874624650487627481070597471083500526348161626237616415035199399805456659095562321195241500110908047502882919489414328682889493109043882480239105002626323307396107680752021165569852038326914531309189958746910227802025426773397856039212784028738385970706185941447554427391971950272354486588195932255486638576417046411546539451720946878080524147272548226750337406236163830151514232108214459014585823761789255699590115970622504055848496552419195436484352633017914035435641852304021423908169253952581491761442197274656861769022700784248856497783760562669808450657088138084574697334557266130705815838942831529915272332547434056728372737572986254723931282565870632760482742222887309344066328889324025865135091581215312842311492468798521620860948605362897744457628530560121938373187700911337829642970875786040019479984827991054239940039969924959446978149698811412542032616043363327686787934735485359469403877357477410416738469990136875358165661668313022030961666990501213535282904528982719577219024428185587763976960233493711163628982787638395572875464603353369532626523851375431299450806875039923519640975084000121399607818234374543998615493841423853863091195420394725371843479108853561113696738276492526079990358951826973556604818545425162244566601652705510493606357214229329990005470363660257343130554231443101991992657486473193856453510930961804426433845414882402225125250783080191920598150396590255343973077345057992823608792779908595922084323028382445870976834285992583619203185849637684599662326039722341831930290983170875167809625570848188701661317430331007990951959711778519190247274227355711973123131426961180095318450674958145427163704818536378033914991989071124936985625009292007484951579626532253801235751905937475865874139147445764301007508492176425629270901505142124095754300623788695441164424280745768476170873251648103085027206653552413154353465068060407638754296209314090854353546153476354348927127175751345015255556890002700232799704493844918952514325138469162015442222488787924995395459600555843939481223374836355408766470407228547672129467312349756438370443009451116719748405216604779991870964382729508401715252039440841327115560769642722951144964830355568510594629530404191712789868411957898299872697599447932106186632810026170366700414449424073972611767210425239506536870043438445963805346934482216459878139567952587343814859499568578838605653440786193499243182050591699169708885322183202254775592663516202897737956678273263708256963993468417345623788103008873373005078434612219828597711944566028884538335571811455777892728245905364899991124587688981341867126226929067977641274870826269740658607657252145327746969997914277958496122726866260514497500146602887876747387477680624742229083469744475097870049322863591748103623252107505649864001123281276093948008671229308782464741206403925367584617188303700520363652030593029290389928407983289655435069965287718246171690168451504463368991577729611321071011685637298913413088152387471064278748403125327543230147569589952410455530093990513791123320931282281563729874970621882527171797546634102086447186508659106324207485916062650648322243065637248731625542720368720765269209831336695775285486138371456901230770015338304412439522278017342645736366678342114546705343525647481262014875870325480736842124198017319504769127221436425232052490605918793454778501596827871870772447754803333297455539180465040274633157198246705421968970934653270180338287739208285389015908631747825157247549924324223547438166860720976209914324814654489558526112627367468189591649348135560161613599667446351268347194490087960949522328084128142398927838398136595142322426296179521675212248988838270732067334244534161196383347794920842036049221272811884476908085025301736627668846096499126638218099021128947017824420696045512156420398464021300516817632106925943919525776598302142740978222614523290799311239637309027381240064621006782803768650348169884040666247987215641011006966805549576825097490707237520961001743236244001295330066506625932320823913139583091119660110244629920857560659851515948490320335199093506029934603208102372691259890902920683154229252326226356296357957611658298658456170718523136637147035809100358700175394628613031242145460180169614051421938754624846140085399080852655530330370311212734555035623492716246938084508107595926796234054136845293265653267201558821549760074957622373556070246449673915126663151880602441019715310069465890900102248095804526896703352358788622742915136193159267317941727696837360554701068257048580717559437850234938949824235508786286680864964534366259258905874206421986572708691325192483266650090663272941605944132112016474965328242041297626908137378187339849963566888260246337957735579829002049846676447618708023774300479306476764214190748520517016282942897860243846282517601746200574233916285092797015289836024195177377950291569865268982823386373566555897829238675557452980450150813291108934468749303013147967923788749143106492489510423413102440560316611552336411698806646654268586730985181382970598213961734899375531730490518974617052186487297967700083590495448690265741547337660946518896756400804664751376892592571136306138861138419194972053361612388588407335682932373632303524915999879454001189201683859962505356976789556927019273746498756273543242635948715554069608872374438055066939221162673281788031272403505117905608774021042343922456566944650640928794554353579081210618578287135815032500384116054531690765552110668663401152368251958619145805810547153569712541204439130680789072047637414382834013331047788708677619675662747255117255090953814133314619821684975350912455797430767803112597677673706289373044132503747245167485796327954172436685796373853607280458475074447278733139066834156324703798943376737868219468931332412624050717724137887029277152534248918548010292793374192172851191086716859644024173916567587800956234138481080774428220492891988171250785465826739368322661237457286776545778481763689652945206581349923210382865912982854295943763650068762929650778519641153693418114619215688922727421067796305820697347011663664434311158012261026499448600328323556155114009081917986992968146017655913962184799420947142732418778030214152725144992827516190987906279232247530741030955187225689248377220807425154307137937785384860693285473847806867965945770011711016363996808098122438191304752209763798523441379994145913569730427225950653304454708358439860634105182232563251201203523688046010098081150310335273169376105433253282519924672417152467688286310979089322685503486464716003414039053895488474266391425009376566136265975335310509545114941500861604923359977651154352771495459153218199270872191473686206730533547905237127283073149776408622437804617524631972803234552341771452827545548761774167943987458569790858153034590435660238377730596553080022014045099123442939929293545425035735788791279848655897523027489107423552748723629321182898480310916886661452831268777298199915015791352992702273389841618721096871916923280622619443802554092433749737639995746236442731360353414122368250978361461707707450866590923875818247820970791620607587925919421490346354987654840927496026012326266581478186668574020883491874255953104542526469340447590703261926215065847620386691803434648286922203956732177618636218240473984464161915454780501703241281301540059159901119615777960222142515737213663789017929315717254212739367594252263703872297732578956922994550483734193089803813279157863990996724757976257371601089327363987962547291823548817097457719922354628357740010526204014832308031827566651704321668772799324920565739048318820954509571108197395568140786022145802818512506893073577769267758265301793341971434024950783545729571653716764812046240858643589464824406323013893193467370478400283182097735916154441606946886654401245598159368927328148515036102871133592201602998758860494851021930171052557477042116553411486452085771672522971518809693800950109849166721957487699632693936190998625797141723353445649789431239698255700011651776899682768664307134029549886997174955024253507832902504577485003586812359850635024466102179031317474400052861646912664773828630011380563974072099759968643613675555978712144495978936676041529964068590499130123439064647450460153163350173305279492569203956013868463217836510856413741043078435835926206362766333152065130041703206904910270781744548460323783672921170334701873338687712667437072785152232137227314120198029267270984353012864614892815279935223031706047365740577711844837698516839067804511740285933897739154876102786124962560019075889890682624252567459755828273969613245206639315638735287142960299705605223071082649478878861935257775070363331599113138895916261245638727660906747673567016555283131560499223995393749289006340971391256092867803391388996339361264713390596993471718925736279363440130665213538391213852060048378627129648483193110883016683329215561754529212642847765209386222122329623634710464578209631460126859674996752273237396434755622429546045270407007856912608479226126582539088964153298097060539641280008514464632083577139340659805296298303590088951089055051636719779897319191492030718920207099914488100625080370620635851612859324740216777394919728891736534873924655835858660854693007087159977397895299221536305378208559285760607026676960824733375823609766079342382274987917678402411459196789520817375462723024078110005765394392267197857409141844488391701372806006776570639399377823396874960767936054187129164615603574998821833609855443067246862761938708808978072231558528592138773388562122574876826457787099342622864355293854763873881461316689648567707204386742741819108766242895756777290748126344434606711407545781224113668316090119046064189107402067818726649891900511856869619658268263547335298212514791321506944161287970567311739862011771800771686090802265571956551536671725344094095992443413265255702216821631116415458746055081152729163023354082330888358725056015921945691746044752004737072438918328609733800811927702196037345618694049128628022966511026705463063174946057388560063927514334023739194054131460250339782533672489770091965423417704359993885329093449661878928559246642003847779996232375706666738687041720538237467797656377088704624621306312127249956090974067403369277851287162196039893248075755447439233558404061224259539771230187912868668656785968874980027737674806463369712098540994386832204957375946052696868503115298877721615484962910926197117492205966411708761110248603808436713464287290071751133608702989404825217762350939034310445483203381743445969940726566980272595261049573303645483552717903322071865835859146763704274923883949717102830332692487055748842258969029617749661609771014311077343605436456909706617720380885802777847082811637429973283456100082658224680520906253345521364320965953183922043822718485120553777515899446859050739282076180756436094105996081113556189680363631506071776086595171687614098418944524991453126860009331180617282268819274032653334147290687683593843593176832719243890184157997916083201873548280057553435156492957641585606604246355449582578388713402857743819641524238873468245340426113908159956891902527706722033420480384623399826313576347753131915912646743877633521190872022494071168024885744459742018090830374542883835735100997271078412214629923201345352314970620033463264815703868372993535856572666793772831233796224358784773200797753243330426004715063967566379559131185070513097507820926773228052532650975230656135012771918026633229095592134669412879459879857375323290759833300597909488575571373609221281192279614417429326864053612789532902304914093491649434194393097755659451473467740970529861016023699908544747601191130402630469226763955842916377446320054731441599535363269752280906570600277587648380950289597353855240598042364682191383440937087764889063264550948936725579309274616545730911339965603684808529037915916550098261867945269948738799816692206917256557035121245572788913013248893443230419152150955989252611585184841334761844046095957718578328775745988852935773508502249633012004699854791241346810033007199939424710785735752290766618163567231458767348866323985963997658880444719348474536241152435817358645672069475430872847189067759307364451154543030807100930281547257711417069948325177551366833689917443186904969978970366739113087776229021779985610712700099116614764279114398271533795727059132775679495381477943983750247790114069655742432728149848695081518143371949693621516619666796857098809805982061587592034729163591174275327786223886973987033930802992566439471116282372756111537668232981879285404931682845325658093430219540577888152337653408417625872380996308422054675715099154461675178740982188537026578750182001927407973177998446790402655306362037146716710720086457724644761354312839750043088579841976102582482316438764108976169370633821120393191732446898370337056879207419054190508624796079730443848039390251467487579766315865013495058607760082516964383108740743692892883260672466695814851584634719961166976811472294272710426018476940808154594870099989411111254085185843931474688146880496811056704140728931019688087495398716580688463609626810034999790105631958527881272781509609775429402214554582252386848567112905982423729889613773909404364429098654012438754054187843943804197718785401792981116655709388933775271022196089097390067643105024762448696368016679015820583733254934986575064193840341750161068311436049734081104476950186238679706287983326008522302381475157197125832501180404348345832652754479837687742512055136825838385068546176018370544838470390361956812973664419992312423450096168067747529481956003851761826346456130545310272238309916091240015299331182048813507567408486506123229050701019358692826033405562616516721733650683744993645291234377548578148347364663012766937135222761147685580593313084022894649103119012580043987173331674342711299642366183625789055728444863461762588690081301646616830531520413392451558092856531955981377841111864109331828836898335260012559006428243388216879857506865411969532354397998704076628213153075301044254102696545575107079695021439264882288546259935343843047784198955931753575347499314731665478319155265174091459503368792664357313750030612136473025842490797491291911362034824904910772855388547025777172555901585132609588444828441817356941710778536975238791307953932862650784419068860215654559277313724419343482292207382819436127043405701075424988778790054890451923289393034227212216668063095535181613946002552302997856986331518318737287086191866037359978755605649869653715883213338156038031576299285327852022091743665663614564136510903696076211795054892946374920572259335525143217750256925476225053063165117772227197442658118203426993035986485366527402752329302842293094585138518173762834201429552701077085577243311689009095710191700703283360461971171071158420833380888583634700286309861474668275285500082866102972590413468093497436999926722218085918812040097290420605314963832972306700031814594033930580309877842753500974234643196781214168168053575548873934399261558163895425168234275191108439930192143254290797271138587181751664507520822929195192178964523198035516331279930996072436359454564927377084673878302988876417302435531641472397766952709387139571651976871871193379449896519466000178684881217812745174244097588081119208919827822691012513734841030438322831815612253957645432602461318194024333754258113270405028436842415726333539133650881625511932374172197007180979062903689111383091188191251468207592765025127026972575872720061050731217902838662264522841549297342073669593189915488867079555551818046645566987390130567006332677718346846606094179521269439520253914891543230900972185612591660343765230896865054194148269392538348555206751002138295819428014236196993945976811500827173567320508833875385902045883039412310233382492490674027940081797241007105444390772282258362359064375567355199364285955017124146194801572362399821202606018138081974133145740096959568370910721923129674169079261044366832040576793394076076131757228619061640922259296960773483631418730886445685907830727626281198387184084213838263677197961616575694038302312720912832602466717487472689010185088531747681748432644227346872644565857835343347801733749916278610726578774328082914030354464793812517665486685198428500636382165453638232758861621749775421297799684146338452646292853202500600832371336876471695830265754869348432270630550450526075790903009197592224404602921936055810250336077089668623287419514251344240496086175648259594484878669187389698891448491347222362403485865552652972615500991266885421351256763818998401016942210558260046425845666746832007454820740327973026351141219837017888365076109752274679339383335940850755764124668199752007593340741541967349877910719912612230149863448019258977413377686395089963282472898005342794160065497284133129003099598480075943793222473562959048125418578633966003063473282416912851381841082871947722969285482222604209779462868342727891983663162636599456922462377031208463307306138600897691119443157465275332394055702801170690868226953811112446506763541670525769808349236955199208547036339768064704906465764901371897441297716439362833319382673269476277946110522498958212397700750376717452864058191590663309184823748037108384450515173669518524335202557171058580037232498404488117130952363876134434229707029645645415539407766539082245505929548774928434396250960235193939143440817792953226005745135933931434861414394508222573000042180604100911962377627389785886307503130729264273568880253213837178416805543924874310603298450201207967091762475598801647354835923747407415850148474297285608102002952461225732851804914610673719907985511626768705389444516915118949079838723584198726457611684316106860350987918037391208206979497059377678375460313653285601234387334493147257354922203085103624833636765787211527529357296696477380115622962602667108504578829912941375476999903225692604421457030890763848614205659943324021062127482628240457059600832592617731887526419574382289389003197172018508466396703954929865515389106645866726495073630861162784794904999683777739101926179247967238475577242535737858841821711544667943780327107409722230222203143693362628681965572178675682679611127379218034422133451760109781693881380062602718754708250526575061377227872649447740980780546695119957491513695447141212608744134548807173021849721576791994465116050521858694870916061713775072098133654187606486915109783744171981745326979545293340800365700054719017904796296093732952101633315128832749520309720657991059060201971976642964291386323060141361791570001364673968736602245267438028190229795964115269027664643195110626429615043880415999702312811862443779192736441048619341279965481029012780423355845484945205004118822595718727351590935250430042979681051191264746941543751762047481793756129101216274221872856761762351034088952772785593865026113896744037468666828934915284563027799324832584128810164384788731500022061512708962121289128577145893925663556735888540664895551043875532351171726211946473157598959024605924795811671790461846767963722917808341538385114511120591008904323552821547544720228863786673672895792254101836382603731730107018694090631369716200659926040110301363854341208073089971285740299231531931679958615192399717682150753661111944380133635024477825772981994201185308239235269173698025932349031962813025111718665232995944914897059727656727280468353619485711300748076579696805090240678425269460266791628227352609569566379706065750979317261806707735912317888493551305728624861972970717620482136802524522711790355097787287852513957286836849892091995753679383794795636943386764595396611438166995637075792706542638724137771333221675710045013240761200843335966096703044992658448460304233257023549338833103805898556883944369380699873972174574157958348685817093678160523781337716655289402057919771993397880784907701059134849185010805795315637666054427632577369995017444982874699039439497865427040478485357659089977398426418840232966108713741680450315894303658567245590096238693606213381514614788313892920682461715196656187763176304702001073417945540908872448653057304813709547277389583997620219483398134645890436072600525940855634341686299286724324085253401459060862010747333613233119527672568378165543698180851569809844114516718277083109901692976902941753032282006679579862924471701086859637940099751021896038219862266969021755435897134760675508962381125434536493710397643362980968484554259048641138812780172257553831956936657410215750753075821408364753194577737793882195667318114502471308259597201161603331284330463155183720536485311884144570539530001444880012919309268358317150608137959753421363239522102275158628714553935657679710037459582264356299934057717823843174557031311774654927692912566713849651622608109635310382993888914511349696701868103978035251966417517124298211131451375541851084621611699070704109859907706825591559481297549167806545953863040811759925387583293148637686804943123961322510187333862601280012405413376142406698623664991306694794660882302196709503732107135078861110803905883528314863555126395027358410812541890185560925303590900841476190046969600947038706343282883795790359501914937948504769204711046899158708937839369760836728311433392147909472860415129889780949853625931785905687616910699655336760744648131714887895497241797982951826971246497498266461847046992626683564522889180495161612387040654884124947480498545031632463056698758744146821105554493460570536632347072072348330732795113242917936949285909646290423841692607983798202308742835704703534712847640147248227557199986305650147275090775015933304165022407628358945628179849009752503395647878927409475727068589270827759964620697888730596900030742759384131696997384131005889138885793962015977161863549026250147711366612164793646287875882813015189377941836838558859946792419725657571620545236950160950000726252551846049620671378632348257167595944910925083196912474092994377248464352123173299164982844962803210746020744120134300507670163259306870069810303601961206986445336035312765069812069652567862228192309806141591202387989503992919325727448355187456038543171654020207872373533370470760957948026629663254102852955650388762422385971201507695252450603897644345732975754259704211981173302104712431170812061113557266682973723323802262741755521886625465502077477362872317759537801969107547027263669019678206760051093575089652972366331974093207541598848222982141632580200716004601114330808521013314123929377067414579195352729084184718987769510270765437398681092136408973881946147667837513645142439924405220796481142134440041845639567453220880111769289648508699108057478321322573114482087497567565637532070480348818554436051652251098838371447367638769406237788040402910044090634817812082960771980739971320612299433533803215372638592476977834213719604674223127155704468365349471577938615779665241128572642775436372448287026392626066288799668022389763683051333351891613072217495602878289524319053573329523369497733554666761429015363811877570475833420520311424322102526291521734210214306485667621474655687843480630357204544785946809869892583738725771312065045033173467725415179401779980476795908461885546933605543586140083297820742094363365714215971457886953764985732608684894471164262156573917473649895157329251448837333254732333120141636600044175579085145887423556692068136411812332223101786679198830275725226319799646864931467095813422597077459721926710544543637931475601337847527276854737293552223527137514141957872238825288121751378163525913211324145533887467557137646551213405790062152228007751497644941057161580932076170612544710163316224258747673521719775499697092621651401717818964778068102351211272264063869639662407600233076813007013734877768709956123005344711130468191414743956344654368096943993330003351119380861680504203304936394598789311998530759036446058346306388550904102192414333188007409574287445450485283686687387164703618826454141909417136488843003305123678785043135936732851932725802992910386353466797030639116478055048151746195797302076747407415317503367072810489799578157349084457318119255845682100961230009190584096606171392879327902530552421765413790003651108851302523910099904622531100327351919134694759204381514488136684504358512983344695204023434975122138614365741476014666751734738873195025653902320743477396775579593168635604106528653513454467808203310995490738484765128606691714690540794777147233257015947772712280888031554249554917766092043254003279821827442888526013658650541278102515748915346469641296225868370818626602500674292038044744358563423921814348905720203293770671852131072593334770571091903537270014512287976560117099118503845085051842893714526076003314976442736884497368075355342428254917854514032094749740506434756925368655896146720029142521972646724384664109720139291375744958746376184513538255784003578471402313744989804742156018494742079455517811590237784578175251225071350892400003693819839354189524299694436035667453141508674314742437535279609845455976951273208989561851232270451568782572525719072326013912151908312596781209168863933249496949875980642951670066898628084981356553792269186274423008572539966807286365558509032698126191276329048554871466888672048576513818337147756633298983511506913536478494414198630485952278774582866819419211858687852340593044826712681066107112018826886370386558857291134596066270424492962221369099359656316933431610937267886662796314582392410755482734635692783253579600151067205692159898331001230538347550484565229758290426553318449743873261680850593741637800669017458908680298909444772337961675711425712627189146701574744634668664586207586715716638668755979434499758626530388445075372945685565278815942908725928894725673580357236551127638735610653762564894257855558852394019476364470140909018388670252242016937512135830165991676334971680482890311523473430285916738158394660086923256973746623207702985197218267892567461031074348272425799209119942847784403295373741787080882973892752734640688150198649627824824613916425958300207903652072354493769119724844532320283825715801058436155310511223859851195237311589587978100366957041942610337462439860283267606820874729095967356383260418530048911910992593537937896091964482784488390602609809316428612834826647808515785350490501349791073969611182164143112249596121192571126605674457361071163818610605267638306404645952310065137138013955620201938369326663336971164959914370121423448380829091360056980548047593360052541219648851606582717014150373562974516323138761255730876578078689184161339897444533339326460812058250795814408111404348596891341781139817764714003667364720889564209939038308364323196732619875444685518749768739561050322740541627570358303556306647550772221772910359993885817262047343180380076757453043746409379905944802505676948929257135669918588486180993296025581031679311887338373968083543606913982240206227673897035295392075757968791445298723523353321055619106828167512867407899622588126413054725036057261729971424073613689119221826510439969307893357631614533006214010459348151830001191169583802880695643243565137876607290298846571430197707064232835140688208650955202657824312879640391689048957261685286421515150337047790126988915469361776758346765575019580712731832103188308147543613974773280738714185231850561250975129433666314666006658091588200377911062034472619856006459419766463340481651998640320560685527988266426358244418938671042288899778187627161242683508152957638930058138977753882916330245929815020473720882461768171571841581119627099113553879364006562743548649046504841480830457020115083349870191118500351827300019651940919332783447793867363100935549118243219676528492278181217426637282733070086124833519460312636183761033832494913321483506339100020684241112434219759405957021303975991169843071213507575637686775972861095128146848124117085874008022070734101374749249503303840945086566571389395852501969395845537410071620935597804949425396293844242762372037416468183632092189588797967932265629908078807032654563585161980220569879625189409777225310828797577401741890873054438698626650893129604339976634320940086009794640869650777222740181699847712597329612079609741362002312345224077162996120021251108934824817611520491547282226359705283390822179675289439016853793771586134164972982622192755523673486759974337644282792051310372236821499234671824165505551390272505020373578559057261917314227717382582515036706425768190455122924062377585437491836618184825688900449950302391272790448394285588990061026959181063322698038830329789289827998153799631854995147502057362075697284306888708252774213763458499355943770246756074487879602138814605788558314681154243546217150605159214593366754522351614894687605032298586954127992146710974252347006314154475532929454083860135008991665386175588559826475485798747904565521332445211635368974763484970795232143863350284357411745029565946145986306796422885586834895005281725644869964485244996209587565673208524864515288950747052482862583280861996018813461522320747519388749444871777109789635154270444781641018470496996026923863115198356511345854717183705148895790495298085510879375152070464622039676538973290829923371160843148437972730695023157767223061150525677660749165825015005790706334716464166363374700566405084922153155746528461172375876737999589094482144683035309980766869145193154411382531717235278992929776948855074591593668996484886150462249175140972192647606430124035159514592468044066809317180534303338094422794935651498977046699344691264940387692306449382715397745546930831564983303540925828192294832069890732993646664041491132989984445531043818608624051168592467778283266396590502615760531317583577981679707144098615854063722535494052495461152630143424727472728243200740537065059580333443401419745668390483099379476278376005552057453160621732283414482808511915196068025239373874355798872018195938655387689379346741728920894468537849897504176688371950792673442563606111464504173269050093397516680635576724821514803478568343737034550111745253880094084457377467827806271928157516292034959231500619574746456302574967795581648815654011982323172650010334697112644467375593620222551813424461414816852031573684493807790340697293306955533643680784174402067122816842887888309788979709803322757259685126805946008234246318895683471245094454369300072317189261012341767386346200281968881779912131249935088849305476230962245260864104555587282234977909004459433922053612355155609682253820681030589585923781789787402796367832999143841895329662230488503171681838153765733172317569325994248663085142328879934095624891312548879022348096302026817925944787049164952313927624190627667453144414162719394170428026555047640350295601464003940422836086940286914952633586475547610487121547187124636427554953479846894282516356446308907292226846215949947174372676012244303197344671064707081860105591631431086242066675552715609301772288617875690558791986194426897444921790450565207220695950077758994085157361411461299747008874133477902426315781594256496750628287794462560515484432965862181328090472376662511595237549464368046800074526147235843073614465678715424466370555535254337720974201380605104381909031772792135947885799327513561818685377926549409316274430856823230971367412324886819338383950176786247736521096965807884127933356701345761217536454325863939576101643297886547825541299728018816190357685751295769505220360319470571420424817565232044496016268776163936581443104538913800470463851684453291320648752591613028451254743944605376875014127156146412207149248105394174465185391417854523420590484951987645879368278275287310551734020310169127399009045973164312700114401339869183468339338909691551439565924007660538275105247615432628268914275665091501188455262046978095116207727301134839189579004218500599918798815755282911384398235673772009491271912359897882838067343464276904841245412759302595983204385737400523991723223338072513235594117769530341317109983698121469343808779695210574569820975488273338956686692622987673589238252345624148292851473471551522295189301862782386336792626057823165402497677668371919870337780542256381266375012075305138259101737105857568012091507526799455568859860433826297213951093497919940387608069745414662107269723458762791378693523106507667537972456780108448958112088117290891475538388985040463805479681454557321945409581509756085692186035678567018208080849519731603663750613844148304430327358368139291365320717033300334631441150695313722871571003706507601301812352496855122930580901089860576586176401438283241033104846015663024236497817273470915025709610265072131765361629349574835680589218703513856315179080780588206939385063511214203144075448344485981826445766733238822718707374277878765723012486619492515391400979907033403186500762280160956184464806049526316789826202729716235672604410300323296135566370975734094323077810993004111704773191645830021742268741842064734785955766246432353963621398325298030979512368910118951788594464004776860369936826668348457355207802824026113647140383087797711667233972342073936823048233523048547185114946487046983253085420173172237958088616410950115232426747045298165868403891756168529342666255094597899545871696776752633322555144303035455114969635765739033301686398376885069070400318943380112227842286353505385306071284715243531149542371202953510970585220475651196379634498048276450004061083113247174914651690769995173129161967817293882290166997134607130401427681582010310983858961830876780263004380034665596727263852611029585212324557755119251294788160667815421209025312502960475031797510245424147980112217422956545215898533377488739826202216053404176824181756355439254745319261553050132947519002046495048733589829937515625599088516047300475099823659468204435042358020665901105448379675518077489902724732002017029012033979532727785968174941310044069151632175771911174165521888867403120135392933048695683608880734127110123153872125167267458991810520293851057251741044982647456859256433807731392848396105343162546628597026186558687553968003569112399077268436385556893815919867299270301089035542695205625380089913320552713157358046422446822821851254688917753637633362821708723364339572307496370688998401249600272640853093320304281438308001695524085943608919484434501366334330864463694967150725386121119383207492158231568841045824243371427071402454450131268954792241070441544466932700087960992232025051023259448366479461824066814234796277760235548557454953648945084236591547172601945344844039653195090592688029037364172362380789666680409131256453518490978005050380473871899419636395804490330336760903388882101599944065979602570873245974809395163644048833858930844976156490522301099445539363851709612721131947112404129528253664946427450681644051195290787170378638544513261561827318462185821497216773957421819181416749219074924169233647520682818964355746286829620097920945834940475278054549769724093000907620579476900103351777074632686578367454090469138673371206095731366660635765214026371333776287257153909332625949546769281682396605189014499945716855813865195293871884720358969546988643517429247380635528515298610067722997860482414751998640598497252491539643682063871614567640239957645945572293113445277075862422449281718608852676481143332374120129959645782789613371627183196500486916968776158890616102214619907498597472106524283956925084341146266266106098850494066748741868468596507881494355907843515954482563117482854834099962832034312572942333417388801900527212548403471897521895059405337406719857709431780048142626320001934274437167159860365626443094262929595782893176318344624381693596020912624430633244372416968925890346527347047223316695515128564489708152096524577454713376794460475100164912320508404530038314215589816521680761374876438812321058086387667634610880069481790893899657476580952143313435646889699091217130160883981861859720319409122309771073114429994012327543736118345576306808032853278071358204607515789117898701353356337858874861244726988435668588619475347011197766373375216883984566599784741963256561522939389432753407960426398790306157867147168613867215671848867463484469517294241205407576865521550954663523316783928744937088695007154418382218834915565593866799525539389951078476828023928371044477884935655434116364322669154057973671231321624147761954483416864337937755601784525468978955407067253719565636519151882923490083882734141297594197901356562195094239197625256786238271213353267434483142809794165018289442273524182724680820087372687294889911118133011574478796439455642340385676656540682835649495470153667488899027284039095006032901829608835142406287124079879813729511918985463715154980720202443277233952137531352278157008117248473538940293263478566311089752788981742593012720716626358705845071442495462468950127651096755824403628553935608697170276268210524902087526585536676842112622461673898192479941905515003319948332263653813860107585914871232850926433955860359578375843075820097088858814487525462288948029700030424833204125775459289039849620766530489439404733247215194221420810327862292603109057568006163871624247494075886940305904902713663412466184042029012357237612416647578984032385972343104533173816078539712508396758139479848342542023641639663305597118754019784149167050981104676107839437689869496631447716622769276373916140841166183035765534035411440361552852997890630805618348609340519477685912342561479343088140380690618175011978411642808885025859694511124789260035279965802479388559279464000557033689713551810208101950655203757297832398461410388183192913247649643652738082794729230425276816881857556940490042307226773434767747940712965531939051716789987915827971396875677555069512127831958526115684784715333079315617629003737622593346054387489409349707674380147087712728824621022249010741443664325592868347617591311043084691850755528885534689387309323742489429879263184684023938190570811435940934332394697245805965403990993999762516521269933330996876235005000246402591893984135307741303815947182820321903335103237771134591726712375415044055948047155512560287678441788874717943349949784355600802378321242607086252523050905622950259154391058176212985138429822990120629378779144747755712778043814421844263499004445723217401573783425694200697640415285507260259869934415644451389125923021813514775430155439260871174585666385861346900012561661244855273681049238384634386451289621793222737461228935237364170206651103641619839855568053838164583610227746920544313694359659249274334969838375588022664571647030609596814266489901321812937676475044568441549322393468842008623603289141740944450367425562086500227079056660216254457053726099383609065522825209071723439835552701372593448738223084888246795414505022927836661447001217958845715747946910866562011070179993220616650557414056199467569219634304069838778931156598665005553729437485139262277755516688007852233394305494491303076329973451141092160719550276512218716413514142452496162087787141038857940386769503002227149812560642303661113881506401559070130937526150885790416576403058703775942231664558527952742670097045966526206658189850862188214438524088324338333850354056932891239223625821237827839966199140920747455208944309084919069296396513748949799501873217602555681906986441029294098811301502608691313207165839632319611373048550106768732837911272291936625074894257491174703448323994957318943629342309930945391710646606589961352583878462769979568214859566465739124770306294591913442059404657883127445909853063302245210289833700335866898236846201967508144291938296597624519589732859989960525081607868357809114593343734435203706770204521858145473994828907779678006594618736287292064880064402908647252457745269663835412402164113201973913895939405823838771291017033701000584987006525567916889858022881359217561687601032941033450126459650028986317333576568691590270726129941639678436895226875283290494441787485599241361910564020683911324130641906121008326450308978444777529032858256010968333239969370062313775730783463010264841990223997087716967681025468153720459722304704915481072884786172878373503245716656710268511026908301361295925773184846380273715623778105260785176949548493348502869347715135321902900464841911303624939902593486247177154224248056969849296890618090829197738514705945452411582949385176249447727119688630679662888135540939372090137676691929769230046608337530778510001205281661011355352508754095601362356255890392231349741929966560839178444306260186828108401337815942134965969198841851519634503394473394837766060110137137076258189749078436494779981084593756621022414736256293888705166241505862740500065214119119451518460243517704971450327444523674433852349995475254717245268034902264849837072975747582985605736950895093899089429320124942218398450550518022951464043671078933654595843649533569939397212527417156773658366965024303781212121360745553493530223809800728542937130559091731850344309661967115246533526341842351247444062568508042401880533692042045987648081507628593874295430015908133136252460393753069565500155105996080611350034874888035450866887936549844995453563205831959511529538315326022255973132900055905663725328901114008848836667291678559501786641133364734030735175690542946003780432927948206675046565366733321543260005833412105926827430563169764581840404454348884627146465049197367160418758998925145741575263082243401371367409006891517539577410797351128796110059546777849000470901406564589151036215177006230544647195764865564703178057054653706385586927431665294023753627855124749441200491848535062998779840156882656506953362356513443914794148866271736818863618132472433140110605092702713141649803399261508779628692589273891401815221932456416548457853897335728503845955679894845581633099922408496097916711119270600505337903662444683261906352842429679063854502037380452033517707429720741564749808440186628815089968797419644587187526169957686838395925419431878743051895270109422109852080314262978490126224916684783386196404327433938850237348791808102805567126322118233627730327386924642909631387842222935443019145606574519735804674928610117528586760311907294108742708634038227958782839795934102881143054796444683528319240476317615400789051948932328291944618680228449495984899027345963862358865232581030438409792679331010930212109075459206855989247893931519202325183313721326752721477112743470083365486554050878401648820685030252879249111436353427451280444210038743594729728860426675681465753931258348229739514038509650626119868083499597171056581968645678369699687223122610893476129381046012667452176233663771643996685533071757542141198626363344574623654403677053974075218310038838047205447263435887493020386941152001054453002132820149977385899728714922550687030066888635758081259077013792777357913891552834558156017792196656267397635040998814275343125763036239406512695322951427681015943564278047709505497038291931438933087396383663890991519454490289349403100116065549386165453160297881087106678627488277110168192410022012696144145997271830897786969019035216755837998367225702553373016128690671723340253712391369826824413096358981398641911797567116979904140633962899844742893496695523330273595976862195324319567396145910917593743309876866310808634128478410446697489488528794782337044273352932086676520923043674985103770655977250861868758938885808648562215693881778446829991354879014394613271665629178050636303270324349266744314860661059890805036995126185775050696160372191034127423865956779002712145034349097154423862881288157676996849851024335089499553285731641350058372494985628028302156142672145535734860421626509367389511588667613503035360393904466264938755921349688667647077656935447031985954031614797024478055703939700727994559015411277371050740815352483155428789499766763136422128328178275622340086977247532543525217501508052172139034059891845054772205352140428717776287986530691000481753045839512306501307163857180794876085504067755541337574941244420563149518179573727547470581611420256257017381373153314430585565302379020640845316965311065167772932349078700501517988657793375140701912270901503621274356944331413428444278884392206061435772000780519494030095896056585941513307518376761804794333082273587791788200896725463125404255210527390708801419428640900119994681474535810554453697702705785655789001851074188917108783888151586022620972307921232321357493981394988336053218253199861442230061685028970580213960515543195599559195131616144951325444221745035812197897625396964820726601034977626128411830485698392597684731919576543204436024586365798854765419259623598949895845037183380413491670228439797515960270571463033092844895614515649856540089155053328924664486863743707130647199953984457635563494955855937534882129101518372352893934933581904675037029106407855131240185420385098745840803638408600362482027095722705654225633887028205897204599068345526949648083995958859619464708825009827867486115147440180909155540081379046551140297031349734484236204265792940338951040295788137522228672605721844686972818640046488608284353753411576844554040331159584917327043047538057873887404707075701311210867619166883089002927371653604418616106474975193116251896194009476569191179231054175512489489368496146316932082042380457618465038876742019351863121296093162126955169412107264506266996748109203090535568053641494179781447054089876863028308683131568279634330967032304808322431892907000583774999842888689363207504747177832436124913633120301694810026708031446162291088295756849073236907005447592748206936918575088805770795785602909624766878257560058644971494518981097740907461362857087609096941053226419984137047166679498317680255732379242669168417568975457104274882602634054009018975368681260869201381900058817757738715443362384169383460895696213054994971747015322350236424904405828270705235939061936414761129670205595755065114638549971608002640023777645132268218498832768772065519795513667775375527934368124836915418348244277786883510450697738265002279975459990264356168799702531031465807935225028232202144526873777796614985178338851333498080758113477697368052555039415108381527213527716185819595494614274864895967524623047770419901375301815345390370762296216635918265186893331555446925839971718810253662877508626142966171821450177471239922776475274863710433738118663365723184651231568750147943084847817937917250092445734970317573838000197193445073452563131245251404549026639908768416936463140762056102901055957685475304208651891198510658146541160394922626921767306957454955001716246508223912333544655336846588716517094914383757877083720020320953610423635246772801287789399535690057037843300560235315809177915084049514543840233922312580470140647518078306984502067553846325374044209772735175231008326395410968394718355841599527155005097560937927887973584958223323318195107164969413275216814437120109665306857527559419696829529564735232088515906081523945008676469654571549297747684266623126914860576322442486195339262592823174611278052710434499615053628810270969570934206495541079284954222227592321336332026861182867957882672401731509821491840145747738917970937831621662535386950823459926961209115322417757388752584181381634782260456713564383434422813900345919350926627731078655173295690696430707816262292986829291732092977900006538395551431773881540177456598263036889032167831824929485474469687512633507641486207019643084357611583306369112551069750856100969919543453088916266493173068608522180008729744771162152692967124194138046949801380655120900240574039535476735701644121759021126419365106665310393460942967008066208668844532243429120574072460705989843120110066769130365147283772712203856032245763999302920023154842487644767116962751975691694880844665934798430307350427129397962814670872442408351416310105614312753022636181998876977679150644336200681655647575391353146833450066281408267197883654622239945510520224433472052849053385805763855303313455853239151385303168667211988164769567298075678180755621056136052308353868325350862683517389688080318298017154466811175562272374815210169628721335661857963051386276570851898124580551407425619518859112981476081941135470806850227695846820813067266420597475337462542551999722895925458324880274212802640699031565785352394011218779495345856928294269189881284005215312441870323329907404333216894506523423278989582066045159556960591449668380765515406873071447275722193424614061011911955811978337823278996476901421150620690650030656157468969930450535381790210990859517050982256727743552797686272301769868523697168650218379534705990054756160647795231405992390376610838680895781582107759229873736810493954861985274548144455375371747945206320986263709590458235525748674062727379117692689579601231342682244201775431151853063850944324303147459077648901277832736899850451887697111773772851648959656034769100723342644752554752172994096953101402039655821714489064704089152415610566518846228740914236502564434649315259777010139563245208534578070089348509468147980260633691763615528193970656450676551591653496620551783855976005316495825262156145422050272301631498217507365530741772947602340782757002831048277100188747071331876592679414109728381204042579874445006397977006152185522460141551906667198588538759269000248114130921302862399698680697272749571685875348068404315603769536027573959700104451290727481293865372723212434039860258496261368347423508569666186114923967491891194729751330483566322335930351965555846476476720058228311375995236752630830613641449508228361261355570559869958914254540000705627851139992999013877477534720511872045442906113020077454246374936078076454050590407032719033242334799604284139718057736109993519827658154691321322517439529915472566287281928803400525771861232065051134301674887183902699499820549349804646678817669031053330521671058493023099427833244112299691758966677791215438144506870107966224867875627505852923427726142640607316846963794230552054907472990939714503857046128256862061232117393903064169269083035265415454272498614916132724509343008397634176485666821746924844944730982396521442628793642878449422502730822112786637589718113734853929958986351969172504591336840497215582115895176818528242667147285903741680658530009186069247057223355402814704840904384164823781576785267542722045794097709476734682480805223034799481356244170634379350214452095901013534448155343347086962156491699211047696369507845247295785074915389959261427062716960000569880217303406452661814721189475732523457285503580222207095127770824978724798988075752639083528182177648660679621464528513509323863018628129277060234258684757388131513660003550894225956533824790680718187147950099218553094115750675316402774638636087604566874747346894555336793978411860061440822514665743325130402459786188267254555414782407024349980370242811691334960599242244165803522598067797985763312122523462999399590895330220945073428899687761329131113397873029666609511150616264447153957560368925642613459868237065598871003881912596344596680701712116941625148577261400814246755283177424343177822081557308138416169072663707502192565744854510240157546128118132106731866425357220465181018512384096149995868232374081284412938093447451884715743132229686579747003036362801292723749958577585919690890560510403976223287061958216973774026718206140391814984888521407098587096491695855749559638238508387808202982269799105441426069889842822636642812599494265340970992476207536996924255894784452470895185992164895086279371293774425676595704466406235436184383204612044742918332121280227506418714414265717393840022094504259443640371757743633186640978870366122019804361001805279903658014506917173652490128541101108659882287015602075155211349034265744704569238499161886715150421769658556414181278549654018367731445206101732363202715299179517049458064033705959423685924026205663621041478589815233924308813634456791967607701091468232230413547834402960151462373414473813383530137573678776326237965225770375727017119921317802367639549986957589300510882851075412612028184967539240218802454138863094807226484550740750028255550925419344392145046242172726046611936732338255559117469719473631036656164346934214321921354987892804987511079643297941880376104321944178805236644625290799828330004867061236416769163123639134608358512224756384414828188204729125165893600784555200843907790659334357532712841247314997136187001092453660521814579142577080661429569812686627046976164164717586607713608167575259599389513382344706711604568742923520174876570931291783736062440622624463680141090213526638271985857918572948589830535904764858023817851831511189552819540211525944903220243889248811284004760927807027813802488178334404355088822253148085277477057087819308150185011014461281857665115880456953313199796429925616961301763842429909594067918883524865313233400178356268752640987854457102487416733165595890662440338643069672050159554830258993666500221267487399701552636421930224220003509174292227315075456297589473700210097656562705802185701465514683854222348361995683855574765598675018090324617351125695181735178912116793021349587276637926681410036663964711229626547518139678630406537284486568270348405033220970694356822546757564425357344967204719287174794824857192099373723687218551984967517371570086566122088846990744019153525647553688509600210848065291852654617181099092480800774605559875133099388022528271351109028360136524919187857636166043768655138120653659402692319231875452390187104033865202391880414393317262158569218717945566376463194421476934222360630813933591394172481644497238830066367417454129839063092809702005874857575804383988559361150307076251577648655901810968929172746692329456878486341758412076406932290497871038317455934813534677364403984531137938998613094702093988388058954272342183099854346722274816113782511762987419170226451981991551520532629060002975615421675018887388314560515186556278175401083665805382160050566222731960005507594300739731239792399485101967048496233414323823598496645840010059650046171161393564425612552379737611425714659373099292109416021462027556345803283987874553051404695372447008303232599312411623110940277023041203938627442453257675458091066290411041813710885345890526727141967773306163285408387795957230798195166363839758644091006104617731651826234876269012362010029184952999622605965870902980072840839831233995124637925705455370156233501815350718048036167402891560886750507437082392667241130818954282927749855187861815114553049188214170232418089415964695704066677583253438583805702758764377308321879659884117984015975074178414715540092721099006133032700813645829285701561375781288445192945844082113886094314778598547313259960965933567023511431511435036252744611610258392570856320824047756053179276252801961374886168539217363594044667973643750553402365962133384210396897260606308536408703556190572160716010583784238030207863827151785802572638730381755798705698236815314846159310346075091576703054645963248719040983361692515104774357196853456941366823187236642651147568878848768821038460435625629803376898530953590643112676484702396042881908930954068095812220618402299886017151382901624112555040829798193053135803426995664881788764368319468609177093393418044747768288708476879770063358332915794447131295772204002947731085698713441352316537801805729167123981711594609986571164894578499790703443679089634232215860133367317670790070847655158266788114090450997220454298648248779958647873402548008831085655663860994045992027550712763985505547970215037311830096049286252808038933594356973266898597074760106621928682121659739985591962288822986182803284115720464669768382792622407939220660552139212896256219983953938791643034308659273982496168075804286797569820842853310179333050988269783821608353582881784088695718963482837857843701794437977797188040960659143820056301743865533887397582718657144362030219590165828380569675662076557916607522039666704769940979981255118502904329316465970122242100908039132396497584314325925177226673730591511584145077179754721237197289645186074240217222924944209726516009638302381933444552039404901381088716839109017969917155386941551668381426804968147327038510933690876945628250889882555452337495489080124727026444243097735208859400118387646100993116007144407962150313264456052913457152968253159103426648519319667271709764760521202185039115820373357773716546111691753169895027678258958636595505720778111473399713177816022322380812655339135108118811251764996450949581648547658402803505078459547001740347971923026244453067003818577513251095921573228120217336716769874882862242716583459666432239332609521413109016482543353590919320311629661964126367291878890755780339156753569562426996496799569435706731176145641128035262736219141626057409584438050366032538060741338431424132258313537355429516897993045027999359766249293252629275983640732139786280698804255887649831820097054247691349032174381606826444313078298709347422414297011741725666493400879656869557666728303473290847672255135650552199038834025904122856713746101722756357186822369204891548814729223258146664378689824883413670518552237631425151997257639877197567504741335111707051530135228801461810785024304543291454489525157834040466569758384407303834180367106418039059630100991390652596334614733327875177708873058720554950401435065676084276612736062307932468155821470563169857238911624327537282246658259841921268213745495604350272898902392971490226749653102548293873324786178752197624959928072109736184978367062160808038659314213631851450699526014617825729781445252051047160368924133415784690226130047892563285171425960645037009038979564803676019344208893509442367786045843769732589311625953320523266258893211094413240703453033554966591942307079634282357709201583009963754455551947200653455482601632598749655366373160430277241034947245478990993312165010725031577348917873233105690642500044585960986834424950079818988503454121770670300102648199092326907350537283808733725265688542214243634523787571384772844167987008086053395998936887449483397132824174980999596630361803468766780927508901353340897459046132932129395952608505239259291744366780738079461221780582643963856314694515526613921666308127801320683792696172127553366761832794096225735705131330576987346320587928979126008694070367592847647037836834974304424940764286219645524244814802244794000936017838598005997163602833262748253554954932645171509260609996446787892624224615997433769180324545359420661807665426385011294895128026855638411440205160901801848613114876473099941677935038045778576973759601564446746706047272665427166408324077231649032576235527677468859495893040820801930636200889104194653516781898416603950852935870327837136658987830805326888832620926213735467848327378008072132409113424855252001455483044911460864398737626731079350481011540253176320181318279470296263099713028323117444283583571678541930578589265949288809283417624552508791809623171716999063158785815207147647618559748206603920969153776692092904327436068237352345110746074027759633409897465788114371589075111269796871182418853438134293969446398067122462681834294580962267182004842544225256282687143463483579805326981065357458221064082612278472668918487001503865959618886810944220640413850184856632387424630794629938564231563391209680666084064021327675551702204357742534678309436658758073269019553759284699421662805740575808445415042308972889268077120454600233430193655127203798123622771639223441118281514394482753751377340892635951393129800677213793036736357737921443365634050068197917324220154116941175790420005114876574233370066542052508214322848641536975541918155438400952804796206804298405950796420212399804559202534048564462163360267695028980534772359239784508447396436195846680032449068853077270723195689985406837035818245366741212827732403658051618440164665860094943101931183676360206763438622356547814159876919289285873191208306492205357809695949052062969097843829891580804131167024428620148612378793846217053675592637270436529471683203322108122086270479032238428456885968714182367616434802514506154147282429516049007797172129100030498215233374935006420184497591904833996817163858797661707900552696411374463135472888231963687460530276277986498424966207595099260172402685955297180440393195388525432737245442091205338756347328249932042731985021230059708882149314299920532658040001174742108738401763925281941130175476627692308814376674619859304368278727702757227462683910171695216636082011062741636769456038688433815130209276388297248183763897293723951284866619628962627444274101289704720002437020112292741793992854914751929936135597458213484624918522974980781423097998590271310134236705870559062881872208305250373267392762262064649474685252194887958346375539985407527951696844328464391878360695018936013560619451768497768598006860330442664944088636752390208492036088952778739481573277303430585949441053686892976056290800509934307882938003777676508656694745736348501394137820035587745867117896464931347582412938179904650653325586275823899677967155538066562527224321782147591470460039186241800798155533280104837442810634142540694048117900355136267698569167579975210499160929486210333200684923420072749072866385148892449966494331002061326737752712814060218860975697628324888404187669375802849635308828691208707421886019031317501186099312793006375171100974956711249750969933799307541800937597393226402624681659662698717215476358705184595371001673272283714830697028267887811983427332765173885928510391010897090122829833231289686378592576789801284370544620570090636074645264254567058624762961065941449701181332251267087945095613457549782607189703598719609030664196497351462963278647626574552672851470439356434218154491178447233729509820771686283074439514584922319058928668881532823321531150452548762459595725441780697170281895134070120803540226149761798488744663612904783899247481930948742852075916665733382138204497322947066960956563072839193676844181303118503060873330408595555349492066665018484616069653513883685792426587557457041409592999225540679463781207809971351118880355821160286374329159296809961492504245503717443956063050737396299309852993029191462596430776033997993216128816313558801972663722814185812905041124084990975914063707452349694993483811918930590497645193587394162988810198262613646071558441558777646252498389833243059435613176006389255506080413078527321506675791597643846864138597058907437164017586899665044056021807544767484881591533049510494703815992211538733729588794825049193429459989875457207186450902700395537475049644248056678975718255917949607728576562056809082255250078647798016460558745930402526891907502537140307570016906822075626785872049487366238271905962165870353331204463870647181041709573585998894344471794754242073943171338194125035108732770794641354484466055389471223709524898948820056129879226086913654823532663801247381474175968506496408980526068692921586568835436936866127270099701394778241298489847677808156568973051500450369585990870279426295330145961945115520961627972736645246673655665287600492269898655750523159515911422647325269275996224268996076683881878568231756323291737988401782204954294524998129633067586595650282269792240436921583143067763727151465948895707208455995201928398908289571137976709567855135567486181587900350618461923480148482083891026245331548327657419561555454043602079585977921648070819328718934497586953334285741342108800918735323261370815554278090379014431289839759491688993148307182126924612167021056628322880086391757458141789699212187044372345837836668145544344046709476782326434093053553272112190945753361041433444955860497865129491089089877175465572172065218283412374390249291979233758780181377278747662879207156229120462021487206707462130959772931470594741055930652404136937424039236151364183903475888266387568967463609136855302168520090160774942347664526799169858937530077619053519428728652837203922947287985204140584503577237173303848270309488367327527705841067377743109794029808287667059175001380609847535950127951520584990110490812994623577290509865174937892513477890232132723776218555989677967090940058160550860536456331715758218635569447709315521843830369983884646643472827263822853966636313763794260066432621986700937188193372732833038713241406442073665817516375953147125096778634382068514408121351860308811459115312099282112391333427989218613216582293637316012965455109646651618703072385238986843810066992944368215298718486259245295318768586982450923287275250580034889019632293531257242050327463056651902818705042088634164881129893775045899260189461999510922900047118559683534155757616347660999445828125576322687925831189730450944926518822626394411986929239025639955141623411202483464551045283056311586029289269613675700902058627700287775494930559655328848104946974003106053878561226351111620785457300064750957595161005818353620671330118105739223197449947952104904332882947470397256221130564072570462325539319180314227988627079342153705282549047539150531115062414941741907998670765309303025534297762943692907318490967973794190486787482104054130961523921914609558505083090106391101521588429005571805710229418526731478513523742522714867144837609795833815935677567336248025952478961846799639075461497272792735834844054932587592535471202790667914924070794824449305318741520476727195099103361838560695914925491516718486036428265035069639056691660512857612433780031178819817504316716024799782460581471502057682663043667538676340446299320825462804715557642093462284305986410852870659639900976900333642114031375702319745374919158383534503500172298286178460572584059634971781491918100132618267456053980793415387181414799873182131319421409645626707618754887530867353280125713836190249425164228842110607554334830815132048107092339512049908557389008134244805708696997724838415532801140253890224016965482835799517590831493362048070286389360929030718259506366282449281317623417428977743004346462195155851342475868585155041949179075710150928808727122760449632823981653253827838589863469429770055249219438288658471031425617379274635848751179974536285137893240629430581476448265988698902573963637977799434977990992930092764522901936182106820071533796997405416470380792164266530844746458567097669242161644704306707244470301002878365404198261478524869142032759346389763866897679720067681018566767279994001788635912080578054306223620099103196066219376284546966955124989724690583924581464755625202928079837910989340385271880814152655426359846942368737522145662909010026616407324321185198595899180629926833619267115475100443486226013640161653417638996906987478493752394751795377200602317464515790853936870888863971313293675049697643321198497737007091638627795369162859288985116185051714187648995317720122592938830236453601016001367380765814716308257360948525497613752124626957736220284163628548892517217789447738792646948099418488686271084499534622946458069008217365672324659877052825167967789175833938793305389176000373024385012152457964992150349970990545872856732162054897311879646464912882678553316741439958152615782145204226403355864727448064886338189320107150795321915903698297182479249491764467197680008248640209105617993168813504942573752747303631774815787598656419382732640947911299791198731949054292939690608045687290538493499493907169865199680101311936231866020374195267909969362838174699134429455460111240608905586645527139031537751524729862884546961661493726863703070454526745619723380631582441626025428473696246494567653168231904192858938881967053633419698919116110766647707780836774178413883628237168301138984315731041889782369658762155994194084899356214203616368182766329064560027540098834544446439409186501473315029320980623232919629288515365588244003966788170358837807564503631713101378142796280595188849966145302435661235538728597671609329078788812405653095888985781759181191855869462407339748941622084518040710100476868218104971537178188595404877858011143864186055814109095315097800601306296416561094404660747329755912952719400892605197291901126179162825395202588246906693382574330669743365074755032857125306724760981752857076616554566316637351355291028985726853643006257545599218213697173475888136248914640526788974780605790876334313453572839135147801833607843115396998358087624937188499421001663198094055956695606505053506412544723847362991930731041702688673975913993760140414903513736885500652272422170082936036348930575007484848966500666440420113518656726659352274656091719890298247511087028973484375356876323620307683868259379831784083990271151814222679757005302651296248007643290394994828626377143539212943200453507108506504159614874662238684985874192193044065843457021369699393815476245664730988540491075457979600988687269777408775671645544519222959842652740079600167943377518676052241446908898751940496211566274044491755718578156767494819929509110695243904102250259567675709418106632481804739032645429847576333595193868164530070185076601596833718382404307826997137444362280082660368124056820569667593964603845674294014636675663369519778153169761862131836344321186610892673966757401211050839722760583505715798396756507410704258971708287332112167957852177147541557764888606353006687342578062073351010301482998767009006364422614176061401145666397913746526864578082579422522412547437312644868671142135423285815098996698690557981034283842828294421019488236639868977644234691420104959396460869532937168668654684854346255455342199124775455627314999096358375672549784492815051523430502298838540851908764377318736095012520774518475125117317966960401938605813381861423634879964532271083047285653200335384762662414785295748720361225843960543425508795896145542514615314825912980973498994931092494194663586137036043301722235803871178235778675008466877813926341562115185821685167448374019528927445009561704444622892111012763792163855523113681322151249952687789623338423966882482453115204478910767366238011428811271788250755793511556781255365694900217881807439988416934542281084770726247590805807423290829470753430092431952747380719061871941035874374034661897436914616377041170279124062700803915335495327504136259107954419159481785123394350738820683771695656544322280130864894289081172282885190599264543122614774886176896514414144201560785583308437291513434903508785719980584319713102652094140095368859765274581179884714715666862005111070847245566351909999383280998452160153250779186505764962781645642808328753397497092146755235483506991696125411509356482446627669732305293801453512655556918728879640527939341605356774991133364920687390296799666311398090094466048901041857534465581169357003352920192764120786459191265186627524063072690225095631278228203853989449679266456073332732770664467281378228257485544384172457049472404273932444457926786575318626273282810293544365417193269910679917902097171297781721924083523343613576010645141545218065225786821724081132001922400063151209180288897947333475052252580893909033265000916670285580462137824098652158520630585223338134938489637996843492071807646901997396702811055565896964740013362240129847000080644176967075169746323991352672950206369639516987702884079991878996007898737191228563751309321731997204561555638496292312483128216736927665703614358109290578601847195598840229714793019146379501743999784559463490433829002405240086346825979685796241852176081094487587466073377188521182225301146605766878263340383513579049507909433145119210844223873837001516681918263713256456812871734962497755389034315091035366428026315159142426529407501464247053845562570736654103810242110083094189141976966406933651461432896184741960322507758623539737928799382729111612621439081050274732317832287925935879372030696510198465415784068316132603651146871591851702215718722592506673858094140294753554142257645754488701944510939393664193341630553398501055061659135282260893296868487728444883807765513894968517755225498608128797487577745752176442565241752811031752295632625885904837994427455950455451634799769790716736343638943559861359353587073825944278411068835846855051271955088715354529881136873957056811169070812628798182452686250205084855215635441189286799666511064329861652934744450173571916544977946643119280442336584529838447377221964137510194604589814990462598514342643005981102033822439239701004688747744848279565771686365713520434086381655068820069377764200448545566954432768478612486977828569375847638526584605868006312706755119909679209764936575284275341086231946371135572043011597478021290015654548733329014917130403327875517613671257182004073281626554914148586698229120224017572097797044813075179531232342902605368883640996937942922678079196909776289103500071923021879139303119170551676477964346084665885325977684215853790270993877497650525055863823454675423950930629331240737764896302873113740294256639349820280829103949440495441790798506408369894519103092958503958284011249577957539514552686851907467072158888452927061458174437774720390675986821960673358509843033883528750752542071617865394336906334206756914193831472499054939875016641737166766647475491219419775789065685806965478571057804980117104237306195342819641043822547110847368639028106207811127585513715394259522512833264962721035262513320759859982769610049586172307507818119824102236686685879838861890614957299114363550610032775819564970943754080041373860130234185609148599717303421427543222785678520538184217797942058496724370636186117728410879962900219179076646446433843132095851579273332533730214747198441646622061088171530728084515932699666441353499243594603168088799440192982685378816124727290173491815371978617748403015001846563050704166021725753296266580951244984207829285169118841468099257982173863137073145798025942448968602576099391759868874831415206820986598200375203856607812239359996344224335988000838629870424259571355804451651827916713888628591801195715384453600240205898965620917757178554573587993715285822669061109028770736918320526481236173394712832257105258971330090506179204168728680811207796512239810885558661568735193812557825060743422133960019586839124568057665037041027467906408514761002979543785250043253114518090484571471428449815216262573971803736199899199533136275135669618703357611833146315277668116788600792961584181600532528499471494904115768901025707129641971513503140504397419647558567450563338477767643577733238104130390886458051685159896307567681011013585584586560266768169272821704221370500522976884211513903480170822450994062213180147884008388006358988274272175913959686498735430201301522493483719143478149672266540017229718703078642192087612961917363254172999918815079617334121790962134707737405267099929214483342441859752583590031206882908130844947325104777770021455763019555218019425663897982163107554946571845994302688867676129029223648206628727718846278076342228934257383210225886301890306658038087004995962950052735406216032518980130434397196037291974842267299817582231669307146126584750872452180362228947397280783090731619432703917039802407380373727572011384295358501889927833027949576181957864364236960194409916968577653423384002766074359478887410005601137200916155453036289593681240829225155939880072699533969483394045301961242441309227932187699159597734822047021629197080943599395781110224355953822938815290949141144905809221749167131989946159058380058292997506516740891904337463912341231424684004311280451659379905393014519401252253844037049547737090757073288617534748043118332397207396901525426418564411312882575821730659341614993978182261377526922493578026411223261968049140491554338954767234380881670937734875570495472584244128311855971521989864245444134940812310381499892862852822405337986973372952313016311954870930498836947739222289432055367358596860834589787720899716105084680253119816616992037264259273478582062535533246607321580489517472076939047790878229837050434433285270897043075690870585666120498583535929317938009903795112997878454214801609370032175582016814309192296410018240407189024686653794681952462166142145078978136365442180199427887731637751306219292437498965149803941496887338415431582505290838339824071636211823798531339104647329495405801381880653977741672293066754264716569145551268783912463769090620145761077110376313480717121715991444092829209661023721663607763896096570729625904422934104261494453371800611989413955963664395004198525625879358277561380345508931753244254300737817732436551073624632594900359023847521533238658173605139686790778433164165641502423188860133333287009016279778419190310111571081259182029499226867650594639208708209598929605477303304195133993357168189701197549936882443771540311409677730262195556027282393763692483598560824203974677498737708899001330356514868978974985845399028037538450759557558650305500684051036323712122759698297383716874623458407074808090762349598327615192569437735206679236860549560744020951521006794349013287252713566748012129259343738247743506299030207525048539895879701958643676946801753651287872622988750347607207301934092160527685593228278098077571761340545470083349939977972961727715366738529110810018395982114846266619808938438861311570517428252438225815696032469136066137369022248251973449620234072064290859737288668919760067917943217140886633098544590964982916794787867296698015305960746377697267878554189822085529661992494967578510764351094526541704839006458919040446222029244584096964720696508258357835396006367828530948328822161062147080031448113152872612569499379830043785783113127969718453785064213363150009925776051652150629804785697426667739085361686669197437103622597054365945254505221176060839112170882648483491158394450529454784058063433401836928482796049352070151013355220489447127638626630216424407484360981329572322554669631205384233296849055219905258439774162124352925486022574147293400061676144752655222906271536091179053469257287813798681718402289921056442179260448275770059673609962580760755953359659668267321878248399920983487014991654225419601770445519244436089062774406520946521844261785163809842242542698475110426726696531452289587814496031283261773721770512542709952790423389952174363574800435284078009406209959372047584670855301479004368305549942841011480822004388490050020105312421072355316394022628533654411717534619446480812464046538025597895015919693905651773244657068821800300096284153313146758337835533870393276542531926629903620711552008975566760352769852239940053174039212530703019413767643818678856050647133189242243877895899315118127019306929168393987463675339242180078216766792829177546941723278973770786015904220886130569323659099282077184777532699524769444702777833439564631418635251670995891824763043223509600772923840774089151333399647935929083789059493026314563764798636394326775794186291708873757881180750396573392616316281223167348349986974038960249467153316707593401572834734409156733225300802491612213789328979339818837611199700519270404515453268645423941820428236671967260693484676679518052270721713604429994242657156145043806129534217996996635984667181617622632754362943124445583788248892374415878145834373920965369001915927253059076833136399550743361585045032655996251365173845039954738512637473897223859545468362168719900311565628745363141327089419022940873992644595047755578298907573002425560527010404505231784471705989614852707360207057332273713327174821617669418486986587377298666516368011823311098233496189633271951161780442283899904189835311060790945345228998474764096855131543770666789447085676739201333905088150552869988405969932349551599691058250847223223668630276874202463171390155281298023549971392030781961173743904688741245514967649471285650512106926265720566811379437095465363447633992954938845485006738952884302936908815144514771325093631619741712919338764331471380177162296577965090957543792649586966708780795039983639558849253189144204083885662792124233605346197135890668799744725692683434042595902162147653722646458688736746521505823228968267962142515762994547022501274970103381153102514335496005570998151601055618131134423489649041417488117883280148547681366934556749619399313489068568957098651012002068800867723276435583926641169510302442631497255895418817082414935230030284697828833519051546453459318479799725959540204667127414469969063862695009339027255463961736957224633495617978216757054994435565119122153226467637325592850620190943203879034830542344838852128238200938006814344889766943798843802257255247904598030656744041426611970084769118142956930106104757837908004176182268640811820346194847347015293556604190006352451788276126899504918164515261831982040456763687764271147384102779560867394038024734522348496809075156823739729448654064884830863520562052868585552641401916183672843185623245221497398866327580520090862075188570359761749290380643952296760146951854291855623024616536688145701548324189136987878891351820456892261392666819015839115058738615560755944564225963109201360544179031935630246052581818206864929770793468392995618779285973657426050649613680370842776622532225553774260839200247367889640350329175223144098232272695128162345235028454366129343157353801812247151197971169842488796765628934901905580427832377152523604329154271088156532117732512197624458912859558585519658428474711575364656947626543361690674934698534494077532189664727711857300245373473195554911051547011292514756951589250000807259417472776509133915210978718789079277957079992285922160794011499523281264276720980659052383206397075346545622265152931051156569110178656411687459350020318390854169192591545262389795271548232210924352270056338773640075928477307883719941205718934726099651812690320548820700026018671068815755163923547896115149414156981419808901930793186247229864517326011061223586915904236648105758476114697529575092476285900941131840900017567484003518170125453208570124435411428301147731558867409053486605614390341516822025052149749088398584105496527513035300319249676893462602428955806734264708112193854911959232074339304474635542977245365320360874837499771165634646148316567922965263898803106391031349055869179983757756597889949130665843087455416063696671624590077833087074339392515916036371626623779159432017477558809172914489057066165034192829725745229513055889091679779159927100017760613637547421041569842890658261711377174354755147264244133988163936357337636415751550024180552625429375575512226638636065449924697673029591114505342629173855724541427275349681468569608596662437544677557542223359771509841439787076909349389181144845755202031189514128771239716041670816533484866386102638791030438438320679255200871165357855931218972005382739906554626859235349088740169526758892738963719761473634309033873238218806091272229472695894882979271581166065116573256157965430100465414676509183904053367007511351263083356743133940875110288790383926862560013231470156992022730129779183093553253430706928154174724312287899266187520329416281055873420748399555036551069781219054690560780854690672846296728643746586908381624161588956697837988215285138106102134963761376434617351711384882760859722361942694581803749870581051671444768723844780778102901208986134671723540427808726320650752388618987451864377136521466916426931404357298050441647550346600058599694446419113041472798719851086896412928766244014273912826863439928756900181319972350556194111104354586306894395535630322024018536501094939540865857022029393849800484213451233310751634305753619569423035980936232596422548720655708603219727483489478729789977838343320415104747095704389024436489623046174166982699064483777163262244579522496321032167781677628046688334920253409083494539975657241575071106144891722965743029153083078948417899681026780449670377919978798462713066772493727417020793874643480894555400928727556435193941203199159827231898246778118561860350619053928398038139338292226808614442329286587961697671811021720992499006087390332884179560365307490712613627005786184618463862059957569336321678633182672016902337495920403438886589479819895105095524831134292302229692651861553105771739613711146747872114072671398542967361229304595287316381674136506673471524789053821197220891082754749882763330383911035242254823736803264387131819858407709510761194753468980270241144071071099357699684571480320251933512947415611562409401539287700266800288077992809033177455903139701518754665647614047800588691373108062791365980197680153013015575362297105595558617311877328648834794227938458892655833742311012507150081878404261702320066308245869723042880595524095572556322138493085778246851646593818243775094570463714520269108757063955319633838956277239755097294823434077476362471343687300377914451412588032618095360941128523263490848479876266167419858297822731615909301359392371965808853713323591194247170997034965659619893040655807880326181896058675555472005697489426894217327709578525654455757452886980638632838768951382807411929459301385239688931361604372150481756312363033076192027706032818007356935019801294071612782621227262383833224046160649737054716010713510733077700421519801250547730721685544026315075317187145671869310869571805969309700590586061935767667367171080311719653905440918934776864362809651422490764090403768593455054491085823942291524109883601894547665930457230199415054305083914256488552228641570263687164049204755293579668926267089417691499509780759221461447701434436955459042694311782222487698220030429397681570417191965978287997186303408522536568146075953350631084601408518608522167902339559835989298637437443581840532119088886630871696777646054164214054518368162932888221382938747722608497190593510745046026527784076388951173524279871591006202596942686543890267515534781062206511237503775931924127962302880030740282096010619548018316656457170852083135815262682503722946755434709313324053687931093821447248226977131682423948103416854003982093376231957506671402803938144810715875450775618930550503143481900484006772577573679867391994683578604642936689001040877310849131266862790334000978150996272200520398233582762251522348596344989882648932410811069975781612918665254658477728845629960235292085541774053096460851346138020903576126692898555319642796852533751537620548503017174955023052844606862458462360101309350042127617338757580574090801555888913130529384627334646488200547124993417521916265966018349006527739416413008734255770414437392792815174440664925451191266489408322469717776153918228043547405988055526061077692603765192779556117226229494826316855519593871438066243655889877644656413465320378837253693706998724154179300149806109316665176660297250974417687242003092214640787282617776080146798986515247103372943971484859469784132485327350584499295818305693868121685172729404468930514258052532408791275419882901336472638964175446650256630247054050954946110638873684497832562439507304379718002450014257012334840292567952861467560277024011695472886720608156639533870744481135771310118977615537323399433867305482632496835835572010491847156514319705141366551347671104730953147895787060557243774144620179183705218659138528244268569296000972210194591889245397759085660346700573191195756000632745673329733441407735467202127331634450954666896449632333769890067254026058041869245160723095726868020253409881217467784184127531017842897438835320137150527750521736644479249827712131187239028683304458205150198324599787947121758960330631335381164760088812021831767689126930459461238776732311839584645127322791004685165382576306288340726903840337849356268445373532500168029353544398340821420527717620464273377125009129140708984287247082502760080494903953257833058614761487027766158665116385110905011980753183778176031883879583243167993536500875604952839739824775725669146708766490585315980001475025559570576427825615018982799929642815389556049272697380219227805860461377021659060468871326468876983535974122546074671610221479435133582373115448116318140913280569040640678159232016517940063643354727231354186483750299732664782737704880444737084741596645259288494007991393166290436830546364802227218242888832755090677855705702533521771560154563843187805363684074744119180470590649828831679013431270429578359558845192393772847448369717908511267155688326719822323601451529366436001419112031958514342222950064573898953786408139416747232698207397589225405088488667250682290120816375921002263602449149914295523654323069567772799640211242436226968700740550625475645995989526819030018434119716469654314626786217311856828894353561919432185623722544437647069206370236567984169257186648921484874019373291677208656197298280083432626577343524823141670482985640641849668950122631046827303606768450822260913732939854209363620620624963149603957144863894851862283730757296721069890763041913572217916827155644218560463637487563783574531055833493580310853249024442950547042027207224507768698993971195582283826921450574430119756773981169267415449791761428330667887099709740630513054716620463724856682858358850599703432420400493651493208322600931499059376512894128410777141648267060948659866965526425889614385102540217570967348889503836958385448652536087331106697289375688640993795893674230616373735301710860446136449121757455464667891440095204497631340785648093722481802960326011397889247523620262233902678756308846521270225887267423532669207082267018709437746673488786882148882085470677794088539138343275608926313690867302364698886784317611731800029648781118792720674440502194215447703437013848913374435421731360299753335515717079436468952639252716854446396632380276738223482950098800819993864361158124162174501179812890434379434926275422928294938863066926014774932030215275424934982802058156448959671108207233590116070401907557851122338589587137986244296449148609927311861578335073767820868488450824829821989975459817718114994152455086299841336002879859116395823847332097628635555849541118716769290957757407058128557676017779711670549712753841936115966769828309852242832478705336656914662865202118329694734982410841717746713141572909772431737908235314003212332283085763232285341143380586813700889100950751823104164291688149972720676033620095623267861414754318441520525137646303566096922044129652127575770341684207649595152920873934195915324911670501185728976518407379101881386634575878006834251211848057318948015404359862456435096357850192650026116609646452928314118484893131597320349565279870830667109385541851840371871732902223431928205700522069383737757381478329482785288406988639670564586413736655856201856364053005564710071809895116485535928779118271878523214504860845412258228824407183729319972205591280183329982120950773508292666374520170181740469516372396773327898783062346104834856705726583489658569972805819534304184985254237428159643356674026924595771852173890480728571143537010150057368446255798831818710630190032589825933375411952213574989336582638467124331633331091636331691055582856769142779742610419796571923483054475546753866822604812770216773213974680027469631332124927025468049344637027078286040361883539332937661604880931415599413458832530159626695533760990908323332394047383317153803184484946977293472713398877935446620456491192825449942407905715870261145030541445005842360689360718966130944714730844810551595205806883871635569431085522028935496330869640823054195921333226087767333700670211083230702591853703004448421079843092691274920367491940713579580030268948687004053834047076690936119488771351662229257354958714178858257220416948548338749645402703456203235330732442291911127429849760576945458583348317621944376619844832631376829548537746784883776714311875529789419565712502120257156446562878143916321434718736374135933611434717797222071180157313979151882699787502306027019687132460515808914943571357152503346729271782722847887118828318387560040543418596945427289248669029642493914959569325211529961683177050417999223330072541832026333234851003428899737044690530138843541252108479268825200725390790391263026904949797385370889801683517727542601549070039418810328326507903604276071222656949777827347777528682049118859903297094507256192763568931906409641129242465227170130733412576694349495520910547198112749247225007350173997603105946582995682348818787600364416486785206476353290764421543937943371780333970804980498137645368049312057904842605248535981233773711194518867519434509192156935221510923080366532615572446000325509047017546755417855094041273304440175924734128135774115781209803512415638808421725163944846313863563950523770303157314041614033273226092011248171347533692689571132966274096857177134480265125638737413380167924792487660743621992085027100312490867470453285670669040129060193158683684026937394751525258644779959142040815592442400155267538121166090033623702915051611900256000611908266300663806523979630947289194194952389268759097203644873877846393878181040087448452568276495754289419828585647550281773279675480392986536835508094352546060608764765160399205400770510112431805689910922812545861983206107026832784473398303110911061310649328983322162345641176410173777305075352223164069574232428834597662434653012546774362769768064007478878214193545982901234195440008280934763137529597580231985574653917436251063878760625719419108520290045460727518514875199279115154549866562673792641516752155439098855748469836038250664121129246268066985176098268690118894739412098855206976703781994778635823853970519192836531254418322830725468765796412787030109656629008900287196505512716067672860385771411966025581552722738072861686860120735595040664248565862881221660239034294789392370936435615906461563812354148454396999210426816660525516124859305739609718218890479870089887158434860905659133739626402784823003324058466092688558677245375398666081615222832388291688419431492765751520598062687055828111297952078019418107488559275642684255203526577843606245698521300473271988317567483539894078875080800108895098342872117362142032720309350722858376501791385238557728626923729694542706326172200634865185511746042483114607138589543190974396264042649263428427167725621088720545708608156778419683932230844493184602698925950362699070384709509408603481577318053164278589945150554064557609196143853235070849913278638092101160625676026203158648402439216757825727777109279966996936821893204000215507027857625451122793621224755060270743839701610297723163159727522050240215494987795946952713266077749259239611852691439984890348268274621681569252380024828796149365609022994292389663963300627538636626485137156012370437376343806175675525653820567025552505294297875674342937741087374005136539419161514486984887528398915024607671914693838316101488270279649529093506658325405866305042144136500544217028850811806492135063738309706308906556463023109676351892357039221208616999529562619135266431804361798472005509618837847838862601334648045134926906649604526266947827567874977533971808632632520330057763252809094802665391567276017191947587158882141900125836085171292328401062640560089448660867580327068303639835579596129453369284917681026619736535339788581983553840352763990431247512896837067666163666573903945993941699974268557027572336273396127863875355464350115822156638523579934989219212831735520076265550359247977609869521782803602425298329890905794698187130905629670625133447452125710239437165379210618660651709404768259633655700957178016733333602549489401549535070978104909987834749239611549123540337605103176922741224276395554860364999994842165983500357081561969072114272573512822997264210304715891850059499615923518874689951206516472672187492106648802282610899371547775653507621390760622204993917869275019098403885953930922037795049209853106874222436483350691887983953821928660689639166296092605165079746071175468126255485495578960518793428539120714677904668275237255006199961135790430422869706969330009008115140024299746633617967546781150935907327723459992671041358440203461906491407115637530266590848946751116394575644988585320271919244601842214120069614025515386100988302464332362845129578162737757811136024302589043798894403924993015527454495747539361393810847712064130002070323455578279300256615498910030457835544147910046954180622544091120157200385599206668696461444435733034560521314708720551114708820810332441278094247816619921420738922706126974504554718245255299860007705903659446122155195906195421012315636074440423722507844359894062124010354849351995512933367402230766876038237467404352414475078346883731616435081731093106857504792043435410379539462076974118515616973966910824935064156200969351286021230846356839047003366158894901623669506031450033353615569198794458235188789584538951666728778416836949310258900838757115964750182265130243804656501995182440351290018234083393364826455230646168657966968524660072300561841487666748942094322302257979211798095169243710705306354464111368105584812960283506865009146504243429817656478290624129283548038590451812519579176556925336979499595882366953860219565427873520240274364760166049608053371003920575576563453140273496059396073870298755240233346203541617455815092532546824737626489718103407991432055834186492601339547958244256676260957416771799935066835765340813802558261214292672552819899040483076793699520557053296503702150170775840528386098369268421639126583754519372314415396063267606470411503596719837477295813144659246879211222341274238765938980471380544362440447883512596660872997130078187367793208694812630124211849142654233084194182314526128672487456798424509280844731004286649693053712972383843152168789936098106696722953193483818823016847594788093930322558376025855122399331306664919619223523350171633410784197228426377693993559961382789399991529707459141561309449484210100093301605370460886697207695022029438048959165250565229368359783425965767064097173385140624566241259625171071381730929048401764511995358648392707012701565441613952719283086434308550036968179136532248577938781604453233849678058643832320337059392411979613954525857589615081456463880505750265668807941105084956297229526250828685743818963046352998569139513723908747682453862255202052775861078605044667948504561465685692279406318446485715387483842937373529037279561011795675406327175335347241456521871316699883824557672640758066060170842275991199279526876652547993781476400708769621874191792836400235106373398522674304785419559856415974261418080360456509769513964187234574213478109075188749371085309396356039654078600015229895530964017648529766429940941865398863926221788684154957528326344680023709254611445553730143821083303239823174461938731868809863834903667669794431685364434802311387884207944474843148975762792729961629123207620560908656620685477657971829154786706392804962767133981419563645973363038188402449935907238961473781448921165380119160606950014299729056068505408641961269934173138793829637753157443784133132790678030513307407821717113595490598777513420497930016391352875554832975636896752787362310415282698730813697602129237097064303958205182456858989752734253463619690455160421289807500714867537203942028390144059822711391185576880838291662261675129599222359077155350339961592505148426742954580097186122993271042651303834351377577816801086079109732156953540608053013399051828429596304038274856766732096896108870867395683409067663838267897895885009912439731383032950816469057170452171215472683997698582955336344044255556475528289653586796759535709202025147568196238761984141195985430594052744816218628571182442061424410978701304236441564833358467262920440020669489160780966617411133465953913823340685541833220695457128123768207572746260836232104094794355005281016562631705575031452906614142881840445760514002565374683630639924946320189614023343929725737801843205522847615326264957212020348445187996129262094013051165191967236973114251818417872826168243478485896538176106547483752842941904069913751087719299391145910376938836558155287690127785838293800643611693605744119248248505058328547002612637786771754236872622190835787577398771501349755453704197564723380929165358256845492615269818428157009937765961713370469523029419402441998399389247175601219806679132909339326722472634368135254674744744695663674979946047121906982269644296204475483204324938792884959253681699656984321243372755958252031021007560270264033023290212328186714243497407980466972100940414163474732231517827812442368622831815606996881782139524292333988996710359882085120331656598205597842287187209656267232681909301301036718272054733746687659152009264568131154135204040706451302873816043703848179223334083786327136296068878513228302018194643164261273392988681263768399822412065472145115264254326582174121058049994742717181370923870127535287302184589288845670148109951744915052725068225134688212174229828825151729882395248467381057002965725112470197808163865418594822877556272735070183088414995712773309504901202056107961276608122803981593770253750424048975666525069614459723890118837760792245636732542515440487531973678681958304590362590498931054419567731346375002575099746408691939952201805727421630960814095267593706695275012648115836243878988058663925633337663686468663219305352383721783786610593831957190549884061454957477658466757376704218563334239566952225066660869140351794780476571251122127940535185142081501107872342991684454890701628407264422134779501636013189055128805865825502663249612223439285380112683870032604639738238137798017089589337172389526020989980446334137954037141045528980137521691402796176598928800719267380270008679507825053536340270700731358982256014377174308556868043337497317284606099213576658319459243126832270443490639917420362350560706570364326794956713896974904736771666956153977711892686047479519051793125814693190483044803530908687152025612635008733187907134950663478692457918924428360748536067450472181693796157939182955801515908455802802810007683090696200171999210944561485819187479088164479513170902135034032372107174852315228732794793137237425323504670676538381405201817213516539860556432554292796407001817515044524780292364665905591276152455135618860361919958717324807289067539584802334385179532113198384183613720821396325798378818008024857044279714487709350323783680796024322570667430743906399403025864114773149338687534966674883428755840166423696365009677919424367553956504182028837150115389545269896633515269514705869139257617668061358424078469480013945460248579918924539069438324930008009542384462445385155384258139541100400273332847622895337437495568193201120475127949696435383665080924311748421984403308901329676805226639321680457109064332426105095687107721993811948829232285725299309788867574853606589039454209526138039494713127743993146708948496032902761881949849072016792402421555529972646671931673542227771119582049386934981728613925360049489647718214036936389968859378410249169901315320790275801549587557612835494740734702493756719418875646170561693486077150912984516889310492243745285246869834250554291528996781921196312023217642158010014158385954086722974657142104469086878974020342607045432222769733491101835181944464711297416238787276631440166944905628729481171105092596475968698591751420369106814325051224186341323696065842436640078577923272888814966350031636487030381356671473528732034910346083551881350127989286723624722389658262688302758620299091742243568224481184975981997194617469883356829871092567965856283780325225800041039682215009517700070392774296747569153285939600220386934020916696277929716152099600149389670284149739777932433419641219167262416743819537372715974694800666605819691942442325964718109774098481660002067504219970084535348000799109151774648518080817040151933693638612828068256005368205423277986627880729664468573669321309167087499105719311419827130326434516270457713278655830327845131263108361720594158655203697210538929121598009167620486613732827049870278036544526934379033421205454521964185228370749181576308999205493482949293408987925371508396362968205267534813219111658146578735585696764478922136597239432488129869338610013402594950771168974601983349008695563103969857381492166902339889785563191106336687452852113299633245924337900717576349120518612072483163368501900847691849044995648225177581387890401668113602251094393824557951003902604545078485203936092098209982654140518756858307430606738241057322675631514631715141870899713958996685919653737652097048679389455795782366400668950369227297499814147440659613575073967485959598176662982386556094494680612900436768522982505708460528871952631669121008020248930138610513628017857370861954351037496294085489954623830011152215547962591064912583496847062650721764781946848410313591326439829451890295417130176311269703959230783169855606856786178884956699437468722318328347135087410446207684919972060368619262285349776245892033216188506336578477165360692785633223199055068022007437684298657629733253723852169787822445798251874942304359886980931491845514749362858852371034436686407273520768731575781453174530510899563202711026075805522412956688752533533884199562937942601963411197136148888465788377725054987518700542160504305864963319698974988219664327615332680574656687991275797288156514075674239203902794655900232422492580445801878511932458452019505243585122653017059179433847110926183660995524230382843495870067884667827800964514654532365748226153503128824950861788785525590504268450092359869475083641181976412657722215781197223160624238738692802228833107299880400651725954724074507741029166058704879764812166154979987878924362607317522388031560446702916629743632013738213897140262786926319106188945782142320088611305580903172546086649387732955279769355300260430327558963553862140728707542175496761767175196658492281581816103667939768089201293622353575020269451210473740081703657968329288808246405475377046325342459497910328055892574608148128107190484203386043736029055155771495637300487583652630058384036871487316525979034134764847887749638350142597132526591888777036209378954427622097615912253167976333226525881017515483001764502619170563801453525065042556705943022314344297560545418602474229178799614497947698312249921102103414213712356186529344996392124783065192181160448543889091809944165097322982490994647114336701521076559674915171149025667861763959604403705057870080483392574753892907595300566284656678610120657464740413997044808397168003174133573502563162092555048421032930141013525028370089834628173341347928599237780262155546747471163587220136744544824828990495829770871045907485412165412531069477892125312028716544964480288993156206409748102009435759106989643702000543173058588835387011830292405607597853381386575641345359848013062164458646313215431148292817207594236918966041249075881050271016484883088638353005763067816287601045239947478077752656167415855092558682375732086935388700115708140253845638440497528322687685259773562414768819679243340862967855434351458363695738102286897681337012160058574163114238372364719582279533384205474380445411472991733920263061440797820527022978232361243600526853437422678437025087443551220277818526002210213362677928954196209005683128485118741921381043534429939761391342085981615015526407301077942303707004522605519382182880439742336024990486295710846255790537690177344649640264350710918236254118189657505318450971420744024896001783746841518517177593845878170207354352274841170850723774709990620953912378654498816671343323000819583964317017385508584093755788908979297888635899746110796765815898316386794842725695453219181975142953444947198905492219213461234571170666806011097831609489271719828256239236247424187363600472688186995330505065948999904188926143503304238507074911572538023555861958190060277982081953064532318527818194029014633435825747196925260973369667396840229517301603680753016162261057556183520341108379855073565989487886354513816609537683039384175530433848972691804836895223772136489600007434306052931851725507952990042599309405292243619072848168889096689725592445966190949834515193232380369249979306729174180305591181403305527991069916156109754175756954313257967930447584616420987850216391886741229654045249169861197186165645990285387712432567092821222192944388993876823810834285138684425638039287894673953009932551768851629525172188523943428368146689376822530481964836117348484236901001548189876521529904880179209192027029651875031451361533667655124663560369493464066869270546316169706403126715479529535307611748474548770083851913635822250995924847735726950713763832029960442584305861249553626708351567118857424284740367236308509752068671196344234945342882018669519182194128003272461766919609089231551782060785008000131313714345987654636414278274967137066894018997083852090542249565486866116573201302320259741488278408992381427941231486243114304856422905167434889913681278364384990527890804351344474420234322225710399872330801603450731953899836053261559687729469650853367389797441864454438129865837173596612654774153123915165725612323318504240967522879368693390393455125501292318047071613031935670071650792838117341502063915816797435229581123792080646524853962557517956004509849628488291316025050806927477047180427474260647473082818504928484180354262727565514324470443598861117662370059314281305459328589055719360870931304492710171487949734295496209020736532659118579932204522200621364989821379523923243761277786185560812124980176058053606779585465540825529351570484885399318338355760489539042522767221061284813195530750306076075387084072382353930844276606445511965182406610635023544652082848063473144508485222644492555395160042784970019352521023591679856032790788114386953006112142696187387144987911380096016940067880768302500304361484665890708022015054491832745688723322755527931108128687196355916042865457834728323282709793753676650985980971066447064406070856695357615109626257104241139734965874865280598082650005719538454151570660196709662645345139993987861309513912960185281185680794832273364950444525744885511443837844710985972966636598773993924730640373177917964100196954175198740318312664422499879918563342708234342203831905456625499442352377352047859611159148811187765281697781773020879144545505076103212250606186328384358611640814973125747763509482237688199175823954317407364940533424202552472156639425373178003757843601198528601880630908002576913640064515001272037417432074386608157710018333381698251111239845495917481965827562889342382762224323810155789022723436076996787291520182142520617730753287873830285541115082672447975453937230022290900950865165469998272295018323142407024846456594275484952006483214274183616360803358822455782177530049902784221353776701542599132160032837795882355973083052502339614656728795450300290242264038150340197603206591737095292659891995256994986793112674779050146456646024446185153754997712570525367065993994855187139134441989891817478629251054884555755848234434973363102234236858890618682883217041698149971871130687567531669920471848142843314659961968025309833474421870722398364031832203309276418363331126698036605546929436812393660701642840931764253321761102206789630732091404684438186321241596870461565476237775389971207429001453997395190102684574833461312569019115066877093264641733522677184324640477377688652614289066887392507209720891240665456322499596421384285441983494778688888172298891585591614485128959687607193190879210808925984336715841756758524153509816844008104696585336158984589427215891305310686296502044467317954330500520497124941966641075049637014570934995561624486291857519673837636282203736221918951513581551410142645342087435613444272386843342093106419483274756267097236560261102116524168169863480160943604480049756462217250661041832176679965405028592613858269176862132874494362737289785392909657701103646286726766239800888022930738747264324877732895618533097531850208461438189326409555019801923020825604648307757983172819750349785845149483902479197212642218912966045083995510570693463235567000394720670543181873153589202575310183094916912902980239662257106443273261911101889514687048029334411715762060117412052382396968700692707541624450042583354383850585351979340178444289010600215894705702811599056444954223027731475045386144059012282951483853503066193642207309028967595424894609243883357603726893478516256442042304983164334306316649130839661796793527661433165123122611502641649435374473047335448701618511644870051013151988177360152789451505941074249075607815803479501413697641964229849423545429412008149855315807037839560281386027866549822501284403606469075134227317396444738966869829297194882698652794701416024931185646342704799265949814574553231344585126399239956103754001747840660637094569182751138152594899280956188073795766276997542544360520973875773816942167308650119045684835755301495326473863494814032046703889494138040118956010815478242321301467175861611150524535547069477821004560996689819040686208096461752291228329724167948183643051417862573023742363168253043054380500886869168803886389280334548332792861234736630351228359741074965315991920833125051017763290112532164283608775357464510153967226917415179907174822236658757602570924384586357849736553938337884767753366167280547161007333498724155756151359691178784811789467778400604251185413432724055136162853358931542590790377893248636714398445810481252878638559110452440286526381241396007020309180756842489506136418047112433902129387345462215944054770809359675000872771064098342882106821877993740317409077638149116227213236410654057873808458544123024670081402001013864122060540592056289132115471971392008658076354647229379103533234821834166345439136177827536117972221236635689414976509145675243486429081143320238724668983553360843969379647165763522738955494596528042289362046149570610745531963607653155506829184920110318032339821478629293959307293660788956305928006165847831072462823189822074853273366362169383658737055890345220236265394344636869127767296931526855386519545494255364894169928478236310852476448791082879596388518246662542138483069595511563422221657945082237975254471077028122851499041360053450032177497806442839853243124184309900728128116969267078165458641968746313525849581042650455623202944524671067525523221070701038134623386717558190102822306517583718584772178066720291276827568277292079629820115314986599478088462768628526638543435666927488235364991625939326891664952709030979480426794398004097480230289046672883864062543752616096461577870367132066832654011338882280487130981939360907644002124349762152396007225880642674405474435763087905881465335051892488513361746154769672366823253928826947802994701964544503525553018400818770818197991319249039635892496760386437746936569740002988264875163068835221890081522105843371259390965623632485461246962351826488717746782811865599440157001125389872833191955397093365789983989338413699468400770498800614724988358008884714748091182942309484200811379466312148539052733770081270712973490212924399669209727895405164521697811659092798372805115244393806448251881991780060900670027221980246319752913920740225781443836471448468101405015535454355410145365850498674996700121390027538581449500340665983897203915724282685456999078126447613593504696858304144614438602459571058697440652659192559692788725013546681279717523456625291260907274186431425425370755567439662277056846863111932627948586420787736943220546314682893213971664564278486646537026975782838453419897880151094421195622093715649544249979866564109396244491533542422554460710880463782540970434563919148482946083838994810456829134877903758139081410537602876638350341015118921051223505388962500716532216004368818937544745210062008864738722727353344350091195673867997941474090710967098610227096103246371186866373664364481359042435578643275218038000046444873614176969650400585445887362014769057472030976849906912669946917615788541556288044698511627428942684823762061917367586879633863013552758939710042122998706269951099965889383192682085841306315520869447874719725799749834767364234983504690645423869435204014106736690494942870588325986296242706545285055101762760911964214905581431965186303903008968178951914375105066687016488646534881383729693990378019355507041276966187162817468940478646464909427742195645952843796163676816539935066437494439790277905790960672146070931997062984010956175593593303426365502336312026935680288052869650664944342849608638074267875292413844151364931334519856232918610451715502828083106503005993603899578392498113414845735933919783766580584600643979512156956461359040625486395593131845095701497474720793512749725817672002191359452623912891586591512161513178604475235170356454923123103927442736478858931811375914959069379156347276090006582105360342615722640218957740209488601136486059822421313352337060517112632605268854145041527784880723580711420451850404527924284429598487751728508141595436329845143708590715881833418772305230005105650600228127388329526654712533883590127056572093331551641598377016941569092842249629379608026146014381168711196494431525132170215063796535944691288032862674066512327486840241379992422064821848963370217740319695051102698808073683542994961300134638913666681337254766401701885213534890541238221852175005289156081861360942072805871790039731613115510830014463949794308559769968021782910052235049693037270069342442195884181357100872374596459037670582865793800179446221822724874501164204194287340652988252985979861272670048885907946972448390204811306182731372695070548030939746671814264031950370386977798747836624604699380370779913111378938190669338736467063261049030164683294940234067853920094391369081517827129551912313235250369617772403271903214781292062386581983777224412736248309725620367732842506933224072644966910572827699819887406915557544500953143175880808374157758202726380621181685331923956244609707823765297345861792005799034349368557344930381792607080930399925907629808470200397787720380343891888009720820981486738677785514316951419436380862446538656965207931287183080049326836502929273441577843127494079669017628317061260068707579921045509217640697021374673525255897010805484026910147299939615313375897728300164317670359882310405076869804818748607679556728652997061686192784474205857326982803289049063304567989629869455426380959365014359424029010691341708155538075283477231253141722965303681545697672151574698979058823175291113224878591474866958411119720645443990753543938223335816685391227579028676393840337160494058663448017582649939157299773157692629942641036868093081085881141892572046406900400366548907437147240388561056865588141269009785267026164673562593632408936208124900487888949722305886560174057088906132344066884329948362080995321571400966244749579879248249663194211582386791741243065004181133034018737197727076994638072815417610651433924340291721110400586959614072602387372767468092147873932652489231077201458968622675484905217030302283393063238839302032993951179543764906298253020352644896353777638369057308911794627304149089498931467633570358061358245682673199688556451344831214612931083126648935992441416345805002393860932895533978807353721325677930611839980108862109272024186119468566464505124951409870060761711263064684967066764118115758499748418647660957532966763781094878969557707538405743329727118192264711216440937108587763365362996216607471304734083273825335264556889897897458575001473871380811720447488048383003694939855660837999431397900767445271981238160231718513532706183683045011787526739593795999063170607814949735034142621986382023384195490567149312262786908342161759968296912729980993008714918398120375759270180196979335931667783783719516273857058096127187399001646098466777829419503431154847358139307181528421135377532839992651448293880490596875032379149379040824710912404908879539363887553653701841140959157016778193450296917025744230654011257471085791951607846873738626098128478702719885546153741141765443044814359927351523996040319677462364810764586992024168776019247943488177997525706239628686909582910230570079000835006483361964467239423499739089633740236001049610425928673773120709832082629150586904550566221605248953750749772019014562732253376417995209811784920878380329068726460834710973306031947581430922371456256615683163208988419002522002074777473982992874824419425511353519522779745195955433712007769345251691993336891575603759402533167986010832052611873721236504996326311548615677229417119190546086624384153972509856183687646455707877183956736594709102950513591410491431235938203082334181941754414887777841860633224590591695674228836291549637197387833366379547824163046119961127213283227817585205794867720533343511791718666590069745926399481251980986139355246960003107227051182762275502722739275847150229191208545835303418791025700005471736878690506679333849450568784685683948564758779150166428492032421364553543815620670062150466200928259326337499745274352005657099810003072898729693424287464784095777918414008560592317255116191210028077115558132403376004097332095550059310436331462619424500644690390909612317933340043150393135947464041420354600494319830164065235495989654499449192892674679469982800826128962337062424970811672365763002621165665887003012514757775470137466935022503838105583212690176564035936378725248836087798672778644373857389771868929133592140284029077905305577145693436535095128015795363235545479063153157454534547668146911251092258245813943435015677118936789029989265565049470511226919170501139752464842045754294609165724776341175797184464412707257284700957750576128231716964778805193717815116339017454005678617053960470829795071320971969805919521347033479491627280508551362568047039418771001993781181123652551831854923769759452429754604395461909212955654696855103694866980640049900846443381015154394352190666431426821009289849636329439840975217078397635749256511414117749112276276023799351786938162299833559576216754177379232984706500682654099577689889672796964645068435161581191296378141349776919410059779016701106983810995321337535484141465103096223901081318499660112074683133380158601721543897736336315809988207791746367336028790198572849148473863509943750264786902105309847271918631350962233028495221592035906980108697110345814252011169480063302305579062142044213846505833655667136664100234927389249467708746313406349010721339054826304108752750859256734739072457136592713636381049679544470484670070027214979674014410289158222585691306815185903045199444429320931559940587850119417818825646579509928759337861847870949383608609611895142635938441004303409230632042537400308046751679160142930848233659380967562620540732756660782714728000217535204029286277024916854288112522577302105682550245887713808111328471881697114971602384383921572553626876272154639572501479665135056770362956268614535298209780614492230697876846319167106399619836926910549656374877430677016258426060528588415696201926445971230328172212327510341695649588002456332333935125649240076811981709913394579798433893490556953978775715370994202303370273009557736460441787085271272725054638057804801824240478694235348129678933804677329983457337953816306370654321872237418622890419498055779519667590117203566518412637440607971841350191054945979433343287900871690086510475559757554640715961841526119992222287905631207696773742341551341581588167892739157040911675242554755819367118618679682162358461633830620872305898723473981715569412131449794126325453819559297643945645156664236544103609736796982822396298258958445651997584660400396683158764290973119739063263825242606057630128464913957127389150310771603069681777175445166066530395917551618403140993078170684920901316060551965209727738593055490980938254957258716836458116536800575801908940264089762210276745935780945194015869559186176004475445890597880648145825418083350163497844415218929096362798459119794668325802303873053800647946477852569361999429176290550167625668677778475836362822936338771058533237879177036173139533243411998402246356921764703774723236489829935397825797183092955797158564056345344296620434541506028306439732957462277670383237643324163488623067444811034404658890922814088043417500379708028654993319329282630929766542248903850808240648038451494253518806060330375529398940924443339081176852161023810900736509679300044442404281504412125621899175245974920833875970713633633786463100116614018236212113917507224812455883675785041411673382693194113466545920421728841714583434127211319440600196405854402449668245590555906265713897505243331049923922836807444737023904224414837008756155377849448803415293159942745120052549519061171999731445318677510472153093444703610437553527356586070661385844076136920255764387697186091429201689349687551836703262924863420310052234526279497583859959107346915673523061301423860993804779141851715845782342596065519810939497986630041717052171414252474060492137532669246744634632697254173495235674514995787656861728855461877248897239586747666777612086838330763056865790232973415811169735971717996573530727653133447520246296733523698933795741372319302985667686344063185477614286867989260230473142102891508565065271191521173347784040803524063078562747144428243279917782678496179412690743569725463723411364792240220880855065684121262767745657842212488528959127242774181808098166184992875257677511706973019406376695815197164107780099512061301191575664304837735760616416293624620564808068308181081568965093138720897157975659429184124172970020329750358305317635029254312991044808015452898096787339537545984194516389679589722671351036627723775184908265497745468675963554186403265405042430727114150117413658327759131547836469340016936478428793158461701793046664796987891976208236044404335082093185908309150755184194693331417612094822744413599982160919416772489504644551738207362280008861279103157732090418926117105311436530191176452957666852375969417309899581623917240591414786873954564777605757742228153956049140333029705732282489944634935035588815460900339023310809630591384399695945353460393528925658015449241433760715256215812000571540744346126319395544936358215008403160613676180176075214869257922434635256253279972434027213737780119913124924721446359561020478680369052113139785965103426700792254096040027437297230248400089170913375535292104996795710244526254036997290564530474718115478226743063266470247519288702687305113924546497613329327191588930944272420025727724108757585290579577628297644270552221800567112683396131226842565241684003279825995832186596326416403322343902578318097645582580430732905473886199198164090009112363968668977870333420670544634979518809606282969497940730126092535875700368055881781729893852792578284307497708864977333874478207648510860450786109894874081070710412636387137280029143466044467529437764971767883570597388308737911619224439244131845830922909884937455009764706095081814171466861688490732028192053727266560746936251163404610294880427024591179780972229257095165671736702152472616814730921103787321792922251705363493032978991663900125728812134490149217327215001992637965420493595723452095278037224425893166441052531104628168728978022688338614508971974543893886591012179325506440888987316929112362526012004986799210351087779388677274596680461345362828927148994719762705520234307126016380690279750517966837390602975445329425366457198597472463405858586271824141248456359175389506149570154520080114351761127222206799616650502416545890879659724645824010771785128442036973314872264425190474866991908779682276758725555616304019026979335164812871516392367992617499151502812606816907434600187460781629895997127565073749307509335215904620656630561820853354511125462945168763798859136090435924737545574834135473170676334456948372409160187283327492716371497540859053682850417958619884167816229000597969563506546099532464989614548151690011728916858001730691246302845694741239773595987716851198215729553151774769422404384565391951215678292294956878620220270823996250250751399174386130653494829484459433531627750959829562006771392914126091504183034037108374625591996499356712795259747395568023565926427398321279948119390315335384167441261202414049446473979219515251707063061613242226975459896858364013070602681466195606210276333919492675714604462034136259302283710797986745537675386815557155759197644097052891266872870694557437981836275540290323756227511610574359173998582403491121011538897037480497270855976209922309743088178417198921281718924891556298334374977571275183184316236200285207722345791851014438393598460811336700213721549776364391192894287719558520339471904718098805486034119568463238098142395213742656690204037457120214694410418424898015081717715508262459378423803716412063590573614957728158214954879539496182281348227798878551120588142630625347306090323631384137007280997387488390805979476553306764934206718126222244744538029983052062925868331842796708426916552065365188930461277335849832719236971477524228523339607382807310182703303456065550367316950470178628512649736974042703281661750503246403602111261048517163736178919997903790285848370063965262034843436117224294806661025788408893711806390892619125209649057557730426562722347937223506899576708971990645353469157910520938015398287206219965917670162083106798068840071895747216357187801378512858711542879942854911691316507355038204602272825089284611003748773729549520928015640042633519193621580266028510247269335090568097365126998344949168269071382243403393073039359370099841496179982421672723662368755499566909207705204167603237815841670478052430041197223857366760767704975343507636358025024823602287908985057173831510245606567404553615631158414906444501596581213163306085595580294727419243747623076781342026427775245364730258258191185745032386898038420885360561889153487076903467656626590642520724958157784993383839526335650607248164966130764909082973027051698439956525887944267402498743340222585958905003343520806072325880854256801709880244663158218058658286791886802225579147168692855173585328426816961214277331091477092973989885658123567069432539229541879021708471497064446432765645270881195672288477574578644205759280743896238506249970686802193402467195816746964596892967516553626792237725650946028016438444234045822605498330804496867999268965817548799930636623415019960360780133871577831130084725533396423136363146448335220686180708382953723374684247972645501432950078345475106331368478648446856198871888986282896833815206387862832139119958417151527539235240209529267139694325603107422747488094281480468300363562631951665714917445175058957173945829423914209090581059246989561315651476955883659945361498359278662296923784578414292656009830550769165026084571606823355286565905010582699618183731937890699908985197270929336469127483760018003362154309787891970190712889733289329309354641559857684005141747584372572500365380428491011886112834982624572817931572306611320878375085505451724602084956630569600954865674815733082579772488914187493168952049205741674538115241677861058121260747761455773104891533395837473309934408146367801141096508818964179612907879464126993077424353979216779374019062419063978330428937446298053837810700005401697051649651012119004786641171431358445363617482363253763282483709648766520624402074242273918638560835038722535355413175398957929286707955753701001886612032221708536317920712147344029507384011818933733506099440077393675269736981181486896528496107700981674951122192743039909630075727884701955058535894305400588977429162382490709236775265248309557053910028830999322469145992597179971350097174596788061259147284309006855098513041469236334871606188959105939477043913299126641365776534254356921195948816071287170418238492517100374140148918705461738204049869056519616526253436024803442437508046752214430058590432040830382754244158658689118103440270532063167354919466562597251089624689491476408756666526567158784319066146452878398305906122637694140933201217802428787428053309625897473981671439709287982499734438591189914066122440643507111961649032969706752749319123621632239223917386246380049961978494200435583064184312601628020470402837664004202632218740886094292698042990606163273178762812025779304513303136048605913920253385302523874696952493925312259860223493402528294126618423480264904077079705242496283108586641919488164105321263322131857969797039621197497863927301423799147873239516506735515186117469228458259838646780850460836832927920957959351328738922451269132571672446891698347233646593612381890982158645027378596101295407924858018884844571361065901418884359322386422642077944268914419680247354828186426218409817562514277299232372886932201285899071661189787600710165854319877141048151302469066936499581137897894409446678648919627920777692477508908233509758160334483289722371026711844693165829049754857824527257091074584509666218097782593245776299878839627780876776959572247308188247431395245809066272769038813104933405548912693186622908367140149813277284538003802389933657149440172481771265665649750900042276278954582267759471747773448577253914454885214660400898274494003537159303699420746657791896548103289695348682736353823197033635764644801065007290039121152840019707898134219289309372584753220243547859322962729936832942265560353934241332875109501651809034263457110763671675759798673682552858287723913164149461638247587434321791604402916990062125009012740043943896301983878530571890748633656160642143553960903603115789816231703275272685862085961472569469483349629511772950168167192905070323228984123908963609718872419349244042829551588070420384852091690089831077702390342631178832425756912160031696570496712088271151691390227119459381959981046625190036666164305077179687948099754403278315890758945575315483646795795923991825093855093186200335240723401730114177754092845024402298559253717481153075501424496780239952186460005438890723271492030693138190600699388742728728385314292870138046175810643247651511565125285381308944564685472232150737574664938550923407442587776609887918791167016297269101171175399900112963863449163249705737324456606793353523811364915152171318389461236875186968429748793841211294055063585101265066502423779427209470129369484085273541975113031613264911126541346152130901916167657768214141120211520959935758839813139264466150787914914282632115428000345279867647214352631042086885981912603862718847370781776289800813834623572237883759265587574094314285534949524832102306280395900415137644307336742877725091635212242743685414354847743899539946453266991695256970382367866921458787855590127951237553299628015414210914777059887306699686188097931814940599473829925995086219781894770311451173073526644976647538401116534792537818706634037534219997029026114017932159984812367969712925384964942640642110278858776321292457351984830974690346463041859957690508425783449022786864402385089933571444612314749720344906624959600184291929617992626822128766485861256532402150936913527717757767027853012639534901013029690647005714162519119083463343801600420210135560174967979090447482807884962544219441557563702080663006985833361334798006392135247668050934828039274248340724687692826575030023379584007967414436263888697127364039446982849061887579936020235576648333150042903657332292809114955613326899165274019546110157816140266260555827515330302490646519443409917502556668304358903423698720530618605682440123969234780677376261048304881602962174133002213547874707877566535261680736530240268853932381922843537970447141524594071167702705414878089003161455037335735020465879167746820337965582265546441101470613350232498611762990005162226569226898847294982087413573127322141950799970268644218677219169797375920141144684375414621240113741078473580738175899894787827330824575552179023809001018976904711759972097176077773473858138870526738398395595062402346917361599281197170272903029851721644379803370668236638898860127386830067651196148749445336477121670574324030564889409163560061614643537759402450020881370546968866358239283010115946694497816184192770867358828128557818004532638740709487317629486455216654482791432914777112814275858410209555059170839534250513714480447154760517605588544713090670592300617747110303705951881182356544057378320320167354736859741567816946671945666705585336866506168888433958364011202667322552801538927442770887527526485252975291631678315595269303800073385469181834823932646064150928257721488783178677811235126609218516765751696429969562681043373532167820596651552281899025112479637399520147679569868667412960788430220697660795099903072480143393857450273881742470984482982679511893845626758626653911230042556620814288263840727433941277174782856275218055900088087852798418875753149118348043940274953038535155720373924608278504530235243730876942635982219354024823528979715641217656157398442460581673162239490096637851700892643575167639885221825848684840995048558298360357939404075576015959833609421203400921296119532451124825310700627451280669584961697261760214161178004716645755160351233546381603795505864228812119047140686180302018825843122707569867173623852214101178414750336972760837344171119543727934056452038188575551379701505591510933067816403112455158895983159048592299161345638600801076854781191727300686527193564697535317871061941359771762445119997231454024002408887524050306355823638267427120678957840897558650421131742218965740969685820116077083261895560993001889212025422980598118584296968506009741670000496672180678566425202453618814464131153227713789324309530872221700447963479547672141708833204447639121149450108558947416565935065181772391147558918146801119869354365392327283901948556246710557702407847841811266100839621201466536361416191171475455795132032732411266499401971343401369081919984217001184469125330967969544124968689801831601920585061767862361182770654398384151617589417527390132984119625438332112567712281494518521907898035094719363182346025703781605458602645361980625573908194887358764792585261656913982509438275844422479053255552919843371730961145952234130516766188148007200441072650728107544908874905272172783734829078713114020548014004111277742308849400022894601364031980331630692355945908385820550933461534715477118361051789534369916517723562144046165691105918063608879022689237424844427970763823877472513904733335970246014658871276630358226149288257713578112182174302111651932942229059739635848795216967564509685295597065673291665279248554478390590882761506424448366511632553985693326478514579345569955014953917320832586688791845901642339576068965661656598304375991758149996249397437660241007783986957004913648577048233998027816895261366952110792527246182866248118740281353610777348901139817452732640496371862684539275109521914437715029054541248364095589467670019360235155058392406195502108889447832917136292210161284747954175706607380065148006623276429695533201706717620633107379243006658385848644448894279891468642278759152755703094021924512971918096902307450013368940071774688357914821157174819922441459626574750988604269834758120777633713627148501382007900190478379112989736398507876125800149857667734807136829897854240929552355549902681300435806302652513524576264668088847073887053927741466245066231224831213821274191975260733775308401902997501046027559755451980583099942484227956727472495056328652105460023515775973069150086871766354113107153461004823132233412919595312463255332284128455226934082516838376179439498596851217138803237810159142254864558489406873801686335926860189662556139487967055862134089810063196612678735605368268459158128844177928082855026829183134077407551195900557316925739257167581154152025973192372048219612264896228504893567170229712204565815094610074195708011226804208354569714322648391717949447605682890823279876628326723418977492770902489810203607512700099563681117296811141485688067733019711463388608386106718943317650416612903343828276619867008323397705820374326523572368359492335815446240506242416145894323561423239037539045020776161046323104200680808746136723908661961495084807113772698014675822579024655458592523645163190863148992701891987931929142867559395719423853455487318470324916637607195699096506468414527062586540571660987603307962515945844408924691489275470278330523063113359827528282493831418375835710953409407226367075944445945586427544392865839694229644210517139253428085575605459078193263425622789207594865238288233171150665028749246661721892814853419822072403241853589483351512531351989776474103074713137292998486578423528145946968552841888382548142007463826615234958034144482737815840192479042216737948429643210025595296577931452983584887322626548997586441887959786783110065939498302978865585396624637482428540097137707147375279689568687250370850789798702507384709337371231616721524127721570507708149056409203939929583992998830379093115379638017410096064059874825670659648082117602197808003851948467414792712601235222785912974097225566171258152222886880749921962929705222619519004869856935797886331440443707510790599059668149229713454229107451940931108842009559361637449961514577468118053167068169859444375823575101888897115002293083972738260981503562579246256514503665566580427961195704613695040949681906203411796068850330751829284014737180657718299689126205579907349783681517035016067292118755002745357525990034872050176431308318281331441796757578544509514526798651545878954808178526492061535731193072897169801506188175034025803408462567546967363405111850027762703457817317530902293779622428535700273326473312996979935150927536283662285871357748070392980690061091232469218199879291683159230498563035679460897679805493280371540206282788103421089163304794880916026667682476470323102657839045768727094752504233774986867430331320518778407852702190971155051651950652526448366857827880589837476050870818633646219020939104450875108729055037926097148997901720827241076640256305948106988568676679579810538122523015727538011763602586186391186642954601353518751718677223935724931476658068513945857191062838101141187649071986846438673269557933786989789159850712415840792944058093834627119178916749222209007059976046776986894499215998974783138369012840608515988581064813802549631978538770522379760324443744054325110627988171583363884446542319495421950082455930590329714411116485958863657292582423202715282320699278991766138736689228320127578729945402837217320096974281389180117208709862610434141121273894787961924760337934827639781372661131815319185952251602156310375975274782315538726360951253481600294104371956599268482310599650822960896205950027247370128339531665710392331101453011147383119507964166736571583288346600242696546320194470266031839371946403255288612791045311914665419176934129415670030153538499336740444243650591826089138680105819736100134983022787600869654762444272064613633825229365740949163572019430812218306555440717939174591155525361185578735965171262975031909911397009864372006428064156478522072313593455429817005225699455736523615758375936428893800375585228472016962667431152330293662954577871153376883814344294502055596284981997518806597177387789490874624281792191714627584688251353770761121011510592203682402672840385178529948233090092048772370775068632201096737014378174997317997598174496473790359629316356223369491718772810529337621409334450367791138068063206491711372483949416414531577942073435871812860727792054498802123331343370803070154657533685073244624698470463898776453032036397236919086335460441667378189232861318448170648420041320588986502710871509651403726671616181993244393362679107842979053754908879886738705281477434714451912943108854546378196779642752267832308443796100544134560666195246973860590208947584419813247257277471786498113752846783932568770616507986272131380065785955666862328214863011694074449192423868880263037873523470095148532045729890430295779582670995030340488582163123354164387705901501542962326981705483387470855518710326062531640051326771315145849274824669815789022152373258339472061494310238350981065739976923138310667751347380294125990689303416762668451275909728037678507723153028421116551088463326506977406707980044663925055371544898593038459467890455193431146271510813042988110311863095186987974273557061135300713253233787166692877124681844969114359637314033535359883796803925236846850966454330188920975629264018856308921434935176733415963515993026235569930668027033969201382528875473641255789070953564666104027846694464495979813293140368240027788783451252611152145886269815198218779523574659271191369423010743068037283240240439845131772644604237786255643954717587488354937827549033375502346172883270389309520361872380381801341445992100295641632263569979361224917144908617918435045687161285133461705412936659174357066745049922867853141081953321486971430826460945798974252202016585758450446747239311995078069678709726068538988173513007647003475593050614686438094676347778465114308645032289621194720934028623781106316253017594680932569633271359322673477594424879986681399419763200703580615609245761587361841420816276972326995156097266343004217852762265924180517527308747129055522267963503451347348462233268586116803019067895825011786688810841447376023416392090209586194628726868719600452887122743617904727790330900702414748945738311906362981416742691608216240186576161062610026252657571886405537315082090206604162981482688860500982772264443826516456075590915660104542043513208723026460989436776189528634908766440737774670668850054512972219299900667095338922651892403600748482043009166507194131961291548068086540395013228480849422101774925969222461082002336283317919769404594219526692517751008994097113852105186492218696689751473285893182883170512439694165719473033076446556523170403873242401629816432423160882641726908103587639535614774537182760162782720395090629469023884567336049424499781358012555855622590826023026163873852993165095266161105849848329491537282729534707432591414569376924326233352710761639491049063347872885985441045527359542109881128144352526116302600232185400067680011619659521342485797219229818294216380956917999191533525253447874615158486494128219621023322100077171745205265994132850266771862606785617205782680194781113228880498169028220736568022443930991482322923234112259801106552134569727438045079146119762731818274710639519224882927888654823748087199051965468725502863306717922086994116466524010172513632646788824540969270297403778854031058323710718526166828452806855377598736743713067095378342758945671623177373195102565553365771041335463387822643521029556475377803885128949915360491217473023861113920036527469489341584949869776763152807438003534268818737922180388317122928685624981438173588957664590640329165937000200955775728709626329388697116701744035989665489559050892855693170551755023842263902131367799713057169846719894858552862591040788087696577148696282482360942133436600771394718521815438834034473070202468782264252694639769859750281440928935418003569096613832292731705416026993873291059116301100402619910237343649141267665333176768957062340168096460113547168147646211358654669824708765859081687766165412672604476873972646880138694067705722537675675168318253581567111943694015769858832435528928058590423940883167025197876465446869395548982642666177987009513120693486581332310804833562741749416513364581582748546021535684193680753052498497563961265533694674174452656139259903749677815819543897102858291663695241920702162690885545917561331257467050158503696419887118592936066513872667191301968069252745889927472703983275281628924296677673435073354927945959614163220899701304906116146444460696228979447384496234380093920842543009347976827575044540930794443585085544119766197025491019571346684108753759911487517544121159917514820635261926464011569139702409007990924244675591346366119693629354709245378482198657703129079748038304853630069845447407750904115084474665351678276753274749925278392699911288197442977980264362994790648172193768931178395757643460205701350990600984692833630269547603150596583671389198373427796753771481742906705401380840583335021202339854403269507510838424398385654435180800378695538475250135497423742986751088814131788034051290265252113850062235888444542838010469616324199790903569639648344066488653600430038503311836969509278607639968152597174887708756160113686686911355051886316716566099859785086813362243892272690975244424037153650308366771964554343025106016771350689791326269548996364622653665234794882011615198460669198731898163290660095450779499502157066864307245188847491210919650039402993444857616893159511602667230319384272394756665416070053268721276700738936281898409222962373150775197182513877288206833961420918889749444142683488675465399711211582634476226599886219177707301260414087272513987734648672909323620946436824840527282331554653404448399357084933228769727421420221876340476332549404168317987928637683479353935825489888203316180875849412033243473247307393512713559447347596231030755872758760052435390255675460740525231281132907770595702403332668227556358000060489012407007544988277780423622672239511386655779390003868252870635780030391727134327666726966845076693721705166463989018086954778057712751020647210111849272365642048756722327229829748931631376474759726838131764527668150588208299237805531004159000136965798199797080455154356838478103137219590318671960859590289282466821617066334893062335602213740082092885779767943109899436322388040120762366666369481601933552080596079037100267887674505817709637577674671529885880822572746488551104432483783319224839790811812962099002539276216523279867921156878994450197510888243769603518137729178379525463957833626904811053499725987282686044679587036714601530159877604032603278996739761452029493942121570141463674695511272030691921966288892022285860505728735246625587708360513707518937016380362963953420305923686717247462246903209379965943588193102226608780503825073799077713660864156129552314895982801718985747115646492655019841460440734803859819347042040431986620575627177422480106034962860449958354867263840817131528693020252201478383231827505515285819947486971934148081192299651061357383004888769494136429163846224994868350449813543718882663703643021146384354919521154784907425988534864990045636176429748840653283526799757125341500910594377749768412283911279308279006729009997369004233409760769708319133594095310064536214346559884434430742899157751020329815482931545741025833635054258799777832266085771031822383390601032644310590598654389786082389885689946631317797831965554705703329791778796833715449382378765482130697509783102492576166150958262816029218840513002115937141284809900194496271070158527277489017197642275367470960219373015589472311968220765721755873312273879690387799419073917092581724740637408541686226628164836607236949946897554107720045151540141620215256196998115717776260214617852588787161268664120271965901242443896799997797702022473061039625845643665929433178555910709302965188497489826088988028924653663085104412761705494965531634743176331997984336951725428721172646181544002517580243263726841539995150197369161037353983613083845477595615831836421647666366724092435928605403162841068226573904431554102753703679044207979557744057925684609500713284087323374465677781078892444467782286988437544410554977060955256066863948373957703647710621974932204383090362870366870391089599465731026131509084138624333908702567189876354989382058490974465858716147829621564373881358232237525882520123210840143392260156731402739440111881256054313495599104944819827371779640001631371064606199908242014403610701824819553753670516081867346035415642232295681083561279143833543906691173358352607635373092915413849482517618541893974661528793017512298226668526567127945631541029934851074935654562370868557754732400428720596942876310144979038180250966336725078982826782612187578591415058272192363382751635447380644042785237893578342689327742419404723323648144114998621772374091194816007516205544281081594143888759713649550489041842246323926068295648001621622867423242598094689757412959802581892803746656820639367721530546405772901850146726974774501681445586578838970189876415355553482406622018325615889475342923082829852028940054213796426264541194622907575100310804610846986517130691968280882910682954130516198592687922696950459748257012208691712107660483210926815623312479046782880028396660678860251360994495926615262535716700658105429541270963514267243137657739074885642183371227211064903545168752289403982834380116220201205920555212431628889962960754274342135667173095425664314012189523089273361523645540049584046784051448392461560409824811302701461741680725644702953687352423050390203526978316504571087312130327168002567806583593572696896540768811711560623816749682686309663402147084314702446341936695641949089517398070777792095049303020016835119918566498708145273084115115110920706979070828579976211408512081679260005323963228959384785253817690534036376492902345567436562493402965601635469161344011864461376257281141273084356935520603479536468224300830679710088492006962349435099200641489892005584184323826316772902277919303501899393240605718583906160401010502037509839715549448747917588592429707458955635044835159936105726717188790160679165039533694734484631595012923397960502707687218853268777784333713378919338259558691066768419408419529378065699492278584643866442400154039988401974263409898691039779655778669363983283770210840476251983143092350953452449875745772464401925695998849513980394092110337660274965455446829243313221768357705050849377309011934825435014394562072605652961366280746282078321279712848288168911018628611725364813233115373397539967854911422387934190202217862862013821140512221382257714675651210021280229909015184310514682312318527490139505573729122092436216031304442415883809802050863597326132036572194968378113992294208515799917622806778380922153663301310362009855706496356777970881228594507670164052986562791514187328088733912404255687917930982763867257811631637729250632507488045540438781810414771434867177264029713698840309349651755169922488149925090705656463266116657362732216327810816208471383571767758525548410913858229594474127767602023031722574145861876261016525561489008064547688549071988484631094466784249591885359498576570592311940916862104275900435841571523773915262130067994393993729935979833496581680207334855078275047163150248761081367267433880532874831370336488601818741425380968435240614558282616352581842822176775879733255578853344331216489245656094480216740547140243326074279313182991630590096181547586850836661278512294945359738779697567546899612645350332201687928831065933635470902103386688546623503143404028908961509185439779556889430436813596962056396535003050612635591915560057923520760929797980146803388534499392043414271371246769333308808337043621708773761308151898006737965136614951320202730939140741894624396025642339821993964158696435636665567480042437650665470057312960735400587584457787517398735682377313767566351075577734442515692582917938317458104824438698295075910396541205739981904990094822730946435216212961371553448388951676483449796001969825583338308078282369586613049793304533888946274510363527932789962108588894898275341793924646975396700339745118371455422410815831949118001401120588901094848694532842213437333134044908019630784648469473733176059185836868546046095494676834243767515249429974450902158096490203516908137641803917882543040415703250568383132230852456660118117528743101049589509035428755897765027415641257356876836529278939595963140951625981298273198391052643503549796062577804946821328951615777191249907034973119559044335741503745416673207915968583341632405821140777330695002174076896224857631484499223230756119844380499681312740716300697853294258113175186888635418098302195759378408796106595892281544353783577289017757645968252756550443697349975195370878592159077086182503943715661056853078131936544440208781765054971550350152696612820950785839042948393969637295807423406685118344988658844351264217955196161689080927909944221601669320208482809182763015817783684819244004763651426655243354148489959041151658879773659026418111366677386469851319505516629411282277806368142752502557872245964137277330320831333605544742120188575698459271115437514362791991301349034377059860661919841471994472666276434817144533939495778874018179801813253550666789857291807651333993365960814616535441366966947040938922531151927377886311570783993450031790001806752412729322690053930535788608558063443485364746936774227193948300289825126828785799078762313600847881942579834449748546179275433809791195925798015004975534416118129724745662726689513583581394870880355194163790555572757657437159501678987154283982282602685709030251888232436876148434596941184879259093620693723224406678379044284558371344830092888553511668124132403602655261570963657345021003025653546418707398812571447280876677551098515899526240847226945420888568876119789698028154296912864359417367604132264914231291960348306047233837423337484373277351898381007944501890602234486546887048934199780454605322082152705244799739393213566685436255634329276832192281596290408025389685501359264790688563068635871313665914608292097415947153896213493001493821565423508452254738935558034645758824327022444813208563338566137965653466746204057509737995537941657981067539929180557539811393066943401160960068836942552668464288895008436493185006280550371808151787273892860226651270180727510609211289558289865576625214296026017712104726786112794767083669909924398138863243172557962160937716581934869477418270834115214369421073100861641432440220263867219649324921205600891747492445530527342872355430592827679118152032734963949354757598946775557639405237409578144725043535713896147515539396045348442846380983192154704177273289026602666011675150847222291599834685852237624135437476020786016299810166355262762062669096220279196676916272417134549900137642984578412462174542252760614457030590208434023611549795805213432970393489608758788512863878664837311089967137476092681602450893556994917815277567061000991535543699357007361675366665138776531718166212585991196304697257911239367529299202047333782342363751124650109199992484967597649304226454545703720874757188901386815230196883569885362473881890459384101095143616539491977806377250406328516720750391178268523176440281477723845896031277130801391514003185004386691654071278708153375090686540456390279379118733256303775845361270587360640395265011232565940730052148180439376627845247426670661144067608766209824661362266624896370841756172421641170630239470897716063205385234173847216674880219761848234092258524682495946978758836030363181822211483468655805082854258653135783172379726743748520454270461486518214049095722935068435425665896911558028223180518452555440896750891368339009846138264896427194845837873363239826238206945381497967429147984297528875360571664129669937533942261390596135921505411955140092341270837614281085177789061633728960064788476195930091590743365840606214122498344355331166830878974668213657331746846321275847991408541197500679399223266969930341277086383241439430097900955615099336353191213969250677721802041596270733006561115428562332424335010261610523590192444627525536770452127087922908866246967807413552026493168727130939164944123305435073320107719052527526098701669408679678809510497446117918496648878395675313215910986616927506493990474324003020699475759564400080727866330484358744436512567173247048592254861933485517259061456387759244473884594820047620900660050548148640729947595279952879271579008968456225771591660400237440021969374474284777670558536647249828834631898402377919072146073070884661626801924580571484739710894754230949516230691923107452441543169118742473930617324271134124215795868464331155238970184787908491642055778079892896986202483780731178810225272712752060687963091234035751318485425108125148691757555556099484040893112681558363921087079321412083856842609880708316425280910553191915583141391104086410824399553261690805422485746646144333656318986656735720517688553364727067919216995637034691809597983885838916034824050123387838771942188913201588696056153220114355794941852507797165052414172552255961506228274759328473786480536241704954166205945870257295215882093235748672625917255295745006329918228248082592841043393049561127936027754824052932954722274631615291518617383212885463934668826550492418132751861734451598827933177146812343501715054366899130391650635440290736360385275848176774296675150477201490959255403108466000144204330395659366127022195080747447881713678066892254286626617077651205782959815852536494022565365341036932462322421404221997741441742170774151695338777142580328670845467697788384096898702062152777907486366155219226222274086990402893184710501289761180108079134959706245940139939303752120845775721172738885280138950341094926762129745663366905759102464504655380299703784320358978409681396030994882679048069847702236550505118147747793092441037530286803693895059908382472978657075946436943371250181264760002152643317589799499175161047519375183260065973469549065939515914745732578385373512859328623882301121106832633584660316729835524372232290870287690958112586695472700097150384244315378775503836098783090172335684879391024594637772973400788907347213820772620895374532255255390618608620782936629155396633104446445014448070853711078986154801357028665882266131766149320553887976288686815840551175950440802139281997653940115871181681429824633689097866641980581041064287995244633070554162033404210244806834332201025399243171652588824084178813478495692524645091101764509852567877031787827837907122460115542174848170739344167060456814829406839220551240223361545381978009369565249066173552481742424686691380707211817068344732016470417703384064844203376116928923980492432968363426060746020522107103498696692281570967018802878431209815446698109333212383359879276213459356553257132304812773871996404925439779403186403475502200666119752580470245816682174598128840211841380527403662362066907889463527377635008571676837499570416597128744944262993806566419139590728953274761772987350020398517160158628583814479857510240973106485717435624007909038622664690712934871275210733487423022980225788664396686660675961968008606259716307305782120269790606908666763098912504477198515611094439679500924125775844301544836342498378395059278461673326974609482132997197164028926345162907148385040377695167460988568692240745532318904324013433571824349117021366892864482304805314237648039488525859131093718127808292709487672429901372962174313734489299930583766188147816284825861828366333806291310925967353014515878849283800368982703608978472915726744784330937381650483056491292424522057901634785019666301287997259166958882797585176254375498409018603115377382485884471773067330648765177144891654500610029276275524570180421620968851082672115925401755224965362166775669338374066769901422287302119944395145484961730965058050234896554040177496019477564906988048799699333851238720473121058771171476806760207765836284125232410140198143586757935270593601505167990649916660553302045900229937146619472736021950454384362486222550725826401816325129674659486981097151136385729047420912406023530843435185120843687051189666075553395939043579300509920012722643715278051099835618189534446127467301518164955802389319949015511909708171697749528082740506849603640627726434925953059107132229896300982336213904266537223042066613054407237884850721771552529767240171647873406044602713418286063092418566104184007654574412439768490885170486700290610747474216375143121693271966498007074945895104857317206766097942709020335262934338066221974749584482697090650294232087832737568723215006591856214779562474429051555991686156838315081469114993347249572775966853311684278774049949756394086803523967479856871383418493715598792291290616341074693550578175942279951870946756409952502803635286404692043719785125468283789405104458703757654853923822559069603504915388268077818029427152619479781206663493628358197912089683064098850630272803222710217664160794986144955820724997147529339103498826092295789302529754367208408441667972066940266074228278207878124463741517108351764230670191035135866615396034030182744696623920855663353609068517598441514283484858590676588720135663080678801086969372589425177855304633529538754282138915821278620849169832046232943068907407812875869204946625531395118199922605376426661953446525785469779253223182497220639567631249085101873275240265535546221245650497127799031450427169659552665918657605593600950965769749990720522534639866173171632162368731548289387538830184287379885905671474709411760058463756712626595420672714811214355110008372461578801646800970037464495245515598530029058172107408099929748978254905377272160492820742553432439553012149369617206300023873963107546956133002835315104467276151981948379030621980937406804724856278096172101987330852501670186993122034462840354386548499697097387632941788577999613621142410995869216998649481708864834841347667798586413125900103537568475506088091895132697703664544581266182567901546620626895105228302617684354967914456673912249119123298182054691520969377957071364291117247865876397434570719755152131431803140195479481359579149942994057960287677912797068391730280445809009986359394872607379776518856995227193666603762829035185601927142584724043415410315255035910671327497694139680541422062098650509419365640636024251215603178555964820713415947865616586037538457250000951132362213238821641676432726590338787692441693735227689752950312550354221146254138891544606315675579990661868204774604503173459683442425647968100297315877873400842355363542501325514674963214916897850039011535631167785740333994870022282677533874586261227366161433769644261818711445999573952919070411749170161828933434541628522482330538302320318449993938125903017802997905175978538395635509428138740790993448447598274505931324435370491914440807900727520821121524206848066330661853505661830753891485228377425543650237679170280751299118366711970711067612849524134576264519027662231922393426066336885947111901607987967693252180703095234331667196643316969579733779026744996455419899992848517219662015237940641030450502802564530931441387129382881424663186560936129227395364337225036980541182196782869612892614976360959326946586175511135345867281156998064879349511191084218082266999673514867177705635640562964276594199055565441767407118393792501193429528990272797316990256891964821864328096853697744969823731744782150680694731916840453728809532971828203030764172646209324415699186360866972943499651220780760890278909545533662290478120997084553436718020138232582133840555019206345195357561091000378699488227292480166732141425887107887863602020642677407303118965607623134790405562454190116127761090306029498436548559123104246974296069391794572960917803993452012501373986968831089861875638195234489796882465855457706261764786403116002555089873393241786838812598974745852056185908934341616143050963956746695679688555206841203353277703345708212277108850481039867481395521373759059419262962378291618689431248777463813461759770630714394829960805967935660215303032153052981609940480492145546084398840197182996234540020065914781446897851802962393024126313633713192987300837872106928960307774064914381234753327245010128157786065497014717770215167146159880726027257419681785288343194032254084767291170126040589310938054533241595741198553916778280823176085302562943644792028469208115430370460348688916023520166210395075662514651466614371576473013125643397572200286595616492537139412556840848378553174171033875685784092577344562047716818474685904493479022895593142471627311096107058137406043417367893891411202226689218969107265007970262283170518420534097364216102913557924875249837810285627617097157333707162082861474965599378497206411523895018547042365480307346473477070794706753542991778940138346057176765509802049494390445088414625560443690531090119321595598342454375279858555995252690387329001843664361159433622930440302918616179604459920665613493281482208853782623000481645822889829232497596516134919482063758529664280791456740513828713604321938660888522811486476133858302978722372539042680705368001937394740777434531962689205311154296177507345078110283401334815383820748536276394507822059354734956957752957700698596574338530709028610408831612101829529860461197456171798192647055262302648645471191427162391840152147909845075463655111446138859677458929668245584196698495484215618964876285479918991623350094899512153724479065844740617230137809191027815964953820885173312506867285012548945389973405023305317522964186517883756400311275115389302563951975560317937198749898144617922065531839598735005354611309542017083721226224246637146129722923293380148215044836370037181849727790317764521716404541641522907521598575849277482843111910862072559919153136162043954801413993447119895550415820888568756545059765664359131666118409145347704079986519070525368848981911401390588825264283689047293778979272175835570333083845351571345876537133823655212517987202655740102272892121072516278416507327001923293966366256563494105503357152052440703706827919871058865053005291828344092454409222291652743705882616916768054169589230418327366122186853730036206474378178662793557908610230807727633674401524355393375799583587420497446413671571232994624164192322031390335274812325988224692628203872627670016267129162286379270338597517524314983007906186134326955634125497869105731362562030623801596692431102369188324918766427618505583449617261994741576074771921632490643004629494643157421800163577605147190758911577902852385477301647737785450134561137043540337259382857101216224675367211679655239121122730456541979845672303673634320394308442968672897855325559471983549370896035263949989038343179408206225982425234920128465912903232070116772414985829802072071493306937062258942194648022368537174548294791198781456337367898693565768641317689878295733307907998462329015841902258584044966402645479234140969649051997514691140720035183428057561212042148266419994979199086826515841766884418006311484715828231432989360453075786621337452616279750216764076946662895488742488422972978300616889394594126460894625689397441165690952652875476680965235569906127278605124805806801517423760731926210845654612885124534912686251901304508753322539398260659116827379574977747007584312956341058350717461212449182129489644366435183341180592790864862601681274413995631296965099370727374218940729748370142161086748348800922548004254053503172856615100343926497935193839429497135741633402322777158512462717971204437279588270322760968880529955092593008830755739212978572078890743361509601941862766073282152796219714407457947138332642180630326978786798263270333299613412028418249020993805656769859572104901434213817968337703002919624842266205357615941188482371702234335349428674054173723179078458695113375224215150628913971142584222668175138237433724131468684374537899486197968611498897388611188604842837820029279280615384912280924562292258913422007501325692900833752395204572671829093001776809079583524436159937214571798580956498138813023522973592896003542630376368594257658284621888361875813619542239268591362169917878777672500141247653507763788007311399543314850702979533681311701920107709442891324861588968529624480305621785043158354485931720005084778852464595566319609303159252621535682922998011625821999703659873558006563034857257247697162786407956276752407736276154300110686104812041534553951693482211483545489969565685015503993270408425452302582710337807362247576930387943019885270079629981300469103000861494036074114377786155831766854624915701718045879491155380951628238549405175232468926328568669086417943781079855845572949897894912656032889911361164228308197007913458877033468963320608274956258291867639868334368794354938959660046084449458535315674772655176555575802251916775244055390188049954541622185096667360602010672904203970682209512035352910545826448180313436655042536841096606212956649154262875406763675231594689012903856724781646046685730721618470706034351069996625156862885884384719452483922033909054410017861012700594987157040295335715306046051381313435498968294038988363747090263974390314268890660317537632769286643026177724136336690336749659280315579198374491562479450217626696685910300995316612962716667651487117366142154862790832520545520018703479989065483122682568239504704426271387213718455885165294552430430745843159794584681804515090990407604346071846105431459739149914104982937806592104094569807198865133311536826268651990911408787718868591693437409416161789266770384514954311012332012445599025262198840495979252425948297763632597695119134075639167253548298647264095013785406943632170814880299277828128471748065292645549251231963369528422254734352060661371148368689150977348422849680718481129718475227115380774823867479613447183188608228276350114419912215609848775288314929559734383796938743368373669118046206560404799416290029787428960461206609501995415724203045148883753356404943826985101187244890099019977813304104195490267204864251634227181704088031995970352280019232116596994600189933682198084543249800385177268717557452845972223136761397628833596550237577592725569134491044770963082843345475219624870452098738911323862519964681238572688479177128823219906199275908188632201653566737118124707904416529863240459151344340013102791981571614014300686514085490062775824268842924747543595221100350348788205393048083625309330949810284632642574474033884369171772966395456061153770178619189619588058828159793405153280691434902609984269023345327770998997002370290473579267694428816785529324790026195201050987351115344485879680964393948366422827064635177538303494081446220629293550798860293804959513386853589460582323439852851697797810673393110075394557313082500213424270907301815384008072987632493644380402848660645928663430531302309653048704543133707436824368304608725841772043383204028341462034108009734706366330535405892475388761836119514900297337144575625366093533573739993656969879766952825128407085758982854077537739915250040309676028612722509685884274854567010758295546384398310177401027432540259270862272813152236872867783610214009997816085152376313561955580418261883727838691467599694853791088554238486571061871264209531593492447384893523929981866594768800345030409578195543531236572036644573947698793986257976786103263567302739693695847422361851835565777711654225338632140357792525856173404160495597174045782891170988611826011714901940683347006062949415562146106555723027843718098595187670604826559515731680999880867902549150445998682797897702311073995546530612780756469214070597527150814503670841965425142233334132035522447081073547152430384692918554224353134243191231593262979142321508557841467378182962379543791831565722184332067383258306069239771749522752922560238687272068446289382619937970509922696976306199069075796417612824388761134979983557039084569119085453392227309607340966131779733595038133714567944343103685412594773205873773130268569134948022153643778159564451206200775527777208548395164013585077354516052030933230293049119165560542433071161239166615454928875075763275700352007033506083586642471792355451837410195662972664191764439504306454652625793058102248319835173314061967796508727567590615707920508703018085596306626780973173862789183462473766599851072716096682001594833929020894296110265304354509130411223504670226475511129451505251847463078791961171527337031558276037933259645672058460877835643598592297907503162102506248615554882022387815607059376551979422667635460552498201632062419271354692762341081719314581024508835904877768338849925949392215139926782720065811355824123888319475631144698823738782113734096474292985056376050045342420068576527087914039438778856589038216275269117430595161437503793891330747414481218868432395991840042730932242134379510479985973399860167430221754261362636477392109247354395073760868198851252189408001422261366749728419919627806963330965496053547507475724680606010524765221618196563626618315999365629041754023803922224953015752244884938056524518343185272616509336156555967979239259289172289683616454095544843608791040298353486267543584646141013522918047001464879665207326643085686275995319420343415101062895163543372797038336944341321981423269286989889472045735975665736966232324893930493753505805091856186503828309583101028317863851649588592453394220624480636606129625044086110091207497905727041896504920922265409115069802711681185574203401627395569796042773346605174684805195256361482280297245290663054221644783864752773509493955702312821868539713995115263055392061475412955621985780424221741409749065015822070955682040049667635534055694509179437408910914172080939054935604979854044593669050935808238119530573770244949170847836404639913584322737160879607928966710087748109269513349656739888685649741026387525053700732495731981349828520372698988783365605275990155799684547351600723974370880830081656593110941979366353794296321699803249320047695376968512078547661381078893046623660339374006343220327642588208801330288319942252261193105678941849990367892901932181971961806277858879553588709781588957610271253133872302393611694469831168326204802452902830609129330643466012125634386893395720592565672072065007970916164546941906653687899765946378165467329340731160274047777472291803395740211455739906479248119554408876361152694330780194907778708512040263720880694217572201474524692912166751625839980396192805959954616231891188962522339724550438084968185303348358052811318589088938475269310162169898911907287174934935401558876735265182589197108818573813865721046531326950685174348069243356924020958637288326602237594295519594166480842762364998955596766704552427588813770945930709089358054716530627586476856876881845225997546780870903579550090141505734262797699307568493668715388019891267543932819277558309400044089213456470153500811930963270523923877520068264881390886979415780297126479125373640361548364156864645611033884260447070500157805856623889662038907296517145618752017810460730472501811554768525174576819583930153644167695374743223689007253310287162172288120758178626049424204736945963752333372604551817230808315660821020999004814762215344525381214871845787083428832533449679397536123067201512118429416239500400443772519396630411264302378322168999496924935921931590068552724781228612894362663211704902938794460087798475110890937458095435998312648851958832346483413673406182111354787654545884502473625235099900649750935920802243613563695600793572096582894875857287715353964761571081010542568807668891750327662433937664475736322443684805268731053913040917330998911715306192072640088071496415154159745042320308786131096406920194780981978453023133726894666063110875866472181860263271459399097528444933370412956773059529464351880322207099087906690155782521526441505289690580069212746853421191534187615299550913758785265843601500323250333664621377587139420699732495801172671577708560940931005453833266259378170926139924772808909525413856291814311088729169034223174003049713765257547500484399748857000423313770664222355026629615984898270974191515157015936068218327852159913379878367948963472880420491509737151270660755032080011186054475190226656876416018269448600501468378837464098436892729595754588725831464468824050031839112920971309180552112495833113677365549163013512609227597118994965732365685713400626818528056025011111724921609502059150801295382364577298596086379106265800709472053216263263978352600657704020126145202841557356626461702314348422154939766419128291192728561843411206688047011548073606515286090522484184602622950610949730134239956466950210651171210587624634308322858245191554947350128950536772444886841690908587118293492977459731210484457459987139749433867791041282396744607077151128528402143134699065355007636428331848145362492546384514681023912915932255102294796075073439330516681434028746716879357089150337675468398968082350928111441547784093138805697715488947189275528955199909590174840290369184602444957529227884288375821466260599824911889991253828572565948116857904853857623600210378082074592928429960373563745484610358677318254357363550682661185098360712358966576624974612450199408780041667069725820618123239737522849321611724483535240335791018166552801896858925420373792207291762572131470771042186181020316777864753870333233244943661477471729137161156867695036102875509511646940589351917067528206781890444763795491634758582829360242892254441034959339447854525610753111679817896791630766510355433146450858234069565243452416801119747881732946966640648468658522656609302725024784931471463975124023752465587572202056754341403969299711715056180607084482055821459183515535975198763570752823113251567313706643120293908104260104853998094185971268115075767042062992632644513349983893401509976221550841305952484917781384113702452446664052982248435071724771677854635298458780504642015534254251881403261640492535535093284472513737532035800171916843865857712582095698436063798782307926572549961321284687330790994533613705457105311033183616101894835995210597289329553727649125963992405355676055612795838557415758582767933656081857062845318848950867867871235829932624567923589596035431162000324827209320484713335805326457545924358928096119968435434246839410222952375627050400262431465635823118058315031621674921003472052581656403441080711508591529669382074192174139225714783191183874399402086585753909868766143192378479651226944159228152025636163477023652694214222485061773603778663188336273604574844218754746148899123704843060072398147064365367020327289746813498138742647991442813707274947009394912057242168464623641399361400981993946717624382311811556887296412401766416613724124918994164099104367913996202302437850998906605005906434562838640343665167065350493920816205289742526326802387215798500766695054799194653164174741648565308872462765916047330570975063193020412049509806460445930563890182137671232289913323375231716531641792877835810931260191666110207186626271963503765206811649794161948625867892513735573448183522856148204787180403032179267333241824698598172443133436383636596718737496007372785442577810187987597608771401811295454229973611507129545069733942899334263616095255520465222658906544123664171508465715295858947326352926594023427782155280315754038204117557695717044003500576883939565076699989154196973650465564149902387188406049051080861865215510329794598497552272985341690507272621398543531881555229542775909104321035976358185056344109444943188589741609262749865691932371863805372667058978389960412628904204576932028781892549352499743545952999959070736524719396223326284400924901664474535895228051471702044800759812029085336583108695463300601656622178937868562893127088728452753394738615967561464900241986157588421432699144639824195826645745944381986010809819453436531756439009969319919824134894054469788038235776587894839118695526005132092864865003117394518661619208928301699688143404358945849438561664357787626158997978459181162052116978054508162624244107905459324000654956125163301868730165415154803956030441531012753629411564653842456212747464568323198758882096471955010080269116409722523155580364419709802802511246651099474591411335219926213755016736815992786965454079953885570620932143012042278076761277273249949720577768946502154630693754348233483733157279014341247091913587817716605724348996926766980858238421183827626418729580653546507871842832571114564844812796673916359093969061215029851468935414720051861236490623347522777258185913094326953422981927747947820355325107207795728919674629066798757674649915909215767045976779306405217643407758764934938869241872799582212218363639788034115418094618251241712186425892064262816831508540247012032206868494398655041659686051910474584552768695889129814504203753153702066830206919724312864370454441459044503784754188370975772837474595748175542707854447116890941320021104348875722670496269163151890083232442131895735981493147353263910260758162609716430282828565267410481659164642875516443562741192448831793897216477991911117624711730787004261523003025104822907998433386683812938502337034183601975519075661586501961070967834671337758325721459670722709054192543603087307547825866529376875333037639581380259107653681798281770542474534328173710190589899280415257401606637709501909483767799687696718535630814247188521953462130171999180855623609289049703335606703108248848591009359517438838065787706527934847145505123509775066852989103440767159882091219174737432222776929584489502942463374072791229329015741716332191955689104707058397098049942184437949713135187545837552441529228350727396161751252699154562995676078329763160568810966893185495017911664136375010288899809895570932598620377542867133894652459645314274382330883668168531993915709831054370040565974529258030225378418084995210068694609470895972410486150073148745072767368704513940735909727306995494288275861903232871878375837989084854591048709947786408755248306928438318554932414547858112985697178318721509569398384636701201826430689131547714429616000208159611002685889153028336651431644829536742530006927630477374020362939121299685235291875298616809976321741518850579553085297915041279105073361152778725069855572958079467957892676832835572953670660850486978787308019271836130928640746351345138640231299291379574938330675652057865593384029397190284611415210159759849989076373569224629274577756200353919189170388740744397886108496387187865199848480662156210182195518429918918840114461545876057499112357633284675970871814228372094129959310899853640562444014081695874475413924979663695278907251627023620579981939668718977703762158245127885447642160793358379741580823824918412227274889462132554729372921334387550426321499297432833249622266852906342588466416309186294382884892689613792974046420280231181493605345497079686235832665168893302452323696408563813523848934031574391151820445304151643157824235650787489403906302774188685641039589853698692870266693463508608186634119153413694739267653820379792280241852506174217884135260740622087149691941089413143423692422819183677865051289251390522294866628313974363891905156742205461481417051260795505773909230000044649990576220327744152544665373202893936916531858786881388280795686446545996499042644385525962051501675323422665171846532847425255464078200692118902989298932363329553696301514154633458590568773086242641801935393023095794336824831259386832658657022479010648654031349909324629537747149874029361166509759293576332392162159198767724574426951195757384780398936117317030059805109718941855452721064620520448343738905749654055701875291198709479470598061772888030130142084932083493912250675288522266617240624126092519726083932317565702556111715222432531605637367113434606145269237848899508988734297132543125458669650829348095821828039768814272793079853117554350799504911869992406776452977429198663720042868799136141179794790681906867367055244472506091673224329428367116300275577816498135109942808925119899433935576560426120093463838962806797676533674604268258413516762205855868457001685426601496060846339449783720604345513006662461523229560609970301214406847472241492638021653494570625276391567632444274051968799352284247895882866953816530600123850946844997793344539759324280931010298898500424153379117852684788355833942326481356927466458239599256185324423776058987826089025638875069093730820772916547160835368947544777916480675856529830374647896150401328154426504746510521362712450819181587977373635758492819395377323772035551868577568201197881064919737305208179827374190779190599027538138766973746339159332775494416643793518688262261332974842104173823551501773495225289536451669144907340174351820484968220111913474354564756118509585309494481389662885381252360992347001239294537748239464749312063502622311266605477996808304203380423084674356060088880682494260275208673773983189683815442961020886128964872517512847558257638972250879326863327055428038573133845825190249095400184293512677437679373750723425111998497071816895065857199065533740050147480017626821647511000820546908512525884991899349995841356119840526561525267134255767186202202066896243856054712016985498612320575349386345374845443268000284258841977292874759506580263833067957985146717703006406317520590447723322450591963009750332018588627845171932945392306458697476499825885909817855224121065247954613926859140324507957754272879611613415189484848174713074742280395858257673829432386693697913569362160500594891199653468539940903507564072469987267497814510792213704823987838125482840421957604172029749151583280389722376913422025408442846360249342280445657840894793286673582389493859983148978779358186068164637330986947297499098014221767833546854666826675079437949020659086651489556686027196698206525751719435566607554263958062241879314628997459214141867723864200457975025048137011300392216239677928832672921738808762270617669230098832571265834863222531638318706341320759256507045290036646432208555310643579789111615396805946793461392545198122919118845110521256425874913886026328957668140795284895920762190674036081229368383740267104441288747187558898275854750218628882817311525582224526346427236348146099191847442402742122828878250787948045907587668248659075847712153779337589469366529137072097932182420651863005109814033146576239471984349150503362103072468786177081039156051653917556647917468114802074320212801919328098729829781679566646479580946723580643496862881746866890955485819677037484689624956672007829903970598188945174660927986958943613090829382954892635911228489880096079526821039377065998807168928394989433455174830214528099336314071448024471757170269255778522315386592950823715565993994282176106783281462908763971605957557221481142337123186437031334820790958227468983504157674116214839501824269064966291939432234460681768784631177850739538820709446582536083306416902821338422565631555489508758655890184824786219764857407800697685219340105502162651337477395056321565900958331325845444308311980827720007185055650103328369900670615424542606988869366880903736268813979604225114093267959623083498482508397309984558245525786326105637204822301005655341521788847075137389304589198319779855696319933184292118874061200205074627095773006878401300552292917502152821351081146051703557977694718985112208267126156828813633724452674995237408664575122786059332984730669302776264027770123156099037512286945458526714094774619275015263549727461457653297433333500528944587744483855808095629396282707680122085427612706225965477932723616702161732134708568221132273798695164258056458182811439414968690108905926366013705569245696624442801170292111853567796929612117174584677367275862345014341563541917874006198110172817678039474517251326430617753551601576276648727795856451870023118200140371312289069906527063133628402093666588983049450774606327129912163382079065735148289779687779925312690746851669724477816336815919064279669030722547306352550824322712727585779890802248199248524248401101716270105046694344400689910896118153459294816640417907112122791761007584348201764532361013375918961786453594201523187856829158014052400723682583752664048496064780692646954315232340327626442315967925529646266663123478297502840217308319663501990981276558909118191122994581961537010189152301975699713063947428289026936751687929260922813163958685185614002814172712535094381575279146498448414975637358708719985478835400761294920262104120817064851664460415975831686428824251347968786972423854969763644529312792734277537942526587665469641763323474814903297568330383010539677703204343711871268350861363283050863726543808960043504994031578390103705079089828505234353362357452148408909003604325551258575973208554127074271587345304604735240158202880322925221883518024907545699033361029116063189294403017995837551919448918253567111409838269805429570071167284146473876103836330984472691553280300811604054617512229146707195206020862573126847097011661622854436543445965513600829892660185924105933123918563457483962981468348705743653737369892859626848239411545668886742563442054599695921973899975851176358875566730466122451236712174166897588431537283397710609682940392326131514348066475633520170093986989737616654452795250235903356249197224579644790268963614445324060970219569190979976795906040495865114335955086652742657679240701050810434520711413572303946663657914923137396376179154599017453538011448627972883044842149368559848922749156151506526588075604443877958576430446875521057513390718011627787768919418786368707140561765729636226581674400299089644242098937591157530126218266765548861427858806769572963052528482096375426785605358773447355576726133871584147988696275851664236182053087065496657551803700560154837395393103841941839516508279995431242551735257143814129954742531552725516803820808781735621879340718328227993441016013784050713867638370530388298518164881077669081253090860394006646797807077323121124217077026999374346249098911977040075622759794655959997790653433730620514568327568226074447765836105713906751006542179170484365877912184868923871594978263638467846592778990699185343231471633528843580946983864045213835636953080894679992496874194935994647422854314598002231602466943083954827124979027404537296444550356067948533960969457900460535804929098678260550264537223963338162000946736684008312895671192751357479697474518466947242705154073844439476192247919830833682141996525202089611866241165163947027487728468939722848477112348075906138954566370518400741943485044479817979101668112943516916887969024392927682976585949073275649792210261191974853157192468523227156259289915088548511594687553795791021516484507518200400850446128259246669778879979702109944542257859073818147016797050522165757417402796474666023311555566481186312635719370476201774293376741181787795466006132221809243325722102320730143127914231414772607419832820607592588096064568076258811194038331610411543402663603524517580679713556046578991511425019737503467429884662840304738484790982076744988413065784712747228817318346942783161120048992940295996306816326410879633365271020584811274293039326799855218616900991436749284550376118259818382509441903313333688617549559727743865546160148012101820112000995600392833491225535396709854161895323613309610608667053550352670325856018410683048679167502051243208833671933267708730168821766899692286295270472096686059054414941378468250243515915638630131594786239204819860531701340666084450998186451197935214102726071400595094944823785666987118134702563971250884769031992339305446371632025720337984735883380865402264562381596967561469301043737619379576373432081905622724242278693924749762496015075803429741762148612669890648805832222375747415754607645090974209169745141944199019808755868175576942993769948009375693404483778701096911955663640504659210374715942917251101443605447408762499959484781273188583954747289416362948806688692953390624565300068283867866663568656413002592243753535657968603484614025462736751332435839840888342356420094151206054300293122343415627484517173445399878328948564159119878263071578058444549140272233633216931192907763104347477655443689998372759447454938140466888696699076243314706778480913469478592435822821293974330347775058883950763573209450725822717027328872848288199116592457441965043134366665694374391595836962367531068794774483450771347621656832729375622964624521560732697775501111384250667707222008979718027690675738393334007874418506142660220523188061520994755084859955638207092285649908361480770298204427677619068755236294558031466007605093055854354159018085502065744097728105826833573496699425844093985692969631014886899711864043955018932754755449431378540802087155408713085144049670412719549618001517082909780780527992359574418397646552781315224135198989112954924730191651457723723409225714260420184091024420442498601708359058390966574640242915744664847806085152496048430353520924745295418473530508040418745928420585545116475974249875366075958739848387540342297943856221535193093247651430361358234490189802030229313537774160031041081928751085741272154553080118587122605275797514321735785132235560041581605302984250973940887066769164065921833934008635917697511565293194540949259221527054562402729244874141457486427511123826226672442263926070853512377243872607530447361461816010559424721340391876781340414587764660765600363719543757632803972688975875684456516747986703937581337444265852397508641660329851631915470228324316979779347087244218607766528960727751620116669552089587934911033968161642435859204158591662086801630625922166616603516521925321592106451462705613116575654959131405293128223485176829238847493651357590353814171601406067393192494938332592849116778433118078914406181590316278430993969587132034685165930369691136942102412800602983936506511675973006689287778153533538611055450279687670812769902636170822246699320665315823119031861259266222616556611065338809847000199942630898239179467229388596105605560493500799072820060807826593745333257977515285665320450614900125020470554995531943778231277043797686475798208582589436588126216611559680930555808141140870269548140609199698189427463151369283237304868763480773418049131212499531096424247824197074217598351916656365078039171398326493048449094103724257551037869759294752978413045239855556619765208914714511932445922629362312458455028008950038534189106395165329183565325869122142025391173219744641411312539773634267227154580780959200714550973364341595934885687581240655726754855124504003329454927392310682334379785352000688715446913770868452285410987278986584417371819303660354141425453815400609224293325509800615182385342808615145012512949265742039106215093001933613588995869041821879134618398497298727377684141252461523787896521268736688434855985021522581731577902967884177041044459340202168364767748086461802069755374843399766376220393805871571143521839342332379292747260959827041974120672716891819508501375092841433290589413257074295759033983474339639131979741752477460572684062529755543103093868039737229964056789527464583482403171386971736426608715942881547175252213770043803363724383012725898556827255861329464929666307646516947069083383487454424018030585749968356925080868007735697220006790659485161967290822663473179309303536859028888655679462403804322084438104225537950188154724426694544095127814351375010412757330815190134763279459110449336551382758135330625639953304679367968838540673424255948238405037954622704801051363665109128251461063864027145260698602389065249610024056793546283332232735949950556502346964821303761835405691598054055874959239388306305253243876544292941403422587960034181787507848027547717149971637332145277908628425785782231426525687069571448731476229416713473496459054826881203977942641571281356368603756425585216614133884011703396364985637739449713744954382597945603285980310242062647280828061954210386230086999313452653813571269772329011621146418951926537823476233839083776448912882894318025224855342278750265931039330123948939538871198989553122137675240902999494651624818289913016048585658098741767616449005145594539578494263555720519427361482966097671291082965885862627178591026051245624878937948885123671800205411271952815706118317358942413773402232205088276627199740508743873501152798473507685606674295554427231808150706801643548989377291016371376451537947295461513553560979216389815170682548608557391160876979933022912688921422906242359448750984497201617370509508932543451619895872083177367835272725516523169372555350063923292122989293984376979557071394546468740146375611655844547329533108356821617720694618743353682029398056406884514365378288705028109395360016721239801914697920110399573273016426325713665367887469790198299913016643763045896359540344465005254662911335263080412353479090261556360755953697799122354298627942757556488087735652421364677847167196380817160549328270328173391735447331004637564932936801760017592915073744093475013550417961468483700974640693002934829785270882621585060068014745015559547967645007490269736508697345038524543555713991696925646047206597544238325597598626790652447334030472208769637858474403737871816401445863361286640054204698683910155387399467865552480284887634228357499955746143120029464930823899256940928558652788222764028824941492929685558483889161357953575375461095388706974781112985397274889941431364491665889125737274691461152199695454117897320262688506550630691450323480025769618376938653144622645569419284927434430439855510865634308052420938717904223060550956893662449707970098284025077893983737683518596607850452580489631401551376032320514465998415582446651930650809436584989622870711842880651159641189436583353425076104046227936461627528904169245303749644505313261232464310943781198398469947514397925647542659580655988067967500189733242648764297454885602474898857367973603925969381782566290301898289398327665728230310661457291705605276577579239497143301116599868561069718497219368857058798520227409889563955312795345987933993969330019888871598399378107318640244129343443954400069555041985439107198856003258334524320190721961797957604642389868410129050902544539683782903806245595909426219600593143043334829961020246355137259233228718610155045604359081274115994727760730710462303888064261591977403283370137616993027192843841363724969417387309226029636302563998061751047620169440089816671820845870706444678591931111417234706555375472825332395601885799817877259957589162135035934315155029193028641665956725795438985521465413187199916308146743147702218815276166234842731490448119102641364319624426305367981697687702817294007067867013899548738398904368317074426678026338113256725152877929090212773497938660380617267790018595664284826444644960106811210173207189848572925454757247852207364113267706958238511440027509870275662330874222705587053218706940629236854374799041192012487724824405524009325399017694217800869264742820434267182299894619544754465781132028328750043027343873728847343957007007412689303347674388528076266123073684956406200961705742939413673554910510710707231612974688987752584214532353625168559404022988671664657691484810736197634903683162451107711456227828362091719055853749841840502781935673501712530835524739124368741555167413614075488753518495130258151403269109490641432400129662436066201465131667992817462347325750831871386638193798277045521273597863887176081132338574120438167867093664103563642008062623683100179073911435719101563015614198634250475147597400526879952057748991408911250330434114192769344006738585915287319838540071580229227522848570137674816940452636568791915272219173516453286574585135184120944295141325825228166078915767168418788876121154407464039401803924973155314731706743430397259226024678384655983206240144591447770911485486673025003324191864726288217978192488536055512633516055511180656355253583207811487247190442375373451581460819925648444396871255928004442289735103252397448876080813827789727755481187451001902160105362017899607259295544009942710748435140655228807102653947432086022132936028558953929743764980809054427656691095704033375439829828997797423677623008704191773757972564625315970212665630462821621864172506129589884161335303544525672655533554088388866306739437061125690417890826268681145583534490067581949816070524044637852128527137548600087478253524425372818558724143904780645520334411260269272987214559459141271829600115629744867840585800154541300858445362923534651434562247108574686783299915131032455838796059141081898167739944175556889479886423696981458038001106092792334782696819342019430404654644874544735876547284760829864453125792906937754462709184407081137234559470907183901447807233737497913187706794699960221029103344106334579536490788571054204778835670864120829147585732283442646821176489752365399201033887327079427534174471363675967153565061622834905386360414873227871305299310492996819230878400820991294662548694976060992768345075172819722498700607207702813911799876725690355888661485342030628618271340876758437400260545583197981589382318256641139707485057212630197718769888901717061036666052315743609432306757540828490372152284331475337780641783492248332917397542442428464324039036711269599927624125248101558607723142300021832452119178492143953376481814532247742045843643334661369592338551313787490088184262189254131702938407813922955351174882527296540868744395710218545714327951558289105262831431185066790015858595886351037365693831412619822647267802564708613972480719835449731064742468401570056125579715907092286792869274221671319420975874790512073251376100711514981305656256305765096140798521270066451107049019775747916637300285175130926296730328480618951956411085776756955904282889602700454689225478166563242219487508705629449688492165683935753957819232530710509932416263086066174795206385654674572080017318532038035694204784753581876413637410791093952826915813154467605585062147463474745721505700508666048114947386977278378190810582389563177782023070637268477705150051601139096190854082759767136636531780435452460734723989280848008433932550313967943095178839352884329105923312414028368531304941624264354897443517865571059498966879524725678901984837759022374183098665176752178005467140735227836761803982987050733596905297889135803996612085424221556072211661244947221168235529559937837404497970636623122338045633588669800176762851322581242726057176794219689192328786664638623110141884150916299877509795535301440941145530488192820023009341812011436373059557620556305359697818977814122784661832862857754559229477657454781698119277095686919938064834514953609301035861291542911081946229068167969298707936738057409521675888772675640394042124260044572609214658416525905560224885614194793834762665402202739369193552384305934435119008355659274391427122458660869413523309394813258256826704948980488813068806242371776648939022449441591129960113461133120675751254117692274189786857433344441892626264545731698582818596828434711272709033881021956883364055915540819977261923433917685246946304095388364530068859661996074954838550210456331488825679747400424003047840278702210044521271286693828355449994819773332078387922993844242005500976495391310545199135146741991824467753388172877265895216149619060601028655754279930893695745274404808894618323756423254847927939991762757043864578519004642527354202095035624788303962981583149703819892661746002503800008841459167328231415674258136645240665538632418349827807629730873198245835360856787740035854307418746723452426581889565493825025417463321016694038474934719859943928673792940286611830351292885043797188071434328661644109250825356267011476545208271171165912825409843310031027051957409288406833076207767596943425375994997659570277314044372874035479223465110804268506413094460652413655608465692207207996376093176760867884634767786228932382922735810137436531173331318758310279415369841826146154592587903586180558309466467309451134041227000376563640472390585458946582249587033861626418299328505638480585998994180736460926077279215787959599869297096563770956289519833595350698680176361876238932524143868434945729403191228490567157918219874902669175421912567136764677380899789907350201953487735216953275173975436872399669652506045798035375255130138880065205238477843373868039428204208086018609619356011626594969747982137520110495588684079527677293304753436570029180784919041653652746125832238437676390974242773736648691278681933431077613144567330658365490173031961954173842355893847603541991112694190871242164700621604117154921968606295753440763880520086917768463746363583519591667070558057351714771918690588571758369045893417373929929824274427860739691703542272987336976512794945780681631587283495764613979695768293369959180805513546412239508008854439393215107476445394424643691711266468143207008652922340890942428874761371613179243123706280600725178012784843981222592498434735738694514719841324258455097421842191597093106520160502551436956103606923284850559507302731578512545188055363999921968985199585478597448680603177277196453420217388363457784079746502001921491421010955877559649531448332286713229168693089113309420801899186332668573401570965971428992588034391793393952983292636462642100708541821658949077511426111195834000318948923890819308637189585903324111756201468691376431975469978461596676777412689474565271529254316547492094945175712876072602363182801416694587245973747072116593157257010535830741673856163957154431525038408430955824416417495393001427395995732600855014497253346940955780563885683817455445004557222461853210218924362942419801255833735616918400921358189942994347365400844320817788567248587978454229362393834495802297348935842612667703034659900194735692157023106808521055257374473827029884568820819860923227955971001677766884017956767680482792574052004525529750007984502178074448011297736151322297933892045976776711990513260859942839428914511801725524650070565887897593726872886284660946654324295556393758747621391864644850429662307463806579046426472103055342039623901506171726505520171961223530585689700844491040123767215702723726758223546860295728691759355482371048951784507863191179908576629453018015527978113816714984729953754012470389386056520344117976530056800172077502765600641430149905810896392385445349292145999181245386989686170963022936304996290302318222854068567137639394610602772616161767327390977191868426876181577818367689065673331134935941171033268941523878574880632000944547117273257420015201534531281735398221683442236704339441600573267676035049938103151749924797024900743691810588460779867612881961819281009600342479008184538944620797159277001600434734255175140008122613239509925183552412314365708378989958897509271084263689775504274670596030500468219532535673621304906500314322497526384134535685477907557503023466393867899903565780990045057737876815873846751431327454414938038524562892874534346655235003651268733634598312849995475735050330479088664645906306685579281096662614879856054066606841484852012667238237593450687171544109439519591867368875466346263950678422390344107519402723394702695379088473670841344763679685289392973717885447999077052390207492982360877978527164734665750536803106537089454207640976140647356614845831211555496393952787705309385379291477406020235229367633173776124071743839636804510463687107861290018302822837937473897521725026225319752441031858611028098864594372934480899606003016869540800226737526813712700450571524132849564118291350876046918936880333727064283839861814027627551092187430816997620392886190380447481483317887979372135231792229500059858744896309666457019107572117322390043627516304680265663773816246487421989513487721127503575273821255551041302152845445106345994703658185210421762035137876198273206647443697385173333288538931221204376541548441453714065807659665276860783233743890976454265400035044565746665805776482818802127442274878146992584079394978027076047960071986569268246640726585030491286335482180729675341399443149256455709730750633875848123857891522878327082238241088129952207017057437021892987968590377888705792501630151180376896532347767004010206418373479592147763603792989930419779959785944674668844420125476640551840252075677811549098997399592493237903956093648937025186600260911581543658504908663529321256565577177281505762523627939537367600796335053170509630654428670441282750560853294231050497484737575628062140510310924241555155497864308240772533741461497862879027262296061253576787195227796751782681525951661930169932255199117970221286832531175996602812449688524950018463408282575116593908153512797630217718059084962920129347945371344350661938442627570689510761170569623649716662163834427719065142760662929491732336157968254520991080755130274605817368815462600504460856853899840381391632578524174170615859284467420287503902381350347406688197030435358757938272355713703008333494629335473888317398862694273671575509080631463652818711154268311320786057803862362260540901525120154306480892511862833758170121066848182766306140347670802965870344460179289923752441649773131308266078578085569009567033665743441184607333043183035242303252219927363411306584349656082821820184822914923303288550239086284818661466347595601883303880118365103945515237816727864069587160742122765536813212564104633142252056245756869341138722349350391270153037319834394498889449639150876766245199022501261994031702951136271376835869594037341727663017841799570856789020119826369509606308956245436119402417982833412226612455903519733634991423972455462913745623918311584284277073210191301428528091411062583456898298839931203969132761960667578805969863890545960730087867412221650318343679612210297597051013846822218818664381433499004135601344289974760573597529707214913233080894862548215148070857754561505915427372036108109385055549082196696162202262637172550898330174595753526765833537554604673753807383309966327587494599315268485823180486060293539041579234663781277486425706797194055472560300105362341960269020216473021324149504675182649677113240714583981009454356883846623511943435891436216056661340286119879953054817169613078563262702818625786658374563260175237983351636324311391437362796063096731862296059872988334610407371681871602822571932689300843341273209790355964216464744464410579949134856004171127225868854799364410318960515268567899387330706074878644393254622989301437688459423691643954583764278850548705966267541789718465867963594015841079613707563655767203356886332490937111979599518581707590378099755174494181741017323397015109558568618534377773219715227837105135306198871716809158210815086402558782650074720968434505016629671446503046897868074622723926219868983619643069719652858655478760089168546304809123298339663687201582217059575737481862159486410831181896497685047722269914394180949449925114346232596009432679056018010319179135357401954542066195325196609146000163260087812710864855165760373314696704879954966421664205521153678931083328705565510450033565471765465771083794016987043491129202645004523486673628437905615714710401873911686796993346024301059627682738910355261595321950752224556424176633061348095871158059008692052612077055050759046978219518894217855865640639767733572536785952307010015666777286313044166033987277734975154178933927573146320640400193068690662225385565014107643708120752203835059109713040094552835978225248278380184053954593330295362045017012844303079393148539116971164999605705197958007930348107724244682690476618885227207253839293694215038793209604199517601303520915631290850398789330531783681581745991427254364469271489455219120220786168756604575660453656559223962025174655600695130185198239806285893663977703092741539125933295574461136405807116122041932425311557849971615429979309561369776643237541251439629396091164816753133072679328087675297623960585354322698699388526501587380637509485388320338433608799927449463882395751228870028069694149859807432484165589201957568910836934472704120669564504112211972027923683505089885742318032375404406205556534222266408549765549470069381519053406570526675021542183711323707918687813231873796200313234896462970616334523898912851575625869067544927115135670839927619316672857971171407825968173015143752472523801462941478665282798841831936641646477689049966274546171692693037539605748610075836200419343777361738059701328062833445746318221740232165885899794699515636953850667827864585930398260354481321284313878608108258128762386197809911626599400204609255919985764818070514442065350995891779216961965161148502997013834502766454196549952294119209074469322629040994014186724829603383400867789377782336279570596178821261237189178226920668560218052367550892491396935667367108901739897040438262982781681043344800508551738722158531562545033375513594469500651568654024803248287429902413979610450777854287539832683454613923978193954478780299518981290015422628036564224373728011367592157248559545159040220297711036460443988567269985820402332482447353734162730447766744449570809250592792497188547224545512671853329122428983090818281749855387195248352145050498305435193018021651850945276332082234155298800036683127009552476277258806440720315919327692005059215934213087029214496526713585233825329626688863757472134850546632546783247748983648245533341360556025393279389160481507047271732028411228662865262893684239270435588905166308352627591587142409903151268738647490140338854323940396059550713944046837032862563628487667941864011820506596945283688907366874319032410922060163773015343306429186695932786388766229188755370489938000210403478808506659165504819633779856709021992906823660565487807758951154094206421117060130913779561344717132202835732461609118158210261976698402438604289527756280218106400297391924763108766766257708626854210299690719381821864769882508050202472887590917301239000422577941694520034805141603217584592459144932697092386811258772930427184118915261392688202935331908633483221926019352566485527181489199937529038809613340183799630519223366552368758746944897739882415449054200030826842943832475063240781232034737033175280001558420832335972975698255527171473135991535862359270778132067507674027133998907734295942709095046323280891267111037003452923030403322736269487448672954092953229952903527339409099508789679796523965609702169167907045568662196037282539163531661660781181889953337472392557087807506734373629208135456715179641062104075597078264652766149190314028670491927087892487700755949578328540036990580073975182996809541422326551670416818332470928012613805366883975711467171372825708012344528830509380959770025900089478270362741395558025418584102958538280422926403458139003277055279285675713215739412908318417185000634892171168598952419993865958057262386934698745106506838197265953962511787265508115238604930401124941404955559990131893951207353887709708278689487204429628646296250642616918413344886192503769972691719035069286452969548798828156344079744783518202841992407222635936125036784843766864590129816863816975968934300069503578006046158100849489905345762236317649288742806810592850797049297437109540016054154444807470254915294987767408885987777945870844672880300733371266231493360591769040024030382866772033860238354115589663407466348726150031498067285980524311076750011355339078963047770146610341837153777027315486173153029534252680035497232325065775114870654622533220846799026892754331197757519152128790343722990540536837267420248422935224581527956653114550261118123525326284212262832018055514836215298349787231947799215961508807971724379516917137745717806662241487992833924606171482479116486717941829422109836487959612841707041573853241651004857836572688773486112283326841518470070101425403027762743439682565758661516192227993617578529395889073778692697672355369890863089842236112194813058428290469121484876643690066135797766736061111333769923906879340183482867664512742622312246120964761734952479759427587566374528968358805870410390325895352027596363376038655603959635438422957357453871307670902182993490744573525741520912959604591555498721726923347561478810198635132005376193145292429371046610992838844060741037968472205640934319987137454582515684129084229912060663126749493911641756319238314810250243647087028595552295251608610694577559864383035705472883002990995318176500999869492719935225423961664343494833888011062184547949418266581922309536453613036943394705963704557223124029808550242109659806098013214741244525188819179679092091107253545999613994634788173075150862283818611106585937249613664733189006965116603677863432277516687446979690246579558117205637332110642966987822017409049712226509130805657278791681282178160613195489096531748187832604218146410614297161744070785269745871593967489641098376425408016776841894604429230509827549228811399557404869793980687399294813630573440171728445276625747539861042290431422456177919100260188533197493945790798764348817284374857381578916822367211016772824466602462323200013742903507255684724505853359783797743602636211231820213387451474788879527477171001753156785631163474972331581766166420229079303712337530378587917226474749623541235041399537535732157177525638980756741069361953538501247265080963254180109156690281057884476652212232368679775890930290429475357739536527158328641258445807207252749671500739694163069041362291403232535489007832461885980730080589754846085091439917359472868953032231308758283857419131985148045931293773024046158252373638218822059454106968503342645096997772197194735872729305779823374673110522566385571085684231299828486482136144424377768003884750056589445903435521671951195541219822163278421484304704540202861538568232469968739697188447256647034978295193198777167603358524626603848250486032629493600383494770738769612267132962997533999573570745142855889302774210799755233825324265845375903836174764520507306383227941652465830997173158818062318081189015800957391182236604973675493647408112432615376555637332261509218594020797247736186010735359615726725520969733064601126294038758261947233040588772461036365326563558981052578163777542300058540013933751796229013116115310730560783732332628365993675756978746853169846895109741278685694088957725054393678409930874184999831814321830332424886307791339832916584729882349500582951226402726013904163289602375428653954334947096146694099496010577680113075027740321164874253219644662066480766257008725982927644341741591507773928384074908101816356090168113347398279490648751277919670990948310110885442874672316551658531123272008679130793721245320131375172788778437210402133058845113153398685823340952845539928825901622045158268299922329624313978990836203472327089105425019824459559587785640604413035037415243580446511804142256910502899065947736256483583305665781847289762246453268311568919336880608229699456815097501083545510460522145104746120746758250470147463158844833458638248160568286938538847249914872594620270171352966602891602700468205064726830811343930839488811059845331079422086243949698493901722120974740954550080889054627955938302817462338873076956373844448599509581827198689008839574699676766782952202416011392276666333398492907587243781538630240003723874356268808284103188661885932024873749875768943302393671633410840859555640573989969485710291080631567578068279021528109578321795248545715190303806007838362677497583559158543402418662604454793956112547784468844964761108569334748504370026661258693877234768042438525642738474610174526236453279491552052634010765339401849390464375284027126559310336797556531530333170348238703857328717432210149192694267222939132840480600290319159521718505338771174480392964308401241613923381061041658382220700700103859127263557029990753635535152490434121339249910392925288068070283500823551635801468999599822062239412826360199427438036434971245637395720639276626905939733451495075772219282078270807551674658083358182187997969949052567778221215140210980725879027998917510787159987604042148784286265825734184494226584210841199180778892441860047536130452363385762069875134816035294606836958057947523335703462320854905216070723928552985279171373408038576663054431066005892357415480021946823127887054439065179324202513113306896799545916518612838848614079922089923572486128109538766972925583035463322672143731499115945198276078846633163087388498615822055107289445612948892963042029789936183262573851627910950559627571516645975825203088086795826648018785210683518437809913414426252668446895904798645016856354495776826781682225552247488530562345326435995042579155674674849317520779630636381574829109365542741590738050675754664769877606685968774147963263589510519990641307346726431626926391299135537074204476828537973229662453920054101518175684822687815964358692763038380582989279821793680432032996375153126406015888151784369480284427144191900502198595344944742633996352631031024073140197355479831865849951636544425145714045774212302996242912036690977582047103996185111171416198744888561842948537868564068915459639413720188249376584786890543197317972865299702066048312777375535390613799090272242501015405123367729060178575136610855981069090322750083439892582682213778547235026244871677424234791862650296189803427589674259740437915824587061879313959681578650975030023897476727806082943284285109099753170873168266104329438584067014076003424222119560024482462907971637456444041903145244197580946396957062675983229048021632684049399309027952492102481132906578555687492949980053962826125299612209939422082423831039538262977404362473258073271676189157994980076286302268444681581961850343552214449268833057568742382695754908587678258325541385273338316944787786515197809802103648262794628021690294910860033557363690493765520184810975419985287364381047650994218298426228046573770941055420263325736707029154829852841080732100987740675319414732279914995332283654358894124453729323484698769171309696287187091191045819774925052975164140538182952719983632150005351928871371667222004414589688504557964895131633716866310014481099617653402367842131469795736322896928004883317124773850760969467680658645616369774881208533333200729632475220829293213236406957001180270959669960828825690479058386395946844265421475969899842018968626742989825293588505528155158664195281769469025384831636341043462477090659974499855300386835865987099121288806380510195359784383413360183668439158865717954122992454216936823609964760826825997824265881874146184217797076648128487086473938451424486724273782311516119899242260703907049858541240986865815281202442294445671366368395044516061869270586564223903665933535275539484201382087186324990166994424856609226302081797507221860075393082643025908169176837800911076376099709741298130092155239958942542733048708766291161919583641863786544992109282003993259518572962494136833172404911686235785096068900083606730210203609505991566366946085629240604765116473223581935572045501234346803995604066346922476997264591939061649168317528498671927040406791755790596449800952329486895412657027457034285411333349713445693325092530769880130091053203137067030808826382926200801557628256502137828807837443158826382331585530749452426501706577800443482200368838169967571033132974363355538716210169940209466156120194320317772683431815870258749770611122346584265166605030467140888057222873378971807090481898582989562170343535636078899699466948999253512098517459810440278776919947458994510792491692338574907037745234805506757325084705823849262073486150818805126383212535334598632408165835369130672449217552179107157521592541602284186320746982194970707775379756259146916773242660983853549517257389829240174727445669810541707296090802531388638104097459963131916079164581090031310342109705527686955999502247012039864705612542815673467109891506804084631398946653747591096188646673868354264225177821964159053938812025150388585202175629146514653898612578581328048759436730819946789983025475093956186285942873387199530069949438961568768077699497196685063311699246014949926836185179180155232016991056562183547239015395351049430990277329852400324163924693404130904701797018011207528302309393956184423761549849832409733926982034635879926316783265713577738364293664847178731464740125596030647592547489552491260127153974965405724514007494318492331882701648427690216366576167427784029805122117735141309574985890806782228971660768347622454442366841298438764798634548099013751898477884820016645878315485168308601933782005133465815304062663158032473220615253611159250494318234139548402819205950436394259231908353569803249659062539130706692056485217177981970147198973255975491445682940196389902797370153876557708399786592299166933489545625019526609736264406517603692962954951053233327604951316792683189058887207110533165467080837844919029066623931836236672950493669809296998439469912418825204348399971995258693571926197934565939041969450792257960021473609371475521236839256564239429550777678490818050821339177123972612520022849164418262073611102705376258845131800219163462356305625550908650998858700929290176764978788370530778404110804182834767948990770953427846004449177184520137621190485777091298549537315151466081900242991909633032344514105216190314441568965534545571628407817906049153547623236764399929195237530449615216254529479397585717674701463170553764408136137339638121835070122528101653748707376602428515572336974711203330600496608092816733265684638683045798664984392318142765511655886151108759818224021497142845788584373418344000305161386710251411160183532355127419357558338721654305404166545037561234054134983746044385234327502837504967583855634687624344147160164793802812197680610252301883558996437386942190616448758598127325633131948469734144798313520775697836802180029781890695010812880313543777127316295178121977017870359546158181842847695522456955345441571237212599859330626478565950359487914526528567695376616449712156165637752285371084644350969483664153759236357729334268994196201331518672702369305762487470582119126435101868623113426886001309624209708459548183752661004675962836311124623982987974708920238677362411535942251975633899832893168979385099697716294551207029210949519336123327586816126376430706789594608345712044750937903775638339850296777497629528268529368935880775498733322043343592428311636035304433652498243302334073166656957028233203172707904799497859682676890375717834201411598089683686065902795516042605949135518959126257771403315381087766315297402167066455165136658394531177241242390105396469772311626344756997619430621533604868725406132417451514002935809334962611849450245584391752142533397543296073692117779875591809479042638104476982151860868510395378555807309407622114882072720421159006525881902951131488814370250750336318935202626623393715755578802981694174900655100769024352156925350136723858668011630694100191867205073296841928161851015674032665931192031222212230099450326806052273193492539065397246460186534638859670455186585190217348906602479750539033827344168467298637482368028628174477139800466950197131635580207132643816105291798158067616453602034281882364240408652873390707537328717470787975310228952786203650288816758044912134776381111018832580563511681247576294517931781358514995574886621642020741673452412292438565542624822055488417894264476824399529909076383252813885822622265062022623418897194808280966058937426864819513086454254874066943710995936033625544175747733134438893876758017469913445004016871824925161618434755338226134390151183155772761007537536412160318786010566817526581190962083735664383585511670207196388729250010410370514706278004868421800857849968384362998543378721398855253897922045596525702813631963434532124007341811597400803683931159879833270302960049602920170818016957043003110923473757504876368821370494202289922047866320675971272899211271154187890557038759603706980926979210221208920153740693835597230038369943243284282242821507284124133638862159614329136348242144984796289477970809693964933369480162973243866381012022078515327806464530884736427118350823735056553545536301606906348069118523035012589808827769200142002078159470489789342137347160637109774498824379540094768368412941273515918414520852103101692218663950892101014988036057226264970700359561788132502720017361774727238415048688993907483779502626969042985566407622294746081793965880846011690304401051429679413731881949746582741131682055173849954771305182490195134362361366312033773695274888047998197997058291792647613198522484344737220649970880267875951347739393897521757181734596131677069815033932084021318078847840515213128630774160871365433360700153314008006834871568345810145202118876445697809317034008901532202693760342392068637510924665108342924744848919506162419601089712945119815041626081065477075237952994203673458784671960184934052273757379595080129180748946823663422552082622508723112314147377062748588810704980765623782319284350257889249104575306251554310527990513700703879741525942244477423653511590493269654383898141417318194949941867704019948292809705915961125927214227331289299946195709948082633986076790367232722558457469047707485546473320492757567204712888278700434599197877034622520199272372247083931230945356411186820672258561145081035578315164638111646093404606388305067826978458531732091382563928837401882932342183435256559734213331060828151599965071788940066081289216450317078237136217063485194691731371435722980062097936569598434325643273297307729024442615154784762562064085372638846614226090443250139999305524046140974348891519166172195135323995221157990151797291480865950350154914540096745058033267207716073002664896623176118976444472046616614437348555603430901001764864224771013504423654652260272223718025156721442069808777218073393949576334936555581119124798809877392242956655429781218437539575549299334985271114698598414449762144156890309305708422379588941808559036362973491949019007299806708061303016133777502502685592505178886518243283482897889089187363155061297830956307272440571293329329507345961202084701355096263946493088677189214113901645018253756075625093271832756792794065079074073835262756465847972846307525126600952457791687631399351038581305206031110008563124443100382239826547685106916553233996549331313053661651332844113887520527643021854916714576533782577768054470395157275575680426248864656273018774245139962105971751553153541346088983971268011525721969499534467917360195918309625948777838161989594219162142936880603264980982618845468298103524347218288434948681998895577360534279128446904531357380694988829677611586088592966936353639861622389008134262023143077577644386524305651992292946453219239342554407437446667832990498442506419856585328557434968346185784242360660497390758543188986001427897970980485955214992723053637330840927884960127605083723716278736026622207289272967346430166744339124647465825183258452634340807076127264752996623541284242261336662832370137811659500173396156392212406059556181014265179097496099483405272186805160900791123931919870910132960403460993233078680964403193427719778663424336916776330480969221269985234529821447396230389707346937072225354588162480996595042486414788958121405110997424119445970539710148535862561590000746971622301859843876681834808846649397795919642140607084542146042172316219050267140892299849819056231631958362451018945052176581190349645936461717576903350801753691500326730921199836799936261092939950469988104853120643431812198395316384187741535969309915849424340256014418725177151877391695713903634251724637432899883978789099795787140407317956145094421215408933528707046417049010875787398928121857137707452474212043274853780325294023730759936386746403420135856879309775692667648366501725659408851423754572597775160126782729648894744290766101307402053402811301958963046418905743665536490930802994510341223891690701498666152357233149239204987115684134551695938979367099711334855654830557776362405057748983502010608772124436346393790943474246360380697389138491545174729249752631723100681913127231593801910528442968867964548490608654290582325335362210935952171189278793562904038507566317323613390448926548255597494922079418493752775720793120671999873955337219483045741616568699460706753405679113187982695374723054514383920319254269684991219913906631795009602807659680140561636865240706336194088322748744920774238461471688151689231717361588907441565014092009545359804098262576415182497919723198179009332152821911476946305391549883505675059834914145403411294203191477415801438198946013426714731902890876464917286239549722723945795895879492365503429472820538401182243091928326842328270853402354918936617479655739320733451006570199505933049089885047474052594200746647255972272858811553199841205405805075475861806865338784036919459786535447653806584484139324674159364080217996576118949035883520492495408969073217645194733179349797912758733662618482865244470598817960839787089984755681290349789305522594636874025643696586466800420070593467874033265812083846318373883638283251310062486611576303227622125800277149135385477816676133488418134031409382069334738014624067953861794092129282785975910685935312588913302958424435971488578031070041908696600203908870322575888395701556196237601698900872795262271624850573399813820167286667518449201311815809739287452395582416840914913497371253154584894608390058034367728942346567641422218804388477867782793100365850119168274838133179082274862944435195466171766167751195321166340137240103371606909650288869066596624929596451526616954060036830056481773280431118020938224998692575092631464714255896415886455428793217198376437826956289265594693785320792761739972374700279720546353211930465444037346727005815070257019884017787920135537199654406190218380702954664556756750959657730886013679751982501250600306768428417661883400312051958662451170307647463851939864392740837128502249382837623688233581512124832227063239316334227750682935560116971437919691838270003865834310888301789292040927747747428248873413371658335925338432759627242151704796437210784039551181671757908140058204480373723892904408716842511876506059135533296442355749297032279311813648722464783896752041215150980965474329734600422455117865127328901339880149816513945874820119558210543807895955870550105568912997703624778096311619194170139357793721336610193268929150373115689218878584908999200580910438081638643410455911875131700056619978626822187690367003318356963838590806454773161001528357674856230620150157147678051192732721775909801583814666670726311990838072144647717628249392097749772687757256422743103144759715049030273756506719047310509591179206226616728496722943539693430677585635705318201783645156442622937576279921419337200079011701049634723797965978265625019101833026800579525552559366032364008388427176544808639508878883823861958505122698280657884655487401403067326379342070421984138659104537100210813478460049797903183499183289739774600112704081231520534046642161970861566948990829624808728286966123180898961337145059760110061763499890645041105420279640204307874929251593322127573654509717463694261257396803115352604482648224079130083773218826831281687367637890900018783964852301614711809949564563181322177754245512432637854428946215387326783663488670806739396602587576509971124766196553491358295165482830137414430613154837372571834884577547018785084458136221979726986286616572406781928153590183551561901518778266060992987395902747979963828692642209849867973181836275956282806231734455082664560243146553662535550493838275901185101588746398035594314606281990910391883040192533572986717826584500641154464764625050798697302359085251522307176259798012482714521006650521756392395915820041559639979501806005625450207937877626819824527825980905092964984939967821219486176544644963323727112843166388029168596737394032576576639295119052464845327584305740893576737247446761427071961781815014160970177028783361781455441660345731765264537802212706064716626132676806722530598871683528393722801178811185201732096676269888434034547510967203442954132371300864355111318638706915518151465556921473962965296823738230589055620506722883883626538376756120288964389449101189732524525713577102296386521229530855195309203930065468523431341294235650450233767263139106649271877090312703758179532648007577010550355208331569031722552219501470574148235958621049231986522376243573984716646529407362765530438350409397425758895536998472450135420365141326390768763476903304293072598910336680705997641233220636029686511635587251652791145694907384669633669458547627365339793309222180892977964348492030151509313662966576532193953867759705023113127623489482169550205550326674582148647296500803687108932766773644648558756329792227933550970544966876614245251320492915101670755065061008947674124080304904733817611627491332523696420164388216163992119155603664224693332364955734718972468897276916156274172962813839898454962957774150485205533794712348514433463049477775490160085996346887573845693673969379694883886111375988003135102614532383491510040919448277706765363050448238352783641667739708262096374116916803168124095692927035662419805463912225005560420150878596745963125228708787535800142991159439555145142807222782813003625118538663888818066116782780552399140475407760415075115569511127880315932418001919003614268459040868748177277042013142517875619140958233954612424502080918910878365932148555509552769161103678009156079991185350129426017083606070783059696941284837230705902907597580469948548972810636430758523210931210472168961690074892198096732208197222367871732908890937427772068415088497573911530324031874771310209471712684284584382998026849801689075077244854632099043325022403332727787429993993867412802984432754582329496498798056523242739131710589109424592221289075925081675077447787170170168265488286188858233381541820077098030297945003762409341970321514109232557357962477129523138397192668776667962709460639460487341136399587831430063277859456171311088816200570672261502592753923090813370880579517772797276015614293016276792241602948438822494332327967230378546328105626565667645110968583804089289890768049050913255408713000227798144221141832401730333752832955129130890308443925356061876245065163788738006782199868075262985246216840439019333911251978840144880944170709338354295737226351821610117741031464365023019770629388283022708318295754532903613461565500211361906019875832701920721025602790488742492684972688415397802605380544172139911117110624652326423019781724208030291754508608038160170551878983121257582973693723802435139489682970994975487461450261576690763902043325872744682159221660461072705667942927697835592530984619122110507726181115687905781230978092472027349862603598099008033395024669371771009966683475030495565205607344579187507723690864996565501828079747795306790560064934637997784326442576856560359819773896674943258872421759831023491684915972031247733946919391861912747962104504730616660618395822986599427109198584902509686492750953131856238889625558703126180307581941789281376869052707455644218521654314603137782948007624272529625511978431684077546789732957050736285361221591204274469470677528649698906586876332135651239388876541967810448044104954403317372720582945509424003107429633937471036234481452812150053068389126983270651552582920062240597546369402040205887969348630585916873841167078452812833701222946246378170814660305752164322332084624600076719815529289784739331983148034948062233944948404414813102489118742774952325510285681556161370553301719834399768967745921937776533292719834430737221600472021165002059250672388106826981976372228303052219191478244449280493716660194257339667226699362778707898885154990323203483407968877092135988556553849278850106736895592751240054117442638675059153787065123461208990164752599644623596421166995312680298810541069697635173727780385842044920868572827055971594703943412187390574998958701306112057482228083819237801563238449215276722276270492417260655971262751260696039791584091347919137708618268474941093661615886737628162259993510852748049233131848710267148403612023845766233696669216966887127760239771579421316531763821480686926558408491892475985728119335502045948929928483967248438794323464220086049430445082177318931616448270541494760549257292795614179322466175044719730023947434671002965745224051035945743420134108166485940527626459746456462198085886722624916932991022821944315671119547750859479376948428210289783851603793402912103471748421083175288186216227303203059005372458034287003172764151855073187407490322910294556534440016238877702227703308419436065964108146022697447685214139675154128421532030134675326671698923003876481484713129744875446819052001540438939712741670193467870844837771687816294761277051150786775443083556584985367369058094364028815258219369219881373592576883193842326589973834672813567173844877029761225232532231983135811200462421722771355718301758200433680196580221571941537912293477647926100352588809353316275140739250239831945727774769991008687683655849036183677136157960507170127666032290328571413915214311549292765546823986414858709724527597041686242979290404617414116965825782179242036227941660064951269009060001493787293160683522933421254577141180854486702289728451357175312911493325828209340483114760086784630770474807305038824251709866842592669686255661912424294656673012071629287227630845976367541799663265421228768554037270015536642645846096865344904410699412402004145483005333743400258622786098011071046428249827321198980669569236803402996654969764701327175150907502843152457872088578739496093337717718830995541081006583929375373080193836622502124016355668056952186679657005611478199920251770649491865335634450068524592022464089501747908300854605980331036782941995623796038505870460340522274660800072166079639278813738835827710708658121602506853757651306074620822180176463406415695661867122026876344872872220573484816468027087138157468109912516692137986021901219600946640427907181051729182811011722622742747667254741700052482484471613198219957299177796104179027976978173210036509551107913844807503807303533624261086199790196906600462622112566614675933714468467863555407560224388394086989602407359365365851143247514600860936419028239775990375895951973035787442599300359113694930464086823362341321861701336156074313051959373896113266417799768864124390289834470679219211563615167538216257967914257387705353556716659472353737006102966628335428840459257656793153581667175405695759730975854130067687640360140261233169704366406595571132457647226202938361148813743142484725280798756491256421137823059780698709451978599774836154836385384241307705039754793536578716102908012012172196745668975861096043032683927510846314350961539135829637901762412624020814997419834289241750973596553746292050301892338862057021295294826411296862611643945858565705095356682002888490117104855518435843022418281462185223765043590417721252175913582192150362652182616600633447148068327559154913884468324278220835402286099466254276534310253805728870877418979584264878890174420524015357769410026434241041725803348306945277013602709090233913985127857467323233118999907093881843306723665317831353201140275751740646933084165593945464022742763880421384816835542005223322819100115785049604625998937523094584850284616715697825549628346347701558888369994526883862690706175642931549362288922470689303549588688165598923651994600038577035408419128296914020111908691722120045727788893714873337028449055797640282495904979478080108159616411821890827158912431785259417895027398821263542430129306743971272891889952276010703450959098731099373946515002765568801518382824457169150475939289233854444820605846597584481436786602965666896697797147968777597741049646475243192326238937460591673040370579353212212514823472951152735161921373106708825111273953804207517186997861749624969524243352198053518390644926155184928080782893650353572076839385655225835969675390397491057926100179028916871596612865744951670935451858987899158020057245655255895188255337792637859697645777849100774590368097373479484263444160508544628992581060404015352665487772837952606120047199273013421078509024543077351311737609210513996592730316937564840317592137485088706374924766460149869815914873618685820280801729784488905415158889811898921016716449120983800358929134590530343127184804259220444837980414501027408625199742026948589429159468240768078216326360138669839214520401599159150969699892449935097054205297144837889075207399555452510029325640629016122557131636824377107660930303557412028121120577069983918329938154490782217394237442552096099090066718263790569858489273175181020025835990252955438055605130307325173198687959124882066277652974295408226445451383466950643470301324013048539320859810954166011661474145619181043044572923075855107592525814044895350512998815097389228811151402051788123118753186599355084069769417833423964733414850828610716209054991269675746405933255912049004770835592795094260220639115630874234299188755595782027887406610423791297856489772071305347607127095594623563180508904138154697347926880682696907911594745613047267069103914953491070975807056456699124494759075465581848836580632570021916770798378971255720388536850687942538150717216989135031146962318845408947133892860686051432981383591753485875710036458920193437361275440554437655855336328213856143305624735980771358398250874410678005484731770937149944537853953659369408013038277931279090393103016284938465378385600878152531088993819919272184375094801397027403503735994357585055304964699956811496038773316105761542647895077146696363625663770502004483397906700698928860294009515039837063010136703747723808498360454930557450134241890108395987254763911582730047242295574282926804513053104655294980809715798849997834434541770137833504143313007329978642529544453463735045893709934789643788507564810189528195739186980848250112847442452277290064747256782196492719758554695076858670216840956823055064902660427439084192410060827008581768437235826426072396847459584456604445051531935181401358571543526423721871356050554928843445389765591309086992762111955783746986767800132501810280988541070173753150317752079644045839649500832589959426664269441336847656795904201845262729843732733786609326466159879540791637135733428648755627774801340241913687038045393074642743814458237947897566346432857568504896239863693114997123557782488565022645570687190747719818319535311123104459949160014982494880705076222766040210011192023472120386383553004654902499846430427728526873249833991858352608002783771666595947551189366466031543830872562387908591247881222647229685346588997457735452022079273583912037586492886323797720273494234830984650550920237288355473132779469286501089341545927790453929346478120179794223111717113393770986770991698669774177929068676186133759603757336791911375301683339630632721738901923466026467453575354034466107711936590297162577416327875055932438262598051923992468725028900810818853478314737508387137709379275853256348975527675929713421972774799973811502102523852909968359813330155294548268531450290184809518435750033871327957841547959160310562881260703260431850821608399072931400123352914704326334208316724892293273206422367267511633734792505548410954111834936536717695695547828075595781953390831026141798775930048169722371644484167509923271334773338558358747755757638654150280440944570638609809344678787284664834916653890934975013197757206649508781308024654216971992858853726968674381085370157749920798386376272913731221591939666043838655083484119169660131651812298627893687843745097767097231828919082424207010723649700042575771052561413038774652561271657107598555692977866450545044598737017962157719557040162114043023875893423566597480871878145915445627922181529170377166795044439093066255983404291411538152144638371582970204198807854067893815132932382432149260301706947096138531136592727593278216977131066222841969575428360734945463507488547196253326280807236629369302944328068743252306285890381390048759055773445497908722729775303312827522430819276558344174652034804013845864947764473384101294608489633039913552789535633027741345429922420164836890137247528016138937577179605526918039849656543004871128639621798589732281839428040233270365356136977332030383643920277752307469098196076750657429519784561666880289695732340555186618617492165479871146666968208818018986688223799922949359604582792894716312992931946385876210808787049252825687834479423930888500713946850762397431956288970937169332540261877740528408003081453812505273349559316880397757740124735890903761762556447321583275983699064059332748462131289969172446699125775053170957720004964486225334742292381192658655721681760914251776332990912905922214170182481833421677096125265523005629688412431568036551653142975473648980788751344916270251523936620048035964339017759091953530500873889957619108767773119994498649636486614127058551574964036193286837107016109028054985542290972341073870576450267413071937056277808776911077931150739738015938570638125807152855382790290881321334049541652972368836695794283264319109752653861043335105568483162823636562462477515764314853426857077670135081478862465215691059624037391908763476858387215929574074100945313928424141393597034604208480771758064653837266075503032165024671787726718667174273933723420625202685387603626995723306529793789678194636865885080212420826947912433392323700766276598026273178321222623663815708352460153324438881273877886030413904695457537272277667144337564830619245627781953586408472218391727403759227103086234714849405656745571323188329591005545443879654249001456261480054710848513376226379346293253951593154651213911799172226577465949864922869041797681192662957595897775023066230130044047557037664693893174310590642905329305390765158849535346695442144008954894221362268092036163295415077272047180319910383588160028902665262813946851186499786928758917117967259234384068094500644586379872757157796834853024964574955902591040311254044478728970755248185839030217743510572307224951703648195030757100651634468473526569219165699606316696871789255730495853537575852443424607930179253118364136492558671754455067061259980254068410906703913507569709936374019673219278166828452559731469158124984474449313191651266980781410091387376507430929938466111962738824540125543027148521238326822773273822651690300637007189592865472613249201517134400604528853514479035683628504398047494860403574086843349085593326815648881997538177183289646484236616243579962535296870617740700883855639224625392550372838893559173598493590499947267251923109500118757691793675810911981904328218543405051889947434811108903260838384336346189764961637552001809796857919895491299535314915815702892089845837665397608419388888905942470425147280286982076436289601628181339130750967391787936554144994054261363706072849678666199190796446726793610202440304471187090442963500579700043778845265258136030397920543766615978225976570903348994904692677991072678309157665365797272313962091059693273624647028249520210267202350286808830987854646508946432339258057712009683113186041228285350116467523625213799251866676548871331574938063133416076992232973521401860490414846465108741168338360838551013847209841810089041352503985757456583143036914032878192707874818204597569364895900610334222999132642758879395641020391777984703140362358922615310519971975354978568151262724842060175348258993469171665436453408609317390073596657129060980504667456692417290952047121187228914567871804694645929989847407592881613967940775215184871464499061012721655977018690235396612679898740922016982980575732006608979642505485787526485125333666578311470899457869720797737402493782678935446540494712058916453218603930040908047044168103177347737490738842884878993231393906054882384162185580617889981647570374673985212039069868780593128253413183193202390126869194733421941582104624524791714242396610958850950168629181917810641954004254916731580540862192510658752928845846917437800035776590012271897949777404216216164074497784818850954450460907890145857539157481634159354408698847912300353656097101145497651535319130662609539606654461523161981523844111145002344782777151049047807197556997194627838238994894993712149450523395931606345731384865398951217674432937510891440689091752091462330173617828703139603074836676573613659595543881377197694829594815953338063921106206462403036698504667109410389753518749489244948482991670910361526928251175179483922704220320825707494202999513450838097639885271580197520965302227128761074758857260094003439369335957245519002405954626330487926718167907400575652980254575187405275362890120944714039658674372650034007706351970381155283559427603213060712766307511611011492310414401481921719605501217203752863133634134152901071632743922573854941652399411890043439325761578397978660111701549561488945102838348483187181996012457245861830573829156215918549692546563011560702209287338339389084916456491559085055898681171773409124044265329359935080586608329980713147493536922389435132817193748950107298029177063596823632114122629036322672273334650428498754471087791618688883220743229417603752176506050537454309238266056611146987259047039819911392975424511825568630015753308177518136748040868239719992587654198787877636487345705374334646276050712145723304042970967546505774065159619386564994608883859744953866280181522555655456234052238010098251098046971933848228222617308527322516964793650240402506796525477474479319945898810749173241059712555016763835479410728555057466970069943361808937707075202533728273560798443966449604223840571446074465183042458858207339750078363016341453857840381135262448866578287842602665661060407773530716117574779459173481729529137761904212760145476031083159152685489094602356882412302820931470310912111182598232770622196683787205346402274109701411384100262344334312483689012765107937448336547721028508852658160978960863987363459796624340784980609288861925610206956537963399916203076551818690545228878532522945939113954314986131692262142563492088769597292170734284389081414124862679370361327605679049532413597397888940372572336418841991787353715808329553090233787533914628164602710284359629973287852192817122534605622161094653049372392304261957517745308603600629742578001160547204689024904676814573004334420493023296083807781552098001353541238319800019259368189753582425004935784447212375561659183001393007470088233084965274345566638136989846259991709144714914857502746997456203663016352945432350410891383214108483357308788119117882987307516568895773705664281477979225608049227609909380027381010042533311157506937504742731176631226404103659100144970233338157047139169288680093425705775394322759541455270766179343733940797191207790963577049734164123313359692574881168102135154954546152553760191818089998040178951480839557238040434940864069740610110652971259727163003613765532889968510445025067095922545899435549391864487897397206541779147844145929961258291538602436186415890021508311774059703321306489958917023610395759077494955785554165317745858775881946614965437405429325429907982040716858541585857856850568060226962847161020616218266771821679498409261925098901960414676775737239536671977175128176443696794361506338675919323906967418270632738069011339702293996723644464249635846568613077178795124487414956052488346161308477085308195210204506183518120046382246858352140531785469595432881334907437149093302712657764688733904127118312811420455891173988422701337226835760192992348383955345018286364669829852708256423442787864298538978347725229436341965437648123188088740596967848488227602576884632564278171694960029114430853214060653689183920231827026262036878157142467123422461255732849497655354220378612951707484596271637239459777927111267410968756497470474297168657002765210320960737010861236284617675875819893892523092493098472985243825496285719633084973299677908019745845347177626168357590711866763162897511596932228417674124690212900697000728461257725512353399482515832016910453514274128943932578643753587226129760469546204087484165963872634359936357012706104214359430153189958548847385438237942769791939855277983930961135805118233678400251828062990980568732665345362009095849871838971454673576221303014026345852761611814462933201543773793690104315914400513371462753477202096132941587296791358788270260298149596103568278159572684562058509487677347589558567046805533442570282370444428787455820752884806397211924947457341326321897540889615779754206002986434398185057747256427786160552757248727148552700542656282449063795042240651815901176477041794316901651655721253236102249330875016905455529732014615078101027718861074198011740756812050440244520821226003920621442091791229775872206402805395820821710755541049296601630772002853234901830886368480041167231384194925534518709553848568127172676471695205144897381672591158138731764821460996798767643362407603616839163773838412254973439447494011643200663195012937780540908492894905841507130395166717817039659023628214296221916049072908660964628573028489057171956213768141981796665663856241983965623957271693537539398174497252007051343854334544818270236296041937570835345240934919452009039500972206475368122802642663632987256616435942955020432034847795915198613915684440466645578465173994979602373874738132847153095524283069669179734253301573314914199331171714130205132505002808409810277221743992944100589587994145285986751476441117011384934089370062027125897006525870594636165449210546069970044797501482950752812036582542765238825977834581256137206144775476008378461639093742387183408741619826673074852665798019988293816864388950704959562595056165181189690085372698396198747626520708849903233075312915244089529287423601034650708188428663020460182818409335538823691902556505111454715113965243671767081422817085872946720881231617610048295192696382428229376635606348196858924484985513250076985027421421434969439133000474685200456655403620197702046224126548397645107227929524510472418001860525595526986268019617762463399580129269882360184226015562306481628112194360753648329577473641064226326958009614151024046595456626939233309408577819467885798821193301603147561884168742587486198596578039759206997957561883819385045137986934557691334647529709057359867187379184198721530477379313460172276905988870601200154076578777021434861286198072561181424930274817784312719856814740735341765177394255071833586616026269311223693231049221493660100929845900238303840569471452793311747175197293381943192035495252785437526872556885196778898575863535055869985773848463539085741421353635585649103084348825022555908878044279213750057140748907883553293554393992997223414635313519191578293256042726952341262837762818548298689504525683978737439372152524402784622526998504863928625223153630328098321163840309098920199366397276920083981391636683744925854914862857459892953653019058190656905463375633393749712266731516077216022087205720802931100754004260053841691362676558906090366515589551440372899782197454217298649428475915686590197076092011748295298147308782692790166038782993665726315529323899839066997151557324941977997370846745716905771231618724506232125575953630308218560775091775824142029976336167432892392065860209430196235308136071271020137031282048416283928434481928920009913591691647608802407736164068428063797883204272659499050515500139998171552901966693621922575607010807154970509040646212385876770983521008850878902160425176141222451766571877075374602990580118300993635277183672052210000729968614975624233282821040995064840763125181505217076886064286162496152003160551655657032643274581165662868424911807244252020437206101828342090501107499708702312814267930941997250399939473564522498430794981582405166458770578900052904378905865062441715396687209320590181406053220805072869806384271448484680263508549287666697759853031065642531427754535468823769504591920788723454592444342014651466098271606636350165148657859190086458307468570513593339142358049073622476995865594303229154194218776203527526454368666771022352355802251238853404288716307366593702797476820513133790734519198802511813785481553401125004778890008159138134325681014010393592886561097256453198265673187536341856241809355374727506644560273321969153326438847120578354963451610679266801002409472413774415957456776214084279276351807700468888919479429176229876363144069787212942622889702956729255784375627465845647697438255047672610110755904079672877097923265144222598028358347782007428005496505670546024814492770997225766489946435734155974350142940426414207524036614593814570363320731578988832209703370468566515909331097800009536821337786945491189485364902822092213634876171203377822426324612571212472877352280162012304894822623270286730910202800142746049336514575234830768704401387992124841619612374713142191142459706768618549470786746444312902924619093141984845416088919722961742657184642721900578334165515100469265027163610823396608083619025013195330609228992620835073893258689875517964793435005481942783793612300571017011989236718898832067178721395842452837856074527464405085338486879890037179792126536146495605521946386384924629709891776902256356540004338861326063954023805572896796707197025307868237677307256541120691339156181955342891668211004960881447344164974701592618493080169842147035025549453290401129023527875074594722763141530351519121712713019192151879012110860124331190402742979859893435779728203112685784700860903617342291930863651131842021907219680305900720445215567400787376020349513435453779127351623601262873514887795193082213630857953652688446693878132520194565143659472925972104243586962112795008350366489623476703988963054091017849102509782798165799649995520663782070701068126195929338520122179942783460873767435503739610418044512858286335566588807852655171905620758540713259211523770936301259939092343760937312638070000507956862937408258135554197830702768887973913230331917148180388418800335565123640735166306870936966840477075136410802231512388304467311519724561157775055214834337729207039449576077192236095231861769951607466627360541410809131420800441866133154645516207968051323324688927575809742610115639393068405823753325338281088050580221095016128439752346204611290682934397482281326485141801939164612316535311323524652939150857895674604752569295571691089644895795176502305721019772973201108176755147923443990921288154327406689696379511257272899153740222204773738483078842083699968581749582586436026544145062035314970012874097858452822183244719907049124748818223488212453458997091946439518859236118411522326079792644478477906608527815618921741742053035284059179478891436209416191770069858160192448628270023083433162530727063525762488602765005035445140169821910398698058529051838304740089689582179424027836178919574329295209871234433651367510331993740721175691275384321529941769776233480949274980436649368511053777531700205476511536292230342950611521315457962692594551912363702811030046252914097930044000644922605406592511035712008472288550724461749351384929019428384379236646880723917856674371483750608121017892134796554055282886046044850245147762415941280292903673399920317282913263412308838498333182977952287233101198114191729382155903084327227865797144965417401784067100364353852403139084332456900817474694588873128526097230752612846581593046762987274537467847854771608479090181211889086948939443976926825079759456911651629542202523832614416696340158600208879212513818982003225897516689836082438373605183227028321644920840996118313074674996106101869428265006283283456170121185504921915113812432168554911571364106111038456598391343207762107215459345281603666363432652658700841477366296024400296916179238211569574262211959068389057115277822465260357126252973503095085801224101515102285268304485927558737875821857001962778680498307630920189702823846156669633324108898348485870703887177281807583306539031618067806043931889989302310274356752671854205078498007224204875800162198977781404202676282056068927328640972612413879830571002027397233440858338530421564221565570056027771226936383591278925182996194768783712353960995341432321866081504751501615692153915628231209315486936241514990897928437233489589042065150774383664123504545458096093549979527811329412139111070693275351002439620830414379097459337261838060537112796733535069559468387030361739929531502684233493436117090022982151106931780519551867861907477996690557064221794896574150133924212592458695090127231912089513820041693249218008219350410069834859377923621340525095910237641742088065562757026255438085688438105770094910838965391669785000047337585037137604315072634974933259662052117363420443548980656212978308342312823423341599558486980579279967208964766406719491844909593066958583511503419029588524901906924128792863877847324119803170718129865875779684491085612058399341089543428150144670513531938390473196546049193179370891512821684537605737255097949635353738902972404834127999799804880130871770719879144486975425712510559038309285284694066330109658281932464706488286523117712734794259818184539137701656075846457522364580281239003937998828415550073687416569343265851080184731610831743591861261963758629247965630295453449062484692160891489798505410947613990552927986049248854867449893495384985951774404488246836512045332828954365146401301864193810411534122116855043554503368082369663179816027127268607512448241397605018438291140836583946567874246813319546423251290545632718329608376348688192100233905574383461185272800520291817230106665326583330485371750939714232931191904989337771233160211097557263379188168977990688247443932209696937096926519236178399154856201542949201493723513013476713456220737322384623384375693049243145681397443611918326039560009604800314939969813037452662939386368147319534400432932323992183194917819963999449017262994257726089123065053458215252619278061644926660585018189010004782328152752694992042712879364150385786734213653276488587125997579884873884123162329445473912144277921069527565500118780020572830872631812299611603302334822983660871219059829060156024153913949527412692667597075948007584735249269466723550008362433266421840731874703249475893875983981036375648874966011302846255243479389287624285777552834023847431278626796405813848016755871612823948532137209490781237290705316010697323108608311642504166534285192375461407120471803670774121688594784825004175167844882637016133690137291917312775037306357160846372431199687141413324246750009740382550414753212912200204148976421850656007589161634003615462391941919053515070636940341376562685390360509931317098680221467856194566676669411518179514531959177774509464502474306680233368658781709313822812290311209492450428364398852039666032279346734321551852732907243591893144641254297093515310544258938540537030679193263192878367683991558070743951754060002639012230488166564128667958702980414789699835580964966731825956914916668695566696671377049941015081529295703538729874660959378211374417991978802800324236479847192709022717295073265301301167043055776090822036356885738383001157977150859456001038141744182186216037836721527061335052091860349662311037501008129683875784670144867028913028618212102157361623554030013854948363644392574616582602838001041820833478034342581979603963111445026567209161957800772378111548476306260334175196863664787626676658157035222947627171208953075997793506829853316851512468960030638769519973484772016598857479583120488880484590029462327571580835389884460571767942037072366181025715671599913154620751925418593452921082938603547208412576572677239427224303747280234588142650986121401868469375577133078082706301674248789195753059947287813476668808917208021829368742382213210141849171909814209686575828332156411080304307972252869905175873048810233911343700247804566416215669393471526120493325496653717749336856133842762754073523141270449968239315025675434244336524752566297378471617027732832778874890901821899319553968376949359858972195645879712760025803606061566109352725048460245758849335042306326948625326394427360156318217689530795180110432837812706463356983051978025547878256271641956691828403153016306504735031726708355953065991913067224255775327008161113848223236851341096773331639372301930859566603753717261017014018132933856835178521629250012046845539526502904737034116807487387751097292878183070650278239088494482499385560549909576419810157434850170902900994013531920043208579452296241582517483646517325743170612172001158353539340657658404973981344039096476646628338043495867521154483320967187344844811739498564712507887107176221524175902207317423994034374142801898725165320816521978123596850305193888874477945493916320163583594118185487637269377601704688436264951772292096236131252789068786303151567063880031580218449490141160996144338722351229943694486964500096563944422354048197338588115971939729712600268709304972950727308819486316060149302402086637918056792446501626997675241838285795166389090548799935275144407767502275724696861569903979107134513341986544479504837145053783870001974301394583815393729848966129017731297209825386913721247330695352001350853529676722459622941689044285607895043007640785362166617148499406209094360859937364577267394087629405655826644554094609577738317069069109927300508898543401407941712551826142180237905385656773217345869718971333747116269578730480179119456045276360418973271990264414559570918789002364971429145184192511163639923691415325947830202227198082550458874338159333992025917875762322428789077101541770822728282939729437243045247358471154194125388050107938572707408786231761616242734249722206728618214393308547695837939575982349446302492070403410061677657022118998872533858412346605400690697624781026042348696660804078827302383411185141443154119485721171147442435080817767774462322789234191969823017403486656307754512359130471692117598599856935499343903687848332502374641501507549480823137476011220007746524970661158373385266887106830873834958195336215765471253358380663289629432818146026497576530768044978727076819595467397854820427800159307429182349367015595784058560892070920159001736297761759223437787889245729213066993520758822515061807076581013486952209871933382721506962489607430039719278043075082549372527746264047298745204653880079773291935137168953671767798669196533494584418029376725025426949360658845587629775483203678254200294099929122541215969158919137737473688785442897221025835440571853954406037867814504911326240571938007722778862929886630307324019648266331549225815645255654677159210655010979757532756214956170540121639976349453390899556650704348226501825020217242619372337603304308602729747943274570650855505306523773617058098171665540448257026344574694463797443319691899564627744687450310319109888083272398362663190653748476690876497008094452262564497284448546502903782454269643083512143223849376386291498220967072644948985863085215018236276772285131679442111699565489648221442097051653806122144908212119250080639781012574232243466579632147203853841060610716769072525665920353912928527394598778276921853521372353117691429632492360796721266386788049593100883119668373868623882897797533616985911322574711119383912246710745831602169148534801352564088465744554624043955393285173175992316750287890891873538714372842813420012133847709188682745329240092656444287025591667403310778634149841576640542191643981555195764028218395095954905592258974828774551691588109045489032008690647340494652363023797743516111187515584580576842100912347539927422976302656224180644505181368374575512514648592323462214476733906186128014916029010652039519738010863291102665219740191124997588079085792313944095234280919367219246812261523623500292901425229742669831928127999243990455918000025830723716282089914041512049492107764871236080113325721723851250229647010345429272688490450567909110295371185618960339913360455061974276056383298122632364698399532435653360958089511272233733645688029667865052231768962357866029336140956651001318337765873449888199951812783693472285374616847397107136752442098909049716144789307024019602680530866665759974374067091275237000679593163593000131773769407051813482524732317589092207538727559748160981192753954117712076553688659932097204029294081116080207989212366657624385319627455679420779229302766165012413682404457303393359980404471968138857306673200917377454612618588891874725015711852044987974526625706725220943694129501563523074405526840748770361851220466472027253635325757071399753019364568258084667979995888932873392385276687758960018721520275772587189629037767794128492737139882311189582244836972607098579995062461776210026913476115954776351012864810841220308243198379089716898994351568156459187222633242743777489136490051859620903226590126304845629489293295685194150657698729496985104736351518200849264917873231052825274466090510650008884257882035708497343105119222824144634380267202164304624516240547203666165502306492594627743777760748508338278882012942746904746709363693869288434811034015060419751521606188645817196068229446312792212289222456958534770358438978724287244758808743660955224099463221571397894937057861563014014499115569641873794306010470810766501688333230161946759008035314202208563575594648714260015229390779581022551663142391506382319637052601650110315752854133448372678948334503437309199727521412157492530384031602690102305259086366971604646835337350836182306991980022674796907310433796232165582646042955834131081288039542066110724682164186394978225937591491325516311011334163393111519393900831950848120382570858184702592460028230646294523048320222898230304270814593094467169116563099053271488428339084936884649219839624468546290692970355067791801604539944397347880745975198950630093686950934363617197953396940345350025207331096918595343840637223182691155333061785978857284965985753418893061484454790951812574996548936201230348533500892549654557165022744154680913055696941096120941648704690641329876865425539007110564898818423354049070501519282580269907042262018657377458727446659648623922009980605332424503072439871919088291239536691581919529194851384199101660065274123471480164213207099573749271812268245986129392149501584792134563337460750508302599519046288306245122643623198209314814396836096517523290508325831958028261648393034926448385245349670424272146983846277536878637515094123269596585920643243965849674921802484053517804727024520103978189294702906283522991856395210834802110902462943057994269735870313989456429796117902715748357286696677455594676380591254107797705257119426116582134095262525364797386797064715508927082633544963894187844235500930550128358980881109212259266091277133210922396725933480398356034912086154933700855782663777809714549859592346901086802667929406028097582237993965639131382952936086819593968799032456379407901001092004287614740121728742961591926531149239221521954313660886353888448851404907447132077634013809895760077903110176925095119684688628441451446226057470613803224123392199028044652175361327563291443852863916443283329718635749852194858422496533450244059300064303117785290777449099708118045160853689648392142301040347491520462013180188304288076818876563067432227323820878418717931115846210903043807555887381351497542111424592733700590951360167284656979466071692815696245322609777560315978391941969342049900243308994169861267095982685734281142663946643741829317737089934727106583963380457401427574760646484517226064022959155671873897540708324348731367969723639099409495821753646815367044775889731004798822218303872206963097930991166484811877983022200781181588772680097527518788470934620120435592294589706465201451789148456616369302005164001319700395996227556857295710921285988709674500766884427063780423446319123753495348838142435378576610096875475317157209432810352298759705480188870861906648287812801583161987137152175242518830434928771201685593377483161286004018312805570636106050092888299157745068579581466852876816301772875867616906744034071586209220872854915869008199256206268665730290584273306887795143403519803203302054139604526321769317494434069651287074044595586359636288717900366998607536880914941609892149483316625195141460050618232222536452350885768168265803159732511453769078058993808124753340196577897831785454727084946610388921220109707887806026645726122654339250226378874552434416868742129407970530697106499382788369429333274409021633457493254900988091875346407980206078736417778645293693364713777121478659371986400310513202544699763562082546384265275789929146538706749835219353699710459543282702404479149023698757798436836646372853096175921165663520674033822416196555339574630337593459015182877888771748177290648997171265984477032642080129323375320202733930105366458413067929350576192932675448241530658446316842093319293646001170404126468808908857540865356227080430054828737629677656977485086730356170064463032766013376078961595844604006102389774698058397954830400336271019874799462801109713840831108986914807599969798786215973797540897233420896689165449901080193419055430930469759102293252210205307222514808203430576095178190454832927661105686460396012441821760526655906153117550961548958098045504322498872029144913227747499330652707482822667616664411861344789975583367634704114806992726770437317736324399530924005751143596030132249198738465561579510308560148147735274278104309347142521809933824944202826445948186525419719981151362772817586195867110715500447010815160173090187834953109285347053597554179803432545435933671902373989866155814348815328810769512513175544014867748019905446724938102968125463404830363142662762316079311424148361590366816357066231034848660923748892181153754462442844664796410122594731473435724431349870825916854126336678432395408446256516883516726026040835736982829269060434769695082545311159225532188644501750696005486216847266992439993213033242685393236151441316033988832087495906558301889782587012312112398211585465699512862840314648987479321272088646339751637344872352241385382824476935681564962592725255757273685519202549362663349329753409391717589175468659992934501383867381868324772241112607398094543834129452082055184152557048523577800452338178489562609214591030353651257643412317103798042472231470403267337748946819954797349185841445881041248628380818022014736497518346030577656438666374282792917459530241001302881493999538454028318144204272151557475441726958076920876663944377009834607000517592401449265297884747456025763355313476402363494547083983864150476995443380610834229879528725235712730331385771080777872022507094182056160436660334211677480966503261875736739885184143652395769764485810216308279991897389138220126065568143128632033772935474992810927751407984270223128198311244209584340415053476144067695159856655665881527240937035020746038147143962062575422534601096348161419378522854625251652308601212128910924664364751497974273120733396163005662183918326194631975070598893152283499940920693273000685005272779855483333310081933694634371718158449039879825790451117682804352228199855005641391060823927358522775185867318174253438951440889194908662436759038270640601102727726375787052177527049042416426047200973991107159916275728735693996759729839059667845247892761754047229530988817497783738762645519139023765540221116452704858312156820162030397528482712740159380898570717204377038410598520223309360626451924869441623934809081503935777955516602841769862520514061561083878503837664095519520157490910265792806669605682997743601643926559907517103718485499479172570966801553240708846689473261382317520310695260909787723046624557332509957345289410927769576027259151948104419174413649776077996054246362543818725237053433125468450161584010248534280140625442492429142674204771264355028621057298979271066583779297416258677754154901723409952595216546940637480187548775156857046058071292731352258050957248952381830459074266052029988632643291934872520286847573455787365004270153000455833973507264141200831418993260591165362812180389079667811442781085431635349290090846651059715859726418372975687909416630924464370278654650045093263533998877461510582894955384671732335015224382418041528067518607970989767951220954406172725090341019188423940593520539464040600885111610919598236227204833900120050740372112574449791792532505413737095560763805126277481416643801840507890661577133044324539658640145350632376983330559218533549487698023086792846115117396016127223470695031952811815132675001328812646369449744516406297569460362984980202871521281519029374757032658973764837157581012640737497391209890919937617679425768533989792197929522335179046158826214769932633617354062693256749507236367095736473711611359728168945839669972913872307009360743016223865034967950681307262132963386698449470025071805583419766494398725273292092762626997667935701933671404294143979139202554867990575107961228184723526392709635957278262958267933557787549583897160838350966112528572531938481901231150666199322494617398962610450047915796283793730904647680495457129155434718799870507313221151352473395310651228112880105001078029553279134908053529013318630311311099232269807033484125258824469851526001629137373256598185138326097508011880206891807193614338376019576503970015731158159166079929456060576867616343944706723668011983215136762322185997034564534139741595506555320857835365736005195865343131648875053203592689786454524248693135937234972049897354804545940213562015148865015830721051417914571967130791054890240976183793259375971615868652631961092993505145206200178279666123969788809256798528936251251954664676037753337328646268052921298039817541582051779097049515120563678776328352134180305646484343515202430779337683684419229728657151316405211655551405255276666720920817867956555781023395687995963659128561337598175488504576038032092419350118261821947432040037168745927026451787243160099828695170303337860918998588014664765138665707749678652549193207172863280321880123321849511905289426117537705431477537602528993914054289890718757771344449771245925446996960215480899296818356610746932182095228020515713689168928804426010653247911723978072626105038502865446521581267716896570664058583196147023646228290632846604315914138584255676455476096259640775664307135224670490943331240248659569860197338000044946157161059962952700407393380016963916108150573287020069665416663445936650590839090098392968398952520691690936578988947713766772709501543029518093305368874744805171356629204910871907354113966878179068035173461162055375501795776363889362626012923038245586535736173824521797813307630722233933655231540379144156187823905513717755273293300464680714626013855310234339581651979286691680814488199275879215375067006781083712341243648532405540495351554648934590522449128292479965790288659407380396832467888192632549486106561136355987243503472134540056765774588847321129660472484364875744356345558485664898048840809161382038532423564505195725123877546795277390785227023575036571396661058925980813573646542121163276054128334617768809709121560024478816232053848830006795976038591404650168642278784381996773036721756167015871950006549454901498453299576199286508682505359370516462423460550685562528191408890567370333100734662300904535178921367532113159970576427243332005972058141425061338590282417613302405501676643898605485037056999651249591176511172635085248532531987024099571423881829173396042819062180633736132720349704413904608550410788571821129118914138152401801657292461323095962861381345429385408901177887176827521520215288857201056120063565323442502964852331887576741631175080841479449376725468446666781780924329217708523004923362432933600333706158216442430940917355921448612809564741695528779882677019401944848137370779270562068179127107315170916173846640121239286195905962954315259479692304147217321433754028945892415764373429637826633069535324766550579807141275402305196981283977246891941148409906567941398282166529332997669136683609987487077118287376184147903923320712153600126949659784484137173212893593977712358394676263119114169337371142339938216376920592859536872932802256745928517444155562832149875382119202439291823622376663988317491891211783486227508456088490895654115525138610765058544927432799848959079274665426451808324350806804363780087899276559941148859206408100137607451019890743187383901394162846565181552724378959490884938300663058883255745903041050345637215275109196721719018561605445984366004376405740360667081661687216861065475682748402055463805201656729224293838637208759256144826536421080708918707273440027798072947223800483508379586139101980914674849188471113273801732731808029319480346971171702802463065498692967881340759410954314553269905097758427962673947534682463084335310320533019470433088016883611670684460809594259966152270382904756457275382785588544918211947673764030485560262308276967572243655530586850472337839902263800104887329994354727046061485004459752931799785781651728106227348715883275252727302152009193856731955763636800273853627233493091537701763711396335612254106870223787238610572093792028248125469273448851420955789291475048943444971307864589980541866219435635221132453429420505503341427809674749668158370546312407211936202714902438214275520999386587648691076003219202840477434944174459819617182036162854696409501650217394535959463111266411902812742379406592972321712209637778916980112340164472668248766240367122057915801040960066819334779618152921633433606636001848967150365202368166507096389209428769480788427667043733133030143336247033475917240305729310048247427225031163302930052451920114996945562743542792995718188152487778916286476139108098035792559074894286731440762899589100791502278989784488095924809910678462205439152956301679424523840222289578384647940662672850217795931317601349719633611214177755175280221857348688926642858488210986352204592320375703446489228769487384178779384061487039154288131078869928710321092095501428698447997781081693360080259125123983710857019742374287628397431657425357056003770593014318498861830735234608843528783402289117631036078890724524010055787347877460711571155052522528431142930904572998127667016931136356825438636272911402899573701309073517809253679132058746520004530619989840651182753914155463438267288035722901676265108833177929788788194399592996752258220483640939809767912760059554190756758286834609261557367238596902210651224438981647778714724870232982409614351486066890903095337967056847430422038055064920202541885303491941841063091581394409432027343715115884236822940185837541591751938886978407459997746052778948752429389364003844338302719947499547613640892214679808328948755237909989444670451007792490991872777682195210277288083914111029516449790629269923867443964668640026085273854936792699343102647699283025319782958747252259848690813635301273248219832551325565119445369548906603693127229560701992384545107281119220031320121315785063613753677787072096924207413699490395334928475952407769487383048347197173691808691217618513121604952967637734949201139065934556622399295600570521574670025878056291818224070267558833344824023218044601301007186506285961732089237410333272738391896244405872288018829114590905249308735072162651893067781564790523875128605942770197936620777788381705479558076202441117383833647772173833893892678694371232044362333428976825037345188116405588876487980656102268323411106881429552641275214817068125202531055874433840359343987369952379965718498520597145107296152247131904344673077810550276234249938549767234801426158226881489845677715308877919869891886602318107513016488480781851362571595911691457107803126666667755346894579571346023543515427722546441009936772571819906883843349100505390400529291535032806723628793268922093327927144191193441216383576893399005023183960630697283454728511779652776756461443966631190689060562254189578177589637887574369008629195665434661711008503162629103621119818752660810758011979831470277278087789533291645426557900137679760344703868699651827987929619146048398355540929901031814324109698101804855681929073444217904867273445813361285828704014359944876586673151390704759537929632323399555954647374906408905344686309453544845371341441468117842957262325397456759696278365271908345944020279457234480504562500165551534274912891832132660584024849146914958636723268563364752779954385765325430527402759665240736443083070729823618921198901205920236958570232835008227677616692401417571129889080191312281357788275989345835879893243034754278783161666744985082832203023976446277185672053990168056570397771423040368841858441806944461784547536681607797889530730597241555864818556413244104587878033036434745609902617396354832175348641867835571789518838179440812599682307100856425846215975091973940909484292151994882330936264113113296101637390747268596909584689438207882746365959722799645095684799162487145698883795574421780571889409187899190539988316774277489543214263203988860169632602029319805182956564301243105996538816756747767568013600530863094249838169383996733038720772707710381243002992520111134808940677063108390550630482453554485022423570130832017829740748164491205807957111117599146292202455158139458735577358833360198625717998007137598758529103438577354922913726091787335443478643295272290319950094073804039258498198954812013920397887366915397366980998185134776942953786415969711616126494181554652113684546043641562903125847830828570434606824319805750001094550360957063345945863369563082274822726822796068737063485084136209087148397303398833552610220338661963023061775687977858189281632089247220638383393710805303224332323792332282432327965546272300590350778791350717769822566056312375533732187823850758548889700893026912278161204323707657341916815365796138382668900069983117575467867815640839278808249750622595084594979360345367983607599445054392611985381898452047419127432231416528017845494878310633541463545705866991983358306226239229091414344326805752847149386671376417391723651496965131376207800195873715477472424531295697580794099373220640674697975809936676894169312389593834205835207830251215376414387254469490630866465333489333177462804202164084978993597217012402531043232869009685568191375589962120771339926351843065305106339564622556197622677688451086262696536146181705516380057588935070238908907578067739668143220550710038714287455973794941440818697901607385129297619253060933172455786468689432082554147249987217583062730733845007615175172515473267121517543643945429282925700126515543487188178423704547083198398826004144417450128040183213597211408352909363792443550973066289502711953711442117771710165751570365330360003448991857215358927387055800206079069233604137850924375740099825067222926219554766808799445005155463695837690941193725840315296721296973254674086922990796176984220121838096588200006630372124878424486811162171995786278622697766722934220155560997230070618801439856081280751773940837675808859542862132882145067525937095572368801852855128527129779687374174230350001836709836920944948041273949680559064049150039229761755702116998725791046686364579923287553793785899121371247946019749719410220858978716253297643330638215265190416854101440519538748255189643186275229605324944270947342185270334924825897857172826049253326216567353330198509347359264867424446437994352804426087899907923707453426262749759036570505165964173313456942729592350168090593002234671721311646494706409942650439558486784565639507828093784431152838035088779232363201639444817031118858676576013757167347660758476133967349787075761983467675930092462612197457304011414846774275791664612080583104064346903577889846734032232449347493785502837992977648168002043660375541979884390967520219403873377618014274516990201656724485117992029333424357490780574961810412014565288128709159185241570041665765636892564844641681210856000068710051483806438607773726895238086481834479455162540539220518803821954090983621652021518804418303582938909769743918793102281520182698218126011055846488410111045948842475773470703621190895955392508871955876114089575816140737894478126041144642658685448284434675971080797265671776979776665411547469427113002583035290560383651269319743108683986162638744696399257500269417389277521340119293763025429998406204634797770364485342344371575034552416825410217297331732921353693639220934473886774711912203651611226872382091822870951114452212195223352667023621123851154791406480052418650927570694854787378107673847836377771371692617217960648452625349533766067887382028984108765950359546655526193250702591240406870679056144782719356087281191284826048760716222412507855458330817399094865233057059922276175145484466145056787362599958190256936017934578653811183963570747430448177833214860652610751405016970458152508518561132666886019047954187538773830444269476001677286413847653040107520640166463134031059462984766047210010013154393970287263247820222061815658417993183723580267334202068873435675264972803609133236110179389553363034714684966857584305173473064948148512927200494138493485695451838602415566038149357004525098740292111413411477907524735134495305165965634278573934188661374916318490261611811877330096615335684198928267584878415064725736519854969515334391483551596242880900787376425307232601552110239848395953148046041027455868536568765855091842801192974692028213074116245491710502481113259048308147044157559522753214787506752182801207378867998299813987322294190218425439315232940778570719254525032685140225539540407431513277080461415504155556762597894903149737889676891747246214748121860101479812648235723146158968460445731247020700108067414911401115917586007810050301186061783429189327209953000120938135289811149375214457486717530664083764430930911369507002758084603162951206921163323468091070556739816557314088334064081516264976004658663228902250541297439201791635162765364158820577807632705428869561799780028236064927984622417440634590759802447052113671278631516032222327869908769248490941149068831117214215251870144054977411300528576976814019204604802867000778866026484383916643184685006674020898724706713718682002972175658111016566605503944128725203398076063722411360074862928908733489046311163393360613236886124185773531457258570565135360380458843526838635152376853113740478940750914026686201282655244097102444431233001286188709339434252288444703008124259960290852950897894481074192781498737034339559339805170843135639035532035522401939051389035261799460689135990953083811872333693015334086724639287989470960621135716071408240756446978070608091420254272619059745462885563740558402664966773453061719010488936832456199188892835688564912128089827336290635569986371975021236239833614490721372431891071858510070005488312422191704468075999412058397605230204690806841903158121467606593996947136429203439896303722282002169425988879953279272621533394183903227095388144817347650915112028161930132753431798829767343839211398578524736837926341690598009999751699079692901052120294742056329981085914766356088552150549537000021549044105901464595047215543119738573726459486741589145247421467809966121760454956737238580835133996897544830118098518201078430253869786407948036124203169658417106257501187967550630584089127448091811794513397644416147404753024945663455227490791190324101296941643678228580039428252268064373844792623403644274926216635741217741397763401017594602233656879809912285106745628247067623691329641204446553284878134401575414956012027263086992196597380181335065352809862028465947264158715814554827716322057338379145618722915357257139329175020275191288355104388080321985742511901608376238659648494770944176937541139043198768629642454871937677952817784572603040518263071791074741659945468718510504029724026612903786160407148112245487282771967753677929912996181005562904404674079550392814425797971658617927936951830150349907516385905835995729261512801824474205643455135367765894875551133425355601093531785999364860779309630402918771666107496651692896735057861990300291549601774540664427662377048388709488529340719485652317301029452139372865906484103652420531388087467768169483312973704114370597791079491318617324158787673045856665435892726599369248353421200713701491627632153156086877944923344932649495268793985387460757864488075408855141489741947581532529869542125070438510233205513502007142501783956206122704069969180838134689748550184940584387880421555993907413364398765567997635033240205110502481188393080719915955105907007218530935823838747725250029461879187911961009403292569344466900792794054048673747986485362969879921100293774572303184017949380474049690726666271157837296937335413235330638298937568227650489877200868216249668379079989497856648878489361572401290403892561728647424931588145788940566888643299537692060281343099315782257838813335273509106960164097639736141433713017880739970895807759821844119542016000045691111996136666500720140415783825624504394599052402209500994758257138098754498347267638767088001202142829101601532598670767948382072400300445867076172436599024873702129975417263735319534389869097951830115942895367496248886215153555706212179901416500932875325257568633002435905446715625988841471844038683086192917985998095725667160912038567057643930256004887107970798955091669720418567164544101981130770637036014690595526448712517875824108214027574124889180495973327539837233833816275514084159652681234702531821935807405641997599044168836007334727326538032851961760200629092621828997573153644915510483606336420228781378217972757318017745401004948965395684253557648898844809918258197563720754187078267642588753140046933012265298439627566578053198245807216511556520676845739741856811041426070339488527401877630033964512765376365080389546114441551586013133055384025906326897687726309710643786361622154212094708116203106948382204182649600674425274470703714129203814956286220439425404723816119877121570688952399737768810713736224407627826326946479444166493151618345639500930838669689271192807101866806089723198772849564773562136442211140970906573595242534924808217645853467388804222323090256013525637130141254683845052452159435192070236727806013074693352971171307756202261278690993329411768209817134150437486311322154848225277769229252578585524636559883429391426456180644513713288768608079979821363140353399602411717231853889967704936372504920818229281967114211585573358400612152336977901774484487915785020879552119607536066967602777393561554767476157865169971277728214503680084230961252947267081168000998875125765216663198282004153739063749098445385767352579969420034545048415813179852479051369296027483980713974583973775198849040678045846812953129962432725153951599621241835847877705002665996530328407124612829771092270766317539436284294802276919015300081855722313261523604740284351342695657174136382071997604558968419934042261395789293926536903109538039339893267575637748296099095444247071847726014615323414599349148340468945599261152009202679925067642090747211653443630847141586649263729471170675994320974509695264141301804024578438288878480814332568917807007886844225845684353182316163104164083301299219157696539314424084462935259283734456901876694814087255521441551323106889012544587901181483120809153829402425644136473018025309858239702623446521644431157150680820840988800185684779479132604307077090468006802725938513108210941097173152753917889463835679863416909740655088805270820079941398129606769758810884163433046039847845645115296948553090935996555652152639573048904476929038568494777256591918965086312046498991020369473805688117015254332708593063921940049215359444469095622409556601338265700640438289143305751793253616555553763835863051173617170813103196623729265303032508506163955912266771674641315712542392057568935052443380773390847699908588491076176042556329782269358594786764840280943653363302740565149795519884811760414867454114252812249296988144945281483594561603299769803013667827352538882017063898957046249075607329434740895562225809032479497791615109697013008134666855968093419649230510718226311100437250984183164981568517264531404612342491224773540423225261965182246074421758697159149156764894247404477497223295915039108255791166957560278118076153586124406198731167363615710446242238844135074592911628066962871816166560583892719865572216008718717236846024814176154344831032033932898972831529884013592794792348789250119440586530739514962169872154715231841448233371795634899942398993998353720936546087570496918929109207275026615737042760068068622882538268071417503263413671007245720150663604773395954378988772600655099717483849747606072723210750871224226659679977332021754460111353438920123604318837004152062589525516638781684442898028313883248592193053682867194352151384442891303961676095536576278585899252445248591456680272026980704427248703781145971975083174201578849067114034991521723709467729451287884461434819732125422338504814086657117146153785478851350122162610463011044894698745769607118961945036297146491256745444739168656007977451449230375412072798200533488895742721337183267161928855887975812238520288545175449525531788797313582822084971222002173239771530894496332599176905535817151728693688025965378914083889320931681350036629112543094735275887319689403024975371846024812570484147266385158791582862116717240026598072814331196200829389087267782687986396729129835441793419057633245912006563076110737202791004964666483897280018858741390118098716482559638716587302612308283252745148949315277227486909011344479331106006490446583275125110589850316029714328623491549118380415250389275615898516448649277966744075865373126829584659732345656892481619390280916665498044166167473683526970953055585577655834650253708356528418010593534322274046078308092361279000585516228455519379136380565678798127186296488880612154107294699822449647963519031728413282771026315733442349525059845087746653118329396068753492760328740084388863492378451445392573645072524944025345327935884475925886415335714787551387341386981278473242885751036984184117009591263683209670609698258623101836033406964444709293634458630542646102211493941939053554004980315575239239528099567959786278373140507732046104633246252453347346822512468434355668550246056330438187399445152549999024284474421235539340379864758200524622300065873808505542906087063869544218927078536733181709564079013446743571534562957737701492445047638877810006689176571365566996135860593073119098614592599876150953407011371338739603730411707481507387390451660732634732381075373740768982074151201421530345543063799076782007098633827236312122430984120975816476656649835671153517253867880987725434668670864759494276506363124000250505902618102781112193239566036460513145907642720560723174625862318253992457332628263176217544909118537716822587707963434846573461688867966625366681797630473845244870452140276353347119503538219006469762206553107327572951497615118240141568142285702855554598148794672395821020065464074424482238375582473167215783925201044245006915927121792537493726438133852937663664598771624839498143924033842153137129905433847083054993409502417495873719719616374371182638787556655632475811641813892940386219538749514170022396697629284380513993188253743627268074912857238042458012288388353586145102406883137648451232731481740319117056321999410721303684359245424885652570228342847973601542725516565371814493512806979435427181940311127263978984492650401295147037450497806655901688020960858786586279426949414955968782491495093670029911593612444729891454424331742562990666013832315439426552294316308714447919628053132698438228070981402264201229658124726265908580486414168712454113651682869751164286142054950160783819671089008993818031164050222147357959076494266564180005267846761421993835147415435462842160824548049589620563300068870183455707037640245559625472945371954904413359613020757280162434703215669747594688404112570717991432985723074747085473020252033451230228868927264646811090290028953799048085509007297853190834030341240397520174194234516743272654402961802657125087622843717019026001626080980877160668806933728788419743718823336755504180023220589635092308444613615997312718338781736251314523012888176118751675301711361193238106341201442476666227429661840847326362590667530971068184275728325140806796290774582404316840917582716618401110651138019032208831055721823897966977643109184849649543507752327960953956247858314061120028488687558802759669172902018722103481366473094248290998398170322175227283474745482082635608972695727791070420340933242698987186542860647463132867242601619028884384133282798431215961992352333521455242278013061233757299959925985638873123716510841621814132209068749777527095794472514997604616181531391018921545996068866171451837172186327509753208044939708773499907043980388686257286793916896515793548119640253751586282600616149959480094294108699408985208668856650906551860855576236750501326564122133821340743298993834301658815631930729352764600318181399276717056497399991588524757926035659731509940115685315195443724186546797989343528097928021999381598980554925369392427948007152095667150704160716420569294286425762930261925002612008928623051517418514537231785253453681944338901988647773590598024665282751743273828965939173596215054085394494479648197124380317215808710945868165999896650329140781531308665101502363518199686817442160500702575242385352036422305688184186488950745095240764500828065454624564492304869728484243461882002105126649075500761394562364080367474910495781647996322720911733790029611009275514653614985871082288133284823877348662128707633566392192697135850038029900620750788304965379448629327450797179733872589543582104824235142944731533594758195545679803826799111803986505690642034095575678844276421255188766605698075873806769816042498109047072810589554631593179387655398528161212832175125091994251715915038918466844532273664819598637723965567625066893625020336394180347325384664295764735566899871489198653800292207265294526666808904892671239525210777164354890256694277711232226922855562359549384273189348588798952022168606449264128036769870674892428371078249072930650134027028136187445271542184715327634065660403479626700772903524744842776130481246676623410290878644407873170200844485920277703405070614020223664658947528961706886956363794853486264764251929366450182055994623019091241183256065207862698775400760748469857362756324318578904162956640631856332651919663109101491014388823047868799562716361882966803186096163734840977983436105405367412620390145129289200991769094647940048029633214758354758101871908826101163164654656024980574817423006368527837360214162392025674925719352794492260048682195732169380853726708217459130064172552291271327530968122381169253387682662476486946545422384212638590599717260097753688758748464956812183453430755956230558655929049590220018898497150592724949468316799298348109752215512745918219329697310959141799439825062360442978832128818837971664493862775225076531601428555647169808461021587392080482106234341860395142959747581915350590203990848137011137493932253499394981095729943260123055310085457096068791967920229442304808276135839000762063147834102985439622949002565251404535251168062801122582007572356032563430616235667156451401475702119614625988904040943704602930826296762821338848411741957454285782428140066235659586489701817093919571019953995234099152371328690166168674408433962202836559276422565112399078477312089314647579415093917897200908449236705848872035600679115587628968031581086330194519472048015220498601042634806281492469390240238425869326551357861707362717899980477508847682295996283938318779651154379221557250524092029188847707676851640157776241744685219533767226280506151082583600044785844818801826553863253409034921951033928864419976405583888772409962700619446081729856981994362757264583700304839887424769330246688969015357857564265738663838015995903932231347112996687683348506464087694623123694996258973731043102089039968337284938933977069477520684713967788698768340983285742593206589578258555160653088679326415616151446475706059572667002562752568209952549853840106918369687874019441092381233078908036250310747931022726830015295059501321752335157478163864477750549999312382227671073310871023722516486343536434102510827158665924487920129072108200283145338186439863107308885674694257468721250957949311220813407589881401020194680972213088706445773701817766625054601962057720641720121057213789259055556321372415471757521336271468973599200742737037538976156385045680835911199354558642944390453478725732636603332084677954282260528206543567662606470893408580212550981748858654665527305273727100450201586831823012237199007454553497832915341408438104602091822155746656060327008408976435586632624462649655841612686496622614492181276245643234758197234308326459172768459668004688442945237315098316478562584410358376609616674564823619933757227546102595881518972709518547126521053654164777878888054581657831000822181163084562302289028583946804091196412183398994975396072945716010309822553361380496404355702857439279319942242495885410736655683906031920707936557420034536545646034638576445906538641089082925707163948045494201036018414064915372024510210133014031613762351526854556148473309308066676678029374552685736186951224639798906571116573966237615167448308192158088892395938920001538549720193602517966888256915827801483134997731495163332736426721515404987290125735238386781713638757648872679936779647929738449935671670051205463643841149699074029477177334341499082208355996546988492175390902856799762768856750038904322342454723556480638018667123076424122870646586558010834953170531197864500296490200758241409562088321912403659388187698465720294724648766153047751585707093122210176338537498853662965807497969930231286696730549244130159995226966578354836837287435056370795137573792775175527974890297793555611825839268535922814394184161439639588876147284079783624153779675910874397561040638178251266691327512262532478093587081672595426743075612899955905466322713277240260248210729134399659398480941313893899187371642641170222732648072652053314797589556600485690922165875448959756505784802841955713406415357343511488131845643652286785681844313860589628599702519250624841128502916315772424798737717221372436120022760165156157841866286659976657234747266247374359523767456283282552258372906353981884168567784894830313944255848508509442931045906937357667791348904273625454387651321892953137073389977043392901345624040266356011139430395549631841455000947740408825873825173664646481176806291333113520866692835782414671992521367695404964280480570085902662722338222547972792893198065689103057752113842763778279183634451729441666148760018169579232834185936749528263277112680594946691879690534392991707402875441027623857303950226186481045999453224127482212278466379607279140067507580196293765745105704679967809014225436535886889072275722259057057436370058976637893784437543195594900617864214675392225267975442933802319169664713012368327535921311520671425173019219779215151792466995930012327933258105977248164211906464106754504730364914826999833914422844748383632872939596704008384887174819465705663990552990034662874871997533217681142252964513860410950191117408567594705127662434600074573086876206143243201828069643464626575249995911699844905443798256818443749332071144426438237851525341704837022186386575003635541058148867093210677052974548107816199845950450481066240172574282862486225051001098943871808797526060166879672098381234179523392699715853152303167158077097937559719966250402176522553256064740844315417320349976505553302449622737767328849833295635011721385526334588502146859947299998489147389148139235467154959638264313338090935736698348139007507347137567021885975136545397971341709010004840221008811963885045263247170815201022012614652230264558735135847753927062305879496911888146868239252557129442654448892643244773166203202177823275379230243979017910704406475317979404461582391487011223637431466799397318466168038431192298239367368801607297735539029348379097892129307993129251361629025180430536318823872470247912851057941439620753096113655230555122590677767339381090801351307071335757214592133250501020964545670050264199214328214656623515721703579749058318021697675280958753084423016269693159029253083681625502947548034510068441131583967366224089476058383327491370385304339651302416111006569565765130669792209081623842011723226126642995784153988627243542629515058772636694435013454361260692488656275366949451700435884542406258294517759964025188596067117614084824294779428098552317423263457182412667998323290132219892346745346352370968424932779022442882872514200937148964612947697382192458675092446480994685638452151619159063767192690970233119868442344497634181396962464377950210711335460654907003451252477657052248938474055371537340500881086229794836058185535133079131043175394422281017928606146790225042434761283884594988877192751186935029370039807922033397094653344024887500250377848389600081662704123865477664753928429235002175901869183436810916677425737160077624065212422345105691510306893474890446573490728375680081953127849119766892202806786368352933297503568895265957897959084619085395039400045820038476755106730413063854820584823625298547366930621901940149822136083086037797679040081748605081240976756921325429564635279602932874870100863643850243420869161671301646023296607934104107927813788527424674217509438715184975802979544876866070534000830466936551786022478107762998104539846716375735864378338547989375213084747058611578205641647222763176985039346372053925943710188303425758318269907988712278080777037656805063271593762515408859476241652208739373699646597958623060001057881695278762233430310060477758534113600260733150235959960983608657455345972029442967810502644703882711816923717184699339111618671531188293580404250853802723445733521658919315570136550756766738585856029858978506821031724787660491989783831936066854221198678571953202295578748669985201154056620593201930139703904452096383237765750725581520055174811479913351079365533072570383200949681488389916873732735833338082944909882770390822259121482090959293997763861034268192953142465732444926505483755099077314604862040445152456423587242959400080433084401225484726296978991854401289108586927254741020413424708416287158199734904156685868975966692083946159261028547483159507615615564503606985548863890170363617736419030977674703383923727206025360826822860552550117734214043863413647294291226608039050402449241627380234126992711597821844974970904078057830263763679413546372949634372168244304904448201531957998915178432404948552453291916670950484638231750948233578942670033907200036453058728176562220470481258386425345284267145906787261040630104436858143334371996968969045950217499372208335487902077647548091049835963488146002367678987182426944309553669011858190003818414924753918256055806156002330231025813167993882866497555212444953127801824426451636449397783165447698925295549110603723908809292495206798732857484671283680864943773789215888044714481798489899844735631895406240546801926989702832651484386766979708436284840089134946467478655518581811533209363485436860422243405569011037454419745239798174046249547931037953892292114646353436542687932771627171597138243303018743866058259082869629999354315084837440911105047596221158935145914546094777703556597017229616508802596444554384925198924294762819436512571188658852662865937372674967822639405381462071665130000040576054723450359705495922018638638398334429990832880162501003100192116460757142580285214805730508099055528312662758168067476506557789441061941358145119025135631716539424370091458564080701788987150619208162593943632207124997588817927140353148545128958000582922453428988238246815760017547872403472743881842763144916808758358838961348984465239944332536779425883008497846769887734287926300010499109707949035920979066600145049090582236115967267239278840008550090973576060875663222339663499870111505566459479526230707771000315206964118080729321877520003237963109835263807784631395648132175178129442529217697349599417471432043481684126796968874704826069699917363627324349383025042068613322243928243335823634201555351055499138658317874876510778615983429570733411892004797701547622381208883192284141354601560202033187739007564795107021717009124509910239072592476803426035613396604886666737308456871457826815301477669390062511315157562999986970757449077228119793818558425924168042139246187336224951261299112974441654168270471949095988043858564389548903750609407547239463382655505264076254862990422012401075311416246179187161442712050075201912701354182182517646257608296773472322958136343192990478994307193152220419061972882051856736520686409267961579784041767303709707244323055193324690815377644923442308183141504942876039943733733002375382233857922195992080183604322753288547606210719922691326676599241539064983216305147511824964115505684687254214472129957471904365501040257668561716321177315640355350535229127633250031753276616431022384574025585214356961345484565493762673975069215541742006442690297251648941956155476519467299835975815135883458487628641079593044996888886196823371452851160144031463095058611013071620310453886416745355406757365540849720374033294699596092119311467430758043375998430021217074478982028756037288380784437895898200348256800897558655264571577931036981948726818541743134292685296864418521834052468790060092317081430884988626057630723383078442588872112530032835414326355379410450219143644956504263968352412881725017956920561689358170274384314356014426205098428109380869335839197536056780363351554801897378031176061789626798873284247652264780524368782673629670477989362955015808461414186035557729364954807175909503528067900369881229404764545483418306143861243589883484330741498457317164491633347474754610931858017344297315440721279245295600251429204314522018465130364647323074738814190049004986318382595911003893010413446787522199006632847996971226670057074139762235133532417596112986600664050893951147625414415971070619512072832285507037189575376423819764370458875978452510555716708085540092644199361055012349152870198794445560383019946116267619333026844666766488581599059024196825758676968663203838255370535754083717669503429786310335112139059734926887625897921578182345132802921641846015640496543919887570123880908313317858268603887619297025721344811514911111852051816388335021748125973694920165912679174275253669499270719879473305710243265269391933111907554690559148385709264639752190428591552487580243256381636174004526200428622748281979327449884406456546226046964508302615529141247229483842916266376160047359193230955724500407010827819523637715089311143613705665579691961550319235541421548220682554670003636969503091801472582578331217787199167214176329010489465125226912200025883694195274949096384584487259113195439613653948900829265009591059919349924164164372328550690252316308339692357449950538879767381917581899752573884321705265116184393285802885358768004446861794583908637973170336648001336331642586162420055597013558215249439192774640724263933917939552459909471173809979765052584920934890606295854706159548642776578566618642651137727971401339669125863012472852249971589336855940785590154109611069338963096422529279798412588822521321700523020956177992544993395696656626368772574206781937391793076669244299772519285874077283983676777087931034312527073503169622523694492648883496786044372179102450420431318949841584180381669199332889875284526619404061752662707942587260708145001950180466018434355705117430362476103563065137275591720634692103692325855718103320407961390537015658468562227073437766612484416108695994475288527171571520608863034889527285744582825119140866319447848548862450713180253599033852104446788112143071795348133916617975585696095401263879080583833677646316220664832346224512769688740291764080284313289807090585547919911915105353555556492237695168561779109170956427714294203747725628620896130433007336940330603585670717572018359606116893851089442168769619117216828255565602125168700367071762673674651918400272213714585761640277919574582911571918486034036930131453272258239706830612857694555285587089606515872139479364558303240210065665546812016070204120547213288255711346532643709025333268934192032777488970961751452190518586316599761276716878159355510382258993072425776325937678744909029497428426384528909116357445132348593525133183197208506438860066083636320504915733774071095473559679853205686507435930355483428238725916334420918818954674517510338638543783864501533574437619563484479210598620087851477031616337889365308235635704772702052313057614622041794771322074834732068728041858883308291867035114733100063659620711440367383128646305323399388327461179150647669571266642731137210850154769283327786722190152138831835101293188920532647841099792202497751399370799876317157475205675476619812900391855481970547339788004547303505465854624151355471233804055706232613590011404958832139877306501683231760330886504164185438537806395302453217723133750174737055928633234921911609597914979014557169588270989007499898880505070792875012165156986779537045726724164366618015473380515688572639425788331606454721301923729666636053680054032746939474101843175642893788137530124489622823648974173310235997424673046237719951893304124812792306892332468750992610601857748848750235221464641233720937903307273030399147666130826944351953709142767387147289561863924986884692421990702064264715662604524881020628787284991917155251833059604087987927752000477588016832148043911614140516784797096397596781705587679404032914325225804038504456293957201873461822467718148781300220662731234302402973091665559724560300260335919116112806743170442537688155266272232387703427608001705293910605448771614213572985135752582386187152844855310012131200805592661429959752229308421399575166376604222143149012872890280464084523017213418469134428368929164034746635395317975893781002137870340510534470270682385542020212967940874702955026576266741486448717374238994132012705250402542453283408360908785862907427209922378141795260503153167117335413433132798307703945374507886630668401977710732799642555203455795315387995608879348128012871835824360112275416656848800318282071437374509021595222247525238436804940210416454904959965789788735455111339224919574635737264141885705963220894647623312410258930670600487731517398623387212664335309349887075703281160387983005620895335872440762325601649390232022891578491645483315207378768655469112744190650131149916236921231456060828251195499249028664674612777070994018460252488625408519941316386658012111126502349684437908862857288844430145631160044285375848916892683071340515487704512912755253506267562652067028279595480196188434730324703768001709867909357926160828700454020359206246210830960566322176796142207040487428219769435511088140990011674184622853789808997592726416761634267895511837616423472603242269011970656144924035613057986001903814249722408148562670077532936752399866480054223694971106991667637983301273764096804116514095244280126910539677661116153287699929258713727220400611577272968068332438474394093440546083994364101757072376414493338984588311973279418927576481469948680026067172008500685818489096804820282680292522879275298396540540394833913391526454174614434593962419007631651221377122970676937051771117853127427564414092047625253211830448681390349637008800280895722710846745559239169258284952232883789469907127829348658055105496221380183614849704970777370700147645595928017134093896617150821263708681608761570414959216321528356431584284037650459154681528228341001655184016825922462415981296592033930983761812597878348495466305093091281695031945073323380665295782512043417000286614626857583731140123341052616870622740590388049218969997657135441713341091031660376033322860450237426856233936970331671927454791500285460982670988260780691231132862549216487975451070838963465477877263107874575177830849220093600597153777410769209775803674897314362772535313302339103718517298070459079203690012982713135467272392254905381730122646588390270785329380759281298620311704578638886297965218561676695095182891432127102850095352518074853438528778351763978170177871244728625646411415694414364398948873975892660658849422101112668419366230915008264226039333903773261800927603550507339003381097110404386488128776093090925027848848417601517446108066206616640657996025454445388337527083859633536426778621866583062859062566810062337135822839601252608335220864757168043404217893047919691232227524109163326703977865190039009897914909663105984571788616487695178922285724004793312438772845403580009856134985114788534426166963665039483855779120723617225348226220123463261416648112296929140207926657784474959351623547329597206576637156993302264832400769646697974982025569606560215688997596157992151260162695631235039631594329476873236954915149732087248631647335843483989295960781079575728692923279812372654299736000635762119328035263134573681887468390468850509488412878355611595455401535879223448462181779910749734114803222919698563447061571253054763188207980601229481006909269963885925510015998539253728448121597583829944748468227335452891567443160522845072300109846761884262355611966303131300486739024698641869159727050074945486925518264765930999259014738046008259547311351110996302596755950379722524161122334930438953896778227419131792068661017331282979133164711815231219297294332325829905813167164975482152709660915523698915020244300354160774703328468672525194177752066699375894171698573342683428586791905794278294695800026022366002853979471945325376947216889746528591945960768835126571815786887379769055718339180144149369068755174515912990820895761507917735186684108933026443140445591978661658116610946613426451890064848935817882227568378538987599854636978245385944924028401781379433399148843044822158229582349537101800477805471679319900620460322089894674927366471702698772456534992679921491660208672584725338518023910577767628817928043588065382412369189546247406905766514900437117248099481723131581782652269087699754988792129128011288684396854114716680683465307981459211198496931302483932575228793216594994316401229707764363777047328656010070308870067170604805380447614036235346320736686428892897966732677847138550926404580303139220064381625630017808395719604059183530837695969766007941338394066056527326158280886790837977894712143820396642768254807474429821313128193423912949988575704123647463649189863246207501483367012278534590075951601401977008912222039118272611532668741584307723186314006649374238587484600574235587225969293835990165044602026930479117727064104913844074540005981107647467141037260529698371189531458423975457475503811229129833650939402145286669160466449188026340024413201544111070106484138805624292749868225472814833520317953728574464207181388420683622484787940765123220558258834891183883707353353923072915473323684922377001583267790021897535371652631543919332385619386449228802863366296116770612133311126305973993272081519414832863799325878094401405251754622299184326722405183021876562792633845659102548358294791803836558608601353907247512847927695416006559810814137030021034532587920713466458269413550406510296031441909987887616935129241017758949721252113511395475916271067067291865159055829163949483866333255205257308429578897378083830986322957774722668964078764231792785603576105097507077118743204095330008333366006166483053949952615602178676290132417025524116475694189381694141953748600492126650675792874655248974790992849323296350790644539438235659380034049676665247286122782259467933792808466964937420327956204693670191354499938044381831487732937247343134740632943893258836818470317276515624979390005812607361572265019691880010653156862119401428028391188104432977371394090036531757178505249967144500725714292881749605576807379331378196711083814827387640704818077730432595492719309278516822344603031611605206348957919150135225507400987922604190838784203444704050579100846412187021393683443470350596115220700623798991690519854419650353183217366257830549692480105986601905089561774525430377865497732356716628788283255630038122525821315981467921739227505982905567150250957653586536844755778393199145975545100319982931762089592819040690900846020067748361910503552774088929470489418706075213317248657821158220518179424607240109843826444659342701979825605035407477337133736223084002959359036169242999131517691739860057427006347322643024703099624705285445736678876234335600539738986208583997216796230106667504144983974404365073212616480272103032559294815709806722897528062464340506415122982472975227353256468423919819387216537941292356344104449843606566218497368235496919111153392588617121438558631519144970182019796194372889856066717964008150596939872793595356709304820288425965562700626212370966275365048695790599975357161285685581033082680001424821432827341408986518296261147331193934956948505564760090823214582650824656841107467228530827359806376155914740108685544795629256408089907818027196941708704313455933708206342998763474170359053480172151980544649933223847902266434255294207368410460629333113463006855715771404525242227051486710303619864404507176783780870497395303250247607109735344189601089513911875292418722171061214193149224842621095964178071534968888675668206258534990213222560183170630860250508036460329829096343987378276393358380818887462703889556761016014527862628428074088987840675528162058555416804971068192585174517579115452376713507041159001473022621749800522720897302218289384777201887981995941975010150409353455533474992614622365779999844532469939463836818664114636502700682986703026093111494713897676506900446128957855124116241305578195319772897074098602552754929362087284025988686575721055607517785915999791947825314031751149916454530114485870472776596900028891176864216035110321389229463837723480966026831311325544337038258392102382605346140578608680493650110347530919848868705200287782816914354587979153168906520280309379526343796227386749487144392624133902178710801889819393289134692948432834287070697049923201653449582777986704464927842400337726420657114179300672521555982104035429078289551387330837497285300156615881222745788729918404238171723012882131794730979399222358367363227642468522778071634616322084545597193965312169128486629184951731639886424171296063814965105240110217050070005267646938924798756344190629548892230259607879072165597813107805714091120131115230199364096074654658847786768745307350393099692042003643093215245415473732779544762497080454631392936138684299273311962491082733778077462444979156637111015870298255014284898299015352956527463612200280483384268081689568811865211328784387909450050690040250759826872741659543939367164794733135500341280758783377750141504112039665860011060344873776034171488546083599697958468216317554630980419649545194111711029364140660056355487883425906735746780565520963566026367803644622807054645299692900926875558661272512761691346885669464017651447950417719741032074887377182340248635163432494236029192070507652921037596935385888116040771130018950335528834934713605699860953090209126424466692073954140215120368354738016856909540452923673319245761003223593752102867869075407758749176840132050877890351690949446427302025680966579197086567455845985386583077697831243256216751446696929028531199722283395583686236926651816184685764199069882033505445253896628014691619710457127497656982776677525085483832875927129442169953252547337506134452705556845687998091716883300855319082306575055037013503897230331970138639720223015445652073409568585069082241065780839306449657009606743102278888989459489638938449753192292127417524254308898593792242820499824964035239462257448896711532517136481795070584487982708867190653023160759840176887850331276979622608941849884583264214294474224771083699070861307928822988253076419528808882251370375635540266889338578914391363878407665657671133596739193254188819404249729218412313193834681880773918710880709971750562157273400220000589803117829679639942489355429351205859606342138262824953801493112017357021163538924837794863103026020613668988074504930141816155452858055055814253331583602433903499204663531767825520744998388767090499889944234957994267858177108395554240426562377143695829529094195286816764365496477307492187288556792586426732996186605254235665656078837734679248025727342990937268498834477125783714179668330945827460544677893485816987769581609373142096976767520189263595459148826017070662405858195167422699948945853018278423386364168511766302337177150638587797092280046756174071401995237833086222642341000656494187576067566388310874903185820549371561634472511208397197815214941104602409153396023524775105572894074251581166077288484436689013379202672641806206305852819501020146843781652102816281215330285712150580091024102201838144369384886515046052661376892714891077643208905266090715201750404429730740911348968114256926094187778490271813100742893162919851182423542078246580829924308772568981843359761747255219290482881038685297165645733270175975767657977667910728387179114832415013221630509462467895283055016252773562358409542115336284819231775130647533462238353207199247507653008535912293978720313922395218269743210779382808379720965865658437680847627579797964880978370490560388241491473163110579353409221307127140407471503734727367781244028535466948543556013400904678715344974966261882408509274221411794336101114518245312098656058059024235869081487192962946185031571808275605861216922958821637827996206212725663175477739339679536685150217733645487784718340801198859366272996277958814114340147789207778094566325161960390760278720990179925154724743030273490145561845243092920111948608790593510182900865781398486800841183700188970649411039362711281664998154404411907449786688556809219026168313543371789863806655568742203563984188988628295782442153530795737617784893956782849804855462439547301082644703439211496776981752831179482077361478540267409623093277924293640407152291596855629129922683890600910918313382414394336970763389161462466080443013157244956837776484240247307713877641058033316590388418257014145126207573908480900463419241479170910948575326992956844652537043800646272479417079861555609530364592627783818668438653261915672737325047008582101818970304220867655314302364047478031550031874674481905416758229623118795914318955421665009859027005398860857544487690845000816792622787531126679233548988674438604709471805644234169009317848316056254161940971898478364268044444324444973347388268593847004419643450619905887303644377573178485167191815089010934529539913530159262994845423348131344305463625394197460008715310806906079762925686209267684069286281005389691214720912584822023405283514665955314620369626226245245025496097278746056481713511144203613784131818347360729129989709467805338424340477873967263542031304938770285583669429916470056054147572201725924114462255561695458742284987443328049107713622766141177761953950122554921405756054424622714664700859842317982529574351181565392619309674577918868359746409296028270565316328159270382050333209546476557085853196337362721396132566426665637222538203327880207991747492886812316365852089903709004957128583785739734846311724512747558786667251504691057670482658438095848456325570901452968486877880725157459749839539863896952738212431060336007626662053190000242475232118973380376819753684024159051612029113154834263264722443531803393644940100273797230961832005445296245072430136926138908658138227022939247233812552374724445009728922203616544626532993828065871760129309502018825633167749989103722269059003186160944103841188135061506790855012395858274509934536639036447430799886311522541599426136489965621460457132731441603943937073689738384955993531550195046210006417156394473822287583885749030871521894932902883746039659152269088544783603273634362666334610797741970942704748479784122416899830527528119718576340527901904451006127439559870763028832623404431285769175320562021314508418389070328875908631205988677438297827017586196999373830249173820680104937152479574195933288741675763364185450608533980906693391551228826836359738016001012085730529079845202468086269775219207500425252367905652629695283265642264676702913784977701879675280714149969029413330499804616571613493157651056431288876622794129949525852060814374473204282231322285386971294281453946770001966132674865849768330479245283105877260350951043537461847452653460728921380963941506019745006918404364334838205083444150265372012552578423384295608225469807971198426115651637398904107082645564068818792660814808831727058725760257854264997764980448053072619783824032511931176037983302146759692396970067331816132331044448611125360746398075295178337024847144227518168102429964257120529878224348367298399274105611870584774928277339413832704649620910481523628651492345582358806086661299358941660141213763871486395491271109184151053902366953414353052514913142636688649604548435500965272789871339522272766746666962987456145575356214243487817253211853808531444726983338687526912379382472929010018530204219220841643170676666032078153328888873650825199948970154678392092325181328690825854065055836786511642873790069321959966868994028971550908223475885918462819862691696508319925448617579939688029350121063888437207000546643803691313334343021846211153145021745126638893226265679194538747276282554715302906717200627551289978131352399998051186028849859036797011907531629012733872622672514041698063894503525892689677902098338690694601129308269947491329968383357378144569661502392749062519137315054525182271878465841298733277681983538741348306115677001146122029445312233574462025408405709360339019719925667482163869383783611696128329050113374215638001279853582384158628423662818984798208420995884340329384283910632255989453533773758227558341313665157481126208525985722062855445110630681431019794644916536358756941159830847122151690200601558707426308561051391961703348940418415961075384198565964561521119388841955926888882016189005225950042649236261705321684635105436769655041683084325594601814336335364264233494504679356440729447882890699757307068192690891599836991992195302524767963416096720569758266569354560003046343699220760763849660694180283823577983636233558504892275887959660713930028529523824744630249091305305200735630052551671861267319817316231518233496701908960438209640058964962785284083057748765698925869014991406385110967358117689950509750534454910314103312440925284535303506320957114317220870728242927543808617060169631669549117233847566970120055762056666465067236100196256894606882622386974624730177320722774323336407004418676269213072587927769989108413240504358431590868030799335845680454985660410314411556783520965162677360373074581975583353917892950835176357373385646506110468716017354864278682365351200941435867219380194354245423329825903886278814282714924154016804351526951652755114370479818616233351994229732658494508079624656384178333753809389615701352092475860118253776342446567683221506865962082586849899716824411163455934047662248309428671492809529022561152546337819640346060145470990422927914819539726830307567607010462109444748707098799187383940778156208394113101776763118442745216059791674155673694008643030009251167666548295245247575031572603897694528731485144693543143156484780950501471471947977170946406228396348762151984734300752297456227184801910687099638127132146939516998878005475574861427859583033096927690389453662771457748123994322777181930425335513618133830883752823600214852219627465956671112758736196244625134502323537584690644916241955271426789241571967838876022551579340363525403425756301702321480367211114753149979690438713604602386378100712569149190565125413928030887132645564323565964936234435185832629395421808619523161087118839010238913736984057963108775368938823148373931588536475166907967420051021253172629763910260249694203715752374543272606709955940374403536743768879850507731975316590532258926959396767351335420440590663049377875002428595701825538484555768328051170551022407812506662131746328411780179061954387387241320029886491738848859388822550758082887391956309639551972454249783930624326178968807956218611759151972097066608026940329938809288527522936912991325270498782390463340189697976706337261388870687498245117108783499575842722058504163543217971393967063335875326099268185325733672912276530412171645875968834105090898783547065368058725869984584852618403691348269148160494025266897394246423548353604829739030417954669850983543672247210875766174573860700247078842383096967790555191430820097772887665471094262032275176801616408174291234716988929547279900560893899169583898320805013169448025289768391419260559721107783019334165922773742879560883798380478023863808239530871321874978275091428545721774544540197331987324352857516782467915819278479820919423263064408761460730081450710291622525998695714568597945539876962182756458876295072068940374317227398696813203575146003199490319552898954763314912098171633515765869318750153053939299834706602281714454654145160730502550846466746113135215835285631988619845880463002075101063088975739523366873103425643502672779740165769835772603030311676323465191725463113711114753097497056272308066520137618830567250806582826035854682330568662051726563361527845291448796611502773570525893159051487902108826907656492039641522016118296006219991954157074568119806290343670784406515555880615079648650488832005281807201321477237094229441656887914826930869933267133499583225371531837909254250739348880933944730193505994200452437879095254159600082836534468984229289220435897465021877144714796109006441185942295402054850804536787426197001532079257496051884879398505652129647215319612970850498214426864537545134785952387754336799016019615993670036572279549746356955868880035224508660100120570425579752979810765096092156249122812082977378382070481163019855425355788966592057431864123779598445946413883831475453521083760403840362371054471518998134718654821843739682541859746130117607241827386248789959086875474007957748991524645622983575903621096459157520086476304209982845338602948003586645433589607964310411837126073292996753097310800888934475965790445312893437717949187146292574064328431070187177384724229550344613311258069729212068150976637369723877041519396144360468701863713616356884455090359581027707789687307304268234109199124421511222521020429852111591435742364847027522850130141333933927060424753286571350962289090389804085218790307844165367191820388750558402258004152983458369782222023819093469710172154504124475682497853879897411361420137034906616991674750093458351977203706228977664301055708639266922587550951412838214247661439343572014309319345337915355241939832234127434806744340970690422495829081168870429906664420114848167783668177807164199561213970033697039847657034222239909830823360055644686008276803463192246948686375759576057969456361906426872538418353720372752885310958425078297418150353355837062132788429183095796234952222738126096678797427413701062654692380330685246192857121645511176387229927697936465773772768345347993752093219459141239240924919406967842267132920467628597648617519412486364733857197352788829149273151574817414209624799584114833680886037564223161213862599644958619340781056427758550594156052260710289370291476896130136806395602472400325644025454195574358102691378196656446580679522409630684040120959457164463104174272304620237278904256544078279992001641009088968888491621276232757925231035079381909838230044609511826617935361148575888008289819873178270213377566371004953322745718566345528632992909858347273521164841625059689152552379639341034677682450218394288750509027099562379246170483527113422285065817552937339625686489530357094871973784571507863998018343917114162470618575449789964835057582492841296513968065097217460306346747973230773335311675890040626353930590735019939045357760644763784058170700710208925705287303412413958912978426219964790656056652031423231798147846276076798290303487952501261819563795541673811170539556107191612795150370540198278013217080164799271097330759712175445712433748065874111670976662641628836417746889214908635023184556502751221742770372051705827347923298977744709615176311347530711497303865272998361065231750676874963470172359000367555642038458297780947766571425004559843160330570598842629727304193287411950762461020544467151552463527979958773454865151581294449773469768002169675154188456745226377774274863191920625323619627593143514535624812166343058077276055414626297435457956179400819537639012162683639698943080190310471884703875255183464879778468712607325984157000262158873674313093140063119003277991345056588119821338365734096184744957742000722105334523674738943296806028262204090688262472076178221458110497425990526441752414334102178708312930651183986396028077751590488300990355986132963104777189946988973103891796662104555904802710253446228359599652214082338557449797016995102674698667936121991608436709258692133874777821381371240667423589860820447200048852189132500277510325460177533448570922013912723129557209220216712897010323813063260030622950906695950782478804510090998869373973701018876138093652688113291176677957892798216285751927409179407471709273863339653328882389802113033949077733263584310676927150653886876927444107463499498122145761087408905382652404388424816964475336098352525255965037373125277991602669454631893333699298597368316987853848042315506117697296784229617823852379441664611792576280953068735221388625840602209594153120257517230360620945098934619292886275676384274481994878659592135136376942327527831147649953414466584786081540163655912330693243740167124253390868658484161047425230008731120482499339135627127532047092874587725975677714955932535652177778686242001030113351489987583486818709171108389909417281177529683934771889385052685336560589824991254501550715816381907866298587330859583604721579818228812116241227721194569211450433710616316936834292748269632256076414042255743982130604434224269145030163799184882333972263127912177978422872114213317843779893958570872593103610670101914122932018979172852414790536824858115095573642266156314965877737044401845424048439770503953683123770622581931448331540450694240806081366273820768325848581229505870996384767146094167477525271270853268872104240826161800308916566806301369498995196394145126421653659267558477861690671906818606712379049236299496039672314022549541899230765706360629363733340019502242529605241810935650315501815750376144655838225902442782925338235965553011519344576985958783253191225381005675269555448014538289107686905302080726534771153915955539588907692842058362841848931997646772696492976588704581613065595914643439028297304169060525560287622206412381977607178736781863055765604691291526512979090312782997924851623619236479034747492293328192067525502624543974177775786990326610297215448023993317060398686280619739266955644697819942952599416086362511822821567937504503580505908434124410156722761218569767297914916628501512506696926652043382157048045320848241602836136362496634696375853650469274577117139930554430644825078129217122976603912234992091805854856693567011628098742383892831294969564272311871702610492612510319799986636404841023616614081993243726410103326848553697259061874405185250068939449754147214855692528885643116451091054617700897760865495958952517048714757617681966973443318722771842277201190089742056743224017630582280601663665724345042708724110766853088864647505140579216829939190279378553822648546682501742083752825522040415979004715840754403166079406032011789425192242127405685097435136876816179581785239314475166891232180954459307627962026967451550874736397645872850755082357339916536897606198568960676950913918998748997927773192963447450282656882352282211523061898038204962017136211883087598013380132123142780046722264939522423260811250932052630056814305499211527231577434938415940900004932673025990627310207130463239775232834492954263210990479043813761271877215780041638930906448389153511366829200052228372828142380289519720417713124081517324481717357680825195822939900961665079279070299699436592164030650522878622270770830140508986876152680815815852192378789072469131702676654887242167201292855948719970995170282958878014352542518791049153596543012909543385250071713997082666612940204740824326734479674910652500888254575761511507231968994366759135339113661823413926204894874826641424065395903934019770100941839323522912190680410171874968972830986882968540470221187840949564941094428235532150439851924031820283741164319348859561323884709632905925354668261794694828103871698720641378473198559783522624985580941331064769978986375103219114638527219073607111370362169049850216432585812046086383159710019338177395792062844575500662816717378632858149819435915734850121647333894692861042142304251063648908119967044879081215302882584481812356829002665625935034127219318494952718525989318325009260619686936095703138821215924947797662337285895098238317270580455856517038906850842201016345447348520646679175212204186487713498833846366280319465467122286696083274620445733454583539045389974152038120854856630804736302058906482329577953942007968150766124832837255836160616243680191743741906143181875781412114001012360934665378980604058962256088679013145482252771693373857298071457060428871272862641932172093317693747379970824283355359682974041915922316514749922823231763282756751812522627204348170063027466194110310450801016931231077850162411751463749301531646016978771439476076715495087892174922754332450962779754350028396256963229731150740364085444623634305470585238092816783878005724277327457018352392750231280450235539843786270103361059083929696020382604490600625634995353934213081833406130471839005566283768661436599237916945414428479091764038653653248663477301604961282530117224906123729932657292683667786680127020161160761557547943208477507796431389537091093793613318790799292832830675205025670947562861070644286772330769932495421600636377604974417803992276738595164568248010953465929479076516323718209989465800949030763759655726519712280770096808282606879387740503047168774290525203963410581959958951552092630733657261282427211839393081048237074373971831273919986686862931967005197153227970301161750108370534600574100372632007287081909263630785963924999955455523949100608426538663199922524935998439453710322712229089646634860900499179854577609729643606203794653465824940568498639470889801373366334704637211464426420177066832593817682773963088499689093359555675753744941802302284529400818507419556437935721872986422111566187921158517858304579998450198037211258741475819464003240921290860414093325351546769670327898642242647657543016797309603946395774498340011288385751739402772860593838734797005125349862976967435223630780840998998586004901763266425903834796291733854083948881133047068414313145257297305069792605077070848945433550491787733956576681836025631643549722754818712005687316281928429019387062990805982779471465455096055494755819658169829075751573082284107208235756043709379579944636712601481580462254354598798211213524791489962276461819301850827543979242258585780653343609861081653702023638184675503866185236257712449566359278553241600866238944951246259902159774118647402117178878143116973492358800569135216049915405488207644391895182817560856226001942285356027861232325548568208919484655658821991805299860956958893177640704912482563403760480694354676854544967441172648066026049166355364410756934731338353857827108904841095571842289689766754176263630896495553119179580671315291294055884227123639361712086618922722737295452630711241362081577028014812243672178663898793162460419353217764641656807983569038615164276539642235066413880768694531887333670123475334617856252361704744218805641153922135502795249896722034745446229539198599638141729203913721956767745145261816829893223827525539592099302994786211238829131665507077780528996699618812985544227778278273731318189303590355282919174548100706746388141635134150510456864190460181078684477299586690051721483719268199598763353210321279506593418849119346968464072340494795615818484303400644216232221052354735012515111612658364929798184091497611718966565704580876890209228829504088491866176791172960859186047829403089854014152572201345128749191854642287112098482613070241552445351642629365601963613428383986642321278100204358037940739898072669577746765175182340324193244717647053958786447982796537785478371279747199040941822715456837002568459617555880874587862630151632423991347257166580585576265603434518235708766150171050787133615069165406210151105492455850472611443226763191973115070891379929766895013875295463053170834967417810810607029935640794071994489160419861505906685815969888978254033114160942162273518631299265131409720575802658746526136808907581628372316211174320390017100764108182360528128866207597763909306583097246931910881608279514269331762821126680707377666110499284953515117271707461355158267907252946325695038464723659211356201603869677628578888533396485565826940356685355535228288125484399584662322972969986750464286379917004916061718342377970662511390068098622007155059108520136212944835482871876920159955379483058900033209441129346883135361223674537329083390158736220025628080151900818431165871216559458608168929102234249116407549458962121550291862359574037040937116214102771922412794792850969071718120319022281760204274845265492707109597013032673429746408082192351956093333059521853039020542866610387350981165573277849215660704266148994093875782607081678371514605369759752381272577617796189470820841091174528118040018619490986083523520453570350765592459078215602011737506623733356086369467345185724797687744533739098654803733775442256030170636994945461291184230106516489096958104448105547675171334992175516840970624323610504506128893707680241597011610558526069961012229509172149276542479616767649684684780215994439511057526992263793445426492135875078618217342079073022617761030359902293837284653716080776632376997444072488277126811246984613579328322232211617470998055703654734836533494230948698007028953437367135787068775607796253189000671453296936818434078001192705132136368038914349229465954321815584289238819578182035749135461923858848115793683705064288827029513452817653906690584932427672048007947403752941614219301466991977754686641247879523482812027489371240833262768063559900704512606026053455424566664359656563363072477205373132803877947973356846186400006342566653333395042673464544187172997342999053263527574182278495986943871479175106794225661867706288625207726405703049602609213391502872705601452675397129767121768888806422137478445816130778443494698455357270059236087495470524116029025142461758419141337871672679251651653333016423739153236871777920370230390799101572970187505121644745760948710493742720434426206048116738960136103396529749913222113196691387783583550693058745489081740065921077498700488270947458506862525463881135286996570528111503511112733083638035486476451051849480556182442214645443865256087465159764272992618884184726365891697503672913197372337028652745783160274117764952608005470763462261598907780830230377578722179304490771671090983926735735465875570070783945537819625934712333097753710302650863785562530218608504330674838210105162830333576327615503348870243727635252111631260919765593937474370543472341758510663737241779786243580166660991101670388294031088752174014116001671051579035856975813455272223613851542863189020742174623331861014126816385880677550660364815923520514890141235201807239292726640467659912722421362373134006350367377932853286335740777749031594668553668181990371948378003611787464885866957750899216060309930037133116864750443884513310754315320877421821735202814176398796022799936489579676021035418438528517360210222455394187330911950654808745132142674165521325811965327828632659871927093117283166523951086540614306710931809549452888268916541948239198751607768838772777517986260654640392460425854741512764750028569145197169401304834862777647404867885527291277555017227307267390506744852162561908685527008086563614655125038362260732983243579407489595635498481026185309923767233032520035088719171831813723333095435903126334778909328157038928463982359248836102812126992892097505316660081807233930863569033862413927657605920920457328022594957795919025785822013286222141279267551877631964878143072843776730336785836551163659893161454156171537392763345645452286925051818749125080712738616631140320674892828967712166344560142991135173949988899184939349487703279575508863256297864224030766816232009230170352821362843283050449413978831606364518873388936301152120339458028720899939776251607206870184077979270549229689833141158420220095559599365067352617990340998228339312087679507846253823246911318039647058751237313106324092006459749952387951075084922677748832710189425203691616380707494710767479278588917607199310632053735691180880110539053844423309391679080849596334939270538220389615558910553393336499876356679343368505994217781761914177110035819891075833463104008428830681565992478225745071756934789709170561617426106637159748564890855241893106281874856119585913376728583123949980411748691289883391323872843445504858974563251777323245069084691669726838397553003270493191663525077717659368870282965961876061869370252232829755425874458905833862639928143929904029369418143735134183475793860979818658038420166451178446426441672597631600661994066198423665536776118041448751331202219250428092272461889742347360021843223543843346000509665852085615541756049278673218061460964830672480371977724542946910424055490672656930523762076389519599943195253709544866056296934708891567993621423948729170951594216319913794622805274665091261486278911548966951924850948792692105180819704043202938141378605136266041414856647190023121468653810205183267480731592614751774683492867155536181866904180835093565156591086102733864686606663338176459529353175257012991601206850889761267516921275663552304789897528835357155301734969286247858086494824196481531616957259227567658258856215925982244343660643549551097392980176743508656294464279305764776598418096624523676743158333232045729073171384981776313942964016422054184382245061479066947964938314032726188972502004220014895437473171262059121749061091747836802749085882659937192301184965642772763783680073916172916517037821381095076099352388396973824736620765045171378560214603463309807175318502973216407433014327859566883607887680919727726622458580133925421340776853662663286564216682265971051148748591896608173474460938232298352642695891933455269296646625465207136732630426344929731186797468026145819979199102161751279767279774290908681934417649234757675582538661012557291208729090386840022211090696675857340695578736219370388138444236386314413929407832440271768834914898870142367087291790228834671251233240256226392880818633361025666124967558793115410314895044327515992861313607969135061182698012823449161793726077179670039000683755166866824465378077562710181738503774267664572923492837251683788448105470447345120207611474137843814971046181453018917884856023428952928574168700542807426683983183995413013916673279648925963464508751521786709160569318392910935966602638426512240571598978098846912199398183302595454622123900987769092830400093203718036292760621946594452900796511435786176648485835836511512802035470868725416597522633277483847917212524877613245841458102461162524915896017210052151866317421856522367528446560920566967086228532068201739916085795693962989893639101014609897284610707966887204218229053831471558963981727494167615060581792542231724781875899120394680501691855550984477474101621709730016950615505533504258000653388108896620581030140845008917229154314971519524094101611603343235524837821639135810652008066151938022384708374537276658460361860347571551108151674558226757825677691057593113677563919075501934483495443865952435750290756060913841591121510555288477738572363754572739592465387908726746093320546323789609219295748640803133920517584589059338714259063779847405586992816929398598041567586221849162154346645592378594451526473564439301191723611008863489485511873626540525968441695546655822793664073617513184233337018272077009462273127531754083550353355688092645541403257577728153802561293072736785798349830165057881500983540455519075370969011285427430856847122922894379308353374342776283288993789133967078173981858000546966249618342243926393237826286602493293426943650768379873203642605981052084335200027378972791445747610406362822437552508440825516202240477313013986548513302844568411972963560269840208857904656050737245602602362809344150087402729784040588939799270896973660719539267868800971046545196759456424900408659791089554620873492763225601237973082609201686327002766250543481806421143219889982252533776497760385428004649439399706265390750466595899072370255282676286252331058175200782670243391921299317982605353738777915424770098743689507460154569960201439642252500322822379961040151353824650133863576936621029053857238370189540507428713337187952694535013386616853567423122993772214530613486921001506229445869598372171931377990271032013868991987304264919463352795619414303391374663237994548616483969295213436841297701211147168788098417420901207943741524628651438268641955597863685106315630071633691684749871462876506773131183568877060807053401993628663330297415059692010885615216110120118227823764849531163805683967547258664757972463691082639940279533659774276253255343623735149603407337926272176577658349057536759015192744499197721751894574795244157555765523621287828113250342211161177662378687758450669305372631479524005583537281123776849869721392829888821742451381770812542820477313016161012556531246610674808696612953798331978804273194598312168593266280639425516116655424807898317299617374027255657320898129520658732086024451745683691937326467481213056690884975734733623393436234710671688237792024532178942770351840351465822093297217475308050219559625382831721636503303335462070067314170091736535617336403916593610077941279625940230780949219172066849985775492053566858029968545650656508079373616455027826064482394999182270189150681070419683399986176895382972482988447425986022985143878542821426520059124721413200021299648412508160588985407006277839895119023279019923939494353437579487650226154626316837752999173589362537275188282892247072748929750319674752636336150082869899995222916794190721700948539741988155049920476422758152340237430548882556298478996976598857840506043251080153910100074893483563754601442449143418226863751158685855636690577227023174837864459884505665323604359318170871461026870324534150432784750114869500674151746104748126843750669797333239114823911139226367132737990960190853169353974051687147249137382580779452662786183828474602409990236466562823505914879863471324527894913675674408076321206077005372377427588880306830689077421958475192770184084938016554122046943179997632196188703894802036399681864512001072655711337425644946205785829131324756195616136187843743579345372080730694628474018418658787768116580059515939075390357857611545151501494778685723781734372851104731416109061164351353150758182751675795198807473698000371971497922077942362389309281546438725359908514140868670934822204017614550029620917197038260268507070420239411762247895813236302017908852348875121634913395096986935139016535223304803627782990226337533185460827356569464041191352034216290854354514218574144973540616303347453167950749200004930247490307163871964251582356996223947761188634893634313452019687900371961838554866015106858800085915737065922856412135268892323115724040273855082110253704624332379535217451152383358482923477735147987701180353278431142549259198738553738428264127692315366230555670989897934426144864770053114429235652519555001623713812001238581619828895910237600084339343151995128638225546818771836587248550572386713687206681410882820320077720737162373296834308677581372424822316122627381855439715785984557989331138332322106977678459124152089216533300801219070422999900117936133733690913672731165047922741468532040437426656490312193780691219473231994116533727092619323209900956801060830653916927770751654792144782797995333305011457521779417504458890048661551125038036449178032983794961680161381556804050637843086735366282139970698599164550782516874940589626348264278863098191649479432764720706457710376887076051088006334656304997223933614692895815227213474602780821708854111859795792820554670118668153746253202086047407865344772139195246428783739695321281920925270595659215460920766970495685228124035786738744115715097209516055857749373325926300523052953010274869583894840179418114060862042916072256995385698813824397408314291102781896210290765763507457269111349239015198522231289281056318340725960270750224171901736396667327312444456370955027465898715282404528637606460125107658500084342801692126148424688058697367689308477974096137599838311423022014216123109785312389996777086780165090692460130127651039695881309315347427935749845494755468735956109855534537844824407757141515987207825612907116574804339806953761989873373163443337288391652488213416943748358475585249557741311996286098533432142712942976954152144845603439779143196014187416740007483397299774642753198706842318368774108572991458056942346806299154475985721460859821107521165394701938511779395126476785842002685264167691718589046806995919046960977488284017045374120951561143386178883512306574744580952147508942177317604691223751998013745989296219265483252481807277460776472364607522252678414534940856623829733191165859136148590235748032091405167952610882139343194061126059135185862679572634923553974995398544762328209253623136556720973937383502013260522366544032670244772625528102459319546980512286632775538365640999144756733488962212071212097631135832507806198327004731249640657402871732934707764144472558583185506672648477313272000687800135461195767681546814910369817695779619754884808061123007622515869395633620764097407418964905316538274885966056152543112628777321162916586638349167349077453534307304656371253502343118455120758240976321312310100433043343856686715499878925493027492745939933078102855882367851651126232215755032552054772012765911417464562896271438150127470369988643718456514606143364639102271629773859798338190600562647108013884769775723392243060700494123183638252683245482193549316790348455209264894175735925991286996575737192925318257116681782098573574251579011162523103226288175729744986484982166673248863616425505360189611818882342492764480041648473040808490610703911014822596015951821324262778239744542535991744424041567514213734474150386014957912781946229587759691258621988153204947483124370925287214088697324840794313418714254981669330758996958747409955246389868561501897047677353877246539919417632542228611677669334167955592772471813059772554260783734863207039655466697031544531584735482878894143104205021599076807480315355604487273564744816153014570876613140752643146875088576265022383731859064018037732495835282063568768382106974603061092052013125651467150423121058571731332720426740386121037563411652077416863342089007713866948509334260723242621502824574494953878054261140718915156690278842142614718478692584178313537773354098215058264080676772400360275281955355650212204327962342745655723826057334268186226491650829059965673377575799229304931951905277982506042965328158852951800759513182563571022307627697246743315399896612198549851353514882988852025260242149847654327384335603201924205586757726616786869186654528103641083215934655812636387104757379255338587802680315555244893292190176698198006741128449681313646906983457311534175146625597939695385005586149988453649028864016397698611171566488777989965184522574119245477701690864995566409888062851246265781900197994105550578104411979423599914269342689860759177072634162654594257412788179991038535315483821289182127767632051737421485498469315289125871076348874312295023360479636381523116283220190899372386656828764018152213406849155124187538938870279716957686107900595135327375873228668484371740710520016179505053905378253407845272826222863861816111258854615814981138387340798290378863595777390469869076954912588920423661288856480154288139527460397446594126460066729427298646884452284934527897170073390054407166523727432911252817385073094164442117799658621826593817612356187310630460050159533200152118348944795454971670824551800280017844033354202938582937281549350116503303196823136589320453224436979424206898486411802534980804419392928413640297886582386615370699654155041636865948374284851389032682400385974568348974160339908019941690746171823466069078094484413792892183843368458319609464141867896456109603316801243216387216757897789840203202554424882690823620327106811123392023692277196142505350419217566324412549318678510895007921377951260622874519268670938583600217382875833119555411242348926336798777830746696603257189177945296875519012036096413896100287958639958932583154673928904687146875666229611476442538789172265922421105417394574014732499165533675144336212262354463739113359916306460332929038050579722355021839941142463293014953704346560710007709407677982823361767772740825795186448953360539574320855001664384435312214709686529601031782346777885330124430648429612723024411861421644794136264888827978984620571206888929032962120938631950185740995773565389892305397769499015483510577457785335690575380620354136651576081657624724273638444586695335557345844091539812004742123660918173238637246107417921399224899801968846019339169583349734009330282571706561620448281768988745518355032776863725709237908367587882767687016224012819100594547991339670009721678093888780695321303713008528627882676837479255036995701662079749606304298573631594566853634840448909330682530229028572019418628349490681119308102614108312888934389767142321981342199040018022515233717975746427225707910838287337044988812367690839210527239626956112641486296274200308915159014412633231073572021742752543496718841149101995694813316420105522774042154543318638459556973650210805541965020450082650253907541623018266527551665353237518508991731340837153471411854571212137310180320788083396063737700883476362126643153457506621529894291149681155073399147488431451320286703957194091443446854360165441072249388994757509746580304783353297983832358189702716507177044558604287198984734980588922924665859480705517643552049562580430938112185629698699887963791004958734983102919492199091196008519631151346375553896177124727057517890316586105885661540673336308132222645690539047026058959858149752136180193258226161917706894890833916010351819838686323431700089583663787485312762926830140100538932397147545015489745003645539848997579752133875813321195517446093760043929170705098538203761398420041873345715911329089893544043396131684841171710436885534971618882055526605975251165558922202991585095824919488549103137094387756601659259388695244112004333497815064813082100709445297001042664297061436874898727880821669467728126740631409291481806518524763429647692921741149013725851459611726654916301227442262082956330790211087753635651035287060317564674933144637997884538306307801199085281783688197647131306874797753619171140323500058062477344565049076101784294259601589245925705402714148924871746177629582757892740826315913911552878655842489870751255430850446002823469204255495215866166564725922509476926286517001653561587756203534457175629278003639990128753049294588369373574653705896631717045643028413316540813552567774326875305451964492590307311567536845196372989171602796369765840120462930016113162471092106899657641092566715518381555693369490519829164624039180646112106733510742900673021570525329837251421950522952762838861742639501754198667270964131181030587182775453209155381632823971808644639469210634237372082783440899957522163430138493685017618931617477517235569305611480566875129579765781502243113412319072393273914667011323931358682768424532282350981828251811849251036338788769309208521728100037545034589529937285894914629359663503165866341002455435924152762312781262145448732352541836711193140979188440733104160084412252970985860588583940393360337170264393933602686043150904857759618583716872766763411760928200471599365289344229990238961005818597544709422493512175262972659607916317154394399678394830670658224535552667655933464274481714851712865941808787614016389377161602601710768907151760797709229928092393251235357333291069888138984402489789770044853351767960844815132238983690032556384522336182267296702626077567599493547362325005188668954346777223345387846276964374022989389905459117587619528914208187669203719793502319622582359216392065728894781250379919733669564515571919324284793186237650029972195186837365434327796469546805530678722039849634763320560644999175726577351447114127548599547088783672042157122515383848270286414263977658202670690025932666871308093017345695570193925066470799741763093193271569546321781180578648746038000330813514219880339837013187476265747522294996945334500473801752920297294832528476339750922145490249835041106809111595549762592462682723025222198962770556986133386391423815734658896791761332977304151181320548540917834447908476274487157750831862577705495887162192102269574944378732169643891781123291510463877011469243474282172536763570845304380316800652366540579261475463328047981592173973452583581425211495847937829504634891580859437651097451948875361890286026360731967948089396244166657243576396761878417539650581115230870488769570072746343526264883403532052822159257804800660210521429361731023559954449889838581792477442847350205490188906746503070449850415337718210672976561965912878986912313425922212855747390998687001850553003310041200229297877818626255423139315618772101215271884448423270097191005919903086729434939327702598386858355198391866461398050381480769553946000229499211795460413787701018921741380968172677306100712185836851552432777106881070191569636235204735152208408935527882427171351350829747276385863404107370241083166151124463399985184253109081272108896754349424354973155080846557805639678618555498163169736823621542286280772488580580866549650814221020084847366833049261546292416582572885567057103232056661457683489319534924805894850878744361400385578213412647277718910683699150703051579779148666061554362336293232198017012654928136203112090851217144978792249671183965492771933197495964206559489154290268981864508380250829257946067467082658414445418549427045043142422683022414145089135810957318121210434920585416542257780704623307436551915651637717241528683859529571268765822017686584580437018576645475692462744478663555107234238288309769399282383511252329617135667938613551351125047450492043862902777312297898005668852852563964468022394756410947969458828092614225052856438900814490811014891191285719008922018631126328415486934760083202875511001701077008338585720752557429877194236006550579521895193159414981615767382548003621070408460170583796730495343665207805959611491876085708416418590810586721302806157882758187358592962516876047228797477327450775359987919619236586038368364327423554663076398112763117061375019481203445195610726792141334166806912410132633428787674541925927157901470525820419154223137960478553653224495981226517571402315189403212801023556034654298877489064621287863891724922480376672220404800274292528182051611142160386256952127758123258630733558870920849273837308464487653352247785518548636994119722507815054752731063221770639147446081705238015860750539171741561416500334168071127038068425636265980749338893269770950924412334020384708248783728675348420799386532883664528562122006963937217726472211699264924699446272647736780094499535280950863268005869020268579203840262318192879934144112133626924061031046609823129022908414438745302682151546817802099225069918227986678222282097034892560271066292505294863049468701573236980642344451907550893819916886575345458899618421906603583381074896159048789880297542732943330672928666970386347629665519226784336666701509787305781763748211891424288194244737729209180878904410872850413376758920600438682856889084067181767213825061346797639593210893999685079077514819832084523501508072431091990084339674990723031461590910482315484275721770582684218053085443041806416243458092379279213439880985953660230453888579813452362992111432906418634448939103744199117902502603028180224285373615442124493463468750857545173321870909972406226682890422619072359473370762543362460438723221249731490209833835424710537602255850472466485123915379283012321627494005008114633094069265198472775329950066873115276201162692848561279742596863450563281319188907192115822670079610803469352442376863674256560225821663461509490569623485081743983869880331369231183399711415311176915016884463722987727446896768185878557753974100897983687392894462702013904189302325388046827067450692526443217826513882745042750929469073119963778899124226946526043129539980718290582867880626921560310322551335637537447144419681631302418628944738195536019216374302738335440816441478278380162695250620296072953153191617393773022907018829675151279724392959456650643643902502034926842373749158761077278236241754402459307279388826552153568167555676189603022861793663665518133483658238107692638441825777128754046097032018013608989949411383531807729906839172930778332739550221077531184447317987823970852958577687212423108637606577222424964012158063044739960129021150192664925551916284439249696893140269200670860837275929085976267556549709261375669212413097570088117213908666870622480650408207131559931241986045115287721481260130958172312329867577056221761678478325866173902771174884656022866094530170189804985356878121461351993005600967426035363860845740468089439372634142221739172368833617015692118724554614463392687643057130223046908761745411967469697508482409467743886128384176830976325606143360194651470538590760085215691633695825400534737782539642150850477395634362184512949982489449280549921859291229724902169786589927111807635728719106839650603377192247403375387596464735528487881843837725656016507107936258136463068596975585053327054020807895895530159204555838772085162039046100855097265111084054624436607581347957174794492512799880148356335248987404754882810021715047298665076139137806649653891212230899050111424601369169194925636258024842055167475316525424127934477808879698759816260903493282287069722652350975350658858407055689526085952060045743152798191399353849785207377693964229392003463965520321301524073211327339582822170893482889030845184995814735587480912240577305853202998964052348804744287553393849171708513390444690912466568563990965536022725225716786498608913778818402715996277714379513042635811261020712412250460518091002693471649080383872252023491272790466508295888294647148856158002938140781585781668276315100840934540264109738015484466794723964198674774489580809600469935855223288223044770216018497597691706444087545606347588834243774437009893114098347419133264249204053294058620818511363082799142965304980782813947500110805993365699670834462794893278580717222611075459748082084428098503087875077166485739308091731685529578106076093126872181928069661287205764240493092208743032480894539551593312762565883376086711007134189115894230025241355650604109341981213836393827203733089369705288315524019311002638478477967048299772160963206618905732607532784575147985920381044719406167853422592115318522568455255854982851866314506105628299924848202159001795244967679150343034283103663984918675133956492316502852083564417737954562113345434192940358380185095887380164701957159499921144244629341496094306961651053465983799100279772689405737915120850258710588863452664686567173111917680722983912729334806626809627124446585149347828355931646518282774613848333689956940465307027479710959532451191202392443786388718338178801850715621382811144995847305073846395508088583269875363864905089574694934610954736220602368111523630851966910386085676177549616565014821172965044611599326878437173708918975687070816315007781716177161849739716692215020978738970981028592190134976768689315773569803401973307850987327166139547080774712505928086243585086644092657260279339419894808138284118167161653912000453926990211759261470748016024287370255855174835579127867610169441929422152215808147754758484758611032565261819171614221629855633541406322808208230822781143548149968310559821653162375868310544904908550068638319286224133308718083287560901244031219775685597508750084022650009977506330886438339956706777742546517668880120584729665199659727005748388676057519779608968917250841437393498838696505836748376276125851820557355208222961357858109562906942904975371564793980650928217722700874104934769477693243465576116204115444126135713337577438603577456970105319305075238057043008322143122879633972337907562255985519429948818290033672602211947085805668531364218903101528271016654380051391632145341216085889895131508766176955464468137595064877581109530678182666911149000162305674259889899653734426724443324787817954769279052203149648560850601147069764521198117762460331732927121997427613789578798598744247463297577100455281310203222066352489041517869632784607462704887346840476250312174137502820697587982293805757574789831917423244273991984711829212516774980166516934683789791159980488798106191771890700720981973174430927565513016165205693352425424208171980609019588039993689089971236795821739322556690110520725970167295379201896357352423184137013695133931661930371498997342213301991691293738669301773276991660600456844441443847513692082778178758902056420149162218212697761489770376022371502514040587084100740286483149551428550525625476957166743869383295653827349273228606104271441471926039777772496461370080641269802473449685217261202724652174208416391524778213727135602144260629136062883257761920582153677703279167428733547226665627201878415636238816399583058427797718132964637211963673364977924132052840762116080418156460966957613552861190667731932198038278159088621808789631110119972594931795642991938667909578765574822506097611321488710961284669820641173354426973064269406298320280878381024361052316149734831573416314053000090467495483869192731101746871169833042122709833646167232389442128389047437253619778590100850862622045540526129711698532998716415330672243276604758076101423090252822650784801034967539498245274484012808172691877812720535912564676412511174178022195128964862859554592208831855824566726989696497653817953963853351109728257308486745982542011901398807109350363345374765273220494889669589207873430088592641089340098249878291002526636344493037543264970507821600907961259326692483669648162596058937182727209168767039103557585675488311552403374311223693828401439243126211056041553209318930094853783872263061643900896155858667051261067138320714817063498805038088506329108134214434880468234573558405861021607353991113376954360517705307921769836438756202622725144791850836288993249940281268574109980564366948489918516229459370293064473969318422474278727803290281260854583591590733215191874358841319549854542440781957704370728722858645934685472215123841261599135862013497428968743564189963994902357824543027736435470165411760169954713388864679433275788240425294620960017825262355290812173039156118083714514204575448526930354587743635358748421039370801294577955593546400751520588754801998484140827478716991432399123729502354725585205477666568666616594071750116534475147459655931964931969000999213179932032248142708011507207890791836877146000718187486502674594028475041029553193906047616310863596443208367441049836503459047425227447014185699711897523358341923458152643966051800989953259901086648622299352380814388416269784729637135762064002906706415696660172586456316457533575494394074779378689669029073284663568999201751723771230001386844410773621138844531693436491550039487074428251067973593795222499090294261732543604450190307167554770388785049928208430334936378158303167010912923512223184382927443881381466872866002884699558842707170345396967466097012677042161433150926307492748390833879029636103887021505514773538102193450970187856082688638406223528313426086321128900054512512007815512368016438087613798770347278680891970998650383690162514100329086182395127386187947878347831651558147296818793951956533810671811540729133507976806335479631638951595605375327408245356248624057696341425566249979259259511727997967679017703005182750349673307974817845953328220255331945229450765555722768323599415842777274186314408553714089421075286690591855511964511673704046679781469533397221767929023324095313152051127237978011241749602608574940657090269930604356639595320713061815840347910808172169131395681461441470711711252642884253464991552542903866104337287727472598328851966711613087056685096870999700376544084516343093367922143011745800195926253378204936266394191152133497149969784061565891018167314046125860244908825026456941757918380259272110374048512773530506739946704682014240281449476974238332086895807173394409069334241686552862765950749145837220920090679678946947230167280672518401678443124363587721984178549993127144405375175943269820509599786232712201077067196958077154570265349139415926054927180349414239532341537801258125436159944156320335189847648059567672166508191118933690291261883462408092473689301140042839048590185607092141654847373157028945688499450680564321397694562642814359858616532925096629319935253912271864067720905258332038720059208099930939958877714499774868043815474708381771643975413495657273016867345473176060173819388573910889940185862596781045564027049065528608062731844397798865909797848020917972537928302262813985306957921981693551769417091523465051647618758175245463151719681255278217176779028200071860709936456460563269173755236272780466960998178747568078030789690846045378317481194488282629816479277416038836090188372248314061838489940003628237464005936499948605835047432718489332078793655054187954951438586738063116014031271377247325102740403481057998719438552094811768677027722764413650881170161877103641349632249101366642613618919880890494392400040279400144851122151477994049972166568506799553799740301849152369510862675840385214309571121287397222716310735992094399689933234259312604943628287134820019457445240019709213408373130433130649104129249671347604398723058208382811027465334543405749275828917250119502820789395595089852535602000147122575119129006050581615858569525873798091262335835831351216417320956561874913811212385995804005076198014039709900936310832146237982975580590651256555469425660238767904163168567847722488454243462088445133028438517315315213854271584051343055120757577700870491895652450621606909462119685302818855357839156409357151294756394996154966713062985593996090329719021586467866450109656836309721393888462092816990092458751002005568881033034668755365982145386207177630084887087417187602616091666195546068904655343780124175899662589745059483214757544051859931337046549734065573580071463599571157498757912922396105424443724457627122382598644108938026141291937897731494713222797016333323049122396624038098385668171012724949052380532993242481730104354280752193766334534206497541758520541792656588285432094931557765007402243736778340087456268718075616020744739942110643100327140810296499979623572453714912906912825622419116309472112722544668454258013593059264739771305963276250978975940466295806947514179572973495419659116229347583624820368411798849804017216741397267700417125794960217992340885536098803719022612612312662621522029831293719045004805649542515548475603019929122130945196082135085477777864413161885995192789407025507396825923239514628396661017560810046034869137445388827450024604847237453721616104754238837038528456530949697323034803786733592575788332314358191625541288218628719008773257497305554640517513603854229341992039417960917764507479643738149680034812503225143812373369283603089070630221106842631119872601881632877495129306517799507138514170251192704770157588993279147662899820645603844569782865401071330988180977081000684541089078962073602219404456557964923160541096220767619923578905379610119837047326399544773497789890969139796354962048788580545769701408291301947510131919440314737418510330355930989169669963816292177075202493990112354541676685566496038404244483837910227649528821644747703600021574899374130389555956478414237323009793674991632339116115962120029049341631442124286575237935176626110781603749707104221483373433914043438198227735305881514206574546091550212837492093273974376205522452348448216901419334465572581363363594807854811538011477830686247805350797671637426841244845773514414061869786286664090592561420780439962855751073416523224453463225206494155989990341527120881577812836550591903528996578616115928318953153236229908246162828485777392402732220910313873497141576717938299674419063798438968195234618270978672911818990197932926538554683946049702130261911120232785390214611698845903226638714313783757622644895525087070839430292418848878814444164656780786150819515150562597537938351623394360401449236710527784353010479398614956844216337297577738047682212459584112026283064560918719030944461440780571277316136277125090070837404681933889521334057402059999449558437846626292232894458384062855635331283609594355555539712327467136325446601022447478878028063744414014600545021963885740487636363578441366182806051775739383929601755936280064202861697116432384544198747322414203077581109798904606554602478811542423332556677660928670403778269492360564432967856007340660360920730672557659854297683479695969032260746858908931324350082102465826708770207854855842618306723317901878730190621207507403560789716683107639505162452642738160004007050937623690400354599933630228871740913060023743202164087202706840523107863618322493308758904381954991183389107121750135605667817288161440258759456131573663288717590426185854524759028307178854402423533304076286838175004386263028822807336090147909497140295182747259041921035048340177083166847009447685000561026154740914095616092973822274902348562427406639615823995602751361231993994476755615420840369386777768818363405944540460175021190445223213256199971958743364609201863966314626147487424617750311822451420919711559310723311075205063152545929922701742566742433225360610067519902198754176842919065852791664484351093754960270039060397028445118114302900181565605932263857128608062729070753192539057896373051177839603061911219913959807091166889551539143236698282725049020324963926296102213750735680222994487986348040458346228422766546060719838664789895634849602219695674834824741418228416568989571586324154739037944125551004013784352380142962776219907549338591843873573952059000345264259462579710496267641111441442791929571931662883865133304311637078261104100964059499012150886328723910844741109685523772107553403670764326784837265959033248254193479858039783821824834016353929577843882969630401414223521874011750187557470082258577948382327349660922459628448624200013581261575989789007759324245783736779956413865307563292935114023788943461669155947518734203963715364005643807701055028986381061154616263927101932936115776133717524997355609108638655060053871627975271745372928342086250530508878458660369694139664858354369031960272644723662596313828088605218978774638133162006322699277849272486319314030517632596072157709754236968211705727421594507597103545590702166578105397046065723347712422952058235041622340378388685811183181172726787855570610343817506101945835032728281695122720676886031691033923777372517746890716062650090343443048827341785301364285526178961794693971093417487610499067545115874574430719581357624762512067947083586473388236506453300474716981014862831387014719618161331173903199685809317771241116108112309314530366758017224164823677078327645090410883156070458801451735270945599066147493021734814013773536574040138419240335574582916996300428496139164172005137717007465674922873792502872829811810352457935886974723867085777894642435903265477783730040701086430049426461947016657148229601388940420527346844984007196992054421811778897165123294420476559958153953651047902668589992154759422617858484807262273532695223959149859485257636355088497279117864818620729478599244527480807226122812578096822207406410997386551653512834833574850930558795186037282928578244723625440726722201354863574010339955420270482916502452934909899697324338623581159815368234216746744979210098020570063958911648110286804966415059096217990255800591783750079378352094285285507035146630136133954666860773015085683774259191434775410464674902060571907692426536836018172300446368193697433529710300331184112649464138974616900164542216372755103381648191280219544699743516999535590268983491968595866651032299916685880021182754908988221334636374396007286837954404137797710241864623573007826409562801351266521523774431036905123930432125886241476612969586940101154637372487498402523920120952369961716559413309449332624702299775886343265409142609058550481209782626788790412057554820172136611744720207741055890758581313821925582520259700740899285022222315862964363352989402441509386590031019333903826004065576554916120037654673303952334875708384687882104092306935349188456312333308948291556143762507606469938491408385814302726229574691000104865312676296693309012792848266024142803734329824472593354489640765586692146752206169825256686913354370739804003220835612775379375683972544428391045783761776003427256531113983470439122734970916479701085720246719258571297220331423102967713558779679564225795947848417410953580565171087102645093008714518748795369386518476741116943105256680790538672884734726041899028321407807391805460729534373658104640177654722416314008355993035182737422718361934675035065059947784612291105816173791330829295511289985301968787637499592106843493955865199712695904422724408541834223002516540213704948669831378776917386677815511311516126474567363255162536080879354483581446951757748612901383225974006106191647820673507595545422374954830436585696715532508419689041968447702828660457260858211052107287202278318440142133811418185232198750310166913437077345512605698525812705270001101462304722177235779007121760805405025800885206284293584906954714163295536241324001467023089701022791518011040535840547187079570327690738203758147202225913298966339925546975770567171194893352139769575392806724242247649902213088143277876228443185963813716398378022925992402992262827570309276975738897533322559798436207788571262742600772626102679601663554391582257793619378162953868798156894423761709667769906719201456245171291018028176215086471995542875525412242045499544042283707036182985271942733905873355800905846099469675998338024116094803178607215625911013611984224504460224698988522847173833449233496248207024549178286661321906492057256050673068795035891316786668586171358357053370538673194339200033611530722650353531409636221166609155406518695041327857665010207011359992724699132228844114678984868883648891798455304508415337107402187056879857205483037217508678803693108267115752491726313763681731367088051791828748336576772850896024692742613629299898612468784969821066685766766064751492254796004744911679409513909154465324585045927691271063685322934704676229352900819682318476745895721458042458892124575456058573314313842262190050661974657513603769402240937539354351820845735081872799155147937349951972321700318633777846413798549886090924452279992561385118515724914246422292730858004349898375790644547844708795968449038409860719013308952736726486562636724741386501720412352992052475028996061962296095837830231839321631464615227134362475761346364557818907407160816980491726358225444730567953909325988489688071271750441641655839602255975635134780313569352820306120197788684210602099588017995811601180671825811111166461841532561674353886437753528275658491359610463470323630125421864883942358561187213176499646057657797564345581184489858418340393255459151304035312488927458452112192634311668960559238202159417378575278801402689996476874702628834596342645501673621215676156901611249730518784326233366884068835975555273147098880099234654902131541555549580392516485014562654507429524873980353917314971013772030963923863726256762401031379561792604756613900489024651724642490088382869365588224460257588225910790690158464072175616812110987920857887629360773594016714847024947723076032019372196250814778041842488893660317098283228993217118637887302592502409279048596517501233147291746757954624163804860720719248222205929918076178540649641462549640125820206689977980516281342495931660676133833202352065173602059296568377034371284403718039590324181836361710762863686917545934036514957195643957408376496462657245948132594298001167594873064419677893456522976479710700664334446990920446236389622311144019118351173525280863030915321674755197598930673369534798764326345736259021164308082277533607817390049081293128366013628052445419248598042187931510651851114275657960398932813329793960239091754974057694818881795438370629983518430581798254435980178966608357124160144561688500899694144356166863011133525405207677847928407748851223341648052758472996302250978367359660461730697881958809316699460584865699114842347539970186607751028840606078302256545603529096111442948102515681695210562816166789611289717680099623820569924054585109205946341360702157919377605966539277127273447930529333788116101931029128255458973168958092324205157273694048629241160846975297555285651436167329624870544664882103673953229489966919415451122581468652044473819777956395317160611211755357629614647591922344608250661690466871104548160851346739332400163963414264345451603621998384178203573243635221309163038826969273372807147885565139361722831650981876378455731201126592777922857778596747485532400426747375301309605051048237129916816920232446699628859510877229719917590664387326791042127343157249494504150468480163435091814078404303935210832820764772544946215426503846967997890075371059272816419556175854869072087509552508171912142268533453495699771112570906189244438885388459363538919480461437485088128935063078537516476060379519851008931998833874037704948895547918935490355558284928199600346192942662639547339986473150415662696508693377656240874864934910801096076775138561090038451909318118455331686660877274723630246706090560740995039954702182367144526056805209401060505144345475744943691612942375210870452059898989541419670891740082500532856795540880656039724779092148733357266612755924047425109589531228318687288666276017408395617052643608310891457678932019521311284450682963078845657551984626259093126113757942637438216827468906825371617128859643186105021969425280446002133535288330644086264058155847962493809876046059793937399605502631676023869865005898837948916795824439810030495606587714157619658292584753128982881884978342106980478319733356732925418067826116171582212594558164218668023402598601236640018961378423415891466878150982259389761481643504205758183226330456824218940112034400022134812848039896631836784610842625298577909914616944376612531831496026483854037419394516529880463647338562260360680444309430225870515328807454052599852378633391657787528895502619218377034123639121825711639884266552745081459937386019430865465431510800761928692187210577716903203721320412335240994215740276265157222971621831125398486528250071612912375256064719018476724565664835162756574168484135926458860248344807355235951909050804614852512617334684333268030100423823844502275693860014716590121797248927188294189628288429837512029891536833833778302750430219361015560527425087360022284344971635246209189954392795399100231931339532126226395770884800227159257474689252707664929427120618756549949467513272365202849579526753910292425125841343702925938941496493626477470507003132676957192372397994611728078547897905219665688811600823524478260454866947363554670957759050619085941102515027181795659218189498805467682925358674233740971317498986052976697707038245302112564461740074416014112259477755200681356215630064149301367461126343363931430896528907019706938719823089310962578420825961825869307147977957541001256383061866847749299537294917943480614966901980648495842293279595757682314868821857275101960998117630255530910323280899625156361197895092482241611763481065149639971927634897662831510637135087999517023537670011358703017062210652491697297551772902649664255861038628062114610437427447955650625316353959483445577899549369978872938457913943910161303292465668260647324761332545352386388815824531330118371754608854313897290694284102518010249466949658253118293864519462493073590213621180246807429578764960467043258684112158125793484634902581191186041576607012681735391207924590883773757483550813790836318938357881400920123770229576896686509657576969085511720353601902088166110819325416211167751805858902907151599746946889755056458016805540887726314465370435373075522169741570709521528525162414818538162338901504898088581548742667496371658066833400502390258133018081486036229473148799079071689950529240855819805400545779688382420509545555034558560604744542340777109301890703699112905516380885565320022437795361673044086409894204188256918377374688907352430951063070529008070820700050233569520762917947772521119012967933351356923396481195277150293700238024446406919481931421316722099138039733860320835054918744404788809572310920012279816962703041107989793144371613064460261946219918052742689893564731305481572925993977886389976376171669897180389493089030768186390241798286024305163254203844712493331639319467951400887507514678293403326921432148993647267709223886546415142502669295371882476762706776981305576920287625592105650300694281209560114410285970649298703115234597372877240261646107813085543562450644376030021145056048108527956119215156580005891045235687222883069314194048690519772782690244640180991366462395731845142072115958000128284693945533885179830200556264903635531004298606063830006963741466212693095648692945508427346876436951255649615301115925900541788986415788912244659264472818780458875218052865074758115027218092340878566140298199884184881576377266125059896514284241919038700254660867062308404710757923099903723723868315081131431195555925476103662700795804627137044917946076217088030550149745153265341739738422941973224556836835503048651563476542558251091483917500451926657858996945135373526047069973952135431945267173304055965014491451910542388753471206968559998246166610124769044644670436524928632176414867721138492851027319480542734584401218569078432744658146115953901974606004237845706935643594318030114991319278588181952581060556573338069056489303216593849736128902829851580015772706510468172325101752920559334955321842110931591617271082487141964459665611563436622367619250930696554847478459143419558633267677437482312634233573338674947830893721274977649524257815931955679372601325517366473623921558931325986948531276695793929887756402956348272863407628361726915965956095463605556371871563186575541362067389332385698462301272060386240625266845403402498920623900714842613813001152622671734371740190434513799771833784540421633619710329002746220441113620592186310836178079361455148935624356401135645502974848014452639433712776053204581556400092270321414516472560290234303864636607955541299785781848535092942530567079794195068737296700636658141300871685818893764891637976580905616953632792727474895245665407310910824566945919354234632896650045177232228611916441646928397748952190989848902821423360042998546778656618942512286496627721804953350589814071923746283848113439313484054789867660667663171934324386948565651843922940466526838617867989894243530843203826022755947989853752078427340216311224207093144646234524784419826326509456906036724712260417167747898687044819496979637472756143309593037155839168751978936102761424199701739681348515652406353291846824246829953672619216336164548681851733447000940800392782789433438984245269635604620175293627905476088145239897297420528769103141565353854841314857323681933680273202260224825986185554861756691609567905134368113185869764119485131073936582402187234823002200011403195766727322310546441797402310776735686946195932449184463638124937227581206356028445638572834416644649706379047315794470013913761510970258974018684500338131150683184380106473441949293203861390341066430109505239066579422536971600416932757850036676356187311022455088408827327408657428271402483327157890896327074897729667124900019217533698587265070524776388221131440210045765011427328946686945671573437308772714422084134059225700026541670640713349911361422480517740809442812852261753743319618361635108707856384586178338272145504539519229073935488661572130618324184566702299633227031785757464866329700843901905470669332211554634768411411185471629298455745224329371432537966168468895902552227574038771536731499977065325758536422737429756842970307391321763831310749377542622329434394720839726374160361351189074068086607277913927679918333317021979341356485429861024929334703913461597207374973985986024905289715560027372023192965549768292985744069480574843981413205856969783429271550253923385428267462582907349671955871781847367860837133295826486734253913788590823057721885576736249764389853177271270973750008133116855411823508230080915266880811071005586677604177744219064053786077139268674862001442238987637032007263719418117441717501848912981408957284684091631926633640322184787698444877832499936769310955300061249837762926000350666412169627565835064534881082753217258766783437399690032910404207687004134056109736270273093344900974138663333124373621133069849470747262724580362115720151726355950340169803344516567081900093866118029514943266167126768094220041552340489531683719151948466207981731151300152757033413536520916251235706863269425379638417617646367767279754174712162687854683355042853951141971488426814537429951255011012638879495956442547473906558833718024757544001497337554257512381268074765749857770481596111067067226459859477923490118144199639218083158839361840544241205543119176424426934708671044236577644429523265460571471755873642096839136339209181581734257628861860079043744815393424555641967572368725715687492926123680042544079497909813829128802388645518775404164021769929819243886912702156937517619938141160390413587456620550253778604736402377677485014190229049713407415193270277297925219169337558365019348341183303538314370599261773906138013315051748398608121070062865041804168378845913824549828585102832133793730680527646564371024395934486735844620391653920945766780792978291534035794969321998502198574398347543128074403446748490314189932708596264155749008744453606922790885220515657277790613392971016476156496320048904018832488414780199870664024290507087287844980607763440332079427837491908606958295423966129087825613692030004980825823719053101653303496329373272829069426324720756317991686472384054658126455429817468203414460486162772508334186872942643064601648424005828331071292263144820772313792230711829910451268450503007841737044338964428918508558250281158087727324454063116861316928758040382211021780764192420459053447773004953487673544942019795266078959671508753100036986784623667703582558755634008702508661877168975353834594714497587392635669472212271420173183267564534953808087459281681413342278807029094537660493350151897992725512541662008205556511991639013203882063513486017282585928125182085265436843236828886539976284385980134565821671360764715636143547881198043185076018214238290496488409538195610809556172468731973352997914700809016737886327501340961956478291585578208266117156104444478944076968880906748313551463212930937216225881629817866055628486639999667319771611563260034877427310659986343479986999839571842310948664719537101221261614862077176155912895396919513555297755574533052761886983726428212264123810847633688731887494943712898922402850238981065979042486055662108019410587296305866359483324721954245596716784465587272476557659320724382681307038370264863278671507488001220467118210931847310150030428687615490052623422075744853842912950601661955670083887503062771793373303157378033840922753455516286232376564275164576340426704020716193532247187206028638299209981241476122473679158761908798988021742819005920441055848533233414159021988423671380812072985838010552626026730974537355511156854264850915552721209920635856117142003203655352110585837689432489491424583922684190354695753652036310930920889602233322642574279168536508897238293769430576813482995678022058653700164547219449890359816694076899736172237264091023824246648749412388993213640575955577281969785519790766115818196288315714580159817966813810255236756859530986698995757134174503280476751792146330924579395000182717173819342985812634881037182294157431167676397943866124488323960055291310943551168958411300398662507855327606984637176127771496684819126662736528328975258610906281453621610554049052026991390543505182844974822895811009450112396649851041431367310662211808396103594919666465820687408741880489835956186460019383112411652434863986672455115924596690299006881088809450351842981633069271385107098474157534645733856655392674709636816737484526321951255865554706795177445174896805933955112429205667315962507385831657377413285513848285542763613499256133191498253845870784999031209535736942198830001322761481972054166672017459672986639676639918183286903123838442019250590319130698375171020516213095564146348830098869449223969396688759596420135884909210292181200022939671202910376795405353293182607054882018763477548317365471006164174518891464798106402820624124798205684413669223289835033690027690956815815731306418843314077837961410882828295753054688187008336459122155588024559600097565666221802783825511386429875647671275528638200642254128010041747882544773997133559558355327733348040711983647220664597635166246969558072563202415554813518329821831624753197866789950774868460036703869407067370885062502126347825881399055742148559683242567792366806274395252870676714874030908636949748564110226079686751407101964730960392984347439850945092807417893410955673880347539428256395179131790211410326369936101552838242211718795962064530946049291256545095476371395936118143877216255048119841946182038317878810972800553621246570620993970879531347419376822073750385329717021774606101795042134032993860012498149589618882928904518021397464885267551208292773448237949907422986765305090638899091831517445609270899413782694776929652745175128058997651918508836982021253675681777356486397988110326175650003450534662274916866188808624721628508047794243972432566097223297095196804363672753370347414926745802981428040684489966193810206256768460362479033580760122638418680711626579609309483716709218705708561953549726617088885212909453469247692290231776262475048222625928163638528376455282301023893655754366396466151828451208688111604902855122409883010838403831039858190248737712220144053419399384186059865768531461821028764527207352793348933164529032750795344951696241599268551162101074054563611551605738866394307828493193015288400797469801717452847469220746349024376760062166741789210023075578917120981521730934394225583452143021492119148449481212235575989672540450530336575458983441445986203025763103286409315091351541357290394743537532674834612182435448949535365846479374959971941738243641544432733527182542667768678875022631672051798262643003094393396849302991101704953794634263638245448958097600272542371088272525906158815733646027935142636601385665354252417951658952148111141926678584118974920897648989958284719311956699110092044409448287435597303657016465426255258580105062031863589631501283968209908504433344752043369923207999529403316946464545931020685624597706204861850269765866368371923689610567439619098866097705260503145310764775892356210805318917238788626967961902940207614010531332416503818263754292353366647490693238343280241084933029370919073113301090761963326667067023595484248434571206043820967145238577280215508567520568507518060716923410081781419993903165344049939461232311916125186435023305794831006531938044088209659815215548144329574011303567694397079593431854917571901353448054665502137560637604986304360843471276204507538023420182557575986513591511070849767767472311454425159901609486111674120725143806377895071143466173013364096652154776279360043356651671607464024182893909771811522558665190234238251413582137820207278864113370019019639142722983161002031712573483389621641500148025565300122834563362262429297648704153126412647450062903488765562303461146487485363642296308712430454012057982405838995090868437325641058834876652130140044619311015366811469830309834833913285061642516867189976883695396335130650719432946950469128067779665014685453485198622073854046957440656541587827092871846927018459160880730869013431684932374174933853761707472871316914609838147536692670890057093425242014166288002689415728613973624132687969661873722099195519021905388661868769500485811971839719534636500691686664160783727915156733271242034411730097395638058425551089120965544713833416872994847342045413323160737887764006307578796391772459999230730715988805005510106818493361888780067309640882004148865914079037282417465801708897925870789443622969301482785939730860915659426467598235298134486961401632108400704633131046616183038690627652992780747923209699452002767238873894532565819664802400168283575066593281926678056471849914102597109591444869573579361129900195495772266380792487908138060361548081713830173584541627439648173558527982060703272304210889224677732075677296253850189335653763399424281571312937830013275240021879936952489442998487960225551005123947339410767278209893172360877765716716237135718871577994035513882501304178477371208397652056506216306531241092171639672964681956531388055655784546065276389962847293458112738025015152598513730738353768932686254164136165014066806761450390668662565632882308460622563985180056518461821756734112582563383155178040372053711594817427641181034840323020505237878576314724269211042761273845807908409903195912021797260736217845474110191529546795669759951141272803375644820517287263104274597284338462225324924077917196508210458018344031940639292493412106617129381735103764530907144314504250776508567870024712334188768159585266687521841174250348405887287891257166388511984961261863278782663364447967461245692715025043239236317132217519338831007722288537402392114767877156972790581223016959344542940699474931315377828386354242000669308691507149794674361283758466993481181608899713504479048458251877548681637513375130074754645161088573847603847411674085518236680037195051890036275098267384482644566008632644010235520451033461612310330779702582376269067569099914893387134886757756709369280802073679443084467815193996187638024306690184583515894399368189304002132869034854484593505991882748597041137941784721992251843617448860529724217368847211824155816240211986652424640045281196305740462264599307474484901461737190549841556294612441220139641228171378693397739942649967434696999793011229561398303990181386801163836899696400315623662939705925321115925867845981014175449495579249642238567643372988304792027535748672233876591903318647768091771522040900373059166908910232013395097683679302109085853410383399429249416794147416130425512903036427575420079999129561013465179972304480256756618995150478502141390216899598233195862996930931170074138560876813812949439045151292045056582295069752613140106491284777314610136556462012621928204985028741464056757795165636767623743785952162279974514833158221845362955869423379276343197992277372785438032320768485528492424024022958755600751006666134125820738369555262222939182798740475686421605662084267771386706695625008925568853536577680781503243053135563565850703541405764918075148536461070488628107616479889047788189301983477143989137594089769823705464539571362009262048544378933545950378811095089013617972639513567575150286516986625426518528452601593593736496344163479341738459550821101626734103324939016340253468433164788103719334143227401946490847327359862291313408289162561929915672832002726308446926405710299592805146842057397518710059909779592176533274051283910863917374428909712216258182393524508450960116121500904536397552169245847714694603622638444316996545227248781084647606491197786749682806652709309976327832457194138626067429515418263068319434352124892359194747567476567246320805678191365924600828342426143861831016064127500871883472993107309428373985908775782137615712347979491366696032794478319237948095988993926531884185263924441656004795113769388672713397046197044364741511495114419461748215891181951578933623476813821525788200516577839955081263229038966210964422062994838620758172539879019163157084492056513578967213430890796570881530275854150232629422206806233790111642790363993241823597640393229297753526278750182355142649121150096707095268735974578921215899406704633660415450451551072618758336532744789342380173238553113777099513303727575859013465821262084504135202375776690995144364346374334935979866081697590156347281280938144026302386440126185662583158675539261107741417207999048343115393912793311452769653737072068070269497586294634849916333886537663104055289957416168438957551532787203439373316006529161923087908579176117515655151355627679084132972558201344113930993866858633399902558222109260934460730046933101664986584520169385450721324361978691625319213907540293690039416643134149269039513994890093039574584720424379767326267843725561311040189693468399737715187272006041305247760441226419799404489641970746921717843060600295946435261285505811985437062311856607561197082004597084206018721139324510015635781593585473233378233736152141831981851941811689925740719231611271634062239769033312672495403934539708835141051889351389395570823613633888394478982026358847071531408696661841799240684129616659880576845354561478553888267204359823030350877115131554266140551625425814619317133345594701010489308469650291013617550844307528954193557729036725360056437788018632701113114009491364456909760052186470107682345111871139816311197898529715819497998200257585617509675162399264879236087523319833083078180347359000665511684706458858028909651328776922641607009900710938627999873871456273440937306228486293356851762818342767641392799427801038062937438578734735347611664620941309879596357315145261344256698490995446239241782635271777277468776718940966857501921992512261080741126269854053133154871265074431076705309255485468684880803993373282279464363206413743867906494744776135508445141402100830709772560238265768492831845464442046404633926913922307634493251512323620887187606598986492079597327782894676414067533098471474121413323407531019910756481533555259527934704796828661686016380619949573637874475675484453666192260755437885141345879448255963531424596491014884779229282912856532921569004269508469558581054030438387462162132439190382524034873137237278080939727076733385089543169965990754554477989171935535860201797471864071235003311879280561338366181039381316003448829941221155479902996328159616914795269813425664219885781773572865819375191447912243714764027424626454981917244077656673774352733063766657294982587480055622705149217228841693521534215772393877814572850710745036224720163016093998254245689651572594770790223021390574048234722286235716074362726752244524258950997089300795913414223291918268433997107179349487142765415239673723331848244479223599770756143420116118626859882495179594913267627074923722403338546455809911065915761592116400629943849960237869643275396558202762287542358778330797479537758537869860155101722781295982151983833803937590587874552840673492713982870937247135804943042040099511665101351122145352401214417794628260140118798457435988042189294277759910919731766990214783270853808087520752968796830569019430102648170325059882602150095346620882262117323182365639371616810934786916563448029652694101189087535337908370268486878601930321844386076865796836851556756980909148468788418049022506952048134519493460376031279947044807769438010642025289522320200961292237774001797694503236399526811844196728688672534531582463359461266988366389209274441625079117409574282022754726983315210385799014319852501929391028429642138704733450792137201313755882008701806438310843599284135147572898669796175471632611190903308098033877230735100971649447232559465041526636325748535490779776928248928834815038368089625699961607094137614853814942426470488107623176320265457792138860661943782631401650320832328643020192642831800554572519805079286054917251134221934693336446443328342100323168606958273721457635755646814592255254273899512296346459742805321941503968633764057820936111492300234689568196695050114875894215715446932487921952414420002246454831412447791717343705233640688504528110284035165669249630352975749279457450724133255821182207241340254221266252618611433456818694860189371601113507402539840884236028893320035643679667443691134536047916942949002622641391148250534816022267215198646370654280810124894024471778242328015981743934559812687063098103907065373157944542613098329250223397730559374363838099396489751360167327448828868390555624096238442293994430649052277253388876496224155854379641976023884761091443636622780993143116585932933023236714320694255863440537322621133379078539001203109455264308909704365299257355354793266578503629843196570338538007575350782543398836206568040331663324821198235552697721498560585981433551316402284070115141012001018435866584227944872592076955770480356988777823643580023596745385739040766036582454520070023332683254287326528730023286798050255451467747542119990550028041939032594832291570175754737371418407626345673759026166905076421426207484755553817295991540012223957631155298831219135341028289192122427462949473998307597617046854529169380039384876963610626055863155707845602819365297274976709952387005163781118980272067222999482870630510185011296646040935428761460076706936136270107259702994357516549653337903519284263394373351643533577125703544602403870528609627610669443818946717471959747418482564493715683390765217170519042132925254713029800431539153667317013253134024316676888047723777556847555624924400575726836048747974204213994686046630054404633178697180357575240657441124794988333023064071683873114478744043340618145752377086572658063582271161306790317917623766382014525204445393292360417231179171941622045097977174865943175139569656570592184846413133666749245078064184912692900952096063985679910803466624956198461216036792469472594752874847895152680153165701848891886256975953262793506470378798317305627498966165986213212686599452260387930288808121269137227712308102378282558407957508698440398435218659743923642122698246676400635123459572796393101445835418776900583749160727640546579249017447877544940173581600614277562368718423597969121162405315909622942887592704344367144081286163437572727458667248271972164305744356321614377936123301034416924594707286601726585245325379206063895679407569437942046757220163045247407504979933334843146845426152936833183569211555698454307924633399655188732556022665866541225482699032965466009743960188743649247619654519421552529739051443906602563868992013209086016719751199710009685114181169596316691795922746128628719316945356296606127560381165265619911022654431852504453360098093268305706788402727451322559434601608851715105956203080126786380384906319552837370862664477003215739449713664475237373368130524224840293747858853298018315300678029066225694794670830427751374628626668595313839011497354568066705268667437275253506250929452559321809857705301617805883197378602567228420849750020906361094153212075811290305722283450045450682747977477487250761470980645697775261697027880065824048877997255398607920996259776803631986527949787691536127507962278620663813406792964609448493331697176730366004121356698381526755840836210849252213263467411863328420453343378535578467128406397682187957986442050333938029258954757474084740056148331236413984502948914389997619854853680094415315010001370450375467546688567059089427277736242470865891578996337235503642257453232630643488522124516523084324524673251109128830981048423188961302429499564613258252951468714356316369729737739225429777771069955711804827707345209715923961686159601544181474118996317246386220388128523368978227260681825382667227872407841276738622744916289038088455962101315741459768039554763243612852349926620898895550536302936003209132381655200722732560229671339340522105116267336246432681330923523449190977009937932273623978849134299615916131517635180717985352733827350783216730512895662199660609482332198459092008524759760647477148189535088581941322798599255985435625942069328562705796031480030997907675944535084128190664349472439822969159077637276464438267084932512149250872218599836352304705762745262861242072734491603678457659749176405220269906752776644094698481869151536664100645239271060445326862815893396635172528785652857385501566017589502124952094730563638659558055450453024995334864092004802542036806904008905943176113133927309809088466413787828354219929049813949019835199460985514274638006080406144564729795321066739556480882349196328563960127417589842671798506315307550010080424220431443815986318676094449938167363891523833850398059802574803028543216284673607377978575575482816723863839796773786071306564379698204007125651326355888126874463497812325082773326169040875887108660440009880952007197552185785209981551904195043243115098646219299288853448652671455175236305656964136973127714490221494505098733528536684548761505637166068105163049634480914548365335249787060141407479162590890025543872564360741723492729659078075697801881305986863364106588409407905252660314138908399943948027100432906064937331558208893357081825181181264547185768725622062495435144270642070336456502129194768974656846171287554667262596836649697228203774349550712962115627827327719673827158204037708036517403828407619603295808875169454655667567430013423889040529856948816261545959074554545267754013485459767491604211425111712112042027788276400138725275108006294243810916527607055748436709584707131076631157404062679807939634588262724969062208587616460855371124549702109653302239401511718003447391970818970572984486188305988141680925056511823346526970787384453669819825107936544806547154256507916887277123288058003985020360938294290883339509706873608123956848152639466863948921009109598370428436389700541965013889182899970757696938805772822029493076958484742673589018499974640024255454662043415469436833815877650903489699297369649992807264337200417447255634839637857703761247741630340661058357318440535975410714210015445672202597371001697509468702410169865312418126490070923840855765257639514433912984472906275354749095456902814112441268063760697576096791541308681645526036039187203592646633390109076151899858933889399083509087397030625014380538523712461533668419548200056323757817229864698877549171425816509730767678587797432341777525856940211796374519079039535576816638094196375007842505180881735313109542410363276061677468104382908894997858250819281158951594093817802124667201812148768339866416332707262201087143103498577314086237607049387703528996796064581656566024271745647558426351759300722301345850614714510569510665034597664311029470635261317697041893795303282403048532244018990088135578555506744417294908227541690049850527412547511539886360870008186256726968230034999733674077046671930777195091398894998927755224327010665630183283383176990118898853442992129837927851862255023934295198311054655576323098903759556785727942175445086849649083708123058849463052346072397825210121385408473294886180564267707178443414924325677076080887881089782187451184737114317957321942486402225144727420333489087301056054199564244813608130776051571832505181628356508923010662322945918039341409821021196953864576612574528318534123080664422098989534047451355364071526838098731377289495947943405535423193753348729996987877109592809459892346887202298325626198823688393744320496771622241931432629896228617554152633307103720926662774800559224594994731415301654834909471765776058649736508241819328919678134379121623087785118753585245927944417990620251254166276289305782965108908798806628221263817138208403903537120756399030499128604252127982734968195380746297751455948198122809441123339096576555112038033237742177071195630856279498810754390057654297836334473389579522536982371031545214246096331075077042485078105279204275591564508599175026842748727940835406010187600252277000973658931019331854052720492154090587482723570445000756290625708446751616870259240686512118349495419408963525904326121627528551920141684919625930107934458151978581805832691251566368592317271699770348169632199710606138107317972965689871757384849152412308083859053229330196503410913962905826791941091565771239105887812437565456630912837419714416911443844433612852785456357823428977640119795997962131393251420820832985401513302923059977915244927393626971751194380239915029873299775573879718332265937750709860190337905330545167586177025551796222614628542616727049937054939582998026474391401746670035144820761428226262190107785739689037716966638707856616359590622147532942476604989484796776491179934306655416316424256244626095720100521252900734509322214123802631998538175072025599530380374075987090306892313951804615827680826057181041795758111194057178689282343401573921489106823720680772538893190011895659814249666963750743191590606722207342345823811921810838349999036726559487772634634062882240028208621761175975767771026537149481215479790119556590507230841468733856404674729741974281488906604999594127395552728196275262176898721099317996432077268949766784913976568330261187007395878547354799344496175010969872538720078140177779347636817448933745824893568685083850748219314695403449985623310416422642127404713234796702141480527979716373567270951303350011755133571305026197426697109244183164363876911992700434872471636253205983575164490462518814855372287188943397341260017845714939372629966775494371696794448096319345138116103813253752456573999055944916656706075775053065046456564252404269809224688790936168748539863410679436018010680811636261601070735606533884574099737712815676374472154795244589582489686069210822372525430390900303575175859992630660691914769302082717748465092444533632274646843020221700386425337532376371675204512507386276189591496486891176092775782964309434823536472797904085258241549797136347451356764530975523867978824375772267421438082930491182690150843923216324275279876203911694658904633797713050511582558174826408585331157961510960491282126578641618357333070614469665964155980770488645096886512704001470969279471583356450307021011235725437663587194487070499380287094789079374923615057733747539206439788689889908480485994140712223190753552528237208887385997461800724374285784697807804492648481858835223902541463926755867975444212046344202693044307440533537579173476830895459919602434342343780598822796028154366010989632952817466148670011019912150699722671439087640087083079475215574380580208604163682035156640478787170016518439858092994083937928298781681975295540017947597419262344117850720752862394245255065083675134830994412819518486377159549238373671798060740725348943711636183193176798704861570936210235540035207311638436396242832993362867495074665809749758345901567248326813460675046943489116308809593621358848576087261427204371659147283616729403754225902040348044497382041365548576414745994344782468990854023515274939093939710877564702648580708929317525316772414220120606314973095451311243880194521775081247164822512534500263900337830791692177735162654920718039486335174754931313531413389951783607626818340332036673476206280385947881636440687670577074668235294538779084633356195020391574644581795424793127428241349844796780312289131537402008680451732812981163345123863557867945183319068381284088940438088437708106526027458010379364509022731392909966718451698475340197695357547606501656427063418865825606681493061566653391862094950463122930321089732205418875518138763817352642449882203958134209466900392252568807668359168872401252589203744771001232520719033193583781627676179295145755669220624020352767829895856851133103387308035704750354982730256860765248558974327883012483033176357154712016013592786439209163908227921805057115832698290730479947018352401366494061201809857481306366692284995718687322353516449911622858455563503624984216058748888100109680044105237642420126723040524030614083753275511971520493529206807548757284047705353354230328665742449523462350555211500427099934961510467830518589290633147315009412152764475440396238042667122290691354787153632255156058428578091272375230185338715356920202376455822035778496030168035738588691137815450458759120484030540413199372743331451758836209989095700791642789196116550021434185619714960673646868144043483252603903190392396769483198128048013711479754931356162241155527657628223855123763720795113752130030362123868775501316914757460223824434948022138475297796953357881488585270888325705523914448357677571535031314456209029802378505160633920772865170861374753627614101243175866063566505643364443219666137043413907779596538698801234247107804491101832058385462470683989647050266308701165949577382109363178210102159333118224729340370139644356433686287644293148073915192376001898523077118057963160491451722082967323694699087772642250437823974954498717396172001147264308079081632438961871666032557419529983074520909915666630226377067129132496014551251268843225465740688962532661958080547207263714598366597604108767584982647974516706519602140290489489276041401768445391712643253282183744202360676401707655137300260887991476017725713576881792500630494079697232395979725126631916538781014833742345832534708332080778500958842957214938523658067430261775179049733975204091706121120504341025467741877212572804058204302244256736789617840500727257153973591994573268817559916255314812382130359865319863502114385230183479344568630193538827838649882996302297608443513404522831070124177079533418335142535414138241566122357936509707338528334474465740183704913108502963147717353537439909540576867001273524429292584197288894989501899631833697199055008846140019247900999194540941057832920187214712061672846378668195897104595708720959141781840080675390548618621025578957123904236478054026952530392603828027214109564572231790643422263857617586399423099058108504818363977822624823755608128643882505754751102118273623702126634691552198112770362363416604467052596844319973334739225831563776909563900853995326886248556129126774105979421511580291946816475343745067256956334720687724287385727100576307093215883056286742429981010957603542780217999842247875811613956830286678339045374255070983129508800683627325884666192068077869130093440634141917430401240582405132754152890833464094676732956357230584632938050798591226889005037257953212191004890203243308101386684900107485090325085798385215553851477401321977689020141404393123782160571899834615459718651723694998709872409607448778529677994994379640771342346898660065080266034903338858112059436265687716369298938208720320990646858755535940635524854896209104385256171734074340800771153083403726714712271308761948711109951763153115218752518476921747913176475856582185798855023613783484605994701418094711656806707579442257216580377470501284452422628164276300174440718162575759294832954136668722832284335086294131188100764021556870215421748534625886520963509318280731206871334867347431389648823684683633783891995764713696228059476997425128424343752946305708772485846391074235473111731934821414841036578527233358895218507162184529478856159380640178099091182462344319080667367418566211516363760913910793385000279827538817731145333827928602963619658152875695381974013819514041923222709806310625968925750412556585366644395043688125147054415662932884694191532288660774317885970586333443785589888129974535950374765303277420145083047019829719408965084539312917601061368952090222889126171969373106654035698669836751981039539020159340660772491896713170241280330013267021698630415336940165505793633281062128150311410199205285249672761415008677595229155794166961321857531472631812468786679723269933736491325896109366351861425339240229524377110646741468877212422991887681558347044994812180826441162284175301157294034386171997796387224533714498136424399982801541137784698334840366921682023979328671751973285084066574256576993390555106023241957304351033753466453015939293528388341086747418109998145330324194035442062894413471172713194275868928559179180969537492128332730195028311745701129481161016492161859862128491790008484548310032141180444730150716025749458175732019553284065111119914124398726704121542929432625358370724036486700709569450229938787271935248819096065020365885682933977271811468073799111103304800079748237909225346763845824255847377297986453912441333691214804133907831677584043438661424206849432504145083938121164017506333845858852664456845998317653645069477224096032209171864270201306526950414592497311746520374878906227763290528658031523491484602169592719638457418107390809789686033345031775512900195701006860360225801534743911756726243092980440256513409277706259412977535620849756305562773816528048495698580498396263925720431093071760729948097833407541114017412160257498439979593247880965877886495546170083915558520891942190210269330091875228575576661233145842648554869639779644417141292701398640780592521110745016103216827219363934858011117440880521456071104423318154452941929870790013078900606030729722559147997720354555499612704098178937387716805858929300026863007964237279191399908240667477746435143639393744483193387820492903752537217467181994209797143211584369756617981473454126336813377070344245243543032546464081140841420052066819238166265354027293286397134271983330403794465808552777433757094960942218631653007898303437953811562182259258102268107212205740080804036871922265068046189556587603890451948438862455524177593323957230349362661466427482793602741604112951716256570814383669071062949268855914106144238473117572888568522654502858742936874460995315684499480710562654283141915473183638912645548335765751685966096354664579791252014359613463228481387693694840485639550984882948369798640828828956724291226678257185380515548754021983321803889044498348226863381903732479882897197079020868127163412916244704367247669530291749199305913292227280029230380275818399432459199621728039327895020137768459700138361857638763411701654493941424489086519812925186750034182685350932010640868689995026542218778102973256153109515134577868040115989412401084548587457459756134180754227631688177787690317688798758230933917128340215983312902678188725444495671259850824612723389059534295799899646732357894044737556575585461537805908266135899943002189144325214804682114542394605187450909822573608437852031672972031695348013421494975014680310459751473595650181458287954882584175715104903091036303243501569377502282107436522096489211513261606909157238335397283445880749247341042301484448515086490313067299879184133216535591229894016035737355433047263130820515590454567662683920365661520488591551611605119765779003528694352436968424472673444553267246476842663536440933687217509792581367751993275692753091473526389676022633308428414800023674984130295349488265114392947000088464579970145870522631217710800489243212109847404370764130059932052011064573772704270268533845553078558492364206433472927794915694365812819110514943747544742382981019141460736598492490298846825498151144936170332451999231847653917393929948552593558460393246999263363849634106200080094307205817786874193225226837066319366217095110235546121408387470158185098938392302967188808364641174320648647236471839799300283589164800016595592009851945958964543041882887930230560821647037336064019911181159135484532719625263066619735178556102188852536593817172846001567120605878384589339298557877628190682993750050207242088913919289165076027761850775091852680576059985539924431462394456820007594590816841844670248850712877800173262086450034447195919537782424272401506227576950974360103340231051837104290375169660171106702751271985674645347519895674508995212262169147041174829694257446009892825948820621232202677963742524261637444572371606930444193067283814026681498256427455456200479335810676335207782822011582503044320388340009185559687301609608173159655930708764319448437692012102696801588258448896636047924334402403223801793089840731932631376015405950824079260577471841879218255587081337427850919559165973291096955737280697188694042931229200152535496217700607841488854173420119720558386290223569202906306676740688218731900759431868288549286427569008536748361262038497743436755148986447252332684172500869628515399183117696026199773841906650070566819219507550400775631566288767608883782135121794828246895301429811639117503809265625141834210269916324130929304789016327278938418593323158997924560858348788557369555536768133206623610807718086771264505693700495223805300814410246711329083199648062648862803946514598413210745817427555343348723659448409658924019356256127092972358683818111212281923383119954341526273337252338945851734242526065542362198676359056082532146007775702966605292413706951274457852482048625830300848064243941198993081268104285950538933868828083016016907999610308960692142544497163056650170043030646763650421918353382825572395919017197700873506870559034029571407135887706547588480738896678122028212261731908634007381776155305453499803058844031852650939964358389059560267924539509505132369167702262419740657883229227971906871174683755191384928507696296660068889345914655941060743860880929264594325880924940690761817635611991040021315972849956021995429958316765814257510773518580498267480215391554989051365797714597099436916835031769549435494644581179240263608307057598470761342698633671352745280811048726286042032667747213338271849926865217673834894479969086471183817011490244952670652014602063677081053022987421664926481233797134294712595809088322107017272968634186877405495820840176332228151004739351421752364080783410747158009427975121751593295170530547943718790964533649563647718897715106525210909774990935996419657723119803288757173463785930480977493139703929017972867784282479314696118639987433878561665842774508932473338306557674724512558505477590973572407256310825032075878309710235882014297616878597201515662059705654763404910497183177994407466069151612038869003219039467394830741627457322699139234281933116307988402345396176370338071419882276385999566749638931029758480383393084793106056792275222672206127252579838731953797569562859414482651723433554021492671932081905727170903384276602436646879024559260545181723517227032703719632817512866920679194837378309517945328515348854296287884545035274719449539029904191129481694716851504055780249101233482235062508309882343320451515805193488858315975275500764556117431945834374483132400776294352201319720238039239905551123745537700699081102148084731657234874158285568765031661663014166114379663023098332085397055401128531297466085912872256169303302085219487778890592609279340196027772869484108201382448602403381814499996571671549376792999196739654417337887255505640007511214177435749223417871771355935235180768013210948963877974599499182211413272827826051797131466051377582680236476148951618576465764158785391378699424369703934168891779561589998838459705625460286169085075582005717787041828950833550410742518960114411752333641816203435419192645000090599573374158793519173894249862038832803106290353287742617830902569299827778147505295446126682926502693413974111765696389648056281055274887734300853558580002664448899460187725378576932562264317809832118773747522344750726221969143489052448961956939706340585355774512367185748353836540451446058172441354443427627843320219398770640415772607065337850269011144090930221393334069255128062888828196807154152832486282406477392031712560649086312941784311093786161072339987188491605626237542842032200147104684879197026496339429178025873570516327733715434840435396494735321995023056118088863891419210873272707704112204197399033648594186391143647188222482520878054271569163601224488812214403588360642823033385469574817516913678346953375419490332761680649597041981969251221832455761517626536400117152985698444260868344475445711195140269475441524446584695362960377044922847078471128218634458130334547405518709981686272305796812293579748214844615854942049680884800860354467526649043818771326619475730948960785138875256468538986188538917580487764496249281702200024666545625247060620641617594121790063713703726405379527093809792951085498670834875097967146526955706928135962350731661969605318509756290461736117853395831679507914497213021081637609045802982811343721424526012790732793165971186510316489514199970121217428630906953295894115317678979057950147982055251170763205622806645266958072742183279796208928878572434659864548184692498539532429885134699967039874300826621128990735766217104186140972618362312388115940697041469086657253233364901000969676409239544553462168601055405765517111479957381769542715749422828900646979843411706540757139544935468299383059548777158396607272986679041807486601633001321649239338617655679280323605976065916166980021186031915716673089386355871981482628732157162347987892729914463542663736027873304602780584886639813958735032892572934547081696921544724774459953911704650148834100404775792398994652875617615079649205400751661349608260721730862104079655449950579068492453046145617863433471423675655289235815748315152937281820538138456984891546807094232111934573062837202999952554711641586143595857830508359141204613920786019168205628061223280408906824470898556174406573586107919142399133811911856310726714306793426511287777580353086843120667011768040381629684500633993139602172875206335661242179165543754572992431869138144632181938856819213973405849168207578909432524580057944678821381348457571433418595618038497317528105671528324343670448569759442137022488764478220304067390481434793967831521739177165344276033695028920863832160561571773675602527897576540434986154144049579989451444010019225004582031742615052394146755224016384347053497691454113416074589780407759289065988175585817886840950415435730613220676419569921075431497299519146719960352099589043452287169086795005029521734244959743017362924948573947725576759928095572054018660007956291107431565903073363302407601008125423462530899079165455384827428634431402815901035833082945948362398280132129416657518614086101962725726253936697594174004406362367561296301472138899198182617379499970026001740520193669309454207109385313424513626747495600099820066980003085041740214073875178619070390630677503376241565916058094198147071698906989145023784943864082718377998317347854016516819758442326181609651864946314805588501396067386580937776878307914799776960235747913437064439152995560746178957541414427406462880534935278626915976893198996402181858533404390584956970521378941060708957525300416208789145270007606136463816813790935580166133727648702106427359832622154771762697448605789603511100503105933597929807537755127960608095009130792499876930871010717421164971476806238295760602665141711617170913749958692546265716726602763941831680139726584791789068569451358605371548273469069217332753259614533438915459749249406869786715519960082134371296873472126591325070555096786205265331594336950144827651928061155291863991237351533009028797383549513437326477384982632836961277308424437673076653491361136972223576612548652567786540523356865753014904493217579863564636401223603943277251442924258817872868937884531399203774303927706890223398077160868245622263192205850280300981847434295271413387914391262052306309096793089109264642771979662173652485715938202100055100812406029451880393593186041436466293085719019729888870057444016684011826430612114024161599560788681931209050536352134365478695787558164569131162427082931666524352966777775996623253878838474150191234069717513340409644150885307250945610670653821399788667608436652292195339825393661550892606501338206562034531046609869087341407286440465749315898493759386216659655948219947591330766932258589715777535053254408549686092597896900801130794842733960006813690818776147604848429111330607215287689379881659032894437792569416087906303458672433769195090112528371859518767888147935330463098291415094230761279495780273137110472426915868414307160738013661351309846334724368294281811541332789358657651062135693960561458993509712447312383350380987394625738591435121260379364387912247012994375648685590956085576850959190686828989893965591468166080367212248768807093841658105247066439842310907117303066338399788149414879643671377078202531310878906974398413018257732073837112750660158883917843932166430967087533922502461615265016163554387299271394274976878014242583262839295474829794739615926012529028028978011201431881758168871202508710767474410394955841764124322237267113699379908714396995424823744682365265091613947957030242249192470648203170205600816435333620143598057155279348631784240917198134407521063774370445563231602166231160086523067893623259861542422251814488366384566889842232109190381346644979197305529720944309669613460611956539630981070967492520673919394435522126276782532497046820746127294914270639097147670833601318963832768346865023107044103545758489198189757896685569563947180421343520047811088832430322641604254117397028474839109748328986771747038265102282773821885236607738454181360805698091591820120981011543556651801699112314557406297290504422163066198436303955490011350555330946030518639593122132677153593637302977534838154477797839438123309406389537793050873477343525946785058071887947710050908524801403252435705691922009630314921612858684690023381492549925240932120108466027003377304213416298464623520680450684078603199318919425197020686101847399816259117952117191661411518441010749630424909476177504895061365934439363487560331192458526938876688000239047089624512942726990937223599421652768870757660929643031742325217899867096343772038400290410032169048740859171121349130409314731811680872660231446265310367826522802188112103310194245424424433000634333460772669983976416707940739669869724687953023376880368325635121306176631452189483888353398249558657817405859365241599821754512914548572660816621908320975709267263066980826393454724140986688351072995015193310865879957576186042061999476879933260543723099018971926073427387306815100785118690114525832051492883048315880123777996421356423209563315718598783911488567066310366085003687718456133889596163918645081409922598225959450584215898305694891998769943086313292517817359748765184815172499588429615806989510194467629235395581074441200397284006561283711868389475676654019111341638668362816342594019349852275731710985093671719230536808220828466009603567318952512818795752206274068489003715439222743253877050048745525199918138033724761787951251775797167552266386956034126359715324293573022461454196660903794728839591183620926402305836342546660509852293864843585605542442703047954445141610527656650524205234885509682155731354116800565671120340686215047092440038618565888160283618420194644906509020970925993390159345734398225695489003991514005468407395709030622314555582295007307170604913742630874102561120928940848918214636872102996819765674435570440935672804227101788018391118342786913049950960727835547028276903438261924327139453276013275511637968442835695514843279772937248585924709092369696022284321710203358544565505921948719607328499705338474716166858167683849689743997991359506188389157671661901209525392019239493161755688333395556648638772557862352279768189222071187903685656550662339899939316350856835749568057901063101241089497804476773741608909336367070499875393250919473250355222413063035594891888192677599935624694910196154154669279557755718069122118925609760445001897989949117523103718454712755336983421271344852651663138663978145423442265655679915877420265999753194679417433720724863757729443417603215548806321031260844179112510092599897735766386151643466632456499368484558865667773069107667768527261036339034999257520150938372878313343221259951626065594013757996178378994091121035342692478932671767734772674129649510407823399315045536378080155508419277708036465679335646790928763857615249945927908939362217251914000909173946909750523030684937493517739346396699883011666288044788739146434277066020034613726256179352993744359636963426483675872877145129816378204802555546644502625387714993417726664686170440345820050047268938836455797424281077128330668213437619633850099520833281997415492222592593907615259482761355242378642283150630798213071469757896285735884625014985451259957410998094511420546778400446144333041607922272517530652549851675464905547037953506799102198951451528375948295076961321975576015215944475222822027525104072484308454115363043804320285423264503177831648983470254952413233485397721062657052353514035418448302287555412907704664441031703434821216377793554314072709210751450356300361698715394263859148278007100919995232318135308545036410330039725259885300672691177305387874205065484566056149973617401994693824656449503451266429631216544068910731734854455314685591343075685999114120342523604560095160530378963441789333753641111433651735069783560523717819157759500251032281120522225454853866824839609018787563625646384429558742430370608205492919557108574252389522568539679630859790544463678523620448767374297506697662447284991794308401844756350879410061584088492724897807348104531721612212273276446223909661398050299491192581341570115566291183079919086752924641303731709282892724419306713289208154142101935142561259112793439165455674920559608105677768028395231148682095688126998230851645498665185168879108126258900729013210475717133293214725367077346831400592527786112904953650604581070975517072185976377435580674206262700650420178468445825762259455446068966864474521407369204087365519769805171323544104330268291725782408189517090607269060775991956303674917162038395133714125463905133844375828978122081363567654967382773050325972593334955963879282790297805384252637992438841618771348407004458592656893841585456535699960658098850158977817820915956588213789106554561597394011021501003601558946570087496342829268917674491044648592784134554789151875932259653228233205237523923626726674663470242026066123250088244894197564751875601596359864558482356812125321250054812455449907502980893585624602154375868535886830959728135581305129679671866149780161366336121416666296762981070930105123888661938948376930997948761501310374823755989892408422982272887415607482355841494242519378895455845181610619783362672888815963344620687685892247669137768350629619146714878558632750349726215000936382807969745593289162150972598097327462032891387827368930689921867211549360258678793856214456873742663059236453383089731920184518753669971120357530553778846616337675947789081269237781894408196295175062785820598536943193715792344172884249242998999527949479406312496604536830689113558016801127302301973331130317932463717827721787751821133351103256290312183945723163074180069938671547726178874281697549561654620450827581313962877765393963077162735126542155074436731551951022624362812717926418218553124640797098235118368785506095299127453559240788659350270877406034625405012783830539477434071271268745667245091668294978013039894196644836301740302313286712999191522522419988821702168457785903732154588605469849641545266334297516013386177245553594666413641020693300933926862167571995654165191360800344425324982731576215516532628257768650770300773504306778453480519385239124888487516460768083265767139181346560190417534394020012732564238809839961876110594608586492760112793456726588510590575006662018515247588258798714401794239061843475124575594020353779193258390408655789948994063336570358729412704898750523864757696114595536153427857192004151081328850749588656965237302942380801460926813964893544044307171782931696919182250919647821131027321233166920831637091308851074404541612661180365339673515530707178986156876015199332229719349628284612147097536471050842584455602141635275109527010012614583630105017931730992386798764759634987831446906349810660364515873906850426141607594483749561912986100576835752031672138475450004911103319140565417170771923635272275460346746552491023221313145282286560454597224015861107903147449733991425527594577390169256569784728698400799356462020901404707859482971183046496968900473866086943454632189992583214752082049821360731775923417352375616941222916481667199423447644288093824233021578567357219843988176097330534022525886933090388939878636214519454565022251648079632146314782608172866292997688683698648956421971848380535834447727217881150498938594867831310402402804457931096459650168180972100937196800890031365059375394214776587706739735343522159225146154931691597671837770947177676765204461395797142337543263455883129321982120754396661587825528463483801594049070484606229507340995976229292741087172276243883831392872531124221028638689532314130111507732251345063419571352784525395727528658201294625331417430972448692591888666234677554432743573697897804451987375041321335211141191490229130646234995893085730191764523030298071254547629391330912621751978188920188401708371719684761029248934225426876356459456387160974212825162343106987173348650984097715985688825525103972340822575218037293609072065263610591776896032763963959854307748967714883727983209709595096308127712595197296237496174896506080643771647134885189857557942271370006437548603184291094580144312032204861250248942335475757674327501654553339606249351656472862418006966745886270728796464736251875137734206428865666462514182456801561402411040621743311106100252836492379980067821266276166058950268133732701118002457299890796768116690217204296064987751152270733499315662482958733291879353291517586421921471196644286438735272489674041251774622888280078984923130789140744729309375350100743274324389188573329199849609348920514004695478536168120392758809135889842900041705927201677724763518946971349640418799892030790075520924169528999021919036512205264933060890610957774248955907127404566678200729567079133937285343428561929705597408223709873752087549251856426293212410993013278383702922982508131901818612618694020740418996669664208142829984709983391900562042760646403771465800600837085527909793263875646876835987674581332957413540327859638413767066067638252835265597988707023480455241768095742146310335206778356680573005646467919534814887994068996471019760059687455587744798309437167696840631526746185717852767957604238199259846779292942686679896785192695815333753145419256574449630475269626506129050396057968882199964527836508841853917510076480047657794823146408403980050434417334802344749907558055901019167157762994594361631145927118292932423052242433061920647859407244257141986692936152312009451938081546167980886451545644896114581379774149898480525539413478410989088624418941346266792064256301903117777430689875160879693702440306997542189321474781378351689194422961507955621747674952116068684258302506392712886687998591516095147563814056799992095996415530769060741929830653855510447904504439301411656640777138683647390321957125553129407872343826231937486502328285082834241204207775183688258757494608831677329703355852472229830393060839733047942347551218495781351721336666178376013131925405237515266042214727093545689809087325131292572719379348973551364115237017507789442014098713523766505547134131811908222031290324495614003736165754489771463064156803846280665058192197932195643581590305087462859734673231349162380946695140230693718530233636370728468996342967132397702972820093868538116320741652702483934759490453873440610113516314853873491975949415025974132309104103789918566720760350501328645275512168516461585774911045967942582574620227228612092640652333662944936231937960184473158308534822276953420378177869646721791634286504041251671843296012267056067165689619930791202671447255277442078223081842002348540750047578640216348288928444460085278443000719277623671200848701627725642619421548072661052322745514912314472937931527909880056194645329421896354743347879429360697052939708731985412304241922756784757316806668544301516193139908765339326417287924541145105365346572417223608837365073754384520535294428671207077770370515982490401251308873324740038910708403013951391428599010384767004846017178637240965808269334617895934404463126729992797357345190034404633191083044346556227378813530592542714765513832383326822554963362182503058148135312886585501712058867364768709699497291404811673167986821693603186979143656788428328241723171338937654057606985527463828440417157249889840780811812826546675803992380475489099885835117064518991662219746254433981946627266480819032329363436315916173025418933763391120393214639876639097099881343353683758905347202259898478033709031020378436448450493873988603586337711943507867367761681079211736855251078173927895286022515128855707376537056541895422837746800024947707487666491234497633601267739787435204336764410115064972007136748068843795217549814470285541085262899331961206984115274793479771218831772948290294523482170152094705249203990119772792470260862522096602025837567333105519309432742781889109571394456951912321741601155072049620734511424261893524985614025668885213062441934569922648919723156007435387866424124505090900878934175006500176323403086285494971666786671095061242629125286965334266331275336113951484753495068393011261890723686480377429415162764134587325808349553139917041480333253059534274716095808455380323594078320813835758487412748705380077768977440385380355931832499751697693592120378701759101766298602585321763116402950564068618410003602094800151226208171259507249445086901000993381277938564401122145297237190336807212157974312108428874129160870261171098799431522890151453402073477551366372579704610372235195425485132923318528780622444634965977765084698685716129456434037924872456403092467057101821708453703450187970526624436624517665836480429093561850188797952276079737699833995050147280273591078285067975146268856501890604354914908929525874466217917677046782897092087239847057215515054358972126784729670215804040941390475424392516925689167664967967854758003648808921064500663611810291161000787189022682577536758497787471541590775058103079739452502461514075676548607025803320117077138675552912026275043419291176941208294480762528954990679036714226430846572170206969827619411177587250479750037336701259064535129024110959198029909044664966939327547266005050098500844206072460908112317023412722758965194790146169746395471995946276015428422443396109660142326920768544412580043999914988179653919201317437350994256266696827842410184398080167978829655252175791158029169071561481518078547138999845681459912111352744338155522894882874488888349872338587454517009355951747591337394021010755366806998192547173530674894098303618032660432638250446818699391116225569415972788604979253730539428297512271984903665670989061164296724029936677975991528294689142305576630683182630304016573614810995977818099888139929760895673229526291483700703037283849925565808082487241797174188650336722583722117817487954241388860672621562775870818277851354432186827082755997332754669639371803701302250659520980014315242782025011693208775615809645530381056587700404770436592048008604311974638745316867189174769896053865719126513732104797338957397727089820398716769616411580020059282154428132249695718966515752357495671408570446889533777942840929809296454118490715261560132780035496065534109891586292610938628618129945012917300582259408327834220593510204665921451490928826159241231579398109749012283450433342392932749628758739797109026739052886251818771100637785969597134791480520878696660498559596512250742651600343179218923517872274593866903292994532936798505896569338726225346806198979045794439114674817900747602111662118040575042947516183674644190059557407132049954151053665749708850171650767007997826610549125091635737928093784113607494086149476564380304007845242066995942660963868428163778185704874417010574392978626861257077090309419624517911908697413996489271219824931710133452339014596447757407934479983703220768187217946472534256308659404616943031462369471282611050786023179204539485821158135736209831834451381904258919923773144142769482275381895146158722434062735903877184427872985647998604224035196174285568194298742950473615164245204139258679494315761492921990854615994985336311215284841138861547126888332126580199363960793456238436869054806323457855123078324662965103365230304925554492811916603988109780307192379293193734292955461099166549963622184312231040945869814088972333866967914536680444728837519829457541546556847399906708032827477945547665637390792006419361714738069481631070564674455016336470902715052885764761405885030435467070983105793279627945198181800679091689714271090748047539289581160228435371023596060458733249734620139720777408108375055861800816208029013119763230258932461296331231555310326564183776876500452263805506623184799250862723413179707489825773132132909214794017990180957260619771681226715205955133516051538843543303546896899949287689545585290788141262982070899198979215355977492776541187313592763026237298234949954498016238883802562146960570919061031320074885709901798027996219043822214465683077857498178621917064226641889086242143904070644369405527938041812773510758196686215952256545465715129806249000566658926189966530766372843400609074341429604782652392183034361991225337827702350958465899271646360549800988046325041921284254234681046978768273374469965755071703936715598473163086154965675147998972536793453891574694599582102832438391425817576060469270341915270506582897133659427359400093235038266266688901456407167923827955272688017531947515940974569975839044877041294702836139842754806814386711348416868478049954026644103373843700752245453051099861237015444360910092377127389429327690404503661397040920686211521792825261299646487757648894055531646576757058362795904874790667425056626863974712079437898047114371564865169848182620449466566704649245104077229581372572412515378446411708039206211267292845376992043359256309623934807550385879507036012163497307671536970366584262457429097498943866522471361959459974443482734604613781392848684938991150244997934772482944403925117793529742243043899590522981063921131441075526163734195583128560280080822977033738623886058355578670609478209285819852580934513903241294036815218621164542996013528414807466146279070443115416985607016535278917672616269456993049831968600492688589675893951143353419465238642813995529852521618870760065563733459217492763261698156887695897632048358168853639691173451351022923340084183809803693277832045807650308970892368298473542185712008108161842024037131033087049787288553367363233556437575463592256941732150490355813381371910897966334352098901723012428454356048641964944934412725113181109885157193891967655294137278350052358952631842211426560314982555845475745498888617720872368994965743220480250165094214875197564952604809803192505810260124161507238328290119528287550119798476377279451340790646262209994482234293060890424953656218477744129323647361189797009519210536089945004195604200000405875757438793747584349566853311621406968667011972678739912759517196394035351424281970367389645949679353408355608845958958439147401554516732097757149675335890770034229415546600698257462744742636175815961759187208788220563260706179907016056025452985483317416263778868753132415725099960378996689498082145902163777115313721299968815532091556239681999101246700981077178980707704858368249811119743269766305643513397940590208280816975886928054353929745942780749802426726659769686654858782157894544369213788005544722131981745500700433376089287491971839102187221450154023919450572105856365709099443428398198528797700982048371529282797530145057911155767227194152219538149294106599246353995595472407899981772235236830164871394478033011651840661843340855191223918165204751345555480642478336183789744295403859783370908060875478946182220894521150144247053716569775048118964969086521352105482108604954445587476183545041742480947711220723316559337444996971691554906472055003437356507477267576136211268448667110830316368509361226480026609130348955322361209202275788574876304245878353123125403066545669008540055023746538734359360746231837072579451499981002909824536112014151708426311111817678959524949699585091561625715348296849808698887582699955570295798365710808390185786651713788275426010438448658140256912466596550539511118640926045285117986404979309438923292427583063842851625222998485152424956869384640671015794655873121632552364333343795085402210917561905446522096280880675925209316834314781513966855911897793016444262991488812422762293855787567581994652203681955809342677102396406519444466609939863312471020921545530832893870464004846271422113099252604462086635122711793556096592542428428943278374076041445439270607344754557014654836344695981818748421474302494278897666764847254371528387588951709799473250336420079215347654340244893644587337767557878746243294393415728744574071069830528666882435278124269298710310497716989306279085856417297648652655160781781167619064502487683370237496583501527474856203953179035138945646748362382962035578619011602550795983677936341596397169351048381277598532525367907750032622515032881539859437082304734423254502526243806808093767147521424349576002032127160570923492087101474941676038345302911801801513628895552209124724319902153573467208035590776927013955655584957834721135885805400686048195755481662539403856900278877429238784340447962436022367780800687467349999607991847022379695777725136713386886382560156897724123638628863183621053780754055655227582204456606104642587016211320646879833105954119094334483277909103701293152619408898357205546205838976621507825847433596875820613006739560802542096593485645923087013871280927694311532261677315924630269749008671609976123526568074600232355216200240243745863693079014827758162020992836657280860733534802245554836396210056137469858375474201059966539162405588747841241578020914980023754364048099073909485784015894684878322172947679471531192891059688306865756632535225453686697863174475231782212380628055531513292174334774993628150927631661632284824856693065454443866543808286827052592807216594888291236655529838256699519706471594721393867460995252600668251417200208780778899338608591528015282669261905157703771689037716888234284957016305535053194320900995791542072816785455807117719687358773794378532820495529968411786416172788877219472020202390805821309643272774290177556058858753011795003342247785992889976297662124417038416494329127109947442009547984891358421804161441474752921459289874778883199387216411160110935012746158530700035287193045104235391566380443722278982972902828554424418721085067927564579208734042472899350882756486962898210700279391641883937801176506223407925595455020429710515217304804686706274780743924828498362538819293075104591417126422754298206180948911100393035204343938475565062742358403015250341314525995835818378823221844314983336887488815893974157260528606338280143901391278703024843180586495419777822864227724765214119470711787939403362190778977106936853761768908700847340972361838961431445992177974220884100977323143902662594751955044981104427932265419842409417866867900784941373583002594216819638961256837051208336884431889998344972933019968309988079271252533417037501449749914222712519176393451034951668146544276254106572834160626959558978568218921315575896783876433813180473720377505808163566940318428751475476666211622290300426023998794522832981437868345566175068902467389554134170241249063292951687271545078734380409989932108871854199150070003888917167303743915849524139867701025732780386023763726527759025010913080118316906185218586862749014655643097314327897646683510341972095539978250583509120020050204428746022773622747724640515036442085748114342334079917863721481984424494218456069508313518954080727650951277513482531221028292008751079325229593873918819402504174647556208567555144972966101201668019579518365153502574488997337313848021618032078848795050743026385730961417053353776403347830847234457803533561565931336850828830730332497767155390582989796355735761481489707998824638680937647473538816931444687306279589674910859161076721115424150264172885574108103551424744311393504165474789138801707735369631524787123175239435630581153475890296322963993800139245774976456792043515101605374036102799915502007341263178944959771124939989460934016651690177011375165280258958005065138207712705735753726829847619546980128290464683513128123967139191893758594132333190065992138086671788337025297487472428827865556553793979589912856648830526774807058966031971085439024337973311896834249009051038182661882109553622166468226324298226809199247540223729506981330934989945672018437849624628697038296632135657291055953955274134643176509891053602627370526414924676563337499389323000907298371251960123612802353206879547428346876093997370357317784465931790438611727432903601670498656320313384475421817361515279734966030010365988117740893761903734315504177716590885562538340173699182348164669922692673139155695090764421083879606936276827476902508207527549260202874445736914962821506845620940271067554684051809779450824116511121190524985739075562536986919602525081557747471955663928382522590018706869374810290458106956444734611313258512969178689864388903743959188759650876869824791836894297887590807347981162860120871585909831534755340655960769159027429903547808098184027090909209980760338492279847581876880522474013433960973376049815186418754163607442181083815424243710778428525267334582829863215911592335930928355628745423786386061546682823372113521261996512231081260007222003807994465329882585160003743351393663235611376016923523733305478087477616395236640687166692679412940252259728513859797404250994129533599107300658849573653568785937247723102658290523770799990689293960565211275245459626900293365940173915367062243727152957564859175130193739294968906473113970931206290784805090768223646525775328890308758372165420986205857030146195987584415414552047481302498812597672246753413304105048581790832549895679433435133283206024954317125509178379581327423449048447907168133985719928591880151056994657780235717620076393641716494414618970635965957381088041762651938927689582932755744191040181701612268475036785000262321092393695320123653692247933223388604855885157025171069713373450843127264298044067959132871629098389258068244896224346686526786550874380929787390157915000578886364886472376735341703965133163150486974832122015027860381470125079060006250321224786339767486532141384686232973215860379822655053224415426444720873572982382114877938636206720560123742310003157555553008752807700777329037475618929423998758399314260450292559429915768668215221802121448462450255780241470439433194869759123971363908552799783038743241903925402154735706706541542684299231789528873227754209773093500238533844778235229750933025531117758870600249864596582166237143966397502135043868447048013135928990001443367566994822523140615411515778051972048234429801797409572442876797284795014127898006429578122486108288467545302901473930058201861111988269490860114097705624662368562134173937637527623046243201056381434474554193992298614272807941150256313742754729771612626348839245117249405073751259145445107676437241080101963560747559431245929189896076410511480703738294508623263473996980148222274030903421220426677167699908436544992643830939115516483480557198074767765518396377677447713016510153974410149297253229719284748464330345375019565758961106096246271069146029651676853503115632302245323104248931931070241256046210949438891774459727983591576957818354843913931894184991317057884129277919458039121763907309691047544628416417178758886427120098179067648273791478680109328900163799771491711832077908120370840440064327331828465174537601439883553927879797970409731076237651363937329628655960600911149841658409143837121110836213035790851011136809993084729275047592455292202562858896455513558604813340866027225314138965582548492171912938092563999039506151000712701177010624953921725784631977743275000726100178854739385400972604845587509621675091745269686255237449256488113370214835967042915870647765436643768890129842749169022129438687439538728776897964735454666650113646676092460850989585286028289878253305379210857683371242277598538154834892449612300430414022423069694363601762264179915596941879729839884892534009585243698239647342684004325385951418412650671957413230042771741892971776939188503494515543525703388152902263311087241788166810778469310769528045935855584865298062422941634038709238114861004465239081059763953744355185853487572226084587757213445456334259674883937911351081916177697690600299820774490554930209129359734904111976122900141159210663833239984720838527921493855912534286665049988120011263515945105605181968706202114784998894141148005577467456042845285299305464507156636646644710187867694923967076890363628131646328709707673902634546771306514710590146108278233085032423237028165440593309416435076337987576722592505236969072097601298790913374383402357688115288822379605167642663950893672886397701219069963618815503633730431915781290443952182811277580118288526445325929798858598229920574114233767652719087440171124911483239730849104364589760409736191573022784277997662618344267697704607489470014030918886778607102009443849631583065453915273139541206733630681259557522544814085696108408549242420189933309315796163619056391319779965739542540201550439457287691884444470895948667144681286687265945335089352874296134135058662666674314263281246114773095788451486937584777323345128311354600672534903927564530653610526188255393750404341848640992814850697964774163696684877202344706203097175627211001338281645562923852370817438258053391124599797645418828706638761207286117058445576005840692564192764575896577090905991160289624678878765645720861620902763194327741448603849490835658036691121640916061387554158852123086079705969200396563640311264315133858353914542609646062805786861730518774440165967820901162074613869409274980710396548641311575323462603303735726042756904399182579329031968917362268178611774029173588374651228375662860610970298949855859497578097314051346778004752738883396644420569351603143259490637115263445006401840366124680044279704663038680448313673730134653126624194229794731019257245506608495420033849462202885536669157694021216078657998396145019693316279732941662430623996526949783934712214661184554713321747648367337412897529948284803154166500167547966118532133360765474623800367550705572008278318860827116207126102343084292441431250992224761359339392005883863500366623967294445535856825120825228243102998152180234649136775185614195275540677101060262084328610204011523023143841263912662596512380144292909269882221652639246909194019848209078687691816695867725887758271118355655850152075756315569205543502528214778021512719656797767202008622724283439556792696567422654661872017110936721368755050994735613861491919572130623912996946346606138103441088021948075763429188466064603150669705309443660701713526980398330177033455170661582040151773612281765010881370866433857088501537687633231406068868238654105778958812257908758230940531393428286072950838398942065265307559022955279636764986223305449888025610345526366087872221912552903078124188791558180820926458615396290759257711390432957182508846221648563279490124569604531408356746177841944509216984368969128253136778703702628803724524391558417420155009504997814120011341684585241671796089595266842745396299080781967707216194685938844629829662716928246336423205921780868623395137554899044663454923691509818695519533779321186053850332531244110869953678595370938920506296163427227897560980897244341801604029345531019538047751700742930155565257199096653539020447112267752556100684086325441224201277647357613016106646012455872050589080080131941639663408111783245346062816878933068314065505027680514224558635425268056167823566124573083982113791939845146000876040473104755806160656503868704640674865513824986063471455623908919309108007591056700046601942282169158570834669349783322961501687175361649616056282909104393465769900965815534679395238623627123757860468271651401084470844472034379100643880579409140666548441345800263703798753392333760670965511872231347161788896866158622480008320580565305149037070273064037162889742305810981664700061503699653530655774363400116587869482072783345573273333419126964591372899670803873838658016764810498975292746340536775172679912027352347576698049651523696572306160820892424031425811325465065567707034336813530783764115435439406681855301803609241231819707458906296148350692221482414172106815998019200057517261888638908430160228921826022700021049567861415342846282418621051007355322677136228536885075053008177604507595548776033923248572140014489363261758493198876065840538868737801495697624958516001168934486511588855247146207573477958121061835291840242212197055950916104686494770317675267789138401011423762553638287283719532759920238481958756837600272899422918448056888277823275594650968892592151152454874020706422037077712992269613237483537662309272891303649757419863676783552406039839201447899602623931543671651364477934332538567950694165734662488162256052094485444107589116655511840261622352622178041330593884093658543865049269181988179063921654090372896945107866599874628017196577950608886242173681199248508833946362889653290247708497936917212363694744802505352463396667857201448436372329869719324601077414711006513932148502649204025915534842982993482542350412346322778487084051846976550713443563314532411698218184471371848880301372193615850528410503377911152821863334842606473937125009200454174870485060427489350065493676257670892329998800638381300943717109339944768217844075748466232109828867665527523359535651964172030102627998952212726958138803373809896648157562282535479403593601923548377847214578491320276444782118754983669937559460147685262662216020338667089630179511043262839943947483808092649833892826024579524976031964770365745059763908134446753000095993173685568051932755032810793760459799930034872858830304149172743316131691750777012174681612091293198424276785219866674924311864444646221617860146230397077696081306929002200760903990911312730247377410946832306859497712581153103114599769791914053122894422366858556018713094109556839713031601898304080017801231303861166472231028319945686893011012590220601819429149549462007331070909833910671758164636034362891227540778064808692816896311501617121202262926585081883899019384115745021200508653150101059248048805651785693306241337102801527120183506180537001865574014922233257268317923326686094782367092655246764358190401097994889225611312196251139847280349411101987032385297186918162065719149661603331474939205750971223736167436085809130137467218275869913187759590087327802887739591764282336245281787954647340787593833646497655267521627749234514686668682955102201978941500664421645359554829948622278423394554878481521353072652069595782432428212227863286973050763751823526379780277046447347395537613631482524762428396558017841489298049746526608149045980068343304793467914264540697879528846099188118916715117768079125032569888688563006317823454380559157542460674465073746755182831579488522044944185010720002412040595831418130755066427487766955090095341537093444640982045949324385470658718370569400442976078610787549197070827743423370744364670317563072826226149073829698907513987889081026391604251900880889359344998438748368755960730821789265819427022838396534932283312126183116957306743941345280949472088869841450425138127968879218945629396477856963149831887873785227904510291874380991859862871504414486560566947345194387407460117059270435373441788971804680173127648201290795069986421120109549921629136409425541513474453067548557564749179457739843509198560810580281910470059787412940268105428437337583071718650979565904001018110403046925383096321583891527956142381886479386730177381661341053789935825899324968370759862650540486964650620217962549473044874488181016256999508916453009377095313750205465349498689006984111408854988902680751494207554732489503666470431810481400611285210108593350236754755980746032861527562241289310368018607079917560442706448829236252197937444280222218599696179754821224676492050780166778847013518808109969080271884318120879832286739518844869772379837232235325681848700641920862949477578225715779362000985542384406626142249962900635477152615448090151777166091208275137145872036601830039072672433192046189105957424075962433071652027153968236759863888657810177667097694257981057619718326400485884187643026787161115941509337638838328143544653242564820911055866380994716384079524823403069540172445792680597206167290825555501088670663651745434103824926657453085876516437125992844125187226448055708091393305607474531752800765026301064343744406118050021639022918678258891810079218368878435559674918232089788171858539212788959853308867232816596905146036920605330370083399192551567186331395316221197111980401842168650614775555358946225596747738710911521763080207866190250790287599414890010820192571847340992156597958177833516861593812411839269063166067220057045711959206943718908235541601278175600182921412340159608178377075426751019851470896518806825891145779999546963402600407338566168248756270998201935908005099509924031661724780304266067346719015433436248351718375871260818615187609175549375402881546231820615469103892624519519587974316421179750236953479797578349829348156226275036353268859656374140262009851116117420841595185061338481469114086841501260717764245558529181685412078663361789138091636503112592347142887418594257935082972031567409439127169228894987984585719479100629513844813067317457612353160211727575244674356647266592494711285452920694805864145734824276891920254688856193890396195605350426065077260446275998901998141477398329368261957850526455690054268503214300075240493427707815671310653248387817566289880572682428129800252118233368267282908485631706965967142733750108380629414105471775766529678999299732233241331140226557262764915624224819694628212670338161853331229483620577273916537095601409778333279828957626711412661492865936167252815398587021326129496338240640999253071492905450397467174275167476536044741559465078971815567122377113178232278556424496165114987913619561785444489169251945744697104486312708700698534196816266945760952735260028369270858222550141386945419635325297947385950107022364865102365913506067550778917458137276255904100264038762828066195570925218765171714902852822738608862554915107264683588005317152126811028732235706828373740442284858072024378109451591484943277593828841482234143283811456981696228142968902942170325782752235984261087315231892249898217620061727303311764740187065649946193878216484866346817936466073531758740577637857441813557545607878408806639352259885327424175747858327998930084830195862205491633428434363819283257749798492838638915854526475856046535461881908008077194158416037049161296472967802301185646001099490407282738589010468501179751041911187829513429675476676051285318692074526554054684139455260452669321460501623430175764935527085871524742536060351177163894779254730693093548200797677419437250136884593304150488561414718611201822468138746108566623143332198022697453307529144485716392960685918182521372149091999837724917573259984053582128720367219396806622522157841787041956667719332747744783653454484045483397453804830300847274284770275362227740191228461027972470077676789157006309807961357750093906563283700814568660418922195607855871918406050516675852353747449296421482295663875749291623224763691695716500996105767631863708195021657058465047013070028335066421766363001189162165115411345997007940025476044365023117853295574140500548824052795071501840991109814628102933611028245503470581718541304015373561547121460594840050308056227769976736621669525325391040317440888339055120416165670352092941826993861772593770866136449851390282415758388890091054490956980242828778460529714210945191229739911455035272407046043849260364528034055056719329832831877605390951892062701111525139806496383932199093563261196535231393542028481821765621058492578026754643138411467165158508107883491435704585050545952323878780934209503471086795466509137408844565498513582823281498448805418850072689461667836522008312374081296659943918251572183850979673734809371944695047988033411617232946031557916740359937262238438930875369643402297997425285924237739907882939520421096544125768899347746456501608492488008972268092499363133194917794357697981984062732271433622658642192565787234008425035870345291807032548133779056325784553516947654968212388909276752255649680218022660896662975294665483682293055675895009867834404039017295795209973352138527092253175620795290961009181198833917578289476298399728800693950400582101644486367126317255454971174401381104455433972495609761887574527646138038670118997910812088160243091011363083572838372101442596326863115995216247003161328846562649637320571879723180968902154373953300814159793605664472680098382611057573997129351269804232704678990511793581245657689840398764661255396670926657889825915410293319895888286906476575630383511059969075009964252757354969434206310785490369371820089132324013367572251922440957295981607677153508574964138322274516071306155565691967367995255823608135651398134199600485838234098650112706005240368703551204570323426405296792706826742908887532832865318972607119117697620504088466481634249239597720375322106661325035610735791458757000474075567131608201905721899727028429121073245466097151910418931787978088452000252155111846392372235457272314261763064144414632632685057980783989966750745830237887963557255702534182438380876969517988575624459089082514808828095558305843118749770836238815284864718076419302454089439605871210022474750330988523040386437459112045536534127213043024278809953689212985523751088475121921234442809663188196344563454379239371244899363244938806987425224350603931780919953461134159231630487315690654030913836985178433167301806833362481097831020890291834657605436193574057112731676221106911572562634574005790104112058638330198300340209901956012096455187882824818997203891548083432170814494245462242772539675781373863815217760028692862361080278175010010066320865624381063429418582997554081365983150890419048721251576989098703974768758837919117012232730527475481383809225142405093532111839733443002875815639986540276805424082515210397458192598883255583835051410053434237360763986515003594724742019001899139909810646117773621309039765027063664111120430081255759383016148038351599947589856149030739650987514638803678689974224453983972666192761195869476164113896489717316734332769708175871936625022780118251421732140209834458639691060904490499693228771115746487250676027079523171862251292923845338625409527000497170482167313413887307199019300061607008043478089963849708694874362303338634682173555692092600234750742658704149282860679361627829799603863698487532441026199341229275060509300756964663496852514485205235317048651502541990866481682911382652440788653925177425384084400212806136165592090706369780468403196409086517587247222472445562727835168335906966768995316612592384560140978791349479159144596771496984691819590174296736116866768679533671348517026911673835533038468648233475166449081880545716778628845860748182537624521664224001372893652261178519697790085838167815298077583367783856140317300677488039477373290601159095797867058354940890842779595822927463149789088042394485310901767938123010557092027821689137853094153778834929251030207786979041751236754981934667492450401209553356996824934471475338073248288958872810861583258768499557068820342040745245904947484785012500266332496469441843011598672184830342132505765012275374088417783506000243636726893215248207048140648658971747008399048285789391067243329932455291620606780916901626907462851092614096031101140188033104200462670901883454562702888064964700641588544023545630706881449035496340302739943309754531983804915370769999402268913688349194492619323708039150915300798860270633724647910372016633692468858320338324583579021031106308756031821468286205806912149636513741300141840531327849700095697160803635642935228275746445859200390574373920239420998991900335803581197820779307476501523189156321455408589730821501179062380408541512422822584664569530570916921701009386109710956954391065791849887428933140044398442592443314775941598852113032073081876317186266827110233345920410860400913791991596807837860043785187188940859840761455038583835176281073513543637620834810172939456983293859197787344454010255707509120851233151825976859554536372656621717562451483957651185524143601340775245288710096283194916932726478358729479609124880471335950548043892396760579159967015812919314973663720884128791362346836191881095339419019865197229240333504081382455288348425914645542497770314443945964610073786007330204502183819150263964359604057048872739821870809306683505603975847147470962312784273267996662350861051497286623838643445759085724699615296657391986317363208118890519670353269067363893541746207365900456502661531819009642527321310615257273072943758017098492062489485449104993571132896456664467834512241349984040709439640552329526452154199587047547079780764095418981126408026023261726127562062931151256607493556100446242749928088539313916954800591737402978326739392901486352053549755358729269285745100378282100951862557423948880920188309673140835159873456373984290976415030977166611442613112928031853260045816630488674139445549818110529898956202690934483907020152638619323911975353870536226931160284478319649564283955981216832995941592391295232068251800959611612471649364566021980191530296616110191926176580466629393017665208688929535334286439044959938548718721594998535006182388851167397845575277196115476644524855685710137603056244573636540416439744352563694543877853161547145487702392562507847748184558962553667763156726183820724515865903163800094864089914948913040077100849230873270693436517193766543286024925247225820589623700703805513654807174245268849713404072916942351176731406830706414828173366936176788536190712088967256083769528166429609969041163974762173444228139915620548693920717567962624562956096352815351336030935918164918649177669445184132953816648015275350245695864799118631408783102203292681547850191427273028748500287271894522963263578359516874501235800393318597371597851074183665190275491254549057137703484042750350244436265702195066272963844255376892557212896076741725232271253470205115104833858487676333291628036737278798524426388025047521476724924993067871758842526006018920962798518714894539753446929892356090376426657825076175907256602826289681089913098290930677706307989495712962248140916589083904411351784629967963540738967094405799118070590267386183032231892456618531451854670310123960095678820260390976413767880391191042017479447662310360237274365188755715344737690685754291106594774917596379519621423137180953423258651794442529239881115617753131238240146950151149155110847151929642272271248191284596734188354144148307310327524768375873777723535487231538974267415068441844080228576906073889034224162365442988750020044684974243898133425921955332941318504989849308110418360399945241910336208333907174456844772556279615790635852049407042353117947882629966409141114570587860524364335783298613147789287005293922143794999425859058435767138638147352046510785608528029237010535734826146410492857309590289775615369222458169158381126913205437885136458041385431286661877957580763764340100679185187314592974661025945470540584069156916017245544760230833155735827409513223330198998820475720904191911402543130452740771557888476704279124176555312998000870713366244529911654674238908152599244802768763549187587679910856802677489041947674931939474783591874833318427874055641306695463181736932252278036594421450828992617561899368825983646342322444353172851646103026943981134549774150958368696264083813076492215553870211983984896077241651579583166373056878363758263937753021611879643350476830851099471112619590822737474966965243410771049769905126151190948782256458335289039858101802354480214826620081582717276538636819864747982880603886629760108983865757222051093327507802873307862481588522683400608777893999845107816441889414892555749002728828076174791415975516987509094456870595595560971190652377093098291157184645667431446218483481684791812475129177530661999641539416295708222241223317248456457538780628299528984260940988101435685007492835999583916498013331689543408039089424914025380452307912282176061987724683396516122703210044407571850208326042409464217490665792710505213420640759059544376627183949504670854761323034566680368410628242819391654584928658475094525164863344196904078992528404434472992877739305919756159589858982656884488090629404006222206849074415988721317503883842196875188287896599461033773220920413507939163365070683248034179496299424775801181312149349714479512063993162743254062094382820524248335913625932873356804029010835160601293168504236687533285146681923404612423030747634292518074165734023239501409026503074786666675188444169100550204060657475973141377038385372309748366383964673304793647646932444952444920971247411861094093632188499223028976831581148358687805551216957267338188312405048739269762723900071151595429985348932531674034549941088838228563020644395772461347911494805705691102698612486275527404868567649354047838575509324306153256237015304190788720693228180542347225659921086508988972281524031064963156284619966608639729322448887217763896378589496920321299366791715923730870566429012738139915794561717408982756208125372336405091198106256911747702858115096780297375230395369275503375103403625673888540380776153018062988710330854601385449363929766476934775003339510932842276494812627650833640758388984114597789407206840583651561110297871260569047698578294749831096021769147951476242651500099562833033278879996941295711530873827546755269601672974185587497898342347411942978335733853209941446234203381403629693126156514493364980322724462790204331593314943013778499776807159239071975306917735126506616875730009195308090470765980312106406462511247273614994303426445564146076299308449107736627074175672590325086004180642185087935863011980726161099708679029174468737409025136235062355158010780734020712543054843982799921264434687051562235150120965801085044622069296275434311042518957202274640411497713183800235039889006262826961960183611981912209567191063871976057506484419736148025621966988435612175060204896454800554662021177607973139918244673274689316514257124713353366402502018883567660775800517939772328327375473964390772807127285150132260687796224710027643317629942290008046718666500014629309337495751093735219903141738519959392916321461757793624632225531458968865061325949156646222067579977659216630814036351772400441111497270754193806223248677239449497539044322273366194750770184447400069447332516350810539534407771254019800566884513289734743516520918317775719126919772952701735263346697306905752453852908644426367472273271143292522431534660594115790551725853054705394203335550194550154331361143715300530084641697658026085043150517374227386338334634669217771437014420076710088169165961058522347397555996963320309783067180371967617789644851600742466951765118218130681554248666353431834476803592860217878248962083915526859345302777770180252951715846157773039102076989286242957442838861842002731208119711496329317037123230232960651163653196859068532730280391395583999196943197715990068145258615187630260313386857552442853062138602476430282314341639681517510401663790520359546745739754242313086726673192175430519970895537974958590605514757217552148309137117603371130305754579524448059032473489895885513843557940709580682226325628901185029551686000448624390294179973443672297908630003170239640344986136030232719100663812842187198677686427454893114024454984983972911264984385592187972717849291827435375609439350289075504931642026000858038159117920539878214147844285473558652307292375651567936527765015314064314641840958880385837499825446926826576543875418909664047816224017404466621278149813586170363679867154119343535431728567768666156469385639958195336657997235165064794550305863294170162020350374873141970097854832695900036442980787757234753436411463883753405620412056396274700315166437108837079696828912295222347360187406210034553506000241147431474009083424146132674410782052355741032220713099636712093292395417800873384078821200835305203348152414292913354565792466654276046757272426132550131460485464631638055304260531717731478283588434836140285681385118190027707311889959929943437266294953941615192392059715855964375666376848156677373297665072917810976356487278981473011224178480827066924752142085959545383863549054896737053476890377302440394278003024368202880188067671498965802452021795381417780083649036709668183515153950300425910351074707617968736491689955149189700551024878261466831328480080099378926346854609275442405478608236156034981965266966008867767167172493135749560605428335891732190813301200851558275786065999435925350587444351613880905307223294146915975014458062482282153751507314600913844212867824743417410752820149172166367086591430194484552805062301616764489746488143361084878866961405833543637539000909245110429016510191799177722060629539102300801839977871807354166614751802084302919498180459491763538608229420879618609848319809155054100872189726951523460434075551496579181404168717795108321426829923949457261504863758405037415498091645789526010473040003741806603293040486957094014213852940882590332982439276063525748782781986707681319686020652482194339091770237934557207346422000748047807856512745874772670788206503202188639233238350237886119161679705566602766039400074955536301931723147517896290335374826811429696161204841484112518616710813204807685187846306138503850415719933553417046057322212278823921352435515142531581998108295788385966808885081036839798194361727440452648416914682847465062661797301487198034735876350935136799055011329417996561774186899715429810468196350273272398948980430619135384195936873531059733945919327640492659233922040397636743614356257487501573393521236887304952450897290747644613269008734501895597191157923164017001684920971674656014460386871935047688800190824141342517321939431980392945381454573612804638969678700523670352412655797718885378599867637246769882191048650953139463243076023320126620683967326646661564595123318315288808430087665990684148203345408992914303781910218728714848876002644975396536094795500082261958560566166560088114312835790126105244692798534229060618803961414517364157824648832177700953654722477788172073620701387834911826369853964887586130904419531475649856331353637178359986492262061947492650298863853215456781199933121279789936157367113953258748201816809005563717447137560831925004995257464570661875362748737159344736588696296557524275934784360527977118129049806766468566842723900013843718705557206320910326648296506450265352813616353850425487479968630628632339915423784656165842329941003443075992428504855890470186679517557849209427563270820779325319906513074235226488438354129010611105914609005247070008571564971916824014586321995449381488480231149464676582138232698127246736584858638150095197789597878371992701699938275669785890313213766768111153406863584841867484598576920509486749938489567733920320837043826561669306142426693904473762308139947951581472970731604446052365059583795437974735704012730890791007148163953173241691861538130059563085057575355694405421539907632377004429264406660909586728507958249291522249065849208396438161835911470899413616440271401630401781112831972774921309704928785705629823685028317444418130622884222117258009979712985546936383418729303707308088586725650561006388660037588622742442404326103809910931698261570683694623445914147138973949708420477687101428931605461809295877740207024599887561480776806928767518045161636254023250608072215684320503554971493138995806363257678505567633923408820281414546877501306338311362959872277425253137219000011928743329529099756298760709701862851059387473260874571136167330686655546794326731285522082500972656930668983555060345411785133423785254744531786355614393091446480936704862261938755307606924126407501485862565825630682863751969121389716687237473391242947945086478905982231972547139639679701076798946559678471583446031145616501469406793781251679033591574919209112601199582966618279512955960014201431453684628677283603990346108769633642479017005182636216843460528879010115966323775211898939870041302930399215744715162321053812575696827316733936225048230645249102627728627402920989457701243770838020132373685030374577641371382858468810090928005112422123847971208130448189342333372047221839708879275012011614212305654202331845913241385917438849934420016468619159682386277944500776719004296362682471902598359732924545995043765174621603840489225001041178392507067827296295638217891771705141621469841026908375773892067785882611907921007516435298032948263867024181143641377200151119612281112746536062586912313502583526697233272198625489138436985683179047913609586453857301417500349599021824952111434190420084357010230900103862222019056279657782477772669078579256199530022382764867738482979911171648746646973658041493937677855439793328405836928333066176521963511197098080132535408939827893441384231735186474153858720073510105885126098443571620794142996909708531495614479899915279967052813903726224114279266098034087195374742466871925870265516380484320248239884781717693780781344963701809472035508362718159460791244138485047858669574396226918098424913181436391215646990458597024543281544702941735116843279234332632328061304386161683616821684406205596038781102766872565425354346082204289794904880196302623849741080101489497612955292298105017005517785012775520020321924623238919910443173490482879332873772120920411847383072289465551738210121419953348550024712645372885365939287091423934890777494531069743270231426473998063566338926842455580577031669489889500590397809490837256417358684842226827162255845678640711564027248454327523523528950598386810938555733916561948105165865481883082845150534546692891386174709597159445902508372801600748664592297398330898335880278315278642010617781912019755781370399933873455691544250890821007328822449911372949244674047137838600243301240677933856190602409454312174293915840278346113233771074993993667490132770377494106662624522641704539922363302078128712748727523322442164280972502094666172578828133655082745753524464181367448405294655992800792065657894213969981526603587210008402724242012486772259681528577333949816314290945344227680748082766279204422344542996914061075809517835786663377399670724746599622893558856744617353944567058998016350953224890048765551317998279445412811014312791587887071999855702254152133200071506457558753623279166232554986741473642844105888133541656987522716280228310953010750054787844473661357541437560208136634605545168316182293434885273123133370947327004407472374920989592237301714045261514449059727638567717505188230885262792438836535924972570824146547391781225853042747569880553071805907611031546258504928753547884639756545676642786168141922968549516683840955012397473748561128979604052844255407437526569586469717673949672707428092039294638661171283838802392128104109258418250043944289851419708640186211199542926818460215773440092511881486393779894633464123514039402657885736051718975048876005153663448601231858496202904025364836816125619685631074809640886007287959486948606759218375920229135830978725881387243385836092259840153318006648905324669726208364185319995848385090187346229649378108295059989732952133190374223520730911404960160535308215809963753412284463516054783109351071485069685693460115528236868589407394369496846473193505406330327407204481919116017826192914145427855657123424679305210590675264910057004821610389488333107880707619179873803243554762055929155290748852940865499572562294799301649521278497601475581412432084823402304025095733008975814561620754993129216528114315259352072928531816924365826622098596476172572443871271289404884350292500874409337670135137748872813190525641867995105059265894725057993018334610102660928436352382244361191673683102695404085044135967088614885750127127450019186015807507747732125177171611337529976573411870340502994426574906305107844161892235535409457599492292076691772089062023280643081867886308488227254321586949280000085140471381553236968560512344642843589271548904614542606577777978788307225279262912233012380189788442743925714480212224759856196706933247353010144866605242815889666185598448243809763350649130653032139932301442259174135926886566457529341243726752213090446130700654303598525982535192586679040319260588029778872021125828983456817532416933595396177623405854904954341818542424012735000006784947379202904300058627172639657009928495509911434767193958693383814291549954852852743232742168611917408816619576202496398295646547431884086525476833145486033175624203746066075126480912993771874619289251073752589117661533004182352325092767100128666798147720159016521290569544798386048996085607199945232561989297227874727941708677819620603341941836945608399086991618223021870013786520655375546182815859777674983211490856461767259654399729955468411086060097391661273787481236908614178795878598027368497489421434342254091602697812858448165123017698724316382219077919043277878416330074994188395531281060464191727593707893405678252191560798440236848957058280780658379897911926393429550312404881567628135745746928658488190138694202155865919916115332200301307179889859838825547634552298300894259821948781067628215298601020823220702226004938861602341819666894257975838049463474469908287345557406503741489266941277771385698004212177478013622191856446185647168366850521097452954164117811469103615242215459314021771237229674085498973962117761597139981987599204452558143080704174011582082607072229371913182208940491945625369295385276970395075694603057332158923814912355853738828442503211478593587809024835820060767512300462212381813177818019707404527329078517866012228025762486466389716052199990989870718160212018358083633208342535102557651316567114230054728003396820651298217018498710892422135642698370130539859969251157617225875344187561043382209406859291821635572643479313606956877715367878903881494119714851972505430142961413138794969237948545355973316447941138512305909461859400504333048494539915390322970907575964693396148386394196618922766015952267858032522030818994474177492487536738944437426816546277989852176114089469643354047496414965914524791524704716966712023630998466180568391519755516216800758701966023828096770074967426945006360242122881979076877094758176424765628541164521270649821271200359262838848273233233104141898166185185818949532666032876430421783993991278480887415870480638019332422896943246647403148802858500509769007511249141416167656677880107788902999577044846612694009585221150186912857749531903891145019398656143342910871838697426682484283083095540286653560074824648798218127631580855731872824817557623320643025896839454991259288108913626341397890175233457338198887481317496700878564683026973625424608516393955077229479306723060120440873713857767356576362964031769514905093158515198891628939817174207851189960262794478364526879036662316789618653831410525627415750944003731568463637359445558839896579854308647889668173960633146063348107626178725422005258855256731681335285902181276515522393028138984705531807101599343691514227176438926150169315248290953758271831223725801773275397454065191458775187249552562628224651090580237854006327900278897198021652510515756777037224211629617655888892625709216432551442161258711096009273969956410358392175955057268007605179263318089778993816894714420613565827091513687554007036716254961005658697185754050869424614203571055562529558060795936758454966846048039730093750322567201260106881700598820333084022457316001794572792293949672414703255715127502223933809837615552399311794409582015722954395028619181869179888144787349531955754266193833015496130981145741502364240052645924441719786736651243340884507692125694202582140600998250030385746154605153177112576789528075811957212143556028511230224840062372825975305201161959331526152584581070232877132472841839254109357354697301868978993848868834685209590531784377875104950058352768463806614550858807153352633641977536395567815244190554912393764544559859152534649198114739519781994452305347929745079157570225231094897343363672713408717182192522992419807137727166656802542715629062011145091676643553849497484605978885812629572541050432852570231042987742634513350229835293145481151393475128914002170692597577110085914183257160574078357239226815711146931067227175632468075590955770164471990145738891479100371860679467881801273082823545222864741531163531217270213809473502717403377257976160881845574300837781240893582809761903094074443399703830605443201838374475145189400297741721456905875730263446362178409502860070525664861771398422488876839586762153210527718821291964415225178790384035673099945543277055047919521493585203540841306684351506159304545417000791323996167828000211853803755134301783502728126330809067649374841088385212265067710955421178862427629169013476952976384980008632254241010663544270948480806709341754316742583794494295328423666842690498755277537239466882434265320303235811822863074952510018682172602980083479078231208955470797141180611897490451998872392363079700090843756002024786806246289007519795458910858692214913423481076897588630714492427612529926716146944888458462043287591289248136658044011557264649201284143373919192025979756611014833721423539387741638602249438753846362441385482270592720438262364670373434727632450672874215242968323423732544943770398225231848481297210695306861453123820879981725428266786235065516116433666071933034879869484671221636588050096949274321220883454576364255359416401299782618720965044162861329978835683047150118486676241031329202728018608507941602899972185492533632356268227159635479911599212190423738455193631522721994364792142209047128180204118996527261102512485955144205319459525209712370861707904405356181294259659855851320438545705851133899483689005273965694049508528234914953565384725378210193324079969206624545002209773922667135558617989139955698975837959459178366470061858791747790333058568209852646589327888532544726020007012980872222086593639377504897305573013253036254851837490387000365086225613424616950204189828501722439009932982027228896045291519647713315279032670978478903359632222126034473097021084487915667070978401778908639039353467641965556873201875367575870153726145366239042659209975329111880781627525754129540212833731255069226394724087058459584539696529349007047083361991941454033099216383376978398444941558190655006104184465895782679429501166666960484894921825938178770756837258942866255538682483745293348986077982498954453061426044871952159074899311423565635183786081683720784795335203808061507508472875465989871215700829816322709009651349128624322503173249744844621844982523370099495923306177047725734567518375794523774755826152623715302674562004492625421356698902663912983950274490911065015174888231899377952256046869948452425724648129098842010875630986740933891807788995886879926318609046217496803056990509797392120189201775015998822717976586000194920174834040953706072777368930936861746825716793304586742935863722388016740656423728373686208412425775886948109640637154861027534455240095016284712334067859707126115531849794719638952619973790977840003219656469283418223706880682467364638603965583046107936392879027809536199847099114742940005998142610193161065033773235713729989571061108648418019356693023025277938632747544782754185008234124240111651372512540405976173530496392122380630901095445958727930583416398778602591013310327091626279733794586519621973242095860587082625644105046855259448643375553093002748423644007608805798389066257695722354611527731732951913544008392843120768857459284662296883511153387732425915586082718186897735237006976911801294921209337065873299381820205251119792216623530178138277903210039265792432089559914691027769860886608818951246594240150381406718501908934232947946748677880464997894277888414760233869078042008004546801054668032081961399537595398655754571161408943793781050253514379838565469563802321495616473503563883726555512251174208406202838309432997360033445351295325700442738042271949048448110701398078478436840356934350373921953973502236061354980345359028762463246566988498528196573664876759620724753348581207356506165822908126469873007133066977561693802699017338093692527510368692362888821142981429001411893671614312081185089980533692675531435100234190710472929653363497407103918789700938566572405114278726651557052695887879919157418204712075945475931415236217065360127908148335833430091587915264211881408372448372478219985860891969107803250895315110848885325722920896772662215424743072515155712951685357444048032768202675582932882447776850400482897980310569630634571866463742893938075637633671564690588400309733910907437246968950268830877574931519775399391975072337418163422453503586887213390627932771175741449561739709598729036064363191456892753846449861574610643068939038602735176828342258241491798711017048613500569000409652103563028032335375021683923165361640783394087457300443733486871472084864749878886382867394411536499442990058784184108905379006894120613577397599893210132090003601172331911685749294167146944304003420458302485056179304487957091460158194881869285795021298489361471342919106072404163852333136199282959085088764601057773795654789882908807847715739688445042055127361774790716519899225780695862121626031070760841422565234550223561886554391493857382586442493821037279851773722923316608875243071541881573631935224122525695285689712440881808802941868600967651651572334572873755112392950960462735356016541198635014067185870621161049827796603728178987430979962196041641912228425059096736056745857051188894927556175041382874631596727871084388374146210473810018011349579991864514943546954327397049130280774463203081380917420320450512847022204724467151393401177289826700173276157599193078741928444833475970382085868988256099176883384038549730039272740397052991637266013789584913626369701928800555176738394885201047227576782252435790039566439898529988569700585958662061737198045618268618895987671980488560866969144535617187428648742759649731510864716733218983715163966649063175762865929616781257975769189088017568452632320299614581304589355639365059976676927381500238235214019905042141883826409691764325565755632316488650080946274246781172239163235656941316329535366811492933940946328869558306313864225156392399099116800564857554090298906609468599008010324107915242448741421822135405227880849401027562323073387286055638866733271556759445851055842736827972640468622184197102524290066398447883023377532560048157478426326803730433784603764419460361737221383349782697476251892249685677486860019788421807342145645848870291593628782621149478557342611900606602641429595114033787996159050140691570584891965669366213595668097983553158561766682353753888782139351731773699265915997722905157525154446058598984312837910894430021250174252105060147897377268998396369652158751542469821639806947590804985616776452127660643404247433419472891314261324634113147834388642061309333697154942159527400616136367786262244118160732418114965962670625993682117370660839625417043529055637187890844979348062158038015819757596522380999725467865820321941939945818291077342169601311470668219819682344833659566624906388097121715320003884925732959123742758469901946988287658575149903086354429144225484391722474834241310214983014544201583825519670366225378422328815032391215638214932604445270756559575630968719958979297612265137598113799953324180918882847088920461157458201280990200550491146869684875998687581320043698167289120628107044235817000712231024091042344806820642092406760347572145413735804940250808513326629152616392671920166326537757357354011290219508526747702419832957796846240545279342309713176048548125023577860629142906450379779541470688107813410704061466553203979956608504164921702394617274160540518237932395543044670980473837343842435549638411611893519306582542482860638231536913733274509355026919284166274510743255425231999262432286524243940772030176451897516571998980022969467946553275183271823213414578227660025869337151300105133917911082427074209501400839360740772157856012143230093436867634377670429740426330837239430059510760379809207003124366808172932732985850172252776316840821612010250664200133291456944882448910042825930682059326283998251566723334099515675671136707867752897394275707682144794100720478079236028077862341152641530806163543919741665864149373865471752418047894953968092252480112092800045603303960627892968903442217651021619955967204851376035816173666740134996452462216069310535944067806515778980029424785053165108421847132971708873456990544898689881831822452072412922435094768282305231242323311388045147555611430048721489250575479613267570893925128675494349883026526354584862025521210787840038782713603142827667277004523028258687356955985571666319086213823347402498350200189491978343185335905395585450194070854003420239837019210118594461272205049154698673326339850725277848751258161279677916384010833441830240682857432195048185765963661775924691870731045098249052065672472526576371918276566879041195361610562904673645535889149892571961403708351347973490184504356220809727029049530229976868432580399050300486657427928079338045232206710846273426781180153455782202132699065375632635032070771533781065165022908316254615064792395142300063443665946346521688401512663852147340427183637507290528544289085792452935426192113787833470694626453006401254234816758919074532781716287712023169262638219367815994139548977209835160544736555993090856764948211074223151295508651377584902049622463305407081218061036959474860869033920847557196641980205943067597442854801480693946560024286652085911741923231066886298413750808290601824622134230624190632727594276314374310149072016702696897985527217948877094211143215605172623056498525361898716852210428341133011582075459061634086941537243814285786127704688882576301036505006426840367714333636375270995556162356000325855046333731585277590937348978640214379509710925498051020903540304565397439633586976382761202721206672056568948730357334418330632683322921044760091364793748646375073676676560397551465175623789080614874221658959446570935815607931238835142945414101183329709711296280841378200726281746700521820793322248610561737814504932850844775671592314092013807946288108713245766177405242522099215599497652649627792412737808148002992677582233602827261121309592551078483448277477928449016972127868830314042471956719602261654960495470539753632402245152792667712601570422558469957956810963952452212418687722732828802527015373947909615367787213249157576986663116031028016459299998725763442345045994808308970825120004842384351960299311605375060871441799844651080311887789520782848468171872779222847917724942657303915458617613540378739882129073880469224313801817250177227111173017967279398577583101490375417223936382916428543365025978237658776739920337781896463725806324656747898937033522438980425123306074901644072755413793753066163553772883352057756950487024115956401767348066643100680505678911485401391231970126648374769505690050857655476459405033049327108259003297078946912884445257113069822202358031595704997116304778433442694209540703233916943336957518148719975437911216688569945187781109700979597127153883273495982150872088852834387556101415799649259655669046316653763414735134008042204601444748772272415052891692722056344407144905317623974283441919623050907974306673398029249923110496076518260764207846795322128802434053225202177930390928068539406258363594174264669944680272762115943042896137362698688008357720255567051594298324971245842417085400329194834182846299365711328403698625552369562540810941631205666142329931993232558876695256560650039037157836314122171278178151183151594719440808978591862750416213430653307883074218753541212042123894388001270403013095105297700550967258145099737786926244693411514162305743695160650676827694297049638347946455051479905627239740595087446450661318929280210453074380247053896607779592558316059135746510007122801165260199330576898583343952636518164003877348042404947487005316217580342397682949074170228851931504450338068751935528613179376528596428869829795358171532725338465785911375381578739652534806347098930664855981454686564896410474823971731854202485821875017588894705411494696196085993260355503201451261852699869183433418418762494265485237892105487882066750571576869372489665912770805383191878689438550270546520071701266166620832399132502219180603711479148526905194491369321483812592171685944894226655391519407286843439096748655886089772089748640432546397632501894080927347177330812239591841994571950026944567353615837219374959778819597289955713774878929266829907151253186831640510521259275898737330265642660576181603470459620112544058692263458615302909850991325945398648086725754390460476805578679512739975963969581301590381824551078628913546377462293287747813858964595369089259456217023252291215892479042033017358480771594134478107061387780071197185893851575794059791686035182669084823547345437336655882797570904947123096221206049984491742264889107469036982349654258880612990706908031609596908691134814382329463577380517948650487540978969147941542155852141396068804269577529642677331829623018981355288973039546868442257873902354285057267687148481897062544782363980122642064315581381718436609575658095324536851838916053384356809392657005728384325089596530011901406669396489177396136828001432435277866443801961776858188263706304082003973732395545320059837270615579414619152859842514746786928857469259355104502205424131111970856327971925498627360288819252707671034306404637250615353045902620416323208597256393282901223904969663941573529141733278994274691939539827375155552710939894629604920759865687659600606173451429223583774793796851408415952681327578787554420103729173444992648016923917969872510568822777819756557313462308575487677253007804644913974460898763222424690129843554433495758497417104116754298340104242089413978294976696455088821168789266584338723777797555766083055402006210514008162376872591905060392654365317927648954213941980070425243889570882616598651203417960533925421700661830234334471432939805633391744987533738044086740360421615913671769387852946432162152454011194659406757903415109272325552785932309284630089023512220507409635652116500849867411636830885117885914970004854943073585995811398098189473218265183144461546830059739148709297114180427419028659673132679620033880476819811914733088551624153539385623752194326947073143372743547330740799977394527218883236742705351367418838591325477883438331215179047584116668830382177639959028623585237478367665669388819071509003504079057777809188081104162483336588624678998146117627026728791194373434134100935040204894446057821327328493544376303306879744352131376081099786240098338229797281367400964154835724849576705243154164522990914597719950842589524035040675579255516027538866066345304616136065965110626727216372358222026289477695762747649347295558339871794289995537887139264134446312129055379246369175952689201291686595929383541878055542836421682000408308341744293310113977743994349513713995081024825246593779375933292178004904429085503582472295544823523194240742627929987593086240196242950417551720235299826861621995210972119271606207643370086949163450891987524426270533161990187099985308867667354261594651203649962082099643460282398002087721377391390000827814605110531894423111757933198390179269094349810911178589161189998176167151210322839245421769100275683399228911448526612473320587205931481837027503889928534851191184018310855204576340206838926021662212424758304395523123633568387325351115996073285941618990592481904722225750348753700645993359801193981848202601903838143837774945422794900749715791144743350521215368301785926905684423813430356350565266205636816273860571930667792171941818231304335446548658848229798572774675091239884038948953679253381640156854369130563435458076696434372518320065915748370421779964729163295527897104363041087946592191256258035102199579360400256051602201166751446686156406002060797030479992741792770140229530263203557242306095220850794145671823673335062838726976637724396457245451515039296783776787713516916292378538083734444597900235036954608762552334740514939487793249046373591808450762722982789726153557904378200058205314380662600934419739176418006507659865786133972483567165436445600467907149085024809342114636516377461401483352645110411427523722599723262471649366711112195670144629564438285035248937491696038021378337163978266070882941883263734654935104889718159848800809852065300843641299942746912812340165542105395175991585016657518155963167217143029576689260229414000176379621869207214135124339182002702885995147576712942200626694888836493307730028354275301393555939157973447645212142605094187318493851846846160637632377529087410337717260484905872313600662224853993826193984118052207330570564916594853002138566997896047848730691457182776208595327887472393653325887291048800543866885938071814810483326837876621930744717319222030198825987950853443119419248281398708070277605983449871060990419463102118488925521799324140335691840154193091958800386987682105883978579802159824389059670377651506515403021570262167624425489419404144663446720400624077593389789328721977705127510043638575138626366147885745015614676857811147468548485165800473106171336202530374447647072734917408183332473597734528018815057278446447510538577041234113799505655304683824024877758082006432088609783423590097341031750996596808497377939677156558556758920210310774191983898970620994424419208732439971635690500309523398005236003731027166400738665106477792224184642242496095488425852218737556818713264259178973756473585635267074861157863639195223074305594432620693602169646331705180483758315437044825148665860149400885164709918038007962466299611865244884940618221379144049031233620935126054076614678355133100847305033809477131919617804975918828368775802277439941889834363493889230961974484043755469776279794076043453306700926125623308387258750781437182157995093808610034993428696553483245053286755641079239423751148599736996763175938204960826638637283166923290188842209827492516494392114544824177173638787388271327623442665306722156029909431406549437201920147893666276752110258275672229635172614995385052723284223076121485909472246168124284946914944399232146863008992694002007209350811985012408979848389563682978711800282732980839200793022581400993360069535587376235161644293484847276548873274416533990203868591674927454751129241379648309920434125419909119479569987529021774271552914841627788138729193136244565090677476169215242575324287301247525488840289749448024691905576531681909257514225759703781934927400855139455527460140095939991685397436540436702584920750265337824790924332475464932473396594985414034386028365968480162372935994321351897854623884214963147763278004193399199967593595809683448235800292623354526267145850801689820114770523858077067369753458361014702800962945220650358956818761331273384083465763678983973540028877489417272367187586975654118411558694357792135911695308297303382130233222755764651289578702211974218190021592282839097077570655645935553138226673342804992537583720368466987296434491877371020637498392436906833303398364521828524702053307943227932644605251907448490231909258984880787339129039030870342221344845712396006726487295640304777369579686611806894768575704093680060579107916855057171628179015677816319066455205452608095624999799531140535347371760957796988597222146797993421379061046933310446987396164055141116862550495575776115798955827515068431099590028351078919484325244060850366049813566890917575235037166986898725441392354890177967140479932070191892272609630072668713164593892069857006985342342722658241526331523596048681206243552302868399798018974180744615527565053180566752676847886979241940828046992818363604476111153007618748051658518565462318286954857601388016431967217110167976613181019503304582122817145365186378479147802890241228442147817828266529344687466894245318497616661643220504133577192795133984398074109661522927365187922398255506561766056823826204974413028865784958033612064133046215046331407842131634477114341138138669271067811217405077863932176430380583069984549250957867887434339025671521332795355723989996824074353870396692761985440302968585188922497736418382561851686552939499173171739418332111645843129141109240100021547522285791775447587688997837369382539835534030020201301651570448022803104199155940861411596657995835686720192380596749442959657993301819007239094147793543116577940707420723392226578422658238111394261116073294154301206158294818854981798070742591381324715595931069778426080064964349849791550437007533857570985701187801309138865410941644832352013794248809815417827595865049178579452688820996734478534031933456507062588707221710659037507591915961954320452544894054989956564804160018768211785406055543714984056191818060035114851685050339379905087251396365741880160204475997451366850968145936397359030480557182622595036531926854715569715293620129298088706095277365778411107925843082790104765417224010289475137052525371458920803483669776173383327532392867062475362525979367978447764233685579277010849993512596231182173244535564234373008352452793894416962056758843504339536594464425106334214056515561786026582289233046294921102510686123989705780724111371342992015834078916246668749155263568144265821221516497628377732418685114941954075113441333356005316494006793580997832074004479289979751882573378222193380385455905412477986339533628688379248471608583222117536095573264512506849608275637262250872599077841882310275993141619961882004377749726063579494835508246220644109833926625048146986232608295555508796511222043212020390518199735189328077646975751331410745244730445705949318247353482493730109734488662615753365621297439845123801554791409426533352209631829182786099511616972239206984075589044386838235145132119003588184939220848734470562277101066973056617901599268048218676452677157798241435268918817767116827201350895391440406675603728782945207149543889596483104041110523569525209962354431181369645876388563652177579102827400265593750331565083221808628011839535490051238662276876747323407655138685298275879456924675636164922613641151479571129347726958305235030308007970582303860338738640512823073066505674365938941142281196118885900155721190975754882927122984399257331934533499600450898726805365930263745387374628152444298107284869531524704938463634593116916099117625246193308355947713402411185407407933064539534503614340298517179558625399370051908618967662773380625037009573160891095261236794071608693270679674732222093724401174400242813149421747773029396130035165184239710762590205304561783307356264797895625432949288844743992504909180793459454186451342313517607689518521586418827818445769887164367341407982467716617786623666659047508424351117689471567040586533541585985840181122504437396924808055121602997683908887672176871158958507668232066779789380014543334450890225357245527870418459389690072505146584972028903269688456026774829974503861400752387318337266372467578306205653828012699174093618245290320364930218083970684059913502467603358501372515320767635618615967370466903898196374292473489028596671313512774874099680240641574121191162862642625955812300586082263607946740854624508288531114904886276494822591511158910992085203925967520825298801945594775543123146023145195256826277797869771977983296741895836237016007096916239521703048556969591382371330510216258942753119315734692163716734103704208637368551625862485795354943902869098975336385716786236605442814634496979803952009452703202930016313828419689982477691199506643719243278808461786380402082251515743075710355454392844261299778265718775988116882364874177921174985889645457837454195310575286569276525921906650613393101990008360024408904939537187618723242383013111845932126943772025977492643671282233481217287619312222198674812037910232466699900864141457564600541638999786968895095108603961616563009766499700179591029516859694630231473658951882974216903406405444295431370137779170543409357943813033555738645088664880966177272511585162696604598163197857612405369287860779006862615902580517092128190998826219497559475214030456033730880293204196684191323076058293285142774436413190075510344447654302535867677649095026476847342218795572959118262400784311410675036402550685915696717832884296207916365070411887492906879638911817302020229283537865552359166159942549269331189489080345354378159954997226105180659410402162784419249525934839874165306501370284203066870451561812952285054440756344837914378293754388184762192249875003265456596397549557884121532012181722135669627972837886709217131489335744535261248792173425868288133278251071715513794224962196127406668464381150618388396349987137953038905205419028863889196049329255176926975957813410278196202565253709911598042675371924446554679605517808018257809040098462190612997508351138506122414412860839192154132257034793208361762460809050787421339005964861735274679976736319536788175304417630638405980709121342752106474398495755725559752063673143888450874477632906643651683626566829830889636883706776353439022008341234038350207024148919540805839200171576172413915245902435469258672500265802933336273392853146413642483145411921370454157375574763899911953265923777308534176072884985977935298723399715726553557398045793208472862191708782112132665872608107365032513034468258506093206237132501333294780358992779321872909907225103040591401776701516170681181565234931312552539844634385164601127375244025797325924232504137459479546902011814767061168177138860298539542669328493702575926575372370092227204717764601771074265605417150429658342585640985319768898704192550646966611772139811907621643146781897218577803327369174839787920099637524878195817875444298452991961728273839159195814433476179387517207009416382202563026516590355647283591439023534124456452110456406212436074463773874804159723456560598722190964331515491027921499188395763491024348611254788713522478352231941399405867288766606754087161922236476725067587530095807550103602180610768193849935743702881310004392231838088855957583817828254752842417379722772576826149137757757501241480168793732167556923779135753704014163777957776646555973946234946994888322957203357296770727708653965715425253488248087450401943919002381585805826757439742459962163782305776158370742712154593958448577669884991942152245932156662201844933714000989888394056241267137647839858856733976635297890917748916531535391509660984034041263112484201821007576975767824962637484018046482873240383295243357341180297803653580063346586200369790575615661818877723372143116417542929171329216909479930391861928957632610621115856835691548028046127971190454285870526668156247501774746383220218399275080004405964761983383323811441989511534099772220026395585551070062942227974023196407263381939628053660731848093293926465177075219939103601545027110831123152499323925418149365112724209091672741133478497555245643372564072312912294234079864779461350566912005378687302547720533449006713999219878464577670647486082812376086127889966213189335011827493638627194828777292120826512396831014491405297059169428068742264559839703945485722290045758719750199637095856971175128230302161273967570791509827259605528215831716811420773229043653252245855625688077713892035247834299298707624457712822506365885769455698603440233445529399266732086350089069179236373402749167466961399831470577800366273697799699555893329101407494537848224912307353056752238370911695074557715312931323882121160918715521273872183990007377971655116506507692541350930943294720577393785343654763895806574300752630322339505944196510061456748150418085037191371933691911997271603941139610566634044133040548566786438577908277027069708808285456126276565712795241135961737254750138729073821888913981536419797182330445675862009835073807390132219312879141969851742759949830874860124897138800589285964869150578417408979874986608004284363827586065742678508333717939668171635750134366680710921357022428096534153017687074609859440174398893104536155362969288777446897510944458998947508856215035920526355959417551348700654293790848124661129719023329097562187946670105407301326105017529142006352666042330924464201102729506805697682827900286748550281690463248162819571541032096605788258385431079351083734224424374968892866899780153424364879764647163810307456156410563306545703435236186338974962166449626992710551957015990703164004305446251162288611134678706621383388837537961238277071468859552474203522835097888540901633279894345817970223731864040228072485494307805695576681588865689707619916979736856832958319076335856488726190992856945491060860423498661662415483085450104003284521532111689575770050858026484927061566485518220384156198942266356136350568676839961058342700971582512639499648362354794609624393247035118324851178380973078820992953010081945217914140006586435995448420192007852826800889815398440750141342281564118564654677728384333653713874297541974897492242907667727442525262263722342470803541440772527992008410987269569458864862599639089465265249206434457673414425546142523856738675050549845393007735348072649695455912308550965668986681491061715274707679287872172431898716146377162173697608792702612440241242895014468145792743056251223243187863382742563363845003377645717484029307109971083859725920115902393658175380067534707752410063807573505814655246299497093358531607181409836236275301752985217941811656929165605944966922447029627902399737111816340429516674245559595192337208017828558000620641195070644413580923675344220445151685993659539211187425887359409674808182439299801840243650455709221842705166282668082791772109251390727635532557340106790834502945747370645990214832529060923500390118341573894542916402600574987022495434517974495779759178559876718046139141250969901805195658728977984957420434291105207170574740561033836303002027445869583352022111777926590500315097025626748952041164795751828781464902041466395942425566126729119057173674393926738672776983017962822587363077944485347278751976285586719553002983645799472526641712424801733981715395031877736686018254570490955004475046634903091060060637527945478385455693527947360854743559732091866158443753684276896566487875581064267988999835298143214034891072603252672281168051079332415119426836430135754030335130387783737836181125694001492975107799898445712848058102207041033732310829299677745140843048952769554805267712912897901421999850831410878934875221295495466587362396005277368651869659262781624620534493089562591237284791513053715030567587162977271207563531167293288901604666592099328279247858771027130854516806966037664035695303123512925202829691324961522038270614545973014009021533725132982489096017870837706525512577391476391346842056543064397157971678231772116218126226918034074603888180744682932239686929917081460824574730748306784593388809346898100589876998798328358913131790514498278936187442385771989786134356578394868336226785523470607513245273641808484771469155403048021982126745754693588775440883456418832555065574866729397428448263349622092753865500713709105159121560736565235545304982442556083122705044771909142891859114577003217103117511578821549208874935383965968247066543351628435621231445189608306305144551232421413627169311978955781642314828567051470773420421042478493155114566795791973418052863281055087620362046438451567590398680278012417558011964786609744923497197406082789753436460403145699157511666704726951621243294832863160571744297830079921254775768079067987799915215309490286975883773267312505956031817727918043595041066004802318475157316084491151311864782809655299573771228597401043267239651680248101968052850861727994464250341952844102633709254329761854598458863461560148372681788030594531161714537870013484125960221161301444696521901183432240053042887417484301421749093178293303949389919442424197066572000426164511970168890526715211478987690459686832251695223711365288282276270224244316277488551283767041277866047397302481639404746564080515287156900912263794656547925301170619730239137065301389297949228925258774973359512018774616654312990816094253137675963680681681251306817843666976298433862265944405956794112084553195931387020937224528803869620323737052678607874599665545760145785383562784139610457182427467979460910784346756792030880923305076869876495743284430010032389254929817230095160855754385124629983431115914480100909985271599671309262109564443861707334924498557310069600580437087002819814568118621648040276725799223800917572068950219037190063022084735847684869196563879118643292368157960219637352418873348343713655631109185757919892170675234248244752146722357694323217381441734031952129233822673378352196004768393790247876304397659518758674858654415319396145339354523216546085854829081103561214328108611014063128437617828713332485489957258176276912929849891260920988159657536394048050090429617189020978713910540084160699056390785258890854536116819313145343333292681244753457610595224936179234051210595817889136866698124645083938189782436270013489024849884459391635521394758045788738823769444826709308943894742145781055838644220019340831231925377066782438505916787895325855605944175550927518439767238127007862846803338475361028103824966693803867861640067980861048080545214135461390430562271210123226006469525039838416849325801896227117306952738048156265743741052320280218019647924369053624792746239512766875752250990966077736411878149697034994958735894243973666632025655195932870105157137976760609864331984116251550314879961331838235892972961365481756393437897861525050642934883587595358643894300785378936340339774608964544190591923294064975988136765267297865492395799327161817211278975063876891713692930258351986190788495088807358392957318392119645729344934044292912910261603963199841900097324634853023654564120904411807411436616356129589153426825746654971904951737201006028396756528674985740577760676570030943940832320363667227151897488851917645602976958868189834782890958062082268076491449248655883569617460221598083946030185524892982933189686141071982102158388997713621494516340751874183261605956881174346393613168371607451835606133138702222192537940716166394801075661598576961636310552749768195693051304621060303484670669159658065524547289253944801658469002735454587334515919798962625202750014571801323910900064575117261039983233110120146949977705727449319988809529175566442560376167054582819484375823081581360010818614592221093121685830243089336171923473430963144720031912913772092664179246893774875005681705568069698175649113818795721752927203799035188351361891287898512511029122595896314741668701611452851111144544706049452461419781551000561872648889170587794224374124586751705772167629165358560448309895907421958084072138718841537960947905084839267578177811912451299510348369996454337195733834026926580453974969165892049048249046665456673156263916394215788064801284465933168756489876948105787091763158602494369457120336476174343386553264636281827363192821646347889631902661357342909673661470360281391308925939542809341693070909878575258615523700386768911574223692670372426813642091190411927911169940970702732144422936504512024956906360664617109288214778721361756274044622490985421439912530563631701887881403429550224391052323815073521109955004491053544302789695388552977409426992305824986309018515061981991118919416317813388416496649313028877173756008459805734653576834986006583971762082236030120385825681550045434798040591778486307029916282169979486159349694609445696938927638291479898183641762413875686659580736846965186717055837634456548796526380026981130938122570611474678105983252893078433976413437987138075835014633540434905349916557580274006888938773138059112303827481180323498137334609529100335297927522706478381391781687192286262367036071347465666693587066505086237949583048432897588243824877908009614630848572408171410814721919159451823971135183866115309744462278945533397833361950275831879414804294775237977241569930034038178196564965984604434375204390014588933192865108550732498775467066705490383946924478421049816362299758217773590528648762641001046681088188643558777964949076989496927829604054005385354895456761021223430908950778906484572705300247965033054227513828710887070342027177082829250839481055545636806402106323360254769928860746356686849452543019148908533776268574506784100295915872925957688500578098393180054185666202203987743068213061699166649974249396858817481270800719657245889088608735359506546442047374928936075408965733307048382917927305362215164118055013974133310367374129881900033089920984400144785525626772459206279567749197987456922625207084683554615383346511781588756867298005133079837687643865820601748861271898683487222278747016360469189907589830497560504025412356716281963044953952114105033123693392129378343939898311956442034314048665360200071633891357255423870122321553471540586544442256767324733182426539043115242129251284362759836393469235071768940493827622166532364914378869441575174783998842314369475121058792111477390620317789224710436068753104886537410690096317477937147224435966587082804949787294443316472202482656189960963997178830507522754540291904557720606786662488847637737117746020080131541030232211870916869902672196609577855832874085986968866553459874545922653838067668927165278272709253232140271618428679225516974438944954935905895839914906053958866521432320099700264743117846061367828993586767818744083329872693976331316005725786394723068613822577554115235782952281686568657761585248853794174522845967317141953422081250437101360093518972592096929770405440134595912357029310901915906724389237276989652765257457321404075892952803086000377496658986261556240274905227723982823860960791495111001953507363824156511409959226944150164693304360917876111064521134791602199386537835032022486833085169693764004022920442272805663474283637838077161750927032056569318787387247914885129552869765666936594659397401969827512080111823793596201845482996123603138865665074546508319979734413995734675639566197089571922452576895124072848390874364505121492855595156978044443658696906500288085970049228303965890929052149151487267029202594983445781963721313000628191703540644188058087487911982504293044957282840355823415957304030154124913493989044179415332900497342997280100286506416405394292053502770753349693372909746049411618665102685293896355011937540067466848942761332239588013466000908799255281841705870032906043533598392203882266031421026737948632101468003338289016048528717639206648778460731260735137910395180710294283503111325121872969798971437643796744222095092910023114021501388406301477227193853498585845690017297695480801165285175826499861286578647159316083474568923095897200739390624843464530035017437157396753160952165296739331285325464509433000275514476092232274200196260360140590646269461365495631350995405967223205924600702155875396688415667526001838379587119280815147750614591822999453958346566624095702832349525156723326486188766352120881943837592925151417325221498965416935467610750962812621662897467431192936397066402507792222498049860372781224737259103827317324643933376350687223137175420020405626393107796270301848279484852011136093986229282608770240694955358621516339540636365128599527850160781303336550828578910517710238648031007155883187879338907705024731462797029840903350341444977565041746276976467514304070337147014263868451127646315124583113883862614014112804009222796277171753819012928967554785890988691618379896128878070574134687270319619537406208875299808108418821087582015826239103786394103445267953080424764914871999591608952415140048878590989690288569893350192611317370317426758983545419955561529737228005454347007762483044511910634160311934192652725905245012009462661294620372755029274526763250639640921309675114659859228643887240881410520189285046423253312537647750782935592845250040828723794520533228038502320241483203338173691483597653885737155806683163779086234460176668101950049406420773555759092138921973547514904236236861591237751531489909884407918954527332957763078005572617075505265670827103565596357413436431007855106113415831505684621860566988885845335955170304058054437120529488435742785391404776815003546172852486233463696003519088816329322136894845826635440221868543618662068883030871225495178276064798837065494745653405148242598730708185656085510506910084330862099703244922178896405446123792653367800830628049866714289303669713992596936103629755691648111212643716184236046221888073332017915352886299268491181250162639609578988473980842786570032481268014821407292608595723767225832886724742113078676412740319869751549669578933096390271915037577752506796295130147918357368114852534483807084088476107990952489198714178294534762856224121730157274359418715148774989372681535005095476145259230131813079396661898994579130508770084032444217720014289830741085605868138204045237608371558097498231032733274865797375498146328316684193165054979167002292060438138858920156720921250821615776493741353917572057547516992626679923801840067307961290491820365778457649370266724741306624807896060076393593488016657457200788641028521647778912972465618378097692360254654776053637888927838919698886329138502234326384552224610150245578309957702722856534808954465943996901133119435136064003994521940115925947936614383320842160580784354387831357873887830967456081275549666639330295501698289311274220460834583893801655477619617049612487006525187669107221055442933211407738421182482425985162473355161381407755195649092747636290806753731281414795468365278474519142883851735237886911176349076487282243661100240964609636769355796668614912813761280743295585454413266257511249678562866457492289431098962550258679890329397363096165538361230472595877455175153017271032104072512077356346931569661514134752331482681951285393649376234380387985133707158588127139427402885301167784670865599155457873534008721003809763348362987543174924600745538987459072500432769669446514305443848381340383308204094127409069015143785140521446637378070419259915620430525217652255907294003191727933277391509656314537074534247857331508886876268982211073324404047721492786811362401156975579778248413785329834111403430156971451475842199019041208034717546875369720958507981431962256505218149368835985768445186284494334475643887103862422810321167741888138626040999350147093379115488662810020655664030381803098237375572217356401917250953386612716591475555677053330931946072329946601997237501731939606371240038955384885590876306993072085155536627244423320889939256288331601331570699581075054041386250777428787422966274866612890110683151711833950804192182051752909693755474977051734371301710344059587643589188923614897061468627200795440045899131804859229151625234884082624192559567106894957952784214135411116268082423609631675983170950883347492780496270737655303029210383034152326410266485822501206238970487157771296372941096559945361205145010291458637983138613014713353531064483807589838105934042829491098273676199020931675514131286141447203898617141514980147972077229986401235273725127780355575871929095702291706179333966487778533902607831831730507179759297832661491577080372373779311610860940494049311241258764669755981796465158392061808926055609305371790682227332020670283594335973521463810017214333840479659077134247574774464386020611937414584933756620088803810530629270845407285079163819548929251469675266159375006487181825737869460978159942267918032002235472533535818683959440188019335433462069980550779368385750090212595179405019977604390449751085703698991003120760447583548566960074295574542768616503508222970161390244084073151196297135566902938769943711233235616261770865108340142593735841771124500410635884371659144338464666326337476718028092218986479673151088430991971136385927106925988581656856032077556624441201536325065694032002987084860665212537847596423369681435974670552188595333084483431356922664720612721723551805286446533784408036908893534509299452327465007315101225809006644890131286358392849572909392902547439711330913583915747224975450848054678426510518122591441506735139069555373552770482981824297615044456827464999872155164264465843670533118579593020223695609973801710202022742949369163959238170909779289442893211092202325916733062532009879495065499605765443462939056169443820546866680932973557673040297278064438963126479306366287807994278456762903222465696611998826051190682313235143302191533665226448162084667478364499152827946763103562355070675750900968975974917340954526076467167388228026415029409717411789675590880255278263136798903809368523748260356966164280069164472591296686389384520671719752714177522559283963086513753429878710134679802593932407710910766374630648798317085780780120495871404802473327639932524510734497369349565002048205918265396402822600755555555255655237270519381200299392022138171175363012751617578921227131433841709045608732271844100913482563516784697201365550224951103087312180207008022366515914679789782374465648824639199788279499043018846563372911402261965005234449727904511604593619929416281071085407326807942361362312279262149243540662602737921230383811551203112113629104529808828317817096541137711918215461878019292334596860527402678466616199076732589980037558460752733030046546952433370826471295888569782189391483937163032424431899778283050032446261345828192271906790706190114908485162494236908741848697238850261125684206443030279610536578342344838099699862742962579579699894006968812864304785089280655737653854526220736603331645677242391015160229917699113873035379096891283445360650342583774968362280505949419555106279133307572738532241554801662830145917405731468215167718208716420581945990082471478843180012607254886072672365625829264614528719673486107406956824714562438095502849756901449360701821785873470681196082010441715609060318131073132078862383638453182271066662372619662733718498564993957722937656593996314599814159028149013022163123716489290710162617496256204589133503487436639060943037920486943307784771211561008147644260058124840863491836667100097492070979320546805925128899121002921814287774502886438852261924748387312382984628382513345996502324688803647337568554418885989711115135735636424259774588568422637989278569994425304392084747331133669673387691881893821291916833596072063447030698000451062064622278754559442214091591419509626158538402045251604899036251780062661196689929387374621372358270995162264754924869127968962525849613069781538098972305860099373383860095344761293349124239853431409657854944988232718167009159663792668492258059044537831060497632448628129453895638453075225589930031938305799703036212801840538809532992867019345630699179382594853567574620742236074009037366391291538171327767663370622657505509992612943584246585890907201769716734068431376307877255153899249861928650236710826195937840081580708216236251140480201193067289099663084051886327262043892441108257647171565066295081449912305000751823143026627312396683743678184625942379778810912087693802392489448390910807009737276810477160536865976310147612856123251877555303170247268899303220972416018633872616606124909599249852941451593681961513654254715750588583292789352211460257229089369585758108741517567887644187315001860375910739122023891781234586697863436024347650910120446428443339327948550567609724141633431141465649983231778870738268099155151065490094011012060523950739045685105923542563044437983043155583929457850295640660983091803376929930424190558651225052028549939413311185338785809485061577065384588561062430671721771588255580375869279173205271796045414808630485367480092434136441959364003245279323209313110585094756743290407061980548211819387344783034612032169622889203352313898275408929572371882626363070798145089545205366461337114187781214598661236680000391689431602300247659605335510666792819261606072798631972404479297251092331573389392451525928172099300087373069122239809232539358376353246334912442456735260506514699745556495429392031700966381518889110132040386397862316318351859637420714091023787142704239137325188701469462345123613891714345875520574310561860328719999403391006017525110731073843543143095983261548712280282390744224208375377971015696050958551947251046236461720883771823176247261588421527622787894571978235708992214495731861274381865045549020910795607433312474409855844178082415368257140161630246537288040506414170517361980085401011629973313605722957138686978437270991614969018330342395713558167774757787136413008402018707494892669137119167781684703346320003662095024528012906751518446320895109801559848021815465730604658424452116981152853728359433655503207172188944124940403682643968868243431872776885618796206033163605013675907632052963144100616903084869874974469941885125758225114348198294327647196060231124537076909796335695355511474339455463468494130310579483462637897211722856970169139493039241818306735715424387851124023059296329364982431345585470298462680326706450454780720635265798495783667636673982054614292513383738166529651101561538179505568308814091097030034390007625720391604068435319948728779740211226387485083183471740612552913288250945464286170735407907417815672444163478435734947034505857878136656734018146755912134394802335071269996155128999612802897004120745185599903225016515161089299365447815459503027712295854145385904085153909507787529712778878559637176095717607157223845390173729475094579350302931924931419982340215042604119866686929680199669214376405373449151432758638329559306007940642372617731249171322241448486441534487259678029411909057575072955897923882584279010706628292435639690296144863188882359364447515963484367086877521258784675677949565770789971745612074070677285866387719721001434453160002879704459084899880698681846163413584620961320279567796649907624239438176362281987883755014177828201127550003206362371457565014015031049114403822253839759375616155371328946128485435302963179347615911165403145047519596034348600242657885502245286302597826655655922128396318883576447769753183951647234420645990820174484738438529560837617944234408373101319113801312335669250767776115222542962443298463001119635090372620802250701626641324200367661821831744424408435903654778790606539849819219368669401549406539601423484017515033365147446040450524795774273730525696923051500985352316134550894659778985879510955945719645889380363434892906041733226000396443410709641640773673258232436468710121105627126836357431185592006477528860852262911335450518040895001276997464999126332198124467570094849607616440311653337848559284656934831444702574226822140153327411614233556517968717214647262529874067840454486137893034433149022756838362232533875342436633275460071566873918424481367155447295668172703346240654401422180714341631350625770389534007214827324344159227755999129625133675629811772278987472178372693821193359903517444382502123610946860463061876999874603997605358084655072429229914762474235939022162696667812834984387780800124005453664763584068786659358875266945304389193371016007846395109385123903675280061827574681437442182857743791184758593872877400697292857192947234777855383590174361200117010484400118411634049877306605823727944978867456979203777142267932254529499459190650143306522815997395986458357618691154757310360038712574333036019504244464933221845847854954749569124786095801711728570385114269107528608255109125447462463954118886139626529745395088773990539828750099927889453498177534950978206059335825814962479649778185077235153241056761101009225169591589652210782532163984312335796829598863677290388596529340215767607003347467860214480482211204776663275404069611694825164135785140271283793227301912943682182830817171030533800020192982392381045687803104379991321351015052286021238019525415112082941032245888693686170602608362166061225956654077661075754351968149569709524833461111634944261762917377097441384862018745205632916385305587565661861296022561809960810616054583617454950346404778915780788172780395342266524893568968250920624725679249164066619669826837036000578481044596358259077256916235100909489558464753497864408611319825157460905372162333408496614230495218656494896445450619978925447301149335807610451919934024868208093038048869362085744458151708034262337619795147376369747662695181472769683030825059918785743399453192191663458388324195681067254232425965247425177492159577549056808966853358830693103539758518680917571281019016061840979396603034164894524152909871458980195712846755741631901094748655613538715211557740908567602251743696804714525421395396351117445651109857347768532271377625877966857324202979085608804844116772572393201493503995805769591439326634827363205905073759708609201795326338226908226096598332132304024412548831600897989231874168501572634626393666599124083734358769619827147854034047994599156051400852096289691594179054811828050668344081339328505515699193428984642402446223552627736222333853356875290409040720637972359563846187204502961036484671291278230808326125033922926312408593494079092085963078645084023663108417602328341929914896420132026183331497456024949913692925282603474782789511316203319527583667633963167459100498858243992518512357918664561311262958865261756642310423617362751017820861017742959161956496627645104618080200883845958984159577065558281660055930005084921753312056467262613918303772705388879365435808764655232124559144274261999601222658939241402119268361984280257715624137482949493701261436641889907936914894275369269417563470784630938050386205577986949605174507179753619762781290128265094010765762913967840865824678927785910300258457104644467995575448460847775388657003246391496514836432823601318115952322274516869068251993119917361065441691528704367935028313685229139239231362102600503786224650373702358082589297129502427341527375859223108466897315396950770129551218197494777200796760311121075793594527661262932523751760704805954398418490866166568326060575915830114126478688063242278501535157402731187997259266480039083396647208837404386740891417354206322746163722501240143385120812043796403739968191766397640245631122352947395333614861373208393824434731473118291550080339686872913656180526122932597022666411594176132678552132387014887928801396100637409954960796867885747332782542362752810190682694643079262651424865674353437555064148643480766027499842204519159653701667140664289710349312048865579340302358591069440937673605605984699280286276742363839670035864971569562435767099097896585394108201566787643130994140210581908453761153029067443178443088967745092332769952315520481811831372760415208892855691992156707655414578516971059914261695420809869815297134851011820577973060244947143596471802602791046143171166349194088381990492423351446382500661009425639406479017520499343855567759644184664509391149271755599824092003975253059872094314155454558236159511390767205012181409117260641840376989111993338722518741844108361299348317001535578000428543110350607191779856991116519934025978480277518091515772163954134681229171418148311520083665021827398069092634596385977345781574189206971225748887689543589542530365111533640640655756686960726548475086638141746188907767016641843530203783249674127251877705602497038048839119515848574438880402386960773191982283069523502189164274223087081101228573238791762873916303209054152005794856048291585293451503213867393542370247306520168849199487363453390340843240935220213403484111791851843347302219305943664138966778899652692296079241601959945612627120939990551349987098028145001750344113707397259680245293797928381092370508592281688207747050140949553205054755955317348954756052130486313112407184460107141683747006480756161858126657180434613459645414443532534534042646416254895322172774060100327585179558404856356140356410566259804350074302950375193708221108483281879176243472697021870842384931390855224534975038683138073527074993260949820312353538177851825831223375162466972159813468909531221035427418778861147508555383613536791390948380447809949049162107243669617319604895652632587483952594804705717313350080241130821278373283986499749253046569740801292860868894722289957006983584680137416750666068364246532212431114711890926144015252670996836081959665283457086371039959751452801008769284627044680325607373617224949979968959837658965020624423080482217862999187030235366874945929327727149027869381387560721866860230591991552555177551212950948966898557311964603894994367183903716934455583444115662503587170891033287425553069520809737841356142294879278660837517718858200682922961878582841135406024961569898470470989864001180402246074951495192048686458097330169389061952299106524242199684857174311396132498986977310289097229326769245803142522590565599678065018445208909457695187265147453073093372076472102769611363359343540724786471706353373602688661795708124506310298845408718448601665897139545143446901674916341815881404972549510895906229967115905451075209361458652251104706164217352000275163939339982841062833889765706310735556897259928878704449312446813825450113175000259667036199021873082282426511718964151743353001620874106147360664620439837526519630659265610757137293254284257644223272901122128100302633899105658651026471963756843319193132223079401552311873573936579399389375199290355214399567131457059969921431429101269287542104446539468000283166389456679282211483907202201482443042265438760791438954932059245540425443525362012126378552082889155303096270719526226535088502956894459309076316015403998281833129087114436301925302234759198979072577097410714027995494351810048073235199732526768540313727738058053997717380238964962049371099810798081334696228880084186665378803324293681232728886718948220369488123057268287576027354821669929505064975582297485949207296384141659233470299101329577833675083526504722468938848427511580765967652650601440233203679497249161261322240068592085608275150379946978205495963057197195365395077001774243999136833593057603010924776546850718131892420570064038422325288125661970443454547583639872412476303320003998986692044643312285591468857409170199405843044391846389196788385593029827081791251209156955883108348508889317124755876906475439553402182903969841441825117546452544978033493513313192947799348592590944275258093358370226176364929685798438127054759622431176716454400761746538291598071460806825759175568401465286781098518046135289358951388534436980866520230442101777669484506786974441859962455434967922542910661515503853553532164561782403044222463476301365564059868636819263534704407756440466770867127539228850161970208093060042379490716850244289857362760018839461865308886050108763333311713400248357310267391889930697908105448018639136246203034638669943101106134469439966702650970982426480166367803095092574274172207719809300502637850317062146301869373781407028958401452562889944858714093732745029891786945407350566928226755255488648451226102919423775241665412120034435504085518987546148653053069042445516582008980439717139052649183966116452265122410405993916262516472955560085395464317472608756281665099136143836176100963910173932624059789053067804048168826949604566707102397038218732254068727699044561015457944473096197161045244982297198467358893145843200903243739966864360574433171857982231751604779278409715560230351290495393851833907550870965581263914108717132050537220347920635600689509528713999673790812975808829589027695179145070786014953084254336571480686707425565239151610868013690762396768496133067841219386069216418208431729839244733846536655869076261971975033257186196805928357146086012202592587960899331767858247602850321978291562630828538580054943607998838528916396263100441479695240941644363672223785372245356115761370727179580583966504552591092818043245489694321542585171457226485634884996260626318997927760041663677922211118843548896012723314071989941115164721115218757606229778594167211869393068016884546371992917442603958021109452074897696810517560875250416668228751669972059373261988626514566478042446289106571645884272573263036215114677665268997124547036631737959158705742776148360619879318478684081428574416117198907275631814980136911929080899545999598321252284754992600092926917945850867839032461827139275952172764495031974559784391738410618140825537843277865447148009776488089786766690866700945988036563019817123163922143702430117941360940813743378264174337529183847733281647407377735460450181566123250594464719244018380808589512085763388697259173701284551580956267593512528917759300605437027416066691350009745787577022169928868477485845903437802277494747246371575388650175151211994552291862930856272162427085978898526043865693864166746535009798164808318254755002072670986961340331553241691316746239010586197876019132821678051378635882395856171810021160357010248702733823288512941977261083878451731833745155577402909928970401613563490296642302435526729009991161479700444142051218268958467584495213363148091161452347805320502704620113561216200884795266088686389565454208314025660538121595413160319795552395496957841490723301224745281021572425413320022056781749205265236564316956883228076511048538967220073560675966001411382101096642940443408056785726308011609831350824557279340987089498309584377788903599851823077951830639700391364738970603914299925661147533837667267979091897151831484728773019891890192570280210881772370084136445279278038457980662637737640979440084460488215563851329618792011619699689663914230145989737504596246376483025593204678787603574758982749416088838632242682207414074264986588313521769798070274570961940261679069578844768135855178805223033415408268939923669705317587785469589856900523039272657600204034485820395020770687737938664026644663301240920398782230940360947588988750104219181861306489570797541452750764850557549980821870774444669054422674250472397535002558593759067164768882384161912600124498771352007141996548144200762679004345843060421065993063106702321878190593439096189650558695650689964270305740264277330149513199909466715290275303466522359694771594118753518925255156107597984913426951736719373008744237697969506693467552806881866373992411330439498300619017105037941637199472517027887482774695102908131206766381001931350159681487898624950235504517934032875691199833466085833051770981328149474568488336881649240451514854806522893517610750388528598750150816790259614442016408892377813655804422339726517539468861932807954088508589996291211674174601988814217312506813011015017660286297259220768936239816120892997715501331936445797551072762551320912272596307358844987734378572570954467951263747638244015026916355599177702040691225540681841833466852034418335318416085985235366693953060980090966570911616071047300798621736224335579449130160314495671367425039777645061019399644581964141543434642985016408351626667382029994916165356010428975441675439439466387822788806051671289970961480260586736125403044710280817238594013119581181507131562279779805259127655568711615229298848808665351016231476086655329029997530285964771902560992432465898637670088767656300903192462186289792024884772702874048216305253721007419154846066254135471761283094414217625941068502258613485984684992742383321417416232034918950642433223446274320609434107966771244475247432393148603985643301591703147477245984551588079689635312675546735823279856757894041622467240107708402421256773461690579683363855119612475209308964959724468043295095658711005519999676010408386323477513068421485162464630289532737457242114775756438084717812483025109484091331756981402503570130001748496663134494725556337761648077210029459636691903075090506915632889786515725924539554109935823238495550843838132431378277599427594373969302330499252550815584668080288092929153031865002116258259680621289683007085560996100687999425319314925732153850256149533710811811673507965194807062246088550784715877003446558635492978329642586814972856379010862352264198555205556776745243350491884462379312195640599900684771201145090718752773139516967080991929942513180944443392701094405514352787975012632079927714179921107315743302361168470454279987885775131930144146684024217597711367746243250487517838943360433008779797889932064385179211323528955557831546836030176258258738724934583529778603667528812834479601202413274293257421794579855272218507427198896951787035248769503080100546611877993505054553260498994519523251175944761495840107165685524772067824717543872121419316383290492251977913045174776931493360134566780798199449454800478010575308825651830663075195942955040356756493614652199365428246299431036292522656410599655686562436329545724257937141318727326228210710164110880569849967910156337210890281782115906841254212739421621006229508108611256447408892133930628958376613420625197895420198216222588852094440012091587455174203528230504020620866121589558693271060784858316444053091048313656317087709345064268035636310018427654284254264327718517755740609193185228236886872526653036588396434598092387642101573351109929732078937718875272475144870355708351721331837125302414863924891279237877411875106518859457511217504569692166547730349904626473796274004495217609551470343005374048324697723943197372032611229467290072593874939541549046861857311017584052592761438171887017946140148147562079612918482590727538436753680369969361280191126438038519736490818600077925720607743856936862489512027246786017919517996517883925715229484300060247997783261008886165011998978286301868494241979248720370945243818267118111661826386113822859213858171808962257642386272014374727243015742652771909111065005805770636118704867279291917076549279728816929399560713997823739222863454393748168257724680204656893025862692210187013461075821369436670034222928268692227384828879150959333872335495404488517058007849546371466319621073607997245030265784882138526842890201479260295208333192246423140633911122557784968820472710554088916904875053566083746202775856364151975732171001490150501531712781693848450281243393163096575432757969900332551971553923237236044825971666865600130260495084120887825112494472210157700804848453424027572837790889042925335345150684182660754387767134082772303110465972048655810756318333607877998376976135301572313446370592499458749344850981742664318307566841044416612061598901544344086560132506032897465660285458074937582934125265887122280007677163362041657724513730314369286925215447476083586764737205557324077735683120731061780189108927563860827819695099466824348584903171787810894839698793632352496395375506914319447932743799244740918613952294871030676116429447913751182140306361497600801872763546441136319432802389454304975812661456089277043425185392388485437387295297568671705097915713391205930768607244421035592455603100737175604228761841601029423810580658918156727995119719796118665282515702027740065256254694012951119360584161013441930092931961676177144612694265285927639117599135249191981703375536021328189436252462055181419332612044683674372475212505828801317962665340573731073708936796838865711963079289094072581711943733975847890394561758910226580189048563153657180888954844019226990057735817683616360366585755020744413636050789721352762111911221601841564300464276547427509961740477005855403467485563433393055846691633668136391105947635256294619425889903158986614866652657558839044828073570605937003860738305366312176338530330343506149967984252593488569721372160495670379684647408590809420766442296906343949201714312228589986916241971948952494015080313008589821454269391199002208778544091838766735661589738014277742649888462399946429769477738905270550232849779739557765065592382068382780189760607227956694363864785377639062299614718928573179001580758664142429929968201754464276536836972520215917193794230050458543348032357951052211198347021186188213119602325232220231135016322515721495559215453902428742027504821011755837277959868309703364094707410790029079508629643776463356346447310838362043487994003420410467103300648848158853325306528867599810312876455378509822506493131504754836631396573000057388325034839247642276621828441789398241441374533758422411474780474999658248613443228286427719895894242254601217262696908031589456426089130436507293877211310633392265272912997601604360720781419929210162799456921486641655220508622565029022861702962984387399237587308260079243300915293432527446458587894931883985322418346144451163912574509064144637239419169804190081199554099854850371217325307618719263626200921353636793737749027841509329964781097525029618727104220344825269945464716830281499171532884112747965979311052776170738943839354929824129345614833277887078115009143529149660236287328715877291560803453737941113421305441182395194453630933617058163461656010876736971404654818115473512358934572378765163008677239679195706570705078601377120576013149452294313545632879799784406293223693028442041897928509983534706377176427606863830105022378607654769853483373529300770491124085461638920214658947156904060892460213750936476864181706946396325799427248709222209724788530528516572531502421618987045871264659978433378587325410286852536919623368502399887863348652257709326372165796307688371116564547185272830000739532273204488267962473701713016104722438530005401619756261068231737306114098258628510326274108220012035991667623133556502965827196337223781177731595406887879789738015954563862276871067830328343603071700696864034091074202563891054488189945733593282298117490170578229488772354468466302209687593336128277250390109257395952205005977121821169472496696371406841484006639967372630668271146625037078971287237693394885086614135183601961964997805250141386678630137173648862759430937914383723744268279719022106142583755496353092082620244591574141196941544508059343446842826854019575675055483778124894363708888809550524202378680104719108148441867791372126072209909063046289576268137289239539105688540491487594755381086083868594178706131242556328925301717133336063312281206510926488844031759170845196741222633318291103205203701939218102127544329748865987327592215508274871294967444700256736356417632794017780800984889227477314040428286943478065182363302399754406316498887460218782744615012414070681936413330751542446309461043411342564994369946757002750349043564319275321753869788807065478620640668848607008417548215757062844886693228576365189050500695484643327623602158683531706774189774365877460027122647213613549550720184926798898791530936175323740443512540701863210527163271643387480689194413200791233307402027662308425369964193665343725362509889009310889789406086890211276637195044863937859427855116377888660190901735159502421633716076748065838718669755151792225977385592335409860068020119820010491754290551077415856597237832389249067213308487685402176416331233189961535886965818346918739569669620242675469434273805629557529999254233180058535054439361750286432898577785204265665441451124783483397638375949220636690677480579178829480334441420383437401494768439799734835830226430792617991268049374524779935752878166196359453019362615967851560209491981961941591015223726287526954768009558872610161911469610044396730311379361270276757113273508428878080257911183931327964859417289221606080886099501666214421744562988759366286205487029134185448607529163083582293871014653414967640970138223251340778464356507163124660024045716764113148434557224610792050874231046460743676460245053385718870570686621479724049686052433419513670309507680019330592992189318787076412472319102025237885369231048893656384527501706599124459986693368943115140961546615005524923535488580830633363535997599740194667112197160237993541110704844749222977867909028590965608332080977336602414249793712852609400594501429590464849099034754928950014113786625453921605958675543947136271807991574152678732259508349719658215312607562558962891994504173909162535869884940016003359438717536048851265746423117715765861467808626987989407495754754440875011889850025377630370917583035534428236447435185545481360721298833988294395184214245996241805528192639826437685064656683615420069880159058902594249512152805900736356844858959577562886607873372324954015196890594926670642211348498668041945990367538735435034774701118119997023509914770266758209731555218499458694648365395075251449500197233558173367630912514029055828300050276081796756021181356639311631990510543547766428533192282587500710597918094680847792520771179693723566216313271642352677314153215517397572223113261806269161916298152096373352615755684377186377658372267187478432770405310114534144030459855757003417767111547919251926968354890158467804227210517878280870491372211545808631095134740717377339491648214854706797670524762435047650024375749641807503766120902592626304660952040233420888314637942812529139038934574833214279150636470628282564794497773464168310160904639077148209837299925848331721957798209765372908658016961127930851575610731480966194373981242991777323041461309403908061089929889260382321570940582410320145391093182141062022531171910605476118307457403320528536849989137741951428375794830250286682132866189660869327872484954087382063188593552350875542068533238688077676747598980851152994566858268466932461992476464775084622709444573520464360146337115217411993260108045473842705045078335922810744313667490133149470007035202648180190536449735111450888717382787831201256478806374290663428132849473517699862046048402866362671663245942084480928871515680386074649947734120558690472789833372324685774888941234883805982155836686507049782633307837681010821735553764219432318998574723428333059699811985481559560273833900190528697257586471348052707805518456513245969172030839449518499253891202850837683029540297309576598349894453863708441153388522191826909465990754407083951116974716488988661752824462299213386733607669547330308129447239646444116971260833703297300033741287350678554119255876198596363455193828986389590271309558892674384713724970760963411320754975889468182348966760118450981504544636276279365801547059973668736811721614674001666621584836443200732827877672691283351447141982230869457088508793294364349213864955700351769054437817911538181683597167954051229125204708840134261329060035933422981213042073256139998477407885344628758166145614155296405365795010683892816449952976939673450474090207768614208161290842413577602769291590941255639815599503367230657547453566005907058547818157838683784221243836643257138346878377847842315084593960101689353699536782960641571954282571184024348328001303501504681584532356002361859858915717542014778060368624021480976820766057511653457169367551099784732997409014357193105973268569010603986318844418914751422835735757216266630022863602223982790373913776325499180485335936717700603909957733225608896644969323584872949902300023979957059983779376619868576575919895544941672365685794298544567362137370499332878379425776617814930039923747071260441113680174038986708386775407197210393341694212802305796141179011621123281281147859635352984868205435106164992797242532512642825325567568023891061240445629919195329855358224865529349038379669895939827415283040202308905528052308256433589356383603368782581126798953876900675241724223769418196612655057086686883441913718504464849576789607391645716703493155003927240659703155147861820039310107198237538946235806129128116620437880112668285379222186782919568857563783203053916552320092071492362881724908014759873857518792180843192191124690786959901958253580760513435646149566339195498087481206183898596459540464950563894274636848868837651990699400112511316372269541784288851921206289137196293744303517562001134012297419858243227414664561244923004995925411053399424992173632425712251969045362605251807922568469921263272977921885490520392288878333296010771090187259706980365872701533484899446342370993628019692643617129261223398556988317913175296307541394065990795317496455670183268516189382324341139809147569623378144310461567000336511263792494805598170204314380587957270820532312463283040232547141823196998840335119556949851972104601503486115757254648712734290913042696456847085389454136126367653473652569927139135753239963319910229258745512173239440547566239123081841727377304517638957824714314073563087588733392386302562562807223439478246020428457677207254708615042377535614167579976558223158394769555198619583517239260312561993625934008978028328340937097650936465805304558577459707788988101090932646393598206427148037910947789450731455444304900896884411896380819880893772506818405385931638493055418044480322215187143437322476251538741536017042074069742703046256122880724146380107014601491010495435963627793112691288623046991247307264981107171997425877587563484144405400980406351369763582469769872013177181107291267644449713223612674971542416570645617016110065054406116624856434714177263157443754309406056006834597352782706054909573359858200049368380596819475351490229527758082861783129946693615106875476900622221776217217038909949229540818404367321446168000923533290328156224367440683244617376073740853095359552454982816195403640257417350089817040816675045677185216702846906394046416656911265698823609800825120773051126736069974375893777794947528427990199490994667443168769357901212018793779465429681539595023020886646725578650404579980702210499203151003576904995895148311932786622402768114526765754961651512121546727811059348505394269300674047788674112454324795678634736703138951996687356466662370067790839255549655927975847959836150636151763790727447821509681262693569729069005932018458459229166349946283511822440787654147005170709957511628538192301294944532561084502235516055004440384949443373832537605855411841720911990635607252768451205013643677036729935655760653413437494461150838861716463078765704141765830474002767018925632991621190195285852675225804439515254544976049891691400661559497437098789004450585626814045500931227902372846278197697995921350177886130897304638576475068550647461959457660703088365696250237510733417917684235473776947453417064050684012175766523317675194622757421769593244602978096435784984549475621359631096421648541900637154297441823081423296705760649313360827959005644762122694762075650982909303117456408708871549912228984852045752873585993921457780300083112555300167500198820560097082961306076950611665827518660908261398303997336247016738717819706725269622138931931092209654340518825345133454347155895052194255111335555026174757639204862537200497686422780522479088646884890234719638109707400560592975456367149725634980714531170820711051339983811163023842374287529388577259626062642861428852529686275437806336567643493376497740519258816414156264927804671003091423269025511506290929245022358777052987201534515036551912463815559032017981579405182197188863918428141154578070201184928614317202584260339801083732369367389885796049768605262077825293485252809284505477422121657557920665033035962573340759473087673474998793370548210488945366481069894917789754330833959328164838108908903169413798404558872177225130159588929192392170459673692596197156097794935065308595284451640380562693882732853715275289672071640673056089206607038036018771355614566790148829550909934423214573498753288277567010788829563734717966053819401683337526458591414112375957318713158643345830785945552470995841329868739624929261217770161321656308518477592157626742407835215811801230954442812882899884885413489551421730646462508845994893582010027814166982449874417445658905847494254578790622709598066065703600672172715657272146452227970081912394791200100763474318896766331045231750576860209909508779915317237930572757339006587720906311731961838970266378494199715772465698219007667986540364188681118869596816761366645550422360563737891824341968511599466667281333682301030378129765122726432643414657000038633309417978607464302712899686515959754237611322757686944339439574572308464141118974912369063390732784031804315988631285810014910036099176710759211021622836314254191589266512836248862965918214335652549947730017613857387306133254963986346283382732080461847668686050059053630808065467983227629261775586140590409351013627107230853986782035740287469324018395271148390696487519302242482826862393863930639518243038685084463227079982331076354120340843032490475078209917782437314921110360726419971293687033005049024230935633646829910991340333402501490392907849091809999851475364259112743948118344479352688206476871904044035976302469965314972896173853325450289228535473863803196476977197958059674145796994521918007810768560816650324816677635847669281504362581447527437139116371631938502253800093617032200761846978419086813086980279188580145140028811987207224798418802805074406184111570350016765743823517348995686648610956524147278493452899820891086802104598225529753954886535233687194359354531932053150224069108759238009346232959660584133796092567293024703034641743270953376782887141241824063160776986670245015654874149370114635792657581734047275641495141890792518926903936255802709502846171121913138725630933949161931926831861467038003618919362480179721896879643306475466361306685612478721705571830688523696225068696304440876379210571456112751155499025360999038757670332282670444365501503484709978481895477527846751515974527651321177913187015752673090862317822001120664299879118127069486179929546396377232320880253925982792896548192857965836210499190304380086185609894948958013154567511618547498841320473915641390476759941480042365353061692557140884041727465266174885232870426793531962360797674719405768266202364036938022128227487720200469904230520450662771026321991482387624856832987379535710016693751330004349237448112738810693391182285277349421713464829866086615906972153175272532274794277429757487768840428618282928118474125940793689712163358411473398007240930876881694176600101595714746517667333098805615285041896304839120132264463630752185441552729726387512695620367218578194204819560426410179000856578472696976078733447134768036400715321569643092868327952891019506132658357238543887371854392980933904688350578353872126295676323950852268019750786033566878058219382787797123560981984961576932520149703468695529736678759603196111199744018948605397276967009608628735618640608583870831746718422483972996694985511264660995370427530977150653330020450586736589403016380776791307294595710971043362883007575802236427669259999661527702284003458311912510333833246407688480305569651977384697160361909780350719096165557890723181451085400411003986418353977781789891656922299658942670491157087127433248472029576239879580724504144892723875790638926983342403743270717469297048335031889062014713529555193495341424960153460191170501490095604821472196290346338763727142057213296758013593476432530101253878047309488833198354587590873741995055898735260523005422732258971296333063615877355589898243310657688772370209458851354209584268934323456752898893010616351833457655388940763342297762033900307817319310276322683609689300500441127272872985960957131645463624895561380381525328703908207553791962754082250444230353605762355382437163440790488449880045924353598368596839319263323959510230006299112819269502953800485890937027671127696199880118495414510351333454311914484891525803197860552549033393159434955043571940140326689540577143493369851238555382377537513125949536004711336691460027762887596510888146461540017120847322972750550430854432762719232557766024657059152710513027803974074611152438736259267676847628618573561542917123784131490499102575119020043576815044642651378795851134738672637188251624684799519463507407025191978494880067430775892668434059623294904941574272868355665937295961246055751580774423189687478880716285761813203069341955568956054765096647683555788138112413840914280154132199566066665865950552720271507653158884674850222134097983532924813592250904330488316236615489545279498375396500362582791979331438150914134283569334584978978322718068439120256360074784993240574518362599126145318562854845044491348073759270115085808992445443627066729048151253112037069577756622401611420265854564270877485142060751767487818334277885349644370913836242856725873876054027403692694729147874025168054866138881185401528383967939472097664956704410348022517480077934368759346174055442745931578156725599311919899795629305906627903078522439801216293511892158670201026305238791941611932687929173018692811281268384432878133338425479998046124022179365360086188576755136361475681248707695360494547819088224654783170287197263041601188199382162216255987656394065918119422811790290102527405242815146569200188003137806300260262399656904666971235232620916696449488153852251629234846343149748598226974452354280078773907044781696372472159461377760096902072939957738354831960281648491049497639302724111720745599291559665857618317161615287627014442041419882815880629581152015753169937606822012631269574591917861213219786520679848223739960193128110511941731729125575811375025040553349705979587713324833379000697629819267627263552808960332293188535829241107428769693685252893885957364015848447623373330364213554039808169802751447404683196175895619197879524880594288719485373289067079078056212560339640851056934403530574850661307284209379525705536008036586977478700517875255449590970791085052294319299448167985647353779248847913577216603796042305760955145313413045721056515436464487041614133722197661508619014366187362582674223631166179240773818303083555036356823853288613794491350749541961133773161250564101471095478968383267987305809428990388134921510541280529265141441890092182338210172371156178244297071768480976158316968047617650105437854970406138480705148261831634044277894362710197793948130353016731954586461355665403441079073366820989947905722331543180319891771494464920277643657669864618879672073220674108019783145629582268425265352736426932296627901452131758748675448697252073961714222516836144622313795001992901467142050413101360210183321696490359817330826339358686024263246766136146909899875749503610045804847644444002745898260526389020157657410742946554453878398179565883024450245124237664014715432430371372033111075635283484931124141307891505101417220647606908218734115521194826988771841618387630834955702454125760644807047483242965425051720639885860337135599575516876298421954984947481368620283271263387242876809543873639124587080790827815762764605158505123082909474143377556626247278208171031851258954041089698138592905699152647014278845568861736428613111743649125154099635549806909584367935430369652771540822725544100141943633849770893583246881341049991946514549643869669875338165776926139433057588986979459194695164547043826098218733394814556216094743816601725814580392187247266821184256756810940988460437853144023715870312819672178311614220407046019611322042684769792941350218857522051804947339616911596254956874425521262010677555944525563481003869743191252394977219518535619003838014081477508592951033007332306472716922940196100695979322766123146565168282394606822654866546942401444687848999557279267015694764312518295349275727533983924399087227610995699578151137492328494610409949440734694644706465292448753050445595244529375005795040620533989399161696718324561500053979415832821192512796395073739228449576779214533250963181312725734677158997019944495658328606434480326768590726246551196961500911636211989992891833178430714563366775721526390613079007040883556415641091616155263226851576008146408943752495953382610180267183079736495441330250531789739667239266695656532568542142451602889613393975679079658809951443624749734492322523463846129756357522963685270035641614217100435481547085737506309999251678545616901419496207307590692554422444759606118220448916105338507605897514183812180521808231563847439350885137574444291155070040937127287906860788694114591649143950060386105769054850328509108190562961914770016388935828355135700113070611048787907931130702928256608612417504270105533532867134797074709876223194673528920625946895154810193434905553836317242631039127266317813715264307252290042344170566072952344522193186165701444986415048458838657961306131255426259439945665841182144485193718177353373653481692897121174942856351254567027655266369524507802144094337972276660543912143648660359719652293798190861921308785749031102869362787219129059154407930785039860178050614451913844229359784671279732656486783303496013181417665104824180415146316363240008089052403746403260979979922975339551335560422994913044516407638408846021398118430124876952039860494020142724628545473785418468358839015796910675602590548551139094998363213163093527059603855892304917389111910346788317177956561634635292627549412408640707020902095572528103954163977223354736324203313932500579056878916691995910059184648744501208886496973712443725722933435842860491663339588984428607254446798986972060099255580065704705697954617295889821936862500374523953947166052738196912183468272586219316548575108146753375209210263038325182155018534419218034905532660454933921050532268243404163223954854899132026786007991093196542925838372925456446649427637983688287962063225817140695979425322183865550548001747357677796556135917945767541571611635072645777101389155612899871435216172769033319908144290254680357378353102980364313818533099690081364078538280778639287758018411411991406486019678892856446834544767742788523803187364321355557308410555539281410123045997532619056579309765547047192093714893022317862371829440751775195076487375701488502444718424327168143965226123164453767305884452762156178554004429654492947946569884560423358762404398394374568336164877276095728852235794454978714872544405100757618783199820377176171006989969979307549085261973017843129867288743409292697970126863044727407048889386119224412682588071466654356153965797502860538682404765020251090795160759568379804948624702790192195649567519773204877585720636669366297197415899836492918910841404698014983363733307749313482536136593846920360222090867119155674872621214038376516154700986579091206681362549998838268978447206857321816686744198333760293185160915754007005616849202078687821749716212089307802279748069400232184542552306020844638206650014193668909553193633002460460884966642693369772979230258993538626257538007254196441007729027166452088006830199003996042748398948439985771879229907505658934478912585806929005112384758431725970673827214251770156440301634027545342775266456062364397421484189200974944349060577118219122191199683316177930392720427503315019624731490198904495142230399894517893838335883332792080240134238811069853285727250229222441947020178511703179170823030066275088177510948057310386934738746537546470425380300665772792002080789236346815315943153236110151379237890889609840814196175615432362885907774178523219964040319073782739482006427706174915917472417013062923518653977329253384263523667112982136846257327693655181314745729773476392065471887850133535195546388795914793702103635346787510825374809725888015256347778703787012772894440195616212090506984968969744321951572712264070306486194616613136917862415771638581546741689491197388839306853806165936765655828947976307758057008907638973549604024588339635742883150221176766868495899576774330963814435922275919136420804878988747007850297352486801115954207421979208192074756148414515758183457688191387458268689631644149261876919491705826495865082385291872030246639972792149252130817246026970564373951725177453534645356643777219293187495661516486034925833974007141141351814166372145874369559584575748701068097391634628243937516739929476954320242310393234960954329876600458259401610774889158441820317485685460223196411454204675388877185061299842749952392528600864333388361982899850061831827173963944060265028268419759494459874027615500442214349373209551155750661745317257266153828907162090853967816296769187553347724666083078947080093477633732438302856715908873524239309895395126778912848636614613419074337729571372344993135831981728277582827070507844327838686994370777150383449347350571732613043629830183907925130257455551034591948568129732667005261648573187043936236586112247733655278800797652298704437423911839634099464721816565385125158686321953769925094420195693684649542087232712508535748777301725959987413439583316962760503569223896669829690095265609807311960838045880377678749025152566069717952600513536670679323092511473088142413394012708910103279117812703058632577679108775304157262724560573272345300950985339990985684984623489684148346802916531427281187240870680208884757825993147093530282827237992527239287139596262077397193204854339518142442945996388426297892005764154643591131747497880152596139307749719507897016173820771048846739734446963043703348411181631970835199392868591864387024748080223802102141062633571052276908524778403758929763953705199327999772515088403156963410072203415215046266026991453083343085706929806945757068423593724515217403427161256837622760808458402034566171422885513606156062304299256724881930570971712119282521153391112652348935204918458146909227666035445733394443650959562166599147559611975020071524497497154635754533393838065688450859347785960964188754523270191692175854851846526148650708786411877660216651343130915059352427126777877648335071370719404235777711908101170143083527877552684455761030261726950772366833796365475201632826420179354253128527560425886588397793283750745604846073526204507619020637136976739184070441202376992876772364155494643649343027130140398367945382639569313424833805342106014663105225338626921157232374633289276086880912816380396496078297408490839156160089213813601412274265597397636882233761502068261570892639558860686134442506213699328134970572438153903332831015369688040090302222554380635830254959535089456023426583807201266394496766082918557886211270682319261382564898424751648458491803356641658748101024882090075786077766540824700316727141516090505966546453605502960804397143589041854481886694568603285588161008887008034026771427035832141773371216267659530944764177316507826213373929328426892230860935603176427132856093529543331124717767102294800352799181432067088873143121559004345195096130551318531126920830203682764753864230949885350348190930623462617839940183230602752371022692213420581485210368881171460224673787691438954345884238655322614937156563646670213547028707805030338653390615532431644143845726542014623439558991149847421034289193646717102446971782383496750226335410559177170883768080698192335704634297422768809373846867330484169237396827238536050860263916621212478753230741333409972013712191415942210928509307849407132604005412460897095006873260006827423890247842902726772881232069665666031041852576534544638085994023118366027225287880055187964693641985955197531901222329482860942281858604772105849234630670265515675850361096154916592526410655598516979550169445844491992011544611909161215881138024419454475353276590512555406651612916654115623153424298146929701250898644932004780346341582166468586543026200393291724657948932761098059074186726051460845549212020544214833924456391857586226195179054397521749172135045040325912934829486793204989547585340503906926876862598340852037222467437540528432708501264704436333179732035060509371298157928343791361230067481245598673352354641578641991920497103739580013018855744511585219288251296283567883487630650868672926252120622797761542276566772131861394152245266967522090687906680542315714978678586998824169822932747100744663164607083537717045779727272321122364122558976234763903131819553522986342475477990030028187454450205485950538281973627764718617032568761830330100382900276096957280943498380154935038404421134365987416698011335210163709714994007726148160402825375823429155145969349990437736568920862391081035599435764484312005370630446348559058927997670576968279218723855538749508890322472418469456947265331323805504266914669706802120707130436461340625733185217068901520952585046223767296895474034617720976647983244452142008818792639953895608460178942070790230660510896674893090365166454526001393915055916588365286897687603642882080868514992176257781344449146381465915149084071647042751840916470856840318092119680579696308090703716571418722438186831467315033180034425046155507847369680436604167294033028025434749613439578712631725149490949481124778031465138543284659316327966732647480674674790784198485002211559588860721330872291345074563261504465559884053133960195801081820226233200553743720206398987499138092961484811778233176014461307402773036818046622462805094254426677768520232057278582581624125079954764992458086964055759058421901942271737184349101021949823851652514333393924713253871776624335456549187735310956397425884887823091791908476819976260867636934639764282531786927129352382663916070278759514997393929810231881075984003887952961014265648736607616035127474265444080720745265415663907913030352501224379635535839648941393843350349928450276044525201304199231382479676235017968442171657874075106863168758572301541145754061359623133864791756181968739924794267036018227257816202533084440566901237805385716333066362392203961482762678931939291097459904746159084951722202762735066748518098252814734480494275077857201059334441163278783598216615985639724699119135199727280033856545429547026025510598344406498764253969561802777739032581747899341352676950024221919264492900709783169094271044715781892088901324771142805228095233259414159465251603548248589598242269242395007847346748839948677678399897372568686620394239284378208725283364956942588100376409444202200209592995218407910924390912217672754845000272373548897196472601158780922701513130341222996088306213021385585212620253551759592374111577466693936107113689244491079144721158533631088396384235957923188366649678307131180452266871899365364180852077527063692251690309431885443903922837530057748988039763668542071661369851818920375768990986446397747896549456539431282602031650998899386589747186352231587885931330177085985110825617098490724695251672766547987733250191560668610774823867525584987986089662046244911711011008454500671161405017214119844286487015214823272270689981289602015051697643505678682393579760479415932241232696610525437950650511723375039199313843222447661705860090578495165766970293099704734288805920394133625717105783025832143129694338078373608875649966898759062561988465086118222161364926992315535007571911062067265895158107862222747169816683236150622204391320504088025878905658818215367236360027571608718536667758097473544259044646541977440553676471716550677906858981011923701200567626170404939583477855535286929287919916119614128512054882025546695669224195228014872201411793909332508264359453683943921424624093498905035491600455222919372147707321892075018535161032419801246396308440500163027921948325475073139966984879415326912782698848154476147436457683351635847557887756565459713140783613692354140331598436945688302953953979344398184412897234411821984230392777125110603597869429734770831860052020941011910285870169567897602343698143845731664161045357125373724877231966640210812740150444427405031318619348471240169977398671376960899711323494112735921821820386745178414088397015985489694815241401518811468883587145238589812524151164051802031253739344606471102197629524302813347242582709833875235177185469834887689235123702729642282745264879502562535353856501337115828753716776593720188814441527429485050653982605107171884191708301767149570352877110401536173011481861762087360830341351903941740215404178382006302374108921135293210132654728570744808922804787024600150861594868899039296842036813826761133444273113971601108604984741830100567361459249042294973366327733648637315934471782660036849442753449254770539453765055632244421794036059696249294688851104653220151350367635429817736246305853157747584626703589144265857751462823032878331102244199870376953974117101842805665349600641381411745958131103442787438027886372351819805830744020621768419927876832408617397964280515543724473436813926145399155370062658802036704946905903991860036257045154515247231929770927123026831308253486687627670124424121712200779520514468556718312991915558028992171246014916276197560587850781375643406075711525567369136465183475393272859130524203216822463172742233333925139264513234625297454024831695503786904997907366850145248387779757025773676945245377325405023100309862540589577060099274447164805286943404310490927668361347349870232593395863531811587208565630509064428715413797437771623326713021806831935787018315577375256234541898671433320707416206620820410023670068420969586727985695361461253644170424644115161037058338781199535156700179097365190816474918065180954028949192228131860463292048629832498004702154875036099033362064564963245021201540142336052419256751642579204838793148861044052893940338872012722685802844583614675057256080746971974005662869589443190005652046508781599177920227292491858795963381679699896991410956434969730398842379996233067874279172042239170077425924146612048949328425471911372154126762702794702035986219234787484937970150673922020414244620815257043254258271546058796086154965190604509338052713125311753854538684256930343853014842733597556068026512053906580179962631148225245318945924596753315553902133681611960410732119587868414243596858243524481084027031518548065665470034565574313953292155468428394691207567115713458061959318158728843212661333253212405670144986133063456282686401003622655936404423743870063886814591355666466547591668681505122527480396477639497828910943235246532323441826945938659482900771954519673822211240617895704992878161615922702702663485443453665878745142252250992895041674583208483972876621957976590098971303218006987133529023731686040338778392940926335996779272489056851884903478205172624208210870314107180444496444380494757517266216806683087552517344969932108993096716828181583951296391127919452114679393431799005038786432546657181272762706593783779714957417983902325344759827408066243425160765512601772218795130897352492548917327983449603888528851352786208491568586897030599377219141291159463536242270005746819287704296838403280854571163215608082575452259398083403115205184836816337215749897232586927953657347540663615115237244275785252194219839011623056317598590875657755189096648604790362920380820366412727939669714253306656288103582841061377286011458286090480611751523396914753459550798022328538375200013327007098296446964637876332397726125713235813626940207685512565382797376576385764640043867877605368496085278213232568694786479226878136207479974074089996436760165022761106704140006706923335364161398562625599461499979460348723169053807935129461204455976540995023670526894624247832493150427179206537164628034566655842113078426872996128745768167264219849393423550530713193890182381533931944839150885344706540868221298026223843338406506946471261504009566559108658817675269671949360526474299123351531489063030559802045121279399094079933298559661738902060649640028227182260682272488906809704916622652272795275649203898034663403226406876412351966048103902645637210668476354477042724256855540881032733492313245904005246648852946401359537498054803913966096883413194680612319102664593663857152349402836569489868083000433113595312168654718239360258095112222754564879257169185825136237348270218528196650150817428773698730152683928478761975541013119863419055207532975148390810401279887240047088646044485842280252462673142681764325747514081120963487588268903006958304401097211704687011459220652604962156068194691293362805368442362522709944960631571435343797364583760672970263016920521613844963328618517485406857747021454280626109743882153940555963215639589910421117525355060975508050841237889038425516024276644609601328681181067895287954553612856286003367795577072633076506720275533056432334610738524295186425332503818938230227854908236906815809781165189143826119147187352925367416535964891839513034968471897406858371119561415855238584928282735864730645749741189609960529594232450353370051589125389958005254529514292076333387943052135558340334675112390832648836808471165326551147376365099898708554667079375354279213589138978718816566108197359126302312526957402293213314514816270577063340189885264034012700282326901438467345753175914801681690538583608423925969501231159593814515340766473961333958359585479552982609896976980654273548333207473085064021848520231249933972103182519966528482078322301145008082002835933686068582334265476042361312508284369981343416068622805510286967454803187695407986961793201142678876400602760847789636622637321630379776879509477681297641435244636503037781763235162865946891082000759337036525780932190675014614795785730880275538459212272236545617826520428546608890123099692814136380139981836699728546523974710830531421791684402860642440443796975088630336196712229388160548270671373795047744192483039354517944743943630218509428164447611768880637504380423809436151415925767638352623827331777855635513699838544212244564057538670958771860091454502289473482808513005340065790431316558659826737765495727734682587585156254325780874673019764385947080934994432431806520864202065452051231336151316897254051522700598144669783272208491745708073016853896130099422344070547774732163093393759244299358215025583063857423163724959336229653024253863859826416962249912768935380472119746987200462909051767393000751293534469755012042475154855604625008853530758010845875630752791891394860699286710249335402837641723018140324588709622725804123353701413428532862119019689376831919672297554356554235258148562798971559317627455109395389236032273296510698425740365949194305017550212725916502024165550598440390430658815673940415021780666021542064634691965083662086534115264364502487093620126836815653853712468449535746036986895429005677537170514127604740138008267293419244405416040871141653042287682025717259239965869886495552706428315058276292338612558032711702872505739471848279127232893439382138949831418808456310130263182116162506645632776635747035995061404998778025612241515360227164311854769970529275954462715871368714859547805307750415036162945784716072528209437519917158991088077691307283563011089406677160310334308073033592529164428212843005602107029474759708603266635256029504744716929489255937066175896379946766211925279341844860831860759001495072411333385918766066096829499698700734929999488577516047334058165513797969923878992269049830418347004353861532979302201584371489588396167458845179310963584441567821554912417346241833921427387170490833504997769412842665469422885279965480137738550243937079514644730338095030270691418735952603612156224608236610760176861841060620168847472043160385895207472561670913397771996276753151079569962646722797309572841659146090291110319414493416448273279194500282477061532575471566981815440046931990388259145673670296659047002187955909252697447186199342250650598099458465550611891976981863048953830321383922432959409437300474477892631354742313490663842783062263159005829847573770724894765894110975780752711981568917127124409107443045280200523355429338512220054601038180992848409297123121338464509519596957689093859328084402588869015025349116315766571298599600643417006948571506621670702672297638655502635825962661862717650146559094147929727461408220893118532983214322543023989880434001375886494585538890181201868803277894887842242694281558396923454974771861647097034709788548575750058835162873177669592313354652228297247472015626189047510823715575653399820860332763982244038611650618201476046495590789850836068759168746340106831138842570526312957244476625911258582230271150067385552583275391792784430999534520069103680307532922174839240002451322647096758806926625678516020785614351325541462894865658750795810512872961591084053275755042692708028463950042798468558525686275818101045944047293381489247489468541476850243994042068922905425671824182554462862209181623532968317056368721178651561000848674500549973786410153848339282687668676870211829439158752897901481212714368713504430549205895278440692300028940531997526639049313444927203344527141004464221027556148335974078747307902988584857917278468478349641627353789434487490554704479917722774127826987981599691903065023186159452507062745343587341905153933064446881705531385761235394494685012924933221059650334142763767141055666316084601696103982804112956895342218866281204187983633636608400793408216665412799041517910532632799619034989871610599175819570120148324477811809282976502628038425513234837546588882708046484452611924472288457274962959414195231868447529707322272645483229991457852412457238318807940519859076361565660599425026943857292264911086920817881143738639109127032197478540319745531456610200479712542624206011368220816883411593836275426226326760968201818183747158459749273028546314244471621118895132281073774470242712363850548607046858393536897160964502770532240751482530112179585710467894261746978050598488767950212925340036511305250886097943382511100726875693793742574995276141417219193636957524720396280426515975083856413164797576897785164765047454179165956226006788707798539986544031927513707773095100894566769358910871697174157781257931005677090005410536776770010032523679572936138938356131947687295369530240580770575047838370964183682027741985197629796463201282091213660413859237078869331674289402642947551811627058730788913871813101847913780369483350917032448310334961365838320518481655067338072864145875524325920359447795270741093532603655649216996827372594012707639504182779366076417289191906595813984664865057335261304752387942762559674261165570702236617667588388426524326327646355279315497391754839864921864325205766189480380859646862797759378235006244333842719194680504659041312661311437594523345138773579944136961724472027597903481651199621275088530174273184585367900387214762135014253898507381575456423241728696681588269918707175648285276183411018580094984809830535043715981703002466621300210642867923061900285427866445741460704123878724613277110439889660735852529617413456929316270538207408615949472628882331676903212085673160852351487710483316743187429041418374964515728937280034191105310431250043971118709039836347762291376652389480357471807947146225185706244276115641231196699884279743435218247660460694415023309832618020213197261650450636793828035025411477888868036082756195854707050391085327676752772712768290795815801911453963080103847405445574409812785983728160700666955911368004019319344235457066221302087417753545442299471350265030704181239259835336736684984075440323040259458011095862746496752158571493883330457977137593180052886761446527693335462126312662574555854138950914465557618950611603883001625476377757520531241517653167156870617017067793508064038938546964272600992432490953299096818052569242175143685606016141555237947092360957905636946697203659295882851653125520026277568708582637668399648431445761184814442722339956209801625665043211983803320241022987735415123703651718910525432945356513463449670988169470048074016836062715615319489109883273501879620518782501098353949269210405556256594457578446079693718864354485271851808058436321248973377676321249725227704227952831370518754243575618779406385138877945689176125235848422951142166385441633967916023195513775858048205181376329596791626642501519614893185273953629290631485697485623148596866570741246868580662342798800284040887829520032010073173657214146783700778525731801990750860494261572480081948124908870051160934024584746843338029630901637083492292028400189384383850081693394266811693875265476250977425449256268825586318646630748722837325228209880319276161425241588164579764982235553992016254951989368225857167383032777739659322849956164577812014639017748822693055679349298411843568653650083247268455814707418232172458253672729457760869632761697782225819234626695280712594141269957450914114541334025409954331638075531022364005366230112418140382247664029154288750397166065409214915275730030110047353988128442167148644531441111713658184764883644534677124307863509058805230688130315896773289175011598270742170066519871043875823746584580234279098349553246664336927690983284443885008926038012198205638391589752873540228308686833342010115354244288569318433345226335053469139486200911481465061559266519967769398660549658416667602049055139026041137858139638623719948243580770319023080093201853069883474993119302642331542792219301345942034602178396202565247456754324607533010590739028736692489724863796302375821529525670359740375191219252776710521770587733568312446831095207044353699974094355883545348273948730756383287639132825950313040436904594288053467315323036152494754024291458643520756201758378672747340471779865857563991111072746953934873553773474881736748010147598271918935650809642562706322263145397055026472364819430146201468227210478067639441732524242356985845882663925834301330589167422095217299372284848246781482462244737647538314122537337760253533344651057067190869745826460051448673083642388151449188380767938831149617630867826923585864409390201156476231129572768321151763905355597926253870430734607750368426037459498056983886672074193402210375304054415011026439071995428874579903761622646225322562108114447090540510356563902193795813560148616343431027930651820621908523828127353231550082707364179057455419400735577109450961712800597949300800160572590260787863779516022890648756513997870280872817397344669882472235073567336508030798375641966758630724654122165882822096998413275291691416583644665318768584252095804692651951768919407357560274268651209324249019245591992796702724408622390796905695754237723475794149101640198912878503510947872493951545731643640334281123473998690080801363607078894275987290629235780006965197776185792256510378305667982754033409191780248106261231191741625589024813996360458624747080699971853913162363369395639749834624924166618692697010817789065187223659419990503307049296370090947266270700933213766144923184429057656798886053920038504796309037906875939241220360458438226472084187683229879963328290451709346645050453915215538413306045112967384932840293874290346177818782463736871249285994749576466362301545554495952075034502026341921027186165975957332537295397446800016157552618184083842726979065661078646999342206268095867112448483084296819381514010110516325425366465824452761654649712138909587317960648753921237267168470829050311083599616810157636841034638061320547204651871258538679824703133952155015630923479084933896507837998933983217063233174175523266170387621281886543947559945113204368060935258606851565418390318337244786224688222702104559839687268705493089148628834527294833969786473299647974159808008868057470014913684299587347792569392439766680034401127307979233116339734038901832678561471405224837817069296229976866317409214084459584362816961977677639463696089300825835111071444390109492414290094721149228686695873705212496649361665738499716770420539614938770716174393508308141547707549292636339453059986755904823368897363163221213096605581731268087140971222268556290385580082032410916973911699874478426145173355004072528464280687944751987614627498166959053254521536580819456347031057760396500921154723824949516300726336013155470033036478964285419923797359384387089578177935302390847722520578867575690858526758381388222887180732578669497992047984978610950064142767256800780952349034877555920709183067029300960101258659072249123269639999797026455974130756732964536307241221288559868955237437492494070646970958913357532694045685703343308404996794514886372662530905077870203118920584335878081421118509924527510029256798339627570110169007551862832273394211884772272981202798059924666945653085086167693161760700486876769711655935265232253453684800023609017873791828513275604024969685387253835217322144327153895848331830952228418781294396575356224588745101233556381879377811861962870672723477965372477500136774268824470083996473931812616825216150901969419008966394755208893155480748115128996396816664505431910807706645650636784062175679709179197131619436294214718898344487137758533341882421597709886532224840435337779854158342136801775265792224196354683180928908734878289941322005734237918836365202114672570327583706383812170706910838966167678758302470989791623892083439519058148750660292962918613666360929279314277927452418594886254149499971750891005764235837561569308016703616452908841454721719148957681247277138578559886090854299437841752574720592146036489630396475650155803444277401647064115170308788209099304590281968751221941551797021300462717618305944898692828942607530963212803568251003903540962919003042065044682077976817675089680948204714091151434245576004689717067364645474978391668829161611488978190591478447205546009222853855664924448773049495169195930408410421608471938394303367455258585925015313510485873050080726732745391659883166573409777392274903806427373242943598977589142897926716546564391358519821061055903857627656745427897197772534221604787367026958282082645460358342871483544626525454546856458318809525670955283545046251305007990908362744258677992249604029790263220311971527601146508580878450383271651600111795790964668303073591803919953892492437845658083279887505937129847118036812500845391140440267595370039886408909345685494677608153421904912688548333379288380866640042822995486198526618875675030283832833414809294810318699419335462266283606619139105559885487332322729869606773963305992459569456807481036692617980931155743888031491620861685157840744388453891453052895330670580793678451425255938280808407548487169186416076414101600750226677570822495377122116206673201445853552637110300668729160944228027439827790994354958766179902369724783717312688751435526733701442804020867825247797771082478678596296786806205059250732537395331930250166184971292159735470693398579541927705521659052660643849982401945361785065235633497996594457142955374961000600463970857985984763424124508426925215139468848335618679323479768363760540729404395450277017899391246087680734056477957295784224008017974959140464813824959304041402172497084900912759421301376477920747676136553221943421950952527612567356467780992705670581625217629237762585544209618404336706687247533914335680130427582835313210124629169172766223568154611055593560322253058956232184948251212366893695675524099375136666214028239791874441073907159815331070763615555201680480101710558942048963608799955920394137380966505868152510396958717796136544889471255202973140985229544662041213272579768340344685659394035831374056531026363183318971744979309239629892260836054526451760794915277667727896132552731394281100525660503970504932519842288170914415861326180104986753485813996799152621640728354771680873397082997430475828182840361040614481664678574754463000626175064537442888784304609590349763759802651682521864271914926304218914789709743525176988095358843447010282077677637754532529830777254594259479442299461907916077106844123171401739978991637967077164891336005220215077421255911088420109989311152504918998317911737605051038685643743887163773736300348050002277301933279014408159457792750698277973626626682215043959663557462127544811019441080988124270955521690837848132278074907352630632988578851743535830833176748720367083209423609171430008568699375811782223289290594261731598496791032781231867112502136234041703361166299017715859106391403977374832408757214501063563306025658345520248545533060460903352293013441984497792295689592863194074003827078556523475940391819356201596052291396324728143444995851292033766870783552446173785094280623016566791275134762528214598887908405136117057434953154804539803351860729005504430744275731268217225539492217456340408620760633737200170417564131479516623223623164329543459939032604912679606055852552039656862749862985966027329882949844695723065457532453670265438398103140195229289809307205057402571262218747567158046248793104721942585145433031098344436188263948033289683366761511519334703286260073244807464513661392636803301000704348261736914682344518701137629552723692217859787941733589712879597476593015020281657624704091886239834808555881623781370245887779095838636939210127615610684338461307562685972129448313905603076143248028400982673709254441773292550041149134291450709602712904101298874554101783598474153059104988098409951291266065522503918900959601165128088762442825764222730878613052423383033621218081712053275740043868732224594080231851731994248090867461590773555728064234019490780625046418788027397452510978734319983174505042654292338992768002773793286761904293279115155928041614870529305516135407121989624976399985560030244527415563301805939057969604670590723964302278950665487492325502933136493908649921583383375440963560496900881040090151871113108367432751702816233569328049079139171478830424935576434445593259232320589658969742548667935917717793798020940826750342917173473336495932494488007354786547372202149075752521669348087410381982748715151804987954604809099255244272356970101996327735260837399655471600600508489943902365802206145934011554473761649125181324203063165417697020626480421350977412942375375129435824622629219195662738061887567872294903111004196430249380809480508720821697067568371964968954758902279516504288226638266723982908044512848352179502353096527343587436128877038446382055612954059785323797896921874830739971153443926886926953832810313151348194893832344772856258788732153399634645941018893120149200777247287704499465555358187963529297234478517782250773834107946097477073546835539624828726106141560501809402710214414447421360667526686896567619546463742498226371160080534856923333941089693010456401543893236450295682179790229641936962712635295988051878650990884675103091353536342213639310344433126550896942560363722647489025981371844393110505989958918042369541165501355704454466013185684079088959984571355576181632150762977036469940495721858683620268212994529981786565816206578888634760769335542581949379701745074342760197716054817697285987788730797414786709371052685038943453808282324089943182608172274374137674409135735715739859297483395459612774182036180805500172406959001677877708920716049817848374748923232118338450654244018623943697097197865262405267102836738330629544706665383898178839387149918570797930495742743721099121672648680820991975468071666940850453456635072562025301338821631262942944029940511245817302108254852447270819631869978349902912467527044467646424022929339968699135213879135389767345010073078993579853574182146919197543628757907740374186149711008809022280792810847216995900218559555087161983498718117188430026110272166561887114054503536483132949581017323843778100714880214237303008062659569556554905498493247243700385671861565314135763651645381075492000367974784639862477156664591584436117702432277118481855651698176030132969343448525917038680894084652490606757714769874149167650310355641919035023931905278004091104363886965214022290961002669096027182987643804744099732049496475552264180557517833856882932872363302912844260655565803412630167641284800452560514882580765699629555342596312621904441133707561354743286363005240910027440678738686176093554480072939343398565254443599298586720745167394854986931626983286676660798968015006932842756707794847730349735084377225028668512662454296918810848113975759547283858706369913203497124429179033738156459764854268359769692315255961489043979863663573901113755060538377572423247606665823138483295591625992146540543488814898700342720181070807872370605798665069283297462746481260756157368812204828349002441242488589941116651794502469398466691726983472747968059812664224617883772388705653713678142960942017997014076779670955948903088560723921263449738859093290401388016507526280605017500570799152307718202670004664094664648843289637540913852621195523619606191040581993294006700527968139736356137617918001522988498403667958725031781078113135361908775903566758271031867540191146129259425452125611891239167472198043146015057136245980590362437257369117488322570322426096967245967423224688073934452900625520333305853623640657422009138150398644838652382669426418040364009048270862682087875342501296475665676169587275539443808361208428902049055402761361929762647844800934405080125116884069303829916453213606947744918793446564191240166891940176613055028429120505763207964705793840846848901360489462136324029498251352118275629445291859966174597027586007585316005877030758513215939442213288887085143803971964356617306514582176151105419488359440277763733858230152683341840237970537673800238016141507748880988836266855789549725557919435054897789485651421235810436355985600984553322178007825453606059880298520828059428939166031511511342130008818652545393265734942219740871432341070694487980648803554482493346000548664800136905037036490901120591377429362080370161681928800592852490906362432468453488354243677080791509688047280534601610924040941677280455800119411438618792520454298176725098346813124666889486890395841642916904468166976190278475742779069149469099755415291595178164517580008210978532019504233888492158230797342735902507109183318434713611846314633273252557897580287850403842999934240050899646776987520871402040573873171668287727456168014613033908740770661957944717514490536892542206899731853316232768169856984654169959115436124895782972182627298286604689495464363738626727474119054740180027278851879791009125469324292016569147897403229360745674548823060382213541422782525963025721214412680491586125949797473940668807801302416919039414217984416497237951201639146054501919525331876976658724157331600253521212889656619531574754237285782470494452881234019525145553595100281008150171467796981252768461111294583496026603696194812759177704554985646936360981271738187585236397604000910117900772824110171271565457463799530125331178845948616038259780382424215827801760510137556207725558420641499568681427793627534128873525892842319591888039139673453365467421792971607417873708403275217525754944906942427698109128042884209716866948292974462050472985622850310412323591875262023741841118286264798663341286376683330450833716182547524834221871450213433688604075587057265668431827604974058053997419036995102045630813640939070922020702236992587354531832984012824084133945999628525672305711845520632805890207747786388201296231274463689739709986952343120930030264008701163646837111090963583530960975347363163055428806046814019737071160745046208294934521124142346208641048169258673087840162341690413766255201853824509681038297560760654463646440867436859808839185036699377695489902190395777832353214150813591881199208462149846720363056739162610248404741352985691709801143211147866394783685155353986943033781952280732902132301017421469731637603173438797478893764582963735300488713400249268277333170699592533081276060951768295063602799826920518232449744489922183794565974048691693186639853136191804017048395708725072517116333578559813135813424863482145544083380378989182474318147473646189525717156621629530387279753890764708647185388669162904616496812341264222790985873462492891558522474477056684910960531008351277938820939963850949962711237773989616983920610440591766032094713228032577469724677626864738098107922621639856531843338430923554022550186561302417107965687992780269771035386932627532777007732732019921593954070684711264091495686581469289685767537422853574814981320688687942667115341326019860908153772735174550862146642245564030536784352058456382228330161879383248489628263714923460380896274993322107127718257640400066147724821679250666119596242164988457991149730309700446200690383294439398766805216029314008235657428449964043816448285459632642887322324563249738431385702637233012140771111883710982560238438016946184590908246006519239039923209395555954712890619294926991824628630599293586548362896198049635059517649860682326368338550216606061529396094684364937408361442389574467338163763700137393796244459562547783984995259723580179689361792459154720355546972331312593437245514996441171046466843164874113745307743177777520804356371947598331796937551278707909583596805928655945708632337379788441250352700568464229002341925789513158186634395963787898093917731915309207795949917384116893268468343740122537761760961361638240929601251558442501982297357030904182175386603669539945843684301989333795877435589130439862169968378280088862799752194464958170860286971265642935539673631962094890215374530695680502031383377888623710514886175028072179431965218811482345711490646778072405177808185306508616686652540457838485602753369929550596510924915431444253530008663254609641763117247115883540403354205582223658109198216792108824558140972687422453274853489891723303469824234776194986990670548614732431035482779317168442869551927712542202158510232040047466743272741825160802108048574772342003811772256240261291531162546461912807536332077856302774317586219389827738255949771903206073005100365260988483370326845436007602976419857273972947885422110745927685369222696672905017030013190299704470564742875585078131277618204908603657318538577183188700718980051141664933186560958775198606920240512317675544620456021389271695783659874810504969376099778094992641812222178250243476636025847525906015018451816468300380162769633474514155609330772884505442982646683780224754170803515404051498806135594079404734647679358207089338326359770787540477306792753878902767215373772891986239120123134275374290081372047319325439280513265895200227555864888268558337717536784265533231832029555547194839015393906518796417849157932635864406757176151428310692796656483635611831293096413402943167331154626749899315077414436230572654734069277198766403187011029338156517816163933269197260578425822987235620841118523617534690514234363568753190410964378949889596938644399168523245757141994452995887383030655160302434882520573900367839683613183263262964007090664655245095839986775574235215219535021547322733572058905630885415679910874537227193747026424922628442465775687561967094085792366717826653796748243005986895461210198472903586533983737401767238875288930250946444251036927333436465326989433363302207157468250453782062079054373440396586867489220844870406218309141133315400195427172731949937470586530007768953120030426096858599308738803457169706459547424201529380166813362871477556166649763026764940607791787173265926746622847097560680613222821844429565591655564362251249425714019500757444086020336660904657430398240061472360081841474433991256363062848300839941638527890506954783130694201072116042130055458363887088810456388340266697482566396248678231241480677865031712253627892368791034291474437793106873332066084846648924705296457599397869904084957344922072264293290340360119472382517264958978859704094088190516145370541701611589974051441631226410583802222075079488963717536023872020154791317149363511675905992688327057142826552164454196398577779783166066442319323610668027369993058642253941716748691735302941972818296398333916845000785056150333157052278602507141662826197589979421348497861146872036529808190961565449889604573181450446120489122574811078668777552012443469492678725919647864576194512091998315119074404310190653729425111398639704197662035317273359856439555262640265534087146067988896126074080625086446014741250431905053765588190865571074752072221567879249236910026806567637591663183174802185065189023945281258821549892205399795002181657744590655824533384447396223683962741057518462054261082429728284441701787541029098156901223901884027629657102681070203478009080592373049460046994544101656993628918402022224712395268002228804820277392980972761129392924371299839943472638458294514118392409430611953692221086362614343676223533322691262923514661666142326386050402958289420392873099270193147958013087102218872660795400525846600101226999323484121435390502719552518496716968476956568467749153008599553061100876159272245339659208507974814771938042772251789385147656271119368011100286063740278098794014836967940491915605948754460883632222874910615607959522244399355222031853118449964658498161821108393665458392314195956881627316407303860797797524427331661824474430252330496603411402161375609630469292867436164735034989157707428708373992099792660331367606531796645227505603666809042800236834964159237451691896533806213468505060697181596747472165455549142044466602932765172343703555550389312405451533457022522035347511942879764342829579067065997181734357601634949210390553822431708391087807162385353525984148715714334797976463869652664164638487628316866867497630412591229615942881944090625470117452725619849163840628304941923934789582352448542630286959459199756014141942928055039228089768924686427452267781760856277623584588442924641713152596573068876476207716262765077539707755741103527204621993148198431152264827930758582941949503748186246570445061844139413009698523473287775375606707833266158980007898172953818166514004286894170109623588911465453060582067952257749356050854717027041272461480037844646091580177846493473002624501082283393682811692659062710837854129005850154292794624886783283230540325462681803531096187476307265722101695705021840986535470832698855580851098165486908960951706315042888508871461499558247950739570105726501829374867531455462572856977297317337131473389820981562749379020648356505755003753691368881426418694485054258893090303803691484104101700059742013343201340986800621472285423126290947132259384461735438665778275034470166856254787772118370841490680007837867695917669258229408505666688755439857495392928059032319544539149135262522910173379416974489566031733455514347396085373009167906919532504812685453075387796415971538759037195212277846398078652604692057372373398649547317370822286650501578528306607226394936671589555948542901379816967308432662945942542819583156256268715546599477362884993845981328015477193382518608911240176932346021197903754231916661766984944582981075615309242147272225133638723165573635814523322508103183841705107593101635365012401223067630810279411317116161596574222667708581669908133564778636739089605557184857454339677108987225427867739076586942605392585761192780116455409948026166529189675707959145972604997334485653048867743104893256512514820597415324865028355439198068599522648360835465683697772721299550986085380656589212169073517513136999879442270502523882452158529630401304241859690517969480660260772296599940037908539696708209691930839867145752522006141758756968551635992495482286844646037364976060666143937979720635198053557113415105340235834217645616941186743471169578449642856507907734312991754705087662532262642188749218377268873793920707600638265793364925377909594862568135978619657180657475172112038917438722167952563082210418778038262727863992467438532010545145455071233301807504104543474677414356976124946080610446713640221926120291181768536749350513864462380709543904506524968659492725729185913791417615301650311002607411199825517241829826553456916181330451251751135158271181159289501071229697230355230675060306023323980303987432972601663716468161327137360594661540007467476625478231013592659459613670018158790801363142965024729493365718260610865721451294699026843623924687299481320235800202700059253700639714808149052083128387659248685032644698374856931132414932357125329730743039664468582651322132679531865489195509518634791299367455121918448887421258498235852657729507102741561703300993324227658413019918140697248874790193550705648911625622788222558048074992914417021086437685430486458136418847455455320759436913611433837543825563730886459976356589608617699960773689068790218761956745356701847845395824758199118200881237767890308850887407825165671397102292558794010025226881441117909168904762263107475807562112367971548568296144112675896990307933238750619391879186883961587823028296084399398887222998160363249599022537406878716513929622104171258290854466695056384042740416862971026473229247772873881706504424359909752182668946867509441249940467765645383107058335254312799071586230897789425567230006732979067087907554606593489253522375640321454761464241535761367510916238878990414916732528277462242476753297613413716995479320752375747949923500670917647848378742418668219561694851931125712415457545438101558008856700139513572141914944802088998325422902630275137583352260105440873732650930613769560664293513135791908603207003394930102920545857828643020181644291215006346068558690290735157535874389922298526024133667167823305422804462217529526085114060968396954461667138046159015388856102722981041652693115324160468118835637419309339142229891567636592700722208827940714657522024468568568652591191602109502507008334642719256232441701644801268523117987497819497820260469142299872853462494779363994387568823606291943828099123226665605407877353750269891098708197661155793811626030325210014571085462634590689109538879298367335096922913160176767240692254901969010924042322550450728635748232882464253024392225630649526309710790914670278026704322236618107443089309196953451146822262771577976052775223465165496414267584839491080686734024658409498007861188610826339454448915257344654336463858262445089109503331056592808201468597084220237703626205840653797185270829431543267419304189330430394447557659033844490666964112253208614950610012769069889811433989223062982774220457078974759544312259326040867270029113807142639471307317386516920762327032443118970471137725753144983897304805102640795133400605077502348888748352788764306166260813094426088393343418785870692849895671307124992461868408991609985117251237385518241450398018125840093194945384547887115120350195608769206422374130193795037830105783010754861597567678698925485539643365075890626706423080272925242826690812570225887124110751460842088632981736917835173584820714022816995778299125904504093002938415271105658971568272258548643913083763589685988230079604868064550635603740759398755690975987604201003742905418585909808728377648452056913709271874268622866428628331821447760402972601112236322653642188177648627799345810633084952463307723417537092900248170942569090738229177274580707115868053567753153598571903762187747843031642165025508047485219374013551941769639657731285668978105350750129601994020079050759102548003500958447393510244124585456493272897239290304096140497130513491905549355594091698591771701680507179437018282377283889979307848336459660112477656785733784510205505951466233042001352605223935250886136766615557978350011731337118395849888744623346032478773391121919127565441817451781019911049198004271462878889806005423967867024820313900672322133861960284540891145135841748785999755310740281274864904882317366279890693486146487502694200251606566845405422936784349079141126614495314949351726554298773916083215379443635517402734013331042798389484063436447084389510019144679334489860155940889318027472839023798112044062212176315781603397337514506636275656785221799836005502312785917084401615886780681880923901968781702450515244724718014799694385664478124472193171449257793993013712516953343201749405566041251281941316996998904798394331859116064407777369372744479455116345311863929361615451079304870968609984514964269671794976150086617830574722041476401690698671642125475353267637382431863972643846358890197511635739841482497106358547492211267445001027230585661969628655659176342738061119577051278084552902855835592491256610785379205541143438669187287236409886706688715196390764900004299253294608037945029338846782945032323881841826952716710908735713365206847474061923273570263442103553579811418692052578371841173617023400927704442104530076184122720288270614774002268212619328287343316277311665550073756842586999341777534745028022256486088224281385519677169364544598816609556433734895827025676950403656236096340150531483911049352996648916813380618735553286207577574133608859317908699763353764770649749581683590725512949729972043591190939329098402938616124505823217450603268444403153357445229841964749142501675500660708540453620650696464611138626523421279250296708822750748441220960618042837998061805024637546372576601102089174606393287332142924140060048189746194906500834318475071541233556810646225119903594195255511156712941410333397358370280419894294945488834227170459776638948930938598746441860875232708596555642733398794809446256293061222086982154536947310344884927249471297785166610724374935955093421982523290947120952273810641432647981222888645745542864482477220540313801658366652702341657478612530338084376350311482238211250489505089421708654719918617468376735986199073399549692992649805282617679435696025067859591469407446688983211178028019452051861290934670728921396812124243067752524988247482168316404716574002700133492544286612858679975614585370288009879649358718401413497639012033096914201287298697005186152334780391037695026266762930860247906166845154140120898632762834323412420710108725354903305173074419974742391366762131967476609652529845035868665361767422377077539894327054981048063137527111507115501885310315202966912330363026102676510258261504276502941424923869237764265346416459978590491088988857105750085160001244279462997753378854859096826662162488965535315779942416164958927768064083270943241749597084168083702561157795682497127633246436520875107678753964873169615212735200275451278919996664128238186457816075377503459414190330782097717704709345665350595011024597742797794798176587981732172623645096298346009704555616725208960243309505970389175967146267401838056329825307920942758245243018608339589791399080145650369234848511207516101338916865971655244337687490246636774949068638738370851736195291204812451074429771405496688032065775706579008391009449711480748424423070083292420650609731516549706306448409801019745571886272982336502871085306489260569871020857576189892529466876820113386763487661320398059442081161914933876690689903433621874996772135647447504100275255057990524802962217785400418706829904376190080117300054217774721002440678223148254792964899315232380576371255549614544730778688436568684647891147702506828409312987903360440036988552430462473452341815045797105134941865975018266354683763565645539789796630746479186363713496347764465406699603664392089474671667289840347039349055185077009169238835800250102111489277503064564083658609061463924312404967536152880412147524375691543183365338489357468605404318749346136527878811171944078441395191733197760028493717896466408423805656780892609224060067608213695436603189525388550990739029471305044779684433318788879735015342489671486597346296756400871364175592999933077810235968650942324269072844078866636932668629603235874120932915610754410893687803153234985158401910406608233132319374433546020174044621504827883657222857549668868464087756291078198674659297156946594888752564622663919825829445872758015722795700738789679882449518296207435732514403870417742437291943862625808602201748518963299665793075110684945960499780743612029521204497423487410989504969491305037146817330197643953349659485945307726740809653300310905686643575387214786047313576637660138873191833108391246493223198231946313515369746499459815453613206158716834667838728339091213181777502224967838474241437899866581481872131120785858868430514264988419041258911949322662352924601021431234653600952849488951793277556417652416781515027536218051450636964275754873793963567270465668912937718463696580552123917005913966174737960686749416213161908578035143008924507041255407650208647327781703469362002761620217238772572567747073981888928043026362102527298444984117591793621283545589832141522402315225539120052262860644110687781333277550208699295941649950966844522328673788994842089337025634559465766072415510969705910021407768587635041117971728810913677341297985600753365666541317048992073716108711666540640357040113645231780005798823973398177234860122855158628305617784567336796740041949589494400772954884918158526237425042917513855972541919216769179584790981932685189172696653836422967127914659312902230943374406109964531259396746532198219968547026886624233732742901259321639431013171245872217440350326078494182543297275455994562357487422855676451788430680605686818138037944870333532162270679734301362914561659461004826612866345476354351411917653793962160403381994899660425637662325378676264010850400238612154399740278060131647864774235276076135748934291153061200095920373400040946693528157219709187056207800308035973107222211769882187915443814818210105301441630941172287194733273043128320163714825551257402359549674610864288280770239342963558308540057525648234091495989155157629586335203686985459326106316821598582441940655121157095053280240505189618677034327274005636654867300733268430333772151750183548165751275465477098077963189166961385163755692928963278742533987021420921484404322485254368921683257190766313376965337373788740337392984840770807522485634725040264645993427708752414696483993151128647933617450803436970665944445574340928371108346720525190432385523132217020992864604739763250340453748238921184834799461152987583372850400044611888689310497619318573649288325571810819686300777787602513840505225647692418610148474421419280450478817097411005072565893703388301233169991638508727638138908895196100508121737927847640333007917329625850035690816052342496533892029506363949753724098421521813825671762430127298365121750724523551983226124558814644558884727071143084364581689925435290918819716149861241036457921327725429157034927606127124846659291670611817780578889478332703068807685821307552471301138605815507442254865798692909983318331135344392548056517260112713214499570480041321449864739065554347996442508771739456264509656969962460789759839494670845306694601876853560774694975352200282770430496279034247658457458745886198603711078589832158929809477400005800234362181091817452812180369202359695339008522091807764258957963901041682079466639107696191698141950751521596699526128783057791172037583348058537267396341030118923117390520373558182325929187013807677065463593881154932155335573429191033257162594997915312930089917625337142155582979218725526724620298561381070887018985742690493039392391802105339079619489622659988292846888871984062450674742424165310220644494035585496424789205498566147447404706292768799785872246891222162174847308103358554240048668377603174818267882331179084494310799084714177456891852591672921066298483490254860697568812591786768100186685520625748402611466298150618460082850353969339751976193314779424037461019194863492336416264711223574997983475049351992997393136582316869254989943590464435677953296567345330251378939597748667923089483187121769673133259110686062190577664472126866368010599965847705207533607569305207552668127496761372671507003658657351216550838783781368812182906285259901592825225671971791731535740797527892055802799838515159627816415739970895044046290684172550866279525830411429907909384677760140991729002877380264480977516771554134263751094047940911035442232017681496160280918295307017841959325412746170166614693644616335872093606502709069335437630858314350710682462781525157390841564880329549377254087911388152463561619886348350745207965085263664136042937398720410419096213735238314420335575009909538024084296102879261242294887729064566148032572817417612010862076987051686642597252546203697387273603329553104794758831594403070929409974912394632984497863404611451432223596621513660715921478981983508288486975093488833382644525057667308291649495385126516839165053279519580506791238664027185314828334069724296937515845078334796756303917322641861964561315569845709360348814886439535892568662356943579588482782461976641138938137397523254447636859182558237670274431793263321244173130806666562239503139909432778774222563418483436759160970926266560431125339719286394217174308393748874165135991024483545138649259807949409776071306160447146606825273318292438166276138825908123669361083204599851081735381849653222847052805311083970280430024537789305119223670055001494168208293873759359079160036738014923186818693292707616950438344390248455218885032368956435273955641195731914192065100765500941788255949273805674466226392103469475692834725227759306802017821141461496635661628141632510785025187013670515200426582161490193070687144489089582983483248469949856799743957846444241431081002504974842521010113529070360663373291412237800245169319544629790917838173802143661184785561950544385355475660211112078060343585735320479639282068001229615063314932732964143103449237476297744295547850164409957434710557544890212332861620513735176719476261440014552231381099787547410888160965207887117755609368484211218004456917436615888277019222498243551767594269569060376961696974369788316006555804099994379684291070783547796746354585354704290619422727947129290250826811450305808530723834430984902121853554912202933776492693866236730155712941663380201162004516447238620399530808299996790661192450705035318092294990337099786699786904459068122300058119267457423604277098005527280154213579701900042398604323215257157454863831434243446246807061352338037992953353120202256987856192184139309938430173653381004038052611686797147649517259686435548210071412265703112507535338886151505963725306758603578031484207224588609660401962366574521201695640515768183473910274524316307462496806620596629358833528811471904782582979931220789946899004516183818467556047185724138164464140467538402431157680530182068847642817580467828766487255780265960363819810466409328084682974131378098657820202696018955368006025678507676975050733058143470332531378976053342677050047909671541623978649323017074007801103249148505246604483771852518651801599832368339367381307233360474542640802602144015193680687179349082662780846887434143264593979928414835287900483003828953036699447875702177869573091802331471801850372066317674301536594450517869058474176079488468028191292557275243075906780554237159630022776894735775188150891098207481977696489131796168349447988811242376953076751917914247389476033657272361057836931698273588072637642615372912875555599663141470517673779325893580270158478050287061432957747580194558333729026148731658520621855035573126572502868850114052981218508617211961275183597247575086967199481726561943292756329443511400628270379883475367266104351550829225443293276411033287233741130238599830659702093852610749012682639378871503641836706904397324495581502813594925022003089317998352807629564482287501311881123336444041551541493194172379937047841761657955518301036635077020360994472078021048313535710329937398729789532774589460017165460230804585008610428180791089572056921213133750035120920598352182461604083620801420162264840619442035532969118558803492676906739511839774979894193020303731807590557735194514154429719152762377909718667809266113265978615842845944325932383694554222609725494890092532002508219165882530627958275879957089045627995766772476160727605190491919050805324861116169869897041273084466177407676054443409508471430471134669576227637745253846557226826042567747493818440548979552020019205486138602938485811545759737742347476912969700901974277032993331515410079936248612850130771170636057568264292759674606153689266411213712905301167854458780144736409015727514507425402694262622168634420231260823103474364359046375285519668619085256108949590768572609552550615371378148420806706990111245437798232548980491621776665288756962449812442257706925970113523904238285490950912213456481313429405797990525242399109100942219564107215198331466637290495977444482952935719489717136201087158177153100179985993910522990034637889165150934660565886901614097744328582749072570300995586640961629245487373138187414688077387202812610491157326163631096348000822464203633714558506690334451973588029592499010886431252655907918421583119514590410992587626629632171863840632786679390937362239071563838205282340420001937243584680823246170849333575920301524305942765934927392357997685610250425441586045155087309462397401932725488145133269967121218073267537902722770428464948572549254081414686097615685360010351393426612818224452109691904233699788039292799562069166476658654952066074791505580389645525307048160501868267621213730194119317918894494819994744088221818968624271365384333870075881257241944623913848740613483743770969724479562494881566345139277476000716442855898390053518515382601076245599194507743373596512705862938004234896414536318389823060219355332238395268530372031714026890564634336460403525038467302696462159181018902397260689001098352942241484914568158561461818503252340813166764448467032350216293150064685543247419168278477266615113909137511692591871291966359103371447099870689312993342331859714233662510543482663225659904987067546290416845398511575887834367544661734055683813766041507364193685460214693520472174163581925244862872471648009054493861355126689773074707023469815637991632016451656029669711121208352241608086339512869177286403319023975955094060383126580595535752705344768859321179822185742540562291279927981694537120010168491369867815338442410926467324894660123034903341690033758424185060145730929646753212745774997753417636747758348419521371639129505133823240508424713314149259572442190131860258216879185882710110906358292292815503522989110912429102843153406407466923793330190045649020841311708424875612788647943169414444846237689797970485812117626265317164568406563906697457336938761263266420339495438651287921664753674785502181428014499805945266653875671469472834295473751899288441074326055681021468919844737727131092969944082034806920809032454793807083285489402305652174057158521801182111714537623164596298658704015399723487366768955368827605313615359265326315218397724358823387990586843283172229430924589742770455040107506435529127753312193665150959990180028997644476041642533415828462986916790102870904437229924509512275116180134990438195150866563253939993227312173489887704772892283146782140019537961736827518908020260183732857902773459311139146988578881694638469446140221117768832123340112910455935433817719379994289159400899108147878517157817988427622280979804355604555776073844973033916377825335992275916835689517425344427260263379755053169739845561682896322524953028971599852917970245018866959239085844550267278378116254434628854161057835598835535474518518318981973303668187164066258938957402914871660662487668947593597581156791897212430662919729587057308461683510893196248035901688254591756939183434230778714090597294372308902992957155091808619501824443051980853306335161821563965891325349396196990767214957976215131134292678834062373041525728608825746829594414414264021653548420680385653508084937611337823979810716426310459324695265073825603416893786409148250455706648143137592267483358051651009695441265759882490920537426321648771007750974797306517442041814858670921057967531704876783754068781734959166616774247735811606610210823252775408148044962518372868763751860055233276954757036291956125900744418267069736045836954792604341108691664128470566068898245350222707179625331916816321426353950998700070915310251248663363514685795755370920710640410716351776347693890988334859162574017275652014020310660984144084171294410414124882018300427919778110209747904741606534933020150521436252744290319152447671813409882087202521934782329842987280970360360186559699879972179780924721320289394701115463129376191309976611841586693065290258771115099779847624576253092436978496655888555226683511280857373183003310150576425461126460821222729497925303317157141476684722092277941007632231827264837787658954780059368206325448565041157404100378148028827799972531491189775362210118350149119253642765573762023361224250024840395411282223608100509070806847741818974320149667022352997948748143537937072156850192124718102380504366885108584775321675940663296364544603073031489069406607117956496643548450339686429571525385203983957680586690387550146909356407225834873936398070693785902013364979820080851287724059801521958243216364533085467230388156218455338121995166058232530474455261394530946964641974496396423143445007369768250407444624595003012487172868179023996987823724825390533681221555012939503431853429101080077698675486249114467497271726801688025003476836805634872731329527554403096361647734949792613390776884518154416159517538548451047107044794965605871933292919795446951122135595661351147448049147528257027665327889987062553389567803431117276091602202822288725309842142359179733664701999022899768436785844508878279146417019194874556172515682402857883045703408863863780114130810274009499432884734740216280404219515677225647850772229032312422915473083538144184106736555867423410671880536927134303442436130398158051193253071517911793854820347822704251740786285899235390191232616750973253843512170541882903487076864546576902088928367427336933649757966452651553921699300680487865931409078581378311271935010999080556836847674389003847975702471213893713825909082338979768535063024013550064125230365626149953290762667283833467259327657556539698378809395144529245879190312971855747300703286474505332333959486746418986500290167174782685017318375509161744414913345711814478764538786844575315517018547981662130510404657967356304186277492220178031303447564413414258798002075718872788834644318160210310775115517693242799601626278733643324487888043367549698440675787830498386543300205025545275640562145408252652960015610814664233900080013635218741317892253480850883931954980217079768570809358901823760869125032177896264629890179025996070976256103679019570452670458831804171981109342493491757711103128967390293589420183414792363088059081934718501994726179111566849351406039422394122039439077746373491875756214668282137380333364443549597681033054296048499506770635705377817907703386825961768350609479158949794847758460953066165665594542939194301934379191013227748660904821429738238422843467288407948033170620809051056338127474324589187659668557254726342572177232157910023953922822140169639623009852088877190348091372495714638116858029647487258633940843900095117148196137466008604899884614891131281543571492880992199720566386164770193059830748113732526951130039799078655837920347849330586250607279135321448967931752361107912892140391804268339298669254463090546327746159807102917652776703768669038589804750593943848911386548712073963247771218115460009872953924528832285738727879441557391769318577513586547901837695807867481792167574947772485422652817197903393374141715768353428373268999982640793260752023016923310422921673926502904679699297654746145332689345827841882367499494879545787956260887147758342875764048128822820438085674501337470183934856901569099886489496327446002204256859209608889818999361657539124669221847111737169902044218379100570983539168284385516393338273474019881370851400155528118176065469439907753836945533979661339461495221699826094841568993976192433058203584803395604252597633284787283837785388582502768464291644304545762440160683954800144509785250865446022150121633799401645404143082070219544991530792771367083766718382770131246412759934551493614229954065803217396920592900350251128598051935396122041964823303808007743519169029345568531569179800159148091881959185664934019667484109478458149576173861881780865895025509327750777036239267573480043921055630736746233105639532160701788684969186966802295339967216944290075874796693770467380068818882701486495711111480630231509185709885906381867882620867584356472624307301997097678448290131589011049699515203504118816906574043753515281324143272228069959654434591855215594855118530872356668534518470032780750322064889740656545194032298410003919314338289962876915959564884176874752657515605523039759936202267028138363507566192725112148228849315544615916224865555988109336450574472632246696109285498267027705390088558382829338772129103991162568395100709262580283921469417322690167930675223696573627150969262730008316753726367113870651028706487701233568417196965173599543015275769239012549117776677349430165010427547829978285206390484098241538674352818818835282436579365320998378579562502033123823369072046218666388698950720986549749985975616444076773435427260145717823124090524490903295402279359276885063847318473717361660222703759882780768208567584851268506528555065224464000827769889651222316826857837171864844088324432927618675058130819228928698193021745788794222189074603807706227521896901125306974942756998663093378870104420795439456234580852636942269871400433538937192674356019813379375815177700148571894645424331757000330722892354655480902031357053286388598675539096251503577755468544110698034676631128466562024443854697378282489208568523441513486238973161438461697270223995584333040990464232182817125878042503720258272347275378351592973193026410311041398602337822059588076359115369891780040634470939921117483497988703938995989981592544210296608958967442188593982500142198616685384044129360103399242117246416457854454868060012111203971436739933696390499393158674511700412722119431675191714076884131884473461201580388400307953744058813003487034799135669387416885133286844513751260181046256325714051538257171674966541060881896033869832679936161727720552311958045547866988231664367678219070212137981876960797838839347837815338771604968694679772973613249349354543189729312358898719148657714821765901964452004985833913357038327739223978659083614081211622232779023462950530856284377011879822855198804110183446294299690811476751338688575367003417193688033556471388667536547114466419375021955828173261450646173032213189056923376289273114810074601018665445643341353487461987248605352735370339498480833541661339790358497718607209254737485734037742809616973592269207103184569081514707201255656331575126550575650009098935805983353098116924186583923641725030597368867148083395351413562611589954967362675800729587999070297987642393100702397057426830904644731081749576318853881626655708258316000045327135192253341885092342145356591514221457842264847124579826189062938303135845572745080716065309302615891681435086388626399403975465317838223356859494537825387304584419905898942634737090585793064012890059372624412855485832594692187759135908066507534907987689849171379133230985124039898741324518249485675611430206639428123078092986073327049219607793786880398557383042547619883410349473959223833317825253988636577715438468214931387077027780501192582296537628624974000927238888339672643085846915914455041573909228631290719074731667547480613904821111822070815542574818750898734075987087110999142645559593390469783720133119151439963199328144238269850388786034678647345009491321340728076819974509757265772752182925409959716625818869565262988278237331288054981200050718821617174113970095411042896318197605082988392844480660496357006997855153866875222442213947457531899611692516167536836869667937778126209120067688749744625370736581008884443480272938800781477729629643711757270520287024078571577975621886466559700782846477765716952826434517580055626498296671081830912124324385563372522482695974497374238283178068194620391182845549665101636864390718145169276079757670927252470662205264841239833026718141794761398508155829213843431826216109170933853836065613559770382511566726968727362666167952978304029737409053927210931546191162810017301594049288807044409257600025429404011752815104450287467561052209949132106673085649864724067410404605432066889591693813950506437508092463410181296760185691287706027232023121665835900823257333371378971676064793818986248661735791307741943767033028624000363997896049328276572775744855656143832744239492386689710037468158368366386904002764835848477367534895705806688427374591868134400566035633290431066756363890231897145342563061139014367636665545923173393069929747775551459287762921453722293887643640514244951584993079079738282690364556280414520684920860359316323154903615047258472524925310064253466689431202610656230851035038041987153470817567612981660169701623037244215174269524944424895602251424733670039539566516408293569272458055559978705736849498005230811775550543548768971358281898468304913231345351338075672860571211430157448757327647775659499234380838200745454630551769129309214525378317642994382504974552189598343617906514431349459262936313480539739377794870457542094086345025362873006186245019445828529039243279382865901212649005388197200110209834095502182175472226483504462810599591734735202735893651163532569611761394478571563547959038411936552501522345169541779742101508216877952579656290837293499526838428539222088448223855794913435298661673806913783014515454578958684311546177479810741643098248109888051703536969344386206798922953034800521143273942433651028094131956753062078952850084684858803240006162204364694250340207513986550682932166708724807582558658746280273047682135892985789720409577821164621844665026817968953708681553176652955747805481163881143308144154221087308495968639927331131906819069099160816881120590139812519567024373236400300642672090809001170629912400747575782299952599168239217668249267159942392788602281094093555312497514845126270708351547012213142587477623061275035674482636672339773588167616543237231199803709965001186344937207921690817512753755854540402306013283962858524998457420294821953878232269516065651588511685857589466853340136082439592421210842954941791575376366292175486684862222107413058498691838638718948994362084970352080822614580057797658400443609301086785969311237861192657327194566103600319448367586527534639618912154396122799624000526230259824065043793595964069646211978039669645518163843787743826128549925255334693504819957534790954925303060306750675863082077452045528384872258269432456973527504146635158192514364829429227516345388127693183165693583098287868820633016265122256315176078508901257037962074446558270086761197699674055307967893312821835815456036154981720819014873185389487032721688985230850558042378034522590450107179198413098679438016778313613119023074473550714749084735351536805773625225081848509403667465134705845275268900410703624568473367957565644274669826996428736781523905674649630350803205485968511101841915518330808676388152964447510551069222177253322143619956807837319297101928953980483016345169242213906914312373474508174301032627135266765701796768257894536369785582302136801404620281152613901475967843723151160916058346484478054916840813144063373892610732656218159541297229480126711498787191196875354004399026340150894405410722824053820994167046550305146578050692201406237306725801074432368414028098340279133096413596237037779858885116310881749782367878124496089500888363801684816392090597241258220538280299973690629511896276461419613535169749459658536272169046935109712775471677420332290714347607113375004324297383824895160854897070607706775069099089569216340296355878814865300628053803629524012251918677808924027192471720562012295872814102775071227538088295177756454420926682461638663183704803913595793774402848041258154263575111594238775995299291083193401627313597505376747835845439729948827877431461933898827007190806945478781951537969580976552011868202377186277551750797665016523424724707062223681608391433762682769044009056252526456021875649800158389221764391371165409344305255075791231545343178075547950442123427801124366103796311389943822804039922232182688294300048420865633924356575836279392065613264657598823905922886244442441396250577892512660221839423779812641009561606867564084042516674661363247763319773417785668852087528668772560728168890516848955471097169383888043700309096256778227196817789041243755014439275752418819127037427734507189253090675018099786525056223321448625344742525276800787114786203758977269650989396958139863467843391370360779610710293838403232252377317697637479915768136213438430259174724697460495554986177178095204692915455516109529281663899201865095872413367501747125456240226759338224187767543536760633101205777506805030776372940334765594902383053210839693555713661847247451410307410002363643864590445687980795490968865078635013815971960130232298295955987533986317203923520243284054720816495898554630989055618147193746980159934905597660530137999393876396944357295302494092547996697226787521363361798554958948210958850353273188075583076463285544136282729491062803605913162659041131484176215059542201111505158517479871590019256030280428820886446107700916449055125993439640650644171351425203053736990999429941663458324568437495065300258929157974105155755964408522162786085701009591686437743660308911881730671164847606654922517076361230291747857072866907668521902530444610634912846808929193614774199198833286206596044552815863405125097361318181547187230201961507414667865371550605656513059772622012052999633756061291235914645288242803637996083329072055995260073803985011165777628454748010564987141580433178923002979401603526284327555527236363380334687839049198432951210645184155424652962286115838786201779310177192608108538643152306722606816109910895833810016246395056998310585042085180109794566212792737508053153475271888794314040910493279252101056207387218967034050602030195800294501439026742781473673436113822329985183698982609773166264551191292094770050244832335764609343962712381242954282941132219643524181060707142220896887892709341933382986458819873039906222938837490420843348449340142905264933276020132736438970539406018417328564402000695614554124041065174452472241437403192799293977926780423796188922722893257597739143257257660509275728064472896862245001660867373500098994654113426424588315717844523228057320226061683828082412219650237519592136866500652982687421088368754356828120906427250896237759892139220210127237559540921855069251108972062928376510041645193229802072385518476856425371589650107828363619036587415180337244692593569723924135931607573558605696827122551022945298768224859771854439071091350369900943709763829290198981140737972582399247252899418439273179519713044860124892115324956717594698315038822958544012619665043206790286258849820942616404625743351050373426726104863492936411944147496932385676337171137044327447504715685954468183717866700004069138358773713259012013854431622149305390115049642486115978233578619847329374753325519612485378006346122735594620905640199540050477495332982483881135396618349348094582900421407072927667433386530326238174210584705054181069302444118140734862644830801326908020619641923983007035968682629406575934608692669684478709873966982573519948721582351657758975058789467737835796679970285685631122780927758759896733239822299458310448110685819014970927633203574025069579887364576323921824105095835102507067677967270659887679866744943664903583803552519628832777476527481910822309978512561570999698096710591508872218416781972606284276067611230627543982643043473528050692504685867230597686661011507231033657533679459329002793691871451220552199672545408184728113395550031307252298428672071246371778746006210585958998631360100425710596202245326316907105164308682973278959253191971210733760481447615686306818494777794686595714075109247778727294760278853047448623001155979267511368264323723881740100644641296908487216035170047800147469239324068823105966816656317444853627344153017756268098128540846773661332767226083459069183267140239525945871838261478972329633021698166641080331462440316722026530872029024575091572313072435098035707865965233007537766010189093939527195637125229972881015850927538932357554026071263849510165909654877753722895504534130718171686793891863665784895114415808484618307493154722093784260194247204771836529652579919679930893475514792714464783688902522960188829467979889021384424353076480123338099236481801386809854339801347159005648069322594091736437972103798781358956399895923236902668856873246400155185747150864518381309199785060070695461557749445227299582008900935095221696992560727335269033241238476678323580223560263413903041109025032430271892571551512536617531320592046225840702330104568971678866434210837049955601281821126045393383013494101720914565384853654502882813594230478103264343933558969751070553922497373968641976733908361428944403666989465983511553377326497490118913434537934610446791342838588839133165896198955644723739771907061975943055206385380912224607482619993186062051699112914615765587342347245960256491053187697728726639108996531326153975412855992617677121052173769779062053604797777567423921605205893184912987671885240948112519015018660953620875232924615978560004684575020908105364829164485876732374688469708038405729838900246359178058991105100577165579319924789293451046163059591040946381604398907880397805640283741444379180683014858267705121698849724657244517561336166493851350869909641099507490365387654044060023822403988940715298299681405345336740008587045472693021494333980271211159268508456216887679829827338385735611353491771727128539584516143490788576598541795345147637929904586198805051067235603979776495290779425507040782341493849352756795478263850059916932734742451220329251796867193573682421703900625936611768752587588320733269404151655227512486137571457255986310992359433906863255646954664671489223204933963946310423725541831626736083446597551728244688167582654189362613284723274805144402329284792400047418911926416313217066980537415664286927007278588099626733065758628320072401872387601325631826731234747479182753172829142042110315760073995723017561587975434032239577935915230603100405303675925465709446522816898503226942819382191514109181126022815646637603742122559856848035289158904203385809318328854552806022133520392384875186155261147306369470962477606027547587976734711152829119291912829770922412198845721035307349212372944040777809799613658095023925362202813837599392710831998986457016886792004103383661937528207150579669313314587409283738768433400404155843968024446079478995508053745671654447475997932579991200136212483323753122551110885985411542414886159867210551617126185039375184243780043127760436298524831888511892057743031462390062210938891286711621289682621025557359080067645934657121993175217216316755592741225077525208306245876978285941860339824503544553199050956340925669970577076330502708607083182054767769701077669099686156543943783757055688353414724405858306487658106221221210597279140037802451834495116937920680395562282926065769010401810054369215752736458213371642753622096372779440804646711172362693940830220174420951464857008055061031920954894043409715417784681879207128506691655366111393500192540712525237561666662097243644891504829268392303755849049880585936461597738054062206562573076359848877336536291500367071876225384455047565066963528054215115901406901151767336653214304307523314949693486385748381209048214855208129200957757720980628562110267064445251599457738454562905717142679703906826407733303848326172136154861022555517415333017077941274659885666559220219137066599286353252479453294560216337933911608890141476710288941703075477399555076883435626522365405969364047046154104969602756173303011162080933916672254933430891429070951553501852802367316764221707467652200989959778539097763079725902745518752343494183489961206201052393128882005267521684682287730331182731500403244669464315297474378396943150170525022529773569291580081626782059394587802261302528959576940349094449618019284255726549932838458967844537724485578218071441166569165992182387546783667452535810187084515419481122740612133584014762777224036725891294776606714689165335880510244584379660458208011330712786636119633982214925254117988219119956064979478221461052246653716240109562778170166000125041802638809477071482217643544186381322545017044204433044348869292472782861591883309240593061119124713514130831065094171718023637017472830106145109246017900303101647936297066605599972885355997929094723403851101738416331013804100808364351580754420342030066168070781774962058601088616946527727645773099940140617437323841124432882480539901305484054724085663150994897807845006413840790890375210745293725304191594568474185647373257596344697057525340354514257734276335969182440339159836885582650967234267155317524146825508392806543207882684721623366768936658543463300124509263162655249413781283003318934792040080142674918991644168348411773748548957907254090595877420917629956327867055852983237097183429578878230929269062050978791672522044195192406698214156195697662932421883244579059646283311987211698322286002638893565724665938783570546107818511007582990717771549687925344887722782127382474897489625733000330088221963532025488684649412395852097951984886241330428548863607531059158204028342971757875333980782745004456781842452166648680649330281569317381209294952106165652997758205323067306146918454101970438724261029540168073136713859916883365672102036357731889400645089606761027493582633913677551489642661300536277327107350756034916236821326959300323017788017494987742575813700787438676119707367145963383746971753375431782108265946957728342041749689505493891788520800556142579948156490186372989729880718827101194451588750773928033921211971199388347600063910457015741710033637101344514696656186391443801946650017367303992128924880097159861414262257772123629063877490054714284137081731130814059120181663273248560041541649383804570448494245564048437743544723613133707713757016445630084005865234771706182922845117589063724153067052888548712858781595501601479968709130224003812091396503130912132838270822115099925931904764111898061418269796766773044172481968876976516306773161350086752289177546265552271871839479659760449524491981182382124871907988411923860840529467688103278066751145742969907161451124035865392217947508524973596479670481812287014167854324261718423263235625749800970373328748985567934613328661681371401163537538104633086102022286688484883030037183943969634625024120723654944721578261306079332435461154249598256431016472746853536264752976139459923867959953829993674049763983755022011759232371934993338172254547901760269200650606624312093160667338592265715356464037817708702786692512441936026724840593222835105275594385165840716448942992324168865671582826390008785126305225976147292271459441004722914339440213522248906684837824029226624116731382401748573041527808409304036857850156994874750653183066202288806093847250928106784131250500387415767595492657430355726080054929449576445113628998642324939095699482870693853920317427115986765922351971224418359409053495352216489711343379772397824619767315424115749074585231474408943724336402081689902304443761003096402958539001981359400977341620399185770102718313231689093729901800065556998617509587023023946750360889575695991418627882944142880175119289281137303473894050780073300116949360594240876488459923760834782645270633887769873956863579132539562640824318967297318525808179467379227127382473839726598007677898825812001958064951572482716259815748382497971429662318700751614773861394467140645435932241436449497782469228653826695825159215682377328780073376692508456114393031713293853063147192996541326833151306479177690877150609233680521703534284788206061026993579501614270817156726243696985335470690925775005949080069268980101892930261800841718245505240292419576938649790518476883139029163415946645409654090987196974608180656650677226902802153964077276052527911954890350125831948394594986259785753495149866859226238725752096754659577526710389819574603983170105844762802810877343965856334487177214381843211145651536991619780793628418816348284424814494370758927711814728935646888914542555710153146725429581994743640562719881814757779355077212303622781538007408528162352668507601057088744001928517948275307570148634444602825379443674956595031629120453023644646663873208760508905568611281225572820149579158572113515382844385087509679062319871813467849000814321351420827119272034430538204480895515611868950315225379383512580762549536328305768041869575026344210307672724771722735170207738831588252039309100072115812313849575414450007419348175226626306074198096515542038081623408185334851706590558710219851808628423171152250742211211625481451180263338780449228581360311210643989826676338073129907282311181361383885174819497957190197274686847095149956445983427313859317473374872320889981935590955404374710238116601264229602237905466120279157881527815860016083629230343605475218740033118951420240796590656219296152465128985330011921954737835869076414316535298994435266840661321098667419114349367272072774800749984698696081064768649632572820582892223549111374565638878779170794621630482173934099769745431878512384595759068558652338184434365681848239180326614321284649968433305887937344141642127033373581721641489118287657325542925517841595583440127672026668985270534773667067250804452288452032644286982710660797382747429988850340834748522922105543159896164817230544250689801458573825505507107568660584283367686851026144136545953774208534561687402339431815257404380869308687323858807158624382075070775962473372036569271285889489410612489819028154726734739466601125479617270545983530111006474121395953073931401225414394314985643965104676096438084245302796680801927077040411470404258457882578940063441726221820582194659948800799538824968222963264751979399565757564914088009349298502270906131631729608607758044596875539754120129056614646823939672412656382447387891710040283723845285812630800565663676981147583162134098987273593011710683063943336742589473433730928637218109760274775082944998565225624610001442101344378322901553503454728533101936884997296351578485597244270401051599519891802382901512593227918849349706431631291092060320753546184323182122578658496469947127282240456267166809505924951600122201701130058781872655747905799026794569377533147368310372162980851026233432027086710521950427185502936657260323296400015736173875429807869537337979330443242911571633430347794497935561203143193724117628004982694048127904334661810826750463302959864384644773747052652428146402803503623048350430921594372574190107124348399618247064020574023880185198292755130471841643347613748086475607629507702757375178876767587464829441151105381257316115329521453665212579868737294411555885774681594098266626737785530380787102120046601160697767474519270656280192551705883415606714894352966120289565278773990420842780215510467879346689168424068048957786856743258625337798969240831928516301763932918555654900185527671560081859240816540817406659936463184369127015428613776328512474595128543920271527301158123554400742231362265326950728419529576042888285867621855708468146378973306377527943240753493202678774835472171294157635335209699296334731517612118958323743981892903290860054213210007864521202612480454563827502580049710958892183654247293771323524845756722054757227260312453751369323451056462422177086276422012562510653179822697335553175198912704768416191322830320956813612034656441409624239623118260841891588871113181817990713391885350828408042782606188812653564853078159303467140168765319164136745806419502585191044672931102845332397570897431771364804958199691031644153011767119759272305747361887862780598253730880329811397140299795581149731693282303347603134098711090083322383512307446199386396662084718128323143259345886950119473968132760938394335959693237085587076423498251492944274238671322126380687955737194541013130509430972274183987866128715646303214067641604147385754967121226148439080835363288377851371566177492816557055441435028957823511891485094121311497028136122655390172061209782464474066381383244942393014870879681513485844481302070764140419117280134402821343654818679065223557980205795544213424704227885872483190010154125293977478022921276767551683401178820817139132449006218354874676336291460398363586296395986198783548733350674016838802823787425399156271581853867546774879625302327902638901863975051616018121149774200974854373750790924886954630747994892163977701945739148001478760144334730926065877095973742676858291838401590778213674254013724292414983450109277846209565396956901984875716289975219483490714685133842967642867802962271891831239142529910050404738646905263331256635828669439612742005527811201295121251086915405991968355960509101119306936878310660947504368726168211630942229623350940950538833269760818571742361138851000814492586060775334540642891307909355023048143568338617247118392408981647225866385321449003211768663345282703173346862563639665986604221622895918655177434436065348751172778751420477563946966166650492732356382302364465184816503580262353730078447748867170479482414855768444888206232458668726213166828914184479477808157403780560865919822602994762164079977041156869583862445328472818651624996253027510086824201566049028905914192250705477544476936640089539339547438686248866471749609622567898854812207018361277587482436209526330091742890278991432717616681974737563596605395783342827462709957428761723451104785649734072222558506974471089610901174312200629357024914649409974266585409804592687744295797725968894212286474952236638089463672915918844494020419836328327277838660013183936985610633771368181840861719297781950388809319601919388755571047013735645143487541105764776961018854962634628567393272818320890685374901076258777222344965981594502514917249351927731210603926057877816385123688734084054780168000641414485618787355081904561866445527001426684096181718397835116592410757442419665696606482789295168481329689516910244570735312507489724996711776581849281733453831723631730478122450367092600916614590004703695688012192073841770891610880430889766709038517140252615985738256062927036790264610045507122865187257980478153906901916424125024477282144684430017200989079058388566994802537689314665272381126989489907935853304181815459226860655786031060723829772919373563098307728160812403760147278783114816079987846902423336088853110822429591830617199856742416441382501863901744502513768791709285136399670764932225600614840746465861256892882380283346759822563887856141323523696820497158356001046968045442916823958350951352291610492307415612030953718858365012129158833839895964411799988170425571150794470578716604950565764177343107963906227442066276400110220023726008111472567303871164501617282878850403132230352852953025219193921084152133094559472896345497541145020263836002871837995250509193908352965107208941424368631101984236523011797647108801475840774982052124874118610541147353680222622538450528242596719409863240795830796326597394183698927950895016883567210605277105987140515585767379785016165853465629851594110702009475524764564770644132742564463506743005851347266482135105584263831707509697503840451238483833856689860560137856550355172790186507788022158405714029012037486550585943543153301143097784186091467227209521556348351011745383357095510526522275758044587079425326687389390344455644691165205046008774105177125150592236100518404424832397988649904016223300981962253361048080953993559134981658379901530980753756292895521149368961740281331328239464511341869741138014839357010268225221005889934521552539212690090595820998527464586100665272206879312891437136186720762326462402816621490368313356227925918167951379787470066633319446658130049622619074575735455124955561093067921496745691051585190707476055304721101179930357734319099904005875351522824358916542812392417532373873278420395900509753309578983387500039572347271161955311785713005349504155524449840631079782952050997355722439513419108359416577071506977866508770736298621431543888212632772244598891381248704594243144362676158878160230651436961300170341011557624213831175829240517006242562827821345763917356225826554186300412774919722769102889920165678721099986610891686230686570695366119955045745463167013644258799772334756221202423310941504337702628630415395869076386790795315173046018911750179183445556843778734914974646538230463314854962790674143083890551889653623377384296423797577116603651420873210147909625764393504016773886069473050511432610853450652068929289331003179710635994925355715567373720004373796026233567035463044803450857586516931013610427657166217904869447629846290769215823978211568870764695411300590990002631516387498047952885133170386757806574764063658538918318763165745719740869761982495867308289047603639587537218199717827037246017984388674851441774748234457299136427901486109764783686079936051622761693996271956382517087163892400554972664849138597292988128493257133496384684937824150986900904140954739395629655232860696045308388603247287372352807181047876520525439126991037093635093704687210621113298569271465082038537265526083275071303691212199141064150538389715699913019442310448942322820623183213938748091556974752745945563743169407121384610483702367844468021246924826646303059031444042713963975179588526393231973938845286103251178323236997710896358250272878898700304120479815896044505942053870694148639837445943025441617856605338356049811234041047545963394892886053317094255786900728175890533574216194636949444108623519961355676662750538859765551280426056697926416490566571143912482370606582015738317109743872709111646577627370363373039705614317747084161900209294420941334935027397684592072279717459080706290540735763559585999223143345991274835941676012800081717100892284875620956444852472879690686485649625716748928281387235849985034668767963960532788426796032127069810756173464778238071223103886568086572304695084772728446842094800594307014139859964685552515940961258701107847412479188058839759186547632394724469447234002663796198306667946761567218478682991947680126357148286854357827776841800825860131837015728324863383577646525037067675658950291427474146163323169315562367214332989449483473061602993882111023170240762203016392741811491618679087101842551663205181177555283575698992645588668520565153931338163261782599977786787334901083590557946394854856548301666498471136588303733360287341442519711615090037278978705036322570557243146090479898198471071010645693917834524699105212127588601015756877697387767693414233627093209869746211619216645576273462229234228782039383292346884015620923976873454047571805885563341096194175958441235100171946801195008423035075835949258143389563870686896559911245838574929195408939329102819942460337716639813193766479248139726799201879463221045950855320819907592910508813564892837463126130968293530287235040033277169792633713067603887074521620685392057697700393990405825208619586123710336920402655741561765677946544363668285327812428020728868542588938662572522643558041603344314951840823184150346154616255959144979253328722603580753639924574464104189601406375198611511173034507528501902097183960219329061033236853748307049589098908791322982476371836607007617117281144250581584507444233491879983156142132424528222967747684580427641106614154894585181589618917454373125087416446297543627286673457376611546064077814387203357230753736957812657905798467907006965888276819147863268004619105517378605262652611333712783199050155232675229351122196798550030329240826473379186061151401108777244373039882703978808738828355665472852484710092195824813235904376532550862294083125550752180463891011335396077869776424002713698135696198243502533066934601435343059929086318192710056089469011204959097583292671563287784225915884860179166289045841957696443524721103422953756597897070279255409600929075777279696460807166087374714337042678715185505134132652100495667586018516688743784370477433448694733520787826636804142093010310631844448242300610349549639009952265450782119922203865949302902232052645462246253779872261203522066893715178070990715099437248949529349070267877018278265885789425097742437224420908214545654752378616664439319095233034540658557528788969035884313243535118574105365814833190045345791086312952663664373123612849023339531143232273852646319036813242265900428903165853684148367546160184862062010319870923044248691806814701855526828739760228168109801091118340032754674866089203748793057330830489082867943585156464401711025089361767268065081571088591357756920132136309370251512057612254853968185814236808816532691346764624178590307415368901290345873089320868620420052270212839038347823679708618099377887774996010103025267885797214310915906919575424664841368776948984211910244870744316306311354952055243964706595465708950822266319745828143039514325895138442815726700438325418211054512784871466808994773523812846534291566292683606629221343837468896740928474247602223105522313531046619847477406085537184535509484212806988057649185482617784332399412025303973544175011095996296537151719482235789536320809596744281185109594058134881153196773816663361732858267945009270049698495989075612010904425745641760215514665537141576992707253235592817835601798349389747531930672299040933025093597058472262285017176584647549912896991476492007751963877290163835780315276423257357429045565550799244095502382661126590666862138699260342802542744222179519516615185095102622596300641313205521483897070837002484681189808324465983969859646121657297804806538884864710723977452679982182274514996053740479487051184295831744742522640979545371125092111593673601192933311624139745988031183264996318186616552502065900899446912358279911765269127958163306433825838404341596689375414136172696118796921233130421983128610969023279919161493251113018702819209709049583469155635938909031060817413794153362223540232113300046108300642320074306022747311622783886041911579900991677201190973475206102535628967567412378542250883316355653438912256726621705925516396921810582118109989388601847188598897837632887850494014441624632918693967775803151772337191684455554701268503787177205859030862171002135882699280276000260214096232240971480418415792569737713891352596857836702914292438786692824023498178417230302608892235065816089996594404135267676043017244040395561179878936832266892292747688514033333066360211238190624474419466811840999145307834053829579831879975447705955591989648852133381970906834644625339322856077258202954353993511172437786182694544976944583738364405257293657244962065147661576627604015467958795380017823001766239768460611707225384657615136871497278022849385734226130196385890661113579793647519955004489940398782354161110224807278348417209974429901795062010359821838499362215067388027931134521538155703533253762411820035189543050088256443477925516189466334332488592416480663732639612163223952262749838274453924335397906539560139651224319396091260165648295634314698045486545229698197218665171875877336566184039294888626637127928617033291851298613647202999414348522347765396502256039115141080611913348487396092186389070095386104250281265622567073724194922627664504860943478927889521806433446985194899228178318857610556260634326377176030022827958250881125329814734983463391924987283719038277261622671371146292997609377949902428520491418422886784134532929828896942218735568747003821509649531126674747208513482865511140931977533910825384077906727931326913064240498547508996804189070566933489872787558758104223014211498088496897885523646400400015275060623791527792053760738434346354650137307277530429820274673598717863928636850998124530292527780210216253506743624599858054071583131435655331626890584372372838928927194428702768669755814182481862036028316528123507011517990328508804341335349764173242370867665437367163620033951562433582040673210478442467797876729281160898974241131096254784246956868565910350484450553829791096358108481159714438927359691888363020508120071300792449193421056833705732019093661430695336784735348862533892890664162769344323580685108931678242087014727114334133671382089342875309836055074176604874898835736769089868382739811715879882322307479937912584797757107096122402426335015175714545189927377075156197795094885956955514507199158236596389532540116181042840065792537451174415792590873753093658481102006518694760430406412314161093605876875485846808254547314086935006119341449947441259920726093078517162865795348068998325445504650301662091889464804486071241006526067931896555232394802427200400780568870538898805700847689443691570555043064719540495455544171976557889885285685928057829974506361680074182775931412415607929574081626659840319305535778264238087572387352408165792479483854200654415655509494621805299373516673880581159560947688700691757685334617341945067199677181785731111331764110322735458532062660105262232238668221931539517663959643394362753577034399425846955645303162908941242144895386898483158260556365634879038948724808050493134400460972180888280544966601346989893850356560964744998080643584134868726685526108940416879542009140980604554576750835433395142299757497560701263646079531697823486169004132047916904409835099182754754317942287956666460786352015435117192328511697028535913753601049649915152907303495087424258473457973767939624818026026241011392159830894494339134420988275735743188954711117495644221854275977708108238896131810229933562440127790416569667440225742553242395383301390567213479144193861675627280753568042180047989971405948745479361534052005942469435040947542454700631148473097739362018298354494995905320321558957160747381677936207745685636541806365959881775164874612069005043541423220159741808498247041428895497355978649923984468740340116710306047264405219787118362234386368906551033438792547326066293978051998862344065110533134565213450335617823916490862667060082121075358748673327010995541782913572694505338850087828970344939819918711357605092438209106317480062785058717270189710550109140782665671252531647245001657010574612877954735790533161160190931448107951538907211412172339586503636999651280302328426864976172062553740511033520101620694176166212915855844557142019365983720939402773928477252042870739223965345272967767113603572652551316705406639575668084787324297851103154985522905914048351679231666602278365211267261784053226640474128210316262303765126325253496725860225797224505906418040369360015771036824657448180389180305323444920105494427625253472860847268103387971650688258774990333599636781148235666658504369432586632052956902753694870878751310800821762953722322223629772132980777696110199136517659095998760477994452360046855362702636125553523955952911866386654075376841337318246177024306109436565535863829803410054692245271060180099958072754931270872569863758029450216459097099130910844556744341279641736779176302850874331999702877886106703991215769497298329084357802022444694144668668515495008997778014222890956924709715980246378090711755016155231275692425822322011886544642554552552268238746192899108763671509289618073879046032773423735377405309406057679050789056242956787925909624869194166289269965793570968715156621082720076786427700806220553177021836208898639488795077932704769879351270117143524591005415649664164979951500295482230838925775799150853434667859835611666655545506665912408058607142189321491001991299125821177393711320224227683641219645309738951191396274776513204566013596460517792115382206394930483729484540072903670750669751902470941416041106034672521583297850788184915280400076245798215209139997229134570569418914790070365100026389249615579076490735067384377760307797205752548249302661043376311690249360188937991279750996731714926412882103299233311470962098171367318849598951965270401560015846483710015052276192457336295493806537332301831067883776428967440612831850119190728589280990886950658342213492185749996431688109271551639189485628034666282993223325171297062242075543069052152508383094015219351611893704324160678027773300610899261212751811484717452129678255210488311722772629550745720602969541357452592121912162454559683957000381653899286125485857276446379850503372752539789023169012208848570833613851284126101995004957736620703094577558577769373343130672985053441329097290697832651537861864348365258406516142889697529057473970158385785174000413692856718667620122421768588721638848929174488192979793743578627890820807772601511070760598518405056366188518328797994309519282637157790343135734311219290477598360326975612274040759276197938042485924740310559409942988948464440220503503713414755028737959630903407504572702040554979542792627070071882142069408306843890466649319970313754471425254963549329638271933396414076606065395331362044042145873934937965066451944734208982646752489364864106324631096828675467113832632302684633990895297053683118779119841466888904809918992913704402787363013421666654624806565006010278424056735378869342168565210954652967865915808035855972961751271989556785810036708858021199569053518177813338350290780594202669997626703071288035333733790213051412548677223229497839895959830111589844845983235571978754491183383909889619100243358889213542014411368174557435786403677295324481411419685792691187832304165180591944388847965040632197577534347981448431193317290450189221884369607329185842967337215601694339653866203217821914467375307229310544519318656488725786372864399634200459617498752892399648713831233854898869578659662950947472682208579657188980488072322250949340992435346521695031288008375698952367000312017185760381104325696839163023140631207386305883188432625870361633903232369624294892721679598437458126597637957982736752805340355701410745201899710187433985370926890011495710336047366951617679084351273900243228146557990586276739917017839537059301967194912314805574860742144076525646242875134821201058530601630401189684881300481405271901117551959719918541477614505181234560909526388155353284893826690263456416634406907423024154922741076942062348899163673310473956321246192542463951514233301477474128707914227362515719873082947917236185098412393792179996867677259097433501161966673967358519021572403042643781875779662763648893560800475795373298922880249213347397111356269895880575732534939984094585147930941345137766994946396145422537314457435784551530920351082496888627285108124704644865353279804480367448046492099048126575004127703862120517722883325062779882704303240570095729916468578624856315669597791019075990123192850429145879497282213359204366593354447991350772623101545169382052387974571778827629081472842506984654672462597210764243689652388259943886453958042539683267368454418420332392649318654084900071412851205614543913471449609406879771152226053382933351105752123494858011136071345806495923284151663643489677210935431719857419541772848954454165709592164700784202851964702031551367812968414103740257988174873459384592452880771359431789086942367138349978941730878412854095648851789360297941957199966538390236425729402802859747941739132806887174657530582617185457651295089529437068769962844828094007419651577340581279455493635018027957011696917833892387229437417363572094374624912908477115245561673567911340473370419473838380893646729279071154411476013551805996387887267488120250748605806335024034485506575635820933050603943128041604501509912216575819229098539060861691502292779578354710321085267204240915858309849775575402390330182009147094825051446998212763157218590369571460994607225155779662025146935304470232948136590757804584479255204567820201964198628619320892562205611911039365201999416778680206106283365947124187585794364057537163366534950364200798589501735032304870935921637068143149101417018069106499599135753908938386561660356833117013677051567995035029197070606027065938705264874996494550777994530157821291455562438634384906877514936570155648163000372433367857706175216125335641241634999941011811086891007727417309852628450725368825561904882673006925144410509312790652382362801794388338463557432545655171350837023970478249810946614232533989993196438195647647042056192397285847691693465665482018919771011838553397423977816540895522582678709437157595580881506939229516226104955951077221245410943689451982035655145123349884874777854188117601198202968819648733371390387460563489944191192956729206029057803781237043306626397855372045869382954488549034801623142544629692049242029435983435294783179991197016096073709946800800566303044457490912730335614309415809072103134683926963053041201461445583710020470789675263134849159418409566963101275025113122306760601677692862719772342638987696567500828103514483704958460383839492759089825454943921856093030899601453319046936525526600579286214414142606743424945831339400692477549261738441787453570706820534380979341668876734819413144922732734373682011506021293319973769785757277391200033785941797325883352168725299082479535978335602002370910922709966435798687412741028564328550945879262179955748113655341198368128573898835817506086220913318458684459214545517690510198258646244882080726212190746944399001518481816089139624405633501442864181149258818565396066319718259586923785606656252463754239750498329358124042012318011665335222978638577376298944517989698063296250840002359795189912715611855660524955791234828831550438546540155069618757976719129694580021824195550750683978932429994868607993781857401717502489761838070675930764203193827474243167538912506003739963773290550314273646057596951446375797207159806924600729642539100616515631526546897994695242090447526947450924689087973157285199284491213810570002242378242375832289349152091137810913333894317060242130203787963031430642768540989787234978025888644598482239923777193450610575181277246565404413932940511491602422360137553991767163497383482214778736144529467957423375324238532059970273766623431763974666186660939460680555528460664085270198356447479821935710491793207250608229608564780684331363602302197434579756870930698680729959759928068128376960690061373019794653643042599779601830730876411596368280277987676396284197167640283833645074467416325989397181790603054568940119980942482012893541545296262041179020423497582381362894553439657431290179555277896656320961740798225070237580443364599331759364542311660793231328136526660956738116726730881940375458061204007303958077434931636830322244708945007283803208325108768545011914205878131090922307399728992177326448298964479369923938005058368462130019253516643868882213591023948636062099764957115974193897577236628931138544345079324593328478802277158506204204170034423523824009348808102245969976399393799554217662927294921450136493932172067557057349187101530003973273255979262754665077272777206130347529169168798248010405329921740783113994995894940293299920421760950042154614025930931926879727955098499017970653342410028828326157750344299579251204283983202433591722570460921667501076006093596791231887107222477375262431797602089552821523219168606784980078436004607496085583188329661227700507529297054229328796906125123960124042973474130571040633369581319218146251921770107703630555813582314654182440418389671435436901381952197826085976838806729015925166148674593784483065785766160189650517953556683272016926808499767153237343709464005532199984554731232208656927080705375341093401751310868293614697569365312978208623317865730370551048569518806350471697811306991396144825886326554214022066012790980201120430858967279997519939611026505704981154198070181195911411546581826157426574920241021387902755201531939190830249153119829627458408825344526068156857912367715164276758394705582292175544998558968022674895108015896014514325797299617144669549937753526936859502058260253867589540091701076866095203341638684736217538979061186350996657220564443037936001741462402995027814593276648575692084324851988659574770963688742781778424962797601768028833279559017090348689004599929660585290367414147799523326084788760965652222609255457257948505229098497687525435994428166354163273428393562642027401643686719706415285998848919701089969034770929167260330512705426027165023448915999375284078938182231549778519137030502903680465988461929284625031610388552086745338955249141708485610907547024018183464580078329486937492898418331410737408718832511895510205197333737585319453977803725546285392048166705879976154390250017333031367194280576917117840957608115722982304250152104442466116054042798946966201084464673703122301346963196791101773644939695996673046505801433591885478464716102011037990746393602137867088615949362419645923195032029014440586472321691715567903636587625548629125406411117294200742526606924049910332643391260059654368941786222567048055090492773109501995676073856983048233867219192267137200299693852167353976444344850799189074270208294795904330420455690279461642061985032483318910983341920882896934408387112446061205343999925561384298307365191588292847189853759309605770004379781085015402360503261114294316618844719655872761456436175866359827922610565238102658826382405607474727939916998372141542544898249258217237421291243016161670934369146721882112594672902858375565551129777446703174412778459206526711544821355335315488492134420991089120386065797139217615171815633540670073700977111271933594130682596799367779475192375409092990949962777976194431982112993741197762630417576171874132033071567600956047282617158982089980899678976856004074028152103291009587654794647436454248026825717512999542175159880935599445884623365739809537133732871503913796276530041008596042476507518900516643080926068758896746151006910339415727842228253552562566115064100496643506213146702190021615259645793242453411382946387794856619836254174198420249252702313842547152994749101721795475175549555475987690620686757630429570975217070568870471856453198330454332421079501310113868567061668573908688278875241438512620610069615788749936153920520530056534542662189444116657719443703715223940072196652705183506320102725022719798869816329974879255018826590839410129616310304391971590874024690001390618201972834801072260936053882908265283065066733469171945951657309787142757690361359156993437662477082515219004213309123640800694008489878709969360301183032917437561954859968575480444361136684738113600209095087787695943036949901200303831006336207370531899955020236337764994992483807342350354824072012693429129723889924054280323499622847351741403900394011922300839465052309528209342487770904603573891245478922708199291008541159366529800712650220623632523336226252393693118264934740544012253452006872354407873325002630136344971969922187452423020332910190927519231614155919317569867533340292978289523113702118021001266089453148164279188131875825973435728965945491078906167268187359603838023180257336746849701234010004652928645440465190276744022342475275163407336030627375321783664895807393320970394906749613621250978367315743080609548097324566207084145539311037184711920390655962691035277522601893656336553680077394044842767995158709173974525250537349783844131748038951740713976953510072977135416411894919215326789541173731969420726387065338760864228868554184472390386002216276986834768366073079273592624218271021718553138211019091800160152687910872362003026026926835520955376190876440111352372706718508865742327685870314185896030001673895100506286518727206417460633100697229047621257547911727986655191186848210309299623018268200508771479886736790529058202578109508001537485549669976147264130133846506621545764435413184064817348074497588403445232356829601019305280745687911851630887131634164115838687993170870727012493802070199961684101787433318558300885764540490552849070782667623037191574896536280231829045662273571364414256867995896199776126528950031726490131260168500460794957299507357365176286585791874184155551686301778288689427317811788522107343244086675260083841355340620824340424674720646540112160901618324860331564505287931023769692289402997609126211289146152075306493042771431528975407053222537459450631623206714257093094924581159834218817770954180685447398317089732380207844968982629684798851309525260018802891362996980289372441164029748307939273177143731291100761441606275435142460472701036810333409156415680437202632207830057433458576843927331045918530837003250361877480377951558106504736368825397198398266151177957507961177692670473563115188731445907808218677879591211093352539336478803942046081561636403624132350850022347038319238775521907234171354819472275550281023821861025905773994339394951115532157611954343964984399686279486905898176089987727740298008864230935140458330418763855577240724302023315920854385396157029258135752928302060984010769724739392321711274209645933034544436611179199348109712821559911148452499950295679980587952491866400590404515549017525102784805403760615616676941244466881616544640766593587091509329099700396205920103407105017740947505961014243457073686875227879680722862108635957221745250001305326219975010501576736209828677985323516034412444976162405906493978818052710001268861459924256251373375284790346879620541026005279938209597936517080993644667274277274106646245525390286699219124691877154006774890572169369989418097930896922776859425184589572760698023372079872957386838168261816862635607550050256311350415225686813586944275512415441204450960846469347308985968812557366569055947860231941747189583176372441434894973552922314169635553247396268141009057164530526107550073004732554631809849139914412726778154117436048742861248798674318206753872873313730445310610686261824921606371892539896518732009293587633415112405991355002670743653716169228934952944892104793529525879403814052319864259609891273302544577219475368663253804131834892277849107102375411605797427287318993757398229229931390465702014401896783346516772120878711065398448662683841923650724216356365104372910265852511748249152850269001916845521646897323890574407496736998968668664541242000976095280133295273427557456515838216913376674654229714254219031790362408682728480622035003135780352966258900817683139904716442424362118066282753971038007483482981860587244441643342023111072884416811080368159609902581855331892979421300712102940180501455529650399983715733852734623529648619664908520438399821962711494266028910270796463844722562678744800437485552050870643137043606170526536826863220418657345497141213438782182428062126195528228613198710566509880816794670042643188274502208313104425968810207895007174660985716488626609610911978852099247830665184490650321665488698466177711498981021158391096572281766571806707252575055965691235500058932784076531220643869354120240489266174408314640704778744891640735882796307663046824983756843524292880820789566821662251977980849014032890525277448180078957275509790252155322375900793911079737294017849079829343831694506007235106585792923039900035709343391734180191865179256708154825396582888464406395679923791008910607241691680331091270002726446813575231048826706329801384135423407313284091181988369239151055603436484526763909124950503100889770656525192866681153506346405172837406307243935172389639589849255692466803002279249378667696367933169641486674187165886354454089894117720592198969984063254824449296194170558805121670034858414389581624286380609037692514540261641620702830648723888063681982343551250303347960126501946193429735830925142736754757647716277620385190715855414772330842402983342515403020712417742990243205712842285271735520980016775082163375244040878785628165037398207550008132689671513888850359443326687809052398128389014248779886245471058373178699839672398298570156528460286962116518645559294866367202061124796960836439190558222647292185347197066080890607239653092601527794501378425013594906105711670099270206671243087361554859386705273371783148341893728428194190456133005444849583581755654512255483149627044619419082768796165420365365011567712517060085588986238709739162215650242393217115616211471987010192887796859129131925602567278287428451661904256967681087817173976599125569562735002477628049350707314813289237495143855358009651382166543197403407448130957253882014894819294822922053665359372768106751236442790778747843806258437110110404178968442384815448408009932200493190000920196264276937182613529189539212698347840054612074567588311630790847138200518455113674395045054162544554553363495923606190516146374346900158020111674311765533571798855250297027811966271010155727135866242122086868541656669830064179958472042216362144548887155042240661321242630465905013061995354814317331465876873551923067135811805636295586447710138922182389778597925441028850161936597129025842362766169371702367671782338191302227635154817347776418080662450345618971804649502801743776967019289820959722599122042335274347070233800812210181795876672566372066076277833860033402735234209914959511557584962459859666713564547288991670241119127416916786547856881509170446859486551681349076549625364101022024418992249014583847295257949249652869023004351560392272963377960225554157911597770963365561800898444989097574337473223210376487234990118552808382709579733622651787998754775646228423151671659368357469127114060535159955018400035056980924377770754386175722175369996737673198913158068120079166935941410307203414547633859145015698664339265693437513460702230293573960545326169360267424122930780195420867780959935788488047590168234234216824605181044284131859943061843237648695581604471948931027503133083735064945431076244706031865776973724993618131225770700879121358673308944487342213267045261134156690152677571555864408780944344900292401916041994467853724401448394486887269534084973380411398516006410497335752225169675067443378969471276148712991602479515777071004744063867241421721107918768629198990900587946551384255099398943754894170253000421010906071210111606789132404998747905648824096812678269180924874425192461241902105725929016878083645731916353095637536779240519726826495058346170441180205006480413916065641895525348783178640685822450149485473409050351026308240959746854299766462223927618526466735593797879549743320965739578826693083625623161037107556158094223273110160457455270793699843881992247057620753903634989189201426162865384502233886579910488445273780065936400737101436951055324543732845351088956688728793056149137640199300186461409249939673747936371263134487770159351755017109205445876856880665938033749458433476488267693875086978738019435084654163225048147757929890846664970473153516285410866866341340505374999042870979096698888937258594213587375913044366323111869608346589882210120263381662830302783899880404834268600684722709494497376297791102862027283065931650127195118873514447843574084936081997632582907117661572689717157248845806545430120335481391904101160979802253671670566707593889934445999164389103153234141816896430262136803427287527881593376271435964687276877645079494426591736780917429918050866762529757679118782295254107724415339822431192511458300962773994138334052278608142382471873352770102345473392997191090228530058679469555136944844713548676787908897858212833472181269918207270759768417336106706511753794690587372003498382724656060020636364529066222899355197685711636067952029911721300466717214740671469453874978353829273474887285568209216240327781456774043971552322757041484839173278222378244276129235516721440880419058524644878161359453456155731821371241945754855631182431727858917109978049174802470977333876541227388949411506574737844226739607400172021928834882017966597243192645496427247279352638733477779627415930187048820721826821870225266983962906004032099057903591400031148000292949975658922679028946085375405825986571409178123227621770229033072021585502178632389032488307537526761589259994547873604712224959357795276475248004940545006642732488235593887422105600044932810566174884270153012845440102652231017703305823137798059336828697503123322120152188058272395932315523073068904318343052338471851412781142397970544771153186521580593044618998436328748163605010111964457246793702119344492332840424776087551214280576099559458507814623380807383401499332630810656009445259660773705237667631369846092033599284356902406669973639852030364690983524148729988673232729685646234519984482404089864037562322538980838821484590257311465189723678800181050311338919748973244144157476480311088872842604999558638747433639299910623399532839095177383942962448755455269891302457537415533017125599064524429319372857366636816404539632166384737019221690930745011285666280995070561663257846679279610612742967385654798964329236253752083541002889496168326604087677213068810107367224049757761607006112268354287633776022224604478433518548869697818620680936414767544262859950942828823831898730688655851269969662752453175899854963662806270782690067646808965732408259283454571815867741108799068575512845481396566879681167176516223928307811026596579115833602419984544926709322354997944914951923091298145109940903576357245092222389605610343772350024202663405022743419484907853601236323571744908341631609544440099653410839655826534919607423678791559541009592844798121348553067916598979234503975898429562043311629814981048877207106882295447509551116772407252894406674993548957287386700630058440810874068722626049240721886722197346050334033806191615024190637498069492196267512472990291354985306754184279997746014182822733604628864246305889419650509791010957667154912955939766754774103014256990465401034127801224540227074772560322066183592488728579714566817310135871981822587960813009083762267433566560773490138765790781235695693483309275253565649302703842179286931399407190321863215683347758653206744115572913417016285831856632074765137126227257304211152113640285807613656220358360761771582923271615664491153720598023399667596448759683533117711748143861722245810077031965096591553190271513897569475671708300688836587182921356540709509681108906278000932791557948797796559554024872512684984555091306928987595288859547051561646829860358709860419868040915018170600318486798287350018420512217420559133352063353675395173734403322605294026561126981686499167023066891896289801728880732703719016621974628804201603071617074519956328424848305102322966054530011749440803031503439749871764955373806437988892621417372326167503392236701537140945619424144452508012452624414948729306565432809434846743824992865733707240435552301862967531742008450940300156396576135435751217680536660970429143332359892109147326390084970319904040796871294431803639815091244357943544178245651033421056094403312859904468271083273636202684383831237534073612539722462044438651965017653265162229789919861654189976620686314053298277602694639376883219817005925202346210232350080539339780478969068730352404594521522018269167372887125290565844150368396361538131093770187617898476234576401227970529614474356991752407187750035865436762210747819788636205877959884916956669100042030243171376678696689068046818830493391549956198997610613125206807548815379214465015532549640846913160963891475502893312948434660657751837328735580393187341164807632737932056700070356035320151265013007475286300743012863453412872865711041083607443499693828151683604973757999672584824862033131930864845554885932681700475715690200300879761304278244399521948286836825168926270922177339450504075939392687978616279138571127132900272629092976918603686068173290879279951618951077133419576917744524328013807313235882039093484433863055775343851662974850508572028186922136710869802668016038542493247311015953875184320180846341165601521026857781276755557863075115118715819291532247130990261343954886816994803613523119090694273377274815669958728974343572521355416693005667883751034855156996135813122986585013192115299926559540577130318312777337267865913123154640951289442474260581170798341505159968284445621618388312600195645240820220825852681579172325770471762836322278604871268134834078416265687651643841320894548819186542297611054169750423410351194270207813932304096168064637181648520873388595043518545976145567174138956934581178641937790192085611826832311715211159066084831284070775784134088098251604380747394555927609271544942552123573857755534187857368137967965908534855891724992253655779422409260874316202068874973894093470552921726354350062243367078000860573212617347756725925635950682913494650776076938637612555414124959974123618012762703722146929998202854399070669641020935468693745385095625708550168372988961838919931614807977062022145446189374727242691073925778870803221295194997495523794273395951896820925730702839336200385019839656730056277853157582491267802836443350943105516916784003017682024826983247925133291216938446124317180838019683290790240787575436276605262750567124249474860291188070464180814276537378957067621497985593192651460996470835551779442291700120125056412966900640075383626770531994258513576513643919352059093663618691287058345612682788035007291381007132518730965498263112302187532508237973101182410574726516229841378324256933201258946265744222626548549260062218457903388730160566961838742817607266234405145239566223116670283205730668961545405455986752707792394660441011156228567190688926656727314531236206006931016076501937033467099600225035048196900610569603258591126001355210977696820861839969940282409864593431629421600522245734514541319940488955950298736485295901247035961933985789141532185142630741629133095078276428899770944522550213133408186082004259294265453441003682891411865773258913873571626667875415600634588695039989007164550368241535714404393357407618320435735747512449220424248044303376486529150324316695045217431051380345960127909294834518179073286256972298976418630540886034645136984690371638501496995752456404766136804958554502475039781718606649843197235950414339845411474790484051284316271313993241765188020492793094696837106186545206986512731225468858930828538806932229988429649089126455412060424641308131549772120665322859053184417852791755373890903872033752179626503924066790258074197675254279609603063783018208161994356083475659733671139875507780339544726476847946054607263703679780856244123458454027493481422780803578022497848091252679241006193442213895996135800853928126017989646413323942348951169017630276918488670797734272696174534374744020855184950027760910275145936975212934332606923052525024035951044046227849022891300999172595237798214100233375718399797429570085451823260659295328390867453738503408849266396682453358709396034123154729126176646539313316027022898499882654762983762538060017194097653802846751967772662311107411682459016396716342565698507970717305042518106743818731097778895175115072398087728847800661781483778288465300977138825111966310543403821802870880373200737020121535571774569370708190542189248573101513315729947268484540481212568520426063931190246107191411414699821836505142814584849126892983833032397610094186051900305465092555179391981884456101955706254906222441197255741742809900635925530909390236928573089796624950164380652998345279673060153147975495665307333383259777036641281722973398770888741703003204217681500214682122214576693525632179990586079836963475955306862471888044571253223205668456760560450136638649870429995068225429113162661484218360070095670571033168804037855885632643958340966693775449215019169474101291250039933103272973755596197056493378034116326716805946459630232412097452232229525979444050571382164442153052422601239069336961611875767228992653752325196232705117368001816847730631446462729356962144630880389357947111353988649264748407180678628241624693417761617458179509653276122567099077933566525241352105900978033285917025175385316229449094882220934406260769984281316166450991064655193305150188806414933371453606440880598791200446076705804490026311446395173406714792549179120300801672518064764160256516112678414746077377455249805424343606394750541420364108036115051689345545159926543759223326675880077485363503111375837753993377883430464493006332863881198070022797660378401143689723837094854147977887573540297894410671692073403561593831097982980188313517335314914070324572665673131000779041164438780583075366162191116926884928469471993127885466235661600355691334626310373300745646839724991530775425656935654249704177949084342614042930132632845851164379429594567834693055124827462325075736901316541568502208154588591362541447807328022044595442220524020955650149296226553645848265275120109256319113310708816835803381330232235911417313659364690782030240565122073224497824542028148997750969842671537077262062514548878156001475604889072866521922150810611068132553052812365289798774983767477306991497198351717068499889798262985576009158413011564892243891319212132966055673515833648049855152446017008226392472299384331788230948743826660928420256587485774109209269166834557592427504719806940802111902610872756051917648207518583914123115280127341898476466070723897305067668833740422845918292001963747966419000224272938104771497727664155764782939376760329216095593587159316779243263150716460503424436197652849308158825445197769133184884551144134346171301110468150696416015036157738320323263118697221771403511667546505326751177086785733273717648026626634156450770513357255567762008968240954230973281219839229559220905516057202082424124667885702368733078495464830419044148151794609663807494550062180385719830728193921282133720083566820619641394423259255208520278329175122862021713233640878992805993647650922244085261945218433213894046125544113942297437785429942757791962380001586206083125109261786461739183682095608381598896734724132921704946658062818610817626335037707156673748053772991862415346573841495642806913991785591095507793585681097770658020392243942209493712149883628506318085571493366290124858480048602292554795796160831313261685223764246157055755653240995751955606759372619006805729830667637102791666777709325700758435353896182790985185780914298988726408672637284913028475318317940686080872213949188103164011226165624678280609771336649934932547791944188163417039668767665830663783572256886781565666708173747976310219717151276238607981251939649171444181543395106208882676056663776403544720300718401543187786272938806203306261083046458339665937597699594864347482163571850595463477219263195730612472920115502781181491322733567381607111368334927956010427653686067543731689361349124350514043038337437084447267152421715194589693362097575559512202412372821481698609856355681767137705521901792762010067669652919828340492426295585851270371783730691225913561994033350366989663670557428462093729553641722766214582339174529643305707340675747359239944299288007589843398689776085368537545990048642487991033431881000832224442715609212578845421657971456390918224782143178047128536974808515572273359021962218046671942921359834856289009232986846750348640090062060724500502369679623961856776634876403852082285603337629888965540567605766478506046485623008420831195203308994573904619771179299466001938523184782882055932697981703004812702228573450350907999538292015961500428141498155561157889545426976341124509600872171423797527521027495522799643967870180758269759542705542933967745794388379742621243292885191607413121395827426439324135505634644817379234287462630027940403924654099666196415214984583216396191327021533577563817403452485582054735258482465263733852640063791918044293988767759943378831872277931531229277814952065172881171700272239758736450579786299114332062591398765225662338854037390655335478212941340759935032515645386757215515451363055931314906158963020848182720760076681691660640407046169751853488581016415791736438591130536978889087843954257499649337446051815713509118002872410972743082999777044651686694409800695413837453181911115259208696284803432664879692595546034358322132199201718766027388069155364397968028508460935351140085365739081220811034098957600243769387729918046300865415735501167411845351550218485341261711455899706317396779111434681626641074481448803798819704236757579404953004169189581367450547151478980035039178507396334923628768709965644124478251001941466120293356462165033211288235811068890550270380436244853639531974623625212516560746356343500894085359580901895244917803861833954325733682540667717879530249059463398076717764757309031405443402129723271933842678355908218444130377193004865152823158748920446109473793648541441584223927567361401999259079112535252600120183886402066153689787607388685301027911021198406513158435348033011107260675280238266494364277816095761624011906600291814597383908337147765996606251997134908879757136300432329994240326723945979509759029293262264163851944285794182186642100927236195759433651338609848602234810620190056386235724005635934446465070391271299167897371701482688208925986786144878015231699416530751430759453019497218719698828081255844998129984443238481619655533676484509357840693110882093897895473681671689372205840858516424700587436075249004873047335685101214007675001409491552096024722626030338711124946205604898633537546282449627006762306703427228472534242626665125539654006252647475541672570143456900617397925400054935868386782797829224305749318131336257207031685267656310235658568543023037664464265627915570879349122310989095963292863836967045016032378620649958949940821254151930921415087638355757516570002254123423390037891351615510089562647435540567767953755801728151761262838827334654177289828229303903682671682187858909188791901384779606519218844865552579018335168913483083529632545310751825314512929451503146820320070284505490071390729623847812792412125326408426040775352943357943644001626867079871876050315139554489128038239947208809601422532353827834430390876632931810792807743224568576179789138317382010363995524433392733186535357565491434756216619823645127313625581393329055169796855288270262618515783936801583246988637986197891494933604242814302724123008270706303031713131275618468757750863214647643997452903650149839350608401110917541767026646743273086691592474221109624238470320739797537006720716192564914727504462563719887118123274041123453611668220432783386594640004769048509179099574805749883024480252494117440564480657481919673199110549159818044119825741378246438681777961346919063040890660662626824717159679202940993491628179037157479438262611629386850283626919534262359055168671793441165988650913784854659800508405275716653798023717242859150006849823587284062274238871532974524135042490515209366963287922119687485646001512879430977277734720076403625520383257980180924857925425169614807660565254462670274855792841878726793584218490135665442735689002228115770793053217466791493345426761553890522700321297680009651590594842966872500161961864654788170199728143327343439594987572606430121026787036238624274837547544347439877827781560200301219054999725894242709683254282238691113640655995369395551719079486515549039707049857640425617996978749074009056618563378409385984111276565685113835958599140399186141350823108324226644834348103856797122329009525151379566485492122910064982353034284264152900693529566626795860726017073850158630463445437565037861978019515888034665172461528070346563378599346716586781774688214318756919043571808764612647661254355012340896081617180582869496256160257837184984609608037792641337265270512731530831976548316262118458322438832275721266579606219911738431693953070481539904181241788975671588306144080797620317373035695189204665772424959484034980128625212227289065140679376506794352767285813634706698209459775924917039309388216939326147300097230365130222493871365671750069019913909102054609938219921864170054825071235358496473367698560544543614304379253925373357531787157130002551705553558596307093676722921480508796978664136559871528127866719419896914220029178896380089295846465144442708394188786783706737539811284151522215540426858463754077729212539348815612903335232044443904310371078889087129022161777185510575949533003734500382443351877256973296988275519720387341461377774457149985837801788312798050989877492121618524167533621438478308100860655980505816575098463646736777300685983144207693007206953046553168344729669509888560405127363723625898324382365388987051634517693846053911335993651250216144577876321293488734271356095974073270549124440673135985012474252816976066013472082565195619302299123003006480892523294553939570494606498199137517554130471157060973480894623675193324431013066590694691749155183195883181285904460388064972169001940808949301274415008756494400614291067031735715152742690780324613102533695428547337137552611199524458840118391829199826731403651571990536329359885784636630039183059214916205748448135267707720784720128683165464295988969004522497057132210822763788659113319894381670459979558877428362725378701572719516309027726415981322529175231577577251576579502998293777173898145663964240406346047080336399595271563079577764894224509173201465186264785585125834233565686343226941977008665050810297201809477449525908640469801405533066141553552282700948252204331166248175624738954122157830950844469959285457534812214889492498241094214403441860448120306138594461850890247401398655349225072406378262504580351890754643614806611493468495100295585313901993163072766010239809876534519456857885986772008361397647429015595018555142597961340466647281240501180233482433937502899788471672031589638645689513591772628116731694192578960518775014524214044124459119877260592032076107762960193378363625524174609309003254204299124562029376535173537417247827297739913235197589258554943280777095834394804737772099479390600640170917805146370582728788463936383170390680637736497939317247064783848045422311505980789444158771863866275652855769143516022244105416961137285349878825608946726146157084407378359261778340846926413044876367382808636196710139549714684091224482793656120308794420785756653311096305293874716465044902142240118264023369684478840803159677107516807777177323956129961703908974207594732322774631872718702018694740533623068862098218091936818119021727464704042950647376090741604200659219119253434739244073832090109575511967415540279837484284341944237907746470126259356272361798062060577401132419901849970474945622005425118910210082630891233807735761960453383260255965648442081593011431943496874582791942022970294337325307128059750449932444195691844632855600406970814785084042370960599379500323659068754878115373008897066172972013943924773564253905243668946321041309072225290885621833417208274914850885005295027899263200197121950201436291856933095144050310972191296489638331404279374726812917134733150415666302448384843158360509830796752113307859207508907348377298397867447342170354093404033839790789473262929721978146001650704025834218643043878603504136011730713341013177067757146887940469414727602960254854911962961640874591639639064995710378420237066367474687493548671792163029723717228408913869320432766529701226966441418990675336039274183938244040710751436056881385482883456307980698757544811589247496092617287713660192887417128297998330342916197553184451078358181870741179447422496739086423401904020601405858852720971743770934318604328087607281440066873807877194157435163887936283882133444399062082547766743752578378534904216170339717795677780167863921365442967740890344325318947457407477854841690390559673100589479331475026306877933800244325818884178931448376310514506529551421588190158987855049667590125842759583180890169532416232846170143776354992252726385732316082588655489159770848067612276019209689958462893148238808185379202320061796513660415984210358368653497837115463376528556790845463978958691791199632424375144329081627670221277944596206735752213549153726230222059005925070790941680297204751845214718710868906718304112343431335994934209947770180957100691919329100670500779181162609237182403824567309732712943880009873609394915419019382879074402740717602690654664446681629759246589754985427298158199174010527716586395300872250456376013263803410359262290594620930435018831946006205592058182504716309572294342368745283004874998092525650608383809616432407572739312799461171485814718555374147207428197464471686206554971830769449142789374403107154793009319167392303400277838275847896209624670793005215860415002052264223002668368209538974276523385910624781184996277557955731279395342666634414773889071986248164580901684186320384832820755212312516295144788339746555936544904410542930793752840522110339667827519899354888870534814566962537320081569631446448592443144947631963478632616773976948464351609921784035288668446571516673000257491169550387243885052710271285732507011589480497669627588574886516648555661594536048561206213412454551328937590027143788296416110561625176492556510848629280004646378597068426011783641905919457191560833358017098998284270381471016477383694331379055579826803408467963544403665674837414439168888036834058944557742324714184590081184005302272516901837916145504368138905719098508833129760738364032209099518931868662380741364381353754801177181681878074989541957791304457369357495038406805956728701499509089157261259964244188470088265184039983833601905028974324685643614117011289592791984414119956356286372565436940262590130251526104275069634049747594726502950781756973075519993531039785498979878851492574075933649979447179075694848753286852390774447036493179527114669211042367001741740121575543811353288654858051710006962251260543994077408834036791118024724137285566887346112561827645433872224268284374699954994822529438855949881758075436157389720386796023516671474665571187256803508649228766290491749343448038901044790016071918552716701996028462498106737256434073600177305971394312277966937321699801777298037000644055242277710631880694069605632851842750729398548316408101415291305191454391774687902872949363314101484539771009120368516530182024463603811461708922958756210796611056661612824934026051496904564956669342399271712961419177585477380771417890568080640899869185649666191590173793806969267882345350572771703636620189568402954123724654900509504211198028194237292958998660742977828623402298822069775669882573438729310000418482326498264138208135246490074708780843452760090877751466429660675595329927335750777238025727048975625611930499939635341959735032911591514697511980539965525885050495721119117746183616859885693813033302522535516626413024003444333249738915196511539977801384785498507701742131548087126936825399649685739001262978298966647538851121915422221487057428387472254306600397598859573113309832270828459588282654424246745270495119043377033536873542027729017918945200248724972720927271608997174068276012311394399765529409803686800663481392309858035693625586741070573562589620132560567812964685386172553122220361455335831236736444638309365739748115569147210473915692284834570808492987993888222728053624569876302446903797371830777993436094558507605183330387939434369334962323897389164550999719656436228358930851959441083247075811544453209092627440055435672565510198143809991047491082410868874955893155992360267908747253887129508314762791576059297205093971753290563993394798005663125805068555522054581562031298521519975927810961734267707977407606356117261055257735060024321619862116584549210136182913967352431556401692289205497911938581017481592146822711201232158109314049034292925616175931441933799386713198706240731235723311277402666832604888194511663859780624957012167978209598232805949054537133229050763561059811164871562454841615056196309609348799942094868708680106728323167545037708576740338044064939366045272327881555827976263853749325865172944496301934237364966935305137636882646421269222436409370494702635790978764746600785731548579448899409668853926722661086022147363226714028821048568407075140829320021935478833840999022687707187391045640025123514877152159226456337839738829622207610849537918442738873224194932943294586347405989638501548753991398788793275048802908324175381932272038503227925304904229491383637225044001565196447615816038708838329973696131000255294929989962235269491873480748078903030476144282054656670022973047355587072162694441536725774883661832266341825551441761254995271711962476330328938133076931141429979567218265573715534805055860427106591084227934985134072716909410073072185315634590773546650596169250823172431610449497011795267470106784164245732085126747279908487373719477869324230669167862266177633179216556054621952174036796634359750720834613993362708660275756619558938177956047255869286651955586929129690878472582262299400496730217524144470671018620232050554129856284069265260383439249004837089015131867933960763213672379655408076297353358292004365159118508325492751697582590290249955398636136515477198046159309923692278787519332478113775012572480649462408494534429499394545334949270298360054318272281092130368820929508534396723567262537473320857853309874239500934629093494280675527685289079246340981878598779461822540261418627783055177760685546741183286489524652660331071768555745395578664895966899585750787346070841932801525956961227579368798632777965803109677547300632784392091660506986211273014933132819746912474149464518340574738090771698456982090775983583849320455440027843071444569774362210268454794683541473555918540633456474085501242777887718583445671777135042051045365753087280336768233326919951865235763089905542072386748717348202385549334024959034940911584900812018587175679643689157124408578768810235738509978083630118396462544820073011537943467634156577398149580491061871210969600511062784235684564802144443613374522728988477431375699944323859366468607362654916296572879046001648889199944726763362468289545426485746279376021694880205246632909867524635783516716905580180661148773524265501518086416922223031230752818136346416463426823646280491934261151195657148977647073460195412115171224548774125624662964160923299677600849576823617470731877549786987516992739127664096513695316455749747889591854608439900854944186184044343913432652684291180135725145924883362408439067339110813296944776596731049135389557635299630898718379081062575901262784586087658700590937632052804100711537255804636139756024901149870094586525364536659315087831781083197700530756254939600725423805996562821527463686205471136400011562632084364531016050005041800093609386047205171201252959672525673691397848410062656143570080720230841779359780217545253957907050289391489104337612668451557863933440113305450695858915157417322993899824905090412971265927635514723258383321537016992792509663098842935413150220760504220811596615270632513177245813242353372223611707042302419035193738821567314457511306286618580571487554693930735358986591240754569228164402700720250646337150370296077030767717496806917976312176521737206540913101613042306681552503328014602558431253277044811306749238201342092636722233931998095632807079789847328251020342386171501092855138808317886541090747624046327545385271153492113827580207548961136858512228595021286955201264336072208198160654502396430906343474472119574914309831121525509217588246748319986724452020704958715777661997418996871157821540566639157551266984239832225039641513443279939210762522238942852589984285236597230409849185528091070715425781280677131324300955766903601203523567980688569073835180441373735815251247340837888428283709256699739941549415423572844118170188885805750054295085818820375030558757829084316740843793046355641829331445550936316354746896703941353888360221199072170390468996761126882200984254515890090991147549294830891796097737055424234332165326752661330711979467475469671744851509830726867555383042814434417079998678470971469099857880996705581022908246559237928403612251561040875234748074010928329302732278790323166851330157265955641772476873046031933503809419118561278937707177659093899450967604980781295880685511227321464203596012949720760340699133726801319831319773187605989962938870855333645386024110567025383932699058223821247686429627966143647758231317297041299280433491038604751123066162630253274249048108185061396582005465029438658948507997599717286481550248308622138879340527980198411992966319185848068456653020920656890598010061382854523880499173464999442245122416733051422185759468606792328761631707668785132034244121666270063457841063538438101434562873663244385275868636245898502196628654826312446235050918045020057725557807256558362336528311398162538407877516156355138754333990602923935368921374129665499864795033653116841904003021669986083179046400626948044723372964048496597251866635749340515718590247829721976232018669828166549032110158902802885913830777420347032645041930741344336939855300434313214596193933104452780146238971957483365410963225968650968401226432939406788241585494632979827257903923255419201332018314106149913443022459404790587421295509731370453548992543979712647913081235876719177696845791708018249448426578952628886638748085377690451727452105141218287201000172603348477557019821393467254141855489844376614634372864208935348873457606604929397014051510393146108011671416040628781594412220433200721346854053685230721179211392625859185040875677452350682134644510528411373152201160205515920810456362729318826938330030365502143362352840878368766942923069521802058626354038068941743599091599769969290068162381569541527358823392041911488765748473878617958808434657886559188950991871494289800934031108157041574556497952594782241887915463571444303027561743133356126914367883189190318915368405414142262707755772865356408193536849505702468690918968494049950022844151491873334387706091233563932679400510836834989673512359277427719418395714764265284916578053349615153221297883533098865652784721296136327653407463106213061865456581969681523508523508691811458727170609761036460205368293207093583144775133981637482964663049718625778047684967396300117930367978863439235659057982677903406251503580921881678316782387201497924453891297271248322722715712366700436759008834580119475340404720203998044169829407887160796648234419196269502899060395183876427924859824089402818761420254578697590301457408307147217642670459624434347039129733326235807007839654125959965441704791871437133662859985749915351541580090219413477722240656821318049082693167659981703650137127379097159381808358535916789912892461763059853792628723324824788874563341710340455262854590729625836572782651872910842833695624947733464503915919674178104729835964850406016742837358106750129018636109983445221243985669398426674452871608897919494099155358894539207274019576945192919080976569127739744072477544584155660860464652520494427110988774411913872273440369829394516927824521684924594465072630251541966365092255653853378415670545310593036834661386243165197833948323923451678585230258157863535783424463872859751049055704994203321206396636726958118935409799935975725414450936416771297738044621798451633780445619882095085969984411123706207283517603132925851469234637202006257291706749659795265850565675647300678035050915179141852342541058517514457621487895828790215374649169603477712048300075074253669814288435947192583065527031594130900574939564587274981917215096004235346616483099699633010072792104138008409485221754267146580989619957333612369526837613994788861284822628171500474484515737339448970930703879481229183503803728724188491419580778883413426394638148758458448755538528561634609189434026687396267532075804693861781899754388510407103435668374214741340970493035725741382459697084674421937769907924208119244891819234791182143378820848033237467714195400129628554666090545986223353272541306367397427326907554954170408721200386003238984279789356985066758960527828227288199208603183924241550677048037114698830093635523032268859534029622621412517795361087043362263965815149430959186097620091486821452189964436047131608815744561589316436887398942725686335241182739278990250734488793406056319417455305980436963625759466821442832812742838146433169303617254126152743931438143430275421117933379186605329245812248803716488173652378134832434529948975192569516509472520723971822132887132627479310722120432354418502904119691878207314080225322144129827874038157811455893062788016044758214478626736115925786919829568001830413274612414746876267269636303247805231610873971400374444534209294325071285860625163294916509995654823083798577716772239477657058647569268355150099644544050908883713746640613490271743508088886019377222122546402667012717798083742979100062626241314104859619996471694358730258036875559469412862259646667683736671462205138796292083578359035039534735388948653490356471690073684939905245605104475117233661127667867357011794234972483118653776161202955035068270876086941587734691415015496883200751214291250368488702437936423743091007267379565974478016027300897062260832876920246492989870878675542204569032512324629791204583981016400622502142589454946616354799815168132767521325060757572316640103519444693338483931186214657604940860371230936902539581437875734184688732658812571483357404763010194691954753429799758960726262959266005237385087408828557824303544766011261054119923576864178430087506085582973428564067682674668428683334638942691864527454433356054129865910819721545202067018203067008751498997844983995578988814956863606083085402395368668989004440368492902966676504679459369849088838481913184195665875253514052109279588714892676527203740777370035124860909995849613497711971402847090946793473488851468872243502177695079232422197328663018533384082444846344346852342703027184531220014099166419460710557015239212352139694848178335274713127088389902522733740878966964947251004822406475023028567145862314665060479421787615820470814210270188371525844428057138881530323695041145135364114386433224394884735288153167122591116348777435564485679183459435534713742531709997304224089493976355688308413328301833100454788755214053531403401876311293870277585505406623462508220488624120536100004638216421280982948763018231346832852689785416183896000338172626466246414786711175111704035478892962505670117219378036079744770282244438949296842381244740274773173107554489833978319224076354267729013627094139497542171567754165934220187605053374452823979657272625222639580960247024036951814740799331014454056973077326204124513325677245786663158289764924397564250356770296633794323154314368207006533728456952835000631437746277966744874023653890961808862715759337854204478604260602651057329400028187137520798828275266788004440967552493199670549454860782288691151949386348589895302218802402009816642511319836518856052361007306720678900051140946640379515626446604087432198528247881880404407241021321192989805493095265743553491428933690620152731561439385171940415144830359227272840390706956045782889895394437278716071573262773029109878708116725982062751460441121034667634816825571163332369791581105154381349153449893089866163340561035386028341327265962363472382068216403042550615851224385312229721294913284482987571204534192023857597898178516604526522423997711644534807713928140828665920407362639125960313993683080988518243452389407333038692414841491939933977355923137983738472312659431823576880644171489240211462199924802535417900200899798924798907721126195071785862553515657556355653332083281474820926576846260902212156355984513090088019656622643327861633699669496124619780960554289376642290341153065094392698082342722187006677229514673283459378906858130239486006879790237703297415419723456652566835779180255616006736315475973104587374237757388693485737147173614369859419505562270795909340683892888998806689304759084136197847233835952391783698504306057589308373058068253688508102411372163978523868367028519740090455103744415718684414723801692772495829072568572643275050864360005692239400992233358899181271044514794351361771318381221723232513066166745444176167946844897334771375730666233785315925589465815804473423724376333147921702570673643596735236105288664003340282667664341857394552752000349590308858028265620966836101994050712407945397635606879491383334968558308717380137640545714131767680567216052608861884702772248696563840961302970150571528083649712519224185726745402520442733783270181980779484347383413810795047531095690614720409338908736453429758621843871980309697812531343301592421830814309494148561578052306549042357730157411098294307163277100260324653970549952871436072981197028296690398497447895475641702253811247103428469950629753667337425083880459793371749739422027668354304324562470351893460128593131094068649084452853254827704494668719055039292803739948888344291002338784916031620752504800246370790957358652591210972341687741346921821048214520463875917912438024340876073525663166907614052629057260234544113968080583991757771171038234202563126320471739246583487451673845465978519250555958279555365899598061223381088021746622980457175682885479459577254186995778326251557761393038849211008388530478754130050339421021047132044756553083745922098526862646515847568801972999539824664675136580787544043551683058283165330665849046987399007144079068350264619336334174480763766646968500130729314411452324121048296334997131444834800200877708975748898765829138102422794621575774857259171289189499001921969902006085717517139370877736195214888783842626180674039941357818195981931159461986766966421587611295906195665574922160992769665949122076423958914265864974524087157139873986752520750828621333848279521686198872957879420598638619009968809647548217893398531347041316497130889829091414329638484395216972838398890954391125271533320969239083707190711303016937095974411160821262248500477011283874888902440402491469468989420188454763898736175744556759489601515265928050038082305521463239130816777369936373831049729021323267909127983362868777424078293116068634617669179466620873734817333814697531408243137786018703194084038982676902062163886759375867395094600987410767671629958525364150228348616360577710173577642780941563180728822643312594853032451612765867144454732184685342858895658923039223087338658869040388394082805406311611381320273980329423801599025673711766146397557990648599896107221363170481085779362741494214509356312737530708621363527775675351365087609238724233111468146914266779977902071843904391522337436751439944222152894642117142581923635493521328437304535770959079095466266877225497034513873189963251466507711034458190991440177541675096329982202111665129597072721932144095066089194002482013562561906017627591238893537258270260468272206474405995860352988217458403351763639744859150284912312373360423706360302852468480591542794777824123708396516058553833757755125090850983352100974228712939326392556845210237121927774458669362928347686112830504023842610837277264713758852706109533916744752559329726360966763258118318435240107246006477284936409229206398677185636395646565544762175447640993719141193985916203861731960573409791237604061305378468053322061888592079668958438695972662368904248334499398699121601876178271126467387159604717989371027905511621822160657211610570044639783864935637214920198161649694328545787235299985428406275924688956938751992988625396140095010817115555343606747154358332941399791273138687907398102867822330324532098374231607085198363667319958892650467340464513926436894790926701640586793375042620055878086490437026594051212116777805516037184953643431346870463341672131422327318434003063881804236447971955902195431697152227383052476119285378218117400545977481285353779385155731424532080032816728793728053106647836513791476825677166697279043140792726552354023061848947475435174190398164106195117288660446980797943818861453562607401477354050324714972880375721405563541381601415440627378856727003798935238239275037366182179999799545817853177647151893594843230198118914553449501614603087097300902962678266233177427376894751634047875124913098352561745021446513114672278044786536442607866744371177109254841316863753653176046144817748246633148335616997790363901761093157800653082951296985263773159797287383676112040029376069964842204663343328378645740135887758586907881242361398529278698420577742149775031419570380539642751840121962210203098040808947002661836244848003064632158794774398518968366891440679879727449353156700587104240066314045589388295002023116670544708909293447142231857915950624769446520625081826963891389930929498433766805319740497278493857937173712460418366123976321292414534750170836408408354684544521677775167203073725967803568685182761360006146940881608050154245000070926380749753457608920471461297740397098600613822896398267687351350981866264269019514154402092321259163199880982857596839512192590656773589751195113265231230046342533660765462355057451529332489785668369186063018428592162142110509981169286753025460277263744289086049475759992038762184458997552724768392589690595074672600345279246581773756183244696984399993989984892226114269380721889111201659854868772687592835693662312345003318043701067974466071240911614591197473489097912841131920682172888191409254372003187681515952813916240833594444499844863405307688245064612717544774534642664516215329896048650292864634397427687777188556199585968146305555468797424626895899384257018443505587098882057060144146754353086129748294566454417779337864932960196083733073639135922977944805172842230427787354095048205256641246708851413378237616988647695594542518101085787334542631450847937946712299852903984309072219443920791743801678534803011030091452435731200693902607961147880334270788334022017120030347891795947654253845377927519149710757687301432364362353375343019137686868070073414019468968259216541275027340389574655497579355048143077255058135447640878978449650782311345296089833415366720761298964010622961820181295009799332822938101825257155832574650349481365479907012621283942186307581728909811395501057675956727915081616653305859182899943344351415566199239305371880362884262560843267247151454605920124699128908180755211442218369357619084963741374802563990107414947901550077633824975706429575362395942477716226502960535982569953811533631789296896620281760008519375314727455698086399041236064416616641150892730402397107835083992685568233498524783794011023956784589954474076247540747246739203738374524102096927053684566338889826841083005373311232988167605948242115518267692453037692530453846518276073625314778500940486259237322914462385826356955897358307844738285409054111762007277871755749021056191012526051686030366818137273110478511223586962976873132823161025249711077994529623408224195217450204246778256635297511009137745443064787519934911568051041247978482607870863465918353160859791059423598640716183427564886406465643822704522795269635279510851170834992449703997380564119604980401175797985205955006056404841608830868421073061861211655123551803902246526452076872477063790056057387611507480050365859226284349459888445777213293491120750485717591089187362694949432878673688372646106082916698531727980759262040449137757412479997711053920140627309488254342756052875037224442396224238959741680114250844466120840771358496638427374452907845177893250617626693601357775397882356209238357553146264434858072684115439136084158743167022991147339139816820535949495422094966655825691836797815654389348082861234873554883803243460457772952996647557943361685067005474174163370256823473414035151113259804023044908406319517645759618914508312265088591063748582447984449812468747175203952803914253777256384397940045620518623695369519696059539650566045789829705838240537915935249084419480183096197731045003241685454073423473896045891858816939884413861063089357514865428751370277323995021415058272053899988274587123644403973158364050091904611582677651789402113151709825353636519125223852466436914007640165647585033196511904807236200283577989372277477758082496692184140767525937163333713503894041128186808686619928547200125758651501071134016821167812596816408413598970676206115975205349453586952636472303010005804570780063425564607704426610275257707434039826466641783322084897933904684282485712601191966909565584119688598224396976137931121087526014593959056015843007232446514811604615316481110087507114901874447484607043158865505388854859018475307035271694289401791798347514071210127952337687016705814743176796101740106681504917640618369159210143745697116454223436062071069997148278443170972581297551019135069142963642757307691178624003973032347573273173422149674560997362678582114397942534707274855385286225182308995176174982819184003483492004551068744489936734129794814704086856729663821542465168084383280585267612549802074309896597016886362901719123728327827682878819189150414860415151926905330483920884019779806547169425691078251091513227768891702758956425843850669280682815802179303320884505462000616094978401371989304788967110426904479100555806722601508797325289057133859734305744668543478823348673120071288901647216535732538715360998652514742545207028474890286668456639897668765871306233794095642987796548254294825265051633470180970063928278745687768118561815887091627753600617374362313303655404528716985570863756634876345832834893774283619128434145573160090010432800473696437115639259497731608641143371873793219738030336590847100416605734918607061230681755145584593338607778464464994781573547888022698163013817189512438140006199523267276854151785088099694953397119906906368557813610345355057351941059143044203277358639445089664683111296645136866597966716873371264118218605170917790343066968060869541573840379518353671332212371169139157050904519575518723752024457804754423456156053533693406262154727423750307261576874766444125582000879317255425022538925447065168643524164656780381158909665502331791857848983181537777457870230902714196391217015531744935616966518845513167948482053715577875324120110543304478089839141596285775802517733029180163679307440623983950748323476199717659745314016326560878325717774153532211556639901552310024993183544677941376210976583956798115902398443600845630697169046549831858335277388719235493840574580174078258416704503043494421255245181935697417467696846193050998857219486756491718238897957079109636893391342060160381530356045963756762261727287999010802907230292268754146487243109234492792377245497167480605433311031616614061561608297498745186857025509124630678975401476650181596321466972403930486290737066109822692823901027924012145977254061167538811330925399378466884028782945892588980491772573429622192469067154332475036726632226685418478844841937268060439334526351122061741037698408942375945403681661965554684927603287273657879114353148723442124117825066526258658362256835600767360747495276883720853866535145055562616399021004339404845027689763739609847718010653466447368405725829144811483003897906771084453886095478282817751815015859503397941156986259453451716562000872226503741982964105263974870445842496660297521044881130830139123876747467602585311057715009485966083924554626060948485663742262446040823568206539674096639358578506804650798076546638021519627552044362814217345655049831429858487593986856013443374674652840357412246694984879842157991744578306536976672945588511126174778583785116043698400993170425700526443781324495198327714898656975357221832396195695629219656052491546677282129754971479942768201528617450943214464955338233179532406428365244333354747758496345194436432218853031448434550950240037162036062123714104622112449661498655295522283773177408937743364566116027869560696760694869993309549725455423459865283938921290504188184873072117713287839633611553975855719429568792196372879753087338503795740709538981467585124093587091847193907127474485433965490061876688324380405309823481900014798477980614346063683763697824288654456041558479369959641354443220616053928823366402566397487411449713439189618473216120965139809163987819077512093733104050494498120211009354643367221134084030919865709311169780460733083724770640451557754945190443151059633124973075642677780693807443614574238107659667820682801436246844736903220477069477460385816257247250236905984048645175911158413331943955449222594692695287744309513341616524782246794530954265288806177246999910537715256737565537047470114158211737470771699795077569958331495225262361764924697127632754255163866710089308741534476768351678594432146012359512821729185176333101951691561815440358126760472507987249210707710929270730651553182299533055085608896667049269130431393433194770350803014351699715166430518785191424364690934271476344890507882935264828533256303633210906739753915185293981586361304774755329345687531393617436399068095248746327058231069405752096774095178760301212615791844430008538229992024094937730155834095202021403926071136616956634747777777994273013978823953533451553723363514298803681189506274782018298632461094768273691182399961508274331363699023299928478246557051313845883370251162889427477973300247752742221971671541931485240791616335666896206322506268710117148033441348953784645745825722687790416266497328866141695883550951111214266891692296739824668909017009434329322200138529824077310134932078710452480179050266253596814483906502302740878950562149866959398000920737459765735372653342544188751854755096292155797612765187575226533589547864033873576280091050064126124252988764627276238260776246542374680355072602499263174352396989986096846184056690450311606899381660103516172163866402876732871116426950803647204060790226660837627917773294628724758746695667955413032744838409542590337506634244484430832983645960420905178186737585825766014028867454519808718217431478455542544428550780137691850185498197154152416590978882803306082953764641523588848872622449687456578847511492387309167598634537557441160448825845408251940519512370607565369468888833670952834877168177638506586968146137002790828311199460306188565641343409197687086662978328603609803438595941331909364480386026813767733845367247650582216525773059062741600245090730883625722814611700810874251291295240432611612840119502922731960718503908535690612600798831165374238320164111575838768227655312903625074712909602190901209480355104913406338879740985575574737637041863101577870425520654559594279711097169056496087873640329534274874679226379907752612774935913900898490787809690428072291529243082653476998814175837571639675562072101192823658414131153203896702067347784544770712645208256270934751100543482202043219643734414011206666467806582148800305669320388498119065796799165377159224194885117190844696162963317936393860785287592981689133158838764434428989148698830613386342103830315524146190677605270063910205208756468553235894366285401117419636530221593786870154199944447231981125291288342721452098567541934689152911708531661697703427088574965645110209612670614128204296117010286650909866709197360369559927294399405834100740282829699269370969198905544657854080583204848543376431978295353183333601872026903492520084299859729296350668815537101490067815336060288647191817129604097676787968365763627136510672376111967672429893994830082939461670631997593415885843647065142175598097720818974827173822752405832251197315283012320659591548701179000552335900674296480693774339461937734936410845725092118868313925179568506165931598878781784388936189278396067216229925638078455444520315390576139086060754981996722847545386446362171290209693849606110331869012341416806913836493370766597907892445824704563501754468687792994306052333421824078948771405315846044533969432711506998370994764907116549950393491201522939436424089251536305221853962762749702340110273682399951335162131070478164677926130889290390834208059237947844920209002119438006460637965355282275294444265926862890619024143534057632542805782437720896092350555190249559650373139464431369725576603250529909153773728957180789988752065268427454294097536519929380045058711890974761471014020559552990954889599242960022647778913027427985050409490531286693049660479786548966060167892638053369161560007922464880751765775763121479691173211207396322382871295909614955182369494847944094750416879605256980886377467408289239325662564959940881915914912970872604051619378662085593597873081854867561773097094213822598080445180392826977900315472518222947628856648019673555125674058765645012638536060378357740666675673385812282316149340447138168341190952945484869576540170567630338014311394902872194874378374867184061296328322827168206164513166643400655500459991914580481631622342558843205412188714052609054548278021225623146687786162874416712004596115900075887547558139272192666286119614919721640598886366515534440923526105935384742108061004381516374111097969293533537320260983304883019577792690386257655325218710474386800464262242340323956569389690582022537861893394259584705023573461170874890399878545249357443409390665454119109162840484879949967493745825935148209562368794401019826682730665457812709896413004971850760336663896429646275277840873673508145918656531821474601545660966802898611420476851021854871387656374939765949245742139722001153206017555895476671195516227494122960970442779426362448989983523404120018624450582571740468925638405810899720707998363802589652771006802881162874860264088009867543967051168478158579416454844035862448841693144836540947393833160372385092601093715249342075500574626844972611890661148377194975399273328905395187746798453499788480080615954439069116304186970818633112609749018001059290184475133342523559781914289569982023878057628717667205776359251548781649655082294926303700998651200517253106279625655870599152327717259563382033016902708852992369786497411178525634220518563834256426887601062107187088396190455262976415116710053388468923243285493656196255382582335849754165597183949520260348013706273814985371488672059697700300587025327789845837772699058939218930907734889882907329376980526430009898958866890638124796533701747573251016940105754233195269695521441245250263506821907222343469604731368978259911679052227000253887554480941461735336511809998421735519781824895554802100213635940227701499539934147571896162272159067095934768593837029638272165107049928768034463704584574756278776100659053108798963122320858078729021663825601715874638565390348941019981418074903515667365088192369751028739406647533939639337112103462036408923242393886718029953235204372706196088131579438799447221814368446055379020353414175229410333811396613987757874521719452630492036066248109474988490664503759772927233841860664188576641254471999904776145037756091870162570088134168278560457002210746121287186783226606171781072268968618741517591028609670410291671146721803372580494981122502037991330410408981119673576784804232000724777160700828981235788352435445942304369731161735373549220574804257495027180208575381229679933744449497284888652907435652277785287125009452237212805570746065353199683239866450721799665766271219124725221055640782680143525615469751864436394419783348895961466163655812085507304670937283434563177078417965723096149809764821241288105938405689116034577740234348354004585730724259326627288768926333934160327888307487772735187035929122377906922838924658383405670765334122617770583151318492275834742210257808517699325046861288604454064137692294001517834986454888410293599177602863200837527949274056382092620513343804913422313405951881198240835022157530040891635155890124972464584527507161885211710210587264376189925803999595788820031982436430907127631438575471689420024870641785779184792447975746457051020522846091165973269601243416904401403940325426445786832255324884256465328634257456522193125105332902025555350012423295470018601505833678626670448579593873205618925253852450462653513631697761011944223214254637147515237492839797633895919753785875585956765645996709934565671409065343585014120973630312047251198305707014126232591677762718289232338476051271153600941203744331395328928293578609041254454752637702988424032314866240995813412756089044945069898148772060892274086587618620047333688886936172076743499801025036219455918879914844577931689747294901930636309664360985397573931496967718552000083594287429957282460995673550109530694488400851153570716060135802264995540968322639106754583809205561175316609524569540517986457115950309186122213919414747314914033832616019466297487213018772512907278955594045217710225740876373569978640931495606870656666236542198169561270440856340940223277295692573178537975849760119418033423663252380770970363610222115910143390002797806597419509125208761083423141249532542538816840135453917278959083406412274667073341872997000824902693757138448830927397679671346741748502198362898670857324223560099719566217694989426797681057512131865096078998044516587460330391924331122640808073977885558468707114146149252413335615307864746045341272714999876691646263980103336740245303454816547635121534169394542760380201127371629748521828195991272080166364715549726444021959592118451333011161369868341653048457380143751968628105782056571605928711931892370724593725432546973313602777381989786944347219264348089283841139198689637040977863722389762649304347468196174896092808020978456296496857804499102317172177021042468715093867956624607226994920481731831896653897834168683619007037738783077710705148211436709292858231826434788323093393809668024155837012390445713557237905051670423567186792843492303744240985892794347822464589522310278608388055098631760675462460924442406989333885172272059593205249195724991347432530474619105395605192173622700300297309430513438426564715021745461562346355801727954536063670290005129947380491457179931426567784030012439179531404167634508570325663721595495106848971862304293406506738566001512166787023416415795475583519032280441305405096021837570657844037725837199747976990511894075762158862803514000337560025259814662018440523346210459834623610873914494592958803809254444404365127842871797023051866021972200323686577951623016512210079362712516711705330844045967671296619588646347268453093952941427762190216199768516657567107351019722178876173285554713544238054883023903976432681069688387245291516700526809511180048380404965057534588261617332045422243211924979980939163321181968107923924180224289530888330348923675022738770990893350668822290114194244504459189649701776135340748592378991210390350647333151927166909903752074021633422645337814214964299231828331124394312425707993287409689233910008112565920771685283656659121875974679759711631501537502831431874157150592118845446312376450021799838118522119753283797956049457550494050662161112802630052657768669750319500405447379627436585525832193746002355719105069645176344330959061685108351968571627072942420129545200258393296772487187784076370561194247627074858688738240168408563158373790126856434028705309829669315754799470872438803410631473909528094419382145932157224344716005753619791664546161449143293737126771146985548542347547296408414604785472274756693277861896131875503160629475275053374472398195224994641250003270698338367395845494057003647113311938028170614162359391734736374471290849727784685146398364766316450309240636250681206570830552928334927581777994574318774182792940767521052462806746956112083020054861821237482372438754014114064105363512439303451172600938052835636484694777488462122342758768295957584473923073559332025988542469119693154666100040441535113116233775591054293559558606145455024951778464942872225421513660027087948502101555366292309489993020014587251202540791106109885125858294064472480407117285853377552469549121310540715859544550532752952108317134693099906532993534956750164190167280605646586319770627391459956496393847894547135514185146258109721764581961339979562482113418661996254446053789744101100625674460049261230272571185507224279600276559793880302245140111013808802834928158703760670006863459957902402663190980103701238548681319040405411861481104665676994916534256453485508967025932445238130570946883071943674915038745747038264076209003660638858335448168205011190577946738226669505947332798410762696670638630113245752312842533458163527758132362028505087642852098258005515392873161222358325830550607268511626195494598305080751719673910643536094597431285414989604690659213913476500834993484864790539769294868775230236752787186189913121341650863279434979345422604972375706180745708836877432946777509109506185713331441843539084900595852623377155563429250180950152142555133532893509086624264478270104369371044417514468325145413318973003596158765781601700534184016285436147073931004989495734009250121999569090988791984813242279181198991879568014973223080294955846362912106867219174185171363512712227727364913130449464062391615491973980115942697138331865712531036064123998288686582717439023977740395487007207430906226176222148924863597510945283711003640528370808061691391751968398921785138831383185547619373909096492868355317724405731735410389913855954066998976387450995810695050832342753728758072912768295220955745295211370328219928268240758544990258712650624270520192430021551097806720075598913025437938836775121500633391398350478670650864683621992243052839604626898588429813412864577576251471548340231440101509545896157804152203259269929622912807375613513566338246001459509717374982256302673810597934457737883527273567929148556263676244900036170403469086188723009601507448428619834419908712420165069407456683690357288113414302034036545373100888774221757665887298504011022805686980602002242328869035945641443940610184495613255965172187388445180695286619373356428452822806625970382463074138967859490291838493748106988168016828559008594017846059059025662716958504290849232485788623278804469491346898617773030743443218112596704149250046610823194160735812016230768523029816877439880914566250026238530655310509560807226498307279168449307391335134573425044264378988723607903498296098902594572964668580724054841746585170561728236395912917218231871901176084128493212959671583404224081514566437406945727733083511970329096254036549914702384398072678814299900601392495979439663603539287669197969752991287173003473737199362166783864428520210631051179287582660542254103693676190539750372089295699438325550773971860043283368725545384790116882165449764914494644034878975987050802133676958073139189283061234898067129919671681996051806192040295240206350202886228429764088174362066893156278282398345434596066361814452693641814962521568508218698025921251824638700517834086961910981395513300359143002251922208713166379118132807176162539977967519112987582638920444496994445245143930366491298584524317459300270658718553693222537819085300635482746704974070020674003462882391800440311649432780376810515556381069300113704190549452132559024972989610354475521548885994310104136120030168909444199719051212475072595646802380869693198573040240110447940091387109114382183083498998092594390449018581790309377530897854765958617214401845061940293939961901213799798378880431795605734159169893605818735333603169790475867296848265516008230879209285368749143609989194149761552815190492657958263734249718384885434558572035455558052982198311001697469507629416801121574657445491830827848242836202649748633720130047271573648614136940728929721919359591792743622899067025620776597638679076560442363850678729176507131589470833391603722235070748972950999897873633157849308679196418375664502577554125390291919500004836598052982611461387764174627480809180966219298776454311958193909911606229367392976898551026907814365613741609846395004809238359158619818256678791563082118762674643493236213882606332949507121619015259501620055433868027842263863289478624467349780393189940642883523675438486815101087816399181171791684795396103454362309349888411540511472189301713032890981481107514405085060247961419313733306984982892660841623194538804956670238840987167882949426532612148741063814152938034297169044594877270686780956205181268791598187430940269256094433139608454880908420369870077337783093309138899013410607966327532207867499169422979396959106663721179845728104717440413855243865515082720653939245314096713953298844031223975285284642690023985280768064299834197931413345496094211507502600770885231969653740744238549020223371122200372681001157779042713291174273260298641462635687883180582208352767173432811060526371713514028715057332105674689226254877475795692493992978574895654607141541402777504966759026019138202687340962139567723840691244928453405939592915248373629923219009155873294903078664398379096411193447296668826939127049756032786931355838449484107936822734635754247035191521120019289231948068817435903464886788823927675415079353671746601948072740761210325872978417661545641041030660964356236106115592333388438120414587869736611365595129808716814042637244968012528116480273602739340455519618909072786387352277229888299679987511532224574230433038593360329496919037866967000337408553570834026176890045859765656005712502689639588544290436366017514753379480639465332391989683138856851192656466135634204334043113964259677892756819504011669338504043966242569141458123234365628208124054286490764284511076332758722441476263861332246852054026930366216785204216939952068337102242482273443410869454579921680646508599223699980464825393482682031595376028007985548650204293343499663985327247292970682537482228749000950429534562954752636814014545352576906352437080540429963010155331619359765028501449319549286052107525322034083196438321327293867367407298652645270645768136516221809852194142569805684748890640125852866448404703189006976428998481662560622780135711943268689801042543815042491604004355976573243286383727618263474821723209129474486110289173764969254616753752394967533846392847424969262609276896575147969661062019228839421709333223170938816924455694620536302662618964985598419840338638755736505200902975697153107927796440142449900994506329705318549580988836292760333617034262347785578115959822358082989333093345591510452794691970073285889371490746423349105090553698754625066644006864930224220935493010365633324332530740405938129550883270325615881611114770558048435443871189090976969653567320884980151571350860949422380885638311336716912283726826449899974991674470439389464224899349935885617075038115635897660352801435723213367722473842104313845654661994862228810430900387354065032241725069732919023120686833993282659557254907999376640059809210694648262066037775300700290875320400852710413534332721798801047863775911300513808595959338598247079590247434462158338229153917889138908987015187229533987343206983707051686104929391507547684936138413044107886678360499456836510222769984382298767803185009678665222312869261871173452726054876055402443143419384931054393058071511997008751512912896232527996781515388147408952160957235357981856131719410273209183561899381674646145619309986861813689861137865555853091734548659765306776961168735294769340711118828408472554621392480943701500717181100542254564086691014002741175386119310327695271026231219570194934968136081380719026256540203612703984853187126216322080941436277523821788540292925770753156910273382865364918017402393790866027081476954268794734628247387499070215425233529799761205932234576355572299890801864813678696698308716792313401425759222439741330493662519828457971381967408971443552696382275627440779267645209138886320156833702759519580193587505498688664179409720010101286112251023360883677569276629348121539455960285199504819503515757649644593309929151817130839820404650662947580889462323849263737346467938904062868239200196909184075695946943172032606383104361086530683680354946687610182672709550873407884146073773510235239062258733624920206736021193774767065452889401833548552956223162425919745915312204045092899185547458048070942705834429772359046916634654750887038447714586469041050354574605627155780203064991733122066992731970557936968819587294309491032754552774383323441320252871749121522540286153951538443295209299229599641986599631577174549986050857687352448461022746301686073803913320884995334054265628287351248711620820173821943796523089445334425503457159530089319907027370544048471531597187300220247533884679317313030579063968579049399737354041757118975572444259798755806780916187039452704945879196598370802840667246529798553917272464518604797167253519200653630615610486010281481865644617352849307167109332708398158831097127406960589470480239079442309493209801469873364979809734111178861676395980785674972759258266806455983673023514078756512998947707823878047740893300190745182808699782663362952129130874330820033871943459810789783119662889925225453900620192570283912819333169038616230894907047752176282191294796342969290231622943168650829716464860746557270683253137501850241686341819411338740142961223739129400736231890239527606472014970181647774061130126621646351676702018282385682094754946283167853798854618882960647980158872833810122104742006605538404879199720961263790319132875771084263609829415842625847666922062910274530064928922250766120460061849151423946984741775147162840475793316939694440712608987547396148993194737362535965785507911907453073079902153804792455386195873952392814902949416019149162360158145065950399516493341335818905520031580871037830987572395539652462147611979881798044269899349698739449710403156695180314128519363822730749983969112480760126541217821720152998479173640797443820987125249713006632438629944851403907611847346536943384003211773053237660513070694237325839186846381937615324557901737661984073908802934905570908848634251071372014835079574112863810394647090857067155024281923421044319126267372653496381921145473829219976619932069749131042709638338014198236299227860431652917707629782972790736323611994919256013045742215008203252390652997356185241985662263011196466306231695164073389539963968820374569877998881994573320668471496164753578481120747177556291780652460825779479822761335353919142766008869520446860084450161225238716613505807286260036752234705161291607879442299480240627711635412057469041283551925076334414316108337066495384581507292509370614474168537068613318990981730816171252011553020386946947574062592320363521334328373703179199186472292379456798131413968184045367017701132440080353468353090172909280380616157954497998074077174437910014666932541447113199137720482023187429015586096282814985855182882322931418676829160369105433335754179202983295002819194662513235009990054631732655964774412156850283202074169484686892555556699232681094672444309478799841542837107485353942927053747820944395573367618880914122378810982961902344113229502755042660823504899045119206979801446258933364041986533978588654615952320286963634718594088534319712140787187585465068274403142333656424995863666081062902387856404752559550501528525276815047099259384699797031969864706673330741323608492355080405167674647825955377706955751532526887713268779426346144663496991563247993609647705822544809783231506853908136348265051397337914673254594636649532462992466476286237845617123458233085560051955058963429685251598503019040106618370773359089363977386637094131371755353548311128003356798519847403836110948792538634734362371618206707122812229760344584711578271046483628065481627177475421476032991227923329700775060973780241974893372755769654362454733914082027154011534922268355436377219265708128511236796141928815233211303899208257014495747503380708806808174462960875873298880469309665288158607126688916153728170331628967592430178206134550292689819496058712553314790123132861744633652143256317182750468911154893339258934150654634839826243112796766233710904497093035925794666647182708947208807063423085231325704786466345972614917444503512383945854774075300299076729388927793071112177437424095600503253875542354180022052845309522288970334422063959130466189895010357444238573912281829560571774359916760981937958861140640746125166669531039957510405693389779528546318786449973612641361102143330255345435363753492340705832193056888159742320101199086649222206271992118480966263056129630884562974663767585645334637355905249107169933230696772544625922682608536915378344524719886535155020407090772426643743469570787455791057205691294727818354736314729268997715293812521777208794467953724794198196593783688576536527684346604398828286090354240111009047453942643957758704620239863350808513378875849416872025749400236488895450306706856047484289316281333851143808095896515419378763519631176740132038026531796706976655281733674062467698600182241816543942589333474308188294060507986057179252039136208188368656103398139085583943420974068597058691204253138359137529864432026633992811904101839253202827545758485621348206835107178392449086004909690475516279833314884139984423380799396858930764918317914021683880578248901107962620645295507374633149521477396610860491806629495541365159309031469934178352336569673060511219177010237316283386908419404935673306653415678053440877508021939130194617258501604736947413523442356089172092337296300178766945689769236338594500480625520720968139566961267701287490712701823537277144631600530549614192057994043170488548733833244585592950922220833245731848173845820224269433840472161855065837250259257220524477155261375388210016815441425141217179100303212178974582429256710285297323802626110399110460360050013528746926958895842426669583027815669352972367603520751802403775358201930678528855250206435441067696304906526108306157106266292922652404898874639313609668011282292198790619289329856369409247514986165801946180628956142018220619383374703141834773097722097460390458371270251299455752605036907686107248562296411321092944064154360027986885504255262754138636537272165822064262418788628098342049969251687207098103287330554910779266236004378968202577616463187371632696404995054955185161510660665446327426652653148548457413092778255846933769993857825711253504800145289325330791370824743903123783154102710982666034435261267253839750801575207876460384237965526469564723938458140576143867933512323685225955456858014649177021992209755267801665980514778978742226784032833044709651739238754648506502010394472575215310270328477243137241150194899298951721547271818754027040394842249602375075221286560122791157062119570446778174207164470331059160685704183577191421176440700705116317225222694040415526962109253043146997705213144401685925052917270690325177132109467111409419305034205527295599884774501586284568843652874984337701714553697653998073601307252001491374435743154200462940543068176686171916812749709676038825790632954345259940138056430274048016380075868770486770029610972086360231719795617287389447906804418924178625925094385232618195029013512551105909691040651670265957420484660837723602847446008352895420970067393646293749143707763118801296170246256694636013222059059454866179607044045538443133337452611730358687072635561890721959016544527417049168688030827258415917949727587758147893631319586058212801802727793297463150627496760831031769180807043927098161390746561085580892387349406026691872057225357596900037804414147633447210196032597660695878467805715990886821666160336236108914579038510070202788296354426870276164603250322933705518342708845820989856581961911649727911822926519478249535113478437747558560420441529208970204998965443183858739010951585835169374824878090399266910767819444351306487673704550293948558562392795958972064360453919681379738266054528247538603940006004870908039545167064452144920177075611961043505534590394058845426261885499783634348453949432172471179469434321458026021464465893046675213321322179477023291781538451331436722793490734441146722579827916639695266034559639845614153256234969438341272129019185497161894922559793656448528128981944585528418613186781304928554635871973889752427645412326896720262600077545791218637610116219943992140880328825761242858283003114748129777215811895801361870260551409973457797636373995471460153604789073831418939472678312977790099990579600544183114561177893702996770092044900553256125169730664141246903530222283399704986880080044302610583051825963632090412554507099820244125048483083326438289330890894909100993133673177691843876945498434996282991801734540366487280255640625107306456737293168894670152779306423882697235550569931069817270764639146832563041520814533106054076293264573941000031084936604633705132538533865671354566103672939487394215871573948080395512463476709952762809695531050074558678652903600212246958679741513831787850752578682958146617096553061045497986995090585005473715072595759098641018658234642285350786479647754058604541490877741688062972171343146429957078654075314558838032409019550529701699890604791043264933714037823728294794536000546019203270126850322816127661398825613692132883267978820986629814025010996945732908896768448853336855361143264809478368410838346160903301340267521592960486954045592770655207918833628445594679146784226656390415820880191742096474849136476366374182203110854902614642200369522146201170286049527059148554837792967796567685659567724548732118198369653360308873620765396490987251431266505199313286921519331965336920294110454755352042590453859322817833047179937624896572834314113168108622427722387454706247542778374171211406097239164615946956571083361077781852950981670637602954318216013843256893296931785844048490482276685871176111352931184273114249361760613729247391840465518590639996300133042085562334120568718225946062723117242253331251993940226312252048766555970006693438338072005222047977752969660515177635557759817977517072011394120025072930489301730707863023735628264229708848969506949218400391851492094161357063093651348372749322592681569711218452098184304705559224153377236408504561151294348529536460797610156940999108250658605052735491367776800892473534459256437453176556253540519142515124083755914025372831660184723922559058603626135901017801551130750601548819707363329903961607149326752513114012119162937946237508047224819068341956364000386388673321678875021317024003395007546581992617928686511348058131167993724633329426757105667618559577038437814479970986263701885818406071817714039523541503347826856091949085861891473834347795231855032799273353045649091543635212890474358159753482688371706603250355776557988946355929117521694583207632709668095365997607385449640080725347175573087253088422466459581473409396132084950416161264979702773803393986551971521890259153958579334029130898397828495149771973241984465800209213808896101432019299497977305435509166562591754918087683889814952531444873717796099286569910874175693928428027156751320245973881490567247065635337232714960516090683924681349461598465716914653272035690676908063171396333869122683632737607608385062410738727756377347579903178314368007703642598214902259005088047163966451836246150540473113981884870954757242148481115601121845708110277019197343110901723337530793602478937926330695169146824651401068990529967706387808893960788356527167168919650950794874346392400402286739729114310284296938850180772748681801183880614854117395458554889608949400458376876246768951429687786607664392411780063371705537421708826331407770194036271901808260002588622218301118596092181102949922102566072368565255581329681229454628357315023854332664406362556143223574288587731335238511831290346600551896301951882728928268172402732224849283562782387014815848922332099868029976528346316882497738318473575374828831743142445544068110146979589609032449264365238075631779148466977207091138771590041459022289913610524871970131021447607901269874075023513414280346724680668313688714095734552527611024625541213834212416988611546974542435881953942048002512205050176380262968301951950795482382946123077283091601168905865568211568759807960422120611223091564039821809121301658599433310667275591454123099283315376548869351322833803707101183576309367641491036293079738138394442777249365280617892627074834581856799289595597623857272078405456134161634387256229337661826637496380660914574372995140693741781794511330958972790481057005224711232825359279449106963036527428327078933952246176992562233821501204027260336968832604544242850239493738466628806407772731521861620604495997197105412003072065561862428118859673146857155913067112779308873967704555451299407085706130476940741858738611355382127031644902610209299293047520055132976659535978979573602974645909241646522175386314190008347089063064374093087114228499029074420255213768134867676608168768030173843356193197767008082579306942455871803727521368268832130587260753853179210294491953613204402158490224544950887915107160959085473300139716810028742942879751018679248090876810844935625343964807017528573735029068075443003766131799316420961902061759930625152126594308678965994138158136743498591527598081167731990937804762299088888688214513171471465378946736898495738752901796697524359196970288826521222069705002024667781070742489177108524097957463238344684916115055976500579627432809132579916904998073202120361489785310266933747572860168769335231587019666161442502971225385344129109482224163987948190470342227925456032137825510995497273751538682553969239848151364519783463473559368317374375232465129813679493313342780966179472556934488812699722625361417815959075153430070834505996804915742497701559742871359063329035819526888898350262830255294657881992506511134578199301828729158081536538809294113811148305691765046651424392629749642077174819318153290745601400445897559294259773857809390056457401842605404054616884423702863884045552780437698841444725024305549564950694536925360347708230319565934099845868498347244812836331912719346557660022775518403720975060247087352024856835217958699815987132909653842380175926668166202360371559165055944284684217339596925650039948566648191822721691672297097874919625444225295199023738777299254389130503784932442508640330235533256845198120450134642607518936408379797083673846335866258592356990449682450949872073821477497901634337752870405257352791722608777198673023085858318526160390291207597689794572810992481370344310949672054741080720366159762929396802705499961812649472861326504279258308015114677379757963488836789415286098858373648823098197294139231369675553821306941622184592926433216137109649550646845958160255187866174535077447463289620264024739920116384993009857691490491832000146253803763824896573190505032057520896474688897887671548488639760799598669527870181808045602093324816629978236005891573716285181042424095797389323234556395409168790046460978844683074011899597689909742687668866649667115182725341129243279425548473592031475857972146784799670015086519466674928476943475377061640935500823862442444094168572166847536275889053635609962895883312253649525981021107115112933302146161766645720262401176273894223789208890540099395146990465797093961261588784958017830855592849308966723850398487065204963798030819637516740831558166572690947411965138415754349567770400946701555839035854051552646939361017243654115072962072407910756289687135492808662338906390826675239723402462759036478437567642655399299577198139868936538129722115097145001120762939772664402424389810763905016652460426113415450808030058171529208397335155996502761250501077470322791925336685493614716977596240982742669404061689837573560257851409696937766306712663211737173301610845221217712267033022829483388838768978810235338274574844069153303284692709600651423299124180688872873058273784640223334469825981163555534945596839246353828187528135584865457692324418542857030303508212710821710117457849734579865418521713079949152305847501499323294723103582798020027567362423407800255305894204254007401366804085518419644353244199394960229772790017304305575745322595364054724048527351813943684449832053927405681100900470289286490757632975726094160776497360842339487667574251675027730678857951606776981092831982668857341487220678545630460995934576846625126894256812704493892396064339671163517355863039023696872964513551517502633912183174641589420250285083084605661947335945812245991995343723929367119970094483172858131661713248788814826709788607108574372228725032835706460155375321758872285431703453102580023627489974907948746549055229101057108342516286046510825185191288507689165786424306911060871500308410971655316153942956779432219783483963882524287908999250532734661686707888393052197465141237064384693592721383271477995396532058137916678517965915403426836871042064486922084507266294808794197782984820374214345347578564431577542920156088085973829571347983740934010725508397274427351068789021558949051159717594844978937546495371077917611864655321011718736209893470325869137048221398317120505072591654073953872513498342059062681606929203201205603262180602225398874786917285272113160959996043225534197784978268773809923876133423219240613046161477911593149383061062900188946802915907683961167280569115375668074407288408594207586890612518980182070934982277115660201510090640652094718479343841055534641975478189612471635281809773908646204640721181020131109084044674103292231975035884967859806371577256737907054597227957537590929667268564895955427288051314135853910748788993093844249757841221595453828910850768591651143870003267400524791125047687245775872895308358304269199971360706925404963913008075842901358754770729736070485826750395544299655215909583431418101682216556277279588796972679568240043729797778971568282725469492945310273594879482600609117008958690775899299605674806358498858701027460559605094365055475432594081980065123174147895245531475212451021402464810679365757682425247224122859291736280897244454025302679895792523633053852647124775971905802948794212328122847502641699145998117219948195330190931195009451382694509894420106282687826411363048169034583481550707535970006665523980053263193093618243757825570763746073995720727008263390796446612646235310073599695154986482701701299775582307598752176454683579747522563359523107376677578192766265560936608816490132949594260198390473484155808119952481245253441498701184356309708789609214174097729047738395745352794157185070882390640212902714580960480782176875561899604853435714274962521872471081074537971700276800511418887706411712172701643896890999137569151718524264672917852365149442437039553539803109487199401481257307426636881911322321369955649164148365195852469979107049591753733057898820973478391708719683136829965448405318773218291472362302775594919378466911367571383448593730776396807131297885797878567110996968733272548530964671003770214565326245797697318068128094365261375434750859073737504257613460675952956420275084563299526173510125862784135291237525830339457164591462044803167084675911440323864030841323277350820836851002837134147573641692663320551683634256680901729455620096024504949167201280936714928953620227125609373943882565332243408996724683839395490871944260479432991529203623291651174682351937303757317511390765292471481635668580571016782034895858971654725862974429794773567079554098620879546625430508063054406603609037470832793217184914886907659173803380518355320182779618565884223267984203672953463969138906260750365227029906896953612701752323847632237632822839589988183334174424652447004612833084724842709065932251449520070327100218492110715981129922894680285913811537498967376790308654735764659210496338138241833414375049526119296403203765236551390490380274711417816948655760242970427611984223168771488246950626114034365868588247285928653081724015208293600037097863081621024530878456385867933446468885994628871383652493098370259302065352149185782763153290668067641307719802245181838373507975371690247766662504281897150031580317605638383767836509002673148505584399657784966756753595766833456069705503806147430556243728930949756804755150916047020578861170505105435773331117723150222587578544735836064204998151199973834294686693553117510613079719117211398397934131325368499912958877465931575710531896369112632736277578941929860375570761855365479972135923754727960398231531415915629203729887183968227126920961401572765727264844565716060727053354030245803482928538870799151034927424848077881823181660263262512441905441396958014122450000115857791313948634561602196724804760534343571176135718994635409922568061609723849419559889669244309216800665805597873970454227221006763016793755650643385314563754962666618737313778846479247732199868348078426368128009490222992221961994643054863665124937967529628727133418245877576680351405380195010973426420622220963366576739071901623945971770423279608299420560643390660620329620321311605816478968269674767946163737767491492550206670295707353633542653977803634776027399248125044535604076107460894426568692006830421545331148036066617338800319796790624046236535470148074223549737859255020863780651049177519274675448046730810268698553959318095904663242140129962508948151514439129034053162784994745862848360842910546814921193853001113973285535107128433943091666969792493401290383868147134729495193916285682400801007724788848441510959580658919003889479533101540471611083036944767491336829628911559183201022500000220879075564844183724315269813487094125542072676676470972248966535863766578069315714634115835264142679274563606209389562342270056707950123580850740629074369423210517144130660717639530915740213145589069340405145274993258999278135172642369423760248820409078220870329702594233518581243877804146975940828292986322740792834332305196953528558562593956025176766663070734442866002839483980611089385372466599549415767135453538793077584850376416678711011084835907620870111560356861525628194582508431161060669652035273290238793536955467140690210152896822806432806953437550447341129704714219319074727950355771451589092008976937549971759801634653772706630841767145119592495153431016994879402371925525456536543659496932712443853706569241837672297812700391504212906347070580921690009326977544809936648749026858140244675906285860623605147563096282785157989075838876091778360437302098977719480205697288156290479174414888206357510547461286770020939281103851630537345946634827440487822393827217954637265675982046138719881826643511648907983364146763533716821948455466931219036210425264711035257354743094353586202702194236083682383902971016833577628726860267500808488494081877153042150043092887581896314978547766610708728200791046356218953111414066329066762550191963302287355727172141255462008217278522637519304585826334942964414231309626239801868080864996716252042781858099260771940609392722126381856849286457254688546445140477498267437388198823512316547603311645778828196679198962453306543484717512542687102056555259839955291378668006982492823181253005432001175189782723417794347969274124617901524752661819197025133907898436718456579068159394263301518027161659529814744264822067840958603301500629648865637092011211325319429203225613717183664542901202759799273395873768741366281419431046096101698659194441302011122329037105717711441286282643132111340103363695647509229873167569308356570735766594100811699458663931789644308431376099734913991515622072525523860402837372714486965538802655503953983194275999661634986513036022923238126520950091663661316315117109010939119179571625560960935967306556818205992712846281608501358580700039263541193782172284202033451017936439316706788514728180500327851491783129014750102857273170802905718581840648902809419244266162551999583113913396458784910490784797549696559902683435705804990696681690976276500470912043222161083528758764006369091804320811669889261610712740254764339746111412599150965460281810145345449444254068197556085115884595880335758864781246867228083606968202165096697364310001561008656103588675909684481695247866490850293559190415980061636263585687053353359106115875244580283560231018277761532583722911930976021564603193475005080015091908094579204189831578201126740182498597319449341792688770146159928793887752695375809955966324141374851686506678849497484245462464469422772196873911213715262300031589655220444388165044261319921057304849677910477395655057769163986293668997477826332438642717422755720265032763419239967134094845136148116314094700233328830629928016834620383111726165526022888568663024824329661617877604219710189599070003515442991252819705287339575294663919160104902477733219810592135502956737843340404662981663495140109238626507902464158049744117642680802732300807046673176321594884754035891858775939530001799887826184515297653880844632090102917051721008702170293258592418088483473035060335336521422619720066166087129446672832443114910039213388111324882437550431840670344299767353771973177327445548550908187939395527672693789881435475604001820651808659252510090780181489508461743389692636384632432851854419860195614564702931680340473490023816935427179215265317357305308989884687604405011419124035077157742877896674627208579093979267860654411148439409870405417471138608483187290685596853755854693116563020866489969574463307279379345150141652566455530705217601987639664903595420111194263403909466243435059983222644148482960433362016606147523536083712216534091912944471067908704020079974841180092447290057231762061949116663486528268009713508114698946883406360702886526344507691960782545647512664644666313093051917182544724664396246712972672688628008107620706147270783752475876707845192293087224896012267610683089653542250349492135551909094337687804781930459809710430448423693011953845794909227060223412710096406851532262392191974081064663661174310937721970543781061556810542681401946612751406725268558807640749602877477858757750359934047643889071536247003992750964203260727939881931642974985774345799200981083468700525773241699355638184667545660564544598566735858503453532686476732656966940827958186703144265417452042386256968078462253328120280751814636427140979624405151559691536414554085484619994921631071103440163733106995648862131857330920483831400510923515574933858558503654509870062704781767876915788598139778409095024214206995650814704338801231997354775763821772391126626305140737093784580358456864238704463915523056030221507122936514093890970073268813285099203580472781647391150349771391995018647773568862478424053076860556614892797312931544294099159172954540216970663581159610925333024626120008747028757077004700044267765810503792673361848326529779034160443969929549606453184787475563660545597661993258947784986361089566552440349371584421611056012849660035621076894579771179494942949100865062775629723666973131143954669291393428780602289229308012468136164818073130303324435743265217443608354923643973831133977815590114994960427591627311417780422506501567424413199403288011568256158041349850758419689246279990225205317588683672721666466600772155066385830025116482890298569611954805639592267730409799239473313822930839341049409234560394151821773097917840101797190534977299060134784298233941225888722315595214953925138623219608801757337899398209825433280549131257422362982216929120223773903976545440581438433691675032889634269885049581782753706406971950646481177745082550223225383428442683219079380426881899143478075136679165811424722949463225765949413907116063340469111815028195861503869944942397035806423210187126439953950377307016618100154840808905850581381324061462887276159011771356304631904427153961864019224125477463724107040600918484463366616771085508911196358392740031565330790559998182291760317985296511945319904671679456401689928892376459398804940136164515315624341230811623557847058526300506532866575199448793336466571930286396490799738611032745432266287977108575981896332145333024271560661895550848404649083306322265128567382659808852952345589433455924791675390793019206607291603313419513808673107265824552187199335364641910043011438277664186990933997763893444547562572083585628894580353073875212080245347323010511031665592663826755186357944130688925666315112744641640847505875500796275700854897070318964188864437709218713415168841983864365966021265092911162188943931085795280228068039385198706029862809249315681268160627253999648872061564947538542289530967584718421478869826325615829147184195280527510807745401799908591191583879972489009471319190236348631847747366644108138347566646914054116717422676203576171955646903535918551377060280632529104199342348081342214899409350614837261585230806261236905359030342979252567016851896133415412232704477814140234178214182054204497148551132883333328021111410035152636790877171333552118048483892488108653952788671718618361610343299561221386133942713043830377006880314370861687367817851919398834565461041259119242236741612232603649141815001794862358279680527826668981300988569469177992566722895460715847060590735988364442207767824856366758909245550817021264559016238617198286756210012793512942864376695093263031586065015607900832524682709513905022511558214891995470587723145635623712349034613755461241848328396859052259749367698593182562037696904764202344991974927268712431683993475701207759543842297150752307805290969067621119466865204392401051106034580819833905047957889297108995407950729681324939752320466249475418039359885023921332203840646239871580156443315017572481727160236230451503019356052193689292186856281310310345945826119826909288060738740956358777066360163978223253079634390373796399639846662448729577273247251623350550985963407375549261436680723670736792983175134934871683626683800670975703492710146361921260775098182679625863892977391104659625699922917647279863568259554838288876320573970955193795094175751377320768943670197369262538490587109267857323048205540517288265829776667586116732597009338456736957722635673262010159902386236063787019798164130540277395581356412702779410030705651652357600995669091744173252440226406963268771673325307946834940303791989616647692410722595289459594806280964065125774640990410216731299064631981024366388435477233369794623054290194733204864360160891737154179429870818071279394899601274302399911093963880442029441357105509921194627404920762300888633866947384701614179406477818286991575782477651378521384509710982280391952092364691975927430945264762255153535510011679817879354310395681158874603106338916400467368001918050994413388109266335886371154276545666256239588654882265033027283118414078510557168998733034214418711993268149080893635480430615780341997091538639397670119632666337321866698569106896625355797562023423733304357357579426956015374848872886956066429638354189268545947682331618692533548417341683416408277360847776967275261405667020021381256202243888353182027254929048494522356367670159040964661919396638317469337177487123855899679588854451812862049914863705299523926239313396379118159926348429320003713467660656840484781422416439307369255625011669112830265471282249387472678390797729005041057845389728002171381045662778698117168295314332226374103406039391261313977815686628431381784230647564690437472613623612257630392059917036335974075484765581375198213266153807200344200130829779073219245280029467691630142026387312527163246293437770810445183392056175432329045918114281620598368213035088976159984932020656765401102440060767564681406873535300426071779114632186873797799914075025365382548780182696105668262083502136068318582028202356816090006708748809563224821199077210361369964779180038855401861865228323671235029780417691721388043899992111611700242912887140017567727219457717281882456123194050490684523835158294138105511357187154901197645618047465230063215896332638703849840066292436584145988195154575072083429666475506555809779120691820200658688928350833181143846626344665708706762401442138017989608608081054311983136060096567040861521162815539261732816267617508993248167697488129079824546944786440131600014038562262338628168483706737823028224980359911235513444835800046798258328140326375676791352702489271499476321722978784763080419158768535799807696194304616442641574357852627970075725356310333516480668623855483642855398378502217948359464032500684778109596936414475015519266622418552542083190570914759863715077968141035914449728948948971044632144007315262304494115810865834936606332292158380114361255270518230628058215792099271231749351397659425905333189861089962797898146449431619338273940633231803734978259665908397046205279998200735428250611956369550670204773820533704686523679322109102305358294082228417110107249800419408081960105963990823043149146946417942604305893395619391090407977183729180169640426389945996418647278817640950764624535712274910117502756256907847072399192327908773784731333033708246521967435540599240599609911938817681390669509353355121846454106414417928067281769459255993089981093397242880514341478317469440811987781628261384156850153633878354544521552121986103593528276806416252981685312483396879176186718266790909688742504268385231005085120612731526279429643406272552947478978534314643285639627429124438287891650848357369375153221802236449352882137829322961390988319912418885528632085718205188085678514286412472837304010824779202188894569354552808931593828977083204796921491613342699883791259277152189631314805832772797515181057504900567141987914201144640738550435492117685716246094050401271707729376313664226272799833210997522815508463390275047587032306403224899564069382245222384545666022237186750247664276251023106250409262170555130405732617036357294393531100803052229375918253170535650741356885085363515769933851124818260766910062123042204473894363522274096878909696546736623055559380328861072920685487077605850713213478649288536941487785473768648732025182271936250046463004157811054126367283264806261486235344830313105180045022045935307458094778574396337442831607467722497752066750282665977222409237130811653625924392167995517691259902968011362402012771536698665312440835529030238675362479756159098824479159537187407840525833445302530535737160827820794624802326005385594331769905118709346017714566653949358169069046274510132981876892592258724899478319660816070652318045142580362402885067731259051123569391463075230820223096913922334879824736752435753378858440731476801758370554491180294374749836844603763234507583233700471359340112151644431484672277031943211067728259628466829651872331731220591593775596010968183450644446714444125939119965676100618228378597756610120843381341917694037409067479767948402075603351939024159951991836220509147000030105773072830411466939844921979897189194466706382329631818412517805727222496730089296138345705334836512983591729138590940654344926767814643471736010163204273003879988654204281352126406132587355385203026359235420697981370122622491134585724194433668124546607438702230511378289316145075887022918415621349473865984328598665185789126130279446989233242830126742026154811807961883724070281068783039294974830940086299947934531724471792643692411356978377782721404917474717602020238169264404534999188024365810964170181861877028680857624777017892625988216638778041275194862327265985598493331309582266638737508918371043859438082758138912497414926553674072983529795429897038961364149588306482386291261590376393478912696285688609069933005147911515396061964786912556119039461699806843864655345698268686700248783070582611170791130129145558223967502732821021303622063451043116170148710436151186137994410023280041587802303200649531899372054937446654730462458381386645090299138237806831614384178988398744639172639989032848682265791159201488532867756522138768970395140433387531067389997521427208107595015755323078057586837312543835183475672882616448391051720633965385161265886635804930497779925130343742822430180063388701300687694904871597052210519969304563939132929722787885938020780246171520634683255747115728883322091430540384096864947657909379277721935241683252401973972362158889154307135900137567983223627361866517189751312153299958927620467417276429121438283516024474321087218328404192213606982143074211093634887107763028833737095875163549091812017138598512467483107064825560197292347723715244304119287240667193048653078830484603736918276750996692460824704019844799589665216444576636567871556875947258242113696604794625136903968541491182614092309270305237662105911781568214982890660608386686724607308633052137639927515099143003313902559337712544284365356782566646636878304216183529817805958509285663300085434115351437028998358178822756280997321489620546747664801959361924322602520087089377654102245956513349998496681952323171877212960954886317401655453703105074379062484316545303941344306018010799773038851786147225380277783437649443619333389777163304412388776898867664195845233968526468945113637912205258163189298205286711503218391730013346378467169267183368854333338511053998139315988832270344283095458611812093606807680293356408660851606811934926491840432117097654418683623267449002046300427750988020883065205868953017390201039542242872227513288538228155589997096908711958235869496459856057365091774952151336009727876140737579773094669227854113515041284719488731827088484595522841851053251018890900498116554999569483726478658987247679433123589456831091705835800944511553686160819580946179353005546471134825551133197605975478741509734964481610486989577505268549839998360265066564393235047396411124688713653409772305407995374720252311340355556889778594535522941030474725740568897193540384765641527222199020922292647047405295848722304724602687675983395299697015467350146332140957942906605466264419554806782238919587335440417818060761122183024824783687141692458171533079036033979506602902399331324445186181387044846394580767072916791102230136865668616344951192005269397350733716414274751052050712854027710690180760957119682103934773784144301558415290273751705036557564447147134798885957264700241969110729837207696242600648843322006976470452037208934027595940693729969840638495160169378711301784780855395934323564794743643990126609060837936527720782717285376201046553966633066794612052275612756325854448519205725053820416148562601981071058087974811273021932435754287954618073488577274603103117046401670605817341437027876487677933660799496392954577448487912911680977968985733083577716206738184889955963828807781428559799892868649593419690670127381238304622706946463313113732688972982327503769546904686051314693417525112780253023691207213763542344177813372992867119071001303379597886020443183194323739006286085167717827934137840457102344229427598775021199561611907492742346884236192186553518275378267675577131411289768292480509406349241503806828637667455495146565092854514635526674287768059695462459800332984085467726088859351500851489060669298453430157469305701876976588781224496101603381803288191447646459701291610750319246589921062787052918164393903561455485897438259778220291568925089871964797722456744752708992104685366983045684536513819197663260255588165448776256148474886833734809402117892493237602150244131368757986179477694637724559919797229615682194263542152489365060561995905985140206019680779354022126331175068983737336320346777852670147922664418421183201741518794559662651756701766022197388478150589100433570749410808010000891890403182762544459815579153190520561723714647494872834248337267106336639663236349742484404746486189195284367110165595848561227397800863493399287892808301457277779036579868273874353288197708133939182862092231334089762364207527322469120315877071913482327675284838547237571389351133948710298645773940339767858892027892826107733895095557036914692932432239022738089735342504724395768648884407152963367661230967852695482263494031998074252159097851021876259677100788723727805404812551002089005302834173501504151327404201760476442760309580809817995722695540933239930283133770343140208357145486234217450276836590503608356108396282832340848585419054747018533840612132437144204725659069488549893486750975849733936408337446673803049527122983558385967866370904972660427617266067178105058023682080688849639877507655732309274470024244000086259331002128350867635049277483410201944696428583968803663757396419056148137620384687616411325272583970371204236933626019915410243030796939733257667474223776157278804797414940905543327367996027143149871166392098434222381745036993243395086657211582740389971300906005841807307386738735833021972113740621715814278936077327184298784053317917606265660620596424582684566380210534180135093694372212923166850935295234311447763734284205586315089907798860855545902053528058277630587103647883000696123514725074326718796621200187974640281390690292299320053866570672127176332315941382561740674826749537974504416674032811289308565130348311605346623408118996121151566896378376660096885242360160770164887902757073093274278214712074662104867615214125029768352871653934611037416127703244978499456045963278703655944742621072290958539813156148209375322195771082192043242154969431776978278201500425993680673325209678263260308095593701118375149290022664420246426873605541980039422808233741627572590421810028413561841941494747217905844272021930068664619836753300727494233224914274055506966506594164666121051160173927001964600731221271212683434306914115624302256515895629522264547884943840778382108683430818245160579251557923058961061349438241371332938827738862069865546965606012053064168010657404323952010672618007525195483558797714839484705233858813047753342277270249189117324068124044443074367025019554331521589994478988046850700359971491352748759581071086058405087399509799157877616866360542673236162166243455881614628988658512182975844252194585925434772375357634900416323739859877238616831800930545325092206627183413899640386191963469377209948231403971266685929924500262316845037519706001376541151857519588042632117689428708106774484808129367340659655437124257172281900221298455793758860965121287265718259734136160054430593728943408272179998318779287811907868772858389241603825187524906276782040945448921930026930107311079925927808691676713537521701715794466696603524537892737549594706171639000945351375628619279233667160963295535127166817044732049224373511162277828689495168476721128806486241197846191701503848830488915051162246360291185323128043284374682211072770799938522596602676799371085668740515621177883662500664666512078827484932798832859154043621840610064027191029970536924524982967792093008899940779399330407084488420037271690410722288152761292889084029583550656078833191494903013829089133453377739662627852906499413389032590324087153526690030315605852476724316107650303197947127329546615294622168963480346819491716540600261295381031732912396054595081301873366017447420805958959741857830962973136838814908684557783885215553839979441996799035370936924426357245021540268928402963935132348884090645683695534336959834126945806390359322399953806614252336918143984942638470798968197131229674933683248559739520484660017527627940525513980515798917708256257909659267061124902557388127339343042035102786426796006618575387321856278438541857673228735420080659005970406231371394555159818182469529773887820949691344576268088414006952452032825364729239375691778199114988221067572913926475682353006215593034704717217806709090294083580329061270238062443668389201136350803367141404420536420272063433094271797519312975066518974128601517701584442098167929998955857541422319438038045400156083314054719376155270604003288418961401798473416542843474419274562334808708951713032727738213022216410208115781304326218832671330420290037865382213108840165722051974129343539893874357645913274699233973119595358810326519715104588975356971438133943278387582069911745014936146279711536634824525793595338805162120627295787684306525419524893190131107768356839221334269418329654016923672010220629183817386882517880618617008499794550489981004815218049405097428966172470871523791459917086277259066469816203136263521148257474741296159928907554740104469295561008089814706269314377405626692212478191337303095608458558104524866361976026400381809531510477031500923740856994640739729807216750424919243636416460473975217495990529197377787216626528935888830779441503520598067648751325661991433273228122415208063286737070488630538545929454502488458992933092343773167462760387733769371528408474460840001383770900862079196908791449735693922614335933015950583707676877892387335113198286042066590102117323065255777828035138103487042745774475797327041463113313769870353837116898042016349731994728261826142764898347775337983105739958987740068298138827560122106206525737426961466828997808661732114693281027802791706603773246576921229401547823207500239620919839582747563249394422760153550819503294100492466722662547845154268418334875548139216529770919536612419978495084540839562209154936160189095185644568760634858953500971275366995982169681137636161987768426466271424587060122106532436128040583894846742411665631022556925746939597635876266847704653310976750945086602705046243972508107058884567242234683618564961825170783634872824816976367527347170988692721382398901484084399826388800494912391080583885764052561351004357124371579627439036901186441064289313911282375016436123135121625975556994821881817164086798860068301973960506337658391047904437313679452954351878026593970465059709720666603614044228298426358166127299249297138702332222200365634678912281961841856881608764459490172841638366974283476819958006699540921180149126020362495765610964302332099601442798585903624489127954002426375936952355623734804632370530643287226729904606897094546142077772181063575407843553271887973455518743016082508841875574880625164092328074009455302001485140966089789397641575511829761370458655489866507555424303808756978059708663639822289874709784406642270568566355598512809631130892051685960716443384236946307713722513566722537500514209039219058688065150208088036862124051653499135301674549293732023394321181751213431954580834100708138297235105943445694954110800761909809869078094887948760418658939902651034819062011666345637236304953358552714514658249831007776118290781083243708231135968496660933874429603004939121242042300474647868242521183188762576659183277355818888113954780162453542971035432813126652017689189436610577781274682018487952399138241281586086762505806282489238686574298152625405663776699828918722361167281008419397723221816185126073641455775760187256619167481101883904987865352607590507000487662901497919176725538443172407444293573404843785583734410908091833485608234307361980744328152955399406653422955415434994117165149856337384053433808077387380327506505593220708698342979950780589455114677111531637470154879271588150177700408711102575441318746174327882205223456069395558805498224431057962994377938450258942184531790611904621507062892203146440136195930197452787003214503652000762724492547933836682699604138610650795470342085874794393353681262839465388603869070105483598239360158140891109954966480175805028867878597342967802903539038750613471145707169964942687064294283544807145591303257429808394179275893392469180398214897579524895791519321620897723578629922114092190964723665809979732600153520767786993903189599901178086652072499068857481695005162143735480204596100598796392461694580337844314030487977435443138620543296490994290459264934916185175941037606654382335812264954115114424884086532893471276239874229094484319967891107249661156070020583836579571753782582629310754739634626662977181362596429496660012914279260745127166267860972645800868745287697153629230241955010150568186818280728766217906523552990348549187901270951397353489023660870649250557333981486102436634284817970619295697533658214550480875441753195065614346264788563760253628641157940247683199823421348154373627124034359830639669054284097565122307895161100611713117796053899651695017126265192267970978119035181779323395722206031105869166118088201406835697950947128823110987814648414378825365598896479759421509858398556981867318387455956806628976668072293735998751577086217672831037848604475298434291705185120445106892434733303518789263477582873456059636522954208855962534874351410874336979462895052966778292267711834378867192982238891704716685557678875338433015108144900029580123379354951777314146215055573243063819796766867968917620700525479544823944819286809091897313733275978120544830172087723184053061087108213616890902953891593958021213148140427954974380147417487373789875468859996914747232438172026826180453565547280707767789077237911534335114731611782797230230652528911738198918428456888594451483118145525137275908211510587619972788124582787491114192385592755754986917771847933707712804791546753103357149057752268727907222646518688348976671101771413337059813570553547767384680868484232385355142582540378149993349789480810157480334855613915182986340737709076871185436144572339402894981975885586714072300166142964940347247372975618344918193792280599469580857323256175893418755816762334642446807946141069167692904431497425416806209246139093095286694396086697062781852445820860239398593054559501164588034137532931718172156277572565516534595213336743071319305322842274699528778600087175439695929694900770152682075872141075191496961727931461406017060921331843181675290002419140217592252944370435154304717131139234521874300360117003702083804628873942893134783400079696145010929045662893506259177176417980654169187571621086363634246139447479374288284205161486511535436978589055983067131341501346347567087357073045312554098775505807886072764851595949404923466503686358813580782376791060849648050803581998525998620152665107966220815617735407856925117558773394076797091382908890208405037529411819325448041930780111534994100770157569274182686057878493999745780734820473905930123816439462632960299300569727200424301562029463463234598244466244144252188340052381389936131847311639552327805811293002232237619689406714819436524332372295186911150651848156561274039862371501502568952514115736929159240055526499288847200204595243159613056057946760257301268468466850593744782247173714151568871514331126015806044946830777529065433327222668752910337811560934279072528086554565356583146989818043248088619171847059890399133348434259081810931821385279834020636423362922256658861392814958336964879407239077101331249659804081826651571235493626684643229115589080418793309857396448545539543473113819170203933009817353271137267210658689372541095101002516756898918817257294519210585754595205094560039485286215263096139781093306369947997525864250663845469621125354678832967033049248913602078001001051600303490977616909974114473787167263081366760739645064654156325420099701551269163433460339315022686544550917099940503465743846281774322884718219579790988541930994139838897560012771182002081171012072640133338172784087144160314556969065475805642211906588637812076212541728822587220956045584175557266034193633962434295432791389749816435259937893567579436918074187393495723220155176523316375485357623721556623676803955346886438546937628730389774330285892335409088835464422204071227666801808040964782496390551550178540999246853300798753030248504191473238461353215355641085591709081516360581170600011853766975994098103932367705631571977138917566751598735996947472196559587012089677272984930957099809948255255817775798442626830872988300972221878913271693119869183354418345817537368239882826055093504862129972804109787757674839732285439602358646772146227090455955542262269511497367880264429113100085649190165711847690457642772513744762993852130476470953781948839229294642817590858970130023985708542137886977779801540368340847079147257923542248083674743401959528172523410899398597425987255907788660659313252036596509754796545327231705277528033161088935190951257069956040315953862447503813462112312011560358908356030537233179976445500440463035022510775676898185629906680851203659615737180905214544968152587558217095914307484604580788260791584779164907082987025204134719870278674066652526378949796060159207844508723006535297153123773216973980139679371928097298979542770458972947369452002868433987745785591658394639457327988168736321834751259369894816520294779886951736777084672426316429256260045588922102328956660086693659278857825229716185936088386998752217960697049742075371405037407003124708610796888830324115464427970656427665683856570118020940976124168494220082290636750619013864040443888902772536814341094982139208088596543252319312625906416452922062454951616720442450284948909068021046609165556003704441948678500927055313912384774149460552525580451959108879325288108171593081140706418325757604398203835133808798829171605922232042498168785017376017692994996240058135316635910254403642776618958528097850068022171028073056606313407777994790400087472916267442614157825001056930133343969652599750428604478779829949545911107689156915024157791390863816275477459169923399476214490586068811717894710575705188118660462693358673567848275934795342906919759485428995894026105508073286296025344867628049764741348575040152128963489470751488300413528573851357959170426797217670529646804368047758597991914168349346891327979707803636795157359479395340388112229095298155780539148636194788826325831341423507924065205775572033418418168592091078601657033858310674433458073013792752223984033580107927226092903706068829430983193438111257402934252765873425330905512765383592441058143893078386326097517066591236663748112911609955889163716792680130060337764421455003616478897432753710430753879961259546363600994833947211637891151117313210795612547175903494944891539403563133429349212084419790544971633723493130175995824789423308623091856983424542536605775217780473254111196586407694920357003507900427777864284750763432039928817132831888477785205450077870462816249211654102110626098131508225249592560588593344052770371056913123336405443311470007138513032928680967528360029100911038481351345811572893592314929910166767891008112038886906625032724752356164640905857787806109125596275287334410026009929205406942803625784749412869142361320579323821334885898076618128647563106082042612575303536014340138419566373403296541178709430574797873741431853225719552927230458348780830597753064243829418179006615696697929941924240903114404245397408493531642623961006631184045144533558470017647478047925461036611917875725988577872286135269889860011324941001868258144718933260339536831421307277587025460098598719930989025926559410294716557492246699090971126763905289895426894264506040134898608143939362000896780703504988442694515582948502562594154399898547669497955115733447063960866073900877558904619411129726685070405250687726093938063448861256636662868657863047848407321564933054345620335091564479258884438835279415999571621211142557499492457571627882868984791032149752044439279528714853171671002275591562137894641449501968686551990137338571356238906888228885155249238771607537241942472161392914710597699244999767424742869205361570992109441319611625036304499810449929177805081403241766446577492241079774961876189398897457245435500372297040639634627259395793770270596561717335207578377344499696784973303937498644814570805662695671939339821420506101569367455563176871522081635166549850944868768450193905876164803261364071812480409760275865210000760363393233288124852363816462212265046446981440072416289904266302565906554156992614791020243613082469680259031394934354280271098081370022223547039985645951180384089980754108342910425960246851948929646785889962987281796241238173287614120917892161859912852676518976373182019965019903357418202453422291224949804124971013582976936456212780452666096402332861451158529684469099600049309135848181059089781825964708219455475554679174532903632066818849880391374647827657960382954427853367008714049240873869649585642151480084272553285028055610182464540346237355054321489731736062970165335167172123936472304664650845778772505878709391970348097935439114541198514070444271599516371733411372271454682396406802529243844665305909061005549403743998993466192101642179444320256067793579521328300844225098581524091868780483506462227093373950691364128852596752129717860204270870873928859865420778489567745536434354824516395377440286321646475571731352958796320894328792340174586795847306117759115170506125150192152049292865996581208042349075627840890109522079196985312648018196287912729799600153837071242281089539636032031615639845290751717450371493999075064669724836715118546420225594838270088773458494289418366681803623513491684692549605390497400566599440496061535024344758652980312287223498059983936354946875510480658597316713174821584047908858372587057964552895785827409308709345333194378998737534428813632252666494508891829642216995446683124674313488456600462212542858087964550690003993258763107189234177255967855922999924217875642886171912904279391684809611472681774701960809512035959616890339439885451753570801947389354070016991241394252258297063815444357580976819735222620397504998246306794292400787198109303712493551091006598449621601364810594171603519487034309058489216693229554298422033454883558680677868520161765953523164899684370008084243951754410112031611354473683702312402608055408749062537518818074766680661357042913907188424351618397735377801839424685237651560106818768591451295994999473057682812436887737712058538997464148939541067051352619408757654010400413514758887807627116164690766007956709056606436147177898312915659314594215032903668442211426875190998944395682295175338383172418773250460052009120734648872865766012378971993430254288524791386670692523527831435992277118357663925552531759233197737144144789611805594212690477440791523957873519721041380996462383355799271458053241719559621995543156602606326323186126788445963317505062317129850718487313199465976575433477453300611247293496134983514522025768875217261156918119922158960644090609583658009734156016928422570353978064658846782493739920506446089276529673687736671363997995530016891352127000705400945176746989715055042067884642777287654503194593874771825725534254423478834926676508257611670722018631640544674505255897422888244698012643518228889568405836245568903725989839629666548182547634622867152301266923798098528527992924615925811936468967098847871171598287582424813109155991055353567187337313201970740319526192866826632028429235932713282157930521487246765134915779343911193716159484017356225414284073414316547274692717806785309861559828899588604573293957382758750059395192827430381270762821927014139959208442703631672630208937422373703917009489049162194094016025051882679336653043897825140172620432569662551492398122020319372364306481288232584808125018401331528056488128416707542435818717626665502622562348779204434031126395925058020659388545049255298272509339729491553855098069588419080919563524638495070765683827672770215996115020884537546926188033077388934385880537936869534271833735936952086963725783530314182385900219211007963946657626721477682126999444997593554500961907781126542115300659269013687406085916382777151640684795174450927776589678492038078894003794041664539346818839728910523027970808906652767172964509146304691786371431452988694183878830983647730945762486681606905207796727498357088764719546092100768029502542161657373356158367144112789435849403466580800444644383053484463616516105665604378760610555182042892200069416669547199539018054990233957746189311172163867810092781873395737183518123603535326704327456862631617899256387681506128867593607291528311923151699678428149156672042023305822982074460418882053836638959514242431519426529102689686906983179931116294608587457311671584827884458591332671347623302463554238798939564561344958383485357400118942705389768331798126879363134383092636799927089648371834988415212323950366781509137533236839301729400622361795648002647089877431113039955616579282769149342828535440981658482016193790272466507294727800781070646009312486237944404120013433905749245017073400756841966034300126327216816068813175132449672879018459779906543786297096240961281752823259278603479886666058981705054275706868457068523377705708491010532179460632477634175396539710699791660174824864276798027044342592026181636888014396356116321873644267807140190400014602055263271422595817923742985634191857088137744211320815588586903557350187153250174191064110050575980938768816239642836689163508356268848414903667522106603749234909089736537703283782002120202702502335660916324159698458071272900617433537020670103304940249663991006724833016959110198205563281081262549176155446237226161955957897311590832130908727083603512294774998376971280166969702620649823535467255039343410050047091926596950709442555129884468744628712069229196864668206134497492550844661872539128513572582205797355164361781839413945952005915969565639698249775226505250366114057675928473941604203176755097264775136363413851590731079270303630988797970262686612503876200505262102436427377129684049504145530640613326358610770241490118914292297667872722093201537195274858245390330978357385268679604316905055569473886453727508549397990322168119566988670478003981150437125347953538231837059660171754978828957778417835418257654182298183522577969503401138570194270953390915229731362997247691023988543155333983207579779674336006137095940637033582429939800611641949149535785452961255064578758467307464990086971720051915542586282047717436614728784225881486168161574068794153895263302666591809535101716920626973487708494337806000703063931721915537335841286684447095587486024209583077617563784375256667447863783933677184366246722066103640971383452439988097069110194302524811789697024913831790988771227614220213921149895171927223878588223877889691111834559737985272081063404780099638352293413938151920361130250646404230893976351014354965093168555527730294992672163798660703364865175269881551740481174184523037333140954721725463665386932633716773320096660837598940742076834695321020442825619103346342411797547844162450529037649093370158710631286784222107938055724332492535129522113758237175777475104714312210229570526074663074052923227912334967824303091619461278172671558570774395513826064410869207201168347639705385905870785798335419257212049415124982022741678286299590414682862219508349898121130940940954150251486573192322140273349943922599926351905623613928314740729778787006447826596032128826302663395705210926831929764640824664651483535065963727588691207272938261865791374658025778992171397092170531819812274643738125997426119366067366628800557450366315370348615978075864529369156630832538214751911668066510262092847211482753836522667604671368357970814600891406349565110464757044251719927570966350110973033483730000008604635390067516647302916419756620751777802907500181440709656894300864045939339661013362242466613378614457183503184823321795583568453777178830233064725374917751966931904154097379223998251659909187673979921401883271832093273792730960523371741929847969654936973118290288205463016725070164633467053324084036930187273026362608000201349068461196029307516766914011691639723267611516640446228647876836328726948700884003089745183811206367980263855996261999086595909149723494996409928151329186029945360192355289006254778349720094347558180783448785459963609004225347668172902252904293427986852061263923606860026696299779690265664505569709368258644890867428468088205779380907452367847464833770639518772017603780251420662453296322008392193280286831970319376268746370877305428117901606111843585279203064497660529002339357429899893242216371889013074508724207703979598737299859447282272747824283522717701424493563999375894463959872479751839467733173528243162528682947442918958628628243583171371222360110792661852127402455553216066372001936166075149757877911732822480344575912416936130311874586079477316269794074762106723152128080785858988262923592120287508040923564997376143577522011417176718398047901883378056617819402995458037485926940407794653103053604447964018680787992313882366709376964326096057362246008605779927074786139262788425431984721160721900653667532516613041436350865153171527358905145754942423954589142798623846494902192070493131033115468656945061358264285168320811536182562526581453451530081551395471153290159225067516901167056919429524359408404512171614176115387692172240481540180780966021074238396569858738208057852873899624168891671620792618680834495903713757096595598755437341313897916337704306841458846611996544391302827993455579044954231870382258136261682488705269384823961134103514321638640881389297467063317046473974667902064420616279154489136108497145990655850176764274174385544915146265123790715785772528670376823814667317406632555641250195759027848660275432435387126258587613787354479653496238361115511767793065966166495552623662386654848853711594414918692298803771470474601011006240890580581863155178795896364298156911987993423814795532593786529188720124752840412252601170412129754609043717092958706984943199099130320158669817533462020425204298175366686694174886126273066934449999740298198548946757130243191301414490864366274915444086590927246120531644229408934859789983948544572477851498050908748156880188175954507425549234131110295596213494778989421473358768816118114853537281645739766496388558426876139307681615466517620700201058453140287837858079758937130856420471947800231093073138372490851255186500336312449246693882795353808910044847137623938723633734618988237500262474100422978716993307146046348529409108225047130074939002716392975883667931138352591395205871827730015049415383641210630075146750062268377721420800414469487221501193795962970768588543703528108271159366106349641773890977990311309327944978039031843117751059393255498311683288137586221095466812276812075780961205274844685243685612844866125027406918843769470034513660689176324274207043980532410274826492105575295756958199161998631244752674529140153830910429029312909474872488092619245144768099472066297209267628058735502142690492990135919735057053040046671643559448250065380503865134161747367486032813839987206555863386919826924618443377474936359752494502439410337941396575251926228841366768100151052614631613304003544595247185243763681101400697700253840750026503782832758678003885586556875995042903500003193220317428594772945723546138220772193561304909637628838517495009992823835838970741524026943653059800052489728206821582722176834255752098886121310781205460618724499634135261565178286003290836829842324491492733326469824260820253960784131555026176941327131136138412002289465481521919601856319867533546874311978122509834614781811502318488960611481827841530035729957562894744285976323134501006017122332341754872986725296292298999256006766642155674852537977023684883430442320335104793589910534399907526783323589819294029332461216808770900805220298349537745128094015186410886436428087006173184949191646539809372842617678317923952154057553513691986408301966772741801672747908213968648917989024763937083717005964340818649731826917066707023249418005521405195579530024137578267575580621238544982246880558746522176775619589616425988592897589550806228917274414772495127284751993158908457709353770668301417209957680122112101898622632769501197245146456945672513508693202065459861743018912355574230829414381754052883570985612732930742027563391711798759459805915269444709331175915160492274316818676152766818790973731424547308557702480003481777776081583470177402058871471347998255622254627027214271023017171555741088421410239176006822165556825502076054529417319733996066450316543055776606626945944861380512138174936070330496190972546955196013698198538388126279951146114681742038421603225731168776507579814329904883732504188033039537644985592301705011546732654772637579751996876161636393360798163294195155834078761545476199080230558405751646023726494637868739372400038614947802153493953753435054387232936935989490832518457734849648756649943400562119411319910840530429668733443476089086696035250602376916315055879974422623912981728675219000188756284647326066864426244252906994123610441788108763108885533890304202748616876534238512947227467091828931046776225718658983534260381353513621240802414329423349715276737997293804771126305524301501854619829332909041710702441705356216268904280424885658158788366075144166808209558808533916534087544100841357468182684257357521125902572222412081970144931934251873827853799147881659935123053701102024322836642717545293109440867532020441878000148947779473196354134458449941819321547140103575673640504790578895509131060869805784272329014932175214907476270496643837829220172084335641557079998164855908560470478739056984667410609915684521651575121639586044547867371031524911530842465442854220843075627961044492563994504208642265594932041954534153424445146566087808106817450834420984408655299070810169211750883741781425529037310480534002256551192061311573641221010120008875261086875253773695318996209176469860994933860275121607488211943634056689553396509792922741294418366299948625745828743336646747161769479263084085864309532737515263886580041982230558328142665707764653370105539455886074078043324891974594223052421834353682419706453338602145210964796392748395701492355559037974752103290066841169997065197248100430162931393450338929784060238811977183061036086065513385846022949044392853638302789949067046045482248686637384239513363127315071623897795484403456315470519734472238869191840843411664456098723804679193890616441475433223141226465750987409252526607295717813894915832475085592924637633402802890307599453290712339375546595843599487357013117125957848542400616842942738433214737242631216849586099233638447468754070311209515646338805542422414304516542278294226237893875609276191055291143747552453973572742096979143125587987871907682922481960152091025389627949318321004828761769566510812121275531595037649758074531090809541139516783383446011222304077217402881261762018558149668604988339834958924404651013881827810546448525210472781215336341658854586243705135896614095266543700368219722849809001760586113700708191745276911061518409024712711636207477486616622138826068538410257228649003932085025363035990931065891739222045271599587389740595432842572115181874956570963344275120195655417680725697543235638051908623057458095458186599764839875240800186711885708195320481745359120706176786828121317777460523240627330737575524608398891367544822816614929717149928804118811805068802382190683864094295872511834998975287723727853992222099092866414671797522677433362390731761746528102861198634640660435380722030416716386735979303655813951592093413727387516837670596453441499200309877193286688181326541098338157108393456996637771477568408139682768134374795770190733109294490206399703978932388361596021964720120656863760536939633687776900103144847387395289567250612237471861296318915273390000665753602455392636201039676097056173934115289244300236901855377875114521369509368355261864952139578946036143643540025455375621885517999003240033197165347415220134797465802606766916282374520695329773935503671795536549544691846273405887142660725215961387716184766714970218744707637952919469455677700506154964972305364113034116151013629107880452213901997962933471517866748594457684538375107517563465838736744074878268299783665278229645852394876239998610892425545354075544938873952444021832178454538828793420657670064091633424351782907889935661036674618308227317860642764481003910782721401596936148904092944694463593016658013534476157694003376450316583297681140539585426596320139863068329751284272882953632024735023117779014652458048881732563521867283857026671794887262263451565910555714067554598412369324993877167477828118452760105831127645446851542852919463025643985469162790589831563656296244166467974743162589157633084480593586115293830653910515623206844076129812517797098155765036231122851004282080834392518541360717718991596166991129113083674075984789530757697318293179036496030029088195743541764872057832956514155159569105617916326945289265327319599363009752130303560893994033714214054790366355928886429791808832484853324094182142605629672434178693059982643972463371503283216491903829401727835119591945475815464785074065524600160541071431280929291634343457956162114538605460702071134299387115589110115654314320175883362711521664064764373467680386242300806373033213117264491484050957042060658115488729718683460620930228497068830028589869013841777925215317735688420855103482185606132086405281966743777576371117344555278279059383014119282924152785658620091696023853377470744747891235109433915299238452805911783390350669691420560671900941996605305672846514460268596163972922283084740540061066629736802504044887125965233872717848219286668107433968246004575426155578280918930747446941933720740305471613348787014571603799700359867649796541231117768574085127823214090709106507048375138707365909043614638638246292987475843254084762829774316972385737731191898207038662450667180603427885624974523830366096205761902523760391658356930037460481961060300131739412856654261591902169603086470331861380155065916605104110888114899925433278713159294278696305629857457108149777969671340181997721222671784895736213868496201313728947365664961970140207829771114368478936217841589076144564076661872246656355644013964847293154987220687461055810574520107413020114934081599429709224562367311081528034307212196692671022527589986217991234415779396216014280946261027534816648331234652373736393575176442364428325698954961628897873831028809097924937086408578779873174842930563275676877430614633417847899167738208370053841603261105260564478788552588267778245764403718303295243779233784726956970466482923001370793174613867238151293006894304985545173186397523111563847943241006494838738374759958160789355105737465645390956318417698042123911561678247494490741623141879675668254049248230490723878365290725925933111134200044098454689050453084030639832384989551052638733084288684749194672145048646605185918608467773335064841911927068091911442451128385030962998316437229838181673883671750792360561145185453359559961537046477034396133823927881260391413796542370836089627938352433449949771348790147649562498535336721143531817596984409149694266596698941507342109784656095907289861991756588432981041555383698443738666120241320477932989979890689386915236694589396276563304908031704044276118080080411981607711951408590271315401756555280605496232700882584992547725113003655391364490403291153332894127348335097456406987667290548247995717799404547499309672723172078253029872112838580129587169510360004602739872466917090710744115967549499879512283932504286924181988397529834529474163070015213786064245853878928912087173912583798039840458780502630756368204275211212822304119487124273883796870577751910427340971674594518309936535385331679539573852675650935434183383005037970781085639945941404167387331809916691014793791175845132479503947513448595347789428499201452246837005968475335553080234614284642833113090997990724336860599025388367086100955870517784126171079265580419539056165489648756811399797825301029479106092997492414428950031423401527960797372346126919307362285806581311690197619261124698739068936124212765638976274934981299565128167839812053074012871322273218618342785763036689211964209868334991453317936052868429434549063290678410016865267885738816764533254441124013481916912215100070735390727001776657351325473055634010999907909572521218941857617432142084303938146089501678060801421612014294973719071136150748526941093000021589586008554756070899306672766594815953253109913301457810849267605099561005749703821866494249750192774520090521292541867627428332947623871535791311073379320469581054496662611491784573869464002365088617752107992469794959619444302089495181397766021917680514050392226194026115224688874758681316105389162789774579472359263056131072727915445596074817172929856270610770700669182979212550332606990783140788958783312277539105924593311224843854760913271206254221654652290293865850658810488782952618138250598064859586235792289486889600061922767198456955521646036755431962929934757145444438237407744172369706115819061436647991756846069267472535937000339165244106778038557461724515190035944262849343158519044509504149631084275585711424024100584554416704019525924958764167928679316292260441073689054084167095048551029115757751728909252558875085615661553547759526884602473563442606705561529624142139098578382246162417358555576870543927724938130887491137759049431875191093019247525561252848547476243825137540898604224013359292576344764814497837184576652971801808568763822987644691834089556624414244413240071949946637753521620491889735636276086859618003852288515999056941497054163767049325109434976025906315575849285694889951784441361725010691169832059215538202039826172807534726539208056920773931917063915884883434163575198583594439011343913962990685924159689306449214917427969002951676638582031974174347722510429015861462647406077157042663768135201968270670497017077558686057600318664909803049608073532155285424804406288186403342495750737450757977653137219398905988738179592750414623208077678309222346715039079288663049717866692163650395351321936094617907401714445809499584189454921264772500111322697526621539113388018979311878697034654618237983543130797081138716550429772072893633282881678562886084694211467015079723727665393649698750459233986495231574378425907646573875027718416001136390948360464093754887996974009720896827960171168554336455844716512545985151677304128282390239249910624284282278197032563192155706913609569843893956377239255132862990108134644140673281966023705136762992475471474034318301842264265093467516638110446332743882850166595495874729308668586922773956676399479126272658425336338891396759170624196673656356741990391065330796285813017533767015746277265908272261458979227078743487824341476482788264148330159617753339925122959223222027536486463292040934131892115151794244321258438573766465196190262781876962093265782628672023799150355201778198162457967020953907739952143942639368309563246607279820199537646282563358777956863348066324289186723198796350347368544536777240117835230861457406719717579487443226531711745297123614641772477815510508212421319548787241048862721404378812601785103516890108448563713700390035668718775952537605720888582328121613446909497710646770877359117949484945308083560463223102875979899715697302798426496923939841547616469916066708592893033711473765236521855017632485655343028800942107874845973038943877739861209788803519129242708153667007317613502460787176936814784277794324863220906975351726502720557871825480080369312604981603337774155918565891721758465550049678378019853182188846405956975004697019885356501246429356465273481565294360228237923135482042040214396888800373397860556675125292844930086393116564350069055395988151432124562452022515977237545469128077475026429517485129146724487698750602830405930477984717164359876781458434736369031311720253848666505490661667374467554155925037824744403999904902859758896276469276689961229577827803351159480159441833859046902445922778640201668450545989503472759304886024244262205656267548766446776544403518573270601768073001801438221019694227573169796126199727103476548285916079769604943572020287188050317251544988687397107378858469381209034564781397184317671003692334521667002877551056372073923948110819993636114435970197501920355226566858583982862596827799169477285234199174036766248779065475583546443503840123582591667750988959238193620510498174285940142764359678344432688427276084229215893394304602113656463399989829917828575351301750052308389708246877508645731295954689630608130124853155542293824342296870271550634479485665107201041613473321103886542986905184478538084397404076524438752075061066360578031608512495133391889848376790574569518696165665016028037370526179288143850679411525907915009561032508073260403491883769693549125340934052638591376557920942447994456117477034866127041779530042140685456653303996967998374822548225719070590136842008576765630787508912836504628495352109514793891597755673543091386177686330477889353612217177887163336624269933941695144847221440602156529496980479444178827192116465704973441902175965834089069158024366194953575976682528394959204826227054662258601300855758209704240239640244434348186846365166962882475538135056069345957069958755806733282566112773044500549260274881390740948719680128961017726158144734504814883857280756256933877148065465481990353722002141198534085653334235476100449955095347958439103344129289189972501042230621882862230827386936920186791527065624275620169781978091059853092033424326049127296424844866685516507871670883949323565151891716098751313299282700657872052673226811880425731069229419034523837767472893757014795816675918883829148619992679234459642835164728512978673129426249799632520286593673337468481946086433923137506951771312191860818219955321875434923721614931068308841994347196422889057324190087095908875625303208502349758081204214364797491060228177845733529083246488893519945881786978716593269665951359981225630068465701215885083134104101918100139233108898391558877932892718037791984909238481492098828430721363274463562486790067505016336246393657944361007464094542832040730104326730052792912179476490670654656256025787304577951499391982653704579877508840311419686180332798588870361636996965533034975943195616017406849117454603088169518158933783356557841970789315335235774255340779568704216166974202663053231936768954862598433739589175447218832853926786454386384922796101354770542837143320305220757645197415319760908741913945590919116555512730214499711012267928791604846682103828783708084681888306064438088221124862093256971725496175257933331136063643081406945233717667435972978924099275665542328661604458916493444035294308530715603255456041078615174588205325433465609676662365590638581386205541161427970173569378839679414025199567665366093071587662494259781251442584383158336296690249598535580332648345603849138895178731489752793710758204891563250805893317276033605958707412998449141561620194641047369026511322612439272217798291225219649105873572920438059632526650088257041714379729541788724436040776200895262358856375078211239005452328107226164141779999975893730224930025030927975519408908655565023158582701355656554930349246043588521684143347816327539865834235047967663461594480547972030747392595433647749547109948765399299896352466709859135395989409567909339929374587544730897993787799751656566052966677693309665040228166096496130131771311295798127044088456390359068106742143888342094706958203918553419599969226511992459014786088654460730344687982410635475277468576747243255484831461268855377694106803120103944623121361230906072648538360203948906040941658933554757924369664780560216089324396358762124467732269806602937540323308190467277579435512820628510783040620730071361570814272673167516085469078231539547138815632619902956113061690523839482094501695748456895507804421934972507628737205675847519072260890632843815018378214619275293344871256226178049714589386758790755993810319171241546499585389021109936803904666639247782079709465013842819815006822414827037759990883066233757470319942635302392406658592519216562582392646669339115537441552731887179658295403797247349375805700899234576492576349745881812808494474456232886235749369607172570426653827377514786597832048907872483978115866417087945322060231618661442679389039736662235803744046661437889004782780604853490101543506562679097205346941979977288635110239738745970867238297886324889657981713295100960911856349440592780424663075747333498046891122158156817104579447627122574488977413020654660105917800390562324348327169189729140756968625848869322657804206913891755884121505735950521574919441484771063463590227254584325111064318992064236433565733209042831694776539664748413544270140751691626749786403038099011245194657085731750967859275720908635973110588584978645425252420028196467998732706579449458080424161117351582004830778006383244608481219869786341879472957763531487922603105216265543860920542850738962668747484432858295693965497979999569145162069839075023914610535830317471460898523220703161252890061180689486228747275121545147074039676957084862898962707314315340788260393085054171191684182511859832040535988210760771185235505094502585930396265018364931480426515695720827212854865192439284022639153101891942810624202412692008636458219779445822934072034195629165891692078150566774979906219762910075743779490067866526080831850820104847445578787640427958332902630541317238438853326496781782022945890480145799165158759132211865823606539949587980192129553606893206211110312948610739156891547212240167229720788079416446104919521963896492052232229471480319890606149430263930437416349731058128417005595486116349393498465131425418010541627262291637452543755819237634710409205169334470412174574467669176748681581180215326609622453975346555857206581564799967178257679507637825650914538367896198979015158066273976303361027911929187656394498213607740847946014935060401331208438362499311221761001084756084920105383813806776165718558851818324238494851732797837204709857056520578285083739765232290035041185141359218793815204295685064770416586038558655446350528433940914310330154276040919096189100789553333863858456091182890423644134784373863512488233870760155295194314088803205087393624029186358995435321930818626845375199671054236108807273314925627166220293347401948969471197530665512907568856437617889618989802173808915141829335810449034613089669221577731132987153466302053132260155068609397281845752826430947236444640652767561860034826319985780178084402507155227398954895826561558555746702496518212735631607105940373377213855485215571302635981955103522093973513164863325875302113059954419148307931357413876412867283224792457837415057461963046153763297610339648864734446359378933771594331694577417631964280139600637498784607529437907503159462875929398426578683427781404972045812401025344959056197441075483185398046179800962021150557317034896326033160971057377530254141486139725328679458179670326693244104005267808996833046170146600916255979019493467097316141980264901148823280295788576585174455808712539404079480098727390677464398812250667358704267811827785454032277774030883295425541168918411730129204205817418167630431422320553055847691769956581120242241271719194289953391136940414134797741666546245015560863141665657333743676008888115674542209378929931519679179789016395466510270335991683217866750922455112048723031646341128981448553133247510731167478051852983328824858724579925304445130123376156776922179305697365140036722923437883429446258833662363473691717534589338690978530884966191828287379661352006287269353617859438312873444465547851414109342840097197621115539768939108049361127359338683937012379726623262568699797404998987286336109446622216142514214830354123958834015040649282488183418413838832911550119106275872749180370812540014292145659031000066117170549516787401805099800954890318745268969656735897953821571097109312881266825272646298471108710933634526419071351195859044904198554081231881926880729114160299464087013113901600306219087944335383001767385820816244538777148964608498993392031540355953511421665429088000831280544342818024698471769342364844415023948158499826302074244598253548819749425315728112706274141091502341316916513416480677256639205932442282749274886773468639330411579532306202223105264056198106795353328077133769629671381044456173403301897912080464110502625920704969232808815444017224089295806414395194882787148308912051464358535909795008477921105850817424768211636572230776608184104925185926805532897473330553265334822408087299319262302712362442257127516653096210543968100937914840479073842502944670037363443727476136826002866013809790481363864856173415288503228025111884869387422275844560192115536079794181895897575192508404980956542348528572317022708462201824318860189987674682883347498900610299197752906332855341985065482374001646362220746813129179508817155621060825849539761546381578505819644112381589476766661645254570408483741958441827691492827657721454984307292190969631092986021431783967053985036464492928943545285044678969228338740919564214801955903419410346613870018323451031495196439771350086842832483596044131638439467342666069266303650542519167075589659458700546025798304989383376592381520295644912788100293827259913094571487513084787084322304668275536520888430854131818299908904657193669881422955916109405493672793687905650912339383418043427086934541443483136582217738338077707752507166818821863148396551870797865461486235246952396978717467558584711708746864866464028845948044800020536861446598704159057467785945314194596153517537325245462119293610658473670093432913271440441765802437154072638199096175456257014277682810067447127779195530918312867627999578233438870392545283884676886766128466187363494845127584335885495607493284238967350466298283856024261568346784108483497524277143227577940234305734961043247273616522311235300466251167692981132955783353411022065049331986459189921011301603007804981991115791204650285541821544894343086819592995856154738676813614621086665409616637398014747561210472471932114648779097133112662016801895892359341548278956605204175509700812986472871228617396703537018683024824219878540215660789657437203737860715259102347723061109487606104324363881739125720045182717362517281739598640673324730013385246777387322738901848899107331153384717781085484499757507061836655672430807026958697556843808233775081091375665427775769980501662155174948803627028310638860414367208871323558930208409711450236010424582188958086455296444905661221198839097535243143066410949031871546294096029582165931986077519439770277183730202134497676773718133739586872664216804783553451181687381071388121625515378980964170807373468093877733332534887188112620889800527659032200017697976464666096731641064982970018705045193459973974750322512739065061886852782325880858290323441655099107134039058766746934779462139063098196654686921209176723301299375455499152421018660743473755188998263869094171535949342446354446103515536064698652078753657083810049043227616786741735083053585092517702682879430568710822219664992667780580209163268684292650425929992861191527574623428470946181292506006033196535121246458605057176450208283354882738219100929694693410828431441983701843905252805054118207419080857030863824905524850378671699407737135889805749525423655355435090029319482228687860152090778564698555062453219601335295519752361803140299226366367766938257472850209432745188354091424275268147197346814550914782871022120098724937129872926410378937690502298939837139169857674680401279861548351887184924157942575294388545884875546032127078797073279593388515450862398522935685947265104791903554023297752819956755097748193046036145147851976369736473048807560164867187735671666704805928584326216771311349379059403986698241485703241658173323417557392147752041149376706629497910673276891454359420899664795470363126804366861162484710394568880476409244979912402399313328378273170007925145070536484939725355078489792908388299803061208664013025328603815980635673382295982064694915919095286685652409790679598804451187723336368836227968211993871538124414161258712141313201505779879138298688644791631481342709085047104159646584261752292669980191450075799726688431736965575611832021906215317237543530466078985676791615098226953195272787362899470685596760052278465582665369400693990480824288662466826077008532365444585111246510376493418590507231376392725797482622236383426856423012454389830050911801676209921023705632995143388157929051091309094222694086409449582568531885449486272421711947773268511620375082659265668904735624460504209749028995391748195528290583299683609385257338254356437850371883437509872531010635173910992464005469569205774350451344041848008169771815865272781410198409002929712844888263658836697350311833473335906126934067124709701823386552720719159488680058099587289960023314767021034476729644232025045086581427953379906136872683090695634088322208548151078392787597590596564813083464630565806064718060192983995194880879006144377439712823472031058085327888068150194407649460017994041299884123799584233993315213803790047381275749297941480203377175950549957175391702960238134095169423414328119703275418272637188244768857092381798265990494301446161128130943056732786611798213442931745953488266430906286877128937134248196393759397319909480955853704999008208655606714971305305557924939136035699516950960078314994929589841396560888804201096154011659277232057030053044472182844073722047066206285004453198437357479244893761656856187253457444540552902060369161923780089788253821891427275118118483695172856953478715417626052390353776066047470388945910337713702789678576706338236402322706567217110038158484523750934432687739335141136072966442404521880112438622585284990761401786693261314005181394774149127634719340854243110119952547153287518431840136151373552844861367813955762764318118453867455947945393132495082339815771852705526438874738902856986360397948477044585667495724225542361062192388113015608353181755604981888231450539765705845931189073548568424522864052293324355969005790519108669713611620936821777254281824862946226608412133682621365119429513161589684177710749719189173329881861284219840567962999625557380246624918896433971644793561309487028944597206818378325104443587708793548514694707186910885690076819973832467909972896357029535547617376912374785650523454936916535711285673741480522929242355127460284804772538990620716604846607231376211827542371500352462559461514499500348169951000672764690817102156323557075403770172907017966906998495643071655627750334771493484963775614315826228021721340557775994158304951540384901850136110763216648768154960468347523427911986159052406529442584306507628807580651221300404773016242799338875213052757597159523579859062635236293106892201723290196828109801047853263373588268496509184188011087367145439720265253339567431740398404772691257965521567308802993138553203340771272662711661403460375756750385229299956754367311327360902140696053342836533818587877792624494568456269468793720652386520321256943986437941985061991121986482554420713472795231594944392824117505705041759383076456000822389032185857126754256512368063814759629511572518311598632690852657442086844298507348742314959154735498485430468208515914056059958563573325574067368457633665076368569738027564646661591525535118265713491916947386441257272222244206028327018033153885188374259483335479287031021016344687929925038656005129482046336170538147557535310591530994190538843717801510198889314847251132157142247128151929182076362909917988879723931388771249213243111484596694995323932211747362735615644364584889939605373385544152146993088976040551428197484969699844045505961812980320438822879014698770868655524310863427733503150506615767632180334152060755429818526984388926545263218783276582900035353416133868347327910259420815185919674501212888854389182421662190328685267062851992738521737391505435000932845781497508580916220046126557876823792650863986219515225251849743620903463256210650243622276872745614893716058235260769272813228403566689480900359641651671994850981179754992371479529847652333725554306638330790648832369659078209299686094145016495661568655163881233639977105492967556690831751823773353223217383695373613600662938325493493007091336747044384085964391938948593792002211316602892831182007451612735184135063065298793044058703872159913235107258244061601363515818941799770684916111194785279338544285845608236304117132727212367216180668196410804155816551425955791886837397087187034856680871886919382269918359733533352005138946601296185692548612357231045210831279167422610817623780901266779618697760663892763735493225009268526858014703126732638091757423448719225287098968744745296041450524181619261787830550744449554314763497848705945312831419052921292122296151463726733465278188387084367259236634147183741974677515872374239616001683416257941777429045416331432187819336266641877890716856677002185664794205686055690398965726834933098739019029335218332819692013210638451778348773747980603220074482235180518371715694775065705460796033473557119376446446442949918836237749428550348996534790769015609608472379331220337969318625173086582178813461882621630303786735353185132681190368086210958739843233215670224390652283380151545614787008288949465939312772566679292277368818763304072189472330119932842091423367002453251910234251846087208941681962959851803517595933438993189651137028275000206548092027991749783950079636316659775628324474480786610575015062947571142147799534988868019328885939908781668151503224948564159974038976209318372456240572813812155230407198204322374971076391973602280638716640103490208619543331749266878755477731966011907651099894996145558497773426804037903364106844022741930847594097845626391782071038103465144580151511937447150404424597064198728622316550945147290554556012379635723336125669356486753752603456322176374634263462281643739687676004900607669069753105222676380489759430326624586429381121016794599287352096140245929456105135693833763001996971747021168076248439500701312501344524366872546219305492082079592533700879090171656862194691613095420710578169719674293693373588946853252528272055974442907493201051514186013130634823655802842074574103358615927712994896993881521085015325678932488577337456434523413480464181448375509068753505499908495661819414286547016960215787612438801136136944252523088146684814000571683670483560154390065642835077158153270303635368481917078695262152505707429444774299068683684948079408157882058278612762533988483964210344619875825240171155405655221401533430122392042656918561360889341096935647151387776374955145471236195850525564173328337459003805081201547431755627331669808407230697711510642322142224193215481923408494431510448280015567806312944700136434395989961782326343769214217652284818976739968439556036137031103139125303911823549943911110297361982497514664309215019003012861094731544091881230761923886105631707726599859295538344938825366070416984128374037982803387866334483730986513298309115814685967425054916842058487814903757230600253122643338045772622258186908677153935039223204593802166679173141076668906880819518926309825020025371561209989044229008580102204319190796023508544232107220716748419676753083604291332267670897831342079100657780118755778348967841931017519484054495325440095278728920417101191638989039535155193419450332219051113052774838858249221215854974789692377617126455667804491843316053969168773196267062602750306049307907913086161350094588805932325013211637075170842486324122618953491612887200823781139383270026809053962904389282961483607424036134291788660156362172273653322438600379912582505499337737054826707906009508714068160536585702389903982379479236185354895856701043260311951699176975007635170506880247210099782716207527989486445692654816102719008892411354985478053237449373827056627164596434132812365219252419684576515206215545246412681208745180760138502680799247042369046139830712652136833160983189467430794612524834444816437034934915445004408009147824719033352618848602703672937150725974088922684565722332554822007950473926329287130898180096262313930701957624986090985083317506296634579828205544101263240857316091420997752438938509577144956640619458996280871417313170516491613670656774410492538700616548920141119544057563764354648987319730325408294515987962809152154645771736220190854845853925263693283710142313671027990435058424425777135040955906277505542504036283478858488825484479978934594602765014085217989376025665524203128483377740791505191650140056569885504549774216349150911739446205293522359495709774387679855747747673926880504418507622419497815477551630144247591479209954073698700844441084339699001616328618689597598330779611299517705196309887244234031409681109090533478904282124282357469750003719290300851712948993096503177047039931630926662564194516440750849080799163498736812769673435557691913163044017138938174859726256877217444023629503135991951676429013609405621044140866416304223522370545269355752179011997925521415140422810625596521096296899828472665867809173078664484372421844131334679000243088929332313467592796888865839728569458695373468304851425800471367158633200779008840788434341474083255208631046022887778593976881654555669035152787858517893454824002604025067326672814892717115575581288944213916126728287713970258633951946079428803960162620129589046273638463446236934218294933448102838071113919744494534480270620802463430014440714527161728457279251222171758167260740284080110832259705983413298628895256373770882936663625716084607199349939172781887756098082841787684002547280416393746990526631415840492968152461257372233179848265281803110728423524241768587408636762288928252837504365955867104554281101969422484219340420890575636045889098016283465717879818391466995222102287414027849823444714591186976159616283787266525348795329848007594242898597726222114080793745099662819036625041690606252605470374466892234392297448024479272648984280860351983727372459466535574656237704682767211816966257550309003643570101454888138977647814303824487061144499564475440871977320752295109062070456684720599790289790009063463059843028635572530862585996210112221522722238415641709069477334413805579068732811610121764997462750621753157334777653141250243517821619682912092508588941188960075933910060739245523619326197984242675981461674202545270119137124584749921739256932516310434775035388127311151751687608459224462931459393652287007039219788151911980356058676189110623977582150512163542211381414611940018511691606883769674558645487912351758078212448313012336134307155103100217666471376031267443317630331692420461694767957928611838095052765284980630134173616033161935165218502452983860839866841738636328588022397498442995548882057411546070107015257342207516191331049182891349812201421130995503138656095627504773932211582284677939698217260838340777149721130393921534811086422328637567954079769730300558758117949772486829235682722511086429386931605428539601371969637642183312661730654142782145441323956602349821026960483517802898095246377822724892391253897648922312579594483408410999410589263487872386695633367178706622588248870817787298990969871763333291316673814748959204747122215260999120586563787110247244440910370622063244323879032431055063548167429772551938342717532980155554633328813062387320837451794381538892135502544985642724580186564720141088063702250404422703943218319003048108225746094781170152613138418804280748675506881961209139017036576501660425251533947300433308842188310110888294041947492588055022023817425391810212396927955524085899565301714707180344018718055075505285602189642402149356204296689103970740867042065852222573604621314818189333297512296004738609939467782151400477046070198416190173432557769240071738226751811451943645906598658851297111321683626379087461621440811665511864959191472332217906630381491810356744688265845335521155830555092554245377320858775710217924662066514163097726898032448063063777926758141327503772067242493341250965287497133125558077525708275875535800709432809884744763088357420500243054151845578016504226766053208379284186617147619891046540089159918765855218854871551249892251798607247258269031438237123342150289255838412876799683821790229545138034171026268193185528276286847427943235764308965116545479373344566892150807026853190281589489566613590885897950279623752848996161061414544137528141047041372378330286258734075639845319399544235587564116351149395095316873070949094100222701576297180733859243784441307823814499416544837168274923396131792002624100215458799908495975567844198479871466542656751629076874271726895433291170821223906094741885114771001763183156089634716421622073750098128759203144544486467417533952230265283560290037738936148901418499479280336375242666007566964545331803295789655783425181041630532534789282451501693303766994948512180253779559700573064358135010784247526254278660245959533414581493837543996721277679290145959406363719618056694739027741598022153670500404854970605525593855506397163230974462700148576824189503152895958511743990232224648498688717080234976749988001467851367725312361480372339006269452571419928635070946256300242513901068078284525302748717183506018488749464100589451594170273311418727351345026567244548115931683351855985892613269532165331623923243929593878845867455781619751041700480815330652208589499188968864222290715804290373306656411108643151088381724621504636634406770692839194475527545981865661822055751187216349841364811041155708206460391406331818488775302308718283267704155071107442284424596877324746846344361638810487219989221475875498247943360958327795712248151785629138929516268669473659180353475185960127782271533330764042404501477745215276859622123047844583796224409406119360469754710226079766504610457942411946447220880240467640658396242802782803732441973248377492957580399350561320449062215992254961178214163928394769344073717044353885246719466191777715484809347878152343138500111224500826088354127242693115486738010291793645923890598659904301165872522225366588873634631812364790223805116841326010538132706389956264933601986178420373064509611577681355996415878629020953333329904383978162545339355523866777954613973448479855731167965175146780628073167755855545217999762119546507440408307552852613122774665383688313814224259942274050907843922380274038429987274049099674850979230567956039194734495609866752411150234063709371892652461833106151798138041475568516981643194275912532793099834536166231352801746084031770526029011451883453069628889909204808847589447349823119535512465761502866703582360312707991540389694166899340035732370330544494102777012054521741062838752541680159598429100018688662192584869811341672136915397558028537333599282220270580225302717564909507505465768697431969066812085249690396278031605903821639956172605859639631472342934807641021647747125890713314582775259347856846563953889606395958284887449961541070776331322978238372539547841813781610648939331953542206154292368141590856359099507801695102277446598839097777434424555281607049955488789893640027868289489237134016168333211030683825305145851749212894495236169606008189064301259934045816499942098990994629203590909119950828961835508362387199892122041050762110755483843249958993444292736034326033153012172796648168183055620988829844004243254926255364569655010579959816092864796465042388030265948803153810050646471270903546228889256332298906902684649066792445497660753787254386827513355148066242887000574222775850793075815698424784844624758433827097758832764383643581677057522816412077715092741915200034244224672078488410414432169307661669302998905607803534003707268666648330445908053603195802355661941961950051806709477656132364042300406907658540977651461860679113161712149749347773579683531192008897611381631414965402224824205196110077241601174768471766270764078284098745542737996126049692808285337565842364503839298701497867593130197956717405827374703141266737955487460243255639754383681931063739185197936377623707104586367230338814512378688352170918672895859435638105334521392300237102770322041134973863497630882480431082209833033749650878993426450286677991737457533698160140490519797219144270854013061597303605852602617413228150282765260664401738691716814633852011714062355693502861394919181589183169118057427632641489894760400930902218733211403178232665129743397732571855673725687085915113932166862819458317569379707652175174253576222690969461441334665920082830374394926420741578435896416509400450279037935274628330428782921214764309108226037804924316400163627610610759109074963077700716070869033595696566271781258513576410435776867640652104406317074150900003779313659643123000279350011560837634382850221644425614232780329294804228629010581004497350101549186881564457284274543502159248168976224184205908025137961655640747930855344726772306323537453892095437837572406047688212190025207503027476600151394263048835661521184135207352397180072327983701952004542979542337788188262359420880625124883063127111471866203640436743839789348975231887404060938359877734188399730006115843102458930818427767105985970936618292750600125581770606870543922090890008623511776934039033976835190761386645511517552870532430674610250342007990144548943652976662487681789150546637756292447502891847396162761897990052335834031606182891153906830782435824258848717558716992263962578203549031386669673165530874992244554812856114088660168439190396949383982895695375227923010499312615690535305091614022136926045341399532674085310731401303243005329377521066283928182278467337471447385527783678030095331069862829544082180171343919001693150800052361516586031932774747056421829844740901794122411494312678884737179037756873551972884641373641024081552138742933025188739808607597325804885678868437504678616374073781636315238482391745192306536102248167188146005436476333320757693185284195892010645450578403393150419434291184365708041276512645700822324718135069668360994819530369174544714169997509859816115767358486277269591959855578365572771532559121769878445086398934619028856883647196657444316459840526471667307369008430034318681862716257713443953183491206150669723222520967944210966612748587952760392127599080876479282786823304111954455344711979142629768183958379968368583525797417341198113546649687375662166658189348412735028088271646081694171027173960709213920280812858579588796589695308617887484109489009483262391635009103230290917346358800551542954694117469084212075271988979283191973914618265065693011973483003438499510574956252028621166213919180897343581062783106245567542935289734965463720409530526714788485865344593358642371430648416676652187831060815022126751382517115613087401155962809175562908792299998554944528325885110066748719008957811280186317430440634064915243250952853614445885328403126114034965650547267842627038537349468738378987497145685346151241607716073250468287619308159415522367997664107412504257076811165799878583591034416771479790236809285873544399819800495295051090940079951674632771370520496961013527531572978228386680244485770510414574070620455941565561673838437340860944042612391737925916734950399499515845252239006275379026229870561187529496475511513710032362501107267817925541407706728555001573612483457397915000866730099209277958130692828360820515172479329026592298331851498029147488642899940979775241052804250539607891492590536268688988350560615550483945743180478030988304949235026658771342611709192188927379268994283571266603673139299212520100591167407441617552995311610938276105833370902818022538157526232611744708223229141555830974582869130793745269609714773071136139933876033372991486879058497150815568474289038267893785979395019264222950595400219914913227883193840687692033058433417012862348387697424664232394136533802468371941426156385074797779570416019277697014521220741773139020839971256162032549840185445424307260309624866135754372944253384909116261305351536704322919718444566055214173954946732237490640153335844651598256164097584664763721557913289056251450828022105469290479189305473429105987254551129563712468450303008719654465308008317152730141352424952130573576569842412102254593700283171355686790607031306922712194259130136023003025590269983939354992823825358567720259874535822161777758922505902679438169330514528963894814030977209154782549063850506042106454509023126831801975533042469472608773794781763112573111027720528919076408884131219823189706527325403117119823192558453276923080864895963362212247480909913318842665371534219377916533161835027498073423123471233945620890712858463127723704613775712315887067144205494931210977363256543658736270222924867938105110279724066509132768014068896917673877007035252322523550834765373852803011889848822977539103752052433776008208492009820928157520598896066164322157591729542660567283497344463073954163193855724186796660854190859235457867500711247208890325859116208491010253855474227441685289653141239274091720769443721310666379886919597316774284344458469572125174747709122076024719742782116006562354611672692816876003290052233741084426702000610175992711650448006698800097988194931533733995290058223075828316118848300047182132899274073742928924369421093397075757391971310250004485025782966294466900148013943093820701668098333112618517068034581240839400672166718836499636572835223391193150873304191097975765411863642967231175522427906836060793482130323258053869436544797066443249789606801770611817002374788050817218869755538246496292702970231717460519068268292233800905185612419196238516396526851665766156739241319429786000807497889493152903838237312857829641096095881618358493761801751105523511749716462528566951679536951983656935473062119290668009769973551091275099896920609953129262678676672120828156824280008666415291809381680220157811974497100823117762585267764647597531349405673369747553511823676170228900773141258325991259563341552888359157853885667921522500586511524665099948383149724521518640331728126676158914118306042317987208678352694578781273285467456853312325800670015658139191773744991693030048957681508722994131132602371537639045100544907903310099803259018992110984736687645116405507350342329589046549233913887855332244535496023348620762661647576691004010163759916346918385790714285343555121119787404321127674077839825347669479149182368067562845943112294375309613622318453192041582668549423205174234437075268908431895014819236653666741930923518494849604044035438921227129216710987117179603750427154304847624697749025476080637159967829492568713292931407345119116666407316798409806200665079653761350274182774066826062952460704116135983480993685330482592009461339957646764907386998055926849706955418019953134910818787172019316408782002986259077465666953679493046378356848635594704206348351659262354888670885320841455856754652540965768804139471757332834650406931758824864565459881955674986261859860428971589734010405303374694111708698618511057462341187219181955106566310149638416331079752662166161730944878168326656735686306060410246988721787120090705327315422952085369780265452719425110958601037827489552232800205152113890531095267171084402654572261782872835786404606074098780649053212005015065295799689961563644350507705189660092815196178280998585394990261920416234487519791017330695595663252659635914445374683174643155066775619326094012649611774499273547294857375536235671189463342763579085545544558876708696613782915085897591654571726364013267976842598969698725501667872574060770765952195215712177130825950154743796222111496423543916589595679732482803979544554524177812691953922918316058373043619084288073842120204643916332989792678153546991794980629982105751167739954035454781558204928935463400835717808065684178375047553246343178822281245359468315610069744581883145331936786910442425319435956865284706358189490075476842696241547884203507977076216687531684763580712250380762052419784940645727920330750982625070891461769060898819440851732022462441867992501244047332325707867369372997605159821843269677541243868200695159666713500932596395877496260504367692744271997120377925112953322479136455529419709750104759721834212670850803435091299829693507517992440489390246145055095736205321058403102690863430070851436815659842978662467032738366307744723448919987255655168144399353274792613667009354932358605472283900287530368532786908475526989534298881284299462711256920382065460913860932333157821077690329545212847337829630585720941264049386789107565445045223331202202602576757491791847065831149095196531859086775242976958457190353947735994937237173429563288134407229697458699246031247088727395732034285020687126429373161031424715146544640025267060781125439091525134294906191480752586153527668388549080833127945575293438820574620996866391179442241162397802167069109930215100603514073849233761747289006681457755958399110943347885661833519986091566288456977587762531054072723406691525417620186815925342211916575203980182350243717718635554774664488027698249866682336847685623453740999259746965593192008054481022176787591942925089799160506498017871187055529436952195509542388157962561362510395942819838476971163570547006646527081556104684403329194873519720246308383904265504940291414771855336370697562409531025603297828547684486149254332871203601953576494221643763534090521635285699668168367013107550249999756484352211759133386690435936817063328061463644423152200675271504319802870908055550430567248914138708679312185607099734551637584753506761068169152776481070529936590131849856102791333374872613060268422993871874777742864381141913498721237036633628073217995881592069781345273002354825106243009652500851361206359148591562317330724072378213847874714956212300496972856721485498898006153124403306106063502558047548056690936026065322098403773966798346052436670944813913384082486247867367110080356045589369807955442564857202301043313337094574819724076827971328493076465702204198805017046822983135406993980195268403545798513482111990503498464880551563728700808468691863172539787832298853764825630493498913697600353200532084465744821786194960480838576994945146603400746139990382605609918539018509365345206894087708723182700787643713122725740142347459295651348294974763685100134057918251451459589264855366109738803209219579542283392398980458086431450617360716588966283861284071507547637426051120459735349219133098444075152211295918199029811107473114276831180653434647767897429479067825231306740402437490113837577189313984095804842492444591769107663281753966784250918402187250071266987057341154762314475624491287110641652824000907879475097426699941410669199950631523448219259375299121176264001739560237904740288689139478134284850165295634624161521629778140264104168491599510198825932063954814999245045416046588894061436310583686600209680059973310393028359830737917132462397001201859724656930903165549746779008514192251685577167366150736229847101332703179775855949540935782328356268794940586098090390855097891539382776942108782071878191351092305691762538078102973503098378806229765088317342363318652003923447410806348947423021398753255592376359990531515771017619506219250419321819084837282696100057878757097539757371842430914658127955875873498518554234919805806410625012559297400699800596600453339626980925978950545997969399874674880924220640943725715347703102894170099971203051782909875221705649460610263773206818934703198536219338861305290515799859269135850420242703583067950532698887841130956830739919468788798499720719267277198694101728898506814818413156893104951199437404632989426968594752181855785714687890009693111849056307128188204317093597165346211710736355951695137004628373459826963539662668286470234105233908442309740679536865815911960312221270171392624913376748482558171589000551225320961751110148842421816893397810499075403225748315283998188618547018298880837025670511744555254183103963722395125745831936555992472015509008118840073328480264620252192411826623185769049699048518662356097971354320146029775717645012578537990445482666557515497861534474931056865114458805249220181049931697185907805192876952729208903044192033723691490686960490175512661970329878524714582558995631916774202143319725535478364244656049519943979323625214347633572590059016478080857021047224999713341641877606763446047506749780406713700792976736374981361595536900234525787448455574396287621190504658612166211018373596274203103685643317221211845328942985246863253820356029443701335000883560832572692928327926289027277097769662631335992227810991663324401748157959402798428626373281774997331325601146564150263703717971296009177161649180639345301848444877917492262116420032345668121395464427891538448608025969232302651198316970636681088637263195621414578531998324010920290682443399782995882850480703337286674888667283321216233989893411245862424007857668563161371429296576724326872403924594752406424860827555661839162613423676996446313839035677218978022670843838362508957161893765461099987582498257590260954205996986282048313993703667771582652998754244824136086431469741285444370699673797987302177362911148314475008054386629816398501238248478754374236941313921637889650464519574844571155149660296704487797854974985875556554802184798922232152080542695202407114975768215546426505534309293512869337836815070401812588714799760035935371235203591327020688074171247335094096539117628979264502493939027693848465012047230356095327655590752507035392917915428842424169636612951868125242367167570869189965787985374181738532403544812711728868276768193585295436669742595509416192629760922625823162092296857249541285994768275950869618831731439688433539611951112760268903714543369535619406302281366097178550444398531828629300438495166843463818971832900027377590565215573744551558244887898489261839075038805090476097760017440566013104124821298927466342303295643362855568502372168819682103888892868670155920966039937654582824080525697155907983902129431904541571500639774752083146503746273045645074244157750845912682854990931315608552848944088372895707058597246196510316526351719289491896643187613714879605990718170114474456599540253829006516704333516809088598306651893914808867164778262400774008674101281077855138218310965862585869000890794222065226216608034245861134150198017496449850466062037773767778862320586471203602108236499747240057316107170357935371160165518368517977433310589706049390261765443915497010367154969321964816433569640532215696028660308197380915364479982302623704834854561966153247492958643160721227617111515930554287201702467253160071309306046260477778759475005547622511111704514897996604884883994718201016887913284513894496223809806664836767654510455802483299885958993691588646021660718315655369154385025327926566085165583197273251759965132174308066996423322029048532535922161109841069662774238405695286674143252142824335655969049821010427451381563476584645489530642793645817639707112547984938794707597171736469860188462402085598231885840760330997470699669469807604790255659807337644036502728800378123590693415335438384258171905033621228893768470661660914906073371050233053892502267519482718920709830204230598591318388467918026514685124543351227846278203040041639318286250501115756327321250917609626463842162273047522824422396545180725379315707065825059314954978455316399791552089958491068094498311406926382003219268036610446302518982351393803836521118609696849318540308208045498113709989932880071595717672378924980143521785097190525921511257436496984337657263055991096421834112191208596371928463170442590178289363793557255328090138382453791641471901068181510534729690682324337308173497870534982804371538712184290895631712620311528494022570642996878135755526437533441849275181944734848691603446403441022484660529758798324833204415019433146514856619254514388511917525728530077551906232302570524048980679648442145320513634042057910446171159492642067265377935178712758230575966473407885844505363823206261755489417817475185632502000035894683629609655453995987524268081513598674322382509763213950152567779304803958669815990318686449977224815913968203309230512336392011124911678781062322800539033953668743438608662704426455848428276181461934494724916012136184016584378971638229580606630995829366015071686364039766754713960450457065333765255667191081939645012819267005609845044274856243946282932217680193853453353059777399751490369725887430404800427278363659146141264160420290639798311060123211189742032525669552825943373461931509028270143764392409987893758048018807090611381940780887265096935502926231423649998357002666857774236214978747541721138489150172843694739773215210731477522474727586136890137681277200340951271701560201985740072343908747494178045842869742710517651390034009315538449170052421063426101711974309194622946790346198422287714758943657294363829705696816274998973287941374076267817370921002006875517784482227674690919993093621368270303388354362678341982758577567648972754937385722550668343600183508739017013301635551142793951064665960242798224538267410890728953262676317690460423066663040053674834084267730640053335542714685261274571054317353419607583214033220061041714509655538153608066971879113372050355212651479631980766048665819389543117985224051004800156142481186802959281085957107819862188081700957556541506463770973884116949741734857773674653281431439168308831544149457160329458525766601913757192050519855333005414207936340194340535381295862042157097198137647927950208491966109598320735657692740814641678464964515224975298597128137961016406876194902245316108938824100229060914855221799080003503073694308878158172137030809292119782080077767916864486205345929439572572217405002308383014837075127040351713989369354807727649149841818428697415021846058392648848077523145525567938388347682896721193874291690670341423488336078275437555088103117150231808301965006938910792506365142940941378694052146261322600158006433665301498715241706021293795126552409618673782777427948509625375018634200239553806159369916041275609748056205544170667975411127932672708608495739533021194677502572179982873044251036446110415986317065127600792810567944223174618755936459554412916205534472187409530821777155523662699357725343696379789952261687285644258994479859477300543122651569867220050310932866783543603639602869909511788272560961705298625460277416356529016897769833633431632751723170101987312189835135519927453632726292773824853830350190490142409967564426790291072134979585214390460935001798971027840469683344924150597744846864001092001561242926651648246610464148222485924138681672801697387867117051917965922319069628005436398477567689144686229531991403737520299667806859131009357165023531534764795760989239614703927650059582526799821432563748920124056614927359908657876118896816831485019639309336741844429221139088872149723733912673751737992140360584221721728653649656377760399722504755301180665187121879078228869957190312689979792608236206452661578184091833504167694230105071248641355750256025680965623735689128982080318224013278884187286207405033411994634333310279891161258482976894615818950227089409366144340686694190002822220247147727166347047216946942518934830769603569092250638878060338185082351087370770772914961807858643908245649925679578637215445335567909873732087950914050814620411167565434065022181031039439325013478106027000776074719807329863366747871807412382256268363399602558446079263627160094012676241382386949497973580646912344639735916668281514235458066611481700799310105475255467635586024937860308274496188263622461378996498159522479762044417453704927631614975402069232844076812825978520754973559217765774821672984460358125216459477734392831639160689537995109314821130006091428938409132057792107017464792854297107901121683747129191856659091885653118204346293186089131263582541844034596060536280150507752924487193752440853218527559708560309210233998689755452792356719775118161109533464978085244597837993407281607798459888271126143877638427562849127974702141324596084457985593451720659084415872539678690701087567589586862253826483762220947199225902178740844104104432456175455487716050107051101208507482811925394164740205458506877383997729977542415201042518962714155185522123359570908416073034345337699850674175220431484661615148068253045189898586901615662920652823017898165533965579556947564624243232193667759634037710349384161365101661619403815477617848660614753289697989865054515036190719242032948403271108717152972208268926212754116376336362508506366678994182583986441371023617680857134260183382147206558304617595156728777896759337218292096428673987880416604315023638988456982567443926368717734662064461350732013799500671598271737058882210299039513383147022584789628283767034513707066734241810950981288513667582258102063888900355104189108725303387416124823334886087887198123965076904830650113175133773716409211998389316886981952756759593679726810643043787998060518099871323589451413349395693365870858825583574502064284947516730151360227389155137981751474240754835286388874772925136474190256040380669570921721189479081983492548366700569059846831908131331879190002094851762293643225330187093027255423625177028548682408193280458506153541306541834683297571719341759255109627780540737604622019278331072268481748618822872273868221294927026703802954429199323100674206672814642700737048394432696019430928530481758991931773685903655840996892182456375681690652089008430403615279661998949743748761957232454949185329796857011356320717235449320906602503353885822602081978184317390760935131514578239943241617091944197958434472864432152604464946513765175591326876356448030240816861670312670993171480203776952498156599255932070454548196947473164173726170388354733152431391384340768184761460346105788723261545940247934787895351044693416035791330767803715839851001224415672027556458331090594403860847440653039476933451811842712578032098262212682678427886505353443697690982528652826359268795501733557649309178722430536615984919451128671237581479114262488376336788115356325324519128283708542158405552123116078297641254592621891648316393891501607340208888236663271792901319646439795274105019894259229734259643835747014317047458660158833299680619559345715899042904427701984669975888902947502761807904194006610386144564536300792764580831426946808477247974018416338299783430754904735318397231604113379510651047477341175188625035876222727516903582572252905720129258217861604016911555167086696500214578626845797972453299782297781189242685496348579584462620035345292872124244231984855148344033040868384344421127049915932516213976981597583886501322677432962274261186996272750457652365911177483141635435037448919150943832609195490558212138261753676689611442218747215888692722813040351906244526586262857886457240727091884502573160572103092645677991394247241411416913672186252986729963610458738614306866713130017456660081357411049896924174502844263683455788701649789904600672216425125402835491215968116105809416480342324706427530254214589977925596506878865437162151727129928253085595588219891272379013621130471685199086521761236293908721486634605891382989861517655649633150418557366532973832434871109906828756957781397158612910937446315023379125241687991002230084880571018530330843106272789755558533686279940176723609189830994356939995552615755005578534968236641068729495817071297722857055318062077441954468308392081373027791944313867587606833572725017982952100635698919240082681277829681556717174665189812075718076407559365101837081252480042524535030343491991817262799166473799699946670584190778507153197018803119422174379002302017064236199328441893574810533377957701664072254790021485850790173123776799936539363675478456293277092948141251420872654206072145333521813873922916089223308587422933604678699470201268323692769437793875283116427698068360716186975565365873830109780873835299409006211591814674116419856990555625700805685582041907216794435613157849896057684738007424023241826418444596777709178049787311331031826622193743497454642340364183367365999154747644065200106868161678416030126771330840213047490813364521928662357089769511957996350401982589994844029216520591951996805128201824058115390716965947589900410524489373584831932297414363118828706524133916753224087951574509839411009014050908874801885619663679624349881331472143043407275863357188043051176093139918337870902621634525068632306071492207844556650859855712061630195272760568072770599460982436743788868418030130241419554596638743645886699417629039006571370260034732311549341394064050395764266533368476307577180791646884635416647046779984558316806152742330597740168931602838549320020396445805541407663074797874477522693104555535165972585026564227011203097555953246604668235469084824093377592693770162388384730751453543209078805095686249670607703070409594094762865021986804790801997263343179977300311620934257455509323695638845249574818706546153183896572917381631476816070205630997520490096108849649091401315310007359467796004874805778268091202680471666699018037252144705895772516929918480783222521680143126617945103857585665433713519160680947772553093080224430099536642959293041621470467102041815888348038554840617326076480999488410097901497632632873204113322895402474888230941871297853317869330581075977647956126276103832926285414557852439572712588137559155140482449942334005076071144147541052163179892330294899390106753983892845923708057892634636426401771554136661537932567241809277173925934316958917142273310437215025522883097022890395184791641346262877098507314988630070550939397539468331420193634844273587324542896503822735824407347969477021128521670638406011524234649717004329310702730709393938674973398865719652802793447899642225091498626880134840159453782377926940774683986666959835642456019857542492596921010073987619064894994732058445578397690098860776288706286260863132515318192217664160755738637866461361742269011716444341497337290940870875905679107513345900733047140762665980063913275748042485548449024494400920008797348182552163035288563524866271931642454662072045193114238295307997649824646724002760190271244390637789120552934157718856615441751104600396670088646343769746435989176485581893907376134571315138225849669856889791178197525559667736616107199926591198762525229059968827547247534568068688448262354271406975689273372111909388961410179756982550141572808761435796670610495657513525750516799126917917209434643445474056008537284017115367215391902915785227142521729132319475461995642206900390682467701976596381818557284892887678561047785701407496869297670286517336569690365849728841169528895215154942216782317460654678654428437547831248010174439520340664488808931992102719878529402341269975952360149170790868871999278706016536003823362560837787455690679763030126441523450699008266829624246785514249146972891121956897739856675210307853210395687138203925309085374137115482752674983379438668720240561561317925640241334175998177243252649208264351456652798995430697862708540589568175321765133961891948021420119216709137280922463070484288644674478634405179842174542656147627134230427203092718295172533276466546108147254471548394604893594868127140916981390759470742000722883425382807322148309110475560257735256861281472383327023057074699302978468272635170404221532065136302256926555005152291713442813871454190137648580892579317127585696498164725398719529941696069848931109070756845003005121472835239824458938698049145425423905806829816882899042435650154587719319650394278778639065660365576390313268411470511341661540407127607525391387294821864430833357293071759303255573246444548249159016951212198015682284221955036118295567866753345759769040029069947704286381717483756071465130800732440507855150157153520096469853220047125178481156581050856653161780651316281987426556941984159851105231284475952986573270109407490140892388140631827757991093985574594022185890050981473714501771230413204889687551615021941188079180771033493433921217649149055157336610288501274370747492580146153688189675817512383490973070722929197999265540995590928359013684657606667969513021129779586645960749621814359399323821326613009683865295696127362152659507480055535535329885931300349586734649628396568842994007355198495541036698694815061144212595005056142236969136440117057463373909112495800397032689422170180251646983664442470971884522063908122211232053636191372546664718657838862654022354582327563660672604030173438584805530890928634448152738434827748870270174897239010085702117230649464476119813487375034711774978545509334049756958370789695408219095458060972089338269057108995213063410779044415711417988789879007942569835611089006741837083198518861341431730069804832849787422222789577492797797149935812772935604726391679962042697066120071083820294841704766912962236804817446619007140188496341591842588499875354181837439463167740323347396668824410633899831016398414106593835834839589334650009745328246266314846738502990606040853427737322314333470511778385727151780085511211373978335312283046650691373914759812449930812980866904071209263439169329764394943751903034051320008668824436926305324562612395936279446244000448740976725436368786912978371524927627091259980686082862745306620275353737088631094734928364914687845241048631268587985841170746430010675330417454021663925569995864407037879213424187714154617041643957386936711002585388207290169921088938522412963368991665470112759870670837667835751374658196717196428576967499600222209562414128759924675235084573204776197705056820450597639657679290631567933797756301560464819395696899147457665252782299090214626960458603027036672941723495782240179931528308755187292740091299493915457798833755766035937788740100140999859869080674208771324652789652074046608761148698679827645714372770726720934324688690623150785496938799098689613874028459696521902687268254807803408039011514887455084622891892096623420278477059348137701879226314279903671453351106315923778268049484027680977040193081193714520222534107793183459240592842720896203101040740969116800088269255079810911043994202239672434172643666070459102278698495353655239084253131012718222362195724294735561184791577694971712625710651230210876939797570780642845225548197861667047749546949524398688131277983876942849891793881005210572022448745605531207423008541793270539434862282507095608651957460176743105240686173385211158509807010773978324814075562682805623321333563256402937964859922470804628452862700918446043446213574855482066987595574346906227398104826219126915840722096307730199208290226212729260410156516728870519695478041844675628071305062642376974794694129884939302025074306608195410488313412012244714830191723113706950947248634172790502364573752491941039730703853810454220647457692503511148353761071264476082246191328205194761949182564052843112417691396309966422647853343578218492326628824894706335779554220760690300403757546074143981910101692344190581079902593796009991178909831929809977717727815297038685151154902106779315423504473905515648045919468678721325137082814031773711746079701203251133419665229145465451643156648720104979119943686097191592069383681750976884614899241858271777966497736695154535127524893964089624760995358062304188328808250797567335229173234671292798640032423534423125102272188774793788192999004009716028228969303317435304771290185831596460972886966247161056420600797590025912803488926471823862536704284503171942162481837161946821394223656527539463164656939302892818132093012885156302985590366856636373220364347477435656530740641228513693906020969650824715327214713741237500197800986501422643685522932595601506481137794035858858710694487768769116982432474273122010383163025410558695637306557895172188386280427352499342749899034998017543329755998115344003520170539380634080982518892544631703632313349088173486483927868264283520880899545739491860207825095267339546745909150286493329764142221379562864382653096537415268176030144461516455417519369102564845290917189071093014927750422129078176292890759065462616573995861325133828669508702876638563590015210231995270312812573287197309728662029413668008252972566377509036109949311003098053160453717424083127908845197334710712052418775118484351270736058909586049884891318841649925026682169297311652424151266275119328387743931138731849517902995795407195710580830021950077367175881420560342619484653172922389813889817537701031721642330475363496428728075011296866292466865583303937737489165814738592749723499100410736091032682096496973116104162165398531962158796184078499696073360786080640147545377109066269296658277793692987385562169658757397750254487423670219019976690280676593235864437328346911652247495627363851763969620172868294392319504040050076314221153891819630949928465889197933379144962274180896687870032364949965979948630022334287578041477010003482479747721755805266658501901511211192818985298257187033980634353775517154143152609551266711973491126690711128924881677529175169920971043704158229989275960560918794050085878915184197804289221159277110779286806237303829017941766109985251581763969682725595170715253200924035361880840937131889877994824585716519125759850754104737989370874709174569485817364453301039114385091805470649897854089444284166577413281939363145399654478744546539116099192624775569670450956386933669181518109475386247793277553378589959627316784098196649622322471851229249052597580690239531404528986063466345328885534944727404018648131840715538494878325585255163745171344631664364773657307039049713122575715785947892196406764850232645830346689797827443216198674882668746393084707066177683567384704673539783845542069676392107923958077753631322341205864067916269045645540274881988434473709568762850371651383313713038375302569398989625158953718332550555335019573506435041664820113852990366728675330361962533694372806684529701111434478147824523988836533288871940549391507311704796832446944234109411280244216798949601131519867915104041545770464344329072327155718144198865536951212542286662258906553295053928543389561733698324629882644456501030241554904455272898277837797411057886601428206427403760138210093301777267697023637714734645434585929269971378700467240381520863983248112542429543255334631814627566896909415368196742345944362623329289307997294172799093548017747488500439990821034150892944399563522086045968409316280871068184894675044314884721373530503190630424967500874164438825681664778658240285437982882191932479241064887258808770304874976218461280473230261112351075795805597890583580741388148027854819472967595264708652417381010035744363595121129826980223698201497084028464960067289964593661044270540796008966850409431268050245755787180121942657044190761357001201031785347433409132191050535304511515396489069477562875170530499682721388411041941733652412480918831521200163640537904099375571132463401203261198115671632014776855378631339960974200432107404736190292465768585632788395509868881390575717689180796880594516360036109182637212179561032364144208604129937528803346096523547067939719554034944277002740704766272621674350577533063795451482848536615794642388476762526568214114621446156450951960436776683274170932613036128891326599653224763702156108157488820509316391035261155096554853982173736889379726986746781509188666982329245452970925029767495463497880469181798189510042730615943385117719038030494998542533616714813402634153222431163684443708369851581869727896097285855890829351938914584540838377529053751455893900550394141689135564711815549420666381943463475052121987017018164667298682496632620168713781875724404674021529854425979605683777617822936061233181007868186361273653637228712273692987773689377065136813446783666722072338347395760963856577004990713174983824556876668096464659586129647625985273251514276299439103023750257627535739068484787863540819124875361747752427522623644760355314781050688260290217236728398999892138662042315602057871929035739934549603811412345108863088962984650735521062363197232029678665981320579512751161459247195095678114900465827271550707962152533198877258067670051309260894438119757671150590291201348804039031486926340019408989086092111643403663552126258665116452165467405754526526496023377819514493843378881325780636481448559290925096322509554744742427769099863946458350388254891901297484892234616180656654463042229258227345982227335622440195139242475362310924782605387946282628497888519249705838115031502816537404908494301817923960023575535354173324026247341993306892494927289823837170798721101389478925694048439578826446028234136235159480191210109985625434778941956252045761880771956233692190187298864504821225270122084231121979857457090001293035086501823483369584924804316603010357240950995981089564893143946008565079183373675002792272001803862137031458225755846292353317524872592735485303759658313922908868855435700144970724890110630946131689655179202420519756687886069475506143522006079911156721385940014386857079935972259066925898732709268885147471915713417791724201110197733689550845334260724375790837433633735667507203193480652963130225480688636545383463144949601316065186936531549910267397808599327992031173930017096771567859050480657222605946403226533515927151114219892456909139595280542236202279835761429000222017026620833654399517008187029911637908985592178094880867412041825429923636798376379403205190036447817668039586163175754797759181006789590085943252820783674618156007732532586529203331788466091591168690120339943930149635506823498317805443083248558063000404183886791476203851720436419967619007582227782209907966343343396784555761741693503128861169201802330481339832171844978541087424563348749349376307102653974978631623543215177982832232033510896046190564079907243675770480751318283975563419313655020232373344387422569616164925802272093180765046658296340321608705000574471121429638020066399703671151053433943071744933589301886270247269968934785892584500121184582400779089445179745824883419093148442695459395103277760161622912258046495381115946875116568239391315981659656232518579898281405366562639064654823228183785090604891746896766196501701914817661481385171627785549105569200199377669094626263805532223871276777712251304295360734550804417808432517032596346004082953333065770386225440350206574544942983580419353126917164671074901201361468920860456282431492007302609687241960797094319862638256279088061920219249275851820181246036014922598105755146343172584880752126639489148333212643517145750374663415002121745549392370778745087641870204453447141802692228809953120383269528542661561962705961600540016471915539700827752711650753246492230641504565467025162194714417193566323876864792375468591828187436792093424464775933358799628138563793191473222051500366492661910673733077564317250869284005696994980595134527106105949736915762857470747935499883068358185974403630718544371499182312138382167889618388669520358903077514161608678890646943528451169293170813617386098975264874999651390268587073454878452616337325615767539828189583473737209379576022723294740863839859871302348516873903082534628687512536987516208185675774556468790355485747562520270267959448798005827107880011274181011331921393428870810351205884148862157882507350044068036049943928618772500324630734808428464596140185798639638005831820387140944322546624931279060468280503414962700653242794110896504858919647630361501990339610735013080326457274196247175455690271849034315729646809966806342070453041636573664137549728201898856686313276199263627061530712784408323942195001189653663690495558622753798252764979734058276806903745265153299443000026110443393398918575583212315731129434685940357944631263234532122437541580105631318563440426284662954297928955222372639517397245109085322931554109261854104434523488013304977336501876004748929102295184327955197094843900759682975322884959623217166495966977771516640874053165840508521122011396188031743172481182820684612001368540562462911628706836721057384255254575383781227800475410155915477611966126858384534993693721676709469245342526203682515648716270250789365906043863349225814241138758138047515636049654803254820900782567557680005762104534243138670907167106679288305225145332058834855567690000205415324245109380875379516358049405307611548166629464964658002122774392140142040730308842457931880859604044486250321257734382407166630072860811092074667797660232375377440892159832429815409009456974022347165271960648832944562523290196889828244417357849636434172549351834867794475402436035500907261868889912179183800133683520423213620819877902029114001939438509203483824742445125144119938810723729407551805393619855416356571025864510646707082957197639305206543764297736170075065815043850235414656854188805131810536904789035108116600390362717484158759112555201247463188268701804069553483097534111102051199349132189869614412737489789918277895280868571457075722283727811739574502730995716813463625583919758487840710389676332982161409517716635104508308220692188563993786035705044302284642382848651390481279449865125409627735151966896287441916137429511284073444935883777768889760295194834572467961877317368244345195878973898332904144079537783761460171228657078242812750717496022702536229532220009789051913073540447709525663398082512598160659112299268341557932074272823735954001341675384072404021706087969011459434440516784038812506077641881259187371022530296661094888701213445952920608982791346135058272891895809285366755801561661666769531589591216346694428279398785968991284323170757354128048034327135701798527168181193258423133341385127517511712483798941711753263708792128886108186881968474213999483342290234150124234524957386055271736097843558582816244705755393994227928737506955975120312747013582265889924693585862498942101637764753407021814552696877116076778524342228726518160285006936931587390720090551772301150311961386082586330567622795086911641182754892467087369375927488950451541471920816455397047355708043282420671934187145311748587915019621561833856603409002854801107875520946128542301585913317146154220675364754498956561434706368395841475524779639065311310379079166888322478916928119618920117893351434011315796910079382860433180026302257308444185643589755940075974355765731316589300469808734308623375145245328561551831100757641031904688582853049823948325858403052702103766618149584771970033753392448850762102571192388266310549980532899624108138456927692406169035251974984156111453943306878840113214563448593732523461888261518065373933983253196576375091943527298638217951352664154338426783648920520426832188506927329748236208613927259255517016704322103432458753830549537482914022034970234283446253246497481225135336960260458930760183782829674048249587833881278095775132124924081998269786094156626867975036892120481294460476331139410973411057934574412823924880095005657790968186856276375345774853219791532349299109333010389525175525362276805407381914188972423667680491301398451298854830976353154581605323979431319572794901282425943307358311434611612470651564496776398828829723879911673849738328434699972195993784560563641894556723022853389797530602877864736115327877496206889180584753804848005765295961084195880490643576514020447608199918316354231483825712874081991800632875707181259047992236019888751817704011548787858986303651921062088036400679843864646243080309306137465360780816039971877684484109284679810922422885408571358258087525536044437127273370059334526127785406226002967254690990495914893391803672662518071207611059263898291960042158997371214820138504061916544961729836978067747301991491637954440338712412205189520608327235530674145619119629369439198044246453232047854494827497666536955266807967669120513675327348468446608706372765166438547041372282760336955640902230910281910306673588522270870120475790959265830040157732285753065317211413605618320322784142195915572367545603753395081636534569078411981006919087414174659554749319216104329529839236763152521116757909155794483686210736135612715754251116304440934598466502828900696041262479268160991471438570377372261435919295350179294480774389404859621710168880871642917159031907578553101034458857577206569134859164266886330384659474382335659317121234197615614652053819421666678501562379954846054160412956747335066475728957609884175572987425970192569540986801677179484345129460008115426835227390173301322183370358868955376865881407146832008581035282056354963894708625331681536096473365702751460570937512791060648584868288015035292584327895362533758885378381714923125368800137898871730613733850494619250959023386636606407464084074970365598741879240681701861690156734540197541657384349618448760221726611110813518969003266987952958465684666481595686309407907851653861011418518706695397651953600632075942250815217283970844572051673186174700054611924496089660396893398679432631528734843473503725459179880264678871053953369286697465969475604913229247354089536012035283359553729895597573875669068445225713141446272682876557551148332807524424109874998882913487743937962163483846832779948287288701663112826478223090828562912700236758491789555124858280226394557254925655916583008988801792035577477991196365497777098711436115499434535601102319011572428261815728204211637856831487783436415669816701398056656792068324521677513298632834991406702169954188212646759786978190684160583720582509988794214448852274303031662675551602034408575099703938542171876217345508343831844248959124860101316922983430672425257605756970031001603004423059339079511437723231602344855385463515140363572385991779133210879155818729405496920520549815155474569313823123770469080791900546280443365262545680150477568061185658972319434883119500725646891850216498000846028749398051403756677287241787898165249245723566968396754281502566810641838580526362508914147776325140790324169737351958161790323605245597915655171780919364289332262515139448810343024726643427080317979438941904492437718124073671455419153316241396999185635752426538849356732080555387798316909421835150462064509168606225103598469836971786971472666376815013732646138667517737156390720561615372716471623922916240721904895874702112748883441681995310504515661402748520027325048829490618443603179917230978890448528709497862173637487332138439154257628166295890027061101570455064189289000602324959660188550647001992190875714443118113064488753905397538909794852346119004813846039766291008080622900593167824197000730895563312675452229891003437585245695217168366469550153285248798013777352461433735888359718487720598109440107833858475383749190884830035508030060597382940396029446788001967227712574241145374227132508653322473364308673108255960721705340994111043080862480924487894112059990280813468209061909178892262648852720428527121300565381964488662521301750300632325331549411238223093903116783357202103611855551205744796526012401319865199867127720600992953631945773020537404077610415001962602475507919933022513363173103632157972766240215159749666927115361490708697161922283117562561394962938294014626680876349775818311208214905544131966495109403309906618853991135693167000493995261378061617530800455627336574808537330262222686218586965564572185607895273638067817564929453974490314784117718250562383912760709680485772649884701586330210300828523289233560801273346074588220075846155463035613844352688771687073648642140078729032588922290561545909578240720030005578851956586963254493697327493431253331662488150922124340923743100273498375727507419865742227654332576003206691350020019539035747531896799525765640279572781849341164688048829862016705348646443468195469285967614880737917324968017081317493671948725245898927980101699750817907963696229559951125685518839949325505350060041614765547625282373775004319343541640243757695875900122675378140507965214909466513496091170462941690014998983436438321727134000334770218922639059089511959887942214077025114821635554317095812689040427053999683534347058325218839417190321913490202518319718637487651883461408434221350962837609559272878064176852141511860376794387772078135426510568927958417213071979677086403505990740944504552973921540713878511089114136345520333239753719893405833782858082489620776319137880872454837475465631819843876276970143736742890519020326752040253877006031603001828339016779785532040527207362699613707662777735503408163508760259214110844206302898351890031283449617072964867109918930970625247531003072044776980077740304555768584359397332297610495031438614043883417592898304906346062148824078618600146219692829598220456714412096911685530196592887858561340580308659240387650761947121887913535610869466616141859961957463384270036222809246252039405963460777191734627235161897646776454940432845994832592622872737072049606517299031013016733037252916816460140382846562655147348079013117676273983296233870176805505052984423134934516277932895567957275822158969936549155938059221835019819438489515178866216408425188610325961867041647789838534195163926132224073740016900666858341044393764304273789177476514515717815122455118711454497342063248651299458512645693510709542390107255545590890042090469089368317451101436166042307324369879762528069757761412172244821252586087908719657637072367597681477953007860194527754050728884303247271284721974720003563724086159107932558455349394900918486847307532489245185035697477923969971430445195559887157387268766416295026216254254296020101891559214149744954807222624448609678535923100760900744502031153411106567894456357503753993006686995358307086482563314988556899102686598811652977639185208671431170206238171839611296650853316208792285144718898169845499498058551991869714030208611932762952446517634177354171926830511168736023124390415638202246975054258289428458394599964346452097209515087057724879041482496029245160456647047104718602832760419999485306205889988736803010927192716428227661138230999929883258920216121850835744282255915416926760906879922027109505026607422563197784161419044634559923407501080850865504233621104080564660195924949510069781417101602042535974178848884779173921029393143401440853413755395770360636232854318706222083808914560869699153492989857596246093316641638511630982643211805271821500347347180247153841847500360686891184495796697054316811876481627903363451371828033569498351838455667516683329635951099331231305175758243680993113400747399817353792670799487315136160863562732079582601219247797323520872323722574595176576175661355852673261457404378795090001985267796050192165746686666177610341408974007871629420665136016477126287508966562370867488388027574384533575089263478578346291208695937095768104595101064144708207292558002236493515927907065746889568945237774381422644537798625824656888794542702379426604780244468286778668134308547356902638960483289695177953097634754056881100441494354487027715636967927629056327391609584535985339031479691670453330435673672604895721618223913173538994613653073907059734797801991513425605192841186615051000253247096009248267844614057671176994987708984199017266571942171636543959142068948694915570192265652806149522709665869525692090449276636148399564749642952685735848084885388153299528458223681956427102684359845270803158733909728521492122756802225621619889016608595209445548807752054930367814819378523616343642063304088556550914006232684104374276382468496763159931061770591656044049408942101440904199949631648150078720941597222345633250826940299812659206840377180408576117809646598708426390678735539800625577914850242407583065367250321717293013225749271582165267752099942688231135900465141308343386471485242185026695812370858013446639833427343985090805146444590124732928353741072060965104257147737348039099166260977725862964098199379125567188823795181091470493632118461928510947433036234626924152263222730150124784852613555514853341004330695268918337549082489645389366605200941806769124515726816394977624775228338343118777932323123161227950698183558079762795363777504236538000523559809858915818262197252414125990895830673655498786115243779794110549572426505585922798418440977574918024175935203439093452089433554579895847217443205812890554042688969645889369610675080968245671147604492448548726334315795862812437164270020613440953252101319079056412943494528705349893346845346304574428081410368972900880995554234145486241635536945387721584962973449691144186319849980459820084816770354422290783846552182261885416726315262193300858986335006481525864524410933704770108598412479105915466903287369915321529179447127778694626032001276029902345028807604668369126505812225350435921606853562376417406063031170411829814531448118901494354185094452922828038972513143390183873737814613732084641194821384721766657939628034733582302792825557216046477358304849451897262576374522710379765301614959248675713463551683696137361460001578866765879202483226844435404539882475778081161225786949942773824086125363524098839322381721024553453495974551147803830745826851798771430058762515262727103660912940930257415196406910023147206939624904536948512461781381437852068478490251597447631210062549866704159387656252024599485140034491980231216137394715667620940225371517466937451923537840350761049139406118687156292542757786381255476135030819318383073895784208590885946226206703386717471242860641442003702229751122610778420235413015463081207623123937990731179306560111240911149756506686073067546096563170176873439309733854445780033997845456441594725699705550183708291333140366690169487039686738848279369263513194654337913623574668799699061242727461223018443851604815340145411690374416500635304231373602411971984600157023517468457307693264777798642467399439156918663582079427518274901565992488729198440130974913440212128837714235429961206225015000711858359844982481446003824442733183566795070079734096473240617791064186870973435698171363416048039034014553849866777885985444950262425513799722486227201411188593612733198876631585466744466505882278547546220617019653282976990072856931319490516002834691660162960438889416818906358510869183157322392632383079075429574255829379408614398719657040043052797850091594174993053439195668495570313718182023340289486366386436902307529049990937532035762665897428794348772544991657231688522470914728452326920989657553196755930053642446559247192328432191022638153593756214886724263057089893473742303916984017961000707784295781474966557173567606370711259092328895967639575646725203969495136719959854950535980084964441480299368930618950484598985932516599017457095211392456281004374793532398658839301278263459913007377866024799287955442926645424151983376654227740573452628179014532697099003107451440315157690059650755362734676464839322418072717589217414729011407047208247050113691353207449977707538798398116413867806950013241163186922233642162809804158700534101170719920172608329182038889839967606940085636351028532215751578247982608966980472950196876562530322782796853531446317782065687789755749171033396529554383864792851352653209356915233060095431428006188535417631380016724407676856276869803028606210585336809763202218216780129612624707486801355320914038697940140745344637264093258834931969718959327831828273568390324262565701576230559611887015371722941331967475454485366051995201745992002907790636047015108226896522175281092471144285416451183194157317503835646857099194889939079320365912902757487569516189847588537721445537314814665717119188581311958855866109611804060433428827928865036841609653174758213852409432510640518468440597494398950080730072204514740683419121816864088866013515405808152279647896999076373014954910374213416369419471608794624951986438174551940400499119529895009696974090818769490114855736241653529213351514637875095930589754558312263203671773893218307614048786430220106850621117512064794686802336284892932580165955313243748029918474223594151926180187979897847019168018581699748760566600262241435043178176488110279535816579167249470290101223358944321870535237616550986155361880243429971522776500711744242224698101039316482991466470133407378296843949771997863636023917839303499257235554106358402247484742919143675810959725875251150594781785632828133996651869373306410486821276744985714562382249746233669572119551402870122421674327775373244726225497163540766348657640187938583198915726701690630298216334750242155670461704585177653474535049205138356493802807787342376754733284344318456464922050454944352815056701313486937873949288374883902875266709120803238581077990678976730897683451225431577511464944215024781589826134637889861596263667771023530041661138453365372220024756291357242536003413650462975985102348816401152434587752700133315969344826370968510027995698163519449139089753410076080884863713444108335532447397927214650584753531641406476620828318448751784959471528437997138628584541653252159478637608030290951455697990942189741916793578950268170901034978491639055434405487464976461938276725732130037249371170410995060334037691138645075736248383782257251584894678413608925036365647920299582234884860327229183396602225659564474697742680621057197277564684529000674208626582217971992759206267488257296953218953658933104778519614397028528626735767969257184283845510268334916609944766766154410859689689329165455992425895378553923516199962743432615720629063085463709373071502877865006578664147463830273421330299736400523580611147756148734169726510855599365372131286785536250242087197159805643456096935669219400965733695384707970707231001148563791536346415224974439526636931088178957375391089808730929736151442915640021937190114491547155463959222893410577058869039963638426501039617672417410807933761038341060404038935854520610207243114332645644225916331647275755832485959027532897486125852461691430834958881054348029253205094213556604177589278776015398906612773521332954233974145544544543239124663023253842197392650281180382045725777291665015591937458084660114618048329283075380323433875515568382849817392883446559550616853621350228818032520039856557756360078144122936667347436587576187394206891284221229270186915387444097313997863670320674991212901927483463805943478094781519114067897080314641504276002821928540015223571947532484629102552198097378522919178906033488857239661675173032300118399853528526704295591527898885401146568085806546017257065318636479488527639727356345493963231967285049446099722301087925400587528734153624221947025225591465754439577448112163401185281525098499012207580743006936804465274784285684927899192416597580579340497576134085675645735046179438121295478484163982101830122633282540182842558448180060248488103003808563895492854641322618628918631815293108230744789118744635808883439608165761827901100499571652458802848039470437291632082618503066527737718003957416067434998824900377646637671000291068708922643773039430106348763044450104469309476101367789251404273519862602360370950750626495582760289775902999947829275662053349094654553096563699581356939621009902506909593289208585001565210850093074056108587674017730994438009334636268347427731759220030954362682223125559392886496573398308988407817757788270014520444581019610435913097915694665055589547984315028506684917930813209179162819084418725756395425889622912990601287810116356140699331257576058663980469814875569261312140107837965289961161033690815111020757826747878732690459801754938656610546746653364367409549569797242042131267079413986650775134973271574179315870576423275722117041094233880759626775185324741098185753540962353965989013894837272838622489245970117161663008764127511343410342651559168063115195786516877874326031445250174620248808847323473276294856180222847940883620696273990655587778959194366604173908690559187436822581283820429655454865159596324147755392211123439271255147105471919911488945716581085733952326334735194022708911296119805397523967052780920728125960451279198794336334572497582352181192884871078234818421345890730858874766450902258566712686300107535300883352819982448792472250180236086024094142051586436327381670118105808452211082622255280497332241012579905621570371845285076498133350824829624497769467422935380390119054036854250108888542990196976078073366938734625224193143309718602278477279661963125226418216720985933626349230895088655558282994290036130511416547897157433102528159002011191591034109474948669551885191423713356778127501294214427138506737619780477066995178224629698380567042613721001881049738579950040014304471939587185370416912029227749698893451388110099046143924625964899049908801737863824529309554027599320121481979294764871075803166405267321074459755918749748228831323587616762428392435766097723102523430223183701363558588545854073333773042202458864942296259170697147135097067762737247294445460173366754091287820432412414866795486839665068279052214183537387419954531451530427507894530952559406416130435291770545568134240298260993804802536521694147426365629469147613356057983496079154062076033317757850624458904721767940357120333420754032502577783416535448131854630948591565239332352501726683834887585921883895522719240709571917221822031951325941181681884722512708123857723062368743907431029076944708045583763077891807227660755713468449889201529629175321489633214235281388829462869999974471869394687367170170146828473638849255903817071784180852090166874640289801679754385070922049067121899838021089266783257567877582522175862925821187422560112026324146921857422446950961778680672682944634406632878059516056906202669910456776917820026634258438197160563028621311339849185907908020861256859883603241202686438100049108654115725999030909086662986300765264435164578795319741111667594561032170709318441746556919762821970681148401681325679158142678897827016398597014591820142511937269920377556668864502534289507260962816396240045049265888122027876814417535891208096967662154747470579720381861100970021666932902378327623521300099900185612264498230700860326150894089371583700190281107843410436625428088922496752150755470510574429386246244633436903475728234490034748315210034832209217076211210195518124940786195620099914678239798902846941310859408148937828786432421058569368381491257466102471533882021275074687081089495555873476635043142531879548116700352560231816654919241217948416571189447793308474499884554828010281534935119869315969664024059355617788442322117785518972026454581973646411867924325585431596932164911518214251701998943492751067205391852873530135599399198249353861456562148969846018268846711663693233826019717285751594026306114423633375097268159261999470919613684644136987790657343913634640692589006336257142491066626964552132775675179978419423081061010598855274306169457744218875758071654938962583068328852826197118398445061078222848325537872800774648786361399512336149927326136973106642498060793437929993515733458191348472922919057166427545125702300351689635753249606320324727491716211208205847905425393070211794070235561026202946631207308344040838691160530208502445040750470331244746635226564110325189932709176462644592719115649523795058218713664173195093625628440412164724492880905682093496938429436904853795104247262758959892404077722698000545701647842098059192512712311474954602928943700763179667493724052759891824071425570362961069982533362900363565507848015724550231031848088989329673883949781787889524271028578667433816970562862069292665508088658667258038933350181286817364210276438601548102995283148738811765124303566779218888002469517158638697321982231709713754002084845562985911800903539778511905841910000421139684757700364915882918990324433851072386949526322381075055024975963695525300730988151182602030103176821744166826155187288270829872596117694460193947602191512109406432183464024400895587429471114569944020018540510953886185278065238781096526524490737198145709763508463702791560106207299528938049669863607712583147121682414298573451917646347812940961407339078182362602973921714683376553282339809125256299055104398824556194985542528289292866138007547897388868829283967508594383806305769045549608145830960481495244750642973615585388597788956311312682993413348726061351072739996075397089161303199416923168244609184699901092704404580418885814438656562327791222202441998524660924944083538994745997218988051839745458559859368020766995590170813493822686098314556206662483562131201436047587068829062008159679226862517431575893137128140225925340317800244906598384153269511700357596703100790272598301368563980252925472063028784001527023146254029046086491223855267142031256728810114531609050752286446905372616606486360012502134107061994071673996797992262372716474879929311088123830766173726837914135763785993799508355479669139800218681921835581209696050266851834443917491683969583537128118410857290243372004187880656032248869480861210625638341033326229105381347486730727505904827442943881406332711753260518243550159127597214931977911185938266270484271568158659575348948566065872295942306615350863143724997582451029761001014611309422639885159529213852592611407110897682306432960726375435817276132171274817557094723109730308843484502188389596777147902329993819677848866354563093801186346823630115045554694435384669747893851759552240692070391680977568755525520648974867760615367303074710265806483472773496396354911322408709480586378365228465989255408234256464557804469432641633797504198119531453768401221707490678892617199390889992880177538839542778574957937712662272104111724101930618921614664389946540530895627831164427178216529265134346821731251187304441395304752144527361290359858434937555866372879879505108229260354482693665762537619354323479463735220987815960320880558261522340589798651173536278466346727504170436277984522145594342592658995591820298859421904661156037217228903028563235509532485447903605638853975648625431691933786903323522021539787071641642214177375070897381657479049798362705158777059231112477945021245289785584365113305620288170810989501025312183100716034091287359072927788609712138946591544469300894791281813862935765314824495291963790476492717462089032253018839326270245822301574859630206608599741102069120752028224874161971161390170178901486776036003113366212591196981029140681684875586709184055836852328201338466121243224874221374868214913879704698203160909613766131018276600121413250078117624006575496625953603559399378369476318902783375545952572562738312324593942096079383698850468187404979680258431446730829297436121946902759942208923476728897762272551784560850039594354074265738236466249604029803147612066445649581949021387652961246937224345762044627978535854997306307096497943676863787216223199665183659581422288975869400153489956943311239958376948822996049277500374644650441825524125382069355328333079512132420556191870620621342855731380392023966615165636481695497256886825667591553216148151926707472200370628868105236461049442989971058745819455789627464630739579413092752783368783299717899084380909275303176567161737335823999984325599703096127924033530706839337232739057843369451203312429248113307731639238957226366464257692839267392474787050465969672648203069180418471798183699056200310263936526290177285901301529924410084203739807755706759037540822655506381253281066384888395635306742295384699887404955650232122394924428586135498169492186552385890245275110101762556519232954879084055805881670882168845203633653062754629211115039176287838706962032860483451407577927117545504901636335876489885389383111854068355790567495288911565070063868670871103720376064112192484636565826671040523485368712517884189430468684298328592230928904483783031631412700240230818295420420347007341105935515573766936605104257564455858355073869883387665296984564868402670055447494792499096219191980551060757887416963956090261435819636486781937465616524694060404578031705530508352756567433428670641565621490330844681304264513653492860276963580392498125531615442337491977199186833781089013404567930801526770362856486379966274660330270005737715618062263284900039480767335666637087703084066840484577879876845075007786732687590272361562705845341389475574355388967181734915006883519029269829169788040441779421312426363342783045112862810629998824678797655629048456678734497795518528991915718420329714600322814245834610015357914003505859324197547858811675855335255546361808314658887442490053058760416644301383700509595428255884740361374471497803061442709553904548081010646987553406801588743396038308389034907151515148536659270713944569622184942984451221026672901570594746608622141624939672748744949014198757107312228362705196235212590775706549627765314473340145099636399775912266869337982026246447321083131653572605610677422569983625569836207143108157834853566917267045848315114238991556335939758525305752983098266045246289603123966281221436811702581348869216210213761890400857377732616069914383274596802701512112830374526840157090088952039880654168789327002611876013331562263982398717776770986140933949977786411511976560549242246137654730383217141123041838686978938679583807095518364011345576087026534052040808769184529030111523055899528520289675331532064726071119915834644770361699191591800949359475656228451094282130001735996763721531647069449337152032245431475909335072402157215809968980174465691607652346155273739804809870457023451028406836828729529514968848442168347150937436792304156048639919408623398809434641507879315759375487976106934642671872670533438060955134262106442708088766845470451611766635494423192957491470774524158784286680958454130872936225258058524615503545201135427053747616360995144588059299164500884984569794370285571500109418985968817561737301135292435921988202974869702643354192814575615053738015180695526161507544999984305623545083241464642277321417582494827603566827063338573670894030975075592631644368762801783428491539068944767063731529840455085893041058040523593231129913204839821138085300488246070611355921120921613560843242232624508024049807233821074875437467288498081067619433422974956348047994833456628578562596874720053302223817330323407304954723077605693634120755290927300269768826652851586590965510006463131374960263009040457510693690071180041550162604133584464559672754603090452333475788154223553678378333360961024155319365859339786234353365364908710282881935112605559309805930441501073215382833941425846282863742876489292354293254998944053672202289317494536599131527206021796123511088819150363367864271393404344424206209581500736736494491240771002053692739014291367670310651458195386273567930471662940843898639348855174514114861816297890816829747823562774167298236107619429545997332159330521311555651232788936349768513653944952650540667567645583361360249508532288915923849429030039491879382279133604575180964929176882167004299877647487366927908086051174406209170704682734089689723816552275169621872605876406832562462395696810301452121680812207946919749513610288224936990273945677691752585205137906770397595812220759913924585270037086421845470429420558505766490028396722596783722199629056752482169126442944550211337491745736803689715090223412605778273695367947562442858794559907504937122267875802720628932150811462407552724284169886726783434020425304917686172629518745951893769077637197407039009752778761407077455269360116104358504124943392726207021973657155036732477710282755419204835102575326002622483960088846625587279868016212317865885540863676942748672254110044901499774493851586117021634229817216837625503401334904706541511389078022459573455935328436033197918054850053838048808852592681846259283090983099285199441192855609581218692819795294974978224253063545093972475833097621011043776625490362170610814984640728622272273701166410296867384553350328532089683518750386338127521042900297106036773819970265371162816102662106335411308162493418367023470258101323787123834222741805281849806377236935264899800370083546950599953279877002231409401181421037488405148057393475625175875224010709242890211389188536201481944459852286013877766116835442610807661125362745403124845024853141864438502482906146480422181444841693813275888944911050032628038998803122968067538570746488599751019620355997371108173186977709952407996996444466895587068493316744440016729938412866824268525058356236001479201441787181018144791344042181508721951878121471652143443295256909494380904540709015191551008281332905632388112292685702126830946729343677120719693422394169697576077690073960752974254446116044057617207902115280365393221617027866294962671326363278782563798667623904294305404212935662170969229480614731165007788255944370273527849107462400874706487786132532468986411069379139976222477550723973929733202191696510013735388105930146576375638491865562383228654030991494793517953642936540109521836138462803255552429169232669920719216439882293685950950481229535877842145481104116489319519761906278582930605023753889462228178804568610506527801157808551409389596907194280528817108595596777569627919828868161711396310703390312449979591379816936708472818858747701599613489451895943229065806907129243383903604761507969313413215498719772106963678286177929429864866307365937163281378558634974429192694890970153727959789115281334162014526637106515067498942628469112169214656949630205189341273055293773166906384289741882535051244764602023775336791272016133143759607650529627796230453543175289036788560828028103573787018570964216890293142017014206576525805098413570441524819819923269743473772790945388392614378179549439867618375066345360869328047741358990513378395565545219772861524822308267877026560667839667156435949347244995195934507640106268452284486082450130781126687536866595943656560458586022480026051715868734460484540511235724789222649127914641203554975032177998523523761368871317828647066086685864060459011987112786426178578927820055670919767292249911464053724669736850159180025501635045095519958922912938727332235086679628208984906195936899798946911171856734358149806435102979533923642219940951318125674728573294006850570801130870029817735616829215455010403087098627105120572728187411634131819510048155531727662662602582782931347524462777265099071438877287400964637764457819705345246685161397763199902819198689162930772041198101920214342330997234745030917226097261628347424731061715444794317205847925353681757172631107704141015696973507228348160642506319488019121210649008982677999788119689653961547553944278420955911518399586074645089172101807994382203275929637458019481265232498840408721994385152733368701794197126286461746579213040545641145675611948063217417978725251835361362108394289892663842405417205528664452778232171939429997162827409314743831583276346194857927317066776453153237583021800445219227446341419907572861792409182929349368459501602326202800525046099570286019689936362488823332722007679970165058372475465720090746858134190651809079112959573091080677814073520047052807057448644656116726685880925242111453658451229214981450421769978132231944404083106745653378780510311462279634185508909278370240192838710999482774019695061705459353207120350090210754492745882892134089489045887587326084099893724698929671848536300420596618998624851561619522096778409609708763220702180764834155257489225723941821266053229336752841244355640553548594092451520533907488539844967457494739501128694610359264218842084267976105924666212236792119287961787605500640124631497680115197514594120102992411759979997380894451883042710358184261280729642897441857679139264486889428368739283282286658686716935275765798114272408699202627470054394856439916240702758054783549590200295535176754604388745757598125482065090874947500528603574756245599743227051732205749205212369835906468200949232042888527122602252048005711181634043852267598246501800647940042558281815072243044689096661991284722471383340928106173509947617564725005020699003485131709945092063860903820747187091091985075218250582310822256892580878428555765954658924526886741409695474900162308175454720384630156399530803231400472849413358059318979935262451483268259828631661205500970240427178401065569912509700392669562707149775663960907685301581127254413696187893830751282602912210067400871259545997029698258975582368160740824816029282163434310600673549096021679063494179885991118230528666830714798802106486778765121776955162607069015127652441122159774137263126271754908452600277286354678846129387148450792856784824505643695444420624402959856606508920884135680506272058533905368443974060451659317312894968529808413778623683741921320146069129530131538112516280183129858917695221018510664658578769251232278780717738540019829038660641861548358529437521800274947671829706441547733197208962051119184401873412790441698071408987474495375831051250169871658877641689911618514540272710344517009246961633657593662375745652478639968684506592082809653562769933732398746639840380892344080517130708556892215962332559302669716229046339054334079515218441993678143801978814835859049304771322144842268042596962056400153746262425128396633897121688304789478366126860758247428380504714477544998493868725886272595895395707282362674958420648475800291273277744648090496510962324768287599552255178931779875947045561333482514713016486345692292722882443986320318033483831004475917825593231815728741083999881135621287369160527231069332236200632403337251407175277728662857353545564952594237722140790159471767046542761644632085327845315287916633576152996518369707928385532147719518203623765359874420331743294906543480020792547575700362316309304892778587872775811915305079321642565000996850588669890613650625254021038029575658048744829411575166027058480366785072450150700486585605795655525715174066137433687399190390319097690664653014269565014805516901084015820150631014110894236868063405772735388701197570971539788495666073445575924147447277528591143523870351883054434297409300364057238782774112254664562975222219618597363041371442549672513081085248472038760081839730850592929314890272468188880879576481914236848035197586071217036744665499719742179742564583997140268965961912433045321832233725256085038933852378018800415285535077520505177004405676798828527950406654593565658959326902443260125025120958444437349239385296229084129959303202587790051025131273935879007684997614894979486972228499380627752044689941180763232201801257034401016520081049139086461631412063438703734723862133319432046959249648618981982896228837918761326092921473448203688246641968142972166548038625386102840099784577834935760025686285080386184893652810952707992330201597936530145058968959159230569649135773387825896007093966269561330494931370188758729236197956582268741834879021700534872875217033415523331212187113295874968912072219968596236281554115564309847235860805627857341872679844041167178206949537351459713896933199503117152957909045997322564322806398121229035415678241341902290963470616352373087879379311408178965074496914817475027072426964058152404389507536348394000998084132942343223214519535008827351391822807814884611197252025135946499675218874876344725675536104152230030514778641568005208713605265601758400019001124917147554503619272679673400485939745747264201368709921344306296290768111817590934947320018151714837711293018968749467406007570051521338881629506731068565620153548491862127215277317612750502356852177214823969382503695592337844340015041439620541356392072212373455704040625873615644056012453956923908486822249284441381589869511385063221129146403645123667814598102683084153770216735583671215069918239530771896473447942111269872324216416153097927062776096240352412637339926860230292219202211562738470858381400260156013747840426350159691780785349520066040746445462085010151781277887413590604416055588276334641260011288100442169511915711558680583402061515726926997388120575557495951198772544913494002637666863358930086199508823910423213559922663011656625482847926476091664306649758129954027287908073576311805453323078740320527900513009976380384793347428125601842419521486011244220661691249775455206640820934906456552838689090085644887418294171754766020547602686499331162900130563045911766250357390205398251920429476185068278494936891661327027747214598836398243114026349818137221806986600312663949288026850762100252300269211398489202411722973711171175508438785674333038011499761883475623233727872502910850636932701978577039297298939808352487713763252446369172719492086942047334016792488453060156436789328789119992835997096117993836353886027787467904844055601856475331737731835990472645113205874017004785742173530245554580876755915707192831629627456023290112257174640224520704430467409226045345709770495098759623305394230015275659315762746356855732949209752079535780747583595163512971609262490417060707652218354710864976146332408520695969543939300189139010780060207855024129649518053250489940326878882828680342076290825813551660971930624038177235210472326768903064878116037496628256603455669347106112342036620097070798984385593191957496541195270434030839185901204745578886792125510610400261592610343007023959993044360142232519454537288361755825990639844478951351697804046699276372764350875307836218095272832133846307925877812585415994709151680311991362544611503439756077615611941276484117304097601035072783976734790392266011526512702161188948816726700195791627792354698749514797511914665000182932312975060568980889524027041703283838875774372365975558776302507018535774792899246398794301384120883103380780233056264418739437418382350429992315931897605603065672357297352182170179050604638865964944730885941949971446297381850190810125668233925768027122447313225508106794435521134100922287597399500670827154362574423134847772890952687658946450400967515672885998235735836453742247240488697553861901222682881366306073174931046495240406136926745481706936569555259485476535442329270417391937417497453664135183834032630664069010445270430280180282730376115530153533231170379534019765478530934491536212052293428623883859326119095912524278576721301703533453019307327354650597375937593219934220535480746342628553152316166169596416786037346983074398825108247624006798393121697325185099296723290459096399006961322711295180559523817201761984918098508666578125998257870470667768601413070199315941430289871717924134556452376587832590084122521660708080933523781795063261287503232061737881687737786724671778364951108572332415057413659554182407045422652221470023037717873535182786322949878785172302447217630444849945668317623055675661182514317729027178440177339849976389219486774452524146921975330268116177475052786346527754793509860950985531030215758503622832331234265421642307353489992426379210666634281415625152867665681301594762033611822785043308315581404675957684376056685508249892431147357247766243178769018564831444027075595630917094056792397987509572043928099196024438185357343906476909018719284925860943976965518828302488977209977435502254674467836295779670524392649868992951848412359304663691328556939040496470603604896397869789533321756096069615936130202580779849907842019588188083996664948332106851270179577668994132766571563451072222934804202767687576825655378932406901744860390837132763683870818103279173427391159592883344680018737099241215050801816503039018834979597378520098316933243960369650064263407029405971529318397009699200333796248911605806211194274301216212666862926191140790444566256141647023702941605516546840852783960164214107523479515932820801720020084118772942340212931891542504577474289263679586522979547044286053839602674112100913985403068487279051376927823012948906185501696310112703390163917964925844079756588381792516517079211513499470275515902970398309195254326255018849724611881656932178020339610732928213722910433677406305340586188360532457371447402118169780920864752934747614814325446794022986129964163438665744118088742744119843888840919713633448403158450881064554172198764715829687240522189805565902915118385858175985172911313658130511535042955094272351716875380463052971476060093007931130218550269312789804523908434876657636530550004130906918390836345073364474783277193917797452786269073318714806814603273199473740429974007560011412284545022531385468217921326503926850334792583412971225005984402135014973468630637977791434779565710642394297797811498149068361863228846500081699385776094365423810845439144594349378984223712553837056412271393748707913611165671272632574728069193398111993410515387433722409817011245167628000669940183815286857732159443513015192745016314887302547671766321822655528376236457614650341446082413391061929456186783257236312218815457413068376841583537545603093739662746090089009150855699381957081018574204224860166364099388097388884210928756347938283885171488257034061265790218059147884361170877456800669356879088331310137170876220206745667785005088199926185424154387443101856589359902093777854681339186137476763128375069373489842101660805574356492557600441681613915258579950153523036115635114917797619979621443138208059203556339998828187550759290730272581906554155589910211689488280955495009912965735665160480944810995850057477755667177281224293219172144557181558485861019471615692755077197453495062071060173993924635223497006705557369229196703943477696143622897883007586554295403288610800871456589789137743200036170787434924253281200914111374767807579710722659317336197740760720207841069184360843616059187823499091662562586524853461685749235244713654942993960887804476502808489985749393775256730585427990351469239849639744292648089304617996863126300416479205057665527063592816704420908244842281095618239271759043825007922942713888771675839802178282867179210006974094135396440423711960954320637240968498278671716601927308029899895261859506125524470655731815381499001275630612482085894958238937596297693457001618335932090711747963639289722674418290560527110847611235530584123582942660856476310224195899282732549130116611841871239061219643648718761558142158779939253984250879717790061270878696971418791412383106370908507817383729106362590143346459185734404470502681226015377896794039916523238558909716866443505244130053486915073635071077330112335376884304820265283498734052998922563753572736576942704657759450378924528759005671583432507797752383873619979409231427870511529814868998916749677979946063597170566750726729244079825897208048558143454007450855889271881802821478914625625487015395909756580294487822751289254311528285269104984684545492335551694687180495181518181526916294260228516092059066451043222491725180483130090806853861248530770358938063108230844333935423926896565364782940447921077946307006993352923011418935716877006347708178348001685315054065906216282267562770598102228553232290500056652683657934581362445431938692700405134270973471655863588048917148256037856273058685844020733069208657320726812057577244323582514672238592650952361750596268765548414082272248423080526924327528534053529378299811054335115025225512148076365141937963352975329997317492587444335814221870064725454540472438006704755051877356569040821917551767345673680751145884941687294574240814569619774461517254035391675601999256161918182611271952814525460994730135323566974374151423769273615166772975455180544452896385741142729371852974422981281119211897072847617993581694060988053210445014643223381458546115443615655678152340307570584439586341468270749657186963176449009463512949119444990488485467424765517124252675182403578980546625711186492502700658878608794508976396624906641742471753249464015706284342711509349992034043079685109217612854117682277830447108507667909545451268628120838679911591607615414953791454098128566197002604731520836132805472653464852199395559210436492266750695539077579681452970437279362924664704425563067117748470498024355975977551657033708924187439351768109589464427677335488400179747035260922853975706829559625656473642667101483951484322658414858934523326184680238621310156444595420942288303436729327936745461014614173076486844486775772996488789348848812802210134790422820444274076587006578770728371053062873723791403525835839759527366395966094005602447376521934283521233895367135946490124817873001908260812768986300091738491712900938828232317575161054505779358328646326407983455332451031939668451173310123755252886118808225454359425351303531381281333103781163543765705109149795883951276159658819936317322653232025404764735626694379531774785509086716151894602774655737458118798984456809936273401954771102222272817081845447177341326687939037487987585536063283871038373408202257523607828502214100510738049108098195232843233567352635782582117008095679574181956059289813258007790212972866775742219326593804403271277072100123918675462057150873613072258186351860773615339821685004797981130389955895220355572754234101690058913111486195999890215278581732447908241937296846199012600430475500370016869729515365667584476098946981929493934832406473697660306744520846295776974161055759944188358461778769252724069495239862729810965504705730233170555225830813749343650223741620773259680884940924541134170977299603922006159218747331033995115066432410177917518912439815227185385191924873571508419786648163083573326701116662202158072072696166729545888526409761655927752888699865422182213284571270405455587048492274672012297557719815502252744241703164273348605757581858534479835374123666754741951527251315730599507637002406110755912484687696778476052880668144671700301638274039523477470247843757001540775982456338547133460329399397437274019401964689536655999093621295413197137402529954479536977376253741165290663050107509036107329524527924978422021993356473385028844506494131552901615075583947447980223449082870131196492006615827556010605775658968405289199859138139241462545587268015313941574264580801276764192579212678427399494463713619257193744898084949779952813561904836498046552086616435634349564952072678591734446636422809727125274121548534907374710273903000715664355674457640814920598535404953863771058601646023474694904000699179335780243117843616161208025704538881007510082011571960528974954491636318985096438559229615727043393881935442033519709427772418461535435085445167751089292501958709817566515882428566234326641449458328964584644393574906164458637839415847579024498201026306385689757708956168750272824826402449696318779120212887877393079752071015817533316971537507723898749108071980233927067110117557731064427672718916259011085466637894337852263673749295267784219163651115894896260110188906226589632681056227970813410405180266817597228527227453670970781217869350199639727265616436779920665040882453482661480395550690418050955854924005663842127750809022388010847872125323834672841413056266458363708481486330768246584438203739513628074900087766507440280796197226686340003787572267321426280015179103682189896881156495074226501791193695409145887197377594543502266916654272255398948331428017790584049692474871390249768913033430880324999039161659884384724885144198763889557236192893045741674795055543331421924864931790135117545989032765241093291808509907039306273828863213984811503331673999193054682826609109276262568257199318824676638139679401968370318509351751507435248227189630821006228570131014532597955057519144129753006961780823642699753276950720585138364256782288102614600701159777598749198302564050071800419278455991535217910477692570194806295221476112255524809497553074972208574455094161020772967092121596746709300701030981506818911905155983353783564471639514659940676425792016693171027647504960025293341603769880164047576037042741266574279091685580254933787936788636293199110185338049285678776195617045631422071407051636892062832907829223543404275771496986974395676930200708941452329511666170059674339655783540731751533564559837671390380485152809642581850941848758057273613862144055323228454271898962312674054830963718963769923054457762131911829534717522773920157768118696178770720000524471313144281527327442456420342326317972991211180541116681499760417014386392381224363540826284993572744295813528022729922474715558823260640504021383226821209868121357125971362224434974373865863296592340289509136156193992840862501719411975652137051337965164168813895434921779600408580558669708547789928464674112020811265121627313773369058926648408899488367267985019217136970013600016693621125327590071786660398533583390557205833068880789610938466024363082492736383196138847619663071714443206706059980935781877115314248672202105259097007357753355174819042621659698801584526919110901935414012319343059104721026632640769799234847769484981131011169100256088878480613803521943678981363719632292410011536207894605604813557820253623680820469987502330727473932370022905903745714797634014169236239656124727519487844268566581757083886291839120377106134753692317664745003993781131853448776272170186620167012947657571909233309356553441943816222109391021900227427045970120099229661364243193800765826039174651474866250138303900543598072402190615584170953519117324065945695985526489332428162230411996774091020974118747051748879867476982526910434877993290753856544493962766300264241066886300902992570148695293940510071039610789801125886732511641111357450573620406332563554014650025026460394172960792589175555107233925477864797166056313934744896034116088389744454353211515171944775807996911521471526595457499073240464310207061281356965235625301975954629522619386160661686690214112883538501834048596328249378407935467238985834214012908473468723723754593124757462702500130894538162870909422147992603877928506182349643221059128982813672965573749285020057375038368786680047876901665857429602082795615128051610686267875984482335169520732403067571362726897645836913672148537526504735820205363461819320345892605235768862864998931412476479913484324208778889399335228944709235881357728077039810313528580214142227696364206078608551692119995635530982179635987960819645442464892894700714345365167584358114875113444287282435520021249652876440979823423666281567530710853012545368744943427662053154573262586356745893469943971818009756704924224136587261004793952021449000479260435031192289330974567138172551315207499535622409385729665914849766995372875434578713905755024019626760533085432935580970979310415207111238455270210173565916865149574554916859556258560145889745429929004158134242358618542038292050562592859783303353348485305069597824060195459133779827505119017666047420682261658635260935936367411046658540912178676624883520130974008616473132643114511339912949480170023611248049568958785693715961839557268962943082857535775474168255128625603054262016402882398352026329630884701420171124438951387584626749727759778333207983460839621761029501907955331496145501365320945326022583540503376113691405794081791528809449831714472128851696853983254497730550094741288069531400947050929006449406310534727313428302911529807516709809106825209719398995551529432598605391714431367046570031065290600203145098645073472367792240389904305143306244779107489652832463510327055731786415112227851112489089888960646370669271513088096559852032836206162534051333717717840302594800052214312461805572252685414776379718677279141891950280956544743034096494189996014426263989828592687149452179479797237974746457247886005810070422534952221390137745378089658976281084343534270347844076591753480360771252920561046631507260930277372090263991536609992586303047156544449790462732850732214361822909938220003013244070509646537658375099315465519071802616170294499355984452601180631719182445331379672057426604704667456437591898835078217864274277453469622030118563198485270216035731337814933927688858722328206576795773296769714453203564158580922784819039118361860242118709864129540659548101014115600774200770539609331793303001603819732189444527303878074363268357600967244442254066583065159975667096998651327809054795301848011048846458525599747572442480308231403278558406750175571498137538124634595531770786635470013873406291698915560917967235971753807830578694906118743506551392532611078220907010749259550101969756211888353699035342570721198083123874026104385530139083731311537062170935528778239867418442635092844260245095872447813635850678243727726361163812860852186346994820017273860485658179250254864730368367367623529028626726017978228694728033367317729385168510257381880394052404330656878334437920197717092927445946117337415799507090230418335182953937733101603478388539279709845264644918372593325323937911731535919825431834770457104082415835774775242577746924741321167824668507772918742240837801576745628121089423839018249099362239528015853382945404672469210135362891502769037363846388141732339764782114355332484649435911706150820946191468638347387436787453295550683055845493616738103248853092396847353611980200935838967921939347649333872644632376385053051325778716369008770034046058987396599845797165157537232457340415257322077307615065231663479717030548995519378513753736692993997541207886603637021930354474477510685622476990483074898880576177256443010691759953112657332287636473208374918676424320585819406392874640699772716806508830538601519700749374904146487770298189161821915750026044375763057632793350203314805077923017934724266768944155439321888428600558012022252969700976002000002520405770141460745207544712925117409872785151681652474413711162874956591115494356025211231577223554441106218614322998487605570435824127853542238659705066766918402876446407535279844657736062449127163147495227132204554322693872080817887363726149393135986458549869194399221964183072535625008409824909801583493206801977592588696069885289202650452932432389584370637433005548559157653871372818933081545424517674066604222852795811482038356235175359346888595631434554412239533120116659491640875222231093799656701685989737737445062092163453374911436053602028366549058444131387502184921805765579700631401252186997836560783319591683745286176756758642428456399519095518338451761395344227831693879260364054836720042686605857978438005838872933371740149344842496225472397088598301958969723923174535269006307449422159547449559354274582290908896365476636128594167828183795268630127472533676963477176944689228849129512911430957189919724718451978049797106839341913313159462312705371770682095533960442040898019344199871130499251293707584486754246745730349765756095574412327504334841522975438929584598589694115579898647396759110240049681144072615123416274743972749361161502255594186841486271589661857080818498140644956492007478978484581150338825943487979576026825356940070300806865168802095114409219379622770650066007791545210568940692725075412172889066188195628546845961705795397907220307485101892320819622959331686085835809028790692444813271028322783038459651215232135969815146955256116756421383094131801926925894503626290768965802214885440161885594857529145658959250393311511941735396056734208452097149851849993551197769122812819641217423408776005749996568949630650420073294815346411772056140905130096089916024930269531365826116250021605614224945936058031505305225809303074365851446792876356332408806983959347949181580333422968482360852920975183773755201183548591846153800578748459197391893879990445413368394187485120937790121645871043836530734014989469482507863049546987387301737955310785354175579671260489588457143076644172450032492401680599635235075546662580742424695587096665623223022523248953495608403357343732087039582993073258294127351210427732638894769194834667818446246718552431964375254769279370958038471757848509668568628342672888557034651595190161116411602989186448015182925829169415804371610970350719618800338554591282359240516760207142276702064468034252952131577225396477491748762001637913985257187931344990777622871204813982034276757590173330985815966883239759608822954147779627822925267097927942891276206781902027951273835943527491173494364493519637845453036375415634475988532653705532368886764362693977909865801907693550426133908769507025769455151913697011893445209326726951051469218259566972169122779026860121404470935036587262279857587948235197150613625751219529717546322438388962419629797842368517522213306838940419758330862060911239165268344784157437754348951517959193185132560105262663339081066993269502807361841421778757275535565937333806131677885513447773841890128416702741270079947962548149723524432547768369618020302540210920684874859047133972598141415049163231319153700012564946019370957057084459097573437850836630535023598549995435841858105013984264926568104005595453021640651145859739229931019175680656048224472766904432312085077302364311375874344406955531824140050417500913526169435061973041286266187438453511604225901816659548081187635436335213403667513614744552046477344613759804292997927006866744844133855608617877190847519262169268573159516976816632006734976710796262598335574306434591029753946801847327218533516643993515307868417093173011654482111456055320572247906021361700495291021041229189958440592077101164142047093838910038805311716093759268450935632316181687165782179870080420882563515211640636775433106576866656681307849548011718319077641724953109477435617920510325372158579047629404039026740094834088660566559239755723477046502648109536550247074385572570795866723282106750073971440751744855271502238704257540924816073269838219565354997139387172490429210618321768827498817559655087091449507690916727936401046411297911076688429056306597097309779256413705601000823262908545180116430591201366766131701979036188888900929859956256784982249019538724889037149742068728793431729204206712141978108201363976804124335020232456124153971188196010511334379001860336413787415609620148828889361102857020369495807843276962398043318274578010198812874451287959289132892601220867922998429128112504107532243379143514748378853744620635207409449075361066096519157837834011558317329410657570274171288030716970480409313405953645539351948555403275476527154853518169731086254509177469338458359095164353638061819960984695447465554768611211278883685049068680427503268681747735720380256728171796093507326585887442995019891635489028275304825683952072272075745502220896672775441658241262371936072725978788058733634260282992865895619772985106647712632101250861809231388690208417677618379339736784940218831611143492859335987104527156637124096715671836327791376555930149570197756679735578383649928319925694437137211989992691444518008022581605314917764358556763319913445635863852585808393815198300413480935685257770304151770886559968495544023443263108296486460701322928880907205508662406383783867800099321487521648045088269351564241756763908836027361580228698811986894714629387883303318611482465552470594645473460163802398392855837320591576539084174462013548992505559081863171206241193661512250882652675063029069508589396244033073623790423052812915786986415290621465036182845001516197643120238911403147110945999606589104838324923501188628895795295932938408908229110937600188991404397465578151976839696909055551199052866778395345539410178444917582375636867410601678601384057579847785487935749911874702693023756251694006832503048232684810016095540941254944759088451572170356798470641446816015888760670749390628286313351933401458571316243289375788942814222034686763421022138931594568471082880129167884974726724097546115847568762433172011177987844707102959321942093281646891302556551904912177397311701745042378131740058004768819306454434653225736089851195222954275705875345290861292362583059568033311162759470363883106419655146457487965347712466689852415804899614952934335841752318731442310078514419525214535414031355057169081149902164308862068829624345576602105179518940709760552947953124459284692344961963611010205349315146359417000848658156053852512348949599333387940007434700383025918351511093957648183109629267162487935879982933182362688652877845662728419513900996651877134393609939524759430667864748023745522437498921084472532099881883814055499530492629648946017230140508079933557877343983589188413053648683599537697103238409447675419386371776206020218990668322213767176883881164752127386939354554938585280686129182043157347113401626654301363523112548036797958107798603492452561531874266833583876482716849362238254636464713645948359501721395574524090320594825119968290756776722594554567532935119083076349265566268420669951500491635880592671231822043261261622632119531687306178312126823013239185659855165954591665332546011913976786417719949448416502058184571044668000407451345879920988748658153546111543646077711614669959212937657918130236118605616508892975654851966868208968536991610521447381727555128087733615967651290431344870425437293885720639118900683683231673654376539462364424659338672083178665540507257175039729547605028971365399485780819181318827786442465762074420317968529381982265470092791987789181799560397207826646016689664579892924690189983774642881257559289396511216584785532394216638108751669426857629902626335791575672069018863030783365983428778421109027376248248022803501359385043490006180653734541901314410490724660457367530974982352925306268742230126441127573275132173833891986663306856070493685938384585681458437492881467778202587959761425457270501920166404436002841508958771328243915154876487468227291293766519037587502639131685246371941734566392197614504240265894466178795507643267164800602227010408094425326843165246666206892648789721678991319537479439810176459300716411759863213649781647007565171223860252110404874925103128792782857872058272408940367539861177686418748812586583282762245742149629027667547619278061599300584861914865812923547360778699988750961185464213412409280914476678415505645438478361321306326659388239192970804708748082321035751288345676495801223922290006053283033199449990518141796868168128296669608274079746302079620955565636025333975726582125111619931020158102061048430554833631019258984009896120300082110234063202467228866550045809284533378743320761280487729800780842118900150465771997235519410322867100828079157851535079576037034054512668632565290352213145837383156099960043524808687490019070320114965634671453165972007161375283704717709354372939406249891675492754549557293564810528900486991269395485725309213249266986306653759695560982174853061661873411654951809090382149503731434262912557983134212650067960334246511378226168750918094679405580732653966628293752741849514289013592740261279402395382210205485916256633009288959603191212972741048773921270519812641008578793041676841171368762090117923092918597465519101250835366380771917445580002753642125378667658053545206316975268773051665345694633086771073774780955168253544520654145991416237368506565990387416677245236495728804339550419914185492300343605987824763491840871304692327440369937916370214156345093538178898779621865944973071024251073053680444567292980175623911126225523254869047801419427900280916501680241356180348636426218466583789922391012756868003504605844110596117875427474091169443339314969509202510276141860055275377573483996823557090464196282180561553737076881497815434719159784365125502076207891668599034017500254447833093117869458676426178373897785818147302739212597407727307682728217445743722539777911638234337344996757133736436985323583760192916363024097212352425562155831490070064854532055335066548715569305973305495518578396037930925621312624946906050965920967203269261754363407155983220808999745031991814750941817119906297392128820738455942410323996802115790101509252526327637781410582255838163971461778456136092655707195535353668714471521735916613693656516438629765197185449277065124342577528737176782880985442604330693020776560303710045560222959804639951027089259049534894451122877683073047149340444589680632766693621423965155190808387464327142791965948937031230966369045061347921319553473124480213629711490565027857108471817851312779049003714876563359482882820613257187134110489754214032358574376444980235512437093700550145899849762375625944607098338552286099415599628673580099043800938348076550577453929332652858895958621850463288615019994792561728456860894804055284494512873637660119380140446420276327127698001944487062175436901482167306264395063741888762399419963551907891235487233908214760799500394080305540992576208606366147561773400422584234263931092158544622203321215117581952353833166562339070558035074867075586000194981086637219327915259890881809419514893873265324868842665298790562688699385262882519223225014814920148995345322519814113217731667089184937905858080758843404478770284729973273409574550178326222210518409789198074558489034309098640491810946801725977822979171256179829263048713478035175419187031365488506040089126052533691180758827005516295986167281086763646915585296760986116303771403059990631965153652662896916438895368391410391403017602811499269094652010818252943222232991117216154392479992853185240172456755661664470446927156644374535353180322223798634937539782853278726046718992990570088572635355310115095521200040950842646972310988082371882960361840678859956061464964833913880925711482958716024186624292570071027497676168813537923314841566328133662207315740393876570634858927081696848691548682672651216058279940047659486574657575586813054749757571447989054599335632531252578762822156981118734443987588869298087794035571297672783856682204242387360585177428981380191975420728954942123292093998659027728662580257247211450209433139363190503752881797558639972006705178133981818226775919919157298651446787711526443147657814371644916659444160742941293737601158592509926368847482849894724305776752042546291576042112375864997266751140616473681450781847208307272308155414589396964439162834080632127067529898285861276485362574256102993178091057210743122341711324041142293832728560522518061604356540185727899770238542944418613158713580671150931616046831807312980941255649580112539470006413068657789399134487448023116107711262434660933778677004235233344811808261615954249854568487060098378245182450916999204790756406650177160118865666014864528351144402657796842404549966366847986276508698860901950345575888798176046526214234837368550957746012570341854785260343284506828373398577726980801685998866495205517375632832770918564684835699270828165901773121041896989586429347032457948849071716050601108376684943921590414024445616106288761525132043863917607042783868043295643152460109653872289477859444586752993401677913808016687932127875130014697315679870651707127386991667173544137935611046379068973144213238567195970789622970492844239765051620776880740454159650230374153016420795646937790043987265001505623557943104431398936027731104111851068298678922118936098643346798066081885692136633449062409404660316084669298638863583800928872449415010702642714413197124371922389117007818615537717191563493643372923880170276227158203939584673071794419540931573180357196619741000378924965330247685982704939758212705902396330635033156203341904578419931665228016498794063959377848407709436091303477294450852356594713208159922478543211391500498073975831837065774661626935939748978737445338307864013258050925834371322604593333289791533091811952773517452915987505771865161499243696033616738764788373635288755138874277697980055453871267422226572416756297101367017170953700566457822369760444069227419043021627062578646257927539853761163458448852821907884512849346246832534757622295404728863547791553401608647337651889237235800208299668814412397517957348752966145746073412106203444017439296043786549218988921460003683765813500525810743553537735681847821710097368602334700146937865860412796778753247660292189858134624781297235361494863876612507927469516439339498413305082840074971457204562192565382132709369441156807835880519617538582238395284257799590120546323889387691565115902777423980860313087005242003690482364063738212270673226918459376707639903965394707728422471063294057439263028995547494203586387451561495603707023500851276881902269997532928659626193080420688614152227891902749770663284220875040538498607445927407681069348518613625028657319089178446145774399636317681939707741696618224893221402786701345288379425385973821978080304504993183574160414770726171426872652832430898897628417483995660593998844773854246872391036083931237137716908185223495239648344678434746335535369788263389886191660080750231867463505622455715185317073661377915145772031625855829534380905905561799365942549127318558233309502836740511261482608048823251255386877063138651979446525865342026094324624483883639172456024033346555100452944666125303252474715536021900494659350288368706626365655908617699004463808596257527365277641509867951181096962848673200402947551481028321212363303348101423634016885210743320842238458941856278866325143932622166701094398339063614488260544450979835377144685883887519244564669951154983913149714379668679507185637704885791631671572506333093173460231128594832575077604314313464198374540348095226102253540565314603708720486186406917742877919115796337732243678182405359688830285774839688422499822592577691565494614219732627932455531504820264067813810728292948308466415814887077321908936473447450210324207133166403001505817555911412661666220984230253516394801898381061192824646797853853931109521386823717243234330519378995761246837141006013696270790808982379609821151885514444883628742385520442410265849328113385071450637459497745407308468768401434825971683154249303640712651687411441590926204288452632652680643913798125972902265648690052127078786992138809671910088379536795230176273733863136867122687788923149850825082084976086948693343416795949405923390042799290265301159016012600313474775084648433611932515152747696672834910437083284735763505949945512248049047774563877679735488909525126448638746559140562399877602242075362907442783537561357756031868179181532617744824142338718210517893007326503953780285984462013168815570199636637582124337761133134187542901370057319431274740067832956067244697958691093221666973639588793574547550778128695019464141276802183712819912693911860710178353258361868858613429488278833410779303472759775240500728900741093430224049722271016292529885923815936387247051669588791583296935183541390076277542098955922690550662162019322466968229093184618710806352029400496213148440645808320060073015854520176572626353568451934295691011997440072882687845970220060328114143143974340207546018895055015872651420278024815224102463141272516568702690472209090879316589359974320271589503496415179893866179442370025273644844456618261433986939829079000561922452404424145614985918549682651736663284090142951358004853624551673360514047765268953720238871200226295989303705134997888286207074796008091457484145578703612822791537032852159730791813023940692898322289641043180657385832557995748749187367503306687085026669945280521097207625223648596123656950252120815650443063257901535068811394597463924394115949489426442448173890474745056554622464651792960845306840029616799996293598770552664434112728583781805550647541371757315670860821900741966433388975670755934954518623914652171756938408861028618424048398220715634058712613009647254756799700754821645768715015691864738162842797216524611991120764007927164147783342577617486991328859617572152996001704470113004030014719504053839658129980530682137055440728323867893460403863004048570879418423574397848543408786977244401351584500450877987888952942246995928060007141379371424744364787394140099884316381937501119088054832127258358610202692176952450218025323392659377709517131294715592993617846392056499380642397515462128481560840296714349272966461903023102910112634888319325429062213513043952946431919880829260670303236939101438004626823085954767565314213405168649049879333414087594292321825673418225397008880806021413350654622738428907814243052038676462929103594815797715706503659720925219406770252109518733503458490542535263125139280043829960117297828689392107974330323158815362008500485257516666511789964724724046106113415756711942096548575124880487463738764172476747058604420855506481865408725378386482882799342745655739763425771872531174236722699112570941649308710006355459265172042200838796195888949857685163430495221799574668017812202542916197075006168265317481991514967401712833219718819637905703079954528961314923377128995546810106550600303992526870099911860781503608897945741968338442211909775591539033195898699434690901339825914533958518097036295606815786114870103367129482913429031472803710977296698793362832195259453453509052664261157420162379947016129673985201667076950971725992512077310778925622525116987751185771115374056148077336954508389390026029827728068228074753086873205099859500592803291780587783380597878355007653565145875555263000857826287772695344598071066142545207531651045751053361155090431057832206170383354324316818294906525192676860989931438645657016396481501187973244833529948349474277493691406595811171140044021232702936862222914012768567986370852611840411957888793012653931963980815448183999494651089334301220190006178577636794866253973070675925180918190904301710619378356768504373608222053431115958726192124279540762311120818154474643045434942742944915152287087714586744958335844066441172498446836327865903647989907831573772930156461236362728639487631392126837313656313281581095857426801118514654981151619648519368264491918782969540239773609278367585783284389520642691358057278211450188765079552632079688032623718702900313373178839435305382680638076903479892280790546442842933193256160621124080557802194945987245406526270455820575535067775325372543336329581347684006941288409717925334402067877586613518730358528231412398876513181505834597075242405063158531620064867000568032474777091229113126625991456809745820430933637486496719777696784419563560818900874326424694106712412220036554435993905443330480103545243975488118176099112769000783625147925304640549636866787211220321035875856577164792155372828998368738931265495766190914989348336133149711415342662609657417600200246168795323128151747794829994223099161204198472097777682904846031900143575772451187513418253394204175909105720039057372742772389796902828678718147338829735034792993098704262114421414096029549961147189255075545044225923788194792724310143789322024425481557914394810311476175265317434746660276549188640143201596381737079107496596259012581323547383806271609634660494162793273986956217950194186268662121316444460456626773160136279496462911440492073863413839020505149932657240101375134343433944248924917287356751795264015017153305917341650447107445472462133364290711624010704936471623058799681284405781896537017715257431689080797020774246764313221706423371174149463727317178250979049048665561593820688204350818965328705103003589766721103785238417922557539277551199611526295911247689847226465832259110183917895522278628344335072371913882497638255162823424161334312447329114783064854829634398603829923195779368088855834732614963616465094086350328029755853736360699026119736572938636698215111850170081525285313180347975956209407239947811242756696981547180938414473117889509151073589036667522982829008278201758875617508113278027063723667341042381852426577102486282157848816754937671951790815674135596695747167939966477011111709134467737703728433958220091779502224282153607651631110965159714688943545651381866763421406416425003289085988599375267144698615836461677841527594798546997537645149195497423525623825393240088227986748701805316495941743035472237870748844364023163578329599576258418559524482255691977125118611055744218401515511751447675013632493698336345281210606959692922579851132995592477792877260614925048389005445809897478454501910237041061989914440396630808127916238533882823707317915363830914734930939149013546307513349277693699324441933315097472878153711641108222364653935304287177516066627353923333077211559316478982306730289232176495765410423537478933293692198911090816382080761109738244594066134401481277536727142947694540018045882741120449848843268255509593335315851780504793294639741488344304361154105616498298620132236710624043804544735425634925482494215863133593453470597427116979537758754684100298714910119831760601674713962174666512602365528752502537623639536164226090271055777782725379396303459099164705506024932635592722255529021248880513629681252181355410739127958997972615876842156076752434585919545345956938762907833584797913979599623369103910690859583835907619437867901856930047369009222181715682322662044861185133685902645497473251911216461052993815432544210785587758218054953003638958914139125442135915600318171610017036480183507921672011298084924539540069740949911890213558418889043329014443875442064584105479431906386580622166755334789137209280595289501613459015851253000907841779213823605577978748520806154049364622011546126946272178940926017571304907321057396417305363609602409790943208121642810849026990967179980395573245990106328911552067674133606164306648770493766283402559538817215916456662482785111415702904088718519177688675723056738760064745432025390600760578979275710880124027508781121981135158152568078516307710051677984751333194730694806520745366604540911779899014880307825558087749897129167871164963189683686535500957247925229835379872656017456303989835554721659080964645326781367074136266691293140362743450867917401728746205176658873057984315693261439468174734544032837595474192065197440217912390059721353505963481800873688351146595687362257314268840224852522440273648322337653011840020126559154402380491428085672544083200618850708841284508243510848333953952748655070240801644476221869446455042400642122502610163639134332676276569693864221372901408316298697057999057589403415140500990732026740928255054668001151307375885632655233240508476453287640486092424024517504924282522514063175091680065235986569983257536188671024810224440540071189992741512124927574619628728836806240982557242001078410075939639678138561578840301012623777551326108590416146789441506792736033983347740268026278603102402529325110805416796477663595249985668188996027543731293055928348555333331514094156181983562675085728771461387896164723838979330026712623223018725347112428500524867285784104506670146252735097245139676639650895682221704567316507847739416404844359430165924988208381732882425932136501052927594263117680636221083856338227137289308736982797459086655025119430010583085316990009580266692851688371545104363934838544408703828198914689654145410433942282779924999114098793059776026526922115552671579993556471917038776736794229185115948252128947806747363220115622210586934158730374646442823164100009465864856205697517270114782747735036807953225831982911175567459109913917210367103529456514036996292162023990202058349058826049897521704080950907724814583306314439020675367556584398125538914117608090215194340824264627708583446643111515593811407077951579648802751451911727304567609722149290262840785680078135665040916444018993393941420146958216673564540000013440450423017257432104972144742183874853922385753223763318248888506779112656386812295064776226400261068307591308446482794538642019106831877859386211026865404901713673949248492008934294311080133691579158017636998154847550956161745837443348788699981507716459553863314176783783352542332343395299807173652130533959701653061255391140827509698589236754155501434702127268532955523210307762261541227924412528563279983539372919265713729579686700932407202976720246158090404549070984190344832669142286962173664783405875656230823941164171470810946768373813841554163457542811432461275350524263779999324540289231504405545080570477159629379328584383347334906988428086514051397940604702664886444374805780195443588041738922642242944607274631595250596091686757359306706565020474278020528289874377505549233886275311533888105740053440483594905009735704294415592278419484774028995439023397312567136609031305581341862054521274864732483754777749461747803905348137427730988132598641122310790565293426699056499698642859622889080078783703876784604044881673112643682774241133770201622691708407963145474559261037398234954553052148469533321482053160562450608183026774555053810268268555445672205183486080754204289926676882738436583440342934502153349913215072843971362370592845234728919124113745810939464452287007893356796119629797012056480960916552133144685587714375436835792347700645579378701160972928732905908142428950992785298167213817882706608997666450113804239111246600421313626080788921278169479201058845656598568941941649874267498211906393681166145795630793527319606693865680364952622353118641625834519722056504379384581283024105066412808073193363305673404931811567182222960941993029789017731409719067369609367528154476842331152441002709335875418439064960821504655095432789021792648501743672008279718297778671301449292793753674080657071771136650442655760702861337781290142965322274190391743956931687123178021023111477871066635929718848672220954343787302890502473304308545643296876864978437907256694943472358579868699255792273071998691689728321024059777285771344783334250348055347474513656641287032832386441934095863924982498412951360202912616648646694778491217421937353160793555085475337032081160842758095990202275122551922557622558627226203525406936975446943051870340088550589862250804424545533159701297076759824637315126631387054654873278042576103297516508795808559139985572998769390038422877431600125250689579195728163649553498474267015856115580817250977314158118608447541585954805703765300082009738067950931264066196405142458357990456295103457104368370083372660999085401478360370752682883483591274767470111741852540322185751586184282958440931443304977698000452404450164910172283517205134375999382087979053988122937164089548079693226098261046306293658800005756893528828389026126777216612770758011136830445281787850540530775934961949146635635422095740901024088137242288722169219903554946585479788012404194063877496036468047164723110551441468712097351061331836019757100655136560995169541580355459077284897786662022787471729445765114979904896199924199134389092645721465577818935132395441469248078605247334343761007162382214420264617007030401194237173179247534300355771354818936908145299994457996630343370612883676569824185363589275305969107448778370809118003218871253825397343213766190419349435168441401252857833180680475506736362322533814058580433697659091178497119544564745868307416583846521439515162835579470252424257488285114512311889566631814195201282321883615856505435480849985429458962127790323754979909492871296057689154471834262682307659717089416118221359978932720553253833503633518856352819662813635206682918330382043782722140066949317419115759578815767545895150106556798126442977806266725908349354045216393554680412760499721016913000115559581040570097698127266076693475116747293104086246406563443579671992014638962141267915101524802846558173835502884314337957195686044972012768989740092053734650723554293588491292905736366625718707137959465776273296035004066681476982575843275193356389342099939732590058206875559812325916314220101268536397326746167827128644093793776652472330526249686168150116849562323344671991130850464944867624051049777320025197330731705012474503128650172114538192997649240682687461701990181825947751459887034912529419951170895997543800940960110803661778461572289648069870563115443944903709834613627325015377414717760866584311008644212607549043083811448826444244420873720549309637016149187507267195896811268369995982243954856633414332344611163096656475157579426594215533881359859887011665330441211296755206917503276212280901007898585651360242054786910041851272061022136001502183986024748311804175838840505832012479061704670334959849801730543796478467544835577429794968549553720672847174731391343704324541976183206446297412633462341114151149597265494640509027315857729895383832340661475602665353900932440543162426962342356355527509262719906188223896336793530694247154908575832912698792958901827911771070140281733876109315368924439255443559773282189283548846035756912834482272885556833304623052679736597389466188615787813013367239552599892250134319752360694252454180667922349936874300326539009284999975319570615749135230289218490759814288982196821460411068302000686709314115844930311705639907932387241412816024618079110956759825965123304897643988153841390016808606537946074423718205390790720385332294968877717641625979739469099103908828698470165405974303129019541001583415229659043887322841867991532541953723232703723322474356164984415772065201511706573786753833629832398730873484982073924354947245586919339598413261555444432603521942425287492792838349109783215239713595273696915194720355655003237735137791601838981534834241996452217729143230561567918556802157897333350534491158169742841464753034050351155154257264931979967006873468865280566603973461228892892351289376600088423033328445390524299779687046303054936853566410517241964673443802975061765327308570062646690181451628763935228177577088128703296196572135332345271941456643945735109656911358145595353695713901639862960876082417352779110441897041619502912800720635665011639700276025363832577413829811326825554112864755910940497326325395646243233558611398513958202873568408645005089876410868441399091456002154295276104503141602191824977263918895253338826151904576236454188549686614970495964499725830858396245948665185625152737041301743613817231482468968180599222298849786088788139653643375151519577030935980162182658138178650632446847789547757085138583399441169792869669716622932289695282368803136269009384179209626677244427845277171002995960949798003379675968012237116872592847065793851059328572558002391947671799208733217672435116532785501558180782768387236733234219200463939840088144406725708042614038791443760964275484634404420353473561067134238473562872645750730631626447079632893095193194614768005862113686883200134692737976843780067730341782039503423606568339137106895358653894194513806295543765597141704173009251824175793006449596094194369181626165616101053327075700418133774554332707545542506435092929845461214879008750827001671562124159899557349199742554065899157124945530530121890729734746043355518536900612310938355465480128317268792379288601646877316687544827333061212139452853937664593676569184844117425395242221149512439085249791045616483773193429358753723439479132638806971646190665640658734113953253893630087811816030283260247413228294345951845480121197290523912111461397493001509210403549667454283413221499739922202071932878246697090876956611666928629942730193805360610094931787104002847944606155479270203239927632295515274173350605306984537952180145156886210131971424922802368142511953367180880564264205765267819715590965955398719355840590980690317217353255053440399630310447025738151418649141891451926295287108256663684947918159052293484088927625194430854343946268035952252162534427312572101183344711739322248294419941857996734070118944666225948666864774341597316891661212558671014950021241328152866715021112007076078623986662179382887603872377971482000557406154876684909482939074648370133004187484265029799526781165491826828176636211221400438095858108495370849770890068328656550340335609933710029398745569473027721529977916091826438705465679236885197804787810683039337461009468023410750626756500447544207885704675821838540918388693322885579527027854557602563489396924278434280908365734115084678583274070240670094575736279945007747680981602332203285471657190120921901058394875742140966169977166497896238098321223583408852589508078305244605769657589914607369672444098262253172100869312948253487796741029778562697800751099828243366763139218324537952252787859399642181701507238365065561503531475962122802400056318968071253901906785168994445357000855658769176438523227944425926739074937426778157454601472779623390411714150255783224294882852851696323160499419300555660969060865385200215649381200693889340670778188158825272543871173310861049809337548222109921542220823288733021279495224422112069015114018993987636741973246764145162278425268001279386553542212627222263548178885550358622469486339689887254093719540586487136870913034146472058101219477642279547223270776629861506161396890366656418599646970010190831009864136180981813959369408938228973143489203777409912332009455501708433611629469428975401237460474480931192883888742953423816798170907191159830721187136073398390208770468911425727400642669062816160659935933833175453184560957573850091152855018495921480202560714938831028635867933243467843461655884576041028220645636633501136995053024432717450427342840988398118543392646465835200962158417270179668597621479185540974304500596231503441477213545784493078957786760938141449333168880130433826595629772540817100587593799060529143665437773008794745388569886409418738996159949331550932039618061553633820228103684064330474863285497838141755982635830639905355920493399211892990003745440412999785024447528744790644925903241572262427108874598967942982265066726752611756794973316109418578955743602320007464161393142599681794010472602222410882971303360744905387895120006110391129898844951370423242620437680673546724354804052844294572139299992921260214208270753178990495851706624807525000810354302109359702291375756339846625729662771433868077622674108122943977849146481449132725818671136548366565319644093264099846964347851780145728633951504453395641494650684994576696723267408689109735197278782074111200695359241713111251650346519305390460919959884270450261054360372048884888791524643511949573433735134118302203718444628850730599624395439982083191220198412689550554848854708879323526587797236937804846388229486585628142278015731181969070899096318390579416764982194421090287266048275677051442221817238238571048417975705319219150970319010990374577446835648849205536622445128126256362628884721530285759098894078120336424149830016350071984225425602544098999891538736675046570902929966423648046374771260497908239745241716800721616416429181609743278924950976579205145757544053088985753556668572753529736651470316308638692421425464765397500760228361567917467086240383594381028967054580005132872682267098039229030299921611785184450521218423809120060595138328270576584701345416364942359878741163489463808884563781637802581889818345769870808009058106606814152995461704981848346968932624517512628723192130964056735777949427003803273213482117414948644598562328106047672394192591541075485952786626715648994902135837794282500366816139578635719596853971263603798780321045263378113364972758555635873709916302119142511173123727937100756687006411372239377518850050915079682252083836898182193415590317535585142804037820756730927170265139319849396999692777490782240206419807153670339523148727246751038650714602069409399712259181304729321185910378104092851557149095961168497319392913985018153368709136339153406198516103024445378937054379920284724241370230793828289938727766016561904487011193087028501067622919705177374350904725419517371084961788762020883009174605318749195170748267050925811872603001455175999052598326689524245407326183032292380646556241184542558757688879436638185695255407176957310826704215249312253021636871734002724099793663343509180955576079043190872116630818729208104739910161752128911524673079433664487463140701282079168619064672103452997522850017366366932492712472247032284123116701966784781478430599433978841735621213945658418549412495516305461707620693864170289906668630794113956031154623391776237954837717690731039063403465750154200208953522141542425145784591326083439461128127989689852197105262472609313228130348833605456979155216095957733382436018401049535127726966950647657485375257168049607499378560621871172836055547707978515031763539247639130251644052822343870370280641447590692590096825886001093432750031246517316860124988364356055062191076757430170611546256527821182031367946554271900292838972843270118921174917198062926872354297447607939071015421560060793372659979933707245390293344297029835680076297630864369553146504951134216330197183486027747420503758187801011458793168843435220476249462147320625496904644194919318835432197709487540310812098465148404978442281034251296583931230529881586424757291658070515644550239949629424342534225071412467888067100355725259127926239764524286398190568095966620131384708936476202059823157177092844948636852396553329625284247628625033731063282056207491304911217397334603657326003189307413277665993405685873333076743036478034786497187510795737206205974602989264994342905679479532812258280131584566523066398022154343741473691680230744116885690705067413010963278962017776126638747392187878057225198522110268993419895360554408902952712343042391970059460750032439987586814940268830344992774564365023096941343425232120204181763015725796376373467613573385513711244349303371114527197195102228518013639715721578418389243109361391071032802454968721918757560172721895801574283995135614229177130722638145759754535907606530254057069674524664532911535916979828726397632931181955887880171768798701923781187492586700292347177133485374769568648689870129061308488941498493250612560906823876063710093336836913149926126258152284166253721266305768729870327577649211138326848104790274764762926013390237313893292362334023889718593944818178332309514247264316080361259377121056107657275167152526805602393954133563662887736307017318637640635683517641954749935545640870157465668233243331197426717536262142933163874180187395838574242924662689381591712664650102376101610879714326905617525892942594619989826022973950600998896517027401383769992204041459019161358415425055895998198434136861988008084944534776799960375726853866198858744664877246130938640609300528479319763036311279221834408861247828305353528969409274805515573620793938463124894827197816158083636680895331713827597219774873113983023956093718420266476410539333903108224061416061811286877895008568063541637446759072841033141195641907407216457873335767218298032276526969007175133704423532373110162362667094563032039101134870992701855891147837554694363147518180421748037477464237468114923046139652991279316182385880999464681028014002512068057766849095441259110383956949600594615722654718930357827496300864508758079142249687088444973266711558043022469356869345516654094135600773416084730942226740326885437474056775284847197818878328945208785946335264741421599516724215370755917477703006617045222021828746212247035519468178055386933393107838328832096621508887424568645305456603752652065257923927818245430661797230208117663469443105409636583972898667054319144781903140099074310382937247007521170082578595813726923288631186112160625658382039248420027871689313999194459119313195037354199378467956004339855521002029631079064600494430641234951833509004570545685429695572470569159439156623622228581531772685962674351354776596522734652406122669573528155091875350922264799190412938971343241757531538192405557056594675805079590995650591099045565479389312999695992165305245059836750758342124823741925783104495507016959966519461531116348766040309526226033226673275721892284582371215231291434433301008760527644916827980159427004326045864299210047004814390778115005437940141741140357162122927132637069785001202961915778351208992880011431224324492950334800812040897343846507790747087513285201242105387130094559944566628618710155849663298168901882023516485833110117584868109965352634181933919158090052358085238261552122376271497808399510872306274078907867879045241942812678002086142518355636265752760708822940468460855064919737401610168874973060154129534612328494788266900790237509488457376837403035354117451968182534308655440446722406937984981624006631658379639930182316417185270361724411143312259104841593891064856267902869209078697380566273143467350875488350294790149302984526827972431196004564930125479612817999007285034204781267694156760169832555916732140140185511813376236191692699815100172001786799824881509615246170502299853514707592960551451417457168707100716554041827526014920266821869128012189922928552339162736430734519845053237812193674255138882062030025399422739112439326793764003352331602162364591878474895038374288960639834257921707423264042544028245205094983900480223827553718726209595592036072066969263079101972319515248138267036466469875444384920281249928914623268423833599551990804239698048521510286296182762154449049682898104159223737630049154312241119393315605709684693337689866753186661995363620629170425441920027344138513549340894273805793059407734235003816677497074366007153846705623955556648994927469952379875455255028791047478723330537558616709822593169072010318165912558497960465452144236555220124716459047105948264109702522591546201580206693802114049255130703360518542818875848890268448402264000573205588338552141182336050273956629194097402391255901714608815236167548736499837780845582199287142188358268555029564996208908618435586536776611393084162569649495190120573197245865602240938300741499468787374137111975855844699623445727066436038875208982760971901824630450222273543230328120042888497089148655588962177964873087176212680298985447091014059472344454264662565767756616919186138819439748150137222509495667935747525764117323311383701963957491181031636413176222132149237288686250596061340260618644384327115879933415694527355197121561827047114274065655671597451346228396817663385993430404957605479142076531007758104082738940472269193208051372689095505226900502011087672649829701329195906379957461469239702341278077581672563190761201911633508019784633928642469135983337501750821959933472070829277948240424158409402595911767340768380071580490590616108311957385682014905848294652816828901482506101025835365285231194482906706671663171547017852586882035386318050539674093980918142153269149359337105390158702640770426280970500052149844374911800546233715998353872970897854951572461110658970447061695832769215598776423799765416677250087107567853202463184737492831633281995972310805228136704826561514395432052979424160037566469554416348561008677793481992217995662416017592778975885134707945580478333266671669054486574171301238517421558272430649378065017007905773054134587367029135754912473715634322417741579181239712666311503639224692445328207910972406632980558126761262223224855700666692873653571621519072108230478324091173142513078985236241475088542776891239304209994819073799626228705406520959187208788454685869946271554682646398384847572947721027605553412090198068016179725203693209864798936658350714174946550764969142112225955852674989378891686681089738750047256218085509802447428412045184665790730709271274001883113024765165431810371218408072410487311124900329207371512717986272012763690058994067675807702853234570869066313075342386788587350652600663549300481711640336890243941425919602741168672798174642189426683285630789287643709462482774314283187920704742867979086118489006430267463012981034194377548397273825913529316166257776552415097869610665159240162870775022951770206999901693825607829114613419543767024457943232240196813878408314837082423118154999265526130405748000412773961775770831304378208445901291202011230052379363359775829455494577415664859896544405452645862397126264456967059458933383800653358269515511555572288310925752670536536292188414749037247182679858718937315862134634419662592126437595767400720248442423211840483078541922100261342231645845205079822421417270396805396662241185383700761896194462855282275908254363857665270192440615654321565062201060300679033486354826291540907245422943204605493108529420555786584642987400264137967938130770018569299752171272813302099381393738858555469045605747447268432117750200566977197768420455137121659642476679738796596506830932272877751782079522642671975216563169602803498022107074598807182693484893154681846844241175957613645799023410324649418195603237317504406941896032256069023289566535219808615016499129221857076375189800206582076049638237770598165303546141475279019766791523356008016493177173652500790780635876072447879271016875059363788921759836878028265868459504091755827107718961294339638765050539928642687491829892968729169533400994962639612641018938895657675543632393426544312478535210382911163227201142913080323319770668842804417862069680972109776869167402132179074019259581876452194382378006408686432534266311771613376848595825672156733139185041159309613887128241832591719980339604131375106529894482594393543003593953714986511612662220660308805466466985038423241217266107129642204909511113684548684708980324150678076687425123278519535396502682351468833332421276046254208412570700353385491326475160289911629521780627671996745809682459399205627744718096924195627661978491438449926074513248384110604760101168950667940935097454182029423707057752250478152283400900716685910291918900168622284400724593784905554496208496702155759464027453173029849777735398736606898384850814787622381074376017455080397148062169807271843129867562746187126286886820847209263697287494022168003388386526019457351736317032008067190410495946881378825637814909746802738868721326207893250618175979614696393975816553452326551931930562983219112494254162224627821801750507814897666135659362649343590200358366532431078294643689290252870558138737311484835239315844085923693750720046920604458418678118578692933400028766370351948660218343367287163221654469650633855122327454186169806261267224573686600452597776272313728984194974736560668587056263381944986275847559260326962822985734950246222170714031490395377026790519681109337436421453938242851814161233864539649508948523450216114536993663937575983303080946486771308799109338636387242074423105253353099438707657327966235308875981705561340791798276143597713428368221135319126080532015441017209657503282399418723706853373947304521323871360639188555013073129402255744977349771148028534504278403774801856058907718371256906646726671696315954582177131624415254878702381675557566747219068145404114328749022284794624192801539049340850067302468192246982724789348873938355346159075322671282574872069101845215088021998434430558812771854913146054892028390712766343279593659181178960493852521329944738059905896222141874866236438871219850070083975575241339322325822304262479352509547169906549562065516974666840606361652753971033386560863514412674980731378263449718673255787566116039224437424794290671396594868827984552767031875885938693774656105989347600167324710914088543088836747424754494662541756939676742022069804296940655318982764504546812461071185540759974698862560899260057077812998467664365122744657658327042271705783913470572318838485348594709775911055359801536725131179119065727404244374433056903370512481708592770626175102672278525827616599196472152474436840973540099973000853720661140807556324634303142459108908098105829572746336744723455106830335756618671903741043535431595694732279404662333883683109696487861838797826927137962490774594308933701842593621450723571312562267575711357436871902632108854710211069591844047491463675695647130281947203076778183197319614753081486789501994243879463503761461684631778948802053134682449499533204781846543647516641811513801005836828050717005666542112153296903775041309359778225057816013233733046398677083812598075349584140530040227169575556007348934714735797226413319898859879164770744269141456812458082331123760438633081040718307440027167581895167351377316330756293734300785258679238862860281911486527520387336372581094140961598956379754311843323613469245368146699876911635201490296483605571267677660406195982176952025539088514484943758154888747515817493627848427510300400603682859593580692166955207229906369606731484858916344321316393575605595666871039519962783958173110333994372894447620468894790254656305994176321814254820556281885224576393728436522793125164493738162082636593761750657227290991339039264771198377266963136121285002240678147667737254695057613179293242349112469819487601271195407248654412175950059552215036530077929389382978449387933466526293527979815405294186732938909371953567346059627200160078910776605761038266860126609911288323194966002430055935160743288565788213015071717259482384229384161063306178622696260463408052014799238672982865442281670507532213535345605545877479930040506483961054479569111662661174102179082473580463170106385619086014058730531410666245110440599785090578133145262798533404511530997910870999492053849946443995295477554290308491315707102149782165057608947236125712927981052082438200371517016314648350592527210326303673291028280507914965093967890871215050979086085640946083306553792335372422578979415604598457767793330927248662875080843198777021515735116761438149797410304923249739683551409691716785007926222031949635383331750918389453908452969216102339490264884621510196672718479524532124249501277909812037196042192435519431009477593958308479903147450106296203142920628663653766253684846956759920022000341242525493852587795917675551282929859499541423289174229455268837109064963145870029544786006274754026334922397375181179000250680280917364054357259135269723442372124199120185181025604687278821029397491552647681438395984489444278706914627720423023282466084254730306367004237545498287164594647691528513394199849008553983345141752058961525766818478293100210328483170329823180710760981309488574713633937708769773787543390951682183215553661768520759617408950984171806474847484817507324275134196661710505415615879868234299945809090895677297579072544542022938411892783549472171378611417049976982780887094966643061450195678210798240483307714956382243820349167157654158360254993397917704219668633434373658572100674952248670378479070523533639333892485947045587216357138680320868479079360936035049292534118250157155140563306310638891558163471015746791960978813531138726668777792289271038814759548775915716802312529219692551386853680795362301970323848135115805298549651351724145380657843317308055982774200643295628425377139275789945372783079850458275429899048780182316359970585704187191953214386700142491480990726735219827990190204900973534990022880334714578500811191263762850834384471822188263816752312874087130947265743691019460808393424928319666505438090359398697056298292142596443949386409887701923170297333421345715038644681309057908406422175136136396464715394284007235580236679675244594553292424149248716176968086249646583155514617087602134553111592513721200219801990386835984598442752375133989570843654898750556406345353584084937935795189385326954314763413800084251375796265252878530820355966064621313065065755408984865929072970635731728577751071913289759293790045716063458725696779568111305450576405324473172622857713236447389494440859553381197519322524831130889279775560317350195824918009308283169836728453460831489919128196009371343023926840989876514851323839887732014777119983508215912933013674049181343707886275624799358339689715014312553211635682117850730311785957001041700161882219753773279157915130530808213012227632347722799958535093902052020702438352208737876162577148742843576096732882372418630413329708783201123021900508728394308533355432917657351469373474389004651693307200005415701663193972655211536133608495597628277280665418421717793759260500560770605121855313191192033280417516132675996653434136885142262913633315797132519242595206930495530604030530968753294948851421664673200647535327300334717849137458620656217288115890546101543419438352694828787562788846864025356819562938810860656804804066857119307438552318692354106999262808225984157134320071073841610598427247051699837991328131016789515780489209398303363642662415393610652183376179868468885691303775683436904008438016270184649985094244031109355118070065522877543946692538742522925366814542394096034561985553844320829733794672905881641634883145449046648048649265258169372917791873050707754546390288815227384726415814054885738869402500371909857494122343498302707571100722164411155306081069988072875476333045276638855861512409025162475516591576867499153367576052634665798694803810075729053291595607348924997003203088068018203402670157535009982923288166389203259629654524013494023666641344033901255759301737433196222015413172259777731033247621022818164488693903229657247448274286079679099278902339570772315326018228561283618568765072001909703141241132260876684159985777669494274053396281899203330728780102313376730367723856108289588515145619068453111663318239233348206857662702293089414597366858352613146871804614786917843168800105254419510278994236569872629784825235903314099864190788131969578180085576990197798240166770789065580172881495428769517449620591201093513638102910888658828459307577121948017199509792708804611138923462232284376108938527458181937314486925043487150265605401566809215395160657483843222713543184975230297369809709383344877033503054804509692543464342246706930388711208642165574498457730497425571404902053976634473462069250243110995867762118229549577366350668455021454210930470771838567790727623155476557220737766833498212827142126523894491378075219342741756565516571426485013699060507746671884391964263039085635209627645677459134911347041043211003471037350829914096408358914998851372477848571439429844239338589681657086144026386681711577277056771528039598516772988220068524097170336682477872427064553570771777535680051574499286127738590110816544294288741958170795646322827798590385786389667156949314335482216610313254393163867089561421741132420781941418126246225926312189345387472004679084830707147741702273112203357681291126908539838482937066827434788231237042437520745765729213026763727998202309632632138876072789519807796832273567946275965659498934696594404572891512871457750491019496329484574579493483898314447988324343290419178420150102295722510381269263527289632036076429644319000322182000421756997283693526427861396350199179295561042200598774411583667710728989658778155567845076358763841562238401248592662425907672238809909639890316914768540073149112655961063169362624023040623527581234625704925285784388884603220466922774487113838673009713143684741777565925239185352476420791308292489971819886288028145757790124056976264512658073300647388333918463963074127892581614522707106421415461159005375097004897908889527918372058547054534714629750345243463464029464623281874931714639271786399190324290289057209513331274571115255607135134447777264003535842555540620498693925991875986374798960035425575512566840340077915726627521671933852270045848708723169279031241967978555838913095387233740901998513045824150204095941394255364694311363521630644099561735137666554939764000588882847734816995135828127317783552283182305176442789458652285842122874455245962280619896575561273912597213911525156949055434123028535774928999138807264872063642769790195643163249886875634109789666072247372052788463708468187948921178874320201213218297996734966442707912946719924761758159593651069965418444189392917850623076805594452081091705274723067921032809524400706763349661141889086485328323298127297505102575859072282294178685365031350390655523002006087074410538960031292018713238713735357941115622083739543192628327765229199879957539505596982036064043530437950534235958117201287605174553161013087455554393055755759705557328094212899887440932061322103327617340452492055989356123928028387301601518841447163081719324512060167953316047066904698536168187732764478567270970706671297325459137852737890989687201289147820126640804885787619998011563369886585248350888354320884439179270857246791351775182471882784558240675785365239471003337160827554909598511816269658635474261232705329332818536320388179884597006475048633945509605318258487333980479900379966213765097473200740090143646268574173109254115296937985358139012058007959376140322172306077628454013727775462376194029942322202520584994233501257432563445477754952899972087085332646103969504620195915545843573241022348668420427015036175751288173399818361197360329812550380096728292331600312646160079641449311430787180751119406926380800386301888577988459552444729907727843309998725920362031525776079522760370032709610204403989574629194573531840725158919111196588703036386894551480007056588361258971213944893196314598732867128682826380618873662624676889502424790916424432476655660060076353404793253859410981092375308543928613006798251224416960692644157316301665442989815752933971489555027146455336224491406637006629583366119677271001469520057980595120220047120245851453354812173652846551751918999480639957550387679442634775945287817111427976867503888439826112548027372109886955778027695520681261117402986954760408910374743473125588247647738938919758476231727298937133467375931035167288625960642898397574813144249766786266315679834640528372533220058820313797388788536857285466655499433895108066233353064094987716908464299616708492203108380966865833769021837304647599807167375319091045469811073703746625849953885867021071081832114770137721765806194169689482517453028498217965793807491955129706980148934015181526518994266907474779034659332759993929362213539799459813556225124886397641221183773545435001832339946667451690584037829446875474443503404071198933421768976591755222280334501941869401798484186002306800048921827376760745334264281340245303187645840871702019533297204957011659976691932664540237898367749067589213206954376225844899252212797445997803568693980506174951979072636731717680230319682727747375521831636696804171202348377960822046090222926760887955382572038430336838058800418851120273757679335222700640241472574150879884261188624150767100250684730303878372404225924687986983616610154885000720576772340435373531920859811321728699150372314780949907095868365184316217351762074530711939022060491240520707440353441974709455783996706890376866365903873903350483850801166901597273585728401229460819845421129398919535500023602497862429138733080822706078970621155290994585818675891316560083126605405833162138765503756904889916282796788196492282662315043523290140087828802042942512452524430806512269129428177450848905999903417507008407009883150124831240015464854121810534758661310795136720504703247868545957346093701217468046468139852380472892301373560578429189816402262841906100926862918078978039539734301683750957071661207890424710058104135707550881532694596526607748153675622428515575189385658838788807480613316806144740182635799769896520000577794192229879656663575934203528214498602444812530766716968081668915070423971353254741063781913442780334267690860276892791962173870490239351041046517437768471146341281742937199916813148785894480261013378291564751457838841585554686093189770236539847014321950492561313451961898630462513499534410542646063611068549940699829619744005920110285210658531558672745900154878698607900078439293991460056718852291302231810697628026721450300767849240518615139469413801925525089266288394681179140368398359313911161533511648152710471576237098934560407850869332678648805632406571804017179360503626067895209052806472986237802963299795843032686448455180619731700817044134371690255032431419394632210876168882616839045232422722422671070149264626101568021614282471722617473429609996732016211001783843249762859984614725554988977548102922226912288111936957387913715755199089417130877013935714233134910813092598089000799785168096610088886372104238661905677423762106014122262675269786998760551589440589598213015347886891209750799607971027526539488166038600840100274015145143689070817574149648088185860269837099651410801006935857763493676227772828524942674299595795828743169981167258275069320027418523765869098252655130739598941565108769000617866309692487463249867940401918577042521094962321106339612644740448478528242739810216954831296791239874808337202125121868969709167824661121718176644613545717648027173949360767240956870952940378273723402275818350034250465225759760982694001553233150490485558102923518462763104829740938607843999665197683272431146879422070799583920968946500935694283182595112180808366016485162986752195946894543592300540095241576709145501797069314231243465378428705428808455706369117729270640864342151331281434274843735386863801949464930588074535593205123504206703903130031391271555945368541819291971813826449224850049690395903974344991983438000898599931737385761799983428209581109456409369040688473895846902604393426724660751724406678389622827353223735247380230953401639399610389272350532585330924760385015996770911339376670507329599706019628243520979453841073082249269138479643288506200547569732328201496662017368146432429096437234768797135253979617752552572095053193001712502850643716633611950293484557030847336630629042789293457733807133425911090712697302773358291974360269168039059350231708875610119067041596307499088743109431535882860184477730192298416926280288918673939001087387370069013047748702112723087118367735759873774820619492457308406360200462093839190922487506060673093656694348392608238428538888591880699848316269827512608656549417909536472844172196066748213070156467483357300296893522629910777444600414601033991212007917128646731799172741589335990337034472470985273750274418197193964272116415834324583411314571197142122376518576940897801603318336898958167831554087133365876217783234708012301196402987647537981730983804153935149137854478264410462873331395764759128921076359015550637713499061966951217331748596350484916192561049130984287637848457519144553677807303127786531163519640916501700251953548114446283383735649586622069533220509799719721813631958363644509762405056800706561627374056584560354008830193605250254055412863401613609726393395658334991197845703671924918480240856479305955831803349275332633019834606970375968643411143648908682935136641233451451881353096484319109220690687027270103112976262887753437038753711073394646940037479580714908365382521690171804348708234691579779902624482245748900986686589647556191361593445516013868490238484190258967431613885707163398705229667527875752760512110938633760377319819020621955992600900089723877751189655760904434378043446477708853167148312351113467209227613125872657042917246301003754561016033377501829805920436224518703093953961853654108939370229846465226454325452225784995042626629382773735141642932179915890071605860110100974020271585473278398495005857369448433914253066883659342565822538080884367896658999174050243215366464719453948685366658485088499302749939437321581694783134761493929763967956632350419422263753180921602111482159152046846544621078403657597202212738129638633349218969280447102401838542274681134117187791989740391238143069743148948241708905269627464105606969496141151629386661142280296218294586564221230295095908501509030512863971903537940594560599789414622017496306792559139149864247815484426040860105342223999039760598101009118523888988797598659039621780055638508684203098371510459635362369383714500563445814632043855790401843137911441614281683950088471324788928938762867864648646181667242293930813972141998776105728584032596488199860987751444060801872898001879834344564452804201514982048611862183040173774424016906657189847574319060015731418367645089332877421421307357884638292802272008592448961032566945749681870199803889628460376012502805252296720320104855937927402136351073379389575086218489510947227030145340941848703582487215573663129326703809611411643581760779953694239126692738309785740815649975511790798048683695241925974662567474304150224450657610965169380320243121175775115362196933906158197301480467025036778638440531767976291212178226764558304527602250972090324547821586296884831191966229065444098152358647300426442096599697834785670192089963608348395782760241666430922021066307876955875581247537688192746536814054969713115026074405201311249642510945250384587082282262219673532981961146786964533541619209747615462915828019960063372136268592896358501324471091626028487910729630179069674449160481031230120363814990896388067534617907852728925268660218884007681822494852095844971969300042066351608617597755801710994536635571527474767176006027130425614075505698567923691563107345255164568501928001454463349780361629163240858944976553790689822677717385484976812842896980431571297332665808271382014921638843029454750120219833556123656010117937668152996780141181624076456342220835532178430753907674315515408523851236126828672625229475235963063316349686848208752301565228946501733173193820613219448622983605062652583435731017940872887516123531826213209427197568911265788066800850140209634916336441806800505250025267467408959632075729930578604466203056404474493214834779580569617495416098937595916400236017602624627931021930541614502100924359660933755717103743180599528536168168666752759736584411048428171642300034878017102292846460471305862993101981867377013357051230837877666939943601336212266032178610181940250132284822275909774411752071975425222111530184661484231879194151489471974191065635593670572784616924614579523659951658148597633556839304504507748307172969987572314352024055480731479238096112645783662606785606242879986634655006924629290111888709403384270834316138282516092545484336150467711430325311167609893681053117233780218433413866637857105345941397522388170695634613485581698531118236058918440491026330044919382822669461318526941182516724252480050580156430735280621225367801912315441152052942452995435326750156324634740682029068068482815076121266054057154140338496806942659827705484251374890097562043541655697305403254726704997565716047868783672940544376626557819507239315774064765352961529242097431149114044016225385654494467421068208795644061913760971670086326836280094807813609701676736613342903811432625349294485273619315711810290961202149680073628734291243282045320250700581476255418753231501963491201124233293239524767723227793888146550863396369052707882920570378640726843786703768121257168547960870586117143702885740676603758557621766054912587780834361000616109465960502278189416371853617176274474617972292624853709714099955732400068821846664351123453720177767995443631830726397390854004841496067010788105755925379892323071373164563439086253387341164725942375089352463806913972733614501326678340571538126477081973192211108441422367701840548231024492078138214738032610462637855201102923283112677070378021873835143317492592533573497102699519869624053366374040522568121102761459950058704254368165474016092643967112425707679125801308318622627415777612156373140175000722885976565567921454408868309039315735995797139265897771324469537396327033266309782307208704006216760827832494923347235132271547178037464340894691387844681477563472229030686283391220172057571626514884025597138460631949259546589485536982700843907362549436901496771621785122467111470444432883942458510646700947952941236764162490616790813121736128755160938175757134732198312166603830039952916178351108748546414105552903840207919835976188037501163763269680256015059388025989552704775769032397536836974269837928724969631656959656781401938302172488604362196325463819003679315847978262747040488155794494339523255392257324265829191095361343747682596901644111291571681130180114489608631037015698847939836884978650921494601083488777675238922792551991919347093765918708481533687554901733700300251529874711799217575931131054958560336154288885790746867636563230199567200620922796015243858110764847918724207577551517561876987251446606803068470076800637215053372521652721242203569900326135613504758716418831333868591240473145395311666724120849398245036252666194956601758630011303100227102742971819697230874963016246273546495837976834486013264530340393239172903142897640335185407585067537422603891511706896463541449398646680849197713313944687356372038250446366599149001822648768087414272734611262942596205443927260657792063577771653781941089743783711795724425941868274604803527415752784415385356814594894803133303852396668096390133174746604690143170518163727681557208539340630480938326084253596284366311447154024913254421952573473282786932241723406736262304556545495691235007957832217718447737342919140081888861018125250538531503006509340199454411096561915377456169836621843798657396726429872355990038273815036973077195187117851614431390650517641007643712359916210283350062173001731600679155472953947005413875812212748108096185589468113084588453756874630032565489371340718524549603011499732886556128274652117706590902052818606251843754862724705612070365372908667413990460595863036803335592713147880599691081903265355622921823668259576926574067534539601013356798168061771723072106195798502238573912061469865735434554761674304666248349554273618731523903379290758159359686349734867432353113938119322831002232912840999837678375057196921266950356735763864175120832773579095144212941271312366123912197023945270141853107953879964149227295324036662907764248725919921242317568617561755778551985315634283253364224961839914750446736705322779905361939223281681065800869686329246160543712471215926384839460643077185039422037460094987889424995999222643888863610237633083311865030513033780929533066034378964640845411724987708341938609515870796255245959992977989838255556605743901074315186486918041990197361505929516968161542357663043978651472328280320009672318400996821814589125135529370197389499007158500175355907443428308585064299343500081391372261004636622747209160540844649543607874523166962051694571456029001701141805076141245294609825515267497052551130865562078966730348116552614052437968060569171440629934394623593709984670477318741638445153456600953716786004664151506339758478380075202758461590197119964159547456225644101151821713200630206058884112821185174292972008639047824737271109788534199788259613068406751364999423008652772781224782354799239562038438653691252065376038771143614778647366717482729032651220953642150891005973520497473112860723812705330528177359932425099039889543321447489980702204251576708267185130247936072472190395768487222453547842039764628675155541787604636482888609055323457392021215885491700702289042096783724795500485581233621510727914623034496248892799179421390724339221418188613748571978756870568673811309756878387240075837037984417397483448577943461174462851869623882632635865944581996896869510839154240266697388575469787599213053209345937058938070906017984905030653542082075621024423349886223800131215715658631626860914108103771032660978862695496921633740749679834310065539936391143382810669243881809632633897910321576747478341000708637366658926688207315352998029362562354901236504273324831541942018496599050534453228772131070963312711712974595804578847593286773845633183633306552192564944640637758929590714122003547589033327102242696618875680837912244475661460956731727378335527124654744906667391126664006563790641168286713863106023878960143952010133576453959745798710205585389228202731098064362354141716478284234199126678534189366393769462386540633866198232783923867445552530366764006587476989343098252445023397816106916364550716977679261752517563783850663572143906980961433653841721995768788336176244824571338016764164798830960043844314092228011706422109676552000614587594164905911667950585117013083306428236039610912967189267512026933393802621039684087339765586029771387728321681294002046962030262883294983131904165382867772628476822907179352051655238265503528074408113844378901740619248604021494380621988346437709148657825689912926496421109792063265162480984858755384740459683543220371491319100638486374243180068785512011318553885246563663683350568202887043238940627856593027140423607893606862935773693515951177887244075549952800683973131628781356295647201651234653882407216076577389950734524195539554304933795025282506156009247207641472924175026322483600123477355374875387852135506465852596668351854574170640647620440148991936815833097077992296055688768965693269195215522138066747083221900370299364989170981089141181320847745686059071304883184369888928948950007300488262461542878406719896866825507685139856067375046850458303353541083192662543008116023445478399980995126403079650083306164068148173003292702744329092217397070057132371075349566861074726196780076930951414523248372754363875594472658709079316265948021090697449643761352457340309634406052357461261075715749032750631555255063258129223526170281703068128342846658108893309464253189909759998992481002535964818738881597060801941253374496120278436578185308499796620807110829902394604726419336379159959113264976956507377238718226449721021013296791764735335257926403493457673683965432894568018117854927599494221611594077366771644695114825566131865836308181517215512853633141695710993061331113338743923038305083903187969754968230877169414760544612339076868696491765322097372095036350934869566729702404146477704426771882935345279813345562720648802098266683797433354365474455584541035219129643139001456572805520060121516768508510110023978130930278039883401615595761272207937932559597181619302252573806745644476209206327300256932714690119139245059846058781183559377867304631783583471197242768438760615110978036882404773654283643690905698149976043087402180229706749853332469224220899102974741131557333316272056240613126968039702937794441523833504877159265463118750606765727628611159104632158550607961388930970087190450049331449341568537826578630860355869077474465671015369336237089626896151215908807819182096712297298161245932880534750379540681509601252040461199727946120050652773100603166547928026114638191402254305775369706856342666274147488316473391602263318625226139775460804213385151905832374891242934956740323436125877438725695698788295264898415286507919945422104336147665591320778567752985554457720086184907444247929249049813909962201490184124260061247996027897446825964329440409530153602247582625515115223235711701709103371243398198888314148551587650404042910474208380427553438596423727550009494127743143691155886875600314809287124285972268176620196222421863109756756031154507404728292595847671478979714144361045618185353926963415288901043132829619643724718308521072733235222252529665802937877036473525261498802369795284132428940004530782920857214684004071165597973173899191788129447671765354027911942501570600098408845405202722411772431133367630506548079514686153005320731797880267736521023555536241220055037012232448942015247571559049275307575173992534734080020848936600139411700312204886459896672994125040354116056427493273801063630096463440049275403751071237654179680073974606280692960277920111186358161866908583620799360000986550576843078930526600883761782864074095296823436512504884723613677226229989981204350356476915153668964184799827904608279286272215323842586762631205030356011588563240524102624389986694027346311930544355269554620545193288601711029051462917316342751629993548817491659637266624298504479539494007689976081586023110614487502147258674005279346837196432819809173535032828182506541914121329623008316895150415490680883890039988623755647148555064872777556028671776367748053111002833172567826298030594597470679567076451502191709782935297556215270038976711064895914028850234450903276865211355053972081011862719882452670012633975401568995922575882938741707973439535377677057345476626887504456378947343777210758476790540934511430924047913821868972715584413030350500404383775813191187329453791770626394857662361602430044183129468523151450555963250344376112366761233238660014815976049724059307472872179313811760984391192309133738763777528512116433727929203781058721241915784835007313620673158853625777127671093299586861766561790701949904549027053623395583719662079031111851442174122064305777356557992145881188551524786154283043231709088242869105825171171328377159949345363103156856520932455761058970094593075463181994761296008856146437322862278967736243687535519737986385247475615542030563605082451327937044236068897518928848252470686762183466237316701206910722771026709572316109875672542589407712958213805529992919839754705529786480758637201586232812618176046547375512303315862302783621771257850234959117076092258330112839067569627083460265218237237408106457904541647408754529658516958009902732134202404819722826456107527153735409112909651317812565104860069042491017917605484635038536625029330985557580203932158741748715513826664306714061819459461173857510041958107262586105578387545615119304287979467849704506551827995186746465705418030039774349752076397363741151888767985408157404189334781749409460834394803936766715027280502545593897683767840852171720393565591775576695067759234514484330517292669799386159648671286981444377171022864554951653110358212793290481784856170164897923823461160966766370726544988415502618538995481253634288244190139443406247960184117145638019108875618049437119348672349952255878443922232999219571156345963374588543683559859287197857926925211265797639063543371180031354520444879552424061377536369229945756770324110068453426435417565300905003164868013537369452282891523357402217720187852166689054286160757328917213090583181889956061483746860486313012943567673876824694302192054872510273306867454507009652663551105280919620772939232940658576884897109269598813606577379401177812152263971049189446459189298097816490291858039800984795378816241451713663240226732237242262161611611161260661067800014249455345752762367892098204569013339115730028268729644727268883592184955952570084732189760002471797490033185717157794511285604534821968282740605620970749426027483874167977960091450563067595538015613363325496573018637995866599085720911239410911789853750192333387627593233450781636724613426035699833160560651266337535526203699922851177072817569545098741401576715678603499675362053668817058123255904811900141854005778089828488929535390484436027469770807176659231242105551785541756442673688380128784395863218076070425110399360853478246431884087457579087424212246126200269170981995372732297831763316641803431884014348339106622649968618134263281588889228079623692426752893027772962674785853623525541353003058777145054580349918042014977677030184435090726907581606576620000348354085977791624045380455160578008456600155222384906245041005787093599353673833818801036883251009631874297566027338468839198741147674912030977628596178721829519199704758751180615735838783685039774898288006501521782071796164481597992834485475267731261539475717442200936932462497755122564761692894932921950193155629585682536851133148236217902645178024119496921542250838156156083959093110185062013774510334315491132816143407711111083371668742825711287253188763167668558271582541025467924695909252569687507164363127102456946096655928719806793301487232466506080601757482438586113510292366302565666345203412627137909490115242754846359186027792083119168608623284282135920276706566455162739969746223332605867972325628305027882844555326688423873300317214747172359617854072213805095937516215586309477448549585416367488582176959868020090220064229508568455661918143059000301291020653641606878348880181515484681213886909937194405130408557303128622498733680076284854199509244144949488434604345502136164622257912779275155051506458432428199749885211881628942380484168123010552689316762693074104678088448144636161248749851067458946869278675271254130140413815674064746552720731074578969891213363057687545392988952928228032588596089470208586757362583827788221982657767339037435388656519303740144758063631133214584458387781582409218378098601093495716736869193479251583301934158759985232606830287807961046472803891435785231589654143985017729467089256114982474658649478342051133364188220600821090178029450115462203980126562197787567454925942255638740239148615924562337448921981246210921925529352367625038969769474475146301556297475149556051049950395283766493170696778779118778333254800044082694649960644752109642644390078676363125603188655932894125653523213966705761617434073178761239395447314380705534684026497675227983645291323550130519811253584330359445496032994320629204810403022405435135128323552496695677275205679116702066261290180510715248271086528982289418424707641342741861318054630765446182272429844745301977527881105374160177838340711215168678501439619101956026732316746544971912246662837787707580393618706755649673877266062696016949911908819297697224905975583299624036095413752595991744255457133679085945352158211756880580983767644663724350888776182931608010221734369021035056767309297525677751510179695413452686003265390240743878452382183874208007918114119539190306600771302987721617717096858078780402340916787490628978697767423123854722028621641027760250714436356634802834838070678433614330866784627283903460847095204524481647385980161775446910989363849323433991564113578973213544125277024087830865590837420556664146323063755625298668510496590252680823185844969549332058686592907978540488913850505309536936185024647455046725562784789481051497694165141235921046894776362951785849100654842455098245573241436823815467019899811486009241485877875547470186667707390221297686288842847588384821289195308008256000393140603001216050418846836509655418486285785815619942562655423102818622414531893759060011098852436629329720050506950084458217719000919917818950255953679478139972311398423559218218245740287745439343204697091968101408505737252329772154468808225744874376258303120726138151285561953746005966814930106127197780653514115591320635823418042007220451167292095443313796855969564930410281066006517819329257163622194422982602690659148817442205150768093819696484456125279732560526874140573623239389964667978935924672114736231838208131459263698170431254776342046632029018081705336507849562952032529594431835928418053583049863812702176676182828337146555971371165872750103724515603916441002856468444959348280150708561972547022283600846892934975147223530153651587314377112799877205639344643127996194937011188491104778076740715850611376921473537298847250184347442772626722006186487881620747953351595158911960360973987374986504367198094156029636375527168584997477635866514529228478165309832597388485947515674485876913719522803593526513357388404781798688847819677483678420780107306516970554626114501759908757320682608137507116890321396319787961410531708607021137726945164216725336080744444654845123118738282820337938408333766550031292635522061659653841266534134646927194710257481354612855120143713542896346342519645895644933002122569589531493858611440215088066468252764622722612373555929192438041422341673643853478054157287468682257624400094068838694338145305807578501225907169826767903342818434450863684596712658586469680631603611846496318649019486479697270083240921955059753371497313310536667132587743536246281971703593452757543554348273046971674708253389222771220119549170083814435781285777431274568131214657917389834020323943901883288654112630664141455853051059832365753415411906057096110056400067101519892385573953653425426268482155771823726316075076915525168238481046194894702965303430082539305172860122517866399951637067779637339469160100636620171138196537609002937014959049587369819819906717328022892181078039638287843613716066132824510999662411596850981475381500168192127837317125666817007840244743015416486558310671806432651139011228216495409215113758824848951025778553442364884709169410853131449719584840984069637270368480373141876488530225143648505746578193138663721521559873594567390898705002794525813932376657949932636344841558586899940259526830079303052471816027558755837007598772281688017795956294398272187762379384628801507303811876070339125325075979256409207763934581588769033454102523885711765639666551188134548699586004278092641623325582080610208800731535080908409936738766253133505643282302050703181245656070187413728055379303137652427091477593719095866983783441341302217584172944240329802962086100026617013553612678614046880848240035604520392498831898498245735512386934852079435406507247739613702980149552248128175383322298873635039467556571238224909279107131998142605722440440218600481772128207692720764031348104585841264993230078233329496970347627172659461674810446909993391368409674866665430334644683359454077072392946506584200119039519988057285747996518405065217531575175120570998431534949778416237051638862415456386896114098176453422829462710608321079870214142248415144773720481996700902417535008841926161248120208700086432091870860982721440719020171832401167720002256284575667154323661866128014966053833433479685730515082407569355464165486318151956724971928487124440037525901922786986925941730751124682278130386546626274784040697319660109358079677534356757830078336434937931346042662404156899868079900365883953400898387387590488261439438489889636742549922817271662698498265486986298129448468218255039628380779118757558464132967118303128482265264205694297263739931883587093133515258004955694622034869648260028134689509652156953834758659107120046305237596327237707063837516322667601619118737234566848380327926897098571060705383565209219206607408875190230210073134632520043423787064536182163629607258283391122566972745954257840906027155158139472269054064051392788594092107650830701940290923883473193095970728768733494154573717633384201742876958930174255998655468027459662127388753234265374967642239844805653590347743687188072303369787194349370737653719322467128257786275142120737449580581567565043022714500862807102684072667758984915144896543740048245278805327812266890078360411116972790677811500505240012274540948958811460170438914019984086256232511368360953191180802761333046357743300049569636477746204324307161876830590747506838014743195359328897463782173877683116607615821585880915424101836560491199832767143935014737019988760531221779680022320538830789379086243352129442069754858849913313701458103786334640456511993372854630843836341965659710997151158176645138101286430016865018970070278577434602495167077968689409474347497301077532602724753826291903330493828447604228858763251160525858735810632161306190329108509512514543736838417698680313063264130778745138385964058903577804639704324597228788416956428230922165212295077695092208010661590184439626016879008782446258799710166031840370665499939151504307977827996325125721727320624616100185720632698677903401192665544080930155476895928929089670094095811547487785878498859061343120986208313330413221491325174687028834363613206807841466387949504498795709021205005127306009165235796924973980628799375820582544835465065829061405840733272212677270781434681978697251835991427550529063256827265556532903007051315739954140846422318708689920618721711781378898340663232101204121614182842864637328778595017172222518208343752698834211301286147922733936285035287069395655057829983821814537264317528906749815523812405520501509867795054223134153780896321170416833297158734614617279923962476278055379941467804720907675171695600436102465569583316364730343014351664445316469589987901416301102554780602123310858722788356025422101057002701406328853411069231612753761219557827534003343985242660303898839565723884607965687111881790199908132729677597889420719533822438316924253286387182845717952288219199485521221628990948363953633567831979853572845816231450310288621850534251525851274574869981487310639446591370504206449263228387666638534970387779281341282291411429797885156763355543649766595834795939870980494849356205327540151051072444901205766662060548795249596988471763494801826623333911154783110266339666185720396703036564838716151810263016256448427862732154312052852038440453823220041268244222593550405647743502283018438723342392247505223373246584394239862898701409943905622661858711455471078152404056110739361792458764522116074305529018057990078640973677488595457101895152689581837448724744483469372500999550020783578138157029710492256176887036002199626522364665697204373829555169931790527266965568132867645353575984854432178200804578505941090106071748575468619303763432118555282111867743966664764402914157620417282897537438015525931113575416221396829113625337205144535702490529321984771045597534847896222992443594823873672308697737540033146554486402047304424543080717351114608538492798081191600067162509424687529468644865913200022034443333769771563064206749738165550501332972285451567021387323882456582497537370124480718447729218954422490243386447297667992780683736163834763483667224924835994278577937673699774811160033194487970273251788887430748521474050333377619380495933979979906413234259979830959414936582115895463340218706870753985541922788724423759472538319980348467405223884795310282368838010498283170555260245761366771337756487326288108219095383804171351873110652973833051639798824840070422964297667899262180939557475103011676689990603241054410759840981786560476733801459687535323748085129740583047400125331426485692772103762549945839321567385240669207688644974606531830945916678819815358080790237237707032726244011227232390518987197633408128168629447084408488371700453832457086378601733094544782467030520446335782589707963031983243680406234774830073038445863201980677834559813242352378039335273693383352334208891076333439902208427676119238089067627935263416603047789686822198311640576935369708937431757702593604572619480760016708242406814035846946171571465483083466855947858505049933988783842626226537426674536061871584572363331804009945055269783492862217533941434324630785449082495211633341290526237787903292494875290371946875933307396963064895302443620641158195131034654173506007454827224089230361007352807337134238270879395353822341515812182259614516956343992266375614357841043178308613928710102090566040236815936545659801510389526477303768693668368432512588357961017653060548316360576787236474092099558722822457863016474228211899127391259865513628104418057391888189647888742354019258806457461646860473595443740901253198503597077878467638277950239474669296223152391973449153034222396177969930613893135671457162123525800917435906555675481724517177669092642882338534924853052657817172976378054490230397194361296070734516623865760085904483814981328320740103240677672537771050526970000465244911881880077665379621558550897731030957388566917105940732733384785060104573131887463631563915458602658082223851713131400996150409306397399906018884688237909310366087909868770615685431234601918331395916224664485091894764828763296626769951085659355395909193443620054903474551370550087666493256605642609113185472570837924606943933046897209345910883036859312943597727502628782774755817245222473602245109540760757765708220549089757169913345436382541326177332646384303774146914042569269631990354098847431424326871610962101816194400055474131459761253246519375867181005198973879452124349279927571081500803467730197975539847435254698947325282687432435787189339646247306581456134190895794738385337911698410640161553245424629462625856277360398040041836135070773960159504769293410589653074433090317575601653848535210417959767043942889066568496548992149264064399888889852820845889402552469450148321068034616325696873496135246578973620653335171318388323729414507259962459189505949864637217298974480730653765952716016592402472465182988767008129339028035969794128998144322674215758157836813766178738615115236712098706223900186504859517100600980754981040765971601605457763445529255739559640481815882583100513327791792161104856663458052672964087967671286562005141654590162863527188344218814026462141746826024187394536116048778848629772524725674772119780288019214896792533625873763231370674193327708911520235986027478797474583425123318779391597408767902502136363222108811400338351670462120558778689132956356611873142825830256388057395011309868546247133514832061058560617969723143827598956940846166390764227639432199142091663673407912858737458213141412375219186036456595467105238822854013929887908669522167362875088557781903949887226337819428780528861469079534799922258928642656533018932572652540791329060713123464181952531914005272352420219995787233030568519258002983174431910512688395409979132178470327591526131413755937977199523545297414223795954648788143526346172935314142300276527150662170788480927214127010226063822507164054842173041812547227734609704305342030620820604979740135698618429924497672383293134049385228712177338834823157827716032148534957238125419171082846415280100918311937005551211730206861343914812158602744976950487498831977257822766948105944228285340905314434177721958932019496584477844991450855105141458582059768204471027186764354189811559732979931313469686622014721991806182859199890813631824312830968835733960513166459578504386664824813780746458618273298695399717153551074159514320174494580169928077314064627519512652770608321976098720368923287670157746301501857476186664239030387784646541842406998199102617624565004351682598812401824802059653770090484263655289310890326259270176658479131065351724388985891445367145263515908585942994512805729793339779569961280436195065414897392899747947287632414287110397309057303550237652484507504409962875925083753070601069522510249819767039686879402377267927366745475992629940941490668119236357818049874265331422596927453504424493005594502626037351873683380305443409057680788647422712805259153060251685172135203367049967712049881510857540774690245359627552354072590559820824296881773447964509361112378983871765055638203580458847138462831007516668130955325719541183295356696982403751595361277410663793989836699511697360293845586443889579246841050505318314723806321744632630377904655751927399452396778565433629018359768924638429238183631998559391754130537205266083824640927383234388716336404408033035173226929732886039971951181395262826559620115392654234302868791205157310767388744486362927489023331040133721339520151829698081941102810053900967166337546684196313263021293925371485578065720315680370381700806922071211329820210425782862097762133041263631269484986968254295966154118653700401500907555207851907906908546881504901877783199571724270600620848243091574021542041116638653886628690194022461575081365597501224007333825062411651305959152077004295284050945131820521020889810114368485512066509693805366208778421054490669711909423565907290551358823374642974660518223353221542313821497834292983720768330674780111788328277112238446003746384529936630136875012306869013831583659122134929516534151141284506622985720036602138369950949097634248589239883961683993964195153382614653461572002481862402465893701658522326149580816955451631235031461213503683522394510279972896942967747026942408605395842805301370884446166182882313474890048209470157427059677299025286651249974208742866269178842218311535220805662382087981232243186050519380894982274351378572243767814964389180336832740986406188148828497345850026436296708014491394406453893567638877342299297102610146965662588925885229318396231741969771048978302456436131932336271517524562465534185457626822484638884021593061851776988956205727122864381664745616578160263863515361164822771260492841309065214481923210319306211806202220361626359633991505822044536186155697763536056175396827121291943146740535283268345451601040115101929453903559605567876500742199994583466900336694189941126238029882217977139423681716019865516461346787970845248158097957853517063703140774465593546911344305045477641697140840090884509008874859843868313900141738162836686522184446382872878475156514302026263998673640290865744491095240213866219884336700191356424447944891988482662980682799558473560032341965774449777739184075673802389593885456177170819311508422068320372263017003122051784932248872456931346048703231133351278347868723492543056140058396628371878447069348488686032610933328131297850671265240758389644436012113278955358217920659933811690581549912987294516707206862243736219418094459988325318975217395382365305926439381704454272456894578309440724811303631505587181135682462077423168356636112483916244232941163966467919577025487185907379795917613852301535554088452235626393363970300494814082085996748095275311520229408946107825964858898694201516283286086057964263598695653453078127271837803033405188463141262356920318477138697776278421885340141224787605582398454443568473700676174971876756198032526372251554879118988702757655469988943630241535627396810260947646240132026823770859841776577241325350852874012170488256445013591170101664337816638040253649180712623115923979922749368905145763488957708408777291394141708354331792680633688239755081317088595774017311303696350251956790983880616098792610963925119021532071573220412129698686884937836523384628232030294969003932334993933753303985947093865452676110230185755803870235269444883350935198306011803721763509688645730152263145417485802728318363444118681850521106518712252977060936427153956576688158059675558776124044117516469668736486683350969395845737832513675116495299879058089913449267330965803181848639539028256866900674201151517227685438107557023719090497457795762582694363112993828003558491231347744114688718882922356083422275784917328504416841074089309985978122342627068794677412855577990879657457280556740713873476996070590838230486526808080620992026683952610598957525948157293041609842989428759027398268621519885094582101628359868806177346638063807293388316807666138698478349384073264523358895706425008810731728699967117984921724976844086061631433476077479659166958411678459313194244514200160274916288345340350676922018236101902452742146109947530622389318313372109496108885009569931968673732527603299761198409530647490176233968850522466447278168485131099250529549425987398406906499794873375259585338693234310637590488079900406839034027650130223915260656001245438527910394130405839784556354652473338873074042930893380538682665777709334528635785944014613288809507774271009807130508283919250740313906609670533884560451588890259562140676596069863296164373891349968097296026402149162531611918588499504238280346685055636674785669550345670281643161851057820345879488839691364289324842991159394288479336693286995765603462732802592074916148937089371776837932012415915321221618700721813582527745962296449449053052419430983547783598761364720643182673203036671739286868205822313704421809201788756688487388372648280886197479445375890533058153416065632898869197709813197489100346487223589921347066914980783186355122420531174960696914098340508074344561689246587914265783331451589092486931042178024211136326164159815930759087406785719200493613384018604502216117950741492496717737067855985762438574517360941097713707683224506230670003377424681816958210405537651566884444396095490026713394846033900388740126183199843999631963419284487637076079792886200952358997079944477340369125597796665932944674537350765464683677254921949392963918076962109756925357550174145492294271240392220011040100488198602817633182161295905993663860941331329620862114017171627996594862774998833270868127503089444193950932858692310422768896154274100567375558074630377044368021277851717034299667491737681789766728314036047314896967815303572179216743682007870945002075814475454438974231357004560539043632011985564665372762637941211911476752515933187142445887472844968032236162510479753155482375303550000127205468525025394928088558079589144132613465197786867303748623486558805440017474014832538315466717876458409038000303526470331693834980893188252587328553370640948803089050626778069649762060846882272344466771657004190302471890501566304429835414503172912822842179066837125735582279675150350103022849094957807215610460322393552691829545160830769935961171674059895240442443519602879935337651542487204621267589181339283653428807273900319555667998483329020181661763212532416328923111631426391341873201859398543301212843047807240481312370295094141505176421672843686305458015295861119059458812911124893425466477522302248473326285230253646912216502232214256159024431605955481260563405673990937159006686151169215129720403211074441758109980892142722228814896591895382216359287238121813848999462731530513032233227903964905208109839994690522595804334977739039738562957319228197466210921613197936383045049340158165422856277272380049836334989336175346055999968365500793887350632914068348015090803167210032249548000769928998326121247715816417011320645833709922589646438610843672766470164792952747985796731080298213864809279741780580774384488051716141102247751071707369640329032120647634359549559454379552444451033195298576042072614498739762381103321420904040290657687772991428203040361353048034271532808075358408583699869167380247260777556410967135443741275735642043604477404784189486236254727753476791268315086034592976944788768218920567858471026153872851399765444919669251726404891028942599598091556353587208104687444855909016704330449844074085523187154254961901470085110860227880219374434995458290876719322330004832923494675124109829379877228965147676257939015290794959035523798134233579578219205101266233871667130522943181914378810610814924281041907419917460672872133657816683819001114385912352746039889632020705627272048629437949716355077606652980940627693271010516488047436110795689616628639521473017286402182474106042170763178398978778358103378848249407170924064399839264088589680154954860224124320711861966490088066865360320308752161620307561622188661259475898170450860103418621698460391968670094263659483349665308549793519752797763546852285010740974619016891993845933021008954267629298993021306741124074955654281906525950923668591387859848564793575938280335277151291003921661173777451348426669552253369255943541919345621035653792067106620082068208011455072665202083932624152032676776783791185907050434448156064656713100652669161265068808625835906831810573635077178467464959684296840079987750565879120683450135750340020893984404254597140486487861136001805939606084089098645649163204205184543254077075868626240416993480639528745131399289630528032456910422923507392609389757091783173233020139324459450904283858930968732477369278027262056655334768682994582960635561417334570095124098936715183702641590986229529204864025181843674812110266107432111070716744367142839409277689515111970665839535706923544209232314076712529406176511487287339716943157305701738680145448513393636192374425573774092137926645003341381641051948283181425681340773869026007785464513937814764453214545408122700744014202718704190725568146406985248049678541129293715440906078128037985328866621248756147051288556592389553550350937812264878592347713661812588836036953818113423016052602330347167678144775075246869320628367643300358725541746923078314013411203735211209629445306225702859267341671981472313689499014797845510003020818162492976938857609751412150603994235857102034782821991501197542542570610884106963913846354125819148657416569949371503534024567811359019430848015827213981239365609490346791937396967582164920399921511187597493952454206421517106027508563596256416258992331480129855208224249055023341135831598260360974763363525626066896535065199367074545710434374976327315226945954949332184574474098322239998302843463015933361144192518908592904136319913128658513817683811149513076132947412722724353043821389845096675195298790560675772321123358384821035324595030951048075360773830148273127894986040354022319140672474493776856024246955789573033646307092817471850054743013082191351132977451822096436718337827827667707030966659422869738284988429149614344159670700726641954030029682336421119482731629713316168955271101411065944555002502963877621245854816830962764949497017859646512679324137904621874825817108456453071173987336775288714409880030646104656309114520654949838234583920613323878851051650075762673111349648690171101279776924910334505653572003421592039531412559740675835727613650545126535320807323564865616217684450975438565981430957451362972469343944220283136601195296141425574716643630357819623491619308598552915294073605946980076080768247533940313796907589231374055973084664272665438735425081774700943533442828838354266420141683878117027701393983693980730751771181530352304969249653228370402409388930206650237242295960296240143656008579229765029492096353347740725354091068091238070304948512012064855931778228212565575671117464186030273751120242135330980786385398540115001049958183150455748731726282033797618542669019548167404638206644636155889269040979097029349252915514065927196086511351766287177622360919787232991057304480883993821490953665700078597797686478775454429630420114359976706612873155366721382755785922812081406016317168558254729796568512618685925619308908915178938601394210371614487205956874543789548297710351591298198313796894254854251826568273808930822813476842115629998821943105702723078474453890746619438368485991704191053485577552778162803578765514838088003376184115546790151261285887540799608282593209966417014808221891290519755256240618115154504403860477829907955051942755418021957563475363565833067851437421362496918573920785625252715294015014895110072047561831170827857459881055949538839656449978152120964069106121466668938073047674228494332736582446107631860991796591109968582384921206157949153107414992259431280074571340618415934615992371326599189156142332231566209503311205808248787978798341923715946658142218550885666209901030808336772255167079524100995401851127752550318648740723038660033141597683213225565922825184986872238659062573298285327467055570731146936926008724181603340971407150018067545017137180302647924773180275142473771474872144048278393356811741035069902039012164526606070044158909003744864201974807195249555972694289582287634846454533809536006770798870915076858404875673404398010445048486871173747109920776035694533556856965742569018446868446393052993387757945844750042455199763462300931214640621714725346929107771883678782644549573912384008508810009311091471744183786070291898011891399773044487427566856923967231797362791464340490355362739943576412276975835139274082963484043202397166752789878056397874037055092859448895764385817013710863095671613283578664249539845000092890176767034577428344139955854116662686703193648927677563101554472997874685096121887535074377795310086750656550015083943794795296268225048788644159501800001828786024111623790984073983723929806255798120210309711207998624133133310903508783831805153340140521669607706048302195190629175377441147932537621849589426956455822340966692159165464221508078034339171168495400516800865456707537811799391626712268733412028595336888140150805283025580834867415343220183215596622750869301852569845315803846276706061915807208037393834810198219812624601823048121896310526428888973806830418297130874971174009814214497335866934248772342582668413123680136230377670994791726580061683661752567003522173757200514478733159830816164296797785603441729800427768801058960456920721717889510970243818814338942318447781303647275048799768454432363085925302467186887483146143551840470450985377452442261063836345157446097137381143611865511040736721875251638410071205823397823438082079761824014544901643355301109663343806102355527342344534347656167345290976774715810409474390271203546833511633051971333087466450219342462535949422276861635223140249811726526563448210715903941149693258573272750554295900877324894052686959765532025346544849296757186028725122477604804989936277767423840966890272349367091844223778831358274713602653917706528125414610839579776112692945928658054489396278567923481332571759866327429370865178388162447568919494554374722137990503597282861072551322527716715184458403357955754253940754788177362808798751421483921713443040729784639536550346833579242092495853679464164513333063588603239465131650852928936910582889715158559792458344304976660081472435289087455262925003250964870256214148305921357882496059688718901821570193338534259470932170219882081079734260191127207554992093550224396205169146255168537114394084287838345709070005369213185201409413111504462676362276918140134238478457887398435722835583969948376891731191268527410931361834183046140358629604296816410611477284695721781925215690613888301354106146756961016647180042574481041792343108146442104511436846898569858239430982623568269554569763691669446083479269902027580277330234125800559637666509545918227068921409051089330378968910840866291139114879558888635205239917975949500032172912792758494323148330538104985615923226452460569318917935156111961458722421005346084113093605006916058590612092651382889683291541858406471729366987300600241369878401347259978493666039758481201841437386882045330783417128107956435905101326376397664488512182429636198870937192301150122250376701557646438316559803291890115477433663115865303644273265538991031958227377812520878520619177466570468668350528814035389855374829618916121972681455023796401893504900940806319440425328524653942040996703267451924646723015303552581373891231345690203330702193573280334723231562269295963934274873743168550580542329007398271856828414094611488068993665588373965635330183663165250305195961915127208382340373313560501292420793960552051350050612892899317254971032224668507021470791824189346373438986489480337233708946256755592268853865299298088744360417859398065372518680903502403018198651059342538662942180526246405716788589607352401013053906248979954024648887770273433799348603059134238564384248196838210616046786361088497378247528516307534737032172610445357291173474258704805698023347525111821894469657178836179155951275042350575881063597340498466156907985652410930666826055512935491258219642672739362282615776663283776989104705409025153972481057292171572784400545506023125081029330430068153553369665883433757434296298424211270056528232608306673301404798886588652209211417199542424384103456351734033965132442968687704079446458137143776705618001019945264299947382673257758715915387855130757960313609440005157308417839280015449069204489158939646080687093814671374203711324107266516287987339347856862579152614431264619297872476905521328770009846808470782913974355337823619979850333971732891059376773053447061484587508262055660659015968029433383436673253304916651531098838251094296031062945315923735035336357031606743640156183424575220469908988492995097554705279866179316564800358005310551747294378565726304084094797233304332379318159284836658676290715503646078657886061742813643358622831912340207493490550327263022723649497223796695573371863453705466376125610490684404266777059332322468256218890071857905429608493021693244696115701453145636736249409368375701586759187835813273127773650746139602192883925770658920502105352883915569099099768205723660558081999569925616954957568701580874239795698498993363016843115023718688520642410247581707181922731351887065134169890806087151106637419721869869197754746764440919622065183523772427812338079617976581072148502894096999382034481044274652698816531623911329432215460471792101927038857955388233588531158110666934123242857943348843391545448837984204649487647878148444924417099428556364380413299987565007202358327691163678228694528262757704152019132935184112414277279574825763096646157832695097680673312487990357349330422893828544047792658749374403397124024595667702262108584243353111674529255693295679790400736961590098960742479920374573233758498930587184539406167991576314338294928714243054345497105951088309926109606222358714374770654665531132958054310207475188770937584759617258241364483029903740206785931067937475120679503398898675548808676471044313449263136940903029805752147187094864611680977598596051764135268395815251487624588217870296872171854741283257816259818476207591404867260580944290027583188570371862446308092891660808913949780603530499238791803351865946786449930335744183206108255641413347279619526532541888851352852992506829299689968237543071370247014565166277192302134125627759050759652242823884096852857691461609474020086871625665060710181361633648341827297328603921824347685834762807991304630403646216175340804956829556816809907467198600853355907496246190327116254259105943719080157586063301328615552670458375362947415535151124382134696305490475712149672855479441110817015005000942069932917338773975618498369704039520414756973230347036874588230590443323795258956935146603678829684764352175865302126391270989040122697119889685829953265236974960340540905148492405404476760236418612861919363923287859902606993124636948845856330780912875858097033224946542485976155850382715325775337864585716679996309385180249502818157549664848282290105137329324192251926882352012673081172625281725719327071091810564981163793103241384454434297952030247268257503776770593431637698282166237466900381570827320353905778378881822901490594932951761589322379946192107836702969460190714793517898152051701749212006762051154364905248326457519506491816693843543196597047499596762041832695036648290824346649282210011939118420004045907077058032641710326883261532889038864623541151482163804699829634268886927054411239202953472710411976655674712920824120149115132745539691701112199425857220526971411446077173758204658299777640896985793912935423953986595344939123257758007849311923100536824179218660486669376356879283001663417068037698013738749362573135678174064166472942462917505678502249633501685173903822289927385923130529672444739765135809443230242398822286532459986830980976922485738138056385110190591278459420984054330090622398277274004980938000960527683225682455158426885057693211679665236586111829775753771153924051697082010820130043850392285657312919326698913187454895623146291037159501714361860223960801383179460493383555184472180923273260150467936726507359989864966840935668819357729171628327242392867190235416887159877314398103604506911610781298780940622222074069810821021385172073305327520525351678715930568011929423067136517147020789462226162876616545386589921003665040943874660607286556516162204425548843311137953558017683628040329932960436305081680068565345936707184042873823086565943050616287569084027990873364484245745991017068080579557249065303642667761809085894436486988796082933014564586505766923293542158400502860849467549692563867665249976496679017780200127277888002747878852048347991358272091424175609858070740229751947492923960315004177385840831998692862882242303032245329808440264971996181914890896944869457994639755903684159268999691617698654777905490450134218989749229353881699693329134415683993642687469365016215918367873603022045711461495979930006336305070011450604146053150397554241798167608958510385437722078949465821992062578637865835302014305279120047491717692808223167075504949819981151316441027787176920764385426311331104540414746104248630080973632747562048050291452044269161831440542263688598330004436176964740070437060524901307166391328590364899933197221991669846723948983492906723667045882051853852275677369232184730178278600232454924347976028861712906467899089758853522618706366745389563473262753234502734999529560934059537375759195339376284446963738205172651149515366898996479411334140776818035070930507128773896270284238982468646391531505409125197895847051641809064684020841871421065792985591011815508328289254564483748166694924667347547151639021126469478754780378396191776187567932482640121601331671081625889537667862471663680859029848327877032132582103293252512353862626421343031364847846837587672336120551097228082246618295665889535665949321472705349707365044432436220663835132535375968631505271284322191064776788115596439625819837791809649196208697159463940555106247040861654929226797074328331485070442287102416096669639608088663253386170184351412618844841300675551120373339037374244261933196982660050452135640493618298039929584324988312599992879754507765568362960988269242166357612421397396014130299348595970382866668747362315060723216279940923638987402267474963588711678044910405307189897317152033827127214057369433689980648575202271851419726517230766274923668548153260196675976706819271525239019923606668162383409649003706256872136135159821839437164126303749606322613061110357414184783878976706084982613813003124155362571209203375075603315122329833461664656850199087486286615984378340203864334632304232527819496011607659512090238111346950045458601246847063059298179635346842965438063182323125389436653193169309262865842852987019002944844529156886427913423762859710246310611962499366231869981211194105910754147280832769992616358512607766049107278776142227038438301531054594264957018899894424385129864771502548850677303040690078253339084659954766471727814549003845085260145360861318285150846419143900094708021474226210410372761089730594248197420525919121996886323168281487994924266658912933987616325072840516607860174872780093317136712712464491754973213133781623666784739798154967769588293254437540072833145365319814681987315743712887063053177931098059312699267152782313582274664240093096713328176831258533710382942780199636653033153283610578052075514577236657923568855254531607746742983134363221281090074735384790821480828851196091080892613242169528457120769742400985401282144686281074081888799174643367558111586463979096122852137728104568325572440661913884816606899035244987230550135174874328000616538118334677559522645622345717494795786968200476035433149094065377128731120409156010829920124075994012335584059644775651687397506408457461666067041978477723318626529330661200258392737087112474089956275342954828026301089305004744300804470726115625631831700970294457433319845241711723339629830386389349912991498274724571005477630964587667751240696148933687866821653762474788125378807275088129028837322932562057506953907096440777959214783912471890267837584775257261481758365724267779506617481763632659860500496941152585547290550116875089471806944142606017658270589124299716767063172800204880731729688120333304119397211147127762893608382974101624819185565694834240521542598074797144172195003576641224722193046563849232265321057195433978964150821009973815284883282063461883229428065033824450349267029672976818888436510414895790499052392941046546014411556857583325659467440641361172265489934929022342012671280941728743926855671261600512356809801439030974451582768400708729907704123061943205643989472482654588007637772066768901763637141080727331577435033710962181121165051779528363095810095999129371166114003568320254681667031840506990132204007507696512996692994564924386623108641924196014104995281363369171660456018865026020709570950413719800039487917936611931647203730274346041711318748051918054923415515917339042720700245040491159242876595541688872527249677477167607859177272039914639244058965878245509957969144872270265647565134029893604653423424760351539593287167851297812031174619683744240093495264570991541854087504796217950104689762570248895940034153989692846450218721022530809613829666908048305980066330256362408668352222587507572540406769381297988483482103616122048685578660041677984742145530550455764964366413717853941339572141364907236359250960736805594323282022036686891960796165121226538296308083871727877833260673923028839664488927470340079765231537509768052784790925969100430567918522091902252026598240450083007832681780493007167823937861343751274195772871051469546204621901490595798475998423494875864276417194811078908546787143282792772428358352984270738543291911562322776088524047532557974360228806672045433731243381417459859448825891593617939197527010932533187326743974915004924945639202631564423707333042149743215681962316591189619728062987169514874920098597080816446322503344463062155318500710148004771074435839117900973217827907655684398898803454409908207959697920831201451299045368693112906176530471144131336772998286486716037542073045832973096892984096458599103390518047408401785380156583952837652279250501275825457185443276526558796115475363181348995572126095788763551055131315152443871601676104682983925366623793666300636491250187370286316745971033822532807849159190916611387907612223930476039397740814383498521999525264622192826042080896787264643656674175396455184072977189143158612161409476000233870035388264367730294741794260229767884214074728268397557365059955831827012522092761800166078104677745885770067921745226502335648699617115304527837130864072398436730161238677729644808576899576510026466202851386730394188866199639181301291216610333076760560964328271356716647516808832553707668236739185609323549290911901391246164150846080049417540941046270705484575077770141355170327583605213189901693313960100363579111268918921028685559903983940077808324097611682854510216414812331182676719053283261848241779742881221317382202915568773223667154021357872739137693987032468258910699932269408775673735029377961291431313994513120230830738660606838170975079659508358053464386783636974403905047359459025644920818950519199361167611504183323979028034949908587591842437659587325413283732433012573201988357263090750305454181272857173454718488603347745545364929787420857147994046885358936447202902459824633184097091446268252184122161172859619278425626317205873881525811859400778288757315690193199755733289625030337761884451428898767175667164658604138552788541925833549552614866676363798224934378454152941664608517256479874006561733234493393341268522365452678486254609068910331621663739717006542722679089228322545411354614110646550212045067285151945032016171248413529257778499696780963761061537998513958046666992401579334694439661735877019888666434110590383103842895910537175386835535674227542916921294780548556165857428271010090326231370405668620799010594325545894414873929305285376921635680927360490337478037751337033779618643871858544761321328085947106218698439971420876080803552869967452969750421444246218397778561814636798914663127788029176132771693498012949306425606924047109744932410931059855655392233954777040758736693490845186479810638410808957461008433815304397118620013942685152135258552440335843650586239969198882385680827875372288127808545667533481726553009946962248618312349305402556647225307312798806166153699026647523631936538104041155745510978993367171682750591276398020037193438209263375230677511743709523008482343911482654281964754335844211542145514091730379615746728007616003850317717618666439007214757737023386785364039624092968054621853685525288164364245619028316297039626349075819435259169156257463576845541925039808420140350738549922888389976690632079276039657481140520019455825609907091669964826000941749534138635912163179606220442089257280047561606677197678523451906810129272722984824028259188920201294459183132714925299929598858655218229140335617960772930671614463971164717334647949791725012758827388996209578691168212090973380126881629156531388257000853816560034059924631434380311294970010826418886230078325047290360709819278883543331298879691309979849156230783361151111844199755978005439153797773699253997458425785111875441072751077296434078632091113114776640187064461720086762905692644106108167749897944946304299216656516062532775530400541261975862562254685517005535949442220951520785842304533309667863242821379902431299845571312668872143838086688795730469844992371841083639677638778401320788623905668607258609298658060929544584371905147621025820801910280719642729007568357474153001822197364870465618621612697659976111161719573541674439558643075994572499757040279093588957802142490134749190481399406577672102906041021619862189976159285966674137522548617747214795796726941559516818537936641953446708068751316931757717889038022885833745027703108177860340804120246008893449572033477080760293187907973689752981066518959695767773544875768351943659882624650026152585256343648218957035770631477143165807142571229021202239293125137831614353313668522645577794086173350108958930822322427890622943275425979172336968495869905757736652375882096923841966441069012010519584152382793207959030089796519718667951325370668313795070278290669095304027021848320218368703951267613149267414842981999613088481518985869208538434500682846450065161633878364817976023814052652415622166068129053735647201593492329885581667927751349326732051023735664677603248863127039604681615966431068053375610937770117235981694179136758200147294484899310684625063721339887310768436632882159495925784387470082878907079025913090204942556221522235761890384597969996875893262441496656164876493904119794033277718620352754559721198045409756433792970892147878530807922627255651148352562378237777873551614783508162263997554422746171377322147771535328338221739718532780263688957884899254001706465063419485117533744887079097867202280038147769691622212776056035814486583891724148053787390603639920566820134987304097003000365594319596742352282786261184247078491578452490292549166770878255168690596386645274490373236705622824114252422323494142627098883946173175858221558310363429797340812968573871687090188632629669969308294025503410034838174645447972825185123738935560910800280585296089442778898910027628616867798310390175866147431591685619900085957743973797466578846223357236484728499788878340604177839819988794645440568798124670803274326621539637330055468193882773321985625147520707026775156721341870107106272980681461844640675492484217838479621445979344841759117925082228370221774156805801513983814250587499763789353551743216983133488677803273151579284559605375532661947767497383364235424093532878019692181163132343654768887279028778821950475486196972364314540191995889005729017967302365701743666270562784888817882183150316721505045309673664795871430457641195418555096020413515150009294706605115095264025907233754874305557787726265046489736493987279283189598515455335431190968058433459343503257382488302626077852079294604169193842488708162893457273440614578612088087542006373704593343355928741136290177020736462901973408670785740447253287533173494844937579179707583720654960735457109360224743350418113821695860770745763086603393400611671629215362458005601875824431697015407763104301845246563754901260893582854101372301199907395713546192821303686822562173851242770632579093658854026034388083434438694979703508576254753528148861848409914776906406029534247927207698163044469780315950849162404740973161631072740365907375681707857968126941157786110524884610957962032213799462729326184995875967641383195326699978399034199662181601143855631941723627080985330053104879530211062035075300758648094807656296079342471220722008610880364149728771449243093968524569178034436792334451916330157594764366558666858800251895603618813677555250351752523511875477463693828263374133208290078346713253654566600569798400550625840385710839389389959625056059507388833567590817415684747922566035440557668801282611735369185052694165284652831049369268789471315410074146649321402229889064425155380306753262102032516838210012960145289074627229151673145703655218698008588566435099533385476484164364993587196305551650746543966829577132601906727854947445543066789141272127727507942606164256595959783136476632111975157179628403414075891964799177159064482780088680446961311814123249026000811518418854577806257050672604931336176541220157635675245516693518160222854205229855809553458688157125608971694071388075637091632346560363725070983125772005125383078175038821699936882122592853619955533359144393651296802915145634865827336889821010071794808712696669344935199103279897048442643447955844410882533280337871705050192835475588145937786686831415626054712617407332136905843970466422435917903965183923670609580394230226630488915665620774520184605794832969254915992077149508889828255047252621549952039369013341315254178891239260591651861530837053511015230389624498596038402546613119840536284813662372005356501748878093042847869726293149639812407837602090510701609889889408886352509267794178781110329396522073071833996292945842081786429651219627992799497677221282261220018481302422180325553827450036092946291241483336154194154970372407378441745007364136839414102302964198500795008890687381194250813149879320153154480846871625577197662884216923630536160639150063084033026417820268457210506872183292137060444303015105015178495143285778617443731392545652968314153429941571290274517550349387405761254387570982918429814928571804213780985301030213985427054127469128800255801044268261872679436101018595306636871075444357254966757171413090146952449916445269237241477800847897957977451629076686174334232036157767960467293268756658075779764925874387152570653981212688109087932079586440650582177523423820236797670539683563077280443277848070179003691505056528899237307933802182978069897687643497632141974797697549871381547873371493917307242990537198942802771428309821405488052201840411014114709250547596808709447620599209099163222723501653205812453202450109276909046785745076037040486941122223631191763120102562872267486991406950439842971761412289362107145215367090035280230728652779099909230668069595580487780096503214123251123490114339469455010032792226405018526301791054904148670166765750065676534505684567528532886579225134222517378351899131579850744717102081088313332300500580510584341275555875159549710195002410258231486757882264851394430074226142922889212858590408194316307818731215696923445047831455446419562020023758913207097462867065087975730314805835955274627809910232961427964340914072474456666272408163724419461754819029778670667251868873251677236468814312572657751916296728655242611131656731038819037061238976406002940027621255599741748636109676924632923902492825368468463030163459628015340329100087993206616296419203245605657614325572470376707016498751725309068180045428603815432525806056304712262887220853657903328563629509248306873124047624625824408335970186858731094561819736053017718588715770113868940936445754938090265198779626809188526103933595759478269639061708654027733493544074291755822605331756183922822835053319628169741512945619024144882589622109463462578732778712466399978561539418091039568534371913392187538831500232706678067299070548866059493492264911201861692217918502201551658789029828878180131177966615698693716280916699594039996810554956989050233861139239453592100432573889860553733489050068703928250751195738324291995270508912509484153563919701672840898540237909163527265665108401142103578745272478853493132878799164524441069660652307946198930357752385684917183729019874959230184776644119997794728502962918592368454470781630881752258632648921139387259827998814556049852112939590866997403121845532047641826542776025248976593009993280901461765093626681065397962374446590257317282260123492006368957080274774360361216031878489075313125879145095011343659799850080355113185928011877459394943566501342647959380387175934721538118374588902442188541301288655889968882404312326249269032345277252997701527756290840719763995206396632858271548342172478901315750800333990142964697801758571473946290473173295104423110668344371581239294965872972518373631572127306981920959657922958127505319861683761600461900556070958392945959533665105141274345713229262576160955875380771506262550089433472933338279897786219835983658088256264725060108035911967623598085146890859831058562055412014253883619277484799928460037692378952582056970537807472156455243683174335689830188230161918586904484051735851440050470257894786545435373352237940017603224459292128640087850010926286012624136105712210565814888697317445100825107933994944501728918659800596780985557112244645734960476938055965888365107814061475710430951552778130088802619543982043874776434543296044024709279266127818922463394699027026207437501942877927704187129522217665250776214344843574019928396813813276926633013077293407726079456761215765194376457076524019279635941011459347995388493095515681271194861351176675323465740007354038726690126492599194269653416021450465638960850984842147243666510221268910021268566839218292676627610656132568593886178386966279527421643663254107476803923486497372807086141920798860198377055153901031712670513382135765065458928694664842370668594397517205079859371365160404003394302500858788372929389230177643893091015835584096970212907002939349945742332859138477516884779342051597802209952105074760816877774220988601421023172403830195084764201844275976900095897942590903365388932853043975887355760787225734206234105188992439090237990694247271429313136296630912618571750285656962050601111834608298315770161921465999435449343478468784252121344016888588278683721253589443399091664310518533566600632184011800059414805101908296572170829530795237082596523536819142367334920106355506979838487208870112779856232723545808467946937456406176753518565947830708927475212852302204523425752492179292451027712400829091816647277638403460168339038848233348923183857042956591458909867313009728575000022877886997289038027234593839241159910304366083394856457473710959398268514033556334470905666946719414723659784474090993501549435786570037471615807298131654049655511333082614395077785485668404013687920955936813428063541215883139791335241273190741255995235972581709578279869985530859087019387481493618918691429655479987280499519231747137926933085075243841723590553248009551032550048538242537993108333082886205050485425881166860924621470544410608221776035732999978717973388634814637850939565008091730329292505878964908554334597105723122959859127744258561471731760722792956179993663267068453001337966798660624350463040595056638673070480116658818677184525427587094646824572823076310135647985939136296144616285075563410459075304763244743272120088622305814188300502790565062231870487145542546478233617209144541609872351754598247880315458333779033810508494472251998803924219652402997563295473694178060726946763113683618050309719057875075241246099831754514395962060481705821399971004001067269704904734645954617741257985975587619964899015391071850536263537766357418976564002810362895333368973733347749481779653003035322850673023261701835201519786341768920048618035053539596102345972078200163593081645405433897342240515553294506641867906548747301027115939254659108918816954070595713072057309566925087692243873422364343456154030330243727786910695682482510358215972814456647987554135109081816926072281747754253585380614236263392201818454980553672540780840950841461106794110662681500929833259949735415955497563154128752312704762153700299903440385897950365608198763938310451606240377830304155346152402375311193755050384072663261712880627334086148996661437651472438666326512390637804144663501473671796614965673645189835857584139072629339122783727647634252257257823313448178121868879633883217639431565304945670239424146181669871833242267120190712535264840928754358644869650407353454228156474550500719146705212900866289028478238604386916813073240469314967452658374230292625083866065252283912008630740590356145205912123645057075194893158539428218693369648755835832069543418221253633652464213673063625428805206605370001022427000525312984610442746930664494407249871827668000339960256267906613747125964337854970734350853731272949307837683393113635229322361306035606960651329554709915069609635020400282943473068841713899190672163199912519297304647108052652007991237513668123344013806454349667717610405928697531726403259106641792055972445953168129344666523658869971896896585342496732931156391923652278759678284261457492440762326523063747289412976313663585894321203389421757019127603599933048203842783711633528777519606807691800917453179924408775186705533094237110352054548750642909960019368758890602859021266162266485774597497985086568660725680775981764313285639748714950420459964429297981181596042797877905445185643925885104046935945747842300797667686613843589640046000910624688796761739651977283459622443902515989064945145230377898783330118625982159061951756805565175891485368677648899929751176345662494581742007450558719296402813788929829772358777305534945186972553952369993047872283404829062818259957853403004477876968526002585469447876071000341370217660315701472454757209213034690533108868631442693749214290968086887649455078930480557751095898579292741985808474294362989552172631280595113958129313086800348871235287723625949371737641744729426832799133788966183217306730632136100627859776200068686441737650360366356435530010009541005482619599566052324311159081238517008702476858096826514570670691792967539490623050098059112836277047200629691126898356875421761944820138594005179304415433552635387309516209488384190126035365306831831828151516841810887457248012526415065078859513629778897798362018388839115381151113484138743744500539421197010791825303571927260526480178759913767445265481072160594852066218652822864618068660903875942426540675650519639224473261591682828487970685723328316702140549977613516815940010814088966454630594724949192407880873035964772614846801084660096338599645941607080001179431084835700119728030751015863195466687663079314621172156021834587445200413233026098349239945012600244018905779766488371442392177220832220219845856673499369665232880777121423057418988074903831759916851028280619488345039625186387141555307223168444220455864582059747398363406978190402751729779275289685609460369826039561363225027755351971918335559827029079468535729065711117695779336855030318101882619746485169183738698034758788865537758515149225821480835350555490787059475942673616136976414902969520965888777917538944186238897310933195801928323023357316099691208027561797369853702071398637461645945422529629885439686544834232399634361452301224196826021563582285816587677065889541969540945902539497225263423613520946096960704889680149400402683042518889750914868199110873988014752354593653396295261486967034660064529645014039034924750035590201544101839458112351562722760223536989464326127787460568634337090137134547854222821533501735182239304069081361658005056455653645635205962051514704067400541672388791954664301119345911114719798576654125571549965428062537379694435978121924445119925335541944955688337976313155043044267879287860767715582885785543755295277342493067654292390934193679649006784265913958874973653672294164438010250262829275314822237326382197432393506123209706613997388621785773073600336501713756474420290225179504195645298322405563890594306767892199231689799617154480190101940380459480059441458833620571431772780512493114247396083846456200529501607223639968611270899331092700584263491615342245027282156079157085551066644501057341418470924822645503048312441214424269150296707916716306410883286410842929075215067807587421572542342342977306452530410803181759936174957315015419670120077890981741882319610727629887406828397285037499210981720483881615925143114716252906709431400433314366492421621331356155227673108917433793605389915742885879461204090022679576141194908457212047375707527626001323114904878324931899459729535647868263435371511856736290271112607901059666352377541335797917952828343059966882526051401154055938135595748581933934053253086299750822523738283193206884229228646873913329467470647737671054968234630772180153715833653995568245775039770037938973085915730949298288132535118925076429250737473035669662058043145185574705490508515035536989787756973264318742893763643491035263259013050503724613653737319986715113911972717960085828620819527920388107484641686890978786471922257713615382042647945365657722374338215921946326247228946424814103851972749278295838089277633172892803019322493733391513968875196417340708309847763892460878069508944196485824734443600300810071836665780483500079599849312652833102274793918610288827872999339787959355601520565804615000705857148686783672072203164361155700462764008156009123107186944538562829279545177649789317980847472750677548290839685416486949367621808763702542290990031294032333361732449099979724232779327834458163087033905926170003357424443505316336733452662616660564255407024532173957188818330176436113107369031809238066094935030939129851230504250738724282444552702976067702558025052335340767407903964448602818323543870980837365360657995027917334219831711792326608894674823006724878181078814031896498893770952162547485696836533906412155200036391864440176057024369975042576289956042892921579488531077017225606758994270363421711443136031969499162769884299498186262529620124736229576617133794542959091210076111393663413242299868079419672471472757667505268989605939049202954197027567399510248391885198426753216149236044606954698326406807327452722140123215568888795942821579879012369164688036769375043347354890129994558791431373007788090739923858201583221665056824871892561022258022831266013235471206052948386219634417226720414090594622729814144616877573440839875913126125317529765387223202526349123766958799774918948624260227407493727751903052661039136244677035576944863092266483955945761935413420674885194704250790273725304555080253045171343318755035682965730475107118294697378290551868234199502577087878370863520852518424203836797340624157242596252025417434020336531028065320518231144368158337620316669820285018497598423384811269876358505478501410781245146139914144167968665717946736716882371493281124312968647135756952549456295479058008603708958300317979916045656820752260924065533260479708658162894693191827392990059357906453809686557156840749940855272016793635063914749120296659912082421980458529702419480166079054006731304642875186249258389140982936927185191593549360035995956832552400230516407873435462948872090703081026102573068454552328793758602546364820424596032306769807456487322330047858390387379944169753695695032266532829311563972842058564378749771854440852934454750131851155620354789347894397345933098359244670725655142984558194463838737424305362741666921581463020342782211882781115162793022919963381024232880581770244766593034588831256157852988932976057473675780586666391333026526627111817932049742195703577616211984856951789978117386523343670988436633189819739565995110714846278851054361875242008359366364702078478739880190732085385053297249380634200637198186863019706899398033561034740778599385065887165219908658748594587828148558909699528403848253529478261887085666505487632047070210958924951294616989108254471649609572877327281970698501431762827269861470365290592368527011974176388120368765242923240766861468017237735110774452976904243772065920541198207890637844642904699948146666574044507511694021065365763351259546321970462843204446129233867645669822149587820915278335070534526453812327737390112223891135421900919428932647522447950517529545879324257906763007522690501095509794324545263592234204638364447347228210219868458100703383635894418384917540685587738103852634195462723829023918118216761150050130338373382459896372867093257723964526943760727227751224012889510885861647105879337016420268858031904332996219013534971005552507669017863258515862863603378833192859929243599935452932545830174427632391017026151610349606687512497401732413198339858811908116524345774949627951521006633224625354173541619516214885385216542140347648225526815505011903501083643419004199435055783557386182471056234187648122400955502252841741221306603729470174909621988847934331338242395337844165593067877005825787358083537447795114279924493081605736322801256589543494204516557821351894987946033128730054532723995550206215829858033561843392415638743506562926240713324829115675713786233157346714648773192511832599818162834428676024147554101459334913643119217255372985457186656051942761014764395151965285648239702522189523717271960251970068052274353623976706617747060370140801310797762741156505362722226224078366729031798736645084682539212289490662284843793189457036668741914118960533914528339526219416114914265597755083756196245294157163693445764536465046885314281648978273064485261928083005816724756398133919375928661145061335178765218892130950795105404642510273484947140646455601439663374800008827957054004239430121574396087854408016368296740108219930500144549540119217641587061313509277464001418343880769119695259495505592024732943710892082071779544547761983765170745634185673610613298721798819307400160917688253124178888773441451933145997134917065854247711931980790491616536632674141505571192673547592386661835674165197150135650304745273763019903322819107413670091682390204462081016071959997564620669857130886297030192316484173223198107016628183095484059261871785391513254152027475825839802814086080571935874142120025445079002013415765415268633052369398001240990922983095119449185572328509234701649661733307135627993984729059852614906199177064705184168588056025397794879193338078037336159185049851844310789924880273375431472791182168381491135357940276386717329122179664441052532279137111232240762436542226415704759647999721711648312730215344964063374027793230803088980552181146190154271871564307572779635466492718698185332356414880873601437629839084917157692871760029722766800183600941432902633344269599266164486205188931021003979332277997753059506091187458426114225917821920801572099622703695580344134556604677608511046319597523215969971628624902801311585910197647901865467032914176262532195914461436420950509288536487554066066131196580514199971259715301884241886210657217212305689483416000274406447078458298439415109824512043855741562512338327540723270939022247698800710887611313191715142470374643744707726897935705907472949686845299429931928450794488104381605731918236669039928077010080032324259341375787677630590201047336047216027279720686549366432686066718473221172119822350785724717241402038991103836740923737402131621673962395915118871651682793735323745927276026578692830743298813060703704688754557383340020980353593776422821912603122045252939168339814781681289536080007088249391492372018910885890363363369816394592124530330700323620389819150293774586833516103238904743766373951891024795294238737384677923830219127361267173248209841682127850428829259744753538814313941110683166310388636189139479126252174542096802176487541007228446649192656724276021740429909992995276090389416476672536430083640377571423608138112539245874854554299270279894572010302166788764649149674985181096181664805700654853815229072073462608600210099663878328514212390899236872148192254646923971935750403584509679406992847101223112735874518425064096706636769719419576221548986469227972678768574777832618940408765382345093367640525785988731644275553903696964349587707964883915301672358825338866629058228165871917871937040794149890204874614707156054689039321068442981916011365906065214795228203111245751201022111529958880229473078419645898379702265127223136342655036328150995324494673633591982697073970018131554640008556761387888426863392219618169435997155275615893044728027775881175561864217501419198010916926696031735020907341007030210796064424107336844342612702204341921298688138599963838837678378383561335010889293223386003925504418226999746862761991043966717482945867835054230015333943755770892634751139085145733728150231626682877715458698686792448170590140761995448909593462796263221198260367756484501673464213812886923884577943001897711200937874363982765716654322565811766659167961145645448864676749868995805553066907175460333225151778294365350394159300684811858756913187640641504914051554446003805972015024966816346160077060031598817558297300856746873218361699891586076383961889276399579217399573984471113017341797923166140407448450207970095205444161919073223860076782467286979888051614381785885832823494004979048188256812068874696701981566268433806244524254778031628902990623584790288060778943787690119129251841497463232484747748022462608799428255935880499375818259277799874109864133433947136437252096064285798487879323246104272110466333464607293802679370689901458655659619206642622350004303124658558563051981280780077212153791543934636674687194410669574731910146959496833826985195796465585381687030477206262734799068613084828964197057056947618222581030065594239330803813046535353386935753199372301585670663090103720810982353874465461373818806593936730688672688370182673684626537265896668412127434079237034589416258547464134435062218663126843470346455941722862300527899519556701800610594734881548607154290692700177212031514515009780192260911398840992409772077369023433569254971465722916957502685153599643262345534529401542992508803806057508249048151493304686177129766394186045367725553261947212804000568709118598755332906275468004692231561303896064109316609680088056842429299945567356473533827235973445191793590669768692727803111175336724064474203400716267695813390552199328095866047346644472393054241936172412037871014023064502352395338139612456906292996083005152113897437106386232985510692780800002749442211724628650055072082662606801687208032634914874471124592084505597697377442667533641137685500469294470791913980270381937906257754320919779987861706584776221837805192358898736834451750594974775773061467081935229019447737007071541000617208363378289544142318137662519877249828906157908535089990354799625042148815962702578693255745655582087032147837952044703667196909135965292487138834699533245375286755567969221313672156749518922885472371479936520998439758123979511488629941945338630912771343782045663541543192711169128264866023747249785394639216863690826281268546332806116361489179229664600182346563549655814563054516726506777230616828430987406364257692881606415433336723279566771508277812279017213968341287325398453920740195448428999255824167703337195853765577089140789748662832732396283106611366884449337943952083927237063508987457509920290684408116577421382603849177230726297364975137328788410907320071545602895227094464813945805398448116227227082094902828087376742760325457337837630017280229727684324164296983832768848364159525877655035526826399344560623900603817008992065644191940285942411114378014796113282932969478122496665606613023046114641545007045481911487910499511404520971975828546941050034995798372759960478601577505186970288591553820436583990475088567417930133470138311715344810558803427277565847324305271043506698634004524742743340725384206308837720472545641761919804401165727375740495979581101869993678289841210028983309173106022626142952080917166586079746807676586009169726580523590921498662129751558877462398988835854295094271844029465877643449133975562405333196054401155481134761114674641773004603834111328144576333447690899206450884334747261302349839070474585064533123291772246508151845311211671730073343873688814680208896487419461584444718182488088156513079676203357052168786020700236703181438879223115606248459771314921407107363021765773702399817102070075393468316798533174035136049086454054234093383696105205751854814197602033251818046352414499419952383601103616466900680989584434499500756800696105055044070669442475531079537648262368975328994195262529420022554517579046500657130406425260884262291818826538627890137010710578378217732297547849725291146965284004065006436272769088273144739788149028405053632127840865100076209272114704083310938913802256380746881765320708008076535265788800687548007878262885050348501809954467077921167507205454222414833085660682119182687644252994274832385550161150424558994520714758319609852132197505896354900983016492859905794232173935540720973337564740845310789537796696330355440001819975171432639000862880975543029276896512752670735523661009999459182418760100002737952454768235683221042063032664475457701963699726676508538830499581484183685527244138907726753128299113091119662109261821362348929593871124046899356897888906319864497650165201754525348224214718830162148371146293945599660774872653538567554606241643272096703639989866414871909914988049014152010030923124813662001644779330293662319603955770107750279529796221515759637097806137682065366571144349862550062441420250932752167333039362001496402180677017720493527175078054981940406962686899846903392607718115598881454836112837747342238916767292473029126271211039054840363417018319461754775993589699522124151004187987648811059626073097367829944691879630585337830356242540862027634988809392389091822689785820152437546350892084397836312685762679169944239662282665108054765097683603293596874697167537227021534746864703549957682350836698218892496666232589353963315848605314399547607554147744894822981927697019438759199897826877361941518251322472692275708109026049969017394852609582504590849436374515618000447320880411229752175443200151832808026521579053623425947774266395289422570621187105347160252819581293442406965365211761710262864866013124671970481759580067501239930035111348646934200182343688429618333153588751656563651639276297998704962117373130582890575770618690688957339218346095684113129793726244187888132263357349269094939086762308735692348927512012767956170931212219998779497777030566283721504202365197080367148000683769255886635225978635850657925872589277618254384128466448222214017532208497703465111216843725456011297456399473783424433519730465776770444510803520956983448514014226205431882742989543488634333537322160416668671976635671352113505383169262499548387041549718818646496266132379365413019631972661150139401233873787257085307100578963818650516007275920695822635259347057639490808897592590172822633781953232744827340003688336196119719369709485073236937004323561664842130177182204854173271629536228381368216577821349710043914758724315279696399126698502991735639726042253765535375311003639013722545434540216787812855971250980775319263081898091203383730982189031266876416568690876416249466396030249398770054363337448293124956053913678255927914346568840855631119900776287635024786008230622265834175135205100195463874317260365511280050269415093909154374259964840096143171556133341212486750353803393891167074920849847985937759492265376518353952344262000276851598835282704209074106330677670621150264009394060022695969624258887401687217644472071644008621919990382783676958184292626914669173667416838912008589840321930892086612053332010096120394436502585511364957817516448852636599544058289369240986565971044827161265988247023242864301166159077469130017120467314959569003830215010259510223781246449172227791282287900128703635847387272275079198392738587959149291797818240610901330472899382983635207968396610077834497162209596602725066131929014833741980641070484282306194991105028434313868787718075782779900999117819601455036887810913923989712425449617383013938066219887500095842239605650730060248063703059302616950519625241741697368518246610152052652108267399472888998159154397222741810370012063762747237662469978679169481046851783892850092706120151789053369046439256132635111098337905791395558770620493667433264485839890035859505356332671663739425665090600028531878428047196305848058037429019398272446520800283902129937509487585355436190910861800057100385154985792342339641636159608876148110119902060435392931995439853587122843808772343978065792462128574353965100892649664443689053738283873284055015202098661586429821131157449797206311410786996671285008868024334838856623426659195856532299580981651890978017612639841998969694602380466502241795738634388889758096986422346282606994699856887246941246329693262022834482558621394149071058877636048948738463113103852200895073000969177102071179736405852981938078029534886742398757743066837965330172909033749416888684747801132792873859435925054527598005565707711705879587182147000959941491622001753623480567355361526873591573442792919304028844108841766847613571067719309642407921294066190824298470970758444270794242540030189474631493681162134327835994536156812837011732779166125420569232915758796650586079538409475012965973034942851384233416420796584103677239669462333277163200717650330092359794127458880343617625075024751282108083063278390644782952584450432570357319953924684338254682469425055132205777379402142246256612182104815944702645114952684358820358963891872313551570936621191659073817722756100140088256152613266112426061028306583267633454248508595792349943451377545355936963316006895824025979581557486379396669522897187065939766085569499883707403430225753326001222066568753521983696187368213371359960630120166499411225852006357938640499075630581066651275957174141039821971820030319867915734228656123959472765206242592637336170016747247015022957880711275721610621320246758271102457082049845009603971444406763199304429799428189325481542024008249945269412539700517728290041507929744549774480516749167176658871607285969749635229240079225906316252394090081763486922397517594042892979251895592799767260902349491649906782107224168460615560049519833600398185375479080511743837957825428675738721587582190607464709265611015776235339264038903034640261823763324830292369951614903837809747148414421360531074514541494482925427194732756838607052400265385829533699715645483912710189994464644007211792475182333481705554541146149837704867284429611136936213015347124579756464383341764421750668332706262237814204249351092145740866311635808573703787466283767537530052316400133089658970582022355383285498070852296902899874354316366499580401674798212035053320351905371468337316924975398582032403696691782395750191727638030431956473536578795214463397924710044667986822344147407179264682270046981023370536622502365384264046500240928801492962974259499772347190580184515564518772755077692226879924127750611693322243345989810621160129895753694926764105144801158226286395439151935092402568125627450898743618712081200280342890089498478963251297072026909504361413197498558808083753562023785605756481314561894478842022569044072960740441980116216832516583387962047891879247964204027129496041013089712792800215064363972172026921486127406823183878126484470870607552474132724963626289832832069292400663363473096399922593483213335768062279370132921947967282654116834320805812799765255405975378646338983605007386827692665426002840779687614236394139135141666597959527103085419403814250343499163800290224030250547479953443134526667923288900563530204339071610375008464921918447784545070965942812059490865719793944536208725373463206974947458905875846346859479803297100231293520204391754984508112581307519891703526737925965994463792987148479992178293694596552938775798315829741493563975406992321005654871656399147897172201140241330865578650239866103177960078791164740310105769989818561332831705121979784949823477655914053733647007350866906086197012674932802962380472195867575623391458271191687638174696247721971368909592974161142279951945502415595401228501502227971996829183305283542852595561327526711538494371323615134245791196882369725689700564124556371022194584598674479782336108552146790752532456912381518106150411305283676364290668131522238042304125348544063225713110938798035233200564069471472183122382669166134502506494045313104111559654848419892578310798320990659850402586247587931022555651656144609550601228503960385527060731502358955783609702189825985870240636472957960422128394853902326618307363863013881408186484273814165879316159612661590975450100488696861355756981418617175769028128943924964450717650803561837273158855252168352138948977495863341797414477759557551882216594201995459463197593926318597311660172373981505375580399681140258738020273594195385897173009193430215132350322371112978574743480205045545733619054931759428273516495632843252453334242351643353368413467752647938140299090252567379810090056427517817485490944879948617746771517028137425661428602585267503074673684361768047998391654200565291771627984460820690313384941416391108253969181246579253933761196485249203150577883294042677571385762603682314443845277408750581476586114635370474045799704814804550001480232985030005893519275588620049985627593157776207585782191845150530675087691523661485745607551739826982088469445331959810044932310151678891675926020950369993025391776305824273505072482733242214353156828678685952556345622778840036835391811351390997495992480609952762355049291947944460111730985975465630874646852594267557030118584875159516042941589088442131045934407422871606873626571064669319345123166346916356506067184550807025337375146987262284838697292506104938483929297325732294039480273249272780480123563713493466075384984377045859737264065691069235067086679414926673970842928365986158417016147836643064021617514786542100206322691506349798685453146792717328848710623202342990367901477929717182571003602903993481058323234809671429640748168577160138105264544421568722948754765155241791330036888739325362808879944158985249705857735331366137358754317612022071093612883608035683845823922431375775498146779444629643818058181956756273017775574067910287132761746888111109477053733499287264201044356318855714317088225423072133387502946593423633281511256932164251445867886949140011196243490661961566149085371545203338202586869901996862329533699228234026134925810342970890007749459595609581887984111362131161026401795201218285746728189513248788029100253227687629578546051575256285400922270827830524705622357473482726948851140045801469770268995343614197318606890229167114595895721197831089085108541201165670788016416722537853417889033808436926621588529556400214340151686278051606793332057032726037416706986250019498783872200064226734288080048923179171412184999300768006337660155454446738648067130731350270708615360018150490426949455102902031019855283780307838934660868059824841047058093283328333081748157892237237845065707117721981713734762196493001416532565313655050076706091184891698183401483635093002392516477729046795091746155728094612766648791535121273704981667323624974173702334350566644904973523706323076627422412674868130195145983057319874955086420833885191416160756268054022449898193847006105515852982570564377423198468220685899626893567460641506158309709500465675865020571048319738440850681177947252794788355503289362737181541702695362620938342556592039312575128823752384096605475375834944896235167119024957606065162483709763893880942528805231557034592081822301632726266910749614626444353396268588350563838188693629276711645502737282977892106908283282679175200571753809860056685580211048854881579979524660725010043400839454111920177121104418236937006383468389382726989774989952400571371531282449005889801103801591707002786626583614594259974426391326583631013087800243444661458773148625531613029375647235683837734235639582483167587131703194997081741031427733759009730159367127752444169703457106789641314407839351665360385296778409109754794088441435618160159014852905349591422325873884798586793037063998749086184231533946273446846205529713641054146412561562998612712387737500552482248042559670608762005784551266525106595496288320276653861803969705875010204056848911541652260913947131206835248639126290079996942614400166764743701051266185962992684948828365827969858062177359821152944997093167891409406634095007946870369987726486713215966351243236849156410273674402030465753505302625815825279223344750272350489121463237793586963743172031471716418465172012408936270953713003173689297804651420723055527660693687481692419327622706662018878117466195193050553425406501580612926988991537562102334975127923431970274199098977081444745028673759862235957692349054329428129930177768448667366827396458870540070113906222076467991461103386499438224229960992521464835785298487491722235576577331763272763955176155376712601909740202661276363341440207240828385103270984669953860962719971466934289037235114770005461434290039004478217482723247291465443027285097897203031463375916429750300329193475569271119779385972211772450875078611427616920645667282264082015246559595429743216489861080110865813746677596833917961167008291886554176020608685643638842523071162280432635751296198819714658841364183344694162535907913565607608387231904242917592630521822264525427085219537302010109646266196984819548287892904000598151128186981825776629384058401379524442136215595697194768397827126884839539284273172876374695535017041516404555587953170277891243414755022459021103342409209494774980171686941589070891255812723703292228899922450259356261468412535557839777960528770412085136200704615978864939853169207891782024146511344456109987017375996037296936577367790165438170399821838038855052143919694998634541454741792497941895678605208021581025247054818738705690262773840539897962829522310000118978219697074360601611111686792354976581087600694685395197101686644847960347491936522697792495983044818782800924471507662697649995350217901022276873498477362398477427172048760002757053333432969469682793209148098342613544139497880744916249779548225560351188060426640541441388590842715489093367200762276108006086365382086263746656545087790609274149041000635750315003382716228861921516223798002197406795078260358775762175989905061691763946278433840197852907381848539943699527635337856045699158035795843806477690150065241177985839155314727426267298848936394128437775992814890810488194834539149995560998809799154113776849451812200013272059754766515896204687461038777389886646182290459535121494641517239555756808336763497041638188582735906721297099637929003284131782148859477001127762286875804483546469522243026752523498278175279084098221922546645370946170618651082961781642112969655412762764056560810927120944015662500341865429780209499573545191297603052833123960960470914065355167408359277555395545905696193083347172698571604981015366856861532365646139003605016455702506629454473997514822791467047157506513503326452109716609341941841633293316975329870856557026280638656238655292136698655025684187180311096552393984131985333771570035917663571074869788061808239357703372340137060780838303279453678925802346724012019042390396477495085163344869045062377143736682481326385978108068175124095987873086924179460319911218148514477402149659119940548735212112271059533038795280444055902462831877470377251807197004567785004973178264703042370170245550191949660731705175848680553102159609939626819855823603233041176707666180535332052639671274505118654295761208318048787797034615131104040483285794531077448633918074130405322189991688437641010361114052311658290393943354575440703470125451816227264112707939333334808311467398933465572508224096054598558649214004448358814870570468003101993432401040578453793438362921722472479837258816112429656205509999578299616628890717493052462945194568841266027498526046988438826546128245531524267371031230394915592370052238257864706752449219624636481752200024529853103072564568130020381763313388642533567643233842141431289353654130069096942073898215520684954345665747920735235866560411069534475652555793004030608218322240772365161770708784336809754907890758892404041563449305004648258920604243791062852738770598473721266957202423035527511050463558245525678327924026904952085712527756863635333345584132218601843795653874441204961989339406075711770852339713584737794119948988210204436986562251581050809748896692711129128237849362696243764518524122984340521277752516419867670169094450055248695987561553121240043459466156589158437835260016841780050910938385490659041746461262614449528529965752889056835325636039662039474294870692368832454774942398224239357875282359284901979484478970659083518829205145661373728988482287587331279016848518575509667254469661405279028584874919805790682330950586657049246856729836050956366198000936156923803118820799277324872190955756052290660798050002556829681653749398702039316050795056657420763604544393176683605711118813744854163709714999654022454009081478593161370404102565207321759625831436035474448888145406999238732771988394831936364020217888751619310604341763332838041183169736306194889345290990223136135586848439430728818093964141270169742632779562707665581885724472456968098673285663015988257069237370471660134333114090112644474015687547069690187917971652160543716169023702625386709818766272566184993068322528050503963130149470793257115740176129197237944597096076737802212042682903924572157908271149266736185840391019658256250193103500267637166500843790754960920575614331038757019896753511753006076975934711195953446824305097941709082867980357603064177411840042122736333223160607360386931401963032571318060842182693464250574880055706299570721202746769680557266952157093160109682246042299096345774843505775280164296939776920915923073311049514526777220531304171942413729160522911286690730734562571332171960093821584235330130453825913825871084073068297052265391793089387135361720048682656840209397535175919890224087367206460576918880598679695633222561434598355021082887385393333742117645901671166071036195155542532381852195259806927394961276741835213224097885026802148081940245900944506065076519116921126733931525131154669115309826070792907260591379406329462481140824741529007841294634097617721420002762524778698312820550513195571360590301607913929744456761638090372480264236382013207267478771385677207704831847215597578288252107882708311307332171083620677645057155011205100765226457473347018119001509029880265203575282711931835827069996775420613064177391404858716390120386564338273475158899322256823239643373429877943959854790654086723036854739521975701596232133772867760477520854453081750905894524103237724705339051513223384479304419826925658746395824722182030424079117969654954280041904759265471155127556829124112134252384643634391708162102076827431282393449405086487021733028627633744362602927116025806191629171844315332455787189426620558838679515068743448656959392413644722909903523602318298330539647549133297454445882730387809998320473798835777117775372166732221548809463362586380818390204443619797421894639059819416356390530643722318862725212799241628443697348429486071283828115589720221437181755585215812053020855491932851128007769061612732262115901172650371619332599571228604168897892625668942221571805623574359934347298272473987991601613810227529997834778577553054701531893903083739741713602178605315101070311781764386496483893705772678901009928615332345595526586601040544993658688394443985430478937683599112012906132679657634992041006243918845562571700651769641306580650107095559335413969637047494514083927906328234063463416552170926690502136607505809499552380194080305012731220708521384874758779407211835861161979418209324053394461261794998218746915703446256801994420657951756842553293000589227527217436096584339440626663004777516670954414495099398457774708704834506923066812393550826034100305557399180532806981730395375888970961669397776681051959754690303242681712441887000441490028444168725753709667187701693352280288388516250183286326560310446664887318077680113869379996739863792327170878727418361000053638331449010999624189084464712783006297455738222764823471088347075232245912681704319825292560069994975124432775537644936694598494451879243965305489589871734328973297142506214277386706836511133745173492881966726719231522220053347313557114792414949873451433025339769642016476120774564871001469709354912481295222685859148986736368204160963410384705333468770085417047669090486846217288225953125750970343288651994215215052843414343644367102441681045843057886819662837585665143719323941610911187542058887177541592403512148974974758501291056659177113465842698405617235912928876718106669914258583786698679576007161209456917271925843179223164119260841778791426426279724844529527292561996356434340111989393540076642016618585891601688742474984268943342024360563041907112096463468474175118333657228667156470498968271844901165726558638159957980622388858095438717786963095566611587618621137932249927744944853122735751750832900301807797863939566187219841362971702562831750457034208942914394715987316700892045608213899727984351757590425791604457095466156531363015372721853655386414139997730453096659948262897073072017361524078408384189337496989329749270222585574323721490625006457350578223254806726729076662541150525533546290996814311727825792378682223122636538102032432413157420861245158087651806328777682362377425168072682697708762190061126238016760793350931849518518896386442090606495807281736615534065815120880751674968159814112453360390652672164007366570459451876633498548468516498742916627133086020236919256269682467563777418029351793812111287660076516903028423341274974883886564111532410809996353933545156182796883853722219004984055011879403397794196814783541395078581905381638345567268873763384976424194251434466813006177204056953396187325941535112286802260667339200530036676128238574188573515299085459152528309452669935204114321707397014063135218581255471829347922676858548174336296844436101295819281494830770238803531073636163203642617255682477477994374961731583789320969594579013309032388478444080930923487612057768957804062910752884479168812584048772907396720485190573879892645150784366378032094946176544643474544115070497924053564500628187202667844411251798465248122119480544925867636905491098126551191130771549160826819241424585696676749156549236145003366017866478275232935235090437998173832959577281590101559727130009217046663505942625456860317082499731835796125743204177561702976146095017020959922432025996550700201071995699192888141260112224660031074248460436455718389161497331027245326151155879471888918064956747254316504338963448062249806084393365489915971865184098769919715607885654520668886590012974068950357226306932032832557693834844176073318131308692307549522856583462263477255420214258126867869523945600514090977875365043048891620116778257079913024601531870616963512645326180076099018712230618035284966369109532682408213210839913940944360028032082992117488898183082236344967583558604832434780122723031499225253634020951548209097599765041636675981654014529600085499446017665673214145141736310201682168690010113752920477467797110893041757203408907060137013443122360113433746714698058295202539375569247677637667433202261697351426027264920942729727588010291138971396746799146865049964114855263244027487055651147323103523181231197734863364076759737832929329554927837947473529321690274360045455611630382697997469353289439938503865128353031502951846637089905772815362465309138514099436012654489578039378205383500696345600479005421649437860024102240807554757760932408851872912211830421254012923292224156489775704690639958628035374638298470800804954088229845939156706553453964178247305930166880848674578184796104152485028400933911019411082652742302047984279737448479708414506301136312420870033210915213014218719263274711207913953254967748439304149357230353278876201573031821008163036402328960054649902250091667967373227499108922598827931592391705942714075977493857865808218468424987052001540522275520751218194647514707727640682231214490291220004710460574991929247827270631145463013523299899364059009082811399288690397835226152987373957682661501809706530001880204663844878772215348214291937299140315778857972695272990168692332330186682126369161641191575731613792160050886342802247689357302642472370079304542834155448322794812290456685768471038983551250180232395746917760264379011192534498611194320859193128376224382774647331448587745592791150508887417396292608169854791680365770560245483883680238055261030075326592863706242070489851182628161132529134405132780998051417702328573498317709458325274217450139843248708687507329446353725626134407726016747196154131123891009883748240410792514146364501667718719897675972207347494604083109538107709938547968550316901277510322297934014355419476813569286725685848186988379408685775755198278375069823974317404881858558336945095834196498411529679599527621938821107011178054907530777869439042669630415347682677233474802453623544941252155685694620125277299027745272407632743342181034503520870492964626154294259304599167388446702294474161463311821658168757538791823738593367575463265743900240820292659706699150378884409112353688550845853955416366773849382875631732313813812364239395917138619233505005085965952161875206984161733705535129365201183337969389190885705428680638070938132707856675010261510346295289236737636158493100064533470162331496162586994811131163292438015851850195180127534288148511771049359522524462962898615683425717520244945896218543331457813095408517071629857156114462728889052686936984740296069073674570938237243355466741723954616369416141645086083292186049206052025134009714999760787990000630875762434430744099524254873083181527639577085455041719816488494341452346512470876740379034527078732817102044109477577164041525663765799017939334542065005441287223150726281850684271293188201635593234397285408861181232467239280909000387416940545797218855245413862286005828231486295904167429875730788506130710985820122875469406533560042325119146984405072214756566897023695095004988722961954437624358218515330190470723950628731479485603201720017063264690102377128447965896676432650688211374605726511631924877632266411123916161895643451910766368188555520562965367888941142033496241136330032129309692651914448111508663423055034159009260594885844867064514224293565263031254480228981339707487167246414131154266592482254948789594868982410302160844622338814594849863757052347862755807190249521304844865745233828867917028999745619453010871237778834566609912174442642938711024760939417716032128668024611526144825368271404394051421250304191380566471336995861913071863133185320199149789141968501415934208107465118548225062538442885513827183202616002731155068268649667789137219032997724037046493483352083050304536874583775999419238337352040502340177417952072634190360824803163499515313438793087482923205917118806161424448338746651207500219848301843075402570484399152744049597351857566918604536449890356362974532318025831385967684970619472687028693729505457478284341584117275261808783775982591273335566846243364493294445266942684090622068760531037899539233389837537242798476416157584045803731760047470450366981205245389806885479522485674531171668218607533863996009660598130212829324286600216986533886788575233912427209378730840989204903871457459314999993076202906806489738664508201009351367734593035017172236040324699217031700079128295263727792948351910236701556783003006734704019162412928286134594478235064226437409914399167237161821874121419924496966565533355615130031041618415267332633250164202184723907568424676904600658511472260859096045246133005388452234025146020036263520419611933395805160517000281914298714520535059166872467996460504667641606800342533047384473918911674835817421941510386807519874372532310681234228007649342882021831650831091109177480897094277447858606443329448959104780657903633785945121110431356242172028648817600598132298457824022583752239979445329760234406244930175062336720560338130260519790816296791864987024140389815508681403694502150103279255983025009356822284427962389390452596160512727295297100107051607566326721580803714009850762122345796700790778685545530170273343465952692811290656352872292048305973870353553902618545697669477052240681026518543848742715469580391719948043166104168518771477241258099169403695096436515506902692625173398085515659788370665962893108304992495497931103874873154684946219914920014567402720376196772231332002865358369961987576501983446939035671082061171288090243510067513377336918445367124224616633850087201706207800050853099556659889166143862547050196045991106327737078618329053706363794392402208110143728829308914973832634773406660895519107518918881648846516370049508484953216130279301954973021949846014215734439039570956849192451615820972682227230242761525570127575344725573394480147659975860283558580760926061505618309101421419947373026937071189642179244500319518471171841651127142881428715335817171080658261858690808569601201188781069064122491588499074208825435137649710353045230330857841102682099896002568082838497405836985429345864376856845142378883909040244173520283584488244337599348050668774083770593487523405056653211895943385449342785343531339746267268478045483468094389525720808510621012124045729827410188516793958585367816500789833866518825223863003520819697584363874007153158565506421361217967055421876467922092767057741293691865815598203386004865738652257079545211032555609640787279023087249046114509139182163949194529296433342598691260481272884408737550517198492373361710996407637546605501375713900481035644764762533824840257932574382658031329243247215026525244027176122488423488894757394213602926792030314100068749038504968970711326631005615302407328578876635441545428811944046672603694282287586422955024340316863539393118911492524645878291653310671536940366639487924342281452042323219411620577953362388242641575414535336620655977423417851385390972087079850486631854268056137754712802586167894642639359784557048714110795082767453644063936301667697612190170153676196185468367477560571134910948518596851966982750642786776708577742510140613812884247726718856680436014106159914402360058307339515271811696765772474478376728939385394309905708548586688474180791172394434244622878666735604514897249545924890703922771267818082470927826543657523075320655173217122015016738147669255396955922383609249050297466027850504052949512547220360633172357079441422901699620734959857877858726559804613551316910439552100630424431375982538568234306024697441621083163022036383770421784592676550934181926953513496271150563796841496686971273629128748758865732638591476895427902458147068167407705274966657603308827012064497999193172658875099453138418627941541173249901150736368662222207717504290271044336024931157592405922632788989844304703343043392966756931054268888673237371044989929854815461077359252948775635938540969453914661880903584667123743997398961811314506750029891498621342304169742340557828521525084282072874634868666933523877054037629750856138168148408857892221229546125939833237911972501068394760040307658260981132583042845449704616206433908293048241672585652938009299828258164967114498190211940814654330720499141856038887992483174716756247261629560340794061073223225226640485100805610735713153846892219792525980873166230551127651962604264695464517576926833050348013762645182510134090423837383994987253830870336030051996487222836681433683582088333154858645006212656064992802184459899989209651066183373503015907633922421272211639302241360448157520333910500418366454049738687258164754958083282412809886777395631863921632374786084409965192270175644202569760021787395854041376727143752361494264341335707200415933753676897842942327997310747448487371021732921625608065249067230415260146082239104416787198492303669257739478850889352287116560511276794399625352626293553548386990499390214931704557787627662714092767876112066320883882486356127664491413084995745776455633854274462373336611462405700645515665781429448364934121975832550680968312158669121985283122417890991179684029447959165866271639674848663078051056768765253865101362892207792136684819034034451833957793391316551154025215521991918650836938367548121347182126532621836972938169629162425922933185364217570267903466454421247980892096513881807243559385589681353116719537349445034855919081559548010438356808916910835375930225437682104413779124594601564509573212270730576781979479944071245572526071885574524288156017259507775192324901766326843792728367624989393936987667187259427222362005185308264642798234876348819773307378382885933903930722074855805859964539783509518174966377530370917670329559174290822697677987264663829062283317238782733418675900151176321154915058773751734280801980756219323197739316558848274384072059546705483799923282892379048548801759560239676061467835922146597787355790587738517196029541132269687626878830099285076974596772399082774864204566533755252106540377558181437736685406788901874674501072746620432146742234617669618645691381269522470675292989392950366227305902953110957088665981643112990174829890356698134308265765607028537837611827659030900979326653475624236321011190411119215629824534020105936910069816544041017145188034031571688173217855672216304120110154425576658721627915245182977902701306950313045810925728019069620561287896777585645389288442679509105954855751249464463977992939495792466187281597713072262351171404801956486049794431243937787601292956833655113764007795094539389069994985804500678735009960800885989119263625439982865895633059259961151410831803854262357559220051033044672922508413637958521463758838059242288715938109688551279122578834630814264648724646551396662768849849856337869768806148158817548267619842386130538660802329137810309422518294141480954579783452536111207349831481455265170547224853688016719306159606513151794864484121847808532312323975596149031797855225323582469847509020184903737199425280641080149026501719779974690383540449983080745376203126792678020078539767950061398795920648746210592052029978214391114389000965420973301484964780116412750947313747514798506296926835394099218518145497303847529363241087048731423735498300139700567567564755712046167445753475821308088340114050170832455998442052207638486524660918421431114734023960005217867713719475790617713788657030760226179577368296814823286330188246258821149596508071263543798247363221655844461036488344933623319488442671225056024388848047609735476541306397701316641491559517318983804643596738980870097571510066298950676892304585483042315749572046431245235622316102501110557082030923969995642777202912118047323100175525960618822755539465046923114613071696554781795113274986919765280356318367040947594774084230144342638791329004455666112295351568219196655855943636903815243545611120302093458012100657663490078297171105250219666031585956144433811551659582834489183006223595696738625966099318240576933892184577400895112942001618730721407843736559598672532798121065124626435340039455777694586823498610663073717095036172980956697145229994879316859528158371503856020441905651443823948726789695784004612815298053172949167020757672431515921098603266922830463984711602614446814592822939824093513326774729216163295136575165200192401397458726552887184205557981526345013749218127495943832546345018170294135602626748597500025048289128378026080230657170214917436758297210442174064702416165247945924711414853356448006097255581886885341302662365904267767232280302683913465356733823381249583035941039812442049444407951377094757548065630744620955040073436696614429186735583214947034204863651180372605579897182769818117302496246081097344410139890964129322248294376380728307781223334586299746294775238717834852169105577756552192618363501795113139227745065126982541586170609169433352976296574178968421745564176335522334444415623698089669717643806268762794477161177259631772595562802005023533885646838899969377893214820925213260189546382426769819071457672224461415988238900072659574387705724849695448321357471350146853857847630522828763367851857751310697130479502137976351689173472081234999603957348036306070555702759689518502390492767225678009601358523015816228597798762712151765376543338715131908466104460651792421914685263511702895020030387220541339483767231034306235075173529470190877897921291165831158938776883659758020231125300610052275117377692005563250068719594327343410677138925660200874993681355849212242277556959003835419004191718829124902666542366231208090498727016437430758308463454353161518770651473912174883164619074381592159393883850529953522574492857270065854761968549055439995514659460560850405134761874172130337896098550419544410626449702551197265194580264326390452358142490931814152624524494216456072699602132618866315484688577438309791405237090497444645222159606905521949163502971951727863009989202823096051932688834197099747006736492783888512159970521030226945279848116938643305028004201990813203469019342442562156303700960527584467031930442776536584237895344307071785403871543676330613720282082452060152537209855254157203041052569471141556808284557053617958266647720097909382036061177665769949951458471949827330782046885660956579002338178464402716948620375204282429362370761756679596498584744066130088992885712332249244301400265420121885664132993576780239619429867592277490786491944255613100536702936016434959169148841158288121078346704102851463064403225389510789032176263245185018878631080800946301210006247960774758167282056381272497730320834597819487670022216258593652558705280469312420324583209468625972352544071396162593996473569567426043350636149064618475619053156721042600136826254351213339988102859418510065347610235983327717948491033917405980272100236532519717303129137914912580218890614795611570948871173152596224170907056735629798066147032626999732620816482057330147759779601929668236194958151119135180918466826244863299922702154280180009906897027582447072593058914963345918790187310064354442580325396725967173207801276992645190684057352373919091413235544912653742146278770030521666424551340756354323964174656272118150822678157394955652860662303330111862899460715108041438741078519579487182773646155383169286560334475668120508801896073065354314513584848712188124082032521380828907612869652407193547141197136740151928037213277217721570003047168278891359941609059967520189569951368964384149673639486225840107445527631714197741925188927837080882132730986007177318145248477167331603242865833505914384609681751246526146065182306076005521602375514980432903073627739798745384773614915155723044242861451257068131227438608601936675213454964502204777179832651170999357811616674115099245707032372272630048468343587412741984529855008669694200067414705978147236690452781860773303248969741504026260919411854791976639084322294489943966516013298814352366949692286182652548605540687508317504396193236815020588913156972000678000713151557000896694698262133237996233239127169488101390856900028497458605549738057310098642615209339841551037519353439821445766754499153711826407032321612899596967574644241802352809402100239946025350382476407374155935491860316981197160468802320024037917255554890833747483873686889346862798278049397299065200955437468190044494664332069983158559541270369138833637809592423002894792765629913293145875476554208913429586767055156902015816561789357483847319384246916093322033633893502825892145607952660443332338908232013713363587651661080091999113969341898428370759309427414886119641152295182570536615071853787705317666851573967749543858807932203887414873829569340686371100418614262407802932528430538524509021828365795487061714326831592353821136438639417429103765375956483768837084425519666701236520313706148662686946262586504773946232639146222004628706970380978030510178563983293073062834055469666807914463530221918087194455267340375606520560137353210785780154223370416768330565708091514933696747299877425359592252004437578789553583827626923657689594386018001895391562782500686805540579558538335024641821778909187588932669181359260148952270909116881624027249023805883879490459721157250230938716227499493583535652382925281261962488901337470962919937428213009615955021056480996279339227080404483441127951730139914016263230671514402200875883012037831417273596327092130963624413976592782942575982712199877068007668822024387447805214381273248901860762333751643681246881847751013291811117372528164172053487826343188041438002138768589043595545593035626675240563667578519672660292036831984615650723827488176293336235108340667378668099084706340704253716417339913404998246646365877695001296728424212695264277627024748700625837471645683410753982826956850449233224087137356595983983726009338722431316476947066734276026961578783382212470108107855582648064208530097220506047630231212479715311399424344147966447864726061919622265693298437281315596544520370933592860986085965577248137800979963675818810941877372416723582678415001966627137551501402434804928532547240208341989771362411068654993922942460389586894832593643445267140680733604983947553229671142025321347586033077346537448106732148232468891535416973146543547411646118225334403483889154086808970820397655438684000444340057749526966927628243281297696121564755946291271621321900364552769647634390710093248296939219279237874233696314903610966728528400290912023874542751106526802323662301092557881703716354254815486477072877390813241242996901797853039170171434312688380636107404203164058727994835069665208333340381098064808313694894719864611175299091288173296897673996344689142840193422381367013347037965105057330190992263647572491662689807269914231966146294318857266799326813636470162872920953509643519951778521396095482613299021635382705612146725635598973378412721178271839834253110544939763479488574955313229909042088990842018049750483467733558514775116080773415293433609456237167631665424684573020552939581582443520499112123624324096805938120411460432692743958094276240434807487341793567824305470921231186138268373783744956252853507834675723685533937168115586726663159385587770248876892072574560898331160255441659249238239678405693528515870594283001206667771629539831662135281597041526300249217878022930195359970745667846455152709133588100790739929869561447310099314547036237014996064945032295564148337463294228619409977048453472936380479238707392341672813622470154913221323041672127046233438192444160431811850901490503348930305411275241958875430318882783999281431687727960784137487664827239532165170798243324494383084154635632711261843685269031299354472901850330278205795432927005290504421897452529385615634131548633305874797819345700469792416807233598608704902709865240214652192892245287721592661575216444377376575127123960920024477474681882760451567995179717091287148953580645956424280789885596948181566608094272749880706490625950160582960901754551996537447135618703283905604559625027687224148828028316208115137391266985549805753850541672096163339587916901239282894929964953805118135183952451107429374711252349065285839241796131672685362987954977854122939502511914876518768347564884579624112575428057146441918510543453349313645600360822404797493110558684403972982566733456428507959050480289637703140792530090430828000346579284306076692171050226747070392065574642794106217857130976584219996400273397249321974025273557620929406324025197976129565350759941358785320725887205702044802011899458099052146596352713560707712080820278077233496132744102934009513341604411636869806980546755680726749490729143291828763355459888302723474745798860650276497633041596522336135470967538867077258047281281852130391050785405823516160395341728591730873972732923501038386006776352916955270836105908789585835997307642191167418943540429821459830214755505811180251366414921779710105041218725523672310770141047794730825925601247976573671846546234686152400924548514798564573851256637692516480112673812943978688199673225572337541924649698913241301440206521145659806700743276146687432701460535017051307960224478825003250244309196323037517685903119280146853977998510071054172450245530738329366033331773229781252790752115692644709954672433255785428236463112084879548045503600101357076135748228709328108115647839927171605250484759667285298153837535362902530724967991426699839027135656851826627058837833714713130004415415318843001699431581566041951270137879271416136797682792359650436095054915463831202180013941583055636114711681362688979028352649776849818207066697468752616216115362252705532827658366263653652188372757334976588502761677657786336765397672412747651365954426740847032416714229555799987003225244039578208529250512375119489387369950167081693361712244478163368159593738262515332662843665097988943155631763862007160530576773838549180467144594467325615468603392307898046394475249263478362927592094429727724213763832323864629627527483689496666031758676255722674475618441081003597513717620800878903816885620158020836248145556344421986286758104317588246370361858213360280503777110901386778001347835299214295517172185068832260320753290777203114064331334216318825425420032252591292542081779824579165526639700806126944306046552907815993950514030692288966182316932461482107398530041229137100347349287350541688969683302824414486828322804753605426199897815192910024785123317272909090390995470306847803150061405868548617961697836757470764785465614837892166722519409221840451434467115327562150601402905619665827376678250090624049517393998690372637987637457047170380402659275012425653300317410016004213712409958969071096041996614884416241130353983781727561801567355004028892763671652639555944534815688263685225462523783410430016846575463548365811280618308641190187884632192356561567382210133031970288336351250729162428295187097842622467211075016408115244382349232776341296040652488067969559108303625850875291447682784809249454554130650168486969337906039785940640233852536770615522872065168333300404687252053280355575783497208484735227524071232454853848882166511392895519043725001915254489148670600240038587401676195452233793449160479490794125977970176823367462985918005191195703595810739211783786006832308899814178931893096135146899423908630742510796551942000381412783004737374324016801195074978922404297251645471065794609652714698474258039305530220006230336625515357711384418948584405765088979145432099998733080032448326356350961110897831897313488026947772205632854078675997977447682613065274082957167548692464140630750261639401803125959037828220086846927056530834654104320759342215181388806254803316790702227001203785191407637653534535327044649603948795036998724338116557256534407068191032233399685692291976370803412645480238153162648715615759791272894715651199333214518447988795868130634558942195776390224161524892041986176788295615960794977814813106601995797894316369892802293558619945799060071472811916978950098234535459008328571007019187911147995375865632937611391710495575554074965964294181892468374567291360113466726614764066114062312159030444168223614588875610766253096990122933662989939647018266937551269279236074484760385042621215613802641510363171763561881398235286990400533558462060853072324882170488080791873582065673397449368650844230033337442926697143966629685541839306117256440684269970153850463795274681212501243627666576743067069003873930006865397955932608174189373280450358946781092761849452706312029931658197195414425422880690783447380077100227738777984596275866566856086540998692505762672975874714547614689620269224608135651115335435424039039800813159405178038973408952246612227869787263991509496603126272068567172154307124569587405825505946220611133786767104206862849723560325594974364416500264367652047085809211154098679751867238814542994021319967689800589054404206749129379110014230618368224142868290609951623833980994781798745994311243813062908588664651040102327181539250949936556126266056093709220220510419994639756414980899854891584963972150334781554071173672764274195655685891519220163775848864822435596812789435011643252237845608322263589471465131469095592745395172275265277673174531087601395850147236303715759518478903069740400731972632113925985245398149523915904942908603887990216841889697624502491543287712493839464704456516523935915380458486356485056960394764080079889948013905282424607765758787934304387567915151755771958323553788009646725604451577199543618988728631521066009107489281267538266844232123992415063147557283305285975440951251485944648976972237007398748534741633582086653264326253109401235127160618237788408778993426889889689693953491065519046496879734333059073628975597186660002532727627811680380898136304255527678941954990624538612564232284164738945944049865933182306670833413140128612147480575047431767855530159746825825289274453429981001079989195989858615509156310069381391550726596835333886409922013162781601531070181446683766423791636656569832965389642905687648539677707965588857110215666307306968408693805127507930081234522025193291391145696346388044201059762142220081784620238802454215253959858919759282703902518214065537150117500148098777778090828474031834044589788923526466918240418631700063444124862092948946803339447482833521450019643544297055936358969704407924907579310987474405326100754664293287129132645191183169248144651900049820690587478083855747002549300281728206514893128827646534022426023695433774039035648640377985110871086209165602403255706447156705146360775466998817301861330384600288283271224686749367529180014148902620748365530701910700022828679515041169163152453249664598449795581280552238956572392950219898085025378842932847474136392844396669350856932261618140794733367175133145895860635716198149203742291306765135563959113071814360579169322432205511283045692497609244840158115546206679018482974873590606200741549053208528989913373926531864352945171136286819414483697334079257345901675517823565594478745364673606404413392321333713255009141494378591264154877260933356485432768491680477888436221299743186669125890989498500396079751690132272570593591720057181262445224562808048043961757880009433040596054014508565834539911175513125151247345218131044788200100048353364938365425649659500069096097167591591159567390729856551199860573477053145049274652434948910101985869547961396511390474658666640229796250536662632637897282018134132621740518652011314438730978151426941497239976148660375082872440244701430473321729661940589814035902601972084946340770901788462749834272774444008939187876807144264334446643705674333950449252954627236215754303752711886462846685635819868907189304067968957560574672800167572264436318436631783708292863907468033337473690405499243696845335338162693846941358548057642627518820985921389069542302631672792858715506651980608283848424020705765857157942783113931277805263159271697640433637952092073442821993996818198838967890115404492110979753309588046924615490179323929199514924261062178862999822835142643477219139746726132576679318039645624677549185483420590794283244229441404647714358897147560509101405560643333890841733574341724456778539752290423238583835278524291794865926129251860745483578892533083547022189537339084345078184758476119335676588496171430794742718994884314778312533874895315725797813372453980698662579640268773072535663764830468113392573712906958750923241917752497389360114495346371660468402548571591333869625784543628311671127075434901205089590040547022531917887517440372645540483929527010698977849389595081386397317828011345050531508850608288773371462265533280379458536771946075089887671452274863948202137017172598471291226667220730056410141946337409007671478417657564158526174972708657147101882254419206770838241474711776889988091255172186303796099719670559820918000508487604379548032141403916258792122525945733431430408733178273938753170375426106976675784329759780826010982062921149973658188485433231577573823949086345683993684130520850750268218872344225575613065572813306588431839771126606258918001386758765357707834586238918698350837571242954038126433772968819839580501225125591208867568642516486220935175921304310786381303191522913930830045365242380615862571774926572257325545398741320705840711952041502124143278730658414397426483971742251032508219355471986965762470529400512260766777985517210834134022269822789471819166198357535022889681231473624103197374399448778768774123811340001492287028340726855625604442298534158338030667018134979876357023177881493249595897166747774093355931255503348850654663513616550654564595268953109486989033327813558521008497181362803704357578762374703833421634275295151181814678012136466795817744177434741503325974546871011020325953997159233220375503561473829373469266301082183446500862729157481347401306567585780760665092930154622097301619185687359002391474244632289623204077895037097963970075148032988391437687513268379125228514633798480208212325795610986741330309314704877879445856501033038096847474147910024003362361240477049852703242164692535762925656891213064771487956640716598519354174648857516483087575055629086796779462110272718087052336610839835008283356381534692554700615281486978301517666947587955103369276650305721246810353652336246946875345231792967349368500755484851241530054773624558855717740925774741627645083170895174868742780127799401299139826321346511856915664979749480951610998718423872503464586236356078508142539473153355483141935611925776453778214413084160784067915109300804084409008334874479865370723204608400296025716553710449369483200549478448506868115948416185004865860061726995604445960173985435070909804820902696619775906122674645022133390391581671101988633712463150937302515101610641869199362368603278628134605259258797189584525335827240590243217246597073423455419263560254472807164182711359248623665582825832836312105545036386934867618038720687530966190822299127226859209058420913007704547553294590341851560448489753310984279066815945180920025644470061525211277259786436860378203723796208439454591682209312785489724013742781475572936203308564517403621526302882465502416128052929595433423863468115706603430730971442859714661399847965939645134305933398380882789070703895063702028730880339552408697965584925979738176518755009175339488850160608724773008281447901895798980495792036014663281730761429091201505840744398461501277781418906188405467310916760446286617177619452838954468872321173901671942222542738023453686188192880395697173305710152954753509229571870971598321373229689731241226073997066208748449518657258609488880811731344349268110568288527104086161839718230604189543268315405364663347583787703506917857099178670648497959864220945947974894694705137597956661624737683257237499489025380755572396035596433636220213307017347997165070200580964624516035944027947697906854872656979621903124275433116084685715216867610404145853263312211940023217491085981940216582408672912200907074938551097834265609217439061291437745236674451568486019594567645745935982059220954313146800040229010383655020414025040839668473584422345212361132439089429523263451903591859753795571225909054008729010941673222326511862320141440764441503931010302638402163122940660395051946660613956262315682595452963757923854980980820344352690841101147771428410825196201491495488791030061011342503169997129498534168176094010290703806482665840227442704369216421129731739881110714947967449276481365908634133959006503691509757402481173760347962210817652615684022167720862436174513603458007114255707956064578446475523130971206182570374634177643575174905159581309830430015387634618147630361709158067347033635737682567046070255430150464889918429165880364043945761014152522286755611141775104535468675502327503044175773485764212710414457152983443564780814149946099967105080662231993712110383659928176836168290147158010369959760275914453739186330570842647398173912489648933622080984267777682419047680950704519021892279851230081989139175041116463332567453303527216022781436003005411273882917751247801016309680852409670771159227228987793947712718331549032807663267922454520053480682875901974248347910642921043733412419683145921181875628578930665117804460843269891034113983221029117990304532092954066272418116142820622082812804533903700377789527290506919777174911875150612510350202061261963030014196049772118531670359887229173988089654228370192199879283184983288471558953666610980804206293923760998309774046614183504518648086285714834914503892208234349256593092945078866500184989804978850856151081012482644277317127751240291478087268905324034781514526435514944503009728544560582321517823242227005767631770217366861028616061346453090682805176092531866668056720630826799141340714579045766803485537138487076128517155541658904126112183073579685360535548134371204631739675036632522128403337761554137161971082376840459621969589206960288709765337455903631046424948407855761814892159279972938314406356272355871291131438011085760400497656515776142019554529602912824943630834815427059642941180174091204804577881995959822549656335015224298531164857066941649164524783584703600366600544560291741037195967438913713422557393073733391004663575025709649786001863667479391286298783732441825141491602414811247474561294331116971984599565814694278967693583982572037856570583183251092689397162970036906010151268852256500129170903923545340037232133571299026370608148480983407357035378489662228588657930162566964495017575489704073568002510136021942898089279379832781225453591841492335367804194578903201808057366507870358643750801157293206857295478691452580630195103513280850163278501836669502666485885453948442671532870003939950648541331053294235091379098653355886533508519044076650488388235515027521638559686954419776347749594506056278259930118701824926664146697781403034591975561328291641790065020064957009872541384186908288781171367832124471126694957030427123192856918381996984609406502381499473260838729672751846461759689542227302884659267924047663722097876543907390093611993065842926190823858374021220572057083550433411123593159275919272324220193045181587998426191342417865032565286560361463450911159324849873941772393586820030653582297047305175040288813193522122634036097872777001715828967950576952709394380752269680068797043316486782166343887663230711797705844237763584152096034301884613903458000658772175937136402392713080217225536882226849118057511052838000203043599774929130020348754332822441888944381764229062627268490113069556694052788590385513071395910794177738046524628032387323438600314489527939592245714886120962895340117952635193296016079222639625348550204120673311872806018787528253473962283387171996281433242298974149703152420849572448441634714845771277139674952504810929894926399887867179134346568036522330329886951478952891236963558549557787052045306589728989416827291839952952448982836800510366275134452966067234805140933222430561208862237506801171951240256528048483628326833846377409641647185002122965225238461702816001171450533806087469786544948371121345081451737406440186242658089541080781678991777021064594788524375793662398109709489845950554496393679737780953105218370595642687997885629882042132497463081825917070487378735390167186136416671410260918559995188143513468959447099282700068142201891436001315873549561416555504916467641836826563690975465431456423844452467053382584449881996160262452918529041942181793455248382005361115159952838731306667779037217941265036574344748498419096678175506994824658385712427796951775548337157594866595254148238935659392920453047445675236018421838906561738012043424086887856240619721339516781175958302037310951821775092088980980517031095607732653675176836432224825733038679228245445951338768304330808857117364154803365053615216173281171616573436572634629675865608380324637240012602869043279967736189743404395537339224486448619067163339662759977706726598157541778813742693042481698480883454664599176342991750110224082521699523822596750077986984442889013184495260747299972709677053624533481981104986929741465715716993074987371496456594539545665407989634248019362435518608001706729374957781423719484513658858926872840435932831249406081519717715111137592334785276441628799336134224352540976782537270832728503729701251127406123248330870869960489191618160277560922109388766710619004442849239794057615947355783085753120478519534749499616105489639118007547140779974784023770127959830527010060202038731823744912315916681290665040392163759202898262006575664340505221736646505026984831508047479393107510784750938185455077649677169319426645385557840450699051086709067214662099179070446545937659002036874178650066580063083303210926737403215038617377773361646227079733516078786701206916152230409927207986634208035593664789695009250367264238024542233835408076649027336887822677795479811116937100878929187501706034733805665119903281439280168197064096953578451044320686500016476038351958543205650124429261394667966359325892875196092437455098335188094456274851242440422068485629625186032566863480560784192053441660825785043684141836244405212082659638770814020104355034281581171787867671940648467228581758558245949890159691137738448576319832560372722241887894254670257632740315514004209299141347617782689793129093757150210046394615252135704153174834885774477335272389637610275566447429453412706589148431302142712910876481266032139241255108008980282800401040843569056211833065263916473826203440705234554399261038209944719864909952059884587322439669727929884404766836879130541713613935852263196740184871453207135583492016654691255274022709888725642616676172602934013133034645059431395377911656230165019924557691232972033812575995612890016257199570536289732897417354162087690496936370326705063960998305657058638599308943911041933224100205935164912859117858056109105525761568238324622747251393690787557707907195018001047345405418877981480513109594469870047176429368049544456362963654784788867680249677175521589231269217051416096764561008774497696979587504540588469090037564895996798789634088804709114915973340059356658597130150043231771575219664033502108591618383668815669602279554223156722465176753828949960657208978700948718346124802228910541299693467533267632355764327771737797225346403077131935964854598048444383440971873008445103404321745448031971346038801059182020913103993811052157644292943991872782408999060195750722406051875557066931152151630741363540909662823777378931207271909570529758967478461498968489492652970888638567579289476759940627530275406241440043645532743473868103430989138112634887532414397157059336807900819751924534683572517662775595194584117863993003748975547462352523111372324079341218325745978443267966327089310182569790149315320949811730696817630828964481795703474207769035040396516972656206218208416830291036606261775263739049581680474610725516182839359398153946199913103174354958903723036233212463059810891340046179662754575925526755405991890504677716874394074172438180054782067948408203668810684274599297604986779142389036615047499906242367755027645075965589249381983104886616755187100062688699316652510360028452223992253153831610471596752879881573115337249691575707058544908698014050590615145021768626129064474861260313572287184809100659547841050364030457944072510209588128866230513489974794018436577995481695916656337952941838273892712612070614127708236593559425937479582819684659400739466308653698827466135110295708210819951853871085702656950604423599204668380259356451433692004561172955284173736260947330790133103082527154502185014709161901697634514750220431380960652812109854579897485572350168431506323091970757810197995935030098040424073542648988492024097199608974238401628993442889015803445526292615315678895877769154216539227174204707371337739595453719840786105651126032790411966100239997270401379649874039459691965461124492654034464996356686033116967804636283539977712517808533223717563989129949344202005206587108113542928744019933223579042383821299421366348529605013026978969747651441493676288387361241448001390798336134232497204862632979712795233147944259714632398966035937475105918399887369359045085073386594001418353609649564380509331060777754768882707677887294401099802763474465773744722699376793344460653951881241875797176817601134984074707182473981361210254382483802813461988154816861425007222709664790011429368459257785208288503944781269634690632573955644111827099020187585873657180879329927165938034490979243354566440348531455800810182608400822492388614034461048103887479015112299452162406691393797768232118725309584695860383030686207951874616964528428432461659885138060866162155967997918831738847994692630298785753933655003984078000160854869839873438223660477466113341114353558977154651878829668377755971468472685231399231834262197200957110938633235085600300754510562024368238707443269090420119677494955616674255551730924647223131858064763803392736713509729013795959505830308198139097468733701081657101291912133357050091209538569282317403994677567405515330353726403093790730158545491594439105979969071057736289924475146255866475242662294174129017204324635791324417091843997372053294856815555621355156681849023042506915808219152181851630231553370117635032792874148408109509958022110108278376652969760531291564219178210837649863203123658456601887475609661880850385654197275623826388071318991174120759448075283901263301404822178213135688677782877684669262105532758133829638139591802764116699266858796921536572365885643510262370718347230960256499368888717145994183604503359523033624042301417835857675846110618133832386510677583226303898330228056825646239963169303037914603419896165285975695964745725919212597295307388851189398039230177456914297208627429266299367964626970457201563743977982490972591413542442556089311516829183730918841335818822350421137219506354117816449414757056529646498513319770174445168537251416221273352160053920987447412137294091779408526263669019370416301781110507510464400465813640316958200995922916556451730907059102737523579628177418262430549774031286621286364213772442731794080423292381487407888777664543558987421896865126683878244057798784150886765335118971641437433936747055251877579338422308974762863104168707442055578565218661137782898716616182764575834739566134758102471209978544305298531242990920353195445306884753377764429828248327089876663335273630086544841922939469497269244599948708544493677190758003662198836056448127951108785769621099882487220283462683870738266107752675622452189246225650989274429825272305960761590812200105660693257246107158808043720191123450032380960797264035209383640909411473854050715578539579827055729054900677518623059601212805714328315742224270994956590791839416503276799053647336557511481083297192026425848783174351458747135255109861822812164739756968630131706485462199686373133344627535341397808144473471443356911058238570680330054751475150526696425567453005261322219380770618506040066870906385642315514565119570196082748786316369332190690200660299727500821549757272094652182844762789610601308396378394280501091780947542485921520039633208101688580431591621101683738504945457638417727535508433474489741388568019114634026703949994714048387814578258311449339846071292916967200532392267228811979195890274675864949836859322781901916926225062087860162391012532066673626973735345920276860904392485245893299004467055059960962756968556024633996867568855787148073643512417446636511398068521963646266348245277108853762862275602327190019707190963298703228258499293531921401454862410762236477286245711897707962397808662258210352072624816029744949938188886183903932447420687666430356554398181461264639092119646965422173294710871405093831658648140963659672303730210383246409842032843772055309482554576179818705299940479435955948819319464641864374607157371075550281199898746217523610445250799357144679835062721641360941682783373533957504231868549188068226106640061709992934155029609118649587528734487019838072204534285668695288795346034350689771699096953896890576016777247464413988454949038331431151670642988918352129132848351048521041979130005762149855947729469016809849987249918870566658183536192125469169341745229249603236216786511890181069222233229490339648142315461746258680966207358182079928691056628962480545070517482894680468533888489331447878062549186902798803961707121812409550565731423988717444575007416694912793169992154132147183107900252726191108500345651466458978564489990091277094587248404386453555456063463160749375201490195167355763267800599875672575785756717539785533111186254762410287901912724042028034086794705679888351276830917085255652390108130746249853471622245373029065043338434253262611622848907000021206060868937752037833125899629937939008918676859875961648908855282063718405673250584786882401163346320456051036133657262758616764007452191301420953509489235307267486146211700513431365785559244335212511236538126247481662519407964637898547858907215339935467919760460766164195234676918811647354612360523242296564270134033707184571952598055385435583499743049943620685152033607540488994551442989411473452689756340707577391674463265997880786316224952508391762197823986953208680606430426223011933872974470502217548697918368814535332899661104789462178573533270453535221557559463224816094470518948112905295464219229382271101256361511890940434380904974837394694631020416918637157493361116539792327404635329880894020184242144435745393153056675134524355311344420001788938205101189866787223048207179680990087853846224954200197388961694757441309222291261784086670355322003806789617105254529045435904975712406806235256221890410529105936002628733064666455984884034045151895827901209223406687248075200073426754886026517474700603989148486863905950476946414593231558149170749530495124051269754980909342133230245993631602698645042267186264565077230548457826920918443849282576265552583935297813493596402576518481713763843837504744474194032682292928194065490209059886015286690933335158281555730352750053631555014000185982888385073011611125523666650376439393514039748441929273891887626790518818033352224631891657974474656511777687940737608211421074455824143852367888977875044367401453181245300394986730835133603128752660315838511636541654094044476010639764560407166561574338345143355211665399605096269797850102998320448830200560553476440728892597926700283250807569123973238607635350737072290809166348801109322365395431577750887700815171994648033383234738060114367106972361025887145531408517956611870114210795088090063712470635335320287753666440583752383940404268585698640891952236730174967298679936070477813341455048324507082168343056238849250872925124371106928170017771789489813906969859492996699238784805827629467544167937038975296347577384384372572716855514820280253617109745528365310193031552364359391480445496628657281800485198364998566488127761244243199038000538518318109327759081154209696116654442101460701401197661905651920519241379017947657295440918182624828209532874273221733025151550796338356763308415507692914087284716051149818147734172735215820831901864461880376817821461470300222153510515334874818760988687493960187193074208244001534282842134175129574097795229952234427831520330285470164766231038042951551849300912624056028734086299350247635702926254940993601703502853277857647077049010996096605766944129141494516708356403349427530821568814085358147770063168764759621219285224292535667245912038689612140977778735670552737215371840783924500974644014785110092651917080476640907804252499349841347699423636771447225444847886724212304990127414057177224210384820461722679353974586240559601044945345249497174015849792017826707366589299332358070486483896366437990052115120062648273660659958669793773043495054454614390587488320831051749435811574651652478814888077652231015184106803928821214356821798675272834818761160228527653694349266340937663584879369243022165829425744707824937525481675780726422876806289136630594395950784799785696141107544360121176156666000095069166657758508429913973693650120029792546775758768718934533612223342913293049940006656389855563356049825633707393921066360835785039119723644214750032694750417164158740700449050405337214532897234153617666846652893240589966596119588813171428295278471914783081730907058492953546568475533532901547539761309729607585048701549841638949989662389626796008718136790731606741054746790801214228076240834539425674372609814527778631646907764855846225944501318188031371139620536530566932062962585174597643943804977318542385948092016351927780539124226238088783159803277119123537238829922665814104020374459067169933104733169888886361099453194172104023319388396344576670333520167290714972418983674558964066651536109730631171524240844495929798381262371602221638532241713525977624836117337682599421781045657305516515004036577454148326869190192714195205813170634341422052865498252846061648716782316943521243809098101063310582441890566512323745026912216876956786799058334690412348819289365825198269170985742267322398147971983272172070576965801341491825573536339957082955010397329549859953867651709436991231122930955633877957966969964054418132454592524179298478842897669816259633610899961086441369864095616429805971469231628307295488365704308115061127078644191469963143242324223569188812841837957454494229062872149610704588705495048114311092972772495177685449056985917419318910215124235681716512017235748247269706594650416135365778201691104166990964267205218757283789640028458327946216612748940655638115679658244319494086131797789246551542929215995101767043738728487827993297215134472705739994532277542470034102852144760299822350400534546831460526074516422465299463418862850017333874301758963593000423785383498264186006509192829469658424565323030513927685929097083007580498914147805191892464053920834597539298109620090677896378528221977195023231926953785587192059063902869471668209331856042590217005892972780076101502815764684216499393438750916830119934032120985647556824949442381584582693059783839392799999711265052929172938738095680979781891366139707776725203898344094460060392783232342201449743669294877718605787205519934005397184461141731321548876979881007060471614864518627037493014050316366205188043765622865767126175407486328334522295715093455125105266199283338163417747720267249672834499299343404790662300156514437159975868251299127591714733673230269806200984860574452717826194360108352429573745944588183489155310135855953863187379093981533640457155403190125621798660061121028243390136136916156852705190188276850910666849821994893290146831871300450702561892551054564294019955123409997640973262374062293757794790302099905126330120750910172501153100016121880350039384992994645770197934472869956538788869535811718947291852990779388884428973765596330665210531684921250952935125221089495159558477836622877872765062214240533246239915291260506202035011077720682065450357470803287304372192864220864764543455531656091422379506640185556184244030646705638645451115012784096645274634430621579618255741105205973318052750985884050712076330700219425917714284126632786406587626542914596369987249945385560411639546457836876550583525297408547208527377402808986330973979379319756284818354494743194021730581766128772320099143258944088149043432352537230909530619607692398231753308084709922348274360538887409025093322800729132687283619769755980627311513652649133744216723605326029308078954946474938122040303483876302583084294154983246791092896359432971675307286598480536872240049533203801759498297925425250260055554212266571367523387589334611578181039533156186840224524733265659659345849036426357779729015382794793265847819878927435314568537195778320287480129702880150403225867442916647588435943462829316947561697468979592021453248723209344636631264123502224938499279337285138248714097976646940977296330023541930171670099015134072205723204388208261931647562430798968893859832130607164576736934722505285656137788463174910431341256006729832566172843239009873749433010579215729000087166573111823659319932262479620087427255404451434546743099107492986362512492614482402049154036918158906123386241921474507378069039277530665570819323688396306522123407909241147268907060260024438943127365705562878569954421525315720266679287049848120930755015369804918666666895623493731134973245565380898740638679965721032725560080027364951224035675537890096881851556096144442907175612847300463880388272849208709924664910197255504716254766918880061542884175236066956502824149029357415746158289385867752082527727620063636366920777072982674555138265181513835712756085365870105813861483074821859287233433441526566537668568662062335372489244170038152606762844072090962612571206447425598183116400047753999893410088434227430387143524957992809333876254875220399280152948670583083328585049977310035111022153569173983992993748380523255285917558545286937126624261258490929797289703914716099224898021174186676819327538314277710163514976233412899433269948886208414521479675864166555136237197445779761134552956606418710966560812386574180816207392810417970172187819955785153785162885148746722135477496242918817491700018801678743126793257241719115649406856979005206488602219781011928630931954315735528723669865548314910806713565554922549551694785167805568531620301007312500666491207410783813317797226458486331895590697576160307537713286395614134547851717652652982607138625900823281760585376916947587030620213754121175535112672546540111527827809811794948164321396484759494692182077998369594186265508372594447051923398971489468413516186006809765412765883877916902030567540012493854213998594395373552074701061941455312689884708137085175167290504635307592945461919927674626155608187773880399033495692320696938303417348570589423657942606186573714989918681192760654896940915472749287613593478445822501809134320536524780656299902450211240703632316388924931702794109786659234967021976263771994846368848642019133807352300383239413813698271709089173189508411244559173334771615542910571194084977127313322673184059128882137863716048484589056760577814785103797725225497977989165905694590684256759162610196028119555547587587119644061316536427827520982123056154265638290986899998573837240535180932176498533788693811731193037055405346309448126835996608981570254065221500274521486289072921200556797816077194954340205832902307773381401998212116486673348939628175702528444393549676775211853215477278893620187563602344759289346303346821479879755679202027888450234364287539743905457274971958592613964629456433478604966247501475796978863176408641594479005323831284675428605682234962886138719834904890278880031380746336123546804123902054890267753156248254236617412059207590755556059011200108675354354383548196778254143825413197635618076742854743458571618232485187828253106261377627053942797661120361499286877210802735825017014043827281276723864419032093706531035054721664358803621977642497070772968908307438351849623864101027118587410334490172795689022061647575065586027445115390036162012819048888638211943151244382231253913034868743536555356021554016297831919964310811450608413543135014236166121052265614630121630406515906860533055322822347170539783231450705933124611840405620179656963097519145763919064438806249439513104524758584417893425791725662667637374275188721174474965002674163278063506151644155419223769717597905487389596147404032145362279324323196479003983956184903008123508020831458638090296758700395397274584417264396696243210775043005770338720424891655866822757508370441049087551688416458148570134358107487570055631215916038062731437187685955672773713518923662349463116234548852621788173529544356229792492749979705778590254577591460685210016301355611934222533515235431473196403596119589986537701473689066934717524047620756790340204864428247655544260310668845612864503519849568880905210489991273133353537070143970069856443898417144055065692858553381300333574826847266490115793790881245423161825196547964429938666705832203510404909357145278263197779498629631100586146917380308472396026402094157298480968779515931978232523418050707471905384931475108837432031463549693047638821020028039407044220637631611232968626997564748583846133201302522609299093377507579627563058978383367952451481770677209683459763645305525252127212922684079624175980391217005227901018091527700092112656366146551876651211452525779612645450046965251465963276986890649421878401303647977978714145105542188225661604441289488440679765727585105347776868263748470034058296350620463828706071642342550730428710913036856418611194234800431724212412436432411209630034747262583489827997579236035959227732863696600250761188829034408403403977438201547676037393048423441471766593774334298169373466127579843017569425184349822772969785481009850423681076800627994549806373949124875822949901091307369506578730265032656574622359819994099458992510690263472909468633414007277302167404062655733145698458259569176000361948377017658761819831314969236812149702707706920377604157434971535732263735888885906110795084422748869581436354562901778741875598040081270935009429387663345911388818766467493922937560669824059935008393808774445077905525227145971066259261498952219212649093368355978671517812636529691154853385652762176438275437836405590923429425563680077586696482255823768344919562514599585121454468241302511494433798899138777561352829055308444235827401713006395709373923663923522660213605638508807151040494703595031223899496492668410954292821182666822295238182235832765998077242510784055679289862927584489140184996485028229104829997572169117682169958606939587034677119894055570464562246583013063661566273160588165111811415075994116227824314853753614621242684317200117179870151933722727323718903168789935026135617624362455668386603588088879947443441811711539809404078439571724631936464914240731253500594905083143876459618310609680428163256783247038067963063006866546678783309950027490718387370702441293139514843647914335747478481475303157025175418036610391950400317251936584383330571471919225731800114044815428639863789287243715197567826800727499236184024448621062235601620038125226663398955791450126493303755353784222217611582234867673161833981929818665134433669442606474627523533889768819419918751906314670488079801682679041918502009714563962600576752814297740498041698352392591178726433709878586513779206135871627657490313887048980562196994916719315696156167512838244307538668933721117089536818248727234051100856250413334079609918197318080640948155664564860172681358842853071111977638992025045171561557772486014532787234113364400535084956233498219641557895977411347861924783580177509975834403935038576829432379112760461638223090217053111738840776582629178313899296319716566151869434155230623150903276143400075617432801699362013554892890852632532437115278773744227656560822945598518121854647472027114768997731468846947790414160855515948490556078098963875478669758921999578151495988008688936016514023442996787671404776259975075357300509535258011299949941637904633547868399947611128332530974687031222546672270065648526588222463612338952538239755933290829422089661303358807658996180863458083853361631920024063034348674545175336556752872369654946424433712119736711334932169886368285485905491336455046999482301589919412591194703949415156760870438709468289746134518241444158843027531234004079272913953641981274397363712871248609126589761017424687884287769355395181605047751996366810134692080204819358745329477916188114552141306166241140371507728121703557561183979641706969460447284774409892027808608563614299161800779795845874095089429792406482318677821489301223370189064833536770965907540230511336600012687690976219440153560034222617223375745442748011026129557632987163412868275806896227227947679796856986568076135162783475293305700044309479086596678758852884648682114881236294908274215863397826481514074001159647330172377674193601838049302839871518392312564138112281613769455497461753911023774116747791004375867492907876095924491271130277731903213186035640264769622612271900987417120757907795085124253990255648488762291962878077361300050176900278638223012543498734807301101282567075854402799109264738843607042927331107355146129804882485300991039617326235011269232081477789955093011980468825946737455369856981049082980954056761232850331199974587343543198517427306794309832037720709477167655960687631143525023959635966778197259360999356222919797670014078947766838028631387208819304073153039875430350140660732677686166013127872365708381542671778484351119560103926125692972653222809278401780067172961981247529646669346048496207063083088414545971599769895210106915686520790884756586980592546458953222899044167382996471661861095318499539944354432902205221138144125835887502838276704542006823282969832943781232734602252536236737793914309991385264579580688004828256739851842288276749590901874000100546452928602155153611100352505736708395408416721102406261269857371157254353309820893134480493477144185560237061379264667010965422120428249439801200891964561555854617465770462206734501889372940958858955851149399297722046821178798844447427001573258624061980585792756296758356364023884376389318303397830408881432411156514173401948852306589345730421418140147285383467426187985768152732222784163190134943357482582482764517289408401135412900024316291514145775350123240896616155453797658270922574198622745946181079293952890594671326300426958427332390607928107563041740605622405318694280109047988889619646595246670223138087961544522105954132749167776688722470828876922039380822650500266889688882092401047807859249725588021950866018570064026910695756797841895929761839323037582856810176226857213730268988498541598167339625695826887751112067038331708878376372142704496473592201873954458956550798207749101586485637887408545506123127254990532562120713659517505273200731741810944298429654074316560523952799426909688032943116745108597001890984468486669007957692345519407151463520659287170221513343356453437609614370054964159205914214551616958415225379659780491513510700960935292482442127710189754634522998903084924229152281256986277241143888147946463413091262072004103519057502274606738613971580603829075893014838087282696828193035560847208583558133234285465864478934649702155648937034579972892370854583774657783005520030625629837413561682545660439625431690390263979066695869422649076229089612255023355459814228519824817369296097233764338516537606362779372348807068010959459906532268752202177607573635219879413877504430943250626539325162703526454755091359090498614286976219069773196465879468031686778472644135595430593727782595845189534185657549189182565373923322686707301313023013434444735808843304629684597049751692655249325951595593322452408999148608571851668991897589532513419312347631142595662803872002905363575168048912781076957838338973048137779483241307873476782883074477579012392741024781281053703203015824879330526398015712547580128894452450698638524614373365359647745394751924413638459315398697968659575795321590607042115600928710781183740826469456873818406241764973598671279347654365828923884341325725780243713935971520495968628646061709044552914989694449962276571190334146930232101648362016579105222032673184691224195944915058495897478296503276671349794484502029050865649338570897520664270517565176181303090272654278930890173779449867233197981871366776274881481816660181307207072211557014901946016400083053671194390161080694680424607893110876612184415457368516885906304630812851469444342269733576149174375529057266429882129646828593151674773914179499035167604932885333607072425636646276884258895729917044093137511839586853224584709993274825150583289550039723783242158598327789926785714347926405972012006523643832263157151814771961551436735567529507135048959772817967131930178036110017387844840954131581710448046231576845930525740685437718036520236113875573691913161683349903987465027161022750075543598321501164929475100731819097131857573750854515209212011974177344313461604043349742597561907126333045228195424863177966180853296918058801750354171541926946665560231661784922303303141693862418423788639097567165032160079337951756223863460747131449916759354077488118432250273758962831163692800358352761072081131532222173809858453701083586139709255409653222540135201035559071327327649369035562686616453012832571798491274110287229384734621173618896967254739036323084348098909852770060572722851902109125359113565006955445021775211985231181444865614224305253685228097409439332483913176905028254157031744074225978765720444231937511157278292195765100508130038979206615403702449539766971627135802928953105694285171186672799685760262574571142320598907027683381112776081835639044246968334254108564031965446786740223588006154522425255106204027590727212984656827244697427553641377450500144429288935797687743425619789697780621976203781529639488397082250744583936110417682433240953264099708711097035677175773913810125440587171636757713992314470256326842357764838135925876546150785489242679067838419103020510845949196993989289535019000595281448949649067262431630323099345977501721157082392587610233942160893455654647720601719623526571064721846538658356975250370222237561264402133949835925055191907203671035678853917260805323577586041086008361353109376836472970554483310183435609565307991662862130974410018046599171162146201877294458260537987407333511696426712090102646574243571175414593613892272104299351124263762340271055098702292840614064621098543578931287491302992507681817822969436686880716026111322164218573795792990403196056823994121802904592787389690949094870836358583901846905325332750821459548983334128712795605952886388479235796463900815252312995224733770551741580747244127032504297392736480255980166947698950439703105544737528264701232048218668423487029796563335435798010343504200261578910221261981366091288961234810777870188626695063704468178687435124595120755368563913311783512505604861659667594725952011006483560889839168951470304522281693947386429146471323940342791578545425638422646185332294695639808985885597216788898453279378588715787545679706735451562792353124131393484778368007264772408982974164765151607412200264467389804071955891365447847198435919057409811299362006558504781314368723365500273117467082695631907714360939270015770313079494390822578872883332203283861056244594218437250108914643518195233949860567084278375974432518591806033383901932891567570424309517452468738316472264023567775031155092112800126119387335540347344632412775385586451015994770452762001688246683218107378723106351007846012080984099802248989374065435648417969729880966321047570038553647390106145122021402228551048601968870453533806747010604104719376939869365546213322268022921705387736781990832755287655364051303355136433052214396448001721696925212100108469918722259922702147212469206665594622755127091694478693165306867792386656894553385057854127907273140366619013774916678818053128842015229735939650886342060110056880566919262559907913081445003072083099801838217865141314683431489442876683266478978723279031582284532261620759087143711512606258878186285867341959247990491405320873302122978810155535872169966452722709657311488794226347466747959458834404464902747097299402533607346554097852982512493454586217083881000060523927433209631980034924456496218444724895900673210336689306007929049681123496420979925186483361968307954626982690260275121090435619994673100122027400949382788035790577902559691381224102427034051979327602655521421022616549223068992210904256555079671047280956448130979674832559606114443081167342895774012515614252180714767147869701059141232213936154194719168727161734190894470727583121946451866878962091752310995492107394244549323394122601883381878165205367675703708362710524287296150002804580780737815022107846337190851065261530052722782375818998214765921499901118195393595762520253179920320716593327592330372818708452153515164814986079536143713659126710557530497260679190694413293178143501052235775426608905098321285378002221249824729970657887738722332207851961081637233477866715679239363493323193181536515423212330136301914368767420626016587772985710197063281547210014072819217481381308681441598128424856686662651835321328701189135602936691471259727547488233652045520508261123383979229728299670688414304912141903474928229131431363474961837755628929146524250294317777173375466586190311260352573080774364305777234181899336056428883475283223444286162537566553530807650919429159348151361783502364762378907931356513523807128396105048846629321492227563646795289031995958002288393152103079150227765252073404365393367832138398656948336342080802040834517620263910362079095582518295669717712228170678193588785242769874359701241406656044218000842418517541335723664526171838083626828904192431161753109616283448157970061739782773385043406260815635579712118808741252661030753630801336990298369793098229172721008686417825673639404103176311690118981642823012805631561016036383948460577500239939389405017771639458429647288622679795155662879336347698535471897904302338303723046167041480884594062094429610290349164692528933155896300347278283210591032476719520256747897476778662004410486712515381000358937541460275871031477726950446164981095162735241513058981456824928859510494329224746585207465799121249870132205911247677181320534482953089873166924439293664520542718083266880409058743693514007417866634719934668062855257172511522545669097272028928811662764076421559771610823655242896578064231647014071470159872921319269095000377729491051445702484383262115163799991871787321549176338799105875654046932875502452279104647325006864640879360415519193956198708209593096166240006351662779400212957229257242658076480360850286383085941478290742341816882088637779720041667232356963069696584470274342762846107320037379977288174838197027449589285360680103854858979396857819715755224791043737534108200521249991243514666273937094585507128992251571557298727116397905121904981238273646832984783103269232513466255568276308790288876350712357271999015745965193170576054998528172271059002239240082851758586211455623316329242195835503217265738051578845022836563847332730070118904493546191644767000887748608876494682590193360535539593114144089384010937565561257738676127409413953777936921083266660627103268089888175544601309903609284599933797599480278527861992695630802405961806811409083081392052790423000418819177218663372181793858683755745316842716655395245275108192600770785495375363921237778227160356170263858923319890805983949985926461036762166998493106437036089133176714496523571380093013309862614783443652651786361246380465185263079766452774538342628113550692250185506456993331320388104777038685764717925714485064906417254778823810897534622451490763837397885790290040117708485473720346815563508153312890161622644351163676885991051670270256021422738425634900566128767100895769183197221070520934214783677070814493931890814320929550889475822009130904112556601106818432332169853639803374814574114555963455309110168499167045045485264438598309242064803627628239560861532823683255894922766832757442228544164339319478744461680585416184468533338540358279811780624548077118535151129147969068367697472202421979806017742145966712676397903752155006006025282540828717734570585067738392306383417912110018405937902335669715551882538234700113905304116452149593997731922119421056929573574789113916938316180872654595739628092586228889416219568120148983336328758159733159062408092320767897658577967901877389742129419907203628078856630331957590325029638107924499326914325504983895459198873364053030503800397554200346460128911748450542086317443038791601517058036158364625207505018998708771524943569921677735905076291603860118939845723522158306240201639300948370286904261932571155672200794900714622727728748100378784721623520481920704214556014029898827538003542310040187024857581925541734575879095617206196666388489506824872163183614832563794732843375455393536540262863420643929102059989779835643042162482392987442762551565869749017432360801331222576482528984860853338950878268944705937387022165013536465267304413207091068469080127247811555795235972086576468774556913659598248883328488628429610752652705716946261095595841730410157399220312678824028870888119264144034940497294905599359656398154463018449992295850006593743597824518321817510967799913137918122458470650356633523447879833256734811392843292897180429896375406377238960803912046588959796457105410611473568415494696994984902453521232167273622835212382867787385179338167446728542534960672129465331987190408823685216657390984063945587623976055613637243892840759027800293377769020624395670380958757500890266451937348168609039117181949569571779105600965081564718396538780518981393914867575883467833322479830343471203785892819665992479005587365478559747260516280267079599936909986240948771460356114287768984619908367548343207381265308382686916034468185026314728630450810852478587625799970479427286188776524902836825410322939426289562275989526600327626499421100790774349666605292900268827830378040517081258723932705198396936192487902145199198999901915990646788037048741794443981696679420290408829104984566099246370246356532912801332734696721417735291214670145838239725579591975016118965892329544298548555133497381278474910725156026092008312406391874270675525280381630143176751411085368546640406776702952720124003039221031879949439518704619026405272776033361836626173931365469663796679863565128524542231381514594741190658020132602198197480846617349624276357659515964662133485014788539865379383701379339701104507841116624256994786316840288510956691948008221049945616982140456344822345013143834723798918293511223005146133418528917196371608649015735960412497276287858044416371350093788368668357062695495208141434519500782048582117091027953027619795983191134359712013317005763913296457093816981809379525750870139296356131481217198733221472819824816921913302178824849743098959441582428540980995318037115773046467715800689565220393676044277628902965157624395845434142872941239817244585304517422933812025647332248549974430171766342941302424822334272532156019518187787206239340555311942968428766518312594162632179737165382026249591077823878355461101779803781923412869863600811423719527818886084420695667860374165592805146302025236118460557538027610467351418970000054441984237819295243806472663935650647263225330345777686188853407993059548079410282918361186259970448841498147972478184221596135962551259382695578259766006657249513337801008928853385982492504207339062058363545219771100866185024486150377356777702821085832715741153555629928136624365927720116209859033235572111354329924073979901872061929762502002722212521867973154692364176652235089104373751745209299822854265852895385300863947946055171772456310031432767568325307839763431880103442794641672925638722373043583014852575403106623677457968276491262685659230305467886009082817505851650769223335203181489904449473815846576765479259345816525680276525999810180459144664013497715934654509346782727004936508870894200050158699764211165680520962211276987049082299164663577103791956877165177598543962840968861860355008379615635562252876141317242150006567860713903698671150107283248369431414811761169337407494541325807263699803361571789642529400587007631988876325237522035718375702207570118835993119017864603505327126362188344391193037005172418532775813879728408282856562941513529966343512855153010301945974437607804084756990908234133921095755635913192307647732215508210576607667098146296117203290829547242703892244633242885198236318472323340415238556937387148390484488910290233064250387336066021497588435243799030930599192844406105626254890881835307082009140364248032773103367169904161867889326844363723931172262553212345725162299764945847124956767500857542945933688914025348145813947008860665926795768344617587501755755988195517167275765813444400395294409163712893515449231131620797312490664117508259789516411145630231482990435349795083637501749079489758615254889959730749793534075987269691408939647548044077931814624657560648313363241021326494510713775233284229146837067011395741700575936940876802181651060852933893738613582141055963832603979776728307529240426968594161307238676057989847355443997315235386519952455626226386507688793924647316768671854429296608803106921443774318345969775188611609457690028704663673680076841820408799779424065610164559608181277027706522850101202323661981170155500602597981457547884459888522949374467669529365631827930760318570811081135824514289483216180266456669769050712480079609965876638931884510887698269491335127535215099416763252422546606916140544239606021025015300405451462134860316057131825388617735358586842670951535813409531386243874046982500051735028847026218268013308709098039359597983281527599875536960637627030607907574347276944212489237121774433958660500625353607258810049410540606993354240411077653085844550125349956254946040105520563428914116910493237841406331499722955446463057649573699568808005850222405339117756367421420362283379103865806097513261752245550299130595845732434467744699369009046956662074896845118448060347189935058234789877936719897936073586481679720643279875109368480314043734729670476738652112801727858584191847758196506574120133904497431194002816661862740635120771489423593302618238289612843402039766227181698404621216169534423287536107793031280030359316578661046789326054557179414145344852820948258163521670323922017225390354255790029003747023220674221206333380027177222091462014882988775083432896317841661862086282064602714274560867526960773790250059696364620455453234738321905259639206603803403890076469632187946121939199605800511181261064962790017158530045692040349115943825652396936625577983657241454194390650210027885937653562816938218776437127344891135267757606351577756655894027713260067039863621143974321277108770353599757417464426660824541808122546982081938018966576949065856277663221909586355401747010584379838736123425834353683170650573712040284587078237982930887389726781747165748241770869577137730549151331630040300864268579086182445460329259940836003624143515979665308774585637048649972075239281616133855134277427718676500144650749989702917524137584186377358007532360127114653571787692846375651277026074065152941861155829127877468107800617416456538060657124869281802505441732098990180336483469838297703482671516283734617957484830018089666884297607707516152244786833563439693506892752300640781219167206777034260159759507553125519887321622193470127668416653436185183602196304033351453089175235330044158545920424853648498452285862817961948798888898300738128079492396207427867341366613716030611855294332355811142099945411293373559186005283418148972575523073527217254590056207732188425236354882636966669306291389670260167915399130910239727081387128340401227160452004580017161707912875737076938661182268894419402407951907102090998190129651196437324706835173365939988372988051984097114302643471271463875960013654581039672914814061481632918670779506015573130529798411179753763754295950418583269955108570953943456393636407371770172784443572220537396165537324034614478398449787010212639561007490750148761085878092881254813043781797138405415110689948163794013626913586873502188853110150188772401665105378416921714553807967062673993061113372969373394589549669451617266860973794282221587712918797243397151368104907050255838406005706657988787302668692163016750073996528179624887153526422733311991286757130017937619400650901432361198288899189447091502695575994994042575632940612339938221620458919677598261250246718769194228213825179444751523774689013725581952284981355912755652327281276554472409077633364530083146811892990237742156374482489275092941082386937193554046139521115885212283793808488823994059157872443146663715820424220926922166536981912611633878544470261048000277633803864686013387826059151804637579689595432140275625095659354350461525630495739678280916814548508288229623181103166861222187850549223895054847306239600413977655558366695325647382235434042301965524690062525169671658322918957674961515461380187424642411429961802839019668351037340331720569580609039940647685299791068148673511512720500064653218060038566792030740286004937975633157489161398182537807071019391769003341560968621153808140845605484801125349891185684988005658760328900210972297284941697761765197799188162355237460295292022306688794542775666493717657029456407776306139053031359202962165380616869980366965519479457733614225449377443492373528373815911550682127953423896029222688181790563142386168314426535054625724052804006845264681098242741113134479870446598479621970231864445641633042634075703174629605133552645682412230247288270002197206588233659376085348825811860138444890541283478463167349289458828592668886615416656358416998964281892616440107743537152308346557440232572527200807678278467704572343012779473678042834109133094253181176641363801757053577614392960639878198093361028168136817295222448861125366154340264558375290015055076099155954983620688065449288566102541832227855303689933179302517019313144211256535885436814583093862659504840113705281896822805472607976302108700783855704758428063428212813335495039710212008347065176025559934410498821528376828071025189749334592287657985303736723246361035946345160774635846915632116929152710261993330972295229127936728410813415648119881944070375272034609333054497275761274491159210009580179323929868908922891375601906936027314345492494251571007174688609217988702222605793782909809956248145446677807987833768572548457114860253943154006714219919920251656185265599726047998881231266983455792581484370628105275222012696481229409886550841730758768884207009481042904113954670651475832133350968948845334702770938812001067090506701805760202553640679265535291793551425043055834331460076532062899311186003734526587715172629998648091452452377132448724893035318417916151431989398428434778265689496459829371816241286430180008698595023175185993865632317185044792463414020834833337560896603615605849479895691723789777353025788213565494309413686825080036757776689296250808856514638258286477200098036618473108833459627427314987963362349463272715464906885265997740296862780225184835370718888377535683434551358219185879515780204691440813130369290223170388393492527829731539975177462412230837095130252908837691362276013992243447837012647792511240811684439339367896382236743564509324645290331499785707008502206826577397045828053634787066796128017870309613148635364061477345256372291471686535409005115393853208593773019564477887836597836304900104186833706766947873500220807123326588869471115294682497469490419394440835235647580497316397516443362479831609332716352771027643048274317145324995055702807612228845069580608726999340324436922740849195537560091822916046395138879544756289873990476818264803678787924437028683326111890318839297765311936214011231410966666940124204727982582138487469838493422459222090087468944647610638416962285066945390273848517123772529069359651501005617927258143833856247471173503336232360217485473960603446716072036317325937097520838143273132966987847624611881935931908328559276052418888011409396240547732117845699077359927554084482295736962219894665946561706476074446064362036385096704452338915483664319778478814312519301992429449384887603992139201313427954777549617805803113636934967275632454047031349080405293628623062783070232382937592220932481441077589195909266025780259384344494444530220659454991953637197274631716948646517504387299185916999404661054200544615430468805195388995269327250795028876420850082711330532269226728438540325841856403516422248173888364854838986496143322123839919431561379633149636935948087741657146582700701997455172546145299852698933964210436429058633459089136762726840512344177446058078209561123615784125939788194701173192572263290787576320240776132043706515985045088619655283217230890642449555779677780389081299788196006884633120984148718694275462097591656256525444178189320234734702605756318345759583683668841291281486711144549980651367126781604468351968841389483076034335301847569340770081433007730821990869692400366706201377176195865565625650110627033416670903113118287323900639638431206979466357109231074807435611184821282390573898935674036999560106455994238512329946768587584473827060566757271005354641181602943432441671696556053709786020954275744906553516621970227442930026710089244196471218207036661154478898185915796144694456829288275377704983213807950077149594677423888080555132025154040760157431382506093540071641296932943423403587986927871236329047108594894484483411123510230861054915875344495645696810278264676321323119644516123635355305124337214603781892780456288752045203492904728441357530432358149750310067725472029353973459389690770463496967766793463081925354741618724156035953012289195288544051489427187624914646229193856443708484681579179948064207910546635579490170306132524178892340866415712975060299112111182019947239566986729679927047331385077476796458990597609531475639026681456388849054998180113273742876913408019293412541521055348429890243114943993421541873874107198917144743746362297439499381293878465441226577899083259579937011005800818858380150014029182332649715252683841785315402345933882164712380552633748563083722695875113344971395269873689091550641850522854641336545901315316680598180110938390059203172028123951717796320379165004133071157509094038701038352681393364713644377472217770493544285439940551554052207960856311089937283815644087076179021989317158587936318001402902383451826596236915662983648945999589419787465607659733227337797819543086986710181179220705530707370184574754614081045245387796921275708294522270774550594789833356841344937864406500710744877777851659499268151813964103416812243538263825843211198879831030514764032703894125557402555987100229454184922027812248286019828105081901562063117457445116044039874633604991337666035264566226005461040499258073521094631016940542496482745629204645939290391912891758847511742306017503898676634797134706454335388858489044349673430940135513702274762598608077125273050308900088159430079662331850956345559280419546306627805110549949387180211813743826369698400611704025822525445939979635057928410380706099379649536781433232864129112998237587634243992890989317758313854241906275756159734360510339335236797245148718113507062504939138854994187042053396840948895942162930827510148175968945051581530643366411604757910224984412688221462818328520404547934081014630946708408299902350907561937297473417757590188805704712415154959269903039130296570812687366904780872275341054187491181672496078871467570263828825281626273802140701138116123332283878235113714107862577831055416090691992374471945533273985768498696771217617321365018350108228296531109353109538399800744760114374329953072488165932955140982415864669423655103821752750297822068607624444412703344591939326121053851015634049322584709871734362781125030781012724930321053555773503285884030310166345317545669013952636081038176271531085595861155755065190426131852344882003826753856692465707074467137122782929922109434864282206956713492606794234632329106434111822292970630692053698774114039991330261969619761483678328297032116224200649919457594460314567642353776897818618461222905909543553399906698023334987972140268104209702038363726861910844587090083414645893918421068766585709207724519315730879537420127055366124694464298921109434020278455349907981926870894633950163750109622177493877312127788410840426176873196665777574878153325664720417949408905458190527486384412471147252085333286577328250210057863858629301714401241912874603920872313706339345732556595198056092694321290233845860248418887920418576865740270659304885471486122538127559303212739475707269620205436225655789465413071531077063148983701799617558772820207619931885665437002139151664143705873799866758046949172705967867832943075799842769771232675875927093107687838132586902260437260336072585504407435718386269558680832950277084792054184894073947094727989150126077917105167279528977325178875416968154902711126610209828729623931415750065491009036188245895679632914560264013315292786802099516553791998993133331216694834119022291282915134392363713897882647983294986981184263077004662642818547383280401311072025458469643052436037694937543696043544958984099522911351658229477164070229552864443471951451893687440477036308982439149724361204333533022897091378432243636748494898252861684544898131357626241408113853899053884316674921869223960310953001336428554280093254938036056631886530907228996277984229081496498446384404426778744691062828946535113797918086288622703259980949095477497398335288865651834238295060035892375388728654364636219472932827560861514891101350632061445039239516989281105062064834186735338003391283857366831785646514826014890826777107605846927136486591268050193757170230360670694488238912219949241873197370903112608891110355755289522781484030526761270524540305855087880118074511737060865780169945503725748516913172792962331391640756018174062074219171071426948384743956847380510636668695377190521321075570117102332213372307709336754678713708714435252256648451657813739146888657866842040572085993255889453953031601023737742132529137080740524012307634241003176545251229334696765292967633603216285129465696855286798118336926007249975818306354866204067237255006183219817576884234324418053392973444770946407505470986322014283731695860608125602016841691507384842539619228694776353223519365446304852388331467229413904535416801276666545133833467205157235566529089500236598702403778977015143411937679904808289504999482015870135574067217832142543437123069516887761006882675364249643544659292550810615069920529946136817193596519402159516653203022625807862269030938887766107071151843694867769237412808525727539269458434589875250622949256459933695365346695032661975674914891620669497269330228978179997267420685202883675283102272014542108165191913281067607555292008600755833561767079432955141396531872675418041628690976573599288766639182613236482819444336759432433389071813451529247621938661836224623211872273789714298101098996823076009060970733065287695782176686900040390786033908982811777768253572093851616936317363607765118569215131420313057768277671870859070240293493325158393839540502609806981366388599874092742332260059560375627742276507722794766995768061689890996509820941667859819501959252105385413070911467723864633064294553159682414050462174478288046460622856640052434159015933620437000838156398811218407067912014168577775933548573160686349185149347040236433271165363870962809845966926924741786417709822300961071279279180457189189282982769019783144276803349831062054025713802333107452504824636703764675967036063727865873615460001348200334444088784708548752246505064256059713119389328941379148928771567541723234588770925499689452534251192445057083075008811951751957109660513450591182156627451411174207081869006160027942938155074976525645375936924347937571405239637826247137391453106687673470933009153765837799444646376135013437521930738483460414699331321800125686747199570180528828583362142406625122991680422520635580602830948525294566375705188032928836162983203701577612747940179101792585543989452567557028115194518886486744756085998206156928396322446331752633069668201660112258006642816996729048503364076717370593943081627279465909395215010919042052069586492051556097566267501451492217576856400636439119439583949446908360823653469819943405203992222384604276983515567613620992305379823797346398373388315906607997124217974118322661303893053661835563769731273314390958329750923876244682218784053932926586949394370576486344673148595621487797719557604176335907652933742941166319446092341547518539479968673824039322417806259758797350402403312098839599471301544661443814310430848056039418196681807860554199791221888257274394000691454279323516750096107257903063456741567356560261869704484081836312224085977808042540745021114880299560938982163407520949452220950004076358466175915419390886420330903508378414133845934467374142206999080199563032603566748976562280048337396665096367965910364704470373369409677096518094210907793451491822808912227068211492903504968895886968795519255020798865103819702971473099052265016900754991621024623754659271625700608822303699717822802405376154014602000543385725511294891719553745942102970017602185218884450455058440004188042260873055593060306964344463954904733742333630340013406628737836201149590044289597951669907061203218531969895284685865488352369103114611707929278841785487117256511315916050867233917731016428045863691140428633440914319665606092992194895531040587252817401075856688893102819329809308937988973414726065766737935008887222853861250045813621737139848390041397282862920059519909817771872838986766957465600672028101937547130826114741387039099251158836401092724006735668802683314748275839743989507197120261278214370817340712285966617585580897744974482365863118171195225647424829703891973085665048738197500529315794284770806785562361291653806109138287150281272169743954014810864074815320833956334086024075693831473497555893152527789355221836363328129041764429870161506086294244703691212114450624886413823211015933209851080344762465908735420310534712647510885834897959317139407772527166772323443931002012161228183015956169949342188371706314618483893495021118149550639368922849027807119283687915860422451789223835726711382706319379988468465330663684485065691163161217019894199230088639302685931846953194689800254314559070347311034655423852692036026999732676603504100457454729807071598910795986072159859348897966679427372827091656795546165239042010009431578003475240161576258145583831198086897416333252716074672754661697106964773757249199742510328678033757858861773904780060520163091212876509290962805732868676515819475119008621433316464635901080209435045826375167021928044471333775668583232185551935897514471062680096521789726177342486940994627429811531712643858649127002774462264551511368889982286934496975240584830004490622666092095228251894576035107823718276931359720895490859910821267468294980028148724961194853709211271763693926441741871999503594065486074138448413673790454251404719831057452131036886671949985310540710335460083338897499479598261534585478127244800692947910060732809427723677526947755574231664652142125032672425481943779171315387271245470849023608804463874016725494150723189437351948059822360160869139851515518075689623771926050187398384999104796090673051254182222620919695960492166911947450011318368171986045635003635754010063978941361279250840998682520617701826290839597281430397289699263892187720079636516394547169765520529414267141413326834813234341534104843476648663653728463210948166280358229814690310451935715025508343325785118136641869628477725688975764987415988894739166292105677311338041993651928435879366406652168044529628337066575712182950527915838690406437614281760072487882557796429780543564543910340789680207444411584727065529018420551863045504468106266753678503562239751389425537085210363736374774634422965291742660453985162951454412622154984293002491060208153471996007884940882126604398649333916293266370004614399679481331893602797602556254969439683215228583895335733825511910531803812659990202292376231643584269131341745889040499392828709563957265375486050122916449144214812471409742693954766910713960723158019813146026191926815484012049637912673191170912255160240900597283039698569330240825171938708859934770647070935522964380000431201344628646880251074754492294265742823383819890910822603928791309803996604464230011551594229258035221742488042694397957586388261461517956622494519020889982804042412203613774962741100334791194409454544179033221639701114243059578459273777662825633366486481300210461715519653468755940079416212897754101630382639794009870085988582841170604990651014950912441303358350421075399557300504466606814801278138402293994602416945872598644534780240114294043433094778992982319576442299390964049252352528477655208744722468278921795680068996104665873756325028173917152807508337589965616242114671400500473211262168845913050847436667916300905941321863232583726770275779087982369546279965275341576048372851827676064878371314568074689717826203494663695786238251411478326078576607421674292753195512935200558472861961187123246903203166956441952383946865767798583285924634731731226958704326870443938074960590526275449352122889252179948940472356321432972050410608288570573219635185776851716210076835078542909575579893250449190423254972619496847583912531406054438658085315199902886229679715220517370074344630031746769842528830249750303669539206830272212246466255056054885043033848420719885206735896086566746316993129160637399899143901762787333068887906067915296959114541533941333210414879317837833108757394689393564314812865796211248484837205571057469185067042383002264611021016431961154333512411561812065604044628197078409611565690104658217379534929175418485621559573058678508240529624345223139887677648770176371920164292829689265849275168169060475934726322644085466715781627228414959373186379799443152498576916992773617933906668699941031411202809422846792304773503362068898375556913808418660622854186575443765395966390626994923657947747702291043410296815303404298214452343197854301662249130489907325249568864852482041778858349335232897096809756517331814314887707908719641239390343456571544711229218535774739422200490840748544157904590824463783865063715628297774147893436272552320759526556129216838006681056416779051983922291728402179262653881408242545775517681886349110768321865674036258338653849241264573249940400253383829806223521404014362367924615807118975364326621832351820903364573789303606133992486971501528439230080431005341610368267644800171570454252396419980856227532598581995901841324381882884697741690116022261844995980252960366988503864386893255394877495481406643760425971611490299577390887766459637173191200611307530198050068926115862998820445365271149567308704759478206520743237678899333171026780742889846336770681095077096374015461594163346425563776544955369394347605290662507358994907922205549792584754104286846137431263305480057066546245137044180939520714533279207410935548921192952143004689990426852615395324813892625611452572554336837667966549302505053719375143913283957059282432730787260812140472956758794638169720569220560480739072304042082769946566603440759788534557831891408133941352878016109290191748429472411626280505882238416713962826133182155738224412263061169317830116895282335345876002152602682834029663325531702124328824764425013331151646240031676838919586233905994579912000447412567138349352574337914968054031815604735148092887074285428165522271258858386371220858346541852327204067721196088254057034548465390637198025638990701650217550812614264213876388693793784523993988806770606922646129524939618142681470374810989060431383463619763412950074510037890989849703211648019582026510059331545182757331508337724421863730002997024620432113617067188996074526994178072635297200836751131906462216749695407518126625526322998062358056249097389299351299708993916140827371055226716774309515563127067351142290687202346242022452563596580770257869700931020518438605824649598823716837527455020864823391322737532774804755151966942170160196350140727497227519469148954376049534374211094522192074580399377902299529635990510543148534027291150685094618380501741180567966261196239165364666476211665724790429375463210035264777400667090287568487704315219483849121620606736592439699543576665870709981649769481287067030847234143451854326740507750952045789353105864713660708364829267871196000049367087728402431703571459318341903244391098899114769744442537523860521620100706683182359545201899795650335406025340410550180363008995508285852864680937170239662910681413507679140404197131321487719040376880697049209460473248712159089002183422098930783992177463133198008797243920970942249782058840278824517397077316939808322367687192153386961443348102659375594190875677936121023959975787640640325516089135782277157087587825740583727825161334812203626466603832012959330530007136204307710561600014357354597866407391382568551672675473447244725318381177453384695496151844705378825904856528259805147780703415515766959221355813862279966587265694094615441740583254562462328037455067313981891646056779203778964438543867498030025541215383773849220205625123430834683030780769603873396846023915792910471523794049713273133695646228214251702192620783830382110184446279413592746840593400846658317956521015767382354786846546176988846029295687174774374467239677357398845975149264150271372056393224044739704177001891685735563576245624989040320821346357975913145163152807085320443087822955690172381841164940907984649175613603337919492339088375657861427092728983836841180441980366492193734723477257025391727439112205411513730797615632262751140410043947932645999703479132009661375088615821458950399633912368207600969203055307381100361352157180027740551977304342990503020797051660372160924833818530219925976032948751548230682327568262593445003176917912703502991531737714269294670837440076827233404918430849545647344259172894762318360942441939874941211149803842749001402937947749659853636240125314400192155836019054962102696657135311687846941528306151582681000952707500452363059424666857261012187041303290287751242298848839459774717197795736405752450633467645156668582956958943360299671757323492571489157591845866199147554167548265443684449750476945198585906542432131366535650397292700076639694049793627565073596896302955577019311270623161401998825970238279692799269271785877184424554668479598669757399599215178952156549971603001820194593568164312277995719513785020412777227854501647012988054484633981611687399837488350465921863791704660027849908447757587276980790510692804194617572047542594306208022870866260210807309621716579337062802908475238048456113024667507300095699803845395883330350682182319281130512162401293282168552339812103339573219273034293088651858475782303511191544811402407507713571781580430169536157822643102280132195335758809982801485676140372376605375795302393542808184989570575411900259917650664323288845377009676954601083716645036570103836214594840878169270344251888008361771913292410211380391824098742971215113121381714998360477856491620134024139343447047698453710360955664315805884829624986748121791789824914975483780830421912713778464129162777217308718028208095877095501900112864751171498757423518725457823746532573328004862050920299986014679005283074969211198831267785939249989148352007568472530427208983304963054135950604829984911686926324131304811641910210285454910114780312094055233650841523231797218908189797939939505129183541351852021764757679936311282196968450568729006504268632304877546989662743517763678519451581518516785342673175094916500498647347104958945995952876868936044046529149744976518774358729192961801154237055692025105174004384979012827933626456440096981585629028050217270382249992148465656846529572874213998203293460841805275348322321712143954934090230112410812203324214852403198005768036104245873453920085351365347477523278028957455469935974438505727496027609318839707613607979530580863747783038995514469371106843163064451680016553653766875608595488485362018525934146722611120039208883886479037166490160260653636928372768866760240094549778112626188835388102720886326323875173721455764045328640380921166181952853530505526080503775610938892473209697396472347766055620153041168824959968200987602996246432766117876359969901959836164583641053756574876348006896150140653959981248210728237807764172246564948549890407454057334992433177029980548355825749239645674243957119693802183347723330857281428440039609372704699528734486738705424899540179263537687582911748067532541202412472123428844548091734324071135718558207909003293957194856147154013160830197861118962063682550334304882615189188852774895926993949303118921813506552156594916914365565401739548667840133796294258976344179675227417482115595278314895604476058108363062063707798883295758049179535515165100902859414420493307714525273912484937867292658372549565230053898957094797941798527373662281498710407742882877209241353896765707047548686580618912978177668255639999182038905140758785333724922622724470627045688500247037162728690792537118391832370300854448571185468764812597581859494301652228353965513707913289179110009191044643025415865655488814356962406301915774332151248977729742272912474507321840998663882480070510332504396769769986212023197344816823560006336077558428897053909182086208281842600343594343781387241084174191366548444995967420068901113219384275578881414061854453528091010885254786751746316898661609882439877928358345664691388410521423415520457762016472943159719297373745362110409236267391908666889705343635930022986715507404760588900618081126797179685596950098721109019119823578660923434405668386534066945528070685327170366680858212286294203926222148017663576585296261012788498712915290333658857600249616197592640493792165150846361541255432267132474966425677517761529702346747652724479008898145436002804302239556880379719425589745851735141632605612728432905553849880826141506266676527594640897839197698382729073198359874467986150251465061865962894913280068363945714566486341690830840006099168886371097391554581265907699284312267548951230663934845732610783639482035420000664053866067931609124313350637657575170768781390590204770498430054105697068335080909666017094327419399799850156890733270744767821602213457403344006073978057349479113133635774417364597044450189121415951448184180420138235979325360920271332261340186120447116417125125015010783616449002184093579866866244718787903249406881466155984626408021453701782684376903131023383445819920616976537260510191912976768174779751092672218608409256834740514891956794495187233494048489861988510014302015118467157502053446600040756586523858252447759422047543300105266938230159252431893909973855749995454722339999348140802555761097691675381025931084267923955575972517846195142247921946489043399975114188220584723364839638465984154797416193605132052292734667143018741468845233320390988205292493818587123900538655721342360811611769293788292151666689763747992256771618596515355360154717566667088366939273622402112743601967080549140647520022775357032017463231707097000704887835233772767625678190369001282946913622386681383072071128287224910920910478031881189734256659957412023181278421425199006047171565130042321482866042716482755245453575359984825629370176292478948615071191816451352331041799107389284792420281246892967064948656709522432571950472323045834734037783169921113472316176936107112000780685203364006707371458556912379160447136437168900212598889640988580482116913228050325821850299446917989079786578335139633464261828567009773877235860348194600706250454404390909617854165897889771307845500683646138865706789702639291763356024542783945262869756574691843802369509977961435288860221084932226669104536387505752170763103878909035269853083419780530239290777278499932550019283199691737831690094273163457707198186839998250574006105159739378683412461862516273273963098587801092976593482032904060285255695589743888557692083712062210000543716461330453710905375950152957880537432501042138670964312640441220333175643044215287369875442301905711192061333057021888620123588350094727265062103330924710866803174909236285080441925893073233161218009110193402566304294796635082171222912061167635158636785826218675254531550550575071147904600227614837723668808087961872288478389693595079189516699137604593574979074746748491861714443358757846727163434201100110723677005382739306558046766997089276986005515008601531085309461635757845214989251866515955272288944630501987618218801980139302697691654893235892418794072113143581860117734587538194520459939392661479944803857837654617792380923529951688291672675461038800583815129127637354088067554205036155943282603503616101259060575998381125598403345181961925126867847405296329752512439096134154159642516722727829953123335551230250269650350220415575718978814277790920759830072147194066799459804393715011392012145093461576047901205946517921472281752478484145112084200442587704685390149666899685426905229835960016207781930515089846090244908826614805999228075224343864174355664379192167743723314501647588237546424329953054045364327788996673653383724022515807384750093545540846847730084954846511331475607424118181721755342691610818433733687531328396701220782575724811200804451273641313822111841216524221345278224188015418761991069448029053112650676283505679067077760194027993976147270115049653397881788188760099030119015953871815715297363518128029904673488088413447931097005172643735127540532788437957146074163170810992339867104350904978570723573639231120700468827000186578053488953359179531548965818373297393800861375510889076968462725360988514609083487843629169490904508425777811400618308162491455972165604376434369097532006369900109957421638252515795807909559163671522528356755686296265371976620786800029056083241892480614656924350668331245744238858093026688890472336927559735612267432819867337710959503831023381633859477219862446997989793990219127359367793314487064719199667358769669821963087947875466455191120981028601204360880277765958137074642855692257826349755747092205573648023824981207093762773772299191699766004476920817753847697248781513073327310931662097832113074934757035660580958911889434211654303935509832077951144339141970899307345922435643984091386626672818624668940198030400734557433728504803339055339252989619493888489737195901660643222522943183643774098810048407676860772565490826020926945568380616754017796532554460321833586352386185453758033017303214842389033803700525660240018614654046700620605499838716675844584349619340459492504255641567090943493741672989231776132082276235264738034966368827724093776804117126567114007212923710880763352136831702884106122639825919870331776087236914207442877243267033955910651167232990377193833522676675482799101924327182941495057011859106537733570864168411864211628978785158207687746012584064634393242860496393550852190974675988805715460555517604248503707129332741233517208518808601392008622224536731496124654352044545970968043184702686686055146054776274518616117794943645108779803210993541882413586208108189860444802445463693628387288590627251780702614279833745651535827910972789696994381266768087703258652592987729860267430853916844041911407822932703189413099928651896329641454575030768880384772920868421064161288858389099562523940711810360740532400388550424460119269148810124255732677846816476382277694719385190737657533184950630181275189505361526351244211849733092654440485294753578740046139624304355210315793899215413113436092465204524903486293785850058473336064110243937177830877497930310640200773060333240835539642793228692151331291708651988999674822660589150427442573187148242381851320849774569214281390641219855615728962529168972451827146423434315321189292084785857321560332878941958212428438248421203966216214439093577418837417927143641285838903139904263398103734385816678181380470040905448883820254514325375523803490338028808723320129345953289131372263560046798394269531917248552264174726654665441075409039296355057125777918987126125444494706692246268953083305840156436293965359899764757714513142554072527636714130679598251445218144049170020856868900560588879727995825459240970662830660691568316152717555409170232031308487120405699386653636355339570287164709176634045865194550948116156534250329907914108288059097009259932208554140759497680765261621621072846435087488589401012523915095792114399283005084112624892566106872909020198561069257375933327805363404113691802316538728824606517158020360991059608615644682510009323031811042194858861080152513141925726369052141116092967898314113864958142244257509967273845004374826789177886457703154490335465058248668319047008426315894801382635300392630654598026289285591947090893463433728482051756652138457511461315619791784436593898351523720969491488492301461300029688383530779901694567965208797912940596676699989703472264553433534604173109956937191984099271858773079090096268777961219447523366137137799617772839947237922699769646479663196058678862357652697466925476000487965090627045951430500986328365070270574120009377851987171104199213759353502371987234892219926037242245552497783176004223066019368356826178829176718759523860980303617951019280094076387190091809545207916730869403039218552183273344550767948817340685184471498297343582135547184268443534529210366096676845277759777281925385161134529877387243920618276249576659743290397932370158940308357420630930006980687791705130926037914087230831493877943787359497262016370695960817964452406708737121363296931099493427047273292564992192846695001804440142613343905800336453723016563882137055998013214489858394536964466663857931879524734168510657391416909279844145555025989718519940817981316875385974180354757624603703484761789076034145305933691005899506778112786771031905135647492204587850091474711187983609795763028698279559619494304550893660165389617358298177604940396306788743799607235474456418607974460103702122330084498447769127549912338679563312661197058367885492117977670083064949985975694283065975602429966350259692176359329905698014145177462707211722422614054644326764583868688213163450564032930674881486924580515638400823489622048825153314988541242810842883335036648035154312383419063646183611334969750692678621116934767392031281532905076215687585234818870812133186468894548837703606687949210765207371456894098779487212102701822357294950981766153605413096725771826346956925147869242487110528806419691763692993556979996542746607622792093052114447451091801746127130727479129382023968361760744862746785304184806486294259931817081165266315722957255981072601781937328336575714544548728720022047694549099005191153332338871037552738647745361975946865166409169594911566587730566506792080568144071427928666401303751715502961994677721967978071858524942775494592092872353186502924903788137982320872520601469232255307206990205066055495859619372474574428049138565280739300740401972891109175634978106542018690830112625237652935718377006464536060501989965605533915108837248282521448867846447970968141290930671587787684266957698551230903608584074359470763413227251013883227870989931217320120432927179102783620724610130557459594790376478470606656280869705066438163856897252152304148091077865108255712429266689632941126749127278262978362414285903941023422554965899250654351071737116343359766744083652314824839576713875116437776374352175266099927372079813066211535420313197489753847588574427958491090247245917891898746910824653640524902940477493352763915746641378862629202666217988864436362892899001575070776364944928775998360082267452962344673639772228476178830171846805810649042908826622956380490185617446534001001177599484809782914282236823603717086164088460294076142531778574593608717168208291258515690450244055649602570619005535143610792483499173719394962532070654270652726666746408554867631018762494665983351903964936291829944077424896517680832615579415938838313098178077431684996865015009293468782406639660957717846710777906358141700873200353753792864216758459930691126907572721442789540069111969806934131593756339228700167199227565805323726744779325814842859174595523919443365830913618416421857295902682747123955163255788917412302706127252662789883958322055749133821832406580264507054607034007622481852059003181171338804273788639577076181606994898024656483737512489255985108477483174157467173651720373535229901360673933199003420857506046714134016781076073502934193186858732047510948524477262030341108441378741883363025885911870168442060207786846765500370368606661569394025627317401801508268929038426175324577770975950255586518199324264753384537544829291714873782305427127410218736835218935436208393154111661377251906122688127189084632437272024276682929571792789089552343970602285411010660940885834187359631396402119156550521699413607894651781912114883403302710083090486478638334102843701836689114805882364873060932573517735972142502495486275641916585819621879095916442012094786563934059992654534794477218935586121416577668404523131637148693875501271842284466103756360948883214511089335286046790949412411456807160623726527491733858372595308797007035229484691790605100835933162650924624665868818246910979955936810148914611743396896021827583889179331001681440843270105921293676168442469855909458655562780642566954057134133173308885379499538379254836642293640941164376146706753480417427732092211336082069633658149371646043614129182303149316610797929038325960962386428314606199254246098797631389741752782511255581150081476092304846277800171172881724411168057106664677046201034494286076249267765723843440744669697528756330882301797406801107185637886052252608101372250458131211701753274609705159823367686263116686817123628574208542712709204962629463955296862777719211652806232070570855003557349128106060234290211254111040721006083518908872652097970486263534986888231114244809535053773449808559811184149208652875754203491520719154348932501475095245777616872437509275011419099986897137090883247929749674679608966800615862877837527161723596351783646504736558857536387710762531397704294874650573404056813486074783119143122969669923358973990415506949946801849126852510800118931667738148476464325870798370667777951065762745865562303144028411391558144102759546776691642672955480619032094419402421510601982490887694452065265754941990224422465013213803722665041525813468918297955321873426258904183878016284089771867067678251478570182791533030549191363552790184596625987718095443701541340148859630026324714237849532929175596294937441805275622892985636195993398552122433608176482166801160359776635891180056245956301643354754283472548866211112938021489513718996020060944614574067678288943368343575439714616603342396063854341553339276269018742833479952961710782345072679420388132933655703827871229479727541969063027251178598847879133871543848441674156432707374964304997684398120204306042280546826525647557903629286741533320198066368804346240663984911662149866623913797185243116837989407911619792302086890252738274554110699757294999930639230994735725152041777067095860463832044605788575213010212675264676513861902127907701143413794493965400387297544190356975894430344582026055819575685656460758332826795904546697793658980205357901287683858439823417178662867424640986019539698697776770652353403549279459530834971058666280557919645577188066524858693309536049971751564905616400227598675295183594488002143054844095249354075129455389479105726397278728852615321672527288848935151728177583425702457531370342787331235841475581287400227792812676284589015421020139380148688278237176409991920501889740267471209552367605697696427426121844139413856756434818149659238635017284604691518198622544679742664843294379911444106490605214319425183644956184445338907826371200868855975545856778148531291646905293233341171561745359500620219661086692020059264490618605806043102692110786316057380538009357748386534686252245200591529558313946859129437491454250816517513854906245109663394036512541458608401773155512653146702182463292900059360016858857797144047538206428577562908530106207913459676404515119605978196004189394007138836071465101730249189482124401427218305449676943186740091460237998285315440649399824171048416106729643319743828012236926530179430524262949503117716354960426344447471014540298842926966009640793910393870205762528563741936315863552629284713258293762002018656417144652480268827829975574025059337129768096482314892913929216553252082701828484416223500267840234228233495899377983420683960428791154832099202572927855422376663197579534885923228537602555875467928400945770008155352636095810513678848975910449033385385976886763693360379412193845128935057121280678908646710810122566314735730040005747235839143480406354053802980294052760768547522487989190665575449997154032435005148555284207205854572206851191337735462436788408511833603796802538766849721509028525130277561085377737657015301969045046226820142554007841122712515901299168839649618275736635320869439803411822171248546184626400122552268039894073639560694322936961653099705603190788916756834449745141847601310080409813095114789799797672743650528061220827068506247766470311563797218007053436494913787528652643142879272458679776203362623337588498459176482884134819273377383117448159186429698444326143332138391835293040930295799341660731100264716711379015667535041255216512666221575703456136669873215995720961778693233617550695696702034840853436770599469187440373032520154988642497342341909916599076519280044170844857610663391698113668820316151658751789336260079394125609822671919918406575119350309835961234903205967614479955918822473671928846174303290422625418044392255911454381532942422602866056244009895418419603126146199059543717998874261511859862786455991209719021082218856860607326168678684775083488793251927442437447906623507355361309578916994766108086117725920764769706902931729450126260523874722021311404936503194209610492934032050263607030935383747209119164139006738038815776867903726055147661928907918868928240353742668767968205336785449045272955988703734863277574398606799547926694489364347888755006892744551122499518174852975831788630356597210419636412962917592993846811636072637609128426279028953436525655894985140455689638406817341914226976253540512554944024802645854931906793059742883670166139714021387868537040906077279700123261136369205454439816923645630989695121889512844567537004958142979621296943025618349658920838070583427272128486179169884665789959222325527858070722514858256923941634111659916219953568565556164604971420836714259795796332054306642457615840407588671979314857429325160594072784605521825365564695625871573299931570384181131773877159599851510128537051094006927236325873091472602117065335318404882999533075907249971670994083494017524245169795421050879762176490874249407441644586238711853172496344347497814838902656442742272585664744234417405948790463662228496674269518749223090518261065565868698902956140285135946307106779696365690917248639785555128113894081809609981660528208581372768961940300565335206904021786263279769434145842500171193253849781053749425376532522308065885376946500218255481314328750617081025564045632479734256799487299497868251252425462963933358636088504735628668302676181275502015242731703334994389893685276496279321702766579813092078170263150540443120928254961988572267308072968751621029396907544892365496919803396079912300940324118428510415713747027767496798730203147784278022674284722667524607168754302100717314212005056857312323390965144199759055048434725579139826670937864449719317661271425830057603089365404409157045639349626529871312023326543650458491093803487929926958677819010889626326268466472023577683434789798570049040696516340770870369272287621997544729312611931023065758226766416585584113811136917881162097500826978997314960398860103074630638302640822942277784184327459363361811512716637427380131156745164870402084510579868990288389871997616412929621072196234677341809593317449986137625227250598260655637015506475206558980498084208550110987557231347502050619124151088535574706223403810143501779898087868682167919523590833562085927756545288514032542012828611097668659445683372416858197858117371080146321875916734050435157170404860153314168028854493030411890020732124148723530545210497132445666053454966400890475903310959153154658737051932554459944564395356758931655642958375265599475249360063714601529050839343460050718166643273956052160963427921016497019199082245745649267096704371855260863732126497777052409683195676853807972404952095938786368843384977055021438359912118564239957927441272398215298528300829115218435701335788836922433256898065620889953752209137166111307712826662615840282952795133212324848273050677818477549588201301360371229542935216847438851745189777616758345699707504710269505059620282236746191241237238845202643631049701728564218879596355026779400834439989348404122883786049794266164532787005924400140248279411561892412130348933407022356954134057644247958220428400649339606526546180534933734609817892644000044613370832298513725204265195009061622618336737722562945868104415654991760891336763568785909292946562354753728285974434363945035088818122526385956610919836210687248617194132898320068382097894679617755805984610043852014952531773748394199122661451130008159860492633349400141722153554957251165160692643220824417109079827596812061031472099834094936037594484230820607763487289857089764103261290190286411810475119662008862824931056725162716706185570139141132104660046408996734504052200785655384564710496324238337477694310035868691141014527170458324506299577870769581847224562441254328510825004752563072396516653324453041155809032199807766470020725824211964016625914382279558210813101772063340634946093823203322827306586955742139406236226924552910608705752511081189004168955275992873140355755060491062633562008764135200621941483634105587208090959917244769889192163162302002693161448448327892598209394216377992612106107706189941169503280647231784360000940450593718927363099130171843351058391489486536867498837761617342413576012844186335991594211051429657720322627421800533213976241177574849752752088315550975677628950570492973792899235768227423228272886420437033489391008830034270031575738499958129946250065085435842935291646962775830715248458840384941985398466886148640422201048546418931942363074070598489368355643598673305038132063295662437490776948580471819928705516513837044317052280328839683854632894123169714585029748176826723621868224784826548840756166380991046918718781153799206243121681119382139270453964504560974976892151734569503021607178931480046497885942378230075425972071309651133185281420412804307494378046480372930429424063421357830046122495198990037140011540899640113536855848739309324173585302674489949846226910931389133648893909876881324399703802821237181838096338359603719193224075625353058977753743143778907771385096752048526085055311033048945676959779860085896968182208324840055153800423305389964581137326532811332524796734034105946456666396770386409737855991852353208854038722753850795000920726332302523614397870666498684311107382248745176799527039298584521374268532374707705871340310082078397684452497206299407687501443209158873106904352881507143011048495726532998597386866203679872097212223920386711408623943494776668993429324988616375938135039495724488553992551852812093129728339532912628416285606545586941429764749569412866445205442960059526784082599814176345492529057623863770030999673264971908787892362759133593164295804752431638316975237189198116395626976700151106524104863475224300750306447105436837844950399309596709799663573444578632848173211100245733278741499155987239850689829310814392428898427309646075280591556029837893499849038834465342349222762893255813314022107180437308000121732301316583165136296770492266856523297931422527912730444984945364668665500321649204382952585692867337747857503835328420337991772358932934156788535364559270400408836447747945631465675579525153619843542362458859888204832324515667058644199598378403317771988023693867035062060709255870911121447523266839422364542753167019721107623692063172866843708806793695081432638291207336766259847841754239241130366103187668384528683921779124340959484672865293262030593481298456464012486008747951426562398549520456222004561283382588713860712131528968738329804865674622483796054017508786620578932922277967478389369050218241011198149567743634525438681355740472865541618553738703170049540625048144198481145885998249134963014695708476846394951033041958663259099391937474695885050156461843291188110588338235508488695232301627273510741206684086221293015023048039904698784919100994276992528203858882409014049030953300025273250659236049944092159785522218454100383557358948040189145982985940761919140072165891119835052390741682694030782319298494105104160171371615447905279645526344134756109183094706341897697612154104647696492657152318105670211989378895651430780361669434089802591206932539555058129544268300177777138912279130643716048913962192277462715555636248938327217978336692376465639856747669927861069056893692150989157867747218874098920286118292429671663898167874193136417795027721283332573485402414990668547202028021848476379470239055780907946687145515684866742278971539723772994338987332918839990003877106095184026905515413466110631743260234321238006175095926837470039699654890185050007780159986166272632097763663022293138593474939609701179429718531459923888663857086444026259695742244390846071036500193012390886235624943543179721194624961606070636654368611310501453607423161917848938423999030762528141414956040636462447748092165086297879986842803864438217514738568767547033400507849875475206487351458687261384772981733173914505106633394466295399411272714908363629503654684038238142909472632099839508128409854036356944867430231486326706040015564678826636395324412619493721117310084708361321333594694965065204090540125410675580279035332903354468255793674586341092512161593148529210678066041237647896523173858692024192647190418092810032786940295761537223608894011473895950119706375689854291363485506805044995369497121577889196450008190886161794000278643105037143746304306170680865918889583309585471537885550760552559867613821526195285087521909778546573724109716190383524019390823722522094122719570222951378530753249513100535459502773898533617896678152714320927022416522853527720058926234755414288336414920720752897889903418594134746338688621622892207217580537984797714507669199230665908841712245991312884757882854844165542336330654074862014433012621040173567831303617964733630648017934672440746851545502546636996520689101133337229052494567544201793160907933861797057554290817665010947290612399648018938499014978056592003889734307303193965311394430915936610940801019678234887335793624696079365039590948993699300930090735923404216197289844158300738398722606794194446365901942276822234524434312359379846758454903975519810999300616722479437249047562387077465805856909573928236055058777561586343443546853393674495490162700099769302231636342812264080929290685513873056084279359042022374394652957490448153528853744223241592278385317722264970525200609033297503690631405278358685197480452468611296481395528719540206161650106562460744416763125946406108942292214419151417859725471742549198440957386806042025549779901086300389725780328249315793648217632469249825637178138542824250517520750857311553087782963715938339952431408138211002851953771402197359411360980950490635927971676092558912686333035025019225654930001828176612087362706785359052484350617267007130024797960494171409268247804996519768231863265378537286205204739700855506152656033870955649510796059558407420374235993986593560384841315312860660770649414711325885126370553454036350920605955441171159011885416194390787257348149429152714927097134573811595698515168821180662711822583983639502404024294196269971847407251242622714627193662913946247708908528204755022748249823764263938794630408826548653389108382122946464404620477672193415680402483688186596400579793316299446701803354546054549768106347145575704255896835961105813661531597814276994817002037121910443128332993321900692991760905358556994829763432313328008706139649441542713245527557163236294525353806282326484919484454454273928275863618541801581734120200332719817897822527110296804014984576504563355901481234151208784572021620812551556409473432129757255915760878361350594168274908119767151310068398665803113385661046384325043931759265426176382130478106865350450895952528744912771178628368602341701070856696648387901768024543923437411106900172941015804206539867665583002256500187061927991251418427686563656402105035269676444795770548482348591472298577165665553407655220975967991333677270970801273709740518675579298233989076045394417895725528581015652632072438143700827425769043515482038437935079145509426723547559128631862258246942647738777414837098548646133043100482028794005577782562721107085633205171644041999881555947985883944828491300961531671602711297890490575692022127844056643699654501393893465599977147646605696825660246670287142245445794873413140983365157061297427841178891667405559424715495160014206467662517390914388331621475547866033416564636461984778891628812895470365723998549084086630292722104355683889534469993250292091649324542023821514498936963017842213786406767774064179908859753888299847335370395801437588143180528831160099091285973634965814944066805726498181716115308208722673924752889559429397667990872352562207481161751516082340892967812134949841542658262525416755356744491339553719147302025484903709476858680331552714477879464352271769537448101943082500585270666368204672277781957242022397469533019001618650550252642388473582078255996978438466162290194849748305868048673624898221569657467168702573481103683382572523289622502787781236516788817736916079146193505643420105506087793618675562219453068052179946299424784523581652512171261042167735944811312512024865302961408605867392761084316074790371202313414587802187844164592135926185486774111278226120868095961467209222507566500333662922009705034960730856358057282863447274432328245852591786796920835566718858547614364230737756169962226897092087615846641056439005274308429157496596703494958775657092701748335227040996281148279983907578582003451167059526783820152073096694893842650119094506590788919104963524784692156593180699787413006827227645092503755119557681503027029467356787802712155408200887791429098991566302275480176223076139001133858873574066352907854028171261192306473626684623261541363009497524965865655909081572382477089486301847713672928633422049675037349126234303971127296357949538376206490245332121845042504691359564703770850942724705438511330547691158418363507777833176998040128086311001656189624231433789312462473237567063768250153190590353101615758035109899277024652137680532830085846881382437223098360089287206161499791887481912334644748678995514390665252662619864833202754615044438425178005871309106948434142909350337995742475529148901081088470605392976562498412176051235558477471399717427245739927542633245227320825819053148206839935443300113820726875563434692186601598970633053487207212738055897791212842897713433315236219129533388927108149337997561704702041205737234661819025378797077367725432070440341758079701056875826731420456214330962975365329916129751481764683637917926759798300363155190775194830901593150888252505478256219420046079867077381232132772873051902600082094248330610030686437613434167581791332227804589805458132299594315593517146198979418590666488706439042889056186359574590948121461740739318947047789078750169052582350907444387871989584356658534546667939531843756774445496099442862029902158849827677876931152410835381319600253075894318549885519225837028136029565118690337546754346531293543462474849969719766776118652753559585441631003860816721537159063309321576015490494949179639484856353461776452507758006472311483963631067581206974550973418020256532978131045851919950556058177931095809037439641037348283519896931371966733454099941940401701687010702966642780851210573141055018860045969513819627773700730548766388622572487879291076355985460015262910826857485920523411042714274506347320169729718577656652511114180517057210812285665450506149850713732322760491299139436852845246532774253045402744821339577302812680849548978087950949760597718184186430385890998329903754119924599974297385081375022150307991014565319733202148382856630663758958833243911131234242458203705996894078120911555035227719721167300061378366714782126511790003421489366271823996752685699570236827099093800532116868930430341299086557631586819494796371317163354473689918860751406036407890540792003616621826486373293617145823955881864490698846728906569087175834431339260081391156643886751881297266508904062901539303443121746805904195341607163996480373852466114567366110423955271206771401728621874710125187658107492908910174238121517700907776896346165233483907611504216304778522503055625926555290046329391204866799147518769375958614437899251216611646351454325428606170661368933961899351841338734680992134918962087068024776847943336326202783517887807922802445030358607167965461081916656671077339151519672604695889554014638249209073742269715276149595564204343332032171372186949431862989478200556216893442990951021973948479521992374537034702042098078885253671526904831030259414493293285070908044749964266894299251990104953074487017351315104923961088739887129726287023690602352718881332440443214578841445856713086328128644175750417784271882212060882298631138055198658781895071852929798620981753134990321307305540061761709552654407724270825622804592603875815580721143134011349169536021195906872791972328720251546681798267108564671801952211329991371894600994740428492528474958668403398416309994854595995576108766496530752326456739981509312166728929696575225429358657594828438057382410084164057185291241429878266790401245831671616741849552659320376545777796363932979756059116547780429264296440620738439417549741453217753659357700164860515649343814912707303703475258355849468415647845774288041364762348256862753804152340825868189564332004250286639946071461872380474660945688987438819348447207584503110795796329191940060823610959071308096798741973330993066521878779055263363058265774957230433382727857337083451396395372068561329843475864890570176579627139276737005948759907330512485167684519414246615369065616857270864567067676562647422975002539201762018790065474931885779381495346348279196164411003686837900230144745121436787218690546649723522769727343225456520307265552659332301353243088694608452792769490207948320082249071003841957108408441083327860587461256496101329138546207473941920753129368165925388056685736222973892922409412479454672421978590823579042256198508828302616219276519479478695696945407724642261402215461503376855187974642532046935876682438285073802608088626791974536730330932908566597759423360799984819028738734320859109246952312632741562943163113833767507473114847370323306830414386855029511942848899748580956986003865165973163936382325758602149650397093426997388135112908095067345839756553186985326199348671193249568540037306990199999915801467263318746795185389282560841257421321604978153062368062426667643642621479905211423970558735072550461712593483611877936566298757644707268360341390245495550059855056501494485716956827475274116126029629297219021074341440895607833509397377169045169773172576091392898675595494169609970954694849265355149623633748849607185422975440433403702590284727329191229958165877294318875520733554412199774280006956966717703457856407104965610578729727617519507735032027126186319217679211307592033262855982351324526520333154365815182618452576670124796245203501094399819933030650684282995195876172264886012856169410969389519784760205392750454661311744002089803936539471893481423903394425228276671381742462567934952025983450043301592106261484528139568483055356465001801981574149576739691405147693643597890992284544753416801179391925264248038045419885556757972411366434839159305356439448822452715991253652435242159211332664746729760599231819767925305065991936362085275253152908953371965752905920230351296918684922612485910921721235926603700326728941986471834028495617053220888349240139694295975232320499185276467733330138371608564426908339008709562635887162918190267235959506956297647894614918907816235669687710500009902580767284792887467400086385581025140136161562278878667237280384161346548076513681886039335935156574881466387717465094082895061438612862004138619491014134054037458376440517920387534657601007065553525160705047085581132854328699514427069146741140083415993147917985314469342094371204698493051254805279726755004130496250459308935206658119364596258536652637056833385587825928084439231564824980298393607884861411741910239918537300812413849389496633851613456696145760554997215779467036907423005289886422328388375797690320276878759971068929806067778197580143784910193270260251904083356812596635369706332510449841874405631318766085559056960288748129364719715371895856552663947740298205662689960507199220140442155547894732548223793578827778180367616688818430463923039297803135540581832037616643288493695285813461965349662837549855881411109241560712966674628207804293643588149315185934195423436534648397357417907633837916497741573004815480792949096222796451378831888249335675256290056312344854639588685583874697601422979022654976170639378576057507634164267314918670153717225488534476469151248419536417141837717621215854845562937612964645740338637297593429800423010753493098769905213641034921352814671958210234076860211933936095550745418008928793181911914671958175818927090481937856171617682221138549930072478953699810659476598123557052935307923419638420195096029268849152066546584646136685677489064998803415164160683047958373623573371336929322968595572105286178104120503033710345386290737611755506980104140489873667482728411045509701038374297363005011405026442261687299373547950773947126436799037763799537482077797793386923557774532605450524212963870134390369171326700909442646018158664766983788931488059158235931693725530114312029355744707360134053058586855479299110492191870638217749854798307974654658760375529353276911315549394008209260766633827837891947581869936184384789607147396022252424880552132552023414067315106803640166782841665186793803086595226329539771922152447792677089686943301697106896043105429810708935512846208988707833755287591037408720374124444836975357636435220888564054684258800066146543577658347165029702926188181935888717905703887235771189807120638278889875317166658574661850491233464255170447394058986857873061149674636003429622051690628279375993349745871826345407292090032815433546874836355258997506038654981055020662945277046249656282119108640745411473131945151817305206177115401257413149246758041115336790547980175742972862780152916380573668079116698906690266002269771965230116644698896203817965923210987119741547538178205282808386208063904468819293697887597490533963348458496701714756022425293464759442338995476028114182970560226118227612324935484157343429570342275408166394179193095996190730763752014387018064348571405494296375207179263707757825483381122611825493577683610211611162669576718302627159824625706915748268528367821665736441151584273985700056257829701461300437663733235846932946403279827423844071217680135978744913458746054514979914772288628965820839192896897948815565234854533982219138341167774650769979255504045721351907222694669562819323222633516956646875278608097736255074324486135133955757549827771882448397074757802765201908904184732915136388904976504135924463569520667573093306037701782466990740705705339887679672533944084682458738957549346137736984158005348761604438130989270913527959708372430518748816609122079112347010890569320814974779806686947157189780634664899866404547209689440174934125193527965610021862604972447923651682151148226221094045128314446664708105210911399392904235006591257555072408650026440912203867164757335339990450410872658772898873371472280947986304627352945940917226135934618387918089185342179971851128889420080570995774272865855090460099458527075464260032035657742260829928028967671905059827051043862134616811834141130553500738879760217778548876350735534176963739216660317326119455273594507897325716941506420543094613067450187834858929285744863441067247632338081879986774920059786898987948012486523071992338726279073411216166865289841272364485658784667655402409567204190158200701021303064679432852538137828111415074165762872468323189722282037451428697548485776382543761767932961691507409712395569820099093134431291996073689198536666838852981893805763975782041833229622259344834474004831766524988403760465598531169508395541674969203913541055952610327984866901918194161407813066163374733271769385811710416120460671498276335124166525927483562468613164545575430057671362312904084498097318840030472792156462068785725028347398660606668478223160033049310260465660091780554514889315535697077386071735085363822738204755549138290737526274599539921061782079047481213278175563441323510653067810753783172725720048357931999282533393343757990447035518689259081883737727379825258580759601595472103438988714727640575790252579415970454610055449801053869070746391682320805244037881105874036323582821665399708075825925844184735853139325157538198489788729250365631624288232961851791063675682504337069559197632120059907371386260565954403746939766950523889805516433313298776231574179963202776131621840000362104530828235686114112989191575998101689462818892168497961719633835514301452352165113643114368687508033777432883961244847818957500560810482551518754016133058362500110568472167407758764724201537902599303926547150718370568793195159830160023693776804584611633724099306780220414378930642435329152267944048415718048394402609174069623842789045038187766573577014039092458624091848987418485476046129281544967730127545219219105843387620320848016218235242867783968458154990750198694583552275384099253197107368887026601488622641500495476114448309139602569414310711759902423744434421263538627924407894343906839216441401314622309005251857107649077885323714830294862611953427116485713784248304301993310773129272738499573391400204270005301298594599996574961724752751167043092929369445162335361170617130055361484301559183073975523318241098881560855325923673708352513067495850016584356837313370623432078685166799555649208120866699376439007003233717478903723981739991780987283233314567236603511663447036604069486339914148383017761658574077935356621378983197831965575131173973251928574684240194984798475230437423399383401930885511657568543428742700227527654412939350364497321981976593669972005790035251690665061053358948084459344467466540654988032469729299985462439327561740489013232454922070213080938788331046546169909336321381069800300555891095827658695324320373328951015484892250158093020548882304883551550715302568268770938415784721161279510178178099109878025208234780537205015521634624720549497546721256724313800707000500209975605551060478822088495953293618113220147216138866530076423416379378350597619718509387215343100311357021653618783920541894307644308531942081870884514195787478260691369535158395069915309135319714038750496901691901984890017044981119210243270355796845235780066557079893012132846100176184753427377853410842533565532970373647645902342779111694905246308009655751323965937983603461658514923111292029262245162835013161738967766949201508563264160789966308129655792735651800883668923897133999259885335597107812748214031045603702790779543763535077406426455178972572389565650786491677954330817723548651423414467327290008410167765075346986648478294164282916169980536682741999066471257333752708437064423505649421118786866814645367394535845843086266535211827744047266893110579726457429208974200558040063385111350653604578771162369659315806222940909866199414577523218255933183897399803736512824985925340359505977300288601641911417327141457087921474187159433486665470684164700525492329940950482356525196327129892047154599607790555577109310566045733608604617259985261822534060794895035801379033917333931392033143174854492050906769630055714666596963858060897908699668124589097306884925751520419193949591214886945104269727343432428267327912163343767989489325608089469539630698247460402509350402847504085237956007123230422234767471116996228783144995475531348439977881682410186060896755473845863896736643186327129798390805555976807890887630045329272181830028710659586042259174055660474041919441544847546208436194794318552277875016648252920012161939718937385568540643359206181803519671571636611279568663788688272363779698589657551014039434230188172994237135683427744891293733452371765036720819168951677074289467859697745266454445090338010278088342270212990776239116331733451850962364901794337743629715633701422753710374198200917982143011166502041689115317473893758697597146271631176915611300113430705602865980558666559688270980265739557745721572665760678019720308240338407464837811677671169085188515742034187200411640117785832568591317696973026502788719048578206764634890579605290904671673929067159350830442717536685855686064885449692432801629089983452279485303933957703192873323045971444751144260418519449970234046439914639944298622566409693871787597292141220846710613472787785676550197175479154860648599078993955383926247900111704386812761402298799594829332937159370625641048439077362041354872566624793741883654167585895808612177915091572982234725115160888304238597431096363041314616553086533148158117616519217023373742070580864375510626032303934571730296987521454353497468556029443664367750185780587448200647234160121245647071633714448210181673632683726355386869219374234796347291055878286946228649303319561647364333729511392773009909137253142140241353978458129624747100919725941712252149710083307319280756713798266824319647711203049271052906390146591033518332896832638712734321931115342790333390291420210602606974410870796269358069255876373059247891498335630414963419264796121618117710470824718215180727013278630348555115940014268394494874143032513179345512952296627549320395442387402962723563701700247093533018517554319449994880253152528080683252992605679250750596941020086473472428404426390958931170332664824243369098208962549694988287825922253285395081661866862942426287584877273755625440425235249341567952998860142350554406606860012710123083484742926690518488625353554928722428552844015823990068692234481114957035187828147210828186023938674774406853683100180130718091940885095951769424690283448033368554076720209343048850831062729564528385855690777230429917701936602230119563870296782568678909647343542993835701931519765192955713071876504981598319169642440159847638387897997749789915011969440790846924555220387770427506971039852406724621327998659512374246516121014788819301871185632001844013401826099920111028154072263536476499556963264768474038282877861528310238980250490799005100761950646289710536297963360338903793081551268670179500740227186171315637010195376202999210167752839645201312860870903923813816020039448108854785829657364918254368804176146768945660411920623407707666453418422522944704948032917736144205715380687437944228895253981716279029007602537859672524214812567555864216477461735625193837887746903449325397970605338437207354842007495881576941877622388014983752703486841135058901788286822582762985584328875171370434230407512178661749552607760613920764204482887662800322963349644498968467534742250367498052348473542132115823046076617937084887952000084353608041544445319916541217578280251860436580177676209232879898194085041890511740896717382768277372674976213724753409496746940013882909693045790989833122805428785240666700106805073659965823779288293190718697526380890660819304983650400929173171085373060576323013044120225952041483019484018247219374815736900952885189931716957899488466847921572944253633233767000472986469321175793467245081484667940805651054526430048648428964911265750433827465799677395446659413066314766312707391189388999129210204022439416667975099681199556637390651446048319042446164921974660223327200586066887585195418876358571132254364900393160151075706160558567924230448286406886354372275359736434454931734678746016612811627318009567723727004148520241946297522744344335627143647087472118123272712969143014461961941321901692106618199781336057718445492168744363936598950937192346821610190991986924569567940779015670805046247971777074883633741516772717917216137330265942282765710405870370037375935664585082516746868394192016962973287744383584001293469634073927890398701359740796527534542804881238968313941553410940194893566385981600788907588361028526695526927180292055619089008671577373875242866480046687670740529362849822340293212460412699855473883314108705215891832007295145538117655624800923609119306761211277293500482380994917811969234955819521820294360883252913598433788897461771906304495505117737467253203614112063794678006310733953291137033912903667667151995887847505112453808597154895863350911714659300443840570402542323952522923744320565855681904119323515393696235958749332397601797063667816255447750183007052758793893952381332846832517387667969107055467872637425785483712224642824518165455468193107571954976951627869654157362365199276038811965539505601820152773982117775215312795060548471928379719109405923548001626956389848062219119897519313462581005859515691290417653847195451591552067966956140479115626169636759123098511957596742477362081331068036004189194857008459953984522925261862001213317868763830022553548976966851224369522239054306961839926372286249677358243408556947415389856736567309861676284147857027214549670601820046140201577452768662527607223144097638318894632318796720629316715184673288184148710835993825131328711666847791501482876471595826017865194268363961048323785064051410787910720814534189310193806716650169123570900122198388058436272619344628814709288974649208459421325556691238355604733507784552926913829899363147662451360510564830335657224932885935180338680148100647173953466258964572820047713778523148785586291307121034664813932660337636564963903387555937921304727817498907359682674062049385260094754749373842879984518060111739482075821346976376192453361465258875897522447961235960411714262756714031960620605069081820170070923580246439313005094357349880631189225897959451668309697382527468511753776408471851083387883674312562349166699627159571760419614864792690767034113291391337893270564285682717102563792723825839764990742155280409997475944066461890490555579536128716610279043207256721381064576227690075917437841907393636662437062371833136769964274776756426400527172001290122010686712742498592776213747785048201902772746422893557361084613572620267548942005559600283014521534403311225545561639049355027762008811202106347801386097795829648352419509179971722445778190501896918135160821172163846450379007666353264558765027837091143361192236490316123837004434147597459958655606306407579496943039799198207200605168353606984066818159532742763543499518647534475070002105666710084270607099678606870297990394444577587727520923718951699211492588997201217126269878068770231816811076486713416535263638704732160283872499133872981570771387573757504049133947233539993668749019843567365222657528428182415455386469095621265107498746693910269646850262905138295767637193687675833796918169447206397945237983161043229537970641307602408570232981339294916889127453666317229399239259944551035151637415013501131431402975965005489420360347474739489645713550644525421178423232274611095430490944547070165274628968786924166386671367993504449097131743026793443767754723288010185275119945942077671658470614591469044482629462557714469359381869132067094684429480102703363674017598984601039817286898993992541506112031048384775897502981961049710257616629364631357045314764275522910240002044725107958946649232554276874047424245753130191266203069421697127948650868145328340554555027641143268845256542676518393969166143217008951448821203023079633831125597834172974821599359129728439254436888830590648740662377276825294745926138768314093957255460948131231844856229733814721003370038532590504798841496190047620638515532603455013913924307987420862823616354502731914069605435910979433839198367018852070227322959979106026623752203360669092207194894220466089119903958094921907230032630495905348081625446964053833403025458868785219764758728944316727729121319140579339437513223967669315385977587458223487136588440518195461408182003699431134787656786622262618545170954029545976164551849266631534473310201964387793348679008252733832681678495846134679468027488920064817575923390439585989245092649402334312488387872538202765766598070807662986364765889192902848489825411940335963888088952973468330424301049309526648889106036780589279373994585168120402050114315966881596178433054130875176766599633810669632347087097690858865144124088727955138683043880176623801970491393100427013315208699370717994664603921654343462720338466104290950696792468360527818517352133092410771970542824236766614571528426056950129697821581458053699944716532569534852257149922920838631061158874285923309484601594634683155474476844525204863058260073385538430172366178380979905816726555401484837804196847865458546816183520573082638809457989454038930678457513777383115519010994982097976825223801162532697021456264700540721645685846099755170771380993840714001899473128986682717466852325399745540296724084602502936249344604168449537839066631206639933363365836086823628259689365861590690238825219636628451931555316924341111998519157332648471450063768513882466298160980263121727534953599828862970667556152418229445506864941435380843322002515782986475436365985922914507469052039168990463725829098456819896245080106635043774107885479600510119439392133072430426684323130125839499011335396527113534719821779357496401807188216981003722399877105260535221368051959830350876671418133717012196664924110109687647929806884481323207877629743964435123299731163770364892452481051978005141555934036566466195981937326327969273258347709299721842180771301173598864454959768859872581996390526274610529405982814460733678314510338276310096349126834652632277314841527386684340529294185909250414862668821701104769173876052077714980744236511347075177794832602569997172090556217911051203642881343962488221607020066535947491417342271298955214440027420588988293790426016171669088100143257143882876708990951922402596002592886343535493379693363451121674366155175479052687305234726866645288728313569975599158669368368470028322827702961064543918168691585661517848516950207332296784124361658530530393345506665591928518227479959667828951186955594589617239243909625906842358128962214520695659663327890468389614051667127903799870748335171403831136772341184033085767875888407158210744391972764623920916499734702305683733766531378600161403894290033333696941281876122959555251488791912968616911699924701448925017031067076200228400603284442975263149492587758939160725347254507694140993482162846773456367826852483502683951894111110897966376120916855371418371549954833127876321508397137354410771099299881169926722033135100292503622832345140863318387564215770327819892163713045301909387004442711878546575216972718086763424987880462578279329926384309994799454767226619198477867316807825897182602690975767434206939653737125086188335664592116194968997526153416605665366106516817650805245301971076982280060764249713727021211666676542519148574123938069442348465735808601883540203755942462312088499105869831256271534609398718526975764540933048627056989877553124894493720621207320614994905396531510898760833655359901566171820719613459766053784208254574885983957716983047263559794949837608679754299617208126513761609416074728032154533475303087138223320863955116244784700224818478426691314183826562869614620455756862334659686885996792478814666701520828816019311738120134593562075454261434328810864790049828140495414934343776943653150418033767489171031233430082840510405097784755627688374157150056823432129307732496298036848317174641561805565658062925729471885810450098158781141037796850518363999384517835957844282639331397799753144632946758742304474328068397888238702188300438733429185721631211115859253686456957895855422983891639717154570339047292947074522985875576838062988287799189205571191480377611041878801521395547733689844852194705666440663455406952294321946264459782902883136141572224559953765461743796562833102594643319290828035452284773827813248295592419423501189321638895734166588060379812453362795702209665737143572726477732795092870936444851326049253097654121840446973913873968723092673971387076223473655634205437410398277667993985067318449465489685073579291346399490760208931950905673589433543989357284998242394890112583625362219312720353319276691535158198491537976922339662250616585173137221213252111866191017186841055837578435798360785397867404199000548946199685698870931191378822822527107928328590008416018037488890853998035835338140611807155559578277968806868577000109122896321034567548284784321154339771257870484866213921190902432302154130264747654741011155752224989736057738373979188390841860086764869173988854829562561530042735935294347345100250384078342579001737834390568866029325578223256668988672314220396448899534955132924648152034866695814982153803806146619552424857524201861307010507255997653619950406736527273175119727283630294766373126873696047237864868426360464287998060201264285205982567801158360785444003236429905603229655143440531654198860742734208756063091063469298863864284866927641660637275484974184857305595713964052522818824687498777138481415926634842396753299679646887924920496329818465337771280232457082696282911386096913478119280036113941259752454280670285050464118819873561951224314731497893571006801308525076863240024550958914584769581687123972866713053969810020881081747890191490514053441317757532261789814302062255435181064622302506176310908204423221942606441218725798790042753783401413511718765149406171160671774907603855419482924939613235347636002494965020096827543222444371282133761912493943891646761681303081696706617735451393402411174412766544285790045733163209391159180100598902193247065116230431647338980874161657012182881739923297969341349573531546276751662515793453568442099100490772280788946660911228028169501741704567835455199889153073628243342064432781350937539373148820984305301963539831593354506200481374869160912369467049305879030087711838586641929881371184378549091368667862655659417113101375262130192073430247627375766587933253552963655228280022788991867382870549476749780809885801653060203259476775581552341188311124948986229484723859291024690977684567092197155344268381076939747904975057839133486454542988453491875693142385713055978571127949275717400123215619999406411102744311599766141829562049619642889665005928756778196918555724821020425871235555125533452664102592639334109404756372427846437876975008066516554533211788951898463937946171366702654901874107978961532183802189399874463682485563069043777451328855066240094707725939381277084974054214682135909731938397558245777519977670480725547675745286092729174334500604875547046932574213560176463108817782106588494558714801100449414093830005814328006962232443402029086743530290301569804792697512099314439969240748192394112226848559969587255547832962276866553923188884068669282959879613855582495585787283130905277635324666248218850493194954990587449152841075237767739277488073888662367308233015829421888361990794273485513376539395152223576060080226710078480966223928986591488213884481150864221677876314363611197298391552164032448081482333701638231796637326421203955260404534082564399926940645126675509259070176686302160177363943661358057463192873531906416694121253506821276039191179702213558663092206623405807414577183082136794247903720169371297868186497392922986720834322988764489753235249953248478714002920209024332671956793375126621697161479559243877445409015731558036769150711945372094900789840024881613895512956024390424080102705058274409625242214786462065304412910866188789762621889267755817980488942955675022490683844343761723991614220731875999767828764525066095309675848001471447956141315654327316913129756557960505691752221375090392758511337938331515202640274540167866387612645674329799884455241357587220475538800454156176552587658487611941263365318966315663827309537893053917318134294514980601311972935754717511784079839917316754416152241660116691600220264724818213290986492911826407971767715217125734074179197145459641919812898880504572053894997388616641629170272837341222321794626066567497731599585609781672158418001646124452325509558931927539926973165657389788956436031595856984476461874976091687056674852609395659414101801939493442316016565092187098779625213128023430863557664369559020565456288656410620492315647976039799523578901863139975773690674389650366530223106548263238837172983258267093388671602395478802536882427363047899065753494844845174474994045176150701811191154361722230582885839871337466543197308426684821830383638907394424055042107182486150876345886860791035461617105136994861195171718191312567530802104685923224487412602813646473589371838223015715612270783042387935893286423389869853073370812870720777717169103982871752598877298689620698822678260834188468235384928316925098530889686834482853905661231113616273240341960167362408208111578474538803237265382677615887726457700548408681245484908518692115235408016017866219847892412390849203148875919016187547289624346380820652206934477554712992991209552193474528346789813767894971460484706525944089824952430694896380658743752086036778411773511439530988862144334101949032320471702318233051318529981166275487500681007925176373557612333590158644458212054696092815779075946002256592331026875044889222048482576495508495746081471502647050904351888466055052808403747034084852926093873989858023595074724638388999268509646289089483991266997912697646739044334134145705259980129255613431236265439613880210121859692371957499288771831632412564533685171578904793449260662662377332447512123931856683926316440065144426654661938536452298135071687308679759125003809911103607006122913238045826057907684782694230179808319615890063082464926207765151921733506412831687117388324815786717159742551734229265618551721167359305766267911677499725814732668872006169277951560301079518021904819011169542695962011895430610271201420640158680391688935018752974692087913036263690215684685745177311191695277097821835276715988737353127383862570563548497680743898836022431060536175225276932169319250710259745198160636114991142133958115284228720477415745072341026211966424033284733719207826369657189760478793497294626978707434804438414047690803167555878457829971356099293945007130720204683994590755221977329741514070742943107959453867631515097919933022971537786115653532737127921300020452056917814292309433120425826444558966203559223618058016748953190733963128957747931374997356347706310920679132993830167479243966023339163670781027973777626576537568883072233089730116987955960733750822815944714362811404471207225286555157807361169093411866587945173086789334863334643091657400893684216672343421570817936349431701243167799137012687898400088168301611433407125089296863181354992025751512574475012809170823877545069862734244525201583017292484121619681412174489021313325540371073285815789116083961855103878700476488805997127753625882440221982117953104259513922662177078663083238276916223387826131139217216203433433938129402510629028577346299612972008064472280655804031920813470837593692913910807154424687627458628158884800752636044517739144014711260737169019430219081277087999292321745510063615554334424801826384362925518316581368115611113274300130755252351586916400659160077308007873159478943428160895692801819050161783474675125214951250592862194653572575360961247602431175919018165508603993514234153014244618336912141640950598954963109193973053204278246009555505011026590950493984686082935480115443254262004721465164787563900474121954064703594983305360629195843168686989928078116823264592431704113315685468721752354908942374268417910526086013683950146956964536528238841972964061274772243140406705120535770025511882164486269313754337134210610303202071688575419399272249947027095080059110884106333210158113812300309827355896960044184593189041571068332519328471898947052208938358008439656269865655749012962479370970503478839636632712587982224610116529227419784509420800369933366308839516327499500497703819960732279230321648951281431259102328603725048865043749797857845380432986568701728474301875649278634309617639836467111026018331975765601114928409114831071949508737534805408168267685511519657524165127119957607505059217645589336377924945260890030750613199739356935085559036602511476110397872897071730587616428954279257446347110321548375442722586518469955689535508801407710700578881170168199665511061252582235218183247077948168436248904245078339176723749579718450280999889916179953083910532146526814493875347963493763793830272966029614691895744138712266119174712849996883383045253131052737306097143757205082781482636529210851468540950167835151205723123326694941474539626920586726020336491383978183338628313595841134287324465680302964388552207883554672208680789951520876056403106074623079819357598585392616938012629831184980908653273609924833571770550351303966956076766063907308338945485740944243144152208479120121699463444984975331918736937454821679169748569315155107576100565690661999012984583829526878981150278761384499642293909361753236205096586749680959345779593293043682008236091772476961448186464226082067599427961182399434173869784247665545211918712902252170125958316221895241326342975947872021733050197060204968243747838834967713604950860485076936133689696469966617926817390565368148882915018962378108455171565985439927525140080770346633957516168079260974483000408215425253001339002644889955538442919801419050049721264122560645418186209955486425429328360125630896152510793258658786314725145088390284443410372613252166808442677984431878737398353419844639629495832886384309484258358996430866786273325571008437614760033359156151095386974166413075657789616758504335520545712621441321458435120781494162368321202823080728606057356232275522369643265160033397424688873658822472359274784151369318243588870672073526460773267963366842284667612700326465055825904466117795414183357568949488700549897871414933756484904952541994872005845227939345402115765098646477117520128486610414284530667059778136369776174699683323840369388516693098649894767250275340744838266448197818384243411200520445483561834800814111919870132573285509944897686398474344926045985677412908783837872503347271531404612631707572241008609015439405171157681449295318469294675128305090694566990712412721998198260401741504591507430563738372658785303424727095490836724772846961546877202575595150821337320304677968418131040855238975544141175900653963926799065611445819093913243240592266661892093942277695636979838392223359637544063858736365622521791054239829790789268106630358647092110696655369663995533160990317805248779131601485063655881143957264130098734163078588787924743653771337431417546793888905940106774086744241505563042186501076541084573649278857097544814649031631277274145732826215455979812263548422530055097708768890185367845679071666637507791804651359591731466140209603638628160924416008368700140307734782038302162958982213360333300666482758515247979002512932289958692565727762180714602385023274280373700160278928738918513018483435886509905164222856935123208442216218100950804097232901307071065046011058720901990385562916939990860254955155562429696905758970373210511696465169394283883441496010703071695652967497376075707375509428522471212628641623088372701325788854701818122927487783251179881513786247987325595242369839054932015247412800398378777346291403432765049794214940048112637594586522940262475345552870792083180608304354797139445706313362820381130064320043549432040887657049001554681063869518698901368518579727523854701761495706246875197113529676848726206888181098441178892992863957023125137783418964727819141276360521183548698669675776364730036918702578101883908137034198658188309301011317248502855193607907150398080316219255829899262865293946609476438001642906217013604459537029440511796266395701141199925971193415954048066865099225598932571023413278851182715690286333165288785834897531123640138351410098054869663878796498837198950183638079022791509764106171479034643925053135814153786584945826162698236861088805229258195643153101934492120785482624453589837002429593402369179648849105169677489076496010410906079604480707895001580745123046895982716418456816583992796429478895616023484887207213454164556805817995386985820514274763484023055886021149620056788163623663347091131263088880777221497986096103185483382975461475278183145899311415444341016845391697227538325115561008352001013180886004790334571287791359888918841122782527989684859149164806383414556660647787847664401208801804700457309660065993907434145307973142058602227566371070083017574355997446246942122530411434293098073592315940062148154573790619654428520988227786303684096416527912889856102975046787078734675004283532295952416945894757015500510964757791561604098663259236243875397032892831955554952662151173163978125849134697454174795404518349805191266157330915715832429507359913255952502575161330902674194314423724376558524007607142057268961517230462752718850934185373532019574075165830843482415854187203714110907865606783928778476718001801870400844194103994082610910510430032185680361526092183437460648904290262922884271507292854609476494068061800957646986679074598420360731230254835463113109925317574314130982833252490569037329944165714620506581416361652927938181806105533271018383405486634182009483167722241431712887940910546112298953370408924883116453894322970911872815968918679992522023395016754197699243246003742254350458888855646996142654964782154491393783260902643446269292008629184901266753360023471127962085994279115364736311210461104812097726154592435057139280663794141990973374553698676618373396185905363296895740499890717355776413854379873681903409949719462188511106137440959152544091377977367418971477105739041928163026365386094015224185542482406927906218524289551408101271636858455568824605838948597455693831820790464165096963804972552247199566476756209324851970826774694135343100288107048742106805948628049299156273348004248600258387567078296313300648880361563759228532070174042302483807420226454357782478486776871274762666503076209344337609752179868266849051417077652055020503738507119745168393900291250057153731638170334796856183099009762327429656655016277203528403446826683956100852492589496958862809796972331722357622300537121197414924279735424881208720923369836518488818684474561138500237063524502988866615266109767498603226510035787544671686110472180989831330071394660066975982661923647843621951234039432799163275499686298475104703514491047924885238744212317320360590237233021417005297787987352771744747359687271871523935868872756575969590778047891788418120296631860553632231910247381568907742732514592206212311817096254015719657809459354559558752475863393733023218924463417793391321884347153328504757460046032525673336550191245283553650216998083185757695266744918589797823439778173317003022511258531789959605508033160218535624968608868235669484900964880902454115456550557783560379103282602574516379449786775670528156040024269238046463366340429303284398403414746447400890379720186113470944790844736499046281275176298169617486132419344292940498878356997233504334078637276430082575884267932331007193129386401379417399048686595849074706519677529039527508754954071386112311760921654863068233623266593413171939760595627741879346579834794838369253526857062364219999299046424248542927840541758457335138500860043014538403345375763062217150692178507166085233670177319817302245352729398679155583792032760790013317042130680576242820974367532277680348483563163627797013713029233370480339974603461817245812671585276985772359569924679072275282129951086855296808294232288542092425839118384299486761810378202391295213568287905017876652701776147501680998473971079388371531453791737424197541820339605843732117673802326055350324568097028569813025316905737992349518205963117677600722202334905636222698447245761477406510946659543113029527706995287447853173531777470045158337530956347417280823650138507502537055118216558369600518915364542665342062197483841953841412675907593231654763743143772233604422999572056318165429332793703260549498352969618398995917688468398943874017759496110962826502136547139518300090316348654343389539425392240822576808442800505699376876335041838200404490808213759519066265268302031499402674095996670049117917376247988822400681707863851196609159724623987702143805369197438446228224890331061662814381693581289704810770028090725050387142939398983187316865591636510010281912669924134939143410789346256870514708858650926335693606741928861766905378811461395600561231056886420332068663574748368113089391175108183809400780013415008424817344900273089240053876927596498941188201785520068061105074184172103969994411482421193282280468329527161425803097597667441778094619974937573405881782930318825692195141352673748875117545271204141980749035028945390155892824765570046356548943856660923586227612196083850052976230940848665733277734644891447884054952646949972908780966479973858983450431373268572382980791778653781761625917291511493293228833534699870048308555897328011624013949681628948001234787368614937912697422148553181673375465879714025892238512738735899705639342025624020369935566016998225269335809770564224338106627190579854056243862539808505016483274853408834830875108170871896735522152217352561577734738014818064928753849331096523919751109722478171295115993004973988470641751676831097972853303166117090660206881459617952064922604839978966962230777135344069191843361078243262703298369276125797042274258624074047954608089224590885932621552653614186289082617344314654290142714287231914361144254910543555115678513213671613141028631885184786661844730278123855918686371505768093474215491974771675920607586052054098865791470646024324633856390594583413077165524710766232606104332493104215063586078652041904460486916705851464037540344829576403322010545341488746846674389524396720772920936100105361057395773594770859729100611423340881878245512773497114707523894433599408502122917114744937615670100784315639111216323948189313136944426377399724143322124322545347873947362081152152374844538464834014606661750471016141031410880276496247380968933288367648505367941402922916779844193391674987616562727145062237370081022230986517824514721103754676623566922806882000955494682493784319895513427420533878939527577404701280899686318910400776430707828456864476492325640789589317122835200098975847669542117968970631024187829014745766896583991824957308370868614129275464517439033878474516202151973551017979009583354034240326595031611442385555121640522573662345487080912023964018489090463952464828330170688264552858280604252705535018091162480324804121053025286765656375065862345827100097433882690215747798978061831278363059214956922240707123396645651005645543792069231602056487468953409338117572663679083532675455827229696955535968381254452130622789811888528893853452974352456437140648446800912336712429498788374763743947642191579584378940445636240427825882976781079984929548967794156973703835707073558971495935546082901680136678148844041522213218475511369646672858192066374245484243927516461916343402144743377044928455280813214219176389013383395040506514503406844371388422415284643704927709725149458364912744023831136079484383904904555496662891524489381971760524925444377053262106612532275168012266918119957582305822139456588781865984174054838966722476351096526218102686628613662591227920437961597575089627422496365028164654782875413006913336975315659222089115358978697779834359842469739534732009282437737464056791425199201341422879624599777833417449184189036133279252526160407642390892447944616258274844934710837638381386114570601420193551275007604521641662184048022448534843523105337766648658062765235260425288683228344489248783039131008767712784309095649001921062420362451468805247270135738888930889018701531217847333582997200520261976366250716860003761230298951498296621919311327807336403647066413309531928692452786524428383820420586762729213462889184971610642009743264085858201491120214407968413061025499516011923266898264654159512452449935319363346251631599042214799419199672054972155836265969186969686315003350324071447518853485375281638039616223911975432233851874783211234090061970403791819454691567451581739208561322341565092477358668597753511270658232229973667420288469439860120763888068314262315163604058841205213504544274162484112904525111951579686021767418272322550181988397589346959614720871327339176284350790707795746369557325269540131007761110587488563803734704182270506369541829841345985349474663126229745068161210195029915223096131668594788124751705530512225246033337950904751835819129284910379453257280734283424235281622356234945227423967932979946589434858761306912228453475975914118982436276399199941346386587953468777639610008805769720896469637831884747689727657665647897311676457347202998969587448973803273740599047224817439491597927465523489422565690164083249511226371328581168336421127172329695892706641812453951770475122718861777958519459614381698415131806408284532570623337489594855546372516538148939199986759335697995464834627696809869630315993409846300351116688377184724763955864022964305035281004161395778806152206705901581595794377676745541839955057746096459642964823462600517651680615532049923381685942138579356285791940394589306008432641636885423485407113521715735513384121775457954442133793604480773658992311742919161240668458582652112809443352455312186586051199474003513992161215938970655736625241142375609785928505877697909912043970962270545687688635179170641378050545707915405288611772868695733386715451357628433444464841159788707741687263667812734541570322542668528740100025651834669301047386874885467438805098671730988205298436388534837466807408641025586064804366316581301124732384882672227722688061288799598872308927592891584799565980003826710009358802346474935731960786096091737717909170601346575233244123653415994003208094636636298867187477470013854343742664698747598181205101232987323948669920457357133888495422241210276335583255296217563067683714512287442866608885140562926277647017152588286039274462941219290040476879893963897586725075965170762821354049124621122292515907526714426109017004260023728551634949813448481388650378122472490816197707883702579227356405656535076817630160496528115935921116405504136579226683798002645453253443283751210678458140256066531272398879070544750421849356888630910470488251374610729690453016057197580658235401092413038501315747109305448403246611866136000791938652157361535236076847262181133391099554787213364041511104825997097264937856026692369600327396125830470977806340079701751978106157271463438286951030140987078763055689760945846808101201526585100541693998028263301062315508008465256074370575364705028447853170437226091653234718577147543811036478121462678821384902987806669546835733694852021996942774860046920508699838848105210490918887544186261811213429266528312410962779247377356766018658231847012760321901797960255826724469804561637853156145342271624449971912818297079948817024675453110907969131336923050917575327696339425096246936753669402815098957241573145426545027828790714992729417738438975031161263542412520229595925118487015252565193326763823418550559387555921895796793144005056514386273130834961639225231010545725858241488822098519774307196212835793844554541117682500576031641070549080175751648307197741881149018407189613261143629929332485299102354189980616518311593521553320293547870285144054108754585646246762829783220558337695187231399672310835620026702658701282784377803187215630631125437505712970039672525973121044873566803414971797539322014428700784260123375125484145358753972658516255268362554373605395726810674304061261963978842686766058135540024542044544310760090929518199657391774645291824365770789427810239926281556105359371601132222290720305837740502730258893428469003087035624481785574195166301124008627346153394972437870988823584443517025823333466472362883804619382315413448826053618518476321517108011775951580805357571280236447702343284385261620877137533405860781512228837316165689826225314571143795455927277013786108870955462462009719090643410206847364927654155580037870916214364182686581249869235111486607389091403115895214599127861822480156453120939212135582603340690890787831305387713898620737085006454688875125291905438503999034159098499637775634834513097230806689765341202219397341742120792499462471761181258919011881092182556370696246046178878529062756675864737617298822809425277280638686119205116522145833723436765979901993241349685208114452322887991558688549123204529270555033435182992404530464324537539846964310589943230138004160009432064479697764531889045151576895933520189468098441049648191046346191193227207396230141643018162443543550170760813530004475734064006997807006396693522369176326810264627398836638503979213866979606556944498748218443121214658563594071805697220810933982729806555884845252470041021291864130764460775315449688730890819806683255057439480116801243287651171696027247900030070034169378907600307679308677053719303450840597581030949547313832673719008797173384154362370405767285553232542578641450884603685623959272317167769818209019790069797197765760135688411491698788917356930387555858853716889569111002677536773394985767734120883056747727114843554574322107508535055011104859977524464412637718434838959213984596051919924424136451136466195052960092498193951518268587217209297980678927861927250442465893541172222285675491500657659084269542908317576664316592947902794563711946289852377768493368723997072200082656776826337686213644045485070750425799967922893498144309222881390250520912802692788933465201224519737761206171724384427420794337273414632281006460216938836087972864564570716165096611026400899981611822215893851483700511456078381915731378216940784193762118728023616465396895351188878670715458287858269251624685593659444687910997672391894261306035860334286135245638155643810208717191195600903396363768275062451957514229936752316656432317788724867257030561022671130097449490257885232488062043848675226578347164502781273423939015870789676223270260829770291520110019540718650148519825802793439316668804198931771559901015649090525179878614039788820375450429937175902485450416888186179733654449431780116031826131252600752344503558889467676997319325334407448964560840106797959576638580872132903477853558528489630044168430852618513179062686686256743171086055336976526746603313271760545507867360770664022430747686561880682285781197486644164446150272419677043759910692162224078532214221223984791275580697653461248652820948878165016649185694793350743970935510405867522594229462117614618265913000849405887518501344492022468802281593632787493806401829709964965578538556363253441466430679607398532772450397586321872057493552581456761620885723399853750125824848962946688141344836799959921883775557459912330884024339894585333909784773866610572699362838931192408013756126266795728373684564257988447040219316165598242650712890827355361171701318650130295455220298727123927964746459585576520399398052649189317008443196853923327856398649351058294234480722031556009844544336500705822822752074156103691509757106493787813213193476902876908565289468033274056188390658930454730021883535256425224853547420880332530389110559894923686376010844820646495557754250413621231391054659717082903349573788946719492709990341645343135752566934114404902767003248967174195191649647125117842454773945904020946327030680273151927784870629458520821603607022489785062732917076415569064332153209597755712817891900946315112358468019433171073881190663904383333941659173455826709525205640623924211921848396636655296088874032569240206229527161441855623125776651384788108448171423907643042625222568371203816930862725438866841774994667190147749556702975595809007058802287329194276169717452458423813035603195554239847250839628106121337899110993815227055411715229318941402643568735630412148863657372187573339147509447452225650935241414908625685560519083458199479275030878453217472296147284963995800267797999627903983929550099397470418616425409067889241941421664185454056247737277598305031474745161353697926311443415217026096164740992088913187566077417514319404071997307444315138415592891025594361663626812032656976900377301160597833224931103998604625260479231492805597574842810669334976250488942853484779139477058540878488892437749883138548828240618066877852946295199514665241974693206744556037117906479149422460862999367205346748261042150561710018918641425463402328756070795256783667050127203656106271656416661970275604350252874117174660781589426575622168067163230993323183402027467403667675082045565003128416545388029568383874393460162097838168679113700898645904747412952239289522642828721510542968142990279011945612248698799518148121310346373971275632475962003838296936878726073553903830285795176179054930013106894889476189336843849326583438246245888369884501939912247533644227714821174341980844803618021621188030195076439202647265164441764412445252641375992801552812341469192903134970039489768696622187412664850460051609292697555165149376565736552478614616869340106339381018760861813684709568239293974057702642513303923533864151879282637726740223572074656216808513940922907508299066300874182986642982809201267842997478294054521633799376899454528968208298085053025876418527061239058806911009885187019345604042381599355552734778732535084620023992443395454109549876297160051702155945018999468022055708632843533025376169742110127239187840141703715093165057769608534647153817808677533368172067301671662296745419902649922552889651495407118526829836740433178236838255306148254239915683727235166523810678415471583138691795786144147109939112783250686828118530006088900817691321817300849008523713439530911510316115116396625356141207728984477547569690171890534862052033294375312372965356971157344785076424663887677129530545135307987851774722158936713415713178440275226082387137861617774398061999641532117644380409628749288035597031093392871797556416237227879102327768242328285012196039989712577488429740717266597797010379328167794814032350532164047614138932765249957665792430087703526243507036535225096379872188227435751607859566422935664551038565702930531052611988686305988286437361338710771804471579371711841759559918995909681515040360028780589337105647026120108199697430516903849972735974398318394381399003919905221291694172471058610889278707302452577420775995164368244461174220394976244575860061357846116772891544565314858672257309567524702035704106239182553159279598490543190970619144405219961136530418282005438896391443535007473103321187799405902016920045930774645641095014032347753864519884265012963627621632985213007531573628968256562624980826743839014388900507453208489117637550577600888132269545284074109891932868404112664385084607856395087128587318135414390776846174092378738098119041088802386973637934079473372914887479911048516691118351613364222859173248814084883253310557004503908658611484424031822957553360817345759089141702679073292627817686229820464521119515723148183342608731714073419042856374697120543352179374676388729690958787591945237339447731419006420785171629468730878108455114634887045890833717158629095750521576806288767548181753804582486242505880394589507433438587651057903379676394652611420442970560436968564603791647018276315295009010913289281334730002942834578527236174336441498781577612835967436912445772297587347927687527825734710094429085152436895637492966935708277893162860543489871170294514138531072157100061319480582601489341105756245703926958518210435444538000071323551782995750690788228413451787917256240906881933701562152066855073063461454478189848328172716782919945517225937878385444618115454535955939022089292939526168796927960803903458067673558571871507956122559678734425319176564425408282510633024079525379090234152628685305257367591858781608062420586956364326311193377256845341054656266300679694421124659641321909242846692420433528525956171653217630666629402277318926613280989760229747584244562337174734101355076884793685690563515916562172674200536298278131801822620249554754234361573619990803259025639843233956219590814139699877504715085778437276285398873644912794518347907267930391041069872467721502321545346813386267110223377831468961660229287036341499590038972027434986319375711788153811154107229476762240751262384541242885088534252092186457003653655976289977949524182525655645467314685338524322507717996372383013990256623621024614534704263028708347950737737228945236632203274029882176216892558747780814421855821191588802544410003103118758404429377147098208476664500575900355333708093071696936194703764435256210124493028675811704544528101860846508839552642206664873062102146210124859338736373636001259545771406884898399042096361620096641167335490480779735138574577581728570455356714975693329974264605645645661546231824059153519729210208116320697787323013718417272826070543277154968750671396514977557310469902224121167340801236951288652201878460593261948072033254901121380183397053392730165707989928042227669989100286347680911738338072864140154260175902571487741460310197882082873173744040210288993530564290411522942634311121113571577654169684694375740415931989164502143716784768336285009093723973884828359573090950104999579330330032487994367268624745571445231489764590124215569355685338430949827601975316032673259691279558535274915722159376254661429082763583978880973663599901839261652242014781698945728673397703772207580045387703208845302513029013587500832918277640515334972440728696846708538912345485608426513072686798979001407683519965103775249385368252396144879988106326076856930799565966142069386883339050499039191145311109311735679623309172080107388463824985968061778553192713498249811344368407581614265718017198417895893546529302061893903037759913824156593991763208292581535629791721614555927434050251362257657642191780180742636806675314990064577899767830449319206727856285075885988895927630982416183159763875259818975443592584412049702944508960894934208227225757441583915533554056893465680159950072596293430670718407796546898735098497730587583277936309783461656734652475542671221431456897874417299381095263598381211828367206844501527640063961287832648910874866152430000058630179492243760971827085754263355344116592449820958730945440481600267275746435590659771329512065995138334160188600676467414192747039788003846149236262780032574090481419846021580771134624310528355314475568545548429191398980359510385460123448943927431020385268231756666600563179956710775939588587454270148717420328680892513802877804403006682544919193468131822817271079139232554946091459154321159142917107519765098339128915183415586951534371822947531355179123352438034741616441575282490005748151951343601987840991597454873953563794681074905147515662568134654015613622842699900993943061402782607948488815488969400765853868093352428992934694627172697113432404462740708589355980592219713269394139825896218999371542294198171851305430566431846450877147276775761569396029206878672734804604310983146957009454383534799976610328414659892485505721786453285636549659213170020250753167359393555865720403749190542550234814587915809931517733016865088381504300339719765246299471043788195138251998432590467255375771795100498259185983162420178731695822125452228494194845830694648924036559086202717028296354072555605447786538710090100247842472530747566551981617823502208000807295809573042631302938979684180792905542930856178992745957180829861928501070037640637996662264609789863002091858352113050167431426631931444326019092045899543956163511074126644838247278105845068057357073049415938070829817174000317467590411505458279472572937800216945681453824516728759945975702149329960117076915504170939515083460168945041485278810470625219766803808012237493438844803214479891511341384763101686023775944748184496170854505066783832786804981651303370450541386411275998931390641523384899855302737978205639279971145855675050935111585362544678902117266929632595884608699126205055923953220145930880702230840171083295166409555360835735856580514566351808958316306120001670278908923196291261038292655899738600706854653561393215888219297041181968951946704299757541447556398476318570451740394945984964840074828508728815738371123802365297566785183508395186668560380042479252135778752330895741534622432568824568990370204307913595166419739951621622785926169439171694792557326093854632588708660006690250066521990984598932438478064801932452468849170850010840765610178240849134591047545368498538132424781357004002043222786129189400736709337508639693467461401786870622771236010593661612248908316204930824636438512834072227255493793663523803639363504267947902784565204608796099706886639894449182975778098712227825073378980121864654317099157121756711608335944476567663605056494300597449066726985872848159266295628822968908251685769973351070321572051466026567579965112601742107174792348563805390329203629138017609568543363560974205419765165190913295930101242092560476987891626467603412989586471108433753118028805029513364824655089113155059668658751190672788516713917807606066382575389232268289214435257547673414754486945076956093749613487354255742515410683342792683871474325058133914802352722743717263781411144464689832030054517968624193011877483554676275851539885861890429828301506488717070447346629036176770964637812422139283889170350984804717353137828528878674387896503306914627548132406962676117072137650729476805907516602173189804379584083808593235673090815508710885253314413036005220775821875080869679137218577595178845874965317943537855694841956677052743226695368021756391314335187681375176534181159651143730686234649892999648153656338849533406823082801772128068163181156606047264136922273441373659225321592868349563649009092596935564971801077584360511202358779383220621718395767889011690589392919787270700252953094077056280833882104355859853507868498381203094347271471779430965757744937135326775512253541912667402375177303755152579654659605421845742108121196342280426334694409567676328742505049800317543343755784620068442356049979416038701997701238641663180273177621131430409439151072763454472855570796051515045117537467216631129832274864990098279510134415249139273406069511562939183893930174854504658430540203602003074823593340608600390064744836586088883212312521692861996287732129014636889958976054060658961539923689840541681277454666044797694767901282985058036804353861982744245177159886134139010486012048034166960371073088254580677459125459559237603172266921907443874534114749434068677590910393683964552390404133058729890567008504228879288383092738093791568269346187313355016303365265303525796688357974489448211398900675176738148321271362242229094149781222664640581466438317172402640826382261466094605971362217419764053498093190968946953245552707058553217391965834872719639283850864743539800752466795606393523688374949779183323048967230586069407478404514199360983032328803250061018603185917242669617006186983634709978608463063947012516712460986092448394140488890455669882374988173930336178783738829126211350340069765460688308816258590171449643718277180938429369831909418259665869906906677342661980844166627883844465769740260010300506982360478813511897280605425099620643418262212666652135947806718192173180295451480776109581638642241303721331758322430136765689614203902753217777178030099827306443864467067748959839890346230095972579380898378726856184973254351931973574825871843217345472804099642213048380411141039931399242479130101835005739463564196269199396092340377662097557423754457838764678602198967815588668924451374109614764939853460752437591311310321949197427153290925238354165885696889472390772960924753608055155538988375519044761444437599178756078322595485973239130902235367301747870367137846574441465444423545369693892248707873653895680470204219663911234412042860882059459791164210407233585133611365065164109418325906260636839587504017156434256457184610384102665544060155790846173935485045697217723240583067676831776098869914050868674581502233899435747235086624581654440972910732524834745478250529592267369524335483053279419647439701640455416671915345431546340471895763229469281517980440101026259266298764375052705244835111797362571081808253201064070544965494526704305364022499991045945656353621005483069673632257921916608267285450374077457818994866937834540190106615288580497707660379762061119571162409982387088934351269394175349284743923427980169822985338911451833495707532276604067846245268035349233046884796010622993606229746347486389528487271782637940191987507905440043160969262360620439854234732755534632791554785656730569024512205213686893766369090512364771444325491844229012547570724779959830731381741079267143997758821612269730262888419631162855184641105707964674516030943606404988024228160429383242903067737558490177606507338081676501584639730733653857171717133875958629656310599392944253688248335122331631313910750316072739384895759368992522862214373145738289800559156147570522705280967371345853481010476910751139350263136489987433861350045185423651579535414058430266451252366593667025235634049261339731942526271492122163076760389354732458562327576729091773462899115430719627263853918029793864496446640636326807703960836781761822783992300507505378338877570858587697789676402183134536284518571874470507122369241696881809695060829410983172909337441045955671053123523685913444077463154268626894113324933139067948721517733113241548459331042909622054378219436738559191715561727497832105014142610253848411910628932900045723833024899269592978142977153413797175984637588375201571053725640686721980753958975842082855126400923318672531210619632410656616024649038049183684982482811364563166901729059469197354335676337218310384896396375312808713214945382468128672895892048502354119822473524125698299597575334878841028126840281582844314646198607462129024210962803740553452443133484902918371946519365193935784338263690532291785175366811249134291016244369141343975154819743159219905109821250618741870127444965580326852033459140561793148191835040194038497121475345222331574212577795208171533361770013693945339977882643312315338957223557725433805779794330658163287222791666003147564372991053423997327037805251182545933439726044125007858390646690713451204964739472795311430148049521431469481329145188806708444430476252685848264918476468733118060448859948681661929819320413941017598748056246129602730047150895868454032897645182723183095498964622741329172215255704092498549928343573542562211860477294657882725816692535240266526642214211832926155060781716549636725860979186514533139582427820420981531646602197055982739711354334444873671832809629241968182643705610059929772911727981703816471615595848003049066921475182110788905344582294600384157334021421496063497016581560041867800143443390114769176181679183964012964955174036620714060155989087802779683678098801214511825912084906567843420691471854121741532636605296433934360594722627985307057004919436475508233956447012130887856678642563836666213357535226924336540120100364681334341935205894133427337211995482696443290251105702680859359559861328449087359856813089313305791534779650032017345118534556858680256231129244468441549309882462727864712041996210844494498500856121284929613993797076133298513000974309210307433872998987306387843777495913736060822709481453204091162658846781392379940312635912235887171099153761242525401847924976360348058982224331206443697418268022356650788196215788111595736567944000176185736827253370470520541747755797068103992036835183170326025640005678303145642267801042995568268807623302974573361163180625385211187384880150916731824703978417069515457005228540336067706673622606037200683634457452241778848539127150043287382047276004060586857219149322023140689150887447189233821689963068589442231438633425719876843141057111389075961639739888411541402866815816613133992150371170628771577255498344811117302959618024991440946641802186563257607103660356072561757263352574139729699947952050579267915204144055151363935518226101207108448718671359154337969348637903981999778203687684612359635745569264572051706577384901611043802361127758506373071366515945263108241470229379579241071043334886215133578703923768690324537900985892541019639195684320882281650539971524962005844783534043623554510227425570673300277363883287366971937642320679623317123033236635659263337114395884980204501258793219096349947751334404137174815400450874005115396862127058534915593299173965738655940623436689090107610533488523421678771396824890430722575638968934552179930102339762352363818702892890793333935226429449034592620034389424927360045507154912210385270842241879198259591922310770873185281975762599879797548226096294144518179678184652201274509594787205563150859170868513391761007016964872619596321679032288897436335475356182547841155552119397547903628398513554939193981353185010281277877797705364995964589990022335476207164695783335647701670043288221366988601911342524025903692378186174612313987995844698471987318532895029642390774836118502554160770286773485368933332990167380277098460370298970684331418495471332345489359091105092088254588792003746356203227628322845179946224145858437255092165841341797836570019681789718032772724493874022857178762919397135382927831795656919640125287864428086460355824820573572204103731900431552520269785006141524550714045251940597625081658191073051486103940522984793967206967731469080038159071376176505039661150362954525051892067652248408831725498687083545060619364306863507218402851808546960559825121212027125184270590333102283871973502061468634555319160737921424421083237773757360147642867007627229299066646454564116228348363913815595291925296396127299928137565757548674931755551095455096342335424738239808025153982088482499809811466654936665620633423955551529346962474491242959039251790072863912401443821472123360896466304076285859537452456081015937733532110617437313134713406127103097117970941846645276595726262405056286939979317508603846914621805998758523529494762627409280294208210217711376421487428095855692576649424488309223738265642419943953027759921446381142293344236370283780349457062849421032083191232278660128997227390365924510276401390266171127009909755720027942489991117182026043007971146250318371556739506587124372595769572257478012339158046618080167618301533777185357466601120665351827090139758257864253500556494343299196808636535091496352882906359568144649204058268665110978129297320537970003000231389749832473374876785596972087804940141971286602725471362709257507408444459824728679170197045089135846765809468206815584532861254826766351186962951351447601854907335416300363478240188022681800370732706311264652783116574405795200865105208180429339397591343383059039231752626760595085277440777470125430114002903190220372280513381406901886951216265206299989664525566071259508522398232946874786396068126850535995385345672235531312490617973090021090239031642520057830922979696119167292533063934992444921013050792448819242328207694140594241875897211975470597476730431783872166577139128607482924937900876904720690501028165139455640847554852026502298855056972635374971952501045522602609640093384941386242657664041214274680930883285092331720574128869209861936960746137622911132628588165134876278944275377410699451485050102637356113644355601522182927697226891841414704491959833554429493064563504057554619022470570590188905416322056260675709056965806526715951852436560889889696272896210945702633463120547631986536679177514364347453117633939539483854505384175632622837826573185032752945057583957084516462766745923955542188655951134707521300423142855910527619035184780962899813044640192537009510131381820389712438989301755890107476874766089360113024792130796277657914301799909056220303959924397454767108381396342074089329628621512043904655748728787480897877410146146835250235463926906631950344487823538627845725980810472688807642927860735215175880665554128205863187198611410943768292301408153068030575614904868365813166380770981441227854934318574590368908233832421127681843730636521265116309223162382875982794757361752068177152188064142781646072659588956454201682550248885332271478207009567152421763037018219216959738302839522914112786071258390826392148852451345244202597976667344272829505491626850356534579174480710628044413729780508567664967798175855063431747677476493203046863279590993802016210089450870548707654216999291872627835525977297362888643845108616386103802076269695624016287222949668938138284413654160802218684953540247497058815162864231333584344113879950541527113198040244641045166985673241724854767407556097906702901107841321093563852433482708883186447794346763961957056519744607468195823703570182195072225897825711299466255353095439405983270854963084748548494333997781947967983373009659271242912720444459033232369678410447937384013981051230489271913916351869278464088112969301530283863819869836520510996034024700190407776451149398029374498348772297141789835031059615145030518412077809819103242117253757556452584158653937233246017294537524362422308635990426569377103451523444104629973680378497607390028775963703925360489247052368668681615128563434878210127391740954991483813311585828081918500613233636343599526065773239657157608570738560087044302212365081884507628407096316291577232613126105436132650436595762047825982546176084790927706114913884264659055827388461210486306851434044557351044414162774654368311841418404914213090935479049261684086341604775335780702931542455911245811563927467527100063800377690145929258587885734183102557982047878203264510389080062883106189883151816110856313213077567286776038140900722275093203957859550700446978952385335300584048853300197414849610641143734607126093118149855379990363778425758132592662731097679041414385334899051037629018333333063802492550307572111683260668699649533416171183775561016359129464761962433490095414748943475743280591649833420890517064816544818130037636732885891864425572992567781096892186524989991399805877151085241832756517089554280316583725721071144495178043581840865929640145287815744631674919342805790511837259707215262023494814446621411459680338600911578114547709551442691266490670622230229580866838465470115806101863132935985215984324464993860386906200056829074163018855290792042886760051497122135306675400543060092269620115023418623147871322084324374984091609934064337430882875736007921039748304606129566344462996969866266580982122475589322574527483183372667668097241049191655317155294890258245839911045979593180095544134540601498828919021489913018786999762576673307534888670047789974090192753996871951636753136085157272264700915484892136010557390610859819264594125931839727031899268828873842306123413002579544465207231260961477965279826043035514435916671151477612642901641858033643644601446232716775372776515974904143208770451621897885309143910994598508660265911491091277355074290540293372872503481447162815786237691750241865339095556320544620152149293185086175167392542126177595358802692391719633625891431785953092707421394148339629142633953395209835132708332691423802338799171274815985462235836932442434335180642249885526105098494133410669858491507822258760114376743170822807318067969960389303788893904879766114092451410208418151603012142213794920619056689669665856974875698826347950302421743655740346052489683223787818429966481019302782801787080729863107555627056058244580378199276598355938071308651955625195204390212629774384786555510312792733558270717790974535989344052621710623717751709551185967289985988995225346035179991044991885207231692370992640365562056464394712068807812109122258241875767024287089873016323867696429533193104911259625032040907254668937423253138969021147843333341922500045679529920618596851953326337389379308314503411069587640026036194216375246395085536275147986851544311387714117215930745477241820616356688443969309171361297307394152990949650978610337671890387995800435581066173021464660424997975287767351063722323865942294407742290265864002577130421187081967577014726743656110769777694623700138087853894598379999442001546315214272675608189915416200439795489146022637692981037478345436904228471947638434537760167118580750539429860557130475540759341272702501116067720181097803126821009248211515329586376496729729116909163451198213174381957178892977868162115390741096027154314461766400741136161265437963669898883097872904941014236106081551206310625874434874587000161196012186550386757439117505073634970903486108548630464136912953925462563987068070718067237938390466773973753786235964822028975643247945028356648209087102287740839845969785142104216835949824776961102502935777920398149661018598604068046155253570726859726337859298533682735908399534119355905128520282271380550404117834613567774915166704728580270671047413596095455337652895575383160689858141871586985998096188466596389105957944142336329348236289917091472321820603181850230733095274103126598745486554966667697861540305636614387384179815032632815260454523775439105826323412477460830671553758837802625451650018564619726791413357892237803562299224658659881656156701447191492295019884022411990930268925144636749764922625988826736901576690177952266905986748576656364207140404917344256287972811342675566572020567964073397208897026343323895140390740099870825045348132193173684202873576365548282355932883245838625692828054598521656166147019130152389308242522767517775849550690542256357701174589498859355799346875932838707206922656689189012539579248544577430618009716031511741343091633418622890390530265424916778158816521290175360082649694645100073295974666632751781348672016720118403793662252015584598762411160589347584155312741168096316393211201121460404711941942967070711747522991277535470582861016134156061717025878053971204845652434516741020709254584529964327024928826656950697795860785116045975732990957402224449702071660531039073229575326492693945603980594343647117938526768021052576131504501126252128489642958043115557197685165474561247737717769409784999049081806173209444647388463233294909835369600710137287287358793193411986557116700527397041322999417254270710419597551805365336157476709986597215943283214848003494392457708813467838450754006421662619439567266981456122019676797925003788429757361270550073507087417186903756313563116599349272648268353858306227412083285324206594657245588365597780377155375612506441715641105767356103461089236444561460552022467547293570797309026766866989833890711569397026986740122022645365290597191270522881644172850695067912039250399084000168791193463501619818130180717046259647620071150713452446755917894763462977052129798371730527155475362286655196621747314253549347442327020475917458953797860143352661433075191346091354935229541000977470586399546811345938070250501921178765756727048802505617177111408847902496899419701250440844864874307036878092968710574953000010841262750378401863893530525871047514738511755940078197819955842105204903875892475322076767423222621745746925068915548890630619225423667577267463430186391419400147295445904463993434285607539663589968265178733124498099805586184224694202374350849783557162656749786271276015045903658353129614013347999443275436657610937714760933923293003570556226384117886497897628005013174457912221807714471266379923372126107447921645411681215002536798498296283766753509978901524320582400676130374878211373713846656518291262674920928785300787915474411119860189812607817544628672341867841440139463209080190871255584069508036709189131665448410232847473274387841960790574573992956936308236518403809530199887282321464976198942992792584838025005405385002255291757804196823057337299535593150392402945963373356110217410574595125696248771920058982464657848539046039362295398371486413271697368426558809028461506725923785881648890882612395383848658203338834354275432415224183876707133463340836323488672618054709160591335193648891709930839209531391327726996240572288887525501982074494939354542837127430497696994219190226075404330761134372783838800839110558371994536829014324736471301592497122682830126874293441718738422887213277526289287234413564878689085301407938703497981004496748315013291750760473295395712843904625851734649584462420159672998616227793261346166757649108290298869285936882242623895706551100934468098247777131623976633196131021663769584067654810723667915498811732804028302471538836041902648314943299972883119332630329932769292998393345562678297781785729203693953758376109809644599797621068459939242674381071652958479620360515997767514530373378982993507434243899918091603693034230474420871396193673862036064843161494115054940520560087477754420572770527267788388277986269597626154896217123864837668078144556500554362588636991861744398324692237916680910600290129890752872039702724507111519751862461952537096226440754639437850749955679597310845575647137228383310257171959496143832578167379438245490384438532308454965812387809424390971297535912915300277231204349726497076246387678745034853884587155946467948313082992111899369325045635381869093941475796617340103744320845857399893901121969990061487221955109528970011859746616025424421300552258125153579206998136849779654180372006805613507972082183291158261649375414349589521740255639814413310622553492611637747332257447316014048933932572123440794020005990812000406690337416347530705124453170602610007237874003023445687258873170523135497654603832529878176494974019241003449100133987302308998299563890965051198121915356160171690575800810950024637789551607338385660224347797889821051819032063424741342517679291623805020229747725804131791216906198318422475539806727590904376208481061725691444984550397986489448292326585795492553385732227306115559317708940855933749359003372381378732145142242248311378320949831740464600401828111411514141805920558222310541253675460797525693405779859168056885051018516743274447737456584182162737434623440016138929002662455501439242506798105258118870065065869075375177680887358701489138611318908172580799687679937940324982259731320063751548196741532107204684397519233153829916501658922203379163973305036332105727683687443414892334488084283311931233132987930329054610729566492655840102134810414057855060564218173883396116940271515240832391166609263366646058849213263858514313327224924649138538201272592999537978008090836074310385040669312438367885600090932335120236328966293341162676924441893380436312104637618803539633023504245195349076958320077307929451149581807957656398584412735165214728941195769100190712251108326659095497671589169648521780278558960137628313266302741190709774052801103560531407466564123540801492099468838506649456831020024863464729633167926206154753996981842611825199100518235197710305447317199412343127079804971901503333481514613633162040715188195992894582544291817387489024727184697986527434892376382733120522912218215142631409176906723034392757458710547517663282687662753540542965035489304319517941057428442035554648552816111143592854932514411800862642634481549130640685592894015921344805452601649413535701253126636905163419116844279513348839138130639540423298387171352074103202501809932425268239768978455737223533006591169676499031921661945337383523044531047608313723378360879517055308216635747538968833524586954908517780072987533458580180127615958684982671991938310013635482128311952835615799872807179410575934889368371600227327680594217356507903164680400388807230842203697844685838846331939928022406813507713622129265384670140998576421078183419021241086188222534740039043111547241426737278751779441163239124277395726916935402644811293467658517640436470267527519322106037636588822805243825194787415574085198689489272629273477236471873552773067972832719872727338444660724300883210143261697253210546034615910533860483672009871553289027957081407052240394811488390893935841069455008336053322407337086012638959105749018009351719131303953207545163923144081135162614534475582236011495251681037439055128075902849771509092509283483928051348441940424997209836321216558695612525197769975648052604918078221535149957058867303831352188411825440618785316279019421634630492613947341140762837963199850416379279801653808577140402713102396049479581261401971957552728173464641354438323598876396778006803352618831692091355530173424716861491436299769545907561096761114898335909808238753698576155894751851086964104401071401044898760014465673712130299007161747828673614455653026475964479246656124282601905827731877311299306746276482877589898434244558543423342922750580187181452697394660859903685652279545394183522089481570695350807726187124874325953435877088740390369387612081184723505615283375583139498770593585229111741816567953002221162750055830111879351651539765590295250885613983843103081985548225990261401961343036590830244156013376586043096103445417453976251793426423609956339029740583653731342194387832158983834201380686931366416791146237750779617045942057770482316160429207162237977385316883164868500448809719569922651448708912115310246260755526407462408180858210751209302726898233442743408452617841589093069585918194576745614345127707623163539840326490988779968829304757818360725255091396189571112762393872184691852637635267813980419970307064830807130026869872431836807450974784086424968290861453800150175149178470117419008629146483570475752404763300970117876704823949962335445265451769017758054623353873417606313195701101638671805610119780284662135750610834116941448133852196185504898446345785917295846918124018290319950100165305782163163233163574115686519740621827882706751324574287388591466521612486704524017742728219354743118201429003426574615783979066484913722087875537129014346726708300013860550676928103806399329649987968243278610804841812939234618245974530036142470432500272773078157388422179933900022175422683287513005543641045528232897404466032946224362913470796007533599911423174668498871909502166050798959654614493891447595682015943578968678337754199266568651764167327982593511486684884673282155695811404242104679035338827647860897343344888096032016879513131122308326800121304414974782174980440994307420813608826725273664089023837645248455080778211059050309648293305974658607745499983769089566319384521368509125132727356804036403361185183528103179760154848451451674180844321888587527883089953299057774276780585479483032195471045857656988439626076404651058519779275678568220649896728821030106198667687168855682525966713518986494539791422325571960961736079921014189023518614414992008495400939763313488351376789023082074666613293035821154307094414968360953580817540932023559841806318431120551999521215509894990499449978148664053017700796226063609233284245407697585401583285620134788941234140234015871542096158463515988466044244308280807164495938445572527777870746032879488386399789812923617188572460270877028253778433834864649971530706706505897617922321994467251244755087528650709237392272824937429841356909002081125383424341115118687863791308902231924720848889905140140057905415027933644696674810676956990040359467781369669335837648987208391633515208111476323680919740671005778961822019427365863199258309896370724715091489071507636768480494139960584293575035895365286102904149329044484235166049237010082118440689424030412575137908615964505217188497606177406805921778655251077271249525623857892744067557237774771477916450013607281387507672132076856442915220149201835636361330385947598436376584999803870604227448628764330228668075931729103647389659575838778494890926477997373234522574050075668412117599666785995738977381049202658924223567807513515291218763615778152931526092133951139283625369401940538894462696338714264076418007011605837489702602720003361915937806341765580368176873102311022028592670287195900221454981363102955208853273828526601796137106198632113263448966327552492317416802268819512768302302694682623373587879785137964142916987696946084269619918537368707705623027694348152951936897494657632982685991474947344624001749123481871574712056909314522063253095907805984464588824975994939104425327460646935250370567089228339205466113462777077712748670375343543790273487977293747402158851544533619426936485413115549198634165819039578927050193771891115453544138132830772389901609821832031849016610581865576829819408437195725810606524285095472920923889104716212159272022952476847384977586215175594449919899522709978512569653566957522904830026037624620405653973774854635241444393717812354682320310708885348701839437544619968057902642301874299337042005181088217695970248370834544930519271189351462163223700597546188128312885026774612922371572650535252127948127265456262136218732347681529678832575644815763015374165970280644760551590337488525881149162860038677437105497801349884097455551920795804033511876678102030266405706896619689017103448889892543096018019711340112621775784380726763678987388779533456722471850962853226527419167060869788670785895558020648766474341480568923107060007108457983266781710982935749672284865495020348353652960254071608094673029373148919818512405678618161566977745246728935588462837286863542565200733753134851474855941619483890723425255103281781478681680987100361697484091826661299066145074744237124347143831814528772459444857865577013246031081152959936924567620818094128386790489619431679522677890832935610168851231878714916308819447333136812289308734578880436542872903746691143456216333757905081223990936318258671031211944847970671522311416684356455826015187316401731318489413860037452147014537033425069769115559501166629673737960849455169080454316359793210978887559400387985881004567083913518558219537708271904603141692148642336761334486105346503577158378316675428056229034471479394675591141175167097161689232755596997037440128194069125711997699281120151214024107567265431215889715804609805259148877280890028909035127199740675348330933910621879390831056102570620595119844410985808351214512815450630926270801913710990250377757374716753772083107382016589542109095281362231029723727312590843027330521824425304461437437826343743448873201107180492622863308390523380703585250720876953161682952521542108786748889457486118273381916469743461795486250750456335180600116098433297549830243169261703082263356800821742266806101679480433117112398450274913887428603127040488360497127941750478383897263992319037570867610424763481139126740144738235602304158826648955387324421970401799857064496743439926949570544446470583961921802164058204831954769548005858146898011884024848986660265752730543534390314051193748803294231016452478359127638063662214563572534222057880445718118384758011822385087447964261639027527675982356961297112308593182567344701152242319151248883397921472304808005423131112924682006466248955734163314222928027547376026135840337222996255419634640342684317758219268892830470220550345836900246496375049216493743533092780525548435650895493871145875117129089372586785640940150570468691220900133031781526158266392687440650294336746474350569580133305500638660087946932624889056976398699604624617948646984752576321069540761794683475303483698808666632215991116977914629051126036165715244383887693988924151417049781047325143966069771351601763596082170941984640582956893671284957480732116912858080444735276159581019623125529923954193486866951683340761308274079414609810009090875867400391136775066521208643795939235947449479504147255497260972071176675621839500888431717209745088472158643129640227507415580703291245814244060623665952845558591177175204242003316654369071663919935559735704786057228906116343134997120934388429232129917487775374645337697686733515195016572343259495690842974236428124488162993436217230213128980669466414034841406334459095899601844098624094342238430291222100611605638453381375072213494858801970722818059057650983956462459454105188151194317409743047628188115253578483333870839151165064469825512037992322417388734053439620908540280087621085973624158153094203559084522748446597359810934989686660515468863623181086724455807426877129493175639124854779388188672191861386049382772655617661018739532576392191789393360470144018964576516306999320846264365338586357768453914796260915116855609695699884825160840155313433741830368887889099050211348235865659209104780574412985173498380374811786000506910085877760367752121235047403397638140790129744168740561503224048521054875640416720125422196114102711841894593753816800171396963162817945920141517574128130211256311975772250032996069037534154030982053712249562915283820622208108320527766250803095621179017253681576447506676054011052832344128146327381524327195947995504661575645464198549475174376080633418650493012740549504289983285171382611119978667163305269370611428073771947975568362723024659156464840633874618513692148076791314287976843840146929314374612697772326431460175723404251144940289109043967802686082899993893889159863677047370110067768477305305304795909483821497306771012917777413332307311079163708058207287920906512333004612218142303027473100228772471834952216474427930083563777792094070714395084693856851362705587083470497155528218310194740766426487960265313669933075214940806302463103410571766238478581496407611862692470972505932305016133173045248964875891434211250423796863416155408530463707993848207373545735994212557942555797338385327176796268995036348020571050032779529706933906388928627842411676600246431169723300977724136879509701170891506841536010424334446790378845882157654273856661951902697499725261189333553921422517392561237529204362605900409981410736071397292391857935936457355457756975565697897297126467620773359445708263755624713396225910818140250351413313079844832862520791696112372803999918885178676039803323653653154091745127436958161921164209732328245561242684389596009116253555034907172359689271528475041197543823619416457186618775105596516060950447764138787614421880965917217674742869992123018704536374460103738568909176164084440279412758194942275595802262962400223336905826851828942483842748315117824398570452948191063823637196130419938139551767787119348575483705819746274762185655862024678027256437013687780076193378032586802191555136400113123646126915701423151183919981810728729039568248511183416909763006876958070243242672866982244367886499649506958920646487292405717865410256159279705026199157457857700767893457372810829389688272197011128383784917034384151869829881185388509516663654175077791786018024128663987271876047616506059489232960254099988183301104036275120216353048839002127780007356355668946174462712644296058866525508436940119572429890813951683780072422102911870115390536643166911433344584031605023509265411312561737500403564464265701367003731898736130760801710709644610880796986918355107108976472279665584558833442259901614685436531859725743866101163781202926731162398659595117506813740656872620896959757440422534648817446148622797956305633455453744692142262386570050991069587381257868830451392932284611742796816586583933952153716061912529143003577896677294420347736703093593605754991751684281904126372487632313080787806731943283905737991276047432848143770418029767200470420227209563687476767470232286798760078211236229950806902225722288856564629859073935002924011590677014379563505284525173872197607108742488898563625645742529053996761143680447042515199112955228534439551973298808511135336185185535022502276514978515826930863544320577909907182611446947109409808008671649032488030875000085974990541921272258109682629371418371087770753708867191620311433636646197191291343355264576885649140268890734328468780929932642992947722298709444503948383625455123727675893912100780454378458161517447400529141367643012812176897904481187121332008482614539139166194094571680257489824274372834470529036594233646852356260943571983472335546271222881199347023377617573672621031748840614427005744460813875474640861585320286403678847800754093908359012785438684933838232679220652827200989902664927931579860106550570930830939866861897036458382024780509747730560617533401402557429933333442723894055390985275493807309263117065110040273417683751672173615723987792248509127551443948351417628456813650934376021951417064117647832893941561508147032446467667499335478066799318047440384359244749789077788449032996898810471774366668620518570761186963632028602422973157582341408685494399051273685601677214135510226413210247241858372006575110309838379185108915636950306219185325742486997911995683188120878135530573167015496677308855679861296826004216574555155256998341144226246959634674325882605519893548654789585766679980715881391722029050373908346519130544572134593441058381346317382177198483282019490727484359208917075188549913782405763077976324925370413462388948230119881299454728848273514376769131696851237368821813596836511666263444721621531025068397123035304385554833087714567894076362255585087296805977163071326504930616460910657008235425722228426803875462496021024490491168146590259093029296077119621009518096817030765201928186791652925021223871061929678495218472491072050532374965960571487371420647784118454718501264377839067186407845782932853428906441912519139799555095042470829212257087662488410393540173265804654017174590826107002845526633551578094612808600050334145061596046764759313905428637514968777365365438064377678308234367283162714046451314249896237454210932261359076154213077132073982459711350298386688372035605339985482161363525489142406539105307882940563384851425486693318369507326003094434899897493640374149796331318794979200208512572464042580760644178327789394798312839176647573631102394649450252065612814931360453209623232272591759756812787259017456651411447646469095427342583797448485751553817608989847781948075146469895529464820501499533286231923325730613662559370163738896447169280392514352537820218681078208553358443591006601114550380261140747466298836746390775670689857882089815183403128623727494926152900593344675345495803829891645627896671334068713883733795064099454822888327891093972343801586209369280098593448292056046980417472971670977374960130975991879081457276685074237793591196915449280637953033206199813730122979267904542213554998253177527231081058680690996930945818848981628953860683025617992797927368771605870104767298607439423590674517211136655637845928233932566557434048400342733251090110792902546447810057278287153703449815525168172479827749944149042546709291582897863504758807902186942053689059975614724797983592289431372834897211106904236665896764968045376808800085121579965887709909396201133815282955605940730668558423924007928531399009401138705787994061855653166458024681189385673069834781104593847164611225283006039323995828151740567852804303466689335225779698761768375901207923673266784744709903037366490708421449812405401020118145217856309662636133029889947993628323623704033537569286582873834421031206822101472268926077523924476084313063955764610304113186308753625666545402012090149251247930564233645784238702297180538781585894030101173457101887281824911529746996755934343502416669417636895745476806367883991214513841815206184017220365711440769628592242791793579904675572686064083116931345325682020648785662520635981201066015004690701674508109456925099083590241871886881153011850961692459048744916305972831643749944387566543670280783400055543795905122304495869982152420902181394566656781573490719688001128773914847113649082715963325324099814479678717495630138576714625304944856595233564557935466689028749369290816497431013371767506818067805160060274238225781052997614347172049740557121843579069599770369610606383359407123718207842649835008830977134868704329390012878528261197806735755049101028136015737510190797887915928772824522734503203707585308889562101286359100464773573724224142586421801474936972178518202111076618372194917868275648528187268530634296275320167274923574453132441085468362101805377622068675186680082619075500808770213609669647940216313045226484469514483309686582251509692700532265888279842484718558459410414993239213033407390572222617141197313459246506783635525884369243907938396829774754845685703348305585997522629200802719421135283727410428958792524052619678458742576183791314248745192194981075537740707263231424105357816183475358632893217401196172306256440774182163269635813886189981736828882014424983074564303439539376305271920721804102561638647233780969398095270480771318232544331901501290628446293564787575024801739980796571107954454854391937378910143897362482580423035748121548730814573275539685041531937180938306445641877100852949693236511173801886850679889018092914721790017362082857263765143666446426338956189133936823526324420763170595716958680162570120935679627936700744001495389063542268126104539283163122229893362259501936402246879212726962439502489982684371604654300300665082325449833013046169947677609563578076744374402059722806833296165791863354231599835074529903544457706461525238602794230365936275313887060345305110140632082736993899526210895167250611812106859238709712990435451121079147023036243139103154563087022413704422042255235276622127253691078338656666415304886989074619531514929075996220374678220059984463526872392747659211382291785939407707945477727274376635158024113781571345016556876247238873495357138221639632513764234108172746517259986360534358616896183420969536908595358571207456242751803768626831637921957606010926080704329604057165002867768203745429363166899087050263299495791716520966136805081824508282902957431457111111843021055197979248637968721032695113822096524240939770732280979593173773763627899217672380990965600563414417678916149512331624304658977394951039438431410227676637086225229119674679701775586722529650982678715337262752186670217954837543211564900995495251875753780782259295750795910596637336736383789713305740747659292127984613480287597744952050204324470922278314801719319244891579231736178209510796056175481216893279349582920919693716946051771798366472184939646617576228918303704376499815977980438111601759034064275100687911225993029353541909294242537164731826926720737420031899421653987671950214064494458029299104986371637570949625204320995653549072853821311453342277365428906432586999208960785881161446492973508764397699533472538814908837564295371272525041233227102676879932867026833799382394450965472081785677100099604127346971932815808654046493114614629688166748845888989816528394066098162865111273849449893732270048314806661690621356554958720145462205696400886219754633847289369198522442515873120283867673725009112178838833729073664002650319486863456169380990929262709221185397961850358633520693335199057441693568078268892813673532643448605826030748532079015392486017354610149653494540461258719908839400582423858149592405462331799123414143273573336340027735758722672582312693294536759891312236096542416623532872938449264645492824823415939074466416699128259608582871124802348479340247399787754125317700255039648244247907805635794528449370398502234321440726263465973796323059411282231220427649877720943075779526716994100922002528445504727460189349699947535200754130239112149767439266771972088071840238678402861782603509458116768883076035731718637873924724446814304126594765150986528120472377251134816869799732938112380556175068146378812371731805893722995732161479845634400847064864240540433704495825227160164243401535229466519955711133950958386665406745586840651654687986633615342237537741313326869525332368018765219872217820011103657399597792033615835040927596242611484895202363014147383736088070748684567542825487943756237232164769978954571880177883897249906955168996740425464017740602370946121169315845915064912229229013136751677897828157605686957739479478774633507740257684494917866926567891184866750021102537866605780924411277764945665157933486317468833123013125480063868378884598835525128719738400962662256115620337379924949392060483025876471604461169201266658229153906518877636931409417060454925070624168142911382345788473556315473407623256689798349777516949883702718074545140234225474251785602410753895424635537253016933723933074439379613705736748059238228682037569387211539727886186771014088184557049955719611678019881779970324420183228402320730454487005766612089809849302472966287852752942007396234633515753263227511361354493943216281309172528160341535880602326308714616227700572182721968009051585952626192514764897570264173982717522866570292116349024668130948282826887734818576597413326335310684037561789659157826562699048330340025638821679055945694435251809502334016263381485392432617258175975694502866773560979136862321285854778639236594647427480151577430218239937232066072546719037181298599837643611879680332544172113169085961355844500731240174802722019500466679835412089581629373281784458674270253244412902279622051137348027571816576694996767166907439029208856836573305743928791507384965353901355443496964223086532105764721700784407352241613060840411936857126717861711964480850860577747583140520987842836816979501128517175689373421079820871858219749527931870504664070938478759096629240361372502530214104368453164169952240961705402157265485085073431487206144169231788757424995741750814617971613533182607508178184481483794541859583057903242336657954026370700557813918453526744167780672301207340215487946110739325377241631728450515191655896992526041095642302295816723715109634221136479960008438831244029519206913071113544702974879801591127205195615484043553873719596243052416953728597996737015984751566803977288559358802035308299198723550007943933600483676496103955006834341990174647103648332997705694845847752730141844373781846581374095748952075684125295616222212812649108486013933949921126380137459729390928303356780339407494479846634281034167594849646895401684445689216010865204000825417163898085438844174119934998378607050911701432535783224892889708017897992349727931607094515295970479416348357612010828756300511064107540466946083547371619612016172180161270301000407185410778831398997051336092630041804834568173376443230899722899512297875627980946829453932547628249445341544920528168659125419473897594252238699622634460301631311044552941356546298237224835215658482118449204188220748009141688279002729613796617804555667552571036731889088521428881390937836938074740250992810603768256227829437235419311498838900193996467804465701878114916266331235826852260171384503710734068947456494474620676233762431319109564806432908162449048112249529925701889069563198908865731266842805403353843996201174337363001806267837522139215967997038248756702816824654216180614520256194662539225944138475301110534244931035909240734953255112595802294568843490550255550978094889940565469280583643645187483983701504266207486959734754501721992798198178202487567687757978184094135179500869931822807492465479447297316370889354355862519816348922993754471454246973830780383003241363679364760454021729020974528265720879024723880144240751694778798099888249085546225332568557100581060554387241272005052726766076905793683594412307157248559364601664006708148543256319184545450706656034528196896638579180913771740686227494097038180082071095488179964094899443697941023887435889253816495374320740700081898232416746993725363330478271647033902064524055456474669292776370406259952160623444987952788431645943162647761531528186991739350193049981034801372880641293330613918133043312247736323313812128477013005992223990195464080020329721145085525918908653482196320540422706300873195177970837081163398082102220192601462161849325671104937042001306743499971836844982156478193165343865833536993744331151749343777201883778725737734882306905408270767811965622919403964175369890311303043453318977381987149864514519607054461877547493746283110559243036313012766113477557059261892024850018839066722576941371248736973872394477916731033411092091942863932255656763678198408768576664708167858337710442156417387181327530106544587905127438284444313877351922504147055251173668484237291315472811067616577962555029085922767409401013313320369712734914932359426314186281119838512903192430650977280271250109049913870781748861043756961544297436062760692696565062337525173482531121318652589534637695400263362825066437936314286551944592979727161067587660720124098193370911931965076290492870800047755507769199706743316480365254491320140342982794090909608040229075523904690778080828440399294068637600991799096018573383224901774978351611802007667658336701958820388446586154574573955754689254787833609660228049599868890996625048656614248693704864160089815793401304819538782127463882306289436421059932543009758503811012987932735868356945768203252031355291683879958950304635264754561823175476066728404831747492658047813382974156613625665363155539590409561046870772002569278910377583190969144638603017686607352544299036012992186175249252941252526543239628231645054977166076010616837555915553587973700969157763788459011199676212959705528531086820752768923749058993433446523200371139978086319600842722688937487323730209503317800333149499776231554329567055327894485188243046150404776698746004810389549242749561940756393884399554731606859877445509214216864605918045614763171988930154480744380164694943276038640180916279733241669143320799830864749070072963507522889674612135011241524099909028201018806958174532868095997133035510416509365392437085269310628911350021181344975870526208024832009442049669603580348080899234174537681675251722892238820584634445072332008777325103448150217134082854726169668528832986121263613176370362678077316409161706452316612579345705533539127793185519931506909532502014055673607096933608623215742741196001552799127413106382751760495565397217124724120167132358031014174597389422522781848661555432486813362030240924156394693829661457958802963531655970183226330828782461844183090962759562435114448300892228887007913710126797342395137612040938927294571557968314848510334621786917577282993629715302785546669127279961195569341877657127331710027412029885689937727283513771148914249474275006795086495550772217344709469739422435542496076189757677988928213919894924813689434870038230155552791276197529844829726614932157440315146796497115201915890116886608524644238596823659761306960455879495705154429841170573246258146351361961549091859632415351159533860781167046998194539411843522467303617918380130407624369270347463567421153080813327739632773912315450288100171782639329560494709908646592802795689982133767127601004365237495469831628504200929267705098280385293069765403959243372497630730452620186099723962134109584250985735270257011210830020056713763842815727952656250457504712972533791159449295645363562030498919404168179977851766135725908800388032210469191775516719488802306017458625772551052776199193711721936531612098740355332099450548630932309628001882872009907453564462574783575234254495671011397259077196735600202599183779770848748442718431683787404442278574799698585249308331266401973284389591130007136585606774242633232406698071340105497833011045433084023256915587253559150775015031103138861489596284980014004707636916061874951130990007499039527410449960000849388229294742174254581788930534462079304644192628900351107216102740257716565899424729398132102478576491455266542876001931010575221367977686595771613091063184378891196455648619344229516488822492988704269954836538878329234908801456636971871411855896298046588843079101127040201283330083730037129369037889314177270736448187249937660111304966843043652217317667351362536700403293459166603486091702569887939191802234148222126764425975571421762137109363799970485351474862488521102327063642279992060579112330184503381851747493164376834924716496846867244715431193828624276898953148401454396778298962277151450578846984106559424416714044160875286747958707417544305460860956609873463247677454252516319391875788030659873350834384055971569711023835186930819568783012318790199770540664030109548895768896083648593204086507968791517335292337059533625581785848153285319016396155360038684101668578943264133239927348333674419166392104053830802829664742149396885990284588350105507701342780412111699580670184909216465202867282128300260268129084413874900725261602078529022486082335899039900505195711010033392151894564860738940407628143297302177726222737257693094582824917110207696087271677786634536555369994180518992355997435495659289408064175296418906203048689537778631323077779315730209340119629009950839989481883855139060918060961807648915670021813921795091509529364698051348459119730795099803979081722883495178087186262052804475695630957049589292513070957492661065682222677076243642030470194493957406312836722544808953781563302250712644326889997004631236669150501703056952358889902687925111754753682385042100985099662333553238516437542267939548434944279791674937711177170232772825940935517598534688058201794448208891563007779012914790294060866239131237439485090398048042109415548586247142063229086530029088280428699996760354713382376839947296538013197444750842866188548423992152101134708922652739354583342412301041351639941819894005598427302215643337976203642265448939148189868423129857426320201811447281211794127163642232920077265400872917541650290269318580598605769915439645477593323873657739943639862862588307052227587807829191109891893421991689590167952448661711382939371320018294136901468191106081788238143997877219772839654802426578191645763222058021048308670393686474209548139098543595376046842179533562942792228526638428928113934143255167092049609048390472846999872790873308685590713289576486696205061261911878429102296260580038740388141642638721548103734704576586809611218326263786406190907225429225060748079581421109734193629383745904682596896567593886367623016790269432160060625342931844559440922617494620394673586915380451275053648370055134877215262153339788749661622548332967838846729305205927142877305578041068665805035401022562484059236094252711201821350378604688645306113943605106120094218191762686169634180392687516356346500317136611825465684691199340399379570655648184545629561816407689085267352776051732195119574542135670615435463575055305975997257463932016120422485992328645500478973642129932644088563040398996504359826788129267841074715769045180144033738989556203454169029588365834774109122301096644890636344492485899861899247803543328699333622003484827043170482141242496798049923570639172059930417391097429687014481287871476746205332171421161643358281089560478989543956806901311997918483145573001520600553003783964661736666050241740611595292158451066103080914269077238646298750233668193333155799914350336749695950250369881164179168706607790954761878005578664510702345168595728998714726143037832995224686243680152107308767375639214971916294285260815685714343978644731929354014697900216660126875878819170931851035085517974127071586460515550096067118276063351394647946412712776776892839633211198170539289826225729867153422790031406987247709706767448569050900028321935553164773745015401771450826695742008495728356665263704530304741425748478709659922701298794800135398870893839676633735006913347268316607210106772338527759835061747666113427085991452038831536712517906450234380599937745228826672842112168599114664048909545756052545210312077025878531928973888132814299198576906696662867063517525651103537801296240171663528455078470327231097261225991521311672985463781884636013414968817160749702422046278759983225903933376478975605685586112361675522621364691473749473337237240611580375846412077887535576984401773502522191510874220477672629400227106321014480594080015907601987271329861178592834932268642673390458677355794901479034690992160438187635462041483824407677910857953285858338853624857906357707535183503826681268998739990916293311435032384930633001138044375927488625689686566671328800258949444373944984049605899967981253138289555847094455314670599792684765955939997671199201836450375571590085014587766751198174872582404131917306699169446582381542916422627004533548376923627997195415273480418431634736801163676664332858474013759432387626746892354127524870834071150197934787715091021812497091160351007264516853106531677715324697070448396001709295642907671539062654275015111812266381574383629408518088701017922037454060775062421953739647644322482992839712718643606365315222229705506049736216527305212157534306445299182021159318716118873146588046325847470047912731144156019937413075326697833161319527728498174336955594117554755892912269710297133779005800754813117191177392712231530440798368408401773749170348574908697824739108873037716891857396018394721609939150843312725454383546171261477494096806444566548373318701644480345097349462024397078633706010953189665020391399654708738489129862638066728921180962248886672129650541165027806469911786370885146251254827980009807960610347315123188874358060214519072101894577747541031345692808725685844654340453634584863354635794821312335978422488566122906790206208512834594352629463723824557372247927687367996747040223889459888255919774269151427874411479461933656056972570658408930987577763814066875910798682284387122686148340424757463862147972499263695353401359799076325382023909108518653607877790317044242472362107207595225781007609564605520127641303169968887875928949252285113033358979896582298996699042995700300495877088247075396666616260340545583658858988931045569906052251101344126620974008490185462766133742236459473086249373403711838193926945615917289767756844234822938507124286795651180224830951276547278954307884413869897899546835557882318236951732037964095675847323584108068671828008857096957046884296246038989923465134907274808280820671751200718202767921764591349459409017294159096714835600910440398104343751817718092540812294307946552859134075001407897032334994982796591129601314359083088242579693746351903341513304717209832834748225772758094009438520137929980088972146120796971988154484245271564452511900267021702310095929138673483571409789743802144958205481095705113787268316849982694098446083558265453493538410145053110299645423779000951589338781268766052065358516145977682049132432221322352927374130264804399851838657958041021937652494584861589567908516668419200368717621991293824624667870194222480989031989300634831306687501103808838991184585958787769572180564920064666580169342807344986686150019702673304319389876310144381337438988905988298471185222166055886653131850521820996424689031633041367172014824656094341209092916728124708610947823439348158508471457909459416023020737837011537149286421084018380897848653721136371731104279356523788737183824629563782295246083758354706109332035245217596840583260688149714313530685822493002655695702553556181357875614477997076633476961184721994397782723426342670911805028186054082457790727548007317179894706812909527647043563010878964018774235795788548038061974519096748859763265493197413362456517984879226804836553830425671870266450354362164137392436538191325464876981045855456902985029983939993316735056974057153139125629987977971446806093120979549179931377684960638611138100977901719370235343689954203901720963304095897227390704816197230038748221461295753218691570178836486068278328789656725458049468420785604792730404001218429533158616122462686975624243097302304702295559952964235659585983733130285486499330372036050804031710842625171051386837732560604997137179871393722934990670865182101573818858709628179365582544536233715636855551351874494808656650432900171602797201436028980744483452935869713338084869173255213697370630545849220146261811791331109819286011179756311316880894345775145618826425502620024363901092924582580577708611639646163949053408437771599877656982488412498360942270869125570634664003283188139108404415932679718380649752052334257712008655793818293103381482556686367661340445749996898602852003148831166857108316856487402541703064760758358383182390705270680132632389129184808595443724845825907158812660294640471729169441500313429490046208194061846350305120855805072904623636151178847301733457890203676677427631146760711946832264275635658155788726706552616233003129118166112745105096017272708158848766498895555077293698082407464979428788543079113524272820334780787083471047014169969243965188972790287459379951325644142383328482525377012728008005325328267115569450678657428204548836567422676921653656658017301079035755544747718230394443150723336173343085559243308442684859902279633802319242687748412364522198831436758486253627350350568665154270978237069843153648489839792569908335136868540897395995032357754348058379425996679419755107060986039750298042970988669428666746316858060919408801660847501977032737089193129927050970488415854384364482710422311047425264893479067033209079889351597716265087453689844391058468030546859733013195561128697851294062271079819284997951127061198134712248842917069684783703817132950817470546471749111309566661815523644425474597744650492770198681543402595360456098845607431248257137155017503083363772299783188843730511483379170866088464465827929300736742563770143084564597918065083422705572101822348709168459688631894264853988937690380511255231826516780478513867346433993462877194294137217434338032669815428569869960474802190918398817940694785462312854049091112091669609232935270795701383127688708703509693921227911153851375631513181185717940855834952888983194787399585996136252802503585205941821808881685751923631642670610004787075714815733809879796380971867128062399520403650315206360623080500513366479172800633584235531314706059977130193876350904191173134132055232118115738318615391898961944770885050286929116405749091692573229625345038397302669845066407167967859110694077665786049683512156055066017515103969162783927801902731705173636923248047817489760796360367333911284601581536166634071201824240930324208916627870437523537400487463264378960912657721861728164557404606682037865014564811578791611394647707556545463812555720488214788814959911152840360069341530891821614022177258301882407613701285825102693125938481416945496022286400911204145236722738891607217757936198548626746498581860567342726998695345881317395807585670036333799821858967095467364210526377385655116782914860554313666583925118464416410965921316163285727750938850475716105938884585910118033885897414071580112873282958697857287662031349188623572638001926661468343684526332754967032678263754630018784736262773463156415561762478285485544825314091847891679356813082391380328312301095863671537490635698311852728258030927136373104264576032499660643179803847343738482394381349190275141250453554408638010722541751364718973526850869616693902041699641112690819475068502757314898724417049767050924386735695032111948039682815296890724197498119912347148639809159151120510117856391448722164127126466900253530676297703124051453126988936823911972306711172711819141704282126658095570656529439375497992416889905161978321688713855225674085147530639379042411159797848671373331682208955992638309028441492058873024338179158619994077776451298733841740107542509380002856661803889402985670482457022882873023227169091060185367521135266753421776900023439062878107290039399374263752964972358508207241965236632120209507812343814387586606253253955810088329657843437075610696247244914296027698068976874499346483534855322551290408954976499524439004289302822495320157417846534131237002855506996895693448612378341124255304634024152416185785346712802031720073187448106817542564426346017268921344376874699319823163021264732489959946201500316848215562622090853792986657190285034308986880858182140765197982126720000489255164544431438070585034655446980446427462711368060560592225955578024569598489162560235367303190378036429665907635517254835524994136195704478879561741504971007717433583113064518267936262251730599798210978888555748747662319644925512215645750636200190303397273339767302596416496374901456961104394399362949679343872863164996658201854444236881272335920439982837638017705583299089844666184106640156051881308902027584894627045228296389164750928385844418842169455797725151757916719606304698074872174019163606416376735781682267295040113823654509424019992409021402394454002393375266269656204324685245817618924501452852696910889151715504037977412404456434691532399444590073643095435697460701025978823532565543836564063844907409482924494915468266975757814396891680547610733724043123013448043178877356024103141292813335289665223183325128183058478443871287278260497062315921440884207999353640802913924103406334039380412397986738484369535300475719200367221407199191744283603191079487346624678244101974628733204533222954330948747199400710460106291559587284998919156390225971363129242757784115725449836316580989495150081409529890020356479072010082946606466824335729870839150186089782505106307423991528843695606862216812356857193234948646902552121992515379757730086287195581556624307536629931395602725476948878414969972859809815608992998920303384830716322595976203598578122812427513861818082481943469769834279731220031651279810764003070894544197611297150896008842563551014409096870077949904762614047591062521245805922376372403010236596661708287733556602929365195177414650425524776579025340097094736461204399973662193357453283999527477035527714503864782044970844985796845220772374897429013005674071227247828607698969983464373273229442262472888496554560527533544421658445856835543680050223877197465041101102822209140797249292422265368435727698980054722368326997185878690724421951898377285211596537519945443277625717113046895106920330980577372933453274438030535001020760588811995037435244726156488761671108062600053553002393722303643313042691786142313966123231674398226142803278615219565280016770574163653816854265153017069161511516155195673914501814265854693462926194796047814081604357793497790286563195991212092612433237541675465361855947209553550639263988000196599254691456690852282682268398536514768314511666012569183940139742007275793681788846115139856055045692888636774125363333057085051784358618106658573487657071746510896007000075420465328889617812984524324383947073108037559190538881005838747327894263130872283258928260506035616190240967693678667645227319528727081230751759475862666430179511331805766120502282433333053587922929831526511826143797887754133077843737030177530556075625127694731225295246851878505634122174659331675919326727335259724676387294939093923882330653654642719967030359538691213394601566932796489924931554927990121562226223466501733185922016278713031892774095623142599905671323374342355699975088288487029553844739147979778479098702775152400603130809867739983601679411525164347325754316309389833883444440807104920864181150234221646427551035420828799103357345459638251686332493223313870310224677965967367605044248230043135268960924952718428987260881069725307549098906474500498554557386639201434962103874782839318369835525240546938307846615025924540630296804593718837047240150178694967642852024883988384388603456567707087900189623579601634023171815480451378194930411766801798644567968845072191249466497555980977184261855706500406768932099737455511141754692826745471043891340010763328154152528799522631260782830769818742098489640895922137098048033809224980630562719562317830189420004184547084246548391020629950411309498102999294493014997770696769494443403521937988541490274927843719628870348276567009916638287720773307795115959209703670865008677930202707557658773876450620769018192643703168269583238800823055039195279605831735636376039704745685831168427875354895062768306299292633021372057464146221090200517633970770352358598732596593331300891898895954641488872443612036482124162042520523938427570357007858016755457964746788475400952508266877397764956472883821337490691299551991415408096138659737830279922880154044833823522103722784374227896884654045270916813574554396429941082270524041051163252837293222806272248816276565974862442971472589423732824540928993788990853554368528913375428000587889478953419934512161254359942759722211790789441653665105485652175177651848507519439846440252031112395578032477007093914985414751733359730257762588707021651165274839623915615813973320341159500282875171353963651955983094043159418451208015242010462363568455822878777985649311802813900271533120379225565865688906424961232368002475136244319065526249190011423799975042116808909746132662925687184244804744361736701235690593903916374555638729113391489777058723940799374189929264791118062892196833140656277665252114369780538518762351506683612237211802513428070429063129727197516754612945640779276763151752939305918750129306972603673324809654163925326355714642427579265856789198316652916222647736482307980657430616356868182796855819274045865255925362024513429478236596548151132008878293297604314451268291820692760560949128544038126297203718963575986447323850039910789469588721046176942597607633243624873874107966982068073031386817574523042502811743694746342292781899887602315671964272382828881298607039232320730207707615659617685953885467410699510641091002488965845819062147116069387888417381783775607986143854380122792106566214555095295451340761606947220831460202044587518866486408549979238644457582758839060286273979914883045104878847680893648164366105788493054383095696471840997545963353974963078667247623342251954657645920627399473274595595784100507480828444332493024813548053910062962047937591564131457270106360583709416918288330095294080582599589229746136307794113799376383315358008993591032122471806416159237391003901138069901415758287641177306628670542683133060424648483867969116468485116950400091777303413809715130874721344290332600678862439789371451769707629543810560037299573525769310265588982684297861519682828717183185198094304733259751771593662823319891048584466919210183499535131794183776073436221866047777316667068728229250295893753745040406053618755834830168264874005553542822319362939937478402083573273801174405938496493071418145243045217236891451729366509428037660136137392197361393435312571534417176260818732759966747568279811741946182902904917705191477167318149740247941895741130848322255982224758537262097355083722847355261995534612225182153668063929700690777239534586662057541991267105712733020394892630143690479978553370648185138172228691281961153393957120213115053672157759160474659817991513218920345649702768786061017099076903037580821459425931564400481901658580294261593861674702596799767291432914836789355225137489824107205107309579431955237412832067739160122796198348685336244271736696295567702759136966020749436042784031423527761591866599325798136983840395340480949008062545415983903564240260108587960553563199344898218792976249643218062189310383287474365114081787312098430345204279982340768956867152121009355059023461434347927784405676069067146780234336497712603704030190748163838894914691954282881578789789501038490896420656302632197269337231673954548260940846848148063045432944577971488361075797333330317701667386361667594458511768944194503013650576521447939421341322979003446167686565362471624185551076697399566470959955864444311752876217188065288940309968044124155263058933572397605781317333860734517477032325906216708336950040625790058590647316281335616751874135958546144454340492006086507013304403062638775360388774864376970405053430382815086209601587314650970154049983370011269630921699213953141223805213639333084387556851484700417158787723503886361831041940995938500112289313507739219828131254369633716081781941681699066905598327719292472214907588700971185600508057133429014143410617987219442943218239106157155967383548120999554111894766006535550098388899374664170481139709760884180018458882984989219670636513235224345957943591362888181915417816390912317402678425168377220820319696426453012233028187267736925281610664616548933027287108875062740479291712612417423857818259074628561986859546172719676428087582831614803760004711998653667991821467290824124596293081992427349933884742667732958613482261799520416288758737927715828251791609383159721432423097443099900981867088632470184688399607935006088415694831229539779266782010147141292053889942426637380158358938268871789306546619738987892300649749514848649552854281281870652546184991219153889722599383881423911392448930831523225799186056640721868470550118870679306935022394202387036748872953789576746660005824649638222977891437069410559866605787377869067049670505895717109763864063153284703305924101813076734783490822413444491746984890744877699837502799561536162342899777889957423802985405476241258022071378093598286601409501035745279458377304158760337310373061590451123542082092216662239356060788144850325980271206071895640800979713592222591398321695488209411186918955009807933013472796297098754517541233623300476306187854366669509764595766262541910377664851684527171296228064239457692861988229798589727844734581097105059570246164800729066979571100672820169855227863707482232793762144182932134226982785450203116614086463429751583800175707799375313399440092391944764566855441687777457342566873350115758328045605188293330688011453827126157401725044754052058148779668373089005030546479874746668506096167782286053230581459498398598239857137415545701713665682108834005064930344227746972688112201579341147777222137847253655524464067043050168020526518340514057664489956542081509970571495636491172969159227572886357840379676767786091796818811710471297728170319367547248819590340558300245455271599102562248034461055242781160059002040730451885911563257861093426310882496319799818481167902124069086017642999026302468615298425665336898635167107265585943211479164216512323862379286466131846853342310147418185441273814495450399244056357662535470551855852186691169738333895780355672765914192108276100176411928122785040771729690433744468021607882073930397713295414682159682564780919581961977404746338369396003262835750778671080302914446498972951658758238444616515338482958589474538913341148060317898272399196303130708936266538761132626394776369593790760642746373505704661270617495282831845649579170090361380399192646142722741745389936283899790516905154539815303071144375256633593466545510423820800308003007432687333817362888349690335691816227230752830038573110912776187899409399990011579873092486527417970119549919188149224002530252523886850895412180143047646430293163831915718373155797839573070639829742675810296000900929030530472542669483351180632270211444743026516598691071663025177714131003374956618227297335509215978266318283459785948643684361147285997996768291155320418047949190240662192208813297666836429665693292210440556784730202564805000825555423314121229323393892403490160825582027226388846773520155984116316665744356710616616429459950674763453997083746023840879354056369162490022021730156465215841932542000518171905002203527334790714724763245232537194213313053620382995983243743118829674738400015989965457262843673392348805664427606292082876551179925976461608134199688460427289357212176561970833368558565813338354032392361592987967066255653219607355313871350811084519876503915082268695211977085218078356821082394142082376661486251592592809881468349390363670806573451373219668596333817077651629687314096561801962160555219996223260805783563159125149998530798354715553140870846531530077461389169994806398390149945286717860238269448771106185700755113995785243828449219720494084233505668609180907957749236954216045712804371263138199745281262861838260276136488020432069562098021965574112324108117614555684758301898743522419731870518074031251481585386913235416718554889151113504588200430699624924482155388223831656815393402165033059543731406830859976127447727962292009855692717286613313558627907899595931469411524397720589550488088936650679735227633146157520283464632100933813948042159129072976660000583047379785045788858143295252378985312542848055432780361336631453652578455302020977903122913816219839435061008766402213986916282900892319678801439741749426779796156331092182504183194148086004077745158565988882883072852001554732594435182438823422487479361567809664157957386753197172280039259774184542445368538939711797984486084373576268566267206114428005043053868780718345032590756790366851743415805375068312026430346649597073314330008987857427840948508005588756132001163495264959416684284064983555740316138779116652920573281929711964886269385276999940993084464236161555304136888723702681424651656553644612784686825971024621192212966067718191095943304401020584191162995353388429207471330355144176699476366615199997105162107357046916930601979224454242928402557237217204775465720995338780918336503107664445497990109550732941418248758728682026727737844212680085011503655629654160674767327620076064606089065377486588208140079098765150712937263961445928328118629884769005393054732733509562186773338159291905235366438658015306337082673602185647256105450774818661400828581165895071517239453116137016599990890726328796828638254332762963636815846746030394541900058287156407549915575886535382687402450281190134363789639606629866266897320309606241085691678227032880392042899695422003616942798589989064410389855255772868893963929529243464840707278587983780154320592297171800837364698175897897444647359233453565247668919653201950061923736461073483703027379765406386151171179836000471982820751094058367997982868366120596871946883136137725610569605779590623727116777523372879249203587634762372253543989108769437414730108548576493314718595074328367695127704292392968951490800761297944484261145857711179075845223330916269115144287240961245628795747534906407495630120205795374774809130922763801459226932583560992152553755237655401063365498466116543487238027350069974194796970929712514897000452407644665479363184388790622613503259313218529356040777004212632655798117858340671560344930449288879439737695614678231708843956599813362685763339941460444071814687288689237568393068062212063310787062969011440854610837599420385634243563337451271790194611006579985796338379011124780329229107709677935430645675137650628680897248825858747624333375721417039219785417098362340577670476494219417301896510256726998834181774446364403919530646964031363954826742633874477331923795019107915274397374994392136113151162171116551535205294862971829878352019085805449265478635676224243625952228927738084833613888809335647956044122509247715864205202596790654735121956977603144298785581142919963863857753675251330226056950933167540886045794626620443014065549240088605853701570662486123664135292001983704660367102645971087446659449248555902342482966918464876299125113931587489700437063501533428374333946403699069427028259741025150073759993633346686276973120255267969161924171655782618904305532158569239986451287890831155614568825487984638373022843725797911746551552901650241626340326389222460272065992650675271615552037665463873009337208454692849380812595041249259837136512205007276910980730577741117648931415676186610726916417780919591954034080495920834785053363258141597296292442029353567545939287069201915804856251098791844854230218220278348793189192034391377904453236120868753121395426495758487588443419647084464588708027402058507775138247145458735994891700032746068356421709399613409290542862247458155906766807207355295083463071895040813818631808221962995874655003177497473434993882403784605426426822486442020728584820813308911439376347533584146596496156503103148775867346429089717610332927248990481392371446719924390752723995757478237079071418091991686326055022970071577652810748587256495596007149295463486855580419933196910025670610807113125318483731874938300976842314394143986251765377097946628279633894718400095868358772369122994144804841220252278821403331797289761547637224351417986547382565195667919123748295325342034434699646913312882060455823938478058817695809320262059138763639347527613194157678242065271242365029812343107106392526378528864857133902662454884940261378550107712239138301752790725353950377769584750096389949192654716300056899969918700213101474189460891596188927069711245835010708825572266977079049211457389008776487792965731358613276368505217892329743759988605979211066217657067804698893006354150440539905095125917436766628747062211030984062629076028561272089950161478516161723745611976902524846078952357014115323014866857866587383732823340655215383450924346932112362562740665692728304480731895810774364154572338563166813317630543680073066484860927089038097314778898701327717053968661383163370521460232314267728251273436371627589161547844803943909116060001359852710483006406033727821608386110833401325444144791329116006759318515108604191559853315301102443869321301667187322705189379309947572813582132559739605269528533553707901450561051761790097884505793581078694088386618758626131685679655757003185137724806695561359213727799946429142282775006492162086826209277262729471606096492343477072179356307586582191772644389911151599235251974345633421501657718613266018026576202018892000411151068960375548811878577277049498380839180687124325175700640938999568737216378776775549377084736026448461374575357662734833463705556672420184380985105024152952242992162447181005298749941010344073347343286482609586656031327935114528519581545054512518898641417998670078225705482243985818549745352469476806622064297449981365968889960283103834138399720630082573226347625600012743005639095021638042620390162801274045015164347475134034470051972298667744964716301625315941141507803714376120613283196530987170658556750997205776972272633605821952597539076733990235892486422180563900574902837607500270361738486548538452596331407018829003930400725421421122529926357806895040799737540785967975437611523977542097974304796549645607773236194240615906581922625705791188596903415593586264890822752031468488972552661993498301691570940947436989805098974951361600567385269145051913973204449979546510525707103644201998245553749553204266795985650682207646704330487829033426446799623247213355196166117152071401566791520270575898388805971056816479805624888065975891889799775572045364306944650052194659064018263803860389196911004466067995455937876581624913388460685117641284652530143636244724022049812234328040926375180222741541434924918856533826185689259114668932054095099326993800194863635714293620473490379283758382295238926427135563069029626686497310209977148617907364054418152642672088801243772494462949837717054233060961023032211183186684951346665420536610830751303144649512967197642898523396424175788537523527114152923537557630002985462747705521046107806003526487024059909860056936110705648991957077358684854058663601627321671803485525881391749306744083484915705510848108499783720649630855108515504743169824151764685044493334447673188564608048503031895947023529525817996564732795451981493423297591474545980361519591901613043634471066761720765766464947390875812434797963937872248038393976940906619217217339991754472665488366660460603810583867135358512473743056635161773825562371096343700905842759588560084086191507924018814682705982139772910699008890841360071738293568649484633398119776956219213794853525484786203876589672640775649901361127517104434696940895281035443968623639760527069503374307571246613047675063753838832532984869363619942617200674925229036233653930025784794799098756348070114265220375247527652837922065681178146585117566787031039691811951138327215293421568788753586779941624450556031513434101400498110032684581273834218294885680034829722580858358856993251879461728013512739027213236247003206137266504027777889705284157649776102469977480091997809411822418074623849494732295420709554725900564370422826548287577613707840167724946243229407357667675840574395594442260702809382824082382330944254014537430041127153654196739606137183311307282583075158773587632261434449154419050881872197172082857912369110505338532327788770768873872116762253605177051092024428208667729479437511632420127447703332824899450529840292999024761276755254782433559787432282010707559905421314937640827212602535268642414866440171834377267795887986829840253956712573011785525372510428788638345246523342223921703481830722540444246742054171133269743566495608789723045864049702792196141110024183137206527208671020862112768160908111435235575951941260907411537262851012873519082902603058327840804209142331685622874252111288457486341282140939059274248246173889349498682690444267178544036800595461900933220854640396054066608421956446759820070316207466889390714351831653454455981107817062839385953562017290632428613673350493924920756203374416867371042410158841620877242035073016445264228386706062558068887759957258975960900926803612126159970105706976520141808995340470763793142309590484257598475533172306604238959220916734850082030887055497367107239805374853319575152161066892137659083793226594627798573397843089423621938738513593515717953310977019305681914094380475833909537279309345604435594463021475910859278432577267671028188042379536955615306801614782992875258419084190381679618477329490720246584736793683632334899928636755707387126198906221237143137142082873865318233133562139444794376021737859593181507162440447369104172428006888833763125581645535585489857320431775787538219656522990299186110855550417330567593594045504525235934156828997372531181036093900592382751452728395270358405156296459303955762699364943224067324426074353821160278015968552509268188211443826779725435565076840128090481830846062666903776826498048398939814599579969012486031394953561468154455657629918171124620907545313789727216309218279532234427346161866290573621266639747086366841161425107594723132497017557004587301388315488985968295160898633118263086497020128864334063512249524343533534734218984769356688074633936457426693538430194791929400292225571678859500210729362388145225583458777199747982513626626795729191350499789838527840583094175885794809756163151325675906679344762285631616984766277994587601492440048803534116720828659934426302000834609019087349747108986338181285503676788354992535559306676861990644499173890360504191981588315890525430824107459155765085359275762317170827705942697228240894998141814389918613598643472520845928484739521142867090558631935078974472645535568832384202855807721551605195794386992180915779077102576245996789690549380676046296796813667297344001085061986613582208418788452017396168242685465719567404272802613768325229327365919927229584442617714868290062984416711419188179085720137253388793488897796011465287799540704095621974368511011276385981584211609815732974295830728735623105232782547682014716381811690484340728045246372694437552570470492003084809302666886633783026363199412258738114181736170148800904523376327338160571827197943640881748285652811418983990546904464362221160954803222954891908187076938864123719218672686898797086528733808113931923549327411204591212618495691580674731649697136334181813096482854423469717056118761191878467491409645186265467080303859114569396172666753183834458704597812343326581917261703620111262091117478571337686204010019471792059641499907804777076958158245553496595071501196040309445607805575538350295696647300794698381232795188074018730863872867724129127966849594710919783816518927253686032591565810968370713453077345073915792920901026649328154704719436606557066825598697278093764413301090162133227219103578018986293608979974487867599323470724297829445357951665076721284002965143181121554797752199889089205356137527378889092651174179807373945853222428705345716506730393710179591277638881355790223668405836218523923634547445935996804461658293592678919703685748800822517739464790224089868971569523628938703760861054769579044915572442589330521107129823337019768105907538734951234670669651608758253406505984842665279656377086314026714206962926200779053240587819589518597884996958930170378102344981017128107164360596517259943981290148294420476741837427263005549802874295982341879295176044580573282724347113852668147509069406018372997558175536906636958450378020391329939533044729086770779156447817659024917487444412321228255697351183554271709458908092497667498031815693470339086309887128741261286184118005896354162908462858032865315281061543084934853851101959716468801427565826907805673130369811903033202044087185775033375315458425858201937633732874754519827507214390850828917015066976138062051835445579801211276190625087870887567791070911566784645466321699676862082683218294582708826288800592163510549489363424073752503541345722972925155068583211344261019584583919953318413710663737408676445509593756187386630027546531774914880877469549833832019400604250197191850812317358960567864829173616673342818460904592821565011971641223497338654511815249450492398559070375006330220036113058769036055157976662678761101033580207281787716871538574107948118139439496311370648879927169602459583906820733808315957920810058682713352832810770304990927216915285101343028911030601815069276845059953124970505953915183157184256384940618045140815303256342877805089613866594969913916090657312838239387789516969176043672282094144312958527037404430516008491210037163146441047829448608124492800333876759514940565322803966807899140778177979503246809620833982704103233668507398897752221859797149855786567153605623878919089301374382134296805451983759595519955291041554785483813551267320878002811700400142862804361677786209628894447656598431182081462109351837983168556505735113528727940577401801864745483846698029503553410104846271340120795502314660881944119027177166606509931915089734078245867553392995158685061118161812757096240939735452652735791202633177408226960416719594958523682974855560389929925424464204758980921260275027167903748639687382087929401266814531109636315052392426643251027663400361315175151699045780255177918917511605843927870328585429204613669573218577098251814783306750045390413868820220678097805037631219713561452410628551468018728874994331055295057299824648885154311866173204401613425661822721991824087211801779946525292906907302643828074985290331631896266409167725539207946267521423286075361474233208234536063084604389409103797611251537048886634357076071814211664084083275837954182720938287136079554592223634214170731080836516118661663106072491024039328183201399209669303053071764174256470970989534116139363689252829316898785142064114459226615128011731260014171440525471042678225970409983285905201222079644283141363057692451058520450826578261826170405578056656126788609686262648220382175892574307536570973360566434514898946631349503938358626931659214118501375178598061956795591422086492360802749612863031102219987076286328544330006371061975686452164225040470296575862956182145672453758876284643551647017673224444876324667730487567277224359915614084359934876629451035555174890542235227580595412462179439270178712739626979065041625249548249074971417206221692724301997369259911262733418778668409155001341898757674088186622404631467993129691929987226703129385952462912807090234188536010746238490231145621155093410462529777854236913722776563317798505202613442322724612573376087947703229585732711651477113992694946488566108272854044209389240604812528051889086815476162171214885284440160814297361422754730119684455919820222717795357340413434806952017750400089561510839761920429964643150608335653416262174449656134001072499638148120688134777124991012660645122299366243211135872411714951468462419917285651139808075938798059880454600585160994548866612227268190667724796095687144255359012800950808005680467347584173731220491773855698651576618903640671095799558843829044748539303045294168960796827903877151443504132583055836555039682211726349121729862665423393815231635643873704318814030539739385554459771300509513230057267112096549481634130936440537749819380469076860333320242011942911766474287140449373282352268090450930914935233611876657929008746514420799119696014240313238600794687151103828691843364234018976304838177228172323172160797776873952386792711261961802255222647908176519217509069764417299485330178514539093419356467821519172066901154627010372815899543197688524965763880480526201706329845706266387618892011997451475675932254378882748781847694737373241247338787917837739670439772082239983788707328853744502026218942788432693035403447840574656266315399483549326864017250887605148272060889694835350819652618019629830178422398550820621414819672625814627976302401029843771094512698521596151085875289155662389578566529192045182934448357783233918080751549056566188917006686740611540423485038106110575903642538623673925209096622431429429321594929143655259988715925887602913422277869527904328829764212389784787060936063616490693978846856624875721430196735747678767702066214052077933905342172858301243609220028921151317156104487007589379168301746505271915669412149147547255202289519742700231731199347142031599875358091358465131530006364648605597287754663881236859929788120283514401211099667214045771931929609394661685842633828741455414902457188874416933423728667847383797648113721309076001621261041003124311548651425557966953894662836685806402034313586234719687694524570308614497867273075680133395027512068257576924233372298759943104740412437055849523270617873370104349346657236782204460687396834243062196463202815209907642949465365505026307024418916094600643719956085046320860108440962186321537104305714709057226142555611098641747381497003990196370135559545504338313078873432316039518649043508775276562407851205084881656738924715155686085396121069832434710080168499031007557671039147291411928686180776940293693594042241932924579317168085099239228902081904970970775657464026539099834367819720062809206753820406648102437975595589649838909783816136407197588310498027416869158699096872957437122307971638948871108081205721941259330505041706343109272050973490015537677890209467341423415326486439578352247354941401064524268018777195366866702491942630414402133290391598329903288437589784313881944446939029669150688961973648159371644007748953490780195483409818114875278296006992408419274446660587673162242916021032760544220605020074595018108340177210816623542836268856922531371847784137008259880305642719951650616146387866951953362832871443052885066080627196362072603032257394932570930007991472347239571008377219298331366367760172877079019102142209292728135722646265881916234769251969285786287790807465501965119464674924777443236445430738873304238735200985186866036431426192817217937245072756722560106908087752403796323037209966297749644563088036257874303659661623862416965045860196064912067411059569943684421045845987723325257373336863295420108838341433188562494930484208561478261379441552282248361708250697964070733283409470464919101155286124696081295081889311368056496599900013782910496108221113768102243833916037154653800991667716362695045138585089787102808148963927383775496765561455561547259048652313171122221282937231065261182809945099854232805108353299703132873390277314733102390126880462916620098522298414051154074002235244835933005864732501275250483173493925490309510560621574006066169099751737838076119667359858488719339360050415359819166095324446737877728670905930870583067793369956208732822458052508071390091330380278922576160730203396682286162125240586636823225161108496569653948953226009445556067542180874432656911883718138361864830464214507235014650601573000994284067876789493570272493873525630064472075269362058653894258201713752138957390125146433501412951045349043912559103104993984946684999697041840513415227710114301184410876534968351205502906820685452570491915499424317635991438231738604138670074187112993260123490036708538790262873653284226345455351843109084159304520664582256935373799328928135202778607393217899810002163649720617213014196352731618162653839971662389910311251463979666223998779269958592654093534921211723828738794985697108285109482212036192013593891707052302180778615001879270745391912445334505125550775534624008716970125513872257788684669430193367555815958570964864749849670876222710432684621665921864690371439129151553661354676149247682888031417235667049204899235954342876066143363136271991811727992096357393359114827962728107646609224238596955521536337956177667173126675766510854392187209050278742872886208835747406687007146025667440165325032476899693081295805328427323993681390027674996233581406159223720330115724332438270994901809292575988471268296520594657223551683148530053155829024555565499434830678179251311648925118466440977366157781079079936919710576011649010708056295157461035032363605657207582683202467251682861209445787424453875488809610338764958619605371623556695034167024781487209844407552554099444601494033373646046124022519447205763169536903423085468605909003521466992217122819844519147698014552843996119578423827915033419859941301329991762686432754697199417698667331421464742551168820107727429404874829287718328236008816015103069798612034723820063721662250971110050177238584355039795302705105540822962559383950938679951505392787913024453240663826496019632250329471834345550525641133353070363009883394992648396815724129837467526195131794837320672257995337982344665936632398386415667678307012943381750824298767923929706852879787759752897088319659318291088998282308347616861076173348717517397906147054958599576800570075815132371259833560965744765596285461780010933951386348202866602845625496173728817590080958942732893036121188484396065735307802047229050759217224843517020978791934769381654044098389299651078981855729676715457931463156397542186333029514793334201246404655247361578810393079189022674164348262033285879349353683193587682387367514670874259738130467787912027922197800329153117352103652426735713313746559234524165450114190951732722835006671574154114498659822940172458990672724752556515033769278563678109105365012150617834111940294843783379101311369608933620480746532581602780496898343908328834617916361629057162856125283905979230584456602279533997976580682905356215830373690253883207198834468433349713352723818731066456618493313891175395142331318592281939136746400327911599298957883846547037624490618924370163189312828378525169596669971501962041728994063377307206940693233937564222896241924393632283607271980374309231248859014506453296579348943024874382167362501897133942857790473681192794750893916773641945312347723550892079605098974073599020944303143257833303323575396381574966519663691084024413378966639988647307215025469776659179056780371354380518842107429306056638880501977265716543510578058677499541018119682574778013602999449156380478463741988168792754769774551087806450997701999775401353204090566097101734882974964004332053905775435378315177580882716703656984056893059194734468160119291341291179802290310891375443061047721070411168274964969674391948041278250541602783719909702861665622255565181088133664903421720964399821654891577061941914192580008135727909753101823800176161116659209825476542232041434700831931780352550973767893696332224404733729322409285879486851507922089349149682977833605892593654326212695358054598854502575379125409316567837534867129990746236353306579571380727008624364401243921903327605572444984427490647124539125062841403355111054246267402508474230716002974565566800112028567349103582894751211731364129072148560486182467579470242664356127866845650777502443301623580915285652601436709631802510880877191529371960794842065542210172345554999718998881490042116814239962450524618333834598915985612568956002372326139954513355126094087196723897362694755004242292817920492180088871686465600378137092725621977664967439811007625841887009055721205093438386801723548357993260450199764964846379935031054809266514759156060884363244138340360485956153790386573334056261104819399143335520401479825209872661965404698399819720433415061968269122725610312900820843011321749999974619164297050484242678927860284663193372832596259816215118583432434415684624466560779682714166377532216102199939022849471159192842062118727589217481967249326527398988795568217702109955444245830774822803286644658006744314949585123839997550698968509884635793890995409234727109237005359030057245597966467450069185194323525359285149392914035390058325055252536452195793922276296311189938332550735067241637903988094689995744535735019147623816345129182412514043984172926892746923980989661277612932728789392928921497835039563858782639255702961598794850080841266425045472968553622157911207642970962944972568345541687355811960971684323883815573511074864612515987403814506278647903404040465086728765964841149571610274314098384638133721568988861079728188374925513425472581530921678940648658769867655601158890324957219841895003478194004954447655156546466061781997925073581861733932075282128003164615591581556692396467848177844141816782111174830449195545573744293218192264693079231148279399169814610672389731006208995585062829166461383029061027785318126587071291091961127944594294287679750689557147925009944062307372226244158512807147192957198215055142388298085142462725953624398767052477999125878696794949169511596171320565381435454804660483286882799708246773953493257784649564985564232221395044754155530359231520974715926456752435636436356838535675038899665290299491939983814461903630181934894852885963006021616113491639734450858176464590625530721450942932702270217047446223552636205911146633734469433286226848185415832018578868849719079874721799274216937420228717502926288337564458051159326512580378688653946027798540820684410760993816676695301154994012627127001439400560907603015808891450508498294785955300168023374866860211639411312797020182483799558899734428010866378324630636014609774757597711365575482628998797110557440161046450827560303923396842217163861073817659009990297916924542641814465864550320592520980856042344923298468991773255554680257445493987348281582280616770371813803447206914494521209483349110378893497967939464156481694213851409638278714126122293012464039385048239522909758943081739829886090454733055247081028901007674295819384797401929067665571121913363686526348913373417788804063109398388145358678337687819401400990508014884733345647655577536549754516266741757008136788469148692020764781040202811773664537888700417572780130963497662092963673333728454919565549225165836635679342309804699437270018639066799518093205659685245546249853908686160168608824001788409495172254038549434041674525655745021291923322665364275499540560340651771558232566706939669024778650956897127419483146638926457386908209926903543330783235469490056030047674817548299886771776241665818675528952259994056367046525007033817303299203187976167017716242563859427156620934363998953788333709315647756330136399555341081926094403492493443276290988144547402122242161177616562087054417703386858535477439234312527150377022208677450873260161474914748760773086712555703412536021693204564757254363751068049653052993529911173533298113630062117455667059032825580833284720010322082742655483886508190938748032130173905935518254456528880839798914918150014492881712532984133850309612421229674375952050396855162365851821141396315148978464621965657644966970215990009418721584732029320762601058366214090908910299492092435908285229613663265144221666376105149378228721312384179973861961928745578932337312800323963945511281668772825486691018848053449648396628219984268825370219746313661150403294020436781723997725778221166257521197610113350121334130926189453421550574690314558411252369942994990005716236233925453317339559965501343368919182862037805861262687551598436498709424105006787037545216941856517112527878750676712463667238517092105479145801758401451334837320613911524362949061551468738653281931056922716994113136377031097749978980165734694841635788580434571106538134439098237104596765633392680270449719222328014803713212250116229289932167851447649052446007316031906418819260437399114914137603650031727741081757705909941203267393357960385772995848571192347228182400790001451651550140306989539254584113063213583029924404700259756996641137835553964112155586645711948327299438051719034212467760782586205679227829804399645554008505519607992346377535710638602502896941143287974516761424896205657094448297527838964379433343520617156312626872201471660795345561435531482057548048598678461230583454169051294204447189793490198177410272818834720059315791154524647949655369667464540254136882904393889041740149984536858802334456090642646441335965767116066663550649778148345394711853425047227860745342908407853005373702616362798250234979888271990449916947482744669395308772382000255909713625406358310586581767538265205016691673266119455833009949947105220763980636246047390277603152027469295709365395749948521708503003221017278905663111938454395565601348305411682440298604906583721319232537586290820268922552943848301219117003240461336255538891973274266518450888542368466761844096730152363127762760736881593812803498682579511364832715526015286782773213197558310663092877413240415840053583612114345226872641320045000256385595350365701905796440222488243891222198602712298176069341690308458367776308946136598444781065915990892884270317380559377492058988958059769629273861827579709952205611162031258510905826519086166466400628088642778765165989843397178163730224659181146975941253435087979089411166099545843119635028791939393308310094497028476517596538449902854288738807899317306473811501179766536475168205664866768342112612086427277268138157342635147073832783600036091185330906285063003234306514645003326751182172735222454378572278761391904861173370619299683432222932727971662729317501013745681845385674596673946658035881511285862149195521851896368310385278178822800818420635870847367472631500765785248346241455103878257142060851004567952039612160969359503025553436542021259449361724382224058701469557869950000066060204979089427161588596385694289730739410815339319966911300069792845979232477734323059165152648297266708235818020082361295129524432540461378355487577001430714302447746498751099354139701493355127341363925931045683051476745285498675067054663543008881971891610468069715290623032706592665124813458709428722684833176377208218486076894154907914635276471001278508406096543766349302625144750871714157892779960177539745426420324085191747890216660583594308744021327757542777921719772903928603710228995369762623655506617324383791021379990470333297494439602230654094731481569844185409636779379061383837060717657174295857940408799260363978024600697498209520595847993141834222402356178730454229268024162248078256849080599660417373890188115965397206982194501869784040452533853927371405777795907234425994625253336689484143101079842390881223429781338448391829216949195894382653469489744128700874927899171489540679154198401596704682967096429511005047303232202733920421883396069446216895825017608602442145448277817669409149299606044664382918110706943838453770223040891276943275065963595185040974129616597083399740105654259355233309343084737718309815092234613447619338864601040471704104338685639685575734340576938557115259535445462404620099269976933558114087455359649558636121576503917840576365222475033737152353809266310995811456412648802130719949598514349535240827805441717571497029132421608054271621836053938285157216545278016569828615129208366028455913709352900866501413958376857516638397150953601590412810794981447900651628097770403581136755829053044278175628735038837764930628557055141580823837518508137642503792102730341128219433381298918890131336075366114305992669796021455195566897907660334101825607839664003004689320141759215309902831594563448414487567337649279040276321545569779290784820622738855851579092042672749375329087477979484435920694778050003650407790945607847414467643036047598627793348990505301382873928731771083613506780849128390610820003382631023777885489305735912144725944972993342924178394508268127391481851430681701414759226564838438277173445711587618757594470777144504611934995009746452863592913019701546456448039477114719801838775348883626436631650476443230146241993159719991846214956254150957274002693624672709786949849572517380882342122753924725148342297561487231884852085432220584385135843671882528389564430269890003452591463679637323244015051167115701946171139736738427152319219854503070323922664825881472146778514520166600197166669729068339234909602633957653579312428482419535083788694746243589345531055299519179853436668872080504175539078645463603566914458985561560306208221809537296096937650752065131137380687215314194250099781720645949098912987488497253984819351021051516380054351571161604919832208043984620205055080681987955787583274108659525026028692289234312664549610661044111838486492510043346549193494313746862034957335467330200058773889379342286773432707555444165011975764742021719195882574011730217552745799871817470146967778499038516830970340481919245677270697642996295261083420631674475929835156706606449977914409157106857076231772394772404836423512835203795360666035070721993757402595276651796245825010562120563590926128301258104342317597500664993078103466396998802229731011884422212054943948279264787251763997548635082460036243726115590570839159289322988823282808392954709245284136076722469690029801797971558672112443461420476575735585327968729876496778739417225178734407079501772611493142412450368787172087489103731862128058004161739332346312841205165776269142568798316821671811079961593705998558675468479145410997738063409117768556795156814793394294852422353838745336615812240431619450890748136285142876007645316959490353614898599095638936262143208076833277564790437923405697630048033725528498437800713975120484512498961415401988808924354553407406754565850285650189749862419565024370911511260842532179033157619846562902067127494055428681022825658609892085584450682415605360400668854953473818768574289055033969822049574769856377110354949778264264180567265242795851292503325646108319189894762195202193033873348613873362541431718941458362044663180902850859367062469130590514253247385767852807843919359013552844247631778204984553610952565794819768604854170168361113152404279091611423271219869901075797645755290520558526799624522435482793469447034545373817108445850949236885185235572206379450175226279953479624444209904504997189817391520268876416448691841461890303340262175173523277426516905994627495819153533969866637998984014583955126671090041433750077818712111436285143322942693128970594660799143638369488059447678391993747536722582818173989183006741193207510731577888397915853175555504266682805290684038717985180158116165561224190122912522664545409989761559079157061214717333243719441000302600906829237918899568414027067288543253661890705170422055743791615201306199342617298230423969613373241568717412646732432862040781647304805616875792171240773021420465349786958220541004921208199410513902646383301323077111916697453793690111665699671514843123836754857852311345871211574441519083655798230398396644941666907656046236886174466180825342686901891972680521329399992883732714676390254048877523324932456142191736679558190169956906322891007975867644368279818064378500822672642623881677778900705830940026209887398076443139192810635660010521214672797240807713972319009630023877401042176815738229400791562948220571949860520642212001317880341902402767008281086286103191223699026003179290602265325432680324861842160333852595777162590030748002912970696713308774101587340161988135240880219730544780760538868680828976079145419826694109917407899000198864544466564215782528756663412782974641721755868661981621709971403536752653913250232888893312414865691683028794605966122769337128805929920523456430718772729841261528655825531226872807460534668490044056732172893551714408484771851133811499028989732232904477140180446453220184729315770781421641475851590363366364252120826979641525196301365619751801033414994680278757861236086338512955416882227350850345522992525955659340344550653328500826626850684917966069219062852009655775679545620175778614521712182419495138542955842346437746884811465761943115132370264830474386205952872459195645893953122042683899947079857518517115621980900933416372562508883876353546978859232626123982245139936269866825876302171550019984466903847863511921658616798502617478615084515953540364501693937799742272526194443439665415942149768336724731174566410367369104364031583615914217681417455645285063726457968867832221221379970390498353775401332797889413227041847219243985223637770243430182244398127181330859246003716821375628099309832340676025693007873927710828613409838874133048303153687169038849169548536778293044267497921698157738474345296866247573552649074894988614085670219180075817738793020981187473628823989598447931298278072963276187250674595081819183599860509325455203654534188867891889573502196844291746944185786052890569723251758523701083527299384040561646211857538067966376241482612413599022051278853510354625754337126555020681668570863927258514138223675651074490484526022198780362226582814435867274971323179172203296040210441903517998107372739057156268768526587870308228842702299508667105408151958969087452854993860514628211515091913039920335818584021285386096237193474541085726534246510214986155644618870147636262501715826116442395178475190025427406698996804076032919059954507715335940783021899647214480486404008980856909120297119227155916686060330667365214316240843028760891048636129435685519913679010991229434989670969882023807678216390225621788065368333209615833240749338206232782209286149305403850620101515577853571395876669905605450608388994075963512217759385455688757149855180611678505130068038172323464221331426398672503030305418095868468035409341753560034667684855786324658857729755986013629420738842635336343651725124329650810044676140273765518327689490376366255001655725327676791807583451137045397220758448480808963774292802539136304779836053181656458785769882132977361617214035026696223221929819129306383609256812729283819409289305903241367465379160707778361843429320653578213097550331022490265091609597467159918491736770876914744263915858448319740140602033059770832742009334776598077367098547431148815533660433243364792090604000931410994545839337556966316301236268239822922528239540211069470158637063789967164614363288160445448521694779310756602544199778490558996717792591426083231737267384323397448189725773809583853191905823524086523592942680178163202307518300911570460630844833780234635701398434361942236356581087095568307611329586016193788424902032772515973752737223776291753144914659241288057796895786741768150240978696412344427951989159893259276327307905022185411561130305154493149152694876648645889077191453600911070312628340595470262555900848583661789948125324451486750102578758893511791427699816155846882789802057819870037379131827301200058030656313858016133300141939136107622998657471041862560252887361737544585209372401066933822750370936489828715365360584238561822566512220537929854670320596917161506864006111636635125909099375502209399509492481541526964674094519994275693867464499477860359981121871697602899301911253539886275867877161680406393879117588817656688156394807660794090671318682774512717604958265743800308354898633178643514246723897983979937085542270943993467888363851989674109934298010167537365706168677568996244653717718979883103225311970676385953641428952021092652249637429002582483335022507135490670286981523324888959223292528601295187728172054541374454081547176594443656489686521816134344825708317501291688486190440135887161185109287436802627121020294774520737136207746005434603946558044504837797346907928117988803903584680678085269139817867445398609743736875335492242836519919884744734121826204402966603166734558705832883455702343936506165585841148859869465722696913706330536808748375130811901832547099608305096760058131677901236714879301180801939649087146788445220878706189326104223300829280693309389008048923164681465860909724790403963501852163699358349660156687343290707062137952757307709634768255089540861074055898406111987412053185075595718927028771711779056533056423795649946373403828476479531708675494830786719353645993599428353405663116777841075086598977582688406575900092828973890900206289278580998926459572630600059938503714028425522595031938737193178965442916356442897075826823079177675168996684855533854110797267712411283820818925119035357605948399777540937520704330413306896740555387812128430103793734846654353178245876640847291440664815669164144131122045250320581318899241831153883962273466583354248452881904395140463026791233803130557491679663213367663015094184374572116803044006584249504887513638332219087416095647253215268234424995903259384569037294134196726153894507844398831234089918780231617231389322116668244588075658592728183549590708166415925932650390240278729870258507631402359389036209671885434467048571463424319109765929315813179986122115289329334451297047546242558443708225514550747978153814623880283908616960542581703147219270058779718892046431857146772091445410280145812137465477719319445330235611040649948986902484763429468855097937273244462265451431456269279349670003448398466636959145495735213681951792808229911246168394582899477705480285425005974449051933314493254733934468582993769190276986710961714001230790128058729814080986989571653534143297530867387787398533677841134476361008107600756280194514550362390314648611490847555180115626800338142894919769644496501982929590853787949844213410521793337790033176516773229911205751269961438089504070706866502119336818125641932992059977963200840922541614280023107394132430752167142456620665982447005984049800474263143227910078870428871656667253511533237283261712251447731859125070839404423406568178297416580747594143919502722979671058804452196980344472196938960220775650606102337207297448489990744280144147775490990190334806782186122355719676354841964549578876019502142951874356351093111564319071825374733987210847115757064406745201175367503729335607373394610568143783723662613234934308006334348425605947586589671350880340971153068878893120029590078664122373663326384057298061583351445843061941624696073352850245611606568829539746419258835203593741784886820108019191456059544439452448928417173748606838189579188031640609168528830095608529230805682094502527195772164505592029894421949860028056263910723232552720118838911867551092092143868314745900648301003123240699257706203238045741997095978124995518539614778074783424745760420506513195977335641302881139201056344010537826047806885189077075078538740850866220896567496179925668595029259460821895291090768010870840999711820698560914741102939921496957970746596574413370214207438740413799319525490348536938445361166935613734220050796458187970224771440782544908890082635760205565918792891274583065021944447704072969833907240785478928121344177491043083549827996080192781111191398422501413637171895565350864996486842334771172652273660285193847327433720931439234772659667683433218696957874885735443817107292034234490807480585739095328446645421436976981389533807982689378990894877371080824378416121837300637988593449291568440035256839621656045301030763063168415451309403910706144549591514533255890044282639876720027146039252406491867619287049304278349298440085183941622625123867909238964291177333429168108375013436864207272000290662433834594419749546262292474471828870919678939662336856381486824046512291868716647546179962092159182320691406198805789133279269753649847326627486688099848763752395557445721057671414091264362267520352781792607350104991529288976485671106885660096490076620797771193187030452501084729269738760705764203523049811781243205974814423256740824567108468741981773395184922634766395528514758938775457303518280485730198157558293683198793557929268420246836721697014162696446317906781192380193963577816696173992485375067334847594499334936205180864178803055932788167935442668765154666914552469468603498502835217546979363376782592815198364350967672797289978482662752368071524744572434630228300374754160985539296338679150784854613113495231023787071201432815455922307437207128886883041930220737258221886668959925598139833439461256893190277940386646897546050911425416568907994169060811995917416179183620232825617572029619869566478849764265110574831647794915165642224179123928822845634516502278417143356486551078765359663266646358215996968664802687708047191788283749420857626535680022872675832146199434251423132075769170991762066720477562586852365076879172280058629971879082344150952427241655960236351640447201674612432173939357734540192048407367779363281050395967341665735050682393596863972170924208162133338690355777475085609033935844718689518803064769625145717531370694048535238834364045961292758116640299550604528362150461084732162965989957369761129121799207045731659684638108369933713694381469942121028903450089888817688837235182700974237013981646642180986670585366348732424985598323894295671905122892693963820945871501519287376275480154967647076592027841513189483503248971240874343885317606044148810917446034087535488629549149070359751185979459885654832677390261913471762463132239672537933054905110975423704481706264102314141626703294475902624868927342138107829418807745406921406958744522513746079584391927082323110862351600037576989309058072433281824298305515705922299704503969648128683279806127969645284828284004390128589170264670841843925257270734787203786325725928784439029038186327011587024411465960461162922747608637511318651824370518324237234769624079455035981382155084828898643457996301463213142246901709017788123741237539340438902733973022423418952548294002066311373103183411777433044600825212017610420245093105033701654919317080253999226013444521247136630072119158863299527529999811917887626517081049782127705350513605012900702013410447105672207699575467106562919342408870960993512521114472544727020580716219922069662000042241435796165782469897102749971640553192974093090526284265610062976556780268878459905909268345019631778716862202228340021929577736378289990979753553762175010408208438483269107907786031286517133639551044572538194054567258899286022541552404737211739132338479212360361882677214256454253896410524119673744259274506758206851169196883492809322230984966669653354969005764810313783744903590523372742288471062025955621767971878705024900719640210687814697252577680172599106035688489099656017560254037006492386831744260664544693895588269253328303037524247733226431191519443232718301950160039366304072651425181409263532950296428387243906341030424177210332086802490471915032340820452679667758423994234138193393893641067402338916754969108429555330683173058402037191722376172035985544576485395319021601768300193821826259085498689916397905654433553472636492327851661452730293913718416744741407737203102557810842079748714990001065462176599388671571217198610407929196221529586703229265665302484154725047842605876171955602111281729355016301863444671449339788173940585539278554716913464402960294255592892804781694024090805711986844175077288821787819856691151459618342352879481084859745266708793269926201893645681120117813678260922668170499372485013944497979881220301751171641225796403796016492262180561818559951461070414190214331129939922433370983764723265562053545864709313463825736752099675678380006299441065113363711466227599731459442786698514365062843011549157136814708263924488214268599576334654759028491992153487785592020050106089420948417497696347883345560124251161680130038333875425773229873703601827447914975691964714522621255268935179144717962516978276834890161920711525457646227954128907343318746267187708174329175418216625235911973142844016862403006323102512916717345165095615984982106633184027674598213148383412909780924851546047644648266634066458280552255591653879261400082108074046559153017272551719224314238571269233385546362285712068981494863957423895222723444879208364468645334603183450553349355395368936727213875302487050895883394404351291862925024067442325847495096094674048171361247215763827993434440232472963999494747217160783388282203338470344111434287433395486123837865917963480068653589139517170300405874580956921699293706189325430471352630158450865360560281384118430335162639063635527358823321780258078480954550247410716623679577642182946701962444242661511334373922160431871722503515303525440474282221291260718381026145811421555500230146548238808763160079884086038462858634822719632590522224236087718094203174579319419475200018923290120675865908342995172712849846198361668041451361015128655397455015274935997750614464209670625461952245687215868231507972852934423112094166785540807249229996090352955818101613551535904533098303051635774145220764116503349263793609421695266770882289112171668545492834687020084688444539107532827204628196106914252075954025635349778750194820505719204738784193643400650590035205074713515919733925423822184631081982439743954942927375080972986072403826831359704111839510488320953468911785533694777873514097115942132942055930508672391004913984944194273882262721543066958661374684877529425673601040851243567871855048569704211815665896099125858183741073284776700452724035650951700074868589311516276879701453005934257728980209026358420591944618128667857472742555544452247499541654638066667413075824654509268610184018733577519374546124886312460412881051089446301689777314674398635771114591509817930567764637993246435243909358987351596586950067803947732039324014016126020083836830232035457602082251982473950853716850587493360570122417597560308911237443021932054574980038269587401947039520944530116700694805167682834096600755002387913298960371565887512019611701867441363098223304073256028909691923678569936364249546073785967634627732253618502436855794182096875873616879948452060059470708133993459635178110233350046331999146216002451486514267421763527606492493089491572990516100267887048948296741129739171618145904987947862635099285908295917014118848644680372587310337564857867971734470450692098076181493655498731272215559189767879548542587498730453007357153782937147642599253837499881871878744818701720438791743849268586207699609123541164033323057958999299304414672344615394778528174812540499188405009715554332623223762334265199756676069003009193196802779059275540560070130069771836585261233664743924560702576819354347150829043698757165238775064038317179589397290609810778849753092675700600324334326788688000172896275016027448053582513845530203174202422760978559183886026396180664378620288762965999986710265997839128605682591705616038472113061691772661738655725685349098112864019582667820395752681246093430621564828843224444455953492012836661902354091938769553278309896735949401252927070178372730860540785952472431527058188358610727883132754325284094195028119315662192503458368331645333324024343738343942567743579491563510496573492947403244363274688460177185787515672188689068700762392556176767320534002404545346747018190980722155372213398727721755990909387849068664761040056343986089761193725411951288150673728572888415372041690454641075473352040924252491369714872978109813872690856206115020736201600954579097918703214656298924201951698381727588532984805166819312766432176404821543099387588923703096055039260232199063354988503455752625846267594129474461685910744223028980562714836108410631970921527433886283797493206693504112970339805656694896741950155366382696093208746807159817188673084302344788548754494511408246801316264012893868094344759205842961876143993736932825271953280357385189081846927985346106254483127291152405397310148697471956787561224605066147224775864062921817894654755525215640227600758415873665115652830323395108264909647850818968760059987707430158729023404485386221560673121298598836735195334909665481710261482427054201764627520003620630708094730326254162774503434206878492599233129846180714387542408313245092661585835893636003669927416267437036170590826747330782607073702783464495491550555235362569380591972856689371973686144840201045273256114306108996396885531949709358035185054094918310800841536902845745171423358122869690087313771655010083107787300470394217208798176775438137417217742773912366718465328612692704375741138309236059638077366290073767204656633377858935217402898400225045299626206077568657141571562413834254580195457830317214801246757334996608027535509839446505815506652985018460731210923883962156669296251049861466447690984185624649150106880204129632686846871671569338169430310107054703593779503835951826776943861869013384140739220247496921245428537158003280366914411545255171039208201846611992672275294203298108763487970345541308823420573936784379912004671526158422139228471293551217438400032333995734256316487453854243054226424322066807551643918585532924401348438035580080771064359474940912082147985400728704038483221967321821256339019132309065506563145897396673699007032008174033055704318078340755018991917437981099411267651615197884450811896315743193541125113322783017118088908871321412130098458698285465063823126367970200934399747739053846583171080605787358614460636070059300043259944579109361322300608033476693909848136662476661481126625881237402480561977251119382865388115816225217692021696298751518265460233937994240445649935469952850309533648413838211791675990368982714755161305238109818456185484841684055629789233077362303671226601206642153266171156902248757526985688280190801025603619004171743206207606808767884625563240158199784228242451776891051806808195666771514159287153081773297104639507982533673742819019419688337106103370177763629153233083708065760271455300887061760453296326150212621620465063894557382423011354880699818282911369712268766403469074492151673946702602541782428287780706374121929663098095108746378493660277388409811159831179105449976261610036808252100964119585049879540047045016385322394574435198764993222069326529827262784406311895823122672518884390104276744657563547494594346244894540795650636342381938476607881988591193162814456864120580380457323189857428319099268349582259361271385188192747217737267360460444023857672755751933911400802939643694923712253232942489993168190455692470202580139669671471536151164353867116368890914058561327167019599470178628202661156148405519850146804905375213130713154806059433365819773051156380796976069972225616843971589175425505411583334514424099792721345407730170180305880096773358164326541141680157849962831498689044490120200448873814180506440975039352738962565611493403519290544264159739507427304147040925407891090979528767947317875646675242687871471494953403714799789457131824031508272205244462726614391945034472047665805218695709280122407713007295428136399637521820612871551484571749860596640538879614876376417216017935619408039101522071227562939323210698256967300951833129814334539094007470948922623986122901263725984601592122501702227233255513518331927590588471215464689335915219139715640299954982181274552048517644893959807332935677876151892389674083927429962546952656874805043416947188098901395698580633194549987870790442655761192809128103974114620627142869160587458628243039480889409436552885711359240932425936936919889694137596258006536267754756154914028598483266416442837629291221363468323281751032715863794696394712457003950187899871825492409718638450540330890620815216975510800814665658178835459364012523172510197188217416742586666672177651214541926501130992858806268395260335735516471714960726971040250495984726278087437571870843421987176443298973953567255045027893068177397121339895417734925501576860975351805408237286816614884008181962680085661865276434856119649590023634327343892462505390368331778231145879768583469303532896978674713504953490095592464318679671280700669336617260336612178758907703029950559979595459560264910904146749527329182649394533818660517108355342480354078085484646856338906503249205242920085168245413701627491412954871168962856457254605498990046219957509603257748427350153653022530093251066919480371481924638715507856418858796370840480955165113110910890008704348915094143744113472924082251822491161585155591323776055419170043480279244618440907343608339239137495536508097854628946441306966219631864688919497809419883708076420574061278032168984948552992815467459506153539622882539802459547873539948534181253780172259866069119085754300692195552757242918819901033533669997948432021588150788842106116450510993354378490044562758332676813477468904976965915309631231729277261409705861921677784983411198224885708281596377838670526252044181872136947483761935333713093409452480645020174770280479447657053884757458457305296279107759411986630268424371442240205276484009484645016187440572005546422064065062666163028715779533020667322222916904318522850730661112380022877507079425599917972736625224422326810512104401712452276860998372640223344108379291291174035167999883834856598723829724322871000982425727954172428455613607975932053000386708031312119467218795303112523077078046209836789258040992812328380352288011689889129397171102015021235744169639488277498504215598496629634797233358945428532423075591168470358975980718458732986915613435820697547816279929746404812875979559601174469709782421011153589498606247634860089445524605543814941261961166618644450242743601036044293940268299787781781852913344968231734524072513840944234619736933414206120702617909724457653611708678856079159540149978288281664694364009019805816279977527057055883251278636891514133240057032174252109964452891022012719470199580875889650794042314582735347515938619936251877518714259925104042995122670753356831606061965736095259539438661467479237970061463533122669787526628725485971466443589692007245644157866079536479893273483807055540355382691147432475885703524301070351640375440918854872939146811266186763865415451459247832813771214609052790956872564037791913562410186007002995437371491977332758532221251535543779650608697057446507170355332281230192511835225666573591546005952513014606621618128658520367674491698187322484019256829788031409599944593492543649665018989085688577846389499345424162429439403419913299184664234492910069403592455677763000639943409047866647789027798489076059409720931168478043069373364807760867468646195549404558903492439438811362185719594084962853723219285887956461874259420635411421206576486006443818388172625411952321533541185176434495261752796084049911971153865551752868226185159954613219817342249392560463462090844240657176185735503343402220239601746234419736751814742329641503901194742455986599951565175922553060288363321415764392082453891566750557897574072687797313444443044556266839773018145069850058481360094352935529589171764502303652448072815907652546768940350263051251446717642547430720423102273212947237119144294591055054546701632465503234209240555324655564065555469319065603034677979198678547862663859727638688438999552325427365446694308623214422217082666723847939658332419833249139785321597572987945091720589322674757884122493085704204401385146501032661018725677262249097702611088880218625697866612788218523939737718302790953119598064474937746658392080865325018382697933280151588244788366677813823546888270904321195068779405890996579103772256216267020759399544808543716131956646119222243130199092114850267561785270433401019427634980100285049234550973578068534488077096065435411044547253982426909017044286029092872721535070603529869224251387909911539265232904744013587752027498304893447129461680030357352447482973997400680098388487377201272934699264177094766719852318558232691595269472160248488008916485644772921623431592328123003918214446935558274796947905853990028232382957347352288537554197243342491672915645383362808589718311166311317558951134030302265054123906510565034619001065296240702517576828629839841111753802614005744302909793436638195897289487890322703641348192194491944660356207679937658892176881970832017400279904304607599379070241104498973868252355187527519997792715769005768373263232159096813756864790845539004931301469541449273337937470032963008612206964887067530531216784748033887686115205231077879070925149106305008584644648804608528845044672013583970307877950483245383026514722523280218920277386772727028785047218407598427056737324467140288567564315985260865417518251162293107043142595183239661494092308649953809826471018637919453559711878292312972151944763396609734612661437851881240685449245729410879178013659419491549925885896856724716849003022205438924370331102490755572800070390976859048096651146568382362652796424866664139873504561227879976643245445066530759104983488064407699749990617460309586956015257708788712746819949597243293669520181959108297106909589912697953053819026734445975057991296969605309021489745643810790206351043167677502608391716739394478477470909140590280399563212753190834594841355638174805663321950277793590495834679658902960710928979714588370621375794561815872828022866900768906166239376576995613035041966287958202046862770439512043877311392028636771553332459704882569775154588295448178662301130839855716623597590882243482211550530900185656981934287254974897280975604865937600072712461176272287649891444837183279542457494338878646895062048615302157342225921796192376619343569149166457323002252460009154636012033788698065396597759902392165279935624075381774142393174426166820875953185382518624624038763781540050869101327862188294749195027522001069646013773781529793151080384120364965393961186698462622377682668851846957590888418804013469018006891962511099963115298612712188698968142361868431254697773554773974205819829349146058280977342472054673002494810548216779006600672340117420089856222204873112205378562425913332115807961374058249840585401340477080524131545400616205934400118710592450511463602930199735977199865287354551749814981505357135923813676871382562749379675888243426906987922343578498299785622912171827249710012830490058583377829896462608280202092493976015856034485921423313336768327136293429922533065530557362113392803481091284770387457781241763536352526971784532597919453409940433796201312287324105445240565545546277165014917840385546046046480936355534481262092301114531458569579048210610426920762269534687704423222835062199469291039641294228195283822697394856996153536648683040223546001852334925996878454390072925231602596356750447585197742963378241201189382854011551274154607018977434278549360023963297759063321504309932734242697615328830322281802823053400620497033705214245053028928197461242895210568706285823288694097018110098600329453377578534310856424807195904596664500792616176505426796144920286956535268681430717374161367045612979901998649441117460212280440061827582651054830712164445948083176683359042397252217143595283793247434553455945927299287985702184955793680184719418565637591597321771358564774042356691360730825275296034441794143938852938594208505015437331516794857659040243925607536940591254904075621939507532501081372730308542359870281820919558653994121452817064220264837957672330989212999329113174625595128070719778775041061860478093810557059191613290053795232478993750542262021019041859629859831305075356638488237725399480269804518065528125748254446027728686281137965375996037463673598186304693263607594913106334296038687531109349031198409325241338740499705431709973771657310241210536532576438915840773474133926007155751605432327751723458572460921891732582809651908792203840580153009958379848560016329656877047454475897967740680978598084791317868627220673139443161871898660715017920810624050607192127403127169916507510448172723463935169624125663609539027084323665191636942010994921021080208094969459563207588711927413120059500341032994224842086473287715312659313913610085398035037582679525089480109226779493156964154115393280246075397283661449651472368349929754611296564656703790314670516888616425673351903505822978906264728540442063527198647816152722587291295221055299766627520235530299176345724090279136846501071667219605646434937944577590642628914227802547202795189165118299416986836405033372644842666940241278520646842060748081351453191579463684165409116326123290731826778533487602638946733138135154611520034729784455837480217462547740030329347316073080602261636307960347134189091706528190061468265663757961867188407201069121201994545257352738205177305446165175558281355157512196086403099686582037913998422698927192086727460438766287153761217852589788451516041691771499058696676632305527076667944652416618901265221240129350472420745542431256422371362729779411449132899145038938693672368148162209142605689463011502923458806104344577383004922572764757522323737937537524160687936287181225477824270515501589825172423501958039536950546214916817598447755673894389143602312682302254809816450707348428888826362391710986117820829879454724726018965981559910306489594304690665596493464153692518115026053371749616782441541936616569934553915237295715785166596224118088909991638641996990644224697902591118027363633510311097381561511747038843530805943379027627433786536418526665020053321282019797399410469893491587959443111685608977988502350967167132489749247084466855870179097289836955836263527205817044035537828748836043816828173232550004663072909566731633660030903199391361247772668057077877956736880978086917650105906667497157898692705953541255564745279561681821069637425381641129334189722943108331140421527491432322655828801404143388745552444159011199436649678805785297303384365509621785375697360842010523889370158379036297233872765091000849009552743849141444664372144409714608389962217431810534183503273151741988897295193801420373916986311574269515084423957475320464099507178716680821069892808377844297272069736584385778160422162674683815753717843568310382144271689404671628945987672653868265598524892494697037989105135518144307554997487609808454579101153738353783403059140908826217825590515524693022329369124662796945026286785449201385604953070212772749309887957160592713600856686018378139302324080124853894672825147846368685254478536229232885240243643924138140603475638464802608476571747223937910852711136267806664099088773343982424900581341946472427846095731728851248745524995086062703053432841600935853780921553664620629576751296634317081747177507732622589298464823065358710832044789090526650279296357966713083554856551342547000740707664193625815794772574012123833006911813140930944266007210473500347118188905983591782974591331975845690376220895307069416576952291128105918344160843936509443076338824148398306012290828506629819628180319033224143017989506840887162871967650349236476736660333896216550971957514757803858988615163152630510074733685285808095942591687945099346074376180873915475659561519362997759741980094878549257709935585808285768419440814382864401566699509169004590141271760406469825254845803972675006340106670466316585905948243296737736799760351840079858625902700792242275455268563958270473535956331082925801509647132008433902968774177279583734354186447059649385661646421189053174280713763123928031483865924867707290398973050191612996505896877758174982882802733917775866912112330513247486010086765053831169010748386785659759586058837435363150508039375744663485776483010364620557828976094723438235767269591874942767702792133281345067392781072685974646994508736592619153243352565588175169400548614297989878907998211618132270318749669622181839023315576997354176068408122935221382267267513958169027625597039723268809054653094870148143972219787265873861339973155576055103592301375583377165134106801571440090294697816962708291407989169798392338605481397403840088229388886885795484279823882520704630413291486679117196023998024815643418422177385076748799903698305187924235331549048088933392893858791963931719373200037861969621747549220806313323338606127365436930757760154471565581113072384222653090453749496575187327323610460975859636017185744083137447243790635064335154508299137932132928030268600553788637338920844172557631287535134885048015555351153961062424850199823513459485808270473420105316426646986684208029056330892603230588187181881732126839857769646941577839315740048230598078281780385905172012652513568718879564721668816777117799612640251160613124523534515159202692349397036129171055179301285758386264096019611417533998220378398932270823258552767202328159714597028059357292627311698285146365492594531534971153483735690758160662342103571471009565463787998612600050956502521334555147461042266188068862863845755212434634334433586844510687189188644554562914765572540065835376542519542309978542604227814678954670064855550159100655943686947200951187467138584695223932848671638871831264531240629289322125409297958617162812450099098517304957788656544202893237589449035500350230900740033961811789227083731373466400802962961651989885192489592801147304673565779008862416462676338661685688463244747414302639056836700386462239770304439541225887999043804510221977357727931526447617256475403165643480899819200854853661617574591926150864976442369605713110883285294638415208373532932493542235483515994973513428628312963287551954790893676793936962041306408716132329028457361450371492020196271683881310238228117847949124137362095006789634534809491921196721787044607797644408812758142234181956836874950013872892150467558955590966173460394112741968343238143057905938254776211873131702893594103626114901020992315848727656349841134244413473034971006716489323241824571142077284159709190141730551549723088751090702685505610171241628318992052333044106361681071129224009197364147600640002986931663699298676153171558445558117838237552816432952813544769380038464606562827714467340035535949410672461034066259548792426132191167942667113329118578335599432709705594409247992895968009760615998471118057045048682712350105962578692451808610222277273952889308894208213345022129902781842008053022491846140955239787109585600640293683950131880038303403963935528668484746062254194905461782360815196908293858243952985514610190001533511597529580772436125047493574575786304534059951505194017922232520624406463510258544194437213078436573420517228156715750746424771179249232873545210219574155155336792085012289285715909194061774338444916092431007003404957968071827199104174744832843139691690890601602555125856953174401002299647116679622639993203497141376177453844630517609031454484703423804224887918489078787233165397423923876479605177087901348199300421172158195358085376512412118199134866241748597974605093208020816148256835805575730569581552778816828140528216752465803906381976253505696223661195715180279000777747175142052419667920700827267120621680479925718188781632905988767437854450205727773968924772514925243472767365262057364570522012384308811493976823893808057890866787867016719870245771960154804392006256064525845302974574456525637279976318084297248543285712933585584060651253906435287558221467466257508662779420154538433139638415805732013462338308566882354332184966839096805167000425267031520875410851416987854307820413623853963257425673935057419387550343027953010637615627233647166091070791068720435670290343667761275665541294895073530201675459710699594458352670376864332557240005764891498146527945689964791202984955891611676907057355264838059684186743042069691383114906627745860691726723699960350594768062196892543362067339211321723106063796351308853375409723845822321461587197116941653075773429115829591021907220609694643501747005720214746291748835643691960817824990822839070268849924608534490264484501345553470132013255562992327426585071485291936109268384308157892654824945407913045763467079147525249387062002337382584898304871052256772100612483394561733383072346506460873422122055163367862538692743707454025081784234609843260417540760244857889633618129472577408785399400385445524987610160733364034817900953695879149842970383424103112061305957425197137018043089526990817875537054520067328088357325950847511142312291868369208600289885335949508204370174159093626330216734082229131302200954128859372466714471581512839954848930080379037134367222670576941986729755258206780949684145089463135541844559279367759318537127351576043041889943923299171158623912987648120611867791134753035192214462666653561509600182260357805269862925313254486723024353335283637003378952468909423691475367918480442399884170330634565103939227713503940452973404240581771548785281729235276628127220334354088689312670893320536775173082140304190837032545583873397800189340725909966766881694370369041259895759776948507449655021814574256425375168484350829771538630366877984361254377406001334806774048182773779226754596441610107996891650197359347338990250218050564819851361304190559167701442608001036781549449252688036384664714186737567164447137309877109960013954109429785890764939703906173515997766626032557563929359086622535533295437425391280041318236682479278805534965763892460669211087364429280904454887319586504735086669433333751749064127503649909280706855281901260979514655775543753771721519106943455323168605289010226478277183847623536066571786220107331199330733649655707344181230746084616553006219231910293769429193793510778706767369552961460288036062154847157250962340214973973638530687510705423565450876575281991523204562276586341717392968723470236409551191902466581067155153360509985142805340595983405831414809139102137463423705961437098948775536326437620256843620016249464688630437780135122167808660027788824971880311217380186973362540518884404079792937393052594397810713047716190712770971700603966306602526526546163009188739607403363600996300556402661153633427870186224967625307893876147241671343187401641239423498426428826293301830103270313242120620710743366236989916783253119353140193143649387511855145182090916164863624818103190851029786912045033880070855385447096546109536582174359886483862528524298010121833911629973968132650713052319171421716097454279090169102175894745254661344740311993512179326332527860696188517938191175447681018101078253075167435992261289485815454973119918448361615745742883629605820521512957953577733544719134524342293943090412255553920779353311196314645637012984831143667751089315951386576653506648572780604804091575510351211683767601148641189217083987032975471821469746569748901755646890042105521435659112568259292729360526965310551716429856423613923186264816344567358762869494859545899875389191009231274794406350181107329232668896266814449357051547594175037511566129939466779616528741722556502469297685593269648079910269201188994452651578442718986258354754895599494878644687282651327313411775640408396858440631131483737074114630318912464669620000042293263104902565074589363887097170841456758688480777524974958851371392747293258053045626615717596049804936406888929299838214747784794327457671715732625316936362848065752779626911870229736522985240364758914849902230176859463296130773963397695934099995519725992884956385893780172553288708229021755520015491641949597017880111152433823652651399634374887021932139021672457414649673142579860030625413592585315424220688845216496506732275719147800753913465969893392644782211505979526086175553328770042124470191231410266288414197397212252481635788266213200632908912810595248457429747466043009797572252918463889163453869450289015849984551895690875786404625459953097250433702736984895664014505402213653950758768503330786865757205533667722938232941585240723969785245194996113824122192626960095764806410885259743086025601482988382839355314979402245222638126089293215006004201733163672216483283476788184967729254492604802588163688157243852541200226652828987626702682028617445730365317841306342711283571324901814700517380863621377851968763309946230100975808154912997051572898079428789217931142848448169912760197784435149031631791892344069274394297771468835992457167089985221172617465226504757993423538645759175948050957836063365955857289789090010160919645404511705012226917774124346986001233228600502173989959351842104943063708088773430097063740395508081343616708897626745911526105217197391062962821942584187345467655103521715455076081151902448422080577404274123636106854171145065630047555597072610767544008588614301942888549649108133221910625701688946885922406432702410075493305048539075369182101769948234693200195096143424532964280960011963182084030874627227594353113402133815532181207873776790802067503087253529452733448623883902158023672902902460628012252568815639455130214833411412492566299191007022673716368072233222700578323241441372656189643246951087200788361283247394405449431779251519927054072329369746687631564692843522571468492310017233690054107617413196792990470257728774414788659632641646534782440917585052884597925365570684530508021499026614710172264933523736882526335268281663027788796125545986788582039498358993843168729255217300974000680971931951357936351154699703259665951629113964812254891481222971912548578266677303616761928953776820081785090574300662844933896274387555877771617477745647993520580753300789731319400275868978691287949889015640031820405103073233032194436144686084131909463371098545623581573299183441707103572185414162764540321768151131750138808682190825581939935496466743276837282456232708730318918576478428309412984544242848712496941182727923140559907852954360584686223222838848068759383116769204578566318047521641223841252598635472661718484203796858367438993932563831948524887111096834415113243804637164440164496078979353653212182775241112644748819684472900545401075876066699565094870448800074036420033468765551147746699650116768641298858821971171602983297399644065141133201054918542512612733068879244995356972492525012399768348265705910343168758584492366866370019719788066438767566659403681295081226140038093268994975746719264444450524606679568726780066754856231483872114875557166952197657042898815861743665271986033504307934386380013127027416184389519428862480142477658300681492709676858177712694990635339994435888305311422022946276571409425907381499929186871619433876942371408889486680161720435405424428102500799990300715756919541814761159418104586847739150698885623459888079018568338847884436612583695839780695601376256646137031457755166202122977631482893225171477414162245916435988941623907979528955429812319736641857486725063188085751116069613996321419019797417714022191414444922520427668579856408901828909192986588680323827223517220357614557074176001087439014858165873705234556179631054731306612904873894763888043767817121821850106595326838387326527428969056811093902848739338139929640188012485073845563293252007087719725420607219217845450470201044304757785467848386540146008317076910743456746941391385345902978146724139538946563865562493994759680842644899269826105872752352278655367949396271365945611349287408624866157786355830260334534375292967521452162087710671546850750468286823723447025935486167543462705007209042730926061362569506701931328792920988785668745883555079612400852272754287130188932438507758571468437829392982462509466241307245864307360090557263465720864554914937501157658472210015667890147006274538139014699061398929362811540985307996849311885084851617754556039638693640187432182433997801504076601482122114209583250901024713371986875568337791000464899946777995959794732303061590008793174562731021803214687973906463796436415238306646439196330629550616885764280089551576187793988989048766744360984914831886073952333897685072944964784147607982699042467447853853975620704976963622205882643372807644686584931012317318928390031446845526042918230923734259543527964076602300959548135474997561421180741313955885884508910964250194591345592989219235072511265992397045239061623902143932319849410484633527707572057514055114772179736203998901719547685718486339011556085652789267737109524446234206335118948760366354293677858153424557583727075035286504760709769519070600404880274899843914167079873462250886249602041942032558290402128366132434685372815807176872295415046624205696796328672664260244512627437265048532262938109126523691109946561216443767205253712519712667180087233554649257425627552720764201725495329793393776255589769014689367987852099334986828220281029567999365575209373637576402908755131866255294862416627326107405605818774784342490446977146408967283899560915020464299604683222172664013267207191004540328855449225822105615714445564607321558525179997632018556837528703918997396681205753214419079278777434360322339486897574575644545961147070437096461553868470646759009999050331565638195081213204139999244765067340101524260982643796617542411812014049563525782158950492146169381835237968220697338522770317361648313928864044743373518453797852279199524301893948088082891966614503208667565760505369964903709031367677649726745905989759330228514825601934284463157773549636704293150037759660602767963030960901652049509105103375846757018410307504274967906083413504031081972992401806078022523268719693006073236224760327361677195357942978938870743160259034979936118673402585758260628478689442029165507193366121187156877255347151549038724926694443512587815341297621509864153379555161785844023614345216452714227182274785512528356104691297843298167289121312760177569239807095134327489537798539860402161669784094029033402675767592343045039003380072001461912704066509774609124032565824393657555320334725850560028939994136262224030365867265630785004289465768570825309990469566968353173884633245507039757861172975892122656112040459213340696469996993761848488598949700370029561998385927364274635267908193267722096032072492274912379428259251403597820690831264506744406273357267528401305149545351695623038162094528999084716997763013328064108057110558141111948381899782770475732454211148304779623930455263534408396939805400513448392175681613497985384815033870952137744623384016868147178617845250506011972895362713098548654437428789117608240219873758111103689874252024338120350055187397507174394384177928111483571433008243089041466656740302158414158879965544680189998586713228811274745034834421428639132807581256346852037836273116614713689399449644737328539192173691129907061262665425831995718226779726146127082136423822889825493439319987728153004066068043592335987967589248529003836740062016207019646425630078360283029185567451781141805426219679857688090757804154578032322434388192630671563004000357090802948072485494590001851475741469661829416901679081497242548178333550835901898625753477985752424705409577299638116633975272136323928064458969557332048277121645153898728017052679883505740008614789275819087249842455894417741164012626622213492356332229958472056360451481258086451361415412756921314904469557009353489380651738028578386443952613944288252854592901510567933813838807617139679177766305171942961022283741900053899225959161266055303894313132430321225360732735276279138967436127090940223349201615443867465883978773862612841366890065223972599912267534132126938131788226527828215515957551625591644054410925010581199146415958390747310390265667683854997104803517904118828922796141046690974684238240242915884824679805457972382407655817475976508220242947799669580206620269681165209939389691767138369209859410383775151738423802479385476000749528089807410170655183549998361643132050003923560829389695676121921410100968512863442153272091393755557826208464156289308074226487302455304815023312436462006954652684847328814130513362813022139942682123838125978461469870092291036642887947961710919154385954566962365872987855530026332399338125453126820285174731469334249381052155380969504590646642500047578438016556480291755058138966368337074393148367217287078092895152094649948047979545517621937857156032877881985271620581304958380397251512063066758545741913860380674159283904095183868154541298880743156263938659396768877555699675459421856660730046453989182164597483561016987871234966096597638897969123737325402202114366532626216981734733182839906890314933184272733419330649491506027324040783029257696796945090100865825980938873008070517717634271369718645627765784447100558448764430186335080171826100469763035476400841658385669785157849189980281205989888385561955057248585199478120898864274116374254256314857499691599771516300470639828159093218505337683032291511181583575983172933140442321840834130050430983947740791869720090282770588188982541659242123338702488410591233746408884702182888865392718521149450148083445815574212675894886552346907771204659946081102900202579358882340748905985104482599790960497297776734635054458024617314717001842079272729181138290092981663526885124888557827102531771602474201842312977336127334472450909731519243866150814376683448239382608345218068380410673753089965293975663123156315967147340054390233909057041558092498904641694346864317574233810779116934145648675594276495773278935415001214691462043764779230591877143047616154823557587703812023883918891361992084911909997687746086820976115335129005093836598727401194741809184573359609081998548643551704677369656473502055028130303780075734119183899349604842167252876810545305169550248509687174554683391904751179785881443357990590602784024181108830962029025080472853187284991137650194819172428961504994077206084148313031806507456473928732675447811433585899636452130410280292282896701430050893575184371639656427674310563813891413940983830647530272875446295017014437057991994702733631504931693119063871224898009388112091809280099080196650038976185937087242510517487545391989313106818197093346996737952399930760084257269059037889637837411386162625199952369411478361586651231864850299859547796221749091071096289560530597179423383803372833131585789212079241232881506276954332608626722852763531596101948380756772819422592855464011957322600725097413911773398240479060788299197123672442865747596883181821150995536813065019274306213202754131149360398242845066475357622819392942612863796088045540260318779690415471488437311049496270540841741892998153343593719520462776643333787871802576684394153867978830617191010695740000810162723937490853275580264939225967150529303457706644746668786375219793481925405345524477172942109528097981612254260563916946253500932649993458739284874971746114542959357146181837915483093644281421874720018174782903469886005807720323314595198828533153338440275464287078734872764047575688462973205813303489882196495641132241532301341565261013777395548635283507915846023820597353403376144359601802597064516388828383368288079217283132111794965353778251052033369792173538786343483576077312087048176352277491302603656027802387377184075315310545056063086931174934209343599253568485644520804639247117910574997329910082871942087115861405610255906563612994006513150035782365557615549235596774172311910202712430234979783307512237109782811235168204614361929582592728182699699214151521193958082010195693187499701604144279850988497258202640611812177943379394538357811674443910544950401874238325845489953472365207504760113650112526039457545502833046777688036810302220863839302236716477545203678409577103085446575036216790233756121059383386134323420569811147638895229992838574516109413881380079014687507613513022103244805745991109063155636244194621591677395352979621092668876278962085269735330928238537720534761222122868711539524686856902724218449682089508169520106918841702028818477461445046589495256669756834226015492500664471835996144171239459746400385353699309640027992779843237132537207657758502587120342466655726935916372946504598443886812281985979317492952995120257892587146101275831140060535743247083420296146524747348038310512078456125347372458946754230388251355075990159138029709573745095506727685122741949191292413498842810708578148465865623873124008940747845179848367076616499725483760600685920316161796247737731456725420617188706314843711930316988917630768906952652293609178174223740246944259590234134061547250391747223111038728441855254790005202232958726200068736467011130916851122766322538789610129226505415146525996737783551653858710470975875926048312760613194714005065239488093330467287557490713675335310489214967179102086053979691470962809335668825215233616821318419888363789410181855679416532027865724435878858483324354262011794035689716968755117875624914330123428478554275178275698890572974764162984523813876752141433741620718808928408117036370229769894832239841320269092831629633952280084069708457970606790984070808636862761316635928874157234721484725532417583172079974962691870936358629244909041198608137407393468705851862741359648985432890300125770225337384760472514219517406709077426229222736877447307279441509664718361032011349513853676812451410704378077686437732317904120242220104463042940620686854744907327616053726836353802497398400008947537009042437357691741155811101076854589080879912406326779890806735692173890345827574775414409048082661379823047360831510929562712297763628317123818924912561532826931565257454163292616505237140475598604115462210490627825123886436725244553788008169450749273031048982819003196144967864270495034208384222133461742094465824852016589999360108013055960734404298463000946524045372829046805374165327587704268666186366801492765620839461179161049975621987116523703329350845669659194239425378751449631249139068992864699841991326826466395414085144345661796088855636080451314797942335588584178712143727187542118095007168168800470518210204427379492686558053796983212468054171265538414980146709497112815649999375736617181191205850307777273570809891639042797918650797097096263912922166039516206710272874809744297747524589281089515694517666805862583382463570110294265799998025415700613006169547218851299914844590534919470452909548186141601308802239345027603584738929194896859437339287449297126180945759820006312354375058364933740953872848332872760626324872483861322311553796538318652844971592597851202028366443461458623810846869289696070157264089793828567443220751933973994211387785843538982437881260794113626116897888369642100944094370505831057022019868384065379744988401348792171844357414788492718022936709656352823925275383260026074981405652218669788376443876815066622071835244905624096054198795605538331980880572652806730956184797484507468766465888279085327165963445351954828300859610439652608597908230229936078845646093128426006493118207606640110190934394992364412457003584897881679916696875567175809366207012271750343845226665757029683465971570994975167699367280504307146071160164689736264418782201237310037299192270157991602537894705079744826826536922936488840032679243069807073909063059178255526199576840748156078663786444419411634847088325353649828123479644927971950360182686501460736752282808078694052002086788665820536919347975810522373703674901702733488540510657285722630717625662614555087656238924606581721851282551182196552163014641677714526483140572904560672740616267462249704254499258473234241960040813400304528112549273381796531805967058222010522361000577618602170120203436711747160401166869381078200530072090863857835841072761121181696865309244745171431225369140760750426081054134144198898160882314386700376784665695718348335874320577466107707471424730670043647168838747468891429541315471547120280372051066371126215075241877879587180585456113617028366961932499099034781360527087904455525422944082065009625037888572050501524996910579425610816920081210325625073426548554580459444873436580261589504046827631138622672429096419266774355121232763592539815262797761265914870854954548564002035730977819576265546992524424192872649977590464074208548829021946950999867141201716043088163850773332556297082686768017887947760363898755023654050737513167582060386769287694297006793658838997082704583009742399998380644952388969871054366561794712229457926795469808881587743546540648065645706711100268546689133793830225392358936990387391316604078455248047891348026618171966026877878404467723059357754863868602087786685625083421611422647034749477389322831662086558065818225880633202355083804067449787219200361419062633553019554671787065482959558866243156957675554499177262760104351033297256992540557120959334422709159626059640634661535638464172568704865551930070869317202010419969782059947783925629689039208160473834381773614053190170488820298487601101554878614823439945498719452307644622793070178366528966034350767226939641950110568163332227072234371698603544636364785627189782491030259985096512869080910206780347985212775428170916520885806509765868221194353998403996052253293690108024173335597559462670943358449563523462987624977769865350716543491662552376515371796847090836925339527528487388381035417633128902573661197018824937294281301081616500745844326217260438475963903619459813691081664743769258343959319193351060610114291593915650143176868143279814149695752394677183595981173886723070649256391416442344404728876145344950441096524571766164881419779708175126419487373821718471106063627144636202614960231826406898847325701671884342202538559520068912111457901626224194342940285772524365848061334837434407575961215075990681568356056355105529093351131746452765038719095892498184442457302555533011341145669400160535985769141422096749251359149295463506460600227206625257686305140486581171042552065488587601029125724354605508563783657750286639867746836853152471106941837554927025362874129180668845790743428575374570607790728013863347687410210545873330250281105277990759903470650810748472696186824417930485477093952735321415111929504066672476927910034089373949104544981413600351686183868048394725276911714062921082670776306322380204275818271826078079490749267007244062485640914329210346162971631988737452965938398493833498451877278078030102994306429730170883711199165660003186909346441622661540421184570839288794872931634708718042967510430614229219970709872089720924976124193197791394084860709006639207054142036670345462349824544731814922817062391766330373488584645346228219776342949975982482876447254736034448851048102080720344273138524747494752520232924843778648550653484504312373967726150550361188701958382610253342339808123247047038830316210712402393943890486134910008107549608420163965782656558878048419501288539364817074739239153197722370300572498200557747001631749380812227314666100868189407607828887204544179148278633642968325501719012021462450427992199666048648732376376943744285452655735290460175896124935755882926818538848613964183083146914309993046159778812755688681841577985213563472136548504954711927159471601670782553464080466055063929007948752690101556239365556319899026993179603723734139578589300191956771007451279268939217753035396569793697925930060039155667058800215926717662139496860989765668872813526090002362787961814829804172878310585150196749658253593538310272798797223212486663249483801218124432546957925026179072330444643991159252799649858719169376554841490345054797415734250381254093186792876213996949529085974580439609408304467398483976381402826487605675194335790121103728979615078298240633427397606148895016340683953500366258771365767665405744257858714480123137785851576317038712567235899661002662714929442694313230437649125474681552444490310828232371840885705018984991139310754514509148645232088331434615219673394733174549393203424996259128840885086374164835790852726879362644989778152449723545290865157075090473192397433117549005948466286195880746540176204054369535005584143441097737547758253110958631429214278597690381193555261475920050605875826223537812730687894367000249305936583145716590786040642084607413441018009338449627542421925234252497448449145786151747056177363784913033407028058975699193790052518607626715433621361388097609054561562086107456381055524719953665839316329385494702206514724024655634269174350330565900001425043902271279721864620700420771911089935490817018275046057558585770091706737249931248701729039966628743327453599140734741975485753469841892827187217340577034917328461949747431691002355325829797470091969012447556885335490202684625854621435815904745828826586238355880900198085410898464285473476937902338434095170229408542133642086963269772705587765997390877501737997540374676290698576599425258830753389305349824641341182813184530583371345113235142359853336773105828844686017429272276657688536028613318195031075282826193115226951814089204042492263835878940359737154425631122358571658028681781247170549062925873697543590535647259241435840764576351099115898751512976268869268152574062033433772361800380289305645092375375407119444438972616365214132877571620087946154849327193834924791545155802113472245966874844708961011901083826337606965238741275936754296287905581708825885704372389072197890131448389734421943580745375382241231836129887814894343413693810491000853401205769018205697244263519846822652040871277030533707726213596604202882832006365757716469978083472214062046980477720395111177189541949978915914334136960177710384581036819309106099106549624670784270241949018647761928643293219612180669208015015353878439188978526267217009904031691266176141999808056413151650896459986852384046434214449341608508102794742880166893133336611915677004928101819757041225632509741233754586055847173285284026049278749350176978815692417548400782516168604408328471711374096526092277754197439419504182274597337739911163292197645872383488849307456508767427009235205502434999088337081717584112966101219522789214472738926572490527993756674677403700450188707804766129481504266468855944877758153263187294434714568318741822731905106371703801630032126470144775516627934721092755731741993237886238008623011136221750518489242774752543058049413429605506122127145981883239908627383170325421424370710846649633560638381421372025364826312127170532460765954969207486035072471185994522607367370490288436852350919711927975283597911701384191152595070686481453830145115307067993087508692550871993534779113329256280701203775941895302825415265724420386181868881189171565592932812331094519225806433368173815759071439626647408651907339699187622563625280970101509701053290274011065177646512410742746762399188194597522132432536638399733418295409831690271026078574178071889198145135040083524689191766615052289886388085475632009032075723482756616299464661114447402503156063131892640653759019452699900718749537633176052157021904436166234596060559576507076754130858873968972155974426103332523816881634979079064577409390563406008376271720259967839623359682727658592006772520849459162994096854968289760034776327808849369416131072547080119968770784996012643347922792353684569890094299838140917703304539028148398686356410081853170545799859454551658356306136346502371773869213568274200103140159161832617486690121313216718438496240663745388708065234118756234113903819404842779302830839913991700458744432826789343506986031379961973909261376941060263817528266257182865590832676074644070788443312540163551064942934919707122482857842149319728594649797046459810443931388005032055742004661721879740274302401784221242855890407009835390702944644065550017225810776549007560463166914037257411543135700802731909433957559460197662934663826096148765098855739666972490261809218264525272315231513133866528644623425055501596779562184435636223924822757092215144624940432056933141113854827012446489160547034816092367803437599652740429820590851375415360824875952811769676854198321689501122051202899263432103280693780136289933728116118702326236846919830549771822731938138246672953329006673559047316735741347823827459258101035712809813999563354684671012165893465337474868039310650775630459545299351792666981194751574812403761746416396579579402686402383619268945799574075412601113887063849660838922066078019733276905334964818108980549351139895409967659357387442423509694753167391154525402894622922332391749938929762247368369017162555545024883429194339454882452944871096627378869853971398868774953331915293987352743292796185553402920444525858387725106571646766275464999968903228952746753719834661277035108256942923915794482887703306059163379150359582623946839088455674521397386502877821373342112591380208469629661442105058338241217786379967117272790722595935459208540419455931745162499621994380352632225739184204155203786744822821264369156427559801455794644711898174982938790348859945329988934650751884493546028207957556215227203029936930101205097061367146290100017714035003256793231835019647193179697671149529602449801640685707464976562730590702871685975315662386359716882893390383426952880510092414359756027359557450582727965859111023325135987497612130696023258046870986502683112782317194923082734512624561394799530346135050932484193774505246393686609372059155451191668787890759759149377792592766221435680538909985247252449669788239463088328367826344687209103140652449803114417464576439693493795217250759594547006938264430144129514414339649838868821808190071682936634092401433005204981119617140715288364362386312930897129781134080494007996741821791984720748007846077904649327492760879601224489215172080751243084985794768478061857032641708385360651140664167855877404524157757204706666200862109394232240214904149805991904662050219908990857610402694457262419106036863705016539426778953107301198593775781312852607159232162586651722981088932312761165095699234515972825619931613474849088928937802752463875522981439277334062827384419432179144108208269346249778475038695668014095135506888949981025621665903676109004776390051389002226895604714229980356241531989932752987301851221475607069807513495748658086476550583151260682783688760107865423708701900852050593283169207900340714450595964372346839382356236407109802542413589301253471698825255670417245158885248914733802858699524987275358020710528627895805375474179431330479029019043268831828943630064738612751146288819469551132369017586625546175863676870655854616936282280166471897517128820836452295051926090428543915202040826018945162132196129828014906727723056154230859352451523680531602942935366066190869325867847970346619920198966117189482857387330766658202644558169265577141809702530101794027383666020807684010437518139789980571007909390244513456455853562086283380899760881564586442352710089954582217147970820164276807265858279093345679653138719644772129503061083704544240795756999699586418365657539858624282167089927486952992580010926110671119218613618871642762978957587118511848248187226622944877333919939027888380605091307281451809503165567165502746140985481544538982697889964507977924508260679636078961961410629835556734471420867902087556164850094742834204627195831208589914675806713497542168628192367957159725914207016160298296604376805957913499088146882422097258707118518545250507595640649419076265233160392186101734348064229723686174967678248938692608092698593668855322120095276495364700987380020436480988437474268131012754698257968045537569901818331134812311503807663477596980403870422369492408923262204076124178150501473147859917967034331688652487453180335052472755016983953579727370698048783187994627778552635957036213128842907103890603937112299796765523892591779872646164736555349681631142630035064143926273343699282879362763867743299539289358333944784068669866468305175599520937430705778383870500805939080663260569116185340087496464231100462097942554414544773607674244414041572592165968208180012654814161527916480468313499282177551389696976690898857077075944525033561188028400581496067244146755657752781357475643588211955080382048280300155090156820430240176317465694479915249527428820985019093660702564735248245101301386375711416660124890586942487224086532929549585565661365337837952394366771373109070456620822857614018127883150452157085223423708173509375763801572002585152763969797345876294341542677944264082526108585771067023584211019852670667947151654598752532013757648928121635979336099268614808757726690645327626549554970033648009542746280098803641158609068292008140245571257319233262004167065249640138117141463615481979545471454990561466145805594606188045299276624813544604953500082622727890674321805556041574472504607735307218659032641297858875214487428245019732272014944599392508512292305374600665490679002429120315853009476296287805986116457203269821660977753771631920724848015472321701646277388770651751371406992196180981237296277230103476318047886593807469955892092418891230797747942430095416715724569240115469226815324364270253259072801506931616230990475813852884858902661883130490152974611342979971032776425765519798388956409609071713112077028983399123912188047394837230072100421742654017907061307407351432150889565836473784775246303174231388986742352257560473904830538208028450549773431486420599587175886286505161958637364259312379467470441332970615673598399450300900295926062592248630979224613031216269618241838677849828267344521630610034610106052189155301260374990353737496588913228503070710675871526977530037402521445140330363473838727575237785095868334073429444002825293332672963419289540436738636954071719177510523714772201713843427044391346468388525158699550333399900548870560551550300065714747850780417758314887407586884319836215231460424427481944436306203520495728192755373871114118061056763809131491195375343545496138695187089748631034078949814589044183380712649118370957810765298010569905299022573385988293093282395438165558776259802029891697537886906276121133629498877055450597006875998172478673736224600554188387501330733937383379628231621604410667141411809389768367813061919358974842594654080479625373085911996631009356368953333708318760388876495977644356616089092369967556409650367801030526267238515216924968840534994207048134470900267099585995443697216119589161199797439219955034890903590829415688011446039668286829547501141236862304669762009717812166519586585591460360653858753100007811221752607751752310632434757689681364320489315859441065772136691128203803618829893160949832259556156716420393640250198546847142774947474199931449963590264035801403445444160049427325429343393873574215929538756921333823433750752622528809785633195232564824503698748357942542451854670358757249179003086310405031064319899092800291716116582557281246601228538274484402564960857228329317205159859409386496358673516176517385162245488015235004839402681641385040758030837053888870136465899157990919620025270425166568274166474751939410513774955599412454111880106415081867711128812532869878079067104280691023474993974611218629101499030197410246736443989272793329434117264966681950026335260268819266778839477815809052909520526461653393860322518493693383586051310728829125312717111736536994127166801620047023040073706713480268404655442947877297984332850349487957240907744829905496714248436567244731745974107739606084793615443432982905090863581416127811987895019040328199810686051603005765520514713523937703745628018339378497560582852617261405587524033793532544550923909113983236832749890579091075981711051278426337056673619108436960249124446098564981423176378413117703047695943323218146439277592957708021706932329544732814025516686121116690606761407564494651454720011549340129104889458014611563827012400845821784809794406834727606991145450568770114158534368270175732707162872784851034657195695510634308511405788315622404423490899388954378351057150252922367311014144305125142594662842832339234172951066051930298665670513860126106620748133447229006925709133524586547417696852356155133403912772885685083044099607868473384563462491464547886329971117086321398459753605543100714186392384154801244915580367327140543671103557160901591504031805016833378824437598182406216828154228952852126778436929268742894033797375677242747638698971250538934895325998056218396383530908067150751535400875298022719242594280217408459899547964449464076597697747122698172951620943732091701451138900392619829488340675950219635807244836026607112180407110017032735105122855279306697861325834353863339479446421743374559095746665751440873361854910594612786920070110601857096346227109656023414801754902175892455648360780395131866764012573511360418265615884978504015636242133862681400504243971239035375844699379371338928307481414205384794805031588807195750219599558463527358837213063830669616298384276151251279527240024573485374279355453632550934083699793294075035887204567536445232610707310771880090743187132261677060082282545991976987849132261550830002120916145764050287440877842440274568625200115057444098028382992351118903296604743414989727662543516367555046299696813333877460293347517402727422248841338170086565074325602725812804952301640650846295536355720937457071786561059556993739055454329492452214433954201749239322552440116355970716763614142813407420042493798516746821383600758153969412858616468938318660471932961002553579340494976420085991167252825402157518897496077297686000784733155731406290571627433667640468353533803200955492308148909819345061290785531280175255280240600046967332870306764317238610838439284629275523930007354065775674780655028265582644935708156762536022918550199969213358516564894804318396381381809686848512626685880546584506793135470256971216592796302980826423589722473416630550231025918635945313842775136480961354620519346130057867178232190792801212174477736019875037534915794667116902042279717498237940621398259594555498004505648481750584579981918068955631625677061423602208413254246090821064861936584562965096415276016064277492230269933675298841199100828481670853966382401206617969802077339495649368744162322328030997342224569864465123972041357074395371392760260252267394450275694359819115088955530372842171526105361862778016346424567983778913838514794836873788590382451722735703308332606898036504046341574303868382811340174152139436132156228400925892350453840632169722450684857440673747332260858736737892156464374556420801784071080104372555941465429240357712157355676998186410660608435060857318208044988390848601981053504624004885042255049860015188515648446334875927473433210080073984118851683952346263901301137105523578545780531683421156659831504303734170396847976358188690743055372879773755918662675222801479041670909883705554363192795673789178939509910667256275935217909546091550414872967698223172792623076889787755030705340143681495397813454719810975273794578693742311886018732082224012321848325766917447696484776802940846643938765501630790765737302893343591694675449818846261661530840138190675252905319801642584968694673697811776986603763853848336565374183085842360651259203014083004002061459878423175680741784519824502093968094970430205572387449727177808763369788214977673034515132634365153746586765122502636956549952413579020029714334984024618283358788689224352557250584739145153997371158743223475452318893366305925169487455219623135246808155360274774983164360034101619635638438130639273416057539428395960116174793776599881218768205931510003970468640909012306796043099571656803212956488424817114172881516463945708801625002656230133621909603865182950465525477784113269323269266868618229609757552007892695400385399760947684835087429483969542855499391118596671320850655536439245520142071535783288880555696248846580893931857171080300872132543954455245943423729326011786751891865160043304309563020060593076109737019814752059715041579197725434150200792807730176785295923119186316109023563097144615910406014099204285448724730194073987619519681427530675104015790225764895573434253374231792397937022723862291693254475547812755286744037989658054174702494202227831908635870438302163761519204835808030704619324389902804976190277137533975835970114010663010293432695089709000341055107424794299748373059285178649880305085250039396290297331118093629888444044729072813467533159459975417010032637168972422791139495312767876599958453197513215195454977727500325760347257053795970447769439203951133902099399895450780127419643550383599040760604191061600379738888197871127127675714879026231982781575659700730432881386042414566408379082007104406154084731223458663397403968644450799681035660545301445171119237591449379222671731634611408721811797544759455496829900109757889721004047413045302985706442527628151579193786268866159860235265610939399850326414627473624898158924692396072135438911149179211818391009566200955774738631477727028631975878341229758035316036999339597456540387936579736836953984582800061818699589202944005462810701166816690540829027165631308506086664574327078429535152733707408876549026143690144557178921524406503474853439195695566368890405410071617056975336518452863935394095133245515713661663829497050428520509024417744243411856018123167173236442957217959536033068633148637623446258310157036605969437659513088941629186776487738222260156810247343779415603070008614667790120538021766915893183704879158194374558631785907176962250424713900693875376451035659077686711192045226214205215806750477119659689847557237382428188706585958543043819404607216957194865243970395335708094951693862504060467976008839649447685946829639208724745119337199177479805719998350340433612207783068904648352988517983326082902586813088810071285331842353374845156898839800585600521998895982628370233810819151470489374515973480411721831006762152323195160116624205137249426259539210306290035975502893934714948660069901808512925935115559405158405671761189305784137663197550117877461221698571392449017953964260011917285735020017597992919954690607634119509939672551077948131726319970545283602941335110908445514324796496547072487594813148022811534664633623993548154447629037029517608572191203117253561557885870859752258476384941858210835798285079718352051337772447508516850056600192663118986169452834243675902178868032092522061086615425977491955162595496565235750815250952951789992742753518221758099075843868324137329528466177971750074124952173632510329068619564927343300014041253098088215220336517909477269397232103953913465967108366990290174479397105267207808490328214141716599512401138872422602676489465492951204852678589413940122727290697773390693014929830377933532053350424036046090063771877362960042635843052563041733676644308303357156371284224372676138292500264020675226728866894149835517033748761314763904286062580999611176501555579445524892567569212550561224917270460989726245392762472816653708369444080285872198668649171676991240227466562131144487291631631511677867620665049030296897660464868960531596574118573689604753905838936083853408064501061795592764642307650411155517230685673836549373916546708579046987838859235558641072897601033489135726538621611864074065169748281015175076126643473748354817799584227606348386248821850468237332772431289538363336653227574072034678014158105958742546130627387316976586249097484519301157716707169326025337228681656996172015564875246821488912926287985084391704193236306911175065464976397053133148051666482395648413967254818616363332726032470120781194100646588021608319581675158483509259210381868529778919800221579243723507775874801596379351641636254758869388668558978531334945909786137639719299951342608578162759106204425051362306499290312838432931520551353042468741260615999508248437180145705756934367649543403429738931177245404186210841289048157735389584050718717459479727249566786122796019080821798403584854833324044538026027357661579014189691772237011054399030292519836921160295194673389725621404247207022584057778613672886676540009091432972811655450770779870184881400192866678347671150917322591491476428284534696554877960336452095237325994733126834077193540544348814928934693719583873686024082137409288125438933391848295670574350555173450830934828473601411156187955758292159655643645704577380210268182777022645552244165301406353410328184894285247326755437428254846828740924238181797772268237646251153295175839448084675286679213565173495912494904161506317581752817840027933306783995744573912725703971101765962676581183828584002905500655426418029164066240189792987982181083434441772684682724159998269951868207713435813775968498378954602603730859533456275859389497962527321353852135284487844915324856217992733499740614529615509570162930387207119305084115543396969321028253831292363325410533336825940938495817916686920863557748058698938867395326826006977518525396936924847028273502723366419335971955229440414120870344140200339138722420643251846014000585103086954107002044961214307246328684479005513863102050504674030056188211562000545874475645763010995725463485232106553541027480167272476589951248876318225789401689269025133554301299054578904688658187927285425778424220446107562347679546205698188994684563863887686726626595820780551063260445089411430771139933034216857219423065585553443137829474577999873485985201635600812898466819329475768263639544040512833117170241462460793149745201576393042438353050726154383898452729031329217885763761266982164824941135371674260004703916604587583884728575740273214274519401736253850118204089331295653140029671695691870240578583710845047710326610975888387539096942724941194750953769173444093410846386747396272098900405930093642706291252597941009180176728391303191943213433303640349280736627922739813829464534829243661793124307273476607355487860054932984841715556155821076600585962579273209645185476046574420566563261759110077557385326544292328083919691421143461037994104114575667872052483078783817441711186278135258219414833008373867414599974039946981760557146062511773161839624876495844405929262806216394871704257391109328114809459351329040945156454831416795645441072908269083866593349402721051094926659153861060144898754558734467795947847269637028495826459641018920214434442827799665434548861885024054991431926549433941635794054769512795013212606253522742478128691666931517541991672614196207616527139469296043337674378649445935369942841412482154343592658120993117684404593774584266363454688472886040351219978826477620247330159577732647403068852078639887217317500083945062594676854575173898367611184367060232379522534244045601680959565214188311253838679772860894932515663824579561326429649215578468436638648032960914477838886144741344266103627770547021635062353677238136714253214122910249806201646170426162326252894351591749104250319240367625421427367280170019979395302417240091535582670618345539645044438997568145536877264724685826427110880622228185696611520190265043851095301561469563294256431625904821529435434951462802919790124467668450733089821326932743014965984842194046647832153751045502313848359987044389730812301608739636390269379092619884457761954150214444984946167693431356909815630590554955336281012964688145670026366028759044917440502101939965745595174728242633741075798574956526336444755082076082681833493026418215697412867682429990707322770108792354538864800258730559709884618567941697074497403531950769174376309986596911669678470089933973990674796325683808497885119623312973468239029137529003447044525039370482152203680499518536993099961203816616237044821921942363458853090569236104418591275818320241760504110472034782551917746876367081177225028227405524037075173921736147489906463760743379952873860996727178111302638904317951905257600484809103010842446775287578687419309969728803212076278519835105060656382066770931621929235426250794934526200413192530600200223852533117508932456225013568472278198702570257770575965611464391994399021710862650938451264707148016730025421638440706799605045652261859084727115186863692662064331753147015071886019041841157326057825135134901124059500310138927566094505985010292628620977423119139680617466301202977255871334494423383433591110361799704703027095998786980489474863927859957970097243865722419449342804887633832639257399146764938478062374931567277443873201026948581806378697174533991045224141005870957573151065217079268288291186887856447175265906669439858025222887068311853506247505215026413681564481460982240493862129435487240357261631463263232697371429182947249441350272886502728774493850497206397569622769784085214075743158596295588096009087129954461289733897181552020662586369311087210238453860925075877015425262620754422983389225598346567003793544301550746976582708057911940570604472848133224604495765077283234643819145131330075404531702438105955688068542856821874603150373921819001369610436442749738742392337531021161054054300089123244829823001617280396379978658111116747396210318989509998551045771220498269842226038730124764832345692466448073617524105655625260882873131800012843815723320495095620275524987070980625568168509840904760976530276822876619328551513381635798749655231227456159713731661720463564530867160740155787055160409068160772219457976611637906677729660084224099735473558519715091976120323263397853210610869356704411973810034860419383146493918801665043270645445056908021771028606190830229048670592585170766762739316794510612909542957499844611876686917503240204492017488473592295571511955684037247674787351087229680898626459802417715165465655508490006916771465448174152061543876973857578725345668560793128795924604376371559635860541742894411249641128161384379214466916876410869888561454613617400963950319375554150403129777029634200631920601841392373944159528633026356146511729321512474851161761679256804693126313060956699459242430314950295438240462214173337889173065036796199839962109411625999173539446281190027261633669958240833719601765786900349506829718008620536918310617623143945576156054976834528614778652781291622045978881308975038734747306227994995263687743582314971056814813534777874591715884235882728803853411814693950985773578921454581267933566090005439334471341876418861991436755457611416138259787185132790095830775823422937118687100742450866437145144558115257435176162110580523874518275078245002629874822291653101796609953649863872222200569542880486747167449967880277460968427704006869553995810699557510185281999347002213241572766606040600361776313514435516043570235608095809022855119432235087812720424093835807043736965936902294495097531646521594214533951451971739835242617969873430619165639699893687470769318545094294578050682307330753220132836036914094534630115500910149101650172945009479976242432631384090128076145063268036801937733033184743348789060787698040006919313720058666792916836210062411534565582903400130977641366403928462449576044190440347217733505786395248277169597875064971714055517536347928094212365020719760024006729178605966045016811722629038162767182655963250501834279499488194026476978773299923096892963866603898070989682225549111072834845596103436983537114909276185825839585523504872316080730001880226802729447503172012348791018474722916162159136449077765702384664578054868677518358261830459684975651540595546345897033275662071653712856897454264844087582316576464034581263366944386205654041500792985349170524530953616376353467869811955262636456972738913029197519048147753902743747509627038462843151072897305022234994794569639925871588311723352170966066969818904357509121375907344167472087182231924712588781341484087371854637839554678892190162391604778854950632415033333198136263295028676610474187617922739614374450047324784184804885244009812329189520547427524616089318199908921527283307127943953249389826642150118873617075823107532272769850804794651829851533220111486037463390424899996224060186257448408434419657072539780242183138184786247850560930720695925760165123849976921344037541040744833695235297971101560431194289371179547009958319080714598435136425837591219044541813145007840716908511150410910634833431528093039055017702112364726129340211334552776436050371957726109828158277057700907624355376172196099464293881683686536936040464495999989928154216397744549628651043470088043720109246207812097165617591091210845347218628935438883879784672802549110931435279499169196372379439214832409250264444416518458142473953990423234021358755252690242441815348253353571642439087246474153572862045078807700500470483963470806709838747129109733924802149976603981142792391182225290297293469632976816655069652493852351477853188625820579846147391558856035325895728343032393504525642026851277750746375024037790131549683578809486320612163122001786023130984903913914071983040702867080805815913854488891866420903279169839461090880558158767694469636449983924707404416490751084899992405834577953816711543990661322316550488545111329080169053306295595800962013246748823933795864917563537913682501892022883433105605143198891498375052706294450960398202652513972266398772636759616364842919048466179809954149881169822480668510103473307638380962201289975935335411302257983308147193801948247818952479646999933801354741324577282053275476799933844358899267817520492195103173979093200723211701113818618149930645237070229359955038177413429602736319062564740991093862663430585765438445044780131289884984478711337493394273100220354079140537210581439827497287988982890016872158188646317501822035885949043433792295057686893655435509384250057219899406619847579835523363566503883099831789302081055825694160473238849481532145939673820333778575931578228221363224578613915724388516173455551724463091508321295180229596425122139655873104539557023078674238942567110231288583616449983912389146328996427344845674597915224667652579835444661632894624221174412937832063063587544542531985643597860452974422798903817414525970199049222638137052914750968370276332238947163139554880235282221195119534029906755626740685708583604601054755876017882819674508037023612226090762930811608828862777260903832676482571750920650607644272169643769884949878898100836248905985079250414709184645200816341472975026120610033961954601212961680594352751069714426700151005311644481531855543928557779712344871430959187146672799133072187943432131329960619736488657634101941326549720868676828972366025967221283208443687216557560533646001537246283473081179259629435199617956832104879484307966269557781921752425068407416997803764050226087176248681992347544170836946995821091506814970863181395526826027645436723358505228222904473852047925559631474974195065780149294765284696042616148548332604049558938358414140496372708392093440861676398417527099702081723833207248036243510969692358107548166210972349048024318316433770197077742618450638451890759994968235204010955516422696715054186890301239102955755760418492948991171654575922793219287589813773226298823553323896562299577031522765182303868036332071563533011418382860684691281513642383690445284914964230938553136270693810721601607053843034022464527480967268235032644477502494875699125963226428579017384319844087909514466597588964545832568281804994915603729341679002770933184267848382644463794917165470252391820983583359069627491819993045593947057865050740215680413372542434271095311712157037524091963375728031462758574636058917663227383129673263090477512330041841543139383314894620015198671336467126062077461615633810143443702296160046873115509602062718034102827584756847160040505494458615840267306317874775137662404069994803980028460217838893156975012584235356408935442522807361234998408616642249557261705099934541619192919256540796245653019176152729595125214987183882764151987279635813601350714554984023208234167127144139680789304922623367065403604928681876108240214586956132716307777119112548228230271565057240541991304377749891350531492757781330308707321072341316393695759218170694952187046058010965662250419739954317911802749278236586296847499649230227691323781968063024078596255036243569242831601574106312525038673460966274871290121072396527323167070197898320180771659732355889912872176359156495447766685522083728586402156857647801757580791736648311661317728012162350461643463069399943829147988910954438810170143167461980282486853975270593204405861445363417340165556160988623758290062265939377650780940503179573385534339959545730056858011376343268581776446387358410947587711959765284383793468515837036844853902756141388575641561520853865351033479817824879669432434742793585137761584457808115516955844493384322155690055811164517391619331817460649906935597970549781316954384827038860417225834864525177287202890176424717778045095219336760280021459229115425819191506753325837485579433237935461975709904753871070510538611634246816026594092990436127863403716917845514826120396537331562688344665325323742181050048809672870825098009837953199031128915421674146721532609140588701719897661218771601196052104028428017719082075373738087071934423898877894317739556473455692213988563002661033944257518861132096089549849095112992918997889163510931567845250687746165284413291380187484325383864747482819869802851597662277938882228405763358213372191787975839895780578758337893097058032061144926960814297785740314637519524970200433606356596120983045353951620568691170230167059578741753262739924405470146179871508994236095930371728860272087494720989757038502173513222707394977551975756492987683200374492822292806042152905414941719727650202977088937868908858285225780694807010293392383439128254500902932719269190017530851226787080577616552648163795529183387450752876405159565097614068562549945686851599085339946009796981574155036474195950777780078022312898039201148228028415772205870327589981541550288447280092167059167037262562408162137100431264764911044043104768156759708575543218177884509464318994594143719995045360032470134105109927044808049161410225171654845590533866398397120916753780609230489379514459162268758333659506961107710504563476342637814045118271990471185490199578577563686514930077082410561159079477006442196278283455635682683482781219656378851000350485552919504772432586672197818672798322460961101278968522471428591383493881539401557477493266446732852621390635735846999085230668203939388122937285674912016783855374884039290865526862285211144788228146567801446144382150184471711129580857173090417074788679179178323170736390844571140372231476311407418003682995538222596126894857492970241736647037590329611701197151507751420970165546231454400593675200552029302650083555861467359686715867175035310368372127936624107968490234059409633543537978701089353703688698078499376832587823307238777753477555873310208441716662033897582894979821302696437774821468396471852842915738484078619890948615313471682551134605450775081818347008539889687962825263721477093711255726072331733389324177553693257216431187816603760777746420480605406349312098540777723076990970963140581003739172974338189770736898184113802421849994054903383409647965920449322941874973084344488315056705842075256183115796323388764571774776258009857119978688384302524801738205162257311314842872155289852060818713272218118832977830020484010123581634220080279776879495232368015892526707549964297743076713608588074165387941806044700293636988626607864333970866443077151920310626973852386242033234785904516001737118534682637249384636951417921177923746558927808951134332507456815514852778448183490855961611336212848116027569579108356883548428237100508587062710411896726321660887665828875610966606634110912711433746694598244839315332326645741128288358388503937921539228313783897890345366298662240349323698546754940237274608678257095437261762421891571909107898347175982524762147226996542021834868322797329809352689181679617368342196376451872668999867939562046242559346311490752714217091709082751327751889135670687468938529338115288525903357410974422736893840239910440587022602001868677064596978379193472447227434623850169890843038285627809655955355516285443759717659675929271799615019668706929036058223335554009111640019816818031006929839728720637597866396796788382643410301373173555425930950046022458116383832157321188181505805786089859544193645119859992680225133055369292017964778391881667109647420712143576582104410654409504225976917919766321172793819221220455726078389684956232803872223254033452256331840868523362763943941851838086252024315638810953557039379440255663145047193355474648066790160959737589466977913139896752386745697925321793944621314736264719496211594080434100308940937183668714994641858142783526536564165155661942222480139739542049438512472447100354906633068568659951063545327262985118715940645390762073756539178147346532918872379709431787432865441787138753474319705188399860496928591724825941713530260019244158915421785805320307221874263693966175805412438522971313288861867155243639801481310992795088156940733023042819081138395483409223861436695567702297856252608183138122821034835372332470994138717950522930118015846918456394600595487436760083514865854673846506599587601795585379632424963515527571993571912674102379445560020144870545054955325721741747692218214119521340877024859537001542066894619448260127607826610894081567797573910924510828855759460645487483673242141460019571176075799254554001218419851885794696230153451698024654126277142926793692958446280477335374988276915787600470228653061396737939996068100657504481594543776558742699492230847648032564496371812013155603415902397392239591295974302745300247990757720211026426880483181346349505501622417166926122206471782210793880764227536086552112617495265234272979441250425591697949768841049041707657191262325748903819286212319297009471836139766035747089628085098720797106425520660811935760057792262183787117154606263603658325899847940268339588938277470920759635818005120354263692289166312815544432241256170913370470338907768003563934262316964773830047115460481206810379751381195758457382144236858646219447181407221426919509846922545922472910412159133340159111808343365720662236257142025480604810222122871110600667350115402550531561281436362680412371726857261002442036730956110838873199178695319724456814190372249942610197421730832012164751945669097110315652320254628822088820146807187195710790046255788164368994129549795377632267919868644545586614713912837950517700133989151757061192542734023456988226484017882207142671559447579119764747821185732379012858839559449466437474765066701879186521980060889823232935258161353543714000634432621497674015242224491258868964326849260788609799587332747942734258932032758284457645751301758928390184260353543847418020573114066217246783389427147812594555015649033143353534847926607033627332474072233026897893068266763409746276990869443243973128392714879221460429073590353968848141109516063448327256441311717434963377132752325131154723036447302252508494394551092180126336809794513085149586928493553595911496144015868698202869707421256297385219313765768512656905508997137228507616643200318644561493127015787663534403105659831477150346312292026374186639751595403918718493087716669976810408813359857324885356797935045277016598818842023651390431090154269069336448016092419704540273326519403133212280227938974635928120379353923046847205672207070907764556004253969278146895272562772579993908645634479937448951773760912318780568940529303555745425253889576347703108566507553104288891160355893813310783283388289280467080785319586951589185174520251168534379816741748868171365223100019634326436209638456615987609711888978442212154579958432881503316409460635901361369294725895428315284323581552917986778491774036872830375264787298146290291596350417861788754816060257700604867877826941495995947176254784488621216483137398618211091593799856434479289924874894413959047326528830270945886021803666136850458097591841370580669704155600991228096438923706896430822506475788034314213858314525957591440369579317166261908064546284109706582420414406417225891531205868079483226220284281278885079969708427397221219593845479424835702869873880864100950607639756140883275560258316170276266610644006285048466196761660456818150920451796681656114280782033569739099590250458750651029352487548481922771910068534674416488411920669125684604336815329519750065861223709133237283237379230826963020785804508410074416064551020282114255605208526269366884623324465720580495257397886783738921026028164156423948717970221986147752761010799108542772297509399941515026558269961176253616961737346134079436254802755029925128285496457440383344847545667778603660811817397417290723254732192887478443974209688989299506460814672753440661705778689516280093836625606932974415492103202854713651730893280811863851809630923701792973043589504530322951396090398185602325678435814560497662123701977378011691454373213316914852168080206913215646744588530700562103383317019362634524489306184226985065885623575160401756089876184059366136182266407276311753887735515137377617099207930922506390391986836326110555193919297661910347385494994221009437213875016325594668278190001037248987820864513759019502646658544277739239729564041526332644391323424945818124458290958816061432063647272444519238849778780520352149882415946990741621410109289537142273106387808209449556884320183463120523196351407908943694599597635799821768952497620378221503671577543675207416473327221085549820294968151920071365048329053804123907090374196163419421692699742503269220134460548506953781749891297530283991074620099263439732306864765111225322202183721625507736339501088880836798297164280686139306798939004024896652509836619671342416925242972693981862693883010661236356814079660151937714224646145800783376881823781369286784008760102501617132929103879264265163217104728784639904896561792362241754148887317538401831470769811341843383718860717529522594818246493125072906593025390532888333566767171637809484806748606302086022601427259418149804156232723911148670329692991657285926412638136503334756520729245312358290689147970936008729878877120828413958871528412647759511158956390484771854155099416569359982872972671812826996786156185024794871809091590699932933923237549143511501348510207693304070449839450690341253384385600616425875158570176152913182773256462851932042956056356396243143865978741966277263050808231319580364076288672444291106000749125717932135870033116477989802184272214919516528548991617440527096108074711215813395560071454071034743693682150132508055901886968612087597248966143850460678594640722708400343055210210607153593023588620346661144082123598046547484115584550168489061551372942176564398513182323955509471070981312833139882225919893934730873179093569624933094813319712172985352126340266232889599588002395415349932782319038498807408760076439415171892645790184189527005743028785341802402702907731842875601419954766345202097969209283824172808157525837575936544540777490621582287151090657328628426836878986424598273294300497181984924682354775489832820494957614320703022131343568487614840383425767770586327262708490223366980473840160754832337968735502721902609511592017363578532000770123707533591692495636944995580250050394791667770097142243512903286620249400961347821569295201932885871681137736247828590566954817051868874018416399338814299398018473040851540951293507569559363964351122946142515464151273701810083197257462101432015386100225334768899083471133647078352633161282472417094010827585491416107279806089536831025681991779676857085598270855305643693700013875404942909141026553891800722623395683448439987090621226066078390303399072286649393620484420965785813254090877337614369613332494914057098294726422090297467413514483414761662715691286550215066509717786938196518794082290527546945350881669865556914943483830758783199240296082741097329505490926272744230367045498742901296788390856589697021851042258949628433725960872553761783476511804672202947394342814732804571116843929542415925581774471851911058308778776844289107783274589010717445971054341018916766560813207638963200153615525091841507382990784878476785822976301343138392781896405903139405306217085962993623769060364951540275157731946535870013052894887122379288056226907368142888194038341146868546850551002167206073500587823522849651452715863934668051581792501542393414760398048357483695026904461948163085262480568266769678421985167577554705025527462084516473665252283089784627722171513480044191483782249176430422835646264843046841734162923381206055947888209055601770528713437955226993310709669714086069862986885038606033931481184698482242363367155295927122219714293862208940562321427580860107376855332680872306683701092678717040758997178884003860707229915476343911538135023779471233925666075900246530764203260957641897033799486566110398273046705484181524426912951842290990789169090632961458437416192661765955189596422355085880405849874580616471428995203356201470435039224799465592520137391885820292804802461829566784149166394739741694642339914779765396035844517030069538032760199122404762650092348879156166474153703156772562630702550364430749006491993330351514360709273168482788619104711410323689109645050019859072968481883815423795216201872930176592860388908056174180918862183869366504567554023400093626173459962290466778387131743291688160905114469733770115543541009980027394454932353224903145210049283523169792157212297387702405703140654168940508720159307303532420126995495779782587651695943665268994900660912169881555497985461938161907042972892707436240287283648939739363392229725140674602350297286115516928438870714278783697956749244910635983160053132957702133383841074086164940465846970847538264153055669221756053125289091656108082883247424485845816335132906612377225026610959354026143265894884933333105555105153193366017498507292702249211168626611772080469570724539374678850086855584555337109914211264755936931606099996112141642307421258540889831222027244701156330715769418599359159147512895986841119218291189264024009934319639045467931947468478683664541839071061423588780605981568964776808039173028970852596587775129269917498903977895173707059905034711305600144537448682820407259474677681447876996950141091186305994309217592687331445548102059591521086714997917281202794256503289182719764626465513635698026242682514209476667290611946865494323541995289564595878799140299285801078321311159190765938160013414228274319908268580471393156116063265102646622087921034974773045283018998122313439343432997380254406029785721994330854766588754873284527035379929935471697801630020046623060009351385664767419527835558374551043139949419471269294093054919658662809957125556433666471844445543549021589091654778316454651869290758622425570034947467656767095210676212085484659017238393323979101403122527379058447516931835774409106167540266599086520865359914602617528962250075656267047483065841257980037198666370587451896895156516989531053678259716643122788019322938211855938556584461526348431910410986164222502018472508579761213136901896673517111321097837415165671641188438692251665320496492451002340931325236863185120704795594761982021278331389179364765435735784909588447346437189146852135174447839626144783359959381148939598796493871830000105666212842512416164651883621094995334532220865252101527860335746798795428174706355044300592751919061782398780427473263299684221689450758836405751583062412876488050092079128930694554707600866827879092138659380854240938420554632157933652500166505682040933120425109327027815069874653245297460213913292050564144722636835364691688069010546338195980230231797670677402472897537539064723741734992829715039933058852128717894327335135334440461184430007224258850751821160825596635397229008150485212074358586076687878482025932925652861652043474138842122030681914187585256186374177430865426322176977485915722955048118760492270183965725247990663454162994026661511182119395044123424155584127284061239034669550823784821916178116761345825001092286533763738280522093526047587141466593323948861052962430503704425318114286627892305290879197077661435078162877723257485076340439586561555524317282277415740257941303714567743953897951465903600394706098867735953072446263022349579369475025128528128639882377648420515296792106288383858224992501564383423362926355697714852271913827562858157991214697326446118918891675870929142593297884180520854749076572134056876997936063926314571782918801723408499179601087464921424514132429968035761383893866591634237770473549026815749023122357700664961855585539456334841351159795972360505092706457172056699669402788440244606880428353519635596131442867611370666986225738040810799887576087973257943245148716865203999973460237979254313447148538928123829386009065295881982210416248556468533974822465373721860345427235383584974997690263326439950072259637783110251694781141739253832911837293812329341817180768035136137709618941957097268388413949390887313499683814154993875646409184752368729892775714687624747502512675733133046570318174884790506766497162982134068949291030218144778916167092210884669276750153320468116892893526451840237409643268443813962587876534962153589718299776717056253337817253582853599923128342253039591232011611470230292611770186684630812662585875490438779131556879433925483771076197634798492839762920421606805641771814305661995966515772703990439633039984818765962763830242368864032182338495508962270975216667769442683178293035114168092184975646197332999815706511842446849624341872674082241728297441684384657923327739166769253755694671739866273522765440403268537221554415640929088404306653458337061500631095150868670889192019087449735659546604065217698772899463477662294681492000450521079082958978805772071185331302557945433978407010604414553773562876140462907765153057515387437940239966035501108567511386191649982782172422186945901587477294503126176624318128881388139045854936930910095081472956463445026518481950222847564862597658763944406275582017323567625041928152571517663184419577289993878626428426745599659893485980757035202141722123794547539735144342761777661344178269053288993001234445917512039857637329478511832809131306497641874989368604980047862194776197034421538905641622137710857788387203726004163567999829121364184314227750052900505287534437884110690803652978757205117228215178482459470382104235464313726670170149000997001719266635670322118597380515793781277587626764711363636629620077920938758351437591474978849906674844094432713436854409303976717186916533377521632601074649648373419931694040050702311691715609840683435341593571644654603671114934307057833755511854446618517350603525980994763808625575495453015840525620937763640510614626497993854066612509952246237733048478414456772858698488704969325911493924005809403419494204012689052632114811402690924047408299673004837189409731903432665224272417416443458555659784386492184000979418439943501077504202216444687630983993640100374724778913539211622482525433009579754655735355881310367885733799385138833805901124659709888577922405832756583584221620956481116484240952564038040116340136894173268322454096947979173073359546047676263900129242895148549592318092481676010569879775261391991054382885707930795538027061697045402358841010892250116113712733386208364652652894499321923726041199246618459756506413857077311060231120654340235762753113685957462468223848644848016105439320717744672455429073430124770728485538583197924918184566746058235004922462567871415764056415428893596563159496012647893463917354664157694949699522415394754645294111770860010590324420201979629011594250897406184086668851491905613451475357447288026086359541750516261026772245665912310370439216425262770856643393437175098182534771936134622790886444747410235327326927406885364793348533219396015246255196005672362026405031916087257869551519928623011591471401829125166840444639692163588255243460235818671566883178741191693142593614699560721804766961449668953375238025310626401829348914485440932355702815642517484731400645509640098589242986430581359951844099641230002266157271632754588181299929006564147397261870544397826542400171646720806236191664570339238856171147107234563710594081822963445541469139566718926972436947614693176156878059083838398464499287988857576795849190838246020190033134817334888580499128735709240640753579559642989022323592614069593557712362089667177620643629061279068603944020648049365382246676804651903986323220623811738795883991312597031670842015363952054632224620876055172807091429564114357415793890786120532807524190183800415511429094518391622888464267161147848452385059564739026832705561230800104940622731350381218012633097919752216562819320517020233849699095957528825956521179381409131611521468531320343012189047953084869162550447577300546163999204061409860955560684487636641471623257583751543064939050838343263013398426280518563910166305040023027614430691831659775300401637460729152345268224527472891127731326692863847880493383401789021148044168479959821618495224181120867532545420457118023466392595461373619602902370434914441981746744692504736150695899036190148045459039459526694936339176676565859520571233820532218425071448746014083392716110908497924422808900001727545889914690076471218407007526235279049676911193552655739794072697991959373320107228332286852244776536085661559963531922457457910674364212578197338556925068663159601060520927818849219515227590862489615591726507112765922121858952895286463966823651805947994009392645679185590791488203513177720330533626797146978157264236800719972206417297076148600421996877082500392097151600545892695002686971205455105751262433968840762700698380246738834942383951307692181993575432170689409063666629290469916686202030279728954691399879246377005034073753606275605235172990474360788611278884966660057000186773380317409519119128331541179821678079391941536654556590341347462358889806310782573834229147136577104584760407785757076174239681702911665170004066970741490950028842453023917786337634173461973343088205723850370945945204314808377187563202225613311768652400781494233503657820855611159733696760416675781579263698770414362259604119312509856295738991610104772048594414392107590743621250346400352280804345602859444445804718308481160787683863486182805516254734968301310691253867700840275690668643714825636558865280436001253921959535769480366621075797187236005305909473047821881267252700686205904179497601315801614152317832906327846918125188236815662163557034249596166737605278142178272658155565705679315145281522080076421725195643355463469621338752172400027454471845937413699459571849914092615900797479806862139873425472135343360983393349498842375454837920754659215854834619501294786788608447386223722543336458794670165517034988250830545481974320045951198238090564613696441496031359050704023378140295332879798765224379937602749455313650260677800979792802570767976297811521229961292636173099532171611082853401452082641184960332093873330709313085535186941982472676596019210772135757445397163052239986870215476247073250072593201753529442422641276490344228905048753593320913356733021989000545430952450769804056577112582811173272320991160095772116647418413657332457621891717700578998182236189626392870721344819735044442215330079678511311656284356944002105402356729533705854600325420421453580350043022542786610903972355360820822333209562982880336693518347359320931580918801482139856774221424101214634482175669054564480739118107689891945021117977988971136674501050666346019592285544955771371436181159190883186753752833921278399919566554447153836632869904624158011408724689475296299448915914158725236693195255719394211698449379639244604240510027626115211955326325820174929121260276846952956850476472272357446701691793024868070293059290698938543567738213500646823245848400186536549605517202111567920699918881004572125656265308552348342433670006945032277080629011054969901005980805274105813525178227062373314598709656002967356201491813816674899835520630159206451036686810254111404715313746591479805860967536166994165155761454871734243714169176470060541250912540711362368979103934925870151186971512284155954718593707773052746197937012621106443455644671053782624852449622006560748299259064684642724257180325497317595866175939143905716544894880703710502197656984503557710427535137546864708013417408395527368338638705986949903357922787903825738003941495508465198968268692864207002712166950918073824227515559221640111470473326096156971285322512334564803634413728557631961132665882980360747169427034005951426338767106892098822527433127340495618859186974810914884088021817748140826078306706083428232648882891823277743066517061103558433648523392555828522583847132424065166390196145152421869092094920238736146567784351721425587520215700300338241243752921017988454073919108363093161120824202778107865995674289588244049356772879179168234318205896000693549335140029416538117745569718542859864714915777616353375980971890859454028910975512779954654816993184203211632695842884467887367081961223467761523548818032503638783980725637682193285942388190395619589466824146961971040228282304440160566608773781037653856411422181955276201622484545304526386056166957661182644466406924725748466376113241372463339143183912924093092559696282787959716190571014551818431414643712406692525022665098745391563079852005977794999219018258388976750744350352518107220578329124794940564409109514613243097125854716542833461958691361553791331843118702286664750719222761265226929258239669020681072061157410223680743939380630868967981657580038372372638941538205774727246539719199853569117021244599312877381669589415794717543150711002597392772233516198975083207930617117277258669809166357010357071464135978033530749824210191791067957585195954537052274787949308255092586602972711472614117419641813691367900913076058078466366935920577235733773150437321493163753788543758394801508079546332532575523958445434856256246780720459417991485309195893293752716113881689339238066177767039336065002711110911271428672688318928548288540742516718676930034093040894190951123210145865976383453376567722308389798464913044118404985099577342464903875800981654099150516285912210489467818306029036640606346631637886231988777705424598428664729184973597619999302252065244788247374267391763370729820503359465915685804326103725717191688105528266690452735000411802540990704034966486316368943402573611450004978258306153142591144201382700800922845312290407130738210418416354140141650907987697426396552057060311395074811357788139901488548296374374878232929082669244544975123751966535260147104819682210992089475114674311610601895906808202112046904916930647409932444006399942996952325546608052162704685501275168778013790698776187467801338194752748742389971279161781317996192560154122219928994220665089375908893962909757131319017849048016644659106326234980135577171023955791077214219439571910218674837763791108589803015291652332469772230914229572391671806539950795365757007730506927911653479904814716591040182353671842783647356784348371756172499073312466270132444803039911307752883390904003616748931708728454470907154129098604380563826465782509369051069845266680392286171198312812655281972321050354305143012833183539214026274454657508076138794229356365124633636004921710846113158979936947124482576224929902767425826426892859048423826466285447498278524016743385974698694447630809836959934208644481170320214240240421726905429644500936170827761894629012195376389003976693282177777283696589095770348569866804875918157028154923969403647926667915710900038411400605915125574380002525025061139664179551526574026289491337528563526058217719011972413113895305113877622790222678115777426801598844737291575293215620227430009580431655664973947055999133831017156255754522628586852211444723297468776189895435129704539839670950233753179439731975033831251005931053773991146300208588173341845699120626901143549333507333045032116204367599666324317170146544970348727198097612608231574616172500107283610612407613718661927136124130451940370411918637805554087354078008425337210924181164009733504467976651915127405843746742642835914030859172711019436067787519262360850143378391226507224965192749246471031327759302129871520793123210224671340418341310508072276372828054665130654746928905238162437075828261618512840931314265445416932199124778009841735933987259904470608456199381558760063013631515066226654722805951734355332703527930285899680497295992451604021866527593824719634597144294323281257396407492666707308856692479290568303329118938994317904366451520407530360594827891388226061693500749719809771951789197931030857335335306079159907651325990523415317973927841961693601107973322099421002828615776076472706723140103115090134739130307079610539234446409170071905179917170239114118763496994544692277352882178909814347084192880443235711732848258676420041818075751566232164544474934607960683837432996477259304956935801839986157254026334470257263906531519783778376610334051430521157270492298853804298628181571858983638938474392766014997926973609041069749047980457122283873407631466459943838238858414892734795581778225057718340666695722363149546571902749999310177791777062397349596717566130313435699128403880270879794605231490707818202655488337095978025365002358842107608158473334362757738839699903721732278685965587975730494895613212245964250888657861613559087095907828032988574286464274313392602810680982083623060643414898239494348083104766765995363789789853272798364402089560796047954536031074131350208167637783161043515493276485897297024005900477126418183959633456450068346053117836232232860824970026771262387679662250779874863424042792268481481231518164735072273919344193211159864181441211019194906088821971473608755741611921485637542876894206788432020975274061860412622442547460881248582990083039672968158327058397321617248333379498677573823902311080172047757146388843209869844146531729528344279188595894781875808356261517802794936022285764591739826121455502651306304237222000589785559607094242343179149146331855713119229655386937626747122182228505255524328556301951348060049516924647174670138701856289332266138066720814552452580970085075297240098279265445634058802482149140841042738692857673985815062913972069948874806704221617453799129790664708687755567156103378631146330502794516378729723697502419243455832047394604762573304404413148463064877522543325528850304322340511262190899011635064713335813707668507314058544065684553321340288878219831467036937138720590238978745785324931492276804632726516096641396750749051383345049856658823131412572520746018089203185369479870244675010024289582512734529220476562259732201530509349929027758230874315862007920695330305777251810470150890204298004467797830478706320451140138159377408813089530754889504317892601901638113881073667296523064078942787725827714924673857404694850037212198350685836499071710821182799424548606189518119639773413021346386316683619424755609086508324100628546362470524513633717449958119270526256328004141860467655887267397733087123402747915487825140577949821008457830685975959709686675075704878561093787679360846106209506181250876294340416386502479107983860528381545683489105317981091838009477080904302487770389473388423471852487421801837684277251697506052834160300018633686486201321925084638441027341200635671017375449298729454423072171409326136834308349855742706100063518938207229361763103869802833241293929416960673410461042837020835116604203557200314796744554107754147111285747198729386856304484148029396893460976195397131517425590968037318109427746492100351430668664836784424580577878315196825750177586643148017158907241094724337095493582677254579416288139911563995833999036545103473157218659629247724033084849801674586702113519043105713988648527910880485797445647726907730791823638633875375510400645237884758854191703752964797258992669652980436272990936901622045280596415971564289554517988453834226651336986382503784939623545443946384895481909183470476021729228132272499627448126876264679545694543202713037930090490432875752586561745434057578155427004172953322656017284819186289633919409293528447650896742200523731860002053102150785106280495256544859104866030597815745144578677353926772887543957222684175004701609799862647052897864919795812299460174712175850755383013218876445340690538658339875860510004693087026817548276656032087511180908467241684390014636452321743372518601694788226885457819217347442633306033460533555254346174444601404274378180612121143703060567558105030607225296408899589064771720899372827370426183015523782270840815744839957948005065667831875717984041644357219969709496638447723989673888955171005905369316758531552419339059405038973032062675790216926353647724479166762601295739264476289774713852328921811961738906994966929890554679910407735062749656889185458046421035702906907670275369994902322491116076381888990946995638168833263333136049876510263333068661871032101354045526000613969010048992315411452793986763236287375479040849478749569424459465644572551799802615239505372122144984161130994505371607256909549784011423649129538157204556603291781056661394682321440751640585944118757468344918404211391863456587096020805860408107261275954564912026219660539088194785854565302989012635929509475941252318371457008518928601193353900557083938395997976384347317766473844850734532731980136917117939882421533835483192426709530697640591283310991770998670689464006190303794636886580921626895811205374867220375691276894370746253330779099507520111246975444557343431627267291933335498806412190163604511652169647281693045803117467410264387658397465768028052082267566574120711413745811293085836024010377985421447451973617402442078755375154700784699376179880327002425418535276607785552140291139110264213984775617284129715700058333123051905811198665237231581271211978849924770842174461224434954073227656025713406432056015557703635297580206514164065136011840617012202132097159638319339522109700941459668130482457514208921372774907789086328059975642294776482248405598531377937338578893590209953283513745048130453518247867646209671228718050487927179557168113802864632190361365940502069705619962003525343213723945431415840774634330868005010263629896781382970288317879188586626555418063238232340749983420308288682752770920020637800849099786461868985593545944191299402482397199665906222761967839786542813680983303874138720561589619992456563312954592347694611298201500629600354563084215969495411926467532318120579218796810974141433293875413764831478939818151155446229396287259357855774897208470019265048138519204663980768650163044333108681435022326683815365558050786030247212442977827502978985340810373984980176049613032796645708320291396806892545025018792602476844628004769789412613807622565644493044917432094780477998364016016345312192450071917985426220714879850823445698572456186900649199732176756075716497228568844245710279725687196177975149720152205922057338827187015679124284934213216493284657538808410518370909056756598405622469125479267341659024832797088322913624292962745691303169470002804955637680593420579301340569459753695212017460900848309442333122671160846708515682979750316898441121349254774695466044208951800310048017054927449617430999746503609112558513055502968946931760700488769673775854781894885702241430323964025887871619621793117434749821809765721653448361392771558383733519566318261118724292870750569811636998410765322290737802311341476873577287168859701751337849605173619246745903806817828543165501966288728809361187050272255296797968271121995132563326934782622338740052229426634600612020072851632071995267164494235722836967126703064241407370189092434442303511602301479027057706414251018404291916293619142462336533766902994029693638062838621200888883551643976259572668223881076008687064028916574271585459496603157426472047733028944540886786169474910151582367160083784450995230214128525519798185304889638207832813971800859490981540960295897137682199236177915119959806138078705512362976581400448496645318211970698421173854631754210288049459146237467450279141107668862394633550090941876231526669303520517419370299112350518628192089207133701689157962955785548622372767589279646910998710481206478225301256824492375407309250107772365788618790507098622604359379128754909187176034580732702572250711539007400692673669701180695162947470479691538928642003800466654998802070113849749954432638257649587901831251029222302431418344413598616502702964166254115865638003289306407000094329893412612517190495294199798704903969054173443160452157713786484476030780122434446403490463327583020234648019792045430118866735372891237194927302761289044051139997431860004807287332497286543380501894711256113987492339926064278666712993749504907766036443430228962179678838358722922879014596012994431573014631853615023883905248261889755720944846904046746873145621277751011409988562839509487015089890615024451274964639588122813375790239476830679923290468749594015063448434877756089288082180466842508132294053009421727843822213019545050386385846124387321105195168509913504033036967438241182779995500300031302030595086524282452172761702551618840917361632219672111752189017873794459250514815360000260015446570193955761418311065023035321540566345781126270065541276345899952633170290692041979171030331351178789145505313198075270374999829127342443997572180343314156775915834906447137829150320033000773036315828651386909450477292215614255743723317548553443392825507831923001013352972405484930926039212547635974279663443661301138432914043608491702577987694543598656408975661831629413232867238120876548409592496573288457020870784548807301614622732581624265303882247950889508080775203396811936221877460913370162231032090378677866723465873238456487223950299750884711034241428123698611360054189880596466694655394215440974776017265779822423153356069536031147916352979089826161570143946870442244940793140619756924292971807750066741288581309441750146325199115281078754392204693469091798172605699088434793730497314079764307712244928787288378018385472788130712561642929805069996967891925560266572537700235211752640508332392378978178579313964521683205277595165001161308443592869916481366333225127428087833051654855896990219705045434792683879457444989955413263341112776963059126301789732080253820387630104264893862351079905105963521722722765771563498064535055014434021472849634346105389464707106142463564289546595099132640668273934721598692842012030015487108912030789559066629954234303477417004135695432863916908107690945857483550821623589780570042556627113766887062620053809767689433749570385965554562137542668134516969025290639730964654390092305093573878384323377595528419877110058086522995649980348745327791794345485819541930608810973745473424492731759947371783853267211486629357765097512775067472458218751188692191405157542395429872363416797111028249291560324467605441323869891192708121132101603877962223072866468449010349180337845792397467417704925081833159987709048526424349471269654659619439440803030171078611588188831150442358118084398914365188804913496066160673213360782736564797108238474137855437541766794389503160355086406266632619202745008277679351794336046328542472622569190011737710545256898295764596037101352986744773310626357440979069762142733898966769088994401155652254241997178503126603306758488837541065053340165170600651515217229847563130641373059393969761057171823529909900566669236349298855848658945531669747480523807691859417017781556247335827019601507324847212314297503065683544988556330533599906476091805962192754693581251272882891141853700444162889531159404989194001766329339146393274001286166658722894963340380960301196368283859160335456007034710249090005456283097139643462480321298324809563842602328909251406671479187543175630589211175220355380894871955863902136540795889060086789562825950305649871988137716878186568199464206735137522887069431442139545390818607384179790849234759790223742257851518939011527358584663632127489511868835347906063385469143268384305487877793444569991015016651972008517195063265141132301154760038760036379677575945884466507019188225691319097629547066398475523668174283847562694698758687313448641698179661654978388583645226617932526041737606375228733959708304671551629901374382045259778823874453062277152008928926158609682513070684164046545421555153176979358204854215090461711879721867558504497148591452968624263049609745558330865161589526776510568544543834833492981260496121365720613130540160965794066974556380381505985394733979437237008756123284146397056341657424339695476331836397765593823248817015178317285261371499859738156074937701157203872736980821801695744716863159304631275143882836232580029623197661874210272866835145607826813728180330551099238403525166382859649190381637906281081207700323307851783258999050652837265289046394623841692260619827319017810940611973903895130465379994420775096662766416692229144898546690137846584056029142569498764159540573867449460505728688926599123463318178612158884815281798962159681263379649905681930046879093561735741681333438133543527212453532559522518989199588996601122112380486509262083129306620356284904553729767425220966209702948638977234908734386842823725843229941118514201170840673425300653756152623969234768301755819895587171571089889256644678923702933666220772219823238422716412757859305603020141806779641460944969362405295286078504082732473413184062418793374969386780370011923122695465340366916155636173717205847736235385065706175321931310802510929696287004253573821969451609039606555595392155502881355381099259447484174491150685999051487539137722075387131903397057466602639336582896810706542971270661197594102842208027533572395594433466342367610076560318710749655626927826081374286418965141290439166750560752614142599936075542028252066074465645901737535190868575937990844128122015190510118794659818214496994253226235441805805169201720628499059600475999982155274278458555454954666152187590336074317687528448958207045081180135470462507644800800025438479523805984859847058056937136433551970905324567322679582398524912904521395550744129845297357921952933573474983411534784689669504024873428087459053008683951930515591579859367675920051267947640910419167002299858811266708985239300206412423697979728842871399590230760754082255463903299935623516094726107842230953616007601208455899520188705528745238251428991176847687523529015682317638026958407441394343733862341042891550484237509496326367990559754395463823693049706070977953591376327788291690574877214324999248977363035736972277543621620856519515651865127598065612439995600460098905386425983206928964179954118791254566230913787839944841323292013040760486798583169199027144495821485892694956267059379130828122823788160142965743504515859964447711115018334710736574095166492705691976923142103211775956894388367871177982175973055373399774553719874944466992856942898855391382757831430680182702659337606049664604568519403399693661828457684631220062647116166067109352833766540953678784230029193507804760684266237634665925139927092263589269215242604896046811218464271180184206680718248286881967157171732967998777209178114842044714646710399162197633853849315174627125372193289273818349253497711597787326831384223636346930582279822865350374439971547630864703008718258116355992509996620318121995055123758604405900230241652386444033883519973263219862376871282638828226267346163039955293340742417686195944233650939341664195397582756533178667569868387201074538994734771999996252282007068064467195950127078728523322862576627220165320575493362507368653587780390378970402736525974466755706109667439925624263601898312575049318199071966468313196317323371092729061311264349986227957778089401797552986528307238537105849015667692877968811213618752763459072845654376169735402321569583229354258431713025037615415081437152046912979429011825472140918092585850138168737589246324954008531033730452229603609438286812801954587600250321768113871358907909543262067829716108688909882053237636082815045723508208231729865296304091000100871086444319533204503967627455247914012245878594802112082104682499468588934391400024869233509848473104363720521837562687929904414749589799174261310989472522631375181284200364489599355377147124139881240186528952497735794937239878118218638388523419395213628228674578577840558170216760370559904966217181589341185176985001953773890152379151320864357250385345535306940677504988958227648607459366664994906176383859183719394295500753425037915107696770689426021963289784476900080081595994228231749190471804979215093309668128124130820645555217470757600169974391117587960385073728299502455071198707811852626220052737840854883880297263003733086262106719797608713522416836084772191208285386413332445426941182456944098839507601238670791956653614646074622376849174180073518556866632851234248451843981524447973825006045084665279121201288650842326006412980882788114507221205301914082937187979945369239849778363386450671297266598259145748877964964118186185231614607112777764852414065344155958609519014039183238068346358177232332822225201244027663162986372785225772541476767260000759973531007092697569536712969038260312052265052374542378767146733781145612159566095116957502420615667480068666290063615990993802043052517419679988093806306885019655150521264212048098369125378369448677366745146959775055077337553233773307330492943284803163491105151834000641057899395979120953456219389924143428488388312265281801871183943339548928998671591658813221742816659553341935632357776081277943318224311515635299803191658168350779913726394816782379224985055574829985961270067250162779654118197307473895177824594575908549480227314446661473112214102019403787141214790645746740447960525546293649403128283223644547711411830355101457698947421684258106314956450689328083944005290623260164105884444768062657397412122686810102020549160089521408193940618679897284374421939894319854334904016441979190397258637079100627137232558430227770776870411787342138227491819886296792612484464718179998364466191370458861185846472961909452694708556608278644329053070442570781147000347144240589173484989286264677976280518456627611006920688054109031738820855692147859457499891263978430431721878798155937121912208215445040809018821473474201538474740481800841313059531230995428714620205512270618975616966530809847851828896085460182265458549138480866435361624250831452063139876360041526255860006436072190548944911531359895341269602687971945011304434319235779030690781451141960351460214703670031811307441089848243355913753610456424630690977385605406062073493108779542026552181901113259818460119345164044528625758530989709975816246503418403879616271332518033622943829715964062595450402340433131602435037475290269436227996627217887286575754179690571590663654279286302604732901670824738195668201855722176909759987949214644061412120230571857426352421325530705189360645671744960380332849183572171161987941859319063696700523032156907487752278843865692735653272926629404866790440959267703576837002531449541053038224465951749440316384217521983580437162233244808383509577789120594252850944669669390728556125218120211724476263086543835245435443310761154507040009732457313584081553269219545525804418520418441970730431361105924381101944530511951198934686051723659136581319669823226573251626997460273833502005651854304429227055596612252143199986138772077983738484457756668138482122717792487532298306350631694917533899608796798784626744523251281830465071832954550055681794821819400450767978174456416291315029478494628914927214917926555053359501349763093683378502734479430558111985908908563807435370087487232428866139816591158608582084645423558549577141232007193777853935884398261726836872069471640319863468178239078279833963697237865616091311763390271997053484882867676227270097345444035062026827532859382341768727254732851731818964619451040745537127263684178895218580284792274580884624944735527324343896036968884675935883671022667987528034462109741093120014014767185894224780430638389682256672465659711261877654707370944761886157453516113409285942636932442340752869450226005866945126063217139492031407393258822927777718908012538238993821756995052078442712259909067672124453271242142900019833630411893508276063134235103689076576389604598839084552966961750406046092890411404012053982674670967671955549328486960332766105325027286523816762994489971403325564922876631678535406718766615101256627289256101286152261729867198828483128847367560037024553247749605727817621448253881390535539674649290450839899269083254023401324579962853954062336776714686529350917291835709905102755781941305599282604074585272413535103224227798195421541471664463760693838592226729079397787753357760036864215006789366987180787402149083431811263127773972640655644288464333698567436788892816762406005723663486613052534907003715415349014185616208038298969310264308120930269021328513544145698491427502526457992178458347677731018699968093120516405885157987999211332218843127002216811013844155825499520888304096060436169238750558800251269933608650225914740582392931948998986312118219625212570235602150728565456940435202242514365160903098371955972098997478184485737080316051827702454580823418862750332586111111365813727746689637149517383026660558433444212459802712349810031385131882306779565593850186049353722528571429361700430834576522567582466770019581597768760115818254924918650662870392274782082705360126398771489170348942157263714064766426377241877667581087565303060563344681650072451136177546729928181306654443863480762224976067073249868836464391991359212240529970252536588161285586789341568592546885432244703650650505438972569253984427052801477966895864007287918195656572337061580468016026044872642062796338890251010774145680028031690221990347162481404453360968831185914727811083265757611913796535119990656533444395371515118728690357212412596056179039568122119627124696562378267213346748485498701180444483558935053261935968469804493368412457248277917664809679572601472775980530402207941896656207503217014302365191906800990248037157516691017973048949158737161409858062869493178717105687105702178535239722656981465864933865667498736929276624385696091574288169277689332216421678952023463592739506062101996130122783900649722935706935158098399193423842599429784702177704206399574876757756880589870183947379178488204393574025604895202531872879348981147821208341099671206856673866938010866859529490342106723595481877989229201827242011315127049027396186309767569004304964221124542786042242874113786183617752739967899179068863940941943653434286747335142294520913128056340948287763916062506607433220330092743854680691510915612782726742736503021852344896005252227629213971921696192324982110691407573179997403931933944361310399689877664523368635462607822910879137657049977214241071627486652911319327163264156244486587201368807353345780657131909212607289104141740255483127977566620385726180042130169077052042227556310603179908020690670961616127605763346696525351089579457266541028942584637689436464810606009631478703052690859528096807042846960422829829881293449459077619267589067127601828175448646643370125506681372304419090020461405370224529474347155313181627339411993534444340334118242643831717094711778852494611783514640306557880854840402903917922480844997196153650251020374770554046687437140066694229046605316034584683501964968216605528915911487829687143932213261941672914098813831280175627442703604645173091246811155515874405364673470496084387263737113719647031226511227553146754698189685815851980257577347130476886405865449510689057056570422035901905672283634059801774636532047145525828675371078001846663167705561939270868079999327393248445051654646859174253143528579069280194939415403389223234821360408196869104235975312196644583078603008610647541326264589637516914600800276561995315530759154479137149214329225593612994802899974559940851292130331669762084958730786771125188865513165628533778949477863602123615810693212678707770592298834560707073249076873668262890817308153114035353967010160176177062945006746530733400596959067830564001790066310982585809895459295527815119965509698281651885458560009956684098573001137525679754611231124959102036907888392958504289650033555294405772787284469437310219556099997067818177607564203522326018363707432581650113667600255495003389411309999751638029003577212893097880169419855404216213810468902061640560329633730013313840839145883300754020729149296835126398602255858232179791741232597386982027691209953958363705493656208641817448527028379746081302639309912690468249770359116005172749295289091139963148372090345035846709502981637290804825339709636530988694511640000324989920711617609563372069335041585634559690447536417217502528277131514751050187486233346003656029918887012675237080931986715103320722980040239237102826082900461625866070913510422446115749717982393063874087071292793860712869663926533340209056620338122431292613135457126459270265207035542831791487819019144542495501408730071258781291491237393830610367249385750661417617019670122765439229593598718221075513497060753136216179904254627404744600438230681369836081682090163482119054537553984935726436724994369598786301234771058638684013594954099453241333534471123949632306579000745379766743366692759832249256499188609509481447509230401450561409362372223498179796464652593832994805384562844730647395655543538221048154182364721815188693309012211912888138518258631819395105745585678167249844922443406768388883720495441933210792893255139782399358948255981674294182640082581197693944499660490474448671279755902692684855642800308352235822334472033518552838895167365050716784951171705687526406229598144673736674516479961788527822698600881815582985330972147273572726969732330741956102744418687774518415194852958260944679230390045671812725549762352541891277151638956198322880092924138266212851798596349591945996265953110173377277867357491182137286543783391529085462013383604862435918517660577712334900392869066245119574001006883651698670731775700450953926664280534973910034174878167670324983603115624361449938378679656604296095234558103444844480286805726379680926458496848654055973180410414643252970106951606513183865869734672622465745209627217325224897362759580600693286675285746700719737613920502173983022226088825865625557063016265501938083436836012802393458726882673182238822347278501069180267979899162184659835995698196853931514589194406283620680813194071515517405406811523712161008834144928911953361856911101022098039041964838375055024127716235359047518242709509336142439023762124874252649155135931695981608358371575435168764055232038790615997504214588339971072212107664774561768863705363904530582180295592734125932256337311985424184983741065004236344380258465105280694985467566315076933021819526361778989321701730359280172529806439125842191591625465244599446217203180462974109172185301831299616049672779580058066500154774041347717155844610478613319460191228246219892801066678117647734986792727795371951537935191395408028368132254711263500788913725505505483265024007562157472160211700724382997859960867310980940473114210628173902797625152216526611997035215643473702927820844541390957254799676395967293915275543503059011675451219366474831362162505070763713457660446799536041341577206989446530332977787736154416986155918296378135324807315500108042946152698184301179656075566527814657816997613307285055501646999391093565205908056563968717368858423824940369792132577459078408057794880024354228784968470014426088381831942701473420049261059953707164691250578762546137270743029268341637532104881430397051607320342212718746624347134886040815529842738315791132190388833945599598446220156417572618982544997123189619026104180934800709411737947376236353262070292085189907409860229379112660910536933588157438713585679747620375249532705318070505708406839920241910604713444938330914077759340922777754934916534848380714980555467093899507324549746100899325391419501021609377165532297242158750013566215898329557338144706803996376363793789891545802296808569417302678609738853711764099078518619497697315317359715631540140991768575334585630562891199789567759446565777810487482547467826535187053859636987083858744428114529135259649632739690988597497830634057530479459602293005785055053341029471577693507850248572883387499352709797864555023747767359186701678698385020267031536606806842355966512472535868958952486498594774442898723204432653063631151087385799223096865215766868776544152898566347498492218721214965848052191402558114938370058458308186686348598207604993863965748821093103110616722868203500102148424066540100035594952534605733326148580975948827266205617782557237608104008338611475062569694133953096511038910790380180641168137055646617881753626930971351901857073920256834646959567059913239606068812815920828418684471206965412058593599145214455806569603751081772979434267030776840058252102459698626090257458855800593707653625315482570119202258113938959452784403055787229346724458518814306547331055909746759558848674773352413329691492254343227934133011265982939728280034127137169410927474360197786665119822580995655983926250892919686960809726451488076645084523649904197775130749840415901135047217753381540476044093152952491671412115004202132733820816718912891123794252782841676198438843426627135478418060775018089570916795025368041395533267287199755173617218811642593218050499984563778314187146877797796457903240995113695033880283766826100882008581091713657685352201598854273934191052777348379592390037051329059281321403383507820105339004475129744318776314815183159396793783539458151045835041898371496857622195967941228011000638536966293241569078420013108622263666114536246607624054774431415383217303094770620011141039477948053509592947105972085220407146361473134364805110245661501100146695888511744087399752391085056028661867611463749852362442002498886794018171583865634843924199560322495512573610902182469093077390882028904454905618916418789464636657125606778352047278599157172174508704930020598142412674863744837159859589646324794997843999787970586096529917169721459261419043583438519758691869702494627480877682304849117462770970809594057859001161956671260090421381678761616022008904146096482954438511221315389930268607856706684243375823691930496473288986494033419284086424040816591233953976395090285421266666257474568364358904715056193515321159441405337552545723687220340976265496289180668864626987339536964705088565328367211690592214775727451716871934636945257991970957365105064517003415913417162379361801489051026919277464272986148874250273655590519917208850925512517493175918071763198848604829888640704962990644969151908681629212127393010393211952438132775349197647647199495830488027874295067286619455999995985026233771153732688244949282376886651235922897471327016996750297561413544486340763432220388547502273826306843975901692632110967446845885379717256401279000521052108341660430297529149245920122368802230275546235378634756908114472446476523741199149691207930201355532350174238646895428152457428223165591729810206226723929361720845833502182870006865156576492020480492645739455885340529438991358450836017892385821870009863321689768757081221834994207421118287007973827492920375432925377538010995723205196755522540397420635309190222071582858484099821951639422709874793423194173077941834691198326043072581364379379120515644611632500970008456689164118701117826369682837731910598850898491559117372842044055342369573470822947121836398130470087361321799585439655413894292995803973811820543806533080632405637600216266744493621352480770635475407070753692962880430156629713524885051604237025726408928563862068939687825150125151146762226100005880402899919458609306451424511246074152145514591777585914036901773809928868269351590095745461081581446963976194017016505099985828434467331407044801215725052638085064019303488812727900796246929816625392114993735590299161088636946429142939190802691604604312069148192480640213856593079075381087175238505252891433615505260739702933504042408793343095728345161406365704192946590769215497748074278588021550560972417381808893349093331457346828721616514552654698445799216044052509231795442311564508160259106369195174727080795783235334711193456879645028413669238093576107654354070880354856759871823126040889694513563356916550478228991169193355318882508705382271380514681160255870046723701873793842098144451326001104027150321342195849541096799063650585370574023983031030467587783674121098871447881719298656357314025165313828554393146149906431060939446096510209408105988701064624835808047000003018561973889077141334825342989901699658442258561330894990964895355500715938305613615923584970021337070077065758611136629540716911660150997128409572283460163814502259259693480584939110109145706011309802591874987061303356000793101161120491130213165819876171779539565554181111671568052006079363647806459498204597568332761343932006491246890290305016332749541453839080401671540090127960241123271781243202540659863400916839787862849271611297011755788484222720998869948309087292719141843860273164696195145579751533385269506596602871380666494872463406105772735548142138831414496535391632363039362556192571355181126396340691508858239455404235668468699168282386230255160567140279575688189234977830605042644088816185031349685227123550393530143620554723523849841021789067436293380075470617026850867988698132519127716390050800716262714250138104309807014020497553208129737713984676895517855256409794360120098625758292977840991083339396626811027389217132789820064607690396138483222239207243442593881719518034440817631882014631772650347812234662465843281818331679285729365529410066645026420286470638621231490887882950216276802938011186158962529850020477221790904747273088891081288534121738560018160492182623240946888439447598938707527613079911351823716252563281894958187646238371723311550880909609922665880494277575524221018192684415413388239598953097978595049493560616906341250607800335235716137616758916091346218460943450201095281004499543608794207287864054950642567356362049719307735425158600991051344327754894901970430719375013507135948147256031513303770981169834028448369850231512700701488350652711147097456883145164110120459574411848543268800636292853748769961159548328568437851920418997220353076031797089796481394116341288874684058236155432809076363736376663104475067897223522066147310373955705361540690829322202428207399289115468043392027820142516736227275167636126517510316555196244628100017388196044613273303571075704425674174450131465807497888440238551566323081614106362319408836177200474448490946644442199385023077037283238801510719659535034090502552347137435183315685716427069060625926273894092124851594889080950817535863502899698045012599245034886549164603382061328555789751618929413665395482288119737239858076347465323254547457517183272275469452557255651035705710632269738337281994527932787035210629673976871625122817342946536623573234480331272964675841142496789895778692887011868926670068302903752084475650530223266139388935500184815879886604475947947263689560861496330914870655175572216946292765130020523627684989599321768561354513460315766604344619787775844756773706799414579679611632090211380749165862529563018916862926905299208899778570590969659870710076935688640209247683763494303662661719813309763560418936275085873645874301745581845435309154716898520171106857467203890256384722669300656588702333098596416414679642196454405374588704517232657205967459431972721646685625448791041889291861109452323348335372795989964312531764256304622856512114547683688527656921079621993380093863646061709939080420229767247537208394061397707113931414461769375947799503672441853624646752409910843052641991485482041608795143559666333609257614245529294549934822929381409173676299570611333938089185067855410068864378039532977741556094847501562924818049907743697079214835973141414737229947041275963796210526538246007973844474625349982313306296137445128584087462623388897822907562646010904473813825640192823120765949381851234657945407681279333884009549754110540710847980172779777598310110744196304258126534914137000071499157558302274724187255673834800793313621061774947258901693241342540924539269280664970782473582116658545197854298342865067647115175170056763123198281348186353926095269976016936377042423580709100870423073050708194322427999326452794086291507689428081403739682618749880493665926767827338519675575314627613667495419681728301115589391072907896388643888138588700414289193251535043115464467363423615029435723463139658383155568862059150839675879663709534866343703452387060659986554363063731826018707651526569744354282103910436740549849555561320408067247163863863272885535258116046949634090729499325598684180197780757817175205697233117397160474359787784916676152625898162966112750316128289266629041259869791789133012441312122472340882149602207521873820000896968018179071703028680195218669182095932582923227370308044671249801209647970516945620763944600014797348584478964906501811981849660909966459099767077218958891207855783481125109597803662533683059959601329559658133861285778921581269516425105057571986531791080842313753621937758634622593500151680742718540588988982513301448309958000682216783570319714996786133914139364701908977749943953042322085774365344353183722622002837486092884910041349985523667183276114735342522144414138093313179551442014011827765202302782593388696817434153077425623056891743766756199887884928808564008731881075448589718349883616392217977243029279309275216985897526744803802187498283153097926855564004697670632226867736686375042794677454925950840128506366629806597138817832360177642787682680341324302102521761128055364552491097349844207990573020080327559529842631095559169621401770393861417543909139246951451545779949849034607530328740974316124678686814075508239751909985796446350764270283694053248699467816740182395154952129424879683146291217090181847861587875890951528672737641240905080544360659827112737622777061857419625592452846820103493951932727455423497250280401436130634867839642024743126332063001359247075582812126461952976723153650106461147809509062175940900634597577583208714698494395786833471772832654262661859439705717987678823318665715002265173145875808976437713232940972690820537085442325902253900193851911625875970459113318974550819268706278623282078837128223160735871623773251176539491668936367870792426824985654734597598267412772446141789937800930026830839386763164588182273709697471496306701622901798679253675732595015789563584606194751581175442715510812314008869053724876932179762138772941453330182532664335495809237042560395454052900426705567717841180867657701089656441858873703080683681751883676885584353747124232964554483568790025745343482173546845119317446421875916649294953890241811129891109717810610142108377689926297921715566225782022920373320964161768082773926953846414920591903636031097150887772937552727584388813124039822769320614401374527668223312237252144582560173076878565744245681488546928044050348642207398238698278596813090606251606115603171907971929122175216862439312774544865019863801095278917073712341129769614829960016114079197508951706907515517948908613042952135868394188581326100522638661955485356505419346144404553337117498736167517674257451546528849061867664859462280841178948085602271855407384510880975123636338661712570027533680740701559858152966995672425418351804105356393775222371880668332509731191958913894617228055593513445263899630216027001418367128656252323508889249740010070241044159665767677428045263918331098822060744714848534973947778139721005239144821103459396648237894577707294881380263987021254011514744850756724746488238062406199887620746186152449113742949923212332690541927563889494201865642623413983140977100802412844171092511489100311275103024446736799795825489919841481833665423023445143911000064741923077524657535517423164590113185359846588028865843567671186970249364699579959133695004358792441227762930482059262063078251282873037454364275794581794254116285259629337779690514547512717067204669477771124300600780723924983214630699076061020357076329830234863322238419342668860544629262175561521380204426778232449210833401799990485232519275140076222122501369985943321922599053302870674508660675034702129256723984013507344672442441423498548819956129799057151078856226073570938037696723658835254290127708901038167314024707708960196814961156554023860822793700068746993827421216854960681650397666857588625538985896782147938522795493064190808359731299033455553681844339661953324889548186695175129539062213942860624046544992952263661480816968044599315638568500366554890973994515057831184768264981857229708034816187458789517953354607489356242691149278715681649780898215339007683239768332236355905589496811706459983826626108382428835722028133046939145319370833628587235899763011368188402381502928125780165929781532888048482261094510624663011786828521726278500086716172039273251336424752011463466252167517762770066590353671536984598279325699984249919763142913273371062869382255146340024168787781594238733796196615493296132677204822920793167342788177090645482461238061954084229105425529596816420748191913531418703974178475572756703534942838155103352459173652214747621273925555772066408549173949209620041647782847796643865304823783624402297190335585499012779470606991985747093501369773152462491773740831337593071404413155772331998869117616309285721430559128453465126214727752237945318885211482493536170813066910977989155946074199503983541691671792116254592519436549290405789777420326920233902488071931654090288481368184614484643418157097490787745482905017550665845791320654059558059630939300422096616526740717794428601913289747595619348709161415216554246473373511407659575118040030625988652509506664844719832685463215929109431345221079677845865379425384035416001339832665779456209005234338750713697571884792515497043076656588608312630984804611213968606703378706603985928378735999944371681659221488943462215685186860568725148255657949076758648712081684730102815480317959185647149633982520029180852579019392375744476293039086259685919665893177337153678050000176622742546465403961848976695022719532320884265474288138670191450917995526205966127614316589361575441741466380002604020003975095697228995287350275247236966330342985008986152264738840385846310832206736474599132058240194938741322057560347218662190333044111061125381138024088195085458345647347059695571195149139101972732578404585495168111843219572324083110556234733681896674693626501328636414509284478008698493077746652776409643401674161253270326982471161075500089177440885434857088268815909706771914538405436498969497343430096730791963111298417935913791629674674591525740248716479629640731456260984797750362102940134132240967457823054542122834226823293985222148791658175008097751683045788156927600004671972074702647944189024619418402560023161182261677229156322075455833818932962873121006398574728175431691920086716606964356531339405126494698609540613117379957509664499985149386361379050160021366014477423334352650717379734717072486342365642203710199497454853280909806428159727451035088920054202671581708226616971266237627207821232985181835790525013092261690265809721883392710024268635512515022751529126915984387515375159096435881584854305375843821490037707852976381329620752864764664967673148470769862704622350477841280061468220800077042815668238325693746216897386629821320550152573991632943960317365437473894063521594259147978128399713404627540450172718620988799351127772152942068199422368077164168767718050560060100874694640304758432758541501465193856202671373975989474059205211525398173073262535036415142934476954150613293569087281385052163564324254841787429275542265267404570521036282596305706161550770101736782963667149268115954873253306468498214979051256133377646945181322384240292793944523403311615024422452746631463903258735270958539748909677796677325148052347568669586265000690889168656209596355478474054028348031811273296564987825224229495661358099046703862219590292870686433428177301081639366263680108130953206855861981477556280896212996836566202311428330089243164793970028596555259439259178683591743843955219197781988249545533617782302051749483667800928245366507401037277352937315400105310423500989691588599864560250924844589606291414339848717914153270405719594277189055951464948176377688640743548017037164550213122095603758939274386560994179948705522429268024932173843435927195490671839197361382706310838760193545964963112017127916009805277407075695385582958286028722571342049370358645334378953044456834048811014454672327277587520301647059898270564059679068394182316369030186346170254550215574267533304509030783004412500567997706021199276785591538142642255191874960257390532488325857106226743764898123727024758948937958510266296974208457019160399544883175054012832839796661644953060740205161282315273148024358878238574907302889437404441057606913737544249668597201114488261345491850646580507179623561030080840252715981439718348970949160758611541379427784282790793276899197483418295465483685873214297362117358318516723960153534674656283244035444812410475479361446643894743258377758774298723434575119879496994383874847756737897885659542783460952998841885218621478614359091178319632651192425917669178861830728311759729996418348996235351744320643330798924181167056574736405476223995017264895810979555488153813341900015655783222468329242686535760983875649207834997212466517007337091717518026835225725872994422965886888310265580757434155055896882731874817722271828803927990248944469420093309286941041125132316288408274483213691695021011173509618570800484232211723256647531884697766125604754178449537121932878440048460625380137135051194451291089770138716362444249626243116971101597264800811026811752898033399447926171222564759458966673969320121230816236536262621777600912421908395361454456967579835392542050076003866534149970401784909257701135562770201062797421337825431440557112767855209935091670404082592241833208422385881362933215814435844826180185863607606698812832031787662632321430539235507672330102701444094479946078829461320055152250113385665809377680571378935747065738741755823490160971368399302696321083872372900940914745976873036646632372394112915479028312059614726228175047455126955922043958605784435096132442450580129137738994642453588910669345693551540848999046836767531460490251874998244095912243572289644864627441413557916505489638660219131303100952262204762168786968232145835477654132692390891038564109045501293552378027714742960413364076258912204413583993668450799130604655192998362665078982990260438161314206287762394973075421264139008933743327889176734844683273073228620241726493927942013768808697618671748636072075323471424805889702495042548914996335819381117468121411723217928475774380263038430883184304046495048410325753700201472829999194548307673644446290928562556427011325472627475992872761204666362193577002802745698466405373700421384798400780163748299850114781499051553180407077914910668600123397566692011631303921476648728377796469991345213267149647333804001727635209273441444707957572233791330973939806668653604079739244307108535036855206747128544825027323406134092800896508349049341190402993760704037617405091878914191665913977480167475035265910624759601067193968856450693277380257882901953321551140863909024476784559425378595865858176147679495381500002977224210877887886111818551368633072339584003191158991084928830917741964377990682775901968840224540387587839187441934623657181109123126781943238386775885356095527673048168150551022180800403588135578006421395682697667513434033575584503264510165961553311310428657326843182575188009668613694573125036016107326429481193795590770829833391257007822413389191875300270681802415469306414996884107508596402655473657589417949672090136536348389792454977728833830484477296015056446742794076079489838292287892048826122373738808479585252609305697239245148942914824828679358111619663136065076814777551381141837235816475226635411532908168543624239205437583265779202812433182575115709487926332718204737758512812652610361186126337751234352432776954321032113562254417654617248929637000353691466561365904522587848255203858697420927574460640212370867439174676324917284997869388466067493026959889839376454735180506059055235292943289257633940944472871529705968997551890121409494177774497159318915442613350343702827400279789966507423263757192875347470819360297849558108433446445357830845587214743238541803400855181214137087117825744702694605397053962733160373209922982853279963792828092637420920981744491669571627132810593689118499151187527601329219769348176182268746589716441516818082468706646595526436798672606262971957265597686377214460761918408799511647482806948192834571694282359766541316403805945801932748928302646227077170058462286976477134983811199564949093900376000311986106620682898013143910737347871617116121192899677861024506114689381203037899300165441163435722504533490806654614949769429417507341338202941898674883766706628116745906713321269291951462558098668969764973714674625978501836659117990023151361362513485655181585179731989356981628376134291180039225676193104903899266182188724533234986148975949052784672751572503895322415292128351196564776466491749085655641926612534912744805998366065105697595490922613336392552948681456101373497100901455637288109292362219602173707390655517276275437351596556084842734084400419095697743888906896083573307689798657872252893032535467757247853878686429285144797453838208350293475335265610192361813801853486423524773852193815407702050108225850551804651128308959719576323510042188774129214177388031625278818822279589877288050913931664469990084325735413508873767568373196300710153477973586147050968139552108087582743891309516497914730370509687473102418911891205615725617453080217206871777748998841567318889909471292245609742250259821358276470440042381464819244300509452953510650503441328196822815454656086141048532472670169473949710071002476174102597784877794343676750123684330487535178386647470625436720274417916909821601784601325911247128650009226854116410867158344389499463400013252733422089853238408507018592216651591447143924711450133558526579746779790482213257878702149436214058404966231933235280908937624267184628717440052443277643083521264723211119925926063227707315195227367844227072360649889098989885246314807310826156588475011518475302337516086417070354636227764129509375229553396280819946455477362153277283109173340467922001617312306856488198419006325311874563313307022871281127042444063961574941405345355752561665831869818473131209256394987052019658555814689081425719537555018041766178061076897955384668302681489556692608665061292274408562963629607713990456617078736788144186983121369411534321180622220882077614762257506790308028436180488539216862518277217023907529548553298995097810949097107229629805894773124417562891915487412665034662962928293080206246185507826046769011555420248751372759540246058180221203432319107282427415504938085421917935807305259523547211266051931045773564840455117823120474764800667722576488316765711156814595357103833579852323467519533031674751445492373118429242537450763358643510865814376542066182253786577793756156243949973284623199774407343523586527235160853739910794348123456163493890052297194090010374063161654918625299548967678582740366160000534900427523839706376155716465108541970294784979313171349495799350279490446684659561926429150755902309333059425832649633549755907413325226520105579710613055624681553802146990760542184828514176588924094041925311691725497720942166348117203040504627012032945979890963407738991038377674121474081382412886264665634631742136410407497260962442717562772099327058205418971309413678571049364008274204626894434221900528853729435860032056190460589966048543878750420225988450224686728714842273914802218251711462291735487865688096498594695023756069394320192080323871187290558197272106843623135794808499625176513049669610059803617585834795200118778279715709891964827574908361002654828370874179503456778473154138888536653342060290119558269420425890961090689594347353686862727668229823155876817332258347735406060288506610623726976522479349172551426424486775246568417469259936262101933011178731500359629447466389800829399566683900405984037008547085702947583268378347884488475597928490069974662716204377934292250517525854999218161574732461111686326937162744780435223877037093126844242943556747512104868311006544188058762870765601773963885789132163374041533249486037282391103324697427542252537931485391036587447233342050895414645575724435749493324011251443570054840977249719729832443030807698999630608589613333550197070676116451217683835604653411105329550450577873684188047810468586689678994264576986179108116107623069586908670408385154636388422865135645166653021642500934511594524805314154079976588434789943215884180874813252550869346341078504318928116793349125599405612804594170540713837621039992315938848123456997718508828281850614131654130108522208728045303508912548091282529482568380290986652263816887820785279797930056267050047169203379048060213025788359723345549854748763226857720786645077686662924350888878560060915081399348285679127523340348996094671947362907418797288213345480930315514598675149233838126863176064324212962040622001409786074852144584956885867421651236540639808045265749509801561532390724846182874110873355439699058445813421856593574619735421892109366888782846162023834684728129837662298035319210112625427540809212207499642707424975709527047743815438744282472059625529275544191325652094966523313836112269555489339154741820718571823263597480441576333207911359135284835697636832262354026149169647830820932778041590640172319777312558860935162953436480464791164873347951008468106408108743583545151082866566265095288327316274706436974047970380246306813417738396985379068241854302373698414220541474196295249164749667838201661330397511382557527576410762732089662041844194985863030522548470563448801587223936869317444772150941155646626640351090185251216161678230090111981818988365407618384751547947297504789586291322323772775244366121898560447828462526230449231213818924948622256373164015753262114912541924160333978406810182784613785062857607854285803205377552026162441425648569190371542079551631361310344816643601676029583794610570422658912746687049380215966846073663449372435664483301207680100246039839049042603743313440983886042087544275285821563580900892144364593879217736595083521073369869244909824060549533512234724970193112340957481801583342526625717728922491848492050181570779536394227516094532269589550312650233929419007250867546921112190074262766338852190170670136566374101670771766179782570204710613479937448092098689995851706218488474371944268995731107902012449773006681779504863260729867037077587772751815366544170259727278370500720879745488154186870790119739292887563158457700068038551873138052272350531842041491639593932386831325735287869265743964646052638034848774422835094535687619435938064358282731962156181997339207790370068970616136315915043831758836031134548826081002373977725142849710070534966511235405080357582052213183115534471256890525652351516045879913300551437896295242909711636528654502672815843589282355766598212280459834527411342305714757379452891033131911676660773051427314410409980581153676621883116098225643565910149470573003859764899040907296691577826680970825087253713528957232251600474395723338030917369613568001461866623520479337631079906239599027771447721806812764831842542020719672602134522435948356623735776544134899785249159461849012086427568052821441132149142135246808028372531027245315497125016402852246501800217298918133986129062939491453144826318541714354932894977611324570919573269249559355125148913320081816284718143943702580205904900409083661713726978019981087162961507921504532575684074757135803362074860177085022002568351508081358705760336907418996124315572357610128387627771616104741381372509091524721156570136070304269471854871197637984467994731679865534591218936082272117972677663475774395226593706319131286614519842534709308777766747800692686928113136183543671306122587527190284653367861200924229177732883836986475727819171512923434382547264779472428382939040167621483932746955537796160045918376917128671966032459233174771371137390947196331601564169781966441352213840136508907702681988233685652594707830111233414012991255674224436507739776433009390125567502364111231757229758595211744530944909284827110763707825324227897614371518205385913725662927410951160625580832530115251524500102314574596873281556104279481920338751783867022931874369273515272472874595717640234375523919325712984417117667608809746587526131117688422244318606004915760920388311202439216999153828853094520365251467309006598751312576643705760996037771606374444211918904387539341957150493927053531083351789070845494299224679667835995551532242149862246921786095801186189676680479711621625309621765400004855653126623833943702687031898575987675676251585660941274424780468513673337551402087606730126695680651115016192268185234204093938456507996834068582793191520703294133624959834155219361624382803166995943503477908613042365961758538987616477662086999358776280768115068070365850966285518474259378356658730904576550842127531285434528631178801717740970248853505286367291108375643973297773258461202428342162707068045036244690628620653109403663158084835604696628408721447763447033057751797929833777300234192830952401362355604576281320058012813531768804901788096962707102660213026816496964649238535696369448282978945228447864028991359854432066829645935097030499263669928328593619860183303836678725757128597338807605393926917053702942084163263820853162636208568981343441258165733252742659039802985067527711156374585119085305324358544333280661539499040874114139518008078384574974846949382297861234257424569300137333123106512361925603856880410547860594992928335330082134711356869728153993687123348064555799610864331092554193106813547710179771288632549189219023442606427206554106488425278378236554617046519116935610249301257136113633422161567106542148591748492128706938588415854174760922366435721926920214741788608547540481935524818358138369219268222410534079047292480524104949163154906841754970196696982528439280976108364385389181466443135447263455301218630246333498235328754062271476922503987087829650003181667243601799596110909111319128086872166582579974481223408514973024262836315446719145845248445517004247318165103341745666443510844428649425692637487719982275442905327766737303643140388544213449591765434079753388234388260426141681423705604969164602794819732153070602293140554220391399810893768716795559109672067204756928120413666307019584350600860505427126475223258053077244483303309466813178374793240028706762337603303440924289897711701378928601496917118465441744251436113291938219643481078580910041385537269332391481994719020469586288436491610889806519808463323885191193301580757052847200000591332704951543684733325349073560494423714600140905562221010860905733848888030515815451324187598575079368050272523488533848445969043475812492184698379173024875710458297640608859244963598130093857439815167267961769689878051696281344463065214064329270963452471011308177858343289260490455727662668746975923527378768359295679891476138793990657791198604715792879512519094125316292161725797920681724878612033012937311991150584067059786357873734057470963869267472092737626676694740153538184373612464101657156415984734118236256946968444706835924933817148603901191056074985007468921297381644173403457304582824255842468433350805382606366369749056834283019780234566073322227539476358303895082222127884286729362288575327888794548669748726087585483184942148474293659265094287985979605395444407428948907068159591970208800747470110982939697383347218567198985005815000084874344163864468388289837271384481360269434984439424309551378654331326891224179355132649837683513527854535581560831056826988189111352133648313956464413394788891519524762983487815091922040787424963261163888981478385399542944123977759626968970108901456927047868142028030505523592196353052232545038617377920007479526817376267881569154109620405597629339393494449527212062279464241747909615848334773168416905990573907588771174522431246257498267285259568600862986311290026716215240851012617677973107979225353347155941301370767312942524012913290414312202994760818587438881651845682216849142293843696579232861379731010595337506356680129141534572850825219782205263279449049559845608430099925291678067614097854728294520425182031764273927973760517175885480743235205342157965264031069051646572556348222432927375740737543604639766987238437210439575176179275397832537336805319754259919862235302230830027195240349819342366470042478408901101063071140401164901873879261704906581927340774243748499961072060728186521465592436396388869601863174525954899174849292057980915880584531217783646053460707688426228204132179588579549293878867624787372690459689396922456039551824848480441058655150289326622749036132753513454381652622446790359268793003313243965686704291084145972527568771626416741190220439403476045726029439778765488008406606136459345138132159227194444674814957010310165323316048465474241115620557516419141969707864239653788989026756376724820887095455462866155047194815376279454773573500562089354224954745714386305117664689104313398144375858137697820218916098583331675951996556196974316687536841155435863097753569893699780328219815933034936729508477375562205886065028771421708965134620911486963699897610710734700468558885908955879047404530098166102599552707330524534640490465507820273646905088307665397129991332043810153949025126550440756442994319792027182355586020613290836269589152210009961373067976873229607765377242857162920599392804827595963388609193195873825255421707439085517440713386353029987526946239808308389341264771152609487337776896335244141268687967714495092242808453321713697463079588816182954678570720731041624478473206813405489189899202107460528571725336393825023227868643326832273222677446805973508175911515094317923718416929212939034232748313618287780282790437309889196883607314486579537881629619586720817067743081625708842438188287226100965382909663105039190919190250188762482718951564392212943151317837159881290242157077737993341676723568809773768244941211027305615959754131233322558235657797324973174817772166390909347984293457886945959545986143851946552856360497634686159195640975034157261196084524470585143197389886227853316091490045055560082500615563342241730745712330822289419812934401284800668993128854255885934983353078597041800105356548120526533001190492203019683868580209114277782922614630009042853073247004921875193176141458313995256022117684139278077922854429089051376956513411334755671642919693495575361373528830567439063434347771416946308741866149884830817590731024920035437087931798866407598480460884769937627918338290861489898833764438183447531151331751387132843922884156792744040674610970750927140914454910436543728974536888787982885115006523590766570557866694799940355141385944444456646860851195952225913267834345806747998172573924291885406082053934969945954800717515176189340958692798751917598187757452164245543793818423321657827813290656223908623449976906839064715637642198226088627445223094813903509409388255178966709486241541964061019755563126422678499673963872300039504735063990749563411390373298131398890767088164696529348332256557997932700519088919513469977490086849457103634296263532773437610776918258017746602824465604609452804596781060643382903516049719692052134781149392023152791758064999779497069180712967838957875709519526180681077770501115700495046968527343661090166620960929632664356631064737726157285973871878272734232348527682404491849837159110385538814728438885860536720823184504184358119588699453604317426765463695397637126635490820504691896764084090909916242512824657883140506391789937319971587571370464297039454048524341177341829682831035205845465744740509359087272615164335637559701762176827622967144960106907261004082429480277082919224640199675660618243875822721602593084647955439822662108078373119267676253697918444980657577334922129458446223521172869381524769585132870973549597778906673158631487335727959236099968649773831764844482132944231146334915651281343221322704582676439365263888719486761425526252980232408069926267901925214719243175510248466641679230592318443509864057300178397516388285542550634317625239426686580873030230734494413580940095493850327386438183319143561634478093006615002903098569556297161131406818732647358603958800533104143785595619285844279928887483042740953659866708125180507894685691057573317946020985418190231485088402318163047042065670248164634433556822616258926306811834878037589250702854449315244832965873335403004055748932403793636227803996518437554982583702449236158448782305891598884567359643434899546211944911670122285023763216184566398886883211636292887108196297490854042865414703603685396246446781413662394901079654017647002111360027015846744634256992367808661349738422743129156285620448105685132928965265397634966474623291792148249366048416660751599878548223592899693879089111938566036517093665552191731147700074511526995630064915331203057146192758573579158232429520435088748151401539911463657537681171912441471238878804778508651406808478740684115187362720607188317306784552649949310070207839676009140942404314003656001995244313422791091621057522967814279480886566629515909257122031717999690228548317943496593530133326907471884953278099100605834251758860634292275100922983535285517100325147275100225183714997252289838667988933122144911605890078101845331558867986307423261806932667262323272496824364267435532261557096095826656351262077391786743680269752181775642450775459436803680894571034521172886433272497147808873849812774021715765242872122808855724403474833606549655332913932977081351526122308603902322398623318512747944724749739116660622270819153661213481849608347642761116995030826830157878783499870236621161824558108039945850673198911982900369557670151331689577341129899181671586301256789058739702323148380207427267733089882696022815757447718430459118198769521683998434832633536154990491257926766704625727495109732227586577967810712975601198368636576811537498458268401573777581125206640501337266061376499894849345796433735954571053956231941963021257068184807263710781351243814454502819795958924703117614781971344818815717564733576992087792597699980938211055588502073036000884226900544301561082360666647079849234957947448600161011232073877665244640945422459252252789682929583422559687653764611329194566760487181896281884837251533141577296789112646579368413733803203337951179879685120411833214167630835066301186800830815619603266250152046793514920206010671721178289050065780323576714340203335787943844489909306081638603625834054122997094704764837286774556501295945885194708744483003152893176918237104498903584790589932898965446758196592140628274990891921345617458959447994597940119413641051400489567222498422086303897750878158565451393655523148185826428871549109527792081389800600879016106975851599975360889954336501841587425797689903927670739571869254217301930242209477384067577407394247316574099599838378435161089560120829076933492273173815065153973432179679892328433077023584303731547668088653340356185466979190214756236083468752417521144209698569544488498989240806420763699714619658469828585261752736532197636558864835763045062293317954648290297439763632751531856443460471098793500854983308364478271993296474202963498589326983499950174837918948615244522064425873686983599065281526404252655606258563524630220892952017662870345199996447279240715069246989996049294082813602898891049535135178993264841592006435508178661857455220489350549849561670028667447922124734523262639707775470365746362144571810426678651099451673315416370624397725713720882052046675508770467334832871053338425213465617532687456570454895687101501592862830209871687425344731404476817526885323568236637869861515776381244018566741053603337199466631705906182337992820243240970753569486705390388526209093899967697045982314796701111174350956332811314895399315542313299020422864668776102057685680526524029159707327792857772900905485907479514678403829284907124120540744786965273398860219233199594782573235641162155879375116477061546249328335743789700591295319387915559572767334350281860868460783463464086102110382760199295327875946722244800256587088977232616431458236153833697115622769377954373888825039714354693032454410526904371504518783131023393033380002398878117997648287568270793221596270909766038524272407687379106184396963848686365466990457864844598141730983045566724302824674799252222135048002998319610287378562282204906790272178763985724691260515817747559697881263058597689408015027603031213233580450242005602346002683149123917686050059513165689484523795245886494658877027711107083386515110609334646280273537224776441999647323298941976458177758676930013246098942848513884689139461930930892028080296802551394828815406842001387778977086214289965350538243748054260928746754865231421209168825500258084872049775934019236686333269824047694715358774687627854126737216279929510435939777771421806845208983811320016818402167989428610903922961338313021048007683550834452672100510728558336282727899197247890575901274253754728458356955064280447178176270487123950145466600104606172684769465182490136085239264522619324075251720795125104902969183877957666776048464125434948346280897663215515535513950873246104997133017448995342537650810339634324083152792490991758511299686923431097075851943674047308097621125774315769455053743973887959329896811879959480840399290698380031734862677705590260314092518683903050923441915725307243334858038115332440526450850008585351618794007412856967217609032655082435187178086242374889350470890311010517436686196144134299027431932239862262341093455520321064480387680992903632961220154353549750513939894123965123019429971841789741830382456355154232991468594341242859174502323695705332667761591181716522422206977375314717615476356256934193119693115837832120625695104829298897297957254750821778906115427882654224893144569729977793940453769893152794260897842907798265527582316946216203565803859679916332118256801857979496509664742910163379104918564909492657426062086600204819934364019672939793981915852311785962643324955637203497288008220426893453763406715323352394961562435187874865093047011795834839188010735293809534594182872725665613102096245465815840752596713072714704932496890444009313227621577776124665944519334045874084535611888589265636671176038216157134672075518949817388181709392852549984249374379600836496927348127127876287996962818778254043852876643243469351788247315231548789302000456001745853419992411797512490481499804933401476582576898988965258030446059798897676491806691921714337354391414773237672506629043267976840731694927097157739935407983271043046670361549500231194593764928880115219047649676427219722877340247210493392004180539986865815072968676925228043806404350733217242682926447327647591687430780573293604527417650347403543950139599594453924795397850163505935098610667394956952272277975108229719532949117648786039443946907127706385669991783270152584931788203107970293351038878888446377992117928687903320491297292686560333629092300203314019015791763052082229484191403340459746591351245962817096166438406281314729901162876742595611967267958004070942560802647584553234723757733910772798096383110077993289255738234419786082738011434662382311808538901849995888200658839088866180448148076988367872288162366151935489635050313212993812765677961762336928606477690207322011244277230553335841852309627465329594202098279577901099293135451704083095133832687086768968253231543197571524549735298499963736922868122561314339925465515675123831593965648948627031050314443626736334121886910276523019024771328157461289505432068577819154001742213163747431041594679600975833809151559831529156949232194658333936569689363565058282220778129874393385977375064641833525491691338844153249244224804568178933859185444411789351770669335981717092407915484201151295336149005743659891914360648195409536255074361033779166487175536268541850831977865118420419555470933955772823467059867862486184788180783392224063725000219484843957824814677079751504187209616225345664274764377407209111973508325224877395760938961822887857582672689728254421322620045559849085376565809719300090828754396317052864133902420023510545576609153366648389356445531248952986754490449597065782275705460446233558692058045775681548138644158961907068604798844486253189913288696898031970289291958093979223066137571784367424593608839481905954686742002707607135922440883904053777025397955613348001569255873726964148842105348340795088656310285409860566896228301942859637315039716454879430079503512786248627060527678212517744922991078131645953795471517093169235697914651023688953859312610253174437531906969014083915441661396361195048638233127839263653810549106505264492487817309212650693279391888466064927434391590637674016569552597420061559972733413836938795321297474437976127117891001892312699104785773557493930136421795021101557785795080189000686513490158560353809958058446838433238203593358249176041997070992903198276969337775755928542203796985560482907937310799556197320174783935722643271974932478779829080235990065406871491226383620286116160469128887099163924341657366493473748326217638380947786116689438191874696405558910463221661597525351456169542813352759732683689389530572503773552952935784750259546759877660490504358561607096514702232300237488862551800754885098004245120649418765148183019012483361658942289600891147130263441535179884259711850951794930819926867643335604758946333427509516122853259899497142196994042734567559021966977528526733327462021253150214703363189602254436796099125570548750266563956527025751216789900970191126073186985445936477356496539708577005179714491310685372036457556253376184170003819320650549674743715761414754305612813641391002301281134880052522134432917072401969625638904891871026687939836087391241682273926266646329188673962732538644556047971259707022261823701846280039913361604994207605217743794337229809332794548327025502078727878355068700567835832668543537787249449660926374763432797953926552316913461040781818983892877204871730463693580448403781455553348708207845753907813672791804014149606678434262606741372759210869616040360628814945855248957487530422100845825348556290977109201675039613777121629050648795948870746733904566857609575001637125345144102898061868293897906890900634966197787622666685004180780868538065787776738630602892360030873208511875237375991401904449635837036656443934424793839185081368313115596240764822755088016699781701046891792359965318625780405975889974141235617399273398778613423097587963666461346086657850218190429296926542115115526228853448707295181893594570757962612376704487067542127389704250878393966987045902290503765409377377191788449310365859276555222040164523881672128760619337366993321285069762937090511281596824061318237973512391488468061033963433189581022742820027534095717182796066381093302945760513403936747632431542554906116629690292686647682527143818163740246287565925238048333226107227957654230706011662120277689857639824236733734485776021956207947943153080036060467431583621925094135218316511840759422729632780039580363806945252924924092617073102755576931238312174511722394505530704858161538791214332098284088356509221234754741626221775813917990083097642155014713380031753298727618978081596547571501243859512203932888881127702677023583833742046102225713695770933879202471145751356088730151449703153874179328428434256872374685366293983254326846264183374306669934399690638827735260774290248887179074343581228470835680054784011287269796749140244654342943693493263753201450731477117753765748903182670646827677702225209730149600577305673530285233577419194576473781247474925724917517178218258385846550496848329206492632882415534889196262007142660317269233491152596125072348656300300976316713271560021056033494793856555997403510591587807751352812944023286201111773506723836484694473755023532709330948546943003856782854919127393292043100446927095997601973258471450274435762258328738861425159019752876745862631734002855133755356902919572652401926407721734373790838154597346030076913196566434395440623397710319215132387368977462186660752645055097339760207415262538095816672436417719430784260072274642404195471884668807165675061586121595365774684915211371476396648925909071382467990922719184693212861334992493025086744760253290503404124942905906461111812471902216933474667029946928529345125329730860524501871800831650080901870002989058705334139441388969070187476945678660622372746094278630668526077090305142058396809202766101386176034841224558352713649157709883749047617929451534850218752084396769965906827370618138696439552885637039250663434972323716557641712095500987739300365945490745601582411310629607109849015705640375669366359242589280440117094817765770062123083072890148196850261594224087809036145144688064887283034144174027787935548828077673707707429335699408508677048977664771389861085059538328642008340655877212136934811100954224558347644669142584761461428597904729447306792683028154773040240177139084733303155609931247975421959261962081257895540112470197395183181444721621230578769949298460752770621540096501298222200805602590118977521157351894529898146478086489814083836279541460914441673783192490023224544145775435584185469094596374195322073317234376297526753616782618502902576279782825631558936875807344765285812233416316752812488884873007213679834942045621854913693772477666223945519872788997299839342945236135005293262624577596138169526336726455962061639596038727136126174055621230547434807062107101049958971573048053545654030357866925696631650810398232682002055312867675176524593859938440159086668499462917293504538457718249832610780480133882751550444085583129241236345627099769241846406535176589230675659709599946814566650226121793749940847126914667004200445141713310020537069526018663793603002614745390822116163852097114815408503239241224368652698065348995976734746290678644618728489628616766330415264906589815580716839416534867848562250600213759142852985845161633390372669043474509501564817264464515301534867306987462177469373276876769585086733698780423850131289583102703548003219224444553979199994836388945176972184805660904491403477674391622584249004096780075878087418927084191095313108654079674390479486774616977246483629386151379911870647053570909198520548540905337162070970440313983801614003312046086619876598523158014485647728254594173264945947213109971177255965263223651918176743233344774893767018182820162407125551461645150165487333949027692589466351780966663513395586254097424211871708138499313525998829455068212051057778313669152016926010794827804959917545816935951877585734072174051468592928942954932354359369383075712682708027423927671991062089166053405435338267007841950099799563627663757516216922357452203506829410884185875843107413369583418688717081029418910557097769892453431296092854797974949956690781048682739019422704497483414642413317253786006827042440756553942555909061504976475012901412243386312572358357893130750133790155045072384007578817789735870705990683375969768861665488204654148421975806637783891921878450341886345718214525829663437753848685863186963214564093389169482877314581091371045584663221507644401720677924831881769227547152606634423255986181365360347913025716582519506695273805098619333434312801621769568865919706787504132402747575674502318492158627111230089217804139558192488618240446981370994257644751318544187961497960868732221861678254214251993554746454763329300085943609717649748206559344101028314891975569675898998744819252380253023367509990196423593330962796221375445958708266256897831380630786065185093966715906102174799214174047029552824773397698488883442082717120930984514884137319080649672033208185153768988776604856730575714672739002367805494917125470014341737104017622995086841665491081184642016058810835278453029274600153310535589899350152084672500982241923669811280632334272238095369969016550030769965410611236652689404320527749946798093204394680419484322942887641142120045227737200090088492312775028121251197712808692314189983027039019807946059133614480617577991362137575809874120446035554089493203181622343639303635319632091851548271810159942891181969165432225117414179648061795065186139599279245768224818977894625889103975967295448718305512451966209440433178887495664665056346077121044598105619807591425323195777824703515310876177783509420530414728001714379375017801498474190159658001448255517161862295734622606423921092928052918588710285940625789736283747329690700385269746914249629664099430195671469072033307419361366901637369312467615337347639861397214241297934432615404192126711508930368627341052699088856868420124371729484561167544241401258266376396462743834340170394048993175873448053516822007216457778392059839838864037754661658581405545430115443758981513421389357762017224598782797453824298792892875882481844270690671925333172216322222356047712631780220070011897773026377225753901069182535736103399580047201304260080289899707117947593518363866252651022949509575118942353170382763080167997548508910882026374551473565651480004007237229278930174471003211047833983390054953893108193840678490284916100791700178420336761009413887935722908857005158431219681682795005332599707478634659587460936030236654361027046826038988303196605808899095295504588716160875797928195701669494870348603636853840587611118713778296269618111909258228398412042633009547722549026994549934989977603504307768389362543793419039420778137343549000483529696366188660860682108174357217084814359336581490903148830216895617785836227061115781016632789696362971690364321948103873136342495557829795256105994978892999819487672126851161046777975215312434640844982990800085057713103189017081622294207091993589050881367973161215810827102845260007068858296966921062317153320047075361568635576047670821922170055151771591678161692577539907826420150230442458097952137669938251196695675880134612476684805713221450378116517863781770095929848311493864443024432043255856558948040485659636672642745157592552356021664579116274262984431755544747107894962677084793010887273117184165172304456532561329373776469053710099484820057962161012950473390682543165185659083870737973510457647960149831813609925618319918829588151708934075578703569247922945861776137848955047703533757090833588760193709407814562750001469877450626947022253696530627685440296216811236389744768572241169213113672075761595591919763045909175405998211954885410729360981302055842798170709463945446314603963585357076615246431588032811607374194236028339776774311128781636760934857648748785481219327946555002165608310486612094655841265322294839818986267437127542085113841728137845627319441524075075195023180686900973389699476334202076451452343338382975584228022700037394347355298414669487448246454683537931642830565239913001216452548356383433561491033156801850191658518241834796621114134772986610263406949595745129738514994163710673263182351132967324542606435788657891143183723763476267637703876264008726673462392864842761175805077284019380282857109781614632352017590541995340249151170106158640233580102460811174456505311005199989409645564596146271121960826670737881196565390156980526245461606625959997836554195247868309621615813804536161156311768874467420051965789316840871294433553818283562617786228388263114910622010538693025223762743739909394070087837861675546648077082016500435316784379107597629646953387097972842529984818518759338882921255219535489227669679752893158327811639022747378226084909368927018847006762784067705801703113444114440507729340231401274930978323416486445453295944201508188543215243454268168827180088334409815974024783733592937826405125509616217029663257745749274947762209138499123480032042115811907824429046195722124825706691356199717990532358715558613433929923061947198823025814197795412382342870973839471553365563191744749504920280539592337349573049865282799316777291169170036083055418302705852492285163785591800425882417985346714710099927179036301509288330234988860654646546080634582260994909844316496496850377663319956180821935743814417812655340467241690286514033992688522955543687274639567920195065359371578544937238234202634060008789082809594564465575647834428440038662489129538794232053497537255145314751672158226237227787972649319337899963095695803487424939123238747409821103773959843223278440595949510702507476927234162935967239786412730287525300065844310288098580316759411152364196844983624968967569532616582903390369964129228894509665804095682753411612559661997701310741929200846751658417685358167573521173695830850305611808178344045581603351116648022544484998549903762184481009025060932691006554499999272598376238697547619000160824693518183538052954929792685202923502734588811831792383927749231490928381036843548738928509428713278998030463568830427809452841670784292078027179591191866962477408288444020881982664000600414349939106985753866800441063331599935046630511239545156324603956822674505911317202779356130456900273885581347234356080278671962457346896762385516051261547689960868545939085133944809327933736119601393553482831601278861340430429945991366877692852152964408711752886354614568924463713776754453928524452230220600080870121970653762068290360667378293198372710140165511776718376513690937532881323056659005663204570926318147066975482574962828336853681387863654802587289192519573986182896837222574627586600368517611566675612180914824217816094057039353215829350722638165719617464356260887462206862744602739919464559795378353326149293867457104891789191302677882939784492628749903713790916190990415264694463022018459715750212424995676153429499751778193153240376323705280672582435218761503944744334287363798101997302263278928548053974340402571649372661182016503336724961298092340452453351219275228825415594581087661568131748996190799861556348110087852618304007152522424538198777265055439518012192573613232732283354075132155019775798569724104733298662059972114051226343793766590032517376416678341946219329631633914767676588262155066467405576833120633581111380139564912053612359145010206078654930750051639392768865903108043362213605010995710397042250957204835811897208960383551062661957598095239798580829355876240164546010360442980229021246507351961488759091287172749150829875277993614411389633369999494689625049428314540538639221034253335698169220820287399047419646806427708436156304635236927495143162049687830800982750350177900533751125299372912645866713816058553692800411858086845349266459542543032864643389809014140041193328091862064686673221200623794959371691753964186881631537128418880115902854261542503545853521018331302205285580984678032536461608344335250038404536525448599188469435244473491051178017161715459080140353876944579590170529755782591437002548572310885034737480397780579047135357205451087994490848523732776050522158192898103014447584906136314830184429106285153224162327247029951047712191144982888397735427118469371483467775039143724151997763386985115624201836426267007469092136341678693610288914965638543321577311662776283153748389699269712197506397264939185805939888121793055103076809303469025155501888097140113037750978725410052791445597262699254601129558259727077426432092145631665984257292300546986570489884086688360553973905300504087685448134598098334553955364671561039784682743676949430552742263078907784638049113333956358339876600262088454056928426545420506782495870800355542280794022422944020474196573621510721115811924468884913704581684747521368699288735846852019795040749995799699866982032540196916690402625814924483803403487110009214001700322957058848843192106115931237072365700088382708225399203990929798529527403314728644969518396534617531698878893982401902884327148047344140423934753514510253542290875622331532721723778842560216107861663129023531932245422648141446743890432133218444355188722948332627172560186828970290536647154160618372229642327307471320719462050457400804306319524114777887679357883828758891592051641600715294552337144056815194360995969008826854228857730287725997582865286374014394049701896338399949859339012577258788502251499047878620657669999873785530466547519510737218709600895916727790086542509743196655433612229968878848346469035796033402804948447599610505866058789773578369122879832487384887213250249708256126534672035183752075578043118041324363575810573194741970060174566790453967253097055179467326002488960802998205446279322404089430590157610666484311661008113882402315274597197271616526628996258196165786338263335250922029293447583785447082460568346542028644780315218205968798063623881709879326702692929681505529031651847017483491843533508929837560376017720142196866351370991021827017152430959479268500468501858047425839120003764986331378078616010579525740231127942365561689411276869497239371383324873805982831136692988414538375257083894848856497670371617547138903767009419625121917243745661805228986603603130290697087188336165820699636750657320901284285714200117732526746551420176626999154966679040415328608672661096903358289403605035472687153433618355066312589938893471860903070528975516774935969365395321231142944576207538443751041509647513240318240170321902474662339251155526104602454150581555645721323610786169919288867363851441148181031480054176201321072135156353364500322892307005072815483715277784859589899240627074592759614005559430070426819308580744895152633382158949640112846011349072748349560867231865078062778180400629415012313900220160133932768422657535007717521573400786450382682420384469109238036917243038361702469826094182448239568045321403809937233006953420340845040290063644194825958057370286922182162966488161386334115266847355689821242535143466643133554025798421563037635412074166444729032035508721021982594004905788340364432811354975056354468899404510443805708760080638375668715346902771292599991467745049721524101042169239572042882338061033427313334137715741933693238344291075554167626158930739846450979866427209893808839975013541479554549293767245454112596394506508889423052224601161888517175826200571088479267574996167077991075538337442614996112056643495797582926613287615223213800372585834141603490610545520883552450844249563733512168404951130053081473677131956369068909290129332756195295040450643445474078909643360448832627119179592602014917774928242753538988559473558646041261328832185331019669498058924005343428874190897057667258910359143602772984818846801628135866213450033096873533805797099929025736054996844898166057262117394490006412339414440140497081066265028021751058950026001624355505601416146179343839497017237671662544014244469918770471744991453490524022080811142202268839660476592841515789398148521035657559175235388173755807530336327070483935870635977044342888704541056601514916053473097937336520868483700653463171980525938403398017475141390814837653260484828726186614484149906109849508140465036234571718551592220184419909177286534908730849438035796492326481238790178569243810745239562192086821323813837654093390716242259944772784843209708113911282457439643998581610297001195587217701144963321150039113912174269042316081189581600879521384669450412512417960297980064230908854391044554655290751972864443653977068832785468653591833386529498144500695618496798993418540841782024110033695391412265687799862724422859930151639435346762548614573850730035082058154989801188865433654628919620887665703751735973677704129569314853168327246020719709226446304703549620537423597858847582678085127001773879710813462009662485381150732840245393171496284770858257145744933248988561886456488549152749898978405886246820963202134311828451019577408993957517419111705660876892076080873187864632589144811792927326830831581309127780606253186752232713956590218403397439139685759457088627065511778584896135067683327728218868134128503555196927149587911563643210685996380840130019168333249441645535084919128094636984431363654894716900390370805294357553766938663991826908834410971306526471689211627435853600982008496684270060644164389350595017381634913292335961309493364473870311686984211293726974999534948180907203234267705263581069400670914595364640225622386422327996055486830516459291267600698652004704972611065465179651692013304211388753564192853831078187592309461948730779367198927756600853200050946240806016838769515375160679008015653711734299629517891161057862222609586954842870521593104703287596913460590883719432603855098645609097359022214582244334095716179143814480596512153006191151025282359308452337519083001031822318769595507767548067835855947190990714545400957565743034272527820314863382723513569358647583408071671145561349594869348557191782128076040522182331069633777270711298784258900732036268768967516224615457871297961935590570519353896726589504116019930745123459883288987101154025033978797110187836192893858220158467910462338490906638346876114831835686724060915310426151998364698603505502404064597793055914527106825012017236461559457311777989862084341228699784166212448189098755595442611520046602494492955987763293970751018373763484758137745773738801142274047640514884983543572040336938429250222130602465578414371539136504743030230939967526038122799514042364933778276962913510035001343119386854410417100360654768920048063170653097728826092897258775971983638710419233920098994091272554965438635491210603317979368184213461289406981962413558563383388323145863657681117997583831730806377693051892360336202457787741809453446183625349044689953523582594521955611122593590424431598612317387502554970194700995649324830879438022191467399745363028703196703932675672723239446877343812894154051631165135796652385067658460074353409554729409261603150219409900855411285534413127282531570810325744873641869618141583121180392057716110498800104556229125248585286808321580221715772623858328892571546500084863730653317646457676801795673781317390246370789934894233336208385339504954082109106582352608291817656492504503346709320282528027274937950345854889181975273998161376033969770449458869675155797162283267219288736248195610565162218160773217243271975167891354320299503837190852817638501604483417016048904647157414212204984749453316634649896600119407354769259254334970056199634440032223013386201585809289487186662240011112894889479558816959785032783137530845809265489716169427545056086023982963711700079694418039258742255514563743565947480110414889650986109846175772684274678325453359744541549335006049182522925654382025507212940430363378299760238420434784262349824995689455611231880200748980859507412343801133955816157854393901488393562250869283385808230953101254848227585310613607584046912860917819149073427506164451984782713338587088366926457618337059282274537249167849282526609755529456257686851794895548230743533461501698190813475728514986889323191776995275399829950200467171555920003922503099367526712235952436261064222873431007251085045109533299610619486433439276202635928923544009574621094825405670662965489056086704573297214393750738879099118730400888106508490260967539529794439552108750861687340878948124694292198324962937064882851290060423322124958068324434980208300689335494645516619766581203130760350895674268310279855901055317410813342449938618376734879814994326301930620040738502816957795412488382934299732264362830412967363799646969189583969609662141193213240219965101665230277103159252186089706197257750579284799843107878141244272300113505972260153534584383345322156803991726279560235951071690227129486587364459278587180963281973613660701324912644036608498255489403917313261973622197004941024891370602209305023847570033797718630359552699229743709779459121470739329244228636834137798475124748588466384603042223963945474306145883825977724306227212158895719929818795881343595190691475052974647761309954852976920850811012542764115843443533181254227409686179083019829745393393797811604958474130662106290648198927205514456771735190266162883627069495269512104179361899443910624069201743922145677935954968368910107260671186318913771610452490271397390035017226952867338689373563917683634304636153176342983334513134789606404422405613467952958489394946889138693756154199242018561958287549504239573815651316175466939637286473042701222276707605028255634558116380754033190458864399048037487041809293145231118665782263423084768807226684791138691157063088259499095584386673558213336063687677805469562165661508902875037429717498476113111334161229481469376620930112338837454825091751047657714573866061849194981400489928374052832388281011379196073158919872568282594261251843786128644347988799526275943873940701788038861856460610860649658426721928381596459123425447178696051086249864971105765305593018967474995171698183347936106071983208338112207553287675915924868565655087230270395146619391777509686263046674413787526236795608102673575086792420893682746340174680533802498543778341589574489340732545609907663835956744798668222333344171636742921887529491678507325453036914942787095244546249608530753028989741520486242785371796093473804738791376731504359581274018878866405585611723756776997688931844024363834027754577904542432571957306462133337274911549023746707353249935147750045844613518244432790226603041296648366686253894728067711842964605455942712703930855414944786237764228369307467318753914505411243365923280440940595636806137077700311230586671760139225761270235821372319257320751570280334853735283032739117751282830893756717642205844030566907151199692213350648885902897789228148550150336175993054413213116524730841724045819546651405840218821050251994195897946180693145370881812676779263966694065824127033399256329630655731234998262388267513908630438547680133321748546620659553920099155638468764587926459500041127407465799473464066035289540700810553733736580586507127405047220730159544630974023816608943409350027133852648783776112950883460247992490477948476936554889219813237542080498275256168231424198468165209757095654601961863886551940385307754226839442018863364597668151062010936368524706998364601043144288126417832642728255055130971201707939948649041314354255333091808667594080550314534687315960952820512723006566134121525270680631756330901338080989038802711357715973282329557028022566675829891927571040660072212748042315220795820426767026869416946657726573366480060256325924140115268606926938043189939592378481781624869310558794155210354434008722616918396699321895113698282363335062224234269835329035643697680837880056136403692586111610681283255634549343106259363086460076271584194267083702381338357567013445105757614518883398362545251750543886135882659057990538338698658777014394025695362604233950912410590140424313211859632137082460557011061696279701584607065120117914993163133769913810390755015116135805378695827134157034511431439184727733735226974550892943117971827685685042291149263008429723027070239596066582960177812081507205147065301069787625038802248220009764316783165915594771819179494852427626888105497977574155671951383554621358682145876433504272041646100020129479667268753729243243069716328985964300572188793756359279534001707489001186402549575967961572175134053666022797692447619204217297740254929545924149800497641746923943796189860992746524975602973125916400782168817662478913082080582726692653044808936864148681720849602462372603542287681826817339324884845234207271660191187899962023294083208246346336314089982554209164954960129910110962485503640945555101671444944774264310271750773933122166604409365796318149178610540301029153145340079577560862693378074045003507428909810178353479409557812104473887310609464147014601842330128477149221171631834963164465594250558961857063197200791529506705850927832791538760956119408517917396493816284293774681157869387957295966324297075266553606138482667361765759296126286935326370324728602807772699406920536074834627008063731172294204259207670885774252475831886704198353022604908071961456387811817033554477893304149949222635291893636731835238044812727443022581409970608755217460732324138257914155539630776285217800231246524226387959967912919292648174947694423857555216978879882408769183932871789114120179622793472810721486523552951417474359463230170487999932460882262514557126026326432058991341665163071182902543836200267083508741655011033758270381452872900684171755124595847463331076088886370905591010746852723217090693584605423593677108808313241671930155718841990921157873793921705345061650141215543002179520861460747179576143064487735273711807420127493024913728630254140816615766130883074734593671574797052260309686995152790771975818235217492236450439402381766174397123500940781932561217143350827672314253720893467251588577382622452101676517829795590716402431706783109710809538924413328191826689808836978478413966034345135697621224486459938236315131423038636011437953209396175476740158134133149697465297311446671230986781376528017065191501850644825184525557520742697318663240807525035433478842017899266832364105085514699761299099675962341554656280944746650054599069256373913053566128225056955579187212971301051038199055769472276315270749323711407511199518381166175327306214860159926331394339202042585673478744290841375478381977589712686126961065131885589830438428753055809817357725908238422351937227891443610481259321116955258689424101986191659941238332169939601024744441542559083512517685077194310614569019972461972319900433133522946441582702337188727989347933110685924795642507878059130798018178021084238750134664180647151406668280849862658740473304359847414513112943561312142518615393362304773898417164380118029430691297809417634510513843238236600031728756423132817492713827653320924895850303492629356185625528538262130171226726017972542374141490315576442441249014350502953628786310726189654621089275034776126600819932942917824252360686434018690561750716030773676951607260708418831454134293629542760870439588385547902529120635111060665196785315587055835095004371028100657232845520491742800793036632771548953515492137766105945676722840600581555760492951564925624953551842829749973137372803906587885033007123872909377377096968750037509505377265931976285955178151220015395528588061018489997352902532128013648458113599387238762374571707801664989639520485095827681374735395589990677493489809352577531116757396360658475317335016597038706183491131365058267709747423459248891075145006045791179554700604406645872781334867207817517115454430652650088497887630553118389375431879376095214342580976431152601016760436254356202630981362809397571457652902444870557951429167855436152888580885680398405954359173091465348979613296919131967034013403407205650567097220995488089263363528033925137056031843856550284069982119824654737813490589413214915138606344447981988400088682476269918413565285224619506033619499531449155095614398078642031392378448595632648313762064482858791144532734091655416804582369505044592066088451448504380123357809704809991200628202102021813659497882190964645090831058470115407918383989533975027538673538113464049704542850844533828157036789608983615193150238901334156321450519550777938425607498287498761894506435649558088258272068854372015918717976120753767297113104334494082759972618412122051399346476149025036448229039086432476069071197299143790650197113149826311564077528855938642111817745262969040134457973638468491500054721911046584591438872974061585555636186938922360584788852486840250731024940222619453765404368306229553412680872311392348814627496683186388368723589282644022878969572268464128953292865790979946716354713750698493303850075140793102937400550413128229530161519007933912590825883087793491523613489953816091179566143441047939304790273897690732610062385212387185118090903515339048738130683605440819416716472649088235978635284620331363656472613650950788073460092043274072499060931751967670849316298937219005498943943621853589749416067043916667269331004363788137954770594439218917913951832295665598930620270787610881516383505346129185229946966236924497635508702739232330118386045178330596052096372943676997617145370184839674055697610219233959887304928454555130543428441702659540661540545830170876869334707711909092675207104109186330395153240334609450318308438560760449745464418809915685122942786495824805870676067465853978178486964515459628935395769099448772674240558414421503596335067817974299051240641421440619243371106299779271098716047635766813072964679482829765034410523669334188620516171283439576369354321143007388318193720335742208438948487933766438446294446473018859083269593612264087601622958192030953895883715703779957034854027328226893214838339839173123430803971097677738659629252262153328084606460525955859293267521796057492983092733323773712782403787845866866537084205828671645520522000754829002056897523392085394812503220118462404311444891367261249692559553833021163678240680927475393109175121689343676756465025714893059444855162337244319880142975405638787915480444532460059133437864460315301173428119175338518476929262411619010138246640824634122528623477811031905890606953219881177685547340934745195377750583792317920585684754036441358953442316834283759911587608781704511577662725625665353721144214069703331175658407525430312525824691462201099560510490651781834012731036377237086825034688844956626927083149688292348137657177504435426562157452608840920406116288709656301515715371609593634878296569217500138705070205620435446823740598571879603952019485142182163697621047827076643971622894981847872249239995201495235264249749230256079936610363589846669015368926842538344789384401515269423853887704882427625158175740576282300713957038261531021194340480584776944935833006822566560280170337342444059393862199027406689547591421782647252186195166353798941723054034372839973737316487664492942434067953019808173225468772044191163952999931416295838578819031925548206519325033573821993724662428447436643820946457850933574196028616129867437160619692630001511586706077016413753563355489712437222037926222038658176128702047506299668782658625112708114532456802753744178786036659787364761323869818962241154318177557050398362364258365560921803053817063641502433490150138114786146117871694861830703808974641676813195056797577128898086568002722555411317426678719862672709972136422292462168623556630981235126601820882509172064721857915522782619054850067460137623071320929122810180419626973957919856683380468641709033585995091147046080859103128966632153379661392922259795384445972412279107538650553207114665789427447515450233153649255546438889333243577357855473109428439943988248105903869252100824291443147079425173781772603594667566094633301229111186345982977600545176354065164986659014596255685635751468302463936794449557749931418705861049971855043839895941767838721428058459849162834920855517132972344930965929618307253065891135017096988862371028870574939599955721723296042910539790513159580583152615537062299801831812180158504754072171159539663035581964344938928179922951590433060653977351857707112217096112541544644367930252893401495276154703131245847899157194325276114560370101688508616163602159878092376419749325436632457404814404281391458421852142452411986667932176068282405972933382496368191356995176918178718208611847321704550964021950552202224968697034528960054502582869777400218626737622988991410889599514722860377450227027627050604360251614517707741507495419403906288330682028264300791750876951319442029913974379550698137412173125252299234009459634172487025132585719084650731419563416555869986969006183980484002988596697224674743373367876480714783586518869646768947150227065136521499733636728760248387259037079156038762489117678535557945273646574418246333102473942584299501578290532851878068684946935472611066207223053933172876771151468149699157836260171540543434779465984269914603993309179564566869154357172319071778311160210940108396218688355004103850939394727262178383308734010161653575271106428728114446752367191270788061964132439958668886830377798107230041811960815911717626599066955847282539973003014591188879410872730876137449544630876876647464199576541660486010914474777324353444523309352664412824068733757228639221609733202322955634260255123800434335818807788550885262439369144494915222827648294082426948668948256029987785449296424732495041470879746621418378138121232402191275530021377763638720445463693999684372183865755723411333519790249105466703500820266774052966302971692373378707602123575886701114057466742407032169871257819477962392012929508629917797630472168024093021975665130117703298448126302418848600600504671222270514259086547463067192536453386511994772998080302414419667212440505305128826525836696604316997938584862031283100811310769506713047544162076942581007124693299094584997672201858668708682282985793218042075752634450245986477282357820626433406417862534599108775873548078123596370865313526563716935226246016667851760465202306507569571448259132016334245382305139476009325313692427446610061204450765138608871127301236747205128269812080290037795884217628668917988607731971156697248140360596092541525647929812865311723157369562183325213817415013984454887006433614278930231036943308128896990500061495945784569233868485561232833392487669608414792304850695365761790540048842299424848920733037583891707321913543952454436420671472470623746792782329660838362422823864069517818159664405500404561186600600201022843100830712731233083841559548034838358325458482301922701821132833132315354316316008444614796470033766322442174053217661825579583975533281442178568872551239809006910344767859147785436091788596932320735878085038676203230906474721870802957156958513779278785111284495781925421615000190532354119397703644846127968473194779817677377207253627338311669785145424186938948709844088699175421090691540389655031306962837854210759972587118553887457379902099950809257908950537178467668139919668266330925490624814910344429767367031645421548752585238670565557870443580635610406921220106971356262174607123054269439027873165638779473607246220784781339118043627765224017638659591708626323977938680157736213774152886836831344620526786242478328673821861097055699929218332342063785903723846332150355910544015892105311435088996973319991888593087488138696473253728953829805425635512660862773037227525629085628250195418891837027237295802817788989870211206204015145490176967433457542294545042985745769870960150870145042211425483195441941070083235148787560528811533711448276050503607502221732997214130594285196448148061664444863457076281133407376952828321340921485103895978168108647103648406313786458456283178974619965218021885503121259534026925173971254931507480455189180798517994365528241105419228318977722341343436564426716478422441577631071845415589080926695807598357063244057889009206614596173134856049931711148828758859502945940672065731111396010977337182922649193620012932058800438130208508961690550300493097256177072443832209620007908028498044899462600616086899328114385365876716639780167986587059309288521106931839594448548557130722620732665612264805356944083658312018367257353362612803303803289257410062278484411239391485423831128692960690244212991103425169477446646814519926148737582670970874212372528732290872859317681528407313737993216073780349659055334810415666267141234737109884192388335572798517194568754441237326215963301517944259659935990172348337369601831531875450127112392036986160811486437183085226972075347130684679390189109508106107978265070931521382481710516285808300477628005806898291208498488432528215486183945756600139192164638670981659940101378910252745363547826046370764773997039056096459161604055279951943589944294428434556744255437558246860705834044754728057404422266380757894047658607575184662665341314306735433288697954412843638154035025074517448125683646420714710057426984458248902462793420866542181298996484669293630435655218879958669642104610305288718311666610818892120947294646015924023105596789489993874259452507355206206112789620112094954994083724865617167282522661106794268261414362838029868052560844408511556878906827518081425734413880229084377047782244280382031719063303376684354831042198591376790667190098012882861158604753916981351359490087544785481998170671441504665372109283906379031672935827789447876704873286651006295018199776193759031200910883784438703751369531039916494543444751102493173583251136053354166302252085461258090490177160116383327893547926802075626885120739838283897732357625471669455994361417134805622825888565607192703485609412309111202451481875504988621234133855132497686884633512926863273759312696138527514604250431972646962647835023048672961452970930933553504164626157994766879343075646892042342807806966408310204408478287418007592426119666573980417715238469358736899931780793905942783539556458926836294813007139725105183259923081153993926441541237024247070810373920200443579773750099865640062973055292047705378247682369427410089292090741913319539546478476988766372192431667769852393365240769124557678267735944661912450448145276354819295860111961600606061040108706893223800792894350644741132518899377884607409785454986759087847247919884892658342809408366962844718407182596913210394198784244281057302309940839047511978119800921571384849544936369319106422680773990110244586947895983114133000247413455401625607524215129305834716227236993088160503023049473614252258212135892768431448043968504317017641268543872181473757261111005734831834747622917949946116177696370167553047672351137887319034044882086663655848540405548442130357410719807341902816360133193433564622043493344291672154338246602346853802019407414841292335113844867917065397413162601678645633214457228473515110506541962124698553818842460710024882365049667355211811809351812811861760187734581175648598118765430513353521326776730341666003554919872658183322770161513583832025756394499113317693160850275499922613296351854736377944841451165941134504204785572163629943715460520960971113209290440275243792130747626980992147584105975834678420407097091719839274426507694004831775564677330898907847100740132763965165966764261091275960896063427313833957365958734821664098326238415567717270438241882769942613334947319949262404372880860531556656627392356346367670794531283273343176996963457883943840496355926797300986084171695639864520707485210690891710813540572146861075830193647453216539273140048989869641215629383638034078215292854432712514858042634694256406001741543008726618795243649703338458928370493766779122382920493982951755770386140934764983739648653245670031711221781490946607443127949003728821525531943507363268507686273740914469533479374619565130105212983313263562204820418927805456665280635154826821365561757363522187467507317848691896091284845383198659107676088177028982064476028057517693892180902214455558857688493390789838324079677517301452933610593429087018203729962835414564220648462959658798981040562253357554165184930112708442004553307958174524666689426767352181594461505557809610989091366138387343437968495749557440022299651023370564374950823273658545050065123199803576974695216474333996634296292049503834384847079067736471840411858734397674592410660583130409941186738794638746307844257188993897223493175376156382435949868569995963416328590308063722656657500113815587204583196623508839618672812198830246301414859811760926311067305228781313508223281528021139643188431648996916012114553005926340733888030041267325215461714539320195793504341316867931773199665654984186035182706889660672258053589667522883203069069616949853691256901011043915714725398377856770978432098937980441689001502515738934597822825257891505932420296197117533919453025360570541215827188534846688789882507451715391669574824471435933250252934328901578875727438147232821488770110305414079906110303250005721226427528733607393557096394697280463871415233404251995466171594886628485943626742384866087175067827070847083140597920505327777135427692326965936291197157419958165795214520800141156663011346165781683969669838285363740418016189443340405359756952357452218637380230709843529562412114266144299429136336371029446676145474855248245759198550465626232695050226938812081655741824154186603725629411593730134165988116777458232421732220532907684818823099439747957160508387442062434791791854897323038768679475242016790378258401469369837669399172300810550278836985239488402839957976161027371945568371206787767620624768661336312229237809390682445832883317362915408950830088549915728414704157319431560623603731942236469054372617234280884633192851453359746694639241364684120760762487872462644767235377340766770390895512622014265124599474781203961270500251566367199021600966404968998828376144929460686551742095023013687860660666821070973031978859549874228775195728355019255574457832373248807856182650575314001607558709988730633251453272572891663209768894527194805196400287763360140801291043460213845655665025993376955768348767638730529079547911531350265608856170504489077711728915382907915317966310335281156176289885445062265059858132897014193245448699828265931515825649129002959796669591253487345471230296654168461651942105510739048940820028904647915205016714357437103331207252467047975506595104468302956969802885709557756863691448557139528441193903276591693191339379040077860560953311425438420625986459161616446888892593068977443024519416372907094483994277936117510493751679118237324029847028331286982142608175453738812186666770045538537046800179957318823120449090006049173116842178295275048733965931163750770087290516979157447362731076596700077481408305946863541227651384005026517989094507729860545000957067760220065359862416897581248682558140077965348942560508090411090977035066846376725259156979818575799928977725844159478620417815641604514166214963455102807714570701548570065573503584469505438743004442403529750819865359071147958281211058691370429719387316121274651655343057399332250573634025628610847105006849210107189740093314038446862313747752556114005085014114273510173009514766872680693687236772926604692756990824395995905546954656527682244319132259417213972933560264188720259002281087726278282132090080137173847269438196922154076494992097148545049805426597013806873614151245546446342697942539641837730856201181643360080989004171714059049222378475869809058702566234947645261816036227267555686243942647617501873410051905065246548129955863719451535181287399806167227762691636637506319717412328726229797529886952626717072989981359663904717080685648090345580423045303393134160308767290877031848512934299028705205128518961650948960733678206648944706314927040667577516278892041667179332158609675579055294533433252139166012586437525145134573904136072526638936066145054288104480126855237955781255824497304868112150345173165804981343485947761024785473996835329640838966591115018128355386874214051451309824881815930511190965165982470165456011947504388847981441282619651762335897606503740310805692020440589257643835490397587899710083066656911410876423903986000735713793507190816339660307523070241369865438693742109379302181348690395085645679138898314036939000835297453104075979849700071762338423834564518393481641474451974132412960208517912441139826904163672012967734778361975554214516802671703337147120816517105216079627905964161405902160614597952732821643212251123922367000773457378330128334850254099042490524109917803815004632488287006996114626155281963004628798725496310139617589130794245261308281747236502901439544736423717776683392712400275679663126062666362700533877532721693743211580367939687052828772900355103851055931082260465815487808655247362669458892794659956957583280327044575130739860896198970287578497818723437776919866419240960358495407407895363775685661371211028399751722583289789798635503635256620581415013364834722539186776548413229067227787397147641152323919624383710756202926128359003003777500200495700842897203097397806767020833740475078599502843052620287763394002061046068090973635203586191407987546893666708358369010042239405552183997966191514073941457769474503597524744502976099551084538617247794256680569216611504187745156305153138999392208274331340271925263720892340836846056257623573975546800885307773058575739097462621784454729617989547317032642903488343083069586377237149532850473453077885036798192535275433848515978589334985390488874574519515881367106319271497731424247801065508227554864436728919436525336649485420953714977620177817607272702025041737729668199679630081454468925524524933840332538336974451357126763573499515032881356794756725492475347986490822623290940977883065762608757007500450082258750268321931416822963034879922761720607816406619027516858291666294167866415228535287664215518625231854587218866795658582282880212589322532925468042104163591291419930814967305692950523707877977748898347432079248835203112799238069181901447352399559459399128154696671698099467790084308155261471304033428131851323330184043347349703637513632433709266388067757855522840416595642220621204792071089167759621153828171680614372107757832883667353028756669122545852534019509902922209794126686789441031289701951178406657666574887951297686061311137003213566585403521246215766224452898951193433627909381813615746172988208704505390872424057480524398820229388064447384806322576495158826934923475943998338821267757393671655195177292961447924072886805109469469683679525301867252359972383009697542502710300780717613414294876619585572600850742676448990315079056256933723898212502247240988640165941025726639313334470596956571308147667408517356475996895280943713410410103449522005196621838845587373036547722258491868327469318960594028886191299262767400182939301837856008952109602876486262164193953927380978285526445654459701884425696425553318957358221140946435902983060744807772148100028992595370456890722594787177959444264099921848275923577623102320044093688131478193223924780395572475276601765681655777976443839726148076273158935032007298039454715527119912554089203309902819611893354426624251508222783754663263265134156606467366757142406015852028745677829851968779504070384592398902132660294623266911824418241916704992056972726704049135161382917512370036197554033961292954549009587050832981009075647268690177119548194761155637776173704654419118578568477936120791716982844860300822921948170969909264908753034360454375425135754750867151106794938827019224225983371110359829438084266214188433083735714808476481985409854237634191332516111374715914506623916301845654138538279891272821439570086311267303966198022165674576906857338711520599327618965748172515866615719835124089545618116260999200134663740694331214660412059023312247047078745167707711122147706634863636617802922886837761502293064303298590897719535162153999646464684155259282102916005355518768141865091337049956372856077877239738300771413011208344720852006519996914604607615646036016679723705763789927399106012782662218782333094721705725497674215267556666605682266672885349741596310383881738487885032673318920405283530544509104217121781180686393580687365018820324040831051533461123030325729978524369229554361853587792358268752156941170935075511711690771048003627928726940811622665506306729531100555638600083242017295654271402753927046801668392225632869030445541784370512675667744473370454408267091127193045636163360748201189365549529571274589302702521827761346797196166527927823742884979316693599713260114989936654678832938898355284032412343180076771142716599848214274965714113611143953949086186795967906789849762721936801296447086091898646936154648132504855911030955875786627470114369714520258716873004243740543227827810764976750150813664353762506343373944801437206732196257661946510182455031244478462889200530924441426783390818092535895707021499354835891374608006706488433456211226375795220504357219678034018438028869999920158012072911524714626200853220422187430549657094140002010192505746359818736029655998307431925024270105560224865316276314410559533086531439005321146458891829850994810974888617320232416785731561426332528151535378299392380460329483329533276477390790773709277194663346260049325803929024184134386069235165463075608066850685349589708195544056572484099432368788198240976687753566434470003787302850323614750943657624954066836554486705053801425788497060783873207849170144576344760140967719313464333999868323043442476675992727137030689362881141072444376586286277608437509599447144582505077189194716987676966665648295445778183104781025253438610603490551585937599901258316247972708588648255433834537997173500268337133511855791851284390647892498007641651969173017912610013012905302906114763806784461041346773169678184626652735709658316046811868136182510695570158537677313734313533069548229852689921049539853193697766568514475863314342408423806655880495875309328596680612821893234342960570636013302667937401629253905686230119595563036218312289180714042219209979416528920808549949322063233635695991716305464332761206507870582513990231403261952488697293762176748063327765671176790165247941471237956560647747248409504343600011373792427505987372895249107791501013298837986234693411930195267531418120131918455121160568822122225202380398705685765337093605443488040263107290527556069128337382167311622712330240349069930419647059317641460106155292358701974879537732598987721555872585183521271779709892784661575212642964184106456631881098576635563553282740688517530058503592774941381733186597163709255288837534360585272197343323992490330967435858402819993688409593465198095446472066692259404653115320809612802067297865269307331118854399517574329092352456616401420051059589873339078371463292254829576902858899289042612061756513443647362190195315154672401627303079583324256429502749812960076180785722539526295235600210541833871114824358834616992129328814070125367813415968398293632217792968139631908309392838191297784393928075224459000380210847381031942085180672745024035276541817855580451851758030650051608422832402976180054688893763208611190046524184961481024397089564279590448736553946399351716551047581742154019344406950433505832684218817098912555246108854764720366531704506859626856721881394787075146143743252124223599367733332652629528240081001665689643999970848596325613096193765192581402362213852838363516471025458282797366851099825546297831108393636262799794217178847341169844680022691452044809039817684266371886373121672532815993949730681456489869596634458739333248310877960131084462665854846181999503971590679982392151325031044172797094444672132101360838253071362575813175210823942376957901333104392508963942487606162011525266281476168120711987694964769427926689702109737700439071950525581661268239220345805219390536950573405574490456520384592987296995086013098804184887239347292311416182992499898969256621042889591392344538319986528468068723171001969383767174474764689972127391873509829640352380091026510833672811934515619268983332734205274489637541428245977976134178311435594031619230552723417925494477328793289342907380335434415386717071606185781898703220825031303874275653488142055445416645325625837701783460352205177068266297172241512122473650722260065372881521172836556317376839230871222558126470643046434792517545561448040115343074918007673445873464836747442981495304686785183466504212728706047307810794473147406108456344328584262035422242299235008673092948973526686048156121353833531724622875024946619133341669702062301643628562200378669655334110252934579948082306300009151796680801566660493006032519799202097849770991718486355619388673759701345988943150783306846018847266628991341657041393757215474275358443578514241840469337550001571118022042477947982482849108746246479771434945430246230628881180640585606739737727224921693770978041376716127966837580405741502581929609558810809191357750902841377314286625822472876902312125720263878242475513136143851625692194039815419271812141462709928619040336748822574986804285291904129042368184995159094653254445884694847858854650910660771458845111654238898232480259270580043844955976337861740075142974707328498681045518060442606025351551655125494860782977960676510133397493629563879313188994353562097162044147746425619994046781770598381357935340503378572025786053897872200115136219341824348093135021369169804410611214178502498299616991044798196902180186691487184393192286451351402805348832746892237705619786945054885458026541759548431943001682448459080913845057687406952146333494514317677912089167674960715781063004830770309073048613796957438456888859264817886664019467559917002279814299039408429638362690642876606544544092933089414579434480383537663953205674591108266999195823035490463332770471445756741855330700352015983841681221326656001116485567965866964345102490989617006133064368836909305864670672000034259955195034863942573372825061110872968890563844328466700338862747481338933362113458240164743344528053536158706664671519366326651459687905099771814483580787503379343528644993308340567030921672056716548181103780751134744079246163820670390770061572243405630445712184349507361632361370952611388974071296826032292483644291579300900300899741389508767913965885581771406171404553298848353449657887582695666205992038483335588075368439761548317581462304503031444442342257912641004135814246677548375166462633253039744019187128328434859263563044036201034653760451178393642751881483516156143144459817889230506548474439456412221397869839964096526431600457411626309444732382645265686917980757901887750392180846941992414293497816671789014795794114362104853578708125617146775789171928149169554535821945780118002943592919941549215060185428657247794367733818019329527255323694932722827474289561490277280619158353137721504052991274065447465328350743187963283781957190136702937811679146770228202089346623085729594842124413649211814405087719861970246572883570855682540374683073833945875289799775310124571856435367216845705834926251525952991581555323763671246483685777421661027881672830250905813758891204154437329499874991304230442364920041993965673062062301355170412269892925420833116830089049187565026518044836644699987072066733959272180471680334939769597103138973724386712622732850795004025571360986231885937418409308484033605316514339321562956867589324256681894610261202539594949207060028169033351197095500539895721984750549810550491272085992027961927667797511083959085004385553439796049513385569835252170576232613889482157501376168312525833827129444299483097562980965368257766263308297691378052499492471023104466428135462641481036843218053297550263101269457425903011050267633827423513335575402940054870078324614941298088792394958373786774252724383458795947001114103325095968850707529058136433135634228081224134726135406357887447125006379698027310871228610251471236630159507486436306853701618825144923291544556947396824288584732229612912159316075141774391303992780895400960736335846024117953964366164469769378424033209938567263752618135408302540031419154340274262118102927974728813849192319175402866825431872320867175657842231889663224629846891912049434607006623855252212751009976368871584784482678324048694758807604566189925262458043974751150379721843031393803154590583987146253209948882312255256876452329931440800861104968818767603438042484375058037896038155470521433826222448154607697242396104824181297813322018488890458614978479174090898405899815135891687291220975502030672762585447848681579840695255688480818625935302577303335211180972111925899631116453721387744127639296383042060415700622987502032058130765611171769059995631007222823694895858715009022130896861689688673973959829875485830408177199805441323022714873835472013730435270694366935694305416315252729467253922096434558457961434221626306815622373238590838224121749223346331540278058909697646633949348977396333823910206218705569547594725713696100995480396832322707837274059242407471446858697934097137618378639079418517108532764445511349737518384410993934685589573043993936876529089877927054199342815964860584575967520306251741391852326733710019414405198859752233246560662236270224674349575970886150476427954836169056183861184295787605458521296579784858878085179561066697009770001740766486028142311022584371053441552151762993190832634944418342315493829315920740275205343336168097322215546470726274336582077190873381786866685293517009987276800321579211662274622242723114630775546127539388798818294601468632826014766445584095902585320308325947159513458343548879857506292455880944480243707963458531194527861690618815069172084722475004538697672383399831793814871468797708223456218254195408821807584573503935110470091225098152606840453774693396831283859613750835186412856116854778767170571986199428954880326372136419755731696779096188004154852178639204238009900096280606567725470696909357704762779067698334560583841766715903854042231744605789262119853233260958727011830551768886214430826997353811991443465645840224349133958695288532633718041388289930570221260903777019101261285677703414461494072532177037466679163107120713366108168573206763412479289313789593352256389053110718034006974458682875843951924847863018044526804053376796354686963872250941366652116001267003383200956107068999011761315344427800881807937333161312560303365185433619802501924886296002055678144494429964718009341948320702314398340800180133981353773071818490666532560381583624900333858187660260646824753546454587606127038989245006408722076518870341885237024960460056285285712661636873890864229995412853770211037550474091468498838193435245472066774414774127278568081156949845147164114816251693039960613051038221472824974581530601077690886407483583992535058203539203421185361339526543373836334750568951039648880771971053724492397535985165223187155889850684413450338043753756383969016275889792373116741517134445149394974363331328547516688541323032441492364713195578012912630058488372765812408135847224313966052748320101119235123823649907371608351650002577192610339766064332356702059593230440951006375961737092115389862628282464560673705323095007716716788401669177806387945175134388567776628388224326762898635326551297635452010897610562220232735948048433347228333849496766541518721387025950850646119719817067332137916874391668555323983523846930459373952013722241855971287411570174492965464471025804702576993258049698412060912311401675540456287235039830517723580241962018053118907237609057299591836560588085563077463169057083838895914774982923968814675885097794816363710193210351192951298124941178999584240750524445308546005476325416117279521125660410617104630225282308268699744833501134333435436297178555486289533087862239638750941795695638790428086041206273062388300871497023297567538181122061167229023035514957734290661157844518542978348232533370272360174956463527602619308902876111815139213285199048265035863707161321512744091668960558682385629735136981719534109303177271658974239334768753029756958015374621595042258206063435666475435549947711020422916418818568623208222943148597749349543556576737166768227686147648771577870762504800654088305466686836896306206075790629810367956960505494505167305834730542160763901523591533967029991811901248248089458977097065955033727420695564049903748735734462416977167066713307224583903672436463785020861085242925623496480084681280972589445845639464441005312998719768449675858057139991159897005426252470547321759608914046323534239014247179207567277776949521336928301289589907848761988354371367958160541371251708907728947983828997787042240854023983385349677308437918955470874556861109960769276509067705805508280705111754327911045010193362102932350694331495877783671588692452438874673243129673321920991813597689023716672978384276973443302559556636669423841100188021105476552234484752178057947496518422637675972881341325865044148571073606829114002054857245904434173644382007969084472289112251376720938458296556494573020166931296956933074929334824517938219127973446005521712025588297911895682303710967547144488721227774780377653288893380890235433789540353139373658981143364836272435057474031661955516220749006673574385426164620584201877976978967957256440703461772246511789357733013743220272058672565858902326611021283829483138433166250871903290717281282856688967600510533361341858462101777357700143189992432611930017322609191485421505105995639839062800158748763781053388412739694551784621023470070201363159841915096501771236525739099483383529837486684259987656809203815727211752555576449860780605572749920815674957225543538066575507331377812929703470318326326609551106609697919167347480819982063311972626127195546604601450614230090302622465104631312500149588049665180899925991605233959608276498169729150460510974247232821406997482778738293782272779788371023952901725684986228085978087880648358185338371867418772240160915087230198031033534434181997769222081525969586826064393038984065403341567326417544965974576494989966388461771520674386733231969024268493814455411845160093644666341556256470646609574135223773960164942545437584483295184401183865458007265876011916977944795008017442042718234629117417278271613587732087435076647669876693320486303267383161285703839081210848593775299231522789753610516430431210788453986603006678541517707862125523787085786139670698233644027582258928148527385993297426605841593626187625321594412479116261762074768426184156074482758130912368074692295736925759869595104773641566788441509950308190035948300336922721537101990811714392783009379699863490590022897056643531388667748812854406983091974252346407143958178825865533490446098538844850914050657507221779121394311638293118332549428032972812575475594560540612123370499955572702016255171957723761146161132404832418767191762767820677378431357970383400620541706397998315105361639586999930639973985013217226274504331605928729581925959017245117635921700115329180563386305852706523804898495978347625221358439751022743017514272289502838021465038509605840962660723789655964290088161508253944065720485897699272595120136228968197871033431799860727544632665941447169118115861056152849606554052922787073160784009966525802525139155052611822911629277603088062374801040722553944307442933333914671886779858662080098344738727448894293730198420818736275858844486526597008002353433720225497024445087029410626494546545216776962372365504261777469836144427083479923059166145181897161881899702310880400648194601752904926941384656687691258804090201835137885642374550418130902799244488190362602663139282554106436742458359009644753732669684708974614939718022163000305515663467538084590937655995477842547516646645194642519525434308489370508084397800198790800091263843857237456378921195112050459091383959754056403527534665681380795697195243329690351304234753163805338225350212239495845473747075772738431798352619919882377250362914453656862447175220235887671730717088107202996022889490403298945576019061985684173200740635598351904823801706691228261323443373976519068421034962172516978828327831353158418057933319038113871335737117687386005350917171187772104249080960126453145401705660445892177125035279905684826831967769450329038404334175509243286861868035571840201750265633065788599905983504696106246598250428470684464582957310850839723665647272193021225341540950667562569663950817476994795961100231552993697068476423649667974485068044456797586885605092495009107878817988615706926859908669237715725607081437946141676926811582081283119862860269308029872770172641522580757193930560402217742719955047798413045894809879678114114888936302550693305467543945891598687882159351394311416768678667269530981293121472907881287339066679707299209653011328454313047030055517045825605146685808648726213163518822922486410738940954096127108802596040689863266691353860265559193179737945306323891202510642865424515690338407168272867518286464659090563579638511327333747194598519778998473303266394159706747704112473262478099449521736980789002183495799034424279538865588283137678546512921378690683304871993060368004983822069124855826648933786452960145165200253825216930431830068653873106791468796714645409521442365489967413537058931642675894235647138728743512627138664660125980960668640477256249853684105360898115735663729507085253865699294291770111957892434123325725518323312631842374795394268738570039773000088227521846279178227456528085729334448203937021090903206419350817813842003851961599227404981325971545438911884860068078816433375994556413840089762149212408160024125461040201004489630916468836779980185620906853136919910906936013119487644473153263640245118152042409883905651649178631395698415139853572475135899221917387778558068195638244174601048172938098523105089695476150896306677502380119896091904203382551734542237089984601623509875780474606888863827379280672984888558137853053133793921531337363124200459390677238151609366410815375001075493298913864412487049927543535874439266688882401983492349777454019314446891053451714871155094133768630640011191974533482988487325559779231701591364154811219225491883065962747954211241821536822787486682531915457550909284991960238946230484364576714211472742373026304027004779174581271441048272362569719969700105888550481363294680382318900905256464051682837081219898951156692596196275831570106743469904906462865232836481598028741277748368685199780932785031508409969288222449343570327119127047059537235119733604135647104003174054441215879687609616494539376023815707228820403434378105725255431392512387243693617600890578719090303123163831331734418914911724262229385457977895611682147442847130059638667298870502609377706488523640691480994304957073436539801191030687318612067664398133868154258965088473029091483567261997447177956143025037025453557225038505797412157149180351006020367014920918711318303977736994773969112744578875981255182367368149439927460506383897184840296796367743643425785747155213207117515668303998776781368964255880820343915891853023494482182557038970724762341864313590202809211310749678769864345569908668905298754207848082037592136064436349490151822963717692476323471524885069540177270163008654438312019196425731759812503096322236456093982330776906651109907049690894272754391552256381690724463413315684397125790621679365115430136518300177371687668108797631163537842383359617881391974008507546337773082934842570078939153819516751253712603273814199656251143234056628927456919729028404523962071554369379731755310404880292325181098474604002408287348126821596713439050996868651648251393815939972924327668259495420633497483970662545358179202234218179949950492581794039643885406721055820106127702188327759247836326955919748077875439487155543057113135669887726532135391466541402044941040865517757320371516114304919453432445168332283261093044633803609912394731043169850331739069608252963862016353208589766581827122088359431031796409119112202923234571835833533322768393067800199897550835856627630891025760911842632730251413439064216592831507294374272080560833550605918369188534192284093720723766060447418483186281271901401711718047582691788802804254082655941053093050293591507419488173413687229953580010490617179808510164803167567375566357591888853523053936277146381187189499744490862310635665500777265451439599481213144578515219161490758163721841633815739368021503454215315892636258634612764196787456246896731006731193187868976124696072960125015071802026632626963435246938159951556683100393802145248216453252943953910133596128138753901961656868305542288905213912675083742288536295872379279837350037030276772616549145522654914685991334016984921316405946657958262922648079932016154997433605793533398963736424794286166592388135157770376473702383119594587610213549312348942165321338079984792370240066240285545484963135878967967087259172608930572759719673882859671794993969212169580032567696048787251941316522470020279429394479150060461670375063340647056152338132829837837678291149781656056888699961934524081356200155903533005809522503524311286559895694688943973983133014328069554584370107816234106763690527245289046551082379009826841638953785597309786283510532353397083704490282860587518522521558149655214626213273070440573421591938533965223064002729863583925076521574662201347721429633634164087652294962213520166531298307167563303664489327551080523515901472053022695123558970381750664719544790852262120760189595299339951237229794345936962356282672923728113843614996689726824739591003607445687748924163289704611658821621234842056640336211551530635453151226992342553719414653686028267709760320455296883286073773037774326080144576668984346295713874370042214732031282799803609933533290589729460442617836099916882176979316823276933435757184879674778333615306793987765971919617411538378521655114399430381574905309555950153091968572793865505068509310591296308121831897923043056322843714925469151420160935864167345629291216368648996313271042471637274842718733254377923772952032764626208225088514935073255717540979608403216169815475359420205674840876071088094968795603857823416648931860972076392738240081202040175213518925395314471295179199330622016345740538655578316560767334690156356627654417515888678686463185690058203443356970541131171394885876291971265022061261531655862412995514510330361152334617179125964332473800167241645914174255080803035922163471865871564108134949089355302780119607600975599965718147948499138572529408376849696599669046733824551689431471894965689780659291502244298545053156909420814262742755399933455443827943264242483517577952862402187207965321016191467134962226316888170549815928929137271797240158881926528615703463280461751270359517062695351415515934020057027220929953148711655964671737601558755828121911786665133738319036917965256386593717793930968075257141661173276737299800085107322449958488318205125780808382799232237566717252275403803920444523043967651453335594561689203666407892548781054140222566714622012042285549479178083158833996651503113734764769415058897169028134951012504244640162627274784487032121671551144064865031335359753784949182517780085261847472282907629336388062310933923811108219353460187889389810576171049579751129125974871324532339049309147101575278112921211285504391670396651089107444099932522607024382361180852586436996049407081879944008142791156784776791831322830312921363404933570220700478017677389986129810673653833204308882087866862606077532972791937625334088009513781952126563809971515158126126906425917888986965548719507860493744309511804544359524134966887860396134702686616132729348214868918344345009444776778338471350768547927266720905663527047492932958596699347479923407822504635462691488622903043330374089607185948048592277426185177130241899652069572685389723431654929841650864904488024731513601407710074272283108354158242733241896336718860966307894438387129748174325778914297184522597197868846916771203851041080680275818320245959743038309210010504323613066688644820023375558868960288842374658752070628989021337548091251575259222834752186225131978184446390376568430665753825860445013913560783186588860536047016958343006922601127733880747033923651941072404749870778484899583124049068924153837216646507189263521057359664621438093269497481080950158970807116592105031114043375394868054620309025819443722463872305113910581459948569520123655206425268372150068824558379284735366726807066544765969539807451221496420400536058029493055238034042796405768992610065920221533760619412619011005654344979643593141288373883888930331725718232100799243977820436969131011621632347304224812161127429333656965889593308900280364017715755108845363734795035410843903438102845767263822875825587635482817952490437898414799480750810583776822386525847192234890306564150108907564256362581579174237731725548452001754106777060243724852654522814883867851163475167010069708954501880404863128550266835354599593865338436858014020465347084865401259849507257657421086624095838876245350859910934309262033390427025433037478319256545680689137587152139953856866466606428751600890250417701189173471613511441586799972727751743468698377487386636885902297846701655564473258131022572053873965142538567601499085715376547961994864278078203237210491896861833501273706996920771431580251281474144200287721634305856355143722084061294433605875950284703827056231180796225692052929178110554449812986680164321679555858656318217836124019247251584506049653838157518155618419847820474663032991851047645447695775049185094554120217332121528114321929568108282188726365504111298681792127853126676206591286912819926807724064704090327729729247721408246490490068249763684091512766633379309296206244271273231867154902911650518123231599812084818799314342821913903422724711883240397234474429780380873855786643335302433279665536753536056433504092970682749571811992594013685941626141572853823324223256576140882721930894889107880897963920074780504302977554583687886104793557207243440384372318066638245116495220908513549390709398668781279641084565005138344861705141667003716709717692150052858692701040106059631602900876325654121846053588952135144371124796248825418664253443489674188612709335306565710655620673621162781181676644939513162896003365775278821253356504512723283407480514087097873665910720285341602229384095645602676842053507886042882581375497134019722702455741548400038136131601426031509835396025347455192331468352837546147398572782873642518732344441054898857361620559588645412324406348817424182445729447869292854657374565739655173254512481570569717517911919003385070040507336270437040487976851695664942794874480015003055278818231360214957359853548100534990111362654079546106265221573568330708124333208207229321404737548934553906104524192073127533912530726225026239499753637364720152850728373660234413314754528980204545177277134281041053327576059983270800489869700253390212787206356585957629561205276039050015454893174047185275654629010268094302585934436995917839616212701300623594135722652612655953513123653449990198073554884797074698024835493500523868028575026888645251452346069249679914117280805174705609214519209107489042641849737783089398349647717794099098366915501861767987346163823198349188263829685748903953105595379555109637993113368687958061844253327059306113103548893013833752042086732138758533827150721235952623761013893784705840635026816370808734985116683421429164723265166608477405204625108237149699216508662222414169682441350316826013416374407227913886867378855044232602295547995931102454766213488129171713468517847967797008598961275881580302618095499258659022837444113465636009070555326155506362269692248123717158151544915458877960713764404125421226185152051848461653613276508947807743620976157671832029501806000769967435775160024172693592413575050655148435120735681220950158567558739545904810143961888767097633542474755760837995464713754417417180964681834344522177597383313385379641449850899099474436626319937737561265940359144648052667198386845980358953673854208644366280286285673016249548313149389534745281780251614758696530489423186503516691101683608142718689594914724055299472884486132211954236497343778592691603259266755718698055378506675778515202361600477692673673986816248674693749261851126478376851697741215078374005998201472098216151404643118792284349460454140088295410664222811738372297997676819892810029628096615541532050538054790185905375616124902295679286485407264298118025145492092075760926562214100087295766572661188977799516789838652801908875736809812661892851613210449865160909430947721864127925502888178783014549445324124517356294866258344535060542303169500145400712026279632913687766006677506220762824810103366426462978684666986424836552171444767121164506798801174239681517566571741852085836248022729280638069009320099666596888051635840517797131262897599357162189174428949345465271830742471235305437893160850873102696530790154443103098160546044445331070777101631144225083582517983306091681237773643772641419873718781515816168864775751629147017936246335591718404804668045349187001782782720374276412654480246182793200568610270045670421504418739555593060964239644606945104666138246451040704953047817085348428942854559413560204343263203213409630304127422508673554772307463707598353704882628584728867032827541196048839926486249534104434131573774491586101909130033771242540751090347845865522762595484360229270720334936714564461035958349877861840340902503592333855560916727200662871216858070186628979116479355196951680096013826936059332340262077985363808633718496708817180319016332110872273184456436751593349928885145340393300121983025218036360753654683673903997609552230835090285868954641209424247743590024173460711442348701216758038794839443705523542941447388330086730626147577105318979062676175277655514770124515993908198368133811810708033238776479257890169775794133076141952864574927441668554096734502029278608914231828066363455821929081941952505738606720878259037851738118881197111987905422914610049721352260968726479615704894399049345076004722552357919479023841074618228672612686856923138945878220830006051712785032336180236086554593014968869763803451511255531297963860542775025834830381612792994451883514525978975208571582827524909980754731846263538257593754089548373309137331259126919779352586228499744072563381858720001025739677766790906102899405136136000196142027587277006288206543645190066553493287330761226325557434281953907228537472599876724900594973260931837481854277494895494919985734966146379650886195215885030160798050837720524195287369717056043961752543972209997778701158556935435242253239813535450430237728613112554929098469576540839243288033727878589329444119400696517939137342893486782985835372133967902185496940777994310460411859301634230214110786376755159057583877337878852115042832078215894082164841277600729751583443361862978228651519619613576020672342360850747709334512443866997367382759480747046828778786800896545529369375981725341323012797984489636166897795387535969284117797496648831184606526666369017531407753633365679925788435370754054454512049682219778951147586542492447872603083050166943073257689034980640656805311514938108999476326828648603127342764987230486298635485851311199523587510729518367866713768716159277665066775231556457668971567116980190867000589678570092090974070359172294660798191112355816686105046879804002425603190290231243286761483027382837311912139373803649384120827308717148456796019237830395910196855504684655186446352689851389291664799363352447279384102694270391027607852621981723849780122258182066384677428406280756391697240155924514881076672084946374476367617241617412991712386922347311829362060292953865515323554048004582692451913039002426266624345508831772145287629110094416280071154041150893916650293139319277451633791529145298540829438519689378166210573751539606636607633112917479267221542158071142564907130080180665092240488597293595400115981176296908125175109664088083094558025124572452280787951881751696059200435731248325673783574094068582826240864716759307983212094833139610863820593548303690461050742632943599885268483813078476699456666018282513223977227054246903321003839905495366213868087243401030922263794639654183242801862249949175845860501989131166136772001126661825785745240609029333899398232410446324681715916884738995259800235798389762800935558226288863579562807469611337363786502661242176584066872502503314257192290795617452985851629528944237563693539848911293076376036971942968542760638296974991916342284888680317062835697731013135920029886899043350214497086637676162299547471962428264061396750428685545606180274134561019935566686125502515876457923451588313000279066030777439117339790787514934802957844792211486351352214964274678973864892282539978101978210022027708992883346844190141739284805539539757912131951697890180488708718648342823517706281375064107810606499265031449056508644568522722637779200725286065281436307748133967061348210473725945130759956006536928113867036500794845095008801407220982598847737496382365129959247969787108488633249397665990830141818521421259196868292123167730796249319266246856911422099661139057936932100026553932497219950750319854959984318955365764274173094752342130592583473698212806445039399450155349494307799924699174281347750017539910630860277306032527230019608564389144171235155060004221643352052691282382645778089348163324439333922727790815880244040988745649502270489368168810387772727390117769536039273507256821161223096108502203366083154028425806429196669237612461795926578309490865273098733562961806741927457125545753745443083803642202077078764052658228810618153832035889758921032168875235896046303180518349768658210649571666900681122905807212462205165740691311719505417919247349892815466960839350033396594241124173110709199149550696644709481295871854085720795342919113138221001502034614927379044102179791398933425306342241414710012233360445188702859622600450265673929960172371971743243281983167392384388960744189784888739278659158948948717910549731225678633398090253714060859494549289594753006084351955721055878367218981848433399774110588837289878602595791706428782405823904799430415951863691454981466000578395846289559564174884284612502660706647970241183018671636004234885745074760422531738659177155781627249175685388734345835329438567478850381193894647506803779125725771611810869381431303624869239493885113518952840678084212376742337464992673117167069314815477644503861570531005293198073429783456709320117655548133258609315568054788570935563809179751638120247323589432676821767474658796950683315351130088861876345106763741561904719310915392774879033007709850486756476665027952954778128250875217032957796803673902806025672702216629236026939135458181332935277633742222319291566058944708384208426776419272077308814683361042452874332191898941361170756515716884029157619794469137028190041722243399468695668497085460759175136465286578852594290218388717116985598753091075757301083471562730738441226104814573961991488990532636472541756940109227651799576147295381981243475646797371604831343367835356255043818860110360323468337635778310021698200777045632758809073387086867855261793295245313523871701408673801808590748194403166704426795910902969340839077513633186814795408872969095331659628017574558497458165581339883778389797002775580052288817281565798482519291906219629215751084170240774863395604025995332530437081872621972782154144713308018993020556792417206973404672525182959684791611847129743187656162195916924418019979762017811249518732892806226321253635687099423950623799985049393418713471613961218185598047199455774047128002429339617564661547149233394578118258985797054431737026516303803655564170460139516193674132422850073142697712869147766570055292117873675635834184907203632754634944564686189921441079752826780686983362864050785700407781552952746337181299279355938109222524747295439966648165829376304345100938683238291087242077144399905441360055897641329976565712374606371428845704798436495332531570764979424675654121595512484524598341697695236638816929973511572049735919796295731463273638989234752486080880470797103176449474699287294679942656250951536643905858334143884036582078681787135361570367681633424646868638608262083923391133575354915034711083699173375422093392091714109090903138734115736658029164334291822310187428491265380257569556176828387601271478616810009367273606766140703330887020218095088108518393535820547343644179454348449838385196418666081081598077793059711545100620362527061701501313838366684869517445993831564245614616563439431042556494556742674663447676877116146780471706070075626163014866692057964376222161547066061676594912610132236087819401494926879424114242159420258233000677058181446718505081328800045383909781642717106239271996394231871277832514921532091490740831959199970544403611330516061640050164876781972692235444103073801921478465291750602980458059339615389916581924291917146409875421155331266919940611243255751994717966635986545141973692950146441433110299793438912347195386100240116780687148782155107802598232774541155540989597706895923117182001569493278352570649653190403837405383134326825829655847139939705699286977087830070649186013541021655854247271981774186786038814715149516341296537964338634133089803124402261800913133745543983819931354903210397730199403333013146681695403186966838117423427393023357045662030682595662537267604957416447660752144544951113588500969100929151726310481130314881768998729029254674031613576171970675261720533674941773222625376841338255725789258351110445306953366584905752416037858683437841186904787623214827588234824476055845212865282011387552016518946541243643957609238225847335132446936611245844781729587936011006150422348961009051582528291009292770115120642316393938352109653239587773185462013639629205680191568113554609307903367892548185414985631353186173456227192095712280660971885621520017288052943948039553366927379682341334688534417096169599556459529672499803174219288457403857779172777346690486175068410113897958185387790352358402372130134135282871568205783257864132663013193512606391127082682141145456339703175241239601544717435245005843317003824106154740546339649538955623376490436260611180243993906311079920528683365523612402862778776349851231578512165217099587749436080816873157002628666874393726134573450564065271848130819420345404237363025176207379054040716612676197512054610933185441101675437112463699004268744692992880737188811840825709762284669431162248224371489514292246823622060212555496731032085306672037409024463025509404241477128652336409967332814690984373759104732870846077133387005742162985066911021923578245441291437765807096826837354575718245511482509291191684102125172168415948722389276164032274603445649721259703189459231639434887582510065102301130748429343624551138778343432069693959378104358221607531575534086895481768194519039452047244055653690299700773635158998951080665327163170627007505202908503017022194116257951179800932165504218991368005737687113746181453289889906775006576265898277311733574075722180852822919797345030220856720627259103388205678105642320136813538730232814162807670185746477738762226110940810858436994648188298502086513113263948582154690776819479425369000700552795943399049768476685567496853111653949620544003101397921703027020584963667866477068869995711843930927177701586998496483525653492562902714785159857900181365379970701555489412594414532260778223349376890558293693054203438905916120170117508745429518937982047829540552828944625310900557441989588988666746473573408630196120490104680828042772758110813394434492867594441136536036115730702073846266759295690789935328253176482221549523804660383551400030509832640100985222130567642076284336360026157978784944208105238240656639213127102755512689203723992262438635903722622273810485649769965952452298974900020864605653922125819308743975018452062712048474139351952580324953659165396064585615643389713540764872462232019666747799268297318059146603457711661431423495940954210861785879593426195238216035991681719492838079491114703129334535355592029558299072692229483335048436070589979122017265250711261971060319790953275140572955760574042399558793564165409216224895611500323661842257979263901850053597206278123879041873235718514562746016714384236821764529513890260091402070562696276088468701550394314544250211377146866669037308321318852905454587274042864805857923514455642921735664604702945362091462877104478011376630221323559630551412362001120648205934825937705518539099677753339481979898567695574442741711759512069318079511072171650565154288464989598715313715854074499392595214448935074613086859577974772661116436943580691358818270659281202698573391308027961770978819209479518931084192594498100861234360299005215689283436185823938197841771367745118090530401788755137892722995950999931794342038049022202833737721495681470340961394197056242307805576166708280755547586375985015015698691564240112591215309233843080006979299470636567809058509826444460598203703900335608965099469407007778208476976566322246303159437288757524266325418649178891966724220954476188460489926700721852314319293216836292531246756453240039552493022006189276954345679306504004403679357926722609308365145519546966809702121114390642832703734055980034053832637655303470851992986638527304471928022791247544922539150912110365241246816509625359657623227112711501278903481754097911680717093488128674884805528266217118055112171987621901683541211486483356949752208434182770313777982646231692817096975873121094410100375484364902522819336230398490465901577413288251376887274822634263227157180700659587633306765093621637876536622046205342094416737597557505072601868583763942277983242598808595644041741154553203069367538340889800677213559805183554099652885746671057812359694250568214820189011509202499954177161778386911260114492685605466920967384314248316374685906661220184536285698600044973012905259740805457831663005204066236593188161588192973137001177374394026913080218628293485875328999992764922782407420233767899664147275958166222099753025899425347101435478152686349976514473717502033101838534263874003823750684170620197704777210234663515253974528638035088789349433624882585771635896515858706020673958512382848765226262525648456309307669726053402778097444300125617395446338606712952131816391934191374891873389382431192236463668816745741107655246691094072982897876227742445927050729361107799651662099638119748382152601627341514093885578986751016754552271747255768933259501834960702732327726031499112851711155887383611574976880764163040011173927982258377346561085349840361816783785588613196649005527984679224944383481094354751722966211423432831745231856208576754747979029514130207420574144346144985742696727010571072341088733983457287623656590006463583947619879016036634962816934967423172408934383878191951366155340663189663412861631228561359332339244434958293841822605057535621014295213234420017333457364190605873383789920864651812368234011795789096826200183786797761122666700067158262666905990583551422810580392823425500456299947589497957596499035755243456166361292988769125150847862325372025971566120082820743622351357798941511759357691045568549902733629996516863084702799849100936437411116977256741690590439169507386131286667674359141356730537521998190985894769028526620372214844510344687969823830017384533245074283312004580185658745082742239760713714211556796261072183122661691969653680494410325409562546435546951292795836937589559057191151796726426727831964527324489310122930253351060998944796517181684562635885731746946653937673054960968503212050127447611447331224577961708376674182505886806358527087565974926791310812503438481726758986958134788651051777332660503002396203120387316582472733610505652957715614045591355241256659997583243392440964452048385975867765683590234096617136767035100956747480235236579539441373489039039384804737969328018077670026245383684417060898673180071185645819650573158053815848367400056861705433892754428926866034528171010601410379054932884626109058698730555641733323678204242606622711169372550379145014311795750508855057959965076344517622634985548414752678523512249768842165922325925289428073290548537014901074481600736150227862087716608868072632224613310831873307146382381735975196372049509021315257432410808211472054471533561302309783191040699347411945486084896257559471781148210574777697161463995810092741173226969627978497769106791667655597011359790565430093990759755639780356483235738827070926240917918290326922020485012161433842826759530569271216473095638662249016673382341630787416416037054180003078311838592203125567826857603785227376330576326355389399699521379339645499870071448218587695216603365039581592138457776284831230064531432917882180549226468315380821798976346244887189549126964670205820578152827993048657310382338876833632244580501391694130974051673756246137846428732097964360170090793939545733464449489767729299221438762834571107627099757218715880624681099491047300035128036704622775144961045287976563409911793745394179962198575147736819338734266446130547291553043304688772392083396405668235060116548612057442241327869919694749128922897464668526007404183491839403946653563421138011442033540469800438455832020485491469976623251312626713053719854038612256948893765074203224801825993079397467598768675845352258400545817341820328594688048068927617245340702245784946992543986419493572865128669283440247727015832182113731195624317061129827412380249541474514725231103224140806609223259100511620052409368532619609420930946192436590035565184570732838390832738616416636482827691414361735315928617162936702654765274397585256092987741107760205291301906454017033022399577916275292522328117957627284372729235846148098017278663146440777093454955456467053093557042942953565764327145522119375833179360368153046263656564389830181019534099928008050692139082135810996032877545066699376274252366449077747736413803000917083905600923861087353408352218378037170408742172533258512707680479427163806171213398473665218011153269674237891845537099547116910934652488631169821423574204326131355613969010974035466096641778203674118994327155140697578522160969889516326750732204540146719721176724160708929230477374864096982159347591945801514755072365466060783437806128392685169510132898290362375984812626561581822489509294034609657190654251635334657281051751583504482216426277654818405331116390198385859794101605971038261926712606116122747350467818060117312855567241626962093658647937679949997746031924465091645302109620808576042037075778542733892042352517668411500261010025521460641957859220628412508018240886764656684401427973116459819432866565247920959592177935252939870313055852894162504336950214581479755086417447456965405880710715883258317068963407332675591860125275570650423736877942977662548853073491025690612578588538912610266566899438763481150783734036907269243027117569141694962475474857688062472479557749894510301925137505414599857872864783115945658269426463117616423626250341710100797342706830705526853458428682089155801771948706383115883609457057247237435860133183480357247714354773047116014075311557957410428293660925308886912834021534754520365019171029074775935605656653892091659313208940210051872112876046495838938465361962239524760581190419914700311480291748060905868883607584198759526187258743935430077439451473225463543206710046802633014565007901626791166505071370171407664053996400134009651394698387088156009773514646403698568117815508121316378869381518135658124259819407133946718034713881022510267530980387683679191828207022119503838147298527274664394999974405755109036089137056767561248590221752530417963075965000028901883051871304776793073088655302375095095888810660399672422808401567481863598966530151673461584798202506193762542069881475793476078150258303176190494573774391944564408226566154155176433923332310611342858775397695950003553254658672382429890287768300615621173498316164698956719916692824892022214633377253793337238039938996893447336692649908306232453074126745415556552442837054226514921023336183206578820710695526410223640574649344966349248906654026420863182468955509071896342454595357842867355051143135906928644197715597323300232431071993240082646396469020345829762871535549290108272460660174737057905378067115839418469261484255522236201402941192132676818007471459509552611444200779088774487841164373778248021574318621872286150484596205783336106698866475325383087634454896357370209604597365912381348470086769548877936410851776727793312909559761460352314569829872377246206587730199341120683889350773109908379499091604734863161739874312368478371223154631267089687619953608000684561885021681520787513994568689918206256194314854174076394396889893745943501744033514898697882511665154677699644547307327463270696398251767413023653317717411451695612359963357007686285369397244219064698606293077458339721198296557509231287189280982280092256837118491498838996815549287142231761822645985313931285997195523785100024791147629835927095232521293082968847860510169486862644753333566386130061408298204406164487635791705140068139802565853877846734283459391710388024899668806361365717099264737543721727284176026193900518087855102187469542372360262873135599682567133245409689614985194265783910717178352890141133300515646042171891303123907306469308563486421203691101175290459268872961162938615022798270502944206415577627571650060215990147593310039679941656622873232778641639079067038864051840293652041041256446298605712161451479313480508886690767165283771138847395799772914643152617216624250482140607403491926354512314604119848090340036851079023294854567248986885265863304718431827178440228441760637284445522546217995105747074899642300082545575823458627045867672440974720258738801947130134342189923946917344528161516404822856019518808099953113792582126118930927183402362067226571693355940432571810967404753782814183287270908546420202816301460636732032542440928908808622027115695913267277776942532947207699556225388178498815510747552926180441383107097494646074753766523624488310820454612113020590192752808943426016392864469704886654271598628579875351875854784204506200488993264645894402932281340578014446242777349295719399886649938117652975569661841658826543017689259842585693761198838650585667774903743153959425756566877052745368002686497398604580945708981022689339972291321139325222024400237125282476935533179117330512604183797429226607789791346375007880443784095889414746258560217583385084181511616451808277133566700630131697443514171680289748997986751963563130273445505165928283211085845714750267857978452532174082967400516629946795128347911362958470293121820951177050147874123470194752857450125097373721064189313970589159880572166043745467470713183310758614352584680539607517437474083927525038215736978532092047774569807255057975192739566559622974466676089639044298227429508010175882684174526617974270230138202156152234343300539643896175578982714375375201548087009417912203859308970549726780335559680428896080513069512497260442137563283574453319920413472582560406182794970827322491636299869395194510952394913451542291063283936904579217219411460286715731173611543006991752971706080500947540898545313311733441951405338777299860684528554050027751785320924557808758177057467070543125486196272985656245521557228809661127147836818666832748887502145366772874056933820396762375929355996603053330704718846500573687535292913249079049428519319024097712121476665019488989991356071515632507871605696640840563234797673914582887846521254608173877897857216461406176779828384399220679957245468207777478583202660099604260067518714030085427782177676377857738933657040421887115634729626831544764359284783556811610854264426834985206171252121534353067891610535684712970208102090770815811790732803121267471539975615380414508987638121395288749767727154767524936937476318930902761548562296707880961533835273391265493433365431481078812290920771592202480859413599237775387998227493129294956078521073198539945652597448410797655795706550743624427524209949916435586706960114777858082451925734934825962395096504242026428683000325158838064609420496007627273375876821607644122780762526995840493026653783226868386365158456866407373870218080990138261783152663014880648457398878643221815310543759927203324390320938490507088624261023323898116309364661418221928046567126511413190530235441343958401961952770497463999746110138562543356372672874492016590024469556364296833023791351768447521874034813707038907439281034996695200395958456172535983325594903698353234036651829572667777582187102473054260557794571999462924890190585832781857573338754968976916862917171660222846192658270045127803192824770063435802010879699021852363873877443240071238518575129095797405338702250883700804727574099856255994004629929958614695353348745481536610695377761325410527686706914806074848270323232638856908789416064246610898697478755401539897820166857903185570295385400046018892955144605264725805996714186547988248251965850612181029829990291865333709990562862508704994562550678449304239008829263066968404846691007426944581575094306701355214188249404066647637034076359271481926964389066115074139665642036093773621202242232938658421996284514677584291918925108359919401673738875806823682532195327717235613544362955907457539595512167224610491288706560736391121457276658466265449966850593356509458839172583565426467799814822542029455843579219077626956344746855296722323435633203657741890442847411638344014813689385571491701904171895140186717212650041207578857849597511284340314192654966049285201614497360297547839455313970565237560674844370964389567072021250079076024518459158425002734866751958245881863308415754597319799532612780892431953609975476949105114662910999623049530917284933557536121979387113819192657428205685482730083870996053785305914732213882541054709738995339921176390418371292484948053336571917507162175264098759141708938292852470677760643366452647652998465307736387869826699684783938133806311654833858063244086088730157636747656351056217568190998021528937985083066333539418046393051466811716756310158231157418339521931344504067773869634790640615169147484592657658766113027588549512148912793029173896701608012855298315504096451712753459041349795040511818499160738787329134803305353274793511608473451124207191422143222467053507295838407726901473873452418087687045988798434678000268098543880320247899553053625678707326095108150392358548315141501047797684822367723891861773817191992288005506722067997543365476337122074116480685436742128107385061128384389996332642600444424466756512515670499849083794992431425944001492635389530436249985738047554250737805007650797596374745981567182445863264199888952477700725870842154692133659470547191501112236491475713352530266751669910322017201101149312046122606122304695100814757271883821621827130441506262807014600955978867946794221800039510706790138411874677258152062635068614081101503401306836604734595303751769213574053972668525458883036700232132968493030027516604640101931697724567688059562829170869476826343841636137966081787129970414854004813889943653239751300542835134630516084005136621060341185792725322928327631195823591103717237341396705508801088518015301148383481725703168505867201137516012477973031399582879752378958759232284724210202333709333666001189784285417292435506949005858780414958760887665848676352718569094012686527442855018592257390197126276573677603162711461869505348467194868301899450219674930163161027895274325556238660333504955055158174696529603645688685563897719199876153309137353617092177391096666911329400244435687452148917938818942717063240275091538134021714097760273855258533411676592632707871402880155065096479475175302066278876012756002405275482059325327811285622330626484922804854867527110043023803046238006907166986193056766551954143287119401789128805558023367142340218262724287343835571564167958512486221973263212035329470599512457643783602020647864715557392926511951795952559734737485253254302940854340998202880314611605680205600990665565209120144366809645426153564946305951197538971110866210143651764613569634181905687777820714309242900575554458681639244285723176381342476147905671563150031636466294878873505483701842820109037200251701846882465974737131039194401705093540245287103862260561609550030220670657155619505554417162805775869573468795408398425754978196959728823667208193515306158357441910717666604990747337412689640942985456285546973731318525194470717945889731576644163817181675360768026819255487270455788126404071334987335888014769599415037395607526638792299907904038244493931363811941949459739481792373962858981090849946454050291318862661769205967929218429102401083722435647321476835507193826551362287478118574297767996923617309865049531529735055086087777752080911095012879289193881239155055897387881219316689750733981963916082834842228386206827854990272926643627806485082117556414166957795187820056698690388860583491813885107287079055071825731094549064951771825631686242991629081540180386719754754597237591442414112353869630161673879681976650824344311665106245536980971837666316036299127278157723193066230027831358628803474742992225637975555631722024874890060884737645879989614787449569455233451240226537476493758900658602432966200136090419756728647456037606701810587928971003784585326297824173845123168989611624620799111599879705369615557830504409332725848838859135576281537263233688062993715833526999677940240673138938526392694133159852874694321233695065650870001302418137578011168162344391525843383853221758968994175029374669867628455023017796663918714584712104997405854588438493597004403186260019616218568126311807176120720558493092071191151109440305018940535102759470285054364420224558208021734414640081786881238754779243288735272427943793858630678985761888226796520672312724878864921120060620077284846979323127814815001341061152703011335568261547822325533245159639687347416709696210199104342270799972663610010335229697641318890430218057375877881522589908378557544036742725272953834488130682367370174239048297567184774135539325703184390010204064321295648410409719159566852727804180215170121440426706379447881971710502751811406162492532869907369342196679785260533167696692519689039659410592904081395660871164558497319813812794258640779320904313298152107439303093577151682313314239759590670747593154242169990804396300324715997623572273682918529934038523531424896663083471056972849808641875933759812913837349661753372561018033515408025764361929727924173660547229567700368848942086157188193055726131445228181192289653928916198759438694860034339815195547688766726647155723674009412952278220583350868639062358179658268295463125086167958661378429252840060451877416101472834591832037574704512189747036067563132639553762934077680824307018276554543920893373954366804680531737690985388698584226056924469496468441596708298095039690274925895580211080636385395279085880356858789696438342932183635637282892955940939651467595337885263559224829274678602329672370977723519156083288459788294171580860205518632217148322311213173002858441020760712525019133208850040605567445670089905574839143454312680900940623337074816239208051479014148373943620946499894172159738469293308742891233504470792561786188347734488117015211916828555197131799311386251100009160451301055669129661083866483589979961215972483266071905429721611801579365141597910249150025529692250971804474477347619277801426713592696235249350345032303008195303562361594496433725667932900445940130203254097480535688217641893126827851767212820965756309153985428952292067539300257605954476046432470089922593589777748049527347043957346438452125536632629144422952014553802270403525525607992857867930740050165561591922064282904945365335173489298639935362830308343330099946292335636462748347176042385194448937832928285078337771225948996727506303555605388521219746938734187609803952206045523411128980069261834986411876769897664243322023584314168850297992680864452202629455617600119550819004059682382588315900600146056818297979581251277318513650149105157231432271298902232284194660003427017599171031739627700851120747771828165676329550103637125997018490306885116892072291964525542895467380822224791208065453187916817048037829157496583420442733022110370886113303904704862415473326386082725271332643428134477360423994962630036060570992933233226335662379724049653774588627281387793987202060105522616280360539918548222159384948650022274294099334660836696917740410888760913685024571375487977297326825139758719818677376775786926401280028263053236643209632651669060179871331438227320114531491812834669004677590885475332554163158643961142558234342415524946765484846689467478405285812666388226642752747400847573707189326872659094155221162089077640659594619770355817221278610928431931653238370554687018475115636375344434197805376209805684809337699235845711922673630209581621913662034601578665193796450633921164229890608946043961646259761773534522453408049681727722402523874904333770890673370970621331249090274852560328319227381984943896822236770108073457978796999237062091988537396326133580872399307948179022414191058003399611090109806658163598197814742317730826588800356891844135454771143987925612086877370806566070704717074835098722001323663848155916885269970948029835735051224619299281877838246755266123759846171935169148894129627875616644409070096510321329352474176072781523223144354294840985928862418987605244307779310205928330713920482187081674369270957404674604692944847803117019318760051469436171507244829825978720027629262222888370828128878465870546107260010709619897336768372582472634686448202556444197480885449022922603713527545096210942117983580042216179910076391077059420152099546603001405548091409895004825174980326169342990241438533377968561149034196534560381791408919029489008080244490671639018133981368270398766032702016116127924093843815454217758295155697165433602911183287662670123540773515053618143070771731296560045716741862396358173793725758152017740216936692941813750451360132325200152604230614347823908759927852615123394245128838680877462288885465032746031612512802490926476311303093483212040446922257006223704871866657365905503596597190594337037130398773777404184423615651651676749396433312053724724229366649126354462810278667924837032976757751023996798306885550229084954609525035937314639478133250268771691613500999226252055989246967891057356945799533727585274732020022205192265407965028529945994737479913337587536390263263034873566867142862774336960369721650144932327506555837464709902171421881813847683577181154298854426268368965155009116380173283864005655662089022802035501076703058151993595315732671162967646596148832782435466859610423581642724336116305891921812749653906626417044340942759061871900867104395910618080268894922692803200054573691539538304089805805810906245391967878848204149042020432164890088110430280274189318447945750391987626469371604979735983104127213859807186317775491085336873955421977463531472280873779326721103396392720990776129108108818121392334491674197415483891679534256801579119069911895589539232195695305846509120457467649253867041381960084221180568497476771737048215402740557770507954571986316304591421670251559510548608094417417095001777798162519670821507579590229248462532137840502022613471432895645915341148772931416589918953923265676418239801118294203277119478814599585367510692324031401663836069525552883397838421434003080177489091116763649718942358582234135615382560592778081336303811622925713882745565357244815385870243139553160280123104819299021435505436585796924756781377664941219433345499147261852158486531545145605957776066950071950429516956116600532851072532019134434617929016944573398552735735468791562465775039904187650554952780431831749198359744893050887768615127077143445352335149819192218680428478157950026228049158964009757382261284816879191857511123818865475325724530088377160373713716353161695343825791939321668586565084275884085134228053338136306858534435529858394821382769182330055912580372627669684962036408130822148718459589737872301158181538137910240171412053233139264480600872623757410069054458856387011998259152632849702237939562079129814704811841769303743464414660925303015863974120853986881507489165997880748819078456126927787092546523727630220113329836523433207279369850259867030547314065749126991407568075503195814806652955487216272495340797195532196886885943679331507531551088171382517331051183808878667834414432603654759634714617814814005525369219854699541593520355353477804455493962681654861998721097706287420657691396409663624235027916540906486814711828544652526030882710117516544717597911645492773981900416808674195653905944723619973391826347562761028362347936029437399340146612669458123750433105073375132332821214007065728151978771133276518354031482930941023182716432933811156100974685325160041096614322171348671398692758262650753582553734978240900823458864487789492073585213275530054607234115117784755872584840607980365420740492238932786666728002919608694002038641584642400448212155466383572968505360082220330205950444240956421266732247855049409962801294312504416640037023083003829418789379983377900887108361915996148760591734122862282718457319648799421150996343666881648148943878225576946476628764512839110914415542146780594574655392201554686003723014988196677890428747833511062932872711792819921454301705398705619726308445158018520212768591828290464331046909537343411672269857186383184017408614614908173452433992196748462743627599231265146697504350384458644109709821976057563840858448838216829045051343445954037524228144204234291264417618749545112993336475023274415034389902134116641452504565008234632570270251769061191659360118504124050001065155286752805787079488396797366270824483926230867823532477529038306394627268290141821950410727236579465066108663042833231166813751023689567002568620883390172680668996023578599128288825650154781350990222503594929922411170838923062398868918287189876632601555141067926321530803586013179620836540397577450725300726952787458841690003634169543612498721276286823754531359064059159625191888923023114130048232752079303940611921633304427578065705957284216783152816082831867584986668160050448496708402708625785709921447123358438231403911388459352730615747015571246357083459667009520358983453112019243304801694584485043742826263804367251432277615747414721840620958803309570273207194700352669055728853644343618161945978051914020267889325370750692041583841949936723535777641070167174190917740775671816104756233661183040745666318295810830418657620910970087317339897319398697542895712184503546027540532554377320300814489501052178597245577249971913048630716930823145721640978976003770821316135880881022556990054898295994622936610180124303369472336206071675728757029488021784282437958788447568692415308095989715899169240454741894474290882769969034016796844300905043948447512061373316196139061514445587547853999240021136680582632603922449121833838382283892099513240486438898760602291019670880122310058866451085630091733119157338642859524838059227864220199956206096045138988793573792210022614563528176132389042975849136488281026463252448808242616804670658414776042851793897914969538211093398786557958371634102519716878743074959563183737550803523591414070381288967830257552980532510156486301097025817036870713451684365096161549590802933271824247555044663006972521013631352826280552969734581304668069166902253513874826582625118922339745546986712809876381493631603200440816925585531828001171435280704990855806306180040947256809292169675085356487754280355945003279434102941552354414052279836115357599628310284717571040757632948219478153373375464851480359924809279258902662106480230160200801715517628119948198161171158352442080862655676092841423490396268202281251756044637519782049816788684519536076641126593270711584669016444981446794669723021393725292121369800424622889272430509762729113585605833869569040699644888357836472832271758968296549389533987407114787617589192224252575507532864906904176356555354352205027730968206934112626980614724563633764712649323826094623161903340372857176861730642373281656267438515848223096916769153545050793816190665682583678896226637560501315545476116766712496626505783543095087034433544446854058018998480228446046288915047737754561710798107359573004687558805885879009430395816710127881267949890708337427873508980984687407352770261058289411502996565968284590899583559583250649582051980289818334498566361425365046876628699239081336094032590137421678566546364513182438670988056716673390731070697090820480650766327374942628501151587085931857781379269720077433413897555194312905428072151896998315252434961024363045149530196365462326169287015021597549541388491999918435805231230828389096331919389860363478858393920621531217198077474796135662099086262256794870529294082725226523204912415526613138492266330118051611051985121532480693370104104866650594402173179672133276969131498178035180702009252336113721388699281159305756876791640691193260137749170848156655748184568436827907598808333439427131980791311873387658183909388542204535231250139432354288997262993999962771416637861148675788371461693398550589983965870273168419359256370765050473195689326010413634086436201444106535474618634568888007764196649137221439969904030345052658936014906025916434808211975384292927600899851443580872340648231864194992282746432156323110068594290557613882629991602093800926621041794862877962279739734882018233286897505718887158904314899398620937521702860236641597487588682096244565467989322797839335792607367149810896191678319765546645187808996646233103447561299171715182534660589187441402027956694218876705307217344592713286621779332360758769206863744615937112392274589411850597815589782183139488301613638509159836615975850013177396712543439035686477582583488302117465042108484822939909510424296303235320447569010556323303513323596899129168047361193949780168661596963787912518208175239204803070311189944788674202937100023054636265821520208762869583282269520505898510594220183742810927963317676983236603002631288146087854770121272102150698825601542572946336126437159493721033754934181837104946020579871780071730747331375711972217613703679152903870057003499605899063076775052725634139244778553265409980912324404801985426142645758618147477376485914826909739547838472180888614030633938759893386659475367965948280589327295986082044550954869580874376736462777406629412408580244273869660549827738448843652578440811681252282888477595024612978002647565511230883664059256231607706937762664941147214534296988621664875725876657012902782846416213703660825698078762511398262906945941493231032915464290270058225360049031622986168381754217298221413798371207488327879742082270841289576856645658619741200802322257872475856474831444873414855050264630218083956138957142328338237175906564243756599988177960497790975149848914473379478992468043083737285456313047337549210618980827296163843521682847256653064328153159185940425218485484723946340113635999957069998436726013160277714267905228942864729761943667110186435750609020518050784485351482380214034491990631120848656065907149463872241252199566492307918786983878797062665437674649768776824023335589907758003821311762624448417871041853699244763137062979329192882627973175609079331773160983573909698787192608329403428898753137348801132159786711021052343873241160437020917709369676911512567060443025501841199580828247718770650411743451254307748748091675381691862341957914385525615803889996685899068983308635091104164345162142985369672490848891010321458110324418109935221527415115650002190666918075022392277745127464743202104563180471983231447636572371774998936117060656282748146918380177699340407471125131945668513609552844124448614627672558687119871838711728538471707262582814996153942949918330724493375716146756246204369623958749955419667204687963892758944893928812574076228763460580773806137973671793742131272745348159453286336364555984209424239705855663961978653899380262046143707963111894867320500774589697012666168411109794839698631234662953070370840776038144915970768210358627728042779740208712112020139820850172313872660073557854183518795210602233710062178186350738515827643627229948713245481255660697792881401506731120512242984395809864799823026948082751188894100011022306165682745925319860128249696558942357334519458188119533745449925945075627882229022566018315634576366008492056089436981402019525829941940968328294794639073260949454497797406680822976167472922773180418761860077540785628491388781701955112260036572734268211892455246959999714662091650291051091943320565647516616115085790606314230059277586468477790750258413357530151581364000174625023186022369183029691561715788443083785238196732506456361800493118032769451277599536822753810568437965510610738946792855765632880450945842358437757829352890736630959710031507145451334917802441711698321838788775102746533667977185057621151667607214738295894421946843538674261984967491601717622269021464204891866232668674894130239608370792839396359865831688958369025671643822005181498156611946004577328937629497368905301507814523839264973200491366239441675713912418093762353116319154584641521785477546806608912738321450632911998491025234494065215432293805086281760957626929025616825124077189817889579464132990262575229263956877754133091355842262660221453666559810503246366581668721453689268944337596688654264769633247040626878850331683014686111212057190650589213301489875561556962527799172768726278479621186222501998319226588076465172978211720950177108644251079325882505141493980330413635925511695897297619474603205810118264692849797620416169991280222596490651140146175745685689403025589387168253210950141867232166658715211645494924236040860417225401492325239065471862231921662508775921080648365188574909349646972095366264917345069473323287585917045384597278718555996726671590802362426938056146644543472927374720660493341181638192564853370600601930333549414339057976142956584664302470629335817534708663870371363046922197441066664564060013431164909683852264122129259597755881054131105848075823968179283476283181958774714601370181789997540563195001501770685465125459598515466104014633866808495224541634494075535190727396473106281155787815142965190813922285605838616006853036913634367346224123546614773497190350228115087435423308976364481379511951753771548658569292642096010737785637003625574542032019377396896923317431834685477807316025510019239620907662783952446633432909686266447493717221446724868833133227205031197547447591170797781978767501694638957986371437597444411402283160886935194790695700943152120671133289801283837395332406640052965455996622871706890097349975794468509830478074338071677808019717076790850179006981933232193034225037355760581350944317702080602817973138588097029888610547492478409701181022685533236900970803640372819813723792739642345713340348728842511843843873113445207783539017184149114519183442735511280724285184772454565079909098140798813723613343652391011843371907396764645144724593599292068305463008091268904506930260441537407221342896999518864779794520919031601253580769588450985895340496728455213058770052481219673740116218524084851708871388937220038011557266975503599683393570909902224002506582426113877218718289581825742998606107206296788105374680717184529468802230721652973445131693970365709475429303058567856485076998997796968704748829281624920636254883417064908681093601100312362112465593238717153249789697827824473112294602809479229927111338654556764743266126068218404966802184879617383499665260315222845877207266042929288541690988843175133332910561878770653141072658438931191611196888259219301200453907114196388211870923591694507323327307578035482102570538554764292853865217713520022318997114786932222523896141732904365631858033333146399442178386986185194714688118909258258958815859254099429770080208704867817888533607776765636017220549182290803215092145332717023492561615721638628965437580585528434081107763876713668490985315807188431060626739083506385586350676647434014398229115594832021069226877436075319531705046923322925775701721115630122700207715636635814048729043254096109719435224928567221540320959045853696807307599061067830031061303089614028540413259506732468945071500446753260316458775676891357062905904849750250699682070751764664629415953774705534623035552390587284797994605371786105220192233942047164193303742733743451617704001462245549952604975961675712482690855080722548892517415348411304246406186370418139064957197762873790492484654708510929767922140890906753331722915381314461480914075808098584013414479540637959400895002843355296849535458865159230813369132879673484118706341643447552117525825444454736098003582414717111654881660782525969577242514695500126313892240848570974751587247208843394920937295484799822206942110322692555475610860495074835455925046069780359694943226642074043563555700453910102111610274767071647551068527874959311273821393295135512632261780242167833201172596536640080298800601547512106115222809526404719756903206875052490600620681415633223256144661843621633370702951338014844285903146171165594696292556401121777041150536865196598338083286981377123252040121272458036484656537321022724967076748411746137590007018608961472810187599367224799999988821584068658673063889398583907834417216488445046586252117089190871628291144980808256026755183296772656114561814165603665158400990009122428708943635387035852620895391085222317719292499297061685114539158440170874786083732754067491229294164391287819366110025670037474577438501438512801017958079855472748198149078631976170296310871079904364549095558306666176829022005499496995917867851979868526369579996279695494733462716491470811509105841696964904379054468289703540916269313023197213704323875414811474163597341180722995509948508951753041246651921370349402820848480341459336035203516895957201226852283065063144560176091011181179267737574253344523797072283108465146125545462992132945538110792168403371277090469944928895149187972787984149575439271584949306787323645688963153642736828749290667052659980427999299267378607647116140527696563032976773655810087495177163851445495023690089834814880467301122629441657086440858305433551716400980950597208920284146180196609012587820272360829758546871526236255343672062956631425591491890418209475148733847418491996684145942946173063277470404148509929888940238420348757920917778097738738046455092496334145539632615284635254689169935227229660735868716984399133524941416388322650424505187794322939535181238775050177255358786089469304869897256741969357344862147368479431200942635841718196555576749994083247417332545930202762918423650538648003573972640851742581089471749647568717009603273628410463789465705993645263556916790309105083731914108658603843402859884405802575736566328399246464083009803121200994361115901509147584819600174519216182821387007521387401729814795926445347057021095160616169151522670687875378265971676397884153268296500761006986457629756459802044071345657332352601165932921905469407016721739859205246581767881054089785938916443531351567956297373745072121057694623376312970417565589504195283873125233075515057236914117740602198725290790877194064529058681705892657319408301720389213647362478649495981729815334765661465224905661515470765098453883736328498874944775472886762209929162182594891010122854687847993614979488183669671930122537023722691518134151891863668899602878165871482641642634323210611695455933901198711817348456163196917495868760430915798531114648218762921398195323657041650196731011618986255149981766084207848011708477236743644855426356559764305998740812526828604460101445917506831332376409046955286378318189720367688019215628962912623989105533110517555982527118364177475971407215640701131464948299837743277260682229937151598543147740461823668039456427477146945413065858192073539326593202157389223279009954264740019390504850761411637263235715433489679353074128120622203799055044477593971577837972761046204699378810610620628723408732720905120200625482293612430764871826731355321474298491057607666315863261263827681943320073002945444053691462783377706434088409216660542940876999356944208120382768993443882292994294016941736334222039853212947820037215954880954931983502403080767901245439029501020349406288705003285031349185918386570180125457189292285388841172989885479505073839603602776950443910624617341059029279279221656497064131192457195378225146204885073741085754518093762430369521820839119477795956485816883431711416469577920040901330800846010062228292610841977306655745241895306260611678142755924135844060341558814673059097807750386725397713575485800503544865921522481374974424918473851293174975735564457659434385955484534588653574705092312155553563412855392460031023658686997800615480556309633212195927318012110098881656230052463618674891835862211216982146307628461074612277669519091641859751819774525645603128398079932955275417874463725230938230324119675044091530753931797442662584659967582075341447312126526964135300641285193211977270818719735355588510310707838154967969868944216719489070316695979514016271410524364684897162629052406060071751386332428080740098330393592032461189669478710244852876346499208431062359266286402680156059496656054672759964141500342376361907033546922457102941684720607977298206646717467057318815768730238273891519705756037135851919058945357405010408202899350347657046858700199026985581949558590453647956976401101053299282818476896149348514931546995903886946429437540481686966738338520588923783632754231849540360801003482297473181815644959737636259438473873253893499540579941774872304153293376729850038247359079305968933075387127658284423460027862958364892483599868915316934553250382020993813532429207397611970077077443629633785959551363597768192770462882758840363145019628716173067394112568546380112278164955828786212638882640120281987129876867865270073753376363286877138199551437149934846269992199568857936680998896214903776469221363964517170811776841651907069381718936737233284657349689853001428935412724824108065617674801050980476156887036125536650055989530668818136104014407995383461485030377185278975031917328127453480731881310267263452728127141516259131770188407727488522794479373620011415290301866498403483161512790141223304730233584749450056653593262479922979575548122403899565211564305652637566102658162956289347363511427133119441081958431387930693325164951765378314773246333207850610791967023705150908373961149802773746019860742822328052818001793300930757169460348818515543323299834941289702862183212264361211854790149862925678983850959743800783694255220926025714386596871351310599687833915114770125743784608519589649814794847158485724950957467049220894904112068455503068685208803536796923402561328081913302374180201653842665900411693467167296623259779712470335327942412755121499770120310451908019406174391646502621359002265551447028117178184560673289135088873320848838656296430673419169403746068117829624175487378729278786060057559567458329962931372719241626351947288053061739997569496702953847582541569977999890907108917536907808587248403845584747204233280038312326907409997594727701878339842922599272079948062335973191411770920912295453521244584903304228810816842109769834696311224175128833908258892448475401358394363147271884714543767164269398816286968323122256682405967980207972472397640182733681838866966094206550708427478746435374950864753045512406918365444447993994034164320814431118284160554536764845029033019177070069603436208495061023655551631568635233896948127679208217459977323313938044377516818090359835913851710940844591285620579983439518453391718693719332425274137807035228931209111982517773184521918884350488816480313664846101626222672017062757292239864037942236406027988197547754235909070304216168385808301318199172705076840318925495334397267516385641186281010654627466960164250606479727928180619022042438276719481950828842014980970778056300574924105758368290139645512924642512719678492452271618776186534798680016220993176350041360732895344373072566809155951423645743010300590261898334180884338221443548059866237357460558135676723169709827469480644930360821824360102930437727515115656265740144374434857903059649996237670416553603333803014491757246647324685015771774498180731483598165153649374945556800119113740943023478771505884249892087153482439101252221695284974294334610402324735947884526869861679346871816795806332089106254424903953583760568775193703926501031491440544378969355760929372945827159572085919052704320821281593410626125926197314642993948219782367207875237919720466862663688417139174372599313132995398573622425317868968899267948867245637977817548351839905671457855856401681963735412098733696932404948785276408159087784221760965133274412337243894618174833450688986018542134554028406743779816760761116325723725549158187691589082910395970268777855723582963144408807820654357818871730681890206891469149893486560107480179425660196265692117144004457413736509096341079458199159453464157457188908743978741417697196767412113948038168091572785515015561799304795557260562502496512988883660960431750950153959383540472596044574821728003799204008995238220818170839043611929513483078675460548402293030090964986696396184642029584475412633299871784154408987175182659297132643209424571694362080402270953675387889904495300459031927237982677908782870510379837472691792672320202101402551124458190077055874361033125937312380916297769382536478680928916320882445600459181758970048757609188269042712409885069093312645677134572213413817110914119337747624981949952574624267588315774090638383079710094081777607065975837904466258739588099467069024348321818208261409493729227205009875341998885742954808891187676961074002957965587934345507511549062020831576907409172696413488634760844126552741286816053090577887629432857621058081929228592898302994456335003993194038880734641995983948781609195637826537167851792836838383892819157860245959643357954283734888228005077241320324922563202710861756976202222775401029692518270370624294987046277729746628055558204773296409105322847283104386722957016569777287691829394392730446795950041275327681662654389088445400889750804172990090437843793569112396603213748473605204888513144175853488300315528931519402269886420302969504201248232983350683150082846755672818139001425720487710547349518782064460872288504085619027900759457523133494922822456031374613280793252828789967271032283398601527221643795517314030949017219695833308046044519852618331455212800802922979762741643997428325251042156519610087469663754079477939125139322635720000547389533329712088289767321957425083198815356286093152645028360003920560947511433930659939693114139057774589758703855153259534247124868203708261210285703648720641772069121697155407637486680712790203382047471383776876410339687471521298870040261326942075615106503370770832271054806324637529965309955224270588936142175303113821118234176746201468473245768268195628880952228985153830699345645878133251083280174577750771693044059246933938301311995315899865601779371405639538799541747126181040943348235364134370863470503459971580058254102170425441315268444518121921232176443689587110898948584497753861159135720306284218337994388786844882824011154278135882053778518892044390747837252932062832866368544938494627843150417745638356164276730246425718028287936568941033087865572340090503238857360955115364509148273044834877840232887165657625998739787771873605991212245966622404509925841158182348658983950883085692525578252743751817617318772295288411644127449605917193232599030706284817276894990172867344987619769650260360954126336017635448785730230648687581870685164158215582676089018066146617935748848041352159175416586426440325503892930612295462030700557257738713789013032929739205226814311110572343382027479574389004255832433170420692735508452344096670451536654941027467277512165635832099669526425341023439047536308041165639266737874826452148803964566939330389630780094671761570508244774042611390449133074231459705587758100688619241818981807333504028870338833999826570926150660321399115401358244949119506082429452925149964410696107268798460465512843927889029734899038120595617822039594148268201297347311130980131283534644926535957716344083334688948949635930216557839497591920192306442455848260913300173771184382850834206440884575347001813816205255597746798659303614061407388384801357755763635921667051433892391602642035095374948821723503720172177553793358939044742392458452042200829252439037950811507146088356291858173608347955371909906627651022619152444766037703782663706103029428112898428377701987751458887547131487032418873692315894526806252759072865034769037721038057723695913499388943229051970951819000575897577678844271291742193372810440227853004561747365568667554476592898211666126881628163628650925123485512405945174709442800510501087206506625153735421122420614268452460550967904236657729175849109405125139903035374792996145247006752610409662567239092768102305612161027103069876236077555704699629401887045953824703476110607718403492358770147505216449023422078277062354578820584446218643767416556916573698653795788208854742653294244198566403212402162714760019385466313587569079539859743773490593242895063735528111561871689866461377334021398997642814602544623557450443393535703264405936620108537366615379191731461233156064388951528472250472816501984241805634673075532162342374711880848192708540076882316574735839776630911787012605704851500672519279351775606046491153553003049425426936906100239727270376871157878272372210765309367784481315626206080142128086571797813219391063588542426970846812758809867158142586826787276299692894006953513881014262255463949455872529755976530190999692108732071375448714763878670484815549312513236833025579391967753909745683062644128185761196441753555111040868127426832012494462612098245015297674395083452633647724937892685850930822031404504792680434419574712376895072412370676540848896399601806502352294286628323965620502197878172099076302881533168913500816695569813399638522942312168112997733483876841863227518988481382081231486644222098416669627746576614438971982245058841822093441918023528111377580681248464513751984102131987259409799546179771799725985529500830954840478054326533815781386548027574205037462857132948217484461700122217317716701703902281410810869568858471815761429316231680207163193777644333615560435573876323358473406560941478586633363259867230006493277572847296890208705101656250443825754640065405675672985585179816607218923914394451073648294320320581776198769496385285650501303492844219084466730214823007657868422690604113315896599752879059537007380522396201545478884982714326002980699499615243739100300177985251681028066775565645155276091102224530722272789164580740415754145614144445841829303565715041361767893873467703107312965969288661985641306150621747523671621209423556075513307628767398434866810494322679365452707759743345884476556678769776296790650115580702011032775335891533686962492541930187739403138098453225904561292259496223970700849230622754363941548432299648859896407758570648859832760370107792409481416662127031252678023258277484301786053988852210585583671870846326323438172710261411032881575826292631204637301526107138842051855516403771847556035766731880610259432485878793427404982968131203720800910355033045660358170055769183879136172826847822946421396262466721931609707410667413071489411591624518076891551249582714670338419543944273459616485202771982175592260278862733489483940003235996858461599623303398683534834886756813119041018276835761642103483912434787383564844099543477315630695571498000337577224596671137256999933858534140540841566386320470008302212714533780074938600452545484102562371276510461750317404507333604162381852640740727763582941060064978650590784847012213517151732459996488195433912510111562537265678780017173395216066735222296448175163320380765407363093779112886710059322463854549443482712832577652577832657837662970330252954166507145331799098366896426151945610978787492679693860607113383437048751286542874396487609324198390009426810618620486627392713711236022957318234069697187326989009600848327159776288605187491651013748432603563823552042660536650722274044668193383253382991973587117172577804089742359461743106603398905393815434283575357130006668883104704515293748914410351223637666941532479337687150263444997550209859882026412505713601529275693911098858850080990345828708495159861441250660030376215739810694633249516626161336097103489061932873683360575750626330401532903328925701798694066244401800589079307502098925398448171291541068715542436126198108568336706772462258064234040774654674972991033943380224776583343344582523434783042979553516353411928710160707787374900366411779840890465065242026827721569955656331102000832139080347730542155423276847616691145197257472807772036743040453352163872439575784415100253604032096989279858996721706753717802355021978028598130188264557608438485936193714869111146446507067961868690830427403294320314139355700958024819912448105515761863436805287641752697998884776274212158230516064462741863086439173839479164226004923268968448193395570103194788466583500848583286972010680063621263156539497608085893315029593699873241244628974216023811207775636483870385720696427683216782576381864386078861468691234335242427283710687688124760348580036779270787064551768849284391492512775814207863390798812962430839586458032097318871222223940992876887685092834513427890442468238408753404121098506292957956938847575793082241117474539302778553650590004144641806949503618431150622708714567037325060081824354657778155127934534102507908085022351574561038513473976246297833470616404459442166834434617105744611471935598923429610911050062313473464791964300205608561382165426944894284870057882085924280012914089702365877318012967775242012563724703726145611136219642971906507958549957625965709072071864673055599604952754951460366470609132950555842690662552844342604683743616756819977200747545976942119547164029307199449853390108879337044352427478055556801091379389226359456112363229828926616754271540078896213614232547129079271967028906124942386483758438848594344557425620533256940036311993598219909801597021880457845760233198363098259949222897644205726633877172234099763847751358689636247738209212803131875845525726364782051193262391669711208297131820769222229818710190406222470370229602154534214893032835302105162590012364313596898995991503666949245473569210388601737682976550798427751447391304704568786001181310069495370167200232468677069238826034769834365185537027279097664067845271400855946699292478781855015841195462003849166689357669283968982936177035572614183162520779596031937894911045134018669312837779800049041427605751052564788600066950629943504431002435469136373648814481491327653145542541527899365873905101776465056681466475604349407206346704826372138940693466658197551689278125788523178653925350128202365271131317228963067692508309445231017113378078338275731381079548230268673378476042472894506687942715229957139373237720640754443742293811502736045763784688354433746670227246412236064069705320676925839154798313428819980704526354794613962995031245281404096015937409160094880705312513000534673379699393227780686026734655558471860501661593049563018001666137383249539309361374599419253268832631709787679704495189837048689249769301635904975999732966359462545312237321948453100650910296782960680370094510281240439298299263874186962109521284534412535925563260773102911445946973277264413239180856999804840908860858287397731448523254762744066842860837317615332181349552515719253301212237963420412302695897097324586714187430622937982050460946154178716574035655735648691485426549033399225677946055132289686675216263040072693527178492300168993384259276218804484316459819903819314048506670486854316622398080528445944857858611059548522664258664968556877068077934992731959422031893051863499135574400303704141400503591669528246939009277360297568591307556708244832276513821597188719360667338364230884445009838460239448503001285488367271234579062935138984129363008888179597143717033449065862957245849945824638879691535501971327643610667974603289043911838964627484981889196163376051454587163487301311922200778446704014388694423347971129300212511420938337076255408020300138265058727074948385331260204280258888461441295228816770887389580443167726063166826369151339028100832114269176328772175408713570107611775769090240125667151529386381967017623148277267172874004245236503582372038859718303426021551146599110853598061810530064751101663185160806012894648145872311633218258491285169900106988991967120634517580504764552324077585260316919987023192600491355103075165847689643968833385076749010743894715270117221440102817706119814297643972886428223900304724048854228121324375535845850147022300136186074165549193716433123435686867441005911797087877588373288834296007684221880458927547427941199993357195766635848803982223287104708558019455336502591051555078981307127931374610050901256355857643737659029108088025047178277711429688863296007648036800571428937205989681613408322473393420842341501464568581480221970303582235006107462780729678521485580272211901444823388148241441744716720533186528601448748328183580841287077677507180630964359748620836049658923450581498269921244842000367186516845921554770538470999292361543178748715897533134977200548057494956000541719720349288947616832953491567508344282351417119301599132538951395066168764413747392732429232464765862023118481058200237048305676137764360983664488161740877364333113741629343633820276283925721820810116922945017979693104329004623393132772418237217452340732464179681400975333506595865473322208538359148027582717460118499823988952350381616997913751852729552833509796366804264050331609655335823531410835929132847940257084824629592598704571374359431782502798324718391685367295495138125885561706862491680508829539602212937184237395917276368061824386652711382897682228098288776966499757182564674244486207604137475623660348955750566237477543393544486402384424008392389881837300237407662673700426918645585289529145807877708176327913772692674397729553332170012018142153705282194045140979039726098732627367297226598087471914440962110465451556690188777430013579291259852019670171619671843473488084333470498622237033458093746203532421157946417003742017743531594442957794111091175090342788120704466265163113465504046489858703484200098294803753672705845510091040279967748968962570928303464027831538498134938696448389900283286317687464661061617012065475264204421045706649983535539952386674843947499491552719415179567362673627207070353799580214335161274819266228812368651962244558655934511622434045346534062717554412254074043247604193611386308505185140441580199123224427068531224093379818700617433263245249105607505566518282705772786609658918974672332238537814683004398768956571374369328033255615152548809180097304685487716008232001745877852645715632500165651424923202423511065750957129991515148745046654921301569826118530270387434908514156135221256378011747114821507372378915903055275247503021472270945328000891300027976445023339650619554309122514703161738234346979611705467335924218636274710048374709930420333456246499325330217332545980770265149506224354752141934878247052284740553264883603536815759779424810241927341798088274478755058002408486781149661559184416993069781971928548862292094253832620523435084239664122127534231885962474835146383973708532001345870298593097283062950036778113215151967357269039706299828238770665869210126689362231092018064477388455688764491498262158856551091651889030220956082055965283325917823287243726074663384448308192914719116629992737730925006455025330673343865996952349569535276634286633966573205580102401623167550136699862501069347261118204029231544778305904854899245474905875896086536697880316929216956661093545297630676571931691821135276743573016081942820139434673448920910087053318189032824902443233904774323695017744896803716908799323283933946911701368001000437098194295296086519877532599708119148267460923945755749571416322096177045948813507765738241225831917346098793430910977516183145646200154161364939682498690863343599582789118983743245783460199328281967798111334439417941049152794553767273189917321555090089007442943644907737671951588998321511645688615932194630718574501491672436614178019170517325843447995754104408217353959728430123499657893543050197933392090541080239726283335380039898367165328732041394492220547361519464266445555590156773448772041676466054004091884439069089179624728130528677012129291377072781127312969642288915186877204025537799267888297141945172353756210962528694838189573152636147241103231549026934722606596892326474513817028076547945783907998007343067684086260505570438134322447028278205580185582496032793301588569931307738508815312218711608798347396651242272447268607416551103950582573152843812520349887973654659746213664567777937669962760050687307716959227674756977370370575986586796545468105444979034026270593517164023076864905241793668626095910746001470633370431064455726250561853877950699170490838834515180115957868258585551156995386813862670306730095354590774512622264780745905036675812507655303717497544517397816480254968021481899938909526787227485161729568708032536813456360102174992847258243720243024693577349569448704550215792584093658034714692022965200895937369508476437652556958560077562256499178384337819322999762636569288943077991972946230610361543057951839973270118773206932735605197871703139890340584497639793588463928377714230322565843227679993732306813200818711197855061057484219106027238640020106225792068477021244890644356175015024979187045657647849339009274908573391615102934445829024592441199045491563712741810411623807164210280455301569075996265639070256189896350754004317541000160190821499982070488097944155891756440740721172415579131325812155445307526173733542563178217093466894112218762617903847954181426652827287974849315350268674008985053441710574208313054576589593943158433138936475177349416642791768210148294373846390271983997357706308501350435378868628875640875469743970708658828771363171498140004249858810231616969262609660945133896066479790943114908027614341280253707413173927258629164649559790619509200550304590456177994171944920350822716001886952130065415473057454225785959796258060005848067203685223736794165812022268480038293964477689595712196678641099100404814400137138713081419851929676421287386026855086215086903321829054230721451282077826374246448633376426077635535673658809675176246580857901034056920324998737896190639602608936259843995060334213766910682773116002384540920739080420195622091924314867531805456675806464122463555151956668688191983949205850400075399098991711145140586927006000678054504347126409365049667384830488579329257636641077296463874687072598437553070244830731784543404597733677556319601974832842972623984001069646814159129597598039577857724131880639750309300114063227300111627400959251316724440143793396141584240018546104718358116309269580666510536359733889194274645214570720687067756741237816064624379146532505646900945054448608173595968274584639578453733103445283689237145029779416331185981744525113971994635709876668117357785707689435746239632572907313803106784933964518947267138996568276679620237632776187355482950193525604958773091271095738559574320737939083866461627683982739200282094652916873704501070227499591115847899114798692082711259024742210005274787375617794033627788881484727029240080269565618818694724806878966518304695667633643900580426636055874950712205484868680855176883607848246343462381537340236675965437622151352395804604154777035201346514896204897700461155595073749830343545011179595624037364488696549051246175571667489967262417184269952741085903185111637451134277441250777305379380545662330499038898001322701130285684404835428628967156326038330875627087879942189638819080661231234259680514593071333167695395839752591956003406660398644322990697822617320328817617884045944815074543876707901995571748419967867753348009439452349457290897230335802893282466452989859279726656372022478924460610220996016805747833174600353710975345586377158391526604283045551286159703885075918260230045168860991954932013259130562955939628445220057457306540940167922438264270830428426907007025851659195501020069374368517145607797758147949139319447792062092159488733125815461113185166990469154974618522603150014035031130202113871068089824718360762670740525348006165589176059522037078624316315285465567094599291669123065053120642579163030087162553582415235651064573235664100791230475837597777320270641640141131720538042071387205557486688244662151537022154444448623755608308752103832580947047392093628224198401077706003066200113958486568349677172519055468678324646851529034221906029947123371245063265902581311846667443141631181410421717657857367905696493115291426605506984447480014878109267069683574702773411123108534806349202257301539736782153331086261723801210819266151155592019385339999313090468369491016965739715863700957290439654064615272282785944647535651219459264790520682579049481876093717529360879692531427207125369259355761028583363997433708697653759074836326350426401973408434627056508715472410927280579617138546125261430759496950209321848157442679859170099104569529903515238613588072483695186395073837672634564572907605719064047114406149827935466634853445376369523457955703009962225035549983590924643684804755709820997822078153380901514753521354084821023905387579402092148139663309965740644396672190252436832683961183098465872783800016699379664066187974112541991839461752793728473979995257027431357539651697978811289816803350290205126392975918869373579136226268372505730671983642139950407121144827295996884357566083680058936824513656379628584875300339264680003692513404457828373609084496875929911456148928630276443578513439987151161617267351592745997598283634352164947590251684318613452562208518880055280588568998933723800899194165154883094996469872859812357043038029476947569911144675174058353959350779997859241350910663143410957275211420271846154900472826945828655021040973216141310868453631702477054474835379298287663009077503833727076244988284077229894936330476614281662711994722671090437091614791768242298402929455292996558695014723407416103140408248572523532154011741670008247784267986521643088070616509638603829675088606280230757309966741724884703324830300892579102385013718142595816680999302158250767061405067717429249902996665139248946315454098977683681030020801936379350111239408931426319558933683676497370321692619563377844203275097099259435511719534996496161531600557009116910877192121886413480216056982749488415660361847019862877127691220851887431790592980999746098702878178890622589334746441343056358247014897193338067360764550871352901582829785258040719083432587256123833271890706708618889883132345092681211005473726070665174961020287947408139380344076139605295341907674300831022013158039308571415931733172095698363330256837477140285603055810130071628183201938719676990745190968390276536672442062766933831217496730517669508035030099703681298716942528209317513093868884200417522392452455762690599028000098722864674754759678210028383696212572096662899234678157642284107119171127369683645593145942480603841322156252010552279508847264800533609117611330755980238868468893328568388858108990664844622433558093637034453581056145995975423349175384845346309265003946688422258634097088771913668767641636516511963689042764988843638699977409516079653848373245731526922093794727222015806810189457112338019156671098554933163038746806258923353113499117379433539205098470579595747966296735819030832184038968324251699550347420426555567121827961749178498823762167375503383104309836936993910167679849886493905468080110816460415176377389280417472404396215229955340059895237479706771775608878344813571707576984403413828698862717951950522844103882364700263815050830304072328374637820095816993148187215609111403437649238870238629078949789472799651850216342141472342454121230547206620216699172811242845734904335825226973781481510506998615495948015046610053832896214100272090564682218236472237192238817466422377864633874484224267008517497223409026311107170078384303819958495920315807431666440276222284274030571099795548147590068724787856166668349504342199612032328498382694989700689785886976799724526803963644721431599477843205128363184345723176623360164556080206850694681305111706545972860222784333638267101878473262351096486138014105618906773121800327318323196377167071371047391286568253534026165232427033862108215070871086533307118321014744637991528195068667104822538079120912970496180500394689156431619223687064773443483690905847106562780508480414750607277780078834751476646523604388567186912507384577162804072088310782949980546046405525233598763420527877107225342045349999607600540184452982360046438034048842548256760379349552782493835894095150811386480210458184337803302749455520951902906367146676811300150544238254943904516780734865752945575357512712918296646426909510036888193598140808928188225800968055737564089361303016067363395591046882594497492338715613282025035987060221703996327715689845090871390327622518120401197754132536072721235117882979227525758678072388253956994838636111955944628574354474060808580852331769564095512113244093586919074983323523427252757629155419109072331512870512447710044812862099544722991486038276610615225451577203316622804217222206012211397167311407660712031735693603126279028456704475970888733678471998605243896291611093768897021713462764562355432389876008264724008940690205979543858635367603928793311662804756826655841299982479638730362888457373151694996764482767738448804405497378371360323058158800185454845193114983698408173455849539599292483064750977545275666598447874911276743971095506709705774670820130608529121915353522153328238311605273508291026951810424291854899328929207995896635875348900163587276084649789653858454307718460826172586928664664646606927193993963150499333459312050579182454321772068820869692799983729851381381091176323289622565414197629172758071150248538383521636163054114367036359365551649121580797852844394914483523611354808321781986407374567603093460418689076571053487027812869748454670540587147085099911335280866845192660035298423303947372541758297716978642115564132413676467618456330869993753990550672840111551641395575399441602785866716952904328571826108710377275928922210987669561626683029706279750863564321100345358498203148726457528048609420190183086139889413033608110843966832571270006751629777048016750096190109637713283122130132425429827385125128948775195476782721416244852424505614072975572235915328994423590023781192765369655626287432910835437590678255815025019146707022174846856785179692368815135335199415937328269673767838680617905026351061108697217333594431264593406558530075219988434659403114156276106317861276818127845060050331429636634898948159351028260766649484043480748035766656753662697968157319085030219585631344383017076489101789749149704754574543205370175432214099098275317267749840957980416119342692994969154478589573151361714535039060796514391175325825738771963835613637453595910641606587920408766641216468927572102778985910976092409871023641829456707211963498037393198951536732293657525542161280767433825091766165827593159978989244875776330903061838157915498071343265938154612703824988042074393520937628298314711238442938147937614913124163530219128178791433303609360197120959919561314690492356890625051764769597729579531166103158376929929770177471257308280852214371580114883191453746875462811045578483011831430011930382794141992157568899988274358997819557540949775969991430230026733839997618819260490261327306941649201288567588611566098782072889703245495062050502360220502589658109349279932694367073534347686173549003846980143156246195747817040278953463891162634750966698626969290682087562006092758344299124253586823621073674780055395425550303420675162265225955310569414017752513880198990254986328715657743468510295001722365005410282961155038927115657244729259847710283120173721507665322181532760029045892364644457272460920780148683026069873729929958468200185259090570753631291410020705494513403747397676630178565282784143741787561263481407264875136137940052537857813915134079276685525579712078048656504519246804411455530164823064987007521048080459057164791740387259844828127164926723428966738779430075702089850788598365430503456276833243156382471086434940110309515277074197646544526956601408750033716884950828808582950426897454057962126152616363694735872135847925481908759681387846612115964316362604451580810089778402678018885174040782075258885485907467253040122302951693145947274750282418328600491581512158057838421836059540643595857859255846359597545681051650560077788328421205979172005756587695598061297244765822537023837268509909087582523152210543788265253598935564551733291446449168663513634420962678703301146283357054929645728004039707162082693463742690970132874124505752107495644042858671415587591140555329356338800671665758229347196834674435119402250468374473438128537268054079444418447743418219235414666719948534537458176042422334411679647099624503513528886880778932085035371132807371832467633377677495450388869959921167707469743798448121809887561750924675393148014544663239592114543074876846670944811117722489452732837771335087668779575102343889406407084184867726210391988422005627398923385688643631719383025909157332645144543748914771092430618142193441822295636773399618705981547526120774198238007913764663769776343972013726666828492953524273799147078618253694699050457821019273831090210203048973823860246067943233509710936470632776397402903292028588634184437896099258715365247944938114775137910935613052402470339972043362430530363559479853191160425504746308263713644262068318417025842383351503808839920702796197833138294968010358881273835708661380140472802218246569773349452103301422697265814669607037687829457942582343446843814254562514176507112158523211190934513782131533011561877825073648684276844594626518011211065226413515436842583622090088876394648413790944259701057205185924612498152695191472499552294240936226737802600347284451471049702565032632765326770693243489219579022328590117532515334598249770487739020439946067631358908906366389186327375480156610049604758940855950179864397782282044429377151048747364394367401813219796109738383176750445710825287531760627001641185936686285841659500029333333527303189130420882509048454455191129300641039067651856717650695109123414167559632952282662989265965327126729454242210493375321505863595922684222404225178976410102410272770084297313996135297609143983606529576094021284841379149231850756277740978433921801381588049568492164489830404821606228165405523994160031445036348907884334032186237113629247893404758851736253468083187053537199603314393234661877516350245096562347890892599301315506523043963368257024721257389303346034112646963094247419037670869765887551697684820073243102004960745012275752140430430844573608614098262320593625042428897461296036458987157610469951487986240436742020531616259399327042313897610137277974937315241681399804949501226274502827498723220883626298843818147538396522235061378136378984713437636324049494266101223051645798343718278357001022333716390149636848666361813550124752833355398194244012043037881647761448055336999906660778019942934881074566566157420144995350765986523540904164351106527158606985733614612146550426789395865379428998311942885037527958583763831591453599808572490518138907145396546898227481127521472420014490466422297062133956943047210113984777610873234852326507708850062961635830099247467621977629935028283287317171388720412788273746718809706179922552340473762283869030077456793462850932233589798633804781676068147941456054063686694186190806205289907532854721133944074632569487003189346600892878367723885930190828343730991185045523288517922974469903719650886292262066756093848797861151914464515513763755138466662545557676382380436798357286071354878868533392726892013700341177430385011540504008940100247619788896458083315405172245870620500667506441546586624434855380476214179579297634390272991982590176435719480318129240273648716467272479096047867295830469114947605013966836063862942219417684416350647116504012664649265983676442195749115141408876253730185981151977312795238315594880837746348887521301509122948090531342949905170097252916310529875485521190186284140346559376543055124115741049000537450535690113959739983196727786524715342634109676809829250207962581070345712788038157164694304863621819282415159787665758910894287326534898839646135733162145419996148135126875507111264597845674849040325943280898764897920329371136680300206525029002612734388748512106549380067419172299647272471555839683913952681371821656804574538364167426172377588966443769060821120812588308333457041477630986373974207678971368893829706452958249471207890435566793566013247495384505293228037429843430268270374172634767150892776715702965588888846616624459431957547006627241722980678315583423639289698809004339033818744820452563565568497724359588767602541105152994996300282537460586905657906094344996771257504228308139126716555119825565368670917271399873334305557332857675831625065538968057871510730993499568940469499397366883465211323484265077485957734581075886382906977548292706262045211645986189219681938092653038998156852720719432488826009403092399501012395153602637189167311897547329233972458994139173548293585139083322852060964411638136849302570882969305264070849247445827004911317053965412640734553337685711697078799665507799581423498991405677713213394071087653661402183880583676509940864639623044733507256980392589067732218703759953387042538740915604975198389849195029556723870887680300519237586988595300111907735355312825374777810502115518992907125518988867937423065015748058352171378638261404831463599344880833606898704695211811459573375279933709568231264345663849926602793101480638803651776049018513181608191978861009453362205804886715535500028333923288911638144761730358721974844916088279923593768232618988735657292789885750976660373380238488586839988494637264513539742169466249413580414867944475892473401057672279721839107451621504143459607404222667873027778463002007057574234444396701747508703007143225746331908164090867010996060960906897731276511832663974220576689752817067102130424302562124151981657708640589755005616186905122675675129400848234955596504165896630108951222156448310955119258706833844541997998862142020870184395053687398769693222193085513317575988709148860358849586329734676943423469301773196918213394357605274124773538861809872033392153692516508161232902299083350468810636963948699091723052299763777249727949971167061354763194047453750379206999874724395122709255165315101227320252506112527499170646547108885727950270854294629762070348550954119172218458583402602744977744817754646046056788666388618916568474843196072645999688948344164343416902060686376806569681415905301771204330853738813128412479571723338367151837585951912903804122188390926040561104157826356313624031570630386889955819295685282345223624964745301367817771216793011800166768681131531015865052629739349919453069533478354832446895259475724791658834716341579713023903800262857371699362706294997365681450916513461816117329514213911251918600753601514949092445906279061794422161570754307196388604756169790015104453155835305906281783564149981647743222442009392139172757675842672977013908488353905155528927567207340588751858051913345761729257305128532290245855815955200771872020149583580285063403202661104764745749334998596450235461632782113825837280150309001600300963420751095329414173674387711238033677700949766076918128144650308168300961043647940932302622049176883218704163570485535990738741128027414549424987968152905229763501889680031108123031568322645132828443247147690486665757677586042337620847908241988570732791843984851414498791759632043842051129397047002120186725759509033469913766743314225262493911310889353363949071446134876709795135770098399429077807376209187647743232890406984745366615315792424332557027333993173265910489244644520662381198534861495124026532350972047769938372149385519991192319025955968529159747898170003079244568409097116089107482869147009601231451978571891495899945708041587114446298493100922088405565511050693108916786434662050148502304616146576889045947837608792615917153017712170474571540695623427572099985329983431041843138458912004735792267417884524817852964743322343064080320796026168455195284635656602490456152943611172124965291995871576772584579334242659905489735256844988756789080462729194439751731743109056384744921528964847315754125095407389260328120624733533931120911443720401514167528469203230575808623309627425065338394612483826551602908929524714173374777628336099964192807495598702481819609226587283838883690860424666576013905823444535955484315131801648037149836921179408626613661834245251305471895456998862309557136649216030289540965370692380772177772830887497258417829358644819702028966567233657149571429572115210818517765119979508669857009137068780484222952846853155168194010853888132644020132980300228730533698575798032886341890812678426407149837113365533254149066919570203397749228335139222749555800826937911554604322085812156365850300820988206834541770207240931545971605872463692792256271482042893620476867787138165038808374488410810929129739282902590015337822846856757009335096815557119317017716921449867665614358363865697956823095703306863655581752430649676197375854298742811130751062416827836098079323372018756702853308474766596588815418715293955766848340415485254799461991326082248302917534316305528050778926367397581533426254691932802485858178112722054217439904776313425539960297559285906907383514789361336710200077134507927584895279538178145685170092205708745278767063085002723059076571587135138673057325911076677487033992603525028432707055236328673254279699339102925725785534772341615153933846541233391526000838205128156455958325630597157716286613071798961019109021952863548462212820132212431910607272061891796594951446375444597611698228321312011806156797848722820123784997856020900926650024487237569837181478894676604195531959391468217999912423477530266277118405298581490241974146068984014511659453246914678479581547130776986021419544044041124304252334493504245097340478355110068841776339196626452211662338977026886551621928140483877268730399443779802868594740043530813290303722042339450871361186880077757548523123355185129569747714086282680367951171461373913551280188916791318353467540623577547014187118538449204527522098357130892681797300697868347557876444576444148007557914779248363990510391081175448041175445443705425748955356356859569471298770943107902678324424882010450534219827136216527703744019407360125820172189146027385024750018301830269690902371759999659252404899305449349398048335782749608909301946188894945226235543109161051883968375908916627074319694568731813631669928282335526949951384973324422114828691199111313200034327026240831300023947749135664695886205916316247516666339379023490161505408628426106064983031815910600265224425109081517534717169505625276243270305190487665265128013745697276361506740146669633917070757049372225060174899304382302596855304001928306255785103773776251273232724731239199689109322145421103348155502079336114798508140750537425938608550796700465024911785514313453917350617325261249176427937361495444785750701399295579684866154516985733739928387540406911913087606791774180694481808437942409561983249723125174609533318165264411985049024709570440732698461940795690087825105415952322122689947378577393376442510371206163696905208585703839930256042104634181051044222192668956434755682930032095459294759533862202589647506695223749270047359342734628729608265704306894212663663961419897523455406676880425859014805161005476765346015804133939116574878066809350444387167904330293609410279580029608365763691191223343386037803494191847491146747380036990545592609014304004216737797106991647844191513116178715586288150317170719349820751187193095792608726493870532253418285150011606597192871023363881887389009994834820021517292233326839525235659292199183940783835684037131165918887136849112826789774712657231684316827582209267887523628419291482500079885467359583464828368711259687709673495004302472932520302361877053921732642544319433855186872326907582180566281681005231936650152494598652261332513002835970587302213050916633355728841550610649346944372279760185053886726118108748800041675053780216208265475877439693171531514826986177704157503999951393980804030824539769632083393735736537997367196054610846731149651637207182515714644840266402009245624739991834133657261281185614832315666002949365356621379372496571658552962467124206744534161950120123109521114558036821041128289155700110030529398575783335802251573957153340396017924500016762930459250023845003419280937834084246499158332615606529653350766932718329797403862499265012629638747923005714828931943674284184822762293066864694507594282619004771844934711743650753777392163720973188218035131226723100048015377413318583833957760474400798882505906660192878110331339593961569223871072910958720668070477699448924881901584892853663128354362500873647976389704156463946326370605920938121000498020979453192915356921735029520056246424257980359862834925498360876969450534482529402739466878911202937983736722365224537039651633015778326252921807592562485806580591150951609456723796049875100138028120492325528973195662900497625577143630119169608827431879644566823641369798926471021711049462719692761261545755313793157541951347641762832839287923501542804697679549195494682428826604878920861560439454961218628875289709424368501148287859431272728792369681453638585598206586561904398115530193755509948399225275166841175048574532604514814948689953090165892994881430771067792466240594930086403992056467992227382430491536785763509487785344951496807265535757644035538252424644748098547662665531289323138290599454478765411288190106507517464285902960442214280467877400773765430927955787522993044442481899326192357042051542058563600774873612099616504199099313274063260801974890191150309514610431282842830745838700939631687293332364176856763089743145171775664189587809111670273351431320398000042184411018579291096989470255728137012988943865393595818713094514284855689325059824332784150448639448426354629265612203613579893943093136445624439844540379106368199443109137949346966591712891060521026514240242482157486829410792133665853723035339726580324396723696012063463501950000079432632030140646687233084932554897444445482074949798888800225073951052878968500518181108905037080328761784745146554489065394915015543713819905072510487714944554724510881917632790905586238706836407796114264237759038416190154270620949667946828951302829423861009493111138851740622936990469354013701327142991225819582908886249510472392891240528195502012857616972754150188556782978744767505662265945790889508882750323545624185336338820124132931132784947221055773275419947492168399262703763083768207429722103870835693552172751582416128693579378257029917664634802242197174811675421750255137466163701460436507522124859031063987834703742222538640607570658210937859690618866822600454204526610546542149265711198267773366391053837143377336530464636366588674122162012427743731989506980198673924614814360881495349894697320467709215300457774273303801456138081422445979007616383075592229787844750589401165633495675710203561826884584747775960084293335684648355524594978653641091045720514379266352820407640070107217028195498787204733975444609818079271570107645899461868873756932571529140670660692809173465225546575755106483799748997907602613857051080179250116156482628258096980408721397456133132989340638295741443276309675841849852164537152013023806410452193123986035612402065268082376423048360357928134983529753031412286509470490445870938727627020507073561048524731561082640507806866987748101220322497689372561911055505309649845943690085312124052302353260130627949393963948264687587216502101313004821958239433547702780631626917522569799375738989523549473217976982034294429011772658628612391507432700189531850920456078038570287879441445936969352051028795172516738566860701530204151073039162715693311260057413681526466426112716173057967356572430710347867059083254580594486286115943059354124131253143762681362039619668466568094130535826908937974432499768634387632966246488242191967241803941044754036432847260735633891303358138640608855737937473071019774880664115235845857882505405614114034239622817146336158658334861174661974215994448619673250083166595174767154294702117170078711419861453656586109481926217874983302016929987345845807186118408126196527904324396501027569979397413021230103844044809003434901989774145437271558769458170407346516279279014936409141032827477954241933547144246106863090656866338164324129398262533098042268507852311020086971631796994226803021889253185395990218900706260877766304049199444605205307005410905397431662350846238775934050752690826421862285976577338616147549120935371352808927542314805759615622841211916314791017572858577373308706976094700734328367850330539456557140746986182336675153476020150448511974670563893697986378085854909417560796325268565377031399664086422311435449900596328067716685347699335664771059706873862374607346709831033267893711692419486863079013343319309583734324339524610426576830277801229461399241142494124877202269592028028631170586858442068402309147373503449863115838162094400574563508151423406817118433109178350691151478558756926656841537432875280089655310713975405401514100461138744555156739577732516081156148820949279443351007121800461079914087790640078192931078908426519568906927343320456412619749672944881724621374532508122555239026481203053855953653727440582636396750364779351205142913585014080183158991957618473623347059359511307469824370030979297055605845657735466947522001397274496619019243792053521433103240723587205915348015884547723240755393648886491482568376735706807154470239730770702222772689638753930014592649133520044626593307847773945726505463281482982783945505709996786718276052724874282262780156363281889634434965000849148593610516468037082142538906554309695286559161896891460661811495909260037638706085334083459904083734390937358161217551592631958339291950664806664601356752289275838993100780811196310777341909938521189792168980007487294639962328528935302456690907596444793020316426953168060341877405367838600965596601423501853699384634475916738609323693720605250909718532273306939013937640872402255523285589036857667972329763983110787962269003013503730719520531612225343248418288822163784412412700172356554906987908092643663908136378065547300910229861730363470851107593322544709668042094271438339566884354337042578411038217743986367202773367457210438097723662207470437891182944135737509110643835414410193558330440166239551388437580386847780626034590378030331784501897161034821567981748005806775048906300838414666770949150584397612797842841631706433840974418439434203367894745116772151188561797144576406489710943347938589167087184043286091958281082824013600393974897698536251926803360484538349681165957174861034397202332007814936052301234529973925382696691926177071752981159708441645742374890314458325035517117346868494203638552303480834843588852659096740188654845141885548192160508076056841876209811211716557672197079712904813927203368049498594008137115972912324395396741836962387864494321655554061495755858357500423095809444509739623004581574290799549069530720788986646186041877197800742179705498170637634481463590531680772811307073406705933270745134171377364639670203061293414651807602252381119941565876477180660857289856633161165668807023409048913447852163272949321437927575234166281985087179065144984674858025675665864161126816717916846424456671305472046852568050846929032945615218922494803073544377510177172507292808964376338651277617994950622672350090498266150213941967010310565346483112392405914747574997531291307430263046780227046382450426007020446205141971078525216081645720564860689830059176904474691509978687770986389615089114400493167608111027548772139452942244480740329260905268529036721456727933580302260638862693297007643580633485966369777750210359530090777882576129652533257975210617845263174004715491158919465433662048352073624536750054467495512442390304537427211625300082784022930591228498940981786308646885360044958831017319780291881168924442271475209516620314613632646957183302570054085770277159422277817747236886419344704800793549616859928140846613586361155710639075460492451496725632145011023041180608189405006781989375533051828087154754529756333393476335677130525916142275506760169576809501083090122196699671918544254972397119227911832809921441143329479855910370341117967882574218403402047705340756648884052604911596152499121172112551658595803231221191910340239426042082923891139491774127339321308094702765617778334247920537935335092591979754656677747252226867761981451194275633462480039572920056864820699761536692183136670176424777550308969981004837422342722693018306523456413342036887260693309441029474193873103257986994138721735125509670543305256585670177862610797488554579382123838374312646284206086333745231434326535887392637302659814538971422989722182602358952749266085350508290642712449855656638918464286433634580303383715995601797215171591292092877745989016636370789329322190786286217553722572736620913769180759885689438597143618018035835256994868387614595188422945358575822027806709468365425358595342313481737756437768344562605759894327866921913236814556839198610143926182863804101604788664734093641934173233322740291452832087158876185910665659416990278639244058042332519959549775162129949713948664641617575326903884263029727845011134355521633965649688614471983189113229459526783484789895952073955734549692690611483050623782948934847411689485035073818698292710209771150236691658088907891046687108299155152352258055735298300189531828065172476386917143504795084920779499496684252138466515041819097734728451999631923785130301477314872725130466072320774669408142033347164956591182410905556229423458492038809230923150799450098006000599785228776459608770542187357286985252014467051589173884565110957464693979152458743904582388625943986202642553720406019361138831195276311747199558667207760244988910203148278768194700773969605661982484618494679753241963142062806083026480943296567907140766562209142146733946514982050145540818562960808098189241561236219816852768578611418037321898854467080822752864541470615334196074579960469518523573802635223245705036856039121604894068052017285508153843876093234447785616817228153449638174120157669951020384660415799821407332476569894816278375089421949323783711500318345277819096505581085414381707365899803997450225808261798676208435035142966778841999694183064078144707338915215560895603639760781693926168838770192737290754159700694067484631480070355554895151447992344182442802945099289391136747062617886797006517099804286951455026857548888700244762121010109024514096599441000689284501435145840727036550833399471810522329291682877683207753148387800568612266397799511919021589434216515798073890490487866808002556950200741160661912867865841290570169718408201199936002103737938278616827748118114677096120052571730148888447960975994224186541447261444422033090375773538228493633736917526219824912276518148429234399515404635844043840474564881135989845728709264216053361839859333804111697449759728169894057014595360815036614454939797489713832576851476956282075530045262507384952082376826626370814693459560653787564737422530828604012785754773198611677490732645590857723173125597881787718376546862619075526247661398832790812393164703424071257606342599604004477412351249376705420872674612703672455196294097651156775444733705588263666921049594710488496351788819665655569647283284073212177331158949476588153962649392722534063804491432457647777060831159861038364719705214822456986541868466988100465998369009791024228968232312070917761624283145280216202536291622921175492454216833575903732977819612372423822820629004155592568555333250395141345671513004567178474488442671812364546866500165723335856333339370503382650060511561586037694911143215411820227020359737545741354284596837384727921168024683562910079075968931631514839684049797242243351553120767209325812183956507503283271044538879286958305009194480001674235792734641735210092705267927834223396364349467691191304464345983390469403826171869424405748627871002483420420392150100890670194340636869322611606101527369607370254634341589444649598648686372150121755003546522343757099274491531260882997896438333902346111333028209190185661623804087794724435629446779663350741220269647304273336929693105236914013183020884244343938176500723281728862638445033959730662683400372722952361847854529814826498160024975981449305574176924307582759156652252913174153067640043896882723033069293826338851982147247936856631901089352047984621907122673549039706372930619540843432068518547529978409941341663640053426609528152931397385743698047451281918708665313508377874910615477698253045970042135130464657009287233479752354604054156515842680420607706082915815051922353989778871227751932735723518285652591438500894635595566834936561984944234636296703316839846985822073784627651882732322912248604584013876496394689457560825669479372276519013066632918894806293510146003700387829518710187296052003306322590359122498837190460696303911493360067942435466911881252398620182495769116870159131279703067416284783849099345288177003157432194009416525376929937525151411836616973685060512746469777430557769610180192236383831358928031593442048911463342923708258375741394798228728140634057903093717849580127656426127441909228070512377831293194634282359789552344942783246095316363108945767275260718599941264375293596695686271170584482207115926166518989085900170015819780396035504356913507960610845799365741835021493743272011937027114541753182450377854748245727260768718542366939952001731015463838063073321532156522097411007840478665822133176281829496303764533055600709900349565661851979042944364933694160643802469707687582265051837989738930677126151264589559144730256378447158878052320687376465386876306646013594724972553146196693510158852191582771321508866781491108217596531500086703429507390857536862520062223388311023443298110855674679554128858164899757233692114430859414039653226542545416891218450333369437103245016235316355695097112457170042149362407740360772611218492985761327431797353084937106847174753433948547765365707123941977756228587774302099219299911686058421893064952886590566519326570414830307686867860041286862500212270508923598581215646564712832046081571044547119234912317054966396630070180556183783444760730042828423868541843942204724910686589385870214562631269488856277459049546311918664795383023994916059001247056392042339633054442709123630908584006517984124345529929283990865459829182296728473810977461911876787106102968115209407747407257196094076337562915428889363460734479967338594203183836766005856130408378868502465661412152531458984779047454865412598280382334154740663123372417576839601668327661025781896255257099094905828719274336755701527578654092289990954114884402822431606526743952470663633577809047691338078253861577793371020736770465789341521293155779557147401178852417354542022560780048823115321340713391050638421476424876979490950809298823553455124460886110148859114015646537701997984589770655208944725093549057376945341751025648852618887022135533366474520354187867881139404583093844327897482347753009393832083316463999865758723859010979027128561249684991640417818921434225578098673653750108395787452512379286269574519751592589396379470135804081150108830856863051824839012992967185401884822510242818435175808796980506876602829430607602231616059389566906186683585188818688204471765153602877067314312606927283918162977973406324042908425957742211004394017683585984894179966409281432286932241675341073969080355140080764492558736917161664944978114416160156602507765711111023042332635408460100009393527765242228614292740652350785027458543937075733559564597740255135810331994186776311395565191261303118758671801544277113406550118648403333318460994692181668519005646387357141299742823794691836365731479718155383310598802385464803696929030684058616162764695986482912610149459993839848126182400197451156568947059257009831576591306401324960013135174042675698823641573783862224156493950658163009437844536771355566922589794913489116505442095743438796478682428870945399179952890403365465353608796511269001059397217379986910430985351796797288714937599281075052186624661781642337703257938325667566818028541320962764458714225299584692186099468524697369312097799046715711589454516651486017557079857460035133976656082290296159674853202181953779703457893461170988328129297559081616778666920711867081920657244899119674548193553876646686923555049877499196644963302753017963873569278608057549251823523463276273484504255857037172269108171402826098456563243588048966793846946951175347325989714963958407045367072221884713814056546954742825415758617388321550141426930236118663120149888207415750419056500280403625435067344984511843655883319004814314268822397073273135224107605624599707935744624894478642329190479498001002302446314884870111608671539490853740623076813737314055891881386863095499048391221172297140283216030822448607124461811078487617175528826456010930229546208645601656528858533586447673206903181414671339481048455400642510875295448719969875289224669780738973863887067082646079936670786542258303214804634375144989307445297069511483745463300123821070242011290929663593159280940307419147261503982142000931665036723969822083235289356837331654479069522958254096673151580545414731352470850646917939299263201029489355596605721381758502812635584700274352053180733143266921978399923450866079649640107558706860666248980533174945350173820232118382944287676814161660998562195915463070493260140550724105294403937519191047889939514268463582262620462234790688501052246430686733022851078802597134064980940037458216293356491026449901310392915662741835016043620701578766624301731737914958720545328320569921184059967837066167469731209580707328939910020257252583463159857521922004598471909787330203037530441551447974227684260627715644549174830663428718645571688435352228029034384623098281259710637764910325668948071213725310018447389833525661256927584034176595212416288855566236781810455131577971670013722886711684467866588275779388274146303063763480360485463425223369251925072569438040166449545543238057661731630902440896080883062968707627980723777725822676028387955222255434053494142992912333810995692718675124290257262160057614865186310426005480928803898554858714754200691113296602507480637384227113882605076443397464298481364053694829232858184026163256132230065987371522178599764868092269903107275336515493878957901005715710536037521547321151864154132210366564379563466933863021926600092787753440635897392828370351786471454318120747641114859689487484916014930505715800109138144773086955277313355855158338118675239714830754234182565178795610015909664559853173386841187115267641136479776971727591567304925093585382915472284594353559648687345438029754757241633781252084995154153995380902509833892475209406561387750922251047673078431830450558336945928974857663942716182611544816381549469284148142768618366071054691424702114657224697738976261530668923515916045498736608801150894077890109826195631948834042267626564243680424867965061805893625220702181259759825682544713036086816566962199229467253218698822309440172336217267551306039029976914433331875253396885735554883568283496976226135528960901942043694983069216293920421627152982311016861413860601300247800058836625531563093930760412350779127934179253787832802943903328255420513302848276528475447740774631728116962586428646071974242991524410917707627803550806252894412301178602565766082989819386216524470691331419952148518647476796026329688437091389638282685755360293265639150938929918014892165734845518274295594480403976862466521893978591938371712529840879620561096502379430852679218026971584269418945556266827297974476603277818898635373441938763709748171992991980240440866037866170923963202531618861834674347010504896306477836712021206013967608538950034867542682513142361515792007944819827545566135320603338144483568677236627931250695278602691397855493100904308028063452057181255551326898390847220239088025860911298428178625496244040583481162894926049709031973414172990836738345304308510315131388891218763418012078838067671684955310523241625071008637884660206016777755184698493826189166328882678233098006718990205438601200180437226554128739515384925012416097441488076832143201503998285322692935014393821388029435009335274780481820399702363732666278362312943854217362393669030132051508723227996715179273665929310579433798058973041868073631772769379742625924860906491717953343335615942269836824752062761866541011474276454710342026741428140881216363992255168035287573535975278890408723305050856266563528287351691766336490758890825754775588613307068339617790689736785125254980514986260911928501755086239362118979783224268285346537360772045046213609376976251209605080302720286298386029179116645099145255660404534654526523654589555288274451058760868687946189395878531254562230657012655520175956729865156501922680742144956057114665541996759352931183300160899010749099029096813905741692629447107305919337050654038413944339046292477026331171053932739280769544274049573901353983920439476700327233695630917030314010053533357031159011807953299609793168916980375990950682786845284797850706478502859251831241255920525767129436232186506932697077753688910350513888077965612681814981913467405366609434804757577050846995475591475404390022901438758697861464292733222020313443262085393235519949585441135907505625827200210315704608660915377608484247871117800233871185880080119334428436406322583049452645758954336029861367387697196880699168091794696328398095014622094948523008838681155408631920487648545847542298189509123673741896866121333708885158305637277346090932346978413741578880911600208161653587266644320225167224375111449141496580187683263798002891097329234099998452014110462690675479753753627035638407031893386118905095919018157059176900046701525986038780375734060463640530520640865668263216169948871519613733084533055766791943622628009988714902911315661718754072811292576745901888190927530863739809372782912778283911080267791487533048102876966390778456594270421683980239890140639117598025043505293408351004878142636165872025381443007380000900585766991241142864918332919873249538054294188527173562369065393406583929960257725020877641773391328299092228313131910421347419660641240612684913447011860619718738011425000619448173989068312425573208813191141551640159494341795543951540785156776318149582343147270849876797278471069627357819357929680071521487348880448850195314913799635089800812686726519695559940781183067855651478523361427935058138896753971062317493027581891140926712857977581330210362633550017189697183730084891132100364578656406952654804968788605530646803508382971346863305612562092594424333634805477558860527079435910836015329143655365458769042000710977387605152981119844823533980442105775404465655344028104805441458992756221575491869767270655610555337254436694548841426741702604580272373585174255158318172469399914724550255118557353524486115062150645647489253778072900574768162280094154758742319120323513793737097550549363481012244844284379901615465542365490050254490030824354306303223766265790634512566034156078237504794054773657505070887457021261246742454059119692030113563402497704669096608822197526693239955992794282038525653153488744198595745753629668616749266360272809054041484753173356381479933974339035089763779324595596024025105717658623499784726530299568749885710129579028125708680700816767183240886385288648160202379926704003347640484561353976720241412138928331994775945324009790081946975990322940339974780778684620562656889652569569028023011690075677535998136777907165958873170762154239688836057495213458180989250945302866258171841006602410192753740565378427366382705234338514421768277552908829565286017032635528461681280476460704047364724348868909207766251512343042739728474182812673936465802571730310003000609935237140731535653122730816544699673363877165299560177944806213074388508050796861881215649989989466088029200687079577271624311946629079378830906543986656613810294668386584664275270062276884632464663147305423251635483320733501408506687872561242345356052501221442515598877962549725249371708440416120736022444816346282019555434297628131360537028235914127359806889541527009003088033017201171939958877623617069731491860480956138215530492237320037205306343571101679577254123439863397615514179147130825337697407766161979307526858207030407751529281061641054982259451783094887089817433605901488994709483348594559136359696056842051855391133463325740482216071911602160195760488339819525071713710171602085483955422717764354052968808949565539322861217900407630646710413371134555424089027394367660771231459619267008396255104273200634454473520114257050779184534598668552155025062074195249204384824787702365463484200085164461052539346574267497860048641633297252756126414359756662858161924454134420594306233954830340476152225468262445992715058219536649223096095894305673961216801866624840676685668516582155319894622182670747717696253500642177397910961167551036662837621161525778144770506706607286276891535802325294393221621255191137306211625710826925088567976035096625190540021260023790723404088222685322468962573342924401906320969344664562268262375440765108287378503799243857642646592889527625139226282127005609033652203969361657312372601322534687296352599966746935888471137752391516380672064991304510393905470798681018285900910712858370952927606834936223642253655619633216409194829725494664069752716253503333048503707849759387265395325462344384057739110861933156234073220590585858478565793443743749685590444573928541857899532492769274247067030121522192167499066814025315611191084509348188522465190201917305068019903614281610177156255530954862881284123297862389021981489509841218560304768520456270783171630980431773808060551770743623906943317350244333538439646685952795411675661652420376317612470430988777671374507765713415582957798096709400989605857428048213567361853613521621504206194151404463596318456354077772595980968131982744482863836764852650166738317365263445549805205291141683091783955597339155635738452870826737026835726965788586795117150695137099407257867222617469273653645510073484856110817202736627801087539068199960429713338581076184899026758622602562256884752906975378718047100335825562790485087657892588745689469012796141238822144585034034176047291773633352579553780159689333238657671418060506796573184901289168104595954035050226897224749102285615069405213950150066224839045435680645797853598646012722351384830857724290224558135938307161020474274897774842696371300262786333634557427119451569895642249565217534043874030829898617836194926858340546767964523377195791469384731237673150342390742652769599716954043218385765720587605028492207812481255013676623926777916999804174164173990616431838937827334987425952945377488373822481275579066675370671153271075209941111342122926538065638467674620197375442269203149319348125947078405019850229764601784041005648314925770100210005797228621056391499322988440202060188557677941633282861608417548940902916719096681353194110733939587982709653977545508697671149977653345838526671364431467821692914728142101325672121177877471074625647742485536681017158061456021197387041519154135999956031299909270288077909956410113298167175490343345836244602858779721874048586166356745378704599745502402444230119267339130083800082399030711638812159849808610245451145863162550850878393400637598795900221524264009685148701242191946670439737467781508687707261341988929534556054947300005003984448947869980453138895079103885333307192578746408166594040546278530268176030680107137799959288359283474457077362720957056658319389935062731311299332660760968318776065492891837780846254436545808258724437938835447047398951777601500711564614746716901379671865174311793308491935894160890642476154622821438566150558500752522467654383510747274215722081538006110776215752742415942501974664438386861451625478783929265951929775193773834578392937050057835395699615242283391930530684514070179472745704944870083813461457794699556149803123514844551585998059184709266451938699164233036433847361984662557860722519681274758527884115256024770657959427312396404690008007301899044246985009786548119706042435115390720512689429245911821557208626551923894245831925571681494629612571796057250824842658409765625812645660523597473330549703925457210368179100022039500905084566329978226009659749684646352854863895910562053771221351179980488020807570224007202207097227804177502646059180633942213344588756677969351245639984690594205802669935209135883665033068068883818580315313806191450283399441795447581258905713053704274853259922361481820891461407126626803040219684171942412012672070184675823573547624058652143248908012872859269633143515197382313026952925965494581521837811518960742715612813168378400925162784558348527054274672205166188960212113612156930424891110529594500070034100703819367166957182509764152462598222714530593564438169079560078783094898629118136792948337934885350564801671253297374708595069574983104011653454102238368159876829114578527474080864257279449700774876391062055368154201571895757608895312752495950264580053971553657179431356393844518289878850666653693115470160709679756492229902203452292023333549487719753827341155324080977315776229383063978476595685093203282162718262750731897277995317397416630695569023641275305696915586199458726885853097307391420644496854420999858407022829258221642038488251427545736475654325272297113827679698735528030889293590461426919443195793276564070140659000410461331056916345911585733752197685219860244380080925579899943547276775716419066073694585311932906722696545169078527104033471641703436110013888200249219520247403183289393456589976702401024456559260733920222097106641931505052912337176283444176208751834692177043945346919061439708012290110398917611021897762378974997594156290295069575310526084755130918759352824647042585931288252732424200373729839089032052006457997059098826708729589469533326484722126410640616547057632841168891923173641520040288544440107733968437038138160892029935957306320319285028230547204987151508416159333867188271736339836283466825495307217484556410210855711426136455276828129457314432365072782328118110388628171429734730018209431787657189276375788016348587363909922224478823264461341228711465818862172165704944932031912171635074091206723777621468251205489365122480776330365778655259917780089352705045640833796792147488875856182246651894471328451588487656155783322247342530568804240092198032089448200403727100783479321132799465143043814923176948313744507772337619284367326736949672443292300705807640586903606580367519719972864008668063945527048948844020024060545964382946185357639486107774592658846683538989783088632171186086000863287278584902931269380635723211515113532993765988339558507087868648392233862197494036466561021948003315836488148787929669308804176230780431926460839668399747987249680248307566890390649792971831652741944274440710081668653964097792713961019712346476238856501865658806801840554174698021418086220515657996587858106688357080744502681861999063867819627822426492522643674704321034954317614311193924689795240105436365223386284405108693705771515708866271021593412589102339053200009835022188602886333127908802229777094623095539475788795793053433946283372944597737745952766073411511818661078113338365594162047269444832909706055489823046734935055137847008293927268197396316033398170100472686705421062974850316661374530828146201093492185752414177715927646127896177203449276527451950046639979466016400550273172221545036336372204018610042026611803379508212691960789635848009708694816066399245308622619585111090199184581915702250208630131308018670020203795661184335009795129039229043482955424231920369525432009495747164964957034443394233500257694659690265947308404771792942174940837606292762633235103918430771940589673368144606949254219963846468589212061180127679575996288728421558850013849570205193242823646579971538515878590551384244472013839508516613407109573048517630998598315856314710004917134151985716244639887923632529835065739724003497247382074421567825754597841191411838661064228099185836083412036141971769978739245750518388304113270936261158083692472585212726601441909754650647216099549411425319712567947710345447592977480283869024164593493596083290158303580703397929347172379510701561289765644947227387209543500653884895566429497294310268139863901726147456365398314003762716047491156562329625277236819537825984064101721789949292251967957887506298111313502571445616938839819341173865719980220352363196534065127000254036911483408770826828490986882050797563705392128481887284078387620981740580682252593012689778560013337134803087589644705826025645059566096723445008173043855395893521150750745716910557112039809058209030873756789550367061037373194969300749333051221546467618943813326197574345561314447216226205377397057071778248533391552362195708100288204269791489355156010791703106285120188818316884079923282400967037080785976241748670700778979455537131564426116163556003614535498834173361231652092812953049463516616153783542115895980929739630534539205465095979135720358466160347056406738184256540717142936225503961372332447613400179630707965531278404391850607412441047823805643892604033787431546829120347543173536181157642512823827774871179057310065790167556597430114661021631893861531394398349843240925575894640313094252089249813788868249402362337733047854685074822293760509005754328179504191698070016896952602900486064158862699485858703802288919713984956005144143817676840864584307902063457118876020437936783439830751336822235248930901078532630772801422703039754410907280934753966330794449449844051714356476433855938274582100431295295881676563896683735425815198682903869781466704021204345240335418237536076001625964096968672520234731592797859231580948009404068824427997023010311072145954262653710934636018350302999648309846858077261745284699145063884101126238444769271411214719905274426248359430597541981163383936388344019108077857768252953871019859778381870768459279865342181646120077568327183053680055866934138781499085125488656653951332333740315177099412239334524821134267724872377316479544301151882299723892797169654696972195792137810948817490915903474174720803418748138876517515658974626848547109688774744879052914475652186081201523396302331704275086739611744595720431584350118499763059711386688321373845111646719095363190003513149793993973452868943844236178390233642791787470148590558953546791753377933053601798396076938027464158514826589448123568801734632669246693803475927042539730462878276864428077394604853963741878529756435994857395445090108979239736402788024558870377642930985957986527702504468477572557597421130040362994965062895740917431228852520542289233533151661417377956245232354294892540636862975247156498461753374484564601798911480303254034685367767144323854436814658759520572663946768179554382702824033349356701701403677555277549927944630115385485254350815447994523179173464968990931636911316833507545159404803515600643514895609491933297403765061570192994434301515370209849528177758628203703649756728714933808813779254130098605353704821045834193385336966357939016892130024637345785913466818669056123425705882270046200260527094383688959378144528563289630249770106027043991313798696570184512071923240305918616782406911922890686913036020935087115244705068038399680092206377909368882296733692233568075241771661422624648500690564412321024068480637906496023909072719758656015627831846058840902606767868388831453625618654173296511459913025212870640418556835685072704493554162373025963115639709117511306676561691920369173971238206656814813409364175193105888063273277208486078466420662067432796457086388720064268476719557694318988741290865949874693877687636187000351612109274574538130530285427204074115047988650858860579067962272938402391381273363727741933346440511369044399754491079727590002825209813430160040643311561819794503177431467073461949319137713436450654096576915058104794211131463486581779423750634162022866106399185427098471780824100301534550775783802842036456218384940843836719615759494530848276995911279407724930788213051709608124209359244740058773766827905413274662069200533140412543488847042359354386018290960847039279406024052974628175353041241871130080126563292530841924846214328335342332716880699343340413111657124252007777300600796763312845075247975619476907611276973146715262438149525854181612013704736774160355779130504006558749927109646288294441785058399953260643588973991618852870319789463460578108257082734414540924951681379979809985978464632380852962634903409820675979646888975348940825914132832479343603009879223025283681420830948627052107918448145161751931838397922111799493423416385327423822524182170484488639238201536858275353529017042362129833875548832393320194827018768964436122843783169088055760519249303694638002595839839528646769605125631030131480183722438988031609951742400810854655608780330968419925738044767803113830439650492236635479061480617774429146747599209330375838251958673238957238046186107701319610891086626935637368850998457804282558310873442429141261499188863161340305113787637653328051207684102910929233224647387734542130516236383243524013177532716312767694612731611933535003563357730479761557715751820228808524644032439632118266419037742701845699042850310918080661777223833456899802614382759304376959650025159418971682412555572829676693949812788337120800287626799975926597468038245753522845408050025083884297615445015421035302019956962046261379538227262208359799448215017407694432180792457757510177119596731534079595569327367341243518481180523276668347336171824306950208074446024172715591466891161828100218565955032578405380495262678990036279848395281546917487495885624855976514701139230133284879811264366066594310586295986817056991757624528511745572123543655729868275963651591203980697005686190939778756239612120961424576615892727947375429741812075262095700468158884956469316728379649821956496753830242852745093086875341105137060550412706646311971324538791924512700980369622481743844588949150681364285569414697666945036039856651263395627351327929974871856346881783275083517526853092729461800331878771062860066280955962447961321966535828824304214157568343619428324313481087982631228274026612038017901008087341301751907958548762225788948507098424116054183464527965884607046749817420029214590422056819636215220539007778507498474858916827609406845535927284589088237911464080777440274008711499891478392381343107411191100434192816485702927534860653065160305272640939654148447473709319271288366075612962651692649512815118194714176500913350561056576126607070884741147712211665545229621661249497498466058067092477547212431926259195856155126471588250481343453484786885587333508464932472119504133391845019587789382563896801109490256654536245747640467008667154612969878593549437932229471281436839507965886703025257756067612879513922990980880918602931900906215470256789387564426907922721557136522948009010678654964711776943982890403091728216239847737130437995645686182569748921231756092601219812675845800013484271411839893131874112317674590144493897403942863678384807770769912686917174127165950488668264902641566629658545838713095820387242127535857554560592744705859441026853966664017897229722571315296970609834102212332256309099493107348829627952434954250114036298545210427700064733467663748221039799384985218263919675361090583765829324986061757125526097237247341701290042520355219090370351290612911191341473450844200222797162501836272684389737340179535499789771568183309356980803306292261425921547599961850044900596850973864139953564549093954785222495824191703687509530189609275593064121638006237150728880352965407870625644254268600065321691198613860215349438915440420336904095234711746901696410592514616452721213875446028848518419189725488890892954381227172148519503010560349323157208841174928912320093274591805536108415534161155063454358812459705357596333404433556208559054393294484774639125184877907356755705251138125385092079596665906483734467046822771119483427809281995528699789418504666999370271763550469241652941369079588564777155065696731336075058098199654527360759584821807053014526745161755768530446449343695995348305810191353393972607244502310124477187081239143258419986434703846686692991013712870913535718726139325059309759234842823435303401071845626071161598003186768219725641779686176730126596903271842997680820807507318060847979579899959703791536851993290449298039060796942812318119720396942470220664827591041394758988360254227691205808584080675593240159741264884582893924136659428097821154521989375316199320566024632199605328450901461685974503555297600595545439210579117544440382616957154136975929708705810646004445148429250738710827836238944730312367114267295765835031143358588315909705162969936376029330021656944533719715864972461009502579733122127776743132035827043048582092539003694643187270692041066225867189414859097614989154960941514486567371106697571003855670990257638508205093480611595442840983051008814359011293255874100591656091330909322253977069831049123239396556193517644632551419109494401185767394530190434591646408576033117642219200741325669649766601885064154647235044785404507076351892467767553056422550279980890634234764334271884535606052583410421221154375387452494349276144793090792233328791770821316409522911783214004488915858035641886645917357558450248628023969831103130800313261622523408816265094407204238889229336561682845550702766898153546520391119775685070818731516530962692052256663525276283724587046671649584698816864611287744315080222334528122611731864143220603686630878930618738113834779733586680730737786257063442380633764914921294105747547889806955941160107325478461239788775022866715845541610844861134462361627743514756272311103710049844789554263937569315247487687757128665395906570764663519697940633668047841069766109874193503639598400123258799069982333643528750011218863787998734093395313557721826146748558567859015492914095949138316878992983822492741802740793932497701805286144931319958513471551263161274943556971460982565710445191890386949611337255109425571579262265793453977150004810479672387629513430978829038230982979082277745638973488509465226454956773426220405333318464405056684142204337885781941885001753744489763305384010303919195956995312150627074523372998537839732179153917714625600310556468400182362023379520832053676908505673631644022832007054253819020082670906489923002805310843054810805460560752689269700998964435105165980325108147975024575456533066108864725822352936876236319133012971441788390519828221851734679689813103222203939144432440260634620937179548920595657348722957924745740944239740866094028168623825597292798552452123243047406463453184698057005014238220418797639196529392332940341219788349579811440661182669941652555777481589342684271632253545069780361815744338039479697275209890524641130963505030043950306661677806902393012748119512817417042764411570541302734940512372730267204925297133278027621856477112305287754315206443093139255891512032460284739640848927807710589717493487362054361314010398805750717329323715852235082808510571732696213813239975906887072172295361357074759954899933635517271834209030627660878097029302379694406862016141569069574385060334703163418737864016576421307348301899465411210880477068516891709016929025694866261586131814145469529787689648999723788245186084029981300852715756852451056662126692052274763228029764550874935814512760434477557147974178177102744388828492798375786245953876918932051757947247239376475569912335271753479618450253292115505965710244714053763975837582135134004898338469447698126159415254860591431797137595194996951364621933478836574068363775155404363879762334072602527245530549276957546836041903292476856425500014455824923133384006292056858881946640085202576756670556699660755943185871592272079119805967670059431855948789846221150637495464240432011378905222499773924295609457347754806598596712090468615475265912475319654957327388277511600000238326652010962887965485687787025243997865411272522220211782877483505704522647382998906017149043645042297807165542996466687347775803340989530338165310915041880508302581627213364900449757025878375886325479056817402749941949172899092257539885326831814266604798033081521581433193599056261341439424220107694446010364569510924718899325666458587071223523452312022781749426109869360227656677177970796751272907424539042141713325618840567211583670274977542089776926074947387666856767824245401117489884402830953028422563473368910850090562899713638249848561936508247232565117246081264381607574768167827359846336145984923024224266706290164855058464787831305493984914953922871089391133842852064717285304094843542997410497913711864068684012791919554427926168981324241494969964217054752719658693781425159327380141112391701584524625472980740021062990668475281328396253422150559972070489368738454446951667721479147869165615235306013354998837760682849648054773018873972164949275762627627265279585907242222707725863409018934363552728046764230951070584278479867043542900431018164994144973456793610457656526537689211805720027136665253771502432246018844751637750514368719952293507096282434503401699092445557505652480570691587299842771223082037780778258228404325805018649150242928708561069086017467091616188323742395448452957926012063291493334537560887556858677191161405744333638828321498106613575886251035816087132888714513481210592391281658032546134111047937170578438765087229770612255116523186937062578036035109191669361942075828287170980997642037869122376136797297189381640730184219994525867670007923001435125294869800615084910182187537867758496090035984674406969028517271466473275536781653750392680135518395048066365592806685433786712389939832732139579263757812745288969914598643724028824728093262672325882534758721195442650341841292627234776762957491233068433626341948919212738682282739141559935480367360543699632504048239288846001074704514261378744040617339447922379000737613751393450591582612803018420199427560080562960834884429211187243301841636759601847961207079077736493907026617278872432575708206390991574682688398281915232221392583328525488992961902182917634782305887877377693658938800727888878161212454836692256710797785131236254328098887093671018011347094623858789951652114106181095787403562589855594280556193007083355806971328815352145013524436517629279694333528260585692014320958115395656149603427933794831369865958557386798994462854359073657878630120125607544494867340281373305730450278669200571806609845320968296369325993490056026353185461003443951309809747676194993630481653460255146185304808159132485271134852878293664947293513902308677344788686010549488153050679249579693770690927122019706806433744771728927684287747893656588351089514941662321627805757152439732538777850426469883739876402192600142340505762442339409918055386645787308831425642307071271392916301714426613782198392619279485135781583912626577065275399357681235694348238309779359060846041260902436707310675500355311379473288809419185961751165251915760160110938368654798840137280898667461754445721588101199765568969194691320637322820211363107497324098357608854530665522654035030049622897637283716675091112490185169169115479724445225336591780406963171571370731064943751154132348307468450641018494919021781486976590641015927146626727469956893439894348067386375330010976426030339402564426898789693081140809715438015497290131599105620311643356720774638181186516549093185212514554137873711354991485206244785003065574964554547061400696689563447620694308828291111511775476771064634169694974892601978749272386281028813866174730460641820468726614098577692698227583677313651350202655424863002033114168618401201027510417758210436793686099086064050637812900465210121973549177853739164026969718972348453945113228911896465885874119422625505947677885200797512800185634007879375356724949191179366774141051289225119035034965551074855566760051628410086209834463854971712442723215997820386554471538740715650539528290830906785706943122006211733078418993245691121356941839869290850578964297825334468909557092501240409572334058471298357880251853184132000802753026856409157065998918256612643253194562236983042084979406179168352259833130217687517218804001820925904749351159922828287630706563657280288188502331964999770785336010185878266034382017579443123227318924552289199306554514429946731494803599824833751699694417680505989621739017536659930220326827536773863773988835155567788726109472405306938146618698738222286238773377531248122993013486409164601929344688395013494145628081349077024829064599167038396460738143804715027145920232283264609566316721312835637899841392988902298174450917421870161300716328076953618216018894500322623713928395263211259860636316539069089344748739684252812815756572891080231949755865993481588941558483196414530040244534918244780597064591704982345562998448561631124204225097060510084447221129416942733294437108978680012819157713437138542000698217914998414565307603594864571844676887950597011843633366299492069379377213552991786395298462327084746392264927265468828828839143855902419430164992999785766467357753025284374551220683559180966664486216806955668270726880201166082700143934893534114292244447816155587689870897234768217467432762520774323249944526677726172303262320795386465954432517779708652249480359391314175005989466106528772224252810423770555238556844689795261758166626879355553656116020718758707751214945096157026857107628725687260887229940223844694901163666489377747590032719738040242824923650147898217572077153197461714650813817409824750023059467227894522508936926191827184404994389760409302130538381833520310048472413161686543395772996354493745281810938427722890196178165187017165329609687050793487770523468345195172665923330566479970975836302876578392744661172817490806346235553624339245031814049980871445596716036799866775373365065057342920853181821474630507688461150754669548622976637045109975298879527860688980662948682109002306008873436387046765293558403118954304768045317465315335861119321181497421237874222066563321318455203767285350881409216299755969190644412737155089199043852786282245095674547745037313953049489815521413216091868210612422187860485294022348146069400880372568886683288217798352890028664439845904483911499163023243783087215593360956050790488955813430288291092972426477188529919009165006329060895955547159699425222791664377829866381643963197597384009010324037680284391795845713330866000205777929478177151750911404540183677633556020888785230262582751059763038102586283594231984348260609061791402274387755010584638337791150856049011986279460685152348672819083042550534350832746211873820454565666293087167677126904054094827472102637116875699684386725999118606611664412788148668146831537765017573653453016962809992537546146461026808787053650468912193591647052037104276918338170318188223439884072389475885502930513262411298196747293505643335590220653216141949523087420949762674586053802820816669279549233267801032380132353762105251210473005471576363765890234047688202025189161845396071943051814205743102103401371300873529532813994661199327166595741824009360672035234088698450732712705396748022419445509445477461086178090967967384615865540767889915777233052560939176652912343516102515476553402389714699219510060630278344682448204396651317314432972489899026594733971626435194082104767662077721794287675501108644368737336730014332642178423939156377763578690636765907393579970487314876011694273613249901847177372324417398123738538937107644996603600750101802428135799510218799911976853363993852536128171853919724216680326940869319218562369981328533672697893809597458380259677068973107231829470276284325093083872084941912786980764304468630853653885431966972556853296067804041061176528432635046913002824559807255318740078443694722205699396796595431029714685125902924684608540070725872723407052032160852907890555109885344835832190701859432719203194171557110477628087633231675032332086622872689134872191181919609426737006554505389350794275622000697457913448223887942723314395202288379730466185051129750363504033158021168278418205288167960996964207177740267886469237168137488641012806421491158038313880923134777019468791230292006692556746797370813442145791857073752323593734899499849656565780062380450969961909976977212615558362734972386601396475383847194429198226931269307288316664333984974150699002728251012980340654876848153291679097986715337826178557394447562725038083277792165628266197012582229282064019132915040378109491557768358288374518478849758243286161369100933071572591981239962171787471981772304175916565777486270256735071390130181990515018093955573213313875233830554881525877027606599192066715694516843697165317125639867027166330130365740758855652432426833804243307796523458287457540129888114380689093914874528736282602855387203160037252164062058832458937144543899639266301217667728322559450658241707117950388465043481097726416844537675017385145758757309081379549422388991256313741404498072034066355651995851084341404670885548425284531974108776711862362454892853190566581649683948944065619433098888700847056244395035315805103125838050898105717604845596770153693850934167399964262169326445925453076504184762822631109007159127726106438119027148047578346804003986449783796865633341613222222948755097233834839288483435780779315284881655733249358505324324508498812699956758872659765933225184330723022740222510591019712698875422694432577814427532057636061775801779600468291691297534418492264164115192584608099718191339624007936434995992448818966388252191060851482320122909104168269402542065124840533398331779000201837911860235870144081115948832147932254455797471250707263584776472404131835820394985899077365814108696656628235424317319662333727906270950299434586533719710296976366800038041534727113370815415041916740596850835961451048804435886033441744860545059623635442716022463349256147561356461190912938383123538008198002564727272175946659835942707612769433900431224937389516530000399758213594742351047621863864301528896392971543009386815797272549863347304906351276102057379250072848641075802398244903028927797223304066609836055193238062732307887794157406281967525346653666117456641603470310506686100586783592545121732237251893440027800166205417620735158280336796895732380918618679113774444667960527674729093867180445455374251913919852778988094316556570936143935922555666225459445006170852742604972151761976724017596345445798720639422841436317103876333397600947976783911328703839727488716676036350732839165070624534743632762786239222088427570919379212851990710250004567622158002852878295143594582784241195728226328608578531338722185801028995361253950207324915201452880441007744405770479568764718977258804838660337468114945563628571713599763198789170255198170969110864240477247569581143009774936594667757158008387351800059793113233047955564316588294901790561399987592683079167691095150348847321251352002080952088257176312952874877607653983470000857375440197298417894387944771769891280094845437589386744849891947441304570621085605702736367272681013631077249572915306501983480952700722971377704808220526343624672237362862058228084200427066586693408142103309450481530151371812279575988965556704219943112733181061182876226472744252790750854636983437119256339119979332983802921407129684719998887414791988844682140889535883750578798594689697049153662012392890040113450565284669827139929923651835134860457418072668291569845159748025923615327781424924854598272605333762430899116411466988675541141614999433384735718163309897379829386137968932099251209893587835306198660384875842383196240063814926425956185076181661446742297030153097060593764631540586392283224953254499908142156250487971868037162720924382222699848983691875175620780969382705344393145740583182796330523405282853969310338325146090033493759611016583335065885323935286264792037848658905154882700889019844001179983966045409671510427126820806944887736301712455342502616022268174740266501025067640214983679861451644742936245173730812555737909769923207290666817543782214474672491430447455222382342867662912104218487345560541260620953654359855079839371961264391669599539289859497520130775038570809401241351853188845218297250606636547986472091746644207158205371606626256606518327165166505177000071888519770676381098158336748473512657347240586821464245468271038408935300402880170599377332809472259984979717535969192365885528799705542536489340893573009542678157366689216215649216480197131195997442468205456497380481160482073899676121737535413434480576639207837469568729041778085319753840280931949289561055315862487916494578389171742898143702242926093469312154703835274434693641859650306600515761205918691228533576649277223161624086581959031127448073691882470244876423912186654896484039554816077283216664853225947789861069833065145286643235685360080994410147381026618085930632066446104459083373444425165577439917486962963937848834271270744899348136038138707319223697241376203373691159334686220717881190494952007573948232236214194221979729194568261612536654401023063758349122392273992381763774980814095904794308739388224457432883659249818810596719873910384579150244392218311097737669082420338796543734103162384885616291075813426782364805470550041763126481231056537155410898288778555965263768205434014774896633530059272823468577596813494631546876556875406019245201345687840117480608640895293920736044267100555172480418987712964342223543440241930879591081738728419434312334032953260281577225497905884297945880659449210721150188678546010833577676527018012902953520157657063168523974623228365838862452665915190968835155318309760427869449005825179745935984971245208242252772015111294867419279789456157767882205632762616332300055356051585324013277858804274954395391274742348099339402886025036251546596328394437414645476907161820321044317476292127757055606623901844624062678395082222009054589380770784282666396921726717837868282255548907327950292042785067152001143164802757559447768287811879720449969804311834025346571538257050376255151447593580840487990618523058978605269552197369241128324094901597116491722309160812137586336522787337723064516284647553782883406163760182227037173538220715245889122654704277316692959131323451379160772785901625876340394171820920295780722054043282481349185884525063012376903585994072978868797739298424024160991249552375201083101214844062841909714148241250409890757479802198683374488731575535876471656199001232746597463732140589826108395555584665690955346369184978382341150488273484818220827329736172422780968853321212000128380168713466822699247407516409041858055317382585359022611118042294429737392453089371407142258527814408060802731603103785904607096399346179853364085364230328936483837528234033579023474109757483049745988850296465444619494262772155487698863921768541938841311412320734784261721887374159556033589824874563504085292784452471722793877742174527945780676849474658629985076717399201729446725672132359078549791883573883888101526766931335020695013453806129797039291967995719257053626365167512440178382598107167745760502243305377546800206753641555750741734165648833270970981011941528864598821624991232200771916756280587519605634750975315277152100181641078555186737923206710450338834368568561641571760642802578520818883253254697571999697038790694589453543109189309221032569754467401396427716440107094072869220792627629442903378150959794519247773478353301461717952711057066949181236463779672807079736678370197214846058731498583324933538060899617848489753314629584076355956728928471365996850476195752726375143193551319563583647834566744564132854453765632836722851171640732829269329719743485594674329203213353290295118309649637239057802384096939967772372789683072955963410217472165250009117442895109956884616912113114099507541666018910335490531236705021831203584658162334227579352924336128012207216736551844867594036054875541164375316679958797202039606857722635502761299599136365725830066748762138926657200974979185528119949698374273925835127196372214689426974097698179617828043195113218786773772956525783721173966223634225723568011413010623356233043451531553660005565914025319383857827735365617879959462444137523162455200598773071725407299324784708032191379211235784387903857897927044672377520246261671880027261962018121474864996473472291053094718906311782911686025916658080792898963672547220258383693223327079177371271568911716878460969133107706434216225642967686126055020947296886348007636080544496175001262320998624986695316667084539288778506290371240856415389234405099739283277003517507435576033546902896754872821080646222054819462074874782927817933131597508486491751722953088945027160487930990736443662971114617738395215873569035589710063198321579177114228390200295695776480290174181398066295185715603242327668580523886638427669759785679415184273787701834109996217601063803890273444628432500916532873715498455021926802251249247118256364516492756687563533812061283562409871843064698062024731972098905543237982524634431010969332643140329522312169323711417036164514314945087242460245052867182256914421128282529164579340484268035594207309929559810385500885386806658779354958540048862011952251609764261464087521117430552545434845403024746869167364822460044498805701708769460876707626820934226316238054163321487435248247104609823103561430897032611228311709652403977655865077881091535883029629190343244812989612963403641864853388802402263480471438056180788282140587730416506156890538924380484109265597158942481191040325576557642207118673990328286085007657036220676341242580811436050696068368793661358647204543249673374299430245976069118099458725605961016617440823125096703701611254175471435568044770576608517348166731572099926588693037706927122967688418585889268851571010393468559037550979042468710805872391479769304794718739855931905035977519648785534249575499163119943816947607163679163958076496088981949919177576096195696250092418237265390263480449427426619196439162415056131239963683617488380248401255619637831522179730125290042361459032331644164410900130631604595652972596487234063418502944039528996332162424645054318487739895728577286799032847285496569962436629759207868170757174351664350114194746437560295285874637282493605611962995329901509431278363801297558097554417028312955368835485990875710880672237923685750162593003495178546188853700759229299334209781807255738843916225879195590681756972080122885699350654466297658832664691530951176799869695262279652444269602753964876163584119802836271314661613416132839398037396836841096585949483405221804581960210937148367135353116408903119299234133763207160295024996268616327970776792002673768201778394782992781950661287860815319209551478323013207210863272180105014986641177853686720137319713783452059442956983258119170387811297191942353818265177843759995250138927362383100060479357745607039155370163789270815076133586284225937694756995794444263825893002798806194699221519555921291608460652317696297999971343447227433955360026876447309757947926981900134345349311762843391077419042449486280238338865708891351137985778071721494159296284154383785986223759759742440439912469610798852521649937022011670560532599649380910665686833643476765683708150260296587948726424366106098716725949319153573671158540479484658515126273351135178007420477668858990405627034926176708603914366118197133973983549773990752837763340404760454051011089466184267448979444009344224491846017822777460403796128836853665670249324363852715500155507344218675518179805467846582452122294206355585427025053272825723848683465699182437725813542025511364326517428089526917517250150591227173281346853750475673434970159752603079520438231747350630771585672209346060835042662602480855104883240485522327379115249546842469995641919669213258626739597224644750442109718026134667710375957783685419605585638246221986399137344325116291433245496845345560682990171316847715073972536424409556248573272516487578480448284716467805086041856184714076553749195743214647053403996853621612652027748798566885907433498835552851702358259221360560827845871240720771781242609440129382914291564082692820322567146544511582763245525401266584180019983581304056398764254275865510113067526187651409707878393692657072875581080373987411273266552791713835560876176644210301754444354452921673188162235394599582208111049195994478145572950965810473891188110057775149115287629136518832688251795190613697781011653329591757863166360502881405092557492569373561664616327290971099907606661075818518389780804792756863006570723171803589728418482597273071369967415090427285887977106312440580988769180462038269016622076255918996621209889193950396379515107324442117013482421711515250214948899331452786034440073546846221164332583390615695707351619806614596882461970081352176721752202323049157440227089482690080833306220293901731707550540610407490281607094232150912835215510226901668692756211034458488413563901601409304347039835485934748975434700045778919932299809224254618207940412085244825385945839174988598344155615227251757462890076149488763951486717670333860966692399210718170471268088817888947268565729970669125236950732158811630994934648095388795066958416476707441856931253039888493528910639847274379949914246222977884239824755714411112149787230212466486857460700141626800141152852160209443372489779661624490343804556677547966417942030804776969808288167065685490972600167676124796806482345511777102989051901989709465110151493829398122808442767921343790166685359571570539365031964933005363453310401151583963551927117042590609634697884919582661091250513164488606462053595856039737999694705312480871936662933943361389706973644931331865193835951085337152524092708876091784763819607109889122292401161124452491316265414653822504353255743696526964791440110244883585942277602639384220722271459651229621948492070237845804480019749345245410160398070947726056842311680126557588698537441390103135050816815262240492860470676913732153672998689083450236730247553952477092995604965751299300602129316157048432967493217678376356423607006686601912076481339879022023770307864127849251326217487947537288121175411730676187171434421141294081948062337626910855674824630076270358612605165149257010857060730196806506539704721929471020089171834480782545787164092046139933226154773496886249196716512638421395441400809589023499822665110708493018109799856663525742433667996785823396236765306732045513763622987697344818506020662366138283419452594506022003294261432818269986021624217967834735086762433604106020323299191541883989442824556644002017982355367809047984074119103423264538183102229346180255901395082545062536739464649602330456252725859103159735156073432267678468469710879610065930926943172539214445538474401622567842644050511391231501297836808208401228017648301499074248159045996874666661315207247827203923598513809622223763419502793217913123426220980056648169153687760017715644286001006887442689981864073405068436086550356090413457819065119034906959418177842432258446079984431447656060711295211746648689901936860716394644410076962138800342969030164377961538141261828809983516438119422072272386029355223097495576405303882117073321924870957614161981472052937043099658837018832057524217627489110813843719314769296871725569440451205626566716752236496594169347514000012107908437383942258760613568497223121152039504228184722244913291227141158696902305701540156103807384094498045028477086012185049850920177865208816358391939758497327509890966987964283804428765142799665587264530304681404273850251798541575059916234030472377842446927603368483960507713964250299355851892957545019904496502925388669734323380090465333354775669309448487750957973598683195608116959229040046284423497536497603755835235171838103361916956697751016568452615609840581085395939391993231793185889887048256248835775596829372719677495239871911142985057947529232793920401476087578828304546444975971095814635895852460838488099638083963711640358531729062140871834771304565413397763264810281850794115162537009436299705828661783955969054317163480114445748595413887524573993700968115032445367376170081615544462660999673653653381938417809395209243861790635539923959075825872003816058038759300312936453929157438599848497550840071494332169850593278548338005778454227912825483051046282193632419008572210283628663565022341656975217578729697629963449524415130397522640917635420807501343736477944411247617336364627394921414245895795160897459003211729882449718525082355340881996444595650522615443711412409692248564831148042479808822991832219380549024421600337316779051561899543497558616994577022322759129308640465765660280685676942427551224537409752297914345582132426498615909838265503451619486605578427181672597942936054016306424494386225522995406123698989754058672565888206817636256872619316440419503329390872327273952123043846727307997560133590231385368172884449294863765739397178434118692395316718647609154669453983688502741686330411669368269401035652958366010034800894047364083794117793390943813853955397691885721797826272120182178576411772048472548226986949209731537129383239032379347481021637134213740840102672178145433935136482113760880359523273817428192644380242062366240258704822719728602773818996193205877570776666610166406752778164398591297078950578230104033208453897967558957754787961500901724371314075275103017745854113912871518610027672786334191626329016191209326006017694690845484531483126574727344776137336887459358516689263035001465927569685323094794204427868590130365391858710460150560879767027921668346429242712291687777971486879138511808868380225192066411303140762094655535750338858599756650496166059022632252776446210461829688816875031538453342847226617041203612824194950330455393546027659283576446707252746862245608953274193401419807542388833664187890748773399271364005611343724348685498880690368178930696856775441484715966282518741523235994960581971669369282808236591327715998343813990798005213043663367424638385680654264672768860410790437257647793788140400502173565800110232690648167455914980716041152557587525968882483020788423295621216129353773073630305861468742236058547614492530778644437225021195331697880006910655387074607960658854727196526454666775912944948766235852326679303561122889404099172733638050050808044404121461353387565181520775335635010333081194105656959617742000173201598034701348998819880455365997401659908097699318158222473989077567370968019856774803885703004601551903444410641718181726816977132233366836384052946782049712071303197800764232001324721737628551667569553681825509190560528170992858496070355960363833955180021734787901117905966649696459503714542900679125373232831819906382361359836150051320267327431108394766496774148588787958258376213603677351516746290336531432697650880824412011676669263628321925257064247662811547088732446671011738740848254207746027152978107565186718280182994972158680058661895527371494300995924273971474585317843520320181926584923201402137305035636151231085558269933504714342574994475950479676195563176864627611600822426244380616056820709399186879293536123572451574204763507859158937535667138034433019642685101030656493436668760919429923675294135949450108996894051528509559097875443535473928435169915181236359752990568093340259745955430007321624872046043114109942538071094146122147132244803764607666124318290110359468800400064167094380546201141427013620876323773695474430456136651462461306806859638454955333854725236755154480753844748367710690628609381696056854550639625281687373247248480972892547604600844696329599062556808837293790692725770730853204178782326129546845968732065881252949604397769845109750526121831674216388968461575668515389950469905074193602173490190703074085181882658445610575780143914545195645439547784180774884556143494661301656924175498018865091726047917402942089713822564827484935400415699653398794563310815238599574931304601710604684380900889454812259223889075800058968891940527356771233665620340855136010962342308578944833164424701503423624188152490721347905926701828099533337430030695211292997376751762927616200706810584665294216214435211416316076336245732908313874415335492431911190548761605079439668214550738178275251865309000606202105465641870888164047224807701057907410103891686408757253941710088284502432275496456466181241852680883685036134128828204395020275423702089209015881386513140164887346880554808525130159785172746362081647705290812312695324864716909212496502439800606998702830714560788805329999802394648832699282494999271513572781125760991730850612011753717378249596940480238619323856077206239111501478516482801028937359735275287688450295531398870277448557531937204324372170115932041977107337309450747098590140082132122953740771026817595998259414126956031299807826401960520680316395835479642340888866168074691306688677523425136223604941774993747063360685487377125619544292638529136764806106663008135370351459151306999666906564830509864027687047221954605294767949668102112562914371281847577216152903549374514403044312395087568560308942859571575015749233023196040035589377066750748984276211314372247777716464063544854737953729560583518948601621763487566130459919652143390940444815026644770744924240895924929765145562591939520818850003058336770447048311353210665133955404607989821060658057845519789680504495231752937989777438447147229478171119126229475521034016920337315264603322386203724218874419796869719077920072203344078024780641929017602755622652245638713556625924499829711783368525836304060137871183531067738931260612071125016409519088301437246857542378008700244041661252083500024596692817902427477049146388757146045334501302175519021703985599330335131719345260389998974903676636923627744424468988068040971500971313750228781533388433115314899359067205924796526640810282147893247299181689604521246593166985407620701944846382139350293070183532056910672699759731059868255579359832844079205542992894136612728624423593620841868796976550529230911104182765305572012555984130860271366475919575899178785926111258620565805709856133197069208327261492639904878258739407995271648155693629768390035181408976339652019221675982433106220485706695776961461891302596195443017866747005949882325372569121571695453867239916636763401511307255489060558167067186454151215217701144448246725075211974384623577227432211836688426257563651854488978213270154719845109334993379185810251710269522377899559599008983315160081943229031405896375025898481585003532753398282531026886539157233176686717944091310262412122338969945855892598782687630850858685403676848412474281948130302240148113378845773152849911479132737431231047276046559258146104151399500711327684010319341509030797216494992401603122948003091826248298597060710717817492856755211811702155423585195600336939053720371517390585272776297503027001110665180614652652586425052962272141008675975488155740738624509661258451798707073547993976562210675176957130984056455476806136013734556277045965260648529508050726940971257657051249040875050776323525983346451670985386493401925635432881478627733637223898347775674217820555657452702450958891140749985736305261532097842165981529366083281085940351383063531752746613116053480619400086670080811956606922138137880661750103694645081077737167466266360005006216162258369690987050905052225819101528064878153513756833815250474251177989428187763656796898644610800773296420655920523202743666995139749459780345383527260621817156713850486090731914961135508466516638423776125642942524555978871679997083270141181205937082279801899249429760338399931692751243175564879920282917804014274461079773529363938169786315639688209724862939021173857199447793252658153270495972437742086045715550946116986494316260209196158692004521517597006774771176914263393292408207651587699774715537736643657622051258430502941455234490200445347807397469000104032331878662431846154412272113489972258879227836628981128003224455110881710823976699601036309236654306141643263722307079717494865907552398167782743585943829164087777564293284863223033815198353734554835188254376058084278143479540446364526770397272295586526526638396421499635654539194780739722516777673617749104796027621754208153657165244813261002260551246956467565187510623891405045051929025526720955522686527413843462853410706233597619768264154355776155558713723916350219192760455140921778048055307375389719873080852428103697902680121345854237456339928675055922434958912275929223142042792165890329529621438860726617814961538614823782619916343948071227744707150400907697734943637712195176663148692047068842461830684136835325093280089869522244307100354363231954007168422975140843102272215561960287347277211517385728743865911531159240863840133965509926599699984072949430220746366616788279798528468025897506066254764224808993984973547116253948204303724398464868939650059916533105321168803884187959569895300392420509411106336285797141635163069667996717264025896167728442669672903414893276121798888213038809136456367248190023030432645390408475520860462257664660472913843964294667633478159513113089104833302941954198244289852367455049991814721607821249535853525399485919971880201268708624140063171198692771228219236876200323296001937165928020988886773789897093065318806152482051208662890821880472940738365051126438167336105222609185423348968870161469958174046020916069704609862794373769131169297397270979089945134429723597821472090783997208086526289542674393074517071749417904877694861053370153534811896429512438784662466420998250848878601407718067280093994653913872792698152225812392883990169190071387921442499004300470917338390626110961413106683719087758944531998164257228965907110929361107040552039537496383436919496598710078062868484543393023632705472160666760439728460996386003740122225527638410734537701521865808044632844869215397868563833699354283545185921776114847881629608671164295706580868120906483515520056165159577506466335144463554518388902044755184058252150236434174241917188883952541143250781868175616736623701580290806067313098899245723230052712406713148421886039301206854584614769035034270577380805735587547793685643765860683061244259358715934706147446314834632868859468301926531034352623893685282315211493980008438631785556238598356664757456405941264367798485708221363481046833896994638420591801216046473361167571454970023108671514827517298215886326908784158904361559685765206673293719948915900157442662117933765913976098764626450331374270413677077714414904920512755380777116155070470027344625443863809440329439358922016606028057503621845814001188063854188543663401306394523551431532700866557088692633856499693157289883550517796145130002420160066821698984844198720853964319167132715550810479600566297807087127771915362895257659806166129274716613055435654651810550833281158682235033476947179979675140605310256269828101297123002412638113808159370847257025582853822532339598757724840418456149110886802951007583432946331203643222855890404373661703428730347242346571378784240111341911323509368540114872564733816760896746770111240788543411557095823519659583907370665725940815621445759482554058997568650875724106003972560561580746422534280868156005223335588570088317504815823310781216442390473089352587925670871562409382725754540858314703977744222315470487329276449948488954542584132411221851248365743430317523223383638938512498814710859444138426083384950051915240824220315001091552736539271334004892550495873281164347903799875845442607605346655687912008453415608794783442589837154941584324194648563410017164340646364942840681352521930229044328401076257784709599405744481534019860382874020435876151590305344766447181998531101200325983793817801318272445412858782580675308440930139956039213134884121753258271829514267361143272975220471052679195351452572598877372526435324594786755716254182110067686470948229240604043815404816669544562336596325120369834688012715301803650935037841228006985720258596198997659761822931936627278286104577644616004808405665838058909755155760706149652361439495553198344401371221461107149353795141569453347374088141092067830467431150787817852766703045295809549440110042558479330677616428602970052723454240067605729396914584838265505418750608723154380631276223060010861277669425310796383618998097425816095650736918732611363944996925659272004513225852167358938071286796581081483601883305005461135033219495132056145972227109153315261341239534795328613218208872556278649202637993636990338567779170618740880421232857591729185275338443052144646453617995573887070831115733498816725431602256645475750649287795616645283371157702550172362491475699212297924339973213339645099761590986395975358128300185106223008655480367321467636081097516681682168753234205167960222701818572309460993585749767843423117394831560026163851974948594358971063805780731023192880988901506568350801630942929875095221673003920916785944529382073569056129129002504677941519435275999854797811028149249299952682272421557748667373898833185507142359680471865312081562887900821298714461382646278200963255878090047349458826169851254117599827228586469835952440023298656006012669740216225803271752524413141080866519393049077440777161068992863129942709490436390864016135609962868522188454297587229483874298180867163982777762403433178469741759166915580956205738725706742828610939030604272074974183986149036965728118279931787833055492571854408064679238573733168709254617023509378583214007217215356454280678695422523927947131747417725284851294547273367652507125515540234837462673168273703763579599400519118312730698322958132443167619560829202568131036033397996202321117596506901280196603809345323735951959594690451186665319087649790246015976591640375681599305055214631343142066582158466273644959146488984847576709823495982387040191581973052296154108010301742482426497980378107091146462063876012058305537752760328447665128564208666520747320000012251710620730608688374043468453046910843636241382453908635528098291025341169526549332393139347141229336884895139033303015839750980479468467611596869276008326074693314426546720827856592687859904715380077789992307411192296751931613024407317121060022811109745779739128430925886750567854276603102818459038801413972016559620130710460062400284329962300513714660775991319251949879358120350317093948390419102566169718031732227105037815180224427834576180933905064669480074666183770769535334261386740397497109118099652278243345272787568985695749442025836767735301481846227240415334720553445456265401941306536295670294211548844626020074841009177675300289032605583513625262032391340055927088109373906230837239507080633769226001517211739374036451300869511210146006878959882355455947400493626063240948113250236898429325051133620561503799115562631218377386786549088603618442420403609381171896018122448653065100557182453618324662153796989606936290946935406225578061486595537528670399435522549478066425940772136470644006304050194665253005945216990879441263744398007896041104409245691196934712799854955103308471003749415865885331504381997660399472195402791891731978429521056182975262182496370988615812629198178263230062177490071813692983561809408058900421547830820389235799654056395910250763338176558082948181279837910753032510672751297759557954603006845627007080816882779490276364200580621290943825115905132248556250823981841282098515839252094274006272794244647481195158548214372903947200375748153999119734766842150756095393880010040702788532053684712512284611246721965588340256103513264308868002837156811566787353763149530316065315023358517113129859294771604313613012283622661982165019230045730046116516071757695009874564805193581589964072086785415053049328949873445543196056949105906854542669348476687496522727601323539312637740026941278466019879274761647593066194819609781447183278877957791837162911984376141650886085757343220991333696752636563251624137021597719562662894964516425320880853660663321182075069268197368703542438441489886982262827997954700292256970986105787161714485276784257136828130476416345908969391328635594097526525903378941226206192911525923096914621545633133198297162996472112623725092593830687646127619301424420221141758156133793481570265019054340005080096643865361658607892133613063810666823321097228543661889215544483812938172298973046500347916540764825688168847166562477806422360749456359619537952712974299900928877469897533398505591091226486134324661542194051503594238754783978074913658174238853550391530882203978313754106144807621083410099408661926718103794435365333145674738091721881276102032574349873755978743618912939054124427393705640868142408679949871714469190626846965283994549021111077537462204606792888194755622904988863807471122172063516131249353862683027656277211293216227316193230225267910789331372901728626723611838190408945318747370799231977822963791302734039269152136241797708355196816859918994033044119249941739001568050664684572198224058965428432537480609355004663404924613306280391342924501953118587276385668683441712152175739211553953827237937051431288624824447957620490581384457827192961629937368605546959369730206078068489715006623146199250015257369947080199465626636187346352890905971844307484812417825084554762941448471959568556894728487639708103928176789488740196023488956992507590330655807133518633799462149529130115066199075368642769265472892719124512047970679303012745615731000609953571602135653415724021718694523424663371846674700074691056995689853304858353258859195649313277934445403914276437565117801187804192277305571906388355987124996832216095966571630807779730477357093881088474154761588713090812966550841907929713615361775015453071522397883961443505402582626455237571513561384801049278833549825394283737588763756025119071158486243159496040503037504004530868489061206740448070230149472412492732752199694372613782276586688926584263255852459997093137372001380398071523637819254095647611450828531753495232093182830071401967838277801737511633287699014758003962923308848875673963213226706537524303750671534203625783513604233901979624742191135314346140785339074293861196091327417553814892994736322272443217107527569221030447661615396866495661866748058921925995393341899581922826319955697256129613354746389471315085356722119782164246838875122683821853481904196017416692974044428779629248937523010514002961075880800686943686935138069375350557971574573331632388806546660917021171661149438808100946832370937382157198152809539245379091956198546942891421323280122545195965776435465884486507817292273191848822813789944596645022197820875432634391818245817940965087533369104129914249999841540636741475021232249153609508834066457552725552738844016041508969248171786395626302831627499567735635573039960825789221487488669349879882797691764360196816487071685928936770447225244681644586462022634271804703037595554413730591915654284234971065730049955773005002675500209216954345474033847702459431125035984044732548972076445321084996379199986408572545251333636605549171016202977401115813913563233353422562284478931476708163822113109481304061469747097455145228460094938733383608501299728135336374721444095539010651576504167144262201955771187658716972502631591674571029867449090376807224477346883050144555697460711300078799555194876436365999114627361971850760001911725577669605100710307210804887023404275321615802908410011058045954097098872516404362370721874377120492336758615061621227271706057853805101484371326092757837029007638957212969880791348275997890525176734081561284976989716553292634048123450893578433822954867564990806614296891684095646956065839977259145322908499996743988597935607634273782857607669409022300861255229531841244254690267431075091333901114160295486396466021594283952099213685459181615609475854654176492421750338624423628926482774724839654916835516149048731725876202233430779262013677279716543894960896418993220845071091558185861956827569758204159117548275358154861319619603325508619292914976112449016735800676432221410022889156580256609370366209257417357387558493990676895549373760887270748433732897034282327133423761796630053923179589330093202413463135574450818235216518232411921880932916586136204946565161502513983397080983940458962177117072070928994744637190186724416101916915408593621214587033873770882785761635825365188778892358790411444798052471914551555777789806288457155117394767373059569398070160464951610133498084801442827617877763665144881008203291670563141322871983212898730980907262185743898400451126293660632998032822680637769504436805460996605492338497583342352045927401894501161905194842683463972407991025134913972171752622385133668477147069867181021324521707349994792466033635221571073140655145904129563103647249047493344599607808527780861987464862184918809568043132507843746236966842494550632565518862466669422392211097807559959684004754041802958234620322771098270092095443806277177979229368734689622372193275924628189224869601790425032791741831223039604088020530157996164383820334481169191928837124753506552092685330161331399836636019654359839900541297426716206104906466248720986710809436788296661115251240776188854031039233309228462501468719931732964705770797907667276090908553335585689204907722905241507675667361864565774021188236570752855005263541253764835820779600031760047894072237135707277841966478410050420005915907198867947728830670298528643044130172683437335739365991190534797905187262341244768855622921530874559534002137102101453954266093421237120588182198848370340695205894109372121153001322047760259708908031946946156823936347820775882706841226079938031338871992617541028206534404014755497542083171155362628449064748209069785734734341855986695879630957258672466172662452730362957654076398554356418748593591160048528910101646816532880099382531012356942186569265799385319018486644064083953452263605614341843955822878853960646578104887922759490727649569007787099202871964698559539556626038815825814797027026547896897422340945196143722473402822179073219244322918578268450663344560715156604513449243756131796980948705302382988335039850512493442001141256990718827207742053436815139444680410440116588044336799277453439563909094810446374193090047541107071219093316415426817947365645233486604331137590262175648797668798090529905802827105099640793169312785919676818271282092549786240269124162665652539729900285819086746389042779747503835234236135172078634334086175498769653834897077768755640257570160896757222053226990957925062125181046499014349697686884963634135050316249871254877027545873489691803033880524203969207820036919776284535374819359512348719816227377130488262553239195717702094111524857141464145470160689934626656398105085266825448023389114989658623886868077731978231288150304008388514320506293679097626074440719076690662734524402779398894787699597333858180538033896061200238323415454208026029630520394543905677801713851820179011204829381312600971972052161953371286230446096228613628662731772952754514738103789165524491506746849202282983868950365989311865562256218704961761046627845774085458429361212783990146384373444172570142784053612970444836368491159511110930711873667879324658753668602034425003718449298100416387175193874076990331542571026988892234884116664117288715389183878501442278285868813924624851457317342800168071575341383361699146680117935738147413815359639025873480510369818013401192522804859173156502756822425306558878932387677153512551524224859559590812413675925120047272239547034480328117514837038505614914361354422902237454309821828919207128198331038159218970895428106211412540296584712192325406466442536348505943022182866909504296529743998108276244509789978270343668492409237657698512411249230237801268587670081723961860168751443320413515833854022738828467883378995203857091404904413235296515292764659153361425150011045548036621028384174499286826285797876446299250946215720917430036573907333465129388528333491963867310015262169016290021496131706553744200987115294585538300492891452810754934057150396387936333107137076575121393877411866350789740042982730992399190825969526327792394394118875225816030173744905778195714670584035977763984855044348141294716223712042529399496003485551440686214794670662000106304523097087156593621796152880005954025698766196014763698648572172765536899672754670038035092066810382221198535184095016221788129861085719567758699006174261195492599724671254474705526005483914956084476030248115825700330930775697090111584211573865392551661183441503176442896914722689110267258727462273954004430207085707794370558630450936286374973991589669114542703361273549155674080963861688489058836332248927299085733939072089806798829309672044762688552414894726030001915084579594660982472836703780797842264054288090692582163223509344437793267269527825390494962880863903040341936033891729695925796704267241435412123589199780161350868414826862184670721410801053756300666735469841747693933849478158792560382286915306993307021035884274734755472655822590230627872835593076888744535835888939026629043417290603481621736890312537759229718392165466458236061698586105192328617722618635440360984608534776549545040501538722349529020653777678994877230626633597245100832733584476310935924526819384511818610886137416715927759718993486994161367056630035960235456496883510728222009603153510019534336603736100431422086243383355798108503135442527223904122289806135250622541743017206917506288183495360420230609349104342584374299124403941433938846513903301610983597865666369760125962190779339431229096137027374001764447635318506168029828215198098425331594474989024671830306195872491174529094517643715116901538597785572861145459690739113331632312235026960151140913338331753938691812874909469241795304269588105290046432086937625106465242740117042293658777158047702058134487858867550149350806226921789290729393967811324645510208896862714487899748174829670521404675237244559217248202418447393980517623106950938990987753960481642795573553340183521325175352105829078866499859527722250449003958614139970300979050670775668883457672618616150508275545107399574488416246007058949150369174926384554897717062281507846079939231174905302283951443869813959116806431648509443855744852876604846822473587536840208852105221699289780712432328142272866027636188458241563893959451118742127954301681808134236207380077557138027844888052136670109137214683789474941756291757869534681144697646754687017495612998940011278931476640605862187141991246484316436920623217115314042932352421772380921502630965952433916762462498941672495570341485646714917438642972553668976552884647790795638949427107257752839013389111079231374455393220020318087922542255971766131457441267723889378506659063131364708645854000201925223708768249427238979316072774960162403542767939633978561294157215542501023674335611151641877589418930853052175287575981474679043865864130433986144164053446100833950471515244042489993042468503383972858039898150903386439325073087904759781113879772398684145107664376445504438795816285116377829158036818184993313853875580642629913838584115680664381217398730027513602336732623823083990720783089257386600574554637396948807399656398219279249005130990902375047420507657833964005253640015350414705096151509310324433337981044095443917213884850930236957904479824196516631318081594841199832118746641665726657446971459628706463811768467694944414221966209922631527495815458649955426760366922375811181478474439817386122167605558108528526814943710885503440601973657451360150544677659982089799760776724223198507799806103695703656249964455732938039723735160576233826092536249242103389529608707847459983154279105877521842822923806827692412953037461059173529008684645363318852786739215556066262371747206113785867106458955682564894932508420872901794614487978873647173862826865674805122452523191035298749883668846022141879087741562945973132525057818696760657841332908084869178057482185404335202467661930424976511257968456922401840616968864496966549476787683829240495622689846237915384350950895363002319617699970432938199261504981153173841416116880431125221397240584742362703965586519059570612713949267854524703865526746475586864551187685935887790850155598469743284958186977982737338963227707949284830926450515786361630177006934709680420225666945424602379514575093536696456638785562584804349057241121236748472977641160413174499274591128868324068698592671470172113051317100712960052880065840625895152881710100804356797543772276143814186595412453980731388355160109813921941071838279130110718629063915274899707681653096110190219661797483308330147313864138656218178107579543639003484651220430802603335321776698808864329920552351478900363709585575846869623507338683503975149732563072507100480303954072167646761000122109336546934748645061375320926135858105271610592021389798137687144794770269107752083508129368516503175008515008851641925082030830802615377635267976384949626273045122337999130700686988285418814373479449166277658821591210674209097835369451735848611289465904664162037360244380313959258515726156802515131458556715992079339601611824415734169453896961687407065896640045248658853610798612169692263348444827015926799070920161099161018665785793790744489571485741645725744483691851940112152399446183914188181208097487847294589357621141431268352622802277248305481692792147643749319617419978269152512018592711107261344178317580182284899409898737554133707672818753074746544213252125519493942186516893475223294035207900586096403932611650346263023833757772926556895218303522517708367824872997990067087098447469778222825865864002027301306486473036557009432856327697675913270711692217312299328349589794498916144969898946496690353387627302154634369821819174357543559580104778813248215277582780965772981061253770381149308352527540322841984694693128729267255948503983460723996224577142543533109364417982633271807389553289724265225655756608053940320297691323918838607755420535137419337548869641159763052808939195387204444973063267369821926766590678011438164574882240971683742102547828202794547017140926474918419842641624666628084931682696870202816250978207343803650115346219792945707861906683195037493865810216566559055752774320987579158418337649537565193117208110241634114706873690061673486181468493870506134085371401476392734939613766102992381075556895980198698781345681887505510689572496987162456951747083758326401274060907736280904345131797856953789951137680138271516758051798685664615762194202978980175999554577186212724804300269689927215835399010817376609149523156263262798081318085854809566187936588419257497210503696100466705513877517771382456968849205539032378670662366726780506125865731229462304386525468664494554493364190800611222474337315378516222665329117414809554984441217514327796066096119241824371767458998819451120859819711891812391952062359449443595456066907006580093847861824170456779867832350798022931213347147403626830023422965312171786626333381788150419923502933267703657120584073692589428846203232171636209238986724160349395398474834420968187316134856276975624615717670012187575221776890935422573018799291656091554836372330991375566919973093546598160569660626975175275559432632890625501043347179115335627315191644296756574576343683718192258084673962591944205876970021906055109727873014219096999458882913929787230527832094855608014237235121080785327168178967392615657981671486001254600287365065848171337316773691668733674288491144566883261998405892808608715652203892438632806002414096977355670204006988931403602891934935035386941275888919247350235284898706352162492190074546377774242790329497765509160295633404108414927285245042882968201440445937572394098237114351659790689802165618715083442695777100273222934333354313118147927214558607257861545649654333575006108856652043675274115487581510712582779174287271860397581535358044268673798031621560753549282118133839805206658122402273847271009047205368203446754869337642786468167371579593645579953848216492532161343326069691896230763414709748854073015599990252905608441315662837646275338374684822435482330268394907004298105847708503129259757322273407889345344169341063161411327338017672910368933869459369252061665143823636734382241387008691287750274334726758838409610111247167697399342349924900814983632303371356504472518901145629268041684703818832532017105712816962945183141947489076750178813066533452635010424585264266494030661579368591535480043897023902641235307857057921840132855874142687994473417806835315109825325746061840027613721315457577622372589713988837295158910201527048291843775934998240141392623314900471969938833501046368610964361735803223223844321201914303097379169499204954083753795021363179588210629796920976669653121380261907359987451168859529418500189484926571052434829519390570831778709859004397743567138616169456498382174965989290395178808964417907680899143188013485038576984562181089627011850102022930147622698939436580979925345979892521727661597398633573732662035197407657845091168144703928499173233542518635964626252433657493203492326913378933258441816174811623819788788282303915280218481196895267269074564253218025333113968589161822064504579483121742275965811490503266618730900580008813710963328283477246884083408129298630682089397314980970357339453529593655347634419348079625250115304522982982168407128747278253052026631556723678977477286612945149427605207590809847787444481929988095539697557590942334716502222911034518737416009941955297741418735687133711633603942757147772207883731081189064383321032410628706234450815467428516546952189092970715165500313093694361615282632839031769546458121752161459221346415577852369815617490629765415245916713608284980627727889026362994008409179833602395254508566840603026068252008469306089849353476138647778972542565337951891964703741013329636505579734208822058669316514630978068005252183229800169849645028473218485915243906900071149357979756796867161478269501722022839476280722101744002631873397580416654364348466553887919981431468416928562426416713545615735151669825259070048350110962693604622579741250909452596751227777086660432097042379728197596978431169598812682798720599407873138202733892570142948107580614888313861140543887185863434419789851111723853778104683414869031705025076646822119607998013750698029648122418951293556121436947495342160035606074712034697935841360120250239136603852665780090488655369019525744491435699234044590968845127494448394711138448445392182188510310303498891581279519917024240601929933690604849728962341383932171182130963560938863920404297830293083627703958623889696805654230533981299038177159384853404220413034947033505010156699711621106891165748631918101735962664875341098201807347900331759810987881692776954050908066288523561740825029690238701371136204665080305013696112995872075223325725941734257324976929955190584027089405530377476874268757045551654131348678529625773719284213288836166285641165858892848579499989469890108129351572289845699258944897605535420674934796133596905296132124969658349938909258916893407095716342970193815120541280657252479230816995562969875511303397812806271798831441687621901967356090114925117639462711477910904214615679036491899142228155261361239784888455815945638070182048593335668522829784113499650405913497391924132108397474560634970805809370695989821694748013729774658772190814417802563663024365535684501069299463681935407485408786636856815957304516507859296409179737663106947562496044448784145146353620019306940839231158805106754645344648574241963013209292468086852409046160970056506265536462961480738408834656291197124942720317662492467386443675113333821511260127667523140640296955133921326950191539751210619940663749184123951042933197691309768619250779608925977667216141496311958829899832610346715018935011523423360151308585100283117739133982630743977813744181104244726573961288407997532044894784271929402550135907033799740479439170932965841011149089772672584282962106937865878090158529150443969618477164358547185930621072645665724610679413939467281828520930423897887095856014774919645112484081310578387113349967185800932308488876761947888775864715246862473039801897775365492156370605748491577968289587235473082366048118039573641631342966340867734086129105355140017249185290722159883245613097130090141251789635051473746221719584302144103341579201002039334603987300727393817586049913274272524372806178672363687765823984521347002117390344724311595711642033518849776126860219579729350222876401297727219593290341156178293172786508753912230054713222814538332196720759317854216934246380940847156400591571460088637626414169502618690086859007738295991036581629937061918334813009930533361438629157365425455573049009314800848758624400093221791318720749155943401525476781360644528114011090996139322362075415402134686497668807725754677118370098847699299601962892171487999468210390349740043595626241708337919225844911830658216629148766510097295128865020028837907272168041639774077259127588877050236639124759059427281863167622314616470404153522424160727261609482253935741467680701854903030214293508379940222126949934926436831388469674843484079445543340946964102941187618727786981007090257437714450259343149296298631096163411890597086883889023362065920811045487047125137553930354178039049705930013928777428683931474917030492319722388386468195838624818136342426180069918905408499055662059664033909389794249425977027140950301389403305400763211181689303164937791423217965536058754129886223269985873929689972190870767014122573500528824950078152595905771817177699854010504791394450958334411759519303274680886800854680882833639283576578761190015147801207705942969695291212135853907507652787789682072504838514923908833867088351069191740350311353099729260805118314164707567621579714454524014442521319636087887685794817869372875979512632892693807788084978567172705428291233655162710629192767519676155486160922145324623131933224241481871327562670193886839545868536382522610891248500642105289012318786272498777578878542417847103414900104821772982931978887891930760726055918943076050937770509768273310864594967974274239616280208356435517228421704385023933776353455339056486761027955820551648920324876792346803017169321041404447914656647608218289034810641976548401787738007543003817986801792584964035464724447001734546780280386206318647488059568038964895719539400515129051855888986050766206384569636028693658639884103140309381634512973397535409699362150885187642883527809999919735365349761995622719890678432528268759828151318063933258280151666406418293263599325953029726268583639613258432402354151590825001112494973178115279765094149744577952778646435098826313854651914621457793080892674791006834451661086541650045777870774453954838156264893434925094774819908364106090421491186238472308066208298855717284833868005615947899545550033698264508226215621975394816379278124414429952962090517111804175514962354029437241863837920118067043722060565390310973172616043872404307161150617904554315405817906536503249969719399874812504066654756796838087211641055964684061584241826709354078639519774750644579900695425179316255368086906847755695664643774936071065963035347960745360401708431480700507637310483964066896176989057556850826526942089391705785330052424575212153843482327558682986259676805630202100679746978465906003229215430501447969135985845860884454650745282018891839148491180249007601702492157259572027989935226430811474294156830079760180442839594068619283237887059132386566677378772100056891762330231486993879834074069159378674256777707917146608475081958581034485038375058031204657509340795833449150301050024168115336771628308602567123234290808657927246978207674035342654105349546382092596029023095721271569513278391713334652088584067320372854569424667126921252378404320482314436480931480481301109027150579508947775997354476710901402148012562832600758167074524660952647729799052917085769821987383232230211857339455805223673244519442444714823232755249509270617426252777858715898499546383286640215617043358704805454479089490431106392476927034542507168540768567048828900328531389325838557530386320832471368934593093662754782293357571654815775100582850784684915376870977179231708363450395129799973734801919741905773945433088616310740207828739240288768714101134733055147514082741340365501302834433307610168567059891490287048442918380116614777515380311751156167819225016242464586108826873995167547286319119246711194334402940784019123371867726303619445096992930209320491633423932345062251211699763393790272738873624807044027748095704006857759292213004429969909358691631577774066884083226593131817113248365260753013060628560692510898455727892210292220227343268843886378458360109670281266432033131520236448881958126089984751400888288160090156190158698392808960115760195611914519662916133267829713322255147358774572181262343624848464316927444683298894889107385265695079014004942704301687330303890534976343422410704077450631100216896278356854129894159191076128106691833134117652346709385228897482991954856506088009018063479992123097253876668561370794707648735969076845401015300475137758327251200460132421717352189826576022178761015251226701463260276692701098050210091106309597914466698308343673050211017373925982393545609832389081460464074005955742673417992761465002003502298113421386410236016425572867731846644121908976372640730756528917259462737319360906458152065135055494627921798654557245501620713753102420412731686566300812628430565441060722425559556506101286114995090438051791713981511257424718896221085759013910543109647872433462402939000349317658303728818444138206677696555838073832147014653406406728029589608968854103564647200896361418165197569016377560518104050192664649579763927074368906385362157018641767299111955210489265532155567032703434253497157243391735519989702294975848106224456837991648716396782025102453862074579323420501591083638514187819486651310438593056782520310232975582277388994756822277109795133595625598473151900249682557472599486471474923743187984028056368402524868527167009456132273719040285573916036551115472577950224385977261695878927912375942952850122246169812856945876956109546390096959899638048613460000003177171751591756746179812237455483018641077933322067276456952456935367836933215844205339157813326134781163137173227622259320468406269554340748722607596179691988875990382787553679663990355373199244208610026661096758645278026489839681296747584923797831256413231147107260648549223408822128650157198905810105661311907976957491448812112126493698445320409716858070115289987134434175393336323585175031776062810344979910387157692752717710109519502003544636718785622618987491557419148711384282225856927721776809504447980215693440852270637777941897649447944481691012498546474437163964598480106552385119722295323365814446898249577660140755835347618573610079162990949418752051075509683293376742722912599709109697256621456294290873301318450215752535223839188975953551572856876998053952011357945951790417850194339017759508919327365322858676816789224469381298739967728453865429619906277328268191650872998939501268248529441164021521749930924947428505099069919797588483111425652271138001543829620997746877441065149912445427852326612691238238402772986902979818165210830360595474250782470859428627899485160743139547003685951143452415975317808592143875015358041890982706638983175136580550304262453663087217968321050894717553206452075122485536985241305085705243512520419700640550856060722516618065994878345006582577682145576949882483419059919445876712463970297258644503536716721543156944750897540029791296176703797113044371106791195462078303784697083860534277863439045222693576738333929321966849806138650296634235098924831318265631361130082480982613307789250926143357422494499168258948713361782574253755151483572720423936736201637646740394320975952446168887603545444120905444696351956645552442726656349828558644858977941337974237248657142085028237394990443455742337045990531982826323457268088644201033686206449999738470213232667837851459235365707710895838609038114158919103639671701547606214179713585748778030486065352257143037482252379799502177036058622568133440914550462424822746555795196599923551895984995431617137511428460535789966697541905483747325800634632566584531476568346438050851469980480197424728433233512249491112886947546301888925108256335587534529014870621837522174103843866708485492549127822069716910368038474602859539791411275087120471188449969156190181903633139455737135248354157403139627302978499236514343664691323669401119712041923430329125615406729000991735544370987857973646815311214744399503444408680672831741814063280428160796814074284835950396708569664373853077454772454731119851813524825332565010729289744713108900576653217588907820967199010108252503018620237405900495628280968789233005769947506407903128913687880173839531330767091029165540327708937390413049620228859086091154796047687510838604512566639325866206172026157777478529782817726051945379946048709194766707113722705985219953800238596733172702731421791158552080031951633791689319891156230259149345568005732311498813000676027142517693296856961281680897819056472484092576101569817295580987790277092676648491242406891241770163706085546935344633996418243530835166482435300593284469278814719827848279881440321692344920211392172548450056197599441249475701316647029520936493313124798021752960029572927121435305291422463481673341629020525570044928337877602920467137760098571496764868037411530585400265931317089656394320250854793658828872549978379933547163893037272520746072409819528208661949067763762801644254377837257804380195318260791178495920816036139809978185144453749996625110299773557872098770616402550857875949379326820902821628114112379228286315346579213643001679880022836928658686227111403238368601921776048085372943696378028983162169325746678265242927208856677479803546342823961184309917350485453991467109186652478846322941961851449558568691954929699666078208676184595414671151581290940900805082029920010625942296182038201242628150384643137803842810738952346763668577785432438087393287470477549579794944658721992695596891656290062601867802675522465333959872847533292421067521457189029202351175229479842160840140123281989662895280835213408255524137356091016844215537475448366983380348900009787885394460443582822094590689483044472538993191235536098518037484020415886244799700624727234786950411181370354631630903854304063917923655504431780624520492025970096650811570798015108246019932281801404155327812836279443430132094946248947213915014729342730554363245188716637862988653974307797804943551292503381682821399277791130472833166759733541323844696381030104810914343537189617395455812020142174554463492156363252367424936635647252143833496006952873552163030458491604007206446321400112340804414840892482810412637780416277827632603877973014723911945205380201099306772138040418548318489741784575221818603283182928246261835007362134391989414727781047702565230609236398004753926880037401329516292196864544060695801158255013598596549458780211994702168617860877084369008312310538140341343474270306257542807804179286256051615693565589482240148916244688579149706188056892894789999508860125951783812416310807724590821042169997018739000838577803983838880936012605587721402184526265980785600108125166355700284784061791805841168813415115531558556130088147141893911473573919687927814129574762821232048359555114291888470359318505745115593238136182090209846271781945876404474434554191284424657882395566564051002038572208746101706132384087100354458187091146475592371091106170992352829996775645038673666434533006177870878271242692354139287797782841590468788866999516455822437834443378267576062628017473314665550374575583811606697352406254471011472232012057812465580734271153810301114717730250640095742167683499623427499487344691242266941084117219909549718224817272941946700089446532119138241759056817929494484946507776355980504255873395123346977410546317912398935092723241294055522929573110908683430903268622604936369018227187603257798063648518888719577824852737762893700262430167968626126376314646340850806567872505783617165590998939939933953540645359091302870117470040090135725350466781507040797821872017344564179814696400783732221718391637844181132072663371321356844527650273130804238651507648495237838838890162695740946384516545813891366068369831315065754669843019529816373160481261694905939094466869242452247601966342179342644944810376482710617224113224842898296873378755374100858362452559285419337116029186396023793840072061335517137038262276072699981532277148566497969174988222275356272916144840386330544178038827571604209460641480564142575014379122006565898049715974497604801812900918858144829863047340675836620541759573191246835196174643757567910176652881224902086410384477073088868766741522696877492788353111220371358769484117342447197325068963774199208232266393251073165761642164982316923237433513821953738488361435247956509551112369795450347787745477012171978840327927201112459037875614948806647625353592039770024220667030711367518055352535035444347000431542438583484654672532380979200985080888270826382096005748481669223164050042781783623355635066767245047944348693704317999481768067636733609340542252754657762776662265516976682812062665616860678781296473168678624217701900482914732525600754677466977790105599488020597725229382170489219175905491793558297338019689252175652904476510994043214118595069760321132497504225827537450568493409629437349412089137211990352953109800180291971302712548119410820920138558675020978518708195641296546298204589994046223142052829642601026553381825596266371937455097525678189352943977611549133301814239552167962781083686171955676723199532982405642563870750944451184558186303846040319081711889832770397220561938119438531227067730414517075316703016092133131710525292300129283184446544877159017048900645644686534170626869910274255972548185680688800221845370830603027195339601173076337109974689879462548372848244095796263676792708556395017612868559091209080471172158766006525309037074621629695972582807774119511687772009423763341221694012198133613103771926105769777497880067931917555686099698159641007346536254108997976458057602773918238160785548993510336845910541251165216096513303826798831837867872413556230209914485988179938415578616928844960058872160597562048698631189774485189576580728543682012781258920722113261154769594117442171721415399185399871565748299125069528762193605015393940132541168050286022609941924378969436888608329550831649443189336018048185058190598858611672422706650602380631929082315102373385954038650745040118992960661148025818052075720091556962189048839438444170811340763277740778958531341495275918367092457021882241454546112008998859947275596122481875109023798198806237677937978323173648762468244578797208398656398148520440503711397461712711567103253462159336243531756530012299047740642475932678021521901575777551722416458817005467093776657061569369593641644711754242071503701335786633980218255882423879064147900990577953755208982190898303449667749360542790173454578476354314722993050459972519025760642845193054321018129301351096807210679456260852372447295325564691174167455199093883568231317456368373055009417374212706659931719424175574862940316224010724319128211941001264471453013789623933402427442150657022348574035011356081436244307713216089214493631293602157398206559672997145756627555998865409566963382281494097435659617099784958825371362843890322900523149039374948006322164066245358585273483013840685900063827952859251442106833852501201280966643025011106106514941144570085745035380497120319810091243060339438280836004480728895911152527567289991580551716533681247814791603851503654087035592534124990491362673448520744892940437122552705930140598619917771162567881892669944420317998577029856524506186784790327728234821893801194685056071570200732519505126610607054160671906490212516529449300785855159961126116153690982466194019093556295866195763453575417540174599201791076813915312311169147465560950655091923198345403122795879290487424243910115032476399110769264345609734679322646174628687619282974538874279479278211876591732962572852984029774214051388548754067725669091446726662084677061573233525260570378345886959355536929962604254709055114398515531612157716598116783591180726234167491681262220156613079987386625697076923610901702543383903434686235563932487268910483017703413438928735631285499419679994660241573821123886267991923480699988731304586748486993258329142518080522223242711272999589084521144089859690512411329701767817911125219457744390411297174057576233342618442085778762729183153058160181544002557493839463633474167896978536516585203410639698332697782583804838562489227329224286097054211495444093624753408488228445759514493245384983366847678509561747150284320684796588831377215840264552912518057604332620480935324941057176474357715889640676319175655383582997988851295826939824679578697167225295355808280537198563598415016754276759116643854799977192564108146399868706808965779053568174309887166202855836271799290836701700364646306458068724122662417998532854136701805891211896841912043002434224653200252132582204605589510667578633218190886944150058604850755488369838470828741683566740753231845490693705357582513108151538980438971015675750214406855578215775230646799159820160623803266357659314768922629062819662235813227483595859978641905317983690501226370003738002822371120130619598412841082081523359206503443726264146488030840269290650816021601993787744595554872445018023651358762470401756206060910180376452494081980386529861783113411366155616156530075300380671661651533985475132665507073688497961004172036963950500241290899790410188342595975648678843344888190912037141469805694927476628574830430346675763187244755241309810739653473481712788960901291006091037325901953238921318167410455906489582842277777920374503345658751003661456534209527233075310963059738011597728573788913237165933988082909863739719948260275301103802745739984444682876336368516742736036081244814949650488639689677683246209687895995716161503730526344318797607735499456780714822480506340058210393436021533273845593655074554359277032654451779113492464630632683824985155458768599914342967983346335555084686035623924608410789010563553645368197820516567683703361036928107928358607999358636743439884139806343121375015683780528153523069316046803388177560745692615873033389318218442741889840758950312795233789135704513696747611758067070644668642318595655150816375835284591988649049854631369058988287942715884558321495324946802591072619716315022887471897809981428400380943155694389284933401743909208409265866526885540492474196924340490872608097083366971980526965063242031726416281789981347874953180500155605171159730265245196801757062078439645775022255297749842238361540450165417022535863639086969540479911339073004829175240564839473905189408060492181729305604107569388765353199571996016333149780134386573908190835844848955389505540858715749173132099132181273454391951671840708616428230760385743300276687257259368172970761005592502205163752529089575020562170884584353025773893521578455032093415046834952027282939272713235163397250881771177714858687279177535460063143072818071531180623151252015487925476559588256938916366872961565384284830693258108114698922691506882101627821605459517533433786389270242460120059101875588663157047945999785739975993133836230315616315100323206957165713461263543870984999684602840261791329947893521888767470892427971791919129011610047008636463401755530470563522683500151586141985057349977181266935151407726294828774374632435767524150132252932272582316593999657764713343315707410076082702794986708691854774649311574447518769813330433647388140378387477918808703125917221147972351922032208017211255565359778022731190701455625405509386876571552787270664684752845143668540587072570111788414181064703102832881416107656186676070236489156272663353712401822238236207292666353572856018854092897916162994471233561877165646782440356418676791648101337364482989524837369328709126527940371220187944452020423177386360403785444222352552365123811776119360203513945788214159471815166926351019177953020168761224759006415097611797962168952214780559436420201534766849603295185262487479804459779817803029358280283346247614264459975348717276746177687779150017637446402868907402040369463551121999020497928407488257731506838190158260045277083392781274619071558015166767992168422571253494545121796678837327098038047024290135274230209354839497049208304821903300557823304834976352893567514780056538734927072668831338624595664196245604517767062634682327082790701335448813276109199694691321733689758113466171146801587555664065083384200687420261471370394000300837987509454582985167008856597704360017954944028437028309071687500331630948083708464445639133038386595666765655549821664739099786790688172461377096647336407372066161545849279147878467569132741598803099781141194881675909289061704244700273893289482222832260184976854671841662051230298002303594991118959711088603219920610620973305922847115883601384702861890080658160284013657315493770175357144581074583779372520755773880063559560381630296311496181379436610804842791804549075261818565790135672001258572391464413885698617325445704905010982585745828064665876796631447357736540449024567024905785406638044563564405248737640134318074679966366068832191410126366202708326190036658470648677223902434938654532514656684347715884889425998551664333041295885515831611450838426366131786962019428807390721841852920777551802514266147441572680158516043547749714934350420229629636178839167282300963457685223010528448943435784332537297757265142400794646918359044873283996122800611705635642500990097879055928521226550068886122943822270502391170002196750095422222011896112473863071408444624840515269186118465306159961713361336592922348362497310012302065416118338526763078523138894451860939504378433897453863554657786679761633576996831545609068301931666726272627992070652490995280085639562585440220202201834901698914812546070110923782085256691761574879332585950543952948320224322822147816636234009646743034413754746547520166572491589204243527492031498631688519464793234328858897732029443505120557389211123379969507312106423167191031743935927497120925481545393375053639330944600697228158101181659243594709824799726526626328261061999441870043805534367563564462086650001825241713965090691312884869291234388088322488370441721256910898952495426183811605545995894655812948804587623199994524431042417497444090330428414103146500901064297566451931670821181895825015360043319781112921171012275334028032415042885224254327370795198975536967358739709426538845423882382038733033304271786981029021210249560444114609891622060099792795719143959413384239391389387304779209144407402679182233941418321609107192859151771689635250170883544654475949594618158856632772985744942476001716160066531358804593941430688530183228500217633056765804154770522248092684272112328026052671851996081197197746606204873583925056835302201368828700595511290531658612966003204537859021709031159368757919859567008417074144850602774852440727635776891589716069852233136076760467520950257148304656430312069411957376457094397124439174510642254536348920044971950864266589740408536159127527749751805691207353934532240698392189053722550785136745747901197179069062292816572951855877297769315830286661905835049939417046872946455613752403737682784137397160467427603805914133070470795481079288539557399858538128284447721894862772371464858850381315968650153711105578472513265254017256943368048942295067657000590881124243394435563387024980662664594737279890774246237033723771697740105083458653654912293850125790809426588644219396994595836291569096900150411371710172868786232864857453685243495788848890285380449441637143920799713183345273965444146991560589888286454140721226272248545873197096634862969588940556051401075947111579731741510432340281468187371460602500001366614209261272135105861782085092422541883594180133721705556194572633105885577193231792996971675064657814513564751627952642183288697841748686309295612561001094413742670908050391193353858989710588987535953722946353929332848044905263170013209556340606005272484746374300256057401615209700867724551752105953324286040262697520920735612025153936997038518019791896009689930426301247513551636053267179742919262507789735711110118998407570207784023023554123507861898402314395650520266246912511582256632298914535293679024318777283383630465819475490714401867606586535026343268311816376562785772172357221322961401852552904693359262740744700894467244096095408003780276289047426580713727439169877785617836156750644708902651651677774573214799598676638572164505414912549577822259365260785788651513082002523436736732097661868355293866184833171689880768136149856823903982291123789499680174576639351993567089750786764842396810622327762994356141033621073990300844758773658746095812619160092852459021144085087220010057407796475972621830226896299924123110900732925507576506306641466195283705032175100310252665524814377945835432158767197619908939435100542301491396076635640257663496340900542867432860291609694506278022885934871897099984973799144411875275829214063732554558351379674796270669210787037232438007762326747881281990696277665745446527591556432111226986667179881015526995439515228211144211086243237165886837665300114392115333270145331517721157460483864494608454823892519807403152066757594736799254936178479741631357831964316292578913061092046105077489437210534924058963247751100629114187282069373741020531097631254550613994533385360540258454158970817966908744601038264809446100243795828292047836195036836430838390946107758657045520945865137635259159271273806463898909069119572266198381791081902823218770259892777668555718935076709852871589799155621352237048133726425916509728498446143910968433543319270705527199057481495346905232274714358185926951015185662654669252614042108000392938257569624265222632922460412370257083322188635909974599205925481759288911219459865277650002058399227705244530584137970269473809639851585253500194334080125109986913084395903051390736436479983212386276848383879351726894350342821073615639694225419858965590927609266817003752731207974096270751555957651620471299842038916333188679502895954730341388371834431703518095910120893404478863951080507709696200461158672966816856330544635873711506475755023519786607455963285835699056303221454964825628017072881176125786356409278455929805159922273792015897547718744848489426273411882893358220965175374231250064631071604941479166862342505168609118575294160801908101579065630289108327195406905997495882664207643379762737631159010816383118524346708326095186141824770925636517463565958405899521659293762661021403483188662057822923016562276876897960746304208577229844722455953372311138966553680104553318945385231907879732933908497975546356158326014731622017853321698138194109261080759244512278218248581296520520870299670268839599355605976635320236111168645289527121196237878360230777885691425816256342042668339722351524737032070351880097726528200092916823970389737404059639040898124797510817391302953921179921264367034103603844368715504766947440487706883944134336786651929318589031681943988459129100028280014755651148055119228557138078050172722984160334358183880121652049295296487469453886919538234722156042380803973928715603230456108063948640691564485425689721313491906520379229075131197089835441980806241860546245734341447018775866497493710032826226022014198312445501581603535827805550395774421104031926419012953029347312944361929088377842073619233261013331442751151804587225111085351890888040264009258077188875838829870130738257384775047249041949187150257799778063958595554938069530353155645664496029179513700981312332955470521898260944140723138060026496048762958491173074642329844980636962987871047386044854424437827689326706416569343812898000800927501945422250246205232094373178560709122661342956546811893589892399915031480592415701275989563904480961415633513649982615363694379596535411708184890868274496249284188857710924665591740012880865015821458965140125546235885113267095939331446942345342367766577014862703592785553028915806456925688427828441411182679610802811838586314671523738948595726890806946039895671838434817171909836245393067913454969323274116340603634883252133864619796795860159752722146486801821663518057968966203474006998785063431922783208002833530687215003054189047677605199300926468836228882021216759504632281286887282541088984305521397185857287702121769113977922949403731006275985776891984692166954460370742982413970007284126821414301683747387017183255643823216171484153863866888392003261839727027264483398898582813908223473175844206605714885306937282803838039659840192289772536460403155897575678255405310621947855152305988170075900790474957008675195288119256342188925946331269542955431745963378679329804791282024267698000158841869555090555550068025329150941749526596991495118343903605275137612929616110030958613537949576259312381248633241186593770733946477839306651237584284818488433394161705823968609572959721886654526611433284834153355527642064652850749562001620931989152887547946574175689641036374898926267634451456281124852781729580139938652001972528274618161768142052303909628996172997422854782811534465566503247834021092745396289591978723137047365740358409348375974384483451780770687253069136971576317883082399184246478485398274876378130352246595422651272994508497045860549254334388782861511379139666270294314180366855137012464891622309957193479400634909438045035192876426915421997480321658906707534561419676048402099436028275639394575837180956916648572847983816579494499677955838702212713095252561556518838665136548172508146238121601080393826965982681993302691406958285518814076383084404221869161294880943513077339228431728954420861530741484620166277682442154280109426649292170919979712110149114321676796183217066110538928509455814544458727747910336432215857992990340835335361709094218837369743711787329998174546231175936161178676864236763460914782885380577893074948060540860412006302705015943071279717202076158965119323672976597168060132896306949030652185904913404702112244392169885053488985571754455550000793067064133464090506914366137091997803808082268443806254372043454827694917408760871983960331453499866471590141952467670480199602020731704326853451473521977369818053159013849604428241308315471634409381125236854691972119264892913410981195717404154875742317389389738202411514005125899002207399658267186790242830339686845219437995462312299784005833037410204654864043499611937630863446213321950292468656629138869332041017734253726571011616574381909733041978433059449968263502822097499343527117610506569622432968226604845663511937991220968812727727397091909591714550846771151479726879607176729855335390255645498046596822624873647570835615485957223509702254501941135242788372172940911213095597118976018210026601605389824539877199842753651929682968007172553540450653959039310065732324268668074019280910144417048681205955185490673932946633968412163761905340834817323330039502382630731153518863279511682338280036388280677113925974781401533497055593690924131150085248497939470961154037845488963029417395785801855988179977932671877842047894898021143736449416050290236483471196889301449127471605887743063585478742749224714120534798744784648836696028970206869830471983168973691398341585580302428889412624693439170203657671843779421037491649573147496133969155593177608684758594032553050305230464242453201149825775757338950057259937615226499290557418009859446766188872765972568623419713591786721251095355215516787639310792256067769857853089116783137318223583976233850549820286920241337399787180272229205982556971754773373398237853181063766247860278506498931950910195193362761298432254391824807433927480375164374197673895793047933306220793987361552775533054930959025176201606700146035955139008929520642031795667763998345184794894849207889282526166098072275515872968964698600096459588163185744315675752819830358096981980990571949759535755787643757958085476825359525193300772654376615744094598880302796857429274735114361407774569983703590765681937306823101123359722194722814924094191752348603993776113908656404082389533638054162242981743155161666938386106104913400059982787426627223007126940016730483587456346343949581505451792392784371504300487146342401053240586421054960100398553014067226522361385067497842706435203739033420333481030944028066200618466751637530092343440881041329753408111985284550296608197539631989577809990779418077662395688561609146464746642453853724308537623189986996043291844950984258767754492643213949109150582727336475558551063531054630977925944463750694750230037177663629081424306508085456021492063520309957110686529922414581562438649002927572325975290862948845732229503769506012907192936921036234224286739250128366591576712461201715599551419928647409642984625525276915488389164600320828134645229298258211811639173789733571866214952303907277887419197657413486613508273418592738193611389607499537455835719881423297200034864092862242279346056464928748845566895754436577517320096425385827046366652208271920307627218315221523786651175021586574263811646572609947953862007166113208061719259960807353795123540777698031634078105821735316562953727484972993311250513643585011147981911669561241177327474800567566531975807453569505660250976736864031751373579586311908241544323577769316081910278271327323795976534966502075088348800342032126522976966555481362147621557563629918568746767158458468430462761397499331335616682866066877398588248966364743503727014019783333900949524249434039958605474141509105392054055884035171888755476826636423866009973894194025338442240234006567582280699224439822738029890043642141733497941057049462377154400469559950002155663738905950874008002177210602280937881388046394174239280896495510379167551898857462079074560700213022710264156765416926631781082420675582138598401247922501687946321575522056262540703629363597095638144578841397349627093357890742905110294242566190657216927676570052434593771346294640996573142846585425225193120747518233389661520482682790697828421256754714768863769733704274792577702896022035249606256006116297131413045763573032827588854536869457733389419045412684329504982363428204488844429165726007026778091363655770500714397982899312626317464921345145413859531866626437570516895362247052669398175264125051727825746952472377498808581894031823502712992796583162058725490521791028232687960601143757803690722732781404589749044534954206736307073262432585521842454481680693690312967470457282314523007891059784879105780072061065788981205571834219483733726155871438343638323836617743363987106534678478120968391835639704772365145741743159626240865770769952771055474581382892389738801720985478227798659456462297668917933018767988117471271751425368542375429000790908684755414031534964069113586103894487245356652292142348655437378955839130082274407441268205104821683760009343754909355197965544276414409407777613363393702400910964280066021442374734360705653295612997328977349729357203356224565035004729828718770594890935919246543413762268178784190909896141145901653380075518199552478974626485206861624811148701145424728079078402292966353803102580192073009266417367661032895707127066978594030282502850916939070551391817491628416803057241442010362307320619041255077813896631179754915255032723195147123672075057172814589366597627371488075937671085788054595474554684113556009710949185708277331289820352936492244959853146137219455043196749154481005432085705699301535880700565027079176487703229352301845551003513388099471720031152451241633105183197277213395353850466592272881326093814122558489011752916855498939514260729120797098458981146178225980393811019299912226631858547358539128460047518940216770079643489179777730058300030837442809495169582315298438872360450304080158713604450013035907132637469087156211367401493956579124107374579101510023923986759537521811226761678300168682577909630400983042852578112431309785131698721833324230935903323301529184055472278869120422432412608299531109579511096390273798568106636982911754822179889196500377623036916750339410365870897125227934249214375179822792071513817724008528970228299681920883832553028765080696068274896007116840117601855100435226644684889738925535629336803125227819507987990245056064733927100996601138213905230618794517727702436394833364270821034437741078904075501158228417993675705434695791875026947029987154689217631967480500730571785726816390594119172423222959624667956802969715978476902393129284462501656764356228484697131695683459862916352209363487432860722378892367609691063205830720016455592991503425339943361707939653218834538026557016203578751939530551110435464786932346686004625627735455275005722415418902997940278134189723385119005189030485825871941984226520943439029289967099538130742629011704650230627088608468498688846195724674304392057137064188935137650614675297718856378893374627808264486269727281327522022999803630740744216240673720805023232624222076004598804899588997509464941815376254543291871326962578190995753808569489936281268021266608461007700186738680981071509639184541093455743725090478954642204825156482615523312666702083206743553068308873213751135564223882829973375724634365909815757101216724341908864661744438360833426152872423950014474257779918795204400720179125468922309749464176082614443098326913933052366598720773047482676372331451765235350897962277258920057363928555775899708096242421880016682164941446992674829222854394642592535966980050123448004113839965047810841679220960852412200759568927518887816181727012872584242533765711088105874005993535602310450037414073595039163858396076591766730252592463862010405393292687455093818382236697719904741280516096872627104011619415995312381942975202333223273554568935016669447049045183760044090686273620504216229227596212121836599324728899476164965106342166113647865269630306926978862650954103701177133043282490294526910589501450677399200355716091360212592333732754948798222125167924610766045612782809826482534989242468709785989485347589169505910311905761678398458519665018023623854953236930485557945988159547831999536152433121514306305524819102204274351461783102506406941671584896553093134490284654712947925429247779009471919986149146244381487040089849939837462114095650560982140995860134115314097114662967178999120733446693445443537696408165154277816153733930182896386937476569804738787121906148229414282137246100546095526008928421281419710231407993737667340215354760746761379488689707537633281680892787258496647712958421148795635072889565435983322959018716955770544187075037567930597804781414864911050173936685052733481445278350085796175620111624835445581541065588705514419568376983509728805788488776696064109319918317067554302662084515207906970817964729670787132643190821423937613011832047025225280248619236544824341758262200759223580571816311638327271550084472951213653933870552875220638437430943086081143343317007976798461183066530132937743116573094001961473997049812618338481485116799757999976584191084122840715284045874902265106605064549043661643423060369214445045553355055751463336288296682774483569233200035880195537110673584074959360110301651830113687925174537511754227782279954321854145086340368293025024282570705344260468287809542264656107177363715024766156908123025663323716767713561990742503619268055164791444676751087744399513065070933731471833271106977602820559311929861645086150339182730506816164005977199610394733505020624194993204915105892820684118353935263830956165981075354918483269740013071162890894400584897796879461729183239636112807350801968151504874196805265837897380495874492622400648359545562660370576357229699974008512421837449716640203039251791840165897921095095804341149753197562401963218882553753400111229257410169927166807005868474646115901081916077930107671400587123728570723914128943636420086492742616030205358934673909553751072528954703915190028822215182643082875333442085944666430395663023736287396417251314108753181941619663879806356660232502126081273850276078639155262740361365977375696554163881967392670406589184593471723808803249693539291471886826086105190582971844059656782115863607001172920927142783820463900805407033502138094920129383961417581646964696906628658898117064347434507716090618574234851182069887421498819195065874022891692507562489707376644223285288956089785886673042597489596132104660771330719899261766904227117875230589870951030228509600662363856610360640470621703841274828325414526171138977863541345188651776466035642629121685533604628858750713111369538468726016034474103438413343113321056456845351456116808738310591524201028857573648591104670032020412166199211927761298624715972046136815285363961471450199173772551829491749916019980400207680323384114235293638266583516075516505981642759029063600302396683596404343849181941591259953490048875366829761187074006209447556726221255461309500058776499266905993583495662982309307459598152402325191850525758658015096421299428646190139127504636458325727764117658746160376035320211777745826323542274942215919245599990143910156969671472801168922378720837962211707516953596776992195850357533774291088573900752433847373722245140371681115043081962326348223722560954527736500725092431172830732359069085265582758131065296378008075799201084664223550419417966583837079898566224095670279049932290874724854062024174119505816465108826412412195439279230239512916637094572603710926642344857700272695687317255151762324364684211105190062553074478978718409621343112963207077162470073922751629639213584950375016311367904832797518517817238358518845404928155400240743814712921588453864731825595695684601310816594992294083272230663063913915595027911701426298859724878932383646028576644234479983752067864113810093567169270848524444851619067167265978407996519957287504747513338367459694313767197216726446499294262766174212840349674937207284188661531805830008171954671474280626694219569070709449393570794485083606475717604628407533004010424673197597206988984976496277617995368893138205451501346670932731784586854913208175066643687749543446541192830267690575845311015392742630453737872179841177110175348373802742858790689809359511703482789026152930269121532511786161247767917183291096074931135371627233519282018801933160288873247448228919313967492559046104428063766889825334951375294804052394441467224130031631295998547787793775975076886764068744915719361988259839649849082597290332938696130366018671572052679060346176573312656298571441379001487387622917350212979432863799846161240337547851905254271358434141270054819525765143070102584212541881077261168838152486043226269419808978472269171944273944996491150670226602333572459507302556564260227791245329588091618724266427773331118873229604770994674886895575381012493822855394067129450431698717455844740814054731822981856129786439553365184912210772057306410763962546881451035496976842355681126202154608209241614988049460996093284879007922439878677159301868541166350613708011404623490399682092969755376435501101853275494003190616416508085217258957337495059455513093600529119354811969566925031661746408624773876083711985775426891641539142882448911719490684316011612067483493326199575811315727346886533206726221109440977977992118480812760551539924806316337425492772140044077328706371381504923773386744996744188889587563897607286421016347250652679949230579099468659116236046194451400511012857436468048363850661866397649452132558959882529590690453013693309643532700451150451138225143989487652405742553273621723632579207579692368802123765320283568504829125024313103353171163961511646500635301132296499842052435758733776691035120276334526428500619137115804025067059678762361629757724788143618986801364239596551660032130973318454088676014418391296830001779469186981180360096403269386244599671324580348709681619040267992966622733068723169196898878349085147398175103443196620647703918657929036148045305782306168010223222803529332901335741678805330135599946351700231070944431533880281376705144655073854873575681980902947693480450888301916303669109582694629789750488109067457197325471304743617345541399271621096360606161402405301811579141684694563684928348820107313211343541319390373994464387960027163084885505362101135287228340894371301007090412089212319281960656332906224430855570598082355682501884881894002634358596642871267119939868342291721716665165782284436583981003967989159694285530102565360621666788863591037936611204696229218602458112147265277792128609826868585884852361005416231666822373454267770972390437904183167503221211150221120424010195918895181062079013036290407494014322963049523783005527033906970137025383862087286298388269335299063456376753109765769925874327313885553149612032358181019468190370475361255229496464055651492903138198834640906846411941082838524754826756258278847017354531694228662108697511544509163412407512400732403359431859387199555427653990411325955485161967815259822682173013705396092436762599992857456749152772469681303673151819504676434690460028291084727493610964172231254662364850940947929608454083356613804266007994316076528084669633543355016393026916494393462519153235011532038166503667696874245405827422454469827560019247263268072565490390818281684183867216552634307577502937131675414952542886965721817173959583679453739131073295068776702612445515967158452151803597558740073472925078506355836724672594781958974025950557218163663304045944336495664697314336055847811088146673059463618541253535463461374139919487179436023595749056479559675685733549718466855175376953945392723308713520377751780259862558384482379739337093865935128401559728173629008996428133751139603051788950288830321148947949325396500717907644355756738592158829190240099586907291962830736669760398884113822396581100637430755749762372093810196549973316874969560126941965558913310149097219170286775526363250222217690191098008800016574535240587003320376391713341103364028824031736416329252707987478144631397604688198465740163700582341560878523481722802632273079767854155670233831028518701433167564876610392798718699005400354542165866120064238686246271668570628285491041646598580612746306662820307074121115384599440428761120605552416861754218585851271804452609283469782495747558114621220104988349678603892387804076502058132876765054372555922718486367700288065744922625835601460064176049519381340551559785836141468481524757115982422535511095435890598065795713195840770458700842214674230522747555508979586032607070531891165481886084183162971383300002195703708459509361282423373980241339895345148120117311871445700094138632960989317622530492840341358296116071755741153109793482324418226182735396020179106673281955351775920824804953120114490465752058806269972700229586418516480005770443471169978172456007719270416520260964304638578303984240373617078144436463512644520103584370767234395045416375682307458582908068284537391797731086997577608024785213377217145941911902206765525607823215332578716755322443904303775339357466256030906416310561620594631510462696939559753603822212712374837826212657634589536525389898737521063262140791952071808836519017542893203135274902368474090108406033565342186995499862175251976402897320940593591917801916363491821247097231267587831004213191076389047603087372975751553534575030709877915789046983879345249598832996963464130495350794475985273613021153488677158133015210781333215713670762214621690842682026771779696673807659803742911077452106093504083863884254909865520181043981573269931503790380185654697970240010610270110383555668158299047656557005172612594190719535201763127792007229485473729268208113369270011906520064922538359710024364151676012861170071347764561702274638354758369113672226696783475970468532440648872912221868398454756529891277244496364115292693512164143037155938255503566742141391508308382607979341742706646347721926174539678162665736385753883684869404120184913336205009501015114573066565823309195748395152485708846956014327451423108611151471124229787085916317509772333225116430958945968314791275583290526232572481992938429547251975375523507058846025684003937622227701746503228855572157924701028237422113660444436882932443590754925621736898544866546605684175674563075866273045112415375564747339343385075187821701976407536488709095005373737963036570962218993433916883731253281327531628400479141659162456300490563462657746121840959720568593979776292095406193481046366126460116289324161673588189089524098499137913432704177686276369941491122667263498168850377738465756231237308109356316406341640890859540459823629733085608828469678568623277075878180902777281245518553447031374577402899914246137322389335438412750141456862933459931428863498340701099350501701695042395000249384093788304152227319194806567203657516354402497946106424755088865145246822513952336192687681220583943169987090925350164572226206956890494441411839951323116610604298177632618395957930465892175109112675453048434133511820925279661616247460028018177822360520509514810940389119061450532662683049876027305049390568553245804213670885114475684438725120592099729258678933710115506293229095929960281916666504687638743873139504581846639385139027507995932357049397622284951320480295819772401829248935310540312217585524985022434040917788101470173672045657171818940452155154398738418761774329176564054085339363646080117068773734919229015842789171552086138045715352461750320571474414041114936114943089313903637694639341988995555974538930438571002864576161052001521942456763968627060721791595507968911012513872334459986896136359127971251203896869927518095846768542294163491234881531553268494204934897174961821815277181816792077311820160579986435710970700325421886220044455835017433594070651152758543217448937441210748939924342651674303958536318678363531679833068285811870226702706633748455867159529148508977008235051101508602706123320294577621330812769344145896993601970598650482298945450859378967903013073719772159259896407265927662003972877254622384886425625294753045108072930253780225833391925236893026998602352138510962577682617207341908333290898547401161293038439408151562265294881518111871041079562606197637319935119399190701166159321735371068770201395757715068480037700493926258803907452313038043146194847855845211420900311885237595457350087779593267406717019896612790984107291965341394748683887494977611535906826340754143554723319148764092304221831893428097029467929075417771297226295029502317411579397196389970312344373069714295643699640208950803725139248896767252712895130811393796528520780992836692086686557066836624474419918183798297137976973755699290137004054119642561398382485505061290811707702961315208493075816618168007564565034406421369464646344399507228772580167551104978440420115660032787363726921779290074777090468086828050031274800843262921821724509948159851424198306205280976935044308610406402838978602430836162660749529869078696750416484059296273475247607337770595519407377160457453503293374887113593987908058462239765517886451539026830945928608945531156727832357762031498066905830787131497389282406575789063162436661161661090441521063466486882473988327092553900468729136167349242046690723473599130719436451502801916301582664229091751643087620592293369344968838271556173138940563829778265303773130285833019236545573829083982919556723938370544506581732709425760728564230652195783676865529260388989613471392047633080353078837251766995997531964259495629896067861773778438749623322098520271649089959197705516592135578794337974280207968340666972780634191652697234753489276620981549593243878858389939180490482333114753032971364302108218122176484630700678545565739213626575025636402666156456638778494077829067492286580719608623603357769472725222165444076175461292891160222254563574689636243901052354679388835573719289854612717587832253598023132790490537852385033717583037898992762305195404115202137876636591381960928887837846880910533350545270082704366959855377667503091069827577167105486148251580941572300689458032462979093012233500998384210930353142656495553019464905039124730006800389033147560003041589321236138223887055544668608805786124431658894967520706101931992725859661242882709048158465899519678322193085864369590358085436457045186268550116943628690529046286903728651915503554998151828777491672557509322202623388330700518763657601597677259115806798113259141426676536436316760606908508405347294939794069257342271578277076407952407088325969732846775522786720642602233866786070493056302388017951678277050074186903838097056684429159633865681394730211109196390625922771218638711700806392911789633654541646566846965286343025326368367793179804240353794958756781331368878375095294889856464395317323106441915216901456738757707143620530930211861599827168654223863812376989380273047268768495648114151809858267057915146123998880383732238691614563803494556819788851073878110927593630129010283852149840179474734691682360502588725604610750365778216160130732686239306454060737120552513539224216023351602126507553723963007888450610978411365759525474958411947980418574863454317082224161131748179351014978736989789978123095014662307337800500844588870374694843263582210675799472880912909656025770419987327099623462520545550026468948801771487499452931955622072691885601537318286821133196031104828672475596048071559084679558069852975550011031047351875178885808743327655259374964885012931795417703366825313051548411706432155826086045106837134429305728814801135431262100382808301967639247926972565670642275337938152083890700013375368534409965048712880538292325116143388168410651606990234189609525355205696586793868060711480947295576119951764179098201209209436143231375734097358506694065652264458507455028444193932960879264978864970107914017257200269168181310146491387597259981759389884596862518561164794499972669143216442026692662355871774322892190787382493593318944806698453499485310360568335274520445224244208692278645731029831725006607376378579406921858219197908044572635931995877267302892571020706066613222398507521783589026562050940064880681332477334246895987656421120168518798486750279447438657793455746788931652053122798664978924249383774316922515088931799996762884436098526305642535913682823988247320970911453522557728557194129386902992940037292103129118009364857582420206165705337740511104283662951190272637084024533007089036389032724265224475903297390884657562544402140489949857402159764554064691825967440165189438034058044683041733219018140332000881832433215445404925378236728613144765701231528685000157715751056984389563706662751802586667309753256532881588546484294405431198642212097917891092246102176050375219650988645439940720837036866200074977915021883412385198192560664574103205712398099863675761189130906720920389955564724491364014756166793364406673509449897947066380342741956031601432356461450436573748964855370468338630268037525305177191545544996218136850832879846837101937838684746468464200966752518499301874332697151960772321723117814528587506703332510272307646208904700398567868693440829921609538815430825980643370767043981636454969614223516250961071495006102723131298995992192630999903717013765309618093054813051507620467315262688348990814328315669107738224196781371862051853700223304230368761469286015523198471940210865200040864132912189146069514210851067843170977606194955771081577289418817430337191070391091535033441127824684568970088867528214173839576301965533755662635866587228450181190465089193776702770835270995592547799698861682621776946342489919381025417163257744105597771181676255114537820834128089168422514467118740898089960785994894755482445277627146342501725506021977011467347672010038666698669015997376781749511762757155313297533118727878198526517303961041515126740598193165894087452122549744043505769588644551621034105707753277977798966064975292713859806500709999945635188037516855727106737583442086552409240710250189410679005025345367453185571260440967705627954030711911770430102732977049782515856064035921237398098807727510598294367178887620553387510686922935968114600618484335830848301064720730088412585076108088798587048374900397652226338273415521197916675839920930776090581072475033085768690245798940231320223039913725054875701037482413418732119601065598353227055319419004041612104117415056869274366128500362235932614829749157424032084663615135938518659307307247496058022025200554626321645759324691188589112237011220300204491192182466272475302244597923106693732600898949505420228585843106666468565799701697517860733043539525371325753837548903279187810113729049446577802465252485854893156025324874075389472930948436162934156279650077286128579356096721135088848676580792301589590589665116852925121505908794924999398307789069854082090988909278428668319545945843798785578695096389209647758986154542327197886289241280654285060387439024689963275612619906013860173802355405338379245458942590393475392598589487013246519201156802419774085988337634032330431121570757431532278373142744988067492504449047589221694674394487324365570273226497206868557277498820281534395597042380251647489316825633933591830991682511409553550402942714014577947673093898046498118575980946970402943580936060609774076100618048889147982084391238939084448483353481786841977149778272264422868226668906432245557636935928116773346803006956755253189705375727550477303664038377589678108566820127094473196883220688142205132188875512096122776010539696343085055404484232693946575716120954211912896996488598905439644098494018511380819682725534594426180043713488199014456649418714884780870553092249035086778632850880586867915480425835927461005225297809516968857385884011845743804995554742239401499620015102174394381221016203535540680782364912839399098057742634870434389909115053903941387848123990675389704033918838172577868794388195913373691684098885312901817519379047995568259908130547424304385636561888767673200758865069206416368786100183457022743888906910982363144452677919886315741403366719734003326206445012265878927375459905565582201790457015413681908626025646192448776241934101635416075172928038996478377508226220194244358168714668229027788842914907999764088015892636424918937474214168243491747844948661759949701485965318398167903501305559601613802720890070544023672908594798705953317180462708441770810224861705150939005760103676675695306507566707848756719225631206694390649813887046185887240346532330642578793244357708556793829745770203487473875985920095836594028462728724491245738166854074300266559397175975173343117675660394514896050719024234694632967573654743168796139504327098552074789881032954710697025578904526862612363665617145855434658402655378302493935661599138328702955190037084977659364903024507249933971442112955517601539162743831303140303817451095791119414528868196224251676849013068617843329536375089073568912465992968582308703357870588584098164591077188912658098059397832198860738313926498250417581369426675683501929927273110581021745114154026086065493244467489449571037868458053880463937259807628451874643793260754668437911925763418958778879422498541571027628374603637566777786478890875107107824183105703044098952588105748233200643138594976597898352139925556700281980868222670364849889188104349400071794880810519231833178228051500146516248215608421563288795094809808104408417788877022797621174068405685622499902951819588575322738420499322130904425246345018225953878579493004913396382513563927290829137717894485962741576587912771917494135811389898846694799644643747642903964786078582390382394918751482703881324222545844237954383262561834253528123494028806866363223178308705570632724884354090193518486265480765557077055538737958120524597821249767691101490387500226161735819962382039906707491782619710861339499237096380889800750955571106364094976582355267269199835273638309299099636044715907276446786421751288972459752231217320305202660318950435498325750343598942281575853794259956140364135998607204087490576627498898320520010975583630446691193731231616187467845823093148944223623982622062044938602902114557436934939217739202125252155489176870603354590857568320928249699431097806143450853165655612287837906421168090706623373598397475853242183487998161352221293374168028867125239572859749454744513547953090792024766466361682400854174206662379424622645333960679245813990498012987873553179671367246128722711816328616590173097896543204696868087256961278097742630632529043046659845436832421558653461342905491741781112100850717179085726287165919023908667185580398547665643990323309888197983148523828066653491731522436041865770690505810729444093085585011385735837105463373649184823278198173434206452325682205544695931850664366251492084848860256871291886246059473134625330906198576933887428826404504593640754698694154501391028969873153823345346232052952198469983620539429463281336814031437435982456288879846107479034794595788800008758770323854446810521046009869769900429020037101174493071132329599537251601172851612081495664774016750173242469315445498226470686884900951060831845852174771039225030620209239471875118225564182115692215539246618384206721378962505624929159936063916837470076441811948085431899145372141513708873343480209649517762738242749768697473859553579275236903746155126468359691801270772055761883282298453165702406311965781324707576108388729601509137794917943894292009567093794533173368733940333103452253662206034057861991043303443767426016596311998707426133825379166870341718142167246175146391480781714397411499681710255094430185679285668052947512124361637189467839192163387017647608507430503338113868448808459010912806607989269008669618424249403645362111448591771938825398059326171831724657702715893887237761695351288520364211164621383419720039195622649898536306809156349727169530168280557405148641955229020316025148581112221191412886906065875936396614387146459814587698276817323220336292213224217239582070624529925983743077869597070155008458033741609946531265698065921948359287039170172504113968903256777567216780062671712973379381247649042727463151140250309694907595516580020342598171446459819551294177723578481295245120128507332080321702404212285770392170271387966145126315601189613625769169867609056968044758174637369918332085287838001912310215013916386324400420849520743940523101436158429478508593333144247383507185406712067649722090891398425983729120505024037992614526032710185847797417596900867300146933099144577507365847371527560517395458103615554934053422292225044983657493611288016880864209844087460613762001653025562049421444986781163434275199444249661698688290279974825828831695305246736161450782624408467207821337236449883094210433685532525711611355380213985319423151168665960934439314503085418087725188444946579541628587572159557206012884581623572950416915657297271021865794062843948868089662566355136782554635655332717632224871124549003894499521667212789487195537608460326520109760091309527502305054245513682455448778350674819299808420236389977765540979125750668596637787081385655074914963600076423886980032465604162129998320353983290989531786837315672777091334977458134291751850620385707493383813441850341699515737707051765625140324566006529753666217256354486083577742794578971617375220543916490673279606473366133083159495478495223041396557981996854441612397125909008334658647158587167769136219447722497320536275638809575308490747078572427336761673439712228927684514707803341026218804523134762723436693705591705091379428343973440892175725876426413942337265173918982669419792841004385889436254250474714318218277429014098860996139698282265440264221456656275364552739656811439746577208227663480248615855259202790278957899316690923659562294691490166049485532192960479535408493804537945964411481719040745845137561091040429815939949726586849365644643720341494760431323405074935907545059759708334365058864866685119240957261059636687170966801535773200571369340429636001262510313959214812639596187854197718143730109528369562070213766607522759629828334330948021561209415578597569548213088321658668038226754213896524570564421029558041664153003880351803901220149532266138865005439306706455101855802780960258106981179373270633152999042647003866311974446705095427245999411931280794885602615728197314429392136513138130237630106124928615286688451257516924415148715928592113312870578364842327397807842991209850310120833002807096009265199146899584108486986176226203435278433596123527412766017437860041435567717122650224080821694395464985473627339230884667560467909149168216779255675242516274317780363873453239478478199952395081589500236075879647651020292214615487258916039551742147908923892030057697274156477862425420513731688315968807101228894407420918217937267203775993436924120274858752930498541907577465861030512339738626575133025679527536960467506900321297008211823773364272606642869621055207351825525764151246257496817090162876058374982375752027463246985914991412250503009858988123761455758161332059452077695954812589924944012170168211330342202704312300284243732562228995709191466789444178150858642699646184178410303214002233873567511049446508217095572677501593596547611701133404095256309788765984361089240905413690197282618838447954728597658992082236473132673758716962176495132046012382135291320531111080034862369654518261515016960328152047384725533809472600106773623420114405028816634526424907981313610005364967711642549077708027432285417748859906766834546300607668387425576764207581506922547842653839995720600261427730907666474338384349911506065138531612935418311284318000899173334168506298006557357549755641083817339947371134039360937979837664893103520184765039348860265101869324943720415364673486477252182183355019299601390484531717875724334429731420300293352008136287903292937684731081825116049917416921487766020138282504476430418484646058864070911459507688809634562080996435596823867662070855940353661162792407645549154769049494782610762269781286584577242273540636083557231911171020473990707792108042140814568262069243983917407278218333164015892810181709055546999713794297890017903386427888161575834433961130218935941274005640357760938769019286496388552143266227859422086897265185213427633027809079698676211168407447384726463273259930105123151720689701451448087959213464980720065691516405994676082489058230423782623602291925640356867343747352060548288107540659395653632694009563365616973802964787608242196975849240550650571078164114645481842449572390719659669267184070412992297343331545299274176832730707016505107847655783649567163611628430892587050528726123378444434552430460755935333706116498436455356609100310341489506288627033976395855092264485750198167696778738880982813028037924382154572420297589281861915276393200547548378768080449971655691776308853906269355941776938760865612609284323203893409996221261893589247573154661160979934496416922669387617435780634366721065475674230891516988887701792211223197944050370514022986002968827224531194318499577081138583033523202097447282041323512305051896116106224068549748634737453033238643981709901529300801385492871913739702745296383349017973033784069349941350453738426675164219405814939519971432675329772574505583710272342647035680442316284146902646453322480365905119749997654625273175239510373850624262708140810233325644720998197819758322132661151004946068787530897028028779601256618447969618166175132947518337444504643059262742825564501390383226579946289517240547010734344837713460696202578927447476515605901309764837035531019956881651382407521316920073378497414512850015539043128710736154192620952577843431951501485539384497124912542059371208654129570352461032503861094589058810967015371569736437068277090158025382173463484898845133087688607061156315025554324928757839104794990246646008899890921775801551330777236279393604664235022193569672331777925684590086025569079650572561533410974646254056178850795127687243964126496219967913058174668787766519011623633981240030837929069516124463509269313965914245587960649845971689000187678575455703465082020844621673107701268747194429372808137238938455234608885178527698950639588330980969711635318182807379791822417025019563900045671961514078027313144825443307655240063780183229615935955467406479045735455377792912327869114011161592036968419608691535506017686571106435012245375889037119334990670669076837309507213542837917794082729444733438020870604073988419659268932795843715258618011738102320715129434204946447350086666533789446938762243790634629173253399616004020760283855548802433509553510016392749251648382684655306884853612596062702205123861839847034614092561447959317558862639360205532315815442444498425062993738663807077114922023205563192088511740801002555614918128814419176343198157332081388974869624504409694915969734235045068985199679925551848713134257040560586472171143104964111953942234896077115747716003720124558452649188718747644514161971854233217081928785603244665564065596415459752328952573542909817068483656921279281744383474769102336436494914723200426780998917950050772037262357263968008447011683710082373387036839546711514694282428075816351212407824439348061951124929685542681448623911514462485527711034863564242954500858351896850640123665734065798907314481683672250484237974257203599815814050336095109811408314989250500941122942907998089904907972225686630675059535117236735073945726505848230251762375710873201778657648323481074829941415759342098276113142932541128722404957034262060473780683876539066979242018904530305504137107689251334128089893155890281080965584179692750491482127580834270493601337631903314164992123996972240270039753175941718602580022924641676588939562344340622802753858373984446558363166075135495192890007042531597332870889522134975061855310930602828020093693144811321038080227495862337358871991627234557577194309190247203418991887352441801400370830491737395640878135110669649533845103781286961414704876294354229926480801548306761848024852566427679351584835408619759744090916960066237073174453336026287059916984847853004999053759820312837411366981931256158063501841089246757946055619585604958221370226672566749730238829820373017394510861505066406153317184301493685211422335507960086119509468168509632881774202079849468770183062182317302312287955022515491020648200367516159049923448308306992577622333775756625593123310082126253337039390598451529399098041821534073461988562186511567653362445214532516664464395436711608685967022065443240861138952164052545936221880481082291378229572614036757217921503905400361809145109566192115931040582543891610836151426732660319663388465425279628217680448461035484784224465343556823591676924413557976906946492457549348148415538658460487249174500665455576263590502192559921912060042967237584950035637035877888606208051624502995248974401076580039648561251309704028885084313166147911188052257596966644408498970403940585811836480367057304246039783992048661322639617253814455934636577662848163362037906468362155076171351046129203367323899841155830505234749333325001093888239203794883790546307088708749886885644830636919633085687698661873087669739386885130035757440383896171124550671580710586091700793737707655273387696201307628629553259619499852923281116970375879123120170935361131136661489926386264536095114166033852114571148101363162330807325292330058969347433031464080889115135909618594503785720433488652358129797998814954973848499833738203236122656956524388128807897286219692478760016413430430695447967752908547887632992313907187128991670972899440564902353135842679030755247330730250427377538619577855593679260199135155926754630133440063446969791639422698333702013261510226998978774854743851337114216008038934127927216712879861980498012124625166646694822859381395423380013819055808016212134940220432820079257972703241932858169451588866969281836712326544319377760386148579983573951738250992659789527828191021832839828133733802752040001424651074793313506324231613762506994300966797222953410711670488958317480772651399701538421354195672889924287982036752415268522387274079159703827953456424360694179572155185560269137798473293674377008479442348702810543021768105767717240517344554405587988485015386359827068240998829246727681273310928330423058919094339636443445970697611223464453638967817301441080759722116968435616167567530670615978207869329365187498192729945455380619240850557135369504670990225233638632303001789120242717161542711950449039526463946246945787526946655647972513238618196756157290989946808446671969667580656266479083204860236291289912791572477484420306133022693715554432941460368587647085114129443812741840781717981297187075475811663297010308321673995947544680202181545110952076577984991570922371076908697573093303528822938132945512872142877573368447505466552454628281238807643951487850714410382205937546561448752665225486875042591849865753977411332982357739783350430009924916699256426114133336952337104977935135098258648547815171343420358678745554914226183607066653319098503635740150114476617567145981871324671377406898243604398087373569838252206976078169064187486573383415567022581367365316764591325841784633536938014615192433914849322718046659494646608895607000307353500753736757410508324915758901018400391254617824710372566129839903900742286637212254504043476413828452339432710591199043430956725074337275022779786510072270442360626262426162206396008795319487598389343619521773134335880083458114177718783639575996064606854301289818615169914151331478765825427667662407089270047864591969881547248739751651259340273429146568539307276388663817629251422080400547716736237501541413322090990014011186735365051232763935138302244137108198441367614047557931328724721051849664172528625499983960317594882702507871107753632121252415014767619609321943056445108344030180903268382907536892386180582173275427554710055182032984113292836436531701060729946646772669918634472072892932728730339876421446132095286430480386686394063133965479896484668765703527185639026796991632283023241948595265659224487321628841415775598549622651738561803791584974070123886091140281379605354645097040392633278640090411725856935921887359315026120326237184408778240061488238759869737462370414883027635051598621298521551042341904590466826540538020074478239616649352534254143510702885569647522737594805514865550134637323665531840947756248664859405012415733015709379237923719492165935630474764512533800547076605231493987328312991185666727805199247421518162113168428850827099245756697453891130422060378845044598207135877680760259948427792430865449997450460876805968877532666440847325467167769237799484686439988179223154617752654763858988380748505964301409370465341287641476478320114803995707082790991970359953266124322986628175545120954219499766003352161719567109961917090562030979751890908438749697382008733334745310116408160222715871423196785214788843067677096027532630511482468931808793896081954496437864522690151832437538460199028716825192752401115755595539141498684938066055112124759999970228836544637833968755658535928501294416545836463691299953403104476464773941553522583097397093614537620040711975177516578131579419944986901080076054701833913838016074173746904740882525034293545699933292925044939001530578945215311784926908871598804682404634858564985910126553718688003988235301629875179942224352409414895712108779074098661540579823939593224025022500972044204309957989729581720405395137781228580701777389982431475417770476469656463970864501944542155996785364857714000251036494175094133277224345640004391965494713428358105795629294334687308970328406192647524181553094355591830148556246483998446308701440197713168864411293912314115089301716148588003312573793648760890224904210309272270883807553166187026959542351354112958584689449387960975601182131198348835313493180857183415745943420739749148995774577083679173817580998755505646336377175731740883755632143879853530215888858634403312025194258250868477085841883323084533446511679440996206404107927777402038727330505408803376846758267766508060316675034758370140326061258915978972733760731973745669065931061855654520159271891433115774525894669491084512508498988928814625301590095971036180344761967957995410083365505289664628506436900224040866203241450360823087824175268343499006226706763846491713309487988880633359693672502367411631581276367274413839622992888316950220759535580799807046237699721387073206093288566125616990310566678731797738543704477892816726201555788920704882707195828335695480382451045471301678909641912875834740707508138418160319115230185469253378726165899196639528612936931264326738861808849837179639772529562700133213231719645974270066275303664702698865759257499529728639639933382639845199352181079812630970323287285157133432356092592833265497547245572747602764201658614242645704557135194397328860628681074915433874352917638390581701089277569824255463634490232053105693074220657819650761751410169856458307485781718321082454434728429889953195498365827199623166326877461998160869968275229818653338315176035750086038018433965502479738435858394806513231603451619898640813602060748525377158562130011833023816765153595737373242518684139740362141582954324776079698423400022095680019035001337108349474408953737043833778527483620949441572155816011961923264047860069821220209576743843425657134462105200842705883159363969150023601030631799561476442654631376504299150519764258247992403758934595291203669997322071246720265906411569789876698000574294658642141113630181025824699703781417749796693878896772616224722658071666011622696678270640864927744573405046064785123847712902871288705856459501816615587656736588896877693952820521430905388933802111339340954977177604092388134715177359642361343588176724711416141407187117192235268434945920300479880795486678760543985600036770021708297827125647418130582425982760452622091173926041812816337698100486463199198534497926757479526496527466115936144376347861485533065746420842447982713738761988234592920412047999287867402268449469116454902449260775554750949943611711579554458574559058955285745264013872783280784546850591043510012365061340473763991966021936704272015648720902668827674486238636643478251638979078508398763051090939699945943257736470430096707668754079805866945954249271372033926909619430659264603218394861349913960108916492996144901146298445050902275641941548751128201656735332887104199538769339117285761344651444856681624583844463054483805221783645956423032778668315562129614704339695359740094113800934422410445152640826548665361087044802344896028051470206071626950035873232640216149475802458679093160463125691425902328127525884477741988273178082110134957917736113614545575011522891063297322351700268275610813912010233936657238820385601946157817533835535008002198739029705789637076366348424180926540375801895002823031393229999956948072138310079689864219438951708429210593013860816027662819865941222213982872306700185778720057120957469080364457583128460957401711214347529436539989646819909184167087142608320811955674598865430941956219637493339921132993157712416345976067883550666665135351537826394454271429506228700676976864596856596614952638967313708584880355775191410857560053501548709262196553636055427200091842658338518366131210029821576732061353834737215209511435849000077720171424186841974671522299544310682473257710000200806332732304654406946975283201422300223880416075661556464104549089543277874332472354445992580824757128603334260166851960042193432604704109120524578913677447249060412932242221883381732531464235952313289820581270546860284686638129200019572286047907833709489501437057385072704998430869750222144435402063280113452216493278969037427474899263604964230926902686505739165612620942638361790659333206709475514426208528608577201572277674615101889591148856353129066144481400010205619348447360397989475629536280923580790043169599078645473895124447858242482292629055919961684172771323794533715753666084678096445135047215611883602773768883688190217901026079906120307871234342749734748111812052841177635705693180001483681341678199478556148542349877578749323963404761829002519664178408840585536128119789012698134764609676301645476570923997431626809696044384559768815733749803829900634067237817988825315860272787838085459207233161188185326251807451690526964714095673734648634102488072838036043403010645497198334370384594465156364942742410653426480229524546739465615301127465439242830164295454087062488905783133488461645453240951900921499102786294158816137960741622897014151378015703069950962999171675005219544245641712516818960806748620518154272523115648385388394860356063438884260267365625182159769745561809627376781713789871089161940588485996280433883094817752335597491791621606026772601114414578141520236994835372698741717557625988687741706670240290076581361492497305110719700470852511711676744709048119561317681899079992200485080680690618005641567210287081701735267404107832132929234197602548078542012320437296817946931416910602399547357196188121480912378737125174369836489457074364418667206990849345969746029437961531252063190095700209788222009487926686873405331943882649960202536520663341961261777573220994043240993254285300857733870866641544331858728181934747633694259680912554387851200845138700226964381825238176189684010575547065088112564375618512327875502617273985933050754438703904622829467251482771890909084540556685651738720163054012955134638816899772096013812835392302135151574376211508172109516868010650887353467715684473760465688012154608499801291754273537844154793715179377660737236176733006005374418249780225426460252846731508187615955604876033071265526700720031258534016597840487552956931232870830336315673970106501902490017235057116358003224950990455724534044614789579177155612946179886601859506928895779811630244812670509261382146690881721276979627231384260610199226458573186682150023779099502287327941346392718303053568271367728695349209618339785022520971460454796157170258216644501956285517338188002476708975402909920596360308759946201678254046073780598746171534690119987671543704764132562610129930451307112852981927221220153104284119430092669163992110905844968648630311220451904879965852160930695039540663809790888569970223810129640746081687698342598993820617793859936738667508492957606434722010346976127160401683839679472171509410461595157652088232454446619016392923974966603116749265120531885275803611328424369188157968658446186797372038127135191159786959980077015516458193348054795220363633902333244430415130753736660782837717485545061274281519687818003548083395844150853985592422709463058835110285874833647380113784190496080517722869729560228428584865312808224106577820390862558344165550033845524852102327390905878108831267385475030198370809821511158633082736188893857283632263032655328456486109587575176549786570603310101158114748118348710787287882946679977575318864430777928176695995035713255118496881999721774764499228241422405410928208166633451779861433547203971167111793562150399289602783400845520560323590823215386482336173161713413588989035977270027055353238367981922842412002877303752136651937355429349232109870412172422070305278036456384000897383500259780632587350941137446621838652111379535869360936361562224037495623732401076974017282607406296425105317747682148964693584387360507120779027585667386602660272555270253855770921881862011953189890804164151131128261462844218985076898628185365193215985319953389049619636957274665470927513008155798923902708642253210909117248634159064688241225320244130489574114466791634490014531179196028410345955235253992160986417052493667837831608032130266950712718257286546693703813983454899951874627344563221852698248709455554991643895076925359020517665053484882133819098791110466685171166095577329531316768958449390010293259518690114003482349795669337319088113014326624022466611619542751526448845507032301930222069815447476772419585095148892328483483075217126539062275468383351917542399908064380526253098911974982972428948831489778999472544389299489864141448235588575330421873431069546474697752100480548810810315021600941915593324570787330822658757866790337744464997324637576683389303923962019387481165650336293590968440637050473629411785694745154933739549022482924659533370599570362802358000933965930706449702172243887672004715981972947987198679024436461726280988771565297233994944194771420739383064232519961497833715195951103789518957558791083226300618068389991807222113585751961741531685080052595760595920085707773599743217745002935163753892477369633934275457272012930720608215014476787977639187062478292803101893731412571648588164221551692367171089204513695288658998590827982514512156247028076465756797734327813942604004838703753653179759377838970870337002311027870016149111405194597587063366029328836055323392465851136999323996100460720830278178053237927521104089500514568497714871188003826450809649657078720976706189544738227366801984517233819943820078240802220138283268693997035893785882465704672612663334387634605352314798995638580678423501822110466315812399561200677798415903496542945910005373706767056352514977189018870347595914024086750756409141305226560247395269836125878478910056578678312718237505366201709014641846466949723611292931729000356641829325966511305892719156964044709279666919747317562801845229188288616800059034764123440630809936502603977866563030131144151328213900243410354464526472810802942683888017545637541609527509663293881858100871585170800968956597302040130598677835459810800615566215535809529285908505606623446975541037034648078143504052672446436750683540723535591269929617721977015561264247385749501143472459506650070396308417345040523188889441966545610688263027488713287584059558122752689254460600141444590432882375618267841885288730184628519637966405112167232174852175979909303712417065610800892332415707750280903539927748218182111527669847457717009939811096363375305824371903272291219165707841246835056031326648911427690200769526665386832518476507511237994341054204093224776613436341462068538531789346142995052389088078466649409154397124227235392799884996223720680132751349318872776589613958145196132089925009758385837552061963438174652385943667752305790630212847818426060122659768481749688296134299034135534409555011045104646828017897316079593944871705112309350482783517553521409387455447061852541079649177833022973151838755158195994940940465466049548881142041788424609137414718547900076678610819254186934137363338306258816810690872825759473699904449439160370178535050035119755590245445246671882429502714874413030969769691006216552689943498228543577011616694957554315335108793446648684950697204244137321986756716358695874907484854421574987567137408241441802279525041629058726451880674587971278819541243778127655174242701661624353435901783240443611008425770951654981412659632023609781701086972498336499759175645819121851463230401632883365749571265670797353471888021369007370201070783745231887528390087866373082409858529086873587112952800692349181606260679967461357692838328319263450458076895945739731576660954956687700327501641169980337060393760143883671988846602007801209693640035687149426591638340297997089477396328762922653314578101964424264695111977465600705687389787784661252280772418264990807442615453061065764540573382463601530637514441737085871462532003293446606000098193517085001869148317045798943247375298215991931226159081865153280077274333776896280480268458583154373104678401657920858662272516701252239807605279899596228726814487062187628692197465161196404418262300046117874050474430558342432382308826532786468441359129013752869709341803897840252365708527941101376540844605102957411925150359826561259231015595325179840809690613494163941247854619286273884331935949738017236231525068636503339331109283110484679290015298149295100222339542581354853612843283636585099316746225849819232046169035338815253119658148836975435039960261586639518323341425434878484998142567298956509408440136632352544025534164493262138744006010519612129217037899032414846148869468524404449209614558342452074675953608346583051708954891405352686184327016020215589553321142970466910546351683234600814531486787655914166958378803635032937436127404969675983767067437244498053215480862115681634098249799729915537597342410924625221592656536347516539283831928644072277794491250403224001422304925652738747959262222711712414163990201886943146894216321434422324068541397660813747602748064708884538493159250295637168906926808180626966888029069853847384848690890178141921587856514366834348373816150460829347603339959369531491982187658570618037938459809154454575608584155595790033957302452480643681085132783392126470646178675540534054806099855811046918992636343344398784042397372764917198830390586822104135988633346872408445064021873857421631301141223300481282812588851536121828689701344523732713395203143494827917751703686297913934531926542405773724234238139158162074632018757166819288407632905758811504228592159760870628765824067913661854295223435174381798668866793952254876581779328849803281697496227138481743077149717447946623529175851395689350024243387549904002699246732032546039643459456837328701835335335234770600203676769736690507287357177641060361315010559294916896192696014487188958925225029296303995215468257327279642839765444379398079131011353606204589210287959519456994807013024560311023359004760613721623343277561771354675316297454063246954214378140331628811800666459845651775650255311473540107425002003757738645872621864578660420700423207975712754363128830212090528565921587520525032976849502097560455977729272352559973127657106921460451970353139299023585564641091526393314368420768845993360278073642475783850545738669480988539744543938324722623024060448994510365129898485059023693429753016158794052188898138127147597779880946073076704139494331682023910604098630483768039621879141771879569399630176907355761335198117061065291075949367188906687998500503984117977132892556782187086064278150096460253562412201398499058083338233566928231321115644228901185268793254552412499788680474395442325638194298748405644222042131921906425487829720462010283708914604903237457830156648865377462902518342416471110020318807789117095408616067424326539439743315498496235954137328297206140471846013555591002214677174319002814294993749506938622063853714345666046963657959468303943932777981219298939882789831727515725523550583730370431673147908614610174866804071681955392986688864711965833594184494808800112872525231903871775025488963394191401396020060210209899114058347171429721165696374890840289857337302500745208797842820534456287187689727442641723549135544938739375353573100321142884671438900318530435451574428898762292934487270601273510571018975462731354933718262290962659581952358393876048388081749173551823165679678641955803133885834776598968506400253866363929717676947482467052886917095076135162238895185690414696391814205497999942941430141314204796783378901027979942164760596526029109059430613449315697811857688241676240623838970956412660420919248213048427127580396567630957080183432574560014922564771434158685103102719338481077555935759978465939509579740511977458208605962603445155491928994471747260072920212302232975540607975668672045397268004684471655859691926350202974954289685541128696287888116104838397863992285719893852742568865531737523063354786563822442193033626805403015044867707903023514456628231002337818457675032858870336617860271015701897121799498259129603646147541611824570281404691225039714704700841323387136516964274915412013108794392665971201644209350857795101451555761738597063476144281500516392642669744972607386697660138166783669597456606094471430215523131787492758091858079416634674549060826032804506141082697743742917963355754535081472883825848745747400096345961971759229872165173433008905902301907247919419458358840946300516305299678876692368191029743855815134099097405742429132977176562091042656552451614465446628985995321489037381684224082288569420492162715544695838126730633545836250945370694950007202674419989261987698404555932613411031578899286335940443932734632627906733116949463817760156630582711843773819415014201175499945289143466561443924640362570624794069409708795217934435180282512044211502707170051546315822834350136340950593574800314804733615234425147028439254642567649748022157946390761317271442181680049829151672056555793684462503595394818563671880156816288045937521938190330852145076783976154689968893772069158499934941038323431363787119854060530396064771704787842539142907330267873663670815258643577195681208194926939089341699297045711335851860279459815910398158573127541798726912326891190677227292870473069024520864936390428302323446191988828110619767529972217698584317258508696894592279709945532112168355679114059494918432828714926701030659679740122644418565812313875415204018454833997702537080806488352164115346167982742858809960984762767137431329637006180466520238341331082700670760823964743882227216293801970777517103788375278599886869514138040737789255167930283649215308563983682274519479614701706208009475300176296681130543959527256803120083754244826142945699471844845446242100568850208380759090820853893717552731564247870795557546595312119983624278695961401802814370408010070330352923197473830342079630263769519845082725378381302089723626814308017394281357454548909379397547243088554800512837029859757222135938246068225042034654935514934779816550967201594989092928944746803881586787568267521561493305782379957769590524307310607158994021321849360396160616097472138342323197334280829521862992491567481491025798116500795311914236154939597447636607645472631327804631518945692847038333610599593197342687511119115789208853694405139868905708243669016447252503216777999911506900316810342699543859600439329963902576525002702818364732537524609315434921181037318160462641404191514519125383891504580179145346122770239575929824438458449065134764578287076907365748080253934728590199219079754301195156748572592093203587869233602225231832569661436950265473736520453735425151982098232413055028851402386383959860661398697803720280962353722062835578680056476912194475631661592224003572814959596992712583008755305682045964214366723112182537666780680877710828767214951939449036224857323476197554925208818344977725292715881338654337888615844289955010414009935773804192048409236616243569031587168653251786155408657914474806752802375190883940096631585125609029106903423402618148406775448473377282144907673047161205882240345064653874438316489446274561228753088619308501611614342739500078479126729071148620909873792777407625731321007296022504149977353992447933439512000501829115660794721932288282691485852053963120238833047517939896754600959253637017105067525396123345074770417157853988862617528937757334798754256104205432111255856141880177088442772264943124929029153285521428349050637307233476506907941314128238181527988696504099635544128235498601470535108110213914834910573225170716776442336747969213247149551153756931742389138934234771078674918445548716649845499503504693762617339330974926287661809169192612298427265405246160041875664649620946571397725292996766846833385586282816420442026129219391395729785603452763286929412189543069391053979416437144988596232579603810364439175460343066542449630697247342518522349222663960056626021288523186380174820773271829707023759136130954093950197302556086552495100302656446730321904102070099358094010570306231793639715040149125308309506232978593761841109431332194312014207159951037619636565943173756986189659969882681942595124287338828994597678708091403377216285236121079953955242702322727996263267204545734610710594887200152972526701710147883615169863178296752335045005447709648174263207463258813791872314893255879210468385533620136081533866785932042378100905193557872476382218716306798947769971228861655815703301006291150257360890603736435766530929888404121744961152290253477806197253966867058238689611877962696283519483220962221854215150409311916691230915633022014596208813345044271103553397974578573405837301096727498701521980742422208784963680157756382607905682960103640739823767105414470706918522964303713377128050097192734409654209686565776758135504404939372257238349487413296369908976509114040287900334799592744376886859264257134013452214700359208124530364826188462897871461238463193252169272010375741052547437471591893429660903806225368683078049573511192432478479299126527799639522827103542780767846151099454776517436675847177264098016104877362015138078830150528033780463151439166781820469912985325589254596559072275431531958293833016652467456098470916809157753965960011985725865613735931619659393790289904353078301856342812387341414534493853266517953456101616870793119589367234899124641738643924590428839731985246652364662708658590469747167388505458899694910218598363250881799921582586238899852862114724388789138860523741765425775578893671607374103365307058643459189725088360216354973770527453303611471148593312649044054394215506316807793559544417653682976225486612362537680337461789000317593284652437687909597522385863432979102036996979329933190185036036091355490297220842063788317194139992182231685286238840437479374904986075799936008674923593822400129408881088929897397808595303839499714371526337402203065901747749996223369955324208725400595862937508719745698828806104018096467134259663284341303290575626703612704777721930667186591776794538369538358440162646094807866764545935105876285539567522750171461622827124257597913823948553460340456854895020492100175969730393209675444047237229972213778522758934862607604513506758614246204518447247465524048461141153265456171345906345781072639437202249887576979630533114191420797287852202412914270820868408252094651208270176840565461404382195470495875592985294255463738370063309617796045277198689537607367873279688464095864727242171611638109021834758710200853940738483365977184554074096568374765091696042979316051821148991278885307815736229071434859332337271051526306595050340945646932331138784794407352476937783762560870787447035451029844318901359129813269314248471604263872198829419302592479158234913464756699727670536778837765200836715044988305984030118356388880894088617437531099190207138443843568933491547420968702138317628269989475450182820866292794044610058477983240095502814687215711123060758094213287897865497339888022423873797468277730572821932387197106565337908282074384017177673602038157841477526967872628365396488826139958247941362224987032885460310966710414718495003754356068175479522760275927211970995714011182953516481955263988091938677423243615295086118656833688535284151595702321401743928232131412119965224540403083382285975382048336071928856746780219272375850298179238579478311994936391475268143745985989520872324591121974553717606016210866684239640858339765951817769696805499545925308373172301365863180668930878963356551749865112998397537306545054476722625593850575766370963845452731008583711342670934301282428224534688512711370391508267836100050775098072439613129291514963821001964980251625594870504753549300694270634743449281788748306206032008678844366691402438260827460261739306974481415000336776146268906751935945523445482798112947988670521930306037312150954182680414110076014946286104672847699454847461048471790807173272322008774847655477338100447100897939381049185516700890487138350667734423672306887787005455685167273512916906738050588061644533675741367667700463363926583256834317126282274056851884864012849421950940114522136571913528973877086701831918103670510398779215740159362129198842647365348450066729554597106134098983886837780440823146644142194555558261300922408008919062179343000539458910419609394944010623717495722882576202568232775429326072240067207218092448734211569691516497732293057143769204905095097521778752894596491258869790620834895385555578349865825942935708332645432432768217096180733651147065141346210325525807857664292236692746028661542760703338417520756958795628232371803428010259084644670576802609955784811752369648384314358691934992783803861258331867726560498674852139247709329562785834786039164229010661009808192752978091794199622665652326569135076190629544464023443678142076291292058943411011680741734572521544800406581112027095564431391196370972273772394519801241791281193204415356012446365069909299636163839881986898809619921401691515620234890563595321603879012605031614096781503810615861314005687234947206660501725097165331490338298682575027771597472808340616957813334753870670934570112517686325022870281453679805220829719204388767090270519972485765492051014938913844194151740151527020279718617701208887512278112353531890263326091710983438162906946857456057245174144032874237429973190327594720873110784931433122898681492492698059832043799094790611360173485073218043206835648445485822238320860549961307665841455243124469132426061694370731640584667790650677449861478249126557149775490444138225246610093081401080302115266672842106907470158302994922875180559278601654376275147126963872575723734966157811028121739608005756492371016169675632864666828725876616434894898636308293895674342865373514716841397413518643626836359944245283379566369932251201288941104697585773476364750715868830461879348139612998872586640623318631644580759941645313125124891660476719190668039900528047071274276716962053617622158690270671512016621307438974126085934074659494359622335464020589110443969755358460099717223179861007158815537290813435006212539767501728144617838757303212630686653896394096407897856250314245999740362324370183292283604471239488965554161309908899689802890444789588138991109064877453704606135764368074663206873539838987565445807180142251595597880472632394480460894749428337549148796173960424218714038044359985764447049643899082104328622421261429951384359762854427830526573692560999026174675779414746196755811146982028907641430569247530868789298904352638823202928815260597398380299472726211444283257599640080277498795911445856611333130584504140060991521430755968465581097989568710862908299866649541095426688557916466687192325749211875738180053017569894601883645151815039746914217634505627654735090024174674365627072790609521088990361397386970376426142343250687671747698564268824104171972385535624688029687711597169755751426792992288929015721962584751451778236417245314843453056439911541509048813687075092857725400444374414126989565832983610127395498707832373275153750200184422988438518236525142450527144408765501791581673073863051087690591105351342036006247049852903011514810248856960067178686142565657345536564347703813074565410629775811934603766065924835527977363834243891370331865024039258241290035553171338404560239376423561742850301655644236684889586038758644880657503600363989414375087645899832943466152533746684153721833514274932161350310587981619206625716213605565336033836483625547694780918926306899760738984864391801166147747075747701751810556035634627684314273236075651586873161309398382583770506243437685535900462079361788019787601853853143362908400971913488371210055479441761149532049596697437136733581376709530977517297692298921401428023094958844749993853174323880675142753975165518428897120875819216771787531682213704434197614488414286998001497172104891783380393261581589457065554325220951505062202016535115757588762584441298937260828012465517409333070464473433395095439369519937115722108915518834040354713639368640447017052247978020392910237502818237936386835745710403161757182864003718069645182233973758279852383065376202243312523732592237986437744435059317399264376371985061557508903980414950233194485542338028658410925231939877363339040541785757182214448227233535734039955363806508981708568646007560013688990047355763493055629829464934694512480829440272263303651433669436589734724268806193301478288031836654354148114663299937166318452013354664809948880772595724022223788919668132814730596018122491692277604159070905938206735220052003487581185724684216433639849911503189643296698598403649578886703448175587270267999464647651126312159892639352017004807111075820282415460016914980694128203035468861737093433094096957908955787507122124716257665693239761959672832088617035974189699232116146265137003249377760415965001827596989148234869289967855498858539649081676619876386477168727520303552229200546454445773007017724981468001995916662367919514485722794902747827908656250801974461813982740933686653293758511385928842216698411610237240274132457147492722749388254980159779264413570934304106438167787321820433653675877145082345453398593865145816255247944861824881061184503464480824192598794132154857964455464239471267261010735614782150897737992541837489071088377834330882542555969928362334809056808215889023799398201958506880875630835622003653580579134699743704394758147285013288460890476145401451075575420773500581273195137219061184566521694846589779814738849456563923903840885264318748208046033538233763603741658424938071606658959042869933500469178199701559580164163651819403390619276174949903299118788888523349061337572526228645362045231765088266885922942203091221442032488211180572940487926769879615151983101197887178417108570552029322658999623179107931039048649532646104535641962815522594581748056646319675994070452189497373227776598434993999194339629233304818183732274151748120392448840328550121127555312811749281279992783284691860964510543587062821330423868747157958901467281143343472269424511699321137801062047221821083233713409797688290613039806787406847313206383911025174222976899769393774242123372233678167586458698514082363300738446256700703785897586955091065537823788067791101103051457065701742724696887789855516761714620592887058987177897654557451051114113918326494020546050206448967787576628650471181169915971981205619409891286377425329728155471029502661292129374051148529938055701186836700226500216829079192343730707250995043106136521280426420468739575002992023704312562675107957516984495436273870318710451023441891834889710249804088732413141763357341005522050159168753740764522096115432879167426817017399528955207717925512670838267062021870763888601946786628991246755811854649599450746556839860796274094620124075328336512402736489943428200589812168776202851732635140666420599221568174152792274414519441147699997125612937085762739914692063972465155854553786450206293871988898945361581005326361568791051169926787982996798652714592076944621318658027725995413265870936845895032886289503915137286420402252038340503142952252581729922928477579591909659535445028568177232090860431837239012022765844703625302323748021860867270869732151822731722078117339912654280721792578934867809498005507351522417246471921683541186354616888518375717905349688397781095853901663980222071134957047399562708843388188584991181938280972952384774864777832817230691312620567555402920787445679274388273734235779318956296623383282896655217080883712516569303501014616143789893778594702890139740142103615493360917061059065505034029560935334635639850777909072761293111399537897502188345414291328647845004784605473245636716261050515784857036850202505344710001736592752833842528340547841602709226385197638305983093505189905251890893020344620785774689881709036879267888188479931418976624260888062724663262052856175542446593635619173665267589475971918789721167816714580022441183881293891033903253550539554074177318362319111342277551403919422083755386973085905653190828654529153694247203464197485479726661726077170405673766304608803726184888444037206719589802693067408829379009340226897333946958950039206659699733559259812193239838664280581184606367323345860336819909528543575046311001829429452229997662499384782289579157473945604295342092245091499985191239223087847648430707941625022065955396636121626476491920498527569457475538798167648317298506088301648093416124777427554631483765859446087333735766797722547295577569978606127460201273805307255236475417857247082896303783265087287063834369782210181286410823114599746553131452182635540938012431161570000492975580588760609086435308436089579174092477840315024508683668250725920473470750905280230544162237388253387626616714200325683749174931847571869225474937781208382306955749059132124141065636302843471137765693073947391342534849994529923478266382756233495700383011225672128861151298873099431318263745006444158424803105309670323878884211183238272242623707778988979442615440521858657697791264043959854897209659809442298260009547663859466598597030869092314214505205052794326747875976982935674253222548037967037275471823763003597224377018954409571109577459533084052304723064739523041977654298687410135850813923486552156751453128090276856955670880932481120141596898144056622849885428074850523197514364251568635947154971493609398614066721286929067553484672271156327259974574595489349449787685435878403417577751297973811151849621681974990929666368774401105673492147365153138648009329048157473019177789652946747060997079305396485972693887305196263431344613606864525827270450161084342990535388618848703271195462012318730859597552346807260197526219592425247537944033567045254989053355229865073860691169401357102512449841065059941993179589376500974018258051836096258634456932261982912541613837471718311216688201437922631843207128075119770963891521992234960886723028040662741190232466456356648866131096562361528021956159168745485033796565346272977522114533969162597052520048167153276177164611238366852281608334055992179673779349570225349838813283719933329699517033900650399425807439336900515876053508159283353674445592011391056606864313513891465970304544357507143420832537540371483165500043393058749436595644632306787712365388434192707303279371840130005584644508722975646358324534644783846315874010809269768224972196196268398848235340637887489081370367892770708385499557921426241133847108126627242426628098718606517617748730352074275477818468839447032837959473723812322759825159551930674304029403529771519522622089665923031883846401137502364311311581858682973184039039748482935694102439131982622010252825216246923846129071699270883628162877249291486813593217789855095924803363487231613761804793071482405926388642539045585236834777213071614479169085832787629835289478087384071718781015458826672915459475218987069996874831778180636127936791377370814301054805286101694738243431457977793132872689466581190438838310526499107107933960958119561685449094976621458390625678058117154249717458886259138608174328431801143677892006466581803069778867608132740071470670219638579959623003759375738381693937621987194244554050243943731210011355065845675676966041389947661434658466075018693808807659979884750955354284847165533823323868139152402302466461372210615577302566130696635576849959374956266691151577481705976694832641238263936901753262806228299051540173569373468178471253260491201899473475124362724018821972374686503041051524303798678785152607393364747704868928848656626524131334408910521714670911890633293225133277646329069993597658981410447022010659237715999661906512461335706812196851651045883936730939753519006616643940912021865020109738996031288784481680049571567502743673246846706946339203948778563452648457914758847131998528517855860770324877866640098809464804742323473100914855785858883924819867127507012634499718863707162352786655971439528948882146134142838407645482303683081415823695180846546496023866660226442386584058283934657095861676551822068151512583858607341051069263067447594278937983177537030013049287930731889504282961903619609704235284237858338342093191173138898381330142637572002256027193369355531942453594933836774473560695677890240206512135943699502861270957727802800646209879831519369131066331085460068953542557418886062118549669355766289740176961171815305966701477674318070809550236487315048704586872874084274334271699468873238235938154362468462177535534486789152026435469240577359685754604165957293812873562474254771917714833337310425080839462920713054434926345681806250912630040538588918044677960848108773946202111894827131894932199637799000652081330322833786404430441713351116965297208301185759083531659917041073415531298686907650976579760939452546427597483656582180044339391961266214799046290414874949484565685431635861479412269482538413838917993040954369649467307701100280244596105014346340341503290379489454324806130075360760007776685652283639396091567996521516327579006180658654194008410237322087643173295270578365427306850637511778239016261278509040978537244157020405032392742887105251633858809703069772098928429643232589031234376847701403728722394833683385881005763694898574300001402936225051702015058659184073406720398872121315951506473509915968038950647645563634303391817170655067535764907392586035551380367396093911673127387795683167262876279263084961346051165761647415975916891268591754526754330647457167926330375585083268363125876234807436724047221052377906077171441427537525401601664464823965765875219432165522196499512773667223451041932655603165803494268094112460329776931630095425024782444084047455749987543428296151902553644344696130766409048140772652394013246920348008680973485478136316829096517903170956036059592991814796784729220478579648009773568284984075404234533734496045955871982231237580180459294924639380852157492349282920897931422011618726562939403935203625816442963756011538764211775731337450583913747520127262012007573185249501702263285657746743320244463945480785964172859504550978283853026822627242838292608451812882777643626031228687383737408796875528006083910518243876119889213885576583734066557936880697710218371966848236039162089340188458687200713612255014676485735308080281724173365928948301641763216141618703118150280183867586927512987464005684870224915676070830855509412001669087333383101863807003454433162545584775145652413415181802424748889704323382917946875316408429016911189362749762030902221342889937658916162380108643804115506778588675174014016328933439538212891808912301544672900764223387417332214754096599084217258162527708498226755096975465275350459989724581690250066968226713832246179169545394879867453103680512064039625674030366724868146788818189671277901432443770901771717663399390754341344477948240086588760635848216030640509030954823483770454591455900450098588807746418132554025964034271528524320998618898184081314798511244481352470452717223843711178831126702355283874526865843963752029054729993407614444861133624951526419777297575241897294452951763523985879702672453218293712953726800297024817072967422445771211181299283203883819238364548321363504133838323434456259070422092148381953836115557629703238878084399324019660592842533330711728501819362887162710384229991214443639113421798174072291741167994554625587910431199958133866757523732616807484139818686022187658841094503174996336427408702905716173759671195043194917057966573264065362584890527233032147020015854406777363098946760596898443733024627987818522961390493789421026295006423413241558338209572923417609127229643205041673947950528826877591433091353265280907854623471229951449085852413315396738638494497446665828415802216934857656314253818848479358072220929061057805474320431056935848687055336016045943257445251758677067021240753092774813056907087381698405577808312653302132945556740531018767248598045047580911282477049590990228786052496992742279700836385629035606544876889523465348463606983248288761488414802062480146843598001859612588870040125406380555307385458075816580283085890269887922230117421828373467633292209079349739497874980570563011468316927474552835688935943484361177864150840320488303766651529828360342312667582475291780928335616062608946667647647899225856193070357407670301808814568593161221318838698398250132413099035843217068640568948771866419420624083582501262192782038283793811884703653134846769128810664121709721765578968079958829463441373443537267312652568316200657053476728600099042695915771876078086467832826323126641267449822111385589971605283119635145586544796473191794475838067007727175587733672944252740307846967998848148624626478249657136379623628037848755035736931564177443883492470566461415139238184103836582325337649257871684968608722999159337891286908364821691054193658957109514178149073885355215377508982850263835437083038919319047033419946570436823048173985440812085051938316533972843940154980749338598500602903775050974858337662698060116324060495265954367368777825713411499571469278566069889619038349492817403449660108290307191638811753791663510420431797319098947313791667109665988871633738659789162816051865387268042352750588402540299911306825897321790305725886740425446763588163119922126954638061009192781490967959042347829516865711499345349695241255777398189212200405166845546777843733806977934359140216862646759242754535723820864653987455186959648172917757623630586387355208740235948226187397744390758317765178283009472777345094019038854612900010257936437438188490343809629787702353244805924250941770967481498448623858615646589003686374914144433216068116332804649227996540428915049109886417780502779561510489737793139082763025356163602047002240303204469818395945616356875839288876831771225570663971128897035007505610647091398265512386463526064504863932140751709729137308492758163499201729779652706062595404582791005318488935167981668119325001825969930765522366462069628261380519192722546640492870684347930229097455324353029038758663642753216483099534868642745725668169738333590856803050673342305503278906491621950342248804710734357797620061058661615858936308706308065267313227978122412171016533921719071901291438124875713302122234725242467963665615141416501044957006271636770684550900502949258167043274321567616507065040496462343412572768805360937056471021618672820855503322961104619045356810932034032869970057404788633301940719812619052010744936947045946090003660195762466938060063028850635378521561433078213290059263633605541217631583157060631574222570915808151305205014816064089999994251479146291034305225568230836716731574244278713128150258958605049471781180216037033752072998056639259883186143420540086024200018908283770999000089839060864909050103100480625364678707293982103164145408281281118107703490918729028070751312816440657431772553888315855420151733859163406522332411841230116573194971919948579876152187049609429181907080832157301048330494930452953884942990917957752105312641532230265971752813840610106246090992922313071618733250296686057630809756918937129095553358924986030641754735188866762338721483811892587507841790565254047107708033647811434550390406769105444346756661311927222974265018792289595561767667321149415339378026121100346561694039142999854035760921967844484555333254121135686821281281703210833253782456521453052385709233002042790642006395356495393960208274748080015335095141375103442144038259913729907218578770823920533086571264083237054720440693607234356769062467023009131510345837530366062380448974638099828301179705644726599558961289207947046174673829898774501134454653355986388492961654473234247769180095911418347906643836312268835400232062682709156252970702617263176814479844792809513813837544119285026109432546482524361210378173324302384412576874651543051935858619633129477303622507487638276686961948297701005818244561081751275992372648309252660883045218697845421044263665727710183459430274427157770680316621357627316767847062584862428185845870277985639821667291029206758857713561002589834431039254929516867971393879615860450785705529380534322268247772816855357984812779906479778843593875907770034566442819302431449805432078431628618969140510994039955378149609026476204956825013016334003657729029836785466058487676313591157381651463610125105114070107918432179766470514651967606786350141959086235686192571358010775342875717518127181676624296321290279705697278958873359306668273797716467995029930208685388563599763308357799822546593416860637197689562437100220181930238914020029087099891805057516609829371768554378893033219956436571401110707336775153266221734288011360118842395504965679604764235800813153660416923769545666939279770453955970147545999298170785909678807705540309628354740475828517003306481771720346159910342137721797446937751686952636612030612998753710253366135552779251624708849196103673684200050363547484085480794370030975961740112758493679456137643708618831567230251520092160420281323107387233388749211908599282812571537166786677875820118566697067841802021948028993700070443898217189551955304969777513223659693404699251760956504337758007159698297036283457924078184018128230278468770815276377611587110954678659620635699050693539142842185318757211668837780823132658361141962318813348877194524246891919773339843507806395298473954103579570331207570886531015328478318295849575445915804134002850376306576324062183253474157277759524110387371711940273987263122633390982813254953427962070732338737327510881382607700114635893696420661826521925479678754138059773867541735148887030220658481124480266350441748029925296631554928306659855214955827592972311172718302034393845560680014299700088272738586686718896939674888903412697141817131404436317726150035479761773637023520724233052565845147161704893968192385985520981144464556800430361082752054296950479371742142559051698218293709004929134080707004303884295286773074709286671852356421358217856863650560232847145561098376595770055632244095369868739141940641397598131838085824302552868054700222851670100781880332981120302156396663838179101815864115662353043399399435252848507803832041012680697317416303990933270567336506076870272840307490617596761683974850551028286618743825231039724906379816382220536446276534430139720841254117573706005703046038286028178877837610795785990701285076951207391571282857971133797084098330661538023214210538754024970691202073992756790842072995210820811247476477554926647856575392516216186975273714915676878976580122204762363790778337268386250917048063535546253622843406179072402477045615153322753316808776129206649365419265663075200857248461770105093623044591565885572527180175359480196819307397574311361840868963980329470352953617981159796187506411932154144631858134881027559042450345017178442098163004703471259007735926351150942357454230715523169391485503609739383434393231719909479688021578667277731826668870355942529690318973790313645411494590982039625683479483609261363675666795357032164091779578430827762545295003330146580034127611529285083965629705956943036786037052550161169691541947461835855420986958959197756283355821547584884560246681467732330859145714100839475061417200052471291850014779848690626056472016463272888046307206479419842145603921928912285436447970857062860482717871005150289162897121331100335325096724808418026772768701690956754988959667815336080899608933715306068922141692360281079515578380989603063723897260804132577877362121480448934115578108450165632361205223037715275120903163584937544287159338112789045250236436619078398634234614957889284639076189983504508208484653171420152109947093081930363162284652686804304252844925521813048923196819639647720702946444887407423570218900111232288150073922457541728816105497580735218060656841316254554894531109150729073026562240187114004993889435829327190622709867645611764470990323647820696376381705744869270807500638784369807787324704717935716348544893713155345464245314124602556115076184666449042976901862466108915279826225442441082854818316580243545604631918745916702571234672677678589685020931709423390421611628778075449793976167516686150563948316769213629838612695066938714380501888437647115065154614755550666436898504287255071458175776670392662997686317343254422942762233860198258590536339338792833784406355741074228715340349745102068839496035891344517194602535717036087583121713144916344926500629525515993779786329626298305452191317487367813889229733444439993760207688898399813142923004856876394979966664261923540544449108110634618052419687951125480398773058391541975628178861128889446203167805957674605885169790738154290275162619842757141553643869277612299608177202092139856103013965858610573678001722539221159266243708704281910238858919210875179571174158755310984836563686249569658193439014745438313693032388553595737859763407060352325276222493837669806899826723251229265443773907118959440708806415835525269204274890150480576421672859241952993793803284934493426151919061917991477783649182748816595244612851660757080681811925465031133141823807904476350008292033360250501834435098189329410400845757669413792628176817767140719017757153299844509966116401485364332081641261663346346363476503955227298865864548327959574273621043547583888114272369072376511735438291983757194541557152855012472473024472374431937384687809441578201464533346486344646435062745724912544684512438818312332998787137991231973473538334978202636133748074356244533029923484131073921811264347818372705391401564372989309840314444219947817315169978378153860667503307125535607390540879182232739502736187888011950643569483783349997097164979911313749777007562635556672172408838579829252521336718107729410415254007179119613045082152364353231378658753702887486857255345087521568228340449133716459987941305606903755340345888720768764427062893700984259469834713731638815466169927906918914924268660392771544405476391759437156880192421944432293732553195681896638438396125234652108319141046211557604695739874229432952430582362159160684691765035002024302756679093559066766580992656731671412915654139648849303370856561011572142650003779032705940050319550392951998476951415885802633225040463459204534155367183797497444815549844634031163221499833156493704368696371445438071926756533150949242572138976466112868330330804642493738738051267846457466631701317737751278583920538492217249368175131827354791820147686981151740349004264065389489050066454828026128986156940342860439370518512178998614358955010976067198586432105313338046935158808900798197951201645071984320768746768924973135763226180689959422472831875009459103827959903980837092128127673627945666448695858487616379290855785519372340778904875255794407813825914544331225712441724343536811728178820815267497618774206921872175724669814218725655176673971300319187241877609714976185156902717968662772935257712446165428175935372748449685432851645800481350881752366434739852192201830529903312145088008739664519303039760992546170258669048695277708787750131429690536940690799489628486405783467569581797368328200829288238961428551463027273015057157967007867836194593169480984609059189756007097362886515634844616750414301044699475314126956217579266634260275860209766688490696283317902150471795929271862669914868906244615832386002634371246533867169774182610145637923101132860083939161857851380759553283497334720643452552569237858427351044459977558516527903443199810312932076230511125147607074246836567471325248995798233220962810412085624693747384497828310067867100557593427898853983155425161939153607499142754030903941664891756779321040726992384490949334024509577313620991042792397072801127912986651817005890322197324347796953237862163468349735023704485864096889405408508785316203870223061863318885450897791817576323278842433696641233962745775692086674479340116002456446373699879100593627521611027193345424674477071704392359444220967089301379371699042047903262234031415849757691005912533072305666015596841607811594812319638053993182730425230638310522729585056069407676130352435480827470412641615999040779059939198559417695510653125075119188596404263460542153161972630875641909720239148298727954097643334876787089514766069996738711244796339569698420743317287168737519784336296804041813571397264974560013886721782978103052142553561608938319333757466173352768102806745947051813962299657646658773014062420225984174015087041284457703251311744345517506333452087042228025032856554165868856493274711095379117065380248886989610603021346793404070047425923723814245369770772999250049256251147556921177679760386968146467454829003081257582965302006504068453371136827257878574205006915057623735654128382550189851255866177590727856274081793139347072767956276980428229758183846630733989786461223317879542248118193268980812550974996655073281214520863220365699615692734480559892864635540076065362094843339682628332358981594598240130171854076252764975242172551856535708319777115928894265369614250593115667849866996623265913772780870382511152931069521346381288805658781965480728720441366970990117343356746505804092833047280281059055906393106117879183927317915899098058857326811581106920133561516207122832982670413626914910480717174942039064804382999211781227042117367079114126981610737668179579517250392773790103434418748198846615241237973013093744818553311626576993845900436190313729512371191269222629725121561808285864728389125255330421655197384848968003901455804419870989542610381015260438717914688817830395139182482319253288319673852268759269862843716676012068239639138980504284617715417329478868118264164645287620119835260362141123528804929973238981857032616479444686125563322636169653323988258144663809030151459099382464775585611709583939948409128595201960838204581915750970268826587560399697725779469313352044412079941422340880925497486175518606246317961269396999732449056135642928107935309635048097303699214170262769455695920189861314827279638223104237988324750849139395909120568950333185696608463520044106369322590274259838069759528352923365369398542214873696604995228075279099809075960659475469163559312495713071352839219827736465964696684541947597725462365588071784481966108265655286280214526191904629476261114815584828222108120861237988341921971590392862994135819139953706387231896681676568785373506492356580522778191061290705926773318603247586840663623823801143172155176518907374162720371029874154989173100234320897874474176075677435466671267064318563976681314121720372607414017106048908779522964940772209070406539587737501187649594914565263121690034141242623480837747375070427587321393093241401739213576707813397107901479281309109222885337635079701544849200941700048305467098807018590055689249907712779049125308552545929947730415492629438015712633648557488710657236744736197579822888556282743762249334294323028553131113686652070130772885845234349307638220919705205704724253341002533179926347518500085125629618259895642020897101457141362658096850019734982839508086307327200341787115891885849692686108810801731068477297109562334915345895047771415026722581263153219895462087557988281531001168273427303252004436104791070674665691299470704503841047864904549654488911131964128922931394786027053649532415493817699162066270222763181479523931065535604026691111229363069180991705635025710219745537623745117371979594453479812283762552139224243998376663135183276606839950285948362377859774416366524721826169785132609988241854925073306962838842967075475490079822767996945329114002414338318416305951645039911082430720454638394083316679614879043244959603267036162278281877105174274558097066316890815128695791389730730618947169438692120071907455301066366836857728002369565376133337934694486655992658033000477822064870050567660361879621014239508590923316970223245957437873437859394142105271022160058805955779705608749029383247693999002877668379816063062504806363447236997176210899487764490675173364360380667715296552286595488496293751272505218783652625908893523675197716317577364832270480714170330451621477880730732168242935163764032755268260406785312054451539380948860491334154648766167804614906369151693858721212999952012925860927190299141416049308056374057629926644907803959016488574287800712903840121293270490220836108926607555728725760179785336445941570983274886507459214293694593837046702416550094649438416578592506937812568584484333580183971183597945087327831466483003149979338563628582582899392091782885348828967265024447597134903081372472572089899646550220121566021635800152515609239757759171046100357377362206729768427373775358167940001087703154982814502802656595522330583010008948934878327169609826729144425202536742210370532782453272906221873489256967712977627332364853603831729154876217094764167997711092358954926061921394022967423991444841056870536993009292793056323853802335335232253632968341121742361040169647881077872026666642174390778800622742706129020319424762673171071107877575838208593555410179603948722255192129118278496844010053017492046983169760434316032537449557039971308419541657439850894861384797119997557372953380425372383000475284022909784353792318578134951934230832959766315697909389249430279035129259205765901503135357838379791574305222893814550863613278930164240856127971666797620725260700674124891248371882880682628941574336413788044509401333217648685183711956480400527559696956850920716135641480303441785588592660340466169449582024530009058618626096259197228130228812570103628087894638102116603166466913987584462067242106689504809866717265325101280653658503650592641472873924976542640002119466929794094233538626964745004334693813113303320113168620690864599550503606061240742194073849605533867816314380521125892977080309479299060736019533719000172548921915415193204607244272277254240178567938660125479528012076516269541382932480961031333348619729050341440410339286182695462177796192238835124972400105292319075213182688244972478904065043654713437427586072965017831819331638293132584787603485831951799699322052931834413003051814032370555090477241131730411930203038492646827178029321563507985480976701644220943820437413673473612464857172893424450690718790947823974770950908393031179433356787154783868316459842564682883192016813717491668310900512225774327472372178473617499076811509920782933593981857299425056208991022379315598795772034718511842803295188563736112274228181315425624400561759263247835530896337264039322322671146419926267054463099777889070847951660650500003310423960005395535228700469707380614624065332166384636669137141618985847804604171757754696532479854036698144843131057028953546855244609267203926056504587589554634196539483299641968672698571794467967972796351138169548444524003684114885508059747695747667278488406373474519771535377847741196021532049127788525971847412949186277578992232983693876709907930481078608661681252261772476887632142006528299406114630931938344428071170171198619922964702736480410427709319005539550998931393482942042065267576057052082918884253929504427152817157942697699688372323039180337763992074531645527933745726478157311402229281428638796692521006428992780178140262371233326927457864552783987312690299319538491465060828119872219028306870629194148690450301750208347637841574194762335062981466952377620706873292967526720896600194730779813134948356438785087332957438500606654600256356159176587255935647303840952531409920563379021928878913151745826460438459181985194813445860511308112638236709282263670216586299995144071253283027679607125545097711226077051228387895355987567407525690144263593484521157439955830605194260154227043200145677416959501654250945777518682049246649892671144644307809376520086766188955928542701585398504168167890785462716679007895027055168685390053582580068792748775051332981116843858516240381487474958774661314288879844630715698324624872369564182874333306012866660819398201323979108845727958078754697124643100712228971580549303166987008963565955856585466118122457791988048704288459376103210678276382445449054982596985727595673060434732614957211287379249134608006361655152252846469336584842693576926855594811601767857423199301042892369957806497494368712771653523417220931154694379189706750445245312948129671329986231218501824243133608323673157280111460845007200772835047541485195278996961578743404080850640554188149096184461961426481994753552728009831531908890633480904317328340415807650037061206561858528985390394953314906489078519942553766193314269869250737009821474044051202753224121741919894746260261694122402380218069750320562938532728044975436749515906022062688143607049906969424123916770109590208631057955459222187016101368594398771044152872608958763658164623006710741949975434404761049980887160445510599123582784434221763040315461282646653115120119942649711959718665408960178625846969509285944586278886035182583692780857577686187101277826157452579582316350847076164939802465305974965894323174330714607645964376220262692188367502851344938405095742728037421918829744305522867034813184251442570209071198322188463412226083984657664169388109575861550151404464817649137718819979755486281424691375944158451812140602535433499990989764501367515484011187928709413024277543838796505597692483647203272983637379794137104601501282442890441762347576151195222003376803416159598429241913437976547963281504136424688225422498763458460690658320608696978859249088074131274401490515621386341164231353076405847908193079449824895803336726660640843191405504465183826399065251390165280990111935928646709785845721548922695975656759696715637755420893897598653684209421488989604092674002195271837208096511737893372125964387099258197134369370011280154193150866960799462603487156200993167986472646445207489540607084067862776250748499341957749247673057561694872548743142752280309801585888477685788484289877171598877818784929069219875544753451837672604400415669875109932050991127250575635347098857278732658640634307854134556715756715447783669308382285496569618869839962754433689258600591827656079346092909332515197584709430477213743682889331227352700605788594640362839134343885397337051096997205624329245146614780070014879136189889195041412772004061638703646742743198862693288712235216029753236703779358743328058530340710878435911089354056811786534406886788174428267165748400373704047849385907325762566741479692108025281566050826646708408213545799110361045380466988506832355223956629113688841679454216143595063165020051852766919862086242227569298264540727046583922021605580797719717365960493339483103294153023685923910662425656893083971353804794449168757226722268903648011251550937548050228349764258407344692909390513597728261894395666753565322630532196445025684472773782709138212985812543002262309840674463726886854455035184557835555850178851521479452311603488501305605108925749196474893768460654214287223071696450149169242378852476946562126519513409913925760419653296892406714750265274206791990885269628860083890252964828759599844315984440785567854451031107403995010806228238916323443232727260056145798290831511359300066453774397001438434556637526538600927190421909306159215696971192902407004259968646504267015124074153225174080615301436232616000004948125221716764512977234763699759836907564877937688196939652963914970687694556537490897607357177078345683277046401747763090205114229924558895701684489341673796548536801577260241493321095844813532297833675661708518565170385670268683961148216465646320366700512787693265117539598144024985714813850840230672268743787354389899641283181664921975956090422349976427504776354932104522120676394758663425095744695847984738034331765896022895979488243395605519253716992544396088162391302458144359921807390736679313963089752500316878429107744302340516724481558072635436100301579786146321902517458185996587655807858577106195997111726858958606458052263983251540887513416385823997719229548355181141012913714348769474395503662504714510542620995090164127442807850765095995807433748322108307222036367865544984858731129385004227761568355309683503835434919261078698321547750471620061804745169266690683857503960056856034169831559820468845957626404231909008272047638218463665681314461331241990304543550858842053356103249080609219784534097895227345216860323137893984268669357040989458964452737007944444406735239263014996082872806565982344218105640076633064700135736443423244027124887259668078731424591373019478730997118785363318185093749898423157651500113066856396900373291804276429089492193100985431645368688435725643881400145070971737699918093450342079009520123213382485438555671984669316567808326362041724562306833182478725599840110020924471916275943923450801895674892402683863616503484633346396967107108161813988959699613916397842951738746933531156395435648332257242601977776963630969348436144886147111156023882899242541430028733343541272069137468913399357302812181499429792199224349597400727769182115705152341204351560188752029597006304917820546496282325036861917929336645854488196070456116908130423302009919790850483856968660086128760811138312221782297242028186756335162691881206695438987418932208093120928842167631062155353473688248054487080859868078146076160033509961720336016416261055929027231782531963298053025661597310321433198657621769881968004683618840589021051990024265896378523592290801391198020845679751424852737436815706429014312191355082692410025125654489262574362817804344571135458454746341116212522140720274327082871741176990734485563288279675396873222130639839827481571760333931497342467433530027795275128462213458181836297207148906419364259536738429821559114114965970962060634589108930767245867747331162013664763284519503591927082272728457913134767977639621054097107780463492533938894145928716609436753318450664010715740542402785629777708685909733554185692006608831940888435962955161544662263555536605332131481441780999855627240417012210836471365200267950059286966639089554084240163791207549640958419093861929349165227648295830496025816325614014363406881645454325753028666383578463268173495062447115728674092380982003881463274895515075115629014489556709169327487456157055762170284023625374701563942354198260506658966247970507384496651525149397314766328183851980245721983960002676294127794259873125838287630225106849101209894278290459721388738414167594684499508860587085013919538446073993882483494884321975567098958216284051574324146019018152379739982095568484309165007574231229375067563539631356441835024872880315544097975110131055187968673318505600632872432474302885112175323004558743736037960055571452968788283909880097779638834793006685725420682352111618283313006309839581644785603688482414988856779175253595801868859226113529130819473236692875760627861480632712977975872050953657859073393804399269045231871550951314490829344152167064055412784143729577357022885867438563311067127213793244591337852205486661655244600235210836452979229405246239436976994774201056975973934029124233585150978185625272201968550645595855168266732987722859123107753055568776069309335519710603438493208989376119432502085045027653852730883625457716157159174565755614192946326841646946676671809331179738222681130702355253150701880205655439315477761695620221499121730497023787676441109081373456192253897909997284689625731519129548643630922716590082884130105648031648586650011637139145687877929880977327132447669108157167201527475407265005478900132584417717861172320351233218350970523446101664335287760388617483506733460715429745516357719332677937984171837146243510042760216017870038263987474182873529695773657671149297156065796119705921077144196445517615483228588150396296630109115397728357997545698770780870874429514974897271441990692560498618097582470734074768611840062636425790479673869111811123707871163352567181914076573713805055483490817114439225006308500127555816887185398642633529118368596448556401981248277280767159794856148594555726258520901506172363224375316978669918459196304133829032065514739651709807760259009311699632516503638104030189942861918896362180521789948810038841087303266871827150778558380935623703712698414214245349146022857554182811102577844909383261405885211796901124316095408365911906016740405258090550138621184240984246945953955333327548881082037953344391125208219184076588947722882103793707288419397070815802003308172579910169751586837714320177930173968931036572549928073803398497667603811760525789109509133873596589312610518780834155068175746493656609608861691778766414386078310296739493854051798133571749131647125264543475153636423950100658377625782734581431821665721636343280272345716881365558392055311090031590763642279037401572053403225570810156205270105295012816024137442531094418515588830058904937856607196610052811150025922555529190920442761798120408108520447159530371112695799279380427210750669951145629753017418777703644437483566976930643183589108993551715076746760134089619096823111006106985920537093597287591219333576072864757647461846546922434794997814585705579266264267609820739269384271926172436648553733940771048316271975886558526856614635021583862651952052711830124283518656906476184741321680643176985481975808392563090242405587537363820845742875708282017830201982859295923895185493346467459754405283508576206772210429330116490084686233505908525551265221240745984275152177361464950685525749885004616802962249718799747875600138465614840690898980330525245593608817260446212868381331508245675046592160647441115506888457303441519122165469100522348677466119154465243388584400715326000802399763428273530835578553504006852589335500106527413890041828754107987811149387115720331559016858436086116876866962965318322747871458956783198642118535706467974382998448821959423485495050228658572537322661389129437687037981552456970533184186282907152901017807253011957378507653612725770381242607378492489939451348908121076888674652563567270103746057996218581873586424599392137547323810458638439236947698503337867935395453254938222242202843000926270482046473721080971390790084883985703186055183007027562932817219317068978782352525458859622110647186622610047633809021102676151592140374933517917438496390002274347129006950251491203659051868108303444226418400318488814919033354985746125820294531797473077532660072496537304397420552882753114314382800261253884977329675339120155113074167200512603182112773649020565829191443766094931015626061305534089522030611678357990531879373055997860121149775547035028600907913896801233520626828840669479889491578895391394219637152664637104245909075406482753384436906924322772342956438431830709639346709728040185629133134336205743266246539960239753070157995192690063179781407181863868048154535761712986916009484265533693251808421794158407315738697082234147065714587055159975052128327033955957385813554367071862705426443147234266625627908423364044336743074027208444344709790613605032236344073599664528121268330029324870894188042129967696477408845431159170527906511087916647048875363471783069892418315552137636114595685780308142948017903382962903560941150320808183928102182061484288705432090266378009904484195204712964918370227833629683196451054408033596812630171174945534075025935159570559280692684144175456733426203289301901275177059734742956437113121254917968986352308152428207832498873160496760856782707767092688926090087257945970936118000506685933228776701830387983277099272732164114011779969177536413005729194638791892745567760858502579336963784979649497637412770631019938183910481681011000080389823090632942298842073778690438934041860156973891113013664327849299719168381656137906062144729252594883332693006720270598464836859444874564104404401718069345199488362377650200742626336594954574020413173862209521844632255737715131524904206174985810429223315292816788973074070198906294935344564801408335296915638435822783830207263038309986275750265373152193333456302028367053027308859587347342543690043565823399001598688980049558848663298888213848143116951459223789299761033778741293212498312911982104907251881501901421795397839416434276945103071878699976163983659815827568002060898860272095037456520323090532231414807236461080974520361524044519465827428646698146409967113499370594304690216738376589532475675054328650233123077725511347781621976635648729751494187843255697210485100108066528995554767781203980579431958255160152588436769305198345370225708537458342038470146478644252295875625566211071851034358093627187389537915309365805704327138946784986222949788125907157062683576317086163037090508564064480832851502006997283022143945212083904132348280690856102709964066383727300102418795507406569154119227608954725275227195543847519469369376192664041843139677479640972217290356838561527006453212939773831676692021711855889875353785648927641069591202623296602887482670291011441447518590099520348922586326046361887946889345147087614408951766334999435474878694735236185234485960066607412494416636713804796535932332550033068035494877909232178920056034446959962723925765683789377208597670202899305656452324730102895742425441647878985673637823025830465702362999227336981491983129475192398969736641806826988083083806293889263474280993041040626304707380529849487243291942598626401204841883000709266675486017421867848779634884137602427540786515057176804664778469145703626901909774483240576807575187456988368030526823096838509394232194003956195573292955021503786408564879337359617410325130874544792597331896916461960840897553304648252714461236940297987358108734670004268015956428210837899918224716650245683084406276243579933957709172486822241185670464301600042578052486445305417062015132262334078469314312528442057618127540758198756094644116789552434283477906442938802770288718415071126344169001321059387399646067817465406942227014485555198280382616270965967696472877876674178173848538815920389251837249979759183459442816970114349204887385729463648904828697222556933096484022251549476932459467496698709897956656647656837932785472534789006706080731186799346608198833057071893096161825297625085180260582903182927501297032153269256174834927125373408933095636118150016670365426969877395462873316350808721468423423789605074207502981139756922598765679612218985182004470870356795600791123285496826848473031144518260334871710971799486198609435504172172475419395127692041405867466189221532066427530211266042408974177288477396702326538833629033651653215007398957758146579930931750307220733134376208453605664791040000396630777161318560395379463910195636219686834630656918935651494335550025148310209359591349278324449246057022366333201997230146852941560161476736787034377113939611759475768155420767188059079225781942274988208711689239230289512539345797838429707341101099906528591033364352997107842904100954457831769608728553017309846448276147628262123784649031720736528123777776979885014666503579879893778503661040789728643731379470884200532862422821004853689253714718395560009787997946827272727395075416260315998540778913864240156835293379449763573821190143058926646058289365928719764130277801975586206241277899682495668881119233734077938925551051241736607940507266838334362876845658440069896718388390190449044124473160399063937990382913455985735897474820092741316361168480130301125816973149377992285969458777010616529379603575562116112663073187849809923796720187612459448693213779091413053561671600924778065404018892130744222570022811045109096093954457788277608487614748906444112969567519975032446939037115644675792147528529180195163863080969630489685541041659891203113872634816945566981986138129834499287437007674452548650748641742964411382973293327118000873617173558485851960268918765179197450202848611763241110549404759552594393614895039817556894844372054221107940492187871913576825029902997005996440644927630735291357631719509774821365631526814341888173929258724289960877699034905610119138103918399248825181523886696853940159431700285219123845317892693655451806003195319820322878622364124331390426654155390991172840183302471881820025211892769311416200204576829747972574633364186608888947782776126213859369251497791970778141686935743689884931685188713262807909797875246646499819785836868473592273203437970794812428075263193622545710298121607758350055097746804345023088682530677102365320479740136498882339272391921159247179450832200609438223411023368817468150028939162004853220217701735204356647800171253272115264337990930980988978359479231405011020381223321844799753306652475695610102796088774657360641058677262651028305068290653619386432688813317335805520822923892830182418245764937274696765719013382198977802033681919717893695965695132807440419654506728828107605101245634437656093285988809496017634075899306248975094059196009632377278280624619830380318267363420287440211355179736996148651842886125092618514713744216498445548578213354656411283927631639910499972974339747139895343521912575183869688370477279452377322330857573740179250390126399186772132914602465025131242022298239305545516233971440836231478214262878689465613315398715113335446047264670565737632763333640830581833548197694769767960133270556823474089487635649580664030929529565255478147066523972861204960269822866729656864076686809289414179968942601161710662326112628102798770333416455968766896111626854921427408680091112504204552923004786706627248014710056784057419179343544361428514890600718579841915791454306105498113126180986686625747188907996234998788731182349172930073096571193276273401541137933565686162433555903187254286218238098493971013319314045191938517602593387252773524202163400610405013437102309085772688882826653222362697365501961286743182250033722571717001541865698022554717549278839244722794172018873026589092189609388490552022558799749061991881772120719014200005004155273376837522749463637607156031226442575049157625885851593011833394208017939196771319065973315610522130470433012808029569498128823090028651539969454347810980512812134170059433618399610903375470743657195679729955993350314136668221369314168562488254147310979443491803439668290889306471252400354239265275415962592244417721053613317389683113636930225406732322010793507491231544336975723096188877033585993436532127877584848899239613192173151566430453042727131072982708515391489924486891815675476448442892238985718473746275754509030556866553821753355376844902795292060676048048582105473594696959029775939759147148383482166990122663517793871720795132379470971616842220292016005196997999811186986423469566979505372637592217565814790125819524844996734349121122993749838473240990301156852740190842467531972007616924300798351428746189026307588091336598476785365224102202419502462811189704329072604999274709881000820565972504343344091586047166879648183679528693395752122447105341271300485538767804658305690378218183160526306873398864326832143325687881492379966415367250600878703503476487816264636233849951417232623126706540909983564912722611304959520881471824217927725732857141993394964831045074369249369601288788870370121801599160751547328754800507172043481991852485428460185241789886423571336479645641459992468700587712585649760649189399125340478396055169009101957311833044717934664809792417292242576786571726961178529312881309322595627424734474543827204782946731683178361762227116325947322469583525501174778989507241694533239992772006611508478099346611553152932363630136464428515885885355722960255271934318480498318970030961843235190110679884648401959279786756207041966561394809397654165017934235200943735165526484298648767648256973036388464290763702100085472628883433554393913063907478039655675196177482979862751755504838447348286800306612024809960798523786214736583984335770660600040399914091085588204321998733013287238391472036876752819870908650742452763858676222296565294009118542990789062980821201098114484342036048147120914549846926414996100894244634949352450829099136089135213957075783627312030472543939432170055418742799225641540588305700035677756372326226885653686911690887853349988099644314890446182716683386925886170534728690305400426472761460035882070332232613450738450206039600829568369465442140489982675412819597565974758673828068407025305273013592532708564342792346311741278461957204641317307641242630105455747151307551112144445594740028236804899466119598956783426998272917159986280138483926611166796466511558969229744926980741006014668348018987644976624399381919147315721899845955977049287471027764300664285459519261425163856442659711615227314655334477139960785752649747731922777848018573871765839994187653560881038011423252857501644168476418696562846931996746233542043002418870591303121300625397466300984557022596409424949346708343729937205302537905916279914982280942752258235341828985261546987675654058107347243966862269295449670832614832982896885002244523006043106095339958343459417020723807301383329896522378836700464074593343649289318566347048175045187392753705542018948581862748293951365970414617373679952883506050882711283979724236714699567038567462556987001422830646563136435206609769950433786974667748723470353701696559567171294191129681717526198034241734847072848033247976245902808197542061401802321889596003060499628982487982943918065057166906831887450340188564319676880041226853374163671995430474271429148780885991254926848902081915172728024449978400796571974300465640191768521908785890623924223573624820306927889530555928485329817618793382972914899707820670328258491295391882570516386098794654362901856455158849216009630791681113322239129619463384829451827463491627363466568105537749923334176199753005713137925664897755313899799601005179610873297376257703448203523861182638876616192859057690115477334806803667832109486906431334271896037350935045672240820678526626104965994261378042651479151936619173979257004265397056960256302028022283794271493135368434116146332478851483283100277817581683663020178603268351910555906450518365232123281330223149946456739016072812034110937377860403559957534484145398866319070309807452666183637454780443825870478215681847210950309079549374818821962776370379894432364128365593503309623914094521404843907613520970827127852019128729660352655569304686441682259070296221988915364050390065526702097863496083323428141761606473085015536330774820977968078373042746790461520473368871211043277112575471668296348902729898891496671045123501078261938693066060317087377709876872683708443937457852180131588504277004233064841853738951245964073971802615491331865245299484805506232886312789481230626710995028719005421853372194433064311965938290356113682571930342403542376282154280160036998300024797427436749604086166772832584469187605779596302258110509183787004049059175039764941079851706659467180925622356809219046435390628676138002830532319583571803572203444328273370990881290850284422065565362424381354460271729004928875617548486210446805680383962040501542648941343404263667622015661435470576349946748851561753485452984612878010598379163131498229643934033109501948759748455503485971130578313163249306953118423311068662528765740464267517688524021994530870608911724939301095859892895738387543950028398630932825974772658818357733150512820718165265969087712959769902209191136367393279966528148390700107786985204108442787952293668652693981987390730851311630987471857620159680538572993969126834286868188899779415351967223219902327045769929705023315644793181348385704875022660176811134275336895103089011179289343063579594669649421334903626526327161895535276170790676959263898076126204385495082356148748702374678393469847614192317537035940971966801613344234729534369006906065333794389076439524559009926122334401088699415040592305307380408574265389371048997812438196670235967450346405701613881112404664370850045426774869779464431366426095857221541805003493978027494557833909917776623247966116366544518609169683971513481835037966466991648361343693969648886126782502694129147164336631010005881823535970356714207487697148407090404045409275691366721158527033501135220487159371071084402514971847294750341012678647475095781366187793424715946794148360071407120770961503863710181613058051195040051048202515598960870013386685102495624965892616762088882614420395269546949819757415081514291234912724650526463695069322381588987185401352448334623964494471344652350925552872838467007763023439269399412132038338990795766032085675823032348438756252804716553687853201026703735266563713237262124446293048937823797262112143945353342931821595117489753798906269482094879423465969733309053458950808928872252405011465551320307064557263508146644779065393013551566520985426839701624374378822146623063051084353752911344239329015109506065498607090306862395136329760105847102236527445783690514169849029593387407365871505229790404670528762381383806691940044828931204062670245136472649540384850059127387773853690388910335578822240225883744309843139810302086917707165633699563940030342982896060150199886642130230118602069333289680362182600427390400045254650394954517090287929129846666853749766707884954915421735485684178508227138416713761963091418730285841231954857820986715886633497735318153345275833200797315107247843789329635932562285515992152339210274560849934856284412467153827680256367108757198759982004873871512114166764040075591587169627033797597852055499972540600969788468364254052364379564868437731381642287841946222631475102964160869549430708286913990132702110307119812060802976210335946068244512339155111964253494290381513842860077917705891200436169444156796074435327318610777647285680088112885308732272660793455688488662234601135929273861463163360611038745243645741898042391403492886738085509957750183511601123734599480274500687142467383654433009590635525393207337743718340404230142331225508596746365761782481383327856622886574088208284163597169549647045965138741562684373436936914859718926115413390756993085749583870503516750520261315991691206847887455827839186401460966429683257788234364198966715852422798561344248776171241403049844010301180082479859313159195231275743789221284556489971659281482486377163645042495331701937204260205993786807271937392695140917691433318699814173377085821357853153284116199204830984946670170163009596836313906691822390211390397462231044285019356431078959312307482132057672216362164653720380072276650093435771611906004305189686922831277217799829476927822360223611297559329908138823694212895436047564297529131513075577116654206887035106245708103089903365910488214808532348805601629876511723956495744574585249584206804327603440138176982324823508609054779741488689064655336316311407681209593027982327177293018297729900254240794925971770078217465926908693951093858347933211024973084005412835831310568143868487473478590528166847721683598598751923553611830527187382109084704186232140856520172301895411073615873554145856733454648282850555042343369308312089703357675588428916163011610430272074143207951768877852209664312242951420982931862453028145491841246101251318110955777203677412098114698024077382328204287712784068521164553642603602560391617431805700987838005080291050492715431717985439201636121479418000794670370321446490476683565117345732526317316148701146338354367169295693217643337269637057997219388054170504527210954551934008247345479021901165043568261169686878063333558122608954094953739696313903298467874944298154693802793136450528467759187586714646978173975803537977663835146028822529572271855323825513993751229032945369712039199113073262220084469526467553654911919062808784296051873674165239997823874354983130152833657588407353296632689889060644164180940520734968288676025794421552816165887884227793656681172787863298884559920995876751836583601761875976314854784297025400501193866589381408931006572228920333692361168804593230320426338563857695247328309843957165914494410134448718658768099597249333412190940605905278587768240701462027526258531499130134740766805463478476471565110360762715802591909830248322968901460477468145650493783483905812064758460668495659682607635110423623194497190626715471077265934790674484642689818233099672998561172039319989103606235365233120425971608448839567534980329978705237540640679123947875877049933570190640371257535443496543160829995367683243693468377682200972419609458001019946605940827202992323450114601425604032735056510718227276996935915006288534747522440381571030103680722787065713915338109582674064892628058194146161397706051501217494353087804640861281042440584100971321649813877554178769823885503783591025364195653216671036019878872680887713223681465784795910226573711296672263430321205938675330590843313203393655188787785337268882721873341263885065880712991476695624366489074401347944743707524515952337399543183396904269352116951989251073734771882565161734855145886881332089264994657519169144077980109340342506326897699154401107453955468293022242008121744988940657633060899500548268113254974943839543139131645142132433039092023404799807448344178299483131189618576971404677862174770387378720302689810415715236124084970982445180355516547429866870548845395273212147860716316280971282786415803064278728127307693032414799971355503787956767534660178125879805373898230831518454440749577252660720405516858735636427382899269983123737789527971715889530370305791952887756310146531366217809508960949980134484712158643179364222309307195708908266405102625459278776849140334725942440385871311871518030377238998073244486728781597343845870678573004632975680239018560635241966810142431257180392431309843495325193543002582987668407419427421589222123963768981022690962649591562119677155295492302049095844586820411907116157180230608663831397914951177961296167867422757936754038908820133151680969876654850071719302726968215052933663274869805714661707721769121655787091964629431935156443542468809501040700516961360169918543691043884676613591619662764405558964901524297343697601151413399213062433443355223765051027686517183867422470547733088423587501366207449684809645168375734570662653211430442455839251966990773561776766788951549909302538430502272062229851832996859124403961101457819553535834930834777548268034337676417905954995116014104725365219438704540556816255896925413307078161833359150054568765772379378549179463542465603471277218346840649771156863814176723680337470148504270424662570830409204753906569922340785893261528770021376947225611690206560952893840525111497750213797758089520338921057301851901304261747810282056871036954213223438941448025703082692874693270801413401944560440150889764957977171940054063436893047936243604155432645378427321507169796301894017129906640163610996663430128756011600011686971351184524858072858352699721914174175660625564375201707475718669067391354056647296536310228671439743139688244424262546849597025655961001810438264353433825183100898040091888715520768629443295575035256105360500670039390644148414021615558509712937781691623118653819041175861237510711792577108028047716375402061368624211882249769233741088663427903489080262917599654392561139828138787493844082198107397828984069078436936286475690779373172827706002747210935500019489576256772052849866067022918807451406208488522789067556294074458057051853739456902828627404835819687400473941059547633102300984999283763841677922089103558151466023323028790864646990885838304581271820918319653899905647863144482257839379559486086771402565752714148035307978143680542607198949190596611492812432730565343187382879397715002879817459697259074447138003699953471518430299563628355033960753097192057885519230393550594221351599372625277792284152442341625538415780322744657410183468319279462455376694356770142918212196146948122823724730624624407892846502252295943628796658890172487805308710964582408277344115983933774908922920916802285390490515434571464338516999896718841643134155795253027677667298579048662420602937324626020155966512682961477132340154928114350730627436935494645465227918318701334039682823677025471674747525821239823860873841155809164392364113301457420776978249783913614097513477547218158723662363289115216592414000650827616531721471876360149896095700955217323034097705326425580908709661956364632748624850530530396229631524517414947655531922264807214252826190838066752998773998405662206479874307185862077911576862131853873993494379160062791838797078510642844527985971647624647381908895334733194768725705218878156102232579985378871546924203480306324778138984318823257768284990825608477246116320608291063309806048993976128972850200587117613981911005525592724996142894168694170011292372524950901774954100804360343955982873668579960954987914012418363950907563566516380819619517174177052486250855248050167745451046406848187975884395153316418721065153439850792455478907530902511606013485855521442761586087854772315473137199965206497087744157993888800003092738208172886038592753600738840710784986659288788550963261778765950628535379689646740964419325048614357854088647921154092743861400297026157264784299521325925461186616809813949357530682346165116948923573200399185632928678732549368372293393117321027403318170802782684988731895696396801971174038173139017193932406302584266595244766346777310678625854455140680588077954641385727690065376130512631692542607068902723125430845980717204094597816532200391699553102831049310466181668919711703469475954614370484786089375000446491992763864631795875384576560977867439253867290483284806883575637554766686630954141655291581831923260628628342741723369200316518913838589684208448629014436387500201877162514673347935381798720486275828618941032468706595430731895558456521758840436211918161029510000255539891582597115050362142090800063673714426261590228076225199739837551072187852213365502150989251682257711043525771895973612923600966287304290771684775144396508287105340405115293313688071800956464768426726327035545971592500940541285736761982963631330405267755206536843198803012128376950754836051891607143331409723840066961114492731805806162602970216924646634410562824113577686850244754893963190963658935241828980613479923625672897044878944872776965261903198892138719952183601168636435706697486480918040647710711822087003559882996144813804080060641223796264320643137635507212919011162833835004232152295260312205587542146930546871217431012680785762972944969824323307979464510547553063709501775838601691212806696024068461405158527441578880018529736505929568335786884563188578419866762457175821048741734365611849685925236464536989536629577789289728805049833975953897380274257412186968433956449055404594284006265051886196000521978802466267874689058373778251539824474731463034481224694911950275831460426954483066341987010704318603735628955577162315481914616770320557227040422413205201891441597549645745889539784110020686345720717207057547586773492482835885513414451970814151113465973467090606717270990196273004918361924292606968891734257013372371226271213574388748982165813428440446913649673591843138982158522830532563724695172356441039164897180794866008826514271118262317529725219004325744334667577796428306467825493809425161306548224525102544771558340983581614575731772014547646965752566649219252056228564534093521719904433987041123160746388703754567883884699350977564271747571452609269504159157514396034049260189896996569317145214223860434959242149736730699387158221011799614967380057595557589837523730014552671067684144879702615187161617473400249403236255721880325541324354869186765741948869955339404886295026573702165559065528101211684263544465951954004813972912150876913844584182349663896580740392225738743010858613488949138009879464354959052425377494307741650107368291583167778335286524422281202958731548832449142733993314311308891228748085577269644419322457022399790303104091707801573763773349645632474780707814088278314528565079783171565208096621913886210923810787209679847680050372126532387663126615168521728888667972701236075989259561196067825686627529843961422846585804913687346270176680095882991027673179120156486012350217808674951421318740381786804599625177924080920086973802982559882253396213453081144054467700416321040193318918234740359559780183681410366139719933946327891402203183065721426531604730701205302238767366587222875682063345222552261766093262752849880206773197036130959443500722266961979881569348713897078397011139532143793575296063003389145066112313792782281432664460785886188556789690336484490813052793387990084898747422309565408007118715242285429621015961355722100617954745942611142280617312057577573024780696505712578113147283215992576645339040506824952889146464566064361150737530784559093713479464989359955000993523311072392844961826062282563266223781412093764922318705482332752032496765777990756741840655251562866725249047517042356133612278361762917023196273664713170126730091287466521778236451890937464963938367549076182911488727858109719406270864344995380975914044442982749347821077815544561688498034647604348226857683627236026211603871617362977660869187087472212109164272196158903696062053783635986654083893622317046744606073686005358088929252088300119949703144097452826291774476244685268975279556700648862048404294919714263703830119433844481613208412513574170805964857786585568021327755258200640847564475465594158749450413738924487951157003075654426650695052711484797064366182524193914954005739549628294736989185350574552939924156355052108993784324191329296073173159592396182687722121318778697146726396134496486033055550647672563295891513006255867449079164233200079202537152158031920496458612572333381082719837812760889052141726603727885616834665282003633870364777669050280184720097931925711270361799276787908497206850439469216833909212727288680666581400540791322799529614896869200670835748328679037492230354456115032558424911742543524479007252411150542783032290425320105080914891599165389799739482451654960467976699616694425350605227209359700227271203289785217835677502425164505210334166073092505166543772440163835912042488384381816714408019709241467624862658776794233758302613551776877837745130593389855799082699492219847297197979185040988538332321499427607105316514415131592830597607298609255235268739265707420275070637436019514006310249021470219442953273658877065178428134540926867656865651785220835767032918437908397770732860741225047707003504929514945471809644630244310822457031446220696648647121482002979158531549684196761849823003412946294404606467019120126054837008450133587712992078601236360813443934182148082244625598994294947265846950525334598082873433349683549369339213568370018506868068563458684404718507577256634118047816743299020847568357426075125083978638025269661619379710548634657867059896332545842133066754521377447776626209388014281544880964414384104234192376730892606900501399650682284562857592673657333726515849599960695748694605088159069821720772809145539222048372896548866103831275278017630536009312700249944839492775220016306789850177214561737741725545590635277048176405147978929104653757934222785426662445276839328277473150010016239345680395144379237123688912699832663907693041725706282477510016481102502233980774171115724045191449901101843110001636166935442405080197492752243666998261259562272180276112967590175335593799411722236371403216567706291588399330920771787415887734291042638032736559554806049587500320265048096900512711083115780251066368645035911582501499133502002689516043884645336419825876868959692366526763798693862171154721491472711257204500747026424022956818961639026702732462646670682252611148449691818347976593277256034623683249622147621139418333580703431781056184810719797762562918510140457334058944408735304745543372596746428554041738955629029148131060455842711806914180595136643194000032759895101648863826497062377365438572792199032429527212065145014535301939701979568609012010599282631419591768644176363062908706904114470992925878607876731275779167293971258863941194660856321519441910732553626264670861126134331802740114682784031995887591387442713208454938086240094219608405216170221346622164066888881762824882396135429964851165488529531163537711851600136132002981977783071792796925114490786662630640986577537291222140099845216562851061070626270840061371259737948777040470597758027417360721955573302585613599761780151024220228522832604452630949025904929236622573478471627388915803471147815370083162997310410322609084624450766512819610762841950870189179287101669717722017313742031971298327365765914312988508130499302257645719647610895928228287832884633060839277511159923050605965431843473444978181391963166808878982146856299918926814080749908964871617717966488421798353814904438860878476380401454640121108125019666948484859227523800173778367240540702566009242387991804587109158123581868707730396676336058461478744187767139160057446883837721444578339549448572474604970118245033402441800818199866318735453841661861071638908839309973345434759240627717174186087480050760574072623395461791542206251576668723573922487079526176823527627764710480381562898969816976715182763028456577319989728703817384082155155014625544500099167530750968784866992135265082379591384390068914399190632424896011533999467791365481448150129494371690647053097315461792825339266420831964747370724186565874084759001977509837979264141775608411822038005248404560653190831847157784507120384186202088707237975775530606890534951013667944215225183869828663102227896397655172931274199127354805563670647175198937738213137127888509669238487561778568644112868989771205067312365408303022893148735979413854348036543254181848799238710671845802952826647176094022156460587179011933209225679425998950218139058851050619213437172493517966642424106044387629723695522626742758331908874362810664080661763804191658295596816366683995600646204177802177427528335542480583270481431256102604225928591987140041193331895803750400241292657147449071750605787093618139855268573998681958378707394044404248738329291304606219813503965957593110905062136249257943842039415316562362511028166875895495070902675071155194411482743980301942816549016790920374430275585052782043387009091259000568496731345527572946904289529077346499150532050800355354597192420737270633948157067012599240646756921562589859989034525261330804917684817518453559210391343128859578219085646169106015228894940250570363073036780294546977494255403628591810616003356233553802896373487059838660656902879924141772703001849681136407556054512737339026073178687634092858053559635949618738240956334412384024165006843279428281545745868553102618504775189946426442088361867188459252462144272142783425853310098030962152877976395684696509382030234022000410918188794964073947406905655644719465528332638849276162772264089909049250160030600451310493893603277680155904275155925342148562005637241115591609773056099183810203500864198030449272833005170324713788075316568204793589737782537441054559132806259853924510369996580334151921114820460998861729954422830533438652756133382866583216607438049507027557738264301283970652663827468967674414151428413166578474379045478821439080853846414063829218143654132805428279098012413278856851211806223567670424555307078272130502027705107926425112658649452307933143630913257125229395258458076628629788553249031753029126343067490246414934336192568341183833528469515039786898912810456886124977521342316107117664940196547384681792514314831758864250152720206722115807091820132132770548577847687503870246980070396597352766478227974738313839818405940299096521417098021045926269498613074866184509431042890534858035331827121885713104952456590373600038496713866404350537771193902814693770498277224430331229766720658416553684259158128319663376499847726323504585768318832695588405940582427111934110785808008578695551155189846317719640189125739861419716120951130834788641749402735743525489887687121773708668773504969227412857685063799208239347997869115713680138159060003041252981810274633923864159722883293707324198744550645352700740643861311313845658947981308758665727218406267966933710641653396848112410533265981837638367657698476752203661561739037114983614599065547833268196362925973499445837173222413692205211102000820847085468372475287909659682659473596496879101567882606083653658264035303564947648312762765634596664305680182911640124471053550383702630614165793467291320297483993041162769096517449346453364611777942860926791828481082871533413616500141027782934911321960631014889746778242063481982986515248341205724173013270830855963470963687694031275707833412292940960064073121083652296101315280550473655024486386908020866503902571783338151169669273494271773694373998979718624429172436625096035489226056859399722756830815018835106675727034156535584482085930887209204434133313376322786914525118726796151492072098197685082762795065508408680299674851662481001967098317881509903055888568559126660360557354773329070973854322170485216409724729490674199194031761362129296797596903099232194379084890179700446005817353446966752411191446592834554276386118207842728338407581406443756552722327093083171623019419532305741193593053943293180400374445530611881250906439297711905149698154779318363584830373504585063726617576101685384313436756761679953352559145196945604302687543526352140117779256408584908202894229195862989498096632467077063311717015973460086788365633678883580306262266101286421869787890602553872797459986667761031411427604192859157830100674267191056958120417662073187680001633630494544112647720436961976769469231160299988464640890866069170115554780066363648200600306217467706340838829343581834901118813598675078360728883593604230302218529083094195235646356850453839851754023879064355231260460248866608474740142951869732307543278236231077916290571229782594254173861277479134451769417413319261556994611659033401461179901042117246752087652292085377548298338821650488274484636233019307864874954609956209022952770648897388814898021510160031626868154939398588708700709974571703818056140361127884828738294974792349124496736588483590020837416792340061224703010075924853361081238319687584224275405673294899235732788642929296507827186570926075227231224818300417425098565182362499214419803251271375106858749734417234550722293919467627305813567396897305220535798372159070351818146729157298349085843152780531313605162006068591736136924396224065880634756252900868448384772090556066422901116914562401199754514769689547320241896103151270197200604819476704204757840130719401358164801342246700576877854165908468615203055083056319931724629927294607426962623169436248116178481741971317584025907927516863427901548258555571169996156851448997451694948230858137121250562708278661043645352029099690971239080051875238796640422030928325717700265801098491632453943842590877489477749935629906321898323128993891200410973659364927017184279901421795767105512805989921347113500900719091300379519876642169545127290658299706130849093328052077123298425554104014976175960546851927061317690326556144700522761788454899272619491763996818522153228866928842491986719089651786119369330888234465915461220631817873947025512141107068932647365802560338698757546472200191839673153981280764753526721098100892424561973579973864905150912018790233614679578686381225530490185761343182422803232290290225640416049926637808167455850525168752842333169162977083211073512355121821641234221346260842488303414099388404978476524145506678151355923003432753099473524365973256750304363386490590117886872458439994825846050705837801861647114230905452719181081205076503125814827927500015100948523762068071656822862101903700110336452323070137410301194124417767576952933407747678699813305642759498253605063785578619167444770060533518331287169462203154829586429319952041233366245713152808888667158391445503533063274123773819449794596686562757903203950321759662416374841659017828049044229104003892961108085292026106838404098470428642794407824800539042809147059076044989810312397788464059861357480417666578380110682002786808842030026096961159016552663702445180767376423885555086001225818488501950931486974135365911536050938541051225551147992198739703364454141904200811272971537524356100444690862568231256613643770148586291945506345330677745696002154400790108975753173192883031461584565421597258819906988567493018801689604508254165804436982551281039928967487722454225164054193888564125053045740499232409622457158898467315567737956136892705368150918135705363494264571151823116062430232045639602780034687280322670577090813628905102210320559049046700625778965510310052790715232291664371783696981995368729098655249670155088886492169462503527677799390315465785916635659759257108275233538462574113607385955456517193069321442313274547058943210556722314050989096778199672682202261961840516433010152157397689550888120932806812797414686531988258956017402137680483444215693779500023710881498367547983689018708418341241388230002656871808296426666008461975443266741822272754413102537887821459682438983470527836049334683863425573666225021091598046739327170794989732875233059312478641761610494537346591039848506060511629575841312377126421355861342939986654555527369309618689826064270310272689453671919561027705702784548372398305703133358201169499865012629661992624565115461850970180839528836915323724977102605477543416606745849691990608234649750347341359654468575889178370339785736932699382324255931925551168480932092914495667531319407562263892974252138962718251732286225805463156802786333809810149661270603719352221445438128081698640127015372460633967481675518792793870235589472760969579822434171204151240782449721987137204333969628315303923680206646152432833008977415599203357799227461224564170821254126825106891206714745010112145041370005076783851442847546369863596393275136772236021582899248679335410394371934686129034805778293849014073178050596801141171334043616465443463008328553761619881470848437866404538951941616482330606980652190745644686040302970102762323143257908746789984449690198155680303599773687480967263485095589037345746014530165163906347430646414817945064379675568202321289794019887205012796749079040790133068028166310702586806986444959037921570474135690621207356202029275482609902553292334864547845866859921353582265983609918557972690107360875060879775934558109304391432634590826191142212519972855377970601029149541242602475648692207996448616794576632513931745129430819027909299118317758498451607447415572597140301053506717746245415438266567418251388006877628922457238290136632586217400270695508513861558554892766365318380792956070384865050045280917606034445943929664489531038185628835552802497484194862261561488241806972783451561412725483101924299296183793927162739710284082019248298293877699671650487913279767774269665926473493703418250166746774142434113020577009875804841045723316791858051002665444682227533514872036139317055559690321615650647654133070858501966687661452431829229169920822421403291725916268935282767919075378496095017893792322584626493652119453201996897671070483977943095195655255097411029020163771589700863424997495572684798009085076498074493433954249723640812617478741844504687664444365543765799683658897915838610479264263040955937710342424623374649766470478461124821030824439449267918228085571571954237228170261194254350203363205137765841275425843167349927955819994463290921196033075222012034132758819978560779750294668729168959227723192113726793215302448200095178449153044057529401412360694414015290907263471539377366547307826693866334465699272295383299576405235704379096441623798885688079303130405613872304890107595504252733865004841372051102370695654934227175110811919323852834718562285461089797546681454501146891947474150429085873247558260617408538205653555681544263049891652519454450110022494447544694924276071011753272010117628540756711637352853948102462042565764980785332601379943410146919383601305552052767015309630707404802304571644279632350255296366444141630443390343868181396647351745777955168014227475978528338427589847652468033938656597242674051419676732229279433784867816552657241478797986155012426209387151749629637756473739122364164541794892258160890781614088196650623488395132746805542257410918352214311369249886546366796511003039790628648925932947036777434042962845961134783018626310942150370953792565832483849059754410359272624817733392165805941541288681435205705783862643495363698509950569579272250966162901381855800625797887715742193956326886594446641785510809170042566831777051128270063998827879819432994079144839145827286958821044759597542235109718502136703466595074024528713985544990538721111142730451244639239696771739504576553099965138697533879033738572855145846615847464007608065428230443195131513855985652614191458848677279015225751617394452074290294774299125743669973881835792881571186205846132859632324932976359843883522993650269348799828903274387812456584173544603811857567992182656555889267190707290148085964997055460622211655958813321551582252947007894698972398804261685012004715190690100378507223975451119083080500787845130926704126912555854950342205761841242884603471221353161509908498981338698301101434497366402361576444683377304085949267455546885529420731979248792006044739515246707550752755354202223682101129546976162385655154420632578928899188951796843568418223530815377201966759941843358976341678840028518629657079450368235790976667604020761555876778742597546558232884805105702591775569619057978076532029535147291886844379918452268350494849544153835789298602062739886861608665496527400298360143713930258836837127460508867768897996408143354574788662765443048756833698154722619487731166940073198339831967423789549955921599429699303425430149031056505194326155015027618066377023375237611777574225505945486940920921467533272429115607277339623740180002344399508135316182630672064051715600243776548428775985750044402567794440901916696286447103694518064103778845274321069673142616703633092050735199221233191093658349513849672511747935658121800080142803368963978938570616938805100183080741257340477790990579808573635451624835524990835529467728922643239127611590512429668395681700915813332241709663450552734384646514065805388017696011526835325049078614371630894951280403955693266442718573247280431953809321465151996533554853922353175273475185253025958838651098936532884783421144389585074691759140858798972960775957046177333833878901214705019109585891574456891056651668199839672216902887557622906651058754655912907238368443093884585108923995045836588484870911059274632133544475955445795980246386042677405164686348625916053089419911479157738998507263214426798446154143784241766042643408667047960171581085699998958929962032188158044931014965450193033224653845148072773294434691394980987466222454837313468043122578343993412836557876545493405894141335727309548087035413184890068411372535773920945764941208617108502617982335826738063955515515387480432190169870125397935656899814998708439743528374590265160006231375594098338368409246488387226232255379403393344728578898058071781050998537175539277936621493762672860295765539113700904612822226024710551031726239308981518273519008516664020249142064060893190268462130719783274666310562632026699020333612195072189419968356350542529843153633037277671481604867504480143546393316870971579330950713462386437061118114264778809016709665285592114845084259133323381865787981149801519266025226104665436090891791402380584430916276992836897627983822310111837927143040404919089506089786489869342484495966594792590385800970340787446325713157866094141555636037418152393477113526518405561675117489709194050094183443259027173013479111054918087016355615824741837495958427145501260131730322283699265085091293784937088762923748566852535365931500034497845110754392606958867815791501124468912496642614361628263647190539933560859914117043697696826071604193263130784780731050435559698728043353594228461642140736357971705797908276181411216266475669180134284731341181250450087529191466873450585460649897689869372114179964365154416679289699084960932189204981059197026370477148742369109687753516228831621059965868985181068165332930964346663721312322728377312590471150089858630279654119141573972150269327871084386811173516918647281113795120042575844513511443322300050371127933019737513402770319876740026193541907962000706907528940146937922363712192327934342382872317991637148271388369158412859402617956137670714592217355680073388272236237116571081245889315381669084699173895725829847233934822742246198273447719058034180036981439168868475254039361185800315756539327680328514690734105635287434356879623839948002080556795709386733918810545549536774749904175323089082599488729301884089002888129380875336258019606864694287787316528901956829580708215803349212009062980541228540940804627285594273834684221163258460566164803702119184993274038897993873816732623412114230616221435285176432255294708136475449455440451820194678744412729027153541777541791174183023111438951168081209796253393174489853328262746455602681065981814434555688452680516609009978798303906194827397254649599426885953530762457438524567876646069199139556165893549561119090193283113094625100950380615787911488725721358866752950478634024821284365581418952227978850440708878120907546880215079616485754903605672747503531887003145906853656452342398552695237692251950639772353031127431537450068806571074757725487492525581820079605543567851548998737696486239381629892491308938711622100812439194071530916512611809630639862542106387761538077140382818755112908397375845389889754498117953627397324002024372421624941465099714742370457753678282068051530949556759565566286664274144321946381760250787628005758801037888776752640867916147075636884226617896595936080717820116164389153832504053809972102639773272151770189135189213124533263589036008301914574694815869379259977786232442679286971577812463413055753008002769221889113541240857082953938034323207023038621858401108691699513179631714328596248044139357279079227969095923495715469164612186359612877334291016061770023969261283103710813683502408086326866167411755903498286900558684147381914308599382168394650031581926674208892772940400175242091831305638934325673293921269572074929312411502006290147736083965766880949804621366601032718038530863530682484860282682715836134391569007067958315528004535467718813079496026387143223466166104149120407706609645128679239312215309213540217298164318603013344874065139710014691497272097688943022398686510928812471250057730263707072207213446468505315357824581576850066336486656116439174686555650769706316113150983733906757349006407751319948794384649074983957428406585641353437711584770211220987948182774002589045958059360312246567296841456427434260104442600620829214802830106293643208538824597337814814185159039502538276915770679537803559208999769328065162754013878244393355860282441490158420415819565873828896113618158118062082436269318003503439731151942067637779152359627466403458404423493737316657373047464109722490187719966042764012169660263516419702472360989945165587874371770941604145117769819226070474355414858095912873060648085394824826228686141966212997773304346383798055755197568861591937454684307689658232488916460557241168170470243439869377819994455644312214023725100361199112607113143473004380006080321056943586892162020003556104771810922622689557479445092055631489610090995727568523609715989258896360245339706024124732573640272204752938876647269853973395130599139564130999576142395802931714953807465848654650757601975533654112746838484761925589786183723295695238226656474120392294684942422481082164039685832465115321716735631552529340070283459821029247862074600864759926605848125266671637341211980965431976568138154670847212784667496228350853813272809147178386404747927167258640608491240274575373799307413640118775539751054390212815293461259803805479287422780858767596356556574937305787751600102301056114857079585734369440427215940059678774221623858908528508209065678251093882976718091731061421952845829555591495980007180487646673922923275226574216557089266970918079629102154051596062885480916329945888499176655667026297649996447018916821627866959189464982448561344546701969072897974026083329653187597571174984795845335024052359524890685898836328518638596171488606662425691161781487574936329348678390298401483507436066453437090476838034844015621257278938138157194256927374977565051345369488224105836270317762806937420171464640876359625188230632192757241255092834162995048392879806376028257945087915098955815283174517393896638177210283564346911650882039305890896537666042892095529098136705147325016628536658230001394816448299380870570029062340529633328579920969658269760249522769101496595594494825950169564799994600407270152690522446626661806873109061642793319887411313155706847810306448800717449036754401637644340512881566355557227772202918336577707275999297881134529530037873498040525095433052075548991609458306296974916402696080241377580299502556470952264491177639477011337591828188173425940356147713951713214249208807404990232449794254708345771553227944108059991375434658180526399390383632559677948023550028189597607824420858868592114214754341929110378705335260533797396262666620861407575847680360091997785990270486840366014582765608854336004746183396684302372983041046685725004649912712727381210069569959260443555319047835468265778314671441124242154273716788635502910151403904022597714238413472783426381639507286394375891207078849557253666922154199768516397141220209342276192187612478171436074682976671904080207509445102797444413243930977900085625101524999729371278488186071172555834627815854184025130312772182155329825397639651766545067422960276595740358093182214417824243154058942443889042498339312166989477703266664503740387113979107809567992068062855950957300721665385786986093983213458301467792134532107116457856562155157964679428198475190914036067723161521157247348695581713214197874012046920387869047420898236229109279425347555478208695373245987920164230184014547736028889006242014462617016863111595243845070031590279534063112202122624379830070184622347483264396508571995082440718633082804683966713824031663308844347771631325737501912622630296836468759943000376401243128416135534417040480991139443457976519102573229265513408309000236515225590289536011503768889318707487299810986872298841272207420849592894739021944679798319450392904941523083018856211794064606419120156219389451104831956595299715583705282232866744817648482913682078999922301391120573723137214903814267258635249358600444859287778091508358516731923240448047828095525880574444124642961286421046519420181231030214732620188520522674904110612509083119978189176470122301940042435878377930210313547743675868974330817140641363351160121168735304520565296044523645487008254833703802045251343547388035363522899214927276907368098661291353692821117296906259484668667982228465155025492328328295842703510019548198687669403080678356541643411656293162595508034702659160100683358498138553659671792223904288410880437770442940947872912828170377842930488974015328012900630067910761312231431530341688376092224247673509009313313237771411409388600438220059921028796271702000494528087924231979543189659316809444842024597643146321079478955512664434283490399248894788182210061990901467892874623585208118680593430700264795779322939574676639299439635628748342380165205060539910752640182212490043210822665315937693912547130091327309900900628096640784728107897330638201661132978867613650799716305116668141820643768224819446811469610017521809313527246170401129693994666925131601302720584964107013874948751124807058595803223825594823169058983048345084036599586954005874045286346865789960664512081419360007329137464299135020524713000553320861999394311811076208415237338393426124492225812868784618952404713122938579974692284103620690762606421537518425811057785533861485691045290595308219942112165986359133493543551882696415140439625449968501139135193653952512592847809457299215138521567945908209122813534598017891108027170658837088774793742286562690664257465762782445917997084278059382542684012115258117429298307242156609906050911620951978229587035002412428410497766960366049834725463131871466534151132948993125056225941719241882104665775571407568940113800760811085422211666858042233661052689835315358628284576479868505858635647048453529320508678975065618199459472259321584419210263750961854174705344833813497036034680755613095458903680165996894225414452878375009920935985020590641346967761662299136045977509435614488039635792055900696491325359014913352427941742434349689438446867038248210672311526531112038581638883772127590916754805293972693104135015503495004932918250594448298174663418697479067689493224764168042144813193963420054896918768395258214764609983845092114030468478841550265723306286457457913040470349071900290859624813692640443553945468688177491476716840362185511303660638534973985884305630356610771325480893763482810407652730325291896900254079300606563691906791286868609655139892764735515998641216116900997815948936603140809776582198591652900969875003355529231110283902593509417919028966933313805272084120033633514683795840910486646745340771664039636702465010970633689312353251200078051109762416025027753952832060074800122513112484869267350167587983422274376584984531370663843040998108247859000014682136299695720838118959048238904406949262940261512746483519551293474565681000850694091556469793053607206213628667007326590897376174710043261757014909895450742104150291524401644935652844947957071878834384788256714636297714774947822123741686230908398719065453782685145926482663847551294784664814488694528782949910972823228499459260559341325349381636495869693579995815048605648182106601919981759327245841482792110840805521858822950965109990532613313810038841984406446092523504951508148501970671502095554904883543353028061539244512221720333820534595285683592652103293041067915973648988602481452958569012239636988009810492660564852313646825672453795745288205524288889527886122492036488449303071329539003785755848880224281710741265134740268048985298942665334174412151368623018854637146983012105242354230411509702800884914298895085526009423123882063586837958627943429889946074868118719047991549502831631456848356577813567016006634468829356996954828648348829405920743126769780123873715371521431824284062658013655249615332055243575626347027093679340375941966560995171198815857199466039266816448860279610207286318544285954664548270539247253350999632181491022889874749105723349187548276608279686652472402977017878910894404754012436002774256126766606635036258357159103533212870512873631890713421943080171185220430947239446132542985283227065930126066377393102655184493756412315990257439832797713877707637506129070577606649630885825807380775667228477634412193364057844439948558919245928622882526264340141266975150645099455156088130188888505463517328495737204894593874212863765976334057592688968970398905045631219622544013913829948008710880219851380823284616847597611971239285532129775281257879231684744675698452356393612965318681247637116322075948995433082822522760551981791209832863459298165911457824909243641665843280286394157050735884690322377340204699180435599566210077729913652598219890569114384985472627657193150331135900232674720542126111994985750789352415874729051282552701887482349119864798612786561174828531167999574235289750645394745852581835965268710861885712729889304056730136834884838787133627445764847202740774785385260287578867746933187885310029497931656032888667142035268464222296657286202980759178846673577811418169086867628506767584654890924054886109093494273120564290747649844698680259783148055535522354125350414534662736817529471319626797233787848483726599866362679004178222053576343992995582445016345874422780754206423514478800180685672827262523829543352049498952183995657112003873177643682507519410048251703958392624324977286851694550722942838092707593819008689160514045357765856365176073848459658623480535520641504910898263047040122160324425419419515115895330015461889775388531095845684964453002180655305492065736760744121763548774805787931319914095337883071030751608674145654493403800731999112538240270043349274767695888771182842760110588496697792576229689599426985825447960492465435311975560181011665824105878289209584602026692646494841277263031349914083209776683752098370960054090233048379361601168572962204806977994594796907928986411943004167276710904534968365277392754733117887330157879872200537768687398840821758494275543987677533645129008174863313227724869422368060829157248994823442493472516508250551864335118436617990260980367596248190872765358287089301324632147210246819209555966670073645303531881138945547183950353030318332093864160378628131881790114843678326827759363937311547998056260955758516287683787759947731411978188574399215584869159750936373298759199138008173191942414067556902487261059690436682419131058868900482218113277603464319375996015148679106190273866613191124228655846048252277457891197451002301808907227918782158997798692523220666066488971130960816336159894625740350328485862104045137399502206634274863264533545452173381224423324793108127514741429721708051587755174922210498550050195750768954462418220599116729936641622068970594737173629750724835820885214915541079043209773457196647248138741764178144473593665853617020079867750351624857727285386016253286381922850413598328752102366205456833891220195450816184002750468774235604898987225621231302208082549116133947349489780721849872726442065952130523617691368140250300291091802762336912866400770295369601817684904592151096649460329903950558167593218125422397781222094031890211874801745024509324545794861712513708835571657450507246654941645381930045309056681466129407009473973045879346150641710104968477338284439895750164411899965408756833651634237694576119812145103097662048939432658289004086968523586619165323049780353703922213518197598432117091695286941338972412573429387054232203818315825495006678641383986286420271166620086652283452336860902917662332642371936592645015043980181057236421466270930416923470616469002375889813011653809197107628836023644502629219708217305198133389688963249642371625369913724292870711732384059236795998675975828410918757927923171700386768515443697397885969741767487537085479230338781856109395528494141039218488229031014484539925620510500862116204407190256340598898248805171076767370183299618128376238861024270295873168574645187910957446707593537328577084125338623715079865529635559023565526300484373509005852718779086488545396186011123504164618284941489170839356624042519667001991778024882834582637642130464351217935437171838637147500624297968761159201595098826011117047564513070517473882961888496019080071478872664377261266708576368627389223848934940966109460576044552994590473003356987571278593424314233169669724259249882157660814104543668581027120647523072393019855569709201956380100049303041398962765218643004196026795511564460960338216039591453443189641125665292334604128389526783485347880711908149248152296325520553843172834702231051565739410655442386110563782250059579611885746404011977207412147008602696864879931307288836769220030968080546036207383851405418844724919569189434169719518867768630952864067627530587770364237863929741423405970507649104437291544908606533238929045906462512757657598526297065991347159181606737146507636708900928180078285354923389570956158127017037130749129130998829112213305365738181452085291872148946551611362290237189991988190443874242474158827744066747074087971435823598161927619878270539086581410288043476995050909496115243090014651045802328762425799156187956270493077164425118683001042000054458271057180047659594563822923797523572937408237541549172805626832847136869381732983002807240641563900550623327013377652205047500700712954792228978968884240083693376309524384724209331857021732468570867220484946299813873537986827156583680103762230989355898176631104764827625863216380490476416727707679467188817022035570583552834478180178319051246960096063409822059216025941003263785842996446707635719305898706762532437935406647399972844094837856049204768418604885637584166035241928263963710551620065305420427176184615241697182584477075557603329608483684842779899119447824228424943843144488651388574327777416410257557564931049855466961535837860457741070320440972130899766694769104304962986360020642456934130363074030165132438596700234183499449381908709260301303951147633643126210599563265209827856822907490984017347144315754297204798183412179380761326574184179797014642429790902538717473359028029792356174696692152270267720860607389774450146437369873426986432171917075498486521135681478142769968856728911854870287131866545256509227779196079376190698335720980392160830618461019595537947876207408615140223529019291278104593975522013361970776692672397046170542214418514392147280194195232412497662495014275221518948414047455707369760021870770056721171653514129464064942423477429670929920084766496393426265452374023381151610241186410885166650861734930621532861694351844607373558161771470616678565289758118015875406607349547994771873876631184651223616930401729394641176126388579543796366559589629114570373868897674471517631407021563892784932627779992256575755441817894447877597926013265114124843087986804469474361040765526022968658068244332130716024147226742256819994371813268418748306975936012007728793498793789736248070036821158388944846911014789488001178834242738870160273473467308406407074580083045791128015060805484273692617902362606482314394381151233879168386030736940638161890591736316930230507557766240614592856162390829540664760774060762335111273357913073542296646969631938837538415112633947479568180768797196803624524146847723510258981504205749020670025969135967886306742126562831418464094799522844066934090925529633861746588441005670056220653908741282434478280182567695190543220682964498871056137473812145964838860862221071464379107749940169016280584133688073500011974907174206703810381602021237746728807089487925091167316037711303639819975218442694164909373440302283347116453956918140970671545474576181336423696925494554916073529226193344325907039709008062876308437261126217514313150376035630241098902147201173898974713794725568558784703213792346830691460954173617867944843655325236835230187417103674108655338384665304279789956581250693068265202425290530010737484369004773888578159535424447768373386950739404496937412057246675498920328790907454907277969225139676553734442885611452252031845911906309195160904678414928801610390866465204142710456270215685353803738521656828657104328472375163402142117235529139799843100062931765429199046363996281391316073105872077465755315631752824061529188239850356194212934384157092281535102380969579399640466112040073053955786224452243854366307633201212054695120579600950400290127934649238378883945120145897387546071071178778413989051802887948494127865881795253098288206876184890619283872247461029543049017244181855284609130575688503206159914522223993524012009338011602370188225016999132506411395823635520014288095582098577481848497826700079697663316453856545844054893303566850620281685472435443865743504664259013832258247612850801613934862254434113604640267373332148767683461012034620995499865310679330882417785419431329607823024144615406273401235779652642632967536044013356813184156657226831218141829959941207579528151557772357610209059815840721903559706627464072106293655189278442110744378712563626214514241117554899847425580587849647000789484695190721427041033573409479603306163885471825858444969642220672098202019610309520184011215456309368288687056086429545440995652648686590470917270155182072169200805812125881603321684028762030636483190172883248570850479047000491199887744052454234647513933314251544021868144257564645157821531112575302572886940776449437668996980175610915248674925018137096327233782049833251626262566555557574176697400211469435038549316777514327279864459913989573817136760699069010450021912648670256042478239531078078186146916158844652741162168823682547961129714738474005237985884276344164439887774691341905166238044597664945772980167361287069235152164391694256010450159224948829830109304881917337649219366358945439568639194411611778930125070072968710407714123321738407027315803237817559818766901709491148280606424412558248797431764159577048974639197103271207163228686366065567459308205594183323156240740130717592439638817011930834794040559406138870221142565294290302017157909913679179085604370331969856335473909778542833003650007594175520441741075444259878873088337211180994637445395904855694236442694484909406907825442921416359718895818858742524003574379318660285874486319452903566157420575108536674530819051136077478030705668654829402843738738217838728460609946752473919893134345394837370304844934372502189552047401439187196981350265671105392260180810939302643278489339842048388659942291469243740659041410981983649049594104365433049531470308453557303429333472457342844624089864703505530879218940489794317320761072621467261097372221022535354786461379920815575476562062478458312948844556338511771639815499675921949081506410576228788034287141589455073543309856378109067432450239534091911460432427099620200068212934450905450727089213754729213259003802319466915968098023077722588231146851515547434205155825704534387549715840872354612493243284265798999410845664512246739051355763820600612017494755310785534016940547098229683959883988510343544534258505745835435960858322312586656532618044696231097670041478323117422325939062574546477809939538192404762526583807980404385461115401447881037893997236021847392189516521250044390435050029227633440715786847329141876083712251342688993715647810618216498891023696147638107256270710040551366496203478188585687220315066260824922362825582928214080595115305400144154503819945199203085489307216081489742408242974840736893163377785326095415037276848544440136108096379909907973953928162984944534538164561562415809417913566346824479407019255046215726997451882519203154241758410056061994793315247485602329919197322548154894545546548769588159252874271782205776050392485588202234361074725226576073564106611083479873406658579320774221735833378961582837609737587779356846963600989467161633865875079033214299101897811565279854572881961315538016886483567719686462546376130309657206233858262068485780021160230746402998290983579121516569676500638467824025041849998435964809895381018283519296364102563948493968963333734058449738805688121034980522721124427183568333494552372398632484873339967103822468011888795625502003990708293890288193027246287443365954542373531101555530028290963129639999255915919128771510884071232927398166144712426017604309676842385244394969374698209257927831417791833016087209604543592663559750909153969899955306567626725797665888069347960262930272442647823475770122289617423922604929341636897493700639391690850536675084036604995614017651861258966517182019854895312402626495434922947061716421018459939748426902357462310391832657648389298683889434100437775950771878222696828438656515010087896912865914110229281933673370224929469410893044210364904422753884854322579454035375966736439574370062097215732389956883411668515100213884472995519307658841755105717045441736264378927623564552328015553468810709526597574264450399942214328448078164092004937489765005036285432963207777325799577380900856720359791898436170228054372560270944473495159074364110738935371512586630140173929485802045031990131709690358216035722922283187445522200738485066716099200774261078569068775720569270802927627765096987327702983822503096472402203320819934655679245200490504135565189129675105370300227009181502611264611754904779533249159689969197898194646663028003990787847765780365192504437280440323604193237843762956936498451616757311281565223580951285475988219071031740972621817391758514439174374657310048105642314681644084839963749246864859649727982101829110197820348497804370078250622839114707025162057024752526542712020791021619915173498535382483284679837819567919841782715738631852164306028303532834643708958512269541959584095878620155012703818631061623706360470178814313407177955723496625147169503732864604209984147126692457590903256429120075802756561672611203404335964493438845739452870254496964033685004952406295886307480759426446426431689103241223869253609422393486535795118674044290325815875943648036322142848660238012167166187326668506480325200821448012697305236926809082283562503389807945465903500375116934232053627025972732460258264046713455223015814406121579108305413743308480788403835594136983109887586674855044807570497707899948027685507329586163506983551753436115418328200438616289578459065879037954673595614664695892382056553493240233700394326539859381366846046092806179093689775579065994661311776210078528154186749985661587562180753467174836481804752284551959660103497826385526866778957174632595409016158895488945485124674155609888288209780670057008191335108645930577487380376729833977678525875015744551276623898533977259717338047811779643588690527678897822179945670178907739255122223016460499974484173740554272805809598016678575755398003375945234129204561571520731263849793618423745431209233062099580446415857438016461569399449154986728806574371562351743321549637720047692686482748841085670464019800176472480157011202037427499530044143779870016473332789104944588577342535111643598763909781384219533276987121187756208381528180301528994865308008450930366986983699876652244652959442260131246328090928563013960417669678213390395351717188108293867599291256829254595324243357098496687905822316001605061102219156077280786737010828008021788948050401155767306788493152321377184550257019840846326047324962296671368280550438223291014741932534434522679909666046341719676816784880756397615150141634249194245692532333816485748688554121775220702371091560613767955101724996611372250350017748192081731953566703865448822161280778709045172995836254817307655154176656804537473342839297861308908444228371147867758853086367569192135930249886128657538971568671334018647893469851420296716140314401029816870743646647266305426899649543818729071576940870580409520256834331758436442195152676490968093733092068431355577883765478259239528541993671148293134163661796502481661541075143979494525721870641741219183593761754701815830347488847258254850669426966112230074658373105131312789920608620986598296497563879642109145486116231926483978642967182504371093975410601820834380472295923816914061559890467167704594678329762123640768197920373446108930033286756513679276431700041837163556224875990597984899556716338018459394315058224413855626628774714431824965836242592845669747888000789399650160637946177599415930846037842252832639409700054315980080586803187234983928250731496262225062571315511998693485103172517465416105980865709191491906397855291921496675778284758401744024996915903581576065672708474834785974973892828987253157466059437406794692350140864431833341382581545332557184661421993511113876192397332168467122760778897029288773704087837170871049927401170474959968489052471995711326676831643528653055894395876772937038378824756492815591165100364775742873014005426876800754885333771391923143977701112764984447445351998780586029300964544791657050266588415002059291288807513624239448124954679759790712796486122296570789903421874234124994334031502021467275794765792493043449955886332437959836212136271977155865431135849312314614990134233481658924307814923366778208840065049423334701341650178209085595226007353485983686565424145953635546401459528864734299962389629543934712843945640609296389014232131841421705189158644063970888962461307655349419429056654683003585312726876972664300674811849819181028168925914819642515780217003476860108225978824498009719179341409735785270151916717528468319157310944925254381353434499304390091472736529780129118936648679769582166973064363726385356513704212221378173194406642135690179209432312219550887587893506380149593382616801450075029609757518041302230837863819497943330952907780482615011987647172115803551764393799549455658821091346801858079668391134742664938799543356776013909468371052436545610355615741902199867331847779981784152468592203911815588565322385232079425046624530160697470132965776633378214553235821141245818573140642714004598111462050111182953826270205448963486934992976131207163905099928321043420810348189927564959895220711947484520674524042006247959172505663461490979132231148929620835354698478424366821549687467093135451241433540143088027650568863140908902914358206575734425487731476134561302151463100961496908010221674681379021724044066050557126700481528957699877982327792534418771001294884326330947955406209606452321631563472537945626777752094751780403456155617256176734579134539474125600980004793225823229317063932544640861074623045792020187824803489006800846930201612236110799459699377565216843292159558729660503807207591753407427252534942922300846323539209076048709713082382682206988446243908970351894539811283874077113547417236539549050948609352554952727630449417933447364667634686809434318616750050084319489159233404523552189560673721242200109317825576781788052689419427896442647180179718487364869465986135202694661105033957840316387866835434156491896543331095861184988820597798970921420845626126378856581882474056443162543518374104360910771637619361672538968818465027910444897283862545786731496902780424006630481965493255892908390514542844771585934556403644879935202628655032551974042646102470710811905502007028975929355346383381902972791874400057161918270367662424919260135925942586475449799621368598534758415678680907144257762608356926139084470493200808744471596962628655510090126976258131420711853598897775061212933350963927828834634640204559362438361714569361358603804001140423903208825500744984699546122645134730655065344107941605628148425587600857328290167265744585357064998886324974978931261697263609481585620582433624234683031342654112111877260365626109994274526948138037357548412220242144537767063920840087634381232040380983969509170773942923111433273498638225170928264682406812832217188305736788038584385677096391446182897511679296218090103617715574019284595686345213162934161647364612400701101859822515787737493115873256497243946548212273027340053337230184385219916994397143481085437152302825525466454065091642669504015245367018216055604660213152316261369782909500403592847293903006455864920001681041372017066878239611105404415331778513497311763715037441033043870240791834917978885899289692892226494941409471747846110563182132333997111727162727992896405023755871004044981792693323116815470707959983906700461801407698033453557166052809138250072766415851004501181275097689448571243454352842478269743871330710115704776090414929584568984492703905067998991019257664879313299852504560488446181547179278413240623906289797725286830764095156965990780516889120993905363330230812474020320888692655043923682766634221127804887704783834765426759392189088126761033588846199408429131613732838835928629774685687986380554527479443345745218829293633983521079362863782686637027825600286960249296722413272176888631809311792673900765620832098532145804123516554089232518332133506481875493591903769253442561518116032077622653657540526965773767444363371167688945747968371184767114556543838570944284865348383833165860138033896590955595671790902414459198720660445876342016686323767765841966483106298227953702439526193479553100756356970490720837292864295589879178109794868060186599942501773327846811865081522547180739610550415324504730060611030357029778574872143121237707053016745469173779362818392170752703772782714677946913884516273320730191846984065575334517113679688968484898762526394222599115259198448806695164361115195931130960506399669890909767152606305635207383778725366005977281635250492378714907188917147407298229156444069499783268989452895141877201777415094478169185082171617226059236664378387905201048763672883628202513101179746863876838186610590038263465379786549875077842086930503162163670268004887245084853244721198328584608209344815633295864590318269551820701254561110993531349651989321228463003836840234751876042422409407266316342852902673054501548431271732316210586648029642879598708487619789929080181789812975796575504440165254421159914472160120933275071900235308143708072761384535909648669067347300616780255613251968879140713520458522319966220337953960233564596837622723381791633740009607816660936798263729042826957528963312597253457203277549857387847482262589804301132591135609640757250415326606498897736550931761891862636753687070680078509974545313168607866437020559680738031348157460981567823490816198690931416390502935782702128328447730429871493928906798459960356044397558620205584980704470366288288533269603170814821328432263699676083886016461771951216527331550306115851424319311317830453269336340004214126437278575093340398226141314561215524796663149836677283988674417095952735452672134615864436449623745236042309128307178629655324320364923487649872161652720657755703303286586847729450192648174989919412167390750779141347809138193980221304054263690146330751980407308943273189227601604162599167399499785262808892188701885473879268024967412756749120577824201005125301848456210219622815834731123577152818976627148445779616509186655668041017186536603467656215261683005302157660326168027011867722554840599952999982241272528821954298152176436820572658860066492611942202542214536789737769217538246850900579485936359431478351767495771457693782747860386290332968015330751559259212213627620272290952048174396270639178746252019229441951963716128485100240549976754080681227040089825994063629589229915267979284713776608820060396059436029907111000346077454502234206942912587286127828598482960407663245661507876635024765722949234101558647740888935692408879854801158862704789538112808794989923111371724957017262271882296127591067548272326601791237312469977942087418917848203408874995924879313312056311265566352254340498614035612163699932943573514289583055402211221468136948457887383984271397904052444568746301524318456026679203734584624522899337488585123202894661314954359312543882778675220198428990760592107664325127826307022159020329146910383207797871985013444972170408180259092268302471173927860218574464339415713851782995730930386177499641488940098502585816838094721330291051937090708153972320367748246425335203386914681792654490642622289915229986291784821929845167641930635918455033408847820806500731117283169164275222242291425995417372804506642316548509564749380656285095434377499238670726726588866342559786254181514493321582259906502802268680996819189204918239723842848596633591024661748493526076172930972569341721880000696828630515151367411978934638098908459862155934311168435304464427341094243114421354199926733332209933904316444036001402449681915991007226081625121176941468729285633752848936756503885657601714464950430530443882716315722445026287997702956598839570311845914662707198812892070815244442627438977226379681936338235816136600078579376210496212141974210618623013951787096385100995377945802563879990064907308771781944658878055815236984980409511757412910576727726477203079952625188574196615859598252146792750423567033384126949876025036749989764468216277810645091353036666272987977189067976743918147706913457420362306138417563901999433137350678290945737322932988933453311489017169496635985409496292032632135441753181268347421582295033584235131237070316666127508233778705423734076883965779889885883622610445060077793747814310268693523440215648329061930906721764937469457069479980853023299153455764875650979786858601815891948510954341961896246993871781976135941129149775479106573417434432291960166764585627057406408087868937749939191424169583863940824854901816000267520295868274791069971861393164264877141274166838073304395013477024635128636475134093718940565503530569432489049539038061852097186451561022887242926182737562842623575954831099067303709977893029417246370566750492023274492811325457614445762731832652200184818861623524069147118855192584094004887827083022503325554030954056203626598259466743126121637785555641697275989261552881591171473510217170188134410446753482007826430992438237281267306705803333551054369744243725036856095150658882464463496471002011037635546839291513078762671411645247450916561426154754259169217425258315862271366634237323987524685965837555798655994668610985059406771815136500168085165310868517789373923379580592183401429419384334891805120751796320219829480997585981319020751883232252012171359544641980580131111777182571275022261067523807420365585129899866859710112974647354512222188097515275249884422654777532152897516592478785790379707178638158457342301626322065470404985291923110202975453542818993775144771188670737852824154398643305726821744435937405915030615687398771749438964710146339862366659945156082526080892574247249748804120031195906024635160013761547034944507530111458173735749590359057051819630601983985740955425936196711782857920210951618428006334409821162862586773824418695740374044765040024573133790726435607118070013507566254337873311095053108835592647173887259824728575197751580489685324225541108975964393992206196244794883475968292558628912981863584759541079100761895613030412317354827582725284940187088895585668561831236413582504807890671167979562359588521239076317235780264571094960064058733786022005355449988844393218204520943657508945490885725274585332062851131020541532815606967239084645824827861952865197671249375859013350734684036116785168599981197512791117747187949429504695672990382011992727912793173205627870856542988253538251066464991341128116372614977428876134542939622828284167505579414871592486560118025467356748977115111360810132589462688181302371164994354916144329647143162389003239012126165991132120791122662020417945554603223942455730153497136407929160233270611213917488646645854529742679341543820437161511134406242327862436046750295895805382077558205482268128620487609893099341538688613354318965229440608346838884277476643394850237119721126886663810689017044927067571429950140440241864146044949087150627894739420808200007321367178759490147362919560778701009613784877126576296623020408276606023838555072874640037139847887393961527386457920302944817034767943050481084398693317974971621519732786206616430717058058867561747169169970988135356937619097046769335056672997337167802714295824137053688656469202637216030134477881461214213691124978923568631617503027078422186871839096249956158754743249117368389619090678184421297348158731455396595823915360570282760866411147914719628041380826078465118737367998734025736516748040821880832196888765055289439948569311242881491220409559315659505576859571374318050586365590619051980369795041971519977052206483006745038421106001702703764826317486254378007174759755990210699176214527209900189754086816941498686236869233535667363806494551162381698460048658455238022340023989566566560176283271855105178814542666612096573034126635684050799746717465041723768434562367225200528718181310906987886283614633394013676449244841709885221893289789625048325680576794801417303738800731051295455061155535789302043881899573070269592700257205059764049434733847759138429039386015698680789372300223167705299853514703255790074999036156515671799292280950805195803725858712570249309323559211601402769688067358718650365678034364138427086496020053412846951780855020268146755697941305385135265027303708730761386924494295714316562189541087737722277448728826726049227648238762707852224114657437994773673830813526426826555222264385411378333636583146113371989037271148225074451818773770216751858082098651626053039239239923740526676509069261831704977795409856225896040628204339194495139212785341722916077206176381833129365988315148354844501047718814189835083284723616043936774337575454035002345242300339881356227658892024425649260963062260616116098440894495371414327243365282667908255141951790143405558419663095097525384882980357480236861402244535493906647027958658176999436963747999894367187005757732494490004240504684435986627386748300785763597912377090990701539780964928323095761572787305413336140841597123983090751952792561658082089123427069218245528337939881591562609172673357148815619537811414066880841633392349775353096984884376133226350706031361832606980086973383057083404635410886615147170495967240605723565097517443015739411017644725448353359534322579056604477752695587573550403946358947347855655712960039142436670630575798543736035004344266304022610365786364973534301372945776880865547806433387491597219852934286148314542089055596160820949144728125973941568395597842829069059014480468440075069712261374442190830111123880976750949381921224378750543278717207883221178814480483568362782363439728883086926501444425535003150765825764566151942389221535777906284691784719929762413910728932727503533272320621044644820566758408078089425186579715592106317699040497514743857339487951490774128815010731732321758711739735268910447795850406320736599519174920939256676517640557264062890279553801821728860552265802655077569380081730854194870682673934075032155879428573552347963444086909375221540545628816619217287456840012066589968294735228971302294592694631797912698850007526721484936311530078774639306451016916732853586508658898060281106468507558870914064528623333568112827430662745524108690079657049274293093913299658523386491428351438853272943243131116690282902420768008398943375167422888001987655497286367336794568407222987249546269594613391740331947647561841458470374690999104569962859976576024371063417082981619123197677910459889475434507427666740316004349549145662914553906486091449048108376642204356952513006250246356052568473121311464929613141003978479343094050254677844850159397405027049129570838050673192625555403559637107490688870223010608585421907675237285842286788086821673642218280500306420346779343141239905305569802431591270405915395190699152038472101641705420107085511811190602676284639825930678602928487928457671333797645834621854654394048484116379784831488623470927997017116805689226059787631441836207032753878238657437595951551481596929960678321556823760205218773328844324248274755522717648193697783042609026564342412884796386276080529204215429099065603426139918960402614105387279197454464436987462293924613536715711699581763729292489171565497482204091294346205621380012386530620690993438195607137778026410156531417607071608975416723209832200180207727079436646516433000635554417978786073766670185491109162088879336270319340950510554008177056672285906820592248430543637970810330386927591023745865824905677931045360715634869414688088262054563221569144528436776858270640160780152045113756839320315546112077762142693225460531589823730187791274724374330489290583960324963265640802294307572666251501269336559662465731936410153385315251556383143879861310708858790785415525474833435278150292693994599991455561947908721297994134269251658674353934104447322743195921929346298096357447196161709608784235288733627344910399298540105942929232622404056521281925812970166408698146703559008224090188958119148673494159654172871362825937122527528425351782477820956935762721744516952844216821486445333946417156498860738134880194069804197253085477964219602684105340036437865440752544671950129324058537853135927227568539639115508244266611099750411006243119455398049393387186145551222351238904845370943857848118059217017288221406781369844978428181518920988377299922041034718150274610046664311639906153998791136712284371544945219724928604654696369437569758148086298135376452203157784215194180558910121263374115633886345891138172660389975459030688033939208999026392079525231027918678543800629887732340115331732729434430789194856318175988996409929933676301375318467820756565121836851784923805933764152568122657995134298196699788187690499542766069919186500321678326847184048430152027080315062417739828469028016867142257692038951156487446774637605568920250758786612601106784345149082892245718879791007676092788361265528430703390650388753619444826730058571107537843369182640757337786260419396834328049096382876647369098610083063943079744441893035217812783644320550893453706642636940174127310703966490582671076959783469914689746092452797341351252397674703547539258105885536111914767399720834060108784524573785706694597591811431419579171768269934668242503647048458674654800982638550514451221637302785979247510149818319445429081179224307324992695778787405618196599550485281728751548650928500558752975788477593428287486608685486990051946210502179458339233679188833193733339293542424888645768172798571993560942933901857538954844133070357124283263431971196233627408166653456641296472822589280008378196281507319134052028272087506672642056708693740367057550229635480917207925920056043545001424196991078705661367949663312172635001397420731477991844272085255662494346853692354771752700492427928692989770081977363430927765636701201466605444894928001190169282389123793173293832270924436243903483683347244590446732374637720499753473327798456428026792553056138020263105218008721720792263849798268246505742618363311347751908253116594021553261350038151137283964577236807603627624269153871319666213219981592367717400668212101382967752098903728578948672270178300607649498427589256992183979453495584520193278946668687299459296615015020133976500244478957300819641324666479866969131566504326056008238121080713901009139783925102533272179941075747452825210450055147390046176402471167940841503775796022302981066906694930020898323942327912598018272857514733977962040799261385380054993982064110927473321730584050463551356940350767111571178010062362811806336455618722888766346187865557969508850018200813914544031783147904196722245521561811256977274031813242015481088498276919531389239256764562677252921908855515152279608309175451913887127308183061150720561439270323092144864649251015143746125619888776208116237345050492005004080147912941043280029003829214348616958824512424297657566207657069208058157832318597089029355616458994434745937931809248566433626287594687430538068917770971886104762742558443795186161416155357031648627834674514733227541359695216187817053074447045319848040035798232053768035866000545180571648977620850417194488372547484240105402524155858706060510298734013883870586521885427537288150505780130945316901536710215273856035929087594023150234869532719329923333316676621083521414149874220725220371576762714198712449468639714222016817278510106426047090261934982472594914964027589711395748148416380865968053214348091301365583352988980530894658957420323978057475703230431733646105674382171764796354549301246493541887126649698265620390717559152465566920809895280067905249426298769216404192934925300925820035707489526118424331847092662083962081752616683197227350578189042547769407317808986296834522800421097928173457784726198038806971358490256143158109210090201774296940474222072504435794747711377845066981970995235709829238287069035952475323207097456884758768470971911524555936643827618375504501682406804510664203733982529476688084566925259842994737231824173895754836525871356717975637329089916224552451672541033481365375161854152651151592584608380335579556439215144384408314031844650074295385801088130305635680845273252712368204299153407547455241624657411390980919700773731071245405083132535050900569707241674770957677388714616376355343729548260766434584506397044985476315034052911055680436810564994947799737206638901106905924325323538470421035441153243405594529050220733662442846547287564009235790689314312200115082157054214645310770516141484691095774448888805378919125727554429545961083591872043152839487941411437579691412776631590522976257016906484683154999894157755932381784737997665513451228753148271054890398574998781583950579431098799567087583544293096618217199548167867698252828206386112406252666311975001722294082649519563106259818618865680323932388027766507554186420166818447049627095330953230324901522938193247769363982922724609534104639578696566153700485502811108265167496038722620487832256956411358855136103090412919376604089766544300772036512509517360741743079957517048503800892014095957083036386338995103888555754394223587565842207968733715008166996163085387157647807020187175120380681350577638939630715340688539983323864244045464729892347839515360595775317147778930813359381993090819263501570338723211042178982411603107362716901499752135380844952426630028793326192519508648788570254472369954581907716332859304291022208651620827141864883527247803332060525787485687321369788068060392711818011387045358573119794814726361558739064398449709518541349157254258859510794646120328184633032677642711084107345886500926146755129769374340781990088763384177288502944774229156431518063839663028061673066351128028244613987455513752468057101037069120507992074584827098451086562218707878666751259636833340868544124108903635785887024278820950261711834695153845369350978056529840341313752056040740365880749372660836607108507476361324181445186514914802708913676380501050916448629210132789951639200417997140036820915356339077635279162009272138684443047049763060491205683359333080021014998596114105340028020500365515153945412432016838472154170257107260274755205914269798705437101350253363163744667160672705293051647627479516862508435284479987574263028827334665435503763469735895130691486122095505823577621740441841713616053714801067060460831719063566779136442876385546180983609501595672937909076434444730047484514917206720417689391273815250053549561090999687585071756262072165479389629155403330976895583961814851302422367118496989876004899793956812091381778268121270350955439650866225209353480715095052932771359544261231651848637612826066139166676145392969659083102465275824678594821749812723110986573382136526029980360277610895518082865332324002465976482006864920003359056803992525675659006226206942311008914193051026005086071367054440468690537687027340501992388983209004297098924001963468605073369109065526111598764583784466029926420648576375700265704230028085189645434807252561046380336677937375227498034971271374040203857415421757072420667744520256456963858399365320801291188100895139641135201286460950686107797162377370451491952991673582209880005598221997696919189913256000546164534346312129172047077663557842145280895433201457401336829307396058941919624777714286842990665827447478735250664285802315430475056973524899317831396084220710769940907023693070027187195900091239221271675299845431885802656631705289956403141113607365511070256185678004847299710434437565698052803778917350204517013842874345245273613363927007154310781867139304200866304815924007284428112694228817604556941256544654832207854459856647031805503173521052525039705548203239812763167209056572502131926173024180900992177852678031535556074996217943321563106818803132695508644619814191321159678389030502847300846411455403934049270611730254335857911870913391999559123498910578722683388007343508396225149594642831994950277559001986085026806178123595184884976621521521406971464488236493536261104593172087327390582122388039727152057248057140418309051494391207646935250814385320697760094941462511842946168360390264588801030295919530007467569572359992202664864920732470065887793989135273811682780910827546091123721876803080725321227014812331040204287797205880137862302582650374264772996793395869952983378094031663793089744841522923226699081449362618604841192198819162953333678598579193935704066198320342412900018954580606686883258817038991837782778553728174936625429470087598322627764826196708617328491315095343911562977429788575974451809808280189185678684067180800882510344202231732996179994316650068368724336432780874548766051675131756484237852583571332215111413322228755647771232143408465939293960596279973235602870524989791720935730429044842627408220304053210979077161278160366280889464916264801431763102180047127542068094838162889702066298069976633356061466860328808707760197121442426414102930710693548834546373029093606295509292268863652292843241251655756343425480113609297038647578194797570484682114332949032764015524677780734253752346678439670680877731671695290420790453696144025227213824733609075743294981969305976524198890104035067349497217977005175273659237379619848287877324690560764701561864076480384909792063619754166152360040617779381824792562161700563840411830468103152286348533645681280275264925765978770181258591511898536062334237934155911272781469483198375215933575517026398667823097350819279975433454512282806178200894153616446342864045492555477762929265305845083921683560045677089965611794084774381173243169599590389426005620167662680372297039697946246123743249118593570649070802616320134476414602134162632435924549461040779962877598806362097732650454790861787717878888635803042709964866922189854379625504057704123948268717394673179329187784091009515093381509916637860090481664236186917628104275959985542276092224543643698355440807591206490393076969015496854084976379883250972727031138344273413501506102394657766669794585909919501197235240781581345267106943725429795207218989752489465958709647176865514193540663438322932790551942964239375669969825923069773722785051243145594728556161633616559180395948577877826524524394647648799079389733107512445797861877378667853246373996486656995650763555315179221709274467263764520241290925672912053152706399772641472271467989203894957808307184329253275583534635342381298354530869048335401342067996630530590918350674481910521842405245886707521827469287310135407045708602142859469469784539700045608571551587142368706820353363408582843438965476189814663333685279426284042864825041222114175652875658329790505803868791934713284902817128007794820821434856344722740687503611735435394772901543929588815581338105356105571346115418718771062981689726027083119219268345176852315989459886925207066770195091659572992489356692381567685961004887238304930750895743845293054516073526958066853032273575341569213524099021729463490212741320858579109784037760205090559697455284635635390707605320365263509568301290781370091645397242321518632747034051100002281766284816752665423538906517786712932169040757970796171594740723659816200234235503890011846037249421992756215216654210780728765002416053163027389246148680566686843152768390059795765325894780524328387803457720617495850589455622848764829161673502906728415706009391989564119425066348382102246685748260110890554829372137827313314469417959610843280907224046164870140771984018849341557699484234916654148508693135105899521078622670898288674292899061823832360120874417922025222456631279569016726303764414958900489138232959009831905333759903022317468832323106292529720674817139025014158743060015996927532839681197936778553353355896681729836681158493674532920096545329563616285506585416786979885565282420010883918350821274904424004660647873067922414168255531247047044131915470414025476669491180463197661827817328234350145729734843960583596274272240360745718736101951800974544205479819981689257399232390279536139064989090740172220074703913209673366398967304471026294932815599465180419983902224414322278487514244824584601638218411441325137797123543831953519202532956587101391789453771082392266742883102658558108325740650812174833903731541495364797907484560646915655617433659620769819488200087028852570642709418788617647630719261104941190232837469699499629091367239023830871377481562010428074245244514825776670113856637030657667031918647501127340280807144994962900129626169126772905115397860791533574709078671299999225451115765525552799535930878683798762837896559885278963017233591794187192376766140078859891080660715082425359765550738420767971048808917042922354049903862493963317144317140473144078659000395011974751245521859245735542143633732477690221993069493881773479080456160445433751591521620470450020932133016589227750467252527705207685864950544431153070964485889596648583099549453613689481234722588332468446005236501654755798906493482770933507298918904141855303706820371546656324394951250420019283001521523816164610901264868531536981716161533230871134487723152792471552563865322960412284065260627727375171649701204279600067760209332187622524443914565849129484670421731879267192522207406595100708881495513527503433344747165490334995531676436658590707768015894954879560960781704569495572281483077590538184290031465466888014944048287165872066666290399372874607463465022015163498367643410430455512991201680110303373145255534475407232539764145202984539793120909408145414569940174960020138487608327415878456169271907444253494796318629530828377803595432300900009054777599512795058490602583907927984263474679103870906372958008989345050086420344160757276209449079557897583320177360995079796713834762648569107584612647701854775629820842391777836207708771298247531062360676610923133159222214633850004401398751535376671807177246713423849504978272910260597394823227024875118558567262380279546161401388406533975256763216994273943285995481015378485691519170705774724905502401226166106179696523130302718809196302783494895889091157051081085447779737406874001275455266429724637741891396708610284229452209426731813388460673250920632912333119232941718162785387848705002868802908907569889029517215023324628301380040443511183760086695694595974433041005522731330647912772630778068579279280565172167121272901111207048517604018907610548828135442051213046228104204325876644002001672746869335946907289412631286286973228911208315407434391048090762622958772263141783893961153329937216997153091101557443812630401546811826379818712364565372904847418226233190212235951558457826977712464416722968055027029331836352994496888048302402743924265539134988400066936768754293604794790301405139231814131243267470104056968276831020274437262881037159505158027258684812303824581838450605179655922731327803594955922209833115570995712141444331477275014696613614039438782064025436697660545474441016520316939522563545395799778583137470896132927941884028661081507523097576796952642771323190961505864827762305902755528206909230213191238958745218193796317698631938262885936250052300033828268386586266699814658662184735863476416974836296979749573369504222560467033029132486119578263787694850280882323028255064737082785444460365135717115722514931039166437576097943304541714474584175752419143875060438520236144019981523160471344635476126710853351522446450219126307644203038576158853669695305134503999527509440104537919795765858390203029524419437808732029704223645430382375507644281245060168620632257568105639531252946189821873880156343571861200991702438420130235987868660236211602309140001512258021773606405251537178984242727288334596224726175728348455951580323003174408187390999846552567089939585080611790824081971347423515178720148929932516458191236815259619293796211129692542525619846256968426192604173817283084627196333446901279626866559966658884021417407951319209097590995415074514892218756335306280066522557268194817221540797372434796691558436669185109754953524810982979128189938597518229915703396921428281061320175267040763376560340421289159780230109647223628911667169572501395244063132671022020655482855295160082098403672791069559258226958825846305981951743248460002465630461222203272743951195282847233309907004932951631807017163871094714443008904091126080117424957146022887186686152298256004943168018549249495436985580309971342940174504943373957312284741656215292095086719937199230867993609319998804677569015455332992780696247251003777296518396067255305200235865954152017423970224861981947411950376416619422954570022551569427585417450130869310788022694734623854177175986478558627878790803087690716201829830242630978290715555229893394930630263523469820580716818638525981363620574608940668965864395811264337867702702353016047556466755800877256808995712344719737458820671227446481206783460660068192091761810213515201210655538101300871783466756234780697190993967895048633744971022554983646717604444500881249858986843901614657649617615194465262301669531438445257360514270554514378501369151308781614453719463893183419416063878561280262639040027590699325479827918802157474795031919612871049792127404924107599452167372240367040361952827370714934399070664746877267656129079360092986891286863547146889209710935961417289930651623385739471637808709170055165834011980156980459138355952513459459214227743149581129884166755585767590031771663250109646642577507552328833697472825838901009213025077061382785856347416254909062752994427794699642035874725998370233528367211883195614981555159718557029500974859765659513672731534942212087282836922885841967009202201148096494200854987510276866632178734403250929043195342260746038549888429441217541944596574138534120724471539274610021352827670809705707094796330864936225306508248766952270190743508458531656384771125030461625650307531584068047720917102702774450830528643379473586438220919988927565656841801102689620977057647586298098723696118205388069642646142241288227035182215064660638136393514188723754583594526480220010076455467218992093842725599518546027026715718249375966209602478423148646854281356653386313031899016203142402386616752152862014391457783987040671108543886278737842609093454220261095624570240337676775526399726458142068702952469008673357783204620603052250809607368540938509784360682041506250886611475398405714288877253179140770839555830966745522191246913107353758408597290766598775201081531613467595637829134726414683694226135287631731597683940629479561738483025396827342403180477797003257693647386683150583956789377146890744539759362203035932258852292462607366812692465755572869930071250729204398481309489160269935672596325329941228553483697353230644790183538409816854467653489406891698122140455490206915568836741430326984272195811943219648935899120475257567155023929675667302401738764190157290537789509428170558221351232463062904373735598095226072417056956359284050820808196127653947784601163805680712672132990347460068029539387527952809343091463158234498221892706847001824383054445653251461766639346368032007050186865142702834709806210870916098552964232721906336927188644685545778169098034130708597616598898968486757562444961324509210366892130257673810331971105950387978881301767772835075856588843168859715632789837157811683745327109213796089566325365145073248767922377612397905904838941970404125774294071596163182655482196609106169021361923214325833592453735036175479477693246041721758498779385937317542596316460421080532905011726984468930575283796726795325431969642701428477006349685289827226466468029697397215289945566837267356514065828997783740151918193140839401483292088357386151201194441304605139028945857519186125082337910009842546148531030926567336002418705876841812136246544682322775374965114465288630757298448514267254199507291546855056767876846205664111721228929346695402364800183285062323234863125528338477862286192106715453184550066539069671072560736289147862400362494043335720317098769144847097354559218827846755095129459807300509550188194903058494790983850642116596553372104831537362755029937140678051579914108851517753201402827193002599204578969401049882643622802181111854839457130408879001106733274109617001676887787828921855981597726659587921172057135873461993262775714451512601048542033410114693058536096674852750939813838174686979127500154555536764831014406212003510661822331467934157354594406174350635493347339417578176314816534078602317557351532115584572312931690176282535091264996644387423440978905363396580755126755715576759402286283007354170488017663452550475533359873638245955994664028061917693851276506021831009663729907968144373864588632383904746715976535854396288106256639309002852381050882788056720174297503428928808801991946528848227176870881584992203652892351650491651745584301347255079132802509430424029052820634301316495781920042873020888530918038284360440284607511313112102019717235470493881250443105304042815951996445097979167849930527135785443628008103936624855556266830977218291352769855419899993750177980262513786533254813813824166398706206309163422036130785934859526391987009037932982461027616491565946972562546280423293475437255244341863520838293261136636822713787380254896388030863827125396725050741957244091657804136282972730827778776755126889282098862685259963792713962303778194022965464058363871809824420973947171956056932436759411701262109240734431692380964391174023892274966975447249270399843212613042302636462002411725453045153779934986006970289752612056409083633158849921133043664748428818052517622300905136700175593307484696036723422480480495046806091194829854320395729849569714024124062150377722452586919824419538499592075182151373716207454168563312164774685199243457602369480650974985680975812311220829373712636009955090405441333682781996410103379760675681407032975261310192351847147750018968979769407534437591912017061294146220709234304089804779491242797055288232134837457966555449965275869831271890661862903319753205011431911284564787852726986992891938968235170280719084530304910323239887952445346913536471685171333024029904302963287729338790097091967684544473080315612166725188731331597364407114882770466889880208795577229259868455353317423175409538342618780990054067003313227522440552201074673654058432505548277972238360876608343776182972177956579338489859673615922682567642240729791426644127039030455195186321209584544675958514602027881430877061496158483557485473787771256635711103124070071553794759273733924212637787298986108875319777850526695318253748894362231856155497566660925742911904595658540504689087705477772267136660482882327872647432196258802886991216675012880362212139379235533683746344308302202582745587241921755165557076345189015011381347530981455561950412330618543455154928707057561864259967575763470945890312329412640501693519410724700354373569959356954420889974676019299670646627357020955478312669130351451962088645444440571740198033021191838835037697793058906911272838037502973784270336506061360955106596377210205381820870643658402102009473083367822122004332378880239690233190827257568151664214580893453273699911364520611665821450660198899765971924007937402386169424802737002853466072424133765395695851171244601560317347797009385102833886611116950040432557166010964458422443640097931549673659975254133998808992468430799336994534989965114033850322444952550300856407754750990819943073017100074825196251670804657665548970743218107907143151867651009718294149229400640384316517858325069078089001019581898115802892077993513285789282342224925513995815300444351810207077635152027647331159052205845362684481654904327464894108522372402650264289892213486125983427719467206018078706515444009399629566825777624622277596366058336348082406390254532588441767154326498477680376765713347323249075902270410632858728646070098330112357066217555629467950036691010224009619207024326235301148977137585757415564524343025386468822533862896073045919281928148079204110157479307863766372627351445108114925219651344017297607676460421532000847385527853067651060491143097243111388403938285228709150236292761664693296180413890551635837464824805946979288789226433681250776660032750988665973775710988122193505354075992607051723046919811585052513032868174100157060151611412592775745118412983449568381174171628914153369754307278720469375799742290303652859111383586812945743951232179989820331503784877076885760516843172124263996140567907167275679195844667094164023194295090148123744081266251695233872647510822728798512597080277761084542876878576890059852648330434516041939930944158365533158642471211188508783371504994378761401478599400351143416668805790676565620762610771441767771691808851933645770299344125763345909966244673275649145536811077171424389991170326449053741654157700017516312995059701592611703700260919645756497751469825280845644380276589113673986627079656748922464311514207671098678968257893139779795870072526997643008220953512785123002787021491276622934611431302105970065635833780688078871195980890307679549731769908533197903599231423526452106529869174894566418858256301294439172189507405274300715078756181289301282954825186908400404413848846773291785087129317076194612660284754072760527718016421865869254653993141529965344090352773942356153012154281593796369357865773247626908967607847478284696730004488965461003893026712836773184061494877364175459021623539533145299810369283634019024501627481408313438093982308420699225130828850741098513743154643677684307467404840926562365023994342909136104815123846199596719588981000789950429280369474406468807465468254174825365815384053679573752222735438566220872669974137566603066642782208219881852346039490107241760008395517382352343423183197909372879807612719698241286969091895367458887039888420353107623438467473129362611030189136625705176509960333969378561207510936626123971466574766641499083527288541075242013626312677497509160917765638791787964514677714255746271856316227793678100418780469187895429703328490921062282477585534146830209853039263238466499891965998446260190498399504416415818128887187407621651481091693764054913233793120932289646722929429682398348138995104414992159725870475424271456340253477503004467317663582984641139710690222010057034997750613280314703957785791767132637517122349388193804812569124428153562793401310484369498104140450483604972238674317486268995527559428331500415630914091539672504032082079142559493317605441989976055065080217472941150773692903618553808501268759187563820101239987930429324252691565034185369131791181417191671663360000840391066155030489868818102879394916601525381083577898680339485359759655913391276319223034929175398878398943853043267833490270355559057642191338504541004091453617315248254738189216646190750292510427283912063688581958732810115429518140907322326044622726056467180059274378445616169056490348494554873161662481690193915582051488380630262804549566769604304957992737378393826156679085269317136803636578914870823215462797863249856522164946868456150681144228269683140793829999869565003598948872113159960142178373059647243381446148700375954856253047266999418191056992619348465880228471628089451097140599145416522976679462801089328184276687497452990619199339279888548845079260673210361372395464736560704855405047993095731561891246765108021923219579262619969376654686023347152844356984580098526225764014628957200974328125922065922007188500378297771340897507444644754836833390093974147125011731835008110441018108334144500384499451638359915850902381333366654753114946947265765187132653676006720268325768893899586115886916569549044251535347613529520488140502792863860762049683249881098558778376078480711715013665780091740716908544026647267073555653074506467701434768307487564791672700551532494997187813160664906610176334413672659973100919404160926808682404399911831012940173494166184670926788073653594769986862971558522764778035677536558752852431683939852784116974599748999917274798135283364556522035966079397362618500633431631196349018216157505360031703702244461261984810796724245217602969430468760980512308877286026018829245397564267193064216207003130461005965789506174741473961878123061663168842998695049134346075005267895376973508250065394213181778564477020598064869560191166004986646389430989952317608183106621389109625330203573855912972881190029226706421229036203674888117113540513755112302170119826671653049273000838426836403028043632788390979266969495284531579156692757911383073196375786711745695503501803979402212040104351440201538718731791522246878053986630589507665605806786003850439875773294905731057654999640813660824598986716206085240722355625919207621443998259868010467461292893925323267941998905033873721036225325712891062824892430331828565775474164231215762830377515915980605742365154517992721179200227689294654356259417918308592396952138191809994504329517871709914355292807901501495417175596086291029319605862499652136065335280983220142510799238166494518694175333181377549822173887028326213029375944367555650801607527624180681196730931448138329853845905769001259982197518413775943716235665388979654523602037227318013681503300572747016297387257804295898894281844898107298540688506428870691802030953538486902080119838340630719624438881331648168648716102368987373997046132508923871053643784454363209426072836863001654741123968203082642327049481789707808842752988685961107351834661919459453309087539060629363515804319380598881120733005872053347267608772821251958037251884336865750294263372460134832510615492008294815400646565691072837544992589696019310428389025087268475193208771551138277400556565381184947633565600968876925438635044430470724563151839024563318759950774355028938389021222313242115737862464712959621875187491478250664652048376307149612114278937906324034111043618195733577787156588845831856668966617568747027203839444346858511439338486106240867638017420924439428906858048802240317391620240206541977872627211469692071459490473291020739374771838907374390555731157661364062904090893711216916424776446364533118919867655979618378983325210759478953273749009118499314108117962077709396565893326221302757876813740993770329058929630449318657222196913102210144370197020725871522092258818089631412165625692951462027833694588005277009140235685569636562340036729938317361369052034924131542428464238008875908022392225393775535444002766689423720844949097815443844679037040846535564821337273247790557255749967105879206093885804476675599490940593383368807000813147810072227319448353045410742123142427907981808693922779152364389322045534726492019276829817530948808213542117321321581267273053741392770764504394000473924456639371818904682146553821401057857900808141510446061056625337033068269658033862561453039748194101119028699644985799014845423437572339163488059151926624056750832644852916289610407643299821706720937486692277085347716243911053328121474004022170565520239145823072685888039296784146261493761332274526527879100533610124647926565506994694947743213948507487437224033302849173032532809012203863647177931031297294348341199208981450785677396850320698597850629156777297944687916640291163162865839988200223775804890975530507351649489959656202998333910719092773264485289631524432737759074328179625553321752152818652695730685257821091402376059211107297644020396455465940322236486768903134331677173726848842090858196379687501303409500746662351632489221430321277928221206033341798227095664716208629266991344823597985594028594925595293892790608293499339855221808846504581325626861169058392139437521395677742090833499556071083517332345069260076214073168224648445136008237222113339452931095463437243750154524824483991193207444949070567606789234477520994874103995045601885160345913930464580388023645481744329018860353544344112379861536987886819101702196286012925324252775439768956698053509634682633179704218174456098766531896444870815695146267854105642161306035985287751416695118731007551561828157747293275623231120181520959030666451317949992230906296753832254439322559521601354024313171062463703125250326298522043167166320298180491028807248609381760680541665455515128638958381026763326586730399574374638079468905456232340602887622996681368334248291228943331778310145087656730393672242289844681445941367669570076694863958240558352457253939469851659685323807589034343681876614259091237686907707946401753789241949846473701552411812520270465127101202866728276791249544910329021776498480445162097017984661086741842307493133922633145128452972945759915481226143326183685769678283942834832606848405427453115152219323445663348561102191000094376180224324975175741508870694775986135421215579814408592348307674297140193899809393717213398938755899706599208287482015718762831406163165817457542731759121591664489236014908943523231878162007667506664954918546076872958848471427385335840316156379128570215559120867191193191416352785482213517597706721957661672558731806296747704189129493190635266597673298308436384753035378006300127751429269064221106689074621668639605875928332803956899893284166504059600980357767863704981759096227404920276967608610686156462066019853771969419118712126754926135006441974714251623676171100823692426269491322900412769776653671810657038716829461069478487718080365310592097387176055946885555591289567484935134447775596887444334105927947306343433972414173623159399736413838520897460019265867536133248531914382974094687252634092581146516692989755788486385860747457882712890906781497878109577701998910639837402950630737850182184873113247352855301399908103391794393605128618559705023383607566080048994949953944356144148123327005196489328707854245512741181402932661324942914760905900055002513762608579425570229848912750963281603435792747898845539088005497523571572277887635465571718179588499710714030262668418035077145246372522382158517315267166733896890143502761495553673015848205256531913065601805427839005672409060861286201644350520467956303075339839775096796946503820434680043746106126392482761857995140322882062734366068151170145367968589988807746991388287042571856411423595235309583846462335906382363639561840154175617579828984112958006487512732283975053131979690845425867910109075840567490583072378632838567346333889594906966285057911682452322575625330315097162565101936432841029236991637355660328297436915458823166451948907528780584219747723649341475448135370789607883237680002076022281402455651595073709524168420969449732680249133213036630884235023456569419474514481184042618265861010925359542332566396084943936165289587966982658219860234116775413711521288461980715037533048030272461375869293548579844244361635604995257591022188235155702452736740725325178760930952103016794338498312650197839662760892573744451306423970745598279155545015052464296219899421937584930620762869612503762232278831445715974316966839656122999781543595786978963420336096424534696568312521530488818500814944591961649632623839831367453982223382718635877591240688612954039421858028673342131178660237292305344151169233591468256109278397638610549912160249692993305235362937689823694385495810694772459104949393630158769679340914013408105810537690946968746202208580609339000589924804520656445062140030711220659244690970953496032942681538375253944783064922000807173920498438472831517125470063562753959229198758596297836561560576916042396577471333929650271120715801241227516552435479668497034669365016530709346952467537043409281993889820677723516135413878805123577560842611416113102417591350996472307428340666305375289584950640241936258638840167254500474775922171159668862316357508552082528154086799052305901918063172800824307601975743753646616649796629756995233930099008841397898286940134702490302764010313254086108054483924926961623816068925226099595889871776936968712063738422916140903013408860024016946558425938182464846011067746096469404296451722202189384340185686307839111300311969767532866157341994684229647881303625956013027125301387679271288524742422614324921904586874653860816854130131440836510422999090400951755045484061552090170414837771379799274125120850037735942838903906271368234361011001489074699175400386150413104840097679172287952889964810728226725726356797447871676860402649478250785580957238677125851821593291303457440792237386014568000390212580066661145436026369247980965480985299931939631054603881206005153580946610891917890071723244093297712560387057343148459860711802391406730559270399398391919212619526750473328347792034957970420442211351606864708685911037554221194124665421956450896189319167351607534422055932006433674016025799142048372759616693490261511398065299808056468346979702579115825166226267445772627691719615648327762767282026090921607108841065144684889268970685373293862158339284439314912912859350311887772304737745312651938545519404625761874297299440812380156439663744946030033652399046718872602881880007550519948451462451819795457622958699119096037032983987428221827633478269414908160385459855059136328216629770906376291088601175113452072212931484358461783173556429799157948064651925797511597311870702899247963609174595641047713558387007675982592700873844455584678563257523721183263765574109495979596595057522406567634819083973643042469001011202117335678478174515202475429223295607936594382088722890560006808617727371951367679803412105305918018207044787307882529389047749913472863355919063079653864899919944299498947822128412148117794000057645265466291652049363426850555338017563024621147418530949298449526680336199074549571471893719276162324805991797571276904484732998321669880117955051194625087517882359984040048980860303499089000653035916517124158348556466144516799433350353540141412831117356211679683206463007475313435040338073360431898107777896958151522667115287128994336169769898589226832769409661359109404597946975561065922444920525758974338405777515906425501743038023045995680492326710847153771080633812188416284712632075744746916502389268664057631401202411072333203584245735351024508995391095012080213484783781388455233214582317874560311164146450174915367799769691079864317944725204207626217928549048003330941899680306954195770408431999603654367128624290542780291465706055153473706968712710806049889472653672642974584588152030847016057995959098627573134127298459174103410858770906424930010509586453083869744088641552211091042729057102157604200041644367418993924692003894132516239857262550381944076698630864275836727406227473179932372505892373263371841626418548456120879801829433549556539956327958799965030324022151614690739611302319792788472512908547135626411478541266386440297151714756814478366658716659905113220891337891154850088864925257093270673875280304920564835549198709176203095940722804508587040725306339087136181810786356892673042394045981679506771513761042748527018112428172178855744902970107737262768947896773207183259209049352944715817778903225311980255195199098152126306194062680204955848741347700173821807532555130020821668082847137575848466095516198247545951385666412426919979297104945184251109706131802321564301143890633246559852759077085298654418530717991009927911784366537922577979075860829028064082120680959831260910880461824546816707829463047872402452907642477715208013689821034449672405504293404715816826416776421197649215301719262194959552614969677182932586659167402436263780433928675288885142292067942974471387529519241450220805564212234239185610703840363126228477991840622548953440327210385314296043604468819327514242731476424950047195365058618277678532691650371719723664838625254915864375745244507880601662321190407327592811354134615959935216467309649500841519896744119047892327724578490616604604218024952747120381306380700436604766769795530191918868361653165924930819992821690621298864115690873522166268264200724029760289902063862357771059870331375862003450863602341419315756101112096146116407497361680296070242525406855214215495322435381104866955855295499261781104698743886618614725580683764295664224506886439353003171778516354652549505242613840202376717208052198461121860217009841963953863582099978511598798794942125024210058618550618953054027634571019520542865065155238543925833624885437397387858999459992970351321182916278596215794321133580632103499961037176988755241011201424458307171560042783085609267678510097332595872167606310824789268493393857019007549891386710393453748649666523210007752043743154399653698653564411502136912117577670541841323211616978797759424553740948395608077897204779533333799843403549918903119586063358761770394718395500010451279432505425295959386309513152312378545368640364367300547984815616029717641170135908533465318440775019159545856868856099238071888064141750996025259167579072675319644808069755630729705304375011337736482448991249561742035280631265416357466930886210943117266238571438100299010947101939779295693461069946595584522422496156923894499402935128469565616061653710426796508458401943742884288726660343798861602052753281897659229973369135490557127488730054747677047145940705326858457954839657481001966678065896538103635350610160452005580402630021064205700761381211863054160982531623561068161539782883476941682603923904949168761761622356794512046579267974086403271417840067108364922007302960199262709354123087791966510823630584971387997737756018327038733084134678102190318926291928359454859754259253194303214552101615518437595316472933296479050902249271466647011480445129455511045318358873396507341353330207551455118425720618103784206526080220526211915051329561287263815055060149785095432067108016026987258485632596900618621806750190797379083092105121591020446416892279634388137531380985302232240239634039123374603000108691334082823877478914829757039562545596352956671717522232022762061380568069564377749275486214428175253701809918966606963771935929454258868297668799945806388631185492364406533375117809378750555662157486808761050120433879104434708701689950607558842959307281094222684747672736461717195985199150266986282758612099118765294867020071392247580299188237276147514365063054489194378701822656040643797628048086231623589975703953594269310885539622570476277554510097587137054635628295818663305845786688648663251239459495894772627887646654927032718328985536648694702793550920557280775142947507838345833169545890502839860788998901712149466609442252209789914505368987122395400872028229593161006358206650943927889440814296829925363651186586813507162748844466894738768298467896777436480416460918668455396128435607906539225418315050318921874783561058190469317041603805063238856944288624058235069243555157800932405427139637845755781128364204958789437560147729228245722648509574941315692236433318337851228475610380386903168644685321393758012634258813907802996790970785757706612186495513783339776089905532554593054920593572851861873112575421001839230732725717071762630626157478570059863598764956020669845052636144311897627832722184525311107695554457273410736061571956978689908581964409040682250060039404490073848195566374259785975282577245380672094301034590153027556691361096416802672263952045568515319016057740318447267208428930233640126872235711764891003381702504131409515370093806081947942959706353586576008121171142099388317846722195243323080108396482960024771383018930145289377312456695824201406048913650420871396504683378978584518627152335174662258014121010171940686586193263929616960626366427698359723567669163026775416189935714780568067224067612765567850787190405876180955212177600000045683080775321831160667358994458294958790959658277882465915958672120308681760407324760467589335969560427297303816804069714348106681955453277650554304204103686776818038626854048535411340572226998726781587515036551188907478516954241817763434272019177867461727188203841424579759705117112915487048374102387852507029985056281460749991906758290462301883743195542180698116716092587715158841919967628394002120746416489408276472661012179922922959383709094650153360703099807181517490450569668081979915232999844555034241791019602473989102724951052728702204142353278694971368496361056864644375359455230308155772871476282928124947389476915551416214301557827145811732896760766800148771105525695757404440617595018551772424840531144371590387958855286580864555184775400624866515313293766086584329972225915056421715942383684806033129823273693576786683369114149231514717524648928454169678182518456058026773741211199761806162744511432316608052034508605155689814255657862390321623125907476549092700967945940424890610674186993049009422545095131864155274554801872961290345077444656462757052002712924493683042820890458940596978760333436841566876470324307283358641569004602255144243068882579429181838123638638121275000682286459638253592075772107015047049416325864364464021371422385487352535334919818983120562322711406071836212459011985981237694993228805364547522923935116302871287665917984321742069855443552602154615670288399006451056998170760475602003556835282766140679678353675410009580540209932252965324406804033327807661076743578698507739453296087110396838622725982575755353240102898620109866072183920105544768108622823200630799869641984205886101328228960720021016825632215459059527599332344077295466209021839459653500638387667992958949920440676167246334051109133864064049876956556992696819453954220279615352582260559529870485235406795433082955150243025557377869055555510083318582472641124251472886565442079013087853119590520318034371507448474553466765836764929700884528354928632896784306501203074259776106070053584667386896360853738912168237412278630850810816236634148430748390557911572732700803324342836900028058712849337695983742089254451914066747202374494676543041159114233804002477809877142619100397697001457949593039942626975742609184012028485657371908813786388741246993557679421155113932670978960879649701327185598666222552758915237848413598042271485291211338516117819074464660657486056725977645591902853357591264185670692811183058414027373456708352446108702049220452973546600698655510047445272019198872120257530458453816667918335635751803765276110688418527105216400834718085219168369703894633752858987340177313564146949031115626058961198095194721961375566428597452839624485786018832811418081662406512576714643872780272232930316714655349588456492185411433007936338689194493901584860822949169583583686018325346685065235180346251117345641848736342812322316865625757476135031029757317773123234168826895504213177476799135991727612305048221390121393497746363738268606283711938479608396091828481099866364092250129668115120446528359530380042155943553347159372481528694116688051572340512132892003450062189379707216621229400391863844827089185840485434167035885170343398120506314614099244690176275563946870270616652566197291287623933960267342966476999457580340590715903202426836739908793902998118120656425591069102020430126602716793447075783776766078393815923520329880965384523611954412745844879605439610495941289741599888717584721855409629642780546037488253462876335990764356467988561645995771163590153123441184046864782095792842988220145794250391748509673308227380006395101750071325946938276561155335399384240295190841672864098022838389708334475731097909687021703672733106479160026692601691528539773078341335242294619153765788419566233516985565819731102338207443224002172797175978658621540069570499052409794086862440113209067374255634576983412376922575449915881592257672412511340788999759537583635360889424583840452414189752550393903880940352709705521371312198177382134785154306092230643052951935759194266162401412047828817023407929904519801977849561030895693724612389654496581978102640539148034152316551915034396983037269499778938119272630113022237668666262799788984355542535813257939645456677677286977114329284111270214481062853650770804463532166905531635405556253457802881589762176225565204853888247450575021852923662398208416775687059139934679741875449148534119170574588033267347692721025049984466306355997725085393232040880710369691972781666989798779069246875563949839739653359732731617516031098703306515913677850054392257553717380928285122753614466070641210507322863512757639879373382955594744655100240355033291754139468239810388434659527545759428562167827636330696324202939081168366512297179244009470652919613841601495619007276677046892306616809559204736245860657154278054262482882754120248443658925355423711454718284083820074089211929699868092230278786593747378512432195418187173141057448591020227429783694029633177668905094253854988968260450771776689684237923185422533483455541448642266648555427373590923612809651718041470507877874633392562736543749651928985121599216947396884314294636299970784335471655862609839033186370496064842351137068673804231900734191677235288534917913199605556471957363641269432463854465519480540383720274962186784760409046566906045159032589287191693046436731383148312326540844463408066247542725593281540879177474337429486205018045902380192591452344256311452426915618074870049605005963806754600387032243542804355487898497177655681341201671250486724660287059637801644116632491064177251078920721693176159669033801352870496741468637845753831042439279589302463664293838931861905633650953764861070856045057098032668760500810460685040733315920991985464710465967593495705742903521477877461561757101854359804512324617329411594090116937481445598481290286452636008412769054640273379747390034844804265624475707864362212733532549649613438169308541957531858530788994651234126742085261799327733484902598242476091273432998666798021208814883466597672424376693244929940545196896343679631619878737453125332181693560065185525983442430384745894202826992222739961834849963110720875864288580370778823608449684464240574370794626266432512794965046479009268766587046974232836759949925312111181462297040245737236418668256093733471893814753689019939673665454770052985671106871361765479512975329691231434869002738425519280861481362402467633306071598413863593392508770126841785733556132414467122873921641715996412268861893013814621456627238797733846117797185232895242533826629473992757086184722674776228615142635180247910408148602122261260072594025885349827401575985494273027814264153955108361999887199091389837737214218896710241536604459748703054977980199547682543919600676658308887730848279262048060505329714927193061831058754809990751085948216519967957149923872252272668084706142483010724324226986898939780529981253962658542849145234752861389374294795020213043219898031295650675970835335424741731059796022797765244930623564982072021899728489513762926927031250057852403106473418917443896539268125872243918985434210096001287913200671649624454020068156950329402658807059840861135956319885303684071451956092908632209619581501846808278376963318876624290540543325241250907042584914093501282343662457515872197896976217850727391001639528950235857106634575628847527185889207547678744952780919983286524917044663902369299353771468065651229713917995749192978192553640615180558250185993826873207128345783828910018953663682647567827865302938564001040575990627951788265210708784378493538344684472404042977180924999850651610663240118097114998234616107462519656947727594100838986995251806664097332969478074209531787801465491724497644646822372260291369894490353498042065610438531119030919335467592038168098614756398072908180559048101664718675166183112437539463655639833099195353245925913585780374977986277347721276033229345895334035697705849505549493254811714218942935119077386748353547063984841774959142725477828666414290873340565175583294463415921191228598956766929122216513790664523160822734750790955229846593789287226992237844454577296556883986357434618495596483902546938106366915457086319812493810741229721528183558916449301574251219707650903698304777639446286379724240142224844071013220534079466059739446804041024312561985708927192430960297131440825736854524844969342313378953649495981455573489066767095918723263883651093082825324282376547883852939933586796064958823167089929095961497269745025368011756493159686326737833335474036740918309423051682482149737170324100798107745032559490853348659398091016056045107193124946161582256674346007164719961697747969999850237262126827716618634250462721435872525836505420901694896316913588337128327040956501621563696166044196980681934278702049774660290593278389203338668402053528700788989341925900810392449772015707375328816330949473401573008980492335371440284924043954383100119965958264505966925813531200888737335068770979519808148945630450004990568910965367859273911224947853377311942413485031296705579546682978570975108842849213683837288842791274579505664533225895626179467877531383730278314772136232972449352934356282980230821574437025062730729122911023552170742774734748402107533791914763132141780079579810165971942513410229319355170300733960470648595621887975092180901597843449041376138188201281736199784056614878484715118291716538183825268886003856418405771994785670643270490028933358889899797426673864996494727891276569314219074772547256673437265035453127849387070056357721892714077237820015693509969776911416031730700962434608829158984960479278719532187587571352154168004874445701886143307260251956037781352605526195916755791264435845525692935256716357573593509781895857989517145137219076747220330819103854538574987611850472364046256512343968913214697357625216246860161094777641662791050107919305982787322590047707923241781628830793582901705051602274799247960669223119081885641305243036615467320321227203697850959086606273632747129383925109372218320886174186232972337147530938132156165192063416531553198206765267940824214467344239578011300404124470681755346240059253326115100076632564568279173720937481816541657234150870385622613691844118331854777294673986066088454541629672876519704459722153254635341833172939388248567878618782276878169201484901653707059153305341773371901298922091530308337363235379327119311983340787489238048398659277091673608912855457251757445104611349758758450758496498857452993966427516589200063730815560849868890707674169927253557637027036752296619375304047338595076151382958644396917830198990081147503622168797174579642361892307291641974073592311496734014465189681552972746809955409715961890226494497284670136847573471294224227801408245902533724786658203688166603473207586380896268550283232322105476448510623938262305828115954891390034630767933436443137983382698463162952132631649768383607837349870032553785257834934938380447023483039684746117956023029884986826907560097184092256551683701352491441032764369045188947391082418592514909463783634579521822782732140983085066332080495046066097767661040121904886008438146579077146856169239428925255995645696418314625017709234095940381848968183260878270002618140246193231031809297552280036181503734576946955499321746896360451216326365009562506696173941544587677239522141829259096756526046841068677318208237708919270917030089178791750932253903776789306470491177533489369030757365886900699217061863751216693243603672431127299584952238813161095635175384261890462998983053382655732914959841431922823614883696654135115318688369193981276874470059495003717184135679615121925305846218028271080744906398357312318924022826069652259671268650156211335485471198405261873302213311406369537057429652600790261899288425923798289969014969831883781544094395410230449839027477598536023675082245831930158014343641487641537994564265066595680311765779771536655725087654729753882088483078295126855695323682921617368602359261199226862243067934544237864783386911814329832990780481149802798433527262502767120033268728611663290682278831741752577138568674069819635209256595120775119897747567808824180231314715601104447012980957526693238579070247029080259674117640317573181813227779809625004763306757690499562437620629146874138079907086262817454910936850790254970212491269639050825719224986425766454890571617359317448663337114914604750737305790038216755795295155162593021199328752565439872237202074373889318618517314663128003422509892363427056066790979948499076887893705692792651109945524167060403752511548822051613341981512279969516893263347040525194679363571485482735586292238472773437464078282409752074779947333415174144002196568801247223740316217055606816218192223590112547884853030499263491779840625847936845166181320568117479495116452296441740766961633441406538395528096138671155040277583052106815415741222579939642535147349385036185436037427656664930609690011389772376927809679252504198264003699198158137897361001249811860053080906335179995118833797549508172268783317992129012354640081755530998604025902952516521571723623381794130244948119790788225825061322031797327594856994656648531292006377213086319416747792315695269687441088840302983171672638855000879269392622399413396957066369876588428216412772975632068365567446238107868653410814277235351904187402891413232238768561990226852537321049584496748454474785066017703701930801407649211733725304309194227581551656270771444130664445930603049257596720852637348539717597928658232156220097330921574450196417233242100334752598985328072077226491392549454548155186652446918916087749380641942110389889590344259517013058979575764828277684515688929595292260026627943791013799308949179450063596533505245809212135108856280036872610370424249724432117588996839822983407563940922405687059854477344765662254421183646538154952743594937770827345345079090844992613634917461622714437319683115011900512778802790150011361460920051866865682544009438610429421004363274625261482797558057733575148955041784225556950550100657540550794323719354359556841804035605495773972027042096910672718096077749161343825770918769644389971605467540411494765442570892611153142089241129689178778267072976234237072748741145553608379208501373820424483699787981829331320541600723713587109006362548429130179256012069239157611015209610973482238220362092579385092064330169007419451995826401035735203261972410721168006532410497194920094166720385366953506448569608466322867216020594306672604074931765654940703698623391015765392379805595446578351551119427331449045515622780906048608579920924413683234960401779078719238607919120745770785186351877031130733971190535029317692508435207653554364391115030287579805072098243764436352905141928864751821898285930556173558436426430045638715798060460926375792514217167056565303383993057665300688358846447505851619598016303151213654148931760301655068071618205773352878190024528606446491844958744592734355691061252592658192242761941489716664460545483074824274172187071313946983162193582709155013852139504445404564802152951596475692513466583225166296284355785820189861029667097778641793314703093804309872387368367959106871741665796152448592345583181590155853979842403567839225212416338789971725422396645709265896700652285929415239011833364453659271923188089350670207677645057027930016255476377144214800247790297843856663716769741519956247667576158546504729540409492362517286382715417405893847041694906141645998549766831080378045769190655036436420442924560111940169360156923516839859263114792436567683511063481584871808739183179302196760028278186948712751224630786218012125372141994447462334720349457435278246620600900863310116690857611177959600093955720359298986472188748119153162250511492111558466236826578234210973590676465713239100272381720699632539107191242607609570666539192456715504407159161902635338690256296818968146452137359999073560770976381435216997506493868995555820638808542159906320940720623093493743926224098262245907222615571880017645236083101449543548781167739456049903355400958233941186389164235060105106806479505074713816644525255003422792422417588558198865053927867863202968541855206859586873448377477589278922872367152825408829615306729395170118001847133824952015854025560935286867249994087184794003022392124073195355270634152100787266220676342866943883834151538511079674887714216183172964613463733510381935828854676646681650334832229400238958217172131717916941194073338089617660900030632368625584248705328997655480084440876383850340312624648545305231446817063442683332077483258548198121506113209942253897718907568486554396498287334420953461657866109965507950193319693832377932138250490258814569799992715863431912849839516295595491256600851993345074816262617436384672725784794290826609124865806517821401837338632674388486729183058649229341155595306008230972286185067731678330138980232469232662847915709057845565602126660145903716589673955475770490386411625891051550559633402722179781338806611453412798837325914834105811208108269027831102379426595569166611455042857823182025769570798860254827039173032573261789747211778408341243207715430888273202543764467345328531065098567460797651206149199736311180560518069555022718989699313751516005620687252972084027534081817319009415878101427857744909531930003705026361866918986037768577632215160508501198971933482062351733396090274303523085955966894414475887137912551625326898342980511945031554080228774993570445895534388645474104529355156661252561628136588162795640644394865886774231001524564349825398422972868296948820867980585935800947382449735839761262991495596675776815789960877194819609705022339962830550253794382316927553659082031608823943950329742812174613737367595730809005604217292561954923992875826486205583651285655685011495337622488444622020977031541541201131394835982543599963611273103794139943933386276748272089478429948231846630410261438962964099429084782109767483012150670653648354812551885031202312986606113644484065996063697246787358634881884240715035346168542244877982471339341082641387337468243835213053543049772634974387180946490556372515405710152041187001250065500794578420633657517905802323768290900066270351873244584096464852033792181603158828869806888989355045558294814480919357127644052301823994522326533357062433526356269257916390682137013094143500806893771840514054674178910925249177641800842320033398349511222880412982155277901330190184649057527316492771937870701979356668429157802236754787509814741378088689237732496581663591592502481108586359526586965218788310102724205536435876110740783147098250403823174364740286418462961750171538931115627201217954284919934681677466009045093866110904504021084242995269822845579676210105921713695047031129765431273630471550952500814012739450099750824512301334577914147016996987770395647100140840504249035997491999012320195270650638891713786989950048881143523438361797489767482453524341272055230207715178361477057058307059864496750632871811131729067020568955332634586138584355060948670096226861300123765587113313347418577260089220775976293637879744341592471397605084111311464442702853277628818912769719724537176118507914617719755357310952528357231617339234041489658740867716518928343625133762379089010455405546981274578736214760632353405751366100761204779938767629763886913189327629488991804998386876153558473151201358223030916529044616564432650882667000673293068893921034266933252834121194473852736624814931500411412685942967021284639963320611329051646410942405190954861953711626883852787239337590919736132780621659824579591096864209687799513212797107919954385254409250399625998667048367809355812684381565576999811535622831393664761075730003070164509037156191337695796895880366942956189492282691502055451731668751852274978492510568916102926220803742883205543947433742819835672978944002830118473114114329186644774943181863321392689336140986118489023195338558975555350232618664088726220263069461591500440832482697486698688853737903174472655832529437420832769473389579629794241481478132567334540933300524510354639323558356593226521149030573463270930693396858944335233844853649415415096933626976421186391342094434430444145520830408404197081160217258638073181001508077400424464566394380965553895731957855036303693333280333100243229873801846573782733569771546927825230343612301514561504567472034583033274133483901227419521916315131216073606474753337295143041923347421183665359939409092571983183040724058444126672459934880652840615339891157016750379382102634479190431822928362375155655070799894282166171208231446963788403732831501370106093636122717717278254009169566965448091064111585767426370808164026933025028660153552940814488408824893541391830549297283696048535530929435641132983918610039529415198616812148535552015004061643851627203277958052397918657716755024792053274385667665770388367261755547471871147180477764587137976228073078003616897635608844162535896123760472848649911981916734403059175674946995339142221872450910705847332506747374976899273687881674005863497661497959462483331280868543049829120723917744419557166491764275035104895166402714650429893651507792799944641984931219113967746217445820664367638196991929468372164148396295349699133999412725484045419253256329352256390885936904693541516102995895713783814133420924066116832316842827710006368126031236462347459259277971219950558845317452439261130437315142495797301601601978375357918986966539074149192887492471004583888402677615822526928343652341906660838205446563716792050048666667400731491846712043096187720811302324941181364629350407689536401066285323422851115476725663021441948257038901992190967637076692691547270495958176145904164464643681393042103129987215239150714243745913825136211195247119211426364260972919368510898556540048400633649564463306729214471049456542261094950360585159552360751169095406302338256635031292893372645542038990304422437579731632097400748372488488288719830791847669293398220213063755258937712240191311222018672953581873586693397857931012833344685835659827973208349501359378337258916151843936811138062330745778436892149325514292773330346217203218157588499489818760274314668253659650126402271448685474372827930343208404516805504122439314663842108885376899802005038489566260008869075199453108140479402046049179968751948376065649634511058326249307853421981916184089786244802113432323734277611093454592399620839208605957969538999851564710140903455269162588718160794851548926937800046175850295883160948962491758849559799896347506684948137751830960728373206124833591475829772595136445409524225863798476560235652373640847144917559722434203916759516097277195242034175978729484271311421625483509726875607478725243207548482945590433989535624085333023967915666966182203525050083680131447893805927652603202141131064104367673040618314076166745880267277002790352972462394172843958869337024207553519379228404711939892000346472697239350020063703880036939751438722287771764835861238060506933416347142343686454204347490162910340078146864243331816788553445154229586921877551727398151489262983155876828887429477577085240852707950835661869800944814944262154702452854992102062927873341311502317029361958131139325097574973243346079404008172453347637589440627793618509754786251480140686022487450317583040888732654859640825147317920282445045687726081993744987839635396747556272982940971802658574184917565423783312996498879613575660378499705787509721569860386048371509646167663550618481722904996199063162236145865981860691709010675928939712552112049655452918080041181617355799437088769631623619486416850256251993832859490261884200965220712621019857648167144095559742080348137109085233510544144687490830054013739136295646638578103182517559720219088137686209057636573500775414167552871768244304290621735784620801893576793386211998868301451715960809877581576746487168119448686421938872653204776759229758965258043571422699839632985798575378657060773544709319660507436115070876420260554176813023199179745160814920794054975127534752897605818757316727636872861675065513358216249298980842946745630538793506180299485128713456353883619476046273668010738134658781909851385225383473884803874781770137685972443859402749709977743614808739021107512860915399404322645519927521962394119337447625478877274278800567628645476509783883032344319603120669143636467700736455689788551162688625153938874134466945421109650338615981431257960193551148335698640878790552069232349719392633523174212714408044130396574898492210376468045170068979475831012970023921499107451761447558129199978290647442576172568453211992816276534113748158166950969068930120716168326724421123949764663318814397959134626767968269777063450998248689058433123500039392701666452986435508352644043842516950293182960634170845414636855369214163277488697656693630540453539258443161777458112309431318529332551737493498403221198549569431988727784460875974085683093068691748892462217406839132146887866048153031472630225547878503927841428630066218530549564701833582891484874049357845853252556147394197861591980022958849205599641099452586846633291551751228853374961636712926873125759368664894007897485325743168376439967977622992029267820327891713600334505910119973315726422796506520505478996839059980758393435088811272771175287204708546695239549645487992863471146655827593964625614713950769125234933656318598382358897761304391718820355861710269852964644215912354507312745244640970013468154719262949069535280414461323185429275387792593876066427778513915160875316491493790270291799948727940092625000844115382383897103418276037861760065809406531495118628765017085560700420962444583377752229771063184871387516212718003439405870447439337243634807775078181504127370774460609510999192719786814013323685141639380832951674956021106212453450969782102155475239147000641678658531226074015514888471349524432210643188157411031042832168682523666623303532483980981605949812969787301017957008967462963548258795392286434826391664629597846101426370571199093066571887601862247497919070864661912859056191767495419335614220003015622013119812837670674792123739138612388827553339072706226865026105829605691724766492090383145501921119429934078324229393257416787839658591244010378864127561844922809251924591985979506627357678560895628731864910997438791760430857359418166241731482946598617575891424278166638813597064249844277558623699425300184173951838997104096001487964484184336711304447762832157258545800329056067715271047054868262659984139664701262898961881663963627724679816478177019036765041044473450067807216762879494889956819365027441746839334367290526335609323205581640555764139306697248515768592414539086004918084084451781037940215558585235606695144519273427126795510810791587463631084271330384404717519234152641485505423532267815401862467368162301248024499294500829835189275311063362615222211010111012892210525033001354261296678091764156602534993135976577090856686076235143994210242650442461805568202659432502985375722272134558606166260975670712998761742441253811724381774479625806418886746039458808685122554155473779241933862910932913254292750916102857733391258737286114029312482086795628581713360694965058019039713000685177240863333882542483687380885320135483854719307013403920562481936466671964034200100315294924400297415868836994374985549490825849461428905747599459432963280520538824847698035056197494678743394162886229697990737571152968272964326487407309433284208151268549748870819529135729455087654895193976224250617543680744863535672146239955949352889975307348437729126985491113646308412066067663035354585297757299126697877245527114646849396030108867291238028737922678228065625045709154478136596549272122690920520409193398736573028861688729578134996062761829161878241713181523639617466970984434594098685978327229726109865126744419152224799090342152044646181198491052304243452262534391505927664459159001385188927632047505870964662432412474363805975403995462110749796781428383916756710203273167683795750607581005006166470962488221343630844591904628617888495823921312777574987219592807063451311541052160794424347669104325508174958789401673148333568377891845387827270663561650146232873711495025853449501243112183142682065297749352644116003358999447051972805311874605301984048678852993116265466840308285498435216408543614760592454721454130604770567129097923959691976750174178276398928602057231515767556192157602055046423211313821938946109075071715756964646456009503977852117062772373734772315422926372953126677957783265007473609900793634790840420670707577658926808848019063930282746434631952212287598906854459016485041275731961133048575607181969808122573234571838199960866744813084001670532353694194273433681334321506577790132973505494445265692786201678787926762728946395098826393706541454279443438474223966953770952603862667004372580584181685339487081930763743547180500570821026288169461567058135393725158910530821484137556895137568681251216285422247588976668830158435792124519808749297954946650140386145941382201510069180683733208793987803714797212377722998592246798387332538838579113551763938453102522978568955929805605433353214892092699607900436989530555166559231502713826576279867313658210349927353812919060889665111143336948485852204643352226590611188155204496035432333324256693730242123966264795161698870041057319761572170210244021668660725539260875148997949741873125740407674942313742413333141319113184821870380355253623085085449199242322461743513193486283244108931373291582848624703536681314454655770258315734664510863973773460203421631577745017950244198653864080795910820957183295995213381692365780923370013826296541681714293826675134944046238957930464594326710127122845873813656804251252033230408279067909181349542287364094275476671726390145209352807563151085676448523846825961738766828781350064884832933418250911182670789425088661131049074470093700803614969592155389548694720645769519265863718704312505463284029668068606086889725348727675913803304735533981770478361039514347978976083334531633933426443548261565069225962525586167425993796723683421430614950563498905586431502277844291648218673064705215799643434561718401772908724777134432968426981826976673262780105704630557663271779519311172334646562835631083173761689510635015070784121641116791073707262498578496702244238247364741293264581702689870054586878946290691298957939279429741457413752634230434606590853528367198070387044307121063147079162192623695627724077796846043086489315263070571733678156726474238830281374172981890967829554494984436152727745602363570079914777773021423990540899172560225067452461032518856670718253509313131914560355885459997409424383247178966591164711202287825737522345823909466223409589474839276687716957524360921082781009200421846468391562037086126977380993512102504150333864351913845062522005286290910893646858723644161701310534764436446649449545975831333597444827577049035767461883036362699509145157675062623747898223311067364650561482355659855311926147493612527740457088328227070250433094675914556681074816872328753148382859300893496180764588045149996214918626333326670610033079450520365635859253541716364970468786418821787227885555255504495061073037986724426669948186089429407405679501411158114325266374720759964326469833725765342528344371130542085267781915567686861589272258525546603159268803410144402766410550519044680303547473770364962785598699444963555294490637240312929095396499101397044890206650996946354395224671223488472786514147575878577522290436833931691578254151581485656564255639348269061855394808850977429201819889846737707699667482046984395876262170107900297706293264990402188380965299111607915684229992025197512622079469986594820720999070537070754529774986385551887777849181956995205878784326633582079987991334552959351760610410544648679093155917374452415754786495943378805740698884439885103503648073024498354701905332391929010334933259884818442028493882876565603431666744242053338968051021105199454185761715725675453523596005908651431061717561814067325039799673047602084240825009565735943249481974192936232934778799473160844057685211674565925815229751370894512074975677381718065084152751678890598205467586967836390970994279093462159822398878950939403031671429505176358786366221875216722151725778382535133041789667576140519538486870367826719246634109901934613048778694136873244288475221378836194618108995786802826113957683007384287486513760452032374541877916015170130811675966859824147469720528381112578097278607539599566024741159851590355714447106170793106657685925548767709731367584789880591617769140572144142366212290514256108327178242711751172744852351307336710577411465057124153656905188310233317967921273269504323414688789488001800035462773398934951607732427440302441110730162913526412887646399624805848031977743427334277443467578195169340517795582598259524286673669453305632823707888446104109922152055036376000177388603008778713604511777402811469059413772736535188812241156890971746269578881415590388474268203195969165782456694948481595769645098898495913775124404445947672592513256351742369651929319792770736200023675670215609843799340700481411996521250991096243831956569602795778074516653896230953607255416624655903097399107070313478980880418641980138175648487379214039680746198447774031560883414240195027512214675939587540439106958752263099856563279100560170119002545729346925611035992009872878355257657202330009143983558733766492627478516068937422360773633996636588924966357751256791638136259425742716760514576754676168629251314964730137744203179057209010745162439459074201351539532618479250740608628631381677776926086376587748685279034105708899072766902139013699551931011866306823130869364527847789857826089473345357617455760643317794446729570114026384651724703543948916467832452742439407098269384520105059775819809728218378463384455448926577751739924646154937030784233691777046210124041191841639061950873229900736596390923506820308254019532486282555040467329828275312345730655440276124657697023464017193076105912720628137017592002655574023632697388117417069178009203934710818071595637285936276271204609578015138652611485187080072417176056082947908040643228623553373531411014340877721741836524948443852383156318809797753583026706219070443941031712885700690679569422450340686607861883235001152777160577843071559540504992398169956736765868231554577356313666756022354914113781999710815745715322344266077043896549086545768483445730559613161850652675604442550598096470092649520408262598329916827754149996299477330125432119983072733171380337369568802652965226737511030439833558328343592585737269833820018761366457676686124555979208534781483051478294133727734561567927613630572706083207955405464782810939731689810350662372826072757710396429341563642791930301669325542876793986125423592414926466328299568945168002218801110703521634861969717320295203689388619792962421803749101899427562512581297778327537370818667013934924543269699025021330377563206804969171533097931535215076670853410378551453704486819717582821993126085373023503784558302198380190089131666840515732410581986058790098105338740403298117696242400395086091584027700698171201929349706703351449922402342151945068976022244995084756448553604892073610058194486283294200444153912095386805988836807801911768974123028298679393676548260670087557207483482765265593375409151693134048835330557883294322273083496647077783881364938411974192927077598029529576303438871486193384077567432668218404362150561009099836081578366356741247594940177967869178939941791887627347596276638474553100595916257853864434792490775562401039940699893010227478584144283261623912246899961094334476613328274859463841666366079746843894331679083491727357071317007362264597959145943278792903636230510733198229952501760636592961743434311706700434871145374621295314637152963650044844969580404265658879424865826789930817053919060251843187503604582077327171628702159756888681951681671914173710555286463756157694123047353712459488615480298631208173719219576655418576788076341918675179797250910342431701616793193219743882135279311333738912666578038369919058224212272353075429304163032052927013903035665180692648092308477570069098754941087855718298253757494909393854907780564728476127891218424616602523695967344967815078851494819315664993305641895874630260731868029202753731856253308349057542173345076034102409091040070456287210880505368647035016098433841040949628732137759443824729511328702809021259310236994780365630160889228473479200517772904832833227553755059386276261309621342222529777285471592034937782794587531210131142453257399316114710124596033441370853732224074853407794976182330664255759816860847384997880961427996763992787626128647438172732316227293707956205871526499149706419038340998340697804171814393612031567286186387469914145068309510562058066944122445846497003026520071528404780772349406279528548075930359539060753664022460712462015095768150746570832869877150053711906763099074174747405205687474409440673020520611526978138434839621112418051858343789454232495230628215737964461458684309762154119849879749320297346047710045863528655921048712625838306397405502886525621518019871616430730472260782292893314904718506156304665810006612299494762505313580327666507885710091907013153135248597300034660059004870755813298674547967365769513838209895734197755751290626160608450847402460267836526159452550980450696529512193002797527228225398510067338110554359758052320744248509405637359204412556576134922384740952402654594564272598129865236758219841200205421503393706839677139292287825920932700385546261216702809402425531898589184281482292303370327703682369897449094173822439561955390130002268325352531796286667299315369147914507984790562951825207658434195769610360686103255812809158228753168628423813928378893802881646782847948003703302995893551866019020792437900915808779478072270493105665339254985909183123453628477603672670979606216475513173764030956578708373503331608767140439849450931524325094212724277077820705349039763372589837411332519207952074827279478055523056890904582813373771035043602950661560101323054975030844506999313766075544430229179194433236125719327970511835446979864007691447621244581761119523936464959693801896466723217556011577249838745537183718541805454744536958671038114581529342176136725856490448887088132385288443681833500906245574152054909881007440125549944356217715157507809383066362677897572813592271289828340995664056474545528619241745710577213111845964718205934981223566982977517041719918546743098309437475556696185720061139592152582280468949751269601755448264194568081476975866955345467124187251149110000321192137934674670260179369674368641001452492024058851846526918353416378321524067692416852738368404680153218399482813495309960999702265871371936272263283723532949624276575986197546989247592825622493698952835737719723821742794933623548398298558570002260617071752951420177453566326906485723938403603893407938055415717931639758892455319520369832169853267936465552588764763850019539090902923409990746413471023623432314819780933478152993684301345417479203304947542464849111322162952717018006397299195599602243360614647110866096662286322776116505138587193662517459350720622980950563320786580326723790162521281696178771655523081456162376575793838260314635782245866271296884065887026230911224604893342196869910455245354326959852138669782745351066644495800018141474881418060309236769961549494796083364709255181344120140105286345868220649951805582755207817867998475901397431986424298772342648597935211578486616460733659244520973565385171276771366872470712533960060412479618758881540091502808181079157997916569904336061265742710138933804176443288329813875500125375063723198847406775441467839090364633588707023707586657837069414203346116801133723611829652323666152835105846145289474107244793856075400858775210831243624560106197459343826667708870538105167774797994095520431858442716905728116791837572749712816457048368418356829589689900789410292988221071627130156601626069721694797020647391310237062823153345727962157058978016244799399104884046938667025926925839517514943613768271124495265228498049042735957393424471140799368692120334329610271746920685197769967101540842780181175988169513827110231588482370667283421264830324491021166242748388299325282842951530511165382696529629937866330894748458361361014101924922627841176981182688466400837781463095387529056574947999172611797246305637206006121823088774200913670467432788694815972604848481778804532199494627122559725706346415896529332335010198853629405456308892767930630384085204219575869292191169684018460854904922626906734415098560611629918067932487626879236374182001820330386896572436064262533418216367835552487591787719500543693257469314025240004123518811389940346276380777862000493720573110301587941748862016775762222257287411625484743377946312564894886029218187256557467379932866908552672846290282029753645811078841148500705285054409768155477890083690269610066692920906952083628146609696364269428146198804085229242845016148401931824398105294971719918243265346917690695574534196663993064952842369600016870390281219392855362143144337332890407405194811288640446545875183321994041891595839988327687748262359389047977190478353700066490070849143121165740453729536462674763175783666258187684611166334889551297565109822630335432543752030100703428378058289630347651547207824723581149250920010465758655653445354548009765542927004152077940351550939644674366764162411894664773813396965409930509578091796652904793026201109646881362523739264958900636137002126291355024579021866714179253064591477904359368375085820719359170412592223274658551093299390751180799818600555027771773502070043667528758847862868422429626981381154929758189926106014520869697563712180883659441158112455903822156667098792494366570344909115635095834717386273159568293742154139556405204566012869045169952887610414472819316687056813721649647262538321435573773150654813897726813277553383413639060923301948986622177804537206626257252628499260882903383720970731299091306935424638243301316264745672656043342630509082830102033206545928781391462480056138664270311009135399189121862023155550028688052120359820118108220438365660590494892894327135030934163210722905369732863362755223870826890175744296633202675277651600439034248086517522024727236024609006347157961180655946734106426396607369522720523866833477567249950889007303251199689054608032802525978611162686089733458058653947115633806197951243282613275006899334164611232470526686488787240211143889795362875517646947301136721945347667556847374904625867978840050172628737388192065729663574691735226191788048565874961341078237178808565685756430608791186553671455236191119315248712942104260596354349656365258948552754705386809973285978363520948781401706545250910174911014632123564139365936648327038363329678722272344875766688111221073277748729442121372120993151792944428491440080938232912529711394016809430988262523000912665765089675768963636757424547628720957699807061574951930442715169261965878880002265746386712221947978923045939455533471988226862903885514839487113979088184415497034004290941872212240020937179783857862419670281690970131270843631354621567053102368627375840389177684030026996357005846424663473689941229790245318745092094195516885043509887772648429315501690972506335629422374842061686418894636320603221873652151032758769546726425301610372338590152209312303666939730596549549145699346505519830647005290710534209522586081611926545875126970329811765267353343440505988809233805070455892856943078417298594700691043486478743553385870359825947890330954443701386352760745936677308777933832596001327600314259334719836293372113692154710991180738618416196042558921399569446346387408257866596971725130590964976909430653098006620542782403129890955701158143434819164634684163358922257790521901639898242329553167017318794596269527216310575699413332064525415042579203376035387564550051436573408688216812326141098033042251843130692727426742663225348193652964900733839749329758277167423515152755445980762033736012525287011415781245248767254907715479935351822839971652172021396430287677187535502802301384776810932259323311247130171926074930433867699179069269237816324717209559950302140220025167297574841574725422170267649924120532705609693861049863701821540937626186637496528531152458496863265385786551908502098928085215709974741320905027309263777236033598137269071887857162153224288509653598321657131203055810805220274758106009445168727845764973473295186525465528286551000640893281002863036193797706490465301347915283773760440912237638628387375786441776134944088261483894672341074443854770291929025819176900584732882435208518435480152728102535975689342822970745663539187692210869656465736679367656997634933179005749982291682277935391608926946999191302015968356469092541231310982113618242634274138866753307131331969713072958478575321809355082132177209056652534539255840830071149883563889892500728680558079957695869536211557191055865822297851574222226610254180213951974007436525858493951407218662540681338440958042819604447153558370657395991378186689842946833979759831091601895117496070701568474610898580734203251189105857405120434030824206878388388964404591033541351864621665959817412348573891201151215389245704028446553302434442387423159630126812451402874251373627240674881432665616343175472713921882115333283474600246535907241885813078385264759388946333467481133234860640017964225445082801537849284721844676891692738674147337337082224656417780932383935260757862356715870348577481362125372786922188440195618373052489818962395941868822427721926750174134622556963058055218081239022592210193450474051231811510693302250584453839099486176369385969566383280073545410081518164760266839402343143912705898507476957252631313528120946544139174100238522658646026015012089780605758032056483849717267785206196108273193763981313799855058351429679705733758820691396602402848463018051615497128002752610629299006793663586924161740484878297894782053639263376882479789238282043006343353523868496926434460211447119575665048871331121942159227869234970661152911802359853083089325613764092903734819144513804772494083649239103536680057958246471913050807467282541587576629616985215435061111146893887294317477342749312129148448593225699812188517239047328161407512952555078571929743640396549841231204157760382433444178704638448525715223652094207890261439902018398986019541587329535278834043650312601761015745295472234435269865767484024472576385785275537021864242438026418204373525646155465094461207659634084576793709649533678785228666110201212096958276552786332337994806189587830607188871194303254402796548114812623297448612239044641899907651108000330216941730962299298908154777991240588889396341098183921017670945736758132833911085321191895394416238100308406600785289498281808689799595667641608655316247924699027672951848310906386637041345949072155317177777243540392033562902727756217804066260916195415284490946004355513497772425331892724699992540422406444735699884827871729724864499172948512234894250073001739626020794173160828889037324577169065011925092769182128573185232257958265036229519381240647787805883632519141766670977212626611726417543245408577386504991201236056421965740518525121031072598586322067925321932629481915156481591338822561739504809643905240755400820566115300987860319817136563636533244564890651461910303707266861072473939361852291719164347989685036756833561742225271508943805661881363552878118978860013713604059395832290721932135586635329703645327066556919865986626847947198883374654550141341768199182195832783856540144736031856329126656561464422570126208505001261422507470978366916742026353927385815197123580286880070304048126251014926063264705049970344839343139662250583045820852094152367427472082711917977423461527448518187030779788932626904246601904632413564203331610118373881902681560143828488813387183143982032308745204833017836921225966968338785542329557230851059641790814769152175391956940727643429675421690701216243411104557824409613568779902901288684063580356231739606465570733675880446772945657233786058995540281880208742089099862835861202292065896082152871336793517704971159278303069657786012452492985346272268299313688528550351041057721498023380868691869268042491497565500968393912982103914035698751086740197567743095883687961174630205792931474388658749768604738953107571997056668000639934189872215760429907034907502618067867533255736368319533512492771595016208860201217390542585853502761254998320289764402619556795705869531567376360071634640141020498754183590808761762008373173973598831012137626034332685043355210281530081672423981399434700087335099143783795617837944160778565055935781476213515841778981545460521057727846391736572563245179804118012980255389678574066539648180128913747496353818788060465031513661308632529037230896658391224693824496335059171853757546562952836060027880523488759982973570116646504957144299023662410637014263231436772676207623986131827032052027968864852503134901991196560422992201844344940669210109933021153063618078693594302454589050749443767343184362853814306418921969696628036879402566139900936134392869372401396538366439808884579570895365792469545434905669465032080546632352255082482980208855355949597264914971375437449221439802348687150315749736715694707985203586261306520203067537796244117706912389561825256722873900066348699855659047947135437755982945355470905052378590145773449457615951326689153113742157954188458459567947913849432063398792914953171214458273839948849312018335317020957465992550818005437060556610886853066890409852163653900750975125394688708952841303802587201799899798601161272781804114312202666552508522979527166929405728526479353177982563020532701615051149796353833027684985830997791391508756410702746971857380195606132079637100781053754200963630734604006084619750248959742985712699188786837704372605970532237522219910211069909487699353765959847464263734289603346898451462408438529557679904340286794855842296429498227227495428715240081902562734430579341237783808161939765222729814824852789562205681129182074245740697533933092543224035732158850730539407054503220701657299917826433335934139810993803416137059720857972668161259709821756737057631723849458853831013860756830528045641777689341595215683400341236111820123913127973381379141333809773789067237103731566932374156719389804310740075634774785235789810232272986872867886250182287272379524060887939621507253007994078323028513588654151160558704009538217629496801229277182483993872682945319058752763894910327731850392940679431263468574391089919708748854903758204471440371605135239149212817278206484833489860996070887692484995948862916909493314179145020339679770234952217753625647762767895280890638575559164227870391990589902378544843085314023601812329323058275814048966049998299977318007733361949102886138409812921088129169370453491600299283153830135618428351901745415040136810038684909156300317213363322839847370832331790572683285104956651541146816764067467694458163006629471762779660020489627771224059312904852948307435866414018120747130775187774749286270318734373592305538789426388679084191865966053056847523719417936066589811627171485980948831703926949715172492926047904008542072590144187301616717814534178939047167786446111294256515507588022183944041751953248889865158130074792461345235748334050090868179937209146982988372379985862384939739223727443954134340122264877475761757407474458790284648872302348493395717038864362810725782822373217184569222265292919036879812549137993483776475354508592215557355454093937027600071680702532746072320671298458143285119387814851524144747595136030006897525864722575601511941796943583653545748419492994237741227942648591785934525221209807976835769116905306117912945787929797264656389886142274702023409007729451372852352726901207069728543721330417708055622853389924829223597408791816717949437426773854826702118351282572265297125183149405160987117516995343622142374648835797600210386266875946202076094906600960282019721755635969715138638706597691089181659519622029752029356009176403397802973452893056654718819121642853840996639583941628363682657046329249454891643707863440618967842322602109138906628787578995028081861935383476186296695146635727866297509318534154496487951088118299867114435350649463949240087326692430717342164809881682628989443269168862990173309731208354234039959235075006009079610270963010497331942430802432702919767215896242495422864653559027400377264928874253528320033915270581588571971014475685108163868451507620561588426902390689494149571356282909261818843328182040321597166811579755029724331505900760206530641383598298853112333325685230989921875963339574472166315865649186477136391719132639394682089780304178925541262561005696505219282376375053627636563539762991781224456016560245198704663796435234053091790827600736021845410051924089811737527180966065625268691497826891270956854545615468017705211666601151704914291263953626496859262015014169044251599920766766938154736077770266574807499784316965504231884050561444126168787072723627726956753803142078484591155515089520330861979541500380311783423830535160060405359165360623777295202189010428902848633628766747233719694326965150085910557679605411951615992469359052068899623743362834709419033976368305628102310205843312946898969496621993904292753785385528648445650161764060362870265867775464705338687830388381165927650276453007482679320094379038873594769863070850637389315479001664854107756397634599358882284506289655818063661451857517334734924753130914694683655348074893174841904171382958402932376439764443356516939495010229478196686168752774852177308941664215902495337480755308539903911894009545424771574826946629434984268099669068502402525264703878354857199910886001580769028996265093663601832113303704905460757570217304221301019780388784140645887296636113237354916238223701918299568119076837822541023728515619498551204124871312653906050963973889370282226585586622480044126546741225806302107791844540222324561360608394545310518629940297869674530974412683869397049255422416946177947008641910941992736821948398114742999061162598388109651767966344360491052044021652277121639743290536562442038738959644808503090895190454928880269674778352674645043228095964146827104010148160060554590292692515644364714697481316329526814974184338508274108226869392216902061602879903303609661179304666424468824133120965912824917792727272903528514688244382124953527630114495667795660652003512627778556458742095490312684172606266416425058439893783333766509108551579283452483639729100447542646118253523146604703502570102044425176290825901583767513455506900140778266808276547333955138813966208495108874634375312892487421301921971345803853345089402536373002487098522851173671017946946608819130289610153337101171069709089139919909025169965420525119541067314582111441644830994642733962607941719446864151683635072899548767007456173259199385351058138583039832305765928371241288331157268971149296613136758287801572853737910490663133840839150292037160225901089316382778271457120776766618451715129340958739136839266329039426187227148658208979396666382846479905928557189775428399670190701367868142265132983628083362728391967617546043395516895824549428686557928190205196563808809118217407510521250119626569674909201064813217051580332300433572111160670276735623344570342458127862851859938512630634633748191702796558520563226955415862057444787354863739850177197605054945142360034609879552500714157598134500860979243557444870709836232423613377143550319121969456250739573423259340578167599604788044048583794681062655894275934286150063737439436844537498319920764962138854698782186733443576246134232711072275669727562659044812553353979822497614936233620885693490277875058290052113977185992269032830647806184193671687214269804236642988365832427239079830843237558077703793561314987672043599013720612301592665426101257399267229163786965997251907392305083185025272099546528731360861521602992196779705557583179422405568468752505275817799383807504863259167711867220333719601288517735372024173715112913856126453131848855274728111082368541159174710012630025525211970393404866637064114511657460125031382526304825586588111362463110846165574002560742804254619538312410808072137033378756129645572316247566765617699177471884156752295069526739245407192880876930480573169177253748907384528391822673459835072649478112151637637541625828381778858276307023527046412508745601014748840188456233203197994241911457750430913303542052609432142374932807048186527825081704004986320120437993406146280421195435684813524988470350432982084078257552719628744626932147444296360841850099028249177712780954397067970400277421578557172997072819853747377146658763815786122316870709496496736003905985877298202501635773352993432871842537152511702909637902927865110080586990260192071982721066182099655144082412464231237541149761045265042379179730119225052405585730793399634069628146112636279000103961897037545399903347400849446508743669804625694073484688148715756631074424591802640022557538314792685179378488538278417967177796638967022777746211768498540744287780282081750027072972261871824283094353187042982861242692039889278628869908642897815214230950879936783460547568908535520781059502985714694487024779552162387586695733098589471650033608122994956959525570808375601073104559320454757903462690978239691319233592142167122745367938653732612269763232587973714700669293114035274616695488601168249924049746621113146597072798984077774737227591285518903049548070638492143288068252052134672886963966994942161572636173433636810508063267130467221728754942797409232150522068254644048638772498449425114904687685550078427098364889723321705639148964679310896777381376481197746039232805190516213654171820697411610300393477177910505275290858229464633087933308675436946227432293301303593115838432114373472671948252129759196290478007265408676344540864279684747527483070147746286896145886463631419118142870832109905335467490692351835765278242922048437087794489887438738319546171865031738208789842198309685949119546393394061929599945587232806793166410095780737133979462079387016295755527600690917269525255714330984886393665698901107702011161503285729527734250540140680701422424023044182980594708967737917396317662391087318877521118779966734585182090912922181289209138893251403836276510453048161715720164155482857054908716855835148844464330519154195842602423536430604728080639690300035615005382213128454773520668568717153155148323030316488078367727560367549969869006163572207083317164993856918453301672160984224208607772559096198452900940149181427950403481733887534466170624661821579755851114451455784640735435395681118479723295370299791188123463627468141236355284886980877993343384009648138408379754005745927384898313422079292072418610422636375991955137300882462737490245800995315442051609673109903319573440482216052840009897589501923295297616597369683450651976554637921418566495470282842710453067633826572136925424492835625981911176054562193072939314030429412252646760533734113001344247141051634820905909727323572574906032626817336203450412187072784878038150961765685938324828819324988629144222978238766600042075383413615919216536686231617057353019618960436816883164189107495254159624800883158840334865860540855006851439601040552456498975507719572328413023596144644107346854664487146500787503990693745221813047511755515833274534127359051204592812536605116509609587270328735676727421804103462008699819632853613251565756100913985316188845202518138042307262189154909708205658714766282621309874203831323104042226832854454691565122169860424566242398305674167153502406547377138418886003688164152843666757636037407715035651670760401098095136224380433988392201939671300907674366833093924208781298746637849772514992533284195734781754076047013738925731864880992546548604043666078804352935043162719978058294371674648783682609426519769304592078568239534262655745599155777937827912091375618177122975490374160465323858845513658837079954363768992358970961442554993260509486768037940342383395229060697853232503923101640480722394919624825602544401382994225800218021493588836722335544558772010919089451204242595711950685906840938875232987481160554240210565305716650268166382433431725202643236450090317609312052271815986688758133594645338027802852478992682239515703700135065239496253184645773343855646325923268893516622856814624065975854681583740328301718243845172803927533693330578561290289538277401984310730599652951918828615412681643619651373386416382629622763568556039168983408186893320353502368334485832367472825922514010752599423488361044507252269649953572314847849267793646944107139965679665216998405425213064188076963973551479904047323802959179232893333596029654775910992974468272130394362605452767547309967860732844036234041906128541188177134403405615671664766417998894092932062784062047122860850955034965830232984299675749199869792075765411897934546562847912213186612451621515270823153338679826288514310524301185162673492782244354318535474012679909912643366323696023115230021120193837792420306913202326397792879309373294067943054310442107693483871059271761012898597374385008744651472293318445224342698446818019761827442994561419017776315293985428744337340915702287778845516064225436164994963733298558263073645515387091531465765736509359467331719146232815126204862484672572046787544014532692620547465729525322026758522997749672141550388031979628500195120643382258133436660868861242336192452243645640649036806908953818109891848503663008831889960640543694699835379512786385899778967950127224872523188731379210535921839736207653392661562616883509007816403143745527215981997518443010853036755792852297646981007621570764736481764082515557383562241407583533667067824488620201522865823873124932743124458198654242059643594219756702826250069016391437947000418001128353345214825892137844362381390715481063975934258365694861084680864279068738969539473372205511598912002218138452772491200708782397776041323775028360721674329459631309934531894455498461448367342451756061855211096219048329036688511312149784762876148391947007925124237208074209433040951467663748906876577064519489038104070669871239242676758619366336271255757540961350321119796591409726855069130804009570870380312547664437500926734592123367927342174013326467820791924485913583973044820419986412382289861764219548332040901022965791882135991907749130993368165984755601351193491434679651903748511820668701421734242908188581969768592544194522882494100656693724171773909093303930767207472683190534240183684762938950175019682043864499653607540647224615798419995455507950548472272090937314390770103081200854117573066735957528347308597541361427678883231540538474928702173495512577997092642833892531263019568795297855716162688482646150472554356259925945787638916279111279991792116553132569028116914010736162251287376949568689019343480151599070000623762993049203188188226079116784286173518922932878154187870634320031492975366936287716760381946097605742918242524697522056715675287703745107907227980600225766470377994269119551102524498493187998344773494348815180768554207484706249490950558112068266388718812203298479796979191136136677436065587900945982618595893600947601774419956194514983036309298903182509565539063282154881807652030143086111456846926435936391264708614560719425573099700935159882773050780784890249949718593146467430475397855327600658326281744088288586304330905166520629038395709423662012820222623852971130002815006651908868662540359882891461425138766228808178152763866316986551166809196288817517088968836942860859175521339705124298019881946601206977046667003979592813528728475088250077632055337727730219986821050799699623290259126509292023678841500371743218646875238521602451549862790245414072140088853733521768450161479129350253651897164760684234013217884406925867941730118172402858787129478783386760282289780751810286095942985173345327396731717761788746395700748148011864000492300208296626014479040219131036135454793449471871836394392943229249054821872370098480529053485308245176092639296999053574895614631101612086513390643264207783851434338717914051536525659167050653768984849874740125294454491453866270804374542007126032593738383723431925221411998835200035248587662546566646647396124316319617903942607792165496596279078740218576379814127510159547303400544680378242718519803257931700045414060164198106778127508675762290778510943197000639927309966175292643163986143517699845752662456022060006113153957827858867021750221474108693997628325995382306461092228509280782634362677310944681141778019782093725380450804734792172285221556456567975759896390613521342915748529616929884896376479762889136137283868178168011421473343817025858267034424935027319426889747584477806649445636674675411564709532426307436490745336278471046064000466059155221434897961693708736383454896945891616190120371972244417419191890792678247711926031305989096536786594592389961658084246656108242563910504812802845217967989050450405669318005783878236530736388911436121159106843927523907026441956012509589551718712736893127497486602978847498122287754056877237017160467175427376175143484966409467191243481489315136415019551494105255612422629517582480177189383109033769795709292731588030945415606626186106997172722048699322330704545704204050265869304200810290488507812409510905108794651371387287377315319851427310195201776041630496281773192177772030445933834756580631885030746280476525224316900312525129652090886715363897838429392537854930333040439192512833519027720513707738993365886371423482281280492137315057894541496493367817633831953193500034306725806986576336481965291592008430853228695901415454848519661110525225461744382425272875618104476861568065977868909886467713746122457211635178776830076104262308971106901545211411951539514096013057183595547927051415460360727184931185222087446696501176985946246534373042670863424223258312362090730333559243300552807970938275618096063807917392772759168666452384526487043246342773438692970307987557176345661020233526016338108603838513317814503762000508028099977510181452937417897644752568561309509101827402436473530364196205230073391325659458273519571945003540169260804331602559949431251940155218877682022062799962646327594853213547712792554083251785856775280910143992733231553400024798143370219772876428635648172288885341056939393436794258343438887086108622260145024590216815819791527795543699735218025408917657938065417392535564101936002902876938634709289192567126100622914078668302586750471403542595426381925614657367949167701073035080138169901103139426497381945064874733406670433671771222248810333418701074233103304890989293502134361092135779376433583664222909504426661096113731542190229729514189566563571968744679667007282998444463374729575257307422932822927390684694814618939041394186668141430299887486792355331150898997905369605028653618675063026864199950123368547075367345026189032571209831639410271094491500892162168675573596028353767961992629571741560921985492740872289241162052328013913307660502167321697450549799195946659361695699320736203528389385022280880572074219969207305096517856758147999016238206533376055050077674275305334818038594474329194411017912093707819021080999755305568220755657637486563191647866472473781955641697381189713215429446083218822710551227178050042309763911974981342162381345194965380378611731075238466106443611273443302112259296042305313814514248280284015347913604654400899933412483620477608754091149507710495935319498973390388090945570171093768620889057182276922353136622138433177399363919700528166582387756153453837597386064889351936201517883048042057464566973266371510453091420403453886489976854239658358974179784237629460822017984817243991295258879225600403651870827382011812144676995977898012136505749294991435083504985645680755569274543311561682317749667826544529599110066379888356601516535009392772538314069744220335334167039268403890450423677251048250152497257219286516941388998517465420665538384568462819365571947035991063379965704635720589928386122421042778960714170339702835384980823696714211179674465566058392647761869767547948259829589416685827361388594313140399263586700805091262125091578058915743429744926640122108189938341612107824463496373995995194245950036013610784715222109427060340450695963895314508988064571578544770827380443243770925432140809589640885941946679610702111427591616496909929043293634382039651615928087779738949413047170368247675328517704742627689450546998992483120107615075864543540440309892546289984109361326735023964712337102059803998787971832785406069453534452182631688709483722656131579177924241078368634549771261443102859809337629354826036590902845294581463211002540007427553535606390308551402823537876079188643372036598459960191832605307942651132120000779414684902004757187775337604147788149158706284528163534126137275773235962126607995936359110522352178120427602587683994118365284246652076027730868144772173555275591444784163891448479265354137034918728476874234514268268480895025734492964689544347896811360826502699859932889545976030608388445238675147544030504893918673371435024289073939633951264501193722914724990642441156898319378015747616147252541242882960256350061552235787500657547499923825273626936626487779685189899682678430156428121398514747649203091423396814819932256819505828462375619481046443863865529754965129524407837373962668526187823518174855159799026730167078337370826870327779793057083454891954695033946754878253809713485661475254964378200735816535359597369031735267753607901395059429580435300440148875035717984363626069920764382551078262523230047045206669302565931020017231110039049075185507493667857970795362760010632688478625935167964176564062559338207913353521617142817539431173738057915298059993936525043661704969614024815134687995285822723736742093738775643680466088777005392313257615860273144093377306955360215225398908651959674570613193405630590598714245453309334165981515113291760782190668171620278133730784282618157942525255675897736576452496594742038175450451536509489462019518965200341117652877314394317680508716454025106672139743103745908355917680382800148888018666189502010838305523578558350062473274531487888987357634278935855309885327074926526301447613208835513642401060495713039760364354918741541722646502695498506732881881535687676790670678414674086672912860842473099547392598016700336892133199577934920703478155187417654264781575218269079085593139704827571780004550724350651261171711038210340820155127919063630091117254239463515895770416632499851276880698076138610107567190088588695920992256180825409244551027113772330931755259324636105108896880716901389578617256500795395828411509828380333477937776742701264993307866645186619688567071659881225595364952298084332482794551455844269439870898478074065299969025759992817971935248891006119171940514101246636871735009542304153874764465479664192703349523021525422767526385701229253782726240707286878126798725325693282658930386379071133787693809807849826643270663909937231729213469971150638294881212942154009268980844790964883079353041127836549301338042141739275482599204563963804407503190709403073423828436558862179853733373119099500804229541470813910574257613144212036868605845578396015921752758253573174629351488391611026771648820361861824672087566949993447542565025037647765381075464734166863474106792393493703030540625450948554826544155838029504182671784702929394507349943022945084121472602073159053862198411024219259923932506556266321334222425929838483288323702158082516361993353601846236226408636709653304219854759398003673305682914416153328420839925205276099692235933000601224806025611308281262856194435636815029894518330964569562463720220347323450252149738154253927257023833798582766435254876480121262450178455686510134261210198257637319021149047098518748253027560764785766804201573290305154704205836589227986957098909560486164629395609966833204281394524544098029685127007734244898226170915153633789140206021595532908872829210628007375564436426648484914545539060631639524353522786732387336470933076607506467625998624473509887808870584574908275980831372355739700924850262251555803590799111982448726140193127474836230953420939826203619902382325084425386282667731513645013858027585825101282788445658781213649674520715298970619510633608409800604024435708708088041494384121893731420086260019551798863427727084050969935766040795401049861365530752549413944360077937315706625521529395064910844591929683060583310898947543320292573784898617251469697077739699332649599397931386168911187942255833701505783043230601984512998917319583286260032387520016816766606302674936474725085754306642361446759244040097570873945212831116662216394226172889277991857140314893269292870360461668971249441192601189855157234233475259366611337239681221283726268162076774651001383387120746699650490556814439654685999087474874908458094441897871563075318941592037758095582835005411623229348387105307278435191117992682741330446448934603728337403078814607926003378203701654016226199976187880890710500153262745022696102819886986949088830247231851230187186211600437002048653019125870993540755116934060088860168090227263945861256323841483283479238154643200847822804306513190865034837663407016787453744788485752500771280995634642365363838137048319506313938661607109256453142245418139579986416510420790424816943132871086919312934231612310323591100547695640551861624250422098010500071486080515855470547927535986119772825958442685347327361273715915985894074268098254567795556707301200880394963134616603974583895010351240343119484633748767162127411253328016720514074906597815088975949075936178655820548261774501924000484507659050671721290457319467966973578484441888108694968299635794175262570437243436139554556831231592626269229916456778904808406133114304518730571984363150737269256313210039768283563389691870478609401198222714738298471930598629777635999866858738630676606954284419103882422431279116400647023329384254662234892862766962024268371184599338396042927603698362054882134042222614341746148984558708213231055437781275823219365586972237412169441760409388432292167123437108476694487838205812873836484550144241421769487874035472107930056241619653013803751397662374369293277427951925020181496721136696777429103782770192253616934005732380556492866438347842153544965386601294654619712998407535468687825678692168060689472298536235953772842028068701122588560250987954873339686564336914269810260999636028449787446777298179092557460020880235897658089332639361326402321525863878932361834915321411153909651801605493299746710561142105966031892614733116343979273646603425609274723700710678024130570131183675037759192861302556934467682492630415753797980539289785034219049740502195777025053667944501863857766997472867211327329387426443580358629355536098653992069558250973722616433585391241582741555129927954908999230332375327593502998446562889121199265186780864365220152263435565989226111265037895561195513461007317011591693746076349832268787256626298607051314744489305317896336546150020241774644922473462565884334837424553450973927508555112040529581565889378482284010033198830466655717623976104096701563896861369984091489240821270049739845646745103057633995480596779000895094738725157884028280450753005725512090030657042451180415470644574834510841226446847633043065307001685358496606576402664690527824889764371803257670841934571229888011710339251661307325260221036144706181199871409237062090480321797481929257398906705616962723948022920231591869781874808033912198063369386252907060299957943541109551232960443999887286758714043688837338462786462137274112864996661415667861604531289996858764239469775292548367096763653901842012020247705238181524142653972930864850223429542074901563219838713892601513610830408001256767821010644543664105740192631023193624240350705650232876302147827846197061705718380092139345750896039661783833076498238032271334062304340857937005565663275930277623978390161720611639553121210600446436289227127033309569201176404703645175963818389940825930494066269170179392426442950325219569185937681345116046691800809996849725833584036845942184323858501797439217337020412153995458072655469880648481381737694947155833994607028054375785971244744477691959416300094575652025595584418900047078174261632733323456076292791653493844612776025367831849156556208989314928511309310739075387928020978489567629315207438517556300314636496753716553465367507207496571613994475964809565832460355921654088367004565874374807545236075103778458057006149106664049193397001509671752446538841850017093163191067684204880608747754637921263415857701598033607860954012087337078413379761166359660660751963357712930670323227305910609802465428835624258222768183092327373463952231417525235198496205864376534610022232094343312956207084602769432490486653340564801795266859731728980625854556856734039098861039486464708748601063870687890018780972815722700128810912614571718530123118212404580684935661095008609971532599974422502177576799831370855346939136282524334270222523257325734735717177419615055285575094057450358363635601194746149603153547784519208828479909760543099771005452571608519296840007278065341367218726962725367133197663551873318441417616996013168628074417832707192844388087310073114164643597248207238114316177576289155111954663777565239081319640491663641007240844425207739583159948112548144471848722358548255343813689890083497098928325951289555771570460194329347132519280276847990690289425468670285441077275651165485584984373888239304597324346010877262972237955596295535034840811636205468960716148273328846582836087577807030587620145656148228171551571140558434166422397230245873361651347640398143405540334775555202625780391514738247745906811206731442049867399753348390258164571847985891472558881169320890647379577766036139668932578835057615383065466741690578605436889303634991429218869365128953257747556441694881311468659378470941893521620128029326337972816294242624671646773117471944057550952536136996373593873655647781783615398065464623385491228339200393555847290037342532434997039200603883028992265612819704553575962576412804260828153357652401776916921301670189572089506939585676727097262191746820515323345824504591288148802926070203013121513884086675493515439834002262476900437268798519152729791297430736962187564584182710240437378875185639657826738712617904713379833885283538108361068665440735722700629531361272930829622313994813163521881720572722304412278702499902849989281522509133601809862174436427196012923901155002874311989468989239299612997285131952322523843550186765829561627258297038069834199074714780292730729593213202352730796598486037782512642622275041732826868800520900573280976782481979274349986494271427920102280931218865273817840480598833733912634940894895744470921882226981147575773235463190950041412965448205140425253729108097453158101969999727205599875141223990676119154963306203545858712463366193140257101871623629680757615659944883153556219003213869545839099259185575446660610350199158934302153596530516198252087269426119992835098687110276611271277581464820418721434511538679531104131465471604998235037403573067894086057342846714167122371277364091856084272561545524105901799493551197918355771722456319357177870729939856854016636761164176402405588111978317957469110820858728978602136159908613045632409377170230628077889730998922930226383017391086596203965306179761608640938459415643376746302864293883997361150054268284811297610788148104121906452213578330891443263988156854451100737029406933108268596778001005449676841594237664349195602484662981368488351716499963709622612266545625580087075409401901082980940978143221214235020754870807609773778253907120735283771182488701175906839788621255868783000980998478931920505655564283217309735953743399939731151162089650243664068743433938232082111010510485107399653326081846142427812011093672047966433479797485492154913673755769786097762959842734052157051487097773953749311421928078597742609597924794481521748848254951994270819722059930990425360864809041082364483817522997534684230645972322368829069545613965018977404739743026930244317254773266013482742321461069924191026104825637753995707148686230004049060356282768633535594711775842231716064661232308354098269391337612502963019003274283919262384149277670543266124623921043400797117775756145176204551724705544247102530233980227592178476205073178514668196056824391089910272797713139340600323271092098507083183429261358024038405621102829238259836848628656124320300729517454641354028907070601246579005898263172001851669383649325889056597981370284728570559815380966825906246300360272860435878747906452090822725372625714911118769016955214971457133542994420625306024087713161131884066571647616867225680082762558543515766873066272102369458641346879303777965532263429822032465905196744762654826535824563167834544395777604865640463839601602452585424077449927670095718256429049472705589405830899255994356956128691114723963504676453814375510062272401401253043518612232371581428632071736046107010008678907475389993878670047023335437255845992867880780831114950541831098192207972155603921719564218717539822631620931429318028618057634898367380445373504226654825391995873075196666163488853055064524433219556259704263477295288336410537830778498343890137638319775777758474736528334158047386437304987276014362152206986550896736906790783634620542673438807430938925907264199461451019095600210659747461227674178051678153810243693686304544441467797755897631131647450469900884555708578974159114693809124978728432502577322578919203041032972489488525408366595780926566774869607813825674579832623386099563860005687394191678661565687003327733312248241225087170060924428496398143170327643377522170703740648873877825526754138379188102688328005963386126769620792839323927037446541156434938480671825601071620701538389575111615838946263451935138202098390462143442922824478331819875675369006701688036399448189765260639492366519719795381374765342623300710918169136998542903779323217183473309147046680707485417449070415058137183362172596980033798595814317025793039765112203532950800887702011553887093250894713869576791368626015033241822921502866610535815873884002294517613827001234523861063065301452687238302373622613123749794025941894027257192387036866816443443602688216761573331886517949492735069631220774987721048264468775714784763971145138224874704166670943158964604553246532111118143692199287362457364729909480849654398067988263630688577606970329612275691787978292764848346509370078217764629166430206543962468075615096734313942183628630334848736749124764522847926416189436043708468747199878831865119152179187661974700028561921741399695265781939823482434527987772498695097480438891186723922140004262313853580422022165883296011306367677520309168549353791748509478518214584450032366244017660486869242437603568251705050794144633534345115402346658614629576517137136568578406078009920752182596869258981195049240611866092907470167175041727975402619718299886285676512382053911725540352041480083910542274151030649898040628901773537837537955735486280322536150290437487775810496443520903467857998568194974144547203949556322353576179858431399426151906627900842886614104139696658594659023417727928500201149351711165409991101080579038814401990472671725410704824601018819694473487887665618019652938739367705048383378662450895674440906183119934725322635034704781336564631332181532055593581410786392032024697870339899662968989743587670036391905747337800321048020608379329844624551204052041453771383925352546342889336908134860026799961862457410128516086850887688888085258613148214126736299960568473550449922274930977425393615715564931417253950656374438832814176836086734591520662697778000263886619269442865814683803797112948595010713417970452878583674682384863060114597195301743020281066743569826317677601427769848960738387082905688422904817112508909179597491141634178785647643684606490531984857333707045050395431648949234248318989385046177899521378433152578245496659547172983339364366703519270265245615692500650171554043368344262281516916088847612589697198196742756270969689697576668177666113390546403344060850632484206071924915568802495200808024360766672882744000043544509322818244762205457773301622310842023794942818059856061723576128126001550437067671695970604899189179193788706883093662936159974072381266451356637908499949982143177243096781191635452190335972017524474222555249484261877973693763572654406253867329734598699990947643584424280593581153533969093030317587133995913407662939464462648314459170216533051356392562027274138898952618294343553285037859636778330641926033347852066651394625012982309450230444036897552810827898611315374786326106454980261928004861166477789228798319399200544443528127750757061400831680521316793592392306518351218202255098072411152331571035063495993745934606223021320792479445814236653917217574167201328675647661094949099253486241550257069281496175519139780607237797974342952490074749545791802807731164483710799731597863130467262581809491144078683344566627890809988989620605691046296710202174993149644479990749562184867669504395870573035686138913248583178565273169298039916499792145188729179523653798515247508996047097173468059942183867020846497224311966523963270628441656829359892534030646435135708945901398592581388755956415899532636293550028595938041354031055841184911204637681653648169809168239154051006685425930656107525148798498321019696356128905735784946509961411871227566897723188289554014072149976102990810427621945836414553710016322279369780057789644042969947148688854031799876203465822196625660390692517321263402871132154538931110812252479426466185071316783969922730159315483441480331422142466590449041154958312708987115275140212731084342123557060608037676295686958576242391473991779761373506643440697634369480257507743615127567016200815294404586678472148338220352308420989057957984964866463739341771460026406373699992093786873740444744826411752329061210695624876882535841254266034435238001314103759939891503006905813630612764312276060128144370093988743188062052708373275917302101701165985892050045739110540756911929941228334808726292073347739373832602977350935499161951111356941282812136653052153702691780944822779224617069822162218022672137425590231284818625855896066280286167435558714906860342942994386569780316169793085524291867073964513026197611335902954282707950996178428534165058574910608978207558431127512367310256281090700451564398293839127850227940666320766637545943118290006058787377054629862501664874509400277253008501443500394500871194724236341916607033849245702909259415975350030607549002515104183927597776531092942685691396710163931653776895290543753738981723918173729970997382596450936102428361005140343578545995320470354644511928718583132248925031867101399479233285477630539583968807406089359262929858399036865052841556802586082544775239514584863046095767421588985285357536211146699882819971822586832287601566131683672077344282654508670238337533235232296200779492263821518277342944494632684211957917996883763484892051276842287933817198525602955406784287506910363090091080815044398397567760168595910929555785320463567106428605753537713178234338266007522661916728639035704045545506036477554256387842205915281272761868024359618973434792269386218145587590999360596187934160235547946450081919435956018573141815062191409567378154508356028992943466733839545866332793756572064378239217214875791940630654671971680386602659521331776563654195840566627953358431689240152773105667583279326191221575900412570474334578187184103102218582971030716076972100374786944694407458225800802723573001850201484049669273063418533416714068599948098575399856469931563723219623576335945169316385660845450770113243877631272175710012214494138870923420065378091593676488650636243821374980741229620659545149831846835766318660467168986158360783179432683465071005184149532373053534220160816165423586500335344882621454652983290799222886502177762252746723956420736144238632696082351462299573120914455943407083833187329262603068236889796322955301976522918420557007387484953978212258578833663793579634923806487790290811130033072952744144624051635970189141118043460806167827122549295184281921999275205957880312697027840043020846890529689220417296820858850848641158959974232514469689951814695460808064492661032698590782861051714873600976149476119838123462942633383458189344870705925743046290301280415752705165802005640371322706843390739770253158629947638607704865272168259792820095193308773030985068600911199909670129489108243057323307318457837831918595483519590544782883071846156779317196967501473971056806534693604902570008698395407699125367427534144580625339472431593243195774057459210355215558028670606422316467513013503068050157057532504065620528676777311092886159967145982066220701092540916487821898490944641565122232888277976419752206972172683615006123885780531448708017412884897443428787698448545174006127856493312336271955026812455903775863793712017103098793090139044497612369906445301878116791104766338671309451349200543174112254537117427571038489240589037358916029635306017912294937655319759865765545606376688918296103759981789532278607626210198385807994747843736742700112700716641645352837472272504381526488917314030113962033970480039429780326518148248082482180222839851051457592010088301799578023841519165835679696916383274613425368714061440045109455457439509526881959127327370309755756611283707093709089722862137471590513165676728388408481891288685376721859675900376656687194551496953495234639180925755555352103489370929991876290983325997190158965374625616764656108309736356992206913897444771713639102305754219414012764836032683453347186364736874014983323832985267906848498320172549919652118518099867537904086029666074047073615099912501673270761277185643146923960502403465849650623830600152295301763722170936720844751920126661961322128987466843604526351461405353683402750727776384677237580282010801927418387691423388568898031211083695244142868131735295190183054617371773746668397520561805365924027090091570941384919939033860388192013005861469804926866850703643326240185813828278663238535727100233291379937944669775744994650397424732446149338207906943816003053082843378857272969648909914036695623400529878127248167691915708107612341463616008216916617264139717098558968568625087480841659928748213332227586328409158270155344617700030810589367027022466168703236547864509538493782216583225246186099527169821238421401978129013330161935065337049079042709401615920529560649734230373305975562052505793078403418478933590227455917120253538389962629881271968089876901362894226582022223499766834226701700320681073261879063366754227134722799019716465352441694195311439354657817594831759195433066806482084693873081483627496530480411974323360960932885130180640496368138466184043275837574488139188113875650433074184974049925806659513311499286489193666880102472020597261451122685291112969879309383082114691228400688572839822938418442152030189360641819492749308936815647212518866999048138662388436759085636085978111427817740316673317821155218432820144342250166609284851959724665409893116149107578700863894439947124294686643722914826819861730450619293433793403275736669847133831297170450175883550275467037330213479697549256632380165851818028120662317590367500625102603834310884586780918056493456278661376859432993562651636543640746418191777212292251081256347407306406395027938797397374298499767721694967005336148031373954563828581863845565883620413562687045318029819048899547299033919215445331700852880967627158282258080935036403578095156453636512860141580196564060984867601672859629453248991948813591103213416225827128508582685849724822213926846148729486297713217062525978545811169146295619983640756463516105722627809482947923730813139695625193793804720961714908848176571779261687180790750704544743616871016122786568656300204101750265782591755328353133239508384317487804574176222093413438029768391362002990724450225786766429436220229870200823605596678029802495383919998445062347729992945090245311558418189693593751969345834127145541660610433942827343350622959386244529050988586479500550663384106794479346715874158063044303677220978068631273995310403319355425081230954031970891702779403847456927715906950204158203225507287298507262072688279672140697200359744182973754889905505513132859117522764939043438145520645180792759680542951849744092105318468236442360522345407356809616792623968440332125869563220587977116099519762052814967973981704519519616479022833653690485351764760859216725027322145073491015276710056506557651864235442144678350952998121654896285008479843968207473553932732606960160842776849037828766261896187753942042232401881422820118621185715180905540057628452043875548316611573502155846337374177848453250307304673181515747395762033971762804174311209537198233313037907093349124700058687965463228153562902650324229987893797443319299323196350472619976725960465124691876750184816287307738912540859032999754547409413733413552641023743904537957497452058900370273008009538223872594321691820782648665700033035551446891105488467529237311245591032824749364475347708404508998934233852762421905519853654451370585071244547287336737762786925996020313326803088879135523956417984735684521715791226969676227652494534260567804462700787265605079157152178126438885060713652782447541769453823543684222370648864745617956360336235152250548034009368611381531161474947202062741897061915742086263176208970573210013100001809867244030730139534141453836948618393176270858822610100567704668643610762743840869314520275684239150954993518868379522401052140033647397855778791686077253921042062794582459483723695867518438534249746325098024653608994683164050495339110881115695942429223545207304861645942538607726754939547662294930181903477246506124960093571981111196772883506177111149959517823745240191841957011482512932745632459798724099119034980594415628653556716996718272626893100727746715564185256039843271991163580979549843459691469595412407321698025098319022328742648131219147415643271817490902105483318271756137508018298289204181612016649464924434188986663551779777084837129838798049778248749760019467684580686920932342127793468851060133967530423141238437031475628274681708447572140818265451500548302177797400949355727484767967962173863775721425348117564468914725247414396185819876107960308907031534265330498723804468838799498681017221399355993858763416464754494001735418672425468130517393062685044891659506670587374550433270863999814089147615496869491103713671257386147930934710073252372995185179395178772355422723191656409771498947164428873033618453011756048255394268575802854847364115083326478845236080355233387876710195699362413238242345723804981699431083305775500369680597011523508030118910130502895189254900487577093394811737577261690870302312098183485595371788636708956270005454598960218365332115421782170751327627922675586922015137990821146056234771572101890558639373206522731887883423925006696020818209480730472228026375839398684460028599086013237158176239593469077929188425696898071821578054309384574508993248801192597386499225624783277903006010661469769851706275069194443928718915789795368284104725831749301280367288592831016812953838397251370738621172355709763351486133212721038807426734015705164920743194748541501384116361211380905369263090097350364249588503062750376578217100148180008451659671866783071731724825624866735878364517685411292597899082817355586495104603419356467503994351369368341032579543241944528624057654851896833512588016305744158947802425926063235216815992786580165143781078784371970314922414267327363846461520605139042453497268441340223764000467188186980990664833835434727839844618457753017706961672306586880717724928420251441681420170344493416641157940154170162152741569430810780577865768808563778072473505377740137074133707879534383683461289541077072097765429315021017634708696518973353193192345109365710176871595622743688819289423158261550079345762649281763913825430677253586749089498581941425453980903338803112648100129152964338127178902709339146102213621395681303951191854107332962870092536522394345775336739610773026836993781135739702461028921869650678132924755747473047342129451526302483415757441440256601549753753395724761158154613902270634013180957995338135406107722829417571493721729087487565046749349528537300851869075925675586596430909615376788959246546866256168334190254093856901901973351663922794565446756324939459799177527748075964522398351213972071818826181702129823151260178093241295007191395446625490676767478930750104882399714207895313184206808358305735239857376638568771734873435293564293392852499206625002756101413515254121966539053809728835823346448741055935605261326457258377633453131971347095679450648879038447690126984718024981931735703046640042073575041878134124723377716335722716468581153600864727297445772579037279369644231859184855548594573941691404365980609608704916630762400002687176154518062777338277839681326750277111782966848320466105907312994441073237629306430214858648783333072651012661520540077914287195036976170747352123786261253469317485688710924972254846701793699897667136518404581182880668662097720331439598497519439490845215519176001686868923313577783341198112929970028328360752610358528592486199844376097809026587228669371784351188625702338360855847711455519538666372720603493350627130378054020294170338063128012353960656182417801158517197418444028247477233247809325305963289197333545644768115869586052052296690237724940657373893422493137192363491758453017928125604332737276855724318693633355718673257689016939844993187407374035715589322986433811281647680095457107655790304959574376534362494819132652777808936902975249589473112484554828811469517285815971153587750588627760045892805222916367388577652679795177719148631237256888843156313296639389565399361704948750259582423063062421894888550636101457574717438599353528374595008680755002963423943370132780749960949349985429444842985695616743439988447608867230015832034975426894757677699939585743883212255548994205670240356886374701538857229523598974928866987405171526693901796957276322233762240742934578410113761700531300877704819706556737088893802596686839336496335413898649901397776547494506135496506560604626711807184941120731633208905039851577069437816216931339039924013454648226331374756322633876977113301726684390263835519877983936768388331804292347011138403421163410304472078941452375696566737104358260140174356678608742155871674182577186090585282402559334019925255102036746833916364816992831366416951378765436194361943003825792590955175607333742749057150135018351870869504557795867391407190650171886918197941688953971957898885792321776957826235187145999472402121265293627338003434980038577529979533717086331882919728696614768053711495877601044779975295483540473326785896030596822027987460888455198371808294640776517090202153971148248933589789625369049876790354354968799922719064056235157932457446696171756487452678815976621286383640942714261345674216323371637417189818802965989429578709330257814779815022788354638505861158631615926952257144781034261861172440845804248769515858689895562424337442010741858410244371231458742334788776849651514991518919231260324898104416177785668650711510126726305922187213944005359460274903424922208327978743831014606565064368174986942181342318322170555303141622258368748668023025668640991694718260505894229598456718759417469466887496326393465545467801751889270928636634662968523324555544080924400576118870956996512818629900677388582173885073848057195671148834819983159635500682922828088881604505703726373155756229632090369382425449495891256853080484361979236255319381841089428792244701720690604716935861192456558742370480087854036909196358675422988429831290645601204359130800636010736320589272261090530012014752620488485337134933125402722858756133120039703730251082332346528236123079079692702538773808375982367880488301525238970805084969233775235564770836404009346763391351299260658082751352902126645119669467736052273252779252593830334810784419793294482075901086520315350299844295067623646153891101143178200306037731885175272361938064537380715452893632990634718391609815954965085229006537020432861427695913655956662085204978817785203007366684979045477756827157127034191281991391079765131593801596267801978958190270834720431745199004859608861098743146077551791729508724485788086860893038136023316142631544376097567887284560534401991933630380245752408774939238029490845459035425591245061305467488206361120769964754750396282599350673186894141922084470297858456312932063896453359741629102988231932026457390520942942199220000156296992569530003570680560330238679022673244146586809020493060384863570272774597054056419785686059431996061251150924751645814472555292278113577089071597536821330435817185055632760439675903796925175120556201198440769748839139367285425909315011993481659367250592908773634000311245245588441415495516349090557332983442705491960027357162272474956645989174161622640954262131018974003562388399688705197064524163021319340924950459277071723948418990457396987823478972611949849013104108528794403629536804822395079773730925166225588030950054965370757157763983351796641177665005880136799112065294396376340074255713550125871554450636238266526206421924738556621793663604641844288568853557901625160965879997981266601454950814113981199837155924621831342314377134658964698952499707717782696357115871776191204651940831540336407515207733951229985342979647927194507367667188740976586991503910807598255630422546051148391228515089679904504978920512729354684526237596994964460423381268169667982183858485642979859444532071867497184160856165573053933853097845162894094453019641326369536741370974854127400570313611530303789851546340705319792473190216483113634159786035065734564596461991537640656181749086608949523720781355681658825156084005963385760336015591618279670812708293327616155029490922189015343699506599947406360396187755873812254297159085036803120158932726568397435644264632741081241703942489275017415137542393631382058192944336720100029740077810944783703109056698686082932648074642849118280340693444685034173579790436293489740435166317718049158591347245143533892976112122659540020717209925198856298390563645444580072437252934184488589006329302533119202539186604980716186257158713269930578810205583064895572193830067647594203299340461251343759913294067482989587295679308888224093141415136306443244423160141439958265379631092849504406858292053953721723228009839716722069502914119333242455075731007585100359434328889408542673014008706090414197811930816816713166594021644049584799200532591988065826465384403552917188649372686070378029767376343219884353215335995439720278176316280306515717609819989963368224827425651705778076792226097153346554748502907885939821817514821832602117196733934090976619553624777687454932486354080826111129711081993304670741144050096404345652130830925200543997667685843144899048063111835352148983995965047040425495485584865111470381684060534317120694416735868497949580774025570419596154660407186303408162400582159289805211507299955979623709724755930580302077263047544801909991637232083246544396763521594128783642319418403914903716124805018644606189278993081590265207876266560812248058404775816472678077073456230005228642941151683318509884670828798640480738169211966583359053019839888474772575546533858264252381718280607267584506242275677945786288048452870833994020478308065834829825699034789712438095552349146976657873011290432198080244608492299584443233919009441669939725462577980664427688161506461416183514347868175101043595909350342444338612266556265949823441159670601634289366967357249392952491024744947138057573083826006383844765523682022948645395461070622406845630423847713165423888670534042166538235014364058744399565211573298234784215737644042467315129291057050268805521459747117307860781925715141960195537718557279024557151864766491775695247969975522664099434731312081984400710602669025675409700653001660695588037417705710745395783092388637813654248131689628529112645665772822193848086496172390228451999728008762878155165355693898910914938199801720141464334435255613339240575443936969266892875019580766588766889833894730829205707622540151776364088343105305842009497799277594955288177129597303298394010107580114020891885505806333256116849386683638090782762654917069212006700175366202923318147676548767272867197997392324258203864785697286915513753671467514863125841067489708778722868869374392094698214440249589127873856467617375906134723750057843679374110830795596334734509372647229106639012776844698712553156818241913171578339999586515678232378481046076951673052435126287803019198503898348473920189399296672075978785626301821348255339890892456229359870562120743741689306709143810695032244552424918077031185616027803591288961720373912644690532644187493688506153684059942149261683385417475007402987685501890716594439713450057687251861433052757026437366671165035641972523692162132563440624244370733305168187705784769749668950965089297028045706306303785122043048585565856425176726292198795472823828962581220399247001935936382957328361893221356116340300706049031303165992878945480576669260032035578542458917524560057864606334105082015289467628228028712560758649066380103973332449850782381217409440090223643497992560867434139590728996585659029079804314513404689448981606437113264054668614540961131784747236942063244493951278411317903815019624479644970662564247825672359174148559528139928467654325148568232704971913090305748964090306593441588349304561929626827111023354997568782445545094386175905787760662501484766326668762186665554260237114707785242257536765080459308698020631965377299890263377810311729579815064663543924115392740952088077227526764814832631553242719120716314163977236240603596327776469437038399319591860518165960044086855554218650082211681326901061438123431984426622545466511175477790946271585767020315994268003561621209923218689654755521343341109469779505412134541927824179812027597183386437487651895698559977531901380446220205072682398390301237117592609579397854430588945937775431602300012209227773251629394034448128608284908429629198968494149893441110048461626142434701449836101085013059573936019483732144925546761351116841833228693869825764351396432022164559063324630566032516677412244349795027852406036645383838614101122047680474813736889292547769861930223399022811410553630543664471317151788699449107221864767252598662511400561498999360536429795401838968126834960687972364862234368280866207148503429673628458776699597362275541150152973928785695833021336968558070327987512741853357004345500426440768575193884125016602317680408832920182920423679382191907532854185859579233631240223440204350382843588392348255906223780968955447529944587867973732506142422582438402929884373409580701156220659455169362335267158277296617177975748378093570064516871251697549069318984923052943935417267805970083801954172591575922734022257114723278504991231758107154567880153785325307468198799462037083189647243294091405663490782633745503814178942868907433975491133409311837876035480624356856717077479594625666187503192059265429563938869212304155632106863320352695852455027429971353550055705475747285483991121571489438534346589855701823697571316935110358081150435866059189764216972999154606913537041764646503242105130671429590313516356799767677864492081183418651385783264617661438907334715240699553783665537974415668930456706116127574983608557859776595677172904769707645026585788033379091676829934667621629172049015902175471399582684223925383375398979506284666427039228407107527712109051710218497650513918785863404219369560034733402976374486137244167296973930884201651949094919503455066525158801281010892487576022759527696837436745563376982223529116465809673344549702270313162066400976391909658699728484429405110612356626691728043937609235784836438765618175802209807936462883929467534945266703300742859384761038220417498561050642445431418433448321598559698460803923416176877610033526384772962201605822806682242636204681490980281559825090433659329343692661554187621590653176761293406946298279901980382545635288848350894130314978493715965250249591484491443222739384515857511263593999443066999163923625601125286998682481728295957501645193361956656079924968878355224244037916529899032720405571620444150906928336277408915934021968814566645851715358051889481364503860616852709612069558659249684589275050094847115721311826235620336933897859156754495289321856132094543622212474168174978739673483361593919445796950416533734077673450656882020624394919508205385569569311910931969442031109848959244651652064861679168325498335897629613582446897212838057628633046764985796152234062042481975615326806041260089223072460430413359856297024783684721044266589254513523773977136425063536155946795811162393793621253576621762101025858763835943538881098026792789045152075048842203339452623365576899898316036480005170508324147775868576793047573363484222784318050729956182693906204508571125158369662761546507701700701180522502980558944561672691042594139258560330959529516968207373735682788726630274228575719087441788919422331432198138580453801339039324004381412412369716945946289673764742567975966998661226400476764556273489943765345148619877503775863774169457173152629628851066592565923668126764424819548633169264596941448245222718615563957214167956583032474256665668608518992476786629713907936172561906228926657693890219712780490898075870636274566015832530981352921527473890149330578600997966414397505930681372687164411286192511077929211519948588654042537446579341533019248613742999893933146405639981886635070512111111214512239782148858176539296475377993510169419268432826853284662219190552808906286376099771535546334168250920097532290214190241882842332481365905805069286749817381573849399344485318422910582763327218909076017497206592089155233178335980909019294539277654242752232110844224986004213402516507431754892581478180861035956785546232148283250887444052586139021445290711018660336192339318945256344282868083808940250129229591615516001473340891251301714109020066817783054809963030866579191659182587457174273908720695097959466203347050640778380639484289643712637192915375466395527525067173688097123983445270286893717808515205936594088534849996040091236432345644917090131644940203505054507999029357538602020131279190809206566223844186340486296288804395417999362802369656767776186055798787201751245046484682659311516372718373398841698588253194616713807625080695593230308441657234418459965086807056129387948777863988870004227891859073454883936517859007131887067864123940046181544575225086136087957830401210654235003978908180522111853771982401335720770794332581459695615093664595831705372376817395925932795863174126091218772051391271206328253878218313766590681760704383602914426679703228701473149329524763504019674052604527523465748163265091188264604275212855027044262917093900882038494490062166042892517348856130331345280127379637660141131382221370804490676446271071820343690869681384270426592733148062040130404708490981158335884603126184998782308300122018494042372405277329838842498599238660408837669228332940539226860642805120205939274734354174499758367452305110286685450514382670854927933113144264571936725237260854243845144737471605699402489726027180536528314882831186779910425144626597979305172945204387875617703350209423902084955272160388472132012209620703946565417308299921155714713429816774483351507276021988215243573011121399886039566304430704328144139130763643598739195184112421784930678819884680897187182483271520194223422763504571422980374009663247376978328213321425069437259852223870898619611576869434707001195080139235086105113908056220372365191023536085602253630267453505714158570965750554918440901429897273529417206313894588017397427357621006679836014796979292022502833162307609564388715425107480262703500493992105945903296954372982561735752069603765664497519703678468680225251731233525252604372093159903326528554245100207275152581997509852102930360157270328115449941668142704245742636286661543829179648784429816985013845035199472895695038521242367896929022480217817442823885477591132616089807485105067114207682684812751054361781075838311393834351035262435262610575219382475686579453223989056217714845619569854681017128948417973678910161463569876458439003281434533532584800852268698600220642801031838009257203087915575268492135830422312459786755923147919803696323527900565414133278517550738437174834101430423815283498985614811585336393401308177413611771045248662399026091032577998446023035809388113797531347678130440997368948042089651093485201437880479913631204186994047132441737332046314961295266392854335085222699087474458813549477607301048024600242049466342837495002566954336784348048813128602202218005137627574116757678953585259922835364082279941424609220688012469485908805354276422157849596947734372898286192115056909072549339811500446870898542478112829201994091612134297087433778971682259725802523695306396471975803003881699720266297011619855868851069078136244353324903413653866536350440087223992550181596877876884502339589097983061662683937923092288531873587555600542106220325008337481413473546878449112327575262156470076562995581882304570205230287525316086561098567695914985645354647238611481789026501918818815410298740568308358856532282521338533296994176947019146145498108163887414844046737893795674968996069805448184149990089959520502320830080086538973396053158601979786982891724121867817440683902265952079874734678473364898513874503437681406774433919405861623393084739859329447814269560133556293943502257188631316842019438296268177302953514859358831031076284323537952317952198453072106187563542059860455082122605871517503999779209469712333893398906520713761549059342711313527386152844903913614831555884774061828710626440592270742374395965510686724209783710032852042756583170325789537840674819214131797600476873454446379774090574224219527732348194252171701896339245231016983556210405053255425254359998972397744566082661826290168158043250361955144064274378885304047586611046510181869550623964564756870795017401578405779813608218380471786208407708524456025541005930270910503564741129088733701788724723677558173014343496525951899590193413971110138959367567725679525837487674384826302049964469202821941539246681073001171919372291617391159745498557132263339755559682363753897943157448366031361453631653555428083425450309963178508291835943797727523126674372867634854266714077538304814390969411188830745802016216765934319027525362168623385634406331506073448492518000671609842572728390405921939002954244269900801830343733432515412048985868901345867571979746057004949848654660513989161585968156925774716678746973431950924889883148059642349353234628625266189889233621649085186451117332718139597031271983588150281908018148753352017045606657483358766204939630145678424032184481416321936654752053676594488759888870646717861767287617546295476211109492118588132170859697464663156367793463933167244233932773147034776209763114446391189623900616772150698389932174805506705779945899036664733768577549585565876077185693796706483031891433917978645644799515377461148360773583492446344950584257865565779738072533275049344519683885840674063711140591342274853652821340575694755125834963208159787368476317346295917252879617240672216344369689788859703483057421399353378517606165439796145013477751562757264596861415038209757206456115597156432209273618408235385108423246236420280849125517411647122465202270107569321824818229048785399297586841015227000468263429187260623019317510122319486401271016326147462943049409769050140244381514798146643597930392095995986763200866476685886743699669690194647902988998766540127830016793440584317176616434655605377269709031499881321591277517758087202654741163446609512684345438764399112038644591526608523159293472514264475631487516807154946823612532434486504064493184703492199727497779825768697822232279419357091306877529210570333483160084972558739930833306483536115113555206374595534098150851574456126665993772504936745382980095499922475600883089418994514756182948085167587277673796260740126081698406893393470408923194507027601687792263458604304062462087386453335531767237198352399064806289588463745173312416961370435545568691121595605370127190482013798418208242317108352334316623054188757648650158696948536439100276813629607681760559140823663474289431236138364196291509493654990549917471275451196172329332501748202854477145437117741400062067095561281408273687765131201418848123845601368780928075176925805128043235139185848565778948220564929389214995509479919773040995618707645126616000825144280829535807867408751782760062933931263139868721793671462756609220479991391275642502773159154045767935078700359575147200380989969125614760405078920384416574966940094222304093399054939835491091863637849820087969741412399197232896527992390138493741654744734500949706881448673694450387187514470780628839621929427101599656579837232352732118260425746709243294958320887339428992540288834974184779253687926914301402577965774954493142113639048092396823836933482568434295259149227132632584522100968732802266936733930852986368336831650240227123527019472025564616990238715098771502183251197723303795824175190387676599909658765220266359230495485435871280645884396548662057657470997527070722632057286076997522251049413731449587018133679988789251167347701647304627199349652230818822924472795306561462435272876653313909415109362947316284592344367357330868611632476059624019631589705834166937491594752452648394483045150397719526712729283380777854337176150587104994007878625551626936280949223140305206917124248585121018395671217181300335807255290757734734170755382599964945446044020145776070810583124197462478243159193504516243222741916155944582360776846662406453306909771866321142879461039150735342514494430354206518954837414118640705236994854322779754198802038506721818620776576279570936998149508974435374368264078561607987599728284480198475138441474312736487273264088268330015226891367987058044729140771366744823498314406341750052455573629802372552442606109791389814166820879818224950057461144752883933507362938311115170734043455886877989020250074295100535416206606788500072099046893085880493339518077998250663976484512602994715892665023018592372954208917499269979039192776766333734096840691302735022371294581499131679736349617004262358521299033643626754472151705639643061823753717108845033827874166063211124774453693129929133479045323934549517062202191107765377531229236360107134999186529492152563971350116106462672443276589337555362429746202967333321612058567330725704776890251867960531135461599763077751173826575780881877460954428858160956780985158203773498043112503555706172560294586223363753940524884763169712682327094822470106830034190162774088499775737868371973622554917719802959801749117241411429920092356318159691917425491126575400915745363684813514729205146606986921903488749887201918539073045487367193646617666113355365175341047045775043796596541828384140098800944222364698823918665005632634631181302094698039719245371503789822729530047661462766997582507658948675665990220518228632028291247170076597986811203265360039802554634017634554591866947620156708260467436813626815973859861942310572717849199300881862037430260401444620091654235147716810406661839617874137339243318106061500659157529936837896593681594283821675045841690596857449337579118795652637995267812740799418829015339071948255666145428554391741512343379172147517527413355952507685398805800577422957639122740600183440210011571402737708325912513929120052561081428939732659047438790403366203177273212342696258799318062582721241747100309678868884820669026677363195111369855266162213076402312014558674033687702546114891549538065354715777105582802881367872158195126484794738322516045501730498550186778218039170853955716589113053559811406512057386575542405628728406370536221738352793052180865192881486188411467075953942610851718316529898403104990411181697544546809504628902746038755912624533665595468353775738946926192173586534285310617837227110215659226220441944129030033060058135212695020585165459827983226972380356049633231606132706033015477636345766981536947508184396281017644258055601189479897354104983399702948860172916106999102456372645098848599796089947610140782792016290184536369820710060116445882603047322287083521377265978521076301072863363327952745552398813039047092958942725387199175295174294156495421942215127503547847738819390882249440876375787973656837571365457612567371794838798436439025459802860938726496529020792370439426279663093878465470531564433090121898603753578319197230749676723212954283607443765639998360477662129709607706826294282425169310745585231039608709107562805020711922290515525864352210994226123032932337440368466293169236457086068353248486018967573730306668231409931401290385279815213864866721598614945291384909044120693316112883417089482042153412845538854665972362548634525144878084771576198718656606201383007466951024149097355633993996756515927686703953765021992638904313746453397744399562924095846881678750196568269638063407005021062881250363406330291947282301226823353694698643230571143718108891635611856826402791155626961561019752684061186878184812372518708170896335769940723051758748680824178467039428810693895685232523733700595778136327850975564281391000703991288683014124617197664823952920080599328896396077763061842307218101830960054079451752482120419953040406619927948637969446161327515606060198101387909307581403490124925154737761368316963984005647168498682627456292503736512627228026896714605926304092500216207674201722847724742876463472261595562830750891778723729419938200199592078841549494061697049340472071526492128887386227158768689765868001827458993518377742317853875291851587837604441938151218410280655151971127574373058275567327286619422681451164886182573839190492108656469360480305945890534774245209963819592609203286912639187042310444518310097166469740237627125012104682687907217215906555944380993569598099730061800872098591766402181076883984298515789241084105913696481699506088801668647919653106273818273653205166362816398115468914072371877873000278433024663718801455170441287507277098972751042547428527833969573587161550313648010752621216027139081504556627316201196379232254374969729816226733169002169532061849662268635180353296998161225408314512950574879940033152553075814035339940671910307698039554231465760068398220220153501890725355248110255950326297002249047200685823051590147169826966295276521713424849098314964974176088623025986845652828475800431710816127347355226371961504581464869451465043837322451098516220130114142561983987141192019818677382522703590868506864253070523585872692092904618865973011327424535128508519965197607898585556862319987287794899766698180764109010382704683610076516544725798106953103154979527881986564627150232654484764076403182727881484443635442205133214988572075747965048373833922511060355083741048583466220317533013871342113033291518206525425846552297944206216275822598061911449738724326697634578222299406332197231687724962419005754286900893023416504836589746426608139855059105294376213127092442381553389126949268433578115579859297001665155479689647526804198446866292676035533559636425905552261651597019791585622204380457271025194144744950201553589941990573891685573402604183121105719011078066901017475625901120975611617437163977424767442044157826899113451761860427681160958465838656084320246313930109471364393175101058542107908427209690816877617188958424010706556269734434597721252186309847699484094594698192477922329146654091772781784601438576221768069585917165331724057963456819198762913933311292931753585633173739582669869906640868683016423799946415086459384758934922791164462828147978228911641133463137046543686910620784263979541371691356026042951485665721959501402232088222908204463913839124611526608503718450425109349955402354866184382684681932097363428282881083605396982850267591323811948775941265418155237357845715734907870328224243710285598050705058714115867464169316312783742824117382477349179959245857425255276482741446990071968535134188015306997994670223736691347022769254074187328323415611814277777941931797245789736550067237917951603479138143617091817990448585291856767732336156043503386221586333920174979355837690721421221977412085064458903926352282139885741519874684953545329770115538017377598497676632764665357127328486242048069226650680249858735429397693366451481132432507572948863105472157060284631516135362891157793555571939313533698394450899820808815791627580316617986513580975818405048486352450232984957959600283061068289311407174711069698651795353994840381024146904414267576592777284347830446712566986445648179633980586681453572979249829768845606280536598096189337895359932526502447182950569666936763166784429884502995620868461714810448190839351185825315997119067547807334836549111042477480404683467567276330258632919594392066137181814813810123257618920009786715331003295873952186065821297868381544319735742077169185169874167026732367556764323287202991195839052460216601097015182163814278170194546433060362171609187072158760499610950965248930290854215920139410510796485210423015783775397316986178701420949086640475456625121158239572130871083697449111710666061516729453645460697909889369959065490538854971550890656035641737577617354127934177413431130628193839910724824109025267622073739033508798063110947102834563978013927278979668118241325029484391247829617084129074492378728131758372325386335545813816219576828709378841260750983606601345370132428242395721470481121211035019807814567192054773577579132661612197783229021424661393759351332068587504686039811459452293234754097366021945325527562786825835578314300508464352861693259529229472890367944060343385260630378448355478759099200758148937298307819401211359057127112579788233631979510920570199642644707091292294587767072059827901392327491541480960563887806840328227520610105889150142406398036357013482924196845220014267888046586458302738757570578995042578490057338385059711321215455819986301073305046935887752764740012300990039527841874586279698651980724925360845310000705866233645826938535882421653521962647873009756551208398311900508842228718901521277185838424987476532885472835750038204913863442301436503368433352276930305482045961731240476062251513504341637406426836262366709012434803982909670820996270245738308341572006690349703308009100428893420289575867695482003372611590223740510447759296939236839317112247035141067418538073858243997477631637729272706081124372223943505360466446924057494807672370103810700530514752169428839519817721982176189255115329070730357702037628703587934491463735342992357058118573490143275369122795656859488214092585006067307512249256380131720353548496067406710487503823434856036429703159913554115188767182701971182043794060490064201083026316402225351951592343096320606122486853777502661927501730194110637880085477991608763634683900132632160812819660946768290185988025059221275117184891728962890467381918930574814670722618396309373788076708353439247321053249104117716821832576860971092114758655731183524085314138255139019625541648133080739383829460447226826127063272286661478963494938224907253431296232437081591637356787786019189965363992353269566699663560582023566363651952233812943859584940581611555617325470065342908709004209375470201173758043574448443654898451034919476429768267342715050051345998083161172231832832361563559739718471283337619527688344320191411670146923559212584977793178787817926911688780698448799009699633633043069934639145728135452023842986617689580049644947159385863605754732631543770582436101287936150647158716911620882146360937060076970261996268380287046987514871933833627383041418689753048669819429589277016810032465486805631039012027245649707235329472514649319125622474798309988871684612718877045030868191176285585950257467256212347429115964916152463006986284593478343506795826507189839572058240414555773558720119473703554950781773727205506404245772136816785192414072372503140828324803446604610555447311023451967287609766209303157343700521092424304384333392340337908397793302522339042655536468459938335278809613680193803469625722137868052811534845231161974591538420714406081188351177740854276018295007711002467822514165957913214830261929689105381853168434847741468884825349544138225213195412291032535309719095991219473913724900042428914941297364860640287589103716779572123813189290780642051102803646347189559513922562307212466975713152962288904771085961448282621132305296815707645998384441127648559620091489770085992134209909860836057610503569289514485869805346764641967032088911694788261983021081975587743871402030607146410067774820491375772522187300949238244216174540410664993956552603385121935139902888040883437346172774928139731435184708871908054724104435585985588064766886756274778364955696753454285971760820120449938764970490369804890763763681317576140732638924149310388217596468519386625956414498854358705065479369498975386880143792095880384039345222397045416227657035681794313910037330338070505418964918303452506912197876465342892304220557801734642122140904357769987096641254579356588284377320802717369098283816496445023146670331479214424169307809514037419155857334809439053767552022618177539614919455538749311217922856887024408217956105240361472211676828599268293452002216167334338634952425919557293908341791654041326397275412662212762006138475397002907841439345790473358507973079851034370742440873840089108082569839121091585131740035132293079741096079547487483239685556440733046474198104543151296856266312855806938907046148952018132226082728652480313560529019336082941720282511615728377366225758893474067148312219185276086608174400955233780871437463161592649020442541170870604882773515734740125944646828495387786867551316190463023644970719709022562803546665092498057758843754844388482296192446448729103873720609883568760960668756243045403902459107584839267674934085308905131749832805868080435017791270171466298965050409415222411241313744628906592876326438703946423121705378770756409082465898078396958418331339906277674351305810141485508232714092807802748822219539468455698717863562954997991767955986245110614282452998434538343162644180316555216904734235816411589910791217078183041002189620293968635798409952000223304091277991977178544324879102720666826279449671590405374917358468307496338783807907817248708735381770360063269880930218787246880255178274427612638429808980968951289036876600313468367023906714705277894584597983329157049766276374016088012209613497449838014604275916449728775602204889538191088147248199630183601376903885870656891812193170440313273754269532222963440545847451601020337801441492327406720278149324715936163637833981726025243332242866165000353156607776114745314147273676393478491983925552052753826865373546921421905095414514373120361205993869530411994213193746099202926898784810264185798701570005900609877355001321248606297123033194556772356239879879224798228013221965609952168691798804058874873226880937205242939018296396704039662709640864911165243417383154804432033349315291877460220959345573655996448553714631321943347074990556642410530839856172810900485530334780240830204311936560757933560301499444264098238684988845230415862122971611224178834326088859118503104524974680559337981285502559250645133730276851196678285735451871572647701563599656282272988263571581545443978262357632990848081691384764743074302213253693831767690762900808500144418513074553378610380296840998045912543920823359287765529649920652548381042732502250092726956457694454992000870508356191006620397250036837175813236869900863705410054567641327860823913156550311203717363193923879593665007915448140080535519524998049860550160404480586309186884035415969417758687529383026103781854894448749003484353876239750161081398911750141948307922659781728296809065388512009021474609849369519706756296472115458890528902811790582912720586049793647810803142444858387420232817929751304238655930341789983497320450572238898484612301789062646077679423530436618271539165083339473508311482025863939433348248133019992678072827260574362660347295939942232425514183286921349457324636460212838690973793211029328483011457408975404745358539328411782811114146696724355110480269244861836703692440139563897574413460343279945395778366014544783660338913953560640292731459023323741219480272583809962361522945650121343721039128925497048364981454674809159479268921230397236603040937774812135584295287797673024418018521437098328157733138319689815750975180029523593077557172519334350946443243003453646601781336382817936749291858382261945709858595227902037992264282635342333828762436536663775097773578987841916057355072379977333448212803146784182109918305429937350792289784614416894683085456544754766362769169363846271055552571908928391997305223696166494686929211060662532824883494946004060433497922116867954036869945499022316670983207531636293647890529566644771870601906620652242777432723973719677480440242892631112572968422854284923845918771894682734472925847027474109438076396453392985504060067886639880775922460326399093868680472097410621352484856597342143419700725951740597012371367595261768644326521939058259152289948961491308469586180088789262995239918123469085032986665928675089357001922859746746361598215799596441750535581032924572792213233227020951273180366285268800255663680597971634996184895546123964645744796428526436387779624299396803969605364380443223106834545024240556032888472896707047635931780681125810956511833562919389331187508241375313074783649352415517361650327511207787024195903584110040589131364603231291941560938633504738448542304773076952770971790106265635545743579718086649922815930043561923317448199460580167742725820651685894407155898359418499081130591233546863314032405664491122161483759585138720668783791536178570272173758681837949067936097164083364278876855074647477659609624805098021995958115912716395640749401119413065908882934890461306393558976871102706304920027505038743886157779357171720214162945986258181982220368447994663869399180508027361088192721122426021047657236859683825077470395906361838741498391208458731425115572772284136381847589939456916482355250880599486486033454217029712772752663602296194585076721130559624141319299796109864571152283695864646301291868656786767537281159923852815479516106471651204722125901977319942285291485164816654756850754709744969189389470295247951632384118083477131451929154047496588633342864444690791603649090199035550540876609444527299425595410259983068273830380865277725926287151340192737287949645843181548433866483308893863172274273170093636875274008559060354535416844432969278952777317345653818526951407918798292802831276490697610256767608799288683318858484623805642993556552714162445493024807767519706298111229432452629666303362213235553475005453093657594123354453816893465401677136260212766943845196216945112163327928583543812817020611063909725785937336219666005268402336676911169187665402266971100812109885533142259440000937633293195372457873102223701419388572689848020678484163251806954985314105758641500721829417757374703124004183057985635875462627958051073230707014725272303918766264035663441158622186572454910214242790283746231228551499920598138305942016534561496995578081638456939688099291324817917439419367796892941607656905746548436956070846283085087948476769813524472198059096569918195392810398777914011218791697087157295481117084851374613916745743544127031243044288859326958448339468234467289402852291426043050418251859194784404114552322634951548789554433966712352138555863301840168547272001876304850360439839773742930431770392588875591859695637495074957447860893732414551913362328181226704841692828419253022797249392938293754750716941000104344383330593177950749694846427603483376055643056320150892280808376183134958226997102712895655661930087855608648590727319472179579864056538804889850762514745445515855270915813339283399992198958103983553695814173998969097873541820891002911448671323741409430034616345807692941227830332246993952056326508421524701194686028528853087757880981431514862007647925219914315186789565237218234571346041784922088717735940957516414350101751331416073486285909222502841662206856112044847922757849980613783906208178615587426070074179057490461322037290955709829727909399606196471483378662004620177158472490205663174563618609100018202791665670350110597382521084394379634896605915042967517137250476649940853190087195961606558235592442863656064485380083230668208506180512141508526031716099318882969730455714444082750354298627854757461394828632214386611100940338233001909212942544826259673483293335379873505460667219780818405157889429531774032056278132900947772691619050021138544921525529861292367547230361983881399995626953743336128334170266043483145394283530157760476192751882393450824138184483586722873764188976406757681287810092440460610105648548362168520492058888464497328879515269217376589280646272125425929453608269689962971669407067774498719727142731098986324139694105066728372940740394473497201164374844334218466090397848110660482430816249240305912936855943534547263983238531849423603152914102902351557966597265745669893498930669297103024889140521598246313805296279454368516027101350554660266189656901814819718890685940951281738993527488248971444595060388061105489147094974203634134332162789109840600770606663325685156022853556860133699582323675321054965520650461737451619301501470293632720979700221040108635942108929332477389919197411204768815676446906212267869726468872465400937464934397253603873279596557275161446685270595349357140413457368588879411315850377715778290360272851845548970462278489272747840859624564129659173340742195576521964901872923145635812488375209527504471408160915737353380031291183923914512238583976066830286022950136294074614942691391961364461694407656824953058748204787704468909820556024689802744901405501014841302731198524201017591566426374505008158410030335825638946109874267561974699354302275143132545022764396870169520221388506919954397077472999877173474984874144302735754013168238085216764205485298639930022806358785835417606751197277671857900478361509772999640654177651913743936784619296068475312186313135074561880827270497848782314481121147489736571591218543286216613099050430872128319609120662542245205081900299056731092261546128581020058650271939560326034213210775746185379334943969783164926079804324314164816945842670503291667639644285467720317756301775996255946509752737415483103542639422174189396335069020721598855729548053873546807616964484519663003469187342116364835979825394059115946188752587701125193401532659668842661104642378410988530501944054496772775909026459561296304103316019253896965795416525518491928273623625225657287092780462003564425242888393454203934100344805668623474931067364669075650654692748800780496270657821425996392766149101495949780744962392188202029967318362819013740821866691245246598123089311673824339930688135310558944274636280769607957532973910190272522808642217420686729410491753576755158469339530095838458730338061823196967625148541263379543406487669488621977013952797906669351981154173188373194394110324118959877163302463538759640583199934231390613360587153955003940070675736303505780157685260331294635266773459653457546525470857790240553947620758224253667596648277597048239742196954280542167206867068780415196344957707945974057029962446286647906972054819903515615540033944217110742138411695957722006071092786718976020290500241844937612340629759288007452303889605563267696040185289965916263436089021726271120281717559009006477415093157838811775449025418119044153473821173768116790032181412531765495410794302203097895273594557324680802555360111275054924215749118632415985677929467642623468520161510656763501907224407771976412466858791945124186615734169711370653867397450832841536928018141149609731266920314754698282662027578632392877915889349039582114806513566050242561159694409420875474992693111828970481053462576952247447043815942295184017150903476416730632327218976114583541489532784071176751212014192339242943803734546425841989897069803566546425826304154382640671524160074927360874054406834627531499707325762500482847696162598169092319830691317512141125480743293100616127181256811057225893791616030527034559031007675230082307209990668486281220911835639327306122953273210276286446956624400027256923153154895807060618951044131837135866875593668767071652327316612611845662229189674267100764814026802297592910910587031286298158820598220473295078251203120139465480816066504570445187574711563537603079294288289152971929687391068581261087598521418893111341012876225139773058024948152740430798348799885059227928023108532623469598982316204711421870263341188713329022972843707236844752286039228337751898105251355158410963257612186795359252608285743874985506184423201528835155127131772460368848877705931827512866440214280990812234584574860002627172701523948620542610846729074066369260543323932593358278728088647619256542562035949149927718675236303982207331200801511860960425748891384104281064978034050777103894700740557074099507272346166582511659524217977712854377081856718138535996893543099274128300243454363276981310764422849778716846298178634909120223817451968621161808553591971953340276526260839147527678507658636965136865060775587591078644270066305486437317193628976334401973736604062009641790820749786428753192766702726130983390139279728764659889992542711436127826773536073164997477770505244387903516809121201824744434539259657577079738707633105956209989971524927844965955965542762801019697208365320555757546578943942804112445369411898032455823736769919171797023212866212918349369486924794539527417030342392279894720514309057903505103852583654868995763573513775339161347250509645741392724731769929607721529058959250432681553817649180202028310322441470068356435924333594474394020456969527608054125433358579012160553669054471029870787667240055274864179930229295469192685161098955809013097437731599316643390035251208816026677215337580598360531490093882175008277410640558948958690273369247998919976412435244784960546410561481223914900725924659191787610930524880359160629740043653655257156904990342648004739691164154561500480098563965100271429693042982575291549029439584753143909762659185683010447270728645405127579180515279921384492287681698601503503504948993053154300690075356639469105234194086238379944384398979049317544437667999245842018310853577982817778849898830988881373750199813073919539459932629913799349683047597369184169978206088526441768234799817284460844172277386580758117935933378571180562903106027408086483697090924917754154708213186964804739699527561537945559639266363425641755804565078871906782479153051188510713085410344762838764405971722325570124593139359044192191493722844229551998283484466232657147315068035789785013860017257229786590402173787996534558134231845326734833523832049585080843087828169241014940722829015952812296207304018188362780959133017095116885219174464089535509673861647284390762197180835858278622210123360913255301218241135603608980457234901303996359545188044018530013999417309794582728569283131367391349181488555053943894945950598522381728388551535882370357031369597745097816219299314063472232875584166624354197177929898598050113648255540755428022441589995556405527312640063862042338828963015149284345882568627290145225920520208977145652301904664100800829629096641377183132804282180931043636022943889957756713145701968285696377057536044423244736028020353523877772620260495579197114809712090854052299191701673772169015979431714760380159926304153359596340796888532301650548025460042208034618171448442567366062873110398154329851558599212921021945588550184511327254764427596120517819725328079977258364147088285778162787181475680300319952180959814111735090964500315262101061589453828774060628786033249508019048322355586586944724559466107054197734504687719037497362313129105860337527701093999299699121033683553338336722041217378352636952401975869530464507728408932095685103164026835138546102150305161566280300475314783853008295429293758455453392493504357774965666711060015171332876541196824525248780608147981899160508342299536998687096499213139647494613154471342293859316040464151634917992176160977914419160078742788796810464366352348225892236387503474640882023339898855950368952670590224992610867205415001909466727169790090965505715745038889289754938402566696326743466146970239215146658935152851754086206423002521113632404244338373339342839373396265214332135673456852786824992145795116957708383421706937226153349854133579625058634259338893682017132992353505013697321796340811151251109911003893500728962544354448926870853181516817057589891001699971026753199153616057288917835929687720816788289190414488839103435482146795499423377551404353146742230991281047178839148031928574106993166456012859114108306228201795472406311081314648354979557202665221321026092204258336857336324755533663861909485039554777654269658631730370308782143570973763264145624298572853520720334710921971764707689114516084436636666796973595413997824667564336137722302874043932411734475588465679074161850172310503463599747469061283106776186735800738919468370445074761524479349493009695999587785422378766468120705717388621274891450843852289817439455819283924133283337179953000124430673365078536310756189775192657887579819426984954396669516898368592433837898074453178429783852692485385537737161303888629295057837531697589375119753896019449563320812829040739256951853781916558481752286696387965695584626357460620232896137521079383735645051512631919601348684153797157974660483732167546194618018401030577740072647160092090276827887694870293543105879249063449729109407151377840978966615760530112411001122711723597367194528152689687732344324081095202825644290009526796972231146731947458302073957193137091024708508987898869902431733617334052521353434107154678913822599484259455068952941372458292143993010822958921973263896478707734401929826052126764432716333006868967005027604336120006965858934569210559361513551132298199678460078194569519297777432750581393383107293695912018429723951512201451311372207684985719042567871415158093476801613463178689541293342155878936859995754349397542489347957197778969580660680167722591507182268241770495873523921258517736672823071356461555717862074348407665626200328144604454150120685091420859643293904092245243405828951802107934427683793756717912012046037730929805291544102005244325841704288407755804153019204210622864330843171446470340749896042326260226230392914602974800930505811058787206346255499374721334567195051394675130537131170579694965182004029409722003888043767283714012608967815624672342007633250555850089926595632567893130343998094937219249829023721802876954142427717822163840812286188599293937352226551457778662965949081637152496620515508139327652163366959267297558987072972389961571193708821159428693497094086907924663789211325414527519689090572323584747687244731718361223759982621512530788129172687183173091910135293172936297674014557024371477421421679177602244716199292053568318528328495989510274381606100331104505910188136989894968186966896740327355309371722785489547876975270470288189886609858585414584524145554056525151709496437593015613968953179127282670284426313448896863294395587854351564869417712603386990360734139189863050919806889431510411299705049661757084490055992919724123610300667921350244975239475568023723348458614184873184632698488669955268396178693390991193225302206235930090826395878968222431979467663668606210172485848784282541575967958951525264021098486267115788194006325693714242036764843357426557977776303720832228925270615837177855945096282515446649663788971799819532231012868075121626986279751506212659877380678933709370174250184215502857155613920628231253624100241188448744965518882255528304684110070998526005925133762834903748836402721614890791600800214218358195253630298703470681548861237534194703237262799445092235743347920406697081760999975702414382441007007724257403814712417848485216868144349919510284473147787262258544915700881731525541371497009153150066413038348163456433114255054372806466117938258100915989799873704241091236431139099780881207040922066176280610119045231214036108022111623457571320853630535491471962111651548759502251322779609291180971369977766199986416308988011299881946346018486565541789617745715379387386497258591798761177209069258759428660793322277140308793245325778467231435226895020068784920887382095922517785082486070199970097152460111158816130634638113801089523976651304533132034972921636839525216552674405676652266603111448936424586978354683888149221648904622951816979830967182775473863205915974487301796143403927784874032421148349237610791068962336693549892555492888872370466096634535162678148370370319209340957972973325919311608357322877575287162705896577689669058730624634478992051566330845791801563828610896314195139729677254243915929845690728556545603578368980828562976936602865765178395399109377943373220754791783563035461468308874244316636669130665114556591158052966130567912118768874641598749798020299305938839593707812835531248519821291352577134283876170606433207773287012772376126220450485517140383352135888797776549982522875774705848225748327762474853164574675924981032705498607589242492666481086204542922674592404589251768005075611962114237663268896473133504866471489191738090681529611818857385721731723824231554113252234077856167958803214219075455971010646318834552656831035244635864899128742975513678364644378248372976114412944876591636678945812829846800333976245313092590003256833348679098890545584812644492609772849411890588268553785456315271320760009654840426123046135612952610406650703007876520440498041177570189945395219931506340638369654002703724380465137093895937195551229544517617752403684435735791446813553271160812064279420788745044162169038003229278593072763808458262467087222784795282272324846196816691860381156433588307440838913721650952022405940062629273432023385484655651670927343308818813416312504731062934585807902678281584620794990263205011878855763315880750084846018161396199150997326779969346202452427945374418061158880245461125128156157078575088606438789075212956276567839667086470025110494783448317955784306646652158058069669283718852597480488993724545217895909180403180026494416586246741363768769823728625900607372316600548512040131430547176328808404204292529568016023482232105337845975744565110590493358516204371855384915359493988896893452668594553219984076551460558591518856983085921993579833004942089169318276032310822772156425906637758858242591356490228887471233187474381266734315643168692424371631370757754343640785372543206632060525824236361487912979385030812641740877598769634037848878036910647214855785761114799465979112758542865897482811885762308014401216954989609726824857850072674787800415351381802777846660941029619153859275895396687756843509016587522980522931589923504964334352935904682019089636370045779394395133378248998499207472981630971614071609499896973233315103884305300544742273611234436643435710196959271274504417114028258012348048970682572867359310421236210027022171151200416614907304850800258261368463875725930025928525635009251708899697209606766361172585704772854903858623037912604969179111309207227486882934354096694628675933856870862898642247077992883382852864515300744480429756050395744980881934908852735605975751897567537274202658863587164154155908486195151294780821263717914215624237010497119134675019947918052173768948918544371085097132739343077071434999547391359052621478765986864802117750617291249525093812418467375700752926340061304251572496117914497114032588190671370223082182632048295228735932247328993478569826822857114074139752296456596624391642168966483701378129239386888877508362153279301033155885860956692929510497275152447667496209619955497833016487666182664250573895408617090981002478408144318968559293670277851433725516753699651816983036608186898348558479486509444514896590374393477626604324315217524533526065411221401178819110298667289190097868041504688534882203241661897623334197718853428882550621982031257547583469186886047872729486246448336928441179756929834686019751464036211611033510572472583595236590283815413706501834019768117721588239275605129382367203392055961429295686131498159795455049275527729413105214626302753579433821771754468336640106726641722832464579411912287014360879690819534083654865500250214780951098819798781473104651528850759325238458808906784605347432908111519619693722192978108920687678913237734024378188104934718523654606123469844651820319551867291517018049468846026761519028595038992880259495000553930786378441775680033757796469414894751364815827416775403624169724413377466872220275895805678669737522270941991989765018694242052048142410489950406047279614982583600423366381520366363245293544066025995235604524724209522815049942812037905810581955938452996823936564764243553130248300046153542836495482959627442904182133055234666339052154507135239684027420992179570267975423924062053712733079592994560463123885940007564574949850880200715359475606013446214314095057664111106327525539491536764857081314115451689776823083718613194812299723267761853804939218134461439541412577183672816116443552175923400854212921482406876238952383216181757175332725775096897676465148264144011848644648483831223021324730598302487159331963706726794926154453313248276855795369481202157402815226787209290155616718820011541754152013911268832239589647447315064531671220080347879756924563077687893559030845284626604990966296078599256673814982112396127272203153881126594494109788256805664219683841688756161733244843062305195720074535289422315238017508563894477329034859760700884033718188820012332436188701604105917353223214563404265498273673932093097709974469133461737317606106868559398276882461588560261361649152786309605278608667643228430847792116265879668249029436673772801796927344084498467184359076009273621937819382819684233423838427293554954252849891337686658577116460333583617924235011222190299883465574286391079077428391968950192724989512056115153769819915559174027525451837612835222893436208616835554949610874311934951671449328252543199674781822743521851524266576211195184015949955306407275615788342192706308571442063544884264287347080542002298020140486655551888057122063107656773475292732530220445505321528464472022143317133151994638791876448105241045102366308501778708053105408372114986134906145814656344522101821824369377539403150657494528031865477764207059543755188847360598121153160745907488420857708059390977086858135348451540027107498049677975479929951464906761454059423345564004925411606467139691231358569626632432557001520997505572117936976682787449261460326077910793297978765179854194163362508107379214083060439688609668697612918239767857211057650394890832708843212836081461911910446777333212156682185571203749351988515203460942915175747228836053017936535409805345225007707762698012950835794397978935150635007434221195926774165811744729645587521183944318552602883034414585629614354643558667217460666188550454403648907249669467364550018796631680197457161640042698804714070299537445126029105013251081730451504767073839812817671435710730747519649879185800665312511826631285654136063430951760194373456688939981897679510776130501922670414251535989693875316077719238765048831342733927602246330082584521812913310252212350275335623367657487407616314081987555498006900736706474094733639677571733290653858320171951658269589270514765797303606422426226660362564208884760080186521033035117189928575684401797512335015976889479782451712698923770979205066962825482730631086318824985040147228978424820271870183788045517489026391559784948927625321420467222666501863400437156600716135548450318912952526614547309687216097990171052567501435039927855859911882853048914513436458117087719163152703571463594079046048719288455382025449358039840215415167312454417145822199440740930905631569650624956028645819759898693800204610143768765026638841390470222902413605759626897992935003188710724246349937901482809174750249598409169035477883617476246243879642691219124519753189076649681705263468974383953173404391682069776974142192553588156810385499195061929530983110374091466409924656055817943478783275436946686860809166853122284486338230331261886331969716232308775766504947804797114257867102819052517970397590362452268625509299900405769518151619672822970363996306425385767333954054886874317386057121942326189508628982654591680529349875306159798250752270735195239687909438790559612122920489643992203300454592493624603327134299254287361772102158628994274437288897826176719514715057219535263050590774411594599210858096468742645690767511701960623390524694243863177698461726350600233431578135775927257018036336701338020214117094046091549564621430447982466495954503010161237415533095941403041367726779698131121899504771124677366198363955803284695079451371856995073313962272593457732127747227707591133975147663809013961968068636247400564216919342482239005133834913773735778926059182241727058498819086299647385660990081888261300963022547647410633125511181680844674430773123425905009654623908865476082348428863734334531562081003896579549786680576631712011716351825765618630560029170328582526963290107065190647832743809504165633053642019924212675718934179619820205821509425189152859327485629392994926573231787440177958481856581729032735720018873774864192199312139765862515842522837683959307093555801931549833780087069663234601189438686538496527728343240817576592550525324933676249749042266041855735324716544575751620445269741814201937764590513306050008514560968366740403602319276857441164217430930305883235982010936960502254992104049651574938968619929440047052151470244124327878962725831322801326279848959048863979258108793092151950220086566741817276159149413607391048017740578031037137816818355569686865944183010990965543020174109786032713637081231503205794905413087385288659736324160820460725914850775917284408170587719528510616492914941717971116422272554734896884093250352821128229025733794955054377187378180559452647666402068515589090605709999861781714818772489568115197621289806907860368437191574710196501067588338051576821806966642937209883321739118428707826763970144931723074125632086224666181614002782480526186308638647268912726011329719444143251963503557964781450695170460406167000413793958709354944734430892393447213450781685843955181414761092666721517265954866480105986363689252737608432900097451206207857342684755838895578626017546909660962120019960061750763777447062744448955877819242832774839964472223757577356492400712973876876693253150101555157445305849741780115919835692876888390098057684423202872476720449580805706917242888610414973585644243994486177866156793959755808610359716876394386252645600940212044365131876943859129848305270918620526226364760355322333192217615631996529997554283379320448213079089675419633156969380459881684377120929357401959720568135116828321010899520079593547066463633161481557193119600550055664637325102074392636024685852407807326373765503850548901215148767087818621942419182340267304383260097490730837263019129950393488547737309764588303085364985285706430181606923016708373507385003461367761553066991755539396096944246930343241232245976202115255086102986432037949078287195535859332290064945190120427965245140355054529177806566267861107521593818661285673045706628171757683576806724801670041610892805526269537271795406656465523836456062464957790484037087731114570001185900121928292603340739017521857405521957510810656734679102405929884828171608232512928040676225721319735121163621797474570382988740981548013656748824113783315050822622147665317412813375248635408881251301424091728726030757726388401789323472434252310250486438194821813214444912456537698769962431972222077064338003412221612630705700190043951586262005046071953450541879375199579571810281034377920594614942695495764447787959066413927856158332149088566370270994758351018356528369160001178203945582795246623746707095975354056199291008869385553490269399337000577247486844544477813440493705194044248092290933914532960820021456712488001151714895755637465124656033590274775157127314561334543723444058313659517180046826131406859948579254999974939210528413358727101461247993539225738605413131379827262719751832777544693920358221698181115997655619028328047139873878240874764846156912177168107891069318901034279278363349191244687870699072399181676297104824830073965917251485977085665335894146810008588599320162442351088211616863017029737683363238075478111872273517535366030036255481113233893393589934777078035150101585084599496098502394431924273689607852894964996816147650252029387050517372051022763153756894315230342761919278044281934839472722172469404325535531519856692870318773466305133433943212839558677012636474930517766500757685488386535358970793729699738982232545582962972601969905326736961298355570325692228798327902128339367423859865564381789728303881491811424027570174578183662687794795784903119771890204634678585052468747458177701605047723498435753083445448313863251712193352364735180343932548453131854807412606362239833011686224602490978518483908551685265484667376989604983908393448028269340260319614673784255548968485149413482461483438245440175788111033456929910471114277796098830243792107413657128131464750635971019997110875641937676351384553126727737842145433974617956918988619481590877697938110620983039270955554324926556137111733212547494434006555258515249107715551285652263182592617341622004395101592569826856172232454356856913749233570330691264888239367665002133218053542501687923318885129941925572641536687335443866163931351214444541973767137826123478897356377437136958508926939338431012630577285996536492716358033200329112665373763863692503821268932654067689861809551283780886549688430773815498018660476102904554879215036500037415559881883300173527503718023750533162914261575642388076048975576283642903352275980662393275624482978479890830919515450524312865421077661616937557643473950535095274968067721979684253868758259851464256889113734726878932396679537000319871001566355027405774197650017830430288769857710166242509332049156816636839611646181320339223070104241844731323103881264921154750445801779446117649180866796173006082263499933826784757950802504028062620009284763232404295969471895921103828233087246427131834193126431054507323495388783790725154903817986450891204849983615075687899644369555608515318797640187295699515783861378841098531215969650408422420183339019044379804302525351856583476900870275386484271086032642119107231939015695703539408773847991186523656179484739373778582761348091801411736621842740927721861931015678638740369471038856183376119930005583462028239208841906420980753945413335700657296907845105261297094278338082459660252355255177881633818261920197241753245664715463097792006318169010595414032659001133008037515608383730043763648016202803561818415267664292929198297278129843561117598796234513370397975098948012625007896834749705925880821553713683749285040309001119561509547734557342077599411952892993284570878821278782254228031007836677596215320575480703193266600701981308172975045116764888032850853677819978939071496097145116603150678765266271140916241907397726527034839824403286624437076655705516890829877934227848966726445460951549420014596898606706657593845391629826022513791673098800158227639823469714040357730342820828334382313041585019188118001547274748649440326096718282406507284267121554557543283601320281571084444154787221506789142570044514814160284329965106392657560838463106323309059121974186441797653187188491795854429721642574461206809709441272509508698124409744201925422245063117446226403381807182202972529371237081607179117876730636400142986234850069611209853858557697077626970915492520875276797366341909345716805727421723088874100251245108350808971139853528702397169059191439692149642303534512109315544372445009049199445215725760831339843137743764894244671657544963737649659685512966440194013789533397095695351365782348944643870255226425343745930825121840513364756469703337509786500657008964217980793110891679774779449431445698207982938713683095178784919061018561778007030312116815432652814179858240203003621286771430075055592540028327493585332897172265492373056391517017964632384576754054437343900459648147728450310462500062388695869512855782190739890799356218476090157766878899245316968606762380103037284620773582598328663474981695828123554822776003460513842736027224587836028479354337560830092883225307165797000470593917122720687026804019779250767420587357025648145740750255916888549725195204069209617913085178831511365844757622784181196045466360202699531804912036400061020269151556808246436875009970904353228512180670291114689165277006319233694126703027147349601746635680700465533574670276387184854648038520478401189242785194520170665667642442260177918492712327737524944975560108873120776333815580313664407136194370661230150480403915300022528012681712425947502358516210355122165386552100000108622039156692526725988466753711604650196619027208707529774357562321689911188558594070504694313434755953565475069467725264478704665292388252041115022405956767844990408356949992391080734428617661294068186864505522828341642583011441427614876561550146228475638835275703904890758339810227982735261013425706891201280456782777279174836648809167872328002861492053887104100923157138937671996422213919748128897154112273913045857420601573581853106131396253004214065491152669210634142063526485708265671675599198313665328090077650297181071043266056705172667486605483207879847126443377287282820776966746118584180893716004423875121869881486782559924223161502853660363305256703264928288270731797245319122810996054189808752549036651716671856168946903904022716829038803679478771935266422927912523871091695305912313884674083585503750211092302397345613521272398126786534934848854244706625927352813151458802972032111421873698913066055423672444313398407663650374601948298282975067316517518343662599609788262637580040345070269449601450616301888881193301970229247616170469831135099718592402055139342585006165031836481339383322581452401527161601392722076599555389824962404609430713398208638381805718974241307842706639855175168870163636845429137537255861789712824061013990260791012565889509162021591548201535369507942793217063234704035572087448227852700838567999337002832258509202487970308631772888393808996083980186593281638794775647854520062128496846914119624926453339667029427519020302051704461357270123881104969523620317473824125089052734298342732810816965520042714484803148297150276417154325628884241230221805857320892309998800751598391105399392168751102761114334147712635530302444336207683470377094998331293990100068010545332127928426942361420269042809972697887372720963531556839411968513339014720921879223301962799922915501389895200215916835215660281034425576933898582863821008189416047086456539021536373483044022954180520688464581869270356664587764930575449417840505492110268759152553014259301229588944067812042049067037837284196325806563906637888319406326442132614261092726437386614500294779244910976081537366362512867101622861446323989699361690677078774806199954253532334109347223862926581691775354290464319121140346373986985890484192008796450256740171695677742502639991827524451231899556604109908249715156535098424993664779065241508778756073746002546106862450029994025707274144117939155456045939568448039844072730078138307405879225892536101777250198083441098626823504931467017224372593637401143102840021294146288114203205171182136395921386825127422748995870976714345683865772630064440580957979784944488685546631163711276923983527209142678481586549855274934377278236626793919288639730133147710003227304382833186866165726247725649720702648709971029613952730202264240086703162821841096433459855887570088975921697965100671164949145399731656166224213757004200825283973942313020644376599981530238522495224517824655385166876574299900362451282579077479398443054065519131443655411919411085049701665147452422195059983131541249708698948917794721574578323169928269566247282442985186307910180237000520651651226545329143954714091221184062111509884906560770492290592083548508224833521990034688547062730728883893955306978675095808994118143641044689877713102954787497572978820059853737049569315760988415539722060254715538095357732841931722313389688426717057005097369644142946768373977607465858805176816087753633479334106821057274302073186206769388754522926835281368359026258774802479828019194465229305582054315087104636521702100379903091708096240233048382151034372305270326677322742547175353782406986330551754476103773848846685101109922041604977059245836030389156428577486918696084849286344954123948297929801095670287233856796847204461981191843741000996791022361638193916124757239549292712251956165037069578601820583400783292009592681836150978679640326720542538156923312132893908191761737842797761091022893757106441761114955989756835424516955198511515933875014608363748909673567604273147418610553040555389685052250129341188949898818664231965517662141973700879783660060165912016494571125088013188292614165909455609177073229826399357838381285377489462745787341317796874154848136787266212937369357574950363640897503230258622898115521765482193805382110407063889487592722612963977348132223889135508209401008968374958268751955811793479554626904060798429976298402847203345400882716563032761779509809185438262264461364518444043614701563601759064564383845220567077106508253434461500594801294727792136781025713722381891453302734334659043595334163019791130650842033943540670940025981980569886373644040805870698604827627075563392203293307082933670073038773345858436598704173655209381828926149037222243787788439191730191616341465355613654091784849126495769423398321913539651769503925861337770958087929566619484024911063253117598163021116444225697532332118218026887787681543198423234848420349754014764253896040808930677480836128655472337857489948495012572871024279986581047104020325593449793323225982279947919401886512419283850535928102563790985854797114116325469789356307305901540880570206215949994318240866326546314374708379864306059731505755369986034311512861845852185210692152312206279104159762026976573955781672363750373603807460299634758955896932974453146322382206701672881916381381867030104762209541949774172234964127273093939526774999718894737448232312310815605699433660685315905875919961435775062615263578286691867650151815388260240836702984920563434146974350559706048393315738469198095275192492547120487496221449746149260013244229027322728055887507343399026881356440565562247761993918253584609575548322375135129147745974869799441048772797856265851623437763976520334648990569622606284494814013459403063214670535693999076950799394003787449092052698458401624858018950200929384996111546133806940354532297147886187685672868148714373710886923874716495638502512525519653476882167191900585873550602863964853147997288457155127231763384315294566109279930608292741329414066272112623043912131617596217603379816869765255326786462766199070530161102261157185604968452859727714018524165835751997311373717505354595761908594287375985120092398648336595574543724036068251906085382507341767621923478522127561405187763156835066013598245828649035660403534320619586763542495700832063302710067920021792334991141067991861517342065959297284645514988023434394287737623933320853462083426438270209284910876870093741291333081929798319959986029341963003923812395567999475327292094012363523759370300129486839325219425966447789369848398854332344444675807548971691725100068410553511720947645726552815219162271716178257498496236563294410765034052445003881506812154440870095691284143633343866810850865459718214699442773286451923410291813776918051682956574641112997916722521303407445522122253973779224960744641303320336639995973262302725946697125696882507224749721661001648195583509276095545898314290319473301995803487896899876389863230770325546298023988986452568925813943924789347964675811197685701163324278400462438033060473601997555813389055940220884153578541753649869904272626733821260453817162411196461844486252147773820391464085171440868157791512926521117644321541118551252476570599280264373016522736138738325658359600406401214179564361038012550067417051186766049547375541216094295938727465996197639579277954105722379878364570632363483962734242770089176960526551647687754342333397829317501309656885750548043291154425466569799914149759228009638182293426014571892996504724358469137159801868870398744879821172989422799121125527366843165461587423395188241482381041161426697564243216288135682688966435255173601306459630238590303450687628773622095901674438395156408059962202379547594578864908980251329686150689598453242660057099108336493009460521082135967477864463718800183121563414620218871898536493775820576089901554367282338368029568242298625777997934843633201288846307047696938311738582120451542068764136390371923282703674050622103929320891916280699390084720120162382756902966645031162970925122597318065524794464513457349059607932918672084889065586201041100633999390301259839452303352765629906372190645964101632779564006356264334434616793060962186985789102962229575638958900784394330027760980720506664682780018779025098267013598041619917026947714627980229911983322925934279159751247976374661615344584773187316774475163280787368892795244320257040536227043878156761652708884948364831616808992364131902657368320976819614391809796960097799724487086805594562118394828925612290734192146096588982214075701987985328693946524649530079635146130503436857748246649410020181068425760968475891629617185506244935330688274668122099512501590793922148817921669774206456758864316576882304267698415373210008379416292467379736968172886695969914700453679672123107536471030367239375127699534661611999742199808513987649601874589802646396280903165472369162969707242839740451954294380630850648984232315968170969768821211138990364007608773135525720271265072915036548007843241823649238528315518417255514136474537944454748816038944884708484839678313276796830293195588773141081520237910099440899979952806491239446977778581688460556927956404267948956892269826770744923531103880072902594640987763839968868787627775737727701922657800638700253637933101121497025674654070148702876908439479959579521439685191779879647387443915514199009985307260741728440305879063561807961111205391624325192880777645901407402732659927043365044803630456303490515080401873744403838974382434316715582221707030754894793921675350774095164166914186201153307702072712887309421308424704574310295747368352363068130817507796388083358533390210801995073960511124730729438892660181854666655929883076422689142366436372580912742642150443511222040243913411390810097435932149440408303668288976313178021029577255871543354728944426879961692573288853742596075014731805139030420077379757140156673685686724522253820043841992202847895671402631674674497398768373734331819673231572694838790922831425945892545975366209548771305785968087834388246964108513985028054996367121420546002185904976598386599578900272069891592041965668782804948683825176780151206027864575908663995792760539523796067674561162792091826225829590995736401234705789008835737450863839340346839267257651420633410238214920026892817454258214441894962977358005382355008663970330269395043738072782755433451931596318376337946418408895915086134736005720777219792894971618770945073761486789526248082946568682461554212513093873841196826280565752652138353078391388402234072869628745688276200712329328948770555277065708718369772384157125681564543140728826010545929778966352022804822683942324828411320364459412850949452760732576907868353457957220512101214848979887913810649995879091870399329749982936212483300093603936893169436489020591680073150201045445410832509026417648334780226107149862381260182758740876520851583342066947384417643319008063669602001770794888968243983668788899185630839622617785073637623574520676362143853215643454672940080723332339182690880271228229343057008985909296459273717033915960577057711932300867876518025724598149156533666203887772259229813075697786255349624298694735745284352725895277087897059282211392467907770528599593999591586212597504643390021530950019322892276301721452453651944611584050719262850407306204818117024143034708796849885662985578430431158020355389096167939203750006943037535414190770256825807052971552591625236087836136741043161779378365554470293745833525609203778472346701675608663549389973682302210343663889867741767216965258716316069510339700820432657521959104595689563576037848280162287474974804924406735736790480365525858504858134263851458676148668851812540329176874371802789557371843268369007046647964693185941365376514892399634320092873365622135858895942259346191381354565524377393175614341934920368878798666189254577199492124785826396355197471663394667913397805695370613640293848910517271753389120340971657209082724373689820290496072804195009569088144160516464411406141608407141896595212695928925084776228842635340543675783475134757498677963990426635605301858506079408638549215892365255812638682195444599720847995861282128798671327456335672628710852526430087074361399600029227364540620122723772616119408116090566628798937367422985496162401790254717990706830894801783082279406850386340207106115485488732062289406776236743826429566351587391203830636630069825724360584652325682241572184737208751664609116304804432614610027765947217644572759702181999499830697769761686869402179304642806838486874357846094525568631483943329315404319767912156508039661626476132288443237629127283857722284832839082350521133760856327671092959635113283760188290578513636840667651257092981352134143212369554483727424609226850889829468054198695420030943361387304882669544658566010063000861536562603047265477670580043675948468951082692675632676937986635852237912840101901387380222105211666459865392129863187521099002986399920477490950893154226752707269564542314297451745288350005393013406892202222473877601367575464383192793045397424170169068169442503157051026831248725258228109685782461609253077484875216977160281183112020454769883283050595570504712492411287045283796541216489093851495966802359430359896268103631552646809507224782976664204397917445288883000206207346756128029720047346717264909955388519087672407254211553301796387828760515749149390619862150443127028657893770210597086854175465540430273061592488932199121732851898978663429071404048962504386669277017741849159610040261068914738166876052742683763729593635662121879010681498194490842416888979774993188575781774457407357366960897605778744748792203766461350224523812562496882086963183504646364756210293708823108160248851796082112630540698358774831766052774630094155628050756930986161968810491316411708458265929516218268260228876048761979400890018543645811735662947620279533688711839533676049113335701986040721395394672787770791948686409090284294005435686128012896245141538669867885948283005098117415818461443069964744101906538825066676942891577992620982384934950233452811492100255084092983219679429018024074184524547822932067343784365393271539562936717277210457569278089099585028929519509898080344213548604892556891123093663578907605027692760340422672329296041118492536504689024000662397893416311629986468508156469595991174279314615981018111256172229345312456245155933750377883364853377174663660198565710480293108145000955013202920281171385067874576322923117734391099431700473484314628887612712017016039856953771362815984028925152046684180317046842320010194685106132856248700569940841933222276400797178951404461733096081251206976289427290702377907030661925519789728620661944005960651493114569436704533409484209221697600303355579601898383855613076828953467068885634770960093209958773157271406053228018867599342835667188229808600595598888816119583564184893830421696431692696056148391439950229285017916009535677637991749344015885550981774674933531532348742508390523587712709096406341535215293168738885216258733745116599253654923281024823344805429149651133762152911287929197373641558197649958789165185844985492569659095381148601668464489133111607343464673800333194881443225504074405758501000220339097202486949504634978713049933799895051203309948864683379667900493144144631027487408216681431280193612783589718037541747798568403823559755965458694587403560041339259388331566071998747031642540565084370363051176519071639078926116950529552231371675102892576622663597541183488697034909602556521061973523085980621093748717192122200982151898380330095765837910768489781204434687411717991283011144409273481928811647265458547514731955084494573224968731382712276981575942501548387643200243145130570859522190786772282625845093138524320569071822593390749959867401703622595048981837021767313263337167302834645438794354702755422577638467997551872162211562738231503076219430700403119371848532251309704422501328441978699048305615644490598826021416733720789905535793027578228779549808795750894824140434403362164199513472918574552652941064623124061352042206973364201131049185755742191679781579516699548766049387369690617167989905390573626060007998631465044798764867017994704151736167602183709255861643533328478078389146026586965343783633336898973398304661512917204707611328417620281549337617618420429686307855829646263776571847506768799198251577211229670393851670733054470371909649299907578668252522116644369924844051003080691465725328849526855971736118497349781552048805095347000020068825433584759654595791391075093258479987464981163605604754701543845303373424720791237144438045394342839854622235885044667249068276010211227636199454758518198524452640490698196150011587725638759296666915303048949777395927388601356919497659683842240908378447470197417024931847929711268022047433431122977171299316390044684266256317726546993340634616325986276075135398316682683295396430057763764451173938725768757590940728633866823084303395569914672627856422983399929892378435093924538192039315794055685207140301011890930071569117751096991897954673563563825983632922051122786647929953961073574907412351152223108836654062949802149266895468471266235146605507538555662683692141768283693836167519706169148786661293489973075403526221746912819449011084244551805409609157908039214681149723929684176077503158495478573283198189504881204919924387183933233672622541147951347882821472226964019774271841180849552888931649544554927844628267528790738337913226570105296776804522358081484264145214141186398246024277728227411762307758806512838239450566234315647265542590852406687991724003542961000710203006445703761183098475166950553087565614037850225843244026398259289136890111266468793950162361037819641564389226577760857295553007787344408909187677029536189808149673612324859744384806266981393250589245064251791931514494999961258046360498223760324153971664682577129947813088054977371895755443052681050965425712363428908254527920556420417404780821028556314053978953976272438646513184632577302124188685571473072568266531245906729259828405305776141131043391397136509280467285420154893400032222326442167269852032454655129372189342761879187406916421897431699869240916547814883787086295103326592446654195649141199613583597064569829577535304068158812888732072987500659594888542534775790006518660409313369984826786945774161941948291528499509490691261453888708110787624256585575582451277533189689042470328438755101583072040103391876871493868148570131768127056664170701132532726969390653871970120290648207762032874366847143661003223737098916877555269520062139365763785108785397166850395607255938248708204635528097194100493297599936967349105465828727514447123744548263031487079607842418985933273191787329829367598887901211502915829160407665826564751872326572649532284204486166546601702451270425264665854363564997366144229783136963373873038594918049313149632096826372131019461692503193068405522381990053480922286271020417990811237955042007335348208021860183919819355386016689900861210739798373196832055481402647433102292292586228324677727514612220084852934611215383184691605280403165874587148738264349216867323587195539434642365440369930929521791079693227159947382101911772204130021058601605648477215857747463163746114819952529793371630660418288568393629417150612523411253110352046964808278892488207745960968160857426408116910208289444132729537843352975804011862968819892942639986284656688603485772687483709458382929380525609120661184922561273448466207669937847538143999859725612726070607758907154625173191458042645504590253926994254156041200098400208787053841303903387073274347798814939631177257177308290604027701048650588786079282009135004741210322432375320106825482213596612604499947924416863749630837442160507064616049712339671519977100771466372235689160115713796438489794728293994031647920297201651012151491019361063984848523956032902778081366413832755081533304638925326277672670465127590621271746525388949641221129603839064957935656724178483156534215831117280645862773687955641038060932996753419527670839274874056855183326362032071439885710864124386568734236443711632737006519757923234865133704527906209167504876837597108875004527781821704269628677411391847018183748744169218415048067907856683261767559403817182300113692821680888985606192866899125133699553471000911325929108964399426895079607830689776828840141554461581021021358400627404865503948669640159407487274160125049109283629013368622181386965406554729707117271088976174623824589984987073328005042021406623887146883399517643012391721982334762667784205582545463900744894720576361628057756575971364657480741845244025171374054807514071621682338960761964499665647816260008371611355860363457935918246610484524295263781749039730154334588764428259286880679400299921771387723653644236479127429714162643679433181520206205354091712713639176441755769902821342058720948203631930556837318675504575959354499461103066515884401572199306993673468004880835860307525864240175227827739181596781169341083921988576748457060447591473509987534410292499188588671750807111504903324925808680577571938869402302422133467404733725834440791779238785471250316382226372762109201724381636900916738946356982120026114126880587265577258618000904425602697278370307724930847212649104068206760443578433449388859085566590886777071771344216400450331706617628284052172294338887152052303520194069939906087350705896138028662646571385894727603591858908700671186520711389255301838316828407101751337367819030752180004653897903094722486537695062982302082441900653996155677252744814869260338952225426803753406253327214107786084874711201497492425125090977146194993949215279139690136280824378994182982251861978427523181240602833696156404015824239346624283432983876021913808988759335256058885398276470957105223762228916443282288512048158260642073806616274260907099991702567935477078766133855164960707199773862936467444146278648678330276594334517732067365865199094336750184325226282886158390267657925895670900049342582245244005216249414973881502688566451392020657723213437431506088962829058121612111900684255010299477530650265471488756137268315066846032053476582309636967394869152344579125760464009700461024285191624261420908167834026506596034337411295408602102972269650375475862078949448954018480518803773340480094077993028641852348276437468693118105938792662182624601857413699028449520164206441627940852969907608416239959485308327373306187750147499276977601364668864300053978754290810543458475992241970539545094841788448198512128167758435088032839404193181360737200388160554437012176308362635131890507503944146265943971745317189042215784565650774318411405058496032230917798748234284625266063179912334036367483369260762345120127930771892378669181871095856755758263389115853320095183070234500205945750798512107493353983638037688565047653453500388582270071451073971252962318286070714542008168304727276741541715177201108029499930903904620942141895044714745281986574818483970613513013096381698843308005869553393605128539655570132348634891712742161357460769776335348249745182856857807363784166725625725784853580254425005199127511451876117786117050535370333838130147459196345155026736472414724747051442018328708629394539233514942545016479964654225461212053975974278970231877918480657160205417965465243348318356499414055748458958035374194306707356399146716899038305508628116166164293008978198679480163103788372148651894187530394902154237534111208288786726586965688313332640164343845610387569127718716795288366097389815715358892887858904579013248953111340578562857875360970243872717622553978402126813855392627177887441491739568488735933544292819648084052101851012322743601321605514628572083797896308859116193854157188711192725589155404725547432891419422740418477262589309142723952284680834492413702622175417877839806583350529362184243616831217885022056836201381487154957766416253640707356713976429078185820871385677847623861672594612891627523570907356565859240378195771749425123118717998444656347660826067794274383833794285591339750548670215907114139380300950400347781460632161259721484002226937318012981790928365922589103716593093506220599082840405171409316964452341506995924729558501462390099096472902332454695938779988807891794500102089434363208043817659281656949393000055087918875006207597361298149010642534179502899628233185928838195762612940322140614642630551379942999374281147173575301580704207091485106468341292104583336042473045629298400353926019160697363560762996724862807225947704456429261487813983743207095180341771741470249278091827857179293234582308429464325922455162389660270153013166938471438414548164907671979212330666214659493726410755534351772593746972226318701333493497591978183486343982710745097851301898287836496979028296132927332160815439994840637708085528380231738247737213425273658086456552697615364582451266343159312932316267796582240502919137384535963882033879750426993077082421820876617344263037233249193653163435874350758534921776136501406668699167808503157247851804992975778036841608383427696376592157193451030016627952068993711947546056209842582707900146785605664198225443422301524757974292348335567911947638574618871759897130189081453123696157477198620037727147286963441752992417619854058993762162484018190917278435806464089794746120952562060049039981754906017417112330466409058680428283689256379919047138386312758382402010114678332325344071005052411006635850629000982855224592578185444805932127914598854517863858072661928793224162671717053426477416384435354208525840634329749082727568002915802769173648988081461358287560707038520839182397617851102784011298809204546260407682751458350338133050604659710544697568562228134727337643552551034050833669521283796212218367969910680592446618987329785004836861067631436226482038972383445255793898979688693099668446777922402758876682116970635101639284291801068233194640029340117681225456473799383485732743230784966369194942080495551039817442213395605091496118303256415974784005080763394281165344562240652637521245311358319463263728930400022690346432072744848498199844037617811900194708983221421825268549206904303872589811491525066604718028901213142017037453246484660647312330264477920184846316507116562040560438304403233334844824283303641959040075609734301801442717743761789487484701475888575712734946885651485786998688380538796506745483097433058589237874739152654549507679374134068093466373393012827344436709148879965568119578374948531995205027449530287779352226326935052526024447164532263642070413344629706554212253793951093088508498583998717923918900343564606738008633148793808329258783300143336795014475372998252031590823185671210198837037069745098299948367438206983565702117527070080812169853935815490664207425714073449591295256882098882344409584190210828328786390449485510977750331465556321144283987839727481700267240519671110115446136410998004466043762996614753331603006104012298411690356065731139486011836976309648712895674011049741654747381687307593224751331821687214901455228776177455991536665534009541613431822384448405494226077110854158984945521455565876851499289114269392743382521512765584719991959391374811648229920878743944494955501059844142779867977853034785418449302270334192033916065540225849569799339593169432807449098025739831919795144166874374167231995163972392059931138499332310926106148907125641142672855715767726359202112928991207635703023080200636775429230778369205165354811847300169156400081059175040813816344446373576387386134497384339228388493964059331512924092465479888188386536315498455636606482156321160044974818880182154202050805652938577232474404839791139132729018719049003940557152260849225130046790687397799212731476089026770976483207026224069572675841257914767314732331013476523196368915867804886303248479978984500372086623088876107179290700535348833228711226024999439602717610203032180542463776823364881750272029568460832309813836405943906899918300805925799656198033994462013066920204705910975606518351461863985753856773143001948313572927224221525222387427825073799270468064375065160900583826150720530633943510519100912397434167086910200671361253904992895173164715272089014837428551384803792496623913610496030397486833192398770232103596049380345439555668177700563976200868729674142307380876493589162558963744771712490692609304781638535181780759936627725367687399624848299036403193653380989392661506240816924524521660445098947659039926590654313617548041372536925250858151862686327259304475323228062565364032424490631692370019813850851255072512550347865115182149086286503306801778283428854882104733171354028039127227158927698222268471281922175256477449199324995426076963845087781762628285348689529341934332761862486135441201614296330451217951211011067045928493526790970330612614959561492366785231923406623384487606182416418063558591023244734091529272709959863210819349454298777541653543851251446414496413719189917896005632388131285179334864145511069511572038233519446718121477463478143234359467322074534110126629207088021197037265231476824954667274017430795161773380082015394822329663581528146149343780489296042336076685781893533396410787386197562296015564721664265235311708703097079606852310826067503619100416759969801957697789198678376854606443138974738919092845720225102907198144862091620940427235137796013907943110752683574235598535911696659445321614279407089912801718142943935226165002610515809574926849713626499645378423736041045411371305433130600054493173831487428686963116882326813316154048425026707144200852491711682896965848989585444844928423535568606251034523215347591783366354705731542936893153343180389475243107854345671482130154280501012959616824498071688653657024823353823723520343270114219336397005870926769301970684708363637579415507374062488987400909363971553789270902788940622218890160256371296627433112238428734798634884569428684688097200405979293825733356501252731796551648824116858866800980824448026226359566243512949350660691631699385184449166043561208207807316957667995836345812492819330354472048848882704894071662738078267940203788739090468265061830059601722240724993549197845748093239097452506925452994017135857805212071822560967646488449261522510498210654870223400993509391266175337201117446890448460753314861593397333046314068982109903211602588407365384718675460811003698957173665238754550712229631188972378995643375971994601233547797956123661527693309137176585921703473995364554701840317445196712647060252931275349133429774601245423629482877756794908221231801845204393788865794321871981601896627001722477894303924155108942240372339302106193051577222719240769786449098871717252477744292750765584465976415206188184286664704374611886009391367006921364464905219457801042955144237042885406046991027252645762037212959037358938033633441092278268828618087341631042627968596727098410356915579141214782881313946140416125301007516648080201410879472763100061823173021346651258327465691675132451668908042854575697715021767267520380700439645210363564749130650499904625050634730819997175854814779621167290008858792023848880464086673856940670082131886867762592958445946213354907136327026814185253621643799099209487115036518837145460887649091884786568926034540133945804222445690774113125581584697796658742666692016826507655602896680009778870727249356121034474601562238644720177291180681726659243276869524305678415021940573284061733072391998604469068204646934695691730168906054403835345390698495470268791215214951523817529242707620966401970175864680595874837048201654774424120537400596354792924823594479713286155402374355097689600892321204705499913065246530178745378813721111249809836327431004446701660077642555516089609266037358762376846553730123119022151230268913598967739037687744938000296016351942090166495697907258661329405843079436743723828575278946568641713215217885061286203885558425016753090738258006531921704261743960181851294141935306387200933219462843086127503299310158284961385125323754672367938485751714082768747204578118959481277310898885639185919851123968011053005618440393415476386227375134562393208272450865338101059162803887844841646309034300730142628136994261390389553006672714351194633071301890282314902604148428094713737398935968160179893318406043149139243021947291067068201706120618630563633502258567791686515265103040420847563290856885146447129598189050974518519467476038369418429957147628169749294482090147262035046551610732848636860427917329866291499969008967908583735155708553375309500146006605862302465279051601598419686520974323717017482104082901616629452497634655198912386957392329412341011876489518676194265132890581704661823091024018161279049764962947653892981365377844537704112112775652854156447047369755913360306833436194547488004365007766750314106460643919986852192253466057078837818789480014069618090178389397516150701717333037177234176559456615386619974436510377121001433549806937455060932382566116464828293440440340951264603018344512458758225059573910757256499769182406912959734937312912176592019799600179791333586497998074153459456000339125242980403962905293321589322258516749876072832086324390524307591675527628951036372726585375014007160841882573425673575990222844429388720936121155487086028788719231168055343464781932714008541114809884619495462084660471230094527680901031162867903108914319877013546703457168675552709391594575477859114373204285047382090600199230643425248297342116470108789224121555135017216449104790741067766197318999206388215790991196214287284198280270547046363991962533432033010742854894552275045717103538474979345744157272985107706369589010032002615294946767428021041583049985230030206259200493308794735121530273571772176931135524366272503598583243888894287498105713320449005040237066933151231018428870821145854545942097239610547189574132321213362958764860743665308732489920927463123853728531974113382616551690324290526805215557566680598111137948392251760312049084726719039084886835728138229821349584457752485016166247496006021071774040770251149258094913478142585396766701731017305556359837243502316067106142570388880375051988750761814962560300953649791463348578416555099939212805445265063020965285454769612457115559817823470171170967734103907522267532469861176538396326766913982394515948057866225680375471677238953802038525063308684286600711705278813891641759982108209444222354763420012747472055499239061325102949896295282402849481208771940894275940015848835142858953348758466623824530825039591366646042473085919083672929943396737862664926551231479490190757449508177434470338582988313485079243152551419213752333243295122800231259190827903210066098591059676952221076988659358328450177976380841576762712192410231964572802605407744507944909651304155217346075208514780500872196399203051212524920833633758619980205449621838878929491209066168128327702340536127561900181722649408770883445556371401742951658988714044054466138548479274460431575792067596616115047264702179176216015936211110153787861382491327298346594476104536381361088616475493586704237219627979689187132904409373169302152832904222018277928567491373739675913123095701621614080287177983844790183437954828256337928364275560756257780651485809967826284184366674781953715823624107372060182729241036390454190624957568296034073366280992388423389898773183563449814244735995561003151303494016255761245799855399758109573214585764344053568977091504862493308616198478161803641015549550892731817431070801526479344028471911916044044849733304841864439439451541584714983719737316577994038592844937934423361857423134045918932384755473493966951561068614493996461981787987810208056594558819325672329027160380126693331574148247572505508274243635339877936549558781449187011031798792179623814442156823703915113113302711910889148814081466872898154648072417134706645027861469452342224998112473711862267084349660114923896650287896040067923892887613124167113855230770853114520102178234668694099713728965601193420598143213519803262604472609636832064425885470994937541553789033780404197901852033477847037826072696325276324197421005671970228393927265763065576600268197826647225423620129160508421107229253287682357736333458630963354404019348751541311631523518488024549869990204872480671684779990837821532371383760599936045763563552481611054238439888984222153347988270704639319940625215822372786701909530813929422962434029348358419639908748241276098581920035646728223886405432785473508480309652020127720869434379249855358297992560699161599984766543134388188202676420278753926056843473850410215838905071442598300987423469982760731520671642636469082204810016798417282420831780259707974383322764557255625116595502081714270222272692399687212026121396257043469740823598820192936574974515126599711364278111020323473180188491068211322284676385391379411169009672822751757134808046914144011271745679228611705851102495340914446269449807066440572271830354394757483978997409388757195197119709276132853909782330598146899729322386606400646282988778604346193405089681455476847514915750654597289106077679236689899104015214595826142502191834068276824686716373795495124528393015880117056723607436597191619204122812180103788197145467385645473255179110017630981705606960174520497856450186497490092946904744877784665589166552000607722492613536744115802327814458251303233295582559300041570906634446192166473381805538837275801114961503221006295263195219059832793678754030554099553801760128365672891865299843057086831183450438703644430613297070235908703063496186968543566210092159471635366888788046808379147652713491852745727087782160878555186807198523437266908969602333616897824172526346422702621769675752757325541808687513235246184211403697742041929381272064726921289147765389933294455329032176872871568432909451610609535128531670812476706472004918602220266934176972229844162939954505350425121345201088523281460000897083420409390829509499775985727466315635360399960415219365255359460249146350391289788839519656521536358827268279917098300386153597892584262363760955111556831989461803265738662294102518040813219799006593605934865445481787823130356385093707472040628694940966487132195404240489770534457027895281110850264501208144667633513345651327487974996975362835125032113489555698556397318037078776700835430358479447802763454190437038626605983357378122078224774422051430799150761797874323211914929369109249804380175858950211829712560023398050252727894516933557650633366554563601756288943898164433753720223791756916772652725890685760516295866245089013356442068819601987926698024911698193935713013055931628985822962428785509662884215112449301141749628533809937276679632829004947466502577031529206177384055424677407751350470873411551167299012326565619249603983802341706223339848688396539456060419998953850010203332146160494205154376096525378416419962307576995290893844822844603697385636580132121517089651901877076553535410165959325391737824042970266094862305574974046065548472072194804702601848889861545728708717494373386000648073263750115470522911097456453723867077521936128008287755890177215742689518547756465734987182680153416219984728875899074299120127860781352587084062692591792361391775417059644952666034110277167100397230183815354594939484804555058881794510051842329732587692560832088811867057387480937249191298969359359500138143605212586133689627342112915854213662631828239507902526143425024605980269015603934571274850461354209898211191825689561383191766147094411517757289923471365813134269859381074440298707765954546815649554515938438682520379805358356759627560010595002432230247170878720948032113324365530737400355253404393070719682358406631615814043338513960985328965172053530994164881655648669475883211101005465381373009139703027013207016273031543521027712073775303108181255449756417696402313820565294219709946883621988861053891866244225769364047508855435229506619858825318992777498678541065886095210756605245423646280064683146041689079372523244628989735660705636544571143755835205155555595688011808304828925813795739610732417855284193125068938662050419350473536277963865645673204765740822030928687676116641400041106973677275599305941125588250787246736316069923157862778511081683644007313597229963154617121679735461364056000811173206039216200277769024321747609027309291961270910623232448909361160298389618292267646632219130734177663586372272511186468992009706479587835314368152348486494744725764143553173059989090202643633569218856725038924337274513116908643038856524725297642486279698475015535960242902031497569398928725699472270384032987875657493306982302369060717818495100317348867541733306283066907790839563361419807295455552528288911748719565440854973554619234363655433362156673503073590170419433260892364871950333798475546865471898107048273006219005342964643383139296693024639075932841560808749669169246252623677506704208217448539401134057253084615991438886152695481840219763177782647100685809933598075488426998854427607023029036661661443154939664512210433171562842807106190071077248857226915633567618857549548960780474830708457963197403830536898159661194865158767730010398771153911180437372047502185790555936811639620016325709254983689551353230505651782869999151415084741707089968221101487975582792315604820570391995154940444068114392298997535921453149242873691161309648160145505384989276751166433013713733560166830486879613675266788663590683932918849460056769841045362344279681984585113162709478341869372567400254211430495596964099411312181392860240177725195021181724156557068931552288073353098451077210331407908865543858651087653329450421735960095624999433493065140347767759013884011761083463159498471798329482887818604765131428554031267597930145788551539005156292167528047382281496621930199994217630562088310425966695379149872501407993370669022252882170139771878762189709291489115303975177742353177251242607170549256143585768821068878517247299258854295907916329945025412140929437213533103394343953718439736601683685276486312379768116425879598671651339015688660808304785968244219806758884757999442508115448222010157255897780804968342022474626661245773204270359763665682184668944608450009489073903840901683141654719421686061433423066389401169603584665800125023086784823001043205751212258330263851343738808125341841495718183438951966928024501564618437305383757493002537758182487807293087219931537143795446219717542876111870881511211641734299197414317000968047492486469942579282095997544724967262264055313926639340991717563759707107119130902772142801204963385859520063457095232065218583833186135095247654864216954932364783318399811152229938539136206742689804392439318392486322202637158562055403935371656160143132490255791511075068981660553862726868829707410197245352516963041484494064458611030881760747455937518757100077562654446496420492826164657191657821413280012369341722572734220740978053869714276231975169399960005284804873241975957986286079332547537583150274596272734653381358614487270505691936808604581926155000371108141357302250391811955634512730983620903340446552648945848842142138197464822497800809002850072520526826191517949922486745176150819894177730153501641408287527424746568289840766103391877166848679200754676735289007035647628760288609705225862809076137706825823809078794099849420247399283268385862294679592136313696781142198498141331278444434059898038934176107486859181149838664741963525433361661258768477674021206706873434258841759145872287126859563664641581746375714740480370321549651006338672579325356726484533969801132542290403137230791020016062736880994869265350388161517494883619622470045797162573306541082742517495856345396011860475842578688142431005249752001101094999262819553741801453597833469876487906000425214935137394588103036667771484698985779572315065982316362200292982484121792519105192143883337062996658018521001525429343249123671043996348581322444451696731782349529943424717751746504437731816232159232923209885492485031359310563355473914351221608296428862895612888740933282496667713640039904344863899004542918356856769908753388054473079624871420072880473007747689884364989861783795182396482200209336046380516716804032187502130943398071821733836773315607429696512051189871740068265712211425348058510854020985179236449507798148606325914392069180420385505781189435559636037920653727481710010820125616824957822377816695423670418737219866429448688276108746595061298494279484131505523881511838428872011665606584468105248954909597599676154948290378433395113261162899313884591358186876355260328498376309593971815387642991950734099998555559889328349735478677206454485952047224906074021037738293551233571835589494559968982730622655895533030382996773178640985856467761562226114275790756489828652059098981002510936721381654298180167553376997357830532683484686108548992859703907382465807142522490543665220025289578567096262598450482799573140765009218429536139350927947059577683154486458099313493565173092521893166803821993746787122535575982782330896354112463087753252981306267447522397661041139034385968024643427599375904917857970315620020877404697513878738853833104474923026434018081018332086252494127052903277224788408823085294090793507741511826725937536378552031403004158837403097498074280010713788295720484694684679200053013882092539001855295930667533159007038264314221437772070529923486505185701028090147620552056412631860615140914078888946315336870843722857718057971755779235483043070978675776026113106772728428208634431059357794369837872098415580740464509829394082399887620116928035788077314041480770707509434247657290315589101229221452197123615940700871834186995883543697877871977518328234945604688713327397173001068631889635474641260325618329623468965321939707374639106010737636108379938738622715104795359572626281091791935823335532230308319345267580142795776270028655808575715647756904832875481497775726477484805824749241004618689881372910862108009790643007679504937842256421258631873098319821359372798101172156126927388490361694405013694604735807586547204179570609420306143358887177941057362596347176350854783569623346046755537476449614572244002067153160200624375715490467999026943271084096298281231309745491982467960567943724304242219915161155947817450234340527823337647140440066777005187687225011164838205974905385906908889119657094724742555448022295546987699402594354264579160327794158356871407269268711550850780188675761279713086778986744733684331357768703308432157975756879522061895659754852126801736662185694482469028243258694100266165920565077402559382071141014810703123692017003263913685979467343570224045882157378325230410899468066791798926373837821833972972937943730086543742060843849217604807633721254867880712696197364176609235194412955939156813784758543102004455735881037373148508927614185445579679385053296529849918719077089613020184793999481105651007189518730926436878977773317534814095198644299080678594784023215789679208219873781587317032289129087628167645305933399062508892194131132701703944610808978402290456220337905075054693856512527019251531316027299206891489970258644568528372841827679463769307568761157815763223835015303318053250902203230779914247912982792023672662065810682639403316440187096199941237650050385088899232146454595381320129253245909238240693795472657534268368403190407070375123423580366355853872712964848347484347644689772049073725394116408845743615496816692181861163442769041774195933534737461789508986366105337340621422562957649372502195087921085847809297389264358878711012168075135508888402363244435509928828886391994973515499550926871020405384404758223535229533843714019754886309825227503599750027344048922124439483480663220786884386751957805259515103215979159718286213789336840180462281765649022002268918872362341525855873690320732727587340364903842918374792422926994192085295797736831405335640555637295255253900047935936120979271712032902252272797730026236131543815037573299057887961881618248482704005216105327861240828773010211177971489122863203632907272923292585753186581052919388562664096042279181939044274359461490021511157953711985062109501696669935636653541310560965912159188751834837208886728156116488669671747659051238776766810416030058041300750228962418758435582542601840351655318006819735380624572488093357758797100048121948500578222376557909249595485907207205271770016834629522169539337874725777736056693834148985989384491906090336911385602434382373702261766669158460898606755439258987382223310776734885854422459117600625420118447740649408903893928177816606065777249617119995016085526781462244639204458066603804528216409427094970235364948888556927247323896297083716909020857245876350713011379535542542914222160490546616064125333123354794906889807135384214648190798716538452219210778823151138011649062636535776001353637036243376585908258903718492175235377729447147924239448042511955614507358503161137245184600719159747351448619643717973829418950278761345910820660345868530088065010618083709348650617684063517706365425185460566839743527823269661722180196076745288331269534655332004909066160053295234721692093365195965031238419432813170633784083412933554390744506381205397610630411239394828171750343282881430486307687473984699941526709316928457761726920838425413191791092214208841517173835069892802297611256998182110234488684736105812390304079708984693798278657072042271802207196970641703343359087260114830636630744906963290791702882838102664045674758313284504493656335611929519444220435057695440102327928649071812877674848237178356905566941780900540175322999206217409925682155001568376898958007608182065056907689012974046216476020027985488026046416804258549238647882438406787650226248133443139836372187393518533985119923830054559111024072036575703973375907548056575468755516354838565178278039893774932151966043716793003243496365699399515691402302476768966880562058497768942738269493068630922037263143243361911732711042276111489991445377300355796158332752870546853924169449515214231028925426019994706088892645978706844491708731212770418508449818552538301077720471016157184572014070670107854139772581360145181474314815152948702333061794452980453760078224536569968652350343780480794149375989671962164038703655113443429571895029054140311908865480653208038412955109104953762970715453376107068573023127248090625122743597760829679924581793168806935524652315552996833808212113264983385468227611501437243817924707766471908862303186315021721502759823981980545905577896744065472648066443687667017360901303553246191340790975977732059389318102626919984119961162821444202263524285744338234428996330106914325805837157851853416013583506959901487711920643217862206154672556122023639091556022531541382679020445770862432229011694371156224410031416641115603848331103098114649890081497302667255617396614216637180632304910356500288980149991953365823633191882986507841484982530032747323463889313934992007456759148726469822003523744061590814381724581109089646949811153982158850652593006859755045250342373118648264237474364532227544995544536844406176237759926434023265706456832696852956995375776413302887072837098829739508946006728709442109721710676991926818733975315466587159905408326743055984519261320538427885958149049213157879645027863040965959975780660556632564139079211220654065844413938913739020372821704193792729737575437166257820070174244739680289673610697371326928731500832740297302389752659554663646309434968722169069529467221880742289368805321995322502377099172835801439481987349168417367859868047291172044539104104219212679728128111944565053333755248487417815437473149888709248235626313355690199421357538357425883100000404027421700529045554237520352923334249318064506848995913777316134687161101968413815995155642931187217130401894964542269487617027578273091004467602132376454758951911955244374437608397402016665773425327020886813563151863521442293033507154682470861546480708894967252683945484398698874805868834431157419731857266599561905214384808953080769740906040833452187298648187357925009628501293946565551795714051060711834375874733970158779594140130228435088168515756899281841221477476132364163512915510572128710496729649346839364071400190354995922820077389518190376484972167487178955160991570012286377028091723556476682609229242724509814497456110368297759825895185521227598544370428143706117453928655819685157400045006660309108258030735253795473796039486885568474800355237382252406249336613508533798021117809350821572371821610182487809377016096688774467912653932962779865473597555591784121688006544059361119098843732530201870385254533151994055081788161618221248243370193932689586080803852941794478310545310427557876998101383238060100128703412718144931258134409511967122730305757719018089151006673640881842612924310403866628548926233981218576161886435127190456282299185499269122367738005801343956091982233290499177342779011281328538552553439982186531519241713812459587934553519959559686427126988407406235157840777618386471115579389534565509535137187906219855015409577766923637172830213011574074537667413899520196598683064875615119236320390644828975940683483221602830205755257001072168138261893006478347431379971415167680138303650320755551637021008335122206193673340090343598883140143585791439706940158654992504050680751747360349903339314324175808420509510192304735543222325696189180849959607842581251464685650131804864966116802759412819426273575485835606528376994774658484753660316379245090242431886920709197576201835652489454926351335839969287268685087209283664762661066564301861549711175875508281978623586003177166662917752665907031866883022486180513948450418946956574155494824152435036481874811223241948605646372090093409364055402455639577207020836811589999035672568071034905281393223202532254612482804921001656181141850809443745811453954971358627582035813293600117699895147936234204210210676877272873018105340915593777543035212816572674581119389729010283782318524820028279573984981234598688509011746428851780206926460884131935399785949123132046896655070138579917310630211742460986455478184878607109416392438169310340114603724878188418397434809634347904248210785867501982330891547085562378320345875077435089318672198779062746574557927244005750929127959795085114812826570707917738969919888863535011780551064096402742526159733656921425629175529265308650559346886971487509185336885181205733748477106382121268112181896950795711374392883361687517395074458732015341015461692661858147654705710536595922886863936756709240860663899973858064327967452751642689874934856688690075117525192466418863761627458932221065383674581022951633788309103037760736951144295243424186927839350671614517875744476509423921928376040437301504443303223454556761310011837015727407152859404342331728108491175045685075587510450342276099139184483914126300586686374023590875776179730909303486947882433058221913159596800315985235525830994728560017193929020493795555903628179211082754085881349934359599606509343273141514566897146694960043791765621445234439848356024638580039481475892658452871815055371460358016497950525582493374968289791653504028416752444057632769711129256649525437003290982230571404828835026393706128325112427366191442972782370899361132708007085875930610475125013936709280782936163876079533283584260765216060934546986647241253223778469795713342850995933577079788553345738993967813193308074283885765428782406454463000890076143792346264846982699210218624523534559723880711939646693709030369162743678304202373238039125063134518201528134218089201601419411770949580700766111293217523816256941981914762295643761500962002726337055867991723870351603190890011607885862708032428963006882940852267279766515982476790532460039385489458770074337056759628781921191049879691541707780759150257496857408791414333169343768884526998098381645628974827745207376714480841379975690626325924797137060768590649427879497288749403104394169645948900527304115021411602044758895077403204803133822447256890072656208476962946267973022338261838045119367259412027582193104537717106076953430572637608112391294020057363497250806644729884702508290133494892677698606648331126531624438929122485032817389672150753536239272530316706739481378747276831779843942771489367613917323796119132126441275546224376809042764373849473389668126536517581974022246620465932944901167184081960524507201675037690660612473166811396884824059020092786472090730651768307466491730629702712576831421813844342605212577992246214347582319212133987462509943254791861387035591089437571237878547058524049306010833030509225250312359249946049692181472725724295244127459624682213575513753720206558167279487010986730317724550100700502143844940987441946996016666544473028513874402298192706669926467649530351716679503729579048381416756685054290965031548100365942113099905311661506046666375763536645836050109235532733107704772203598024426919348497327331724347986093579275777748449896678914304708816659942644920615929066783831689878820946490380750213022140171153562846681384443409170025001734233504803974727721605954215664636862033794870670149636117266480214843087745749299247934835521663145368655746027301321251686335295274464549937334023781369099995137732091182177695878295723737241154862808884161689603651619501680671097277104575335801279620794625908819449723157645659215831661398861446001620564390355380568528188592152937448863469814350179928325009270632982970142563685641910910539945021293440730991673237023014442065654080130549582229376935721941312813184023930230979101405297485652213000046077380936165388937212441658021907312945340145667022689644420355699234781984142766827600783242362325728749550441241015030136225767867840210857658417820870934947214704833834263027815971744207911134491586158482308481851635059568658849373337145845545070303877816288075196156306891587519709405151344391603282632133991112032466818805524987091968461265335575602639803600217843694626101707346946531487529124075070709080309730591109831659831987835362387283444783793837688075844743916644401401312414842462619956868259529088602600171244271411047152786302288357982852186314772866120542320113547146310223751241889127341342594455924783874957019815459633869511741084269855248617175901196540745298843834999652038617606977737743940994438574806532345967214117692351983654531091787999739996765393942505405193374641392205334951988463816646017692461261733357710068239035645672729768251262765411149302939247030595869357821503932085014397822852344712117619618761389069494411104256955481722263057180804630518752433820613269689339800581002121020669609381212036537937119312707865258850886624412287393977602029634161978911233933269134554123769792300189755091862371293691042997122110919255033671268042843848578027736628564583542683683758230122038727276427323442696964468221041461260692124284784590052185123866768285771386058626473588759858400771752580165372969579344821364786847492911207456722707933997867931880814915609170712629795899593821108817652086348994416643258428446954107257725555749962968177915981414327346137115052240560938334851478200940795765226016184101211910662322059688419420158207282671053358706515849568620673899899543058154022839779999484366297990366104237170511113955038931288086376337828612868171614339378485149590775126664905061715250558706733308215302957936785795204774481928477390483670679433776870362083319651549919999469596936209802814020292377880351297971715833187741458547410065586848171359480309192463074015010439076830747993272741693852212643134924497171206397671713070485023941921494057772671345375392051609423554535420057378041123951024159103345799776178192532463398804618046095851032350825176957054782504083945367267704222567730084640160465173538720931793804023450642415963750051434663982322029373923148027153716304219340571732511635740379850692241475859389534046342596542616014621670105656107965823536020077553846755545481069526741989408732058680803722300934891483753880303688951226805825983737416865593834902844814209766957192160053126113775769916662066407665299326243716854644813435703689676147149344152038113688335550527432391737180449549418769966526850021864274095638972306865030553039256064033419352213495399822068105551833267846992862078583285590728224703281963067901106677328690691365491666359072868726269326032493020219956074243188293321215195575267443525948141965723395517866537758973772484679208277109255669934031381708733251742855873551344926018960825506573764102378944426759109110459318923846887908248707031843347831534183416309167580430601141361967958064759521124096277473730318105422395386181017137802030298595954188969802215478758502662331547859181174811757881069610635086820751379525429091319554056181355201398305617962967269295657349332275414204481041728730693510655427981283483416020606228717740029333165106839574567495461608385093719491912382545147622068178645994100627997110111716422491862366442929816136260763545246028317898607972778839657128157441580201875663841213909035032488951137773993010648234592082909830432968864202946576762445718813023530969305878288072696083735330904586291409195901595667679348867270590712920452840723019142066223821550179663954627372852831256038129510902728499108219307933274411906865469188520946969538948113259958377362605220321493415439570691107016947121783806048569136081097296891544180060515416266588650009743396142973770482724844924856101759016982171894915287265611239648275007002055437086863027623310658115117276990650515990156992211447791842228635017650841964198780967546087401542940620196726378636983094310678328843717491940596568130972444169286371922281932582068487345140495669262749153907680292497784884248458650995011964926162706132491825922083459035584833318701932880648878122415252443460190362111136547094656936949508575056158436685709492389386940744953621666657658280197420824362703642488738825672330802292087364445770543273309695595864791537776194990239357763828130917038114966834355602344644988865744856508681477658025668943826420682743480748176935279206867296162142572480009983022201221697269680521735516627990617694359664702781391361495449766735474414398143028173576883343151802106520667174105249533201269028538933263207098613413618291614633503950522188817353055197944627378840060953269838327599123327649254312850809015494490596041468995102786011205530326804159235200739125781935403324221188942761982610462204040136649703598384827253894880227292729420571162897730682162059367720544247859883945072757344635706007501528154659324285805262861372954830711155473415358995636779881141445975706360679099632645349466188738954375852674474975925716260609640189351537034575393402563981749790132503529481841580405535701131409054991043469541349691001673808646390698842698301062074522323943329628758831731329421419612492439066574580769601404169955222098515321532405954639726974291888221271085883883257422237647222690430884309049396367149815495048509148216942396098997969992295843715388607023795585569726911922796111702318254135751516381204566245054867738530637379520646140887829753228487931706626496940644472901025706673978356299267875310499509310956854698352456792113858153029338511879893169220954153817520571529908354680019007412326099960306853581703565486184384940607688212589914254153712713691301865119192041526572009201924739210558651719678454062688083511689190463208296288883937007691355601695968020433039296003566195078988024605693499488115947686138482815337349386713591115001850216437697509823879456456875218138858596569373989653104149092298884366144394784157635709342547886649657997473018626319331214977000794897937610128915803993472209871722274296754240996727816611011752567365116434297706512903313271076908478502607106248244615493628954665475062424156951710405363633753141892461548099771789905052228054213745346805066411786438259314566725669521182183696432441116292490268281626436546930034174447117531601870945330130536694208481695563172303391861708885388037812685281015141438653227565404206369219514946565254995500463620432655401165768342073864087078423998810189941405115798432200364113021153781505016923801381255321249497854892805788318761244792730201787000821313124025633034802047631611513775162403334119812342279976861311170886484547367690129130309804238302456031523365328446092278640866138573629253740907773431687615828227636925645360528073530261251708486340040607121632984134918129964663930975984761757706180764713458252641721049726999731227274998910494354742638106600011915364897317941987832462586931231406610295611832772709552081893335996386233082036965567622578767134693863082961656969842857445826855596789207641943421044416830025670527029397811520274474554231736758579205433033529439780880280485888214882201144527540278159838734999572179594477854000132116804679814446113545960261110042526428003379757011813279718395222168360300308377255028078685664757069735121719047832733263531308049090447673653960005341761185787208418433464843300748010539205775257901038567868761082161853182687427299577331630079588251311984281748314097797217743311537398960056395393920029618451848935843741558885131195951708116446363607990096100460721651725387699500817743971122460532574900266682258428637372426675080246693030510711820565278760855212333370786451008057567982690064186096153867214975753405998626533001083330195120616675354385715505489423680534892552382948658504905559008970998109323275311308358459651225287195089258239478453291758320237938738418203199379499391547623514065826515233598755799535554292166172627296111474042284042513959824123742482254629846827853942695656706667855703561441110774491469771745062716749974754475906072988665625826516340545401380501524025580236479406539226331585882688224972161674053752541250445491400819599602176114061036640609650589370721880343527405997457743143164154801371905203555062595231541523044190091148645070681256000358905449728393563222221499460588224688403434824730961825438627402510576436663768256340431514199272274746558135936621748755813187967974696236037775941945805614735614146475817987918771408170151908707956899423046363795889868462478637644213625078946421385199074150490949972648453007624619929742313011650024446649255117813843198213424076303470731858959760024888621456236132394782923557534490912512549090921293701549874321443495246746840484218863947920881855511164147550701265355782603846188396911215864471240610022198896468802848231238032668413857645961829024317171380879813797372847924033730729974011678041404022192621647252154329206768919026395900326621257895898022671064479722956558954411054628800112386702626334149164754608469952756432719077648255981101818894187286903189594454879084686718711856621870812798762829741645236002979026647039171823238636895628115455540535390306743166726104603961739563975933325543996832184914392834105636527371186185692234885724643944654179964487030618669293603212437845129528992310436313448359128567808664190337989478517655734619750410745462548869734512529264904447058981638630798309457652888151010715102632196147177176671111625356472335966748995767474968995989111966462001533897601201349675262717613085135798221664653783484220711862369635764665922551323768188687322785173898321796607930350070499409569299128023606005315021222355607247978184545084284313452088613831253832971759276159381385044220658734357696856031738217158863558276945479507246414666602574918263391527585639887771116574200780685371430030670922411938581249835385182547398894640882072107668941659841305865706489368769740483748802825593575349442773531107926092812001056052747552545034461073187904154527084291571126193542272277516898445293259945797198420777741524548220644867199956854137294054764891333295050261119770057363616298254134586139329822971089943379035626689381724475913476229682660364309136241739492426498644651620250824444224298038007292203192913902458387109335184017646986267500008649611110283165795871969602980241523927223222881442989941635502744883992225853494375601507672475659233636429018241470499939939252870013887025021766011840179071696416757384415321733808564703118279774826589410236633945041693109683720113500725846266493534557758877948175263363541888661035832264737378766720610220827453280751168195596209788213779884623261046105888608424643822699839811231462860825305440692044112315956159937155856339681570996271172547115204023104104580138689331384554392101888594658793978908850659880957450412030225202872208447191824231185066527600165624818885412610135585328762594599177775008558988312569049042790035546952147457104637031519704134899658030009511440322298471487497344083802251709525061111834036902296717311414570582432820462490510420859075846892964941660254631731832161262895371820193506128189708058889999786713968241682145533594938657889663384305647263976447576068692639979547562385138566302172968481251824132580633082852642727442854953973943140205405791686703265038492131921392465910174564274284699058951395788588849473537766421642304215693042665857224119793927814708523436059127182825792931689378584681707265766710030270613553030168290693895562540322919254034873816730439212871443025478892233334094742615948180565136851609636503313594598219901523135435492595364915336915153363468280875714577394803493238681246957555068726318266378411547021962423981336833907183881849549002518968261987345493076557062383495311711056378329525094075714426018611694713215606910568606625099053421627519365199048380305893406088849754657349664399433985434869740021858826790640369994992429703863658232480303910948037390327551704882996408596356138454655073319794588410054584681153152806431079639535262809336675928093128886333909741816798115425149667442415163892663468609700364133971478133828505504203541803041950186264944010716873226996673234151442713006661297460973806080969051069577140599856960166497020807602674822818125158359304679682823653125685102900522119501370429193587605649323036604772639864341853324606134916227091785178966717696174395893855190465360046484262180189412826493408102939446827526566162482470743756083597916441107596373233338996152350366356824871348942109833382625232353410999900902077622307840796374921586896749084713268158436403570867709218229789700594193310673761359627177055494933024395111123740914045011910609629604549078671732198859111847496990188914196754746826148329501924080081008379054511771348393682608836763926668744833977525572250136355202927871705637663588189105289915485266868057071765082616807061154732471251824960910890382481392262702233628111897291564170025533158712176187692088615536406607605541753248996047271001216834911369045740825299284598007736262038966895021601171339833618679014303517141809268949971444764509689292610508450603798800163224552108149048139561614543507876758848644824957163316168920917040909777323616536359097103707587209961693020471278130224435569256272579245364588620185332092946762061128886808227659974158997694639218178977387198820060196768587202857992702650523144531063665816162897211689849957687474977243365522024872475632909562258505765219860549381147890502019303615725165844561521970319761596218288371625370806914217256387190214922905838268694101160047048031226821770834841420876367476441283496595369446979355019713281754953908148527499830844955500518564370616056700478106153919899961425221822581242432053714860055280669188549140450895716263916550192180485260429302048917840625243975066008728574978579770645916708290577276740072319354988303450041403208025911663014648338043372166195884677010195660027803740919640366296147151615858117322609206029796111057761735086637371314521060791287840743956278327758311700610773452123147442092530486402646191236995506208895471767430242703836313353905283142821673285266410177719167697433016108609476374163305246850706466611021851246660713672220739585617945019889835300751630144489336048854905361728298116080408772132572001929100353385664922075924660478138750879800891348942935200357637671733454715091242188196945171722116759566746208777974359018110763747467286591474825353025928611475547118306244410498872614751102915470897566853094021468492908011813074449973367183218112138499433041246167312029473974112147868492558780747912804725388436008456252527051972198322950329561590355935705576388511408192238519781924535572782416017426872482836818256886815239142393759901407433137060787278444819073834619498646320995799422819300575136719872955196127877026503224556274228250836065275611062317059554852426793623999238327968979370352364085382342608940932476444371761120464114532762732195789822920617842995199833178140856481593417155865610259770133926045413124704388210160345091250345900680262514272831978324150442428795874933134992044397984292633309826216908797944084368587930104852643690399881429185953194029148665657541249575267148818902365381567382194414804244311854169004215033109821724570343628086736682102659287084554660268290283382230378109198046439703250463694880343092393603103200383469126701830272850432165872174120098462310005864838001149905080246565823506716771908717471797877130670828850977596763040507193439622658882695040221266506454835475181348325623735384736458120816621524242930642535678761789829470882658015179214097601025757952579337518959304859272113208780764962607179270146731549231042645317372785378133127846986490412975803248507974872095531166595169083249918945871970114292152305058757741181697549815933540672224622699794429405061075799204889018072884267166660672803241662499252511140586429845749513302305196677723177119104203745916993420637095331190961784145491582819682598066158849189773905654444522000940698283639373810962024707762294559960100653006782239525819595359286847391439204926868994790268875240978861629655384370561024795080642723688017795739115729200014962632272511607404560521020157136109284494424927833494385360848642329937948410760499475178984565458924044602176095880753394391740587485753066022469170355682169017269645815140118133506913276647318429821508795206881705421821228981448178512332957257150570299447810393407371763087538180235069007770540258456182635192237199084232417208505616869527142845796098394449783374902796866729410884003415456070915979720850975542068673061552421967390116692392205184818127163551701794614429708760377605936858680346712749381822296817874341394543833010944654380157010874451042502994255372003673361946645854722548770382761052284534136933793244028336476202050814224203186308321974499756870939566389634320695512606102998766126735985832096147452641944284929804938226740596722379575845149655272813711246753766506579130231167050298075241338977843916595840636371687138731949785734499572753610975179469612774783220173062667625796147234971436119203086587479382045522942306091571162047626103867858154425970619080749419631769386551622943519197212373324026409337193452062467469439390463847053487496705046707246765854234936243649106151816252954772974987586422586860134125072362027138221683480423565423380955260753592087861561099603032904309236586529542988411418298623517549256655052629772604634725483790672186917883598358739207567174538802403228536825379012514263785113657733217440055418710283241056676611732258774724817326185235181169174885572640555783077328873031272653228281212194712879056271396950946587460924115201800212670961282302614430738844861226804424411708279519380195647030113645920767881620754775566927200589515714874511961015421206216300157756105093930921704433229477602502351321388835228842790385455499985753897795235468547000798600254204204856781306981048348927757242806395617422389956668811273631790714962697330007945815601343728112981497856499200816151512774629961216414870909181692627774507885104669256369082722045759692463780526560647460358910104295135756796022807018284442525249603948468126158807906942491417273920978796998676872532068181528305610910672523579225522453777562791723489401290414634301482954721123428463406691734628349070382511257913630291943751711861393116158026322700347169251960275435442408032092422472337092973311495612007302258853078427096172797202127160179729007966095664435119093154613477116571266079960613801298232213776716482756683297467183783963123359738227407413990403133782056053566888560379283939883123990701084945548943674889343539250368334979535061845488772133571300354321119448639981127614286120607097751508083215907948420904182566850077596189106463490277688729590200745439237879381519588405143395790213942784007386241518926444219285897592799175489329190920046504927551097725633411505563332320724720394356317601753314964227704606787049038739869542278393604755362379447359772172073748898258489225833560827098680987258709247137792138973432894060079307442559549938117521600329533194074634670969657961376001886971441617788869753963372340755262886323694491898371366616130197882225622113616315853050971058276378119378330492234645391510260300454324053923320305231494620032584709463262483468702921520102863123354973091289946729839932026980809740464580771149249526023424818825749312791711176395626537655709134644893240231225007162520894420329221500531793939831078170065073873957880121926167578051684640649667215932210585382091729365193125022963137440157026090888161949477115398990635199341784778036930347403561959903380650489071572235967553908702528094381718033077175438568488953507126568402146173481478860683532718156241062262933890555066983379265304744927621042498673063071437921586471777881760326035247716100811171851159205412858926161271726230665547720207896981576960933629446188223561671240368409353963947364352985421355738328271470307943558621711306171235322147724228694781760459972304221121243151414897038849082274399808578445511106521648027560015286296416615038615385650786406511694232704519188578842988253293340212719613257867780471505744542829327968017633577144329548904287859989207156810695191955930026506986710440569092247915033661543072607120342503233867931414466027755838175785133503734841327317329520964468106781183421933564084298770535512775005095961701033386914315502591623975272138911812291599801509210418467046223294525833506167006572169259007401176054765066983539750002508376279593095635188533282096705171822953428415879927693442215793783729320072028158531067149649269951615008798926432838345591465336690832170501000266448568117898192738788819571505701321489164253344764359241593219032123469859312631760900538062980280845063359582666054829777884131739810174234073301437062931514242189011390655424910168940086800718966093021167087663179604875663225084782781311442953045907058891689608377713510582960351231403072323901864738346867364450965347647037153425144178639078961819590545973360610759549291183496932648388194461471730772903490219534195373432312169668594232842566437571960626678131841316678565782813081886494078983355784729512194245380845476594985474479625150515331776355244597693062506371132015295250129647094879660695328821796642267345088689548225954683674266441931070837764121864162076769368661199930129149276422416920963418722433806119661273468685550468409261751191078909276774266994544820579506837963269380041029553573541342341355148535584609078301514775958436452704559804309575189069422800362633254322825244504301440950740515376352914401674409143017887669292647639397898913205209273386510076992578001752625057916311256352315343807020485316036171901355618925394816918850814736464811861037386554140363778072824051957501183827684050545648536930304491582631519318511393490718444688135571186209199228143651106740132475602005658865362272788118710653300923450604394410353695461143502624519570203173643120994982000860986532870144780197586965480498916098830187769003292823076137433582875656876288155793927154491829895973241250280025718878595204697335192894065545145582291675516628605838215979016511335059385291154271084715049700880295855672123336537858525504703698716221689272622777376789275794025486354126320043610811707694224099800517145526746073118114114776446751863487424272029852100155750675147405699359189007597648587497950825375338829398996852045040544285581412655745219734230087815489982045759022898755160625501012010675170539317916453459195793251683126364568564036064661657683005237834971281378324147406316741114398388372896058291784727807435076162249621161149925214490450578740058051774657279526997344198145556923278563342240906527816414589078473175955193922307155800440009954750796054423316429859517789195070571518018326753589741751470761836612639875212860836384295408202617537824451943277140979031705544934057005551293221812196478054908457133816737565818893214113953933066445293181970833196807967278656409367609720021997087986147970026131528683124220436446139104761641768687245486917124651693283743304921373873919455018951472686597760351560445522844231901698092642733205386421287893088661797864118769927268908995567204303381306971818703382759214356518763966455517936375651495250958806950427891651179643441340215442957677321381201149764241477660519162580874729821887235642855605448219364673157818211548250773907377823234165188768914364916625747008802911468209354106607473798310118952884151145847527410066960413372812765446485124845933850098493478531622272241997189285372125069796826244566811414643522858515336785731369697294285843996357672597254896993231771160771565896935418833346539312320984055920571622789704843955373645186646606196595480634251518458359382749615304878832679317205624997861789953744396077701804686458715640914610285230410156815402941077574618749844626488471762562125243781803002404702511924935299316261725749801511115723476056688664710731421173757381466953784892578746565290590926561299806821794587190577699793980138291053617251599971010631836583809570841036784866338761304197674434338111855233527950229963155443338951054405615941469963461701532049498458843158647901905667879900885939067703499242438919529408953029665628652091310866812797278681009748975489616054336784112620288093080112239348777328530040420083414306164308080141469651286748233720511875074934871869361789819121568852050669265884024743631035757613074150774609029338008019850299484527282367206065601127834402022619364495870014806896173746535564938465298892995593726565316739730950623442016443336933845296239525174316273658951292420245976369574538970039009763803044232139203740563312099713229095427778177735389589950439662999107737274650763952595195171952156337963175988607277196822000023441664099130743999631512361334418788824089071887253165059058067457759371312421190341404352608922402461989457061582331735407709387258090374061554537060616297623501166930961205570568327633493787526297480670076293983657652445582071983802011779710442359210500104628420793186322501569484973168071510389214260553270713410021008272421967869239998610843412045590144241112872835630531320345423709949097134179708666732030891031726678963537480525370434113180086083844502800209309566319526156315343847010043871395375457110029331105923416554328800718363712232252467017375722613379647062287603981411476430676600077690477119760961394003683526955112208769562911786570420479365110494987325919399790989092342914262276034966783159698389578041895226031192281212515510684490153217446827477262712310367103131814846302354873111692235399797068379315150294462029273298573628615802073661141579878293759522592956683059417067159310010452614698057569802348016128147685169454263809084927073487718267310735792306652058067139097544586189296149593111974686082071288984250251293766429906756402205930713382965636483096069722885575273349879537506990293236497550975504080030106360301225265828869164922484046046208010486510687494429228006622628349877832163784650525359474092379079133628808394650514368760142527841414737755584097489768414534596777365584048652336137068579249461293418575586560966432170894026574485583316180553886330499549694834132612276549770397381758373385293159883172055565020924201010090255784107025196778881157994563393030672545097084548238412516814251500318531792683034276558075352315085834851735263708537740366686581951127897846733207927459541017764276226719810011812398060259673148427913354113735708955416883810014068021844219224421150052688264758020049495318112628793280726332941253768058558473905620659523981672372185268322572459498962139846230487740911330877360592824308167061813405158059002102997840861527514588783300672184355134216914197611419426533975829525628144719800154366034862493692215932545358376854436132803388248887281446692964059478147770537783969462075013615577729533445961174846990295173125354384795597063407072298395421417702336690191242113364903433122906120343646353358247856662334477249689385675958710744330758838721180396663409443286208672150237618168613745518722052749616353593712718992499416089876908457672222424568399475726967122858427010121547996841238972339077073556938679624258440379501371654636468951905348717364544988415765462226950078459421097043208205091931786601621961873757699923534024660205600940585521750350834859244238534292132668215175454295316050703563750709487461735519756649217068922631743350438776769749443775271080074925389995716185376096133496694566384976173086942074405499488100015751688537377434002024154995537808314099940703449756357760567252137092476809621757673147031589613076455658307487853476533931168978763023780491871337070471307716702863166216374635599573872610675658390186984442216090739132686342402167880441192995230363647123514927220621569879372382536063404658950596764066050650949217688088282012535096936572207560187795341672866033150674360515982000323963674233658547912624614656268511472740957111631317093793571419748575499844225296745894919131652620333539158572507030865995448873545133963188251774696746293924174391245657924705361677088339352548148609808831077108973337181354826638559866140909371222365712669984460314300095512276992250832576007726252189800691004817442258939014403836573377832748188719956733611342022516526447593368714340506640685477030636388632641516723000004803054816454696263948250541030926477802930014171545110667362428638683557778231856699735580853330721847923578751112705863708749713201611381604543327512528979699900282138240869906365139819777523408323618668351354573352333770408555433463358008454932268342778735110553480441315815643587481173358967616998820405214371481267287342098958648398140075177128799822423153799588438135705776840479679412992361740098280956411551488644235631507426964837287357312763148670264679047318168945265183216892479201337526221648028589956263553568522410104723584402084515062239544690982984644521730772303840772922843577129348531285623099239366494625579678192168332984696122945918279090833110311225175009169148953842058704657089049205990872881849684762389483123360397251626893397546709927322469308639358900066679030562903522146993465628922412091658115663370576788359273253228303692902247181058301521200387490384188712767845809252968063896404367747263972527772943270613284501276266691150619885721897214005352819754499653087289727191999861339354833476030543934122030258338065385413221317586507253061884228543454621748553118606964786740143804946923476112530732674445952460322807866216754852813671234392482868227364155924200926841224749202325541649918041468090816294489413783601725702865685488314989259086144148507754839308997856626604452305587382091710216556450430153955106866861978681445041997564806308948233228179262562601544936860321918647218228228401349426540526564994206162114627189086690961075068001589648296864522976230159623705772727745536765099969026949050888495496704164574373896074868659499683925435206776093475308461306658424718495190536548156329777332493327746218403926513322905742985806408352735514117527917207466671588722559514390746687172799833688219585507071745621766043741217226421133825638809886453257256521201645275943203386098486904776254625056893202713088954274979240545423485313818556048349349626323784727551029295820498503729171091346686242871593928946287862011174273574889598556134054164588549334280283673136320324709894739395220065508649194978888847304416568894975941562798008392233393561146299955652066592116742187517016969653910014275555447403123918232083441011978636995731414034566458931020022543777452008974111904454753468343556972275582954032020588512841129751580187927602966199988867508389098408551830433196274371335995784276370882056655893734679471667162794462352708211446354495320408492039705241735855174455986151605288716864929266698759540623314266911107266521755330582678164428280962841858074411916750069149442982274210092088550995505695030872262148589187410890239405607923656610969641097582894322916390816293089484107894483052715899372605071694550442791479461693218009820143523078533905165296613498872064508536048714227860588229500467052485462054296668115909834994178290869472018664273440194150375312854834980004115489396035667074754930355566108617841450719920647380713495132235744103372156776107053766014114308376842190186929006015207408841741667731156508711163907241936958399358444400243589180387607003015924631633357879658682867804623548628414565123699548055637141521328627422788119791628786125169594885427991837114448836075517621146044906070926331703789235963745468193040163509996773041831108208537489987307091053738226187411345534122004277538924346111211882846391206207318834559880687276120053546505288244997438493947681446685500672514055306028193129971934307596480874188040802475235506649805607698264999167279114733535758886697091142030481601287923118196068833681989452583635055405348087079595357005196152694632472562247614332730319782200272078445245319262701367504064968144871492376862445319309568660603061743226698833015281570073453857377738560137844065683323200942012094774151482993733604192486669285603055688429483719956753321676359922636632058015043024120310377942874856575812815130348210893484067429655727501417125567566128589860951003572733479452188328964896760587353895173109204862485529510650024678911652771831943509951664487005713529867124076080315767777267714817488251459482406235577352172600949599595883716463130283282815844582247506170739309749827434823068806441599851808108241736019325458454310345286135976858206827757197793669673253037982883928835024604401655415763111913918399172039312139241478733424352752439801563962986713974952079354866280844029121909424025054961884191394797728631909818908438661686475105237544511244372434884540630147326622440726812811721391589323041594985088682289423817279201235335451671914594411988706306159141070303923187405765245956989544552810064837186306650391296907901144028073113249348341787701419467757908267211735177907047554705888203458558779994601071308340371970344627516556282462906808139921667847406091621532891119408636899329149636056791000484780687370269437688201299217509060100184270791250022234021830824977718075262488064177038515765927278885793292916241678271601654286406678145020231507909913688526787321565377326758460775487586637280982112442228266468104172578202512429216166693619261711545862733309132695325278372264660527089642731984026299012499034979957002167711434782585307512598024742067897547516605285815450802300967685582825939363306401238975994784985110066859452705486165969792054976448643668307434268800535817315821541174074096791023533332172720043038229797003641860782871613727923757667003252775479024305445736589861407501163045841749294908024682166300072440426777981139060358045619571254510436478102934595035529138085678522816595753239224986630619309314648107912274349645323697662349101534552546909677867946830960591820060359953665385034697895779211436457827982622640964618762337441193247491836454084573621957883486126010245824415751159787122050211022682755439680360971723954156049409412678854384736722698501296921091976807268400891514481286461450694971633619223219017363924656594946690271912271248716325801538927979133094928975235129196353537727919780579440984729217923592264225367542319583179645445887552116655670325737240407254794561029569881921300297069124499242216276914502285251010208320922706408323793391367181594417205920515959752783475900230103151626147399902720515172223105492201399671668459811624472007202970232361776111861476264407207606957728112558325558885900689936913520521574282488038059069516804184024792198252377459445500899245932445060801700164124744882931372584078493978409622641216064876456597484447304194055139477185555844399397576928569442819608268788470024547369474692911170676353847519187525697862253664205055387948222864793181917716277710873187281516081208278602050337940042990106019395360846466589725189177503189991371154561508808454347360263678676074290158516192844632617070762766615026036171400664891459450695015250115298122274015107617196764620158793012715659894021618856046024436736145143724356588362320208695772803102342101344832255268067439450589155433577772851517455800468801237172565189801794212937527718658617877914181597019667951377659540812128421337475792405782242443538878178974459149647846275118312500500032120865376206856632489686313695454872874571980047804807520289122496727167162864607305128984143237201531368249991739834712104843170209650610048818272519455260507832616658505301635351681403741066129756334509475025523495610923101483214258247009151857408321839194009776788459141277036234644205951929767816493765759859585061215084473672090823425110244238495516659809592310643285998468546027569418477714397521620225266374496713145733336618227488282458299954526269369708427549145706778011646028044326725186976588539319822522235855512919159884412060799815770119311526049617049439759834768695864737257391708810928890947768455945925419773462785096907458334358674257649804111604404280099747666572564228859638422892511102312884971386085624543252785463839740116286455704034287951634819733715934281566941442767660612022859924358350670512115477209924667519561190058175767857094147964402746049236532105590576048487062333540131741334692186235199483105166771672949774762436629381695753376720781575217917177583855234347574746060241815116521408573118087684355363944403651360594772318530810356853391405869345118168521844508844314223601566509998863342128944130350067606598680074286957661573295231195870115984799010486126244414775858352022208487194294941357752753348166607779493102038563738337241431491380288835866759072736486072771591473553763292228011488413803059290300668024919144032042743025169647545409786389003723573309202716443457795945908002959816824917706132514668193812573974188409794416112107735102404121716032823699457967727357244130599105815111186611979274772980001731746946705715705262452537982849149268328257550793297533144316369197555487004480650508906150669427424196054042885485772302011906952379375024972823164938895663010216473650063102212708957158161675114099150773268435222998440718968421896494487906265770407521333705968592472184429429236775565241093155780414046930315664119472337770758929445643496716473571977412911792649977832047804902325468758923049624176412330043834599292943879992214972719440902648125402900799671222385926894024701035058390879363939648528605390718893061288089160915750407833763716839617825864132746228796312266497679227576759376499056297168992999447970445626013792399108755546496188774930441062299454875398569278001041574999465603046710563002329497686955005615516296588004139401558130286221841136628550601004911765720978966845800576944810641348419019009714072911866437251168941641660843128021390493579625475795361528895449884742188437475501628720188279439286361956622321399211359834710567332180239000047201471693778974893483982157472198495938732510636168086448823057410008888728014882348288177568040456544865675751228256479414221043383941218260957930386619157686112018583469637270362566485163337600477887709592871091890680305896386094299011556664820930353704815915993820274233413863098594750136758949579780825755890174561200345928993747350019965121733883938206437522104408803807948151733860475876899346906721384075229452347668446851738737387478729983607389306378904788001821620353482074339319254231315827627856486468993688220297831280242734682889467187132933066285068303270522848316435912125837855418274730760731090939425479149193936594909542536575134268589765206391691459275212323317529988162390562733745378349830222999193503317505487345328092272903664458515539256654030695610241920183278234661018422563472304328605635359978738604941067922192257313655425391094051032767700707583363080550627704911884091999935786376331383346570867601036155882080854896991874179468269907188355839872381892164817000451020542027116431161181553647999175465233108877140886293778385012542131181964002866337389466771570586373204438495054756819227037094290950247509093262125562405831590962681896534666780315207564885216063553040576613248837902490431140475785404428340903250483549825261804962702762523663398859969319518435866227973403016410484535640142077484274767681223346203350071025279897194224620529713459186809472733216374808416049263562627672994930779799807862839501338358825745140248719278436971465971630827818596715871708527971936473470304789387319470012598150624838683169427172599471724680134485146303986746761136648994508162085377623934920333253554457165541233032378739123857823313540765595559362073731568010516158862777844081546310050582058909742513168584954772524308172762572453805006597598068883441342157438110847863404175138949840672271674210455200131147320184726831874054815032476958427841518089568782095673658538971681182826162184490764159011349723700919470475223527061206144712414558151822559104816093046716875943871094751667587886372715868595051236800249669509818253803949156857842889953738410716565653002281006568763740165224592379271484671871224672361099418996083593116028363440447314670858363376109018252731737240738742642609270602748073007754194042191562796174306431078004552582306621610277632432948611285149981463270390714931520797164298908812914880553563756084549007815125953172019846231957211811487539407879731774627997672727259187715476161546437786376566508672218908449240393521753168324870409990923864347669793162554814069056034732176566401172773044597891659542763313196103560323392460131795494137340420297865948750058770341661328322294537939157220604622377355157467085066407851167405512552403075265951580482303955653954818132283414944912281955648003067586578003506955673060497597606568193653403517651617609681163246640526970420389783868152087306742961220237225420190976549735101033878351417910741043980928069011639833765872415588751693422775173983618122320810998012985994774502010816578464203045399560542463163073951373402816716970030453666628185023130707976117678064323973381340402313035435165330816748347732535990679653294904577653272751232624827516679611871214191594117397664164228693435517767384040721310038059627737309782546974907989705947941015432560269119013792950438746923074075670491197249597023878917010770322128162509476157789248683323121326446545178468278741496381008230384781378397033509164005813223757413971595736576736257580093562656249152053444990910973717170903025079453150494197441747500631398422267348376729673973712527033453333653376443492142150589298696895934103499199654009689448373867114264883736834731536063839595596728656248078319589626973626106530960446358653987019265104929905443692821573788597649855068919748871274888984796199660429571816840653993785732226436006312548275921035779916973457328315204438200693320920980678978876245318199123893392206271808834279592540336507569840694021819969336663628492488015630987487149301120112960980560206955305905813974125324721787712953042693098487212089066000337327760814214560937151663665413374091160078439654297750971194677014843594548309333361906114713153893991565979874166191721401658222035791712009039227850128769001206038271603161588266303090090320401078906585783793173615453919534580492515672795484437247997273311090393363292483837410445984270604669893109917766468607112066624836858266521027449938605446128157896884125214005249107187368827946210864813586643824882761444341013083896001266049780669396297491108570714826717797184329046145394496306651711058008195605061024809221283035151696495479077059752071513955957837508589215895306111710927868051603401442369738056311604638664644811994663900988695459832850287314210075906653834843328703953672037543790334700843499393537574993211030529209845470278809387468955669384179751937880657306792114569570039703187697781779793328986191898730775527747119399955302714050854600210261640451802647229710449427570587176045413892679579492706111216660017014072711943110702630557267710531656649188953135222818030549891698276467626938517879671106298082580000981377160565931925700370358564011310942075682471873831325017985414003501297995201626806903997648089990977742917723095631108659576023654119802064481334301024736250419539895259866111375330126737226020699150585508614760233520517538064169436129733825582253865190160562906769447108133392717285283986904284065572156603017050783616102158627706089600240479820626271042312088032352954901483503873359827639991658082321615512179225245253235741257646216002682032104568862711278491037632189099369979593941498905356161344473197999661810876670835728675028594893837178810441171412046370919638135263183879827161947703430654541299601391506959647196431034008756647713554213629230701081628550679557606445763579044932062111411629287042162294652003966065898582160225215677983557457703641819867717825695684063488818963071330669639229686107603964873813373580889400473616009179474773290984135848871513653174601756833607942513466528840240854655604209987918984033160867676842522231106778611126140458813920870898084251340213980637945474329919824730685561452557302150134771574654613952700102410112530369181856479775995744341730747036013031005410673834093080018462883537736602674254668910903771978024871403171266939094032519752120152983369171050507034176715302471420717007382546318662121043311128824928466658050544114473783641352248540639830693420254148026048067105566803846177490638965926737809543618944382407464594185949326481667452318977690779392515235144867135362390377774505112352173873471510977023701836380470096598390613360449906161838531091278965848355678133552362002642894988021408283026520670105218122591998302127488969288983494159563009105803597754684619146012350626200218520324568231938522209259020425263214877827458624784712947555209720688628157275345247449965255274344437909697411268712276076598495459078247710578898093078556334095405336794582619003288072462523667011942487805117520441820716974700749903686770870091782584530433879286180581594061999157151563014364522543785346054901941505477445804334810177027369238499633391513647404152541688925229691127622271657908650770192839106423055366254831953446874982405485200569828981427740436837194527169970815980765987347505678849229370090073465625496791667392728424197621308173351213666167047447745656453643293351150163216113416791213880353502488362129588094901099649520645088074016354893948422047048431417067143835820682121617234202690446427537172851830181756754849478386605729175646087701738309154026378577521737172358442613260157070888816552712768346676179130441728832043848117138085078477863860544408769400450116644986538318015377362707912861042650696294578256131795651927378423531872247195562952401967863041279708439401517671974859564622755401823756290034957241385907298045852564835412918921478308412429617422875873869220157682882635253840056107557897458520567029776725112430973566371632481763133736643593017686708862343683502889572227222714883796135441201936917465899119669101200911236712652536553779129168086045229970434080673776971234920128069532850912011635936796393691080160205850473881674977729850047023758326569920628880656620775190382811906129917254188041519219340400027796449739387134897811463561756752473108969835322954761870249845069941493833840140900106233451627927239407778526173334932748609776141299457853329975811778093328144610831062694124013880815180250800250868490538162434161006649836588712739399149667761337672015930761028510018012371897128511484214482495825867803424374639717070766226388773918270266703706489720837385195807842166901407571296606638195236528374376643860823711198830567511469275241115628435966733536841544121919201485157225589930299546138341213805090583490420777901647251733881680417430471247108505326287453354112412447797488454117994216208202529880912366738355155644598104678259748337694771905236688997121781679149176726161774005022220082421564358306624559591249329191756292443664690037635977813255639743791757692989371829448517140462916344503873619871729443878833750037516565224819573940319991394778245537751927133969027588705206534233110029178265965042145624009184184424441429545253555249842099744318069191208977528874136270734630713993669905953776062528783408161711589340570495803301575854510471012228600531276768824044617191257977590530378399794930570278440112236319652296379497211883526057540456605639496640724250108025487311649439170372417474226368592906984520321325151553513615152422348562051818958598007256542541577778885747265429017206562240650752616465129732909847107679645835271007185813867779562475699479082513201594501685438381117153838214551818878192969672108058900540178457603566651495825857299884783409513695450588801538275610731640282250378449382766289200214498716032276092767154168577134708646417326321486993327041396537173038158259452105020790092638199063504873150515894228139628907198780178177698267332219539337316497361757665519872713005103921578682375099507974379358521559930596378929320629294669841756543374422828315928221605868359266757629949680994242105680885307573011044725437564420544971167824128210678396587391913488923604236340413981870168251525813232268601817913152796276511158732592518323846362562873499993455158620494189437991834546328158990549184297867542850224530371112693174525307265586586641096510265378150816760827903448295304732172652072106814559574989662353493777127740710688726606009906339616596781714734654519208149107000027173390657341108076500371810204260607941734907316100722627523082515222937367223327411303499670682982491892660250572584802046663386696484975751298558836328800228667949327555485738029505977427569419532506048672024007534409037701831680643835350127876599834680956086084861087094425215329729525319037617187069105554717050011171991102745277228790552201024423669864701201917238847189603135670543016883333975453918985726068087203480069533112462133051099533867305996098664954959496456962798670197283373150629510843095136785885685372047604589579842291187633186399782378785079278493529301993754855955244889540021215555339793806459105007639722748021524028263745892411479392410640731658244667741390426027160836834307857426207151086737910492813489390239818583835190972271453736271674865102364558088753074015595865874919702529526868174472863920564883096848916774666220105792223780827715993570273201402889475936939553754616823484154386177400170893354496653214428478701189644848511934055166254425183941657291346150197364536828266390760619332572039553343418255132397833494014262171737108080603079728328073126672291733891061498537437930774806559442012956866550717520690446141173944833163891106557135711629764697652171534376364199106076609294694738637025460805998022677903653777962659745186832625342151994531836002664484838025423283936865839105443084260486467832296660990743562367685484336089888647009330869984295023070976750564498231463068525362127540441922013973569510390885473068621101363051307504547296121732791368507442455033930722292348265162248629352934774047830114095715119672974068348573854471216772842023183436377122509106295964350560424477762090986144406895736772691012225445908368293352140456407472288227494933679536829226076696825460338479354966105556476378357906302720711697209939035822720918128599810851026313046278495834824042813368268468526713924069529655698289962474138149832030686645254717569679234059922912692719414895135383566727832747701837543929226122474332285740280974092374368720717058876278168734186904633941085771403439279474817697986942427658635399835265625778773131283461905424787950777263333765582916032987071118102037669727127055249690140899209535409589720708856582727383675055721226079184654345456366956792844092378734988474763627776085484592810184399965484564241186433553583964040720175762842231469933919698574315147522181961643751238032775401775849178183036829299154148066111975428496789543016719294314282447233169407752518100202660863812036136886486283081328079862350545301357641206964538810944486422612174182204472129193059561650799211615383218321969976889233502687815185568641030537297187241605504182391113361559432243062096577147598895446181219045960909063768262368829580819976559206965056219446254007825759311743316647327098071236336112047961647596219214915197353515096767785020203668771927168499480960952808240479740919838744030877346716809499972240959339327069351525108067852122138058605769129368672423011279088272756699511519725459495207522556692377254288934041812236704479863187276014146893248076074257655586214323845885470482137676394396780239522669275757602178241570688718710891663440898840141628318819387358569053035967096951546804404419427413319350945733794130936119027728231517374269167326126788449818506195834393212361157589340620617413363615140744776476983024922471305542968552615644839083682533099593884877310223095748887284270174388174281766872210397544173611599487538052304396429498119960734562966805568097862499539044923111850005933650688450232281345766052337369101342972507564507679368032358128256203676924195468332122641227022153875932830708047621373759657984611600516923593896783374663004872817122768526921263031805128644609270491863489088045481827080087845068740078574261736349218762012899312201809348626540401423534107259568321007232826786954516332912060373353738445073764906379510501542684766297574152398273229914989945991773327387002887918620053643315931385727762981946156028418159245939345689167224234781879816312055063607477005951558487172223825994275022558621056142170449012369015557844745556781723600657405448835608967821976397791636612330714793464690169926481605744652087075231819387497398721601846302304388464765967833490569325949964815028936616255774519272765627436462336468904122591117297425422869185178912585311244018827930770324435779910346152838727515786240685574247037434282157977836043353572781820813487916100917553334164827029107368819597686409543191267027186490119318666689604509668763634840866538958900855646212915287964919297011845814641434864108021945221188885136451646514754426950830242606380675190248280041806090191658634308816426024810835202952389807966744998666671240015277722729141906594872755100989552290189469847530728179949322541516734095604254623635590711359845847922239916293119059637934818209589332046286864668256110719812992216684454849078988379348733888739985755956298887684346940154062563542080205107856877811149958730063981872338467195900060263160323193931346626410220248734437269322601077620651830463060972895528058305533119775645714721682382977770353901766807279720360853098113208939780192526945518501447743204671327189315734355815341600891681512288091443346911082602780911887366352882717018121717986029228959547999586896399358983789721897864158640027261678297652671872186714084786466931156028849906850494580682622726232324158535587446887838145059598918014593697500834087373045484136143994214683083227426113317542642683229901995620099341971702755305557771842149148236451651108157198169853807149980831758930019934108206767548316523177110233613610049022727827419686372149700509496054354679429219948636853785141468407626275358112631110551598712771808993914696964456193248682666154286498956967845516195901100078494776899033903890620254658423124907769972163685844169400916441162271591223885259407987894231035743995679616653417196547786241877389144284718259786798067021745863256575952790131793384061223217325182477831679703861668865500592735818869816233391435381453953701867658335865159553767664179066693068478892943693321932738440795544222439260050713387735291722322453091346936555140764230651675799585643755656671180633144890435183521871313351406408332618884305302139449293655805334799392784315749442922815374128706373469745957958515479532972334971533153751782627588067084846080812922054606650888650055898721579169207883335513895285147509037601245342157738696723076341688506738754069749763060211573237264997240776150787911027750135607769591690716278176123507639982254391922530777494641729890517256969765245822210371945846899633366615853406419676709481166971873706743303902221034763746385340029206089769616369114503833764156821795868345929018603578548483154489505015836971869708651870291125270692345838057061297512750610791987172346485564882822136865903188294492454237545778120714693808746549991708193872530437270950917724435120388181317715123968006073218794646734731243443967032605296882293528132804653380896674616913078601019194213428851840289037882159898085889646092340295423920722912334372460559465508376129583164084855424280492403897824400781852485088018024536179400874514978496439271569694506914479202847633884266712523159080855018985790600114384099977618116081206251954784231434622810638592031810496593276139659728659700422523626464339123607838691198317581028175606527097766438065599006332201391584946074850432599039200641645353310617086771567622994511993836766249016346269986363424675383495190335842532085322421305907984500558366289512384121848715772175210521861119884617374105009171858339632091279454699127356295131490180400504889249056670838358510411944298840635564062945463736498510346199415003424277168671066631450631703125529751982243144362256980211419936547291590296382570551557810232246638822592747888919025515737992687618611090664576730727072330369464837348910537542477825118132161729646575276981850876901814681415153725896760451288149552381173067234938238436534195149324656289962895689817818195699922110579561231085319628901569091950117696639132058651520099987977477407508852254767809368096629675104836564069401555997086364269466599450124387668334213036895700087973007806649908197633799795350305495188384852147470035534512767605214290722938380392536217855637462447520992489094809209433596947687411659300681241708077342245134184482045354076234653342767435767819279647940572795273887509644501244523384822677190284886800140203314322238936997903404267604907242314000001790719881364929177055928174604848272984001075327416800442914213644720504025993543516389824143382522453521388186476815040528452692459919113347621566508873964629041773206229903345455677820315945614778538795495679452349908929993247946278420597847490706406600804249170642241015859124278697465248882596959664879412872303236435595391798452608626075673250002815550276921841193532574336782101383730471975868685013593704859038732025206717984793442274410403190427110005534743843746634279580346658705788175185007804843259961681785088056889863289389182538424099542017711143849986187138517817192279430201499643600415255169533383174738587488741402339624055162050254595377341471111179269892258420582281275750830181904623719704535442561055707018668003446054799635065554539356544070763837226209480249746710760453825933260567169735679195669259047266216653438961578798001907036030846388858431784456304003575109083556821933512699743881821415661347070571046756469582403353092714953741448425840808527299393196883904595498549881755532828638608433411271702608342970145873710276624470451053101012262382655637150917911885053982377771124186548894662559789152334903125868206601087641190737781191869759359366970221515097251658226097302869109651732284012044192659602182298643021048754367780815758108134218103116601599385486289451582340604753658627303342004265465784655214306372293146350187527677725419528071681455782706822242621607994475207860056466115143930870475181010873105675541043757366196200945187465066580673270804846291560504809720075413698055188099554733382977219871242825570375512356505339934851256277279854913383828157371510797646453979720687237282401157040531906804197501781428302102223815627053219982629381569071284516630798487337615049813692698098530510918968705963474696696564418363038813470040982412597987216378077903685684230621834801951123222104912304919575050053076873405113422064407635185085822186361861723560202307948713575019480004137354345389664618150127975781896281183838421342250969490213428325424606521438287158927327115526909414701836589076665920334434640664277225906917590816594919640977128333413009804665293238630859866139626503697634300065336544390731100551573364212391228792987904381586033625556474072138273163235136635946466295540098437169468142914442369484098858595714773815526187554764019549841877047337049018915260615513071457540336277576826243894305549849546746396605418973883849969278459049831758991349207914815825848288256368942406105187171937393045110101358342120144968387312125740877005188411049006496441476969082770143298345353805082762174801953154282085371187957509156101749704103795187099482400299038666698656950145296431801983391677593395771145788190200462271063463320302122592989406584353520300051420458525157495890681888687269890345842437086428415152471577044520527773196980010393157058476391405550054841473526866005499023923931490153316852511524186001182641374648439635810904737258332020615415750339569827814478095703047104923701954679978572001933666535459582620301495911130404563921985012397150839210603635639712753632802508581946046200116771902744328364789846901532975448054149652657921057176110485712183894805678170510603007008294272658343232580770505280724087992366724347525193152439202873158073182896528823523192628590394291916911509069070013752758047445304595091582801546882842909384163701609121598244876114732152796212055361243219199081723712187561288076717206093612760656062152617348724362681284410603730339871315247051542889940598944412931580039137565504445114062291524676186429235288670944291681897040615047071851073598764910132646977603329591857529287958946296934500033245468233892210871812358266260476985717681637380110188199409420263873524488695909790351382390732380251630481499400050875871389511875636585714503709640921559243003672708303325284501098975406752682355383432528162577800838728812138868524735635943668435226346756295883308440677588379613052294831713244699161421490126824860525539647327656124920576886478804954264734545378456938415200750232612730543854946382418500512505808286430887153658796248970442987339652536336441763079557223234813263068018723515139857485640673072647635470762048448610706459996580317565344015858467522324339889224297424191466841978076345061265382204968025654207253239948339979723070739980322900823395232530507292385517210872620966425227312397644457445469808282361709291463814316690582131933577184942127081148521794285647900708399489542673278655889932328296686377099289688080857132753618722904616830431084954024277976935965787800904120042251912402078208870108091349136581029569256619633748001288254465972167508587974319882840142940310911195707149097247603083280598636652162754308241583499260512622950598163703568867675144747700612256699053734868780150849865878780113113276273345831051688058969077157161812850752412134778127782779492889805721968470339885569317072315447658595599801748361252651745795614572973952401117381261417641440953244083669325146554178716270802546669234487987845521249926009111268968683238497748777253780737986607784430918632780568333802426263365126106870052919460577723418689283465361149643976528412165498037676697809485149571303155559072603602676361511652419893505881587443105686101718574542995104700987823331799462138079214105789269740693185905560544885067175377050671515943105884668592835204009884574913593604033016627613555040978847506025915501230949227352184811085979605487019430444925754111750788183790314322853372084362544237353901451345079144469640603787118225736222770088078853878803992054164710430330320404727297685096952549755269428368053877499465766856058512350194866001002088402701487944973478622448871937058301142968154594250928831838529508830942715167139184916639320294223230045633139191091976895315031341930632512447433130225295092892953371410938284367811610404437301822596607064009834966896260866292692115678097821976366939966959766237530383445828011091644345702674992992297876863200803638931558693111571674942574819066745219495061891630700605310611170528557910607553898246172416783756281530134262081963803766074813330965811187566770250208129774859961009729970597398828758948772171521377511695166148705938957356402019472967218227169611373834491997584213541695897550464340987347680503397978669905356514859949649142602440116052018895867414877669361269618654680621164763100206532906242617106878139062358099067504857645384830793410740486382940603535933492983616649814550839699454298512175231991223174872032239273498636914661472248486602921358294046779864945853400718390873321482639919466056805481403676422907383169467373472416957724289459425618921115094563288504339331723740517920740647627875843417295753390346911174182672839079018794584168367194860100559200229710516418764185717721482284332861680018354156852578765541152927682443983353904680008548855403834084837231926260241169902206232170784976967896327339749228824677179828311515087215657553158561871961597892583754265571227447867676663568129483932017853798894099658486930948664597839061684829428185805004049376403708199245955024882242380166850829212417214491217907637432683793028526059545366142562292005881821076017877873413763513529406676290168283354911506475573580620996521200274168863437962130671773794475366515075003531563297479591845951946221301017478917752752097960381225157346234371553551020815321121416230978944387808782502093342388528605001211945584980303181296233208472309468348211707860947774092642800268901616809504133494452370531719785779924280541514587776362261900539429411178130106264746461228798106547670622152000787734746619958515485412420689152632656031778521209265632781859264362858747148171737106300097077057778998191287026239858343457944859397956344539144073077905357591486972868017174873025287110761247880352059548312348200047850200010565295654867277801184605619465414486885532277469112156446916025626458562632628469444938002818323823668140520306668729551596199089705738730400236363343377752315585604143102689936971947556439017475481605855589543230891628315985974419330260840784547205404334756231629956608792167136966295871161774158951734856443234379665336732803160634450625084745535013361193143037582150143267169060567963898340168121443182627843215968313939822573732848490629680275045705382651361393851260977849037235935649616842538295655896128147398595042932828946739460758760661965192051847166344238016411193053392917963369316049337819083616153066228791085920811963591142686787212543612678863464833592577129328717701411646794860431528312333956456973494378268200283178236976659571352175569009803751516864936941407319733436198343838909727949500907758534243508440932238445183208022017996745950199875331846911641715373681557636578059200417901932687918249504733902959510591459034959252960744610237175478852643710915434773219142438870608708611284041144663355104335299589068419396348629928322974546475440894040770306163097185314705786156893140583207605486214935754153603177476831392704163645802159874259645884672695876253247199013892488004537781457981962969814256022098052062427341081931215432695316529495678424785805071159952417534616013068291883530437201723814728071181086326675242725685145665911692772907032690214223283437429915649494156615795862523168969491808886906252493595257015971553525908476487200101512582053532241072759827605641344039267152538962047071457594731009568911829349415958030088052783928782566598827041367049002178637028463860651121777549572278413499115625818016509642054750307243667171918638336101690028989288566897399187222330148265730559712069001388112176253571754705123093745877286811786797973416002572449936250143372691794790799603526187064758800430786176685318291338190849432145109267018138768215283963529700643627677860557629170847055148434730626071186455125920534367505270845912141343030187693933349953969523066354306124807600059761407530247157677034092718824591095032274443475973316694617108395676357151437168949444079262483302866404476414199494681917969110898407970342839462971325377002381172127600956378685771479416297156899972104401157045976977880874464627083226923662324754063630972616299826634842335277444892356005279526041234293354341554718725780364441620808582198927656903073720576403701069792282037957823441245110593921522997533299429074813391338059020791743342503037218510416350430938420278421181022388671786789801112276057736938708032515720418071653311473813296639616544992932342790208302366950611682395150366692408439157086007342428065279290870304486881151191640876373440564491935873398163767659702438267617329658725290717512339167088326717552611826768880595720434662471742779414318257242185900348336831472914472351153645259791511611738974854543500273831287275580937405049972426428232656766843986141916569656518914955385475859790954690891326695134679940498444263248338514215710897339758211664084706258213395987010632415147358911074254289297661695790636945332975490124308285710126063438163003984007576899863118016881325508344115501026639890718373351245554147955727273487939020210901488081614572064444162098212077543139036960570696455278443350509119148200305802788977548882034281948083466021964651012578468033454108976674183475049082730659655151569740962469388155815073529283799022699154729217985278051527428033084861375880710602356906434619634278712002646677556445269876205215965405516990653395951719550998446848903235293744013084366369112297158661640072958326099459529863566623805459591959601894927632239293979829735738862866330264409128146795241302114311337073196334961904325738761923194516950687205782236741304575532268202209726404069273741543827983962760232468996829892661289045577085007033819276787689444860159584861490342594368617236629692534738349968188576398171573686521132632016103747369025723093383997280366019665778806843305957570770619601926525656738272950316749266565242246674144738000442362431270764151195544420958765252298709224502064305844587571149692106970425189774697395189542686318524506542700198047340549741952250100921238716661635039803879611949077529793989830940936112476246114043105790738893437751526931228649455749742408190722213671260735610018712540968217232396439122722725787439497086069243281917243692655094348941816317715188175050414536800935818270077078698878842135109366145248931356162359152703499471342109780554328770201316781992986874672713364777435743544691289734929708457551953361226657625531779469616887325396778896092693460636036183526970854130568689349598052337861096841686779964830864767690486175647685520215263945715723103614322943655750229336200407835576415085616174406532283280535458180966681008489284299475912854968606922443651590817438410862949247436802681001003570632975991650715550076064642244920488047264070711942613476579852968070835176191769613356482919444090033892555615295758035882251782813454556921555842417251540711880923997219409511937522292944514897205248734729274165365177669883467258886681199772008426752623751589921442738220472950264458394537612495721152747697263870785230243365457217624922492968907687148386750828804355764095767513826040056116096252470344434153547263410013969730267462565314838832665739271690578993077280063865708408428220634836597633198060006804644514516360994757894687333653739649637466884002165387886000022168030860107446197479686413242965809320008250640061720038777953024649802208834515909923379468964014088796676325337857268712690682467506776751889613352672925264046645773465847900510618026890171481889394003417558414914435891120750775649548957690624423206962874547315884625658156637699248509200236691389786662482648978557498527310552035501931031492816459283962512705141826601766040230207374524747630274186908135247914901163381662619004697646402858044594947076754302589748100992246731842169564826788217162717089767671054135794259483382492519228124351984392268907423570643307194912926316031801946211898189599402901904406660298445458208562598764502733916770849711861096969857691764635950233595993550050935944974704895399318911096165220815020557050508084261829209792805347699521624922483620463565957747593323674168756302608985441501686904555715465148271122524919653541910683144378298376183047759672423512672359771363512834462009478883616164989421211278275750404618383142403342249735760865413216198262600391476547684893433178653511810846232674358134142305546885001370339414859116955599681552573316145169527084806964838662142838165174984714045020391999932764116435426377752938122786832452525527550131784973614580869517400658203914688411456098782070114082692355747386399928885784998890290708094212170035608797383074679054460341322128629918654753453997856228259547655406209895896043722572625971182320404387622569580613335185354549116784307431182717950099677505747113219243668940019074708363671456474505971415242925262898453968727919607361331044426710640710420186147868658164286748110839769320912756756708686990685958244072042319147225408261031137226759664705810773285825523338957633182227008344499461923648468522744616508668269959420828503017545867303437742856358619942260166078803803467626933945764736876568485472133701953693913620331384248144142179754426634936499109833350304286316532770277507655291671478196741935129394305277115338488577017260247698386115502453331912884966776854252648620647364353538651821485776643184909055576701084865068325906101194026095882668077567964721844868626502059368818511765204546075362507039174899349060701404317320470093397894598199971930010542474066346401237515484813992545246186478293001625865313467134188019316932460357141026146511493259782064300072163736101877090217872999683693775068130818462679284941515561358937745624701437864279939112408976367502085050869715646722083355716031544477383211728738110263629631018470616077170540866087610721354760034673132505135435714235005610122124830785017198480050007891371389238274923022061798141540355985413284239359638266247767068901697067392851216914871973126381647617612013565517491209623665707706490319906124490877060765534102388091447696683366314928009414474574178325435562751025949462926324217782469299259657654228127828723618370909764274584560496699244037491287436502781051463352435421671957918233135662819603082687986523446839436355691108569849680625505655234332251027897415078428440220272354001016601037388074937087943331171098382155739841062171708231798977462135288856498912443472961556542647844965341422640185637520479640591237270607211331984337191303162034553945570025789406610387433688244681085140013884992479750071417485388405064005457661313155300939419479914265441371847212758334421554590537374603141472811717933846616958007141830269408933723076819291684518048329601371190953475676545761139763500039900272558699653012755467689447184535463788484834673691836223457393488245808089178388679108031271640574664899843917063121069322321566651339490018006763120131956001421752573589252754481387561893184190179044223681702104134115953522316385120753144030215094225610640105934402323647738808716928639985225181831224824567734473027024562903484726666437093100927965938458997822521556696564762619266405659248328820350374989321246587563955382069934904071631137198232647388124056328357663521990838477270151599131668962503684830553847736230209352565314536374655378085594745645346361713168576448146942057117670828850034549256296361912861829934351548682681426079470230674238169184983706037070478818806438362701197078968867283976465915640005296804804233816708227817189990655055430055053043134894014618586260655414905230809134520145371801227605643898812556071471296432667507704393130165371202803986018444887722675128494653990901827771764213145460150631319451022778743213724139305877649922574652309984112603326070157025604732329673818213091756049793997063163259645210806733610370524117365647229458009045332610272128894097582804016021295581902279920965543045371322229678759612417202328716015257980452028469284919143563977282003157297768980609460384446339327030261965305199830677724368967165248038200240329521434030022956093326958599230109902346141315516833301159303448957033292459013721141504437032893725275192354711636836303725447251155559143870097875015114364012252077494696622400032015630772231646450496429222790222525694618364792611684726132509183495187867751473682880761568691231878925577293574262734124502328001410985984178826933929270115129099137949538828577798571971381342084023549223920347873708662495902616988019095302094382800419145899932171455048085064953402134356996077476607944003283628458303806748053300599358141112863150774921936615493697376740908559378799631435480644380618649960182695463319654155609518806877823626041597197870258031406155392028642258503413473370842664488631034675802490563496956169208717728914595215893926617669138921029399513744735232996518098843372364797674635568701393826121928708508963642766701885361309341391750540348571483041856397847570259491525824760154283123344305504825461611910768678083019763353014293877618297794003499983955803200248203411891631619227596641195460831501378656259867902802317660542105995929495577227222500141655906894071415510655235261089923739139501984038922650675330400569472924142493591530571864047812909823236639585626810950877158710639734880057782223877638353479686827330789264810527834521771110151956138624868102151980940212967376411705554577794374329702429482812677044646857227612594293354499179546161940785510331617455366625009162424732191097109072536262679135039813634667791210942519193459084981052152080732907594234082268890036573762711432065220902419570087114579311420454905992616916154571957867832933117113897857069964120766783035743126827881545434509144372474958265687072678270085155005895171042752352737923627737605976881847224152479892188025905639963554119705010413985329256693839772300026737630583382813569118187097723745329213293075974145658851742565801139620457277680189568426356475788414577961045184731143829076824889616690362225914982645396530568744912433195858111305087901658465024803352925180894555392243694971274804657462537786896507911278648537959658850425896793172064630026440977601167898000991152533109758821198683145813703905066812915556297660551654592175259646568338163104799026199394600940277137150260512225804019692002132051366460694618424222782834876637639246605939692145666990784388620354775229248193446682704804978303445036608742577344079640342384982305234702607192341427384813006142722573419926889061796994728932732779974561537234111365047311000531389303879828500846258300317836929654818264218898715484917869273436209007346002269659386499265003396802523899013127799840207749954424288142162884885270354560438139408176549527427754184832800745343880315086723225326509782242514774424118831976706343573669789801715575464810365964672140907338999938484835739516354605297307324043447373134037033900292566997539188031720751751047908721158273840104122438937285232065441309419268413336580644815358394430994805310470063237253272089150854898065378521260087530864921392146606641103028955606415072674582848590056060189877770991589339604951055141489696396217311961027085852650404747371422341378401186274972762886616196659382529142123069055413820648305149411393443951066371407176682178575235094683653827858313286274657975805731071475110162273802692444764761435179558231020369610448512122501199989320162643365292463829601910629846270248566639613124055190722332926758932395705937445184143784860161592196813754136891283104118676126239343058751084182509564606148522462927543303325479208149717652595634656922012785068779377628553756681667328799939752086004141314966844903445528461858608609781950294696927788982170981153087271710412874191568068163422910461088188365620367478753524989502726263286002640023908805813687065858725518371791228944259829869806034058111099904159727230118807871373456681310010606060245696200217408518371241853875830166374951787414119215626156811439106532472790550700922402010324289538116536123169565452159716678245691578977411655248369052890317446764782325825535101093884855700584586836946392175718641912952024253599051783479260377857123306502263255866035639938485919160963294885980334280928528131758216921115394660902657594116582311221234856483765790683020538687050744535559230136574844881921252218543733520304167618595213622070271154615210025236449868735150199988667979211314894877384820294444258722788940079942755067901432914267366693617137347694333026890467681341491372224887164652117986007970481110216147327089035617974071654891555667519695261285273851628952398706543996152801278227478429644865699823373149437755098671005794530587967877302155341564898315522381806581678753153868441049965535211118064968472734773304499958402130083619800964251021328201580307222606164836356058466040020196904582471482127824976911371241932004947580053913296584623081306439493869618461924150328257955201284080397075546764980179551039969099190326194819019620619710930175634249118036882223576803986921664010423555092390830351997912518482007977492758591544937634248405691983066651499471877136113020278139523511951184196209625298127615581891026676583221112292572717683938542860124443670978828719034456825843621389235460568475107723184006241571295984473668199934153854250829374967957675308157304603943070065942183508979528163242868819805969460344539967059208275723107630843043838671729862337994270036812927186227715518651222663883637100977664192652669275518939883248522522030232682062656848880316670786083304109459255566580963329097718484927063393593584203093164220409926065836704039963745978043475782256644271593874533673406510735632723666348586817625540786652807969519264601399784681466371377049837536086211582891093986881120235937575031617156844863596113027081445907758561258257774271699618931613645453975343853569720492618832534946775824212943297487226732399405767051285045995717335689861867436445963559063631975971961522126349499981866317882585675312625209409635794660278756412121849258797082665643940383351361256327450786662197895620621784427910985136369566315321457232112100730919125709299167139750137463911299194941755342735078698651018722546625098786436708238991585431414353418563598601604438153646628657839045284506115734157395628451600912395538231699778625276619321998730209339508502155640776176174644136102377318040663498692505547935054852887046702247624806151910263013085715345539375541920269484896799403877629596472079849715713069238529309372747690661686299004323876633032646701872976792799620465583939003150578205289938355445082294300527765966396609113909858186950352633447633242282367654325587625774217749226493109443593075158934814264003022525248344952802557996947625233603713228482661612419246688790848240044093098494693108859608209233788764561736715237686337709196985289937983444845678299195935982383960003625204849631225004515536589097175703461824133476069571108641772051736945154130490378551657826240669918125654436957451340680613456985565893279538496803224244981498118563120285461112378679330734845360578525283412661662161294433016377433637038928016193771061225336891280864331723269072716638208685730458299016690671904782257403366920739402813094067909823606967594952558924328768932408184184615362451555561691114751271994229577908780708498937965045626351917274197187865412049952823775204095918622147937224463156217722968686065219760030880026724271029457442112237034151056510859303436605284695860619983778278518884972884724982672353872169870373194936704974975092704111962063888925517634313853603915531060202369254229460368511559683765235309809070014775071076052745614635303271711744738650273568446089466113019590114911700251933127830113418214805733847509481827893604515166322584549244582939848889535173146444235097801434991939198791890809501391540698140648776945117752675091447752619179566453696649344810372850049329427390123453361580642865318338490953485301110819919290592810735140613065137140023858839761974234996778123771519336591052956093994252371484530068778028143958173204629408502170628555690039208234726590951517311324223272630870973558280819337522106853510780668071517814707641890446791618944570991028435076898066879238756995114956288566434261788170209846887167209940949224505041744881309171813816096542831771024478414763317740736810922869078935641639476282412783628945715059820689536191160215488256250563367932774325187884223279726245176883888846190700917028987155232732416403242683591664219319539355155183104113582539612414296940856903969236669752538728403628139379422704527869060471982649445509415533990629404675291341783063532892176559212518252337207559419209624955358196979401860600703849192416043506649691977378340599461787129044419287526974302800483951780403645960147398625295186305452918311299509720355759282437164749881703726370988430781704016435273366970488598985471939629301737330710816933114809921605184067034344039411103221348592700074352435317361508381439653290190745617036487890690389750516428687905965353385411124932914309847899226528722102357014109426675838477241801042150575208020356909154469548853641713235982087559915632441700500635478605055890153345181956017648471067086359460202459737658546575025498931189873003053481433168802660514870734181991358632295139957532867089532970674198562685446356666743303828110091256927660941947850385712325844523777659824663108371307491751024079134222958299305746938576710474614945905799093090942927819066330586722871873350334042518864698421984309332410560909846332669040010756325193617795237630110483143350287456662950150014028392882576413692199958005133049377205761186922325070841038138255119774192048025046642524084636474604212512533707285087469810645825248505082271745636595657204871953092514243453151135626566086825688949306793744593475011291982109113670625410561845869436943846523354929196970955476573501162183709369548846792894501919062409391260485879481384395850212642220168447969269950845065371349853847954343454916224344955186278959026336479770864246141395745607192693668471427531507308433991641891296549157927729277544837888108303336058726502710151273014841847241283204908312651918703390928017975950307614588980134971602222314269598356532779803744841464623768009644340575351529752801347464458348350125957484059626473146565208276210934447328083614133727055141128618749226323159752356203580865171168440712297278092056464004467791239228326312406501366131397876367379056725002734105331777188194976032902915662308364325268478674838187052098859882366413136829079214615544981986106935074513342838471546043796896423306614679207746102341131375381618846120109742164896419009989418165188722860999591281082256000567638169688551593754856502582774602942491102000614825857654328310735683926545060614531717403772429498512216898263436020555701000554851157132492961833263776985371434867780142995757965538673986159263247114450413860590149511468089724015628817210582983919984642203600149031557785572741983518366590881674926441016949988861434222931497784477680344163663038277450482051426549223875112131296175633149050479859876578877839683743104975809722305010606855658545196723889170208096252723621705787017911910348881005116314127234650663394437239631499831113232397910057472018960080852350876533675408072297435142651864895135177320438966027282784252154242863417244400054236984039508327517978147886160881302056725469801096958227218384504078982454351336550124757315040620540647386939817109103770615718066448671354215841581827685903976370933061753687486097693716073369736222451477719955171420540360529438934096460128967448799873642553266363132427253990245572067719640600217086276279383395590880940435765060878008301287342485348283726887258642678878517949572643013239025546612476174691713700724663827014495333633914284273606244923182801822226948364311061936558847517372043728642746191400291441862223587270389341758421966651623815626772626022824037902364555574900251910987721745660447987013998976146488580216220127912106602019581499418639747027125638731277558527946697831523027758896264542336026158816096274873582989644503716842754313641364552318664846917403692915294695128823031167017491211223048302273741322941733119875636550581000945594864251404170417849814569765720377912437199934712362487256494156226165829021376916061401653792886984737448035255782526159014792215781023096342877899541118504040708427783471339656493714418236789304331026649675952804936040226130073364578264302433853950048003650516842579377188152698511078266327160951130124997617485575493344398882657044994413528578398994995761602750393809578349208096296436401587616279104723042101155889445060089613798001178430420674184036745718444018889793223608022082567656408197568558715131098368606998866346967753824208423999693605726964262674506368765757070811598923468522772014717992677498234799301274917481546405771048632582533658741848807933417437563176346013411939866696467082818047808439159581220584830101538104897102203189858485594076763465544526409378287913623066460075918636556994903029990589700047639700261745195494836038944560748499205795122532812577430569822898208963244967718970870301184412065774880771008875388833743028987667606040837537872842758758900249252704872560764240699053443002056842580435917949395662232190111329803785628700275276661917096268564172359837035339146404113654441894756740684097221882518393181331176842517229291339230203357284650963770158852719792632957888458529797778668230283890519385384144238552770719671336267973404642368436253627625070034490972003786540434711201336240390330219360873067569131235553590017256351417170482308213021694796897179098364165005532798820446258133558225287063011189665559254693189668055783919807729963677472911808780627024489315912550052073336830927050838377436973898692974738849841770978873028473666388352043735329702712819648602728932907508740778555651241481744735820638904730476495596661873516014958469961495004013271379396760736614646351623425941608158779238700638833380162683879228478251674523218608981054854380854985179061754754605586579602694035340603432861280862506782209048030116854872655888218538125303847653599007321098448331965937245734867217269672917940776019544482726992547120004307806875006492838897752036099045765375428630542219113722493369279145561707789695486111808711628047951213030550052639497198151846346125117576784476318445815018859945183504194687297198140509447167010302761336919975372654519375763304874170766985476920762824343719777111934336161038046565870503984993071909726212883319662892305960852324437929690384077054132751125629741496204229114544192454760016546883178714223653877943595939159172376155088229988150699402552743866496010770275303540544737948632031245772526068081272686710096883659563293320713038072472653753622825768109348394764047872019668901559956690343626290967137016229511878645874339836358590744920874244032065749288018872985150436555207417142014289244377116068867517374341547410566706972387113513118290685427654941712302259681672194686618180551968701295960716265111066249419524633470890052388363164415039842310041944074075333158178105603833972344594250950615688761218192894439457206595730466599669437510686077718580206464258428314635621538091248112738878084997775838781920050758791416542067176945933301447629088176554930504176083015323322025792787391635121172557577922638407329404986003861967457199330134973932968856720478534158266395289075534096757201267631879163290357168413290705206080367747555527297801184436986694330126124317551961227146792465033332543838561982782877007253772052165251330666661435587416698793572409460345756471413898469856258385218616448069871526464760200309260694895709589728103534386570909043963150379788227087585700424337825447775717181710260329354162539226162337553052842619442666350173044490745510926429545270784145210188056104431358741971612889995697003608421130031656508049661170000374005919054565699647631396944400953189906632437051524926988542981199326480601796938979260662490593883006888912297116732198044382229360933207629840701787644639349914411348514517465832344471114483410950298966497395438909623904974278360158601113310977354087144851142773720684346465945808236628606095702156539858220425179243047325072847568033188099662939099769438142404691020605666131240710313517520675107979124373234389784833836630131928027318802569838048684455142362494533610689686990522382242399296704340159695745828685036606151590666744877310475124604403764705909162542972628745217717308610299117813928345765980551121783524412926021092923535787206628007086774645024479020762048021523993211320285897525122704635732585952373369619454599850433936818673057553714984729333607539029789732949806506213269125356196707765777860947578632972051344186535254024763787737299543453500435636836217344568020512564908460272884746489486235847750164734354394631742850607077151973612301187109216964271920748246093342810717878186898043077089404415281236313603452016765663297059231687204968862811184852853032563566001811567371591337385158916058292265901442405744006616026803530028876034109677894675839046722839036757987428339982649420549323896072301258822329000754966417279615342454177716270657913198148001180242064967255250566447068406814350902311891423159006682579995685311407404107797688688797219044597878661093715802839043573821661344204926428113146006158458964941742643986912887475071577055842280166637418967563265875457907023416677415055223412414635411598279052225099456857575825112663944399700463920345289313017641144502827447958509915841769764277768169527213635621395649052382482680259811884158829699170162551156725758638927513445343125295356778969630285379434245703548135320768427488286105551337604311661217955916245285445009998395395969857922627275488456934750982570408498402042504007554450230835416252962856106875894770655876471172075247049536826343981281101652994306595481140420756685950787095413140760730088065239591211558846207652673644489147535141257667788694906515807324436794772498772493198978580846095739763922353430682555629316274758209590667883506357536244782592397271851308171939988602546215204903898308588340370353085294256418463854351474909584468989841470832837551948093795255205863149738477374528025069520777511160899092613655080899942815931871016378565327343956683675581334209799543790672354324094461019147603545493772741824155252933053326132736611379105785114684112679056491375301452639500634646415627284983373861063551598683432707996118355923344060212864279160568746625626931088599162704844738482470080631328933653178683750746419883085499911104705496451065459644326342552626981441479962782488076945675272564795949816839533384292557519624388011448918711001312287610483232241327292296160680255145839799706732487006241554407260333552057919672216805065635995248529875667834903393079106998282671727620362884601645724336290709922088344005984257832937156187367517373378389395254015532991895802465333548535687178761113144648784256327485958050633164433312183836903279411871263432462840088656923602653563753157582278480434267542921561596255998565575326880336002597794149255315786523877941769267322855040138135897998868489577161601783073237843002905874965142806869648546497748477994419079099140325940116032831926580971742156120795646236286142937253051427731556886189668939367647650413024560705024101455134898422291562626917497555200751108446558986529622304081174663321864749645032735774392012120645907876543414185942444574972834919366488492087310724321621298272938813452002102567517479304033834188261619874088618679042928186129615881331402229182750563364369235294194095345260354211700092239037540430688264136392448149264536011941920449164511958676719359167957911491396191006018623258784063097331234147739210436233494100815646378315923188618160945529128939286395951885025458812933726515084823410788951872257175066089090734787772142620253224803615421451125265619193451794641618888487538288863509906081721211107518496112664985790999674587162431391404559839974494121964769092933171978838384286830205471720247396959437109526476138878386625267958455327967632804122247955352275554587429202381478149236782222129320445562091270464033390050208697122720781755088160672910221585581633066766755180689777572897569743794219206162716618092746244829633477113237425689902907032503697706121563144027589266267600832609237611611871997230291943899767762086586239656046576359518470666736234478574140974676673635074607022300434408089844322971274289268289211023795798279435939756854209114066548147170405621903451945372288329035122586376154902211470944385921268697162114440876898926690346815539740224165858180355479936584086758936805642664624989722976251121084082591351644648449194039743334029947449532127029429255328874307564892680884895929229081299824303333530361497688534465236023464805282471570714470181584317783882747303773369111446372132305428894255486515635630350650116283624009668198021845631846933151241852366846545127381771495906737294297319795284286991735481564554761390110551680515270891767207302992952318489076594864345565652444308571315298349587816245540971254810539575306251356327509341611831140757345604330669341663762453082431029547133109485469538929291333393855718846041107009916523455702879016955363234991516283982361224902919965028197113281101244908416732378097956279405015102991301788905842746724311949285985879082829798954269898552603027522940069271656162619527879445120703163422382782357281300429087415454822839264927218083371522823861512664491186157629430980558956147728678097427652028721238807826705358565750615238738296741595937858494616957660793301962345701983849696215689442636580143195378965056279552529847071168769589625348068245835091053537525254069255711013919755863484050580723084208724171571059717087592534461652473624006505329431745650122382596505480703635294345169533992192151735383634930373191134021577314820934609219129988850845088711772791990713486414036909290335904906771227436600228489307870039059399213950836873568023334122073957351844617769242198338615489440972940500965317608966658717481679011882394055829804515748770935389833025969685028516771351207302173086947466251749085552628799917815459514520901753262378282233066967535424604504660727373351116013966660958063641512260911255781318701761107127424330991869587201277496365347921208887478090224145250500168214581692763223553682920561007603944925728954126435831711819030029279995887444550592528543035352905365542737349576993054949499730117350191538418983999280698952605326559184777933151583314766125757163347435838470203031076841205935195519297649937792860087441053563279662727731659758106084411608161668081571773740223403325022182227693547570073804278478257496654733018750902412931993020894361156165690877065763100560937011240353250173970426984156989487178599617127315128125491482538051474984415384164706621579411339623593107057718071290675520277597308082408638898840536435160559677023136149873860672747298355883436335366501254471496119663938147606088375730482713634841405944273977246589464696633690466982592113771153223290964413786689453046812362727948039034913834204400578063595275408172845308561500715863940389583731923717585267995022573449533457898251291527667940299845314712146341906282395593673267580772042913356054137200920992997431975141579077860174684106371012697140926001074107712627764239024510556101371771591842522716661018006009552021257481657368487337253692941658807487924209665943939615674054739668846741502159247921923882599473245552495057795396410636915529300721838073132577029737290020771290934335075241855865149467428712746027023083077358066680458568266301826428861474061991640915344069253549098300381258126476680995915777372897321444180957814070721740954198911717985241227349458838612466892385889415685967901140222322631311514147275267378517485742742005373236006166714673197308747837715236591129344172610427963438670767139375123054342589547594006024623236425343254679073264109388667708750526502125298085620825640904017443623775668381907225249186439763852360160148180012186249183596973517674164826642488970846471470174935609818004150095254311394683066735991668531789431993634087137989923837253647125015364446060267328444188960394157973985856734063352898394851574046887884126175619015062022715410754030329727100084217878102359615437827517080996181010451245907624528071925542691894082802312884539022476557050994989928402219558592907078110382777424223507010813194952358234739814855479235921996347861517422142582919179161077813716557120785260850322775275155361971389249836770639703914779456683775116574761821949091191577711553409500385402865608564681366231869940326662799700041098049693056630215785730282566327707867779068401261861286489626050311384205262497727914137262549597761534329012483352752571664052180893240683267066864824516962060903852222474194934298632292100226474440420228992244634767770277163351464984184675796480287453235277221651061298407109757014384238231113081534572821621795899334270594672630541882360753507784346857874344393362288429104548179819077048547383829109590474321503132464376677150051611892136028961222237227523183189471084606009889882470835686505393066269313049331307570712200419715132134095038939271143870086807114412664934990196993622595410948301856857879213557215799486394035905738570488220932579140850059632022278704022013237247947848215877855759737134292263295750940231828990518576121982016046877810634598145149007699804304780024585174907126309112684237988106662417149576667336307048443583100767878616091840197373829057783090154613198272588666859833347472743671430160780690975576830892347810552008419855656677305692453022654687535836286615793484801277997706883395966235416679318886431688332246316026682832501174607259028204062190873124961076477660236746394142788713043010327787506874117289837613309315514772516568991053651111901535566035045052268055648029149175337404008572321715089657512764685022065077690438043240963347633061279925646641729163824609392102587701111002705956183008410895145791725101099903059573397182602812590333413387879162308240766204687085176132397175528423708546456509458629121302139402201951908424813134377073022124246571489686589322102022911449590370290545388925568866237280445837175965752217521765135394559211181309771828142968693727304797970127798377975456547396310447763776975705813546918916313942762518320524989944092158045094619814854712901944029741504406698365480782469360513167693341618571511496019687789224340192406252441828822536033935241204321345003101208199757560007822869826382860397126922037436750634023906422591487194038705453309317352905860883064242270916631013775449007647688857691362658709266366315560276666619586777197443560436545439057465614288032149117219422683910658603149399521372622475097931104715672864981583367415931001728600220231778494517290025174514266147373250166629570023364552359149902621000359522321957954395130991742890974362816711152286537769063110617873517937775927525903182352840255155893789977619678420709130383691075010603336237214976099571776310965133593010878818779821011190347048243289901715519374288626652059079749509030218158452853761497900009397764160407432134923890212233643304305523949889257293496177074587086663204151299201916882565130075299319327428718473272843406460732121371499285607047994749367815288624700635615399819308789626942350130493487941343813354622938860211301740771575246006379166676301134829951513864114978196141317421373826254091618194936953950752431191647473551650002009388419051439298487380483828653880531343244025190846662927224738278136017853175636318368749438634365269169632803482820061980382935986794970515100596727029187641983995216604338031065554573535775276271732674449685474363569843272606586372898838389720794209968343046713905896602229657317881761474534093553565442241745587721903725070708988308991047220972001286515884632734287268664454792503475272060634088001191110751369913924336773515418206659665994704440754895332880037673060208727683559329841440180441935112543728771901254666781437794323403733865508821254806572492329148749513567816028995914057536545509311970372804556598151724271549026854149602653871900358495992800926262223771899499836076741969851375502520381866136972419034923859371868888714692647075496392986506609999766639050950234872540097386433338969993309881821601220631451661903150202887820666700732035382048553424112124127264248314708796206352320619044204974818783469915028985065739895244878515337209810989039444809182879570613875531655319040948074958670617503591449304982305905585037644803935558796114331363160661670420017296914875413935874787169960917506935994505532631225024766029775950776701920300701004110869970816594339452130690472996264411307380841185117481376572977077736456939629817270517033754689263400558108261597183270240004585180119460085887010083994633813786426816685401216996054978648617448754833624759305908124562295423408364856199369951891689429593114325922215202481568997459747024856207652565442960654303746716095915437585792423197589465354504408163165226425223782057797176798833149911738847165434421488571563804103865252129187766913034812454432401187311543972406361980722727416662435882869746448681203511488983421781103007594064916236813439681895438132596101062866751239513228238472589967050478293583151163891119550345710337412264397819000014579821424421422549783682443872096328061845710651197570646094627612218414813837761112874368662677068122098893313363900694679588840192426347970391514915007422964428152274941178852380875293452094852917003805324151661359656958886201981019409369299485998826011913347823775095068474523263887224314679163061826968511207657757597369999678042401216983285160479749908635265973943100843349673318664341242873789944680585894984529593317011675609771324560594969562935682217956520665545133148870887994225919885714919683060275614909587391264574979451769068712576045529820111394779901484163235284077825637530525235414641905320490261606811704371672209956873387521610094427847561650995378880260448976913658313291786367201836546652309907441600312344145379901158816814318562253176028703237768091196561512758553828273337377369771169059444450231193114464981968130139368961978948638539093124429515965018687539845799315376381668061022896325830126555313510848192052643214613042705403080668099947999996873310191053700274371646975574924178183154014907316094571156194613709228691399559738019241811136597414554384472006165986880846035575237683229286501399284273464754390202070247135172016328168634705289676550718708669687133420067752656751166401044439395386254490377658295352487376617156980369153012688903415549760424687426561252204273788690995032336370566663168985940985129660980450665430120538309842269192348656722767731204258167768987340080278343327766372396162443295973535197163377924184589007401630070422767569812556390649933380097702174377668193158980006730053619009476556539878096502286214903777777014211069847090541997467508549812878621839934280710414480232802009844026617962473316740032822858440287894851432381368363864988470336734323727702910801111462299473008214676747845492235910011436503976209646335497048529971748211708932128440137623927310828656761241980980508091214562610248001951701414650264861797974856720622744732628136557893538290423216958176206841891444032352135888052000695246135319417258200127820984606458861934983109077551424052239294060721971743485451527073575948632124364955432455044231067929189148162198318973848662114391649786157243014395756265364914130099843788132789819936738447687951058715194929327350055944988271633318689280535106304504680687092804633306006648560213771588245926145284266790333261761613109612711386089115708803422010478169236603198776987844412139107913502494104402372116037243631859225065193174375972412190391067063337307383667813888532537311006124729290163606932678690969208072553338683285737410428196058180932916466572919015929294206591279113557092155167554781072366549265969127358910718085602280405862864589547855379640748417957589768790087160799380022425471961135763594124296466827768103690868032149223149888011146010504009954079590539407942978369012706543920954269208312531338716962427397169318340558088616275926695919943275213863491562020208570715911166731816596629339489214932366512823111505356510560115141474547863631620687071888476872239048691196564603197559244752699701566384523931859383762616716260262962492067414062490011769115161905302324999577448390372113011214979645856610698657307279854628656852082918341042125145318661338715026427085210137137632974909334227956139366680386685334939546545208563581692940034166043205841559214636869826623350589660608774264041033828579606368839784276733256986575576642774634551696750495095231017620835468048872087415108833385019883930846476714184945231015491136077646100375890515700552116942254457952986053354401619314498011551535452621627660609484355204261182663182349994118545942683716454252112212835342694366353833051421479943892396740425209988935276866559151300455690462859048950630699188438285097783758542389782010255856639294623065305108533580121832913516816102059621248981029077433400243316959030522730913043982481116653507638326189149825484090415060362531862820578259967470420644238416773958706203893260100258876153771995677048345303543363435360289147042088694162540218914930959305209194911263148567360117437926703039583095333799465356922849583078285523620676428375043422517590338831065542942474365546952305472748096569486060521011674386890201183294140440543539132022488600903589952091064866978817502122242377050881140212965919669511178128344424126354082112883319826703227059977690433922572480733941143914441828082125092131273367408892251797619688709783171902225525703316729754561922765583469052348121753068667576996974462396388478406056951655229883281285272913802621449976929810298520747731008549528095337651979937995378570477849505835035535937868578974619556068349863960756608967213584360056507068833375036301607695120242875098575665639665770837448546188399192407731946241860066279158225911738574657476728446939281915448151609142478823104569805446747001034685506949573660475792850295856648707064419778159856208152414331196952624731897844253469548738150125626036506705261674874629842575350622314856331054186709284852236003533164882209733203310434365578984754727808731179897281892073736635200436334752692683169309820669482621362235483333239555393370729490363250224524171581119570329875578860269635924449265128083149208878846175346969187395695650949276313484212335987826512150283450274379915364648543795207359481227087104877107485411987724494115787223173325711842021697928251130035744302707393703906054083221807901431816978752685699880615276963713794546773319749298794061385164048194393625432689109338690775608914355423640448358126021608484251579705466807337156749366446402521524428000567445984944770911883873739462715580554648843708342118769014371084239244808916329262113866502798185122971442899060936802663361149910629605455419420207090474900624452007715172030804293358014524761418669702184053236230357074647310835379895312098657619864228179622936986806999660181857335879088363449421283688536408533048793131613588687588798861781986668293365031898262635067197871751074518931435365644555950944663284795327279268897040162534224744954045249985683560087736173408369317304706852079812845619336660391098362489819092838382718538598644750659343119962500257535605249947242763838197255321054258298028414716451967133609625413037049295980545211765682352513332518397519910765261629825911334554568169279036102393287503269077978431759095542266277505961368175378866167848214817397161168138330685154439225475289183854800360423626405418652331850350225003310638196852567289887532103881898360322321631244927716641007560416475243867318852856975061393097382887998560451182530989888292400735422217586864853234496258593136652467191662119340648395601572491089799255213695613157102227764016767595548200282577506892404602155622088024721970051758797977556041008278281250833261543922994312674152088559679109556786442821362068354966864612445974981767256227792515451424699442022567045698608388853058074466420225232648491692675775295643773747878825324471447274925161112634423467635486635066460041469775277369135356707479745934527240552962953387865581739584364251603438598159956890790253353791611637755008179201811081379485281028047672827133485239034495248070910840651156136182323566402624732883502477632174050910823889744129715915396678099703010974966268937141972820014839172096347778827090050106143983343887139174231458834270176358761809425856350221598936419330698584218739022377024431639675959555811159297083746332887731869075870605246965110978508308272105953197788759947142940026389960774031608522855410367868586627355707304761255798080998413533567733915901293065045282684138006367679390222231258302305033848711163063326724935526846286467009225525961470282201675372727357597742329521233155822723675800879536124186063544146991920140680732346126800814914029269181187105404611166403813075884867853536129443346736367477535460167768116439148004832545768816189393300883538826151141590927059451022222387869183659619860404522169397286525989091610008581314066144573638439681719196257192115991242986678758874565450014403470641906410449419974785537264287082798238598376628717371938172706534810422319089551612793742454368992103948592118897086620432990173715278337815737333585533740938518749295430014189598768852068646651549037521702258791903464023825229041778500404474694220787901374189807088564235511565595789144315764434051054669650513764121052681702776183294632562850186687183981248908104986434854725220670417783699394739016675088815294716796969015263205332406845093875544913058356005829291093786198345494793084625220639322432500683363147701298248733383342435705549833633926977560362416542311824644211595493784913078214651153018362104312987298108964429696460973251646512210531300177538551574433083571634972864034915087507731735221326990677286519140906620097828409602271462179788833749299596440023991956451999524347511961183278392991503500280372740384666010130915500007238003200613197504520273826986363830220201034871583963259452766760778212461540591955890025374972803353602106222273181460920615577412355872191396728745768156148310917090099006322696934534547304603451580110752373856841166427029188299188560014602316130782370835913799171004789932363949127174282146170184026420807421983949317082413443935364559721993212345623291738154300025249997619459582408678777970725162498114704823419403098180591621052766519278830185177444471908520591644837212849305135581429167050622443101076230216032672097893600318657130850799195852400128509549174989448092125622828801868457140599241369687956952478661356787572300094887029629434231621132400054074761115292143311322027530380905851877203690047434899326304668882108353527198685355277712724044643450404222745340013030388848273244529160023677337501802119908072135498158925234112877074777874276874627282906158158034395927438000558465573051608637095955395821860105532827437730530076121986891243667513860865068920984731790334193405021515303734139851212369157704213922059260873303312760421620356299742471569107386398410715566660828290952119395550241406059564877441747549650163180755913906324883832797484664819330031843858342029366386447682939114365532942422077809920100891626075537785530727910242415990951841495758960308644890708237986630814043563533013816214789854211586627562566827696316802651606103219473236164785322352735648650768874398371823114239153202920556162651297219651216274484555569330632680383644115001814934398755596992895147734752206337371605169992860263251107272338621668292026743499803544880343678214985126441514518602767900327913617206927188327584848220167226195497705904048162676462500997337910534019348084626404945942832850372345446087727344835561073753413479518336866513767561916952545802286645202660753299616657030203043863125412931740489229074265269009401363694619893662506068089898486471564330193166811921462383324520291906208827602045198096450445117497160220387202135368626486330565119806837444525029068903595929742080612834858766031567854985016133825665046392343691680192788103183066987593265489652332226095673067190463060805140785610729983264090829502658162966921762869553047256828492141397415777802917225002231329319332202342495671733346555197385581759348951051941663962261732080402452649973174308341555946700613505607270898512316366338469312743978715538713696411012217805413550305050649471953766844469484480269146971634594227218685072990949991953032939887182224771358961505856528518030331840193028750743502860695019279426694819518394803031129937540542897561325677720561243928622029732925813226997891806626083259127944694618252837282444088438651236133767062820904192513361002707363390434507760367236418211200020847763066105544170262156650242402815507339152015822048501064017811984419498640434276343950898267709823723892531626122465020846101487923805428879631014156455079712114684742468000802963201476468983512735202303864571346900853406512812766444291398576019208227821099336351158755950430039186804396886190472006556761751238721672746903301479842051797481511115946216552776168525910239814282472764144391586968545176892403463385526871045037687435008652248403027687257724068098288747575762019259432889185429654713973803419523023736626773959097819268926652249134017388288752656252192860134559850459558570638074478603776316294626016708982896802415825154098235008589062821043240934637186170773349194806704301185054663804271016459409983275987483921825176545170417249087864462849098373003493436298067201914642530664628180427893059628409809250848911837770075653077503408533701029654035156438039323263431817992159514402194781872115539948647116358417713343317111906712688203290757934710388055784841589788274509726259085707170852159902187494378574818095058471306521973533169908569540745353593734503964395033999996583736017456662089215199538006909613979079214310148990989245254541499675642636468975062186804382579174374982181086471364807817897570245316659237979059238638773889674448369059110329836712278193965850805935240873114278307493835673738268367046634428232576824387624986915698674341442891612991114902442250660218096250255557788414008788269197414644702006783008458065959088728837788022697699170917419927615543121925267390981604085455991883716024883101750216942156640871567227392279667512891429638059836408548115181148542246109328377700326232878405317663068864098060531367303456879904543876560267287980344396479568629918469843884451419786673755543735578103080026229935458089889097856338506735315560602117136788220545176880004551612192968327494810554279102104236735154763226699289536942010848482450345157988113322909249551098741907782149267132743964461550692266114469077562902060257125786773658315300344430002584708617557856942823027917155544702309502913168371615954623677717058030809457018422207833893414697381081030666968019540481510813776420009623901764993148989251094737619698348385193715385114330404104895769083421111042858625925030859527978778608566014362074905399633759245824198788061931653798075016001904053182157418049140001244060589941459417896443320789302517676594969017159159869265813507092776009305219781894047457556183926972230380879707060738954145927060836816299913560202257073901859350118470056024296460375710936813567193526595968095239103093070001325475314506473894110573578663683667001131019221765736110105688285553052100576497110753521151268270550712711727147133660588210885988778193679447120154799968211092695428603428403646364013161768835822105059934228531813966209943738524282963821967146437382251719974137147249907425675701133924603354133786984534058464335847147322198621084877814610203665524852263115058656795682027934426898900569642688474433707963099343624307686196566783182810504336574551355204547449962942816199797534037326712476520894698580666193644860613190164085060984343470429827277914888271118585197331840315227587567895401380550657623965758316945071940791188910102702305951173219170784521503790996910718246703072728523366868900256626580410024352885156894148716350874127114015281192188826868612367064047299755412301657767752613300686325212490294309854801683264459002447077121247182332057218033914646112025745378853581618204527801110798410992128892083835049990718753496183567876232461767859210236819254645673522373049187869564033433171149414761078796307817518956421823981140812588898486068135630667424290511869354331183659919109780720524849070764806283941963201456721803517631944172882772113733370760371272590668009705370211809495764598321515809477155999146667644828370489189108453698299421587022769962118937418492134311640673399254927833368936472550673251778111234777390863309643955910404724026050784884964221833746597762582032459455538670634338184523223090792172112313106244774401863462755809251699118534121488599532523556333977495096756409572936873894497144743440421350137932059051278633247859341781243077971435500409761111658145507212402039555155115285503039180593174149182270183015357922156938305725273787923760419607242909956075386968417141307925615384871649172550004754094997848587772858151361869769624206935221246601405578881905331484118035220383723576620809521007247374026816124543557412482261146952037937011959157897421622911757187054254270564325877916471341085233526458912820741445034466351474174311295827180370315997547849303415512510383345071639915759375025107187054873879556657234271123376684257855527838303844022688015492073070290629185071614508477853487004150243161031018448066490596279738383126919182482553917160269327172562850360165729067343269234310487788384391319511870628531567005110721988959335822147553240745009147423371077193818818753513126601831744405310627622889601635661600819801971073317851223565224500950497796034881468025840439772980847478664778493697094852902170028449120457946644688891457336329157963279822106564023116558318216920640867088208004832331023803700458427888753809924636176769089938025754752156402633064584837202271972745617637329878201109957568149569913985193714982576224934867428799242939432247312350834624985385093666358481967753479982864648136452896326185071441675854895736324724684727477459961219101940132143434277773001905796642778242659715948506596054846576141565837139327476344428819121764441819787619625548776832761738015965843427848924071140683294816901550884803007718119497856895232115238903308604847255333400125242367980976883122995428010334343802165698740706763533992617702433786207245906789345737693227793337800052847128242262087198328957134094650381990749007490473442245939859867235282066876840993254454801620218833027265211905749237583422285629076150234798448004238139752535208914838763421897099951654742928278647583042921212646357944587683397414158850742379008446102065397424942530963299313555391026931546621679344767685011112707338444028939145233464796217323444015269361599986741162874537611040910710704764915258106103621276335584419585527064557707600837965857172336593839111573199635120813746554872483756932770042375217213419245078283325013726423241589696175791573643888569222770366070009697908605709240690102446253436257906061258256094901391086713664319733379573012354336092212048433138077610646737846834970778475309595975464718847851954780005177893290575699005544819659213542312682268297014708597119462102262386791058078650636030328934280601835651371301802268833561259171832745031453813443651865345310925963584986475275280470594350514011563046542837219024970960412715259822127942531774584824604147282023344453157569200870509446346928808987664853380439811635190859555678908897976789244150601192049061159748361671676613439234306766500084595006678642686352504015125123702393173683024083312911569008499198467302753296726862764929741449867155831482602061220744756765407093156244890936044247352710654773170388903015777466084670681561319464890299650326393052765102088752772325272712221983674112111978703720771790822098573035647294491941233324071442282144746674741498058595663886847545366103261061854378849858924583435368326861903303098072922137438501278322173062297383139877457915487594133194597594103744898485494484340352502746496407356819612793367031682563358141315625529846674886729564231694892452814735920551253178798136578606528602642790240572668092198314629139606689755431349897795183786730290811394694014456768027193028773833156315718532747614024314198352038314129970990070933301105054918368833244599238361961246726416480506797429180859062702081971519015132256019582466689891892641053355139042125481018999857759530507836997044384687860852440671341637491430251642050127372096047951432791134355220155619274244696842633540086392097526717364340696572236126366500250516758220697353782344380039487555012009888362825254563428366593232911568631168007429489944240777311565937383692548612424275159115371147752381187147280785546137691724410838588055531938409367562554882290298994239521872337072986119308472238704972368379349303031340687309899980655173901522359336096669670251415038085744398728459768906962315919483467816670290738913889464664739662529478172219664467718048571012186012375062313807673621197052812751010898696788491057826992783591554302272518607358386763805874200055607850373484934354767052843550661333983053911217642750085998727928808954591542463922630088931052607889933410785228772706954076001988741394979207293640241495561365146204544969791484261634086267065269415672130755882128987413852053724341207208102113185043394683270893871955508778856632589182382115395476325313730389565298538881014115976379952850175603456561567287205926372330790379843272841449628667128053324631451593737721838290350419908633132110513889205482064249292093119681409299420292980937285972492309072986092739913068237136996176849480075001751334746629138148867028073367017477344750760264007462266109821728269256844791423992137195050468830689085236666412442322273453519748376277197024873775242095138175074662202893220463834840997885797694021292750604205359070796060125075743234095371776578666846044676365438647110240410616404323945879275800688461904753296529610490447503182779929992665244667058116344473261718884691582070629568611634048481171793571549717842563573651073018509617224246358757805205787371258188467855438755286286995866107003341059625299814746333276451012289747122584936222576632007279567776556992806458596372605826724177670429779889732127032040911964872681407722193910273653977467637397728650076669898062583571885486196095528992143355942794564369670446558964299732991517846841123888567020857476212646908137869887336010037132714557942083527909141329700385027385189003942800648786175373927181460593612731420204334911802350793023341756879894314475792796533910936006923888016467532747241084213948720206824588642576736941177990081381213795357160603295504519253454981577152069512058016876009730555412792974119060396204736890696967544688514608704252484263492152003960338157537172500393407026279867003762073311544889599311911802826308838254275859380479161037405025567677244137382708165107139878479580302150544196582384307330314898639360083977611497170140653313154217446880444400180401055065036199181961330848190492158600957540147883029365413298261840972726649920956943140574461213250796241425453086027115280883245202983495205578485282861721563141838207999334017169314632688624134836011471237045533367166543355584069463840304271406361927470581817190842367535053455096431824285903600916878557694209852409281312755286272674314527186812006716822273867489209836863716681785425775334050782143489281458222102960763043882340009257070097523160390192660717221346106019667378868848727907759085412386147022697803014303480084530545733276779025333413280013686854173711616353218867275238436348567930551807267199033528362138759004363585878060466429548975057790663503400166682943828353249670527129800170537724128726392919376998147876107408230513676504534486385048790591191998561890730257963713907006704682592370011230090211187434293379158365413513361982337255011250223541655586831860841856480344784655548712666405210058203155388779786817353903816703321742158432432021545042489574632170956430642215126891500464155455616334053244169201582203079785231383321961060685096199514225644342733458803599563255560879024727036579112067910336120970162289346870359714262151929367379286181531113716039535853089816334879555041620813178535489787859327680972709955055034039126671611975745404399665782541044759846337745222373094255566080764206511991032536460326025124729100572952472547367775567016122741751336130639565817705850421947889855648321729899112422269330061961675139796283762731681081481930929594777937944147753783686603646961178095974630210080376543311305907998667546277449103573360513218601227826569683252938015283811373186346095179500685684797640242768735383702691027890923356397296225352805074355327080546418837044256277804610722329066061227225333624183018824656735478503468325458752668728990643464737593754185626813327632766792017238899820115245454760020249112950248143264718211137536323080361487248562686484966968926933031103721242399912129689275131158743269534010233206061745888776344243363405097721336063196786249217023721902738052897397320427982370419473086670397702845213160527730801047641692180506140857004149531727623586989118722706199619874215933756540651636598211626847102559841206954851921569821300768198997914562504537261195436028990689987872122467644716798276363938647945890310864023961385912520612802755005152631602300370982516057435131683127296618895125561119344276680858568888449959419546674750849596947691567623085924883196704098041541620204252537646542961565049910082694239230643211950845710554266458140893041637075274084928794513577911312049960679797597312654364367871311629903024782440253348553431153107197723582156690020969751362244055753149921988251956072463958933932742990953396819956119952707970336357923421163787746048690356512147286667599125205172307843723523661721101235559970838721015087719131418387569178794659786637873228176627130420800006035052607372750673551227178314321803168258242832680691776232799548008879273488131092079804732524213203572228387513152900411512747544233088005636404006196559247539812899138558571495974708314821364770228891875568069174954688431284069021205071310824223403029994706745303646956892423904188929581818682347045584420228703584051693545675355848500511524443458382840863315713055557097744176109216253892156011613563765405936920997256210363705372763520498934890037074215886699020520457079521874210948545020283810726499880004090187027270521249418490022957911264473622195202515955490030616062497635423036887595125657671837999888333169613372216186328299446785284610804580906622165389457431608333229600477513477091167579161732076216879684586131380961662564627491417673422481322746045935174163641233485184330822329204069934625026173974554944798063243973492286287120537886469295908387627109009192454672646208323386232648970677953563307333879924499960584177277006228767660542062336639326040651179654639417851718897697204376172770579375242768369687594585193368892526177493950765546642424604010145082819574930072927692232393845099508167747238283651425535633696283381648826309109702353507884105917045675074288796450037888908620024931024708532288376742791848165637881550606139347927277907521522966871376797989995765927256985514713685614269077341365168814342626671241452168742701004775663100155669807164111272675621534821100877785190077967943887472242519994808803607665437853987092876773619663268373563277261078033373898875525407938342110198554176717612989760693813770244368992606935065941058729455720974717017997726509324561143537002707331466817301670933454384205163060205634928388602115714475553227535345037291884048225128988420119553464972461565548111019818989900613510439742284363049726307032326767761932239689159924565359046941717432097518662601394652577047121176145922031846359354423407006734559092249988265413246545017716909978612966013535743756762344443526493557765078852872706985755011618555922805521423361387967485979756619363785638042172710610983254383014845035150100931756271481643724242481246450835014487659130324551447541064920097812910766616974438127642088456435453139036768211423431174044429624072356287022840047998468477602973981641594905440607912583418010756997147774518442064032543652612891002745800053441564770938774287429096937885677596494972653976644142529413481523987292057201448748521715404905388899799365657840390431836322787512259865983838477619812757292297119273458247034184930186986157942436582549615286323233493227336231226703430144434314919900683752541713298596684616337280084449775305122677144552191105414511458822538605260789374199908797673166285482486660660113047406780085934541532514626080160904800688256840642104967381211601503671188800903759375792690969287536233911055496822603961363724943335048787923218415444528302472815231111198215761648553570118212658663923374393061189650322265694005744503908943104497775242862548239124814546911918026765932496106727527153695908271589497294505246283407448713700178158232525913985664187270884438341764402491818492214723798553911213912018704149200205740159838096636488287693488481264386773694587829497457155640344368876775513781869862944722187059915433378519491588205180240357136591467125193003493455384278557581010483403530923260488869937677573307196901738534050893743059700594514247723104286661374619057300205435448715163762892266059306044151970278636029563701820742731861729766394709509677518116939330892113253338394778967239017690235749081438757683958489362611826110459716529462892613263802240566463206401856727695511963409451381093720098562712007122451784045696128830662039532633463885371871409849905874844234687742864963237965208175885422005096759108262630491186393702899439904056054107959428523395648404555905749180517582830238316250383530464439571703168451202387600850270717507857346062283964104830431419698535724819012921023077604313880368446545293989526629959520803382812810276025101596726613720706844948930955561370326620686159782913535252411268279994118608575805009566843553232865372281255863586524409562942270286250909090145842303529559736477353938075513263254971825486307473557302471146588491613388821347029426547823800516728195042019344346821869240274795293109689680020451486529726478270502436177234115621949719473707330552835985601401613421854450228028327526848152317749778817556442815241962283085401066229722293018776635551966576309852600954336817702608778790363063671157804583558088089996618940193520963076759138215759623622739173937058986244590877669544626316587618638863944773112208168539789465432718458410150331952794541653488318683865324219915632677099570223024381491489687268436273178338744828377801195972966068257122606474986612840194836550566352626634301707918062921239787369085182341676520019014130259980012664447223233608711169546718756416719668973686817222561825913210918583148358501332190207533253677067828548316769869563219704701604186030080816674788313308860966236603756800908936690349867344562810357198445369448673877530898116949052575408123708463150616566269378856089088791377889151180948606869360321250756389389977304935037460251324439691571968702019158982573748470124446693672712829171496574782191094140658574652068736118591177245175107987534013088319872172271639039809239616753709710702988975475569768803624296516147016535175007530003873016264241062724202237822373699333697834380644131011353094031361015493096514949274509502340654928700291414605265390214418407106125982075543677002294257115637103432803779139324756526886058037892514802411637525815699398270404940520371443902988664025618241507361100916866609521859912689734961500376978057467650349270414040359761453893681156887732485067611688809013886918594895274094335318942346347800566898812868774125919020695459046735438627682570965952642423037984259434463035140257890547247662277654252409821501037021336000379924867949829304958254791118115210933536748874533803668659734905679277040070396580255187367239561478850653661807955113231932296363228897323289637982072190325173961799709005534151232875782755068528648365813728788955052954813701937506472661228755471179729339386021291526586496476623603638740051291182943252137058550674035933910901626589421557780292930389308946355698436004776388316850871949271634309346357901914352965535359438523533282485161004984733273566943892020588494758361653815718238552906758180272328797477517745137207103160122019095706689147415919262322129887821422292558961952994341074622215990888080833532034497257779159596802724923560031043416676486984344765099699426701847788818407239336892203153901439984101008190590135454423648787085117771381513909661871062735216991029197831273147659606292729269379178756833814185188031712505722384647611356931855931725176928736564968732393369388882882923204972405373250014492926644929914653649099613362353942381024629155632270797907440985579719734377010112386688534801077930037467731233304762297028471971132444454690559694821373636052496828328647543751352744444410089049506711750398057438409011815250443315772216185774042522193368103777229969968008133419323045413366260507970823002461097684723058888420989136204852738140461024017963806696372504735470131919273033672209413037910517611631864211959150824535272829105536632706575828236116401221948239492741859875736826938437647659177509360181017599965339366547616199914844067833633058269660195294088868795219154065263083810509102824939663733689799625638133185022061518733135095928298880509929500662461065834020273094178145556461570626498141935022276959691873889470299865345127183994555971856766291212920144966741512936813522879078721911890395294908860423625489496248153046280483653400464522258808642243547744231385376012928151924705886952416746422993980208777894651733871201509729209671978011089495835499069321659744032798917367297396048070376889796733168220860375272110456351376524118173553331619569153084186393631026553073276326928333511618665559359236253337010979984630232038809247679833398155502685862511589521899658533291375334100803168376270155753619444755563860608720016351227397743380404473443582454345346111873421228557494331012740774244968878773924934764851863991347754984516803604629049745833775175477822886402068948570297800373520309577052867492008781784128267032521270455182614226802635854497390536166987699119510988228287641270718609423639662220769127690532461702816883883837848603699236321702671375506645267400259402517204376220774712978029369254221162813461464101183843931689640412082001051464032397574273309322668661403222126443547044766614526586717702694844945403025528883947840031862978855591449624209109220354645484163411328594275329308657399362114167917164449081638163219950792158025750056232126949540504645820356152365470733422848831084708063323215537355196295099737757201209041245634943029947188945268489340872511724544116190736812045794971097468072993877778699235761240398982063799314474300451782894423562956039879145150841194755668653485851444835079627712208055318672845868280543802223273819056561823109859490503466457430750093846805175604070834073592986787114825117214134254675225225436545630894639442152743053767469531569481297554929391745816908256137535978039962388877230953651469587364070868461771740704826474722275448035552212013349259657044835118857368788968138562145786691190615215498344381199716627331971697016635435781613839262328263165343356839968370156732100203089302181167613874784538197105991953419968421154046034826429252975847360112754190437238610002528516838382478285135795140330484580833535656285445046467295150648170413907409214587244156305081495222968564703822737362332520720307049225124969747340162468000589518470793230258468567584480152901889105337475229247421655532946487150920164754193049267277549914068903231714938550460670589323355517767668468833354543363907433684588263816001868976916792822123376556334045931841861925017490440487249151307011124922693183223550657381019488798401527695802625784119838355277902974935240533242397744051912402021315049313641761934125286094383111040698424262346699570626876583677293413179398861214245508381368482937489498861846553302419330603950050471948142949143335490357452595984146270366672812719603776698967521752989359425304786197141405508348919129305466787412459403471130945535188764360106299889877038872272798241258540352605365513009772488835796506963410567175133226879783294818389225947858263286198785955258038866399047539965958172078903596586861428314282072572286474501609553202630211877730214373545438048999770057065147061771300949006317203576858939354620162967628332032299962269369620645500160878031486199447866084435531404087631178939052653165230509534577035733296892853472408145361893043594811996606216754261543823790607897741056537910080613668752132128222581371413548857233607932910413839159940639060955757947673086658638828591409348382367781509034653729971902092067469862087451963164296180569366240552550970512535768524836096901080982493035082402202866928569695854452245289220148813476269873425342665160443168542579809653883553196762994897154119466241114311260006812065499680658809749520734600869671531392555541705927901924455820114753887887421422515365219391957098842179078120033039938121903427801799771722009830424309817875889671083780418748889908971300576317440510916849104835093519179157618932334668017477412901129020817531483286846121175700360244692018204182297347049185263989367723949544589949982576702406937288601852830734566526358422387611372502343710946664716410066214657389501814993037048360525759787625301502261614386653355324065661922634603490278536900268506223501531163985434322020565901906816215000685123472646504217669899741320593287750333658723498275274183232166082878302387123653951429471795449256002562029797159902515204263562497122551922004545926166928429289044813359413414784318268227272327599958466278273623942574011322500624474055388103029623934168922096512347710327235036826674471407618456702061753244672230309681817857621193407969777100899813162311360056727663369639339498551019935246343669249395854245825995775391679222026262908447204127085086017518392740867490532664171083703646224992230860710795615934914051494227763901828539674945879440575312320269269812553159799228663818634006615122291650142744202909807098430476602696096347802004918595508672182689279047625482015704866578399867560007379590755120432546956272426424052542437719930843648265830814572929990239279466016415154325691387617048584499234206068105043890587412744361582966610686666602849166392086968280251924275161920607638488859177638931398126641460865503989233809006135991365778204423641053976793013290170031461793691293499682999097261354358564282497619250403619992048055314510084495709547544586978587044033450634783920400067858883157989082999732491827669052469100388645883997334496097680499311022678154482857664411466864103522385990619127604136612433585392672406455013800658967304833004760215060682347214157535037036545200788923686926639267158119392865944802893396680883827011631970966191753266151496810128694314789650820247756050963932001621409533902475559655478578523481597405966143916913120812088388175369244119077931624908277045065243315870125644702317072380639804745641618479424084840480702737688187895214548529518361769441059500167606346746462973226561702674133291459891460864170403131263503440961392496153921089767563614371091476948485363522257476183484060932247405042427776947894775788815453244030568539832681127052731226586158353623109861293483848840356187127602064200535984068230647723644794307757233609609741426201456247767780994751393280993673506916526783594942246737099429907003255170579836764660329614494336380780477868153728892848854651981300099770917294752072638801043780587394076708330321326128358061476350763069615632255097540440603063063404167781683112329782671579172375792133398929346893104048823200026146212965345232952100532818173246531228057954957104073131869931063668449488332563196219266322865989148127572628244812422557307167870082012262571400406511877102552892798476430773154775967484551943387091220895948292864612486774192980903850761878326447192130473652680866239458960317024173993919210054447113417698242450492500804947501794129065185789298829569188284019366316792659542866074279966375803273071293501945233566717407752981139046836051140918562630678732953327143317978803919107919628788434319999957066118039392020130810222141430407285249721611133313013050832545308190948377703882054652576939655873376023957871606238844707986763446869780479350328720255792586313060444879325300894038887734619604173453867416352287736072814846715452055604902473059887885039631895175944355609970311775238854197620984250366811445048339197315442117309529434242859904139466203432279461920687826259884936074874458287111161230317092502132604147824756747531665442629545003761559281233465549051863325001335763306273093847895452386732936654797365774855291984049066106606680562159659789645211540727656614357300728406679173442210792417686769311231857673248851716956940092755627091128874441978259308631254385541931902834896286470051159048119245938006038120608574759919257484004296655733973558827738264559708331352982332721421610259928987422503328268280077686676525158289195483124124894418594333373186206052337739816916296052833642559436645220567505081211383070939768201381412670622608852310421472594205558045012065667632926435802195692858400125103963914653272605677472480905073413916885446978300735415408239436969162001993923731713732695661810226601017830763686936177256404382396739380880830941261652874922688768579334288110275358478526103045553573016435607842023400477759856566321000648788003845199997723742392836324809246260824743902323743106983207830900969890039285582475881855453692181915401894374597284626382759964111217376477989631306253753492079617816119099089179916892054209191082556816441466979100087877576613891393244090498190334940337957209692793236933976680732467698936583928098144746663768935558562457220395376126495918727836062215031859534824328915983294755060198062426129062392276748394290133046594019448116496847672733208085148686153681344490829412881328293323179096308629386536654876317636361218332335435216478164479169018368491145503941138777754941797031498687373544973672970499408134907995653388510156359525753089830740047126869734349483921056335697827025925990559149052614820192738242001573764759298299793021811423869738842244171718734855136525550731447244597023689170677812571423148481832338930776992209184559720460716708995162593044869089233251287142047826080129649454850113216680701157537060506962923869865530801612297254453006949253829342780283487760037478310661961230749844362879413838939927059191227251995983095156004625239136855432400626707753237549933354502808136074932679513399588159654029627749327643766707370403316027016772365365649019411800355136270435711672368640994574399145627492511555335804545229820814015078289846882581072241304280029405692757341650135102119911550854093636034271923594496704787162620315280195864515277126079536288651741057978405522595451694458301474553457511694315221740709464260666653288339344299248144308495273947442952252341370777287013074226460573651043051010183959189131205051906592695765055729963022682065532936677545657692224257303582087841125314363120053679181700621096035862776649609444903496577297519769989962447821591184233778069381193591803611073233190410924244132171971404442589255395676610508350634871999234363339845898784759365745314440044671794859547213802593352249155261329262841398265640270388017419855845527328554094618063859619081212133247857233456460883971743199708403255096832873923387614003055583093793852355100609285001846560281878107694444846426607632480669683045377855028700228289484094294915085300364532840328062510254154756992101296111300435666816590875604593670909270179544738941690432604416629687237381668314740007382070628842681922892903128023938953527822240807335053075589269612114309802084225847939953031654788484141427502372829807838437023036593349642619396955271989108140432849581079109264607187523844724272314354485831270821888681540260798947960331019286623255881923100467933871857972411394894890471261318447008600881411907249924279780089146690603470260530509956605555137663562534760941929521638908846502961868329729474596606134238004996641904568375753535634764288406666276971964687998750466964667925627474823089840407008244307636492578794917638748603799728986527851367869352162509048091589212653232638625152778948656020270375834398507553347181279300418517976326258619781136108915696444075938572074802323880409083392881577039146773138281714552623719385004098721064035572724638513677192484972121621577116640436459214325883314135874421536787665110889604365564301646120963157055602055579498865801074159966546974026468549286134311156454009345052211911017679694190737413336210447101161651340314920384534839951511286315823598499487821017726148512016393619026749537136917939921133350921952664837132702729587870038043909103396810219232384755020404362427075790688064573863074084371744556155906561441243192430523419249749093659497601672579092402938219342037074043083608618930702096278627577162119715280665306235357362560805295290617638195782320657018337501851817688984623039127215433093376195573466370375732161836712760238067152282010852411348217755501667472032247456800637216684906364847980527331911177973901700444650641434528784500921669390800153345183140314416546489929492131326376966461750099998729133856354872819385231330853384601276453777700993388904692537341822531091627690076089118061360737886197644109341503138958660049540187053837902754533760823979071213745445530399834641122903477633949880675504549489452774390708789982362248411714054813177532511101117483040670018986067411117798444349413671290928084003400089002601753022169502177219209733548964873713802343215919460423640535082142632699282209999944850094623345705673516895807954613722298229356243869524839186615041262092954450243044913616434774427869894391193757085937934869865573398376254707062301204724771274782337681519305933073876553362350117220029297919043338290838254633377589051499510008459281405402921144524561365133103195019010001079823453739591811915752601617920664165918060131289897232413105601603877345745450137405047908238230585633699584216435160998809954692986120112488285484867445459293125134127224974837087592744230137289194228825172831453884797658547353359153696351740378358485203662264054601996593902367109282124016822736786046380482471736121865223596358324020246600739078710940210066235730478013164224261629593921595588425106421265261830435961527307886668437536283682159860378651210040635437230392967840671131413533764719261140500997324029918233584161642634896648672760595613972977909490744665056121090405858241323462123007242676456786958203836387634134429252416665095643062143834025996662394292196595489857046607011590817873340601359959916346294964076807116595566866285124734732341825326190969707573235938932111259298565390774953391340230346697957901885048216664892893514071063105529885196524560657888673162427114152978354147840509570577464919363272588783062698190981055402387947166167350397731729959177162578916966799342785451425474722320345184997984779205232945748645763412839535977008924013180586142929472176187880554466077865109129448412686074995595454940004436139615442951443461963779699527880974249928311049272207202380123950154320043782787863744445233278361134390993945461143856808453088965586020185800370234334486811421158962336362735126986089361577719040789662872885537850081137539883930929945891508580496800833715157384373387554570505886933870384071414012125778602071969160324526325767855476078833593996831129869244124645753798014764199096050639539232448385347403851896835998743850655704153947016217976356762697353795549770077225243025737074371659231188457833842965203299723525277702049947551553386125801141283818915038182567851041815563197246574504580227022362708618673422843770294747144398548661597522432924751522910564649187797310234363711187425604271717800721542690959886098936944069763109027816330726385791136627997943640785703733244221950926833364180070982977979515562437370324129306374362538572157336975103375664720321987336023542513061103752703968204049082504574421590423192249863331267224797336353352135174711801809851142801424331779544872302736499862646402748314279587932052464192949768339737629846320773602971405061318477932097563355559148049418690451588813534881371687395727195807128091038444007484305514071063510810166454424410207288464538955654189025269617491250894298652262067156911367758243982969761621757791538497459155560642572733575604653843984255935310756458271668940480331466889081153987459305197847074120684385924259992414297033438441037343170955102420141923061615535372027951975654618306097254655872479770419543243884342739914463208127686201090407252987639811666116899942561456821054369484063835288857230705675008222027975875909105874424514125579506585545811785288327483282899698766963598871391229900766101526478651944023027273422941188492398509268582298364113318603403709409442053509563671695012381283442185848313147139165199537433502732673597711395477569851555637489197919874332362880529691900484329505659553775655652045903160661826002445853732353880309812732730876953640372838247227195594071731443271872646072832899901569022364340909923129959054862669681207964852808794147945176082493427731482254770627757979151292251274797374008624619886499140187022539937205495408308679709267560787923950406027116973546977243187253331493672385418623600577609228051222084510527333623694076129382830138373509402269546735301245238263226509902900010961614453795827423386857362111564159414629911021065675941817393922691848529605403097644316236295800012588075762007824937182598940620425767180480800942127036179605885279248770852974717432912682218207786862163730048546901038408207525267679121883131135561772236377327509220915263171929226397084492071139058432280648212142947303029938670125530301526032910424172703010326328696530611336213378985406042671848601538593648878101288367879558001161441617215522318962139244690554121917466404480314975761101795200622879178806735914976882420736269625788525226210565359210671738676563002307155021503704563006581017130113692556586426463842910238168633375557961583087490634535606815805688370117862338737654521015166335142790515216485072718208967748234471550635085738634911364175114059363981947528169485513638418846611385198223371479218762412641169136912394766957088657999098904100220803429961148123417070852293605891865896615203208500985735744098650890489873902197088212134326902760507555754170447929436699499060677134541241245503464993048168031741815423608267490640542118011421980630697638675167389207771906160380835790715704386433936343429326674837207754478778378167427583108172853888112506629546859917820356458594362287181891355093882366641399730163893223511595330879312145994726194620976874248935556865757811459723114355845140699012272846523139867817497275835981925186947163933598835877265579561464332558330507039278384592511328892277452480487355017117167607243505007650406038902056801807946404268241284409427122999754581736113120931550957320152237990556722687084765240789799846779162088809385635611907511489667002794014303048852003406123117056900586359515372885372267329724168784931560456435678075215680603831925891140856179554358182005546322906226478879065806504873014600969722486880927195998286173690866176130195161522600378791968539078058801484322187152448681675678496914819509127621989085084553413347442941716883005837718889722693613228993403664108283477456866198102607999872294114888153827123683393770391973425972730764474581911191034315346339982827799008279514451971843225818580285003183690810702687006068843986311795566824069731624112917387687610871577517913453190809894269509321278982658964209205641334410566671918736960318531711429416942853138981911746013719932176885730842872436252634880575159447899996606656233665834905957403815751242300648509664418901803643357852762460730222020383199345532136707785561305249345034401605744659906359553551848698705016286760462997346652303851237165202714825123246391380612415860200203176036413558682162284067313979817787087621868882015079859605247687846328675009965394081994097093827948777599005969422480022544601578477066953536178907404452491020941678746778718110388029862180940061645566676139610516660180441148829109865227781564066639989109656216781349201886089100447329158229691908745940530639942798080137704195054377613443334791768775471515259551541454407463731562803749447734441241042888686546423531434011788901130006541007115375137750365604337222863782534452786752074771705272408937459499499956207888992625649740856426591098148441420452434633738163072111278211661304498083129080855589159482385245427116561816712222355497587032840307332382038674954027964984377092268137288449931498498476159062743562969483089743498741483509433067527643080815569930647233773792957264002619438517575047612579252383770449621192482122390677195183852650563360047419940840606752817900497822603977690867354010090436041942641543388412110004700437178774416687817013059767185493428900732697765164434536943926983661964158842395399834553626789778998596569625214481884291074769536927184450917550126157469268920504514545777604582316048069770028054104642968461670435407846535453728256505458386519463373067196857928128167117981308490221645729792794478317435939715781056284366480907676802792935045480123303409128362507563332114247264348547163721723825317400910576350156086108738627702624201985511870262446368127227281784135310699198324164921343643121256431478842462579148361452984391600250159498394711751930225318878248513221517930730736084659070604317393358936574661262327920079286131302420696912251066818239276281539521464743873828427067491487351701290718488214959020642420787946956493604881838231095915758820410663718484863285317767505566172660985499753554224464590328195605057727407396386628230084681459249661922661662917375115773367750044017184324815185156609346495069350602496896935086272987989404488454600296693750736543400372837422922629308729752992968705989000089008620297833720376888665800681007717760366738740508732878689619133252944008800585028430369818293552771270161622090140464658025735776880254556187150259168282540678819733914038757387914787937144740096690774920547875489541438247427894183995594610206459102210134004038518251482032536509597959729892545337887305588629982021637160620465701488283549089821635528842720254071746570981589008854848612908558803823225563763039449678638203544234567014093113596873384168121770172042942391143520618969219038696102927194269393238777624882816771946720014799432748679699064393379058896442274968681565109567810257248004344286309834999953408183702348145310628390488859782198032724651039821901521279937166566445293783153661480553045339527328962176079469541240971753315796351960461290470578264846509754893739742082106075528062223531410521227410630144430086537481039867204098726684636442302249820445947201642551837339658689270765172488699397772711957358861548697580479812700144532063947161058017731422710651518337963021975396396044713614235740982874911914318763506004886339470745346681209699767378066941069211113978562318420710303415785313747360782280832489125402505206882025128828276373651681802612946662902845924378224344668465848670183560187374629664924941177732194802692382057508852587642550058934923626397506449442489540175844074396702588178971666889749677244428496589943184937228809727704783241346608635255109153177359485890715478271209136176541687065160685805504832547611056248154729064961420643035626652030093472260517162710976388454749379676883190267977812280354569208974967410886995975999263139600649430762578419284031283830739258376871390575111535280687775086815708870133940944347899000220958213097022397095458655171992483475776296936613662822296603631184553463495227864517997590264831161566595873040389215416447723127331184461899109806325541237482822482077153659079001967331115057529728707978587688973933964680377887009704482610580696338900316685976787411736069976867673544605216233954786821342853700284986619468064042482174142869427638298150218139178397115189081521989182390655840397189944109581459675510079793860307446668206931330573757167475030108977622566283053150478873621394341680239494472170934452496908464843389674507980108869812055917261714420105023747569346656707014120530041362297347763177817080115586488061194563409873910836506042206863851556872782310202527574912763313837784060733045906602248446981717722852618428518603562177360645749608813741576056623597689748159794745134680635561602767552837999072255849573631471193107895681365283658393041085539675972622626130994099368346544770627909741161533586721563661669608253142682813530586264215740748860514118099172893097782883732821139447906055479230817651055910487989751913495206586404550154166865057681511954542548813384242528616654333059287999482406965404173081014116762554084109934252034507758663312966990529339467515550066531943156391276446582783170627900141160977333757812077921783172109534107677325731148507336798130467237537612111489514651647832427456732068988880562731221100652641630333348578251196111867154784524083683696842862367549007135798790614376095040851703821905394465486145070792450022072912921014883787103511718375181086436360692933949513320948347308059264686807125389421563512531601880452880164665333959259605032011435272698401564282346869191895427922481003635957481390236537332484375268264616284655863605737958352214346457470502598779756389405672650334646388124935099415859630261619692912163846319589231397186578362055395574548729517894602178314566082644480584761628794284636831675013340026703422273872239438956824208157657249712565411640021883995481128154535575553216480650864667869702651393215055294294775298714162903784861791509082326731185687332584468807338581531822966216527288640863601732222824947113747548376928037848147790858292160817225520677023182770282658195108049777114967312989772305998617903471275089970726986531819765714943390330099684961780578278721283263955688058170391322748277658103198532499821700161508008666069036725010975439818712915270893382084068118446246388077954217838312150100981721799058344084748047134758800350551359178559333771015695686388594523246989672969574565569098616502986558456387012619626093517430155422733617903064110872085410418578402704531415666240161655784605137479383078319440812238544671280756175271110092311448558799053209744085986502912466192828338189717634516733065417934800385150741212960852325214984701832119610801304174843651062748514308452536243143597363359003102539574096335377032079237842547193465673499007942212426880142384426002355809005121919680614633871666466890813845739771582862931582127585434786616295547022003030173096746318962784509202946577494843100644114827825675035892122524188088080992996840875588480077814410626820201541902242620045629420192065881613129089718932897450790461577543641105428629935945795792545466027361184468220437426856040883635170957791175607051503605937816790808191238896118301863926837641863956572935512910168784880624296661797018724224638624802570587272993836690035288443650297154364176908053223278700626883321404321533515288909271155058767523769293580051806610012556266617491883726055631371862916159628141833783530606730175099789610275581392365692376844689541838008585912140275612802042393174392261082782716194250524474431250369970597768710691944413690358951214829539149228232337663931332595547493479035469456833302889175653339256086043489445627741099506877433330126117633914498727398558076019841110240215987680835950641001613809016696757431521433569477947212216455184377488072601234161926962001895535025285007575163306452727955523100965056674976109841990973997708590112620526248075889817486091297327410312633767388954187694760996702005877478793982434633054011845337721499701505896960727103593859408544198597135536794542307084272307383793120734480104010541177081294767605959367767675736601062673984541423862321176814711325655222532500033373042107433633790253874703238907353023590600629106658472896007391260034325722433131725873459581462932220975947574140470510917090001697744544064277644193751128815888489545932963103367779013239373715619334671106687256816476621698070377343468679618317223077164566867209434287123460952621262458916304927874466821787253333874633142002973435985737906397529730874425817618470820682929697660431374036195909136252104005063490942695580798335033534422748524654717239103716680075504885680469966822658893509174674330440272524445235498618169583409823365893759577525871198506090078698083409077542366266911148569022029393290332084817128000716507845303803415929524038433447639854576878896718258405318341031078551912790078724858993553600930285392762825493542126815301360080397825412167422405125854915275204155111240561830877795441470163183940825036584976003226249233969109633477456457548154287639998169560624245513367865652406618996455847772444821111442948036268310875850535611593471132458641533229071539682364140079597617139427953620980143605799145812683375540210122903460208737974018111494363711921446890315374236640304972540593556485369658163111608456975728359518936225972988073743384495401615241552183348649264284820795389292159783979101490909147061511482556259358216244747079790121641279794854987429514697400922905840025159239356701874782466815256113802709734417200678978435273583118779450568248078516785339393019524379561395579313370352042041715166510781203184708187570134383345835579597715455881601402966856565821309211822406721420572924742812097852208127187124964525665332954595564853129304112783733841890809997470705969550188065356613280139217903347269768498842189546042771746701594705399218429043946201701683891625933767356647648226319003845602943660285587314499121106433538887384999552652380592593825990827769147666834275018570466172656340903662584072501309088393661122000438679257493752769397099449142156741860221768816938000182199054179716705057145696382434373819187806626837557855099415364759058610419410359326659500710564465208305235573503094935065833214525063835528624004555657647865643837986104957188363475402621229734390328658247882012847580636271054866796782336188027592550892706069707483208473708945667029407995781050466925600062916448013875525335968037501539733638689259344252855216315910643505014815169419573087652882518941378279378435559824397250566690876466488589931920204987325395309960995812588643420269065658765236940891827688504324337670710889743753962759634546187465076266145932951367072636577802031746156335915846458072837267420835843406651927217873348534634368784646962598233007274508458210893497073869304966465181786612624305192520256943897229503246958478948906123517074952587498718389953189606752373597277226916275754664271522404971138749098401631393777939643685871636013864077710832275315239403935210558873738463970840471676965577179999050792471927494475068387984749726049609659368217674490123138231227752562151158742712490069074467687569872572028529025613703337029838931669122049189071418108231761429319186265096577172841481822895762488785569457791090195257943581381204548509291742346436250153142244386263193229607013929796714243873145145586415288373419878478066665334914999686038428803234083315603582802954412594391441176030007403927528795825952339886677990434123238926478935361268020171152530872351423591983754805114686568953154535273490855160558882773036267862193663811181345909015145180463434135831201887224008065282326069163212728641422200395092288881278204029676922776143189228803888437446880919824611039603132386218312805722331830593275938813974562254911544562109132308183605481456614806198462631997685534819844474526917915965316083595724482206087474896245434924314445987549410718479555733691414426841130981636784431253599669535304038987591066460097239434247511704622963986960600012688785619138517479492391901412367504859253715674726834780123642959523142082554081539306581303231605865202627311776659726375640808084901826468890625258939082468964715184339461855419312752241109403465593391999833320864696843158971538750296708062623044274421166242632816730950655161115487873786131817266035378121335270493600279589826030578421958577512348091128470119105842514308942062632191108908944224861200137838556513094434915152637819090269207637006172937596939356364173326032354639317952431393637541506360247489206862970425176127114740828101399572219367916805125424826595452545602433823853659294720899637435629397742881522577464235731468873566999467852892927679982787544814247714920629590687574070857753490852100104279900931361947161698507918347944820112448089559195964550554272215626373327816010361903896853090087103321455686812174098789130934874316571849780422473712286979025595211793780518749546799442492158920425118085004389319346605404462404235981378866167219874688366830540576098292321892036060227157370234491115135407215356535575151072829762843469840873009430563242730858748131264402175699424933232202493038377182451579533641121600931875772409807223208906590874268867203271679213304004643475582986297482657228382473059365482896347016134867130245829436530616678300663124580777786986579012845036130493670352863361685433606271253949267337124826773492246187421374696651582024750149369445672555501212058077579003638226955656324266740859405320668945143612950307873718813670395771055042105187724000366847077708550897281947061705284654551389318545588025733441867887651884810923595581350318977698658027286640930200835246490353411155204066894847206662021469120794052226905128882813996356938030293783101482375404762134916640606284180971380254990177537223936238821014318849119135271214262461837108372696726894404455958097905698280342529229229965264530108590751344483756258991670221363276110842472177635347608172591517185848619229433540609634953865383885746235704985787654846274503060865210132289773770890618675019044167826373804901592868772094513191576821896962176508076291879993040223212820266881340159608789091085940766232982500693804737761167621796078464408918877190798412775198817962393814628966703015521001366106912805518002228490655707586401293421992323086005417722567553186175225587194903762699699269322738224260209455500922745920147536495572408744659211876821478220365637622780075587908547954643329474084560892143923755030212261768225372694374276666321233876521401832642973474439799416212430335221238889836485316037883389915189764296958460565326162868564210158626586142679473832741106495002524345472480963421174014938560457658514350872378396387807777713107615508494218108661803054974132202953686019566525310671050892849075521022085798049423207502059682977478767859417269895439844409669824567284163917315333933272211332183814620945177848990974302170332482307142903332038177323231822194640569793733918736457318737437475372451421000911195766935805503937319529542539086919889669689045547237303066156099354072127458696272159007631705738679516318041454137249398259828077351982344227488822236963888307666314649318933024295796873075480363402116823815916934493725156486882813895149543400107320769905593748846400056039573128674575333882972688402987844949439285835930577758529163400044619219364051583565149706796809123673299308323609792683313483396248104479293291616373017614651893971802772770516724078247423222579092246631021855393612756839245600267111147035429134758222249087125558170374546832314897851682160591263100167520101414550685396595493667775162511055537909963523593066952260017297532902361859671181756927526452418688403701434819850370315574603172929713897484930880324455466955580440135444283150646187359997108113320444461581238528041917400888132462847674202740875219100935316057412089171752317535990194833010133638393860803556142108962838302284903452307345986924840428258406476028392736270585647431286480214080151138417135173199437162877861837653840037241515369311560842796528784090526501670854289267696594465095715011631436832298678880030955563636537969926667302624572729792615984855965540721418385990300757649168300793889046574093386058697895290897995512136251681071723512262279139938479294146591036557531804034238782594514975050433253985943266984031410514224272747669918746318958014566732331966671984955155138991433312149719557817800213292284996969562950466551424219399272846396529565272352335483463032287471940726643494837674747817835753674246559334521567744401658939424831896047544057686811461243185360477116413856197557607843746412372333587797933718004114573690287600590057841177978841441416102214392573374539882184580524298327904482881405422335325093659667443149901579017688469651187887398315565614751260119067746412218865505159199744500063883717841835467597336294848737618800855176028188474702118785615696513902976320682119442221774400710162173799772279983155474850447170995431033844687622465568828305093717097776682085299044010453075871488651889900973250143207301466565362555794194657795715794279672441354943552931813301627304656048088154739649051329881461800472790894512786511537289357333014263557353248274167122743263174619262999262263026436980887833559259571517037137549916431596846852170923923804015622027317025641714894536406755525417704485259476483701107621170404179955616661842841444967410340357746361971226766786671988584313371343744892943461186840521139800293879992156376482292419913453406507079394000965024849583332594025435251242405943682330109125775667496951153161614342879047731909568609113179947963173509129009636082559039186411979326917171333813404992890100967212937252734216083871578623404315584687783416606706586433432867908084223888970186474786266772661553398250446648158564178132255378498690383444066894160116857599735119219664667888989028147901866323781263893860460189341382999615866030111230296457254704216663970891043606895183268536410616583071497281271808144685063111642528602357541925511885140645098041050932156394310374205017077187896343682479709099393317286315491505130722654814461977037227506943532143978247985358477258309192951192860746304230143093469408583949811269222239422006238318318736946313099304235743181641021079552933653789245343891149473882876202820401875137503544398657297601231010033661795797772838205634063005582187804825060255813371902686212901659194555461818708535443163604292923917068906077326715530977310926313653915523272603440433737816134326261304267109757211178087684426003171750470484713590622831930079367419905689678239908633595706330345024182679801268320544772132222533563399410363989032657696763842295465733950324491926268664427434923431909038466017369895740154718904838324569112996327286792631386848820458350612382752959353631772256482520083923169126093827567480806256887556736126082762184336599835048806508930046815453126347668849625202574799346156703427095988208631556565085034139305500529524896332127431747672283602001884934097969797636421648801630155388961011543968238528515077924052781019657202917608118650265645212792065545361569958401568955499522432247047661289913284498099536049271174304953352616477498077269614108267142311503035076764400838880436465942887365870155089226759897721099910044677060364332993726984609961816918556515134872838511027378148395201036744594999685685531534614411892165207207310325839998184520091379866313154783975074992680491927421416884361968046973012825420981096892965070943126472870909196703618919829509289069563517799980868665483530836998926612597728646844086468116286560848178356101761195836699226201680526822146495936481560534011449538660434398905244627058941524614701912041710955229753092413336898715627300937871790675013350447659871197054596303240105565562523695223718788659261971682876193908252173274712077078809039471747566757650331647247801477369078247666964512923202005968805737184161216243310050481403696263174685637805595808914709857521365128801754201313487150447980690304116316908156540995067264144012025722753972576216135800450378045606732925851921529385815941043513349055737322150733940724138261112695883179895481011731900829710109065632134502348226625585810832400116474967199552789764020592909758063095532671004960875028294971213446155584616549687961772865026121114226779724527639098874093782827018724298064648397714637358611177472243907341765489552999299499234831265696296584075916173313934707373717699245034883996656929091296695620849473953584422573044443297205882508835504316351207124089919418121204495405104775667048758951842604501808208099683950105471592685281898718353381108955550967812038631141345058526686249513430043053008891296726565548417542996484651018233665416755219982611021358052204216967208341973655714636549384045668399681266952977061527025495452780156593272188010857705913200492803894906589514732196050637499862271016869485885055282276546879973422592183776592980949112588461232006428380900399170784471423543361266675070391293546519133637637837960444626821834605050475866617964209068341571139033917708998933773375969318735607959385686167251924015551557258580765867174586640631887278210416539047934240155944492951513924949208882567072217575132845596586560638406774782905122309394875443755163828830981455215826815000177475250977966102352662314939110807793307466713365291812693823714841005398945392983222102942596708782389583059472959740954448342481224778395198154109484456074311461758890634976633087824218143329025353249451329050241755872726857527719294636637901727882134488605377004830808460500664216046602726136408826767453239805596461363275418686277290461461454224346888521919241472015755455079871299690028164169755965894537324216439734238637993575859573741657903861246684647932633522933691838668236493738269886075887434899220901525762701367456570440241229759569310638092117312825371743066452583531919002022290801538142042580971786616268146930546563619535375351055992980248652140951043701674972844531322855804092650380217082303960903683324637712972333260564501650721780245225030587374938018890964693742994583302320732873808107803349034012682363359869825556352597317699850617478893278667242665997840477944773474108894730660379722781763083702936262403587469089073033402944224239206201142483315389126918095045895626162714253294078836963423738501465823669192752352566756373471744728131938046442441874948426224050214727723901334329583322988176877589487145488889732092720280532677403366354393868855103098144557335661651273868907966071338818109454932356907627402083038316305628097202309071434748817746948304500159706431352821199536026320834352311440202818403236161106406603334220785161704351710575161415914584157164063679332957147726572450375016050735169952581574043655252180344336395250867666522513781588889805108625308074265362206760769943217174787561441349442235847290565951281767406220621815973424574825668487589860343533667466486184893283764657455341967073574228437906924008362803673787733169181759743375686340259593113424148085859570619310697714526106699148786140864118649847941395280524370061235943137809885126430161419795590572621584250164804671571862591918799139040698276849739198006225506894204912455780060725405646765896010322137001032839099477468059669606499688517981004204998307440386458651699885084513704613136637075969837704939149852934458679186652798493126915945613486989797256131864176671196665395101748999665161513855139221150748399928647288397617349289204089856372987472647579974515031143120139688776583181909623164689057482684345514009642387851793876041103991052075670486263772927407671149995386528943508979409279494334367103425928128856461965547788463802807424266320305964965793004403405917444928938758144401410675444974880412943028183926010801235369678917041223557532977421378777942940636707305566667014659794163853909829764226817673668692643974017917491114633701428190562421616847363319144178684647183328326397977925299124544797283504758024064297855580026363226036801580355915285671998107165614245537062847410768516996730044031826378782402754185702791314837180397355628011372603124426638847858334788166596500163425861076253198520677170729100925201761116979760023325066900964465153864260844676336320940446183117258898208038993631442686896454366332425350743539340188380566564502138581001703372868412394842243457843548313459386034032479861247085527618093735298204342156917029580957025514721583791859908794860503150771378335164589462223806934829265832822932922523100835786037476134477308817515255461199004257541058553575652561949273432758008087196705971351892420727889506820075499213869406562503055489837388237848102035678218126223457681183177155706674974246071741057991786770448775313817412593214469071999668743332584444089545454312662438023524802748682012116059251296904965626641964969352419352183040706296410469647315088128200296068276044449011460529150725873732852128652843084078815423065394139950925428500016774057015676933398452102977198915334377281945108598525098152287822649253228553041819355165157179135003564038556099299433720080360198834899464101336067111086674596409116843249410456387939213491990109699299704550153919928193327950591065133895594751324415524040460952485313247434877176671267197355161481027221302624368247639944288452426304019233736512997643276176740913335650023869204592997567815491675302273037276176198740486723025296266453173924984935571815049729182746054055326084140510726243662727274977061058795477026068463357794640893205374786559649247985754574824688542303403105093615301641311848561021512419091253278937296179512089398748247470935610426818031798115657189405091367986353852345373763328332252225070389649562720926575510424267942641919528921836862821925592767788866099312009688123036616584003815666147464623908343744648589995142607014784982367158301541193690452114482880400858523109076215550229515477000589931895182908256963685586622091865363280546952670846338208612939276833360120427447160602736270519701943233862063536742183570463196327774842412436978824708615272206875917914449399093074217158447606944392966335325996301672252228625704891615545038386665662831171915638146165613979771789625731694244917623426749956265651046415558419208485204607809143693044878261771337400285921148389763075473539171741483421720810006661715675695108974593538889375424602591013507152632503015365088066535162146443860672396376289259415931613723578042430332918398949625782557807310776397745279743126497998999671649088147635568785662185102140902370819270596763084517713096346792402796131307424111594370241885085677654044703939338797999155774123460203046017040684542867767426311640239464288061644391719363067895594926208113933231600497356764835453150678491984698978973616211154879663954464364206862177677427110355458109502184282979526258909398268348769271458060707577008940439745604466980890185668449460622870361143131549031342943726980688780378675064596731341508789247798212157689471976592722341199093848440470369942144846278681859829255112888465884947886591986102343753042693857722269812478764859774290542432578629618575354505018397373062499720166372755409457959946919581405041151554709278101047001926891397662988100761619991470175849285716053644671870044093142116615304561931007891390878584891640539571389495310478855399576103416358087190536088757182081168891735503344317107965847434010649910830433972503618099523058761886129798920919171860364794591306814649161514845293546453853346908075502373369976925070519193934469952647974203656231578486850955577775734623246786232326307303974810570451495720578265608832390577551137972050651000515639448514271022689889156107788081369881530358566188853712131302571446495444635917094802797284499315704776817327410738643942389649562842524625715880983657555782925183417346506166085742181319786996217053449409441030281695482832634758777331273678149866872299486913027547219445476471737687292501655627040817238229241874584117639347541180171457060312807329375316459013105657151542143835795977840520492296580751231807933228167907575891885008593302777325472621179140355068398420414027602535895360265427917896151256762559722576617961799377490818731773848151794448425719526450911381445710981742877492348965211194343709052525685944595465724722314185094244180089467356282736578071414353635026259966951164556333688190430105395189431150521655178315393227629039216657393071440308933831288406943118397932345138214432173290433572878849000242320996329253435367725763674723215662853588612015276283948099920130962287153439951609390627851244561120016499488146272878844362454259057254775880483488810061032822135734066032074513495604040836681549221889844511221149398406567831906399026353864987668669784391549571908366304378407993491237841281516841311609556244852956786688586335684945346906381373291387855940027306536627814681957203567513846178592646493957997070523551437663323624558746778171624411996232104085729215303785010515808485830756275059743216289694180357706482296647308305705785873640677088776082221928345175382971150925862424152357956186210693672025161780755393906409816346590538628819466085061438623131326705173964239560195944205317420086999620773594324745773578110650758619836843353019115911145061951521615383580508436975232889365770113575265899731603121160621438928662490481934877045741336734811074088703330415747875916794402260585698858823845462415811337289989788756723450438907603489083496947410312704176025033150123732053363677667685059025502467258391105885752660592778974030964899000253273732008077533023875945352407100614856186136839641459723974730264469706346529783984863668351890971985933922193041881897097126929528059986068635493943150158303737451791700647572330934470778317920713725948526198715052708830283479595989185289931388263051065881385529544853897999201175245861362520347315478765156584097362070051547262238808026043121643925825960039342632035963231919434706544789135077032118659175822526365289376638130695412352823092871172064769467672648111823098636346581829298849206988161980801547503522319419374221491231658454520717973806823070038841313260121544344051935163038196951553987853062345230702522489796557555259855823739974649655719457847061374184379456889372784859736228803505227973741068968139725358691631793303637420691040167655833096816436419794202752608547234953821973244476049106013432017771439814178234558233619972860345189876335208573555034376117931862014558197494138989143754759755209900430575810593578727251225775564506720826427602523052266499912182221176099203040075721119229601600388701137867350955706042979038805906760568713582247005807639591335629117369900801289313206938654111364884572989917928352088419276219958676879349511934803206205532619142963468657417641872562552625243371928517790976463061909967881396213773363486187228200362410699320169088819935318940852265618594071959814589739528424387618902917131863771086219962067943728932792824202902699828605863494900753250197503101706388882937369734787636282922702549215198592686406820452436256696390398741629203341933447800809085036932312919897436132013839327611963786485889760411822034446163888717055432291318379050622345845131307947197798896163528811805553937632832007818466973315514797929934039501692793612047274218982045266288502420374525452024258365077754762504230093202245553642530343120260827355959034210972910058907298372063779068998490390497715226281975333242387776826030422511484274739800656073678971397826890231664777409590619755508773554163749222933049130376284377079724421265579597334787766274426922803237078331545253677776592706051167977559530105447585170707707832288833618126437486014145143378409354269578479758851620772801373648544617562553820191565669033043699254445501894620403860150707861692817533410256603186233065090733706111280685771650186264819202678649412490427065235687130723320703495558488152301969732900766050966945018010562090846782043497832037364624414987720287135084724050227428506394904696088467895495348602131570614422857561459802278545352281446633160236997567748471527773941244563179748511191223021205946138687408083730883938152977444714453520378259433316358426192285332973642401248994394368511671637775782153160929212786299994163770553453505275233517611273452424716587731642349131987188646980936360469133944822947167016266826789421455766894324955226433428004817578137100919349561801388626622659764148803853505492772820404296767144138947861504981571038078352064863263591229434184704036771405209207951749977308759997584154222549155160359073541077734458938116823801439305353780594495564816312748221921612960715814638032072831683114975531022550773239803644513438522922458433836228761227942007982975466980313861213388554116996826381699212620474957815507334176490954511168369423984934008645324171268656193265772114954081893590346422532082428805246583102606928568918875660999885551784495121251842544920987289692254249249430551134332335075250200116063935414084612079481457520080423520345735952949754147690160610874316839465728897721186008421882066307498943566628156238110197776379235817961109452205000169276643213970872895752119257229170720574579022588545509039582476528638192130799595443062801092178637288921875250426093425832481524028864706943353530346845660373118262460737936921987597048295771661375332858019708748888993926323788205360875211744974518762637016324696162989568747234384865564194698056486804584004473474011495771807018510290307955935660809892921715759561285529523262664214587031937206053083590818626096281735843768334956565774213085143521637804725063671349694503257380822764922493723244193360933799043337591509218140123741986668878966783396905125279012458138718279912504229891958510615328882647135324899651190821859125330238880102961836469655334208165891051964360992772650986823425011808575986723891702120452312346289475398603249761525489514936356061885154494324313264418849853054285348229764627937205188563073717157937075853606698652726208274272258223519897617781758373593264994300387959113323098124838782161458274024380265690452336289444907028495496549709714936983519489819337794705826993909094132562195655134498697988391829636371955432727684472458572943639949596133245070546904661817746444272546690687980049898555196719318540556566644058335398541581592845892120386655762212264432042040721766124643691561756608768616002562460832354554207073382972521992950296817985330846083598484633862787265147942763292569273245178981705614756124972882328430560355254991952533910932214193647830249736941624449885547582142957050477823747007645408156132911979264626768198212073469870651696173107909319797547119064677919834648030338193788162423505023680981308120549114939606841590818628960101206089685144511774700338205233099566494569776526458284400265860049671741803715236749962985273409602635541749616628700463905110746746847993924511355367960271365427163247205618733802446892011448097193721327308054319173470090697860954582227905617607417410268125715594996959077608815830423915000820509725574406232711010722667488071672515988358864550338952911768072466027021844057046516064951704842460067517307866710324023909141865704139298816872333840331078319627956445640185991332625720137606789745573860462553247581104085878191519055282142973806830438134012415102211027929339543439013496872443635282712144053737443361309490397231126142548229180624288714803431620162974511889500081459275301749942277323195271864306959930506644436681533078748394322386288896210332032292710855249766571110355438083411663424354185797756306236388241177931591708695856917045437381514502884757775487180432179199299209868721415372179974990141654217477719360296714939371202139586490806557227673722757939117726665946751993284047596501565593658613428460379862081108024475547739904059457013316240405169610020562031959842942872116180098766507488148458899553894180539812004065291497063603628650912795433547241339612344784076015359150948298887770972347799272104721168605531434756068707650928253029368901436779287106561603633340910708316597639940192232557440970735072316706964439863026955133364301054357336092841643388029322883097165489673290458138226240202589551582324250200497114780374088583177705697690641423542495620183264309529665026536292961814411075283018715667709677562815454612933727320808913064412954207476792220696986271048580601856493560576028607818670334018704275905299817383176731146209957403279191670657880053735561025360434191330212202241745026533949018657359325204242421111989907832679653141802509444228652550793064247191615341832742106769097924386040444955773380545213714790931737184775587512603810622510359931135931212661112739848282921840471563784480693696275999733263546815591289654606090860171644865232682364350665693924095577549867654784960263288278586131000945284351804775561373080225136065478778039498962020684899848078972474188388073639548927583578310945515367146644212357804795536042706314463147679681777103562690868664363008192907594383587334176084753908250067586534139626283975359755905736855678024666000206807076239010358882901182289497297204919550194348674813998489411900182870837521350861407491826036098511663131677859719631656834306083597720649920503110286483904992325568835155256308570195075123531486390372520446227689655417034986989738284474064754027365025958589820959589898337596320904918217424210027119990577887263658466031145951629407465335412106886219592436547555096829920917987802019327738676137551915528539862798852747606433655111463018192364833065874315669704272696669132484118333478833895760197408342402631950370894193310021411063410108118952105483550110261876988489382421355239815895176304498977594079151641743083328144205987169683526969955262354542984547285785606614636905556292280629135763857792479717890716041749784736901236910694050219193052437601532406772371043711934556287412841861088667162482271873684170680799029556241221561610123030602538041358514503904075277759886326574216420319011379583821521563177078507919170201341561781029392847590214462237180471552745288258230557711510934670739960751258830457148179796500088642437191350082667467515808875834932967494819557146421342893496491044922804165265104412923175239306714252264974498501142242532327310445628203225992321310733682050573464737270514189136930065575027646578962166985827861604660554660167077827992822614500915858847651668561474289934514163376216739577216993195347425021600461833317711033024031958667792814233557027801541816952366611295348788126961336007099023918253914248229431000436168168232905096046242792253304338959218508982346347513758892542945349606972317628825917909133256191990939349507435232708504458014909473399866471669502330565720078586405201746106691807261948273211611302009178443096042440892327630129829110918005002308636525414694996752296004195876154827413728946307129070189424946603518484609817162405190783262810489808525907842404810146307058234868817459955368106964435178797334001896071556134020019105478812969286698554718021866356808397949150917590310862726317991153156936962158872232782810367788986900225060377020127894313175077212470513480800454830019286244816838251646417970906567849566595384165271725824063830895466412313502018688527564968400303651193696682354889719812575036680894366182877327034779607141663867722904980404264772476604202312049398868273158442078867294878959274854488066597488934151340360481043629571088775859529634057284840807500903416522546763908198680234495911343896933271698784852849033846819012255335416555705979403165109704853390056075460061756144772769779415150491783920063372436191326676695862718339171273157348722741642269884266300728364102526664489790329688980455771092749144767255545607489685988588162674473890059158007942163907998189203313745131630355868750605982830544678972925335387573643183549921561362503494621905298054828523753910603603711507527999964515202131744784424286711282234801254912461177384190511423712241260173550082612783644345045766980592190656509359475127128020874739296181359701994218138628433600619359054999732328743154663337724040339649999640822994558239052425823344164208826565626532500092795048849537849522170334731945770921130237036086370754995216546619711299544550698401352504204405745656224887384328486039016358231243486903262044317472674331926711426172571906381896488120533793961020672843401176341214787960939138847942247882481607020483121467156217998755817664882343228560997726926661011233406104861840209826107822313657721090612114557193496532175681015463160842547694309421176544422272307490071126808380392893365899888954226014957454123714084525361401199285764367497440566954161324045181919551498568962526341760350813917706523317391226813781156040347461046391870656030333053106261641448882052303911235742827941852580343985645404472157880347229398249366271225264250142753885799460220637546988610432286794358249521121960969370385465657122615165764607337012995821820803390057235422979680000898272802690108586244567185069416519692036009150228339493235813926938057695045592949559814837450929091023033989588757573325243113316540623823839571288572245904698563907846146439499314771669800197848722563242760688973870859363154985757819657544000757338806932367844558447359999687959552275026241509771382928697813008985174176766264627780348721437389671872272025302771791989593290161623098956276155711684715911894568460235144951568627465993170121630543676803339754525235513320061321136698684878980541376680788597677136680795914589542547689428581633194465515929894059357721209110176539264465866012575580407607481151177750584051189045784344727138498129354216702114793266135816637657002981787026172667802459123720704187177883375524647448231661695076828678947564981338186898900062777936661575115183400044592714192825035261232910386150691336061482014822119703377662502887286302286061955375423579617094102119079541062168817889082839454198008067606937716121505916308000628943365071585785939871431961560149067420406782655870348107396116024548939994078564384360631651512976497472606555607726073995151561940719782679248707902258763913261255841520331907898059833285066956073143044869320935071263349455148472836763665540955882397767472718606055185533521255238865577542217441821602210387906061622177927159748439251327327668977149469034074547635193506893028235832409790267472434025573042165247163909787563196064113157639655364218222731790272875055689879945608949628563372725292618981859154548157319685468623485602066558741739943037311398179497622204287778643240854042597572461672817687406403901742011464605781954040807819240591459201809742179671249644896946516280313029460447408300488848130210924538234405121786610838936329621818505753248892790043065764345698862668067197432399815786886012467891883969437605644924936739629415127559535758377005883275268342906646871601786256433500812004346161315191287120285602115294289298083402433817023329626583729407594624979042044648549558790717244182981299910118207535312352756023019406018392564339252624807992991970256053221160906307183297841911183260343892251019842386936262273013122206075820430180148863295462733238887843455367831502346211683442637371871027958153090489022804004154667866004860434686620932457764926117699731078822584144033647419454692452235151000040954582832324637862271604717047668627018051520832862610536695255606790325335901350887010478351242688730759418716855560351743667226004074257549481394835202122577870406888290472270995234827192740710966124448074000749843016540261209250388681049222013168744674839269241713716914168261420714655798281974573483740528012426781552660459183273539183299155026028128517791570172963267079894113231122679406107077448868689460072721539037063415691680563403596182006151509110802836135951589833581162623358026876204753207061884813930399128552538782638598669119799365940000424772943494462865258637445320159499670163643238893851833102581518943509106001812807414461600794931070040209930134595762873418327077002925584923417050469932365082584215600641723663352102782220439271560211205986160890620347438682829081098267857583734036177777005203798997839418789154541122866443940079320732549648379588021840583793960593768142184487954773590709114662030592057604214685514194453557949115536510052211475746745739524982075718979382082520139600278073650449335000068657339260449688454820899553202028187924057401099638786993072616881536524775247426835431480869741719270850123318965975318364121446736397017533637897846718861047168243252906382122752112931433888734130342147260676994504052515251227962212805954521335008657108115724076816438905728495694090783716217952518050053000740704334215312085414821615757757557895524454055926003769551434555663893051263129660663104612750001648784910710362968557573863810109415948341938652207771687720626355459879900167339911630786892884594123986710279619920912104808186020602313654537446323412142411447068771407239970223870359981756724732494249401298521859200440989720250344738821308533115341697149871858062792355757215463624294855457891180411527425058285198695569888037091594115937722193750088180133940041660337958974315926337773171360317894678394834998021037094024210621923578995553086139749454372522418999035258729179724275031271516654040483105581623607562803016055213861655284957191842431174177236267850489255617713995922563784133588371916949217083919204319427979058051856140915401268165515469419304882256112928635039311049797055591436805507362872736997978848963174160193797452882760751006391744484386873389247826312676626892081445164630913427168645943767251395519567949340883477395054736085407068973750941350255997490030701740404265900029158041504588946568497710957651716454628944836229043547678781025120778653708356379530507775901620750534290031439473105488527054486052287052418991987694941409695248088710580226941640237757759380509584730958023115454802851838371700580658797883916249898090630543647806237881451685389981762677702573552130830860753228022338511502932509073383956201858076912759184929081049859258305773762790568493655223480537175960427224105114549449493515143635368494190904497622138550805240569012132205957849217600367905828190836137078210185425289376733185566326098831096629884228213774523265170194601520494226849161124782911544798078049708695442657967428099394482456388109275556667634393022499393697005642636275840997424193774347492127590308189762010828554680311059405438435318748429645336519923007645554553925050525897222844374856920449634809572602502245385970747996827600054555291264444758123917928526663710475343205539241284456779041338401740580251707850576933444690013133146726415558654061287011078542440401192567629771059287590963371276640337659106548340325954518541485992858369099087236072239069606494189873017180758496662740632661695448445940458511242324605823046137364789089497804557819932617909015932608625678593937251507731287027563962325304873353175644914382413209002792598726089007760694443897164985162143175755084760477222202913886383693978505298777935265394212957658641641713556147224081494507499329133713653407410501007434472269024353048394038930660052895590872755056829812585353600734783784766992497874541630017818498289838941921216510213640771962188949971489379076438091577373901216093931337102883284580127306329586855948754101249974591288566501676346386690251659665503262692239776986527542392353850222723119354802820336289533953465828557324549249291995190197259221897847599707486411945145932486356568400309045419656723444888152486581706935426923917344442501200546950324392809075310021232919402704779133900895031569788502671454445339855866487120617999561540243215597022151351115226460375234957435764785716938901711036372106059767274859651305291247639360601621627531495144833984706757391153751114825293776213815383982574010896284362468294473970755920811391220795081467634505322541225929080320260680286403841983593396947122926567199646006749309884753685961064511145850347160890755066347610839604370859016948070570640769284681935880503552899452835185220440731831310220612494408930290739508086035930186213378769836344219580373757420816869166880442528102330569814875368222988868234730328136148932797348181761669587105548840526216911275978661094754155179350370964553092905945573508211045077383968843574131215527664913616805373256289231311971499535494179724331010609162000916352237569092963038758344774677494866993098450536827750659730978992522763929101230487377511902263026456463633907249448024336789265894993650223228713395596883602705192329422234895318064807468622542160331496642184266249795271966188280675458375107443048116642130263934848768853919189989093921217963451569764255455483742916823257444077904236602998777604657128325752697343779883409474831806111262844899019781881255097799955701410601490280882713922625071499535200647860328300688516261282628733942147435832410419695880838285493602593810729612721655317507969408136088318585645368876291177167107369415884577123618381035324870568302438143595115185550911270026551424080427568277339505624437929037727279162648997993662296060723612054991192540045680888648258672695666944635530451991729355421987646961653709116759193260275896766723986625934643912660125158585126719337130517291097104984619179375951252058429549665872807854053240566313049454710612035834517285077522215252070966438985768924139165955245295606973011001088957934118079876311353117430942885300060352069214453487895415100219491448037349770887389699949551309349467524163894607713307482781481281649013594009115002704554261792681783005311541367910214402746934657413125278483026799362823111806280002343098833813762121934062676352541395627519947047970339744379502904109958098473054454291494963427839783981036518299252313686195980652227112429638358572415644062100708611667648988871672281007610049300723619154662014451896194698074202785413054221700538592103932550603913540235283333942219231172169900887004087305951046905166673425537519338608850155127753994119520409994282158557691145529037075882707424473920731274801373355760445027647529819858929748543565282061438927369024727765995722888293230607666536814664641506723608115551619412716149005972418371625594589519315298063184181134269226034381379912191522180693811034072280595649652629084984887069498516996639209308834061867163627534888853092694838766551903362845036187474515557131052974762296677213700635832755705847060361170602081852590948508575962779704826618108034145359940707734723175220451030538742227283015018231196452248783183918422371507473857597185271708198226946376923191156193702260894504228780411651902204916511662087926657908308827085818101856017066297462072713351285958940776666302468672151822744381488583285584718361859336031764642121238515452008445268200861035330340251555801659644783471120074648294887267623097838717547352149437685044903859308777207076649577880464093527645343163230735687053610686139669970557729406630356591222653585884090988279871819304891183892292780122513240842945486641707109987356970066366514570259584131645346934841826486034622572692715092303345350004724254388903059596631320546345765174814348137655632941441840231002137835447762541784752357256091053630496783745108012449905576438296942155937970489248393277695852491668717460489080350326382352535378239044295757689845063034683240455504046961793447079044168781029959278444602941049150876005123034581576836793809611681361666023296910684297064819728656297228557404627649656294722735161329162475526026188491612387232695657663720768044194752949466676589865483208741075354871993965590158948113111442315992347843379098678225135097045223294241704606910412166186381236485501472359594657027870717659282290588050894646968063288571294679443335767482077764178046786671884409027645699476139257678820099122497420160773529611831992855963777535813876772976002951617753861770726020255222852580552580197979014148450539671441784208371986352568716511231547014555150530794719419346394145201051222716442302827576865575745597080766373884814973488269381842482642739949975797452805261014189760569577486201548879820498463349985571374469853003928015330136068029943638204808373584366688398354116016012182174599617424534083304321814087091781004549821442545817437707898892844964002731716517710399509325182317338153623110520221391531911806104729647067980542649908387512060988051228674965262411381739080873804822611680209653640118941916536417145267745775500260324973566109911678398833677930398319867252684075985440209350858888493860579880673347797359926577700398496590486069757353503718230098195151440111945736385976291764066623846489487636189957916984776410430210679638864017708737300394855751937167322131037222801052924755975469938102969647168165248798160008873532236144846566299385273798512013179108314328427458009746665042684884751914198687973942256778768816802800333093911441862200326796530785695139152872716003003758125451814570393607726688030855036422573797784889134084501619026262129304657168760879367362164468913974199204405727953982553791285227758537569698757125215187158563156688295426355987054669904971070871149334088908761661796926748119498153084055634997371529995495770004744418540867408780441446499966826687694703103377835924794342499250703036819566496396478341917555818117872560440405717672249434596909135227690020218955410148296041915398086216543554479330421289195438853594000927545829210646193525151132268038429061862352181041393028319120967850668924982527641196611381074754353215729189814984523719878057176526439092917095624005486650460828509680737984614760970072508519887520972209509195122410545436748443351216898605486195022314560326139438209313285887092648034637555533731498885185700444893676671721047473422464267291492167389189646025968981526993206064562325791754596247485632692314522588831073896625878945634783960817585056920945514527582134952494334791403103119161455064893782744096083707103090481149990239836372208647400446986193927035799239309338361596504289296408258723150187305635452102960417255509759366378767551444275649828826305275499860703709151157826600158098936043783039170841544183872133000349034666055037678078635845266970635905573374113707042370638081135267010604945427683951618377480361337666941568743057059380821126371725599541188361519970880885279353223375715887930308883209491362554737099356070968764006918464163571800838346046215875686000490594454841633613697329639649619976093973790724585723591406306304429808070996872723641677759701917239477288753948102888558606603257138228760459509219730735406880672738595507978453861599241056841308358461394417157464393773367771616967285130931800728892865973270460093524202079284226203321750423745011721511110081603278776381000660842399084552465204242144523046315855033928167688404391997967870767312436625834779371370967921897547045624193851913289500802901859370788753176974953121752603836914056384676197277784491889235352475300875642697145167639099091633251195159923988391204922349558852385947454425614763358391881387180589479333565284435258123142679686338142952122535908878176598445873464224963408237741589814713943366230238148284136663566954602077333907828242000627119071964972872733780352072291209680113209539518946536712740547366456071824071160859353079661452861185190879318100364559730009457568526524598052200577166940922945601158679320439263017633245811178539120415163205583883695575894785446763836755796206450592055399112044434603899526546771383171995223034497910658469658786845045711728503870050534017281171995277362434041165525662155333049384252871517630579412233117936826053299303406320754327572966202789562563043043878990798917380571136352351365540114822694551862461163377381743551061661919286123578674504552089780639006159788061340587687002057583363839093396477892302696765242657555220871320127557078512711944311687650611025530046865568955619585079949890709614173308710344497705666833586589871838447342047354937773143259172823626325933032016269536595981899856900029342492828721146396937449087535127374042229306072985415975835061251049199221987546292638917479891771538528801168320621190439998486693290401678281001571159034316074574569482404071363074924085061430845130087321118928862153742137056819984017521987536492634618445624258955411336683692488809681304372569083342606311016777734587038226902497022964021020266292261479476952496116122768185561716480017409406484898243517373682457523635243975599612661394908610135994140797663830782292910303645053912304914332805150944964724764708466870868688941819661579132510091423745155895640024069956062570196549946605095220660251778550271092610281567426114948428914712818280558351263238100233861800965181399852557357188641272269528459680560415340447607198377541973998470129845363976108678220690784101505648645789474298858253545907915635530625126101966235525462077760184342341899584163870318560630904844005653595346607599201801636535375073279996102884428521912987587239610578486463862614813329319305642788958932124005088754715933324649158907059938660086418667452308491039856850573099327733389946593665899942676054201230924582597163963973842877192506996097012696385443189303151795217260640067233321080521187973425179765673911636061198483218514489575647175985222258922866084966138387667934557494047442925308841758170528601363976297803244808566893416482751019491159061108999465951385658834739936878512606470191461919037950490844786123736216976615973451299887612504642247953134823794667190230399287442512230027796254484355973367619277207640504957752905567386089729048487245854989579580403076143467708880730457261499999345471082144337182765474999880872572136449080693003597063423588824317379422919273558403469357017102960095293423865287920437862433760228021889562342659226521914200353313163463968743162658344595518560187426620892747068608678652801642001342304724835360016539220498052099095059568625355496121741532113209477420704544239822377517820833795361109436274413223587077604436524667869303227988598221103454645644695150219928625458042362702959333343434973544461128449040138394775797299608990540873079362221772629145693070224265252193090589664020027650803492320698863940752041052023509781935688909548530114854677827961227394978655438796408103761256635819183425629403394768470522081350105409306482715547896658845630210778797880432516979156578800747236347891170672315680220090961558095794583808142187348973907362400397433923132672493521838572881632007816849074840922147617384027025480511172306641787866027704777877160580183097854186535471491681556240927936818661129597017121816644989995706083213561418495484689643580813250129073181101251692147562742898431361340179410684701205041891601957706122867187078045999950602844876889026712984514265861307564644758804995578872930625123069652480441461416748614427910040058922806136778010913753596035454852937009746824293223729174790340531499176089411887984613996639638990241839980085737584555788615112252088814271996824624818080728788913734271687803390767075054525968756203678580737759798322517427866289018031976977474410423711772558222550812886894509123799953775299655703704090574044516527729874807724333302876764704920186442049935280751293439417268170101061811379651922882119940324765550841307756524083202081081401525374662730479487468011402778721263140990362372891602475090409745045040956152072544099518493127907088457230071598374372666816193555397679992820573509654085800314236548139006346957116588993755009262905425048023268580051073611332775697106580083009869773322120267502944595928248267443962306422427376630806617883486868288632092057738686570366372674619532976230783104445358516456780034257343670428592925970552097380457259022278302515049242307925859143939328915587110214370247545580791457562253646495992832978659921823172419807407113713328736295217127964634739257775043851467024143752403040906837093255799257795334475474347742690951166208190726698209463437363119942305148042997295081393640022698938091727306344126558095195085244521815029076681712418785018698106675329814970737658897189207643502458680221145088612725232844676864173698407506547284712702909497915844696428863769048560830502863434724840491290577561347448764449908327704343195871684003816490224427643661468208970041728152564012098518848626945220275222174207623120362190832519249963287408078151744684321285038073611289748985758669984451587123954926960147657611311983591243891182102998939354361077741022705719772879742063523813014457466731920708151282701915409287341250208903109381864297869031463250176340791910375105517564499806690677278266818193570794260402360526255181175494051510062982926276555194908729453825083581867598771542524602479512546374666612305874249373319756275102527577135529501526341830558688853912341049982602437132453721387631702969815275748748690797423869696148561316753391386921850107554247077104938469175913159211764844805235597095275494598774814264205270018360785421549182649250338655845410094971930117509208815703761378868819721688379531428030229759451072445420653629141601882702693656579195449498068692582392885857050546149404895776234660310704893911986294802444445195468677186321993993448109244296223265958711824326746373814018838563532770809339919640291000960981992836359237411490843141163239831052885048803030467129232778181848496987239312128309421122956512793905195736321136110664343173296044025320581612068622630508729850848900656664034557317518062353134433677633061389272024133518569680656110586558018917274658735582499215784312706981616030905959398297850549630447420706458889858598269319456227774541693238143427911356460916241723920399810816467349612343497111748045571051326561083910415815629886238816858876317240078788247285685303464346397787990116897875820126810398856667150011656449508214119414779367336582536868229498385534079064143718825785022432807824051968403892701332605018684331342564862705566057688474542689429127077065285274003981526930867073370118964916134427991168188649270785023787147007834526791962951935353119526483667077770666260194692776211342811006762846552361250867895960829181654984615293862001441824741194727606992508732704694997077526434090113914037063148297489085383211672878457354871381931656110402714452468908218632199861074931335025145842783878872664248688683506980181536447410817552199299909234425214739157560643354348731634615415358609483035587343227498082822915789108688781165598958744542852070883517849686051947682988036800123714850138265237272261197411487512175070632874472451861243154850815302609297762199237557383756005127559544190019648379955487339484365179981514007369944570648121014467418919021685878334662143176414234497159328617441678844700620627983760027926632033494335844147329755871673968349893074718226791349462496143812355783787087502010395357501963538774490873329359712155940997836829099677348038867653144863158656823807107945314761190003253574302641680741607228723987976100622556322168028652915000196799245933110207018904114196886255958651286896225730583966966553460593905821608212639050233055726229741046262124015966443330224501981767579973029353046438594280853444607888661077793971372469066947225878166178066631083296390608261428177818821198362673517105067124795395906119245104095322769859900266665815303085070656577508540597321411050488183524633121869261867590029410222162291831776331788438426528887608917653630283642468153100887223310962924575760191353035616315901059445395263521577495827395442124426592229709031506146007686261589866072966306920910381742409843326583006679878160155627383323885979200415440532043636600824695601400629187586240873907683045525951637677690569233364918574461757717816323992342125335679587258361138820910211688633571006217125925499126520976518757426136441388626416587999467185381630407895637343314507449058962854628164029569004829452031896936998535484557333940116346568290406983708860361204893488176287360283793547759606972279514056003588268647907716407070293497429871364706086852125711378794125129223677723542393111260669798065099327464853698504922693685306224508931449001324740419287647112486270145144501533960975455422534211765879336533638210838553632788457930665386852102263664522155024703183253258685775011668832178068915845967204228154684550368980878895141290071839955523720649122751087424606889379126304989468898436230861265567493489666890191552136370948906647050737226571386804256571247592022418397541326240122661908482071170897377752315555608899993014371425407852414379719612723515133624562816846813428886573335672457323113970101046349296868045056083440209439472465713742762426922386042907489896237326498278202456045006672314551387316747049107187547968231710839473432850354752407196048241037769156499234585113400707366695578499392417586880260924851328249397661334861175983229009977160065783401924334902540879759407613048813480877200513894891891273990412993856598214945013451403448079407301087633094039298403075996684112666629783039721578327759574344915180704215503570547993630846758159225087664818807705428609722960838970846639480221579462635528919912633500243648421595782292328938248950008124409714207708681982893862228287478255629495210173872004678845406258464218005160102389441361299625898526312344773913677606425837390058083760474242573492506770756902034203761938092200497715400900945577223550226704959047025430483035949224189353682084329774432731203332467565707249357755791517068746825605279738738207396374211983084912851619621175812994426595962362406476011470136198988311602603605542115004167282050639109130993630254442514376212412308102774764858201590653048080088440177351005122250783163896558131556049513844794789685447044244064411966183587323632480160074106289771360999421947062905565192426946140105527882768327578469378192640737612699028550583987211840283282299321004053015216895470728239136183346208639553027674297483827601001266679856130370125310144806536805655595856859644777319773382182275206425073313363413373882836150698678863840144009478011261054549953205402387670990139173312186071425307038837657381055400177647342030821113979404357566750596498771852041141425909207931044923518470015115261311544560745057779299314255888083034649082233456806543719348552706291146544087447654697893977276879790026012363480464540990017523029558628913654222698527569954451993461539827337117923494238249736487704673183604411539042985532411936862109159021557034084099295148374299813573232026406696672380099168848588629651322922044517001378082792077479946138936671330361314827960176468306415852513668909146340078701354051629841628834197895076115855666582719104340144215600858683575889580487188100789649595565422656030100745295321757527694371842138903968311391350543660893064217909468418958440953294852125045901114786946629167456948192480453207892735770861449940231684534709877969811833442507269881921066537349933981980196816715645139734571051858300836521396827371549807720675296600779523014397482019354611094285924239979785918788098191451898224075366397236635817799545283990285705110437457230595037605501492297393017815987286171971821744614599770284185801908384502313394576827824234733217279438240931230028515905560572591388463039111033767928979343124546805665024945978256325981150030858133235629331534971860349615151096399170273758589339834823568182525480277495374154104132578060137091047142309759800634772299042368789139548839554206670507800441569932628742814032214769741245131973050591252578296263713717383568778880122840189359001921148294514986389850529879377552401291735229467544371802790384669850985556913166631889706983524902571906822070752018805399959590101232992405049757742288071165372482368044715245856214755526917166561182462306772511888852592303016399586170164026289021513524073130779775724317474326562567681198080450115575495869121514616043420165265911138626824468903916526101298799650704554823296748480548005409478891446649916567517200991573770291717823268985429224327288576009480066620880362074971526052890243953923880552136643559083309892993883922202349406699346265519937721880168723586754391544626797340920744332020836138284382698000886067802568679603042718908206224256248104556911224018610073708467289260421744214060212203087669534366351101473295066155022423620909104365743763588463597383327248349204079387663521271716384407033575994991505505634869489544177884778421558468541102033035059202209189978284467386895236142360874107379701341785250414750633321619273871178128268236144478975122411564692206838337136025177073404205143441417665099822622232091222965294248302811425333930619281999938274490246705604629882143943534011437938830849566603206475935887625874369445031411900165929964508317654205690348336369060942886863011878225616511636070344920818401237154770947006379310177982928786898332277412736601921583036628845580404819868790632909916932753292209790025250344896769740736206646743351087397690791392622085097761896131445760915554750087735718421807196991567924193868153144200851257761318650902343815565479508065781091368410008843625973298247770574238947777885148972506274666694049353014174046301109614205256837450452602495605168650828687295491110923107654948076481931687766003782616345920217564091680044364171575747800099605067568143965602925351271270085996235971432399194273979720557996961521882674861186135180394226234478946418682622467220877938600654368987507063098706374939215328260945697153973228151349612580870748131772637783540998666687016639776916907847303693055684240188793637228790282786050191318550877354646515015257720594910920654507838135036858483783269316332174097064529991191815096615889580636526627769261233894311400784493176349870097493907839703652081832319734052708648905060047890348841158448151452043177981842323213884383094980192330340789021717020621523984621830702228741635340908810398455977035682972266726985306138128567549898108166230347775466220680543281740566600055383812498567312692381191244818107109153909973623892910964140878598733175520894489067804900426556143777787725268650288202892154478805032218651928202409349453595194208919573382873215934144150973777507308723430371555791094395391366892262408857630628112328653491682845846348865593316485805239869345327743542837413463002998045896035733272970956347743700166923408114595372036502784628421072943721919106070069614553642072197644844707615165669997883042692159930546577630312946343216756768912706281070919967687572732824493813764494778637932649671609983128574993848493266819020653674252768063602755993645812010341302884463104622224182215185511601283312600774140767633495557450823441108931924404895176349183506620724698435371691566142072100369114263157675752539610137381179747031805489784622295278899423652268821579396040673232803542230146565234714901897931942889222509244165884612457330736976759615764130275801745335095734481704125389091889623091845969288463669886556620768349286572692315872927478397253433430429708478297751127825759257168067533015740225440535197911718209259185595282717663356219053162687572507760714000590361509990031576761149131945336206405967332034260990579834456471256265924942491734231877581072221323212965688900234462452660690375295743241991465536404657390164143722864921625237948501504778416641036119329763155820739593438347835957803524993908114153958229400982927203677684413070285759785980847184490432037196189834486699293891071273528251596042027001736697831473012603308888503100956715385066020859560786722052283741366419408732517580120513349957045893126987227443716598519967670120413469553758500859953882263227942582918735900146034349473949132270790002017566447015807148054245048240427255161625845136868173487294516169506976760683620750501506208452963967274137712590866239998117624848620540800728718244737659528304403571870990625258011586972305329589996321857683701748619435988758411833829509383444583128881421971370369723110491878277683999448726265569196963826784969733793554940661158967662212073291354523746002071661149593918993423885898216146468495916884849405599936562546674386116332266550444249965616007684665430860516579348853434837168728809584224918929060676278799800103167881424666568201746634546416340941216434998699919839002767355800289190506070132735423016355088687399012526161314718168364141633552754897334557535015372354789744005454974849004421410735443725109763111002619735511004939561402116668685034093893067652464468068372514751071468673474476209527425499424205554420887277991410918493575583898647789805974656189765551727289041210275291908548642292504532727832770426771639382751459753866238880860419281624178028691451710719915947522746488639327206546577810349413165554265176027633378359839317306590103074881001051218853506474402496839035595410485782648464019428556023236489351885297523156245557587465572600580678918154105068851564103430608035326422583031331855231879557428499413079705088352401950063347687886392443384375834057177840769672825721309409475250685928228532380964353057601686283747259862337405194794288628806728740223133691125440982574377944974797427570141397914189946892975722200005696279976481926699341068594374555340300495581838017270500450013701223762135712151123122734565710751131540762001461240060894735571591818449681817118630229804696729596278335188797517927433780467712588017837827711626507156963736054541709432467482787551881052905112308722298536745978619416843632942385498657868408999374652422172335053757836266543287843504417642302363512072809728966366277505815862535134823615055071434568528080872405727927630460978128416384704395505344548195224330240786725624999043380663079549812768843218956593549972732452272892649540292019015772177830437099852486267645288771065371723642690896854548540612853668081757613993370512756167387325025276271442630397635433592031469600245846856348979257949196643047043766830180532487515775317255638007518128368450745897351295542865240102574855231321467519295363771736531943361994204625531359551474333183432320120631003738487294298886814499200556199508205828322679788715302565272006583315397172806339079167428946130685386918778889641268485522395089715717715170886197413916778718399453674402202687395815326791366099673651344109133700534124332120877652367707257719206679587994127236319671135237839970832468901716156860449794732748583880590379196897200854109353452678857486829070436487620841303596733544427986508306124263575585450721685341838565826521680541777903527334386554520671134563625074835143259412620765723695893245683713448375476689067597253725525775675249317007311930321987760310887722276243949475174037631589168561651979590272214854164927430094119173505231807533501747558162927484799429198392906411013801916545574855705700047817474007338865391933808311491725947785859429183265954040451030504707959803900284764841291262487090691816011786626140174950375788201565179163967936493805179535414260680807482332142800631751156363114825194318973989950585141457611639540901280829840659900605947474734664783772324076256502599796924851387573338057798587734212958057806538682180185498107921930067452956825468878363570739568884345594119178162050379249952455759444349299369329191811776694086842596653850934228459979173393892847708736750589731130138311773159415061225465549046195439149385161707500043233065328179985448371883365260966402034151229509426493738094451768349583736189895386502685011977508978087456875537980342131466023100937025375835790476011699752880380497960295176157301881184523764700468781170346871532399599972069966406755424621322220786250086105349729110062716654827222232684657890653231619018337661654895667461238732984241815468524501257851395438024397849088335273771588502410854927477586232630250990319191797111626973414063050065526313396713759345428968790171210744683922185255386811686273753021735778945880367031172376645898298612218130132315992641753911409323236000655266287307684473921348684925396197089481667244658294473329196177221702435087493196929250091973633921927425996909346075875648368000240919323416214317396137487163949177931243631569250421043118778519658504312257968004234584022038913476986016180729075252587060407288733825950084646400749115811506738893799347184692632434525985575176176217378005592139559266554334349547562387858214419563657838655225473195292490830167194880085352538231905683119225452967710483407852482005943419261293945429779134570373819074576396213180859011413018013249550824310024801075449466284607555606681941817406213234845965356912347563423628937234460068803452246777320723942233625806574184655454363096296139032215125156648365928352792469047843153081628619917010003901674760617716559664467359123248645508071621644485103678267110812248232726963255638448195006274376959667762883042734639131865187055646554524497153180967394000283527651746336506357074420784673482251070840276851518700760849760577015304632773671296979679744572464981787582708229430443097765292433164910763695446030151876671487947563949610554875066176603266463776066377542252638994292049381585360823193572661878957357047814794642983002164667720020945129072764784774145120124833085535931866462298348779598546316040135910827139234263301522559262798787555343530167845309014549014622739455347275125176678410144973190861306650851631846711144451255670257115293375413289413898076888417809106857642696017290532197151902101760017299213464337060608690187699161766461994516240973626008032163086921874318812793618829565323113036973315534396499015884374921592668576879655370628643662202857735991102453027338112531649372613524367318047162430092223123398724917957210470605144089104166144657000816300905531773126670108536348008093575808990363789265466270824965880313277780317999235641332386054196056278885012216490990288632478710508944349858009709724024614810604022928461863733659844067679498722905599029113283463448627516328268156061408031536071226365989462352801923432460238083241375131452191908646579335574829255371321551639692223504950930766508993916744668091792030755752869309818810444678051241654892963462487354509107826544626017801927670854902224472017534790188328364280800417613085510202829723132040545510734344748543869075596449905896933258643190844973791953049936422823691306065402102857507996348088049577861884260028048407028879464766227267473922035347586409662087546054031597640615527083276166066221021695691707829920996301871565017008931477611542420854024763922567283202887207927992546706966790136254430625518188262145920888012153539664797702451500471590500035055015880620922239588922612119616838780122695957053402069999394744965317515116356250298938832367311246448348400547548724062093804428845743209719550937011644924049418695872527754511076799765879649595149017103621859552466894959009859766321370744556491153737292474241688638548525422875521828532942635411295175206258454221093341586312211382999957411738656954645031870311694599323000262919665081942124095445147573219378633900147292838924509253106059732153402794548312584117132313869670037003372205593875534030103558121238665146889161974031373845119729617996741737645610242903070382702520299603117794824869155414125982664698339602965026820114902662969683841017186294066337827992177297189028808517820715073002136819945959711622220956593710414466258414687938430378412870822868602367718936422953758371575460323787746478620770715279284154575009898243539238339477043657795449845698287429374659450049049969333423648203128793091761252734020014611917576075475611308958943758477569730281344014052686199140017658505043582778272863697518632746115085538019790507216828487934053195992597723905954953477072928614714964503105765143608613733193181461096010245103345186099553851564581817684266123956836141424198559254939628512946164555711774444725286804019242197820012808858767371004572028757124071934097442594744577787029014216746534247090185866432160788743386686890726129145998718434587177060114366863064742188970037765717925282470919139705657137470857852905053784090495786572219353669799190976588217711125721128370940750463723721207702099596455056217082929808662937498063622768602292460812065653647251598195731444883430354859974365457863790013914841410723136487076268107210626759123478309660797793831784254048329845203423221452450191748884449942535389811549824069944968797934272849055826460934765560526406697646448770272200477345622227949418908584798667487302764333197894382017369569589046627869890794774838739470503702473820707145714292810520346286829714334382812279514350440612523668159093338230123020518039363402902118013183835228785041296355344569950752162631193494374363871807887908663280463620835611220657090992830463332619956542250266473735388196646513228798278870032051695749822908210440298717831689139688066730345738594147552801741242375601540464394306872590319631398903491986613546093823553409462330202782009943088697983357975877937316720651579871241158113078444067940033295006097559410273414056359444707503380522434004562119437273647139940069155553899898558032610965589480129318271668568301755156205947182281726756537626830188011017573174197173919962501322434920748217577903259379291261062231341772553438774052126334124661898487010082023808580963846154717325912067129449723808636777052706915332473539865012361049497059569293869543916468068824493677696279415436821552440732764806642536108017783077109424971775527935567828908571912878414930321778283210460258927459818283403226985451051281438200676605797448389814284326002651750891302323943639735205000308814331546111007440160560420308412708173963316433742224583484113811027492704710403681379132457226510628429242550516058764870325932147828746586688156639247213806290653779505871142055085486914928577343548875210280640566551954152810671572457807479713503277004887192375071185724864355491538706876023784410739217026411185850274207426590821051608246727720011828921692368236092552758181971032403825745896656917730973958829181963280711015665200134585991232080077016974900617442933444325607994334076444979456760687435737556696337449636749660229159838666764706287716557236695745051615588589046127752242775325861483706104418826683705115569744187512847845479204737589181871485551997205832679771608349069660016600843133373807731879528681977938407047823833579152423047174238837614842648768850315692065305297436407016008301477058423582624611916192617859954325779510681086690918713639940028223986278917777354537417494696074742551797545284096596164883816226612114993280260393515199585687514784836626642787148504242318585711869487930679155393990770950531677680830403488862460529512152319420715610082757802114308807775951063574192004455519348098425061559571359380713716238322722084207769761980002140927091014534153353214229358372941317360039202594838738680189551381481695226066736698889510344670742956582488386084268243618260852177985500327118729466626878275107489013177525226915835247048714335239615610753294041516953703058094056172123455339074146326052267358019748083865895035993035634589852255230060410362750323664653235825425286937235353668034091811806738839502246852925055907543458878646905808363814641571956294485165611720907956235589115654112486461280184422015307705595507947311399308915875963115271284290899487874747409058901155564626113432047809654792405086335849465951126307019836959896924167790337851367385148965183579020379086546372571724934129762518034245122575471232939582610564295678625391492613568049871371346141428761004598466874517594554891383157167447047098303362778414477100749264639141680720855696485556602564503589499041618345998894245507541618939789880849417670533265239263109036426150942823056402000604786585747092827116940571635820279521048419546157560997619258008655351087421054133945978700731729791766075089179366492600098876266187210278179529397263419458999136873370705981590238163012249675840068624248532168286350377063136690650705761784112182543758927054309281811665529462918059334047489695855357207022655423500905685541492773350935125118545899929686567541859962202007085696109501202549841206038535005463084970082741270989231051864957210737549198173860734064544938156452837294812023708632745510977776526953841110907771214671381167691981946796326825399020596443586405298915233980468060935624293367517547068555403978286306036575202472266302963826486977712694598180612376100953142206514945086870011662923958898215636336772326117157811096833716093068348112819345960924582324169465178743330381073718870440217226399241984499286391244357727898323952759237359083959779478070501752602707474882309500970591955125535736995470839849138276014113495358409389733117051225925899419803572933051571853487443678543333902183773640411407781021260760171203091404266735142736850209062638800532835427203570060275867497737311494792420178328904649593628675264850340142418483962642962617638567594235624611109036724711564589500152428167911803976265325508722064650667228231234414612446520508443154130873857420105765424619666242421977670948462939348275977394140395442321039756384387646355930986096626304307924150537991575365173477728506659906953945481312926072833947435084356673995416340694471027396685551367019184486711895116172619381697129374348244267852826488828161393779676709930742828948017543382244265397978020735580607441779341159508721163058610171297227813678504183900390301456432597105557262524032553400492347790231917128607810882599283195419012641643345351709732544675033295874031566635198160287523014420705283289138591028060346915897952589736160034498865606607535706079525399131756593214675459259470978983894054987210543857051026460690651367537608287412301136313679848952607982534832510468952782977992909108334721319920521650581907737693012414426620045783992233205955287250869539083737284573738728327941730162377505990224627095944446145144610057143768492870168694626742411789749748016993800424026080317575242008703085611092600973097279990530082055480134997811805311604320336634164776039806962499466780009104734468449452954674923464995991149556058739642307046672140490005821121613434962603370422675135784869757673646365832325234075992283726854478427673463687037586665035176400340866317084455086294683729230953389062823506393355486723216511181207900581859987128420894082406261013728577240013356770975333749056283931905926430393402002450546352835750796820386349770034517881191304460419899988851884575376987666793999916447922570689327903325782758710642064518627688706557774865568247533305836220395538309136018889533876005844030141795675535723506712335638522325862722693599907590306906624089241253484831227963087110852896091230285511489263768960933658047843554864393861042335785394670573090183880693730674913774322333541929546541677038304820142456893520589866018565655956140131437477086716596376441397104534203352203130723521934188904792912050760350584966988236847264012004651668240976781069024677234386462665821986548751807618580348157123178551180939626937025596926426225390565069210102528649220784955988549138315942659300748171693762070179850429140278966284339601491251237988401713432992418247275739022190521961252240740858437313083975209654585113257555311776532002969474208167614580289080927340273517085315406733245543971739566767585478877326406774227689852562469822042359297575626476772649790455287475538547850128391997099618182774408361237913539169156440968930194380350983299345439536184336927621324473505858892476520824869874197145180745184619210928503369092277304109879091499984818123603403865709237694317138127488819128181877826756479890043072348524214805646011778468696564506632378136735753543039268305034970114091835227300296315533030730721842163543450353171672212862180225167457036503747645065751450211035030306656521469597146552810131460812682161201270973800982476959534723834639199591781861465011092880350568410818529137046727173441271829087477590358832005265395493665267593183398451773018729696836410077771684372790286292646812447777287249843512823255636722240097232216447746877743570503147796154605981176633893112803782252667697753381397972233264608907550511560523115580251534240906485070682422349868590489127844439286015569858751650117663527077709957837305348535137463304545814489172186573826688352274930378657833720290450670982591302153230751138896720060449390631810861179379144856786638889319640716677289018715657904046961612154523995988831238135647324088129391719333292556484581058785495525800390825011738216177586268038946086812283485615692953609384050060612590295000481424847794669175781657501200603789118720978586344453387061773628583874808813170989865021782267231334405460551009567120268429160109524772157314420671724512081134598572018191618945810736434280100308371705280165962493679258711375151343111122942962947282837778922085586442987634902052091628316521482945608012540897818534936857625809655686724051504542239607639238399155159549549183556566388212162611055296137262121933532672412042347121654168149942534914142303492920586490279029366201078502404403895786162119376098506215406949167797565926821689905769802377034638465278226518788000577236471424278065997550990254337486330081077092745542554279322963559554694263414656710142443991096173016930822107362698226465511556354422998312480500332373142795547273077190423004943735599016268803851455385659844999690175256649825400698195720503602159254797549504401766524853530001905159504099444449928898715710774521245256758389897098564925903723698197846735261190631281552923774056132245127039502680257974389744670007202196756956903069062944607517504445390248686694977971107563303843873180633766072026798904125439307418176607906090078455111102555096800569204177582679732499118267484905029168478152274808080293810275285198801598652618013741463441335837460157887443719348854688297054415210153693334262769849771418421000078771948312067871253670029357973352651318983848798334897283126291972169099375110004291433826493727865424822286991736766964182217341047578351785898901163846942517753235827631690113538904647913369696186913685048843078389512024344776512271537767602749547193754378451605021305860928462226705670811329946228298595809492679082717129052770944919809039669869332516914785117028990434439268040876454866855248291857320307033263493721209115459321642746883955095411049065882632985353328362700817195669933460631418988024144561165270586922126575800956356512449408565975053900347539116944492238609758275070146994196325598403297085198716439052736274201990444945189830370828776887193459893679391277799786033616466661552451654104826879944624357318308905440626356594693598489320148790536910125293792237371241245708355566602314523362272394465948454646765474754218334717046499580345308543809451175690487706044708001355082162385965580337479924077970607757486830347796002290831759347683452581013022262886189556378619656814759833913320863754239288912161605091235091374791921886548643388448548934273228920052170139256850148660808844677638421594689509691180278364441543845413422516844598561936682541863173915480059297603603351233285600621234953598259770664868013699039430582680900899054418061965052808983317569786985937951291268067582903387210416698394031957200952691784797153287528954559942946907442450421472439074115645035326867300994369989312850497075209627101746209059961741898620249991214655521907622087562698608839114901790426697355042379497109272301241731520206149672337501556753022111655123809701067934972786051915280179564224683873669920000426187954666453515987339228132112396366021090699749189044063899945251619851114147362908541581514337259692682870710797206942565986810818883642999736343754913247764222469551103045451974531049236814727023211919040473823025636896499269012575635035544824791280605390498574775011751847664430140805971106355285866089886510059465417841665984073868258553296528517489480799975068602598516653569061802980170851157273054335506569934923031303600541315708421256717958196360778658552374948752454839277244461799640562058249377193950097979266723910753075035952509652959729777023704611553317493254104570368833385993362839778857555120757825644382003809600975834921651560911558547395076588499232235825506808204702648198052730883746334721152597411110602402362528072775172798660292745646750952188765831155883753838125578076161609303936691405120295817699748636319316578067795395257011557984946265996085133040530334885276519371433228554950916220466642489790432497983086142223674443645140409264112177941149944515274195805001999102805842715147376763429218333742060471779765001957954984606866492385120928463687504310979215182314090100010932276182483840778791044880576677543706536149948615867737989227904769052364504232737524485290444655125916100046492810528593094078056088003473277966039911877489591188227103772632806405866263010633865182961402773724288273585068876680407775405507922676529382992707514682112559078305638814059389146836363089678727606939724950655944304322884604646781723776342371065370953311221414794699517778457030122749462834111381000335843937483935761877134545831003295637646888130670203558042365142948921071869851676176897397174249664868224643043246093213558469031504440056694750683856559245558955093390736875798715521492038988168671836370085833177832352297935053823413254698826563875821477045271825263176601856450185892169034415484832993100744432378088097013546456334971266731544427864826301134277461431226663495370111321140169241128873047220042307090670560333538210287716286014628208577551148531351270070784853451336964496057025251837772815749909177182911793523072028362925236109094074559126258090901593722975355888383913790700480799399084313985650444934640450137711381041986584508224735728732228219299704055540835565196064371989043945265339130103518168348431485124154142957625185707081773276648669070028080097210027922669285715228343038872941462278485388051148498010733600407822527965552366318564011263721308351466669056160940644363896751289755695993896212877316011598039336685849398863416725359903808029740006127787202753178176203473370276578834922743920286474448285439142701655201456492785972520796303923015855625562653649642338273568633395630808296944467496099582346076448840311746657430555108286137760275079209476478728630406023962627196309721360310236990253291071035432611347509772112702789935253151657417811481013547668779266417547923425961653081022953910216997086584172928974116434104289396817268853097199830461679847974076247017969640047935001883403828453768867322421824828229799284290593643072455128716797419299441781016496503002667955946144494591990395342369356101343800819124313352355891324513073637938993217638542008258284330609480688093690815180652926153908637435939932667729708280486875419621847895403927328653688594034548393764337532637451135235290353189590359562533705399305560817072449704679728114509216500068580354592696632976247360480095432678447359143231373662688013944112362912936727055109921748599073114450848034601485850138882161812729918469672616883182720576974374903506150468659683678454935089384712578767135602198710023350365650102348265195695354823247117471363454717208647208659680294649679702283108221498009063092834844475254619655249356448297904186180184910911561805773934086914602499322431498159154949244554714191446318703131082454487254819284147360071433238400891458578840253919077113437323809158773380303877775220672590664255683119280848088315931037983129613751006731824661486607675547133622717213436670412055537483706506948461358677788083995057114972540994258774404316134080623645115777885847462762190185850676944914722811304633793520743039540696358953817405665910756760749625769416485501442945392123346740710456774196833362622517728616606649356450208935968103332803992729376766095622308861434267811813729767370246325179209275697268755724700212855349245236445985724179320408195429831259497635662266619133514875980808655035685433807232927618574841990796743381411352312201205184533456443543507011204649982471484084416775620886600218528308211793114811448604052949020899133575836250082596819920618223000167588723450357746727746108411443254255280620188764223340804111848810514059696062766148936051729100570908674676866885642108004791018902344437785251934343972416813413156144895045059514560243021942005392807896005917380685987572534735508199319107682437638291675791123339611214006589414356098273507244238972229154686721517775744915271991231679601818571302619644849700508652299614034172504319795696605596285408647221813351522800327143544504014338031217013247848938737224135474793337834916615381321453522637638593351632363335589744694958660732196127883980080371456913152900712974930446961751966077541234352397461454391024963860729721531776334700530353246062242379875599269020818918018126791336812546492049815978239218639352674329778778102056370644461542504948884143341759288104252493799708455054149160545093252149293779072444445283978969605185268347729546955221274605207721047453222114540741488036273262756983612464401040440332401953138629820787761042418202674583699185321750606461520764146730854258631862378977351882949719841179708337608166608103141207276735952166211739194191665506387304124731636016767527096308433335560210398183001089448447762734104908054954567752157303143272790179104391945422612880359433093040588802603885563407719557904046880837450043375446739248273759605721956423887995543902022356583419761418465112682541852510862647725378959948502207036405035679632582598446423149089037791930001319964494360854643171085148265759374280648774535447636830500086625729449698942933744395766066315790270143744405916091342377691224117511012386683175613110910107581745316665887455216507684639451836094335008517541579360380111270451325560574475975950579914531126989988203751922226658286347032826700987797358779914771546759694540461508546719498540297322574931978535067241509479813692046398793904796779025422600477059505063836975378845337104059601331333764477159890273383273838676421797887420599772906723902624436688719447426438776398604880103913570998976330828388995902909015382790770386269360832724449229983885249691654018018487170312316493838281354106588820973025076091237998740399126620939261491781270478573074425914673497965365185459814952893786778604145805662849827157184228194826255892724227857750788463042782233468966921896411420872619316853421693448707145974382338146462101690657634933262866192072688033307459755444334740769091278753773592890410015001314794338814890509761815357850040712292121419770761122591079664230848262314144318440115330681649710430268957550830935290508032581327850827262268369857621974860887548279781714629884030918801577295169225378697310201840774343286463859644065547185518272767746982882926899789116936943784733990563827807775025250632842160124666478675320080646747811303548928194156682815660390368546606107617281348554731773046284891575177852720834392081681837043021794620437370250629096938033067527468899943680973275589589594341562551656870732178554810527529999148269574585216216214089129037022425178219627511612901818778676259771498107895976964384979329668873583556083930338047019883787648161918321730753695455044765531315631365727716653234456364528169674191658158186656383484927667693309430051451483817445707151747425142326388842395010958348282661130015113000945136913289631820173989225757274214133659390531654305640115859097565080969286757544728861292718619834702164509952962644590620219082238553902873627620390064687361641782735590092847079614697180534386666032214988156523358602452785992672919372499718818783476292724367721570943311029430681094032073644705420142518969191279570399735369304976657901752265333767279138441955240509215295134062397492986798553138955324117428219553471276492660350902305945869646001921420177001316663465438351422489004047464682883844237156773360235723576995206773439515681555938845045376917187215418666911184015809011583205884532056111586342777607644472596005384923040871050390232431890835698091010681720663749015771408321152939919082152078928304834223933079293678140220302685230579331988548136837907506694689153912153813462337445812048698263065019830566130780057419661439327804967773119177432047756754806693015800177557328937209703311120240667068714660728758000656866717089441325307119519903697965192793904415216398731680487853889500785374666701758088970477426809775042086682294181736191614897149632499687889404888409071540477298397506307066035830069926285407566285244517594073514574903975007138843955114221741113269083380913263382131856596205536213611295270015132192740075698293632183130307402567624047012551781507264458147652479424952910002273623384363115926704086248238681837379028567188460257321253162297607139337338016813328910532819956049198999250842345909390255946704323291143648858536979799128360043373180388983724273572483100401757382400957141944974010174038152427650123006591972084264771004013855140905943306252335635545932178810564765977490325909473944956666975609616640432439935112131184838609851609325808523849602501799880209281033175220416051163395089321064424394976949557299982186637352910823115537280564770525684037540164154663746788771475175939600355662671497411413921848183033098449197120712237096507677179476112012152436923658196188691379659096960765150321403853140103001575057850341969900460430902665318430799564795000902477176710983510875728911995686643541271548763580700622900288270135145190927283417932400874910249702297358809095244724882910682056627190241978679187282928814902668333884331957873939437612483882120454899085817204731530106258755791316447220011635352835147208077873977157377750220707853145423651964444176546917473910207775524001967222024124939484521127373506291411160953718990037454203541484572927713444237544507747699855536437014015168192755598100419232194626191747469507147825827537793901933035892817063683302584848088200192218293816203799283959522409381936595383028689032140683707411673265505642726936838882191523785087590060989311982086084155328318969221930797969815232093558477949028715457451821620442046679676463180275104960335417043177378891553289853270942365792173284588823993641320910213647506016607355137644182766623978920643513009687009089002231570206867862767152589954072902214636435526518816471807038469903573333274341087703940513476738061252322323231838724313314221664807899733244004731574058120188014680436019953457083751478631950611656089880537186850315137441456707995822461533176438083097911085245698870067266041840170870351847762591415792007772553711699767612451886788143093812138489849903077064462137906146723837496192076214162760187263992899578241509401287120544212388843531618007454639125976011524703533911743262313594004408707865082124145482562174002210703879281138464328667874636698404720874346881370459377692928811126429710815463702382906315192212546029307602143926827128218016698767134143266449948767050385198446394323055825854523379160568691785810245155533968101846345329054329160385100419090872332070861936627866097236026874829445207202367169630780489547500091647312404086379796311919470581804798813330633273090650459241737803941174601052375536989302066607606539377810997365980632223301775197021539450588724396297918480397002306075391073095972413596434306520330413538990692346561751919656360874695369030268239723967922627549375677636122683428321473601585517382946174003092804969396390262838670306184958033534512189684458875858568741448629794322673715523330686502066633168646035075704918931047573673323463129561461407160772053807010835055216599611608549639748723907245880836733327659183286667032709901710758477760588164384831458673147763897161836602287125400663575305548373119093223246081049658458587426977515135442765793326716476163631563456977475922149610226458297469271031289889451056995843769457307425298090569803605316956020899633869785143429267735643432961070746232939484898610283064608098126650014207679950520247727471807534014229595966444534935192389395598926651443809962891963068296067237406308416263656685339404050748422435841615328723019123676037162004100904860660125075165206374921880386375226213220797359777590622643864185043755513110825876360250529004603681918342043846323459195308067201133782229669488208071596411728140292817546087400467493933021972397955000823481337861531867901688257867914956449977212647465889513705587345727949436791162769799378709334585465581885217814357111736688006298524822015114391723388121460454090586791748015918281185812387016194785987921506398650950041210536995322665970085997111741841251857419344866586994591936963206783504616415624822158208928630105360705334120685676080590132455895572166924608086425730614671112940449094274017539725446880400529226968164007804970747426473735518993917182447798112291595229913137434327026634264098015785846500395457457626810813148071564800320305279456099047604294261376780712191112850544651310632998796410697310314337073108000397122493887314616867950330641830625670587748213444391421721031553898456974604489297775914086847490307967399102405325384647974306576489570100510502322457418336419897030557273693923307676144581028133450681739389887405993074399248085712251124748715896603621414887312881539680486244562927598026027893943019374037444826711270637665862113077625397671019957162849778936945280152535578023604740332546413466631790645447132408048375935215388211237820286827623919548205120225234055038035364842019932611213838858927992560177333955239763779373059496501131900238558607682264932430471790475952721996696304171629005447402635255560133453324700397813954078172439282907579504671768115660567167052960656628525271336302636567035295526169404942223999563360990988253957954393724095247522371219016953030034745694432042326455029549570962299073634428806018909183097935386205672440838173659318790768817259632451014227735160681724932776234625537380978826257564872311746574081076025081270720957330286882899896186929130503818794159274132564726597385721657857150930336538676755354737728509941038964189058223482049794567035132107632024814324489684915768716610331950747739313988966888922164563593642319695865069588091518954127688980300375217576223282886804137230604183700191496602848069858480586258086979075329403145072007266233779754542784390852186688157558050888904119654769448232105676160356876174300452112363841187490888371345729990735224835868198783364095351885745908176787448916563005045532646099557160082900050369112934788198662283816884171952153512009160974835354589470489296262283828197969112514776103490037045821886485206040855406264716619160749075602557821892031083671864567215984750396120696719579776054857047088130988537994561507643250212179029379956471154453816314247098659133462514460792032704568754422300175559251810446982549385918868475792675262884811973566111459853571743952696821586511182188556207915609616865643164843006937115974860680126684688168884988791579057206538459657458287821856814556340285048845420060967099239003260447122937800637095239474926756886538592148129849009577517135207051479205637877375662240895238049083466430104697121373050895132839921135074103903548149381887649374155361842086202107658929848061039132033616746464754611776008456090999754678909345811370910920316032985671764804852451349192840195637448183840197643601511640649460264320258797060079337732746275455890199746527922810709695945211924840307008059745975650011995257439653753318154674714291651520631433088738199619895301558624123006250429703690920895693719381147503854672983421897925254257716651570317500597198136246046739094032722623107376448432949480270726832139572634163975009699150047652021927662276496878466471419103587172979883323224315151252888491057061474834286006696320781889702379520750046873234781584600758758333162483283455605008125085939925685910284484960967440792275629157198511932512734300497167628670912585858822868071376396055017366828403130287960821082876359048309062180238418070822535572645939164131181645935063190505289559952937117868380506864565375847514019100142398499751532539704994117260630677968512708581059673221676282296479328054035833869016244828525843058737779993795444176887611408890716718190599447566848673351133544205458998674508227753552403112724278652070009863564600523571603586236749083103767740405780365437805392886498364567697300045606443923108434707803710617418347131207056593837790645013631851990498481356590589127858411550955716592335129467199409263393343520893020675737861258312931404095555418521167411624578098864075507165351839691531411941038291016236670222080529785022874432326663850897097502328100267495985755563787236106740959768734217389271052497785494396516679633967729077228952790176463869219008036888513507522705614962624714223387576901905880217692592608491231573277378044452097812727844010940475389805973700927632910048872598890310659438067783926940951873135672973686685842573435997159596024692184614169957983237417638293945638383415989423127774352988191981841111594127127207617115326738579208461183438026800648164327885855275869479578193299279132714346009566192523972468660940489831138088351229163280072932195258796881619234049299568122040607059933373790128866982599713908898602287583878378948759931949095622646859796391859996624496458954862742209221002297340629706906001029038170920024624564360085285326401123516632539791934016573880233322546643013773216055339116982900252377881819742003790572157571650415085435933610412189015603307652116525492536111498551865107583773773776035781312531883886653788496881692562823421503167358466489151489999942983811750561433508611011717153155093526060861967013395920756756065523871680633899634781748524817445750179314369995073217031971820622568463906350141118051051709170862477977528088507682739143404649815178423309371053078018931428894996993651984707783328207427694012630819436488131037051387449593758805369261695974224772010067311906034001621319138515944440972899206678786400669888049479910077589066450146605911839996653816194107446018900826081894528745029825299425596574590419937744864219481926047826717212886391255834208246959715452556660400880864830138628514633571366742999390717462027774065093546507385644362323109992973474132351314131075616183402447451105429009309151184171597281501574570752524459960120799707347228038391693059505989261245482525136658064271242843895210011525539487863511199596573771603442525037811247122191073108763017736536624054560874887848380639703680042923111016028907720913378832378564385199139015703669463687960945792053157538616261195556897831667658272415098123651610500577391562038025932096815901676725952942683254086314314633587002627635183357752715593263101615174007371314752605739334514694408896297392667549066703872523352626184301525503040327417079225023198854816956570331486453930451678850193621471717476749945174632523915510566372994804430472383627105141586358761205918294330076288006961637990011347097355442969734579350502531277873275067950920378215283861496061198219365027402892464355125298253739077532167851891681938977593141193926193972253488387967358398135599676543841292711959692671948855838728047418683572811343273483273313578292303692426407727325580815848623768857785424196234965910167274063481646507188546656223715300665294652377530582498595466462566995903938987298002030053712541272918531164921110049727583425448368458017853537430436518674365998355414820896486785304881557406599048623793781287261611363739928545541465611054352657387399900698780632019530828072649787109920762820160631065883595173165477581262120890462431503848426002095507902961214539072546082450615606652665474616533443546573056717615390611335100178698276318113357858516737788424202567063832902796178797242302644311116006141499050108708217926440614134278049496250343358175467442352196802084732568063719008305650916499759042103243694217010335758131549344055310701892004909945277030884915406650091318111260551472525804192613483259329384046822403619682928701304050947736493975615124306621563676986133141741682701756970143884630962388911060081152503062424820982869257970961745081555998316419371109994267846161656297603090168789690046974830837805976740064706224643487394176331190277347364810951359062217730931642637067321689106948873404562183759500525601388092601820099633315993908644727292165391236009435863326895579489597198744307301879878141250553714887372634579310421193487788636267010404873414800509670859132487713002259145010022919574262154118529685774976875040612290976331067763682737582697121435571908384865653879662930329607570427169698927975048479671562818025289194643331059832084426479596950092094806768986349040851929205048769698836409230266606683747644840976894196894005053440938740999264295186158572822623840641683416118751874496218423666912067806731430538352275081980207008690921936601635757190567768744470978664235091852516139852551508811477690440674757268141670891962416506046522637402487811934832953886012931081007700839993809888519789199387200912989092925487039536235564333561155741381113352290285037283306549398147572960070559574984384001052129706385014265935619967681134414484734428360676213846293743401129428261289568116282905840991580892611060601075444942834572177291731639591558057393497010546767373232044793997526569920707102267294761309587883459021748968264225942134815197170553666660815057603743928877199779820038327606520920490690368638927233490118712458652556236586874083825986316212794099339771323792272659262768375456805495410017447145484839560005873681052999596793851422086255542696403734290313291446103134388603635818701844499723799067986818095089004810789268474717229092601745180053770655986365281596729368264895025159059760177312352742164120362462723416352891594027208370544052375727907315160484167030272632346819685747398589835531573119860327787090475015349000820036675002592721891619416430821370603759342839310802754220034219650829168756254152720633269281677774469568575812356606074048602749053876565986268681760643523482900171336223910396058925603219821297963031994593392501765093122487458299036263887077677049615455880361802631922398411659224954872510703976761552769143288183035709635631889682682310317044831119528948012902098108252219688987862539984029661472012434026830539722555032757873203902168026571304109517150155131764793496077718350654896146165807856510208814004861153507659274378323293598525669607838847571779364773205708428672407717393318778050869756245854924674623108872028400493383714057691405880288003787575946602164480772030674660454733591926109772962368593662450034843772129020163490661874961022859530864912389638843847255760664668061667913312707352204507138004192247192287309769773060342357767928901181386534882661248528768828191523549177904604984834719927413744437491867778724517592594816126428624476442557935305434158126235476040678339024395058012663857542328691274058132228945910455282729377929343172355517657772482078058413517703115291316010679317421528578892931918523787261572039533196920404367641194644194963625549713173025836656718018285201893436513350701885902920441850802172373191728632340552185489993946280439487333920713218377480895048208330405780521769715507167990891374656191910994859981374313466842410202546865125997347429416515357977638768989160405994396161019208847562830114037203485341308701735621995559778099573371837610468898584033436997356798610803293338610776735728077034678543036714005009505641150612284868970611638525492765903560461920872770025642214125146821125040486702888312903569360545604286154460812993257413082005499167846547494776885134208633787354034428746533127175495575277948617851474235322948816220409165645226718287269344803083187605827871917477675149828425955537908375580382024131150700735275075190610925881414409172511344070277125283624339735762750250323997265991779172785699670950083582500133580941433053065658484763667584874805847252818515283731069947781686754845799004364253335307006738302959584108597163883979055158754724709201983635093485102385787320564747723590071180893643253126885907915279299553423288750060738569307538476673452593374954072281740463933057751362745678669978264311291482231060104278176559066786430233416016216208623089673415022182200841290330618237543044937406884162595898631319879334920391750531650462184938396962943717431062819373315253021642726327906433620211479872996820103698323362517013220381589351455718233720649821888037716714879425821483770147548592913064745392650334673674686033014720610285774247799923434256037986174843593020707576362713472622006334849390861234018273467853532285521225772416019297701153566912327411688651248817691221758614816646958275449868125266881072222499884817842579417478991830059964066982887962271668212739960370852465366512987021794358963813163356080188821605582750575486180066147049568332823353378673821922067604751013560582802861250017472000578709232999367168895057432595093614986658385827349698174302588855789167809646604926343100664023504189158860126665196856189530227888433288412972859541346660522234353233530019199977387902688260451508760020033073691024225430181568905671280591066458549617048297884178903306455033415356396645759193177142334490043327552058608610190291669486984339580813782879710986993204789309575211480686949086016474639974451430604081795797315116242560024474866067129294797719193890764332606218376074827519052778810288546693194438171470503755681587053809529953310020598713838865018758899696400477602028522502207119630518063459457250349217798504380283629812308105931257098431409187166758412068071267905277981314971882299354865289437521442415164218778629505355036308569457859230976294238322697343556298468984551588470649708788024000356329070480628492438840369671399890234923786122630577150909749274032904343927095414208693297186527202210091324590770322732142635403670540845579473206666337443273410067661639584954356923212708613636760119998108239597850656310085857794145943061686137015710599732205036504239135274267560317791837942940901533490133441058381017244886701835727038015215587710839197605999900979788631038925093313823178513027410875581230118046088132047511658321203284145180208729594382947352721036581146099055640667619794965844605983742585817057968316629385464888942462264349617674701537597673576185442560125179806649335224700567112176157576230377144000263696124193889542147757137093086074560129426695776405786123271526970900875230657692992463959542461684652270261537175646673539419772235271912188428739581013120096957049491438264862898866911352537634089609070715911405908831958032179795204142066078990333690924637040276210945074145594030431978899608515963811524861921125181746313923001307704663767997401268687187998901997491992253436592551524381240454380644490181747231167085777363094348084824341746629398505340468304392516024358096161100838341269689097812584395240235379086730638615436326254048577525091701313082410740615368773055849561164651371898765537491616275022360181443531618031451634736054337174819017513283051258858189556552580178565916777342293728709544396512714730460060653348813972433673185223318510690965310731260656196875001245114458096070199240714919561038291133715334049575020812347759818620255279385313428296708228696279158956829329557610236152400280441709563300793655394637096411230445132518806929060117632649943194268963442575481473755694894739874461433400755262710807797143245904579255133781743028142043398463531607473247100925942471536402929313533507843379432731859209716235504662974406842460644554599701517139186479984461131630539414766148601804247214732541429517444845758637665148316753738565777528253550058207830044526297473513373433350710998118021117097615982214653243201129594273438839420709501434502681450136864675690863710751136146687602011208523902706483290225956869786331452923305881181534863580454367401538775153341323852678744870676410736677244326148706262535744886103257944965248071868923159680849575050882062251522394932886904875850007074288914296485226824208770672778032212388262117106747717780073144060676740835626150789755766219952747556707346452639458972313130756659577330344979860964738157902838791267311786342244672240387253484139874855286804246595951665478772657356116028435827945647527810253207404755979234137826513368850675665115655279818723865591319769119344682145662157050336469241608502694204456500200829798718643606491720012683973610743532419707097542154519579191014304011170156630942923396254920121746742566058529040292429072395216470838322616828851688631550878934208214980937531525681955077655090446137992236293015574770825304039592314545732503098104251136144835308976831019089619770651523088714739121073612258607813116875941935575931043485103615692963080412202740493892501547703443113009721729754234907534051527163357131525975167560967881111802327510187776669760281610954976601356238286510581377094206409688591157191424362456253300432895683802808227532054284411026112428725766872740303133470317650838375692977241132811959504600946576209994927092496499091823677434786275143599083264495460734631937255877553461573187246155575229182891745245795466273626619894278126620620179627437002240062898977341637715528902329091249868569136228787027655569220106730286550613669027444307676670572865485242299296232675887507541846417092225589365348058073868580140294503866515857369007688277285954518406431203964139677261966925742984050923502620863513880402009159336330816110838758184713807430066737844797235162920473002321603477933277498434020941550747309540459732385876708941625524523888407223883122730541839427678695300781614756263721929719822629676709334542485378438780144929143130960890978499213810457679299073082664396670981233049405488494200065036185276821770797711557868419862728577290068541162662071509425076192420909540508553815630615379451236922367682909761582090056290213231333549215220421815315925334576359315331441477622042554489029254131022418381183689409352232878113337682306294326896459054656007549796421178214359578495212926865201073248033023990929401395859656858288648941162176273261043594573819114932083948646884406954868790718339949647355993125938151094502458388228925784460918933838499759903431288477380743449749373822408980383380117103255636743225945684255260403190607865641340571773912403815606262795666195412405259849580859026145817218519144791160203776379103787514769105655438115621658905107396674745686761876819607536599111878280258803189154641119001736567347102688592877199621712545964698687278113509137055736226942963983669527702683905088841551625170475638613434407010334325261797841594675580278103697790935074300084086854885328125850917806849544732426901347525374025139377526750545450665752862071605500029811078610697450165588256798963944772605764215665441416429872444228605868240325542861323385654415372933114675622407577092495106440271829617428776698658740379879012290969306232709359029834276911592053583248848791300625605569759430942325032618329135042277584479937195444611247944169262311026777846227385027142190434349289302947180565577664670148311189270761358468912380886584869061757614932403991236970690405511901809535967297336213085564075340571881456589191192664847821397714611191764933584708007713607335960044149211761048067342315306180462143834071634251834565626704073587953638996793410915556196867828872497903817955832883624541780025598978363566184720800289727223055357932399479163087862433587009360488183530656019936751067633481534456520854386765499944858081960920936640176569304787507905106886417526026496965635573058912710408642293549545737630750989062706498352890654133233258707365640252608538948096944215152209088833744341178114094103091395215207326119997890456763172343664907764896516138356798010060643738200381295645273188317890316416732563289669609110579665198296176587557286877801584341229882755375448073463298460974541145631108649428154603304471840857055843728384130941589368734782314927466057448062212924892416314569169440711519418499813131727828631994385215248044088080213877629095964104111596599352733499374032001672664769486546833069619786655496535735249748102660734300326455807804900911636208792180166995148590666003533093098461992257180257687878237829292354409614554148519382926237930000836335824386739003692027662472440283591312295868890702840894271765356677848645430634623140265451867725392018841317454425555228549068889087420358202032283430101421560317350059546021013825476937280848645412477429545910161529270315236766984732043248542533055280213233673369659459415699074797841233915529400871059219997682963495509378216836890741393366834351902198465313062257740121968814731096837707215973431470133805133368156438102503094653875980990245641968421778889669149897630290216332187201798384192291328780800329388845354670087569377575109325039039112281823671089189263476583988475785907171860836015952921689945843377427082204063202801584169421984546124439621986278215209992984460006789660313466962137887335716115601038194060178127739507528641043331203332805691650862683451221829693863933247970213340457198397031997630730919092404919140248839118956359625061107927293973772436256530347467886760535033510769335705596827257859099854394257849091381810207934313013918537884020706986448497452267423239231598027586712625582397241230563067588163735402676704979536789707989211448008064640446776289770885514035786751424312577754973458034959667330013349167575158964874230519113235897930033116566647645633218282492182558071052348909876313951267495262659388377073790971917286954980935993093016390523789178901047590815261634282572913116235618299175090044352490562521947420203221728854117051557605966577261344153038365325686888039495330847077421454576168473765171387482814453266466627845091161159140685154078575583311886455778314464503719323496740748785050607170300108667387683941554902380784374761080499101080425767110264519516125592891808554561980464764039798742498660984490926724282406138613761187667570575653799900181016177318100375742611952898357338603007274976111892268496689171557632953581453099186462775865640177025602089652176527754123346420319448647857355712564241266611740421981346225210041085619419433212286786081092728402995290002863874803628443893213594923941070193600046896408580995694147456958137433200379426816429389866883262572731650597514599871260606610881377491202575831276114175993661926133647338511714491640540228851431196629881686352120225880838444313159047050842275101724855447683493365603420661998919052725970228405854395537990616007283709511874131660348797371417185010010622137928901493313728073010763835526423688152178897281351241825053037763610662033072145155442367191324765166426818981971613030312341436348946549090384463059477815691237131449676948753188560007808495344019569367535785401895207784863509572788090009723352575274702555439597734615597845142915476176752566686963232908368995128579437513251561412268199557866272560817771942315607467346567302152161332022011113990964315782211096417498186409434693982949921014859760855274687649550648735390407027177517061336221759745571154218582575977091181252915942422404976161945491785982977587001732715471211770637256043862994361936351336898149332350686184175126475985280310137966836531668943851191071105970257345256237013935000987249503496811559904533072298044833164783845535907271735029559922999398142310461157776270997104911018055086373651044873583573739516742672700277700466115034493759944761937557639313818106705452516650341990824413937219274566804245560814144028123597451163067606717110060594026100765605818077226700868842140149358946029979730928488380382665056958045398297138243460038814499352886756443219007759392801539282103575615137912615565852639327911696802254532658091462704525812587405886014270863593888395361761236358550590758784443451947849291478860248747182866678999819662785978855281572298726599490037265130586566563748693379330597217787222504356529680498514815907997629839565487818072906054161599672908054409899481622684491181644055056211930721987304483625847720285933012979144581811552365481558013453084509483019228575133931086722459659877378137243686856883952297410217990168661272462633367086230766636791263793202162159129813637458996344473554013654895336455677175193642199727566020338553626836316421557027504405184863742030068630819124395017012170971279099335125454659952575547875365690338089460746661900589026510402478575495780209323023156254427228997234642591158153970574898597287148815986548174953741265549441808778329884900066261846960157037181994668337773538301165459853674909658667025190151120725345691321888188011688120519920803021404046789671855306260872107907356693507929197938641655873827782059931580397693254470824576619485289491518632014208170716008703926807577205129044212743421287912199887826465819389576125128067527440709738133099659144383675393473852960128035179077771475625648143930859636538700549026913208852058620631837816810848659486990526048671537666144425070356576069417652253138744295593222552196421152775142990575964359120336052482790611664704653058460534701330702089853448910671440838999377332769420433260189891825121470736807454997987407610522314682280068843263196140905174200419693784692335369283090006817998685944586875974874794462265385303623336848353409715674699918948196153383096889101313462546292030443088077401674718491408736014808288312346107041086413713913118847710325997577234971370158798826740352127906919845812518921461781126504845890199415584954403692632882215719700316221409512784421778812035523573294114627543407552477789261493220723196377390216973166308941668546675207359448761424635183573172779078121940731097421587946731490673589569496228788690125438725567848048137745245767315272098169811503361595900526327145878666976255062727380541419025169635531507703710029373889959780845100518637630939871296358685544142418828884320142312610733378328791973213731222461342985462720356104736367994347927710369479878302315567820538329969388116135214504777567511572097495697610644853219547444475227235577904700848640132576179280485210682346168359408950370661500030072407208602373194092270666600675501285779253706276023717647860362638802532899607503032852925932501036497364017643359069818756019215592565475486353452738703140095029518170511936827001886307215224528959163939581007398567395050823919395943019691739226843738058516248894823868351272717335860134110445453575842589739629017461801389500353831789226832481183678400484131232870899644958698735051011713400016624980795092714474760310302035607172494905225066828090497385772471237969790951078753200911754619476600510332262027367334344391446570923755798300701423030233979651050056782240466780072376427126103877188804737765257342343963150638317648745663105521960974549443174410683861556109755750870482705730159114344715014890423777950944832049805095932461475556464407705279977834569311023765386600348914398463784733387737164838251787565474759229806277573974665687398530262557858471759579127356271471232611399432417895500321048534074397707765699673861955820120063752762019975150905629958360984235924323047586134951180667537273152776773273890764255414830156208209004067724281268389500031516120245750774400809406213313777950834102578205667675953466484006812957398642781862700662822461668284985822303255425456844540556890400081708181367173121354793844939096760082212155058961952501965171221798587358618990526259732053398906660753263315740711015783673098458340998440881100677727677099282544299277821474144930997440000418956746168173025964076366032135775373849250392790707840148798486625134464610798386072022439607112471844322096116250882548562690606180831361551068201271965481921958107920195637086897304137955634053813726737480131203007182075696713454703222012875309192973306440958956999135373668870766486482471285676277661792136285989809572831909672791067613488754019236026774791242911967942440070244768416944594241547005458927781247427831761710769053327165568365254971984895227237348994820227779540826874186041696245443991186426461729360886472047303549651789226409303554050542660407214155074945038918533520438025588684898603156101713900771724970291504037529691083347094578051506082954107623625510611412117212961463601935608147707857970219704902185537978715159602240991429774514746594817631041252164766193724936093863278581501263163702421431574775255688595295197885811814552694613139811500877637031309440592359895637153285345642401246207816524378269035225440433047858379783360854591600558198419881743487513190491826309173138379083103139726094453705432400665608142076889249973151769984277733803855346500371720397573610098995231823864823302016465524520774700199671427943463463535990755623389427347419396509790184641396020321583787614016851685076027287712226133491651078003191508284558866017198879562446585363203315980109297278761096046706840566562208796374433076988831915632583216810787706620270639822779119497562819733121983530437240978198685637949318579672066510142044834042196616295843696978649812417910654724444190117357882727766726337667393473109759004842313154870504796704608578677177763917601141697594638803746542392239284472784557659003662891807986648082686911347781245901029765679692402648138518192715756192635691434095191604376500759784219306874455114011521073948917645674163784468250005009363474864738904142657765908843465475937288737326426892790079228372817904608815724826091698061923107084977883101985657430830661306228481207283758581014827378076235594351122763176542668374848566156352636057535602292069367139021384694101709315091854390431532243863759839409459644912641572135184022572666482703161423451351682254309451560668649478608169760685029922553038321431765748515353134952347729880055747120762534216036842805619812361012359988830657791873959977667051850597789989226220713499449897945547520224250495311321865338676329001866757198127737408901736075259181323167702667498543470392569369967304683203962171875700571718794542873767015067750697404842991408734040312772294038402553768733082850186027749040316011248165018072054804587157099279433756557010552862345010898136969775418506106420477145242043777999362320422261661204643194725684228958342577957067645150695703722025073450686833013753234388559091910019057661597043029708645477038156159348038773512003160420898075306378561029778569074302566512261579365659680474216911181838668457802894356505370322862477793660380608756336918777133417341440789306940970960416394505473881502932504576459412103542513254390827931840981317582770102586608817204308879056864927765339615376642471357126518219383064784942692019947923636687522514515738586534047026727410497974824397501028997071244361723827582155218880950263316684206554587676781591552912892548865190291475376717788934060354980366349458610349923406148985672780654464590954788329190725991751937895553372368667676378523629673707319740481093106952138368168482280899913915433189498303887312418955659365396024967067868371101295118024792156987170543187605417057967025267106070744913853426745683302583590958312236317353188057959857120383205800843362613207042610281128827332706039809761908103400018614086534793340940092214758911809376288358336266590733523965513852632750127699272302145838949274035015515581535303669222573393267265082485418111784438453280530758567596302652616612120248300655562965072197179894093154108942614837931153805593869123105571886070445318834156566148654109448056166625310223356518647878081410542140089792281142531043047205624196919560609217828767355565881934483872882493373306628376669154552056747562943663643761229177236047775288097203603297498996112031362372242477234478366496677777246723267953455019498155964531143603351267281323999889137193432865557756831249021126986545758950040351702057561820560715483967061869995583756211392811597481803341106165289028781026372839361763721857361537237143938587494867986754603414638827916566687263198113232888610262536752948779623213783784356969070740895659184011466316675965561047245210462815273584243469722167666322052525464717544290900317513906468976472409995207023694768968470282714966971119778275000398579615629580018094788964036006633699903727306615939524291408486559729441037484058692626030026372194952533645335892401022640546808969708221015345398640075376796016812412624486304269820770130243266197353114352680906845953162815725713712354574373298605358675373446736861135288577398483136414264973945481954013523763853126184222850794806102075958040538495416045937897054942160560924748049335223316242992342784870426456059945303450030218503051151095580936448722747832754013823237251689016740096532140289685270839193447576990409192728493669533917566325914716992765046141312363721348452899602141864248632498400857658115611748352903641128383957021438848572074840301012161304674797786862525004992701973878846386701285339419063285504024174405464929099842561083654490684393794117105883902426804501084217160281627714902517265023201365596100769874576174604505584570239430553163831880020277052743357397923597912742267757421589538614505370243042209793775387415858210695554494919114938852384003377462212483721879971983718527421368857723952358058026155223489887057717097557626865119320596550512531401672914449475066117314322849636966884659973676244142266686519108267050667329029319083935964171165744363125128652113973615433942454336314457782513699637027970511237940227795163971051630773799504973990877938725610522905266802210980392163214185758034177343731750765352937084329685545996931445963502532644998129849926952102311283895668385224847853157873868205603837101537740546604107303097171054846069939002815144873351619096479968682776806470945475520183000108131630152041024780856033486069509916641831398074264032761524993701771921436925169105442442052039486698248947379613672196863849847069477547691401608083828893647172293239313946270754428049823355202441638827438590847817079325984017996032454340407129499658658462822326691429544480872400145013618585509498386925593123929467781546246519469146584716580012507505465319104640534414684696657636831784957026700401606728958676981080506710862406773741269303838753036678492655758482912391640129239597763805593412053585285860279707391621710692963036779596004927059596565195493761241297010087463891178706949636698921406105329031472018806571909620588697543908275564400754144650792218554256046832731350763282008201374785660140239274842991998381018464028240285219241471009162483631658388267022804092650487785686719273773617161485500555989384214835606336972844505792676662658710139452456012646471076611135884615538462345988269734224902538024428539323286199963016512550869724346242618997658914620495010376385019603508399158879772631615717398690490898725939863487857172937248920839408813900447205440984309808271942770589925740144355573772588938315400500890496405802106198591046005530357548505130319651132072514595621540338013804279648672785307648632701430873236530961038625129785977952101579664850926837660667969560959418760959805004378200829779530441915469434594378165029972369299194898332641527648940093451611716088598225582186797686987382309664997601118575807300466034256945958136714297330107632778921248130106229677727419134812998563233205853375930010904906223557498643802746591836477757073014604411491827763230092892928436659173694050229774671495310816398373250054628781794842366641863497539130644536829056690058108379980150397474426191497029866463033823646596007686631154792580798648539325572671937862980474133957265761931370837952885700242049028455752494394451523887008004943601477286759690647432006680404297505952874398349479701798397037042166933098182649328517332496629822546904205242289291346522482233368541309393479769267385416355679932117763077774788977484857017560955334165749038373362935194091201517383476120555937794142453628356899566713804353857664550740280732338454421395022620184924912286213966934649897908873354218947892113954247464973196888475600742950247975689670455027977794754386823934185524502208949492070192696552833349469396426212185143331896692143707673759898866526442325365071677546705362800599112882308202431935560004911486920166390603034079937529105987771890870702098395817367371835102535897740310848752327708594671396914307609831283589663844489674598366273047986049310510339498505430106471436422765815164093522886191011319709855766683935553499594845642263851116630501313149834561850590584181513846656288687091577990767057704735185394546984126456626845476170331209362976976802981547080359089766830946469518579381569582590372590212295135748561975786532382581184172759587624659132664923238802749942708828091326017592683672276325064733826695479877853291532432246051455662714711283575188706896172479274613894033905265349566887739446508462897983467441582732107078031127869780088546620344855912329424762712557915242183051246763514963143802586728917067683138743512948673514135816816187359579829326095996646911132667959997210331657058612319904300424904543515742123266372531161196573494258457255156317059085475158905877472766024521531371929241210452353243132967893825549592951267688503715271641111095511084631178305946546069319955784508314118981605472694488308496675595500139442367374822237568663254737644610141068449989482137083466262108971671591139883955761303769702686831472489846041553491090608166776120345753722395734834118643911192112245556344585055214914920187402878867392868886458646971112858361219294019042042097448618853708147197005492724297307859713959879993198273431591548527864490161053947041965438009040579751807199506735123738159020755165449915816789358685227366666515364306908585468983067784804637546011905202331477546542031399894314472049636679409151449784401541028836836675697310979660752770144008061232179547629022931388513460377699664083470128613119509883592049164302018828788196951423803602066408344845405477989662548910029243188766388566397254728609063447990466385745160055453295699232370924556350351383999124570140528763010648204627469371671381252331227866255447408228538311180459153605624984610850009907510157530850338236493873214729497597351120009893616557945720491575560098161719017473555191182121274103144463933086514686318866426556405106986523300250245031697980210315787126978232660791606113517229606096826649699107222573146869935922066861272826727858636553179459100439720052595213055163787174687494033173774833223850955639721948039984002526469206225219723297365374292032897406476404440188678251882916981057562422640206202741336015666574826221641588306088452132511419985316621415131378695208340006418659099177649714180920737772807873470092708837558115607225541108103117115343068331150987171759309508240571228469785834109990466286304570212547121668156160514554997650141213296049747580491520597026634772476523524099554984100772322120016455498700370349999981922774298443830592006051571150366929589461637361794809372885208449556602856117749631659671755374284504338208355299295061515493482582302696817016380454616296538704121812981705242835355604271209649581691349628654632966467401887198449543493875685589376267176063933325306351771513013563373310252158645527631382422920174426769710588644486953651196514697597803147517024445970933423343931327556919036876815507820852484965681310634878724020812437308559053344092883952017514632044458312488658762794582980157740270768361427922624914916687994866699927913474485393447990990370901266932543622274805721770942304621585160960379888434861657750199255531503328472131141350604216482574180173773136529644390799607692012520062045184523439036326120736047908657767022283876845004549096567295340571036714789373850551013006935097203671530261349575502427017325368130561351823953922650058260355889564074222479843256748250165654162653441274722327026767000667727246317349541202847016795881973506007221370447942940760460681503974491650690206754936247524696135172984912459335599512152764480597656664547771508669378395988252804356648120346065451040485729054128738492203589954669284871102737804411692957337668397946522508945626271490246293856600731420074161209065899336719021814569418344472838992555742597987230596931163052265538954821506134418226627575063705421529573145297622899702670719782185896214256594801754241705628904700915395977509800731856568794895557258606508182424595237043847880523968966132240885268015719327488040701069829178757717975334933458890645649319229779940146702481867194124441546588202086337023920973389621449083684422792754801261919682979315520875291360648920790806947289255478616016897067900016667426330131534216996876579258510876758802879828205872470755806703587964507270738510727383653426598412194772141334558344034916591124726984583217093611658693640029453583788973128151052626490084910014038212657387064497926135687273495482639418760502331782890952112909565799481351012072172558078602796298944578197504011675696208322221821743803826851467973880923896341236128290930230149345603034817779338180540869420402253604771692250597361347826755437524457522173253979952177854970340597370565518035167275310006072668249207410304679766968040764350071649518089306018201230405163175902273031607060790535973285880774847387110828078019873150790216122091262709713634853144259835684247832764608260721695219110625042222540054352191706445629538559801920723497539541730431104098049110584960056632521429798885711345747040359254644209953708522887159761135496046847494498268033232376543217986623188549323133331853835989601463953043121972553103421193681785934103443947419088861092253690921436265903943210228413408405622287324492406358180583509803984492153921036341550755414827797904267521773420107393404797205963177822973939367747077856638989535379786181540654766253709853934197556455308581714471780818137993941445040287659136903369373043481791355822253065248898099588374850332414176792816120760087391101486821883764333811726911685901433460782928768935504592508547044924619158369758474132854593387679617056298317313538420992578486320802603117681607126601946314126928470634653058393546876228802356872763928827052146948253052237802808231538258155722248694847046595271267261401253938438451665160178492565762750906098361219214830107283576406064929857863032822021935969792005006567363959514390792252839552529763136116600863935549517221958735829514776079913221789889423747232096544705829341822200481851444942185581079687882007369319740903868468762022172604850995427316196545448671786838482935934804960432323356262222778442257802364213833931149140717788743633598206048784024625929586465848795473215948497273900876105927405383106339502983302270561892917199391801947533101919668088084696472132415694895110494211890984537505770392996328639154328828565436147873591918443659020297701886999337206910872631796090567235524136379139796296450844204724254722013916886628541987793766293937250986999847280794731460704263188066556397493029967901513689898843686563918309211061930291474503448109904310291133570351821486294905216797449895613043705188641627672875959318648798869498458061188219093966160878550061356882872712233436000494660269411405413170139686494124351425070193516906711588562986589278473399877142442564603657986679787550183082558605791361059147028874362783501513061554940006000578128181839385150142936409872659262814451253041756088203674118969690891208390600258913669523424555105042548878633557962473499236175047687860062450221993897818919876416900892871708119416664008418053077507001929836158691776751931972859547000321468061092580345123260394463882187130132038764714249520485724754257607939155601691733717179546742460418937588565340576475955865808997197439725444024134070240755270356527259059666548081142322917691667846268957928346403270591841415350312135881448776250083880218301854880531335596210545844817717485417714891888319833203008303103795728188375041219097873170813040230212855345287327888227686550447369956726632892310508092081075261267379413479187010595111766768777247399261951659013598365264205102030160037875334969056751994175828075551782930993885456492175439535097560731355036508520839000964906078847883249114972735612108022426433250641999524146900783934782409451885719856552533286723449091763670777641413860191014619623847562989138175104831774364383300699630612739593724696355053526874888986543948526000167697493328884011870436116331941224923290669343877566551411768695290188063157880774415817606074089704646801760926481186118917824552980976376194888372033140443746347319897946117537032935884874162648389537421458268484780862510267454287483053140653889345792007681561100107684326887471247935679576010451130160766110600472412575514974043986685538447112118309735606638394336496131105794098761623496378358552472018984818311080477957182572884252246221877033707875336137241638099561973629013058904987164255955497140263074847528120341187379808969285456836864701765098817716158123414566911339717273593628064184770632090434166491503631446084054100048559401442261688864010176476592650303789045480125385122603606923310383563218729843261701667628299058450938663306862675070664538090720688685781210201892265172183397505746505833937369017331626130226629673766398924286443897308202273607259115777607300877548001478006951274016446008669020684206950074173945277496159995475786881847727121751958350713095419259697242790064206617384189016339835578848790813128275437576996825657167822569319502472472579104039389240451872748003887215625507808900088300731336324757814210546694974901338224898456658375258219239697575320085237305309315905057909387527397675996715855073898098859892850326936755742215765023088216865347460226829942933963803097309114999015727797360275637707582561621083562290369361266843474087953107649693056483701581146529268883457064484543096480116033653990024466714933263140085730083196884786075333673888145891527139495362363789007118063813489576180656115509204278195252852892462626116076491865990302278247361057043832078767182519882794489240890415779691241117155032135169916319321884071900141378031092211512076693291004084885680552803746928809299922325962575214471744949769792016824861237176746527958560924573451483873590271139381922018667783221924593834225818313131187541696281545462498845485934082915387046326704575520577186740711634575472544729100193257796333351429133210769578157963727714590198860860228072657436603044701501317859520223423231821437146126682698335541829907596138074313752907653681384388664103913454730936904633479861368220182996491649450569696517985109629312401933572525093810354774275341919518947294382246734684383863418559564829392624740320996984283718513908301262078059567871290361367507090250360552439095573790263155698600254072126287171439934239003277540856991445969362147423354895696664263902128946181845477398360843158626669031309389360836697826656120795268447451385926415213671592738519631659110038187710674201866149355934471130192042967146773438340102357226246439742607446932218073929671995787147083045566845281004315311173016805398423717888299007651831938521779454225703699994956067882172940807275421370177665030969074118746262102237233284261621578659101042634162152904044484428795840344279255190437305165222632509767598708862665132636000529053550392980516088523992168612942915992952594092727600821287142203256618568970129309735850664946987771904708615258015433692157415626844391850254587832077894227937775888642589674898246297052587620572309214565842803800323620014257285403507382257682319401521187348086262647624705123533087524745499856583377287432651436317686668574561166570688808392858760200971438284468995872151866440084720721314718996101705963244501677617070434808758500087915994282423905190053746276143580833385646603179195783172859681008671860778074478639878464002591122366424904911149462182230214844473074789470583696261319053570477640370604532201943864300954400245851721532977035238180734180846861886028185585497810194159425156308152527754810843157054554753703516521180086275956684835609827114586066883800327756539767684461403516822646135420854288168825395990253175409660476707525057981952347503091620439676645149339686845054358028048746141271280829166550641041227379021774360923092725854093020831900200490052254028066303857096815849173897288312765212949770338513089336688689599302577337598495691884947322978880080285276957958955050564388837251162680637653249893567847367774065857832987837023179936770431314167627648459556938596447227949177436574089162240866320915586502994248463829239945355707618409706495518408243760322908201723649118620829427913277398648008871365348681363761231820998328415743620290837229131854432153947133456443310113125597648677440752875547285563599769912225410997127238139835499994030454494013666871352448886426832564126309759784173600735023073079210194192359610832273337646802342332310487669719995245168350696631319686915451215985732776974783326414917093181241571264185961019896174326216164074893363792841413795324040498987212419940510117346098071799272034437032765557400496931406989251843568907742296066545341063734018676789372609118011056706836139490145129506481604926628523145456394605762870316745069716219469341511259590612504555417137412792056480859569233032898072573973529799195923924304353738736374899114150436456456403305459555172678802275301977835336195347483914152404935758714169275634618491576980585214189408662905680926186102254553141054192078137024125914404578209561645892093158391643601222866661368293835067532373385827445431927579322716049142428370322876367532017865682631330026867202355961874541567261553816524144271561012465549832255389032085276204208731866093683147483949846228636132220410857742661063710371335548453713039181759075869793204440507298329414624502001736346721722070916979699994732074844851662711845279832880249185165969522287553972776880049364808783148911358069719508042416316699902674550417881250575680197290069274048217107644238432358021968386663729298697049130908022545552213443411593363443963385993346335671441600233156747606865867545875710569807465673504919582861324051721260216327596616378662039633971254309719830103395995590426388797277187294311781906217440869424642940734253293264945827057982158935024669135866468055327625101102212870415442548921930477554982827102711599984528595508503524093899805403845947865048141957268470823530770896144030133163753027334704197811538959240623909090966734355555326472972589324094127720202492607439902485827188684128301893268998949536803161543940556325083562976967096177265781825231994408181151689950467737006395969809720447740922702774982152534593628172444007537578583978096319719503514452013008676414449613251155219871813482820997997566142466253938211821018749506997324581836484760671877946391609759013368546434083991057763425032488786314997742928097083846837585427842834721113301244140983192424799349561473386106441685541546290610775987202252813700932452364394633710278592620875262135131519634113999834997016492256082457175357267552230879215064989753665805921161546672735663751722543029532073931369798348897359728150610840623200035147161006426336922935415818872224844150097232289146191852082039596106622298730610960689126578947812063292827442569800054877763086863879285939325803757138982252339274099080566984393189298721422446930502406031174331899858620149397101294377306645980212780545594400576210239841368339557123032589267311458827510778822204306724449086015590648457906577858782279571332827631083041107632148071639502287172993930023380627339584586500879931835029544625922026812203884140193064083427210772813462459539939172922140976887123925597392616817947271756198822982209451680595269811929078073795362941241982301352342864449840227793824227264212896529274360517592826569450099164125286096112227198876999062014189865238587590731855364778537749090685490306146266389330233454233722624138162239566802999393385785439557087122857569670145973219715005225050641799451854053138020290104473157651106755735894758235581314163162689693416147342717161608422100488504947315591503123090453265014292191807042683592787530682158865013566634852943625954126355568210369397944130639352453633881444161281641079003074431270564627833324112555729487688445367281481699758747128793912037420749554004749726399956029964405479677958037804413310097268579610345921059142273457437307048926224532504162710522356186517847579415412073629153646966685882412291410873995810434070006412147817551657354359982815874027067342895815366007808092012713636574640434498770339084997509561065320146406644827985336824561845304770341155922750828438831288499509345129015467926738157283835658760082375460896401838785549578797551739304700260076869636665033977069052883331597798854201302653868504790021335899190046170564204743983466999013784976202298452115478169286587875471710182746559534107144346276750214140392536622359764092948334685109019447918327166815509594194081914279331872568264601702599293568258357282769988438007350646132126772789094057182318510869353156791943710898011338925537183511579763862250818959877114853670394255419963359104560405702799286559364028097370627272760640166540699290215266222795744374405675338219063954957557293307332237581027840404824003839695438112211758916565453413792690596117938606646851020642423113310262076860370034897019484125733844919668550386370073462290512771552445939507834425923123956727357239223887396685218025689812522191177557470840204821547915690506369953676827267867252094128653110236182975229342065496059259301216370643191702637581360627883669044514090293085893444911222619329354025065413979753856437948946516885099527717743490426396061831898902072362108254112204226918836641014840963492534380899363928976482339147926353242355715049655526645221648189609945975396055160095554688351018127992442767065501918104757692167885452702331755965340186230130243107779035299410547816907255172308050349381826644402078612909311433887464375696153290358264796779456091975668810220230673614648905512359276822597935648619386360242347759143783874481818209893252744429866109856871870307869439074478612660846957393480386253686460027431984385222958882302162187012903798970195081485106742690881794319833582446036453761421453933411378801826360310689167272216580408741757538980460892258033591124852857379709637773063416003400654731460620364671971780561275627418765680331980744904691173238327652727780250283848799405830395848681019195390625413603960360631326617714579128711382209764508121306712366459703757122043231626441416553230761589101080762027579692277193894440504172930579563040601880947364722874661792282750143175992638135677610924126615737947207900474495448801553975834871797335114548833585468957993434006892651345126400971096323377425161318939652754174041835776410549687554698500570959105606341313912837592240604363076390897461355377791430056608646617210062224337948549400332604726813526059899143600556824458370198352099708224789001625677840043896551325295242425620197123768675708599934953282002864943848180243947777366011719358732256916365807810498660255928766074066902283916300637800454872706922135560956817193292637724300248582755854325530719174784898572505563825069176165445287280227321345487616418009645515621720676461173795837826041071546475170818385524013167370574408697517536289762449454034238328671183266422178829299320937180276540343817311847586141179691680581458391909712162787189490393013945652349247758644188102681646586673669969509195382004233412943375716764267664782236431355154111794132074784665877696613236492749429957204874079431803644220940616081151871724286883784206303740771156796251088589125244631450186840442670358217910319191022471838627377219722752585013427971265833048187961129942337428511125013961817470567135328462206171891108349370822075055158108112999250409542166487969295351981852382968719484321986602474467555670246543033266101609066410997187544719271689667121674232605097304485137597133643870034233142981559445974448084850966522289870236762941854950503705568440399571355030901486969221783360743378796703149044192356977008928602469561405136252654072020928525134111780125606353854469643789144509160568374820714580548964647955815669088739758988878720092568327998904491614804114571034280221209249257232050981443053947130599138154311495828161509763345693159427262637732527987047376168419089152392654569644945808958140007411619822360316261760726482997298347052376279908359427846076904462575731783292745692294968932393659286863786544800488711412608570503792836299375308216848942608259164147526310642525866914149640507091594667390013172544496627782191570252379403607922430636238922451791287811683967685558287623924579873389799600527299799915356356075723452499630731047750021230695862589038222778395461095906980122889164129470292738762470958161474330184994514162258974325959892962247601968130181473579174514181833420213764107986348856160739448242274745236532259517753800524415460252781639142932598802040311140010855109268149125792462788873294606324178343141207192271876191207863054213005890162343168892153384131593600108209873655614744701098037124269449367021815076688820721647220950858411006649129561495905949390144475420250704033697869375298119740070387881208801184382902000773169963052457266571745105674306517718571728925224729624913948313644443369880954579615261333333676728946262454712209032616726939116331078425863929835057579243425831121224298670235184279250406339682010630834167801569621721216661124785487889246095876462460911416137522837165437170522851042039987301226617146677158641720086636229197235175074475647154568477995937330288961757030801943328012012752019145493694803837133767339076156481149447482134742562373660115260105519955476528748936302776221554098657146341099089035332944473729410256467088039576280112107292163362575212391580523236756977853815941048013574773086518080132645913051117652696771789331846735796926981888980926799959027396757895589946042300981400099086228877878600213787520369924434095703688764325146608945955628250451823286350329261765940580442069836567823319065402738806827372198681422099604106283278814735430151342619005091225085104687111126509843157606273302405641827603539000131840116776891574215344156014317240643266588163572339532260711572216193661124970895970924244252601163100198663484755373644626739421853956290962201514746168461438333446148528932920559531646447491949018302746637546299120217789050436768048009312338157326051105357506341871124364424048270897520629119848466483817288942882931960857059546530656060675953929080724891511516956731249436330157366004815141878297769064783972751815325020649415993569111794979036770191408547715904999809023388119320630849497208678348996149493678447046094000893942661037824298929484086037941763341364389856964531324546575919887174266932952975733948832851355277004195885826195507515915069396659876980254879081895041501673282074568296119223278930010068571326750661755008952817389790063582468065905414809708049673366191029941966910361289913100304489755880108733981792132930336421926702749290348436710106727297060379457372943919575987050633638564886328270026975790257409197530234231088514115817368525818814477062114873481552183972423823370416521595152618986850881175686242266053680574456061458061950824000820810915593655614388138231936203705105768205593178903191814952450175113967339215081379042670125382522954939001215891959372469456332766824204374698885325736120080965154580145896373719624525831196229870483092886435496193789513208947740593085095491477633673676137786797469980146814159681545808402375148351417594708383564334101309168966593865431836014846431931055740098581801458927964089168751349419875363726835287042600802658635706319653497383320408463366793900440939396891210637897608511971970217666418823001807077948980026820675088125583928235227846727410821169499813402614183493378181665288066662471712139736342404975094118236785791173596079663223006507429250621608392648973434825847128838728304713317558787874198128204989797245593199112152863753596394216071507550957635113345056456884658326413929965070604025545055358415698199578047051944654802765525788568448624151932580948413215839469012666998969066579049962704541483079357988343811662773058447059133366224502132110928194474673303497131871773115069813485112761910342625097188481389207961837000891348692757549711476609362554837814956945088918053730264569947615071933451370297212380527036212421205602100569696501372448565315013716685887882347552286004879202098872445103160612759763333672500404348006610105294493199942361818454271426714672044413683712714587273067882326976815232119668939261035822559937483435787982098488957262689294073945749642107970306370973305769280123477339700516886119104626805249820724050533987830201247006500161415650287949048925323315771730241556044807960739491282030317739095433189166991567987853639792207582446506919006284191095701662429477407006533211497029132420496841598336949575054208571320059427182836239205318842595675190866479055791245940111334123357511132286546583902549106192091177186265985048247614382628420437369042928076008081058292168492015118997222204341985221589905210281439554606908348329989978675173847046232758100409891012049446590399321722106461321117461815884954282088988942358774477385406445793561880499229105730322913090391535309103225958086921170544953274064753363914299367931804113175124882834562101654054195414979043675712613360751569234212105948364142372495649289391944470188106608733767237272022338042781476004344133369634829518960149148162335808114208310763315933181637760265608199444391910131544976478743294205209800581448726664492326110257160973400339726148847430741194962490458990299240887643100084874316246274204375661418449236427485992806661995131638863101302661332970385801082433883935653577446169409593657542796687489593704801477534925857801959771954563984916469392647857484779039015348889840477158843315080730886998152579543623508645257005120205308341184154470129253309434454953044344880106726281249554222371490803777469398227805255433083031810465695072792219562136296417976079561102735542323663508074987167249829780160653072116019174432458374593217033082343211656860526786959528674155709900958764078499589271451969221725834271629242803652159388759557725527239385476296893676470430880362613175365376469076359378832029936625491965331373657136651103470567979602291782115035491940119190844344757891175687094420833376318746146630582737411523476383969567894270302181770343799811795104529889924644667386137110179848082303951604578157495782450970052438953425331827300503725987219672234496063599528595670135223640273039443499864713413973833993889946523232989255721785954109407899911266788563954242627869433137853426949868919620770218015855400161379151485879653198332357793460907774110985757983158656862217576573772823209268728150384604658754729579794285572646379825758706215003304452169098785894470328967763867607728566755642305321005120645031107073103669722959921988372541228671491050431035894815308420510533156631573441189180601264343475226498010554720534345699628361477779065066960137753864658792420377779749713547345367790614534649966703255001703820735212175279624119086024927008481279641239402133971320123068082918661577957288157593652731352251779564944074667595124376113109490833661086795020420999837232192305736734337651336472228746813429215469486289954301874729664637732224186280905355062199113810780031573082532121201160355317443200576989830537274053826579484585847259536200958044440536376667507971194446726725419159631225996506814921877772105956760975885128021014820478369148694071449158301888157455359445212106068195810442617031977782764155703852442940335726011623794528300015521038109489688791543184987946099144405872106110966727289122740127607429958310252699893964760817697615446488063510747456226576503085985527697535926424850973379687080858752089584610489819289265948641932782088882419991703245226299488052074159540367359026678980422969130390742995608520467045151112955428316492179082400101492328138848140242282870330768014773333069905013228921020308651477363654235073991502262373276399808514591726304528282955272064473774783839442659179882913021081997374720469970473706099066940031822325472679578909824635657466849169457891173707536852047518930534185048267139745867151932780507711809309832498115086555321009274700495973490855072269211320500923815134887403625151406987868019784553280678808457418462402500089311865154774562982233958539765850682777105112011204168378072547828287921108493750909769862667972900554823372346456134690138521668737184480887841786617357639750618953719132018914772293572746439686566195565119950721572517031122026211338705087603284669137504741762015658325712538216297025574473257864887222110934740465254509622232283663013274163490856800533106568893286446009636817212951030108534048879993503040386205126232417389129745337976269192375028868863172742607463074805032777040482556143315887856195214637007229919421798569899845001414796275961832365185271841272446685602974680359441384360272743091305328244559934688841828565570107923673821273589976892101169301260131860932467085640026908767700172724800606758592152325110907958944870938211156470238905736708678637492513662407172647030201104712231279361372465637777293316314431329594565907300432215780236819946757736500792844250760967443511770953907306304966539813016438292823614854015357971336973307153714643923597595596348184074631410874356716128695521476769485011790296913681686056989898357389264401591566145897970706677417942385684620864444829744513409161967661259623537017483499624992348488272054692552376414024586642773028680833640142182004436626213880590150019054600476925278991426907498471344260122191096501493793287796730492192243444708973851911729090145990961389105294595857388345642498476830934452754504757324567251960220729371627763907915561039542285136169393819968988882484791296920245087678738351952929427882608189850942524599937784661411596621531667084129918670823100409863040857394105591532653767163880844380745584704262344269717967455917425616016183448126999419842529902856899272739802860164193008856852066482411262509428774915995580908241492783914793840187910417946311494654696681569798156256136634310922521659907772840975599142184903935188255168307705976846256528733977525152057949454985323388167790398242519999377910734385868556906556546393529838413334590081946955771305370599590593717547914402140118913523200073675210540185364336063730700742199115111129616086185251477446089037293310725467925712933603034364648993168526185093894069375415836039786493062117346825075048416760241192719472716955153439895393738259240387605551738773823976266993340295831535825339948801920413108636976967315936541758908860809718228841100308793814149529968525512672219459480459620690711181577105654434402802724118627224424431191136918449129399175926558381961065361672884619956850053991062061340090081278160412586811759907957801425350478429683166440102232768102849744560034122398606703353889689110968792022161342721141764547774566669507160213641762327665556972190298801730407468066187840566389447095198986777278783450681958289119412089452649821031086348776976834900443241415637174367368659906386307493302104370134029902150608822004934658502259449574604482824917088465050046473717122500795672191933163433618769538796060822918603686076739237645451493575496301798855890803685937808753125089686523879022081432009191729436533783390008823769581596354403814961430528567232747480090817784648389299368478892882428326783324648276356390335383265993156829835108150904209064527911605484832538426865783548157000276955647573058394694916136927918578162446698036565146951586827431411856370621043479469456587163529536150290674359210235928743644654280602356465521182680559052798363222905074205552229742450761160274377090675889260358813699060687669130263593032107670642092654270938475189751221712388784177354361538180058703818478422896851516015556277132141146123316915380281984577699117711742052467463282281662014574943875990758363105584737477083850831596972847283439743731658899305566149228416638158574151737896759337807237033918177485810518000458925937313424366502803881766776579529693102623565636153850739115666645314355125775320037323590733980924058813603823732338182897973199054892906796739734264374845195799625972272390558628997685289763290535053363387724304822686035651726597005571600265315798756312527354088019978778071620836980685552490650583245304180706861315154224285219707368178392555639468636403160522360547322380290603660592935200351872421102139739027517764418139930697043739308248356183529934072988050281765485291875480592290821245590184896103559802781097548347951658128262211118958839069736938853944609922322807047148955650943137655300746057973721725710452079712885224723713311554407818719843021022291419151477439979968113599944523632687401677525326832471974608990554725473990048704396737373516196458876054262941178729322507934193187204119143934924219704012976631134618606289563342429789988709726019261507328271719291234336602552037758855842973607433823740898920895699588475588969416032074016353500286530946899892330163501928938215685934093018851079740549463183085542931995747933690748380409990893701230369087997259016716941272042937618831205191068002623420545820326947994883173167370725307676383331784154893281236593326951949030461924840284287521280094657719527984307646206253388337833615295037049022552970008811355793581024530023058449439647021715874235323118710121306874327736230372170206735997367564072340788388241473956601803174250422318033345003959039507558196935002479739516910699456493656265497503528223101794545376164329582406986810823356033557346999282016233445680699010294641565246444067055277335163364457428306659376788270673936681345791056139225032496891063218976147901338249115428433839665658635184420672337418423397226415636797933218475194076972313180311871799052674328745870169331216734728401612790361643347272193045343793127472515681744247835006650124158056757621532050009032755459310658068884718707871949752402367449480954617700390991509322027231444561182111496536637773642017610039967973933735339519647954261100043922307635695438825755299979308339866525044935794491800339433276265725392973488463401389925992167448815894916680301813565053001919321722447811008889301964824038357159937499136289282552599436511998258900730098479719960536506621053134133437929828026753616741168233598054663183181029383547858114910510950242892447281160827470146551286831020692400253119885022044698261487899616765518046071950191279868556015514612727350106059826928825705157889356782264916090598576508211742269803314104253353956487929810206382522357834882081158722195335717723414536554237627597548962475163214477941899038479755494999633221798682409200924591805621385489314594050699965378730122785158914495326427350328097028376664371933530739137939308149372599090455796718559204292826854281878718184487300655449369287885021851753125633561688809259240936373382728699149116826446600599663205643451033947752591349082736959059213847251761799514622464357134150697137208035794067091279712132492384130079171786028210248514620090889074011647489883494364805536391206595499942806796582016764812638751477025340731060912440600067469778300916602745595364586250762168013644163316907580822376266182767271489069192642238238495040542240281071421965885002763128057448575896746344150236068714848650270680011864387381619028560507538770175262540559873486029110441295698951709745079948910354358656495587475873221746644456335941008502757645492416289197237728669154463643961491990732173879855261930825038932551523033677413164463693419326185395722360660794984110700270683506828373546289728011662593962776998116915610355770921265830789384392918931358389891308059809003035087727977818378457615490668273425219709292739340197739026088695837887707195418389035696186516840196436297468088219224840180135480245041419700982526340385785871138865774737897884031923115197091918635066233065506563653671415347786027511146588980304265199447470793424760808577965688009178745043779390075228198188464521856521208754942458672899816318382648292299702577183496611812447440987525446022894731668025536927082545472491793320402942485198737772411832002063540288011482431950375355919632120612616193049400874195630841235818046927227998562701747463494164712690027243085661416427630792086237372591772657382001806404423761247343300625818798011569047535394451672619673458803089497193802080313848560775381783246133883580597782065556688699584290232030166532291711576775462852436422396282236330582868268737452431506622049709314404316758218912754717509600644566728002119817138277817794953959384836598765743557383626585360740941166067717513684451495654217391410899951201506049427586696888987448524693035591942762561163113964347978990718065738170119623853604717096374672758659567089365641010417925062624385781956351091618340837527612074712942298185573748612322994417231688383330646352056366940260028676927543766476690285174850481681805735913141382880814368134355307995009398088405117195811203677998398663039270597827903604234771910833390896665574422001528567349129780507111600335899461023241293820526563107220014693268034269142599785378431211364090031903123560750848531212557806801497223126961562992354333899693466313211659830762333141157071682020278819590400832662818333227308365018226909848803404622152565695669325871349167797380256043384765776279532968269287433399218521249010687926544847001417047124207087230363320948043077876524767747918435149574422232188522616183023884004823069102186601804724554649552250581705464210233521163499267102346104719906465832064306918261463258813834212077743788410349464167904594058633664987809936597620720693580542125345641820043159616638825520384953943455651675586762779837057143462466861719954895165742787506721307738465129959050387537898377508530133418170853705999920450885588632995102545826336164554972009753037763791702191660408748286829469439032149424627227964230675408187557271212835873766511939821874794480021654354154027523752815140904586100587092048246525991439383256283412380106145895549405400638320574672195616773950703736503318720742206108223735098796682680794638406294425381199649044848061310558053805493550780973381990196713744484562968923092996445106724288186279404954200036810786716422046975609584732955043123649133265354360928558933604796074347912510114682676225698428480319903195063738053790678977322800356980484479164746412254052260633757189839531103595321484746818511116863370742132720712865247293030040313502338704728927039036205056551876567313620461046599917166160705530254601627994648319967454404797854180113449483679161040763073589099482773399318761452314921605476809676178015492764404813920617885815902936272006065482201289399388585065865409807205587002958186110757553614915368158094061487246611339424441400035925360828363469674842830466383038257634714673105205650814311256688157942903069081142459733866817751647940922980225575937878858252882009022617720113539060927923192620889692894151914353394311715211446552948881718052987496124671176076072277550933585797418424388344704374282305450362905871194413152464308215408963740567052062166342982582754321527074214148138806935714107998626202990060517779616237486239012522912742602197335775876441889661542986241948001339751668173988882661952881632018863574881527405799616438568192730994193794059104768781452694581342167506857171056079374164396208662626578140266504195762882855744112048230075937985595679111258768514766589985258422727221185498818434790170743073881338706534048009048389174329787477306197105151430083850874609660627102560272105755367323256080747312469464749672887157992527351691464962020045824768360404650599823902048023627882737429045235571984722049592286676682069608132217560238972507434913039051063100094105017269698582857062564587070522295599569671224364904025086475454638812065503220363993844347201057655204689841972676752666892695055358941735750156583999654975864786979817679337962174813495763014786219476854468686818010362771338423685707808404139867755604868088018263556615811035774387790921842160978044777691261232715990989799715589265641443718615379161159021456615775886343051488239144964742054057083338200611668361398228084765992944271953555252153461671364928840153963887147818870601400729741884228718080335465772574025587384642488730056574998348072906580129752064065727871894849637646805656407052084863478379316572004559824937146996219802921517679907200668377614669497690271265027943563527609283197837074608896192531495606022345180339840886433326127903538723471774615261072203775197189300597868555335438996961558117169173274406099816422397056971444981985476562468260595821324179700019641770381808753049530120615501287185696154833011986037365373065616179234695158807623315238115095717345008443154972356627931955272909446023391249215558775533207886913338009025119673598260910626535755678337775982758034427070778024612515190115120774835455521393196804527319349265452789708877255840724611302671905607214069378086989571140065615056254963580850766930434648389363466705384882545469754540725500045983022299933164126719497183764688321322316419485671106046100030124557498121371373627443651608631814455853582034917119015757227058411115294126877136180242677481099820402078273422771587926771875841475580408600953111494598160634883212702671145949253121571694036804932239172561969165581133811456629481558975274796669511441002775299253055989062930455663744233269060168614062847732944117750821052658827366882845796155995318811088479806876603290942932861476387836141228935880644886895314271667111676679333078087323120813909679618667095878456671247422858772297530215819195491675419573655275122430925833895850329354285491252265286779585320786692266679749403550924725436621004951551962097747983230724464788659809201484356926526468701020754585384868743811006866111136315883462475073101454112258445694867513548410394852890260481153745224663537499354592703526953292795081586027700667988628385832235678284393550755728807129621512129267421285915584599488763197395093591006309982889831525448744421474092091226185778771980830071547707400724814040008619753245089920679054369653161486111941105166909468914627546223169179791520028381358630442879944811922147423668050365703046830811792856983316336380040985079468151883010003847398048454606174610834641972925523904674524618634734680667560896235347844300243226658547099312073677819734336267358457396639503672513075162240968725251172754067192541264627214186359253003620149967921606810533083643361349670109393263420922540762575353320408161854279847613240027855498737097365929165327783308070041169979172011051286126142441297254067449413763553391398689253267568379740750081976197717814375809064930695700269650094172119237146709951830828944064881222649609370151235086762582376286604438117097113571832668919251981085243914039661061735581648709620297088979967619210636470272723388445873540205799780960303876039055872028588308762740303009949967616571907492575766913813263358598237474642560313941129436720542398554102090391880838991787533999508873790858409006379089632845116360546570829397621306339147343108944529604494053302114245698671717713231889793311952874566686338075984181834336120115354753653026785903688005478233872976857900582555227806119660785029520927126194200695198976578668686876110054615761866772871037265838521385224167742826044639849390950098692507554625486052403443375983330970965833331911333035628607032923964410534135694773654144014511346310984682000400160631712718877600291410620405091715900009121422995756928329528005777383539006586711800380426160286606844358042892713216361921277012505352222661818409538737562534125682204884982223677391529898800712136462464141096647558723056816508902632361322246828948324883187872874503735065080635280774692129458670341324003691736372281685804370062385804057838590416022537201331228901315483445042964444477620234733387204608463556234020595200975977212560651144145434327687359452657057842400171183052382372477239091576183744043084767333258184399251248022749661458617618202643845595138506805856894958061330334275031558377207087618220795724160654911560258126345430590746806059153128220685587003314279337225797940597789317792719084500280298979149657994532798783483341995651996404241066319285731241988033694826589891524225998212185843661778288132527795101260058614937167841272863504092121999071871275846730907763664341899284024892590128688411868812112668300441993625824231405032434270065662335428046588282884523460903107607686780242646851560808605755584656698335362636110213805384412650612557522582720888005045667396194362701296159412169913858640760115168729807097045341547869043116866166892653101141179392223336111310604085590078622360754556093722627064971263643580142995986345635363587901539841676335922206685317310348796168713428480351434481712230696402859956642739812620108062391584197151815019463835644994572385412509448851498212218595468719063996244354541171038050456760459102685116769506337186646327108119597045065588628231858628696396216492173897153074193545288976254140869570437506755481938545165613933950120078668462789727227782553705776932325837707304135834565742793649106567355811459712569056234623671220226908280257955949035994179746684032043464848702850145401062417492845162877953301621487553261005955375072984046551728615385272789531426196240707638535525553073915316952066509018255028661941458390311401685575528590766772991918006105230216558948225921199488447573264553820591799180982608896287431865736037318121368749545280696382520280734875435952673192186825764035685185408057677593125833055566508796113883844396186292316296392542106946389274390649115092546345380466781071166860131583669197886605372248227846137105361131385887850894163200964583371844439171620120189080320757485356222576190509492978604870446872386418758168994060906114994738258849733408500321674197308586466081405290403137684439853906329477848387557723295390335477136526829109043265853403194756856556137313300580279739978110737105872967696249950329595461623032232567688795753685826165682795655001627506075127621098863876782584819434379329974886948763095963911388398884544541373275294317034411789125070526403369735220226014416466719662776729456364140191893046913449394432563330380618172309423874795655004991133280569027505662247042563544713611024868481564977309790971811048226602059718964232894617262454128480209777615805808343171417937255923410904933274741342989993340101724109583345611376418449470156660970118762285982663483576116096299658723330092082556294344355679394012668993595106124093742627871343495008374315497367338967050073405444642980799747713083058315988976846157641841231715365575258922533200395883559691528796744557015175818353950445920004858749245534101918641030381430394787758780196544971065662960048974572821076577345770912621200260410948789153683791021135575077503360451777611976224614037786700957942362041985721714270396875593087489113344203417418227365009355963730091137137827354959691902204296460948871111141305527946479854064732615773105698206669927234692165656143562177741740904754709769097142236419483674545875163817556226096467827135200688512501695950258447373520197260487152369393516428447556139625417958722484765276909679549449363083922440566120785319146167304123363415049203687601202860352405477838770611333974395683852925014089678777203283583028205391337028928605251091935452550051797554965560280916171520634885609489950517670919872955854260682531270822389783949657899175214395818141134075939324021161303001263438706774327420528269426563839112920233718218171070878270495186511703649772366070107797411225122977679635057455263563736008085523901580221926253605005692868319635659482720452243446329245112066941850277479647980192452540914569458789684009736054861085671274465110132319057181739572278711060243039786389198051937766979779535693923508277431614758924902446914770286014350714395175835483321594526134780419061137014604839904618534454980198208636862618345569223513371943509928856769826555666580856882401299238042259407239625787680699446776857937890665043716798792351830193345103924562297376688378766358155934569801819159207340278705479909642454010455523571539471100641842856725370639495161195850413885026801739986383135507967309881525268642811085906433682977180774065378478990477148227701184122853041643009378877011139254671433815477520400972629400261886499866042886491040396639454239586505540481413309586623692295345381068727896154067867407090525505478142613306641828146530672524171385698008381533798458004930360685322509821645932048411167561047457117006119284569339334022905883590184736847223766645323537565455863435506319370034310501097955017749323503454589841591933369298971733980743338364879264328867524284628180284136891021466162320962633769394364560141549677335679643359957273514503427706440785020616721532290436596855862548505949988558197452189239061444326033253599406076832871383740824825993221063169696778957966205549308208996760605016527998741187683542882170043850837375914226798459486874132650289962434688878646613366020824661563769876674767737651352918177841791916265384086643131882117134228629560945181415051039246564298551324240602818861235230323020144533755023014169528454360539798026022634320567388912776486478538669521944933772586747284060413180194680467359497227503967521268329960142425603756480991023343094451112446074936321220396318646298893596909933600121686750929225059955158142753895688659156811137155904955646106946516500657692970505499693433591707366195528094749298138608312032876487613838865234092735170534000638628385978598379806792165370767274886369575125565271751344443593893987389592349446231167085141246628661422911231782034498445530642587945104764371695671605851675141295175175345647640538506233214483376904585988802370314499449874834796370544766936251174128128738212160535809425257974087015396136980316332823090236594346347541761347062849669599507594328722992306939637612636562682979031250557500998256296544867754515677602970735685869116874401433608287103916947535738018269178733483794937360200808745021795699906074231811355242642991785674324054284202909512313417622405476005886558619248113251676559286357458085437807458045568995307576045830092715751445190645381719819948813294308126082162084818881902185382426222258046521399182705583416213870341725559027306686952837500459441248726951248983586477913015845846845168219646072097694362121370087081183638654824177152809995569639759111548036303632962638937702283655664307438332165479981175132501094958433106139824566597531620024264953585825752510705723925679267743152432072554822620254225816046836329576060022565273684824430069663700072881468561498497713458417186111876461574283062120886056598337044499279451390558975887304224320719135304097108146784083307378129360545596266503692439371160080894708044669907204461628708450535843503498013386295158044644448207670494655920349590599392071978433005663507585391199820827158675358263487310679336983308914222380267817782806766486419281345312093415779752384272706303760721125378442023218683363268347516789310060376761885513465938497780490144931060702640406344832104980597062267606603620253220870587800483309043420115991910179993041094897950275531320935347784571781207580012122405529597394898487590990908612678639662622832946856943493491607762293108877674800190403005912432902436654760580762958422639836991191265389105637982142424789476673611061214357583993462050883529117882032005604763613817838664472580957992774370845145506700306673151200621334261595275498294778969088381079862533884992421538782414051913050370884008931417074044406321727410422764087592300454422891797335130000227378321345840188487422204044983264474178287513947808347180872494164080470099199202695761480781266488085370219820629681992161262778967450840554074052467814857605415987994593382206803120694441051352566087586804434763262787073492813245653438165248813454185945488901371701553122862679715732289936756281277176742200040229856159234510482773291719690273402764912936481989717180655435803668298595434206112682959223180021031724366814122851214341868225169474738188494021090564366793979193828129469012517930428626556123090763347891506785330180980651732399236915719325949746685945144721472364182179715107828581113520084188225842394062989677570771226737482312717815430850021427877611854100318747163438729871465214822063892970740883776597753260581891375928896575494257123133405973806041198915744901721293800669536237308649616060760916047960635149166123013874400096225678487017514547063770671751279673436965008586796054204298010978617437782382587856296006519346998789311608092710783938796757349429990925583171398379255086636051136624920863584305570618234986159454395534455046345795429853909246031858817557650731408116328663906020143848672190073114091701325771720378489924519926567213309838836051781475865513258158437690562073443217487372324729408495977764525687490826202704862760620351594513583094713248702117667347856065475625437133323753848402128170686068542440243812835443817518926112126304055164128247839420832908252289324215207263159015919213310470543035599791940707990930528443691096232444465520456388045088641419691452741316069431370641580673872596689401980114000446146963490738766925876178103868480718252083668061038547986876958039470386122590560832053190515596988531989501833258169638664664118791497217296788426790692911397764049380115290996188512457189713438384547066196192971044689897830520688910747874482505312846367418720287634673799782252301806703989370583504748180490178924364881740753319004216896921591939867727912922567181966534794691381794459297316343633684930457832627826127767149921187569530495534133770352436929454535494380544391060283836185433860495869370047940330992839401984227850353423788394990019983270762601967400108474725042288502018805088747490815442969182464466148455180643158940468195651239786523989048620122484009854110120511550242269474408833756189906022662860261406992934585747796892292956723955512937788235339373194508772346589405169124299267576428803043456925870151377335508660031763931836255740424698387570581594359192410808574724952342603152836597302767753835703716837352357373373705750877346251051103453654533969930444200086174582840533882730057841834988922485208905761045483345199312995470353096058601201086493129382472317293947427430306349193923983671431055805377583607843984740221751630339485914954113638368316100923035946783425901294426592948320718846128962353095934751340127262197014274394845328095500099877200117743752530589301076470779240638152326731446593719137161819852332879071985713506455993695630457161646170001859570769885041252311593550537633071504040341810165558384135931349055646120606331818989695002559064605296676959756922732916315634783492871703462482381571339092472304782127363847110142995363089839039599844506707146021947367723111650951266767589354421456637368887749750886781063095548830594127971088698414298617370813930397508734883490560962648136380114547472630418645374662459694457037011295152316797701915204431649093651829793922290310490717856606764144143141919436644923166364626456865063816438330465388978560551318797723086598158936565139314535254677911756043313726341850886615153041665780562753042364456170667042879218183840826182136888423066698195050140763641099966136512775024534457756494986586466072536301299622628122073872766990445566926009168298483962511875581085260825979931831595149345759448534854637882025863516927776468814143945688254406164161026482056276772824699338154151566378185925980494244026466363637840028005237326611726716031217770869354893802558600277166056534892617106821855905157173680521869288358758123263852874871998893435033555048884638178089479549141842089451283468964838382761939362048654205654360266959122288039385106076315252206021527916077573459339389362706442018385577002994765061385539948221668196405091917452866238031724556875351672552790373410047227546173490127786013353791941006719338526730221432804585758092551610820502405155901211183601295872565106182040599024392989057148999989102221270369266949030445160509965935870572656157581967368339906754001895369287357741174936284036621843800129786698749869736005140528473479982376331183299136663142350072278270139268563540506503303779084497063040779929731398911602383933983457780743505438199847839473586510278116544711115752430492541672105637317371556679608586007882953806422258926766045251599419432853992064643935712074499214929400270988301336491542301165456468871173290570008838162223484035392578689620899993903623628488428850130459082264970564049820392231968582162572240543907301616975032864605215889437348338435060604729473432913620905004992829689971676033786588916791845171746234663529782223969719597299685603755722205232442754905208699616577128854225727101982346373653720926068579043639475180474730363633415374840230017646857827685063364564851784479949975665032948118215062026042459779549842412381718828706781279552017367588392033677368387253093281848849519826344655721106099683663781724838546787561852897286113627784714745807123070667950325979376742929862127610805360017007555495809614526643965926754189267610067639686456051644497874920254502086194062669796628219151862420597922741970020874250689596742753754089959344503344221831206705304233582000764116367598287707410156876341646060812066260353651268924564889901506801665033303330156856793963137867876076646944751314132481670631452228480160172983658794441909565766338339328040410935503849351441874181725825115518277844940761025141929021964597459146346232069649299065749065391254221305360799228326539942642101049848882814519871643072220833573887029051684342447690483767502974673318107209518199071519354796274121281469901461399662513000902803794963236358657660295993660421503139065557550290433084439315072545301218162940036295649678693885955006665328250996698681434877667137516808949207364377270071039646918243841658063180336535724589784771484313680508524138107322483375079367673010499264388285459359827783675073414897693278579644249656986103690507756891264359720547442341007403663311120663562553823533889620008892819716293184593065679705113677401569945078465695051855012277211644483723058769897271228579042449134089574799969783397200885638002168135306957645892036929094046696010943401921999207471468414703061187869023839714973737535539380685256994532818100621389423017992324680865877056940603969288371452987276500252496635790087660373407809885372025932786976350279552420854852733794697843360149501755215905241192422075659551589395152791911466835806439764117163070139016194902136471397211491963646909027974946500747084358981542502268272668965878557056976549559177815892121413975207477120572159535163218141696979370482504877595835528198472756190281379040568394812789491149591149693024483212022614199959280436262718869286447182785152743766380888791196898806988742972757411841682564890800890652985556500658480655089230684023196476664788687540266797547286418144020005906242829675822314170440807574733550148428751914516569376173532912237067289615605990248596934390561558800821338831174211916567905780970659942525175826343788846530941285578397233909854612813406291743117120255157690328278011766035316155154233703399544663956619781464904247172048033764278826447004736785960999576166868277544447144542676056072249556784975304980904625321055626311112132298195385026840400450144696228001141295206093652574073402837738331757569617596021849068540844113928266943268468867058074815090958174425943773769690437453066937002095337784963684543976264461857669330869288184440354341834010999218171125250410718916012430766364610663247086784238944926089741857971552916796878689967244844944173006822134723561148308249903777095442098713949564988257485333668345712700867759730523066674351220307162214563139881385805628748865047355770928651175260615862745215917818436358763506210779944924458850689735735463948707314982234585149289303494877137338610777719603441270432958529280928013770781692202046630320966554814602351288039450266570435926080489649113813413644015547751629128507378325033923446409852394925479923087490657352397630653062391157744341887010350696477092580471001049426000197200485881187438856346142013884869928661422107272497153902724195079171695234373573258581615966611767983832971973564655521399578776772000647996940415727987941481179098681198294326492498808954485206555238131569571107206878504914380551956056896513549707784196551795384405682199820809884904985474246367338837085267783557106197736889838523628919350861022280775331790727376394293217821031137603067039618817146671715680385204253135349106755749340948655939487566280667704991513837339617344693946310561979249517656956375900350244125943827376717884395750776990837392954099177753488642763626055666857192310263588828026934631745886193945088083611866036235774952075737133915345472242390269563400310699708488535322510539162158686480384889321163016178087230880873731674461364158223960493233527438670334480928803442268460960674242641368574453603600102543095262812521868194859498798092031430043706102434477669645638646917301858534195117865415844534066563427092036244430972552761944604190311260546958882949599087476105216586518742220537865628342849364742999078567903892558107218274234147349159892067222063128508975133496874414412172146556033250932537083479136796783875881682763957561861976847086587460171726060929326207338507853703811190745106176562725053497671869588332995624192547621801649336922625582196438003980038504270530583622563224159918468421500609899583435007323670727965456235451149074993531600638216303781291894285610921176751073983452600593571673914908706599132081086686268777583759651719486508547780078909632979483403686569035016746154822624574777963974695971428462789508207013691693428577961067863889208521218875104100526125223989657099987390084285325115192056937837931130757836986087842810638450891476513894845662492636711429994558422674038357371968986185924567959247624622619744134715200181033290432299161102924254640602560760026402027956218564489338747504705900209949102827559528854100598659955154491099047248653845484296494220908205058045513104783498980563802687983950286722002709666768830848743443715094326609750411454035071544065820213311848046019134557660885241342138849341486921948616281653197840521109773277367542674233040632753877525917998117868975012170309077541004939876054209973717960462341413721533129240629068570737242199936767326230505437782528099790236678050179193048522383607375193042914148043140646239565810968425985567872212491311303186126430500382534222734421656913806283788255479716637342964306775213974896258734824802332758148105598808085805764477845956962766810037088467941000717829983583216306633033455630076397379089187210410711121246627995522384598861221579534259157464377059924387920245813957359992278174343372026132600969283328766965569316470977250963314491565808837722622529623535526717989966089754389109914417287819917780199716634280920738981924287902249783642933872311140959287447313396880289731190777076376213879904817292423057682183346108900339976688202834695037122996788259273917005943583699483571149501676704565000348997770727280716833405736084318495874406310214394756563171114396550274728019584570184638575496397002944409942642318570225462555880436814723065662971768427894632247521741138665281945247843283786661697128397503288181305303238701775404854565480056442013367090563400796843515205915344440648274299489577154858144740932164657531121338014868241369183239346989810099573403794049896460033113696291096010124762307429391786111233773991075093195138636997646915139763037288793114873373772446875893872838823803021925975918252243222998835683284146369265821383363313174353335104264807338309256853958248604020504997817165670900225883163551101053143753132464343233199382073606723259300037049022300735585079322411058982967473859496854609114604677041594711064837727758934899967801183088917345364619047425918584368080283552341635694358989024030894682413305474086435028440864513528556187163664068398365973325174023625804758049453281981850619965311951992033238215113508484953464075433767617143381806198192761951351402807833780194834066552150319749723537637223671515249568496422771308457256331066011367214710857150700006314890162722934244902541914845562830776150638814173738283402714851212472820205962045316507330544395238735422424562153674758591808944756999819747658558721709052418827752870677975774724712772229594512929481578718764646180809692458407591688369066525859694346423623390432284942984784672759384645762435495802363756182882336890438312490167623631386157451609941328189097254310783576252606212472866060977305819422651034670675601852651511594824197778847373529639678777322320991818757079593510101074640288205860483910825366351425590962207950056504781317229618517793541484269611804933490245263209755556958473817758369760108865674700579184045377174338358651551992175507233732000363527230982287154177128439809453403010520532904708373093194093578763275701290768353714214808011965150106778178108503967419004828338505071593183217481706354122266265218303862313340617525216371155594795086833025280382821236559564460108517676636267978620291523911678860061759539738851484413898753825637409369615342275854565018276461266504954231296498424944132614186019378427239134489953402060685350343759758650927962678505486072232220944141585020751937935231066608685725503691331361856748253574049932880576619577499351060837985149030726543997495767894625485472012976058201480829619373938648915137295710292718665466987179041727221915773815045038453415187932487680379250706415755859951711863299215273403028477113420519060529459529384093074514798416985137927211625768194089030003816781206309492260420437000285343700501186987564944116021128821663582769422843461394054673320020065642086240434353569211063269960871336515062364998910930319455851492632152965282327430918774155887574200365426877987453969581349269638580702770345049856040540580255163177631031353038402308060235909192124257504757746532544379625663688903273758708199104101823097649214989102925700661900256648858663064392236020857160494160817416487040654468785416383040641848378298184041183111798454272301426145197865044087384960918670612663916378055832248979375746238986517354249454966952968755456303394361543729469205773993313226066901085278581872730727102144654499354392076433578173731559488052062640075556393256275079103852469774915733368981435149066209934358395848862755829812418441359578881606810350566857061238781932200482599481143100637422438609469863074068284212182832050848691448162322549154119618174066393237650750720189291747285487914886197965191886381336264705395425085495171317828989892718805527037307670737881312256189592014313999463033672607688225115055970517235754378476842119102499294274077725192360086089560739237441144516441219616994769826593367531197942023232814980135834776858356006158762755607245593320881045759805163015585041356139640697225807596619871349478748066550168612194866632381664862699882730901525864716153974121481140678978772052194211539271425611144021442540908047602091353807776434072017170174627417828739892425818841878205592379911351072400888601835074063169490798292104289185247197898474077227059905825342166684745657802885449308432989676202433867361903400378648524745922213914207320734401554859266673572476464945327418395473453983107894316917576360878868909092296042687280584587087146135525241409339297328047479069470269575440042827963625025144052894931485423601447159534627390306679226805790438367621136827488055846934308926619017488307018240936954671740763857837713200626312123828562709483636470535970253173508951145210931600437844223628482656593073300952303682382520923889881424475433261159405934914207303677714507420227999923524706656285814609121921932193741891196511007297637990139403953537844592348097425474633465181854121925462028183022287429315368404485355296485833413448720845543532419719777431821561331476120894110706197918307437410123570272366324012227206130719009325058723318550820175726141996538933455686972367340809610219357702782998272129937783899760795300244371037982051517080625162605890203872692014347831224062094205958380008091409440655497254202025573308901886031157593780022827324165650218616405745019483478137235199407930386327875818433064994122678268444510930454024952280148657979549984078720529744395153048658928000038355080695056465662337470040453067297184929431659879200522150788598222952913840504490076428810756367417502865132855730630298256041693889464501432202400965615756948777072285955802015066033181952494242068315348809480132746161200277018400724819554848159768666067787117388086080861454596611119035115975039215289085081690835896068800822184622238265303795500954298610571755023143406523178341401536343322150908877097581978807184349602148288438140536893281521739816087348113402849935338047537269923016329097942317669758759929275828007298156643225272429070397392376735971848475797473901225806323649948100687887642357393143789678245722975785906279554209428351648716438522699422788209723255232358338291974205140975294667765942829057805847026787836316950144753852434849142771284201405471376428966551509305740036500247304919922617330754567382259456897417378187910170358176532212383766594951896453321807277218901886535235867130392272184507548025576550765150939793032306829108213361766559345252757133288603651484150797309679891581852478330382879955279917186222683052437489953919154786508663991262178867930037336356324180874650905282406686825954934392034423302556846161421276100397190862017176455826399208276701606423868202353929871598109515299855331821514620181409679022766230169681392738058493730504435538306926394326582504909839137283994571145489898771263823378210166843855127557075912345516760496700705681706317360929210806195553077405627202775712876254078880886879344927659689693463921775000217775327409316291017574719900565085751753163733594902429445724145366855598358870105093213053915584810723911284732504433910100580399631872084747895142524156219552569550683391463409391787445668014456657200787135811636171734531860590380909793426966227160818902114336693908928136902362533816678541184554820893292038071274126576351453707088559789166413342441676231859398500235019043091622862692020457246624447629679075476627674138228125668825736162648837233000976207577043097721669589127756879874455046288008163456687821265837894934946506216592856274756144476518466067253648463451675331875255727741839568473777208998331763788904766439291484307960079546429742390734286303562734416648116365174527586101384301066729772498887544688476500004061654857840946826609087103076817223582484273737928135917833347390376984714403812188844189497296328557011893137175415532639806874170018796182599199869555851250235961418567333292455328482509723257828549911422913270967706682690608821689336910945185423022151036963632591485000595445100113099950025611686398138767841453683807522476913767617497194929762336175759374315318463146958048494710639681941558466236168442953187228347450647728145926895697269117787628013666060842548071347987053601187906924533091960947479777064138837903805129266829163374119824449943663488925300144981655122188307264273842919170019511158067285419615577561165273898480343102096302638294047317364524997231819242621860145793600109283465843725110029609503876095320138763421468032015861304413665972554722001181535779716450219941651077212068025049481154328721498722785531268864442852849806621194046717637113164346748892465921807510823887559536597308612451393970059540879333872596525782692199753348834530553922678716949538921508052115490073845489158016566217870963470613585521896218036062482975040951828260033007251446227139408712700665079815687143628834248076530481840573890434044410569527877462786035795055099946259719180904389522808876784712458945171422018227880256912910127521457715181079592600299295997446941534910193109344379854777389905897888325399312877049748913609965845993601062957555069523606933746763473556705554064345992945372765021512076143265012701528240468638820279465337167504787150962835801702170825512716962708428348708910001001864980160457333843568043305612440152204856293071596306083592079023998217020991821069468828466694297510954998375777873659274622727743182031879597339148067469556505351998240812266925030887794005483581118113219983244599271578874808659300455753420909494645201229629792617953829439178483012884228311155795640594437066254916191439471775784526640957176761364760658122459525894297691252725009393526040415234115262952635525780540099982754710815608535280741790572524875987419760420912052948566750112187422973457281508343946221633510071291214448370559321811071670251114466342803332197947625244065330422303907590197754672987347438458519099770123354892308266432391160399726216691385778792062272710630368098178661751674494802599685224811657291661520581941193943382099044453305551132330906223070549747075131672379777758498948561191517110637886483976772514542924596779410859088074254780226491920913105307227446515359969553599109564343535923550417271127358484780184161088308162761100469140805613463871913702783858903399650021668333538673941943625812173646535396422718651903804346181946396993967245443297105536360702743786311411899538254206200544643442366987391046489189480852437548560189522673781404090404732529880002733199104829439459469398894105043401247367953905797975592226577108924031901518785028358366492607210597521122244714311201276056808945662720136320729283737519471422367275609082482455259020067904989467964670687759611219439114216172038153418374634791150425344321216995209319406763562206196415368785182396327183377682296897374581703643868345736892185376451173914996912238680364412104973281435445759678095486736630874100128120196930858730059595817993238563795213731138235137299766402426211326732571868563060413983522797650123264533127992743514874555843910432687032759113531552112383447921063549041774118932953992658525916395454991782397555095596347301766395162463179962038819352599847892575114171866190308129830224544332695218690513571229827493285113444797720750748627018034414583682522389560302207683377652427471618689807402282983427049381084914294650317381772877373478156917593852084895551738881212920447194267653741989179117525613906622533505129074884977794742205252192132050180169266803240072587372906570349743115781634565701516740660615363845874587736969005864120897844582552040049079896583512587306563333487908205299077587349975593166398892138910577233647771190407190454726662016580799001944523586598279317530344363014812350688190667866264012764964719474620699179108498045106088991269543125845363481082405779109499991265058153583235426451617012870439943212342471316767921134968856580850194345390219506210428660151274010869503068296551283702615037752044142191665012867448345404969832330803971257872852137438006032618616756625042508086540107010386956418858561588892563407398293485129291831657669645198256688918115811466149545546029553334806783964239540922430672056111093297560440682368391828007694910553363922362791742075381540481794388238978359733660879840855076350923040395607298856198317405610191034235388829957830226272990755037092619343197875583236727664768583751765223728966875362042276727924181031765415783169431115665515496020351342772681474584459951194924728615534609408690409595529004131733757129264557572982095830048696311092321851266328080420584484136704253607377889473748774512669635530208954713584037648452275206874510755644458674767088322922420825592190645869294814345684120626143474215663478019887003452060006054586956837507156103155906105411173717499308350621393795790576626133624769548055401679780034345097889356506962429033547471613675500549246095393577769005050612016896681205853237239511855938931588207425652490871915394016908067122303301882966125396854217272670273589568216419242127840807042456117545376879350629620375868500667744035288079820205150923615015143486883151268855176853930640981122876326711222841227535336197433082205373851436696689087188103997172723583476495899990286533895941916289069138623643892957937536718877446739204247572760861772698193548398732857919782891432014843206709591500751753003088662766366689253944872086810881980361879945961303761239775621185023686498698657062411917070779943020583486257380286382752942412996063724776359475887142790850965728960577601066631788513329773840417683969967869969256685227832744403149559772949684557349044480470553891414743218879688653894291986539687993084497256506719903330511312712038213450693369762848835493847393836398625224142973611265393151783362491686697790628476786616626232652417216243155623804494830849178201552523302302494072361999139338717277991362643727313865985027680742321938007978508595318575126576386770808827441924099369052103232043791848591882665114692292901468871980364526712315040298053888610630638991487104946425307903322169786841720505327257721013857861454391072583140240743537344887270155922434443181980473908361555265740613039972609141342638005751667396193809580425027614126217003584177653262447137247550394380186584433652239342575234648507687916428855917403583658601911087251280871439616199422473996159495735921696009849496901876691209563943828160892988777940562390158585416961352306246889392728430444638127558028732570149827780882224274202732856950606272399779837099917688051496772555398295121340174107492449691568410005736661745439225334345265778132497822935128817254643281314752335087084369124760217025945515018099036427849842134978756970380482105633496841068610115943030010483295215656839851210319050656580681550798233344851598526333559899186189127494902644449112250941398515973627613943407905320415544375168813405148921732880863232200982826733441340767566902658719226828745803238630319047059431496333539951837813133191609143032014767830884992946330326297898892199404652229167573131734335359844477832400961362696733718995040758208931015482280938677617767834298138144458445906793358581719735988311110942683182187699225625910420891427848601576973177488845774137837076554836833755737907717841642337229266109048731242343454222953481773063232771388895981004424262602098034495791321761494913132294528675754358777190758232419597051293209048513536833166788116467038267668187115219847264296413271872189037261388906292620561898978799932067813753568640312049669076462154207926171229037235967026267917702827418535899227627445345027085723999856756591264848135536646525363445274999440929391287942423534621893748315090763638886208118890626742084303770134336748113570747628725472197699904127050817032457461152128171851977096225663088861658129239824434316207282779815300040507422060349589359023132236593421972306121477220932047593884907745246256586095519395077878857258388742275663342577575758238949114638037539902138296080425906980566960060246953533506277354741228968993749833866722657997304029978116354354761014953717811110659248525454302969643181925435418657571476494047589915261283279492209903783821871623428175805933442363926275570716638375033755987951652531218562090277594792509300069171199097428269170374479722535520296146270569925528188250068408883774604090072829580585505953730517191042858495425452365252436438211691706983856680642321058851196906950510244550105127386993602981797806422619149529814514255990991650424436482627040964366436909575431913030163041107357005570168958895987092118027302823871402944671192617022127819861247957105910772820394651131682579068971028382385146849191717428624005027484259182353959846263645863967109183463286077951464547070489450230775463656114032869764128402485316376418917023246969416628723711003958080774647683721009522438544379233255748121673312561741009997829135334298715144906403760690068352434076506000920596287187903160683427919124259280424249078265467540441122840416498184593794303760365546010402621934718089496799920621351926836479068104388822335327461081044089809469326695707662068696424454436885425311388804332651984181726041504588525524028279553214070735081750582766702008554953837271102529541506957341759804398432525348054521104628159661601114360942237633999177069893314207060292500124372501322902493437699426736555273457845470917443981447480550068754765493262398937098751848295755943418494353862552764906679759184044352210650683791523461135164704427441386148089994414034810973279271215662823389386676145591856201097982426983206232583264700782889355364782039529609135616731894106071454923909981168589044936188716922211348344733171777059107995338021201296389222119314408191762258884839019326072080621335030545263471279525897286763164445759243068179706792310871878542761741480452655865321298889742276312617740862675441725115047738640092693149391032137166042009118400641574677217519670455097621040221648755754394804658958420455375327529805462942045887742947053467304031565832409646374057205459992675084793311060296693701762189896677971322270922425590759355303772311755542428405762405561012140813452118134335977430172909814234263638900250695882788949121917335380444341925265646193053523189899068519087626605244119595806572257213158855927263732667596198106715781796288095773412168549912952604325717542121879337272631645255927070519362332560553105512795668977354752479192129870090527312254565497345773685718354790886919444971769984434834533334867698195369489239126806645078291572423389133108726970984996098703000010702326701017785620794135753448871391580382835654654323280910267770348989895102452977667257957686304165918205617985034587772211835256678184027884562193912817263612713485038049907608679634760264157435415504617739568546603905753818401528554032813464871622619386441563108452488880731649624875255761336162204860541649326047841504888614549552785065857775435714772069802766309597939133678845060226555243249247134912338080622458562897300049720030329609514151807287760587642713551033575433077193809086688623893891687981543446547270786392005149800882088137229645909266798314158404142477259063416846505098907342954127370002199196830017873834599460964297504311511579276872384475025861768950625803769759606518725736034410543668566210269849184536567540904643842779717006243796301249147246095608050457448616795465572886906582943869327700590571356624185649239817311606210895621697053948674292108163242207512771107881852426312298912701725337974949042368654761583212866858352476446824556638506792476932062514208139665430194173764565742268379455800054943469381618637898897337966604320540900708023631532727061332334514168223292225230084817372915521048965066950706963943389675113766354249907204867659596921538257457552505012333647235625327263148218940033391046090546186556461200320948610352103608591930910719593903642148148090243951037989339958192451825972258706523721275115598076426069747525103521729355148284455900466594839558697302965862894510066144855485851909936595551048517207956168781897919450558703808072972985023499371657648735027970471788414542064094736772993331847502296456436170386407120395890211299625769286832233949128706497288294546630186243329097743687111009430887686498492420184516265550549362223970724513665776789991342680304320716354040780017035067399832389397461685492372453492311855866638420591821361025731843030147016342662965537884868545274339838235668006692793129454800011642810189619156067455620061236859188637273468153874406577165408357884525950324676501937670735371723628488931173911780069976781989529865065435526868752621918093444622368247070330721053402494998314561203379336792233950475099129956314678873525802882176960314523665153040458469088612918427216793450668978045632709394358662512609367624776713490361879588753671643369662579728949358809700026511520916115720466870370449437165975296556269400247288256339193581725321754872979822451165372334735273421045573387332050420701161282739787648368003893288159374268593162867081271899059057187314989943180470106582545985027093808471089815348601502766619991507552951007740498403771720395993649212550127052036232925605844098030325344730638217306007373197061185646821052486446334095599372755277813962250325924045099639801183282734737818543296865761316539087326133430327700588627803420170246963617145449284009172581531817798633982127892021615594476939584845693807004514440435578778875595714226099760209764709573534898094732918994432584941765799095289261851739866168368298999638790087777563045485449539862554147411048821023791539533621363494738184975376347624571412604508095117504996967995585691298096532445846624659752292552357781238329735684890828577671319362451988140815771095099553990836986349609248829731860802139380517461999825748032938890525910740708155259973884600439136361230282211159970718644607674478931610020889975894970125267561869679127648878050987637361289665745152439468631229952737256165919998321722538220917463426761998521524316641079688547137181291040834693703163434035640042392716807268685929216695714677162206669723819413410023268343577662965543427062947984445234037860748062698143050199359146072168904863173835934362750159900676147280864406877503690606555896889656078723508711273817820553104934467872383818999919620979363954659029871344349991176268474795108846651737591495966965076188428603017824620163725489611295372791690782580490829150534332380675517665992954567038360695447446546461403632958184993552063002968266631617771894566406427953187978370171890800458424037277248494513512539561564121319084174871955246586421407324676051949733911241830432462913117548148234937540231637771141549458367340433978664685255673020502873472608158959723635557839906522545881730072353851522616844900947134013269461723504771785849783571127044715301844206457239341760558490016013891441116811747008073043884124340280847173290183752709400151898564655315080144636125239037955078233753952644702829331884913089722095871654167679651815178001527375561761171717864546953878067195373074093903829489334072205963809559859556336733581761427947957554980385925500202941669242802181871654761431623532254568307386769073958965242468915412691620317134094313690061379886482369586510176272115461547597486457806191459914005669552062431330508156569611071255705095888806173484279646555979473766999785278879577076848328803975240413154408901369717577224312277045119095600918753280715582289197092929972513523368337479588897122287041045453229941854544577043950408651309294265293830377088750343967103114434891605524388936788003837691063525108080834456371896740348517859592348748694095587144126438786232616348731259923593628603300264673089178659525234940267733750596436391117134429639208236026207713496069697589846409288172239183833092354431614622413554989937760060377002246680346653307448449209333615231657052469962896210320369897579774572660362460453553044699052598367561944421667706118158514714771489461736264906005162386308689159462672561682733594487079470524618636244476725486668047446417056673128316242006140386765995392437594857118706096232190168107802265668762948805730139528489431792629790597188255633818969721460780663628257475310788109692598619497723110830649786690860828888096375689457117369968168055583682321979265762237637495599319616503471819448872193599100167524334468706422739442093143842107530577992491255382197332018273408610253049423411060107993158080755457355091489951669748986866356748947087588648669718138830703698047435350852712083515819871627800573421670552362559863034092634765793798832744434172050433111664571883178760986950657851967841511049830825939049448366741146826965239995131501701422085447060611232728957645329008617480729228347036434344135228948085745013203799890658533614505847701926901417918022299579710933690634455940199738364820791513878373564573748797749683739599364506886794400409508961281688074982770840791374219320342516953255457257448975423817737705712236242021254960207765603828778807025787009235529905751832302052984385275444936905270618428084589630348566451150830366246616761171949485916283505149755564916063083545459088587988196767802543780481332243800575083799446110307636125485739502785444002094948957546327763488003791485455489290445149053169397757000031980228854203426818440330863103194849125240181735140494681723185629859753539739344020690073276305174923818632117290591020211817621561916298907902954674123694944797465797764725639928772315658345108540544681962784009261807046605422355522412115862932962422867098364129817171771484157145033622103140911312966950356829524302114877749860748455463917902394115781199413446860732834816089429662121677485679561204371378706728533928856002503937317392547370675349350014593241622568032225820808273377499352246753993806488544024995059019715418718449931817716170961051647322495030686290853028863285198064788495733750180931262650180163378456313899366330249128815856276529641308178529665044333025104703790862744516290405661726980806159394027280065357859347601239031493031660392889648252828810326023559585644163187532261071565943378509697090111980968910435036104839383515906604977951330882082434690713167465922707979257060281939479534637910970732538843785433845983966816457701020576470832645673861161310888983729975489623247347185964837851144245446848108183651181883294145626966090962394805266126693882254111888617343675982011510177176442869599711650918317803117534407008163262122600722493507603865686212562190445217711933066835056730291124300868675910387136272448024773333059171196604855432112248296621840365707314533082719939298493629619934964447643048316668215613359230779905448524799766886810427504811157772973526298640811361842266396893508806955631688844991989994321926455815627102427590277133266119961778422011509779415807891248687165229566137545058471452318348064800177405427293908372041712837566419819689678187976215972624392946127217354857486278059821175812884890679005516575238778527661556196267885814510550679303813954680273364453111117538161766781682285905789399991419427114800363144486157676131012383765056838850750941899050352585280241350841699501105155604952910009332328041185381445706346263484093343202209342379950651232883604714475763044717358330425218301580485914335058114804307144629083099573129938824704297595228230249399195436971335759945069669380918003014753531687644538300491543433823843263365596800560867768466843810584351132385939236438899348767763620108362522705603099531296890591215583582597864829710485193945370875210051152881656962447586271994043683225389377329997439567751908076589001608620701420605807764663986452139279303524551503695899866867816720124037630631782391744528088241768710125339354704851414633209630681820027155354645299551317956779719179753287156931051273963491117944717183699651821951463804771204787825067414709604923544988729269614312716904936597577958369634855811126662378595355261951281313369221967846282134638990490361549831150386578676540299574449398433232444378972771408413009255487423967112189148042131600888002554536768238564089461082783330752473326508108720155962522301457128731357786352514957712345666163625457064570515995823324251601485021394114296922295680713836524621493141431298858145507553180465994097442074165365202050009031748012058193218373696557697602218422503227848996186101316508310827639653821870786152129214767046836389196713664758273461189396067605460210772497263540790991865788179319260110704418092767951477801079929016305071468158402007655215590399981198240814921312865028620505086472235623347786316097580858732228395871446017756356017123317854810073188892948228376609205896766969102977880181735595756381913044343339924646198591120424734929460093127623897178087016365928577941389968115148607555795297423956965204986745966026024536891970346915172924102649238247509388102568848707404241511287269796078079230060091449899265993991796298649591037313383153708491459760944477100933300583281442591338174215783331541983255224736241444096764347733799518282748245842993933281290149821276073282288988922666950110057051900893090195638278298593854465668412033151726432985951816276529212284203621657983203929804272115456393230857114049369149362709612558736064982470094652912506695165610041817788231572268428395836904191971512912769093630864295057483712663976304871505755601772103099549960264656077903047779262980526851073135932071002010381481565120067377082627807393703638217914480945461568402644988696884566791808013117121902463150779223264437429755826266751279627223657945561647770982956552131014734814000447019617421212358269445176352413842650882266734471456360558375876077526281188285969868428042696845367263349056412211817530894804553117873076967954807395777237334373007808860499194639540929508518815389114487066645051739291951244814344660907129040752231638600095199388429155972458840906998949302418646075098110869683623957193399723633361781068294005187788606458091348906146045554632784274073247634714387045802310045713460561599512851951396298497307160498898696700479478698867773656076816429967664914607075528818922989634030201251350041825729628158166983703760368461905647679290397471420347716802059702052211918348872409670929690560022537213256806430366059272092397493805898012321251249376049810528232136010933651889428408841025260848938483483294030602657061222604766422229665257787057990498667392251385592496462309491777524190847535995041839123631628916522280172941983139605426836137752527147306431744385470074393118076169265168599665196983873941522678135592560801822751324518624110394265534075319762475859356423546502586897230036453610738145875852264585919232958942459290004190156887890757069178521974060266260584835497693557063893892089657772670294519743910694228450209925593213406579126787260807693044697166471032840266731316395534476035710043234515901126956587068342491178777745750212142232491179184823107794382285598219716486576852313949166985230561923150337448569184941963687163690123575383057697371202996962868325164564114814820032122651517283210009969519654483248102233705759252389775409666003727721494435203850044555056962911604842485727014339367988895029270311315707403970678263435380922029073592418493906335161519241078202419399710989155050288250772399421474847158781721375274777540327740562550981565035152723272260838589497648761616218388193425479737459491484210534276246353414112578477303031510613143801890807277509772160605351245096177456268994767013609659362509080827757051199679230084517783228641154869555856525281011417177663550575912689815447179866664497374413477197877827338353743206212744359739891387570068367690104894901374960602831669515863705132451034651854891381810013928268182102212068966921426556251225033636926069648179241855808830841263865733479312792119353399564079605056649619208453983667289399119458315971705181227855121667035403451864243478740474426715198528957354539074043918167049041849480255543366327923193035671905945315055087414898505255040045234428805942370711397216427280379353404750048418769199510137631813223347650733864910697298397796533625198916314856542339272475517079691473939040117656136767540446773843297223448956617051329516421265374717133994851692967255308063061468955999618706204398466804948912120802778293893360833066995258720605121442437884627675639993681926782302916584730818971018806037300718663225889922768074611233523527835345085855631789352573213094932441855676702353843645070174214063490936000691728465902352937646446844353136618670961411324201248377235536436432273514724188386024517635440851101508139930232023343343301997243751947591393724826738111103642459176303070855798583360767851029350855464864752633726974823382549547846364483021066037534333080847271629834629938876365234628599887349948997920516771800723216135584560598019105962437338763396346471269511760906851702931219970848773219907786457731912580808710628484445322264836868645777035500883759953444028016134249368576834098757020324587845314916116943024683080021330542919865094425595698863257469690093814722900961398866592386519928518142007070332251009230351253534312538227425310334496185216959232194249539731766533791150852246514199463563431047117428398851671969792469018373477253253398148446023919216012499769773817095529071743900861884118569239869870720125213383178275492159332071576201420629604913891031423043099071063225971738758788516231509485342340870016163263795431767435899426394141477347700244171347848002505975638368342342311125156101408909320358930395521343646822108709693185740024836732943873716203785568756895723471189059727480363284172110065022866631995044785947678678726067571581616389982872866048979727920779431125261132685063727547618810431929690923772724778025720583331461644862293416310196561274815119087675713678643613733878129627115126671943769792259534848874771639160404916835775706441137628049764212877047592099414935948154161896986768878767754855400819230041736828403710176716871380636268935384084676516312398890151402089633780015744758108685958494154476523119838410118827051110784758664693989017058819914065204484377837263923526864632242815306922497052132424539913847993659301896297454865543948452776305651282799621032569530573017301630727590375235589271567621922390957510072772003956408037441222671015810828636257671802853767186073372554928427695859745793937478030558615822058483721294972513031318187247274045227632668811020055422890963537283411737812795522705388878506090999346362421738047402551019101411623158412973532297712608462222836295725511830232009057214708988329548744571633850740461036974329154151370194861702261838628092867197478406488242688095275229989610315636274451796338372815114038825180111517457310206597661985698797858196336491589754949833917176082511080267028583742666670810688904778561532229254241354852347717206848391345920907479737109535839436488608051582873987914165262583795337600905417431939547889633217355165579113990755181030266185796852272779895700598791873951772278633867462415951433006090477054134941068548468095162309069019092299642513423932648963452280870549927113450228164092920944908770947004789964001839776801479528635517588107581900501952642482462161234360747838266763404920269407901512466599773683573199603351118763270161002269672382760053591628735431457629528147529940814626391304179897227658876104933088598143260174783896649402613230038574755645326035569575339985930359947334442919431200582697777887971296652369529139801062976460681865662526711772962875866969657644569063114343714598320279348777797461238217441574169286219668939581419272956578829222033425982354574893814336212007751086662641225023303358131519192818643574641446103082225170591038359762504737484408684061999906094503785182559613860074353152383831006313179249709589695259126996162892420081681417556584735896547379453530942310262052263702013440761929821451733552674882020047992441423432185301980165191214055213242641644230138707846441096158751743190028649060886634921386458996635686032669350239078432804213156876438120388804733639787229943407550978943897162780410508561432981063528403980699782847099157820380995107846879951028396938357387473852866464657227042634385262976245104516809137288115900582145240934322256359824809140640497458717672131360712391483331666728375492712989128963624365021922664894739357954125045364250654956358286194892271734658381883788276867354978024592423966417765394895874466248706510348828328472618973132895738493710949423139480856383271709440242903233353501082680404734985623291537901509816665729827488460803145911554162813319891416323755526971738589125286204478120964686267326409860307396381136090052890438439059751731023346079577432352414418760843913123792572572603309466752939464479855864377275541984061863862295218659627660349672760179391340701624808996797855255605579975756714695022107292866289521212369716628681999704513051758477366484725223085343102081231144420366748962736516488467033872872439424919014945466489577256607683963375319242020758312029618956170789977451039402181008242680546536468416459377633508420645317927286890699604774999726367244277391650390449578722055279499954334035182269089833629422195327832435923919723847667683367995172265764506543293394501035268410099389613115196477090516336704343362442421361545854732328928131271803793296684214860087548759193674322126048213702350246828498764202820529366013868512832960214656858362879252322298408679874326883322683534133346285293331113477969408979181361494367750314776816820054633737276614684204610834363671072418686151364257580379621541352193072664207109945715062703933447643328853151168618073927813234326754089635154783032676893087902930502241896360010469630090396583770707247324050996009820248346205772964010457750944553954781333469072440227760532613652087624680008565162210165524910906213843261881518037133671858840747656204685992356924537460782110810146748668748131303464934640709698816948464530541200101653497311135726285797248255185507118374353575983807882904148908157949382637401918464927043399590898793106793613062792847000795567627867738859812501559421042159842936445766267053461743602111270488918245580747517064589053154191776285299149815669274550883262549753987338196037794918637853942873252724394657213442209092159912225138344347113567961448009137151815697572992528352124747421436966033194188551449387350284772876200335670022019330414493741253378324621698702953186716599242182125541121726853616613149090854832246666979640394777586219019019877855141698045941847669886592921227531377043836663364366650785984446849500606113608942639678394638714575336807379399868377475479941418328051840565653304290366102708879249125796926652916518614958424768751292781274517112087901910514159378794948835012427149642178166547024046298709900216408800215638714294468804377761259146815359506346635967281423272468293059377165559798995260777548216164305119255784012336227789017887086119867273473584111072444496395077102324425439303148865535067940667774496290606714197271446427516139784751514294094978893954247025006584913794505122979628944795298069502590181432337423060880554321070485576209186604750943135889647356187389516486555879267223639003391654695931776335500137003247300084290762055009755023400630529381566456034693975778475098213111096285232295404392363351931792158680520631033047562881924935217701025008062799104256009209963928780922314000007932766120624548676427786829280688657652994625821794934330924537530383760639353130625328601689441500364214121761892307914578664346049091123090264749880021283987856181165849334634466198426240021181792722514892923172068899900024196270117371204959133527712465711219665808263473052121134027945269269682045816263923796550974905493967455483901273227726178780345104946338864798814156247211504340858650698875958413373660549046004217002568633850911889505219395075709156270328885165210308607412434553020373274755491581831670318717299403868855852130973208159419824845989543554224984442834366217720040121761765504059924109695059996987777727324651066666747141251093318562120821932182062015648359858331607541347134970185652185663069544895447107483021115509576687867014292759986150182725473808822282253524211001612996090546651922428369606228225220188865523560554078937054877044064426427019093107887315333595867994220973896435268437063200389957430028282415569709760051653957605379649550693995541580513907646565131644456332450014830936133126672007680875605810127996870396062332100590743690459741481328439408747113300235381323673343717564479204344748244020443477588719592196908327408968094200054477113837057267157316043531498173388470187071241100839570112172027178013037378328545086869972954334666543729912293126787774350756015938035343660092499578761360092235346715980270178966967703730560799730957979325450491951838226461379497548429642259369972031409483519203858079435157773433322857903761366301353516015592924125562829886054624115005057294554791926537717044906579275802489104280485106892175571105827403852345587132637903187025627049053393277113303086062268951635104993151727950856889788462509635307684328917750763554087987520976596530933679280483810743114862963031397660620393722940064864219486973374063736666259615440857515190867030423663256902266566547454070319569329055736028609990098921182541112121615030143871636708477148532392190709408738825991412940915316424174563212285121505872548142351447517603512537077843093750028099387033060505942415698049462996094198214869578389190198240220354291580272821187885901055134128510736638458486965637878154205683040597193921091082480167146103186973820265544598867155124742160158736155436951543675315486197257599551422666579456094853283555414388135916236297544201033695127969402359723463436223989596211320968654842310228508386555264223615279739371215713899215760144310532228463699539776708280147199485773922409684042750918682640897023240858933875612133397972844463385256774249766226836462862098417960776123406724603304429921599272721927725239581358653505358473563344179122313521534122129868909658208869469798571145675867035814747070872460337322184669542593538745650822196947077888715560470377310514116342894347208004307403570177920937408097548907081042304445449206318424821940859714755413236556356151242545702397224040855567603525469098041676404864349049784048216742149215939823004001104495530062117230406449254448114368177665740245539185946872253584679439948567543255791806668599900620141056092888471974665364245863415877254584717864969459960325337084763652485529188207701211919881021911135677301937338840368003597718039017636572173613355033243301814172925012512455700682534229435777335703440358338955516912304970249635974008428111361683735892296582861857339936757835372536952758198973731291809774502929787761420629164593999071206365796867168184386727666124793681387444889389174752051645736652281495439777547662016006430230304811267849071569661359434148060549839290886970776199957465841340223300210971711195985578905917003316983731176147754459811445396697403009817527576414368765739264576290172421976953818911181068239260278247399494395524061764764054593337228067525972672624704096796273798131225840143516370410484457928528327917937763480478440890458369876202267987242884046427209224537979542377270364948118891728157794878605240548556589801905686899454019614063897381912085140049557470319966638599081148344031729781550786564545128651455165411983619172210113951681578440473968372442586488171938561975652577100902732339308052551292808253912375166703812372711011495496218084847198899657401229516470968530264017219459737299050304283670632567789312204012829914940929137872083059088559473738957601858063168596935478160185044757128084640085730583955917222935806826750711394620965769724990202426192755391316109206574124561465279318565410890928767532622578572950508420133688829177830758907728711054473953206135248164356076480254476306551313483820548055110252732591301340639675122996850508519512068767815324890322797799796526086377028625614712019062286308304801293247525308338095722731515858917783592339696241706553878285151688539555806231731258369495382218250943131612171823225130996061654316549078975846570890308004259545526384131632940279243991939209228359950986164743376121905424567395706501755696097681007583333433795944541026975722599641177003378024887734592804234067930309751470688346756370443202478760656134237665442512069383046504407204564396449352188153678533728061687707618798626274712678784451011583801308965881254031115615637614027647573503503761914749096558228979135179398126786797116045552271109533513653067972561477029659406121831299448909997563865869818309697702128241226083350148479117673829807878543140253380410521715762267744374745221181825495591269623714282433780823922580736509880627279940074885064876752032578319042501613375224174520224771623823706946454202271423093816515249125834318339907250697324710032179931340108011324715235899785814100591014188605853893370280063165123512892854731755942594469055879473944916535308558062178731452895518543042112795250533058536596138516036933546567093296094073888214107062492818792609295971593474289736472901794861726391294412202943178465778183519821074288758999444676620902307936479943930054983785828200374327617928383575408748801080761870383082647283375247684565668681361196568518474226538925589162687868254758960750590378112169041403149296211369915966332345565014166434050674077756290392238997449302600982663671870207818603411475342935904043563790136838748602832824737389042477696242128061013833606930930459815052478165475675158644212732796443456325357704412534321103827460637756399311038703895742747973921163704571574248537115280414052123099678179498408546412364973993315575368118722410938154334763218234572527191295685356028259554323352115247870801323187244588684363638111105144496091150077329676034701884343025578325420810502731052516974509746946797362890924001364189025301814363698270283776072818676992733318036510196976872570506352837985562420319624795560888279346330060469272901268940035983177102972090860477852523306942095343799042253026031459728509742935271440435398377765184226429953155328985332814652191489326890265792476817931015836489133376434039340378397577600302347939210622150107544619321543547226505644317562966102221526733537042058955952366621183815759149967992725695578298946799024672083529980433341341801983997476963981229668965820089705710741832124177333473923747276384602967667747933122427320836500736137242476105882428186473876675586628798328657042929844045744460524749916625945988110629721936525162111238815169548347006432681814031978077995504649479913848024636281160439891416465488640559276609146193294355529753003802630720194573582768190485996601182915462896863415831893997605976040947538838426832557664211540975915818960236749184074465454547497666541561448943739996264379371246006012576582338391524152235943686455572506355148385907246000159449230212205844443683392217975225412109547232318802107742129225592220146387977663241158873168973161178548781427482010539518362400521677131565290745465153092371196029067173795951369667115026339955944890962064374396805685959898944801600399731302862816940264500530654714727349377998936895003319473378110887496838308923502488061134743249250468872635516939196621107348804673625453321199755410735299459486440311499315748320790602819701944202387789801192996997726605662490424607277717541791461991816552275659880264588410166601530352128432240946142843640606085721468435777511252339287083945945267869325488771883153666434850274755799613832926380480055327932299584185578364626638540856682191216506273903195746767079109582975876196231677390554955632972355264842417536357893501971715162553682887114563968820263238095156624340481498372697528115610443519864770523518129011270469351840933514725496404263962231928543334490081588869850334267418269063869450780986709925518607019121956709798861431394429183410410204750430332708258485875667399537752028740577056167382593539867740981418315588917027393984420528755264964892691422494398562012793147573646020788582547991547344633594015717508720652740379321701128458637909122984908055252720625616987324349843470872182962988360271317284065637107111362417124441428352630943497411853197915983732456803242209322451786187742209884511233327748073665489724990538453179003430286062618875856740200870315359027117847356535481022513746492499968535766135881606021910305629889355089864319874364718934922602218458758938270216166313115398994343513032207507777885772447640296499711966751434624193830339181766945092626004192766762896988078258005961685709151340888459841273778074321325514372457366436842791558485033207720511754592137224786930988597062851189127620681507004532006610926476839839036307584600644135991926986133465791131078283936951650848957856494729985728904906121835553927748477886781201060720266148647923464834267035610604446106486444937332662649178226429142702022187813381747885531042382880690286660098431866124979743401017292589396102252628278043844008515892903276738933088895645181535204939713824470038425007923441807581061455681377585333434557865868015838061687963827179897649082727136905478400758191142343271117990373645663029543571023633026844091058842741608472979292844453499622348763043019215449712140706467916814824787441920464106792929607238544766228057426592198365195150965027816763052995197327696878628895998495332547106549705429068644230094361648360983639260012746333965182037306104389690400664569497300208324297043038263527428638998908843227978664517371503402368499709402015508258501973630846434290751711114225557516740481909763573524236123139560013452115330161651069298725026110561457484985356986508618864878534526272238965815418146638224124859478845555428449310261832976390072743840126750273287550437415805941697027788009284230276140384704187427445612797443972476306544643372582638704669855872656441316197614621477006230749792996365730380186359118847839859272812632279994680761454477533425687302728846952610923155783964948739986251653164051674622393412961849278678912172515727427273458651410241660124049799487854414034161452212661781489512483854343685945723400190012973133572433877803214425185880271081801359928127504370454126025594570744897207292763477393361739274805466383093060286785312261981463270049110839789195671569565778603180416402034109544484919712767766641518220120835878374239189312725079371529511313777835763287504940838921300777446742891088052173020036485467061672720794017843366183964191509689094874527613212355449801436202286655936927947151767538815299273123692321842642003573469483393951855050770861047776410813351602831147804928850991367499100693553502383840638948532287924206469488051747353210479938881289772907164898377996080330614719364461541589493674008538276847087761797866419812304179300785288056273541946092216967204035959931299694098383469901451889058696723767171927239829347820871756714592374277995393962193799171901343187350809768103608685619687089769025986850300658618167161424673760767322697018104753190674984290829019261379575913821449335836687743632528781597517905385044218821583148528391146328869771619356537142793172743524344882810026527456173589593034170345366233026382413393645421933997623337474084790977467005574383468832233246940675934140356228545640875125698342217650308627795668050896113197794060450372535261890257283218570956084082514048602156462742991278569275952342241195162803304278983192896146090528062526404727618764292925912040096495863100276931584800811706017378801807886897880489580924856867025683331561169991428564875783390581617185619754020545733361653728178357082911203848236914242296620241693350106350469564255966909693574558580562768392312052018144278926382270269170548319637783291301194628433365058578380032136357541606049076163774816092146301178341822605964739600206715470475330904246960780634877712658202015852665253498309274252933993051925869102974261543372588465727785441342800529849807689721955154640092796160059176102218127029511473343989740554658114478453372308010724198684199285316815840869122021071336137393551970382542645238582538908374174335736355249613159818175419118462455848393964669830922133209038870552655029718201245149113546621839932570126907680470800945483868686542306458242569181391626587156176021124529429787529262395029057064560077572500949913477850322332409384520117067207383921521582092430692484072576512308825395132541793219826697261011244607111772298680817879228596491011838125645713368914456540608746846649488710929844455969197477909058402663697252971806112003962116378305178683831446863993571514640683032976226634840968397742655280804946014348065755917236981199618041872859992135059033057753458564683104730342675028523097274387149289979842760689937690342685203240200695459973072845772009075233160960055829872268239931053462191121647017714319264748550167098389289106182808876388501311123300861160837152752110510017430355227516689362565293937942476467446346936069104401167109565000417933696470025729443871722032823636916516045407759541655388517021805004706654633094325893407481246338766430919326009400759268303028875390211123280085393897548155655978927226740405265337802315319489403108277303879589373803495003556512735311623545992867851757671106164459677547321398322613138914614772366047843521556066991653434228119426003553056342546596831682347755965469284649955580069765736189401140146215092208011815420070969427477170179109007269658270917643701409680470147058034348758067590033733638690260840432171026985552128326082731984858045753725523133779157079895752524103550921188495198653053410830485736032752507382686975955147848356481536837828231519586970353342955095316876173452772042558333597814544515124989739304437206757882526292399190702189362599274288387450604071894083610191949114872913160617646591797047680020958476864402945470415166221306572071609136246992824090823039180242392950775261986479083659290914463790203181526571798904015316070368497915887420961696810826838754055144662954585123999493299992598146152613236273848910275518318032438159371883691293250565902781841401938107370980486410913120718047299138373350518673662225828999278194392133891895925139601273910263507358820720649636759771635835041495103833110742117089801429147970268293610591670459134524715808216990196284988373726458767288936535644259507157110878456921446011254413126675362438585101584850812165320080920604585164422930801765868320609769615638792553020757937119147583912640984338547782715555554380293246534334064268444186077059979088506034185848528608141714408796602245469616450097387223467203329501248152986389854926145394867976551619866123078857328883862393367664881438612116332534340216484409382608097209215201181947678183708688789715868319846857479834835575575933260221003912771396948494601565255198671917558977564002818906551054350862606956988064938915025384059583619363660211563282726774990047860076260061025219483211505611454184547542507590403999247040381969223379624730587527566226911482488161294487395780597256908285770847099007584440956721654997473242861962462368318519395330710357556898766542676558582737805446995644065630450413167923983350314514468812170059712836401022644486328278462115041209881822991807707568582093690577407493016420340734762278997103442313762157165982314176088916239366757637007764773485769405345755924051837236600159923147856158088533143886452770811442494269085298955113125664044039814372917093868736221534981303836840696966667936658141044471325648748844950411869576272451081119970680936321189036771390016550632485733929113051453291379812379961898731202960622093278045612239567588670951334508807276152646417052090056026886835438386639084869435990864918541369192017761578977163882189850585235340414203507220770177394751057511411944316228304958544827164815499914814011179495954977393553452267925989510870002412768131593440225514977030271890338704965097647850518751091319902031347849981588354979325448692656461789643037505976515377809858908417952571808799885009470973647976245235246148623154139006757156579733880539026517503552462685160286234348413379693774711980923812808781299453750460215106206761779511893773887124760568780467676470669597442079805136308589114325307025477894555248598461839745187119575156360515284205293219642813253982935665860113363987976256062914329028959838834053246362986177271311146478262435686008140980088332486318958662281217946030430693949717316877521980919954970117836425965547317996278813936969577985032697101850778775112046739651435696210442548694651168624910019618226616831920147764760425581862960511237150749756557444126187245140759723220729139070374051775572286941353981345356200880330212996281321413065360574057182044217866136067009292079454496168699206474376730614940461267871286092896428276470462642141339680655185206385474331271467244142717564105300736143638613467817467754273012675586934032503891345356756501957168493608258386549477590573226341358405178271993287579334233704953825516432881700261593538274728427965704617730784969524450409729147330866405053880852986549649529623225535365445780645436138903260635026223233700205631496770601272437926227281474047956482809650866931589402929652432044887119015345218956295393421525619493564956328957555720784308543402094072573425062719532103175602614944333626334845598403806095452736764077208957692526613410001963062203277009336884732585614992075409981595755583471032454121473838541902220047309833946276652295025638507956922358879350324076620253949274209008297131632087932320265593268295882337059033527453018780743758071329128594997947196240595088639618392311775873209126087757295671562749612339073746649392040566558363106055100700825992584951946514283338101035460195098363983545356629752884164342476447100189431350598196472398244683457389694566088797697402310075348176801891719829555511293124956212690941537684372698184644326309121387269073933185770243662314608247682396746765376155490461548279893631629078993158123750289867259425696865753135510959749433998668937839397235226100766902977961325904666644336699630910918869275983208508306774601010510049853141682639413576264413507888844879266477552655972265140755012263462905003378076190046415864380020212442578258594627799866033606433888005546633646635578009997265461569364100970171981332117307318917585753928514252426019421862422047388974859635985113403482919274465597888541286609389044743429683023909160024269703965475976956152471456531327602069378912786661404815303580128005276065250097262335835351887201005949571305765122414778024317164744176143251507521483855981527217689130396457460428267007445356950575559677348062536458344953099927270166156979879041004573785765477515949973105037572976305762460778098099255152729420351538691757834578576447227931330267862123804429867645641129044878402144927761597047757482711801761783988235876792063233446838042401092307450504819663723878869787521519758388283495201936667444156086654769285844187655093737118266123494724860112419420034099216054899033737168139667616647411359575040525606173548492903157184332225134826876405030513407172915158305792328519504404940354320786229555794711313401298414363655328569509045418471914360689773676391304701635380915713978419497294772007175591826587470182309922083451244777295708047996868407117942294743719134502603329543937760729803219556458970193771886293572282658650477627116078177872190775797901431483237597432326176655412661980790404203139177211483070570828089480760258686436198441144835721424076195819429772704586706376185027204650866965683524010026933952361172044615321379120183257082754326906661500006661269879169636408625679465407383915251121969971650121778597582104837267634890631147617472951961607174397491935790605591422598599771287365097842454497726035326192171752518345485384051776555213756608249441051251278575023480172275909807730919501567776189426747149084732995912360902019686174824684563722974616702488942503976715291722917066796994685417440756304263833917679912360665392048725770246193920119615641886026746310766863079212127258893390419386761826266090123250642591828554948182515360356821699020773654837821302257887842424807969662486817773046337704689162378112848593942439214019731140148452434749947328439403653044210933983489291946248515843540844361502872721559391711864126796665162875911082468608808071233474120502487679610814302461317333045203804089240190756335837464469502077024513612698519824085363500318159043033249236937523057072259627899039875268623446912506071116999863182896958525338524029170311865054340109698924621383879015753886076737918943615243815316384181849326575751639968058720199864031035492504802828387176085351121947497002031399307003709013603351072540566095077748232369560942750351761127329606676143813368972643709039759421137191256689909112291349296358122888056314265143618121043688726426750284841594325884352061658941533046665414647785683315928816520990205590669306193687347526311176067392280791240910969239390493500974196369780806333106724438700411945461842795164950807474683853162059279887214395321838513991651300275725352255970936933313260872222923492944551123620378858963686891654417405754365606440928285979194741168683402832155780592581430168384674456675670022444488638852571368102495771798329890317764488589299329821051580538629238497773313249295752551580810246317790194844197606676442148477678527696469046876900431899759028002065851902352144027820940313732339430163064114258047019983590734248646347098587095794395413802505292596800118511575025155021780546756180652571133462469070400867398211086996951671575522516934644921375414700820981491368647060049240451181069429656202454647108872871534541699532923456846840972998512336706622150233345991155869437013054840007859278866677131807369468327334775402674874362822403722369488401710485055612787382782183270167291476222028594269598993061307069915043660734045696380166659612015285282390105606091183376078289043431755643275568398417997983391089778087734851783708315133461401250316463851749302412928799197783272061780856375254003104700336482305397190416945428114314849111119807522284916872366023148251188659024825630453537539429964798325531463203794797224904197828775282598707270109576669202115139434595342161865522150079584848750866527144399480993757529019985834834041853994523963351084760308199458320843096277911857784243125106172051533484411482651400535545280687506759378794033976680457975033525330474756558885546529638376467960344737327611564553445107070459286622079669306139071131822764728845348471132109236755036614842928959309197242342917710922532481087138243027999296765248578205026119036814497047132069518937639909264477149061413792279831518924875323855606141492888807758882928828734654241256278518136037365332707992861874903659610633497510540597051400552899321223409579572701842225563098173602409341880751855301405243471164225001477827352977415833704666357702549161662696560796325180741494354349521239812828407357389690189919326422818570314017038438907175927302749781474053032773086123900831819464109071462057398483831882883475622488008023689100975194805416457443242692491075224859589233201651970326315505783422585209071588146738039021350851914717646395405470126366034155874110901335810148283185073210920000315896507584275072800619333335997683082754821060242800305780347676408502041817979402621197813043796290474932682177201625102541525367858321440585106680862674733082617707341136542539681175486793339586558539902002531353550684117863465784301583335943329179237404672148297476913592509389389136158707406875913680734378477931620092913042129608183100024753827660398338503574223840414441549956918646510027939213223912111580903289218488528812925074842695972555309554108876565148588051137391092936750620625494547139870500091232110068014320401865921650201734099405626783437269375347818990723187311868266051133525985003617042050203493051358698536560962864555271421251667428368503644785158454035615841020402352473030481661772643222607986776333848637266886865621741553627155537700674091245853569685778117555859150522298460408371542389073141444773938183036349967461966577534176909137273315699437527975335046623831655581707081121764283086609451960631460554948270629874258468794234152658915362111886877682602909115589172507673105632844005822063318010934963520152646935695031022598025780718216884930218836943281052804414768285346001065222159215493497929423986504534945995737009060488617382458090631812764156296306533676369459595838204474791057657991517523623175867877458700352362863372252781991129708162926327769539281955188449925911450933765876161624083042253165080879414907230989627893209500779804067469523803283810329239823796057736444503277540507879943243708710157232511333197306671423700607983292323187861320148045319343824469566739789399449898597751553751724665434901846667905636692937075802562784082307323146709615819243030364007345267042185918799001388801568892472582509580904687997465852241120170841100814990657066852195117136747870024226196747451003577589549557497339033409181007153303444081534575197782361767583482577583977616473287792889043027099980687323515810042688958500486737682526469475597421897127712926779835206524781842664927354940821722922840861152069279831243282757566875452200258574863584677034254344201142544089058827972710768463835623369598317092554146680382762828798744311811043869250174682227576658765455844478748833044863102834766371509507443183545137281091882656006364830629862722693571808774830715310612368927937191095418102093977362945490021499618521580632371550920350528827034162250647870413401424803114169614050744362124921345100926456203319690817563137894662379307844855663106099451733694169165783825898801704600768487637192339097152585321037414919735100482143559311152869084290335263813087101490472752281340406227409869654986453550897755802597768571117686107472235053247857812529495346124163051888496568600051109188444528047012949490624002956542573154542282104884163586417283382292300153421069341976202896762958891712127455332483766323442583269938429643363328537292695243090368508925562678102870497611990439613040540553072255870570580126010289470561078948953051395383991838395718524468279428984746780409067357964551012894746401376034683340693064140105610469272781362791402085037297193732050478845477364279125271058902063696151101326802599280538687730358601547887219181395964131250465049732546551154898640552811363710864770912764126676502119933383458116300604092909952144194949338909108604595102644923753997011886872806730125578029347189881426475199091733471571122898340271883283230050303322325821372689293737809581839355056258376333341173817298880009960510456206174495505381793632224156422445273837887652042339608429596446821803816642800424983474745205816472176688502810100008405661145282563638767994735479131947082980283085418286165029770576934637261434497729069953739319222360124272179507593408964477267222181296149201880784021497749028798236181229842624971717513234255644105616964729055173444553884542025055163629289782200232248089144596808615545362316090102461704847440480562099753317827544458384718205297774070082147750136025354497246303527396982882334360995069325284550491025993851226512535242984259201119218728649074892762514083394059120331208610228844615886666735879167232679902830793170585442493226345046907790548760160155824362260882297230425605367598180436794681395901974857249844464195940884667419331683565568793498668140660108280645146246282934735637236466514187048351779845075986077126670555449335261902365925687110392841339251624257456145021695859660137394358145381589416429986425014166894699582137080682107613944635829771526299257915472422653125747249721036950257263204685262453609699791591844903438977993974624118315168467772119711667878689335005951009366147021639351964175067715475970430998338195948173639984818932017285962298146939016493508581871786695069511658123594785616042567187316267939955107516756485854022314951326770838203257707121075919156962116695738455340744815696712271146977809836156930234817317768469052664630007091125458095451686065846494405005501835101382890935691912978456409783122617629035788035395754897505445573653787119886573784839565576763505059700815296809438920506269649569342629342050771303694877596559311984380834028050093537433203465026748774101788444802156038471145980535591640161142652184167392839064512366748479473453529961718512962209448531715968635596348723559476916633446281138940579321138057198530342075206425231765440482692903172964326677063755335084067264570259770980605978047184849312306240453449620202956304103866237718315883083491066404758743583502626853509153408518971978077134894382520431321021484589596048308073734503661690331540736513882006440109633333918599326403137003424783300956384650987888983439803517309131379510698338947994118371508965352848369197445418238069873399591762684213672243265438698707230481767481815767570307260080037889825464991892799393724720548150418639205927376734425713420428579276926181229964257016810805592817927580220651788157855961197748551672111507377984489004365035073152162849724517103289846951356011612985244664171879379470207031215401872753184868842419050150215393007547639434012667198561937133937056081741672357606679620110265768234182491874204190545588528452328150667766713645845579019129529732231219287385589282820673912195864190729659666759114866170498758284463104028483953100180944808121661348443347576915486298205244965829601836935705794973446721394275782980986817662312183991143293985919940512141533375068878770273987468254890240392603909632204393888496275635714955193953655051159118426324156146669024702806077818892750858326981477297051991048648169865851260537343472675423504674955147730275646731740744012596811306797151204511838456093838968713883941609407880335715729623273853981473152697752118630054800402397928584287884062788979492364657383206808878296159888988710388344359236746043915244061993075919016445102185640997474051808645093586848186716939371126966546948242340853334126001866987781816691002257989186394918565592917365343203335507361623094456751194111098632939552771355060201391161110638350562116519729943368052271118363704014446990993630246506663759562010417446998434806008226472894112508941128969457903888089122369542036059434505893727897347904346190413979593390299885991790174295882887859920203909679746074587602743347982514986077108828787583335536093672197174318645395537601480255310921960348799415708884498743809541702826798219675335937354575048819904675759438080801999825743661680711584850857096002739350891023169895259221987073637498152724746688674064277938061233671620496687056265592707729101535105526006922353887253575685431684208559459516778014206610818313507511857615942116326694934121171596427546566293938418871780072367866306780704168718276826994813669973578108632667469680661311411679333447184337608871714106799789647867015951029312767212322041544637040722965560903774874548427955147255417517743343796018986352334061681091957732930106987980657635032077940960940504269129876247645314914797655702038930975008201989104535803226438538692198813340020907390253679611667214676960799196400404329566156509112873608064175335399678601296123683761721788456356677840688501166473746885251071288281435508422971189972592382673746156126178727020234325595094117816551072433081219622112747003208076065372446212024498776077249623638441987717507106754768019905138898861809128019309710024664080463258741399732147669568125922080918681838924861030705402579729487144748179185956266058725211542279615610219317391129920520204952887613221025600266434881213681646616130684474680736878571527379306022700450024081178034263714251809410550282744691744678118374157751824877092824466640506419322863875436535813276570394448971954177458268423453208803747907219724059626751207934589105336100229007371121675177947633865258651611012186041529439042664677849223167283141544981938642684265511200664434790402759488443929556482437408530283874795522451037523727330159433916113880560321096577219738920873981954622848061657040922246661330023285484510492974004714304587860106450895448725760358887388251576879776240496690434833016387134705741261079302547637185540640064794711188547710856947567754999056541544907917573564691600529059940544259196846682579930891561260724264314461970617896221809284284899469557867401718458117785861761113148539622397570247037088600859434572898866051235196825306826651142158936221065235123993515923510017954263171440067176052179254978739334244485669314324550175152952531386572010987023320821207670615811474603603227911248162149027433286407423749507301935482467852273105134932223856552759546297915509416608945880060671368778261324659270440727992940670111829480415165937071338058746111377213058399912779398592524319017096560612214951181368253691867637252111060132831069739232770040182458814550311669766220572073561201611421985782191314585846228703219681247104141248960531274397502763547356987917846909393841376793993165693584160220093420456660220375933382216921063826821143132201866419578773820879891951818199473804393793561555674952875887637778610004115318425264724070227971804439454919968302385687714716124626693237564631853774859595237586504296404512929810255342070804932753098685147926676164942517067169081592967637836572604976775990431705934487568568600952619832756069067037210045440781177176896256423031422324497810982813821638191841856075472153607573878901767148798697982876559687629943813566380669668738678083081506818161793192458424591080664405186716748886734193554699241844071485865344466111581033585669541066738405689914058782969141509385600378825928629926515616591720721621162769733333717382189640069156204377895482901474421271370122609298361510737748310522217934178207061129042622586512657150967063272520923963301619404061755602904042243919933326865033190201553495538843948457978464155737982765353974578789530701495041300961790451870553518074510928305898889347927554607357291819157576213838715586301341574864680993097391210344505774265524676569001242094548093964375166136414656287707932668950791668637091940941551080435732609182856914145349670850587866420189659055537263459699702772697562067616415447135377352667855290969762382137041552194381164823083783181627384538543061263824749892125410930538582708820564261033358177097890027613397258350376657693144523433292407600290856128297302475088040311265079534547403114213412018713481797730754846383881191501634027800095664722371048878864996600148363614137807092984482608688922565862314670723562129092196841899496563908173672124491365352203155172036171036933193247448883800643077892720245989881333153725316178568591188025141506989774905611264354006485650817542690698149552185896285794042047073974594053980451687797641439696245514195915741255633313751038053904956538894120688181989070959176124877775090578773606484240990807358348296749632918948601916709283334425295493500307243767149057343458455307892141020707252837771874414160801944510442436569798894630455083032589809390006321707228316745430466947030770130212225638601950529615395204531200053350374609093020039458253148473588354369355782184192006668324213741925272752836220046321745976691560250218928464799315364585008093603342884187477469996693089155388406162165598608107981918811525946067079052702074570035094081209964111978028498724805376339020433750160326863278947561602592354684708985611145414028359751922050601891369034977897167252730220075958203908758315067862132229833546195835877265752719750749127323213078449282399386882254179164405933252852311647144680492031093888412422932885854030531749362044384251636475929032595041132563009553823209423213225489688483969358146500098779072191008940753580880984094432556052142800837228421114633502547932847926001308900601011342028504766804587407298135989602164701936607169039630626127620840356644741430924802895700323222435281168929260531504933751089263515124718472533458491089085260576479394185165943211036984891802874710015904746493089017555439556192766681885553753766030043752811063937419466526642462478333592813319979889340149209335372974130707748727897929641447968873458822939524396401687345206427451889798916219940317916294421494563058306314971728477776982161293943135131754132635092973305020187177586247144806247392259309486962773585279255089402232963990791157728906471039285644128871834450039205099974620441337074409381706527270351228855045972311352174846537690450502519393276821272577473286932127799643141577741868081154116328555332741538996757416240277607568951809397961291922981791396279588635721595002962277306585665188705382819977498735243082192519511062391912298847791804122340637605272716423724228670398628556416800752506214789220909813675462279590185950749712390594654222882640301130499306991848161159258783140908674386945589215873787218372503942552569775753489629228510919712619326541953019955887419580325183375640174450062704087548139054211767386385424947333049263826627601726206094899208130298074621285679298369753565652877729179853188825117944161935217567989689376976703897374141713710438963742099677611223916206484289138374887052844190473826806163701236066778611674605839428667650057548044775308864773793982589214393315221836204977284884975160361969628093355736351004448318041651639131911682939044052022784354784268579218432221391970833088599399946199231701439786844694932357256021262489935149602453059759464644387000244279115896868284966456545721570097160024565094216847504805804958408093782070289742665567930125799237182860845634551915724633228882415208375184745664574968690793239650656438744124541336513469435463995803449537379354951145641971644113247059072806376359905932664948108239134474080804671429983690694047391948410570175281578041542682474947619061201983838851065409695105125620021270865938284439277745403278820620149500723599846117484528534589737865951935327526339744788329598000037535053491316475077249614514488344220141196633437858081572985351575363098278862784173432583147789139973657166462490143519788142136116157188009666725299921767427434259791306332202675808889698955832405832815141521067525058975774461592372269295327290378934446119681444984579547819715539111449384945060625373256433694166212840078375685717074146370112399720295506809503822508657271452957761399904316443046131211989001605640302281379092965813370737477493382563725746525503299226268972280912072459971400933522361081446523934063862269671779593409343621132713195897194134544759132532217412572173341712779285263336364184850761897644831396707754819871900787420410542995972184726120257892657250195711545295225973585727468643644686860752872104967039503018471689081490522641666128307979610713053759102054709377397296121452836589743560593875792932461442933812778780134962288628351885305717114078622165214371375352281213517489469647046690142087837262399190299194659338669633560050119897743076612775740022569613573905006969808393753912904704463423066169402142183553712645639514540456597857328009148516738873096571791627304279023996085903668742902892955878087201843900210892711729710385550677178142713664920222710222900500426203836846121896134368316204058016891240510716717854280263955755239919060740736582531275840278024539627726724646926479936524206306190191438769785532407811864680623973712052853788507047044933912444983327202477108174636591304107911690595542355662534653297492262871479421385343171978068700602895508482217140118780410001279834377859836584607202336662238882995703958032407092044784694015440674409363441429987228538094056859280389945816724548701168020277968726826976357407367674045558174839492867138597254881137584899974615416372373358359045468126208399900090269783535561154487233783668138394527202768526572623039164930320491225904334776318138589172822232197261436114212084698761870976563450806733061873222148621454764667641631077857318960533468651362741031267391192465116796266895498760273390778024709734833753104230791568787053711764248278020833714638326705960602517904749944086829710823262266809412010699509999844302766763616540242988575904081889629087702967849221274786811233334514298427672456779191737267504115746115787178662943208361751972392000047471617839714201497018128150056472547932239811647443582336557414471824908013378400360479400748918201129306954435040211601514479134225497490665548745790692475434077682050947602620080941554091349906995155348677759752482386831501040118910466107620573257854785207423234687801244115618746133447688121872830448204876729165188663805071967175480694243701877520623547191699160207294602740824479375996072629915872898962780247648703084996186511589898833061613232937598269586585884159128375706097521414530888071273474975381227821479673970469535252626539112001947005014507963836779277277413061667852001855080064184878036286813156710746742896013428556831268791927455649215649895063839591839776489568423797622509318077569160147872805716963220509519014502002187216571325683149139003401374546893395084510718573176811035255520089681775808639153500774230933459280012193108413251814496230105197523849947492564541338936880285132653559414602747515731868150181955361191240545782815199126718962475034128514054308069970198436220282013041457546536671466518662680655701470613326627882789964061652307159026560605671525995227196378981965518026609326102729949235380652242892201828178662205057697525691686856139491171816371163518633898032786095234923006990715114972180652820253005370199128959518090041807164990328508631683885353287287149809094314941797675548230609022751848157192458139771707412084681138328749616196421021078326645957698576759646270926942861353712772367650115482997859032667918610871352622055197537154054159584292137142459664334835396745145078780424825618975664579528568159974145479694006886216855412402086182577213473348742582628854464763438700138612739638153223548657071730014612738725974255450567466328692761510550970113902234364667836078231958518317635434046976913746034241416122954287817626331046546691010641189300773788878044292281362431920180030516792546208595702378326534245736352359619117342019644471955960156330601325451518528685549560212605710698648681474463799503236811255438204883549432253132479717781768680315193272336118942478196712972941801225788545505053793711595322692874181421358988490529792107945822930629979867982923553328536590649675545867230574152040176834666691887598587028398880346666128316316966018515832576253072448679998309513523206574055381222982518161988561368543293165506642308466980774121049006009161894284042910293800993081655423996364197721715124538701752780147727778561442728379619789337293262086384032028998852481078248979183779106471309220152441407906371593197434028372861271538944775519269075825027159032119536508064318154570251035723571251831552466508233551902837003564429860840152411222369733323227692711543138702918846954106084129517043743946566846784555793041012093447847986791431356536309961561425631152691750974948261018918383431630015288387934354767651107625095905694656219510931394018317999896290943278676160528659495739702661256513437734705847772466837534285609022773316689141709317385344614327927667053727904973065508468519401483886721251306056183310826296702257150060754372173276747464996399064294648727141812733134786045758018817815038473964347561782039092530385273450683263811399434511392039149296837252092711116481852363979009785284616192032816143923302844030739199086230641271072709761056144019159461682813118105385870523967993418163787716679941761037305762605874814297926306604106391161048599423379556310955305742862273812444280971801775300581242424552346911309059262799188174551052359628327989433958496609155028175635724388337914149205364173033636385658273079413951127668873510549969132510682683698478643590551321179853395816801497264625180206255987965327542672437024850197527604252370670104596405297120040948015192343977208180985762332311608798960566144695411495887783861219951202411711814324569805315392445018170160754555026007418819255722426616387545018342198063823106439070774198122637470539496272566044635530450908466638232614827609236938315100822600545767448219482477804242270724279078988544615799160631934914735534907241952819490569517862243456759024061202854986053635237697463505744428782781004313000409580999201359012135316694496274205099537533589691678771121977764171287198198348745503662603652406685467667021182703862998440519031112953217404537982967809841601816850758622619328758966012928713783910765599629938078137678719264506547942494376142538724345635646362252653034309761521699363480991488383311530781615722450343911886114050689857942508835039514196210659370530851131891626606201896062581943162509173752175689737700361998476857573138207519812280986234419420006335489242962280731387187603732653191682082817075132063670366412052414352111848293562933527857517902246234140632254612982227035817406167838782766632417130952856444257893701506807599173972370672611110193436797318468111142711692220493721385023998972077239581641631835102824073840216709021654319140394873517704877625423486334907934328911089822063127999468619735751801289180966870348717087199936491516612597318320544324661024182764303787334852024577992169593983581640034483101537499198443412916997794225893966084211188220758190295838753918083836574113087241361229199711338081220548075317763293540259805937617565454655213355493438634060859507862008655500604464601277624137947455294241432343260667758191008574372099110802840317541270512412115861806702778970543274888333687611408271463355331762835032653193151003780479745522574058699996784784810624380039073246300903704832896395501330684418579068274336546440151636481000172866444938178490959147520126986970317337502357606912384679668802534919661842657204223402180428513375939628171249921278148053828121912496925540008338332625473614051678473032019184416365715709796252301668107682237679881307081314713404913808648806402677970934619624818622427772894060050824482795367530581017760386295934389229627368137332947490136660734299610722579250754484242534712654003163996580567418869437560947024974003433780627363251710431323431428664419696297293444926311112367929629623669711548433943822785321833811999042994664013693939296386900308595786965157699507786687010875782438138090370573628165662971491283863659722854673070514287611364462147198678613490370589054905492234649353501227687788662264804394062173578079154812523005725917995912054087544977346665387255792277306415397235856874265321768692923534328309299732419348352249638381529520853448123428531332826018797740360936928427492968195271068767141766552402502794854774840605038561407777135330840206773081125404417768383868752547355341633214662381195839803263278499957140753011594139838912090998537135259881860821645167885759164821400293592729206890045355764236314868292080060825551058756569895129717888712730259439502318399684629065915752821764907073028533167887680581454270367461092120905579298453608335688005723561157488175384582049322291691580564218732460147458716525989995817533824803936354865998487408145476187506395207203274198790622999079795596171232392541923571615886995714303593025982725353893871553008178053693445437960427151002218322733201441776608948506961002839142044652113502319800931120623386609025745000471623887578450208056130470750772382379566594703130347938601877446758777939074476089785263649829273950101500201737841374206544852587789882125513409381071861714020350346471948826063754245529211163181470090488251680762776288776720608306425774211874706063046744767456038550512457376201726035238663761734893863639938143478489770859576589039758791231361209039864154381858096539774451051060543513136944319367906816326504684347213727824061904129680251803177460340476819634871320202856344716332574080194062953671706716483212706356109695345471567170706291657441200716647759593260242209169692903264647521495898466167664562288749661896200431187715337466606823353645452023979219431424737917960830828829897953182202214010187035301598140191270223232513851943780210246238676825067917903779924233060495006578023153737522815973557416624924411660176490943024487685349074371336800263749496081048599117515128386566963530204559776879663966069943754361454203470947626267432729069632679892512491951876129261524985922327851164098988562293091614779549650091213940407810208095279352050726382687856606876482261095953437003335052808701715600578570742424985709821493021758025917916207436104232060719982337315008537963634331436455836446609169547128887151368112560751966285985233949669163172872424934095349044381319448543476342089742224610832073725193440590445597640523645865889638161285194375858031059916891457985775721651210732227945418425531371235378988351773487426022428844403563060163834368100186995595785546723463270769753235615379933683987838517231132068401594260640103783514073967740289406174152106798194587532085945209192474127229637864752417970791452101413815765148616885199386660985407134607909136779584786619099446848845341375412691108752867869504170155786738231181172639190286993258499059567660308835419881961411637173986124029651096512103988996605213584587556464529662374567719196756929072815044561942505478773824152829022826602889255526641761183336830625279116368966665466029991090381701313558348951686296583097283582357364854914084233076250779220906737614661479390986826708705901382736395071561276079383373285284151455959023558514077497500910283171274499922074395893136555130006706727883698934532385809494822768500497952647450631785323751178967619873208400467224638358598139382686177746024133917688614469276284090813457504005665834417230878674631762649740602292307779446879650710334752228339489220502015379119775190564361204081004467800032862126881373182512437360450972734044844121968606520732008691636042877103057661926935355747381765811523616792036396670215162827641093368393295780251391918220263527151255932720667203906148529696349140369091015560435171487067458415197395560845580344207408755701601615340041420592351497696007293806098391365572893992761913024581529506211900909056341539845572462207587078812515904374547345852176820934218867466362479116316919026843381450938154799861442567423389826539203229147364694459075506923656458568017564043818166563785979357604797875918646974120143478549832671477474974307746545021471492783727193181324573465125048918262539249238489092985743479863590220189788619687346792290616125463183005030203629573024459626270356558147027712641596302046725502792546461881318158428667600502014424426945022040958427055521475626672948991860223569735762170362393311888439877937823682912229522598863148445701965161118892046689323759101878934090084658976701461793360885285458811666015470847648212293812847732892641034426180093100402584320679860572753844979450924259399185657713493833181617429184207440200727480207748909783194836344715393379592806063457313792875713507352882190858895182896612461716201905896792466530680454900117895259816165676846434933312027888671831524868010768792352524571166990863665693812282834516837539546583660181933406331024612733437383761566403892203437575710723286440907395122978235531933670931956951923758479363117308474185538628652593278819171412158961636112026634416313493076313594410520648067635606529210178201715426869417926775200175689719467815826283235399818031564913455161203524030018752791773848542796493203780873815859976149468088063097790793986276949503831207763002742084734351174639855550821211696995664811177408631122181070511181408561924219972855680887138232752338213960929422686653194366019409263457167363103858541010294926510277796784855044795134518371281209097830968893159390168328801707696593768583991510890936884375783956876488450272463374465983550060078328145402037786869489287984372755211065037834276815492733847267801068261390964825349267522340206967309774998768507844162034056325016504817638163766442467623495474994886532218152182223522387721480886102937539585877718300117052927213994987513732984979701385585440434064295485183719382807342543251745688328551868331066715276074206001194762572912481968421694414611929898704292039206857448562429474354619121240593898003344350727780689252449505896573592233753442697765645302611694501372440599982970293795578703446037362921148881071319874547620934626463492245492757637848103253302323285798903529092474474032813308400805649819110771586829744192476991813564301349112062380695611374205456166347396746162333970772144216724882946859351766903601615239620771243706886363088424626916355526164008850741479707288470778567158102401696815245746048310747789231958561050292292339689338099386665945887763763036253469357409690291561558230728995182554233150934886538963404526731468012368573461556150215979153030638870059163160154089064372561724163573048413056414830252479894448540417905836032767748746382053846444134830727286996062380464267709186979001178336658935644849880573721048900786887368419249178109666402360866857372484769776273504407241794868386049934081393751031611346456193798758805950351568549884211517692019789742119154258430973221205381446860286043240677441254695570719315127311649147434783841355996221286123949702177191175558894520593978664488678265123912915478419899564560080268729651375231188953570651099203953097222641557347127002115742650164866068226678428845335630875029446769354846341977346735906080906768934658110644729817434167863976561580613102852630666613369544055269447258499717343028260507367433020597652866019964598592417057922365646361516837599239519417735415248079601917225615142734316982542409573778706740620136696082212971584375191012521966963286222866650395044710548038415137988575944065267535165194059100617793022294072581770723259273786568284100303572194764961123084233375770769444192054193926756372700035165118945197245819680068137077981595505963943441714073780449396318531841249964737818337606956542275814896584599005273772323795769652743578048426274372088924115980537502506048248744897006869785674497465615161207368926421120995864918712067983026118240489257017731682754335740705853116238484250368555234197599313598136335141365332065777126135664963891471677441585732968533336323764281801353955530471167189507191364341862410523794983810257352703178523911833825005700295413974857751739421904133641558114229648306133416752965442816072765654960114485315747612030535448176389322020957285257280760497073221197178190211043327591919234396297844206064848209973164730606859887495479705979324808057048973453910400062990594430538141263184187820548747115185245132034762554158185577911423486414499743404376276834376012874092649704418508635803086193573022060176674415050572736369896719908945919766286514222995272063252997885712306255171600236247099391481677174866154161680285124749900775564032927230028704066624560909454993751503063590237142562092254978231740863032869194629246180093126420708774343873300787450675985705762784950103366032315248745690887265224997763879820793419784735788943702146966632989364140302430748300937561161792131210779278760154357492276250278367969616635049997636990911330620636261465184028481461652622323758774884642735438709219381378735728969604623599151976675447109285856456242642623380839827858811652045954750455599270304104913366625103394952289130609914607274351191977211396446183431698322914565741066683646595215261299181849296997731633095613950228959532301484815646244481084856504684199820232069385370662873792711360585584474261531189376585333220857981585252744390954100317667977954501673007375345164162241163798654874591264606771747303331751984963940152594234941547752595152311493340038749302838458894706114963923176481187089020314271828318657744921187815321109158321824031306662266548460184671001027126823858229629230777754657723770878927047805985634401668400064119641347458324959028083067607714496601797567133511928591149378406716084344340896968298057543516786124607080595698299914722135259691313126933035612722108248791472328088421411469038415297008771611354613560996973666798904000072635466023426567166510692423446580648641161596189152629799102200973615153019188545859825930049388713096446980815764904038354259657893574929887738704105070232010199484804871306042797255944207021706247090957495678057705763122361853478574711071369349804235283238450429828681273457600736816622020099649437440407838386209329437796387452419037834827493978748021435533425446465960824295172537371059997543026166768838250258096345540556963548146833436904687065427473474300374194465329286640024999541827408175930918414089101366987652946578233008280998662566051793377808691114460059327489256407124884328555132319976120810822794405647287366464945084580608831461277604052595204850415823326746887105567474156487851770025086047153589215312378590057939715999701681197069325632713322645377628415103617946479193710026092449144831554486267752574736399612876013846080553926333458695974579748693614099105335402743304655410502176698044334935953857047052290195586339823816232237897295529449662822100358009489161352340591750632888704817412784517053029788619987943359754871149878202690405230190172043349845729900831068867653194519715430377789464126632500455763891027237759976424714425727987129967690009582843846040592094592369347908504952146366227682479250874276112810716074718000916749363438971677187514976866823405016559360873365741113551421338807690278912351570346285956438881560823649757372244001993712931220151717405599357023119987822818639493950427910528236896124252213065568944021233708991917356192656077361526274865252970129134490422913108724008980720136159330896302016129133972595998807045289933105547902065949242975184355864502912043172021135633043532998781926750047057879120035273685836337025944919361687439570320254490204656787680628667180844597887615810174226118320948835211124328543045305715612381448217475686876396867457133715380064181542496481462987069495276160071998419611264293291934018862487250962154204440373477616191391466410008905129359490869640495436529592941331771482059279965559056248977974394063357613112856234210289937873538536912497931013385897014342774868910804171577544860361535263440324919514870347861828465595088599485983262574759672180084241301252535077690588057182825728917782784539317918944721262860198511148757146589994925696602711416406035315755583376174226366857931133601132676672554370573331544548865414618244143936167254377246040157190121226706731187613941193191698474576429288757546980907085718457129001011599774040907199508933291151189030176959113804715071872350775005264370345391294411391343969249554981849993075876866595648217908181152614479772705648259637502296663309505558083137133450129352617342858537803625481136352483459122599894873489570369033908393884561839487543808836386341515292938550443515615954516825334870847735350158884331845488228512474951444865357879413069036379569641964721191846070084819124166503448139079878362517104738987028558924117163897657075535001231742173324424991924972307644371794833277948885242437571604363372918959253096718113928429983677652068960454185219512734144131631283743199253560199527230070387082240962745212515747793893780231108822415171004250401521300018603974763322677798552115897462924175269207562865588147917456982875617895796265683896681763654138639973542142165798674194779792098313942046995126097067124589564139341244884629392711427800075684868400431825662308849538667816530940201555080039603414529711771965130864984165462122890768480513765809426669447186284187653614144293915230263239766512185236863104374843599773246662938092981808528676232910597624203181430493597407848855619931344507747186899317492293283839490947211246283764829882456130050049230764035754552265131696552738453610178259071174827642476403354056207546427250435134212474735989827800927576370048893035865214000424501782301197485092197100669516222272056770277566624934227294955040267867861632658980838646201916753620482201549160581607457825690984305078628821696430850084721246404825320317929056314184816317473043921342571297738294738138475429336770967061164933304350282699473244405890133665354716671842516214011554767074709937775285303523040230661429253865063736616076347718954327889106677136861602375246003372660953700238693616099554166307795214701698408287200209912320597533290872390568170135490452831481791169003287854375817905231559077748784974221011690604615976742487178190637182330929550010189970025824840171269236260456958537045156470752384071937649916355761425675792014130018969752224319423815596018354228830527046148004296713460998966809290159239606162217016749621141419058159261601838541593227749327905806318117734555503910644334546903759743915217698655943742292481631974092916534840646421209001613776506237405235630085157237010343730768592270155978242121239218379210707972008182941803342787863198444088425042767894189142880716061732633593712375070881695834380675195181164688772979364667336182419129625130781808512218219893497848050378439241502790538605616612639289217491122505823419984334203805314545492433808588042349327068604789040841299265172497130241762904680527366508209495829221517312201265847597969834058953933519494075312111009660964909227247852693976100238671368527388182816280556308153423939619945886560091563326816054189161172911796795931159194438262621508495819751968214952076679080860000857369976304731827803264923451542247206580537348222105512839078721894090360712796873896203749273875496713060470303764870222858026583982922152161644453985755606823519665132706692203557540131576352752238208718369119328410783980640622573734022596984889665846733410872335948050457582047306691580244568145026188604470768308057504918522419006666301353196737668985129886940206822847959405886048942225182697524257196311175940542041997607616714029012998077159993547066172073892163031247358823805829128404285249449246158872905374920711508858572604212758269675794433244369524946655147249504434969191664662955053448384964691382045436424790018230009856141416960520052445648274047554025051247348122904510173557996410081218555118001261675554158487265644080977658820380435256549264435713848137045697260517936438580173495057415142102646825610111361098699603451611443089077868076484317144393888341451530730445097154138797256282218792993131413370091163515215590436434593727923163551137181222466899544181823325871711923428966919147225573445689168571995360971664230759667824627489287265877308375510607015506315271183193830190391478772866846388769215058771398087023091332788873087751496981892390115107717484568277859312382707691784056688120571000273953043429127326288930313268298333167360863270541465881192789562795385962996683143572070569722475319150527426905419802056501994660489755599549394176616369010763027145692777549335726366980673341505178220880022186554081224037868537786447090359371557255115007234895791810105956031547926487610602074450607341636135210318902897851098432514412473001712073004215680669910056785509756572170015723962577337325923369752030956795096983674739351228578658378605600380350713022655482198754174535434055328350343906664010180516920157842401372094430969625788043828435009455547562268901513336002436022408684924183514721151032049459018413685281303163768893598851657539199572853363680391130034959817745897921610139420786895041553811350175066712863787610151406141238007503886397720963824991846473376419210419384355679495422472469156097377487729192281590498340232732927499397435001048894746384217463246129202382748533079033412191241215401891819388124631970230023703954150034491430544059148880794466234309778473863266161008939470207947352235032948969403006878049666798941356793011870509728474126973068810487776264472551302796800270061808953043122646294343854616001163609990724123412784634635841206447648796650421043620887404893311191770922139763909854068820434208370663197166353368224654597433620421767422572894010295781047459353281235683619568768285893665514115347790574966955031542540805756645271796997343370610624691601403902845250489986775666798463194248330468812635239498690966485448407324745194334979222086115790484099065420516308387286311099845926738466547930146423220305249761227529103833745195296302285970232835611705992840199813402588556302428708629670725811746252977127618812346242995804232717394186279777834855687212664291799908947543351791545101903929516000674368005327370284105848618509789893237732648786275508685968339843414750883684274896955974247347711458094799385974081694832408664058311409465879082603387364478234780090195921554547408844758485186423751797024063260230705205423124056388690922313638022466917164445011063346908227924023733755679948849935198664167163580398075406305923421333647185696586594994000769042038627805325042903296907277177594849497769175084210314897581644270264848880831545006651744109477811935065549441848792619062142933030401725355969670646334997000786979243006256195228039081016038404166090233692314317953012002479385825114316994382161220602359060275669794115435539988302450750276771098636424930056433739456520374009249121711119060023276867815253407103056321449242020453653869401332029623258981440174060963241638516853060810245351265329830646147288531038556230673561741036773281290964943185349746925702429184463600940755214014726505109126157935472327491636138290085488803094144357752083025575944538495020748972638400621818066745807283573314438342575889312294022353569712731560927965853621625285458350765787542016713587760587753984681211617165260579937210349756571049836581523881593406549703778918964463158760998450432610897364103011134445073002421915934976480322225329185160743571360927696283214082595716170445537657608002494316828177369515633772532411884368668877311910121343775461547681496591258224344281464273929617284324100223907183177466814538405386636477554259645527821941472110387889251777776809336840571101245146810269566120823696305208468358653827821643016364105305656394640043212393353736030477683754723735906397572445593357799437866665513544871044019636393871181454676409887230713979106678808362866654797334037251385657502475368180631967702558921660767342854527657246023053282092160682049586605382742125511086564729146723503210257817686288870969170113141269986851798827344919631280978430616617987307029133613618816862611301595190965779938907812009335755889463741981089557995957522335463741323578838035561434878706071580909599426459739970978992639882840423692273258880841625214124243890266291019037890811788408833906984081558661021948483759830143672614824974225880890661168161435378615294355762971119030605238197760190796863683584602465111213256959247947924589390479477426370156871238805775746723827517070478444669612781666791800265697928144116334261749490739426260593593348129646436359283267134296441486227928468858716489467808661385048206432780059036982806181194089831469466676336644631125597987244426517929471038205861879613391985856163119264073806269293774717113481245332800345266578816755159510712701907903353665068059813225980117994394001102545071156664990470104836462391706516611069788737798629107775641326361680690793194169852506719700979385864662054910995246792587152997949131459426854824357125494817387612148560187490453305757712378186981536332129989204520860733401674672545040062334238810930643410441994552871841729163988029529588186212004351057914702247527214389220331473575584452386961154191127432907501695279317521061792092187584833512979764438322495087138449750908032311977439618489741160727031566564180522268679717696945439424900924508119375152391034514722003421585688299643044564332943921853376147447261509846536629488325037004283378873926071782690879687472835380199477214212232134963959993065835660131794478349526927895028125208022490424029816642228413425716412497827822284750570997617379335674327720279924387494611348086034516182370812105235611030678148773472312406098722727767741735022018090688955911244940654551533033394167905387765849267263975499191249365294549992812948312898515176044316656203745650992150061250756343027075028649195415195407969937655538790469331502659720528248393570089178779315413185735922601773055864653885725497128860621056873985647547997891441685973036554277337888776303046037202025448488527205043551071769030111907918635993226110454299013366681709869050466902168068721404575039799760267111245369591402335587740068408782575373728209145003626299438687851582526978208026831253117309996898010415564237931518129049524248691343133479607301533084759061247884153143211655827265811333298624432954128955906583923179951443670452980584482880931243386943050777371834543242653728606611960580275391476278447167845486955431042938128735612501862469872690418721149302839847198813394222926500716918227368826935049825339219927176275755464505891615455340634277589366380841661060605105402215045897077236979212769225685002555975154591307460873026712083164709679428574737332827804582418248001498214363992574272052457525609476147981737387984346877677754910707688169044307866734853900041165944128151677292870288999270230970927898261481676372700500060406778418384460664805044908824333407323516963152541625138515722278072621255073098436046972822379283782589576367737196598654944110175853415409529302042311965465713509148103134142387291459448980980443537598936223630510492154312054803585643303630242358245181613988429482985897663617438422515940915387355156923448140835792534092463462669460575749378170297788220511820642889073352594611523332588722555657140989074098349392206285222361697858942530299351408750195548453704849920465493976314123053032390077756701771551191992921217437106369535804033401866858083347597122123215541072059784355816248348817461278271758780067895104202821109367248928192229445738672320399829474036426131718296478374018710163672857789861978777501151423865005846040129306236383567490817044818372876009182758080464904195460767239022172239094311132660999332973076200377416442526866802515265050727823838535158575352399716029177467747409283008836563364621400485884253171858704962877672051433516671322186777502126633498912595458122517144694258666443586218712715880719845948708082631267370094488306820979049830729300088415079433510773936753494535505283978216423094717611314688180174910748614131357136804624001983934832521296828826664422554754116415803198794679987368131982138053454490759884652699420517556137362967801334968366990366896905005306633296364881311211662630661876779962709375776448911333543179727358399580513232999350208385152455943113592843547163281162100214490227677936482666661541877832080836867519855671026764817088395278822231118995094852917707402496355305360559210670108855094685090453894147716731448120999017783939899457417939831344461297505107867977449068534615740606063384316888219331866157115774691499329835548785713428874484139208712770337823281110766736880494077106827156552752949853592238405648123394423398695516228063479474503319213985684008347772609475300923274168302644000087767121562296325284235084106844298904126289024447582350611522109149262117853662037120212917794833557868481985466646767905385787875293896746271404324552355621747870030730323707737961800286329806962733913312381476232974518166308701453891252078737243272158942221924612626756834670561973910011100180302835961159933484764096440092107734070650898781238775340246091410379976751488263301826669208529132138663142734703793392828049762624161169880033797214038566204713539941977651942877892972259827507768557867486569150877094981167504049294038160791700620047596142978672727103808581360331868183885199500684376436782201407113321635929664238665077110480303172108147841617718734319381520873924986788456619165793902264701904984328922590333401565438535445673693434283720197809678895095748233899919806224826412860384374450616241196421799265658543749704158204719422357266177556807140476173380810004445818171003231945117757224694787255992796714570819208228042328286415572019360432487076121659532577001365509974423623114527196980205250202412216445940924247655832403425926535280736873512017428566551024460786968258052017377915794393411551802309767407780971516185402853275861082830804595084427364819893316179282327901988184938684488203819738866527566430460712162952433359207563073567500622068638886486084064406641147912262506158994069414104597291008428331144586274428356167208482588666913262766702908589600610909686844702751640018560525574097429833196766380403034231543089573632220164633138639332983995822223639391683308773441459366480467440079301312492371375186039063461254252291031928422647778180211348472594031227934879833810720475754192748820759724296863991372763248023309150773607320916317548602390328761023736402997745499730201639789691907174930635395100400848726183544863222153834861840440698692318028166300705958297639309360894061981376313613568900644045561398323912354972711204687664005972919778897882068092332232182688285863568174528853080255748671068801186883314638433849678077803840396791696718055090174548633709368897310051483943722404322806900639425578826174438415421848329663487234930780177382698890705196350623697780144899561771257009629910250332941950827084118949321684218760755012345473453777678980860975799615373569224655835078334339160870572207222815492475153161850604086462115002183728473054442801618786010981164059549053605209953337955866696948200297311633893023866045543763259564272377037482973449633435367534935215013612952991943325115260867063061369295481862459860828440293374566726953582549425185798177730479896774520795902892704000262519496052220444877000901182256447977832013618761078546743668090645433403135658119342263830809026701286827892733129256123474253147985808076724818808698891760240642596846347340867574134488279473915871500393374866268083793743601491467214330604540781661057687591215369196938271766401140289410854778130002846937643905224045198188388681408742081093524311764170483431879454660497338184601438209022576145801671123675722641585154431427267044705057764983203271999640244813482254441391655472262762725988049393577112132277338112237047179381216512894690480902539458109936469027519690157499077477007755387724182510170597153937002990113614985429415357836484619419986915439583282220083957277653126383698305136501084778618817470847612638287996981685579648365554860431678160510153849035668100513654470160614032688213181293362635361180000004966380993913708091639790694120272759629750511005051671573455232113810411381250300994140845289019727189378121797464169065272269977426095684049538325257826779141471419833702547111159052643981838377607273522627221797282291092963955854556546513089676518121691800999692450489446655567579176625863507460479004385604540617724793338050420982403857726661054261461911837254506315504544156922973118569997459842388579117897503273010312524025153624548175831879312590265308341919851739630559288499147499616165405854622879419431758052004219399909424269674370213191858255917033325455342795623105032924643174679202596193860215095763620345786897777605504999204407242063875465708662549012153653344628450182942617733040773910228380993424796753486905650721299801774828420853358242826310733465664556189933360522292605301223413442295095896404168226068595639379433132219007235485177857684283822935327406829167939949583214539532935459423289723327373034514015942010344154489174214648511627059544564118053679603363457562495164180615948086079023081460521972157586601230346959354860161114576825341279933634287894661306377887434274961036443693592426832845324202899429764508426618099871313677051075220903279966423243334131175537379174169160282643898522235237735414423001002264067574151666929530553925005160643480638139976584429554229675308137939662352666695760210932587105525910895880998508791647279911653588004213607380237376166790907867697035736518044762203088972493077216152105510210196073866747220645400837893889718399586469634583855353992714327800307188468626577672351193145575537844959955267438706680076346717243629303333363233549005909794030881467070913081202099503878863073655552218334590773034859578676246778764486362300479798868520458055667710277807697378037066746186505153642551685823876332566958859138861299909647353471499367137676049036987501719057264524684175635511080248836310981169360623886009092210709953910288574889651760948739822311052788301995293533463689834464257522043885927407837185053439973353410426009087874313325098708878347574040159446456190780378103327446840901185748895920073465561925101899225942330502968410396354005017720505976937504885897117820603323822049085074035411650846705427370364601676732762994887643224914695486435191999500024499199909449474824259876739400440379129562692771281735328492424830148673738595743205269731227546749322707873234057307020467488563843582372018342701032828565322793287539712494841265435894320151801434021502250664990883144314188344671210448663363424358214208731384886035694807583108345911683413949832328676050274809141811915840652813186894636317322618380088848483691143455332166442228464204247462305142327908971361387067481271920512228484754942617122259420581661757425100783426530543957033314335812714843288513378436233012029769735283859953176195159433316212971634605131243670955372763553007469931340633684047087519282184882978973020513619855468237944195461840887102714092434991434603923921753761795857085920591944297736645777737674929845550874035729008249903151012168566685996622094451603588143457398651536793647825110814487342500154478042604821616303289372326749431377227835194138734900208672875193750610969436377181634527397758116717231542726999367772929069206798090795581714368972514805828517428851124620218867494154523531993277854239501059075504527324961219983854202556015997313895963026363057503456922669978358629962648206225087970410244315358917840941258981859264812616052383874406900819419336349412615616380317110718186775210499094716629540240975309515269384825284034860445753344493236663586548389884712825446517776056143362460922063017608010528814234575593044511224178504433353646415236833732637961561780129842244833064782489189743102479045536394211320407633468208228336629664787712077629213645818872666737114861087484982399924854769342697684858784249728140370799009558872116182646718956385396744350712084113473718547947956292355271152437513813953356123326965039861105092768272694830823165642195222908926442631062027525133086006281303345052096516140206047496457150349483610915098957850829206975096615970337192915934752002727077618370194613344178109621379541788937373090714693683423157979105078910001713240626780722399716592901190787208657034513507381847978651354066830586320692856118047010753349633066601246168001621843618336697090322661846109443371632285903332288418990040114362795379026780708296860202529051131538544445370179959264515288745655035593231271314418208501127021200772097968326887068913109107882973411742145274374492454773298331233995754829189110805896135457119272234811468853969601617738991729251424788956253629888877527320884916185915837046633358389707082399274224632572346945094897486087495702255217925886714157684487616660768393694026650555436014150245908051580488481766840804739346771718827405874336747019236214913557622535519249384474977851632434370090880572261968729616482556925745590383231312570292853726299025342648729470587435460069232071114828105602725542271640611966326992072178358387187338237570338477251308419862855235031626925071989389128669519910349152929878700499599106152334415967120695001903993647334133354525610926271665056791660636183585125108742013856269032122841629678268594487509805998620337296669025367541958637880763626806636144572848380122150196443616158247260737753188283810629696155598996302394296444071972310202094966384520436578056519948852469836079067370723406274912239778681722257217300206108314828831510467654305266883998970699677526761338466369581866073232093491004115167386426683014019301037932574732295564388630821626298561416169171667435151370746443362145156709496679790370938860560775993351481634420807094293289851726424055271309018295439485417175457877339556842796692918145111868189127859279378311811284269466493629817021758165882172093434477525333478470552714931740565453383589006763199926892681768452518614567106849431371476411509279167638410116800514263498500018029127574814922117233741312546115372404241261146489775559497167443057829210204713451562046911429081220898150373576646950286398005646291253073074855134034666443422562060869770118806929729746467985240214201306097622689996905736037236924615144260042650037229254323105713864602281546950143656138572973757917198301074423112409576434474830905096177512392643569428171591114592985136713787723337998097227332390806524411294504194617188840099250531280192167712046090040343561262475246637300307683758161072836930932911421203839280492243198424131173358617354138940947195850561031523470352456879255021231868304937128270845300878554093773813673597642826734363807446152345037054042578775959428023142580740770930334483531868294215531503744580648126149838428900497477844526462031757157961422506959594860484238754870139955942570908968404627417074676461758172593911452738671512414316099561574847653069414518893349135155467672812117297510698835535448946895541792143512839103826637817561198147286359327185856671143128800474145080516986207601522052598229856298254010840974815316941287343878265474752218451722134951380439039414567809298338205645402448544404488576448188449550860569884870529334413990264008442266661055669486159511673394181461700104357653288695540380211091297373940525525852503146551076550586517559352731605644915149910589301914360451778305541396797007308459029830011729186408047089179732224061064761620667511754847387051698738190198637600975717620987504976217038978577457883285088433562693279398679759738590174666529249125935009992331007740097873907709195466163135748883832457917836481502584105312683745961816916908861184891336358950909267710396012326746718763675993736658076000822789477757028572545189526757233412554797478589571851778705221719152571729202094114293352852964717769819151804669986036102600377470534797353990430119479418585815849441042981684206832887178284787433936442965676633910257497403359218324458291630055402116262138488996863336350356757565190733911175107631478184500591354109256468349591672145737035487664876364474498630325751956059174727227037884814142068440721993786692688887679081185130663721879196759048788509238916781138207319266024066997184755793365658688790176236426541496579968605633562469971755982292495090814857435208449509524343973052689195674273963030448842622466815673178457349612705492694639179829351685508923955022482209396193292635972976350901581979445912566581942630042266041875877345714873983350295387027468647413366272670848620458447959136030300222934525467939270977274380955833114601958710112555802004271162737515494763032261893597054488886614737826746811154875569888371659438699091642922879537250188523249070077507903244826187988128716475312308388086884132398133051551936434578477102841745269072933175442625191815850744306608884225112571527913120195054929545813920927501618796587299793825228894676902940434137252684483245778721422591913337414483042040048734191830469108839253648105786925989292365654805159405246373368239512669480885404934341429113984885737541383387219314790421992923906995895259676971262702801209246680302015933484071443894154947822827186831153309402849563180388117644546195148216652566482392418163557281088177974854160851995120917781349559804703676280900279115814022675334596529024038401415370304571061772074432604976077585515964367080076115247214782147016814465329845794087827896670711478920690778832687912418376511623586824580966131328694002570304778565679543530124359218737036140945981492729486575411828778191815537953458031248712520199147491848057796304583410425145503853491379745203273450067316529666789297322406460072341525966606964325770631119228670999528155683428626068485567689841117902708646410906612538777093978348391204240397512291255667243057944490692070584074690684148445707184328804629155452895728744969776386066175178049292107458646311665069589688645134544683352946111653877805815972574441196569652675824811471482750793941380481752409064017462920524911455065961733918492461234956849624365574892549488665471672597945801689388794788582305331540372332925333054011181281593564917829201201033322762086771306282835894330220820966795206954101844770840397563685644491690920700786355729074955695648562973785006964217506971112154254787694737838659454263128708693766531914450992007234701918894614563693531867944467168960872697137771539609272407193732913019307791695698160083570645020776409514715913481168196467727130902715834890001217290506718377205263473738455625290115059670836813519610964782414021255195910549819897777579590271663998324751752889354988113516211888552784534417690520186354337972485059989211678571846547319628314423599980581909179109966000552067768566091906106034314273839263050055645095665424691748280149887562496909074344320002016699989322889552086320361455262385809357837129596457759789330308905680015756346081885272372945453100705893182017129317900853339713372429072763919261600295736487908032670253943455220552373706644752247175761676271903180885550003591221378257489685056622062525593403761640234689764640590351559827275139298451867627837218651007518976171678904134238455124880221252327590797737741715330662133585878057410073449010841613641341059773319078766912851133595358327795677309689985947289843696857350581581996279510995996224112137690019970975109433688889143216771059572795820160063787310249900599512896704092023710669302518598923923511352995306887258525706557010873435402989168104860205147409164032895946453443137951632024852649662424137159130047754260416607380971679348147817261376493180764686949685247498612003514234453875257009027408367217372753401036028866719150114154572089933660382720578396449870674242898345304365045645920752738873032984759253654799826146431695716448491648086461955293852562813407980173254317005141433915536710052130856902976139565281681217734414354354219952137046996839499024286653430562113805984777687240512868012501446914339245792715375784968043831096265941825260899503158604952852780460687664686445066040655604455974333076460516250996954234605787637363633644544423536593288786642266014836602049753706145136717982029753497843622206964230468976190963767813141025149007499584068821735643942084133037664720250698619078312296369141423416930821701531330023130086333353240473851242115757592185351083929077072208599524518712140783196776063418702313846793438065103290845749802959432702107649710194096483108334638647810595364500175923295654254245000382413629129726548953771092011369873134998419819553696219743185677830541277275564605835677626213370862935379512462328767949787054043144050827007071524232182647267317143041891246395961046910881604128460868185506281360536094830277026273406335815917029710453168619508925682339296602776628325378815219473391273033231673124281057366869752673777978406074103586289485430305843766503397284767487648246349177366925862188270449715961881360089673623407889013749757202795933558379751661463877273784152206511556369607096777049921466298042370151506451634847095156080268061500627551972001640273110469454743865430867096257080532001025563851777059338046796149541204861556295555279557464064403725419417125624532969542501380237681205991796261582311818740110629552168074257044629680218815399941713356753721985287034328793960574016127001789614567384313463265564739916948516344191538257245598496606143171251374153788356170785559758986174204583600754341207144978612433436703811055047992191660180441021664795664506707080347313515229576103781331346103409454807324212278992266709456351560287627913025863110929122162892489079653925440941442551520457781212824233469911400438086801671548209806881779932029771976906569959896902471310853062903717147235185490838216851173206249452794062079237902641214857609786756331675985942998947071855253550972010969314322949884661583941299606219692493675870643691913457223725325533793187201051912107620634878119310349761834068170867827007200513688171401742336300009144634471298428206653526113647651133612268809134784971410845840602723375626226306624576700015990813675830593039127811422055052314101980701362245664570241017614947486159719089790463722405933011464892001185690324205886684039509799692889616579911454944777173377048577913845514950896600100252949691332269839254075481184532084874230473245717085210884973292684912039458234904571883590358793614077543173296818050344093423562917384550089007955827934792580102981919358359268812947265018586079405876542767765955723242203268866421241612327935170524376142438841873109077566512042589495550725691119171485775588103156423556837729159472740229610894944270404523879346317557411875543531225966114927369575005719410329441978683162903171521800470577156277724100209428254397715577659402924878852702944702954454936766238120997605831055112092662514623323315677564897704231547367836676033744292435495638195988389189590600384963587655823756247494152699745715520770481031004703438491941883632315820611957492758801680402663248210183377638338688151980096955147056512916289389390727786782406614741821543634939717989736087924291998657154437105583569863286942135131649981945222753058174610974390704030037177933846257105220988365221950451634140697849195365011865311534824858980080050961754866262109805597962219928487630373025428170213957353293979141121257333304473896924322405087681868193276417454972552563879641538143794347736792466056179025640940554145006319676699093854960874709692485899844600031033704791488805286208217746335949766628285702321926218949835933424627569729887550191550685394690590672604069392468918865916958255529299461970069127368655630978203332355231130922889287612448858095326803048802316788213284361812044753214710972121453438273363319486777048428753567888357447660276551766330398559197004531515307504676785804211461379706438314025436725029952348674417901915181272330732274523354387771105711184588329853675818240692275142639424600047038581633711078756220819590353234468576563483089570551839764676906124212781371264730848080068535721390032787757278361895818266911932789562161311035875296149446855322662017358942984582625401830669865986901750567865885264206027468134104629229991482231303117712716473610924309992287094545330529463923132850127965842317997251072418832872287601561269027775378207740824937764409917714566068545227923507689068275097563726602951826528041349776843262840419969979416495795201576490570193835177529632061516361051925972079456331310022654784380004072344245361625106205051021233256277559705688641638027235645960853986014085442001984309540812086586255418287263803964456352392080641342088302603839433245038102015842389509532165827290332055929918478868237014868094430505783176162871405567729490605556177828682541549079462600420953248030644250147844094862696664526114849192233441193079152614887655160225076250729232460158067960878948608990258046632183057095491952861352454826133562906256622181662523936814520523311939194714383013320733893726328731798555041250046335100191385635806256016035630013072739463142862616543683355754060124535910071313002037169241318665798547763650672930998857809451248122212093781840180927467625915609442961118951584413658312193270484415484996775462962870950440824451570011380241453104894474838367738319524761415479454893881403474571903208304208621925097327241024253550218024546700908725067645943386486201704784704560423199076245271003866666257615311940081422104208172720564362761941947501489283403036043638844337609228327805915771260595873223711153370077307390723282386950171344844999089341783049033376955268286836767956968259252725882384856543726841436389625190201048815366397867017314944893130145073256317951994673592324141548501899906332017402217698935378225101602409445573473723816919231701900355869062131820266351959737313539631946874298015080103349524561293967467147153297049905326531704677109784209647852161757800077365728036999743844813106702358135154512984490805654950270620587641146491237876118373100438098417797161742844725063303325330145128602287899120744999549952841487203835286744354274745904838613668951139352457656676494179158434901191356865306678195845141927332099288324734579939383847096573483058887516467916331456040999513831640147566374208237936138803738237892745981294728177081045442202234697722523771443281802107932530898368437488665952785231278312707482238978329608070043285906534410803790997778828398693094322057284566425547832030964699603623047963956572695984422834001695059372581558325210693277867704182527494087384087902365431321682775599114757951824408727146716077901611765354013176735226861012418632057769948817456955538045940812688291873881172150335284108292281461780319815677904165552146637131970904617658488143416140456292329148502947370413500655560542392654956613302743960304377660318138207038628497189251833541020681285534491070800858079726316717417590545651775169391704703271022956165309800687727272476539240333835820320125841059789408799883782898396553937996441831942616571533568387223830071103956860710103845853643708584661107499035778569741861129487560747487083349314707993730462714595616678395636005972244761891506555368916276757138053022653810678852159135706416396979659107259582652435332941426074893361896096439685266385026440943282219746789025201903774848488254942780591185195694380691416948022534288636713588289261292453376695992861942421170142896137268525654725164311147361840674365114230553863106480279023451705109154023881958834435284337748466363122661738703941238291727544134651062967170156147998125044252574055271472141007283371055978710823883724294202306482839235040486376501741634369910894207133184893230200261385245427820680556992252896800294893667533384553138193639207471667609368607888270914174767971885935029484897679846221059525023417203823951828949877877132919080778329473441302199947804202983598109577377062629132722543515105995597623174486898839469513185036606078992892391137238751892622073663011960663563166319097503915078139814343866761566002018325167041339395520590156129196908039064561619152128468508351980887411393350801354961316946831708776938270085069252172197467872148315116244227310138125045690822523353481295451313150375232329378079037366208399228858715348296296446287285557598149272053384024348040475972105132079172670445874730490772407038741717228427872334765655467822692589777364927660454145984359283339544262110064192377493309191411336906393174752227690982268593904463239217620026711738114884782434007899442749537974733138545806407417716509618545126762391264152064680352095723877628972720183197170985311142535980558421566632024949790896299766999302001927307786058675214428499380153836329495651871923808416113928353480648249644427539998875337418912151022371135542919118539920158715823590158403811525433196326619476421808821133106039332859704691250217003714327120501810245787332643646008719829755720834705481861995442892496038073309229057469691550168877546184253236021443048728843596915198333480899113455032005325816026887638391249091283795000730153789932020255883245194720692248406893416245856352834811330168619010207717560847816563677202451921095353145797832709457812127111939071946655976728942286068046873221101319988183566483680101919074557367912809252001493426914380949627189744871605260699746652967758595679649087293596992400315239683983250810949475658963870724621578807886629919195217947320196672241475251554486798832119903338695961463287982654899227332009135643195596676474185392170165616106157627589698137696712938818002365686368006752654586891459112924121630731535213487521872732993092269369693376823231967771618644982811804870367966175699277423280920632859734068652275093730364486792114687574386329806253416168243286804688070965428387839355116983103444980492590806878518075957485802247149013549252809507460686943150718857462105755778645742480309870696691729516764317779107517729078335019037182568619523079782197975154790926924127445305104061726235746269257562193856225460079265620641310695005062259800669552982413650961455094924745551651622390657068500837621227473007937721441821144977912270818382484437512306261224935600916782999815000330060401879923655173807298619678215395511481957532268884996270254083900416833760060010001510537152927913649229277631251959304002778788112613500222669696604055580096556282841728757938186774069908297761071401395575879431517262007635012757542022895856090750525736622841102319874611745320543484290327388267610902253680573939462650353212205628980997255621011895457348165250192950285173268344222298155567260679069435157915499359492051093730294007875167103141675458631783513707519487445375989136793358471977756451787027684468785259410766544667812998573154315224100092792672912308423974909620242618655421811865502393384542110530431314706814466225028759385253769708937617309964276786227647831661163890184779279381570524182015491536921348126075968871391796928086846292037441900647515823637498555095896065085624954723187156209194446234828991072123021695195165521529192471782054982789664221989082880614789828235879419695811651773714337137038272771612280475889945967569458748681062594629349389247345348224645818964707539115688508262339802022369752324692426592034331858796830245515409283204348218175575254015510756261257617373264419929918277086326088753556550285688254236553986558985851474128224243016017629528006947365853295055212645496079640462308857910314939253980332951986694830574858571124462841975337719226390052551590887401885491637190252946837679288030259624574736816308154397825093958337805846878381532769778123881467024664460477147097495951785022723581488350606867130620664212006140019887280673523314794122364671193825297881719597213019953753984856306565643867318532492453969734309427740663389106193044990037498693289806787400849068787020316145903703941062504492956010330267047821024171846655257087374527878494000183500999018183197061303701824956031900308491506144177351729262958667439606684062119303640772747655170941478946204611324545882225522014195396371233779223312199373187742445750490843386769044056954119916296724703263099763450942005351898788189346957738090680449860881803907584936704806464360948650195406969149129259412217329574132086668585943036454148216267485454587697822882292037067545093890801451994795600377939635296081984559229989382332960686791814069094869851101068959250503144877952476076780785223517378076311261968607265248959559765634983787633797333503742703857362568194767982511244875536631786761797138135239674489273876015056886402391277313465799106812250035010572759472161202910476840827376168497282650793188182697784596542141748761120879307697251250783065612938452596586720727946962261981122703456654818890448547294125723475404993989550995413676992549870817005364149566011080998223519796670634216525294613229720876364962553158694367659567876179500527244436831738925389211502190574892432291208295432942455890845692000653203478325125280957637788270998874488816898849436068348395833971646156675710421160347914242830030306615740345712036469868272653514665999750645114478536341535722535561527635910440373556521831911450001875602047141759277160784825051844425459851924104180653974145305398026870377282393029333087589373075455738436418348562684798196410738965582708745590801065287901479570818865660447738813807162987932453633178311136744570498971773849553107699786022394386218653496092747810350264591792305776440022617593037849598899610536431680096906984214286795964541848760716891158557164750624106008655181805030408442030228004469030056442001225790616797385046662099255278899261863277140598401687415567443453381463235569517311344244409492199465215309899705647789151197975686909289853234144429065540591539147723522418197705369857356646878139822406333747801505639816877893164828569427668072037773628967720711941500019708435848379836104743134725602721519311653336866830668511781816497352919967782441213534173643805464674561134726819586890286163023393152037559661242012835243305405585312316624859369812438455514732403254058184678816718662120320771506586806434976732702500935430647829600215256143467087710102542112636855978861623873975420778651962154704681618075066294009820242996457631485654970554160568834051080255598972052314303102663542765671878719653695624930315788907494484860918973964732046568818637239075060192384063107291400202389316495117424127739456630980311737196512498851941967559704763341351239326753037668675970459785129037340349917047456838082574868725956219477674951467942104532760409873578382557162303299146735398951491703063543213870987899550794659077802516077242052009194193694356198302963026059405014521276694023093180067038333269220054523982180427647656977982313374423061427172358742146658638035666463524122212389513406873684411190572411153944747024371441386586664153016242148339577972318803981121760997515010787128553413069606651950915762149610760845808763920645478486951064538063905407802319976853780965542688812916900481707465562213715125540053078551845597224900928605120503687147526637316041782313212887397419373880810539670981392694215939244900612737296029644557052179939444247391030278005921897610225211210809936253191001144613472823204290971117758684313322004366114242279548902394485631095673895285978806722790466504378440060905005668662805662672541354832395462241209992042263809127183309736723050511251987553898202343970341722185924692950194818424338057485891429167540286544405279669775644351869209617356375498946501099291205498387974204769498507164005066532905039785923636253663707725699731974290532815502123002445363828666616956776893644063805565714308803957459155870486476420066901317311712627711881300899631272140018802593050668545354153666839082732055134170752451386426566608845980033652907994277853290215557133129781878093165853969915374000152320658471668852524377024194347590379656756578890787917483633191612015108839526846875441881952367531054601702757211138698228760907023431679797270180778630798622214434872712359367490580347769295486841858018196268713114567515349331541835250761756375928115498363222148050281300160913774702466683756300389501195143130112039916723640732545799010388113444707310436013673723229312545668637822110511585605012434915936460063957682152087963862340788031460058769862151977717548525348753219576956592576714736630536529431144865484443947944790026383846882375635120366180148479677588982995826449731365492340280242662886195072261150525766585138690529588521793602970753892105822404014122483853620831676098884006132998935115506976917028183976297548657413308842055982596294887425128227376741481641438127919767454626034422854771329944800516975842066514439669333590454095522559363083147091580152632427037170289643859265969253373558203457822209222556979152638173326243323306736089795398217795227813235041620631550432137155785026378547117468401605316879437006164706836834718577953354231185253710505970054564528148493405241011270134333665818419874962244991042024066096368855308005954713944455822719245903021211142924411315408900563196498320896688198450986097859481149962390245119992584429585569509092847769387184480124697979747543152996279762360758772653126443857294034794136121530865027451946726623943570948741921624632779442698042938468606816735094849383780227588674564244166881350415169592502240564824795704824682376983746272132904579641196087783933793944850356466089534021639067838921331674695600041242890123183190444783143573158928218373940281676231112511481726249270317215034069872280773545443696691983167758842214260903892409343644350742757938598621055578168630765454438246998424615609552030820270582351688574304141838442462104583791089311283786812427951221049498406344054395245409373320053282551997821662409020349352716276396803554945196548136444250248936808667199137540988490611310094608289365654275685113031190445506785205160286728510277949877300288039897344293904854161213868592716324989605150773534253552174296295356927583914574019904357222882631420272488107136604084944122775365788459038968239324483399283578598904965024977350560360790728475011469594009412278201231432410612655562940441328853205592679192308262831299105376581124350194027663365254888145420950397359576860498880563222335171420354806379005150085855789277935634549263041372771350784849529021768188480341520528124567851613978529683892514475739191917820889839050188185469673339436211372863053291665446956296780472008141278595489398730287143319565535050555252451402602827300103741950338219258013366113213639291178681046400752137270898233017435426620900334111368931343522507902287207782078169710363587934271152175648621444488748889779198510108039677923856037371086159618384981592847606321211083365938328028131947509245645529541683739862237474592056987975995276328369488688380702891336638560007728674250601182115471311248787428725694185532211481187958402224555396918828261006756474793561262226657417229782464401919083689916220978863199471334995008885843953365535591514001818321772957513502007933099860120340573827849458130345609979713993221016169940145365520617475714495182499984138416849014246191752810710077928524450478867674208323417456401715237934164582135188884942953068228275428328891581968616621379223088101493509195251730303970751098355775367814173526452675811460131648885140311782718746566151732317140516509427814358188815792631741693851435462818437707949106491336096284199028296720286536362412908708289159319241185106572502477174882986937532942704153733751824285494007966690966488631981350514685749181852565638279191413411109575133724629418599703124520853638146928033618099550088564699825228374418777858617986315241867927366271399729378691755217116617839287867289468547969408225195490375296712827225819536629740638740968226876610109753687657068323017530919349644083794058990735890843499211244047463079390655551293592528573785844663249545630173599363392321578034998183860956774094777418003426253331756453870305159079737920805286834079684027451380455087795133820916623157463353219617977386210848268545036433095268490662108935494614232409663977564102816475822913588434287333576170649103289987947963168609471315565026417710190665646494330025908818419005658201843732645627957568096942942514352204291229297998981043374375701923991539277552182896161688108784876481976287212862981016252807783853979366735361180442912341748039187051294923244033184510920609061092661856643454610993293786658947779420579623629067746701084525169476203854300403458309102556290198010433287129293622548730311393399482488945570484982222877493971487125284765780369755568907481763891359866523059983535704602667002072576832834073886221422817714607107742658803463917429603137561650796679058358943968856420938344430791042413712474312906609674677979273332466706308552556774815598373157591938248493028320695393641735068870239473461424514605050375391162645218377065280472589873552998336151635104951847075810877314285182978671149171811407817257486772552044035426895345842697954016770922565634028402225010953503907456780978746107859337843567213822377732609121666675128810165783856987891010973228101505378277321606899079632535558490764902841337848105731915050912022185215386091183070015680653871655792117104267515017863629367104178097836118348307550676768046296534068074688794000558207943638356907970725142842905976831809668243160194754174210760010590043309417413366215813055186551048686408417263502835334764894697660235149963999051119544557858260328750839004313039294046968986842498595045866122858460830248897562552537824504635496439667280363622831706628258527073371346924897731002914593406015603110875090109879530934098323973690203337255730315564417975582918207794181343232716515403676695862533186484084969477708691705633856871995265448791237156547134324024846131365390921187967434498863416574524387356810438327291402767207292553776796517404147625753612876462851501073697302672099078876828396923131148053737064719165833615976430517163678958308992233645333995181419320331479118788478519065216754523309130554032421251851382724573171949364824064462339718949852852409099734076039668199700272624530702106374059887668259746360358909497733919354250259232488836044652785892045289401365706453113325703047491452856245059014047597406100925474830944601916800203504828619551061957349203021708362847012485617203702483183863053306875016985956915958781130365194678443256243691543248626522159736887993416463510619967009249087357939746749369283833538713038953337192942050214050648802161228965965549880577234231307817185793751263340153061448930292709700976017149580474413676668788039124099441394741097162133292345384253819191971640735965311456369750670585149624938230685342458901197225339729751773206222695203441847318853011311761361245531187024872712790669027933215340222680537485181482176753368606099616636983039979586030100883265138900353157315090509808133273583208452548695814701728829996059627810154900278909292023948519338340029797799799211413720483220065378136688097139925635683194143719873631648796832063039247942595813423572163215283062475688966860665159712957735887709786338342048748562326364726448585985488090689660844505348983156324493664336886113809127200444411582878454230122828951892044673637233896277650161479789256175516356807901392271566260600506259115942539306480691284458679096119538611477071635531200527780052586314503412060114760744784850320027855910531623163005997273371839839884085569417098382968644618409094635428874508208684100798172121593277037899190089331683876872793719115640248816724896152732639842094228075192047494162631984134256082185791631972965981337495641529343898118724535890283994720386514972849889163472491745165805293952569696800549501786585794315721844543237899004769072761190454648222088595106799526248161429810905749782344063354170478166982262883615807923299122853829207713979883114686163829637729849683705260600817507648533288157724448127282563178954727111162170796975518270453300287841491523739575019835640688348571510349504472296902247080650493158239159994694761810496368642553466766469210398518682642477227072223926071366914211632440131658616712540177363465295281482239880910627550511673662421702213542313178864449776968745738624291839561454120167609833032250401332687834122324680543410530896290212610414550207879700752414263618896791169991768157377490801625244389930011282170311241050336363665749527115709380850288334805166916042068317803100095297726372867224132695373071223251488076909260854554608261159256626179755266590491437509172837313968209152345281552974897433299182941631769162978791528353061407845228096473590124036383100752547314527680710409743601626604505855617591835205975086639290180664630093080524629700234499738958229302671186218040128418137677009053628997615383777957557262977869392084273672292410508556783093997329045429723128868669162688585786846214183010078052032580478869516578647944003026148074656465357996912486750160087614081165159175008828095473500561131610945866574939731647204523203877032480072417100313268425241964733373784226968891709798278061032290984039265635435378567827715079194111993595056990363686662734166243747632239223937294907786762214900451775238218178819903694460685113581499655220276986616558943359482011998133275636073767462823233182377141520770004121276363042948359070495899114325669750316607655685684911187893261981512824033859038003937699987138011199460417726899660028268238605552721373219121286744094847688921747548718664053126606137533232904890374296346361803677761368133469754345900791549445528139904098823289925383483079305851874116341554167883701727210849188774712568623703248191816619816670292588478510424282551271265809616094123007285412555492109571795056634053390819499790438170236656291547060660648898971220612383108152934175905418889263992554033249826560611007014685928784042039380571939994422671231808901567691493759665255431085936304392136379797667069835823106106101734329395150288872714860941151834347873178851612783099142265834589815349427301550009989332696520803115381409035494256515810463415214826158267820245022254147616328498145330700112748891162930057768162991696187715305874090956931962785359045108772782779563415755366748710668389555256653756363987662707068995277088194248651819568207242142381870129122061749898614414494824235431425366907720178310316489083032305109648830697006756828971207474042676190452830618742829053133866490285912788474032987616636485147743472805015572122798108477962627001390347612891420823374373844667024311987235088355219531761432845053181271417729690871615916173092952516947583240302792388798590506075549474554869863872151759005428528495822885561674514175893717388164900325842169569107471877319213545742394540887912129177731908792266138357382643184035589447872951982236122571312321739449747129731027478250166921901111574230910479362332507894377205484995556206252849228350650620866084208887588730796785781667690192478611102089997897746089242562674128778057150239804970115101670408750508388946872493651652385271561997905846934934214117884422304011721352899969795679778325818439181344901349770254573399223442278568405958822617744586908317430195297436262700959621673422407455947515675889828438950354952895553068084938930488361428797256762434186306896281000071487609320238949112706741358903188720374480879881049289557884480566256061810910845101044499551037992914023924429465012985738237034033161047209618171690118741314447673485563458733247508560257516037306394943192095312854040049517923828966538613045410525981811821288451388644937588338858601088673958680049478349199787700722789571104307554128475575339416882482517105406242634729624834473584602157047353420878529872188528554155647145790580961383345588987609177756107036472694950575206955201462018966218156249143397025177894521989887954314499281353780699315836113019095925693764285913171476837793245577903413708385060084292352744847287350028677764157415162307084868104943951681621422966130936648409464434846532873556031355248206965087807765662112740617695811343322311717472209005563656733698771606050983857724706389778115869416988869434593185400520747171537933738894439408592389693060897532740449646286439975003773537768076905528877014917838808083436954192399490592048793527290542439297431111295322840177241604703377000098172199303489197478636175640924064591508066475972088622792721233992878934543836777385297246033370141728957900361731639073947231696236503344880053047041567916944533402398346254931333705421695563979512570145006386965531731006088378017582826087130278518168738150173771094675516690604872806480258182828874458509298514225241340796562950837615188440992158706160312802528995699979341317891962165289362499143354455254545497626329744593040481599452644223855462020956201418808165787230106417880079769999502746798421201563395011741159797104312962288733841747605180950267354075638189678180855487554797130422115421500169225285027717790326341524494467022490985889041247351467738758124110963937322668015152450056192834647455353640469643663530945245173040508222397722583379341473724106045152961878416315617659920263471895882597137671847638675320973735715619875018551808201337453691729136151726037393614777136735139321179412290274636162323806349722728382790600611258170997238678540555390291225697381780380937870071875884513405420088050611873109126591870747096500254242448230840536737769708955731733943027115016814450435236362753964196628645511607514282993032074847137553693476144206889187652737539427536543002406819309795175411312586045218625315060319179640769567100171328752106751670662686046995983271455889330564101303110614028914451657258037321753739734126842389817011756024046826769616172650734217727007965086425873574041197487649636887524617084192431340489778962095743904805557756125819393451803785975300738662928548837939930944954933422629125964258104977439928727944375042632089282533294547002702954788551623861626835003137665471588824722795374218692731033607258304136575653807371592506031574086997239795471043666794701983443621241988654995013848201288276865325875037597249082551251286301093914844246015428762479435276247204941745833508969100266719668136703962345345117623093042984109231174478200598617453939884259582546594229656021228576832428953447310611118060435002657163453422797186813000959878938130846194368440559577893707158847769500247286808960358692205531853275271389810918240889129865650508658944790736752751537428276333990290072746288373756765785864471722373262612455586815159054336953548410679541989842308270645838199468361445166233390408391209830351245383436064588624261390290860298566634845078817041470411510859815870648626491158335029802073099630970108495367910738662241884303968021154291231865832485621569821641784229986121603015105587767753272862501901916666028110499634444219035662309819015287974856259588542616256816170786252699615178310316449787448169712126485115153372915113156773666021994546459860970920663629917050993439225696149206345672740639703720426681893873770780399799834500588204919860318187290155982730981616692788515840925215186183288254035032091705370700288702436073134057715478795050699933113293251434809197915481851736676151378462564570650835172660756963023181881183478621382385307317647854667078316983579467035303497844193367579198327121175252038640309890058246296014155480012364056402604456425531568616718734964387544184558107818781452575805418745327586635823261077433544545016296060397388504566194242391046553838593798141420085383877938399854733561478792953847028428743203867562257697418204979499133217658522056733774865125829248041252921223012517349866738771775924071165028676439349733896642225728683331102491457425123536092599954485540628057136973205841067191375848191845815401274815485828415090590437392264572578329168772389236582548668902578679297479443268941926656480449014821166625543412937414833279825311524304285936013319761306036984910179616809006260056906282713879876501314874246007814669141962662979670764210867624027075300294368150504860042986748055847867521349914877255901812980310697110759318620824932902862399001178901951807429636378271872429494491252866665232405318929203608866545850822149786613468489935304598683052243550431701532637532535805990387911876454347249632357318402473369460031468204533905493800397085713810756777296100963391830521270468789127229646439806589303483625135722177952355376176360390336086054025818674191847512066747978758223296201126535822548474141742472403975380424263074382433750859176986109644343317774399598717175752711051596414185490493541367139067085055729500575082481714613189668919862667276926013901608615769641053261082495009016942064803799922500173048915549368729554057924883106838067635499750607247950414379379939775024407456904007263977218720786082613199272596232533580250620772194641841009970273044667470931873282226767271892617700253880760743812606568629174627159133844102022491363900308637931361271678939316287693801588573648303060611619753690534946998429200544874702372322099346712441127010692495066168479670402534401029123898449172121759917950709119482661614272970751753782409429241244327323629811174399588912042856365938180763972046134842493292201442729139136360894178024233747377317649611742623174688648022007551828024793826523023410326821206834457855980705117313582919788669667738839249972719025277038432841123900201264338719086498832017311850090473419197952490229086259451836110094851857594539750706336563431558055196550938960491992129726623691643946300478037718725283109732034959471323141476882263344166480342756574582286808508677260599729871555667852642519590934000694546933429969522443479376242447919276549471919152116035297322213894808619361704173031920377331309595055572438609503571638306056553964169299865564533507029485649356436478837463119811158258992782578114880410308224259239937444902028659763179665004271076958382438903603338773248264993598456344036104098888236154781042195496308503136234811623463040342691259255946812479206098307847617184509661592263245912939387340584263497804438713509112211304997922950890538327297674049011031686809825099930867851167768462256884862110999289758789219389867087643761472840240070535334976470465637709390591505066544297098515862477182464343207593477237710113380244483698497500596522607272668809697269987666738284800273606285356481699283298010738931091199197274541287700802516913418497726945503576846345557162512039701666976603897507619487578657985370322544917314826743859833432591406490853548989001522648125750721906304482212103313215988081078179451114949380190314579877529676760013473756635476484857073984812280340469822676680700386808130297980214980057913650418649112084685784817480699479941135743494556272101246309006528687744300601774824740672813158385174065946220202613392075252128763730902455496202922452326628624396360195305581701527349052333644144828153020134563647995454583273650931328166471660571430823363308451357530419199537759318232549306692138632690921735863162530241047695214005590102063071563643439701902520920474183041151952754926634717040234723369874350982419720804957874203094929527582999269515390052712623639068237521292034530049985048071705211025105440262550377394217263052408555964330909535261079519563180832275848935422660163969160617830659597815144798271282473746593997801567153885503886164784658856772458818854025737500609443364079984944704325307340852754058721551880043577533771249375372487739784640425018790472792066891320456096414216499952779656336936561350982225663090796803039898732880782132201969518072578921382779376356235221673766620087648504043042709863588200497148952026397335152294718215823320681421530300447987172573716237047440175673610687655160207873625264959108702686367421174833455861298266557521847232084188202980113263817557209960020231571987550328473433877424295824958674686872408215341786576939845107950302269223312900152907159120726969711990969230264207616708861864748112584255695172205610762350804595333585127788398556425568657496284607729534390744488028989112624398065380643223524574255276551067350535563431962765701773779126340238462062285134865522543124498792535975912152870785167143574841025704349462875941736662319848364168687314140343520343843257774350523408768664721245678461231249267355007176936077045310716013591296662370019250797892589309310621816863087891672128998589269929878556572868026946319395489635037192452164470331398590105869931356292200606365453867327297492493920582875973009860353903990118519070205760387997117124445593448004904470723079903387038094760790181410762689620912451543935361496732122767478030099171512815050232364521171249812711580074963439981696924481762870870133836109626106616492761525950528351403812365563478825466744447318720612926156332856507150421466503501325051094862384311974491198582960419921445790938550923798030130025404260010048186714229737710633614701739726578842115075328699635305073162221374943006040999066680997261883505807301806547429072063756109700005272580149967131880350254914270101236962153862649956755092154273565341435649985034242073871489948065014381392878050452992824399504033803262860642955186788780176088751240173950734146878620931135020769704943913533611467739012897143028448057389368975658017118090645518956477585881116876014218233495588445116541412841510254944765159891250735501690239454094750722107418354946553386959163178563693560218865223324458499930075431832461087699009002392827403386447363621278624055803614518419434628907323504297175779082574727981534439760198844304220054739491841309202195514465205335663655015440400364099469594415959953718653534740296430413398604494553312903424243996970361155320350396124205987767459975680797239427273214883183937872217787233609812747653467353953745079983124646990025577832927171941905112899025408354783249570387772700622325584497133768956892288385789040877375598771350661140839595192397399556663154279608543851785984176700940500292109471750189376084105541000083332244778425620201730532739217015512119155397561237440916541624436083608564764427472079039366971836190322017351861619565469440442940421863063374722320171777998274666816878738383136475410732509709734032321638312775260331806106266766917767964235774017259034364722188842168955181802434595553797987158594670924692188330167391078544207279308741993984100612870941875622144398345020461893958054507759834372156867916854179214768160095196209250942897439395666063991199953108572158848103155566476398154956634080938529705002405965544592487857276220602248406139222255060037694555184816395446546320314664822525026779506715023886117202330078977467665005648039434739180067087701739301549525288049660263028700753434284992699310168623173516077942476686950024293244663824620632581881671262141920269629023262490660087030823324632649599874159630623611845713568161702674566167297363237444109893486672833811585414867197056988136699545967843963897105102707635547737577930929694736465139038310666225575694732103350305198712446402881236504746088277858798191483009168656836075875211922263342337868520478431655741688645605637487130082349378197106992099632623954755409195181852165686312610297977007260394929849319757722818289426942177470648058338325590764202204038271379515498615937856074989696371599208363164845041874856778153132024653134330278842665406784691793676187191747025853673973130031692059177318655850299320070215748640269046722953591260478801395163483311357935487747655017752419441188132224906295366117825522632493972172600356343940401104244141152087616020013257597566313245435306364224995818366313646338027986379801444124381470972731918776171504700194009682752031230426931472873919871183104798442590256223829159704543762881086981439259488368791876072622470380070650702134955593356944479117511915857216409795897655639794475372659443410813930690352179928683537501500855243570905193158188963934939730125614864474819546293839759545370068630014348744226070605571166298929871320707908123365800371645447668735312225673668419084305533032841173910722614833106780258277611610994084187808531859435165175149663449546529869495103396007869673619005843244378096973214783903830021113039768129895783979385836197860776227562690685509317236369008102481634958613365049629862868926138723872869417497539621242042337924313908396033376073628220292923470399578381763477174786162518742162276102735440289027008164779895771225782346577757768763696610863344149290918287255165200963333071964748317089082734887357972184103166648026128016302808768654957468451274831767480075686027080664307661548422467016376101824671844850726245582514619596488889549940620013254350638715711201215350679161182148181936411003539513101055404710010396031088969325309855892554171818000014818508288505876138433910941312739652912234141485337799273208590076533355917616381059084694293734732549771762455637733425443306615293036383981373159875382447129885419416555012643059857621130812043850222611251716477927085618664757231295219753721865006872792854980744864458522471191681482796594595129946242918506487006049476806660382675679337832935152729177659340801401424009123294000517598177933089039981915582079703623816886310652185259262220087325113412722072765811310362696826921546653864732877331595615721290092665657291900640765957379219726182728779266260494274372050549379017186635224058339455229156544680773305462088515942899176365457073770098289943583809969493316546679932345037420008108243843089060581387228375272838609611447632230005434475370678868084545499905871785855336898924412202705642469481607115853729086559386157309933177334400545463052187128676560701523722376259912510245901748644569068544768747758931161818926926202444838046545426156029463902158915947043568646104777641977436707392061946683139328967347381389758827687519408370296026700340888685781107371266694516716602213919089160254158440213573764086775926702821689880783186520601662191663536994762797658066669822375374929865218427490101120219361844183553443437231927855614896470875661449221514125687120507416187635453772302820495300939476977044392006897481321920510562764546822887533891429191934195168640018442890677560619491941176443955788946308788702687762973665545055095201261527398015745219332493083902205463023431588879100726227857113601577777588167997650324005091726337142116581256121040008601991760715790252626557690884783478371064129934603452794426790679372369393619240040176467984605375276155636622830841576150442782415676169022584687083756398210483607711431185665726413693585103555197455756290568919368475749448855072647004557013260921564496494520480419288098309264890970417308850956000453870315730082501510081551455781297162070146956036310590946798603675651458622355292317999132657665447314429451628910259926269825407466729811840257093169170774771145943541861730660639386569816728360587208189374553721773184741860124969654968398147045460835639218944791703036977861793856153564315515825568506451820272811097757336859509399078964937266327670220383841533909650487994727481676924046862394888503399833890281968645804589099290962065868757592287220254252053480144128158908599649831177141338848945438728991299840591987684605949552000228218662519711120879355356983706230498882260983255631193220493161469608380727745108310165913186537085209871765084474249151416749512963526298747339143097742579757724153707634004315350839790336972824165674798074799870016209474540943782809454360054897477781933053483131191625323579765316280377543297110167778634494399894598373272476175879656680634407021500353610970183677562007363761811319348838425973199870662727140634158214788220820552923847058009277888832409995239073927400894355401583553013371604658979868727551745702328548829077532557945521458670408132143759431882307831049386160255767533157793337250644379468496417988375111702054390263805361515051746644481037819274963322138745199584359290955275151232100967240420090748775941680300652259375886718373666139470952638015383687330382766879509559851225863816935841819311908419831604865292138166660077162494530967342165352286911152217417794231607075168697226854171363579427139947009517192619931438773962575752981941779712451672608507569245636449240099495004461375465521415957487714082253508677160502268654673788599727665758172678108399884331507745674237855622292818667532211727186288453583091875513548896967436428774988719325644428416141851232398870465005477441414080887619765429397238326785094526436964932027368440814830670827567761218732163420927746777803107726292790604787040758677062086446522467879781279656869493992724297486471186192834802579915804222338714895812291588130084423443693717874113793946858013293532006615170148725117902337305981894676634191062556994141212021834559810210452844100951773729522464236231007908791960250091412120977947112141768136707373145548027128810541174901838444892024031745730612151900174578537642819853683436124724987651216627864486452079849925312805975682681618323539907579609185392304128073851780334181118086080869998994561757829271964014794218174947989856582880092867333308621127639348223700940276223461349451736907626092277466630292954706610430243129761350795420951472063466297338655197968149963560619319592224693474641005136308003553619585010213037957269171468106570371727803490214270806415210254612609894124258490779314294657405055483851159316057912846336065473429581862141936181005485020320856046017860376415075078296960396533058590071938228678581706033020542051205183743327026093750105714931082448348649399710986382815044101943554185957722553920370758498974623782689677958245949897016410894453458474046259765081048969032693456213690455062950118600619379811211119237370808506938729828861212155822843026770067106850378473883074139387353897422400844639754489955453634184013641615502823002042328472836963232994882238138542907596929792620134054211670440062926590419697458945287575757965160199626036310032339785478627438747141924496846657932870117620862584645971102115233091021065763871254938622123228581039391517092232749928937696376643833948046418108574936407131709174582773294382392630567973866049246058231959644457793288193114834084390151788744872678006387155556060930889478297369572644025635557498470533476852467502136737033515108578495912851184279169017603416525422708914185794992377108653756355020438512974937430439045975081148796892946567452835031917939851670087813680057737066734532661969085382435173058247230687420949069347138811550814508447936224705423041117494182100049150052618134518712313201291480595515847129682083377585539507404109643719159990821627104683136361728406749038775341367659087198216447226350960959168898062972830285825462160919377971063519473401145908402172804132949583914091222287115021397151057582441881312596603479149022647726864733552327338448767810191712683431615499004635019802232398935470114374950030723234772417582535363477863729232637745854747240728408481449499299754227664151000187594103318645845144995038503159346154616210832132750627958616234854132815080794058826288949477684022584882077888042480352473450918471819599709473097413267849114366946671978974874737009411200262801767077390473323330030751350880976172209363364359563208341258499958104074778241515022003070067064396561907732920123099854843351320533866950339823744760615670568578749770671261573267198469453495712025733563791476660112864641633551207662609259369382858941697631837856301062747168935462286729160344662842553201557892247964048519646605619222753842412112648611567337915018635649998126509081519990969105827684703152254679045906987639049453607824037198618487280272965705858491319269293933155690869555230186431179440515344465801023851386071943332923683579344530654057291203351976859000417426923289329559509233013854567729160835074680265927760889476873284817234174623513346586875670260325613941208327784262828169503532884089695207353169269224875390525192516400609120863704080617777375957676694410205687035338267474623181790491128791597402636781823313961751034129409599891608720229945426911472129291434343975665064245997711613611714284287070256696354052748230480657952417904095192899281552261646828992669044622301188928782727789604202043178547702233125566813629085979679202006452612559906112384614648626629392517657129433235925434325429636861753902676414297652273666006663916482253480931352431994934458950673608135086514259872372044860131797609664689758813886302493508714864301646930829870135456647557161710951998238605508465789629786855986438156465988474784951999063100117567661834221090940525772933104014768746146935705641836494144818241313938777102341218978166356893603690499623220936841780037714714841150749033626000405019239293422241863346239533533857806380710777881261255772764357206979983717507246232078777226041997625905949097412964946923192897491595570599859945540130191743987663187209642696148146637314328325108505117891993902122455804788281918168916972641202842857162550796434677847008053342262872809523746941346983741861886885659185191421861140693145111050732989026900538773947554731911916791832510658373205233197859834705628837213838577241018086793250636451363979538888598100541245412098151268125745933736870942416974720204647379792600041864384063907555950626633420634677999957663123359126912770286170008826776263663860582211097574840808913470791772929270315623910061949741693754400512473198258801459670518346608564436717334093696675770297468202158446751788149679962878393692726140969782899966532269347264108490550257762512297688691405573497352142475892747784489249606917233753579967160284259155005136240437561208913168983802592578078045257851111093741541176326158227593013584217068827063004964955003277313557788553448247092712387549548525458725536877799890680711489021523932001247175356342648242991569189930929472315013157497162925767823198992022990498286142838007309056562449505352966546898204120853263048483554333943149054589826356655159392928834812693414873929539907833987299288161034311564094350294544559810657791682837977839659945143091309031655460731447542517277206411206771673683034324827031842727792800283019483207435657511264100283572840558683890185516357505189077110574747721992442456850874996888868616522932538927980263910124835789581031441809119583324523451243501646905383843331680100590444629920437305031292012553356111828557690343071401427612437447020800699176937210455444354244752832533071252552650816523494766368400533398066990753323042723651496432399586233459668191411757639894027783934868365470258135586330313661996003984635822420372353046058621335013512872720445590496347342467339228605876079159269882883707180277102677762701348764741857325785396748391492379026646125267967713419868611557166569663211166026339012809331332516995808259902458818579403519277150276957451301732947404582057917848475453628001833379862298297411420007882080088604809302163397851931361734811644659461531842909098671328874224343500712141081681936988941916479579196526622801225701010638987525180291653618248446103134867128182809159593181515787190161811376364558817443460209256358263301032383217826418422041086609760902543110951310105357221439325306492790982367956634365157881333417076216397725310406087666279593526160061809697308808584137033314402496288764320824590085733543508210065481425079768951748041357064738059935358989930292382396490669572577875342018281743776384210357313142585588090082751359623239975738424247922118793533232235064149493151588840536203857312603873447541860895111021183514380142137415979806960372760022584470379209204683735083058076559405756733395120170833628886008731445158802861470256475428807192528364068180308711690281221291521114122245169167814008853499676362225317510957126665764779352645344132542586406236436595653438900345420412842838085747312268332338757676988868155020676172489867603689958597083540796671996101106160398881788686495016393128883581722261346397351911227192290971683633079279669662864910292813063917458482657550174871481384380695845824012547585531315589205025055650749986845725230246896229185287164918709076821347002038363166994185624545020292031482486265527544053612178403474904815269392041792870022249315475532310629934172011753943533053207444200046043871447218513100231469831958756702591918786741907395364850485762368480850034424426776889107484575953148618240451948287091991809583752925443411951088738833930873877400390332847043437318191856347389645846921063980482637731892130926267861239214895031649359300131722294167438043117011780404579753059615430556859895829159479532453063889576488616492588080336719026166331531199019532215684862923372597843946633764808196751244410976842677723792761822841392431714146887857834771124915933546328893735985886719238248685071515261112051784848780643607990167172132087103880079473511247707191231270355969798135452590328869211404247708603730635291293878172047940416903106176135392626183520760901215512628237435406128409863095734236759790407640442805227383508700356472591497565509088493137131192826727915117175876784846092663420941272507694100743622275301859289028976986799925410016712878394774138135327581810280234895502659272645252344893915230961173110907487308126860713129738680537560199077486973827626199686981321110110195992100191808792734540834697769710185705781629510376239892493762419016694078734168378934314134446932895772539232755230886899045188430197317574367217889591410050204134060993803467423145162501998733936926867230438176669730701788363780400924720056573875406423269078764824079785110635503308834974870222373041755378323923068313686818313555949492452808280495631537849292868067784865178813443951536483321671481527321310955140177296356517762788494025511639692004143376749441167242697816739558709883045219186937859049968151299399127291770030101676123930337411936002340473050047198255075235375255048384093191767331315970540246305760749042842795920107743673245013150005513011670121562549210217071856633207084489114698429336741102788049597269896836831311536771132103862015269683194125459690013956092161542143938412134518729526673076422856084957799392382863487187881264215702796107348828608875344640407305740694095987375995444232042010940002770003885794087245868346431881705633133473793783111035970339758542595239902677785266364979544060272004213432256893333726329805321087420756668901739792809639252620016777963217227036653275222168942617614160255415096594923845986292146928098299797501704062756295385980600383069258083680189490140240561642632758954855840791935173271996392534095504136319161862698442847536700996039621326594318280536618293318803009785342884182751825248367423694490363884476890687883365746728788846132963595452443343610641377899983719751710340254435471631727856884190746425172930327884477760131963801684139838930245342181136834408686883470875485180166096358280733117640210351490963626012714222238295205323170209784567702289134655461199961454692274382005709355518094612972149519279098462389839829717492057611862376468082778807115529459469789227279293034074957774018161717958225147294637300097702344483948247956683775460811707218996669894005976965742445829437176505800450255441684079647623880385130125020382742759151649600266263352708368625878926843708443153339197136540273283818598235962766081291478829657323090490898746067959636401663938424046790772311225237847276716597478688889720126360808538428157309728626143083819930725869247104789556575059116357244344712073609306665051117282932504540686438258200994589219610660310298063095472351089771060824387062535164938181716593271194092787799352524054956663751214342804500508363013446596423870746791121742114766515612091078478889357497864285923236538102857225323889115961483247505165700929110071373906629866838662293885574560889281089830784495285644137601812058960104741957568412994425640821357557731724277464491465248738913231946051456507197651672457260293829656072347299744476675404710352255643362258487541177709902591658188333054942637406759340106531731068518187861080736481991250461601827623690967558339816269969518286416219715412562133795996803683450731975023420703783622381809494569657083211497604811612241237319071475695916770333313898740437449749253900209757182515171777688202805468007689604865267575384394310648145743408303608943585784366903615909328336764452906392264876073042061649909841134280980580627861987798527811154628433099475373548457114547967839302551771279594863289159324968847326009345567287980224115915535294328112947455325666525591793053063241593582178788773469044979448687356441949438934416846007980480925609054448732177266880452263598481538652080873732895290731107036286959261601831682456169192421093999103884727559105907981177268045164878780830586308771970597184353288044453221099666761877075733855328897217365695473758216583871611493899846875266532754361587153992155266673343324100332769964038272736950753169368892307562631642104014432589644624937849238359457113703099241938292819013609284633070753709527299476453783476874279975522888374843782397141872590638995020163419241976146589018129140470534308467462648335048502361852815807856913212784346243079371923160698174132044793388774280040332847659093400640738095955866322482862840277391351585868287980663639424474750150444093108158488502605036006314283400307039057695008580450740890823347068337027273374844162993995618562025521906433385383520050121245179748835479907841258165769083844692875179079166120073094489465373100140358341353448828747028848104423958201437235993202503252165373740271570512689342163399414812827863236862698061512946654365850412404936072728197395354660158085533183944897545237273118949802196596607936624052431032681525045877662019833308915876773315109622568091642009163076687012767984689244124594283253173789028357438080888861032400817615301850197307458647833543174418617482974671909420853792315778451666844482516838236045012508125428577774902127375753091665882752314913622165339703716606310730829979307679796710412837427532759671930763840396463799006011577085895151481991060067523590651169954218524886746586883077668905816879504499452404450601690569252205570549494405801875432105362008551024069133067917180604990904086604699178381023897508882781741757013957858386093304843351159294278867763200052169140929840230301759323455078757480543679178322594053739476114086928826183376477683743377246478190766555081565718948787482606749280848001189989846152087371773336511664791538437977714158971177182793643930541763841734160137712850316728056615213627941385417023920664204766019665806492271493318239838798459418446871085118890225965124513302102933164860958392743295520517246179908412864579551364650798228027540553425221361642952609921733824698140252298618489344963355432937894761040404567251525266372384866141280485834961234069367272959382375186477015338312125799405727279617246586860622206018978604941008388606943460535751414158691628945062294030432213931098449862277085179232353624972334813796087181115892208601273327853838129748865877300380250812829955418152309708804597877717631721064026297933920462113353706768060747526523070223151998815631000891743449069618162401505248164930706410374222909970710817896799952826027257061218724809632254704215776259511870694058391596215546891819598181450678738650317240211573748679371845576334886712586510949129011345994183757216932532130026896833393894137758548550865386031730002790763883366419071536080746428372982441281581819353124168702431364571212321299315892330828859538146998027780845760979649341266096639799967544758801594520351817563008582876825945828779257385723364567299884050210856078336618334861206788709769541340922941249744504937818480727301539154825990871501130736905997586259581603701070921672413179216885753308501850045012390191952982539769111389850700596117655001009814715803293491102106742646711437258465124250261194532061647592293278665700379523516838161502981264259776008209979648995345310530325869792388163399610261725401712400191673028920571152590871179383327536157206613659238639523367589252059737486065498323820529179806880105368020681771723986747853855765920557936838081618037525530006603492598248990792443870925151025689112817667584488113717096261287154591802782253332021581757628952950913378496328609100243398484491767149156120336057419126838503230040748350961866569082231689291798418260484677687890427480996297244703838969124314505527344250522901854989659091631299680855995492866518945350188823949883099842966054012199656147025907324015235931019232717956474061805874038165790204337343676085801443382567588411508603775427655162396564459857953948980312657959677067784206480079588460558075033173996107060387098085604599185408996031995080365409024953635920251044603997687788469718111849252809484245253576536074077682270633636846627750495109039348768300025673046659744679353864419204897681777738652922514259549256816363143291850234637621415547856689474771089827521233129177722376342311660372574713313648480162787683657609079193975384014309841080641173741741338408280133010900078029656477849922207380582983379244623437690662540479340157428483681981395272808877698772875630734748552186756476913645948788945998572509587214920913329701879232283939125052812921375484944389315245883822167160284590633647868105331026468146869009707159971394561851132382594986957676267503019852746699243051310568257342860712422518697959132815975792668311036581188957119928063422456380498080882705161162010254891384651691499062254576732250965103942045307770584144775200033065698431772463485088913105499461701508470135006150529442447344370659245273153036798788860803571097776477202145129623173898228095208024507689857854874343682492113959411558234601459719308050662330982848599920654697221585467580655754408149257303073567505671878536308549820663196464524508869374639201460335374554402574428552028458521816876637258818052341969960406449372524008466379147903311905587055894825242621097398951468124865030498212877700188809242811632514384157080335502024495417242033062644680920172333350885743140656191852686655676726981530409191624600756769024812487421811119565829204773217433908802140703431301150486514599390065220706077304040902879009874212160567375803782284129211877313189457230610956118079699314520396420199328027545366299054333732442455604224450118957302359086472086181122983864766167749199282366303973283619632287945278592552341688412775885164768053381600369995695411935484030177725886099794130741989899335601387846628031736675676709266097060721148189019666892833558382103073025407149969999798332924788003193652805235487618138715492267027538518813061743580740644643860613873868474224789811207492958493411308796448145282558018098754472613432345896241440818820254670773930566877118970278628673215845536744221916313679134720272331453592081564478065722409890804542190797269386642962246459901392215193057205667089587880832973902817864846667137625632372853362519093877492984081714850172414119080364324057251348836773089807776649706163919027429988252693500243234692161766449394118745535040889689926042428353714872227775503181979029264132458678244970822138216846915390811411812683366178378912154178187742712393974725272813594125925933370700172705546628651777716152789872095899357004870682440589742954766557397666999021788401671580382237419381856449461934606738687307960413216978422182249696381218599694401776469189506756751946899323778215021717269325879648223193149262362145041660684479783279761904684224068230940168415140673645660254963995099294527676484370580916767777593985265384589777437815902713358670121785877178793431556190573675906165494112142817031057046002564955084939738468913801251791729726741054654883230516756597285509575063830021374058078936680671745779685816087422538534910051013345304822098667228587721002326197658756474056227146775463777750818448791666899829110951267665566055245984129001741150740885760762611570707093177965910779232213962233273256041581179464337232838089500225977603522310034795879845709666064115373439370258157713268572935731772373517559231192987950190271694619793202963928814121053461285620508393541761751135572343779567380820619483517084516161421885094994866857897385158344086951834100479304442433807237836681078854825063308622273513967435845459497473504255461430702160356718243074094536314464550273287034569632086049226770777851611443435737150706045304224782677250092178522870516812480894611248334338372541446572645999868868166473845870681908241440822783051498528458728898826040857081119934143120392858553660971883614565760702472637859629379247397197649375197699866656919691059860051785836492956624824295112651921168116613215162402809648338747372072512560651325474009150467925693691373183658336759391916676529355090124484891156912525350804594871398738943824305498544352228658422366463468588446379795358063264801188994132721338385313824633399699088329950161399643159082121892431286533699298285316309360956525665728189312876115776823538930601112667162866986605025723696320792313416829345244749531189992089952999166402334855272041896449767020730630418914489981469414761145054408988034086242941943924892472608024394305338001643098174502407381702432092648296588193802035615832503295989979339701782691635584469821166352120883738265731334028669474771854958521110010479996030522315115915913771027165002015662911978280265536311428749719162669753680348511038649343538279559165850321386715080128758427347826024302373589492846670983614455985797078053111157958783483492858478314409945664925940678951556346577730566565942733309772186252136902044044728560816473848515574100963383268920757936979586498897135302055959497020342793110169832369291843781045090643482514682858661123479602641965669756282191693809940029814682037916876414551244727327429631076468506278034809513103155276156615111093367799627087538057653724595894526890185326066530680040013279155533081316098404725870546357169151039254466046524893337378193594984937656972977892327790737059227179240168693284034505935619029256530528083293084736150858126543466953601954817562538345269153438227516878817578488504353066548902644421253937318053310997942109120392943668575468332969834703245412814535055540632825250797665016622095446302156543283602453545860780343088054305635118289487169697592857517107614030868922644606731890314388528784855075524121153739752709705409990384985126322211107927715748764571078722516049413799416185549402417223852160863813461701378765300214452588128255257437187554697580270252377430801952087065982596717776584039305466137490218307838555845701302463892742947981167525472529184386295215881570162560296695950322657382458539796932322404326356636962787261751975138137782496630074947005815893283921825307466714283816653083860772306668216332964592225610357906940194089045329865864317840106453777778458018081445084381710367714858820779449895745378795112877527646333478425208681753437262152204204090433308188522751854670462537010808338692508077275957573340755568169671177869177343237532273688105374422685764812259998414595358306189284038324114922424406799591744166710905501854574864242652305243046293307396239398638869844864359099745387970659437427274265727239138188603162569598682749396281706431789465732596710470531187501771668153183508887898180093462211192078464306160948547362153580992350041211727541297288832158313438108186488605676427377149452097868411241417234921009881511580644019091958138150288033580247436006980653199246978143787071439254933868184942597754859607957708545936593110373489988970277907076559353789882135591380712212501259476209239611236706896877227614367043205439665259775102299204895488347015331912546527929414363570799892794404675332328404710878689650957275704374399291195083809724323322650042540319388058433334125661324477585853014684418206435199552090624374259102065279568362312461442464822103082133555653319555558959328908146658296646313035157404749224526543739428645727354052115837684762684606630081077895891251771995613906285796346748212309388625979661602893002601185856161997948745529623540866938694298229106223345673370012319675799192183989449770818545861070824519947792402455564756341789565041667693843932058039181437941427959505451044209133049230900102540227124961755460191518228856776666600927661472169015292484361832335551469657010411514171341191256348265161931637322504955286477111547278690797013920286207059157138397663465121208253464056844344803440414295219015699467120918862965432750036435640584416903183142264751370308952110106063800383134328874519810350137711840172061475303974297525177118397304664419414841184150700083492493900202340120289670689909139517511602511370207982989558663412989255413908978410627275426571303154489752243683986889402149583184346688199590059498783944512618101133578365778673065990179292748703991178653318300387161882026143997017573484576951528629662945675437406438662310466430620751967777951626673832362622756367252130222409194240450108240292012796690217659580940676841382899595708849523304722738789320843819979635774023270869449628177557173015366362049940746514584893564611313065825566042992155929074841978926807819176137440765993491578225570885460777644120715819236158717220462095329357301465856431605808141958154988397267689188576973538464193410275682378576495354117722192485372348251460127010008427120040708277647728763295418156212089988818300281705315222890588052951389645009252134449963822719348649695275984578359063619586151391448778267287688064605329615786032540913803413185319022685595667814550154990605602688865908505694352759757405991897274342855451067631540432576334849126052898933320824079004454393408355671450534644270672864257109312793206386544848259765582631310176935247199593272834407061048120139476171349298283142202434875866103537849653719028517421394883735444452940887536140454532149792988056899761855514018195538283551121554958980742354949360264884615514636882143144137600818662168470152222049228825070850498224160575545218901757920729702406679433933432104873139331310743847653096849860932550170919407044268905443944111956093651007377834737846230440516428597978322342452769059976844146741087804079082913205047025873887455502498978665157362574906011705389350046982499487157857003337133901333895478029115605937972479124104982147792035013964090088908891698001311179479261310935682193158838628058402582696898044460587906307205222392695573480571439000324432476385392779593749957892735664352914469096481788381440244880511985767608302925974058583572732871066714059204606108498404616662492176309401736567233674368368130933171416100785261076404882815361179412784768973090426530650458956198987610689828623154386597515516954016136177442789116713751623689624856346635823260726713885927636457526979095038177748359497646031566035022619927445080239309195913116665119817238549587924371342785502344155960330908416504028566950283560726707473658154115512427375732515835798135830844935782339044228306209614147045350014719553894899215761976520324757642728533606956654177288345171957389961422298686573475317237770947565225194432832468334590189326032626268462786668685890721556048347619453177446325329118000751204948320952626884449684521265378748544716042374883907431908222698439838203125885411980191280863856657437006143995207975479189181922470426262593467944825414971166174794131707844861388205674417171619595532259717613564245490003732876888897515597768579796712487533178066072527094650204442145954888214266074376493519339671430927053786390329391294129179802764027104274316455191053386386706910425123652376499415426796623148297497577492264024526022311150069720151761393234657432924266363299244551223416884545110807358858920244308806272585501542593000916341913695901076630444707685015749725174052266426394778336356055215143540474319483280972469302238530921147264617551231288869368956603542302071060005349548189456530773840899976581398822322534048815208019507854794767098422268437181428181920998792989313179050049966896054185418884452940847681320169455594098186671227392198754518565409741491592636914677801757030427085353562788253314861665046707951150064151705491607074967920591153133643920920412787085366277943200307856319637636326648571138350736725353274978145651323525953619062087218776125383001414444242476615489583496400956556720497846876862171597493324886245652662973328787307048555429865984261980404011224535743498783770598638934872760803791250081950772024735030584197222135035489158478231397384433574669606503178746909870618730798123787789435064861829749973544504507127443420143289950911855918448504856729438650172247918776997292799005341552110214621933744636252829585108378543512517742969686291488278182528120800768131747673971590147272201161330998770301714095934195222726275654038207745591911655857356092927361671790185030607443565348395147797053936131434338860872874676794847524856011670888363618103797877929426939677966976215645485577479481212045231430385678667151974936229721847666056998929439820475539791971483389646666084448852306534600777817101161203663137923259392945073534997580741558527225635646264655343981166806002841344519078073396377071580095552003461779541363739746821461744294257588235359056536842341561910594108630120639314162019141250065543418408297478557728785032848958413666532138265583292249981759288363355835899273174847605371809094871134739966410531931312477188065056647566187469704010069296014908549384794653460430734927754391018551923749288346013495075559932771395891258471423028539671472759642758678033061638275212430388060816887164115018009996465633072738492396995254941763669072555042364084949841363481264778069760049314934556794863188573061511574629864440356508460724843575955674819979080720775774916803900441196799055321813170206473308952342816807041362761341738812098580878784604778734295620429715794757820171156810625384527719682535705740449007874427240703809360926288418350907196833296382105239028214750505762219432689703891498168192090072027843140829355956093697532632628094511168713797058124361513170864571563384755123519771734429474631506955023156670177862750909921990239993480156660619441617341718482312966243373212805427552904986260974550424502682476439785212524543044173761294401482157244265591800570750927834383616831742294908604129230153639255203281741443591930954272107726224055803405733638226034627281945567641395508019613500299864085622421244064475900807110932004367312105595315045944163812252386831854456578627795427033814778126435854517520128447004361689717036650705081088287470500529268599102046374926344359568581948035283455831500623381250030530604894843531748591289306393456625716227194522344043850126357500326219261813098585978243054969228598903838811499554808799435153414211734225831188541270272520317002406617957796423620892495098593715859484315388512620102853836194680833310146800446035020103244197153856767744532697588873838968449764240298632772111578804174164782824990793446666638817184027098214030662741217258380182785965404434610974261469128122302425460826758726749399407009228722270159715856695908330985526068533170039112051821433013101890417587702141754183902295829200508128295920748755678614958336567563920406734379359219008242457921332642649299663095144923738183836301055122702771013663257454633636264442557080309047772034963232233245492338454647749602515330223207340021760693470880594850794106011482675609764284565648341404389359315072815062442723350868705990895479034942444683501644106464674079136854561147035234058123193183484176337724418982745529345054981660023086518552267887390926769736286407796385722414468860574212606608319049935177412735170152819022096607367456999278610352575478114932832439936820752482095855679403090829164700086363127193741771906655644041929067989702798430531201128502589444265331662712219273467785971713447596853536114973835994653622229588171430154903166459260336589178183055965224536790670824064628084594771492628243796980912940877186080963895627187221767427926086122553934958674446537009118638741819781623589215938793109892231533091223416635727280732823707215479732970646443507711752587531715274943502144803495690381088501249533044002304020954176349582541064016036266857696191763897609388443978622072887880199385202870813185944298964750967987205010624591545195395264215327655534019535292617139896495798738779012274907148816327637004260857689197322189840974428746619573281156879970777010845625160242987330152965112602210633000014468307799105195912600735785172219604684335481083479640096924756614029118821424255225519235726952154169981027471020408379274619573593595114011705799829134392426626149095903023583695061817880392145587080702220883461762179183616595505283326782081809294762147873849315176015502506124577867706977217641771821316717418166278075102039121037468976412415064574264643003101331488060484136534014310590025805374901893629380867195650426275334542100324143540390631018401227516606852359177991720565263224994935476844828696405837053710272692756798935734685551730217933139924072605689750468517920863438353372681072538318401248630518554506072503735340835184651721744514729999993226140227414042492041823956162407646326425033659683020793600456208432628713357405834001950486797023451026960509545895245659464079455110685502279300748471434554216100651597354439886023969811165660831543008207708859648323160818012165067228153498609505427347335003248841121609739605802056258143657416032874235091944365777946315707333836090839606239899121838923898404894505887307500259677114030681991291626247318027972578515986571309023555491965542792430344966998681216582759268066540181490342489476344912240729826650366804645821221303471700345033149207975872192286027849162379898896601785359517252887995516213248512933996680324109300366413379078540542925646255274683307548592537524220802543099911401765857783871978719541859671894515160326453508991862862112153770078841913243352304785713568683959375004695080371793347370938742325669463941095107134116328476503772037858944315485107801420020344302526837072420633309872183522097386872180468400561102396087884150592396107188812268428208164706182582664998958767010853055102676503324984216782954183645856030580432829986510105429901452593564781196223201207773787505222263342170559251815640419065858139073793112373461006028730163242662563695724440662479813005252887910320226955725535002359218307149228603083788626422414809279118953146057542197036807162283591993425766021068197835798081591097265801658591042755884182755734782508928511989189695550209048024210224463555295476894657119395502779020888220985750073194524657607491295741157717577122937408629670520624944139870173823499019790983109078676170335045372562314959790878308907654415976301015483849995210494453451009356519573399347180758976357274447254160611928913444660737474880732415251094933503316967317051037714417458508511363531135304575161748451677528740671705865955732600276850993955180722692320747883150888272472578663435261376925743054836716713260747239147944150887949885147867055176454366762661681236216529242787763471381801300914202207626611626176216781984586251425707442827319876567254346963934458483767842146274341994127173104727670399244730011632049196016623123421891299104791864290193952147379951458663436982466182090628455955700659142637661161919061233001543233375933361892704383292148928886144601706078436910391337006373986160642635855284376901643533691934002643466300668985503538075356935825867647504956852342486569906320357586810820887914713412765386251249633547825301576425230666831173463710461055892664182390376687455343910880137473839102283155903404276881622585780839064884781852932432605453533603922283030131403579384442672782327964805947592258032244493876616841860512702316328359201602292182574599509349139513410286992140515287546241520272057972391271280004355284886901124919557783165828973382736036614135103557922148283077317339697148436862480191951450698549593424955763662367080496971462219659583986077592931233465684976109490279394544608804862644906142852703495463824355532536382624332446382320037489377949686105105282686719565649183922294413708591612132348900929142946501707247830650109821484711123435802367830482736177637010037668307213669177234824931662251430242184853103772203792935821542955970903172625759005034247359354158527063326335483405540633871466078005950451144125405333887493862775013446394971519834004672321739072740564014421033344933048214387587057214789489620531392065288357434127573846307661176969389963272641216123925190104219397165372464877662576272547257985964702281162169221161266992372738148311690652558352205270772132989738175277217326313979176403819807100484646187821809529917609916809484403470768749335186388456989693169998845803578715070404690091101544061566953781156109313859932335980721188999630199304226580356480191531585290423180541307449299110528641480564287918130822390587589084873642354115740742417525802207156001773554165828026020382268916278835796290761297570669792970949242397711344537614147420023898759731736016681029336279307441579660454479555748419650734722135506087774141481368558367558702146704252429067959972721144387271593890443085269121219968690584377211361951502654911675570844271656792980086961778068500114395997075999058898836360917216786755394289737177283815330250267944156042828139881507655463038260906957076275199911448608446986714831213686409666236394237893252699824687593248213909719190924007961373221907642128037134562515137528156618105181724496551457511100297635822917637142736415859075692936770671488280885937133675912811558680771183396705642760958041017213224102834782773095992348698947710362821575638953887671473546324546585200256279452537222919869988799735270522876724290367028561364677136678862061199691979551875852769282826313567209228249041602923439249600040302562463792398892977439634691934960251099443619390618616507467625446754977460875768070488905492116872744945612869817833449776670030473409641720956764942006609357389900498177606961854123611483392821364998040005447536015661191036926842823999488174549768741097614232374443352067862529040359877760325950903186265993539133737324893270521407512320775129475506172775223529624437415619777451847401945601513936628554555582980483235588503024358383637162244087860672248605650205940263242557531541998144547365746728232322556465762965742459796454989047876461662961136658173213156459699237355047232006242841853552145486589965401151636220366997030038490897554071321265736607686241640351549377031409858906196597865947280815009125779946251195767756535602825319749629065104766220489641828920384106954402323892213274206404830046210920702164065641122664358876361759243768749868481928456851266554249135825565217494742661322108308301342089493989855342415953603489711028049426783016281962316215391683839242553607254654640057042054274974704559305503184734991929062085935613465916513744913276270280256435608028873278189440565838001336284966202380130618675544900591614306504381432613739806888042902844357811399426969178267717094851676829314216268217292106225716886608045372280091635101579044620705848779095517961187690030023834768145734074572702696800448975334932471026686347432627183190101284488957311273091700082654661644361373283228262114295263765188481132820912820789808529296099481759187673979022068769156646345570146748939655726554598536884898107703435003590650396851687864914126866187809908176416489834267458114875995436696645474839823868715364236102218351082622345763411513504297832615390160299288562957107529584298775292634223061798472554968084374897488512835336369002787392901624756535950433525049612210554140997366696895598559608034931309001197879219245210170613816713124551265074588629462687318794107811217848178585274557245654472494542956697864438172245113378898638764161651458021853233237749536269435318052196700987979252912646634394396024288440871393870817399510764380521040714796644941162908165276274137990800190643114716706398385721346417565686985597352854004709398714163546077077953639945831021072210942339736168489232297222304906148279802967325989379456766559852508399528521889344898813156473922863613691677122590417331131726062206020047548014020028478982530673087043346826429484282274947113263753629880023746526044233472328787812980994534759387994910336889636945423834398292897649025702583452210049082584166144832405254562905895688878488985755917551414772195733238092532566912180793212492659826847830017520230030094012685160661698292619884874610912322870755401634464988571125498779338533300453892968569623517895591698696347366066254840101482570783242040438811214626895725986136400588774797093077437702934832192847614971355699648339379013173043114375707054164899090068921266365912632595983665352284944508889283252771740488138905836155864650750244488473602486774000217339821766643027757120697914443780569006587290647322424031567983881755647934884611575474269335977734310829896884224061244615005080853117563916900770197801309945377706293947393746349607654850993091052475157971339701102395399961562366672510518681073513480667493953330095223710695138878754716851868854122597733987509623098759253277169568528435448805171200039818131050001508206015689232476589667803007265083991727560929056611430485059070023829351191747230417341392792228170614447376651376466274462800491558831731474568411975640615378445724398254648192478539405267414243438087874433474078058952804645648994622618290267519343040976209942858268440096071722768400209085182571476049078470433731113120006565839824737002881774183086300056059074249178547309480064183248529963568054345831087361049645186107765496744198362137919245871379550130556213750877131683862056822865621160508176744664869892560303133068120071083236348256896165900872846637330477909457707168622913686437047647351359047738060865018258854398238127156157678495303305069834409211264250778351938441123496690744337858845847378596325307140948645835292832136269298494737407875946899919897964509180504394554869037189738097411020331913821404070339416722792740957752372923276146092680317251917062013203632609353810805209859026092718018166677909391315830717995518003093141609959370190158348050621132830412274819818273587319164614377263278751701765711891222619689473600595217892344548380180474094671178157413756366645399465154181277289836284399487166089981316201131391580998063747989405615844567520949420714341221097784213611312470936441156211926273051718926812435939157747971091263444076008577888241328489558578047209806937524517948154011701987286685140624680666532510842101643392379701503138211032851118572141051306733027675406591917974006985209062995222146386721714785543677079512913036263809320606886867498115483907271292459520690739852555654786804651666410340579375864318391287530132937431321363636865450531606517852528895132434883649040806278912194449753570509831616180189999120901146220158628868509384907158239437487118978370415698955237712574822438359049649729762208817170335223598353948786882440884038824634039654830647241179685732429209987596731774612538875476822790922574190039027511361304793181437214896694860054239447695878765694131967099233099591137760939960903095966283012614960313777201515315003900278524542817810575770562248628070675147093157174120975890010410100423249413763787453617875305770938291157273553274400532703200541272744112124098091365039051868659978829785032025121600292100693939142664234487824937084664317924477503390145112999394034945486645869244313814628457385373490570943428431144182086469232349280855047372462333645463818872087670806469304337577530995090573642997301264988312373425601661594721646653590723319168411193377032793475172545962332747787127538780822780936241405587846397307284281877348244818586913454504444286799368750523633784799206745297623684203820009375240016430522034278950807857834764544529182997685645214731633664601473103400655460372530552509607272399244839252411719491296056666554000013962261012427360042158522948401095839739877465925154528668025654553593165208951880582845492725100763011650988186407665146575686200216626147010664355391779965944935670295513149794841837917561220795354623814814067238697360427475387344905689747097442273608805903157147112485663279051483155346329717864830801257836596956307921211912170005751984897796546851116970063382687619498832123394202194469810584799292938426928201207143521933431592312022739911213550398626988086580233348078089499201267532194440400824809961869952136877311619112097176890214603818609773384297920877127710217805450332401505830393527280337469736035096718579050212489190672701697203871387733655843944739107957473672230631600084038484481648173258737878364397564791554812848534127650195160901572519066971494646898333744623044163019891851023086446032768028825118682662628325189076550473025441165576482826961389277433276727818507247765576750608164067776063667387421784078838740513360206199664694542986343153444699528817329444628907325895503613678772352910683273089028824935030074894683627337368223611917168386461058655621986996968998733623934642811509731538696170571161891959086215441744809014356180964256789585095533337604734397973902329998072674673259177052451505997032346913641072862755216040514159360526147869890450542825086587390090569783844899020211280231047739716412204222829447474678228205689377520699232009553093451899348558422768248811296556954860317388257963086455590171559298993420415632444134647238785187785016071008682320304216365820575450268368708963889753065468567505579895591640661390507538293142765577571632991318335023548043406424344912957365364096845739213534643549771949218005191411483769585416904630682886701004843613670995499190203144044045553090109548693838087029480093584493577439850479034424955210643481235098922951935128294129707420966266807050955086935391179806760552707877898643114311705475002610778421203070861921370494150975523384180068842626829142958224187543741114568049691078122200580189682939477010536507777282300741116608740627531085962594658667694132784170203842466789280526179468337034003147347190974135855380351545037709707380638185379871633105470390427884508410971811621428133446280910761510742392908332594456313308953400080426377616757705708938737118747784126759435006876728113169747937242944048286532645880367824302832918488997296250247774855457385217531495216902927211965782703470895961890175680548458494080149600922155890407089761012184472152349250057803886104205398893858567229003799014477463323165628957869377955579120084950345625355331681512467564096472629974936307914432740241423595715735125704159181107749450453482301091301768075968071995930332417466131718981611768769868510981565163090243683325333528913190186154593245942413400089020602965231210143854921624358102770103208943866040475153595328605382549663847953593165029855345049934857131966431531004940784576684273049172130267771989068278483216439579594015146768516929733246885575175622489106874375424103801942330694812590003286159894202585780169797596960523177689929460234705591897192091661793737618456179269692041463829859207146793723759681830334047836927979762353110637395655728997038899293903650443973421793856666269856921630156910090013349178685716661123221569457501464873315360431735938383727024050388464698565893956454756317331361805513527525219720648848983312419389455392882014931067416863753369836461622017851998628104159945061385169754051993915188614984990021974479330133590537820850946196429782848671917478951518062621836787883484800052711097915977702378430119159527219516357822864408670697350012605000566946704381294332162703563511481279401371319855547279997971229438127488240991687016554587034524026895796959922928593975300993262472386662123864387100275625875677062661199104703785604513460666248414493640031389114882031120805809760254561954800559258348928627053550333111467089224915773244211733323234600350122382912222578535948470838513425511619008801140838401488953728764573321563496611665475264869678110636720514795502741495321363028058361467281379096652259046988735292661473753363299700161981863325464364023193813889150876258934094893066002236016945561160498774070946396928972312975716001926461333545195196111957771879897412872204885749445593116869012099625303282960687449447498334131145885985463864954964119653813457170809550831373143837008957804037379452194774106290768738229369415981713097869661664226935535324100755142933274035080987987308433353348515848831793141951108335364542923418678538035831933278289965000783798917625231837796540037593088657303776994577843206405195114198850546258460044373403000136619483850879962400855822948367301646544062424266834514531782871743488943653141455386363756504044141624189908622268252836582326316330147558980874728181549319677793206588672349516005374163424879040775025794202945372278197746711054876203370572002932988554755396007672997853069957491742896340008008363795029690379866676586348889178283607113011863556616208748361037826156618519565940771135269127069606909311630957113742169082037066242516374585880375727112398742187219106762963510823996619565922259855795606176434773250441408631153671184429456713252909690246027440295853528541203206216752464587963613909244498083432494979502645740627393462358270406075883305818068033578713638198191782203063126957189269720739625184488125170309772735634883503760193981592300507275639628197337289848730199450102702674182170959973700766859829413641817702152006775931712685829851306563472673392045034459771416368397401490347798257433534184397064918127971160183502233611840104955014120602855394608114537156275573943540077802737777851992706926538759444361943526390686084822981512490905640067839377110089113845219137355020423006371122872182998007719922761925632597301741071577894985926485471609480406676060356162610328444386320200710124508724546861494938329723313498538062292159496897857176160800372292145258070454108634828807448625756942058169516289167544306601383974663384009007659756947180003366752730728519889467356641567368354117782037514526704032664806019061676572258475767508233854915163699129627694126070184533427286716618920902453836612857719083454174708096275238938586957380091008226632617712160038571458957091449483797174212102732730604282515035466704122337696898416779751965292941672569720273005246833143003693740624815155694799465891915965884313737777709863711386997850494685657265973878101820931315643495107333588526448042294528168546919045391203183653811415829036204743632432723786443178788356602161346854980160716074093571030371934256166491429212574414677048000555660997018530539718222871033918114202930313159896602088306366422980246751492554410407327965688911991151050917235631564822509095560540980579560541848874528518440387261077584696534795471371910355121011747175890656106938318100751137010128419251737246720646300874973541513500689263572179378636652960514116415207165894500098367039579743142651337852549726257936385439470817004520027988473863671695027744201444713492236936016257109768896161118383888610724255381675559118885465558020961345324320646362961817755943493528626988008869299435966552228829611477730750830665284128365540927341659856085351072731730493184504510365890302891598920998794766176766486374131440465747473051750932980262917024109095371669566046523427715650266178966742328363371030318484960551229645392968656749265811802351909004533438084793450009887166178320511086380923584263867739147485464515897220090756169775543309479392382668530247146998446343483799839082900564754665919526391236546209415792717754391382756800348604480452669348637477201187086274346406992326285656375771860968943836435880667340874969751845640313482939676768078726981078784254299145960488087947440184059578060080332846570844594996526187033968270389272964851458868889201999366956261524886078631226389064962046655282918134713727408662545101526203273020757880189322396364932386136306480366372618681058230409713999421541260496754184675482863664256951110319757519284312361251602133419695497794357080592841523283690482833959932800103079782266794461787052993582264877243418192098378709489571546367226451489019372218540469927619756213570689894085656139315725437239754955792459375137311145432196430077191237320896086307126432095294105698765826215624196752445028369770375569220809686690626668962662269936450118104685947914347859435584704450258234077773253656013898356429960088296708734795207442990069437910369144799675673237138093863944844360506289429599438454489628719945901227927755144814913488456556436868966927432191162619472750401603390338516752824928290193281728909522817346623455961724392918370818757924406749303807511964714311857813536751720906259512774096308444131557902551593898926485711680591896865706939726969210211598197249435029732407125791052982602321946573125452749520210601209899892778801222665970317772632119349957480098189611731452958681983049785978244648941089469050372368941232465638810003087423820857805899653966746779690704600419893075254619486907163443395820303156299985450988063059599388234707682363825610147634139510767176876013499786468405387684296919686619781413410255666879164593845568026500315340168444030614082826666190689185609594984998783437289153909028035683349897161891493466246791260403709349906422375969686600234187450918160468289472790051182804794290196958485315392141832176771200823758315346697856541141328021696470673737788965903323396162639318925769526757216259227496786805232615547226838799631916478305615757134211262994900353864537105666222389662329863458468255822370250425172090092019240290455209509406784435994543864876524721404347251103278684086035656488992883027171633598157655524874329303140839416185243514146580040153565441527227170877537243323512996502039469796223243421980965774390752761200012799189789490785992855123674459702894014864451921516264532681744134542970561366828628735886524271741164345831485823436054827683186497256611064087994911144696008582925455992090242012369833530333825662663797778918984809365431429284717030583121549785161666593286077702405309963944376760267739078753805747055293686706259447474722848529127017947801927011753649592903580671011720209445120975425298064312483124320718449161886944538506865424654436290290744510203498061872147284220863549188762078764831867441278859722194177866842091821574126523657090747319452143986113304449277111083369146155264648664800899938934641656034677118720818194573655489115130288503287656804396569958313439893120948060654219404076360751916617893132617702884060001928771703334583723710805831271077463349716135127547018496417909848261301364498072759449672326176805805325188602183890910460899811059023601865204516534152934275210741415939991363189829151254749559030593382623012193661297966828919301236380021058910313619085006035070344111329991379173387973189532495395124361711955538616477253586517887771298585726073088271450230979062404809326335238269194634301162686926331919947279806456619942391223732902813094122777189820428377626586614229412030168641095230416788288075633156294933596308831596335673127852774988618162372938608845289460258805294208264354551678100871865097364877338885977000622454572675241526743030501431670303649106408756729994866928546662953698155823904378985851813241588050344993491821178090337625185584298146936225627610966546658394048969034987564097601909138738932597199305479214481512621367769533899477578970612333738338182457126573614972346357864107497845451470141834846315860214519278768589386668325756247141156052323383667769888519057914473857315497539857207007580268149401834883980482463371797407757772989888308799241596009460010889985894973327894240761023844544625099666051825259246289817688622661221265849780965246691485855481337348546229810609783425614121587018672451736428257967546861329657247555113213224748198585638136015248166106799549888282013953778680347502946126677073350468777031852214025050534067748331011449918396551575572578361136735670935456996757490533238622323823685775215551929372847773622464877005181888864748740591661340523236964575245750978620198781564148399065735665126510191506157667559320540647357158057177061221355417150908375757141573068103991832666111558185478840425237802732134094427851986152698923370529350702096549265868170010589722095008314692515900048653308827817923967997807954401350439395094965363709121012907142085627183087224376621875294124184653474980345431679165114739692790127904253799838516172645609800617564209953148470625302919357077739740094413066020651099837145954652600731911494010419257539988446969262669744446278873465378960503591753425501206336523106953392660702412242301785892504500585911655838952288988963749170255800129739985383372013765345146713016769514747481739475141927153003598151964269699499462550637046153398058489948607240864452753964694117506667363633434309216831769957318508158178437618259010435036821537274659775146832181172943162584693985897090905680889619921891457915601465434914062531124829978816800017587321077134412927086014220044573303011476633936122424338969063184664853813653806294567342360391979342389038458355929516444728072459270489087070162803774409586431211381652738974956351546760818682188314775703136951552767208910349596792071892696472069523736753967715543552261230600753585318748270337898753249531726159364050301397239495341872969672475849712720507008919312124082700932776710435029595416652919252140128742672782504453291813450154450607728364354246251948762963922761145805187055291252030111906881678186715087917002788622485934074455089250258536206457471554685443384166277798283530569448141514770553667230223332759426393179796254825785296094823599606062699732268775013489300673015505191986166633243864177201322356705383160606269391354595921809654409700991770357312934379656341314947529219204760527548372460915819303320968225972583884012194341186797765228329124462820161657125948723873780187838478821048547479841631057806060821228307218127367919456279190447386292523753506224398215360690342809923377345534647251903279351657664954034650626091118556108857204494331039998016684868804153352250885166277274047322911562865051683869577397600084095876647355899688004679441805970256793089919247261308561732577859883511713647582594336079973208815068324013425564291797156292546133041204435123544952041573137053421096573933042176424198131198733312344292162915079446762679538342187612193584717856583312817186047603877248253101821985116337423309944440576965265802695895432732869844951784919846462938092310596268494206822790644113122820444750786473895621416731964827043962914554257160672461015938737785497003913710191539585655548884980546583900279152154497710463101603766259199455728209023861349564152024549143735384662972028342600525157903811691814543535633528051205912190412136076522291544386632749603022667228300148791669180933136462846480027065265824147277130276505256866181613712795494496111656830787250877339664954310607366887883878085374976295418585108929747943503135371780698065042645893102463077243988208761008190717514186266756323896888472162369981181045662400744004705594111235126000122531374154454911354564487981270342288420830040804636394342327597753214233338303574400422105614915783979330528047068149684751236120177294317807942169888876941195974730450502312696157470580788308798808097942945928325941862911398159545477239622143670728100013054357135237591020834867333906371185724214025668815960200566491885511456948811061919246379837315727778213657299508543035852396738748979534165049027975367791593505639715090640841255051103766321275457253582234088772722376115410717610210490326357220454895363182284082365631539093190254962836658357249314286115980898589680050131134467701337752113591797354557140477990232158117539319066100134924604585651336368814836679840061382478572997036154572779890785079311930311799608115503453000568842910452221804527463756794897204063654355651634237056697023427777127005488536116986038002002535440951727123141403121020201428224954851469754082842107313484512146141589924999919020717088544599239973635752040087284400712905268821352887203389357939002913588823529187339042638067665751058295942863109670943272934889925520488497075729321698771889655146794955879613661047244643268984426972155910081166461095161411618504006965340411632563140720583422907094015061928874782890309283989526807020056909818059162822365065017242248824469062706631565574141498887401821733841453305138679148505088501964886434791995865368223322639001039468254160162766349230344244910141095501699409454337698949045517645836984063024821272125300002872571103167243712321078280957266546906141577187136218512586758582158547174709798129565488169745474270711418391696109984096012299922000548044132059177314428376991055097365671417918106984719847995049930584023228260959928572646289014191461337620281332402962883678018857391983974058579565163337768317507278856678619658133120462201520966299360811900380066501884881763466342160614193270902723699070029700514328652739691162303153211031736460483148891273529191726457253362020781440415681998860688318696489382628010780075278507045923725404066970257691010158261314674237129486062346943312530848725522203186892849021742098509393626542711124747617487437034558408895276186602989440308050632715415102674446866189134336480656719732031869074347163146196394223686326136059107510435525503929613829338389791387697624502938763595386837396937855386327525253163116307892117782645049715323488175507352932205435518751984855559852450415211973082927198441601251421747443928752797655889513818247659435839228888471501063650976958982086001086922243040429343248583265814913405867818240924145192451769915636509553589965053160087192585079372098862966225039241987517320551603693059346798353303281261175694093025816592203500736559077268675123364946379653557423716177440499387141938887556260009322926870686434968036023001168667770668729365586589929295400818295483411103024033710083294924156209142474060267961456009715154782383517585584402259006422900428400446925338059470194986730027996855898784557702651758838511789945127532180405656423473954011316108759806905650035534783668905197884795977114637152788907814399901695443624869024666641889491148463929967747165735971054060541887202761518661750731075112098634594975054546485261821399924994854315815282109878790324552741996674328115431896801960238481566907409548384491338846291025886046722258550307149902282922658630122900140946796823481657810630269693174884709420219188922444368087476670324079460063013857584048444297406686582847946684078068104674282747034585551101062888792530687818270720273207879390177002299155681754159685355286928971378195647160207345150832997034119788942265306529386289536120647802400808698676654398293136744233281811851081782037634078500952358156595422989010622089248275676738501292043306708453658893878630998745681151952889566036861235272574388913339609371043351698636292092337905528734131899203951414549933870988246766308058115493717663531278653577635897195881607633657872296934282148328431573580004763026223105939290334617144090021649095324386510382733639484764352320341003755117873374103783468273847922089086742174490927863548296163519031703624997334126371833389167747641039107068733837812947427080167212798303456258620443007311041418677500043425210168632997825551794391972205115052073963351303579822803638997651213063320011820172095967936705184151529894310719064194198084105800078755486444999451602445312920212365520461185354416734598162721984359016642053348096788275176089824416400015782915264526357839904382902071124283158428480717443286104613963211301201980236481140203353602127983787415742217382494878627175237582516080561901822891241441059232164124979950257052622736772733124549328538780916353349758868060763696079198533993085328588744330063663713655542025770242073991088674249824911386205358504624459605812734254913261573176505305645282787131584567824978169441742711806560417602334921941321605424108585346949972779966447902649495806206652123704230725559885234045454609884745929489927702886317914796300526547716373382002139251760292733074431854156552586051279337003987816074268037436019648951294030011927063803964162978688830752424099375050386120984385986644392278179031086328702105071200887193106595674716039359324178150442249843513158584350190967943604231302829148731357025646780473788021553627443753252950311783285331373857630538400702342964595079427254582320959568040645028441905038036411110058552463717253880486535279233991624712663412969639789789077238309003834052608816530334271403128223007295169726089277870019235405460385598420186251524222177066847680280528590789461740054717940335058651024248469872799984355452309608021151440095662564893278859678201470309433552664281953743623463666571570154531202747796279931887902749760069617427115335748362304420348527397241399516178840979925010363837157220518016100732838019320068575340123850767626517897658919670832805099178354202484635302976257013876669970626382274806631626185485387748823046815044273207003065122065570322025162324162810266331340409669252611173193626718029786078527107287499363359085237562611891406235191540017116386336413436286135354626857882395460767581038353282925490980194615430997184291930338831798735674717804441176451859016951678703114639364468187143306800244856368830778126226091092479125186435135737717479977782409296767624331601825351615786622127196392591572498967382260927070142569618203749421891480205401870075767425742499694350430586530204707497983266049138533949689275560665671219568485034593089756255015005687282578228461634695225489934162406395404012369887117183598859165019763850228051359640376876564993975966108585536573646294770896046235279557825209685314214034471604538944193288483852126764832843837338252890063682114830164454134386020593708565561834876264138234945012421197633543969833842669509094633559159194888367390356489125608164280153596687582931961627848588121649621518914664254413712090748500792733474181388779887234166567288228346096889700317801274266202148037812241196229843877537669065457901753821836147308604901050603507865597232531538458292511916748478452096476722891383618604093467162203707091703245107556677175254861006382672076042082286104134433517166865831124528045229250505759168197274101850661613269722491162442339141947207693936889425150473360599693104303430986387075531997629625923988557005562830459843621607980055053053292489352855719446087336209179683434057033586069302963806371639130363297334144950118656506589394801218826242105629062489703897919255213868961541150323792087481071425558076812112992099005044773186015238214793067435924131304395686564109828302969536116530442109319200374490907812586771102435629917454315614135652828923836587726941501519106728014049297323527170763385179557842478863327562862916780242887980627319196011948727376635978128197564651418361946849189897410582393150063132299566283778240487402852833246716415323795822454938739247282244665630271296738399141097772689399439219098020357710575937538548224582883840998012388224680802489280248097077660267593880277136445006251268061902611265029209147143606977316036900409248920678551463945814933075365663789993051048473591044249507492652359269381148986040762510393486303493950572106253996621813276594898593532780153821160519953192700221681561870036616724510274717030841230530907342212494429212311757254937164910273263950811874073351596626518121958203483728125097998954057027111917407612379572925123744402747829795585140900427026011382702777476152096340749730510090631921247659490804768104650671466363097400197302741984380040149262681336372858935622895108067283386747849294565404772842986327453545215906161190548317068039281140637858939946705847758207907362539905013821182780913049062353959828244494970311429413491187260994090424513298701320568429253822009359419307569659954746252465578833994425116056140058408033433573865431675860961806974311056143112360809754254610298475573016567287284692890959624144423621900130639060077783604847061986455752013385347657535601794478303062116192149023376243955223262627805891809211974261470543040653898307184325067221770036653725552733736738038230171384138801312229490457656819781352929822514324740150090698602152412392253861077524543306537527165467215133159014327009124646078264086064669056037746268425695051962555894829059736836409840279432536509039125638333763062229390420944375864442756253851977143875114720731299227480801987284678174701857988976325596208842932726636075508324004524756127698237480231642483388662262069954958795399513218441197455530727256079593580012231257259108149715837173173742257124922725501282445558996515919106567821170860174142418108978520080184296824074249653282053834114819975127056305313230449181397206136902839084249639250705469760527436668181603302044116250276257633480338711545338398751319668035465507872202142824969183710057164839979848998789868114562903212737103734167473130097615922212082483909725991818514518374950996363223755099767211516953558541266626658308292216434143398006642920708305879789980014207819725264132191916936224825028370629751730307124031227362801947345646787537693911118596494176644011380430924653003223981703398757375698235767718479192418139799516678367675623730822724994906218245542510131435751797515362993303994699432968671577233264485352509863711058543581249941841987022748161394514012689365355739800739643892401719362374257957514414697515913379770154715573045748505068547546826688607343490219301141509533712698961531090387688494132040600826420270967384350443133109281168915040688727804514843709741336895245845123274987990097666148497530343038623240977865973140586960377434754739341603547816514708849257868253856496943217412596206423760468825647478567945318680500923036930775749625216037037481139711995911390717119946542370973634611928056072157214684976430691396078168917149919634607485769773261167964905465901846918995465920603821404383994084622230222057313991132336746454583021817150630069478838584078560097023187968093789079835667671711852025395833665073098453527994171988587025755688485864413774794686751679589254541125223023787045407616298977129110128973610312511848776631017838965909625740289208464097631968865235682911832675449489652108261454059081964977694897800632840970810680871110326342699781687392511698493409695931865294650412889824574910435370540329004693832330739226150236654472736716106598401843155081636598815161133894756793576381835517560144584293045840220456593590363919096376763815865225894085961342350894433745539320514019263060598830598507424038391128458998562754284854477936868683302281697348782265765233680160531024010272140409259943954519414760724856270858303547210464603323680893097363624289830144428419343227415268426578578452097885228234889635461070854381144369563399923345036240784901830815295525031088247695182527813834993258986925828834576892297821319431047345468866853785790023111433177794316292870960856670692324322838336482958403595604146343835696736709356621225178200049696372876721347535489135958927156713083801038088205199104328410786543057048281021836690619347774263513469960225298157353919739616441160677433636682191671315401125868481085920684296897927743039938417780451532585210305226337419610955930217720400521576520639839828465064031025396678890475789274281902373007362888118477010831098768244368129960347301247694899352309386026787338777145107661718890016022900782712483080721774105602826478961109668308200180949881278180080322260861941007234991966011423555152035314735251472344340826701729132933517847000279211931587508526496547099019581911252063708648795529830527904230888166465550135642336879941177429614353316042724472603080022435366521808925396818184150055974947321571139971760180560842920931984443915455152482752621125057001089986704138517721976559551242531561546615072868823327376961635370655884805850180658248435387688730099906970538615035260833212324129192370721929229369997518713704776206906132193545769805174963656703315235479721673727644492860433870656298356896234124491061870564556960339819445928978063728146129149291011527287870649629057909033832715007618356660227577518705638411991541291908241993134390031967885675285292775380868290220729774924264605212586990365280695646101327870869285058462899117586210375393446810308547991179992897055306650174281480517811568390006964109658336915689256425076866538153015766460871950530873628851098810569198899642975068847390589313753843270149894943620868216326288054192710873275111322821270144786991881664625031152598569313489950238174505296031535227201274557125647901539443965124608311393807025332814073211742552599282175725431302361564025602455387759114730239563548635596298970499852898462519566272200184436559141576288698768654584134740533214275751304313503410342648468080008546829238713407228936440134961526054995283065305971433775520619168291776409352717299125047835604867377960294282867232987540095448702817058272257089873580558300742893178099694177182703880736788634405716911786002443811180401650803000349531784934325135013816403947819915539705555208814979269295255986544606509105606179767542643819980637834619216412800240103385243894985957745867986703743643829917909606967361562172433865731192686118465971171522898456814863079336559677317322158972777854921780905396994985720182567550227044554836061110115887679870824901358806046994511600370465006900123511037211824404918264007559731027721561558142905406168528172939360985578334663900851557189370042325802341206784858628509787700872421591785356979387783784070579169492905317158370011925465205413004777413290760368410836683980888599680252873128549385400752626536191173526975285763219225492473342803859180485226901112413720043652725436491266313097423062912181613970076171054981313507377954795732470611295044984868370240998192519602068680277318312244807637367988459185450734503221907115684771771255891047379250776468404452727551423014282384471364864944181165010354880397270899817766162562256974007537609479062519407658373079865351425357169841222887190042351345554631184977409683682462002310270332598642273125992118471687709503764682977027052362937305848151630086427634964208371884160789208235610323953175838422310016260733834443065754090038130867998547380204140263887600759488492997153069779064305971602556879888701408422503393266060761409244639584735776734025461199944416389100880659718515645707507894432431990380258204941855045764682628421015767850151837829168736436649359529989946070419032079806175192758551320664288466469664140873454016037268551160075295169583290255686195810783344153577939578545865154407026267084891891287956032644618322971536032498580870655244219804587461406661673228588468903287411063128515483617896537871114866583143517631150359355946634805387148065808194001588604206851754893089856872258631553750542344938825085035725424510886125245140671145682424038264023735808476660236192960423419590921036671892058276096692503372562088878966654487154281019693211976112062160313657071798887649970013977964378035421237418083130588030939748881405512259063204110130165501775329778272158974580893207979196035391185672602857473813767926279092018837048512981317136931434512663686717923435294439008440593328783012190907639507087376969399831479703460077059199412849211546685997372947738507837686274102310903354131427331138792669346497027158439067357530156171368915589161836866691078339278373069677875929718449037407093623233428220011544910041740486631987028725333495843084216062895577045796739780244682105355519797057343655450640089048449988770457878113150316226646801178463329503771779397275941934597354304915701062410531661845863760011170553684485615775948963818399567118710310607838137993673929033083231689977324967854707545394908074694735321673447254758018515504041248070571104361232060188100090377363139941622890434877537944672560595724351293063830242684246944929661445524989544209557455899822171774758782750829802491330303616394625479923713884756648899260204211732102584579625013559305179948627350081466549578391317010647858847991039468847890046594567162232525483496577601186285831633166244391778191203795369446826077228698627295288888590017478634575995189110051309023055927892305039271171027624001176607073872116023998813563533057766936697414127099336598861544883615328702331880772873300197382479625128871041026679440741981603994324477228109382300276643990020166201974184452858268812776823904384281419344074901557202884296819685828054727599816908293605805693793355908451438191746959555262964274158506184967716644397120644909141829630123976195273459760063830762411928131811402145235852798961445977898647160490085314997994824023793916482595742215203297372170561915224286830913066367010917457086475598216849390281243217896593970732866709566914041505143280924308850127971805042783395296002603743766926365243272496407966370004971527849246561169300667177104500289537637979838561046974319916805675852248086835845681646560691928432193406763249172284840065228102698478439519773741685874618703342451667519166777554525214635102629680930645526647227367951509508175572569132693350238232371892288479247304504784486280590095642549886966513509714845440553885777446340757346562896083209029368089829789811695747452608209611211461821976425664052097943243623959460903019376893101437941972026250078747122431989473711804869214600573364019756131844351573926227731890660772722626351493124538060554366930088730844787567547621976652435899851539952192953340485939248948127316341029656093653044921671721111238041903586357168370588821499509502265728982971243233576074854196575143077405848487944576994180239312275308335080861063914849845617188319481660030075187799779257031455107337743986520586725024728412868703938751982432423299506881629495730366669119427011159844744138150450383444125054036782366456848889725798163079264709881366827110479440215238359195006241496191551494549517678496385588501758316885550507904496586312141683077680578757310537110975336684578951774362101424772946029315654891390874672826671939648678959653211108801244209290216285213192262406439920528592855265986118089453587998571427962526007049112304212678377394733636882189665977751660085527656846935862305336508956759424409817861463474803605565622710556948992370684409585530859174611873394849055672869815964607061026768702785898454196151077348708048723694688045213191701909227088782758002092029542546977770440518925819464607451242014183737669502757531439645609787112521735699843020957383926424384918460010717953556469285994791968376716288632368547061711724818921922934411677414130420477441061819126362797414792275524640441436450649058401901968960868774855797343269107256456738431172904492491326508599655748932300047156837207757065141371236577009887106895524249787519236084572247198543839660152412250344943327013503770949166204544096200809528930409514713562627164557932630881014147559145382232675278560021495097714798600778709322443421228651333133910734264793571726651296291935094903904497718742140255884114644657906638754849866704140393258207433525109864566461458322412244169341163418387635351927849090336907227056551050054683130932150425962068158052682643803776449746725558542146443722334921604645883277728945848487745864329201199704958689673268979449187068192545417373307616826650121434082681672816372843131315358087900555749771509514405654429450975883652243948012804409234480141115363430474392889985368942660626091869506733465892740891426892230379910310948534724138696081461594581078188873704012915099922359583500872102044205562696453580349553255058016841779923519325218650237242962264862836641957015622733762610307679206863789941239019818348983899806791669694046449488815321508943589125764286901790279429814146967042696050394782286874027037148106977460384160266113933007657414431734696568832353764343298728668276030692755442017085346209691541885704868986462823435855473602403704707945222210356210211452886754107317452610098088088419456634089020666201600934352565348133205451091391797585351528032037698619494282308163869925958504924743865413091417000302406918334957938241993004403732203672299231365920259741343964997299217242171088469624388269926625951382147859150861039948956781651658989624953885236231712772444993308966956964660209217055201302356955790304581785855575284743486036093067567640619970122361729154191861822754220022346764586111536229261904386224740026427322318071513728332049298047148655773990441458292110063434068549248770670376597024301592108216349095596855388570042621122021699697131050222498271676300941831368299308439148333254866015886168569030259062705985926246487230557499261116363547459166209223033855322294357138280691567496928357314364914525560637577668394135191922940297388859610344481393518347319809356987319031459190490707397675143529969543669375423674862814706980191620298162745472573998248275531985940397463129383630016876261720330211112660586345806890244744385751229379752142909909512903684920046800040593104616053315184699179849764790875651516925134988521036216246935483046678438407304395076201073963247419784775762186055091214093860825163721573576652047450531010575289428576652753189215809266853774406027719610184252533680685221781688872483092280184069090704332476218314998994907362479325965827148322865445095274862090636301022386450590266810554533567528992913213491212319057107593106371954047552578606350568552378012455826740228553199674436874973092561669394657994632892812137781705595138898877590507885606846133829532986220326208931281393255006155966259302714248156341260299082882819468438190996889502658311643234894409785681228458169937444244250116372074467624493055539824763119246465065346353822636858244409946904980156569631144211192797663021021841707774335764468402394476506798897716158731386525306481105857688278091260634897458590702343505967297129813151947925402239136060127105790457832316951750890721884676880651511778058671889733324775982020259109397187102510198574746360284957417691957537989105968207907049952665707690946262090268030570324821280045796661540893501197912670399233049701814229180393099131381375193243724047591279304999191899743524381549061987866913952747940584487199089686807334425050689226572783739976177630412074419613399347686724855832610996601212677177939679779803188433574545641688770105008491488881672167752140974567392076762347692159131525710716445818554466538223977780908806627582904359279144330716958615119442524167059606619117156191811833453864971472104511869198247714369046432123076872351979823383737094669082174210253562840659755043432060470326119631240159643736251104502192288999424151344674473038142242765472685132589121904910099336468210245598001380231573386688494765119037195632175601143274930829562270484053605778047783344542023150731929270035907665418962628630015807813943736137896025730417560044441615280645115884479021548615609093689394973921696023986114739489188826455140128658328732563149093733073214445336565115778977332904944144070438667073919217340226292653929454425096653797493973803810543059149478786875208028552208730641918410402738410240912230065814352970349854790117051162818509648284083320052282847426406673433525755582199216827419772166997865123821224202369955797081145036213409882643125282552927820428289094921977279431229600795896990390135951618453611710986266230447042861407119066550099377815384163018067199517229574837464009886246811750567542658650693496110747179413346614253331979047196472362796431546553737317628691877736953600719374593172213907474179477478193593600932036591707595990683913232999237693528370418291936273520925892059855057067296353052365902381221127072470766107930069376262907108695273650599437460979201963805591181323515432170199741714284999004235804575453527217742397603942556448025645438695234226422249909410510923688312466456976048101896722876147443725241005129464919829264925578543164012313628287750404272302405388474388883888218014483483171258225754528469757472271290057752320230467897234952449662443655430434658686816503987553234882027852952608418773149144471563740810343812435780534482415093885363372682685903887580455053133422248962052602893354051350105281172260440521217142752695136663893964945874185559423486069563085455620510409281998040969195752189511193563510735276604372341469991298828385493171455323414369996942026385276835173322562363528670818837656212600685782068295831260174648802312107799258689171241587704094210330813426656205640699411704296541011712926937447288187095146031112982527213914614445703140701286313272616717031933656716572520536804099886600156066227507656926878069291902138601938909418481996282291007825451663203742109720634384156610692074700405248910143628796288760348512150903729661408446405340050695212178730894070509347175501015685635608184968839537744771789167774153767334803240895048484201455963661516521178660792773823085389375551166063380669802897667591688691331817441519338230301755580061427397740856372462807263084646843043735111669094338030401737055352970240992182432960027933807117746611656124623692807745643965119212893203697132598165333449945842932152904982756678531875056748994534253389596056529380545836375815400032474856578953597931547786507208778854059268503029981418206468278153832118762224826879362354402499077216531367942445881631307931139122825128614260973500343046958936564415530588070399242824477965015018946466987692303441726223545209636996413571273084847077982638384438776203744857383371126166487317188810035409504350771016888549747421365789895494455791835417352555452416838976840923843885669613350736133179496268356421415762883041845236994255751547005512982001515151926675610566034603374279638727844270839265614780277026219966097065515578240935665816411420599998528031274073001599091058252403993114739816982962444655012249701730872930782592928233322204820119365024746424778984507076934445583215955100589552706100964864482256400357375201544908857318685357354137854574212588668202599312471700561124686754058861493583366441824826014417617206568540712121072147942760730286532375355959693408838901415937920239258158751121789513362567028319228879207619770920559190607803873713228885508514213055409407174611012005808052965071193804598959172103052246440491953307138572811607295617558200240682818657204378249500130432925786921172463777959380229948480417706539935865410142565135066927555950418704725885220043805816644854243447862674261152257166139659561991177011615284521871000471232754192148971675974049114174530868239694934816185303413464513568672341932714908291859458867635302798470775415874494989296949360600856658827476118260857713369828923013081979603047376579082815102692107441330751159495930183046363743232514919977278093490021723445198643197088872188631950570661089888424567285630788223329789771052477790548333698229144721346445251117447044307480765465076807815192993286375500184247621651330806583960580652263629685266227508287423946146750789742426598574416350487790469657467906052224117258112962011966930035169034204580241869689806505335045720487913444073879308771973788468660403242659964168003565805866187058119104536906224223070930212037703529061676282415812797861967575824144787889732676496725170671715680051193022448007996968608631775320366309139204450461946318219258136522999477032776362163590039073516750075129290719423235573729869383707407214297111751045280535443151221164739848509324573190983994167136461929472590672491736128551155201295614459427880687940424853215204007691456827667166650665241793767872509549515563710813822799018790734865543783660705893925677566192879938728600291593372636255409116762814545065814257852930020444990018414981112354718970752187525571717709255876251838984367846806218989269712120612836919589117798765439276095036686817168622803093381771895495117267349144378289215569450733500207573147726852335122607726681234253397741021066331659750404134718951360192038027790264113608390108588170773180879777805367001511614074762341425765335665899764189051046388816188157130906586836869819847612964940002180219937500617822020364024384076883489355407157338656495109604501299402671490633631850100956350082716105733602636064472334995604567286728921358511001992268503104523296872607119743197347705709933979490094477250981335610960966117311500398876058434874674533634415195800943146679622592134773823209085442347695870588765362108782339845619654042208076290812142627220677438937011067161635428276573367056989868826818296809863444036234676610463502636341968130910800995515039761815834663974425844789033055491935260503233937609096232861179137298852890497740636307839888567021588686105225756100656114941035633034327506341812459261990657155044371083216120457770415140199700938162870852824653013019689959058625213766079569348167239721468187827634389896648563610799181128527142005745542232881893780568800978042336659637177971022442601174040735853450918304394678776519733494036535108074448868696140673512246809557582389939285486672061725553731668067205181272057102932440741843764519115568698463356081297771511129212726684018333333013900492413464815137836423755821008419019085571547836027614764299717959935693994301545154328689828719332069623413002138822187516228955026659086736207147971703409132517010403094089115226010334757405489720448578091079440738450677862652440347920167389426327224986358298674166884035253852099193955474297315818527827033344580858592975487599362904131848214795574759757025129400775320324072095051625471792389906229879726730488632143627611072590019707715435917905220980292535398824762132331518283804250672586884800665822622308948995069487627673031093781732794953001867067774792141923507392583846893266184099101654974184745919834335786065937557176086211671646547171208230915815645770943081896949724215742850269041416832843888751869267514868774338623039333325227697511252097325348682101726127010372454743576966346785191791148810934567428702019166633827258754005325791042737623248175704960447920664233733030854950022294350446060068781439038066500603068649799640961712984315058443700053839379433170282687932213052993271779686768141320115127119054562989314433672255149642750236891059607077476291361515729539312418382994903100966777592619637986120457842801206267941124856960316041086853220496931223184380264603693128159940376745525451214436400043043786448281308391340457543347153214189646631932510298723899172259050618355969229847379926257977495880863740650378348903573463902394360641374772543766355172908171858826595135284376554516702400362595166665096389284065922575630948966641982956790951883067403016347686308117749151762494098564204718636410905171580749835880672728669463436721044155481804970013861261319865557305681335406599766213887141317742373514713288200938389691135792319054860722434270979847529916959386234572375890181683186006341076732951380791625613833094528643750318563142487232818968286245410408329203756243969453767273093798206542293151658762782863878274989670478081049807923665682606315913287480763203531101345755464640825495283358476094816689628616975354072178797664354568813126369548786405244294925992284598195003175610660590042371839884773808615866866641256815539672472764619750855728285872928556620833292650093488132190936527107302911076712237069962999626844363764908153684869202006952719932165825115609104661261550317664523444952807733820476608157695309801719198342757038463585838455533025394186485625223621917626457335764649906239218402404897838375530118384991311277696826177828373885941141461124356447650986263147472376893476543746900957791341150514183523156806984573729402359758399603823765390156058143529592687455415124371545385057708020521816042187810631517630389832853628189009291354336375672190772427546242586645443182951509668328824228407858243580647015998102020905560986666880880781584526917652046534586036513088281153079141553994347506087465376874137503049354253752298427394192662283274283008834405264223344814483103609860953522750701244935256476726466576991607981092819773596417595873139897875050270919849466203580818871818778530988386772115036000226680637220923180585984114017517908325034316725388459113499038821544849887541718440217374921992384832277921005148772898030660061149770824629278600342557920638061154366215786096926148344734910322207324375395550349949599440831574090363920819607200049189171691773617924762124114285194568229278588672284974742359141122137960440426219092340916243222417624724181248466957039017885577829530146642842829829459931455342730070317525512200058586464561614437264229573374063036935700379382142002504676846222096696303903557635626066601317629428197390452190120406643714813403742930616160863143410022820441786833771836992424507848624784499440269452006308149269980575065557172327841472563895384731041231390196939665984359959469237137369682216218932164660316741331336402925457070870579555388918702773026444092261278044315280491136643771938800601531546971839926708854376220893817693465719241192589323771044492191372936570148766677283764401802652037651728962512979080183049617000309411148841666370056750329812965906371038366496229604197863942647211459279958140776232392294028023876181733025301259939269185910131485579312287201884882982776194854783750499370209668732165075301146881825850835149325613760383304793556813982461084416160285651597211907126306024528893588806543806875064860430552037553224082226686204516485954076022662054355991421489536156200123760540231447513367006500592747803724888911879087364694333834805350201434186041974793111171094360210780517871011541963014680172576760710387428923184427116853801862266028778506879759166337697182464577986144423987335663606639200409804172156505866210633363468517379091934049332640808065825640314236816303184282533062507920446954921367821644545696624724757342995379435320281904768970388206073194948374458661960541190777481152527008256981302368451335279071277219630975816875641978240603785007490579320268136540088768949723827130381796923587860865983335691571337259565841710481658975376252337841717557715034785434545257323350784906859277332270155772234334065254272958347108967274598264356698992941926711293129673274496760511967095524572910287849938694888514338848593672418715851807570617404319875270964100924588051388975722372286821320124352949378574340415560069184548891198141895526539282665793182580819903503927989746687479879404696409597584771012231841527410077836134709390251019569472979316284246234499207899779823252613673305765436690872961485612855862284518111096876676054660010629569757786859303407442461681861246731107998931021080259027260459855604992607487162882244056721464441803695480590706674002573578109092923576997440641551528990850064269865943381131401893011039052536816726677688999349794073584832369912329342120319522274589416167687172569428954317100654096421767383897235113593424300113690400436835062290006510322305910949656971547441986748999959684065542198163420710629158187195954500175565635597732908678161589114976227247022747752228172688935506547750629832850062316456785854795823339095059920813926536647996606842134779892001231788740786945425051380731434045422237247745650395214211495511627950468912355783992599135311793242040144347659938207861945258244075799877260259945993812187586709139274603243651110480883162235493458745710048433198458231437793995732381208073052895379442946990880003430065935123557696851520646135272008181372772945503962336400369705577970573528379012694846959968124418898876442759083565198976861044600573310968442648084603272838964127667255870434698926018809866760140418964999061208715509782686209619292965202687349594647601272796643479062423154177097827364232240184811518792074521976520389469881769038556961361885069599045785260893343182802742947967111640833204883517330990372199294934738577829169910057943082546927370453199913517652852278477330460229236300759185146414955563127578713834273327152755423475669525556594656408518251338708366223607816095325481383156303430014190228249013096226300145843393398903840761952876678296982564223137149849812824008353719525736077990652267806607080398933908599483160080244467636601850128232652652553499297831289074061284064499585892607809201427565650568578827348806402725473636589834999823481879378138774762033737536339199713793764434690794016031762606277485368905554951914132505056932886774795832763575586128634860962321005606662468070418967824068514681367095555617662955425380770258245497633770665910270804117056700895878978002167630287120638709982890940013208903322509092740874341665169838700575779813293231574923645449402471806449038618349002962426700112057671347955596940672359106769464251053770839523215835361203384270810524183059420704627808458144655893297672680043891062716642613227808917666094414406483006298909073769300604744056501528463008713020723767655292957355956093011435728936210870654387386635778115177576622155709872171660795779377560227301757342661130970642945479553840221425431024294601304837781727058189119289762531261190485191811821018461452314344573268235927598393278928989177535061193787273503826624347366211126864386304664940169356345182423824382893405064843030306887442275871368698226489314602300954752918211191705831184049245498621159820829585926530098816848058652378060499209741252607029819578588339764783285804862049963564449357601246815451064578197605224451440649563457046221937366102260056355578750147929714311609218248751221559009922454097990714262137244581040533365530877811955601215257581991583355699137506773763680518705808821248155847899034602128523989337738545796778752717922715734622246641317347046780663354415330629762706849577032354351065889640073619205756074988367389951787220799781740106034666786555417990119746530045388822827121382105731437537752682092150613803040453545817218070934044434664171988725323032100391927926627607549934966178888149537171906732918732972049161254103445960685110849279927055940393332529473029721412182321559333527254768291202258717770742192447023766399108222548886528755839712363817963508467470579461691485628934474200749326671582723176640021162711666654619201300134987397227298731844190491768018425981486620626710588998472079269393703755551234765938870769601083447287449734792928024542156920965583346915428265112287993462058148837440243847814654063808064977315341151057719632989668613875627416059221945750347305178897325854352460005984491420820653281139964635875910964726701300787216774832436230570422058524076660263089541114329123123608067925936714929374356151147570036153323943380316942634875777179908556296497282534085395158355154006642737653106636259230105953332501223733595088670752990598497736142028773810536561894636872922655900448595049706845582057040608463031216204913090290867617191340351411981465517059754820916434425678444180912004956225075809824462300752520714123079032510914105051140240630022922667681536361918097231479548001683067595743698206134188735320895477735684947747234698230125180159772928164103535619287752134242297175260570160634172851058617609293963425966084533521278268372654976530410053345241192149923184617806495589547792828480225845084429941615856177211638744621905043092542938483194689356587202282357199402447344919502669776311222089714494538617030962646331498554887944299899899105303535820680637539196985778884600818151397574982211077332876398296554930935932689125196532574893690643957057653254192623204576799179721631912441759840628265390256490947025162097868805595615583906130744576267481325626915940634186699646330183932727506526671081505395077906937892581594622181557264469962950060301607762506127375147275791462088574657039299831857932055522117844252493910983824609730756327115205322424094521059900183055726020122350781625451654699551092968208486322256967094501114298846497172173469226773042469501319793896433021340278127468424616627866752969872235088083476215795360041788997980725438627132015845086207229978179340425564883032921835154535738585182135403606443368483577507414966733080369757205837852058967242420413138334778748996844495528481005116889629354732907608377324588732367879874303946215940460954828965777053421577029921470851494383854798889807061010248765964196257185733416596571425110838239304312477341877251582525762273957054563023463953275792483925687209263011772015370104601427419245878279091252301474093908298964552574864533110565596010395144356227601113177111815533964408404117682204765730743934721587271644945730562508469743235117906557525942902368710188384232661246724755821350384674116613902339792341384321162466545106762039720505267489754516995945456290429925580628408014160606788875464368995045050861626512192402871029417489966549746379886073981298973392117176666965102416419280325125813229703199335152583903783998914912940231982921495267961750451460484779908921728013101787694379448184227102015071590880978585781905441483591831429275770920926606483450995469914278452784435554393887795600059110276682236570553922087355975009866676371360056278723908501991882897333223043491361068041078871914325506142000440055414429176430932128660697265167993749456807629174820697572523969205264622796424318101422292408732804547558771555934650892233468083794626543985371647557970521396576874739269923915233566965900146673925774435086553392445725012669469527482321386899866275574849798266846043854832329966047095431066147887165686999964872887175491626242767971207322246508578523507299326993212841662261418032228666120634998462597813210198359088520008567542026036053824917487657396839829994372966794144532485359592503292793844672780774297139680357691441610558325738637580865845532585569240380791936221883409987421970059945419129757901281859934376787592608466022288264094542808737631076731437895911449631060744977399707365775265338849231476750697325806025918027665929730805979224462309897211902492447738587060727908630816015206233181349178045439656798785200919123934334716630196578218728976273622967338716966990710750833589907334630373745106450480110664996726941700952913055478345188760521877854987402220748790742050388168946130925775813975896209656800844096193143064618229976081543083889019481394132005256702951758486542305975634605478656077781295438978852927690252005322074948995248227777988743414837628675737783666343160888967008280385526793878654455514687135588973206417176919672346647953383446744300955055911591864152509926930990284480746157588584974163807996563474441423596127911828762456072922093324642543770882085397527786954649761440454407694747731868762679497454497868496066665658904722451979777054102301474554318645894561608195724300885176505015015119892057261714088511260504562673360943735110420494662501527659062634700116550410198853098050087637030633892738895784956642886083647336683197784011742194449810250971304318646171140515894009011887005641633890633633175257525631295350545456737965429642668552986456952231921609506020056527591960678048574122640685000922271880816235922743825266181121339783934608052467861702670749605660409316073969734454374104783941847757286635500419149157924472673560694403871762616690086283019358511979407650422878747231360360945593337319017934219382574966794953483200792371391924128065353451275358307040081865148929970499008779063940137413735879029470178384033042732986500213712114633337418533953958017682194009395309345681162509839297918151764004704257895323723345833939201719784056003952664382717441424683578746447924680538755601886700171317522858484077996504878355163334936263940844100258617357595983895816717007697163390756257144551372189641760315171232099549480495899210084617210677646794313941734586342402551017866325993158916155302709127532338629275017266868979620836352772721642791549709861590551217516049577209016079300803572538444845659832177531122483742768987840459541583167939520138760744773476649487551908929935417056510324823134803096623426715709607872593717057269948722736384545697179807752036478055777114580282646750291123621957960515213058688885897898406170110015987579912871072056245520175921742227210212785427042019607738955245666543400306795884477491259187089597912896452083437201843158514014362159494240896260067223847476536510312193964140841586422033129907356382328431531509686194061149331764466923897181808453924060517659798758155982276245322699219929573736291190940281499411047555520077304219010016930266149844254399285269659455625000124306446175707546400899703447298434256148344002252767665496090300095446614616090678897520625937913271350469087090909875517068056254301090405969434296044964843403478671047427557511429256281557664841847770005698570506288702542873272889722859780748625156553363222549523763726588652849723309936757242660895421067379251301069684605404837940402902337273436056693275054923742657746325826005396365894577667323371934043882893653769011148193353380885699827576470694503355245463382772865785856351165059482461349374473172742123462796742794401809000881968646903282491291295284586732062673872701700202457901406940520335953673180766037395980687473498588338983952401940900214603665748367145692442459877784037717544789817781606608704940039512916305131802326220431329417058351532950761447695845782374016937685765751479374713657817834960340083845317213190925847963108963948811502150211827240724067057708732187340290838319506071368316558870926480509998720660296804550072901460284302912459658936163428909984259278249949826236225467988914120114593338190799528393074160714518848971098515090991926777133138730470736212069402758427236285582121012868102004531055197244936786459599520293748149999097635531957551872433522578017133011137813451422586112466575789642514430412713603155031240835856093476024841833273847904824579378406444143852718362277337090406226354922600674205420063726887337414947151060849852195475681163916565885763146009278806720881916882188653496107529249413233262061090128696426609395955778295694577287601000125385995990840415839928046971360908509991826423214588180256216196983210512202258292390365982879193733663672896423068852652507799968045109637515135535983310845207990664559411452655537490449697748852103507663960014766848030542819680741246711677989518005328028756416168584635550592898592086659892301442937377164828100333378166810572715567170561921577195111872893678071420232379863071754297526232358375091246252027519725268250595058389493243709431345213122560507017673936598208908273571176719336834368713521946468785805214825144883827582951437317183471160667629711606304401375538750649473113280673981074652435459631122986442710276418566056387333660649036887009172370309112203592599305264684929755271820676435951081676681377235182892194191120240323660026223860947449674077837300217417536472237317132405804398497566001994316652767685967375903895165822855083839980712609634085410333540669952043633810443796246359334868945961252609684078294448819866918688744074431477625028062963705968123604106303671511406927442880764912171975923024646024109035502388832276950217903687934799703210663194490137085861184488054509144033841329329692222322488402898925959543713569764486038435164949743674062505431748203286333724500614936538625502172497803384792929729535187224814686615933372762276866890179628234316558887730690698234165756289005500373588077825664923512217810330675937844329723489277578867061952994208488180738825532735276406912501442076541399989720054361580617617356024641851100232460885663990590504585297690334525641735704068950978971792424595666974940063661872706012924109497792719725330751826558342935449586810036610102427822699900904505626984216773127337015017349998014589177283512858093463648602144567613387909297198169515234623807592249745294256714077888838239532735566730134881908435824828073620999100539098812987895174198831916284023525954785036283961539330381469304527376310192707168656981676450045653152841008790929726247740602189265586415617374033336069294449710721473655512385869054906043334932121491032849891726349895536776223379191348073837057421577152683845844715368491906504421812570894646188573229560175516831069364471787220829174265015277496048739642003947680355930857585815995403380797577337721150197627292820560308818174643632626086454339218701475346503511126367051035756950267048766200372911170314129848434404779570177018776031123112215304739422831519038619981897962038115433756042182270470981644613284495781631987923849203789215797649624263432682246832353542513447009009321599788239865992032446501991472897243787254546372030899963712848971500623080853731362994842663953713781579227782320208517635122439279759682252332871089777484233546418378805533368288663829979709067834634254303211275693481308613554340070629329452049796870997488016167476707972738270323987522956403783733537135566895461681528285475585509524440503858097715324776152961031009753817639209458034144302765206319123599582601153385754748701271197782882911241753560103749180664353651183881042977034851056699111190952847144433890887796199084030069862382978340390589825164156274477054483696739377119707104124228979989814614044772996328232240419791542257166592457853607828369457283960854183129517697599148679985714542292529072156514623968069575599291664039200036462413677236575300932822140388393136003586357732181131195929455331589259153830293974106644529822140105296644812639293727903647840604378048285390277960978999074040485949674965858778130041695214722938250736235564807286695852895809299634637914795338518004376282491287176711551085952253744306444193453457048766148082367659403218400147416168782331966210974268555305898627223405970881544605810457000511833986145076931296026020192882663398838656615258176038248395483235530997545503639892597678761747398781531725253460041427913030044632633671562118706797608550768850989245480976547164394551451491294101797397688103519448401592970870230142796561665738814502651949184259211841630250357188923804898497322027628862997880397860981713947318685767752358445583138805021007940467399636663454838624981605773684222107069383318586265303240595811875949847082520849634473445704263480826168856609550705044940294122211586752080560029610550858466462597938635496665716222888421649665384080978506352878425760247791595892565928726789875288833903711138695860297021250500907693005794405453425971679116326780770563088948185756509843021574469804627243600639581769296457353219125673218434956552466386757894284189954100412778594060977612870706773407474457415292467275684739710482977142674956432731388503808520915506171060380211415438555321328876554553024601419210742556014376247893336618442422610317024346953890646216675886546661862711938764461264997344721172735678887945247229352155643719203157806060497119088959387086132122797471916179133709071379580061365012965958557503327952518250472922037502467753375205166566719031481997396905242713239619974508778984026339473321598654897960148340407727483662082214949419118243178708284727098710945856576213441595439610377453082089236765512401283642530608105529451612213748593499308805694159626374055278525128837582827508285649126735186972081492994015847606042823715934319141962505136234623223925365454482845932847515706399717937947105968206656739983247049673135765175357731839812541806593195109230294720257237593062388720834427422981570187408998305077680467468536245229795955796021404089354426474050619533002255486549425435007958227387165836766337163401338935178006054479296832970995262712344430965870218818328756593832952125248352583422633294205818359170475401346480504252429743373594329204547834292986486797603717956831135269421852339794437430828058667858918817687427084893889770937867182721992422664808961893311961350376286084161279533657437071879695002887802291237448386851720433381025105347134564174849005578134327060754892546952483173087911695793260355690171138243681336513171737343147405161888464158105198308289305569255877044583326104973525183657520176706230952841569803054687036709961187375858345355200279040358647684772183522860743782387866321135850357819463924898615373144444545748485699204702533256172118394852151215972164265171459680280131760022060794487855618546225149539320622573350320004759227855218354845932649743707194654760188748703240379572378883807074577447316270116527851349442435689997564385067364142581570835302270663615398617647304379771233643167538899316808279487536627951669420380437524730040339899650030328878997715019590064588339815665660167387229793426008223744524507174303033609208927088294527385275006624596571927060620915598920654358577759937431831189665848953690872442381836268356887466106358132485075733324637905081093683636729520490917151624363169006113036480445479480719841788373230224063377920906451530874324501458662859737035929422488213563628654402319755329762594344358979244821862943109412783423747919403406395900808177773172660859673196706202064807133679912917478927583000770088851403695469469239148833154589307412283642030077449100294836277994104941105585523124612195537027305610974025778037594662910339205787927720779208051214078400428475826401982009914299274046457154523498303826936896098410999367867644890274761894076659668707365400794649397513521721530686249841643958567690821320653688800028385502070859841959809894342489416613322462302356796871555667743003603596069083680996147298493730174651787585808096920629233951659855064291297257346274678641179722944261863270557705451708787613218040340438370748543050946110211106887324444507042400759352941497704463710367908478780372553639796267734041467655686560159050791483479865794762244492704720133609648026038197867133472218673166460351324199807016770214954369721010920977195673596093108600768990090919595133833238268225680778744328582333841224373149966313670790904752431626604412449755220356705716653579191659072168593368643223452168430365940063023248372250056875069071899476261418667165430694747834768277440711669420901357263141814563364481691113150792414699720423829271620634918715763344323622740683453578473864806920540712975263034497184568422678677567511843466149118180421467763327596344818068191937080889410225614158259523296965596934051842144743064145226065780421203719268078874591948139262558530022655044578675077261002392551280025148389906101411583228639420070460447245911344008779860383451096685206039362668148818072219616161771675198306538290722753903497817224969932815055336171133295154557764899201773361087981486278892903263236062564464246156654871995317884657540113702904508612112605115731261678679412829236206715002098675218847803951003238353477060878726921505379747912612220079526052319226153333644597431514891390232352505719827763107539707290385650565437528406383719791612859701100746343513376877678021314200016093319687709342273274860022339736363512549951273498430594447084684729348787815612736320257837873408133149126687347559359076836938261806274306383261513843356249311425194850299885450644928104997185794421818243791449447469261710031610794176415581932552899763352597246659229238860684456496598174356128501619963107528408522845765697471191376754335495369710677685558761902550456109850825204326075534185708626924612420700726357230976933029178214027266401318517952503732597628523920934336582938121289218505686831694289417920825989262999941291940299540243198385983042588783267876337958635805564520960572140068138046667988802546905157040433829379895331338955097918655516124723412704697939780778093568030511435677092551836392312100711985827991055837998727357000510455863925260535420455846913650562790885640270530230773717550732220572849982339072918575211113868136255349186422963912340509233145517865624842921518197693551418703611389158016878741556582994322088876170567635195474368731440120976862568065921462809522222887890300090083127743811427162266498612060146679023803952106803811883128522213676150061336379624149285899467873670973984544927123712488066754331211283007285696480079929037589743165841479987836914471838443251755410499115540810374270061751512475673264426461781164909419755045716104490250740383033482630043094828777096233853387591107644208201136893302743272683039856733019859024964453837798466074635231513068126619658928041243236783944980343185125574345117201941217418530332022481928876200002589770821819302012028784919891931185412320808621243823864618266819598109977997188935430006540340604396682304011329941539077795720112622102040431672815655317697710550359794458320146742422430810143575470548265054045954122449222204580918787178219287832568552161245747145460259881845877534896848064124779005760652080898142871936051675500926029505744754844572226020389272235627768570410687093003894257905354914528720337888227940539370266801138907841664534561049743271494350242212369227809217109867234448782872279020962142427515465589809503290642949847013009482675657782741618587812885403653987330692198987796009586355035819219788466766197828840563065375732612298660601506880719737233609655788185220793908670182963794032532372620919961811751605978463894120404339413484950699562553700826222626075544304809591887525743501503605193408842423523001167632247177697775944059273540406306375194248407924720194714361935555465808477514511643960746361720232338279486649065675144312603435348195175150708718197286187324634112988358632932184140894187083545716822853606994926008327725236354641381636737761973633122902000998699660436694336702695422333115358375974344507744654487390694460463482761374168436278312190897894550006914756308825996715251483627200986841818304113707317905923367533592609666345945456938561622571908163202678626213737968366195779161458867864594690097655675421520470833670619173263878973305374775453672051849280215424743150977818308821566927373194096576668300219010506946009427213435628708351077067990382775357704714484744706203843555762079137858036174228415117253726047931207204793448422844383629586133342654162774360592962563978094187523496320810758630015382370693417334523431532719721588594575839589285540709754005867856578016014827441131132091822001244898896860286072741933818371163973346744707869509844293237304820490185574828123919832455260966812925388276156319686072099059713365675938169018006811938935935335131842035009689740787228114172304371316567625225363461728802258663779972626547069477458262395142091889501750117190920367047953407232430276492750447110185800059485827073273663406401962991120824340169635752767591699772659567403324878482670662524848161591651578761291513158295050662282380149026594437728441569332746096403454243802514428263983013744644558718884460537669785749856173002640408770323036232812185625421921781384965233867283096939099742602230320798040453824072013928077604840382783176108084002935000215277048330455311101800158421621752362239411559628715398247105361014898685270947884723485443560783198152621083013900749847840211398004723898564303507555769251697031866012535992459841534502114484516562391497023912116341601322960495054234735899644426502715209054182878567870077750127136505123083353196858066149417405686677961608636257860790243812285804465151590870570078305694335842425917079126214557323939909636476702816788925396857747866735912412634951861603403611009081896085043769497502505512638894579776488813402753918564526976912108369932486120471812595812615699337777149835424028741877627325190184603721175961737310515136695487078354237513760454012425006849081390570952820270128335184056025892497113965476774973739847127147805072824647672671174503786146976035508409789275702120893425471377687933236664529872567737439431345658116785867795903135129211988959481384766163996875638394892947567356530974877013270265564512040350829580206473374031083286370323722472133056674585035331940580440680562892293983757345133005863189903891539574454866684901815232981085167719582278390397408970947330327338934818769065721714640759233768937027133274603314337978585830075020407712569883392968463509621131885649722707764260646633160319898802329934049472611612866748171217228988643197604137710143715644403320166673460149060286779398072463285853152912474781580282492245715573153963510926075103663620352978339836865748867035910238708901776096601293744699348797945598466924288262063725332439190928850456671824344399133940493123901995907503922278847296443852103940372919843792610351926478201171067961501817099528413278098026220765695106733216233871897720323788115318786127286275591352262650501991156045535084942675101548029809936316775703457742617120197500154568836710324553408154976635145100624976407755178236362790161099091029610029862532854872327032468916599339164571102023322101073342584272709451165842975990535296377393964439803083752225210104221040342491879518238511889453104917255206440867173580323619301143181435276378165608299375995310161026941727256989653041898702352669673050073193451149633756527265820949380263901907431169579965269165126118456354090569654634518359712547513316034054885555095580073467554722283550343629898017472217153105546725833628457854449278920780719814453464972619567743426363077464152727913542267703567542922055046043895788652956801329935719086660571879735873470628968968694771299709959311103385810084863894386976127403086991689122341263635462826935721940462121926506354256608698691935951758799449446092628539002549131289958433284652676915972024824986160901156385341659946480006634051076148578440225845222980896886867338287132778112941631640976990673157124164736766519371295854617605705461096632204948855328687627173727408649004441300565062653783902402629944794235194781976945057013688419150454311186202056779961403664750700808643240473436281203569522555138897231646709848809227444446826857700717994083641222512024830149631758942495363262288506551667595135371382848482373494572689124111260493941206177561548198785265412277794276389804428046306734711909375511570895009117061505976614360007236085876411764693121128939683911860132977891015334544231512297666993458095551658253434641036085443980350241413769370618699411997767203699492213505961763975983650384056416253948185529735649975711906408672834673455424143771973097315130990790301977166615704634784306984071482134861397062897205770982194009508831652319434671329139008013722448346298840080770897771385355272207245580748293426808177488050358671051072945386648639139775337864280403171071801672548883933790966313754897148691786764863182995829269621906365646469024713456243217095492595527608790024473651766177750451680289462190704105608959113705622816223900370836055877261685166626735562960038828834433482011271137608307143797787670147700956551630973826703693648644286796932510987527813642983159526602809539035442552409380274508374380413886996084259119431975629471337847903687204369490320301536150166631693003561852618655325471519651945561114478678291714187879030307043752520057407383116047668816168641011389553421385977404304642568850733499403031801595724047128281124747166518245740437637882298389947910651652015170211513619229402600928578885723241789989505751951706486979556862353992814820726295104155486378922404769485822863135052566275348349349340327432710936600008192348433647062297279916706153800675663774089876273010412893089489330258729891671181964842289381441665167338482889403662399246246149028584773845860033791426659330678518050603756805627602335343128517262024042040047270517812976544753389010695191522307027686146493214834745676661880159937954008928495054206523655096387288432633346692018102847367983921291127047515662059444706213029562282939253029322374858000751267788522504496786977431671295814107462794318697632009850256244612367894040562029001922692153861381058516763915810951524368537866508401487442377209310059890663484932874486912744166791613129307884234965686848385663802531072993617479805791796182051497948168646485423535847534981972324853445470491004133947738271364107977197018921070821203363341856678857166493780844715396555562282667682095740171359003628494761870192428280515528030852792456204028310404094795270787415377683021004397236548905115169319468633241669588579475601931337723049535384484467543772925082152132881629852824451966574454931718970052599781937306976457063927608973142071581097143693788548177460947094463254604608190989319614156512006377171128386194083728795084456654787246908747614084638404092924524086409056894624890963835370949922220930016174829206683087857915633722532181641628314809198830719423601345793836571440924013193744008725089436237755005384988441650747460798011040919566007871948294862703825131191320206954960396953860941584083486400660679277291614764927980025047551390529572613964252984742299411228013048293546335394441120182160939941982120841690862931115784178702574451556334825945614635848465794835581082902055993820248828166394365762884869939320662670793537060029309445265419510514310573092523905323704347796493205193090942335767874497632013229221050137621070241759956549413719521126489326248848969223737165943148182841554269167150229561192528983267293413698180977370922669971057969695930710214616626134719099232038006579376069050240931191099392393343205780523672450430668443272578652113287461391567490874841263108489333160480693055010705598298514025826164194219537080882522047491921681876250007617067719809013754721370802006077258481984834728703141724577833722121921582851591114384175533545585262240815042328488863607762805902501129634784195491626315227368180331282032743836747773428204040249189097065511264902070964070059522657642476262962341674247460065404353609787972970917153278982356698695119788686359505565301366160693630394680509223857655101710904253228742707803220067545494183717274414185853452393303698058703399704171704913559210656334204535877444459586745186572463188400959654784180985643890627409262811775710775205979032815645513822494464004199466512622844480541736157957723058835263940225567268659992049411249302808772535353303117801191563064984128152046040141383974346631459367145906855781919213406617968052007566797187122031402292364692822646655785093090203901883642015556981786770738733875420542921278623419277654942640140122099002278502159503522419582682213615738286773925237099749232031200274922909821685141682027617579163642630867848047746106353702871205810361915775461591135359276842373809569700581705738849190865978241148066514647993385054339385239190422543066340657931665215535762399658110729331839927002748509344205707513108974175708224482255202718132747109765193945066999023488970881986626696333083788013188289413956023916052172553226986840492645049967379524128595581619200676565165483497065596256249141064763809779229617170752341252929880540070224852313504634650006257549856468662807733106265850485706456003887857377376404044053606934825648131824632518804530476433779026712270568445128217268614498161206104580470632696086649079096825564685563817669217964947840574363298266081111878632771213779348447212118927010738656936617513971624396529429332127414007405052646363171352237159267165960418420949655661470961588310363040881708271463891397352244438153980634033258356727286155636373360266791791203088432080893118150381607586412406565418833158858450650071924608557546834226652552433496717135857756254866076037094595810569306874315618888728548328422138310014656049654710946535147589733297409976777161698575763027878890476340940023325863687707617296583404791551307603909019373165244829917010641379814534447627533670916134307525884654659908487052613930635073804424298073571612532381771572983823910352499670537967433177153591571686178747360423458509655543085938260090291281139076574510624547395597747648337492360700807404053335756240012530971708814547764326788384560843534535843954308894602182238490443724903288914380515821487565851564912360436560023074895828211309313023093909207330959800950002100891475747835001904441798864823479862706941192760875251035392989047311687784918548669947408698291559972965752117722177078832481580793054390568100318192952341294639351961710123286207848025829530313655360352507478700201935647384729106883982421660260923404572808675859184885064605476789539243570747305003871499651705664567846691561765935739974808341633926282712661984508579412912875767631696145854778752579156458448654285742637351166624779273326317547355912921858016831377759209803392868147028398501126213932887946498113600548599662669707176476885803037175595952024765904004472402770010696172310999501731295629850942298912855441359764314341120247833644088994942936954211180470239652006175209350058097398497483821175932140259151990376390633761780311481446370120676870415508114843860954747078235631614466930861716531469759296488396579159477033019995079304803167558354602642272109974217459744818815545563859278328196037015570561582602612557347451986631169600978604345854875843946206272880350207940724999312125936261107246806747102971944253658573421934171996181935639077861341719534092870950279293418085680871849604760038276578516340591879254915353932877342955308364003724329985237675712431725596977346155274244090564325697245641741042104310912517464201666519992404125550447539367804333377542802779421470155971467385341380721430839443783236085593593080827800857432353864044855413563421436007965845461089619903573271104376877516207531979749802533997137452609199150468476489720223462949795255145324784762185794506986550805548316830320547571799924854443307005338479323717955023784859750125633839559831190593123098955258521878407573716407846851343501021723092899605726351517931884477574702244683416595334625101582680360144106925557652832131839958366639062110544107524595207701193867368138422487561973191347750036186613954898132906659365432942722495720052181563688523923046494939584885894396513025047275793839029356882754844388060489621404478969056112848756161790914080021450888221036272092989333277323452974178684545430959010432669736432840327824200120453143567611494298224205966386121436525770180575608627005825932101759589672665946737463140186252653838846999486097998107172973167440180677065708683631108648902531835378214052405780786807302018088615025988669271969391196885520213921265616352470032688879148247909597355286595812476176497677359978280994721140245153124589601698985126748857580938360486183306617298985960643265460579938987172567190479301212610020042477354977559259133656188337845030191251755959380981161651096741735555361938205913996189646690083957658226074798644072987460895719874248078562650087410939332814945666949015179807682255145269781994783131752872606362583581463284268302492122970752975961202676548625104332751096031683119661304841464722505194485301749894358351452259458303021221289407658318948137137571483074275519267046014914639686013055272127066001316000160474513828495220984113397038004642101023287956336410562226732228327313579243147431178828348093702886102315446104794558598719803325444096619837475368789737537069751534656474192206165058445861423980646134411840103819258623685933978521755328163716766033652661427979457268635871045145753144017527630348250967987693898982105767822606423369082402667688681536335212009177542998904167730795312732859043883262836190172313595948396985282239980293012861582197145355662521507675710717844682328352333174597452365099277913300713056563537589530517086383899164475012446184690915992409016585147398068978005917507486704475612014630374863765017817570958457387533098871318083040272699613864626056380119525340064910580891909861835989568740515234986738682054296865951790399803952993556982152359756217989922206863093647916436779142459791989544387005530953377033134713068721920702817144889675664581297684777214360502138102399746610715515097877358914816871905058279944540580805819828789059388605028676903609272568427955322707992802367165570704735083658274217553126948238828987269999100398980222597218754556993633526671282022524372604230607940242558626551264259277426281482698517466560347267870330292297913840355774826790147714327262465473259938565915954583058584135462538950785919577297602063246492424885655175660187506205691507145673497516445154330918077488829421518323310079683697155510334723972219704850718519431307998140044688940441549758374730456585971493984692715635643765597183516018752613313137287171150031456706253131906723284104049678635547683363104328323089350561001986051314803572918754918789278489328098978704476177163694089174534689587366372540791924855937849627503682962609407844105230391436109548354757002224451939738729369581790011066156121110439419023545147584046905564485329779274244421333399306717024370034931520078109323457652429725811240915708486028433086362709613704772339595447909254891648260679618983922700663447973728678048994167581452609021112458273173627020100682093005531859901856108926069049260449873924093496171361046594810202437421213234190235650355423451634838228537632230288740604577889303088602321463073417742001531491406508304129556862153271605329082375712139977297531489279140101477470431746686994184588677071712579101997709780578260062636746398119224910990676519716946988773957324471576815304261772239571539057077298880029836936324497863727834940877060113474132309229567677825865590028286807851848720278124312369837176745962576933089730756176157231136341078141178373748660888924707787250800688074283190873484854064008541967507736821388028792792493915488429324789659130763695175618440734725522645575745019532140376959483496777084716289759929760252138164010474551111797694723078836729333968089735696924242913910285331502417054445630899755794119521522772914662579073573844617621295578481045326738823505934768517244924439489773139818110708208396872489563740815139621318516555942117930764359813572778697879449375614125923823214664848540716349040956147287802590688913676115683221211727551016946948028311559422618224893440725132768823196263366346503296075618965128041324188986159090719390832106711758120099427922551678796995713868107881095923168976341891994779041230571816170227185538920320025060323728449078300450924618097988643977564093555003440032358364196382619776005722298759713318279169623818520496809174267251825543437778316484153707348581324150228502278859814071924596529655943676737670641987215683232311022264369164786215085506142477568363197250554825725992349644741840833063104814109241005300021442796110064783154274232646679760045523055913601567009192246255225473470761043932774267018211024765229052126667617755368507728046981298019134961191211135591108855832540568904180643099563888701089483811870502201064617189789318770924536682445157459714560196706749445083687404388692239363593617382680588402932625635903258704498133950518379893293702977829213584500993169789437828375936353188565034220358316940354175409371407905940148858906498836207438875264633413029715973575638003005411180572763215380027784137880287155565227462499053474296821311343497512053243957543457961348974658016420694663407114738627626753876725277794699206794570490297792977020903329275954118627586396388675278122507821471109023976537035042914146382540573792022540404209460497016905621280326929731433677807490617549605687017601342338742695775873283982644070566285573133310193655545163048641363607150288822547471153287828026326928246347011269305571088563737044351965926007649362001679416754914048728487111550340398316415312251289963998478064200949418982329341438996376558200643109321823164343064324330350939388710303697585035813296247714623693785867581375416013711845202623330205809272756550600466757185397061739347103641486794525986252608731604398741998135398180580529462320193151626556007982146293947049138899624035661867497169122990051902562327316722876362381336827779138142718797188733836624003262243823335686963941965000060125512467796382459781244243540334275610400853075416102307131702134148909910161879578999769720043166436584047839517203356320270861107903819232107366001504458899753503742595013201276700412269258439721499794224399070417087469380307080498429748877156983141908312968641051539016607940196691859353374136967102761288563238976226486406499513459388030295033239107529637806798534154909088406016720714756889880154907868736570619415019896727620710947314991179442191621040293698862651740316565534487510506432865827720562918310545300277493032696563668489976982267742869219597199930292011574240649517528256796526359507047200882238186559625421379856001150341289715645036739806460543860911698623627802537333255795606878311712433706320488480751021441495860639459897876671158165284526345282473126904542419387417624961319823209076385212722819145169104771761381749393002812216705580487430559351082066874721211556987628640352221147858411014936307554784802207191957359726539536815366995882457749560501120881936287571625127098095855939587179001568946437966104378741273247334533166429020496328503361318588629788004965647284157533134551688049390923289861002292705331463101601098255684286415727776963357446434118753286768516340410286566126585956462369632515878985451923473452226643248499869674618366396890328178799419825814678401991774735429808924708046899797501360273745374727538121664523570050189399683791579662072407613477431972073769653266745883068396766649854562698393891576385115085203921323320859855423810373066670257267967070664006389372729600828628580837808209527853817673638566725910857499253870300611201702348850681947128073804766014878267247938878475943195203612851965721848043248179663981504563250658005827630960245054645367582453993350379486365002672384166277679312123578495738175989047705468911376896077259904816151190822690964331831208633592964692356887726810531422335627651589410860589640437343194472182163479650226442143721601438891754741088089141655838470601621671344660493613931281170526570442794730939730285441261829791035083247952581935150092126763788054546880784750666188929586697174590918150806814736915997542867946218013609419661106988303365726229175496158549007228949422959753781021719380305881915629487956116436529929294094796786577789226969325881031520331797706262418566026018358612856025198931462505384307450963822361979382483554610557175698239588378881679077689118297433092180958217009095628712419130048586105739620666333109834233478146259475047946911273731043953207039937437349365123641187262869895170944993892929697250024518720287981682189558468540758418892806611944308497995721590264534475337957210667840146088138093254860723371509416236924928201581753958163481545785932910859841152359336806509895849586348523458168672234867126732573730454734009096556933617005974328665124773410987189097257081812474610677397432400743278714835705700279397376233318772902944140939032047545585311719783928253139360254731109359627301217787026356422286865646279237179429347993237238404723962816077534005971627936071396937762162534703818657612257029422087687089362289050099160278979411125328161425195387578577583342878141546537486278409341501162855709228400370060769186640429190874013448232907671632366987612153696704070787332019433144269990221484150421900325297747998923765009512055657136542632941125744560153220009276042546239942591398684208838509184993311642882760647146072545692008480529619689094772804857254346847403053812684440528981263942004647241962128354978040579122001013667637267290753799616203711586453181202453782098614949891429209278452521609057073772123580758030683080342160529187415891209559674568343234521686654385877166528648981382947974551666997754062490435727303089158035991779237966133157531394069959295317054636650531440366269727103419745200744415480185320542561672574994584191444257271406955407608954855092871909762843308523291230802261826879773172006352576482876077586472026668523563068828135982265458887448353267385427880613338109135862211170867527106269877566117404987988983916783956279271992281681404657032872575824670779489526086848651181624902211116622847713534622398509075714017674008253860800394068981269085732170729836225913267547332448539950588744487783844599481186490285983909952555438041516261426965998211051696705542228516940461287551522490582079865300753222860946729367477580630797808993283772240757470446367394276363348777697407758322671335360728874048613222728786715046226151188955834187121780445201843380954449600345719040553610486495527076698067227309686582551966983880084742956894789490999248878704630545979214258512980056382770610992586495283065286667154172321685223472618246102258044137287753752753931708357151717744842460796661100926981449572336609081224022279410706036571399113566345334360878600220440977398566021044082362122770991840549040933683020653930656911197962109934970623173575218448271819228869828334599335092162612278400873516522495084516526883832114949913931856438054998913623877376262129242131869442674487110217354839893732428623210800557216765104201047751824676378838770413549111999837514089405282146635224760541412468870993798130200589595847018381330975963692985009816206367046824955501523890742503704482170206735600661341709745992786339731476931263948903098424859018087041022071084414438798559898840059366016152460402483542575624320576177876341182732087119307762523007206565887229026599373787818082361836402633746243870713633452101097257978055305477279062912674033894716842233748451988486045135402811104142104053562559996584850701390815595700284789085826010961400052750059587224379896602436037753908635276635110728918019365019764540163199444222825703620904967129214920307365608125506281670258526372911697988208437171186555117641925754332419693450076287844611963208210800763233893101948661633520810406943293471003137092821626099791853850910891862107997537434953584431151277169902384091525147236958291164172347790848458094482711894092277903923024401595604639788037038941514134642755266130178341192225779112595375228552444576415454941536158477062366255011052152773450550934894721292546574841627005408423695384108806227494107921324240788002313640143269864625082150676762693311224711751401868242490177280938578168818296887041948110673984254341945073887739018933150822067628225830884664803044074942926172524576402801347156720363710455448222225657129011974344655498495505000522199893749218222435134297735408579307609728738676355415052023989868743485400311794366821400487652575068112484309981945590654975495505310862535811735303097127952857005554269714850657132999825919428562718556032935545905249089818639344650091036899343212392837762826603446944625456451890858425768535069419864440718065298313484764219065141647279251380151520801095408409440560597195650867959961068198582131833039037727023524439379515510528958488892225874598043822982733278300662141139507078979607275229811180784870972030426809838369353540361996077041462239295573993722227521494894618869664614827506508088583186463402387125409354924202415518337501827398163557685037671539568477280288716122568078012539771856029359400146663313826942008485551724165505439434454973965063227990739204238233974887069168457860364220702750623803825146900050129757177622544271537560478815961380230741569677556100143375754479746051753373826851365836491501809368063912911467670078798068911491971566190576298094698604180867595043481574708359538329838989166506786280652737046517791122785843289532955027255830098476376205188794409247793834992999068822632252640529615885429507712021656463623583483113561772498496179916546189981321828259812533455779914634124059800783162646788979009913155443021271070898812765062138160273790761697771993099044295376106401462327713517090826894016587628719358566051643981811152613242896691707555310227936394929917741996849294642331292914780498634979032299667595227044868169985851221962708874298622397999230262121786394951524259942538917199534200238242426663352340176827780317863185794445511665959336157451776166173200833170840458043685744923108387385167823586259595466603614984741694272495894349578734897288495040055898801510737104959425707451094004380020919448940973755524049598128113147841840325791076696623666671895751896019161329221185545083171584847551511046090317277816316224591084418790792070014142971653993110367881792041005596107294835200936451435566265129662651927578924446642806548193326359051864285953737698187554540573781744721028348667473454865702830307214583678463718715376006438681241267828091260987915809553784510817330139365846853280247699783015816418725614007580177195096577457400117359057894065866412204292253688755947070971323132189824178899851029916553871359275559357891148808729600921355894474101610716211199161522718226625241376730978308773252556660982129668872810325324141250035959022416022619200039868553613398332661978559575640401982368312521405733391329543805141509761494514481248836679984921663196917893697955572298372948110056145303144015008461670233996104382619182936776136825482948533210562845186310496403828717779247253737061556318862748327649213495428283840155159544715078474647230296141771704403895881851265190637038540851552605483777035486025777956984249483983477332677243538483375540954491085809247266286442940208083013504199391659876608523645789366353480202219662149413831118937380107746975953730917960315473322681650256946401620566647538926419501918976850119104650109528009429582679367721458848443951156670541406418543759824919227277887163252765870728084360319411869484773390058166283113232500392844099409285952855869675447624644417960116453332270840576759630280618513112887925328540820215121407378420825830424962071065638537473950137066630184338357351478753858886389951927365551985636214781675894511084273184396927829269466443819738619436602012254764115936559882720261281799834274286337270166508883716053888180342870112616354086797184156044932649559826472700583859507579591989574326839549886410172424166440299314593567217031655966630800837747635186429951176034959370358727065991545667561530079309942912008311036113451389240300735191453404611251033124612759372913248277716739056921042876850312565115970854044192117858283518332563338170466248140503821660191930177993602934202376220111924703287499891366417287876391956325233364464041199556489485535350582311763226043753824065352013327171977976180345857794378291211194577502779997113199429925112273717810023396297847004749486633368771719296160010318494495755234729007526196949084205398464132167278761953567657800963306216227853003065756929498329771268006058859197506971255923338896083636724504782451028503323899715056481780576924451900956272668187305391481829081534402083553344800011238840156742130001977844121872704241355961931599035660272420870775624777927113013268917636476066911112796419894521343563513547357200727052898308488696399927752852699891710630928344392024518183150003046736668453417835497374738502713303978248206172766925763567460021944755560903844109053372507082441161142163118535198673181786383256982698165531834021229195548234734035702873881847910839079822694145726706499119158628130800281465609464897757361216371911446035049744184057879831028388997065865587472225110609842328777839408450341383118197161241800205954285355867091486787294947490377506329831219601253250899931406641959865301574094147907655831927210080663453324898219071790852334477995301915097222511601265468133606354498193784449227883980889244613989694905610453102596125090584446304151377513198679866697985821717419172248549007204684344088545839120440854150199085576817928946892244332390711323328821744920840834700935020389396156401044514678880066122462667932930762380763025054648398842123857175130748525164925274412103988242305740288388810571695931657398818669184691605573273375041583194367457402566814236429274656160595450360317908439708061030934598320282048698794972720788427201035264144860800921365073324457411052750470111896160680422600558295902067372863796079659321301226273030538414801826950868631168674951704598961069084353324944109534359579714297335122447539230622554706710343732842236114952582027703517271576392122102285849679555629747681088934825855142510141987359754411636042593381946794090087292197618799499990304877621459454366497224751682773267111932454545081850534477027167005065277017814906819424011583181514410971980183149049850954603378010172829521429768037293090656052812915667787562202283799677967094435514203909928779973602496819609149483011412742445259235471947353529403180567144997916490347546058994948015506634774842630127715505519548544972212716664082678207184806559401249780900453615098912695587981960042889393819336383383712791260080510666676609589598923800513498234090997642408178225154103407075112710925978184032961603654717446543188212105873769217652865842200166597581768613084936984190365133851445144054876604931306456158193194700031452397429265771687922305831678226165582982422833613932814894607599920549203719679246167832477764093012932566289809292188793250240992408755237713173914217221746203981805649948778140810210323248765675960968242535594960000853444150024554939772227245078230187923028141029349831042943857221949180635921110188088901852659796393148190528508452894879871411505836033941150858385112817386476199505596342973042775912406233514530565422959876475245857042743202600752333140758370943401526065738101819080263698026702695153028312783016846521870657409973597904996725197318591513433454687946513833164696773109422230902967493484153517637820256302548571135118628200026052839828951481282299659739975755464237482527418792123676561961502694028805940309832037602466478528931841262466961808030045645369171423907330886430253806617995513777595784959865844745075675555407037400165036934236965643870548299219449171858171646002301255826640271166159381313142486178092821735299589591068364436064172363745243077444116853859672850209284138308130610630872980062415826788998022485770789879378045708358642315530866463340642263722876986411279671889895897518589761744984171830602679402676037942313261377057096432308903405935423895884832853973006189363892863627901251357878451040895574877087414677952173501960159476319248803122524180755191828761947790506029699018004455174452596340533821137359064698057878169131702863520901823366493932450853714458094520939362742395159241956044986725791501091726886950238225480219261547254617671161867197027169485376656838131953934200956603446092391524800757219378861851145582890048546482971989820530737166786379705561289489502364157857833452180907636974483579040879994977515254624140619927277605220958828236999315420965317702959355855546855382254429979142867602235047702424901641813857662758529275666628974728889751673334569380834491829821245436927995402654070816090842102620233950653891000907778780809169974035662697990484456154321318904721648782311051508783160490445680456186210107422879811474735417909032848408774308853184990028140180858338442723396760174852105307711826351768798673619330950841728378397412027783705963389119342183151941736212739785104624530063401265534493507888331212359019685635275454805067264325499232306880041797775109273685380224409481540317224771495226343414119207252655046824203054766848607444447681261853213873904224875994862079332412718257002157031526051430312363744139476844746225980980919649830404456765701163362456464958347513753280270941739868037468524652945184068341981120641781981604076506568334208416726301537254907272207123993658047400446486126917866653427520779110334514658220409920823778279408329987040302772716239811746524309353316124707063831096944356978217183242014353529025770077042863547944883597774967606442828820182476748308010939590451492317910099214688520049120580799508630256504007745433827621671613724453967907141841956370526485266786145121311204780072382263254418582009905692369913744371122607049719866596173730458907204867436506913342654185380890901192580427157125397753857628037871745560534307521717743971283193605083061833222299041634946342902037695594955528434244727800535445674738611198698933791584317653741019297659768198906033873832858887377383352969249778468479626445018886482307112924327804235617207085998870093563548799814231967049553799369803362853531156760166921915017311671966915923284723734509064833646227693036361163197354779318679685573743584849694776334900016379161661320342847005607132938169626440418799691599421121247111194769469777383396273296977806243266856330287233949440337409348771849179674015574743874203876260587754082550606596455957521649384507784291498587415280143244631559381572040991085374292576516225659766009531923734387262309088108602422514672401399913545669520113779941719097778975334649135622200196612729925742645380579864871584536518369790518079340604416005593577726602199322701668992075500691940623906837516865882487561622668111379011914276168102771283801464077411932549171497830861682226358120208615514298328174110319817009048323246201029856899260185213689607266213362489432746386218599787991768203198892948607587896472920494194838370853217131954516048009942272919084015786487890778074864332290608720439021355451664782124300295448721832839510031453109552956606685142143514402793006327305956696541732712627686367427325635024957832401633085174974672600744135782299132311850487993684783813394127791039627961813708508453201619214115315887329484936646008613277805497108351425210956302502238511718741846114649804770919716607532459591437056674601266254707402481549763682342419298181188114082087125977143180873696628573015386065551478038709753784835317260245218096152843779374710971791935199246819553259394364395333709977812108966153371268103179902562888698166646355371387014997724830169281643477789051371068600876084655694308088202805365764590202836362151109880196949780219188176192147427191896265662494505833925926631340118294750162559237307327149270084648046192320775198725056607726878450080619985590069976692186549343124259945818916109942260441451934535637362095595331652440391765750166795092741981340805227497838230645640126345850237288047698860779081541304313937447403230985826377095349254989933366158388729869788370458673143996152240993745861447588199820278848448679070227874853034551436175985191326900611914328388938332714270257420530108134928847318245732116848456312029385867833578535795594662558518580118037210244735829702158453969663042344445698409691456053550166514769895145757665058508804524094608223533264131944319291544753944726620300730786906171909551063556389967113974304684917574847454202672738683401114886330658835476466355156481706486716209303172627740089505960810735365785993333139140736901437026862293025481284750164566234577959920976465612875763300312838463988937233059886413065283104651007795296703861462909575641548475151413423367961635512640186213542331772470155049287830299594041856259849677099713434180756118433247159564361624343800545342869396439196355083636056404112124434791052401364734954621617174516322889504711849881380589443787805887078531011172636649907407247025265821029850996335486115555409438917531530837744050343495960632959775748338734448375293537217440174304121935697466945047903216837626057705029571397089659414321384776416941762921821159856192334440591575868827657590186723675989384825728939689519632006193564685645889639750716300973731095145453956638508974405475580096154093494071057738252246208907579686376449871767158335599845371349265090142158574427147522765249762133980707273647543950189366655148663421023083726991289606426635172006691825066539634047633388555689201182509040901125133373716357145237095490782004631116623503327188970775969480161954197755671800323874600622304695371803241707159697933321171317725109895273023409558816122302305066711492564642769499098505989798264529198402799507635216620570321300205934627832494375450100256252580251619428944896429445373058328931421246080526069488643034889986086020212049278752510638467734816123308218641419737070357433063396158772203035374880138199705192479599192116131219729173104055846866119542681999393014929271444541852272882016502466458516044705498004188746618367681911655624291165181169148322941586038145317122783179648698436103281571082515551129007291828161843224733881292685046667197037078961534921706543518810237942277170291497557445085116653303889497053170171656721704238498679465996493847061233867290858088182422924447044015812766334713817135600648991357334803199306674368023281359914276677196980952450863637867293180728762016750349741156416584216326443927030681247162114829678775369359227287199908143579776943102444512206560416431885476754974862546328855415404212109160142390497228918988012561728541281088812792680767965829097504275275128514098456002691103278364063819834155404648212571137191038528921116924448822789843438320033701878115179243232997398704660329342223243814048199310145077292236475301397382714390738508987257137570996180031478455432410136300729504571566971185648918680649832171013527404085939059680292517028174690396355414783874001789985304005863758858561307617489096304804028368727048663266583394366762094194034521928475633791871176487157262765237705741098690774805928694523401303219168386370412240254392644465273636476283947457093569960018365891288661842787768124893221572695976460078044254489509894209519683154819264861533787962782837353398792557976719125174016307177041073352584111052405288198966740651509473189737404016959070950419390063539353794543831033986158093757914702263981287621681162779836523205973342778587177638577013149084956278669120610597660810196171756176372349969744064028407874885928865531079702229336729701006746324388536273415052059799220739103724675665603780170936226160180399761547998152828828493587424456358167054991087740560967919769412068438123758174207739363978036293393948110075825451101308639130157055362359832304247475487840599258837015817045552270146766398304931582908005443492107775311957620165134058800770777894285513868743807177141280158295879495505025074600379027020015134275421982636529808169792554336094304308741325545787820583417659473154094237364855371408549023530220278332424119527084119171373644633694544814256194210218193955530912109745361166483555631470361085945158476482091409882514715835133299266482342417874895625451813902727941518260623825653369276885006826884582280740829340581632881712048428217022095342443110720632685895602057187740986063469306769283699205733067935900133048939535532905392203931201582944588836198233240564469181402917815974607479579029810673143717642815308258727983150256994329619660320893952177191494922992682216080780946272895896093703120076844971418497297236906067189522112659782173006704469272511943996141428735045483925772617304217323581470481543551173734230818367459727930545009793117951689241722679190903482681542027276580560963117047917111096942154401534323245017732932556550717538180271155940816233231772124485316197806738698421865407536371539215748963318253086628580914293435614577540539095270486717163344442976865049681272339196904590025120388507114682974994016988419078701544470232520239148773905698350998410402811962233664218984671212835784665206307781723294672217931096683345011376069981981698252398428308758961656314340902110245442324937425125350387576491392428204147082530421393286625153595509677140804953866195928934870492194822386773555567557890355000677537133383755089835783644610799621209458549288687969021228849046778397115757783921920249629838183774006095892464255833371743702568969782883785667430370502899361207841674565607292238386836198400198558249118809372015186965809603131414429680012374354026540136651903226515327728730933498269410267203738979225968929455964522681433732585689402498369204492071546369343192270003958480943440009421390184379225027439097175295903054053695205382651646425300335349584092375324676316000579708160887488770344312107362696847387012038757011008210897450822885288781417107652388599945983739391381692410238302270557302296565481236884901133151105842410857595606049338636715587990931808150433804584087787023898610617428601014941758866545083619391757898463934365219765146506375620442544407602934785118346770683765955839099827488359460126409592539806374652638062067789849217532030173740177255916186430934923836772822869505905722069518724516396812319594327721971330073810931587162148256593008952706595660786792352467933953068505799609286577815403224650978509248321704686423123349497697661859459839424960669571143031541937493575843748967733297776138397374409429635814405259169680159507655152505468709503638744128222792679478437145025141756204689759940767321690807092500393187688941783320334541699568299988226006680482267899133450259350012143521789319943817134988122959359645516309590702503763471351020273749081762736308418478236409031927971789882137918688081121443583234090680481554585791031460840494161408775836456967680297383151833329085393608235689053828076911100656827443790009645995570515749688549538333017253939075522105990658223299857558992210024870633917004588450046500966068071530670480369804928646898610968102824211640447029229163307709372062513591697004668035539187907251369450818025605844835288247044441507981493115775209175503593518123538076385876027957019665636644085197399348682567388697226041031142151774661533694959112637971034041234725731376539023470077763349124252284962801570751347025044938180333459172195227163653634998374723174269059672373273469643224259342080289630185155841616212942074616562826256961589012040548601536145960279296487121798347523957689481277431399059688855419943831717886194372450959710282117083846341020674412440504234507915339960398443749874966439897475933347017345790711205834364828137556553579802567003148801167757022163123511036233027044155832311816575116766201625830613776215699054899842767403816757438442117056992317599120019029193049948867249837599984163631917753320676614084792985124208615824523034663500399059599067305257850288841772004870663298416765284503076557952627861533124003446996270930648259258450840304476672778786202581873678318716575655270605548935966400476702477982699500359423383964257654320475570050222619456369666371161305076962236042569455200537790513157660331414399636767275509099264167100142497302203276030370058737424465295341355070657610554968810900122638231231927345343142434933412999771223882364283384439421837548691295206649564327464285634145442915308791795285856335583408033550358346836130616664348836538236390476481994181698626724084709322257640238608307963242676432689532190800727693792972298405030464571785278006946085010436936885851956364155339129913315850689489521384869784917242191676040937497610160231421924368142197110844053879495781704727776643317852276328706085475674726755061760252083240184797009701387484974947081037135614110925232398312295689529487184309568909454154080342822261189823356841864640315538145391151209450855672657138872335163282817911951026423974676456331032874143861176590297136706437128532369677344517694319075722925194811835537254069351799530452254195078998366086309227072948966997813206831207823827438431826129312103524140390209081882506890788565911347515161502576324060795814028584799837165824529725834616926929641452685780726291527785308812013840646492247858106200292425746513906361053983674591948294744122664948622684000202712593939914068201529223912426925847279426527025153238241575878160159553368470598432579992283873696108333365804671555492955320636589450208490210733883690973265508047413531397474676001095098520780128571322416092159428337056460138093150276572055426126038725377858655030564482260100569156048094420738716203312256137980314743051963561869761584978815521608040249074323695076820886352645461025048649543791104596022453738388211419485636369192021049500646690491085211660359369180270995736931390457039980089194255527513830776464728170907283616075686468936114176685644147384946290952500144600408564648637200640239239932006881103423452993532134325832172376766393572008218515156689893961111355025151477292603558538742616108494508898864621671650612692755821133525188973746541839410894517968818089783088636241660778220427317008392527644609840514773853938952435565592063893849825526134027860349283480076875961396786791053413053837208039713070416419888366698903220666163150618710990689172872632226825831965832125936397823801627950755248454420866492591178498666697277170973835259282859823069954395623680698997447883754192616248455623493066228347441959587309057082855214254502413884685443411235244081060670203438626730698305842397092748318782690437631309613392851292749343935156755400588479199792373405123344590317034089529086110935468640254729801151612041534316339687157954587512311884524207678493081222657318253112247651126635896565552332555527785617431498911877795046739485362135965663466523472728900777971952035597417228086847360655880488092815762236995047126216313680121004656623252835113908624582552973593004850689522174356352319948372570263441541954844384953458196637035129617569877662529580626629296598536292086581313005298729113936358050090739628143520777450404594252923979037103396073643744847733247176862342105504963630681072314156004584286422963381648495668837883217145282217525939200564872576981029570187699362752119156656264100599229430855865117143059554695573221836373163229798967077713983754590051413318826370897353347276465781207030224180563191309726760275290591088663229762659353249552672287440406138154431382679347904206386521237071335350129224286580860515517174322459559427798885565632408900327781450949991143171512337817426456327271130160604152992080719232581392036327946427603245760882705721091304414070255739837656904896085169562869915983668039824543296001161138489831552505136437522645680132440178700185180074060464450221419722161728137045660132479864226572641392276783446507133783655570701242640382001098263228716588780252517054890174317120694414791134792318913617789961435946135990941669254561178823267953079730081531567777271677369244898013148655855151305145136280946586226044614495351649631551403363907611814283046298369700104680264634924886907142883177375011553254284313002776786200295637746469984713844550093312230836131623742402454977304386626285083475185409753042819120779180836309845327878961321193500802706740544043888064011927731201703623638938143318257408037572285176143955533960244906443283017457982262745490579172098373194024440254889726977563567342315516881513655675207127506039700789720576896896578457593099197235575372713356832878475784468539813545155637438531196100214385659928612324410337742755958228938480724337720262009009803800138795238375794484970188012732770737911613218702865545650522903524674077668353246299486161094575284594340546938088763852861063384946398783408801168251379674459625390700724182862688099795731041731362296017617316550382538186621325702838623420524792577894508939025177582211619496276999032969533250014526414943577062127431409441606045696552610014724816387390151360565117150807105024428772212057036487153245458109811186868379574449072197906391050968385494196973980392889314466822250048184129471215346236384531254146791533552102876032843807898179956688033308699939908033768991053798763605111052804273437524202756537402958629622599566427464156892192716454664923999562583080013675776545142084869755102505907795843713937954087843095635971003201867674156619402510835441115837624706007626273480135967652892734749750188928510578304465892694884564882660197698607844503151215302898952924009130075487282288785839580348201641733939229278706792979362660221363215845947108381123981691936833846123802991228669494743761827082146264379076458754567329106114071394731143471837055551924476147085620989649452052790379755851763356378975666529180585932334291576862866494718761347914414720517839833269184013716927975044779244934421481847298709927317966011924963363320074774431964715139994955247104316931412753982088558023137002193159439600311086799714508699011101310689978402362205373052426320642622606605614427523131948633605335284926785385550136890092741611040308769621945347057523253850641873528453511266921087652698838940507334934249472478039224674463950219306533616021072106966262365983080016757235863469765065964113970462546487179283138902576968189451914931305747540723295127963453728454981254107912288878675699386896150023319654364447174918967599483615058994623536824896040932635824120254777017666180126955418319022346537174934590853383831183742845876210680212166641823330743203115885964069864898419089197070070809831931666945452112764373921318746775007283534400515265352307736242493540714285137170466646196591481928685257332276549739551966090393193972625360674504922438552349981133388922042342297305680765232266571242370794295658624532578353708652482449975373351045942610591192128685430605388459738616545729289639318796851359968014187389488807386616852960954746514438864130885992983519571980249177806989301459448072997327026445452690353103278503149229097747880168833784661227664527495064410315215425811977132344786800619582234371849652144918155287882732943958904011797678347203539140463219092683823023828547995974418961201286498025726789472030752740934540851770268649448765956063233885710829487082870736007503047586329721094105434685919473625498812554798354342984912809705942279343549012573881789836639356988639021143737035021668247642006078413485168060969454778537008100730071581259958303381180607783011931167770687453981693648126297667514247901340434628720611427312124569794831056061904156466843799107554493844291764587147322559439350646752865730630008980436233829834354399865151764365584620850183200225551448495694494487418118498622521042512025491648561672999904918323184850411096716800056267175156341395456860189296828047439263696118277286933978063674478123860022047157666582601609828325175280475200634189505153945044287319052395230785274611975908233587944819419302836800437029142437137195943261010271978228810412589509906604027228260159029693619955559891269191955684756882930927651829340357703211392846543794286726629079828314244291882505938042543516838447465177918992813940070591493158231824347689607814331373442201097280626805016431474382240223557738698111808099396603593836781322190449022443703104245152426798313707928222617044825605949579645114116290946352996628027252452813230922797771255781001024795723943320665831201657361770951021888239908602687579197874653440818911070662213393079677493573140029244164199928361690839436889507945327034700591730937951013095862999399676124289637617357085490019147644369950117251005769430685699351752511103761135563315224610826697095508312060607241578142680012678183141260016357596863726993836881941878341939369098479306726064168145964163540086936699358494880965686423009960256428522788881052512374938713425243325399894787120628556523171863791424435307542918982264759343925103253526737320685894419150839426062755594019835089782578828556504208185265034827225513140129967469408065333959062554614022895919948556804790771680040090153416708642247604932721404795751330253349512800533234176951289313330996488405000947658072046245001725474684677333400572824123968274578630421462589466769849587422072437184478947473775929283661772778935249438316639941023208802824199287160943417620232321403299488529543467127927068804903769183092900190226061178769896907388042742194308119662788516502835354172800675557434191482006667901793303470004686767699951908512690383365807159333047064762860712874881121831364718448891127636094713568912419068648694576906731145336346998610674232144640413056317455496052191973242405322841154273980503895618779962267670931910064575721002023529183925466169928614756183146115916401438513155100158890292031882501391735173894628719709925124079997976512052548237659456263606305519079247531520654108458166140633133260782641607366565234207768641560307812818886363030640085075527175444909173851640225115429500327578697235402711159429587060057794663301859779392003422439818307078796345495658644514127846618036701438950159784999519711767991148768894270202948982744903255454178501491161757755226263085969933554562784561861022696654786076115894706840806236518974845920605365970655365348001237055578458010561200288580539600232483409151421138037104716375456513955428307917603892760508611334460455313229711067698697632271538511494814530832745205096309178470813775916922282738223391422509154040755705240264278051869026089213972304806867918798592689215176354024162883365171857776283166822133565294635860096417708824570155727430102943145830106118792240174433922004940432160978512793791060419742229672859557243443033838253555589989818484353046103857232230824014018261033944650117313369037073002513972057767077781590005706442316557111272441097882779503706382699157986829300493883454341703983397696704743386630932053625986942096375107848061565599330697078766200929002778464404713519569739975852521602116932264251951542454294665067628759097383649789183920520513737473952548338778841626664143429575740388193436156638528039233196886937028791942385916796395076128387120372557515776394903517296628956564794883988562340177771756046983169730817254233390854268833815036382471912495564483853339911350162724394455610128496333619532242814137553130142911483808821265988263392480627052014267278626505270418922523129988046897327307917541792338730567927482830718139706801951552060440108546262804058092402547371915376260447525336679860597765431896371039581497241923111198815868620393479133766340901683456139013476692151826482971802388298706465958310580024453217232858307199120285888973807339990934433479315172328020839729935784077184519330920667643192707886386374707632783523402626286740433201937656745554234407865230663498099904677495841284748027767760908887234920362666140522370631089218097390443502171450630597239220471490150474632486793614597418009584826096564911687622611637911649111208132111721260254844565752742409369170653118589841525881623874798040337918239947615514156988757384240281959087984344938615885098108058361407659917281006687300151890576785628907374357176573611300836142367368300097722512413999522143515603441209130332894080175921909979852856158365825256104626733485376696322947671651327725651794814369188100234489483958439944792563945534546326787552047988164638346897470630966995734423979853601416398090917889254997237682957925956093552285899629280072418162536312570314160586387461298408545019866272778180309632470490490298686580537151469555224022096209677753612455327169268253618837546596797051271455272315247125293935405930984223744553197964899093869501921303961955642027003050773975023489040583192649881819692725066466201028349128429469605050537401079904595405872995610676209290099213093013345572904820880279608072916654085026616777790817035812431205330073775179131254422237888231209234535751024381707081121057054086297011555191600526643543540141294667033599715169467192928785701022254990017124097729052258630419561529694396349495568733617033735246320720320820642382799732228685510400912870669880603839015862144931979586994044952384749259129056422016749787137903075865178615322162570905905430476203257733401803958119179227112117672895415815386465563792699122482660902581956118684554787664608746918546538962588476990857235845923510535345393023641252964759496790370330289010071756981563657882240619423673573135086980701844230018375103140346765318761523248280237176094377822062671196282273314930875436937031553765446027968871155074890590291488877057047036653484350936329543318756613557450285455653944935551107015725655177521239594200089597513360199051779472840151777887915055805961728626893567503273066476055457710630553616136129802427911654695778110170463838791451670913102976408427914388843714933453943518947707368000257413147955515387538971969837915544034288308304701364073028989492916468785362115448058124305900966487318216661509981469473607689713335557342502863325951237711236248588788815092894761567065809775906331322383175006971456842558095932393164573091548661565125617329946874660202495670640515124572723690991249883770795357865866532186161953547946656621367781227575317494190844080548842798771660057983805355871467741012771290052366290457956978385655330904077502713052557347839486707521818080528209133174386932130960861761811246121154042508303113501293292157748076879920594132936025718999758598806211866749448255003709474585430060364527806529715929442355834602662332715732155855616101226769770433027649417924507715550390345939080217328640791241679743311489579567461525101336533946709008863105080030351614260679205597720127471127009397420982222387852121352149703520564446434858893523293342857747109750436783209534522342652648400998773608541474461842819896794602152781926291463032958771785058306014436119412931079589470202469490818644983980302152044241242560372909037093469770335286991767209280656616266899710432382236436649672837594815603525258902800273325016290203112641846650664879937190040882353603291571123584882927260633819566798752383510145900567998458447444803746265285228506057486393308033166443736266272527182296274784708659309360172619966543471189290049039968933849589909424152813595182254481210281415204986748386039963824544787689594592547856601749937197588584206078520886757851940662784394537223197440209735806455375530210802519073872571929172222707335965480196625543755347300492282876108638465003264140534910443234611885176417781901994676011940470524143997371451856478883042307639929586510943111673004326992385254468919002861164299127576645848497076002283930239132187036645522086486889024448411482487577443457896882526938234627582857739757602474897400215024154650325331073173748069584044382874970406751827057042522470412427824211648134759987478917675427073049644182868530918536080805159453980564116718273439361723156840774548760509585809466260145822705656348890784235272301567038948786400493795659386910263064514125702022334005140841783962652763068108437807332611522943299583239177971703502274873337951007055963415492682088156837607491270681343848708475932761721156064877474896359844741296443467877518745576704838163279475014945612607442597004181261156769079915281447883020126828299609274415463904343458816897246334869338652421853959100250090105410125484927156424985755941517702782063658247149130133607062684733530690533015636309387882792909534642087471247574138619762264265174448440777365849847629226781623428269641722884083323172341789724600253030625481937590629385971546896770394116035289463186544388041147397256216586784677503461695064165129463737340335319766654942991999735454056602165824656637760051987071503168029799846847259748405431767065441245292359201646049335074917804425465246184013680184717342761217221387798989028928277749058350908026964075569068208018186322193623547835245789402260586681560744670825073836708833449937454408827918777878770498141255423845966040059267476675645678623039938629218290111867159638255479323858743471728103629585909062123977918154610045743422136252762095839692126584216592601864508348098675517257411472136986006798331289607053901763251293411750383538141116939829612197715515602739598024247315236717124572480604132635300850697900941471133476743620339228304072679508475334367267784557682552347734756502010756748234950724588888818592306431719486736394951505619407733247720144890076288961871218624678796600653848297994004396184105079963312355513672110506441980558322481568014458525634313967838435692973056741630020140829373900803641906665513264718520465789936328013584100445145122099016896501577018708060555094402250603163336049193050827689504510101991249582641802908556817185579240303789943105705380452515244393400603406914866652400502865798212466666519598503718102855653502321559401475778893769362947369427930393004682712085262564891501218032392527772084173112891768186390015630976645003317745269686396148351565321887035704802190689338988590371719851070342604128748758304746431001823632600050665975041547590053055823628591813569562014791890744932933166487375674027054032588981975971555354384532362145587217440725358392875167237970815742880116967747839250433355413830635389492629964609826501365743157923700333522507216110392139727074215123608676979548384500698077355617953910216518072823517842295104377439522430494870299662244197693077893326398296484592542076219449158216110048562664745075093303771923467198986167098243083302009318677379985446809528143658016871158134614347730464667978954526272204662488914355197611873487802776189743128460256616320113899590754687221673048588800199186007736037046187329271704265180570641109697452821516847874366869271582514278875205228984137344026327243722179733318063409046019213192858120892351092136556678792430365825879276117897441792518619432758095889938169918483778671258893818978670468589296632874057029022155634487398022700853715821018754184500877135098880085600071780501792089132061110422617122698772444536465587318411972487518420497211333995354661894751054043307302357046465430018319048719738811662470785618600571073818639942473089944178638216022415745100906617951761094035633425332965788672653219665880121530849410600411640004688602965170390170995187086578473458140604513331386604120106945083869544654282610588054114699269254481049165157031325683908101528064588816809171635061153969005854796642698385445355546257833763955819096983891770156813386628806949555378670556328664222921065940248841678373336474942583484700271062096265487332985381334395597330628014004692795700787524763204061034377453503341961774274413180172393040435652309217496448251592248872433239417143166422338798934511833949241992586445051739061023512299220704389575658327792487301238816596659027105718582430933912264045102134700152812641888365934621121980192102231921751990112579601183880337118249161905499787708236719985844868847551159446053890760286317914875760046408373001261006885644225806034639021487490121311241539004055937942396623527968212716836266168667149900949761778854083402903863427624349672499952950975808766357404694123828315770703912698902982385697752502384679546784320279504056739551348135824259603313173361746874273753669909516530419923863577763662626951795218505843159389376596420499890638441687213739515854362751675481326625763009376042275131500239166402548409867628847165323737151491601486350526668650273951728884389899806018996020939472118682634868657330072054440671571059741139665042509628268229840491751767777445027046903365417229752639475993150716490199005266901345270827499076251337066475294782031201752791494895098725279466019350799102461476038080942338523489325935740712244913981578448814328993624627949860413202109241000852041588170661785355458354712862304677911292192862817982956572984178461418035502422045884069219955215633187878418405530177685496290991788061306146669947124032968720045243132752057863202549433164012268478107057403924360557092393264963623322092000997233794813497283431823179774643466932611702889393895799857525053337710218190531647697285764493667864929764038734389076938387791638992732683481980490605722139653068111248103581704134874539693161862776543355899806630681096097658440582130125783444124799619413901140860274635367578123511438441736714247589798318919827186892512571570184341316809589576960424739912005783087546092852159637227297000165884265155811153819698890105440734466023386789516699018469014723325315336601450513621027587931794502738669314454598797138279695331171089389422669038324665080590066712747273971827842127914833733378077723447651315747344360606227502931055473848340074611736526514537986183696326961549230579862709346183012357970081112075912170974398478737773022722500870316523780263324670418897956638541751166639280769502067288426661014684451721911372649776517543544246079012594500259512907136991084674601846070890810680168186715380140187431593824092151544092265277842465950391407834697419985913020638934473446709009482936845971197068380744430287736488289737423810829046717226949014236480407385628180389885471539540240757198180692441338669763622237356588290844463001747626064703304272446463180644746898016336996272544319730689144098864028201758602729295494932102035329923313214605136248631266715841264154653287390479880685854464507976677302960601717103267096845948008337667782921438373543785397495009528141750560629785975698858605453945960882214345644741006233568374818809733054233359611611581398840404272734791137594779054756959679540323812602890145968363238574065239485442889787358538612765810704812073988774297346708124725509506043809759795388187554527040714599657383555388644295764525881319644556929722212390491019980290422064936240815128166359886343870300274192792916678469220528153254901447008882317136907530465557487175187628960630953735368452499820110083871253578783635075833768730484178961384553728298113132338407164455637948885432524214457620655789909383620958143697132539629905864349705813493180054688448134937212584307823465580776173350509805751223359899117587260268894252235706252091510245435212978361703763370906477199504025379054287127670148053631439385431968257723514245611471399320319484644158770334683777759094960260970241426402448015106062076506276901012040005269544906535433608966860832640982325006878409647788927042451332785425022122769280611491933065917402519511839938078232948339819789297412497564498389203905090818498223882518444676248389089358305598104022228499882616959612910692421238599406692832855602089583124449209200998803094539567645635576413630682728339414662438510978639717930796716543811796009505845576286265342066277712824310542206489687090035564055338562919538635492255673577293665517024509515067305165655671895385733280748266895501399596044191819207817634677665994842790952498582224241611219196354091590189906225933507919711203844622072338476612939445759992954982849599335935616376510212901086920141196225633230095711345300633884817212705501998379340755582141668090205795090824718251192639658792060785458557651782521100416044851029120512848336746903283297093929845696484942281547127720279484166688460506365882710436041478646925514709554052654023353462900902413568522618754002580527587237644624942567536484138818556422145650791416449619381231812116673184808701878647639275739754078920630619654269378203982707856898395260446670021923357455580571670277866252955489562130037911914269368106501744661576039230281242446285749907128960329782359776755949012792931228934183419814729725702493605701480780920162873930529072627445798916722548913080723618124814911548408830407004473826453448740080138154204179655072277240520660780045936765521643518652431282955390256341537177274081467978353832092514287011772131033324431776078794443272132168902093827151138361205776583722690551983696122016535437048702386047071956086815151698431384609700517572008050113982804888052879357065632403155928727578256624255698413524232883679960254431281416062944520762957453649869578323732891421819162277118355172463772164391884018360534381758557302009058648794436192476917591744680503871767127255062751046896678484625308771023802661679115671132702438838063592663291829539572863479551260262922230722333382886327480586230812833138881526728230175947478139113295210702872041155419740723802220867376994024111498065342560869678424324705916588522170172897822452855958235306187043082218387953314503599248265899800401429638102237565672448679679078275244587265275531608015829511128317804586351102531578556727308600739260786145563489108129250152905301398240837954422656449916337674779600651197476505106998474611938699917184181034827108054254854139744695146033331754804667081310756590744317042607189896063254829798351243113838353093235152800506883455953054916379613935610082871648841763431302640414649765151629071223450171521914402238869513491672929912911955549489322221735076871384509334576236452864375689287134037253639468655929093813728749157774689643358346093165590609340864624185754045457691521919157801395179207325716718408329631066833244658190968424962778086979028404675786960051247232146754332860297255565955095725852273524555485571977491936244672093349332148260637830378107416843634700983428430445026671032662498933272703751713182777764173422188305268659091689812310174756731857758929417558643749071811656301516414931814076059603946663371110983587983855696022424715114088922517378150767452597619646061589026738980739793237423729308505388164285073747958330581235083486185045049421618080531438884587052144636828152922228592145210764701231266479575041189352370684439883105740192274342692276566831576977146826350158548326287880481979281593220677980623573152336753939833941075825648265208897663083766967926764063818912261896426231946747174018231347239035751497872061213341107489229351804704206176580244497512881464344199421135081842828215127473598917800638622912608484464927538846958087776693156095990477527290038599546454680469720614879938342397953154993501251671306547142291112075539166976896280166020863465722315511155116152721893687731424878835032299165114974818808827940030176671922467631410530460208871586141966806938382071627019005767526143358621660777203789565023456503602400034919347244749831613330168315526590465348853244922670446763382164241408569889498458595772243426998945484174980461068301482068384883708498192558432162177611642390940031904295517808826780273874282780215048881461650061333754711047507560761942087822415813354930879566560074139597604286370917516016851777542358979427051687836836546327493695697659489259367391795790521653683277372444061515318289958000682797274429167273003469524895624142751390265612907145871063374723227300601906016025587911997332218723794541734101228594827648316128574165702488339543921557510670265397608973478632214366448222733087803033702577257981382323994834374458894475497321648001370446446593796733923599638784408386614523665490420953736342449290655299659383285390382684283847592921023188662455062018493930482665693339828294200403485661350734435314368334964295597375574902540215937313236460634586386978047273645189637829246627143533997505142105637604266416188571207675213834786904517640355830080614185973943767704717579259036364518939225964948813739816993720360509442066221201985692109509975833764586517227268606672689897338996325210450364513527911513305110231175226556298088776584553662530672514725519935258476732440738332070957360142519088297237581803223804242878899644253482673776039125700143458783459336543518511694974200368780182087520244327111514559347153568086615040627201219818472592415354040968105884386007133279118714940827499965679752227325837635885956106251425998852515938778403686800201706039363011754991396110461632717608930287988860510415656966769338603546508894265199348382354716615769493039331437539815501737749158337601001379800333068718122450942040122647276864908902181335430034873127094681839628478938815042128838660628423048446958713541229896715525116643357763396321136584238246700002449498998517325497570162412630531735094261637731450617107124137605133006910563510566596090123015555622324512594955889459403372941403182922991106704493642582813258460378778879604829269684182422377663239009627226569188039125138848163945495101120352006748744685267691304259369464053219853608975008723951280703090687947576260328915088290879168027537766911169448694486649413674643222286588568454595742734441317917679461456736916589214153620974476973785515161153791208386633190760588517587516479583964490628088453341761364878289500066215781882768478253407472636517689225646449713235509413040957514232651115951190188124561722425124107242702856158078373877018597296562130028128383904248322402141757560160333642617911019712481839728422764709640033425155886009148921961502578086784783422399019259972519314460990821744285616897217348371180354926822312313537405200731649163444173547282106450984147577222754967097704639243079681484674710016932727697964278070270282705665304329346343454485512183253248507383745929320740427803143629523710728587994570361740223209557941862849580417267750118125879570015134438670959727827236564762448902886995328787851185071973041037884941910549139447847888352592749870132850947313362670396348981735747420165368962105211006102376966014875470322717322410067391144417529503345980712248437524537197840286992600877624054360715772528191788791783179157040944309200915819641536166035899749810510096122653179901296119680281785706738835205231786048660013089335859400169995357073189999239412998081584194646636020164615278153094000555342806290060155776796609715368556867014154715769364899887277263418731210438970327378553829706493243095970168288774626434954044019382727570904586899236215221076543351671775703085213492206537697174502622816550087196547289121070523187646686541620147643939557373665302997790502430440908213789244968242871634395532337178488999290728962031815768172467075121099209558532577653242391707427571536926642000892079784146133802839640018563234745690740308225233601562563098517222474445071997329832439648562252774802998335625503074924888019062082854975274110411097253295227794795065955451870589024841797201469217141626913224419520519245786363573398787682863449447575314723413194679400165368998226936780052421470459117525417086075065791970842447901345944370134306128386762305026702222271784236945262059582811421236489078569589014122051315210354747489091474342272537934580349385490062277087144503194594680965744759458844084657632266254781003679217542384953739254187668224901770267945278496885991845449090450510028823071238207806233914631399248297589613781913909215779133372303989564730284337069592962738907112503863723144562278389028848026217120700716328120106505923956816027705772687259037096508555460303016221638548997045070963181221211861560488794937031853253534898469944320482351368453827728497756004662758226690576400538077760802213457309792669878807386487216206824899904558547232531168800421834499322531107917899356298081180340776136858748536370061790329270836604861497778101641222734841060354196021817676610737641736434572055321846797954540855790655372370168355024083522334982550819224581664358422974175228224264498915862236126740947293441717028779702562719904025184216760196980424611933083589151871661813602876545792168031539827072533115684603508949189386435929059580514827889640789494313980094937396047001273514274862568349062250613632546022811258401386192557356739437487813314930723528926082207515634984464797406844364667613489687629360340865538318548265043658109086280767281726080015199439743829331068266516485660104177371911764261338994504170739007228129353521850145926529360002877800976871859135245480785098568038003439068094487400439409523882217651828907630330427561989757054166005598971527968155080415799582320139190240500279557439590403343808714175080765500054531936431733427692409499607575945311704192695012051272589501094700589702006392333952491883696036177785712894951876506445642524468131604010238837512849299673093294255407846906660527684923432203200709835296351423376737751439935958486489601773821542035016443954017671348446551725428378829678021436060776765928402007937928068706546146927806220770636922515869819177075918129505418305497974228885070880545360602118325130297494687275721886561675100600093273743592729526294019722060212403845159470324961959337213038428384275081890229368126851895381190101044278774710596328030715364246962701537583188209887348397603083422460044677496360729371269557995914675422010181708901024319913145555179179431855041670423473407665467982062979933304330583132919431458442948039598646601018538908821802697542590459551016921950518598687801740466612752610826245402075629115938183267540597023970201435158809658333801545851256174841321457960371467498989563840726470080236921836577461253343264970398269235674692835620272951532946979458871314256914571751170579987334872486106732250029311736321697132951195230681157021039945971952782344099527315113072902587473760172405356426240161750983492652395540450774436362537612554458437939353543875130228387133516944669292194354333826882936814928262768433910193793883621245598895163099991084756883604434255322378958952814517666130250091010769023787786660492840158302818663032508299761691189899238808005334676660810532940952281404665786750491273131308501558283289137376675608331634295053402139550795178772551365649869347748478527736401719976915164269751358866492105370141272976633824129024183548076529071895868092773228500562082694560136172161159794769202929087157794860526763811459571720916893597206377283585715126628728213013575034264674967397888775665877693353964240391440979872713674160000415342646062961594421647187638445911873420753419783195955854768778421771016728846237095694789327720426132325005887045903929144821262288786699623899691236676367345443324927437691555898853519496744869430739548969102893136570750420516930100900632800543340835508675315240237618011902583208053818493901528494325646814801317816111285468459876243871792205861903218018896198277252642135492683537982410388608412808049630460073112890835535811495978750457029844656228875513361536152779979944115624637643390426853662934826004634838369784510214515646081818852706995471815196246181093195177129777100245064505755289433353591129222201789009427681816969556269945028312714192484759201908499776728288257949750130179671311362958880636958989312327385482661587974690011269030583057785354975582624104252799183393818561059298152832396899345122068857472962748555518289213057979026193138120878076544636493014761118975963843687154857009976588081985750089975393158873794462312754176124667877229432187370650760294291688665507080136673562336892689448269121650124572528189138925099281822157712433430319908888196758598406174644261109946232992043054402607170897290608662458804063303544807154797848538233824851230800575022878808642292521306967441581516224436834088682669175978708565910222953312965675945981929918788120201940084056852762554739413452995094702292786959889297433191565365907611152471611454389332406963899276120298715759335569920272822115612221674690938061970610718654792402417099692492034594391527767525006938278786054870012090208767630063282868860442290856354911273472884311929768824917854043887547563192360229073659908264653151565179233789512930431543645113655126286931811011353342645141770047288713313946820251605068509415572360516400628134017345068235971322267699040340309003654376910358524113176939892737430645520127794726484072549772504854005647031787619038810786797891959681786104414068722885600339174199933528800343031926419786147575549672514712504721179483094003643558197666699046346054789232696213926435845102156844784718039073857436508026122371862587349102614640075758847879491354760023005986400788331652732509773151865468381556598989684589486405658716896939211915989958955432959716973120158122850668207560910638409965591606229330254615931532127607029597750284516356430231376037767927539919750840293921890906015407592406118718357176267620357800492104780542779570868662613751114235148991968243415946046940700721000671044089154485987893228113398320303060948997300704925140569156443563845556207450331099426659543255808012887584540713779899112359910476008730136907516474903680879769531573085032333654405507701323301010395091415044412036364979799465931349744187135702263618771202899050881949032293145007284887949429864434676993207490074277715452662542843614801123936949013102148649411188030850241826994034012760499101215183018639463850684516072324859400423567473885438209018528722134026819516358968202900723429241953562874944412882586616178202497297673495868956425450561077546280228388094138370121013653997969231599170174566344361561038474036866182730818145524839893659949941047425214434169542464785237350577602269964327622761092051885770421142150885410874076174530190554708586847696060649062561482327104120220428670716892056146396253843987862237994824392693141381667037690973707875886372504500053748459353508326791567292263627799353810297362605328462525319492132230998781541584417683187519231406412502033387175723975991210017410093613238533575676367794347482411505958297013930080414617844842688030644599222159946828851546113960260337607343275171100511973408612713489195324704307893286569436388499769025264553365408119576451351977081345725400794635328546900611698182605784662989841383694882005399295049056002595721716770970230384480668748928681352138468999829636294843122675072195963497503244644045510297115507225561584969103803723812776647030107840285523537591372538539015715722045487776760174107574916450249515171734345243179196430996416001809213234561381852601488578559942649311616290767054633296722400246985431442617477936402009107603294532616051665213669152388189935232897374642834361597457051229910386580997788519091759444442100878839934531411469091817219995626954922638567393869215473954000170710336793334189263673183309326058046406003990216777888897125443955074047030645256553167571927572582617561109497840654477832568518159602149011093656806753278364954449322365875566669941405865237846864049005555429642766514626662900625874504830264999184482987798204304293718711529881012041447277307014399375415873526684148851305039409713399238063067074261126990952639432637639664382229078821686995869968098933585139714283237084261959841681481413649149074131214340554530199619311941370086299533968464057028013161529327698714560095502696937073457733667756048816255653937945415269576041636360286715259931226083135144985327526164434146468514836166613604533696665648120879787170362851096017157904393428983101942945882953786946203986349967021045140664564822577140046001379452103217218643774817367129053988276490530081816293464525690382810679694149438008434958983609715829682758880816223395118781430804729541424748188568406613441665031489045426117472362675542760541603447560298752870580726073667246389785415602760530467995071232213890616558890670468651692237559470637097674981239939228358771138639242483876046416328527751553149790108497717563934686946987244934109921775063079972438893274189384382252628406388570901374302533309751097900594524001760520263180004173282079541320592318260044868950745664797274574241846378694464983751911649538235367715800323188258415270441768778625964334436338457718281638818226776792809092073523319881861658729317930233416435762966216550335197064880043433897000181985143294444103469041117380766292420556018496091183485277125085105847519240294994908247138163448384121815448848092260481413029269378075079974248170738293665051819699431305380736068515884107148316191004887686422895031647350318383783561848359465244270938773666703057258576746641901051648414271284591606229175084944897871007970982544466901444941235712852679649480999701371181360513250490815640221504153027012396996084148989245951059355585094082990053346561346051010266665741085935265919101725094774960195098858994916020543562366745745221764974824693097411263639496081504795366965352867504060234475812798605860110020249248468664181501496653556356958870099766953094799942477623114896824495447962393909116749293344429985424170648653623888098806824785968139872781686773380575842378649195475768740436849822377052715957026693353713611919144641081340814950115334809534917182164841950795336987728657386324942864727813350266745368203223755501721325189899558789842120882843277200793639963515913298512707589672328550566894231126906955364015188068392517915360585116570256702720825432836120362006476582329988804927205767841576193725604344131831956959197487569667742992761694654403647876669884818868272504764989024555556138730556099942993797836246807440095610492389412226829928470377136008244828968840076797828186576842557190149195038562161794379832583843429355881658704492900124522688774180317602809242055860828891786480619742170929100966645875900872317425627764914951892057873339716426428043613237289375251844756343665723053674742869642743728769972469468912869522644530780952007276059951330972578988333452585339107822954641343055065933332453277173749286626135506698992800189500012728366006388940014659183955061121415629889684602783777657449398541598381111234756056112353517150881911998208743855720929410276495805698548756020921095347297805092577279159057093332080009738983045214841911802957404375234265592773369615855474788616255473356421011527898977549229020191029893286821691690358251413428110795471779085853121064657325856626315533098931653674334766198455682870807480428288058650266530442504106513951680363954615186757778385019768570626072674078761919465163476289031349995211299110831669666462322491217430212782386246206944071015446812948888644694167422097005535259188403632809189746566636012397546925656276454812292944241746785090154978329999269178838724285572793483354592150199280338080299227670885387621685717366554907873026085393008766127971904048795144238929897883104691501275739696009655255657620972184684352736674610874580169707921203695562095588531850718955463044919489557777762712589810738814928982417513161895532790920603011255582641268169615863805405307068658031618340893114384385784104925419820615267558272910572623924409707596389600638055186953666628599969803944672499786006653854819214806609882097755203880705100012878951500383307689893564812366584391890717379946712910852652274836804682826404857307421876395176181398939472443066379481709121612280093440215584701345466630399793740423698141639595594555306311357489917019204877666350655461194742617174853477156357642403222709336977652253598971294060569491593897287547961731089526589776443788863807879581962954360710226360150026012405250267415952244179845405746693098940678895950906848240744669517537829662997660350448872874608126405988455515055813040296258620095214958838950437330380827347848909714712304918697197450966954930408615334387864990717596902375542247186328991277273517017024459478929347664400824391146106231615225157912024518717393098012260253079801442516166434001127999550718308791582835808255274184122130617495912457709131743391411273787074725983508598714322606729027751326521176363721698740510133562292378537830088493622284087391635961564704370670703975025025758145216715847616445344282127023837786000007698314485189859311712058960834451407482451972010913235912111881800059553969503071599282738290951652698796348460388781201404704606921942150578897947892850178994439743867735347378422336776777776236853523054781787400023958975422264672579316545283604708289744418995675053714508990487305811113816092883619419669758096177708661935753925988495741012187133353146058128126728727675488619013006891942677547040889700211611572785327161211013276108091383290375473798810150437462201688845452093262857525295093389069402346726175060345170812468427466937100954290228105117388943956308090550948217546914269402090793930680008865577210217663130241109751186024222609888516872697086178447280628431106451505300286267498255264853968307987315444740114757056280853758746438838739921664413411130170662870892831370449437598725470185356910197022831154391651916690220153069687247282951722414491633205478583578139567212190418129060941069712309725781824270874529067253139928867150438335136150913787922651403268705981232268303324470503733443922082313973374766710617161002239455457813250853603097459698831301830960805734324531175998429693188866078861948794523196807587535852753297631910884220658213247701742973945679822260825787561812016141529946544191136194765725840824678691617305709609887231868726317655547393453165232403446128092249632233671369781699608407897032602649938281269292964719654997278758337931634197945575505476912015542021691501314578002481255157141122844191443478782929296309146831282957632554081728717839948001512018767155250059681384987316984144291761488630080628807247444830132765047308184454959287637260535202482650698187927413324856184511511263808052028519288079457153394603506598974277473823788955436146635833253194506274204496018284024002070571792878650710935196074378542103101715878597047463530820069903202675315581567346447761438283431316903831237643377344520296030709654722231307429389200860141610802914644696271648747349441655550002432965937418989692809661582601437438101833187773551844033438687504470605845294790144858301979747988996932587195648835868050234212502129236931626625239779991138016891046359311126642394842702436095705542529717378423557497852511622672768422743835528157143961925467117547177977628388023876475095127299882731482061594625651363870850322615823987927140466910015434297640278950998803748668956233632927651480560621152078898832593090214336447528841220313001063605348096139000775681398110673526773125170346476431547164955693258709416604510643258552292002538869594630056061647975658144839300551885947846355733912145191766913530048125085120931675920148662659070923843463801779654862922789234960203366472824343462546233502824542679789489191523039283214130207392349319051098627645067792433210739355869797856814202289345188939672078055675977053062844364700562512048483439498663455158626805059507628939263451591894750537768806563059124054310324622679016210771352764405393650725526495404516065614674481605390390626886383805880039327456416945521718922911966940785055237101948517887120243903103795617842633256387073010930919606801431099256579650206578751085120844094078274298966873822950376926104720930989853600847923852056965571962894235765074953044546495609386336244115150057083468279714020620979636909619832371920563498453669205066368899938714029859874250372056541526673602977918799418953509538987883873778675715695760429741145060359341876875457878943719429955746330402965279134968923355501317691783650941591528527403356440228711558258481598912784764349516323720886071040531089294590178847570604385864349993679507746525596534466193586811120478847921211491423546652508656077833209843630232333780351948744964840570367482991190533555760845387734388561711937285168802297850794184463294133698019000192700660372836338408179322391409324050055138035314520574121411659881609056485755705784685868140380381326757400299213578730668190093524559622279561656527287915021346813153853559291777410162967371707612606936934394864249368886492994109877925681246760566876678834895041781338346167741568666989542068924274758356969330744564148798424040600353386896562068469518418106267609854497112689670822666742482418296097025412075599741076289848396573721146668749969064801889252154067613409261102231975667822556596006346847876905808084541355766546176068176495371145493132062856911130335457980455359061453020038454005986015982707299231716293405423601020277523335772154312727039846273084070514314789434447839991041737141712939904270041273828787775328309383912648639156502074318764076402795505353467549708112510446613161260491649194642365611790773452828002976512544440392017967587048176562326264898209128397435708145633394834789419575621726441761196728569444062822486804655501318251884949759489667537243636707074418847810189850892823274222583790435864754810333031336435647053655567176270035985145264837180591038734680979724343295115871872976211116607299160339406210097710006535968913971494321782770050687664247369963953022734512107175390770579712538449629828159673567693111503230641435883006495525426999095030347548465902498993942046164181114090747011185777340229921511195566782723826893668161093017773158175529789982826349672384889503397757297434158453061130953499176320997283753848808409095411769573222337513263834143828763967466356674489416550095303198524638384462151093403583836841097264755414741974363818498185348721899273384854763535930018680288720039747862810420179908470630612659333082064704462517817634449328991274320286628438381169362160543808292343125719289710706346833912314460725329542304584786818627915851257843809257595042733715717858015740753976094639745863917716170816509893440293191577310779462586658490944649316148975113400428607048257025788867321015218995237534749888681111929239080400839935898090639039220388147623549046962540552022405582189496225058270096851596830211683952314586471696842450423040162000215478920279542899562226398319044914550448945371711601204769874517438136615530669123244634123843864031963315425254775384506037534275635850813887868567776806454651665710805636649995671731860846224548359088873988306348169152554017345818210337268206019858524429478187809066358413519529489408242136406541538410678693416196759901952670409713845683187890066192923081399181268075549248062031192026423393655081568255550892054645303966144612469330575598584037870945764265853737508768256880225259080712057256275953129285422151887737433353577310918892326960134161239348432650211071646874656677566130854574596134757325298501353565036759572164379162692737743998789803414424495881070287906737475295616079425282323546902854437685012651548525870049809831987671644152399745953622920726364828841622086045656074040928943138511866778868809585375267394310062111241156002875846744629974901145259981151929238821520818244198585743833693136752336129825204468605094135397482053901213428323357374685785776128976664890612660719183222270630519056498284456296170296496622599771577203398436087514893932320952465647448229869664454368197925533775661192178813486435743933219566354475144884852560177275222913678145508459967934581404400494168575942858247358039352638983103355664622019854087537700907363296256668714278080243798153073914129217111931856141815648193062938183981214382460112382530832459339938136521041612030427078515342753078598845074894029790334239124572472280496384050912049913766908212867517294992645576046949720565099407881940429991546369846748630579677979809910326727982136138389398954617718135979356002606965869420071901870273045315015886345851550013224568938037114851724413666194940827872664179284291698804927087161432064743210553335570959595551010187280002508845605817872562513746611231374588433757801506698289391898013463036923654881847539131837930138902165339301443704441532531150848146326908145746973486358413605441334130297355900484083689037148759635247282231472809172905157623397285467631896518699823326498380866982109783347104942978042616123821441816618487828972169729789594533633908704198096272326358707354904301069673259177095774284899226708608022722946057042102448965741597868207414933519047347529165869472003460927868392627017641270934681572634123712472115954994702376588908744882748937548113940110099899288861211737737233434658468780182925706181624605919906128274135302409956553101544743551321476517462941974822658476237846122069456550050149973248401112888027138457652889314642900481171994610710495208367421069604703645676326961901175516768996525313504074041799625197898205663647121117677363698029416159162430000604906322718846186373178697888509395835311511711076944668157796263380196488030113711984719448072077830628132569405767842060984657284708267196706605727367241198011354535044363058924741913422972320705517165118144364402501936404846582447194188014137441032865009942264679691021759049028840887663245420462991435166858865033872177341528684433564307103453330093239678182784088658008059236203367942274661430526832397888563623018371540539953323853431058966920807680827474874349255864940177351193042506940264719261520139842738429277295058467114766102128860350525390702296981683680060774683279011566502409944624980047453013546920507753839875230032213799890011591932546429163470031551067596362561185889395675719124306773873215790397953334149370808081379950581089179861056610311727047211009338332437922465146819446767858214589035110710715715419414278615620930864943135795750131228404928279516039570600459642751518780940121482792313755037984173357892482659049336030190515854212658081284845941593657704275917100480738028624509702400233226921416576404112353141562881509393896468868345096965519599299974515318989075745008920567428868210181692078954255775798131871243289237471440515101107380824964876341742508949979207506268454443531918614227714787959653045770626757786160344451455822974448837021747275477133020262953925136801053951654351100076157748882207184455633917331302088203262256887167022321842837130684592590279160881272615467962576366986446782863597094051402486984262871576327731033524216539289219443059456614150529093564470934647420390644040740483169372871039060460336999429095036229825517596100531571231542147228358832203596323946316362148482566242877220036717858678175966580603668116137597141027372090945221705651200578687845268564893549195999188575622040955697931877763675824838471561674554565686164292279957853945213587177746490013943822572134598420571174125263918422079795859075941813955893593534506277512986787375210175930455878433090924615468614690912275837246478240652316416072277741445040424239945902070948285807455635963404231819789252940620752407781613023818123899216468449594896768703232397977374041929149275172112105215981218940075380895656925013753963212748021325133613967467573049949745465341109985564055304451764495687295418458528764819860837774307551670311593816784581183002387329315877680502220179280434866595912287847390517950803009783560986797554199170814637678286598272555790284233206226141067014769806297046101782254594401354532894952796249614083590937445502724746190742104697969298495703681331102973817844673026340737844582460978140081439466766973668748672679974604416813434962705077887818955723947515691887413037811521699072021146315995770202121605125659892067468615375715316066337377341970553964610471452588806413379646800071621417631099128928928307531859145502878514179524210073182348997554166544719198690704771631996168510948690325854934567576815081084248571292903713036174988108111262970390944850912820604980427356891822048425753919960348115652257790611063896443263233835787258148509014973942781449962552525987484292651609779007958209202663005879395992273726231362332368739642641819715452656464187062153504549371279873768721801286662762695857152251777881244946020188714800768794675652648838178959830226460087773376749987859817686315151522448383215881150342172163481752999209077847104311408716350427258450447788695127646005665217729869430634622522811404155745827520875309536847879217599935153987094087337902409778227565245086657905634906048803120969534703411708887259588286773833317148890818758750071690104538424341228139549633985243192557183871539006478611877080381707837230065301752672329229963161675253560172385891127909700228947306588643849330985086497464737064580511250896378292886402753365348044754509493648441482700306332293680765395429788609420065070201892330514688680953696185246909302879216652547760508935225463661207971794488760552919398749141341142818698975240227494256475209840783403543758843688550941993350243500367708624698323246713718837184903089970223402045116988661609827576276143021440045005494706904397787014508886442675744894782693007109192224990107357074994632906258447150731021141460581465877540870395617054988400808186206736332960594682983456824240833482414716619683370374236949750948075421003035993847798525538455687336512574823839522467684429261827923994027778092043717247313955445272489069042055784925313625824897759365881053027139228818950379701687215319559838478845618152669962772408964800177493684478670074242217348718842726174168151892195934948229294818499433671927463624090245759335032267453674063788038448262278355928800919861130852117249513218220243450420865742945650094248976059904192270016019130390896344236619502427554080347119066954324651577924265479396175742479355776692155358105656504221762642829411618561536515445901441056864020892394308006528252967965470055445056158415985254701496317964032216175669305506342354089881898175853800432814096435633372834183629908784654821880719096275486115210555943324694235319746929074130199009088524507983951471124217466558504759898523398566509491085613170975633553738300541455855281136604327847021989012371697416113240764452585866478279581269464989808684872677234880276640948142056973504470646022241542603549772938823848762730656236742297803529951571803537640422996315728696234414218855283546569077473593967610498060864001431766219294236798417359320932878174287488121428673088996501509793786376915040877367866031964695955920729599386504626372817788504136049265619112134572990755106046259435332529867863759803118247868367911910559231795785487705220409171779143346115977839874112154246045584870441446377129717134477632236067578448747737817526378882412123044003462190138822875681677091151745316497474817490123568104301482209211999626521498813429012558112853045226140441836204401162117706188376066497424418787682375396828775047581270636514652473244378615475402808143610092151006110027932928896270247722709931333383039787037028153534468749608315381533726178371761989932846818619806428763033393140075934514891203283512093319073917748475813519437308584014071497988297327353915225720333370616533284282251291537742150845329891244533671303131314986216511684794185515827325088110136105613363142633602169830700842291789596079369632131089689869713161399288454063451276765525934013868504302860987193293674338749046132773142049926102328785916959832958692088834171389318294845620241127117541130319487694330430807855417683831064361628867418427393394035079216830446459719602872878182856874292868853647552645048908937875913682796515222815979894929320544801939788690505961468614352342222137027728554666570918607984813473793050655828807238433148328293976551211580467612507569441919727245029098201980827853899445652112867350667383566222964046897304291435957666485855310403681704461880221824506415057949520201384485644696070507360222103932461329703304286276899957692345832632949217004591012020927984978716741841209701779635859632368146754426007188021207985255501591286016293343876570521474914970793960131182952121474465056094384406626407203805090696511070725088585524793526996445817315604061401635740978965240106624313046840792235301977074218943887352475849394668579281748264655734071547550654267676742646244267282218236573965668412411732053047591921127080194282843696496487590773946727763958420881797298951927348702547902619171178545206736620020823575576277528275915943981546419651737936892607050395245752309194906276450239719665229999787565716730964807004963458105194730081556222395720706370428638505543875388715723076141704742321433146778970640513702854121394191815174925473170153481440558828462783319910034772259422371424905330287578950139730101163137508930649945148281035771931807018918409809182147047375725756213265154468722023010309073752259903261844829729970847701947372688992132707587714105546296529037173693425771279942412585511986307829032523354107517419456503617304864830955451749943091501014731383117425351498146999131460352017292369038797718327965265465486597697615382517388352532769819520311465953486874467141266583173498004793521690028780941498559122923246393548151517232561693954636039766475646093181235411327619585534225066755694169034215908250123031238507821289565871863325117821846392904860023994873407689211902249683399078782596380495952975569055135805451113078223664523914338159171424369845282794520751738957600331911404121960943025648760301136593774591623847590627291994539389828352336293069129029882881656613524195036502214861642910014839918097551091911400339155425459395031461222336067484125532462653210672439892720050985489196481316080874244584355197471568405885958738393147655588436790729651902870761685092390667898527245124162916651168218082195986820923907908020388914396840437717973284761402887403048081800663288324853453920450544794186076466817202319990000430897325624076216669510338702951608506530343302704694684282162687664465532556214079033561839396154153866027318966581760153219481443719269694215508367740743569118853276457516336895247061653180269572935642467474834845066879788557065309495093087786409330178152122443515470817961727801176835152483877517719347785327381295377281822075647963502898738103826771848531613318328317572353095192124460392939741960761104047376170056569287883205880310228887205826635970474812607557116558165770793522789050111391215399067141583327252638369511984973841214511192919338734033657043878518068409749267549327954814556333911341029242422868240596176005709011052555254388256875535001608820285651371594573556734389155964485844876516527773408240872897383039622383020739039990956494270491883941131878421312604265656825699223501937217570243979994386067407826962994484734839550501410545205871123058140167211843352921826232548534412689894637821653890959842765363981267642094690696908464986561628406322971605399822607882945392709506509515962477425010148219601052783180840392668183323555893437047155447752864266974319820377092786557589459421018272466784190787714147773728037798855030139956195642517620650043562867377785631122151370757872050099632654215753863783435438206975876444471146540604140711201436465073688256663380767908601907182642113972636392326565269291225760610504648784460142261788407147046295777641566110766959588189181668284337142809684504167483039689370125903727301575475395924648460915172972175772247889920188340860492369157872194981412934110888371006508834239839038201206612609094026879971260673785480203091120155336892738987678178327052984108730717690924970531047143996273620759458238618066166127498111190178377473630242179371958246449961912131063846702600516666827425730393495987400689690038113484477985697172324679992433753904491587774190816292738783598369788785860362531807539098458132982631280796263378600617027020456808722538333214160726325446220913563689080364725017356886467841481919333014362021810221354265110505585385186859059050825995846029666824098884796832118926781159999497988253204357366661916891571089487464070634324304467080314249312181073649867356440959777715056805928194635274938511942469791986333149932563311528590033220309376560478827703267390911372993322886657028540317238683489494927331304970705156851793840966955844464970235485354544414280392915726637538219853291187567820039529825826791759370755920197865241866026928784206969700076075655201415380446738304346165366740879947064257072951800243064978228323553848579344212543756408557318529674059665906884795380800704619073857617415119834202974592684735139049624060163139606598945469474847997052577255471091283255086738422598126053811685878374703796772797848738930059652243720898052420036449568552294727265427019893381643388141625085074587498797787318294886746019062691005606274903115370565990840777559521036256165095998416273241749014581830312956814294396949090248919425861123105243300014891484014598784053281542895371222244748717574221370767797246310767798367091135875055299642103097668663239380661031236330711452266500861463296048770865352526855142075955345603306691728839251366186116030195508604816893572171577250473058665822689491606071896089692096841853233399489411193880417900224591967393266079873665617572233289527582174915394402276705263692206711026108203665266262602634353968723766204411652994154230195189482388693291244908752074659633005280786885373732073238913624000139977554896801898950598249601900347204004941654095334861482375308159683374078004171729641749634907779043341760829723772101071047058040364065241227317450559363104014156436237695018071397119282457470431714614526924289570005270847536611100956296249932663445767327715412520244693551109535192199922605344113333950278634736897000271695859750018037580347675779069572928028937291408548049107219647830361223130073105977775471992179883454687003944884917577426285603257212862588512569901327802970839282767330198003928856933312461391752022061113402948527766023080733728822534722139800713304659618327615404383912232968334851106457615985363490212361622597615911282011843408127651287957278343811531117923568314154426544095487470361574333708727815828818177865372526053531013276967244513230256859073362114517609664758770143513035177032577487693261611412491360613154552921353279349832801817703129316231460326326293550691716833962913608427123469044342854569517851331168399659783711605041308065519176386917511003129454172097203487538998512588299104662394070806780502283957870165693024195713513609208750141435470128753558784531854346938563161925137380891708782897553340358180357025395140100490883362626479842838514823472845329068025521300462867692463116099582823095178699446257494653732766915607531592305816418100015176713793248742438668682388418335507800871156317555572528983712462548443420690200485228236029754332724472697775119901729216258642110219144106738308334566049279994658331892427180228721013961509425178871483190132009011296732566389347873687006317652411838860724551622058991432877516463549376914624982141049619978896299185890079079534130353694283721205712724825963094987540410229703314590954712066483239018002704377097034863469320429274284417129309959219136081319647855092787934492351339819009113574079014854973488809052377950438671706447856940780639367290588022229899404061312065816108366211579127293176242754654075991032561431318979231340706378999388711330729966332731633196114045020417177226177423321646480475916456179885057953491517807112568403479015281835007664681727458180154735630541527461774841722367961244215637695453407345626602332430473862129300727831136479276136568581183721627429078159018478681912962062998714881253202156674580998751594149658546591418583988993881804562028121304608171052984108852932331031954027510093544345368536962511751151630223289340696727133621932626955145328279608851132019270270313946321869712317082340451041500589090990626453598050205956915838562182675328594126805904007663639016998409171931695671357076386514103833478447449649448932162454392791619316463611373971041435038580652649955016782867251302580114831558782222813307927639014075090760423586565998365379204328881024866427745325763421160981370934535359433993158610320984868546298763953312533227898043373039236453109363770193622614491091149510159780211155703828520057022016704343349811705978500009140681118080340943309497241927464911209617750814767166046517351995424437555168596860563423676521885760914158825621861768922365174634629061496040970958423419956650640267280213596509024041902251204960792654572720635929795338501250387138605337678939340360182902491609477032350180926834412715586444786642598306487886867728262204676348228176095522204105949004949422520010521961624651780192030063504924003315568215365164033894596723649074622614913745174592841607964707475728853815811418329566719430923600271618768597613297292257116464759535704746458564231078492815350440188758230786624174563825977180759569205424081931651433788412372561387303665318611902893906507303090321670764820204717892973411037196488097465850991902651218154950302178007302804065208610796185290831471757225774143146426935522386346041057384702951810449194516467872222147480458100375720271125027723549590267326901988198467619272040394066591724566549655898883729416948617614157562851544017392608659191574706760485193341462816937843407740514717780989735284260153817127300959395932027500014599766876925998112414303945861357145706825244390853152559108037667167626483322886386746150343596398396046978855096740678172797606050933997421890453077179034382698503433838973595305051993329724558811368638504520490778664601278474179870545239389108665686169307215857389925829429274749437859917121249599528779580694743497252089240336351566782888554919105485716494234406048313678646864049387848515109120656051907709502571572611788377613099126809408720003555052786618364154806366273937184187795643445610398381055798721107835691679830386912239817251404811537680742914307883356023015323650096373522417628433849041186132666569452437880906628303752338568505284662925117853214089180711901695496481770570062721062385268164413989864847943246666727524708744138697625868816282176536565282452710086677212537531836408288083884548745741793073892717704063396120346568818689783331721061083133695754081546960043228757519771588521617829457963515323966532397565681986471419705139091277768181808977861084534070085781667548303092909069924643279124834770526263495329332095087155129931755255037272725731085773298458502157506845787595809599574628154213188785467856683730460771753545547325758628471016512438228525681600411388137985823727064968530092570457786589454283883753239019419399010974185181659803744031615026529089786782848193208638054556491224121221910098817115745763973770733945575294118271957785859081583149018394690366261587825633561862580119502161379520621144552340153529688564575330041223010116017625574226118401238878632324910233259627916690401253661891422370029103681301192291819551185488513182087273297657518479172897663879785552397779947744939122076999994867041281313646449740569006459593817802001354041659412623749988962898500699227833956788144475171940527456805892484115222795598111489735556199246974163910328211061549545542149844967722275599773316061458551116617478555072433565220822261415349848729920708401617196539826200149143847580097368223544646568183089597117647200151439087579718657791457328899835393698146594156303347503790209919814975620349035135825002628174857369595314271761501035372202676499455423209883257922423324929539984892121991673643346570820958708924749906270308258249553641328663192683871218342100208985873931146682243033911515590461752352594939423195035477101038388827684725935365645959483786508881650087217820547797032551736348284017410115371538939787681146339859204330138639282615404489642691509618191339087226013543541179060888849476821329135808252622144773569589766296640752369816043709710186964915299081336783005070629943601997638724393451171968579734975219198440244716695654263539669450503833496681165358143811004747661071239749089977028653765324678492078766957056119804881843757348508440820639513170367157263836840474863059154876845725918604638452961441075695038717510189191061772362429151661591147937167456921099733413871281134458892396691233024745187576923370538022985932389094141430886172175436460412333811634674824710044850807725963537790647727803284838883008822779177747951752480583952938469774036783647586031539785725497375852430618747996242442280689607233183074113122730816150331705189056103040226007192755426662869257997261434018362924194735003926653641864267950853804576192773050162097460861097144326023266093095643213124647645022861770315503014625675110759604900490724777636452544906341511283361186303759925017229287405760801382341014538120270360473102674696774922496419196836525865186680357981014758999635743656217963154942600382496441847823046557199902991095657369173376737394717739201695066910532525946232122089264604153184062300892872161814508644699815265571199074560885012244045325380280223162236539031317730717462637593835831082180829728601380419866999122967289782638643281830880899815336475127907092927711922395464553891429949458537407150837323714447165906264050040899304003216650124692556334829872546886591051923949939020719194001474475093855686593257322464973073032921185662017526382674822483118759428203725231617651080892353459328686054951382856319780879358641611133786867820964249144308910655099226443760601047194066775396576767360901802589164373257318635701152537247285383078591280958034242519654160577085820491001523220553865167856441883733343602927234533220413047979763165474320791530397205225075627536879442885250693383679854259548571542350420569619183757070459807962840755010797903765158278307750347973243819355867682092295430311570527560829934220766829378454476419280607505392294235786508233123555064103760774512937595754751977228573032445933516243343019678550933896069457963856816965594298366367530803842554903719318052188522928977212663990819661381939051614105262376804769374720702810783262385712650772991904855005902656114728806135390476505485171893932350398945846716008510250478838769692334745275029736083872337359309883321088908827498653168163646246608904667117863951882491093727773885774764429656580235842292494188185789092179252917773325238676023482054658771087822871080521849023885202022476817117498540829394763812945821914406282906224094677596891022237969004806854357418633569719809127543642322484597092933297588620141697386250197915565933491470394653301401066583385851566182123724209864277744380943723302668035375047353636360167235617540516862006515755182176078629134650203997794616239433655442415043729450390764414395835066476965193449483455116156649887079142316040919535777747268785415045046661527165879741681084574856150260810551233576629451926827531791963325105713046560332013960732116338693636372965186752847595812303489426278814593589299541713220705020307213955628022857587224843909747002378111922160937472090772921009907903253134100186674303991385471022882844699283189433265428045412108803771189444871212387201275055885979853299868974971335673002944523603435269504104214067972392238325480834456432288616108027581238576830460057352670409050344453068986207878143103588882378665585448510201176480667874712466987378546567443811144537151740844714101777791667261197465112832195290388510107627958692431315066717712245502358018109936341137661313557847229555996893862552004543217502873466007092471397000578927892023252674557971811663636127651096214909728391050020275030932799619071506068740973029791968949886691328953570623629545770147053216167172488703470660154912968636614132609054419424624921021602820925106167201571481342719593426729578573602312888868993102503642751080855294462271872013922297626002678247146284850658566816695673316443184699433186459504394913768834435845208574526409560978791360423536688443678932086130005706216302971980745649987843233320191821029067168690610128590276732257113718016575086212218785388333658237122972654316843824606733522247161859674419879057136098013909312545599433734335184471711295568921632163399748109578355596782751838396190826189337725362914862826180910071223022510417514038941296695425472528956033034898075746884728004019828074095243141572679064778644463094915137699532563902432359523886522300730207808293034159921384771453180369050794545872307763920712688698777822639283730542616242591421312717727168645071558904620007611525496833779884231850104584587140134144160755504228415032749605768078278740980509046671334487292074907715970415172490889432162713927493252366245314613616213209013863458788840457202936606263228872155459567735651963289473971988011466245521278699501960357509350329894388518809479846655393058834714545044350290759585626500820668031505109546917290291718420736629616159311334561137663764579671211204779778875288416583594049923099513494490353556218701570977169188205713753812800636766359495368441690796075259660113207279850963228366390293957965136198575326962800054636246452381199297871428011083992046684331755458910525746727435218862324084845590194840134606830652236868369531573806689009971389289672778861185734643890817098861607238445617686374554689675793645960019942352361988010929919713130576311334779749341615859918766434166528562190153015404481425107353609605651405097334464412726297247375434005685090272762830465545923430060623409920355954052323897497549741162829816721921682224105912315547779234277772764573813662260662661667886687074437936688458849922774630512989510803702727454107408835062267616658820710002514175516456074229020136230626289803538233814409120707984725466707347080204500502642263592609878922268078834770544504722952839015829131080595485091812493705345804829316462310862149575761908722128350730077187589928472935215182590379019562462606502702881850123083953039158930233285426424252762083764639741775724632339261554276013230035142932123588397152201460438436340495358673215225153648872935062851592008520293701966770319329128851002515790507094622031632501258741841676738919976338934601517719060824692491369423958160700922559588438874423176610278543791304313422730640791107162143127499573996445624516282994857116823541893823533739416246830133782792169027919568936660888304661372941431699573215137961266667099741007730895607342157509378673434007723558309132945416871107108108817051188568286635275006934502293731453523835321996931356842924806164068259718426341262909343936433200773050315582721322632951927593550655096061855663719609141104321336651728173323510177928237968496822818348311316566636795130809927659323324831882083613777392081009740901311033291081033991136234347912005871785593331853290379112533146965741045525859665975365940061232323314109142028838029556323217376544696876085322859240548371769076008561354922672767663018651761705482282360399617535364721228571280447155960161651210765100372446426610088036492192800002171618144258201188972746064339623414294305968903660543558895222745954258502861902770719964697574350009917500871959732097338182496007412647101128160958897080888245235729055197340654662537497284831999738171586621558748298179187021979876059713078370502630901813703551978196861658758858168397891302249336767978727074859795760903114625552011949368134422805564909799001307399096124911922797888242814342817938189047512021954435722162804375871055285798111980726541072485141280559560964523059976825777452622661783703244514873960503387966573506287809943451944612396500111483891200346837298344526108294427228060476347232691420033998304164551805968546249919242631740968536001256825284355886509309015696087433020647454995810628132629388421615713827308553440241221455609487908573783477520277976712529144669678205709249610332537672983377753508845132226307181932347432280542056080979290907767836078799937828545767521146183869957898017296047054850336185129579680631397127212660467948141919421250675129779609454325642824191466129133672001312823999404146777086959708215349352874935017637181329333444005677598264886181429207967284779823799270845802308391286346508870413150749031326892575876773492336295513256683124824024730255075520893835838938742933906503632172741999829750674985094886258257320726397823172507904356981614858348281116821244084228776001014582723107302266412469472955320517301156099515933893367321976993487461970704388694784104449834076160420942938566447814943078853696282380981355168506114353616572569446893977499069782861551525053216493257641459980832735909891726686785625132407490422214103628105366979543600856126865738506544043821163102232747590394747775536694583204740022119260848462713788029987492028532474379718728949202071906720437943879537691982337979795747717259304066621852055211699750854571091917988902079542919113578992357172522528307570233345466692751197061806860956790924463648596576472788945880828675226361697412275996980381387685991342886228231294506588273081506198820643683430124980720785706265222505114458629579620696163575050374044029456250009628247501278363155583894288906461193169239559511016996051625073351952044278424749336728521796632494966988837202856722457496496182853040345445125675514860746977589169119719140188143481001924652472662775313747201475415852667034192347797979857441697292237787118804161151977762307530211924936411784634522024841852053853123332367682112842013669686327438749385913487549539465660734280463365850484873940694521475168153335090753561148326603556752528687886585489258918928699575863571436620534928418303772185482501968146852418642916372766250720744745483451348622681820557207887946492451176656523663030869590133702557727535385096022193811191370575606328001139894106882565582640690435098363490053795332197794517286469264063609991400699890911002219870900717738103285256763205026691509096567397345592279973204883257087533095021199148561452850924160462327873333845147065167221381297167388692438438301587207989146411043050915550385518548636870353808526753784191858463670675106691988978931749184545255387379807156733517143583714899462120514081359607179774959950215325989813978739925309676851926118976217918766732546127052063719283662276875932619836506150678717161798332828248759442870742724485996738686824005793472412733153145703510440412807524388252491439557112384712151215078201554602379338275771019913142898853387460581766397472343754282209847615584679203173829798884835375816627454178865705103320427897633311179092568298365605590007026331420526855621736206314165759182299381592473533615022562094505671903464635771650755633180642663901823217647777797089168920956645732305046933774636708224594777090261061716443088254633131819948016998227276635421825669110267377651993830349007325702127095414380183452306190758766986033803975928253162634026674512008943994582556284842156007729072562298672185252054141029133521782052405791692450777409852685864417809858338535791945703749151904465653121694091792616727151733548691518694106324137184389579799674371865123645424252903037340919895209956258814688219192455976653636360706170105831006662982215824764826842942148368892449015147026642856856401854062220426593880791128519792346274645145013882227080400063325111601952894286451813261606604389786361643816373559060725239728885095498904889974210947083203344479385580997713034621675745764133069621153788800060192001658919334006488143278285814572400155849927077244648390858906457582122268759610461654769914648437481397904824609969438809648119604479330928904707301732777855349252029570266663425450443038796305375655727555281022069495228788773462742483912689296655324339030178934161518021685720991155374787294895051916184631607016360285197664843398041408202902035067762475160088330792026821789145424854084294320459101272582192867838883286563996111052084548272041346310774528889594202497717811927206207668541285303403282944450850174148626127124172052191902727545561796708055767261470332733372096153148394105345330754854536899520849702406931151267134020986433184287145999182251128198335025489558429437592694845034518419565740827889190483251192602804526291545751117472086638284843069230082719204525834734496799504432853324765922441289120012554667775325375104010359468968031041135329867490380011881828502813674575368473120972030933816574968998561821648481446015906510948146542744885131837115562381571731288419903670386856079135405802870909080230679183172634389471051255892556526902561498945316142295970659750479187983873556905155062666547473085154841923239224763492391362508600305743136530779611029858722022139865619426420596196256440313098610702032346114144362460056981833281313410519969703606734884007536841198973352077257825830778109998417100082264830600613932277170542706649045388585780717572073989177741314917118362260571241822087217644526764724177373970596419724077270075400636014281163531180764337780522894448494017976768615940032478896808750573957411171555045794805063867455323929688238487082053688818046800556849159643283319058513588842642111481677728430311530559611301474465228254476587486643241503880850645499817877278255102921473473512782125187005422680095961143807221754544665708805710097552270697970506805621654996475826405615472774584997119637004397354831101156372908625590740986156067569339075104414705640708573490319701457279818238293388061714624172148285000218845772403536641754940488808227115976198442801009697132483274377752202804934324417161998275780595290301284532401744636770382206651420337931647647339912948156229835880376668126862017438572774608476831815505530876341242804439805835881320287212561022868754721923266207045890450004445720667984244934093252926947802874298024134677568373967629115177968027418248341197199766235322463505786529023821818051973275954529087470364199255295057856061371755197976255999433097202852934145593795099754952924503795708725539225509756852250797347916473330441145345758123049805044319246069965467616363839736595207491306098265948318351584085386727302443043839444928313146274995482131384298555992797849208906889171175007079904334997828078595184634086986987103924397997239135176000297768547189529465478852338103422681174732005115409950725367156172661214427093752156951468157824073837136854020645725420004108330298795290383568022459707804616195146163337999136625473034314825780514465728071997189711259033249785422066161692568174036480878326657880606310817972937116135846562713439522942322624360334722307930388896241895693572140618427796657260005710182163926016746627446352392851517746668178756961628301442371251768430012527174875807518678485705842827645346793871360139745297066953432201231912332776754204867528049192353592313377091712702584135108555656771585250484926370203045532702389280266092111659439297911308021930417440201720900111773182623298732561305071230864178285543416330903953064239883124269615719788037676172916154705980965138513358924670958159058614971649694740175914428057611226095792229064097384580019742248811775667879423054392147397830659287190226957568028545624067563625480933189318729328417709840836802343779880521049183157611137802898859974114458870131242954715131114853378684396002910212304189131918426717887593704790023640046206066640193050026125192486224020263157238962903252239735651430023984036015283804953120203667693197201251159358784507753145351962213307610356491403303074964429795255147568220452462617230342952576128405836833896287249093873112944548484993700684501809457234665519051704397405996746902747827055691694642232850999352670680306079925986968291266310344251492811355705488045529092052890829041279342770104078944632077185854682634849566463110227386605178605016711839845791415179569809598984806338459202609160677383922656516929847996336163296440951497382973031947456927893691117829032817872305713980124962007813861102757100989355903971941389674286326658860337479639822219498999674016645735605303644609400086997456322076663294281286993003840772213090146508249016642091391944894688167264299093999031605088020057012817135018794377613487801208876571254160834661197680970121451571348549846460304594798241908336453170517153132578270958845388299771246795524030725666427487185970743886301069906270033163446265519349512965134168089467817879086482956304946462032916581170213868938231066145954761788438341459897466038750404208773125521897875583121469718232797619494837015764071990766697391939757528597935507881039281464342570573644800223800109372409550318888478165857775781260479710263023510599360662953998792370912372726720618634294125799851344570463817150110941580423007862861702659965324504421453926833431821970734794701294096016008334950563510915032261116393673750225169958168232753941736443026658012457617129084096830922934588415824759374938878319461481531227460297986665302637194379403882239902186206216181954916749044622775586709040458573013645497083408806747376709977741287360520715437292614382931416936447258442607062172142773820983016169872493822397581898854001069019939429094975355477638908599322606493814141652572827353342263871619602734222961789666430058613496679476158170001296200694052938956198811209298331228252279352720080346853925730345480643527910526795686902614978346797973560395178118578029119879399178089464556836383456817972080970241102257134401366027258229666373434312477861144801324277712479062225341128294578450812526801893722519107509031122354353906441248098766161186417884360882471136085391542594543347728010802668064439542262847148162247375494615641199167815476402095252667066096606181803183750590416501921984350393302981226247497823937160832594493569217756067062603373738693402582945812916864947234810614963129942674881441566442224021348009083540212581427863542848648942391236606167775607897073453795511987771085505534272270880620043250007350811829082423014769130870972123162100976685957333204647971579753390561705981946474576158561087386611267748979117757518739409799634906467126983459348491868792378080060014231111927657201206164791168928096318625248998824590424181655742292008391651896895434121337409646637888810687228033809881333954405770988423806579860989772628358459958377074404371396770983122562384651199527923290911024104553271635473319745949880169805141438013376872697536890192416222871728555899926363842649842938186629963278307938776808758273243408155739510005935113857293383597746364495396934832964814228408570063396427999491901708814642488703203377275257003375462368384637315086432488045416975975742236641513958922768081385745591204274431918508791624087856362926606361826954698386997677098373092315058348675337139259907240002499010992726836446420468979522469334252729478954733112313027804992022082546711535483256826252583471477301301963031283843349734932384515546732230245221142146413388956824683355419710813772985914216119844021401046086720185704546246022605661229322463596879064722575142781100893319906636605687875838940140209377998826534001467924218006008400664894266638523070843455106410696670567573643877565110658303749535337347975515262867445226115555758058289139844298878363222709786807585623085979435739862206559365315253296995296876266722738058713528448218697621934432356734319853453296139295647669258444081356965106419393287782852252061903584806742800531148715050244612364245472471264365729760690839100085213437048436250947102489408621081142718843340654226262377711848084994754334051519681230010287621587135601748864734032809919025784918177108006901964272623279572714456070116758369661274466339562626204705848322056243505316637173301883021621732079353007824201683609784786354520815453063416204736916642405184823824454385398670283035860610010354951675903694016042744348481369099489969815112758263758725776043864988385958979723382701089018135773761752437523586839536112615756855865087046840186735611729063651059510908472406115260638785439588157607664735894287149958071327891221095985213686960877802611538881741419425629989727399255461949572763719624250805823273924481549263578760635843645607708195546918249300368267842865140850221647616631988982180618981793387896581395868223991730604910619422284414394655342283849381656208935878347331222529852907406554541907314363484980524967779094535392253259601733438637169659082642995507650403387827145874991753583236571115537930880671625634010733334642055520946965467673651023395166489358927770358226724976516481251956521670546342027543713069401242801380172576906840676673700183286689425484520510573535471753249692418483984534112159990949001623017785566104220635204628060233413412445624843059791136827505534215048645529500853471012004625444906127399039896231109436027065105638373428933451007522180976806584734651800946898108812789747264531240448834863644608835050324296414359751742944124220056920556969123036739972182138122979387257867973795421957245203056942396244151972150931173060566452686156665833270432348224584999117363749620772283814224887717859474938974542830786257387688440599092421725134281954368100373090646314431484118299138949592865716937213677154873607535528401981215822707717262296632900650023415456944008426779137276430154312972906992659656068778165847521457004567714531967882922918568416468369337245322793793415838142782200503873177152568501034821701686672727577554090763409020782214612650164713930869886959314205562829226729557316097799157640753438837434494320434307136143597463170607037249063040981606279705500066665288544178093491529832320589507920387813032822942573875038975732307435879676189105584857016505179502846424690071701348627267428656963040094948357570322267682397485784590676996675319121895269221238321106094673655476646889867861830793198072515273574563359574076662382024198154431258002390444607963413057656926752644635029104662539687745002112804223470857234449773237439944587042961562768864566540119076286617090641558917227827484994195429908795556636381704069260702586805835426283740851578180546699085552418187575110205567845201125290389694430914494367757201803008980348446704576553670782471318410983007961028305884122512962687416491906454443061144680670451083037751205002149190613170498088797863924496874399345589011402455815746156947785999404059952491619262430444663217879380905307968722257008868620545318789907741123118431103467558552816233685767690899506018229776472638788106657418430962865922804965536430332253182752893860393370135040776179383567437305978017256353926784159626809964805707851845348967723227551642003384543643092189449283890915909452869095380772817849118577644954025346973254729979429250789414975127754754563771286877703617629493780520165746471222286292019279394374467758739544593476432234854627324351596871887669685557146082028194173634203834337941696232883270796925310685794368198286949543337348221185304251147760775249281893336308768101544901954172573047464253707109270020608006772220789270758429880002234474820318430506597765143813781464974567525914623367566263927554325321280737551721411948242467295282605184665583090035176380422557433503426144741840487274582576102114793355231192620535740601338391898603854951943332502200800403486509551113155768822875372891337620930147167904006758395473785163481594184213152213180551982504178993370281868298783814721625930737423249592439489511720501563774398757481858169975099056795359700353252543048577512159393509357880066135462454857157171857008312997541466168966369751242244485882666903100689949830551910489275272207836344144070116692411820422274403075225635715715793123266521550969232383437423768448745787527477165242442711238372864223547620661444803814698348630842246738357015600225358281432112111677688740663079391420714330054301357858552084724318126161561643615254847229341836502086312244188275941960081664975325513865207789341238322129827820404419737441139326990436056675935430407203457743997879931254454222806177938984900859010409886260927107361630925566838609000880192156151728996936670566203887164432755640766938609635064230841951897160445685609993067802244973120403387885399754884605301881374130668498264455554335741556654780805399262387156527986233838598782300645240903742186327980643435310198765001973211998905384816664745461155073308776432500475739229554751476045920766148697260870129084325563701340442686550830585448448398502125511880199909982902713245858126216527459066047710439574960002628943420154135955312866962318998634138751546152230158083294755286009081329917547429845255990766917528696752318705212513186423716724645921523969972121309830112127132835621084298774399434401211821475679772476291730415989424444409642568057557380683827059385087430891347446684634386039063761698760289464164048566783585480018172136557203693639445075551387138420091296989650121241973247920400011697057774512685944018850120487216910985013454346456512962809620295540606592556032284219348019056109510652113976578929038830477835885729659818662191863171310943482899662398970385794069128775247617738032103721790688793920557598742699336190890945128193097747911957784954769553250695629188502448223206735118231333733510417465567383924733531372307551782925218993338602833822956697705086884071944342158666759801448215908366285249023215325517911405418862984731323755466342693864280955128637872645611721662115347599635280758914750676965755257957179334201043801374046439071774831116632530218220940184682560281003328708379900360135404928583157627481237720505379295315019254924468862443505848628729323074714837242140122380292323970873884588928381726701350879652780634969652984750607502088631100815592005873182871953772295988929751827135598914249455253526683267893951056335242831442358839857901205725658120416662278057783786416132525709744716632528620805554901865102604860833837598514208323700900984431635083154576546035187929488021043160887966998041724696607895205880233487503034590397055483580411067432198357979331609218132399769452960961800407808205743400192755041227229753604280595453853712310564149596108513511574501630409484478920201543428932753128632928255038541117593954043871310179528094398061202399056245310154178220163240265448405208948234552819058557678748935551974063269566302761980944783168116030843625726232706232995622615406842340892093223032606377619423028115775650620893230347502173233077688259693804212459086428898255901771069437732048573057236520335270942673136446337472285338985203537455223952634882467888076140952851677008249405880109237232433992686148486792332112650822104860857553052545555274977593611631069441510522852304565293338817706031317730459363438784450373184077241837227380817950673696737340189785772347247160143621809776589160551446843703567242897144223733376634258888467915974927038565140472788240502820702660746469373591874008678488054013978531470864895411779039758790510654065334225769222896641449366998092112049424550108544540264881779254934511043950394600933221641653088762155373308843384598932486338917452484337081619195668468226151701168666045805281976247983893727736596851039500608996177867425020187224406711947845623516753507198409952139227563585540691032772684146993364914641040458302649844967762167051656140184111720918052842575529214197041349036499279207556911350769925114701436057643819410621837686289468439683218281262717477137480568032247723057716763527918593187529204902629789535288311180520713681053533797561920413659443816336478109390915146967410092242711835102063574512318034182072794032423195233363491803850352859931084414499987548511064347379721703659204746209378447866172202568197777176154625788784232796030292762676077129503269739423305983860644169050028584025426779347333618208181486044991886630906027679007680423180914312382975263009209696223403334017310159399898733606717899504703665538186552133527407758781422513880542371153810429820589516376536322916857919116113998610258774835504717279286235927274071773287016516816652493158023568922882832840454017144249948341527039065372721657297533498814393755523825007547516712500757252194192056582817621435523391538279691719350648778391601426095045841596470484553554192386113229189814880465927620083786059034555563618461860566778925540176597838404809218135166310362347598930823266306143873813122811396742718433839997512733081740579973663836195647233585671281662079386758551697784313855525146254114780690309893512032609378761629006653825298855183660777431920425566683652927055179741735288114207396924692732570712577776296624533944682572148632145143489212928187955244470732025844407571826411078812684456902398991168446141960443152373847807691894435491661704881827338185611065636813069302696653018345486806343702842093659522659514966938964270753198576728641281977439766151565533697724618826192147757065614747449667895813696019145914887455710102686994122197202762322411045326833222654800407368061225881637670829732662918397583703863137937750695497968021640157955291223488948978925960256899642411233117499292193085845600208422291189370787275304653247511908331268917983703463787409405582518010778176017260304894355757467455023833631735990419533817915871589526502065246340850306352995208278336492546713299351544133978089864261027838962481140390542198917699263441932463658671679694744158771672205422548118549926110077494654829469614595231039017886720064003213294114313602663632440891882051000138580406903111155523229283441972034683761347034075610377033575831928219741708854404253299605295394840160290459610740674980456470945338380900301913622916657104098751833430734406351691030010350348176187810391203736297609974436797764968238310353951590693194850987096614387527794172001676860651571718291468159542819689037586287137543808832584572215157615579037477852059604488886517002616300486278703070403571723306029445089701427497103032545532151136565150138499927922279426949820262504588473649938757530646464709102163296900598954859838345176679160380156602986348209621154444404999114193875610884893291129310572330584186399553615143256683754683271889874311875503836673475962102248573715738077326999625773331712373565019692211025916666114950470289368462117698289254639597740242525036149422250293307301625035113672179127428447370837453985727248316821133939485879287728778894262706240771234417242904564359101943589473964804873401508371326890344121246176188192782288040718618400442220609101429097382460034375656517079311319500994063546982348362855180949048333093851399186504137141390031152451735072233570330762450066356654301715676065974577370117196759016003335524372632050270867173103879833001076550221845040318393930803520072916321346276063946513419135823993284668304866862498489005017134582584301122415612621641873567274949956878499616820707637567079793853130234166550189312009791009817605019866309369458858711378198530301496159596884583320142541752840429514439774546429944182146193551297314301567767380253481107822159118335157457824003667700073109565726358198196393572463504204372450461255757851243503211965780431513472805232019239130831284989742994273180732593717145972358593284912876101314796533566050033257927689344814175317779002164984389433737090290068341352613649491025724077033429180697005356307939070129663571698270727256463993831186428410586692965916145845953788685201394455381672772020378234109149520440466618921715555712806147224153494798065593149245282546854301940828873549734994197108583617513966505889673319717914160645903943851340035031024890342474942505893321933846500873103778157492364459138854098988047582132136651446313196096108918708902813307236520482856440864916900112630395409564682051052559973918536623481569561383339624090579483940639904599513069127977344962161687094085934611382015695874531497750127360590367761812743997996119352470653060700560715094984526285632907998110460439899727275968097736806823082080312687738795195140309902850045797265210550102430905613499000759057381177366005043169466992930367974678210001690563574490166495121623122255725288607038485625478304107653952676971068856300095457358922151232857417297080792407474543983208256069725968733182925286932678258088610765911799823038819147246578110288329521548635455144581712957119672965206255712097515988810550270705724508100605366799833930641733385853566479618854954867875512929709458113304826001977944794278032668289525238435580484806363328305856614482940112223606183932971224859639332198054741739490910851393270107521819520911174229732468974815758283673355517346295869531602566647968092687455247177283670663046605436335681721290675755090394704283842886203091689660353841127271116315481764779695254451633479140808887544943858101921661934518897929851722095934647575341091235763086770019953658624750765251332646437746863724653023549077757855130787026802557212039877365876028435558332851437444356334117809685945094981319441739675716823569939762571033716278465821428459833103082391471675918311798915418581481690178063156278247876018553192448441577408057277663072369732438717111726226922912431883385432885533667196914917384591634771388888706329236037583075228900066034260717486955581503774545317456624853416291344466928236185676555194006276707872167064505405924461234361763116961665222615820299899481490312573114307830641879824426331481286449678123728216500537538295220303994653133120877467914688655747696908492702330587026167564391591477327868991756713740464809380235197757758587556097984318131710004113661096871776036424194189247921816478748896883580479107423375770073231129112810425331290383637187071943863316238668437623384104137528550321645069649151504748478560583655153111598017962768244161229851095789801238992425878716082885403690938833854913769948193200458569799233667449559293995429725927853881779669753110400506762387348804475923634511351009582250306392827792717445293158755761555230414969334031627265584205247656020223150087932642466342576527133586686997308282710823028363888987616474246725291044424025008849343204296914395253828370972335402224703042292615585539371245454151701248434549595871155398823644426627245400803409001291836737280961561734263961370052577988722125571963013491450415469919332537170101189037587026726720885223740745500588710097919308440869805452082559533122374830848205980313200000153069090349192177545601358892287441809973105930352852341022988376222474045402594416270570270876032875255274338350311652128998648325320620130730711764291538877123737947978395689645845403773183254120012657633817946331432880317897404131866440623416802788448862625688400723611717555637666373142439817977797078553499135322249200677316464843324913803072207578160525491710662207346202765356118578424432899263799170190239322644559647837489948927822033865818097530935793023095163508961507683482407075400892968009475410505085996079253417280940286007270753086582400982930995888251710580230560201222165466202337717721104599569847513149966584988527550911081447156582375590533406268782770272983107585703032114950661862691333296897699005152428482443766948940495523300548734333121975303499855254359969186583666740093589129183547185016696408708112925300016912494861544000681818396033302130857992719057850899673742347305172376827104033643469227626205722655291673362518249544195599329592405888349507113005150269693908164153079768274636964577009749695499432790562737783811427920813901032747804651575614389431298795046681997242602762846567093703345178924206001887275747276740615215534372941025041991046232026612643224085209840890457101356588819616041027609097453395300515470992444087812949612769767217271354520815307767859311755113812441267963231156701052653683057088507155797117046985678232940090350082425335081943991059839972064171482952953399256071889004278867742767661849488791683154177573881792764607648711465125230617796407027495630370281423636831999028030447176129536128532560689222475465771628906508688608131522316219176858485213773184482265269873832253639589331606516311905901374311983985301997094313344978333586467372491235667513096866780186440104707049102573618077116192742551025054435839013397227267168693648151059248096791542967407965659633974029691106830938350334888731167806521774284959133543181027825355550133520418539739894340887675838049101579972012201154143790069573170997471099600582689504522392363662170129796338082656918840897774696536413741396031287532714599943442773459138726079604252788842226320621985041054740255423318744376565127445068563506939109130135349630479483691659222041556331613179359182253288920279906069570159606139986031607827763280751340500903105344559654038816624413550992299294819024672851314219268575382628353475530967816464340353866183945175571803853494008322668501490839708924975000785142506431363186894885558373250951390107611687571155641972993223421441070100517782910527802654585444150160695987564249901726923160374160144346488382433489876507843094668271950507626550602747104117693665295714141167665783442506011862943077915115083331411632771174439362189370464281142061955227518602741566632235480124834974629160507029696229211000478321475983375828915616858462507736394383113989691409823556748552493383395777342120913568570851810102383997253089725787218926046272540415066287091000482094096396326809629510032412937110307059411584222762534495348301984157775711523724814643570216232194984368125741833052323647309221657208373610048789574168705492738339801908976933614193820172491928722252427025781873801893462794630991811622726267377062385800724201026721074221939765494531135423762065254116651081187880603816910146618220392981055121808202658599198833788639950559788704873861712409909440137120087693749346433807452634223377248477100865030739110329661959300254242606287906860653770324386081189768433072821077282886831305333003047774967774799187619058673984441561174365012839674981121430488607960459203416542824095609758850060327755087117117239894466100547101852689503363221336694671138975995483630062389583768103356301964639062288408016284106331389169914939184092252848674964026003421039839839506800839980985786192014701111681704608077551214648125618729114901902287609525235502971324545592255450094045839778843468452151571441429204030586953551896181230522575161796352904076383160274816325379886868488283688778321920387672152888036285763487261799171444739951981168572178753081706853568941230681668033097321636155444923475873229712680523742260277451199951827116879181740113355936979028201137215165063704147460112246203266297558416957510333286032218087361414519594419473531343852642305485037679966231265905778298111338959090571283581971314834700312677677775865255726047415731668784985579238016379884212694935644696029277086328481069691918296079055247633406896874440279076474699585081323269145220427823119391215880381821486916306836326277930262946326203414907924421133281759168504958982751663903390010662597726288586597218324351043125141171105534051166672246533733118084882361825544193466173592837035797703273030873515688636361843828215656949931133143178662210013357698016615577427884531045154128049329439922708489100861468126306735479362548505921163256445893734449212408700890385395363626604894975682943613628937240661503221819623796397081166078582152144222818185967967247133601195490390417963381964048579640723166441075668860154493759575028393435866912304110581096330633675259634999594125284443298143743201065468223907413360549071722242076556121013583829393032738867532660913771183989717495126923423489133947123861373884294238498979269716881773150832030504779222495565848285708378227040537621000955612732170617288642987086503578504506712712017615003469035105470511625695344341019062931569237358267047067731168501910117086199014017884331406924564464053891246963645197187748980975496642995769903986888078758157497604711293026397735198046888592307237597145446199319556645419063001497296369610990114003941530390752422599812519920874484829397498181241499419530404993101285849269571642685793978729709063102931065309970672734313693797025414178512521170710741769029067360426957791793543432598550204610048447038977679401497419638020046876969369439939242673864732045653210133711518600385432411163948409755270101360182851986936177945916714382992616828173333940323253479692084924944811425095885109758192640651173753536224331042439946882689175298776910498768389502952426823372744937307143423602292566871194414975491103788422739986213790644757979216215635579496479192751281707237125360411930679055930599483855489503362417602726446443836933587267434717970693089944223804508710872126859763400606139135389467552701651756108463533980883762926748122620411771986063650139855924549831774944910040222725320609966954014068463528267195380594497792802040106281202684023742235654413220580428820914666021357974439507770246511375124049491900336364741195353529425072593306893955673167420574977874680329551059770772428685185920212674656974170896155839548985060674593616120762425133777239424173163214821881993402158261469177924334155434930175546449393555112351992543407422081491091551352206885395431471080318058570062718077715915095421949836661266741136759964160878370846298152973248963981498181711734903159234950435497120273159000669675141719305964961577612709077164681717602847843932591551737551925478141301883217377714819455187225101831993530939341041684765538374436404504670973788648130207802074579913245612424698615838804200178859874996164336768927565357492031871473607865755101287096746019902882881132543951257075585640880020834182345403537928727123494106678394220309187379162995207925372131902185288038540146230049757582803982787986216335858076346450533799292699393183566419744628692052229757102248295081390470145066166235148076421928300046882470968528016622245382773785860029315784977259657796685747021329937423552599529629536777998680907212268714499606055056904905115994406353363628945282535482982893271796463391133173121627637676218352287001471515441380207701579730993863091297345450219139366390120525521088195595627160492934425305038256850835796357182026083109249443646381807771950255557521907699018813149156719272097511534537446751558450752524083887651643278720440797619789926398331328650468177983619840467680382151958660146737920964643483643085702506219941924901801005780865500722491696153305484456942947429643831473745978441244207502044434631965346968692744701284437651665386085956688560834399164483163027818616456573435381740578719161658489310323866421587429149912719978354108235092061607234153150461730070163079524707526132682162686892597005037361131518298599527588346439153629665869427088419669437860513680109447655098670258284018875282912275042153307667646767712896970986038418584425916511210861873417268573056165336851645114877861171549699828161119491003833095312601330848514083668513266088806407391077734300136341351566243027941379050026109473629770008655672220750562918006117502980063035057296984529427985470381202358493121933275859109067781966430971039624106804794951999829172860883710508015333576787733559743422112990118706482615600513073387102370892673941605392345146542623104897654765748143442510334750677996413108451579978940452477899194477477475213643159351617427780395388976966731515513917209444374678552809463739769138413517069377097012367327819400032320183038355790101696163493363443702413466267848650791610963033701625265485538276892722752030593395587917727014069491353327618674474809173555087176128859343586761753299942014086516064704032118799597739910626383375084767976373618645123589962057516356904794286667187475986755844656109993475851459727676897359811342043351235765292180090839467478675744203370904590965297870572833692507647468326002795606846227400690797792083249363921838846248748118053231244351452227220542777498852384710525640437032115312139119575380222706231534499177516289228348357582498850500543367506892882256004267996885531815092068944533565484411142052134549012185930775048400580204327044686817559744118518302476659358867546188269252820232399150104710416618489091733543519961976538695775443306422477980369091129958664211037998128964925281709538508083511639409483303025513080697307927551182014014786892442030773456158885884160234856930894129634539537646668939199124843119779603895819426790251837367002203157744661540207173883011397358654833308198892561495043994371214165486259836078726014322111669372391183740302726511390572637069895236093600268023239760761700493971782873610851489346843901938554288840610545266711867007983606477013272167487171902082444239497730406575999595073466137927312627630621581532176033148839192546791339504366596270865055323576854162997989444351403475843571523011886575078378530840866693540717256963177806780029012130383860369725564466357092763077102840558826965853372323793811082874267495728263297999631178971655392174822324697957389171947478248727317975660356521016588927201398854877820256789995340995523641188000019141341945893664538561565571897918905749454746966981138657994884189232355296928247661452658341178964377525948574485204294941843249857558455321174887566631320260314878892288182406038303645113784747526604379125087194582662896729093214491095466886026166035228087461003844884124401309312275247343047741479209645254421092440899384062572448327728204730063922529469489992375633627176984994977794727188145693563012257698154341660883620585531958344547256661910965930742615711484292098457391362230552332199291993665912545137958144031506140884617842822526563154234155704933929139161948777013457089098378417709018806302262398246035627658502620455828126160886537604129516236999861464384975557858896875543763297338843333674574915300610225627786971689297585091386554511545962632251860367539923443941801630682359674805428336043948965803142502743123817623879317732054038141595778332151734762116230570223590747625536637457016010199737968697933720335746883584461188347038131316120582339463729681631663221601412776240816453025867497588093653490011894056882194578451149854191710415087664363000002858264725844094813938744164390339216190475644885584320583052235700198515070686542723479394545328833209583651444675056211020684452987588327766282730595846022010587222558383872101614198071982532236436632336343851310542087806051682092491427149057261240869424936829723308891343771450050983472271229391855811722592730325833165357823596133742877854580489398023885725629647925295699970083945158884074847505393748065119154466750683516675403089615516707807742205563640036727890068779455714611577188659309236374819129663258161188493501800537858594351557590922528235271049463302523634477664896138733101314857891103015531712265419077156165823545596315033780275545465877454977870244336974906513335499936204365184871617428845909019719328939760634620646093429941609572158033850463572997739955176573129161968469115304070632990047728260477565428503938649314517461279260215772897690918931152272289446680771201974616712154799040221345616097620719004031950419172179806269125585394606513558789952742486884164147508965563037546347195762343114533783522342723240066559524339267947973203254710591290110313405753464222082692150159718519799486845477181202371875903602554857537288277177013262922569260608116906886616398866748811314041887892432489618592207940775725347971340676457729220222612321559260993664316410813775766364244800891988378114564502375060326429886334537823123788930605508463419076698100578571639565239279896599823041536668245979920407479898518152760350213355046458182880865007305259071324772108614980474309234095140054739602050085805259467117252303642538618126659366349448409348281848461807889969333575442475499704057376624501891444279244149860943301186253487803181226398001131090202236265076079177908381762836173873735497202855999374709437158152665735203730160663047806588513749839016576800833658797266527798066288125085618002126331093083268159713556136248623100696406030027605124126400454650768044964714617884515055053066697768109139462352522595407773476211255848240275852255873744972926948408708765373327983691800324639925195406117450298906756608720627315650254725855528033592885534234279807575405020258956867959296331697711139973338445083708120461036822889993830160979010244535822436945023421401074588894403383618568851645292922952407912838144244917932877585145258575313254473755852375081441574646886766596530811012217869847272308582679348447722837916167286802962361138297861178484940662321483246398900011596169353431489487351335810456599822024605306834521857432916811052263270635331899677483725897141300516103703041092685457900774134119630534646211349740695108517575862417727012749078716535029957166239363503982653121850225441969944648208944650767921560517125264983885760323504388885182330298312002284956093375796085122780358647852774143832266508131654742675678602915220285855583633604125787199445287774598576035963198107511190469242843567997476002273790947319651463650303430080594978576712291124843024145656677661500046267532533615095135498400475353717041330684858369574301697184346826811462844289477633533077887897429111631791716759619891929995410486185377791194307570464454997462555348695529280407805407852671801943587035458732624839261283134725694209890815401888713005089000952430080680024756536771892466186356874600846488260889558704456581177663468798764385250398656778697738912670779841664773192871158916197834739685963894843170186282283437772006417347213412340335396138208454712296935412311975128949683154700344882945141890163951999679346276346760325542272021118997680577867145539753933662257982588353750678712138201082855916606660715140313821675790797383337428611992871738583477406006892573725836819374283886751643120027432824741091181589129733433916570970822414778461311573577527126966939427592908805294929955068667249855395072303299506474565133096826906825728449671476165158332894948080710154044843998540775183184297618796780853899611178529606567301527336596564871661035354939577902891907087903445805227310155235012618670246356163123421546504839550304198591769450837041309463461120947735524326785952688007278470128769851286139131533795030248038466154821586059664696259904975428543725068087253064303813700953435014136407048948114656133189803975006755605487313400465137761062690371411515042248351368401666647916013141211468634491335209018567998275110637131212568778938807796752272871274774698951930988862299014247081545830226783783652752923694838015757042416968196879954433277904384549767899504636440176530764085963194976081022935899329484627144186081498912657501896374456176427962108315342943390916399737601350880193413474628299020489233927326723933764551048008008109324020216864473005203055208476610378323991613624414325138299908210613407693046332171149815900306570592997910684924702247202821032939525088011349205721848317808722720484867515836245046869911959064320637891774830627617822388308384024190411123128827484362330296580977881051259958368614581782252544303853504761158560856067947956790854936731358058382811700455532502426051928052658883613832569495215768713554963190843284080227662502281192664555066785700681488252681589290611336581545104492240307734994788166734981958391157508914678171962372048977616526437065743846288553594961093677645499134192473378492561954530625965436559114749410873539615751316620199991347922280995331597733123517074000481532338950719685566846316893971395480578828232323011496812971527178176060339798315425089757153988946224692622269256420751226226174820650547485983142053707351176017528700216598432729001292532404780376624391507141904424497970593285091214379877081437515624478840797133112619193163214393167273303363429203745269684894683328541209346606261423536056229103270316120584064174078864173326454068493427141326864952840485638352917743071472470532194835484450988991564820469298641792233927839798833767305835791012346213653087003670560442141984595243008975653796745194542829162876519984347738906506394599807946531303203520673424047969492241782465903657628947060418050456975365383308556341911997924452977414203900307734199897202023618535385405238410198037260308714255703156211979124294552918066958353259844379451146737231462528590734837088745860435477658144526677261570318259772966314145848333865351226441457308184013855242741438031612836452598045039098199625457912699533394450660316582434084016107818306858200899901503153438794634134570154846506821176307945346880611660403062012089954990374544407964698763511945700006161763048397032764293757685792637579333027090873165267962067321027046435152503058918204976120573869087691301393462957520702940852434400633184993917083606574019179766421094353149582016229847920303453348354686448334169296731134576814043695427543788007200629761125940023929499130043733311184250624985106732659430724961205628492621144893080878128890131863619810243693213876877099080193543393100648483890389976440270995557213583798016549819618732959926854472960298836489206470576217215760514554562943170463720700181523221982914142948168108583277314677037670512549153281107860216751303708915162013193336949463434255108484121344065105047446217270796507312011391958778818497904984144544666767326960653923941105673426119965455084719434212087897119722653766894512189620410967421322051949506702149777551726640586014072871102501118798369553291324657361921156428046845185691379420273293998885698892151478936761596818175893076228069697495434206408180773348263958751707636235143963161949385293052423855756252275860135648742647071072955906179606546721741387233072997314126658938952154026279369206526959347304720653226630178802341642439620107191489593264434530522226658190309463379122872242682082960237759152004405521360277027952661007537804365581520491112640839008637975151866238710801887315007163073832172166679701734717375171552703749187239706486671927892135091645870324332571253816658659846199637074412806322729980063531489790975438938916308405308927819897298729486739291176292855521509110566456839373254828505863324004616379498324502684967599124067735976972416225373568047795442317923400648774415520265829109535855874427989071975957484587533856548335195708277806103958994480784312488737562582632134497311810476124795543280885160844987351987622960071881900780925784673059072938678694624265875305516899877947456003526874634891818729556050456976270162828468456521217590585460578363364103388438689391547372604314821500750691971898996754422460431158850278509477482363297593674766002725358420685100231687928193149158353213088865550181431969803780084856804850794138139964930790679987003824854872745924119636992570810129488662829014029434951585040432295464908254333318187645806763170891887269714391687163294201646861054910021439995102395451284207850242265318092224683375065396421097219733028920305921632882656624800606105419798782260849769251141856976095361076754918580149672013868745397081424344354541128687881584502866442366936687376051379481428258623800922838076752326404417301763071557849857962999025086475351458326133309886088527809892613294063440443647644730502538715713590022395587359102621191425482036630180134698697192026845467073825231229190718572232669957856374113706754524294141700503513768150392495936381494042883081803969839464393686479417574827253635461112101167839095765704233864838032973606385687032847845985807603194218337229976652878313299708244479884104514668064278181702738248707391268382095709234402780711880330805636964334136413460059339455819202484110007703968829581798907150453433157914986878803535327892059851171131899125664955102370690507881687027912141227609465595849736738201464727557243868471668213672925860206089400629739800513692540895783694956315849941098326103484769395809482063634928772743282325272763432282636666345999146222489366508772062843655832426454260790145402990845602425178922562498797213577320448341985936254342307822491285791325803191692472072546057221801765385572624684772894081902623390909332734095716783035310697629298815405465466798211413075591384452902791595084661035507088936345623919243399063962175677447621614216731825261430088770003757271157894316155066442937049520549243299785596112338526329151664918405409605339166629258835367032988053449961868778411960515791270866093660783348336551427984976474331227013795171270524855674342864714379291799357315907512555803262466068530732032794726276524230226224646843102658812306201830826974725109432061804194126098362535116786917872018581668612764339310817375097698331427921754168918205228608334874321897958594846518500472954033923394266140188131117083724293588048047031858378643222606124435715760651627427206413783454806151785577597859766618587627194674860100476739212832255132131956973625975488844660063691239698143755144136452476771668728338288111713499106785034822386695708787658388296041137479912490870581276161757286894913151281761822933396604786244572224642973531200211386379899016227594043378520135804170495305133955934348173522722394047193072038788122885407753821727947467553766945623514424940733921425085050324257706203613124440168941519768643511569636378927939063641708968285858146521441046791055845953818869732961555378441278971509913658753723964674418839807094066192057959917915212892766700812445432780203359107251929749042037292942886716850985644104523201175796003408712596489176381952422051870651870123239411473724172375379774085404139172780392291594097963757653992462673704044856354526211397234970214179520026687361255088522003140406007675951704681414239088260189086910937896440496656521564024435601892835467245659584351826944002392698015926896599599456545015958527653992830491498401121630525147842377020983903807749938991223936875633868772811628279192259694410313322352458528077809385830258518051153952310110477814619677994655065553678514767494013663585517253677465345903797782936971514437973439793320609619420345426084749074477371091079480150386389148867967335872372910301437070406153084741689893793608133998226934185451632132829407043302522886709640535171470399989552543170101800709012192916561118919833691475538615086067119704625804404498555928865347867634611574436163474321187161939880013753879318083620631361830839136859059722711905410307265877958612241029034027732560877102966225799956018467167174184733378057034702380551385583128301946732367566734688607113629998424337820085127240156437830868351750740622998148403767929884959667025267591392962666872435069427776947422523716828790881756133044949639622788977040996340661550793939738216465839478595333708255179252703155597068147102476114898545400119915851847573919182943004933973663850728392727205507647434548663163190929238774195403192325464553376811302414116902397833358030283386239010308950522917830941722273093455397977532586118518422165094300885268677615914782747645475766782328305775479850417922155310288378316083514218654220734651024915972858227810229488349513901841999232634247582381046013703595819082983033062670753762644167451888627729529943616190605438227999327595662005344963441315127963277910382384565819445790218221890932164989278829038907523661270793200677938992803302743013813006339364371362591579915671211746579921339412984329638194403270565827683976325963972164108299009170479587044587498976635131252013014996584475860539642068992498046902280437055020445763784985232222505794010588357974192075803834630386927719648571710521815404923492824765294010663010738912994212029943073797600430786574685683978039430701845615506933480594393460696190606539760950778234512001181299257602986926669770064381693393866737997329479332481970493708977704278421952858461471806071513727716684848958617383055230761101069561642353878005186118972426388431303268857125063224229709646464095549305953086813163045602401322730182739047562939998872430801161996068040313254832027342171362941036065027477657090329944570291329703558353496713010130549504889751756735397116481942188550296855638006822920950254580408116938154563464909798173265808291760985185342811408502462836162547184438052572487422208986228358589456657985049926126036876227289678579025889950699001825848185777933155277397574085292442572059317928144551661614157961904350443629207247912271554829334989939568846936981876164509690453348116600613551650814028879237051177626337691502457322576578727643900496936214162657991058423100153218398666981553567174603257139734638148073356431261545084250551764887206404655002754515685836591175900640916773391073706117473364908382997399118148386437692986728381427721588516617543953750409022003806899494350836093439661081008868035928573682515523253609810372517167602773740690380837723714652389947932070501638089874961843973327671943674545695228447489032739502227446564274090524687541749444572553141307716801630564596928473236439382672065815116281405386447565547931481093837481207909492295799855729516304101715888830071812792498119285982957157678792279881249001586033875165422997599015385953066291905456412323135992704863324272468261600451693654204738473942527339413027316055858671808223452921150804998967859787497819101335176211886100926457340276418728122622726650018316135877761665201988101251594782658259355708283414233745841173543032997992541915339818694453588813416554566917777867045948913642563130433195087714149589773736501482209737909750863612136587810685340249438122575884679073756502341037448460053325088690274832675655866972681968107056069736137724491525730147097235366984518950827293261128295284795047558942821822589061766180152682039716295449130594702389152434206002305829499474976825807899124049478766366663711526848663793046906635077556099230348548399020544097403950714129332001907686090655511523213502001959016805034100502089708512349432033411762765469915657569103264031295722866682584172942252401421818201765460698383680572484677044933973644708306673665165674377578104480261990720256965305585929428000545078032185078121997311818590018302016103709272718213933058594872052558996386394502710489611836399184613964786416212604221387164146923909728760374379900239592370268017056809304380440522352010516957809512427779598694776687088145364151795010582845622704275792032042119612770673420838133803706817566159739166784771112314108900736013907384436090850902251520402316703534287334244307392214289356168104006150528052741471432404197555974458044220333769189407009145355242394750698083398668005231670530395819010071069116282457875956218773546307675859673178063952527499536744989677937477030302485364492540138567674062078524518915445865821967987576158059680046120706387648713400915867664603634542464227571871704392671921862033895590661581203722932149823611587674622077289808760583393415007457851007686540783380394344541179031599632742730746297951695756004746556612394352934381514935622954388565416650739813430769940645214686218483673387685576772508859044958610618873933543674167315395479134496528002487516559019037033010782677708357536641728470049014735619782236615347090412958869274142399460387873631259892221207761021151214297769478224130504786635343317034097982728186739112682562381773812427457450979795918458353575028153527305877666904121230397896847672353391924125927683371703860470464494853880659940565267400314914615269309430948960272082060175647664989277027326202152733069078656084952723382801632914440523092291345785277861103377287179779959623126040976858948236830688716232014380040884981674250604102991609387744338214325091921680717318850919947693481015698709836343937278658676219733086386262691536537448614650132913121047689792514655402171737201823758187963971107919215573213727837132055345520228418130085473039912937379091724546458860141189405383973949304854298762923165212043679822134384560029798322402808292244313096469903280016424855937726429454136519909371787284284896392723422739582565855969480112086284425210260906723506480119814388751400853752081193249268310961171402707643929271205382379153654161186536827391568939673008573600945032209078907965441084386402814304673034667097446518234144117417214890876359834872748789650458906214132517732210731766034913216325764243375592174638854468383218743591070647934107499962097216580141121342586539177015741879985800436905584735415204723135842314057932896464785394183823420356127037264470597462696029753001030854058524020468185706772584475598879945839497333452268620421972345990433854555320594858228688487761058036972568618437581541493569265661471009651593294024070344462636231894517088101305822144299468001341426053755500555438514248283501068641963314416355576701854461680298660705388516582387311969096341870725342136256960696480503459418646854636084933645472610948445423478109971043605215936009816358133236622333611039126600091156401785150790099223505380549996085061849925414222708840960235550582027829912261960901454350138671362416665504831484237497481277034585724680426433320187229325436779443713639569259032250766659332054803240653126690471456821429712589858098714817745683630987827206789312963202587884700011314176994629369412683783525196058884480376354468132999743423053771157148506005566219695634958041217518717069635710789666328819633785814339247449143182911665957073863920855846176798425200901340361055835695046099127541216506543619949969169740690976591931676958998174716615127546481002253438257146873770124226015196149460958413304020938398325462202488481405057234739541277654774111817747370330329927028593202672997166189280365759141168103252102281697520628049183972952531663876150508844914560908387462156304144116796417570391545358014278053956168020840856639332399689534007950692646579584815795895733836993850737696289599010382509766287606724983909062673143350191882412158179381585172066165274339879960392755201674715371373240782728011629534459028955663875148660436943404791128881046481212025466743106441531054763667501483379525891171289103657153840591338049680622086095734079355152098470901951645422137967472785774301058711726239322281354589207117498922247793397189100647367705631996391548185399475417992509726065307474437467727398451127606833620116111780697978749287383007792211589454576465322642804360441689018033336446343515907404199444996263445795517038154517087985591206047556836274154158522369826632603798136236140262929316336891773265695762346813155982509688288361921040402222758453644604047848618254834593371897304143487170850661383705312796926079844617737699186777484792886168121773988681783803098947463437523029043833227298354214436560758929077152155030402888612272576380053023922125441613617373618527718139403561371025465420756640651512786404646558490643631479614148086283997427240473608982363075122924149562854471574785405044900295553667666535834894132399017140412601266090052834822485610189900639903986784764172311535039947962962340266726120834453689643492499421850497401195380749454279476378100953111245968527271331913669947041566381813300138770040560344040061697960744789067191591452837481050999132490757519831974169675187172186305216253537856548035461875672754279631176421327910895738881632443953129360747969229877568733310857078928526870065522307601623778045092165117564732481623447814156837709382328024182905456154374693646408878604738421746331360632676268625098875844695914353737051860495086284498220865621340310986783485334314571956034085203406429665860534953442723231393600762546716375311530430163505221901567424523749446168642172326367259560866994489654054604789058648291718756995647849842624757516222531226383124620690263306303841250687658731396144121623558927976147713696390403570613925959062184735434182817691723326639745377962351545081734694476434997959011350362667111069602856620907532854792548351270735103915531352037414693217693429636592897950752363012094050001007682018646970418966943251628949690978262045875652364204716141519298771319676318746488382063420410395886259063314956994168853469833022871909417860511844766908190823832390488980925225124497258754469642099198939586470061031358138065837430701637458192605478894348104547975843709732561669377864092999165918829404122311211010861901705701391653090228050673144665165819114641952765436205687855235229859668935044278274091325309755948953871599280783182248374596839767680663907311619313695867487099680136986182995052977291319855864365807278767806224295012006128913569595411658966174127562784429879732403680989040332183552738873620911839859109925554252264678789038993201540001803426156749271593689389678017562708348451324741382433788656253836258410760349787287176241552308039762935050897577329008728189144751905540538100691268762190388796922607902453364513552030971228200831947142681826864234869722538699154513396507081378733704513609716407439240704491489877696029407241363974948513560948971478558248657707132897622753088912909058816233863023401482075609551991139142191400172380680361492818218053291746367207235739976069119312783824956195154444318239868449296051114262939963952313766823933614193868574176033977711087334066575316134579738105888756379649780642118603320703887291567915273175869237796802707210105777888842638959016158891587484901304047870870173574211333886061159571625451301358887024354275919842445080546833889891972683473138259743936386994941762617359875179712353314568670788591635888258727857418803147845151765668016454383185828657090858662617110306762541463143496384564803182258629090108055003334242781083908343888214138649372292540598676086321332780370336460690278249569442643841037440217753299906329227567621032890324835437630106829966522865902130829125310656212303272410930013128879978047125422853348964415987148236290601730149024522667379738411388231963585755298794868957076326767746288081184514122971971942223326095017213496540914950250596299139347249248547323342235579575090055754496516016611797286758346314478604914772459332182027257645172125956392534584972249001356866549026906491573978317510696593098489508729288942727355336838488031395114397660381738488457708519885846818642235280468496161848561666942049219771911844854768937585191453204074426945821458653097465472087104145028275448925872677606126269035583377016322007203784767557738564893744523150444839570363770343225423517348808844444949275566925328972871749770467834030008602210313103534730812356562294884267301087153671960299343290164034603711747505730555308422841149729551133344964425417657842182418577139219081462197160451541013137666764391051828175314500347204561628488635212922360262803872730546905892482182033067671741471734252582126133319766823850693666791541363355543969600754504076305521356000173020829378688877289249278931879736082018836079273395901444583199888055166071849431029013392278925007575388208337521937155693358728203423440001302452722130294521971682555934189774937754643598465321346772239591800101621204817645886438140789636685668219610494865517142305584474014871419808709139316889360867467490464406396424835295673591608753150292719797617124361274425986055955684441920819433332380506206042879047748370615614027580601470679378291240657377190764420331662032491778777472771637477984658820001933821250931630280654672461836645708674157970659725520668989505033607145006099925614342300349289084558367585670193349357745137035499862230803646988863061811508503030831787173441604667471440152161601436096860395337258526942655282760929733117819465801854594211902074159712132231752121900512632199292784825383586584771363428809306324416798732527183747218707294839914533557244342952835348894004350812556421424933349118449071101125582296509006170758658286814608860840883277442627514214050838677676597884107900188625121281118379040209002862090386756413614255153970581089992137086923510297359088697910938502419536265199990501946065141019526170420021649510934503158388404786869143889270079388205139616836691413612206423908040804761566060010059503824995258952803199467566438682012985479435881734779591568722775679755921482697278301311873450037510305376380368368519126348359896527032966500290419207883368114324791780384169621228362803923084736878533724809625422433973239632043971734657789071024155212345019191179422937659468964030783029588219476112097711559475330282871287243445156629837874422100590699075160262789869068045363366969890176439744963476811684567513609437332608721736354271492667522241559491058047240068069937133483947098824124860490590051632932469691569984509201233394772074211842479108542079542462757022104527354629096776596965579892394334542109397545681759482948440447699292495415057086799445128362653447953154619456942945357616177275380009966312458369787083455498089765165693996066494144857264389543429944862148022856735968194699153449656907193933254888895237840995603899028498608872440680904669468792174310493470434044016971708488290416462544889111035704726073781831403137081933238603694142645811956401611856523712347328766632024570994576394536632489204573015865889410609050734201588704881849719866470208933976810786824391632199435540638362227805164625561345188575237960954649985850121140394172076404915906250112339680980362403350587704002777678638184378534977682348598790071919623103297830411140857058724945013278366724302689640113866973850919562233645456021678713965531876788574094936884965238482377798545284024613581733189503421846103599389898177052675147388767538275965066968765951791946595231382449776547709189954339605059373235233851134344897953081722110754568534664528591671326824709192358519257224925926384039795176840263205795766347174018374652132553567592482908639009520484438205008211237710564961188247730646501189486644509945938553985906053556182767454856210137761071202165512012397127653278278058668256061490922640553386608819969134664998845185634039652422359196922153584031992395116995517035796961264517742107572361041315212829166650077413537473485722143204755958970762023173619410690042477146245397918589942940575120928024550244981554495122938524952086892925021510665193079146423354903664511183926803757603570583530975416101708707274311498208939659590604012802234293315161871385046010374827506930987226948458575635744481274144443744715821887672597825951034176927432483260332455387824899526502898165474208658607608455796245154642078529862469493552092047735971237004512203745858954361372305328729962379461474629554420660592850245161408290688761246151801248834605335612226862129167465582568892337642478630808715578270272239409460287591480082735036539298601475490191924784281854712210179390461623634601988146681128235620899000828923188625455839869966372425646683632958627996856336008474669599313894086274580536240359136992509315941940124619515450697889935759909554860547712615942312921143438643141360157736391367758921341023999688180192094313267873211678894073336244932261696456521449853867225452313853402551558576525694252161873026163134066707433052277110035966630071954056138298235564109899511750400200238561194182495030804384138465543878615855911492821730567488753454533206912834504812614134420889646029267261187911823470610834172798002892818367641064532408612102384978224928733049327386728796628351897217542380922286347234370653104192884059864208285667673765708511604305472089494576496813948086765540362597802906943617979647566530177667707081173118474406944988553037026024970377157706035693330026885814532474687370266318071645989934885194360540470432685311452172625162935059544268792551886197590267379456878356950233214183415518340783381052763584433615361152939703717425019276542840508843811404087974204084188107536463833806856949426688873387615169635809563439694880919765130681964642950905801710450194835331041500020107099651882709283752905855294097984276994340949945120057502635228652249555942007011338933696294520034670863922495171992807381551873384988609921055659746623825208276179101927252077588378397734090811956692370726214934934160726668119731607384860654364796392194704287493070916695316768717946429187118561404346216784953409190015804581095456932307951612576208282591494530387379584202907361008831294136822492831511244598525706805013184898975812338682938339637991704149130156973036101198155908445558636967053680477565982721619389792539060706724416188292634523301028229290196560212041732730732846883736703302202854752815705286735446139109476312528063243589892305726349397723803876285687621522696282913913429300804842556424136099653108510582015830066594449689968468645749098499810477282703249140723977066203056878415552157583536987683973450121013544336184830848686037889886832670740717615261434428330063247969475228405822094775426958854556873030611796579601184776700368830627461329364005419513748488964743879279318372335052642469578704111530019781945747220992309506766531812643252177341416824531949632082973935618268868096956537240754428464941443490713048442838804196095328418610347697168861976881881176732067678371755060353482906370675871608290035070691182181535007603423835908384287440404366665943184280891705187455566512240716252709308132425859289612019528018363870554186441500634614013069233461640623823172044052480615550959227524849396782894398299086807991418324419966046668422407606302912195276078680396487512542883399975880233876650114603915684192052183073572211494249618667723227972654973671799935612131809308385952249031671310015757222759887018866099300812663110561746766644191865844133054420649512836476258401601768511831737497619883452446001089372661075629768964260538920498551772035513997091416409113555671792849747219853369996667607460817429692102837379844618740023753627303920352917483565798964023638254253383813402491872346532348560631835957918749679752868305019158320100608441000220810754116816395477019189659501997560238951932306876907954506535922328550799520345107098462232659508314617722044775091896029049267824704769372625477158688460016801316603173827122100452160454448808678782613924688266901129079598779479887455351995747280356262742564400127816870194943505323340433050670515191994079189963897650723942237782140917093195458843077024800318686637159139256660945106216865940483257811071273894323615609489313731986986389933364867854618689872088056510841729242659765812408568493367492071303837672478232896713430678310478429771220237113457554760715535998582597555044002907695684944723676387815210119856732160371037755783097782191354713787330739652550914366200923847712335304843388023876770844318845639962778908022530475028470427113383148999607103058274478301171459614489763805203400832086973929162497386787438874059140260978521531885322501094345691770366232856798024545703842783743654517759523738950922350788550978783406477993135010386830198361185814926219957347085345839811154776988225700737182636982284738179383533151935845176087303338283631643947470799353576945594831655015883748538360751264511286464275511536628520031858707582206633973682724158435468465331830331955201323764199613928046475667492299471447709968499102707873060485675488381552791646642577045627212405918124006207128154193544243087337854075678870599897780638677398650584115424439842868213227183933695647110350901646649374118524244901759198519960047576649359709047461199377271387258938868277476374905150852070993299746417713038397127359743848400336769362790178818776570581414545462698018975238749551478695272348003039257091441666430887305423292120451850611298598905575158690878558875574023802473235978101590753830014607841176575160502539733368838505522110125754259784431827041000435151425007396886082684409802697038453456900956797445066742732646872914525500177900643306955752995355842484120250125592092666034926016712980331981220705725141688413646823414107760086835763411646222433792384079158514901996672867690165828110745790599293800938359917481964963778567332640759946669260638491470043718496832342669740375910550026949364096315028487692230299735320426762160615414375485701396598573473357601988951175677064445885468069330242824744052028406075300608932442071315486987159959797447456761871362626656467948264422372458823315844211592198662708441750095329799912315113868847655809210397819382726906320309851077382384245158918488444777064397897170580137300888101662658404875038100128464725307938453894139839313857813135388943800192022500742782358648983853653494108149457834899816418716441662753309670843242787311129612287193034871141834985173633103399296976392487852177608794233598284613399097021048699295548531706829417559324721183390491209104393257169446261300921317345769791920340765730446287567031287068026948222600251725329705382886202477226422269122734635728037032925626328768844909070155816834177416152704882479712445993410353380639522835551460635514109451490229801420855971740323224800929192383075951484790676501776998273363788767625619865357475080108415504601796998448616708417693910494934789370882588081075123013982620683875872760230192158877581313656243931354228883873164347479029187086328303487080360125187820015976400578879867901887873753167765782472662687271957390306406519693166429673044501852317954158128400264574350408159964257338199886356518866333342090383127411363230958399212482514070988597929052752734545895744766867228831278931943214277140798665244278311826251969618131357879125691650958740729935428882452765368958032015197487064236747592056383250722438867026769572001200808340067556692327647024619527550958595950438551254604880721677317603748750667544345050451593197079005321271543379829510287597920078339861890017845794866813318881826187111979159131066600142076764560699250776730757668550132276215219090852306192171989080539414792354668188217702902396691623852355554219809528668450586839195699796385475663265951225280556000597149722750976955073229147430671736898977378292531251432451288611800344016802085806163722601959193966391389508803059421271128486246296559882329543020845377588786888416504650398585835131510613325328954795441547023087365768066847920356276239706719232138887095890519138622945020935761663209975583706389247933501845470647632722110485463076408086720246294682481327311078277182238495751487756600248107932407620744244417875870896371193479893181996232359597725307003416697930329070828969641218718507498145901324674975789555854903076844495647807122570494427929206146962706850377342673947017169127312538092946817846020570321147250127501415559237632722248437793142173923761167752711653557389227591834026512885792772298502360286948941866873687433555038419987028615158201693940589942053448491269464033650289383605424754232926612273488985250204945750871972100402389384533372784582556503416333969379957000794474815446824704512554588023336660440508644260532917912432380786520460994054216513853015321282690833339317001312203179665393188018449070584242891263772033263594915652220722223237645121102406531478635501780506622619310582533177442570311147664511804573620596737103454965751926483371645983182964983031713954915715501441359710350354001539555539160719894708872963696884101523181992084095797008931286984113266262157289376884942685974451442939130634757818280725510423383735623501199557169833856674778260153183960166360028890857752246585667855885809559733987564066764383264925281175698656111113554803772023366870533472638216687330189910505891528656275670795493878130421303886284272467256001810658101030374762116283023884067125322038156416322212672164362762506324667908100338235138012965163077131621554058304086842162652697933096032582420051068404365864797269693946478213915920831896018406057821134385746377546166147149879466938163067623984654701689948866109226932673051985324673293784534753813585044908645574515312663985005487550750813824453215738904200585505520789807651193203324129038619621814241577778121629487935315827935034257681508017976552484197934951531848435606373364170136325942930999689279586793943039829651967851051856034387490968094748341534718615013893945552756566485566922875750404993969921679228449127650712234505773639363025264679378462838594399814716757782660648816790581473219437372371647107914223179623991994730310639837175494642697422580118012129940105082857506910200017565545148021381333128963721148762640662483292904833628303623901344249726987780962367177587999484498334098787048535840338021968082680258578678571346085213170403947553424065040038547192686378074998972548043842581133622413686729141696945771218647983607113869567245318139646034845063396340243976000051391595819041763211448767454283322073889431537800668673700774699634218708697070034603262894234684353052648779423813215827557194082877626053462040011112848355198144304755604717542999985806822230073085716069023629104619848703942755827302012476701572123142960452090489997894521461981283688375795027635254091324087300321052322860982470569646103093415437283516498431355773365065476874319398461832686290116509491718490386783520177675086685056328498320870489300997124587677421858033322981725828689859451696520027546017155509175074034085515179602923243662995371058181661632477211177019607154036416134089270947096859220068590137245199641362230834523762750211778343813737578328245071071814345340886787367354526938708055229804497844802302954661986516766842747965173154827231425498156367691021964013799647759388070012438157215957776259570304469551176890669787566546133570588389857458694328202382268652328922331361370004440395562095301274587115762334461583168223447108921291078590687588181666917685448440805985313599525680831629962743255427118711493465852194445509070406662391229696617261812998095970726492083399327960621494981987195017127129618145345185577730651073930775039319498482022804335282180387426558907096913409831530797769374289126332769152014085350518472662687154391838583788034080810970474998549307196960021164066696996803285713919425201013700504393395414903457603103806170632062242942708967215332826557433976528296834904702878722713446858563158840797950463033347368369869378964545881493901825967442581017217092536639395221524320120380337325610698020544331729063274046048259600464997022869700566588842460809369888888340914564449920949049832781902494120313313133694418533965592957632934736952022419160585795454615182183589632517174337854670504642630299332427969950713931835036443435969294645179370461787862932524114447573050856279905081441617020367287673608561973793795183598146159786991190802464083308116052105517255119447273536712187021805140662830570250800634309418115895882956559075900513374177555317510872186987943586721861887319361893593521607074868268267687715588346679576791456647007883142239801190692451460745810500236735237500910267864024466186124206682295483837536232161354620370842345281905908427164269881268714765177343929591561740393143316760997492880097977904028781340233739146979605767066404971429874680276689152019462632747084578308103734119034127375352827616444231032150011551032860929907632221939943313689538975308562139289537504225433974284464646658053169841882066306608180811980314202221411654544266251968368700104874164212442710369326798937557948604612859852909997546568214347425906872429195178220255999993423039175586013411498548221386601230073634260163938690637822708546935294938399527063876863553365261735828343165108011162136570278025495638287944360236919046948582761303271574767370120458211520482759962053747584107035674275288462243315366619234474362764258306700818397156669773206332566310402539313136312333839600051916413134831457581948502855814468755847187317431922598074952033334267695772035958463788104910034333879852035817773162683393396792620959577287264842891704700169969998345180863253027237934035709117580060131472994239253536360161050348110810244915767560490333010883468365641825549691596989080067401627111221340998595283237644286838739183691098999498724005476822000503702310001036219405889593019665891454380685267357942122696265332674895634057433483355324220435949559183784970483219352639877539991949891315078128442584986454608634029392726548498887251868902525905928595639929232888093813973930232948081465671442427013113367585781489575465148656674782372152829748044411385471417131895095701376724698011092603222668576826182669934932398046500059719766157093067208351333035999450492842095063505919132339964661489573745473767975168319824693587760312490934756064917836757736362031898864113482196197052319329350889502407863255856491064507681407906390076048722923772602154182330083810436719118086705386372227818911481921033684135406089907181472775875735813428361857686106665959421351084042040025526681946439666349412373595210227428548185312569713501234429924983440919212595733099826033824337869520215637510136160126056788020077579706847684371818028568959199976971514995955840222593671817817170367916068979209375102018488004269359957215994129369557003841878708366484995594709453593211628193484708924005653325754546158393853631832857907848335132326350161655310670830646986914485823871260134902613850690743308384625873346741107415220772143089511140046105635777897858201004969236348314746395203537800304590823088845022206171550485020994567927909443371754614671212690656379213534826202926168089147786378756698997332038233237881848089333286685856854535155613350324877676711328762749096260710348170058117667853169298025809778093527945372274496959605188592580536661527552441483989840578101052821164263308548780891008588740226278195063469442383815907236987453511666792668969356448602914469530697698369857759847855854570439481084719994654840735453014886868652128348234357713665954419882048376914818774693163900713070267248827132621789491518825690102024313184994290264040977650350760731451574981045416787601270786588660401927085033550096466579189110142365598130483924049311051554178068066097017041921009602961139980265237272482055691279903521214174297657646627643019427891354947658942317948989047852012787558742027934265556969232472072924331244931001667502988876623432860014959617152397483456481540783486395924123956652867081155257775404125587848419474790385514141992026094173925588284283689608056123741060100538522723599043865689253791679968524073255391197052342538659305052616359413862702518712952205618891920036821197627137339253210617566129356636499398648044107795623437175123737027529150448145058466054233548892556244928718128981759103547825669331443889678602403213505733431900535025289643266358697247971988390944720429406312606647055456606686158938051158748847592270293456014313810419907524565004081578796045288569219784627906605302647806825935309912475082319279332392519630728938132089085051357731132233279657882452335245723368181450205953969890471416043704151285908135339470554590175427108981450280072206501365018527519968791188023636950159541461356442747955352999709714738506459813578842358029390345934950167893171664672176291556809749035889965666750162418403575929168575369641167494174877824623975107099005210833398869876440443084509793719304175672783396860162685508047824790345901502345442253492716192049117502957991751552242559384581852874997588378497344645525617747753258111404252257697733443499116373127905001599008733855344197628378148220547526873354128868599816415549949476421529360217957922405338449095983850645708365364271769247727305758309315523792283467048417832175872639572919019318892315540507885060103830622133009992055019875398401985798163347138482820743975099084982118653981811878610385147276017987793886209975313554360640440158991962486886811844675558892398490561154862067050464447187956430583593338258834002448129675265322902569022003759954844151547675943897044599166605026882428277134165333820174633380181701605448710602498799837283375382937078324260503205318124210946453205236885271866581964765235366887454904568442532849905113058494958742496748719107098464946146550676881942648283824680112962087367212608785282256833489273134527027196359052136962251566395248904069269170002098162147809868539547667388558598554558968884261614601145963535867044368203006734422020796572451673362917631819553384606572438985332456875181166888373959863569144074323104134078392413058349243982508530678123789253924650704515811331324042126701847640708111398260396274588193565695835733783951252313820474337537107222921314069897316775708162677983903095073917836562231549090275784501434139438899260065864841225421277287341154961505395265344353056361981623703657024542470731289042482509292276158877499725054546635852773548216965571573010455764104522832200580301575578506014907604291694215466201493342687894517381522373023108404758241745757786616719709417994575016574533612038974892685010193433242501092532116066667706133431194987956520296412204938471680491226042711299947900397663837614408236922112575854842177980850067341012549177995031194933985071380310636969297168846848453161022551579545487214466371786656010778167389041207826688265608605931170489728274316820318232212646709289882959963407782457708430279404713578015466318221285544257062229834530074867828340299273139012924129799914297014133226197604749384548048479082984443662800517588088801064821150800006688357277251316111940951882914265424573618289436968432427862630448478925356600889789323483337222615302449719708666486965452060059442561097568908716173660891001662079694499174623015776999074359129563569670125645437955689907544548951474649338339182915493508349247422637311199127716507973204267821177246750121094267472957940081054395308066401889117507024329568180007725694035920762078960422585312252676160082827874738500887759761159709325290696806502383675979110445029008327784690202755831346125038729264858435451638830748571053406367514428548461623496917371644927692637699104627144865338460353935906802530429891938894139258230215578464451943114201609678948380238091706042135896290106703461633922587893626941370020007202895000281244101317145145851801115584035582822475920263823177307033681131774610472830353280249017614665575108275525114764602847064768422966283878876242839614162374753538565475187176087615341592630829037174883698030321880700155815737084689925877898031783955385798026746377173542422299854514394831910485902472742108485207285611394456243516902276187478237892450738324136852379943732115217028478679162263799734683640848032976173970808898238691696297692377896581339225563648240080480070377979150046934360296104840617259715195968125032774584844069104632458862901822428687942691562690976174902044181684192983162624637642668663844562857215356940284744616355759437882748987507802372882045043994653478618088719561098146314565201387227139981058639664187858543967348778790193731473253797543035948936369934559010845821065930958182570966333556077201900805948781813120320987291368551668231372730219705800162713819738753138074465976787112572934867495790267376475117968038626650162883400697465479742293214863848053284352994401441367604869216330549886272111833846163660532368116531391336285173401217959362381691359189526660269830158648748850377191848200732582636516630782044231506988429608118265466431401580814042906952379362560711689613925741263961952310870512281151990848635432605269886083547167199139042076798539014219428389234467785596672109664439775471233262765673737520708767973566167570431453496513734365961433286552146909238472208895645278861732743042137880550231788796595634091058382807085635759959005886815552038372138775465977547956974031727930441674855420193927101006706646305114944072556736214632776665709295092614589563463036720976879960012777501166536791193387445562747209119836216894381358023357149638400427572039359178613774762414369514818136245739338652919798526903921273047626600988769288240838691470413425407091495190758741792692306142701205535083340071788806644822044813485490157719330604836861628634767073521626284479027922883192291651822110740952844928498532809408234077583351398578890009733333980170128455373806128483039145837885256771738521241609270953233313894076326203864343695941324651387536949378810282999643690491489108323259939858518854958325814741936820781930820853202634641943791870875162810333754279303840732525269231764712950813113923367017808800379569092118938486623564501085788673753620052524474686492750437439284113825446506695819243687853759926486413758765956640851070138217399789286217810258471190777145381733399432795631025010034190226644592344080456803337994671690367370130166117068106412119464700304675099461442212369212299539505131796741973859299049371110110161813599299214956178853152921119853745744801694761134897024798983438993653469710599010481747260117892894732907144428790612355562053265929509954533610997810684288991470398715185405822881500420877568587130508213926602455910559856728747728019707372349601760138619670991100844649773125974642506278132202074345978379998727162619077990597707373005291058451211752284797317018649276560340962364313838187630638649835530572607473196641397915811676810536276428428757642560973594062829254767774330597960182987841958515840391978604086944917682559183313453380953546441704404477264450058863412145569298307644322081545186600014187591062509370858223295109954333090171591717045277928908345989519544324271782872135952983231388321771549872018625156680909977268900881509434534648341508812202826263738280156517078134365498619146285022730309769936498628314542404684320920947749367854151113625600419782569006045270283842543703315716625930665279298975383775496538196335157604680990495884303450507181639849288041307152232307077928359557479350036853014482893720846898100363778883536376200678370785471770997850486388300891849525134829341727971758568318003948737959346659175103099172318149451884277680822855182413653322362638064176360578070801476726662550720224204986003253319752100271693014653310066939955029685494561193618330309863405917742648266771917678634607370171917459665402148922577964346798411875508818974203225409355935512247291625809930338271387487929939613416589540837611894447910203644018137447467062062362646951698903477602527930071002019727358373960166743105729564806681278057098140070412414021892145407681223993026811543546167635465350697805727180205922256266446851872461252915590243751992032443738876711770735958794259539486475894872287032676213841501051159439031992271673542631866790174147844886531946688793940431704932261771231999799619465730668179968109072045629618693757055538547114859104484645775437743639804587374063352933183789926391301309956165116092186539858208637641479653600925812577745357476331520521475236247083204797671865912327178741709981615349875108755385648625376172856934955617792772136347280581938864010772086597176529196354895244069490684457125848000906586472584268535205499712738375303587923830097277547181182572294731902403946403904920167712258864747693095922436975636020097131705592072566428227851733354756289443977273291059724847342275263469193306949740247533015208029007397066743717136506547782774633444224957385325706383126293402396516001668487163925306561473306870009120588535395226124340752903478345735346046420165902099592756935057543952976982593650177232569914198351411398200569878374605233577493779571023364366455341459332609786220230083859178752301566233628702557571491259722256386844005508642554140259456555732518013686069967790317018897985552842501691154456533126738954880403321757312922571444355032228856235581368007642036630095762793206212072935358335351823696503357018733356206639469220318964706397349555166364396294629869604921336736516292390463694468223180303457361464904143982625889736351513585054252670800885660180314360537164638257671517220455340509474318028486219305554618618832688883838713388954787723834833234875660173203803483860893195923506593341459984662705083125039237076093872977874018294039670371310993297297893706666071332051006515437458758979525447950514330467588465631772248693225583317951408968205557253091244473524547893366460398133869521234941312152857260823241917120805530730820380347125075237743072967872300178703282171650310052004745166375287103089362882902047870490566827749139996047958780771070731679280839743354288253562879574510323552732223935101785660561962610240095790781487997586860470114440190553118457955053716495034569445506150541419888086214942479315900363102461154233391476202770123407834734015623987841591296868924955855089148758023351109225847987665272802096247137645095189938031611687872339626931310756769572952409908222283787669882360604923461816669635728776052367259818095262396946647949998805923448978634676117825158431216923734813974762488394596408384488977858119389560156227036291900325110156318536520711570619699967859150282091335917606046635262970385790028936463807876035667494820907728087214504297660837871662944226091959463640571121500490330514596987203093017967856644900562271023242399838178871014695930225676157022418856145478935747091748897264927995116957669425347599466705267544428654244871059120737867534467265219805206061882803832816500201437791996832322673364275340916370759482828719673915196220803629271957001879786271439661988741496808350720343037075248389642911391916117918282843997569241804628327142322462673096827115278305849137349481852352862097870893519147312038204268580514289876522454558244752140122458425374314645715779256986411045774917710486302853861338363931014255131759187374515363744146439929581586438819192991087907517249335779823399561017062892458277062053674737200385540904903910007578196055316699668363882026718288096895604606388450628176492625741109752782567420310333731439181295308166783149838620103275105114556267439467174249620478523288531635014093013850258313525559235713196524752434383981652505629103925719788199479141814700147877007794782411002364920423346196666183582910128286882620006487436640469459827833100997180866211256668808230370957921876405956415961872109115760482961762319558882184421446236899397590027128382682434834241265875940593270828959179782444085343321054483187156437500895090167864626146352959346654452425759456715069231213224505943738753028237602212953895162788540078406716361666307410496719372400282107226534401637533813832793090272988095339165778088144557924607760106582592242418700270410108868312869952466722858689878017536981507635244102115247797946845693597183286956990687511996881110621463350629074258192836447283544935603921808178319571003349961462086176075877226530633371956162043320778111526519482935945773801031442341705665390475680558320303032165033460880165012131608620006635719024201691191113024534158389740769387382617858713546401592180132147212109675699238205901353722290506350304227736085362917639390270854021732260810033806567445957492525128361343143246940725748832112039294730082745877778181109134401421783576852097802794779450965905323195022841903703327983368492464433528562785041280210037086660621232324650266861631735274789378196784257307426199665965796206384200744833012623157866930845851074796834362019308916432182626109111935348785299147648282203728949242753716632264188136719583989501810519890076651345616854296846843030563247922440560605267975168996310221161044707753635676105335450488208286476764628459955391049397716258963799080954676424790615435544944085639878757050127395668131428743120541888616867192439407951034698210022080215448984190406715291649931501004503636306772207043448075885713655181392549556194761049570205134427940489803090437162379246893963885426075362122003241450756841732948385542078678834434595305530438173068440349079034509694916366335832446223453789732283213711667406996859731528542995641172780863458655614215297210063647943111115291742702022652090636670822377053566413634874389531084490302578883339184455284818765898707030247924661320760991584103003604048220779878920045462939238635707902075831603268600120047169906995195657623009667510469802514867676874553837846150557510963007746870059023587514175098619934133155412007069163556977365724140565747066074488360832696927935977929710383171792209460709120124818236558642798332780776397034977883029109846184850012439729383971829637656362469409330403390437141392176441703773161057408275985110152574038455002080105213219967750153698249551463282807380022092874140504574915097585061081194342476484562021976453001618854079192760830627905646479492930175171533558015897059884223328613998341676093774500201280792346623015729627284812412121039899425553195434673735105059964477036579928513973181034521534144816900907690338039384702948634282959515167532724990644775653717226253445847402526851691725860719538200478156038847692629697232836967950870645509143876398260805690253539100567551128910623236505780452425031250708559632701103586973213953610333378374451928578479452452253034981397027732466756422831089192280032618188073111690039317021924877272422042406655129910380115588753107955672020625759658385416292908592017374321715896268661927098886553657890334067551507609438671841600327958770518392270988251552522877773996472200803219109272297692655883499133364706947482736448039092484122076834226105768279277411838811101782530918592402961133064993532259763810591139232019579239003131448867625579769024714056274460130346817665328102934094330748389408004946237695327374576363124280747952464614542021331738100390081722220874819017838691874764333834900937278407066650874691423090398792869106216436031445798540634033650690595274084092275447544455708234528365782817080027259806974059983918614477789628793103791414250034678390817893701308367453019268021879718016608099152897457311994812914701374823850913836232922941295815038155323745014713569263530718178255432557925406907563940314990322252695200176032085472330472005554817782829718584292440812863791979568968553571035240275539930981935716792383017594071525442000281699358943522239679982356066940252814140686321003981583774387160122120887221441123858817337431746469493484216170862255714903197733516583992371923930980479060835357502681317956141383307051496753187030506452316185194394696971227588906888494288795241645997909822779575424489195916229234245412992220971233297670272880753886639716958547124431741546685995186655286015044626073446832073010179273181769457711970537143612085837705770568823299149344543303735326918745780660906360251250689657297552397428115332266307473003462922262544297187107325716735479772680366460382076956774179307582220524843379389128924628136668408846170962125795710736189681059789094569105001048713056054807692904034319162626726499954745805536766927306150704075831291771791208566837472979255912892703268888844323120109784243760912668491896883946214632422094419909438336466662937582385414329484462376913883664951294246794773725301548076237177787001232416169945237407394048019083366519634340587635143151001349994555285235195233778723977088761816026140909925947258394513664946735517090430880200472999647151895462525802449607631595458909861271271024969318652144375167808402333487065842731216994531642445534291041438914710129325538830471478423169085679938333987822462586231913490054170111290427104683599333740861668524528542654692404877303009153116259464382659927482036440757937282537203760465778401728424211714400346226639663683663575454140963091027920389886334043208336394522424071020319079240003171063587276048575002040062774612333146115765635909407745033030516393058960081874552661346163107831770232353203852299551606173321726773930139884673037926324179179654801547196515324517412828228156718413326375244306813326778298960204143882659078933005506439444414920588830661729521853149623762871039791031290498238411627621107186536615593290186510585471397235641329050454139129962122024276324511629146962081561484554637975576116158319765285430305152245945911632239647670031180656307035853202181915180101428424238399197291624196853311707180473603765599423519016561138280286419950918151150013312423876111302780533385463785690074023045028301991972889164907785303938066586637140845111640657712945811264960715820871971229910286511746999943819083722437037552089338565407546496532323520637165713052175441870785305831344216933022582063773550486960562194292639286189283720904147435477445713213713539627395760303835108727481850847950613947323075604511498881842772672261845670824980036507531582080582907746721819983425819730905317882734847398859950282910417975389233317829084617371231169567678791482907264738334310985021928142694983933716720481487896244289562727664914980733349988005084337507695522399545147902060712528550987222433408692860903659486526004806268754615005961762342375547655024816949410479681535886043020579144184086990185674544749817648838847489500939092007945807527247687766287515283310491253444598045731188099529957366945173779051164331571140791967519983755547191588765468769857691240880103609095607851485201140883051863473063867005974272776532816083906178856672693691637690996759184720139768571715202678344617171164752624226877393137389344393830499302087850388110560087449323035088643009082082121710920745137135323465450706398265675220069048229003307416874727188490383490363190739181871569819274153127047035699462342714091459420318299889730419897773734302019249017528470441140161178611528827387273800900658558359096384244029085464145073610394735053053561051184982485430461456865582376873313243939023074048639265055761931475849021438670275871381680372907142005165807389742843713950348980812366906699335671568323585028234825336012587362673421663808357815451477231920194968891350822014987108480025247531053908098889616508505713317100967123563190992097743002734702170288940888702322808644614809187200789965535626799410576117792497961605446709568230625165817127219121830417390885034375402890610324537153631445090358612868725584953420435802517073998164850309112226441035874109201445528123456261712411002290226304402792714685120146773270934741264845572066304540434530423441203215263798355990157701950500379686352635639934191320000038453419908683822567449474023739619718957176972786059039306183875971158841386101939470946533237245707084873633154268189725055109223682248402910827520092461583726115028280099744984747657338120529120567290718426188668972287174617109638057112940960302593563250935420493534690035153385902200145581717545881847191430536750481784852892286512039326090615285675113827787837826076274874429576313053860231035283760818817591029844971267296743250276750076912312555258102704982835587181829247256800137608593377938801774200201838650168393695471399843575617472952893121351276678392916909888315634401024777788917748739472406606603424377247121843145545737541199356043938344766874135950172239552950521971371564554665473260934659939732060354125638541724224188065940144995593170916353909978032489584418077884651670141123023634684337992442929422653656187523021551559440400350260130798051631967683701843905774398549593386766287100362016599617418920567016417947424329440736055867513557092906601409585061315060686833833787768658085413730695849091528741173369206091333012711361081186820958229997878776646143256062581183601284485537292630890316718839719742734120090016868796988334552209803781219512367048567236970762046295334266103136300005438172697641367966866539993708545113319445416320954428215563949929083017362319825733999653130118943155935104836209726799075033809468258679915895147768358916729246458861376218769508564066413042627323156502592278814295831573023253792001569337361974092329366177163408326969995029916779610600355165210946901690286665383019037182465565049904000661881702603270346133210441331009585352539419444306484036029802123227036115620700871666948872781891738471717239067528586256219058526431596322854200949694481792270397193093617440687934522261957594353790448921560371304705449985141728218178019700946641690240180683335623311479711561870283355362970560695551825400502363690281861057472732364238797831535404137982693495287085498405562567584089083322400511385860236891546552366777435152349762717097682747064837894243455292829000930277981881060350396522162207860219591812600179354657005487003854143688579356374876143697953483504541462934174697383711835068044974228927078271922276093471909628214135047583357572725352758256259752569572731691764284757717177765573010674494049116275944215371391591724467672481249228647682766482229001012861353571460233344711003182441131146643932756054558416356089144581906972330694088205285038152078049738504911187955720160449657980966819051241429559351832295942147117748932544364824729637080909415167585439017727802400497049826496644364729305629938213896536377945176954291842608732125500181639470396284060286738701645109725541322515516643359800422765211364312879386727241393565225623470168538616758947901065924380544921887668917552076603739222452148845637165550333587471148046116848839073819637057370138821077146091583294603455491022612998515133136294251556639346257591579626057536541929034629633564237999483220687967902530588681805978198014288371251103037197528078176514840948772223701737128449554698151961960428193900553886583164197794011597876315675774050988117878406789717346136829327544623408967309754097790297804394026766395429013769082987470473026941175625730425013281278176257941118924435704227185744965107027514229918918661642731278989875345037225545029357742441741267880132548963250030055227710338035821521586838709141804826486458744464292378036719432444632991622154000434783727850850380997663050222246817603907428526051093502371391512218440695414182508677151009367097651858547397627845798237951423124567279604110013544552957742024554160991343786138494139450588631825542585615488425856443284206270710038907747364743760584358858888224881385541850231616580832653804001244071404616419661719746206089207941980623284606157622473164012525674344863798564194204051247613356781123189715694733715299651901322359089060364060887925733383466359232802788257717439231550275485723495889140353733263365202609890912259953865022671285500273888209412226626511493516215582204863533394149640145996844558129671959638933044494518877200342455775840763912152083197388233666256705297947480759000447144603589685198900913176589563500918942184426664200044766757431875609082246995362587899860932176647471989300399500594842030431087455957862913849446077005382754661694914355208107720804842326734936421940736909632743867430652781204958404110357346116403382011610994704102497453990536953600326304593175699512358829845225407236005106530923994484096450560829072955404798285776214391188113304912674861154655175301197527229867823372990862285646144826057942406238721573943950612315461940742749105236474796408566624982009903958732273445403778185409460358125752141483572053408233195827413608265461460748032972628356237400751502645651888475003777085301862928619314901685520147649908470307453803136452065239798784655705629358599357362058313106286034083695106396068392628887166186784069863474318723381264746813595627764962070125589525766834678129451540556904798156390288880095911469261547305798039180021154321582594323711290158539549649901364833250858872991074438753861348357400579876614916395430466982956976521772097777476548729011872168288700820360122970181365850605741650580577875399429712641318604635317126519744253314949379403821472068501233145527069224991669018149816835815755641485550927978097342107583358989496106713715702119856918660843248622249814257087839793477694167429631669408903177557785281076864606917061834632149209123212705145506165254750174325706336650569297270566477852603435108840031631319897334540598145706232243520338098348836181225237356178993549797778467672327452604928268457525178478062578645296598163170181729330705610320078782986284690192240365858426246628782239870776913864892834309537894864764764023249061516007242799450526363113140560556488121098536596020867825526112402268305256298106873261412626164863102514188802153354992250576161636390449006449018268043555800710528123707943208464141723472162301774819701502826050130042203814194041196992226433555514273473608004801053267181468146319868307310983233823454214955950085745044075387505877826100708088972587196665716542888345717153483910922961665217713695499807765774910668495877806864013588856560102386131429863504950269581879113627467472656645904800188584616523926380080061818820719150518099818054026286218844130590534257272199222037494966701666782159778797149329111709897184853382077921321507331453101219169434933820582674391316951199590623092051942504794345686823238756601552683469993509246262753968511925033852688794531767886852717043752895716908185173658722112386187813460402772254760007697865292885885126173522545566039908869632077246075387561594282765460188881738997266312217157050237592143500169371468121407930668204893308085482328058636218991064957735672341127443270980141648799955975710579118709365391631082469363782534412400330595552674792036140740304830933510926080365201191416563547592320204322683491156497206818052172545680241028310975410652492366368909270700430557339697904970557756354859098692369372712683174929637982603308220844789996517307351782311695702440139162695467204804266340412889899892687963811464311087388140952996161833981369279262391189393871234771925936718251836921690204557801111063967015972292116687801873605399261659690522812323030432631160875385006051636368435328033824573500655731366851014972094870582684069586149882886916837677694426267117949032416312095855918398796850231262920076889530760205032963677989205607079608416491672208911071409429266397917679367243849305292226689126913966068155329188959750212413123185834255819047076924423095828593404024049006580814220265105454905343785672633586412913928050922734192766983904406611241366959215220188994273678695342008673965730755641452924821553084716350875616550553930855818998443229623665455427488137796086072811081772522378150171350879668687472383373871201539435736228074524807123961634123944032757157431329740185976684773432294709443998782851734638636715032496553604702599326992888147332850169583362407186395934346674963034355324525827919951063719665793425349681481584052893826478066460501804021980644781089487870395990203119460207146470537461722629637640029317680498630793146375688788482629563506328478320114056310080061716437983071447339476789636104910674898576047745922535329525700372103471762221955992767054196871465497045966106710977042067787333638328278925672653347902003413351176573993379367949547354618640158901680921404567804638912160005760147951861054192257207293486592158416247744037653393344165505227122966902286036994707429688165184398409783680615852522813118302297747139719478411664365811445405449747648806256356200708882939423057868284779032306590307805738301110717516551967349423979402290785265087752622981934825214371674555492497316570415327686320891822054060416955945153123626820313634732899508300168796203415938355595488863653729544477665117635595425303154960582775410300776617223527794006070881497133537669287181643525404233196321671308035173604338934975848844167869177654957336486568208467574519485471450692167651877322392567722640451411506159596249589450539165972398639268283944479380716435523132220920743013178572333330720180589730307173085980301160300945810479652766930216397152528663465620135202275168076705156611873377365470992915863546597551616639101100341215627496360242660883451199044175930159742850812979222385177498072509021786372687514823225630971923411569916335693368168018616347826239982141479298600010558722996643789789843739555347115668687878940414373673477580230535995683845854945430862945376691702031540501116820118057066735789513277341172613758112501369546153837931866425959632107079785910363835108089517311982763408885703191253842616752870325834791110468285649787772358781431899450829823714366891217120870074251240410176566885446600711597805498428570881727928507683578462999932522257916469243169293134526051654349981911538458712738452989536435488144821459711574902533119202126154716230059321693151560706660960046568868759134304891711593231075925364938460055424958023416993659099952628026788147378030061603268431695140366748793552114650179754342123834647038954424577783959410015163911031609271332294111963356993446226813117759271336464462058322518767164368202728462304982549682285447165682396155652149002369114533936936330075358253272373819373025070231063312626629214760651197020063053910605590172605696623125160966427659438494298218390258338128531362141573923705321692485751078172724010076448194092270257775614939224780953760366465106223199682772587921840654162013787193133604408142082808455281120640004187928271545469258471466012472598108356896395500820550211135170886599498964986480829293975261586322871293411569184244999566312462520313273644962983249423563455253424001019164231051891358798482280420984546023722588445433607871191513631072801169198059400607027594999619518326721971719898284409467942141638888021593489732972429250854190007195514371472710372479029725522546390730891333249017674097642707348921869266725326768997864732577773297160642150089450007688695710960158741981006361832489209575217741561862842520527753382209159361635847125296471664574202546080213235752727486629768819408288303084258413232080574886526856998404578743230704453678719448501603122744339746323241430020035084009238417312122981340187401523586816275057988085136705789652026037218935364750639543187814656615969466108208467210819776048148624782315911902446342082954632293672125265782304402802303685371892627733468012776194078312959545704099060138750438565197062571442045089168135444327261983837046084416703691022699459068285361064828069408253467646622426889008675160308491039750457579427654985780039008290265544745535176589920822673380196198984614958160047509263013514007146402177313330597211164606325045485187107120660958871282120405074180291416943552563942317058255747809369973952990930656811444513659269719806206799712477534424902623420585214620547926827099321396469685446090753673990115421920530859013853379415558443061022955123386299136050160127817883375774029183669659660167779102826038176557719526128339319420113560804865812053112720433494775819430042222356252249212594145339262680733014023963463077019440712590735903239921431012727716716576675371026991888714019795507764979655526654207518198768026866824838187762145850458773366190895393272571139920003846722109470350975011331231791045339137442950377555276021741873674953146930307819691005258209259405958638333115750237016489097999536097445292155594073070614599805680590197348583961189696345511402300086397771729249245296210037204487716684613271943774623923584512249919902352495852391314706436928406677092819089478348580869768899980452498787188389448393304746079569939022219510487390167434891745266519842950258684707559764867874170934611542412625675254266879208021209781811212593289006825832381008374026500683675939923369824074704606509724980250653184783872238537016418700818962213005321591574721508251154070827206805854187128334159802107473000413221126394153432459506491639898271023430605968813260689474149627130410272871889276931809328411376764309996829526459346049701745570065400546056967814934250658490396487610541388400254858674592919473688158930364393670789290871727429109110179947476418763615233570229076169539852432065925237077399876521002465747782942284555629369420813844458198506389508347017675887390258935933798595055584009592431713346188934669420378836311860183984248141230795207218331754981768065492170783990133020266076723755942685255581818749666798316235878076525186843394209985796801127867489055945499444325324743109800785729888310449658191067711178619695874974568658636713835132686397425001047409116255663967020010791812666308138816611812805611246273310089314324435502990628082317705248493553079241767717916182375142772138039972478590207416794773475009328727394346215342429795590219878830514070138077680021121373816749049378736030146379758540687953161157216375224113099534726709056363380150728254384867366321137169929349660080057316291591614768205650754085820285157894432159177431100883574488005626310177986647089595670049209444189229605118185142853012905015825190986850951689436919902296965395539380455096707997687506295650276285786569856275135725901122579648064802938763747815250996240815984347471625312082749022349946621373006621200868932798297090103581475775513976760989580850286606538290850871232810156526323747428434330904682543670399373062645181623973366868262696522168649000166984681027323983031316420008383222765473666310663555123137400384356810343052728239532400686369904892251636973680008116275857165805879235545988868297635901557380746048932177763539636523576547846789151121351536774562862399444971321920099237781220740928278903443014187421420784680632901247981082102688429739305458520071319966674741505852428487133068325776424423316794082503059078858525088668345174091855011826218839654448725576049793487707443966052624031173297866137576547486082310082996310581699032720162486436659578952070744003377648967449611073021409337328232690613862615208563457418781036297887116212322167920950661534248573659896724772358784610768397196185365667242332605874774151963231915253211140150267374398733184078340306246418213809838132973473985890299413488303095829819604714264319187224514227355228068544037555816998549641723459013282316941737040750193139437484354031463529607280185017118292156416403303156840300192842912302055839146456831003671577656947265363377710931318234750526844327440880267747521268448276179601096718012516229507584472302876553223934611778264460458131517864601339475987980397574178388533128373544541746628207658354278677740713665881794400933720347116899880381476980605008684287850531184334814980589327425026409710005555591740393394278458173041654170380142433198031269154208092875236270552472367632070994650390256401644922546357481147093813883332897789300475933269711275964473122942220061170252368966242007003924870662515123701628075896492027691163328832650150231746722718369458304733907377814812874770349732491030690554073493337946640786154640002376014365053342241878467784520204533236681158029431723674887128448036369563188871408764922503721431681272503743881166446891903521542859256003953889479464198976495381325373119243958522425823633972707633993558410948337125367871638429186659345186141791227362356823752944078632981530490999508788969916732747847863662639278359951287244728252946166167079278177091158291634325128396429139557347545867157767593628013599694512317731356071196237072032662675973704930943174977536812239698369452853700616125994203895555413975013880965523955048914001351421739145551915199628343916200742044894691119132283604802774463361023411672601863355064633337544056610163884605737814667569859241909045975804185586861427142412351306782273780926065185446519087853560037090602735560798072294396531610891475968423556383946586558524894164249501827679526573503400865675253505022718324789528406398682542293592841536281268408907847958306746517580621320768970585333117604802338700231387334140368354433063638259722335957811323089664818268222406341053703623657513516328233387308924126731820241388942157399676211647709153713641433843782291512423630780235133183593833462115887986269275192319045525809755018411738862471252299695674115786170481054807532451260177772887655973088112154765370228842677640317644006299620905940046368264813549518229411065378388127176658377344219254136954651053469204876408549386990305607726457862857395429078034259204097691867643942494635324079676097832376875209757617033263824541672299019044840896015321833611743984347878512219617358371631448549010702965111097316756897894376187852251025657434110143664813074053347755764488726702435293309530497462159072569168760262624099866019280244665700766325946119248149985228796545143703470363105841552792640355728633957738927442395616277581313858642028683548198683637078290533549459633298757354597263625726040971629268020631515284730496522791902810025812886669817531783216054973140014238367630878487428586612454410950542955224088136875671898242801260892887422217929238209954243393993908164407366941878071977226112139786996874688852129737164248388834907790778402666998741661833041708892320925039514905946470333749466333477887977677084446102046218427726295664033639798996694902207159435283047694471588939851346307872943110431094911670458307461518483919743271595812291088541864913044045766910163537018428153139455838680508812877992815318609830327385895990229180968995925553211484552134720718066368984042038060312944775122002483511502537240486827954589468270125079739728328691969262928611342270075029757440329267429749018363355954205849374937676455421466322262509592090781478787851746220698427140288784226129496071263453618592444637881979720228569359632854658316547879000811443569558795809239122505075802767793985428302118293567287355889553719211528586470456823878947187389686023903058344375287595649542157814362809132526204756260436336490010429826011894377577319300193571038135578703649505242738887716432647073911741994075018238709000988328177153205009975922589515183623506702129495257597353442227413625990297918087879282869687753838045206518382287496235051739420798596309747584196124719219581487777098764787003131779703227265806068937262496880701074388532327799774627104600415697230212871526431061662767481236315835693330963718303194303962832593235007729552044333949552177068307848057920095941160518799411652663578735110601663393986795868387026947058860890333137903303734920953266376862218080518881695821954086105796250351300019799409976371168721235807674636530004788806618153841263997330299797121755417544247938207810032072109692804760609474123207661740000229570144358319003703801523245865374015492140032814183321714966578547158301123395451525483690039963090689847390495015288448919752349779221396612940698902820376900259943787099613203494473700266786097429665932207947451617139245171935951527083071133317175210045303504187511176751923409621106227599497150347149651430058019146199857781965397357140358464040920049014892255751745984286861974488208564397644525266227131768348525389782471377613963818842173048372986257384120055856513875934447480370139882518319656666903107784548069057271545420220394718398073551218815687111074559605948788932875802481723428523290529175074582277488560939505120859103191693073448435074744324945881091098682477001721511989632929236312596896648565066581199466165133057425207530813631460597835492483295504679618761808023086965751449480479784060638331433632803148832770034332465494001836791512206716510386998366735510191428323333982046760913278333571775157772952458993886056577051850705578808870555647075574805412292324545882426029200695671211962127213553240832105988983324217963983753592225848184732871451451405860581682222935941886804217182419035320290732927665373719570346050383566833576727587628596935303526131466632947642557900708320155008420184075602701799190220491077622530854775567318584145792602410154826029927124300392433853599452632892392704010963742791195806884540690779477855510656581009780697185228797647598658123931644492538278164504255948027833684346680188562562232288495456534154702858551663128461541031196575955601477340601687588251055027273780672706674831214873116379887641040097365407581946900205730239895364853121009567514281935864845460172054073256202855055539133826658542159840834939858960529670816582819794211568576737871924046990848456511973591225010770348719428972461790446412420752256650441404253415778952905326788283872256350102623219582994979566045642807594120561389695570904484120528947871171047571904341732199504181955422278174181826960289670891013839259053121156004382086337714366481557369951578062724532167330158575907475592893659138849142235572515110426115378540879187544474665732382280504152014624947247827202231158721447777693036221574961724633180616944936313078518306072864747146924805924830946027230495923448369272777527992179583231898255344322236300512816891398326409241522298563197140533937306758780616737843641777117149801814018518096995234263568051698131535949252078645174190869247370103698111719904748629194203611253323047263074373839488863389773793499082107439413020972449400694803494394833597865577849164655926420196907913721137621973854661466730145914659940011506123910968660954696354558662240696295092271185794303157192026913417181326735656442684445607238796528299791274010083887109785908736913460036097473919460903144076036064521779701225952430907230811895603059812979578844558039203088098970855140303176582749385170782412529107345089695159795302061502564591898439545489573858416644173670401529979962747364195833194459120437557023933133508009408808876398621520202812139901870782501547940322610097720408451863520403038672993108315976791704072467713160236824123602903279575565825651862285520435156841437833702894303182867942268985036258936199128220174315639060286034802760902030499838247066764796600597639700225510792894244402539170057976526102955939292972193572186942042443338825056795896957466066167849255683654787279459254842574469633741710268110766406550928372296996869280659377287685223514982225665155173411890384887611485511944381998442146916745289244438109143494541484983809256371768457495635248750209305570740971438290510586528390226405220509918133107895560185878108590344650715063252830446688278258469219228833590661827932700016470906109466813870093364798629178177830706992546510697151875584891585088109262509592462860301249441538747909154986407994291460579557734934971261534291936104351738087612877869567205005937211071132851458833909652361226110058021131694516646086983210121738857562999678759131872420693711524085305996907553484176637184694382753553818560647045191584476893646673880961554765854775040362927056969775699392856990526929408367059576733027473055864322736420812023718467541358277256579904326969073047689099539419605103448814594180334711047119993299560402326936455183177596842648240249628633064336459151175781059616525385646933877946320583388036383200748429621110157440353525718040304968258916814933832676731681917335069124261509083754832196876977053264376385369207040045768474900545525905819191532867059101516070212488976114884279494347881506406470793222538754126064154673030148819987603594763012534699497513267380772037201215370782814492318612347403887036954800557933950078996768023124994478685035915546404941430204396754456402039252318262583435661303176535965925571737616169820462959205427695210840152033752633696832120820807823141661731097451889793121963864563183580067848317535931819713638288560880139266799573220237459990862759743613086680354535652701248699476068548336407164865156447760027707459542453557922655097642538681339827443202601304955081129808609642094570333861567873338701087403504967874493687695792316536957106188780866794404915413073532300791603007330148049571222368199338075065328596055872141136572690887678341605328856555827796759903793409470005324741378861336423851380414860228369208104046766622006263110500552860042947915606324486546347818667964602778601109736250121728485392904702358783427790806462548026492017107274487394136240476554007240663999561405579001932898682687714869279784109735974492789703764400628024433724122153326009509436686450135846836237992614573577855560786729256800701978748252158918223014082198828856210818302001797502678088234194178707916782619732167599272839829101278623873405641978751480544481961403452901916504543762562057295823266468030681011115383374576672395820789908424348250532223859376449206658219234162301920705619413731814978055376884180689150244058733202532036247871400123238694303923563753719849279085590952483167690319114280567200281315246230743848160300684907348840742448999723997222690097679893750110109748905577533924687556332362177110587801909963942522306374453372984492015063354159781748385651070155607336192123610050228286058005239157237513338442779725330529064327080894708022732299801888084154199670632761320039746060550005771592471624289756964382261149431735859475415208193782869135756828012220236979101870963500349295870929094647710371665161679507928490425854494682944073327046038504269142100693143885037004493274537976279278216678016532031372343740049540857555795428110264542853119355020199091068473882097206853729009769113493591706120368500498871693605973939663439708884786090532876336675732621867815773271269567184040484965739474762962551395712780507435500514510588698899732790722148758183547012638779745534367663877434013590863593255332420803016140388251035162397399469013913560777843748791402446930702248780238824689505735099815581673937456805007473278363239425535496840242811898541978039496367703796701718604259953210298222377852605281543528395475715796682828455408942859013301951632722569416025983165317753581508611627348836070855295549967148340188790043417092966613523884341041081385650399647909429792210759459163410654747621196955060289168143823272675167110313685090244455746417824974810947190592617842765927037442829519948811030444561179232349839169792353655580250613786306857102132972131456377253440929321479648894783942280717078328153234051809990519590692414754099174103877327811380107521233330859712191953927867027226575662575642654808396970667122469427967037699327192517407659237119757617730351505166049512529084260736656730252397343360799692396346244963472231526342293980452277589970165949643129012096055945055779475846313896347069425943553689638561234371120228865937414895121451854204848193889443538543561149897385046424315885423525138398320234186748170305336263947335396023489511883634746989024744658121923786562290594652678712424888414776272786990145546978747023775042159472647487339182892859754531684841523732783775734663990429292274340360856224245256051586209074030970857269884367711693980408826413350952668807517010123238619995665157192157442790368327830923726444360244172931731890477246512605198651359951133116252999482262247724920678285133965973534437147101107078333806371260497007175281087594354351958913602554860380340356186313992492081654960438734997279232620550393623266953665566057789854143356764179110382953252821381036224874875346726285575124444957607992431499749428371873172145116099877952515910548043648178931864290123189463873500901020833927679493060528229017815717227184297600720728807254064512471646669904140596188913036184723687001785588520898373789462635875374163039377692398452550980918787404376253519064959509975962472515775439212346561270916658174086133262269417681286626059318853776231373797677659998782188943394389880137031560021854206912628358733418351466857897184992484595626160798714869825959128696506381574083527082613886676695674151711834994521307708282939188981249292019265859328809183691431006225620995745237885725959137051815460470043402028669357884988086997438854235290065528337576356426138985356599301682541149758968828622225646020049120065925972515890561753447936812008573061302645783285393126014082462277648360233559775258316227598056991918577804225494728577392584968545296932030522311972681834490247149443633452114880576553672084402066942384439605709461239637121775627860312473409943475701711186028890320164795299136922237163149998785160297012630353876415051837686108166984185122095311110243520950118055287679733543524682672620595083098125335584410933895129169852521431009308661583515824354503997827599603062996436960120328128829337405625490585404101172386929590403072817709455574447963711729547831226229824797022759233029963632832887294752081682132082364310662540340756681335514118987988320890935258358434077998602645513912948813757899696883834458522838905610087784396943472889267887471465480217295023120675377036919187495356922517263952056174430873457579682842212664660983418047234504399598237662021625734317998903575933233003082145345166029231712343684999732073411739351034278043084556951930033637300793301221017515550032501338059172508943416005742199418296647106934218779812055359801174996506844919615005870178401401745098119507568892598619894435576069309787907695096270835549753420226536706205203041855161869232441325496271236081784196404144674070051143013956006094247171455600180967775875206252906923484285451912744100683124506547446830920267414667825794176914814128793088435083903237158168767239843189088997442749446563340794950280490300635673077774378758332048353337418059362015745942135488240648934440005018807978670620212991497586982930287103402514065121479490320534519190475432469200047795412640576734769560300025314710987483644604304716310339090148073835391810403773396239411703959063126736398585917353182564577766666814191267804448519144978370107813139964494807268208245426457075102147409636149993956967002313877569591394812625261619431798589646023289635027824715924134359617434425285469564684411200142819894758621136358309715643839992934451834573531571311359427704358691132108078994380166609752743085022507976914477362824444434956459664400722147953169810958143570274189926098110551970046417665002755960466011460601258262462143886222262399775505892000054398385493057359742539844658122907183942171838709627566771205219429504750059510283129419697683352137351370422057203631623444252776187750327818929137915511741500834985033985665551611082222146423303258139929500247171142554921295766125516527732863818946004085284468938273326086993071455938769235143782676953349841835295928869343158349980999944383389179847177918671172574631115740615390369544246410038586499780649882539593549385006800720111858447063812696292847500837750629678586993487903084069859927651540484780641534060063878434903105074449419083876066912413306658224857391505027982021641070565657070111800575173180094556915303184559032603957066473421294239333880532808915692896379391745081736437930239145759100597789575923862519125905240878115807181694661284742399829889052801874256644960547360541923129586360107615443971014946030802519331362137045445602082431431847602204638839383295851253417863633303987829885045412026842721777184986345925540360691046639358372048628828456930962610549277080029882874220070192507393181376957766278212029932567069333096765776707090740262995581096650172555304058679271011565053739737286060348284455329573391666160309471110939932822428554968370397789482716506922042822499778176822093353305187122318471221692458819780685134091019104255991641230066938368119962288062634795369587641365440843582187085284418730245116461474714772957847860451931024660676264303057803823730430634547118280869460362962976381936821463353193330157678292542669058436452315347427064241665052891199581017559700417750523540349721012737440205754965594623312302669892001966149884977740662700516789926366982837139505534710370202870070904551460768284402784035889468545013541577431203192994590974936533316789804273328790748228895808102972413125864434491373350823905290099465847794280037011883250738863920385999283746718091002917716456474348781201378290562192898476603573677597083256871543511354503153159835646825362590078698079428053228687795138397463140781389242869776946992835090327967173138563167866568509865163178559872017905584708317491572815466889439997372904875007367807095318533154097560142967850156222068200502437878307055493357326691360135582046809126806930859474723137564507638270032882933312855243976345465150311132034153567220438542537229250783357543853079341696358555764215248696044244054660409975575693333370588516925425944342505403545882033462173260555575829241789130920921906364548751405520811146265391153355762093550293296500152505364657197036227077233791039077713670575981219491783950667923475977781001989784279463724084295716111836562736391373753180914063872210559159015160654151064177862206995302170692264106063247510666260336843836828552752683379364613312667406456073914674333395425497809767914802960458653327605745888982158712741468238774528764751407869981126968192874305046424983494671744612382025185300901440858936118106044986406766382720999827006220889892408445124885376510071605174057540805741561461488328913852240059329266872162793976061965338169670234896350686776867022325248557623707020376568747681676105797125540869032697212080679942317301882891092611754448492784710573894268604095237142096469450704199283993345799416591663379863816682826885850287621708731127123413212507530830424170425003427035087238385573764655725157519620961883466401563185986292655897962250186711496792365636742994525720805951416282010840570959437908494643617582114454038801044074659308634129020555908347960638705661449459959528939213152999853356927236366746709527338221563184813393080018881964152906900951281486055003915486823787841247954779326626689198150229509707722308176712910547842569819033274092477765614647168442329909283652906312093109936414720414453165500997406245221350282716680310484558524821918585495953562012587286667554725419551156910167280625360157068502725189045955738434232235404754048046200230588123476795175454787620480357264009174291582806503332197591245332362167728005476786171850378478955846554108957267721985881478482856015798565654153088521509771948062502489174736321170382895049604677236511904995246798840430218307836863070756863976438155280102072437897242504304253978009098138640426929519608515779838177128414304318074909531846595577104184014150583901011035442504407296028489287151192096530418854320287105596693290645457192604987520759292825202230760826103974270781818535174718543749883660141033632071816085110524609839511483608733983621901932299201474459690792258054961952092959798067131423765376855796473695235047822308785263828315451787030843904451662954256270769785799676390083461453718812652483590480824140880160891713977933678002992067747324951414967836515397149213774270414633511584679024501524803512359720100188915590049038278638176685812369119841267075281533735537798442681648211872169757403529155392898920692277469970914428816865835427196814775791226537005159530792506538562534775230907152666845946533352486523817776611371357517076385137799361566537897496902998269576608770339742695408857835992718839782843837920859391785210346216031037059411690392430914222234322871612185706166995617844574072743214250959624825323784077471031841834082677338620978969879855842064207513286300486836420830511309403006588776929023620206091426267619060909770606197815134968922838216995001550611198608544166147620892503413990724312444023437998919806957740834034519444529222985557732642402886590151890571627021339946673527166663849981491234671237716894979487791544405440803513884283761326472098074910362470362157526486863292612476720595597533912126329002651351049391300337870312875487847635245342345376028359177644110495416606167372594291641460786266507162922065538229989140610575835606732499245076198034190480643775839468671278415530162691442662821465111212015394286087189426332226298673869701706798679669953505566926809073137806829412819405516887111442211718296066146142244245234175032125035436685029702620004569874009860735421155078442251444834959684882490533305148035048301270530692709380321644153632427741668066871679882978647584498066360276026406084803368724311325389699459787588583337164289424955893855118764013599516670405966583748241081746738994478555360150249510377617197504113144041285144417062712423591379975215250106531875106409276076291607932564591364090682702058835623344094951039505239786622225439066044255896204588368450620384558494260310657942484859667448151376996867498285832471868623100660591838995878195486193556949410577791721639491829142611834322409308621552418556077996327461758416293639847089612684650025475493537562351601968216094323786536877591353552890099988294385538170041492909180368048983387918969747303167210189057843013430666043200447192548648431568146285068329057348556677376739667759249181920606258005592287408650214408656944877326586710111699323314501602406975342959804017707508072721989637569626002254853736650801814930087138210997617371103007478912105375123329698133614568592593855204978469327488184593205315937994481416848157342184152573813676788269647376657026625236497854727807187015672444515909116248285114092147625604278688987261458298269267792766708699208146819852002311085173075963027629354807410868524578519608523085683209902975233631900137132089521654165887246019500387677489852167165304632391016067978715285415059327327358365101256549568504371926991345519451712335926325868151983447849009130203339215806828142795157133574160565872146655535229743466108039370578974772191196478924011042523637457361642381373688255721061993379300793045750959895248230293793493781782762017262379572958070305730828914075237960535235658268159841371228896405651888153062470876095108072164442104566334382432819541966105000332712088996384570458563915562954989031502169037722752897347649710132965903221618861410056794600974878481062286043253895814835190530866265440556022729076306925550991175257247949457409962195038470027402181902095906808849358200334749224215531603700041609166681484609396941366027557294976612862432386206924685317837963405354278364030118593364880045275906037389637882538077981464078639108923750081642605393543918641174653167374193753201754162717243619393828877459138551585452647912332704253053929840408006444654683545498142582567791813759686508981791265076474882785412791179714121508135457968406192981785838096746171545056238315917891715022211764002654836036166327278687719786832805213627881800796950312278113925302160237146820560066090166518227189712929072927293437485998214037920273888775751857065444224026586453350678283416604552110399780561814228795053596281895184750362718966119545072759515954265790216644720780691938070020997475756912036965555194035561810744677017255615195560551979672065896379589488170976841417045588944108283801600369149148538373059674933339363617937599892191085739778534734519820633057702138666478028433522847055974333966281185382124828710912703505636829480657860684235214659995901505044462241247849756242758148626804667002738435865915612463206604425991419742971040230179803579833772547813665550875839051331858344564350414293516430892356603263232150304675981700273409282201857543219666841566761342915630028610656576471275615445543125928128987620259728090070074509134780409694597951913084920141865940671555660754396536997439307936247948788333537955319941664642611905730340891504672001808551640804418248982887788159850168085081513238780766538057241816317822971659444510001808112855478266926223572444681225140583411547753495653934910922208122546213465048449507782268557152776763239563268524528214189673584251930665175081180584198467180710796780820229693893381651266533319832431996013840789767127217921281448381069630921175977598039468579608185223965141249549906095887257892785622719541129961820783879431821466589167066212645399316117917973209511411022039498146750022732910053431933477691840993746298532573499644405141561165460840332632263591208602292491636318745952189129139026474268056070939375569564478979227011053680085539577276505990381438349862332581157594670667162614934093314487117723349351124396229917705614669720672087307594241937215297145154014881470437182447900631322043922980835569571742883705250856293212359222587730958639704130636584952816756417431836598258502026259601079459845484989537840913886278116821568608209549013346501754672344853735049236626966282969837890771184241868756945952678282417938239185092639966845619594865687699143658284569650640180572879824264456328084479661174555443248377853673711752481413044165155569251892242119173326383339356240523858196603776982038933927586505559647423511738903549878832315047633656852299177994227846308237281466531401413277101921109029148186667863714383597541001006389677641309055423260759058585345883428696666182447472611548621667985269294747311029251635802116738325674393481803519854303738053726114143170178567550872510955945075713314020272516859824674878242699220782329537318992871987704353558728440935130012619101858563384538157740187935364941391590119784721585985996632447685769419625174876566670003256549847305046496263404368503033371019268907195588818039229647062763731569844387348523164111480973619558606119446577347770967277480607232049646487635081674781321653767827078457805141647020719608030036367183134741185405872928106703787007893394396898674082338504639754123491449608755764849616904099253176466120675089336927989658966047822149441216924431545826527801163096140271288031762742948085032857124865274813790951132829328727586098145673065324503945973260223870450020405726549050238806225933902688620941357468545218635093879177533287104833572047456770882982343274934055519607509051417003099284874415689129046879631126159399022661051141584655162012110462232624217650399443110998477544225113132674306311521019392323568163561193931673759133788251913906718619446366853485929432536918231999261719315512858460816382318402393031712242257028027262868039854841868099119801953547764150644805540387570785177227211863267980048754316871052204000142534373761212776903444450008638200066809041718304520742570508103798305643549765054342196170503855336679358117124696216649786616966556257705681489678304899258702938272451284382302355227342288709026228327673789966272025036334328601986866813759675644484320712517728294122192971034009159446252168466468859103502800237335926692901250486241750135170852932179226105474799571276130166388345729789579234969872381879630536241555632664322322933370030314005057781128901053597492637230246084942221544956073517054307588645968367572441427343132030581187719762285338972924899447162409246194461423991316479488543673361448258517978434372487363716389068305076919650409318069395982154515821089437611954154981082644437446673474265120597077828078393513916818821755067061149580825756199305275991330542282485865744340059080697455148333416072197439126551231997822566582053663811892808328236537925184712319781716535495663369471168256781895853799633483720744680480439395054836510954130741592012279921001663874331283800710360612347341385019306638276014134145541775810077133013364350571700549492452685128303769214247661242598876323043157535457930810682338283604592214025612852110165622332081010234976413079541754331043275277824171865782563820810938826593677391154527020262473760540379942954659566009527701657742295624907175395060128910641046375004590894070900949554448609665585257278450639802434100536874737004262502748893685411861889245584329400901109946500371847215192156265015323522621083042953259784925569811531720831057083497637133001503869514615860109469432498632802896120965846466304318298092047283557252628174037916304146674916675748966595339054799952987592320041702591214562361057219376028201357933877587370423814769631110337968496214098556842523152933691865121630139216033130325810319542308275618894042579798120871480035219317419665431260081402067343023221697180717968577435888294615527534508928856369232895597880445669176866734657289539921937953366816444013415367563863310586460162467749926140998980983017780116745917596089710219066744287507055994566706970188873264127768975582059668230829746241707548521021306449569673658746362551663695727623809956802029678108386012482426954908970970670037633394517646670964994064747543233395452247552253758864404242576124165537842268494530731226249690410610871833950316968331003172001327334614981916052170010092719958158540302845661821011710806257160085724402953746864422493926610630485344766001334307064448799596753302176143464623048598473648320037049628856058089371088019856834530339954187268550120353890493374933941843780107056049358324894587752653830968458939504512025594340190561251017238249235079797807137210233212679703462068678068866232381913519131987813741709553065463700342640189566982391714188409583733083381159312855809006740643200560372999073287535862372690196628166893315832330001139263772207553443608345642156584772211436087917108421103190740889906414535882196546208864205408189832976033423370460736317368530510576400581891083495203366712915168471070569527193794428532421237823566336807858178765187474797476104585386576436671404703996753788879027746630548492098790224608458231073629723325020906807087264086791708050238987051910598561573354711102999180327442108868198242054189949303793415067093017412344962626417000947437484347044753388996941670938402240004704947700142868593503114097965619024309635289365919905389407940848850039071918296973265825254494124879421120277489576049254472036825937699041705967152357100739679495117843366062876782434503282567770106081272593287033542149379585653550316367555139758208838361691422443431706003797682404494241222909343984311103197340598517574571447643307844022664952435630653601922007852422389885620715320566044575069142280488941320495772880599373166963249862460471945292128788621652932514157716489489956244628075391256746971266264066950897695084254092407026610247870615131100441744894340068264096392993095668507182968807044886952799589716689527520634970845287441506466887217668628937632658494398472068615852886424472950410225044722118678576288415699890976972511796970667133306200154175245156302926990052750510238812820244573617275811260495118777867533699993585923428720447793982859930253046084358812201999410390085980154377380788628336319073778319840633819272153256712319675520815719815383717790065815818776617261066978633506716116442427661695727512678067296947762195934748575376694425743572984121054452692460686241014749894516145200479454691623555951815007988526201397286641546595541953376103614771286104514862163348171607502474716579151226039661859356895100980501688747945343733970230623611151333138678002099109946489510257082243926979385005330395604333160382841542211282994437248186875516336176026312781868563507136686703501102151416389677572076836224107594190695864279535036797565260165402713108402076986358369355011695570819394360128306459155763400814520164118358494484479462650847422651670645884700176544441017978908037876582845996281552807440414476373292126702861645661816657835868377325041805717812913203216125040198801573694406326601304275319202719414612880763885054011168806924147120586991009575927078738186555508481113814121165852798415957844769425969123477171744584961513773392678259361059585961700813386447024454415361883737175402645797014192526347891480181813849684851075262599905784953926249316334977083208319311045168765890605735877935020132246999786450012165105697954250213929987316613476386289180629399307733177077345468542812986383670516758515033170222485550750151633498131721902515880356885191052626128473869192156895203683534585679952560318022640607744217266087901837767190555326518156546186989852135796032341574702976966026917372552838929636301834192957543517655995273062480450592514625060051731720713345706693136831749557410335569114951596774014289006250948140327199321301229387529384868540012407788202974044380574069887846424378963924808369675793680191661124371387959045148886048770636671240995391746213200317646795044094737829807021619445266506929705347327731345485803998332565000356510754579553754939125124911814070265277927476236122250110825407067719985833830727204116765282257213609862991521541497822248462169266406868925716091188109853927666110987490676334859086315300785011664308261821021457729627929176974053573876870659502986859385115023446177564371253783536825756657326591363279896513729009142266168599609530070441953053850740979215104362971207165745231907847712945040833287399672467092773100382256690542099171491072872669534346236829479062103290391458901338524189203725803079988536872173344260876847600286037095684987630518143539322333243061577354552149678868360318633255550256442581560311062206274571882754300610267370306311339662509294316411297657937610018413579735224526244766765667222420136503381561596596609004646860538133947863294546772964840829222290357802815659578856221063738472788463512961823512916608244469114395194843312905462375168716920176175277171992662812001733151210840786167782158266149516323250517224042517763943432578662807412183734110279513490287737011345597685116038523695142384471725077696438153984435976185379425401023538293462323900119816627424228876399522607729306518698090325990913213833367460622863774215729633919125181561793649675075443801598963404223664926122791315073830299098937856294231799717331922779395270550387552662892765521444699174965139395723535619071081530013389085882327764927370345727200289229147832730430318137849554067964575245878521333222241147079142415029431838662166448075652238239313628567824221340233252307918501792745615595108479712588797885862791378407212525833197021618549894903950447680135645514781298509844925921012623278242959605624161591282306334338151916933082013244277825254917631274001408621954226725918966649517842349736678790268331642382903158471954728286038757801997559609207663211626562018066334075984355506870709691509783332367191380710976553487412982349796639281210930348311029373279514809406269709436004930980980989749763845201094789710091465925014647734849487311077355606927402863528495185415953933195036375933196886703873824076331238343215300732911190180727952862752592661968837806418112918343238173008063496314509074250234666263106653594402379294247370048867708031344334122288954529628649230935580455256464476351579010263780200750125612560194389313980518341997387196874707840389525083656459801106979453761977393336036000311835275933923310731806253100112260833780810858105204888298206637909977621739600421751696549577459360802839458517963643861834629954487243243186722198147295648508782211006362177067787539915274126169795338427531515787374890288480132528930904437927684659211026438684072115762254452921489875485970370021121205613365617875600233139606946167644435681717233507642226346505514179602295450798835705253086926209521886340122985582276347814787959245396974301177098036718192482535466344372257226665931708251096001219031735714586149032892178849605859385933130830652262341736532932317474050366764168222758595840643578498191732999446216626955559258348991741470868505165198558039844499629462407094595259397608727395090615611608417736268462584739000852868913122441240610888469492362589391739984431534230318337327078102769463361441481707309245444472222129716303033804327088467171346589930716455853412171485953288382424712303436042266220254765525622068987363809568290826600994786703714489754947262851810387699127167560689413284825093131656845799366002638993991373822588641427317588537364251852213096827829006717892441745450843058341070461183968118018126541006840252535554812195623522285344011073171217959342883010385447191583993956573008200998188409320433728394593006085102513598559286875708834795528460399236091876589308652100270124587328475589490100531315690253435203620908951563962737096695023301358491157785526961101794508606804215132750789701320287290965664766436916658213246637730081434722787344408331106713398574691080558933268406293770122039436979462375382454683755577380595845029836724512674440726454261415534731357160363300227562205005323285089220258402600106004105642385273009479996197192422437498824601020934013729266231571930774321024847605853042863477305950785844835093616294136970645252999901460297270849673492790624443523871146745442133310970203451255552179845924337358419009937291921777680172646469133807984716770138827015517330352172603270007070166845534198010101153993921632537759095464242415382914449425753777145910696029879028604549631235034722064547735556963858407531912767561011733512584001203929123146889771913000327862150176789917686678438642749817222046167719148830258397314672210674015171125201725122953459586358468545694432226325980565836391876252113480063159735818176115227102893679859890541157585001245039433990534650455100007242151941150731660606575040526945604515742483035324390473768991410818317347918892196448705675849647054401693780926876736931012744797709877897118921222106220468276158618840239169659783004058176159292763735132002072098650569599842628266303907681892245211484275774928222986049207085069961523106725538192592485277010904288362483154856362317606196606708944507175817195513318544186577780811583532321160331156830016292230511550107440072214572641261193108882375393638288829858410014594075801351683542560763641680046034542961086565758235203296311105527184443243124676554285010719077959829660982596250089130491482278835419962267307261064942855526609134628505103396868412347577395664239869494239845825559550269119727994071863267759019968239654594234184144608171782892896664518554693683097163351961466504531720884475834740696801048459276628639112668901696452482365289233646773290788452159846162596284039267535523164996165510055621950600185708308980197661452790639412465701358256199720005375482494468332291592223727116217100107955379650583485076886439026490219391236299322254902963810020339566662025915988833495427640326430265954606945407772558274228636753769467563648335820475239529899424608122893788389876619974499447763942979741645515291028650852559648750968691681530067570194905217376172037762389232888535028211331107604152924561873214696495997265265894071765838128341639718672447139077304147301730094164615961537386342518045054778107556212692255214111126758406267297579819702705092266545082198556724889793663977351180634841697002048433056579241552964515443690305853488993493533208198289106964990128778127720485894310276657197483342215880429151404910507050250924859398600273516587118155690320253707989602466849197278700299693987546049589770131603786638286726274883091323053519237684474500718237671407745900988307193577591290247843577948273691193444421241147595689804443308157946859404612383719681266628116854746202515242172530539233693482116118598487675456524202351440757248839371294196163309971346829392934576774599468678074873515303048043145534121399365577237499349397238381487767868105002883109618423180964149092930916660626029543970075111565784094441441613835148223327038420248647379804470664705149436982559837599692596352748136839971816513693564787074340548908540067164181655849904277063630282418421168545509249158499747424493748920430763075595677593785272995121103798416441507912619655278907404667999602064081389358533026636312088817823774127841831147257176741655518113391476461644130637165016275875785483618072915598728244756697705998337198444189065763559075826095769398147988983639349301129763822950744826263864737238685470908460828296524244072620078866316223912312220217342282333877309301859696121722818759527017215377476911182464806736817201630404245823872412168794061926768177971812779348051533914069858796834805607572185177054044128786346891954424239610320668774649121163713215733656814718241529492937594743030539679964899241289998161676163888878287108747355375568522833367078928866725045740738497743614056996400717426643820339211793337085926815868364832756292196584866585773299866966911169004262259806451344983091511577304779355932108268288516598480090626991876484499971427477419635408203353905430125293208126532818356971042088216214084038225859473980475347246265631507125375135381312860616554005713379007646064586426684577453322557171337366759372269366748743431806509022409891547938957233228472222745268971504100033276945110989822682085841730663985377577538813372977521319724795143626534804642561928166841985699188146402611357219118562807699619744786571857673490368312388373894084800547921532251713473298434565818130876155824729107234336316387880309181199702465176550948054498356279144321952654754753536180660859903232379744350999790625570925509870980686416629569350556970968791776651907267659805977874322896694603442640039575298759432022448556813889060011165180487392256775744865039470728698120024553983320383948930293685653104417603464960538173337972130695315464463311825552898910997640954922363555567205352553605755209458350183873756406175588169367976825086227390504906830903148051311142869440197962754331145705437169705341485820815419310291388183623954246571013472575017609727998390460329935384153748037826110383260717078274988346230811168300376846035171934044284035065324031550936190775652143523859689950250426394655907379302614633129409007086811135233309992918841159142773088376450352558199232348019198086520191066392824763610671847950085544803071769908508253001159304614214322838944449744477023210285910332304771641771789188381712903412655506083629496822095432639983946557295752206146382125347336376886510088153189835930372447865954493938185677988614466918790713925893912581767566102156889824429758347829564448573589217405371613886831993492426169755886621214485691648192492923611364417863486666587101482249356995215812942469313541178899724588241915044781775030354253172943568245119405630359283677042175354082660439837634776801859693567977147833545628904303795207877034505403203691998618541954294626729496026130101328866287631008638385863793676840176367451640371691223397024472970678749055548830693194998563829156142696181453752277033662405281266796519270614252414262405070786299515728418014471765851900075080258140069410808578530846219726951514313346364854028238503189705079424744864919810269455599899984789231137314952363917142423414161083872815094312808164082976207557458804518936111206250257525196566157093026729273192296559255609417474984525669748011181903600975209191963224467780802660316436929413033989604510941156433300754087235919591842496293691687067312898182398521569819320152676996896109537812247551730091730866422774326225719961191665562820716978812690029410834051989329897012521238015510948315775131393030096939575106885638010868845789394980040712103684512148469551427817180119978976034413641292933828277828608733520685292949318906974118449019623293765227668160901248157613837736449873952047170722756998342931618532513825113925624980603210514613844833312344986579637374924027722475097684001138121572889319121725898122449451976884473721582645668234752015692648462051467499532826610112521108345095253899254818490819117820687236911364235397752495039070897642349569811189028215858909750021481328906916624637505020218129078121546490029473242323776206626642225702182234496487057873956285184272370955682798709079775743199095296402087608765073658989518176160895631439766123355689485799615229065413476810833708491776609279246996463765155576383864033529576266244246134442547604738581170896007041071341014939245575723129923141831875678056930728283297099556794633929549832411347501086704006915041970550750712447941668507440907104320335097960839843325680792458403701767644967801380022827989186515423265028799351588497162647815649382972432410441794834067903850671161548933746952186634691694180910520952842118988966726169080788885728456758402465120495329213384392784792354913282607146256356106669283262880750084760068248446045181045709965657355565504942309621646452069165781160280237308060244297330677474096299945616808728452890098705713051749390275587380348784735122724239039540446188157441186496841262053461245691700988082446548045529989619478210887928222026596117147916112214318286333657659558363065701620039549513006733107818295705811385469900554595805429222347309303170445151133910599792437410041279735200349942139723405893951015554418857624229464369626650520826008320305853909945667664479416900499770361557775379146277697162587854566770069779988430154905646424037696643467550882315588978307783679209742992298535232768917789315546839354027481674250532633147582605762912966400719424390769665015802480416700109933848612844990656523595702601148654128932846047063349747130690878301119865028430759013115713569956358484773499412612132776032643527101942608180081105993146665638111561891163964871522514672674455232719070044843773705881075307193933867845208706900384018248315523090415315746554246109851980478737375549781786967754514146578510294628395131583697076037037817222330362111830067678884883907687605063015326191675275814302012699165822834144066487627249352751683013113186989306888783323468536525912492374860291693351891880446989761423542875661190739602716477707633590210928915504274432120248860291149774664908195836930309350322429365320478211421816513116972635250796266114538317852931090382968100213424678471617950838253423058642352748466249189786401454067221442787873600110970275540531197667163592628925447474074964294041349636191230973430269571662372181871372427647250885372021983058322786483978424113236944329104643078344464195614704114481899701534297939495500834246993638352654712060510635223356479338440794810469347469585962246765395077065844620629566721953015766294156105571739623310345503046146282733431547806009919006527357473318844261103477870299562771818133287155969056978991945232626081000676538536844709969679334656998500390269741738539871200452355196240979726880477410536850387848138184927931107591953604109493573593686037993729467869547583100608220910783863486439386358260638628220985439826523368679959646726165265084615624079804164279076973612091569534088469579551963047676198145786329508488011656969964908453596809795065200104992980323545200722845826391557257429512750114594165021355656315518856624783384545893902193343934759671570585883491850561480312502639236483900925178631934521311176630618115458275947342673251072052770153665425213500649385952410233234952308199348782459439044697661457870375429911705151188943352399370941442639453698331548323567399219754987987568327551045630733324699447140931096150688730669277358218574163990967532823668312723583559081573979626521397638198984106511972390109557992351076857990991996236318853385676511493290253323247939370877123704204142009430827130670714565974137231044218766564231667867991832481912916122203579565120658876991752145442436887795976140268753528979093997930505689802917463754150081342954295636229340486441862585625684430045939859539997597286501321605994925454698546264228092597267934926709420330375367038674016144579515128972135706566445904995659759535589981730018882060679560819444079012077001564450270261125156944248950873520869676561348775284501546300077460801940429186871564672997298407612921154506240630325641611931341548778907801912898065568898190324036185027429712174644329505219365725276415162510603474897535852560185165311686389064842330125884480295184154978177193854348415287187378986328998449533529665938326739056278175503297191803494426186871638504146564936327574952100162392561274511950346067965908614991508470134040490593924369197607559018630593886652042913883058699090085999889499151507875569605397295774420361429109532564316723316236137631562777105937405580388789325554053637750324123773933413466239882025832178040384293303643579517359355691047922591695681581076773272036942545453714908199167122311064253391037746156064329842116417200530642878047801387652621807303332677353638583093673691570804008278630732303417907871185758372285984486512738194505444603618919085001885978141742091557893061639039804788974735521127511150378906834131292261906657985077106546408252125567274949249310539773080258462975095759443186618957094782836304939676654045402224249648798425100308618380111633221597375094798148474983463900261125301254055189790307865667608636740398165745722120553728415629455943295113879478362333767903595127814033507125270375612013214175803536173550336588133209388484819253236092756882832271085222980346462504212939886355672049146426283534726076655632020100599449488801561628437372019277094017813676765480967710604543029658532241837718783011954055637877611443670971118194629814894930003372117173011927269339068960172750018864903456077554786465814339644273885065981456272643209058982826349995578301938183695675910866525046289259463692061984093751271690426620670796530907250245077235891556475371369931553935700344035792333397377216283910490343071348785606216478163399124206559500572928681101344717439666313196580327495375886110157066306028961208632574092041574546513001155376334497472715087105439234327767989740087111603325860322778140279057967151907194755008464722297319836229163889933136853296266232545366072120724015569435700116940666634768050279952085835291445864287017678290959269441117407282856356570932581335662682311056863351354081804185095679257922862821950785147314118627643893384035186944286681093596725181855438222054400627123154988454056895878677098313266502275298772877506769187317060609792317663151999341724472352418897972668975651529520225981543529862131150444799406320500531334698877114926001072672816002655746185810671030868570477281103433742590153730382068922283942571878912104436569183596368861571894117848960516509058147565660059664132483077708313756815545781974794610458479437895241396761734722160256754698130739435045519745913518024862105825356847156521005228649570430455716019035848256544543941814646310112323642322692662486325183885378689139790129250784968940044269033385944868643610566383491243885568756482636895177041180368738757678112042095799297497651233855670828325716223355964653976039588931931872763322488684368463759603347887884725277849173298411746670602517052625971556145495552727430553016399242751146414876482025048086726882369595839477817473613980085336963959808652596411375110880180188478411744344694547519240750085764948293192865505759343135554987381995192709381522213243878179384197919521500972862389917699310197857610277705115745058770844135011571797594174696282888013836344368075298399006689329977994388389529007101491912295373210541758598125598615802506616051458282435348013368623496651345066823133238478451246980567919153992743202019658125066999823672532223372266708665066369889160989194050675610331780721258295217046654772189359580077408237969108297357334646261043595773807343684957096367098190587936591878094673563584208230177698054935694626725662989867609283010881768475504976685796775189417621045433608960364602255947804347224210320656497598108859414803241862562573574263495806546484232070245088078983145950953130052645124259822153631334277459827866412343051213016477634587889509826545152147031142946348317236819290364409768582742720143517037523960836363764205256379046188583080174896364227542097415777110045912834149192818461320582073045230183696291949628958403218912465160962078545117584769474502363813750421716325232997415444528124475984841596370931932417146821570571766504849614947308980534656304839320764192964291132786707654841060340983043090768414439410794151950837604690582561944252266646384406805736027045826130535714012589898838114276144663126160313861541282338714404721549646505118485682263272733230011201586212841768484736229132018019986348865568357797402596113232543079752706931763293548456095960576650062266414235198588640323905212623237557006373832412893692968268156639823429934299850725368780318798629630037128559815187240545068458247199094746980230089248893576493275390317150571017493754170069257324012350119173650238386449392170727417736525235761996461502643610413833736640199899075038633990320971353772265523693813744872300377176266153246033940072992627598516010639750396807230594357242300406363202046408245820831284316980758452013860433297019519299196480831926480395923138539456336304823853958462092488524541794127669944310179541895981471373581009579831265501110812898570242357073714071131465198817101684874919932469260987249322088873358285315584112015658808409226062990132026301249471071844838465589775427773093123955519739552780182335793723370629237987726675052171804277036163961256484836262470716906592483118345271323525791114565021113938769744975889211711135018010002046817296253817763029440033434163430576139648423292825176034027524441836968825109938280541870954874813982161303812543719724326877091800994972137382451063505363465536996900876394476095109185491781600869782606046619277294853181747733509350147182337697703936659890138339596996871514401349215455529024332662603734751676497449480960618888642460816124331861007566587701539726726879039991431248760096682751261289503034689871430377001867957686664793119317399682565747182573208315747433424290533140047129014763461170388890173197895164968339541345932032484139093575161100941483222991818932339329061457269269554006897292636700445626326633107954152295200964788714107207042342749105446149353372130685238662223787935974235240429398672513904245734247260435850119815787701713129659981648048469072674955285054392216081433791296432034063648759512329627732256644551210709549324340482064746201591142482670582077746287637971232917168755533442966065887300228657825806615253150925681941296867355959128076439188899497600166008771214601159625903106437355809344859591999345644169095844473895927820048687646738834899631544231355517010993395023071821154429985651438633954480946604798301645854627023523164516405482592437469642182008238073914605530632171943853384788017840682378523877453876035616995313951587889993217147924099589325837953391536093584723174692913868555210242875182161580584051143268340623690247209801731524204837240865435326325211262479826498964494093204269275583492844503021281911720417973298830625328235434165478239308937817503103999565590576418666970834791662256475985057440835464977979982877405773269749291754700992238488572214531162177254451770762614634006397298006650294625108350178516667736618695924995718700577792355296642269326580901765348843581963809149317761490785515609492566721900402349218232873676974130591391026442827621535944376284064927139453233334987566143419218175877891857046133162863787584083942764038248282257178148033758154557822901889459867338488399850431252979423952324598526026531266636681910687116783883483641572534566670391251448699526839063492207422647774583182619287027058136121327659508166593713701757025816263007929169314470688174009876519130687946250523180996098496994594286211798474369136663792927996855999973008464624299999498364546771516609104304489240155306811370849380930470598187087927390615520752635112162017123661398249602211625591159311473278862192015186673020090282306804580187337389355888034253954131687181782765135654797957898795201819445832031876277227956307951305347969860880314983133373087281214639999149487101619267669071118268699355233459637484436429309387187776036267309924927274806565946402122867910133693083201175160615983463196079740528461449227296830672685761176354607809910198875206552375638505213837985893237474903532649143320779052810829793342263076974956183735429537781674301057122264134694249192975931361015365295277519948641311192994884726270751654649293546380931127681557862076107030497664772209109179097070462777628751772868147583318989855575394364786314432662332315175447303915942284178732529872587207344739261390114059068985440734310653872609112297979895381219847061470967676043417597823185036098170037746312035405253285991997563605816219865441259173001066735980298549016110040450534150149798820766261018505353627950783387626966671254216723347464827609009950091768493732460441829740897930347848523098089960522057835014221472930557496119251045026173622342391694775125428408775095024468196771278169514497970841421604128260710744243004471563806585719085397291009686976454602972106691062019969026340880150707927258279678510532546305394805346469517258734519122536468872124424356876725115248730546310486317547650528380978010302967666941646687919995859348200088544345279878288846815848388074394857365903010988485581640336591788670858671152790661656364364573388216781233875376720534997739612440404819873103393700454736167935095118740081812418256505107756228857611950498001271569231032449851681832239204922625215417023023188185508479121600940949619100952757721573161070267951464609512772672337818906144157937950341869006014082018725281573934932387255930408532129117518419203484614128903420593853351273559298783494572212793371600001383309177160806276462241262250624976469143631510698057560497303134312278562403467559754456584076523356996448442375352166990622011012876129550258858014174611402914352902474330865343903612596873076344787216983206737482906299777835755263716954485971050349017302343459212476728973066039332826965262577215665157541089072614065308699624527635868116229761128291355634134357095405264994424776044114251405806452160236805612763724423162936583888750214857956419837357684263882253215073402725285948807253836846162602343476800434503524592271101671391852934553874272260567133598272840208116214816060084433798519365443883898924066703289732854085449455801129255202658644100054384772217134042305156497086318684267574527587644716098558134443631492556142787889391743267291665099626818092695531126793228030234682209066704829920071199938725136425580354055726636471403370127877502101288756426648038061424992735100931050087880156061827856693117095953395937612301258241730060836869224120178034657896644851477536594216212312069716484776954922521555796326219513950297584714849646474646565235087370536086867770105459781919749358873809756650008833620417736833924592405523308873207891683377620374141603345954817324760860157225202449316821529937456863439497193246373126919512674930255301054736640138278733960625693908106290276160899682990621909767825288461188244650501560109290086688231267236823304323221460549604853548565308041434126280933411663896849753371319657690137598452916833900537179969901612255605475584545169205658011760122095005120044352676361940956885411011218844323583668963797853156767970177699240242012474335892502238200308240233498382761773876345576257721830302642196168113209355530776048676004683381932525356301349487587471760046718093879426553904299445187360680238355408886787193308857372376467803899650225826305164710764522723490801009611038199859498694323387631688398569695377672257565828367228968697055543507050246920353136483070015760828998499711275560761816688733740651914253437740836524143570378790112954902855028483919697916155730750067485356126424100829369365387942563408144897751381227535604173660022479016375770844320325396201947653852747738427515258428106527982925268857026803321952832257246018962596955196259690413840418517207343089320848778829773630276708768269117756134621125853721680221050958848282871390534964470345932025923658856410576683407017926292269091229444974691235969170948596456072673050609217432960818619272872563970956890133415519709682478552051897390958538437615515271175007194153199631217235069107838459500455062267033345489463813577022767329200014562641680472614173421300388746746896782951310794238254456342007972334263293220574863728934617832473874843320584300129150962647271438273200893745002199341023002820358931209905864968914690084798218624698190858999836791212255250021357241961722456487410426123828674564191815342407575576192265663083065672203910540423593154175526456701412024769375898961032969999101186016342906945848837468576258212609451447929861633258498322088614816745116802660168465419401439892896088969478447855317297768644087840393473719284488825131952443266875026932775296345143668168881813304369076146850319244625817721287110607901764868118002879448270294463452424348052057069231025631751320060362154449759623403939056073668731844268691150703587312150919578572327114482133055046357138186979460492904992607577669655936716517174814567531766285505701793111255005522658873039631835184193321760642647180710230183136519270099886775047693693149643985111306310054854475629637779103599261674222285705835904241148107738653321230819257414372524698265771547885782250754698126320900126246417526589358562092376040219276298740850226948951737660875498745853939202622572892793255815475853896431420608010126076515557744535077082091009767943651224793851579100473964842737171562886364655283130195783424310343328521466874707486853159004599695166248212203839505704605209831987351193639607900908544240426072937070728178888598220641522900926336829963169568413685170444073983609702470968442915732029132428695125204106885388663239654116580149973545825755050456966227408966560971728010213525587939558208300823848519123228570052152177226777602789032659478242052612349247325170124804750792889043943005149284146924266111627855403488060311069493682721642625195790916694012316991863478734132883886815889413613922169302853256410200916234993165238879775115900641039818821026375579439486799937891905205311068568525611156450187134345087624594105675014683657326304271111299195337823690871626825884999331441308999759270617910379756816152356217131624761991761599558095245617827309507659331986119108219015899430309060399283194747289261679780894176747154947191555256935298281974367222934188420188367336020435903455188589971889279772284270834087900050550549232417037052141048374382068385295954537398262529576368354131784474086358472602665553186916055263590092992259510026021983479055094219500429167004259491728874105978491623413750195615081316994008350363139939202124647545898893126849013991450172888093952929902471602880528715079228148942611295107795540390997039392406337676489393677059213211301470600173573031399004058436922714666998087607442610244179679120820731438567700704632236142732017482616985846764839885132603164570275867076418086734579627652724584240255518098497889616828273945101340635816053679598682909114408547044554658644732508080998341403273569676616266695430663909986376149018847579521384280023489961938841070695428690601166430322258158562745014949592956219071847786498817380623236564318173284974206284297225269801504653489516012736386222948588465055173378770183147660636669560380398971946955591867757621554578419489870281963285102579764005926668558428215150170087023638241333563463265403473465742908951781852224080248317662276015163592156659223433601543102311699818912272900380640149210242966121697395427973009460583406179504708801964116208215363499814741730504681117993364805564548793920069522960508628832200742081008850077476928173388744846579560292120777567398985210589532670615031645650783680251232643271834594957433528076367034692764265893799210092378413545614161810877555700376543837006010196189514706289543975733138633486289369110746220988413767468356501155534070734243366054603918524958484254077987392325661720561944267207035129351733470566433608010872122204017746880706569263313363488943023733221003423719568093469811675154719559300783418612522846294064239429141084490212945730991014337267161855218564095724618338768975217663913203396247214435839275154049754504832326839781818446096472123081908760927448103228964861249257201175397702191635600757703475974223614192564463877970816882993572429752860749757647863566897125806318389561199317617842680402677555846608647839770907135348779041051322875613944589797309289907404006683795162531721763506580605237585924589570400031443610495888834957897759324269906796089485556154705903191841887080394350929776135633795384221963581362878305935260507381836636837874864235262992824885424537445619187076894696860793990189287000296424726877676043937111560549295944024840345750977719817270175538323932900491100588485170379480744508478609964813965222504639784420254541825361046143583568813658213232413191194560688170839064669103776715288669940483378874141717331816107548503482256281643427985687098688990283954482195926163405933802577547362092427527694403882545129423961634784415964278127103779752770780929215172183815951841604150205694916083836432147153752168107604570342000976493429262565694980654803780861298845749126689995141750058954305432665297611885353689641010954552070920023064321737283705650674253719038682778516559701810028468477348850540130811302663182428374375873753062887745599668544669324092733338873759111216826092770872313372960339338501352787149257955075039148595803983531572850731842910997936990323561607606529406169264464687949783780608460099889119258902646700415455694836109224108516506092880153317138624441634708035983632727555709473826921370337555989732383458346890161988203134512891670751808013378425595909843676750364763423753096272966131416950863467818111904993230788592464225015056432934945633829275177780704064471233042157832927423879920421005752061905557920125703131357047288307059060760732171541253408323180490715333282448114203597193769028441387590348190151510386451374535586978292701807820895663494542549039366322767251617559679603862014325516212587518876922613631374747910931653627854015414446451568458750623706532088899432002111863847629774553761597757462582528346033438980589227766207276667146226402000449846891187701944154483800774901920360335909035327403886426139762123673645100769671690422835274276621628366866545986435649540678456390575972692272165457219170568876531368843855009751947484965837894910816381647218068583544343598009426655755894103344469832595301858215583234175994091990227682103871142739540652097043155436723308404669092574665209261378670207275440307815616734920851386061769739998403011513159320814530075314085667409201042905947801611197638130546074144488139145956679548912793835581645406155753950173423923074536028481067002948881245010387895892037102276378072207557957749106906656065721149713031903964117091706997895644826016668723155334288482735498139885963458825707764291246460429974173661082177331021926116491455498770045217017736016798457688090986839920407149577387261154784670343081374103206321356831599838313441809491172779611036557831084642187852897814909851283364635789052976208131460327853464631015249053389244618941644115049373007623354110402097980285989108536655967966709016781581568732727123868246255592643840945464490008684489910912018876400663921854176840365251611922921532378142530187485300506830001335900667747334067030797481073124522720905571988542414902160523361633856827173264203457366383046023905008240146966162345103091063374849801369021836801117657456824931491761130900971793546489617811751363016832233184571265524282946289376606853384831867089646303237126916459635280921983727035612197325397296045328313964262103889792627983939741499310500193378120673870324374630681843321205505536065268677058233577266550146832975844901164436391395058896825913640614001899344071415512835343907785506849732980795911098668274105981946921203258413106164941165964459335248486605665256535505162990611329019302936534974762274354934934317084128918838383547648632023159218446029421906829341543958479048208223791233025016850439410742098694265097307626561088178743535461348887570400266916914098067322690150534764274983340139960701386772161172565361379667810909098334705998450444549400563065763807663178159770536821999097609034455348233559713960520697624009122137325591591123794866241372498362144210968154237853631566890662317963743547740169455093178727285095114479308839376200011453586279349491005495281825046335762929412931094169919996526167351216630455026510023073200161642802894846096105537352821127137145570347200031739512351893227783388885721648829557644261808579831097473667935014733568421540920649900035053323132480349489210436640218079734604208963237451086730764769860955761259031343193766608435513307956811595050959429360992280657141465880889649342669051502911792628397529237827271355929277452867343140727712526279435409712052394588060519596882322821840206065349239081448774830737155257429294629130732502633305894175871264087499559064849680230708712533279576326292316917851777853251756353385978646185555944520421609596128446837666665748433893239718704504268850114283916787645921352437849378084832030977501986654501586336512306112721887822484656668685536476480379798931704069718682838770672077159597911629775174774755226390258953192210966109405324214152802406197384782228153066936656906679157400077041814310909106798976225721987220307013347630533372085169181808369684677453753740495823563469510486483206956851854525137964335337277556008971559150509184712330567882383090963089155412075497281397709319068683851477459441844782467862091841084173025495694260307971135440968576717350036318904694252432914045817415113782086029481794295751147612341399849567510710301740640395931704353404468788469778182979488610274215472584203906433468623415948393070873076341508288269498613240119758603704312152440800125160882914424590273053148266607464092647346616530980353949078838285382400880059439813047287978543499775406071965199035296114904237625463752124465230774373295084802822419827949924029976795738019811791750364274247864184057154029249338139272466250844913587537149978665381291613698855623789437631920771622479213268510963459149642207899433985415183434198358159327529662507220818129918106435021576480769085931003548141283615584002716109644814362105913216106667177964121445926319422353674028449529704862775909744246884187146679093641603439021175711262393500407447534923265352053889194390101298625275093597227306256571426175699666295290801312249470281397046215444341713887261934770511423851348535938216032869678682276508165823790713081146700941607444697509711260505165589900791670173901631026085429986234254841318696812079138940375138516814342646670783828977111555150732728655570036485810810758357214813315897596233316730830755668139144119126036114494580663512405909324968038112149157029718594415066114455798433870623716889697910072956772368214880736805133828297946628097811979857326323911643334212385496700981953940852812420754550850992321025073621331169902721796889011770681681272731972968016872424979190698705333074457320097004766969627493697405628016795713782703245479288136775982721507668104912206238274937261762697400695807063188370816912751803705821189167798740036385173637592405494410527103003769680321967004878756517887489535105956702974800778281820379981180132192999237336451029879837583010489267460063931908760353151582115716987870417738607499957854106156440608740560317512564485676479580919437422624732975818302139692812479228251595752878787880125413969300535935516247271916721295822275891173846645092806351247259238921770682136442604677233350784083001900978789973234595490406366984090556332936915431849549480350475988082502632535911818861611970526400348389325291196237170838622688090089038554401676884369885678207251367022563395964599317340009890534010470325050941603648217897445512634879436926305864308196656581517135965155865537435298115064980876128491545423939389533132708792249231033411564827809879863391412467711371460448907037730350663549611132086104456725912185815552964943331241442623250213109574280968217937220801353332964792860015071865479139149212051602277540713978503678495818753434168494577750897498508373247749305071872947212304732484241062326712969061221261512167084570427476173257432125282021543954194776453035526879459723396012709987928942778533653490401242664739403263932585058053129208967496928415872724500545009644886646174035285147216811885022829999249073200339473393476228193702345796962761755549697496110434689436615040949228681282510464367110869202705907406407537640118098026347209445307496035027342473194275565847691603898462204388932457653242712325293913530159305510609139201972477363296559622538226476524878411456293021960904448735785919900635957297901023698085285927390843799082101873311256391472105582947039669166456908853348292403272123937100433467701491033097844700580000121878440716907467466350365146741210359551679022856068667263306615698360428236353120346544870701813189930353749140740002481240413235176579221403370136988968184526062268552911436259926156647652904131365346786336974244006856959312465346488415971573477287158380358249399921702662303053838203693423256958960786114418744108899909387423828486296939770792501142173754405869197509089016763074288449609041633118671172611784623414916821628006657827162351671456464116612498914231298991140606618910024845578288266356832395166866421558598569835165771831985204786744291053723652117737346061088267988081144589811463009862665215924185756776778448400982531302885933178240372218424499660973523994909088956629994582664109713025583946297941774556954904293304082392348749019618732730596236215465911154855621055642976715856372266833971567364669650639797230303405977668642252552072614025358445001742845027492532021040581160239655804808992751228847578071353004212205793139071941916422049439085927835524715016084764267413530960390156435863752547184866341544082888189627113727889379411738213365995153910087696214079166249312739224809252595383497479796494989243884416309720799650094351952187651575690319627034467752400382380566561280020773513569481111156145963008053684196469194406369263079348779639401297455052215277422338657815522218803935696296823338819352733750002311049953064778155253684531087313798402498318241648050007550932490876476744536476904655199451859750483814478584043886596971613835628562533282339170374971406952766009605864791073195278213664120204468057558801077465353572755496523901853228199514623728380549065400038631293272529627490718484071799809209220323128580808424795797604203969851096853485587309177290047976469901656969999798061158636498896116951967056724734432172373101117695737581170299555883896151242728649366439075615620703685362191459141442336953706600935905519123405909028379455944001936003435144118212926050779597444242797294519794591931654403231551207211817535903217606361612013756803903650619971460545332853972438307884517740941229882992722372856726636442928399530984858822958723550371247462465367781752911129203981477051170569892547317196792552640643810020927871724158452731796083046128352074027030644444483347863740867065601848706129950020125743180500206042615523948793461855436061488864953918804743990857375259196867909081046092804087548537168139394575079353340556755333334127972844840464234289426521889362150473635233840180401141488986487498447526168658963557847361132697246156444171957195032681277719352646506620123051835540392005737429426270737512240920200607089492298641947110675611656875250559752974639156727900166629438681980612011841865967378954393610062130442835191124718691557389992760163327520983557591564292294651096129827127061414665809022864775023519485328636284282397261896832253470337931358344966510044422914172293498321974256096427303286929362759046984808675926767854061981343832328004047882626720755340296285744844450520017296726306402245532717436811914021224441879921933667250881198806129604137401821809867585717132228017708557560488075869065005036100112087930220551006459626956069804795017845076740874706993522095295070169748741412839953073440559058712100584993646975434574292539830749950573086162414437391956413787340587560231308000665371996737202771221809130738188316531024677713548706896663916439253166146809623423077943724787930170619413046254422441632439784910563465557853737929034958320526328595348807648261885205255384569722957382271772816920878529731227931748078791434358885816259808962468541322463668366649113580943432134414770526545961491211020091704741308646449216586054247070820963980225496688188835260583748422081771631889523399734754979324361443138000421105212730667611799365598175847090057336121701313414504443312944058736886138567241258187720523534887242455815554264457910410100609686163091723464600991187431318135923970064658178617582886675739076816949620333285430196823927771120868894944575783842428228747001273871216788687040893687636335131910586873020414499316755589211000982855610940217441748291243167855493022430768210997804216649451642908972029514492484387474821408754440838506626776614417767084258570538073900749093536279247534379286163577778477724392952068321726212622466854584072865916464156379630288390587377882359585297833267717859366045656945530365563950058270946362790285102326499976547111276175896657437357364541904969165911311125854840934435723780807797416794056083749678645977561460280135133180458944253753646017220224571422087069064682108195293700271261422771143542648429234168134076376402168754833002764869044417448938719818579446420538026626381438490857476861711278267190877170708285546273446305999326420473602034940246868688486969341868311589322734869111307702424214809521327528548632308187956197095738403772915460970595965963972929296674984949549206437226028627136458213409800469602429764597383711666180046446611238057647751332842161764760674657322857435579009990175319159509986563117825556581187044907545038179320829328524608899497903511589765116378874430497364592811454607093559166749103453321357124489123001409247372411577631260485240751882762518300253042897617079139688172066890589581820131601453537465901898167344164128137510710666866558202220841866681894205736907135309783422262903160275151382192519923151670555583500697097735881318397108879195534458974759525705468036330907507949756502700304425833066351387625778145447166506206873328822854923039533738044425955806102761302356558431054086557906395619602893058187019639302651308954138719844820714021678980321134917474508160003596046980929541278217941244954576840940636086186860396310475296901849870337634476951386816528599404734967961796292494242192949836308019647966351147070799918297401329843024057569693874715304861418366215969983947089532066170382905082660038964013899886807806754457406406076252960597958449341525565932183297584731343727864451451384724589045597144356013123764480687154717141445762345899292039895367284096233312482904538420078947026735600901163175172331109741933757716102801605129727260386384986893656121026800430257718725107625308683502485287228467110064465922421965938194790387501054547173996772484343058410501582591583567570363977931935136750636048499664879332827296397828745146097560174716542741011344365481761935741097206664815356860944669152427130155987639978802144299199687155834791512003590846325354634766468102732118418213869895917739259872855719867303451239319521883082462786613528303912426805942769469208048172159024004727053652735708313509397851541659185122818935072460075129553878200520127667595352530610974528111626416283586026696213203785509365434897477791676820307684925957086401448686057634210459244269905737760045952431885100354199269526985754495781028386175891279206199452654256899972840449658252976484157554035389040777423667912851972289110014600011760497444641189386656182757594550527872671819978324503656553850874483915781164257176372242266255058193751010674239105147326825067792427398451136199525324965671111079449668421700717150240395021522102065488888317049625397053334787702484327788442459400588988325895848886954674430598574976218297901964606999152376814094105879223918898452128439875028551077070958163180914518201333664756130970383400632480208034157005033335290824593553888694328275947388051628986865617611660079838211342433562703617480721541180327784779258472022106501064053016965673804542308106443357550337804727240119008959419295057762500474598164047303016714036026654776045487677062361281823381335888526605922255029556739017776011237853201040043320826299613053886326831106091594142393071907321789315622718455980461399464232377224908173163463316116062610684955011762375559806646344084538540956622280473110371834742730909966195344911444493430904824518851655224263957948485867075778003111622592673954841489432545045400306276699046984203161164553077152976052372936083136701222874611509789560106423151634017925786859423698188200239465654120249038098573616021678478556082088448898461616723157597848585944742490831866195251941453528353137718740802878921702045151485796626660082885101084917255610344000478605387932326222228195683818843680572470489993150539665262617656691646308982869405281048843967402457700039544615090460425487596655995925826170344773480767048673579734729427182828651747551010490787104916236353228566546766151663796275016797745408508199476012808809138872152502927026233662709724274055481941594241206199619446389002501555874805181950816954259547788074425970844477219368638489022398863440528904408439807688090652666709552228388632293722762328439674967206148268681044333847443272599115037074433070990848601217560701282577074352822841512148355687589046171117755431702164082857211324216039411766110712895581368442889019253460334035390550107854110205433086594746933569132883758255393789119467077002527974293596386993278433094369165277534394868553784867979774468658237087269504068230024006392492123691807766973846039780839637157411530103472444087596351671471496877846581590235256458087064274878723234526371253233361127551413095466686264134034568283634786636782002052981962593023403205521036956605050123042101541770488673171044436992577190897552705338696281427318897693244328256385475881840910277840445484990966056076820879861262660141126748081788719149337600541038344399843974173472975267398323291797989814800797980328929585216420968087521402442825561153274205049596213932801428082910236015810593345995202384668313724565488681594598327568636673597364658080787286251632244453184471763513016070150295814233845500465434877841806974849916009135044491509211673176078413513437495131097510945158951230247126107937393924696005825512607574781017585805656639402217042640670384733400293416604234191781733598063675890922098911668217640571622166102186921508063945689347630179289268774557145169002285025936749089247727698945956352653727013699720395858054711712246829634444884060599554484074848709651806030978489833928493170560527101661532452429743687307117530220057319307660779723029377647957709953034494862518348649290781809358954768193809476328036745061933196502062185255958820425402313432089868333129423816980445363157856977868690199424670541328010780278644034518065988141857360639619322195691938767231191778900941653846488807416009863406230013049542370755788401336162818886308593176632084561700314651754530115651746154071374514549539848275155346551632878058659310729497869654474419014555920954095885259062672778823355781279385384324296626849454495173576160545805840746923398138286877696047696327721247435676775274227739843582078244547736440514519267126863823953242744563968887912833526046178968758696038392052206522531187364213316723768373718205978893110076455438698088972068146553762433893290126803503023982945950544461860146470803508778118269825265034739628524208285046284469073864876954899120855507603103558232227170733604078556619586216812862436975627545321028451871505944202493950780351314310703647485358694373138281064734653630925803119864749305699297056758084173551606349076118903252951369866090390020594442204382817975157333405599572278314479374691711487082389907138345317472939323134694956124235708840528350625158050096859260805465833440079176977965351225041383389487802597868524573309389824462492325086149225291152667799911756646849858334445776323559227574901560449669774155598399051838542552332434665247035173656977240809733639411910213550861769028842175775270313393965330850266207642839817301292387779142358866006579930589932087352638538715742714818564278274156550444442029668518399571891659266957559278087074366738589277778919173572496342944471558989825175826314170145462239658750670933873974806407297698876333796558463878856294708039775137919794132996707590777517723052639744093760440032947716959380773924492667373612271770834732628862764045064298152218057630415871379940800640121123448934899028816357631570519158473954065103090622441918358479366925156067618428825654530042980079612590721905717533384133053030991241957316532214733827858533894750864671878896067519890012852023234561518442347491160855323937497083496634376174561647385574356529072589789063126719951242024323117608962410105856072528074263475977276368738790067726863145122664878636551197654514102609044542014512732581092807674535610860929839869542255316174532592871286000049985776102150403170621341931503699995881948471435592828824856624714162762250588208482504315941853034026387236964480643776409184588456742632073269715466289786267866614507713155246716209625241296836179133771640949150268164661204255439613969517792120925071830312072252414740305530845533592506955034021346109756385969482483812703377431957415143151819271322903648828051746426605015495960931586880486928112509014428837513594590976579130918986407301722570984057300628134910987182121954063829328669920681574697026023743760214868364054523914215536724791519928682915815491163983299000331816000557176073718855372655782250036144038090141065328444059748813639628279501446606291308068390179576110355419729882703566147516773292101223834542393016080603480173141254350636092680653838247824819022935730157463588344808444882826077563678444634313514214247382558871375461927464742691518829149386282604125716079313813953353424104846549616309102720876474609889843396988914032749322863321594763733628333703832621969992061977497212698381800536018739001268207733343688791723886039381430858805010737377828080319084184765153729082730501467564942121740208626855339170323783865660681405398561464218126810379978646936800595350750997956186234033940998541469554237379527222902329732690788158285926225227074836165762643154058936452859497521897453908236871048383754003658093300615243548882357787985017850287603756958848692150832848599085660855746776491536649963392901708668559329300879000980048470899963327446859275574421893505987523255143409929764397267753829504006133222064202628255906574101454728404719609704175378006417428194916969423481368855351425369817707859445390975490742785623418924452387884954002991060987604972709434165317819636421169486002514017778146741125663963684852173424576274725624225917323009342484935911840654254382817416724049899235441866883441001156912811469398139207795904607411005627809943380377052765046748082268410959851002167106881157373563345874447127133819770500857255044736797973912686272720163713473475415712480143957015459403581409914570224338343325726952884113556287439764716808382438020077629690076958852323200178498730469574766485483532509014624009615165237077140827798701803736821018150341057797786906929954206228637371632852669858465290724184111747989959183458138199884390436928764940385769729741695638194257943040693410993811144577977590132553414036501848143577981632199844945049183058011195513719358934861799399301539901600033116030221319719205361706393054584657353645694363777332939344985515340335753363794749683566781490043735452014433712311528032767172602609691951811096861737150577504517126569651936704253741460892262388769598275469978744838758223736578563097899987606730721039157435417949503938997265923733970967308104437982463891082356514660130194283034289803261572245189801262847076581139195076916600289003548212340169401998277211674467838831309394231791486144870317959547537419617536665326408568796021360522713045725487195787943447048205188139190602795918097650401767462765830505231280367451025246739909656005335814456491791038751789392079009127251566804638128977960857460296748227789337559935105669873351665425463005770509241505968953896508440266835802123285371916261881762707162776100184621808594983070060671921941094598889655987533304292417875137504510761864821663808985823112990137367936153551664925563087948027987612716756933824273382216124113296975805171632244334703863047844538175988789583146298961077281470213209904632734137037152032424838344728402879980940903977791573596127162532830123821847737182097291674276757999792848996034095912079662145858630276751526403283569207114736679255951159330920740912993680352500270786954220042899558566454768615853243994605455440824197318250923422363250283391479296101397919252085724624401564057153795542173357755863756484588112200668219347436729938858690527428579474902068378411057847807604350424444591156810386743805012693037932137908036654578422113505784458874941739227540427279468297757084428082313416989996763854057565766094917243335618080222865963811143997047836333915335822810075674556078806950852913468112275562162210586289259169829849578539796779557041712421349800885806139318851692893172326225544367229200164324892301074031979355495968798449453701976454137056278440466500152806958065173445776065662507225420323632500316912081139650442466144514776114739872491984286229938600992827061515957263197300524761789833697508834188293894759255311096071928378129756020793343140448322657737598940179162353712416049323482523052745784669781348738095211799086858192479770794177487739808125311969190274522962933021870518554651760269917841116414765880730624168064293817715191044331197117581907939273927372715993564077433209194978956033612748331251883987645343557207655639529240589633647219747026463114829156148288501256508645844870559004716564826645847996601523642622801183678853590160022401169038002655433013880487590513934437729674744870421238424662658986029066973380571473746796668693888223988669760275027632607281368244623977913846118400583312277012455116212741411665274174058808205975228059387773898347488075094230006550584136270477176475695605444786092955959415685868590632362924105478948621360425097345119626658058529019679392056716443547189076654030620136149288703741343688345917807233032841745771854761306153705788845298628593214493429672413243302041916620066905489286460139106380472935102644339345777773241101372681282470369001101750636502726538270378976933749040407749880185112132800377535094976041896132788055468509855079857502811216912135779328035041580359322596105687392790677658985411325150457922822420365656011975967126585622581446182041838149634433229550581669059828153871474755382717105146131360282363851277478716412906486430662785951509940269745369397190968704086415605975928444295791013570663438942429123113886216054469531012660663456589727805548579940493620806556571435230077458592216091220269370639008166922307156453629128995969997431515664668984697897013390762944891915471929196629201211347150537507303293334913448626422673263694344212916010057085204511712290931802266151053626368375582218844556216149772973515192393470478887958579001454594916371650929031666868550478531039583745843953526320284811131692284213794241369756229732670964971461752530874316636940154565572653944392558598019623369505368653503896301517300003930081535769793614799961305932250446479762323611900274435835426632672017337539201772346389446464766478373370361675835321462522457646117338615305879557464041558645323090415476254564975763892248586062868174704579088952889811429981833861724306329979687958025320287201130644921503352305909280284559451263157072848720533355293776906990771222382143018201510929632231997909776860003075854169973931285443913960359297721554237854351674765918475079617730670179602390000892011589801145672756835372153347773900980983414371029247523755301324425308218012920641196237612747500381816600571747502662964301939898989840832646170377892720285431079240287024835636106483189748362301717488583479022844092698431065196332539062450713130018130913791728143882640825919789058833509212308370253280417321897793604661579222473430150355402613791857779713804848021841656341804617978650327043576750279488805329572223682427035508395995019626557544289727762190287477345040010129120297206177260817060568784295507980344188872579190518700744488846073514923349295894421484820125751997404648601583279231781096465419203565311407666014121469985423088521165209290160809744679470046098214339278841534301533486053246744671105914388519763473206962423072063740717800671466073414168434634509166231830507138903314308234507822017891678250376688524125182197664337718751636961331690482485594296312530473475746963455926410751070455605533343197697308615608137729429612143767235639396248233764743799282536692761790848861100333932261687452618915527916646347398888762999553936783939110839427569153914336974383947100219039311070582908544415398631790200666198403916089743434059629742281140782883599660132733703109018414884442092641789735606185676237309458050163259929889386303805801963760810857978215710737100967951905503738509767607239210674345886168095451500861349308234122737346690717347968343918609324469654604162485974213780425787890676115319151683294553270788827483257352498547676392034904810261681586739208964929828343900524769910088306125220567029051645174716734384800143943746869692113388984982109281287771827755858138275014596590447827993906379220532280237424514562634341388812827199886630965284089464104387574082640414445966130124336830909940486424404070549253335838791050960344737969917196950205910365214954448115223575703037360388810541843940572127950669104899466615024505268550497177675469087121678623694883580029460223049080488285445098586328552964820677488758160392226744049806521098099070503973856748629682565954797835317427313474635044275300525641448997950614631180924031777135511841702264855716422586116349108063827704667797690496388071325570525860293842754208624679658334027686211438180759675699908141636183515019210870040352962920274586203549642466565783033439004428214547389586615414180183821455346153257475962826117020740345261535107087625026377681894050333356069773669846432778685432502495067969562356846169409534202615328509127843031263062127102508216094747325487305511057678758459437720028813165574511921749780099701917743937894513587843752998880688813032927281825755547638156485165086763249318654679585798279921218998814144411774017360135284044445177263958603327494605105049325314871647199164178324522723615825734223041042125459487955237407917339477468698501253406135900487048494430952961611919361436616761557923194658763314963269681755100397395984207519831287105922066019862771152294904421378432334357642216022570417881345790935772599537304258850980709879332676633512560763819259153830123978536875873523457500706371479909396315139561542517801122155937944857065313939819180475944568730256572229107966374156771674271759783948153109796220375803820099392965842021515067132002972669639419132430996912351056555065894931334178747478279537242439878449707754775340782561993390556572909050562862977399900483451534721739878612963221320398797611117639963007725725442787008485301332791334234178733814999225366497587566484328560917831221732159562277846597411598303133274658976938299106765454562782206276265866811403127356354674741095429236968734931159634880318812325189244436999668710474688194257614668385946130930793055495943648360449458573713658431255485175114857608468398664768294474778516369432362762850140392598691329200559347782954064154831795227558612078503073731629739383849975502076683251723777622065890656968189641935459091927109236504793356985939058349068367153404366965047614044211532178420411706921693945699308603786889851727163575284954795207881433217685796377575074383881869203384173572713065191756475111136386235745518769262058436091446568465525355843788735747903297943864917392878545940722594186530306813351916904610276510748751291304007886271896941106094764806005895207959788249344200472597897076994127287116187283997128372683035651206338055649567016016020309025932299710163320163370609997675832293651489483421852949195452511591297768556125240531165982984569119745899874185826357775270302875361444157926688971958942716767398392145191425487342664657792691671651617537538714499931094811082548630186579498031887088549125895468134186330659991138335489683225546843606072406610846909691227463418765825149586525774023129540835970888770705142556011302981518328111395261263610953751411434623763775722832374528824115858794513872220693129984537871930123515819120025603251032484594296094590089715841632762021028355953505163016763313621929582392179686202162408655751482106364420733153252097827777369518912361611594080663331827466226631186832806790694052769628603068257495877165688022421924582279762747888846775663350096949913962145143572680805370532772934806096494859398408949164610261230982196204056080717733484662548982452502314383854941442921784865266919834659089952702297333093159032033090445894615212114404035467194490253398777294790885936453101581707754889606744692597102164032976865457746250544067301159080224454642938624692387403982548391945253422027401433257310619502309692250008367904223517252457778669325608476336685145383807393288935925714437949701556220681939425791329610055855095523817585130719898163687669200217303476085073450842662063856869922895146172889350509919216988263310572545020666912263277020621435954659373779687246718388953341513786545996673552284645136366313224406251552432291383259875719590840532111186402806720450430448086370306342970194965658465172954122624062518888748395338684159303598642175169585869969982802502872335473579008204953942103903700957257813297525993276942676048370879428267088902119139599279906078029803663883965764568550206937955468556899202159251553539159721342171796941346528527179525280203949945534980704010610827349448353099126836166268031085065954691230081194110332365440923292769861214220540722129219705776222834386285588332948447420225033646111205491361216246050054511354205032654983298658718326184880619438729281691615167055201650194030004613429583039779941173090155304120369771083020704604139838356478905021866514769139276896790842022250763591881802172691216661940192077808152193058791530960002024110435173921771412952744081876027637780517673264266968074586123720976439204426168529228611934031549416548397345859723453183089533762128403412972015147149114716017530057421320154901330127262580790923178237054310284445563091268639091294203349239685370457493963879224879231998073990902214660718760223511033179473739016166915857729297612576465390725003957854558526946162286477070628429729241536890694125580106835340667877726232406102653482601918517690848661194271555827912308668527929305354386148381079304811518297369776185513083288189191095492978024444604454172953054068541366728947482422228575796806986725462700262772403245029396691587295572851081137077178909232377521589967589625807491665392427531443628248554570105194167126191210067836764246860351527725849822366430655617174713376493409047831976688058265079940149276603613166256729263992462931474655063291465344444956738149663818718540780045504474901691911161517919107147346400965414770683780744978333040180732484318302470068654636532733377303988661365345416937197370023664622400299028151365582223596688959121919053425707667073218784302516260843579427301134541697567336567859701785209666503479848602088932828550096026755752486433546750758161403877605214157735573889521470785937220791433853062226266429101504367358755855899706418572062287418252394111684185397672040533936133309198814258193230047107378874330528938122455380675261303166694736126110996149353851861438554396126028837850736208767840227273434907627954209701757072805835024492629711643708731611289955403397306335820106044078677311464841646975117401369264149276724338066200862035440133570183579047074102225876361575128483055104609616331666626166242263276073298645836587967672639136618766760994468810933906631780764886307335638368203146998315431708389905405087519190140335016168304458291082049773572193947172941578180191221359441222508588649364894735417696980594739256753614161797265671752032275814914572405100829550187046890397262892451584531664208019626097124283418590087446570855065243594006577955261538371482974268097235531607089046051343251925333179610809056292012053510526679306776997389250653464648032867411661553083577106099678474646157268281890388389454588117194418928295142854228752597327415022863153373590971009831403688511606373486169520341871867021349001949247153469570879016303933286187365646650269428083456444912069843433598431324490778431651709059143157598709726737984708248890053998878966265722428127688568184788372420673262123304375291008445654849973853903118274065202734451216179432665096972601778353040828689592826227716627641085691129621754847323598595936585885588563441665909054605955736474805862965916851316784172271849101489932938233219696667527912262414479036578174065290745238923963084240566569621496835653752506393751794290919300520115525212650030062678443289964254199447675686934304596039189863224992941419669009458400840322773154214597369597806261472485326472111638022051773458785768549563553602750874535341739269449391368753126609969201195308698089899111878859841089230585543283598084834040408361490194079841078557245242635789628757507949653887764864461111690793544283681156282184805622367182176807792825133706906397145923467902260805374178959558230177599579643918348899532423651110543373557712189497720889588278902716075002770967034209363611353526719794772158946910862170249611806388313865377550492063543467807101658724831543700749812897844805650947752767391279712483180924363631679683996740579028021327142255716883439848083325508688188158923352609800523734596671298331372663662447449507016831352556716508523351554309528842004325097060173947343958652162952316734200258747485024125062144108254151984012356709465881927435587880886831489465186828185485911504079356493915160180474708426224128437511318591182931232624075347279078958314621698473141303415420529133488623996804585741727689561789161013675021089504375830884098697954967507078327798551415283109617889460234832300509121801916427371346432687125049200903338485392996458353245652619575304855819685974742628207495716089486113151766672864498716096781432876793621319644290675460437105072623542234710752013798976111937877789048641666607343135970535230392812511503349305546365620345083176495064734085621399159534641980864470309466327467395156914320430068078410426666615079888083452733378445235731423039708855399382931741484174801806731710943816052148654457995356557660485357074529512050194592274478886141368918733186726349430879107711655690749722069873802248481522149408773131406986434611701957423641963363415341873371066850659114516410620084009377834781143836168544918647231750823790846855888615104683829896859998859497762218164186329224172483509378532082985803716768929431705702806691180149035563475712130473699166058164504005563622679313618567479669055455731342843860929727426040068968302142948459827985728188198903649224993215205924699140067216192225805687191377279445047850772150682552647049721560331651292825027389732840668401404092533534330901208013473458434853512066981906854157706334552579798856370665290473579975374080711397810642090310551415910883062701921560193192496418041785964578770033577270515432854671611718908714586608460388171318205743784476066542181332944052906424222945867489853488263865474085925889640837082396159917053666374410443726197223650965048962053021355718634885893873785883086922771767019793427803353383983689582892468045849739728372192301304216411844428376978718242450985105217400091903391604577021199535003544639377589234526876582886366093815591244533538628986862837244008341524325794997566306075496018924940836904389753111347384367515941890360972396794370730588664996588741371751335752480505310291574212119122776591463252093450286199571359114233592178426451521719769683943752245524197507580087133333870330072458944343396352556972798998230104661065814772289715722143682459962917693979399461963727418682870043232384802370668834356835780032724877230899414620308596201811845104574262662444841292300191297616649937650459411913148199858284626273224116029923348341383945545109691841814031332224587671059849749790762336576564454575736291845670876163561051160946706513412440881044068064798897395115893216146168558518975120578726698639713844338101518634776757778593854461050497609957946487232754861290626589632999342305049449350251580429633422362550011093732201753813503227462231522461748259931986827742152201885034453173710613481786753891182684625105919643607551743435022584142066224167506914262018117061383248302521152733074676454745493781090142060679637424176260701961014240195415114730221812331162036693695879908688026141465437362439739177781332650563154986623717898722064417704517213068526848633509306922544824182045191799418647217004181908427054775938480302511015223014845983851653171231693027565745960151376845948038931677268821246550521476503901127692251245361634022863048181336239828264876878110293861105296648999274672889875772444066631752203279814604325677679291559794151013988040989340367468707297457963479022852971792756094352223476577936500331686599157312914232823549493958306615140195510006557599562881925469098416568792617043449977123726674965680238913752653399682503777870945400395832087076731976192209024077392323885371698517492248048313378454130048782428015239109448108216884570730393064085413905470844978523319518654463005230178052557793046312223803491442348317449176209881139443303825634171622651452001301824798036698087808898157997965698133915066893097974737008658114778789599019457732976893072255263914568285945510261036954145927729673144257815628162431092305445705923058399875830408868829541851534266831421718380652010660472021545170586709556274666571136907133519404469940188808859564143277935831451389069605480810922726582361702024906159898461882363676190651506101988863201839028726304211612007459866603594186771911892275709522084262809347095917606737028327529479762511632087989186992382695069057873254106813037016584347320103978445854926016550937254550686961698035833770653699657156415347510861201656414950852974753532868843531272917615524964822008133011632277601448753018625496625230527135397537660837520948766914323634069545874216553784783572461728119841604520000945968271344181198645016051509478982864270972645755862104167613012983007289955646533207877753680190547214787131711594450034318621922783963988189383368629576595563681644031157923648820618337031867066281831017017258840796569440262625169984196375444521458345919495126486711874114772516864607238351519479012004306465041481372943658723251985393819624672806617017175337840482373050670122263969532816655936977401409371311236591708541244291280524133440376523312683814396794649401930401985368922205262714657979575147790250234794278550636397727694747547509679063738628292136375704604690466877062032628352184441622890416010808862128665208717598878276476257997575722296423657401580839211077684474455669688963650506833788955274254312218841970739397881501109760636950005563692151063369773105279738199673302694459412915201709691442107323808923326565274346874772931176376447010601020678625774256307813253810058585492837935482117318914464694340785511856674960627947012825856846912753420124237412519701582246069823427141299969634217980565050439291335117854196362635449321875314706990876468101549195428488056985888098074644937745282368818175658925149519421886290108444149690345786721854351623263647595159871007054985183114351985245442610069662664479523069240284657617255327330982382990003370393795399566587426558873100431704234896602212154237093113325353677550100631500617191042072257993323017949422653440643291036091482341337353634428338763272568317513647253817060499270432542406224872729871609693484081823023703599898546172720474805658683675624570687228558895987602786069857629360367972241638315704667741992171848635692240922318759267518716619718816401574158820265513850526508150016399633778223645815364138839135462868972588689005166176352716577596728901152938400629266510366300850333334140592514966788303098932088127259795405912472811459652476332234170606072990590042001197066130976140269279461519361653908656957628552158142634040808154698139395733354763313826739877810470355157161144095350598301412546201546249722547944352506166260434858778917340957985793282149340847513678659848606958477364722967057073010874471340505221269087760647685723465441071844219904139693993216391740049106393262628240128885813011552953650752444750006479007812418790879726571767435242052301825775459849323256104873415625765958445367137858239271105570712975043104064298058259956802932186931625188213895848281907661796582591083584882817491947868649060456103322420041551820370873683090531316613772806792675955249663988927317699893310640941130866153903728287878749288790285051115379235540074054081052885056813302759756791128229519970246179193199180613037842989662133461252326024432763219531802878644500434528557436475882639648598397265729755074298369218876561098113793212160109484996105369585556035030262276177296447893100595514464493278260893084118666856559952154335808630796717339974669479099667766060865342343058968708184054225476182291217189162542930012753853780060629807266047046338948686098746772548888307467653661760259919673017403783473578781880551074850268866011002364209904864618477064812456182777748017898561524140674231513064562132737669059175782914693821623567911254914441449110430056133934720550458090048063323088398516955426428693083592040977895877729505856484240197601633597717011225125302754078676655541296965173163549656674594626285895585389290416153647476470698336541205168675455098782294199429671728601225672645676690034634226961476737820096473589404812995252284404352890441934194830461037878478250815060408470159751596646237273072054712822546860332324444835939751530551982373794158682512792134057947943975536781366726820760622765282897391032244546124840353301788587102999202032377428235930411345830269305375202466766100403071833281642874020685105808371458155262467249460752047246532129789492741408990558397584707633507994970311546175057994560827143442903942278851641192490518445801251141924008782656838231318455466856275816486274807144955779288301139369024152755519576433497175876868801893467587311548159695550174919220078754072136997970984519762522028834411324398009092817136770330430765578926896317493858129538047829644111805205975786936057031507366412110444535141753585975227086645503796562654454552868837028389540440324670762603411032258225931862255063389232264473838880752211173892495796599477336220483480967180501909698289932316141696300050707642287254856315904999706679183678356610433116611586247893930076360538154497141023964978442303939041996547817615207367235639427239957335733460253726462118464332751998669384818107886549391269366811447121039248781202102535151130813365188061142329031621483684485542928265865460521778916461307674599136495717984595533704450417615846315316211612871405308427149062736544230318940420880159720330807089731291706071754794763277461660832951026411498721694801676645575256841427415685318640961923523060670473330264253062657110604047935707688589551561759639163668857968128430104003554994606530121079894734356076413394933171659497941727542757090136848064688690553636851832774336866717606485704415172533194859696998152906320502159821939527402900781274346654382370714838601104239975064959346870576201898929662462343681420997973055971190290365926586444607018458662416420590128001860611541925844166398323213777518645916585042797544762593727446610550034928286719241272765707596464353886198918945461032490606191926525346389304386005445402456976150409102838374154151272948202206264553324548384694270408215214791461135246195076617113455870050346501657159459846582203131043117617365452830730243001039498129671679781473780060346419191476134248370051705295782899770186181736048813583271531373898439780338835402144159943989938881995522599812170543648053164806363804181511491178807964868666280245494394352255139024646013915711248808448508174802545771862046405961621358550382198608602882270184356956564250269526594555011996416428556179925620943233115315713632337861958742357868692146982142598127542301429084629869045666873932795426915191844212833152513320449042350186953321429693647158978610182226431670566439411724078839564456381811688673421851250067330979167089132544095906398862291795893537874458809061603102049928098249926018570621303189484371502415126273809279754694075706207908188751228612517371969669901219693265014665342202246189971268732152147788918748854806183421639213248556669963257511274383179486105012833752065587659875393400432283862636623356405878367926698507698824054149634975266008306438565024417349170889192873016594286739959110972536532953239159883093397506146292485978954328911955640109737208931150243914967171884357716858064190718350419842619165777558122690482810836245128679806177834766098202628746207009670364206931386475462373668129583128371364974219566205949058724008027620640894138986187241538044580895477097051845497187804649806929019932981672642177081878469682615591294939558402436162335722431378572369170804523207458707882186282544886565877401123501237449193536617509504461710335064745996470965318128630280638975270150751633605303988476196301656559506275701213945576419219689325529298252138064743889398962794012220806666562882990860504841819642009836158716927771824859092290777628455379795314149099212753196521601269536897773412423866565103592555748353843879905539735893652529653094477843409705787927879850553593074632328252836462826867670858469929802910781001596061742728978390607224998416698497792401147224964654214090746192619014789407498050132753537892919789175547265997193189704441608490374391803963233623572640740477678302864755089925648437567344281303163262900653227871230968255124115140290743914618959609974540510856225373369373715100570338948260564100943948040497402726433370918786761433694602542025373160953800597665512177465499138065492849694529600901629445510903352602874018399122953589685178346173991179698682193718028107542654741179668313341447416673619189565311835376915185067669387022360236208904873982895266719370010027206253574692654561835127054869231635539827896022822114290939345212781833559834079491150808615038719965994506887454734293757984347618118000794390539400066195169210230974632747977921232193245648495579543855396482901917121581100170289588482678114436390393408726596235982734748328087711005957129192638878168500010560537918629512625739870978101530061550168791996938872683043275551038612371063512930114955408577835305538598835591257255501422372381922198332519922103930728044066289706523198916628366778576238930716754706584322567433073486852082097901653957706115869727300759526045478071063975533733877546112851907243438202914240370807196875242235204011187789830610476747083060098237339619552664384901601417900570492356536118019338156508172952638585688122982789491318258846673629769598891201362531038450106135486562916459876363267248352726945332838099559010325203850754242996556876562482539230498370740012532152544338748238915489196128676827573784236985611988146871659554126009286663124561704060042741707738960230150515798617007982175060553173594961871632900032302116198092900122962430751920284409800784385699692083074496079243022411858513069344775113392384899248768043377462548995083350755374542078501242779513552024807284556519362174479046330265827330948980550560296238419874380038330899494226764778846041460360106617445429366229333556344673251022566623944883732840829398584648883799639882529963745872329675532035899523272610896837648282370588362647803023354424953128599015592559556438175727452824751838867452336335343796521604568746099249048946466668823785961654356339882944446651479201070301210407868128725579188429345725282893492765020517827108837096474523099889723121760434050072402062014876812816210001654696489504671990113921801916826414993068451431653335173039261002103916583204084653000289971800994932412530860667596498344115535354027584321824537044433387329082700699095093169160301636441827888706364647683599485658616297560341695472937478475309149662686857693260639176830096511015117233867586799016818858386830155417264905108930493709514662851787579412613239415717330611983106937389254752366218912976853691561548470465159552765189317554869565552660210923359672541966637603630359515865244773968996002883698919249392537580098005869675405479189850282487833063331197671605684661709805075616191201990891687084756643341346316804590362083551157025613157473119086905016200784632237723545972089274642444716441100065391881679697948921892540908888803988321334839689563162613082451874673410369686600417308578511706462069961923985157112709427587501134476526927798125127744715627654985070076544381624374300525118689550433178888719165456074550041717204867986312854385038434421133902173736194688514504190913496472000383017353462292931556461831183616065581631868104623824975026025383586760969776989058638421269257691066704598072156193593390895288559953266518767983569410489876348072642668275384878705134836011062286283714826966660781035423944440111262537913957576086933823686507066012123766117141247453806318240078076055703601411590798004743026618296515065269454931374973853973342568293504415776111859563147682472727963342027829895477229419783024133677385751539004751483392913489276503958081849545332373735457826455492748102419145213540588540713302816587444916876186416224733351101426309989239634617050184526111869597502417151024454755051971964672842924054201093477845695204276847559208007532354945173952964162312692553666832772874377867885959987736800524612906041894990640822377994545514133518861814169255842454616062636221641401521200828923937579582055577281527544104593434372454204419024597941252734581006833587459304726571124088120448303919733072307166999575697901965115385149403260659049964844532783764427151688470169801812127323967355480288053761623452569891634286694692175467478846593137422572827035937966031548551614012089777175832807556357872170385982175818387843694022085058066670522943280003838957364210437544823828160245070405790868338966966240253878512559469010276048276647162063632140246631696508004532647919324164023907766502607757646996233855864706481046520675440139402883859128858560115969910930995978027890999286536860910489336869617762583016043022018154672156488499516656029530139632665470212860418222007709429749616249176705051775799835081550444215685164112215891210101849858503135280119103565333937087949303237692725705862498540313350156790694098566343582377296784947675259997599061384601297948407772140756726656358293510510839918550490733750122807495404259710709075780716887000453790005713824531491549727465929881449153527018987474701925029886927704502202780699989401270233621508124615250701672438285704064056675486661918404178986444856792813426286906978330963366694009141338010036681306546189643998865189868988319620747325764532434586646594808663491024890560993282778364055527421600645751694304019276699022690117985380428297806968912686080597810523093523675014166157963408331743295981074566866499725246431187948539093695209401791455552829195566880727427923600889950397698110510815960865957715530216287337979008387220154243026579062681700277199794232403665877688170563705750169694109735219057633822684780571499385191862271617818155988275319763076947641628053887176967069707189981925943742567418009217956598400652112889226890551405315122834097862999775120618426537518195768579925714746493135405055440636937217113828497612526263224789242768316284091639759218981000507134836366991906820917998397125322035483872700701032013646447685708414216586428707546423286856453610167397600486094285621221614594161856318019868693731552564200762018637782983775937793379468178244390907185691950939337090176116170825430053848658924614103455135122302986470704182270495855570324797906254454273014298689679177940712907107677394612482933507067031993485650663469265174052255210152834805800988137423756000251595423896420563796498922455612822738320557194003249510789094848913834855968269283116809373433800782357458884562777205689061358754066606764630554356366655874596207463890865503055658575344584538657386009950585054004280347372483338747890911889907071259968709783128247734805586317435020357499834490434224620846044679268811468172105205602838827387002116250808095176189958168755651856948829797137306618561734019945753930820130037356655041542318070584639647906220851771808701010207477182212837105807987656320127748589062039348952982715875383012296681154518301086030425142535931933594340816368922471880910797106266599366628698539545147774424371479472453916335435115963356000561737771884930624342984370329577116050953531007708956491398576017772946813074858006627690553675390486866474824379709245247646183686529909033853627297603275598831595578463295208351976333209622680007506785781536810043732911925857070841174540351249771682916361678955267267919238118402841318198318019715249268989031872898983236781888123146381339797496220865948656114659825710010542437586275245460499936026223344088265892518958379447173316911656723901549698492864595740941165583202177086777621730371674110836660940591147255761002312974003030055631910015567867192721429715341215492909965921352636552940042275271220562637454651915778109009662534228816875877938253190552580843228763080095322610854195207440092306938406666082093781393131431373131462161608941383093658087312774492516139099545613804412982920646263144989900758487603297668353247384489647369936614748385366899452586420506933082690654750155058503579626409568650923931604692421031866924559446316413470367476150818103203917901932347059175508249047097417259525468806271907158320248749608556934173327861177296078944903987458144668956107625837830861199758314749752406546893969908576879701374627939059426876461866396676016596278257672839191849526766314647018642777738344724323542285644989051283049858921943415310014021958090817742281375740002462080494624364881993738192055222555762965680846185442957920802115818855277324545151703775839617530791261246090186293536249224277942147361438792063160979930703828521021743194683188368999872004389816367730285769351082868029168901028708309076328532610307237523909278401312461704098187795315951136081102070801482558522468306051913959841893378552705244799463220389466291356787716246396805916547847871147951151123287332299708319771895754114705866307853883311294327595627864444036655531889392017086560570313898706487462690788544430369378146841520990138128245969582750806599004761535649886063688507763117283657634195639648450287941582632683210386744367120196513134545468091951705012441400857949526249962596992691464431459886490911508732303978668722811272288200814559828883883707142156370629814529442032109195058261362742082049645786875757985419938470348677318929434079614752122208431333181140716836766094417193456182426402907528024989685918343589183254255720902175123270400037124215701253291990411265013487324532036133036735002785746036755744460181277163231827250780432228139016626086089342059467930762543316401101149117694122305462303463782279752355153846087540798205399265061533226384029984606912652826564853372561710660759534377896685764745512443006280810563827950594745630275620277511326035881097678162204374836877515450601153265815767526762699834287294550165022413791321697967126598461000895975575578488164109515673598371390423858385154402525548745098660549901442931509969855807474630293239917611979273987499773582771097447961738010242330464808343600321230867948194584447254694217744993982113888744538674405267269512595019056939245375192602417639742591564999006849400274201299734306967247860959733799027588670757543939539029854991898115375279993100619951123153985621299364010960591278807637210483812707330774663586963719307411796678492934819518153158990465859377252574674777639243251280789394043241443379547374177625546078662771406436258870538331904892436847057694393780541333330073329262236722038892343931910334701695313115323591288947738259949918246461387682917133652976771336675853972040107824205991956480164540866135626819486779320399435880102560017830868777539305184296519433995705005906623773922186199014132932693502753687316418106753110538551466642778678341946299412609182288787790650369601328982038541594286544358209631491883975638706599764205362689996075724260634991251399482621848313183885355237614661625022433792993253962576266555164807764887010336290021559397636095339266009553377557478263178882273619069632258158116187142732499644031831558346566889131556217025370954496961777799242647428115164833244300938189900775751553568660539934835737755466973280382003945135364766712621402233173666902603428222077453267558022018461192566737853954235394544091284089335816489709072528817369616598699468393262226918729226476490844744485649090742969370474035613637296323464334355843450277176450176833693905291651398675598834884610386034327289200507066851727276311483120867104186049436726728648629911974710249104281154672810486940571613461007844937698563939767934546290899630384330899627658409691173235963426755203021815585095039084815217632597011947393077576624983962774668027326416881533541871735993709133492437657705854150279942435513342578079048415746499125203856130026201467336254534094357743753070910104499995957345606166837174265042351462190721247619446728399618489256507940914846413849532488942781675709290518449559853514930222744252039411791809392952595048562786488049259988735113379341825354516502815111789036640695333330164260671095561084838699641899636549488829552749827161416547358998779204083911906564309151171046995156253925462702663797590011442634507336584837376898237451448331028083747969163380052469451886756917737065522366811513288373363819044957291570492359393177057072354595735765512433919555983904767237694085738524757750498501649177262805146594620529377241008926749888132076064850375841042481801345436454833921173586906430059414354588348366591816674953307084323148648772295460982982518984903117306111076567186820782858472462809065921688941443030712543737828952608170403175059981650644569064215369198745211295322486221482140618477946371820128338437964010539567867867426851804753248963088249225332151439995543060130163083990557305955040578461714232608241610026384120326877229316915393909778378997943610794135047224521786518947475056007300850748403568277636651476837721764365922115967293158380747475416262949166975034650581127557662967312572990936737837127858807902386285433892549693205625189767563858462736408190779626800899491004892037761905920816625012995084082777938865813178237837199243646602500918543090366050035441728395138948170964078616272835677278782469637067852728134666479420787265183747805847177235730410706837642014151800499008966743697747191896861084347660995189865283922393716416569900998937200994188398476641807405078542335592078985099908762503640413092322617039331190805814251015380967635500537994474532627585674935803883495875754710187041499843955115741739808208339110186629260016138378690776775344731927187730489682809016779957983984277768968673231856365990781522154397892435250578806344996428960180898136600358481788795950755877123753547703890585858862642808775735291592265051465629739434527962227789883284242952280005921895207176786007872394715882569859222221423865817783684904211446917603010424350697581852372459459000080345097906011625056013476216260111915742303990046642105736717387678222963668283000321707172103110805793921442093228530292859592794348313408337816226776138564883513499710076072608832540988651444939319214355814031490495212987479639341056602998103378739658684886518851067555167338047487358253902592974604595317962719165556970492782972434410027970550034618066463345596974502190484090570079922784586808897043437003101903384823098087042231493671796258109711383618247438900447951766302542722061930816097649327511915175768869649998171908150162370728330094572414291742535071339248116386053746671896862409577313417604863502508662401554316682920737860857441025726766404255988640943123841992271632006849964271310098896256182373436451871662461638683844973768373814980827501649386087670646877064662504525483304147625134432365573143495466731111173302100305509623120006374385789385888925809229701461657851115808590317455979277790534659498205421007169412617537457857983037435988901831003289206788331884805563087782276703614587714826321751263065706581748374983966690961916974698104206809646684185398541428382698603142426122300424623492887888468462276598017889834872607396946280589088660784193952569328605709206781366226106025979169622573026467902275073519382653577193225512081744418625773580475078331937979492156892038112797047314020521613665193089158111273361207292292182330402303874190392160008046795129967206215750449677831730005823270959636786211951141571431493073425285929627841623961905806556135594137806541109726714461931204929537683213353045273391563272843510469268857935356610968399353064253038233196723618702487489610844980902986693684213988420507792849565065828480684123946624419948566704832456673274029716064572767947270154095510592320409046391120340931057494073323877710206832757694124063310755635823224346935913876307649909222367621816839047468572540632975658999760022319385726944542696716049338184904848690180282385231272508597317156608269492937553585807810382939277170987413949030788073472909619327710294502624195967668209834815334040143875939173342616724749273765201140728059160891760514671172998970796221364824356538093922355657018731638050140798496913706715199443817021741224648325844467628942971682285609662016219488417465258498556986694947475491659190203154216852449552109767378190662189746556707366286800620061137029629942831796297429230865606352910772699068757636928231101091022138638526022750786354431409607485306902425904442777202291294402824277082805248452739135124861503733493472143444222968230939473498848563358136873526884806873825551724740362331808253549329752012042838407226446222519636155351211445105994635694129342712285243896646492297023535139252431269538798979276401044338960995411558801133643363067849684522510143884319305786085739827349839834914841692725921337424501296855539829728887603303932488613438208609833160745057183326021854348267011118770614590221795801257763048687715814142664540862460132259661742384204862566830463491883114102839330480110281872095303980964117798062052115954428620823597511712893816079556301146716075077093678294395246896632089268501901826500850490330182752067227164972844846750819938109529197310264058962643265443949004684503386221273172981369019920470237609442480090835320598872686699963383303048998700324845661825779566459533982597002484153146311297837632607129367201624353145250513177454953774205206296943087746804800573531898600489407999247814551877727926741997166639646228523941824155187869840759089494879387230261865344054689175786591543980451959773444969367583124442264938845137317267693200303169091024132952418632445266102774647551560439326433969617684134388478585963578286016726959945775158703019316427068857953661380702437617924542682461858024282381375646020873079754505706659704133150055049882253330636311640910309918427245732810351101888410671963569767260833919552566546289849074891448888845855663074302682353506127738524529745234256091949536364189666729072215457933811287226028316035628570859896054242721395063312118827567855065662031654703701134747840760220350396435729863732237842284530107320047032519329791652053532254491581721988448182365170967327003385128295976361761027861904163316343000168687532114266042187326511604654462371338723392406969691749993120309989898967248472531960913954774374766263395481456489176383699941626470511147494956370103964989823373357343072239885342938040090736304660730902242367575927966821090437019314064688977212611897846526991981662995444102526367608114601543738447165586606882656983701505101784914417902104072402378730631799283905060584590233834414643865960631082383880119929799549360447927993030395895233124413422438202970165917424481558553020650580614972917298910146940237058970933765563198783441284911281561745229543173331742801840879046336546486996658348868198771996252770805342432271423793248941270453954222612077642348086641354658729768429621373231334001675664739427146453298903730867434813595013776948421011986296229323820704887137676387498309223269153881110625482107118477573919479494650488929846867987465416363367315301898135688906126394066087781395896116286816266964380248904207591094210567894903067891369088300547953779894272522200783953103177884085266326714868564977916502957259271853760704463807808733695317616151170717875234798344057992407366558045168532290983160141212420574671374913184339781722193967139040368883068822716630861240625865740111916370005636744472989960056741049399397387338386873968014988445802226957523536407966078597833729879642391463511180351978094208831173651545803186282793647296517991867034532224349706804093228290187963296230631170536761502949341034360982645459457116301072205527431393497874905564110684418802508717381484787425393488722603813481600260151136476528690949316593280801924902593976694667816571254487494066859995389386108242616785447739368186628882287729443017174431496103412384426960296130606428006098133030186069546185482193077649196673863222459348741656570115240297665540078271700590448485130239339623529335285167157083369521167003252966645954958980744625722916038201635122943938517533409747479074799639981095986291184479318217706390076755740856901825058372061953549092109393368691539826000883414863415193319551972481054716269470362309084568371895398893546487215044428947227811854280943085255096507566588863568592702168506398231446524034818646030504788206746252208264133754915372611079510007204384193728011134211443247114403657296826742502653284100676814284850403363104581782582976523002259969518923211939643097091612505705303047487189452340035151062864729585890405476719933956238552150829825735252669329545108894193135685748955181368311276495692813601625472243226303547555525242312916266448443445904989667164660463884569136364678026152082690062937280351084616291448476586886004671855216507053782367563024677698382016605044357882397138520730599195864639241981348455882039896971783515198040615831596982038586318526028769747660392016690886619719297441543659938961224068617351162965902244592592868352240116839716304594990970240448851308197736489742013148650680833781936233047576808691049417725115370479874179692963891340970599125442860462289395485244728988366283894205063344779226662043748105399921638176164110729824845231273914397866427281645476116479924557549369180605749754401721802431966877112364066014046882637255257311081369927155884691421981057854323040972747710664784195603201743609431700820043851653252232688492392595122601995673614601857913598787658828526101014296407395969384473840787709559425286643435936074657138852894323313536430192443116669456083624315495134635854921023833666117919924855657742392143754250057753019824103481002892149762345665203382159435124786899142745053874535734438925775471220384435437528503741707787843289468426805546533066744675300661478389348555235541512672864199879596296729403207544292611754528993562968942977184341435294788425422340046134929084233759178999300617703116926605141012271072327392363637519070261368674981666521726487734982541513515693522613357410876242175711283405253696212906047496196139642307011668473739037941227587043336535231758408374519905161761875684852011748599774015828713865821191818248358244418040560771835407582233818334716100151811608377296077676550050130568550411721192330542458290504114185169734018189763338930022102940985839949335663843313307452698285925963757457519636704295600890148421544010645793448292783149264569634517306063651759528758433786551609296507070201263346584572511991862689126349367754984994397432005400886311922765089159005846296073749977522054196745572611630741561384095046929049877779658169881591083025597761700223824569325338721092295801654897549617437522126153903523656848863569904257760669314447226037741455504743262149920622546873297297188111575478444359219235400316496337084971717748715716886142543769889232968683449353133892187276406078209549094335792092483622287730923439547476870714352458710780537291924991828519549428881074155401080229930139989103625103974109839045706080719300991092931992518535254215862784063391326859204588058092677540857584521094481015691295223853377430256016025465029125538305611098735572590120492281385551768736595594123188902397458846616620740799811242107561243428184671103270331455329534610956798070758528514596365149330253532023512362011360183219032066474202251475883900466800619217523682338338402277740084574962371848943273794534945015387594782551120439378675442797354631254336756130577207277390281266439981777623634916904171588238728476436480840806098424242356752713955475399310557778178249537062364807572528562567670117563748816133130282970751970720103009047673606673317422695066695027078249448924298268091515430996412670826011723950484620167996290834672576530797615999171656275862721655630598531381158176168031135000024639370683177711114194341372618819990332755102697995177733205293191475062666073194513412569305614070368992248714198033999728604193684802540949880860169363644971382020413428277560384440983140690972864630395036208170783872967370920609669135307149015434510008258933429395237802679432220036664800538717696362663501618986080800806150973546132003305063449895596603970633785954039017440172013337404083207528557176285838612206626682883959475985270662178407147279349374558745336660707703292444810994922362058751237111116742563759333160078738461632996287465509546288152817206476856135188786847625390170618889275642036848934122582729703094178908315093605399434046154982123558044125516398963445121583172960523218771952753551979270213089446939347726257798414043116940319392413760875333735474665742417120358908255732064740722258033931632311302238015916692988732012854841293429975826601113083787900135905588734732770650092212982914291703480322606927270728460152125159884730471089091958406672208848770200982064446250089557804172737792897292775499042134118613849974009557314195444888500355825460796161449987327051105594721547407518153718153481784449238489641965016710561691981804026023853555181419487829696800917919559629762513068360798658781586007388681386479283079206210844989484200359455465377759721963749334258353638379956251544406866229451036576865192593900500712038221972454574507806595510140527231444284997295312753329321231227848354054813647051093309470450971925915488741699814835955521930333979476017084270676899242177694268769232744290706955048169015648308047931835862874939229263162104383348820509694999434869583673840313472213495045479007868858898787942623870013818035698467720616142280224454632336849760508840917471471182761650223242383241181389509792823746005782938346554693048117517683853034259385859270915329776462746138843953761520207991193267351480383320607861287275335303069555156169412403348738159087753871819176825510949962899238296864579262847930652845796468449887820169842609031094309105043897753399968889079982475862125059376049449691191823981467718639899548833606277241142948704571895119853991267819477166305851244006498434061136603546987509231751980357088507951163634777033497244209467400377817805549761268791468298518472478666272921853529131378291770397169278186587261421485700727774114599329750508203887422796769710361190408175194666240646909099558111772991860234529157749887573464317991254527362850484485671638873785670457847817930540746751835765977667504962177589354583416747595737894419536802043119741312903671397535451378517596304681195979711671551232895723993717587902566727852715087207251080393220231118398116055128745383856099765664304399933419852117134474303943200809507319372719238435771327558094226165179372534557594343697445563335070714093267782339242522859665594610417706382133026998695252497032126323610945588216217870709118575833985240617813129212051808842545235389163694926782737700136221782097907033547058838537389168033542128581264046842149435861947220236772729844529316178320677170633798317752606298595052132720958216661077875121623985436453470077677823390164666453029662065308010976615510850360335106246592455976466668277312870764640254237502770156153028640191718908220133642677170228603960108184562889413616420412549755144863457133208205451505904397664866462573319134772714710047334185953923346061087239823548899630997657669851527383660748567779761389722712952213562960816010582896705479463088236330754869790763015212447133087221680300535234635372766138939559708033011213182869435026011978177802576534048365460004846347799178306758538628557647791597075542523287364652252488401205759621945651960307073817466069006768485397797509259821316307182367358549813478444810713939724850116389018416277010623254872151059290885760172511506430223202053209973126387301503297278088191788541979178158427714740524908365935535386922870329287525152651398795295778883063628163837821645101862625689388263481142153322157114023596687456739450869487883465861733088085747234529719283026660195144858973675807995050922673153813844939766352910279829066349554055984206021422651619902650497504905855947772189327814472670851839907946408030510075771095906997753693976222826683688008394336674677358567539549604789038166309479284322483210732147562397588642448668489309936193360533194438557121243385444747645692219570663818868875764873836017725017118251869804361014565607416755372818687434234411004990319525419030113363634594996124277742975302989518043366902972393601577806226557044997541978712634743238597616343927870948880915744207645750862482977840299703774132021483444749832863657062111327524555240599125990256111261232810904272290649198251394268978050255606409062807437444552300746561864029916912099003684396297396826545444085809690379257197445985836577084714231716603984306178771968468145042324606300698769182070142954387786526857289351315816853806291574146533117394586649928646007037378067852441277020640853435159427855887710992716813947601599834185032792915978889925927943359697869498303024198364835943852109856834140801857796448994437118019427818720477093524599485763548123194385376207016422974951285537573943115344258607171114627380269849558941325812070583173848914604683831745841566756545032445700458774954626793134497405520874792570818166230053387664713463973891369334473024429521545015172974574114970388691058478852551197981535326866185392895544373525451487742352429034051383232604628282036591763419366380099170936801986701189758170854305430406264279420919170919011201795037310243350942851141042031975052466727952984498678864368729523734123582743139219662366262963723655627925201260674294781180873035812485380615146481145702233636121404537900807943396533143220875126842208592923073342764853528697562436080824497296908581505742808693464932283597551247437238223955130186888183955759424889088172355063500146473534275118406180290530771044437419196494445580076251866707747828480283826356886119043028145600797078071306120971271156927750131978852489179506154837592488891818160605080702948565105478364830093136002277812792800243586908343176620250133081310317722794522620514734470042980162537717976828549444405413774989751378238459556384625506054771538634693885951568365312234896160987037706193752967099282583889014501947313111935369929386846830395356744117628547901508160264545471948004855359458896197648714719485442082920668479140023026279481510572601416341468729183252162189846786525577528935727840669212300705210481199273468740805446776611331865163878768198421829101189665210001477008948883689194511929648323795170387474460641613450332846790517493867857715407763952285468527867388007072924634916579497921239921756264346944406045217628938613433417423391740542288674963138960985156789494720149659806252726595931226752232816078039365710248325360324404819651871880350525041507259302411800085441874545221422071060726540289895769248915772117987279883706426342134214233217564732740216165725693723957797837523421109563134852387349559126334413008073895499345678149779846185238929874232280417629152692573355255766154989010143355452947754975559013047639220324005477312901041822264852220720375210963519024229142166359387814077129848057925485338567015715878826539950994709146764021693677379663753637445937840781943663714283537014550408324326342417777784802091711558800474900011671811260106946582695392383160969300529436184077247694062511101841194238976952040211814081976886167759178040248768078387556794230689570777027864988917985412949683572775616071098546579314952388457813962449237211212284439021681194526443678944071852154465138103557421907923336162525544036517759576023263540145141826850075612941769426636788414366177653844086305850941141536541542468615191639229506079966772446730343417934773332508588657374947688212758124354194339949007288808355402899927040442373932144764029131936670443509185691292965008295794714825337488540898245503029608078546638027216365683196315160522483981863351400033589808366558504780317573515823408396244226254653257304718059974210953733132678123208070704667518622886532019871373190056049814849050784659257036448934905393155397377459800038661884050442573358204327034839444130034535686928149781223282750765881076078841302762849247340147473464294592679702274048281839208300803418763454085229167843807163903626207841080589581056594956991091432840129014408500799631052311474138522434010670793544611395635338360796848132511663469641347756758020056688467042224050313185015931500258799899318095497841262518343558056064222913824926557605370554409057661118312009186327193743328932772728816730768315322715728672553644748248488457870417229558018106778795126411324573208765844994914758720606454288928503941572876389993453861332535609807627053244836802778405114164937979547585224002604486786323093277405148499655779878002437895796167238428877659197577552602615650579894556824310840229553389585295351465844148957305179939064519496499566636151954116377485436452661989448821855274285065244133551008198393472811475127417970793737894509723240788887131160277464469866360698907840196357067798110484896285047919476855766421102548304328820126920003969282912582027917831209034100930538565300821226856471466438899028375240783132476256216173312549024234157342429376624901435200286335621695187554478113923771395029840334415845851659873061805065044440636539680106946583958522317882250279075620211432644900436810866464529347712368469001793329596596953122512308860215485930784515963142076739608759739488217310601461101417285270039879742148805399290388801592083499984869160844242670311613838805622998932665773082112070445428490487144892332968435107446982760162060498952698196870019207035129287765761552780379432310051520137268809538036588932119425149119592244468828174809558014652187480424857029923566543441411388297184424714217184971384728273481723578197042353883910347045278703119094127991546931683340873836818711300506142578444006763684699769804769641810175148611720151456842036332330214025518928424253655782103492276381647734669655058270098063399539944806298585650610420848640853899035949200045422218690181629502012515612094386416719426903497578145573133718106213459714758988143582719585718492151823070780264154533289166121843734562499297900889770825966860614161336777945916908269163142429862371079821934723373948048223554984579131168680592740142051946928905970958586527177205947851165003424848400175043663056242051410571831185445795055018518886949232618304042170587195282515124431509787974820458792439495807320956094503484427577501143030427295257068116440421246817525983568656053380241765108431508535661018974014668012881489021817136381269811257264401181075167611500496152365463015060886792548491395659044574896712496054322695107639688428931609121258326756271137189530088334647705835978608535269483032107443147356585452114901232286265010406931409905916303699243875248045527716107014834619850921238562614302139582631441055122229874119592784297972836150801068257214099988466442500698209189592343802895858620271348864612233463638446464143373461870304679860278093252180775695561440188218238500992194588643982664864938204955266019187760912755741923698491151158126708513979285750324665125797117074036781981848669679474683281495206671223020527921293805827066245886483666069470588035625765153572997921431328982389375387976704859111457456123281676145494734653637577792665187389106905419577530529550531829914757627252218531900350680573745767533311697977852499925533799833882271858058417687429074731424524382305692687028506115374465994567666071471205233255926558112613534349254101705101791055344031358128488353335120181253512802022223410300523130246764720175288226529987136217978765957068950810068862786987773476473464938422790974607319296237595244229818975437099971356951603385537501372780196306144223916991004640909532600505813528319517521271959370241361991603819671934016568814620019718633982809420482102258334109322313320151261740914871210032706163906915208614908333594799734236744126942552736344395288317797217325960073622668437877032915985922016160350204929669805538622852851739006961984287807612236038282854779086926731804864303824880041830912538842023173117206975932201753056436630696213170316181411791952895583017009278629770495190609004568957758690004821769350109221793760197946490310367737783637147561296459360705603268850557876468378794191947601160699631942209102445228424834483694423238510817720632493669088364139331185520461085026070037040012477194349935788359893459674238641437673880062256737993232145353775398201397032794148924203815630102946519941067783971891464876266953750183718111182229416336806038759849211954437630726892418796395483693876574240782626210823549834512256980130887639409272504257521024762168827623597034209261514442535617669685610947910511081513221330762950948948932935652512060137577940944609323081236946689426828210180996985182678028865424066777301599256341620424749495321039701027132034057864788077815615646165592990688197343929969113661145127292631335187237092978397600257301264910890399515659454282450235613690441428324882410645338891282816042914918979187792083469139618311365544646195011055311423714230131476934853838980860107567341566614349519348854905608703964127158057271143407107207476715774836716714228572362312254434838473848616200291946385279297069044149604922955273971273102720899601065421308998100148100424328717102389237827826276872096556996819614373212805226007743220133022346305547567189367838762064731328660355268490789448216279023998265145171347738568821454953749579921249054378102410537003577012614651504372083836678307835656046022337948243355351679234416774424296862772315618539607622227217131113855704816577696735747679864314655247087828870910540395767584547600515258173515120418450136016766990609625449048406825864204236079082901825316756860145499929852085709616566148045771025401412229041657847879488273974704923958556955038601520867662421652396631359112458798578239567695520677469934151897991367093827392724931984941017551606421661041083685983868632752869344983644585698445774650590009774502184303212735509881963908908320376610244748707306872183706521683148973270382256983131988685484335418420978649040487364497681367979791362638780317764708129063777245874057125310085244077246375337814840482728205556257043526716376640373193028599729471344638582340271251542485263197579104783167488269939512501434569287359270721530969480748009181266530408008119110612797404876426256846153867835794862480715587352175774325859894471353276979751349023848112957671345099713554091884250906518232093912453228569545779052952924993061250583281062791362416494411411311235438284707813994605595307272136226946312021826285312123137698839303756604626350478295046267689294766302998312270292540812192679463175026077131488861923391794485243132644485388354560216559185516851712126256931459664136877904134179087538182632096481077956622598409756487268333365073833999987316250555145186187570028000639206646009397054289456196924715994138113594415036330025554673113000656145083088206326531853789456269742688272110523197278057333074229792202995045819360691506266828413988715880169212870313000898951692394090904325512987500401972088305104627508023004354860933119035418463490766657314957007490676278717550469537981638355175782426486026990868391988390825193512475209668196902391220057626638299453286465831047562460189733126854950685002583666706718346262009096595419256054173784728574782871208290748779965968723128525223625218277760658878711346606979159453100244516170560032800992925526828136850530286656488377290268052012209099366782450195397575797065758232366123832135377921562572773150493767773925929549805143387661752300224929152585786867193264372450864686140649751649188970828830988816195543535881679175482501986613610018906310293482818745421010388832929955947029346500948396260094774493246913765446456259005933480304687670675682574452047781892854464152618122114688004547489800461242197159355889227703279942430803663414811644055943939546930911201336633975098123043729003872034466006283993793296975695417099328093637305760366087693371130709759244413254715049054947082895531210448449123616740311978461125447588513207016465242556462276854722751061304831124472120232711827913469851222098450008699934827121916053687638135338347237022728309332886935718416078013492865303775022204765793780481683233865533116610666392573400172061796202675553562561742752346958911246255327741712732388191541703699150601753296209215571475790624130395469077120774794344610100095030207028040162061366328582030728322505282589361126927089637084861776658831077128739629069175551097104100874714332757071311155633781971689380322614851774040588319072837748926323292269082646472717389735809872833268854037353831050917528692812389401712646617728177921126314578227675727309113761263528591164834339936185380977377266994699815903102764004396181524845173522576065586077474828365655708681302002387188298420835827183948073649023127458470389710213101860988220303578841550637608817141552188653483771952238685521547959798634630940012758458415933093752559855334473699086150732382426622537028227032746435106641071787645631425620072145095394734744017304037483983261005473847501132277229970938150691862152071382354948581867579404196798953562126871228510233827725979491997995182016362162471710086913647086280044581433111102457210152452255820103183640867243789669377354848752563303274006275971983198786401875822121546539601613718218333736122679514063900723649058400138130466700883643335214093526644980126562059521845658630132429857477543161056844743323029527395228752447545031424287408910201175568747790386652370667070536560241558973567640757311843049981148958743957713857643381285701782134084168327127037997496389465278406887637695125052086925110570361058925220833496121282109035007318081783622570744808832939080653705231887761862500202073717658753768466223713874276253825027377899878574933741135837912052161315851798749506875323470629841628726915514532904033216676725718740028632913293576326220731144095896248853188670439383519501930420110148258230060196111856275514025836864510617756984481003304041799198752864746567359731809253657804267259386359906287429897542091820138195669538386683984141688208293627461157721916623876872422188862775513524208582163687834000229343964316069304780397084599717912876091319820367359117921703088176046139276379055712668438324178909295321501599718221395772133301971184210836123269156931493551723204187824833666456832499854437382161567514338066943695528513131030098438609242149348147040145088574806505706825050355826740946471346569176028857268380150419853824004185338628945492769147884476836783904195748873606028958742725846651547204767626173054873289573954804686564052042277783168006620803715454180080458572133218296256731019870892814335558629915930714271693187367475384940681687363424132360038620299495866273026948609443107110998024988969869952672363398737245496018303290512192532153084590228235467461193438499291790130120578981490562414926649321614439743202069469963841461189980265939045957214596458209188616781956548117245250182256722516639801487480584537468923162801642498990272605129379499020600452951240232914203092167030512921436635263638646534297533482129755274067261505239764300297154513883805948331479382401192510835983909539527578378500921981496306412339430097171272279282587887812820835304282312269099022611519821306876825131763165222744229555826812248655289668887451011532817061335041313701647563671929464529802301622173146379848560813838226324298017734812331425944881044615537303953441602493082401118880294893244615622948273571142187078266123022272574926631559723523250292127700812808750766519015877823034833094555797158903342807183335629508556208528511433945758964234292968591894359627265367444301414114611632939330620080463630710092121553687387668384549085933249841337098144408965600831364988758383393665494228770018038208476245512102060823085053498522646634335178677032091432455689890803343828424753741798193025684076528286170292306276521007912473930262631266018759044398648053114168419276779489498172258226053275641513853587366028349097400455248770448528223750979331854953899595216280146693772417868205303836596239070278564013695698590454249278215230844645203814640922846073299467538369720142892508797406755819699588742232256336789216348291087136921418387219416607034768054488023260383484893898268995438976981037222326540122938243332771908757673236085530509612431184067276135214460754121892126486779392635908094998230677158123534544200844706221075306038437069224291933095646707410664649536665676970007399640577424705331413910331176858303333901898379230045749512659443382089962279289985276833999153980190396899997765986556760510817185839726292516497579613308583821354812208672792701814038688856223870867052237404774058071617997289908437026180114159063117987312608510271201086877309886341944076203085926402336413964116683198869683188874202774349351153074668081511742144892473756551328666695980023952072219480059574194542017387729120866000347917155267968630140034032986776553182799610824942670364897870010577680252965522888187143624360278893810770633624533816325227823399019117428332128872050309954022268727183171733718430346087396778336262395228297650120512607503703193640751354759859701478134496227713372257260504127448008229457310949139316070029180101190699378476126993781594792445104065176297395725854638199592859260813405399617779613624691531903655176699588809377565215047124353126547300690313096635623868978220854386077327058592341517571149889818864731068178030834929670103926646480040481399361599518811065196727699898699780873432355895947984110712610379640744664008287054067142929935933000985268409877845205934911365056239619525609851988458830406345901550618672367638378202272075944026620936353820348677584241515476554994294367966972746297155733398612975771000572566037720272118599660827354216521822642553607491029976760710664023527348349187492522970339857501115684080902303658579692307223766204455021834322962222951539517762827241970702214084666317985954988608401525107293750784070222142806114439714243674408515829429583035578165816290881088104206270374548829428234693507075430510716620044008160711554508069333140645047673099622193471946542214517564055075688510757003236516809844664310464317701936108579752186983925594446713014225212197549269085685109967775647348440493047203953310018145003007785371806618257117028417436782940054300243526948102712556540330115784245648067184190893305682901644583074299233670046146583869737892061706376291347838118918803037465702210424954307620847983980588378986476612961798910568111031143512423718726741550391393084736666249804354243957007173245643043035150273413513402961269865756985815147982312018127433961798442879246398784359788296549480046803811156285874888771467325235875300822194305699400140845820131422448677443370897442307521086262077456287965127729062233945720649915415315020817985436121290369743633251502887429393198012181073206876036499130401671237961709179466354938975167621402720108675545348335266248722894390162220145123548803621848461680783379242446526639063433032812727669192788286029089770361810418279579594011824378548538663653301892323548239870841814017592060016681395462614680476956323173495968831868556685699826606753540652017313068801843222713149512114190972355588578138183368979586062063419574856512036639804659393729885968458915687569105529855451113929939168647405489920102140296577850516815101525888096672673359484641916457245816877058410173119249929451619849810178432722490802279712683098623736523060438753985986895674151913342998326488546006667460063063892357193670501023024661152918233573234858710054427707137311569239613771430252627376398132979699123338098665719344116505353432551435945100892123103176537612290176740611054777595345587290463758862094038409788623619929457146657740886392984061862616287426542810395124238781238042676040055701225613378374570470824158257568679347795107851546194490126621269792306568247614045861819809733518503149116566278120510101615152241939359085592350854200664037005295578198116789309918691878521333071033318084834512135726114244569326000079228124943232202707435326951715142953837364803916921348525696360208422452578160040640062237183263471623680557753226585322058824465235408029935042176032172760707294401625364237033624152758176112962995449374266727256670198386121669442825902112681525504071108201639925665160440918276875927362668580697229437509646509666528021281527529302782631574059781084161029086301175095100811627993891378701960436050618250750234955389153234935912220212855303512413735760333477326774887095724138034756455093357987252250284186645132005359737629136199961877181341129176934394682634651028651872407423495091187524704494427161732209683606555090031421481581332605661433763810303189932537841038273245292414996751516632561356277407161315158307763632253611956070111370356448544071343992206254610788626981470699548270423078463501487680013970674208523848566213711604532340831482791787864157809671706750780288946384344641091876658135853579298396577802831635762364527514204926890524646679806535268360248700169848702336218907242924575766975141625748489963751526578402267746412880968591062429982944074982407774119703768440809322741084003956260128832904646445030053936269807173524513836007104946131929966135038499040581463473581789710099250473718752593495203120080029251661753613403184378009242363940045551358326518481075847438033413439060673451422058781324727725269466332423142685605573251854829139819588000529982371380613053023060418604314491533399394868771132894505429089145972040797393899032335915722069774152472801976791459471196508332582893237982494347077155331818558942179944083008714720125260808688423505560144164372260623797382860387621215949329779492906630735911476364485019517073324023729919172016763280795228303000235240391655538105485793603132499473344183821057790031405445921657019474668728279502352288545887825163170225805313762642623768411407621070787843874148621032315630001870067168050005491100949635849260398373226011404968985442993121372255015783065456027157040062087370491197759440213317714367987310640420288144923057167251348170941158719971297348476759612058569435265360235549457059306087571370184851480589905267982647468740712338003502955446653370578072552669629939681784268190927227695121209325996746357084794168731858633207727768770903807884759267185277314717575091040764604918417094687498869194322583892806428989938059164411627813248129405896009645507123877391609024996696793781297343789693986150101333189117356696615509160928946135573725898399189066666304273831490227365931885416884695312133811149669676238807866014540805433129998989237967698825259894027375804628450312354230179792812376161475253904438393489457406075652640896166795309581605412991781955951161025861079018997533522835276140404401061204063501591260575832075152790146102135753201499848847231937519937984823551219444351839495646244849119474613577818158875436854263175432101585654789661407549636209451906000348070302618301316397675453566962864426493352033963068176378307021578002106999868502088334673823975810317961614891366701392273117899302392746019671312454522020081395304556469564541264979814816391009943063804378513767851056263696641643594311732564346546918411349026179642172207438943131928264118826965560120117483770934485822167676051285862383671444025781772293721150843212195201920958119671155629107394707925656134751379106770323790166986000478106257368876275359169945567086336133102334691764456637880763704751395193900665751935523099076659718196732039904624625152741906499233318631163262122498026009090381924392280042832256878180008498411203895614367601757588909753429985164465896501330117018477086861964508469277737705867777851882319739355244396849681809150350878175065614296468829695003903530669665588553676300968593537172625385007128542451116119448022732015514259984752085603130051242324679447130610292236713922968793434114393654086361298299234052981760936014690820389046591553026034417881527503269595681686265048371505728055737449227671615215479967643588163059175243402331154728253802095110375065855933479567128602335631816888223924670029390814828830805849632124754100890091740554370228355249363767733246880384034965564557264843592143879253598304726929507811464649094534747784822158315122558644437578140066712414619511753508382289694163424124029670238007346211164021756386148400717253220580817997326005544418178583669758871895120631005557814076389157252786999432043349523928987201876151098394769639580011483593346424520040256501588227869837229472264107291949356039437938055296903750776300447876038919661377990586163267499537367580274172227822470928265177046436219197053204779054001938848885665188798099398258138822834633651745528367547532083420557591236211137809662055491034383052867464447295432145461224487005733946205950705536185131494236869868319981155568073974712103916260006785471385883509198923563430211263830667314319468032021816612717870120585715010725250769631817620420250275683338715982905346759472677707847828275797727499754844345976991718781866938787496291836625711251714590839219082120181099158503036196733228611193031071289292518434414366952263289200257594510900553007863257501904658261855135355192032115258606887930984796888283847890233367064366395123122984174623596308239825674812979990373133548131743552841601409801921855189370045470922672917320658343364569187745661327398568872462066151842750530140041523912129342572383623143614915744751445079450198268708951092397540622169085733268513812148884635006955400342899238175971576379220136677673027844637775425751582914455199685501665384937840280059968934241290109332975159172072855067073754777610262115621791682515845700542267026077685925221109318286650207694853745017721715362450252429524263733042705007276220520470974356142692337589220076223760138884215512452929121971877226734606661833286855570788362131427534714583484716327410917371742689403843518395338817259360024366728136551767570991029293493888795924448593008867175892017393882251790725278887403531227901939543520474971270315741596869262808428198408256298024109965702883099521724918431520828336487700310796000577326294343340744840447772398567158269800118354839356310220055884849006580722000395145801961067096790733388619922846704620747061792564210947515443822237285032970612361469789787699276251125915418881806554618720020863770021760638893336667239274251693954171133330544425720064377397676444202150797766401640569435464183123760814433694860934620282018763913535314974306943926259670535488663440262148509601163418291518936159214401451589698082052258391543238717297971367884620161142783304174561985356431914480314448711859931131341315896308278859185005862639780113542214951312157961468919150771916854821281868160899562526161419235248444089457895255904284651509466758373209548391964129582359920422045537661041880998852492152634286767373424210763981871427118883194821119745282882582542511893944516161291987877981646054100423296154449030945956253588700303113362764101453782163321284787458851999137018750869132923125389035359519851507118535280543167362191940660335487267393040647164131550209991487348266080029198300451294809144560026474672179155572367845562410359767120163645345668933459556009487974515211873946717252368027867298031286085475745370801988521749458995426546274590412628942761917850310174191243194785036789958419458456884076081030834710945449328695259617990347226673267822707068154369231082704648021341025049075406523452890790354526859986809405273137521880283631487730928864233157806989433667800951953211230018819171621304668761917935006419635765417519482100819329503329061214751083304163224167062032324964052226059692890868564365928624128900153157116555540301686249633005975464504868370053341375264598380283036557461517725116630154390450143954332703843822367774809282928162423740882792450432303228980561784118496307882581281310799087632601293719388261251024204788863144544426946264502772037137159941958604591704564551185892453509778967417259341664960886999367796806583467820157681797476119380965204918541109398135318626279877422348270748361470219861765717658771334842951168295235714393023309120604415448761262541804545469490315710034112123964164323968024669892630395384931815562040885530668042035658435572386426080075544037798082431429714804034788876360080756972110822411282618439794551019559882404209572456887342904037615972396440083885910206484076145682276314672721715784666996568389375280380536894622932763259141234698217564497953199789243471122181796025371163950229305400524575410872585622355234217979121564652109778457203549621586750904878136341306059263613587249379120788707860569976823658753148530766170726951855701998876151351012182912319244319811405610061561435127405630444476885852757968194961303876795765803575073260614620163688343358736935436241492577724888654183040421308977593702763685549842045656368866350305218980627038600154290990410403029673874342905360580039161496872546299633402678952815298862938943777659462764384940039316512510496974506570941210509919612403281363560356626254338930226364672243976632611693085372835338180156857064727227319936928317418231387305616946523402664555984842499347623100402973024765674604431786656510214796192649044871689827265690305762775410274924471203414879144698835734953256497794445537901430538468240496517911061734142705880433404117093939679184587805912070395262202769959716849782865712357542108846735991282570864201662672735232748484533784487101755225688025894921748282679612655880894506594170115129652087781482569512872611275585689783761534363642497134892892434188736522744830501436533953388572142527085962596942689185694598798799986291328932827656984575434438486379004502473279119526468399123718508319251177879452718970850328631953957817304686288467488734677113249136806324359879431507091495116142633667453700912609416945541013244882080630215138406663620932708453399284161623894737295063844766008794569475333053620771531444463488165778271856168409676552606451439878531880902294156587977752314571956619703810165633037476548944296533192349134113843126023902011529517028061671321949328472218308648235486697515608356156018632360888365651135879314573183307240331584013073414565396766486365240250687014805453671093893963404445257396332269927640370877257000793334507125830867067607869791748669009450894832086587083085510944189382356163627923203338820822661246140046821947382425431277034377866160832876982263684904236327514222209067806626070312524414060782675372839433329625115493829466974575452440177666262104569018605555993530934636158011684458548206954016156630137569611354255234583322599681414423794281301286546898917907904632643207660322468545903863611151127666339810409414869914793069867727464765009626940009944030636792281059859448450100639578762523131062114414982303531779300008739040308441761007436432643606772977874346732125257364836954253102166038052336979347606531122565428628846418485871370763778498385203198056164509064897453967185870294244050424963733002465164433687396430345528504650289074782424032925467370656523819889740055988216376658950924670294352699311857847121950140923988746448680410942794490309078808403617538807724910350270998929649627081613427788589709415666897905604124838810196268632392037630222190747257731863427136723262523677946612466055904025724052483288643795131375334777365458539638232277815258643781033821522926071535342875473234899665494007007228896060304377507826817128366141369944540064013838225119326021857928136773898630471005705574557043178446117889673898100968403932666714582917665069902240865711314616615202544532383613336201983538874826195548837860258866883084010008051445830874640343305906580142140057611149104830514876910906060565510002302382242485663733270846593306274183200036236492998856036634886638409366489761714701569294824557290156308880406854545832834062780325801211679845052084922047110439650496560688048876528755327047355253827632389778613651825381447049804745139197839192398416550473745162926663609363757132053115547404141277410681713541078797835638108886164168517849790915172953955968646848978079576184912589959056691694228762319853086496959063208658842549906431251716731968045834599038473543534972754564102950238192479900274246764516099637247277668451942599827601428316916477798063594750212299243531181596246163369131254990857247529496292216226799642444004184819528853496907515037773200845647355753988257759472191485811235721893978830527406744046721091456996176750568767564308778782736607326169315072010946624077344451547504332992080811193455745612083126478651725799804396693359347443684927189748804255425491254312062888841547457732490753189395058635173348376501821636852546877296829239694618181184245149606207236220991776530272518239238002334158690945503110628193399595590846620663590556406154643796241763066024576708811684360229435797779364031601104787849950358596563430260577975807237616844809663089227900135993738177389381509240677169868246526086245427061770277157693371892271327930960578262953902977342179961341508619949063999773716093889630788000940626115550360325248097666278629398903836921387896338737651370930212771285202458782425812030960760582609520689360600628465500388500782548300817368721388368094527069048447443129963166190905896677594271137365894345121942869797798614595145425520650764470452791705012507578550318373931795040097653022256787623690817136288767176700646334594641015311575873801847177384357517887185647489925701206475590031748733755450183474298933456505385789059142406396408042371608001987532126677965109755993603973720577953200048916067279479982527874737896738507084612066685966945709188854341631180842268755654237386400462976720382024078530713757272948289047472135200842914623386456622461559796635858622849951783654137387135545368259763786514910031001170418637200583689880320119130823861476735425187490632103202175537326146445889475033876281089313959700895563185740468450517342516797563250638348866972683659605850024306380288135266316982822061420981597914093293022642636657720281895797296058010744374616007660910026063573808400791650751730394028430160964263929061080675466425410547123995223828287060350740452806892919327368264458697274650179706217540272491710057919215163152320403377662610588796138142638889946763863380734303210622751820881686718375000586737656382900969172085401282932791243963469882607416099993259917875086387542317972788958268601387677677298366568087570074713290583809455529550818919383656344333650288019848092627485302011643356463730214930792850394052777162417424496231933250242500503143795903141377578005941008098506877404413304635778143232332276533801637689113230295472071681756453456266444524704294496336490922800321002540875056712746929173549765571248210265085511827873180133744382314901761526911086658118023094842392782980497718667268086552843849388190814729261351892434257989655188368532225145867030111375877219666474155236116168166790172213381274302155506064794008753766715934811031910235570486517340360142562676558957360037141266714722407898341412571091797776850447602248246597043448489799676324047337561964211678182566752073565502944124442791467895054994011870046053271024397699626183589226887381173921391086745518444210282025284427070427200072096898103109716545260149137428312497079980561018171592302433398026949145548107994278186943430858711557750145139059122578567343027736388606282302146360369677036941660663281302018775363443882739335897947305639335447846406029211901457092018743513305542963136573022896653909706260190789390031609802226618321970766486292203937660877957569218438416446198993757607760291671498841203294521074804214807350042701232409209765025947618202198069503032699643516396520576377831553767296917179664660438641920397330638870660817619586577909959141369279005241274234919870815987829220012081006663687643903994275668907182424307523591644380931016539263951932524631413317192859530237398453433948052479508270618879334698724965679468774160146311071820089157081707950706919792870868071479711070492063762393539957135709918500090222194551581627898459111838037107377628285222069314996376607257160987295557041180618797931025682363163024202122827235023697625485194661137233068916163434107510906206823603079325466653340397099630176992399429246901067286187450834535782906638999512355225240015052661159138291415788763657126331559041791034827507342221196833154239653594247643595568777115798064629647410894977582411057576574353024687762419535989598531351703644845650519132220765216474764087372251571626306917584814819016997157982033621635887437570323798713515081716167550221546966003404163545699224247571449423266956819142642913958362484064677675311547591374671921767403674206878250140440295377605326119497785082163118165771057347169947576103879067802048023013348263468292574430344261556865001339835126740603788592244137094590431929110601210783135232891608778487224226503076462791107056391671361728271719094295123953404526312071857732070536322344575964174906398111776341209806455048523365799510777936566411269019490845940023375382901193583793990909266310333793296213555302781710652360932876573449016828272178856759868656953712389014127710711312603997196549712576060121850022263903675606125918362369659234640879741477867605191166561209867029508388201280922012972002113421458517749761306722738176372632188785607374325961746888427851803683717250666969347099603201358471095017394936225742131898027653633601828574041499228955295647187703402092306190294129294823447024904413657154290097877546810419524298878501152770589416179327861915509013955874732616300079269551848865469539868032943046674534370077625551120567945298354148672317955178994444113136528451006039023190859935867685215881957054251856683411533212861273066866429069046187623882357092756403587764179767943447892259591874848086271147188971928507797120708115729987387245264516841367446255203215275279122948300693273236330175389337811207693589794351321062719115556540543353528694527211251705024190622340703514935759910840600252780415258728377081067263501786861990053726450345475722225547845951084664353082561248561925603951327116825762277891970747055071375512258196008574423295777018771710750670166680557754448480245852875822272312631244129910864424034461192546709059197020310265622904353539003010131618613461194254443016308296153799338526778491023789647668835570898381139959326875551056667617592352079485584644762063342093181018905559567345361742948644597147659114954278900144696020253145128911678324733927613312241051824285932906020085956623385830286044093150074486024964270556496589322125683642834717139223137082977654123755624977637761954443541634827860319691947051328706684351237780071274665395889280015091066262521013153118687010116878091519152632055074108179274920657703840150002679916728270810052163762276970033425042525698321485469665248642266095768609047265086857132549268239142089274806901799672154749659417531419113022836173843044544237705331856252669439734027706180084156185555788958933809947582529348976982574878330560641116351551846715637157245261502549673442535374303648764815130197164082058664101819077795320366434427909267145078466512291485463132525875465843521785464419408355204683043224106867606333424400028139199663664769146568810575125164554488588282028128514451287156508681983392149708094108125124086165862330326054772495406865887308381974938920776101788522487957305033109565752849844604494358918890999611364046730591017787786504211112555331058331818791088494598013519893818942654963831389365844325425345250997470143881424245990732978995308537839607413358210924778896113198645830423763004444680767376005622377264671723472498551266278628595561175671427490054466520477955121454199475668366991591803400238787021728193382479444447891807017026261657323291121439353523725360124525718595405054556770866696031568366920122325128887391422016067580309877923617242910719607656898695508169921906541427330437937164638741825855710119954514295296788657817048789520110031335132592290534457187903677660930116621325273845429234374620160876416275421791551632268408620571941904573132594106176432046055276620110815630720322758038258124104257991366368260897530838891964667599289011668211740550414002867426469296429090002496911979239159685854297909765023132950404780751466259109715794038198092515381745221742827275181013078851751674763087426516972159420386468322367824414218310943180760879048433445971175419843851750400659785207805336865130338857687138441988968222959347832535251031577929158816926096239323676425525164911014855967325442947706250527438697524173949864412553319469249853471025988611395397348890676922480647645999579327608108785826788878088631584590690044997794235868782660075341795957525888150526061562917855846106528556822706755260518150018405566727308259078144168669732316328193550588429525650955762996946804746852433514131119060219701361847265979280718597662733686557983860175490586629459175804619077756950707769057439540904071499031665418164212735269451184571688048522304808802657987310764068210282642504892524532767529908561147833290711032419171656608650550362183003325874765768371310372660649138331430911152975822509836806351840590971380218780035465659778176517053532373083132392023357011619484727788451641614318098685785927017867210614403216334617198523648545399811711960737330023607523643621468055715428156182877741836120746964168571241883089733687367095466535228862442557772130655576452557339124431587650479586061887876968197108198178324050438834906039210260958438203933840177930332194539270382318324766840382934861378995829113699122427375772232744308225416416421389890787164397822942485868768475830902585662071385400244795903042886872612343649786884588871797551378403657747664773385563104510629190089809411373189548251810547282767285505069671478680295851714477664902872523334613589662809337600673743561697929360837409198959121688522001661821429493421074380644338775121532326198557483534317316607406258996101389408888845159807795621517354270488179302147836137725393559147453703541732052055757877501260181801832371462223464909652724250802149573163994594401041974093436552677708290213169939619699354434945853200270099836293511725533934637788337407679784362126468979722152471912612228417743930694549173904902304911582665946641647342849578525132677411287347149457049121648558551488860351781607312470574260699032380132900956128424167952594834642136231362978948585263773652378852691569295996440069781761092946649053713382552943244890468936165821953469813930616816827353984725519092293714420405028633079855094099745616260482795370525033047119260295743141156728375127797082516847742784231138550554494397551275186406200534276200290349239253468390596113761680237113510147786969470049136299243978502620862457217766623054338364712808516831659008651898625061862326647137708985499077220473940818210169870255973695490829027821369037781427355318849126714279850813364936279471413730589807129299995582635464341709484544739575134823085021201867999200112127671466214541844774784385017475701025520286006289748775977181002822309707956179708328143389779374785547685752807264743278679784001303738747488670608721754189979432581122857018703331571032573326666566178499474468178289073543464740251340972120271332661148909937919249074910810871634993060585417061640488010754525083598507617453628166382306363274128827611460789916745682738676067487486675539157884329311875729492992794357675380984639167755282859305765734256034698155065587163576601662075369386961940165532683063316704823881568517526850922499098661298408972880431012518641757154418454027966806330013735983433222619074862372296156325105744310762358931012784091726031136708493613819786257005513528250895395839792231522549286715198810386180791274140426646493492205025747784975536233106628918129060758126762622210625229337804790113809052246098209720927965376498498674517874333868668969436546197483780017791421569841683706773211636094441203473810482779561500733983706452739985164611828029650573828577648679166346571189528455145517102923468646301578609780765413763922074198743163379045023277244904167673267366551668902231259025233827304995965257324564243502531856398521608363361500623654700808340980824480137905793208268388463605241275645428125311813453768145009653654966764567714954370108171924850935796987501645450239664020721947150464007338861958561882096140839909520678785019120913079510353305528478227236353662815240696286300448977613190681839126629172077918296792555188446083944822503403161918987896046395505511509173242297952581727909279747695066665337861917928736862715205829078628328105780095825412609095047020428990734525941427051375841387959464922568971489331483037897711479665255672618451156522114500890744513099774830195749917414064529904846397027029454059192254432295795770046367450793513908371600830965979788475482033494706654987203279496112421603108568603466353640829250097255906773652452127785077024015827981019087581557720856172462513952271890223089355847201730444966397969577017468356869992894151226841421117185273084505180110245412202803936800227183886930632105784120230893467605551807622856733239030086713985351593320607131254854016601479032604015465612091603026926215043664701282994621118407266892426061631316495060888483171863658348203875260816879180038987374997436685490987986302342380887741877899818738406839487406054189039478336157713751749592382788926443668410154816324583527257586875966387773261662810879427205159536572164464391073184702783424525306163236608289098999725707754993223534089968148647465535011057243990188326511986474945815989077287938698549386424610094405943775915008565956119596270352280069538251854354726655095138840204690269661872240161870341860475314630571546233624240001729218960506778430234561715018609532630083268830312951559522138928768818182950185508862721425606169186430639680470332159152720760793342465599141712473265472771265414801222988665275171997892508524891317539724250751113631764146533130537343261820565319266478442143798372494875729899630209904282339272216701675642967497297126800714046478242829982677921282098427521940758040147429369992263464663174232714280960632380428442390750845381936613615136515029078773055224705525588869720108831371550817788995227805557786353570735378848931633396825840517269882359431549179682891117805704407645852425888951866289481828637300776692999315803029070371943859017518340648150064944115834915060242532112411619078705981553254381175463496743920660333228613190001266753367682260535409504114067508238663253077122848543188928894573832904565233308429810770093110249578710959525352470183295755474221721542398145174102987320083870745385706090665856103602608428591121053315877737942725980167718029677076731399178938913241654511255509361937112501293528167917543217692476516701107614973712340180915765654847493682005528990578525912543633155558459405665236297015381934375554865088220048264951342472249384352580019652520878819798826238234900900055554843506386480512030148473095587154533729872606696614995705597885646271637079332066238073267669843794276236436638490493968987547796478385620023090796513706886498976843019949723126410783240386903696679502493190245431866311785532818284756327349567712265549453552432556225830907627734029247269746274733520973035795301118242025857905824571486242292733985251146577169228463972233119602148620522030250048231959764908786269531630940396809977110496252378789058607156981598701309046286982962926474099279782658905626060757225738067042237683909027595607014238380423114192848072852099981933205141792203750544530541042734661936600214049465930480340022111362796300490077877196642397274442131110582800944703469768939000202883312486713777502568140336268620011375912980155958079464573643337825218702078199566863746249770546582293460068491317392533534855623661096449151585167984570781301912878147307160059442946079184024027396728404964806439827143330967852650600476117370634748285236212140827147922838298070309419551305182498753374838866840251591515999806543033638396949256738997893420248187102864478963201347283567387590869319105433446892498412402365473787928874456981568185670916498771352009015607912833783765261921896152633189707534370164775071409880628035111920513705927838867304436350540391534017450406983855184121325694283141501364627921147987237184093671600109380656661708531212478653713151082337156439888589219458735017889713445599729020142110091080620909111906835433959023915769356260083456606013638006077523501484940042392718785080538638545917703125451352603482182547083586879823057614236914110737995958479966451420050061976663232053910780815496889745154371829418700226459648745181852269761022095035212560780880581760533020423657001616791261400919968140201678052239880998826440734685196231603792341198433956027523597785174076531936546617246351657921876287356779470484640014894118165612398815166507748069747281629147408531026862930861564156447750532333662634053796294765290842245974623768038078051984692407756483294038984379116127206033885394035880506713962467531398769221736627156209382432248920798668906011910498873137532190777647629326291896330781236300635169690763994493774808438604041000675574503091614946550954739432150612659427258355460337290259916533216765295246007386490243161991221841742712122591958296923841696921106479042638923378781873760264200716995525404818542395332539634810500462771795372363765300650894714929895911199825122849343718187927188020428794767254364389790238677563546752170480709641053644254574875007588891492657227021830429912125298715649807498771700250751849491492894805117784684355459397843626808177851327869953687216169006424955670311347072131578373131640047452500802584589693804653021309233810752838808386070189680013056856010467461232606475296178337262712638880603099493337144519459636251008431360569330140029868425331647331732717927342392628496136466570099472682022685916828079927727335327680136580724977792794067029427788822984882860474254962016662142334224474189908705939732180871795825342033824890263736165445957971036506675034821696372659791843891531808388297625789186331778945342547173003606552174838845526856039844489503809042412866783919175414886370379677946013318182239583818888894574762882004611745135291301663595895482810753906696799510213362839537849062317695290802685010351324032069859865010117982636671891774476882627499468386454941251510843484550177985834206760251553472850757044111074197586866882345144326634275565810021224757513565378744423167099350652297158741526853220662467686096306535285118516189995729971970931957075081932438008056911180621911909367742002248313381325923230373446418732958455934424027459316889794174139846045147485680296198016273068613551304474739542813987687045572820614451478800496791688980906339121259889744020826468933619884854629608751336001527826211532274193784452901753913038605921185684416544600243415535706913911290315292270163676233265531228920351580274782687191885246569729012195168487003502834093629146504185156777740466758406548199468515227709700218386239020970042229689300533163829964602032771576941368548767987653695984578950835754822688337247238555231916185064049478028800058790468589639967673185957592519346071707176998280594840814130247706360796825916030068827670948600040196813140458205985206683941767553216038199033199080672951349901686877918148331496819948806417213644555765180786968120029498716270246236036349995782277410551721784464814952027759247442106000522898898746080090406279546046436815986499909337612581403405862275638569927440527037879408695043735106514624870876099750047398479713937411694465790506363866652784159227903376358006933547898493777125654418606765553609111147504748268266819834099539611881264334728668624218973878368712569356158917453711362528254687326831091368344183491272527450190854524124938289304743840044439505582558239333854939742395150375734731903920691387309000100132604966216781235352358373657793213914429778801723822890019173490947419069737569193653329076484219819908748830827024394906346167103179224792910735343725000790669137804960274162702039576450548888814805269239381810764872297203976349485903097387860165209622570107587731821001716512384015280273062021542934643983483612171793563449698287230319702885319968922491654425248020808037688074799827469413962850453726530013170113945056951356498049302750719112967009845348837067884150067901764620742264058853361829861952760638168046881512159781774449958469560147205071676148470553290465903642224139386034469351363102486229968500759730324420763092922361981207733969133822721227517554485976039269443943993999913441460407848900630960475245528944688015209115954433698714359426339905647745038867087409492110029245397452641851291211081579193587097847699544354599261127274659031871687096760911766551550693650310202798638179607020987251607465153484866099960331447748496234345992846414801348425499401063269108004369453236859017447698665259957659000421206471856543038601861709623086786360606773417210632271226881464172458988791977778435136305080007232766660768525086561262593578137605236283372439837815700709600802026153895865510207915015719252630264728338127631880529596950884994906044022635368487744905889889836620247684504400609472271080204039747522891727438537523753051054578806174569687817715634919533987211005023023466484310237779930776931203319093915011041854495413924126023002962575135797533643640161213933719186434308165904090997562451655122914998844847855095410077924585727575991299496147233695848832531378322546813557868845301077356899238143962277462125499785201080791119856449214608016131772753947052264748268867632035269462435202746389648940006307516385360340129121750210750842086519521670318174154509312952125589462547310371155202151001308902745491515745090836000185040290209682198537757502526575607348528880641701339981102466069839373671528147115865101262427088192000819017139709101599788842683832018599380032040592013129758108440213216118859705098570325020232742751129342793788627556663512822823017807387807677708751554660718469977556920512433772557851389024972765232532121675394287178053358760857649029933924836676259282353325743309984719523840521644293186202868298631167373637118883443455039011912616666584617220950038984817482460052090954574835457136697968866757121005761387172935158635224739696456625861153675816257229416494119819571180923721264982398618816403612020656107749698398387667402187506058536664477492919176967428529660476317975308610419943403456872277140543378567421012129390607790140157896061892760975840284611791363430009974593653401996878550865379869402176887392908005016727087163722860452252530047822924461264272737021540081570058013516434506482723641139654085670702076708061175610638794326325201538230823839664323801742708945155221020846633765331644557386295564050045120237768964163681653265276479878352470220499831680736573487407491617626264989517559812309519315537454420258272408851824892256222182661575379711127788248095034614468573613593377622206864854859437139601223735704632834882652250689788515306625197020723982965441709714100889983022536178696979752605994825168615320157989689725109076619860950888040715362523245135117513460119072711800479549661041494292814217415837058544486320845975124198319661706095223673108127922789444489388808218528998201783140772524870406971371925030361221965246720167198907048764925834075198099423163206081520208919283645486200477281744702680855244500848414909729410655258997405461172203552087364312536545699895221377582411992391471651890364293357595613813411149591223499983625992678606603989703498041533047295600230845100086698423127832625399070926571583453302345327512086906554747880251194431543160782454722064448218911232462855805750808475203482098953896019281935282423577163692814406327959011594092463123344429023791587963251065564479614789946472307323531210346515560718649482091110625892150444742935543061156024782573124604098307178537710463262798334304870221084869128031999301141704474540686963449857967715411409753436198815208320080904368193788165076620342648001044006365194769291445274656769443923674563461299187094609000481358328919192544038206013078195651751771558775088507485537067963082445388855950065558683859100223608233110979226073234244122343643223565745860175243018300867946330817867629235356442911979107264131322580052772126052173075509548473995087890384910873282798954655753304846322457986003029530392648387946500362310851139642030913881611798727038190463059993427983371501622349412323546219015034484343718363553774858450504824615834201710274733413633420510828430816700889395600981489579278590559472892955901408352360056180756999057649737852624318798103365959242516586656674632731136187828814030869549334024659541747122928980383827436061685251276704047462208754158423069671307513270236245112972357826465289655086372697363957973068367567283684564629337328958404088951351536185259350638769241043601809660669960954791812455313105569533793169942995999541281231652598927493456433308817848138231147870889677907221779383987383782360063329043623106722946464767108689693877489293091497118797707642472291199866778621579338519854865764024379558189169156338912566586220751626528330902484607933172650122315530013151869159218780702048042261586496039554293597644893742711869227065607225296826967104850963196483207961438325491199331654061962613477357877104812222452395903511784079015563897235513441731000603544662672090613260182035796516223842399988669323778331211304233128205728705308193630950074649783774178858085131097487892925622210655220914747445530629841442915117680858903345439148536127335353198154725755866576536797327185082911738024588100660496462105478852806801316247388616392370696440797859842882698000405184916101591274355970882339899655964916482274725118995817423324817710973931696701181003750904500810400999524977874098399693113278352239733274897714757029127646270903358513133868212792328183198499731396541392765862590519076072172862289532597798825276260834022155433844742355952015994022923059769985047582055486699668581757828312849110813293740436439723521791403338423256011290138404515866623961527227287437220484500243252020046508038691128185302081837787381399222970729087263745399219477443030100785456177796834494502524288271703647905815461906291081572186718986651500221172394231079238816570234413988502961168561080644280789246390904614656887906922096171864720214683859593980950707299782318256912505382102047830666303260113420586277590587573859585730761944697896032980818702229588496423942076727666894871840082846526723112843183965150588077394129768087842005685142097341277202346502421776079371523495133536927742490435723532834788139421599745643156666267214438454728578388831150427625604774746714019912323453278595790218647754594128571731037029442006655681724326020415978835918678064597691801024597217052896795241151008345998876971794397401104492620720899948259925278913486790091332692130992705729550297305722280801751034325734778058280546668553939321826167916640807325309180107576742666175382351782698677233107272186263107258338947049749208904732664594354418600907808631730627462601578610533228109830630437057093685287219300160994790847836922157947160432279112665331588920300025936183486297111444258119520624163361755000034326485580272367082581734305447358757028330048198921350941049996672790292326088053615047024419429480981140018016238548678927494587092594917356158698939530988946690920874613512994370524480307594977882386688074121018436864192898077945711719665860943246462156165899014595375400995556133919895642696660981660328721398038191770990775401996009529736262039784240340032606612735942277381994581842563053217489519795518061143336227047832767615950918808272785568970145394282536637309376585854509785526948576655293028914039374314551457138563784948102248693397236043659336294756911740971615405616933771839519963262473168834624411169987026680417884580030394736001293912783156559357585894346793047072800820173392972817270019812487951450334082411176371855098059341702630246122136888316285315762978564987462483099818099931459313977943359426760591422816174408902546503534451944141486439650902036637515997484144312753549551734879231967380850544399065835223379847810936716272814142615626043154492534442810961604251855345557962800377364958508510665786910521437356990818809172644430039433816315184667174685995184861621984004744193536267383640454729429751137247675231974349746899157908463395086127154400774192796447114644810186084816581678250107833375295156286362890797029074806398902362743244643395750551216184871193878392701968375016967403290604002874972204974376481021256161065525502693152179962018565364363265447442274790068003093159411915861238329181838487584755396599048078050611759361744654446310988408919412670585670442926627448042576129297426739794272141999129033260315245705987810560105962926643446672703331998571331441518374608705823260210255003296140916249805014023951034763368081041348030713285800495422134716148637766089183215183670009509225931526899458801096282504486132169944177975487473655326678297561248058226251121690901070350583900037171009463277681599552600369448286006555980879597454113846512468616450716057782083983927765666772697437762791425468302331578719936772747472492606674909873250294104915390503839536760899060235620309044909058479141244894677946926292858862338705378284260872822788938705593277266407261643022354609206330237985523044217111244410212035069097330162145117115849961950750046421791208643864739147962782199297034295025231882306463244522093168366248878659115698370586434653826861253443644266934630549954936710060666014984019736355984953993448546374303625874813705924199749255155690022455974890457869851777881980900316094096283263601830544244844821833540958152290544083977069225828372110167251148170402568549838252596899140900315748974570900538498443414945831830547430416124326886477095222533497229207246738221057509527764965328898091836882880559400301822502651622023557654657471260027687189934767153594293080253410550784501834434032501550629669195406021710039883858851836132802581794617499295953922731368689757657068045369966693298591437826802899171479591552050729785371024898961973290024236584067203914639664629893113859761877055363649391278201079229411317160468831333622752542883979022470737164502377868622445881002129456663517691610105403641746451830642135358754390047610868650344011328324863680266264279696436711593071190447081032538040988160263609307655022879419136146756838510800266663276717891923162969815550611722449196129936352614938221191068824707700792010936307908571405164396397101687750948558735719823233301784277375047694332610842204854979917293457619865986997281350287082078998370445743084905942913159567908844515986048061865060832202675350684519373714936944463587614792420515192068168819264359541159162811379161949741510014531496274296088724522902453896327619417754078196275409826683615454340099380473157628197385670815484787005752709568175340159558674365423146395416837276950607157406322336569984501285573672057545144833439556492295050861118365102385439300185390108181295870031746256889658962497710887455514981821617868836677181640123645652188762116595782793460700555601270492976329354476954324109828316054126274211661751391931161034350269679913115279258312051985786528654752300854438231813399306876156939345686285386261191858854069746249027164856322283653956566665668512721534784735787514952192153925119876242097335408769834960615014530198915733758049746258338435371393850839058729353521008946639870683638547230235594247131566698299203519208682599334203872682757139005552100790113563652092891134106881686071415682182253763268281152798306015122785670254693249397882812389966319788390235938143983699903203338177959570919591214494873527215509627037195281381785981462429738578879849470852053828901600833991251926022971301740069171909243570266164811981392199674764107885969800996242549959250459422902512659282442001198303856904418423810767426808388279373494188697151520158882370228551883856425018903718639782620895195162136023136475296185112946939308474543525297479924167179860424580998225748682432373242894186880663254212942674664607466987340015943514837090746210026113679453814624595453357895092952598421372734576351548610379924524828656638863637755108640572814373295623247192225530866344634138931560779319275657593634315009625501659709768591117196072535666189042211616915967034099782442549552464617707697803722059504327846006763612337744690598195952772028160653238117533367309373821779874415422800347859493411601624064528064105912919624479384591792932156065823217124295832813395505173562605212519974485667910923478441191309432753194534300220453284394545187876205463023896013443449650774966147598232290936809987504589543372595935806171296769344316871635879381214486255268113961835521302227478655795202458521997001638812025765298909277035401604648662182686880239791523476100053050882699002785191075407299384475719308145366077131560485406312374750175175517045647349710090527787566598656377413032966439945771596565214423008436273693127629028827793148765685141473222136486979250124893621750717504547917252173153035780054362379198138390277544443683143085241583242755068208767485267514528415570997326668729068390713008570145222526690298290509389619039842483939786966612680938455622483201677184729897375254836163495595250072160234440372030151798572063502929126232798011124946958864611936638537769463015954411239598458459968737811316333282318715470110495205057014278701737113161642901290134576327915206149171212872411273021296880839082453307385344776810775511002936883715311900321349009326704964918327850594660016013836419588763546314100363612318404281691275249179725396705366223853300078565031593997250695776722551472371041786321564933102844719601649318018136554721806876795092546122886742451915779078078292845290614123603910217220683526924144363940480721398449043074596568963337990703839609501286136969895909631871430098866045883742380478827901665574322984146184411679174503181262736623570040903768288584875424811245750206796019318721574390987973955029678387319533630515562971404348710847015082900497546737504444396105588506547551281146936082227740751553724150702461370741427512433149089233942865809070391404424316212031564623643633490976001193379163310563917567658072532868067380686628993346115796216512591566361479361039540904660761895283338874129584933362681769963453673825198956754979082778079085444936777718716502292324775995010512135143125757510157095606020622562675729861765339631938405458472537249791914135849801828954215899583003679897571130811576058093205892287498636837115984456238405692856064093062195981830705587037850098625819468484226202305739609737590779064455947273848861405937360829530955271222448048372136134482860668054243110246431823766576382268304011593718093278357131239907284775590291550927483283787451988487042228811616986322066133384532815757754655650796548547221087571274344793492240494963851945637872967953225509839350773849929870024451500702446097007406536395440277821235044812561129662783093836685123662652286835543026717766120891726048051793676317450024390499246406795570380178278906255706680638492094815807690284055209216370370502552382849122251415524828873241056412348465093771495849501836151444360829306725517008836467842997896661290457702604754015945700036248011542951071628470891249580992726346888225058686924505485445915853025827037130539646896228737780932615449531557587340605070045632963186037382856386738522809064963242736100476820113409898380467974438048098984737016680624504740982596240878786567789639064755876048982225140848467035560256230173168116528146471587813986741636992614356385491205201395037942576687902837337029858341611212048891207044300162153958756468553662389360196014127509390468962614239680930972841830199911398813670574822106524635943354219220106003481062308798157406695240254129026667601358846308015757528887381121744310233100354019519516227341055978640172819590734300047112230354407651388856272699694466089617872764102268739063769170611102064033948849400594290017961004637529856285661540511210261355661838143750793562757590074881688029126104635680616620807958512664881206956628186608236040130469819044520117030229654817504047378396236132579797150307007800972008183905835005736909680279164620754987257829853408899210449371579340612748228082060889237453660769573533444389864700032947628973183231449635169454821506421081188106339694985498956932616473992866635125188393544630872976627251906407024142223918552567617372030060799015549244020296204562500585316229493329329321278544372916343355834843689623445321846937773407318437139100787063049590415487264407405624839470614230450117984225203505624900464909745494993123604551531132861515267948709900923204393021359268456814922929616861120525093813887550314723175782582064341412373347354064905076735945991918999228849530499775109470219095943876245717386765724076597014729650906138996242157676380380288947791787251368702413311067376447651920626827871854634757682223677549995235037300521485299966272067789151625938806114747635518615585188968501126224498300012431913592464050434462260017905562582512970232572130985695696083312188615017277500467807969383977730778299219923636481069747850745550598380818065147090547737397022435382790750269674236971262175899126150986171673664799341714908574344776848914089129462634969062350203924660743540576832300438366601865192852427160479292853965459043272818074754852928587756216942185217987154298978536202853432419670200848743729705426890648007868537884961006319259665710104762442911290382772207151455597335533912760120542928899038315209473041783994899538086280709248973035147850296914073378532996879594064247875914812125837125348682841096028055393945959821223784710395240398430526664440056350538533314123022681322384431186710883309931933562260951071976985960067042170034089200290683936753860416398716108532278855048001355639264175399533035172561148170596638154596098608396400738485246968235200616797221689985413247790611883514583585683831439914806423160504379149467109927850262062791743405466070243046888848347609939439158537045485833124976746787206754653964024108057648166903349999281080841934590003182294263502486073206305646227161144633587694165260941707805664584659116334452359953405288206414013417592889919440738815117473103025370344795395844539645351532775130220809877604884217363027971162848672166677780334226660961942035672851491954845808052132328679912494941277566661033432019128735189870664461942426607882594278114782041070311053969584529244739678918462502038914206378957412964192069443955136480932497702406213153758558612295645093323288441321037076449705375864608081170618116843308969064820581362989299653219973625868898839569545699903795136596878111603348194021353388480838643454449834841670501352990802679204534812390622159063267631229479893444501787758831817149106365222512868267702567657114078282523947523957569891108280854627844481877829489387507965525526071983020930700258601890925836856924673311713495577797426238501978057922648867081915102498687768263485942578729097923043654091362808313203405002903767467958329951611900612291539683821004352552236523481162917222544321436702569971927980095692224213296248271591784649065322090490202558738766971500114098933094975837914433913589432720145453175147441725105868466124808977432342647926154483829273267244572737283897593987808480206083919454615506111334695096916069352911743821337412010165154425994293218657780420530537547790516274545603996299467587329613893046246793200966643135167161330392537085789562848627270409028755128997775550001783700851747586652343587095983733245600867437238703473815857981421789800724375753487073148023692794533635451474013193034028259509979930648772421203314993064763114585239995394161973496000695504399056673191882293510872372275994141891476104537640172540119576484802385796794410456826213395553166010384529336771801833963244163695247823536006958828259118771040961419223490103107691033264616957783906284873857745605687946194714308143622523944224705240466550762741351134492268839501332855573767664561000458899481136226573000052123711121281907472232881991006500291204357416011748871313142475919755779531498822343532106319735002107760803854609017073789031357451413537404193448655658520370431333840598333513085695679580753013753823644134310392288208885960189518193656675259272405228252548239837428683116731137296278630629838847928481115657167417446716788962127787147541049469768126618870510579818292385016941808245592743582332277768069321596346833350770440344871724935709909569867852482776706157117606355345239693086932918804060624914166781038818628927471182019207449556335422551496849684234117122825181265266376902430640406975170624599939457067587576863111350770300836197855826212034202685025623834095488413014057265373568541609425668227827235135417217214470402182808921647493078585349510145967088209425719543890252045119073576222935342057102957163522125264158648612382427215554480018231397913993431346748668150132459268184940772302504068990925519380795855819406435314360281560550264031626665266097705784320353919503503509116192625837982925780311421399657163929764416011847233287287785586726708784009722321477082483634614148743480764375191192938711944443991418310756027723506067654346086614741268063229649444447522005215573202218930874698211637512312514362854477102995781151354280295493640454399275195384660834497905739184295091246740158517269425872101825776776349292917339304475559343592314462483800573302149334399378459109454498791882326547040134510184836909258660702940211687070528020697140920259735174603197318088680263399079420573665214879829327811848366581378126718159006169696185304592184367335402359447255289457275936971604077183929221571930052705618739130285646995205965847304644377818134454867024806386554557020614665912441011556205883260189903827407150033772694635668530661344256132355738301705012150965006262586444237318940288040931811973806918990934497088959396724322557974346396397479758276371467391084540592449049531600961095184862799353067679339414114217595577954694159414152645420684664143401987655762952632549510131764801588402130432343506073927984320027615082713131589731223899421593201055859348289007791122491757390667449847015332831016831395495187089034289993229013526862631990214310190302257061860573010070954819913204872781170170631868189830354230664482260911930268081655184451760730450690819513439474396976016120088364405091693805039004269337966377270584175349104220513169775077148328582382600824551327625977248985339474198867840998228797325678286905065456714264329366846657641887554778587531483298597137128744884653251188124567231421720559680078930821093719627090142638625864983297141635123122275415365093611415494795750157000700688032240723741417196792076082848938821379102623875931992027369065340708450008379791908383821799771910297512777886523254403736216124289462183422412742010374373070821141314643724331875044620824048172160634802439642033081100730263383029653063625135194351281467762042640812204436140420617591896702613559974819939696838316409105153605362359444105924551809262741744139493798596364241512781240806921765268855496202459152756062590512701979781615075904160038789568368257152459689955043479915841106085771122275939794314902919986362830837747580288302299419816129712933014157289938141204845415587792101605323029624794303003595884783476713425432085842706622350727273216663979323023724955648202979198722957798930177022619442311035109249488870880645116621076375513388662003856560705979599525385679674920199554361285356247108193249452202152921010930376273960232151065839286074853005484384408589249762468187496111518740616996459994914721205845276516338179926623790835674825595940617572783626072169365043351311008511658342070374088472616721500156577868661013043276210300127716114940121198459934606734287405462995531710453017477299050174060201507483066580279906725542295519872118540196690541054956956587379404713320524592742563937290426158372240007894213761316048098666657482441498639544496952072523315248251359923237830886920617463432659492113300016329648761545231180532106581196142790353544726683358890324003696994588458768498507502587561129155307029261393243776679444526135832371130746432119585966046165222887087701011174930597861222126313969325033573321138824068580935274426805477429566182588059874540983933928714485860480610145515949372513960867228473341722264438904305868284240576566766618923246752468855730252796946905777006034828067779505294377830742482792594927456828409455168036481316617027605410646925021619505936392693347410059135334667365386255937377846488298005953642153218108360585062652339244167575207448605097007622344361360613584371688525525226750630649176129026833221787778617808214153871532132739003741684837543198736368481499026976216851002300571710216032020106453365353417044457108591616130993305163804497604680866254078111326318484684793176373105037719245723568537640738501085767697452738911022372458443336108178535133331345327600068259146026863455371793188752962176406857994510959385812589438012804509249851006716302051979272119542410362037891495910314076623518885341474099165977895411457781456061315086817620720710404689338689540238366926511527954564542196314138913721331354574811982717554294145789351040845785182582955206011196557716969150003341361440377666494442376825083629675228133074106030601333955716081403825282547497378995332578688308122121839684482520130477876720008950377698573917373191139678728712899327866158765083962799390447972217145642381032764073929610981459263557034766164012692876023784675271286502387621466564795056374097113221018982509272720404782304631701096413390786887764649325254221654276835384588553264489004891960034342909524009306443925303907834241316617508948459562254200270904755816127303548925410810786345127534379140031402084079505262126321582019163102135368899248886410043749611938972869496106192489915688535257739843585767362110576763968148931788626817410398236366594490063166108433320275608745795933896796070388844894230379672537821554013640511363625091499425996609423760830065192288764078539628175958712832400111767353467360719485496234273669563585774012841227385434494687046880099360349071356238760891611082255351058640966832633682369865542267459586845226219810536026625858359935763746042518672753554091594904254862715862953030469401985313546122978215700856587900278889311138403920810318536869750252178833602913071864085000350882916410541554060999245821840555368725644198455319504250606720212236696128456001737185902562140589130935354808909728107917598681335661832924406823609006542593552549856293195393088948563431803881040100547527587929306628662055463479346621204133744430891420119771482853012492081946110608674787817356565496020498945250839683368494050099841125953673043965694317182484380169174848335990916572501912881924492895940852631018622584314026782548692477425243555236507958612274911228501855010277333247283416670918234604655169328195698938112219482043398964582630607532868410473683383413449968560873147150585349114132481968323455232009422303028898374943145186676097264253239832817658390868070679231180280275099940120274871377767452555195518134605779864616255788965395843035427792436117794809105901026508022218977567237950388062098153739057550108329367141578156989448993530202500201568127678010148104469136231021915079367321282401420411720532589754565369479430500862711286052263334985609070224964239099035223533706698710986007645570505293568222828996059840473900329332226330426488636107973331425107070438947009100107152560238894692167236499132281696482339809412678785641288186480551749910257242407190704114419138258378271933658423791979221490763635782471043338133865965371621180229162587618242408089876524807023814232936549722572052558039704828052310436038396399555365171092662199703186103108907631244073237748877685838701825808562618625697510129055232348847205915139261961988829703437287197886113319526845684364983170289500274698177187403273123430107129438000904993147132687609942027460451345206952474855433114672827846647988523127573063015906249968313488764992725320805048043855089716445022370896550444605420429466554315431252755207417797796322598633251349276886356052640737757457348648388256222896176872513040933477723543512120661136318460605802813525067474410422986512978741286371319911832773282204229846576258738721405358205978588951418288839836655382151866148498054774543445822588809494104308253873001149240823200204949193052543842594834639628073106311588991836246775243480037992426743177857954763392055070456742267499418411273554653467440308252252724876367797940011376418592876612656228143762847267035657430223298464359513324712983852622996211828413519938238823064680652196669488243290663948690297615678373823683915422683433527684311147796354044221984794791759923607561705177655651448080960164584058258154697106436720016488171685152648621593034179434586785458011102112619158283503245425659450948065940502756314368200579796362090625500771663475642468660191535867337007907494608355564699164242615879286798191348775813115402763090747753156913322976966069260887694553406364992176838021470374062277281375067620376476060597640430127602471609714556088088464348782692201085286640596317341570667335094090084878286045717165018306372483077816255978612079659159386281095816033004927505010583967416433727101880884052169673809981658275782066165855230101378726063558068689228470275727644354058527636198653124459690978396089660056142571853872699764424042748159647021062337953022399459285592289910832254156469929105420776546979387308896070005038174471463404751697987763613447726431576319501192384922671095659009221907059919608742050440941098134239967764543733350479160022723330511488941198699657253343970875304411155601247286337939179601072425527978235020272348062958095691918863289280165336713211511690748373129046739584053359263056949483363223359541997225711727538825742488172020877116779178674865670765451067617424932492958986762041642654885506278573133571871383803521809944500328308488284001360067899798635900774649468318573792618913474140969802092554993342730623810073166058258685953425771596575953953608681113667465021396567670233146077139927129417471701928171090973733311282721728751769755141889850687145456351486768835265037989049904050732271777195220274678647855000397726040819922058528463047642181989179123097787846872281137962862522923275409818400272997135675374761547137526137257597942900652308503505262539392070899055225042505585922203388679502623642654035184819392813760178942053247820218719671270213668688086324318816966201502802584118345846506752744023107883235871856372620286098367940062257169479489647042638989439190304740421838646658089705780427417454068875385999988298960374818347215181558850655917347333067256953626010498861234264514561078784479217551263638116158460078315861464942592394697752099233943000996207927808398427297462432258779422252608481674983388021617001347310502250392203392681837837063312484106603138566487338739103773879170221763184580011715402309068357558312821814726940132008524044383321357160085761794123385169172297352519167572436555948804093103292495171478969782449593916930476070371093521380988543776248619349803759276983889205484101862844870133204854083103571697667275144775496613040036667040263234457632146112655145150186429030159159317273303479902721877110379214587886623256269521359006470211758392923238266363521579616481684065571736585194108872971281867955127262588325175796926593609895586456721762539132736091137311566845885361821895709910599429026509203846189197577886194933339280005627957126063725738285225101768529595540716698831346517241571735466838851739079396373323946141313656125745932399441998920159452785280769031796299776442301509744015214525674868173949268510659564807718115940610938114062584801801439983102427649154179774224778243209199657227983002146885163065090719092909158384919870855837015436406166552214453910806841403052079746304153320772952103269332832809664435611184553257973448277643272957892102833521053021497914282826256523126552062707637227079414663616050553335314616529895795146376767342119567596282338602110388863296921574127444432475695490034951851706798141347186943633539556393539684975756384562237537130426139462095401391115883185584393503874455495466525733334780993503301250175846475432893284598437329298654752097794620611381756363565763743743626706410640697882623701337258225550059950818807394716546272471432729757416630873444107776578631315364972606880816261734262338725254794252928869288674302602675966700623486519010812822617789284890135632575106765428337770124908497633538538551314564407986206297769462067856396442873534291054433698102518374388462182543211864175852047916977053146590431992796603416337111693800777026117979712299128824436877948437866287594827019985604367791417667330315912995868566046014527797745391618586903805115782641958199634787184906786099355387304993862926823528947350814782225454514070369134547734609227938549059147077997026461838859242926293312159563906140067262838179819182624420873501999642920870704058390670163878824723823830704020286405078987992853978403872481994189179320039420876360083238821176694842312834529153817845420717993904586689968391213720935461518732421710101467645086963740119785602548944945834386149791416318949475041030569924421990285563575726809569435047534758028501826113987552341590331033535149380028585681717168374992669783818006606889157711286438550855991053691677460509054657052983901973237603504002400885647702692982180419277772604926988616415591024406920069650891301891117541501297101632739820385694969623450343697257516236685597263325624120690051554624783997749888063500950635538909389783356654897551566625371388746177626345760405220591835558993769320847026329098900959405438583242538352197257039274706795443239417355011842310238548701320177834818299138961651518756566057426055048458279411028128039047949721610751337306270142753323600864641781028450688534637783850002165821446621703390282737257819567310903182489962821018733775499018590790581384189730984420406937476093829546110225963446422640384834712064194467472836866461425550781296727859680304172722922805066548684234206303315289892845638401330817608459424486304219140567064339648254109405105834637109047177775958342690818463941216277348400623506282914175117862139777447975214652613056597463278236169245675810452295391083439273574513186420558875807007391031449244610113750694070346556278135268740727786328565956010151707411093008861427935467704555216425162550472398129278124778609551017833307295418310864234494905494746963507226695673693244786332611849271508430664453721622213479704489652583069739654510906703563884076193432858883793206276661259979112118876005096886765813592303474571941173559905453463319349927911379523055653007605471191291603326139857096524114508737477915043647539025233515809786607972568434881430532110888794716557458033893339615725254441074304673583221983706162290696430601679461055296360357777657489966237187316006618654179365385768579051893000806354149768483973645749896052357300659978168158793066948311069992206486033469464559893536721914774051580912792516535030988739002800787093921129698090341470944724791515525030363194717158876386421583935454693730034438906470821039937464820078905017282631886097488909589999759411783717679116418060337440691294117530151823589796852237508834006764720313583750589651994789295342784229222113009440931111447760711116717303761191784089326837691164200470703670130198800436485976038311092791891009328361788927841559349972384812052633804217754615963781395285997113387624414560813852609698247149983969288086703057468298439439075388275453278577676936237554431474250040081026555596025274151288987638416916038235567814908253937686094477883525282209557831716584742533163862783753557138078051475891191454420385238680045114768338140087606628179321235873897229388005096351521881897433940485015706654448680329838747379418142107028286978629589429492499388782160741379437991388028443231209955245377201894385821919667835226562174087759816149400551545049172361193803356246287508771109399156458890449406783090088300361816938965866153869369466358091184342482327446237826124110815776013409518498305087469783687056554280183501328244782031368945348064030444758342214411060532042012559984114315596763729718908760158573518407694775321169014623857648209727306173140790042693741589400146202804423065715556092336705102271347926907331571965374512698230977239741534514601470335602359360529777127413600363136341192132075017918171842064647007005289485916363281529163627497885945771280314307738124788209277989026058809018636256009311475125279867907129889931373418652378043034212080848307278786588043575259139377464677854152401486731678808155585530886665577146227713599481545612374588537378908959377306900803603744165541115602168775153681744534579332216987407000975389009796149074802588672547033916134261372428625342865592810788809376286594069077997119469420789963842299463926452702227074872623430920116656405386295893682231719530678791203558197254224590195458001883226977536546088969215302877061260529592998009696845571582613908770780325253976843660395925431572205308444514871996419172178721047070515966506300716571544471128729187230712842520770330845467795649958551381390255106199794604528753502525109797111735723288680479217964560066679036093801787762930950100481968990353019225091431099195735708832801979333540481772455981329823418242073674329587257364731683137705165057469853023927911309678422528439574230600192922825637523695363920402722136671212767622428777190923808071901367386365192897441334865954126631154882985263402789964555062659745468618973573078305489840659063519134450777772836361891770175608263834090123469831394481269252892851101096615224917198401195178772412687156022702801521592362915988999807977565643340885670075873012489510055908600500870076632682528182226108100883467598495169674190302965670469530346370138866125193626677104907624178086729591261568317614450970361590836041786935547256390775556119142275779978263062158928051350931980177493910197806773851163682190566507678581502945132181775988532705808322220764727861121530872427136750645005221064143203229454113256091812395027439906178988714398088077359154404026450292538788847863258949571748338064658043532201682313390562048647181226307842887529929371765873352414706531295226101292442004462840844678786218861555831314349612186987694595268093846895823807643324104826976429903388791932585077655639878636625207971131779091766742584127690588959748373981267223999972627420762842110202953461964071332257545571490769731950874779461598475988698647961668024450201698496355836161242132856623284834524199243870663863496804595992301536343305665068586318064685214374741814734855854784044890237762176652722525179776970612810006481733867952949244272903420572286918323275886188505600009593242364166793805227075611902780348531767511818849350291105349537416498630477743435012933373574048223061721261623317680581108366053935260908476441759958392944222647388968203127888323627624886051603471445590426182832965532705930882381006088147721663179055454477570299996106037516508501748742131485274616537808307165142796335622079536396415291818212462142449631209443036124293446200880428943162420937106904194178174593884036465311682277094176369107407205741323496363049041409033467453411465154355729534845359749537943733780948365420468416800985343236779595679123632420955382655573110876266219694314852018695679951358300267303118640068235272870784850170741801779862864847206055065711897315210126309609168364975367214513305725889013263397469958708389085073454742972933650111840300797398310778065142872171583265177225028147832692542322920124157790645691375190310934545975535191636469363710480187371942132229918833429182698879222151372809601677919028863833474871764269716961764409281483728389361623021856297731408930392589882818654690140682288420476016075795070185619451228731100992029610500458882475673403629764348500960654406324559615254560049061175748182184139939352030901901019532269354289907626946187046877011754482804158366395472655106017501161483349423184539521092619368688634735137052385313993278052936075785326265962935782462384706752699005886550692800379242100887466282597415625380679748163428062852729153069576386188924050768982690387959113037249227112781206309934199921251505080242972735446843681001889613594332401874333787726101226955590197950447433213582897108113975210481866708967494417454986265408420863594434214418943286370815901088828771018596633191745464839563247714863589238812968966481712797148843330284240272794832800089190729706960266349632091288270208211002105727050008612978357067987924638265757588714557819972677694796053148113940050140764711402815125145665023602432006525557078081194909429122803531121480741123628746771621896815399508052904600639427305983769311045762702386170440764471250619130887581773944456987179053991460027086647599748638470020662918826643194090028582921242088330302146831641894582263200325880590217425521525492698867468200515493225106448896544935958949646898018176356068068014491705555580743861222754544498183440217755361871098923446590077037457679980457445239112435308198645343110939485632787260647017936308671874920323670802144887892800169725608789078198299192741971242245149745244751322320387969105227020503293607044155100343780183002160646629931519132399373777100542664243190147440838333804318205609800535828953070692917189528009163015374313429278694755817821583060146708702809118934055640461615826329530104164731624968615151629162716333505660292433995644812380377435111097351964548309893697359711603951068569692563484747024989411708026762920223134888857242821463819639639128372818693186137709304585585910992366495103134957955474508429048435954135712896372967707437853207131815794788663452257262230831833620858687944070716787416062999970508316216578700278146789026787224538390522255375208062124957661810783297446281674460619417900248092999928250874618097336235411631132936464173608793790982394636564574612060145874845105342813420489394770029821888635194516801093222950593103154754526367703188306091277959242376260861741670800028105442912262401034760437321699600158155799339248066445976878995942451616186284227668475364734279866248191983999703163296087530142244365849512695001983075391107048578507169736076861765093940453261797816548659589934470256810677219303283263204723916835238551524404664243248980102810084182579704859904755663698354715429775230254097314381292486837858633091193009718732628761598065049689527487536809309353129432215103406328503237832026881552577153820469141985556579292138462966093451990972875869331028488274335771018615915404647301905825722983800155384316109050748128160914363673773053349533442500787924943598329392464009553564376289949115205377007302326975120387327159868533866658934196870875226189574994110379548631431982957995424010994089371473079075250395312214096460044134518285390704935778851762593164071847920648056623244137821283461827046169621568128448250407306333781957913869619175110067327091724562454001805089349965660303500592686201045519341823080453715657169517991475201737075473807771339472143577269992359901809432121054772063779475644455719954482296322929186373908051153668824880846293021051138396206277030911177115994367166514259093848843745941286147944190787782310720794623011730063423222133300028149920302806617781536230750044484483330419076369105496882097933108012551827082367268492347873393703797422989553087865737872530332129133852667335567398473386652593668401449439601786904286929857423100668754864875401033523765642981322325034288139325353443836423920670153184178546384996808669274000946277535077471531446643721596071032947183713310474344515147253905620629771173147162954561883820938520009564982957288890049198909408461753551503739203464098701070320113265057871337273465794149646370445824396820032823486342368443383469348337203157359055677232780898439420605735644876098380189702897045308630255480899450125202177818561425453009329602990575728048889275457856114322569742695922585605460970440718335604723908213024188722378500134425083418566330344986064871052016844423816052967116217525280440610182770422880460838502000177927574176384384328064073895875065423528627735838278606376954505138025037793599474869725559684110200032555484543439467966350451982122751453432893990240636023700918736371337249690239802666883692266519369519158487234525771999857589168813147970370134990156170388950939956868507222643166673107439010001783091372392901370537803898122920199197456562677686065811777598350355304280848214263760981256245399414052687627578764161306491308759327532718058347990983213612147609960515424010393948412985735998687924383165673745286416024117136830896189323100321366292042519462705893259196974247844970146652524656541993417329250955880718347239940312579861521870870104150967630460348719644026617969934823535781079429908978865953071188890544998932553018346217494518841179258250564460369507142335288631131227364490952770983284165669975798667465356984953456226654796547589007642878239936109286323927560843009092365376240344895089889151479512875423633522012414781845216534947373431026687131060197389841651216865053278355387598001329244975613894248630205223509587928463918931743286123792925745323356336769261949507858739590142356263959999267985883292906670827438889243665399529813846668412237375971387996703726448120846076708501745216359248337508264631228304115874893294419780385239077592113106207941435312474991756951889025982891315893961032766233757908659548443431417035041655637137715980678855533180317366348953993111820742186612423532955463019805893262508186770612856522060876866396608295346264136542732456492030071131441875037370962680646934208476201881518101384778605607052066593617918869467703726723067517734971072242797440065584282451176760723262518796946751201290561910469314793441755707473657777316394551565783419859677895709138796798981284221506889309756736855210815011576175834652851770269409126394827937049425203763872864553357983543162458704999751971205691288218612610380839059995107336709344107036817167537160126607313350776672557478379657844455872783740927443741830739858431794637380373611171452413739950531446219440003271803207925986444460008621481957356118645881863130952215060599221390115942479503601684143490479278239747891944669219936231299866595485395326116613024710696382676029424941774256305457125645589680714201031570557222668016108207545137479117665501185221953932817824928838037874136834144832570842858640102513795988039690227761342099940638505742479773152343684992279426213900631155057572289558919683101715958810157429601419520606522151692119632413096149508873149507607841928327170417893022537396014667596284160665239148533258739232871219320569197874351000182949886799215921473712544595418396008123222380007913235759434426233818114791442663891797090067482141471746120042690618730758081874666080944833322396114107899298564925351450103389137825022144962905816434375356515954085355404659901124817471302419064090586723026131665543823008459624503371465261526476541478321778862898173365338124258416162177536594134025993123426317242765717411648843569301326737066902784664157129497658991081615691814410436743605680358286511571330181720390148054931322913003620811041729250219552811602180220485360941592875742834790699821035447553754461856954631438268682340774708923169709939082656104106505887737541857996241507469888815454676609635962951673438153867679850417901849122064528216396075895600007139345630471621715754772109159224316654115897040159170931941027309433654899857158193568822186665767560518011959506298613268912297531049638283485581413841441986337955445435792292866833258033771843818711558896131201771487595825199399520568820199650177775075090044227118832146260117691516173948583530052464271404495732683014668355470398550308978425394212724051373659862645203641337172245434260324735696653816766533330166815428364185289386374077463336648353927155829979493169130112259699781578927264000931473028936485517549166905413055474163427668637976819901267570108992766157900665328346084842120954120813679771859875366088031971167870444186813412819548338100876705269382381446218151528791438047506932022513356922679849167729415418712682005199484355292149115366204407692858050178170681494663552002147292752356417969799711580429038970291156079763246629269631488583645858850217763826874398911204638429176807774448596288970996540696818475478707232685522280525803633076706459713610720550777586809843843647581823795245525596459040861647617582410850141768367775675106671907295368315527348661855607742193946635691406142038638633014474505400439606445949522754062280070075462733700280313841652101628557891533025333191442017093525026657152916847853768852918610853527258410499888360083686419870251014287965897151167837710057633570167920405046520097413444419604241515117899123225839534131787638058425780565862440458720479493417607109199378273191887732707243939614504249403524982129446873296955116506106039887147455905662470180336766259631949385673286046928620276392767314532904643271510735211847622084230906484709788913616446625800968649600494371214230298289571619558498614943120838448067802669988261044966871773982925976469080832106286535356600633294042101314946292525247011332416666608883311473530528543680777844086501918088847721401050891652705192374753947380868473052602981076384963633896776900813417534995335793742558240212494934465960155734218157180706828229441215836596653389355016982981330019137969624635783480230333461526509167807509439932669279403263495284802929051624645343114812941616397720813456162003684254397140100054196491380880262204596820116778119454528188857059361650258312333831223743878711204029445278854574219710439220440046833027236310782186421009737822060954525491559778670182535199275150360793373756504823876519548613516797479545007862979780107973953477197341539689752340334944145279711824612853124736496500478571784031876509508144793154671813065893526507042472928491538799245698390915719366136031597218400300222493902901504260723779966206160845688900006610448466054856625103272232122560655647812191697121562395204362860334736561575224168898152140604659254554997654239127144707836442817184491707534198461749355023568154104338366204213270728985096246022992626828791050090701794136554786525873721449285410010685357223140194781071761817055875004014405846801098491442685389217500710733656354535602212052189957497482911516491313089813673443770339831943921596661093654038778036013506705105970373153417442859234340328417808253349475982501550173427713063565604753739565433216515997079608795601179488981961096416875666376042604585342398104520884146061043968462227517093810791188885869680927579030486793247006763763736875950430117674986359840826452865504899221263315119243827990569635599763918695656110567120419377710758172181423797176705565303662502700216787917862687076232405963269460799373483238349179773192121291575654647519957731565467602014591001058277590989571606322092775297770308658552742280193393189012935599252475866873916506530671950636485153525146798499085366899261128173979744135389305841011268968141298239094805536030903838949366123705942037495252216485079602053799781092165508849971368659987915645269382950232556670535087639167159915539186329284395831149703658494967593265182488861814223969945639993761943552105597254369574138519642100475666147288338756481789685308685022804806376334023002831298458768064947870791910637222100241736666542392941888115356161524641101544594627672124120392065442384498559779635189681470429977180821278789162719526833536973216558438183510983261889916400361791136035854604693499159962682104749029939227435622553538533331218081680423065072287604294920700436669128499389837745440749141200857709672484196094970974557220114153502217538916994364982912840313123110279376239063980721389749987079462463567822966891816626966760408254115913362193350913807217241140376198046290632714270402389864428185353442296274262588530252182328567244735779261902261650946052130101314164986192049716453131908729437334461599147963161470675348590015449480811679797669605600820524432159654348788673354011789539058271806980559448280353952110189644558387857298894574127454183595263590189589595474560605196419327845365290192807257376654607909594133217161189419778823510750455320163278319614648096017208598007277946434009113189489906249588256795271315212680896816533669433531073290591104706166272081160062551718866555993257870618490231348084883424939315692808870264066587563980509850768369907520244365395897854560572473140645457440357577492074408052979604295733442901924262070835832349121555647082906767126421640763255546236609738660366377241505632129290829485928232906702314969566835021293957347197363430127155428502787240932868855189832709519571056186580349663580637212574156963314622625279253811578339845351515136652208008586074506287165017453081394274420774659837462782099335709716233187292425001947381582291656015905118997545985516567153832159834681301595839467598231644070611226903749848697373960710503148847174548905221360417640456004734855666902663392445419130233789249818725951351760104601907228386905077058540459270228751691858280736177942571871342386718721386162573411958535415912576556015541121533928733516387058570729671540665486465767664750019284118413992315226987735545741656780797465840552237264484393450270012445309969475417634283499961167929316064838218607978103111110017827308930907613497539394466255812246902390103704210741829477627918812644950923076037560000543611534533515985625739952720023267590407072295421230963846314997716228623868401256205120963724233432841808247233633942071445496035030062168877525321095052923328979860506847310445254810603283881226434428760534669176410922782910198354171811945563029714370987110962004953969494648020684459460238646389160148076243288736414186012217224926235310909894023044144442946344931495163524171684613496718266305108132318400577957912714751072599208345664442323512534306912393949189716740082895028135851578598412167613417720460188471835848987884517315829744614945888371853789461533959856759514339739428752377193923993298239784524136179989474411959750520350663390781949465851465232759767708243221570974340947265172212161468785240072669330965754075517484273742655556795133715737892294653406210382786371550154880923119298212747319139854438886204702341997645782261644864501355466031865057189909331925715645350532338364702216315292742469544184956247263852058275627616105189858888208734192263450315536289876805519078604176329047909112425439501740761805516674089803787718297047439352619997010091267888921670709986622686271520820091972136367849020696628545438286856340810407584054327657935478653822374122662993814497527087557505515042924971982681247982744568207965108191714573516250730263131533532043455562828383365970286260091243780120340312667642868451323168173614027461429602108226133036718600219494141928402457168950439292251736525153830875636043131087687838863517641569055548676246424963710115269301963549524410221190107307434135241778391989984611641260957331258169566579237526943774215498191298040760485271116371969973980105223611545875688582341824789155783343629253823289750073248634975825268958039816055879261735275122019966690123376997034208319546740116103955295088816121898573307136536952228103486230114619762975504817724057080819619657797723406063951301731814981165613541206945147466651086455131191252762636930532176399240133802386354296219463227846983434556349795844065462893997131169778257191009750995231298211275067569192953296745170309867266669539486859368397512258154108594227834466043951895028762788283931765878173993459698722678902049459862909038222480724245387538072799411786310148492913543324787807081917938634249252068906771010749195497288925587708008333189510407148519428760199044958023183610407726549014596913895304836691641163822821637064525971610421493603992893649739761891262784836929429994002938802078101617649890012077011600141747926348329869709982173264305390767316492168118475140348597602725786706045318211149387633420544515753610407054010631684919453846495579271901643481426846201337356379371069084275086593623328434612486012383811775924953030678342055550073194383651406418349076793838641261525877927477394360508286097887932916765875536970544544816894477156969137320468125064082053047721915727815333237397550441605705601503780468783037795894113768352759115900881076135762430229509621277472131568983627156261898598447024665313543676657563996336503006854486172075652451346628500219384515809967134094345019152746065067512321561331895463570633255620187132426515268711244931211499657215673434566123618394374749096698463005855574066944121055908652846768877834864631835459926046596212957368506508900577640436972035086720277222326306430858943471103620927059274395554253362865996218649036955185296880867322759682075702316683120188103183328171856595060469719690174353207452216085649277567302263298381318090696934501322124817581611258255530490427867257645004171091707483050518013565124301589273476810878218892246388498893514309058600446110441967682643778457807321250305288883569054342942663638332878177332210546259347881293104000784688084371768621125814397464022706461292253105763766160525106752586916951180461472746220691977320141507459551741536680021195726943675395816162494661553690112974695374141966664355285825012598956566769231033305175441509507046695415683843098085486559238771516963713745449977871538910633429955315702601770478488886781021483942286069500370078087811745874682787073753550230843212872891633440266912200269370359258408886453184189324028442856552813188547425487280905630417785223500414479231624118933491640763471146746275333695960452482861537990627544305785491348865772042266761203238206526606179897673845148747645244544723592256089364830074948457264771632037442712617394175727446772575486351358212210982658999455680852167784101328025009881606798671097129758275404399155615268501563214171804768649421865218963714906005105542648089892532864496822653707717083425078758469300262008702059016242763403678877097055593168823653955270735924583081993009493104136706033477176070123081428909527720784168643656226714010357218220498571514380734746756541425978741266468154583499837633855805849390239095214124798279973316728311093834180464913535593404316596955345156121209481219006806769360367507671684955353414950101738347408698562877058053334825206209587242729244539117799674270731985211360709673903560155335090036734104311076142064641598302738829255979139233500059790749536312054647714537102983362755109434477004851443418516879997037255698947930991415517877112299067944303645504986435762506218363345338692207910965813353300090252621256933330079998360545171627846676968570081576568245291957647390709240123403928074080462463070454260973109064601407375625664060702435705804284208282214629746399865941846474016546014463112834788350552560026172348353051017937562532578330693890915026258520508202352252476156489409928946531048082011235428249884508626362656030658006109545481097118668038866112436162707482865054678179035969748221997793879812231741061431160642705387062713847430932598743577764699040112478123134332217903548458957196229365592382006020843360878323725186929087733586405451026040699699701558296300585475333300644107743587721142895147056849133244974966699825012066927871701841593534114890724635919006074906176633389206766083405511477879368523848596004970857571434912361780225708109428703824880370690183797480208558492060547130561346317160676385310816988377102001734687350339286343624114913714659950253858102359938046680839517975902506765371659463760985671404569752657394899928893685586880852400181149177721991496118997348842123650701851939080600581282083816271877070062382596225512688264623593109888752559452551330504612245394573677989105046766499636114678392088420470785946049772766620309753877534507872719252185618075795182516013533633998859546280531800418936567557430299574422339777157765846450245985149438803220655879393403737130568277331441742021939767543027317321292745048605006443055813997833351689127561668590330848387861714372392776301987383886103929695765476308981908660711407697137221546548179431855754461286065536497552189042947047293485462822722707770738759537064289301493058523767917674788701246047281442651608996850726951864030973633516358882777327858192399622058520402338403864200630561072760767502550137843868061706734126609417009934527947170651088131525210114182608446822079777889458776796051458454562134303907006289888391306888219658439830775314185625326334372701864302064783398860030574514833250641006891592939699348872545431640873039234009127600272387400817951736765451885407146728994416647824906182571559242392317944895956458466798009559799778323195280822615366408728674803918565473261461221497925427726535267790730227774285843442799705705676041674273574843491788620949057372708987878998337808943293617315464610970198411934559571913825906199114122582178666171916653068969525953645511679473662112308801387603782170130231814433500725179136037311876974781821970441625602699334049330138444659489785755379859891666110993628591324407030062293816701788453227800901627744029662433792616064199058205702174016538450091136304232710438183305002280699972946852608434465839815597965646709526661036343551748901910810502041187002475948014812951996241282618119446657949251904426194758606856913424483377749618898302501724366113148372380965899561278020599613319906513916496490439160762518188856373412770639464796773931885129934891465694054260147068487352347965458478881584522655313787785789095130593740125994636219706826333806727507527010373401798601009129594472021592050166774416367160921489844709553126058636084438542865457232796992639126972874005433607453967285118014636147272471546544028265458583336006219550880951943550338437709868027684573927990720721079512798526270708781442409040762510304519127944983430469230115272741863751764675157532520886167946652256128411341884015946189264318637294615339826890204179039779021624029103582733888668664418200325023135362195961590090854537041415454060722910146622983258927049551602174992033390046418386889934183573170456735266741875756446176311956605745000269124125584462742600817771449527663857517452248350557169799196607838498549574447846804789431401298570859688254578132167390156088596029997923498166742964355946709542617910750834675172116831071356857828111331043184190715091037050488844936616119492016760051193359607632103797316382854860940884130165329237107962972025341105630702994952264624718848884186693390958378832231609057620520174507250773948414980615334861563470395584597866822601011237257497442502664036112865743461932920440259354672074573701194163754014059261169730033183623478204229108384471549303966333716349331319039136112653464345502717370086991399117031085091097910871369399379776997282136720934238653812088095350511492104579272342423271137115702321479437183466746977777713306504541984513023946056081692521606412416678705485350518342815767851275787381102959420065808185656049728403813876704585143439291709180478242925889647259710667062148015324532077383924838098328866975586355881656803141814624744688721953016219511477498553103868545825392205984478157842561685184362705234442508702432216682567204562489820670786585296353342770117537646652597527662269958750422190052997014532307721175002449843804689262293916549156556123841639550505516595466597332955147940271510631293153611678593040785664493392169152107922196016243681935210558993793419897746299569164031090167110201737254774684526618366268971756986482419965965605215788212711418987750073114811545976801801452892783928898588728402457724038948774962038800300323584052130815521194886812885519233496059260128332105493662602340860161564106317798771706757594733061999746404672851519075528931450017229317635471166817592459270926395553202177713578087421294953140994770124722445517245846660393652974849184657178227662440032026671251751685819887501719789124232068177943424438291883746317473463159773889725457541838446975337575306222258480055347675662450710034072982685988781359687610891292860846143730692192066955080134538829730836364926289567835351061587151483141083379052990042415348845862344484614229716893010764588245381447987275783203299995105999661303170421100428468186813663727278168927107863925416711220611507501533042178295092829621338596999603326715008980461298403532576631941372518714222315874164052290967750317236452245061532569975456164891908910533409673597636519497609200998189825081765266728353285582920039466197684705822274628692026300707106159130206225094100023032192205853355205514969944019016229565272543010852918437152309932911519857535264185916015659240761303134317888882705737767190041110097503634586958157629715516835802777850314935237904512320432523143611842048905390112638079367995249678578440651025916087339376009593458197446339983499278914814241440569721979603112278423865781932268537985007161400214540508839744729475453518313207018485552561721517928739324567940598988627933423104388953334844077736208037549950124725964641658949682721902410678290671106360173713090633475383233797471828922996130997891330759505107317165181145547695107823189929746631425844648005551586143825992233861387628047625286981472617158052324179735877285327954846539606997960914497936354555237635347472307530492219500390054544742900736664913200546376350086885546801316896803459301350654199435499515080923989333253183428213248250285686645007402438499868365370361361655221988607359956359357739930863801555451977864540188843923805261463842895272075276164945780118996445371649945217976201336621905256193946512552243639739610531787979048235355630241306552813568865524217213666948942917847667273067100178859704635377285355216412349661978851272565839814392828574318759352079144472599799562434522201830154458569183183160797520279119799126610770060713246949280980467558837591069795499530921359305453320737558527819219827282045354500321031005995050023424343750433914080408727661908219022133858160704635430805930825772284133945576813894267191385027841402545059172432005762376837518552275879809732535821304830759321324455696498832997575197857327883500649691565704660541230577922373425841716478769638919552082708523621698790117515511541238590919532155781698328894218867896550626895547672051980287799236356777910313682213681192448627751237535415128949074344858895449420809198518676364572840464004854836937281515591283588468124689320421235544868327696878284920499937458374159973704413899903537099778185661671504893155646473066290966649153960997037802541872387043897257227223881393874523049964030535527549178727074948824347915580684189091631930401167293910522230085288373781261676464005647025011817472969335301844189478232039444659596944605539368952189108218065991669503927146117807027878556852018778880505485216766415431723263259295479722037760811470118613070156796873375698908326950775428430174441323848719994089299882711563899432362005897306316432010879189775693575487470061984384397982837162719144945526114929252766503857634061718055232163447292724251890528929528620515582967454647556496738165074571820550083926149840095491621783081728725203269929139646424939675883973767887927959657726105790956282663248520041849302320765830415558883048376638789080746120309051092035625557721199910432917000043162830476375675864126050509405906561389632565097582346790952520038038150565586325024719838170634445699531500653463209730447780857952188636665309920278440980628758066109033004946867680923722162753543417536833170162622057049970282531481098330432980885463403537303055097925899978819384822766532647215481683392436791033302054304776657622347628248972135331170250776293806200215831492680737388772851726297194559194506644157494480720322237135332832850807545538944878098929352245742466236057210456445902245464930684362302582786989269611519775410773266135851398888717451587869765634687053734577078651376523211981582109713594037320717788612034118962936638978625963686879247296164213264796498690158784616720947150819082667482759914968255673168443652235170751085620411420284712034282529807446333322739041704834446161133768597454661055980653005576518773352080356591384255306415866577782152888558009046865401781137718412717778940722936845851896344483891153015709897625786241555125482849761102180024287895432701652954526490306131123571713075628154788773114028252927147441208017577227342438656612712946605977200831941260283586336068332717694182206173315772223172986533787658011834386474088171696448031564273480422127925862921243960636675755558897719424350491172674670991938952130821119774089991571215131341961486469380983724963687016845809391831148818350020759774681345296099665857810043385760269362971529280988303862358390289404492447088338523153896035181696571852929256983833426588292702348847599386491491606408891087161323541397657358538547195566423400969796715548655053131183823622726630253527123241394991501011942415590775959362977266508317025048013732602041339837347797945554028705957588086346428190517254592148457124861386988748437160615158065118831451167845552559286332586765441858913103852652328798525230283437832553305878937611293188279227720123015591092761293435600657851821452816233437408956842046342715715790169824901941276583325582616341716325601040228751032686579848090214335201237800146058189222242821886068765334672313665324782762678354294506938131322430516230849444775357645179543580887654338761646029473341194296876985762520571480532171941793473284715725115047758562416168671406290999246152305462027291331670171864559827584827926026161802542437747921753287783998704343851629236221540675486707661226171570196025503820975946225118879229783794622370997733116932400501882720686694274565321336322969483791156140971377696308228850013483128924006778487123938155781379545727378275937748662619423846303256087064918378671368804789381468851701041087249075781835603995560785884214726488593319470694607128127725244878145602400348251290378748240441974049103950595886748928708950555894751571985751728283623739977149401453979232682430046454982532326531569705683293369015735593023685087527895691983643215602891326465876602621096396143000938509499255551558193071170033899450879568101195127509620506880150469979625531054376259605904306053121447790547174696279154853109354416526409634837210166384125185157670302936061767179636378788352895183802478784014176282977629635213689002342735148520816796500925941300055367612508015001763950738492892216187418358063957686343597303054778171348583543598088818560886994612492867153283090154024748723128320903546109554660333735759807764426575670264001221648749298909431208059048416567830826910012580388887495577034557542081620006154896043369937704702427621423012437226430904628651521681835024219556908010063887099970993314429372161270819987069825893018919772411407261755955688485024496794186424689841006153534641207674849407797130780415606352533423851763351905706034573173736491389679307322830002049571600097151288980890354466460100887941471177602880888945150076973550211668715031273907379556256389337537678407205220343193389138339510058072550448926044585922618944089235183535727412016620776783698564538128831058559587286320811147946702751926806091399456562526625227494652966743678470507014777123996174425322365799824196219598282901508954224468673338335983054821047304852626893661384869008350129910250809732023105386651695837476011334519714965748572312574589200300592753834955883446962645500825619454372515631484799139978811332317820986027234953503246126098518934516765651026282721213002190041991888845843131961750426747559745203635095473849687519929939607805464997061241945024098080574521431848667512381635159199055116793966892473466451842677534932074490241456202267437005085935953089012617576728291510938690813944401301427975628993686083471329952724561029771500391565931901661937883669698397471253970948278492120568518238750686723321278783076170172878064500203239587898364491928439405188551968740368408229064556179335285396200008841220036437494640808997540077363835918776305928788684350211242912864264839009889310711933665448412954592799950831553450469231246127884498017905850694090257766826385836377632149508907614213518878565410449281627365312380155716511153734372931815972125696000309833471356741651001576851255281276120376256240038230310929054791888656414279515797377827791048881257165006994639008557775273317134462521182671203617765078495946678105148632340128502030002582475200384982062403562332110118255207795251399849934462146785385887982119630852875180760020136335394334835641947282740802175617213929437247323905595489433266261181997624694837621855585089039816646963984367372592697656605925035605272060370171780450270629205113724896669451604557163424071521694565945602196141658475640656359135012820381664271764880407942519189865757756523552378025182749292364656837572677268192281323926600689390877226530179504455366357671814906289737357869958588476536187879095322506483606924865308229431927610995969131856758221106332164697283793535064459212754636318604962683717928787374157051505549199436365562046165458463273460586123695576230624427865732540835161781600573015224666693505052905988503173315358138958191173102689695623227624394626450080618581430416802925567788520776392486264648107178342346869419082366745444094730806397945964648725090786090210083740743062615596817739998919777237682524115839207454309747580441598859679182953382721529146793478647359348249265350506731897653383267018049164781827567641445445598329912783139238425790153665520714410813349407349939737029588494394041801881367736549253470939103634376328848971422588833761430929793149577574809290115723810277477036947311651473641126843898065324770968854517369528860272178167751257348499656360663521553330607042173325987807019513402449504864398357319082660350409441512960415265379633424418230921476415350520564634543280839584300730021770359977172477573466641602705006918203960524232600491713641211128010440637929815328102297828485700240722025118999948337988554366001345843884303828826533478169550479951735072898214862120256832521097569588527716734743368207226919247531275795944387252188433908307563896092811322405914115587813197842848608532914502880445292420300047187728106717198829691021938213998278308563544099350726413595477673665389416178280210405400173904242683816474482640743743893948308054857554710841546025753082807320494781006189579613564334897595873040898795270625398539286934173399959401731318423538527149934542347853584359240211369358226491974197300339332336969328400443783713755821416155798239395796404900310541401984528027458455532516547586448350442900017726005683807041078864745251023440510756358740694179086515369749408010364575626120989757173712835681255511058674985048479757034966740717329073661931816798798130518413719964338391250111151027547996605726144519686064417199853202319898999910728366597450703934769074150847820916329418574983324739125787343303784395576587660625147089584334613788972273827293636166424892158922274483899886960054409121032218096383407138121021460522648671314486466024035080814575823691676693403936084387377102676605073670606427448163758758293473708071012846642787454511849853304905869720431048707445277451853752917931665867159879873970975961465029903379803574664368109242709087652128297170421817348429373663216101933489446340733588742803749753109053994256074433328449341809681863366513482543062723047503319269493826988412755153457185768617115123615731348395097924536201680254168274563507329516536333145813613271574343421860117788676156482273332496427470730958361990875730162219509632040116782184001371709234133235571529932423713458865628241303624181467648803037345693424241525207351867649116158003959544833980288586954720598667782996261572564687738787662362036304121599134978909177537863431538638692706769705367465820288301372426179244949751228532163468147027840749381160230488713140103841749559731042579057779384694992902847211372903288055937964481964485225041424408471705301152794284148092707092966308228581432944480953378371725213615981145898918397534591336913704011205716471941210848207344104427570110415176099281534919580569706969128051390675762813087730881839171686253959511035038976055023536311535380600419385954571086678351745357910685526409206418373439270956723488389688338418350808726471848262473834136472389831963385815573272725110429358976287497935207777044426443715485364382016125582305494036448277082167749538123224732130572411392431775426162773941215213581473536951070248253357945232113668594832781123041076639058684828539029391168061974769396482776483113059586438502088926079135839231863004326363283138993546167485756414659727484980192107628581429949499870568515290164351037402018788793357817349990015367841948734923038263477216691651741742171123737479722344883832928725986862343145805565997427664690662026303309484830211670816826651990991165436662546187528595072047984498683977175171105442559670770094482603872152538662996347067872731778517344467723521831199114807523616875448619407204966416477661377516104469375765899512626478326501195387491356657890639991916080850103234260844323087071105854431503143499918933027961440904206966501955858342396019707447799135311521632216953438892060144045857235992606717096321016941866215134634649510831465062764879642609809647791530189592128415775200820931450847571792171294816449834262182941638752139663327625224162367725917244189080816519094242230176620209243992132529124911909562396768889575998110772113722593946223296396603517667147312232362083161839006314484759688857902990520855442879304975412714313348552612104540492278387523728948283254709753748895988685322099477303111457247101425056933276639467863272339745685252091549936629179945208165926312205019638112465009501892922460396979491468157594078511764542037045366999944091224096590417230266213059322848773262969772870648117340470541869970875974335594224876828251708573259865085701563204949267532328857029858073549959424527433724630547984765697472031964233382044688311247919066159732348891110911307552558343672652892819747137457532199773010365643669455457329299761230461830635236781078621916941336651570247876200428408544972678495834326902704522100365880103830763324315106800851902062744426006915469066590330243597195168816136908327652544867816154968020486875417401723728797363013772484792489535157031608518786018179948561083879999129336945102070616465671478304187910677219454280004955107639922831597480475444767141590188873047935997190670136964336718329945397752636259424798212227350749350535054198307132511909373755779704326748163918286936168837740128706613561567089170090900149012400164668675120756195723481223374767217186789162039927860267662371803067068770960967179708205997951715278649001755385558928917483431839000092407842237219884234092408073967134731164847716494042343878719869591348670643137485089723664757664269070192666487222034778056378218396858408432115775189040794453358498332918064738201513392750181736882971032848359526761777605757762041246429615696353456762121405256372983369836919133266638776298481740668632096475929709470531635595930443189566879620612399749830217162647536949997428641218276574625999254432438538933503318359959066761567129745009428997502831118914907807872536062324443863028663013977203168675746532525824039114842194365065597968825467134005140229837076939153443151707865723838020235249893003455693434274445862696231455584635497946293657847572560670769516224771205212605992952819588583180359673545237835938530315244035418227521388257457065748198934742094028279265783515833125510516607796601991386024192015884998951836851438872723374662859385722938043498656044253092610411043114014214278239839752526006413616060100011474165066527623948210781097147591092932079372869755946593671282199965306781671683830634724673988943611674642713735998213215275705414466057823962141881102845750011199756793687531273271711209441803298279170854245599541636474538872461657935696594946852551902832380204465539200273439529209185424531473550821677677141011995350019910649808841959851582797283702640310695255210653035475167675554312436231852299517385049441424293720849888686073070740001765843866612254057161061560519008611309325075765610202741004768682363652836744551575595132304907983666535764467047033292572276743141365975253106018459161787336544159380782236381128696632605476526207104455488005411728871671704032128358192604680913446133631997581558080663393106345985121199156345305722906810164020609707780215947832032942729323073385085383221853772510292550715264014112044598966023885971143285471390167614890529020352611176780090914651279952164182240227245346439793274969656463133635798504632126913185855250070923612546449885709107260303223038240276382271817859397988587777882478308142082848558598326447606281552164961005603543175866186500507394274367721439160314611306129550141818129347599848627279315148184895147608652483724431047361068088247420411849444884866944036338286930055722153796940280678270950885386075508416872720968040026864228684615653724528102077944784791069420677338765025325219373048397257252563439037994481152476713460524703755370241550753084953896517207147786797736692468880218520171665022406093222195069158529202820742599166457005608540364116205448580014381270183931072722169746837159157265632302816161666169276474183703691206110972384848874986515165676418686639832002994059175137159405968801141561167461792481287235523348517845985960336142849977876803266452147761469990995812908566459609456210356732694746247537464718291739202334893398080872233402863600476211973982988443057439323209698562744221382093461555841554305489521176468059545684055097126447188690063269213275284547761597867908635668226440727302957130816473468255498996098270941972817217788345369397498320883438167175244304709990349166252095822109991027315884552961020896204318177892727286894499121871622172240378836701733771712443873537322583048359903762822004079037121002243354085006984800291416810564193112475256785658600360352497574769792164345714605457795223795442421263292845732526753018980628871729957010975877658582937416082542856838737571194806775803241065346362462528310313076544367872086261661886964617776013661895815192812947181455848193104400820627720477131243586401765114602799202831852831615914391004966758709591862182472913003613179742944082235739129212143014324137989812711405040600796294978295988101571836683531007347388256179310537493930663333684123870109861281576965496038660945658102297661165810405674865622895217283808014795615138365981583812949335204918218713545745198041820180502403597510953991973442403000274456187722749291730092869873137576125384012811193517733395897489591559031907467922157324436342777633010049175814357255068209004064824345580338946803366427318415831805086625264607874050135335240163515434973563178192086753832309981425816250606107863941521602091038668714116751110732309306593671632855798390416798999997071813630781519568559524130549357489269541351139336002059306377510770574364190302277665340293361967407090683505672164635060705007868910573466436465305217443010399512088201515239681160681467071320173612423922827872557862219488208948495846185871851635391949828127932254438164692157383427488931942481368922788927015501367327550988854716608242355844667734399184093486546278228302946664750311334355832408531358160950109654415390170769833604154117442407093048196248005935985678458751387051939275980231692083368505317886976798604548049444958250636946650594216245238394439796189135049800544091747763325420505216108819104872978510161976740157776999201712456569113166340673844956527458713606458692285949047990534118867889902384893985360452262053377924871271844801928687788205395023068762461070630514823711216293144958071190181429430200702468179336264315939188659667282703970687344929759648727791477051993800919010250929021052916601466885616551177337043834508648796531712526338567429797834996053406806730212514435518279297599592960248463336845271385402012941615887032246408729609625332026602111635408392327725694092873937395841028327241503669021817073485042327819490350256332102697482857993381743665631893907085063225641468738368142379910764683216471919917835781324337408665947934269361919227878514540592271897623783972679217043939826999217772757207780363993880267823071888522606405729074021115638330512921787263609139666243192884292298368635131326062856637120768497120118540180091758176945785427130503928279816577545644455836745841276769547250380289760248083804745158500244092453727334527334648060130587295979016949440057419702923781025051249459739398105992774368885478237964891613435794963585153351604354693745374580468732053363559272225497623255049844432099611430679313907659141877373087466196830261299981928772401998591624015724706510807924711637468200182984662845338781691553507856538380513060671505986547269000887551475544992208553973100521222426087771781278368150518732920436096878749397430193813980251430427583088003223764413155099325697592595352811910204835563333344561262224571186954018712924224683309435648028630876678991013423819345697942078946371979954614709267879305087551405245582502368044252907498625882016699930183919000964874053584329069262881408794230341961701498161515005907387467025128834409900767044704215017632506417586346825725699953860400121311569570162560949703235345947405230103345730275487592013071198207361926548487717310111478969048646605940339103637185561842578757156711856860060515017509489797379122378235494695424545984539977722369281629004789084958514334044667130732906121719928743516075995517969648721711273550104358242967720057020417416731589759636989692418857913944604748678185736889680717570185273355290401660050234320679583428242697287217667889782511265117963041184358240419818651904959757348389510614283021032014922467297930635878198277563072555069351226443815825635965462936325454893076504829717570241167889247585581106925762693276472661756678988782631420866836978456155721881677812871172157018553875470884558446515609112450132945500736265294127210985137026836772925455634133915950711938143155535765974040521743822740632625379745883143645385818085045161261076922065208140448564382486270590695201254977296620287230768204744657153670953282713533352005178371605896262550350508931221530136068616102842154992304618261424370339366340608902657066641651176853465269697795045061413446503470272855548891503994291100704413431246468490212613293357199502447431531731033592159620334252964525166998952785670101261463729980942220404644511666694210865478197347574035434624550720859706482176213702074269470707211924684770751161500179572181874466926381002408184761374770836828280052217582549003818542693234469429199378236612507782000906729875639294255657691841332944511436231023674497117930910360796984962078052357916966891871448705498483356376744066564835479337692858269474803556627543634011860992610107008775976473988588495021811431136404504478975060948236737910720358326892495043673899580508996962802737100952864543532697439612983076056982948443334082158622131247607138123280349303601625162712043632215204682830687386583134734963792005982670654499224799180655293506429135092607146773042543257878216298796675732232119219308387279294752796131310951186030736091581069109818840588898248803673582038421798970508931086901449506293149770769026448616527396316879315020849315656545806795912023351844065791303272357211495878658876909695476487432466908213338406712349905328559258580567509529591223308492582350439265650320807202796810068443297318596412387777368852314790370175870280661591464943106249827424258067208004893046261224693659098457631073875597560261721132907331140115345646209156986220067569936679500855172701841212837717619704860781871026337898190515988336989077743137032912786169833136659311125878058896722460569677531282940042988066853487265073579621786570262466794583395027916056752780890674631033097367080455759711013856315594380040376689767495741196147629442970950504932990652641888875606089759101631267448748495218689093695849504579952994379668070521257855960559709352259257522933860732776844460683644971839626726667653401580287049692571664988208458258880000960912566156012119517548912622424112569637916015868632409743608938533409470407899297386533577642391710337716467799307335041877221917104564384373388789630459220988211271073471572648829811043736548453609814244091675240503508788804857283238278979825214705537155324952491791770726422904383986375668528392129681033594261075714785894555580572316832811032468497165077873715228524523104843127237932490356600950280539579403811699516692939918724431218438969549586624970113990596425606419879379393610479846515236633962825260957536169446211911207209524917276165793257988620231847215857855144358995070106994945635033004235304599171480734306944288739265682194717767487415049419691237712011907857536866520796681855113461407367666386300155674677504193969533163118429317154555596111935573780525005048429034578801622609934492869950152203343731372619719966569898465177193078297532576912896948864584720249652209613421557577629742004597248424272273459332598110637248230779814614919284430856637164174219821554158242142572056656070670778582252120485773544270101616548711521450512572618011982827961476437339976573882840921783158063157640840255665340844445616365935411096756058217891036857460459540148347891123743009171026866572654020360055258378299657165515186401809683253677013881647816649014267740377372981223428357623647900832773646979786983650107853214483112657521453863429289058919201682630645642235865040642938937585430797267947594852170935688813917327417056352906625345146374242701557727586802334309087130511396623341843285185346448334875856696642640116888921019115533099468865270534462129367977602787247753988430767819749490583433415227318272324432259247752069908651008207782794015733247389103335410152281733642518225217804932391620092519741462470860030335623454246315926872743435176877826698243047745493550471154811181672942582983248300400275735312155365871132084823321143718264849260755546802788715187372084873161767645443802482474953187286330820534728262331206399247314304932548831051270715388945415318056656445348248548286475704407030762215511718378549321243043540438091970885263368412811998774065196466637073742391620359692719119604268181226551413927290252213808309195192845273007760497636665423285866262355877012457877845865531026519536384235769954398276377885697065280777658232283314989002089606128122394017654332242320925903025359672849969848346790154356580529938002965616740827790753639739000077561970395236787611654363935757899676445522891811568536932284171706614008956306870488803786891652756055861066113460265311338456910030969858672227088063142170231797657762126551406780061950428673870180701973948347086179687906389931642860956905681863316607662503739594521550810541800724881935296908348542335964350634233875146849444927602016950407460111298781959987288136288210086037636673444247865082852381226378194319538224465065779583123424281525114190345651135535905633329049255425372461630632934190590485682114493653637954460726359097420081161311581619110585735872437392995491369224379123073895889344688844593317037480220258413554470546522337215650547240179309249768915049217602483909173271044314036483796235379420251862313206230472378045824004150701231928480430252926090149768019213273101908778186138429998601851576951228740816051264826546779889944529843681347385197990788166875774780899978555892715291934585481231170923901171282393734069543385781761736460035314459978394631796721427379829041597184694088919797682446135630005470183942586406956182608057282149661284907975877580304342069637351851221058822462730939611245081012518871023997986374723127487568032687024961774080846407201095531798678866454267421249578271201054768723221923503312723742796952944333647688079742595442906648027884967408569330457669807314062363533399861988894365974906353357682732034802571229263638680366051609569977657264208453001554625736564669919378396514379542638384497222988016019528344777916919720912880182744773140236311337644975305490931191286903483589510249844561243825325642468412937448640672775247427066599525522215376493258809882959160003631980200959656701808352975319010868881439984257982709683101271202537426296809009081140970013072157879167612979990240308050795478438432319625869337135380124736028111244411390590780827041208691414413408510061024233635575916693104152705092417279061601018545245255071230655408823700870840587171049955682280091915090103186707056620944857288834967805133587781254535421630701333924542879796083002889877065244524392210715801733255030743270707860045474990733545116706568201859146691063291748337601010138111705475521211277051623291250364324957202337456110679572955826733874792903044773058800794634728368874150386632410450325842976238284117810817645052086559664072078935095685903248586682610743076312247257088653274441093186411221453550129953134709368812674127168433060409199080046836839421197315422422442850956234380175913125022406573076807739889554555180871646046157670251679108480915702729787749373566608806928991958784191948121204272274325171063159057146595982512847778434677580166955427783664807360769977001703168981617145428302015606184590947259440564743953951687086643542309110105755253241293427054619456102582628165483085946559991609031950012031401953627699032507990655202447132159529097570693119993069761565809687292569160050365639613243377038116852810613130120934021890181284515557688057509254283842334377670325702578437773574551141388741026591237691245665170219072833537832598223188668664390033277582040812623947643537196126578745980095288290202888630158832901374407579883251782544531819838969748131369827190307485392289791287025786565496529104030137850107205435541818769595258407613480756681647749544642938894099857190496155435352270040244460388088795963679192226947150260257365553495745213168253270055519684053094914004491181833653569451539475729476586543430310336419912972180269426226502354557719985527981482191709448349732159203468613222754029266263916107614593416383883963255739137348536853392486378266193095298361234429183599299157932243605673581827500278706311459851944274099812031245275002999167315134571183372502640871839856864403881459489892512735055907372697081484459469889175685637003970811970770039207549320201201932285722865833656299343437658801445964171593719238885400796623692593512905259392645276464176556423070387923598927043433268025249032307859946607878013299097365335670104593563267295458716977165199826695689680761181482404811531081156865708241368311238842939036407756138858401982499182679800947848605201504022986329159641575084591040457139181996305149560690143754269680228964720693472751312249628251935721752771902530521335467377199360469610792543634053383643764483679806558332724017769962195698985502723446011365242577039435068590226083359266100702865237391685814133368569029302850910633349382067830290527073979047722558029086382685502213765819499407822657437369048479904297976358331209703015892917159405301861746057405975434102424642347919964666386969081379896283448200599128393395187646020788813623250050832762206375496063634061772192606044230633304262051456800396608147629537837640194829807168509237752182299907191795236240382382633651887555142417561538254364906643683831376239264368852606517766718782221724546133258519898977771498776078896492854955627306828388213743340608415189598961026660820778695277182054919139398803893618368675356430620224870617629786678888370100236260308098153685739332897154443486065787025809428354494474762970641984383022081668249051240306156153839754760448128109759042094907029910320616782991344698469193172851970139239796843132275985775627257787840752917521285730119409212745850822736366583739216886812654341245090191923100184826211395249972435932830332259006854802463646499996958270631391555565233806236089790466219115102032650637397265780932516921789933215481082056623920939477944577040340646621284308761629288780704744246040412339611318123137919360396093832908712852091318901997471596184645408576133711796789874992182666914221236767251541982481604772527578894171211248985789361455878865475693691435894959635498698612521538910514166479811711916261776596436801371454009638379762196906284827477969222746421122133192435292208677439689732806090755688318023511640216492739540389447077014522959168733659675041277670640682796802457689723452634186599957527255783237348486537578347526482122428170580815087675562262461872728372400392408808822536338817129263288273900772865763113766034284282699092260807323760797034453979452505165876477364068150979112839160466435574766286655651154076490588653161997596911839412953011206697626585592780219893014348818861371961670136942435172422006742175200875277380378116309702729655989221756540777809057166325445426825942639686140064507827562847289830835750662372616626989317324444990647892555294532651572452121908759597111783506957212233163827064250741904510873502899391324046024287160714820904110820452507254353231989046386373888766829155906448532299229941307336061178636882813510913158490979536400074171987348470761706188126873596147315879250572131156653568131014785556783047818745858920096741411320768757243267488751303988922451988833377045324297051605533969475141601191087195019123577778315536867207679208612088695255334090338322973137971291180062909855828348905381151825316717556504747184426956742790763264100918519912448695349471959935415987680997246421205867174007911322260141529052148863961607204946324972592720107349690302063260300473533969194809162153372733757743577880169950827538415318157199211671659678147331873393050272955183589260769220204576630054684480557592346011833574824844691880000497443301537131815653127952347657724905347351262961939611349641064701963629488582700463745515632003268483859851425257110056632253147121238728239528187903513531456592196268728862660372532585987875299253846594551348999033171767515588857939986177974149453320116484187684960570489034867948448087490732003810913747142213650107658105423500360300492226207732628414938108434149700510453374715917758565991187671341863871355229045480730923023599964865982001135395408609856314166780809281134758653111089076688856847695681759385055065147532910796560857755521269790475157385605165639869865906812666566881662659924024402227661432140536781079038618729630590876720248057100195202816099493904133855390399478821955101874258728437355459854909410149713327413190895950970200244197352481439616091012403344926992576899903965645492550591371941603159703875903539699913651768790424559657445340379187658196496972230776277751890715240344604908499348664833158094532153281605066321488777630145342475180687670702505511023240283749617899246786046323687712793401027438394776431442229038229256340483382509553104045756369987040301794402496638660983240186465589950664736810698556454110764156769398953039851899911870601822628071238750322901347070391006750399844730797031320745490116808979364263122596658980013919383696908282722438200858966962111823914049028103534601540204376101482547438318789228284562961716226947856593805557486328222766924769960571662569155933330465816449834205883638426784161967444302653831976840092115751746573939897756407842515325618106595615455868165270107436457434100602693964217257416571160571025134183132817703705765388141391323462470712820676956072539872032926796632384292591724989018452820941674309869704426772293396124715685105463641543872798902397064653983516241357348735557034695958937344510024924418183345077421505107949426843480630661738994477642895293299920334528517987683677372698209145225476762076248988451140862666282448189836504671010108186881253417655738195745103656165466889328339870488640811651538088188059331959541750010337125368856852950351343057364119059256673932897897436263339175379396939463216592758493558255426006314804818596221288026287851074013741421358499948431026281675432539139330408184026328601465749989807806835130605157827106295666377243939146794204916298876223443178509496942622690519285637582412570419506368839088992651251200575791889125297549468760017127312423714474253994891896987204050621035217277412358212488426164831804517908935775857548060637912865666848979065041243324693790607412782039313386337142372994411597196167616220462974880057658187105354834074406369893842360295939237953358284094159798914579646889797375655004030583947165524208726486725991749293256748260432647550714679393587743391989806705362928463720323856808559306034086404089411655760106523084845688476395765618768283336982195802049736290401949510482498771384968924642436069597892109973327107407918888302206999094879007679754796324235762812714961252598963335343174391665404995228982543511228671187653676249604522747198130827098605357951929213668345922656575978658829560321056563607863766960679630008822373044370833770236201329661024390446653997624447866163041569906246680069494025985820103151251349058437328906854106537579045760852182255085057545795238693358791238250562171962314180277441010390323339830090959698919359274099610003078280569848207299765628610029925944212422168960270451930027583799176655586349238562432039193680481891624177502179360735862171569706323766441588732314736792508660319243254353582288657888101555110479351921814661044400581689009736322526696937929093115065360777079009870304589361406119698477421831600018884631070428357174254537651202787794944319768123752764908195744986786815683881277759441936725553523761778194806834090933721075286268262888864918229141980432999969226442426475484380669207934544190568176336972356321514638524214597646147957999145372544894842998929459309580140833675841670349033127994414883078995220875359602605529346546326183483476529442453762682092237461820092942876166073272705440019091079975403188224708424840308973167498236096078983270628417537775572002826436096168556835913847810968439332719750689775180337212037973905483491321635556018962203720752106775530672167693370135763560977758935923931467892756972646238942100334782181833242752291591616329309494373540567961055234320253108663804282056486702807847059970292890680150526306610068345764354028334845287013548956964903256448172284818929635599348417426119285041589602305014881194079413757749733741686009633395367525755911480201672526702242614594750243540776057463263691129500245519322326855860866273690223343456239227756528777002567540466063389495764396485933326283831304224969067785492731969494988006817016977445423683290147784550422974864746001007693754774936547722141572039304495617364912340007080955711001188885472056432648729714236472446886980132243112483641721070437868766055028848467388947173384229675524196898865031254620696193956137463601612435267719629754691947997207483922792101692529790794848564093759436943097644215777340723423520525405080203290450346420000826952858248503488354899602060935243006907538924778022618208017348440862100747648959013723448730530135967550273254859077447226400322004907854977349245535975450710411599570165947461095527715672408384370195133214558875037283903609045162274864018106950732310507796622024317285394489045238093629697078251901292370150812906970091505855325982262195606063989128760342306890989004914876453639504062523084365689212868706912740120429105024180669228267298712290568495865322463605294628500053496949262862864911517116339553204542381595637046047228748849271801254712403225127036853256487482250475549382763775874076349751108351029495286419655905858791210496210374741950782994623103766905243395421521132043001830579683167482891660343773019827575884156032226583067575714366093933579360706668566430535771157552744352882973517517730347675107882521681100497416250084043699679840683358142143269964045048396116415190432326260738708996793349065695478791849596361617596113324839113043768993937074189729703732861271479931459391245673188370304799284137720801329873991340045993876246159730912589043092792844122946871203823734089769808567070428706930238825146418339712080934057006205790130623346287195429516239969016695266840718258567342940978815071861189471339652339594882296049045086204933095416274858848453747643281074601583416467356302636614504059154822706992073032487536092842814086541071687767114304217698008991495616015869873721395470725579855888671432772619888244347686323487725670495079957444281967179595193786190931738400086909786990010437514725853776693522201893630486960241479675063486280674077661144245079914068874198000258925288132115971298079028044426437897650640886289750727655124397810105514301485943495076435844286404697672118524140329359010488672324446003521331675311809021588913873823627696299109600626082473697823268020382728806438290562815078450376437262022121618740468102124801539208408718036571860953387072906705889959732240461130144614461602985832394823377940873991365785227212492377350499788151926724909283337661151720462696979850535286800059673061445652207437443677168755147565432801111958375501583135441419437145207427606742043865370621400692920893542623360152438713442923867603683861574010916257187397554851304979886753529030346073018693152949988677123317971598261046232854387600488920007752171233562044307641292713214518096034437896603953574547194049868553000626955345072034454462129547419192249351770690455297523628036492149174362789774261947072521635324308897894465837168904759956652736926734024300774000375181260005431268484461514177653377846281193852813945564815880520685723699676562177562613087345945009226708550732907140628172643980977727886041303739578207097160001207373365708966550158172136100647665585966191219380373287552986732959001687933442029130135930120755561917256069646433165675082545348538155088692229334727587387948227378943828712068037183701552043992085116443643627193573433548416730006440126734240828779891780896051649276927627568283368107972603943050938295232073048385498136442150076716664814738661282924611836281934718640901100414211086440848512524820323029869740481703985473032860152532789809272435765318858676313771620643509849282607797324176618081045252875439232842915908955150877533017966564805225160991703309634111228316420943571234984579703850521485874945608909242355151719274205670784431960219070891504779476202375623419919602974639058895561216420307126299979061797619321474908659154653621355466051019491641145510510957259682487975454148627454961353984591874832834391220891817905166697792776490866680679958609446152225059365877597983484723090307143736542954549628106759240095254319056211769262286844918946786607756244143825563279194296985065630705776931120588557450301180946626596063395704990792987544278484773291616724600325734710833150697729463577882207184218270290726498825823000226467858572675981683881803390837448944659587105899056361445748660523029048146909760052207710950503634943678462528265081842462472910332076103777729355851977184918986016955374422202042468346534731895588024791084304194392380504311155182533266954293186312101421470558492209630903847716535452684598303924465145160631306907457637386342636581518838557685566183907495702789484364544491334407756102845720367290629460293805432471520773984112196536273018563088875178876605823830064387138909573184995153098008242780833587281760070917721603517121608904770205975725092577478030919248585419100054372966066335731768431509467329398607390722393677492611065065777078578304615800401919170406382464849548407239349010903213479587478029853552705734742413826344686433270030097386875643849918235181302405326881106751332898172003025155178584245470396140092487877282994477083885703769360486599348638633573145767316753620562853466397814726713626971914189618722814771343246390329757436017753542227483954214004208537084416722320543390062737892419822349569293586975553620586618050669723076162865381724216990319178504021451871794224131401224768640383867463477469482618112081330094184121082833466550346047558554458786234620896580681556808518639074010749642881083937823034887485141923976700976086390824433256493054480562112119454816406686761225710288140219016219591610634346454284609956239118088803577117108928598928846755313361989320629178549587961858579028125002151423518302439950472080601325669572910135627952233204995252249601292315102023219042418829199743870630919776588672894796269823103684538817807202666936549097047730798370327296073097256716421032319259226150936051383624417036010913982192006289235464752599987479313964019363600245839741924737987074405302308929585844115229007365730968546788573678102104283823364175748563988095123014691344736465722348810954846829174273515714846171499563964965866832297247326861561739993689838813394574867162898421240223704672140284174436016975522430724862755464232560894975381958233983231316872217997097472846017471523613435612451189589012295962122241148583601899408217163839332212544540444581539953651341688584314592467678980268183637581046437403302496184081740695789684875430477142124474625121820686837641507434752280501599926830892489964235843910151953995250972526210458792401444406955348828835750235405912325006091784898714911634752574509743295972774658769444402032198848297574534457376529994264145999523989117764885885328382769792196999605333855797467534466959164089347008442446561733285263205146041650370000270948777637667003472809371150865753992540398227653842864587665394736003333268134917851661830875157137039413298690721413698760273197707131414000014410809006881157402754731611683261067953564912596349145487706305204358664641573383229987848268350408915653311719009581125545200830869829923939326640771419250596233318029457314754405950375149774694239844043262814217957233222098418071546220428333833271501422243752285479103302530953294623183024354327471152445633493489157464196717145098250905531616698830310363333058641924030569860434362852658727111172884727525963832062697027734928794352450571992875755703290019630266979474703266714726057665184007053405639481263669315099790072599356803781737833498272792418107629187367556644490072951272175713690792716304304514156847990077612701282410825296256684587540663766211089507365683474741390902526206349606699646193092646633615307154587209376432253692129826023408269306573125629402291794030927523978174652242257794065665383097140591502936619023036389794541531153152313339732507965192126667748575392647431956513816347292879223478720873401848510544608244412399630303018051340461142705018457720112417072079030273335695047198462954768855231526492736069260020164982988069138300630329747071410435443829671377818556553286754867641412287306247265595248100201635918785075025733143284995475263989960057196726699259571077968288833798552297005701325116897895601194406301129598627220532672580480663179247809482213397538879762328229556171511310687865596238490211073384921885792199332075475177910893774537946936508256130095655330645852620530483081458531106374125484670478511807320461669531797096204200679543400294219325105724378146280862901229084820610107376364530227654002442780668355278639049685577390368917217055753607359925566105998510174893548672570114092029644608186559968800104241770500837950490861359688636345003918637000639229447249166449196041888746441824029649839946775738807069371107792876816649869227825313380198277071001224063516099088332025148916351021366294296626008515122857622663763837423701449670755600976576620427686717967443336457314571585750186787915403270478931627313192489233136774098344873046791495752203700920623036340910361241229433678009179583097848034270519072241615686369728403082274205836687666397975094526040944685094293226046699274756209899314481432677032272782485170376779566910490883036139191544688817419793670583440971718933996889252725058989700871363739785791669061507797500771113002727877072268860722365773858360524074954280855282612014284637436073601163393169998956172238831635302949260886186779228543943838712868368031164296609965060841377761326040212810826693704030644168133531525855395358639674211407535581080777122983187458804942250448248918781300871891949106492335742024701853471364269138927729409536935619681970628766468188744324901838839075002504575699665158858150475572749529430002272372463203422125029328342544236233383174663301398439502870323871509496077195881071082991557641079667236197839237848956703425008022173752354559383012463730609590550661191944083470377515172156745703868923046544133193841651767819411791835716473600626524655437931455616340186706016479143549912534104891413532626628696035590669345436327266156978880649550118365574509840041129229267442306968104942618188937175645004648711754333389431417962995674861649797818532416841450068845235374450075329850503240998681695853016348399390180563093116394299359364901927873795749346037357114774970863107568870159483307843034803835067896418113214650262234816477702279876583868696570582083795257825773301035576451430754371772501232560155055038968071018477142638041412800643410445231582791523188215347344182542299118554777537093584466299882909765708503465330675331962594878533469256814979855960398068519195686877593589439743851000316299056288097468777449133815635099307466421466544623999412829553311043392332550245897811405639936412443107285498417475982257316263246773130265191529531996562690475622857854554090039561505745319150315667067625966170019858220092249549050848125874997058937027775537105076700976508370625354760777335230647562823668965010626104257307217039824752626017945573070611875712091284873967121398799379615081506726777521863584379557459723310365233075045381496423909340146172083527940492049111366798763903270048617190154197318866754819107991211837576902003581308990130814322450882241592863212180546699859747000691940744206583328933097257878387557177528866958875703229669801703271660008397982312884605264636872688696476202406521967744936948611390919861292819395807715398996024081598486904205955206716271419877770336083267265412140670403277189211975326618358054823649659641264849575285838865463274525378749646411196474428889645263074542197105937364701124678776776710643534305823260884903822872947232519184281744634718572945232012369966540125487742297373057973603982218678118300872287184684997327143465990890517841909016516197491232408308172797463578659309467304247842401557547351107347730042699610869365742184237769520881049671189125317499724684671054898914200898227047300907260120929014785034129988569100299234530298791757327420126347686561354974026869434437885697702719179929564052418443681174187824374588752929460666840770551588625628559381759717769320625462642288887446560810029518571838927581837972423162332260300061764009992459018576786643057266675715700660593506042293604228071802777302221073526546633932234340842037842468159438365762487771085758818556099890871781089802615577455692253933766314502145265398624309841928092158929193997576825071023989306990971376444631360795430828162687338088815717357111507853769172244756369567097964539580226545282190629366878058087551397085176577226130457384794530497186761922199646092887956683763664484913162421332912652908937478360883543042501860806583912628857999759384349778923073936037675599485404456117798588395922413990103846516799832101614772816122489639560932390676460691618170059989623472835098630671745142260703214554246213967771760902547227116947907409337092396500202222993929745320311352328939863559965373110839950571745613624744610170598793145492354231050905732770536303119900459247720095012997283333886442126367913456202761415878164561667165344985492095072790939441958546786731411229467968482251357619407976730587543117434584278436499276257813186615694159123838429195514491232203333243246977072442655482100457416783535020830819829449518966811118344689389637667630580411048915217617667027943987475501316861751509770836933409895598232639806799196814574890025177088678012659167875619425247500590085403811033356760282558280491481796708804022976924229670329616696673274017788410061536817328820986967874476257927937708177498088633972848372170188037942644012433179468151981853969608115977506179818810350777537628869965974541552643187405755473663905434798603507603010658928112969384923213976672308584675534711841404881455863411319141615484754935872062284200098699369859852687237074010382591230861934701039557165376777421886901067750695006847893731447223763804178860233699960981611157656123227631126011731018737843004175253826578732478756620517714083824552785570817549042285305758133813912361202868175407953404972165219888077783823916094462586999750291405851388209632890582768473777786624091384791428069389117345842317607799198332101832112578646498025093128738157911074653646419030720770583331139996541000104625214711394410397968570629842418905597558123003480390685192943074630058366373027130184804432712832394882324686904167252306224209016820376914891681052891954242499069763243408066927490797626612973467362630980675220955853870212794598041704565886141253030294461452860235412156294129768994121037466894820458981532122605492904586618505528150380422758633922388768409473647191790927911402009763354804057440396199674236458998938040055264773447854461494873268322409689000569971046247049243752559299870249188238224685914215086707259920152778475032241097131451001874045674574735737999813103924417765332129478873637109390735021892980681377907480963962772936709730827643827542851353022517471699992493242778163134029222033808478836777699722847407255620388783931971594874855266071551894713299544327870456504218901816348826528207663628780374770603040307414109752581619155233614050632569240552477632633922190867118783414936933813001317040842697377487999541793877638301461615316185310623202659043726032409582009941884714491733602968647303198518940646704747314000832605224661814454702739522423921181444172679930499089754246721382614041427028590206824173937211452236895817384254978556821867882195798877606754558462469555943445804145242337078203686734306759465926305252575264719950344641679630957093481523966994117207374706269610887036608830079492239495446064507104658660420390446143991714892403709910509023233956482559355787274681426193250825144988955349177023966179577813821276465018649751794100193627729144920439748280564100188989692003784043994014540063324934058223140056892258876805758617986727991803204992196090775257911650803332440515833318701467985457740067402850481646421636166679119161898055188807513352665353223211963336054754800662909056517524335262094396810870794180542653588101817371856149506955565563070480423121956925236569831463994111962918270036010260511360864415270604319332872910010502560846995718362288254251498782513874546722868538668598796717493568694637578684693238946812295606389316446154213021152375745533351073729088792534011103225421335822200177627576940313574922173698935845941934123240816086653189555813300656136881970739791890116376134123368228078515435682947486823478013570106329804345402105487348989992855673403743828966194889159281227854677993116081458949832250888420476082629939742730758684352132720430442505920873668424348328241352088143511268454321264040236849314669105062839063330560869858057511404361993353709658244828228854580548267936445682805450710274913048659846528653026011208016184159639091487027415589207033001672669580387892847719076395264908500063945397498503115608201180713622461827688062222739336337133136978882103037929106158716792789449308609120010341094717456929705765320880816140301499296507142279614626701895989339258469607530974958846694498973438982265956615614973122051045225809192846408123600843470177957369377907161483052349926381996281070402253901143980463988761834414868822093255789930763380919903964039752091174696193680676077120205791642279515477796216098101316483483037752719042458280465055520821218850851987441538876503682715545677829290318439057176877623012567027422599595134704322915810379782708115489933082015196071898275137020502196806445099178333878164658431459453893912593097187950410787229540515038147980236037483825625591388500921919959193361203484969918494387452356360347313610156941037249286739151617042565216843418393417196633829578111867986472026843698292203015407429368923911666271989857465960130462885228382030109350670204584256122047622964103812164660119415868002199767977291838051623417409276208659136243226822025464037873690350561203582452372878572352479393640953004347973884708977700337239894606033162563780563823232138181686366982845918334508708179881781570782092308266421515929912698319556427447149335625493426841110842961419397502907600879468733762923195360153888243851266647906945575030698469636131343944320733306850698218013071535040696355514630327033451821168197197929012940538583409974490937323853232883851014592853032537963918711542239957457920428210879321425538337493787114147110343082264029415192390962045794954225834610544611784176702469786254105720182552681919034070006837307767493817592081728492495778912331361794590313234816640275804697276120749157128601975175339813160636614580163758683373110625319995665398032969989445135753320435816183955312873648372216666391409570540839187533868060474031807667015271289456550483046675755559405959523185029224860574793316446820196851843735670953159804967385976289961529077739775939823377322669915522869010992646028488752180184727490246898349091372091665660448882683045616875979852447132811707601130960962977316236173306331934003751725955636792796987586932781638514335261706905479778670869252338561225636889958296521452219771649324562954149155458372638962776580429734600349780813348475110020950021328900733988773030798624168360004534120624768429239168022851026506297019891319399371496043864721514614154663366235553069944165047948273865874689659619329519524608028743716637014415626657512673166988417493897535619189431837488049609417729503227241148544199107357629968266117946812766277264156680061003926884677880451764541416196399470478872850769310205011612119517570123123479468106127306574924710676907560071701498687367010290191848763763964517228015584464428839216477292371329134168364075142638708621902706919838283461997064210280618331976938505335322523582526303428482814853397104982167236020472943873931306546524234013419146500237701989808127909809179854639369372595213335662135695744920914513006268189674076001981076924709645838484464906991436475928795567208095990923232572637586549470547339819970548940269650116113203886742729285053562399898486554479176419159119616855300064278826377280018831745975958622743464960382469641442542634332801971813808516216012523640680793774796204295500931249647383386923959402742949997792897991301137475678468698254300695509355327284594461590805913581431434254115993081256636978254337555139353980917935975366062405745870337111795783965095219666900415908622594611813241960885393376675892183097984547353227974523238745757603450289893828090859504877336283613016258934152571334694897876877261470886783968703746371729447848917345150779346770070978319108640077702569997206802254981007011758971651752423552461161092707449489111417324399896784224834227472192124677566400481418363594025537886929216223583296808858159518858293980588622382914463567673880616853783183841920448303622529438373385878184042347409390140018432938181428239076622569708163055370336303404436927491367956083604311287509888437254491948195206225402617350729553445405911233935961038442481470290074631651666242554153915366678645977467139500294376355455082086913685532862598409822683530596960291173975844880438121580219950390695508266449172740240340554937029944227760131098970731477035556704255501670999899584203654689224068976104479087526043981358124950665836339930062055115540270814722068842189340956105583852644247959385380101240953456269744949861480015422459852745624500735649786815868364199616859308464887595813950778921866480665783168067266957468041366803594492359720392288194182396515319026948152826453557314375640922486255494332306388190209107009862492247627280627735488587001997635516631891887234650079659085715546872362466353488771580023770261638571498098697206601069515912663869775141339666031800837473388358237493603648930960847235730756286983541502756239041859905472054998303335254441035196326239029119897840795526633284996152701358184234618980793739508047342027909943895596639009213379791605866875619191119814226724637608197952678334062832948302212274556797507150042512655608174379309749652646769489849133232045965422327021568435521288867428828901765410343036051596297469561644022031937584098200032776509426700442721780525727944296233758074826444163638012306017806535627386385588471783452478414049709797952794070010915124747836139118180193327239450965533167534344296942350108435913077258332523625999986239095749354693809691167062567074727212471911172170277505815277381866240444550938345719078995544381904689113838245690674719656022949690055890668659940364878068278910985999863742449354802002260712528479492173254604499755153561732772902320125095162868819063513857014579227567875753906892192573674380531444948444860973516303632360327617945740816181454033413042185989239477582314813861353522195196934332473075767230827483465884520688395357909784505108422223243515771155775403585523792834340667704455524140152778589449532617799524814328966207259180930672502364195814019963720707066445706054810599899022801812376097304650593094701155764025943171165812288862562871188675930481103132488824667784272957411831200596358638712032010834103635504733971855011067288681626096799399897685153395972293695878160784058485495016249072811327152570888645379355586176645332938040418960075648766892546937094357138368991250527381806591456680324536463961383456951900164138211859330283436671779762619063891886936600745261201758696710331256975289543378409166477650169308789202456585242276004542418740959600120435890358073444362233799411672681722895073281503633554165506278767098490612287773581939534202611789673706989423551779298482151614731018199019486398198641485470072018107271297303664526117266487419324049791339989474198798419874984687625869998397071834643422930829088220333392385525295298566875309468238719037608220775699722639825933714989666852387685692056520000283949623284003215027145499007551164152018172712224619582437298051959155503185734513196899680897836144100534261448095078654356775387122616802064168792176141478012724428842200646799413481905392726387575194326384184397306264866537432602479755544784487785042814932373264553066331392266340260628439649935473093485384165134693330846549925337757679366763272732041035026900686834794288190632456524826188478470626200130267985083135740541021215145750946977548893220478945471603870318789484072256608640655371748598864653899432678181397295027488527128892227837743842403013287108178052008220717902573950929578563019707466161678181243053720901433359058597626683898558485718447542677866982276707126891774818514784685025274868175893435673560180471587471157439548656254584251255637020341600502299895718458168334330515314279251516782873477161023454712540479206949080295632210737023465490219558537919490388407241111199964145583952071388686118730066529381263635244686745546851508913617728032880712872705750820151275793670485880901377814557705485127533931929587152846740510209710984276708727960949652061637062057045392762216057143772174032358996683339765768650890525782223866447836369130966806559684371754022451273234274492531360193399528883496507782791785221304209428899856687578145501427381570656830297244206437696303667012031919742258206746917014165700129366803161428643245603252487920470843133323868347505392684819576559114439659263731073238035881478895948365985915015974326496722270400885907037045393882307352180463162604647349141805310046115754216033984335489717481803086749871436122013441626654814066840321937792009240845714602216142857019996023071500454299329284338309744287838666094793258799186812159848593251597566672898639773492139862517936666669068983315122907470355903554691429447088477777719301481794643221950492569719007331145756157542640201659674001591595573610721239239358506505776239063930138157697466068305359584721028333476658909655056092367125504403958916148997531880083642291546913042500935674077910552764734908471931991928348373603401196149868040788373712747624096853903175877222642117763565045639443879242156167021854129494289233668520441313169731647074982496063838760834175496690808787261024935038699234710695245760103170369647332613075742642271559514960852895405427202097827293238858971592522747792747020165866321736623361827837965052914193724004349867480365467104053106179470295286084873605110142213017120912438889179707958514489625355286338600467490808988277883030149158322070897178287214740543043933783114676949389656657308767354658281168181136585751166817097271426213580210798938703891935228467245541363497139047773478753438152255755154779233313578576854597127286719996640085726778246868937284616147845896549668947451650362154109423365544594963708125452493642174067693277597038022155084841990451015226416516736271847272903647383889502282389633853981059160633489570970363285212926258957743508274683875186014068198228680916375725305294217835495674963308825875289776601874229304035029856692980146403908480671825856213322061702062581018495329980802718189721891930883151545698646987000817701923807827972189841607241189863655649804219323028663674183526464804007073615400202430428615493436636070360488304139871374963362748858106072077998227687078975424893936267837742260552190824775784440439332633260251829726008487375461913188379514695354101470120609372436661312243523451072096893014732665220155902859028696726032559479141845431387902202434656933177215398713377882184187300646312826904780636001513282373493572290357785561061975655976226771720379859217878100809612045926487041656386588833286248162000978086907728232171472500007390135901188792191491297794848488884732487872486721376614692353923408419727039212111876471903871152537835832933112862791240181734174682469861879103360568206665923798252361132218551580011668723663220245121890870177074668574013831530908699529122875738318695640914009153153570020773517484131033847235989591682650215888112007128853133882765203207871322725155384389559687422978359931366721247899437015224194012658403766841837372834702218137765428404733709157711878713668932857381561712849383060057771712016679651340895420030801927140615447615419766786596179986951006758723559207632950302978603773553147150318947343824623768434205575166740551018138988596491936331307851020642772782916824367945601348969157288041045514285598802981510145092363623431470914790371628414439444928261198965991352226650413557118471743228253107910336444638895271766997234477635337710625005745293896735147809381162117089668863792310850770966656913682026658701456636122302289194788620358416021377511700205538183659256586969495420240791726841497175612648079884204423836890771549541455844401081858262282950560212598907239353213665729978308472057482178190001092682563941261302049486640294901290955013766844995220504541665516875268505019770840224574220437960214787776892731246634058335083944095054822647840430261570781440525532052736513276686300288131352843916857008053005033668507785781441708463965009412389895146991360550995402756036371618673733458287338381117978345616288845935861761952015582845568849462328279063691943139197260927843484322471714129419586516787618353290109013747562932099057255126175145973266618059031451019664344246794859107014633515589892982990983842029266775032741653911653241899428589412530069433969221893786268167552867250848304121277611743461957452782927295068913493182295745681420496890119425827154324502907760058451360534839609463117137068646839156949670971601448177738858186215779930436500032509226954296706372722682015724255862828055166723891104363247796910190801605167434577114635668795287711552397380968849687855327262850859783044928349457845892183398231743776050445470087434059731950041747933942673258988353759337371410676954829471742244389710768339659443501858146366092478728871644506122829720301642709237270485290589083315019491787898858204539325033667074279815151830481601337798310457452519481644259376489452565179929574009958975278520123604929172500210323566995913620572466707958891308896470447323087003402787371332720053998727524288949484593154861546804687281294299828501219683351447751896109665292052870281045159109963178303872200835601919721357592447224572699862826062213195044346277566317668400147172580784988239014451712901903861347273566245298181883064009497829636031455879316260705948042871922835318799559688232875605648151877474266809736413700284789524017047041556032518543799348204947765045428298966380599306870680206145976666762972103784406507547920734387058321041132218733281032123580099269469692887602649835122661495242157658695447146989985694141365027929329387468825982614143713310460315982952121385227462406874435299624493852988179349698936504607453795276691127520408142176144753166632223576395258438938890268243496260476515684958523209665665847324496300476747347044580824684820441946046767748346325919659868504297778881260903391479832531083206758659671024510415677360269693348147680404863074964306019081027538845261362425426045294069679900908483954066528889864291693467614769828158466791768813949922360490789434035637918832534135219330512625727928789450035430750977481621503990069750025223295409700864613690340650884100252181543803909191427745648927806051966074652500629065864991986614678605828206211548261427504364606370808392465887572822060343633484293989091295844418646972011885387801738685801838458354337286132199182647605173431197487072056982576702464533739235778031132734203659090851972449606548705902143239995130602874248516816662114080080773765689289979823176367870798972704493535468003413385873551951927267090130358379012642985704838915802706306029820776563379826153227816585415559272339136348434911621852057419835155893357122303298763517202734754855981512175409333102017790142980146330222244143791494285495415753128420403201742019338079782340247217024289184818305319556205331993275959582264267178031097763258386710507469787539193950219869795656342320777991330885683137249666253756412356449962943317275191246207479754733014434518952648800066095033870320155381938663826106630109546324832197774226854816966028456312903890210410076767865539292898543224515438953971006768176327994082444088101252484298508180985927980461334647458601621421449352120033467319909730016873414978753402411240698699180987829312431008383635189724511717237783006472812810466052509449791106226380164787688616834066139443501325010685621566214099519719150994124003102506573253494996650083269497905869060065423155974228559733024598553044564030764816797039692468655614129189476114804226512726297720020959512463241212166559212112934634774529378430027797081525881469848299397058507147481419880421718360385688404844103403432124396902006830279336819688428144197468739032253399473806415108283183474147704945558270387499120881333516942113388073468187855182943773717377232314582966426928318469730264809469191343443313411151657705962990138828947825814036754442395380655427270721509084908722364494149991558045780218367954417062205321471325258887661934348186796049212622236465165326896285157307138933990372209085527425639613765918335406797804256463675664795009680028398116029433256527278967250930047931178713451369568956250149646548005919206398074017179288211170211356415812456046422612859172605923425143463244129301762754754028882313178027038532633825381462003775604383904244829355160511581125567856661802632358487160597662672119983835808075496416176121105790851513198703021537443476776959704406139406837674026936598845039042700077458257841257509218123363809025848343942007061584811834588708071659682932183189836367870821269850682619235102747465334596931597951263244994597501531531328382562968855454909999020757366427182413225678787447525870867196562814867170214941879556674685137920825698152119236522753329037464351759720966887844293616975164649223418112093863315243312762174310286695763948679210668005772431507144974889294710850864130869474233831046853427552329459002990258477727891832170344016060324868126462928736100728097120835383763696759651957011469880698182585674493619129199985219936007339031768510898693714111882709027192515648452513321039880146945282241384239384810684011128373358592656969442110332558071039784877770857625374498244383053401232160624283920163081765678606225425054463909807559854144824478591568863368691900279130011101844239839970454010214412961592438852485601999010965332534623777468734543868104155498982093543400307998687576383337313916087479193707041090276481087223352463088833022748487657096484209374365528164854552960313143516708206403218988456440353505877128861968905967879712429302671895265264056876734772103340635096539826570374767383146473722695075796367272107252270524974897891972647059159352751773145646572541840379843391608890049980226801429743913654612335571251551072310004583950394629991571133591949075267444341085362135015955546232264726099857693495653395285997263241620075793038029419189983800216298415096501783930340288219219558475087730820891421438927190374433537583530587437139943914159903933125373226976183413264525239370848815217196366989638450307551053298910197716417192979628895730451546228965394750614019939298089269498858818927678173204517995500699421335560276214492685941911062857850418137310640436594144830215002326426428182204197820111953516246505302808424528265624145258498187544765131295087405942425760715667273720709363226555944853175847801543477288409176177576855867329680013985808493426620322197430878704714624981647884792304134645617423320413338519508009057971458853687128938753650696013289797315155507046076921207923903050737285836164638395368313842815059839711513336844408783111999757670898972799835463180841054484974427305191009344748023921627982179538913120815000941694440510372359478567248448487084983331932562361172405149122754309846521971813183586544875677169320077515119300381089872577035315906298745878107834218023853916855207065431760335112214245746921824000113830553573556466578475323390320266188911137948168497629962400177708151614123389491097319973293157019383200666452509913856773569662765414818993955872015022320962687994732934476581521374613990572266035721926499639332712583617982998711257048421194520787079512536859667543612113441121210576855781107812467551335665108311063911608275313620366501543014029255492078926598735657390163776791197260136483148655964997256460105785277410636401602052268908763342435900039976059763184940868353631546206887788584102855928892539236754603484414446541206951458866292416408681499124849618140338025772739488880172355448069953787913721971249477252014765590501838728082471612425251033632802126974291774046346833792557115452507496790347110226827632237020456796677680198571074427297950101212229639582019227127723769201894179744406240310851056040436459317873997017934247399600392549922310424173193297997945629176706934066250218426959497578936339841610210477054541972095381756517753408596834452661126426136196745098977657024789636750666159172088604771251410810598958632275882030543641829463009930478626412413970292078617696728579070091388968144633467627175973578734024671442032846304745493022414213922117647793370875802993082120633359957220507348694847602506418224664292857235887663906072682583932692159017225704114275243834135323848956159236403893748442480050886430608056304378820522334206387177879211925582442011571432335172056243906126572883012154914188384417221968099665712865737467331866484116902516535648982507525486501454470343482124558464971191338194057503299441192589525532662262738469769052022810994400972908393631549220223708888302707044808245748870017218443518779093648318247844385366952103401629337944846994785911376177786678790706384231032400516210052674158038336321760377647155090808571523617406770451842188728339878122022418158286630897513820222802675438089747932805142132292248687432097577394300103939931623850711838522564452437798402625705318098229033802303874561874273771861530007355693654180058058474968663022340911771083429560738783030003080515324604280242447988244837557849521390065635155749924836507330764959744054831812277362341107396123390711054261468385047805502887340724733700507604556074572278464301492352387122074669186253426566930626114805806203953102649311292028555656341803070648813725040787918384428317458696331390724523822349021397140265616545380510371307372892342982268096111334552553230063797394804117211720572516835207076314029875098525746716573424374061807650089867460491394077669109395308616085572806279707469089457733692288185342805236814984182148253917619732296641565101179311028217118784174397643236717040826839136346439831142675822354194561120430807597936136332902134886101602135696747578406671758389926702384722611019532896393751143220028062703535292518622229796448906183395791470381448481182562886465476998747213543771985402221752263371817135417901528312368537648187136656096803608940902970300264962320620930002586080307810882598025715935009103832813343761071972333924717259984541723043518864006829160441466703721485297849712128355219351991043008559372113812645407050305435742242034511059139734458304423291884957648150549455767486984821797673382552851441460370709944427640604855861208993002156784286893717407806106006865483428001645508874208944685347678883589128045985796225352975609080656456216073047555680598059060525233404507063589116690651564124579187751364157668354869482920792107796348774449557804428325515672552849203321538955114175807347363412666417781840556938207807991446925622557510203494099578927026791172074420372450341726841110520235072725298953371880530549774275265655063350651440625729317421966730449753637063746055207023736337377556590172375193711571936538577264475239292928238303054577280859745010112073496857373129640036713175158216320015260441376129998574063675947660797269209859034497202773042790916477571348033105360221785001657109420468675130220797278437414855122062832915544172954566324716936203611383736061573905130963979021809850036126120501217646419596400227009268788444513619341390320568911480257604093445658332705943593796360163616035615087857822543207444718092211047804894078906246160621469154126484195858267493129483221477564429550446936169569586260081632482000946302516478914674159029149934461743011148450455599639517063220691787780342012699419541969264642995911186662515471827329794938508856836775586254507520634851346502927224079528616420007310396127228615693920560521643512009936356788541432484731541828134272774089626057732597750034406808677290142417059183288371221444215122897930544048154601885593743616934994466124927662506378583756279392199290689901186441524136990833523868644804999538836336845511033356065787653596223284520115082216702519790257987327847069047030378797278069973653701215164062529775795751960994981649392169913763801884629077005652610387045653568892168683334782859294120249235061729172475007723545061758856440363770223632901954189705851618832596229060265570048282282237115108759841940902253637059419554733737620777014126243436528746617899737169506339686696084084681936464708888751799948247502318329071642038249858595688259469507771063786733136203672813727385755473085931324617587085160389009869911795777168657851045476510813977713243576599459535222259011955350067595100506315068555842272039600643672762384710962715533415961037739375701658348886177590443333381478129650770436531074146333151016522013328087132409829988515169540147227493757532339349896324066775903353649764900214110786388132559316676775552634487892170784120472894809333655037782628342700846376618076338696799291635870409011605996055177577847234143517155084703298687499483020366753581408646441393678399305912408461593994512262477599886721304788411374188759447753190086661100257413971491223795198693949256502724670939198827649694516978176581193867231546433899625731228981308739337154104762842169341984677193986443333229604655295210349930827364391658387662370237368427150514526007279159527300601747548845392772294931760521541357429011685387036941360654592931456209297216691820463098039538430541801416441038779529605257918016912310140235174910343580053270678496353173531863498827334122567659229866727413184827627694755662183187084647595265594970681178932246274902007579686427962766337532855120490031516346778180934225844307345574746707912404487891401300667558639545467737724879164510522181799896391669787813280724421196295943967153599241473852751844969267501293635620713376517529161555120968572358426362605401018023834733119497490169229661026833275718219616339428149759917507797085882406432771750355525187479428577162285723423027611377053884883934704869850961277970825176406697666438547892820820875983070049454653763522687374206024790822968677710696295096210101340932500574703244395336832530276873853645284971892444810432037405046515600444354211981288024842182155264467663218188765465428168292811243416979992927974821814775943686015200103275170682187989105469674517991144730269307053234000670973449912694785910291731394917815668804733311758019070354165755324861388976594337417311916476760204908269896747632872772232885624619504995460399975087083759034680141337569193624371150685514272058621811362232104972699258966608974036010580557872563769137582965079229857487129741848877620960532915958298528753033226812213601079262696962594369626942667468818393109557597871520092581795529382132760411107560405704776705345868069289443476455487415372161598688696326245193354227783992379842587398449071087893027211387511625921489292556199367985325041555428708080987009572343413084735995859497446192432846316472604479776446392876899902324799570090488412969044641336074852376116510124487229847571973351810445018010352667345788211056449783608383183448953714024959080805357656019325413816486303454731332920711217427332505908745640526336950077075991501757131991371116392695686174709913809113085057248999730407752854654547045686625647528617198268169717966252755534117300353168319433225795981772277620834365123434422166135627106766191364062161744534919923193751266316092350193252749634472984948130906163432669500722802558486824625861011125719372814791198955334249029878512116215274548295766611155386052641861429618045712580893467093975693624465270409833506303139527059586462061941144782246569883398436055532335140679438472481618568884529568110524764274368464127317921103285735692374156572911780666770965390935780758967889350885577503569135748978548044421939623335977509486157355836909884239361937754169433068531470952077357038988522635479904701586141315074392336854124708952448356443282526002398747832539870558761843288312277559227941638331142303605715952026444732730377635048788659719581506877666624348951031258173309162240343415669501368844301844156283952997063341291465479317224636549780127669914703635156293659045526920092272180714125268516732783321488711068628928729140498607503781717427865634213655273849707651820569836958576313883166268221487014352732023678331861766131732553321326774968280998071547470745696296231754962634171546445300210371828236989302160859101717622974845548837910530393013417115872429833300636591263223899980706033752505151488600495639744117957754534941229267675432006282148961231895096821329375037792363513899956191156722476086716699895574274995589920490727150373496790861742749918006009169579543541719816971176676365505830720779648658734910999765798656233501299885571548427944372973279594142901008837272724247620290040339012430015081824647016534728683201732315190683375328036616507253343760712983011548133859740522904946076062295790286254406697899227721916276275273747317302499741958845093067327050465585310310112544013787824283826929540989719589130042950463448269887020366290319729542113294040745498583475803828263632515402554609147168085506222899178980350790613790846278908194175438524156443217110690277483778897196482093264034952121040232430589334459858064070593774009786496720366432131666671492574296017598259708195234187077648344224637690377661512268637777269695662354854535865145954799138774049288218135785684748329287899238532485325494145180264969256242760130871530416451967029253386842126751299373923943502718622315501414708638396744323845590803430087832745939602617096557550469968339861961942340652592087570165409006353680709546516135175280447214102860283202303345236204364621862411443187734301735565584181124406302544361439222693318661752731724550100522788761701914044685750323001049674401548439803701438034023444465560896979933802235468828488437784460853532670065388088658054153957981069244374157173278020935803704736828191044839811320916972880796973534309281365932942352557968423793391244894794362604259858357564029760902154260675256892463474704998042715067593224037365272883202675760151459382162297122083919685568253316447563603681108718838338018451720043235643856872248580347246948415706628391320165984753945563064075119698356946288960198386858335211639062513915816277009492780133989706162386048046948658816661875236218817540579538043020780542663078627964998335780747922012584821746192958684267033125235162991141731677922993616829257109282846897487644915821443505724086928648202378174207737867034071480160354147119576008947204954309752369027333948249197655081747686947789001617802706948151437984864008365504387845875194473698353777641193300205908972653353221073737808069049905418354236203012236352102278080152980537996715988787837580681659251303087480092653660965042893832923711483969174294144712437170999966389659868895306068095135421047479628042570055124518528942214132097961972819699587556108781670805909476538533929350731809470770270513171973614534237713470577473530387694085713159731627313966719931075268205128826837080672694564629695733607168092630498776919152891148123239988250795363628373203172481575972273212130668925815966536466602832873133123162423683064670052681448604559250136403345325532965714995609075684539647427177975249557807444545964843660874619217118976170982525311479191404773753721429274288969960617359019918511016716173214755510015033031848244928170173005628091305672554245306508841714424748423071641868728517987670766366127761021305191062601481658844086282165635380960377104742221411438737898842716308912100411533146205963254149028276605375035244627698323871769465782797480460369599018798997107097899764379145472434712916385794233143292825468784346041249922227781588420939617569980448170586699542432706390769844613851907802339866576253112540400585931551393729414564748226130322987147531259219261070778853391236727383530446337463930432182800442609083326971691085697649120898256075300015327671773110947697596105524160404897975731875946302850579204281858267802136210689765580572551949102938057832898508969741450420669967412684635462405285195927270387420426176263976602113562056380493714990298298574489264262074088559568380373128164402873837637586477443752399362719377183237314786373244033155062940525936126733877416675582256697608222637488204558600920530157674084512226184432882174302604001660556760649143525800215622435988225216647937254088164247680378655155031892525359923557946538040351052759092297557886157741474705429324677410085107438848884330390671037388193526346107639774993046769132153080717565247352418209061003382131767284201023534526884753716494426173648518159362347419365438402204466568775002382896646739439569914134686006616299478102878297858571933440275025171792853080530921048510399695007936820927890920592213569750806133959864034393293889108815071611335398821897725967862584737892664687940527833394327348264237048512564322353757012783584164904163103800653876010052405112523116887867231380783214885282240912114004595307402575968212715621040549495217200341424371521069133848237087747470619014888539092309650316181405631714121487764511617980584067195053773522555838530857996714164094883748216909152841334176347745969670036853902656379496355310630969298250390225847750215652016081260589821546506112323037222792345722623985054953791849269034027631004079948767122549110681978521949794382961385218649272092457560926830985126825224944547765968632515860618754131159151392412242191789453558287439736772196733856542582382103876096344173102082359274775724408179699966565088069148692892241009113347146268552235753838808154861070199877859628485209966201884026113168267052138964988979746192182952505791215169610995000247410084738810300293261732182527556854417752047550175988996753627908097176920108035292052489461532498480535238231817271259422767642514790511389951610055767312622197267190316174942669203205743598137355642000749912875211455647718868651613315216841284844638481547952364047803817816283642097108814035226594599482028600546820418180718995745723145571598256139295014530905191522458345637791916856614900641474478714066838467910680591441990387708819139571869064846824235926761915614143497023791058409454260308800237803255400622204342826278956379215311314670581351585066937504459421805615182517589517274131365654621331483299243039724504010672092907522427965677180884083023484532547956735479025021023328930034259915624464794854467237807144018664119270851727553574855653356272108361279177328845291390924720684754201714153009081986048144825980077976419448031627501249859963809982820562360438268393108739559878440213509588744305198747779069669789550182542276325086274980458235996734672003278319492551416536171260753829623974426429778915134500367200793050244736150546872522678188012499331144809817219949645653266021607966128247286519099130074232171230504321529588027210190764171079038213602741276041854867259043745741496848443803871725305684374891187979460902621950232951353559939955566495409110687679087911058522282217603970603316117604989215872623856624507696039496015896970180118612819013796628652068708401146120535043312447705877354861943422065300275230664913722596999000414878556998932642705009012408401445718409046033215553950782212707889071337153186646926936461308400037410211899718851767147981283815932215890274958722558948501300167245157066948828074781601339973445471146964731288607475608497786259559560765633812844335142490058438509886262624249300367902866796189966299494695421275986736881967096967532512263521373125276541861423576086666271376350598991750636382273493179611922954022294721188710223560617553631463005944288966449122395459646204115332030565374924607485829954565111611242832450719265056028519900878790845593357385270199260370316917869441013455523899601835541847165899354506563236849667443401167358307537035209907486194014560253626764927245245281512184824935197120054902504703530679714532695015637136896058878971440065444873557952204766645402898166830481938929922512677554003488595379782349874324034256083061457754524444628372242708051709118963274882778472026222806720068469662675228248062593820516803851478920263253340673904032748197988243727818644072153584643365693963702854559858440348211786479883876997476366631225964666061706561259716242931131889551948151784644485581382555786234766749728500505348257989867606062098130349781158875820280446490163761276993785512091954940908656991953100277907447772456756862254790101137679685062959370190212567064009830286011666709306704880659829658830535736659944150757258960442613488691310217247579457054148062493365531068867377531218466127930493232655491459453595285935054743116763243240170974714606776569143663835137189289111504843933577005245000152904442587100073944668919286133705339570505526030757737055339121132107395032220716252691487721540492578559249374362455238705706320615976999997164228944150822532597254351166816892342724997210301388761686130039481770674510061731711005982527505244652071154077761846866046166660208870715748736744165397873946878138106486796547846365581805641261046443109595238669521511280814502654846483420462156273470084815730687996169611544793725737577130385145303266278693008775622168983254021269652746446057029732831224838005560745403931726631783879994723613687454669732752158180319194662985860451888066850940488711143287270736172140205285496765667283907686342451682840682854650262698496919291254268245772613179665275093877116229319095041941585416493671146857882817536546010932596464049036798365623091627349799918449002495704275197469771907420120671412970496030210575048632957610956509224937141175221810993344249600867077973055531672347124788634882246137006322013132704641980665902258126910701470133597501235933181654216939539210856614430044197679645660922871630923339324863139624868788413032460171392711067223103740172273795435193921600053051268785832338284532221299249635252855743497778372034023865766187843990440638658057965217487475146549395574094485700198443402722369936134416737947563628430320453405098834564720726031719144591656922539258631733854013491087501744547384898492139262720958386543912376024595460204794712888324472397910291715353317902657707570158102796720493152800389173674926420742090596082935973972452920776773707675603431065214590543943112434146943618498842895964498245303887275834102959455261093678494778054901210324348203598179567784960931784087630252615556480486781260223276069542888237557944538578906180539115834214220287819633201460973301423591562557765516229129477914372251905900881934839767280052567584347107068755597360534483509627591854359772107669796759674775222330163390632603840019213727721315856071892025601488258266906457761113451386187485211039024902908178040519921569776634421996940495346338957972396784457091812272779395268266153028484854697472554758431983350433139482493963383885823927742025871368102124341696387288386730539433439180014198979213157429802406714649022394402451605511844745705165865339331266932432976000017348121518102267552345019784853397894575021806679233979241228276085512579351306496577097988609865858973411251654652048286287687814682342590587727274541833514800536701964092595894953139132946313090523047002121776886851119126714227161528176972577651226484132256789791026488234072207412626478880090524209064682208852170359784534064199359217319660246533933245438615881828112665975597974637109972447143787021475376815503572384576049607259964406935185397287447181088334145606639373653082518001368159055918515517546556686803313485558578371306346049696618908430816858435552286725810676367028355794154474054025098006848893942056190116806765943670600248974443933497867377058777001609154023324178349677295511153705083769634773762462116303598721286912569699607643521071533536969426047105424206555053243623860329011432952961675240430422917631964995629568755586231928184283323954968206568923882255181678117201123841271094822043477623510677688703508760109592561305899411018414828718701495612937259283308640877057196737640795877328028056672720950150978228021509124148706650569445103041583243344394670775888422459168741373742366642243378699382148276832849690228105733345128518762936499109081768462325150382198281175457874226036138308408797766265319066046896349746901630793817872199889178317608335933842128808461169916562795641066260975214770437489092691287766158150935509429876969839838812977535481203330447925809529278973623534176827747112304120046567442237903559212429485105842305983091137770279335108719668429405984984822507742397252264534338833473398224615093879549541549104497355047272600410070430810362433859552325329032414749693329127474154822222560808756911944242008963271406927901915461231678980699071599745920570514734405946718980466996529797533363748221564088909446990846517086545982786399197382224263969969347131785544795486919009594916891193409780687889844630152260056928887080172801658913698146761044671076873069910764157115127652081241696544765149150411696055111742769229650041305017118412447160632766292077028402191062703942361108551899939093965535002395989308368739627408724212603407941455003265761069194272115745532417373742636555605709801817207836599902253299059649304824797032735911965920266044136083363396996362158291041016992375627030426509561756539031645933881593850279346720007817418386559572785599754336706481448341196098223058202707233105074402518568198235001869554040921921515378717549451786783500354278967761162995193054433847150566819446485501564423850308324518466093224952072511075531429052164145632669967530636416969056510126156335777277226419727825595829156041100597484278717463034048204977754393066728638661102048843085729186999711805626385476432787545485639049611382514212880258419330894590603277539445404090766727458451813051914058183849179622970814794013050218536008337133807287175459181129016074737650241765695730547325356867211256161981940590448163382868369650353066117417606734378534484152184606755389257435475453413966623983240242372508819720110737322187830030613344547330625316040685821044715382544115598476272839517007805218570381939277654062485317908885514436601046486380069731551458698531739099221617685186224190472198446412442066814542455469537688338814325586429694500146171168043456113075541214256211729693121423429546404715737076399125573011262517132790443311731210681580011815690514576859533601913213769933549982997855928728642476276765098079343099624901084218414393983462837882810475240920429272002253666771886998944586610247608795010620364789270115949713537900422456122812813773621572495342533334640674924779578056013878482035618184789457505675386926217255893651786370775881063989180835322881346547631573174143024535463346700922924642560951422103201834969987839828019539588481374102650959328967139793305074931120821865150131559210606072066491012023830771216575362936759755507327266585638026708669092785002212921441921107688396119120226148913586107925450761545464268089421564624584507341319041278911524590167132746051437790119445912537718328205496354891358193419802950762372081509871518735589216460231107187866372788764389151389938518318686307040408504681638835995915933492841847617699112394248811008687567953327979411949966178152061656635076165222046067778489079046323406084222704297064434480944942579604725054119989515740581323887122784937587399882596426233667872389154763599707809925020015554799747365798489470468476557213503902211709513396932136734756625834823276783155504359100393809299469727390153902914125752285453668570433758550944966266993559231328976955999712078709104036996924374846101895171832927082754644219328459381350667538059406412188533177352964124265248262723083735363131558438282465529288489480878930986872917139447543850069850126859462131932466983496214446061976206883263834897454906891150810040881857939295560305998571210354003800373256141213066150277702188742322675110207899326052483691596652165176461906171873431536962938748335862413817420233234239246022654567440864696505624429857679484858427653055907727040571540073319161389305433047974094993486488863133522469833362984132179333399469528780845976031866212696886260672280041333847667341127223925600240587585858762203126466749627322490682059824378194979752386466088549955099058943965103222870730344059696493184741750886739029033396568053964268444049643311811320279278075853046936438750080375223718884669566654842872202092381605169910685196568182686887100539601226903704217033952812371857681535726622815318903176350760213227443374891704706771945426685724606109381102723399097379893148354451168047369517102149478178007696395291329220249386328465096191668506633171510267151871978017494908148742888736848181466091079425353689182079009997531760930440520071462575811507662031599113618623328153928301695043858870439764378524195986340953553417925815905156882821401453141968857748090969108144908711220318984954095809438020995060721190207018864410133300543042399869670710017431584237906148651333865668443543884712599153399076691121746334077201741603062117045025228282042024656693903194844566057857913972415065467869290224997072807084801789465081022898781440426116294238813087563206874965713509368282358897221614094284420336908415152747393417647392088786417830661485761337950837476997717131975778773166623069954730964551644609623703533818466189841478477840654436093730567305773925853784983478266818295235070586157025823155564107600486305405643071692671058778122948213995104521793650061897882319106550204933888801335223299682231682095531817361845135666849460344740441684929308161749510201645947836587427025294142416376688404556339497336237461409194886816660402923894358953637945175681175815445718892249871202669597951629177622317997273564423902304486817782301028092068886074266541502464800515774222183301564889215884648396368308723042190883757114312117113549601501100352959777307209341327665100040836665534425950453793158541678995581421524457911644195057793451482029993745558005569496278227571193804396329506820000499756722882794551352332238787492413115966139685252575788987922383040790275108303402186304841329493084718762791830653799730285935876731068627454330604879445336393496692618998748092728310536217696967779732750819928965948654586720878205180264172657558391785072129927632381348602343393074824581022405482760523216924506698501930248204062045915755354204317856406237558404253412763578706421917760597392922773433947546399003435966711046688076320424505867583313349460870847724929071265366988030678183663260045921378863099003197873238768556039095325687803785592172514362780144914836053353126449442716255427382838594696444238414634050601454881226555791894926419754951104363026473765742908978353265816562619064665097251157165739230227531669534952159410986412038421742095339003889396415618661786242662738060959785400110270548110390977861583869375280341275738657540257117473208779395484788632194407671958737797470392103409218434368402263262091285917341658698378263773720108595056235764045420108272418101537798982557426875987563291905307009384776845006581780999024794346313147861015066765885105188910199691265280035844809044492000865994103891554465888920557151011819379123209090995496877742478028445763351865067758270460940569693245237383500438462768196562910168147123866784106308421698902227481399250734882159529738466276687899337538677914983838175529145688619586342741646441431861992065627262049189221996211300916161874991775040746179733437011924345851506260936205647568376960551896859345172005701641383530698608354713001943631875791164356539592227222315003533803327318594352411377149441747187992598875173776246119588912621887589146884935671928220481533241439098547178788896469403922975987544779952388082091196930247294492638387093176801945611833384238395625526645490350968911664365630771402275525277761748319189986815413079230303990745554901830096518101579309227908168365155364941361537038660549610096000975581109006252887853363156659180469939068469059606186929433365658610202403642457401990242969259915322295334157736527856342363594810815243371686297894552650410600008729809200826385631162794503225279637391847112930103805841473572860047443480580583033521015026139668958675587680947486861742124715151434621225374646910649346557644792492574017979855225669355456304713746397008340925719069377693427029782120743798202513460075509925164716599623841006506107127672500449869141076249667969758576805095467319185736493399390007708869771789375863230802623151980306087445870746673391225335657887665894470449920839699493661933267638604212610091091377118328254046511334483963815275429868615609959165356246382582747713789291856845335295521188734690512225215264694244337425610171837617815083503492930988288672448947903641360760831799323664877558871864535202654410057048369730938508068695595438886045074352455415084594391444387349051817189252631749032006591600517507400687284452932980915989525269741935491224196525656772148400871150022001868937203649677150395945918198976341983103823366859068208288189792346677188939945593076973237049573501265793125354975309141354753474645792031803778106732336016376636231890651613711096295181980680903490734718698453719963603225623175311069141456241402829922837256492672928817102022516510346030322154668516289879871526704862153320898859648009443574601920420005991226463403791438177893560636211294899455673629147764826340424095160598256027187844065385132841101803059646682110306305790650454806375715568317795204577867354189849086475642492728136994163615930526685830174101175958069844365366357166322788344889899685551934370723610689412191681161942799020046800886367572044193159366287607183564899089856607792100276329058507268302614244537519598837623658467107493317837345017959941224249982205436261309125751630600926490133507575879282415252113278304293171945200634282967842475388903827487293039026707238103466968433923396382367105509995311718360190118745115531764926889239718355813556283710639370812159941445468797554762746894443164703456932097545098432903985961000475321529176798392968568059683967299251344510747425362135191196357182181244087618317380557525349889963909036835702193417506371128261121976404081048727578189801561170729605836895801877504415601451698578004742409773706060831184648192556349920729210938352123460341413036671443850174854180177804280545554738660957251951969955081990302723154184648215853935558663381368077825339508314202393726033191592225968141683478509900408225517027153463367980572601832509309328054754345620280856353851379035824491289655158243254485782543917996784352405440013084607855974228249809298107032529739942859753230748185655763647711537007698869536032057484474136855047894522447432227580857579369544188463032662494420495224256277844524821233734676863357662799629136087422784093371088309190894468422665514648536091173542630331803513979400941930743166116962258913606309995089422555281423073565399598046901323769322316671666497786313903365744066054657886491737002946818475590802845826942682981009675192100707335117394307034216531201705466304094207011668548324881315722307729059412544913866557766208698137100301751757392051265724915934524888786569183732750844853671010187958456730900827054292914737203339244265995008978337905174452823606218552214892110563882343762001447134129373117700179845345342328139297202842056857159047810192944309356574072364694923542982132164880931324650230190678008107426369992458953606856185636447414764313951350594137372408239894804671629623791759189851624935507876854677687278844549479576896891644707398813449433635519348498402461641605442145830761975534324531637391220129753345981373108460927547739566169960342123883272940108120332001386097298372802915612196670256159914079296873334688191699212951339774611945114359271901463429395827986053103980727461145177270260366774509116731029297929172562845424986192246685581781036191109214456498994270291791156650755417584339719316765437839208019117848398749203601463596477305737001501512542683041225386237885548907873149581710947208463093228226375029391535839881813881259428563338062102562292017719696689071950485092336097312920849676314047625701638058534570605553992713493789677546624721312598528664655449225706302920978791611109192821107159458403356546043134630498598205883131320698373519491273731844433384040800963722392120218868573162829192501410943414782840617520350177820392442363293831658224748521726066823609670139418630230044958802348737106185542498914627465872816350316187858686532696804773188479587821515152264431461962868240964698607936714415787254743926082871870496559062919377960841855552923134603614344488681199688891960115898916036282112051765443004573100378104889988977813738309624568249364706307703092269638188992923834184728293550962677152387279683488025292702517335021066980142774797124140111282674055089940867805536557071149160068424186167231998824736089478736953244701688852905116470162140025099230396808852377361857756163467368957840249687830131817408492451230245293383640474127128596112467911020841828604771339832244558876831867651217440150553800584796831544175287811923654929988417223802956691590490384490583314039702900422178346075838233506000018061413299085278413892709719195126027419698488102962560768182258443612875701988434243386652265100438135306543907671115067265944710054933995229403621490342254158212970755538722213351371768367683157521694098250610430269120673778079610249284822410647216480968424033207250792704571570843195621800701691564240133401720177418772158755128024544228987472624241459741595682517463839755664665319962963557661999975658004990786189888243173696550583704439672013487550473074414979903705695023266780251125918103435130260753951916412400851426080010071409156962968211536852686178783987622974824944395351700859652084282212749422640859531852096159738535877122492459529539496805020576997611606940358784785698374659019730011954296907902426961894378742513195715719785889695558814950137734532199475068966274120448721752391865922150184199918970939980572122878657630030832478614299351022022700134046703221305376609301719326234409561935259301495479572748276912667051703174389281720567841759455923609612053187181037096050092539530179971814281926188600298857233672230393067186524409369989331918163978461494587011547325697698943476710190449177278098213158442332348250128911379964782468984748606784786983220776632969672193805722508238414636968597392887938717668785203341648381481418410919325102032156601470174649917106255993514334173555308262416392257800103485251519699184045014988626233319763049749342231191605899964944002574970597056523418248922467373533765761589625978176756239376055224220370546727199896614698507539419918887780439227863307966541689891763066224969980938673416639104942860348236517017371750036115407383319390479910297070677277042509738332589916681953234257704210023683705021086154284731000205862213234393376238042537502528095620092660597233219752549606034066199994705208025296499302963463444405994909183050693371696132669250216424866413343915289624883714926118179965668262206713307337676621963018801915129139446301443383601951348583269869358188786768479558473890175328985380544941252434234637934710874649326972282125664968077398974740298005403452834566745789151921922149108485400072532702604855256384249458810083654379501111253066477461328170856086988544095252606549476341872108079947518353363516583668455501088559019956032460772438139532232242080881546538681995377185038182778804691668381166315087545511407497426479100954992904554609573230086342712814104567876005035795819627543055634438242758701283020962131809066160701326627095221643070762219833684055231599364605576091127425207462412728554898598863199443367224666277994856288042397551082838081360020567175568738585428837148142299052543548203871299864356357513289499760452973970558310019239866703283954574293938504609211482879434067779631507974675580864493877413286082033170021920873054885874142914898524024607036671068034700027347681408557387456907477140729647773681327334191579760207168984227006660206496302190663747420106684800993908793883706728458266504332974214644782698094828980533735697988833611470863802017265666011295299164814751254795007690754671392659960222091253065762370993969331329487532778188414015773856605567873328133207979148908167054563920177724916904939796124686450505628340136208789062041716309452321174825574199744251849286076997960689445536309452507493690969531068884461513910012593554383850645292256792319200196655684329133442161223252335681325565637599927104145395385105203902952961816261704619745724643193909236533993614396950653442936553967820602552076716037194835873553987757402951486972897856705904168198878372720248073443544708733494308497162652849278221994639206802746176642176987780915877228406473225166104199735667147079313160805514853307064478297108637459009103612595038622117126548718371825775610821576884734619735612178878190284437756549726150542308449229954073301921105607465278442036951536352094307294553667859796839335309302528624199235804519397346525232781215257150198198282580782827186221377984364976335719981304003022636683909846852449072206189021298721082440996792020510033749406121491917708164833805392710233247009300111844924173312297188172686974813665257533590955027283408137892690809966428015209932294232962372688837147751103595735976771608569373362237160901770780300777215771107100313748424028538798293895234727397062673335019182962307299855847699128146050783315044589095953719456057926341578301533001765181982857945638196960336122099116126623877552496562142202546357655309901543969983459714032244235288014833116517850396146254528671471099122493889272074759748449229250039945291495276154824105062092704863932400297110453300838834945686508580796668667765409808344449809785701890773788612175789553097446428144611405894226665940804964797468563564536643469411144127317394414090163210747768570793648019124267999489451239652648048739356097343078293278914356120048056574078533797039981512974891953716909877323154279757542975488579698263829964503529969681486421996975623908823349570358007013794480262768873256456828316377726304704247724081634199739628602081436265548606856147762425727924302632485137930240122544191709565277033517560205603047326200431908960817636776903148639913336382618038503606699993585776763760514924141962032743582031304793540825913279263947264668650288632849716403431609048760868270149925450214609047806899984110832698608768109236433537574798151256919902509575746979081147094817761311370400748695455392320122150535223376186570843970966828628955550705722802737150385174793256907248500089237605713329246565260534385310309154123598083026542530879976649430941368232814153523802530286666955466065653476129597330797758476688106168906934956364513918689565671730199498926405055470440828232653980111012250025752032328180025626124894120891192442950329619216055872318051059115107750137644052548742450330317278264211274533195128423822818836488476806017133541828703163415130240746614851594026827885630391377203632561864256480450656186635679961846535087558315769431106686435435753957119235413338158604086965146276624555069172886028262103531789351185183712630444306773719795156584792730131435137486148230016822220130406115697191062547015080467123997704611680240699192210747725477669711138174229517840798716403959363816860043673406311184614116686786685500160985137492532062538612437799187563511418527078905817718368978800861345548124799524743407097171055340801018392162394557007509375831685868263171092709600162609058769530765608024962882151050953253655896486248371397023328369264069473132365968505495418678499551914565393928854368342737272777121291192688279558119295794497496443662599399148802749537089760245890071437699079877114812615872707424972678012304272567297290607578775642543403832063196419811111317737048317765613102184037092729473392779411108148944832730675815881375540254665183147284417083892185419756356153218298922203521494544056722855881323913106557641387023081015399756410641219590597534342963325772592035062170544566709906197115215355037734065201311700905017786437032418374288469842445786899264056827010411922856799065327649044447929512137076638479684347176385291262839798283089438145958483310727659584274691118123454062884662713152564324379019443767284454404910856545741071951920121483590381302044677464758241238859091041823656366165717285111570107590143530930223888830271220285510199143457233678745356691679894845383845218157218292715816779482854739838589036944442799148718968133952539156596358594159825100469423758209541642451344573560188722317942558280281411898995547680792727920183996875437494786895890447155734977800024958493540559564681836600791411366608677950638321658767522816725383090346875363159782139234609120490923533673727439316492166368925813753888170488437201875578436501777027587384468290285341620229450186901039500387126921871159174647756775194000175985290762383243432324220296585996433694995881177969530457206778566967478473253214678846394255711849852359341529697025674630066743643702353036559263139253680666984763890380968246805610159521248827442858156970060388245683932730772363333752765816041773181430437889976966713449783156131830320890319386183981704578271314398716814832117798343979778868666787121266144252690339659896134309248993586741652589336248695824591745477546004859291154527825431234775502315704301884930573121447369455274968674212396652744414951485648718384649631951028928458400162031181025246258049056860513321426890953381312935194810784865535274071377243150858127298595981640398107361787349616239185872803333174961446047223049230767527895665368278432868410112630350904852647566830882050552721359310706213857387781959838792215669305023377239029597182199272601702001401546578758800192351627021429875689507603866595999537691016291289260679705030105990779753363270411820154942275012122839769289019092334452280486005804475778382379524693092579159872683560650985720776373779807839769302684629785944973237786180150096105166654367103251865494620785345070064407588083010349875733447526707024571490716497526182619889353335848421417228804653992118010614315750847962366327882167609743466734123782698619748204859821935703023952869797880970958230637626991966122040806882268240448178068520108208292074689382290555949944373285500066452219747799755110763023515154064871400066278545603966603214649471227553896106429247438309517148938612851373539876710325715523613381502622439914856583042872587084610865595667851591322662317833825910153703798214007469001959903828040624958540655742892793521718332088017160948627888057866650940672343142730722821532376589885910547965236101305777698051658774071711147667782162976994883741470514679584928711484905405191866627551162627120764887771602797653050098111380238906339945496356065117696324906490785091472469103271485877268710533321670836795719022473334552716618379490058259215050967314639083973567819247743768515897467163351184722898171845038558241527141872192441167929781918300895473349579398577725105424924194091059534501037152031714803179238326830027732086196040364189937341070930327962107976564790587294047847748883900800622111742460168741846548707419139155802258956987907027437619577752845426359012605737281002950447004196836696581524256692414647169294587952815340142679100310492502706940656248422285704456982613916920170410458515904979359235040609098322699500131636939385741682235293532537578970783401867831758374104057483944721823659327756025333155943207868626163944549594282046191422466218202572094355724719037704271280499597043373265810516710546747297896560819261971439172950247334590255830032831689824148077073203940641911160750810710506863805282305421535039638685820850717122436096114651312851816265567641597470480377192413187523540240021690052541410942602203123694328003460563692863684296374493457952322979795429860600955146469486394569227727998001749203033162369639152441150755236131607859072836813696271705833012570970332433637543762154569980145678712840267101083382049313437665026036027852938179952709646894894589589589788402877102339928016146747165749799552781351560742399966452940986049930532163260693178544210953858179949593281848482192857774537336264353676170845748296070607299547952635977919448877182938720052691969660438481652546487641892449412420276163022800910373878491388623051901672283599053026350794914586326970843105821849633283074961951795088538993515265171203915668155835808127449638884721561754975298081182860248668309584791805632539426653208715416980308834026876786486838813656247965994791703301089390022958892038722138397870976946349412912349202983335863913505644887655364530204642026362102610383760821764181070808283000549035125385140628614060890048091738559323273359289816641469137153819432280043602554389685289728048821743299101454224266541628598615750363595063822316219308180622471089152767275890564584839800604795059292304859017159727416960510462848468219758167699730481919306405556641265508790356267123783076387921009585871997791757500451441118869111503277938490185566152485128762801431663913279452377292354368392238473405894301212768695355122028543914512868929010772715286498735353973407004682084894624668518294870427896659812936914342040271530086127288060189896241618896822992129979304628212418818792181955195295885236747568283502410560390393423075013970772077550838236935038939452800791672259625634994826627993097669643655904771092914228883794981612395771267429713576659183313323911842008435858693510082024010022085186717896518543615568705955165953585134057107654300593449186315885562912251735994157608161019640759901068172268653536038510922548651254144211573802531673258670441536962247507390384090363668850838439021246767843727291283522886479707321350723114990752771821816025194323483096715449495794729114235509606757855354574805782474665250262483038531860776994012005074513298741543282700170294774227507642007825019405497422286484610769342657483372247870691790050091918315221146335317986815711666993934095367882194952161603533484541761393570975290964698046956685352686773435050301568582875963450227181209893439489039004063814768940434678760271426446398637106920995476704233743270689634252180872073686830108746270902212029665798522254710246490891131921880210759079280549837444168617401623082750638559584534718518895685671233055484048032693187685024722252805651196756709541613291590577759694999822365758125955687364532122126137704917376669260494718042145173211710201370736815343494542524129824217722800616592309446551506020333980424624725354262711409668291364692466082662143134544791583066690215222486387202515997495668752063312418851282980876378350200437908752326199862952237162923470393850141927396874373031060405479159353197298690420443665596103090409373568108915158857856560314529891789893413436320012596472073148127270333621712893024143163579566108199571152956612290054450229365017976305859971615009124691166357088196370532354881396057590167263791467992819384284160749443820457252618276506138343784756785156199370173481138751490893174622093180256408151494759657360858226743314497988226750732219758349323731234869246902745630860825458422699815634690198927840607802554823772238207435980507841075484191045596917703287877458632242328532194875640706236139611615784755703982408549133090969478651240724932551683013089366229031800774458051949622159063344632858284907609878385276440240170971357121071692617862761011923533791797383274809591047081888359597603108850388756038342815949269877425139047675151400805225483839291388246314985931057782997441155994042105378646114109392172351605330974536237734109982106133046515731309697824779441068597049000452168237855653683827707889741054013629548475291185943671926642940831846337857078081469286974937356377396815227092428537512186314361413351497044745686124492704643733139136146430772255857583413651595024423520944942338592079920437877368695080373189324152342876342508676036991537501632117790435204505321294685889058768463693122280824961829581931845294608610569345955433065979985136734904883253576970196286430115343654925156852487240615340253321321680218673005887913626820937381191451817938462906403675027316997211915891437832134535681536615146723870769131163786720574324323528046909703480475250258528275332836246325678074997656301628188196008358368370938430319955306302587131515849634287841248538663980167010800853660663741751135060067563602639380101597242284936266241388205599747916611515761181371469158429309273433346550387201249475689778878043442448304576375244660722167533039716126494725918092088124350725658429820555871046534000586902081626579943220322047050658364825150132223862209377983472187801793482272347707934451767028639456109172961515469074077770826702773873445148885925038177741841673189346190211217852900874419863152075230354301207427645032243754154431506534292956370999685956868620028021878692508294769545234301038698220933400040605143310180673915958600393575475582950721131467579319976072635312386118758817553147484992793589023172311979190296912919666727076162028435490535348903898984804009440368093475175786516428929375583272737491013358414487418064975961914591072750711608723385009350817613199375483027080863500374789381664948809094607261793237790879793304098800490871089490932242023326528413175021279008647125955212222114865992180229612612599554577901870396256067131920369221236753628510412794480026918544414855530185389642833018494751619921720421712623574139411175052774596720175067583795793162453520361993292502348423129210824476211883145935318243498489656005583182894499668045373428226892174356862649526277842650318761591512356066232724046465981487840216057378221344610132635791926620799125598602336131420162429803471286620007733681915415727940788765261407636835898378608070261798176755701335857415266101763612175160303244956483007134857354800514326532117070057728447187948208795905671891686191149928750033640128484473859904395826768367498422218829960769254072169400718869107503109774988739541980370129290034062093623486486006598524177815547717516275165023885923076153828579827729722558876484216332522865924339881391917147776220591969707639301864948142674930993235989441140352267028136988769237469062325216986651108410283971013855594643836606048479715536632608680607341522669259968879291967391377425412896308357326001856030313293715501296816955616913311193916226433471588856798278844320580325308726715001090134129295003236991513629375767361084100680104687032872503673857829243065340766205859352765856291084739506987853689862878941512502708195590330558560861576722506073048601990987513581233706295578997294731655102265287188138301459291653810512959685997788982036997281406746083214639546979360371884819379904325672923026132465317962782492418458948207656360960355504765870936252665830533650935367100324834955747403129614400460714851127632599250371514050502227932713140458810869482984027837186579244585910508778597248597231072554363528396504768774747363673565478258640254155532146080368317153706565081678206079541987483189676983108638939338110218729969152702675332023944525032560006024618715747969258515735278439838543792166454493156744715331801469176178887428688801188336418748692382838910897840145756828855762377625149377508256354521101125949469199738599664502567827119500752992886888463790218769338679716341560131809802388718935262265374300001806581326042756961727705031435138169234923241567565357782595632247721097784087145078828981872563078318388326078531579742755155974442447640640005185631042283781090600615396954621325096712982911623914120041826464271764613327985709522482597793265387782983644087113822956231284084289959933342102691789980828183249153681514798521783370052371151618544833963625436635638288181993514620229007674863653584688224349476342299272259246000273169359505250487597937519186274711889085335502751632128088061692753600778517298949683105317875857374252525561810985110596261181847717199474906017208594107047468692934243986043645575862420540462318145679761429217852774977964834858832855363123204251912766734577809196077600716237049781688576387229856959673948444989276401089803734495250994888060842442295355628657259857446314370581780382305432107544541916997614311021702307576234236384634595864261808228783455868919298521882221057911774749860561829586626894663529906480068811973955388769895762665759111017296281181252965051142986587183127132325063380287314322928888837347301881075754157496753271827059680240724736277084853537427834788217676703779567565780687055277755252181809204887190392440311257301382685249398199285795459717455808942361144878989462809891310480805588167086623003244396826213279800614182731352538079788422661399283499863819426185383746740775588081505556736161405315428372769239652207243724142364560536046477483345445035041433445219805222177936360621150645147837305390744536873812355906736531660521509947761713055193780744375890690937039900223811066376874293580170335409910873459703559947517714582487282900781607164627762090571339937700342717677765177947882343714632314172872856238926096742739887864705075419218679087114115834506179604417699213102315361207646118073820472652962445440128195788611327839805058658249492133880187150265338136464185092074529055030050072984922733722543706970707337711932295649618057710220687230545426478262664189596805126332319337860885889812131379151641871602878731234591674605950329897810428815397845821139470540411191021783004831518242516642469932599666393929694365347058698656655943583691479969497715976434606426271924783805646496775297111844169221120536072795634764143004649836894247942927631252641761333194140476835984402412864314527952481607675136248554592836345802661658757149520978523265032454273004064746315129225927087799573174607339948854917313819796655389036080898426649422977543026502851150253307027596175458933375998437343038085602157535031016976496504830869096319647376322478682350118567458886889760640455593100596416410299857641938455590587187166114992071780450246885953197637648734481734437165565738782731875857185125678249116921758276012784067448190324811214147446875823502877185169050330285054096848112779650565011549438237626961600973772183068390226968057967723734169679195595785416986132164461960242343147033288054714806639462535993754309879669579960577661954197195932870834307714994297896707080578200090028629653486022866485085359130898282107431264018020680656102573408726999586032792291274505054970123728019183867874494734118031147023144891564902986663915216352273621179393843358133270477593085425080844473256673803571723553984880513952880835953539315761588283260307713733568548802662409225004285786991770577182360704151513828093684000181017814756196128997473159039832882036510993890973383634268425901949602294605721961106196460247329891204529707475963140524868586022346684596413423657612102353241665397447833399600567264483429144099661603300122900755432629378185267251133989589902945140557720577692344879782791411343863013886304749682062165335430367897720098994838706964987579696789889837589166135042769266263774455672385203440828670771083617156882668440584805535673004115827128134039109960185440837519866784515836245583801931378936340030484322357338618848735545953473909781767544383289825907797619866912077287921038861942455602608770949018273376395673696129063203684834236678934983032952360835193801667808482587586389946119137363898982724277832270506833654409052027684032168068055518575279469287220136568545117495602669119127424345238942269035260132619363117864041206600062462045455874542260868652315770493167309355462203461765401803592332757573091361701139670946197033590452700006118734833390247206083642419047680961497229444055684681339161964727013101640838085304723086376945443591365441291622911688696679836328047471305127748373120753089221921514040191093119597226120064341893933530937188305847424241302816663000985311328039226957470320895199896497009516421132380533819564555614871879238737680007073248930524021567748067691758024205845223514971018289730957906074238017150022531413079290695941334341566612128648489676262409471200193206253155723070634572922411296762688435448852913879973658713761638309983002095119604334714237565131693384745444611417348646013927723737432932099740951851729549363710862661509007806984312374961990623517479471807183750627651017884797886455151231973080171113921035475014661587557388641656254556256041794587539635823572949695520238381955508938524914451089264241022606695762421964788840695248165340250086360704614537922420773978930173919547209536276382342658549070162046647446000276434130801286202262526838657811686513023651777113890774027982818805068390664191594831747883998125017661086427728957600075660380791835516772360843475308205428357715629240769939634793615236008025832684851111752553129818756287042295622539158238099662980793885959976659808973593872587401942247566752608446575041637029478809789978284633047930187838551684185957904701427749834323922709057059136560729468337200865439361865616377795708896487913393544648528991698923403875630922233246874292174053832763071170748541187305411608769448782895438674633040435038159216407045089362219536212085978795833829622605742323639790332977032270589124169383711641106160743215060862913519592913416885947525481075830552605959503094193432280574754044792732905700547924175009815830134855949854946783221426657893158369101980017635578106402169831538484639894555665805026948128777455016787016295830022639411057981105005698823616448989484447207273019381110384018013814099168244001887411522891958665934996673167751651060547098842984046819768194965353342407313757273138393420785313331743129185340275350204599394591622681688998138002553685351408848749854373113517359271409400123378470780171889426885792029380660518489523573849260297351353378269503778376415660236778157472736448861463147271075734720074308129453697386740718631364271896156773525483595823433667303119658101235350403792210794074875522079554424554063486014585748652445317131265236721401468477812005254106001274831021501020285022401372890400056430367358795407212105778426496329710414009960057637252425441679800785778967370436173172609222448143750606933404583352155013378558512254035717527885398093421665438673137291033687183263690282115649727237020880556755070256389841718213445972760709720266611880158681114466948477954389486455164375569329258978879770623937856946936530094833923334164905284198811635127487326065581523372914577014747728468926484640095554100036563351637873689518129960405644989225056557661083778749982611071298356869223035112601540894596266526166716811465109152150900597223224930450364501499649816390324842601355616887010983665567514006905639536226720654432015819592334024468314308275986256547596572779773941185659009894475532008772152153255856871817357841601174862974098181518731017826460967032626413953402936148118405049802437007539864199559519707662131911320831853273200699876973031898104679433735449855666252776891433181485107510735967606234047247193673288021347161283164587214651589344158796617690878186783496881242320792176123088768060794573271449053505013971339747208650020037824562790925955070733929119258418552235810460241512680164453293864248194450652996420611235652252945176549871006819241778547519918032793346323351834816018629655082037284825551761727317525032887061376998852255200858904297376761381454700382943632853325077837016903999280186316658162602811142597162961156078862349172521485323420859056350645456294716723525562942623855878692753593508922202789861722952386314993563840755858015099730012223231863577436865791740463741014099452256034712383758621235224291427254824819457286141542237678412483062302365800987889410717866517077848580251229392157675660523007024787663571094436325139187864494626621925247552676804919537549912644703042397951094641470611598361483316247335202960666504945820642792396458685884026194354969283245155942391966606320682312913110332168924849970350636383372243666621113810030191570283964627513741070675252790505933095653229752434934173323543556657314423254461976478024720784533222089103939431960240829701909059995849591698907398933329021638414192943592156154267750362289414995095903957090895962939228121436323950103286908476763103785108105382014075971133405964019693886912154218787568689284626331270199233607248935809304358753712211382267988350001360144469807857821673427632294325967634648472568045265992098758767467956761351833888537704699324655612267313417192360590443060275735206787774604530495330342686353979626388162924183457774940761477913841194104495445871950855598684402436550526421397204266377005749589100858379365087983435891066950461356072322321265473060231413052798631890298554245056448383042724044677397269708195772746818517876553959355028061492905551679048220418435822914545717330233719226458672461527193818048978521416421867335586171879832904225475879906366867452683363048784173953502063780842386113352505735986309303111001044777972078611606053836848769485222976392141290123276147740205205439325715397554434412065322920271063707970401449684469152596853451934001931876066472783049317096344277453806547442662916105277092732292612794375961418648382899639842349141553777429390837204349695239596266733857471203864470984209509545397261041026717103147632023792589048357407998964435252602397110223069444342102354870952058916787674317562090328843614596475272916560196623961070647403523084528024641090928469807784487173079498678162280757348968400967766881128644486449541532212092192666099920709459485081214772535233755760057069394202261124818357420539885003321638680391064968333999309956526520315119351332277670591658250161550637448941819194667594004873306613261253279439159016672351280697167990850705941866091330042170568708316623386267926818014163013768929037568127032916858223243605732439391580673348537581342948657328648638193656268859467989880944523036467620984864628677849082616817215608682117344393236436109525040228497960287942679451332456191573471835269306109118052387004733469264013887296054950831976588245370512792153901078936223264672892596469101445210477091657185527661610373056226769272556962720616473132755613925243620646054147503064532102805504434665732856314414956209007212781585675408516442170121408469590316749754989877629228682306280377337485449327028005785048736596696059017443882857851607303721534310606009642658220774937721769783208144157653999538886368220340055599225247373257342091803927408015544169179073483497275946667845685539730520883891630002145323198365528163594063692702463397797092856160799353464952249512428533557860866199055208545525256949885061407399255077142234685038845263860180262309561148103951738963701345324967795649336576201347754983575839463967017380233262996707310955160091831690530036261452562893672959715820311493621574922762653192891143767658171871268633900962945601755926770270161890022798482561234428919475183456906695567160599566264623225659199266178435155504441120613597787118228944289963732732684871946403494004747295871015834997424198918371079053880328909948287488660947755542046570474506743069594166262658712780309382449178193778031761189071789721420827733343254689535457280562164524480320040106379873007039603351333422180038170589339659937234893750714310152165497138758865636482971864538474440925300379499696900588210171459218103199926202376288309333312628941108180931139533291440548309203966562569638889322071890144717610450093935192685150162050178177642681929967345094110241844635919676256652536545422299745880341291111184356881038364702353652509185962237546136933998610396016715126726347765679357338792198341990873545275317791432573430222419373741420890863210640542987066473571092713704956010335667404364896483263432139782019013239225082431350011020318559200208471704979926533454486400436527369682789863325488856920845766628763389949002661506487622793607482814370820243175811341564306673865014240200735739616087097663226465524904121297544080427946398647063989546298785575089229895960029903972081587188587926602978075774226744036571537032587848109783962165846439819795441252160479215136986419740411307414931591335595550755161284247523650017777545922043503106883556441651592143249989576091596665429914212763027145402383278853749591603827990996037558258395240499011668279846740090371478183754879199847435447951842796936170172630542395012156899735538975716828866052157152749691999759067521288837142878548251958932910072238725565617545557043458782738577205153333404850051386239241366112048325764055947583840541483281995735023301024233872128393635638706358528821066643487108893114347036206707583386079406242242620088063451824876040157118534566881837091335979401667548949030697566387275084974189841275944108735797113497820608121033289935821858510604127743129618309029810842574882142598636649995861900564352040178858129672782498882052883224317811754766256332594550112932323703262412878947570631345352176610451587765278697431994085606032369911840478371951885841140174909626685595290814657905711306238317322483030181637145313621267476978525404377038946041714281297999061252267258243614846447484909872886685625742263293076304755986398102085407939744564506205931463994243214471923532369294568462302811448813448979514638625570868875205964811069952961237619256654330378173019187374286456950009789875541689935264792415406858081771030905525522741739477080569039441719694118776661539724925541076333517853047776786959956832486997547353273445663026580317551181451191817743429155770822630560659649741763700107247929695390896067702676633023307412002691799345299212225988985885458947396737989856984251226196364957942134414667953230420975249488100387551450206081036869630225215273204347646190726964126037412356815297642556408568406740834245019953507523257962578853841980613434225034667428958244395593870903440914467908017769615371312330182727312730242330083723794462875217274877345989509336200406998937438538942582004937124112704170090276148590273846126441731814966407193761219042508171805218290914330021394170001193346764680285349993391119321327372229761636139195537387212493067590243662341861968521907327911401206575197008793310560368172804894044493317398919273425535270327548557336353843624995008909219781640302862470422108232878535982792177369198550734259817661152351723683692793084246824046768271108494160739923228369541904596690575487052417269493110882609686647132319967569490222894784476891683784420701626390290953008825524434575837519424464710251030095166649097736068963137847753543981474364125550717626887519422469494225345542509327125975338111860170145839342758494378991969281219669398345620438177669457940184038542010410338427897935019234473220977697442192792086162792083857927521224930218529517122885560065795195613251083653538328748367324231890539827633048270747493839939285619287577883818916808230280253949520014725478877121041072046721216945849929783341430865340135040575965188149513882556464485306009271877076618058869929185702371035703639295045119229366836136772264455861657063550597836695889558654429518116564920343192432408678190701173698644926818017514373539706715902608192124189518136801680677253368211302607612650107820742722021005593533669506463220507634323127292008272537252180318870234248442048679845614020407918153527707096906104133806163559702566694128550402621262947722755741946684858607010440006691538368541052957759761091258288405625088214474219044835066729859298259919259346232031262386505336874601414748503946735006304203514553977816889090529262348670264525527849418811002680570901472279105016298875326733677986908339557940826559463829576893930115133046438198395529830761939121699230893769883636885067385463611636102757724377804561966715911462013830004238993378124195954304713384349635214288110936348493567203075725093176043199647254878021567262601817450766124274787846137178579812445888888547923529017373791945434646440057556563629889564644129647260396905117473028965168483633223489435445840460019299629962420970781929304131179394232803070642303616194436422621622555811292119002369658267153047828761745107675197633005117400324992130844532022016795556926855303370036937578450304212893358843958001908653303342140475500541284964461292011561065106483259664262501334260453322444551410186177927193979826805599473027138451218903135451336411522571576261275020337870862886491508736162461955327840710863370926021377431005202784063641281265750101705172148606441270151429425215910543915666490090043459541136718228579019550802726160089161601183574367654696721533564583737449598191067075481203256859422192774239692670896497967377356561287685735798529735450270059310948618597487518531911944689437443055471548694852478562242374101825722796790070095036584837635311058339988713521663335955664889753339330238030636070823762987956059595326378690314031114472285811343781596160739122344003983229776198379351181031626298666925364618753567792177204065115217031183385234315273622344690703906363699652053736111276910427527274523674541438256710442505104864553339252479085936648152134912785845472376091360328542385602480018624884836786748829118422890127211178644677741039925401424172025639802407501067115002718415043316173872812361634315238842563277938008861904704629346620918977304883908759268278280105581052625152746303499949618755180866998974455803815680370254825160795385040100594649853344594941443731174838993680160825517035053571354758950797141378986751392971118087005038020099772861262916461213410904413853491153961851345721420127819530476040299569070530264982010095724175149370911155643998964271187020590200126106905044893050413047422951546994470953901927847600646106445017741714770852801733206919387624113426401323704118907160059393527719092670002647391018653063860571261642974765966494206641903004683111549240314114974707713185629036799545284250614124355721221731972509302595163255406701585438676127050578028341549480432335088227979660491990311488013373556293374472910467380316377853551946038131399823271855984520899779038115026247899907822191278451052294670450276844067094910630648615592473775579834199888074894718946457415661524532643014544571123874602198339795875499017967450433495093719784365781034761149082122692908654624867992869139112883608233388211048045683859643941643101932225099356992855709904674675023478880815130987768246822154373910313808525109137569556480670956922811592758428160469577391654980036763003960831808361981312229455284298943998271742614241662345987841123829243059428332710532932737391633003103177937018288477174767020176155757017765088261950752970793143012322356267645953082235242893282558435042285291466717612363673882814244111069393165300391457695717962761701016234791750307722416592864956038409185277499309888671052736896762942795328160170569223512908310989385964890135182623468935091244165375820148505086412766587917805731633229039382533729009404298905904412183254064363232083774514009855343869088610726581189325096828383946573536114990594180166531513761533251066825974536150628161355632278505865054384366230228482888348005163844061462876556410424309432590359554960852050592143594622808983075265668248167528884711902755765543314050284395847310004134649995233355862514590133026810056829400931189506171870613311654420606133277905850003443808810194601147675247519313927376557986882126824242926425404259411820153826238475761118833644823898681975674462201403467396297762130636212867786300756703377543311089083000206203897654424971768076827815343947296542376814587671288111207273118536869658275343989854538635403402079684279683207495938755984379019471924456665899076966077431374920880147677778903580322577451489077435552210912976184924638024182525843617447601556373549455504306064976863883085311884102609334243443933308084084027795291391646282883475154003545130174378261535133775106056311103799695875746029640561051355282446399716029277399794552480813253979069849824760655000337142187779997301117087453814907038596299370789654280988595334607103835735291455240279133930239465697185852238371789937924796713211847618101899454681125799937757210868942191976259234357787025578561090082263412432211233998847849313062081770025493053872016407712800576248189273081001483183326844886947422193582843398567941889442613642670345997799483657872380671274868272207700778538229842720632531960177512592157602801320939433947004842504072036635434239718974789455592040695231676850790818996266316426263198622454419692554486170520538269396621962507400221124453277335161725605134971375149857222368798563429635369805573111086698383743535329901785897501927687361853933968731078368584592799002720664651205074305597357941327124852159110210800142218679835337317113438453386960916285350098021466680771360260919775173171881627428755481302508116945034982036223809134588790897369705999254560036981896013590487421957962856671315478365608141415381746905649102726618776088172155103497475817412614786083127444142182148937445115812661249003012830891087456490934742935709700249192480509995346003353846427133330562732947211823918992513030143862667752837572130251668898729100106502000606249557296549704246900985123805640978321772784084978203627818547040037930647377681082541706035358155159396304306904699222898461165799306733787533964277805230948062574606777464034188638100510139769351224031542543152069741088873359442782100474210830323182541328529381815971705815246049993962055775621237430330087668673911419896096637026837834225238246462597950354102585965016846210044982934895011369255545154298097131010043068757898885451964591499825507002764327248156293232886540488631986275592976775390758079910375999560926869986229611536545423227725029304914069358059248380732289031669896240331750123615261830341621765369406480552014875001393401927559352396063486182567102836855011382977517169436299801309818483490827443146221223822190049167476429857199477851915036852668917834249468068649858429392394136251479479401169980249099594681258530960249818394510875141252541450320443445534884374890141006372761068983041895678002935221714492235912379366500706135961745145982921476304692464437836419505878168084617961099370683109608960518825787087477717423381958968413971416625041953553693198902591605885861891212939233485031216520202001488237399796556037856293189335756817630294084006981656398191252189329465588915366171380219798052628711352211106402230786777342027072236402921764541659421007019917118568640730859985700969372598479110891882622049276748154709951331508591861379116198076559785973686879373870930606228725049499929702555011666991877155205227175013403304225118286324557327494040333110757419141890115071379681290875575100955911189675993860047705526839949757836508227168548188484099599196567413931191521393035368912407729827632193293508284959046492250900447244621858529945589200439760945913140652502797225663023255375719340094789498701404714460669710605679795854341381087151367057766575314997049665210611027602554664003115770074838353141472982015305689572522852527491613596480084821432948113692878270034401911845179711766564686923761012774071737426708887493202356089612681306637049562361328568121625923615526804243241032111583498115180406447745161514800040677781403798733135263922240822739387337996908476421995029345644972203442640359317171515267237700610401786912804114499214259633035648762176946236188733913318180722138854490600598358475813308070008679398463875450962386253551948775453689203016137187507642862870725978911342597353685402131127872652726314636007119558908431416937774990154308819294861667682626781541867939073281775703360136003596534862146532755635358098267983428753545310431999927173640111894545446551933474880921493879606937739842036415391818022807854001952518258143961501201004499189634639938047107126747844916609005194839612063654914719211135589642402012990716940169835486519228133957952515589916064069151354026726948319963460437578118120476427273035980310712959547261096156638653977673362997933008820423925386292163741339562091354156107883765429937674594900447607319483116022926700328498422163042171096124253802818976958700648890180927255526645092283269937050772089297693983839920799359838004245012095265746511958238178071181078840812155568330920823058135276963820831249643428983483132384365633180560988057424241155126491396977411321941199170739202013439121580898262032947705881561471761643249598855386352800932886894961853043809777300861620028907777978083262397480468275573413964241740159520945290968500174696769971103904475392437338303331345904251044412989549179329659116488054498860167885109377040520480219072316838984465409085627950069050189860843381976028801794342213840788998564163664641413362065127919730074932455153336517602983056304179341880719868188401864004345186991957004282892023806355485636350707837951605974681954264253632519834757042225698009144161769956113679360295366587098267857369647811327083029807618832516454468858973283952682854859117253996451808639013085730314740761678349137847029492895200381936595861959052266719764576410629545094095644042810482195379526710134397596391025425297641301629468353669218916027875715279829247208565755817196571991569672373076858579072913453206140171446551151330151888709340973292199968482198245690806123269332800169378111483380164026238173014587817948798696319795583580869483495723708917042904193274874703763427970636176407657420423865396832657317265867311910724527999469477275933555236333807591299374192435110056822637634994583558900668997389986523075346494869569979362877445425504831230940844372492562730663891525017080767638318115088095901877460857590928348825209305251431943093421981067009894645230806036031167872042949425706889046550279801431121665246205627077601392894423743523978677617754263752258501980549003888586199783835218773165967524591342104452644621713509728716925339239230674861264337142036858267710016060953076244991594214419377012127093146376110719539660186554404429312599274747368694375714038654664412478672412176397411455289300140640998699165463962152463723745466578671335149356974683886989860252360976828048029962398665140994801691944973517726940313348130320126686107266135422541211970452143949280653473782011533298961095293726084357289507621784283949533935441544626403400164150448387795017616627648886179584883249349928879631252999588263385212293127128816853512700680403758230798003750754391443095345752236782669366689566537842711884315085037021514328580629044746823355126580399955000927689577531085853333448588191002532093347202179146194927713818916258341475923656976813363874640978054467035967135274479482638804663328720788876615100588448312312465314588799483791679979975146843158333526609320853371419254874326800181647430714416659132233816825814737287409484078687086396943305018235296168362064141011203605546980960850547004744333499233130363140632619653588315670879380071285035441987484966563189799895446706932865907883639042293679134749720297112503698938352131580083327793465333894605308253479654510639330033186146290022096194723244602219895683944829498232780974942957549196575227111172616439101340362651020996502102106354813118901888112495581608366440442383448512466101612128876101182513872208905190444981781871974474896871529451305734229540439629372066331421785680545687858042408668720023940607025046393317100492548302362397242195390560613750346551860940123335124089982316939115376778257598963377187460441645640844028593860279435581087262734904789213251535458576436169802686478235846806306816692352468930790252668937874853262585680655440960410661277921524583319203171429834366989171638806688055532940686637830240600461485023453874221855503423188497588403977198385043675947993588394233094031742903862228283052115598621045863549557336008344374108673240155384216544041737570350159386525151862856276230598796457409282640957995883567484722347184223364251047171064408095442078277489557344250962430912137676119041594347974267721997745323311552489918049449444652356680220950946312862955181521940776562536740573556678838244825433295774679946128052740542108019723837549593830793911877204507536239672349203630917419135975280095729072164506997304901455737942571381981076627165937639879481305555092876963270823863631101200077495916776825825637353630579739605864071458398721896516876729512932552573977163201163714398449781515361159071682653453139554022987029958073274263997143444437287731915447995210341085527094044950827260532983385610402706286677395535379017600442266509201748707590864757523393301646048678731818565250507164280506423419398098333172219387759537916500274094456457033180697663277121572609207587628306819745300653218029000829601386715520109698233498941572291277574180038848846366038969479415462910690371355832465000229854459032966764717565286487691173840375518157789083026561096878147235148450344086951177503958735679221769992572470260120001621319964562096987326746889559241754967750810891761027702686647758948630483501317041509254606467638884370187654081921616823151913254804250564809051708522772998248079518086641698706459940482049636292577805142455390088097164334252653458047546623734758662457374361442363504186439283366212415788805565330467122662084592931026852736580451485333945877092127480591746668136286157526589059505951588249619531973876574921418259211854257766974092448292876812666650893509668072918627247556032992242451396265961063555204019478461146233245133574431727918667790567784552554403939815822000727992003095530904188609235853070001617576427349168580652174656789259035079271880108025721923927580177145748780436084854047311375729540862073581098281496752594960466921092061058218693173232643692702356627092586874103306241954740085203685080287928988562730522013474396500692396169872804737623225054279222531563493215065925020835729353619496252307731270333507317896120305555431204943202931778950897301721706404805174031884603802164525446141915971624110623652894175986704633804126130076487148164537332622065668901897037014390438140148431035732958295675627656713327692277600048788202714357000054524071259118204400378970760046749274792984955758653633061430762378747588287513091259791883804958960028774838249818026575766645281521605121415783464211901948532360340716890411145098352609651187691242638142634533241589154063819782905037833700066987930587880341026697291328247706852458092298289405993068447222485046893018257894861794476572107522770290570179240894662354094760374320864585049425105078173290773214926931115513798879844872450093116197608139884161763497493896950695320802060164837725315700602301662682298431182081738436278551244000590973878171278309658963667910999767838527055425184260145308292194932425943910914323314457242902516979233240641816987967894801887637905041739411632069266307764969791863960457572204258151647418979139639767400258687763507285949996504951780086022856858341010155791449377962542172078004903366444183081267664497983618071867877184911251702772730662954341120165664771607688049371540258856739651967029628618730932778469610777144649223542497807944171917109461634540144767654065332843360909159450663775044188215501161515555407583002385912008647432838087359497375463860308915342981127843618693440382605917622896020407540542716052465846981931127577375446430852309373071440368832517265751401901798673916410154285342859479002673486210189758810143868148023701326786942262659439583548298653393767322202192554885905300156989076209738582939167197945623797864508372905119984398960963288006390240128799746413960036181058119468821668486323538517637857557032387971227510617698614987218791101032402768098195283175698017335200787863920185390551288119689527761091199197663684388468189282387976331637386376199855952242699338816759049931571479250222738892750109461438264320808828926814130831078828106499918409167637289182620364611330169360808001752188994628879829390775835084465784533135710926778117677052531191421082920410058772787480694259348563297202765179693194972682993769531354789930049226222924446978072021145615650311453576009527608569652648362362646820712591752804247288428928486040519439330625303844384998292455611442586648185800525587332941452821532833793349343894602446552480690194795519132739728676196502578957540835806223278093513999662372539411771793501199888550921902727091162752103734337258548302701578351741658578716932940986364979399333673920534464622285634525389328224871415252582639208713335314317201160036420959705556728341048505891419580690690963886701167765046604592993560665723149536848901558364349131040302615736754764613976895043073091438199766810573743917215032212196066462265437324372297116219929166139544853815033358897627089341234416361776826580751572447060417300919207401705315850144161441757601150310462282026040589952340363575997464506747944793786996511355173097209109394070900924309615698437435149878044832007044209686112677271433686728642639962445508590996036929104165863166662960247597246496110184074062838165291476781220994543370578992092980306964235401284094404683353822170408983710169459660535308764471206823209572214968887133178370584785948075061560563109145999675075376981195987518578147363864970695842017923865775175315048915397679140469913474867861948430167047792805070561039259335138797584868584886099752935273039110312295303507513749626041543157841704096113638130494074841958502564175414898603971895563903421925018289249681109637186612317192309453526428003291852681153403964003265745289624703907023425210878326133398911999196320122236502414135442398060743814275747116384025910656897334356041236519378535170928796877028945648092017775992782333536904247684818386230683996116720468834893099603699912886346291584549331981207954068290514067437251967085614154652298848247751251959610416665188568630172855897253433234401337988974925942944136448316683134226599051976690295440701027341360470156988634601253836574829974695772174455153913657980889776525579262561812131332545084967431368754287629042349744008408976365520336993486972002208049560655897103332496544839644922328350308567772615811021220423144448659813766841028568841644013784765656743102106109675884926932706268518016608695607650006616386420457129767457911113605450365533506510410280741961796531514439290423571400422406912477896914594828305334710463259373279564806972363783794107390484544632468329553630340606778934857683803497034090614268898361308865938694373864988562623496784254266606566183899015609508851929139849876709437668498502499474872431086373586253533013423376754171458216793265601479294690087849599946943314396817254020845812505753076744828214894081256634164232512027605246729714535017886992399112986904910113356809909727569740731475105766072963166920409561956334538501220366947465985853344716591888089649114804233745438607072564426663527941910638698758694421712443439874395804551977306622143399197329304551192339540453725553166211818291606149227283382995116106726785362356222513701821045957608448306379354206940213737030514428995535953977659685657408124941367315102182266195378210590181114352365315421745683055473948849838496760819251390327426288302259445072725773342368453841822022859015202448226449959787318298550797349997761034641356774541535992025287660939017960172371672316723015324597440923668565727640091133209429916523218714467972880307910781283853461089120060128311562793605714563735189638105111256073776295960938720979490810873074131412647142175161694852845206694574278060684151353519108627543527551926624356830539618368392585918649858910871372097840184276331887403176497765220622656372175637395518219742199990759343001769237200708736307835773617438663457303007732698534429987550643628349529959828074708381189224781149194796724606014943964653421073306146189775132381036251613053945754613387193230579349857714053567142643027811500195082627451782805384382697955817448662421481791395933444021688885827823603738297950185782304367140812687688534910205867426152170910309601270184064861182183609042412290483092434956630684068734945266161376711946036407754180107075692137113220133634667402035461028274668810252347888082399891437246629917547882324433025510215905602739526856583458347919791919423337869218427361431698106699360666358965113287347491364679107144802965091238996264691952362372697845959292189760773125927404064124275625976847734821526984391821594160925338097178821117756458353018022746670628049713811512523027589675308699096661247958904081991107826293284424195580350046218457998537985529862628064499194697073612114392165546699387255428853053920220574851086069277441218476855721060848242322828181950888844847557017365856288298197592229647467785253472185454360444411532333284082407121884816737801520307435559164472977600191096632408997206574615177481496924052200601051583951076666733872048147743947520935279776255653398036916043080885795384873632677655935631695474088339189621749822163921758594689752547644400538173849099819561126671972265612623938383717234232296873756893434235667800899291046572019589628263737156658655955659225001514449852204714574704931131652555849124222298142006863418166071053815204213125215113484956210593154337670998378856208487771013679160574461486537965667240062338561059609345541365875601383580385496892123612419345421804135807738229176619567619343303423123883595457105533729334853241456231438656732015369417229840245748031681353180685539737593236698405996430552407830708641221202961787899047098117275209023603890609026740208596468474827979856356367331033081247374134960566280362510883350013730927497261151445201568657727214595506368058897171925268239670614097158179448654319974698789190413424021685265011944379697210711097316496150218545415929303497738529334139249192281723317939865547099602658564385556017064271472890783063949954415980048979665469269787957624486570591473864597713487927132829642372112291119748986718898702746096109855986509758533513989661651810948443385843350718430434785004752302843631715582601445721674790731834561713570875770792700664340714378371363162835757635821273048100077118059692092977607060744991876707286774359771545773927009089659904019682009929063224166764262041372090452985681998288180127251242459208308380661885732114326657225815741147448716095369804340575636901120141983027699119091734004253597964556306718318722147528901731130742769684947795732428725589020361093257139893411655140400341755287561892068200247126608123462255442342739308701606488438036518157819298903297458784690939534083348474583262790125793240937277760019083185938384112728400804173366352705227942209419867894982785599186888226457330715240787844836061050315796834172568763967535781540328153625150997725186702912813576852208445274080804688277265880046239783474490163304463434534006497123932434377149561298072099636361475199481421439647346781819274867650340420675647532198172210703571896633365736271360504671005377926072128758853938031755292965126052686960839366936235132406599067343562087018581189158332215202833427788392549879543123263619549567413056579093622181146018845488085757502912723949890181531392124538967786159508776692878996266866030859739048685832727791209094045918477549414680329635105609982043549171096148775718730600134673644320300669492522937423393543094823432774976524671974232549628236334201813795191505945625368113553671744137902187541582419189527346359243261941451148189305828863736601962901498305272805320274913287949711416956401679321630539573844060740922301799572526368109727365263783967456856071869004942300536604075303963439897914892442383404166326058449833692219766405723163544973905620119728883409822052366748333260201486837770513012534500179657183425074389363280623283745639451371333011195388297101442181728327836763781694015793255274048691377461165086142851051268053893514440066992378770465054754185576903468660324127698460238956497142577286985178787192138617118274908229100943701853332193827216449297674259046415006293217418508846740113978536536649644978827249270853498185095930439770999744719182721751687255982763315705614219160277519772318390807073182461723055426444376465210551031808282341667839953663009480601690897430692492307014171504426250537276203261051853167328287011535936918666704282617577329869085663781904295175823871881237629180399324846868682109556995656559151909044302270993567862564667396449653403268165107032268816833073384864216166552925636334902449980179313591141581739646828507735069638008255724438920409926438239854791957885326238822279609479529117924938274121580425054687779233963284000992833615841001981578053543648932474002641317694268550562814590199312347031296624380023421966686296475100899006435967192764220191028817696389181725705678293305043007477483832282500472236492276337541937549360577512120471571352217575906540852411467933742322694852728807622115014569444702165979411524585415952709807813427007577833794933613275812157110990714555932135316557613255872655986934470299764575909237997340749416972664118156595519500154285532374773389276419616927107745435209067246819572467088529775047314368858270283903682579196353523866497436503028159441619721214231883604622066920115713752994017761893585809311425602813757162149227258922934569714695551458382029330743477583889380682056813033073794322698024341688913252063625830907326476508303198855579301509244641769390575735112521154503867593608819769193939714765347522197487567154230752008955784332733660681711810015733228991985844243707302647974180064322470591603635108371854220567562181733239818632766106253058192772288198299896063750011393481902457947104567579896375018566894182004216180646497994588679246672029423902714245768903911925516137176499279241121409469816228978708930513846562848667676510635700251025436975294373964262490499533487604329136357841365131411675697042670116591202527822999655299449309508991687593205437726834646384189388249333734196210016776746554403821429237162264785791773994194546416734491377185711326021094111976995195906444748409330580811796798162181849700407771715300688828961903442393133593172803574321157655197298108774119994633679254755267587221157480735096662019793914096011742023718910792298885931304161958896847250299004975490218977642328538161615549387528661505464050312930103321565810041662284790007731334355285277032012287558609942678801933675682754789249880699851765415015614783704729533806649988395068698155330168652174108555528292473861426829146874505249958364961385553568271507727756535282689732614234297878520310534052100496468418059930567824530914656542969399860050261996323671010474584813017964871503289183153550943729952987623963015060671977328352469772151088775055978400580987072020831457935314976751056357376569645724879479655853987205213018611485646970549326779179905170318205273967050897630681096476815179730147309512597363156764951238597010016221777792704234973100631048224127693212727599120943489446064650569896635119739105346529163842920261741335671806750919311162291461758307768752005128883594024134863615743154509101339801007922827281413051534546973752815687389521112839537550014462456015401866149446602226323421623789769483682156560590435399853425596242836870886271183099316813449439232487418045522487956782833853860709449950455360076459292130747030815678035651377966155607197682336159075496450823006702779939108219783896380781010497174114323593489435694024618682483043261980732675292999801211566052113047824087926968930427539564368304135432221034423602089031164990792795067883337618689530834147421708805278913132741225036527315378208839270407644541514011859377227954433762863336598412474663120359684735697456641943533988556735322502807778104276814421523907884835976966112756773871943627470514472510453919908821294094361053649518484336191798342725508671263001694102171479856627062632064930151993713513820913688353384811501664335997561060703839455220626586970533835119288314209763389068457799493011216371507456150328395003006226262327580170018351046990207196408670777300442615467902992372741932462649164933300175296297136302972330147082634150943102023398082107295441486420848396442531290013877438117033183066047837959415955745815767039079146631784846925735053671956344379033699866229028533318649243629041121029267174004449032732183158088338544083763384826327863422109782484847319526986539604728024530965779656249518740651067790077766349818996173090675238587658901908051623620290527342618147426205831300169184858408206208697183185206040919747651631544269527591006864013796607482428208982543613463213662895070264370149563466090145137705180564842482732450403248154360081367378681672943322593656076298295709076001896778615162547368205606243749016647784823914604086688141482274055792783239470717686393754007087328129798400363837188526840754707034887980657917688097511453707202986871140210829468326822620725250795530369295205264207559707992641547224894918365508383720185174946422465707517783090679226416642391269823356254431444789031297407190032461223203202089390277525849166248659779663949317811432310019058993806920996344478178443761486599786503748841182612789150832413649123620065728974465241229573307449486615801789633422571689757436909647173270376178220661243251584840382796811628712019207727093238555456867668693749426750216088811311896942968785514406503582876906224112126125058470424797711795737843796706738185151424870000787131514848247910509288462478464110231465205864627918903808189674605203455790892663726416355924015758209762659558502754906645871278810371704872885683377844158838551776379490260629200625805834673559206904804153959653449079118907517206414125239299922554473450375787830152586517407019309306840997858509345319978949637827011396666133136749089689757340722211949724891168937249847090575546982796456648784361009191699192531666151366543038316120707734464042032965164368192796150918541363082840977348393595149416970983603380245714957652047537187550633973440084284004511843681746959772807917999479069911140971318595850280282479702465953964848736435173202558271060717284781607595914332097757608797097719968894878524537668790603658160662449049995687216657138843604140814677801692826198215803876054516631371418600245046610657584807222543817613525416878604311923146854567259519482610936860759007876006912658327728322507841693256167098193174737863885727567153616947224892022601733294431303426695018594077847410872801284475211913254866283352193115119136197733914118362011176988598105588350875360143614633702502607588655839801932583953869032534286837789030962537537155272524940451511066502482793057726143001924371729280646906914977614945536501521145003781672037256738659648624971395414167317916837676000600747056308642970982384822899985789854563516981963126957994095893241121687526058495396970637457395071071428256356246144394538349428452271827343570376863490567024525337343696282846050713012865381046538930028730161525578812985445379863387544916695360111642151706928900386816118424395141502658152311408047974062451341610596463169315803024338101739640780423973483417262753772394597304453531611695692415277225934444246551997327074112519247745984366474247112276971120860688093821132049000217849485858797859066018726554054482701355957711613515323883191263221536814161697669098504769127041469284630715521022259417156752194274062965606234191537729043480172786401316461350161793764043049254567987144244857174242554981546432546567265523854002436135741480314623603961235498506266096159452864186493742374840711700807859481629280949286694366104671661351079886513764033101757148192661037696918445611606567448961019587306874455465170585734885132938468119830256410933190726973073263509041200493667644114879837026053654131259467909511428436197178332945977514515423304121219307089197659085486498364074011384683701897070565719075872253818037791866902130986793531486579279679353397723430835527209218817941122634230730215477125497867574498555471739687507255834375900385630913056201617531685362952575829310472330640078751640468721111126648047453757452400457661438391426396157672239134037283023946865545859255073510706122631130039468059423895434146839163676001929499372234956243629208792438256224411548889745191981165194534537690731928530151790955454048096965653342013680758718738693525603042173569567167091039856763154815675736002527949338733430541477185840740197306909966519726242572287883781199944971046228239782823388438604929314765474694974352778267158601716433098256115735012316259801116519054429595728728089392627781504799430464971876983052803293442706563785834486610541433058471009520444522282486554996388244401608969569070604742405258915232448641154545686018866428945790990389555551761280704852437966099698605079565848717155601351173847598767863269005562232760698780615259704796722528832465619832549846387195593121489346641817897089509255048539879570904482290055280351983197989594756973450811748461400628606186701709098921331400478378536781670221436484525102733430716706739992534631620406702130344129079265016890069730218083629919147040045828580407456848383888000872849322292979416963544237005576118558165497366441212346709308565242356398323517911351563169757225852803002857146862781794765885793879515353562745418870219680074924839600082297703113205067672199083780356981232974010169483384424058660352760875007728724820228631853047954862069476084081101142904834350336160682293102419199564312190032262229587469608497410611194604859839882653573489809163470653128912897428814126678559361676434658217426818132220927505959997830903767124266102223622428262646271657832901110869356543407888430957011761571397484691107055276863781283826279912838131518012474361390802855786188227826733126856413996871080419343234969695788409856758496551410294507258202755961713544746518226438310623782161997538153495431671968512818782383252353103091786437272660802105815027885633788382585694016766448619108418380897668168488292775477384005669258481368954929674559530697193858352634819317753685343740798941505033111359591028467094250976019538169383749404026274679819015770714443464241476630495049652613328403861960985332269304588819327415026740729212957789660596154985412728734649529485679794489497157057796731882330024097501440142425945261388493594684017203025094002047387198638491209722844653775849332362149337206424569774581044440921306903911987109049317558185829926758246427080113256880176757780451652675328586355359566535981073855783942041679597195927068198835859758261675373811692613337492814762564708791549146042285081819438530966138919751670959589647484979261304375314812888985044442424939650283722760370183710582490055767215280502585501211552326118294467372328336502852023448985344650604134348152135099187851396206677124265675420189253701283793907483401144565133927803468521323339817486484399593425918064383221499935876572842270743393189436977434628059859510087263562252255101935161322749454189046359372247773704153697056611777526125816868005702661407202588323809111298568093223820429921725787796447041152154007053280622193217233538637697814001344921450116371818284092608743469483800810706220107140850319523645225060858652127013374128100199089622979542606485058794070581079233230402801715682675588564122336538701558527605570203274246226547928062195834292844291097855897854985785639334182199805534232777932853357737203564589438599955623894819668332433556078247599093972824266395081008377806870882992745177102869922788200322812269218034619517268625734019480477331015181013173783000440632910759543462534893197485419967227989172915168957070169170867023651161149974743525676942133037311261301636060644589091423082511656281557062100368033489240087799299850269980146440877529372269012986681453909134248987936447785437999520904486961241066035100518874542701397734838198716755317493575945453355028285328541516702786421428947183149274381841819241054577082517001879937723340944387474022130164038634929305889355890816112443724408549943545207920255561590695986322967210461040359746120014155668099524129482296462323963437998454440526040037627264931238777546198381207357125444951277854912880596824621380859829992215908148987064445758430121824301632158010670878899702329443695963443582070599971894093110775595420979403997788020054407765608280820967924287281535697274271197019970859240140183881125279879128729129414363897695362886701236570075226750886149518251223742215429624893763610157111473868321672943733315459904570781988184954419244153775562655148028995930294836740952407732573864885394013712225543479849502291312702671960363788155475606121257235519419140143575730486072893898253134523349940958737367421236587530241424691492184039394649500108181595199725417529673453464897040863334480236787376656734767649239198851799683246396586955578777716752192280576327889528618243586507273681941927744678362628759420248664293826459031355547989692867688326198315084158183592140422856093852245196421357979312372663236833224000095067647503041369739039447596569779705096381241435963373764726142884403926896483772042958413145724953446079510297654044991086852848611915332937869494888878038315896027804496340286396285634562323554306264684556754603837937977360381837102503823057305790244003159009801229658490019649199429581984390807547539209605547629988735765263787859631619017639773388338484318441109446838293559680613395126211884830742987756029225117707446740752970131826215376143936372348035443421246672765420464765920337447003919843816951627501707179973895903690510251217347376348101226328633216192135262413023604706946178729953590520341037074042827900344028448448815846139192391692077436283412873658535553970209164601942132568507178020042910164260166564202819434969408664001872624342556798702013886939257693156732224617093811843819876935192340095926644444086262566888470099214623202439705653061249944602515968231440971320527842138722042699055794921193256286811687593041530465135971036094026079413506408609544939864197316823907377635699988828458161483846184796715915288212953466285016265056090627938089425603344203823998410463269828343877908282888502473317363707161651171338022225297055161826035403198818322615655680637121622290685561972353491510877442758710061972085971443820592552872857284615794280736568346091206989993194999843821212934967244808223347448970801662936832999156396008663204776206939580897935161668037318284288449808962550309120106117455772453340017323942931921886648556230967983620800501611882064991883379583899814599363086159979964553677512676966068708672282769593195445144930243680459150090873478486506037906198053986176139533973735219614699759295032142933960957516047036694973294573600060097400016553644340296964775733054061150238239642010574302231686656198832206667460924516073635546478695954878298394116951203527876852230094778751986190594551028991053963360888468068436531470560018521319856321914729933907490149792161711536670744637047755248859171168569039169065860087124965774110202380461716023451920346299411031983506489489245788950866203647421438821217267035945636555384216308309289038513442908520692377932605919921056954222499232294838401576778651590768767277117155448442532681879552910907498991289256563982247807868292073157983672572093580917870068015882787619085067041203255738490561958622964722366997936000083633016835094066247913302347890414741821150683182874012972640380745818548502495206092576426130795805013707050518895477611934581789240932925606837654468743895147638409772957193273305768333261206701765828123952695485833088268067265243227965899835374422663382357177096346022053149971247119868170938837203751391499649787184465753802983810459764559675982226462512035257690072124566622501685789326979763136477701162793901688187858321445687485307864399840755021333611188795051015410271565556977334169485881748794152042824732282420284070923183508116200097528131121280759564884694332588020633917064640914964501728705555515965679216519364359040427368494673412472216473806839157140017305227001165726274813362323388217070445840736699495116479707697865686026358652825860790155094866933414182738826432627569814115806806605826599548120771318771303521198578538670851182647801898550494751074383030044906198439420263487006917855082134794570134356136807787607558268057322077347597468816907922546895359546670319217025246232900878098296547022779823725397846790285869958993408210270894144523686178568560929821189515463020198738515159889656386488205756822331789462859602784236594864398200472684666884247947746024888677849873595712555381086990511285063861928856525221087653303218384009612297304920278316333565866942139177477290692981049158879436566351234181984268591083162812661651834792600474623197928772102084617427237812129045259978955630660077439199396200704648574543595714979703051371472874274325739091857792197195723156257671637357138608118194949629622258771416474347948304266715990896299366107505976187727599373741934564912283869671291103230753975698083552470059050174617041416820438630045809861238983938356292639173222219077640700805175577724031087260122319214852993027394369224209371442330753729792287844237012267623528776891336121549911883115534815143711846543378946190710125808518949683950504282593980899615821084747654866276044872955453435194797877112268644573140021578834803658013545492065503582603272394057596029912446072379436605000795085048732995060827678258220650212897134541712528600104363452421349104934612306243867820235378581366491875921689867352926967859822991154581726675405117714672982625233778024604904935684955203937984759656776671265511140682017574477029053333579203441100497382279223247478050649914832393477218778336600038413678607345486896925030537313330563949524633690638991439599288720662186045025069725416384742541379923638654197383442789972222679303254102872588834564064503641842307211146931225943533466201554386206907689036470288400463018366381452640642830110504021011375216101708012903825698461452453574977335082086352997986495467657149640653884606084148677796545307685623251318470054172071352155628182065479351374755435642968100279999937938824644597288641215486607994171087235986327809586110363722542486839187704545443737103748669281675887091841053147251537775619181121984993258636364653907565537515125135390024015353032017618703854795871533159678764510893357440911780880297567229398996015147219137289803843302029979876225565682419041338626623630892719236247625925532041965978991241424410272013208076458291392451088932129494872065025624643117222687865735938705510278096462913997458636094955531968078186461426440271298496657553423443745161211541011938803824232940440919165460547920148335517492694412749107150819093704195899569723422944598840702831984409300094616273148730353739100630076443681013935214317030407237523151121106718371661511069533491937070311069744856546409958858542936266267940330854602198208223865656008824156356469076930953274799753842094355161817765643908064349469355381129286498276302741227957021494788656505769348489760760638233886395272445721662142196738552225491332761400868495566780058838573351620938282121596724490549021816437509084620320855903606856841665448955973478691720668241780088155541373710781323899950570402402263827304993553756088851358561547015620218094406663167075937343757306129281651261897047690142167734310651548363425936099768498958838190137800810733004931346170854283031185620816767186199978336392460313795201002568021013930077820872529665511892328660278356631445001667414168521392473304386568462055820996971862503551950125010840887307129065620841882445489068470823140471679276280228879453170517889755055067616689732972790723035528652586979995411076082816662283253540687016223278999621653791602962953265251174629577998441930392179623260737276133500690620967135785416602788812440139129612978613783400877591118057900442338753363396350548982302312828494407122366882235931965804551121814324492433515029945274279433075580329185433007261049624672229337232898641588138449098927697188062928724640913125515171559614508606775046294699902115870798956496394684019782421264869833928621236001948813383718281482578974573673066067602196357469451437741967697294789909535202097287511899837347328533245707378351944477510698247915954214932348364006010733631409735561704001850718500820185920318791410646391472886434233627991159509929314759363189327720543318287361171554300537682694321209292627623062599814953056793788975388402430911848040630388431562594852526606157811707335772918720389807432860880995371690303953329242161897555602062941179170789928698543303049600186264332666783679555333766359690125960769108521288645944739862675807288348777494687301712584648009853901990168012666518157299274787389636863664079160550687288165426472688222184968915794261362136085417423939311903777730488950917179021349933301225033906813617685811253560804472424171187465223386480426265243502475849731469424557295024607584326437056105147357204279413109247340337375484999145405054002714330873217667158636087456179487227426118034306961066556089856774214702715502281704376935860154684477533001717977052056405721451021746969024377469573807600916833697446305458279627696999954422942363444367607134870271714627918685135776522594777484961113614505711693078004970759812334196873968562251298053187405590289429723404517803980557255175725739781175445021048458582745075392077941515168517000875901850455093629324642173227957809012483074935294961812495203849243865472502908342600242078084348664853465300469641907090041042964672595139395331523557871681045474548819541785353070268655300882044789039843547250042332339743858074638580139576408619235875106601970495463663557943477316700078640600551500239197274915011673567590735875229569086525417720581402505426902914529033714532198589097929580173570984826450403095473692248856470872444400556209717260945679290898289564570678219926346581088039571703612034803414123914720134658240587859385858043171290772444787465795811671701203781391639720401650666975315161620337873208937741132146179173926195177426745209573222297054824325058005256751302489166239476817525888035009118737008788390754976406272193981796111455058941925032087630023758128511081115245128778757383718136452585766679233013528966446806212526727667119771119461747646559985202245911852221331981349516244810555265215555870294621662609686905418265766977574637960693105921549750526561661514182686804728718355485274167695159516362608482428736062025171112225242926987461040798965138033564154980171720526856369445184029218917792197200167288504905851494257681939899628028739307245650686299284917227657779235780640298266549389478613410201001213576456546191278054209663656418125792442278043891265956200545690178900118375488636763582509684854281598890926573983694186619268803305683792609987704169474708802586076476041524962321249086254073884820312467441609347462700390030448992323882060342008178380193643839118968356655348744813351334730740438306577091600754557094952532629083313248685694211292755778158496596440787431455267203499435956788515891493512237673322586558320292347353483692890891153606188903195854947573002188299712168624832173312341409052611479180613131744447760121342385820853129638504401490708921775775822125683396170843342951354689491064253153753735794552879242993013393336687898689950986581728354281020980596671579462973674479557810969389679608032108066763585363033889401242619541177610990221465690046371461784370669871802326429001340707087159642371752273314253960837543973711834146277310377429790149087616429597584818784212486947926076432171431267836292498602403731584818237302291020969130471065837586136241479066368963391713861749926531943426537503928869663118749102637204192694369632280275296138400334150918820552142663575302360533532648142874056141491764130973549646561990068741643324784130596189830250759745987037987690859274610472771196092984816571761653598804349257911189973855316763488623092257476692662672821306873958291916460917588301204498942577233185413744123025679837775446655432621833832028023784277261787865863848349523935128145897396390012510910812397123112201415035433305194745932204135977247807499655487393543451268754448655370105421711460041975832171304361573952441975413517595709435414069942401164246950760035367844936891514635552765319117621236229373631248565378990655276247689102873496455426995027976050222840722940733763330186783396118621580225842548044113276537669127716338132083441602681486877735137758163447335667819540388540978035196927335597660789016697447721690709029170475142438146488685173777541609763457579241845500398481199545753276762285083377452861549373955755093300522937576996748468597683737125507105395636567895784754590873695158088434265462357634011021188951722743410515683190422611474425681741129422609673854787644909550909247001858066842653758277746123740682754792120030515856673080314870132759527142635316178208735856107159752249824504384927095894527806340750208830244130070138035926732454968757573686837314668196290584187705942928848838379797328827808425451997192492818078652629179285169417626870171557392222977382648300045386611719759248007838334643370247494427456779443712251769701780761115944199577976772617594840864546670807403081369276651846712543327782636791585703413611166427888088505976408903362098512872505842520426792591136426570999673240247864742034212541133384375736197677419112583362362659326108253102711140280071340548928446194096269851896475831876421279116985946797893223424832887331737648905935953066452517858562365689345780777690498463613934762046260003224779636785958688425671087716322818804921502054896128521209073235721211030435881965957617323267286922828484416358715705196671738186461764877873108620562970484972908786212888207473968562212091626192203776860734948818743120718838768933638680279747392392073247418729426322590487004319881618225947694536912293925271165690987362703261664327786241413019718505264122034359483965349835554853790940413104673247622542143056598744143912197331139294826321726533641979366636009780802449485406190349042126963808020998164181134458366873833261334387642066553383813890568779960731569242424742843231528305546530148929025107203263030206113411489371605446352109745293026299782309218220630541130262169292059941431426127109714245563106390585839771006145031554275818406908271602231494799757644220045913438762038277900021527343839164579017777770466711216666231929717330295602558045498758379131554723488115785331096338543691447665597825247429955170954757711665942617835789380443898165592501152066483349300326872749338787629277626602270276324640580572955517753487347132222973240388365820939065052070819436873641043310392895236347997830937854575540021770868954473321766851428422279435319222557130702019905096693127540637678210199037019517090683088394850170007609699546507114626408154852424159213567403620236761156139573780614171017600416104146821714295320796292491462974022865610483667083996451754659211997045941875193109746902212668802102118628911438271719570076632207326379618485935800629306411013719626454153099047901771481198645618015251799918080199102919210782338831982775964531383815313722425865182447810588214480828249054758278076016272229910304391462015652813031263628431945786664360355436629881976059884523282632610155062083813900450493250570445240246706746524718234497246493936709174717807673351854391598588486705526287759600133611690234651876941722744257362338469354676869234715209572247138874790798447970319809302456744091649849822472492182001506960222526462062508813695724861390223846769764498744204621521877510225416274224069690453551040709781554201148986314470219241961536135907592884288069865077382558827754760032521547707779057879802718009148546640352487238812871312218788204624049488102299719442943659018887120352728475641663349106395015242056604679732134830822213437366850264143032842044122169847890087221681605067373910782021648704801522805584074208240862627303086782724952426168184764453491332054247814181409077254860482158939171194343043763878751713254987331723303704183288448644194478217530705834988603382794114405967625759742380272236030340463855774129372711689505978239333408002223868581385481890952580648973924470355368992477799770878355954761457759887694500067800513504572501357086078626784303710227329835043274533002046309151582023988391455888433618273206853147934875710169669479112633288970739715268399175524462870962321708009493035850598417135404678700268704571138880124597756410364174567884162287408403606112772704525603831429846282071710638853908934330777246377592596721033634670945651690444820154504306112353091176174753132848187355945113611169043640487761522257984332304315670873772682126600071947321451447372599619590011390392383118939319632006724311137234075403054797634135461392272568408447172642269914258510527038341128382270197126146947643134637083131923774609048622723789136625459012571995170789800742327033867044707085740339465669020111871542611713160216514408239879093787936953719590722551663352431634865032393455027243912914634129566972713129511348425848074095617648329067193909935313630246592380910312318998684767625933351158517324250527859318806372521323846306515997022371111308852541493929441137481490383403680149624953969508597901821783712429902494476079109967790128290684127361345287390382691013966011602285394340023580471485838767016456268759667346613345384328889265136643922272121690958858714626700213592464354354149054975787501409475981145962717267862819796361120913452038527068611715936046359850641724460398032624978968607957569261357609300541969853859844370554992644857289451687850075864091083527786855399708227570317588875657882169655237002164637152371161989614036519137851316575479665357549825010441382796832743467535384925742033294211094548805373424382653516556353003856171122843897824096886249468864347624474155913670028705269228073447643340062024048608069710008414662970645084605970677721736092475749374155441585455049922095384960986546332503068692361589089305768442147436348349420929199912266211474389415211751805302733937459595589525346858646465318913572719993140418126879716641021230185420645982545828683480757622543472694235298599185740512541599920434091363492721707649917507184022350193807120034157958991071630306521896754865138942114405357652420491524280878991641076389075518154897388023603558454926325886677786400489065490592583908083545906629262578712119321677430971956337064766658355729396396545055158081434494829772867330552034795703659881839489183441096352393922411039666727940539565081167297776490051533868651642133390483199087930233786232362713252655896278557393718748821337904940204574698704017643585822214725355461378189129693335579230718207035244500843108526227478906460620142010887701492509250491150507497048223057887293986269734792773807541004611253208441676638462318698295446955375197164229136289527423930873358598204706156563698773374307353010592887008862598915268360959867913037778312772659048200575479039744175070021066710935657297788097488206089092354769262582174890729001665814134254127947434228834578268489530583199482661311567060879511297733971330683907905115102609623467236912458995565136204797338485105217914365511899759419303089168614331742036945642637119224875625511936969937731303613150361096703890731432320819889546133381747981480304209054879444313865688720223666638681357975036255704188052859082952464697078616263894356798826826792390852513904910307507747762236613311899820406218661439333675277449057692293740219255732468943499419996795039459425214565985094844726350615577765880060904116725933536276654013386599591016074007010287101862441893960877550465004864291494543590592220951107910489634939044141021989119616883200922817847441513112295678207896789642751225738677724996570726439340241672711907678418713548576717796490838637760753295648622199363553353463779835803239121286060343825449352121548707715919866626115936524233020328134312400934868946539426390550047960749445256953660051631375567669399748642616780302757182904907503142926237033505936590725667898267265729393314541145834108798471728226575220244188451561203780965480656549006946375960837203837935425980555016622952477742620786010672444428902602305262427494753437831087156659531276613591235283499377358699160650475145076314863211168726169418532431679954115441116036750377572207973419863684911500064630587645166838755494666095607166666117183043124709558329870378389661390440204070046938220552109984567527030701905412112739807623735514730713257845015931698002203619049382348345772373053338906868828833885860248242812929749151173709097607801533046677564622458970762998303022984853914797054295522547929027093271302475220820873879710914134227912831803814864789367116875413065348793457616635642245324759504991858153418184927011431727753885869188630379074205178653256418156733326365929523877885783077645770183591868552855507615017797479123677413948528863413721489953507128488334983700638005569672151474706089490301575568507781338356286894619290232406898106294189258046743556295517423625445947743951832539988406560314032838426052123050359466131909815804336295824895124636274341521313977659418206529012804727647132247176608281372431534018681686118683974140690620935681775364023157411178226988707125533169463064662022013517101455455595312040742472541119294233345452519506076655250316018946858122707565636162561991301164210971569725623683096825750260380803018301233480295557060968433161299405614472876529589861457638078145246464511531148143877084540596993863212607007690562754515879773898613669330731207712013678732762382017189686962498298225907524583636659413347508331004300965285353158632297614826950047319260813583292392935785747270468521306069531502585020111877153563445639858103118532418722907623375821850340563491543987780214950479526378787166784643743927640904357172467812580804244945236466860758179883734275855006684891094859478018902530936539619614467075016126119173730048893315830907063332268606027575209502300679573736998051596890300495698415233506436118015106431231342556951073662573942022950094955520439053824714145718461866396082054847502308330462306543347016413992597077516553461520952163913430300600571903055085812106815096989652950261275849959990683355804295464940784476063867082814891247141201580638462117024007189961258523254859340608842224944331913557970306388273711889456552881440061663522995569096613853533860618587913490532342963730172728184386086593559696506149162510683017420413056487248207281246475902461353127100959369396147647666056953452828410432819518102914421809320113094192392521354980748664114967276640447345952739743073031682450814098049501868742535996148701631360706544601641438068036743751566612028312765051701012727663606414511141045020325513829258853273071506726525838078273770204078235331373072868824589284633390598657832179059989010332753085585567144088063120652238807724680971316567568389355082557011095558982302785177629926879808914217923683406127006834463129913191960363502421378901531841695599608810793447584370206901697351105699028701962520297398843986698658528289554182891583421530754886697328497909154507520350216906523677093181613812088944681051740881964902710049604207579887039443803397451807863985991683883480952969736988860750088926551972810907771985817127594463163290657739790287317026380416258704510490049824523483322864134742651665206552063960809758715190353139082600556707351390854767159489904407451868041144976274415332873225234604708624667611881251336315102571619634426151165645304993377749315036700183114418041252594209274737829495575202950155364018243443857828886454135357565981898655846874813928228258429017642079316934377110366551515891307812171886314244077097761818850185226159662455074741685887510929935515340246212834959853121059959757640960520944952071763153042337323319002623326606910424953806278496228970973076482828663400036116437921586272182739220561560071936650269014302958712320011371722555391034342552692550774715458333764455820375254694534734025303040515656390064248297411892901456036756591450288557829951470218101770646354141322545209271206361837749153275475739340083412943033123142999134589122335668395152954662053055282133079962606637844074945503241615263061245440273585784037872945913730892308635510403764200043142730668155553674553636871417843300341843929128421709626323113880463713434776863982758913670890604637130918148788083759848467516094232791700758450498683608942208271636676364397097938738207261937973089359210030865544205491598509276888301153116733242235205249186221400783493277129437725141312864733029134046697210352085406477023780643480499787585574707315498242217263568580888489465947041082393569840972745706956167428755234318934486304047211455436441729362459305911519981325510920730908187540587879832593547730788544960587460172571120212900816316196118449898747908537809014670543837437348835228436943154134971549435504618330150049320764745344425632238833224356209777630397467732118215895638240986582095831705547817164933083771031485535318022013534678303931388262473873754829609426643836001806425997030223528787395985564416300388471971664274993367583889173587132864475456327448676921721155440434018689641924084917956920498525199062464595138094831406161013278897317280933607923470292371952290358866964352154407565975510369041679357366686321235383437073918031808003419534555047092850821478395616565345471210655573165550263312596161365965555261289289381068763531873128041999770436640804309378477432978156897766057335383944003334803446838440997742297422302561346567108057976881078957037968492678926501946862407665032716444475692028003708478889263545174920143385038237045567596300895166689537255665662659881930791935061342647884144152652917052940105847493922844392853139517450511930639584846173988785754659079914548190566161896366975148795870670657793404790821461506966871341212744498351068355264681464228337459954612907357206508270944317833088861342499208035977154256355904119985442839974221665676451866858487192824651659300113353691297894290328656924174161007076252323319605942747605050376975873371186301829850950810546999098066148905183604294586671687106991210815989522512361869474234030538759344045273385615635969864413679674875194636706098861911663749100102459325589085960684590352699753937491067939922878205064936117726504718086433884250316639937019024060147634195586064917384502255119269249053797221303122890550260190661826734152488369469711271088053528687682565524614040058005228654174782732428206475539978390659312488245276693656925971878277084101094642689996403356603811272420636961474934498996124061842951449455804309267685699234836626949401901128080297324655044413627968066497187166235957177165148986508206321741347697221187001782337529326904997552627587321716882889202423725404046717748125540805311270715399512206168870539838288953501342097010935769046851036600812864836691507178786059581615453063050932397443602808705475783697309657201518987107474431419298982360680836207605389180601294006389911397351343926165864574345252493084593882848960303551378019341156401605187162001851323298761654432606382743533295123310908199284517834921793372665863847152192397863123215473811302666041231379378400644924968179318877103821987897700143863972251326483843497394419826351674049593433146589252907505074808513417040518412570222901410830960328123677617730487989805093218134050951146012344731047207722009389992342147133737885505257349639646284382490597732632781096799706968240123643745314319372073447092167497417796378602917449849913981898629057562711258273131726229503809529443713338126278312185994543634746752420676467041543696656508845873944823190214013884977312679485133914257805764631878941468580094524829430215407445405112764993577207904402577589009553617234335451376055568284090008445845368397363022064568352478253793945789592333701463932483202654813399694397428013240722037315882920515496360907327280845460933280725632958443918001870873741378060621393061466710390519905763042173895909924505196553230050895535615574626886036725025596185695535699026276268414238809767737342806828552112159541338712555977327947487984381783437729618661937194077283769611784620602513882358580795150059665632210067961574112550626420972296058054352003875420544108696080492416539966648306572848394194367464309078930053366354745448969842386744574489992779263042369802666566762368226354380186641167449227349354820924042605528930538151965664096434529708094909445739462373757200105880570830428231180778385793364986045401357846928853894754368084151535349123680426010077313235499139115092825218878192042757737441161540009982011354699959156810675136237473083991578589766005098590287089571062463230597023128666441408326855189421241955718485303022987203761021317630070601466848465022136445240120940061341009731790401565109650979615386076203893270194697408989353637105246659211558288994987556144303341596082325604883005963772764856953485702088607476311388851398010537160656542697659784452745394909209917028453607435945107914244281029259438963836160593776001339800735190444211087675714901731752727567909309257561999231109886050401111197078504864900299359584438046009729853897916627703984906342264936661517328202209894144767593563740326569928455410699177044028545295726189599618129685581873029475767453664322363380560014829903630782888619569320609032469795772020966992744614118922673680947618269196319059679173260882430193394671294027539805788731520860038193019461563030125479095247064341380489314226097443900256583175021393353536762231127787604767682600689097173897632024312141072214416146302432707400045967021540391312798946399190004105961559016324954849393078761964438603117827558958992067984224218383019277903440220818611126335266057408813987560222213095620812147562889031736488994544656751824454902195383344528569465528574008107659614548111831689928171015427569118772734597285345797459667570943163566667911674576694426736494818883631006061761149683197880041376151794603168111124469273273832671854462832744466717750583813755703854299172828321686131216761648835812381165130080381620053524773857451797435126566476589642197264934452761453519243842181856735132656354996188926576040954203793771762745292095976443997271678690562525239410140567040154937624742358890948699196271098116965505844236100421231889333443538977264629770388189354967919132069283620648887377614764476833118102263122279717471153782690596727223127171977622810628323176731953408820848562337094085540196704840915852434356449436395837139481173458175569113105873537093910954305288085716349027446967162085545734770092563954895628863716156832259924687050875484883991055161804634387955255766557572674763615075920729165718923410721431014510755866393815754669021336132965437799016739311639506349993004346423108724912033769403299275560208451092871569112371334369477162908849523951806504307241924767578128122386648046920003436602775081424672737203270735605101891519920243130796621218322192444889650101169534860675302111285245412740024290940353225547145590787506283516727655795320278070533732175141384769325038070472004433146342551225800151292137768558187289724862221283293017366671327599204303391119968935271779650589507561441054460419058636206878643238101036501263323471682663217271425707237924073968520365478071172269004734865705372015238498964935376769517559982153534657191503084247429872443008234997877353921979911344615916945123113246744367906547036545277565821524397562987970717833742427844517557513337972529006268434112028718697299547053718463900193011281793499934800342242595450872838401278221104178023573487089405024290055950396245636169628926623247769189670724692968193334429993900784588657824113104216067966285859240375292803030903897804157696669727532873914485779511937666088031319824555583452591817362319993708973635249362604629473823066795516238882256028347688899410835714291896942994241914587031493433007267973399320729999853173974226133651994962243540086340036133735487234903575986046820509454421516042874437412161343489596649167981535627561636515431928728599992742034442809414317307574840315244395020612956468601962399520698751096392570260622617343985345539317357480831593991914316811692210608628350275352075069485152323817872924358794807529187123989754143860181119944791041278957728333770736649107843442145301050366995744362576366017012250156884433770150188682687633977213709484509046789050210984041962909714979693751455238716149102301579909280054092426855933263539122347868868601814498407671531968951978946060468866032471124983404708946844180242774389974864193731907507944302771469744926456787413543190573154745580618319178983288402771188239161613286522621863403102558483581724959265696923837525428224702174573372933634280040445767990574553664201520260001709515859269582799484467802569730362902236984182194224463614811203682465605959232694028778436119377428155026252688078714830542891720618679104289477745519128698891954134692423404159592386868464528283116137915381234937374890257145270219312997155317767491488945502081194785927792610675953684183351382452574137925635070853058853372942868105113555778611637553093969297021122718214681691058412384155711230652024053006989327442725827427157189427182784102138228168185177283555797510248852683207230858683074943944004915080039765817631601250086332496841508057585835837039669294003460949869795273031874182533435632680444208028801838581839798935591721694287301083904521224645818829526100780643243052868492653065189626905613198569778065821038275086789559564411875506908535294929487797842861634626267375410676656683922546430179324077547522908770998543318523595550192615300910463467473300025625541469773517701724097023855952811941250375817767841957481739681964473491151931165764678779958664073229558958983823890606112720142170358569226327371622395231347119798442566234406977973445472514874359981230200731504060541480195771760476693856638539002443153855035050346758793367993995535666976943693280577668751086822577373783873043497147699044999645496438165722042956444770613582455654470448085041962008530748929901818721250232247700036775617714719910930592557057842739658227852009957955254465681771886165152492346175832326444430029121009084230436339841130425984837260347129830684628535679327879343443241376428191208124330045361571192945090401293085029553012987966224732486529686358210615649658295023073122309739608852129344731097707398931280753203026276723183287554473916393254299913613786231915016468514424119258205055502920535542247984366108110768455823154213886218289128841840765338061914618034303288793704406031324848868745836219800037667281275844410475022193531567380271860438029466128322349082952365326628494440635373694569494904892379757081503408420618519155553469600485011760237520987747393763664640676259942867670207741129962869255560746341210151415193956781805157537663140308881605778774380681172273377402601655297243272096659724883738862740008825363287912195892382602063696988556026635909462213208522182758405563644267865641570406277929526450379469163307830656560735115944251484309990352701147190684760268761643270215386570356649469422787515788665073316380530604520462087963435088610840274522622324785964121376210182771962341965802168213599129653515033441496879858285286631491629046460595881609091004394647575705858052542155832006397942613826028152981573388621328481814555564829994651413124583883448766493282853782936408460308060725899632537847650203015702212077179110175323380064738543609719517859994551924646651902280082910947152862547949267966201363568827373731419631711431118730209072924666370330074222037540903933085412946980489705084871261426942544296830327928530602666514560829780500170460185635456122398808575205774833186431322626827054611036487085225306917195698933301925769972823166546132145956923262064640452825004251378561282486552769941926054481514100852448241200408950845099584323954296458930097887678217959255846214965197729926081221058998901671303357268669373672060163637377158285819747428143209147098246678855313115476658612834191832334308339021178474099595908200118065539024158879238141467930424632528553663895336820705096524581160295352234397701379388858372067082849794316407606671060549899691243415670655544948024872557467051483578712405271109716003669513880915845640411251704500569197582891992050503934259276595340469270481136014253765884239240892796105362587898527826305319741242178500236646731463764443273187363213027763505488093799588507682863792113947912883381641544561852870166985788365413671530788054665948676895886859846653479972607142579597627530713052478320810393552903267194952685821121244172061683891629359078333409073757196564873216507387584601895097480805804496240396212615521197774415319908400397803594282518748137391693638885525767510445774536431985435434993651123910270194843825887783078941734203592330755896534025005765318629550572225274789811952954225358266441256536869532395839115692654181346007928958001160127932408418602525214561639939885941741241887718607980797312292834483968351173735703978273540609524575647417341536899809172080590053347583968249476606921104613242916921828546032738895276786072427592112670933588965987800615126641564633220510970162082263883556255731841305052306375870527563002026076953890849480043259481280412384811860915704873116987209321248445482485961049251833894160091549817727765220427971510929230573921287969251904175876521586407466212379042289154142185591298476230890963390288643599249352844918509854269005947068082180512774518048270449240769351435772729370732951471616693344073762101733623143601595255241681323520146153707431550523550973817930333654630553342926736132009902493700936850353955696189788222095314757451197338204123937891372925203843547884973691116414318522913132820081702027600428069241121914597144862210082081844527849668275645274570939398985921082922667618137830504430134814198255407413001556235093496721022948441740947281844344793932383679096145403734850886036667357947982601085654802379918790706067687836134291356548962507604258861763311462619960997785870087857402432214229207793404802878193467280885686349370441300349770604613646414492698065240333944356898245505375424435816944014369055624492884317061582385489680697293673559090574213082996076988765079084968164982635876891565873075045836869299317624267075089419798363115765974492981706274558006555673531565637621429163879708772967853198535616120857602872782053602077507506193165130167807859933669226274284698439512629891575094459269967921050390558843305286249097120721823380791422698813018556036561328439129171580701093352114341495859957707788904243711696609431044796274207706384871061427017891013009341824180272935593220458108768428182561424307210443803902259340393042839243283640445444093151062735437800909212831597200769697762996379358555996772722203785512277228858908750909315756732527567837601454674079237383968211259509761125194126503415899546788325571025694519353802171123973246631116541300867026792236346987960400288635748097694685811428171643644506865971229661893352394459992322885433283078286585113536418527998991893353199596588357264947220735003635487399105617604592496473125362242084489113231033603892555321390345266610289389473292688550516225732641572332590578197593847406159467989033999027526409846994991480464885473694011482033301400919462797547490895777272579853350020076930096217735859875837967851135681856113101386287889508910260845869560367595448377403247902691700395622914860699851470655618939514519068144411094922725719643130255049775010928564708500434834651717020654913428563105383902025579290001636610910357159677146383069984188261515000487282191499193119138971835495338342106751212618285688670242185587375589489124252500358422610866353110539348876105698487855678612795145863794804576459788812706060847195894558634426275226824648055762629016987570479202083466470302711781947619906603233644631874966153844320443837767785191066949228871229928711078313328964781091826793518863439978520960887389964737043029636491912006373668699952878777591329801519489329914088516863497331051554737332038489445395207833269611955509726928895637680823503316491383874167883502027556128371692532540476564798890978442433415937580329930637803363109083078985809589483962184801912283587908973616628128348916299061474994519869450648531609361172287029107414902254980906652412752488995147032208259877800387854445535315106705487894362838628517075388613185672557704367668169935345125074100048033228210944551118521572381946576913448409824701517515496586744083157716145460558990446067241096119852780822811861852474694359307094551683784498824754182290927525312124078750692935944200861372717786783436021805567313965375910946834340102139345047698860594395595423097788989765932084423418570533871074029649548680536974814635888528510307473559392881301151363244495830636183916336888839901663407088241189181182755155247186759052570976341650120571492929643749123196060479564796242721639803179776732940493508518975810700305794062916315521797468940110327256191326685885264388585741483870163496825889193355323257857565967369106904661539400212735262930914819845041517108040123318645016858621975647030646633074982021734030368527503928076858055319475582454803055112024886716483253443074095738222672174872517528178559464361233583470375513276940942529477311415057016316589741376920887459700011954073041180479423214945730457948001895618032646641450102968704261159665108951932967446349337996838929172248555812840453673863306472766075295851726678571312098267497049564876938028362699639794056673515984624234981593991092273076101581542723062784208622048292937751655639343282463217961812650106539926166479752317438501770861548996436773491126936206193960180749072621599018681041480288030705236653020453200998034675537037485831996156818503060017015526224840827338972114552996800336006920517045183201928886800898617877556194274954014178171359011471007184347536378823334010766492703497975469866493584817176551840771974946702178298543925427181197293982055263537997777314802681580561071214687247774594532116694032430040113540516448106099094124085787589286975674165186691601035888627947532466136728315622686451574491136014887125000218650095885725557948338776899986528683806528795350475029123416046170991280732321857448318634744580533906414848918993907784696660865998160338785352987807931211481441938742040237792434580349645803771048855439496830968746369480932578592901195560056963263755169144742350378292335334730512031521130305395255008373858620522416162139991974557569226627492508151374417017745675044349893738979029267242519639953036637351447941742402003786026424940663770462000750435977330029730005305188405275828745598623812715642148607700136319069811664071127676387102700665392382495192555965137089600224307958911570601255653442066430739366327995354438878897804513569695883321928444027813387891299555491937446537882353675080882639283833982177268751424663377472033864641074367179266530848768926547335878707138464764960902491134794268323208794314818546220591959007465781831764107267549445095454942272838363567478443125904135052000340535029176854133051772459385889448844003273789767532335727718395557606590408246973465035415360565757714052136139440826386715930688201262976977869798103622893223671127184133686899589553906722133333425847271654366191932172959493132302370775887430530067205086918183265098818884330463400396090054419091868249960648380440211694324387432823966606847202915104605356993502333498022757414990210820374599434127891202570815734166472428984091039436039437330447060426738181980645255016324506320643417604695389083244464261200145494543296401223318206173670441082920522895385969275254224820670089080060630942329122084392837548386617196999713809261268658170764690847372482165851579618704435553262070700661723493239227771244075300641991945154621650655471045816750267299387119492614728873558891940280304767242683699632618699918738188339085838025034176926681765334929171851416612089502712634879682318067044174197850369559279431192013963370363576493879682930859100151628965919594817554420637254087636336380994440588943434538140262572624959346859549141637086017120073604627642191786120634257532406493551193046407380503205168341712552438565869700886621068603926759467523352222341106073410825149062170632292546420257186669780008099415998001499234866187683759983109841763076113406812417904706440705042457962798422827479197069345941988487333249989283928775859003351547923371731258684928677385245281296320442402247752752822824306257157152248736542925387116811865300694433182576386604126856808323777107101410414471469175981059370426587858046431151733058210695782995281910032114205542106987244639348308937128475414163374651877818440483081100067699027417347978032809426332353093698247968403366809892238808491778927296850810564370080036411545848592735290611709385890405464503322867144458720587812457296002291117470288448953923079297434967598818732740382769996375854120106440907674591164662352939386851486977424222538060710038372908340581926350307176584607541484666781300115423793157770661491535002720459936319822338499790107168257951034941511074754572616677403506531707799490283150354305178650320770617707219694260506098488037643270411151994646942417515822775154899008704308664823447378384835197917410482197603567145515815162344532750674639227317111638716761101107973760376715500017496108850655828573681633083669608240996720528186298078697164229367111848771044017187171394764730262262010058318725170084919459617587890842447060763295231054260089325557944505506946049973996645445568819963008871812764676799644482917030101315405751903902953210693809031851530214100894053479361942824600690292793330241158534365583058783850883095817026442901927776228853659668446836018997508169410082072821667571384822258218540764939480584066489452392455222358233956412436909128929296752827401655834255319758086665364054604214630347619009714558446152605353331753718616877264475365766591006913931204887857513111163738503255946370829560097376106506815863618287425353102270338536865355761514510932738328498909610111935956633122502269457561504102353529949205718571958973557528227677852242621819190006363430589821640657884643825442823335356237939730092614946365549807644047477003553362000622657553938078596752647557408733582139138497722471317363515046595699088780765784738080906470930437204165814536661748774997084804585202185403497294644047566505323813202816322757912285360212565126818647030642156384532523685453254459310501692460762462252371658082512878597515792795015409648775429560894541745142368552777271737013608603897114627240990570183263444778679553933136836952393540917302979134218352410783129690762773141536190589160156379630933604190890513280654672480658197899627976988799637094216852070249998942373765874806013506329964047672216155541386276640647245563955844713950541028701215341030875532911806419643384910971401009302915559267201569340184318899999240532703095250334463973971435761562354297528881550525543028264222311401568654916929930396891417808825092108678626252282656759212141577522077719335832862972520381516510771040970811404430526654917339414599021199555344709959423379461152779196480577512885043957193759532044364119205575736881244222349780898413015157008509040472328860864870627790513934149021049417768481158527398237391528947839439281326705598158138234548443589610344391048992783640157688786909335910999699784856725262258645937232948472287579245546753923286095749900280418674713850034063639871868091967077012764397358622606621019795282896170901270525068574934262762249884487189202613654813518709644180666887368508035812917676370807900333446426966681944171824545381038894134605373022036759141474498951930238407616415649470405387651683531081716837388189981307625627809181365049882111913971108852881800997021777617541480275931138962482809811576463432275130469607402313851894541290116391946230824508707667483603338788924929361951768253370346432650215059985266453959200546080885023534968319823015513465574276627848853921564768011075706388842344854801859178118145157958504715774779550936055878745186507777581975759990039637404217503333935230407082047548928806895815887972715216152118205417731696447837673948038529085222562537881897526599015172928835885569221112734450969813491764762223150155262439278568340716879190817972483452118421802431969577157569156235398080065928370383021379564469737834191604408030245017288121461485511971253180988035937025050550824519734635151407848441999965089977092001419672019125345050122883287501221280364581204824612850212157816848769503403305279511617833201819786248284335729919520837877119117722952032101066049771407251671195692218426094522801135169151132421081616119254699696485587271134793307184749971532633290443062073658069248738081980508962997478860462881490819031705525251501278258998062337454532199787668816806379421952425551546971868718156432328136315770810847011517115331506141289442725852045294231070379262221656002192000894117967193319892995408399245034222918915997565337931901353119699730128840440428448746423661653493052734111604582245505916783442330937676736472149386121930949945716779370919944519706064952506768505349060953581439289626710101657403578506602342433261363327198093990615265542101864970714919773804726472423917347204316577389536581085511972240225965793832644016233767836431440255104805427371999642687345792754275803413703219830139396169615027727356579795401951047678255696553575287999957974866331203100264545459207050999615907182489746382644436939964498846404198895936082906943640252835594741556555735048968535849282273252988044312778078807133834266269659875204637453261626549491236561834146580823203005703663665828818188308922769149737183380937982420406623344203086940433236464677585027738116941057411314971166969625649271948519395707146853323114066440780106045998426493383893349561294953848264899574527826716552488400772462934777653193732432480508157788184033908367870042634049004307963792051722845140418938284870686547662516612013282394776906522570562244462341853239535363274587111382033608966781438045992831659343037266676207601424560308462090362525734024608161570233630105014743396875362927495406703041446558369718352495934058339882835103088837290594807177667038172103455876980838328632553018227373200262428096192518059977055438407370204821820146828774495020172717376587402733247697205859544320189299914536729135741935758756844453712167637447793980002831994128716291822785915204054730178513617720994591322546517672544075818042635155557284821823283161801185579998469051539675108352353791254950315317442568295524839382648221767378415659036473116583363561847842145257519963461664106442891572978843479256787126708056177246857500788921880980389048894483780496516676198049134163843043192920123043566352432030279365121729855876859376724024411145661123810948619768464299798860515704287491235201314089006999922149825064858900086763466987570394250465647101135828611876983174465950020904450396731097381194678285619012215334276859588768985888484681336196393998548838463258847365995321230789390262964042388008486352361461086219168581294497811022688351649410051155726746186827155012256226156892215322941650875946293800469814073192624946955817730511847896163433375497243326248860566853458072580589217277172004259821088079069665310552849541746994974263861352673816305385122152242950611691449063393632097698589995386210067437670622106889837663796613842800307777947544682823962081228172562525532113589432488292579650685886169587262961878528923556293474536087560539134537340857758749065855702881853689966090008910675949233759268605019455592934993098877813114792552116840032643178875405177941287044637999659811937838869098902212936530553966637958404450593068275985218276008278030560684076608238723543715402458714267954250086809081802814114535446383013476082467929913337976677727029690250215748593231741377281390988942027424447621097883085094133846564883402332792651035245106025869038521020398078427435210539709717845633566277963313974886875012535653659977091813172214811746016774752988580854752749952279432111755551472654045704942352203267521787349944132840951162016955207072410109492706547831612542874745913115166410016777332271266085954645041329281042889634465295556365650807487052879433071557798460234510790997416277280778757817402121618885691015253378391335634241050911175386412895325887503404770695007145010462462624303048387854670968721041339855956332887799126012079950156180289274638865177360801082015737615558812448655587044698960358683900027659188997752097955638236914679111049748225232000645760021345378322931374641219678218269554294737365283171250578281756765970176638450531085309776691240675322056445169050839498009381319559911614081039988044457556304125584045158946082917754128512878458769994264308427991669264507118237962855504466127113205781478692378690621640870646163110582736700300525736814161010554642265856513743219741097588497698764585696431813316728474833435157266458345256361577716503358215120130439251815174555064628727792672346003978680049496461630882326236933357467745724701854945858805235071382292914811716186609892663559595804261252094265002871706966924820550080802039653081350892274829085516458905216161330822448751674798962025792973671296318347610191266743205067055019391454281810564349929118507353342398252462764183353234349424897130139889886497200236852131557481732439094150484016972051065376452989266702480961388817727607871876966616462349012479510768277898074691662561109325925566017029268015215776969804160388135448444545777534857360272893547160471378269351587801678911287834443115079809378324202497997589910206719357949837169634348426797515527133092832327114247806778022297712771914113737970365032137660143963944274116999736133150824739108639667710150287074654898332606791616448853414571616877552551765354501370361617258874263731106479470530097509171557246092170003649529757480799184912013004676288335901395119044159340449953676948990993896084508453318331970288363808921482483317382643635871756335572741995992394232137709514502914705548107713284853207246730963934224233061130382976963940711225220310272963947710593651153568518985595543498436663790442011996390940578909292560265944058380887772293978042873404093356989917401115732461767867967225631678531019027430848137542931386815982622253175206001838948588604739168579602304254101298458708787077702101100584907835072430282481198336765784656778147716536694382716303244251595315722626973544703690709823690587689836610259487051480500884631996787018167626654744890752077032822038694251097067818643318928144625337900132547572268349380241977297328296362314676860075533164877946767672987206400585828995313235327932154860904915654382635240744970495982385603811780208874471283396781821901508823127212450969531838655289785269256054684058116685138250414881030354148044111694771880599009820063153655768656731824671152833933620919869644195267484924262379732207788241483506243395490883382458900691955669310639933887758072318307351764207019945073075131644456570599423252545342076157125303318691798971700401895955143443489402248568596034607609472920008320568361524964303310311012316332196244695770281816796699398325584544109913330004245377859669880723555846118476942158780224568314374819700159967044855890462579993170345632272112764490683060418187218505507378980647617732438046003182824241595424853221686986139386137984810689078613442286308722914600219690357318629451225773709950533161579007315065760465022345346688196995441586493629318528566578421935468696581592279205745635541972674084579080498317813814313759967464747413233634289346477960300864780558523520954263530366612629935984180738123295874309806157812620836471269236040119679304707609150180654877214710493806550502222862274849794910168943307139745477674724529636710993866387934475654105292276758834673213104393457617905661253631739766669738322220230000091286681451137473568819874912946436009417353990312703468807824208141416423396431701115662060389900549667238104019840131686163621608325071079285362599817676613970163119660057991926347776742528623981362494217135752504439555092777294343390532180396687670145456786764334337610300672098449196245828484916814748741223175912882071319828039831660937873473671058548332068812326926068897705402412985498558073897908144079231326471774932283952336817131095053064146071044028356828440770245446084831680702419882066427677802613205078058110424933055162452725385192292327776761099712995539159104171342577361329412172653467237467937177658164998720335905549983654633167638666979128561224797827096711877095472255129625436719435058411212773658072918818565696589171384964153867301251585187175787311358363272968775382761566140608923729108045477357499053325337538078984651589179139063352302766325769808478008894631215371168044933624670075476965509767890409441040855969342310485940962242405720016000741989816309177264061500137158045075243407545678881740043877932973567673272268517802030998568739352075663165175479909041192753449667983342343903717771912309384662720954965484676538368240115067212559574801074614165704001276956973932837816115220516396525949041938543000533527836227284481052188665052137075995827915702870641486765181275664803431426150947509775868843421487519784206061901341987021879785193960558146355598539441312530192525032508688000507112182297685773696397324408535928215822175978614356513533518805559983493648066650966511534934857979532634728334615795566174667804427907152925941187591191679483880382756608319798235320086983197113327239535127913189215131991547899091049371590278707164967992271518868127995977926791995774616039931588230677900599730759011638859641557467322645668244390025194882050079362745255001824374279814728979424905741255567401907231547872543200432481482323774441028520640474562116595184291363476229199990607488192568831427165683951219748603303633505855091774693000390911090766520630993732921623937033901293851485719469520195734890224909075737460944358189359082054229971962349096282945299285517872433944568790958104575463834538078140503201473905221407084009278787350829519059411331134456838015635107296657343534412980026705394237239781218139802269174832168265204081049944698700060201420141004846701617184267479346298248741136391092655949361249607656520457571568483883213893664408984048728238127081957729785418181157638476658410387860868390980294182463006191567925608375802566420701525299446308142420010811169648227507872553096458163464395796649409940816643568702477800679345962142097256971692524654863015807898111189543733991087411157737263293207257499027225861654760076405986422696183953633175582904046292259483776140202503500934811537786757842380126591353952517306911518032784103696576053266354459573968244767122756454269489996466069817581919833540844730975970081901631324392343155279372630584522391185313445849184381141873765794396704569305468722158999444681144462572678259333284255280350103604524125868368547801412271697816684289625517170949326746333967572380216746778527730929213676093316248683486438574468836029062868249161336157235094033725224870365767576401504212215385856315069871703124939250504737342616337391445099249519163227161521494160837177704393494615217165815144659572406537445395383866065239178207707922912880771700493549859320755673147832994927862425210603864061830487169414196574255363821793522003400492584108831554363619430821387427846096317106778644621405878717372513934292872915671353397951167578428101980994915087915496499139627563834535908651286469380664187794680377113543699442643092539542476935117837806866197562318493070143182534324511881694844738633694782558587479914927717821853060566859860886467590640943345729846956433479587766406922212310139645843100465833527411244345656645233452501710748045291935294120674994238193457194049652660863818551354674429625657166881806382215074868862755322341226617497736557787671853411844220054115818614264900257529517218925697116410559558774907152432626549177524478314883567274524379068425624994609754761158359303984082942610223604943227494088373470153430055588293883864297935910007712924715856849466927753055172195449746650025041784871341933061609419609998203468970215922639605178784139258871771788810198713622260129293163166102160934740160413882016297271454918753452218106690239496626816991883846344703406823775908827483218333666513563469379587871165780998757782350772050943522266672273165228537830199901927086731324941588872406023314040986582959340868923913244484226094420481610880893476990223557112686756078973438057471217647957982546898325388676779142101099547691295176069884949677362869374805101705451953445044125293034733216561190798877122220424301664386970194292350543093587436751319380655012502876665020278599144661985598784070367119172122384330627449505901808563727727942784918044006656182530791283241329245725313242207588862529786935706462064818386963180431949678644310762705776097384940897243106828444260303744729296450638387524619705806377858271103195955920587534348842323933558864424054753003333282588537333146227400036707956412962207220659350362821598766963158162641710541576645943805754855913218017337691400475503135411072100788922060617640408730587233379863951647679720177564821586335862945516635521879801028782097681898982307994221546201660632897974297748433767790078177561059882086663381505643476579994333549018363781058427235431790637382497924382831143691768068283503226451067623518394840440551067739421649912912586705829073078796503254972984910804220785660307032295787222395806965106530921396065899476421835910285025973766592857246897223814726683387511474605294695733716466085761297724939135357029835226429728743599048395492249090755512871536685019990801067795745600625719373333314725926945896419114111846353771542137478755569868041611322571002503895394699755672526736411755718799297652590817010905893202376619448087345275476070026769471706908934283849560377154775457907611828742415276282536990742461705012479906125893862712476533269254226698386949408515354904963790733983140297438598070368827156648427291567649764942798639025784808766766502242121745113683652507774539507786988480773904050061389371984003686584604049637843246405583565055877557915731562389630753198825263704330092415985691932471703728927777648333382977075811081482031361725506972451690273912050305319461701735075655027951872774385244189783508634373487338545973604216976294142592717032812230449282174805488993104288189687481753185093103980667580546319116391310216944924749468576420719705478993567615885028337277551401137457787578849061322970676285827861792260216610412336933078523747806701214893842320694933251983423037834489190955204706903540751295761066282924985439472613007587767451513398970103811310802793749881230890346749059938322840355318969386338462065584611193768326236122518793958329125407230146333641261381625685944083480570944142744109150937534225777163409738757242547278099049758588739672412423229566555855351774583371487354509312370957204746244003842329250033138320637475158650450187350194609340056816455687607914386211083008005716864754039966676737683000266101850967058866208528684487132489883952562361435396655595318272311120014380314002318902065058916985138191682175460810381787213600871918824253639089090541601607525747571543322012834391684835342766007579148902101226213710015721305451413559694597517513398695057774976445552149341226577430509717310890230135010901537544510778056183740582928610135386224567979404768413023280879000867751981531243405757139030959795730002709404801300082887050138905442496823247104153599549448823889582783195834656335258072883314339089060317588677531296898611943590162901487650725190804836121348315866395240046343136593448425354709553030500322373333017884896980210838044296288101258481552354024758225623000315075011093116180744363498344262720469080027286040397311805549103893192825475891124782276683052313705806619391575430218029225181850069430178579443899357856063812145205064635403595839269187926997442246623362248741930891483559188483522229721085872239528420890379462444014004513391830323014257558838854586919941977418968352165705298854397763467661469720408117634157358376115566610231286999659392854621940597900670967978254650164739489005631500446537337822970146451084986470678132219760963804237867163942500078867903324094843492529059486318789924404143108167674234693006403402654863154627187235094151485802314894081453608618872517057765008903515069396204673076698817577150108935802099037905851673024742625139766162228369003769063801838726173813424803368542141371481406337167728677298643881333855428099718984511207441769185069590154151900934956313790573619317990104174717031688905796514279205772625294353625616183022210852084356676156220668497523598598773016275066691594993548800452465124803211736288593364519189803831756294973812727437967263788227345642277263757310413953499665975753091870190121745896958410845932061770855362325187715810856335584909036413720604171847710262608749969709433899722647581797395611780393726484915143401396899833733942768694592028077976314357159838976058236343070595460305578815182228065333485572391108778884293910669787614893686512241862868234225049448361933940881593647472880054206431445425585297325577828056450447699454134627376799730487346430279329981634086574543296539791138999464069408842283040543958372725867707682688686493040006699646980933700010261239262470666538175644022803751355785414154446969357842740732967985315971019810577144000263250118566327577494033327495316907764885877399343972349082470322099910158064133974258702410211105139328103617210298081273631339275047171062522844180410395858248578573176873058764478367203829728143901507295562419601515847617259764018186394444517115385230403683714647137121723097156853050390909068295697671733665930547119218398329222433997953580952074627652381331371197228781255796581237572816901728291008334302637356427566026194977388719098600252655140466319218099417185763575780367356129882033193449642578120050786831883565097240118549956939239700041971285609981678322884857167029732771206141106016548425766922639560102737595253879226761368000485235115271714167602153476249121323472119284197122487467389684288494214262912957946842575936101981199242900027795504279947352531171512078627333956367278264442087406224311388886372071677099653619949725895618283731977267037700112779387889945548394136144252179715567313819071895509330483546606561120658023664150124627556082425174047226624652753885863149655282650405410475754889249798318377501243940263156301406142096322024149605964148427642247527015677427375823229269282977345293406783176011730650091882995921305203799884230343230642134437285871662712607481944889975163537087684043366279861521238776285353922019497411021816840749026581198000797531489727383744598850743076104903851666460065571227305598901809859536953467120587805087216600635456986026955162683553341131107598304945219640454649633746602044578638470382499711622765569999238247724302071503198316054809207226334483377241358604644381514158877416211645747909235122425136195619264883597596288012218883525952295225712660724397688423529920520081032063427343662891245278659288896865746771049675605716117584772298945985458734582351841004916614361093337851535246880447416249757871435020736327268458978805150293776390006612524433955462809234466617007509187962185443442534384001597724639620577460573090867528349619542089630590173334410402375138557932766838078047933732538489003440491796825414519436661120035162885076350531982933316324435230900048930036974284563301187589526344956649051650807196342087515675677772200484775580836102598937059786017959903704066466959166876019488301200935265037416916617349227560051876718078933766955149532644066776608978612500044794842909271110405454777265141622441961590365388459117059486561099434670335076910410094751519536622356187771211784012504675118291521984820670391321269912117716446987086479948810356920364726577337083319312117837293943669126569086912319270423297124997653270653272347515495205970164756044559097560662764200972949624137285190201383228843999059670161696252799642601666906965650701410806400464398495633479385106372096665568723524046529802247079341378908518501801469080768164302610592324499815055409081856686654934998448017654384970506892063379901200981719155562077491500618867225030042053878603638792601627361945342584259840334402684350869312812736167436720043205254432529853793626381441496841624821798799458669586491498603727880569701124254919382907731910518558053770989831423935332844806984581454665554263698201909908010685581448620830676961065047970802031569864447146296567058207550305366537084185911207820357198998644670652914850351080107775498081444030611384754999847789055870851222882816929093726789664103938569664155044332880473330662403675710978943400646353760273021072342640449836251808599675942421943892706592931123047555884038893987049049953165300633594879641878213435902554734501271326248480609356536217547201323102153695032559781294358345916950035611690039229290009432628992509034635234933328417339393041364577518643614337713973614486074831199326769126726073187274963095214661392132713958730995698972906131437449865805017823171517054006071833712583947232372282483350400076443395093529438685520628775221233948057796122088109310464641439210360991437231111602916992933990224381119669334909370937328315839249241491671598724758759837270340797240395363378622508292139674121561594552954006859476077278457223099874646363803040679852492642334531613276419728673380928356622139006294476603705460689960862718127192396094681430949467440634769717195424772275482089978107855960014056279630413300044579872768022177329362353216054602362014238704006267758579262261063836879178978303446542018639926042096344216502574735118974238736389415647060796894542122490251281211918386655446235120190270935655986132023415337260880383329061640781225033788143555794451077362843920653114666465003925612478450184529131036856523766683215060006591610229353803223342264104736497078743566587128017219139758919704841383919861385906626260370491540165926741690807362300468499014829210348954614695501910095615329594464259032839847158658845221115543924224848911383593425692847641160750987986884153906100688010930537785547991927225558888840644198000104144258086584777710378928310136969167099138498859966112202376181310236421150236750933323740791701806761217575080997989982414282029492490556528441724140515747968889011412040687664861342808044011431340226891844755985211220967137413884866656756668235287115297366624094300143200400725997473324719493716923911028726091312708733414583459653150855509571495356263496640833634197032852504324326493759511198646624257165313862371432189331375788872874775756585565959391067914745003694144058506340998640727314337012636231991184631266094028117063291670764906909931093335682495291302405244084828309332783877381807090455132139009344877793302829156344119772753925190086837133052394861221827351933004404208773702576094794611461698774669723499295619674591964397781681037908387352967040935026553091614474843831988352348268319473158269403815876031130047576748925680556394031467739262445636660593630787621701451035062163623153869322561703145564020875697793646143964546884999387990265243356668181289368221861646289484646616883992620759668746887587226537118853569899439294278273443459784051534154685439857874825219423848918764517278742640475596359048884652552828512195643686536003549443341756063396859220002859634950450578287054933825020211056324973319042536475028448398105256325672651592976946276559241222985979546843780259346537147192323183355387361583518801231215108618244493493148847435444232758539738328543442402104200270413544549829413433146543222265802662503074257062180944566775880094574388478315008000230492117607232481894552450096229870663352064648804598459117133062573138992918905651222078725574122705374186181162094312194409906393851005626988625977790894038225955958901195950965266175691872100389593149922736408031308998563405195908726308756803676447151778669580950206657215252825787025041517708347408902026491281122891407815496057415789478551487190571394168201406612593783696457877963565927737903283540242509194398427075381391679295038495737240479288429942691697884393538068590239576676966587520911488677791463585173136267101997034455804779155898818567842017398596762264653677484521057264193706169634773009043235248430537502553792349905587239810278915383927032852497268424941684252857386958385100091947429544831326311812066412734716578156361963106077527772028113206702445261092545347909875604478162692193947697052396473045933830520481491612440693881746391053926604819789785232514228374873512688166191450635741591892101626065008342980966936540770227662981922274193193288805660860697105474540209150085511943323600154955682677702247315858713054406650031934660055507845624203676227915984121975309868486639761393667255054473515557253648466038842429610613857890404826002490682913767947089111858061634179884160206715049183254300258346565814642594161121630160639614742241047912877586116505636295251405083535506992426404885061337460265229242601845058293823853684568184812662418187136973887887416711188373121319816703092504542986803144425197157713091768989467751956124515901039307254214217589788139643128036568698947713031740061293794012308254803651693216809549760000358256465896501684575241188371479807193416763128651120151998848593623632278143137536990649090566532929171050495710845305596144513830798853871227056528331688616466305603874969865782100649710092584577356520783950141196075891914249678251769348343197165855599990989051671381800885989576200464695363785325499497209652917421149504077823400955998594417647064543822421570474531975359937759789571177028413350528004222652710644438932486250561644938782358652424517365882052728178489580689507602454189729356539519128443119939600088845035820512275968028673383961156150482525678316668441044294619407910391037015469765988618108905180384019462315516761906914671427913255828606889925598661409681793658331056574851451040843492631582538154569635794942586922491860077651820123051146139601536986151021532106689690086159414866570795346902554122812160484332808075326910685421265120283595897840480921909673563885513773155049424113614855504971959551176185764642040016046976727989653120542601447484188413222092567403489826756094625091080705317943148904183978920456393706760450769470973534095937997942197748644374561185199349810228226828696842396039705387403897258636973267551583321572596858602273876424928930314526481504804095608056849087796532136362279868952120729848873358694798123763973897302798887113564152945825440753157302866621523012367139394710958368887670988623357480957351029366719312226617569877963210713480503432762573503857983840342866443548331216935763327905989693838321987728921765421752684002122093982857432901207332924656719753629787733520422003915381695324410339935256495103683306468570316377890246742440809482317883461384303358762423476194980092373171324851670709177559096208581890322178251626087874031783439646847358780538568813513248582931625349673468193082574567793351699488212069359320578030388394538113081058185156255912199675858697535723547936340597455224642124409112193543381633293478301501693244115943334762533773546585856938273234002797974330315416863084697575751595625530986029087148954677016291315496297206424044928234912762330244157835756861236612617343733826977314918187595192012102295169924366733865952154115776068108762633092421568797545989023468564987942464372499918190880392177166351450591203357153331529599415700683026299489334741873937147282812629480908408311775295459069252419236370348535633594957327105944085775948513476251727075281293301288572501259017437709959590525001237600817409831354189239950907269881636127381091157066453234100097119395376301554368451354394428858047642876477618146618945498114263915142782426505009256056311729807327152593311850491029171280410466704212655698790031080282812475386163107386707116905348751792920565959542029652050536512818961942795676040992515454454334579220257231326135915952008869172630980925602743564273653529161952524774790604959416199815030901357490190534937766526522375180676248185355416042908403211940835960278080146688978155007320635861477140662337513449828665355714807125227664555410118869170421126859037241833219530160019192223590165299123915549318173795948355687263875057682579464736454475646846862618953926771107290695435463335707916804324268150045676337014822088722961061080422080509935029489748945663277490499139718961500200372608262108418969284863175391096843360707280090750318733699311799105364169480860890802780490368384711380130029103224065801875525133420425942542845511425598858594319060604788529321086396577128143293393350199650512300664009100786529690324795037010528495777592777150863274945052455984604320124903120915253309280437071330414905925164661923009629267844078920407517655293898225542654960235223924269951491066710884963792449220511935061929558041183437246302234669004327786665534261189997037722336523642044636610664522543173611682673938955094279876355147336872635706164931890021412699974892466885519102914288883296868771787263524106609204689843966099519353460044626370915751251184392813065613630615105150559702713880750969847952308469487436512439873299093233922954594479217148708451919898240211888982317109121083674672350484837725135058218589018955244809018415924157567457363317313214766347957012244735009176848452198035338239596577188053927571060453961954025040320142937568411278246723748420751195452426024527852323753199366082008852430955812230728387402195237356889310957194605984828983527613176141574022877554321577214215393569820531520204529801415603070644980980818539449385313108173782087549438396890077133109738094780424948457577490726655040389928951512386258131838054881694832422171192184065819635858787983143449172786053558866992852135495712475707984064866048909348076452739209568201631046011051412514062545939199399645611874093452001212636916562546458025448708971198316383290580246053515226146822389634985441496911101664135179977409386143712895485437236200260936695750210640018957398683554050764966699249988209211685523869545755863596201404891288844145757262677867517195395906532712991798994536159634070693945705897058087168473531459354729742970998356710658809548911621589317909530517564607730433383793725577020043164740966398930793520634745879102764164827411668479895434623333711319687437354473621998205926848900611282188731879378311326179268287330591227490938292160606058482041360193661058227215388303152974339256400098520305511259584516819697522943892583658262558931868721275387720809240576601202553239853091973045507868985468748692088061823456265913839753762995152958749320291210532883582822357772096133921916884522600426502139016377958170147615870134119266098128620541864565376284359276315112336195737587869584132320114841254490230022136487166530036939903888660995259337355689903001788333202744434069188194688052577173308827515892479760054404169792133346783757614113808637899802462296231375800182699900970517683226937108039535683242994980955700558267576785958398170004278604854199674015259721922233235638784429037330433991757497238266689310371317320119621802197919100294879140548549734254146618828154743071976754588204411562459784540130712009592407348123220699368339398706019578956691480656547760290271803765711641678154876690722237365155681677964043066155839069777144132999971232776019887551819287687155893280772790019803748922696082184602488616373500556615997491976362827934279778505672075468893292931180357054800029495303233429963580938189397173106824745897261755691043621573261703852505065547043173636632607548394963001067681894248965523910565091673131701666316615857628771092799829800746905892272581433252403891511789976531723377877448915176557139951293529603868142072084530379487239028748010220381699916538507662681006529943369785856539725909099210679329081271882743044883420205510906183370685604247874509623282655374473343891167418798325624203424629272631138886350491615798043189492884151777199723000850928532558191478957390502119656177896573699554627900768326099508311901652771122601354337769318635093461978565708228625087021155278804146374457348842476275920029570190598685242746776009792510281640637734754463395137551461092741903718041571958084114373525195363129493228016501129992270166309994137060611990866100649231595694304231314684559153762350046969808237682408452590033021889570841409704665013612102882835078952522452681287261174181333988904285104634118489931322007260103892238055719083873397440369449049971475959750548339590296691596200239720264366496910576790889527129137789669572732063097546579433961540165365359259159970764542025646068038231735778089274411396229911401804005036046125011837884393622456935964815719423751647220329830981967875641140339014584744592469247490159946021129493948443495509494600916891761469987107871014590572374718025530027740090908555645909082620124237751598834756136184915236237863154653216693806442208675440085775986972816481212511500438550645992001067449731681926476230150933747791881520811591200608971152899179068142072698007933007890252875700789009026621982687514731439348060857043682015927587632611389297750562215301626608892121517975451613613830121014320370662333782052269063234913057497122491121402311795021830034856518769655766900118424955836961180719462960520388267517709730541964507024687924447899516795117799011908640671485079188100627336222093897937404164572741727282928548537924268922406863361610147528682090289885932910596060528871711345558254838879763635091703546692108869389123077522309304312905213546589055339782168529902335435527133096056347360320592101466947193943035821128102508239385485385944901910682552187585636964543807372150963263982605325382597457489489573133496484519946788722555124870551996279532286291748267189934637476188813484517464943010237755592961936162454467406110635317454192695199341885392587130285454459800813231412560456778048275637600328963107100930966130040940578740873852033163835073233506940134685750704703352215227179464062565405241137591115015156045719349971591392299333728171636703419656062717341407468000768980754166265329997656707596940136453917516270667061724202287263015942075792686909122824484263201156220330526064671835921496621833978053388749616138752958302112588646136588605200183912357357317269320011738718936796638325876382105159724210109799807230871218134729250446893018149875848993833715003589821707469734713991094589793924385352169285323425531867743760211839856765484296091102404519431981898810172248581591447260767351103294390407691978551233530548520232460062023928312285144431327699469779186170719247457777233821062507771494454593312033308622780320669159014908568636320450257053881792924332532046949736212389255237867586168104070735491801383514738894625049340675623404999754055803677829796493362355098471841269075940995422573830894502890677826738435330207392862689546171553101952742157827018114223280126027737313825467416565145930846734585339364837753227148052250487289649522224435274080916576532514178974212550939498267993078417094484908137148158604903677036520549546291172682833110309604149154731281656042605061123100008471572209447093612475715069342299791262835042840868661822618259055966555248665907040541083109594009091550407797594737735380136206604764834987945439378648482574484855795587736911974789387765486113676535313161444085761639289145996314066933678129349181593957092086143910000693970898813347222889969381146732109079179355266242001182334043888015792592326127167306254632578416407510171260771019589930412705180567135947112318685365092805826133398717649638449670098262259864927046267532409945416926843289207865700426132768902978433247179068835755122566813602724716504118477884548312033517303866277711049472605033545309793805505470890036821591921212140647952846772816203760495692600813998636715193623644273673047461103202173127120492634180913702707221150484034306565489052315149837279808010408297441559096759155798047410633762948853929141123483174616526589466621855694743509227978213447150213763193541398290078053721708087577312414857076141778679579676532652071832464110554494784223015443036833478539529912657487789341719966765310573631724479813403103900297530263554456011507432871440598414385949834935781067005379867686645554807138645285589108379227313165010663840924067542603222060397655932341382622171809831330124280063338140514903997191118833617699959133886095607617772204012768086293211235887714998172525748408136322881250609691817906556851216604243983891734209838824633612328926105817485846645170966418409790174864484347031294491138023906275654381184756829493206295868380541459004569161540657489416509026606637765014047783633847791437108199167219699944942070860910728850468661945256387693736187404170179826422865333574536960199582900047231012743813876832564295966663393659205422114341408967215631320072241643066976193902122299908903928119033494502579040590135887048076260962070229594750152622812326298469013675515547581934886062047432236253548629094240761678656158581109960243696689868159235248885637780454715608202012970131777773221507859507309955501206069707634183933476077906277412433753557058295472678412278749712538838280523609642449926353616531076671087884134091853236687911296490202425557914468690038146266367829608011018231327058904383114286945358201090980689995071210794987837476649883710156746022665402567564687063938032192650834240328209470254888139331725021717634027049285781147404148633396089658540964157152394714269399182353589922526799682613009310511746718087645969612595060526366480649663302682845208658563167212205941005302910086223546849979091109850699049551429013217909994972944768540116209182452827139875902251732355765575680896478425904917836505171016268094465901610542249796865858059504976276171537629911953676282240170147863377482694245432916839564403259815655066315993589414701495297217265255015940427364352272631699669488038124168097294748604088062341472328209230748577886323317132052673745852038046040962330210224950099740796508091593973772921490644289316447406503639684407985591310139382038420082267921702538515469392845242595409792761619100265686561709373445669672965443378511916272684835906348499784277687305568172564781491683912377298335870692708290305470361494432647082071396476269810558027205453296843612972015018885155908312390691945882279556300822884170412709294549756744357454071318703356630662723130157379249916979753629853836294773123891585419670556855685216266921847810257719033385415480997157729142849373426541882980892162388909317397320877949892893754359271119077028566956630669773015246349661027283968768831159563422340001994734630267701897268086766817712826704893709070001659423349447365668671666295271431050912200168283961587498901006631311773209675775041892953783747551380201722701612613597604845119862204718896200214542777273745753212538796708281620189594044681538935727717452700346223715761048083103361421422274819641807639558018850720691891291966668385782602798121774151410551086323730219333774685235539055431969844468505007945042436331654194400683317488785672565443968781848388502199886410384927355122375618009877940303637719464046383005627474682445953556248361505587891488084440285990153644971546273550089103441617022049402385443610800413010949421813680550532975686452144831104718116360491616024408255519961500063593862466424710007334900587173551617637054000438122565157792106806054120388507581951583921141380724619466929588883499167650563512552331210553701616163901399978997272680636516830162153763820857662698266454303496875528745770556777495035904646596016346571570578659162450584241124433011216726227470243860165142944126386601706646944902599975419544330705680917927590172621441204232718861770797592753742476285062112561332573442794657621901869390245029837717164057646601326421582201291181445765561319117072846684193369941054753106967349867766206543443548555642837733334696330480046942134057968250104603761965268833408051830679807737375744750280166882705620676473600196396378071116375309478036618792359446044197962215482035422583856457546509441939526474879726663012920245956149946994943476336574836075677085712033315434950567114996665255847150885493103461769155318518044988530611786969659515457229273508132184040915713865378546676297209556985858052717593031715821317574442811645413536624627810747545486455979030111088040536742657661135185648800879922117385138276593986536012785789332781452486631431469673318182741107784756517675120448841034699262288210198072623990964558830436523584409759783288175406292596552564885398957638630043206385031348520580037452002932572729279371714171361720462068110387867916060988531150880812584025280968669253623673665549648635230014173546166977782401136273001301101126822743706548596359456383711085116877619561383958925885604184952052738834557387872080509006637877117436689213253019497164090411628639852357985524693784016323592918510149877294584804021200980571886553030474722447838679524508857516172747231741008470389280565694064745087768153912295693400578405611596382880313704359605549689377437433330337236353347087870561588340771289297986842084221470493165835847448008451793891590570542712202325556861072168557478242766402904185596277972330954417741321884773857755364494360644280657532425041165546139046102926237538898505259570647665294962896869298261157487068937028943552745051686561629617080624454063118866670101429703443529688576373047276574750314858273285243033180266529141652542844122734428341493947965474230687758606727466995828118999611738066089449295192593872615563628099557524409197453141848575307124367865001317687216012913668905431521647091479685765397384797971406247682377129411262765321984013166297447768372490202312080678538167549026770792614879882809741000625402851725477377142839937815012638935753083626836329031339487395417639245612301479524122788783598502662784269838729321163785646650964308377640468455517689710258075938702014117813911917616845771482184023671156862827552632485809141835934927412559462118113833215488429572799593065011409309960976789390203132452748825927791398479239203043387081894650956369679639140928239140202122421640167982773910936818282228276470950249180874896566186962525386815375332672652908459820157456493351334436443029050395473542537439251030479678498976842340247724586422220941253920290843761325036430134662046404544514135779674488885088871544178611407975124922873872118891332812840534884894238884814623918830108456631755474198590973087278007633320922102328652558464218793355724025392594778393782193909690515048399900310125677633263511263641576135533358705580370660062467792662246230041190114427886900383104339919255927704033765909723801686608265250658995947471059768003033155933034944064601976485176838485643624197597976482722909557117694521984722333139459190949797681561974920108590664832722292399994688184704719138810469300628162015452353737229977272523024746704707422449269829834694785010288528826648093779875696375986423233392505408142314560072112544318052488304934476916246564014256714856239720535027100610720580222103455086070640317489643239105864639727099029994756545242174554743143915313992601592546734382758620199435398567249799717237842676443679681509497644041476287296223352349377726487387070817762832944954988783022549644618208937805158228381336054425580383995512001992997114726070214137004736582909669922303785941866397600076190218116449459291298304291995222336678480891180531478548708477081855810296352156006493521944035653574181333774657874295667092209146847965261006372102194585992013493442427132742920856684290905559432058082715743337346274449200438813413567754220941480072853550366812440560389448724418084337600710407183277249391661357252187867337327664109734349055788743667224537656330314563097567588330458332798963503766469225817386184734298108481345324424889595458506234998987010730892340976788641181212903547032578895732043341934739034628152204979725430570794309435347007240766333187206036338192908866990711024540415522182186919075882834550250632490053071271408884006020602326613128691414664167207027030551970339278118364725610683817744708082483718936878109916596633431581677528954493516055491439257641878167360366351289741375196252518409256004400725012785006981235740314259549321789978384263740032072282447442852842788631283108717244669731789663722837598661892152602913269969931119815628220172611610730396060016496902112980193797354165977372428675831278350681121706670060592178274854290671737693999013327303898893814568544439356401026528640083787812941378915083764221261984138660880983129788808897752404413152828527529726395560034416977849747533346680186787107739713794678793357836140071133405539736094924594760837412154869527743708908344321887990828340459459263515643748219677749586084388637695939283995963093077955134983476261778597547423283261587048277688348715572309463609284074058015783871239486152058142529891314911896480874214593106283523900978551860116626158638773303246677797891787353686341492630274605297384243808921234456918249434790674951893285462391710812028730818943263897537659245836756182940378279733194967487581218892455037158596000147251490968117343213184931924945040176594492216406776898933311860208690453461308661322685741178487313751277664043299805334586322736301991444252364878776530697170509409865814703709974391569073175659455228937349049768460109550606567226542803965701404814092508488478704758932850030299594715156901542526485589667387579162395388418044127650860494630677895233496558212774481099260621584894908083253066107594876052080513680278800052371054998409913748446521215012165620296467562301829599562953214238676683177575781530108338541831946097919366253392716397819715975777222907381222251339706295514216204961440033771142451819087627376827964774094966807788067888596279525161234885646229465935096661288165644372754490467828688103270731754403520757155381391049591510069493885117751047802196994002932683866576258122586628575993376214457731831680847160851245205979028688590212469452025295597946213158766071393899479166785619399399017271311488988841272088800818769805837180499536463806260251726140909346330745615889182622957647257722255804525949104780651769689484191103724223678413092990743577892394020152786280207517990158680170879867612318113834657568196297940590134821822880583341502181372508143160601801349042576448894440387719549116875022931992939633383670071230154432769857529764583790254914377272102649670430835607660065393475295189738753688636212390405463859444275345672263303480313431182900996461458374593416461117407103319688519789781366088745989512757019407104912908508974916448729415810703221350940932067733733890308861438735211777039097425058410073836735373900864964329504581814386115657016322612991120254231635848573233304529296113032127667196067649493711447184977098401525238367199101984302414239840692262246907451630296850434908783121191617698864053145007301216666412720949267323128970126718971457125483162806457727218457221243504718588701408461278304338178632559316020050560010142009502012807047556038904067547087373061685039491075874098643045735838293103751590889958965049977105989282498484300104274577770945175355185006572144196358891825970433469220406390428381400903945045916393431133803859861395516088521748791265724961893773337209232579376567705203526393441023802167198747373708471325396250372389268614162384013334256493030864316740662771574764058191162952737318445903142168228886239907167250452922307521080239878373903847986149560965579678666403328671719384034499309721861085367205342174392340523021665753696686391133086797384507985646752166170249980060025694943033747485363987027642827317418446165754064322555858933216999155092416129783180353136631390813591766904031927590960899622513962969022864157809440377342071723487215821129918328824808925232058921086721687419528517372366919962414840016278396390020360132882643176003464500039942405418932131530508720179482056443586835462399345274495633918897998201967295605900221839668278180045045127001219402450430344032674027866461647636793563965446854050333504767489472599606975594211973016507833942808818169699130852259505884626987153606262772002950426805918024240244921771447813047558041312728046720865373433908212959990406849973594495508474173524727517135780176376587292740841573255310289339497051211871101898663894813697511610041582719452125616790554698265145707214236600153329529772092112642484255246892192017141782257226690647969725832595361085221387619589590415744643594477997675415263193138156749964183525534882049849047898282321257573199966150453279149047191706501098382063821877205047109994054136331813298216808627294829834475806179019933906546397944054269612319371108210751683822082361310752573171951766651021385591369680828093762928940468876544033128309396956166303849972377912095538897885074104975237264668589562888312609625265999447328643476851974537054950466234835001570873803756533292581004552523149744759000445129754809059856769667576461829904055179173917963929518413820754441606921554963859492083156525407511715487850123119563267024885547284263099821129660498307422553352607127923151165669555151060996845779337993897843611280474780527467883915503713303214294440728044984643562274786178225443301094651608794333092485562228227106558226282194581500182353775855017811985110066249075288408809525284925356207509938203399304324627331260645190334052668310949770860267608723014101131991083068978012599766685209179563600260276696651287413357586003739201986855320742605494438215381545654159030674464435728737706125892670443285983997738567060366917563516469398463315797695020498368148772063188545810277544607855745948695840672318585323610921890691178489738629211775076947682944308469653558300344906727091154448054489935506089752130378850663034557417764740198313993590638920834983617145273496226680235264548898042080200072291095286149479949810893747677693977959451635466386383043404039156779105634436400424661033724434272591278350951512680754878560480972615962628373137912991857234171056995485935217149673336497389478410546332492355572341433200622006037440744488579597267739127239312265091213684866800755052164325143389383510571347561653654053434018954311882407916312199026084719086232424536023185378009196021857953801779874517770360054779824134431750061610345476755658991322414028470741601105732265401478189479704323756142596214018797218425173038611720298873545384680806889183442403993980540895045513020301056669647098180534195658047042367914263493546091677682701479913024757136970394548613867875501735476082973228436793613204440847293182698423541680331920795740211608176199008690304384711487462893132059564984553361426787482750275745567606890724522950058096592983245162337509053711019291034544106884302519930438254904721516057872970559023187447357898371057943349438225734251410112293366852755852576915398134308409196282598682149983909588316836826920710660537209601441482187510886414578846110794802996194695934841050291215613288724945939749117240374152593994202404419800311346608652246694515107602983597889181298070800014849054389170737707633979425624244105967878582366836785878386979216868591202657115068285633605198943858041715598744959864142261805996144152017164547368543594791624626797751874019989919887022025800481746702857322929571920713132195431891192022050164619022309962172719375801344223798540433192795849056812862032981068274545671177396029917582817417887847760434081495867759973361809487902427977045254465761285352304684247160360632464630534243977079409756877050724094811064939341180383562551896199145682567661299420957213660790375271620766609866465728672196452576209926485739628323044963833488427886736126382272590955805997790112075286557169941411141030681058959491640381406391717617623207597934902136631822456719781679097674834226991068409298008666523213381396358035254088991311883679604055342903041513760188729301148383010620559779848525252904227470191404156260451598322732646242368273153946420573750448169833875618542244509007495214634514006725946057504895964160927665928997501346266424991720906217416091435726351344398730413819762554022262875050704607709518820895615398116239896000774752699365433809692633830576318099792236864413307568395944990738648919182744771213807917502636194643573084763961176078824747268650321497883885088900629828210928723395237213861824641639129108983665689973163592533270829910100391628976302380835371889075137199029865152211593726254482947674489222746092991873295983037327279537153439468518671771128986421609967742853995433698714193853325104072911841181261172993517224995990739088171372433589727294645072420925117881504359924563097805122318950448934925161254757949689882923349058768504570424985429415508890279031027233053712848725467923359746649054044334726117814655595727428167419125066957447047491121250598406298722116515192289990319720557747212724283872454205112571835709043684672009784921941058372270093541684969496392169209077997753415944830335095969177975081983773313817966793327143768396719503742990675616060733316402528512678123025696489825109260138192640093593924749016447566652302680674357262238170778482761000099179637069480604974433253342501713131215047899548486799344989643990703142478856612657072317922138052744620544051566605366551948240475833206945425073455810935339621943519061904004658798942515446622709459047814232449633133042655972543903760895045088100307576919882025729502268627954132288197047833217951882631240837188501401316545982984962257081713226989288711402853009702786240478731607760199302818108327420259479010973450727068869020732316510428233259440490148409671026144319693772317368877826192199837992525283570433470635005559978407950354329776036696258308846238233624717485616080704371619044167223979273607152121764140212876444137702263105280183471187477361361912599019432278788550691749154370816079624812100681326184604303761897209998291721371349300022046832264152446459754517981304783038286615429863915705176528907225402123979605437647390305577759064383428757802937935761596037693721312895814678225644503642666365571583135800043282494780156244869541599280803577133219061667228589775429397132667197477157209411117930587036919323366732504227245209868273188779631268975511552126344937704788968055450484628640617950169007759341384909492549483238501035177588754372938985020175725683986121859115444825155350479032845585916992955555795061879947885966435476795914236541580913147460595903504606014919294212013138036789350727534567456052431687898422802369983719362344686222630574315409101111971163267069504605995324881057129026398862832232445059954290603249145623402878699380693451362106181588637659609251727924048964532100761527598533387146841403771201478430292186461796841249925923939569760032399065704752181259927282610393414689137897671143941628588919005231241588415852054008249900911630507077899272039613255010769408158197665142342471913914675157282734772143123057493467320220913382362622519773824700479980628232543002875844067437062644783939271673603078433294385740530778179180719031684544639509569428813868752558233565069725085726208353262291813749392894865509712026846474154701967997042817761521775108364316292039514448089847961585407378808790868677174900808147954793663562791210656511897163162607700182182288723541397427286983417000369809622968173051877439919395380532866584394140341293037185877188137072879767813104268493705031624473172956102601916774385949723728797914776974237112953527682230890373676862448948176207381486865055099646122046824293807256695144082724340026138345161007468434887098895503397519178492978571524146425083558570172934689735030956179668270225085484005085358020771228129159970823887630364530291800466203865659717229495295734647640902782944308212379650755055446292345897312444953895491871666222772510805256870033311610633949158137358764200241015696109914207413300888135265628236195984739614595079300177858944233738910345531442164553005498823431370568439610770108198345763693889703229262815783441372114258451241200043097488687767609053605889247831588951617852553034998601487592102334712998573657533060707016838254591656592602436659949314668277706054408823513362065369509186627197378451931779744454968634513927628780389837579031080404542096992489387403764060708226991589867588182427476645249988946261338354894990933986393744317852772863370099378283611268340627351923337811641632240988482323565709190955548848149077475011500873658423590458280465638830125384011991980834281347639445069913278057003724068236969147282946861509502565517703101837874231683130080284961380842310583572812986690062306395942649654717101477599426410268689239640197066994202137448269418717906551696061679406404332494827661386186880436332879973906313724369822455910528113794595382356403119824665045096057786062187127331199198550462744805366966629064332283205101670594782707937487727848791004054599671080955918312300149666267802410509671668787456646798097943496220225867185981257101517354801080729371872298184317214508980277429581070845434698416900715683994478288682332702566891859082245776091657892695741829996084178716749767585427061660240012482035889362449970550018421631105050088674012826201161930671122371499592313995914331157604457176200800972282958679058868112634799087607305938454389690870479643569246300130315787630192002785756552812380615314642100055404627628740202870995755499703074370911674785679711416507369766209456543274331999543234520467461192408143539659792224248468046623998189731191969010270277729535537945150684787843675888176800034933671430889627874816073304300390108838756626412979410523325307843485152217036956078898412073835502962363667988402230900455981008750590204608367704725731999625802218591997556694728928078229162898502798783654615107980849372502608103467078520664590526969303340249731230046106145106641624213203207608427832499735436668777448337486605610019973946002934707953426599898113521581102228018502398605685799728789440039481718236489007336394517167508190103020774194973310935667823784140350423513806594445324687375522950150531882094807273586118817367930623356930571766831102418735692389979710275416919035295400428261592747463283392853159975210852789297313538357618452920440597890303692727483842599956975400322224670259593228794525375558045504813505398931010397677197047399699494909197717259427824540024883796808748552005136222997171617816589618620010793100378645401389648718288769178743828972032230035249037624626001740591437779838544161539540050538158474402710685662336385317855748729881807005357573553812222118043763024297805485933864866573645142936074713549543015761923046195101538825851665875825363542862155988009930930765432661042977177924797387108086138345816169868649133004200105656444705510673568167681865986866129990832958570691211271701727710692962269299505246516307324606069173195806362893301622836437918319463158820599505276907451945391059356897621126766240282112144360735024981943483654544598849525191182139309786603672875063940697870768307316320546334574781739740886995161028927687703051696459880746231757715492335891615617329669049923596571561272483039716811983668355737972259604296492007227598907786631468950180295656160780531766945244361424104729597684694069867614401735048108639376617628820491565870276750199965838917471914263394108324555435020039763792307197381362019482256076623127148362962918650650818122253371668365486679392812783631971188442066080092440723926035503169160756437153610774571235089708248376325150267486016621644716591013414689795534993571464289447035494820711967607922782638884654761563417783266175333046721417784856167033009323094907522127094885548569246911114206444762865613607109636032835341105222811528818454324545826641771655631765632564688643254111682979917067800238130698314474349115173642538405670012034000780572104163570360869146338552960650115171984946735836518620728960977115362224975856262660598272922333495678415363917566503754032322781989900084010890368528515582395278439406299728306236380330305153268437594271575903609378249379880513148245703736676595501312064066146608148171584411198380448010781269941884334352631007568199835041444852893368014738906965015376454745270850719652697595317026162440752312253154608672544708108119237339116092200672546795159317378001860969798833224009911582067991589770562363759212536159010568644403916819516197393423013657454702136087359019212014599536735999624973458311695222801883679619424988195035488652848121559974890206662832698313543544485645368421687753184573628889514625357510548436096292729099801575097690330366900413079017511442509542393403655359588307824483400729863941542505270841783368683143619818470460563396939125081862580560793825927968395896833560374259310146787709163921399372202002002456917921287369963728124738563016101265467260899015747604824962117518738929831569470557257908152121638776221129200797777042096280845917336935158748545843770282460336147081800035939231219783161875480532764776328910062523212794446944519760540604074164182266896452310257255633806445416913447246728529789680855886051373336273690255094810455213285055215280812602206675161291408464933215799622217714415252685182196777279058189208735985865432574065248056397160833918020015058159955930345142840808690718210011085748023965308164643365466619373339259649228714323236654930862529638541702328561402484018786977909597620594403412777640835842095358898336119394659583311932958954342592449302601694785054478719440695388634564491135090855494647304553756530665846389191279092084627509527684650109423806418911675710725683036847504404601734447054573907033336044948264022360688721890773268100811124561266571057164924791219508123255432936648347759160021258038143634993342909926645175864463690894922976678666950008635119690659656523032887216653900895887421739889101626688659967714324595281411156233859563805946845680715429471997797570965614223551123999697363580741981881544805697066149516957963225531468672825736730296214081592881513924581391936499228837597494518101383900035697011407570617546637693332669819328422466667286788818010367890622620414692730982161844880934613021710900246247408107288003228075294533102037987006800672979827310718824950399953045562250339558280962810876783768473835172636376081426522137551852862327679069346020877835319927267943677284241247137716652253020974609743807043378673880076543156067615134568093925771491789213377672172158308280037019048374095129007794029543644389805149696617079639086200714221366523752758087157602419916910928058388694328510283849555059264151281517410406065411724786540604539546213705329702118086849381376375856018453860266270104883696752801105606839121042565424744188140370264160017594149067990574806194575283361816921367698557659407486334686206349734708101482648341962044783959294056728753973901705064410693180572907907458524127568764238513422361589212721375897108528123065079581225733128408976879831259099143218811028092434760117548093970595236625075449943014823205117616352335092056559123580288273354634016312698765166071560323971369796510662458771714166688104057750718285550793990479802400753243426230416477716413555529419370336001311996904262278209989433133442958651604253769937505385344716703539200658537473302146212723654040977448440875268519497406926772500172734892674967656567248821417414277208978368194132156932847311425701419700259857707247105481803154359925609788382539755466781067458293003917502410136086063788094637000142547992935909642464296988793409281943669711685723324839729188093473002071247312819804353722762054688378940943728007354876134007173918014551861219084868892022024554774078917396177411274624320371289073692636715071040159990045524727037774755665535949078075861729236394075535143567177923188300326242950760046365751281124177369248937463888580283315863242753584768582161535213316970831837559754729230443751404355133175031574255106372938591719470136984117695900429496971181908300058929713623941698786330333925990191896739248748404482431839005528467449312076810886030057690600102972084842565426598265775714559555055575081230131890439908264254314761908345989239158133654307132599783715717434683588375177651132930243392388594618545545146605741565241243546592302223728332940957838431825813403264577783581379531245132564560059768389322291849439985272321950201806041041791614685290625092298512252211890383634116524002947060369284760067187752572171506473544026933145719116228122614368995680511121338863062365106104123347094396500902621831075570215111956923343230415842313994665067630164653577381053237154217335361277806300308954562917332747171615122304715042975915187662473027813110198943172995788187632595489631855087207518533255065639896672311220658130512463223007606584631928093036607275859041848909774740336137471998894500671964607276140093785969082734989351315422545453960793460918088437782691321639515269681542062604815825449893324176162377954484661322976243890921049685357604251834569379567957188864834875874406342501255233063767633425258524776303483600117031274150354031835537137678214786959340673324888695914021276569942705218940027273788918991085043074952183931214279082603603660566303805767387983578709880546412358184720413654599494377097561863243563862061184216789225535744921606158808637643165886033243996243267575863478397635040535798708515186220466001799652481107496535858320686402596069455691221453723353134151194593864676413834281654345613851385655661890001152562975063752975976897595695993885707250062595748292018556570355036380719950935693591010049986539470774587407596159510946080684440335692381033967943641794535230928715238689451694474490904340444350873124851896176066718054055644296154027907548966818719244119255035877204419270810032559674274691057330568612655281186142654611766454826064876158856398152723742982576559345447959693803870875649114166481018504715815808405740356736058953119460860978925038871359247723107738192051726800464911256514681455627603199492431097850956976503065234160526361990889541158922359222885484889450138799563123428084222980377133216652064364913579876840882277342548170780067982033064679036553989670522731212020844273912202722653748400110166116217384128033919564725129373096360672750709718716095648487079445513654010423808388963091329286397861858506999961990187551509421557452949419309533512069768060522619558059171636903052302213822223008472747815705111704689702175425670236110810655230314405734054418716003020560762699269077237079293102065830804164513888574347037433989027750386215435207441160605331419370997959074323546077179813344374648225529875776248653209542272105757042406542355386554185831968799067385997516265687307223059371804965715481244291045722525136533370344804547172351141285553923734306951628969516005662378595907681612923422447780243876646642232310376947025286748956403386699312230468901660522095565486153337566858097753906627702501400481716069225858062808925284682356515124133081256688993193652913991594217386982650769245302124160129378709704447986594916537637714465055979035913493022031309607955401379034842804111276138340420184785330566937696227003115751685364159075297936299712193376285830255554268327040890360030699734685077351310963729896571875654939229212973147786104612126591180029309312037415674974023515942425575144356753713578563164856188185927204508395167887230212688388265312647973091618336019016196263183971619178275774602108739112646514843934856457388978942200099146915771859666200830623366312328880711520982694294171230388391090451411804309554598835338895878100850637009098275214699416677312282511295346683709164015925134632326680698243018874179092810311919106756792847618940717614772201405896498954998412026431251902297056473280315829025077013976443846101690147704047677855606945551204231329929511038316157674377925777188571758892054362295124692717023991670992648197115741953125286310772616737352743598685949405625636951528260924300051761681759585530117711764064073107222378640892764437042380322087734785175048208341182098966925939731592699520538703893289175282736879001207540181548055757351233251625000648537666166012268200813923236135125445922358232801972943758457927538970878675001860569570365560752486395429148180560627035196527028837404850557405023470515918434883351955107370892716667368573111348142592805997434125971709003253928368733766707668224853860279828426309274314774691113291042251059872231644289783583697805594739097447692420211459223503032394808450804136042181995585603740757536835852118612535555295995190129595723428291922729563201286226535216115386455467831965569824855340419747523978069185863482794890807916305975058785585622879778751966657546017096567624383951518102111127198942188242768146845943733174885345715479050287086474944183616819943903436972571925011773719710752639435272674439603119538003982227652103729233850091115906583363736560126602005793722142595655482009942970210605931959070012198799060118690220071773534517022331466750351694156645535212157395041148658360960054288120369666517788039374996776628731815373320946043167368943550713683374970574897761922484523317495714517904617855339511187279231329232246239210842091659588825081809256081620614441493262478814214568250458321533378838614268557762353185244583890052020020803698546554812680991077706839553118968112960686409588944761508475137016156174924992076489026549251250485998911636293791304826801661663919380054224327214145203137159376948834695300458400711592132534767320239355871451688505426750019477532282804070635869333831252272908665232374360993799947872651890283787684725707861832771233476720637513183700439108909910227512616351378950267941025687684892723663422356814804122690231155524213581802263935002020518789686314374280735173648548191225135916678801111308083138920335076579503095874469233270749854806329502924098883407320607211887026666747108158359174449590522248910323870759871499974228195083768812731786912303447045804556639103926734510724963043890215424444089817830664013440308802550357299190210082988548556280474071380828567903103892755159409041690261639509998118064866865818942365652666308277200780160337615716988426269867871347196519309242520499092175552726630393273365361026141399844268780285793011047312464061078327029741759671052777341129594715088646922606502553846855052796312193232828200390291607139024882656078076588132440455026662513512803143595539758026305155186617282766648625395763805880192242047468915960651534698965405695954824770221629540289493081230792187686577164181514952686618437334964010016892776591275067727174267657066015213629935701109694115172260241009440367626725315556567836430343835474527716086201599098992478196028815159437155319568147837707313872819043568245369813363671966213208232936118883343383758871704246102775456855149704205707543396823334269664680334403290929031825252762592030845420831380493718045796174312616089424737160038181108370463514523872074101381797313054965360883166670197516783895102766245180323839745682426753559946022533249837252741503613715178920372147574018158941497757175038493791604126533158102989151597968687206469829397019811888710427965455511665952011256490645879870350865148440243178953938555388010858474533501833023574980861236459001801840242292325088673386852546194004739925628180032380384832064294815288249369655343097590173023165042210427283526515345062545394143081383200828345449716568462083285140470793635504611557711308449036450712004431598633501958968778037337752437198904486642279920513438494591012616134396190895374527327735594368545612164039657407765928826441690496138813193838458625307201508209525406950497591351624835723256696192063045627664353554138841671637673855775645817469096447111704911288031956759886794674300316135381256593521846631066779623635127285334088622274803274260484698511385225266924821092052438407074530437005331925764631685685346463678769357765384738450170369326770179227480044340788253180743653907108147422665676404751196275685566561271450524650146491370417342500780244180491324455565994250345457033349381301154518371181914467037048574221464583163492264102655625374797995856121264292418448850523587042462247661804860376667593002356783263137623210962550139146848852957470586113997961642794308741928240842443874582352577717040725960196925559850446774593682079897781281636160865613596709893763543508864904506293774165927033633473299602840103299164673949274297542317067221093780243155482244218952714275609789527712367293770821705468959909442419612523168733523816358066267716489443849367709479913442365729194843935427930196057245466375311819839351832867847476308555161939473589231278270555567806786173944225679556889720001857008252453741453844098665107364767584596772870779606803147064475376824920872058760313147034474764209633594510290034007134280756364214412813629828900469618150560315940238165963575797097443323729273243278605449307732284088462435531744153206235952537267624301173941651262701631801973737639173874137054035048652065186900268261258194222563673303289513306263754545779228795049716928217421100552971607136175429385674636986031179967774343283072944367112023172657256863258456905052419998839602123178537206610933029550417771700474753197681016674645373184816862687269654036266439670729015016787079067230978406113319943801961585289964859473518415456391461238252854768506186014879468045902154198072211475483662022388330526868378824181747085162054528148767061045738806222757532273901259862972624247550302214248317512175338560323865861835960946922272520620354958559607041180669568993666819781419204262467626650161451232065625610834907457561026282237771506343915715511187680913237041933081070882356925939002437012573196849804662859338125185917676714655151904572812108511738493631337228937228155244953548756664079580966650961393547271931143567669312504268124638904918417993786044186531721011129025598225394209843501877448949898311366221807233274550518427845713775381455364300305584969868292623785750783326680648849521706874365622285457311811268894814520180747094387260860844268649536474548943739519081517601054559908147732083623058347519126238820384690484362183417302767643108859804593664918791523148437775009175970759940968582049805999354981128771435149914639834457087474114484301690150088648936395740127802098661637630916318661103138612841734578189201548930167922440743235726551796667717005095232964952454496968068144399783518568471034772254529420956614607995407251427275986038971971700530109302541966606941044088539886259867097536040369854660446265414586041255547388807822505032622220874021047808813824946750609917857403642721790221585764551304527797207529254398107599054010326434540854824517994425679383045404554407746850482413347288313334425908318802481355836648165118500775152305660878747123075315592181547653925488865035269352740984935855460676350247250974976657381010090191752361456299608165415055392534206928710652216804935021965727037484694622443443885353813002449730690157717553933281685189984506628913864549353697976784370292889812268131285868195217867463897557308566927877155013280873892550299133504025870133791118883685149570621244397649394566146539825202159454879707032828145523009256181416633167896900495795694698821094260035262079763130755397756290987954562134979517678603919236921158053675849324798908425857530420709771807098261333752462898491052802026221964373528901166798864072151685153852721161004437725560643449207250456948282993435582779502807170746110720942008881478751913789759854803229461712550033467059230994148500648563955564497551402827667889347632732209807544805917366413875744587841735662703080850514462286918731439971599453222631557158950433525762663174770172625327398792828878923371700947173505524257269729298317994632045392643186001793208686746653953890488068813571886758561300903648705062663168239704309282945582504145694420719621350335458478144996340895154632352436178564583135225744132489113813266287142375138094723620358433867774549969085390015171881727732571448687991284595586385970036527529301073813007587002210191945731627345843236499175290337027613220413045523879188430247612837510144875989766777306319291221368967839920176006839810176252702698668567737461175951071471009448898703582663774235554257775921456204998256809359253513680427633665355318449708756775008024091573824414295875978024289605329315286287180960090535956902082550689609922759265365693590734732823998445378700805858483305956131607647346533187628946324669220747763954451267423750942596043982471496165376338211302418234363740520684247340056061007483669021843464916667653288309714587367648771759082137856354630036682384768270132053664479500073711724709138962012826467306141282669351155846793052696682220876842488616291730958406997604593479924968818179250753341050100213400543562135072479028513867765234080308222507015596190032387793885049188078291264198455417216650265443775409188805321349401444393956928173524059021872117394878516984601922467426360717355576030819956769026382091550280945189139238354047906875717828600925632711576241774028051876687553216098644079080070843226404627813948965946038981160046676932353189954187877124474169495768766878471560649881574850628676626538409108671667195986655175647351811644192144305196980550507804766378438037089759440113769862905448096635604252810606858734331575749348363784901077961799691928564185025459491511516854226454954428499018863955869099762537820050180066797911563678899343970576524959710081510179894587664919403087618092459591921773921767070020622037395156411472629701198951853800584940342979657236443800931924497557715882783468434128663752000586827906125476554247379758082513544832092013367260596785541825262939891213075147722231598799828389353824260922953519452314918210836294495428322912044535667696943744843710216699975551297428338427135389990317929247606077285473299802611011815123529772488253258317059668390156791810227775903359880983311233891855786721199199343195790336870486855267978371283915796718153715057791584969235713501262508632914814762360710312117289958069359924719309972947567339203936361296382174717125324326839041977028043559638942619659837777915521170971825788468628776792317327305720379369048653580709453333719544854132059122874683145653366450385864477350179871496895034046090893543329544495457516502212841677839240758820291037438582120763588301083885288914985248687651933437696439790163452903566914185570035328680241144973224768571704613778707876439635795005569944146681650238366550269985150704211811387244566676788721480357108303915798613999950666847993092142361036834065525900827389672273700815293654919270025223763961220965284361624583501690222553586231790573992922347966192804387026100990707644851553334579099112715289727415093937720286687674552175737710922063864818317790461896420389857195465830909091905870600809061957610433593219767091337346566882716092702792146248953434254966445636863208723470329512559769307403933078799442659774971849292422831191690920861636856796421960380230135585520699117564788110141196967949632225067426065065025080162013664073250522784439828161315250466533737924110192185590958027876621073425464715840380043889667195230815714592943254370762527801555730877101486671777274447080916624213482392476241787498429580916377796552997727981989679955081201622219583764849540411591898260602082326838532589172837382859767956580722347864565332383467010604893824669316084757911026092898757046414794606866406547258055999575950606196554448502488812983402458476965592465156462508680758320178078461731233399110280854932166475378248213538432510719417128083042420757610180051337537023792885216581236630092540502712132955760945077911154046870506293120473520276155538129024679792344215793586819625141337464791288385335830304397311034971334667222064818563781016573300476426872929161319741078258662512813190945160447298578616595330424429594045094631991455209760341939723507887999623618429263171280515212637055384488669397764649330957223279325008169499141649411086299599413429474395048610367654299037137167720804627325288853847457853006851457513782046287543823580514883516129676652289038966520582087882570166825102479980988101942683373776484814133680757901030047347973371769219711261778338195029903407431147502040134468166250236022039788557347379224497771196121451315341902496471841997418714935557975952098416016650913354139982079685808411288892822142113410072447879298878412445142813224610762867750562971141822683472502995933191185593086548945073005578961113537259930810880539021222778462230869324936268653255377369676079911495261208838547989629016521067406130280114344080758392112430603973118758910958167402480400316449753180030093989921273199973189776697425938148090459006269689819344248312011704780580315186343588936578476122182087723480474537530520947467160829354878043940749163543225961397520728461227625090531293876520053913097938588912876572290218558690220110346281569395597529366378362289882651393161688188466517894599419910591758783180019449076208509672536718693852304957941189266156289690641305873304167059992648137408957102297908661513912301505035793690092626089653428543241624957985033374057817831977917808221687866752902837145213348519483144665313122063687061002883663718055011913747274000306769289915726949016879999492575329577969437569796956459651541625392593823661466952533458959477772719196451841422584103005024768585118572615919703722482561705603618726752590159176172863204661091843127156147145937255282992658677208653797621411681723701254910913788111173630383649109673460277912891571400470411110523876975437514761310323407312337425386307895321607612689603538090925667472118143194113954988997520752402942784948304915384441748104694227228008338743095118670581525854090764135849516893254639259517074547685888504680372270948962873465239808203695286522525647658113186246601834217150517465792325118863343535945603291295271817754197732614104672734277244269562586189249828699936417439317366753367094066833364734189993187814611444905671713924799868719371345748189927676227469222278472278924686942897130529557979309533915795789162113431339227504398936342418571233015241658271934254470609077044725786585727683451690912353725852598565258051580592939146390229975669300971530714710147083384350066092460906802346005868147347396502923552883117461034748198709974602046622950764630173781815151578827129779052419175782267872013359991884514034178796089419454870310581368206846631753021023584251681492142466801865095977121711740687937500280098705509416407435543709426517630432517866824380939787050856899752049850114857885795079512066300607403900218509367105541179328629950477200032450430308413125085717170044870727046199264319245837952039864629371895435051804635421544215335489738997414021254822519796255313115305815467808297577114155451736531656260054527610877014107643129156820570356792767398056184668805585680192754619130652373295283861807604285218471691670264669997038809417829668965802784033655945624459023879195928537171290674142045972511711425735294655842842058722677338428280437587091631560713070785040373503791360088287048778058284896088765277485031597614203022240738942431650487384165082450669403791382886359604049273405818021824803251040283963618674631799371141163334698741030439064259468535065344787856566477781037262483457137758689539407300270076278469023914855300337947889939508482392870057124172216017708179805994666043434164500426444339746320621187136408894277845490757168945758878170384085485869641532084086016058571053271893968993024384605590453850195834446560257044599693199647993864853067659508031930591690014246432529419733978619825313983437731638359527929624248041507692468864419396742763649721458628028523450207365269688298438120489527427566174402577128405947863131956081945809884108042952887972441118589596323742638823348575673336743908760172994021536846582201746275613926794844517282179332145129522962098410571328965967483082890518575073142383830243495159754993955165568146792479962756999647567040744555026982051677733319042761400935566392733286593475122569740331681307950398944108025393246115186485650436731694538386869813852487514340030053877695561722964188755687110197089444753084153009048524014786726540197318933498127188089056683008636369541187836725601233552881889551764813693635859765617336580713462982453737591550867224633448109843342018075496139164283844036551250164151783861491503159666920832484684491783110142815406180389087369544379619412639372967767706235401325966270278323872432822174047632287659419340304706486495774321520670386368918279783407154176907478867994997985338222058257838473853693520081120405138451525674873042526204010370866937398720886049005033150278663346242145873833465693850383571070378296617663393529616465012592236265790106142479712433994992427615720557134920768621099984136853289297619988066998392036256100737332217052947831577762940920738911544805280282292281001805674491137064216957990870977235678446005002771887300241277822758112362591803962642953478775606849615800954682114753978536691220293654014037813165750023409562918284136930523815976179465203416480888678930519005421019153112819795998499985800299119286423051283441000423375837295249877492385775897068345292910004999736805311860430565774026005299158416352485971690339031342412461161533097858803630705820517982127394031820622345891242052338930031786186247984982438425361011316849511405926698229682930216705879738685298521162536576630521006125328574384607872156661350935129167162757672373908367037217247142642022000038242528967211691856221976001932830968098446612712387585871465115355438935866149618208803472765989808675861875454289532188771722046959150933440522399552152082504701329517223347370112467083829108767006334059987399893286931844247735782111728316988350025045635973031646268112350240708690608299134251650253521645516736271343024221407246616283094817466927941425127904898212702507204001668062380235840287431657072825740018022454004036710323877866386407140965841774823800210295621742619835894057554732816971126065749783882958899404736698685820846924893201312719599859691602742367288309365810847922977402505610313871813866042234662638448055854318008923751995717600932864206786539903965858678745342063832778146276876759764069445119660237031926377756948129980060704160345694621670658294466543944492921274780040648329756310815408587295980358535297639093605819348151465868632645640815752167362733237250493317421761247533517419632302625121333320639851513359348487245654376449038847817543779650689808273293488940201047886871543356259494183301122376366028599741401199075235612866983124179319413668871136852122242658766059713831877623088764519910266569236618152295241733202696587048883640382854853236426312833673629371004620129284000965209950785462142824304731735812950689953994116803349492684136565110788593640469091280991405651291746062334534309556594258521761174704385037867593989957555926267203629772352193745281381929096365928255304223167819829086858444132841102434510325065263174030502785992876997721022725173163617743774711192037689435288320924046800460417220869226845166799185184087443958205455948974679123052582204721199526795521555399250147027770677158109200726576069320845769822478693290205740725748018946090098279328857474816193231326616030634112419256660529565480340530816645982134411691087726254974755910274870930156273960836106469613833579778101906177207191277750881120220961851964721278426992806296183384811975742502165088211979508220332712230112761419144796392784653854739005899113488562222925190302850320311724578973029162755231683859115101926386590066778813466847288153417020526247725417918525721677307565380137277225270039637983568888374860055337269585395343518390016173641979033602017147706663294820366517839928799304698090712269282597073773445551643202295264794450112007448740695017377972245057518293826054637450399448343668679997089077781322815077862815864991394543720440290244951150256098531791904637998179215740697595707289187051842623229184799365371050956578744974389586406466496910004633553797833079715873182823873890460477515307101390532174005547449882398690222039949395660090013422351829416240264874531203197572011003309455756649290551823456732735565915101511210814590028313705146480102268847242993921569939827639884914896049418764875822473314689332644377888946816514230759533108799092454070907949257635779455144969386620801061156743963856917586599918240834018622616188746865794323841339859796092544268590504410008222603332107209989958904844660752957052570538810139370490989320468652493256015724176832025673313590438990087595210103937478951869010432394157178691009283269419097250696750621663494667581706703810402158850805009908490963176151178877084132965466365068991441829795889094048862985326872323332432868910577550100763495631621174304566413766744101751764430889117492657863354617963860963985329641651788124425421417725691261745371037709726401358847017814943598575183592367974895988330944439422501277493072164251811295208142357764224533138598702971734841376829279565493305296502343558828781559209554303389323464013111343194670492281049255298722493719600516149213762484339806973346954581469817165562258908015797147876378068897845311154796601526688192121988628772994495078232778636346135277599165154328501262318337981120159295930196724866231117250692330844871700980275685299802057742014389022922369640261238352758273265290234038581486193662116190428310923846661605479419852567557186356602716931448335969130767919064753806877073381209926592438769669483964245208210005362544510675667108215126753923078815244819237257811186728470135851986917804985430643297352089009537990608432836429088178637098156016312853236023342101113112803645634982058462392683763934018065506360898927506137269291473028932975353195388554208321765588624426907320666991393942189562744188303337630289819450571715698040996923286117988306463285802769464502437811246307980915425680092910551257412136724788215456433357651290070661660988833390661027449257621515777764599305057525209698822342568249950557431719477426753754610912310610624904480327607232178238595861922809681289919920731520470783927581749772780541379985862327418162324168231463458036275856949677051650846933920617271596882561256827776357686651773948763234917329235435641212933714260049926779763692138403802721725226446255914416410797247846061846899430086795474939332817715009046894925722723494375637238192931168659985101329845835347883603489326753741146450534588245604565216485297366716543462943387293217395140944749518083266114649600381841708422102415819976765291680881085046677810188739909354980930637999673367895560244230006207955332662625911760539663245370823963773950548133148490273411178915848531807136527635800174997738751448535933306938364817465669665047081569604748523143939866047029725275004531016331533525540907190318542570294809990215764825431108259124888179439711943480246105078441204355742398727625523736366961509017073964955791269869121877282543068393067090922229442100766596262423178963514990564935858382647366553253550755880693246809130322167157438281560037057534920641551306100469624370094746805265639064493113381209876476124263526577675781721018439396779040985937860379814962418361239197512477786303527680965026452829214157168252948282569323347984856907482690606673505741928239305964368814106804868839001337510833501038727952134421429202698063336436388891197952286674462004766703268573341956127144740907647459658308343808095703689529632210972997201258586134095166439038856890290099732307497639475737982311140705002037313002424639167380562869584913372660248838159530745118321865981201945820907778759827157528811012045885133094041824236310629204441612405054016098575927360168851274428049384924420705571838158515791690604849351302272683396046495351688889230352182108909811123686626905105754594862737912320252870116644996313855124207698693374198761464032283317088595555100139819229128046431829991724047998976388128125747549892160203101743078611247816259907010944961085312525080040203948771591444108674587042932454954335729400305994889488449158652825069551953010405100150103556092191758954426361576105677784479903674731579139487435485990419612831847532837390097552398796476939515903937484494346923506325133654610139837907862837337414654545752152268345834060770426218296097742484525649878173502118070120499865695997040513530747062221648751629161850044418352070349822995408573541067634063881354685906059193013037546872360066430704380813714845227119489156285033653523225013697034129795946499882827495813779064042029595949040365047774402492381905908745837751496501761719738813491238337377604129126946653147012313172525307649531528127536563579698571256930830774856714028267698219685264917298048999775238917376636529739602442257054579136512135832047520979907049738246953666121253774634661378181121353300557545626666073246986436541240212244792165269442266974881944194143810330013003798865394015731351084073799117522826510732139787718159883368464208607641997446187045665445402713311855427594104403373600815632645169464753764000067716884900083140414642562392614565245218663343717480227941945532470109363031679470145817648962101469963259028220519576972057652725344369967239825719469816989811551547021064157646945741682806547882506835389907805421916394012466558650973086207573883417646995858936485012234929488261521535104344340001983189139843580064503970240517779360121304371024237946771598810348721843028556265424273086753699264076187437851016090180043853910719149422585191561358402012533258103743716436746701900300101138136689263092964635063897392135703320117906555587219682741510526143146741677289363059128987459608582341746512007534775415256329112526388935011311606006812901017887332502426250594323885226822950204045354025968849070570704800094277692148360060049099026520908022772766522116736915377592013740224907551441718981523082411161243301671682036520229954473499751893515870815278613888729507026144747026447232516757317049352399737394043288966144077705751779894876813040311533774157240222609950321929038109170401368233752997817378283290605061615795901128466352909443982259854867181694987602707132347350601055058407315215196708394331847628188630538247882956994850027427235358343422977350717515133470691408546531513710225733895020556220590087562405518493345601130522026170322489823955869923407901289112885879829488400066278418853433804855620288504937849866851588992213618116254872868846034556931816958053945577648825474073544774079984495396730910740683342789309131325797948264860946663626052494954661894007123290336590629007903289779300981487933348905834126771958790540595238158123716301275493485715412185173824385876414041148267330338485381451694191804029012846515459471372328949975274939051992850207057617736031862301882269514829146283543894656248627173732010031123636945933551469288247271528702725783606599671054019226964416969928310529109762509542451218778636713895110384073783628936451158689789816800988161135126585002422811569485883478158455129755191310726409473528823504637687827372455519065807896763126335762548392623079623473949278649029174968872203208715479501065490177842498362599582859908793824293024900797011625767112548986034662816455506813680708648223871506853753306961731803865633918845380711069101777052506811266995763602774008930133672556410617261056580874026214561320301223181285296579998864992552034058005352506473446154568300666043339230128532811726083643395604778396477532947127942670490932785262862356660034334976191356564375223760233252074199118171853649535459855199245052387791716802904332511834201698314360111808455597132056380776780497106390264203280302579104332146745077976715459977720488059626587765324506562641578957482678335961723724356718463746135196740641700542811850551180332760402218596349240707763931595374186829463103294002732850163884000627356100146565343170970832822189610788246637805033597801133003269630343205937494799313942417905545588605437474804187248186707828671450898577924194967478413583285873139255215027908618162474179534547637871451621248998787821095611981981294204102119286884647481846463555717894949960720057614926392771565968517783689562602832132784402146541100264071836137127104962174093316712685910132195074772024850586284667695602197000617729385605413752133594649972401686265435085841236499399129279232902425177470993690364444500687018458258229525748284160632053741789406195693270878342787226652173014127964514346382339490244197165071226312111911019622135491403550145796725769930954028337483180367919190426012454713876355534270713334375383464243029701825264382826652415947184984841709204441571881690932378786377991899080687084851256094517011154614479794054744494099140754322173229956041920868264881979759141074789678395150917884442026094923594157607832580511112187155238446125053799334136509956275573740490250936199438507564295406539320897790649216892184681805497209161157065459466428953879292906490146392454778352565734269062536367806123257431239771389045865949329614815482806869621894862637109498731207930175252532426124958898222176044514490340260822564832030141384572774065185640077141186081489387082140076948270981057875977663640392355720976110275512514661003464371314911541252108724030094584741644679056659652170772957791977182134528102383023333323134560275486867863206783395599103641888924809510480650803116719424152318440327679099575672453839295270800960858426833301682688443570605607559528976036403835612673280229225373178955473098900409022393139619181214549081275972338685949779788096000169912140738018350853148664732738254929110002241890733918122368050735070001766456657946175760101298734127067210099258794522023799718484912317260377522053562973186473204760706413716669869546027894480504724911080610432145490185826833683766092875865280297320351295653698626467577855912331121226989906983602121606203854402767491549316795196669479965537830184100150422028220354707174570520388162074945663565765908047602103641601067394845981012002723980093041558716335073130851587746815476386627926505920615340191178713255701559680416509352281610406650995407844254755574315342708765285710985098681667374736081151953043712709373942337180142330724124797019900472777841496321049995090784075477618605406450929817774426273669818188379007193792503627247866151538637027057589056983035711844563431045367327356701502800646060769540256315474862935335372013452579326739585222442495917512020558047879378389708017583195428046012426457901759319494482125625526448261795209770315853305559341925955329231306753945879698602865217465095355130573231419886780068069121157030314581318517915653359330547621155531924844307739465470310850895735111605313265247247548778429822524716094898445818570146336060456412660163477514947808629784288523042955071853981846799158359248957830106941976810917688160504475236878832484895126672028446747180203629912800850648515733079058369280911402816856773355126766891462805670271345584315124990612034620448137990456713720356047318954972054962518549056439970491078751091886339337280496540235855183818052367784686337186939578611299298887866037689291084769601745189107900128602238739307090411874583196573096283771562920891408504927634270668924709056742338439374529804012591949072173165084898268311571423815989176079790406400349186567333884472595159350608178021866377060224648763919167504746313026564673240021051199255581949132786968711892852115095688935157133044479045415569064379863091698738475758567333427557946781950453645956992055024984074753981951291954722553333813365804568109161585410188654430838962502041435666449592667794334112719550732280226901317792623749867242688310081640794880625790465058678860203934415218074550119977265685456967312088632263323659169221220909770213006396678187153896404646546230092586610222378324068186410472350458612551166309526978301246613588000973227930786286628574038298534665938586949659450029032900586863693512274455016925292427955483346646865240058883828319577378678886958799205772573715340860729879695790656434825076815661830928817922581442008872227855413159235564309371868256216663364063835222928295803709975382140511708440366963142177907981662469742551997211352772645662905957213966042942533315292279941397704794819212060000496461778328773733408586323040908423105111727047961757713658959673569125900401026279739129365981187604364288014056557623318071262570995130276671552781919897117669878463025395617706257722948149128573841592873388641375358642330542463605227032113711946821017037093102386249134943287800515035591754576893877105062406002873315611126141497754856538570590708097271515714392242533448696488192783797789334342052920658659065153245256544116723966273185219611372346267690519628777970348011272497238661185976351301247512666412343821025540236659553077114404144067450970838496258603970422634926528403471964795879529346844771959386657283708299967642622608635494470401734556732145448849470448407342166412578189412440614147225367809437947520794884454550352786526431109167502994408681188372221952442013125870985841435525191268547697021154883445199312284313634198350453911683626316571062932185194561762208719709284998621466497533195737400638088393576345338807190482521055950865190787626681366055795745283131233657846057248261172398184452195397713843795545604159318200084347119168322916949690549194621512096815244652109685840100129177636835023078089805765994887112178935426663790178624923447642336403490802587678027909505072397523936900339347338566520877167214384454728269264056873435577501829103170624060617684019395283893725045198052803449640793280789139058273168283235902795233898813798622262255830404456826736896226799628420553561181657652373231499408166420696443870826778629905887113357675927080487484759551156672124732499219306461574376375214891252640759583730742121114734694474513155439655078884689774705690635323280490343404559941216316847434812727673304413386502300755422032541583679291661616595163589492380517631111024714430787679628609411379748721222961274731484889090280091115398830723265850444659462518076549685742420719576367688197885267935021732775948903465630808093362368518126691952765566757434086372475545266092975738981843753498526508800381162849788722307624715594072266472785248362732409171059303685769445055033526173768541844479670058550060993874782426761229191097479539315317515883841852816944153248539867800033758998086146982404928828596683802743636151566024022360926848896100672728798936656320377226426359008741296596882922577759139412145275327658973804063593799820519463769362601314395052116745552931894456794936830687630475002917586877453379034896236034070339980214454527986137442620328870760367334757003092819876661587197343815747407673606025915077684734509325643537541095258092888856782545575876182495771980532631423459996641774438045530507760656364956112034277484679710566473780557463735168983279865787459402972583796614633604917929692891561635052322813105762388499045992187684782268683119705990616958771547131172876417001234043318722325782971009817672531775118956258624215912394548766181301583785470354459220565718401380009048499215705702646675120371541485620995573212028686460263294431080220736518748011977020815684082420834173269054858583728120352478892217883757772716249123488352418038733260269159605334053638359077867568048315731245439195451627617271573052154072808078216278412311366406963462983666843670555412871132792546583075555534986649894198702703747328321068135465347500399108946833320204457287180526846112086676470584220483261761668942951620978702511228946704575288190109823982023551721320526018873808143300499850168239689840710764099697680308578605033681428740058761249913573165773192820646754652336922731904848909570022246789798623492335201919718264446420855895565577034076498591471790976592304079661701238504548387017810758808342915717867308441188991694637391578956845666464065464289269580228121854671199264328406138136697639949048483345527901685822252637842086605577744460022300467847463575758697235421793709633170444166349232497968455980627328765659502318521768963925634675620529328963587718523146729361491767988048583826667979478671936320613427521727254046671283396351345041817536444528943886411744748962261673607850912200527724903229571162161416908661596813170662230590894178912993502925970070438948046862617492063313801325390136602511557144788352607221605470798842664618726944320028755064615501389678235372387398088870577289803449335989387939466066197426405923126910804280354734588001591660391395617861036277043028589826170297412779560912037838102720901603817790784190454051780195115914277504768739778580032282423995390328197858286119428784066640828085423318218756286208195012315068317276780853436976336017452002328353302747278004288072520207732566890177945075900375308210282874895293201823301675412174564266385280733089705066072768874456200156173184505661628078387873186256469087384594544321433301015055921993112437080405033616653096992603507680328368356175733843437228014461360205129080422659148669147053980685020259487266358741063801510532411596582657177168952412847323088269002570818146560262179113302019994601571046159323236657801515624706234644148003024722648868998091414628012115291337598161485866252612779690195236628256899590419691024696765834665224590884534599050546741527500787760068010775076943488395466922338718641501452841540477812445766450132667972349782781778318540514060008762020276680846274089098207333015362255266719067630944201527875835207696357828648512961588358653643559116227619904614226650432028427053647260127947940468686988992278925743939478534803190197563288230134225951233481813425886898295400501421260620710670908399669606131466666606782653633484413418814721310317304670051588618447034187250039124221702473342467323029365453490175620638665670713088969862840626301235267358374235248336474735227657881698975823114056917642140475797387534179076363002406300575928503296709098799009251150668560909174537631107801006201920135176436966089801671318633068760855452755167590898585153420090333598092538541064860582307929194531024738519827026290658846002996972511916850278271517881673358622085281643094854253914560653962309544913801756029336698478529963781615027014799555089104810481713495550092994588336343103109967898004391141689938508533673413050199926892394285571699064867357387698871110172001997567825030881867776528230673088616990007382059646297625271777698998084939356941654308060151210280557467857439437178162617314311068725550693655359288692125366963942857482986719136473699164131513151877621291126483907648965214844505756297539158403195792876823061583608041021328761444750561462791251232319948697987602140559842895136318648550291334498753156076376538507650293240378002906843582376036831625800212571558470138780088285518629500378206700574472311090560899213030227510986926287146764428808624121737953534062925805055731618550338176504791965329388823002161713996357616484188597669246234033844711349314188223203252021784302354676300089494587039153485225700872754027988622870806092321181905340262314112577112770976854456285438892644762836911069688093055406410400222535570924046258600998708333994203064002546718035562533886710453781505124772153813072751230903772395771021450628414887635810400453839244246595174557363121187316122336329121203918150666426185648151418531026230195765775712982105677242828538607294201069785297649682634967010657083108622100849383752362726042102878362239549519890443159925365856921096866792240486821953739183975086120833725979464144360699124645878411404990943764632362285519113163709914960624421900970582686801859970788501621471597966737212425219410038115771690820893230349398813731743138734416518839598126532763286520694298277959237683985193636210303983891190322193163282475744764666329270170913165004450232238457876389426823968196695580268628861168334866273634400249278738051621858649065640693410104067469214594282979544783557302297190088081917104063763289698829545313233210399062410695795661225452286252716475822078089343481227403180849984984973692652997058466228635069365948535440332164796865961071051748874322616092264264207734376876705531580401585152986447123783081694275571031279127354325348978966414659953145782184190916827216966407335209955325661623790272821343991996557761520628014412130132213884626513743374503773189447125164920323940695995033875328746682940288717129841519725454048766671333110632477572209486074971684854819375908253290004706088383389003121486935001169683853119293820664431251303027850754217857593521305430111481637250058999643563099123537260346400050913886135973481465647483854401699823693234724842673318970192280926027314802785126943605338892000546984861897931417830609183531889871086729636266354203371284658903765048195334037258636071167490795414977974799358763444351449577498776077248990171090446552568298786656939298605728447320231371681612281659614591764762768801395187453582009997894792282850714971601463686966495109700435449371142504189705336190592570379423598862858935595826339282031860806155349858769593444923334553965796434088375160999005864880832122420754918975401964932501571863778563725178450365438961953587892139681120079236061235165954545125217805170042079228202769878096328434789956534615443807939342239190597414533168957777543828984586140158088125129461490008318570261941611345896362233442248095262308278232839442277243925762981051015664332262448438170516314366690701056931260766749998772267185788576156417736060504684025363936928631219588486675877979013289746549442094071073579298285269895839456898722694759574255201589762994741845382049676314225069470073887591312465074087772242834148992949721845481434851483131688344238659748595943130408071748005508963001371697518953063289174559759446321514104537815621922083287164012309123530026385537392289210127968431014209252611653975350034576180841132971508367790087416537544256337741952523513488022460492083896202276533815037485082714816631408459923846038205443047019433346241745073526958856149728191850598344770123173363092233237563485134112762860934250173278545627963496497280803793034285127259856845719016824939633089143567188857936498958993397262330445814246884612404829680615852672017669912933353932806969024669264751495764574073410127286425122597408375785114703916281434133441976097576914256984187941569570154754573209434544041110000805082256605428160232871649918661433732340022745203778532047777395076556828704565022962430337076651562979142553290684091323252273032621335383754127597374975590595447823953475473925183889191254901968798419635570896428520310339021146980001252340345865468570520082718681875573387966716861043141404076335530853962877507743078036386923342954760834763643803403462664557355779423434941747804865661587330503893973416277496242495101109108212407913252716291645072247095407301636712068567171085831380430090625939008472409616386952018575140958531141624468933314116418082553903010500766125213610991853138549177332690693051066421571176798208147955568085410512461236607398392911944108387798471247737131805540595029686831424291829029439629897713567002842581147194930788877961335923052159877593545146259612538419075508888687747099206991277144981550085336444375641113079783190594639614373079071118836102153412808054879864693767994616630922112190225725863093529221568453220466825741636668320706639108129308227237813631236752240420096565764378396733812103862494875136450407996615074459320951985272447171603891660251428696639287557327395884849084396846762212575168740261462360887992898189303083910210097147787433327080114586765996611507098340769785996403576570928372073878090220389429807631229432549175794593866994299674969507040196190519993861330825558112078770447731153712590756037296421811700185834166684378561554806413204394432585121205007490636441418026158426101390935864278498770280703185585871595619438046587224914034309766603557340361264471864115812662832291447747900428784062875049671749223359037828545441964965331332993624752770705918761624554060491319932435241606783922207259531572212059125014704034453906411886667044753520901855723867010681119443170793161174946897464601443773486841429552877775975063738796111974733152600840281042540522343246660136217931724193221258779276996429441853675911107062268166511601873472394234333788314893450263231855377339441389024408439269291811982860149641799074230649697778860657333294134374412834576640710828828739476970319652782723474489917213835880517238543385590803813145915658326501482101353043339336046546540258479348113768953370022624294036712000928158755479296245469356370962517258072164437831548485753921239223434962878727017817166451650520828906888721259457966392257623655884683218303828194667294331128272707345994125827761521233632349063994362761347027797488110128176093319373480377632824561172067686656611040172932960979644193857861621927572674280050313299668056035492903810032074632932156089064629819189941630721426024382550767343683971054551464964289657022973088331103594998543700169457871624327177977863212008846294928512792496616227681865247619650893022004441551063713120147055556282312207080496199814117375460813992026692469617511046254059637714364044929952471996981893495306996597906507773701083307670215785672815076829187755030781767620230437004959016090929058040320377214170821814250590893780362025979116131989116714054930999009940750210044042891976600590755638291294514395088304103165476145712184709589991095548430373589682604698767762843882154556183077282787919557155363425427113487102434718476595826181848254969964844442799174153002053543073009438140275521922774566412601649630917679466812126187764718639136802763237478398647788124229371487249677057634295002630055322036148745066429564937168887990822094474989788155934810653422073099906747257415337918991985419308721188771162777146794073996147676874581074475383267391420462330204402594451204994329287021212261995047961682213741826267686208659243240473594761311265743509570344966849154034396550208196555065802840576010737877270857603095928335911844592342125935252187149125904548458423538742592034297157721229283973085785672266130775056712931628091420968419563137044239716175286278756496674438207016428176653868226546375749510093045566991999624922341176990830327039310687885107074780597601006199329507233208698514273825193106924788737027080355457155224492099910749388213572202742321349835111474239951573338053258825985732197710620957651085340109589074389694600545503935027014671707599322016064846814730810661932811608453282144068133087257306459518032166974467256139346428697416962456473987644866537175581930187818723461494297473097246045927378037652432642174414579975821974322237509328366126843740652618546408129451354750709537658933944510029121773061205784296151652134538611525338975352683933190499384042035061910364409028444900101104598213619769243979933176788695701093213647105278201137438612406145661666165565151241708299954166493864265366349408760177892716479283197803656131888375580074235825254066395117076804469039520503035403529245608572434907843842881534407695880902205202481132183642543120148418546632953153379730384463370585907437195921732931599799999536464978400920208163950997269225896474916044237292329213533790199677559617911152347829033243150944639320729067474292064622252346891576205901056209333702321470052808973452268438284170016384770142047966074671454095609526120284292392704230445986067742457122210213971528463987907022446305867258007305824462975367770806437114473395644905416327336484717282520811901893657277189750232365701669082351296915145988731433059359358857851158297591510509967985793239162528902154696888969976209791086678389152821450660642019102417519085329879409132978583851098718799545814776379733850921977126789358847916410529206455926378230639651136964508040727923302625449785004732141461446967690241793565933270451359784255456720015633268233890147930010498069178800455650140685686239568079125059276821993554101955561975931761465625000252745288151357244061113851785568037862672754936415441982863731768726418138957786621232237405535633803969800196245673973228454713714378960538199401243541084965465763884399382002629161755124297421395688550038498306449463854935923039573379258179059946033986972146071193942254330075363560865682442616198376451188537588581718502879106123149830144306403179479808200147115998637031803174012409341420403157356623085864465262323782563166111702872442920706174553778153169305281682320957377733550489897894617099343306565425019898755429770275410887799639746755431019703015894902923175779662582908852273731218669060476733974887486277110312486537149137572982041079374897567324911345757392714886124697508538539690464156892948905052739621724041840798307312282139946145414175058710782093083253331110630473914201651935803689668247168003280529649720639992183972378697578113824681560621499408406734541086731365455531861234035987065184989060685605070875847415742342923783917864026891696705858564888112224337668642090431825088378750547560789446857236531360937878101318104139604193557472591242787544192184546308383435618880062794643612337328106959433793274588785548709036521315976285306134109494788372259999647371255119336940161123482530455166791517050850369463728170453233490639900635145200707458547679311892794560316301869267242711815341674924381745271416855334024830194084879869756116141085038317262978225963421112952898479033483308359411525795031664557759968293309041367305378914465314317041008848166961639875049067103895711024799551026480427870926509368464682484883504364604655927196266954479394909261043159565957093669162590578651449604070355114158265512377827259303902261641674112533270277035676835021678005201806852703626848336496984787713236487110055127487949914609593270305835293714595066433840939448944328759286833316440278838807927533510265899506947867223051049401903987770215366847722327801703631829861539156019011673914095032899416158309417450375691476660883395895730425358083358417319676550208903773970662289642983786588075886434289844889801613597164145294194781838721934553538821570770429454059634995748571374892416742059817282710970667206114536058179206116260154828593823834767414592624970141473020765565726731648786760691471224542582284391722719468620406933989301235401587213365581014057351176783434157223700745300272518206163029706212827751034190505361215369185439953089417421446330556201174581265438839814413011385774359309934837836674269341540036569024923936473320731981637955976309537191958410536527260835887624946502269043229542749854330332402439982084334840794400080088752741644414618457459816455281823199134906757680496230303447813360904617983636437221528765696831385592449891335224466096250061253062614773202750669090716184581025616060063683078541254306114057602627466402069106884277433357866218681486527379605393275772596507266878594396240211126084884500871468590021632013203085532888211165248672967865850246330646521806020747760453638810259015985556761730476836861603359334741178591568143802039069388508870922209530760935307260887926894089273802354049319184157484581862762615265561155730054989322086725618183883410330724085881375582415410147799216968937807611638674885059383041660783273333031934465336281720442113155642052043599233013484617387795879501882830364116142399743097717532140453984121708265907827894250302462636508610618966365653604008460218786627356015271542884444559066780152313210701002664579328766106714772092995305245257629890728112845622072684259919049868761226947487665843724231826071910099590448980172191655521653920172943221346769970318598579505888539858735655165739144909257561119147092211007088283047587520806155708508018647293654622642341043245883641769418041595035340249042281916250458168692487031796556610734793115710177396087506107587093420585291776295430403634168179555855020908991405955236697765882095558684749507510106973391964535061943223138638168867300404046826958213600700053337495781553360559518694641004588429478445803682693477897528324488433631704564646628203931650644727701290853171534373121155593590874075856326197867957698258467525067160502723549422401595823496230714332947789563652785428417143751541637238452836918511118742935637076470303640448584444646407655249840172888763701172729921919468562619599743876694127139930975312388341809919129420469261367360703295597282813995465374348798999763549964215225065483650075569939558911275005380249805050137143157429771085024516574191657329058033249927331065319824565329838719738473268817888092399680044793471810014131206670315148942332863508821846235360333888250331724662378902354005937221701798169083429974199298739641815856544517837378955626306635043028299420691605326148340871727921752113548965632801810348432647176737687335414211714926733038811057681733050202388545791777842980355809253526961972422064217507557417067666073635491519165393758377477309746752093562976324648345710744382568641345838185290372487759235592687571237514875884835076409377845180833625975314758878981155950700768436823389175305759033986239075804011635235491341295125118631746733543812388975580746514697360519708826460585656866735118421820024078372384649320197192181805574225761488139429173891526466776893581931079507435622432417328459659287502282087643219475240268187653017757044101131797831234228691547221835740484812676092436497037226699088932777757502842929686000589868976449456371815793080072308470716258323638391555653848423221071105838515014940672650821212159462314742812937017769819840696099014081438911747060341720145028728206715118223950880432480881268215567494222820323541655907962465834771169049750624243144611278009641110951163429786510480064578386016222551959850501627489021655967992907141560989880845493759729415677361962306237164250893537724079323887165644493121618024196540387946581845509969181773188873490662758325932711678065836278356923350040034390286487413942520399262558540210454687630941435341539496971904771575247500748524545081875730540365834377113832372823359011832241607866562987559861437915150116956486474155049554307390621909705440217338569453229099914565479868539636938068339402777020287239096435486431016220340431017796108019968169940683721158367769649394644068927611911467285036081800418994653843337639458283031622954102385628322823483392484919810799625451451881649493612274947014229057903774120292785710270703510368425673448788648637671193910052035284329628045299891950656011901978107612397780536723322355500103750319577218411486655325316500778896330501257538678390621647633942014995865140609934904205954900600795868671892388434607084058107754978290204716873275809407573580630285442457909820549644193305429065402930402429971418838654141292979423076600827935671452330422433672382201303205736174356603926953083730829169780759612978311764070165145979216037056345883349682101224977385850297030672274810707766720415921769282275695725104925243403229683720597145735989952730905270526753237385028535107628074176097950098655645013813170355973248673134652305516307937999402185255162619626659206696344257795343150141668878757628795788684693359478162094996498503095465962143940793182122831929408306665312486509962730851774344919902548299784567081263599747715697486802359603738521862569725553016633529537944670020871666152087339032243211149223295306594378709513004060236671467373759973919509165994774808514003090183587868819753270811546042169287467480350510943596873119116848116854882167403001955226569973819732617804252295495457248494974636340710672364290246596569726628337510472911260276469962915573831912227088042443497967644817346590977388655882765310351838810167185724115945207376016271076061323807765314191024660995937810258923191847794225398188307431568639144142139677393222070338623864272625153840514448335483194276544980043388486362751297869799665790541212062256156943601120798313781736952173471866365634505776842042421009338145834165984964890367130916043666097507798060468838822092758505149455649064142321966631652960921874771466994309274305506320483876988118180198392758761452571413666752528965692727600279263717226628879033102625348553383406493335070904199695664344741050288942805133333069701640871309230116540294128588855104548967679231904085353671066403086820979129464498411565645923989536670960617464518714232220885204489306765208654404473744711383545170980221083439409989888276789499296535438923270063248561161718880242839317606985190579508675299467661418918104705152946416129055465474474954645843360655668072156698480324552853203081049807403953725882966753939882916106825907013877876847451093746845556656472605602885966313480503290208667621218427250767752163174757826557822332900625230344163689244836186657991406641135886223510374656403081773992933338517114894086761985127760712979149585847582777492675663419942558612589930724366117430493820440020193367709882615361166960471942978139003155985318632034689365910726816579977029846033047577046442789403299839385915267126929262579065529671321468270833679085762885525479091286062479131504137073231760204625718267610194105970582140279228513993193741202474696981570966432292057418262568357094769826656389871847214165279075431551372537486153131789047162490111060381571444410563121455836750428234842388896747916017293941717308951159045299604070993948524183751845897186499783462643112719760771152201378898082999373022779823980236065257998157529452341225607727997057869741654856108108634846732009077456054214397255396018347970723266684898098613413386869204402200592992923206766622575048251698943325877796556117688709011109559090015271851586216311486817428898664159247629159921523146595124286580144773380643251260277653172081187559879182052688945000177112205578278052842770230432998417637381800909894848151829929217687959288838443922462458827904652922316342875568417388569503340393863875289902437762418147961264407151366746233170721227527098053961501966328338831103836817595335076352118919914773651445552546447736709735955380406494563737555285256096696079894049825801456976364203418453791463378802604884383029276788711505473183394023717745843743448684244541130740736001396113064692565368664774787868642743510891002050550896214337845726471785197947400783405768996022846352988775847819660751660429522580185603486166464654951786788482086231213589126023552043582742179511524939253332932497794418005271903531841327694223365614693457437636994672960238343629118315415945190455705962786409896195224912808863578906466110977332082574799644066996552104413694387900830239938769536616285406763310473092098623589193447815665620118631741744235003490215063788187827816827437194058113196051243230484171323994348353403950063039786528540053959276529549039685980432306441367811602318424111251803562203297085531730886555030082698511868280300216478630140545440424271283633802743439107154663425687552953998220941041522512131137614777298511979470844239588683098415393012919554741198467633354120210404966924372275407990756808693355096457838096755514359589728833269752928294439407296626538642922714120356141689091473225170410401070326537336845011831107059287590210447721619167307712186603396858808784492570584021577983303618163809909891841174106948364043836805779254886265771666378720713721807263801114031113892255633429700028681459473616243505633262075365353325332201397225004891181682546371507100064939897242117372822969397375116847224322877348445797927442362562964828193393215570855067835988043847119370018520457754559401561280938517832654946736971062045389138335611273069311320338178358144234131713009287483467493949355789930786881554702938742198050346024882586191898147810654563602571685130257222931493757950574337407586712766620305100445799004732782198004231809493535948087552392189103250590021995158282640405037395959402490203779811336116130389745144001999294791880512648520804133676404461166456123016324234027854115101230524075137045421540587420543997206629014836077899132308056809538402050692244315717723293815822556143843771219106151483399386424136300093517784459235287324049607042718114521635402268948499477721161589857370137830504477030478371188442764723683950451840565217053144907043563597945355669850618310132995610545328603987799024172588511178685599422015999901009313835556491836497041605560449328239094649715164211164027298514804594230369382274177599313887558905356634516056396628046526510799639545306259678114988208723157174597008937003942784223813203312875234550055711787650971085108857995290248532298464234547455822113623581881473753193889724822494726768733875620498637569036198904481897154959660979362739720980723089479971897419673460245292734417988344635518843000139436058422754907108919577314440458022037502056239868065734727398410371441876783986427099693338738297015138444506010382337602518094553842279626301907449396633431395767688645339633158254812192022305149642648265753416290064741672873171059610162788261351749933310599384148150081657755228104420583814203932281645861162180790912964461292075846698709342697401269513746038362212441299597065107247584522665275396844314157184250736652239008162477901127606737807622710238348295128751445025925877885692470872240310014989521705287746403553026101089466470215272761019250545305204237765108489560442389366813371646121832535165872643342733503977592847701292050992135070767132856052272112265597384073265465417646743646556300029144511633948763031939057314984050875133754601126853747107126291053485315121547305443049150388343052923153011662846007779146896158691512966593111882878052448656335850537278771637155586486369684492966073214942327089376390076698890474705002062080854214652445643903276406526997039330962327344439448582818322993588784610318802962235527300568372913722809752968819456672432392355672537471179020453338083467805875895525835720706056264444852596800469523854887786549686029321108572082728018436738013873928613971463501364622446638083439638623574660007908857911493988223837306479145781254633562414253410662507710535763117992313863042803277782183783398539804060731203937090817930961584570307074610095253959793130784994736572122424128498490878114002406807299670688029106153662130183446768112490511680935669365610235246972613497790202575629191617275179188456008337075791468257005974165281297250790712924321756252117038246914000685495230627971899844624803758886321367373250935805590295109609212577499824539428895641037825289024093686268964824551583464902481002746403379455403154394806090860897566359459107817504864463109953959489253190592763410523014943385713086994040753657395571189311527177177689282338022206322734371849473477744260975219112719801155587322928111547761682959980801888683346528821475959876248679325027989828497708589087898840227602586154688636811139056686999034325688496386693787597466094296432729339176019537854766802755022339607513961037686058889781379615978554769980385372801441291730166283193713993129361292913788281529486441888536569926316506302771470687320431203234318844085169597412080249277040391401691563262992020160336338818982056499952193396232705815298962041052117443912709512382894505525559021081824818174082377033180600142257111084029808062560648815695101248155048790655592974780899077182545864115201860357794530082638861961926844158811023724844177504515933364345099883355269416713009004198778349953603327777130544280478190512145365880755934472633231973471085186452380674050100305401335032726186041951211359222037495413282027371961840235001203408932864965971300434814157085842427411093822138647145985711182791705239498311531565325752023265293612651505093608290014909520715943549283103486136591364375681454201132719094485328649353325759231456468584022024253598931055279762235600385152771079271392481170599574058986532280413027079184657856307494075745955714440431684211859826839880659955213879575845489425290554380805159674934231361073766976301415732470679285634801969291201182906583399567653738556105152382648450869210350851049483286610589554001004654052450486636816106848513096675758038130571832823113373243626460291655043766770584870598921487894300245491320352848679703527739706541042301187431972826211413114249067228814479442941091496912625871805556134617551985284097443831751128478315991705164637655803505539062743601960175085101546367112664894530448031497859596330347967518505600385707798283948686136641159429510025376403174002483772177469981025431928320849538483588632869879083923460469553827589739543450817123855266206803214447741312060040798378439987599181430359924199257459701835285844409144447717137522968059573118181386002436441129422062430251342429782575394250633315812363388228221463462044387023181330582693969528123265226223478067203728675088401742511214693010966771699550510372608466282044397217466414051930281124344558604987462681367878072411067964756332487039297019662644214472191630436582701203230250798004894488170652346749414483527500643308119663296625285962967714007927508141527562488275742721613158275870608228891310205315284567577311366725480371821263987712611699510380336414663612657464592279997291721326936774512168758818501774384183538479011966101547295971510216888144111790172327072539213663156770393023570994941535993493377414029871242233733244539481657188994137373384077322543323705563779489275584177156807820379980142105164587237233829153971697925056264526534679020358829119897498494128173159664540921424131347757730599094332810959848296648254702425450257805325503115579708035023196492706212140081514926021830129345996284472617998260203322902218815825896231741186534024670865670653722581570216187552965723469628332249156674390308543002887546197417709356493684728985813715674697771760708095876488723296730762277175362326361346344176261707126566970495239875269076411535772134351346846957368502908492126318951982353162890737941693841301140346706572659096548797381935070361810818080973950399852891081344891298863962607352576841729607904967186153592307415024235614620767210332282746331820338155406168599383946182682524849692822804775039419218448277704571447728504380283025658324892881689792394373657838222189771890511324864859344071237795197329999854391151384212784340552260981992575037623681053263314920965074103783037317499297780836700600632341041654785344089173244469653343695592684794411707715710554335782706613750529929817387693300325573103407791878945035224978707936857471081291291330793474616962243060427864231016339920595718531762835417373506635667149746473829786438864719774721762011726458176259046735426333960641453092395625647892315663812889984483060423855624399554028661546935642422744706915297087745988063820836439581255819833756332916487349361764719070488432166170582371665231660415112890761062580688484048582816868457635117477043411732308576108025538542189807510881888222639098322268190241176689825650532169756402471030915528881632163297811514107563425205695891573711427590914724390305704626593453451040537347160473358930995686429784257955764953640878861111831140186162713750451514839041405601027176755558992965402662219956968175604811907734745471941226301786400745140668336372383630925313809190343879505968158300222489551875475192051801054122778025421532595155982206648470849067468344003050968476182159714945578506749896538802664945791730222861353681942694724900478339056267499371506777540169245758929608309290854260864704459646809016281740950285440349072977191055208889453608134577094102815184869771979951410696913268097332804034108059840358098839746964313340148522980389335924866326327187244679772828154581397566395643511142250879974793363157688310791602281973510004387172207766053673105801215356450792255123230078863901301353328333644230053543615611396866593780813281493719483619381236722116525240645028456490172490124056787180885374161928456064318930102794403848388248566966314823205068009183062675240792974625914348509580882556885272301867449612504922431996456849421767793246445043339145828706313951495577671402126507320638736914863002085014004695609622309441871996286828746955818929793104518853696243947624979902073855905718903741895247836017377737928932970681177885689143740411614245393563040527662316630538602789820724707061535871610956575146073517205213443503869205484491956438384527910273833173493712132462223236999324962257611532554090497728353179720959546422264934399790313177442876240661482004873728013222445288985628106813345381032873608510535623322365010007551386526623815595050007787259683741009291935102167259963759224518824378906746611527542308425203648268054820436365258268962474775770209269599635145073876469372597977668814272953556283547276189612724302744780710275278560327447683821574649105833469842480428191298885537745280387533947993080351473585347302094074369837604328924827322600030779119373610183439440502141823376898372566253695787773104176425819051002850318769262066225582933804923455983057821461740521686311413908168483015400980457112614093986473490181366467645718710762926625500635816522683743967658769074304998244751743903208540755420149539652129373414505920992739596570500948808613544579216716269941692847382042225409016403424283288829999605609061232697426970789748520701136985689278574461296964978626616342119533820245434448439569177034162408575561308461676849280869424666664682249452583513434367608506755538652015031113653251982004524704770761380108547290077022548822565634532964282665377229870491199671551796659094549811193970578377526211739222420350473210981577698947816916819202064266024990261490926162779999296319727569197002687245967455917358041538228301562042416038770295398804771356973378811052326429695137450559813831872816765323625150539318203524297593758191693475770307839890926866038045362223792253976679059362660205627998703568502279791168068278685905628574007067057208140756203919481905246910893609302516163464425051762367026969056326209196823976236720974980227831771511935483207437315176182712834334889236058520776585825971957269716306204729506699840244922706002157028105117243622441776713517520392058518718689251613027896076969757635789970181139895740497049697745156726334916988538827101889895351080483813970721635687356528657413442761350227832618338243842179185966693947379534662002351932277062931116837241269907050164224165342018369717086174177177141920968577096346868734692388285573099893816281540494689910705410809343376183887241941656780702090650707580526974683680954098409451759030149614597585460829477754414073023184607715349825631233221839937326513834057106387654839661329695446437475408885813313062320805981536223603943251456807865945399727823369757825701365944179414131976001193085696810278278920186094747446006539460022828417147101520526761609270595761689067116268740467264352255271379779003185927694839392705434858484147520808472268073484509635603896937003346483487113993079667452505743542773750370449318024209534559620775905937232867266820638079851408454159266430974617648050149119210322766818660326224728646955686571033620168122802638286479056614693080197451819041176113574962869600248833304673121410207048565403301005942839268927382904209014660487709783929423113526811987637177602188086509831072609988074164546679950295420605674318965394539346311214024553371661395687538954503475626284196620064770173329320722529753101248028891459067402154186899923729142708086854886092090268719803490463109474243383972568854254170228666279373390104734707006296136702797303110229361894720493042998113865577940475321170379096551929427115783234783472221777062871085821417711376554918549796363284021743821565394322525653193674295492663389381922864385578978830469770007886039376241024464247576859212460010629238387817342267281980986556489664619604499822350498602776207768611053961071464469223844784254988042391800393716498986287293598453496198954143205358435552899896533338904015270530747715236661567504702843454067258997499729442776110391482197616162339029230586693077085042971708205892768447940139314991101437238077613765577407509586453865802273506539565949622622549161104922957464291993498555231417578846058514015082490474709208096559382856635246134382079696356034905177784566302051500937993568628356391139137131337917622852379762813689792271748183360266899044362608260164633660371333128847384536369049904268081604187439484472075175290453605228148743393326738386544146379606067153210559448701579222268015424494707954472588097949786615387457720754372749373120050715669747636346255940187523672109080684529412967274411671052577902124674511676479239823034442333023519150944591636224859435924474591070820887806184484856811440208022107599698169106761282700734098387079062518003231167798681511609269311529306446087933987946712363228315498356847314773261311020006237732736168846720319585477958073662355562535314104590667326194175486330300938454326202082553025668838196337148338877785929950653469003395095550644785555343405404749563558647390516369247772660748931951346580258393985806997078575293940862337268156635362554683138241590554238005384796314188711165441952729512060097085589214939912440102442239460020294426412785707190779435239909545904567443279055617469874263567009341121384539702762095226500855170500437476142981918284190592313683366765172438177423869146172303358360037012039220043170570702367385797609883814597814337120275609108007488275543524832772924223113698102041521312921630478910195538486562252348432171075626399532444756356112291468191780880647716214167728553400340179478824984815210494477092701125212890576548330990591721135912574456282973844875941061495868354085919308716276495716467073076475626847278627680288006911325898730559660500906854865737272894727233380983312643008608338258695091208872509103110679327203528429151427581443151392232822077553336401830571761770378271604070069334781930030259668129510301778298031204769901767087075606941481594198975850507631693350158957647697337577413727143617463933566142121968714167405009712851733465950070027042249127750870356512599048618284419821010256911315919350280126564152720309435900846639173794159391821991672508490245743166761417141847309604936579998743532475828461841038587459421555495777265251567240881428639052630948876965204909019104525358859934014707996068701910764356963193865989226960663432450078407658675482641898130312352157438557327270632713909527591717602890165862098488382551168326096665798099560788047225044792089305515065080178784009679571230126846890919736005587895169531970031306065946146771909609824188383880050602889414568428493532799892965843411585329442902622897754518113745029430913048247776225901016517764791958881191639455324173306925178249415754899230526357513011668353791569190407320899161946413821886709072570769511111261121382099547904046485880431270780238121472731356070345927143840909621065103019292054543488528469491925257533282197031004560904421473870449025537475770029611833710842711242097037805786206891218315476889523529715954102899795088933731968421647933995352859297945237155714273001430269765650952951025634515328081290331061830392468671364340617432554070838552640056184974251131788010145059943052770633277269385236973104503771708078505156311900588040249552004869418114072813116285913760187155459914630737488873854070174301421871537773541549225029251654060005574248816070707326715741505685548352339943864076372199975068877251480979992788148527746174571362972549776290891489483355269939102033337982855414224659133041898390493931513642617514568517039111510401618904971507878155407670365276615948063243016172307194336242978368188315381043500895298217872488457491876373881795675368220399257487506298505972029435791461672619650683765831706320416456660101575297657268091472212850087851487966049198706660413700124701893509684026667279498076759120511702167570230444902328677734433086873407834229904946189770190194699878453029743223556641761997378299423824608037206269184142762285134794270324797855172519081038483789965293074121424341275846512743435975279143147271876511074717518613261021387346179637687015703202679160363069191551688251668114474626891522755261914843782490544171459042344518755451210812998361993421773288982358880648655357782866821511511739497991313067141463684107816750733493443603239562629942560990629909749638761884628188537489422164396904111593401683549963344122962063913358866810462587594664017569392109052832336935649713147033231852155145880355402722927686487065677667956954893571199210057871975884914901418136636249105271610584694345895124301386152872011082729272488766672228781989856526901550797576295673463608089995195752221911851428537424756870709200076868323890457757814508525195341974958592222345206461733525727629089458612677129489530497044066842355248157329923869727984601563164818976093795805604047974105499977815191897086811358450435982209930165143344799782428587924129664224509436049293931323636302674810649268530349569345348035280474319232012748837592812784693550471123911600338588723165035499163934205237092831050169974490306907249345863410657039488252568355520307337451928495999034363843647293637493263863561994577263019538742722641447162879434343946317789530361091140579427816700828368217037280858696215743914423356039840981211776689091175591616807059961439050267801981777008048894736409317527037261371889502458118478630093525978561654476747916555101347183210856349026860105804681782655437884335224231925646172600890354597793002198191228889227174253566274815065499575826345267837776245452995073595413519678180328876434599256992804817968278701793078655844969317322348495689816657314367351552506690310989486341798136169582876207414508126361276186242112780649234318998570414649013186173368094398063606556941459817402545331156767476916908075861245220924059591677303049140257687667238378486120516028892553728095906878489954393724250502462522396489597664539436133446871810843128647853896540554629273522184739531589052206875593257930078543924292293920256769685381446517144832115699685753450333632195703888968159561373220713897290041415907935639281658780336568991985768724660628488012794018639436870789935115800149708901227667853707203741004964530290492329902049816665296368280707384712166095966771667119380682249661067232718156511428622859541135553713482427231155952996244622440909454563939634518238482345632338977969855637641816930771338638110396122472556316169783506922355506025564450467079112471921100472660051500864932739647538054779576501436774478653405180513055515023150402534450002998968447181972021150444765088485851115056885288967264521879827284339569389874299555402194685640740785194667980546649904493292868668336778392533736676628788537855604754503246356644996926988122139401231446227093565509337675914084609919798392549892409722177563348431652534557429443000822659239992628400778243952422796350811358487737549568010631464972420042019701312573009006419232524616495218566070963636081059606518407207797325790781591510126232293169600140235350191610731173547594402561820451197973727035286381336971210293119368711515723873005153959880776382844126045667443643005102046363172527661031804466214182530749059355089149463501490079246661340340444498681686677055701423242013761999446713735339125709193842256708241011996113403575286859959243870322754585307018452047685110088891748797382770325297531971396468944578633751734400925585437387934500466563701893453104568235866642175928717179552754679601313164083808369634919080634441936689550253941119541921379310447495929705572898170952804702044425926390327732824549843887978461128688977099345579130420803822378579148040277513680601785378625883999870964623522394616212909739270746086797586322693307642555681091234384212865092136614249074068929382829749913856841442719148126076403561152791055265274248332976317945487756704040460525538423193030407060055133155150773243760696675560237680274974524308336975138111498038627799843296538938523597363920649584901859411581565740540634090004271629296303813922676970521183269307445542051721281894341977657463499185785333448026661199669495220425555938251479580564713313069607601223934057666990610369157285367433160996510208176340202487047288230829816545026995527436030192757931059864944152887225864459613816357746314581537417860776375739260475334257082998577787862493251391083597155254425052385142854064081204711698044456782113378035117809799644751395194488323344274227519300635731237444875350640278121262198609147646389086385229848917093755858525143943904943819674667543364875253719986528762273049093258093569397987567825026109352516068360486874830563207545723468790141148810795245451688808796478319416720827472885946857685565643942016866660159710741724556050884204569355139110260959888391114789361444904804005193293783993740059897870272322664621100319065901532747298472672936964163043882135188525029634657912860973726786573168057505536361304072768898958216709805672178533776241917397201869174036494141639392236980013253989782107776630472778279917070547893830884586201430485029307823287942823102566542198410400281954381790287688943196694297841578111879277534624249273074701860038672150377846482784526065323877711746051113025280230979782298820153971752729646354661440849219328958389598778464802059873944218339145657025147670428042102651497393032691818536678367848976814491184848093307163460093614913983090794476602823603442259322133838858497460830323650873765168572321456059673172843840633478005954464798386182004068665974358618837272446274593402797178956624104067591685106848184235219895244489127830562590539941656249748620553184879772834597864688945343854158241347464888862062184340624049878707283307247313587136241919174100899261928606926878751981163440151178039636863193125107803827086026464665408903999440329930454297382452535323277010843209437909310456796771296355326371880911104318851894455224683545776910143499449924993481711650925575972338886837063860200787321436202366497173340819554381136142574236999381533942286226136830597150331253945503112320357732467460682116056548022722610526835444700783252916846663445538285253347230537045059299903436561360706766719658023858327130959923127103075986875613406680052640488217695507958919346093296569649431441883515981192811259331357381826990650580890015834183350222765686523479608922300287663697433348760294916182076464455113120890366969929843164608386448163850088696498023553218171965431121211943469889609481410192723410024358123963397656896908656905352274821009836383429153310202550241234787076739253778195824201907962075154816527914034289077254489622970092118752229794699207551881428193347359522129949591045955929344345882330499120256748574862091240237569649037789400644516245371759875301028692091182327953533784524942289057505783943768897168819937095878958879559694171060436328064972223057913356328523406722814282425643514417958349440210354299781943146620686724159246029953482711611354462886203667486802272875013184588889627013369773002508648240216134910318080198785102333742251368880667031518846577022419798492874814000210842119213273531390123524483197363924768639872855392765463280633810698789851756242904161693277680801275030231542154021030966069460846726618306920264147385942499549983815096348362730658642413929351022491840839476409809488897253251658890352693032902892781521859761014745868119212971919550885978039172038691250926996117303529849998131890721960129759710695739734587142129133771676567391886785338609143608473308565049456346639909971189583177443172482035263638990983491710981280691404363188868285709263486028263692500863187307143959515598751740847171586139422876437326410118521919809776075187263338196364767369928928490610793698599884283897947480783454742917564902135355148854370817850705194439889138586142877364647668270915568985651802177279190210964793094707894216011001683246443808981033574018875343145741158550330574110172234018643823793583480554733002784400548985416031603103144081600787950089652316798743592124055176049699194257627607151150721576498283475335193552279700485733907033234696798723434403716365862802491073184044922106966499559448477642317459500582326591493674215878172018288603466131814713132699612546721163554576546739037894248578427625730170917965196272098454648406644855651983244664841236309440986965328357627354134500122486545526985738098052974444634308351325785058176590992062470672278949298558240982196582345754558760875861846262496499958685931855709708297248773257895031389354793454684615365644162907089300290400151004952066989752737880880483935392891314424279545926008009786627560008257304658572983249549387236209417618074988911018760112123659241464496113079744527557771538905529709382547327218750621390770962049663941934786161447172843054243065764705336626536689781136594216259692715823740371972178689965594289849747849949961129043727162347803130994773059792919919041160121286286439993035570923015554147637869796998966065895456622878797146253717299674992647644824823184337840956540089662285648617472043857627739055416592113457608704962245535584528260236798781950968652631485409215803818725870690585737508518656401472937422138869838399446925647081233252362948874671215397446167383871848538145841857959373264141502826893437942875592908103547018388921929514821419876018593996831659238703483433645543097822548368383314522310049856286908969984924393052878643521665708450158969492528467884862234467432349658375618108525735353317318281028232073408993299362687135127099049005954845012513832572992223646480997561381449584709802573226556092707064712571098620852997062912501808237259009714746310781798673850628792028378230230722680118048211718816325401832930897409433944331160755001387497806014406951931086416885316436683581866348277398148085681008242729506642926020294632144785915185500091987512462139858708255635738687304180474704788959624533730966049379715215463345142620111277187688082858279552224296020358076020535526838217061777695480278403892771490367299577844894413932734170774790792476772088273468590185792350309643003572071343230865685471524951288775194833401000998343065858878098300533724587694885870023472265787955740193757153599003099243482395475888335001055654305121727623356826534127154043330570724314674303296082268422185334035967082711590121893010886148803228273630299941692206564238725111409319005813266680203118854552833581638916126674610378672607941333196563969839901584561523218535079721042098655121142957196053797062852479558075552937354877269292978827455774850062458204962375169585092631870381748233165414930546140130983617342486509418483584380388651612422658636502508125478557607737078639458559498925269544335605232868956614437726994740730662111930967173371256750916331745586440036593901279818709168962522094310022471053659288801714617581679491115327156067261422363976165940205039759442015487934367712319579847837749400868860021828867984131529028260082952806874498014705114429390988818685283680356189909780932967507296629109568271366962991861815278519183985654992568947355083717545663484463418359783719942498876443961418712080637052378297003150080011521042320420037600075064799896431356400092684669207246738725443310637611586296315942054159922327245473548862721427546910442786371264463679230578733338302693996731400259093531011932963726257921083284496455923622436681506788578952446587843039228678938054253693823505755233755957080665546257699185548238660718094857632128928921782259493579929797947765895233090011312882024734902587264410721786948078244502130666721801625234823409828437830070050306127666631488790996693615962141351781612842826218307085627200797291331751730813939211139417057225654650841700308975366889344077319491072803108204683016934858751557761252243438728606865658430523786663492746374409120423667202586534268570405109632644716563429609297463612686163512210289941039803427687072806438630476427406365670035640516748975744819069474670181970391460886152931728406527059490362803802152216581535685588657898734343450512788623803726854129711405607972830937568089877430168247728827360772411925470263780134557981382902417267619875622141976301430094485969561322177726523005104924636698839750603888358385141975102556810647163156397324918252995548946509395252281267238821410605330655487945817416190544632209598757284535033618698375965618433921734121907659890609133489766765915236101744931930294753972755238417820456908044397946201756525571542736824949221085383007553824043629663889155146805113407466729874070250751834284878743079132031941119210397395185282512697881247365364721316756897996026016056233480232617184718677996272525131200604028278454530704747016515301327595038514994398769829818726897801509722226264501414553571138001644059622207657765614409736798025302152590412926548161289979727176388715113696473756298474794089150404629774931566171321030036210372026216206043448447312007493034516274600624344005114867318148524086371483950572311175073242524932281451695501035845511804708794447340413679872802013450660201586178588521744720470304825776563352712516890955016147585066852727766072995462930853757444661805472756848669015240240924275557277927305012980371464408545422744498587392481577909412188889370633776906726229116583003164539726814879685019925611518958446573496642474781242031329207965306164818236205728865048517585891704138304620306425878715056512452372313194843841288950987564759845509241551730018876262321210353301601950647647223846060951823754155609525164423223701389636716933244307784740720750167507962073871580142979573149139317601090359102691951480380304098353936293052683190201402807555235300331852966740937982421060756442223717328810965947744511023464298254957996719497748577236103505259316810730617940982470170505160631340584881563455045883065354969711665831807826940958757245725887855986233486100707816121029822119435606520188824401920535417721203362086334099401696393047947771969232677379537913947995590131242257467965176052941768429037111350803111393588809482237036634128346790550416420826237001592479067755140824366252688714860064510450935837621514143376889598199047360791337766492393060830096248794044277587257985575355805729510968171997715326269805444054766657591207509951563704851339534918262771940343906039001871514550924232854241086165840334282485013992852635439824554774008295664535915984947235857928994152653002552282400394954283494097090770407769647373141716447781850005781083711217422672775491843970174853547913392877600665443264016243271067347693045043954022581507680810312471466953316811504967484399214613214493368815365895147007548417098161629620982404870997500492853401222605330316040212959510767888869928359426180900265900049447823532439711931930703112388241477007970120873411161321479053182408387756711133986814892136465866827487236060115869517010228409617741419965563300606265487545296632725888743914877175448195241911484428717789332400531533786663487112681917108756183227406863402074606473069913433079165063539963206619195851497728500842508927120397290296325666183752523508296139425402706262967799075490554661073745656532515057433091020386409450784581391394730657503277864689485217484009108034101268376293540956720085817475832417325648067676505583024027728871012159421096314431486196863019020740518738161075794830628641986537533097953032104304530643606740286002528241408359106083653971047124921078437857423313683339305721726934110003523877340715704062984955626644099808313513043214719894989236321289197356820341396033855594861428999311095900875636453945637811208062756553514525613558453822021553227384725343344275481392505179295325533539494889796248354556040338813956830421855137199840540006931990735489385746837370655028383806388908883796758892934682295904888146726843526222430646422470752580957499025468165362630439385740396262140222878183646839288998290625675128480361846922439374045094434712452355329684244358516228685652316734936264114555914372859030909848864413936602755290724879131736783977520839613936210296363947966610809775943996060293342043417867924600511934311076353790700722136205456898360557955072956517225701656648821878861270192300499862813371181335008987398693819848746665276074881657456855040067809170714419441672874614917289893023291595398421766689960262684785921921169553320856428599859521472763256725929185715250912226833072541834248223669156352674396257343013431638927351713219167497669981185930686354101614787120790418143984329367024263235856353025322778630353203930345106234800134413848644476194443617717896694543093250359513618544904573124308451538739208469863126681887202765237946500989562959230744383790374077111030568060224977295747302049837418160043071352128941686935467674700624897142994497968716134688014477974095344983473098744025434807692872472395693924349562295958397658706555664395247513722448430506224557331592940793654472579557139559075504926702621177864070401007356717777956754442361959486467671745910071662897365810241903645195271875587594233610215633304086641254537636537857433759338992581785552097271977302516011995638055922071091255360555753883427804583706369196344185304892579023257549005948865113029552124832903601982839732482432735644599273310070554403288868644010799976182993078922651728367582445794554162271043149115234074330317021116374637102654554266581555465299848613495809475112264677277844344362862750582398428344757559587535864193330365355219267605860476305054707182315964251165243988434464709026726233799302412100342748514405488163497504252924486301399703692836416327838545456075389080618464600745348280060257127144710844116335562171916859987978056459574260482661586658847978877011666360788498103589239388783063073873570821577192752211009293131624497460724839365574383976316230198374545575644829652847094370400684713664960351653159099886257838804392155133946898768947836403234915096936951396838454426892226257345807123146607530016088676476021590869970764684905418191738789616057269615018558236059183951807218274101619840467667197393574284828459533280943536839956672139369176925101252271750840026091957028899874416088135454556231497951561207563135287947896770009374573670159360918814194215757921267906405421961911311764621247612931973428104757306824464515644619185312655519309891603325920375191458959453131449137705278332444802254174679199189170527795933230982229994631265865907013483911791210151562430936570644509190209557097970609748708860567297226019275277862929793124517065191737915986362851694088276755994018771110517791095850427851231001885088660055744526451311181237517251528611382908081680965916387424143531553304909085481322394162859034980295740130419521005528591450048171539905502272939308412705697393819948026279033923154320047404540011480502317831297843617720908840896667858807006592665467483906686296734831662340754518155828716023735292198741109877244146500093037886870350426295410764572478832132180505775174247981246177800498749414390589696920750552743208073211436075458520017657202581345223966375729512789679085566430529952550732355929171485182747651042811106753431189704381715179337177898669598557574781460806807754651048083963915913324285229462143081153068908236338428608633611635865777469724282782121394158109543602080879375375606645438167052639037327660051339228211203807444515349337792120676071338801025221174432081695093132887312633189070925355160572429399734111681296575607219143765042846642111076050005799597591774316017866605296069568193937433474252894420284183241026302085502667348268065186561391914988604776750510365595188018854947290029001377427628914290970671246083917148256389117231120960829789272530671250131272948809219697699249363265391019993660881730203191307478384741903519609463684161413995042302167693036721700865227117547500853386614962460787375382885567432327481737259746666967172775511349513201359237525215748235013514139255705644755015938790994692062333339465941044027195563829288214520781608050166092072271080989478349440963666314045631455925081319796352482436495712689784076303531345808854066946010141280523808926958209679942806347583141673051292473344814092902321569618053184913202884916194396754880132268092315855804109161524824713176619081493613940684178889181359919796571210703877134255248429547442919169786434965090275235413883597789091147823448817727030003333178886001338870060415363680418449603442764603571059774516121157125985414484841298114398371623282833397731819352052667774243683581279254482102409611777326578304478970514781254491072983217006435579120540689518596515933671404791200371359539839952162630222510143142999612794079554522820966863096214470019900053183935062715391256496846881947251581430936444086984147440431102213987982830051796965109837397144677351757431275137308089546475286531588468871392112832348177521548147850117234205993766049389355636737700716145843813319160752076643401337403532015725366014847577454238644216352024730042826975381986568021953292521731566956294754762433055961255088278809190501425188001044482019995736614379310945251882547856551713399085516477565949217599958084888920498790804278669737710499111179229406189011581648353012671652747541751533537237387878162899943411548875554424468699659488826998864168061646273480207318019771385112102832598240825853580180374125614688969454285162902053109928584055374446002703826223025659420195938463563371565128562839818308693807213695233134647446044751853984169015847263248662019837032578663251139267592221494973651774986261160245630649888954928624429703199476749116422839531288764058501329459170736399149700111275320548736524278516806677306050197555449764636939984143884464425942258666235350524726168732384486814523493934700030546988186843952225421394724609470851872406887980557221009932084474084123058481254531991498333895086517467822448611816532661528894216810635384725014771234699878499943034757909005905556279722911580659682167269917371662102189174828719164691569009464569441647322463377677063846280591124459196513747790423325104604974546249915748699019828835293899412207756557898038397632388165181126761355777452226020032470053375945852477946735121540593068285726232464551647097243230826294609644247911314302830982889860888095790969808952241840804559266183579401858055941908064973321539569272815763648796210078483590360879913324173844100459569531559559919462447393001152149159071761326237546406520840059881161170742750714037053151849000208774222250332474522979905258518395694167917537203743720451360004900234823884205167872045171192826276706323608948021278519301695676765261883994145451276070804114153699304734502327178204788912095436424605143752419632251333984537868014196379281443357055376560710646174370494751468203883006919555125066324339457048344946286836140878037635624199951989121578311912943584190668468840070951867700817056466112066972929105773665343473554400974603331632765158300034279380713875310140238467415568261027170646848370904438089993854083337270529414127479267306832358193849535610287239879616289985921952903504016701399785554736967828281058525841439803021533290185986143334304314773601959250178236586665139618176136882654060402312247994540782072974124865045373430665705120914945025156039222243196093209533916870735422960036353723537912041830084357494559823237561630597766812914340486387042219522092101431886767093351880286035597517745801994544003766871832884445899800279735722081010186315126274531626889759771805971012604130074661082562131606536213172262438587366507375902624526821362235862629448602799504665518824326023200132189727529998950851006092147330818577313829541476612873361612291499079209922540817612555656706496841062779952508469637627709579184394991650134001968735683915949014979723204503670273208658234349133476831015406692711991353915865969586649642901449983830811123745692904530586297184236215995029778756942068848749461358243791588640080601704004126512014602486623368678794567076181255732604858857684593366721150350906208111638717609241847454796920241417408888920194062716201374903608791526514611445150373922303561943763774263815832679983165672871742082943956918549949250253872019391783759235722705381284490065448326970922566317106189013694692384018522872521766963662620045669411696547394909626205177159467083256266986643695092412649840124564112037458660155517175570544295252331529303533161329504899721248321999341035942741298485508694492296436540745197787887192301609817734594456399564909154698324690726646492356537263921998328976933095650551937164618833092827594781510536931331141530453560489524292971388709301245673167306151744571952344401371014195158377659472807951860710232024732228892121131680639186216412524676849460437939892342020186995692251613692810554234249767565043418433378114906457627837068833843419959188851293145912307391864971588191627188270642467729216330278201643529955372936221262315150324102500373757061905512074384589078841186633565882734533843757435847162851473104562382345495937184379499504965959001775115662390297099461464700546477830382687830106398070223260552463470755060399876585795325529001915492754542431596825738912666682590352609934800670998071611358226805272731381485890646292058720500295428887638031010444956822188680578086423651441230226202871260030254327275028135178086977584044395643693952514911778249135819530468959380530086876673214640963042967336250144545134158310076939695499903060431013703852990208185654290392724752222361953855995677466075030980181762603482632278563869170785328704396409127321372810786502524815816083512522891340522413626458788101298018006235991646384239286008958809786804697056024700999444794234152554064420977522444618331632548767136944401431420508107034595927256642522233037009370428966367727500070361504948519071065585754549110880878703132001059492190348669947436130983680696623766240977038232838186735990490968240750954422248857699956904338464280984052238643012972844326711756811380633994597235761278492183479119465136414532116998010113511886664378220151002397440866103682933882777196007692327939013129802358567397522965977978956184301460162432402828431760581915218935254295524435780497305581833215598112686511173894595585262394312477547848283078344259017977993966816674547703773347093813259792945321972075891452560716465748436214554460456659785561213647746629729738413063075149137826533349553926917803271930739234355481611101168271491785492896498191780912494534230196931050789567010408077450678571441957033382473057424432102592164102829137902163090191701118271224815589879796013929755374097237444888832586294272128975630897892584110690719352943785810349461175389961387548877454490321871414308227597012327165661895200296454616949449882096537089069335750882855289628537350082210848141524953193889777802315035022886086116238609240242577184055200656967313677089310303463392339644027863718083849513487929997255910316621717670892714313027837364548891010283559089626254733084058643933720999881309793279309799739352470544794030471108754363475921753133455247733878153578349915108662996936070214846190794042102672735292357688094113090683521639840983226389814408748951892476031311585390257239828728468735603886005835611805264178518017281593183105603695139619797364676128962256038719320014338039688165370589083715467939432410141122914227275336566101119802541695298197029940838349820845849758566272095248039793340925449462091544196094463880656128713791495434944796937015166791946963300737391361231278093474612635942591625412178264591532642502835385145237697701460624959144516180648923589946377782899510152745693356283576727870735801178368212854965577197990210569068648810098380430865103116840381680055499110709998694237488286895223186672679952310494869690498879408444136295046717701904560411840750303174557265079999484846604901973065017451005685483247792474145036262183114981704161936251531011448972442164620477936205406059195561999552996928305438648970607599939960134681497575395645867923544015881699240849354882997892384803855132125624653696390932276899708745248660175873840169336240756665619262490625748556327371758464582807957299892861479472859133479538195825030824339014003440139033997556774199992215971634587058757831290394595935269099526936863824806705334540173319656086533063547546946193544995137460413339275926356034077156026938140038998674633960782789140353576950424066626063379789933547004774473777112644717808028006018299040156580211914273782417342972295135869008966265516677824142498517033245402903162063437571593612478170689476199851637680633192745689306861606012091937628853380648605937127553627460785869235153668960131536555415359694391126614501819475073986289739938529726099248683018474628752402320145583929410805676524538898477167374115210001850496177973614138960470832215415579863964439922467859578094361897817123926222323489157791836724051542772383309108434293887631477453026274219094699140723280301788592253854069259449754074255212295956690475099093192083735919394102957654425647217417678402961846674980260353566745206920390895117275790745816034962670718637054277250936455502991501489049443141172146717003269386137735232764382642570432119926655124353981974961712365640465547818729772344253898738306000894002974211656572636922309925908018178620213763239367361226149728134954510036200020360175161626929728094728038175783663503774999304076921696386893781754258710721258064326453590648244600353609152629993463349500869090095239652794255844453860650890084657042581179455091591414369050337662999405963912390328074857795643282039015519977676254582909865878116578910134447207149314808716362431139454747617834719135962920023456748552901491265482732056760426023642204727102454683738125194878030590603826957591050654403051594451816764725322817717124866304576606591161645836512658994870255257264512409095424456934329064555745764074110215587860794571077113295838591323038536224713542920277518843157254088514965356271733173894466572641523791680003621737205927984938898845917061059925902413992463357639710384571968588938579925041274003775302861055755117660138498955441391277424870599161232652434855614500531489931754597189764744956786007101630215723438195048633770372285981138356415674037715847202270558275101815403017932586848524889816522511422963826796293460673087095438462602722037839203187473317840736132436178668522865055522689832828057213721798692031919432265105195084689042945944135052142915057320022091227494015363838459794003853000620904349295984826281962150317675989868566265167888955265911744717664981117118727180378666717434784142210177935059638214107791377959255064122661812217227620832267202719323629946483338770618078981486765043268340997216951777862712138133686746160199468772142147905328216401747075345996645024719455001272133908740830417315128764103880232716960631560216054344328911489323720966526615209862548991007187269591749251511601993620252596157592939264171812749241934035275654212944023073855663619033367593757884981416458310053051790900747035738029224263222436506018281437404454366494013667485192687553014635520333929515244942098851784431679206866751546871640228704782824776667855100633730505106443804574660172227541853803717898360918180901045605050960155633218675169879233796243124481004719387569269081622504049597208607909443547555048305242135614737711005692186320750625549846680529066542697045700792040542025511768168429761139108953725175589406121895380561368180655749087969581040607239138901839424151980111188851544623930002172735059147886747620881661901389992018076378033878016065115747527336194848193791148256321544010516123434015430346958693577120058167576636979438562693838059768243053990521392554904480921294511372215662479047190786540676930222168618821331906616861459651604797901851124253486921252110695624446093154984249932151923506195610320504709840614518453637313623170430358681697387953943254939098495480788992218420973151141823087303782366521750868689396270167243780919000999716114744136048823634985198313174450474414182294224613964116160252126790107547252573084998029632663297740015482534820086185486872733900256531218324204301949494387239443031679993123488647437691385532254686186098056476915445701902283818838002907670593025329936920784523464466923837424572147015851427109626410278780019601838562744308693002755471503611885308726920481524436628972618453529335542631135021272985723237065074667916073361820876955553131765233509701547539362593391898256683668042909146194434717480149806514905476081951895727662878782806284004652570454343664580903032615486874857386735208826318538902931312305580492198598326161729699377525642953584732993758856736729705399056527304900083023593321119569654580444222056569318672170352142208667544939653726101240700649581727335231974511923136343822467125191225956125849483083974800622875106269172733956968485952960488023068082978604671719730766523134005163739017459484266551008674957721716330498611263130893314021568289731518781271561180248908802933842429250364554153806495103191788174606557593026381356590293731190415742787891767253694236795513905064150848206002132900705277007553017602624533999631235783611219630354009725687239767068558839847200972340986575219733613709524001800664807749918110865942194748018339527621618829510300216778570742371519969470454236255013606987009613224166084912545786959498729063241934704575883175642120707046698173077734989260187483769099999888191780962153252019631122971718600162613541046755332367017522906535831069844498668471347799965546814829567659026775971470549578623721585483186119049002393623928145982536926866131641783576752233929182555952140204150698642812069842430871376629107444490055126313734290026404827679132843393278719473445410524138362861006921897215914174155940733980233022637221678612615186040738951918681699936552752236680057686932948156322342926133390650208553847957220098901647505740313522434138455191049225415957930161811611035689352882329114630897695712925014392730293050999796487817004921981182425254404556762462909965936691599538630697901940830335458309869753391909453628080559948234165380852260103068740414600529341255855314603843451223257918722084797866157507363969876519284379708400200403425655295440844283247628439885210356385939339014414019471878163205149843099152653256797638707969262545200220755619521592829235130979196417559958477837070586006363178258839174377833661412137460984407309788729420179647734965092023890096289040570721089310110870462288810783079508627862230939771844423997038169238117767783264090671071580162864585681820042755414617501604363063678005676351261281917849222781543818498423237913461998612978601715510298912159398327225713501600289896495740687499473699918193500162708359209506477620370199526224965910225957766246818577938118571220536283955624447709867996940329469969986631284270593127897295243184703107054836078013795795000913112704430913595087033234735071780310077975332008993871385238285843919405660475342185431798894177536334778170381674329974578079148798366457357034107494415174730417379531907020927900826126847363227071596453292199635563994790158251810474237651190956613121492351682739767080109756232663976545965902051528034927891299750991090234179296503726763362098851908061133421929826923007367290901790713693813359199895644257260140927375593463711980763008548594564192784172652506128686893222042350109835218580898669797861993164651297832840114582173883518554709830746668322139197333866888493779607356289787122967791108981316481409187167233771305957578888853984567634137956829542293772652823353721853633368901130768696743822789463295641462951511181919294563984965550786044335152256222584188839283141922465279540011648330563431749591165401343682195164123313705263363047366996341853452936597986846773839000716203160642408062959855270919411243361446121449691611565833709176342640647053606401067424367825132025287935701279933706886306141787315174389894459878070108083641118662329392601590488462352180997250175734124091961348967865520718773459945639196856418278529291002047007478467797889042208799794441711724440306019354013196443879999917724827419619293747363754755418143419173835698397840122352495774887969785784561085190343814804257780462313622207442416135978288389657706960719657805445060386328236427216917043123847688213712090569057022062471354439853557189502901108017042911976148312927326410015929840831311766837948590945165736132738188121438351772451212844275029209021656167754372567991279263503375067018200525782546923524875224489131391317995402493436336399282986315274416361255013094841587532264858356049949951018529314561828093218739558724121552644811379745952534698346293956239074104377946368078530022035403385123827924289599525427787743907598332220065846812752953222046622455085587027392893884560206941934397825836675004435454738872079836127885969131274622093965315712515539026580474203414215140567486783688259436970352894181157333444925022398984016043381803068943370159924693249899097586291674318183030465065143213979875672507653179219342825828629576707656282595190645680272947569560361251639745824404281493585843474487491446122191532459293553986004293386520041603067472750358118762759396433141046153203314495337126888221984131755854038843803128878410516664987194814061953992337885368502556403233328974779943488929173036932598171220133831041718051754283068750842532730635481902339714592273039508934094431712964074837735774959535536753085116824150440192699369699668580232693231755155877191138363644854144482541534107494006294606468352109118338031386262080893494349314510182722356791576774552956723819194237988606109268979720743237305138796069294509124815373068942643501075429057080532694942091458276050788593378651758851548469030292604076825627535813407359905138421973345279763672889869452484703623318420955590365049658328566946507801837229135665802576705697173286773862801031400319609414832088564298114531733533658974336282811664426548229731119983483170709226434206441302854507906523905235996036974167585858781357054668365741629705118351998750682448220337086075838024905562746798758930708182911761321789339908245289159061150459966145920101032270960747516461616853684080712394857645461515718107098998810805464215390437850688759620750348991349676505227097488785369001111521621230307198293765415463656233145888302025316830205627871415083992844210117412019755697072521563185302454199467092640057013304054500761603009217654814633899842335541052564446444147646032892328718189565862665355786312075601454803017201986453806129843601718023264410151556622779905117768379040181488963662248109828238957573186550999629407504290331737158606887378353230032615037634999341127802668288262324349724736084263588254053680129864386368032879156361579072771661752274960743084788020893524428528884953273298207810193861118476719433358630447340995780406094507691277320647381640010803108800400187477382186053720489960161605370671745866387012948973222566827365866725046573539143445461489096673000615731056721177353972909373766819338511936623044274406424521547206964802030880270614015649662036286913167940094905204068731170763282185019044968682157733348943072619653012340846293350122220193153871135660994905393066329470627964586017887466541883503022042001312723980848700383987145474893400708729576484580008870549703581119606582923280097552327789855664185838137989827014025375409397255724468793642788262647031425755681264438101201766310312575867705805790369742822846278973995981481941255316527544449858054189912493980020418499146816194663353218452602866127462460880654627017958873946815023748789325708065144201490998626192250359405051273388844659655769659255863109503393909376478811839702196282955561771659722746093085945146567401094699180213850625028066398454493829773060937928333405464394307960128359384628051983176634456777536099911575423056683596578232196959688309976759103483017542803068237624309197552388962216343653089776603442876544109723707674893849859436425075506154777502874124484426135920553635866583039235602811532250179283049576252187719922372304395882950254414040189421865270197769249906336623202286813846129410231077517511231191381991589838274483069393967416227176430557519750922421821017121003941466281757786089225795010666364362211549055445054245887737004082815879735585221811858494338517022507957176771514720681310699123560431578142091025741315378719927782743561053620777375945894916336186235334334273332398325534765953004160184956570755645080162995397865873361248953133468279940627478878153403952603736157518116728537955187677424768165265703505231927927362685212316387123112774027437093674099180881167335831063504721751589450971097517689703096801055170838146305904717024494768497703396807701968609923066099155342229744691170622916222482880059940476957158102494801263298482987184854074784882843291496229340488551380497112127341317638938957839254615560768043607969426651764929194116024890483228845640463805719920112325943889744135167621869715488806892040632958531110801968656368835622552400192785443740416333201089334755144918859237382335007984545773776679937988433143822586117625398614240176926966623102849995091969648159431403399855584294735456998028654486437795554449243698051490434860904567650869509307323644956884622487787084018471659425200561278034861056420623965697911058044167895157151658682686824928421313243865764409325478856710227624884570347571111564415338362264279362294996137326358841230918761784577337744772137461479090408038180025141428799367584771039762987014907212460371040736151002711130652604683356895960404842872195089921439854123031066023038048991927558719559967245573084719598783749128192080103595151184969273540003184121942146190625641878612710549893639255389772876013624663953508622065859753009927561082169026940120249965220792376671261261209822175041613182250344259857626135876849271639153316243115691204182611949893054605874292873399406061078169698461884280273435395197289810224214666332728271534999205276704638254972037881721695309226950046146377235775632127918018834760585213567485364321857253220154199740275289239125400220754708866764201018036639859764744687417952060565637569935234996570882561972938993337433786375275118491044801593972410361905273362920126085056482906912635157729807874089653925573632096472331659638648564038894662714060437196746156221591394893598649709427644151979161056428324191570930708220948957307805317241501785578379951619066047747716702844032783997721285970905466009547411781700832313977289330923571697707842904177064098597120688947662529696734089771595726788819861719009072115696345156250330107065506842285533636627324808027298148708513445869098318148464378876984178326672024637411639700648883533985552536537213865182001460948888907512408152615130371979242642732859558071640153237225944843219879173303880167184485943408037326244737074642187663135249922565995904348474304300982154131342885041231904433170992413466836684658391262630269381885243223579316890257868109901065219008055721338960424544488715429136044637703849736763755810409734750010443695896845879154183195062782960073082757809290703212652343018718756253457524426427574851795223560547391972413771142946091472499300076752802618439716560160763612829733170360179887558703721022531113418910987600921395026687245101800729097980467313720271763561017468767256770883167448767096291615588107001477917728532998923092241376013522485725441115162031533774044184847631722099184628346161662997646227662302217680655877948556040568714024726806099383252948981576893771315987696688905990229917781202848252590853546574451156111930566498962731317467834190489716553519870129963236125640065725148759611353456376559226475073272430823834603225706163981958737727854278392849207067581017786820072140245874640818754616011418014921704193872494791439817397916348606251663708260570648828579068937897199326531470334618059359609949418216592880327257662658607120763850034420726004746521661260192797390409397000002992029400663818676909255893164367437710430375343534937775040613326673306990667740544275469081278817582942376661600668978945560091742094188027162590299143442802280357464108664110560046735261976149580942844801511468576268528873733048786621243758309720785669068572672442911608902466210150132625580645158064448215043378581380798620313279161401708553921761614907019986590930212580017605985211858630258407941383244117402798552155793409466663391695226293891849848624000346275621965143230301661426333408448198296444951752177805349674527918925372187996344238413570833313068343397988681105189994640133308323885811537456668559652950589863334402056807270806947647535595899963521991574419298955834784236846520553624872515579398328084628104073938542829663132889914797835695732107429504395641101251152217026315431108202922675980276193507443553122962186499500672539674096207932794265266888292057155321713541403240531064881763859898288726413443143011508522452347563455770663932589024098980162474913978022696232130533802105579138555115213495736554893288807274447255882403802582231671437007738206325675333217332594988481192580758026409707725190899314801467996688925564671632242207667581795540662922158693597910131901876613434356087475213617498732904922116600575121393920383061497436707398818863350215672668635369468022067410136772642062914438613109510865163466105835703207944678081569520672837925584607065483135984718502194319990598032397821205330315609653121321501428312141721742761364602821521769248101667017405114112962156194919675784596041720540545165201177459113382405216413420993412342687806131629970646806566487234155597573287897555738482138008408446483679660473481420960996725413162840401021753498208886826243128771771690029989856625801071830409261787668982312090335179942791936401902683410411947211622056506014158847256522343374441096656381270446434812605498174580901304277907564496850526316483512258464484732070574434072537180513696275568819771462756635005409856800393577735485745210615435477911053346026277036405990473191000116128575229652821421865337009155090474036561709476414036337021965033394782280939035289115408878362699253201355932998793186845782861608955749651489040484080386704134342289917705995466372363908359079693713150025134237710545894968516444346376065626862098617037408657575532480837255342151854790607624547446223028407611794647142066898065503366587614450343912039776214030264240011847065695416436289708200432451076048810278492983478439915939032539706637687064405423664117678666667696791442210455891304319166799565991053559945136087113493703846715572758616598298177164341383280706677498302268461233050628792145767876303622658307714253880545408136803056861619657775401560448802431036456185770746311218294964069071246675270232786778638323198770111512474144513681557925352028177096459853172009940710229839796403110913905019069155123538812241094332083739802507918604798545446026563757381713658757698845575099189261204717396272664148311601369523187195409466320539676153890172193540706853956096289252472139998669754163421616045303229259190510716001152043335227828399770059573775999034160085533830762676458752498734596740159565644667302655399058872540412581137267892731477720355098175073352327573574966655989651699313009161862401467663381235820267900153437321548119343072617319555504855652520064298952414082133788702586168907604854703962384592859626845459851895160548508536993367805543846560523078645283136188671094858610589325462885603927048687087265008176554099829906850045413971001180835833253552676094284075063503153320381569353738706925519283821916047204295120471274083466714766468501295097453264249524424319210124803527769996636451085337577645251664068555195126678376724372071666899367602231102419259890686444271773690341130757696463875704717203974187575235409584525711142029853214712946937560684332105297136609024812226646827355770998368478915016138205077680615670930419791493100161791843106165169868380004488973966462173099819539440561606103233899450729266353613526993740669351409730726447907566421611852534728553183039839921109956736246443054777435817323853510059056245059760509718177787464438488959865260694780000692640461662719924075074125009521794061248416114122156354524196457918982537541000143199187577216690496396520568909922890196391090429540177918620557488317179927964455616672708420980979793781014086568145134118746730888449070817918740794488188293039402035525772584116770987295873497481202899950470083008042190942428290683881296819303809011059243547208475339804163971717840539386396158414115200619397868691888666535030244357092811590215134365885874446062310239912660572445635627531548757075951818659674048790960898488821697144100074832426489330121182636220663028921570099634199292740677634329494582914434989772189888643255743191779372576983149832342132214680446770621891778532119044863568963013544846430483025328359934082293433098452663589226852868056610097756240683451067285511723897218054646350495942174488857520241318938989754885312559791709737256363456113235989770286537776160050257378820766843233728720574666521727692847443773173033277988485899091930310747905433759106745441774796188282461558739968029883005849666834468787924585183299428424586628895759194325774675088788666345505928942784698387740953705600806469328550049796225100441973324502107070351987344495032958728826119158332718775404411032216113683358619550649537755730154011991350905365741409310784421919928572603857511821411396223591855159276926187936876627473737256781972796613668507268373377673642459851051268964431298324654791151860995734845584468071760919884868194953438815998420612954384977197101203641532852269681436797605095355920906868898603933823099958906440471748360625499831364465423249856436879745183706072207113600564438762052144786413663941283603134301429395800016122398912299816958770940984610689831716268443759860510009672839924689734725359194115012709359851418449807198987772891424115165169562105771907572983458237121925876117052294299950124730591296257198821641273864812092034706690263560171591851000260622148741937518915023565750183919058146861566076904424625760164916861337129113782493105130228123476690418978756315179781949943784216494428971769708240034243850359353292563848429577278460512866172178334613763054785878477665059826872180755927947993493501903851524720783706657937377704500135667769049236539904864312101293624042707082779281085104897148866693411915226766427519543427379858647306245711209776303719905108566266438680137437877622202063067229256429821479513450012321183572738766826345621921222827739787306348871381069410447704882524950674537570335624949182927163665777129292618565135573345676738623280098426595679947102949084275949186915904184961223367142177297693668000017044546940349164912594475878865417220490898868189444658333123152144951605010726353186983158880616387502809577476933521547262039951867585286474437230230600434314995475724086452818444133368468256770459821881660550188279677525220012238468863503250333331731262948485508521851779366136233858716692998027993458190710878804327409415007740432070232942226757090315744702563449586821865330205044320831864915656034222674582640452334680147665364356077807977268114712021194674488991530368341420634406717833709973895577742358780109560934310880505901686233291484032340137853620281289652828406488695056436714761529112103534662393441468307390072142951932536878556087655953566143950772555761331672866952422308864190345556048009154476684066734090024478490304975934338209247947878691126299908455804432609465851015439429269427203784327855304642139059555375420748098921784243169777980054425718638440158611906898682593340418355240704812779920346941210094901824320922946529532964034116075033363047943826923164047407189281711731465545246938700987159628056083379257219812000195601009151701496187034252634428041676098772916899147142733763850070474736107338338046608276237852655207625336244246735097843210123857555301559422730874194886351403646873631606800796731606310841170275562285784750424205856043245563066241390918756155920592244352046693650538254050541479343900429424781639407187966932272816688050569643915418846203221126183308486882332254171503346934016511558094951496430324081276601566504840685108899372501364557453133026090211520396182568687862903033591609421149170537726625442112396221816024537273892006996262343658413098913313948749933967176740796743723736218589045007011333370981195068166649607640248581421302179879801259536930147775382745475572591962859366437558605036925345806987770135202793845011584470233032411972472840060610427788456460810090226519004321359749352433303590969766832740111781161026951370685886195348138552327734964123873299100235515422365275989050274366640271203185416464823851053689483614012548742343654063942341063414460202046722657558647834112314570135083272218449286972985582371205567980230020846976324893229406202317336169994917399991197687742558819467974543815166065024275041474808078094588400317870294395233899886013685888068528718970915021161899929397750611408469337787827397422390302944987055525588290176938176102841625422401373144029255603951766061415435476890265645989564371477510071546105325142900938885186761191582909137518334662275914321591312721511480131229547267413051732373090411390569257581674241109980537258432382349492249757169442517399240055912592022329772585869632149065769437852057619337450626418341885643709773333445484935010836909370473036804806189257282226760032191227004321548311876500515637928180160450491486615392464708967897072413463741290294143274527337538739624746293776902458143658478927887077243623871934970909931741232119959592856217902619438007487453371503295066001952014405637984919367103330727037821752431216088467204998147736912062225212230897481544518685211985165618436120243247979815631132545069778078747155954576199573453719959832488189322727314429850300277888145478339889499745072890695964094049674596527239128944803049343263528321668602956114206446593878312395954004383793056212985131068012668459163161037440304129890982116656956973821305595169114937307841818077730115282709351232354135836849742224251691060926599680833948202412543117659625761446657922256199562939230260931865651526396241508667014798790915130383869659946529648199984101350423542934596784644842701873483515123611619203763893483906322794764233561369697656996272734114560898729012453778269162506778915370842669246248836184059252023494289133522572041192248607603229037331647447834954721254321568080617094508877895178557386018598594783925645949491246090704618575339465024963021947897627169917742044674867301683651569400568029146266343865326449675030761887952250838015108428173744512687124389810815249918630987903207092419525813831700412027141589402106255258242650641011564645981956832772541963548411838465040957138674701351588102267575280906834849357394706320151807924837573734551470287053510906230982650833554981826389091189401292480711311428998533968365064976788781868120853304637953666742399039935457972956276077848288937509066653642122535997077058109237523684761466180785163980252450475769679111856144481509855108839090448896736596569965204004736092741844781587977807288750547444867225248677174303060284194676466036713891057556435905744923178839173008518793551702551011341120595450019054938710462375444976538770806899944945515296097669857533456913003625769555752811657760790782644261892076654651649736997712018707080529342296272907586776332485566750639251227323023326101820747045130087777218972929306663491804267380174238499598345432318790792763459233951406341379397838654437112220665021413638742078788824783097569249079630868666203291353888419051384554850466301843926231571667155566698811931596286125054829292568887900852010278047096680241035806074621983303169714802807013485101405514978210041816176364143616331831001480146923226225028311262770417880046495771726286694060604935166802802217710922958789198680848717378799235595563517642637511556222667404593243443327072516609502758627143934471708985882154427730876690386795101725141635154027338762767818499090209875057775307049932964134418852867621101302737631511207115526603287782270520217448502622323056067586288398096153237308606435702622884678546234729976854987662938351225536654308668553208090476184849976226529425163671187301173842267988404822907512003100279620458894759566550282359585297067384986338726525486248549698421586311017207907318850586315990096126005358830761083053311065340062240745101654238190060809818864295226932242445408752622887107890583699790605264242358113035363256822897476746960733678103674483555221158564179758822580284143802496482390997745103722602421060506317024017441376918603416161485173924540730759959056142077046061216444523141270616752577151509114081097506556713187172422590137342600745553398418923883665941627576967374351300593997374999186195226527904328485962879066537872110942115280099259649289666175019055457911361617386675075880994053740277859746931139622262468525776474002274280593906912238730310659727705265248968236736370165946393463298634265041840410217235581682712900430400479382753818924049467189281583738684199139287643670007264221668412510498998412700387023189785436511575579380851909233388763845916659659270167555805471675064190323216607633460839302276467778487629387550683526128944333115192939046840511275174349018125625724666413967055047829574220967856425045377721578192933653746214669702986987287523565343983133138597861131418202350958499587249582219492737183414059758765152106290598837509873558208927575014018054873080119027248321323166098110690317190514050151682066095020276167951791485552581456968976694601134971435262182433121752965069941688945464516110301712755984149562042070444363170029620131291494502305481933829025381978641022290129322872637396260152594443300719960117299599063209548360662853228296975545927312462339260476664296603654471675259486245742130190851203213020879621748837446156114915519978186912261851571398680662888414453804184844657707246525445499969390771754043915205776382924841127357179986985256022103121785030028916419612551587285865288558937864455845296815319520061971582495133133405910910595470089479799999531114102208577859458974733800626800791845690719131787688764243277678221624991160427000596394721519390286056383296204617808630976383656325853253212129320459813892006765037331065666481621728457576340492061523474818452495996188268901571811748343441611886107573972884760245943031130409858978034298299087542834773712880827466235811794935169054752447881730879031905928570049626828460196584477050895117134160545562661367839603664537263410293246781429614071291278150987059467133105910347274632590154416185442232823726086860299620551822543541825901407959503729343049343703779530930180092574403115212570625793855112505666116092116770118580295282232059945849110186915265496777713019739387185157158656444361176593423174094850993114894205858336126006710045966809839766166454233289769560744240661102491940153088174392513926778192618870822555827417366295783078820774824373956330246689472412720776881542102107782219034293698960352029762962983392784598948331247139766198922653574952297068720084166432623258566537088082271143451620585974948957053073552959069387729203733053169769732735985167298214953354010826898019093051980195309017783678926661634852282911664653279372592085517446555811084162063762794733789953229035164842789383659657826004564222134329390008285681901363178024579264628248920256329428511097784113073082836733473041696655719906838152570970390555672937633926828434283549920518611283393824989004498592764629424277878382781277458778948246768217633065726362919076881086144634998255551160237500197249527584751472761533176941543766210921599128330669850875130806608559993920360700158544765622515969492066908692143072807197018154648215442619923090219523725410033662726025110561374232134549661481960292680843257896348541942332585510225897817655208703465960538737849101339038774787352198652047146514880533835588020778787803713200695032864890053613427542634350932414817990539667476102728116935283596050225959440384514478999753845680454574721430405228276488542942793040941924744020727785333436142916555812994625567296944787005938871899172823230495316780192697047315394433831819671825961415588898788099392406190005047974806891674582998665348731389714627470599683083078954023690226696969426769856761489939136112323806278165270971636458548349767460942078726543368159379500067969950924574986081661772863186374602261356169543559900311585718413079263346659681176821845123594316865494015459561829796359150783461316064522400023510071955113923172171776439471413710835582048599689126446269305274186674168269309435554044810398163045636523721927238096073179039395358322457718236523981166519563885615122399545090793556952309802138882814217637900714820858936272685090272874648397393115684521871900133463094901370364993657964297881540706046512897821215053038949339205553577997056005497765584612149849055321312675959764048505582556866549748297435046251141412426878152869311709840811810919561161367836007228207302073166811499620888000060777735435292669937287119141830967350259420053817666483072366133185562028303589959901820345690932227420939787738410000008813473572588592440998833361575547385188883666187837583256246031515893242507151642649356569669514688761987948018417655028041918294287487706226256230193513061404064872521369021363153233577994620997043790931398618372678705256616919711936741544483939853308716781175894644422300125810223178766024858494994203102202290776373281920209358289835404871713192891137545245269477824266507020973091024152650619388779363375234085560711044947818944978992277277729686637261860621692681908466077271724700795599661188609862411603384159381454770248804055409489630080524278011167795242302081611521044010380539617321041184575580194599318010925736933742684109247167437509072278853278637606586147178390824300806909014999218079633964826242969435410404156451373104511478864564291213938822304712589454885517673227689152487529284153083328994689038516271644950915576091487118327126712141279433349266236722010032052543087761241610166783530560241913606194825429516130564552710626634202976133165895237089586830581510246938637699665004420757420784868188646791027291816915867207672176201993061435480536417879267250899721164834211471985769596799847194381996780263703036384328491059929877196620268030169308243145163837201830064247902503964352234719787718056616639546878332199267830757587589792493165088985367886000336341960972800709868813336943046329043430497708747450126381029478825790903644124057170109967166315025086092054769794251354327657256826564419596940358323448345954020604504088472636063623687038908448218004301157452062794040050668280802544103392783760864202778489139738709814097062622939477307581334437557489135616661690779301768362965017977019234091644103225751559904824491127092546189487627093308293783557896956413249532507458579120093300135927952351223663616392511056488867045547701119620878146151098681647804464888667867102736847239557313966550898245142074274772905823765523150438777191146106002947251171401363748930567736158881110965025131561405998670877183021087650103849002668703304739333791861347607999176253921969976839702683783218488106939654910855196397563130558151011854073260613242835676053746846198894212456124938788986514420177824841043539963250872161898229378210385777593477437722889072782041177586661027051054345060816816144628678178547688113699100808209548899691410172133464967152909252869568328280658884389589046305504376706074833627918663722930855657614695836478660832168058879845044705299953484139288416234495383700128603601558200005858605448216526190979683928161089777343500926396715189533926240935229882009286801722295146649348389002259459462901540645580732706225454980408022329511279121883451212945608991956997043158376529262387155679742863510223212295827718926685954151506134338025808723327365146064241510164111218192126264626083884836833860204674416157982823131027743048249460866065380103713032575246677943764051815022168645873662152338082235914397804164593922052098297836049806402626013627638796819413772594375638668594495884532351005713041678406751339710651145806242658164148542881522179587215249104843645875396786016137878320959396270418857575819162091431184938252173986919473067289244711679171615765788964383781300779677472450809733134150539496761222352154252892026970285236784893983776878454435382822552730904065414807081490024809617575029322899710349250876244692379299531963525951865871625720918294003798912229353215578424323223039159220123360080952270371309576840598097633893991208060835063754268420903389380269884745623363876070925446133121513491406880168105494090206159894878103247059031077210791678257543574923454314060508069424194970476174445420317076944167531005423347082748636791409398581814142117030572525963941020677962485099044517928279307437785939086068413029291125607663129520112201693307655917414922971048393803342854220428741169226465393197270318353080873656733199768129761542341442992965380659664548282037095867294655910907611585848080869898818568796862757025987156355602497651027857306070648024454014925614467217971178130215386014789476920393985774764688352311270335639601015649864419493341317732650422983575442791563913211611037085602271690061249477550687156481896045856405558970515876692811794014258672162344240813679359479803217929076646683924703625104159573650441250227424450839637853400494511185527684669348935412863824788914326011592577707721319018610604950187176916594830104006863996613935657626007138900581217231417719007306940175443746177429729720019244816014467714957303423293601847045791388239214557369472468393683849321556897845644663098999835347201887640811393752683565840893641411727003271352061365036861342010766852326143556537915692419023695196877905696755519960240367227507329570475607561911731841649446286127454495553707742093021194561304267436934665619576752867399934620437521071040080547058227025337046353450425053241218482306270337380240279314538893801579609092305480029137579975920025704739060363018801017838024645827312188632333115547429650352746754543434477047829332761207998139304303313538565551182507690881081137595719684739114300846148699892429788083400373413942040518056004431621760827414773101024973360227293413147910744895354675724195065527071033953885551785475419582777484046428038325868847306838443533216854491446094520569992288020324896759708571358214556513456994650382688422538411272877294063814299907613076202166080987251281353344779548874833697134796092617819425320000337140910175209164989700699227693812233204955581739699631517644721350476546135167879321034037595810337929495643928625720475703296506371262119866288144248898473489890741889534406085189935406310767639207255622322439577558259775589591947457949729130984148546906220593740285706073217276482660492204003284253568596378330814305915069789973651214322083953884783444446908017809213544392204278843234962225695822499731357448972836254042312807573394065395511027008841484766498225890583811764829065329018347244357223207507459447489821228235624721860012891530848765602536444386901159100142750105816346740828537683772021536135480022726328544387690768518938894522147085469826952912369364933778952958156436351213489840530710190601215857584444791475881821993247862594760590006423310851914410995486781285479303760605628056868882311357708352196027987321004511958469880988020448272324689462725954917900925497526252759112954514049810665039600388041069610284774314306951613853634073679236898657252992701396892434038060479502930718339583159697201338046370029699837758173533284558001866595227128732683490595013449875059149284857735517932069597693188235648698265069940425265530902139770275638821957672974464253295665288016090835397624563909850114666645374660061158131291547985630651685716720982494238630622196231565553443645989658371639878642105271177562056418824920890308022375491432298082052355347369547840326919704420230742210128958075896527235091271977108152499173454426084118711182887253182012287598898415348019744230605168576023245433860056918882210194722043656840224088309094207835823545475177293481675176011980495621692856109303709757289106613684575600327429594313000215614349390336398711307584586152966939331286173307132691710963661385308511309745040529392410883946301438993977119855611973771468441999032302148238730904126821283723534072590376280826422360092582532128803993550740376443487001313061074134850165122252122693108577200877014239490336431743210850725349074139300747588333853365852556204772673864194014960998229144139540311902762333370421474007077736430191245685277488784851431486520398180652875923297334699856879936395780775636356718484707629958970237817285421369927592600067998721749693285439456403315751296554968512600633554647949856459185168709559107353078851350123885488422793452277082077139933306841459236618693689451334371525665729642724645786030743168111606028295085844818556046536240987601304234814654026514561877611996731304108146215322627734025635325014789217617816744891473440314331192515933909725350775820763633806922632425255353540142046838364043562099002212118409435308875246924474390418143038329195611021938546857517823515345898845960643061011023049905301781584037051936103729871696572635698147933014334871686495968227639235898931271127579311387739949990925033596171167831310373383048176492289017071937253734169085272718653507519386519167155725922747171925495278659362600170372203125209713816673387945596842562297562127507717367398175367438414976080904959797850515043004744625537709551005281805520895550152622022700769943864997836096505760200059160879047408226919978044719982354777334830721680173467380552691135917190822214428713368135660127782107951471755166894282099182454976545082908583416298401879385557767239016633321045246632448409461674321866483672333003611692290431875349258724414329664582211514145323046825638585604253754715496209910912852353116198233601356395249603604194434271643836972325879649474436016851575153407794399675967930031177300622137764875708253375129160049319541996887120797032586702440265027282053317263889571273039486584035322932143193741611241761653820852017572231025576758490821202052502129455772620337453785764503713684440354316029790615681047064586203538128533446956261754931241603289602377264186293525208595686596371071830228764450882481300585385697506349880354243258965845503175449211510127502130534673067501747314347957726445889539291150990536318738070276097138825062722839725756750455827477095605436523494114858096634301347133377726729036883602291205267403077314560975186926539630019110729476648307956646561016619238209677993601443462681740129142561454949067228366800805353489899941056343197439562325239837013555343465141481078594028909350340221424707648328770005453499433866718759156247227628979755034745677127323485472741758657449282246393367764723523740191046121394603870404458409818405086342140647971605895453038828086647963300887571891951466373121763302389669344360363810019528706249312330076021339011959609246104448064985001879091273878989959738971335259791208453238160395644213803973137509498115865617039227220277786146721356713182154626840539930061166584878122811621195737610187079086424714379272741632385705498007156740154599207487230362896115687251721708659897610608174892665837757694853591252050914484355844336322043317917947069735298931278697648474251453033559554933144668510979580279323253564925428628077758352455939847524982856394953070621785766542868021915831154150194456056381343143077772941422540040347060395988736283497480009997471175372527443074859651565862802981363920653756084726486500815042080843806423737513249123014381142779094460839049631181883003060206390453454670291780065061433996384699784441222611335193390178197710285421563445663516622047471871333892491696793113872610447863389024284556970636425459225742582851518212790850735807520301005170967652159456612064529995499519736787222289685310884269305620634646040342785609451579129418417594692032348593851188456471873081565991794514815991451205709617711365691993743738163305215009432037805681399185862285172338750002029234815160455260104786310864800473378908077260952170808429511371371498456779489295844846469744136078977162857676561262999329491263208480963734352002972963230441777823723845376183289587588182760864694564977224843852362094696487899053645370996388187256859459398221623620746019961475876928539104665925256550796984602394368723028462660603086527271527990174527561825500840320235425570633332683382151069271143439781873346867310570029993529103915867072398407346948118747536795319061668981507534392250273503766373122491356709226873217993328607947936488060446982838635160263758077393504033922269466795742722094480797803246157921631230275519805567475880151151654819307282385925284177753994713563300530771903244647569551637829494068605135635977884102043625368704058942167375644667129013085072347437657516216418484480580949787819968237448711156028125780396851560983955467274063831099976504146402204860698954640464322811548771038811053648009085784740368674577188860411549108172178540434633965788570972076804761796072358054214637126309738628103391876156899424749211034945600228838511455302474820195712776760260333016641973378763729944549763639366929091623543312505368796614133522474289430182460352970568847178569376790873297346040794733541737381351373156732335483260935854282244593527093018114265959095730251787591157976590364130130913867385234187325792278108527775878426713249231777218204783254067594570822908330404321153928494435001548760823555619454084474375243703292597544627578650576739637279612942793708362140894394807899293948959368584520240740481991343514590590722903678685998201265382928036113906802715998547613211251779003682049677660719174061219997351404201049651203894317898771870183895268207232169425456773619993128316749492319831524895040542604315071630368525679550587162468399321661704274665195765161032853470593781982233785993981605635773251389577416159793128821086942943655492682819377722173242821408134677929288888561347442346263716492739706996057182681811963890509409748068841816545696509437732486339228117006831444324699539471323636286464974038883781057599115869280793254051186207075452002562325493785928576510013126613460052221279380613416876187144889249760370220338205588281862888369465520758126670178472935937275758759173744235319878865053864870072475973426362779188499127435600855088578260617969667160820034380814882818576716984388820908953530119772261183461210374827780442423761193609409302004101549226713403822312708470155328076251929807610048391206590802859154989321128700258707715082072030938731512423893270283244512764108658525146758021140125948679951426941200401329897082020691403847432291049635360805467653766190957975782972099803082782098112072240370403481479464557808616928705449674083032754794773033435941395670856452043897936417758709118060454544303193519539582003075175335277878359982928920957900694921489833938906796313735062585228487271875508805014418037850843756565572093505496420245192183443478020925104769176918247632553069656896346178917916755957287379901956772998869748523585741525756351674555564208629318830138101127388686176070177911871298651202862172259490220983828281087380958382592197783527151955274979162877388847591675247902533855936155590100883487531454178276658914115080814914696234093735583708602950083569531018368444046423212476751711906693174330035580790950829364764373952343139949913891633520187102451642290729399660370378915166424818061740317564046632576835301764679810411555971798473662016226140392114858090972290884012891387094862062093008447204812882686443887082368994061855978045526281274649363833865870630581052418351021402294523948137643471630765569828981049868962861011041763578674222975347679284827035291659210413165769181068088672740481703716908843891933271114884015598106211806223352984170447031561687215729369728909078831043290429884996536026944077016533083186846655641072375111374005127305306895787464377365422367163523120307962804152209937839929839489883789011192463396424097378945473098599630700749981398314944956478950808452355837484906254263508625240692201583322964982452375378822023872245997973511027701679690157865695083944169712171881097468567092872373445610123824027229490521438257199896037539678629295081738132626955524558645628572644315297210371939323882942045508290897387294399119268936194564294935434064556648319591365402732532823534762519782138183625535286920890127757208904597441261675719880839401056048076748424367861780500604767373734863100557681509250093134464535737112846692508266497312799477528263468143986350457619652635277327170246329135554782950900096395947221792748557577015547307874843192252490616100858277391514982852072461969671620132100583337685482709750577552306363529352706551014815077515996484008152660626312435105593540337331213347578376276771446061464692864618984898322177583224069163018929530484475840843748017178639647757458766626327960649660312176771315184550672503407576814600807689170716587338100455371646113020362276109591133087473136292056484344562272413149379320883206572033360625996928908395872774709507951736032775301991692284236414747552196981614273965459971975102339486672117573263083174434448540056788198505815080443392460922859310801203841132568058877142092885582297480675585256913836999044405165017354663496273468711720801613324223142120601142249184584972780362178968160652356118275981708776620295859832993673057948795796533183962450028705490378362271987770300711139589278517807522433990127850658420875351694694156294131857887336587054053792974576530863468550266399853091942053965097598004839738026533094342203969409968901643297734632032541316925794256392330320170034150138424576985417948720963075997763405473992741305572707430409616274290218336129596624965798201395487884049533793502324858737398678889439520765466496187953843393965778793897315341899529068169920898466046679429460697585104339494795158242924184994776497673715793046931913605401995542570955290573799837052661437485276824768038002840364587184561056130462561168987345442274586041152139625515075095421780701167475837076779799449451423282230594401030062395196856141415943627877349933179788238010236205817862413958070733653745564444707885434623560646648405814459190117314967136895317306336189822339134554172749844025596819916628730741484857302494447361075398077787477047778178146902258437726148202529885022964945293951431929628988459393065184727888555760043769813307435911118063700798608200351979016767571672132119567472173626201691720674144472558056975745543917335826541739165193506312633915480581260687336868026988153632115472358556389356370075969619570095508879800592294993952482879133829215218211919194605572197168189518416113838246725168190363604670901886772585148196627047297885889095901225570076669938873433407481442581776591393012750726156279344433267304915889042317015700452730711961175160378262072287466775362055909609182206360891943067445771082072481956029648159422715188244941769769225451484939658879675988208303729198842486662194944888426332588742820794491880852000161109030760214781040885940034562526115692259523801954046559579226059523158408816571898721277842518507089968143619508883646534980518330547895288884355345007981091560676646853296246918191293083756307467162687142621793791090652034573826798597077187508021346402423867619235600280890512605292839255400941315331125417370585071079063357538211169068419102058800978028616179073181057021149467158562107756450055317595297303029600425783371840524718606858920306297321258672981925633627551945741406395870759692013042375008011695145893687245275899755071982925780999018116292996849666773094654304411485982486497981964280933762717646216271335390321930078592154711128203802081198854574122506149946098472100870622194885671435489656737459109591434963542413328899614815478726831688592940591548802642917856681013478095241948715754274650054628284437926313262253004775683411599382781006689473174486425440528857243619357869212386362858960181778792637325117637334148750089226257340993179976153696250746749947261477263803616700631517522342145310581710504463017951535801333563123511307841002481036200593169371605392913277281090641772863106173547922635222589134358000425749512229875541477975368049865353092653748675092152566138762865431900736984358918143111170442981691091097115391667144807774229443120755256141672725132056895268239123517141793668134268232900677499079022024685697816193933070959198654950533267030895462402290221448098321912678451134418083350564577485155175108616242173314102407471821701886597237031820093552529750943608319879164707295649682319164459387687155515702266898701327232294158655563135533793142981713253632122918671228145779898782997491188516443992819566995703185115886261051952272353077124599125658281294278273331004792938912887099470111902862162378617891224984222846797054204732511207777018794901735282969774048944220501096872734924553164224711401265538913678336529705668534351713228719381318312578409179288256421151835798366549730663012108038123814704405814628025266229101507853694167319721679821493846084133272789015287841874286390263151560895064694589440913633131758537820927386683271162661135541474216412945300176318904501553618489760163941621437888725660579281037829294131437662108557683277411135314883364355898801316547764782895427200741069273817824153101594945124704349625943015015829528026333792036037647691032991555562062568632220757771977815473680310144282648431715419052009411282108215125168038275478507371082747164089977813357575230903236970329704366350861883778376520504635923626102071822878271897587759663270481842953595458116985874236405709761993372198417813722615338939697600097367183600409223350057305845813460730348188680970159720719849970016871319376049128308975999687191570546396509409646035305754386341211990457932571372883097027436684312966369198370489247909739499230564198706891594939998347859854241489986186698868365673530789166689872974806106272385969514116812112744805220573306940389914500994522828997499203767872653442402086793122476377939811221236318021902150973014894855938210543085763262180470422747548070271773816882331607360464098484851405360454059842989250205210292485244140334174014921489414516940181292449259543915138512915887271146328377482195110627186326308112831007410839561771084503631466657741869916177724006083696840188746672777017897987353471613400223975887011034309841433260031010998099408300691427506236377863564035168851915663849181213823327560925326241283192955430411267450113755974647263470820518182837623894244648080441849667603074514106895265643768381424475388938230224800614614724674180879830878725540870326513502936219351769502824147684812625869031876237071146540405886954879265983566488868297951423535185659243768159906455071939149252380440235125127775885975378237373242509500259767958866331910851436323016233531534241380114359207060359995605873398575318868853542042787005755456345257248047520097813559891347506535919794256226653597282850638201606154498845391016117182183607542268135801518321130452797096888307209392718838145089698073029172831399102092793271478787623174191440011181331265208907012796868311309224030080720575251966473062226085301561445545346092836090094151677451914889588992577196681004366069538339082476270154262478797257322049761600902417035396614560578914679106484133910107782258110120387611899997367831376036179989657756156640712356132565163404326844793937475006849188618868119276433017685406942248025756179637248686772167198361065831906005868781690070337883138798288953894109051550238655472303738472817001736343446465393674317365891447375320333709069175832091240262829577289170886872477434957426458225875478618447158719765274691931692290137542926357085862893508817099061322681367639326199326743470308643908924330763082604857079710530480886884736374060785993165170400660190049067986749108448129389110875904343664310450013559776528281490806789497167478164252003788386827199243356480051705730176434598566340442391133363845042321966005841474377767877116587187151489341903974084777994049318058142498875915359016998118979564458781095252832933364604551153401238896742672006178581947154249815821962807105188242313147932838458073957081345616779483079344916490145354791244143696592678448299089226050961959198485213247659453885697113962538704933149447245937286598246448424341925436756638518567041013409892540299558752538838785428170742848474773619834739512780926941118447154313191426647824071962641862241426471222880642700111779986712635258547440988670876922671602278483045735268275897192775538213726777729637708288897283516938901507713254121506205009616226727887533159178451705406891795077499776542481475343011084827697208908123706175735979830932671133440869918656714353058731554998969996299056287813329107467782833577185566554939626755161300143912017769795155906997583567950991277147186720882758356541167162087021273072789172822063564574408962721129183179890969771510163084775046204220692918891413023763122708780859221110130718347399699232013422818408931766830645234019420388736196446321551938759845238268857429119333024305425512050880907722514191647229953611034308850188235603989996925962627583736794790740378357152989629591997753862426853881673650646247406380973757406799939166629758042226091587516932481734997844305701186910640984455337086695319229318038067450836786794893997299101019939346758058214428116722283664733060838821791088221336955212430458805930328716538109447177348075253436833339858303066472933397166468760709602700382440970391782304182230461114601866368672844389103785564984904582409660931507452468473356378979720215124039488433396086560923911031668462860868858015794280144747443433390557781400201630042071369631289364818050114870910503187102713956180027688057451239169176220622675232294711451841595835051592629573886829284562144407125797752059482902411674879318959449494453768431884355553130890199400659802271824983627826236974749463319116363204482717876243385603310222540240100234102201078912339049114591361646788293067003882080044849596607099570177355223367470640203094572299045726057919179982619754424734362390889753398804646728184921045309696762826387040979075023397983131737912750476643682274069105922098187466799861302224803973901217800726059072644359596607991034840525378378985297391356859811003575915331135581417515308421265420096759852763588334891810475978115722866714706142766521679440830546350803370926090162317405195539477290149996448944954325566939916791990216006905014228176697465202625517186250355850507085752782496559275076523088543753284511992977568372396388045215531402463570494789272412297605033408265565685670702969257107200476621388575475392982023791524241567167376321693780733124348632441932829070942341652391766535878786606752193971749592170785712155622687942983908999310009778678056998890622366448792276452161038777645186859072029864248255751157683990125176952163161258905882940391255302343070045067762915863587017250291737828388887030267521875533622798498270297879731840311875693333824281994379493962288928152546150290525613933268028159615072252051871603798372019237413102580999416546826118381706582176089754745805829979953327615606453227562811703494662384324337655846671817781815657598925879409642089598877686667295405760949298169004351849856045915515455683914937864421965597741668955642707250308257192557424161679451630996261517769740260032501360783991511960783686055174151302544573239220587153128852909276453617139662584323241853327696230277396909714785619955261390751451893106945609970630197080218567634539553054575661442984597916553373182781856154038131917288392098099103330206365245481301662458178718064371336860334099487324897654960087278820293427191034559165619158420462564184593173038737451476345167990162890972920153957027017319356911608329547179434993701998339998021580549699674137026995585672789745552233130234745576321240510266676264813869441625797691406261864862200514352294602418910938483606150374743756415794856715359011185162574585988512315139375013300482792940828389048970392030200843953945443232132837819013061716242682078469293195017218297542129986623024779403938259985569233484093757034428476769398976258736390475623603166914585546793051604583770565289002286158966748828532267476115488484670440299298105526274053052617537488283940334355427649428866698716094135422858854471330363325572578102603413685689836344393412517509798778298006183880592021359690281685943500872269847129075189428937869379963201557903124937461258555043957198445561359611803641661043959865896932658437490324480548373723428471008335732722119740028406658307548340662227904996667909762158284488404327387324921135432224190005116029283485573656110448668259592101821633757696259733074530385480384983013770992097508287574324200873824496780306869968081997448689527003649740865403136280383792285854745859182404064725262461546556549852055757177668667347598630086630468687134287263753425513548313092134313037225182601016494527074264083168095878259104364360157266431458465273544576871408149707003539790773381169500327916843099404098806637684805994074359717665480920153491623499026706881687886539568036675214082943803447147126357502468147881425143040916108012913754708382992464943543006910084987980318024160668239379479163256417006629652051616949532108180830088919957302689006801858653426040694267458288618294478430734967006640422597728596204096092646014705142753390162363585499188582033997436000347789481206808897846599191306150210029393648868243880803221786882447416251074395209973568374277418153913405468298098604196743866679533980530092623915941992713765440906066987053887133702661122058028820673415547918759898552387324265668986794495391986680636372268997637856050044961237899122157274319791717770936046578528426139972136511445518788679577510078899100322658160849654123955868843370816676223267418730673711899776944164731335426123159295239294960584386454569044034550409307682691762085838566884089980120159149077593159041021639602020994114031346990672384828662772258754351123386155332000259778801417750367420102705728817686740203446412188810848139725010783047453885173059516282926766903919210532978525441888941139970948845656676527607734004358363150687494762817126171886220105461196395237577998997170467996813789774731947954320768525803080203012197980043780849835868658538614702227882814259085617140873670449389199658204525354875106603326023048768033910124337533193604085817916203132434882392750203348160769638358182196935663450049769533843006908444786789058558363116173176009571576240241650843901956341291022781805755837201857841078297242159685949943183729018257391489609188713759998951526670140041767187084455422937583477886688732835291080905392823499805686514950532549408665193318367564499023397069327320251761541131797493568825510811457896812643814979863833637148712655214231734120687475981907156367230645791184095725894794615811926536441078022648620345304850645808238506078882857277282887073151159867471393808671361612033948931395575817297795036890281141060676283584798125289732526782680554864328852283635390321101579208017081513264920678513483605698673012719256705417623292399253229282044868835434562789730011421462595473876381556741761347510835786219078437013468641579845316615752442388204726261181609966963526261810250585816954350034555079583860432087249658422968737176506601782300900590649112834818263394754535732048563705632708596278241396874084560673716934813576437918332786112730567412035774840581680777787357015117265635026947860608516726342913201801011329227538400606481932808416674858393847428355507792744130303557249752044817428769714562081839594101777424331346975751033531570920027670598954742630865225626942858095802300961937930577356545254933023339147246396132891233594946903766731305561397255224621667861885483328783201929142477132387016860383971125066168611806888493168653141173763356387617496177163083569237048275725029860612475748296517519228341083099205789001235703262889484537926884758490157182563343131198419510805575044458195170351695346956656777566571375117295147287301368944848384653202869396953593367536294460253729771249793628766862688372729001131799550790835990348876707894367959808910976354212230519316919107277586738792294280277608828059120905541838476207074641453391298353673527689017464414138138538684065250657168338528750990263773588008048955586915603353197315251430560806715955214013350154962417029423017998543242922921881632607674291632382682963742683456829053143716377534956767003030169882065645180407451563678310475413091022147299613607380779963880395612060019724451248655401301143442878051040065862543965212810677177893249385946170149922196266370639128371917694042970677062045067078013461477260500161004401016007772171250632176944682479124598929535381236482093390319892658534288928771570018932472261800983038702947452593062257964426819651715255531786276422703062954392872610984329395052229709344364986256756827642904717355079840387063472912000409949260497650179693318286518739661272474278524629862140692375068904596938257770514896198354860133808503143338045748474676957399936858629500111865862989160294742929120148537878328606166660438295801515125286348111442390377153889506538158315364783859686723856698801668412635618361121959313823853380330991732278382165287903085749604856177635642086956542304417685974938342821125685765405279085946289899671878994533192123296861333967389840522947189531179127752983581673797210334687197436993602733310780405059353546374580118564205665586979576396193974845119957025986699259646668302145847530274872109647520729408478587279891116022472406887248071966877974735570020672278040931737946718491297309124809477575496427367359791339178725646782887612337099311036344946539782973726423003300096312233103410243767723024460792636238396331980528405568806542839813939034973520419790588665253765968481450080591211798751939578181731680657220206655412133356443571170203201954039168512623568871974192719219275787469564704690498614590627916256416038060891386936369371733303876540906771628529481402243000658651151301448976917240852958380677046567721521718811002127254361009369587295069252782288876680130100685188313850168117796499574379243606608983633268425418571982232953838082243855422301920655253987135657157172676968562739109828222500220347180219030833446033865464210094972760355335800622640593807732861156930090420753693653282874574603785519014599479815128345012132915500023112667061581050657349683573299514895110606417813955422706666179669350227661778597153140170900935461119345566478406218366815250829371792073737427413045443908929350894698733505389277957221681355698907948648833395526481986816863560462503072585101912630227649906133768967095594502508963873071216791201023539068533496403368372401162783580160498387021227146196901073978296933920863840656176877796946095603636923106823489955289349383580416673376872507573067873122701238022729354191040686546198786860198326505979085572150935209002015130997587973057177307556667278476409339708322665053811823963136485209689062199350524586796787534708588513247113981468745640610073194912545054793398061206651821992646095384887487673573663610612660290400962982261195813744193495580366408943956016358545870736306677282033086298495643456597028633639129219715131142524580978512805324919020020495693585669302778172637742670868913143925283117186920133567776657556327014329131891379714364336384525697482734963107454207367901666529420956234841141119646894120597904099744060643060987548107148494171024875920958684262693007417934208682109357966912627451191827497375493578915088186803142273953910836874793491779823531194498985697232528658527212075673102331196580271710268510954107259546412822900111667880023836804813891813083404207421899444623574254116852168099228950537868937292411638500350315674348015396712592015557363472167981740929785868100693239689296114798396778668679981897937867682726402954895014653018734481862992304645488684408489013073497398343672931324272097288664494816055916887716844963396226787147932249305721575343453956752190249601885204631041064442884245836937312723907146142003794722017028304423304909195497945525556450111776909140808424332822610590724081878883885531196706563202386670277837520484901254161670775897899132927143454609966530889071186851105314693460503056400404583059061897063358528824653306180145833619699125579705535153241912048510071246553952430045501646219262682056906509077143121736227832062734518168276190642745492333631020505184034739230478219517746051398280551314562383078434254628021873410308940873844824355811719709752921210500279805637725812102820324142772968501128994891364565814991701043995545331814202728625378685269640819075276584478640969394648973717515794775471193203906910690712601921626019634355905354940225446300959053448852181366399510508759953212345814151257098678677625236567176334374599198815309562768445538506399702372354720498105794809363734134740304039639494948144559745042102943796914413035251381480929674646846353388582144293014626752961502665618812020111522704874563609759870780029118917138754188165862009955179491642810694841734747013345475150734626753633761014032487829511706908391094587174861745085404767391521254450316078305825076670591620166256912146229424457286398438513820218361632308890603822955323515648498545284325009916609963191971577718973639108248344446549047861756847665494409980576480718012252380447883892406520293309426212999796113676464980102323764198724838523646867682883582766692285051790782195193579677800960240784425376910233498917605054437123630604114596659105241307942316877661626455238596376057270001930015237791497406745548562916264735054860594457755998393557336956797291177589302608027484776029209264666422951117251896234698393238528056075745285312804065425718369512854747298200426770775787185252361288352482862927214513489648460025463079630455340101634284422438070086904138436505126751268135459312294762127620934247224342945215671598116277267766404281823290124429476214006284992496434028145055320437063361765270261841578725757266911222718103770038053981798983803520280559051087377788333668914439918520750289475996591061015235100906872503889533705312363442813764111358028203032407669860854146655438581359040637714719517629896728413591293125471016485956720976175476839648293733624732920168104283184518569452871942536941932288807974173613950567084894632209813898146708994291770223175790529975327951509389156713909211672898425983132067121833224893920311405697857147023298735317013973963747927975342480503179896032551346464863264809826301304518886526431834392088488763607206000202536332250106382393108173617408588619770094606695424608669471576281973690303216712223112038589550261322215450806595051002141801798934807449198360225986970875568516105784771725478504620206673333599319926780831350426868583474283496734893873721633877078212984784774506743322482280780497880078480144121264536345834619731672875428779804872836399740076699322844431004444443346898246451685418372318766534261607464196487558091639642460766350690399321352590435763311008866904480724389245691049176869566065027747157343625629967640395402935226807499086566946259240732182793947520408423882237607158971500051014809245039016460723207710616233592639214079263797396742386157909730418486189627175957953535123423212923078468288218125528178357243331471758253438860878706466602059457193717393372484377289810444335740613918097984906399624074815242003344347739741357569986444777819088915259368134943060469486190961515067640038925960269380990662835822555532426737398669426493654961561904723455775430505219695119388102499132040189433008072716157064402374272901405094029343147465157006281729960729774868266414357119747667604936992943053147018424998289500223648430403301216726883782453124320114227182260146131094635242222622333711155337425002972843540609989767017186098658187833832174384168975967554104914991074352428245937926487651774559962897310114037008825070014836625700901230226551963969697781424961269556576185308448248237822500643064965987907119947470532923036262792791341965829465606567006771390880245185892518025093970538709656422692488333960990197747408974774633901863506417913572152617786672062625489678037438604590182369631720300072883082548193196262325547880224145911747876741792003552142707948747263285925215275353451181300103415031741304450358882055098021703142306876137551740137731975225822822126082796944966562418482365230033341447111285726854214642220309079137003537073523345890195963395145367502246981942560643909166696274269563816568911924768021961462749359276190600137551228149868500866244722007107543031002218173862865113220761862252289007060116598582585331180617277457015728260922401269480849802901936940091629967807214566058125187340966452794983182065732524418242965492755642148077205132863554835109761461816775724711852017404903842448616197953533829780470981935686140168886082913279403451343275214803416651281431825216573135653665841418116148677087437759724458072702873458737354340794010320521364360261048197022073691592264960961514491237277524125140589232798779739115281739616072709900791405217339671192245610153637744904334775666812415550965686572361862232428221443676268256400509344825098544547587170703746086526097339488095012626015039233731467545782777488771363672728932316641005262504062658106559985606413398816662660907151473973963846127646285640490354243509263185349544618959454657689440801918728875546897122433048624095615952076677295188773732881321943744332094840991459737100197471142863049848411792951860789852694401127631647212386606707338739134660583211471966716872240257292814834990664617478899383192908338405158131842794511770251920168714159310086400946358124612177304819747535928087394380258655012904526645099356264569049899325415548611555757349256179418536848014599747743731274320958172690808588084975631847602803156237881991067480981862305944594868793245947331126184655854342139109011642527151454374007766178219505310716451647723230022796688012209817333156902931601480643334326241970362668405441128620609267940891245220673314535220627182542851771452161910270019546999455896159209724725605891582082692406950948403517250716939402366319702015594791645223109832566207662010340004118050389630748763494954521875707607052585836879479673987965259556569458544231929132529889637842415880655128857227379930757276454863834566305118882960857814187733708304626031867369851777511282648973822339931997792437784225808331564899994993047542877565165719388654811205546168362467740365595439540045795816772037527685473519517623421806287256264475512368874376689438351689444966153215021470079298710010159434992661495520375118046314349462568220155824926133058491558190535653383408674561660646259235877927271505084795286750655095794381131387671545922820822337334785549989229945424289877239838685847068062295716577012096150591892053024492383419102349211470235783871391626147839553093616826140062132315921370859003409971118623886320945944595643176374814715493135483174499512150032626393272379556230592049578777506430157486050195953951116317349693564415198203485287409456032915354840698790451435858808732604979786609418364528259660177592228065611729987302781353101277352224494435315810901215427322660904567261986797791059296083608729277110381082837303875762480326710565913106036138607295026729817821038449951075979334844861115381203696794863772320899334471899465345148461808129572261161359311623991797977075659127072738569620019587762026165581888207227296009148299527654975424616369208416916412079831603848645297529539358405931132636025091531466299272853107009913298756072178525875787622955983463714381930257990838150940496810008247934005944597995404279095758022778431950285006724581213772784320814528864744851442465526232360458790948070782497456817001258120161092287581228965070587240613436039473846470456151061371245678800185296812140024879685510230513309812572716709609794659779549199991880232115366868655257421762773508009508601740642507335739519807892233141249381351264929684220057188668481244983432059788014483978689182074514978281012684179614739900214229198436590186608655645143282128851242497177205262847655036947764526678956793903376222317775811503138336509124231764961659721499505921368102727270672448522453929454345312767336778454772407166810349157094129483089209973645760073068794515499393879818837559871329273323925572028424871957516669414479326362049404250671089040952400241910907531604940193688791942749460874386208262248418038919712202578553690011797815224650566711017275013878579217134664707245447101147234036603159766233649992017162212014087707104212816954397060364945507157803897720370226480091608729587769914571336254348799316277084231629193937541909749407588969541999693016973451738350925571598298407415318536872668548788169864296772491594067353838650129698741008349792281839552462604469208900686534040210896845711125525149933767413765673571072885015824040954864602117777226048391804684151558843983856343641046721807668227426572841169415434758526480320649601589113812832524994185043178164959080917069442429699012708623562097799765489145113961643065221881176016027752216235966838663911840440749881184931619817770924435285409491917967067118262235867834795837461985753696732672619234659122255832627428418732827713081952965356008957209160357366491192211359017762067224922789647940095115797685800733944618117191097564538287049207848763286256347678847767496749119884573849083186618840957182162249982235959771826793542940310226837191395572826010875598836803053734665323161707792655172646260937258331664750869104643186689203577811410401078654737968558023410145974115283017488682812705680384520682810163339801595793504649354277320687507320649344687026970334220197943851800772332566501200091609389764181955070490211081952616072539293794533443005082898077573843339084675549813925880190686885138328608268271565354233703224282365998281338702050355154851416272962744644026855548388067606836872883646428809015095989857531928750542376355697790200687716976716358155510868567345455699603695494059692939228565739642390500341111117770855071392236238979198720144613610407984452377436511268421991010040294223062344020788815681545451373844810427233483582087181895081543356075771413685124990103718417988248023615279598298115795824898438317931087996482451384871035822361449227429238427737534894828291600265291660040037157142020037425689859931460698333677523792524914920139627300240504991638590654931990657181518886832887624393911772043736696075062073314161718221036633504812208486006330563600091601507446788671135114047028993897548975220491109977691942315232541908575986509500333681260591976398318193124325185808139734317189186963363606401438184126541206702975443037788568510813428840892212399332598485093770539071401365984714978955180399781963777773732600259386261212773603110364955326816260064180410293500146218008453013311222987364409270474056996857530399517672998177801468504152408949944146709948786354640526616694967725165790966082931377779287390232362422425588778973121906685885732189752552069418966069784796869407962825810103639577451338110702045284628480685816560225106037245780876859534057362853668015851845787398809515053791849301563072914883190960367854474820381042136634281887687486260508281143976972475782754105720058108640686095489584339181100779607964764250950804788474148565917353004280616341809517263472184571526067685849998465200173528160734374274464874442821935415543557651111432537876157479490696312154609350729365505149724664636547304609236903206779485984921714903802611327300599935194460150509791584462167517208451054767048431030193123073528672320601772577231132840490765137469617076230230538035085257801243296565966339082009268572761486327157378784236956788722867653164190657702901557340660610794989300593294815518039568102364949740162865026826308399159525060462407915085921852291535144937750887399955392412749989311221840936312338675415402490163672610765109209833408261626315569721560300144078714050149818073399742680640975484123584014972543129019423076276480290451839644381320282694449422114387180726745142445394944670079358614399169729579141335889689543653448260924630823944949826910306183300635592589260017350988680607023890742795513373538313825424147540849911566910598823999404603281325809563761539921020843450112770511999062019100027578926830120444955718218519560847484052128943012226711663377713482962057490111756881174779049103393699262421402817975532991351832078649294810050727339795775339316046065420397197716462284761804453300858120672566371051092285835132577173599397300687885489761863398129697870210420979811529435506144909947500362334579098255369805886732143521124484456344877133356198365053889051307352996582312086257027738678433038857484418631004308626175205474932864156727192358605736576828525104464215143130541727330932292562832810122990321842556431665446806364339909195706576218437656185232227238688718610472009711260121708459261977722449492593916422051303599278420362551257712751727986739944228812241638986692078071595497593215993177002765233573486907830236890420387146733879913891544849073263828267975049341067904027419512552274202675412524451346322428600723460327889717501589175216517869619175032263126867491827054858818774834235040213008184655113615651185679249062888403443579237745121154903436505811176327171429079902833926665702035056255378363037536362701677410376075163320152108156225465250153491132991648453927250754445396656498815383079323066641570315543923702673351525730109898185063967261044197750266317403839107649123431275891805242614813382155520864950177250122106438826743516923889449543631464444383307203059255212042031714775186697924677159000849587736228722182809080235468005885865660196836540847525149728340610806047744724298630117290196718480267489647828834968495476672543567635447243734643970433483373319446167906663984456072657682384309734528691612284193612274256395891057422311152410003663627729334842345357518351975058949716241789759193575371534160288391189558655968377015719633433823164513740412902557029581461701208827850112931179552978193510838492942204120625278273860726548124844433958435657885618896346959780856859352208076169617829521858213940740126528156628766401813443809359560042688459837613701549696038342478614725722379876773025683614525870512042137602893210115237800055611354806537947566825827426652541715903265985997173899176178431043021247766180245315832613698444963406945712995489722714077198186520134950240799720186406203583528942564644490762964977323502790150889791527419214101109874447893723801039813145115506332419806009831264057597689011048230301957069718816790266977985821676660161430838098732606621626175640410491109450946279926883648554548296187553355860780930004205941357988677222553300948704162915960727494635181123794557289455358965238814471843835807205363530485059940563983451420548908548330470910158425245650180463266352974409467221963076038141199663518730188037146271004684932070317508682215543232235902247468739771588073012172207706858726026072280879834055820224893595671866382605259052274556533571177551170531159958236709904433174585660978830571101997740231643972932580007195707757041309939429840563903817420862439754951667530736151406361211080110713095169966677726147016092460537908912569899402318357882554619665163600441860884045604898356694317356285980298731892291463020581142552031253598634364972875141031279444899641215573054571562764210282521326646509903280441022313913332211783589700445320586665780374785904266625574051715119103257197797692843728034416469425364352276498864969359581828643917487759522887440467763643747761051261576502174589304763875193813273839577204386304796466670562377902238842110651660862223847660524192979510789020046245412913897174211882096817258230934572149830264707593749300749713029411813339136322510153360972601024623507595399631165596306643966683783465736201339713182346839620172897085025097433722614222035674724388161819784287411649045271598536194646211740932995224772846926055162195537059183866692370022389280052881736127536525746422525234389566416645378455982700661870582498860585733988783207983377773378710339476498560732645351690929846434880910474096177499908436835607423698037382458795238037133812150137167837091978035883641509011924119361564520847224585697839736354820775483109738074369362825946341432960043745454744190606558734684971817453358006770449610585636256988724947885074772921406273633012123054236856540584168016068390144869330513423758499498980565653624782688533419317273851802523446143465058235422625952188957660490307649889384920014852533988848107493217605217997431787762644221675037855612238207046570374171167478305623949318754359801219727136287366022791504459161970283583276417127326441422847110425860559625388085458544485431882160258667249399515339522034133136554800152878952667031713662859769516926115031837734775742104030286898736190449482371036689429151755406147411941221781957055269715685621042452654863107498727058452202578751142302249906516371521740129756631810068320360927606823275411587138140584214643842388072699526174947822274301430608970940155841285517426156462647886166124655966536301274237528837809043141633766532080679953253067620938803861522321557598184853561804052887479724613024853508882921818860719745292821540549756974783259272631767991920230203417304136773024699081829623242677462560066985543468625405929629633999413009795724036365770490893320389382386618702504867702814206515882394888721863015010590527290217124829161641367922895776656387044185558655931968401091717091455053183635876449107569069219950880948725933811640453050527053673237921272425543062854332629386520724298856853535869087958274382300100219467958030508860967934816088657866526884214369075949611692989733146685191917397463792777789165931126595245745716022636113146349630564674620400283649243228706994515461371515456027169775429414451783868121626299676381478880558915573498441669239052822276910859271861704837508561462148609051364765881253179154410179379990341157134071127197771686131682296793588489238377554025332984989809554271084735252621877993190987432949345252492194150019821506202419136981521447313932202129907950997273816378920336022897045161377538130255217782544793986862307208921888125834424606356781563102543774771308751675445031061682458525033790244422702206041404768449136964764102596990226136398084517714035868893611444977902987833431165148895310046297137367339537194466546492240956448060150190665751343127019048273971964071205002191250636095240640431294967146536829499729109713330813330861352441933992648576285507317383825361300646182447098333024048112734204885587712538371965423111227034956923922520655476115183732988111016680338812163234962800641887952856409671297321720142447080409038435163849098098612773504198222820971851573352065169596297901416516090373556643644982608452915167724894145194883838532250893919189746866178619440829390802906958178308757572159186969703044377320000455779714606921154119614461746202373079580300193199653820554329774319110046244613092268729823232032436752242563079912080684620320184651186025411510620580097967198979042689360979097487540667154719754071670636594412905749946848142826747493851115143897254242073024533737050487634704536157051509365754226265718917252229255441474174312812282508427574511254325328427724712501587913185960952911474592912595375090427210032614280506574326819429509705539867851691280170787320883099439447290462420168754781147675115859271300914084037289447425016150145737143678665175544489128198430423648326220805468567531857359465055887714831992795960136539037732047541853349972018289314652459903908922757180493221037406368020224720143743197727538918258298859935662568748935869210308851258249289014717682167837041442459456469505193411117427906874787654544742044889714201850980145738072025763379420534908036414183236111133607524910288182602766715583964260121019328965323246578685069215194325423073104917869015661251960065184959141343185957402198875206757295694490342843567709591733357442472439157639005443789745712061083340747666324479595424402079056495734656170521340171962761949848952672373642021704910741953286426805051516743094438266080716869876044276873054619626613607620320635902405763756547676230479718492366884886541095652147003213386791146803715489917974182998957999707769428845913349228298385800918681177885090277281111745052481422890349440917102184301478844599309670777511346615165476333393845172651554853385777234866947780930895294699608822203000388787211993232855755664329294376536239314281065179457507812054205918455866000220423769203697587940209284884047840032459407805654132861298697224064592950700825326295010091379423459258360399266701588143497910104000963835815319414224009412180027482729414622427269118288313403503887070358935737743552669711929077716764558874400749912472381929959524136100041171452232684651254791862369591753711461748263933839367276861345668213763644954671454280855743353167811225873137343413849471300035569754952867104432521285083019192639112361053045213206814409201550511270298602956016530891590230084963169057926254269814068813507847408662005345837043847529170899427106064918703204026465237643490747637589227242081440666460653462388253894794040456718803329029834799600940084956299679593826021425010052916077020319743106518355153378485158619951285920192808701552253676179769814194185191480706362727502423133274841583627347614544298440640783588772333918014527020758600849249671743119050049270003354604663706365288671968930680625448725542366944117339559479359693298844139677171694615593479439096514780235272198738750209858726856040449273024295802256129867366489825984120035849161087063102960936158011042128205859567746301102379667924646931018456767380582527932867826333740949559769102282171143712120964146440614560591147697100042364162876071174833709112845474406371535318775443275925724399170467482407055746337519743730345382304352098671414127436768442744952608874578306122732625222536829144468914340830075481093500934897491011449218090850549957395398058635471742782470137722726457290655517729636309445653464854951350402890639662427372371111393581483178957862361720661797540801654026751060914511803194678178592654262468856057943572461022391266282438858785199906958254533038313842120468575157039547656479149208505186566327629468100012131282816807716138635940333861026708663202095456724520537919599071549569461243803921787200077626257086520748643832510597629560655459419963122515350586217056320581880263655911949054974651202586899301772873972074132281665499576023011534067696110877962780531977862349123697324286462128973164407363786479246467482730157705306028063385656356448431712081988719795217769967555454470393927446769196379068733725634694468554352192025715535606280474949254698074322718318043734714197347241281738738148857923958572972346219206268813022122147952118301879507197803547045689147986226515396717450677927862330010359650406519952716039392631554580685417477880255671850009115544257341667126644642815902036544858592853709034056910334950561218894580039288573052778120115746424714714445986021600862086530177089814310343458309921893302372349982435330302001202294451338559181036958753508947529438067335542987024040333662120844404303564258681548066361043612970654523620418216045994763132862750595386995520080720471428071457574638515958942467656683215486863250719850685509516635390254427435446965431276193142236811898466330338645719206897287842524287548571069371465350564111796614950798615342265039232194125766925944289727259292565070129199939958330153739588567864697797072637792237970827662599130528246530370490507260210662263881737948044411920452240758857556239958046555413067999338331171803726817274582590706547638037618810789823123026540702639626150766797008924906084031473925893162810410928077807396321053231051024003758716859152457981401803914285334814157514351158190643815480201164590492502762299518001012995140877129634284042108637945682298333094176570717882749423609973831245373048768707229593821336407436797421655903746907675839002403009267646561996829505890233009796255101740684288567777048102477569555526633062462361410153875256739642651859104162085694977481873694791033798598791542666173384658509365391764491117557041597466337952435027844371336763608188450279284489437204705834999368339399362953651852614009464818372271943957917365669700389932855835416875772758261643134753681209036057135831588538040987193928507179926670977258433472291690100024941411024279143775481891691921493341649637260580839759326190272439295568831340638911123664638929062125534225623694397549815623389717232462921095439266593704813435521352000634530958414487923776040347365141585168127440685255010688887516542253905601404698712017445838348346229431639493714455985483036181510805370963095581929675895949500379086378595386186311875230577515513683258422848524182502822851977995185780722483715397532025598542993484465863645925600494017831142826128392810576181806172536381144054901360538539803019217531246899105590519036951313512915630878271012817713685324863162562473588019803723776997996188288194909390176843485047134474221842635653686181305354132263128168142448437178947362299837659496036099410959509819194981864006938062705140750311635824739324142382200715152033224124642576916052349477486725916314608141138994390224420481132167452540834931258401371385491730393619824326226845256727501780914106411075817245904146257576579822023145188659241593074557801113137322399774110069241900961390254704497765403132173394212664802367922175998664835795319769786895105271401502638083043515900673568920561917152841644518758075646504473047821180035720449165223143518105089341798310499526273546108030118998120465771656347762491873915185398348930052771055273866300223918158969432432362307479906501677665353997959783292715717700554420076319816531902522438818149947382511431382284904672899823375967147044182575514846221485454460841294646112608154408514075808028867260520098154268173843638586128820570712580536084423368515559479046886967413269138346464142552060281457052040823434111642287281570719030863610587964252401323476413537284808679229389623679944622301381831960151857118064466111581695711854976313645957823232349467820899775341318040284034605315062183222370646010079059601532603454542693751545052883757538942573859922631693160879969709798326793879780207983056681315455484159319356994353013667965733417489690094062087026324889913603381563011690148929185865413291205092935963823119322596290353239334721207660791992240668480372937195006386251363820051472236445944381427968489622949302039268720830047504766880297474738017931673147144679032403931441800820029503755647705232954801392723398704328266782536467470475110848812183153715391426740638422005311915960835813004924756310957327655742492914172326194498749862135589329180137798815911539517497340275651075883817474192047296678226056769434254676206626068846332567137522677241872854982772118645299797433250183030460868484232313910282060542835582356608929063738102847087128710900628177399353338171523855561273225098618303316409021519836146120973218310103389196080733278745932521683592142763520712861814188597711039557092278978332515652595655374626669364150235063719626275153450603265771708958349832192056481596345013389797584212326360845708046998256581301107408336362853453129616911843149911823783284355730319261890966718905344297184174930740776099407571296321771795663435838195632888650507546628224840174751608907272542285567955993945246091238564496940003509092431030575473268146124055623536046957810663453686599196279659716108264366960089621243407873617357305538932101636665523242572840397212938035483288309243784376962701334958957057109134924110593681912125843468346217648979635222071406358544619532908350895115599344317236358049161143144368576516079865850502852669393207047888055187287010967773210110862860321628166390541784846309333022041882809498170254202406012354642852436662254730540653346648120685626020900947766217308029200357911321388611108485231793127440118372017611509340073517141973072491301048964522034447527181544273887473156897126943692689947381654834732023968712195923665816110301572811422028709520908046426877678554136199212939753145292805655174568041303785792285078013837065115745521392919970792218956879677750854552282633681573820483122413043775289637744080946904118900842209183576426151991230379000947331828618390124401861175200683106303653336244506684660255311861489714102848474847101567819081689562183824474786498700784866029322659347566774277003070805526454972110999656203954728709703337749020222214427530520474152667938756352052134797552213618833028540441353681684355325991638959583217421715335670594505538615926458921567327142706517525407365467621725030594870040347177752439087554682135623967608649277538572901019757956855445719967090085395469036341543788266240425469674132678428282393480378988834000507685760025216088401120363501319127269409588852521217452202600442181238175589599079287031558041947300483921564184025465281134046976765919127318452285800238089312802921134552087612383373861495915507215656399546422942590097762937909917007453176322185978888819787821774057690232806021913932813597456167037810376899119441602133739008943888962100117364601885460013162070703618387286923906390673716794085089248201382529025756521513105599926992106755196778482725321723706781695835334123771519862428388258748026961879037042001780730451771121211347261490224719894411172267467049213480716764954376532359124421318410815522052149352645584878237611243237592265335342615408179660811952428220121683091983966573778989721367286885087775426974273554626842110656373959441599794819200443069835214426574377424715790430489613818440965890774230377035816729322555574365529397541691365316145582400042855690710408810721219789504417853079758865746756900650315403366828455870562888835918040373921414872157386860125416340014396559283432819479129479029864063137509588653918640745510364289403195992612283372090572781236161744693198039440918095097436729741701079967747195841454567657303202081435625397304828185854424119591770983813606851827836888525711703365975182886699985318038589078935050129442254730643841883977059966507957752838972305428216890791374118292969698441753001031021896397083868921452899651814460019992624001544232649831066293890191299086028371593010885083369122792470972519828350536557224175013540302060394269732750835551309747390268422019372754889909750527807702999247739811353521201037904688868150517264104759294293189927632673449584015344121966956818236982049091531151743373396435322896056626577604671503294138974403055178639515454618597673274489907326387306111636132030557676387959781764029470385700693498689360538528808830818485378921057199385757934649790771634029451292404340593055325107081894850303173549350269178071547056833715031168015533434956322497126597627253862159917688208272449228862664995421806584985242869624414139183982441467028923542362659336156546232329083886782262518689174161276648943761736190917005183333615884068449124523400738876862162280871704067984726597528785559631891178691027511965502523625681744155518713527412440355568732873324859740109874230150864376077026238123521582056127584414451102503019939246959331554225827146730078777432199915819958451731777226432885547260052292127676885675408777407466270360197563088179946970538554940019827754112698377449351537833392036831288738700432493198375280261361219731660358235253465593142291842387428871583400473680306602455422255631394782835880280317301869942510605854171220213589828704697002147943471976277508911819391880837613387086247419410639709805112152797129073463370089301573423908349074953683671602713823397810820295540599614172235185723636850459470367598679347212926534081719864634414322158654846433442647887499719373253634360759407032221069907378360029327893351722385554246626869261043047883986517601460604796932287888281274201862557578945908954341102230020715440338443258803364691531639164869005833885348951731512974280102207364049433292944736998654399578908123596983554487178702646314389068855928258641760046312219305506303529374806624415588734017590982679803571804728618398722429159936163022192345086052200532393271568533745244299797914344289859759758538907055063674062574243416100139382300589215695748576760665381237057081072325544749497501461693364604987308411035556407411169092301022536858802052388522262416219262060719563551714635281942961736833563849185747140207583371884212291617226331289357856118676081911861541404266489203967657368551809184420135878382238026153747427727027605398381044475912451341219549452340720088710342346196649702042252832698278637545509409662336463267645418756014055356206439289376604498393759671491416421886775624600722775315931625484390377195763934026168279744702113990986007539688381500217019743093922003412005617244006969495705283741005546017415768297508498535390054434151942098504407852209917828130937059362818330755082938229030432363620893742738725468346302381798637250470555722833212786321220090043752200375816090276812110268251540633341788116322551479548262142101026347582252021325649674915554179929520844878810652705440836347887860377580610078662656903494919579171965964964435542006921549681567243551354173506867287874978460402379298438203348628682346070460159943941801039324409423259006918489172977576798563505148730946043543281677404677414688852345768881759386550558637390355310925808702825741145776208772324308736851412859609687304888725980564931267388141182176286362545173637133581990246744757980962300211469414190932191974573998326283808715865967451720206778277260901537677535786338816128001417597563801958988023815337396760363784212309485706135748135156091902371487793856007507481575480948247583576459540449362684322851763559859500920034562929466804829407918147232254188175667890916512338136594938759551574894322718181722621756444428629433381430998814672186627090722434873303959570534728499569621654303847623826896580537848923105409454347481805708421222024856542994048598456351084525720300604747225857136329444982500477837858135588999756147809049564797608321034373836273004293202991132524230779103012181860396235340666030970639648301273497521410276944746540959157823934042884413295680854113164754395488800259204068661396613738060889041702927143218143210938120900289996059844432556671285880517004646598946056340991395615707884752267997157004608279739778745892734230453659204236055239799924693375429486621320686531259531597810249498798344732302286033127911417254616379016165653601193072382966955779752810226292059740575910658126887226253361424017842634942875051800626258280573604487961183799627530517630480200674040317576047741637672522008092267200682990770971359296412547262030045692855663482739058426181405775028428048947263671721731759090845657934056644751562732553302181122314665126039779142256483808964507999975280558787478067282112784801926769359411814553725830221980328893651358592003977621309584129421361604953375072394383260381042841066340180808786299674294018509974995760100447759200932138806949884590533458523391037857142561045802703203531327256064748644785761129585135402219673256779420074283616784119922965662009632201856190434035701335674703203763024656331501649732531026136572508594981868132605060703645621483387110792998831073620500283797136684955695656459576206990280443798196910040299942401687132932112625781300322999771652434094905284975718954435189677815289506019613639776549617369516123348044604044800053114481082824521665331581868111667174354533297855845863487741447350853749910402811327034536617286017890149368867633692485435020493856503835432332020731115434773303511414634378666159865093335437584975668193464292003290465901766920147356510538931426195966171356976222627244102306979040853343270258595569543469522523897417333841027535838767748771850024247027217587199318530341149876424870092111193327775094028198782582317810065510812010258245363451789157207294928855620159696173883096320871642893930965674584682400131477406727939442252450494926609690543704968510703674648185334162310947022757720292335437459294497995810622687934909487800700282496242936204622852080845596448075098315604028614622291807165883304513633463203368157889582300510287219208944919234712443238456880379811408728845197791318498638272251849760921189906875693149424557575643313226854667225666691278588083691626654129655824518793953168364762107424622967123942014901614532868870270602844754365317409712919955501095790099535267230985672831761289573544532422508240810253892084487046221609880624178498495375443535846502162633018436297166585442521218110809238169983338603838785421969158657189939786089453071102968824368502855270511252105415590956502407524703122106193108998496908210874388363523208421774589266568172425979769477746315680378882935912854745612034134760276355096301305115617501151325037703178691586853445348177107284631090644453599350999368923368389829542023361383347239288064511612787302108511252340328702047343765512040973368674685016956462139420725358508726648749277418021235306093217348917469871991585060422494558190248026982830942013738106954739733990324205587859931271904160800748464029801640499493268054562727323641083933401908343160597043515507626816649698371152101301452518766540470732150789287427342825139530818543331804215903695885693810628459749330301610222633825756626731654594464998150545052939166093434149848584249237606320204530878649359803009794463319797254184465521530058922240314901932289948441541404935787256586813194684759791628307172426414471331195601023547251022093701894475384419181910206171001524054303575109530605109736890117924333990467738831927912842736047472857684654753265687234734053121063297497002965191093147887383645907012892629868326852515171708647485122700909565806403228396321369083208252673649062035059933540430928153160332347193278398597223151552913411899277651109488953094728046094380950218424839940489380033147650904595166452688748761650883853339821765079590298903255415586975358470174963803763248191451057533708187642752175264807750490348535517814486849553931570686864370998785252838240693000769380532550575059751321107826245385251398830492126779240733328395264975134896068415157759402869792559852504579168019627889110650460724162799321862395488176975640797175473394062979099491546600735460020463853112237058620694440986739804571768174573569400924064126414208593440110457976900322794757013747359476678919340964128581644492844558316405081214803574036458616878417944129523442155158931617299841617009848659804014162732257785039937152590725718277987727593419172132823662633291943244537709702202794175472221549055515568658114713574120285845646144189700749082302018005700866181669167434135139114431691047900895679610312343458073001975000359413142042723201475500061180715262100813947533192587587743093384437723397875583008849092540871551026951712306801792420409808587019699697276998176354884010224435389030848854892089931568217468070979818132261959764766642797038889958450939956611328340596037407778582223554433255339221224339294077505988857978772343007870061820626580873684488163608835614213257581503586985300768962769216163231290160391234344531109291203021691461310543572258487946040427804603656769497902568224764390935413981243265247775469936553045987810108211686773925102037797981842557344792547762081135797953479800236087728417757263213763604713419641034787347108907452219460424494655405826268134794028628642054620232663069811082798719639732493984469667196134299236995836095155554876077951280881541138505355221893281560125131545250186161053075291235733787293964362248368270083869023578700019966491075940023966085853979585199436199338119162926440709432420948897165713763921222888677402368560767085179885972306618354669241116191112440940373158675455063459398011635094354062575004608927131049640789452963971021518701377929555319871586177637287861080043716898324489582125653527487596980595070742407713177437701747294951857798997551621253865356591164695899467413502480220771027352299151034209396817798726918504659032283374709888615040697556258893924341950928271519193167966489447356755851564976885228671777790677171983072062509074798604489496846756767736922683068698634614269705807802808066682514253451969560176133916392233100767695053817390579013043513057720149551971893684089759037237759623162672982571444323882480766353449072899975025370678984662123331722905752754020872635734237263198610164699992175434525448752800724252060240971977205664660685625578964684457513868902028157530027609704712418611447505862864397665747314258010743465688789273172305729710694556770357348242870582304557804852357687191223747043944567873065189106241768571750764808971809686344372070064418018460144911825493558774656326467065386399660909030094443134922628434067296779397241161938844001810649668491535025656046264442195150422192243697982545958037938260869975550523216084750517812949362784221811851518901962629145147643498278501121151141889909045789964289491095240711227525032930083490809551750217316224517265334489593670835404475482178935438704400439975213913414488855943003746072238156991847213300043626419889880439285737723100694520875528494552576312277122049883739085283334790248913056995177950492858480877619372977416573498263636762688903492765140330104076919232989540187432109206658944764628308266613871699629403579474235743822461598789264066166636878970890406995006658820132759027404659610984212357301217373382524943270640540360380619444743186125820947813042391927888451691615694953270037928561187375073427945447697208148860806815961595069673779102647501915450321394098596864750003887819975823730822896544921764842336207137878558009704801792965586138195187303834824425988718474282463706062980073354166507150149100524716074164480174121081478922419564626044913609988089292633819170336896040157187405327708144911864004861225509562405659488091306592343668829773536542057535195232596241048698044510831029476631456789263469628229216941016663251568353449996235455861844310382465135702678567410133803345285151596772307150898317514343179633381315805549943944158973781662879375116128709568244855019146791753173349317277754400610910855123424055931052074527884227134618881693379837980436940098849051878953970264182641912654769780321230187190905261719825106835215516124671781822602710066204981381558524208008647996314781607246175571113727132054320149773513627407837151288783312991809731115129289760790991119110376222101431633810922506012037938913138788931172500866095449988535498749781807969636946614575543298721637943444609965044940533368249961154412937006232729275213669267949140630238090550759666147932283418687046396390805300381158465391932537084121162485050930951042697130778006750769307002814472134149600246540119755799057163726673845506632893137705682923230395681168247103035703498560002857362483356316790114804397185624838968130774217135747809238347711127901130874072609807357740220476892269094900736857513055810199879882027645806428627997525251861093125018751925853364548092948199546713023745128574482382044047171562999204252634930645476546390408255188513717021587548448144221964934572489595310078422912446779328732576753824758637631191427980858118205682918851042487426243958433948349587484984978332898229770782451937274402106147171032275688411915937666488730066646154541629527622440013728170843956408381385610462380846077994054357092622444113865860784396310346450450657697467724426059779119873931308291577440321574999438474073107644615849689503081271322568647537529804549956270539527323570080297416112628452567573393961717339464618456357086716134907821586364246334974124137096115989891722009241659325954150814674093158618290391727587203821824052893700402496291824912000532233342951302617291824884558060768304776175119025321552528863234193597223904743539941049378557634460271982373644241803308685400586989883354843447173059284473655810930154281091583250903622907944291485406121987468794116678841377947220075464815268162259974119332968533838571316063792904976879859021794601945160841720080682371677940169215243532552166675456065990866465901395769339286667165488522619170977625248081984949612703916155318915293086093625927837410566513504610058082253835271592403334976601269827605863862190649665933574023120671049794028311259497955423243890294890366569005357442980332037274757925512918063810574594915364004164601258219159002766254079230152356101584916495760882909659896189289874603993089813350651124085025203860030747433403751971995186418998591646025961357992645514294163324536639342022290526847855157338635149457351393396124515667536218993606190903786321330065405093954578169011285251487515301282755777124349178011795347386495708940169563235593868496429717285784653385919479470059237591040846132577430830178986071833125958928568960553051205787240396905858286046813464850075429567872585213283170621718849808122209028395708342208730409227246290534238489194755181899622024439039234778423963040750566073858385584718426677776987397992575311111844696125210695590185015660776964311965507686855691801599923648544881367565524323666296498789493794660793013372888093042316763906754418869663137678843025726307309871335264569506588029376084274817831769219075228475535537404855862884339900561530072050057395898819170792475180292449276504688157137042895388515755151317959582057837781345169009544229421952727498408222986325644080584437257377550441460017075666723912659868742309960484483050075908523801205330974167512953159642020538114446253652794779723453542821083348202446855597203518431736128454962663759982952839476398963209334955161810323544727844874208162220584132150256446836409952349771617704178425974273223595307042575441561710896913863638993841568603101131185140259383327194247885626227757946912975984714383839378478937283338858773084689197815524105525864506537116150387470993130130794424313410676818304704144111464768948161839652546561265023496378577870644256910127713298333828391539760672175530885054001253553713195791042296477800123002752435473200651331853290008306518259472601109953592390901445707706586502372155847935061689510112121336005925805175038450232336212202452941054798119909622840614111031973580979097068010930844810312384510442632928466820132792284977234631006653606799194670182921879769525297347757273544556251927879693810191682781394571586575712241462441012727331303005439614635120077112426863288261433380659510457385437233340449715375494177436452957721824636272060502292762920592480422985568690749398478359132483928722493419621977167500748354180756570050105994106110912303029564640864244764626949484755362122713291587012453416901075138546196628035487877605834978140968285569604276171922279102314101161745950598258400210403742967167023027285690922287332553440536373536973735353129902810372583632464283406491636934620072957059432499568649899557303632585296256469352319531921330885305454585669790780440226076958779328724967547367087897079191685425864600677909734846628832722390512932710061252087863545000105142462231426294376326602736360251661949851500738078247080699913099024336050706049080186499283076627199084392329430628717330555733337531732614879336330649908947963278942671088301684965556740805882598577562458086424807784898917541457693011917458523082011585467985301477177289853352299341798159280444227325369413445634379009155665142430932180355265577705467568756044377564590995533121828665373620517448167341837315414228286068734185937734711671605351883952822652564170608436017586939977332679500835154424072351984276866531198090616424316633241382542498287225168974001315267500864692635265076424630889510250986883918836686275129647872038252667087691509444132857834473844074691589409428868591639112969827299957680297686569910085758080830860849962859977598866989562919812407174333898508653410957644475882517339907344899727464687891931125852436985325720920577174870754161217882142034932566168134160154775330766450630851459900029642401054993858473647213505569462703263695074978275757857293888517401465999269476547064384354570578052663147577852396013222619821798224232787398161615251777273077328940333078516505349017564329869100669309274272031580950764500443295293399524648125370821814972585666800126327831171292970522256849715229987964524296022762803125979259594076319858140880375713079899961601700532476965917055057497711641490946643811489904140195353661421694015992778494755913244887758319722493478578017087566731298827345214963792432243255056235829777324340411489814062585587836191511749591256419571978191350078648025669241238267056415055021562091908964215316662026675731142759900761151871792211761403020012566384311623022419676099531173499505024381068800336826936421188162027925645858876383339511659875356240881328462018453518697127159593553915558514403740180118215279967774284359289197566610129186226281500963186826147155322642994131152780387166803142775665476145327026697372368886077511576709497199474523303983914598726208996345302185825345906502764764694023781797677255345062404847230819232714150652792638108772241453598076527658918265353075358400365555586310465458484353158691298338355135912631296274670353653094585516020051908244644050675892096225688416126493940699011066500776333555178802058293415783918744843650818468872306982037832282908487986239983317201040809577230243546202834305692575000516792784830077561938182633876989454582930619553244719316421425173324798630819173562000278217554381723508390571834243230143282105097749611498858611970353520038834525615184122479154290256176348360138288060442902349533507257136316380388993907436311738990869501554706311986114443477670359729942009035658077293535057927829790280725347272700236886467117625039517024065294594020932530892519097382636746242787849770180344409146324112957493270871312584630236822207000067732396438029390277108777491090795887247212447138230098706316639528201236165589735771976464473346205337205522387491032089943703998440716267316973507096746643246825559241290219054260276798291307534637358847450214386893473996332149999555064624057857506160968345536349467455036722422082762352839879286533693723656882692419620529366480949595064314783373484371702854361077210386134197549721458789807053153437146301341050437554737866523176574643230608338099900143774655668846346609074840433835784100769513595164540244893429025858690873895649655725464101399382725572401024049018213126778920868707020030634092599708393150208084193609386635630675645727535580484627596634466567181761393798005406008047671655798347645414547893264989558006083565583051755538765875659429103432450451320420062909817981007821929056367874267793218718929853931668887017202805207589718613818037334264514710791183712665165859962963241978768083817154925845881925050343202179370469716554906195634899818931279821581328396938735798374820704497286998664387840694592131808317246631415961177675882955660118827192195211103499716735894916650205429020363107766249449662433032608039282515575525441239159706376974200076324514876035593544736833408328418467552251824624892462660791714699995958416106944244094111456289818624494440844157661706920109124588032035557986676356683104822434081327339756447707289159500618585041632130535934578057001432545433065087802945800385062700879642808623883827177421952866882595150007619411580324972768829904081772250921001217771325842066783876272849179050246978360256089527604339810694776117704325644310487190775826393045144347658545458115380869808813632951785265542650442321607617902491532976500929865637070921044844498194374875989117535522392105846944788445411995742662790695239777127697573550359543745904398616039625101123641447108790408961880334713506166517915229125729004235037405077187001659239058213428839023881987271337366969627916509911309017854176530048896049609219778604489400384702533082065170547490248105002369107236547259082885776602723122975195269453830618843075471192755499337260320852638262829283049642946383997116950768378349988936486373328020120987792524816088485376436696886248483667617516785071754631960802155161374861764964515933724131165858569072502034390491504165762125325855829245248926122716164150825492842191137393291533854640596552704643088154948938711970663740666148530956740182139075519970434309905308735016740746366520873302272022276178036507394680480660183913734887390885913146652361282254971797957664519587608478799837859199611944596693119350773237043818791311332692672051381510665744596436134349202325134215636481498747065576970186940222195702365592156483823828410267723248538313526857431334474274800497801086008368373661236815901737749923669826530428673284646779638966927557448141302917673744257394117169485898038113656524130055840549217323380701614132417220650715050555385663149515579702942759807973509389707937635213363874391721392572559097096303051741667876574508152067518372621376167728714911780820988280175340614286281878077256303726759040791622647965510227015561536954409719133409322609384439560284230913963650548037082815761374258238353291661632383630420158585492206699569487574230853812276481114790438979568241172294200793677243093562333947854642492535402168437214081872478218006815694533323849775706362337676517770002466407870632118676778694451885960325649087216790172514210317333836636411776272133424446589599379220779704220157951014984350176235231131267834558093596136290420354863817815321379325056660903742777679096538189329666033332337927172393223561159919469579160268363701096553778656233436919361025562663673445453983891811256458781784418467145348381236761712953390476769417485727078305409322011183698333895142478581540756546174521593757367351133795210615549763944673804955865682448337492560148177240349160413867014601112695991158754803548667331299737733785416849566869188795098507262678760521906600133291391894076733080404773877319763655510834239234434255577343760925675087152319011975222820331710994535385175833898499815916312876392340080092245674611234834360393496445786370188068757320099272140629037760480601076054065611047970787867523615407504857788067356885845647361229453595222491631903330914676619901989778477177260840408847659377073094016197828124790627644797746031617400957619738893854705347116699181723740768864113721286840126409806704407562895773640858137744418027173902568763719474428619525463575890031647581001694559127560672012032797877581348998891313831594759071698029047960423448303389356687677570787155310838190481798158881960275587524896059256057060492087366613991799385388727578470799188843011280476105236555105821067375699364590137984555607130062445855502156578911312798094991206703590006841940719559056598164350469227823953723880830397161378730704039103959653101005669251433220073650067082869235167285250427839707175424670044581651039376234230736230106357887690703132749462931606417097494963286435384617840900443173050822823752024112706222594480299993822154082439263632163914694272437054605763564052719049136429831923219065121578926296183910358175746774412899782427857873438964163553697742570935859566851588211180224568846864625209484879802334300254079689520830076131156217873529857777179766395904573998987011898495790800089045697180032012863200332950306313928531423479877801065316424736606209309249544109363502249022413879939139697420926680606102926823940507799562303885028315989327560124545098750253439522528902491395256251902626151492349433685740302088696463252446520452043913049466260626675424290355080851975793864038172277812320294279916002615844796551164842134508505154393941590344636870077040360190645274608150884308096137001755449580403917965215810739510695782046802513807573246647280929056059575015683271233214009181807890412008655641013922225829356864103612516508745631818076897006006350525306245589596027928342136781854153084178943629444200706098394930701157187622474546576990591785277029386877880804223124441125468374412592609033914172516128045949860403073799071320325678703336843217794986233951824542183028941293059731135221889604729092828678029096483183323583615849426408322484357302844232258384805403967179825205812697075013512192614069099934570366227565243956787623344277651425968995312307857638209559515014005072871997681686760971221420219738777607430885530183336872995091818064331764003280829018938386209372564742697267994332068370415836390228568613675920240691999699978698015012441754134347838472966609724583563841133447457947168609608591454606338631968671512928781162063154418062220914830141693177046910450012830356801393497152105634400475884233501532833488630706404076494396050073105793060113576176733130404729798508989169453411925821277500712520377203144125553387254741281820344559160234698842367108476260576747953919388395364079513339619857364627794927820116992214021334129243023800128332434598457819456546459522545281324109439953220585252629116215876563837568770867138406505947395205256704677292528036588249494843060756780072144313190004084142789357558082077526905388891372789064369299736477286198035927626232024069239328671045301314176371933260071425688569024214430296294877649764923876133774348683951320271595380764168963381803676719977063584837294414860787372948409699655930110211078083935909974394919608423968652120812681709133706057123512200051693476052978663093483507707679932260851861287562241979671260735693608601041177205378128104732688670238329750788936102290709562791192856145263152294698102655276305141391859876716376750553483740295083836996126551995661100425972591195090418394666654691878827088504138526448381602543507892205656598270726755518251586032652016976001195047387571470739730194173284944844704506118618346066509832257897111332769830877785986798040261772042889936287683537112179817086444221251421468670716763455019880440823763414554900924851337967177075419423897397682920734904768413437518036616334983866237809786271710055289106327797219250416029000926249795933945421556373325158998151720308191982837296839164004529399759849505265103663428855872340602464324785987887789596787269857798742705953035764831039954803858238121377704812464192373696119493397937725398790057610111122603194729839776598154040701250709294126826614032176034162631230897215709000329687381634180963530106265264414250498783053593773956111546795288536632223335242375743599241443353116451248562155654560246674177813744752203265505150470928814147773953600685270630296966694108498805034356955697946039989213813003841224991296120592878583645686148682371110020913508689533603859567989318523378325423405033196912431225149730178669626390508390012050976889594618864246721563435174142297525045452967755846765535990388682178656907087622731147785121392398874104459365929180543067121426733655665785591280267772768012407182485063749726815169973070250656468106949626973497795551474977472283787473568895124560614886259048046164432097341168622374308312369249727846950798185874516509999500831695439875904252484894191052350984686085513269183627267699209565529124556332853520988968239352212471667210729530230628437087007104685837499074393332848898290560524747481375424638761680078408225177953531575987248238595745309648061957004491194094050596184469870343628375955319779519662607793922588261985174232471791075602830682184573107198251014601027207274055862891243593373626415884944668108937543255994947823638824877865434381079889250349463602123020462893583391445253888877446599829636941291774310489851156149314041358148024160784368480584348107216654494467440324277307151116954190743290737828794418930791057282610383402877383048609881615834641708551570745077252824788239559303537649991055576511064016313782348049718591127823454983886090438472054085759639183182819356174020551252010253424246743570182555903413623705296179134751753548463691580902145565281535272644618846950132902038977683616040616693774995516938819856853923555565746087330053230061525148939735135252519686381025103887866328767452995195276169533953016771887659904970587600759793104655327287188348542011071552937620944768659918282554266272243088858643185681081667636805021373282109305475330931248050594387540577335647580474722266210300779857973053564785730223137664373704812778733571594670690561491674658715194923291949629590569283862583863343002348980125524966992770470078702682471765135290338423797009407996690781100602523785066036639160982422504112283206109163999113493510644828856905786706663064184638162640569560737289897892345535429405497622498553508919748543134841267466110998729900079950770235015484759789980093858467427843019742562768305209018799616209489678622520336215504527407740599238323167213912927785082954940665724098330591249408750743698825406316821017629015907071372849985714919377793585709033302745372783135058882424861063692562106918813931934422089001246757958611941679919830430984051809610427036301613933866349904117766300666771079933409487664741779611249248233146314692012487840116855543219348808244045289517462524252908951315323538464367061399022859395752758773786902584063875087459941340505673158627000726845316085348885461768622636771886369719569167869796780600809144322147902515680127842262885493611009482499201468657585556594367407157936611599464606444784963996679275470041927614944967101245107957652837460825695500055429332282066377532148596647434559198048983788920647460171144794274540853627404986020975208046620119642459005801465483534608076280112672059540528443165553938361807702558103914556360095285732097885743333046692833177822965928905162493164880899315484630058084698808972514960205455487645693598855032778894611064502438752243068881336101039044066396381806418687968461873692342429258410223250010342906422762868708867078829822013768749644743565652683327119921429143246929964559629401507552667942710241973490916133897493688087603736071947652763689926430906512045310055850494004451351664328710917981167116552516524943633938886133760453652386638870539619235510780825242314746903917084708774876213473711658224884991286697017301317977399205533282589344918804841093306900418124078586760676560916059742534669421299609437301819786726139325918327964821716865702180277282148774256389157359975759421209370569787085326152835648318111315747925086558526308790450624175292315806564187191822147605404767441855739860636629738017575486018428902540434555442950599841648765108483826911125557273796543739145443525743513506952418896402339795823127712397540450305054256986251628815951745803168631286497785165902961549076140791694147629156942689935207048429719931133286476210457320666420024654472426162757044532228090418163214117513852941961557877325385108040823939622723947990285366184818478598682370142266440600509236949522947886911041899704335719617150053919402322891318901721701348517601976574796471891827055677549047674765127922291344920511325371820181923922885182412764377851467929027515441978221104132157169932805036066951050997658320971756987818051451024537237151623431605155700630526660001601781920619130526750580055082794322668317776207401866917327299664240478495132265565957169928088478580177489098675484396682949608595247838928177628751211992715556881127163715443827427740448484198055476976939632982383373703159984646868878660359144236464644288442572390608438666029264425090200727474146486981515480474557418211527465099601605677446953077969302506874023062848330123061924295519055106846614479498783902240190505942070940282474624214316711469677309374840452117865106895860156131149219522459248216500736051916795580014351759752458611869799325333350753417496423668721495117842515803692861678514065374362142224571550592636961183280630195253689760106634361997687781728780833098969071439642225417711980296636736784689720423567961285264409377961481799702639361104249782076583777596219912471452756420832741251310575087839064300139067039892570853880244537223554380737273457885974607611394826626225008249874533721347186930026219480490271389423653717231804879149290110351010201066785364128362089766136794303027280436006376172636170603499059783705348027859893623647691329893718327544358325855575202736763311465890111740318799440160761675325157381310250869143760303445942626743662903864374815866156840578831647879206100437763376578698507863843726261255876905420349068809799654523951201227909801406551513428590149495308491131012080436794239943890883311506655977672048687142475939716196663270501019668256261199862631816885953647911448576942289069908870214057352893642939131638399525926399836696800798744539720914581592750867695550268313180670735414295349263574791398696276619115005210118971259818973509424329441044868667758349365434540681989792107256201380948156174360060224894007209647752973941315578852484434744824041407122903014132097350170341271420085135292059216481245635927082863729604672950398270948685413267196939273262199407421429419860330136061620202681456527918195435491961132420149213569472209839054551759159278564113628036011153963678296915945987729126995855366864368404886539422404891515847797972478586601343495511405260903886993150664340173671258229893267511928192086658834489756196059907449929030089441318788739962471929810092934606176740420563260972767952271235263041638228054099204499755588806561772935609198523396601983291469401730121464194443355480742654073641638766569366608404159382892416954604001041472969917243886526754541763543536940153899404929881292605385013326031382204925311234783893108520136186800530644241218639578581259541338648241981247285891135102148115727580197345980105186164142768742461400040954200310176662768127070823993805412324334114578317359866768607887526269616653596938137110849429329274711257883380933325629563989232857000126673980633188135043360067291262500854259309009540066121342189448086841989962677012985873867283448233390075888599457219206476143482993978687065520511323032718239614914266532252201501297854388218379012872530094817941272223151029011799183256364298598007572110821182014848971846423528765053277624959320336617915511154602205573280808127425027472154370451516183643781684250541228098609619357152035707640526365818938953608991042295603163535489058105579188224883797250347966423193714483198481166206092823239108149113629993720582790087216712635911488692653441765746953828262436929492146944775604787726646871851908224702445175550242597529739011055296450393620381227611691897521397532059405617310229258414533541497831348894381637385253647740546212949878740223244500287364658618252233560704075201643252376481819605350356182354564170572700647548025349671213927364861619360740437753810263303821209383438350512318567496955586433796363454326489795386570774551123494799664955204867544898284108756536741928466352130318576987873900759937856121434942575630701117330046118681509623829976183056702919307701887408644501838170221158431660998279014300185359577984732369578329210697655475384181185507679954860845246701261461713591427014470829873275466623884160625560079104993691696807837599717082557365218659654393985341029010967499953550485784652899461439598355486183094625160357375633638080735883121952114427228107328702648400894842054507395106310901945038204164816878109968911460784353308562002784343065766152457505967990087839292857792162186696615357775825699383110184960727459743263421117114425292750278869944831322157842831320050120260713961460819863995169976409134732545363802364820129452323489858414840582532917715445045452991402777254543231920956854583337594146924960204098924210755972513775633026115032832436317853917439328210021782845635213535537497427647756080628896896818978166437491929247732876310709847020291620908758574853497968303651734059751015353499482654395502074135533398031276739028285851206733534866559027863155398264059355425293982602989267136128863507694258765264549488611495481574746286835868475132978181271859829557660045426431442516895853543495412682558565692647190086736253999112567360056796411430404389472653789011078915644230592013752236592208727842463271781251093297346539148354592228301626852293272348807076507695258135076128673024973130415812974774381029566159306316992146156137760179116185493210158089255190846149262488153065636678775934697627608332439918293451384471241292851605959300737081754934909758895929240000006218149667430135528402827240407332765833992720266381377728575924968267196001141814529762869467196827740177476569641721352003210901204882221913175023529883038214126395800446752783105297416018079595852869037666494169834080921578514772823454008618412527300906204177745495334166456104982779310779716629364190003621726664447132400060505944468380410454696235832276976376579409110998932824547451280228668346116559248974299045845261973403760838891069957706650849674152497457060904158131594767402588201067189098575206458692660203717498586102883449865590698829156328874393520143579076231072601858318036350489428486094095014282585405844144753532869781014797489461794410830759748956772601093193497501672751426447810765109282203393338258440303622652538895708809058802382056002395287378351987185419461333524307631618131815684527404025835494490872931461287260684843483234964571126278328188960153714773666799396154332743303491631440679541357255212367380254268151606037207507060525428949611216020465248791585787410509290064625369733368029059070663631969397098578493976497684896132291339148877349529068815840047207516457671113195456315026048426552512301543613166677106049351553173585106966414739810698742209228525390168791216602015323179859637181898666150579444929797932506074977243471617382213754448617349478154973619891829099010155129131460971824170651859073339844819484151439388023997376974398987081014729066112359892695602091989946118884943980844546974494897858573715185522352473233941096641244802535057699346672958045620241693071915843642742917071393209641213450665613526452472014355784646039159855151317010815443984322745975096790053897550893083355347631858425710805793458115121763413892278660643071532483769001356806080144311763890678192865921623519262481596497239703146753089415131316864599024565470880750066965997406270917209701113540589635081370806900380462578291425970687982710842439831523475327441778601936329133860480500833582777709357054364068561482353686678133943924079832842306439278190602011658063945309723128320016596615977351344572538666667946652397280526765994965149332043780262249136776413789553666423779729843979012611032773344792877163222534251638813536877764669167022984389559984246890078488238163903216300604103995227441418064540040281478522633028539444598769084914086525013106186791279548919316028776076618340904919412350713535881588275109966251409626099431093597197066969183646601961021936370610972878455673334672493857711983194121079781664875414456567166969706865785775326874127600027985637167921642360699620247421108175334866533188228367003398726050119534785533144300615341259413329764570864090403774423781843618095155765795190483063639250092560418557745193941869948387012591240830171942458458833879492670883915583212472663767200818240008684590252413367149649351186418259658115611088703070507068097675772740632564981650513587035905498601876407519343838055646254304737988703735719519825642528704990562779813680683360572070293380350539288941110955085664593997154525294842391374697123220212771471815464213618707097726728651293483770815156131818496006692755823600727135461826311605065546117093459631001789626919573451577008371365678205636825916703393609475364639065074977880035627275344086682150974430921806832010463497922342500350582794761244124543151796150392307556076147899578549292646268198161545776449408388450479485050011878804871634336000964798434895529641873825345727423173877241260648036665502210819473765563206265946350468229095679610927314500663796309407960355922566400490602092421377973311954554683170457662933672311161181071376551290013028672443413915236423423052829941445240441127083158682602380666766567523392235123161113300588964074972423741678793025312355753922333918254164406126060187926191105378543068452627475825022725203236507611962545573532179792157272913029421010574253129823852394904510941054238700282527919293487815320368620696200360749582703352208356009463131189599863119394448833785908472116758368254671872089100519305652833855294418142763330114619681455514107881610659553518777688788402935825294373886785382823599971824969634378111249210814959144263995314846099767556569568065330898403204474648495479099905565918493030766505160074087281382591080425610605104781848283357287331328179362803882286227496229273162745774537471941781516722833682952093310121729678970768188337877279916211591231210541401474059600190976812854726312844660554665821738779486779047961523651152541092434737656122485386892656059365550342482894973847455884314122149417711245471012923265048416842528990381297898304693058507065654157723441628789607625682246699031678324577393768789718997697050631552968554879106313549967656625196347077432861297458391555571569699876675932252218144543325533486187085444991551905011215863190888718057032131191432015531687955086692089929773839295271419310510165880300492014057533901801230904340365026210371228044586992583877162320194974019763243997071000603743955431904625260190783676376988735959545010506989502479797940224365778140099542146176637608806948331129585778851282959022328306076311608201820830796410384100913395564062612299218562935007779030014621768537328144563174276765067725256573907408598147369158909304275280488383397782917131943411101087985748961525703749617207302342365687558083597207469229373612670850076233939754219738113827877011165020461346868721711181036839938798909584312541436100702718888435494523924561412881175260867922589312980541873811880264750320153042715604055673859770560213086806077723583438869181235560323441815097063155323125014724636996730337669097688201643712144133480808806546740365067635263279341375995518393953728907044579832015940371797250393485968963506900510849401415672238987328070439183175660833419667631836325421811584099101864602417480345190690803464634208959079611847499750127060460237554822450376044665121154186595915825730584663979906067599709983975635778603923868044403453771825634490314199787925369162866895048900574485775778858985487634361085445466722767258569868917464713325180933450912904178497359374307840051287340751068324124446979258528621001037356006629722513540103378401541536855100431890500691936782933619319926521304152727250056718180972838293391259791177341865526927890493702092573346298812453092094004140589526294000135610989127041402683316082980686098890842586105329814413396751081249205383226935573050054836713325646699259578554628783053721998946530163422473043533797346831171656080834305796938241548987931562297421397787951527688610530714405495927477412595434478714709564740612360287924283178812253772871275498357488122731221838204622313906305295615089905274975727026319329607423370712975694561841177256833867925647172804879548775438065681480349961342406061457265391415285420062164698019536449135266671899232431559105704158686449162180873182260218141794390436812211416083442568490740234732041667812494637164592524055475380552300449639053212905187769109713559542611375090988995281097539774472560003878291090537578308594296670233434742385364199662460985329988859232866315486290129271973880255484883038525665529534870227496171530791965891640335197333598729765654375012445874957147146988332722642246047380419110870676107226552390536512017498413719988649251142947901754123550422556896334393932379792577708731781395817456891398908835537102031813584458257985685235123184720036593655530118667468178394521509390862262467253357412577544087583772212042086976916615872651458721963177008273322220403126222386015894092555166086722474393070435018773135498747981785017767381281486493645459134029395413103882434970112132507007800554236961199074265996376835957138884980404032928779530855814296804151966796146290405852217143798327807103336271856626050165465335807679359132368150101355512039745261507598712451627211141950169343291483453734438066295505681811200897072013876425990848053028036762280838001433996472699370413191218358958988298354371227856737819747750934137677457739013839584610785511145716614396013742583877780100216141727869272726992647444670337375166162998844091260412945609372470406041769202665143669624324204071185359172724617321145299593318215947428523445970142994638850675054774364042903150661828077219133776733770397838491757083832657477995573932082433843361433939192446987680970728380608432266522626097398385493210824852835694349846103387243452292086417958848325218585976726265015263343246477085851511441205095978371775667827239575398379786680384858352543337114245495763888913440653414711512591511695320059369007586039186184586519165402841010371313344735865415222412211088833421086985099840477448319839556663706867286792613959211933561175056240287493790313451608333725122449382808856946875956260369988274260642336257779622812956674745704199814919455775787208410964821792880999926244904477643552175392284219421550015775014762785898086579242523701520236833602101372882857853429137857578024460953280350378072608761478043213397563459882478988281472146536627802487240856004323131553647499719793964716868254864035029324988296990792909728790570090233983113749053412715586492398667912618100324491999979400381212205401158091194286065430132066555115706390734101400169321344607290421177658521331665090859846120219661589649664128902079781692719184089719449305265219140701138723509963027997427524121956608479062176846951712150168296969252075677618188171125498116167926628001511268597787519977561238856052898512810758605742577369056033619425902224291606068960280079863022310998463111496371469045246708290512917452937522182032542323859283915821099952048615409206542805454782696698860077104542897449403371913403182179877987722981024132291751953050504883238856437577175741289752729057201311419861042864028262119712668143455317025798979765327973951639812423297990566244824002826444544903485433042423067039844810629277744158855806473712316885573278707845047828364364580099219052961799446924567828158058800546542309881283094735864546578305035101430411740948116076719468735791767490068222621325774124608096293316197898759041333961030746364430729698155091414652822577594624192671418701260598358406999940643927800917847500632488033227265292253020317866188106032728212920021628369209146040736007718471065913393801999398374853080237388717031598395111800692658681200079201419622864952106377662452993160000705237763507269479019989433559701083984315538951953202087570827126542900060982013106013700952970621154821236610762768280436674432885278509220685907481835824224349264053874775485297193208479746163107651428951181414847491584777809979287704897185581504185767077770947448084980778219739353729311725487283067146412344760843605581964375282947888195085131841293480040911404668825201643936839342649642760849673943409667418893577455175218981968266110693847863713278789015257227923064211199311002871861268023197889060461346528278711576629713471400740377476040409032854582928107251842657046242210693318833365092659646756118766783157243731552585967181172360441488710694007015359395515159037803246379083025995196869348103235628264448404361218507925547399531385325595631473538621438649553305663716232764215423572487817636582163108829159245891118136702437499021166718188313037908718466458219928628168770385861001323678216383515845776880535174688120868179337936321053842728332051068877324955782598416782618251598504526417662879706769636896950186951611695418525320719641252296383836573563348895820510139988653113481521664007238681375629357928298245775683980913494361197601505384782623202490082158645225329071822416709116520847004914738202308745976712382071545291485052397402765229544280968499830019092086504988726607701885552762893238187466363518978690213240579918362452160689775554691415864584531127441097740793010680057375101896991393046311672059189548625490168696928107567886878231970032322167680923775533713758188540146104081101671358867172869299230089547710585696318715752025351415200756271919657337580678039177792214654797026652070336748131443013195641491067573389290396723635780348583535502509033293627982879072454026445252205164709805864225944006221980800265456447263281728644061127501607203040936028285898725496986485078136135564587706595344711363640329157889860640825972088676859898773506035148886375346256178989225440083871112348969363801880560746990698447003493275698815924400678554367062909738445779483577692559005121493325424309021472625346646150180687490661439514023812516978192084799307464278578337552322959858251549031763911435906887002031010401145384639408931924105067685084820262801470608971058406047934626837427270079745375343475542514623461028621811179291545038462908552560003151260290229127693654564953427162901888458524082194591901231320158988381403758657416038170024931216364922964589037908422343273958132103970060045209377687964925609096798910903625326454964033443978264866096686983813148741779038284340741483365938843445149948221491714676058417364530654353166781432875243667656924274178349851094998307807540176839915381658534136541165233269109616541377516754333997853948619060914670940073516791539431070033754335621038521787734645780101478344158221099177113627418804630157450097017404252907417585476258578937102472467909375836712330490960677818926628526724394339552284764550525559946469645349723687405293175083616515280923928531215691026373022244014205906892070235359752378672972333315423721212571423269569672140513515972546771185779305783078282458443820526327960710290253962843526002418128365822712211400582961118833091279548402148045957847859258420182429474928952519219334748404172542906686626403155629902270287151813621900305661520229038051984451137780297591983992564965439555631414386655730254066547544289423987874937548389464020508295587788690441172097196664816094154337110944340391684116467865364067627861028410482043646558022121012694029638186120344902921805268193313314367036975996500011925666347178619528770361382736609979568533387634060006254070151140460452017803061339820682332064677228218774560255003504811379897318069434733089074386747181606954046890670124013599852567660527102067374896958575826685399525865969897378809680823221965886907130524489354841240958013004568211213004765496284159225481371474617677743832310020841303128829417366853413630206066471234507845906111184555622393855419453215653839755002574781243617562934255728715086159825482486611866072848491456739987040090222613345169326819602264507978799407294713108382277044484470871554402958892047178563047136803610231138255510276034792172339578625541800400703197399397586680829227514986937626455978237355258887256237425310180220090357158234068351210848122622635071819712776429898033815952374298528677732737664775956875832467931011865290967018963255683259195240841426960808920796425521825420601688609887058470162104092960812035536150836756490080862823613656450961410178483248031745694067310605996836495350563434529461523073164293573303363925295986051802543580805412056051140631200405536638491759858329384530026155153122160755227415966929113705123306805892412081253663810120042908411735410529258268713950411114313403123806997689300284728345095776955826751753914442560575834785300569028513099134895448739082533596085477346763239259210916514506376917851238890529187328591590305482260955761003119151610983650529142289381902823990690518021253616713700894669048682765493157567705809832447974858064666617776374326625263995889827523106737485667150419833295558040466949357688489582697073038619448909100095654246393456676738699465548427572464327987947338805578881580252390063228532611206682742518346517323710783813840500679573585593232128131371184048594203220716898159072209447563367566778381382977281899955392544673406904843000632323778515960245582509836658718141411559278266348660634383853496729701122850866641941190413278578038129491825486389982383132207328707014671684457627570823034749752616625838053943244707830494592797851987088209891560022930549591132232575007054084698057419321345042237812167432628807163619950964702918921307935880921087153944943950045568081131277598364022572630927473385913352091143109889249083757921608671290041882212269385367859947710876249791355896004064722035553398443113036495459775132876101929993532264614297831203164010774997767369657063701516811223264223125500042529789063723607605422346466973938948061167984137399627511739213283151676559238748725728542347763007740401868630111319033490979282250016968275151300359343059954492631065943832486139506789699843247667484699440944955025180111416247351983057411358209486234758942259137834640390288771320324305270551738844785368125309923800401221248906171006942085562465283680697031618059958283257880801282006955509328254280288190803183890040371844642624853982941667971864616519482127376621789160363254711370038575579433152402785499689501635876689988191867802516648920296288890154552043636029254968412047645916546004119733316796149411806801070829298384784508807009814437969204820953802336112058803807849725782041514865114440261994689545311957386087585170902350692314775028506686997283100560855560641577032164726955660180134559390104744552124212141903955804709775797083351969674128101004747960767408909041407202803511498908729136918826407087082256482828316518841523597250350994783005669855063885689824739319287036771857822296367829391668094332521261345806357192853170325047632282236106670992434539549584905787808903708572147374444925622952282430707042991132443285185241807542117169528754988473974127742202311936221065564603390843491255299764779490950381022756010937204871346778581276571033613263447265533050014836119455416013865272216176257231996337232694832562331101554544917503683238505991381105838907496450648634755822514868450631150414047219095220926049377946314742042735937503782686202256706842070536823967467966613276180450180828965938252512284676109528769204073990914770376594222479030398321351061067414488926838370964461390856437885818938848800693671081017331743353879215977959126077400924773040700401266148573330110746580646954396070118034370185182077477785053739065205767736580856594473022993493360584442269332676355664029070548233883157149068213623793450707554682652119060622759226250377814962945370871184129713054493842863955991282070699213319507206475783209497201399919112195865823552929042261490110587930591753011888144354219516241211484592790176453262963842643110859519572345892227909405410811392520988273779064222512485382122082460735550039615087678159928226456698419648088558252917944905303537598948891149061358430121485345043903836121872198089654065038036448477316963015313886854618381380425233062299040813862307438892500509298557915448081825894091553414578608141470182409556766026310100081938597027302847775130133860551663167200223323889795810544177060702766921274428931981325447595866560964348029832941689036552580335528389535017022748538007780777858081799089786348569729411375589577483782851683330772421441693434763003247600255677571097540780529298200904214694337715284520693406756637309483211365434413502627445865884919931758591535010256918373645936214976167171062914578064210859626759850640489967567021131340116589017653374318640322920996009679217619380988370454973035184553330749652931213966249644042896249924894535650945010986961821820040804164421015378581693197113348802591995812546435885017366955121088378087739012155097845543127788837833658298056121651528944622414969257840275789013753134811593936162807002482861830449413237801365737883706275544099518735614014977618321540503116194908643714707922503264610003024926299509206136733833541189731420237162269761816872135330928325915978375584175012278743941909570606606440010775863026905829330288263576462325742091191038354097701707119253534465554779490278851145621075975652619024196407792725788327269708849759828146082274850623283507899469588740607883659914337425018975132208169586931170187943081579039277089080485284032110597974149987434331620348531806367944315091190024383965057005401308873918502244843931135419528984390188345623916299118981080210226867712013065526033853722664686925526624621673895913389863148657167470062482770166178607534154885475641697007196840619158163839680043003954421625029996010829896250735225787751897254251882587436019052965337101061750154229975658110158603308330996160499741154114225400532378735499416803556853819958029537590105040970858207222018503025058279432544363249676108883538794047099032955532620665904977216070334753763303672948064478394939924768511481459569340906380155549988630715154396515540220847062967042238650315713912493497657453749581716417851289127471024680858150717378512947247537494332498160079893596681726361803183643293703773898838395576490651810110744447925773909582383289460578371978623490100807265395693703975787803297642609206721094065365550587663348903500511702009778548179303097442611033003472610980447976731555873113575106821374764844809024336810678522572463084848149159758638505252818330594328591065034067428834497574216776915822671200414411400370326649109309128867586446609617313556024302551163753478685470775232611507266365679018597764406834205305958016710363164770199371077689946272043202354073354536653125346580455714968550538579062656118075857911720601279082114629556104747768635306548072227939900558964303844353859888039032948907386868483032436013010095397719824049843256132987580521490257238169227181951147412383219357213395524687616252497837200423503655298904400458762281334773220680157952773286608617062460621363125029904054690662335152717086056007631305920961558465149031498287299638424074898404917739831313697733786134134862662467508621573022851970351386755668220824855588094843057813164405925019207404317670308927823001767296942486741511620415966062902607428399192685388457135573377783417774548996942179147543842808310247332606563891438866943517236967833179681004682012318106007826578772366797507983387946286910526250309733671758726092558893122818125866963066668457716155574242332736867413966876052598151643292909148888213040760061239722186004507381551747104959566454067072977429462431776118906157672219089969408763219409857325415822835005288278570098244725687823780629115167654688167796521239552994717278937440195612061908414285841951360827697553012344423415939100136318142027853385872018871164639343164755856916270193831970089028220409420954889457863766393107213475708602596900079414242674792210889381526222278824232994477793773469529975608301519238745022379778945770135732862377719382368172487925601308025918267576009758737945236481425513347082279910971261122319125252777886708106307802250782347450359690098686237048056497245263855606990721561490581222050657161368131014011980494986960584668801214998232788435678426942954127131173640513833537569471435951509779274743488227802989360203085841842336545221061195540900030189078492238807079405257997374640853845549405479260027206722078496746521117510869804820432784041417383772972081029771904752938780275300387099719607904686970478017585195490826438396158269649572116396332721263385500460876125135749881289623740264293403280286042533200934294330739653603813576960580179665122367211947121069384463921732699957278468795447219672465471311688719304492431260618202865089714968190631498348755095757239675381243645039608726205060656466921282129867520951601478002090664251740315569164538163493171384001055345616764474617553901786025922010722210472307646830529791653970979585284722613704129608040391817793895346799428322638725442679397977344893329498287611019737896241368857015298910783353088952548853828495915097291016740385746146683473576244170468917519598203133664016935478018209247794856735791279346350588914447482088523067103015960955999886948363969852243894881601732876837672149395963020792556311230439393190873401894787225894313230181430161113525708755301592163320025748502330669591735187694686667964116831149765080474859145370329192963243936273394733681259413442618718899875099769607805247667587660915656968952860914016277302948625486470151693677080933158690130025728338418682346350167985157826491349565701667695428064276762194909439105113654075381976499013406675178310430372538856104989421358907933522435456285554230048709666202305891421093582100519291865583097899032915995237245690454100104960915020354216770628240759797986242962910206554770481284325972748144776450155012852363298769831949772293616664396043367703292008683347449168736742648594535836496240582858040284557821646680880580325253951821624258808918183072205908166452270949894813843876292618365527503633255187318533221046477761032116242052521569423504846935754455167559271470387613197202192563332739986546264108633551064818799261136413422665015738506859507264410298548167714998774159493640516871520102772262863029221726561186316035946396485054442582009576540182569303808724027988013152983734041301060469304577518925658769297445093067502613549692450303483676683662402595155877710050792746250676567764597888075918909651841628237271224750940336863317883989789275577501101020144543216433454906892175795825106876231518899212667053276399184232975089873708794169832514018160521971593441911930538263339646834123959731716119902390395633626622827106219498637215369941218873521559456450762428650367527143701143001941238729657984989159587837451515807076565589379565167615573921188336613791168439590616468002657419281939955883193831380373730784434669246134188036720852741523034519767782923055833670633942733351600155972958364338546950169994450472531851143534014903395482172144231113845901252309677587934180280194501757555821022273570055163177158031135237067222550451144814356023300903979275933337969984906946735247250464690710135134468001987458510977241311115536615182848794320711318593955387577887735827945689471375218019571145005638027976385349140277336351314881154691786090681497161708209776316547984558190912961838523426714604897856621207102164786695013670198488218953769486333170922695766245425358172135102274574629817238307889654341423051581080314767428606498318916894626867280181320012945486622137598595450461481713733480539135179238066649238115312663604608272137757846025320730784861873112830444645220838180886054830591918648169701790716696275449669200578735849949236767282599286295868124164173210446893820344330958555360482306214990422417587997324711903089032487055563756762053438408111450801648511966862223447074545692325161199521402845740285058326410543470323252253248575934688387106337053858680096842660245731065536577608803179675463546698568128806591609787783551970226820281412669251254150270093014033076922789269874859883369803753679057539951038166376790179231452438853030626323219339512673514198530750249766432986074164895708147253856229950034075238269944958493234636899301037898895573924709725748615250161087985004018733077807382649012559233920549705463921252321485991156306880307046172786067581068609599916641367407306725614491742839844886797805531172675109421987346911316159674114934726251013754734211154019209482938193589055094400941253193781801621452442865814619913645548720719332678319801686465922903878340719055680235859567326588869459706401310879419248743644129191662820657511579352385683254295011256302778650336561654182880902766046920604752719581327113257675094349206126278686952779238475815578742213903108282038104827981498128776039037417665715725326806612862693131344572344550455093329802621438943738543524013286606307355315887691999554011863004581334984109397296353784194705090367162090428325941150934769827486063719864455279670089112560616547481768406398452073767652753359386577338860533431583565177088708866662311047209281138220913649074763344317138749012043540070063659723456198302248409152268730302677916057846040982411457586455226650300319731279888923070976102298172701158814115246217098930257298474215154688085582658877429769892593559752866771908256973479628125810020377871054125866998020961267129319096991260349545669201447103809755775792550278831009897216577321072205170039995048733108600245355330032910773088683190519834997937579845661782498291476649864707177514084128374165487399403505242700234732955662223308563481747259293071283517904903306024097786063202781279176745658596584997585463938612699922985713207885044051676762652385163441179406802339766700760394237686410364759512211374902754499452076253916719535384928595742933511083225625058958816742106515761279461636672607366000682019373606368293507381630281514266869539208807951944342265898053822655979862433947008529241587614372416746466813782857316412506723953744652125670250809473186519593595918845257717632451135702901801900041849592797218397169511198007930315776983019125179320743260878000688673175487069083995726917689254234383967540801340626304768876899111468941315852046221460366177500286472392622087917703893548010987940152747647554796368457125594629437033484199846108987832617312716889697411326734876049052403141830308088508745051345337430133264610056441217185671616504685933167987528694373423398387712353565911270707188456763192692209312640870159011300981884987957114002309061742899673451232254878887420332345316827844771750380865801944861497861943158424588469983509278813468897646303994782694965322365686994484772660849623705308055536800478099471669500895742445314809249218161255904363296112653237675417322601714552548091233255004646583373019562071567667301470730510767813982121445234224411467122509006368467627083836547981602523731065545735280598918899733683702695668458960390303464305125571887067687437659758757237136688793039463091234338297806193473424973890631543008739467913711633203169540954641504109290772835897985793282481287290618109468376785891501930154800510075558150579875760388310325708891204377342862087220362077279587091020021908619968806956230139430051325901378807082801259906389976599184288284829203608817396159732291422304884614246469633826486462809195194100755357623792510033897564419486647132129182409646027748570558411728901522149271485730162533370484327676787734175476384048852499088485744797465656325902046900088221376383452089063619973587944059432341468793814301492075701782008583243378519928245172273927142200667245232139352498272004064795167477054621887596843194974285239157658808902008040124684081413919850144527601043477567592583794851914925598749389659130198519405632754664177257892851489579943307225475069274354021258636541082108900353460113439418306582714751907767908569415064742429755206259413096648896796727265244298866597994472966935551350174562775537716965186727564465363671789998264661001435357784700938794948158819687611656678042644903951243660484913381498210226884992983220600519270049738640900066748044994921244613698292854082557133030192502000298999087500564360603410640271149184133834136549208162039749399076231357988162294030640954654053854819017449251088657536563202834120734702271799169142929956363644481486540745235308060125122646780618678756490431482303213899236117921940460965637708091275966049255986372216278858313144029359901282096819181345123746577226761787364108771148908598504733108805499384492517638469383409437214852249628940649389720393572189853560765388057924609542762389858648829916726647357522803041950115445337285466700597376040305256639216193585890767883492944285097158793478268430121489583267961214347651283355060432468063699460589668478310331137761082736450962130178567286328966297514354384105752686407526100414134101846196663985726125734582293586953446510221959229404886263614597666504638622244650728708920764715684114634222987853993068418080780026528642944970818228632224645257146804431799384551542744620345753058771776014591883202205730780140551173389075127178533586807930332862006611466259873943087454209397961226229466323437005436233639713284812042343166640082127441647425840893992144375228910306933143020380645996056546388618101014234327341215527791011024310281116356180311411405340203870996261890403695693403870519259283459792718550140691709355670866935182358961242572309073136437851957991376635844915290075725305690883170135811503645658594323593849223849797560645222676727184033160981179052130099850145584538164201847592439283284568752079101758302302708659961543871640067939424485273664675861124973083413433508533493351270254620091378762750487211912197476010101546197170053849220885467554454164231898063688808220543597349499554545522317185273563202181674051064764135729448013148385839786819054884975356060989414741017643746980098789673378605240983858378122862710901252331926585153350016753370055884851847022651419954354928436350868361175477569792127171294869762189806697295185014224076950359820196478840102324965891726618083501510522192653291223668067237919776155346853346897167953254407525506649230206575464526499978469262514829230914664085292261852781551578004346810934187745469643952695629258624429437718364491139321187431723849137073982072056772981089567843499461633409592033683169333455506232089284517414108859265168360020114479851107576976105434829715283976354538053873459818016367248982607150477806495108054931249392966279325094851502449975637027259363321478198359206354731984640671550579331329141735284813859995284154548733250559647279601800356936944891129043593034083758638037620482727298926553235555304315427998249674932246450762320637531082368513882357897021453719613644942147816002465903505852172604953951495216663711386852378778037775259335064335334573785241631688506870926300296760787359049114969457633357857371704526952742254741553606412519735750329244925097096745987042108149522152514789253144764052782716258155703246205407053145689946491828474460744742504016976694147210652385969275371305086795425545189996333670693570052868962716691497856821467039114004925956523169284384708255850591456361576745924662570274279736736051560325574222356367414760417106356967312360647338325159246281202402543573853640201316164252262883988536107902807144818590382069535333542160207122031063536801985146160809983247473584432735219936836387298943775216918833703319322451376716482211739326814851600404223146129027370954541132257652429490458936684995272172009412105268636879487904016267738284724456275841970274415779408718893744659616762448127665041112881086012762742688880819012426244024864666168209646991006969278742792023413657102437949442684074961330127959311444190207030479023302566030812255347909582686089296790550117255981550114993105141684395758993522674374823913177912759924949119672370029555041068570000643133392310494507062753584211410880248984918805721936708121229033334684984544745290154457995605690379963483872956617726246886789254878234158240971202920336119118625276581221920976986191589320313028114180855277180906586764747513811783032191149579792725909393890328469751585274739846444075883959471822800470069136264885794221702024928327038739754478942432866543380071408194889740480367728124095590706325685483692696777227831993408344215733469114168685749063361005057205226953454077892105094992745716278328902656131359634192275732792960948200196939848388466142944425733958214493690326536961254465695027717462004622188888827415066689068664971925920986275877615567707441670676645080389508234848897309140943487197155363271799589181333935589061219276860775009604760732853343238561825079968846702585449904986283496445542313003650615138226542249817078114029623048027713285320737407588939019306130801035542851355499081014796793049933145810215433988344678768046861782406864885834725226259891701028418879808964556413602371470383724519572179134757161417374108154763748303891312923781643477480621323964157637634392862106321991660511620719214120559883491463694174228125978470302831162366183986657623668307052164943617041424354877485029599405744516296797603782866253561565321235656798592762923956385762296246282728685885215689672996613619608613218792940435228878696935513572256549842833389296763985558202796782927155210302860424720470263547918372369749857829404418951702427900875934733089883299934737211331849974323281357675050033749616873023236569957033772618550625349461272077170221306366288864870107490472960327279018636973778795408949374234422547347036267102463278650751709849698474334469986896435125869146845554791339507840375070039526133848460803119155316212088309134553473411924613443773729871662584029172864524539630397063539330826501568064452118624559985401059578321276767071578698774588465104333993968228420051313247265010753869708603936094427736953313189598999894284072804570579501059585405455306437868104629595694441087025875387537678336358610067677287336692584657384398328160179071065780442130735235449755543615526896276486917718848193899267242542668463408545746356221098316583792208573842927078632923948929706962115518359112865073925901995452794042004880177581185424220832351267694800599181990657607188785993270169784049067073249473272116084786219970174532286156234930351937359659558109766534213725311706695029774680281256758143464827055616665887443742011953721527802673854067954546699210346410787823354665909683776516262520859479986369063887305287150371419710117265131121483737986539386513048026204120228524874929045061080327444731726092784449421147762973561396007013309374614112718833506993056449014099715100542268571565247466659383044377690617219868096695659947610919312664783930984920197383287945838995305761595075329811427062607232564564139288508459653404133752478794076577354681965451605570614699250135905998521438277249541599097578788756050179092251332475330649282780308327930859019172593361277883618641109914960243097284901220573615835228346877766105631366416933660904949449413251645878125921407721173303428791579750989802678886343493102734651424217307663281882861773106559190211728291495531013134363048723800446423269982704507683848393086597252641807276175142282284497292355328210231847751560939878028676875233575058695219594951552620026291066960097025412561438317817762295938577420201623512787801808363163280615300961443750111379377693499672221971891089731343504656335410532243276569544616968608314922712216407781649953507175959438233093013356646035712488476858869226529055904579303552444043031969453857458923397713838521228003510586472286563204144001564186614135463782613720796697031827977682421394511260288993370554249961013351417002157587718086147250038782899511681860888010477900075895121811456025079343577235015929491273530527585632230404184740427658574468336207273938412133055616113814278160539461517347949961472518450284480085763806481774204382635914928777030132346916472669608360408787800228183931627789935248363070350921249285274492792000777072527935426982766327124630090334871042338247869439845679479530341765852297477657680563675941505566651409811622776145191740840341571886715225423442029871693913770600384918308108418939730471943586470777714697330395532470381183251585053952648220593789493072052287173990461612809956785553856811980029532692318424808455803303324187784637213721192033479633281463383409400330322328188997539504549231758144599253350835214875749896597213216283530825417583849686768391256709409896796423175143218149907275532095985236959344998903668231530330009123379391918235634414726822070171746696355519783367110750377190266500173874355162594205102845119704139849833660067038280480797254228774765503688588138912557978922218287667909972378832433849035717776331900309514659582880675282372220639502974936243376830456568829173816764633614774737994183022054394048864207700797111186518170852884862273695001713046894502300502434597050119371524317768289479043581385856156061500642060974737894797419643052448362449081875921208835135931375585889761930194911007173675369086923033637463336851317949211985955961442034695604334954535504979329538862188536865837873713813048257138059197033576716677714595843524213211481979368796663543581881579238906492630448617292587456509884292634150984420434964425399004104116297613598498190514009984320234978999380033041496176129993214345587549447879086686967162881317558846837057587800757116358277281522846817025306403057848368078339905467165319011004672286526884274587502907560747355143116343347887767703543608624135966989082320511076033562193076941944377824828050360749791307923816804088477715076320080455904769402661432284713271830681316014296867329276299320146835020317921460862392033992794729835523927345966464077496781054830054284334718702039692065496729631163630166322325499702509984412432285935849235375102115297769954780250824567950596182058943357805220798547924745524195061096087162304485218261065368845402207614120166141726809569065670793565730889763491913646958123438054505877830103250737221857745797233857554025258274768892463999687314315843758123516736371265960294190612027817185120946884087358837486617208625683956602901180363387015386787096467189587330878676656233974933825515316755031543123694174614558797587713151163982181815717863743722086034494822770878814739087778295689519004306965762372384601700961881357274629029776732852257554315406900161819467626648033619360754900629234034946187578844113050184449370117937584180139461898434706534776658254347239037256139248570136390853480472688668976561555222765650748165951357449021437177348060740781180636817867632935751274286419101254101509843092909960779250383060862661287118144625283646384392133441964421333376767232289484143111357145727199995521308690755128698072091398385529349211669209175643806706245952070305512335324170566360580131105657070852837086545089887966647493197463552348940604516561066420460073607138982586186213815259024161101816118786004205064307757434082323567763714703978264395563751487775304442101814341295951933125106633667193533154702720368633234734699595526032018123720538845591711368496996619040222587557243950180366408566529899653537663534316609538482992120516459015434858025760149515385836734225662426637021811932227143565389098880713404000217463151522023293206510395036021639273186688552810610196927748395288520553098785673393755601257028493890158890209959834856485812197332903298546030155026525717100631064929833130207671114643429776418117838368352951813258093593131182290784046576738130478239446928753591125669186478851401316416941182708446352969246027923459264974339528562346696725928866274383952085897532579390041028549238136631484391600855864229597876818558301802857329361104132265621738249472023277688646131926204612713962384758366658177456953212604311501370202231002921154399594450369427116728478155325945671624913995152989482957211704856395950911670918907744786715356573302293599591963394147564855824989543137843590066729092180061031173499263806621726904892264036312784144801480708065655344271539524031237384043048081890018591042684518720771541346304093920690646792408407456768083280007604667973768931646554913635650210797752208744449938289313223352035337681240829705649801888618485209408404154729824796193974949817383328859222685934052283942273070675161047272940850389207852770265829318401690417156959165758811039225737884223237361049626034737229679418336092530327216846876219719151264153843897742390357012245158009026113264786959332559460583509435237875135142514915502045081990678824715693718613969758199844231092516138559559886676942104861079084562022420867741984269729519752699558031298636617588824378076188587070304768602042825600695940551286693550722880328791864938732676877105009273284590938509150699563301096223244715453754047865234721202836512655402526745914077761028292730232585226295479516552259909447128247674674593469679005653778146751841187910840626420151325853705319201995809907085915646454693882310789472580125905065130779649690034160055660088479058714281161449489072027037912309971150994387396649466108287628084759362256837842585223114935211636377781748048284360321571634545650229886793435192618747357738428996540912301796123411114735755348095987663711727316135454019530367806103604224652979629748269199052067055247736739725662986548846077745549089825520746179183280791856523998981146467910286683378622838325052103515667783190611540836523275257643707999648735209064056365319474374798911663481914672281132439235818263104596841995256968928276895393853800758697819057886171901707619770224197630070277043893703485624487457824590146415317888200347613016731724939471937903412939784555946557568943505097452413056145858654565078075242274901779143594154806525717402302454709442984194460275408159091979719876225348252738077548357983952731468148057897591828109188112825176137232316001796168469459646195988471115361516584221380273112256534321180899859422918800935285894539925813020430095143735867418075080314132733740266580704631213152264789326571330337990971264639957321336386611446426924465843825561157622344432637034809889717502082286381609361671520404541162545054786500198663274450857738737935797288032956023238730871099775398872842859847739870725487298744321722146674561221851338849338269971916436914060258889472290341876206919495532954991690931312669286091885210822665081948133080584538834222045043778856087325768250004640500526391380392878071484529394463945165657111621468706946125922599665842644399440663990310022532560418044041530401034393590978833582834805408401409109040791634403767832879881705617666675497644629920383353534274151124459908456856676762620081736140926213757201989491666720883419053004219968505534452161790414474991976071716036292001657072287092384733201456819247077270961626237949344988036348040294052733083231578189523849254768487274318574901581009240366038451457640275300432607854755440594842191329875697502540732168296462289347526337861596962491410821381179834972338063215849365626590065931228402595813057527396191785292931247714954138077797557479760707486760976722560418900604264413454935169572314450134194842440109110309640030453339790048658952088240888669524478363109923534306947911450550702629793528369662451613679893827097649318480965161736300201922387254283213691030462319719157257227917109030552506286639370429200323500637339502502338767150708222604618838795724606581626783255327835949734743352935805714333504950211647219376977361675622815582571076707984739421501634589390592267434502803854212743275888482902719574843462798354820738341346941774272867054384546820058487703357490875186280883727003324745825896050248822640730350938957446424855259913395143348737298024480343754695394393975549304897021209431051992859056924383639040978990248396495162639529163496712476268704786935961883361912279321878207606576090349432603467090842669502834736984281806854633305754744100586722248862228535243791351067155391731639171958926053350994397415299969635286950126576330647126803115325194166792839726477885934018942869101837448003577794649749649072661294635621518397513806596560095476048194273308023198510064362272038608917412582102208559314410774143170282031334183977999395086514938423222917082337642828656094811358143994106297735143546761517518596255231390660525395912593755850759642792243294763525837978248013906610233529805875793901629292123178879228894200173070112202833256394603519598912200636826566745948871481081690494319815515496095839345190459427939003539608050202769793248615324419380115493793158425383868159820433019644261453849847453925664192492526810028365012276300314153486427905052940252062394064413655582577491700313851126423748462424601568397459328660658245596652242407577392707745555265198076468178533300801392496237591917493314972283374494882117566224353264543669306185203124284983383435695620544899599092157650103266112293441921625426858391488062178847477919738213040379425939138227625456613412662948026115892837087384551973087275208045069795931358762898066959766239169775017426390654181100437280581332397221577880870613995664501195572266944541784626319186489633077804270295167554174716435843303856774327130185930128770585262327818217307573415655097112795591638428267206778582637582573425605050354714889379667729021652410598156630221029998072349833998720888554143211706433225673272116757184451601879288825578323357073214328734462933376323120124879339353527227754562876966925804755131215901460605739767818612852370570582734861920086610866977014234317963835967412294261834219764520047903021174381291787912490935846484028488876916240407943694286459611557427395235356297554823011440888373021252494523566135802745072914438681223278176044274771665068883400815400436659274706705579163678778166159485407319281975390361784933783791644022386948629865101383824125182840863774203708321262121557586425266209408385209774640979302322993421147334298203109872538544602000484156341083697089634816938681385897802450318391911542058937185927661233207105993219147426925459179887041872572011198975602131442354911624216165805500979078626414840053535538937921751613255971056524300330555553620730445045655638096991954067611629189486485327767552824135137227029678534680265491339884254204899781955106170284355875899908584508263726010905959385112702596604479456950714900672527100852097333816152217372516789296158516540410078783168813985850686902082282093232638425020007285411525388005832460259565224276801662452644188996831250803571201040927704629715282316639549635807138930192734310506628788953515151527852567558428170346786962521406706529344027785709387686543107217106690890672570831976346057321913717714822390611642410968814143607546449237851878818005317722230081030535565189537935228357441091281322740829435009512187756364029341013782208484057909197179838687276225949524711102311628644495470612617922602716217082282295789991289391438146290855623440798385004295048209287189912883061970320804217524641973268063501352798031110505596537592577682208083065939803389621120453844090570640194827873215566901275296325307056985020183657071872019377819290681378350399725644519828648897412197504906224508044384576341621137160314872668432308462096385571387830486521236877489480706441585295129107149131608455089892663885498063091879938282143996347717539966375445718532172077721590481885267464798998163506603582832205359691151773137591684235961188009981341467785113780890974237607373758339458373327868195912566899326959264303191155829171201640435364435681676554124496292701837327051114365607971680725016904188208890734678009912138731660872476872957434974745008727734154191007024840205529108237629333605145562151018423994143967231891952785749943566926180853626012635445526565728027417239770684987215950514217999655574225064500039985916681791986655903315035935467096430820246075026092414522061466431656900636645556450649616111485200626857865667851344326922555626268459138056019908561955544668052702814072170884738912141715704084555233030032729782318968542341482778678856740173741828134791463633175511524170938612220509590573476775058346659198908725240751503025332326400837553047365322138249956373389063332652480482915554889219555076167270009871934299720163120083410212868053790432262740835791526838941075158738865625644381378674324367087220524540430537492042786942999361967001207158180128346613031799624827273760948029562060022934839128197976535389188026830945023915967857403140813986672254150982018762647742457678140936774942709996561876581512609054642908255589986631415150105042045021636272922423046842436479663201630233471535615096114984838261308822067710321318388013868592682172625097807857970314951922834131657051089547247962627694942022178214653264241535388573936104738854983257319736279753570874308234845610975513424439571698552585394456268422507491453959624350311378432573637091110836846682913956972816714532010542004617400443794379221366573941401321892683784256644879613526832564732525743523534610603388928285762037787980260291057614614965396762935666613615787136808516841674194854618454455115756170499543301726280226845120950975129081415438258473580861562529362232418066984553497837483639807354645527199620171154227807402672069514623047263682635804284794246839075791401973688716335994190703220807015233810426755920569649386198366993726866165735843640979529266729390909873999359531015179103185331135733865907792720184040995713915309714629844386129199728790472061710149013683484671276647974985372996233378265506912959451316801287107458094028048965323805222314217825213479925331550085152506785259966654320847126830276029436536839528641995242446143862318362323326247593301489200849622126605591617917737821707455519948224338765639467353871962190432770841374454683849826043238995831471897869640614900310005169238018547900573391808446836282703041007875305234084176868430312313039675851024920263420971188794621722649276653697867863778303061057843946540431413437885461483481287058057673263978941406728638265348038692307084804798019332996811700170999963721097939497773903997197838042528858817503603389249329525244099027750587796643923311751456530540783687986546886640344932936760343695456084669307186612409131741485643765999710224678834834677863802458604530053973159886258863728611965830074062291551942202601782514361446753952828281762928432898578882617287563666162849915455993457497837929214498743897300122659375317871345337345619374870621927667582274588488353052153073296008103368020282604716828899489036712766986210330675969998617685029678925609903415641531223182586087930395046413054608687243594076928177676643307263739987355793859235814177809727950237913856033035550575066052992499315046348407874388073069160212847473917355467763779149047484027934105724321096747346388061442472190928485123965195815711418569412429130978964601471525620087778590869657838036863651910287118253617594662761028908928416386421603284222165796126125886594605172609738756815300034908553932653698808088895082862822979015183946614069864977300147258206098440456607487774230891914061044781720340336410679947820399123664690942088556005533248824660601611401069004525383248025506906845870762660024438690064524710193157192273476805765216397855934848978590830615978817028406609313025876933354933422638299653375633314558393154881458736694885165183794716641982773137992673071023026937296673496137172254903843418097681931569026677040765097560625614623743394951253561522587841702068655565223807984551776946065877792281916939038049295224622606953850932041136596991474086889802858752902745784938816325318071616011850429855361248360985419935940416015366917857445989701987952386520986764954027550119161863139244116216043389596687276677036555819064790188882142091380021963292525521860690494407903146631311620188400283708140002602682558871449915460005740531631201655771901853567243302539488828312355645260647966700146534514775826436851304522868605036357889960163858013501400073207360616923590188635759610317223582754177262646804752292165196858004680428569344785024568939686935048045781385456596089770071080588660616169165403392913543065034658070526100098435602552291806775790596112000115674708161738971223085877829223260645446401412320049258919735344334903910466992360835929816992030847496157722992270815857785456518846127327686164621037219095679299586822741826737996602020596514840397072596984204313076812972402062278385121616881251701034000844975072229472183379680914307176978368392125525116400729805746905148845525510770537460096681022018088118380800581881941643859504040996997096045386087956972600006229477863909422540261695731951491862105036186980070925610696581012215221226749407555264553737961385317532761662407953482958878807090196043518791789341963484340064331272081309696249257532336778875004588442615033495324795714612318481284271199658724384213688719788776921978387681753000614620337511957229541226943464810431375607151881014355420834771421691407330414745003942827320357484463905800413757539980791271849614159758405922561188795026447444020444482434886796364717971574825295718171567295922736494954074626088004495058900754006016311401817179512784333727230427843434874531583443531003236869765388833228948422603618144898861685010965423273940956666716226537803115426233768186628256276433118268345571694011431569218325141331613895577231629075393596858702125139697112285726857670619941662735113956619956461262942773279621859952951833048838626535702832130073126069749685484302459178234821198454264077339318580316680084398509064018387034013540945437424218379273117058452624810096214282387989208183735020392542879707816270985883233218904278937083528975647760927406361212445044803868979916459906425212644788582698760349909566733410218425260715981987457446056769481198351228654368872930444925581337212773870432633573764924959384247146305815825144922357053084165364103976134467985613329718048435549952007505143751289452818126632951914954456438980274995692137143778270554911614113781436908937394544234139178090445631625318833226120244151409355816143283649842985682510354030844331928479695013110212868546002016756711426955338567716616127198384305508808061894105522372479735355272823744712034678333792218736593544653752211745571294841617118790586274260800173736997791571013846902348548773112546020877030743469430182147366845736571358248433047433117707777601981806136914119617693020150889000892559840211280553716251799468902911661494132267540972404823777250478596032644375085047314206086981483867221062484816295330566571763086826792942708266652416703839652882620281005003618062357139577465550946393020631424141354748725316902460877124073275279206113503326593037002749980664783937012331674055721300738987190267676664850033887569205136800019944976147604732981543130065414505883342155581106651958756479518701814456042486393415004216478916812441255054986749833249699955349552458737736998386890196611987146120399520189699578360267777039819485178071420626956133566795195225280844696805826935087874119801788967095447500565939786087525143079879139583624368437275832353080510984648250554312098296555335244742605350536630814659376731028443416486156336490973552343806721484309155674470973557721421642664851014144338511380490032114430962191599947244362561244442474615430739740511239139123166006987800705411897207303555417046339299168463081106399257228470185052158310551425928275199140304304295968434247250216057510047024971152808475954356106199234545137073385358346668532654302212144784688887018405898480760715422232254965556305238364793177252299715756708034231412159096759611026059225478191902092021385127821908415526497656076534025239984376106160858957219844927439847793539331835095505067683393096724812886467783796321714832211824950048422541604902540051143580713549473159105985826256648726704296985532589208478778846232201564581294330109790278027484201217756810500005244852954447412230094401097931321405655237777117665700081241898776765839855384411947110238411328051946882297601229214289338102230200834584694095960646974580290518851502364963626738269842212800700504875389586567234954639633640514910676095432017164409219438832433232311780793793163261670780521234468061509936765592198407872356260905374780193756176189961044434355934548275938163774362077447624977197198782220105887256018591890206717581167470729317902821261076771811271689704521780209462024218938398558169417279952754767994187834894537344918006471743642906833889482545213531426305279970494044198011836082559992657702062234521415907458044315323508338314985910143172556560446105971767468814245544608327142433319413358401862662180672746526699590570806189341661132992258387268648109553089052750411648303220375524424994557968320581103493126818437299148503038745421647715776996556422628102787290211229231496387210772944470316384048596557932984651888639230856976459149892220854955522319292341253762659945920557651184579714599334343431157124098965111726519139651452415122204173990564080902924024569551592913637812608257048605598521494870588694964919291677134931859882516999723951601371405623951303039080712725465106841719186017144450229773809707684042393288483445734189799097023836424138090877894380675734122547059332041063170719411389868783658370659045944752912467208967391782011745481187930844672376996734563232861807383135911599850013198812833294336482306296388500909940014252724429738863050870188133508016963847931232741824217724037414120755320924618857084149261904591342132776145915853571231868518806916232389867048197355409105861654537679724020647628996076428057217174293990715023997538650885382697687684578223621543717001686943602802845465381769740960201273055820002999102276363417748780675350156270797031981046831013135962797055664163606272025039860129721346538359619992551648873699902662624810486238009899070354477526993125969244600807397110152058241499940589985098119820948173458512979600725618390956483473448748450192817819639200075621765338627408835971007194336778112374136786115204390923545084178243908301405828987971001180456920014060300878487083873361743333769713717116331418707785677969065596111466944411691828956983078041874674002789153367868886277871860767661434377235819882214828328238372374470721190054872729619662487554947348876169121160651849003656737817826726581341268838192506220152278449177154298075441210101693711527443815693322140256518789574801741708907222282130104595666497674749941953718547620377626047538893851610979143199217086092826048952508586739251516112340292545679039236385196506376359227848947654257903399647918171899674185644269593054264680123513343417657290236586710607499958912788945462178076864823333986982696556569952450956719513757720870711737464077157624593701294903035717241450778306256343150384380482336459415401235391672730008703395646804765810444108050965115034062431039859806654463400703598037856782770808733673062197496443758558277442857609433866232627824264146691836854623884324640451477455377075152729068914284244851212842669540975230669751655732448235127320744486711719384326998089555595433877312020064488549084349376088729865428783302736246453725192147097598336753019566392192335517013409346385126835091566348495352159371806650763104722727539840855875631041418226071908353734050037589266715049988408827418280907156219493795017220985583278921149485626358669878941948250804663790884436408547114331643384104022842234617585564056934213198160914851322677075670516062877439802460076999366666767018627445563806719832873810986894089768502411871809585130292813225480766411306237728009503988605284243802275131918202276670640514149929002315053446183221352466154268714501519032477530161476949604684753127719462660182766866410614330059276615446736161614317086495798072433257093992303578962757040893825913684614190478938803601258126877809845212785561089137282285381207342182173638117733749842581026170639891774503111242198349927991643087680743936727004374271219335683963310032720109100884197684060596413207545951199491436044722953713790427504757118132470690914910318170642649933407670913378766595549502846972531227913012984717509596093591479920934893935681222595102393866217112745140724126685007063194137304197073886948003724925372692718545279964395345785729308098038481038442961241833270255750553050499733387091565216389374313724305527686299870789447628552149929205569357232727529755322304264891308722210975428329163842074647503520626712738323612771365377575172735052815451337036424547852679142514081420054703181326376186447764236772026767125789187168368783585827778024142985672066639867819171578500381551578683886105043588521367131536099791351538509079216413723268867597873476495156994679584479972013058918673014012819584667943748048556939319747419859680749142781304804523049143091276651664211380268642149746385772971107742435946205745261754258639780732352325165161491712895722380664194263466924292266359475610910705555106676968622688828647779455313818475789677148522350891652593018837007532255390889313444469152708314269362198801484345376580012040837452974858282220939661406989274465210601851456734206100216119242065977762813573868964559331076071968302380928302981807683952427085678040184809660030475351552952211643215166338856560133028576572295636611091852610500476610063701224610479025633879394265632295210929929303240989656813206629633862394459731309123836970732363498189622096858818691887211115718162435034840414913314323098866504175471390862723566801895549113804793784619866865241988812548832780260188410801793773897527488020184915818498622581366862959532465554085058919893809163496586953947206563307248898521167823647024843299924818506446512932761965078749166815551714242369263908442580445054692386981188338246036435129054903845933919338387932157781536545006076534374928743889361806272032253627143694658883635206980330912840775732942677300695955373548147099996638858929387800007853186331170973740620577722539030948707584887065251810656012678237236409224787806455200183435003205439144195216158086731976569006098429330804399919391347187544503759943822100850334394555226874247027647393166017450892201259102529059060142961244551674505608735793025641529535574888465468153659362575260602424258144035632985582242871125678137733533869659880498179079704392175358203368243909723259619393131133425740259975485675313470285079519936319248959118330906336410546520237374829593399405134186053559126207572743945289512948498960846847527792647054138244698358657880196794778975208862855304817495663324268858256721023127338959621642433625318350093458623496984947621468450615530318227878744353071528761241570551877573554835859378875177347494140845132331339950114719640385451454517013214315166016223715268147150480710921135711949104088403748593021600259799524084085205835983911149193283152365439105791046945148413925922886989526780671777802803407420198996033649529931781566004237992839124489422736660779401665546950772954328714624432157446040363702018709647304964024024499678457497064370060369243196414504318691246289221469150071713331390793265810408346587343962446142120702913706952995468355463813293613930218432521534911761806181957371540889579696535310681303717508098139275506400717157904733896565232121003026956747759931849438381656226932295017501468973343731791837391690320875205553119445380550891444361305013601307217364407323532589297865942353068133662591994133154861493730487422078964754904731473788844752007103399129806398370863457200979942188985671872199796880840670442084255118373665964515842557734356457462592596359649787345122536014467285166759762711962260963332762727358209554341909735376840415672960396862887896312185350680099390521051722310490487368184349884669837137275423891283172384953968207219312811687542410464782421380577980554306697530926537953551972654267086604210514128592825294647402269358109790937257269218236380684348010820882485408122504689177609518195933922058662274077244222719307165095847536959867714963041706410212071460800557158258227400243999388987783523339574754698561561458930903409340410519244627938973840590123358901885954853199175306705302662953004971065805932354167055849312229356369343256644635357942464091795255705647611601757564336846789267585488101812588013862062447760902216208275932199980711225580740674738643814365857096888228764963958861653663010693970953622042698826989758710414641119209694548642625251924625746498611077675478197483128122871865590229651217174260929336291712082962289874773308464686407903781696005989808883031092954171157687467113603462135877338080714095667440536663681918332564760575948470071189085433968835102643311168347413570186109712636589809364880032578288582809197598267546893833609786940169893815766195284046620243165463447690256097474424360362087399668707378659185333091601809874347147976630395671502135295597855458908312511750502959846587809605310760472993422887906226102712655053239689928205266874471879565681946684461401396537421491333740432421244102524744265315841614937633365729441760282012721157711319473107442933185995455870143502047551103381000898605949522249995949471515137673167696798375517770243990331900768204733819281243208139034786916060478318883871084508375178554579331029817978582580123547089542580974757278648381517502250665930155733567665294302247168859974267283597432777983886782271426334545574546422698989234786020733232255139471278635586685208552493387367861897889753245803074378794454798318108556753214604867938116560624472850841599947262211279876723863488126086020947945583776994841930236450096145509674654189941131692340777078137824907517276926038455556031093048612769952961139182958387066840935037941057132613781889545637523171645704874990991439457280306457145195487068618915052547603862924967146679979633825037053620137418835197866764151524085897029361792284025357369236278260226115425982336402050617121577401633360664151409944322273270159540408741400111026173272027337782939382212536953024514613088719069876565358822256164959860855330779799692631901422171949744449911332191921658391015464766977356714993423416917842917478830155319746798646214678477012428953578078877214721358089837964021390752570130938375569587153282759365516459198273379941572115616648753655831557098145932339907669841255742355770427448725929160236314507027292003179927320125545832514692783218206035545097336320464664269060119228644982625337211386512044562136725916275917440934235598931385324269819042845243321986194018683945451217188151955046388547644259002959364152159028200404967827946136528866959343424344665825634556945418629863592115939888273626308625419618995004247098578070512267922009103043623137254706973056297902026815608285411840423955907712133034782700969635496826909306174979422695409739036595860911055134065689895433439321295151716344443626345829977159090168886591134901304530446131988841719066975340056115573642114500563761783855782026631527395667242522554988827394887606218712650089471279832250662712663285728538234960745004992291910803111112402440131976070549497839500803830039819088941173413310716343923107899131292245784249397041478710943147144839997135851386542909454103373545363212544638426102148487378958823116473265331857469383049602482645177163915841405820054491154857838970982786322463860917267520808536444228074601634373591043214481035241745038978344420129205774440109143123913555318966341277865831848214500377661687732841782210359906852680055930141471845398727050117908015419925848543264683171519264154433309628561773971419055287422483879309741453945929088310410382263029797642268864763001895188652547566794819974277713018854966262885051076254066161092523838288869184857693588107887641283259627772443251924795968416725538675935959419389597160860620115304078098219176891791509840875484186025531024351319612127658031673398973816211264947754507569981889807820012606579797153401524646330789868658227087134861036641150898529471546203101288584956341108467116446976745569552943431522967759397598831596292945498254818134662513081823537322483495453505426108686310074879510048345860943590780729494515387957416811694637752307192948495568397205581691812526555702280378560952418782163380385558366769254282188746792102995411063604266878235565473681954278456275534616830149657304005674603783903311439035342430196617878722658237163917850427210721857896767504751441929821198692346625027099802054793686516242277312516925739327598386111320057301407031352186454504092616797350693558742372445052628492098880566766912839000668326400600666117017057470642477756808386606803064492386183423779673357819005904215085690285018907697754815648015446176875158207428803298508535896497834284987799354062407753728393747937932118329831954322344310953956496033987130027149497722262869674024697150806448193117514960689402243958282545148238404343248451089480087570205677480611348133675007052847816926035635728099186072306269826846441854536857954996607111644100027958266118544745544787026725058402920669061347349524668544707395809371246056651000277962151281909585257767988495163200671713887182531489306956764400855864881087339025945539239622767165249738433515987179481050478432131162837324549624287184075307692583397205824026075629546121871302582397143860230321509540191949370204857500031769933306905607500285739412934946408803668602109295816101123308747794378170641069329476989006649615059831673969255047205428925033680265098642636009630052406239697290171033161719811907066921970585967039497743204138209345887287195386247890424554357383754497409347766760171173950416229915638246165983831089024913899384837953467025774315606879993847771595167916191555694140693868816961664310332645113959924242296121131879456881018145847052351225422092703856820388284991137854578975677695458351663050353705258424829261985967043098799818041804750093016917975875044737893447963374968400626651217283638609288858979111307945486078185918896860819221881904810732817750217181292792035721498581648917106460708287240118337542744346122954207157118137036458950030861901608514143957023704839470012930151831030966804442832269501710311488600121229502176317111386732666536270993948134218362413193407198634280986138460827269032675715860585601503046410220742014888605355281409445841182861326513785226141705886172667569795552313750417359173992131128465613634043501852299669048358117059780406912016395005251380493877935887705767953015468691305473069534565158162544386027541588605261672451999379641025021260604053168307809153307441903769490238546197900528687619444961782977804096223950836242174662751346472383890610449672599241138579348610774815857064864187163962658416207181036391044898750438958887452154434553933347893017991565869902794932298740383433945353657050972510863657136436782117616831606284724839008261952838952599142832329847841542806695852904555548374286720193668128835330515625866437596751634272221342205290074432601435021881832950345703590735618026423853720503253434839106041488529855883640414335296053667249137709452237909946044958771062192644182865628553155284920889455542485987353561641240765732597801735058174515762338636884743760546506147452828736647266308716952534552023359716542589153622757222337527563336698094659961582460861699783194637103698611985258973610955447805387047153787528049441625123963480533070819604771024007188536266716807315009177724122393694372551775965080205325665631402951241937188226463373387125361275846659887061896450513283523007000824402887156463298174844161827400291014370872147193461750123300174414474911860536403411110304846846713135133001904548116350486232676241836919275429002822028167262294652668933781231851817402657873193550198467427584864734302567695126124975304237145982714005431494878011789391552629037900228594324308363662369206211316695963666201181631859856880401802356229130528216378075217051822374545877917448731833862657029009482103053840425751781718483687658478738831612215991340191087829114875915018193550950875584822281227134838285186182336049641747381488208607245995313289155841920078871768093665691799256436353196416094606580341253743414243733260981673788359087088176879875649314134030212729740768713975186521044872763176098250571252365476128976053462295538706720977082604397484448393941229759296410402213796464477506188112002590843471272442274835482392894546275577061164844502066568834911232452365438366016572810224096344118279901189410144836503250237092076366699860066053861077966939805502897418589247905118656520618178337268714605476865468354503084919579154773748301282980651933461833796718881169548815986740260938870001143722540979769363406575584118381811150913985552807294055932062977385957110992469530772256836191078484410250615147675899501625412184496612500653653284029875822903557912795788126824294224342155248438516033165840602822783896722793275124519486099366249281921399308508930182031858788576712485434326881864205836366505856706344663889126611829737712563927585083518352626377732139453792831485617933422130932039402921189036792565943000228870368790940793165739184184748121948857125130412757172146389183075646123108256421483515637738751077199978863675392598145839814963959095327459024962550412864462311338437491473972131468064553787976835860188712804090165710061330628951384072593608534905354336058287866043483396302883552831313847147779967873742776414093092785215524489810445198175869466137386850265883909391465492099743931975780250419507036728505242186689977863202370500450979271971240966290100756351519205191992523805841058194904401783782689901046316022733284953616120519307740209304958186430339165624786112428689945629549090173705381556244533983887253563285571849233764419316850023829066916536838339884138889897130485205775408259427972663323395675195678702928436242310976921726532985478391031679304549784434699436327279152841636389503074917535024987267548359074146346968092418970831810218724013087984009028741331402465908572114417161991997644008217769944100527322200609945269629324645003191438720964626705813672471720923049909132181898807104609324245258468383866291658373463005220334092776825720886459903762000101846942927774433432001553886322053840252577659361472800689309048717474789529756036198727734143037409871072178611161797195900883788857033417141991107588526298271048247082249559036763370395574338553078934772106673652985252842062504434122128221815061233978203463311883318966946780738515439611850794819147370962148939848344209178808523506929228343463880809941015104557081093403442293366484651780623453903685820619500361786186040100087974282040696517549973093326339316393163429424044069845006673024186764060037007031378910275034821336019727415311996077171879730372544377403448109644156974936922986946523012584860969892350905253788190034345416925809382700580019643929475103578282873000329749006843112399528947953686741336013202905673856542052097674667221501304420522139515208973929464555046813336408362995174328261982505486379563068521712634985778952333342978642453682568586920364250090077523005374595362347793644393892261711485278353657463056322082398467340975119692501890809531121893210614983828273946346765417546748511442416450142449928527828956395737962614065593430606679926210675264917299758797753071190184143532536647725505002302500834027477927827190732346249353568403914058829645823117955165700668639560554869410363072809639543337129335319375434039447937810319933509871354926384130684755056793823613361086613755722892330298539417829770470542192996254499306734534987669922100520524521138706784710132742127001802057735153685742480734823282699072359153714779332470808661626665352433051426229273503257479953917000393583710969459800273142351442413368926362737978035899261368248559830507270470760771517244742201549972717336700835272405679313138973382317120539818076312004656608794639716938500513795281993819443544890138080206214526083178288589374929017749219446244403218984815384933015451132341011408117020080310796218789271686162493063049838957453116080552360539061247867646299428710168674812743378700296295836645775997981680942213246355143235161645721483670112201727141015025442105519968610272490834214334419312582814482788176190173504711344019712615567332263834565398039248276398783988563080600604022977500766449043824944907330610822903632874622041000539167352084023640807144222110998074206160462335029841355933858985909239658986431061825212227013614872772589794044926766411308692085635879929534784709144760690485977870690135241054039124140217140581331782031502905228345812080128288654255467270878177029521068164836539008090678207848360632301238258839907436937378151626327993255711732060925835900804398959946998246185811230458457567431881562871800502130231635690957057637618873449659007456880635390056661118050705445207256519695293324813275617010695167540457466363676721695214186426324024864437610910214316726278547472627596163183285179843919500400311875935143206301870835043195831004330265535623062755161882637255099751454345787069603446043908524899849161699227889119923670010211819208904358904564543797012966867954151378681146248605719913500303231313044829741828593617377647653163452292619891599044361197412540454225075301635329468300620349704865389009068120976625862470471411026084770842279571635304200096162386878194338170905436469682819043103362090432650379969925097293279255974328475659113845590070275195284089326588733948460560737592933869518485234951462408594651488225027382961263435372314097710730662127065479914489318464618718622833755604114782434497599849775138569236803500435829407118685414852074636183042846473794237903179923227293953364352136714464768504435018299781702549252022444437694721091524285065401312309047597629030416449049952774234978887242893579247228998007054893541790886748729034502204054538806919666863328752349581795529281692011535527876672286161316422302208627737911471548842508593690298592478138441906470752107936062108914011624674002100839601150170450252845836166027508998224087311694216624587699402484710972617305844692349702088922356261588502065917443218103848403542318936357190120110460730289328354292615258985346842734084905617355138028809074253959565203153360622846270074330967083719646862200452604319640803053980591759334487922444087660544116131407210013659424821961623212120336276131678453286787693757632388044793276355509103404115727227427992558818227309727174605844226649486574701740916666182927969199930407798064187422782088114892362266819129630174912567120445696273264050810604819473541635816697297528461861230461429093608629401879451385528638599604672760469762063860367253865538118021671025916246838646091455290942041139064563534565371295092969469584340787831655353893684984123662059073296675970724257564226705753873125424631555182066106275363985086869578879272214388306396854715893228977349915726901529351521762957964070268161147495020835150529300469809132172846102498666919109844206907670304371142175149097995155557730835864501888635372779915296161086771582417497921226414303619313581016835221951110514971168123551700364959803345695944243698363260813634850551314702800882936835845221299616093307652755951796696469003860447755505287258482326578463699177746221653529791917118258028086596059501586394465592295770881902210451572081443842901334519003148524179990285564288890180881438115712353262800940168052497462754163066044026815365750046635058657522397324457344826945413335181867888299946143893149055545146107832201329193995871887739101747114702204414365891953303710477693100362383468903287997334727141779445910464164368298762702569694124228069570220507563326730253072747864230611302698170687076397139233855487831212215975857354449522303265191439764794274816785352247336214025939410522294126763088479352341170500812125797027350932574786878490657479249440702706081715910405088323187395569228134746997346584505526734933518661752055237286854490028933956615753243868069499522868924814221135164339157556723841047680696294047465925575435227010945388759538422782182636067427721134333707605945618290009848098370608846797746853336213361290872838753511601085655186996602452448675234504604640182530797290725344353363160345740639875689500414981070150873797974574267456390863974691738933236361145641784860709893445976945483159569402229956187600589469276154209798942890194390914357970360927353740243476091898304704758222139713452330184775186088274805314334884203750146652727725095142334746984610841924141278275287490994874975290939983906667303609967594408836574950366644846408399119214509889879619535339719997900038994958478423187700357447954546938030333455231810812134483309073995178235628747931406861670579163985009874837600480324207855183064327995079140337903584279923771566422684509732993557649153181043292219901619232607041643964941432456239158464233132395278286590346794855979726443613276698381939927268638016948565106357572694087255545234030710834243651353136432078400452776957398288320044081702451256832783686493229085893768174720119334600979274420103320436241965491050076093538577908573276251451328855952688707979193384044917177761700061827008563354779207344270631857833360630323931761434404546662268783211813873872238520716457795667306867828756577693899548480100388607850795234995146924993903975865060431317300726432085413064657503137882246302083164115743384232697068189627727888406394406005595222675358986805908540341876760079555970976717226468290102185979115554775136340968605546097270035160226137433770300718326904367875077299261324157882636956139251933221336940619277767614256710233291840238442017201629145388361510408541374203084292468381726655681185653598891940505805274140382453235548783960995021947141563088669426635243210862464744936454989100121170053489167545132977504460218481024312647807309512014254995684819591854726094835302972732180171730914333709765921487934631151487230776714262200815975578044133814509466254699090655900088687362445933320750466257290080527791061454846991997857922501327069237208277918572607189628686393710291308300056339618663787669997805884212279461727205904961046305962403459011614549412710231034807439695849996532173410393432585722036938545180734579869021559229597025689135090369721502991330357309735072741268362234080029119041902284527698734596599648440138488994924498350808902103254370080220777373129970048220388205508157367594871876192715318178252759336022123801810211499134241444657140988006275318992919766770064631819000264935672964243811474869522511926462207834318580155757038082371557711954217739295708594114860309907512130362271742224440892729719165201079065152542801075449565910927885407620455387804658954450576102566737439211514572517564514981399942449672823274629212467312513017249754941151163012896575431739948428337253124261337908171254629526141975416687299318424921755912838106154912354450083237023495677512725654420860518131222614395150485709370038804126429346545606303774584742455013320150895701000266954525390039263002640219583482903565244383146937017376514529014943352610776350149984711281845264649946502612055615749090033992945271621908684199193943798951774566363923430778053976936358694425624243354890912467870416532380013482154908308698367340733119125290669797249295460881867787885815522607151683625590156184986262458629669614619209576601325350415713035063829573839471208045433599291730815630234735711354208979974517306765163903592430201659592034090536022072318472284639348056864290805482560959491418487027493309278658324133108864266730388264794782226598042429565907057295858678498608260467006228851902015596252800981702420693813097707714161341997513543417138243046635476494275811895590370563084531578807866004331640912926383651982039107747650119602288450564606823932027729550947554102357625037783663044384339040754295644749398712622655654121466338201080209952264039819724073305796651865896691968255037850036028140644840581356572256130832181433506943768288067156492816797621313988051967281838574087773701295295337480145645724752333129217708778150663441268408685772820085152567295222539445408639946690373578519687166652189847549992823568267234858944876704038682036244489509688478887291036712514670043507141818957877034164593380224577092411904960822155907732717010240200313964029673798621106864584757834002896632551512540001402024776245297189954701589520904225928721399428947543604484111614077963158022134412768658122957354190471995762233186139259744936619100055951852461210217501664438075454580859652381404778228627618885925861088167805105006451950457472390336660833355314353784458159580300653762068567604999229787758187914578326381627463146518518316098393944604805540146258868635534530512860039599982890809009476224057891248684498057450672528822254616932443196684974052484886800539118729757070958308427801388883529865702548056827419534253969095462769798558360195304361134012280245661193337011919129340160342903879410573565887769489907604922341767986455993782285428077469085133776340771719203922743962350571221765017879494789832897848274409937906490878571098953120261246797640892074586751245924707544691289978078148871385986388507506191454489746883800254513979788110124234781759718478158856991647020913359671299191924332422883468109704876064586820806574391853196392562802911046296111733422766736461980202338482758339606701696205143161497719503774344753149377866585945437112055541254251470207275034192420279585665394740414626856171546419101189214559672166522878360543377396046202590220690777213618689250236195098531472176207252169295380860225398824683672198725366540268608966727574783767264413054042831964202992572836255607081587116473835216613106324581123922978310181606979737005565849083866448570804578282488396038742328084442257715100933203901405056509057478459678585260448693155983525129046116096297444564410675751466410859957316534506980662946102229889199716416301285523169024117986894676160845294490237140714893280244888346791117478850924972370754125124620521947687305163764712554052700225843513989394545230081746493105965332498640054884281112386049231399798717613494627253531251512447806759921004553557299855708296706562163459757208842190539113389161524701059887227139021205792186136200975855328216409372179801730253165097492460599045362735657889179578284842892629037351529799931866795089045750485479454105682909869357027437886232881888876549929340538934655542635491584526341447062968444916927799212405178436345109728346101669454867023890510549745601310875127713987763051769592231828739189927787606867816248730556793805083060982182001413735221862735349731199901616767245919802799221520087253641768249285448897986860151535218787230824549268242512651730805927009700470019885149709779412103162565357692061922763983662707670679854484541047346716661554602478056080094373127320216360922195472225355630279648032651499304070146581641907450332653370946714655933972439468341421630689550055744114717786008237279071361964932652868596882288671337208538597229908715701202968362946381887756745138522882605349438127363221134073253065755595462125108262496441940477272275333240469489460530718664092727422886803885600180465027079761898216812563530562093767593882836667428984327142677186826309039623270975217822286254657613435248336461289558736571339072189247960637414261870424063539659740417779044005155090531639929193985399391533017127267419103256399745611998887080296701425260076178609852437356354957990984646466135502051377015447499652923779238169175695001411465917309874518012254401785412546947806591321675309604466641834962997151805108061902596896759367555659568117008343809036380202748290854183095003536828371558245820016604986345932681463826529481002199399360921252742106659778562921520135716840520138745052218723165956093555985023978358897873278562570966446170176759962092337305717610414994786511801812982799996308327897500676917506695994197662193660354066612497210295912077258061540579105165183939201545869278722174755152872261077392046643997524533017028263947487320918536109998513303981805026136552886554024979019876502804899333335712623726252346435293156765384302877079675939661075691070425607306011417626573668369019235809575424316174096234693966619056741484612081077272460521308100236050548423665706669494768424059824663582512173442964421892488116772505210501381081078603815140091391023865897082852264652062774926119058144922390008338759284556471651840476621026701386728050673128773825146822480322681525765059565101708615584239338202815759089696705914227504692340054206063430742682914087363852959703997981779989574054835639620258465740530424409104953447374585724466541197854844450724120715823575294317220649895698794022321362633437415100021425322880586339103015916613159464962498917437740072959985300648620352684612744500151816611551437509531860703952007378225882941969240783400647704405465908954626287612479551763589036120859718884748296390103643779927571980028919991933071119513270608643135533900181108943270162747988160217963573114999887131465558296074422199525401097476385344293978065039095541280838959726171972611003967914728422693561512367486590747360123438507489879207647716464689878534491841344275457967146660034544785453982921428927668690613242395587488321277615377401766763236997327069183930119376421697781918116001369776997438619069258999151449535767959467458279990995621167342260499594113741834658172616615097367854546349945971343853913908159894167836906099689556807314720270566788817379225185310875093629340873837258935158408246140024132484185874916050789407947589628594529452996364073553921257610727165728239920834477166664527693461248137260398515034255110231347457999456936203725246138065626370121248955164939407429167369833426585801126537467140815435708394549106430875400391204507086146878747614255060051014451314561919396350724476143853010547243262886064655291706912210626564044041445323658763411100100784564869757823505790615375125292661153754881549860790547555207259476683303274570742974072713590355974612052309496537069823244381377988422097056642440331579615203671384655331084145636660530898861786333184793392815950161147482678658567932753309042835267672601511321694463348314705979519914421900895043693085739634989914359419931379484340364217901575082773658979874866986875264040205210532980112436116372353772061139347360811817526637535480082079346576772558942555126821711143229818178681105994749347638722001321146793815731531814420751508655454526154759110580928324756025726853260035889630964385258118933924447147630318531711468778139488247575431007186399962665881685495148174968125026374511554913697555328474125992610801907594107472135303914084263487498798964017512114934415557720072445480633524992401632599638678376942093154866905124326212156925189577616963063245668881063466780688409204073948704166206475139691833759917904173030445255954526454597416300430319125184272517432120058201886263376598079693046184129308335403421333753077950113035036885556160577938855464314437221357449280770498357552224357965900029348534430992152178022925318389464436742413917007943366122347926693163264066261936880948722527888623449692549128997138676625988096156640994267924944146402524438416095111636785841785680187573592030997455720715767786469483101480359318474961222925614032859036777583976540225991258644863771285988519352683916319870485993365335066639981043449789064669262577553490125507652073635085402543594861047223999070796132413407222057756033695716738458612474392781059462233269400258345828892306987170554087825087448017328604136531607823367518881762147164277190981384893879484050214018360954171149054312347939952819227632935101985592308906865291816524706048980057345425921242767896098816813829650249033399392098997804635915382991874925410974805454713691851434829781167180687914398443032446563569577472415286083748304640782958795476876406110563797626387126227375488942366735924806394947863040810276366187845490415743844758978222673178777022204899078121440890567931128745992293899567286226362150348523789625039197783364475438987897356885958539576597012244186298106027974554214941076067062209154572334704666337336274155886668377894893698878308099508449101980636023160917472731800323471244052476173561246020216126963990776409368153079660290831112500315566532908883556018710167819918982927885054320460705551958457134068764096854075957560552724507531141832647661682382202166032388562740740852582089436168113837700187814952860255427765290942125334257427755783816770890427724942688392348667828771133066992812447498380463804070550508155620896797881657018598979476928520269773486303443334654704060406895018523100640781104914808309868450173584785655526243474228524664341650552481084057669654660132048142740149469899203858841357098978863383646096764414718047660340670737275345714055810205825929603815403682420526820872794621944211748537570108172394607762127697220656657795253248259371572447888329740844147681269021389287551398579507838221936429234005963533215758007289902129698006370856908423959487620859039394114876115596328206737187750971174294881224286478344590090833259454789127029370335193259423288382713142752435440199762857544488213309651664745621423183202262748931511567261775430005348704225765017576922595878369934003830116971741793085793567250355426009113006870315886070526944072737122198104903436934930422438141371828643097074590524941515976897349803212054007640024763010360192957181486182843200655023080724775653422065009319269906370034896205326147968526174432959940926612974785843513820219431411269479501301631890567705293866462053227154594608697103885248760291157334132813149449720537717660218716407786859448523229315888423489878212812437423348620929924945642154458415221694766545733465283066592164598815193261300931299064446413095270853758723421441380604157682912898206949067492458068880390657453654360524987239122051118319668375290234752580376179064901272718674830184575588819348303628647910092942803565891599861675734085501362724655489708281066261752413485261751410082765804030951015371185884450805507410816286490895804727738768982788700139617667946607607438594394948970014690715292146040450162648963308934302426363918760551640187921570212702448799346078451705366988914235702791164209106096016880553154602048697144669949651872907270920619632732190591479141752292171639145284391471020701272226722022185438203601682221027357567035823956945474326641073196706255859600379338366899807751009799947112482058469390217285169810755713057288179649877768058917674021794532843442846844648027545916605085686117827943878710524891322441063570734391132309723097993294095636400476472631215954803736732805575188886332767990017530880188921876865883520213199926032117960030500186451497961758066356285997072273357790917847061963200727360688017602391523170018066641301624409213054473074191239294981533310558691523038257139921370509390413786187842087177506406626351741367447507322998550620473339770168513721132946862226865324800133868153768232618590546077970379217708497477565688356227104751669233925452943262363354454317421160168940866553344941739801694826537401958883479894397053608846719934200699669184600855305785055657465701283801216593530265195597887209183098687499624280356916894771622565216263822511058148978882350096794373190364454378622982816091839451359232229744776060902137208765660961567745772876587192388900624607794882049014994193654190481723253991379088186217831874416418744231496997690073825084994564424925602961572880839348618995354331923217194306214747706887687059976956667859855811402659392459724627398486425426202558403035709711909621999948942863068560531992317633197075783807699635274778924529825494314674581491964604100560810887525186762281921997384037413037289135844474035008193485309738294904681490045387228378209583585264502955119380143823435278019456897986154481660938919354218457087771219759828944163577099878611534478828267719700507910101408458348978197939621228923301895308779811912007593793525833775560489630858652950873184039819618689147386632015762312298624302123732332954136754004740442451857328658559961099643475738931948687127480053427910617402086411171731688155034287643455678630609565917780037971030302681671551393136377672065010929389440027178303442031767763495813086082626212162247729668999094637924662717345315812804944340271918144144617172132009391798272230758587367390094026597705427149560162904789542489650412775205407354942644679686773038248159572695084817198160330433066456691924862777463863008990515897017301733619224689061844164180290798712235023637309359946131653456890305494717150158415802802697430632645036587254674020585603774107575321145081248032938349338850196262559069640691447993417905113793558440346868710073333313112403693452314787678936686662483606922116089966836452534932889961011910381953575481648754800863680195905857991059272086092009865897939286097014449103085136990982404569785480570873798186020806267812550899296218868433517616508936076134592333348383865235385405937835361493659525347935487790697886465671527786981492659573026736302248024422221980202071182300795556114723078399021680907083130011597787348392118334226167137520027537038788836975631058175115052300067627196203095707147354342986992147156371260161913394632205782479643874682507548555848846590009464163798004979860307006021645456784148669452669511559241471919690174419640142515578015375100428744237612482218469708178721354209922658748682201280402814017958894174362329910456338435085844627324379747195509478223150116216258372794349401679886739131649266690194748015405659041907448919439590124314139810269807544024194961606297912537416975031356641820426488322279677567834557792179091912160899085004974595025452940389830340826710107010633252873679066415855855772775113376007000177320210201504293545329795180647566336712818615518595557078831559814421987895159835034420277003668688757761425163355381685726969998995469823162485701317601241990354179801683710790946061493915419078488940546586701662775052899864151973962353798123874500463111851810076428779859547360052291559357975143525832000664695562039343206298388472923597751086048724029424517199062155777797989122319992832442215192905865078632568474533195651592432410111504537460910972324194902834288607214050266518265868553123418826999034830681141817319687198321300879107481319471592093019250202327323593875227569302460168140146980670242121485408690622410202908480928110849357739697381361286271586189518371328073981270159936268114402725047258178128229338283525006870428362076590692786704106320240918096439387992776595740299070297028120927021639692450706935005869656731555596476147288100215312506811885806876692934480749499235054637728422113856564838945487288660547986708918169372311011836253246844019210205059344469688967709471232529408127989859738498224194594941177372104712541260487577427996397622413060441885895435811485012555457735652369886318155542569885601574748740499944220466801751951665518371731029349356238145865734507068095171825192226744961185862480762191623784869271375964737022572764333800384545863984455417110145198103671503878995009061564036558550526362467280465295720158448487639632139977203410723321584537122770898265285110794040053480201716541084180937502340082243034729774201564780793720946023617550676561117412781449083103070929048184258153821285331591210980076539545685123463703590550664961278778347124978382922453158656950420109568938885557350040117820522928025414171230423471384150457076748158333256057291801536970830403765240052814332069724743689211350971410662615495079341182424234072704060893257121986499258244413601226428908511388836305941635133456589140227118420254668814451993421087507448628158519670102394866755792613235802443163879074794546764411917984434225067628257846638140465504586831615869941710050697436958168956217270873588746527362807780833016077042439353333101671759591524283477332827208355067990517176198442832923691104158890868120266232447962675587666004878061778270128457795001280029927918720568003060683678202826434535504555055007453440235992243272437432305587273659569906146357342636870086814308063759893997983917572632736608216021557686065113009491554323768512601741140138678241206031793162161966475758105760382483486267083743399634266560132616216191798307630128732665049593015017904805173877554612719170346547609408571487607666927231904740287431283243627817360382999246330892784144534069524173068701710966377868818660519445897721508654578446884764507961136086994369903662439891427940080698505804570794945414469516089976429089796696107097240825357584793885792938872163525171270032756118276152721682444847640073877917161996669424126756685076471752799390753242249324940004588848761304977656090423553656841386003539769596730689704151056837823839375548374499169237999018531460743164802168075926507718024191297451235385388648104264044335987738387682325961083778985632959423462410907224479811970735810249567123650620365807759524659539555006373066467025935668822276528266556897271788788004572534204352896416291599363972087215821847092538440444672717216776075360270174079262993979736879772758903113275999128085663345385441830965752613516991465825469888114755713842754174932345668339968228293519518729147496005915640813803839517811342932890148298910625721134894373469084299893868124782961396066101542255890143396359556493751290880191057760640498302175366345000232381693958489473348832399503249339329406632107545295299841942437567393002586426624947932426983930959159969484588666567280244421238388842933306106869089146806475455882863802356352052757403167532802880708275448141084651096814904085082164326587234888443148197035903399590076903452131253344539394301057683925079287356722933212639826656583628087267989669913404834955231307016525703214395802916990987339672951305353659071081216367544161872097567586096860928921611805303780272374979483054135674094989297306726780199398197466952032910088912130369995566897516345461685803565818036561995749308714027207895043958163558869495792924952731954677507845189877616314743307728174074527355918315634560959048775613784688205023574089159611825325907411809972437088510482768514891938173421563396936019195708127041141304662559219903951669131106528823290430286397411679886336469865577895018994574162898898389133078039171056939043453535681976401411911015066819391243593247821578153296156661293914758889346397881434786932955673878037938614769843564957303533586495605020357573423892325195863399211238162564694667308777758872970297462084968393887187542777157527896605298178931081004448476645793907940113475321932749169437067402189795523197787769401011547523743599223654841242038270450100962884547721253649753136211707934569977452732010105216605882556717305358863852119782005688932708267411635609055921810915531430883265581810972199439824254957133672297893793929045143245915394601714770743746238878351835827148155701520084144986635080817835794264312738816514915594732087180272475111817327636933211352575101292591079533278482347234163323539964739979392413236734064592548745805318077876916592690163799539054247372736272877405923548997035522317572577328343871665525337399475996189847117131539837482997134331516873968581642135241764304182883304335226406593110150955898186619956910824284731513417667118112021310658519078663739854359911071787065446447835520410578708281919809834188635420921832657386131340159086286017641921510430062111711996062252995673176869375021406479616437345700993954730062098004462193427344432681936030517518748392134822138473023024228929237510934744171057110415102983613656919360421623902234317365976442453047139033157736232051467218772662137472000568784903641373144359946125230352429661458391922660258515509051462391382797219665987776880524091647916065552029687187427305389839727682173171784792581210941757486990612472290835209568360690096300826942299183110105728118372587693063125691363493579516613379021557527116369263544341517805173727007112105087195946446029326502611537317544149961644356239565233868858125357461464141489169560093684871505254158960005268362494918605382835304103166888602862951968262823806512457924016157952404784880727956887043299459840465963526645147191377247942034618786464843202902360939826036489524683772183878766128891835606685640150604026013670975118418902798931460751982355951565184158469096151641104218136577145457846747135823956707508698230015761475382716992991579810179404417588782443988249555863776700107620460785877736427222493385465867301501956710305769221910727738535265720129582630848508784557574828082086656367553320476331433556782086835869803448066837574941513235832066310703971865490288270311273872108340771885294304471159630021714552576486020487378649060521875241636177582246476324335946471120970843417408887260595062099317047320928255518471624046758253621537670320588076959651185365750945382813596949720932022185348306752101988820712376059294835372843122769973487094576751088879372891655963464120086448504213570370343810463531896385038335165237915121945106421585490001925712307953423937089217650193848156119426854204152650173843245838898193763285657650580550034387223530711226105583563434603100764251353109280880249086754874825707247244786245678982093655477419077064621777323369165631376846166834422893069893143618341053287798951765239998367278707399332782617174796756172702816872909860405112155329668798897078307450817246631336460299118995423916379874063861936995334660312857860376703229224550605487164455305299001922313922521205370139239994800093162398862225060260486356982514667341295997201697472864010012126538716818119001912304204486244331400247924469445415455261545311144762733140792051666981175661852915458878147090067394974722751377572845013414525650761914592879058726081997849802156120221642570693777967451572069111135022265533527029933463662668495346270168097140310880370179958937383912590993889246134288146418365656822871849403145679158556449026728069355638076261461946682183857359980170164455248189279621588323548230642361877004849848653994546253751229454604296675760631359586660355749957819772939531813282409689512285957740455492971777032023735965804430989256541282926745349008045828199031126352609713658596602628171878432123946436145937661035491170297074498130465463366696429489941762993793861441372210567924508519294976609417877192791004162514629772698154764838272567279733390093224322036611760694825177614899451956033283313111064838105491837068447113905304248189988779677686266482991554378921072777943017544506737641383708114830394106339580256626099264061010186696825483127470850583233478659050944860253071110844314198586334643377431696969296173097638260594431345325045653805327588804464190893395965622791698613232600465286102460594901272280606037896742433041768428021122601147778836929235338613141603912406221894676917250639208366567177204062365556228885459758819799072941660959199293678192540449408718842086596697483609813326813214614415946845139601304629241592004181591840755262193398239742629763450577692613664727503211334448156086161546677612142133916442124413373076998009041375464999835401556536299833788586409760821718846590666540989964462144732225692513612808563893052199525020026218963784413268308700702506950637458449629174293784704022637727169687711279670221251173682750675631007836833961788274871480814103653939214116235639869539711343791667606428606547110656364202731638796952893009608257751891250201909893704660527488963913605733388877154191859971866762995039439114306277280440983976492438489177483735075951479941971420458253787108792918657967378940447004102734165659466092954732264171256001728765730285920954984600370661792376584818537647111420508874179735514944585258582968933194820046594425294090210100496223674379121099096530805571490019819583757612656124217917569449244798600468210801275180722239120372906130632779922488485320771822020477936929049893928939813883851621012758592353951332228441897273170048006141600161776332343898245072641264116840828859978407801133778871626432709019086663607527842914845850484032966715781244988363063697395077736409988518580241090349890470334904239762296956645921493306933825639774128432918136225056885161522777711330838616308761700154366614351688356940844215309246048323555940516743538245480638435905881350953325804031519558314676511084512998103238826979786101778958018438887288287868199555931903705586916089480906035901565037664222087048379276547050430461907216955876869762017105322065884465236704160318265690979530901562352979925013535800675767915593407758674410700889921208377200994657034169963606759559507378412475098270223992488445008822626006477846982050792292580279587698630205379997125353853781654112451888799136543958484840163266664877215273377168762544319585585622727741172578947550632690460847034610259191869968127122956204846782059813272701828086551948106802724846696172611876896111790151817130817127978399931231452526576431924342435118904949150753533369249789526085011737099805598863151684737826815078116485727016301243116967631929463103183945190048773750347549958286760546152996900603101501883710415354052350372440436459138164960917919150725983349327446113971819482231596551006415668779675935026039405906576086157352876965637863461146440742453474101992291192681717021118834815229802913253210328592723955371345876992041807588496444158520046771540391574179402120599724419926010522803578424247035184451199242090112232679385285267466663994106799536818945594420952352092052243738464983721882931283144515282272471734652720514237066291799790687775121279062455745669143850988088860704206506520603528489715781717261600023220126128346342976741805554046483793557257403969083333069287316175109845714075118730638279549919323876133127696521781580286583206315043843538824848779143629971434446584247037894272662282286820036819727770657558337602498592765554178593431401202553102786194538110998321012014277147966011482626269790902907332441512264032571586227320154696145028192448003804374399578519164403297423877340146677348340221522544359655027429624269325511611134318047097317375309911169876929187109678884174046475188742793679307394831837293339687411085353265686120894886707710323660704553713073066592114500840712307324412798593566739561742042770684178295512404958405473748684083198498530125950911709138422084423958421382966156415092339221335401057708856248973585485316265300415476801456496624953512470262908073734775617423265412293761578215576540482279159786233094663534821617466686813258619571198426201629055111227753897486773311826502269389450909054576061953450408659741413030354654885446300769014196041695828484545954646246060221316473248793393055989759021177512582963117373964419902936097525861193083750251086364302038762049132586763982891575150541950324356959753507916790968022300422418936046597489336231574901056657787789995220540523040297697184854844450679246890570639840464403355257982782123997442596927206567232890005759594362673591583196506857055471073506383750238193423136558900591536477773920997564712956292996594396844160818530979656387794892648292521165398989292620233667926506453314183128420727036998547975262261087787237996314666477798602133093079497358167362208030941312778990485262803955932519743441904260281844419909404197464511130289422350409743691934542264825958845859529149457322777969652079881019455588468685252627921587215934213560573716797700945124605548237290808929509028159976912091207511716852156184000704417504418333140439002715170153479514672150061826083194376058520269364035322445929908022180966072335739366754053325907454946848479904982414608176936367305298290788084067114165465102401451079145141176131050553303472474503099139591061103261908108036888949384101519712821592751155149069160488946118948906626613821327949086204159539670030499245337466866393546619615764485340507723279747876086921685789272752117014869657598236480872657023961134475751218078036340937169956119954454114283457886435090675082905484895776279904136452923534697769085398261005000855538790496851963121830982605628381425206693778831689636891480353538861576617023891503468611389562150693332258737731248649948025470994766884702372230645364484711859068791750370079999765016297809310545099755835465333502512306845790176101852002348083291045642514640804445844944641239781191292905988323683241819461173205069835774394729525774721673654767309021939699118885998245184023405488635238213741391572483651097541309508128927733190625346499232030536551965249269609516606708479760526971283740004962771339355098246775283787781531473756006508056124453172131109174770359280707174713635555133040025791972534217950878657919130706102421632740518850772984325284361894185370582019609550514160508268064257288955707389239133362726004118450426059481133543090633496282097930128059107905955091960543653125927596100751597549434837667468713566153702967052887135475119248430490215583713856187907308330701289935732054443231394761974180337097541710109772735279717360801433567143386971722082393539228273336138786056470196902000684729511531896512392330208881085962612409376911176893003014382857702572893635812362940479921648035008662615317468749344954090256204632060447237608538150762619331763444228180458440784217413514841820985318882556322714166747476191430765248737571330081889016905222272789561028178418594155661913933651617198912096589346496777584962389479656716260326965736689994424292556359871000356165606160574944340971608428547537061995031799641057511730910741312977731429784843142022559597499377037555758174288816943383234474785958064364451057674683002082288794682613236909657526030717484106110380739981929101180417609111976037638803237155690606762321771817875971490741363821628313137746008863148620728865105576701037443380656123236857237948892622394158941763622266216435986593954374512411609093309881897155504787747486194377809278417877583145939870419002638101859145254510308763179194140512202868583944171311570671510233737315681807288281690796911755714387356793314609793283686437408608229682849043077552984971768203773438647161255141549311329514433325112960488970436541053405466119477753379691930251057650947322701550288233983624540407362972884871083568702007828352249039292176294409329206233296015870137915193693950849445555653923457958075511595535979339858066035153026784647031527694406273105119519151534780934976334559934635117299234464115570289636420061802181627084131293849826964225266349835844870544563502214412837651639962940024683852104414329426781108566750582134004163152129924175188382633899930185560253549900991297563175413757711154483499587597684558124511555249380948933710740489517910724878568494194663877419929892208104904165611480329734374584482980433235520265913155110959364638150748502136317173463048005885688704821486117689108427755366475221764515973771837801333716553941263721184221527205338234742868805193674488356319772956181042814495593826319283453502475533150935122288822220858674409191600585408507151348400143234211466067304058269850468363181324212828391596813735958289926629645044460297399680957900944995565907826088801056815852261641044461549404233837255729212726421714712812805987605993893892425204485185719609973200217803501364969741601534675327629472479151897353682158068996614847901738859004865753590792354723050313912392238268628012861171410839499643226251660142080809479017336635304638757769006265597020805059449277100388805538352053290640281204339373256952543697355569707810089563531399231323790856340536418540679141525263880433388715557758527945843373521862726821921584392933390101125697864538106363071845785865424044539032374069265129494297639697427605138429128021717644388430668055544269399506325463984030367967705170548172502590561122741900248876894032986894369173876497041021364852880250864140324536146659974644446750209164816287623039183570709053358219059006652853199013996083372398480839919384579861499174080314944557740969489489249691018923268553268151815285903970788793789284668723313132786353928796087173014328864563260197943294482235267534547990089884315449005631261871556919989288843996512043320187936006647991181067886716457235535106990543486619263876873076869958396187772803904815369859553240717102041182007808907799111313474670242495567653092663455936691473903659468853681153906085156916222483113098571047145890225581400092205462391264107024767207771458892625596221640087294150424865614199181683992552026337622538933271887779449223176689731795406953381022947108310315972326143488741600147220730033446496808560408404242094909575653690410662578508195027374518051909067535017585502544588221256361602245633861901788916034262428997556833864463234249779237300127532418707601176764239576591028767473457334698264097293678261669292921914189775481829959966231957020240092645688221553256956536418395004313735111460082198095983418806598982760996472658423522742555365271666879680387972799238034070543840039796149665606315779601902365006491734819052914978154864438534974560767082721881671350330314667787972792961027770327330036137573997187027707306088232096251012005044284383130094216800251895409255543717419197608854975978295651756768078571934750456571802991519075453527502512828268104926687556523834151685746427641758021230084933181675284323338851825633994536545671370818460224670738818263896387864285964500932634396450213154634758537425279361145732157485982088708576752789326626479628364799603342619559635792562815924669034593334727884203133198006333566876314464410059737848596758260501137619100327545889416010933326075295149290165409787417784875088584136266483807251061916096320532837803656445521406615365957876924480901905129655875475582882509141509031943167029737406186802203345280099791490532390542973958864131230640543205668645341376868562423732106443082236744043675245861095047787408560690225404392176067626665133382983985879739624276917920306279926065394714571763715248912619911492123276444526539372981410525724760372377396865124609778937086685705263180583310205886948974505277832810565423746169710012625337030479881164395847123124269434850417825331846813973331164568783703592560429879334081438653744297585488858205313719855871410787355464815553998903779407800129790542528866090262881116379945021960496375557008988653002801095309003556608213031793497465428388850184408544193134008549725477128412010434279229898387729058784249756977985739003306664344383679181708655828599212060498476129961353830694318297104891952548678184007269710586400267147172924510485121278445618163214726900297778298376489119715338141840570643475340214172264191753675659497337364405297616654058783055923912501787473466035629553977265108013679576367060660470615955358707284628539077815831509192063261565640996567440340849941445557904620190914261637742257862482249481406549474540339004994892271700324390774003983549479015638457617472212949264665302683736281856279697305602611733767171414025103459583357026729729516464460659708171866326886273568431621386370649688379370541893339195834901067441143651563799515445980305279556421792035478119659849126452150821040629920296693937010620303130855011122540130942572415295770126844020999983103824115844279486409103992873275271185598790201001113365487663896730883101753967322907306265306769013109683386655469753198563686514375997436128974162530852218777999798470985540899054477805626090572529800890836099390248685252125389031046209037362342647849675861069237473789556515120315467989430663693560158583515957426982432551122036553019941095791846361175712575632087394511323910875040608606969068331588629075444057349350476168968155769159726809547212860766246588474039321618656180252594781758418020563778298263954158877145759542525332607878679939824733690485043733195781560325193925308162841882309608153532521044518728561146638253370366398039362140256267243976693520755727878414150732810536642842664011536750903523715655825186428368872275555456095288277742783310374307589031461718557746660495371973179579055007246746262847315836305312219865074796205015934631468294413107661584360027490154011098162616754713199227603007039039852666380189932668842011029017539161063733460531067648449071453913929060254502260606890504617139140038761112310659565006532324171909686381076026297279036100102482784216345204735511265317984704855772063552807455069104414029477310938629044071398793439452241384021424386364783558534051667162018792753454608321139465279691616857718260330330703581880528434753912362481706864375607323248505830779489413659370100719525083668085317600443301639656599729296289344277322569008005205691402249113598241500534198091792626169983134791477754319980345485636217204434552810617754241081032514093741423641928037300580724366643800102972923734300428157010049993742000944871254561441209346685307450867992301505969019732329570819456484846080206442767192678941935835906447924720051404917740534902616897714486973406079788157421588642053234561774491295922552339603562474871839841104919167404385158547427508664526288330851098622873346303501388581031159207324446651339804324792349950043093962179249411562402479289118523540792749094040935421923880703004090448226317740069733947557928860089844144946278163962569522662105903995075955192712909250516481575420962955911214508641345282706168615190769074224514506969966755296006875769359767160352312301245766640162237002341123187596679156385242725010719636766336265794013828811628857404339101258191559220286617930019230117374286533958489983326468894579319295762345415911065295209334184399218636308405128696167877920084515715009295741357622271427938170694741491806145066958844455412001117669320854779278946365569123810882798599049182250133578795963030368277588338215699349563567487483488207586944291216682437434770414728582841990033019268232692597778108819002155235050850818095438285497679901667283235257311846915159670134419616643028271388804417130686686885177732699072029275253481866206214906894380488777988501344213708748161503164676379641778393907276046336763252375091361348584372171443634512675472222473641833606367478668562178530213527631765055776202248237260651717713000971012675907031845482073442089214572667265162393064830871577515372503861964825636976825115253079314106789462448376120233964657164714932927011407002111465831860362298507403628676598311412115469982888738149061413563468847648777866789291927777613194150656630576369065946314465271591257699913008132899164081842817687843171483791582333163376063178736473242534607721503356645913108808266264362432207049636461053861122267328011349560515392764425633437365797825516351251845816434927163068847647840070453243869388448276474844243027818023866710276976283003203381234426031403468981014836374173517602134277720168913883939369469196571300393108313334233137453674616136964191375592710357216225780131706596205766923792834062338520152695236860760009564338103527773558245956304807326559468379451849825332707879491466835157068222420268371729225325031209663237056377998468494752220689925615917653649642247283688423598634029731035143411841368407067032226420424011592783687067004409679981366866659797455322753049976585838330175502435589845928532908912103616568711891907180702792331402123784370261608965974539404074449624150875071157524001212293993898738574993563274664220517934966477203852307568980934969865970733048418916427919922022031648153769342880723689886388696767626731019075814367304809947961709083225611601237422567392503342753823037130172312447899986885955671265269994505774008072476451720682248148785185652599561210372589160283068008941327787867769079585204588235817744097868440393109903600559563250609418285849158431531267155261310332353931130446312005295715672370481656026713302696119249374333907160366775065939892420760080077954696384059700260899693566539922201880552809858552159151435180949488994118341587620897907265850037000597155329295357206225463996110777573856926488017323258893559182141450180264758082506352412565163652384383519886978693917142134007067575382128870162190672999601532609489553773623051858167221734711687124356467625537134292975989979447212255525629768643470848694702365231971774591173988280790328089409615717177425714224352524738963823578546742286369267743595809580804700244644773996936304175556340632532117848655874703628910947376667124711288141435807433510114296648446194016115074261171585108112109839919895206501801722436396773638633132208826354177031115776349300413889057229501396447018487354901498503016738483008650916926193133539153759103362040781631935851350277211551890122875132660466156443379851327749748426003741980538956727224793627176021186209328408423035283735588544863251761774712266195881376182250826902540180157951473220468549403016409391430337488660802309215142467065074026175521288848243160019209347991032486387293140968301083033203038726130408571801464418692893987219579317265887675578727399518962526949945075858391329084978706061821503635069719387926344957384627877892355974247395413034934362368982632296201255563238885889556767479976756832243664286790859444579414761192624804911398820829085261313530333689066129859349717450326671367482084825922944164533944701028256364828502276358241008175619381100690214545148363874324559919390032460049017211381424834107735098086052658824863908156566496365302597282284901610410065191357554667534410127411809262018864629662016141304690326429421305706278684426425097043115538598132118655390733291484836934005256287838804413463874223609841091910118578404292359116893331501839291642516007399924218697948730090165819148896336485776708835520052665860322250439898076032765804665681460145107678444098262275236212159066416887453862984391265235040543842571645872876641608335856809828155361979798430111758432704721290581142875990341584059861837216424875196208169533715648221454798672205547757453124722407007899288761942271772109226637511588006817048834730398325109122183954847777342561811242353041134992470917449880089795928992270689686133156938170851036788176572081096780822837951900470553340334305977490013252449865317090252235126188657532781554611212719403027601357575824954622880981490988144348856703358001751956653833806452145355394607027193289867137281844772375698281321989182903752063502011577298448497555974596304000222041034023575156318094755370097346891272910261204894294970821844027430771371002510089632320308754418061178857730611514904028420986498651076922962745831915609975350631174343103364719176550845006693711353122958943813380401168354246725745430715474080767749117616129169142785224352948432566886622528845374158589428698535921884607239679222883149129563143184422234910388969035029528624451387093734081359764378463942317090587627483186856127141635403358117124666272352367898382236491710618564574228904970667664600867769834663160818790175060155590986048353654831009392227177805858245098055999375476903256709245531761570390385989159510388101266769766895033974337849754714541056354421542749435245854525716771868098925102218594989797142793352846034448645872504441539723774776824347058224203656745634739859416081648585190556780700854342707468129422289753709793949317062831398890505615465739543097392867332030377788757613912241507351379144247103515596274846707882028503160912319124549328700416892152757610912345114742171197343388266388390929520778636187211364305554404966244417346025587143936499537963475552218189750360827489025455790001131377341636681676829175877189934934344378474609748106134928131531423708575655328005321055411548547629954136851012199100487946986921596197603410987557666031304943532472440376048146352968330512228174130739581393109365766015225022112902396756607458118482435000598231492189108714872290010363010559863171598155735667221614916337526096336549132627630134336889598155377861045454440065622635609232570548454251941586580677311381884081551497117892175805262956598745373017382324014477006014764335456900383588182409217714011591915339254314136443811886808548991045047825178750553986873644296889446291965631162615697933498709769536186827665822895834698589855387705477716020959485188598610670578474658880972870742661641603897326231608283895277357592457725392261851119771402574302210225718452741712558780243005794663473080574945590479678561717871470254459354249452087239360731909824900417888737403804845965065543316043945748116789774399546392257569540984744977847756277696239544212110533013313042009110959665776101696234777653629189036272226321903486075791079201691211692552842588813966859557857151400545320032505223865785723157907504824658157648935434733287126155912808470725460255015473333889980331246655774250474642436215999310953878690893880636664104745535986749275407717798992748690525233774839324795025830832475339865876344781137550099901932374953231671374512856243370076417703086744028039203099940486100475191611344510720412108929818288289468990060454667385137343706669876231999574023096314911700147516852388159736988640549065361862948317066052431333870789184787176740081785791661704888945237120686180368939754471285170559907436175224769472737658472732248008498927347300568305392664366956550380298561510493249931427987584585799823042021510920155571691265388325364838295289961786639329603351236299840103246509221333030529416789140107877182829883720741241554879591215928289114590509610010610140820757369148312548134926030690718153335656510564269797805147127577060750046349982745366261397825232227416402992495731605375626498317899620064009300381358817530660663496137471077572584672816843455169178861981755259451058045403872821375976822935800065196743932440090237052651878943509310718488239061144733664930955081614642596359551065318524080899685412439030911600638544567534748982567091050331530979240566439656794884700172733676979362783319562670654166426804595882799276699156410520016584425123481336140305596875933962286529362820701179834892452967549158592190285741735253636453934557392664740151271708668275776906329105773435837003693637154979075493111424815653518384049645147679997956066892103531428217590438121381416449715912419727102561202876959423784516306258138121154235824364490942408484076935988098327902680438869543517011811037342451301388126614595481748730343464944795097004849736252289484223479532953238487304177147294253266858375281055923557334489530942912945243060158762661863927643469232885356938169269212078916409572918845896445046165810891618191541269090115461323774503520392617044503064379428806396162971656250681520605997532343148619529005408306873597894010058122880474766402791422846603519074629388210403148153130690320155262071799282550980839709618556599562047779284260928692371572662862862965140699297051110268191098910313285014085878612137964167093910909536726519691457447623830213160288164873381267132825488218561840574113189945301425314367726031129273497488547238282638700332487588475896570423212810619461075002564494518317343691115236809483949200864061722750416783001377223843668625701639569024122779492662947936374870266117974083013212135676223564708264592930509265104751654759186398453093075530656813322627639698479122419421246148127845556626460728451049101465563199478606646810983072138002480435163945074717764774142459369599095926175959231239426854957401647304687357828304916024756493071969655446905233141558550242001346708986530302553028634734211250854284470373034541823614337449969923789962184927377383308261937469681546689899723202295670277844695139898153839931142086693263543220562831062537293178947122768333528071548912761364376378319222060066683783045655478292185528011591236017545905747792299026437492148590125618708747603779972173502301843168928312387009654980991758034572078820208861076910079137739777544837384105212017613127659154003528928987588733531683163392305014586118998725598463020552790679492479982184941057889042723617667818119250466999279096952587115935618734798172366791639832026528475760279003159616258482408125659567259360871091108910110364133698546954818256620443944316601383357521791628671157552415135455290761767577695742834172369280790280461282693624549156288534274963012195097231154909544237218982067557850052630313307450656271417346952230526174135996633906436563001777297110290696890692587464428154299235680133762557694478853536357558473742892898993126677674085121546069973617158301877715898956628441830619012411727236439822710056903726940892717830899449291975730221099674932645048859718598204455808969940650706505966856454588016531795216641790253593009293682988519382515088218048996903650854866475299063267577468527607206870618270390254416222207166074151095564969860454555317639838192940479104256895034828790959255330137932326153492756159677907339849982353286982556414670026714619166067022688605366757229315517194346130163121927699003088768580920435308068584766935091489172133537648910329010387196425694813024522401880324386146414953650034903587817797659292789173683873829276814814701206101586166228143234619381987470815232673733471212354135250201879093969899191074982930691191099185555432229765585250672843261552065990922852343305227301103834081739945412017231533911214892372731978336519414784229671767785085019145771356498505698015498531577635530280949987535175352816298741824455244062421053213128407554219019669829745379874073262824010256276993204530546920713527761754937686348340173830760504258370136174750148671466347801305067035440917924953776112947846479422289844376608357292365739183492397186404336994388324888685251492649922437919848761742904237157576286625982581732915237906934121326145781641001332316507271718527566914153190752855188643717929659890618837446769902244904831444800084320909584590705857760204513590217415266013041737466363272822932601916645259402488003645715942749483361588726790453163348047510889320308067045630476587495698339309127054648731648758148039263971034847012216747927881673251645531830907027213962846270024728407380726719077575590373869624043108516206690566732471273574506753658088297141072672297532476807017401839606526364635660351475919026129786121017559008812907477617903117889421635047410558621444354571170083795957190457169954490317801026194564822884197153646249340993021981979493938145668630314286498996979671022422022757587269989183060815805301744181041753087443481459960165536791943361409373292265166713683853413960495171539583497747524526832397470765908666784612451683994793171051923988697403371708755467891604681015754829167433030184646058165813058400603620198000758039422258807340097361251815004761409424999211436428659903764004998800387676478660125728184656064592441595800297733956961420771077897561322956772957182938906989752994860969983782919703991506910544038860243435292117678749528666720121372028707114814592453068189496867976297600720116310432170250710530260244852557732256247126601054521340759036360060957897764237450200790234974943996817736520309511519405101015759017930392119164869400039634471099740167706224960822580938217155822045522041652267459330808771737207562410437491374784572348525737055610738749625350222752041559510790581313803649008908907440226358780680523968240986275964984713107278307540185566457423173114145032574011044508131471316358402563981111200731274228852495735780161734252823569714521907726864900190360020324836066322243492009342847622854490375816098697512099356356395505239816804008076647463933039113263077877278219946004996958927057712346626677070607617668936041948421868452228221872895508607847566766369007026782178941812118989452201006646028131362705235136964917075394355720154864578025477876036050991625392117002266173292248262185204029006736974030446552445087062757663646443350370169593932075601073734324749728900055004679197222838858088204938426160604307826564571267582204553172967442641276795417037121587113139689712751227449173477883541016199950861629489164740336082841616508677840176041822810340104322046436570499087021445149232812374270330518502862329389905914562466869187152401391339475939091925085211138957342311424796998052969546911231540030608257482194912148276250713080858878205503173591151320243921823244044156030604769882690960467093621542625139951509882127441528024422765950781485679697242222720996823398065981215658486644992225306120626234067209700817061023701761945114394956427041041316211482888905062842167183145390202639889826809095367638122886979960115121064399037285729520108983826775342167972577440064886093198056184904110444207118583942950822707122004632336387528398481054788258265263538190006757952507994973334452896951551904329193255179349547017952819834057644860122824972669192786743480834893564166187095617815825915499346091280964579933190202140410434043987039036188018836427089331279173614596152300842576250185382008035571394755007474445885217612682357516822521564608674088047323262867553546974655160004225691534814590901146531704307392997348934933448234821572813162331780717861205176082498463025331955896122814787102247492190648225567964907169296209383179452512731256480924999590654418988381157414033966636975937100469474940821891824577152229929242504296648823790936422695284044398743396480230241284938756567685477088934242761214193969340603530883139875585418434424167475063425924174543780972076651779399781135045891554287263018662690844698512077653023447206737706801718486679758689303652821762411286229211443160531196970188714970433571673809007771802270203635095079070295172539122764915428681234211397136891286182536797235383415505846265330209124615106362222743650337621291489500475953423183918955092728205525337009485766618031027858392409665131403915449677540218493435245199821803829961006721918587301039374053357072339489398266145158518162046816352969759297652444831125212873215662845985805834513432224160778445727138293130281139477194971355039607825860633127151575109689874961429195094335986728816119464288143947523716431878328217536327967704241272331475403149034013330368270573341293237631703645607620076418399778312579003941767477309539103257107381786362164170305515857252298094003891200033087603023278793291124186233038618318676145621195344349495627481172090057614118860698545424645019745398101335811134353551640263501716158929484628107017261292754296265820140741955508105214117595383073497063684179124322674323809545567887656729278555311598749562999902363920993130931827694282782162843713192820607582377488704614912658886976075304141009019998070405842865678615197949325294265617778352645777556206511684407579535107114514970952821537101735113930798574259247536968645846482184565097764818597589608317472381600481277936963854830397229611354402997380665841390825134211117496683060567491837161451347189720514132218518639688285905420237603666503749572781168631557479855020843753951600157562380870743988276369762044297985087383365210807477628402321783145656114887084881504879976654386258744482073521980628957197076051343133620064156819037297237193927320648155305953350134782508116142396772903304152509093937815842972318665156525537279327463548419585704746328383086475861701261037056620649764443227097228316043933616617790506056778881949320713548900210357362362890427152323216691345667342806945636675986537165197251842611340510670329539260172460094273315767401543523258267447568506620321421932558243314982639194764685991740899212842135822713547204891220302550155746599445602396135495537810781994281330904580505803401218614699717920394724174495253126128699480622180753106773739338113498527787661708255381878941279659634114685818137201062145538233850318460529813665553644159838968356169488062512576526459187950062638184534130477306229514095493541192706586314815528970984593880526048451492025269770668959651495669559755325856570974262984911920056050668866311214746437565192476835584922192472269696266418064344311151788555458596705275709591277579558388289486649199271612116786193107804232885222643689504039230123309280729052785152852889101381286147940546180626301481830038886937375121390273270638373223315272439510236863753780928622703382390039796385621432348585841153052770908532460963605714226068291808128821966092786308673407265917880653455371940624513279892988617126720424089303683962383058471197423457432513203454590296839375643545365214970250952777988727223090005443567283214706780471771257811481632893566457640824538306934474335991198467879320196628630186874795703110169019379475712715255747147079534647941860368416480030004925385865085912704251915446791592763897016695349804419225453574385713295248622692896628491637296011931156496866382764199474972414621505515235625357079967152373537696559695377543044492963089910753582373899650463314473319906385645383273116485146789371156448358122913530086737107021932480012994464012667105511436455533800821764171899149217630024068434462075373851117088945628380620511064773266493323542321010776742704336168850669904754715537424181409762408339175675391029949139105115149587956024442386536517939930618319400401292093162722374494617375425468083611215452441195973840468979415098889824337682517491632778095683652264804277533976960284106377245439411550525665643566916118482590363865782407057334880958343043168937606936568256657801132546168605775188227874063322156471629774036405120478373762512504425728745258418227743022218313707456548559481184265495766365190750082234360476748825610983400089117425344663831664650712880028462082808127813120090957988417987359890318589385809835710035709977966263430431187859494649350584391089028719234531602470152561692510546592906186420152800815278283846058109571391777458474666798959565295761799770315056057422489747919278597777232836419827182752006612329972600305366392903871087313026407466120590080467470530264711624004211530121339431461291374701865129946877306627854244182029965857167465646181989608261015401987581723922096667285091372667837670610702106716694733270350104938937706059051055244978120692738351658009968901863406580599252214321294077983761668095072447653443565978471603783961931562361675276621352063420265488157944624099342591591708000519809054147437427211826866171782027648875745311264323257300700648423118359372226201535308354533457609084084846198601977511396703728186533185676739243263034935721565210374651715217141614393486233205801292112325946301464249789043450664864959468391833366853580959366388674436808164750705115017633845245327863623794497343238139849371671908831787330389580631253105702382432316975245650498231953654247581669852363101142866924692960403392718345798572295576675956939373180521960591700202798276953275907862263692512639518829010284343778080164812947883877067852778153740642355301923243248680611661234868326035245499717473068279703820496904168652278582308404852516373513327107717821671405914706547367387106685145064185962308321123301231285186566711790903818431581966822675246147773721577052421551837369291068745887581858929097961429183863228912665097031090152531087853602803661768345702791817658114979597061851273676342069055029569793908195612355422491821465374022800701070332094835031015403130963591352802723135085157498406693964785978480346830154953915805161209954910971539145441189450196976664138340343562698357581824241017051242503241736998223382039318152996477720408719198106537473507533912919255022611026606204390079101787398194101223261497283803567616522735603188503130041515322349419708676150485532621675239045650986546203245528828758428896686814460725706947091196499326270134515482395111024353819484151880952896436970349142887773788125538374623318693211385933818700712935046764699750500977481340066775359786082225214361651025697114971869478540558738998412156031182199311543513092533637290818257312541546143196859897169551575177265590153205321847609855821796600736773683137485063896133492613047718260162905277897531868716797988070614434357594465683266006201582679084709392232462785841779952160915732927757022077440160598289612564427257415618996499131839641110308432985893523612578400619050645094303031259376206171106928642976333466977982837588740856089480380371292663604497973739095764047357081672416215687020278821082370146982406735846352634904460020093309019240002988031302579461718396712487484344367489825686161285008718268345951590434051548411271764326544670812579029406746806385632236984941569618130555554405943387782329658869259994731049886221086851746973058885010482488979396879234403413321082035302711031735610116975281665753376660992522023585276239255230836713115633959590763298680430110385190875282843828997106351699734611411522992801622185882408374114338760385480647847064285732715607150127417290638231959988326729899952621032627837585494956350082058556479443041082503279796105377846305652440965731971963727605121632998909121914706732514142586022748593288925025320634672037567948232830156969219941458806798163018108456495573734196493422582529823733729520692082303298980639472302633687523516509685731963332174135926036313110029057438613402854440756820776799164555730643989515347252400507165723936541691089301307970751916863761897153345101333778201021742504977716434659309634091634075357086977076739547469641263403684230882636374677413670079388850823174554884530589170603912118975195113374239726737499293121365220095915567562725932664045526143146921480640112685560884517836967040482897416629699530672240447789575985043912855124435090254491146119917467451991196047613944706893371222114510115251507831999190698661208569814384442119093850570614051780019242496285323839059443392216994948425343807149539178883368990977904794237354655992609681656738954778622908245906218769312586409354002655604917998529578697532358285848701146214497566085021442834309288136284426998628263234022252394166897771091607363039659898508491495348779556557897265773007161019376388703229346369985781440470304980252278531638131364924970332738534220716560749358946082280544986913030216700937685834562825306737493185992985892459570555359830832789435197280954139880607706735022248819991253317252883157372326705470674900510430322855541283727935194311086336069871125365013578080418561084149435181267127234029468582693420865309212491990684903832571023979515778805621602802740801537358244579610789773045293941026839036229111811562945512582578567328278345108668214497582231318587159566290178181281750057955182189988659980887934253868384453287789082693477007280151188846492332883588431389041960358085145214894925668141165131271069374921044609972959734215175887528899659918894049512951395470768695015639746154225471171896418110834394907273334273579115119096753191682661734069734182618030084125469814916332390517417888469696840835047620776010614610646373275200539450768829061829734643506129607109027702082878196133369948644486279596648640414684488386060099139651343043922850242612698561440292300953236180794690114425393269179453337821779916437336228845249509971373169095902969552526404424346752051179290452012084928771792484434571046170812335069784841414196416391311558187300687204321549549446878382293830977580065660979283168432591519441012521505479062672891280575319257757096668813094071649801168855266736073610214970428969212543232591127314640954687861045395937823351987576748442157369982202041354854618747770188517924311141803552664763961608760464275720032764837342260789023918413155805821373043519573707236491469041294926013785234540168826921729626234381848956888116593324810513128988186734680840446416136673659541045274251562434437270057008449128671910011374316526445974107563832201021760474252688616717417506448199863023890459758937696852876965647648809710828172807576770607011773752905206082444820323179841775281112367164210461536978892916321563941948938038728605317327181008568019653100458525028656264039236101301247275610521230909468483002759325461491986938481447613318972835156286006207454071112168872849849395297576756628563221696723863377718010699440981010486860496240152708833361770611083115126448968403211431575089396958533152004713116020652010563293087289633477213826112611695966202487044671419117616237575281467938777752827069819696188876916224859750813443514258739081636833271362118806243477594839161601645007889122494785541750093069866984633168676138760670270482066060919628351820968325406429524749587843119462678973882111459971331081767980592130551722649446679341654791905204054556675291958440886692178805733495858323318028087742415590902589331937358234640765255326066243970961540150099492808862083416783598900309970387645938607924126110805658950913764669307021137346537638179695747135794350172812071885855428647241203499475889850476959991600099119033643880502982890293430473629114474518421172553908050931423201404286988962671855368336799222303707419959635150504943997167564742157331969442366118575594006290038600271026281972629062548725523054627138991535933959919640171201057806713649483459376101255188121967558101919294147217677654005509984812950692871946319344344345616985339836428740396451363262720950664010594492614512737856704501362023590083837269534357829844859139316090771925622587369618289632164855845986220175328603938451231251490211229241776133817765449958914713016344402825164434222739071218319923982038728572328477025083342430823227639409132727365318723457239165816439021133404921665514843453726038088301586027468480713769139901643034545077465933858858978022859354998893581129241523808347152972825001466134246481850685919769644301210091848189289991617379409349294183943045597960873502538713483341524214414044216712196747813126930850365616505759189375903321482408485730955203525636438872811925926687501737283244491635428528355266080491513325995515660993529284092816343065521245612756814801175839891900779602107502402365280217269728851252653845948407148818140003763235312513789032831557884857305232762990854374341465770617015299318812725636634611461620834383248455154138985309488553927740256824725083179809300564235014421795954982281780400567352644259109128099499280617966559377781938185258964349683872236232673897969441357465679061885581883578128271291435008062837626646767550279360485901249439848062375550906493107479829083400936575046177160710518823267488623886257241220942150597812061898695354028212522755056087446707532973045897493767781333822787012052658821761884212169622681423477444275890297357531142766017157417764988118254466272249745359501098522186188247644217972925313142236211463561497366777937650638502103501955181868108589233008259199991105920405285682902738292062813385345273612672118641634678924937767178578664499872699299551589036573089993666719403855621459515457060325323939824673168674073709387769573453665260154359511141495963052362597364015010647023658631967374777379092165698353538222823125344248960360365574909846549097263571183338974910209772174583285513106150937080574517686240624030443665392105362572549111502990650763522780803580457455385949728950185367507281353697498631129906435678725433837252170904144760158663260598590704999855453744081061575753190122776835783769707713912134206646353044660088026534698461104745912252283038238557300923770293255593392586444898084910800293505965172875015256720077786542413033899073583845851117795898532828625130630835413539321817741785302173357560147899091911401814624523966421211681405810124121668973196665849176895281781187913844939292807932896410972345932361620532456480387776838357749703691552492235127496881794794395745520334100279547942707939944037178614710046365488729208137178747938621051380287735573137032373783521070764728613224951801794847848851454434141380141025179404741210419093564550309425780162085142556353667476858153310209054292400880299370113373615788678820395978977561035240204245141479782647673634946812856565562135032876755408465443018456964841949779065754160784619574642000134824823619324780486130400406266995044150419494558495094185572922684353749245151948884852104415238374583639026666730070996657390429238187658474945781475421021375930006675449933483479232985651887250289290723851639588643829019878871662374464578534855550046764737052561866604805355627179650136522635223567316503895350177112897709318359345953206389201827633048645476438275767651666233107192350084299303993851836086532904076279723578300401828589116638841050681158525423519101482593736118995191643028565649724867576893691161556026436452518327722361622018784262959630434129860550393629993633087997254933064236237485057996854989903959940823274012854765847410343020117630139306682401236699316660806180911748374096531229807862222504078781002533668190312992298001130637072126977336657669395094981534017366471605383523974601122467855893791325366582824811930229872677235814583964755187342194718157028595556111838747893232534374355975063324019157322567874052882372487404254801812534038106366649949830968685368895678956795679049768370771370102981191884448305715018591087438691116938011794454335143784765881514709165990656428719395125023532895631194607122173243676397304763157332464887947546009861933194063108213825582254882980443213174058853415267521621986962260405069054598580129023512999640767256045073642059320660099016964282895092526338894285835200555805670780253201173829140594248885720291131051996977828665588054685479710260481503339060005282114512960062197272588889205091865749725629433230765001838434006527507316788799556109080222756901558991863713375158386319540821062254066903983584916815172545554261432678762225266436962730824130564926477506789885960868517238324484703813790931181294635165667567181700021959225068124672053078767685711977809451120487429348966883075595040087885541251166673928871136207840430117463018911622020372522615657262573631792750716460551970454483800821826713133861194393992442994031612364662366725175709989376970051701929940829818769908970214268004863477187785846786603840040942256015746885241657040605571016217181707678479139971603083132684765220786401917618056503856661532071165381846371749278916141404912201476541244332579891397751049639357488728702137961237365649022308226659357072687398604302875159775946490163662573161373579200959909486443450958881206422114330662778508226429590864845182665470344793410286134325409044710588938125433475699221425898507631146724320886478886421594831234244231198322526338588516944135539457893653552830007192898076670619442023216844673546765596684472259188563101679713964634079473144515484373231525503102300927351152578311907365118205400422216998121346846567929410536098105066429176421306528473394040664445448047549845954812915738052141168110111563839428650165204569737925428529464874562611311543083291205556848678728527350504791840947846341286881225191953882261198316392316310379554572093083881827840838598557984818879596983710668395272378899447801385117864996958180584323951532263654887402121602035635839293299135817544353224880082742521227653923420704108896512313909611927048684206668107179708906522133700536569233858730088177721496170569213783278723470299268031662234484224400442319311540974107017306782510203365866042269439284059449001086169112251037829148714015369189760066025070754016957842912325970199306286954954847313763322123956235138326321988491316454789447180646512167375781997407829331361659046026849529685952963059288838886338174109102434675329237159820979150341210559432628152354996518090585234281389163743985334965384100348547581055486102128501529162480363502079619745103281779108419168426970440775365245864360456220982122207016444102494338228845745507856577633789164539374796513918103299591210401547426990449563659821574746218804695911499165239061210225494736084685484271798128644924629445935119387805303488574932880741364763487334611156758896697472004939559389766792651695135488407414571890314421624487667885001425405715941261649474458341198278553422218069137065164645153042879381460988555469498561435980531900512617506431467411953829426427184656806727067456990710232614335950037815057104716048301532962989224844889692028315037795487671110870061021164449713312796880496373925574550807967489803322394100026288730013643810969630942130807820794714020323635245549158790886729987480490227108563801813837333767649706477004450419863245864968657902603314685365255170490941911509764907625207482354837508068066929932611300950775395231286897654185071892672299929544159698661607193763379673004134829160813572429373374329342894750412010119028316867079291115616704603408258934159899870848378421294102586370782486344467741282411934285474708734967974401827356865124770683638830929488442182815944723108531578211252752933463440741438433087283992615790319633935646805437294842022422008037782930162729320663881873231794703198973866594146310581322821502820830656903722859180007532459614902343823675191215850324074748980098961991268456487027960279716484993806693095905285638856443226966023052741322312119877093002163928309956730166072631298248546900650077152256813879596914356234262876564254452625581087465802383390947610657982267805378851257432674502279003270024600488154999171942155439408546016885811773792418373489821139160822752503769753878727682990412785959660980080034485008722927916621412887896917290877081213021465092058472720028441044469210131718295229481922902206759055511265836885356752072004800613228920256348149849204175459635597633917572496146210908446068180089563047489722693615963598239280209873022876637893234956460743992733798343120670580299067416981899549005028158102013541592741671918176192420891967785032936335266050318924426954062952106100980585191944717923490253157389907261305808558225758671935364564855991345903774098350356754893322396147054342442575689028232948114871697438836528479195053961795076651993934060318754100061043141599734540343544268676888778547089963316857398239193986013521711834998991689412508981477921363251930089498208965675275581585969974363322252638170647007009358186714505210487327949323477806017959212837767281807151906697928994232487510573587382521550867802083551168099323175969323198725063326302112427472835959828091943206815651034186097956144220049093536402166075050915269865560414308060554039106619016669941505437955402768106804463422600499263575849641766200793887082079945795327371863311409375726227395673282944851724609043586677565341249869143708291616938043658211988833694284374637403764335441593052855168759285906733492118968584407029255742500825694001771311765016955929184492295834605159400839445390544888518323306092937309687996896494048220906364280818648088360141273882005491882624716698503007658851133812461562861355931212332887989181208153576014282030365164320861616506562979981170069760755467721176844798284550917474518598524978300733822663164529674493015307532161801188658252797490329321902886526935718923430981356605773122391313087035730283983855949952993493874759207831149726565293052596567802713045837563725257831196203239682148620737786873824659814762125935728133954601225451726285910219699569246456693232336809397533774227795418076463230431439051695980013942877291408446043920644467849189339943286883224168571731774711918964659466256693734503117114052551829102663580671361342782965504207409408237858922418280049471960610002809288464438344419864817216590698693821631784357291899648454408019402191553420289237518397262965394345534643916188791643246526968394584761718052612248924348612101056124488387590260609164242790874060335689247071797322417776299225813014559133221468386656890835793145528659315844863634465382923835437047149665754727251999226992685055586063111592332809565794915992398248431872098723566529555867479123543024571733360837724784308263998226773150627407867433818413086644243129509963014319136031150564194634772533103010589385612085178485639219815956525806948306893041206418439996584140917677068728281869323258222202252890948495361039978470526352551372339701867093479602936404287389751963990919706842555909627800849069944422015538011928827852906054983073382191295837232368075838281013679313057345218007681305208099484456157035269557441312115333875250499199220944753293414594263422824019866882019301928794559262888431213591694892389932207257279779997759269996187087588290331871787892923501656880562821930349315109807829555315253103136831393349813367261001087071529566600036911962523147066699310967489185206997354490536258399091658499737943860983567113088709146011067807621783861324530843586996422905849196441043455721626038756527580716066348746688690392077043958386194912810355810863256147990979007126044851390017953016005653762657432822868998431506550306534290743523630449850073576921459135463088002080510013994121477759415435957480791360154098120180958543130274017602620530290910693132065259457163781039163055244455692200737767832026821440154760142777728375373083205855254469975507403325938028701769622792907501549155321919539665147762099174165483831295958939395746044174136138599814739840466990251764849920698507781222553829343605339267081507309096994846091960922339919632392968218961193566215246485170086023658251224470481476675697585320059759050430465017313939060802225624633603772472988862760759688539916987079299116899012275604248944876359207396773634496999859726956321192049462073314893857032441468982037140240629527009673612126714936287428688320186222824006881366722275386245893104305739166236901318336741428726883066734740870485082921155096479866796352707224538610065442120526148953232732052501438907882928637610109452527491303912707363155452666831479081378268692666164014192876750963683071736224494746848254475329150149301906501351877106052171673605906110411001237572923037480564225345257989249070159985527960958248551711497022107636246514985622020650703761893268754828604195050965702918851186849557699040828956696468509023657641610892618698070717729194115970807646470273948116742134849584794272413936138674653804769077735225452028937532106083832799285876866377006913387248659076183795463319871558433342408284044310739999769956171392056043047279137345612363429880503843210912564574640260256835382462490859241876572148188329201379997974551968419329398969192655576362846376391061100973530460226588524512778003319543404063527904636401504787141257457787839183220314472920131813999605311959407699121271193477758336171267442523640782869082042680639661732932012383293499105127992961408616058083965908993744391507142013666394690449122562347558209136904244571896599536478762931644346744240351466129380558736028063489494715650961529341905191384486664242463554225938459217281365006030341717937284586309579656062470329882153467875406305264737236624955811884718115405452214684079297738293373183602443062831854105828390149143325386198357396796705892967598425527799097123558884241237067622694825967625173517852372787031255066041889612841450931695560999161058848167305391704234758527360649668275474825844388278469950329652457968585590411225734044825735727079787905692573922685644582598615248075513525927915646845208938122348386306025020480805469872798430184501914825512396369049418614434796693086989066216326226364531663674229850291435066783715119516968658449289644463947451031009564758175833673134700652089986663841194271872516100569670673693802272929157992411274592925820781330739750648556652205010909790066846316584963349318855429401572667327641006295081606290327112774031995192201299275975751513551773934758317568861651009460840684496569390942741791525855638669529313688589321020473235831680247885757088599223105161907475445813160332507481818243243331238836981833357679339653330865855427269357179680843409202567603000412130952246861825179277292946818287023840643171806137636933475654513868745068702793623167556605182199082566972535077476606942271945910098896132914116403563260446426572867248630422264204637511138885665403059755084671131587794676095652836938781320131083074202228290535503836298238943049644177121909865475801480604886327038736079408137819279368952794502865260121659877834704305893216536649885250286023151211417720708469515606098740811484246754622036939332394559890636483539486532901726184758505135475569336458245975598785727571658403793945400446386225521775605342069840124824609549414157192781930542950093164530660039504917170731370333379685615931442277796041034764136019729323755956944388685566295760559238092754486294827977619906560255771817830804665506303078900851122799179590635269323928748101664669004001911937698416092543520063284131161247652694725580464852893934689829386349496534286628214248551726559557628808661516451599072405777012791644791617252046074462805827360144503792163578426998221009497513428703803509976507098693966386797445559616256749176647585526514266698933799725008102819876357526295038820329595943305304502887715956186160278943797348432395078868239748284294843407248720797780179092578858429926638327264197729629740258881315124629119899710429380425444509080518669704210817445474441892489555172780167118470152013489858370945971616676580209584589772342226261495845658246419958196540593673706427170629170612161275305885119431438531739678975373941166421019240084617797087756059767310245188058337831832230294379732283394514184111150359833087179777191130713566352309486192774092094525194123946823842856453227052027895766705904823329796627002468187027724247627346480751883975446480932206621798644223482494652454092767738012106701284886752010809932711223222152242495216339774877099567222881775927783074208298143974096132894860923570419800069374966289937148186124744252024353418215356337490009112111307396578639696702175206511680264329703001812945259797973408562537475832751308182920738747738225712009137546202526778928766091824199081945373512624354906998788438826260942586502811271371596391991049977449037211121536033888655041820115444534244171887156647851084229802842607823349900235292216378632370164883948255330676632377489987684437759611268660828463846837270183911012727715996726308212045267094589203474373754182486637842143229414108521226500345697437174735496832871106579845019165102357791622063024154747451294153129081189170458351680132981004340860685906523486811309532759458560044089649859254485578515036511764355342546177887257983724851019208697574339079300194619343778746752990861347109622394100920146947971141565621986146745449573019009157245299863855707193639417246617699749054434878116544056392984052784735831282739567161162477981946647132003438694927343138604439809395353657416316343746885420044328304054479579713371834028521824630674753240060671206290123295343122286186587183829003568798866843137570360761143412647503150184464644903150265534961724708405348286945275178910480991422242382084572138883132153689814947162641813705989111753236122228340844515157012301363853161023038776535228292704242133428724535179039096571873552111178724797289841609952582179670196686833910698798164176869887476791548702131414578003793959825146878702059350496163381021501144135474793498655447883356065211875383895300459135647312129959255688001648645271867465100043714180182068367356468386189688346400491767313640339244450096740968232134565753315846000992768008332071433331586600438453744704741083133956022007843379959460868580095313823818532163557813933153231719135688434725889450479687087419435273767938780866788972389075862389080795221137351856520547169098711730051252766138384071050495348917981846471168470413918988716589391723683194233902185605736589741222365818633461376322369152443427967409113821731569138317408176680485705615274654727291594879405415926239196326598081217713342928138421049782924509488077983388373895483893415377593092126789290682004103108715829870359438444578398386631131726716754931802556254375477002116577660666042881963677358892670003928438192197261766786635300529728222519938403482617760339961419594150287892843577209751748648121555273834653049415884627076593470767763897029070944631497311385249377484383559350893398517860445127544165242223080241394892304930857765467527120647418201151124104072239312771729790496398123366981783939959033089536699227620546813354971755686342517143099110975901308226825301293677195741587086658178792871431298930490629537906161442164335274347514876437693767124093148506480037859916540078570491558753779497302096295767885636211499915891358847944999116972345280866893444602290828169433100577225610359679924625963179523041726366843769560853839724217342911156410618713316128959589862730290642566223757157821691582954095227528785263463081086692216319987500180385071153859506699638303065589115447532861803017031217412262004335960185316949711826638989134852742187225178431244077398459406676063863647612449079565774401698791721997033315181939802527962782103146473662228470001332967057049858708284187227953592839545555360519397737173732211626115477789379270188014171002021236997986607076427302454666771979240944031373584494636094225043687916777410107775779894781189772050958765442902630703245264944410753382271405904285306251500919056871987837636871091417898602928091333679454683790355387091277233014604694626619718882826974057568319479458502571972548604072018277875722005735953660893208480209257017301115870733563014944009559053833256515176239717528850346128991242993819201115192266995623714800783832486304168641245205959831555967287973429462318098200174170471306335351649257780453121245730757630473018289433998425776841014493138371754982331570803618853668877457926836024255008595481674398262536965821656977687377472546083000224244749102410559157440573901931680686490892372136871979136228371292406126837964021521132304606436815276944235858759157638128851560169197865291837164003235402505450998931060980744279102804565849152456538416625049350388179436409885793444992396445720872606874287700558668958222801225833550780493877672162769682415460561132979227027668540881531274485212316845389802474741049517667952982261624159390015660600235895230814322243067968124930717235138493372090110165270794075095701146828802226819682430308771535101734895738292851390657286313442544565340655642447853187546361478733997963970900214399143113737406739727679883077151222416051188552281191109017947191287520661354458731525463017691760991315625237891444326865618030184644177510422125836148596954487184797776733027873945315036146532921653085271480921333347473063012281696177186558519555940015219295399120893017725497279662828078821278202899710794652970647811864592486029300063102508169228376194377625997226766395093848466961794773014107103885043509138377382831532593549771057532720813774652987106873832149509201543843518999307361248005130025475117138354604486889412515488899794246330797832299608367525456633108671650460330610588412325975449437684344648590401529944596841145327053551882381300718264527365630683864678176158545655539330674072618770621344913585579973536572043638661262443004873474905737837764176452544554244738943091307027889042124283583731696432442265175477616568279394975024307011033495672559075465013590885474941007721174532952252795727506726674656248849811194053349689926259300287816114928725759875331466988558989252003331841310823414339789963619570837278071166269475121680576076141712548730359755109916849752661003043995351640123426482381748825138342474802743809260360864523423693578299827467518734194116519564372324003719235756047038875370065035239913189992707964782290489281131295989791013888544932790114280416718723482954570455142637349789981636567810786625596153164884143577726190903478036036725355465181930116562151737378340872391731521434479306659890415314246091236412307118756154061977786830384293464399515279564889298472144893400339569373875276850830881192743366186186624731726273027586041191368600962803786012131270214527590933767239679566721617869334295705335738011696634111285289368478185923018887349638689764109429274037651656749155009408260027541464338760584244210985151287507180714010359171555660581661506756396044366239404860720190838097435471932783803684899089893669438439674868418297846079404350391541178889144968026629085035756120662148620226299909744229768028490935033569057621671834686376006874242088621130294077397578149079432868510365703830525127206009650727922028588387234675308943098322613516216593844508338763863008185626788562564881396048979252102831562925692923217559020677023840216852820963668075102429567725606542864040119845298362210021894429667423889464890934541149237934774245753616736715411431584628349139485563888508311974194270682878390302355176801372465853799452466966804505699471146410661688114023573163051939590440315987957914058138063835416956832341643443961930538790811149598860728103192717652874507362532365711910691104580702369216189834256609151663288024768318276530598187775956633051071438682856235598404156626133204766166171337681801401313669186466851189151577197774764037211546996101923053832792829067061539431645975158483895310068200115341464977297378137971019096378323564586478614218143420104832606518408569932732916586001011543031116549166498458827075198491701512553754843119648200977749932143950648845267654062790377524197311586408195634538925625551524086629323329888410062614437717443853292907067629908561206886390230877874982709313952846993894433477668673885410372146956037612104278765293678594737853764856645308868415812231160822769808925109047236314504764689900308199131901349711981431827345718391955990565651309840331207840541181352282681013109688888345895661838100840518531321838380015360724124993191584030700455564035415914195139060313048769831508411236270129845417439352823970904907874618100339957017369892331784943450583594773277611302683329111582302358481649904510823508501414686321551997985599096364086091800076651402569344141720398938837722443412635046281332765280898073876011128373004563754759595867209872844021061026771219121521602586869953438753243749938806887386132301086489950725757578381551090172947257131720901620804526041096809433335053765878653071976277002989097015256311811338693969721428406862097590455397601706635324876325582742562173127545675306263634093530076084581833394943317145062591683092658118336267900765866825211584476349835510351941302422516803057573503867247071836072073273407502508821094963800091274915195224056853596635980976380225789515309435305919252624422705276461078943648692322948342157727527824597819678207466374937462928679686235094268226489287214094195290070787083041756958724283953710526352369011488090640047047945228425217216726486300205076334893310941790267213906487172070281219148914744458476563102973336175569706335926333131086931857463037140809460486295900715855293702064712496497225198873242621759211775147548998041262115011119700641903290358059590900575492284954825739709646252231842829014067310144218569156489724864539693481557450802234136961860486440770503129771624411610919387423468751032694910769682939967539945132263185992346103964848659622502785281076367878106127696661650198959833115215299111753035388492153183109249483394089696936438365255680008690426298459099516905538765016985287333933736604754206623788580276159883418039935183133151711999410062860666827975206709775393013215399972041168275902700782321819106315184693831900025609177839346985485986942827174392503251094012733155820715006432761517827281040904821401232520972331779353780655283132549014642022386863565295752366182757400061090322676936889241681212197190809188268153228738691689042305896333062570305545806915525132690573408199061244616416217571623319733479127008142379579740517690624768112555873437192774327184574954690707530961995803698347872720494016816380376153270917651792939645533021170298755906246573070751408271100784290855559205449375023315891136337644137504792253731805940516995728227330948141569240821876989911795587432580287585879009917121378947140881022028090822561771547918994273771744688388209927357227718054216870860778398108661494860751899670766295270282780346589893367866674722139718001568227842953331221893887343593042310012586104692043518608106054562998230672567934675386611113592454285887120046963850855807268723015950509458232037620196950925419360226186993581841540044488022493683552653404457928849347706043500055856950204804473305445589447465364464983395787192911967322272019397716029575857429520959133099044401600459732362555604944425348117677670743376017972282323423177918246071315848916061662378349873931176056409485396798678411575056156643242027651427774153131525516574422259010242465087863319046341303762371248362697827674098888761663508012745031556810652225180655984448926329398070469212435713270535292174079763456260127390461095904919884688955826282030600404078974516268033600580160075138163943303408474835790180318770142294679304883297182572745544848847583471861508334347012233653030358510416630300809715026342053838898854193273857597221430415672394421474901587986074892134833957056968061976716025508731188905863213189714145816165217855139023547838811489159147951161846431492951714684075376300051343401687210216005052879929912045393513723363438113641508585726673702357116859063617538905089379050358877337444910491368527317216064528583208813925602645021347960803044936132452970066291639543465782571472001233966058770653284965363856200692940418396797237654499409802581459132113512586308372895715075406441522986042073298625899988459047828127203254239887132591749194579793759068134600854725600324694135965891097326808268026138361957934598578527832081765613888820131298319444985712335005668889279707683539314688462551610524974157245304403870273387283923728786814876838130276887653484025682524255793574070069441098892237968086202112894244649124030931789388786580048402360718444309785865604177187549644803405627732463911622603071082805922379656267107222489019053175502616449212781731750254294419951964706144841091657092628646212096720492265574923112157342142041669630807878277203831619069032370014147900040316051551389641837868856274220291887138935502283260378010564806205302307964814048706507715761548344525184870564266676392392188668428238501742036740414895342195059786641770887265815902946238236142017439134374158944585619353960551682678475237383487687483232316273958294783788167582323802645280098498056140635189301127756767147285646704726484309294104944372003314838915416783284679133723585792893154168992982355868332043198681989941945619663884641203107785104763570273474263993422823546315142457998741489412703588459854104967634889347100616042020037449472585449216542581611145068425863434999876640320516785675840891009025344733485575341619263827020486522372235974842365896096441713285049058209571154070922304513614703998591648099170763350965852843594419351895824343052503428580243583822087694495468431928869258654078453121263962273503880966379034894435438691319892212341530210250433887082599999493584172226307341019124649219888122131129939512188979563334021386165081870720064607886638087037595279074709165422651668542543937213581243280675890024342879613647136100529065619173473362334627294111714677730170751268149409310689653055598276060037549966487463043721470709103680844887557889756173677517010866227141587479912614711479103919693133713092701396856646678478604689199609988370576810996040877742420249392972812699305905736000188165360164440476976034837565916170065279295326438239014369553243808130494181752605493519157849555964292940495795323274197661904757844959475510281626151428373478424274303984301335929258007011371659418290770762660428303277241191492063628579258017579741371130544548449097480290645881650462661140371946698150789385420812709372710055564859408923214541950710157859459383332718153487946365747890137817713744688790841230745410317356416787951940452850349374845915461221324998892896553623648443705933350852961473701913669856300265960788168493997327366435620840087896632748237089051253196114289432774059470133889397799884644184456942343052263910017144625346720083989725442097592043571344550171968283142012534951354598076067906069424115120168043505035702911656206371184318235528453837158766528009784922742243127483808935044906585351016354610681826713921035061488244394824909569304982481311646531473571151735752944543667608172406719727649137596902803246630852008646865744923474491997761660555793085930582454088708279127819892326390501535801601326880119370188158196547873027526058946936321552290142132747545786962227350073629526266140218913355334275111782433565493513279816559655180820607473204509601730532411041423623915312108360489172379097936686994046805570946187781155617375588716059018255204857872942934594574815785626130020155974581979944682592088479043134940891253153852651211543625938704125164366636620076671514672944450258124552500314737303788270463995498081752076797204036082849475502627659688463283275174556487146348100284338219796138715194793978822002783817021227312067939111233684155553218173380130876555715716525387338285515266083483542435958301176200786731230095671549057916518300585719493215870948890004462913122231580654785594535525980589276633798428512184147749409990824161714825342378929573241050248064107275142627962394037946852138575048455425780449526566898244964165341256464890026290074242720775602359083965069269404386596226473707703437271222508750033824840217811778400242955005637671063431844510441499732076708714531786258745213986984404884620864865806066120891976958340032420011484197513484595128808005718310275986095647453018754306357458937991690506889203506339234548118942118748607872963570636710762555079667354412127549981464859195029412332960736164851906547167966218354356274902703378768000864050384988525205786890420517049951041603312986656023050223659794113253838229719647002149257207013305415166307238003644187973732126095941745850885823855641273009515477312386329625504352623518859197777191701069551386533179333623664201839843139182605285522143945418430506816675923810024243287286110598101624310692429059508315655699656039004592513020379734968622595297941459979877015417939782216441629901546872032197358576342132645038491083085285215564786664640642039229905369465060219124129623479096239144638213416293731682855804236939454071757804326551114879433585998702724563959160418850978681121704664144042140089449910757401841331944398780319540513664656999218498558295034836508481737224795069709053563669182598272351886060727324692209680044749217855122190383275449208309811400428639008064749411004301149680346912222137672604163392386691736597106626032536064244762436652496821163240487869713747555197659511882159170115554489432339862779405820815472588374271517268654100088514032648309617718608834073120190720510728951923001044379235561990103109658270444010659840640503477258113708589463578204145510956860658667296360341269812456041029947423711283539184440914047909430056659256639751142842218307337322201393699482437348195538957234085907195877016935376335494811812193201583946763740355012110689398043564396657987034991806526768943046953538932156856900714435693282317337244669076470924604242777611654088139022640444946267825246241400478646651539996028138675680679995131832180158760993765470251912340876353526281193876152874566450395395716280092440942759227327460066788329226586632778736529081934989639673487793490278081998787386819188942352713444651329886536237011025982181756532057631019932420131503519179230562536935200072952727823275759615375006079013702230602986491643955423565102913349062853787332235095021270077221491315877448488215092856093959078838724511620982675688565510961774254958313965744583533477454774534640605377430691315342087456838374906208913496385621594650149120628838758006234671336945744212085078600828774236708963042156538009491381693770105869160580747987879921299773943271406601202718149606109937275359478527791009647683905216651110614776759120790751939926210065248523549401270709164609352383535291997157266758543475411146945947317249254418990030062807410711318659408445125802592491376101902930113346331382256253624405297044844902040931670437568802596402566089078461121263877092710785635404678743464906294624294612170799290402453654088343425332186969393594879948299320598268382131344756593066084176215730673378890725464388348245946401333272079578147293446736229746869716479814138423614332332291769680149966265870814337033822329053523738581327468345479924433858733904799910737136101481875754157197906345122679232977123974893838584084594049645355785751947056351981371372796705763298248104839997522072570596557461066940521488036040683991960827966869588739831856706050595620665764156689493297094458845626375549001482352633058755482986375229762004060417297178692107344511850428272410246222558825833730471703985411277095125873680431173743355142506460245221851106951991077412138079180498056087330495411068773538175086025324658095465021973012071732651018028995923500956095941501805752896412811846009348794004124862432259487794371864502690112198110819976502778234229435725407010573921549443760098072727368809084003333401236813954306028535103709043724094169477571983140880712526314431405535733040633085767969307588573268216429906379499542423290901929226811629170557770935244268492052301939044717591392780005925576907820633684080544713159592053878817970168236420496684991288472156911355381237509904526366742893820685154897264177583431453518990755762270289793593295377119700228341154837091074587993194111192008260378439195531742377535292333071060676565316112580749943739991201351069078169892086613348700296092100377935245855048371294791182846306395668591907758947389063215533438701365946410027549512280696670665281248952747346245754403596821312275663346416495837073315166648441057430888330971664461211536685295998981349306052994799163988227694920396866672676332664108740157851364672561532298155152062741003616711297061655154844699492363630124811081589491127871352851631098532806286880007487054765733744939455499616219703776685465634960924221382569580582120095323084382531156572070115758806118201266239515609245788731725263004231640740433765857209875309839664311072716623474568283784476193680405477379793106541554142365410582590628616145007589740262097480545863688122054070649169490469676984102428058816054355009191311911555289263502488295845485870935332020261143356636931812194995899793181156610839788297535938232013159786953167665718199316577011266955583353357529455706794990766733786420100742830720082346252678962129020529199823462146377720469916563058946812284487781587533640447063355681752791591720665394933300791859891830324703792706562832096885863024281781415315372722644700219839355912954216194197672343708931356451302953112054003268261195500226193866688795214909698445199566664482027720050309698507340546903702116578717005116147594767328800937143977453791716694087206715884156108957698618836293573747767034245029032720727020520843434517350594373717293724416627612687190327985148996905830777690443327042276373884002199977677896532880563661509057911745098909337358364088355581648052232006404269253295945282953747819736571245796408822499315012656819286377398387845138881226799064173304587145010640250392706939644486343455118304314432940321047692908675045901202261197324684739603808201747270874407867759537204143019605882236728739030170890982558643002393648672537568134428363262686652275897206276941990751619323377267953134981326332485441189448552054172498470278624524026078195555404789826362307072490441528659156061010745800842072601481937002120322964626716245454936466504870441593159899091133626280841394563285786144367680247600334856871008062886468657348239674399898515791760253688796875105765847859560601315043202105301895803826168917070269643365961745421515916156374881846039763786952800156347891472863335588485895080331391020249413734971439837042691734532135081027318307001716936726476723162231481234867372105349060993158166656367495710287551568505649349215800576772709059475352857796556491042803767858587862005696368599039647236146290410055133746568105209853909362417756718482226609497679088311074228871355790349037518853630508055268963545500739243894463062282012254009838161576770948200467915727605944444815944114634757819798578419109961565843907339350128341801344402538083506078612146352231189159617643695066377284336872463255818291542743211179202491210799460004795779470287335053878013398503299042445842617437165091624817127860165873978954280489720120484840270130858444561277369376088569000609113837656095975745719728072964646143982730925856419336111055063936194988252512299888476497925614534150959534376796227637270866262852722815375951972008971115232299055747268262160768674255922721995966900780309551394471535847159482705951711732604186941338674841492300241510183170550456009859750880952602109383245948900027387278834609497751143835341894469170339745799267613465360705550450296149362262157657690737805432919585641853783040551246284470245281180951606880879888130710719746326165445322732567274315932779759555275279865125789005508112042818541674196363539494497561929582225079509640771502220590785681631205304793422176991739325619166714780441901759264959708575526196734768282750361551273557133903965115555321979689019060605903913830774889979539666281438688542468590045306249125809752252397062327899053472543832491396440270311028449862669899078366182248306837302508167911301030054547101490129301829314399307718342288720891891615102992322343955351341136039749603787564239127212266484740585369388519970929648063744805322350131724071336324853574801437374095870108149280843774157122336256310639376092454102460338770740106237757602440399722989674548410494213149358589452422780336900795576240666863391020131715013474997697435480756898161598500525052800470729530835373041536032561736944931462850930031368379638452770327092293238798758913565424625877489467670399411621774765011551211774386580527495045222224441150677810205427844087761332500358448200595512117044160299959425588476807339097323256521749588067367916338296940067100253226637402623075702234418919870369130677558888750603601544754826978642847633682089054809344111859241693622249106153843988799492785901283451775351588758376403378574209798407374409134412249547075367651663106370824526554513324444105170881740377545840788643173196776717184783307423287161411656434538803757740846980424797165406103750994336468925540125526761229685886877552443590567595479611897607779213815988839576215639309653066145631549043588589857129020806940452615397313217848386286961904436579010816415315535882683596658078271545977760858441060890981719805149269641076331303422465314775807567173694054409614067834657774772639616934481059109825689392710541264575076038552529244289327636516615843239274144880869232612714697662282579515935672420339242707997317198353901466835874389457530474275984104597610425792415931402437788547393447826602393891264623663901021596341831865814636024658852851108825900746608940613189116587934338459381150191269086941699135630439882501145954656972952391027694700524911769035541913838926080564983808735001074801794598680341307857965593199125576711691496023316699748646642924783043348360754005450377599702341397920862650135827538101013909626389128565721457475164710828798216374377680476325580987732980481616854414016159245892706825793331771580948780755186688318207544086059407748940608585056393362271186547665136371565256133324985834363271588523584134862850966752587929704471904356141303675123045911587463074306850620492392498408738348985188388933820088028445183943124835707877519374962960436962413742054522554743567279162607996799325031726477345398319792228087684026577609499324646647562771967988690243559110527682290027090715178447267813068341463781540995426669717870817024151807455956632234072904209225581137662274025385572854870288901063919897638032442289659681475491039010240892022651570235864174947076928649429434093648683342432656965373017690630530073711601477250169182061256674865462747482533376893763125523110697215302361484533741183202797756040042572249576612115222306389764530542324432131625531282309360904036063065647854330250435106379765962392924240527942293811235258004693334520765966723406436212704703480346836623492491024300364301463477962223564468545389810250964446485014941251090456942435584547359019757522772340306521855995425763684636691168007027360930683937718202118344212258034879837004461161572458693555981922026305365351617295325045453977812747877320098385796537286130641334783726087316016513283550459372015699096408701050258341232153643605588817262501634358077494840282879063002288921856359319937450051923678903716255096748128768132603855868532765327253858708735215505802420438405996125095207726767378642494955598747986480292023964211182438147151683410973423802453767444161559874033156967933387813670393278143022182043434991134452038947384388509987024818841753480796109547671333313675801587902043726628349195564903802035041562190915473295768304043466523556015130936879261720322350130178455984509946715351922025307530194454084239013315167202431865541048752304527707988493246503261686762240135414323499913967176103209685053562130495913863350543190567608382537781500028673198281586116395703563667507573138466164671817750782600635435546072382936558432152882514439301236563640048841387000672903571552868864192036502994142568792870453112638715407437190960693677570630766359993466835618990517636483311449553461310258827940376367890940103128818790768741033123376347176618599717738921903617308702957173845360960578201284217587633740214780779526539784745893963757665843906891617941195114012241971015563300260039910360520243766858878210022124338540238911492764404879896716819695720379110600831605596340412029024342122622995243433035549839196846576994539187848969271508054535416689497340067931068238152098136853252670319194347675231443400160594596394740359858208421450006462932058572472792276980440589274693934338584503875505178584127904075690271124138179651969875150668945848914382464689128756568593514586918785212103680947674968589179394558334426434494671670775347779331981862737436300331691654582293955677334443302873392463258815239221167923713373693009210291333535923017081708170413442364028741839248743986012181970554032642447311582923328691918358329159966767552737843529191154975160675535747562535695249756676104809254281376488838067085229559727780534191298833157917738711010533603210454531639880243393706256152526666585126915311178536748920617848763176389403336148045888965040373359793456710782835151309516781453419868866799261672567211411568051665918979511885122615485539840780081643667571186394097733068150254458128385440176193530291635734007278517659295147923364343029437000896170934241311024830712124772471679861932996590685469747038346177897469934419211310098314656030340289905038799945213549547213955704347010460707470873960464784971064763941684216620633605323628148241040413960101891311440219846440514987299837784522653460644116557872653836905056344162065779072118930769184553602737527865423346254737911641120759573422497359719566447759792305465625484026921430392779729296125764618625766897215313177300590694966856031318229458032403148358433393688371455652790997169551173055555387626714243879111523597811051635082714395324688085809785926058867307112413365831901646308407513986114913001053303303884514090114957911881122347803662189117893132140389734984633900276152143236808860524251592797820373655893316956959502031825733526725666036505053953080472333623978760564137369742560672633899025233207467512757196721070431535579774669126640808240063951119288810398618659936816209793139549591473983436727687620690271190798713462153923936568047241308883006477826377751079276327796375708836619455250097684555542334326097001757839785990223207987673976455379638186460614676561850509038315797018794041421191492313537777434191532581205493425830780190122145161919046716588271888354740866979790375128452056464998618563300397366515487334968118652290117868664188723883927504415034211630919131364448283342107867005723991400219214982275218948416659642571548210676735565187445012219096964193663865457648810074781441094440300767294829427613002274949084148290020144506634030650065273734096772514047375678244794932692602925260225967784357158965490652486741906956910148539017645151755368798060657563732380990636155595429570921633190768697748320440167933177980288987666475405806809902682618120663301062820949372905048540450254308450073441099466293766012732979997686899497821458643885222157503329852106370454321482356990098130746384318209728016936865725323770646228311405697098335125297363680178540062258411304498074223461420000602954482646814653677976964456243217995705708862493199962614470616502866588438053099240739946011488317031025759596398941028946777892848849876150785046947159016697800615492353255306190333190502143053420130795728079119616481800726034982478719119269466916114091384145657489638315531821464170479690143168687219620960988720875195056550792349789990416494080178099589607288200436118376603913754899917599532265763977988869144644542803547605117758646633775315811876772522967476606569509114726210187543587414178254833030360567788308406485371957700575369886819364855115285770130026128355839813320914219755573856411519775981799765381350492557820157440547189900662807952160761578394759520630179278089944137214470625385336089419287227310122043279416095302044748946563168423559153791668371987793809702549224794223860628737288352066534536015830879006694374492249922110842828825381491060768180816350215052797467669995364163144342566699103988614367581334897797555628664939591269523497997684367343134982435130723350161425758196477121530165201911458366321330208628384599240409923069666751195526757360324271258277773833818508364556026600110739127780894718319038215745624852180980401121233642245531170783256632051880235564025482564872825270124166838956459189740354652037910697636336732007150371904395444131574475382057346915643054698444589674141343059861769988224725233872994542417546566145094328794435892669520112519654025613957519368958997878068145286501229690198359992196644335600137559713486537467167024851355688072524314143508221978287376675276083539363505917741048458955652607613893676053962166528248815107674560301008919422311407293739656846320623886736999560929464868148422486550353714804426609214521384277417117516945600821995444838231641359858299664824772289217208499511509770743577165217960533084166149852379118927211019124006619884689198778186228420758540751226033001186158087703595277930861207554244328337146287295269453666479844785304301259494779174649629584656864881370908173727084607797711081902696296107976014444911951197422428379939948109059477347042900881746538349437143118202120360496553224949777071064765767300087195940629109807386575800155130072835452542795341442154238378062640253380605094048415849266836728818830741284152592167078583414785445502765210577438481970128106614577148706601785987301411486341663501959724952253040135160985029961477377017228123146549350702748432698518700624429887838059676485747838852648688653631442564905140629249713142232756520208267502448662543002625207364894691116837117755303828825106714508687852253101227064596977364214770648134151706340875040961891184880190189569349588492732755430569551354130153612602648576508550445415985979814844073645705059760359170572985444814712524514000434934374264418346880441759085184279482672601888998556918062568626606618838054511323926772251602026869469069131017766046400416664355273258052958764789244262548186618641794968638913919234723126633032589374020012154602887008008600209787283496099219696378474405190485703653305482452639883795550181143738960563512849639789517443643746558800969666187173867236787442185434666488445490487767338831463710857268734103568379979566392730030563286683772793125472200753196300879559667913964178938153523941879150524013594611811132089062683461148789255402792950209650406559032952341932944125972156256710839467164280020203556650432791615461347090580998516478196970299541258545377157023033267978235872539783370847844219372219868934838147146343417430873736120624901189786817972809161471817474107607793604787182299883152833705914498606086062906626926167346250266440707425254638786413244716139191405474228659689218053150052341486284209786208289731841125040876538704693057588141981224228438043766696436845218821593349346409356645163765638004526272469750891185409281873245173339585561927996813739530730594156191119532933307387276279843986668647153766872124364288579600024605356730871972716356161947301183248681273163828140444459341941114949416518196721626171984835811505699853772252934022672971145826657669390155646841622681078586502824612867187806504319306153044511221209980093292034020207289317492864784185277535772853977172554345787786642224122022909471339302500369700741123562299293456923052176749002501707451035304425783183920644864690317025036575715063402724725398344207844767121659852674220257639010662129725977241410398494254903327605482395298771303739914800824058327323833965312169917750825676786865558307269086582734370493066575638478252792445464590365879139513451927420065136036675266591109002161286430716140051632270505785236696133315530909461942620632689440586426690824517194258895110235346713692286410274381338872275114296488082027130510140860643949069234216428154740543178974520982048496534006023569079351578954344257531167560447732724314539694498266440932273439909478134488966480296615630517843354149030237679266291823151307518119644012680510129083858812495927274390699237243181567985428954304545555561341332113946441008666440312834794172095613918219879856175371304787683293232149938323528332717654824545531023924681506245988576682515937855896395001914707072923510355723335624015682234346464110805278524028243995252035124362647049556091136635862734582347830251719630700315500651869674354836704302515460959868532293770585717098653936232846606703563423114438341467524940851759536284891099049487566470155537178825003051752454542124939057937242897495378933013351732289728974096646037723116247593461397174227534612591991776759091409494221756861733785294676884275075185849898154537623793221619975522436243903282114069858284154618717832486310652827493281781110445088429447668416332965782807005132207124767398957150006573702657119456530406980898849477865151488896093761060758996943864777275662745780661538860425410048782264536917971861251297456800088639894046098879946844422385498000448386836040877254271239081355825437212238301628221054004880312317616220246155827592386360897596449611294531099689028129543668050963296932117743473016491851581541418796771518974791612845749630889610804632656975493140629786001319722620416784353179174261479738946360091902559565305896606723385537225745325965521582879436594959021340732898599975024406164237158713604673668680453621129140364591074660071687346120124176126649787958126770486146477849654954205573667174117505522197774118674210734007704123131837468593169314557855077851783001507197199981824446856994891179560972180877551445703413401239568914389216440356604865635667482008075554761836312569879604091907529251049935302757967480327228922284608682290780964428207165681140421973425826664027106986011628935163118649339476117666279601353970143567452401745528990166771437368339248388105700194715604040647936584865920836406331325642411024086996470955971555385217627240215387079882212180520305631639509086747099448317318626691640228861806585677139821718540122800535114696071231920323112948389912801147518091244722531022030294087892316654633465842545177526907903138785288343923664819707820151386595213006081992692861875613444682840776544903888155087587760599958500157884437686590578714074017278392694027529434535195851618313797905058761342941471764130643073304326687481530352093804090484889312786114228936276276117531578703638593178558291278070119609823639645877969437155609264226759825727514687132974986953098419366436301280354122307306156730091505537308037375718726214077333441652912241958774535132011590682097592285988130336331317595306555854938702325925089332721787310155074343920300444464894435154646184941089528638338745655978582096598669454545246448137450457917533774853934727845533044685547709581642473732525829580625142430994352708372280285127399329383632800124696643013147504659339043031347377677543086343354748353574494294019732488380090932133444987336288853967022545880472867248008212164102232169461867665351227618802522085477747381744502801256120720904671896728228116165036848564025537597796662517007747670029997512596167608926031864108190114915080537863286191206885926346784124489556079731976989365001744597698656496898859889902641270948716012089991178547359391336971726831357414453446258135470679779672272498964311538976919176645208191939667339510452482609552123060022511870159528756235122234183984390381645373168151525279409346094985156625513974670626104524995043006866214328218788851602979521102713917263803101524661020557095223612605899747672113729370693895642852637875077607990823664821525872496616834708541852870612331836955559306333584437598766476297055606321510154283150789776126864127591889492764372157405570002659808346855175769663623333826424756104053253088773682240625786892753185772523586400208488753670465695578807833623558536331385261460562002596768329014190233002763358899244443786991163974900839042077565907955752829264202040925884242974174348377877291984585943394729167868118542956382103930892163770724864439321801232152804872001951421718296922179730314946069310349803935283038198953479142322958777356687142333797550826960041244899517248678536511027789886335117445760669771117635450590290195865925251978594702571101999293047158570522495268618193295029578652272301938249583169204013209343913207495925828485032187311010618876071311228660444857331095884818065628489209729450362143381530174584497572643050933067271092709066319342086634142680277634790334176327431622211440642635505201695901599666782318165827202292082817607569896595240316276772934382227717477372006565611199674337040310286631520093979296885228944165964728453278277195989018873952149324308136475744193283531892394396802808244299811656167507671975142404283083561243905458227851305229151957420801716475978364322878333928115925782475699396294508961633807685653808433236445539701481559925452009453318571559606859080038588068941402243702725888928976011125245922092488826437731632089027940923973098287116666903667758948162833611351268333640641640803164769917109108518170434292372432521510066615537250982232868711081945607657313124479536551654837523497786761388683224455172975591450393382945211553477537139829682319086380762487902831828491616190794376878626562692513263137809369189406440756418861916164124772421823802743456122962214597333256606338335208376058578217632371703297471778969656048078962154755564343738018367018496159038309339540290637053279855285922386211447870692696381298479567759640528646495956158243959255055527997120223152922753695444562612959543505478566423184715644924016429865327271540133587814335532502997820437295795946022929740797730889377867938157028083506342852371511091575018949595306254535502217641300407823462478021401950296542491952445212899859688378954387455715504666969982521144337567411720819812430209505263494566113292846395542661397943060132024015020668218030748432368025061873035549371549800562764352827970847792821033106693906648952203756561176523674398671315035008719266360187473069566426285833785942391215769999803050205361036232479056499195511011177995192587145288703289052816988092967812235530486007379710656575630368008602689878180554996909187557499061936214976824859389532121813429126366157341853768503462915448881234773363224980773276202091780876239606079956328774190734922266833272324780926121369880678511575490553796556968826633475867494461311428135089789996566099784795955214580919248472749377206486620126696319333612069752663414199446505237117718928747959274913408141440090298597755272322784988269141549369256701731106738032405468060286742102671392039555622592422413246047771954760116082113004599486184300309271111384492913755826058823679830114145305545714024941559831038816599898951420957136274058848386896553604805289798643602229476264502277225597236545052890981617150987572464822161834410827522627172198821704820959277689430863538828722414216659860730508341710580573101773940725685238104904112909381539481960699303154566433922467543030695076985965637519321775925907473936557373772757699517074313269770663862652148655999166177066875822755273444852891324706805822192227767652318801774450743105350804597168424642322628120254000850877208361130207035499289025445198758805408918752910240150199116268211814958639473027629715064811690598011579506155922136317957866461228473320244017774851953366403973877074356761077662502615694739222265090615119250517085730676138196904130855757248309862542650485484367968854822606995335899396731450693155130366586551437813954525949272238067710937587720901785510394459433602637607612172790895128931447643116033737855099512670607747114114539490372082720959444938176974950580966347107761338738058441485311006008572690585375946486409539959261864982796696627018862278441698466395531980260639897889910278310835441537787137587207198500626723360442808201121189775190089423726003103488221888661960457519891097903760108850319124705336536003676973123017600623611932059545185090030557302110301166512482537992942475546929154349550751968938524297921686736904831756001189609279113785312253303058210339988512682640726377375194778433505835628426359953058144931795476517555008819137289736004654002168405815335595796335892940312905542282837923608806947891866597210410585134604366843883816013143019136660859036049405903872056243693238448472813978295392879325366061688258380212629509475749386348902921597621701354229719167288980219694273988612970791499110315483789952010482422483707774345006846354728056140962019287142670052856870375583554668887417960553890249330364506689871714516486326336065593227063719798449780388047811506099194109033799581391479462270763472620929401898489779411683384379073863965882505520389733546525575961550427447117253677101288822098068950920862031580747835563877894907503489839950264592783135843247979728888134067298604234937972637596919411653196200682451923096873931755663460149123998629523215454812162202226655701787189317934416252619076665925271200151782018528925264953919892820814348070229085050097640389077660506530472881054113849310769427935871574021761802725788585970391716887870260605277354351884163584757663707789737858333989992621739103984160657002175772873483110991314344321428947883587169820372336855442879200796501472847078888313681911873764004200821118023208706168229850218593064123066933209382018631378225346282947000119731676420144032742799583866531276861296695269007938549372751115505786248832167882830562362543384603549297234339296356741065594984354245233942990264546337884367459265443407537536976003012403382180038763308739964329351875710835860965204375995449106354259237294089681600306194626204537768226581676958640881735360051337789237009901849216527270571808964760297830070314865287370805348917560148013113130636561055667116868439954446922834510741652806563200352595477485415689041108691988805786441276516046374599997160037550950848369231583494076138671784129337632798080263001863759513716950523133239198996872177329123846558284796949947687327656925615217697352955713226420437545464478044872972385045621979112878314372175808774459737558699871039205224091316952580724625047554278401990312283474672352157466364648973830080686156640094553295659623644155212079142639464899880168042082213587833705844883326813407234944997608491994893628521285359986532204594439700548634904727445272817809893175550020160583728367327350134619010152375743228451267435051520881204347867010663921626933475966755257351788473425876613083197780531641656786049436448503594716481762007595412161322518122917457830950320277787385833498769318476358310899439439471742245284617771962959893686381893820274670842647746931170443682473081005244091123474068340224166918685667867662514958478497920167353052589774829906938016637152417233492324961827201602676298378286977375259755944819684212753191983748656968355988209340289149336177627670586725765937188746697930485564765738017809691068175714694508502798343358860179571974483545347557762238732707545481733783256251567949773485059524287015878308508365868619356621705783541696524634536285059930213137381661361026976023286308440097293692176608982168970071633553764406714068205235414304367077881275302763227676391200231477445755276636312222415575103147920643163431754303786388660643076629599701869413122416765305617273831053420400488874226526862817523520456783109648733808767457628476434672810183083129026563253635260461198802761144681323054207715948606335414577795354065894728031706241530586236713756424669499238888242231711842426768079793531967199698279910730516929487126718959485988218037744798768930365178686783907628770268310841870439592908045537390185570906367159962740901346171664980338711345158265274686148362020147718616016660653915109608286777321392701164353543588366176656343953335856424565155520643261147606682003645947443664095575290877973279029931259343420513953569932880260187117117822613041213949383158689229152476306387418015336764064096137080482826828453064278442197890599453999911071807849733783065854765751231382367652416118476132105136613339175473330017141018606256394549138773678069456453134705606892587640285081875655520109552272384409910036337679288169808285103356024128757057998328907538885270500142407451871397268993313038095637798534961367086983942433661701606928356896725278777597396625388214215976105589371079922819026482114137732074076910951233647462502334057190388338235024375688716041843691833178080825021247989718339359089027003270271671247747781297693351640428333125480523913453030726764986552992324041808151960086388604734553179434848299140336893046982969026928755360276679577709622397095720133941761112758098662269390202291525524878959617492488828588376314846628246013923254503437445506984133346898917325617918028719123018303073066239467020952874828556794138496058717176584701234385265840165524445292113627757942983733530497450565600831760945049259618639757646344531226693714166231390393080297898089926776768208535255505790081465429030590808756537544914184301191009386648660793932377982575280588323846403126464534068399635580500748229497616559536809758963775548791785609494526113461734193429987567387036802619465055246440629409282426480471348356747376697348531327254123640995546842661934052144699116997046857004486484528797136871709138122568891701971613026746934391108632251846827095564357555755766703193053977903117956860745698872420840812946600089795506049899084507234019945316010839131938276029621175572811989109539089427870076594883561008014516897014968961809069466972329908646980018574474404502325379109314402657821752224694454124780122542019263875682584686736927493871729706018050296265408450844986726934812409292341258465989644439958459291560955591261059897969580753685307201814701750972859945088145779716744272425782185268767066900185007238227011612726131092218040402742532464621816972611266762967788864040224376843486750008628573210293667958118338924596182218895891397805207661180350076960886825653634936215699915604466775461493242973128616583848829333053793232228672746936623117404880270323781936084985068493140923458838551686255548670097882365539515633279518196648420500011874695094965129526189607891867773670936519612834369796845541111857477799434252176979440729253593347119418944784850304686926829747578960500434813121023976136740864342827233905351657580568012369929886277828490286454723946552598096564263451728144817932159378596751710129623617208681554002209946346225955514641553693981324618108961752454693718719352012060246255810984433617747534645159703864230217070331976936370378930383866864915051465112175424836088742455704366415086069093176802874193696931983692289316283634500884390901901976906507756073636580420428482778871573879948460754711286651509727774397648000808665946276241143076732954853293900206341634729156543459357253418958229532094641410592216250146555605132168581966317191555469656315920991261327808756138355527554162417562113578219663039668010456812496994849798703165788545362555097111477882312928022975289237457232072532664851149600297545564330425415077501056340966578006687409261154900378637561816632968399696424310718867260232834427418531631620859282156321300031880522910838162455595969231735678657715517674874255091405074393382757963117551332484243552855168299865111875119491835103318211306586244417818767937899933052380512740240473705992494508433539304727449637446576966682129095268491647647863634205651983406491185035478772279488245687727649356744859282576017383927266640426101896344751346076181088310413041631389971327741415623178714323299893829875766812743297977212629758772625848784174604738402675946191756867295028144107399034790071007160133194310693999923400418374393916738296242932240678713966255409579573686158244776819970835048161413321195303598797553281149759763527450980975747742574173732194763029870878448535691366058389139140057255916673153841530062485672550467006912423673351716542091595838518637993432663524559318492245680409755248804685642846263318864954996640626502613161983549337647928125726657817763195077267738189750224689132201344067654554966431458900085010833690629512464940834742781202073395152229669470947128184879726540154188986098067306964361282241372041179692913440141648585234167363023338337797339389926425248599729984482649113104191730411520430330583161192305606259041467937357666700336771151111755311325839284742305321310521964620103126821650245523814496882127546066491688329253796356529675724532928007794289294398760988501246835610047979203751527568290444424708049207874362325470276301374505703308211883196485286418431414738263314704973080202605763753473412249881449519480050028631707889700381545010922778263693743801793200074656386104539562939173060543016715823682281934130008809224162812555113149993372356668812751886285575718781052248898203573477798406115301920303656525649806592507001332053251061532871111942116462474379178471107291774942269831685124377096196134691221720792586950112600070846784759960768121907677360245261206718415863706786693615090475819165539336783230249836200929928849562593117590315407312437425120802631581726278648372978665744251258763995337444356868979119615238762093130283354277350981645038875855802026150694804192662295348647231240357427764409623354798592287793861059522206403419187936143289031953008406167562505355578542387141335698085474987530204827093889851316395624922795895015120185933540672758823789371115030391933338204560780524743686859110783525291138209639497480232814158041930027352509159135604835821245661488345547145354252625442093936995532328677648586586756543193123793190002304788438096361143739470032955482666907476518232810198961470623358678681270914042453807317934905186898314651062733543619284185863367361284028055874868670265546664975884122958579903833085496082653187710328344046433802362753661184370167641164336616902758408395962288767680751505166081886780719461804212782915478320904487630973591701934106930703969420500709769731782410275843617851019310460702861258103322734817086575829721492888410996734925837684513757312856080854655597173912317088616117648389532754721837559141585335043242709042701432425930995807175434576447351793819814803471856339281050955784564521379339077933497098293423811740090142522437251533637978179017205887514192162609757262046068578439613771416172134775735643575242434174909574381031225782902814842418561524754731399744087623851816653200004455430410018135842392486435961796855447130069264897116063348296583000011420712900426880578042497510123548004203942498860000511730903998798546497251277958009032081069429953225341827035451358150550723899737046784423577448382568659097431078349286661779393773155942505646750962858186262505343491927892895824623205842513879294120080606058363772116614668838152108093331319540133652216519197817743856482243821597431903200839696014315993473157407562009265490662169530706065128914679262726605694452486994305178842586830202836313299041689827979803651467839261026479948360262697069117698599480293619275885817975885311696408815166367651913679873164988234678723150184461470881995828308047210234284064591984134118765326715082290891225154181369118020443473481781532419140025835189732105328065676204939966484376966520469913740682161211731029544552921407753286590088409010495466440947366500475213022372421086260658545006168164778715864726888652308358404393614706382915119552270629472232074059703224099501340030021204498000643375525819659727632178762299235718539925091059052628573212829831614761982636146284798636936617192818009537044509076387768543526527277005390394028586206188169665598336413241501593747159997014208009388016585206598383240333865285493740364389354294284010958259092670706584929404276997453543512718764221983300682334992961707841584882415534461397443091857823829413550025074023701511651314815156011122525040267028227796808468215784465098117353713892026330388613196384529716940660060995931391235447582702022214688898993918773870208451863972651854982514487094085383358741833640514270163501471389656606400833739117008365137440940284407534961344306881023456232350318907895687971141730373566216880520484556926632564677002534287274317864900413132729725608410092915643616042901667994093920168088351398290396012624684570916862730300217190491399011026796392475168415484260972197139432137011662946634248957932353883307008192788425745824914012811062517663153119884433730014989664438793904810930475592123061272863343217763060100847357003740267602501292778092129276240889407080539242223926830146387211239813631756846050869391732614780501942746013097403221535397127328976106618202651140966979676102148533904111710270150200068568589221683707386035835624052368690113809836253372132968446503972604347216081743385589575906778422525457104188523934188978055051326989634824874938345219320110986284102495070650071103153322063014225520771336647784914746729700909513801070561224393279532226510808024972751911120824792996099256347442920503225780902535016403975648195674503340267190999427578915946164826722310375873500845992019198124464492612834873806341217451837806523445884023271956273479878833283216513147739739479626073072817475329256923503148256556291678014731475416498390459548132841306968997626063950075641297997252956809181328287710912762756403807771467376298713472607091334480096427225482559935237111975721308366834393982666650763581107470409324272256618422666920755193478474912273265809866728218062237221301596223817285452314617011101687689530797206098599869546532310158503077841458753908057696335125597823414051981046874108485468252771174886246063508909849164041774093385230046185797519576650866274473052718821691837996392035532304186437244515682799299177127884372413684980184330774086124112066703837274034749842510629629835559841467510876607435715986326363256177826068328043543596777393911654138834160557317858798035217688728680112413528868402916835103431828539793282829952252904147171087658035171492010332269199804154268218808861317776155678877290758592869915184393354832873354795840315736329593285133854391657367664926740214568079201777746242168986212527991702037899908918142012176846501782995285397652954571304003776952190823753229794816473826221332254135793033080427677535812685926263870234831611022023658107002538913231023543803558713336817226335246278639029000489759423672103370413978753446378755846330257059270324895616755718281446514077826499660827538862508318858677868784837756957211695680542060170906484574867360385200337732453051835989390511479561806036599932850412289809357846699168799284092548768683369720030158803401990658277505893919382614945920232049362330672149614076077120459819105134377774536069076240398729252914737413149345715317833408668763039559830333886676537544641099610852379228708481035514323769500588397646665917159061880262134037366281092937030395079662762247956238023271903654378676627452167973268794641577078458682607067357003708336234390262649453966016243677891131547797602445497890151593713784095649138657065321692746469693630896742304641038225398185160019997175676930981115908128128727981998920615325557577180345199933044854460404878546637089388416464698147145900893907558447986817775280011013501549748640515338726768189432032253908660339605181940851496512032182557812496596892927934318877749567678541419044942395263942421131383777334526360468193645687514007350633108648555365088742166666026998040911236583700544021591735077670004954429021110642502869464492402893330207599550333777139791482041767839988509113347813831846996326564350920100529068516895129507347923056558387047939508038002648170887992137754281475079998606484771160338301597104401359344850144256289248978803884587139523711365056925644750751001481498159255946805058065332206000133581931014984059999639087512971768341062192272699665220418933038789476977689357368769732991243443960047881861675107082509667517784491616455530389296440437118683189271391639438405762808778402497677921081136473024328579587374165742889357724259249649346225414093247135680532923537142842130670659862011928213789892246648623582794617619638865707280395585771813141362194836836710901478257731320891534343061543011340197034148131984845450914992375881465517604069153792621298909864803807994846393982693057846190997807418120698608480517129097243817592479011888528516708457696084134071488197981070416147068816141872869341143498498259217237635443287033880833790310208156142075466923663608087345070899050264670526504904866055328944163459246345978511543556845395895245465259245791611345678373483429857823822383876288054577713845236971612674166926930855664215538741316091042813099374947261271824770762447002381724304455642657703128967200473939689714200158945586269853856049569112673677877030018934893383986942709860393967229567957576852084082585863369717428513562475831236685932430739879754707960443046041378127879563117632190747936573490398704964613747390351397175523577859837914704970221896196527114587192121005721885626203492859868224634962081160640108158782070828433252226781772978608976656666713019053181804427186102938866849379468470824936610782130635505574793602381660408971957921495748699832954982019959743559530449374976074432091195220019533251557771740620484263076178601851036295731025902281538891260877205290088049698511465179261640720910537665215817355640192761187044640013405776353788467734981517297684859989817947813659790660803061729003368845737598608819135816910121999983889489530062244249925755667994456993547127335055271134843227110764344371070186089720073467524040766512438905028788791767574102573544127901489485948376407165496971589925375111260109726774412389435624694711104146374315336854601453192216909055667927504453097455749182855072645422561406345449475219669078643557170181855850019191633242812095506272494328113564078619008306144429277090485815858284761882909973630083369527973002348621349551762407651012723564165906001573607068124208246720199556486743760642183975472702670388744237667649493076628110002414936640019555192925797043021687333228200190150385448868512935475824351050826601190803037706447714928170864792951882584079498571212131939085037780187281433965143730646482930668907447403646075596933326426641037056449967596080236033717567119442400563641682523278234150151478054803221793610801845089143158057792772700796842221827494846713706533603771347223181572572024636246042927784404589847187822898007670724907704985146909641614458493914189325984189835948119083565373877200980413475798083526080275953752319020158335053113103268502969739533037510829710610546669843453133431952781267685699435744557492276443711840892903767472633851914105000891500771176245877566299215248504674844261972021516909475064218139459317826984136182713527499247246500200116343817274757435364309126202425002025602475159349267516398371493371502405032938887685123672556650943987457030545824279496499377990146353801189382964554725173342977527654370259674826206030435086912179437425751897409888350442383454392976555096874515976478249219245357176574257287775338152775072974587160416315863459630647016398289046861036573744041938964866778411884871193207993523329051513798902767177638608898465531451984983519826415127810653713488781072547309904322020319661100477645428080519860813618847650016802341323733883455133958549797213529851848369441416656369020344140613012273457226176276307732981749768936964282291809685969224173391840778022866502805554122750076152890484064718666787676802759837769033690057443046603863418624793048298144193703785403333259761475870664567457829972069429232117429120425325921368756498578715800958207871363794009097125801383767398563001347964534659696997527865224488984073686907522865545384950739435589291797080563676037809856172754298756083169841378195058033824006220446120068717670863532804425519221961498331594854102365807910423090124720396388225028734505926416197998023629360134431410978860415959170841366483728671606476550120973606845001562025574944240744457106758300184627940292670569667223381611258780770518463322860766490783665432441914572301913430503910401321102905759894040895259889842533890041140427113685912977471217600381502467572492728317965665598203887078843857361706571816621739780480689884714690853713805477121735835396728044685373706488369739446155074382648463205723005635870313467418124651104865034791254677930342155895044238874792450601405447515446689277306853744805329650676563881229656779271931951489824308910833828261248664113026549928744951572831783297633266473811439312870333460242286078900124278190295082111298564148923550916286633498766270316522301774376473728715945466831442781965776127869677434580038191789875302643688198378277628993388399637696594157575983517679249405077339825396233782513350237742826228335337715024744381168174061214800445317700383270591966239314449944758798709904213069445560541863075481993449157368611907061433672792289703678114248708084612652588967222470256648396130059542944801575175117371793919325281004770894571740208890901410960291719702658759271626684939918260458468814150583298764658822061944293880394149703255124091293398037467046497073652393453493673608981015638639625282889552402243969163096997380934586039003306767303128944143867768202943947487155704785403653273737437502003438592386167599417433848343393307475155078683264150525505926030778764042402953914082617750948765294006362624622515672968761515146423382102346918582948601205786869742760256239365731974697193098817608900635134879242779361488373467684910898141745194548568429072958721060397614523296285126841992023858503086702740501099174800768288366243179377651706970881906586634909581890915591612241026770013618750292645425670912550016509379914018897534466770392446237701213877466302774955218254920442986742602396537093188406552702678541508283036056411616530460052593626362192070835046010175672887190283834691209716269623087096361208980180517861232316803739566949368963869119483810087778482783601677913600012425853557700170169950734263766265034202177574848209668676449451856340319662382236433890880106628318363664422207188918117961610209022275799487661292362990289058859013575756852330900216836965936004324276259920135942918207701496273899946098200612707374279040766757797783473518835077879487553176620599057371822494130473121409019493405749611074266157894722927001868030588283118319541562407024180451608098964681194271668505559236816132993212920995588705286857010112088253631730669230888466564899716426621264349660906804821004453948597203828223232894955074216892995419791988524329340314355605692131110780026251685681183094627390545439052988519049092879548148208655168183547543854800000020645317767605506161727821301078461270058607946296651190937526813641250144346232375214686589009537976573696855109752778806306803715810063561187075938117097847003965543510565534161486376058727199092830277871974040071702248775155998240392123292206182597866199727893888152123601255721638370616403968383650823059408461610587882023355709318152751650829898012579436388338506208815820504688180868674736342929157575613013573477046309408564464211933152712918218352034756713104138268827741922859343781992433084239639716866849328789818027202286938622296548260425330899465598658929073287253563127656981439908530451384348950156017385055907201198354804462792493626797848497014093817835306697542850383656653342357185843682312051383061527220430483684091612504850840310262655071895400038441146183904740990275415977108598745737903606325990705864422289132073594893832960868313794142021898461551836918167731460260041514293917520415318020581887162699518834784880342161876801029833449593875244001668738895386159853722036376853286183160628507280526440759318972310598503520495184386694011097630846268784960572244050275413264639088047034284780164346647781074987454924712060193240745711487524894631316510351390260122462536769967498788808976246759550348225717950987626832607702839645564851552621863920530505608923115960043734473318810104012619184784892868781032724271269310963608790165628691436683003605353456585826756723558634120593497573874548459073329668752784122714879110562169565616381484423872614173429335738512249806738593876595587849184072829112971321415831836231139509477704785702042153786422649540309798168308562098510830153689437805523702491254218102911732420473246163335571461595142446557920483181690387414231092889484758274599887510549838642396776951908308452671709809804207805329914353738214996729281348431219456397291337513054968554142253690878882870331898572082911267920136223999806844493270603699938944936054300080164123845917081403507344948782198557940300128036299189181329019321791390620174493777589259263282639882997142171775556731250864696190108654523528941234004291806230481511596549739393918906253527095680572507905307376330337472308311563992341536633423760367831380597546203414973839629386212199934316387832235549658081461335883857121552289944798358943768687313253896374477274473963131716586594360938672270109059409569773830365521633818556133888222208858439026833606390203896330792109273954141434478111619479264122898899039752295362728839449418255783578816874065730837486850714907334460379165049610058032808404592478808536404854051838534630592475653314888120470038594921987430048132709817906593973783307057869908693098773163289989272485252659364547712385518168285790010195117595485795236090069116493350285398975132452645996111160099139911028924935578449613673667230536736726852055313749961131816336346882409682186412906061980433911932204244038704967758016783459691823168153269162317969418465698900287025345539997838649863639386107359262630631406229419586024043601303240438192505208603670444561792409372279258379701209667371516956578259865623323594414012439409367269233569266245800679898238331498678038188668723038898977503067524960992339003927983138504560866422156627044609168052667620956247408829291937527705207168284184430568722535017744220230070186804896898716714610862267293704480016279507141300721529627420337367384651000246199033972994396442521709425604838426830023542259535301654432342146662838216183844948642105819872721154753018131362775413313543839135129563372492224208688579941381650156525012386257044548595834939743975666146597731389583365134380047814398902075547259798107062176326078638700342425206811828390129236115412466522767340769984811264767879360901278334459934832654300473825869167037608457922172474491197391852029351159876013226884924856389972806406650294040330802969681517219499293924922807703312077309756842361340289241372207637119887078292538487283977190541110713011908575495934424336563757912568471585711393755185781629446048500408721282631087072707618087794412205352590956836820262554170440080446351773788747003138661148672162668049075598413444879738477814841340161136222618056349610061751523657877963878805212179593698645682410177037126858479692386015944259617837168171956086317575164221444652941994214772173364405291469299686741536135084000813317919530108877394639147579084806309952337171326255991290091407210507540993925744696255343120125436594797602814055877926154042067657588338227787106002413004490707295820747683565559186483405551379371727506417764808037796291979901012087711436240877016174966376100719131322573903333287832548414656769118366028317630645339115069669439541439673797430754647292463588414457702907942120672869007999634075725506764902009181333528105687300614061089341867186389762816289097534058257006820418594551185359021545937395968831236587945867794685184912379062695188254165335998273452306717177935479964911464749689983092217692639543265966736931615311483019791789257999225986880833624438013616939413394273239335788265807948569377776505936427840563656291792316782746894034006908173870403999231285481271898822505953562648316698224802479473276833415629962115888348406242425235706854208521401711652923188906628589675329239947337277894335883308117384128599339521534476898078700287820562419017089348408063375560240213358056291900551422688943096211946968768270116369380801975992361285339334611359618637948189197756968042278858857866942497972745872976691510303986523906124164270338791643278423022500875214816454902248993167917695224525547516740230663549556898681808644100412226363074628646592313378923845405653384227533263710324634027686563040686699991637112515631979481207404117874435988781561628099983180259935981551981031955358802283511132611562769612906125256089129003186467628817559239527988176584963219832775904930655365927385744772150963880124691292805033714855889587742544188454844370506749295786144523689582236130219002173027700883520654022587996744589199298967624835185026393508409154951651057636809697948474572182281555314421692872795630888740216529796983666853071487401644895982363823785563791078993884855847436573935533447318135387510163739718643711805318004768105225309254807078570924770438959662101187689925349687224749268355094414109208208533090365394814070420772789668588805874044900300744038222494306194533934721006514266592019760305198962720392017236617810055608613416256663179028534600196134214110209976832373292698183178027359464753205637474856332932821088692033867262363366220406211687418670496329956414431875883876252097334924627005601232526269579576044764885781061914947394372619025909376870032687998331580663988469327643147580264907802375333462679152108574182527299804084427779079127765068020464550096593455664978985506233007768165904355031350883093442634767385268421028518178985932126790868219161435793740616876420597692130854453062435517459101646800537413639509655985682593594991998064634415320861435782251967052924996830711011120367603141652677089134507573950795754260579045031570435928216539505467545412328608827841518869292550932271112910640902669018610830064292806976396375614748122345178698512992111972704363623798749056614484369846159417142815492771056734680717725674785606516221157000781336497455007191742155950243959569813349828447840202570839240455413028044526768463889340760258388022920850834186988413714865590343626894215955158799933869107289341327685296694631409379516063372969452646087308966543775982456014277118249733319201098296098865465529243982791666101264378389414146556135955320350765800477741520583905992242705047007326190520161378613229373700455446367419141417982798154295529756291311512800509454950311592330318435223474035634194962952854363659554077751251711554813196760629494102756122704814331907217423018653009629984486831125792400691319703540253695998301520293922521125202860484439137273690716129546647972968253859779000465116507173896645186891633164744539593655838287181309879105009409137187464625351675043132370642204039975767207303786265688211510995105568224266007416985035175162287598548269786422479291677092392977450842356143476207903912912964923906159258276950088046803370761414642548938319910016427750743874729885203084745689531422447215648422090451219621284634520643003060320943279937736891774773119441555628281706098253288723975139085816713180858614127406679817851163906655340184163238873663987339020367599346714777781680445814945885576104281582120657785174827965300381097232661155405135862417073243030980427623677528205673110771001608416185735325972128603289581380455475800521929100399332077170174907950836735279166644649767383560218047758161533910545346547349725783117980703116581289150398952127058820685082589669680246821205437059971932835262722409147518243141307073846471943020606536954028726781839421069116601582732158160200305535065774908022088301846991785814751088789779583134267538360969875070151596390032884075378713462948489851297949591008105474044044246939773916572584587259565374429557033823284135828036813747927170364102369244020849095682157945603005579872729243165713870379285255781515223659570964273702403932869148944507510892702305504009687671005675502794391964190404101546158654236805976260222957935919199051596512107702258748687663832709896729073921005589890365032187721347791007472226847810314384545840732187481230829199482491819767558302852864365658881180345870469389146787624308120629307665598569069394068179505893997502689817056617114078852571846933624329598479523216839595986222214963203658004426174833148141396984371991399282268679233145236950262099329988787059185597992391892769949089550411999864125289972914610532500249669962597714428384120999037834864204069776352288255666062627194070674356500546928599496081665702359814104237583783534113746324624825888940557545503368648254319580996319984733795309223964339785988049827616272742625736925100710630386327478403127213297439348346706198672094406790387856525130859727012589627585598719887685963248489964713040756487707477249953713073240867557542051670429333082873563469043960414349447555083987825601655785747607136805218351591308721966459204068043933008681816362840032169900406224130318220982461418884514295414061839653988434351213444277689161108259226752202107199027932159639275825795253136558917213969655306476826411505042951872759217346519421036587656519836308104131680703774084909689906274701616896543075919641628021216743436859551260687627512862346444846861408089254165477692032212002221990587539791265052510182238185688024432724116442347079899777687368034106971044169853981253203707143148343145975877032954530458522026470208025177465788496581709527562284748486489581264323430794831404424129353623403177842117081741086675802339828918913554835910865804410994447889194309281070591084039936099400053149052125619102672834701750315936034717843864290093660924430813168248448757571373340078882582213327632091861981991466011950226872526939982289487593956972869362734044146214381093226749604380829000369013290339300967743378994333933661424786488939919443214909661298146851443046268519418140815409104748036760095123422927001901919640527174377736527981376192923021149907956670111132732722957174181421502600824055297540761961592152466985304323535382510604437948621496636733584938142354426192684861628690073960908335390767082475979250143075154658025518526205721031308732291075256342895594433984141695574684293884491219299886673755288223375032794584057596260988056610449264811022791935844553437069520785046627619113017473492261644704003799535805641903323872746964655209980909098421928582346528562323820986407593409722873708508876847045974386231323397961516369378667758768271185509741378071498756153659194467258777505247323327330925605575845987550528571828712262291844730034509135844605920019477287742378238274116977394168041713391297009052393514850810207797479885698331303464627266363486920720382394968579104583057016585283355908156558924200746609417862323828098730221942065806371875022045364880453894849003793436596949135589880149668640677107876796915396635301773193344547603707284927900292890142889150207708972694660269768622329064714896844956481348758185113101207448794370429195726620082248619524632820891345235792567261663654836418437069109458394509884690123633378488382454635058829762069046294629700509618928161818541157493849459668079551720728453128571677040753628436674206283473999333788548564607679359173815201005118513568858625380250580421159440386539790865295594074294290278992851317995925885875211615402648725631697857884488215097373343680934886601733861930894383335305447556566057124045346990992789997124113270300729027494010164864684958386078417320326855494054951443511541175170189000117735813281013479489581830990630944743211931143753122756670782646785024737025828699814989788274830591090413976739582660900196281052099502571793625371665189755252027310335343302045862725907906889917622907807443319808999873262593133362050201832959085935687799432182859492787989583727015462601615583709178958332330612984466907552758916347963894310756519618635185712047604786665364291110078487234380817193991776096976236483354863892887165413046986918756752635078684208227853662575249299315550188778718854496155287913790777164433383968583710947892171964646792967745316440030526671474735293923211613626116372518449751833947882142439412363995748874170022478725995493197151012906029250309705993783415177593599532453873769049089041171248104539314875967448596789302632279459889186144189234228409426895268883406219549394521445514696085273297184909248827422080838484115511543408821026035192822377454365112768540610825388020300029629741991725347585520988012410513165263648306435098311191579715065626557397965196985722924583634358046162267923595846557746047609701146946483900693158761258712897575170175221866777014262596724510191624424835687840184422572832906737512459863884200822952294729422003158005071453832541350930416537765583491435318195049048763065847495051837884438477229927015706800062500462221187822744096033811535313521742702936571504908506496694230118744815959755600865587046104895942402133952435406948551126892818511625545254931014857261759379224175379085983944488822261634042049107648917998748124427634471222898243769854247904900719194808949460810531370433578706106778046182172666361447701851203195527611793254051838679668199572260542977638359834667823581533577423146524162872483788552528966912092078802616044476490813433836258946550134157253106469007615457129579388933799947816261098507368870023526180157784175757501376784371513436666383480692619599047868243440063794340980828218022654879161507724627708177647929804745056816531377450262656951828645958074663717773457333248444859795922835946212477729827323130545761621942953120230019896543311110699855879051490685972903774594578856141283460978640176295264273788911138785867770708244211463259020587836208833501747932464649664877546443226354909467383681651642935759344852796089749823764462424368400983955237729212902399544960495411968392406621063993141938137922199535263257705241602096190878021745258940899288847114818127107978313894568507063873606583599651266714077596561654703483063823652152036820008858382134535523919356754475618901926374717606318075808003374076065221803610550497034055512582989097565532466642653346241755821621734572352182017477274488524173835672534291361278670559360735339000857619700353833814172355720136192745345442164051851192635499908837766463346745407190068075272725420750558385833292811888649248044006601661586526400470221459793382484527644339200485190314894177949464761448744415158786693581825741952352318087586196506643074359986962374525225844236661367791211038668772402173294981639802475113718410535826947928914842151949439139166376620461729756617227005961514484782720904564720712702065619785395776363990974746079643337668988029475946124964426157075585228081004468796725117068158667754399434287345116946676759219546082302445702586407893101764374885896893574364189846383280439553838057953810222447345334052874755516759952672652597094823758171685231701146297054686811702848200827996188366142296424947782761725101707186601828953590416695944958549133488012019203135062833003707318918224925018234082745541598249591447978419008761239987733468104695620656766049706633518493569526138156255228495373309484044702189712824157127068265008231909309670649431264495744835888063151251268872419774148425882820064106737123854642165385058063727020626944897388690694189360891019013358026735794625928788812167896873264455689259749823838035243938063088707527630206045699457279588882088545864154244735951135007707548523068688168117069022479074748178056481078336438698354690424022995787946669437844099574101077203713475115316679459987677503349082754269502504604141093826824961541904727817288979044161092458361810035282596234821319206437558908381381957550609867616106763256690986874908004163636819372323348305283792919489192564219190565342681268270980552292812215876381618815564690855296496239035584222042552027591162214163338302249554681978055039480337168997837753858988075560390743977324045687216973619943406050382237158214589058330738184465819990556827702531964351875525884644973793685329227707469998547176322254624812139914605624821730248965261821801624566277518558412875803167796915281541188316717800181856875165754629207267228049510471108492188364602875695861254778800503175302082983956549320500046859990942748847615202986107632630453026767780920802549666212293652304376151552838709014461257290309894437206715866554990640168140669421421883535327963431655141747420099517794565586379401435507955889919179827761740376913101991934448831271360673637253939725358412707282032708831308042410531057699004722205169621165079977446862674756037423941876777339003473516859910130782766868103006631193022117558975796663477179396868066080125215488545015138955404541886780093171079485460637523712564955546412380313713220277980769867302325633846300698101946400463839003184817538531770098355077148021934176606376011034689698955393266876504770636868221879168732163910783564834645162526910984720879507635179592806113578361475420059682698818967146710045459494647997735119820906763995754445121526676763834474517282145993381346187286696179596695353568870838335424508690115684798907832938546128482521092682605947458539693879202020261471278361726366982475961046738430195942605675124795827828667859261718285419836090863497534166676827737302199902739715095372068504600505117911201520878298284062854696860512493754651246982324737028713643748466602845521254361876987158845831878355413162340880568716283106506831657807094698758464066344381658443143607023599135768585854245318835825185890333854610742363805254292293847677947287885447512869565993481069669011905847585999159159232013337019034994910602114767698416439317181691160635575388555436694697605262398035302238139323184255000609983553551598482759427131311602023588915328173594582732732041129827540162175297593859746726340441123178418433394617816648178863835403217203716900619049324969737826295555360349329314562349971303146641608203348870882381314838758487164421468369009962971651533091835958019319468207438381634203275550696633412622395020130183150275667233762558483645254499237353986011997188138480776713149643069704243679810448835347739666397825295402096981379069233429788015209316279683781049284149974519638618244780524834799840860416908471622014518533943305290561692349686499271581817380399374562088412479407492518855225797681685541923056369817339601655688721325339848537729106998206385293003674389954101527950801439590213701702297861994844159553770501728327059940029497654701794089966130131399903120164462803383163495888030870140748797931942556823078927371941394049351045435657619317639327641462037546485617811274170248278168613807923471250411912511817952433328836534852533123198767097496014921061033721033594180936978082353508275248622692639422058971336113088994686792917201129845630631895077249554220429394911582676218986776921236520627137329129746216642230169892892487994967056718646488653022416211873696934806415790260016819747344190287596795078772956578346273584265347716965504671750819822823643102251846586233836480402540816383887317854382590636459025970440514167609529734124600807908792651792572402333842009194196300313226912518546068918329066925535124924203489346910071267444921902129831632639880064654392967418803866062367139519193778213455015684876980971636591932264291087951859543626905941802485213261401037623180669789327656442861501941519028106588786979084104291444826670306397572770222955312278516934485274640748159939287532843110761964921834416929823326104734731699209235018524709450339359572280629220788740343517257917914360681184968219108929905112742134546444425640802693373045427303294237534696428051255479690210661609065574930474942445559695939041116226883146022495453711151075603156637087177546017085386823213761238684746151450220093203641546508162149138700162668309657160252480718598533530041058057460016239400425026079336089677918797199044764637876295181870395609824919444212986603670936195058234644570924016377604735152041262962192225736072270335743399249785736613181889401853799984961562257617104394339291684316571454752201119887732151240862980358229759644602831570556335781980415362657707113701841164285703431456429779777385013698263281519032458237343227478952274482606975699284201619882604519126330427890773819907168813541809703082097471733974585916676962452573267108495203008539279762313769623840362730135394123184660443662039771907429558750207043976628254253913539083319863345882277886001076814121068242030490416966428710803231886533105524804733140519748370474357790030844375883339066952110878450493175817554887097822975773286462640683954366647423581808558347270170194257620556750727271661989552542210797468321111617680926046830461674063735220598110335502112322093829672591267189786455482010122126412106711085226883039793603826760595532055945863614806339154657492225910085794591526045300004617091452542498056081950434970759169707269716207132191945698768583031855515211396648904606077124340294375324140538338356058328750216517438981995828321573058890178556053203760574725429691316426627992329565331901858663470694942723689967967793834554272173510760738174430923658590649799458916663457843870323071092926256322796075121978644061455058130927809826154508485912888043714211267606782085902938393892617924386503660356034461408690669633899789573318138430343411352959683445275124210449507062554722034569259230556716190434825918604353796243170402116690015592928681285822855534098978588269693355312266275707272014491855010289794431261438171390868802847567361183657702614211907708558801744115286300673604329493590269511177826239033096716478022148836682517900219961176513052819971650104099719159075160835148553776665320869103172322753283771632481449736549278299652186546236860361132511524012700441091962800365056366745523217779119179721744553778267255882681376153657857526315866812159158723785840910127541032375803940209469928552471988480357474955361449802978120223536729253423820470658295709616369749414334297361664608132952063989182376555989209808328498771322472066680373850226114204033364864948298485752665562699462565478081781896000097203330452326886311025615407523799928148191158381133456554465400383200025100928131146977233040224596930742670212028640488645688826937809547276017907525897079144809844685584141526644893156763843216570838591671921990661266348182228249944287719801165126757565710104684321760769119588431698789540593726349785839953007384776541842767155087503584179381601298777313549077238939729026717537719887761515545575887487862609761144839307434102010262460618292961515016271609197005904137687344616410002624585248019387036660708566249803331890657668539676627546595391340606171664724629886747820111118129334752845718855777006868406624396418175426080859488733434997771955907907274176523161041492393185284769834363320522441911601969064265441846721923863581087801164055103901148219497136915131125578100379971185836614437881764560761269577502219475877706597311027253976539435659495481134215260894526627251445824217305511791410638542076334794747869585575953102633431484603704279589061631598992917544556221530953566519841984411837919733313616678783875281336936683402041895276624551570956040677154317749515018856368038562183568507191200119945005339278122319084713942848329278806258411832760771717162922811002528129388364874309340825533673406159152399152746012134454971053335430385938035419146883666380503866381771409150188949565229828683236307121383747662331095015083150445220839276926129560469891216500913334604964781247740915061186847617808647635522972032029930751233614309823765658750441280308632925837251086568282513996235431580502765317067066831340249354020079991697590040626093072941021637562987911746920071434027965239417280897487447502926539254132367102401091840727636934659901011981657171934683565273009958081199499250432656192631565702704071195521038028591493235338234506561261139602456870852897020094604030779981187093682931284834186256143302352356030187182844943125957251957347312798969510999863675554481500404132326622021532057693557546910885398999983518891790548116725759531443008891268064350133887938208086034127988226995484721916698820962525771998916745464947168344621144732903498534147184862525363273464888136958542523133221301811311989312725032386761080192308820336759699415458489186936964376470699582452938563054188079484297124521822008499848809528841346345546838846948417336156498203962428426119151519699581565722336653616963913944924006625476575207790935396298174062271608631408094624868004187197069775153432223911661800596795592470113869288491508383362412334733286133644772544452233962413475155051295865639042997065449431340091965039856701993246836472025014282011508688513223479063771559597390314135980419243448952786725738804649112135489147672417455994192153029845965502157045485156920989956788031283202076299396599131431040466410355996432705311505347376606650088861170252442471072706772636732328511007664624995733317747130382684003586142077749730825328493812581164563194826427920030376957426336208039459983192516698321445565830472821827581993607357623163678503820952747075035068525024433886672174343735582786640943485678008805229418252660330303848590304521011687544366290671315141096861296746739795179442968103167881026591527378703783616484584614517604546137912357515520623219364603169365336691868699553852859893234611516224911571510670928167617929709928004720449334563385846207846021984840579480192331705415343552648804893917722626246644065525334550518339229468444804963861279353918270948891079112320773509024671995891425979097114343035134049763448362893426778433159138300138124757376380776826441916059811447427787666369646734727770958391998742926689163720051136900778899460622572851715367807001107130209672058045037898535679314272499255733809523164014983680695617025668358107313241723161464102365786914366045611786596583788532883475701234459085087687296374298343912883010084089495122611135255003669869635351782153099354325312986183886409297785584769506315467527239607581613572066469906806509282411022787642747429296040722924894650547330121832492439084764617497701427888643158007813010903383228417275256736753665596747325397373944605019695560605466031418025417570842478875051006782690675720998122609213771899083252846859245797388074681874687382821579146543512887638072264756565341467434574562799542792189987037069492837878421907548183891372038967336948186391237150688575132564000068686868844895586694947899557447310367627936426053817094971491377443692473923101838086245048162697592608313675270064623853131019177422171676395326950116867556055785575923742572749642912093833867522119714849418529594484328739839003112893557265211552447454817468125510235844835293838583188207926385919305168170589573549119670338054937140383455427874556601023744440252354299963005355306407288778080840933817383646277345107909279122540272195953046332210726351576832117553445331189040926178723281158603531697702640209725113635502853604874690298937501710878127061121355999865873732473955498290200223085096729625943885610066389746150959326230352591628742691549284100244177796568790826237234631007705497699909896052121654193304104454642915472399106933324756688059929897980324567490746084602455134431744244866614259461645638638789578339186373741194870064661476584101301379269776710109802474025487255064520601776118249927547616329181331230565120442000334412895988851031022322036415737903048379837704133949640319712222618629687540855101266840731841355490668024404443771057991654624709391385423748537708119467312767896360233258358496227412295537678625025173861685009242926028223386510252866913992089414468988817647827016558857283852747777910563361075911327360748224595474514356070084840621672825341799540995331194133556336478724778499974008676409978429706172518432357291930721178518907549221442892849810252250670820111466584268872420058929778512028852520027473839713304803306269647231834521125862848989100521950479154202034345933987671235753717896688979091492309027808766652901356968368556496769326206994333336340751320305215759631017668679756014370210550320867277050568612377148989632974739926384032015362747888582168298587758033711675818701654011770251517132817505140760106017601917216611731334591113336648091619075360320220267904823757363839159689748760395654530785389128049541169519984374547347697313544316907469192129572728363434707564321282250957279644221790023144476032392747475334159474843750310399403071800232958552692957528695457040904895324311107492350381752328316579232490960629684628896932936032940004264652589079184525749037708978230227058182635649652519408695729366479687219705728456338007725598503248867124974935926948849849450509688966111276628555478141722750382644567579455521948587967514913727731025185789812264864723815262621363148684379797734251672532764678031267337011814583880549966774305563584086618135913399169331882456997482621765031876727372248743096186938839344663516013712463577822988976012055430458848163237317478638654063523225791923876936531966095808798738118663687454598358494729054707872123458127519171892358398037957002893602571256367164897478844249850089249572380566395464549050892427967197184106434312507019166365967534578141857408228694638910878226582146212703297719810083136287144998279902926577858270258950945458186442362565478825365461881748751822326533690301004530489868943533435303932500128241627717135935143888070158055664432773845964380375801168338198011239440959037210144751829499463455318448756726310719640739761767671506704049727555860356670133894846106556314408036119899962973843191743654399116298469684422267894963923131682278023427484325810777452759465504181440069979739896185461274665435398669173820918615086749488384781147894983164459644745023031369374697044030591679593588163392539897946199679135765665107950632917363945645662091723684615885037095481331830236325385698854753565132798770221923992139364290563975639600629099557490661841253408847080732462024108638348368444676225323712616999681109695210290055908002034949466116614168584543533045304623291679600747530322601490701718183530712888324588256331698672486032607139992051097707416676129391513597238948730799062220854009670383137002801416403007856315723314270201475543952557169499695184150815730899143907385437257211405473273159714558127589756610723770518892773107128309602615810743605063346758559016977918794685369557569478157477350610859710709304747896805780916242545945993605768601803227264212921227002480775227821704032220966943103907418204575603922628559183860516746833814471412293162946304615907852386427969296527116331763046746312323173733894740351351802657446835515504721978862019682586736517642305587421266280646221625525065965795526115644591881040684121449387325650909768824349645752180578339745832648090196479504865224715006256898524221379233992029708768692319450169591722385976946973756896495384787382310434599840811117267515389769901390419766451843387424049149366580890282360383608041922785634792532913073712069769760751322539527627839425223396841966010978514033173178770239444445469334165025238169774758718733847004796739720946280811508380534497668085959296733349228302837674308113076063798264215505455797368135506653829757074780574105889768946946374358946557820042236109129491343327808606595461443930776679287060303451174937574888271112270978207953649081937986986088764390245570654048635852760926026279377326946806765645408393953740549543834963383345419573894547245294184005119652934002007105530047423500566848014979806678595489959121753166054110220484380659311456105093551257318281066897297421251385122878435003749444976688958305840652380140594931167968414658640125387176711781750050281354457586488811768296716811594289272457886623159890140204540307351077082135367288061682596063931059374543705276831410351927736077085438587138929287616408811437640265150273730330841185525084424450829079234973852224900772880272417047927479095045015482397090200124718618628424084920783847916178872194545725202139946627989014924736665826606543662705360204477508220037395678138553147376576046455016768457132356927727993575454865135163763813471928372261854620954578207884973042285358595229374065332252716864017435492825450481165693635497605674483246735173024333182782935550148868649546623728508079516321618260314085855391431451055464289367445340503933827500634155501760220068271912205225817021674697469579267949076480219197451773114185288997754602562112044248600701957321315789914863017326828324486103987541407228238690079528659321290545935514682375325535565531452856207694955533656607725504198388853324447803271946415903698353859681515275878663318981637728186665594765204433825140105685970493539720038962413110662801218540237663902120573166304838575149501457035843770521394869118509141536545539942390204257481596203184655175349042699267634086408280099297424856487033109098452889739741314651207570222191501352924056591734210955678480767657452773536874495858091464094048497693903630996253575606495738634753730841363201749654781440004088679721048445816906806432394140223056495562280239511926257468843056301697360765135498549362864756909348445921477500007285642233578610073222653876703981005344501788870597862647698271091713990856486207821866101033115678625361613480370082087731426373870246783665326305430286139169078414390785565007932971466292965052366485515598088319551963135248514466902638885873263478531833681065213077184358528430171485292085387068542982437880899153107937188859058869984673923993220107942044590173120494981014928630561100755975563718792483322801637480972666925959042993537079374665162040555024323381740138752028730708655257832545365693696093566415146631559710351203407099580965107430401818324729014497957399440005777484472130112863834507359820624921938692907941067594396350262557748752404436213640094476973958546508103557946712414517078054096510140426211898860687977688383874051296468956059109414374944861833955822517890441398115913073450235104338991546411988936892585916087296293391387152766636566117814818059904877525095562877045878200968222271275000432207200597145649683579884266592957882685952879652888593465314393382000250814670884263240328588387971989220821674217975575489749511027737212416793686621227062391552816930571713064957808168240948178296338943563733907583196623108572232934492211923120264781590956802486288677664370675778255007514922028856117839015846862419458876381765525848583365680433852521831104145709305820488956482231769480443743903181729891055971326633086702449812686584544327354040681110718869925961898493597822699092160070394630646010208552209881960573325790571803841853370230310690009856911641086310189175791011940672525654374885603031670126704968757938336157678425575409866411773707271241667300884902482278698970892249564688761224301527036924005726165851439483410118626383273009029617810354006575243275861405609877712521509369069111951997952452741624471595577061238948335497510266952104856548208292540604140324651675984941469741087622555157832134799065025754256805309431034858199570652947555890079898260356055643173058205081043378758379733265098593553736611247948557792451606678599199825498122057752283529241487681590394493640551920277222554184677523239863874322909499066322753939890145198871027233434722944929018827691537248296584887231300865447459513636256619858024673289873659509430882419779366896505481713340490487157770371681421456910988798303274937728083622555704446238514296207052028858469889400041831231095465679986806079503192856309123334121718682272414574172792737557981942434480505507577904447724502074785127835793011740110128326948351897906952527548294005786932081008759463320803870651414419354102068860448357894715116868589909648987751814955249291345291355470093090570711612103714018921434566368627120827337381109676818863843933302125280814339981393087617261235482518504075710596782019531648363071056451762058073318505814350965440467124930727264942932837193998919034541405826424391841084836835150503342330250234647447079853873341073598361063623385042372722658749041801385867282704206188909817368138344587637513948767502451576248852492672292439493392689663544563768116053274263560975511410882979028917667769107818102641380369267699631823605579789139898911607290191578699458260626348474576998514525379116054366417464168935148917589553816292470612659788714468622709695061053657453965644213159260398135734497586807854678343062122892874953953448770849554138809950122474738075607942071428924734607113222230815785722348855097430354994172042137269397503370634815309518317000672339158303995840399674831607681107500088920516257846839236612197473646263290096420954616608176249658430319479452626519722460143884190362797391002650060668152464328340484775828857518544206731007910286623404499446455298433620942007214487737048458801735844665399638682071422427980839418844396363465344427004034829676607673264234406517133633099981992929929537733924061214669914782323270673884032994431766584208508300424480935832554482853105964281718622674245920500677636800689499557837078367565608939250134524118219063227578336795871350301454632132214744084093408168935367275289516884787894077607032770387282748016454013304253110630392738555407154987742363614417085122019106764776877610871650558624436346350340800534841116144274292210356781133799285244124373782823111935894289705050604202565567897573371711352847953314106564882871039417789043940270394682527078258807757327029847644198496584412841092309400094018733248332132242477177345155405941480786914042995937444382798027598242053155825950453237182935759464982454867811214996817669164789040332164450905282045558516917308969299509787192946485257349799041751416592859444996531398294620849899142641479463757267451791716158520666788445868316030172955327825733992468185671329491861396912397388571533029410635692980384266549574200796010648388230856195212036137283918137375680558556119828259488223713752980080387100543389110498194210175923584321085559345029671149773084406411199088083878255473453540278259355895594649669619149198737104346730726021983346816014904566440360295871509638185392275198281371556115152314904722964673238259303732568653091632602916966925191120943323896550665162644349814769522540713615613820360459957248696627680509112330743563395197320087290391754885965992346321714174240632784559931722815179394833583099717335756560668005086420275450893375164478354327772584461841934342210823767357676660727503410526243743719022104914249625086670608596126698161505230025093290396159757380832770348710086117032866645007734724245290381830642980058494064361335870168357694035686005141147401998575261751825500574692413643258756289632101656869089914795091318602938969861770736659359888685487051604601735701402153828724699712357308681110686366870261766439899289387000254884124233595113272992783776536284549975556340151442123371335734407447319757898116320994313798148199301824324613714113995023271609774714806819774889079063364278969881289808830333504540672779082623107672888930268593616351916382303002651265021252484781897192648629955459844481884347588501342285736185556862566700401742208186653343297712277997982784888748752722986015236504593441784204291195038295211421125014022858309640700759287037797603246830927751100076834022372929053572336009978214683955551023521721710539616265236296563403549319082012870380283442986678493760700124745461979216264908808413269197902068840098006284432118914294849560241675784496972292317403409454398952365081724648512500833675235843608175887176658463413108499933081498133439777051358379935486807383468923846387746608109786852626463906262362584020740263156361048945687516216269533259882091630705312391656691586989589359064831685445915102348961767415269041845453854683932999471076652804051959828266963069633825756782897823389828662705634031137306956934245317314180254753024127100873903242143085353448326217057277238738989376445844421810980768006409369669731061172720680416157653430863977023309913200970240965104966549129201210118078076435703863923103750123956467923206640908769141961273040122951608688989717175397207949919741966298775464513019812238918096037161383711940396723473394364957537419081960387211261762683286638516135364837489095914612945004425279152007338202054002019820802780032509649142778379740392925295854728984844726365326834603740910502776827111967316413603747988526909146555307891295789159432280588919491126354673488124290650874956758712428225720970744480562255079887177689297343409717824436516767502990527548573329067200722874777738923266675508399634565853616865657576924125526608318818246465554280487365060121774192649569721690310777261824832685569865006329346444000776519473436392816337080064281918962506465481512641961427770666730252172124608927029325093090289118624286014486231169182336702323288405331538398366126144837285844283315138144106435185258684940576926092770715788309521207467783346273625028865827534048043682584471403762559126534209779009245159080685199170327735145079357045042353845822655445957173202504028186199547046443013260806701146442331123146891424324615949082618520153363629615049327416881266419506525660161734391646122282308832080346054291697247516354285916105042727700936883440716550858509659984801803389307838580126996938335547093144066452333552746916487641479310476506794705634047215572553371684535102978381333499392223688187597517300487520150025355729879847617191606104202488818378233331612798401398099331331023462108102536676251334912170572422726958567913145484585757458358161054754840411765096123529543858721837857256470032969718771936245977462247076336564482668830040715442173204844440146168148942887940432383404903806061339375709010067367566779049603161852405721792072385130001655133103131096655560632673470705918978380632453900869012885916950379947346200780942077480663400930767071225652518160219840190479248691813709667055847889900467319111891203394438306174169107972320619836441134733663233828414363856426898636521391996192935464928436152976198305413664242155042101682696644029132001116194406545150409106697866211238098876933164552507619962499440856478821324914646732249615944327284186545299445203680050392904139778532655545605829358950593765726426712777630339298977348432214294685175400029096584272208895573494132151239823888925007389211659708198317938416060368330072700583164795315580432647909413435057028370768089979641908324813394044818648788876986228167963769425149151413081385776994598417054422320595940919545170506303045209899537607955285354120859672324470143350388089705441660500480524756969046560487190715505890950056702691100378515740499449649246708592194992728195063633929349313549337171182753317038649084488204547604201115714564278309339787428019278925997742141540267229386748992454113477632780188189007667105426997580512816494563627327839486425763589261045328932813618014963941052244351957974364852823586881181112613003309062379446301089429356919856060633258810358617889602418922529587429418215094507873912382419424445469200198532649025851822465768748889652878647457101900470862532821234628938721216939611939240700276073593986282592325835947420532489044058322319626567933498371548815068416162715810703938313099792398916069228742031433360270253091134988477811859871411682775746675799378451465699939447626344424128634399841184501282125946429383594959673791541679358076819050573642122396084979467225951212899773396013146016558105335477129622133150592501674783694896866407151876575766198678656486309467405215525478227621368981938953584990931473068389814019733382713678498921394822341286965253855459301748292037429619899178131325671692250456727084734989383968752621868244465018227971723779968893127447390971404743429319335661234697522449341274712746309853545637518089725917172063793171544781867850193162179859169406412879097894340348694621633046274952394525276645518666299779806664694321517477803820001231491031805340506369442254775621781686199180083029192953605847585493654707888169604557617628785861171235642578888044877384263263911139714443068395143361621078119767764387434832153840254790878800136752150614126001613957807525148173623562132706987419523018065878576110123513237708068038294193570431413850092760290519455314305934271367276067381164908629846736343974134339022270067463102176802077759863726483644340266133077065639535915988039104443341337884615615350378437887132364255596306836445175653560889417518733677095232463614141536080640032549730232839469269689689399427937577834373699404277402810110432425186093204585125070847048885395795690083952204498578901879344255637716614316833068000173521710700000620606910912193204851676226327598646874409606372668261893098480477351635764108795308421087608998157863288505805965589608271116625663564222283846480923818279045218646516202121204478511350998480111979321856776532743460077693066276131139877661245602867143085164323479473815960066119278794979238890920267683357886745134890067299603437325094601680764883195193178738887306407999993241311364150409964854633272647340564113625629437448407212548954406426899906993123690519116853545895498431014817289887917389575975617605408054737018122615381484014651587041667546355240052224811177454121095411084437640395422282345226268876862258004425947477611298953194911759320203606857133275495077780267638568635494905758929805686423627044041440604370300767608013795295735712692723453022026048405515071808236133830100435754169276104158420156332354840407111284887610771249794130255586308965006410763920352128736726089843101954716527107407326148618157168588150118303546784754221034601412846199822411746546151670376548210475717164947721585960726200579355004348232480282253876474280581982372989107271848587745028122227077217206059739118260071618177334257078774513204906851446648957920690182977366847111411273044325907272292772910821113257989196495534101322257252126652717264924356318300157889635133049391330508788466092162377628254318240094045716046908221360926672809004905031798733301528651758631581469470340257798152930446890618412480773569987052831757818154134430330332994408691221086881458207845999670510706757078264095975306682677576475633274803239848033932109626477858692721984316650466217001666996677385742805955256643221108157797781108817251090155931697578934871797672858205652200278719547224844406585903496966616706311674226611825767814487128013628808592332667354896132188262221859260226828060399068421219656465855262872486410564789849531294211883306485575684706268664562842568648048414307786115679173099922909573761776650039588465705310566557917890280792601349694222844357894156778628934490475401060439856209148919418598869582656969004245490191678964184947282721588847350445768523598674368715147383623868702068904440725235836101723724007718310517282453691585346414064525313625869756458754708593063965878533378977933204105405252335519145404450966649350628104752687913595900415949498244861675807956207004660296149650232341000103052611537725234747106068698747795658733724122326015013094624870700210281870693447248581743860349954900825533114978443508098456850596665193938208631897663257274900463716674186910020060191432777029459607959787939158356425897238515106085000042853806755314422217769267718865290165388817943134264777867535391436255416815937258283586976293050839088877808916658690420091460924045242318409571322409957217737597493022432813303006825066828627452281180348299261221024317161168585688110469640424418065956020465892323157013242358887523824797875579127304369328702431530195883964702142369874495014135345023624030130157124335108982456984745194940032445581032188038823007648635254876873342141348217385735687710833477618616341343472105612850197339413760639151674180423730551936807239654474651610630758653099416608266088257897698833478099561883202844263106882098091435528060044850559932136741206435880091079297706575532305031968019829634136683945469667635904652584860705100559697649655957856561906809542003388087239970052552705386384042515745121007546922528138855325349512372035944340765134871112172841866947578631667941499643370170873671911562592374422870082318971484295514340374501938709420064476657586166566648965790897959944451281179079240402422967740044998940169674144064661336286874372849245287661041931928175925504737992498388525441408754989919079107035838635675341433136318493703913527555880710351084677023543418928167265351707279262341829495518955237968317576803337692537967203144870747645765446834662597109751046136814144968758209860730177037008123489795791953055009091736075937350923692974790689156883653880664053262417130494282246585495071801186227557310591931307208851593245192504374953807880488166102573472317997989956363218180303517494457145658383866511556343610697401537443480254786915695899916494229500921655764403615544056509640717609450993342281060314542444643440810603694027758660159261732250572029198699449943030898691783807730185897982522321343628293770931357012385684023066951205835180423024173943275627990536214787055391098930538350919565226348125653043607664461748634696001972179697170123667004270970546119936619468569392426537315114917490210053804435880956609338714936348191764968759962584843903959499513434104342222209884186738462834652472632738511298625413945928794694235094518871817959152691486717847388312967286835472697438496491489922592279823708541957213703321468961692844848593402153928263567933057148540629801827614393073003111135592116638154153856650553914534572588381139882204980718450367869896946847918730162321577493740671856099244242857007392286720073439956954965724157891052236176821503396807617564551149900662135186838877854100326369183873133094156926907315034982012485209434334272693366346347236153287502294800411585653857782047367074522718621628355609203430158613942338313189193664508456283534960971427843128015610557271205571596713953638509143232319996874723872741971685004498239894208980124102739607631405032660226827847268224227081738447244772216968878956650352613091196151651016157618609517119763265114122688121057579452568624586642298122126863291322869445942807445922597430569648528637356648517937286831628637328745959281173797258097457873277537753746509830559360251460144133788561293393398879090664950073894232787033819793570005541805897842072108359268881120624670329998903196729605066360760174424573625433277146731631950782330838420944335191037489638715891777137745949853756529384602692524084839351582281755277431494204662777737644085155934387493980739466870373587870542468619483413966271034492250972996652797091472041216411979014348153201579001117287619971228685214032565416961349805552433700147988718091444889364394171009663055393576279199511580820639112191921165333914769474397335649584638097526165954066099906311789934137955375432381964795263948069201934601538190766501956410440246717913416726029373264489884902876877970244855319987089052011645409389306974457676387806664414344959070446480781893999803039242922297723008659126169012048318114815102718137262985973533761461288369024793492411262508999920146212232872781437310874729963402398772669726463405977089898504477088962978728171424443707386213033235108024282248354249091157908624271517837730871205852504464484584491971394855189224452746653613882321961690137873563240617762114257321983982117919562712853293906644759477097073596613903844971077678826823251541520817385501881562466922261536065951913503797440429018036832665440495011456838767484878858162785672697350462708979654591090041958437496818114754903550319227856602414546497996696525216723418705866687068280278540473876394668371803324880414543776289012953036410680481376387971617677740763455879457395987374883795065261816574573137537749767054570666118055246641781719415327591438261339842993894242591691525806015306843168694226692635900854159239439802648158115290960669535375884801876178040971567867637439034066877899075560366337169836435362820624498526599088856819948808631531807343261553217208077802807322838784485846308591155985259588330257382748963167455584255994197667951807879007058706864415802666917962902702929875389098906971730129849826181781216008458366608782209217449314804525206039620296185203308171088385827125380876383643714184503499634271394036801448506057209462017243378435492678795732517502386081615053567341475921108119426795077832080344760246631778015398774804912673915053675693863679671100245617474678056584591946845925010132508146800901670455213581582274014597862068146116117552798591287549097556509724791307792690495184301198166775772064732000114606988989206386206537322967486276218301434089373477582589565207689841975031962199665041390450883742936339557399250290279411879790848002681313592276909467228196525431557866417490224748834649063952331674060702706178706290734887426071383472302948629078892079572716743704074852216139605191510116530912501847662765334230082719113865964108828140554636261201928388479955564899555734149241839062356443719051188749527483329964969254129403785065902693806466827464720658566606420081072204258158731436736806953759109540263907726849523526468220211688308799365320055444602176575800892979199846598907731785247121694210508216004391878780109424599853806288965576701087068263832456153411910456163078267311871051035241318056013208691506221505295836384253615990907001782822333948046610297327261570752879318785508527838440517054117498390038837460349367025594375603883703086063387067942461932753643382482045654373524154882765774611669131920844021253883644789172277062217092010926193119191438446718933004606500480841879692362854083367362087632883691042993696848044725628578389279708317333716714463811209584278940707051128838356602411242549168890624525684125963566880200360005926544456811107403560476580042443525531867614136884321305653746516922430842108995463111409482249646663784436621593647587650363174877207260462683674227041921727189989102974137686250691278023036987617137784023692884090949817740934313489755558949484703794402002390833219535190731395271766211741518491115645619180902297115949983339316109964971990220764974212129781915301968524091929609931484983693404693192130314894025862358078122992670010698046044934144807623546793423844349822049126645362724972155009027347275881867706051543614363760841561007404063038373276747766132435790451552434626911377651141231993157267486029404280178202664639143992166647590577617732078125220303973321533558790417355941989918482965620572066900601698949308916539804565410308837922938345426346039697858778735839364015180810501601474449749309886450222696207263646113689957217457718278955776740475045029226565880579500272293465344281602975220748201056442263335714721384298223716090138560142696612950955469236780234946811589826277550636966077101341193365849855371906226536568771404362487538192794172493660603044826301477505831196825381139616095776926374034379668051952261304026208185352681106788464829723524754051678604607528449902287498126475541521884524949905278272443029625634860229737075652691844481867166835737397490319584323127969689417986582612588347139527046011291272450597682767544055013056423967945904986155989196193849128828231256718700394144049027158284619776908593431010556725263460226663902158091115633263459694400071661676683924489132820673378829434100807653294790122674316382277491643010528974194084303033066123866663932239835100978578214866814193437349742983620772602100255953539845890835009090923976866709139309713032101866412751560840947760267544519603596780175971972797753159555628016591533289687594620858194055508508055913530289001952709597336924001333219086685277688793403993887879246545226274608341243434281572397853162120800339910435480967662455999287558205495437413024411453291877669288475215406008783518469123031478839732718689403926842478949066364992865655198765780327316871344668334136159784502948002235378434663240169726046090125694968327482031958060021370462353914967278932353327524441197208928127630743305615947360793090592856176865903256223168764044449444585891456498842157245715089799349636248322787732347400782011750465418877782912784433982055768201544274182776241495105143511459047654335146454227479664261164654940199799953849014033202927379369951760798987454649812113604827905325187811005097101780603150655327926612321037751050907353759649438007459953022131076477188706099936339266607698272212182960781509952385953328475316024427541272261047623686174772445298518930040816943605055279845495205942649139973779163195807615632928097455449616254457582680119990784529716601860354244875864706955968380999150046791975569616367538094795513910404527903102902353257796103548813525617671983815986931880154319628633409471364633452657926231560759003234393934766085681318080471178105571669791653057238236218281002504538742220616274985808902204244758886345136906555544196525913728744175795804326625373804728917390140976004537097934331472796900732743008461438698467832957168630396509113609104131955778357641107331450343208072319372611297924930899012793967695860203567865007938153313270357922045129159298230963539386978742175906316259378410238467171818798284746755836367623269555422259570915969835620176838946026149410048297770093270348200535404252775944144887472617787090163788497529792190475344500810438090482310357057606435732880820946045919854220040083044068489357496149134284199081614229501343747249524826539489395317506879461949667015894396392581964990251474205786786673574972944431874866916332619312080733653254792486835941611434344013432638573856684853297770973404908458495615293255006931795427292619156902932308553963599148686470162118767786797919539383001665759012211431089629339687627382040771514332440882560115720874222138711096081702791211130610137343708948608276218281788093900469786789370222923893297847222051906245666177953987076158824906687779894405349748517853847045915144976317079000429935138276344468371752669178941042230792967414532434271880472518917681113351108900459339902012836370664424444504497065480856838616704644065082860467697250475327787518378199685543384651450794534661162432322914478918406413220558712458213694542318501341831598788258987969382513788296338382984216374697490653440353071553295443630343495336492150057180330454623284115520893428528069313092468219228822786635952878197511161381894166622693951665949095330768557435652417476665485626518253978062800754010989468011535598849464558322848155735830758433852735125829265812446592254069868620929538575885968071495355544152440629984607862320757135792280502490888585074334655196005602948399466244109158555464189746002591918756041144715886371443222362334579360001868921874954225784223473992907500057281979214176491429072998868336737195233522094769382722297116439701322464147728395770041168036423513563532789755588720466238835483372803116085699740957540602482345359723225587400792175527303531187998746159903297215864641570082214979833170327527133911351870524817311024191108744505654667292046066767710756461579340403135452029215798150490890656997057094394177763729283561969411789904486779892213909919639656148393915270221623161804309439196876193953135684653838384025532382268933192721117580330563174405711081425384155744763082702485795632273691272564131118076256747301980879160221256674555201861340682350432108949036877663596664061981149267981135470029763190476272409563382554455436422713924237104738928260148352723746523712173046313602920234518713710194874686227604768077954824225292245702198360217656368392687106810093102277815977176973227683608279009567095437711856188684256792334373283864477070367300464606628169103469411111121178565807719176628831934841525793061863182871516827492728457046475525147190183567345180932624853161246780850809498998488609861378281042064830864333696276684454297200315340266415435779031775604772493359911682165232775512844924639172861494159477452280833125009712428180507464742237262055299633446415971028736204075861606881708199380747017995695613615089050924632434643112139074803327436599862431551813087409561962377657341747172657082452498456836353349050783541836485612800470552616223155247549066571533190048716161020684511798567107531894777753198696689948333883654842894727336852439029990734600469543935282472861995178980139098474801633800218356801310328403879120804634553136849505629457700756859118493532679943463933215286607462955089893608306668196991473134210513269040328451983960666288776316791687427294610612077128997520485281250554549266473446601062141415620590949194026962929298575168953851898099131893205405032665897490449389001544130086560720472959714544740872944551197687223082304882943242878625296067824961926500017280796086738255476123775056418811549476450571104493854122089435544280727875356574533830487707080226516722263346417978253938971978359052481967997065890368941739606037544428396934493195515669943722022656818385911719600672203954613603544202068217518716610996155662509998841848818457200600642225515839797457539078468090989860641559430030328726269976164960841843672344834924277869259105441306809590115672891950645154899918982467006258282103421995610881354237511195113111087066164297086885908206948356321105494929089191641146393203125440081207402757819832379696950873542984418085659947031771816033464806534912176611963802830252157671643740934416179781894418902107782389798973181911527754061210388638417388857603693277907017938015577780029265677370457185735121025778752199469636608851613755689145948933664798982127571926775369812706741125302775101868413709133421312143207428754852264212207486136924375988867250505801843113691941239426889250221407263925128358865458624142867810548381286272530589314022870459172829782064440464953596873797001141089228727539839882523809590301387654538785625774613956033811453214657079783808170883780073014787138396573432630142678979153052383433755811004688372097868883919923301295215667728487162461751011157922844492670054182243556735267627342329587313316821228742735058980048420006909026532541575757969899589349195440487788377548683221783594956915463018462458749237327296520184516633371986368197192036384890755524679195008250464516491196944791669735794896612851795066646252764155556685715932106913507713618716066940715296064453398996714789459366229176832397388254716602391331951330366721287183482334274569124033870169416793451796084737217001838706359686769870712719993950903490903858896338529145241096000935067778065160795634721722031067786105492236017965673811335880021106225490581272226479503067420202577965732755001774592490469318913368890641642454260979579008939223539550454034031913457233777391427268139345307126832922688734026108738264791333601157753110623201161920665433227216971460932533410676893310556899054979600610881505999509087965510170054593567128688885918130573262199852045207283706539340147703932345344025518594519750665175521424736777224507025149528192575999447019070192472935895840444070594612859707845345184131277368596626972505826818456027818098529221418927334547981260884427888734299111791977066879495651381413096071621296896299829536929981744210486553839676055969366058258427289937751390196938088891944437901856610138714646139599582858521036682922095609987932667456089053580090758518913522040955474799155235285016430755910692138562949652865214102615007580386305439694410417620820118777254338894140705434007229978185325965280710028572524265576316622600402407642313658401140504740361992848141404258206755465648984443090864616507614542816046219382215102793428741680597638283741344945393919089295395892174201273742192290936924204864123269331778587068333556720359996103196536152567014604566664105780273685961298858879753872661458033541699593696856411137388025230030783540946044134912683405671864267308948287131367009051503957573678974711494114039834509168903802033558891120785858008067995025659117304801227876159880910251394007304044274440986617440494509762354148388686136790812791048593513181016601057863209942835270348671208136965932079458465442601561333887890029315638469905444462955520797846055133960214354234268809595291833323906068927391840681094521130110056789468738955775513562266768300857129782471978762815281786189963154835164225976568406789293175019335818253766939970025255009085699551705156848311676372068876907131713165752679061185889786898958674296571064656393989744298797572145735245773256861662467117958523491025435624533396052093694939270258540741823302339871594924234202317180395723884875382803309347610163205377488423676342627937683426410718723468694660125786092145058912679944966602531960704752185555173355443803097468482846058846799640654713980832243140890624859578531331473149071833922538031677374978124187291537261782902202769355587297493154638092358749404312108626139271463675816848980907230445670285480369330187012814860480963900457726139144995547216920562219484258415087654230842142833402884484097953342353044596958361155229918512875237519250225391360003005667796645662013172990598276027297039777439272772759630170682390705655700400362458024176867435967235183497767246889887906243863923417214350471031499081619021404728724241308628010665799462805480546659854996105179276614498054631297729588701455257707291729145123012239421848078300162173548318256669686852028189729288385141963815806826857769852625120185769480326833301574289006112741946085319868733153945668789371515810620306749613542211187471303404194085702737114303792409111553827571904633778150026094300836572330094697785887142644517979383501758415899616662269285718364397231634726405085677971482763999390104136932432195090278559529756584131117726870149784338654236739788643159459366019987229246026635456112943069894525142375735706779564069168884025921626558407292027239303441688842137739445133094203094454504185070074822723297630583993139079547532928268838819982808413458718959353358305866487608715192069123269808478919482731187943819091729344004689108840698462143713316104650074594150820999734459493329210341604094122119329161461164542169937083826175530700342152354762683744459792959954205619218987689855472156583083808824190664840901583813147415087107700113145209119459663640273507954386088705133135292030974045885541372386399967224622781579184486473375815182004429785061340467332666782933261111034934655850670145359262780424320022600258023043374091782586324733301308706548875141238688667305665146590353498553009890345974883964905592545180776958836941411401173633880389530446046838344178783330423272036178563585503442967322797515518193444748077224796550794948761392425552686515714870861850177684026404461615999057544743802824712906928787503268138329833613187158396784363210452261452468448115287208163788477257583307859068353538621670094584439127020498523643203910672414523661924845365385042262018452289737663958302707864218595927797882658777455670749105722201592150814191043935215935114982418507601495480324834274908283460741865546758979718287345606310808261808942017068537617983227764477277183113909329223088952905082544155523004781831889455571069451126339739992954955587910601398093704163886035260018049657188474256734300424729002054732832565280341314224834418334870680222095044320185138133429828016576377680252979414736424774858793916210135830285651305154359988278616202941990621554911644859924966414384543138305866620428119197537157010183274099218206443264391552695801973123438381616134759673667084976349173350810360875134517469027541324044205204872205274866272904663245782899493994981279747570043005224515681974176751509263037744567637353470831416718022446262250349366813042949733090167713379341005174061059103033161054504818368623557593044155751256774612983372099988815933710277492519245675236570954954305287328858195101673820311935502529264729707347872588763436454724781257513103935780192013164686948403634726657049103357646105766969837941523030657217207003625229104831202216478614171884396144539739252454688645959888056176234212669164623016454976896217464984650316845965427873797965374481496497668939433780415160456128169965614212790365247431712623412057190345727560962929629653870056398372005125426594180090169378127065921536604334587552505362413578321805659024605644360273446166730499132450436408741202899667281958346712433591349581399697422499615968853264562161118253488790117177580915925372412569841936995975495019756638757040098832458857365568935514254577667112973040109937706025639461179294545002846266588980551324295030428196840151700521530957725151626917077413262147859947895684938272895069739525221364755926631159921934995707718057654035756204578880787343949916064602849291403451494448894142695199722547788963858887640829325996855319837435084717404805594699799375433513599783446507238646924375393763833139401776645042868815143827728150415112334113285875381570465560773289740979407955410811228857656662454060511177121623656413167448288414238124617501692831295333439234337297201114869835794598212478029839652796544664236885146468160593593876712424076671025024090042496843930374295944860859079503109718706077528235007037074241271942732855033282299610347915558099438805977653558668520065208428668874369832910148698205177764112269760788165065179964037258417635900498206149062651399611453410495679607898230621545425252994511358971972582872885548701024719616985937793511921958600820575556051338993536686309835330452214842955995711552033860307389862782799677795949833583275216215293472136203349265928716166425361351314285597300523118363160615438112779717821287871749345415017141299678766902409759064798703912419290845444645679064576008362441779818353898455333074488668320024454141060527815649454906186976058052618519040775112173086927094967350598809186159941501734121245568452474494427974428417968589767685145534327090569646141994857558547212161533103096979227067580984257715774941578277165907537482196686817191347672862245029277609595013170577901922817512385189731607377950070468354584986971662255614551266678209518813586010610487805746671475073202054695256307056132990344273028565368879435745626348835333994209450248217595189060729421160460144405697784601541737606380928080383585934578283460949616236916465878356281727732527875580997520366911517241373326254904068360021861322273071890098262540456764959357821086598590053264569269423667085368607735115513245547392006738823291680904536567341104111167655122241997191957023238048584069638518191150625046502575597812105453712836688786298615102420893578373427987000588532996315472845952484977156592068786486853966807545815378821654032119830133179291634143365606848313424213515251044993489969600849183928163327633809037482225109754925561927367650811581853512819462373075960720209271855913281684739505513992358032231212367998573005507512804096317084233377682359842523199310505384265214250189732212246815213462881571540824671858236640652676055561456142245690565351180188757947224702153197583990051424273088253313485389927085945679795139190111438031176107899581785520050617984569024623680088280288293473525402718986789065381638898522257211311469370416796689332075779932676839106446524573429570366095174749789280166041546309173975309560357091683781083600075977884987496713453325345071678436002843561719494165976550411316127287292520643619891499397129812585400567986494596676175945706411203302053196116474586569176475788993599974895969655742599638153558593187320340837757606668405317655610993671771612070407711201274615182768660537259832643627273816817380917579117371097480221490456706542899645105648491436981860337213524177440940899089065747745659109706969564534902662672316595716331076153403580150220639574324949587099931385204274546130560737170745339782409883919721559136563781993844311227015129410927713714237411573909304771280820061506614434212425912262706971693796435421929951695053778798021225648620485877893288045489854052711135931854483004603626270256154593826362129840060425452468521710306607491593997266223428545815672576286422557444515888228308613653452711141557225916837940902949116713765834550900529156891735850694397925271483931115833389119537082506967525197993529038125096899901851519993747543314545454752077649484579572553383964347242187301651103333817588814743575150828063412368262300017730660363219124628817137720583186857541694943902020377878667025756017670227150734433455913788666386035048051027679835284181614916751420059056046478347838015692201548046189682748875455613945962599027490454268816997488695502416823361727463188575533928430105021169658554886265836739914767327562348399029908510824634775119279506273891456622827854597295417287257152353340091039582524832786296988980506988768715170930281839137148650004595411330035775538952390472892439022370382126184482569496259810034623577456783195088357938061015185542293664324601035638273908020186831621214542513501551473704736543104291400348314820172954795496246569711775983528909097775333379988455189337853757229671206376774037907322445158087066811562990763595779467870834991029568000413387659641604320063786139058098636425157565128628944401952226270511770654146490281009807800804298652210033009096539136064341040561694951994500255972898069264660565322024680577210932332541827440165766226265828016283379970035683487287796264221766303433169313205933856922144960388525542958265317928958978650789840253967253638460406654123947805697016514608841485211466721427916424306850844479953607389309083276318022179976315536688307651177677641860550143111697896615722087289963755617125403799151234651413281087905149045272950967858263514157588957889927517995874275630510254185014291034202858535967943342794860424447175748027628707670579573002422311107396026718551588890650304963372122536250234548043435699634651408819562536548641795872557657052680260745585145882730930195117048607956341836791123536625046177058788381440652213350111884733717741977368276673237146273394439274618325711146532223031424210984886163785545894080349640500919135341055937726864446092437663154330466727219436185463375048274845405498747021970693371969870550164498829091826017384185244539805432890926911262633662010777733459178232557007500840680283544726890131108716256159354733091185898122280464615834520846480429843826475831594088166158823586556368817967922095003093950174001943205460911534193496855697610473305130901474022883455726117617821719995253225580156557732547313288686371171677330684396129028922410405592431869468753178099316677204853168393535073959787503326739589704625681875627006543828602971899836989556024287115331167877606548307516731172522951714522885510867804608777125043617888307861096108146999857511293332545625378716578168570017566969502447233590831369029076540992602913106966581289563510406182940594279461758672962789378656841409852410965829803766760016447761752172440327510781761379126887529395592916071392437801826511888038816188844157589876880568172667933130352667175179929485950223924470951998844985847813708907617042751591487572089319967397475533541444039919727275912592970902898100922405162150331192525196161733755952255003559201597530975501840292865004461455831014113707633557561159315185891466981029995280666502667430624056199574704520087217474096966107121429560412858497134002875712895423309552270927622904699685094252276185576512575870267856691508040021118535413263856817985215219020105257899511402096469263805675281601620317272125933594963371619109531026252672592337834179861685974292320137310434285416564077575780095143450702823306537549138162993810543199627773523418880562858667015333018610236228790822757092549193441363113867421865514336924608305962083447562648071173204984938512905702829633359550456533662484845760993049770619013179163581140446185119744036558165235377699295054816132653715370685851619446478735183454142971893379722497923321175286728032823027896561693011842006930808914244155127574953983026841870077867419581632600796964627359256710381396579390412480407014979267852005351882899853071169197714072203802175187696450567223605978801186862258845039583888661235628876333688913963031039165889536416135213340550428122135119634297178684511729099629036402702508179551089906861770523166216059327426267545585201676607795931401901053892865424936643447832732495227835072054917665443821291485030872153400023546238153199692642604653931420179776680591710558412202062725541498573799575237970695506009402045816685854376685556928197865261123077801272212087133295580138534105948013902664811519210173667848917256301803297696798284089076021294874209492044792832617886728963608840618270908401470442547873222614076056116359640891087676547479267617525074103300136023821060665762039028282077961904771267082249458080349861753888692423404391066932372614910416389302942813203156566219831192984099121212544417340443028551488269309662575449723873869935329058974626195751876047198043935998806110106093088174221587446250852052505553942249896408099595886285480153437775961727309846522662256098658017065441314971455851932097701116286987020361524392167738926286767998179847877433913834846599085894011240686529552907986438463783254322212192801240130537621234717896188784289430208976687656216519763400256800716489728466654272811725532227903185663150356383728176579566298513504846781009711349605030966095599489477906533348772873749830179046764193464063573105976398522959740835962574306544413650523020451584079957212675941685795961820008800378034559493148249475150721602349386158131574998849489524964107298615428492597425272850663520595914572722732138890940353502137955852372554913255782739915148270433319289820158259818925199550378143850427736901960875285961201414968564663510867518002022376852989147833583067115572262160899746089619302894789699467170752924163301472901455029282485045659133721821297759805287986998407582060832429740856379800652904111116573974185388015817234712288639849328982880900967680441496902322885434038095145549779573864381324203465016957101132886141632587331124436205520589996097694151555673166026210981397387023362828300350923552647293287805652141312399479707096860710386053818713458608422300666357568073481982905549383269053283164411227189926521039724168584463852921020377488764257267810915298525025998818125140483783086550445524307132162308353662265202904706800097125493716765951062710254664288431252771315009930037498720022832553059601377781129053709008393770096843838095016046560143674021961816731051702338301492258504051625652440754185106954147310160767253588708552557605938429906904160415201722067861707797101958179888115107255619044273428046486036641669929282395543348016024737355265020269693936917419800048051697289854514928413790192021355388606166210123230207641684462465045893241323155095661605883580366800432070074234841332057832319467284144663414463636384422914618921672893441175329436888010974330001281737285752958571924643115156870747959160751610274773345695469289594713415137377494052847436239943629836613022052053363805207448317542086830181051460243024179805788397268276260552149205629694375700072473320703591717612059635673127867830882451804626741027186843325718689603795745193190229438591334095365196350932403030694138143354614408946853583027985257052078587826800400360492683842890698575904074902638386426478375943542876471606411652067459168573020634862870458416249727545401298897477981727171334122763487502936060806636484587532269025830778438548826957473367941110740306536719749125244335356063899464631243986502651993184739948155154788215694526113376567575077802805043466031401801628033385470242138044795035244017637442906216614973487283291289700543349871235294265387044467606435952396307909390774684860818750889351041390955479246163929113342997378831627302835546490561124385505494640345195863886375126607813430175450538432617133133112611441828399051941013868379097971012479536674144037010007449721699198504715571746335400781538056589601732503399303011882211596825479360195318704292352304490437256060213068083496928692584969298420378547553137513700365744591418136333611174041201078885976009112792342527480032470434518984319739021408199035161810772652172053167065593066570887236689895856047402774285939196931950677954239883838029251381086223164410700989035552223883721508314472761939091981085285340430130970140942586516864745469203771987078049032485536561359486466406505073753672263613507421725682292860341884129571441092676713108045217028032335597417820950825866512989482572246427070427854321732694457921338703476479647405617727549825102431989423987899811753576556772917551110106025759797310947171370072724249303866976186311128264152427140999400553507311673633649718039010829683993170973909183079139382073378281153458803699184874635001412501797599816932963781584407597158138456209507622626985842503805159458728905762157041033321511961452669580028591367078495366506063836922726817254294086585702308567349495535857911306191299555463850791267300287016120485576550717063760631718921925107785186348272004062910316116106659489168636160082106763740668164748651281889478594466552144887817955380856648107478909854961205712485133225315406154320827953679198026501561131937178786977129056205984159731204918420866037606616097702518281643035094911787231912713372215247200149529924281556105643276446081800401985039348820980925663157068999404626165633011702149049728448022604474964765920546460963709948351319486815804836288111556632016625693706854333348375455469838527424288563322318588726794659265697362438938036697846644913322790117525480624237407919677034786864526718506070947486500903299198453193448712478526945289251484259000154589561213381449214383501841114134003079363601712381419958776023373412950182843395949158568196403104560926604038410621949406839441550891886629971929630757927155343662727551146674443267912291768592019341550512708133495315370504836516297030616807547568893451877426827238787050821762830236805133271337800511505301486892502393157153548232810637856215575373886090937376187599565699945163295888255440752631296450574086247314956751174588150851992594498699049455056448038267219637841092808296458990748195331935001402866307237017336096210036237126878796105048503686862649153796248898345114087056341710560044923373872511686124560950722459496007037530084887246000756598810924405397717734661281116015912338474420229746618599893169856108767013088467722844525322061076308231195085961648948901400563019709524634216891803936602150725655327476983621793623646746199981817083468289359350511178055106780013795906448336374099016898412635110597185860045589139788487228598476711887481648248738568905986182759149328860552752895506258310186656643380300179800862053423244601730766407059889682775286379117142316352229617299534611470247881060160817372428321630431180594324145655362396543227807528195418662274463922659355200180977183852067441313987925666888324938578302579562551200803637639463138640364474692165142416529641166309233203326715249635819038218358945251812402982701578838887790118693454872021406967488711707582769984437783227407875871828868606312598894838807020403488472425308858609758006554930404421182580051795439187138341448926504389679392478633823016771066539659831896499506825694614036896685047015789691664921461546189531979212096071773380712863211384688036532176858728384364487061128684497893011930495541629048778359221520964760423361385317982971185851121942317653053950072367974771335545498418194609029733073280670826956540551070964567684113480286601372155946432231276311981125811444235586423111750755601388447759207775913086191453913285650263161871246412702923222417759641567408100256742271821511550374782367803796079428553173936157550389118296869852407458680369478851662215550912540827341231579124963229011466428339736695329574718880523765985600160852944988449765883642846332736239691355434306333096386751674928722433105179248855064982757009721046786537023028308140633870712893184095193559186086848925728399616652907897794884477520116051515078428051583065289142791620490037831275349228816786340525415948438058953430240511339045767911168270795951590810250350258029189618774056452113058146164811888355829796801749511357492787949522725190505636940202337480914400102903723835381910395470333994743522437584526514812016294695476416820259354004663082231537089095075668611101268616018372864122248217946554005589462078984063752546321162262872725119915197974410032637057725068005605688811893430357795926289561385967167450120104692967263891390538240956177886010426663564963245136442220257149206690791939256941029903283703601144852610657769802905474661788274689716365142961551246146783985253330162105689020367020275472455617132235370204665938127792868974845757657641129282973077527892030422884351737487715297054410334195343671647149273141044692943694899886249657353629233713936073565266456866690450026272642965730359562952797914260418992078950648676416883268296570920997391972638261514089479669106806216487247818148476853128372330673034969309130314783229444529494394630772374603555563779088625556753384530807413677925957061950468625278499168967937879514604365813046806352779328679336188060878611778081956607620139740968591669214090161477302725424275557011618959954356869561368557353397363114416492562420400353673334406384553321661898760072279280114745224854390928746834573713848179501266538467979332678934681294956710298142350676149391333980882819157579676339866518724313466927490448596531937030568454066970732796043853564863463900095835311979046713264994640410485030170049254442383871886797772622274916707333872437862737774148053740984340613039907287347308911392004729994314620319765483987555208094811915178122234721233950475255651251209982180998670374202004068649424062924495724160407049059822349601144750127357164896100772733160238817500712429675912107867766116475388127894654344326101260242078830760499962168340805866265778517052697727290280892876709583372841894193874880362929736136204197813138847778950673756923424424603146744432668463282400156505312736097962593478021732837984767446152876628329100935294073763608012521498097741436779551675490158531422642404105900378165903086793602482919991357176889539407195946707507499791550741826760213358136039151047687933026367924505051053828485127604281637042226347906009751986584033308718312687759311622241768273484714839656772223403856486353087171146276542046034285694854439279964482837618050142266483834522116495160446974838655240472895747348169492673589806016777000874683569172986879368577675641928099136190103467619123264744789536667181874054194479428776145708099960659060232912804176209003073536587562531002502071269690017580173137859660622260176345682057025341945256694459002240547247413768016688598200335439485933475416902900726372741226911393155986138672331254677969422020877094295883521482697511412618058110464013357236598918309353755108061486905989245462203959042356436000166384084782101805158899223516916043651392118403347287581644867505719017959786608218581708578951212654863008900728702490955104796144324453644990382351868024581921364157711183311122997080870221274256882141516019227984589789363980498754474753294911060313791489213422198590445063182552063819591747537830496335676493587661233579372168943724998287073332362419212046158772083120606552364510093892469201210970657512077535777672828992501283015145620711817924583524314542865671503760691406891804994674235569255386406128900707062643904620287420296639679832878689037955256052276033996262749903652758411290196848517782099006431911126530710049115666924110920062396417692412426396243235813483619994852195020282595880182630171048122647491533176880467021463396545618188080810678759196951185906940563181289938399974833416794548476859176627783594857037258039957607999770259834521416829341646082134035218255281609957349000212415388985368179599745440962465979821404723917992781854202082048896328294355277211196364197359282675862130217272511460319742000470968810178405210427188412395727964786088862351983985629841179113031519966907121668076875414739095967601767320581519903788933100245290950693359335733996254645328236260181608456705933747885380658382721674745379788199581687369177260466727201736927854086986097866368772778289375841337958937053842064130565234094371468927852922372966957890784995829515213251878565411550488159866551986649664636737797377573171895332725168648127668810048511714785974789514602558755811203494841780964982585688922379464412284354030908412329646603742872671512480987765135097814824753438992970490836958345848197645954901529473346078785276816145551664628271450451532489191765276779898012934616799425336561619903774244085881713333240349835796379948090977320445390492329045150770592001235476412677154095108907473938398080998265832976593883165854258965421511653513547841420681440241153459668280990065038585775398583213747103798386731970401877689201596511131370948905236560812131957259679445882181143661912434360394843732317495976643771930941948875911065246054419232824405961594653370696800755457386137534714005348328777599920742970827092191302214063824955842626528230173096022006884087875643931415328817994997726500966571479208824843857614338875030915190286497524989630320695094858936981725451101969905048750955072370353566625746197850698254529179880363249634202280526633482235580302953825718630318249889490588629234998746436995597155266747543865820195286906337375227275120332229675132176429950365618246320347504095251159112518486478457470614843608026175415244396490148789149424784539255873918167084730988056128370682374756598873486811489788169548250600999667441875193992083699459055031095570152902497724456667415767024649278302432335573937048387234170430267628701559046896880795969357081078472984916032139834642342877190405651128892692214759675057230399807004164712376276321953566118127215539148848656355496631004232018205610364160407473830351129940516765004259891559394590554659366012679489665131753966733553824064660082950610532881302468139278706497331665956036548145681607339111241524188637362989650246638967671409705486391258625447519773412892059010154049557542072052921421159499561001873214046637782437063443137328468450472006187062665548831231993320345657966912391668352386522320064389491598906665505198404946566616926736160346312870544605664823540412476846136851855763553092640643907079623057666798565375493051329295878093842729383208669489093260481040612178731563724704212654699612206086647548996786510727941364818826211468337234160176938525013658672332820492551775328533474595526741788569429191601723759046837582050515575597482079700254296632361363796653262135467992932642716223214829210973265777645754906663517300707507756697024522441001809732070243985665563366795244200396558040365658482075122187455168113035666602656755237665890021677476558686535006132975630545212765084381889972123286965597024797806702984386623820497628271607814761953848832667236418118874364594076573518889261885026387709152765747304673525275108318293853144555662603125668731552480651308166598047119749984156934458350538503763694245213214626868994472283083534453207235559022593674917823177800853185927737202051177933608836065193784504868619404179453082449148103418612780866196196232501101820583324129920681883993958530791612936086107557097827423455788981445716254097762102859394933737375559236258469133869449496515335317236598805861642671422999700792231902295314613198956920421169621044584705512260969251601629720141923105810308275776350456291550993069324787448709441799031577232979503580039355697727965446231267993487770580013060264619514511273815610919605459423988728915804959406090332411776008888334571158896904870466852186907695597984529964751306728194845341131448477355982793310586655123767814096557091033347880361370554742457896139333815907868268848852968217298314692052586241184796664618744023627494659422159951800163558351721123749457862314000286384373342553263220045824236156729058651175349809012757364094789217917253597615737636983193728010268967518889564177235355004366771403975742803088181184746079581416746667413294586162266371109277275308450339717907230848318076811942401480036904513246465723671323736829868479894914806714743640314152624171763928636967261686642845012808557389399189199007879144165762218399284470135500206828250116964132029914820051397660159302737402663681306942054097428396808867075572222964456689875413012605004753151712475172336269371981696617450382312463463656257295717993646255850668123172248551282977969223925290537588337583113669159035114738593449607825832288142317823630437805061922779970537386356712307871395304066421689501375948091168136512243092558568252569579260711036174158454998120603494921185743854726393769647344344648365735831406313090175080717317785253078054757845061724383000247157071793620431616098891015771844331816917002303270183221763918789159659357220035252812067583739121692642694744760981116864347776916867931390252127118540040718111169094069398507213408226849356518793123840336792548578499964056028391044932033611669062950407850874360952350635728765798872555600547972517562876648236755283330492952294987865462583683980011341204274200109476434427216568101796902641660316078397278643518963178545348210266994867665738427458205012963456994536122746977634270241222292517279194647247490518996595077935303125434048018815050992470397104044715083637346437762206774551745497102311811933869469542661892903685711298191328293807571112294190437410792959823190244169713384106961123769585051253637029720412576801848360764967998160075621672591200553424482642545340984826805929513997765391485920601466496990381862520349534390148368561030753848075225075018570554076181753018658508432259599151235787570904537180489514816329925100042348772071416288045544359521643598482726086722242483763246021517864833746698521878783323456500122362627562983433174238942179552634932608817775566154814947146230876541619339228607252561004966455978746327768445887655051594221956581302332378791752729884859555686026675696031639846799093397218726552748724713592788804092072107551625941412389170390995988204808833013524533614813040554039884512589619350924774727114697994445207394506438850770839192897422879615860618062807926543232741358021962679570139132631945207922969364485463258259284742235765247494339579974118370341095962549748800736790778063278918990240045848307176567023551172584619075716095759789180330928592448231050479144411946172675408178972287827444161589358190637148007209056583007440739598039483923111071877395579266467115741185812425552200088402393426401899488968413927382976846141103555576742059953921443653479391718295723626371335041705377466860559175271673540508189480195757670926387500789155629671482188794934692261753999340832795206227334741604662476160423716687642526586999157567190788251366656599074377559993605578018290603954259595195671085237193866675756474679578441873721426601283609428478798292335652424638436728999759318494016718168453526968536569755617569131084213028967260229807226584974244864780288550261417089160216980269638900556034768678138497445452312698681788623004368794240193396191398145568513354173848699158909482206467515180496591177148101479501889993513581562361575908018823884241034000358356230409093852838184676459718976027572547585224844851756621808025813190754701826114113195794867814970797059003032772664944320841928191501020077825469699876803975774638786222487942189803171934723814739266530288943141373256414019639769726520328883254379024933816698793033617057910179210585887837439724839759321480425588834188271062072701339104045626591289300466582261697945478761307640107401570300385676504185137876496158319328255868199654848571988190190443038689109996389743870419036125135015633573595315835908858006178092667123548309709346250804987712218912497169150509470311256631663884027172190326784739094013255331486482723788468565571681002025861963803480064934298506927660923508406016255273026192239765549919830761951090783873910398810484103009185294862481141834379058390192631889178188791425026187388263341434557468235562577355943554612555932761149298293208530824466883400297250965094843842964189506561283297017192388366346449467590304640646909202158580400005254851448230595202295345018334868501093400646382146770604703807502221896081691638596991915671588646562701331107018940420046996249456807566595340269964034726863629883810175751648125329908286817618804606406633811843958275568617991912065712564580879717310847981512793798462737894760223350311793099915675224682409904933156482602059779767404739211639469767578970743774970493461235977696647391349257356822879293533059448315576757391108976391519669607215175572844223264926850585910483797537656530459175313024687799591991196458231771114323747641507924572028953060283097761446573681473019957769589389754576088150536225346783761511365422688895303263447750657992244727689065219820238862812735132389432924033631155112777365042763600120984994499517834689592406307446196490668708481362598140062501179039642769471249862152853086223734260190067550644882079028606394609264955603897110232152972952607076414819744562838037173291089514090155919227431226293386483841660350120996818520128898732797286716913485767795656159916040038331964377072925927106975392350713941460443698329707987095899498542302436004475203125760372736939590175495258126315293228061230530289897474358134054718397539727430403405722847421521085476667728969286405619304053729492208617689758742977833046266137244982326097871501856758432427624485233616429619276404407650114090394751932204168340794140569815224647561082172819292200407134892804116685444150347904655918871513350164370779584141727756287037613456449363520576473135930081614566411011959574910771740459786046305530885448188967324136327308057796647258120525798820060936077104532022045322319366120901365634245839541675419671824032055111876728188869780843837631859381346476676924209086491332650154417677697972678091073853260735630302645064364578019822495841107990774568995227624866435653250957831052375676740588609984751188252613690737297439555976117739919759844334426307542605657585298061648767776699910687018637640416202278642654511472693114787241044860933837469845452355824485188348359605334937270267974632148948633468264771240265250414771967321564880548339736835088990933799810313460927332778840109997773617498754713129978363742444714805419960582802143257352765982780511963839641995152639316501927594173516132650596329512487996851283778907524457696474315905655488140910772374857631900669592404331891022857096434205758632281339567124608426088838681650568275893601373520458438095395699106537446204143502616863528768356471795552304956156455769341648835314129993771004516295319434972971758788123328789008764841465281633967862819412557412573230251865770834365415474854569741415899659696459710746987371818030470582673239020012557732132410461322068377450923060343128428821944832304944956802966105908300091852231398783477087945706492528012024922592634390533057714246690937245846669292077650878540563958462821650474304025537301898873355352354457601630362533660839922228871277112166608421933655389367903697244222450110521796467229738103503054924960228662134018558766487441092924522107768671132129818457080140837390171958728291968363701082323192563245480091941960847805242080482844515517511432224827880550519088484049713358701567963778317698672619170568849478802799113147241578820418834113880128371418819849509996476308298827866103374942079279902070582156365784822149794942430947440525100111150131223626073029385800726487646356771405347512875079440599106638022562299430565949107858551015259631591700653984740097639194707872381061627086348326404306902385607773347584678948033033602029259123581849574730957090706541521324812333820758988717038770163149494487222148214223458357135990254541029199233073230551843417511521200859835216587249048181095404913535768742539040633142413508890410398174690478106301617663808955211257952556458656061737656222221131524287231471897356374724152645535511716626001570047410521616342252081866823884612979129627235165839801328972795310825581987277755979766237358800928267657718452178954678476255851448793686408855537570411883470722821177858154535547880044272304938596232823748436610661861647899420606749958392289142882146421604505026206152276552058594520786207980827116050863256963747093376766744744574147981030187765517498800822715096297602228241729566589500421366552667505749633768538338663974232618994183660274998279393241867060599539001891970200121874070602729997378765935683843997986044566847017604309849728560715446940456085978945015601828088113093510424318369278025765547660789789879162738498300031182063140301292439962160724318860570407547185375912465205059610851472853057173151992446557650706750697464429525746298802835051519888230078310185165855346922714295405821631088619815492993518694005420970897425986866802654704714845267653342107210552566975365020577455516791434967771273640191716070441163214932979559808264714296893916386329428178482280379082840489852221412134056705309526281127789059735491576820468131669033739729485789974845988574207563611829622757170531600425389541536828713376847332503577240704627609508585551832488207541048480231926359978032694468331581671703095817765049280679991394418479614236772867107430749585324571414973258757745780822145918461947670413913794301369950285847235908228932247416361015123389617043256707267132468270722252852685741693862125374033890936952982562153486136794364226504819573765889977823189549859290147995315546580180344501448530511043643288223321664338570004598964306413882804118613208199604673540982918016562220761031149406562609468873663015297764844566019046962571399868561679178868555390339645546996688144505684424247467465567756290286625165033503081939664277081677380755288935421431412065814390619218360625808493218202544122294385886480977431621649967391475839788626890323825670831681075626057843183429211277668847879673421984017922929555301431208774845649038775325137348303676238378649044916031395004019093449472884314291413083230170442212155138115114342371604156530987629401260709297822550069940743648835340199563395204321735910570002573068244194424957695073230395145755579855077794200299475492270378517218939879585334143548697853488419284528509236963507910284732803566125800482635065262485540015941554803042964695223107113431168403836089850752809318395888573839050242355557089627212866984071063868045572911557435932654133095902587760287946416207791482092098067168016146832647017011029243938131105280952935531499798285172400369327172654679627168827438945383518413739461526353484933023988712779114890263822135129031964054101297634945221527374470010500931578850475780440793996870746011343081674205455432497698487437657095205107120603674731413214931494368923077896479279946954284254182821743269810374421551327526307743571766319167136553701150622024764242442004572894280126269018521600372490838406455520180556138427871780477208969569039740594969278521926390359834980730136796875540324541155388575452522684071959828858553412312313661630946215586046388490653732016313575699834620953268162670343383960159494884033187004865016632329263800393471293507897912447315556056262205265236185556305093785997431189892635100288946145369174969712439866026391855723244064022047750020094043658750444019747533774407362191180114375583041309276260591353302725661568152561803296993712889440580668141151113493293107817943122455830409407033146786747267076184398834251638654116028144048462693688594996703545037235072948436165110555383124130416981004336766762795238671174621363115115666402658777848890867719947209620317631464571308001180244664525157144863447402712492447797706406819958884044355381489488053614175283447938577932187531437304697276998395504883382715567353238562834069237769390080390330136072288116968547065812193622313699332592324853217208607391383793322334083345901738630071613310284426069719611671402079702235947606211617457713764057268252491366368255869777662395694025823500340292192161405700967471674772730552086385554258145452783905478622827961575670708159671374592342633511419112962032194025675148510395518524080509166102886863546530720048259007935586538047557588707023735920631096359087585463980033614460794952299356854797766927689496114476272426573689839812159570837837406618548844288250232450785342843030433207909759296827659486256809606947368669779826910313973889157489822107987356808536403292979810903452368093948766284011870151365725678340655340903102367528479563539168179640553485945974630817643299386577533985263785069067902953411932774313152783704607148321919208854425668765495246121771130760620265266007631003314890379279193181271019949677510157023490099196280962664206159253477095113948817020026769940806127850124561383845796230145203438066400418646907207095316833729204849142879441323661516466312788098583603494308830001898799981813361549834899410686481727501589852242387495828584374225297133581549880397290414386899815192435013531702878883627975180812149347287508917235314159388360089021733552957505192115069900325451556938515663704948139210079032175721830447500632740778532297283805753905302822983095855132325331866512141513969563141378832119026001257083094846398211571452465810636154148511111981445426033378590265119765994372614710388404571313540416286353318427697583405670570317084828551498430778951507613775521292130051155357043833979152747900897835545068993806226025980042089053646166428641058021512835831343069103953607272123652160534858861617285271798427836578745044988844717317187364716273503184510276319969909660665648531891054212295123611594551935258152715631957142641430521369521377222165294340026780180523794573664816266985706352877014253074546572162022451914063279825244832255341927678095490330441961403560029376863872045809000326871777624609626304447866066539814133424757916331360477492711853900681039483356895191864498012394107008814316709671506218334605856526455693171123645910633194052557083038565368629823099883067069594493202297623306283543140696500497435157526753568987557582998630673518980290968607890046941393111719040007670058590659131842095726511108008292029959364220919552783440016343939673945884373171404634346713405194176513586267609037489921958032777523336616124869080340458205913023911931184367688827464572699989964003464263332426268764242728418652918594923889267517904002640233983678329874628251732311023701155265100827753883794638490095351167294732143235841396997109876359340429222327677502851962579926405328990469794480943529603416597633941922447072431303684244260875556788545530792433205088502393011335210091452885887880092353935154345906380170442286295988168648693741933940821216080071878991042131705718125683248427282267139534695031828472296549523929796200219516823068747480305516194349310201442637706678969077482108029753371974377065654745750625666177967168368618700208832645733357539191793517104716393669168673572876844499637695741750125094666587637646548685419570711204127788621678814280520225081175669627068816644450911578685908178483869762003068836051827666214260511826347668369631227735319735469434084299202218058123409034079938985125524158190532024497862314297226452576696816923223170997636055707932543377682503619048774777588932769190657977232557511812086628065589866620515238046543742122921785084222019604781065218515801014135613996482358459638912249451671515284688021337863093034846434435623555050378229278405794560286806689456412224645764528353731875322154849645047665488179843587594309349731759351240164447627624786021001470600277813853315767231370718104029895176305323569237594039285619566834077567157179249627575966245844206352903642626942737183203530186831461449981727351895289678329088143049365152871264110502834868304216624413384913783148005424835971036261037579232463478409595113688106889180199062889492081553695574052763144989427068036472311908271596304640285178286265854138748937090676654898525757966188008806617207097989976995027164095379993087931841117092532835027241895645407183964469339885899929844420778658938100041191202633486854615330082909050663441341315690887584480607015003169177478424040961394661116980317183052058944282842897372924378699620681131839615339491730370583279876060496796653689705766159202715052747224735595489011856811326146296262361110676865586401646998165026867539581484702401761415505579680729379152399430990912062593934585676351882746247950744880270374810536633766682700150595046903376763174499078616458920858425725780964664455232990977145132991428287176247034808867386041962886828394293690683450495229404418150990064245891996784853851867018085038311745304602516655550268859854974337342494913083837186901624815916385162816199588099098249088545333147084427675849389389383150931672985442471363831586660624898006441360015240125706462126359670413317017655323808158902077310855901809798204217564713415569654303993248117556057754232094410379214300293241991297180189396683514871018968827454768310464391785587373110305176911950429333172181439545785845006544771649818186650976424755991582348543344231938948272895931203659476818888523647031422209837108169877339638752879553900493614675806671330535285065705805611602563806835488210726922152552784176060054251560935890167559433008135439049596943387002139605202568037617259165688009277102825545932933337246656740701627186932120565646950645557524456387269558680090579159541960716578272999909327487291640697526133650687723011447083738715553415697904947075484557315604772598065252414173575007267832683233649039912247152946617618028928441645066170318811093603623382122895091540748336626520975992771839380078262619147604022939997940681627671302908184271711471162847707434719204377905355714346561738212635086466027860729283516456798797789599582499790276416439140899520889014677252306762734333996565122796014441280295698055973089734790163105854922768294257164200638293501550159340453511734509112436899409655247871505255286927190208360377645658420041776617275362443316492046928821894715917396025343840881160556874163127512594230266424686439884219828018065265317632673679521341325377046835221098571180888482574497874916135605739067121162419183488421403299246516687464674846755648994500796697582801543362738395161838064868121269634663864884343631482237514786815002199992384780376713813694171115424621895872793606296356114831294810264384733362357313041911319856218280933161104912334964436295506074182884324820925512306189837783056494262503971125723841582897722583755856341041669943180881363110345180162631290233233077718781052247888712419860717825484372512346231878631481523487490844412379359185906976284684497402167187636544295960109004951215252974914541473248822733076789749437477042740785142591274937914426903980175770163754690316427987248627670472219312525844171209506183740041371284058540315379606139975616888132359647820888579960908621073309186105674372261700664001660692125319184185962344872777104658845631279674748406059372999180436053880252503244499020033390281066948842097999526601867668234166983331334963463877248577605341568148379779267772886710741915865951830387198396746600188146953962098868497911293268124231968231226799168643257333313151555758887449273973433962330516406752000241133667529914159448487262350236134993125726139749079201451129153747692277434692727944461619498571866435709123235568307346965834476494207562325040402063868550570342045724529981499042842718903953267487299804078837705477306955230008387490693873275417656003176008610903401777248339017949018540315141245078090505586887921360968604363393145042638130359275331619058086360849158662853428045799949317336079712972754616662586072471018021298347518510507632434582811862879546685270832360234512849043597860173016315722055568203261730551904940840455338316866159459155425126062155088023779786201048451176635709631887220876904049680815774545079492317598694649422852466245416284661749896511212720690173818914816665421105575638637467829300042240139798345405764557797144083301526665034786354733038732395898711998236632225047853372704781673697449674416116154660563337967304688172832182494997532317786468903697357725864076492207604680353858205702949446197829015138744111071199706270766687213811307742666474284072545600161897362784912064225803341175507987357325484171343707089012266304626976743995515770985747806293396975623980595399489263376116759669398873876074477480949174403550860846511936093168118628861183195716989289946300884340849594649673220262543724811343023761459282134454378288878890171323390422910252513788312536683801719497883175678079845950030145482356392542169081127250539605721064129968681379888370217570140580149060031305753386282997512060827493436507195542741797158676242993085639919120234687552536849280735239121322407056021181748322879030432240609457960313173660918568395468792176081073673982497993593648896369149633664304240225882224851011919289152187922442644953297282247179335949527804878861309290598166997736706239058279360575479881487979422229288945849513984081617589664268475008783579760425433417301852371331071528006509379338924546679088441267659054956110339110575923841549456849245359350115689377003135650573104360346814198036968748066607164128326047411131939736395293807335294607949228994680140171495634181054345202049058584911321668953217169923933421200511236320696833851918842532316448640771145945554808171285546085405957519697611623943138492401305328490824241106085125183594085395146836788128426801957544066273051097995117366639970367647437403050801689359832135877091855414142925185637348303131927033977876557354296874860478331144061133187394473952362648144075667179687305185190376943377297022548232077405637468051558735195247455271816804708097145598135421663526004629618934866969997516018674502045601025484211754321715250199864460475740132302869208781766310139838026406191680222844016593199352590870646127794629686734811273308268792710744238562387373608615364482410594557653696729709245239443906739845968886325829423517496551562759811458439207310349284934168756631505303932505805286976619648793821187802625258448603171074686527612587190653708753806117641092965179614296172264975205339353652585586947805926553737210722349851526487424929592902947713463297191173713207274182120850908127999401805334692059649559243911200676067307065669310674816530136419031411684904931203530478130030726113023400953915570697877164946918541787797988214449648589392972860126271426964930064088752419662649406119625043126360066866850462850107335180257650103624209883839645855154514124538181996849884634714233888839679785238649563810981674281801123122251577256120182235852238958110802710595756768001383107571934838691742560365955692062411063436359683611941592319846273623888435184943517867930114817114583607807947556822743005785556725878709502599033519805376675084854767157318409952665445212018259777874530717128536190336595056255362747153493650877046627707385629288469482910019010345288247397888963579334348440947899932279038585847882702654863940523880636686297868569773710996243617802751457683849798522613145393268719433151715403442890996016555529037588581941317866046852620570764185703785584798392810622331214351214942913224579941531758305055770916576574385670117054775063276306637022939873739177399064152847066334167040728205791042265524442303224603985815280220988982842643253877139358053843615819562219340005165932162003149376511378042028212269313385138156910946221637884924750815398693632364095605611723556234598152106539415450198847828854120028428317105553080694628190993242274140256488132363333047338059833294761946870918439515002571324784582885716350292519029068145353811039654691089901839051078492680440939095674850480694842199954464846111952870571096960305089825014001314103525481656488443893863960869380968196752127582380416187025630873958234393572141805759325416372246353934322031922819581288806369381810060644193476454912505578206574490338539027958511053724040813177322427148222386825095851565326789356958718384608615406404385565852036528861953858143847144021444334892489810604794693507698326738599264559546915637345501831325941331403050972629347924615152588392115440500339455636531432656411995925570094952645283529938158589703478171165787627813434518442721934972112954272636942195906896699319615045820425450909624136047611123658747634619434537909512981854579611815785165155672436675725988236817809964338857470435985450921962008071393543348577245415891822705602091750957142168790917652338390336798044534709455753849935073566034502987711126015315531899129442682458636486004574655904206825916637382817833431367295786255158834735063430628791816420400456762822700220081840620982158524361020295896931905821670518123473789055643548935817703912315937309428754850687086185142310558967172692869477170429113086777454860800304216396492101526159749998647002375229803835407361109033027072042164658247715669948616422329728585330230936023537163116070783617855945323313967554812769966392292234612550001155373344937839575157059713145854082480855835662272878701894224335690689845271230736982736843088532981903661253411191855955462212063605367079828529817379148793707814912792824091525241458923518019282948893452309504801407187322315457867777895247211872841203294060843862606313229127868031221303291840675534789407335781343629304041272312898092326881073408204850453427096654842245147854415641784967143151484087814025963922305689582421792217708183426176955007068462271865609028137170305209709234157823506543111207449920241075900039739401942173573757749266713356441737394156765684325509756929630203760325860016195360129820081790691593170212692787833560937568681219350760038581935191135056584023576128092197538089985382252072969838039306712403346084875854755552416825264910580476242716388168819298850581332662924362506592301353291346820038164185713277322089227659666602089917262113344981542162072900079990348320006630529979466057034502214462724240566896744838252986954529347190535114669708887833905432212621145032045752238267840011359000935671754469089922007753273899367051557689198048674042227446250709899340371684357624757916572441535372231821348677525891580376448091535919751180764627319474437407165542668259239937391966283772279306849889049640623748608427361560907047313243197162205016213669852008829546738676046981045141333996506244513045243317500146610458460461122775234245937998912067101896837937891864852466165551355731881521746134441562003795807484043767915152622975035926042345904463408510628473271930191372986779662265118564380385156007113251157397257999024943686890532010826762650214298821813284193290525986155259346070440487002421304659897892767513856543524878280085686950737422407774416964123296664000544066708633264457091073970122735683749157749275906984791333427770866969083723654518947448868175819618082456639860478697577992085195530128911477315241981485244526773710396874172888378709135144338299538598612236697418837411523979406005793992545207569359608467007232433022020351296051407989143357210516391757388030938895056481089140984090136962980260662682796115813026126555125948300396278959867576241354177993364078203155434317850926746462007801005293326096089842615004956766686907615439792592970675769338079271057808154498196048797874962611447616515305063140156989496726964663206426850306064281015463419724709945539482314507164020909647193558173052506967771783059932379836744075308478265349255916997363123405626736889540296257806237828385874701558250475091432406112643587296367754174158357089064855232903828357567700050425446510017286358867703678379911858117174646424856684604636173253039087582504485944999639878232413530340860098243086235182966771095060358597172247739176395965487799248187510941974164942195638180561269563518631578435937977149601505231590616492134106901100188066238138860237046833923211016347745443820908803996254812848416095409034195871958790617184999099529761028300536188091361922230059598895578421102799889806638508819105260932082292748080821167682790992492975892313553376426333087349474627924583170685220055779976420612618249395356553845026426673335236616996684829107423028081587361586385028445591122348521938680400108971985587787927244790466002123086769480055055625974696066973657156756979850278074656560754270044456535131016312665955877011665585435491671824370991854781023328754893867195535551774100049069911675456465710611621856623218674480113275284880539893625712821389822144616719494221181142352768675990032160616403021369452279526933200278679965004609434365097961919880778487818913266277784567910246006018485109451886169319387797288334485735504837862784656911565018703146090383526248511757426480930327718790561430541508873033011679806164109396612678605087924542014228585707351868198375100687897030322454713943292232287063909850711356698772456683153224398335844633219056690128908854140950756918170984214391291106420127012575559221401596449093623095474548180158812219800327924908650960569712332236524170461974304638969922142205261168626315733686239294535403429204283788783578178956909172297518117768969753189998601054934420407489371557246512762513902648813343669709924413988327310963903181092814858342319113782801769681183039734637317875197756461174510897087446367438592847771971570236458432970456504756815354167724273210700877645290376519252967710518391040728012934981395978943559064166239635525139795001903505524883903916448539055787787119731734755826839817411607643052000330055316134717513481974700688243972162341939154725263410722628499117752014874948182293234153718119064873559154966214939923240078121365153945844844563189409132206943275631427540966295035792155743537517900468613649558486813420275500048883860809032580645357609740782570285985245132708082647903241868629267422016334321974948858337567383466677486276306381740248938960792488328014716914802518243068205527895983525711410790090846813364806892248568123247860927758799991564402207340799812062209766336343042271288725379926796373507663225345782352520674225148745321355897980010547932731981874506017230896593658251832471627532185809822033730517657894078237164047652226527712381397226567827864513160931365404680790332729358680285923188745432513543801290439064173892814000534538889383850870346856926914204931020350563734741995317587855043387453620062952184562017754806746713825355628300122263493295252162426421278956398756640016719339655172672368289433494050498657943932690495546257072916653613988570968776211249715002221139708954423700467204860191389611841437817620784999704119320989641948743914102581446956980452973296633361612461215635773987602768702842682216543830052435285503108139081487504132135669898789171190970890023812782662264285196219767705434408934512051660089483905619455340368296395715217415479950249950186112516960946919794852018885268639346811194074726102423739519262730294301564884605144201544080058162498604738450339731755876072092763504332788511251900578164987558411021649157967799274755627741486868970930574543685309148196561694541054572830425566895700816863404340113115338273809653603926206063963827828309630301185506301159892278634902523395911219365714179616121602703826557516516893550218336748154362399603516442700824951735792442226064940769140162180217263415833043871888828984156099743145872263369047810964093938745110040524569521335400942043052880447413039867641561230695763498295582569436388428196022122765660724317448443660056901115000786126915436069253382767851834293640490239768813515373453263073559559670157077996297581860311899738206970981373109381755830644162556823628830796040014132525775751095017501722432350669759086435381337450093463382790351638594699832098272038847028551985658449194848673787679813115960040161242448335991854528403489681036220204556087137124556785595532505011689493253790071680713469266628716085826482718841107522024571035066227557772858148239919597994332993484951283281798004510756985826091885769046290175378348151470191601659410052260375571200783863310159724637276452700646584948850683104592889560333762551209676603267653014370668884503690217023351639938638479090400490864736806483639027364702454273315541362719280166882014485508993650520677381298229942664020766834918313054365286925995089354944989593103235991666172535358219941577752327873134202406759317090439175777766325923691241151905309075168386211568695416047666594814233634797653868604224525989940356819899088625172558404868741136858739748783361031274390562679404517254528123402931918038603835681313166401579044293665312659221580241952184284781217055930717307120794183798049201977505902579547024936127737430660017362877601101996284392262640764462362373570733345125389428586190192753246709022576086582911713909413434983801136025402722849855635847476695887544908827369407789800722333101253349560873997161464634394703989371710618273253496360027542529925379792512082262276996706480005928934896658566179943868516047387587220614991225777188544309238497532688600449483345948215302287043015846454952784848321558071128808660012780562301528197889629441088391417610934855266882893511099352133799024507486513260054268577058291302970924545148998163408565074857666158815980429819863983952964473153181970029812682969912245990447449750335250499305139842620973917194179103981762677565631900756343434556952549085403943959643417657548128346211208985210235123258643697288767943013695193135125734306163800583860294961438289067279234880226995417549894387893280022979951138410317152290202750545457380190784067288190706364125949727823135093200624530398801409703380351764111824094357873915798182532447510312105604594393831921391776837671563442345299280954684697107118353660555671123711265656764114992597105589731741757453963987309740658431342377409897667818304471927919471401619090255087886133736413315148964573443774417793353803948816230076069945683440514926830593471228004125874658101273216881946755593303306364853788733846909077877128907271782619362683254161912427455647482018571059239886124766859912933480712835756869859422108452534991940309065116294144482065384392408311445792005910281498316081344144048091675775889391288410406521308943268006289136154934601578119801349638060917842535166304763178585207530390543018652456212166708873032701153957711978845406487809609492204951607245147978714015023490248146912056253658657708032236690468154566205371462954770044688356952627818954405024323117874414237458012563580654559792323530091092326957307971570310856236289035451877499349857031429997223076259024067335767593321555037892686292262122007294893703680318572193643289524840623219367975850910496582129351244893378655271029621505057399997858757945586159372107861697556362729800064763094893079925932416170012496402135537023699448791628383526921234396660569236920977015689573986228282801970424462741085292797507523582086325063026027060260130887448184750731149124370287184793622858575110887303518201746925450667937335830982970989843301497990790123817969413146262530097473707049807214865615556682033715853061953718719605695939235144225361336848483063530566542121390911257902790187775535059825799337025801498195738798596856468903797778579599711250528002278235957526835392726109091884343113704551945081246445858231404244064356721561413391930017876965079945690305987941887799368723946532766973439531351579785610897527309843271274325474903445409052970471111359131073725192127448690955299155006581203970446542835531408220442885950467769001471266244321226734673172430392808357456059310396795100279275669272331423260430368605392687182354014309709751659998323450517822258378920935196783259963699950957509003105885220838563029457662574714375278360723882355424731425425815302534956203037283691727068994927538100759403544294245770512724683742698921940947997882731122293602411442139222190388652773049782499142318468008504046841006280044000728388641462324275758452206259911364367522236526986000856328656947617485392138157538516026811133722519604599318113755783791497527199103963738139375485019641037656566230523124090195425309755856156981974209073001004956300887419793715465939163720114907250153740238309865023939741844031014303200119104728426455170399732659272387199130488975664005448462846188120019393579802146134954063818688648498583068709262766590002583113610204558204803824621070323531889709662956953845636083868323445345215149122237539510152522572184773272578866725341809563885502002319708861043815449014771994398714828706375796815479000435201352467112307131608875230038915981334157994467892433722342798049761755684384926615929034848594551375998827807860269453477554242540757076866789675693850167071035277080421355836882354228412265023578383191004451096195850410867763110850007380318367739152439227195411873148661912751565850594013234282671351591032509169488385298825277539136474828386212938501860394884095863251057041843318445819909302996860965097630000606876863562536283857823608972075340146105921618318537541069993642947280768580403976169992681879366871361728634498735264713110991991451915159941073534073237178734012273203780269828784905273019825521831932683853540165872146165039613721015320527959213204992217689377630128626639781250733316857715369501023546027133744610466780537268346891407802718998208118536333031483719044682562511013763605888483551519026827447775152921902418368372867153887820820635961223367795609554525442455243666245572485463451046972884997128053660278965021853423722041028812914622898278547031253338797180272905411740211022187850311799920223063898400153883080100376613969935762999161330496619752439197413992409857948523231547609630252802487089435423207995632684177536780971723828256516234936695598710880941566925992674656881663033917084913000938544882090655268652149648854461034633095176971822373775170110904071687285935197376958039117238244145758378572380371062723368300595861965983547934088199025195598465259960061108434669190597761264348215796336789582138465470602706212244185614598377264596483857636113835865731307995583702385209085428146909630278434525339652128098518121033590185794548040148062887692975382004768365523117407013914294842346920234034584762141504106631197167241755703601552049327129570587222534189747635097098469394752607341378910577483790415008156714248691293309842313384628991778943030561847302084174904087604128253960351153971410327325771814131576225416071568246925714909389423775536278044565372307662175944722435407824950114715525401890107789598311178881293878796190616720368351122755117781253228503933197553174459618208211400719416726364483587528165269941943033866234402908528690813540680021215445740445317590815676688200526744587502127399707767956451016730029850020461897766077245704378043237646595196865640498487882099846498514081595989924877164983295658907280961382050626942706296984706047200608877278074213469044229603015351475700585384773395873711794418091909913840981185282889648895797601820292673624361389230278675161009914057577274627310375344093082406317282605839881465467907798124445195314877593568771140581943816301613052246766255437812934093789858412921439744322409917200872841868370835032489770091264677170281728120120083671063858647596808806878953697416722548748237989673910546931325655780656649250067234243988152751689613642717390664771685564916808058328875958005901391650003422350862742729311962143621730624112337070952846075880994515939090293730418377211818798963997684760531420170638776556949125581025440154575978179583592307591593573690746619215637393675902267137043632941354920677158909192961458059625120046378346157201458969397452129174328065422383365043408215031381122367838747496633674666951908171448909432248029096999970177848750391105236506538260010224608908583223889997365620241354093181012481072194451849209305757634750843031409112003664950021581394419395381545892582580228404081841497690798949799365026142219131099585572842293389644755416862138628014235777581614518736630793304075445217019269250824879541815680849937541572161237684518442409457655333142113454268919428728101662151911452387754580532742185486120821941508075982329888961461467273385251316008736249486583741433902440221657342048145332047804518826752422882676274992488748082066141382994454743839564374466935729986180442384477899451081213005462324142916103342742384613992876216700316186644615995513383570479941871307066212700982639396752894870996717803362857437872001415210451852602470584257876701533388833201001457200433312368791359305311585039173487928535275000315691439603873539982721575175338067362231124178107103665704420581448908883494591078905786156635727033845833578526426874909468229456539712548253584594261922029603222408764161515857873328457501228866158361146413468482572084516745702778661995484257316132348759960190290779978047390037748988217113550270428253015434808923304107614688874997769618077335310189238837048554397943330825130009416272957446733593734840236615842272324859298651391831609173550779774071671046981931799511260805292049435773339391859915536795565274653896187596671506843806959323810794095606421605492654798689841209502906578765553935895088654205661924780537532473499390614360450583056351538784259760522807582317327388380099304980181799208483756740773985201692320865656974914224572639215254625562863552030517247157210282678043808414886037858354023883210587575124416375700432069812876584690851798479600127330594441377542957623764712088695756899067062360001560236507286492686562506111720578480252188817283279512755930384024131921681130858150823126486685767867213589842301304385974314075843450333855869650300329058633124236916621221180929869494180337017499531552281770161402248274203368982173847846786496927393880137062055173861774561358524569261265266248231712192566216090516705759232325850969075441519134790312053885325419799438667496334398544404746373872309753278879074345770397541809244822758378674539818590132252716962921836561336729498259397604873688413256282649860147997398847847285003582019376284959367587607780780932770043825363800160141768250264262794353465059713815808275779592723990011553152085450664158064942650753888745249097920013090409627133533858593299777732346793033427273245897518754895866558587920023135653251344460641718303195830111732191393673663730246994716665698291852892591611896300255028477026231130849106574577793362750091014230776621543426655842060126246445809097038797779196712462801112183707034312736097485160612164003964988578413759200259932177844269186903091897762200139053369314134402696143458889979241506932975009149658964221462306256299406483868279695621608775986670436095974529402382340865300839089598603312200208097635608601823259542305032650822276169878556281072878195659253748260039868328380058947033020228907378593398762524056018138730515269142027517215276952523942504143188546839039614353579671240990672121017332719582756549808345851531899900825021232040353457480951052503826869302031101937995880261356449574080334651396594802263010598473288300249828252136425626541102929125453671604864205451640533506333313481918598028135405647005128461612846572300079410609810695761831160058281635375518195296788168781811452740690530160466171964363622765213624106673216986921725777333787187878218365093526679491427920054942128881915934587712377085800848706555424676522179201675987656365902072940459842909113787268039221037398815345933196034078817760748972591081602970762601101380568504340009848852643272534840855454772658083411012647679778821075157700871931990168393709278122075071204101332351619218560838363317110508830421179798912358430084278604756902533736989811685332477170823476763658210024504609469390790747090811459716395969780347820145712320294805849348912396640898969019534774273543863242665600517857305012765735116055060003803582167239183315836324754899217229750548266241120105145462719552637227054553125383171998928917400671002958816172498035074266134852734115258748837658484683770016864846821828652573065175679867742051974338316338007959498441595031972829214551434697013750554013520813249517071291271691994857816175487800309978512888073400855181407767787756448066874250788485356844257457136733594432340909787636275387768439565131646078544609265202732061210255193854324626720075685063879027647052264842737100087150939439754848891003197423605741579713494924138908009773822113383343247411732298065755963338977361292428252870624191230058787480439061217941784542848772097720497601641886385360996300707196248526447202170829671260737325023317891112725076211279669893879050873550130865296836969306285814407931819607105412466799051339605464166514423590129940977014469249209473798563915124301722326134165019205006592546608745899265484998952329439010508050682450209485876216144618575837168129831038814598912451291199050375124975034934310452890671064302096105324687141014007778542660791465450431226263829281665836049793909997780786777286497005235161686428168553809270851931774583325259014155413331205601308337980788782245854625903476748317595806837274693730784614447710127932204634884022406515635399140076292084303321366219719277069396969833853205288055440927957449106896016073159259538217516760463772555553554608090805428964767470048044676371767398175995621639770403283403619623263096736350050098548829193063690554791157419187677066973049639778254554617112393379720094348954636544018367739979593270325296453611594780218636638748054475972339399979894194054220391367503129054066364672354287295282864985290125437390603628116383625874081551396929184095335954354955780225785204618334813182798356764118281861260077074416707085036233774716002287494402982575197191956520419786058238926512899136833155532887068062993899070918930506468567806927692530990651838431963415726061264725554751373840168456644549113785375671592535042651771461906229194700153558063675398432541401696237266492448157884415759367298244019960689277179110198046192940199177847236735868359712053507428654108032678951554242566614711318650500146158710787994235818943725167843126714755792069269764071541876986818704147338725689096309436300587511257521112391931312013499611882355895483120501210282652848272499449882008381380343766476757780249100093898574380023920561682821939440648152252240212774999993802363709523393789997438989921881144569354796339676604142205032447363010990988945544279593569185115056397938244152607954170400616035111930768824322698456983481842930395111678764599076783691814443527385971335524518236906073690855225508438437404231707975971198483305374044248736276018867967111792804527825784895325464464092456346464758371689922902758900131367461088406740775539611286050961673937338954278835418621839866763773259739289021719672459074691133478416227299331422726292811280717271305990731666869573389562911752927733367912045533332236407147597703364121667407081447058270257214662771593175616101063674095913456470644569493699133114652065928932652867011330704189182621847413559617458413337632849049779504740016320776331969321357164163816556048082549026841277992884703162749052419642406119010779455892391913621523211264369719815440449208093277806493534989769931577107230504372472808609687123194717325677957471983705169385194214252059234344814017640026983225954827428480566301714279412891982691767717387396246586585063382652123415687849078127976995572407368602436868321578825779955412000416322700986972800281007698976799726023359054480310808592478201587817403239465025133082839670272656944784771454352768354382293047555895626398544709407166476313034043630815093902688021718617211032496595925097437900043951054719945976886964950654847497850798003426927512940095525967556797162559762267385587585028649831766304946867199808134521196151275247322924593260226011564865100152578872609548238535042454921680928250716833256974967037327936061356214990606505498710415787025252575408568242946063473014004762186402878500301258277085354424790646674767264660263432350285387824819889330706672819271352028773982484935876960821652753864652635028788263210569303162322554755792498481043771390514023648709969614764165127333599416994544527113522848478778675451403146326328459616137737892943679382440271186819201115668750325543500447354773068843486867065033098037480144660710444361782072343777737289892524017891976610923433655375926031102386940280065161713496818454303772752781750143458172084909212705980786378520305453478604922011304505882199390000740941447045594469149645505079617839442420301985579118305490319533343723114670299983700562357937922034076671258970332492191563053848777523008357961538359494636449419961088992370751649447993621526729445297326600853962402490763410037348263320946148373491293493388702571163601183226201699850315647721981116529914082712436688216327493554133998165824787538042867150343120876118319334520386245203899708163825275478110488726790104716787568933824845545599692510646113813254780639683310361733552625684862840150898714386059061270416397411161814324839149095313827474185042598261088215782556582066845833862477994657197947151623752414010649017433443245789722877326442246079701189978640513345413380530447378728771218197055701246769858504297167946439951619386412655294146367058180324702870232569242883871240070842494270892935723785342548476203655878017757377036732544268973709303497256071022096840941008502650948933931023927346764050967354271187672671133340970444782197192554389906723082446943828251324907079149949218178446650731863258842509921699903390301276572287599026075937822439019741568939990936696928060444785849983225841643348634010284584320333478893694251304046517110104154723454634672763483319533218138222154316160166152781224664851972992727015988728164651790631546954128533521712261184897922604516941429552421467235544904299100804037132127197491471372535045988072084104089248166005154829205133816473791012668970998113663659837128280138140009090171181226603994846305289358693554255639032114713349296240772288450547015569613843881081542506475510686368468841993035121342295154098574006688345903108105664488169268442159743826676242071906889919758056849795654788794858837349407250412335607389206309377687225686739088988007352031681363686913202295874065442993141113188281133638677408190798217565006832567611303018853793309470292853103166743395191003699697555712621514077083708993028344715664078303459825079919756980831932435023228041993041070933292653909706483232239594188681127471864890341445024735595823977524019948747132864146276423183890554393617629803027861880535461117829476732828540120143819420897592244933490382163455710818787182753538713759562828364709384004671638536243828588182130070302585258809348740548725536805681685342694612101981611614004809099463748339044541297606959167341320516139329156754476040334138067409397348250273664552587010546004876455918514104385059236095735273405652591293106652046237374755129237730459455520518226482791219663102456668051064255776966748649814966515605350456045308963190387256935648691666469325810518167806028758241147163858702952050430716573990564053060596693710532067693305248953472681620241965088661198714324094725850860283700925965133335114104542294414963733820514152997517573358276557781834965418456869746531163109983556911230728606997791349697711777445508734044169823172637760086197371533651940228458273726751642071446735024846812227703171305934036605660766943648583580926084722067250942631297245807398660498033407247389327077278379038325152646150133538313460560370858493650641744888403258576601937210419707446732998716387908387191301817524009551382300103083377348468545092627610412511056628516172234666746316268143111022287254507289198461962183537603830226501615317324591480921497167421545573760549951117591181613928667217386045776751553192520789420432059385371244143927538944227698111943900494424765098101474699323179591910077598868734726697144341437559659018315902988245664760836574274637887478493255881111413431846790431647138295789693256127938027035766442938331558617781208709028047333614397229511883863780745333120499880507722744359232135388070321208292707012494622960004210434749281401155302227445257981282509804581537624213621514022783146490218373972131941074818242434623185475090375602427749278572326910938485804638964862455457800274704017118386934506890738908918257573384346545366040173910034278968926800542046697542017816649788173567334457958439237235355089405213547296626835898701584916617117332534702361174629624010823047185430981902749086152296772979884136470961884091084393275202507726471776876781525894458789697199780362244835613351643495327001591446288499788527816747800125771857575922998339746507284301604432935711368887219691096749887308511935088050994580744354848163069807132299618130397260522545347792591882859856106058433821742747118134175314825243674745658614474129016438058172989644563132456327594146184705951994104370976953671890664011495277426491507931679185809967790365132364007066675231316354376685604839590695156075269083709480873902401084421642761232593296015094171519629152791911195041238161717477091190990934845256463787371145467736748345680010013908439844441611712216763598382077832654860458643452577281119396287975705685484418937217090459607843869894406488645330416800295479582875670744004584668266842414017998708560071364301501959566030371755142778083606664093569959163642951410592292942444541412949008932405894302601936303321225736048733771219777621800205110655725434201369273746526168011879315527918189958215739342112266145164275138094056126082307433967808670745685615815313499933246874753097962892279616781375940420753012504357046920353061995789762984345340261553152825607302869354133753628477456878046872460125711156445474694798934294213019060108493112295922756159688937173514167250765922346517576662051894705241832149273462279046450819107966243412115800537509099670255195622020569952029189185918197495769951114189059117586225777033644973496978191256075920337722297264079725775864939712438412532512172096751117795486521320018666474854583044558761114554020596963854261852008512563499549195404914862210754923071694375622488732081594494530334771780784384299578010433716811056873809032628776324148944246981749090353719355092642052739609060001183149098291626459578271142847091948801028510314356185495707357897081660894343458072134541147843861721174515459189294396940499386665570650772948297898647142281382387491194447138693714750977422430660279972050303068640498392046394603511456189691155642215541117050810710220162346549887455323163492441353784377448742701444884301347485553936586204936742103967746480775018399058553749606799587080639928048049035475894970396506008552659046556404176596497210574241520633355702613688681300644727795461273606807061014337521814759209918144576849679505278278606796764532995179357082869294147762007441163776594676478396752378789819354691930455403676620243339172807807673999141138062618770668659761272749678841779276754873340586664195964797694121212988676803437288239035356987554299054322360647055625143114387722024960555451183412057102658368056852804319534407735580600044706493718305423601318750940709039711624118663730870259558957502757497657260924745475170063296227882057514989965783428917002987430583310397285464838944099407787550643435664200473333265713654205434228660735934736800685230184076838423252884861650644284460978931925375007949141693476298447365612154668715262256727042947230315758861756014903496598761000136307368262715598818099863769519217560818906516552500546073111256067446796501180460707826926511065101017901902570894538700005554675765571366817315715362590724140236683689174497580500428035246564200892317008678857158939717806995537591213937035678415043986847132957975355247854478850402277920554270199197997122706436875447698806053084942368584203291997101122100513689076199528218595269208720781364070128006407935621363044402338378697431684702665650592565227851956253537207870731071685134108019971405636695609442477610606145263060421483871083350798053054507941920477934939937441549918798112715727067225875764107858765356981764862101353190835275752681925849969030366383612206073800228204773691852553863732468187206752134830547430498393789680283293671900197662625540021692060152788251195640543317444841695815515118141452806777421852138008513772927259319429330593744085461046319153771704486374827710461457059332555618473026010785818788977984245774413255076855595433769361559965022739181567000326654428697816591539385716413678623691249866856585703292213851821823630125360412609345464860268896703089089340750628660212201282687582175169018960722710830788534136575943026571787258953052912792993348593060898232010621847027221720918742023210777155641626872955516398091130819058474312610458057338124859559313291781217585020934880142058563428582983776574064043082722526898944670887556827723436599620353312309048897431199560475826895310634943740480810427220328173505817046563910309250933892051184278950367943958436877643226980537915855831831371975994929245312603502571022830594795888762855069696773737317986569256534674478908063073309889469689361288014032532189514663832686872194193520998467461860629308165287698162089283555368639569156630044926365778757562102725267854813001486389354159725365286183620747969740768809943372408349315730501892559434283635271410865315969766151278421158438439927954197941553589986439459723382546198400727615231441189079560721679392464409476471411567537326494099688185800422077910448780965222733250572337992547194895303756491380031909407705774606774495123671150500806516626295012707450512603843496679947118287677618331679532587459251058434356294605818634656133691311838672218787417087509511046471138326570312561253106726277534680138656057368434262266745535243144920210942380058549540161997352910082243875450141895019283286193017707242267894866201272660830645214986477741044784835196643602324981113950017179139505592200089875554579702685273702033960358598777355001926862513648380646166112326310724667911990961274798252785892629621415838380474316606797813568263400677755925926019011121707745932417255583682654305286722774623326462508469003174908520405294092467111057592645771304144173512466650405998593250661794524576896184902427313916485199346460900759554155193368932089941343200766589143431656341569755595937577417101898601629576987093367603545414227715746862920684982593915030099478527565636244351264010197275384590469485315832590647450374400163789052782858836208559457383934442416686188941678515638438539646304692107360172328098672148023190902071012216361901296643473972362802534637705619372357221986028992106365914957943231548620836080976905585821815769814876338722687378688271896757716809454511679012614105593313713617909944326088497435350704589284621585345106736144189423961042548381811080420227392689507502279205926711207681947779381130528036806231524899507067794594720089678383405841144963721997239017757352427519875801704064525095947756516513344734917660828307848930708321181524036432847714408871468090210347192219484513826514663782815976698260207667739723121154164307152759637619253939707723210051053709495130716114044232255936882387546297672052109540658221923500856044585526215358603178807037026897715246722419258489300157556662501571314467804455993307045773874129009924466723807794979097589113383690265676110874967676009173131623079537220461349400189957421026457643095400905901816593364147985282378428336091706837610992992472076753403438909020309772895588758936351545441007715395462168776126527819732559653809032572531203070529547794439817075498976677976535523048516548416032302320143541792330822140730191939099407232137833041988875798751978076620858954077733519296986610198509767851468842722620674173865182752963598126636018335993413921969808172303943124122590433523718913890899935852323129946882249821873000401044186343825605884313530846811104777675389896159968407034091378936640412905438811120474035119130665072035494323866059857613914858461126890260669176111685560566057125754154183311451714735248418265950677784922393584547037384372068888469678142007006034056944874497394129379933260843050088682041568263470011882739511126365396327271475760923567464103416498022085447235265373457577767027891525339049851608551925185627003291933916811567670688994076056215857856345862291788164328312883185565509059195682525547581107518468809431023160078899122328976924165773846955740022486382277468567824728579969029652077991059494447873874063084716304178943247532587280250171884037324710524979158620095521956422672997607732952693319302748703360232012595851411191541876903877302279791551061489021204154180442635620318890018248700670373743377377978818690286828641138360105754956643233520204423242791746714309509356599020717499980347429635148015282676385572510771392013410588300099310543047672044966680160369896973580099042991404786182093905741467724510676067824204070198585675254284720487492096689969559040685214737861528376716446208675440465506712669444222293964351161609079942656631027979000609491460004521876218155748474297100015038050338720857509821676286331389985974055338468166413417337849283244281222897610254642671934829084228992827487917844388363185293028536399636118855644263029957353910123459777572505230259366014703433366556178265892418026600469605647509557142163648897305782603685068806616642701162356613617408979846509889389460153595674418939964486667438396626591608743970776476079377267722942372145459971904534356009603799254057170403447723164782180302538205294506387975618912066982019392802938488981931611832050586534671024610954430640953804358690974405696073687121334278626487944373620451807436026931497338043831845972974057840907928223740059693961347449726562150741943883910838949300273488988859520805106683279816524431112583054061506883758397429761811540699739681179266289007779144539747345224157149508694404139974666666860794535485909623309871143103514733671514729346115240298101586073565159499184667120471812825179433293303961590034575881099524578982366241789748086064860676982892324111492140931954396189245952575628940023132091411696629759762211095011120346215408990277383703114742945737449358893891324134280890490232633330386267332811383239884382426846543596034339277361788586447343632865190201812934817588733651247048268751852543766875498048987888836958459081026003298808247409906371085579103582058487426395188231105626417820981111314919408430924895203946115936735455062407503089505478385592974333947833061887821358308402772034594640185572077382635597769551956348006540470897336761378681952092635170666288829956260764165611127098077901692618385753910332442346172453400887709642679233964492206273057710726019658716128149339669472623876942917456612115376266826941414893580505485565975660897709857915003962513095402860338741592575345979216108946332042248700367519163114854943782001219294593832294808100129746290872836239781604819172542715399467920582991782231112139436016078073173391735712766453838213804569484108892321810485959293102482592121184901183854298706971098648610805979346590934906431673606686879461717811058215662636341080049397141409002631240479814019778813640183612767247783820326409867651343585755136647938002665000551392120305365398899771950644296404829383727216814294666667707222791679945790826117942815747639413886267733460829657140211108401939870211078646271117280108003430425705940841663155526302205155050823006197931416521569368522786609410299922175022692975434624792142176905405844500266046042628952743255692766768850410246310929250256457584562606538729065897989449771961191030859358955506804273387508164832786967208563780594670195567088884346420700902327769569400204601535660850322224039838077949553679404944205399511508072740412991584811922561470107649306252178648697204905796955667573265799091071150424956646191718761228698035059420155926146833017232955546778953079217234652348024264594877855159875337600778227640999852320372426082714700472152053473032450166590906924403774191404170177636085770771093503735917891281564456060832317185025001202591449008373731243487006743239307408634067128162163708381699203445813544347506306959492958581806132481555294090077699503696276853289070104161937907892345330622007819635841513588877503662187901901806141438925042608180489140592112353028085295733945824873208643010152929208353744718153300501840792263810751807179459618825275932399167526853606659877884851974451307341737126352628317124276564959712138582017276624319249550034008819431722300164980520410272550676971392889763314613323475528578015806858455366853294063084808900118858056588642062128889547443706540379096313086056208516950458259152854750479201572940889016079255098357502256303531336459428155951340823383911026730865802331683735573385549688421642804421317660754747697412842305501730740152118436603170927607241642972617262453797107393646621905452347900546500869800840751964613292818139387101022414599122891194942138962105417397393850708715232539379376687952783452506072631724464370782464270187617906252196237433848313778903896764001306828122846993764477607043320408082596711999860823011791654851031805314915801471395782470760256910714865838479525471404126063573160018589860761744953155272433673285798927586743285073803009925489928809423776226430098566810010571758145309534167531001548133027429485509964391346792700074274541101421849596008030921995477606020827931695445201615382010494134119964276735444943410683027185785072538942254807972598406163660913610212957943321373460563965718672269185177552771204297462229420232390957738385281394376873513813866089195481299814178178547130729947243471446302029195284709604349732226326641450455274199458204964852790878080873550924758769756011044537155563887787263501715030022859089073778713931280190454643084458200807318106941549923465633540714376091725618342842419707690024119104937689736218161105789185541780745242652656368296540500644364015371744386245518693148929689568318418583343258433045219065736249958913503298230837176334721532578842864986446767081966759718692452503861966661002803146612749244308694630211662825720340983249811593893087111399156409220309743899882864414963330577555315964744818204527700270276203617751446359768220917870564966469033400595900701376822936920695753779565336962379396751581009564984264560553142754952491301043397710843924444953371527606615465203922037755526420901813040192870849652327922433383280917133720303821156648713996054748661659512804858103285605049878815555921830448490537644925170562618446232869306770030308517118892370207255649981949575971483946859617012778069717538587112077293102933052435054491260698879941121374200826023467092959580643106719510774052510863436628022782473027617592067264886370632179657519706987473559871508553968315527893259137406190083352348534769336295379956876707044239270224671892908435136557712050730590842198775140752059196476588742662115966032400021459574825148452282223021103882270940422246437579654163476864022592114089643639742153436208815953699081944174580915310182539052667040379762366376184773256449087162675313970718430015566401080313223505763277799369123775375496840493903443824646582168501273381105735166294453880546280500202590699148463245865270953062780892170524676451939826941754089623718253914206220959127054319375683517480956809282853219901075116752552011793862654270545176800653223397917715396526092617347533320365635807984002224149171070257201669143974941157664264015520721496240088123640591065283435589005789111814380778587396701132550248092000822158565188551540167951936809871211392009213883726079520807110881056173072904554314173137933391849931594176580568147323105598520772048590968026288503887833056079784639106750485664465237893123177202206644748553484810226217509133564154940438010817586982323400117072535173887704958827386261428911285964041588835423748835783666791495590503237716340617329378563610048756914951153145078811866231876152007793370322847056588020744386682784960890364994676155944912147144913715459079617090183800552454581157201440114467505408097523310705209208246680968687194619789692303769706711268783561389661262883387016569072924125032996230109829714227941118107958644948186361085724421819556038941972980366230603607081533609542945507491741925417446144095301116238431017169067158508066709537802539665986264674963779937460516855039012261598754430426275165854757784141938334190649164483413049514402460744419566182440954306705744916461998394009691268248838768396155596939299700614149256771326685961773221785536453706049427458854927588822899416635360482047635205987230177067823185353194114252717579955087278386469823486998737044705801990804769286300109510661401868875670177069669491475912426254568889668636729528448762665197326743859460893872490041042933741729080418940491385600273336077797204606738057673255231489874699717456705067262671479936277465068987943069710136506300554372018977979240835609433682138670783443232986175488934187023565913103645813320587918024325770785238949703316870315158175912842422570077236257654069872650923480082834873798381239260369615740234913072275081659111436719565484086452120349133093708483724543499193965046116760109917312180007662343399635892943713593623312655979503104990293965548836647910274299083966954436731387173918743193956379671527832979127529152832552539040908748967030447633489698046328760952316783988459326321821097828410891459526333299558604797668029304239064019660482701575942529754431779450455822270559748745361939457869987834508568632279836185412473771393046741449471434447230697171396807739624031785212876140026435209478157032642639241389718926117429478765936921104521156926603483373767160351639665097159018471271842734841810757381204775820383287284359345264645515021714947684890510306087779835267258401519867071265248901493847462561047460319430619919514581922450221803635337510575720147703476510859449675004706255738819079161340774432284126552030559771595659142468881128167440992666542263529652297005050228682837125457657685148084587091008250194962180977761754515268324336572848070911007264375895067074654635397649008033945235481048872048722148227264755862984380362514831334315585999256885513047048023633627409296307929029583055895962680801326207276909940673128293223875708226874284917578537484398311042170518694361672275000408124932359832359874502288784926005628859789387698116264953894062688457178647716980039032988637014098763234375807196016443456448048111703226361521191142231313892822687640345921173321430335864129182338786440281710945191837886693914184178763009659686851742409730703952666953321149174539450165925032332310485177020514679932300610885661599367663115139817834273938824364045846340533954197747994641370147675145827079595183688711780908299433660483617981553753547558639974502739569738364085365417265600880979899506420011152054839084700658029828311742433666084462236195918230628342642727966612061208006223726409697848234398691095691290295357818529232855568317452483855264699997462244446496904572389004896298737507181126078715575583442267959215727598073900059281050895665289228161500816432928347455343698623224585064019781765935895076591165387622559816621316345534754130961975185671014625751373336009171793223328457530583347045201820480260804243384939026769881344960596893253882706481826177293898334759274475290496188930614786315032789424499144458758194265395072928983621346666356704333490395916460528402617879354254430370616857183644970575295949674598996021709507494332300984331919788797603572592819411661846693589890154866882826262800296289620019849133777753441539674193598382461458951243530097718399255437729131408437091720082308811698262412478449339093281973086588288198853413623699716824619944671864730209619906998391820668812009974223795653154387102506657452854204343103263033344095398526947690643926344342573045066908490380859006901597311998429521388868675638167247402520273065810825703617950278010725053508242211471168366073659119055849876110187855357699001138842283891438448617055814301580639464571697288250748934285797412035677075074056690051386606280231670417721632678964152604352047302861177920356430410273069449980516637882535171575011839409542806528073960312432234158802587431033840417592204201718546852977890802726208789529262436013318947535680871240348186612048505829562354857027895815459214874259515347006991569444154892295623001732372362234775210643548948537669855367124418998021006009649262574522534369529512299120181248930975224114441377713831501771645509752988578024809766342622541386487127363124214940049919604954876604606120935947639729198637593485273810909366869950715824313754927293319314553496982211206627564991448370066812999570168277709664625002592658969284038756420926307946394845653759324061533511987480325749197976024277818310619823879821224811599508149046541293932045020356399872221851532117805493059833290782745926231947058016423933970697653085477783407690641710630955271029571295868343987681125469244011261021386229554565168650830816115573088625918014134097236410127112410377610123372411617481634980661206201975080724686249927057603631903767673444863021425042537018503238148005835977531859222783801371724284353975184469867565013588254983880962191027942455405768100344446193819800948585270488265812785336846820522125247867613229737105313293801998979073239353134041109206484978343561042675303309275821527357062792152824861129825420946137769272729639366087960098882217996032523782159314356743183435538707623463594470579376893112103769006805443698449422923247364736595134310674078245018047753150112194663782309445198267990105342565695446319721470550938135918475694150932842706503948753513664789665335227477525118639613525222963013820362959355713081826643818424239903320618302248791159330264769940214500345269004551810149106511576190158072847077791242132839168364953262250767893373238857998847059628903677724538482960274843506582786056093983351586149962782830214610561361504187171555096313302969710634703908647288913964733878479007587142064511188871822401243333013238256327732906971730795437637714533244285449158129363575863161113284630606571107441387738221518022306100560829563635105380754670405385257742298463587110746028492163797388749311023567917100760068812956748419061631312613346073395533269409100708562093497601716496766540705559681710159699595487305226756916238763467044315171972561213848945529177328112937008464564704597340230472048707499950174740242445815478066675907848529680433827301050426880013004392876900240816966030074625075818316078379574409410818852469209553893827175879891634907919970942810324151782972030186922553770273279386648051883483175004153268184982776672135861572030586311953736394701258833590753279378263375921498478290961205600799666053394449660765919862144659079948076383030547657386422864949970282352237692713530847748991971427855965491186663890744711639537312963185702284923615542392066737746155647305068979200031741577668176739385053709578533163844227928751156127514460438328488684097624823146553755400960799714717407742787763628548741110162619362445018329266955914243201168582047196356447032195907999246154873777229371774426595077532830558067206766878342345259596977947699887307803828757528836254774480839188176789940082409454008349595540418903036997747758796753126957597666231906419404362196556911775298606890150126329328707294617784158782243088950751980142040219202228131614528815287194257823257419562335697393816036625255591111911665721803256622768859591142094088948075122469721580599941646371974984976673873566849360837518191970998711022680815599359466911928124771792586218005182423578844210435037400785729840871001305450469241559132654382226693963368436972547225615555211589898096102286001210426963720133811221918057642970255639805717875848097497252483312201978310403955017299237631818703327042137148625219162351087155155705219661338347787213563053389864924993627855337613809689890226218135910737378452993763709581324162222900061775134176409674871770615634901711657878073897751683758378042127691432758318511902473067618539143546724111307439444284929154787079662842795219432597945190310029960349320659527799163121900716731500590038227331444290205856762824517013362413819013318252390239744235513576982955678575619462808375765504517030353912202979414098397712846105693887393206864298884733728787578710646598461276463442824138761544732925664908506965762150861843681118064237830084401536544747645360793694876895949727568362386312035048419629386587627223467255668327641380480255695671573519946618701218206992052460836608381356526370590746903692834423457261061120615444209680176724596119288632644819231218845058236895009610989475005651463099918075180933647667187743718599899413937934330779047373282377263800646818168755764645064604379921512431665903361025963147569337141651687854492492765072194384004757649661619957281756570051953810022756522768452282924386116283963531415455357723632793682357249920103839041679231117869982839641134221798830364311104289719883820743009605530314991086946832966922826541432461265680844754685184399852663962409313554122626854700347228316106497231341491994263482350194706825103523832439984196494533698098751402589109857776519528328668933321998416967106468620600017244566919220648704992211914822193791418901102622373752555831323091730960524879074265898890981661064616465200826190448378722887550711399173605372716207002609776044356077577495649528373684905808640327567945082341627435869695974231987646127952226068888082064919031788987285878829311327923006129111107808617167911543301502021088226950768142200328266583308795611167773225129532987492494566235497349144994833860841081635047261457293758349992865424391202145750889410748534771843049650012774237866667328168856896163699289166958337253285910776915527722431299099569573499240030099715249590671868997096558656114616405495028695246637760881645598021473357104187015840003094055139792593259916268153429134730161060495524211880097742114775144163574701162774011555594301410205165067484082070727501447012820319665951729506277688887525528151561909470317283046520662864977125213658989418527272627076478835638307818245055467800011186211633225510589947457020748494153718002490658647808188418360716481667187093354088727314609828522226275874707261358389844411159497510715055970804708230271813732013516410923600305093112314470720780670932700132243218298286225894113169474042559125294616194638688152424052638408654432442097148179835198107536790387899548524542121747228809648761490877229550835235493725948038301859784577618793300874976215677309795219918262832888751756775837454327142178983799918602772271132301135712049781277557121616778411716520389671399044328048244520270716324806298613750207152266981473876133944540103124835154369677954595603302183408079096735348696099625528882072711534474723867181473260958473121187713676534306844801964507013651213928984765649517343228875020342124812327908127988463051394915309439115993311682557825845903809009393032961436751579287332712259655147188179996239259139807329004455842375637287088498552567703848289056711598895210869811046743640849642714078252792985496040040596510427936407970246613866343254940541777329766255653348076238393302403935374188091738302053797005265968390593159865242067847245319415833834764052327948372968169959937936876663154367111524693098266887254391202153163504173198031162214390958465499367641724344080712704736174845648644401003670093062879765883404736089843996558698537292769089092507052598886078555419366649233539624885546674383211287902290446719178935955700380220659344287808401924287109128650239701396976146531644913651881428023981155240508876886237792349237408627985823811254626136094468638379242475761291051676438283451869025823400662352690655114732331684593857220281963976604414264648651581975159864440076909263181221199397462096796811289317249435107213316119612597437322164503765682701062806036671682392427241405076667960720952254565112138716617398286474476625201103228776376126128353439621357178984407639516189236447166127084708626678203836240898111323449813012893932835041636057767643442928420508932868999769950624590579146805120963074915667441410730296923595527673848986220705065007257455632022150879263144010290204976900530351172309093092686584180829737323104921982434193827710904101141687384691734870675693146109012213266533482647398458057039476556762201330642369532021139430108558565263084056059728610661308105793302061823394364938672450395587186525612441295803712002504931222336699864419470556199145693024947125387081421981957662932193471768453292622821126096202643037510538984590114351617904066741214827759910564522527649087086622968784776385254334529217143872416798894951422766222835294350393399286857360684177047212354765976803695600136652625573658244012702959002854318089058326776662432493135214172252711197832983128345356040380061157015687500710142115283108264788944278612446480169777420451608405345240099343748915332310265928921955234634961442073335691801972185762968997010480013810741124335555788581340007717174786703740093454140483135705394485420688654424273294187041351420088493006025899855277725745705139680796765394275319382264178540679595661725579737402011865661334150207238273368889813683776372465327133516987725507967612244471642856824421102849088354548175261331766903094269812344141611246613529744285099308676515303689637693438564328627782086125478259153059054190187368639721134405926721765671443490128981552555353501249455067886714474487188837660537063764474516270156428271649396889245019176553006896002881320478792514588290492397495635441929159182318503836751680951194621292305533233698107842280564005451165239609173042942669091050520186269561068139575691648165359097827916863257778510328246234620660160314426572194752873013139628054736654044592029024247621227485379252582337360803284359446940832665049883797976502911504281553498187350443039788743523019101349594789099298527446375770041474982834399799259065034868851194188923227855170347305014391365902976326394255078639089261025024061349003873071648800912895979384936626454002017762376206060904685887922934382015720569570833597166324078916732650304657195937456310334443782923806310070735210054583824999525934520852300854389578039349756908016281991783149614059684134655284252210953854792549021340684088891156117997129624597259959988344616360682158903040596278234253612841677214493574981797821666179323892609222314298301928670924457324420503294704152572644279394500113013178900559821775994694236572257638880959126731103714665665240611230061329681957987373272386162835732809720011285342121560228422067323088212386653536045956023163029840273634081205792069918659863188635702608385962605738276668938094725354450365584010161355238125862816363713974919245741965257453174929718439945585205060795001604981822110534258552236662137749218597919656813997885553947903736648775853107900773031367709793137235286595401889363949246869244501563395828150906373112216970709194992931166810227288546063018836821631244788151076877285724333543133900381666393792209357643600038092337054124282103051157175701312507188293776421034846901272475149001548589585897942145487743499453239292780022147943985327807717972181035164427314010466420675113074997930366819540692240784203893625685991026091445007775976702696099123168685326642170199401240847707956607612018220210711852260171851596031913340178004686738453315174219757610113684791193826780499267898542880116677843972449364215446541871415695287260332501820489189591121275347345699877670432812037933615337378831708242736933354262659993143676856527051402002739950827565706834546570344720027815854361265782701711078963589435254547201487611077293631443073613640403375970165216871088563844479267765636148070103019439851640298093211429792079514792644857719076629646814680692279478712201053606606203913911473102779811511074502702783515525713558145582976940940816329297867004487704860035831953595101119356746708963732852254640326432803096004690925349901899143782950698576794150085568920349007017306749954125166721389161031968961924368203753018299591884567607340174585650491475778775238586709775595793741075297681623733277171156904248664812280813848854076883116057418151122467138850481749205363158391089218240039776081447011274789556753741847416524035337419808458490778786908883106083415201666230481266105105794403092717962456711523186401126434384068598870300336616659204375534880222188343696871195567790418642383036562891662580084561699322459888206046178217629643592414844437164662512290157983365992659339778981868364117758030982732843984980062794830299950695564164586985320896611330759604219006379715050424686783143578174722800639474257481963475416251705440793846728326430678411654698353885734333496362860595001541119996532967898096183856993066316583508853968910389285667999724661146548496978662457531559397367076333462339695229935158507399241874482873798169670617650492079769829593181355062325231002509952853663837580553149856454431158465986703236016500177265327670114208651132345942162623701499699002408267425076476121275254587884550636657350628302227509145034310228463709086621853106492315735727467122753718012829477490752989152568050950531483782319370245292178756854021400191340729548813819018266696856565577632785293765961358091523116931227349529590407301910363893846028888693444116134988449589728720250897616943361611589057235505374493165768270101039426118030058869542040948429383888093066485275067739877613250905090632469103406902895663652944379069331815658872942989213168698229797301682696477257249644828450043690932543770506952732436541708962326489417348127783255134523183421153319801648192606223909661280707607574352866876020331026763229621989961878552264023605704515433277432369963429909308602164221056069058933236206878625445925932481814366825857950508366010303775955901920820001299642550974416680888702370135921207811350013090748429068819565319958478181247907360736357080922451687825983752265685790263425010454693984089740374760186462758627618618815570529421339178700150303614698233236546010533969838041286954031592534393592988568404884360435853281162096775611178884689838918203776778205600524236696576133979945096879077830758482445227381175549894691301533907241441147897944548936598618520847707628240982302083719085690205772842160196489234420141089219937305325744927508708765232549277935380850533386713201690059903099906721012414329158372769662915511484696869213782418646630709595633714279414801634893909345039137400209945005440150523632319481969822741014450135888016020925262581213722562743331812791644007854228493443908534216848303599640557989186484024444774956330003002813706272069861893971180226352016521262743628158566746845699171735163232495397218114788035933078944702193986869706600493278669547076252921000549023828210934710986278175405030318849724906349026263576234807051045531049953316202447742578008729393374796151745800189605143209479176911148745034362477127157922819323482480681997107437033708740892500685424682806077436701636968845299636377309232591895569652187635897135955160143062355932430297060433771187639682851899084595275548766817479673224087335405905069562016196568826206953287812836229470804753904405570438704227594469136623935874776413301704866379598017793790184795470995685959191145294297140076888583218940032700799420793000267946168888925883881463021906134074519130303764261280754889739149107794029696490101662034083265562141126305354223738625151863001249299450381535870709626314773520481192260759245104730680088404394312591551057667690602341430006807977090931672597807276369663107392739842295594770651384990786100436984390335814015136250152576129721903233964756497229955264506775866737698069585544654192243980210159027567721021097273679955207363659103543458829823202305279632739649929935813167905645428986681828564779168146113215862680526103515938205733607236103454456327208122942065128825786544513854328800878970246859309658689927890004845765149971474305191991629475318823760599297400006106442619920676587854910805296666531095282042280360250271031889283089563111630044005499249411473550587372782927560479732830597290154767171368433529871757502108272715007122004475304266215932926062900354430755794754929753043341794716926625515105544133557404122252840305050008880291825181375363657492914003269594590727389810033449368377284188416068372606824416483001113677057081429647844230781952417528320036574994080272426116023963290390917365350720096536556886898992409654978880282988739722515246264273709460263245949152594881284117872915806624281315756661406422371566842272193012608185024224128385385459403162198707555361279988798860255747415569393012839509417250384662585545877182238014483710287940581999925939426827583753058108180810065272512241565174095649111623910084258019123729307521326260123128316176273017876473124830650134233553937190526692985035637349376750979596546977835952603665473772368781756115332667452602862528219635610584112502461143396331973445182602874361570516298943960041134104300942039951840982014680158627957886594107509647786749728987163118574723738673692120796530060866002411593064189251178338637895356343078613149043229318686070461302289390888818500707672085456339905429561173494072243728335569951008792703233901577687878025836706294779716293113003583536367803601078833248914952666528989126491921853781311402768174134870065604644656592290340763402779685227093360729485039399537969200381551314954971008570507403796437088899380543256869148230586951492375805152716323170538304597625460219585087591713063514379864736909705268354246238516525346531778199896645219620792394141509623502766523380396961509239388763462933899264413278246453333320517489223128290553808916299462910708107987584521500393451297090156777453749299960616187347423058922442263337522320835112239795793765302352276025463645366462155930933944718614530690978727297676254840651059952119155705009420667080787575201225159717193029178796049806339004460158577669664035798466298722396242226540034385176147650131580398052378148648751351855141875130416416188222896493196916784362649677731009045675850592292905356850164044017207518008991226941895654571592065670372818238349131065075517214166164595096370114741329711379553281257390082751496071177115474151536367864331123405634789901483013266777681311435387319557665623133651648595153690111325826202906787425489654514130149107485307145790668119671749206524828027205865052682186863056198472292677804326433767135832362241623790295657900157350346816344017087564835148867520512744345988370220228424922322777190625277474637845162515540645384804580026570597733883169037799579229589736826908350715812597226848069383737624962125692524023664346689225287289302878830699022788405921694999137737201873212362141707630963058249888981112580000641217856677203873265805509322844388972029120316419842008620767956537362236856783492948586965359596826578037402506175917517461351451398977442743103159586033809762848509562912377049061287963723951903782472309715989795664746615569619817435078092392743882387822777816015818653186941765113566265890346411088999999906558438401063617467826874767409333441075357335311449567887337037659125921237963438600493233147983304730795257939529917743282845902191247217589884218074103052702544007588682811842418757441171703511003137978663569809899901406568591732797569947362250544898316661093010965661923873191520015811433869058489667269479791180236069855026633918934145943236331930597015632825433251428508721240113472603961249849957460943780537136335539792746032889067035781824705761604295988500902723678190655272971381053420738410472265337989364425559172229381557657395121589842717472017396482900245471275435126638489003667014439312962423775705939656829348966978079858492741351652438486272381874712111873789522641877104868484291440103202765394368734864332500811909703594826900235351255404687734463422452233771062217441884334336453027103216133186769870951152366195572534921927081458953431456735956229449711569385335153419189875770139651932920962201734026451258604479389934453868418761934950552293280373677910373365758701169589641884543019641723814114609833385717866517132410801109490698526461744888039059891881606736949741054557240299530609461790531042980006214193560468463503472335125730634465068551456255212082715397067044928015901672569037380199311796602207701494774490355420178893917585897062766205190706170398636941662479554388095712868748062654188643043304245316115971967735753062701704944244250501932594456220632020737574323544972457474146342356134930709833875831166119954857570112477096944179490635331834952421612630693858156502998012274268765248726405819060197367933089887429178503548318704032829705822307264527331589572208832414256371093963184107704484614694671068671377474666239231988023864837161152700831474462411626736348274031619539435656283024386532748806747709932386331624534885947203620332155903043124021800037333574190395097281312441606687316266415670145266431144602938007903516398945281048720961043426534565676243488680674314582783408409562454349989628154616592821847255291887640928435457433357146936450149954129993806438643899610966508421357766302914124824008588742920614817937538882216254090507580869135525797256359433569862410073677186862957053318065204193208984238401206406371841382390079774369686361806132208927476165561658642012227629514036873040527337992004232613427766940839266055782287612745937867353564506614754541015854528319491461432212285447345111252032683239861309861693924506681438265074673127004367626575454377425136617901977403420185148593588498690606719714174476873095971256036353701510176742801299578662114088547123005536179645623071406965012717014322688858007918140463592833351483992291875061869051582896645961407515691481558767571016067298789687488678913363488627333236096937527757035573569923868940316629591123872110857717951169333690174534845795223649230049614715153903411154532359023489310963327274671013596156130350698323225726770707842234050971719411262787142222455692802191918275394274515242525582232204979542696294930130984419227005117541361036771230805088300630473980142094413105875762753744728065198814550748268711392604506717214882130582955854401250777105587463552667496996894206646263820267048279424354195374664259761617940532122432672058137793100936578260901420053549958475866398191924761166815110545343936818364870118049817136793052222476941305424302819672546366788240848016815307970248748953562088291711791648656643628697882395025977128878682442431976255819338618564554183570826897015462353698049033611172226053504105925855970671110821063123572598581161967361720964883330225909230523282022845403720531932568012812109506795244153717069075593532915871041529934201440981375783883519396339900913794805137782099529245076392172135263425358668585992436832973313082637441870455755164007393344127279606982714096162182793244508585812463135537123179737641281878797749715686259809526761150796747912914025655647464432766673309022669914559406743920793349303178710720630662953880525378466166932899880885009812824920339672282215313125291716260601483189106406735585815805528388467621829923520440637611733845834841247390536253999327559840535762387250255199646844556661883159468401143654891093186724036532031480544969480727578537391771548233794608760486018697967610673326509451109760504816171250315871919778943264261486367163402715256934104226438177249916520262759865954701336703737529137403125742742702927889025953829455117523983282451162890982578334763480355858669705671053435303761852415719122766344260780683282666783163350211064989742100763250398760642993881778447232757762060727214154575144700309377300594065436246951711777911362825853783531904530895649269334418178629774459034098128539851218307844393355553485062097712045885305951718722454528016402458433126627540197221421471836770621174269168819076887782351652788680928686340709483423808900106214693004369056927759245258739268279426027084370774917058539358839319061078076359896805260114589691733344541321415157137287039369362560268387744037533284413899439945619939027090261294530318833293677484382942814893427048500634056169224762712628876296369654437256350984772371360893426894438265283553672985084098745257840691251151677022340883443430445572082736316831332810089706143587903001709940947252865907626006784979807290933884558844306761456001655124822756279856784203501305125511280372820324941034192440954823436681237110885613015340137861715542762918054417710186046375727984172580639150316064307070586093071851740888740796282023093849584837676892833556443316534888962818172846745987085652759347721457262921207249968672268670471638119320929732229569516913404305210091921378549072185851039341876376877590402769151148161246650279262309559948061167953337558107334676598425916695733433534007767925479859677464512961990369321491725713791913512580103508368380607543287929438120668913695659825964831803011706198496301961369820713214546701870190224438849003194466788151477992140137157152906751685811691852640430338780295091554843973871666223243821148230589942557424492145078113072814196569561705236645087438733654406248733259988888853877421610797754797190437895437480130405437490863537855768915628394851506838459894389476995654627145494881503023063109237964169243810919449139206525117662671918137383232233992525977961082171477730194146719968048910747169447350173714930519303135773691099122434143658165840319671231161547625158555436485246255619309663477200437591241889469450068410997011441826984912915379192953171392721844346734439980789537209222923637630551380466421215599202758127590143282718647692569955818710190509469563135654660700913113620981307710334202524437971358363874518355409071131725320736029627030256972916986992160849446205353844401982895796869044752737671536426808977473699794779314304219095726782456265330233790020605357706616839910247217906792440786596638521882814961874356063005856206272753058296483217685596640404492652453849085681175783135051224085542288933418182356291827290419861528251864738648687707771635976304790454029816419065396322116451069302297140399332821379402024602079437208263933725591565343709209371336171719389303444267049154072495936434617434461485860084778572277848852869262315559081196905762273045264724640220113540769138289572616250308521178412120977646351302547771746081417412275765825797087094984820323496753140334055909467230291119105680253944454588374768358859585735411535702354956920131041273998340777733195530309135454557159068102510911838116141874044071367487425970169473669046832552234204110588908139455097410567481437632947334200840546694462968513086196056931074873654864692421652327505458675294504649030610601340475706227921101247107415212365254919017871680724354450994619347229304778514954646333670199992457697371171733828110502731236795546736181616522765695944831683102469917191960994445277133897033089828581338507013556964625135181256750937134507294478305251713531446648583671730550124134834314196614436979013520011915550853029632585377230160259271970678674564558416967009801318154447647212639980164095356092557867088316524892756459038559618768115130419230256256754959056563470204953370886797805052786155744115384704407710873568973081021528879742917416745627978127000615524382098369391209872110180898864136567661017041613349652191658071183763129344151360154837137896756418067650037762077003352551878113643689763241171098414437917106048202275731433544688618481435037201091884976825146290714449433558954394446262520222038600991981450547621327936133427110850962338116462077583345154445675307891319900216674062038822305010609917720355911604312606378796573210336956196300860060917316381978203968063394292747253058530173983660714710484061049980500890550687924722827554533343635553748576708499164004513700845751469256905437194041002033401785635374162104293763226663365446674262320510130889771096163533069883260186978860528552585733896070268210010449688263351358495726105211719240470581683873480657650408038515022043335153848007647423086829249819349054434553595972872076668429613100683001936034990576708501602601920437682603741859112107024068775793048242332433462786189553061419600039612857272501375868971905051731301905184140664166603166997523321303635657018716683954317949257014933556137099108873469272803743792342162909738118090787772812859461479410114160346098187200790488614927835075817925120126807364197209774497875323479654024016824661856602291476279498090958092159091738665412462723538448045364143379081099512822475439830116194925332652619416855186382412718642614193224718349717759724613937183369840525022854131657667655158750893002426040324847827901421201051421720762231332930423741666329511195221470490795509494264612292831098503729300971348434844204880598456413732492353644190189355414552586693875309609558311538788496877811679123679689111720656588059392350398384663315163979152601382936964589611021622568319394648772499535957226325191446361273507154018000884602850135924456185071982928012018838981695418380242313847068151864113014278547114187354077465006768390625205005656480388091970204914239276158245622057820538736844176176957747541698261136820048331523401965322831484736265510422384671030534974852142024889878551305890788767788895194805136671759549360905370747180323932777103230052842002133463804262442750823913970308272002827321507265418422131952573083674915495495191741649363466153575772817673932506073697906518574380015318350644019280465826379613621855975053352101702488415897090901332288966447778623998281180624824167097990426049216249714615794342513944055207852157120271988875855651145413267637046598370804573785432541593876274181405379079837401777078912800148376135024853637688998155837160577352108407176874872885423752553964139228205725434349615849322614754071918506581564599348462985943287101072872753606909988128004415120113437580907519357969209629301773967243233597663173016162582929237647377869380923491451299804287116547446801531132490918186635829966205142636794322795692419874835773480257401877059601874651820308292455336090382672989533740714186721259638172897039811173441615843983512374888975941602452346861127351747859857348302627845370818393650340884794108898265466653624283440693075479426644965849007154325136765348039847262325546435196394557504707130317389749813575085476521220606314387257152388865253357030546761165538905644187146138659156371319913029229425372028861782440497280644272692648516366459454685303890973240771609576228566585748391733293854343699904345026677943635395544257168093632666133997853789476391203308764776987483095917275946648355469382639682318006656427329796338733507330403791927748919287790087719457061841689919796368800095798486581826781637420773709996784544078231765937267370033750374798870248634540804806878094460702523033506960360813800723363978731880862439705539835952718380545044274192343008001279958639842296325645987314145611251953604877555566341131286648293555525843374918063219852505482196781871501092359427589408876509699415068128418986464532184802999668685321585031606579421912796987735450427540587310033865612166298849909259681828551093691910685576874632847271598335839020026329184289814470577648845343599301646801300505423179801784002767106543803306909301439603622236091280267893390636857885259112376545638037982151493468971756110546397270863324034712652517883235615632108419374854128318677873222875168620988306446451657427705845698223278589772453298329646080452582684162047821763397343059371898435995851640340677838707235173534148784434679495607936469063212596612942619218383820773606098396323896945431865858791424414557930919028489279707691004401458590222620760066479867075306386831889392055258124289200056671641986826482023937244459436307250921331834197543633020739663817848323418269081940184820564302339662213325350149719866204025362507666453962686451921501451272121603792543396380077663488157056169594288926550583171298979592618111696012790125842793074536691997025116762449985350782295471571640614468269469627788357789355684722690021194960784163949525564806772262749399272360341171492622458372825189993014005764020390687923648038135104496219329644054291561634373579594215452507798975945682227760891498217372982362565519356292792478615437216006541692181718331840365337999188920116890317617591008003905980038833495141763197339307505283232292104212301275727040933516573338182474691837601693956275940695424243317466492646136222995889608051691687673331357112538200061801240730473968734810948401779098084832502608946437464321809373587904128041498492213673668319880478146972036223174090713275118353757351088313967565666863598166460481400878813387619967378362038930472643713407846408877199767251893647864780675264486726207453200827066233718559676816414509582499178126012771455554809511424737552498001645147809479267131751700452612762859031398928221493003482921878264722418031520727360020541140875918316718461286966395319233455922504601441089570018842597069309935620807328783456368725931839642478051334188685478703732752395811463393938354097327397668194364416300930670439619285318808571246115013428490260531324515168595492182278436284910536253058270484311995451920629545407142721708573701725173941932025207731063165356856194696650940422716301034064190846546889012722019238107010532037295901977097523480975841956116702721839944821412758471547763375421318543689160723868962983740588987138925158362552998801242658590631779708289480096457619973183249601327694645783772128281743804624832687908880478136965961275329727904593751236167450132068012240925278532227403555808876332715859720496571212839283147561272622895802536749201489231434499419300695123038542691257922802000414028520991170250262136496398608960806953817463190591617366317774193532103522288319106338280353308256779392019406179049224664688743986127389973647403474857086790156013073357775006774533509456287363358125760790726088797084352826465910127330335529278470226256523911637693279294074932099676012903134896568031931331045307036689698707353029641344369418003867330067057797737606258963542759794975447044296001127175031254435360390816128959797641939674508258885313440649956144834785863095971237498457758098614691840773334084310517620602828605034367455308225916744134501922583556323472459603057030647260291794012272347172085700601693554759176180490793316332111499974043664990762173150446365922016832816926652212687686874617999826351503336385699512595644007082330969891988073489202167500375610646694435596286282375245144019097729314176982159397546108870106643669194397589981438085083205491613196745331579078944842493338162921037032808394410501529609456713769093112485660628554952501076536028972880787906401550018059475052785985316320130867776705647497503019826414553132476939863888420665857974976191199724807043691409212859767621735767802336745537032375548895923834064674205284398310451075127047090057058231813491751847378852204128938164267150726851663328712737586958945475946126506437277524272035505701436311459280423529723312324096581521480651620109842446814669690892481224537207681944129608600369056928596874813548849970520938712933501344963574113852368219547957163717933215729072660510564946660327726859406591239565777614567741819047113922974304121956656044118235542864391881274527501002104305347263719073624827587221696867450332191894223137295958749034647088799491883348960126907246239534848191638653846205234305945556459655272243659194753084430474607937083426091646717222926182111824887309382449666701712652446933782471032006572729497543915247065612512586109840319960711129857387718881086668266562894108870688247247232153671771564528940996394880487374945827225183763536902260654765759246732596654147582136966070370087289415842294402839735957862730701029495235842029430105084348308260252768101868671687466070030383142429839482950563418118800750418158186954972301785951468875082244730908107352926847008762785251467930469201409046347253832168704367097987053463612206592429033516279770378196326221592199933044538796561732648579126330460801023998821100806684131628927670222842366398981146667009847637481839368200971397352110032286688113112074132703583226892295238944143977545176312647584195659254484368083351747882831974844165170246344914749770307124735357417693037386954538876874175382418366942972331451275436909899377780880399967637906523264497754786194626442314396710946687394689347820895639554234741779882709524245160714335599394709297830570612836339198239847422265642040767735685103719689911231525800831716068512803113518863805787378634865076492682406220064672520986350258391303250115329294123422746326653445727545164958698250367574040789984926969265998366134748274589280803195503047734890374274608327207611698055865488926566662939258665718014860498957399008543543928743118764542264927048774247521683379420189322325889653793269235810840823184387088615417908225822730998409802846883611612203640028113753790799642768906240638724010626780283875800403889450739434791788018232597301224049411608341805181370763431198614866720156496851647058911239012578924566080764172351231269610834772189332229791495063293986278004463005960619161960080892510804260937651649665668035328675225732164911032128396252944709503459666947671832182329728665240329879455406397833743470065368871722173906260321157762449485862378325589317276952925315188238089492514278773540967466307837120356713993753330047841916435242830292575663651798669666324703449658157209152161621589688521401502899917559708201910581463875293498242137622961471589290043661646116000565341300526311804946310784550675777945216573103448780796621027961004831627780601909457419858885234902867560690403865086480535187682720948464749811869412468573716302021431680530934675890494957527192791352924006961763890113064367873013234085728738692912818821162900227706338917627235190225558119453070486688286503790161897573325409162336244838719817298822449648089509369492854247608389552529133683800973232274227968592385064172748414958116738931115438937055368944243783088865362345566669852936781954366414126956635557691650354474936825467891176489905551084890958674944952514229726777227242119415920777584648794597741499123865784951486638713079630510989741042823903793704173883701650036635114835735001898248333525635869161976650733213374733030329739863720941019078356568282297320909284494002014609213367324685845923480330721179125569663982298174584662035458104688994985967248706355224438837161711020516048815470123806367264670894258455672483780646980367231554191962071945894677531297550910177769161191566807465359021003355012558194152990267669094991075219242275126092254311008914491821899247850230791237117154074126644504379216878865093710836645975066695000737808968055931343916341548017557124781848265576613990367441340512276845685455061309211665142367758196665380702967077587965728652939860519360314774026461492106174817192175690518161664522969179095486189412142903253429386191433918653393897420839199321341346762763830282165480079508594258483794450283268905512095265515046375324062375048279928811590710840328855610941304912818135406292237113226236925798024977958767896933438547064332306437814322148096269488299503631881148829020078410812649690699218814441504400725480395058580718968757871099650368590103948022916126954572186317253644543717173757156510768731342849632927257268623145313972806765667569345953112261321956561236264851435583925364149888944302703602599677035723325914822299762592986068370956426397840871480287423996667336921819076028372650482469177575857144447600606432061487717122701560281070282215250820704990547851072616470395375675123487174741072238020965785822336545220554323741854649845997884966928933006182258432841226691677539453066508174779893637065663981487803264583658266726325052283528857872416910586743436578690436089291600199773085644487554928661430721127488196068699586361395308944630458196672163198213976794829861479967128788737865890985323928717108556381252193234673744172884084289164187077256133878636979511679207226042730201994249997545512461654210967073045770647088196879831966111531523984204260106813717261496027101822645778126524013942514643527102465841538356756392202129619414265180345473609685257837979530139060805243573503346489760548326173112704339753197102649003961932848042334601777968636838878484818487563321337038282940259004471681143338001532054748876980069327809217704148816028021691360508141014961829254343633882509194932271918656260481121007984127989017320791665059047979420999155567550665157990846651287066725704444384361572947920376684310888848091018912344283308144466798580356465071718116343455477771345372632906735042829885341656287556457224336588433616491982912056229335276820517674535328482212874114884250026329642553924524373551000245291742795639170678384436908628762530307613260233357604627346797875582653457540597367525098157186803958085358199381081009318389583481594869270645550887701124882705418214170286422063166720452061106346538452831152814619968056768899516686136759017870669419432442547393307943857637023274542348087172113865462336945478320579662139537765784320356876471679093243084721861776538723553671274832823864990344234112777726830607568686423576715036116688683376560773852076513329641447320829013579329217982351620117659863714127726538282253420033120275339412523009682016544024467011820283718596078210334910167129770894408444711224704293938351201778318246657326591846696743237685179046550374029854523097052518573993583895898706634930327451739019370833146189619528297087402102852634223493098357869789919560407002811710430342491058306458987344282269886777299151007902800433272031739113556183486971403079830912029919709829696013400233707040784956462381619475849177021138450366475104334508891357767233539208868356132414519737559146084641972846002696047509111300593075339940352050026991133853207195868383138926228064638652189404765853952946944498293441369096434675052469050767969759060677976062746950419613669571488927384251389634767886601104329702177198436054906535524349908779678950712456173961261922564963878671880057886186976995206607481478728915024113482674325713664014958841945917469194587911086586943927318993574381791406017185383330053994720634524580198561176611272859769767477318470051304429550880454477103113114075867466190571866681221232176294249238784019771377137082935568932126498818203730574945369934224738524909103477080782096022751307469733075212908690732779407912857264712342161736978710291356641484869123670639169430874864035001353897451655039331141968959540687257422992526290235123942269183970899450826034021086445473730373217128607867823863374798401420860996473653625500381818150215454554529021341515376840913130899053053914689781214706026314333145103684278747407061134421011694315425569002697445966476961118470957368990798791607076653760540096635392612751261296740573384666853883930620591470760280786473345476446762033805131607996491650456117583640276086037444939684545634163094603742603236268846920646647497932031164707633366797132020596441051836290511630782452912494852723175677502778729188742346738797845231961171305407178931263927213658314118585745370996463076330144397992761702953777278264727572998631600771143743820861417389340429200903095370440700246979055982301586770241830625785138826668577750977150379159356364998301946633642664132708749788376011771002995653875435049884189427590989561791088172048257626201741029836033952790020379305103793853620560814766160443853440164731146333201215046465352344223254917928274254275233719495320976270749689804507485658927820533672833737454628977450557712065311118763188924922681658471738976389581668474930926858593532528262557588622453124128065772458625983113686395718514679617163281914622243067031900369306585555421305317001105898204035572181856527092616533024129457529376562294843005282695569097852226556070373641128243571296375885282498620429047794647420544380948625901552711492310178627945558356575454236671117721971190970343145911321555236409652207907777036940606037124164626890331437056778236683897373284762184442137768559650060933102053507074877938711935774983749450144911587237245917468747800146790520569141965189482343169616712101845751509608416252210875365659680574678932595190289787185212248490020033481039279164379672738180212109924855750725580092244050749558357973843182830087719142820139454858448334123882449208935896526145821655288954463420239424700533039316373926809239238803395872783531587758489487910253269188603436676703972189475855296522567373864566395181782492862019331051515318119013159852631654918283834825394888491896313316931323325448665158432290731514717447521292755721997289915197605320177829634320453626944837300941742587426798928657530314339761089661158778736067535375758292669856179231531416586586701992215323237542632292157570704274322461925270354227652267420353890540059035634484431260033350379431557183502848443089874226947935150405142412141630629555524804670767064964940930541204761637010943246565588548610909644749274880717215100929917205049802311756688386107391095932947531249833319229716790417698036656819665223139485701488643252987039711411464558543206023252544719272962573533382052921160919523254131095781052381038433184033316566247970163728376059290235942003013520401834977624081159354396269646346720073052595435849611217466333281372617782318715214298046019760471203189253265609988887432725084552604914661511852284801700973179449804356760339612947662646454068473736518087064136971213681594941183308574748701847293404074202495796395776811095279768363034305486191120645094847529754975587051001051094707243525039356603973813796262492636013863230554223291774770718675930451613537714589192019303223431411448332279809470650617902741254921094994335514477906064157149412432059686784959770780650889614887954078089239634491924869057714933941804457836539266207368862775104562172519736860715200648456739663454680773953300571782363747812597315896948630799247363899364994585152069813439221889205842837808384357590570745603256013964558368518784836109631890864483854453878567637005747286988964195752044116464821081026386090304039895319380008071040696946451456424074554329370523789584575758973433460827025644165835740423783365801467069666045033338648437508146014534280296101641314175935903958677277332329718719906755984159547470436377527228195405886686155815401438463873839322330256461909874496992740616249838391112700860938115084438750822319439756410161667326279009572276870999861456231909656839100886765774598598779875254907377676833415498005932748452605040758080895677912397184250153939198092998035257955334405273633507124959133742516951217958951095913498048781443649310014995012215728709579018499639552279058800979398882752548757430126677207571860336097142121604612974292254565307420314566578382121123051794287120896500694336317124639385762002186299767642188827789904891659981202286370554216517500018155502924956329218720798240006411661943614666481188717925782133120267521996029746843994784971785635147800570980529769961788103551972158493800245545833456442729865412762153669622488584426854779035631153027328885233048306003650069308222169581490024078732571848602130361663252095583173078076592612745526372433401896338682752547189242200359750883026537438302801428736652683798840741021814529386145757356210642295098388077673532354907919812826923289481410034741684013730260932042509341111002452605781420176214395143014262418644478136507210743836315570557645482726474734880611362907876458794055831846779678637050575189237484175414366005124840153980655610726996546160755155345519124417321027083990568659010525358391989833557868065503909291963785038991340340221347993890983753034418210719481482235519333437849042933922065636639168859133255190855762862105618199609580638902308448106918308439222197324282818459998162255582718245743587853372670590803772702913440039563469845923962810773546504217632056917188487022252135044509320905347528784632447950441323881105777679291187279722155150543294397294089528241918274702598201576015645723323375167582067409956424551695138943149259979862812303551449374604341759879515853634397589847569576494135190592951898726513045011645219815588335423296548705610330718459424477908886663087968403199404428931327978616213280327313234719815617760068748428111029160095676919199834906456666225127234635288033279752634531598747606212892457536411922597622098329642361017552524255455926118340025158166467064932075706789340875475283866407328703605225845051599712551901995482544724476308361645231250612098898409596041155324654331693901025324060874435608885184774520142439393781725855924752046270938562778742010081669740310146116453461263929313258270086221450411831612495037152863147015323991503286140181924983936571895303928912685472134714692175532846677110135529968111107509331212749829150434879993506304749101515136854849919740676823962705028035653159473700647846316913300281430935036275166687368210755471459578143515612918131543258356616656516275017855632695573957856016438006725992570967479985206051822649859380678726039328317081617866348705745605529366920080510988548672530842899211167128854175613176458238888109807932961388557845788296609338517165051891223692796996144962643826786662920776224371400844570025238241324302172644972718592009788106833775966715332488162679531543247538823925923423511388512225300843459373285102577171841388508435138167459737782590913681534615617930578397053679578457573331565239309651280010705985798987167476493038794971133270156933216108933909983650899492438853012640358593151425691966690059030593157720498098819923232588754883505079102653162238343192752672283910921925104811363414520921504619971057221696190436781554354861158950008476585208899148784707921000485602385729281806403297078592309879811887071385162986428706491730159123982581457996682704446223023969902214536398786502466158655047643983913818437854402487523496771406223646104693431665462533718284362396513735763766221918236099432612544876979985287717463615365587492650988480627298221139917040446954370366428775481111558760285200973502196673085379789772085703089562070607057571018006430985854487630577884720898042148018207851367053948304881715487855230747111894807481161185836322827153452946597780912486691399618014146800555334204133717073885976207991140999358759245628877741594924652422977861554400527390742191603698696427558127540354738144925028786378782818339239175555309193553395462475139290405969939496852330620524471509672884992737210823674115063033711817932435373004557950905463488679160004493242076200103117001359100408000438516525457465344591774699637751054704456432909670202168209602428798194849686706233808787165174640188650276661352255046638552230173876441020763099321044774408243859043743727012697296005367881048194489706501862229665409636063798899228658368752816093560567481069435984719545165625379073294766060963319025417665861179389503407642765382440867626148423569309569030167569054440056590058499322534845894073175717321810729119747845778646572697133743013947535933836339619401349386228556519169649746746051653658619623714566293911525413552824596127621444956234490986886215858859544379002656708853279655551445325274234559269836855442910463261201745520460672750326678619257612057958936133668323103173496716272039164294598309402288496471201949700419877487594190293015784543090460347943616736479943698980263643869299773164556304728773123507598237746716687202234620209198296657244509874579714711651780864022555640781841236751755055248611066780392761127251404647763391406699032741301618086906131196562903216584644224464359774448164507256363751586433414129386097605116234883048873013768649202230378373971825369868961912393755252984654831480124093310307646556068238307672000439817581141570934161186610992369520762346206347768313126771089977300511287314071036948079677820030507152902569671153387407598983299113934319963788924891245788886565215613207399809167503132896527324003612901118812142746612687239030536335297425265577455558265419414546515339754097514750316615924273405400750324988326661051655119507423161998988521677261292566393416021921229912336860684163264494011956400673239832880037116480948000402009672779854574379396286357283201047381277818252349135692937866502489555609591211815183987683536247304853031593297225189063918332039004164828736060614926921219137521808894321083493958364703929698224842821862650590159990320079791129267404648113879225297333055947621082610491052430236432562824428597291381949843025196615249359713889575166378186444020249502888668664094236191810027124442397805885462931097194847083623629121200387221108861548425862914725928046666393579899033503011852247147048055105343716373563135821753135853852925935316972769812143579060216126037306673754889129334865416092626354507066096891318620792461310188919555626941482436698696120779911496131318566004932981461177616339164576922248918212848118464216343282147501941601641439772274985891103627455240116597732475738305068939930267133631201413618356806051561274153214911936234049391476563773407668981254039254152287001543287368442533802853978092422761080366251965745439816444332538152158127711883143981566621177327225573761780817918576260679613000556569685195459011335691955194064098233796782312610541870923179828776523369882983715222931088700523704359528852169887528302942994785954083405000571127523619518020057356462347173830703293286728949923469657805028755920541743976765604991114219603795141862193594685566727504378554434348153014612330106248543113059107144408084017185900851373372727090297876904661074549154934460280834487982830351242529455115950390337312971441848902235506782766636660547483778392620382976678223592624423285882364131734954708642899737773319854967375516309910688774403715818178308432711797846827537050735796643299098609100347639380256544566342433479169290473363031703274550725716580222391883327417943101562185913609872329669884165759201283850082424580861863267312719722621213550111787541881692401126886149997087657744707532084197681242794345181224306502793488566831475097985483491867336845494464262564480284747403936404333308425371999971882924109615155675487569497607401109954087307404551886831321607430613436754027452753368712143099700721794462169905276220946264645114478515283059081631496216103041761533748406964656338844787819118583907149766493468540415360494909506699733450679150487470745851797982500731525036436313456825105494909687848601639392916176808879848538130513608014600223029436389529002542925637628347744510302135807447955754921011810597655889755759550084821180938767026736480548523987605145163704897154562542524043208479719751423097563446904753336723511640651886486858745853975555241064093681375903556525075451757913924298592778809660937515130731400254977904872173329419974637107803377981195813803429770936258760597883084315144311359778545315671815418743037478730138870018206712827253762283982460731460601955539379691604919041318195532958370051399537645911622551385514630002782803266612135183201490848096318426045696054294701322829731972596682741586713216647588598817981765453487926661866916899456797510379032723266421972165465911728251246496891778808115683697941710038889533409647917984724346564894375108556124923568056606446252594318205641904617690280065527082178289206860237677583718228624557684775898604283521426547201653630387294878735149826424834864385731584633685016741060798698055188488906496561552745588029063555373144736210378605780304228183116846174648423140705166239445545530953262493559232110237389258902013778557689930305415428094881255898215792992833145587773603988724563027651967178026641171684948358691209954901876895284675556142408214914657694057342186954143988447612342766698831976855849075827954726185512500304347423233825779985697094178334708774748795536882642626429096660917246481474404696695824560642750435407005141765762783521921224146398069376584561062028611767616844357449110749409112088955891496144787774201994775394869124897595347841928414155417745437677773832241874047905334546722981349220351727746308069978144132269724245667776993066110301862845156676209525563397461469265113786469624260231145372066165003600083728055395801732014127032316027476119066098068248258289773588999624185482078317144687078371792214018704661064173552423475995809595823399319525391143204188047531577380561873161740850046131929832274496772623392025418551129051429502741614092340744330137629566010863022712717891146315271333512762323281168158157120889491320550060686378142476243888043216278978188432888280008568733767837213975958099718827984782436712305589117875121953848261216302233908640462445606960693418641370587907337058784235871646712003168938323946897837231379518515404193905866583905658364319988146921522983396845768537554071241228374224336793995655247852089551554274871324571123372752933169475205790702846322919341077900531257191600358833273334421223180249317283895160510458856897064851123396982094294369844705979948299343039934600381619853595342475670033244643396852480095829342119431440769881844605262143628794390236815907070807988399056500957937731242895623256643988339956945504317758212412829301536522312152559024841915783546491071282172868355123717952388406859248540155612172204440117457138220451973274379798849976208116556861050178807547052187145219786093964196512128846865877820607455463086474706605883754928159963128480602633111631420706795921944092034223068430740920434338273726611855596996357485263691433578564702394675524597777083023082053800468677428483952614367053776754960435726075801087484177550085294055291448755759839829999350579622316004922942227781485127476946311499484689657641210231293667653978590473646103415653556324224714235741149902433933181898830971223293708747196597792626918702273281412021472510413110673066727094349400538961402353056947805248651557409537829283469264812050910370364506751601592902934703948019359323565475722480587040050754845449587959305697946714277021974661183910448123012781385583978152039030904374073404591390459607672142184821029467241772091217198033032232450150364421647163236557673129124566596098673958644665523164413607216878892563977935143021517198708306386375537749285712375085572168630631892245413315057455472966341840870404754015475074493162652456425137621091331545374953317921351067170498766845496468704016090794801422067780192000203216243492845796483956094810710130420524694798551344942979701599368319403390696986722367939005158756639167349192689018188034475804395351745295253916111756923921301844122670383042191393723102632839034125274813968702083444497479614508236637762260575739680814645106193036964658923100190906214103450612296084265439801684620042998974452093697367412500681809015966062943964076116502269564242583372159909785609803363870843621679401290772667430974077500113015346824028625596271702137521197879006241428409105415064012995073693056705314430509652498711736542865523662126136282653290941175911440847352544486904073074915238213425754584728417309056329852133134170677610748586274180744424482984162090938140190540161879969138281069561518951273838485692632637877297839393283266465950008485578814006924575958266615079508140152009189967931921759022105312457851291565014191117165434102567044810589497577777805131203552368681770512345695330982377975692877983821191353710641993339864573361983900983060573311894754466776270626697704576175847937597798575070654819080252879156913085218260771285975313285261628644680626221095567317380815967648264433311501893098454337304971518880543241574279661534255515284993548975634606313199146735736126612230488432928327290721631019507968636260403448504881625231807968265700484843383311297919438500405799135980845939647257912603656130293421529979711529798008223896025634140162647152122249052146424382902283911343616612215362758636287058852630209374930292534541051093312286683629455132167246295455601541287543441241085212451973033936860031096659603630101753022339885680600385889572156464917994684017922007800434684625520962940461375469258959155653526942665499599288836237640730208712245582459911883787233781513216249425177193330982239793654477232297010257907042117797734837613942501713357481445452364143798816001961185524774161700315955926507816886380973334693169004340416334694777604098108737328677531118895681096545307936337415705816327198757607982607355821121846542879877313012952191072071441114420575845529141486266685026407874573735907683261218127954428483967928096442912562476460998367562670156397429482573351371105594013760534455987283223081786843463187843425439207026358841813901192468377923222581115779398375753849965710432689427901290625142356590687144451775739454548534713587442541658532605874167179278836064371182925954875388396482432866446337210887226035316622332671699442132903326812876197334675759705205670654750646741559202593868295050468495689959833009631885840767220533448589358760888931200764492772423211252500922487534902009161448907589281642288918236537397473710662820604379063719304538127009282235737748411166518006729351700854995703574541924564245227819864198235675016749269055923533297395202601352895189974165150236462294409944138288993574679831640870766396724983955236666327188563730505760197398117256162157837168794442622893819892207899595670939681738940746089393059567756412525035388766041327170336182670161235000655229116950745421638255497829212155086942009823301769444629501272771852014247777786915977045407077827926802694048763034489529956099710743182878230012118082105285486779514296202332060642456956847644892647725355973711413421778123987158555289596838725302373933744476847822387846938978061494309315087857232824529596365794263146736037583276373863265987253510592123148495698567268646475279288178209921413728646696102498684503425898367213398417259903150816672544757012201664757714267408489890531302350545115214468865073455642476041620707724059183493088795751069681812580895240119735367181512158773156837761704708291610960968265319827951447758484260387912952023592181124725539905351981386494046498587972247215076618124457036884648000242445094145610449136011458325598807880893710822672320085162549741213259773332548826660280231534835999797686430853103561241705790794426499822996579437890624435992072683730384384964671936045291521117797100343180082885765383320754725011498619394214610294991641339847022000372394328653555601105148054997541267843334562635860920482329243131971760992778071999664087481163729565203878505204099937612896366658892522181637313111903948399175594246096201350043992916575588040595028573284767320609224873352203356567352199259679722708840479576476965077621601885326607641490663352927020054239752958575660662971020143743648746141129385771794354902436267823191817892181835849626215774529624858166574675281261322361973661488894867921626768222632241060436538384174394086173940685250655052124968068130596038234094243710775997413129577897059896565440921738698569344273129569637407091755583560065976250066597022873070802332268443093125532208464324492334018519200715102663140846594392506469351401789664060784080260663384215323643198527008255791130515392405442614000887191049917776489012635591790235833394456167436072572382030456763241370088460362042919713374105675399957404257894880232390872388627547101384440548238614250546769022489327981783294040224361506895378104079971486294383116163445148322930377030240975580962248936410084380604943676490045287451782491864953111095955142170054484073317147068524268317104868369358965946410138197410872697643008582710582590688418465608977400763661540870443343362630436401559540681790145487096299767435797728344898891863580586116282980533186817300134828806373932203808102408226282400717652199760253071682022778616913152896808326293342431541252911664913932506028037974252656640878183364098038881370906586212534277396600957201608851441005943025438194803752509739132851675785902791460364541043890457574613278752486362562413426866892316916411536219507216188304119555782497952179336938778508260303884682751407436289925107764662853762970220079091084859996107389988805627395656196336504116124834097275887793434655899491970665562019581684620987995382082455887841012687177335374699036634864085829441992314525085885588689001314916172897407569382370633776421693726410604675380233387974460833423377640122944802620295642274648090251273412199941359087047424478812785958523891956378398635281121784747962056428341683928607358521487255973689506412500891287319564011905624728002924608156818242518447465654100339688816727055754843776771990252437379513106605375794468294164094867060524512593893712723191926426416017376853319765446560016341184442998572348235420340060980118852220056777256523895967117485912356221791346466115219441936056042235290086132125243315334698499916193204128914509196958750169716307787985836360807707477607985376559199752857756447249323724481318023384286691044635722479448743873024814798679573570098600832382122720307889478334762599168343955167564607122159430974512373476825216020558384416820273401826104048346772479099382103989735820217573633110435056888516601489343075946990781403517946654277857089567704802291513937241022485117961985880132866349040942828063847134814674511993249367840680859819247193540513445777175221781188622803462007996226505049548456719979239362887170850942947000618246050637430449349777432299847605397625948017312251829096156510622804780287631399797094859954502440681557152870187578478576872245849706218825579590315668520521923583499309585549507849032494921777879403881856795078782141170861038136993781711784108816674165140353557150972017507417627244462193242723912614602265555931014382520936521809028835364192445795484474982448796780692044111070606999319082606356269875747072792860957618532692557776382538707439644933589819075562005214405666740328459470721697801285378001277573500542566099721402146478101615912777317912347220858714551898807598631801513506199473060960226348506943060721451806134961252895251233677578414687353364315360768446566334077346404112289124746580599443382999170498237508375415703288021842504369243838225223851116691637498681158557469188646264496927141487803843524050751753275229325704538161794770846609197302956573934735348207102003246747235637564060861401244663110352992158767040433238180491348079210678344130317811975564149856070931683901920848271637246327815442195462557662053907520106215081226119838238746319826373901130997788132211148794535835901544105756972783267846619856831824842745954957616154590749970957435197472085563263403575831344891928966216987194552445934357468525134963310198773435938325530492702518460233656104406583767687861672697552679902667642030152283250282947700807463664595349564645330551564070750954897291627503252762161969384045626477570878367122565652028723248510513248657608649414896418860370742489125700415977603293496436463072443623113280040305162400956670650466108212534510434111078117669404772006848676622000658497051202099539181320690857008418180619235545080398819262947710519408731126033150947691987805938002251359354008057036795270726881241513436575330587138961790396270073432287733790314985723868626428141506218431820302284073612200599009954770644660224576048958302333091769076110734486171038689875597857516962775182348398295466126725432320320726319767188963482497680905002456061290380413095014759389153663016907270446297119229512207556984885187880174175837309983690713151143814704700954385031437941779949190420784012746194232774541865568347732549888430392127748830972872047065686027167484443159712502483600577994840530526286987669475252429106155684153049172229546418281023894450718884712959005893438040508876235750879842914833807694236226796096722452761955392549993061825256666736090995629007591121941523272828032615833395173098942079086825135187151695867496017695210791119627093467994434398096026837455266086736015750196700871840155713165786306605635501179316052646693412712348570531980916235314500029689025836154441668863767712344127212285083841620043079568803414816342219243851878898987613291940522451732517641204881381597186068553601362977935094815388576781503304112584295684579860797785027182563058934254900540158976221449386452277917389838705297608801697726333308817927984495659348698304634550042204899149069775409104872113104071458402224043977846548445149199366606647955865235755788100495522674711383895083791774001380246036415741990804488735629723461324740345178202237338936409179266630287125279461270391854335120294725658749562778941721188208740642967127639003197730960070368981722421217320121033369181820940375704946461995964514692034247521715895422257721488707985208016633093274785755965745947321849331818684040859027419098499456087632070867299507401393917368324230912879028568864893765656002113247432464860080904097537410130113759710576918088773967848914531936225460047241868241290709754723707949631036766933172751427642504575390700526183056703821294456756454038268945233369960540897823776145237619024770076049073370814676509688307426328378286574727756609130498168927215672686315079406277562802190577028501063214830577756096361335631463577764830299372158816689787613679878292367933640275261964933997444437945599442143501142717862731201416448839914057996391990500105634158462565942119636319551462812121900048858435325132753080253991517432797006708566903123751743972192415038181587577093441553597206240406414256301765114684902011347532141142561076041562045948620161225509871647095157780777434097615854987090809674280355858094889554160638827720501358350026956289733882128981274660461470570162585782301287585678152204771163238235934185301803944447887832761272631926083821010471063558186933501486625937716389418977820177600729755868044609193864129206665306506762113144405541898099589969116938355166047231684756739906172477068171776225703302210361346138580400470921034656932651415906817865648007138676779782017077007632860630527946133769752101732308229845878170445867258386772003918017177496590967402661888311021378869656680789354605050896727491683420230864843091285476235901284954912310571006939224580198301229879672766418097183304338680760941449071904329490312221760285539699478035820626782528175196860585858140754723293971432453977775287828679119499784323581973403445449169741718097273360481455536298523967632362737958116384583570504086474252750061137152527012811985497438392412668700404553577490340758912446528886039504483190967844045526823482941558428725498501388562743728252785025004395084173680451885990514528527513257477871717084140351232839224860630662424033015463204359580347754167606024517814601330252587286943790675761361202115159963820035302346981440648549268450288187107592473631258189661483283953708077409310508690533690324043683810149547607729594785176526152425985837486765002023617774461041592174952692659506376678107555239855582060673895862028412114391767337760377577179228003056523003598246632423507828113331274300133131500185927092788380476802056835062195660399404932999388168437820548231631926458264293846628429596853190697231580120489299117020539498642262456598578158811875435745317037776191429267498311298961769690688534845034863925095898380638172799990487502234187840346442453211535588939650518462847105088419727684670082898181430236493439631410244928639136859023295238245516074910534487562183150996801342071135358770709957504884606697209772316494833131177249225581193731890121941989136216946717780953208440462228119307019959374000477528915813583634452448523650182986474724871177396491210460368408114107757704980222796968497103974022792594545763049121325641374334035012920444254408142496993396083804420665745626180340884967396818444298942562440266750226791989225326374531903623904473910613981496689159925086312396717685553581401887662603243328889747860728155580740811946561254736627334366622744333441882351873463917711429547971007449115826819606664135836269422906027294698192719292753862099123065326712949041523062330712460810722776714122002046828953017065340843389701896190428942164795827178344043066628281078432613363863065488214562648876045536747633306146322193850009828024741810061636645705364409786311286660302049925585290419318990871065199497104571360492766433957856327149230923767721961461248585788807767219104015409206728634858926817746787590136795295830422192462788547150144714010260622142120975627087803024218522771606627036911575774344975174623207968648450170097809082531901132971549194191965194561514458065136958641225112739259122739329037741871823326089537904435548231924225743901482032764390725658640324438883538780089126079243730155397456834393793513495163424519507266313504591795161106347379220391590539044831676184159252677866941674276837891998605061855689026813480938888843552379783637443484472503176761990003751147138650651021258384827120130313397533242718523272406928872660817622533331768671772982512927460343256981484488727206033942339680547424008831540689464327350293148567233612850610440464729273221348466430580960670360528116602398180536801859065530060773550459343035808378583066828690175496750163367012750614731916852963402094850845810398192573865420471543641301527381861943607279325457380143368688059301354145762967869983392327054506492721066211436731898243064029434133186065158640416209619755772314807591513554385848125554808718108262524656890395735982377866157896310176316621222023107992499031065996645542247798180881955302447248991611724910414998637179683272640846335262018288152157906979717539274533993410916623793639450770040829247899605250122806210419437100426147966020590162804895925065123831098358201813486814134350530501385799904235893521291393343111892966404849841057684109725849906491002837403575825178206125862299016120957617790264679478557771392597701134418881669435432041994710182495380033013684866096417322906033590337946749659789173718035311735800487832576039317566310040283224361579271949891231759925764530565725207654123735531488619236966842561547217757319604583745784579943409188263734091999206200896387397061379493236074971759172836088902614216859070928204148910886300598338014810152956797737169958159495282058885778830201096346917001890300399391685138518434393748057189996573529694318494176541674180446017763225043887957005842347433700003162551555363184734587318634769632421096085996213265788860006257234576316119092244770838764549369801757175959073082512546075001576481159556444606321037376743290083034582875244964167116241760661585691472759021797904807255742035179849857041133227201411596985464922852394888629521459952674033500418559930717788202748563247790716835163760172675197921958109001540209843767370655102415429516779237823541274805973578158072378265601877644712116760687249978566317262318222023545890572655158516909564424074757610848818892960355251116542881307873315375394234263700493214542811073951185011182101378950162578622155633836225736613937086478005507656681441223962816133940899997652811738138403687350212387256036546548559389828942517963901843044465265646301825680402373794047772160017770071408339201314683893270618672384453273207074342057754348035646488943744444775567445399127636838682568685318689809397265311715297428577427196694383268143273179926160222386442723764009094658051775348780837494039122400727207020713636926330486608995350858820996466799053798934665124154677193267178900106368619932474108783553433808320028801637087807474974699434696029084445731499016950307082362208908615143224356309275384989640839906463852707369250627949722160573782209796887536766609505009604172868252352133186667470917365546630292441762459164298216975162745902420533329609219969201737134135931643600917342219983839810127405107294135744286676133880621795039787783714730203439744695409827132358944217311844419081991840007427408986250262000267177059089001661506016466651268134882053128561905868019061946910597568648312720991733803018318792351819781072543797171094472450231800256254907067995598745461015134217592537866209994430810518053143850461266585635384108117095760427415851345816048193403676566561261309395156414291385922117524343849682398421180523813729243699010520706219475197464366671488733232524649343830271066026548150865235310620602095192479937372117893629361829351598062008787353585302166421652409600293581283491888338404031301313168298328121714703518572979937885002974462862385326006986249428602162925890835748735752441060000801695467327961376483298710261091854798380392805210541383567307182885192314701468566186012279962249666718788752358697551217519138294774587066362457438158232080133264076426517773698504528615589693751994133433972030367095227331968748397548055131283786314115336910308074145953745194542014874053187746956742954260239114660147219350006982775810496929056270084281298803202532834080237166578945989167525028824973901618652803235733549327999797359555705395408736993734503102060666059240984818155257333174897189628884902673594756273668515989527409831990868644507319305665414897584472440251415929012026084019499509911233356252357385275747635287003388282294256498143852286658675044972356551128213936923225173821652977315291084079602806125627474842910446154924033397420172077775536831301111746814409735518444441631738915943493156626559630841123635008653692399791437570183505806335814025740777775631198557160013570206963410172520339032530230181106821927285258460119618119167033557015715643797467252858252064626119997095918788451232718333947853769574243988352625391521536766337884896440375367480225737991874617813794189196653614301449629233632745000769435707905440988167846615843848224121957493158203666079619591404428469916663496850515291263679206118637653918155482622153237472926097729310047319131464518551622008272145614106527649840683072776145823528733352385726567798135315537290484089986278672117400300641928756436888798867346262089246696884647194550384538593342893976611848927506056868547989471388192891286258225784510327765862338262653309647615626026836323435104139980198873654760260527361443826362282416210225345096770764173866582626914350789364197128798613539042897518484637688491249618876752824107136498753536699485039774604201285765079719511998901209155702692113362544159369986949056122743938114401652555724318682615983955517614273148337522345101612032304772226895740060800024775745700638796811947257332444379060747992566632213664335422808971474801615960037717809613236611919999973805688504001484732257061030885945432626083709248975775443819439682921079774253208554440550811575760207490639383583436434501492815271867418484576811091257019540928507054698473977216917692159934556349393016195597146580145288239962214942056880929736464770845061550716856875526418296441256083386403691585712740351183280798568550601785868111092325967762238219870599109113121142220417824328189942877480033369826829996682549600607211825826375617561088068922423937698674564499628700410522205333845455024437978588710762179970507659989258461264075076817379909282860377156538911053887521611790852823088635344309614547288076774505112161096257282420160171964044698464743302557810878101173206975700208804422679875907587156111547987964668618342524858454511928447711561215079963108261901896017492321383268940005652765187102722463527613925480889578130788522994479889568318962018713308290227264249678307136374845775045052262908802530751906902955885870907846616198863530104008118531778916719462671628247617718786700395413616786490590589474615214892098785972136697179147686769633177691454400380595777734470786596903421188354181157291306525367392134947925568325868095568514566141466708128805797184785396771300346520025450771516618229070168472487582444361064968118058662795618007082209202961154572223200343387164407142887440958289615102687125360176045629949160159505981793044640035866522853415185984362053767701468474546221713530124692977656170430244335748984833903954077430327525995038803088836417585060776915943807725807630307580000809266668236721973448154115881537310535826292838933553118011814324761709359273902374463737969598396433825426493960125400923506613126645731021425176155649234874995736645502505998155642476032491626679219165290688384764880381013910705801150176589438292133979375771775880916912409682320839261495035351683857035419596995197541598774342198874993102867003876727289310917868635359987343646928706345350185447281118408898802877718156943768784661094037276028572134829655870673675021202415553062749019156944373013903365734321218988895937350466717247788763005382459163774381486675286167059462621909047846457700664350169271799842006452021637489212274183430658912770147244260230283527696584842643216432152091423183426572396289920240159439801550054134510627622967374448850723168978339770357153106923787292152885797750892960330744253742386160139120032584928510802836522354911788140536437732335033806222768915477385445828680487351281851223116674338604192219236902295295603753449824419201090038840420636119137541444624562238188131055316269028131000280626207079654955786739277841997257310405420608516224501310177804125060441336463108030786151775844504949777540014458401090291350990427672193864329341176526389544515188485633431834959344244044660277128949212186407295905933357828970623794172233865566040297057930551996933582374882931207627181376971336007595676806062787426976094942091096266465872675901709672860230460153920206599549254457685700850577455160156169196756899183162711078609556375558999260682438197649348028289229967600882433851411445621174073159351111915310632463064466669449334052912919024097283680198060342669909461619876154555873964915499461274797355294350133436968501142683781936006999283315717539253360659436911060932182818947577792092589453368830347299927296571673376733745683581586014260380488331796823102773591456131733896950892439344559478834213298527208405125215562440780561400732364578994897553868709549541120729856303743695206459593304043209772128174152966828010471726073075522257851721975184610368280513155044234655051652732228095946436297267049094933600351139893445891432622511281168109618742727009705733379603502827346162284247728276268394676785600339538148091047579568647739852971982247647219468477347171807332573529809875076537691369378600862153456623085102849556810203158321088854176317611521050379039336163492852950634604144591227277530571154606442623849679777710838814231499815549821225461778070400740705156575300598283469548347249770771714492983345839123333219481689016502007598554102333811807143125826563669536221316381126111073747951561715247699704299259323970143292966594972877945026355104415067224626184344885607812062560944991330826062014099976420190499910598579708025604586589794084189665658758541470657675138378286446130959917946479420799968957348899051032583335230533198484995391570190213882100927908670930126846162596603152214824105075375438340727816024170793583949532077789839843482167137581910592914201244957598943060358647571603785444394947516169241503385088025257526693033861779314976944469577626950096119054907454377150869889395346136209037576829762506712017296093572938841892658479216326829189340984845146004721285881128837941542429293192622243090575169773479439553677409085891932938195696627754098107428367778360634761456767521168338772535058908118591293326939410143581594044286707680020969444970043792784827461770738857249264602353575613743187976868572663981706259781725662480421398303550470347297086611928630610676012522857859778861358715956701390032968502931627780467539686118039209555623706172117468365450978881851461756117396491412800638404637064533651540679310947612256575314383527785927472317794111045435749262803377914882541975387506698555170637985824051044014808796969605761052706235980927719299349552177305105387457957465511950984606296465369341526554131530050882426988473921884327703557432931083312332484524668784079188824124927615451898535298027337255124963514827521560588072588173347104907227869523718087853463637175257922466558171768276334609709982598696058176550423794191211332075123025541525908281118134404063105407307411728346553014078971785493513888087627989042429827593473878962633694420293206626081008648428043693262333444884765368503355859240870988168354876495719946887188446586531188242105710923678899170255182880167379534832670944397123436273130987259394542788923005386254441286536174421542158117405878913808110738500269590288687452920098179707019125201617546033597271782869105834863288555233782572815251033831795201024908853021009597244471622886713389749593192703380112272824016765357309950856350556284311330205992276193389403238703103937329177786516577051905984277183278289209803594070809785916953780069252605022476924782839756953194769505339833267719694291114204203397859860966114920545027002098687028441214142918335495761456995136449743625678060309227820189733886295713109038673051710308577204243616383335002048259915639593105145083950498684295560942593219721335572449063408065916573234608651876059777579383177419491759638689752454329396191345730870279171528582185753896840117682111453229110811920625658072424051023091895913401438776653795279640878913915286211123550784164055276256398547365357735675182021555562648816370620664040093648930059126675715021447827754635423718350776951001770494435945407232733315684009968149185286810328945638905590080049322416713695301899830732720852737429941430882098864063865766186384567180403632021872305618149472069521443245558565675164876829268388729041728505205154916731050709844467884420639507780343296077087625016520172573278002221955795577087844550759662641042625127561976874138604120268512918236796034895957718646588026527320128714811459976454087225494742895242346046307782155281284836648656758219640906581006696845401832708292703113886041597052861814184304487092078973300006962013425948383225564588598078347604360776705418615700483421072191327177747284399622380854053841027448934118819603999793744178112559583803254734483511487217651280870762421902956990964922869646838439323418689259277222710258984499918239790842173526025897519999618096620542349589743846598622358154093140511815119509898919616598596821515109488845400181811294147626736670439501501627730106831005523188620121278538232615542665767850952439733915093000761601648224109466311631239124096362889377231932286838980858092968541548730430684887254316972680379457997289985655316932259544754262217564239863128310932540205159391270191677817959489418040520918841833776230977620786243595021841147944501367598184219058932094308064576036794345838193297112222485115734381451939507437888566243663315609699465186037243999564458640838328797910561146176312708389676667106209376745447466896597124047749466563217936452639387740967795836227898108071593272879452497319702857521966573239583684104072624766516229296366227647712633582173795866978165931666221355460064948383298892546778608377575961149197488420418288416896400096923710611907319825694179654013975051324408368395323928142406219730867797904541502813197145217295997713576246597387746649836363355398756189658893247678071572788127505856033153818535385137752954891587129193482346470970224419629526935109668631931279277717775717241865533384504921971607116187129030746972890849914700901473870376630970165749769440967637571300580013544457258773383314965415933580073829968410000104547924410486969954368202543133376698739016871318126052502635891347966285373991042648446290589957580512348603866349481711660131066725041983693042034452372569171803971549878449886846261750635040000871133036559539925570767747806160000467498319305373876638919159011731265503960640590498178633236885914732411430859393879484843615041119894346828873081464276960094864155116824162703102497356436072990323700182448300242503685029970979441289075179918582488593468153618942761174205599676939520513741706031763985153362730247865394959861969918581354923064028709809492983578406540778977413946698195891462649572761744726963164093995774461279222604503561969958414220464331472935817363987528569311670822395719922623270675391209059106747107031674861030871119523042437480722496962882560613127163924850207230706966447468942987881166578505236700136943529669324273126399725002519268364802828631819168566323311109251751377009422937672734788490294029581524934897432755624155448592723025434467065314889184257727927867257837474767039757187194026575214624626524962822950578875044379391281877483340231964893597065754883561946079517181168881190434203525395462225885542999555821957493647278088634531792965618720406556479170319646232494570764637329543179435491335330553163101764314849503530838190306264636903611189660979837729362784011604561241702591530670527208483088595262034010497558081297913430621861231940159589713257270489570327100251827940419141905862492407456867039891763935672842327776355810198983116599949653750698929422174316463618968808262358457840565467497791568617958974831282612844466311361066463435645216864472539487187032823955412724661948669431222063156938297884352609521589066585094689241075444793175559420007557724826488540477403365741941554994057624468811466868281777024862142783231026796060152401054963593725291981837722405683205591914389493992952393780411748037738533279433768759393007488721125978187209463085094960931145286874986419344074424808229648334746061015053722947715495951602581290006877191829622407317806884634851915221918634151836954443648625662158623546061431406721933844402945607880725990814801305955481048047056232090062761223886545481487828087302343007199240185716911128963492186784630791899269967594769988699379893231862208940923514724043878502473942268648018261888068264727686295558420867622515803542208803082625126486940790894129462925413041597395811315727876460168117664113014249605699712637581611790310610569712779221955128343788286895361055431906053399584751888290112376176976997685098933474640359712393550034527690243881936072851285646455337501763612553263566590627551975383390896199595316086135609095102555033918076719839913493010727145853011314359047264080737696680342161593260371857284804297441612477392278850549904235007653621406605496934691943362392035087476826740289349854473039296412065880119616130612429638965589947765600712784469687849455003094200792437817160204929849132242194537413412203193622215836957379098959027296581109146556509594884856878043517798298101457837724940170359039767861496471052948722742846685091203797876264072557708731228792014265307863974806544702498722900841068831414803009979227713168339756655261542574979207574905273559372310899056613709434130147938686322896555970855391300067835861833504233839727989376690506979676497975093983518101821026165049538951964407462676141634141215610497410333616155901499533549433446572822151577429492635574552605269213808745053776368284514987378675104466861028215569061593205937264302046985258393498854079904135701164551071261320207515640100277740544088188724317771816981172379660927408921817565019410234541673519390841849246962425665700127838882048405591847047005012451122598608581406711957805567265397262265842954787369986914509719400114081971429511722204381665109540526957786634570269910367897282765668829656694315420792892092833160660237654088126454425442441541142711370077570442347127670207913811227255623567063600115319349980514923039645020784301801003329204952067142229708088837493929329041108092555730233881193624676253313700370781560697000991758099390940981657572654489353147520686646325747625612927560807906088345099367706659875333788264551256631187763878096376350392209688294855089255350954547004960310404572390931921116449596854141193081197202876861004526375528376311560881509282283478012740668805488410713623658708940766036440000098351008529890124907648246896831739971532999079122654911104859266942687938894625712154001128971089923417727844519809622988048319504958243153760181414503245553335242017448682866400072278395934733466630332573393063619922627950867404989954730719737515832782667620201519473225653983734305383845902396625284697280869191592696545066227043567732691165273741531161723888642269604392278922414239947558920339603556476609972449048785500927320297330059314871561461976499325577301992355439125093479794625349576120205427011421075761508076949700705751703188633511604565816668089962933299977277454638193297205096738149945012401255082860507717773416254635596128196425733583995134962271778332774036140493115202728992503785370272361940794802692988065531933237310907495498999759148044616702520154816335229820668183351193287636024935594065653034371464061975069673734797062795582566041255246875482144529498599019376933177496917030393298259215613001674493479358710332105767529806304090304121946006345444203522487039993281936962407170747527971209888685669854736172048666840804022001307683834018175349044667118098033849945799173117154451223682092297323018807531846326250221798340466710062060510393394989235203536356933023197867535801385081367576780694151291962977816314456390636566308616117757388503756417868386021786037971350589060848254881566490593262288667753927607575413318845756579696330694268995309736060881391377880008826172897711473417614287808713381055356646627807247536620364608383445923480515836459404924633059647352487839033155020565643114689904547895662413681079009976838846702095330007213176491487438129557147665019055510936882542921918144825849047037417133620343573370007661498025696498569602254280897604544437354645248079117284734487964864144271795482353408068886182283473137802830785333226280750946517229978444604201197404931124875758030158000431970406961332852015961288884051708127669090682025108553244274041469803654896075155058849301146538886281403557407517863996574456475432802608121051004618363649187284959897235566941123448840821738454191087713966213658607969971771708572804805403586030660329658506819337575144650215496866868501681499085151747568611017072608004821668052597623318269819851403785521353007126186602750717004317268332871732508732079237825540942117029306740279433353508100947290826615728740464945981475318686992051839549494692348227485203150904615193433241146506679838142715442677480184220959806748443152619677222545160993438152811178454936822475204801091846855148050087856542165256630174324488671301120925170562416839472498317047439894722074251727417690397784415276954504335171733838073719635572141065519031322410503157472196485610146288945439827243357691540074178257498817603381280961747591262733049455328219578250151501095710430021831456390725283628991228469228337343968367144746630643150080861833911711253360727715627858187523894216729630061166592639372495800612803306662135741440087702160034457238234664598397830630698799232659607032066570459212275720827826533868811639893892846383035063865618646770123812915535924160961144590060666633382148626295065496539049671498010669889063577057797193504142611903885949228355005421389784151072780400240569558374222460946567407571507835915557257066609314302811825751970046763216859521343781780835961528031448952031985973135260634562429995720004270865017598839830059711964908346507272675556537603382587648957976531631168807166624269913100722798064039447076085349015617643815213416343057421297688164685638918846251401097087290371535120671657894844822841511778592891379801548222294390698306639046176912835268429563068806778095732056968117426677006352441424455704611521702483698906827091539035260195966353481131746019696736315210853109942542369623285064354252615475994324611393039558702703403550051345655231738548953158569061034772616029301723811140617748508773281880660188810048365404200610792170529555884675690169082313407558901905762085913937125418572907053674675631717947827624765331216728125729144287083769943217142087464313231085341317842877532446600844129936636992339270519537478497819846283274109628402709091498140091386641274118673133679001467950403037285468304359236485518159518185784188501342603006419415132192729488186676749423280955474141623372980540834003143221628132231939952688160049340131815804760662618788410363025490822059511882728403884994867699848907563917477538462419985980429498842411713835889564726371172873086702483756345014171530377034677913365603897786275670357213581554496657417234244171053853435767115844817407414946185428399730056752678350004579517134133035406609796196178901535706110989813532684435924382516783298654836657703183549701590738369699937767663816363282523830888975285015106550193061714081861942937680279879232989303293100067917907390732732704374088668356324729743995822573119725011278254465670679314217751186093549641957341798454925052286217415601403949538374120376973713037542810262491542037199817405137346560126975326390967739362107651305837317826210433798711226223128218455048454784870189463919098660475375828165242803225574887493404258570318909667905310845245558637122458700910397069742584273279703700354648823572961688482837982136790981871642248456077607122799367843386990386434444303747651394030102687824536646505499986082222310132284333455964125588691056777427412031272126345776070270629527867888589099140292767583526445368338990779228874838729172393298159625002670554708672039628690555149157910466514602551919820444749140673250014928138878656654089327453564414348325127721164735155398131649416231808390355633117912215328886703357397441398409385341113272386387367980384513961854527617731345653625424106480996411233744012564855319681006378803273993916729194862105347083828887035925932311034086920248410849157151799535321897664166590256065744640576577379277470581985867543586742186459192830067997651794944084947663009239312442989779173774800993582474881833525274697216672418444254721615630061018181164679120399405079035540537192432704040576433723858741623789711152787400048507352286371860897704533345504523461168608154456705205078445971580733436237198585140885662380567293719892664390703141571201470057836127204639059838523099404511667088928496657324081219041385803815058092402447631388222739773983370767310023600552301120155700429653510381338838746875586774220101783246218862264929708450467378842774285716430754410897827968615184743879801121456655466051538238719518200644482011517475317036467034225410519422066077119047073739655183306579220169131910788981665275294555911447731229357877534838423135328506529488312443472656722132260940427411861801183215056899081580658469170828143481597986131987729261129411726233462464168756439187365389942745008240555465104656260972507790903061903577793789289123513420828338782243501709994019996738441195639170538639006660070775349714748471779176958442825808451625493308283355709791162686331331420074620138326910025634081016277468916320189606724417144312089468529366028770634116976199080765346940665251442077400002124465006908014108334282105000185467749396534877851632393348392432564561466687689106353334435377881315844057437270126369053819363586584363001158856396695287723050619773543040617855516395147761299515900527039650254979985393521104538961169154683889006089413802362356934380255861341925257876913232918270891418440681852660205054886060162375499201582022793080855403994154506770510076802567626271468805242938655528533889001561130044439407119279589021715601970990674730493736357352475888102694703219307945349026565509854447281588251749753350920711602242989873640931045522530948819099449944375288106066247320113893269854258210492685818586595824233657139018824189851383906423386886783101676352263232967320897242845830128165776053551429322820704111138861910196045867977803668273774561418390260915130409175511763118440217222930630428780284848435450758794300730510002438668631004310557577020168397009081245778584575986274805096994599448875767151840117787799935869567597061086165264321250833734540826572208687146707743314183448891431127495177188063496011110787210475938518126487859766317704048809686605671103751998054463374917365653969845301685486409600365017232090116606500331177780448661413057324398697429752818275383692217073102882009095267702433297119002002558353743113581284455817640562658741869077949068284244746931278132792581381265380261985520414101129008596732782415717034313377990462320939693898346370987376253850541766604054334176530771991305685968190210230854384981330049119463195201606224587223114385608617936386013093011967152070307342730254202969683112495884933665149913853093776823842396878537796388206098351474424928043934190472173355748888448443964503680430016415840540703288092449614989334495163574257553439443571453636239453885058980736304196235655586579113123402705950353764985681332409964956594323388035165950551673569244635655922194902604487136871669908759512352664112708915357130057386258051742887900918927132967552648641489154232922187769919169939712159989462178804162482333677032232522922543695807941317842618356150854318395402208628808543846272375144446132426522233744308112813435341589067272641946991851996391378392884279877452726269390418173064607441973666658938313788845633705181661746807740142249117121616348832923944120528506512843742114830979932164106879583775305796690394667995424339839192234049845407129407716343028896038722955491334731288926020068512897384201932848117163615433785304769619152996235668259741943167320726080922258486913679910484358885957478182087197264097359027994567626532076005692239614690559495124698964344847410690384133174148426640869456658696126713867270931728642209312658531851873838852039763864214767927661454338563214095295371979316762578586117888551217391611731290834090834872328331103051215219556941609025128609401948831554162171615919929194347146612719199645643383192832787064285135286718016916054734859848461802470903739377074594508905556076961424058551803470826474102103968623790562412856377709812216607991265710734436678000489032088307519808399836342880391324572108139310162535181919221293836989652858556303871335446765221669242066812001370724732540319886134260645527556374579862353223749754174234496809573227721678161308191122206577528750483846325918746536587513154356949682787575864866016329163010506926737694912868436933866597296723906588587306629846321113471385314940765665737062348637400390609246273519577090634557392405943166521198869750803426385458846160237031712267008678274934906415227972499864982057022948839785601995240800846004510503018884615900178556613733462731050283595010346760520753097707507712949765339950547412700686881825160680520083753918349568415972031278168233953501141588948509781565348808553111265363148707725079071113812720787275832126347270392994248537732499146511621379450745564524020644644480818308124053099015272131572133739073688179383879694979623797756201206515053469021610883719690976199573199948963243717455066880052342897980161583147655903427112015333324220349889162726147672472860299965151066176217753266571820189018947166734625502508006109605809699432866568104748451772930168755732303013553855939004806785488972702693763691312062700731835518605871343364086644908532001990589135908120332990190134096852045286894975216688876258366410671397505916950462482460073401371628952403737406522909327311489666273478463917313206275912709828847776514937408812663137356769172180909245639864911349390646452692368021038973011473904387086342412017911702744173478551302296940233563117449368924404429870031164860677194165926254747644168909008074910240706731276658740934936206265362173398197557446725189348472889557559467475763124412968896790706511728262943286514291961764479659280843900111543072975930402691376044909510024772228529414629995597624828044346787350043964780793726453795898376214369546993191159298240135413859642277408430532729467002058196050537246217497198056148482365405803896927027504975328372174105607435923669936830777070786061229226782311402872463710628550036672746174771309975125396126907079797414554880269875104130047656694305949304439568636099372385969737306102757944444013734492656011784173371668314927142468183513891491749912526959553427311028881162101038581627558480908813872771388221900643208717131316633004362752129082226310722789233494358341017435670653851757936725287165751928684585251681945483818373661797247051240908537821208304424063080833816103522326418219146319062211254538301755348601872720814618034801610721314493112561565474112281643031053709211470945153894628309154457734894434611624666106401725187556464791920462963159372269970646402921463226956314193528243955457606217555321616497571705955962107302203327788719151407060991543552789947612808062223934800825968000691914965052191987041192245881225219755645835743917148931553862644679430753068821563722031645818631376116727353753784512213491845958734665668957258451200555928290118137435792541529551005447703812525680995934256510041242462903341488821279318085824182686112423086736509016719424692528728533463578069067861854022230556621256045112454624893941299926442049746282789574345763466081005805046231627996023156499372301243309635555685011498821858003988821356541835559016400204669959079729957538531831629065316894224741766484480011244868781719327572158348101761757127615704420698509392690494327439026889750467816822915216714665001725854152305900952743544852896550660279234698060414148831679122085187150361254209750833641817438543379551890223858356095679144514224092376895210764549347826110489151631166023353993019565211310789983255393772611608637836910045635150131225427829894046298007114658216086775076799674106892094685349450996538813781269877211290717899955750758132159135682819539981235659994207900707175595922072790345286168019646699629637238221052041242472728291801482320864809602773421608378608653637540907472478096819680933203896450788157415348845817943697683189220901062503961472922621707700518661384529740234145118885657361700394809965919131098778761182516349573336926296288097093489182476923707589312084780508476501994402633859269611712689367717208004564926688694774090309263421802781657066271041207900222468847588158844016333150115778160971137689713865897276368780380744467179961868108422660679031116054274368013684305176164781740596006475792035535359106150444895203662588999411164825577122807890639320628142418020062998925805459702612998456789651234993111962664815830550086242566100578616533245958735417719251496888292032482104540516872448363206203879872944520522285879573456354596289261884354915889355894248761174424556427391895515487385293604191355600743404229839163477226945917261834629739436169319685340804762796217495127917200632133905562595042225005611360621710546344597071884033307909306641929330161294614478058921433636066704285407628015707016810047381402312817426000618058505825243481195875141292913765750714047824654037970529512746621758138154570728986006074942308128489716859876119997654117784769781267801629042769187922080754110814231757106270728060914630626704566146431582772004449152195229352814635602054753561257188274733806661286285582169504943056575157053953921105164441364230764379149687512028729817598479745050995394746706865441235707108837951204153751436003526494151711343672512228240200983519706589959980790333042485537809552282401822882849713212323006710308594881229293372451540708123537683491545837979423466214592733282488539398490064732009183257104437718761777245423219875708449089893968856754191965756673183228149617106449926114668331569964557512035337618566919609711615996656777649426530000211330701692985141274239078854046726904045229890605882320326487861808717990758927834095121650949494604959910388346092860957349602987645382914029739384950769790360471850662542978291657741852777816343356592550687554354255592840073324350605952547784852226067008381181344492945854900814254155552384747141416261982881314718734656034367549913745026530351540768766366238772401413463802205083110029678111181108048803552583026469564843800124254557508482017422363654304892675688462366311045950615942759913601600377620550250568650703137862499661389028151776818598104734255376768455476307419257967012135388466586782373161112236791987750910325057909651683975006975766659406614078664019305255420195882346710504080934425056787546721982711772033589842082389946045736404377355776703963492348528017246723380924696354350228733372909555451632430379233305794851114181646078107251533388565922205153382848026947378751430263240988970795169074126556106751527936242921145199721387935505176721017244375697403373431206529146809665119738481491499871020321086138337029895502538879813309304821021629249358096039339583826235575510635290886574594749644406656804783529739184170612360396761862757674791167899145838149833512000824086237110772116810533644673999445377225531900982239376646570145272888625021758175068919123128229810170855213581281365635196798113541869007535621868644035367455855337731337252326495770779168864046625548711433959282919055731255186255947288700173098135145470514162332395180591136451512707233363223411184298042814489269900797940496772993978308186055589935006389732661515047910760580246412060004474057145678896587611240779508634876816979445222750715093923925096381548047809148572784428223789880199614844516612545627902741581375189946167827491705087835351566633081795252540525513711340145338274125742914816871456296800982552759871246871899807098880658355994724306371165020780195702874823092039468422401011624833895870336370319376161787466605035396868463852735438800274975781421072229572980531576813717130338264579261334611562327893356920278433424271610900147918068287160536319782753127905595887102124253911293178713623413808366393351011111339993351657103974475046472568719411493054225747677234540321470560033075215903562428094380781337395441044969506193795744724075681954623315243329210264768091510733179683072099417572436744261196657124360001334788115256317889594212356674372863976943415601466974450796698503499577471406867372548677613442898571215765270943385321888386628923218787941576739988395832003383922814573985971807703288930344058607633376285497665363651024952932697245193157464726261792234504201869091281599671294301392950320706387653767689965810656741374770814718095334385644973974485990121445386204025959031468035537042930548417535267069989330056731340800400217604366249345189107510356418674918903977076078648128292256068672011639022343491500915437489771530410321858308422310723020662213128204326125635216379495433660288449245526763635783800666922683564160292383674709737739584669187554686784699778100972905484888624374368146552853640582042018468480101515954863918875285317179208335903760466893382454434100921155178339475571417131678364655864280267035931685125642829392149288878902587935814901995483148650992172873821202602595866413230049059500773905106761743946850147093706212393786551716936844207489565374949272943432448298665343892473580320750271593344261892465122833691863434688200214084861269541800329611634631356107980825586843041585509591006154613397214472674848252126394428797014342346268979029351993180932446494291437302533946850593644583519613485571798819750288448939710092969135531570498361892750850795737474089596393925191064910331532264046123022028336819729303095420705292393225138588687859571835977343348810119253693137458540759815136863410047483377308348977885502417412257361275113725351512528310864176715196286143165582888917529576720516906161156522549505225636276202188923316522376474979047030967976784737918300699174720068493510914914754928639416037272711279633608818913284164407314935652464139710351120966917857257954216872779644409057204137027386264690172703311376148139396157880394700917486182989251392781520530943405611373910274125663234484285293347722849341611654625534670938326064196644052515747627777782624158741929712097958318765284163413280226196780059510807327351854079097163682197386397735344524676427840378389658577359494804956679554575664065664259679897291280778939601424088271206393966672179874641017384544332687914982841788765694752726693301693226236162426911762939728546152587948906948204816595555162239177120008051026830872033135606998516091472359872001008813463368179129194587626002546447846675442402948122199937521477758813612758432644179381394777910112642107617991110830320682389520618718669436725385114617049503201929653814320251824508695161802294810132875035255807393040044456572201404467940273404255562521712707917679622885449962962827158591328462390888342612237295154101424306251507375528675581805744282278396171228949717450305009410755315235610675522245556768946319254527798741505567248470837978750667988881116560763654216619358456192101150192093303413049948902027129738364812468130054052134032652777041269561479050411981870700360852020411038579129942917924841377811175978477337812576812002423678845377025209477316331859067431208818405260650824592416149777094960471303854269797696612441511874992451123044782698631585226309157446136206639573035513276759704148052010967843414919942679532332775371221311553440382864509094575005733048344327937145329823437467895977064711152291666672189206677512120913400872074383288673047570465305843911825334823036479401951316314631794778470750340978972051063722374857610632629251639468253664001694908803062801685158354038570073476927625106989422172511971467577153653789389818267665394574299730733130229547063059624251900755993879177915007959239578587678249323975938161707415966644359932200032700581151343459372827202195823448553401656988278712088544096583756877862116071174684136375283932954764009883002803300741972635449605222565817396969700959959951947762707597481296786318579072930550541101802358342551741723573698119196449100620632084902004249883404257379378735199553852168050166057800407093139779817395896196066820974006677046006953735925820451645717470216588631581254100522349418626932086100378812731071670656102420321479620483034415925753948198890589714098115278817356053404531641657656716108751411615791091447096779287974536852622326991072872881864610016564245729597910456222802586718397835009151952794281364013678699078486564311822780259181010501855394158320025941308683635982699309500744325210218894865229891142846395058731951408924921998565403533859088980408408193580386083285801682311687516647040424883332470683052429754280460760378600185531046565523909585733078397909415912014494828857308775642803000438681993560633051292542885447088637430458958164496334829238690861512392776845404436315077561837592398463784646792454877374940433037031143648685444576767367227837438159698203947052819845841584958054838437616563586517191649871242019048164313868173840396438710146758663630500843523918814692667054196069811752498020607748490842526956216907721628450153716844854718226433361869343477043437996883372952253433751831748099160885705482690275116840973686024390529529547374453621114979774775708814774820533303432668505058789011020847604689656397413158484231332957211575898570484851857381734528789584465968436088967245889196775439289496693703040816395580185634175201050417656101143278699468958818382840027651529435276018727311431681671993809952041899810715193853145909927946001977996122708041210059473170814774184002258651517777750903916847809203241523362006788530389350700226639045125132185668102000427694139757814090709163020314338067275952647311400483312544559426727795415744607195729593003762194821903379697670672191313875521253667927987959216519146135697690607857114166649538761504733208276130196994721341658946650626811968843781115514216376188618618752744625903391399168932679767574250553364486254976557332143239233437282291043710448825800466446678712224295972717862029592099955086457875159630701251890377184533806465171842272915491462700475640768529970381813575060251241756592068231906304897202960177622114386823285521956834395805165878554405919100531254685311163162948957070673309094192137315824721587867195186248677478618866859362571098905914622678698205472398647734723375780596074088580670782468307633842482032411601474541372207431955473188996294516781117230224721366017485229028706620176280314810798572145278716424010706521846342788408005257887918174896506587248753131730472004060316070580275880733114009967293632525605944174844542269776754386881467547244457930168971349631821035052187919081749251649643782889401008629862122731845882082449975649490502017004671686750331843155459519905854906672477648373438083091007653014619918684698463175682583530325662022413795522152839734764948854332577460616015259583068388774979466063043412185654162881117670328596661883660986171830032254368530646623081749033772096531617002435117197698718923532386476690212956947224549833743788321996556836018137531714620961859229076242943528272737938276977375861815141541798539001552792345969121956320983159887003388742717093296650279880484535562194424743810021242450039940807996611058115915154846662372747861801459251246025706726484539064672006472422565455010501986789870174717891722061336249020228637919587874150046435393287908426636030214457112263806592948029127344628267226146284858119571640813698612245983987142465118791710643013477524882538866997215740294524635808694889750533408685164212508243546701044076704727760183379873599354770971095341380598048957738265333375659746738930504425109257488171321095399493628998256246281410875080017071707799331307896516905419371894494504862627302340460515586262858364666637607916114018790783878242056839309289640883014479714235023517273033833352817275192339530906185056461395404576148071764136213153104546646095829384100289304628490865284180191808110812616899623620947532157894931410889856250184647030281414314649964161833669899413278670564886160216361766238243425331034646838833618296459983139395660104141616029819006318097702894701697042600366022444555312803545490812107378415648451796524227939792703899866021310974585604838645070459923781316434084858571474194852877206872178402338483199759819540318529689234708637794941710085526409521935261795545737710596642301445846231956619201413148038134892438889837348287501841816739469655145965263560500635948037423924402087255579326644469917949383332038821444206654772922060162625393156774353817311163879534203402480394451791427229412261777020951221852836581418309227969437426937519327012194865588701769643703236456599803970290326455426384157132290289210808887660291167730181242584123710441878703720718882742936996778811138549153235781036074635851117030690889914442043980425438110774374014748084822265116454823029941352451888363589965196287878609534845370444689563314638028508545146621947157683241064252104733210117835043689067787672496144533991651858694262281561892059300611742303809309562650620297977683859971104037260543362852369644272959717549018114577507893067196308567967042895063235569148236069328408045625137836384768800509382353109302611795310045344711431443959454405156442891733414093769669382938080560216998413772586636143148535109515775405013130544110828325983824450656432581055805059669681434368291648762200002876691530175247048743320779985901224665340766506388416759891737514653492650673942326692823318880323611773806402708675627755855799472275365556840958821114681522223138488419565397792711551651457043236691546726170161615511983897447037647250771960590181258179212296685860409328818729603475358276139729784942271363846360751117545094247386108103227497547110105766048308928778451323874778073180357295937830513056906447189087175311909628950947646687420151956192540733054721682892296018847312633490268918531438220706738094962597057960948425163630244277086455537006180731669714158881172680354458707078543471650888061213818821313714088599515967519837617561701309420045446156238206544247502740694583462535462989039375157090136883624815308125889107454927640362831981524462267565150846691747466700298553286171834723405385457564643613697320257632551050760258466626968276198732010605342280230097663289182913713590565127287021289314427918946661453266839400668546285965750626101819202063526927021125456098342856387301566741386101034248232728073839168202109961083376407499185838723604251383461527736461910991462855146768365852432441879479571666534220863794391678160060558292431653150196220341506925971126812766388632992528585894338113248949028614336041483878564817625785796451830593211975934458908980912828700971703471250510851627671986640074799997528904785400355575777092274213632245553446143693699332057067884027702548447021551294310021189968006218632601052311852080116731192413344443445566161970178833481815093966315998865843851227769585998207498524695342460194807032386471472405433635046009715063019149051128490711927513900441887119064313914311655150933579049317387957132812631783469975269676321203102507874349298834776636038896135789502629643839962191593927025993436934081366454676024825332136549879599542648069675396611288441106029404212289101582712934912581281019384081615563160096730977518711776808096312578460692020273810143561262120246656388729333433113437610892591821855221220907075708907246860902932883682638068049962554449341467339719130367465737889853957330404156649606046599301329108746430662777456424728312383851832339195924721081738598579869377488605227691000022594588204257599868748615259866095381750076486108082563702447190405369988931733612897158387341296656624140615420593217548072507861218464504577293067042148874942718106899935912751148427483650429934914787258208346708962639368040471297644305559416049566100250529292436423126854168754793299928817307421036707177018618320128933573790987960479655444356811581019474488343422989525363851643625712018476487927573478388754706190863087136501143761451527578717456145260208970676094029783362791162733901855868627671016874307218075265951671147238630311095428569499833141934197730946458602003418768342816234713273874164125061836136516140731557382237640751909255993967812592070417162282441501294357881681500552640228460593960398276180568742507191509967593027082963503552158367637393234763920529472395008766380700867907044722451009463284469774358929090263005490725792859940694412837699053306325484624593269693033234011491090919835932133384207900643633192498807114381085121174480329145570773044350328552179804038084467015305527297573479717937876778905258224333232650780006048333166354475279380331337796761381127482313291412141096325695407458033951374313716482861166456875238253555993743206436850586651326280628874049789680070058672797582630682054123691573676566505238977101552490494637103948505478989860569082607617448418573705342362369640558229553463491793290145894715148983680064965914352682573191541340961057326450510268173570189119236592404486095603628475593792919965417259972827736453992758157140519866890322337771551413621969444455626132192944993532534409967459118297332413535759547709761461290561031798945113732932383770723396619830710532832946471468029300359268015006120480877544849958228140132014185836584483201143326601325320241678177786438445207387340953280661174142184924255115249921388983416123046309031076064292326897492998754203912803200641227927528646474398228953697216124352459011776753459987075644365515651709834603190970306418709692745586457359183417544710543453971049067948828963264377161244826576847246313680522522533850358766017129497612767025826817575442019174407145042601644311788516564966700939629161240821532038950628538679475483694998101478719638254538079218576239119306103974830294456113471567068660768484757649587300769266326427311662420942963327089332370287694156025422854455478519402501731996448428153513431377852491838265383266175443599368582641482221808630530899012492117837055539890165804844196466361956487861123495535035773925080233307655880309634644540812112290114171293320321098330575170165683270492773291805293810794462243589380704250134341901555033531422935561731682269695079441036066622231592575405837633247324654287894308476622804418366997275928458020542574331069876117125485428361366634489520559050341649460339763819697360418239901978009844900526618996443162433469630898636354330368051636559936226596098157528929618340868615002725621121957079263232670872819518786694207740906204188549225325613800051373526068409655377900700021261470749918339906639090921047383247943784708059983985506071884427178944079641899186919343888716093014354180421048013334450517132436655060360164438365554810619261229450484148929197151989035718208132037013163791906737415364267268899592562670832552669308023236168835535591763075123497941189113544809906945543337475238443851369507841721140644209674413190227671788048065758714013945593063407292636592805001814380117086366888971347344465579643509705164104653408277415147088351182459547067277009766864642684416219754903022437593967986620800145748275607893829626464120361561278850165514150718458070524441129652853964277011383576051298266722677687676805041220097755513666084588846968095156935963100518050362302596135764097229441315392225860880418257339906756444224276844229134281094555415706424341097649306389099275231672720719662854425639413807769677672779052345791971811815131703469447721049474171071681445380683122795790932511687056132595416293999413183822808260882749391114496405666543954720569963368475278999898980901838793208443971642576731850162052586897615514468204688416609491246390105790861610882468845322340125075291647423564343470696844005092647079567982325526292854272856608181121944316181970313467981768749897598974177708266522842877228533002184124843919850471891873454304517027964671058589746222539191583449300849853124966257515051628271049688644093366107465710968511891852180698168071961509294260633776969195167404479619712481362609698865140901227139275274978160329591111077144940446047793294779553670599938253857155506385112534886382835555805482857151849635913753249193807712927145645859501366542904226280222314980628901954388993901304601852069308400779994088719028181272821231548456198852715636978337818692395996131610048823491290360854213152267335389544262727288685188628367838553112899327799674055741188658564655271002761718318259910890372504616602415045768638698252193543791054572306128470170103702291735138029926010198255770720454894234067979031535866056109601317443538925713296100826041232652182570338839084639368928623777670621652303215257074152483267931354274097414841813373981354999374368287987040067936212067203212431462800195548122835382369590249422865730273724061487307088807305642254577472539871521032141000490837012309827618611082078424219245115233695252398419442074717675069056608897219643207270352657011360799393494515120741412967191161731840786129676377313178859486403567772437515890275081126536886029937830758055041126096271263071783469301466717289822310210530839480419012574442962313026103301653854482090594897182224082189823553823258500554884590476277760790959657896835487182977397731110849757306503046062105390065056898264990966671771706398648099429416115718360005547314333690783293023410380928847108826617002669956115843715139895824016950229674274423595094505259639439998162534907477292762650184289489512019355595644205051837606257485640392748508556106058314451776092950657318033459219596152593164222453648958835812673106141128608769612411811218666388390593076128503956103622242813629910056304291011237201023415564803277590704792739695995568440336527168566182425420929291763501509983446745613171626143464702197352845980019642525603655989723125146241682891699566871619471913567701658090162219336488772700294921216687605640374811561253811779311661693243008211245267371759489545390604999025432750414737059238147125620420248691784950414642463757296392320438760705883341680092878598127396035467938111646938272132787644809584265413206653887087637059499918407144008174511490263155519056331370243372184357660900280170724615305380675984075753796779158992257198525333324245433815391769795460565686493352337850300241991484183161709670266977805761086428179959993374665701032482749834081197690599723030671645384470256507993355282312539395449919218167175215789199278779370024988595277186399708199656377046914572039419525166882400018942964782147944110750033047170045492671061254488432166929297241711104308902032541452609443619068059929325615340690451395628845045699075673340533860203712801118693889865828212807946307155116034850491805943148478984358858366688190303873982832984867840775580594150584011660793006906183465163332723448794078046425777659232036188696279188633137303051034066338533077636858375214037514766892794291109480496041300512432831365226877143390311195334956381807680387267540727397900171842525536672648319374518821388838895910846929754292822064483344421727953019826108804190984844848143917703530794153385745636135980263484526427236167042769572199290958621136647384727154670659799110574380176954013896225536748314476499122672005544126608844342030143561013539478738985524752654903187943612685590695020343183559686309072535051449223347917315433696371513908859464954837687084807099478010637853141481862387777769049898083329294969741730972271662974117371472651027333723458128580660061861213604111586719412441752912645960666520634745607912551390068406095538719034537460833573635107123588618321254077773280326572559468840886645055361449411283976042297274166775848192814067382149529430860085322005574429072377066330581475497042366327406768027166464439788559865547417244908070248113943564186403346027130570643426740876321173267335388274015846102309676190983134752028232458472760757561054286535081923269673508537545243097262475511973798731309053664191977159798076105233990725291955155713386110892608555018137787327363783474473495439708690804208031277788633073599618976070228402548141008978656881252107150263053638008203633614059403277357582855619970741952892357342121177065906768878027678711174061651879452402841261521851164513190605166853118234989447784059645521453404406021041598708924208320667362354791570185401253127632659288250957649108256189368755928122829506555598602627292480973012179568762956932403405070342582438169428325964270269265540696373997843150647177568942381059271942626568542841984240700536967949593611362840762838257437462867831463405308410311871718404488440316523800004563868570679870989082488098876669424708991989215738258888488494249840385805989294563776562797190120948092504814003449242780559690406935753851466407103689296079854370939305574061475205776272191850182228929072396890326322079687430827713898273998617072630736778829520637544650105471498411273131827951659171904909400071511596557679715897790156386548912406095840038865231034751849239414135057746831654111512057008553021831528969078719824590231736968802408510452049119669816155327352799073614496924309059564823697951586756580318349405420994392230587579499650144575353921660743443746185299252399120509589123771695311878906078867140239462830641369712043504352530158731196423797438432895813809994568307570400152083581664464751935060204688109172829243895635492794723984420533537404350781073419899159846962418649331098121180597483562805507242035143092695613578317588767131362323149793385337200616731381970974883687068018526742812849302117152335632583481423484444075772911011058555545430418632160958665501171372523568167459131655114300305760726422211299544329566385043571806556808139607905242015151272080619542132529295216647679292774807578562043802894534457832360192100725658901867600867399886835285009881437823408729971269300451812901400544403629900712826957429436833978352975701320523969648949309222580308988703140099951892415857087428126659596677465507199217273099967291570250843104334254050701501561658618390780440382076176557418793373437709850100885531588311072746533172895932758515017228500767243267428023584315046075046263365370935999410299943324700271029091662815571242218573143737136802439552068757866151764998177984834841290896984902786181396954782619520889140678270114308578740392388982794407487286428828977043431461913033992055050189467770012233333387158613349963490516449672156510615164797244704513192750049818120422305140181920361108251213162806836246525530053308635710288862971085553092301110346140174737728808193218864803294962041189324960415429373714942180506737249679333746055755422867252141519959445111402446569964290510409614848021557396895562110735431526916973474177309021908368935914411951768276967249508523582135567779970440493566916838135041781267424954847711751799620809444477257290569548356733598955037682731922572562964024696731782175482494536389985759227094468327710625782555250075726025821671630730775665457558309724409787944418848332220456796244276966318892712972411411262518100842182989950189674927361440986130984138425081857459981977306182104448375022600844248564720643640037084800385248315929201214076311835645532992918317239743255983262907190111155403310581818408869413125622653081376664766109624791901773382515836952495131831637654450716995364499654765130505153636344017912915800987153728965040737291661829291699486186134388962226173505368498927676025553526047740594453500877559481958187859262355615324333102300776695446801418404035957633825392146241999092422437840780757323299826436211097815523954543882484754029880758379817287882458728209893142609948129163335593128574817350152231758027286516275308942829353790657919581875213695421468007638496740266400481531985632223234306435842666756292340104543910149670974000692732871374349034069429381697661717276012890454304453620210972146574541252588969833354229854026427411545358332510647660559188231533111434301486515043378370887430740939436487997982573269865145098024024986247636977988249188290841982905731088000677537429821897933455220740958794680212280080634006334751403610971115694198240849730992925772558147071499326550771771174810013570112784781093347140462491015780280733835704351491298923482721894822536620701592143565429611796680975334248275250806410274910737535921078208544786322590520741534129471587585519064859484819484322705799627920309498196974604933309738736498686636912642629510934398810251186940169748487265965729864177740834677638559150654787729245151857863764253174507275210172204944427680416515233271697674092858950066789028306630046723874098113166575258445395443637610149660281120829938765039986496936892244263886155926130258842322364865602266185627410485001870200818453862174507804568364248347647097890292256146123907673257178472461904878471175536496752994963392839923123885484486071039372023966443472148541180210579892882176061139783400202719320066806343245490043990659021583158496158514890974273711842065895643709449869445660435784978300353339904001667272459264999838670289116579375132012080336468815490248276466378994054357806616582234155441065027342313255740494749024224388636690403093122237478881557052097109963481572749087116848931061290502390438621859858663433273877662508562169502426156925930350310929985157995765724595942430026976502477404198868082615894210889516794819218918194348789876396321760709971401477209978226089221229890470262525459486670078657458115439492038199876032584368406444710232893451836962140028639371387520198231774007263650877019234201240277500412889037687445872709894142437523365836724688975552642463692613990168228933573248620873822563691411948190654857095972583595533891656989975594685024458459456599009218615300809605151136895585118289714496548611158486064587336967768642411443075391838208927339802650636176906175154136560532306616935811653374940896852885777285080645847116020218664818152710325569000806675420503643886560815299341959710820703084353887970852236429525763572827200646390991033954446577414567314424986517839781547526258873143281424298312579985645840150631208303054421166110692115870922731581568661335629838034530686777465892842438087796228321639557384009263236531775950192932104373342614484209887308224621572373475340074035703408992783583385924268768165524747963693449779456728976305497708105981520072338602695600581998537490468533757004269113105897048414626032579524205526886492902180517626086894723869527741648807045660934311245845745043492016211053101565334237316215457369471698757242330046542155122371881047321618635354800642526161235575752763177106436515770269143454493751236779960165416309155183253784150278089044593824850943559535298182893024756912950757497672163163765180402801756654220701216266353083393331828688919313342258534437695273645735479189543352094789723442384532466011178754181256691634694845913436258017638670309713322091799854543000216114590604131474619614069774227169570988023320073357687258732219432150535061753309486838618702289269327988867414684298211899716081270468249975296033618097620792927397858915056330630122086043423890751960538215573774154403681991136069636756709520987295164166436542890758325842549761005104817499658972450852408735811365648029617628944241299340134312367763316706747143298421274424961787580147285382580533808569489410460120948519873540678798745008340711324085260708950699104093512793644572964200812764429918136111633048971946405717521051934395665933052341061442079602038279605758142761792391154171356769151329264976098842208620240343451747314888315042742341021455799383703244947267101464399306063798382712223397643518969588772345514896163069707871738147882010400775512637596418655298308612317469798046180934145943635739738148924879280320524005393744836186525250960345415647643465583271627049673337624135881453635821596047778373431470495601546826490859076882996763980825222828762271387807037814929805550833742232495257306631817242032421772089839327924958523201664736347312983820615473325264677921255421563078477412112735839896274084606816818809687757964064186523895129672959773740447855002883216590834954603953237074844297200429464687725022057132293191260950959196275927244702471521415173676955940852020775347659148708569344558044153585008151505576677727310498005930640198527925269918648763454539188815216534882347925378847160355782714087357420283213148095342501408293935373654483538134916563571597417969730605793057643769093787461175740297623191058485688381950774597329685793472918080051929350752050230341408107182168536888791783291826450277670240219136923206324295242786823073947996161620285605764506457440293684273627830885482306189927896907294047246321518251357248883317074266359070106307271394052106344584224290167376867083742817664608962188358014862132950016850566621384936202623563841908099742852877201839203195196594661145325491981870702685926622973120386577981046509979280788549828836211326546011433846197719859488630325060972559382769960487103870410650261888240574374787594907016331266714197629446857521618770989793091287486731077905666282748044792970054610955719079314307825447378574386124685478040766625098394951798772677162135282522470354299961106187921992283144858164822092350784300093731880602541060706870242579572855690517856782939030907112524515310347598002570881841930141336851968265789559069425195551124554856623328725394727226899480730662004310944621747832884028350589993268496583981194893574297115017564201781952769043840576829104129950740343954773524900652275629958739917317457100912832020880279292844840992190725979209858251534461117434682766080848624159586765097708204951977324756094061868078424119399150796778791739800928019571826870984464794864865739439241559918244976344948951505638306955763195532608340975662977878357601111149558086502445355266710969501667148027829766163970279375236029845933927290560772099380019028379279199258540270099894900141694996073018884310275379251549467824754544853648291621859526467272491047158011492292797991614533172836604398120825535229724668092714816104932256039663557613005418510819148619419985167220791456724594798957682919855182114300404913253968935763363937426429125700493731610926895681271881722286486362694689799299614848229616875435985652460377448960246643892973358674020030278595478807895000262997053544366561284073348674783127978819953925343354837190783906100272332288886166547376823755601115458854257156159205492644405799420767196400189632880414238093546765695258092347630358023619910395751295675308194226155919673982357098705401921479224902723705397903433145360304765695192343950513246464062205125281214518610893898709750696025124977675274192999383352723937265467870415692573615322439826736366022315838203265479285445807952384334199116797675709461493458753080198032510027737422131519216825509809864915546295240347112765965253944740664271654665376399173115925828541259085771447084663399731506766253742978872714386911690188181248595837652696297162110701990347167705020347150691363768199699480445468093313555013784205484438535463638231661134739323317804344191847240279693821937223371015603207352464170374243618350681514408337083090508778401747105437004938966496282233232271629279545058028572030437177650967757322281873994550861848556113905417962410454789496569660238525141069889216354973822112905706361216910336893617117599440737162243138275303990133113652481953738968727501664287801462011829798719591583867917302836248977594185933663756786861513920090070488366104969002211317451178382169154418317284718590027110867883096257237700152775579962216687665933947181898938379144270949286097319886751072846264667447321683077432996061567899071777151211928344022977668875313632781545339741861015251074031748811940669564251262699516293432205729639480945044162957201415978315964608446546786631975192020541539401851093417985737787550702288422997635057708057830579809967959345546462225790118182311258893938655022623406660337899697665134898523291584672475841714496356586605476029203328268171243241812676895499732578236101550722967279463496927024510730909121265193149230424862955833438672227561167891708191270729915185343199940468287913387377581884769320986565153251108616941192403607118119057832935099394970523389658013751342710678255972218267974646310455226775039584521539250240984840810603434443670571118369906943138627182583811255548962420041370423460851496464048534148099933705360199540157331352644267981038510816338905576606311833521624119016783963449706649958965926301715412165402905397793249610046565526045087792556316648345318268238109862320871682784780420748102239392459617944541634528513790530439472296940523053458971530461587293263627467093882896040909599698104105049277689712324876355018759822158286064116830707466583792534266370425698333701928723726778851302752529269161072292323717474844753482724505206472770646845653158220857644720913348429646084581370885626250110398988405587846076368372427039766968581663748261831078855778626361149206682742773417727329504272104561061813006747357566394643288829150352791021500971651623588497249435530078988896496548239550238824447566508718461506110970642460520283541068401159132484941534526122486732153118814432656850480613001556054627978706337697722791830055669228585313938533825319279263931462534437333407770227494048500555414178024186270315797031026472403887823632271424095539623584618892503930008741850452906938431772825863703572712198742246015382934467555422417096939724668624156449675936767518816270227652114199563638798640794792820698221205037346223868717753505066778853477464164404786835146091519132898236414624191798143795531433187288233665008974873544099071068764837559409825043412302932801957403084635163638917340517595113775078574362563202592178896565979281292387886798199087083676797305907156167756325208716621127733905190224152525192681674932979589251588685574367117072940137266066159387534058575098113334885507208177139108490033118757403993027721500666934565921506088256852283520193421298847255740072310004670582513263084399204317037439927911638843125264260567187297737462939102561918323565361012382905993623148524088553741805323097880187246311385906990819095976034627389868869112745267957850480697034180433051762719876945175603486297244813565126570690672210244295370336812465435617976657367636099739255585632439371024063981405388758331064066767649727048807174014876297516150801460064477515383738460681578364421147380518433001373789986457054136150593866939411508577371968011856237386581969487050753648017892612030408950994121550618976822660562521315669156798198770599741544833664569011312471820147609649470881420715810350848885592592652813978429464004758645676746193220335221024622661259119141301241076412443268475831262178300134141736542971628389454081640182477097732477096580683069550915545715983306695482025757841782514365454725479322258144227539956932115608927352113312311756624963600521082265787440993866644962871577855508123619699431929339502087683860710227760924427377522896037275102084788465692513649877857295666281742528979859941453324472850805562787472084796878817174009550902516109677167691712226054297116888200505048598234708134255162176777578544773495416370124189208643044865382933116543447637416334946132408823260253666884947848703406609270950212060265625633673153220337409426669900000544136177868967189603819073582425909860666063389220627232388053682664377678179078743400037198778368257831518949183672431717452527029457938259040570019092416019458031976731628670169590175964590665922936561035200827135922897542009243553861902572503147906373071190687287408203776831955753397582117619577202605624611016685938210462332516099256254207876761081204242419798821809574010427023416746565139625922907495602713093251505120603229028474983071855741173156488041097083892638151396935790571761266426956089708583255935021253416964564583002961812069219049393798703877934498824151010702533694712910725367139990828632842614524993889079366869294752291696829530073572958108819400454972424109140402595636276008647941261977524201089900292884998030445582395806862578468959932732777286153616566967109467149192097245401954368991085154095514797958754733641620141413620045537698343241202323357490191436449847767219322520115555546174290449972343096343536234257436167461108401981540891392496868350598398366368097601814109529405987291219774272036847116916195789937391067266398253387275577926914189215248399319483964615100399524136921136750161556273514188148300059461561723100976016504036028382355884429114401226246195994769789956446682238847157861946850702755690137800891787050664271990664902065324032039925690196167751158497302419286508526793662359203088043370136711289526532237812241626725959812698133709940234989430766373270275687081357181288874344540294940463295377101698562157672876680050824414640294801297771679169128948513425891031166070453697221619412717032698230101159515754213204519738168068495301347802842355485588622380632286107458708189994317615762135848372711696515329686510209206952184215047225181385933958350896023847216598336626406824416857787015116362912281671869977222760141281179198880673481452984102695504008242142447727258473212949770490572788256938070042502381100856055715861711361578104913122911642533458200214770418377508202621908466281066086361920074344917266765370523921245996057093276022564017334168950430065998132979396741125537156606260680474771426017754674681302189616054265228381985697530256973919852737724928494536105519053747095020938844449542855542622267616637152970316303447883353647762710132964142410859018259774509094192948685071637496783237274246502926602198784412737125076378842586902769139125642488036051733329579382570399292175599163231099635118595174479950726333756903130627683621806343306182740037639391861718280305505643870118490093268821693717222632948656902497956691140897818028659772626897582486068261299018628781427376336015138304942264255413166962713943759790460275091680174616155915604940552983367574059789755029370975901119662303917063849252966237110444535811068236816343814776340321517957662828746188681328668460082488900595717852830333986005365824573522830648083289187508297758086549056771186139850509860723967895209045996082737106731002792453668115541328648271779413353387650270543477348096931083304238453677508532417905051191966371810439316710755020222310061393346837305480541240771620778452462898316854281765863854739709647893098454490872636702433305936062048002162824894339107576278810260343967536360609589237710156256521553034727200408470596126661639661288811353965670375270576836014322168710825883140507059181991384760490085006995255212711765708816921997179631925992058233127257841874450763133744294427914013382590291381165130100572812431114899864228560034791808609930407050272702675132036001517996426728536941314598718454075022561032002382865164631216279074984623750840699335351476524975615252752271408123817432050562457094307273381533015603903219286116580863435028794952817860599298716062589608305332163502472772402977506577879163596669185433232920445512448841885130466926126717623115940442069216419242507926154545455265931248038580179690049944508539641149054505732312031641939979442909721113561020742158386066674718486403006523475535637975898502962227766505124592055003253136883736188575318738174381425301872068970890952048645860507389945832128931481080226032722606537767818232842521374587165900068826751169690711744367803449493946508223914962160381302554706692821483268529893132763853108060527728476042272399681975818479869774367666988790792454296854175657381004392366483920887926384105309352026081999477445461729663767221078014227912330504778433842363112648278307599182811089658301487745227316250467983347632022310209770324227581618076659380696556799017181829891064999931690393960608681444799585980717277530573161359656454107529099404188266993786087954594844433812811552026202640080017918033043560043282448316509151164031308958665387528622465720158283015426508994315581040058810142691382196715880588930631122069571556967847410467484363354983324010822139569736653492025133281659302708619398962240724124958087790009483120149571132691369462393955921412739838581576941344804907355997844171705285601060728534949767772180565412668262688887691693216000126224796267599539220924487542041514427650427621221986133943314875390474858850410703560733418741356167131167161300515525892737361081395728734516849160688457340008361604185303533811181082747232108458883651774106871606012998169031631355098940830694234149992371111776913464344106300009274551785903469581058286902461192092375160111234806614435786635242361512735109669148183053883133953220193248037137777128557581054365342446089924552051197731628662409134518901787727915135959473422851309780029395241572973875028006669593633453680894603605884078490705679860121047066255894871414315153466097528809978517284605084409110248042186728246497011475613610854077546567694844483815890361197475963806160368536765323346358712606008720223861433242802860162360233515036736354660651210875337189654256443154415743890270396796016421422601784083760819844882513600420319409382248912426932424374639034582102042517408425353755153462920630587534718898467506777251542520230638598183524439913944540493622550381960777282220157629872512823268513530288442094079148794458078919228979874034210661126390385687312217907996999799697513772434226846339021183783995686581938199036058647723555871533910933890813330793671741074767288057918227200725693373583362364351060334986300328406828904877475416115642136798002623321392532441489548026729847194214428815805826913274461768551946816356820823408851158599467073265067637179043485309345504501969905425450007597536154693840442336754133278404835285341431984604702239401375826177954546544005964561940931346580561014008119402802905099471854556516071550326030368078018254231731921829585336375842236530701360293905839351360776843302278797751691199017755644993037554755758395696695456157020691337941424894919755185499619735510875016541661527046176613719517975596362425511765737355241659571704021672637748667238660023976796959947526234478848394641614869456177619652851892974541728966266277952979228673977978180031378481498688337379215221394632063925051219087940215165741119846187621731159914713448964915399053054640086344003977204065807788026069161749366248569681308171935612673560394036404079069667091296163077361225283713331004745472455578525964568273734742085327608492371903878906012578577597714646885135911917040148545236322118530426392551670130374918676426212756999831867712123030348298138979470002366844757487594324180193346609159797460280764764148265012943530479350080803692064873848163039160395543893918822313527350761483310494264515178186915584145369187334031022766471424933050891829121572541990757941431427865102889210539641945825768692583371625929741305310937902205307931766339364759395303567559740168931990077133909830077698811091331169473198515741355455420167115072220505501898587379868541316984768099228187792173691394384406272137173595803225275705367592121115368319424074413008193231835965444048308520823406267314808358622697096099174472484079555870401946130650735752073361240153795647716073818753423658141262265672242442763740101171009926520202288583054283865103694676167134844287806846260263944153759008869333106190221226351030224351584202498856146846539908050625793564546186434365473517463653845729306361743344874582064284010242682706264235487059766601608625408081963122609411959980063883190849082191759967818305607299797230326087170474953215533146700332561104038096695251877648702705702244007172979338306127671196187624442971451799335803653219909653464083459495512264261994807956140074354164164258573480904503375166150422108455681635310742637597190890828793218459885985577178624265539915712237189710344039321096208787982680036618315285390343984905031276553603974635347995677081656779775320079709560081643781785687704544158503109124968844679240917830163800349854787805403388129017014618500026694992710473454425244570680556116380893197659277918098753750330906604620078771489490875524098649130053667462424451222160786293249209875553462780653254872799551400487405722206343647261061939882480862523205453522383047822096970901410169403375958621409502037935894948821433220918434627205886118907589962980187916305952371514964859997404788606190177573402121613629636812321914728718441868738993148251950842836943055268217656023055972997118329324759276040602289477009285207165286258890646367502896308011298722332392538118382156354298835782574972505636522086846960257480202938206703803502044780362941101474292601525841613139728114104545069579939767464934814025213274356854878233355004117162404024503735015193332071075766442849704236697077607994367224061626515218208147755605393002059182126597740482115430413781037016201137769447670038275247204247239846370828761857903977206913959353279216766165033562924606715808652447992865013639623559310511461340237460519906446211933488390474147546662479689337606851972275878294974198259109843814062971974374915532685785610213520859824219287563652787447957367265323843094466095842189932918444315243597682633797705634592393397992675144107305559590786986446005896649901459519660557889970680794122980739136673222602215276646223899663721279910839145463429349235667818773076668238290687846744108023676992935830618329598479285929067609439302705485353605060718607872719229442628349483257722090689384370555583975894346183109288329242846473193148924508892678411623308278936571578093341844903554804758326308706316007239175698378887727523898895364013375856054581073619803465399415422947052274932904745538248742914107014267415390191019108588683122124931057240450755038709935864285760440439336707624359307934924473896489831856121557663818875856415424953220450638220236960627432247293793589428315522254195842093455533510759185679541160477462741158141078785492879785800177435126045239769578569731903670252284038335556771650915936758842355454301512812556504130286020474098373834690883094321941503407093377717303499141054156107631475259124517435300245588923600126438413408848882812310316925731212358227647220623909665347196815517652801213949687890204862851755428701439002353464852617128042072299452195485808170244403912965795318110696246823496215431695250309591619126029113469611560800668502062107283152124128798560592449044269475391332357351099400689095320910448782227757768713030102943532363573437777127371904825340744907596619343319902087002959983848428522349683891153786760349296229582530793260949039175409289291518249326289074211203324090413265812090895106590579760448670184672929701083153099014628911346100738360670569474624058177207879375361215702740531780073445725792847207204263983276439529310737527341131963791149430594235742437178124974146187535898669140236708550619738093464476864758180382328901650651873877741831942933424113517643880408337812682352457056936927985076165717506639621742005339732659170298617556362258845570597848178860662167268918186217411446114418589070583883404579157877756975278422195551642599262587422314582404305278742413208231588729106929469385741135480692391738020996072505476617910396368000264302201686176582513255094965406699095903792154105584249661254879864938133186224190986727620192752788176195894267849643827120937573527108124747056800203346581941403557884572839709932438119641635892794129766137444802649363365467492466756119442035201461708510206177412289010455672395599693917042356095630509311406507474950611276943711213054716112681866779995795982821377623352059162727214199623537301018879848494681621473175642857227472049596617157501654335780007153991183444035560346621247245834178528160390683988375577529705772062866582771661622222130035137920906078423269805076240889893851650771112602341162761251570127079447717515263172610358041897827187402647315526713083889946242017668307793836861239474023915808315561174195791849307538545640655938840774760755997123104629153694289665120356056592764318470408351669722633015938355805519634864300264240095805794249572387400071609880493040132547633025842531893499221094553143646879952606120288170373853826136487416360978264255552334917348191847007805284697119728721216262329358987625431446053900426472151133897106171968714839848909201679773647907879396171997720044449309971170598224860611813472041903858900296297803069788674492180139048388987401914820058039848229045834257707710986000462138597659181347323402965204641712077789001726561289597146603204423329171334497419948054179086643076012809604627366661570096553453857955733334278086746324161872152072018213982222698551794714875272195508844653009492809733229517922905348056894211222681918723677008487627773471082170228448448017881333022376423737847028421653412762036659301956657568076150188738301002789727033128466072902444993280417828977224678671091900574947974930858567063143315797651365984659804188059075321929032819661583589268195823605016040368664392640192014824937704399856161600553828102582188721574039419938512735219282854576526188892837771045286852734736914473216949605981822631331709389702520772786160941885609944899946853018477513715686250056702778777851287785060560555773816561426735678893060618353867915718303873689488222434837439094283670629863362964962268646524405919123622189323039692058597936253038662095016450957611296576718313844241019927801813677260506570520136580694663203853807284383744069788230600675083151184707969425496407213359070657877932520025594464811313529452199282435625826682031343762078818748182336251138242063050007188601216296294198763107513807053168053258936527316419648409145808409900198427025162134960923421529779386054017107026632530207910224963656337020913015687840701308860460078187578264978021394358204624450084365615661609196845607670384550499768700971291086659934169688314310462591682824675037415268988438898394069826706062842177310732633315844117006808169120009050836673342017132656064257080385301169234722800285290368716101427426269128129265161997653998429213374197584446034985660935425056897130953058346096052303977354602437606087065603046230575940577693988626615456558161589291425767281963435465201330161562912849615562542092353932506195795301018557850944885376517791528080843538131173298196905751212445453401050003909218214625938677122899095144442434067457523827726289184286713322543737622490761011478911161416199518645284407889134685064641002020387225692631305415505658057196863088660837279132763665077681011657641012939555131300100722477802215292853046530106256597145178999779923493138127266505717502892564023594781594763709170388203991866531787460582581056438664109717711729207929463785995978985994844666035540754825015074852052784620398056871357622404153390966319295737244760998504264305819679671940408356278359371348778758127336394513929856891055843870690582144239093071404552185661353487446187882578891402638304522481610374022496455016389829692067468810895945606474256650575083488803448290505717664650090084330137847072132103627590622272925541750315688856327322911136813478468451362051539619872652573087026115833660982348720960223632170053362691600766691289441908047129419810383050962996633968492236488547449996193771284884039782280587111159151458470210438697365786892988542909004213337631257819804255433214196804623848428822924525669938973942859412129212710971111981848210138548673726879557034800992077835302682922652945061476474805017964057150042541236084749095295051641863436353006286145884976425680761840432631922223851127596487905888610073372482395897397375002227979127761057188934589160615325698828517024875798133184920544048004869750390351358974246533384233603536346288771142275750419976151552890183948993773045839368561410428205824396034301153655795991273450142289077935067234518024033382642682387022815348195527128193189070270060524378529533814201879860291314024668499531671018324125968359958960511895416410205538390905968699918160586857759374015022479009306266097872013765777883271311707696604449050028808255700634419910401681022210704103708533522777017582415869360781084127661439161571374828021111968820002710224226078874898113270644802344431938393199674381054792058390609626711698541578078341445245701919123393646661209975735656156221291207547590121023110570995294874474138013730444515748487698439118548078747437995679413390930266832121647908594743248819668463462624655339838184191707008341633821043637495522874760871507794580738442343431251434565774385419415761038836565673588085791300694530046230873070910927940802823791041509901273342642346111178406564855972257127309882160741348886972065249407329738341829339175742176516847939449046040417459914546509345017716493607161311985374082078566645341491176927972852831130451789639248945231054556932752736936815406012126531651731321804433735375816412809005742223298149630562604028463309263718699649348596985633875227693163293930585945794850188593767627048778497662102784639566136724451965781262117264298063134302216997256328059130892026000440386004358754031321945360569975114606904837380788863238110013654706479747442720287892503684856338305097985108098746686256430672163447558719637220921536945859316832170006369684144853681409688289532571923757130452961106106608642390126409701533163281562248725574551750441904939266053744237605395310794720713810021795578353184803743561997492448536488532936932221100010592189489052249809748943874113413971757857242261570696491458331391169746018563142295140349305504280551849787015906850571377445306564372418949575738355914218190393864700636876356924091858293731282835109631522061515796308392755025169163290110825648557321783553026264213596687539915128912632564265396939012275923712692986747009800487263485230226093327139591307924623536393376347313323006562167632373401303993470150802575666837947203828384540486215349934476182634173380045209496549838558427339056742545994306973842577013194085770883277579598771276876383039380032473738328776628286676959151328007907861931345514978971573407116962809447071739326212030243344174437259346798534738336715354065620324929301432250179601844545311734399367177402647643724103228584690642736718078989424019148906276125668127512538661496143253643908250489069374868337578393737440669396089831130825795383749334642794333229766949876517246223905291203894242455054486346949542858976075907371425581031790895812965389591959726174170562198110540829436277704174822207826448870544605807055158550042425653073654672677059070986595171924971914660814444607139313946241741591164658008292193134131467998501454508835003960123900119896261795180212310024078594665287303546979504658784576869946858782538087380624693468623778982677461671649737813331952787376327846065406472588667206001033462324888880573006760755415655231478818387010823814906204827557078412661355962216548232665620535030294306547720337116534224666907198002089011790879150739384128645489206088344940570389168333085008416920990105473277005951116460190958427999700497939420598753486911159495709148017157514239321366706162298250919198108826153593930847076801550087561365159184553783205685171037104131761593949067991268391833698099711407034380926674049750048505223267503463751740061506147175897383787499017887941318332369932114931251692883926580540672748772781524536028802091746089412358998640208814633377230144241628860576105992121976372368618602586139899427910718581939683543708180516626879384854295346708719597158964229113799117022883944465414906602355335497133241154127452746891484753522988911228417911168209005829184465302715002238405401147413737345851043541764269267068750436759074031007350134467253113203305334698206771827704764300222163848362406851104789328848821137512504416733303717334072221859222104938468673388450696885886587524603548980028781446199997246251136009669475097673240344193376642947371080624904507654919947907901972361229536761169814037286618721923456493051683559281557191656276955371185979927378467616770830334276980249612281164272769837332252930529782460342548855710994399534278573906435643297227466197026066473872718546688956994123342123185015862532006052491447177209332756902006080819543212294126056900455339841866662261053552997831293315645305666721984356053417331738998727739882186804899197563467833239210950412775216869331515427174283460810684326213000237102807135770306219858682500954936662772762714814267760710250670649389411533321794310131765652748356677280325780614773077103284535896681176320082148650163084306529975104210863954863754869290302281174797699369680522588800606713364764164621178900329883170973837148160759277677134513331218362710207367072292749966219561736406248098038202581199860052441092311624888470174005836826976949547961167877524772847447441322375547019492294733508012334546597720885311798094132179269025185816907353010171958061301087884654201476849754323184030754029837039010451132404945870660046053108237108084110772991286895674955332235760016847264852108888467671603239413249278333225843934050776675693590785850998269382391546661221564782052402117594552322963005601625466704405038044706112264363024692604126342429331624398375559102713438946415270313443539258412076502584110870750388700498179203820883575205550838349861308824406936947760273824142485093030526475150835134803179154536739715724237962437689970041033764023409359780500347627564104347180891828676736266043991417646970353444850836678384855013425362914655386465995775893257154910317926464632385117494919548864934722392848513954444168966011240065514103025844502960128420375384567423954489526934195955268932539681488392057984051980458617358681490244134152905500726485958325750872346965125432136876886391174900092914968198731685608604243097329698118138662298469189549958515815814777029691301385955217437074356935551499016508510304271279144256256586173340951986444331157089883695809530957079509872277163582400798357433541747304423752185841544467634231366967165357390480052623880369186188237346405155308404331456378977939253300226276624351332076774733398421393893744933179953258125053314705928164668693963259548200344760044012749559372635142387925999438665875430243446178917474047134718905875302977470304879779460519922200122958851140966207909426966452940862214960496319482332403759431746819843027521175749206759718498860531260203094583065611895765494826402625581378237964073949894273031753290067253037933240957174011582496349815044437469574648653325094195182285277483884410581482111068067262472623280426832339060668562461866413376647619952327419156628906590540165361588458858630005478520846559377267115628259331788625124320078959983914782535442912093740456851033764670856852856834766271863227391893549080961242061579047804993966898103519738422226635112527498232626402160624681059279544676303513093384015554945260781801611077515392607574077536322537751701420811858083749900803649810729450379078749545109229278612731306627405340533705796936510943618786750707900144860921298891441520278000670403266252237293290188171371988124948758620910916731285484865946510053247551777127913453380163558030525024360353928331669537357406607545204293464561672473664554241693666208930288153332294154032764620219137858570900867077850597176657427136041327525205067335825044971094470871169953455755033554720435303776721259074352944151375014242531946844401964393769856859696085532110868189764365195022879532182437973721757686417052396650285332804805356281713506108993032627682606212758088582430658793901858576387053459925696269927635445229759020305714666137705355474420970290145418890354657663189073885463628953137010169345802191451074454529512527360655216156742316390733299751041922424706633044201369966617472962689601608493786469744952216136354611226315460208101812613091742409088128367148166597530825601632718876978706420011614828470804859107484756717689553742017821046278977104699010501189415817337965114835588403837648468982234557518076995762043157623709812991936377726242768417909719083812395574782344248777861833582951355777457115733030567508880502155233264035210934419721936328558839342834899255226961265864553763823619218724867810110751521227279279232803324500663563954271324987958704084795170343130251241165675419180136542638409631428063965191571831260231116438384852352183465415239052995439250683144959748947242083834705966847874336404819459926323179457239384295741532135972280445252524744973123113347452229043685719930997558810472969178546228341645724065103535910733079506124344978319170208842029019939630974350031167410742296499681891461861920073067852945906719758657525167144306151952813248294065418159141305487216580995770148278015625153605649824531381372285536670245498025137216071858357323609803430994940132745780474544748605120236700419038183966058174661139961337328680869036609128215032259030972782745005053203510810972710511353184628298220763195753697999719869736710370749808647688846597123709453802336511856869862589669678193989942231103614441589703102178289056138307769140554257781804563601292735995640583901699094391364742715368209614708698431065401233657271271698000392465480406386143742065340056834420491540026546643396447739946427416351634386094779018145661887931595435220057587144550042735567252325943823694157954704669718925660771878315371655847252906805323892822148110135597371050171256211487362623447633918278302389287407153362268452218971123174341995896377931186693974282873442955709639503195622470480202573720191246891525681129534776465540980785044822306332759010075347838267417553229950484905104150129275618786965859893149659666164709535426642251642621018641077078222798741059282156942892740367085723909288873572760514438341088888391904003715985085595428214152974630672011297768084522325942739765437662034861509714166360264131674323865141586944368932671304833019435541696642285387901347122642876431745944298711218484099062623255660139185604277227100104561890698957659898073682454638900121964359410775220954206384949268124355721093187302459957343300364883985113647225276893363954583263802828750632318174424658385377413072211773697563427667675920033468593869598026548577538822658254318096924277962562997854957866146599958215793329501790113598713694469964474938071746389427832819682564067202714366665538644417550416094440036701308720195353047987466383738441527956067505547752930731213713220052672792030908225551693724061543473300451549886772861441163232209231963284337568515699933135917457568980064176758985336658061336208707040847897281031989493593302562354693411947496691761771500261983240677765394701653545394853317493845647611445174324487665012370899561002570593745987027293058551629911617511805710360314123400025517499088616358338764654497084751414565733432501435482480332544026651250615253628554453060459635611702954284605254438749843090386930161121631263710951128753809651754623885574972261248815773274791682303095865378587464329235461776912830891861470338438804893066326121604147956898464174968167696315638944992311466286932355469029291905192305538898591376987121078469263290333369802452494562895503303854344613934098956240052230960351765424976836194449560547363279554192255962169301289615957335058310065198271924235247356912139080525605846602274163709952758739188427377565721857812251798701331029063398565449467563633617292873682303178024043732718372223199382374833698533346887200656530410419273405783927013082598444201579940907742649002496039026688711788114333810313427011286667484410068053427366582502098871359332137513078350132960614995530287159090929429763385206654818516067716805238342900138011140211364583582056153429206294644457431020489031095178243737807971459450470115110493937232550228691222650167955226234890230130269083145111022410235577361222217807112557891333734044711898446401856374422566320789742853058743680400431991132803850829955861497273407534863717095211543667197251854742083425979107375104295353577418435321564510622075730490625652202770193734759974180713239680584676804253157714359350981944780053481544747757488019263531614616893052875568370025708323498190340605731060589651069183533786112180575222800172292295525436799759589003994064060089032413994871076719173324184311724013951291587649250221519115586698933159836418313239044501177507019874957147263183076928826009850179629271229189258288896795496072277663934243328228255800390644823429711353798365391402796363616391023698110519752211761027303271937669126135777262948667431171659691976645642136370767000150430280786269497146320880834045176600637820237919307992113854736870793685265608462462933584671667133433394476041784944942432350816087389557418946835312156061272925219326118549355779515658445815082487214943633746116990728863817523748142958371006173235454969700398691428555873627001722116921531593482452107413220607976834966879155920907711121294299710186620812750422644627880544605598718936465002415465722389052968803694819167054294746874128253354536551708971306292825264238775475826435043524209689642611114143714016926790066714019940256215827314242898951463534782644463621840438581055619305847680380252059403607854712662831185841643468953591695620147596878339551952040137004390722457007915643555656067701985888475267248111306406243317258983633616910065252702194020577991933230047967075540949772143963841227344333007411382559593547140429944543539954252205455881491073160851903985058530840114687329162885309761712441471934428861074175542661861257406158660427580673257333368553363309696749499866246875680279084681442501990623558910590675246071551745295857885177706405230116873305819852560100433020808901467764652741739244387314583003746071329482741195828174914392894278640541921802436803412305662785698736862969006894068513576647444514049885815183017855670788055196090775304435068598039661077006587206743539915421886425673436298586759019054988300216731059462504133616065911161161104365621900455555222984711468309074588810859377738773605090642312393453883210367486721183273088935992967545322161896438062286300664731884726048059340738003240603678988616285992341391140004355075006785435472445745856039106378415657179883839741280552844986085634261925244990300568504857788873588639389863018113783313663685415580182133548817554186122919777024456297818526241859791128577820578591809072784551988716742920239757624806330094634910030525277758798561043118226722803985144796577371948414452907979876842404468701612399527399368307863454674023974099208852351419862466413678437181098308091930156227000081719911300218484977282990161823602087938117806359545617230744017414831851240415254214043927403296464160206210736638191948347925229842730333001159527667250117484311930665916259052459778010512137518912183865842677444530360658644599019494188370780590039309448866291434344181399924481828274698296056221661345145986409424468962701508105854559863903118123728592393680350977168641813554469379285715536806150973468565325989170021836697491075634786748347494941256167406269250475036664268541164097600655115377468452770344778300821139216991465769059385329926560244086497764920291302948462953898306008379640128201564177982588331274837680574064361468870758888299178253247495370342409324038686386038684846162108550635399060607413426762139354609769781515367783799043455058141511698949566437710254870867708833135467901009540114194452464189246236294742336640457733816755312110569090408300538842050659945455844720901238888553833132211659102019259585455163208471930500710805458433017875166627668794479306667489134493270285402443476766841441129050862469143984807343545838866894269345468779126209578665170240025994195394159913399070850976339907355087951484982233470879558713783089691968372154525395091760963506995687778609355680865239172657896561042582783318608641952601813859900214937426021410719861361966362273598009267526040108045728613469416669382093303064417883704831416199359910397024176786977035881073997406630540999725680383889136010819004407421866820128935006207778627612125990061038454154095475375953706060370891706855008244071316789108279556571691571076194024331591247022564985864435418334811053459254184743536315572127145517450483336822379304680670311242811166027864693778692701561862433026804649677275648856848024000228886899756104058379604167687683287067315790451931418364487251007003743131718921334829053253885583376066314147286006912824259023454417320267757465803051796310700427290285976125436611402131008592209163239818140871567998810871956749258948986514994992012175111897004681796853735761334911552895367423972976598128600122326132355610463512048517076294879895242561771856166137680843812642578338617417795789668565220141012128887570399904595544550308607772558876361139507206965431801218190670172600492608250484875405980951395178330554134041730241937470954620763446073448828798150122768350304429001119833625835638183569914139030554645284645714711890588156109560396851961005539001446238535091618543845885929948872874578166828084104558457209152284127334512372434785771467081904491447338282770050050166281483765066927131009734201954781135905112405175235120356513416812844328676306363583253506572978926361554146893134859946089080822307289490275264342354011182966657898709030415768857284631243819723031674021493012683006212752893257882965177095948122335654375923097387509358526011513439479217874050630929798801002894747291118599848470018399675081883310101369667462371917704503728658057137005287388854199166382487911580232554300597383623608269768655178610422332486826528658937391854737492070656576740485814390521901078076098390735621595435916117941709291384035233627116246288063948985692681115967740610166131263782460703252608969236476938691775783138492444709431257189050897537984430232195552388157655635960858786374387067693070843899752452852077980111718942238751196427279170771366364960287948985419274689109424268552057307241835811644302957114482341611227083140655393025498956384021511743205295275711765526898866166991286967865265510433328002279699604152384005024488071849143708322800071280379271753718308246965075258910166135470219984123859963529119173221039566232549920329385766757811008915448950379422471824746574742150421591738332675229622592856823313526225471231676921875838735606057468490993212800912088126472109716309635518413041361954458871923520029760910145566383409007769600766524967085605067126147984384925673471809455720978878871687971842902975321651677239038138578868171306302534497898220529110993398076751743018162995446645078952811599528052050341162465058955606584914219828863865677198967334855134214046799231812385245244830637029437531753418473389533005058881425783650498507707675150764115038419612862183155207610849949204500309562164026681961101665401392310523252646325928085805497108442492514286407229687623778634507860308337005570207811652594168675091612536177862219469173605205546204653812575734616404063600920778164892274238528788047669786286531668382680979371040562748255377689748057903542353682152855975449504182379124553306390248641884461118920511987305022414895284312820326401995574340674908228660994500876748171012281545921261511123315791264122210827103415823549270388030084585834914797372801994685825596456800353778075482140148087244446896242175591942523714170518338022150751029293216002943074533384187503061568230010382072001812225052267768437996334119151706936235763318188348993222137456124057573918465810519641176828266476873408122343804257361359933068730226990067468219872158805426349929784042103534287408379355388630544795949546316840567784639180854790192607032411187689537696141628414763148027013492458353064634602755500265270787978122840647659773196660470620033404195434509304312440516618466262756242542377643595920992300447378529460825279937247637293347864121398880104100647488870772984543408925013345959111441542613383230528520996280859576507518729981202811657876916867933195012082421229936801316417169633550728403425944081528637625500860006259473714101791412722008148125312419919498976413852997575030569855652838575398016570135842276540202651953864825138775975009708409162562678016086910689931864089869881268940249981223030041820847374074562110660203721438428912621520087768056243428080529473256568434821027774474037657177158526012829351894748846223627109625571040633837523993977853533752114623592520073453607979473574977186669286653482331915110152865012468099063786302057590415432329491058406313497933321102312493085798949977003619495733043982662563944984861494642508311132091080499154597334894531199405662080104056123963117310809281022351706107076716738498450649332789296380432846601648468558759358500655451722428554542105003176902802994479115010900741101141914926222213852356200795300495680230396193334423364212964415746821867121612880862800844618923535116317786964399976618890343615336729437987219189548748385271946883164131812567642647111265336760310333334321352826034193581173390704508937178295918938673697666455048377780584056779692369086373433996402201633633432355093603969151202292525225044507122901507917897498995297185527416287883630043357821916449842079072611606713679036670404467686977314179822892229676788276980851707478139524396852790730042503303080136200976248783279966376753118281750093554622718595432634973953842101243973235730571393069735133238173422502971977687184187217570200446284140748760826978304803870082437810454421446066731763220624719801603558220617414378598313555307400086453741569166125983686980894236494658678161791693059514042467962555950634232440018464270062794029075525628737919368445627766772564231382917018004614441768442508772460502588548907906777272844567852280305064393745193264331361090229889538145562407036744465243314418313157377078101651795840285785677491990706861871719975793861209696280427125697261624242655113939538034216754046925797546433260147357667983506469820135311720086486829474641529860460594758211745892462906807168519694859159031255119977967949266984040517894678220805471932693826733998595847388486715699812311102210872871232191267951965024667713063955159003838907060777804910756073575367340156243544967717709451921973130958131688530917216543031053868223881668924580147797392670537144152143141230249943822134976913413436914673118300180064363366285566755195559796086668299514843799259065202310492601419319249413617260962638191576831720744450779406454753424950238516745892325282977911194296434350850139946727832085549999765041682954969070783831828609175640259952156578585738132580452051688511402089618051032329758463454479947767196895980604544209931528758408936080449418730419884571775925865525926685030786783017322956928191552287184561243559607084459238569502929774730722550226080162442150882762388346685491430594277540430337020989692298899916359643759873920376296579714424573215111112591504205688472291070671086811789672125397566532913302845896478263743221533799964247178127560381372171902638939999659394121242826813239531998880824084954420193567246144776528329664060845834480803753847553769169795313876711184109862524812761847708494321563666399891673600511737067840926584886098080824581660293429045316275157863424914587577785212935902833881503399666438236875282479845820219568849352239680504874964764380347849151037538680574023240173439702918694955653077530549723100034940370672202176539175415341568530346295335802460010485815254692587649999436146806794547103284994134476551574929852351624449089484051913104900988110454731589687214210790511148046715550016183740835297433834050805155447205986287692273074226761122019258097933673966525471789507900859462665854570646388866163389371207363198150799869037709896125340937533872413771061691151607903363470188227222226487985558223067053784670336072458563055728784288472471762259921665625374621047464000055612220462715670312102889883212374035757742328792321610111410337168390891985329618808456812918313626356255804043990650293798064874093618270322257805963730163425037621104515053711175251415091028169538370525015429738954653116774139039407438863448210246950020176603633308728230889115980927455704173052828125122652384471437122464866101896191431552344482670497601376550875958274188188663196921424733864551212224152171623427049684949971851144799652554594253804053744812757016016610496337027039914702197326417566726837216843032944232332546428164107577921058284108236284843146155191301056006641097995814966930358807756203940133562504219941300410930369428743125093975317021359765579137555852557420185502899897991208752937837246063462553466633844994631293804477179038403890925436534182838293079317261757711267442121451604510050671646511229134599869032405369737401343099101305088180122236965545995855661748195309925562491175150180273692467771122107849430191202228162001639732130290887311979871543050033779608425807282165765739350851512269413426671617917340575539492474938155649277126508542209377115729305387556614062063222121525502672760616886487146264260336477537487101223471126116145114033098782154824948101180124392510726783363985523540938244383923005143738276143206836675803636503134634763669208474044045714112104121890785338672373987114240531881090571602217627138552762633687230756759667668835464874005257892559547459998135475388565984445807679213887672551453403827884986087163375004845343350086625446864124946324895098561340375399070927878334787270623642620985011188746483303671602135208164757821634687262347318255737818392866591151448170962683994105995930044493676348300774618218849275972623819048342153917878708165102863533276575751350321975835234829121316368696403313038278458857204060822223611948825242613107652892277736161944439975803671817194773989268154484937955317966031450357382049561925230497393239002076486502936566919527589581424768587341113092150341136226237655289343170816533545629347276585455433898758834377227596003893556572260373675724043350415020666864911622537334898349616493125271616810390906668703875007401017148261126978607511824600303016435968358690427363713231636502696302523581369573514755070852622601987404628560353058440906444234329979259384224543577828590881766718552485733906414722680685686934819437071514521700935754891426240733337061442886765006005659529243638414948056552004206775806858368198112598091819984300456819319999665428247129411363210592458348973385904291560760503586426585733574268093209043206931130191450909102551262557989581183165652896369807182240882236183995086207575647545157225646137762584680509819535307250147552395836184696837211025006695871226602068395661997050034736019734039029507156962729756212003586779311602547604258727148400577731749327723385849709177870640450301032738095644399843223609384722096428926168893057223052256612316159728140123078354647054439874472411146643196679724635760922633573675795478833630516909876679237121391792839661809735203307344650863590452026866810038980018139679963128741505156057157695549626054259357063728067504063998798309667267450442137077537217707548823794748223073495303196592871071111324421900839474579449128180913821774037417191560471328048615606955256027215022958944883174795536227565502889258421554190775582586848650037815627242719323510697455656119253632274702952158138687463259419389831356368896297505042098124500036931952776308769878852930003086032692624823602073941728739681782802955510768850529557393539370569929723857546171875245624988431047446905283705001418370319937724464977237548830639615894964816392432324693359117781127733167641550656482060755573593274658652887424009341828427192772651561024267123072154809946649676258682606315087414689196233126720685457386630175249991373083557544689099082895832341514410400088969705389246232812610273535224976660440868106977965333348370212633051990212161315915362948917547724781686815116850500874103977146848096561238128195896679871303911459369465343608782108586737448592845784302472997255226595208195304794235015994938295721587639713441772510757203261361350945540999388201216484019562434045011975447245754446642585180792887409187033725185057624728225364475245049876971013076875291183292154412490202338700048339360479511926691464049552054881433974876022460008551695748010784573559480255114353269029977331658538581968147662516308117166307186348826657655407626836889928938319811751431672007981155503119609824782063066872706845354107813232993989169897475553091306723915769969280675225863224558338257520029261458439659805767718669208161216896422192302641370099850476072499232710000985958826806200057157849639222557984404434968668746367812364591680229656170721433248708778337988398200492712023371916781813134488398677072845576590055819907160288104106828433060803605252854212708760790872924165905145995327092967479888738598133470285803610834074044374608469275475034837086441482927149806467943433035454338273748958750435403662263915615189946293662314854850304805468382499520165971442027229667507031106771505859529376710393601886498679410970898429790437671982460512552346915665874057635936285015211330126964629486715881612785172124493045478282758612281025377434806722919854928355220736819749573845537102494747325753053561022729904566910341763914657066587067593638316989429293489441499748729216711467351865282227295779220962555875090727150698055711807798279790328083358047512100176755453066795995196374995638206127482040282527154391284398514699208358283069991539142970419073222485874904125850879118053538716321374064256260023078907576706796956941937399975727134668486171537131988574138258518408359149272217170135450597610035805777781796825847172040131901776450907879997352271677316718127886475511305499888462141735471662696787219255941522635526633238398907646749275050804632418525849928016643255625611921240878970757727905345392841206406982353729835785381717830549430965969541953764059209953688533196537851517661749022936988054375059035904762628079303324113019670350361551013866850501744688421368423894031496153076584834837223185269996297195481970506128844449489091049014530360913577867560947795153790210125158773193111166946420475177914104415565025594534652333682884954456458840902145915746429446544038518386594760708346121724304559366002229829823888276309537287287098075245649206155815502506237853971152752633941038953615607997344389092335617366626316657713309736343650242875644701506528015628260447427794562909605771961771060900247730202417968355586021032073540486850031846736587050399015382519881798834233573232728941332753093935186499394045660494177985093370727878180522558654133482904012303763413147866576679398401891378861164744216638412798218591715892013030499281949504696159549374821947183543616930002668450828284430991964700673133053932993327215129846929555582859933504432207425877829188786880357688439977515777171552026348564221542483183907404810016727390225162792715080076735879530233306454186715574574567136245230567909507053379591086677068909304367153136991034868401680588811328808210707274304786368094636238459829685462924832718345983876919611149904916054433209162038328262955357303883361073156690772985225156840558046989000034262391999823243839186807841745067807208297708891742144407842179425700953100439738964131159498440782714549209347282250124138837516989516119795717649041257454716452688138419817248091892373174440052531298587600504860494885539914316478751793699470295999953822591933720855250132280827284972641491700539947678043148799900013708151155557510769886541687843871003013984870979883158072346724631660545609604016144656253451239860208794384701896983025497448473117032999098513661040369842393422245533426518030453984187608914882100031569748677280043016236362650016237836975293156021531412184001156617804901045355757297230466671588982021676691132758350632376798569541628703759581598255054613353158777723072632880906999454999408039773872686456786128923265077953275603881423667603160494208412900311752261152247737130714017923947142959652784046166740553475867672265506566947618118988061835116359897208578915968930235696791282285856409278932253249537017081215107140467382222596883852368578771715257623918503037599265181977488373018077270628581017618544450304914966719996149054125355346425023726361543608391840130152549614136131667370323285639873528217990396012572912007740664604393241057963476186371904062857608882886457641801556524238201296569586088273796979244551623852879546331846184948984963461730989408588477387881786383565478402815864757945552832479247723222292561957620983525163501146036671266161232355165969057096069217467940901388054744595891525011571685889834846596715241494932600424361854895179659683278759155027404695599819779687884923464580615728490619318987567994468258055048390219366890914320968465708750555471099076023931159341332518788263571000306762482873219429941933097772911593040602252678902063501395111440160452837710137107425605043859924213227879245241386493970670643494571333786207592329934754879283373825285806363168540403545811634097902593912501015685905525073129096311075482868009415193163319933084501321190098994548078382211029648375082446296643882665594241309845095564517150247224736601850462497614900509141613933908202628844449942905731522259943226869700875688753046964305888269787004321191146396411711407530362048008545520012092051597900325952354620819144549588586248284203553725024325118665619466272379929332751075372541789140974085155734446913208796575077974032446697463669988011836828476477486603917127995975408999006082657115207501717106299886126550587333971508856783387822664045223744743353333582459256114585779162738325370021244602714118467387500316361717309487635376304708416784300691741885929036063501996025216826088930570390017124524203314071438768134703787771671547860261270884590330265547060807346294809618338786584224970406601785491624282042879968662625275129587485376526982674540742597475782668342566819524907075084804610523647758570938580957632556546096157341935294008835956595006896663647079261893568728703575865020628575320130034036157961820647789941581248908039359297957753267826124251912382898317528158156495858796274646435144176111364764646346262846907960959082179586722579991086596108634280079668306411624189332836480706578014034010712879547013440440594422102837645434781612480145042266469051817113300965475368835043934126199530388100898813161003883401298823513364943543710662863880072988023220964662762617922871369630186293942828788154355269207224664069095801471616760888673877998529762145861241412784191243660256321003545232020573705698584904520685138978150766115018307726356852518917367455468719150848546770769643667913413191510241986700397145095509892032958332480170021033744897304509685660718989193657269262254058324202185820933961551641578802698455139220603230222627790775445799187493637875107667790102954673534834854938016377274217993929211710744356907954025131884680127874063831802633486753356637159875483998779113564821929457480216309315374456201525288407150913342585893827057173110984234115461890414456127652721441273946056051304789308713517923379032610712212937812775931767673108266096806765969794591464042471702167889523674660333727030892600438488140045400392462182849859118178032194100035636643277500196270155771561256743729766917946476754400502374685049309750526818234842151794415338349284156867913105508798624179255101910200479704133506340970873437600503317885211251482540654506130344510134993761311388350124723394269359766568366970219059244467390577569194870153277963231232059498611560266805916073990402415686632814928379781729496084708718747096360820730037712891461386190795753800696351567068493946405826287428155800991921355453566393663111607263802740266104476049660305879582876103287005079489732922725479276797322211153132973989506622554563556364613006241801948903735728135271847643241327663384121966326305672044252593330242443480267723924254903369013034943604010035310116766584287431929700088078614045481177251577067233599507415148468341349537956623030036972279871477759501928502047098276591867034758245771831240676892753816145515918117678881077497526961002303933049087629113114355894521903824502524226568035824870653274457240702220812277646981395125466927071044450692106458915993611021021225639660088119367123388049710889985598721149644409488930757131932374766066479686941002579839864545781701971738450762775983396469514767454807703785499666208373394404110984377265953684977227355532633998864299227284304507982090260746563366242921460541133746445212928196968920959077724187251972077943444726240232000021349635360860306382556198106740964012504182676767187074518513990015251399197812644117655859553907002821422252776860736814238343638985924316863049999259105543262949506147379411810212878106149889268228443253845238977560808064859087561259309317393389140763318614011901434842884000905750439310929849618336865165718669025762263142416003583139577336028807786947636791592701386509439061202619313675735229534637237705467368204222210841323003033188367686692005922367553486888433605381483217567311987371592970345013055142977640837064738360544297901020340647611413383408883763034977578494304158336803758119354486990577613144351770989673351756652755545592843380262979009162898858299588086370655829352339298228912151646196297287556736608757848156185948470256470855663121637542715219814003549445522244585031435761337500595048185781889440258120645951479438725826507827933877526354137643178201473791201583927100381172620837112116579447603013032685181137306328124185143577030449881598290190572995627034906144910662982289739702745717511988113424228857816554060664351176285820562652649780453120274063719593824360492083978159579064937909860824508658635237226206734525240802730909106301651011915756656344667886390640182269100377018133950184166065240443638236987338350247658602357568042471725411178098264140868037403223932978568491558501291312849575356494790057333703918865883574977057760421872102378506034050634302147152624435285200990374595907034511953318038643002779522006233519070106452931450117628644432381499498649169058686738761698171051051669006320852384408843989988464520549693309063470446756574149465023774689399851027803363872189622478830848829253680451968555155211034436673926516549664286705576609555094152893762647588724560715348168362150053811437912573463930574396572021398912533759815663287568915241370851433681001346287667482887589202720160373583892979286780258464411123087615223513812648627718559099990708653374926498539207679332298794615256012210352358785239680753114675726215152636604113426233267203219581453790253820347324820881251807340215238911466363930758832620221579880582856674021247769661845799186700469453060579612721767715886765327428812661809202716465963856072020007567095278552949453552663004320462011029600646820092579948630818501697079563327217848072616237200263720002235188256087561175667514121744511878885089532279858758313862132841335615775459864641356297556896259487927874057633588443477076121062349536214923859731995412974008632356220206162737013709072018943522786912076140533013171651401817726008571404117726331295853120026007491068947260774931062496076167234403527259234520174183836995286569213273157182457845124496380415959179484351090971201475188174352293304367419870346213695823520674525309016124441670006145939150807326646668196716133069190861633893073570403696763022533241246270077986024093754424453555294671075823620659967614491707388649729651828901173049043325470229981454558753157840979734660879940521102045972135348011427817129390231568424013716743986343151789976263402294621559716497854807187910351293175954017679651468192150053106168230849276206016675634197814398385435290245514221571960439119478421224887525159343815525485980724873787646637960464707591888685782066888204143785938156237834077807520512438899077338713451491168422083703877654188516713420776210599382095553540972905318293627125016972443510514735198847694526180854376578744764094890586045038952232011358200219417365561481873813424297865386883202680270208678268069143194597590284613401345838026976251008418154139428620402335619833717151567592777896424129017991925937840486979743068773821334292822871171583538994929573260138143120309929071643508659078063073192381951155886266740900724123151824434081894259689952274853159259859106473866681093298225937223530429963398496047714256519792038981540651043919570685199920537108861379018285172871571646118557875327181738570988070364109471710797299747557504068064719480554717119266779298642741988024127726966782392025221168719266372314654225828891411808268130821549837695384336521814934842983240764735934878762525156897535048416643261936067582444616282843990446797028550965738020458964940728356679567762118152759260588818084514225726694390346058781909486513999619889262325496513041361870344293831097036680558686758411180399811870244944123458546861512969036835946229137871333217714934492651927410486590383214302540220547275956064107497643970441781402014976288217747096853228772740194848048188871332986242239068953201052886059711009188332643794276529012631852835397101462138253678144592062863701604936988333568682592115908344689713033179748871577045443771324853838971329783209251651844557502294637260917954428277455513709570243050382115838241569995113757196623628788735279148269433281382657117753385337602567117075303716152970480398467414391631311159093116654525068968111540127439710256237261570571014569576907003173838220935233745251023073992645141893120611055203946837884406599612071686810027022626533129550993725454265331709437960405970986315095273924270131071847198772191594823617958633876328359377879671023314510548454703454705050181477208634848581953773748022385204280008414859360814138805934632141902128873041149491236664683930367526644880315706705107928004069802949648651811048539241034498911238989187433020376424770300153333801354135446943754823088286945179308707187866484410884931975071972130657206408005781303963758544186111837607102769475749291583566440493182731723016517802853084266030315620354919475182005444890945150654670261266331826992202033207947084677301707028088625106846711316950460980405675743515054449762249916054109036931394011752089317070833304252133416253103987681018313167110119827784389320072042486321167771681755083622585675562150374987677725604118712919398907125221702803530941448868817491738995507545083429222971619833711879552489657941979708434083491546888753858814675657933689436382768219280796763056489025189849754603014272938423103720044759581285863987115461888284195841936855469752920644612078199158199307857876338865393385902101820293908713269369510734842950820746155842159178095130298220646991721918250484278608634205745688808832060114317518875907906132516873643591287136949620267626716253843054917451857711302972262384667834104797573343386487964572565442445437248362394981029694179910568133664355024677315833849067973934311748857196079513177983482048629343339641417372962712516702879558503466324243099810212838694069319629653649917564433507106665496922598104755048116481780794686539597356978572741128167036199147875168886901269181862260427296679606956404027839641990447954733091813158141128607213637252777946327850439658085438767551806753356016322203427844159224855443771801978656185716839143324231523956550930323215984703825778630068909445237832262892833732519728726945920906734979889795782978472632953174125898476030544659519695957655125069903974403579779362604489615356056565489554826035289213834859895761851407286764676403876983633549502357217761953540495515466686127908873706044082990812501465196874657226814565982728839809945128559418574902641837014277762751577541675471762721474148522061912718007773417380901264426411501496058146195574787449645320488287212704042593134557759569451163310720277928257533095646315413571366693274058743579205621362550884006686202796504232741576395938827982608971145408753235800667282089952370953094715641449279567592426989382933590941650015350995189065224496759671483904606342964921731902026921199768553153406765879367102762929175518556016168409567196543274768047861308578980167074090600569391588054612065306878537765472376052396428040097759809845339525467494242610134745138384682338233266415860279135894862039908766141354009652465395500705527234074704984989801021200914321032033453202939607589502004301092377883210970447130262506628905977565704274567613357962252072232601886587264395785159743758993150366234391032512231590849739739060821164146190980717331128122516167999888863942859434885012020633894378576385581114364501996426037242686841966515247911602480541795050351339131099412792631398588123160787394574973517924883783877205374113400747130079010121962507363797566695470255776590025117467545099453738875178870100873443072379971010769906326069330332145298443971774783256897665731116434472114830809032696326676863189821639261002810062364155962261824944737635296443225457250645500999815590578426397054814658105637898400699303928060454219099674373519466369442652629007698650079031166359782304102166771013272864145450436632354053223106125553045302798063972595835872622090931838810576264005173969976736147631131514480424332305625007082955954858266291664118768488874822803195368508010110129689123353917585298469920377213738300442827651007073048962613396580083744926589107654134204030373620844651222981131192529735509622560850379245936136679854987792041982520508219256701858666737662077261099299952556816831799576976483579750966320369552551924750776166246725166734268877795538548836729071459586806002584050499723211853571891643886374165637092545472193256311910601221367000483218505886238525280151113730131706239369321333661138251666903954731636545176223015179661149822297801657719581813959531166094200816179591806371997142639961816315942003365498102609096985729243859381713220122870616986749104279442336222310087101076065720261286192765683571186223705800031208188328712099128332453457552437533537034820859339213783734460737286934307392624311372766095012392727342411868015895922353942872847096932664858488040273116136271242258722629218392826538172100847214228769420854009989317265740923374104832009915796201272247122624602813469495363914355317782386762652159079201677368092345206495154174535515421181897071944497026610727637361544992624404886970953643465389357600302225684171356368344214491480281495549116046287496616403742445649342925286074004516244591141044464157436278093107535689034175799577660630497214105981682855351298964883531329047340083328428924382388736577351774299406234296165041247111005627448274083578768988677808112960128565537361523746949408608756534232993085134599584902526550100763112449167448246050248581199811668739344815470104115804274854106233245645757554390102556618448419350423956715343570493244966724374241457155506617575479839811760428072272346507285282401592740114093318968201911687908779211945720558647254912797310635501806717604336985617802574054484541990880848674909143261401023646430905597301040464711333017677740394535644954554971985907307414288381966342564634953768334995096427740185982268726777495104169743175542859485945921923109376020131908691131251926198711066173553165277975767488261875134404447511580543577888223822240308896917920144426328768470132607570352359867185294443002060445755437194642940904053344762617879437430286602163093233889633500511533528112774050518205621581236182867496333195293432150591290949718085134682981488231386046939513841957008667342373338372402130382258529435518656268285998892108834053074945706593151618621361006207026042054386007151002938758507554475040894978860520483308218032659830525819442320866942310661067562301887157273804806066631957547912995801902572309668889566221394164577515212100128393961536102667378600809265442913670084528838858438181239705574373294804933915546604883963053140353069646046690786758233058406193101096996418838200016616075671590130446618986484261300117947575201522202568326393286517045296317679107066662277615588989549028668766569489224198086726942891172995269000004493245179923087884375707285435574237153617700748088104947977297103077073266346587116416831432145449036306587134374984172117090324092702370293954676272719781773689396326113906830563314327878747346423578105329345707530344003050554683051319909871012060625817424061268919624704457231464900825544154617547351697399910239550613780191321761733126095328027840858168025219061781074730900176200258684777531410546157855333411865753055777496511877685225023365722805890757912467743060057237425021794901306300178973073163924193933535976419323096533297114406741762901606306940032633253703353716674811862298664906559491139278699815436033958189686651531878409825505012931449431680308576177147594679022523792799630974530776755082158514731066336931768419221258623331409928763936943158130961277058589384465800438289895374737627621516127567729703005411464415785853988085951218901354651891332189989751169375838681984634487333315219706253436015889981189399678852916287699584557805093494441228479173983149448340265750824518154870904896928693853876278404553639532429894113399132104651317614729897133774808913106650544640924616130051900740636138253148590401780489470187154021983843124454021266022291722441399278133684857840522504957734964247588690076803748642731912685807535617081675074451423643975006975920796102756679109400146635099845982136731090519507633810387009477505500943271597654344839387499316956512741473271943924117504504330469667147101451421446287450599791848909637008687847136915371961337780528287841664212819630424335048328422026073089036416088140526741968797084967059008347531180598404341057446996598421505145147694880489143195588964951660086256047016326558111755567476987502020614968953673925264010980204877895498057284859773362789390181537957653196688529543548934873439482090287477724580764396087498326106839929350199618275681736178633729548606474691409771061557940802396441148599339826892135890940078867050708406470391458115844408398520707380294821758338703653541479149039022754011243049310967056934345080866432862790044470929230841243463818141169876573940712746474047535723681601966876625982112984120475788057023125298085963369191031602762400283173182218327669322252182792993393778675578769494055368118564237730447242379502778153308337355379878906530878008583936738177199096426387318716539693855667454239095344208109475811444093103118357884361277381809978317671536101124886135879329641371192636204933362837485859315172469613643760836504223804477625234109827685526888168015401581382723751911877788187881955037520735892719544630370938809805367206819153133471805639275093631819983098723851352273474729409436222493010049720246953523355650008325746265243574713319047839969543266398519562869948926941658463187907300396621557420651789936925491998363222770039532959970813348658163235614302840656122683474022532801761869843723982331070811140124249520681797805171770412473570495523204424805733036632281005755798151538474729220009310439570891561628354209257322224691313689612347427567273320487036955292318855039771843453930481311097342229992385882612139585317427880919967930013977256410087858723514671128801956328204032109817258237030117258820621229481282451165598143432756243740725873481013652354291053460716218617848241167358534477668015173035008700352381462877099286841875197185064877003974906167422077663162154308187441947142489699185970397379606305139196639881874041519089762691288583885021158942423092162260291710187212455355655999741418585915039418425991403269180783549502934722447368890921328961771014149117447086611726624439951858141184780436079659165197575837559063284478686251904694296084485875304212100753211828482065134808741681693993340916808164321966463427479420838072028057255552188417512619763214777347771241630189086390344681114993960612189279583904758102937460993959368891615478069586994932460031854867130505853736239490303916663115811300923599500899326084732763048790318344817373567613078626907299222299910290993349228308893411228417082583464761594141407104920817628201561958457774944029710473293877343363318526492265637529617912111599082794837764365643439583371587772192307356730348913443748410115950087737189751397715207092603653097501033283123667158447567332181156115998137153334683852484476776105461476551373248174651243299829708063006384325937123820126536165345063044636587599950235517110747682656273739904942725208774959232393911868666127235479350736048502819317296463939225769286742635064000329226118143073507325686482623340973897457561638698745321915302766481037213812333062447768184157782880603663018453709172629373210230154323078890462957548212527606900840072874718500053130160863148086117480985342948874000564773620205833598942133018328845627165451327148217008109722477997211977281249235759721707637256790656582439414189004053558712475769583297598812017293796022847429877204723756776503326557547470240458693520030128066005839043477643021613357171632651672407802027034673135586156277672299037253021804481683489663577240395704068402032140875506448969641230683428908287951927601283389699355972194300640941256777075318523023231221328676620762904126704697910757459269356868201552970421495563051970311082340420555204677023660546327153826034101724532153020393274417173241658410331237514925610731182579766758544198190139783298695791508321734479616277895560316477976311637538616720600470359905335205421343551715224916603478283763691300305488819661117324891981524523483794224997313853182065213427174558342807367525694033629448497233875739763104207819661978548523976944309035205490654316897417977418159136668429770740634681129629693437359762018597172970841696284933891486564373650732533748324139554541898337010949414804951189059945403011178027672397484296698237329930497680831220759643944676714376860166092364268815067443466513701453053392969853009776746688584898390306676043918734922579526004543947016149334567119368086084880096985715904944275296334450819595040042465497175836099214013892888997299649746793710136215386789475813064656644139705789406195075034832219279439655257721450997513460179856284126087730381193133840680816387349476173556775191671848379790781174606253573551560775562874808555656024301482270830346525175478489605092568816974090105218305180594773857716548530610973185661966307687123091586408955410107848389012866021236658979885122931288485069508168598278365560788176790615043231544935372952651845151344605389873739708564301735348730378645789865802408755196616737532731076938070659029951977530429749614816930199017832670644492839262538807199511831229542385641447419027980372810294500709134998901062209050289039296847392219972225140744581600046415442037588227503444421980269099056327055939789205016223700935569454594367994282317991759801679638925499882334617214544233959463758422709778446030080852278588651514250152322210833164389135423688344772061807377907969036368428100088405863321539049880151185190379541713402952793590214946121823081553558964609762088851298522193018947975602473698080756483432968471817415770531345559344045130532600239672062279025116112930388241896309858190870741500357896609097011897076110401257379058798604952658314357504325569386128250187445544710356852961240327552696291956942835021262984401419422428271632206438953131075740567147392237653947314620256495681913546785193988718360452659103267610230992465381955235028431370396039501688906095058195891177857861471008585147511312830815599439177182200614316331102302488122339167453550319739916655242891437659526554241321293493508192333322949993634499532598449134663067138939904650773512883719681062837865118353778464585411458541226508125812293807721922562763442371590733345141338213358226507227582686314938574718125364335628751148082055397545808723811127668902635219604451967472171987186099965729462483310809218445577191876419986914017059249023948555681061692341477246623230783008028372903952939686528243126560222332968502088669123816560795342189918151120943743707651631474968300450754364878316424264371010234320455700590473909103583456512584360257882355898526655325939674786418728957897866370591914965169706559760518201356730080544117763836648896918095028695709214511500473310784569831132098352167142763650815654226100988474709891226065516027071961101081276844126073892435908666380258137116699929986255350039163442105705996515064982558677547341211977316554328719588002611218298216080372469090978004012140012803692176865574790864048001169504034026455058862631394997822957643065380314906499049679647047524133267851612619022562011046260596758790486441859524783972856233251487654451400052800400233897922060391868483820325909914331231188202741803208102978426398059271107808358351129736841827763830378872933381116960469767887253221890589521850406950852320860300200339938287835623016021074318593826872599283931743649345208148407029484753685640107322766254861066929521649058817735077283248694452107756791401270890205639586289164555351795759965905765137114223083057033447731606972626437145333615424543120029668479659107808518952407014480684024823206791603208873585486261360945795646290617380128683406511484731753222148211279147775613817731136646197344741731778560276107044425534299761671323777902086557319071259135621840562635197246965889869622497410120933003785800946520131913298190842685093525542199558709574270360050168868689736288372814596735159235444518947834516116624887503948546606850426730722072879409382488282664450679797827144975225776194359640393890919247171436710570009827951654143601282469696160894877747603990868689384064805191479749922109878554853522115082717396140797395789058534441780460361525686178069750395934393757637278810059481749180961214164756765310232843847667622091345165443261868635638244415548243460720950203267087474877348353653817937188680992163156544531806187965871539738700683173964640345257864065147648120113161363377557843306330660473848457888993569994513781977593939904744778783843097935142221750580097969160399334287353405743652501416012005950157331014494762512129312555510926451204941274672503126212445316179218334195075265070472912723484361720718257259719669664862478151355662812975139734878962686859828901693304252216398249399762758572246703974722668556787936227130677797675475354004810342310046723661443094094273746744774643115217147644152602232782372611465988031306210595223490542046835741788671181280488031227886531674551852046734888954865728254540249035533304532800022757358530096946518847064085268795348710265069362677889295770582105463040833341104698604727584705873294503205485941809169091218353333665890951288770555956849832642398801207915960979569589956510269602912914456451128908220666552605899132019321751920371715348265897332949249216632527666908452132228565188977524830853580248423679209383993074575470001976678264681540935390694090062121438286564305923137187007210739974460419931690102703701570798421109839373469430962077859906737540883797959720198674846563933502586593683051164540211595811078593831657166059145647571740976796608063220212289352138796368417444982078430681067964676997653005000208071283508069169919917623614233642874327064915572235722523467528212155223409811948769044299950456933403965767837063654352363718736903462337285836002788900573604467609261420496926591368093433305717495465591480942568391700781531222939060498864998806937816892094791579516367333899848940107690228190392129025040498409756229157113828307593580661685253736773819715781779434999482077215772043814408674304080707281237297152781037616456553016387092837383039648559622730646565353623774528467318601461003276420189969229446963124294007418691278287003557838272956973601357951737890097533994507540199871555734146498179279496735141531507554560200839862264587979272131400500270729918231449769923732923701035383136205507470967906168518643600186601386721904328940651890634790662484792559271253654485694367433626287246774163364110525160567240434167905940039703491664753586239721839301699759837091382151020012823397844574984956830275536014888925637321311638514177138754825284600028212247810530225989806927737806651607992723781891001783311304528384052478357991053290949278754863545881537137322553178641597338376944021319749057233238151511129626884198600725979615632008405337578856922040111816524254720451393945201697950677381701039207483616461485344388959429626830193012536778483427514055129926197707600463652920066314402157462605769287514783477282719077840370702150548824121541089182474686637286115130040325077693495836896169436420098501703571480570806796342120100966337221594984494758897819198736559015927980767064893701004507784478427662512665004901041830967228893348221429658138060862645641497254522121354223907265768234560825036383013654080887394230825973529996738166217025807250810130403034037260641567387495628735871534535905495638612910682140095842504926689537965584552467575094123299760293228692280626749192631044923548508110646091008397170152375021093551307259427172919506034323137878416972918946046015582373965557953820773474862135350701546657422621723516649938704137976882710399141908095077835849550339223198549860031363454383391320419064731041779941778745444854985203782268466980712319912442779620405273757348380654105447333433666866324604141020250903296493376975450284924529182817998192350651383220382408769464595905733209107959404347302206104766976386245319894021862122254644497216863215980202172743619300997322844244693429674249233303395939709230780898048150110145276776789265311515424982246065696177311971078276717061825569699478022469723110661934058223582451837963566642320672360519514415572914824495617404338383367462986455251376830264835546689895387257476630411094062091688254507836435084470643760129149749296533499407553967106527277556177426867953058783235489288388744304460528947953476315448543956334197527601904559930700880307223591646716731728437432982325252951744508995291213933279160861699558577347325805562953266502405733549908344413596946460972689354695157162687933326099538447836618923138183483122513548854075844256282768026290670415499980592907252310453908740773524888897672658774178054079691281825113235569908557381217426150104752923498323092519224820308985999455753379791250326568557533425370158192615434878226912249971961129521227954511479231602495390857449229855864646199345850291552306124031381838584099752189388532442725775674485283135163199861949119754255607652777109635522712121050553356111571186574403090526481013070391931270166773509631759003922818604852362157090785772080841726640159263811857565066426165663952239446717112342961497314528904125440970676777121211367045591714262173475368432277284108928780689071072906576144440827497761017052383127490433163556396465856184596899077745378390159925154310619818182808332288280630774827613266862878644930944615523730795812602458780423767052526344038105722147809011858898345739505715725010864042048381690579834085801775312394667693388256925308808370390010774808975184003293542299876898179612872435204042712389380501375167254680780587716868581114873060300719454045495612585040227229891144016681820381034395117407477626919941743481526044454595711475312706846048404947948756391708551918628026228866314544293426726563746790444673576200095706254065628933493727233020752655234643689411960679781389419389613796652418223285032322394668309354665600938273011707255181261637023568931282796561657953185215297620676538538705243840227321838227315214643579560882308908793575921053375344323123955168209756086339249696588262251944777492936280200585712444697128195101254986694175892401165209082257862531904780781348658674352856485227348415226492236190378282410651941603254719211022243193783364915474815684371509481711736535177703006760235606679785986494422720815068528762318145842888575782098400514618532874880054644842378791057574497182909332551887977271757496375525661053135248240254897431553013927981133385462958005951594317282163975849902081186890168062157029688481828021599341037942848784637026965084320988487659529963021313797610211718199914179483059399425718794512768268945159024099795174773239584101945549911339354880325014238082805438114422454018116187935152032451618471922905800488380888390685588701253260730501413252115596434396677587182870376475386550431844736689055515586504439555239062450547178284658862541696946436666522048800805057199595045214135556542755799324283160766249301368999748727015521840574864834571010014807608150554336353512634793953981831577705597277402634623466736516079236073928272740665497666337025623152737320447602061843130560842732130697123849744005132056651004013215507468257929752567564152211064710088957630378570831415653588770891002183098317050528412485865489793165147251917608753926437124809291577307000175018686673788967750873329878044983611720574407415651112646710416285557442700695268366591180740021914474866468380780556511199792491268498348773755670878315538732184957322232439670407641267607014187895533430539872448554176725076550935793547180168124087602085805548679718801139786645491704066936590634076089885089684569328241190492224859782188309618448326670942219567208563038742207538448052557888451114458789717915708500337910169775474875468087422374629753455342067426229735833804735093495038242448984216228868672704815476919663394853424888875730824406382171603775410983367440669932910287775338068331978693984935277784937927356541163514461231766851306069696819003064728080403228979308143049223451914736431061648337250445759285737751147240355152522589745848915493237618035466136385330402182539125312296502803923003912530628855548078526326534089034952420558302953598359392604993070742917260754561874784040549320891494209250385801359056448089697605068173076421462972744181482261949253958246122342739127053742088110595290873327051582848471487362084576041674160044444452268894448535038162688132371319717852862746200442163266562898601629084742435152639187331172498817322812288396470819561757587203515964550825687766557972109457325426560114259383007569036401948109320504306597287936772762617518153883199860589784999650530715598875340414246263696347323293252930224004552814288567992781782215171541452222304358651244032434037208624221217921014124548938299351056374671934517434329149164093949602201035944194377308192925581042465966351568696585939733920918842680298084416248739885566351542709865441180947129233943745050820461706525085160461255187754536455545966617452012470195142255286506275172809288589132522791762685861190122231776436354054121945696386868106678157855764527674896725160762376889259970053103857525997850068969652198443379173105200623124785811017410653714902105031743369217896125830206455400191088811715282893634353608161619604732384251090515572714875155362627685479835919787824602419388962247314313444396128370265083801393388565542153680164914682791224162561569975186819427045815118397197351979755556280567158760665274931239069567892414407555714045146817473421580244555868778816251058038065487737648596493046747836754694562160613396282039189210742882505197468351005729780498915257914052247101922198754340447851512911328558856838586150911247690459679376576173150400720985952444745162930752418396952474325005364035410074055283080398674030038243961751741023605662166247824114390490475747668100712971459688990578741701704938138430231736190123009343820986837388661940170775168080458426197372273500797445187149057875386657235694617328212615043079656849799638728523605431332742846654295565215725752070003795891075076376373683367202721710602044361533388575004569343785915731755721765028438537982978788472911450420724544236905215287747508591658869438818977046985338926952184465159829746466352754631460902678739581857570575042201848432187546574975703296056094986184282560905701978863726697992221676826929139128461790076342212975948546984041291394903693300319955246960180526907032635455005310201025730596856247212990481653471607824813085318504539484310605973111232073117096758729461340667116511134367905596050501157987948224997120264335080072308749676521569698623752249515164180500051828534107189715434000423424946063100291933986938014066609804415659433358731234030234226800143849480138218936729582101887523514016239292539912168574245869041672585782878593627310948109476156567296192494115358306001033126911035586763360304133392086101353791708312554613437748429271220651091632318539764778046400305535344003770342153516772363776118138619088070421426187134795022744372898221960626415005652392868980979726085290941182459594100191241436590545730178192526818319464560040423569660590536899224049451494159976155420555687397579130525784062020828269214961492210985313888587221564018006950517511147622667311190210431990873960617099616870620127992874437013803509428159144407911591428358684237272184681317480719760435154431396723593846342397897598248435091960568669602229331052988195034168919701915125007866411643376495653133796607377193097367567592323999252091909848187811718432985159428564429232559042083181117657825239205233963865252277649101441644261686945436452812770559856870597257313209097239835591189735423823981584894628873835042454448083687765873965814628413593780046241732877531936336434472889491571441400726561522391547624384251762889478728220799730077480852463653314039970964762395170690765792365537322471306983266645526121674597172986948872722898217645561218613020621288154720452966012729442575096623259865129663947040897143839823805569280372154759497911121101916123135310183931706650336829495478172833693795791514876017526822674992795507099350587568115592631332085648333687358768322877713471078230316462999040250536884550051350380051492025263372581871379941339530155679920643694872143134536178547247763608508724582327594317750528059072622201162646319527791942059675772510362062564969709070910395267816312903190601855867384721084355176935411595122843756326605044892039074194094985838859275235681822517133292208614019230678012611718573418514118202896373077986143712442960557902567485033569594721471957958674173967622125993455217660072430473684703576361228822845113467157838867209828072282633012958476401520287061977260199981168072161922788603785535182907422222588117826752137711027046450090284348140570069164897751785239133628520023591313186507697887222095185910000482227422568818292282884426726322477155968727169380264863362556636233828959963171327207724569205995227527020531345467014719915016427342551438251646684425743237457060175329746053295644262302830037095666615157365314745533327941397981924691753507226811560265688908268238312134044906429904442797245014491158016111860321847958866720878636705890903699925719938944567042725837612647789731637646646796515151405238954495686453305996484540979857258853232104973617731697508616889722095357281643987810635174134243936202518248164448194277744699551420577931512067254182736486529434948863537120504001006144116509593589351515215870947038642863172717906312756700085511523002011709664647571209955604165298377462270310581645463694653049582455926046577112549316614204280813033472784668320887787106212752101039579654936615237318049652821156847547027229627365424904347782676118707205993757589344627166866708340033851606427988242853679930724213796561778665699836821945327096009413360852234703765714266098872532508359782264256397283504405843193454522977540466661649596490178159507636019200022806620647003815142947973430983982447494836546114491294824852746613540365502496595761699145447620295091376925849467185794393062792247782335787970784675755483754570794435698982492990983855773881044995141938510604714086071924293302150455958351478319235650482588726103092325610296759573828117283813130114377592225566351929933656298733831783732239980188047068392184183584717685737185465235651843950750658788385980877685923060497745431661802286679977482589894049830329815629815090114296348646920536722078840739214525504378653898549517766382693760020996623274528751116452443900816385153096807639559343679946820116437326586531605252321553936416929590318729933069434477289666745876994397679079377536204641070990745739052622324975053739425713969652137385119160421522850926614813893006069402767205231735516798421469851198686606102662406021229590362871276346405999022521283026353966757497095604582333857862133412662750993277563234641283513052951811345345341490297318482418110998673216324077977315135335502382701944578538943812420629103582673157006853684605441266145844300855183605703395382890141377523984716183128624041877178719512113613654338061471955743098132114042606925589667286966709791095070344314913763733555532816355953151482499292423628652102240282637012766586175821165261058671259621801239180674306528334124511439840346562386665118946242334327705696500669863437420128232634552524616690149951643058348225452819333988502101723720192941915730299861048506324779173861566388427768684646664722700096638942314094197776675022436435286318570243743418109842708209613506245871184947935127626493664643356158820822562286308378083931558697986152745518663873146946389077070985722883258765603816957882487944057138059089687371263654786286856223585527710719085085272568475986018678478016198578892791395108893411757801894991576829262787371023807990589322268843181357530892802322759565244132629176638520163733960687242748264706223301220624967718814957959353692131415080056105408412704169028512444978411769217713248382191952120877353576068383363367414878112356609637843847122149146267015682466276631987414758468772632170254595041288435583969729744655515294590041367654783792587993669070326211748035729783366712700535228592611946372748653990396987861958567497123348672699280833416085963950633930460894660564443924344826626095402711364537603383438550730027314649858469618961623043756124261874390205625887290293274422515300420055874977799115901946722125962479782418264545599459853389615277052205974506932436761567580328348598241503535231022909945821079556381270066826484208468890349216359669908249727873512327143793614208715937593619469750059407272351666771267281418000771963577220796105770434449469860394232246577011059803072327081192787596983960300375633222132803377264258032053785232263788960969903562338639144782667372128232229670918930972711149298421860607132413947489541050026656085549052178170527654007323627258120968472034872179892842999199061955712425379964748898761591466645426879472652314250519609450099035131550612879978554480103189311161806697274457564310105222025648281808718569349577700838284526917189482159778109662086718624872219007409317579312201402458326604901640725800270624111932535532577752673740463706319450966125707840988119791797917612712072857307192790439698852534775955114641865000066878787108922257890811762189950479349115047544584712744461610711422025284563669824008450776909328939568966075801502481053916452897063175997521372705654686203462374857404939012661830912987583209240992120941665610337534874470335651027662640268794632351177387768862091867254900612671947516462240722425354590430663299072911860482554290465559304486355990119130292776423545116328759170714565876346508829017919145013235849969067611100279775935882180403977241478548040326759438992141112111795056891916408550519435970358006390590952483553026652363630177917722234868945624114150783514322040318978400169077628440444679871875686063440701876717814513481839430063868809711874888931533577839083691059370114581734737233100064098388051659057243127643039134107475663774487989351457174094857117363527033207209612775014077545315620648118819837945415713472356810988016140782340127820787116507068346697610605479217595795570811365575601521909970598298646039576683023109595621230722782944091343818609951624600235947637566798332217432314447643564712373721802181610367023929854145910160514848624190107721972623870894734328385362603537186749319494309733467609910159357438143675170241211022030205146473873168853198539327730292005466888342821688136190841708084700050230267676448888528762519587081248568979313628098295099067252424779553114917217782773018110156793033802961490737715424463818439691011365571063552854630466582600368366143842696376995418271748383312515075568827069726241948014953612384364198811770977148320917474574124114598407576689577400420571772503536644461852657292262411151080824974844558752677639528329403788433940550305760778043847099247514158714304715612358698197177608326141325649327855471389335604419364267674667846835692700100059664164004937606215585800928550192410172200767082370827461420503960945452805237361803292508711124226714627435565603955038247070155407480583645430241014800684028223488270622410444523476652251796640517753917410074803715776135174063224654157340783275328552029745139016175382271150485730832473416423659644015817710951959262562370102253350595097733572870398018682866761443829275571215058139072220543290586017755167165636385017671402029492132630427993725326786081968481495416186824819288237193027845827739304911968673870350954415458704517813595225215998713099989247226783706136082363936669457136231106532486319349924080631566655338865115721564847344595341686080343732716722777793671911640357620724056513504373968313464583437837665340341553600911989206928046627107976703890127609761638361275312002294842229307040304221286083583120763926241362451530033586051216612227073849365643523847027241066271380957620864733656761568760135251510511395490925038193020855837999465897095911523543928103990736163034789085323956835082585728004978410242025689427557698879764734510818145900324320609814662849813372936818062061940589210410482671122318158591813936426489877399519257822332514619807149906126568237225492917943151291211088045141748106185483488303627460056426697931133993286847312806493910321281659016266252752310782669085872017575761281157425550066850038725309948923683684562806167673569500497221980704191999621123447063737638538780749606131609948436342676193461624905583021896636016545312634506899416521395574959680792719397961542974214034888290863714356055688703145018027856492936963819076828617268100016841886001392489021465901350680179780492568066114877565961471455275983197605078732037657640392460398188163248041660733948349150246581021079079391217322159306079698245215261652419977868072540420108555300612053073697864365748833735909497748857243790583984692558363744258412412002655849697423811179785663026205938463892245498876742782379637572853912205681411208280666329151303339934558944584613381018464540246860716905688036109810553424291826240488636730527164582975981880907682048875138173957003092982238476722575634712098418923427828932229170601854491814603888971435064189805153381929226787225176120365176537251897040427723989336679339100986843191058185384468351444323288705490853636707904145804061173974016253466131344940431384370412281015828000636040054188846895459806254313872880495893912701628491524865649822789932092901650417434727761954736718197357742164147853190619471354284295537324924526992944811167700216040472457861041660889417156650652560713321747022470875424697841711316121815242264280942240744544247947576976275821276082809902195348788428237193319172679401595852183076249042306740636228144084465845350623462160845486985617181519788994642569170051432813122482062408840775504673278370707996990587107775677946429521685538958434098094641572862460489890365224746415967779133030841970521980275981544714079578192812911520810027389586433124294710029990147334674911189124985212820926955034278460851404772162599506277693780737025581329018136839590519665395373938011250002294534450741457372734497065524699040607489017901652830362842572945128086133974102646618510223738682981157137351296204480437434255768186739066023986098589002553193096382942121760091521152581773549158254973203995368862788331471465369729102749019756232787212263000242552844066508348015580062067314826679768967912657762304867052215973258058411231790003732366139905402288176874513639417478932587465991153079364724640094905620445517299338611638010809316851914768549632773607430263884824322335672769067147489309892232245727607826394075861634960815144112073762168845487507279869279313643118444298056685784598316341853608029844022261756265353854018599573241554344854402462773208771400179704154281257004757810827906757853156239572017147396342951390120073874626633033706201416385110772281191277055608292723366403825357872172833328493588359567293049225301743111194919775278232383755478608163185771627285466860821061732658020749674974457610372873165785235472462569732486807605800272385877926996555570750789719382663328762199995787779539050123748229217664481430597388990738185115528937998398201141336051121770763815468383008562640235374260495757100759242430026427712630099964580465116290878411045117420570628657703359582204918037017450927579053674416076806166300705741206538798741261619877010294346842273001363589437255967040439415537389881730283510101349018328417114642125681294871469009027979985513522397955410819720030868700067589086027478907999801675453911105752086735133455906078770065726771533475732192820806971272561075580385027663207563998522809336681284108779818980601848568621913793287600653241368815922808416097799656209375252406522798925870788858399829812402976837177042169834509271894304218987125554490440900609973970369088158888270200171212351852685079773695191789466900552267624407504558049276886056409492716207760959414605592407525136936113162201265310900106457547127143486235777480585073969408041150280850966581640034752128207989735582347742765614943429118138858614264392423988385068326160217758158832806091821691581233598110405668212675942676136845909581260123838720482411884507775260019743108693566558515241275186883870225974247836088405267795999891902580768010129005282102014981960771575279735127237717822045732111431003309295056642910627547958046095759067914867240449491609576163284665582946228654027559628595593611054857738154955202583908578933347650541509397095733291164166390738379841396743870423734146175267429326567202586499805981555898676462962382537949989885375024504165884598093011637084792974846713936719852419438151295984067883837801111586406985130778386901760318196665595511137753415118004965177280224833072884345205778260579528705023967559641298092524521333361193831769819845405879031880257066924316341479987392049049395438539135365778897768010001532988480029571372011993581950343579350156002947482193798936006757510948239853318765587657792631455556322779369993887303327267127771009096353919276979295117365163411074294784831257334095937641366787516319391119172434562436013495447414741315459445733333864224058607482636994876778830929537796195159221881755991132316236868689528983898469204124095238300363595360701807230264339354188474093317657540722029294144333566800781637557647372227188207375443487293029289271350664289722984448952298399926762047042149795409049280367435655149754823125873752449749522713251402999747395073749176577659847379569016542412373815097639533601389196189823074150650696882883152749058789558973571051871918490011512678671840990726973292275950222798995620732352151156599894233955390500801279736761706909524523537267693172394106602881795774972508163088423769653265224306743222555241218861082931873644644677773875593300140425814304568177147023514481047890903092271254391687930101214586835572186053285704290175984874327179923192185888344751095521286251617714452072690932583096884310964967507869529509233565942540733192306467070300734614389196516973342620323008425210340337225707974669615185070531586103206061690814387477706097182897078411899290520240392787681465210899976580108358045163751368261073622846421269491062662923405914905883488034620810953504490775273546026523948652984766566767389502415660912845645102458508855663374502184950451266299037858488916599542315019983700073361509213795481340870770114309290362329685914033862849018425700934143428166284851118779604039993935412209380306289976609493757584864029650137472358487944624877171410213020900562396137801546024878649064457710428348421020290097138937711754155041152547272257832909187356206250671462017458862245881173204446620907277326690744609412082159697991685624382058188886835368687423288197840096605027553882926568097056488772184862293941358704584496471335921159325135360962507310277049840858345968762099298230069554906257124200247073598244729830666288222444426694482974578590656632763536722521374203968479974017435673303970093510267096329849632753335712815249380262214494166050929462307638478502861901844411293189576991630400802371989226208602908462139369722821851113855334245754788126337969300217517709571707933011331786210948793758409405903798563168564432142557206537307113724944315705606222329432787690803090690371555800318073131308494360280586755882451029645147585528042570304387966620499188938490785137302076471558363203509624663466295948137989740207237264875951286192028820122950816955549996194733290345382014340161772316234610645386549154294479157498581175614255843632506504436506612955695707976773094617222266068996791510341336951150342828371480496603684547982015322257352874649144233326060726838775451002990864022642282315823363040298406917681954941265967125671292587645298148095963930051329772445410356429080298145405410885006936354473189594223589214983830253979565770429452176258080212202208019455032901667359141669000715205997011852632252139373567335781347430780636670681163921845014390563693113069197585074507565860760221897442151683718077432077537784749158977291063810065238141771258936159139761646203111417732590445903970937192812378003387703739313847177395729775068641238422236068910075005377542386175895566570141883375007230568515179277847066425110011608083726784956988398039925056148646372148513527755897343384405554164837204835487805923839878580982966932075740339561218048955136462117523381493493535849586224184454451233413165332761058119912973096690018284524916617015139326392440728308674528585860298394127711877607138742935699562686031038441361819712271410112421515728007912433600925585343253937386952667176672931997376060916650209698106074705702159615735278093300675057834661883018106632911021579647829579822357645140451516563673470564727730970470916060786720070152016803907301328052728799537008536426744673773647033212150074203399266009333705514124690097554712361740201303719134681441914761791320255196400873373877135261726092700301640152412181017539939130196093265961330051242808338465749571547497823176630027044379566780666104197062767313133001871066279245369663379104223505414009498217692754725007916070677885156827054562908176957762530717737212300226016583433083675761379263892452182191001578445389782681433293396435737690399732326484421537352262543154184954730971686252365236297287939340147116212551190739137202946390231264693626730747725566379232962352395248603993781652246622527665435540386520297667966541061579773192775940903393878465822783006286582019001939479288451498989932488608077639179686771866278723654123884414943972429831110621415930733815720071744174430917600090011809139195063614839886137061751441007964438217999469021662121515860263881539215937740276994048988820212863513884484719054746210190417591828191348262618698159842367694858020447533334776129773615001841530233665761791238376835363389425750147026383630014049523524296048979052565275475166229003978713306185715452746456686145781556225996203055462353384698745166650995930903267533825930355438304491101452664295198487296950237123801161275547170896123863777060544706577985352720499050589028199201347767852169235855174374181502625169587723148250091686747388563422166017890846701838312629278974496501692145603364067498566150324063209399493543336725472988955074251203468423543885199747081450445369692125441613757412504801291395495667952521035063964282540349331214795375153698763198409768073001974804677318136605690892335461152485875840731440169646461162246741384739426662544466235996862668694487433484783943289368156370959001891660548377969513160240135287790774369902399153723158993771380675383051366274333953620539653436199317159985016004902922237362943738894874084616436194268145995684260926566267921157165059061802483518212619660268036385054462964148501638036384922223287314499262062335186032962195758257740110864102494481445980146051696129752423467355487294641121567024852593477084903651551478689074982175410805984039689205543402993665134866580430444045008920956342487067246418107616759388293214991514850882301638283674523931132499494570241211994993129305346635856779649439991083691049235361574176290905754628970470739189096515877129764360950771690797209961017958777382122987293851367524795625115512738988576670802510039239067339050876548560477888357750163417251854394052755268090029072361145494171467459967183312688856115791403482051189147033748309477969398325723875223622923122249182572166608488320704788116127476244874803873328201059110769545110622516449912396822506258115897971502279614984060383864780181175207421030031546415665729836832923654084043493600044155717093427384232784955608722124657940257700859541194387296670550356840445078538004173521668649618214097471945144863789718747043747308108276989877618480519475735396108660162774228474827115784145498536423665526435202344643083774265763622642389424514109759488333952958933910440105839515453415033024936013312767605255107008260941924600629519304057105445369618192496411761280573293268925609663548689013691496720287777235886840635808343655224424764867117045674250062039127581347018713057772338775450227295926515439951426016142033727092183345294126127022211841038932915379657884301737123878118234241577646716325483080554928948045357101923202646489599432835731441606065589105514057417459488424419661716310662160733777835935741479097037621837693175319170773605148435028191648651435542669370146475018131367707667839480216801115461268454225867493620047028621307158948682500918519122739458056256654013754318580309631251925827169444386979989449507839951627924458988588910554170894506577859537428621277517461761900895549305821811188898703172339034482779581730891057505435458050904299459083080661956020422340591168456373074867798086420020892922419702127126277798905737247489596765934253142649887245341559465715400374879850668487274946599651631932595710672719112609361683940239676740822177450591382014280424615913009849373922766315664628027901491707541307200154037325493047067690405617092858339011575923488570256593496913797274314845883857865295311335034310795611687920922083939920314566208482997407419592541356053660719093510161053682772295670670716415175081995112916499620147098426092228992466209308692620550035792391029931761285261174599048346521936894576711715655429895226400538177133408860684923817534342049730638022737795531734790350432698365218524778546949575177208173328170547846390290067786221822441239354086965050195717940227840572563919245105170967378676615441864797883064042418732410963521906763233566026873477437752655461490213128750896704074257954324682054982598132787704478339178613744474381107043367255340794901742179820132798335480005258026660519306779733136333502711554147760022446523233623006932908024156277457803711453869088170561374796481047145294279734560122726469151284287258892926740003022414361297716267752375789972544057484375820416737449695855964968416342635115168604466732007155850480869930037999897293540321534542214123622533693921399273990685860745938691928547557246986360627170906925542324816804599459348457775585482785318624006266851788246434034538789105878279259932438622852263362175669193649549956667339683265784056135769773156244911138021226430115491018552228697463380778029826058707540656228944721396940610923267589989390074268745248520754549823303513223416250459534906229711434680002112730363577560275205823620598077088012570197995770936651151924899279043289256530230786719917850882465248330382582808024922314094484091141408700829576300190459686002751750603624472583595407754828916217308922543631386685687899027587427214366834337545236493948466130582862343607610087361604159205038575168594279966759568693172896627336210952968340023995512466723296585479705781570093819258308552588139127837471976300320656385700447392625716812723909919834846058982772393468345233058518434635961143613928752245162078865514849439840590562624520157454466527049091447051797438187681018584902279908003028609356918738860127623694084113451082268174175519746247062999954757740295545636229330413281154989010348250463236669231723925753446759589439154900220952446105052470435341654999089616858956283398959121242909787984572403680535168850229555452092700842388493964580451980104370359547557464448396410261801559083632196934983814025499697843974493360878215224250179404663949405482296282641812559778843849809688196664329899045384728882783593732934116804498340159806979920836817233638050202513472938634706436735614763724790802752936157573111969842752294979271175469397533145970578636287259532634666271939969213202397919080166166494955816683313848921711092316230306872014325035834017237314152616684164823321516896409000489625908968740600389246279148284995142963962891424991356832270491791043904774837273648436139928904205053487032601105773284259974670573005493733064616249838374113504122627495569159367149722936633682186908798546787528011123951242754128889092459079586562037367516720536454130572835073551173295574964828121636762843240219816401694481502920435689737231380689357568661669238927331222788191578946189958210962075892889503465895740600618883014266340076308990065892853209881426984931188796395523734029370001553707333606266194186851264737918087994193883334404972869021174704766966944709284521408051091235516516249656302868134376497052931295517710434763506333601917384527429588095012483908584292914296226850031700219146430785904909649584478150155345758067004449038184801466106742268210110989546109341151482108813153126311048809005935981510896936267207433209632993278202190948632970812780683381940453988029108856265452368399908308844050213003970943535817479345544513931827571085734294797343278692485006684068285070348616854138591125567227400696026860431741301908042188953688266302331352778569224634136198036704231342363350394476113316220567944594424474941486039796711674341826516243631558933206351044265001668290039292516463800797065181021572679720518674284078659138030217537477056221860597891522822195609282530828708077529364203116126110644721161069383158979309623371606711981650660366283535198574328890664738477471967270623194618863699158686444266096155922682658142254806169639153161556259719252829768873627698610232418752053648348952838989634630732051324827841560124260509060907468198057835391574407529653614974762228520771009485728636570615645507503510855813326183704410097055479000274560911887446869572079240097060464021896246109192143085322705320174018962127808068155277856309563638955003135062855968539743925294108274416718383334891056382600869926990637854288774148581955026342842879766661692418238417823060705183937665714683844078935372813349969107090786729540019580018398748793510390736975707713414854847018810022588766992659243980293185690646923967273167536039901833856653150949069722471795629339483654099186146195637569991514065679307719378406337597075772477924439667524780431515584003949072589941175261922942371553463533931679493966020045893694712495743831303491701348806050854185127923669744895983434699085373483202438084462737034086467829130338058137676093776775572174639608406432583384799188548122759229739211475173145910198660034516198817769760337411543282843738665843558078431662949300951042715541951481739950445707571611341448634336484210520801870118660514178800838926359385897408829208607995692253826054002772417255122935855471214720249582084821528035058991303826857190086364292584080954033703610554777998124159739692914025701235032662749042822894476902957396659444284156763054424686676043505310886386461425931556489175795209163653421320813271231759291260995347317245932270133320315026749337366950044555401132029709376175694473269578886724366674523477996218961591991510026009908226690666532978035779401110410103430639264778531977663074265989523704972953353881334150149605861329662934272724900720413987246927457835049254683097176834221536410654715747832357664268013758499558291919561509148971091597901415857326639694392733394427359152198861331510648701458303351885787973158633867765701131153428880884292358581146506329002638887107698703604908278922017951744584591033517330600657375165505890844565839355672737380155194600934104267314864745081286369480478470316835965522209788805076323113601164376485010483004959103492582749345107226990939441096208151694740230650506823048534145139101193392535578385298617175323347337827610030628866405030657105099923123874775585209726552544554123950539548865546134943603711342751003712894629066568098996180089887234411548164426051717586109584383456532660893969763951594942160901319547059106770419342453840324073588757180377239364087045315726417727133846609105675357114068781854809942282544086598197025951656935677979843660145903240893568750822383278708907387317311297950517955319030812262015996875796945967021893532880536428752995271263697237309246756711581017106660001083757272506362564826095154314582330062246184820371131604890758279782537637813929751672576151930369204488252659975034292097733010298934042057159901416251516679527659833366926371618989873576424704903142576041586397661499363232980667094430876409862929853145503003311351364571958142533202995181677537617995836498442121822295472618067956100103924078313851600365916458178914052802544393310029357117520974726037998316764046297827908490886749300285342026272843887849359054582025102860384751063524727766203642099248896367659496973588029056425482614213777683805762565564822398258559850899176202914410578372660224257620203350574826493011875976684684768063353431948750034056346903149899733911666968963182432381861251960472633385527292302766015021715384985594256007164304191686082900384379892471303559756560072538643129397883770595519411339852466488954371175607097009618404340598899621558418204150992875468887380791790240927588745209045560899918962628251980842507628862265137187235844608902856615396681599582480405867407651504018544103241765714099722401523779948322063567761230805309880721985631895797836199804808900941412306537964573535601184462351609262733655200651092471493392401606589608224823862017572798701778809178995890305149650458200314408428823227130685593426894872340091075587271321098086180228991324382374072180747086255159172136865577207595761757452553779743352881586654810570552094412281927494439013811609786697463437447044078912431533428315775840723235367290458147791160150678720494014460663357017212043564602926760353334815635975809164693600425918883342558987620152069554941751372147079522963883602196550030341251453810622838343196216539451583479935752536337027240930899635586975373548438280691891766572787074126233885207010193836842073656233927588728006845746193538078738214318131280268525420461991328933665139532114748492842191048061230480764440896151107803204606431167829348590590215128073295288989038077347066452853487014587538913688487348722058706755247171238778437205646787399260460930784370209303291520696452812333020903260058443483804191755825356460173148096352813497762586527535155594696149386702226760984227991099183154435107079701439574644282181192972646244692677830915547547605546099161351086271447804994287468456186813922487111836492962794703752502833807359929901522048239642294471938235654329851189492216729180252458914428966450383070903959685535782716184846001746754409299945471905937896616934662075654155820967132797789810369452776537596495845353847181839479374948405913485915841201082633887742721934258952773163870822370550907781213768251892181874372914295906118952071603451096401757036110590141281765076927572436605296619341822340877274786664413410650818645333429482511560191840396131315304711371756989411556054376017727006480381128723249350095508680980154567631946353737056680483461304462097343493685044841588366228598889183014296230871254824378410462128207464083486762423945474910906777682171921983683570026256132595616565477541916630501053408790988899542811915131960865295076258570398317362558708872955081462348095375544398322695789416564440963099996224096081331666549272465678683026848192408904336485100255546904715981428685270268049544963572553633987363228588553303430042854723785000592633716524357752367363372264624789166570988130413778419489683958390741277616749433497128903694633485907492358295077094093682729662382626297361036724735557750887718512651161850955578059020166805295305355618059639759011341518567064023566912955007110830873597063762303165521745331495393270733143370267665426688749604579046272643377338129406516782003097837453276616395757152591154751048220280278459403428241837924449130674514033290999028151780197027687066311514523897919974508964265982271891473711370198795082562252189931586751600486909977997172075692633737709554919192559728927617873258393647334065605666677536729223099986370915770164930093767712129948794743669810516378240350713577484928239235286769597423230138537552776225669187806968046018006647682968951444200595811282209057844939686398853676644537185690848515258437611754372376752408530432477236121533864199661945505049270748763132931969814781761776732050147806459927587457273236260932572269035594807622648845664019879933200096932543487831411341842670326244489685957505020822601250011105003366074357918883177000266473999834551451444754238886680775200491550586830888478507605729819187227186967589825597634342774580782655956488038342167901165700170577117783036906068559912751339454000500868485884071300558899927740581714537557706460752444515377898680864183539956903127728673890068855317217930510414329246285134568264654740094202650074632058448314194548218813745634537640462439283093798638723251993692940207272441500251246315371047709358715617180023946688592088544516351359232334540441185591797317572081020834430745708717703170248513612680899413091135258365376089722078308937388620957477678179189897979935212435317440125431338545682844910306366369714487786185014094424709663173532336129911238164372817457975872292084881245395474682715039203908073602262216238089773925071580339605469246065889564013403607580227453242571532209852191361400689998877367963282231136494613734765460116282447904242617903517850011008772789812554722802737199182444160367824881399960524394274125325563209323665512390042313663602612076250999458568923695670769288119986770433672666979263214391775444428241561011948807472528658407176523036647110012309641254567194266815944201706558586002385622278589809547913680519340221347245459287443309925049350944023180449395374451078950851256300993623644529294382116015473901267627732205893361483747511069888670472864101837220803395574636849124587925000396895693102213926426790381196275281117347284261106074040831236983365507827832991540982146698202480329496217950448504859173812858292357852478669429939954476740658975126537831897914556751878075534811820598550809650559739654473634120265442592371993924896911833712339260725573138277737601650228858297619341959949900316550285763116899828622350671792262465817403441419540380689672142481616748752050477798935017576897909541763392384288161813953008025633153974696982441492791612415452226917437398287878578702157416162029704021616696195551410018279389437129722884519799321983273189420506344857889458971915420885765329648745537281170106996142481122405127757106074330282646521334312536258723558768718079889525014470469785226061215483672418889164725725708671303689140800177336027671418261993644954293812927056316787659340628204679945433354874689054038791603965373703604642171561990804227572512941671738149043880159042045730646031089740767304511698256118181234623065952344186369925559990847841355051494736515107039274170326498094983617478364605238195935040780950263880964450076618134348302743925718590116215988560816928744905301763314330981975016712034242062441848187643605392878826282977824812070637865526099225562654796796076786143248031336694491738987699808044732964816313768063760172640044083772967241955434999556361328273686177551660111736498542219853427319406957144928801821265819003415151811420396167728235568557290794873150181315235023040190203026918143432649459911185773058093229851740090847700627345095019142064052380239733360823608172902723188934491805654266150036894348351170657578363949244100904653112874058783056177361783543108358040799625507481141041658838769804430694999205500344588419786474182778865919928110727202774882580850143661545379730695719401331765784911298944937208139065797036839759516144495320534604460909996633896190705819587396097435324836645689069906875765223337852907263856021918584751260644359768355167692290826587057307936671396233368655483696113135672111442964199000310901695761620938804312446663572895765139890806670588231978268452724703080412767026992048009567224214308632554269060800979419904715716211388531471047741480140652144977764826800462892654647821274208507523829183906938608616025863763921545328070239943567015477568215186574005234848599547374707765012949222598919513601571665795918157804409006212164744387554645269860506499110520808868442100234412976270808716851412790352470890492116289942558552517028782473818490601582440526252837837156258088956008693525815943558419843076323431466730706682658620904972853965971027739045055950043992612821166166208275091720021416195311600606291578707070949019741555313778486061181856242557511916131306842421475585544971431970404963187250604047578827975467853817171969214314983543695212719575140594508167578883502526461546315113315789047250298859134285892567876311667811719188606826458944840861750054370558642098154239838937351789848123216667359314940518941345568372775085066934149072675015339660636147035071304229321164518292772700979479002955064140620898826121895525244350740076586819855027202587301974843570540809038589969155673375306980406737929661580622069306888666988639306137795383547100780547759569855778507494526473796998356083563660551894849623543898459287345347061259226280828480349699246417134711675955455554440987339169957533620568159159440662133924364480208336184456447324408651114064531689633103938825861437704770402295379741948090742256548717786030307147078103563486983180385158163139212131586614951190166746742434181277858535804819052090413923454127985888652683555580078910971166190368366438070474094214309152801408831274496480543168743404215652620490759184036616673596752667164328722773152484744279361663841976014946653261185508422927325038215998742675565687111555411567929336579041208263582949575704820367990690804450171905971743473095776675678878054376017868604743334364233372234400647466910188240061180077477907560583716957444542654139190006676435220685958143761339832154099688629142575332791445218762837406434120543166223518808123286146063750699380371481181064554563303003880658715836586384379016360448052569592691136220390631625895275577810182695184864014001231221783070062721426625962454853008845538870336079155454089809711357118850374334199436098511538196467392296930886023163451520021412240756899716535976927285613402512693037504256864831699228740474985603987277519989073152265899893982369707237994455755585115006663400093852794569345404808734152257711045637303597078956155772946606579320261202445226383527257991100285099681516985615440928587031622426325129336329352959553033248761086306853067729500271657541277164503112022465363068357931403394470183593532243241845844693266234390980272580797491394728454394057117154771108758308146579277026801214848129517532368288883583884442964744077353099932981941804996646639607833051175883827128058797634902682992564230999968371055170898578868191112655637637454554463930312514538736292390476539390800426076689781226595969931292136618984040702157401239117611629186463178282612576509725582092688610172034574597664512827951587303437518099744714151532991644137016924452570956414320807618082640750427918400448604419106454073588125565616796884504806411571909452646579611141054117880975037195602657314583893527331583331901294907245391894460281198738706437706435311614354563715290266373913516706569464837448996318911085359066505313291354844503658825650176586307009303825778141067241082991460942332631274206381336558986622455589665567588821293997817214340644685304922476656324693617711713750244875547869439150730798428472294945643203158510954030981818058042082099113608816039786815951787819464018887645722419961513792810004738185616392316792425156428866429243545646589204894582397901996028429152976256679711999411725749654604648122173704673442630228073475829078895442333509244401695610838559360485384647962422893066956757837877503403596110811617992193100893910656779977051676119635508739897250859334627590199385308865276481951409997707236622800915148700772188841361514723978368758004955864017827195158925180644613265939188597330068942652479906138973100955640829281725802243972110665585959019236051998667654771262883891658005525947172740957119472278529146689606095973849013213697806017955345959746429653049401731990766228635063839333281780159100672920850178262711592298394037424669864702834022604976500580365872653838509781432198449528835720167940980811313776456531812096083110495828015909343038264160989127476263087931246899924229909659261691286769473446121088947337385056885459626925976103419171553870772465355421503728407832715380185830598527765739395470503123939150151288339182520958021298137681522581869437270131989396496424007578840114332230359571249533603832198212143210690105808502578947122811327124851017983642145488127154927109158547009076979305660206556715294865980492268393104499157440306237298852728661223434946326473595398558832549889004066279282853486456062876195081758173325953388774491299342789146951408193926624859846078229309633202353593519064076190852787625073078461361675700730552504072906612970823174291129240500294574994988064758722898019432618249477169134972000499068267180476451164881610443844773817912687334399978048654783322962104878122372010594443810058595237296705113797496395545272449830549493005368932778610694082411560442588922394734994664557833656051459886533122409337917803834190625560338469540632397432183740722658974850196311329523844360892528922058846315533438067924379238859075341113320268048445011027028700794501536497886056009291163895053492048024675433311434464194046905168207222249669986902764598591657617205835952510312635991250497629375878380208440636307595836809406143960305153495439950594125815121329427178441973775342136395323994231227922888690769815946238669043239579276127094591618003055265070040908040789822012095684584921485388788159884336453949986713705092436421944648398520480974985429287515285003032527784408608198714233229677134806426474930164660200083079192701733120818767671199551500590435353529438657565080841332774275030134012105725698931979567793438436304252075425620265176564780309915972507404241280458247497941745662211717874604380106442456478297899990303816776193966516559776381219198825914722088041142377275479783379304374660830267449011748728201662122465918118846744720532029327045456674352014903821763180187395602385790064773084818315229099934823801819912962451725396804472808349998721131522406250733551939568927664178239404327494792088006818581034235109208088757824257148575857685252765490033930550103916415641234550640633461490003275774124530503900249970099103410788897514602400496519743446234016438541818606841788414821327661984959911167811369764031638109862489093277696074851453776518665086672713187830836576857577178358873007446229792648408202593775410161022107894084014797449877365137481572433464957749769907788090912429248577801955364403112248532983650544764408322537926364579183877699940861556947505495873391994795353498267774917757623768416111198825918555523292742724336946359975897705091641104734103861103597993253476926145034818377418496560918033229548790408496603765838024564115499011864619815342238887031550012512841579900464828543329805588965415615386920985146771550959737262583006943286370759315456679678862826918210641770959824728949292122757674803809087224481009081672484314228487078047877563608835037883249077836699508784474738230497196416171808423193709284373889753313284082654771144740679753417466759035129993459934460866695782708124034908524361648243667716894611653612347376507474725924107735497960414415109224411489052645750617632706442362051948934432523728283388022843143783383259919799130683778174831956365082783964930317387752967594142085263532933406328235652754563360239472952090774850050667837500025301605162636600774286103406319996969776142398267325775541031233522781805204550470648596421717634056767879562792492213161501727049796928653413473627773275760055031644063158157478018751000460054658545358860763090241561578393302697901176529631555121862875660666834423560525901734460167034293351219399788479656898060442908252495288146513067928965574304635080329216930917406744398986654040727004970030518674894717880114860846086171673052608401667371807040318713209644476480725254823475767953340114228269704464371830313767724261891428603357659098746045532460935087836173434115107596018660123988171152262273736584623367018181078721297189831279559110407473014602410986426405808691944744215005194970423230725917382934586882379921166390458164543270641074188932404787441684726140047579400576774691259143176298979409320956580774661849096379959680829122740334613128942393430774241737243933818217749312684883756968148496673905415638597147897434672461599235186044178786816342380842466292809578632570203774257283338000648037386004591416478700978179263071031962058274115197804749968299541792458413773350480287537724833362787346012045420228819588755534743034295244082839597082991212090548612609500717172923372184870615801717651811884182417204552310950828461555190712756709663288183957279413763936694040361370390616688243011068045363714179105290886637375243429755806238729247343529728718916914944887970997226352741705379608311809243297124099512750007425519487456020679956178952641096059327405552158633227555407021992352143622618197890725891321484819396483410295117977529144771653066462056649109702453071542832600026237633585543415022885740175476320514945850853040329288730970949874090586689111924808660550616944122923170593767837565383084106138262215376446581288304862877490635557511692713782831912322581573987194912687841945122263117030125861931882213585977098913329182853372713864758322101469487139020145800377601141650931624909119487609036253107639873658018203450876527392213984481687375472850469633613413298785890185459021078411358949490732487203408594094539062092671641694059101929183537677979459855517144066903028068713865404812005921453811178936083319448489637386720961216572330489598305212525189045390046722653437209683225612832377111503384708690391732326835562328215995280363808261102844228568919441500816528925255796235994689650631862988178354000701091907969645688553692720907685349370506064061614938817081289104106776622513582531993077309852612167976478259665144911298846392388778581014839921344227314950701637262121272143612618074206672343954019279333618349902403319030565921292344010463216752453299653837401002628417917378258023368485358978385238816422423000855802477864281280448978550708553804976791474147783550219468490995551723034485273735951147211100793035804469019456385963422872688389993042972349661462356770665884874403490184423510778883345023311158486142699603679503571664236676271786696798909057774288885966949457171679575366643134343989642748859014290885524085170593785280108706931691286221355305959699092927730897427620469690197385610652888653976535529113362816009218982733756851038875147943744930001560358511780543368742951232770692573932047302501647542619230777865486709886310245386945174427799239628259934859200990593210613031963434165081368515145945166069293091385803632675950788041432585471238228593343179050536464167856696317799129812622299383973185753877112897695508728862765141055341859634698337772578033500415440933502469201809556312345714389637904065331077485105435323596307975038869107061165320490759130130443539232132533472644913384169880104546304825861108833202554492750150031439868529944605969582426738748481890213403038897278335696923138638444447953926327575515424143960521919537715902160273234753112324907303476388813333066757200056934074729012606516458519993639228961864155783915169050633581043653102207369956446706037706139925281642255600787395151975214445052020022447980904220995364749094132202863575845052813434025634478237220693479056656222036337513055534585043268967901730317002863051953874758877894130737299856834123702530454094796029444351383986951839887645701905835098140070603418600220669855509099904856039052477875551732507994428557919323136171424585606880416372360049529408997684132831735689282520660888434536989157553118277940576340175983268137690154355983753353255613513148336436191259238379158372509621385238847597736013338233344243363978888675665962850604031111979780535301940432876111996404958589685917989831428138354059828625945001167422965668127314130565135515554861193789059703172454365024833263906568538397201284521569190139325725612276170267139249574047222611461950077478939158703195155803133163206363581515933324129393064027264023946239441688870144737557906466030211281900535972188503261354619460880663795665277883622111030595589611682380450065573185055886917823140903515998953656362235338789545759496365420784670673014849408630097534524420878623739557647640134319655596344415347032679718364462330272728648123160560549796987746147328905039432437288773642090769653692260700563402234122067678281814393541326658579144649488674860106710900473491837715856408881235023793736486391826442083994471511296759901113415706346658774094861834337712401779726674799893348692933823115587859818880484647480676955744503191711333344382794304350064330109125380920438681092631394597567534616107868406468609447441250938168042034492930663578581775479242087205618833837418386853301118018840785571652513401640376632582716548438567149382854542729154452365518341858676776783861830368413736689454632735952702625468663011852295564618224871905634229253443186107960986031968338972098598712472048732159501203152532790408326195858888451546514858424482846227523960367585338750124537571692479789067758153902077624060610407761574449028719725348777061394021747515410063541444277878654108776520345292140305155512243051450346196156413902030200367315854019610841687346171648955566342489519583089353506070918765043361307983172003810699188437994695689788636737958797148815930067051598150056163737560637690830138897996100220268947868719306964417023002702211258138714273542452978986128110671584416763517240046650639214480020292459895724845901015494428264586301345996938299559447810659903798057901186261348797947694670162809513576662841428147312914354336411900387670789524851428048227054547607873847333874381679282881562354307795828233553154888729877372489894645673666874963062635126201884524819757555208241872052093795700851326980191911162586501211318903064172164700103991439328623148203229688714133693755162223012381277035606280703549830515653650942128818843745499787585765660979688601471544139074353068675588027363306675905183688492101486193816314949247774152363390236596422607752790309435701232234968098162871490300133401633892983692439374387493143104132198546384779421432535003978897155664413632348492642936520218722067599060671428757737748072977362505256061815619523944937720525230140312879074644279479927929787482515259722496089985161763165247069864399435050730425269468415341236818044079895249247267533036966082968652641860541297357144460614050150074826323685760756207727813231465677009939037683102701825750795699163686995638681385946768886610974728656608898963080663363969075559154706760495428154930137627249003912475951152030992287466089627038639416591636587680469530509440015252476369588430823076014318072501778948625307506315448569812365610486601935993296032509962674757204963181241632687112871035659044267426513060324080243801081797963540580455610534120347502475533179256080921356268163016115356917200329441704506081478688717306083919933234301979709063935246053826448644519703477501137346014893421631790137271128165390622640671788183003135903139611294340256152279762830549263164939280098092297732522370046584360586998034260826688446976910112927287759955352760589749294964955492391736398898374667638550043126577848840438874402742756334495723107774184717078690958246810623624066354435818183433983122701442660082414319592695110516678308842570543292515534767959073549039782673220934405781392219498730864319692863070835155776645272332970906372066893664281287837394405947759044414230449079159953176945809353220650905600031900636863705348140094103577311496472021138716555892477297613873501591955757546720193559054645746342882294587838011919810295968384197202215860578458180717920013459522575623172253813848587669558066380289073080750219644558720159728633700655088860066729591621135937237635621057761058375882412816480103482832375335107219654101487424060305849118847838931278622798163339368032352176337023149558118272824340851948266747513896088721965294529429857595166451726178584349227227572351919150420309160882491549263483073776308785931222687078520277467012063190583147903663641619066855048758012715409074208464393674989815216917429041194534651103747826647480420978295457568738303719151998408853273492062180212940846775311401522177501279120964765501499279749697117241337012213030535280514047547606417084501375741551961846266336505666870510365237802956289873142145981486004944108050510280263433012362798592235404632120550481783471624646196638672340708645224836024484034495936613256986523755234333919189093870620179035679337539346832711698283213238677863345461253393969738630004707508279873765617505576659233862288219480980639724144852184740640712123110626210496610179753011934486777762467882031862882909866865084196390059120726168315533421272192737326827436441022755612770127419709956608133024679355684799711577320406026500960137956932805021228203693455492779105611707459598572746397491475275401147484777255087478413743194643350074795240661559140035538823419993681379466478254084555479568527286784676235018829614418597860367339680223360933093557759244692614420603970609723809885468701234548419720299925494595306852535637394135891948759905000417501822805065539846845277422401606528470154654048449634838122831539999673109816800523122612221748214631763344588329400217223464988973592434000748319965690126679845845586802484466090699906727053610736861998174531211462871856147188596348449875310355137382002180562115487768026400178696313947460173993833988380558280950693455715981079049429393983170394021563866278230005095665774924280785113662419263405857714431802596803419001961142172081571708962883427447014059681130273565854750203195475266193720377560845878338722149162127456187929285776653743315570016358667206343272653379898857340058443684193886726862477258530027598709389177112555485187676941362557254237743182389019559398393087627686235018425900943174141619859129317391459939494854344824444520957604593050050016400492188194511680159362614487382476679962946007322198821662609455077734224132887696769534582762162424395657984822480707732241721036984283593984250892502386103464709060555380457474365030646841144414007396646500691396478955173070704183130567138356340916563646866227887715230985911385262638705654330409039570635062700113742385184998164884594081311145977012032755236321611592046721843201952029413168690875038199709230145186007065964780197532117573008681859664822954661641399284685964004015921814843815757368663248968222480289343282833735154086764956387220017868909949063735137613459858673925364882825308541342468371823822927247170973217593038277881688378706454903710135625698313426776721054867559625174413263553657787895239215893811079372880036782623324955283543705319796857344533098879696159645545877771717547601556067156939614408244428102891842391144533923455416198310264883377893345944560044212646877759568740441284624885418045400887709107891289511868738350444284143783745054697465677768073114352946329132405266391385977766811012500498720281487600327128640120866303567004438340804097375906001138026581549846265949373845733827606247671980115344339412719586979786716401845417055431650717228026240163581462617269727388520939625006902824639349285716813151871675962104792350080205122460413060946732054319841492265551186537960448197447487317150146422843996830223382495213479184952641541889865102439239968703542875029888343469949677021350011032048538113910824031172906844623981103429602831954033992112357421302725414433292069317163322501965224140577386912198799627466243857450788510305995317324489340606300201720798849394040851376407484218573993504095291932939150632251612929487741628422725278427500256896514150082751292181628385160015803874217049166704397265666777555057727218983211580042846753332939321886104191039303328587891644711200008121172956451078318914598989124332333408496919041643542445569026099528546919200306953123901887367012664791576235777700856253980931278208920718971051272901106397837811407844254412716842604664950056029020557609138977630588765480505927239058296070972786071507514448677378952600527099392343566868133299358947322555206268683669841470575467874901567396520431774824149971932403630194842368260572745039130065898036085717333791789402793600088055070353921857846663516302423199933994112489807317635040464829922997537082048871186215183947721155430007863517046814860669549474468572821669606728586055010765989407319373084822551205925211721717216590086561064739214516636791932273007850072716237523316950919427034165265523482690748928561890326121650985315484381857748454133770447376305941767681177571046040491489456034866348807260051863459509538481184802359802647408039333698447855116144222032595442489162459852095056113594881158773836958554849144743065636050482633767735576006730847162415920272251748963080046947097328053046300234766257675437524161715189229179660729055521178831588964849692134429561879213114853548108096508172171116588127386898486486394603365287784253859661599479829881156882615035102055421457806946400783008252238865956486387042389487143872974577803482667891131511062167025062783872701680706492383829069794964744431678917714267081149794585309356280181243682023428684026217330514813570171634027212539518611813179321865577018782623967679606770025407679133233871669979083036815296916593956235486190194659693115182462025017014384976514683978684452934493412467466013388576385030996105466405653134178743558771702431102329352802991047704626182014038152829655259296449876642282755087805873697557800343010570850825966766887223871386018139930784740763927394389727307612182635446301142505171285077571709596721203358773372930793509690306486248569118299879386441835476360220975619138000024143145524635293637041186779863099112458391213951557455699164380930702981186340206232841415220652669630100253015494286611118993073860383623783051094525123107779447879359345365172050120630573882933728736357768969276727036113919220007254433843737380130616162361831998717299992052052682970779527283105974632521322637926596460492403350195270168494597725198496334562864467093837296706896001319511727109019061575456919741645004518246170055542938550096066317165408420546638760268486067521309057029578302470276709536245019520381587417346606996319215136047425386515134119373504181760890275405424916069755022165480260640389541923761159650837862494979410665912048679867907837118153896315566000205173184514425397581583787725495750513882662020721605258369001408475060787428198486884765032857023277001139988885525916422266105137978102244336703705875667013620045853317645860942148912487840362510840767266067981578547124743112564696786280974033438741168197605439419769083922431823713360242012674640361484327891933447398146576314980950152221985736984532022034368065451725704389550425565104751133595065518281218145365305832397104067380657329808165263940228331197630393811385044529713515271937813237013297959574394677262227874185477321015532133078750352478730434494236200043529897590733723621347278980001758226424563823701564142735604542024300670059699827827139199993151472759840784762561955667774240729482681809264001324172876990009900222436909277675730444281397382610425878691530148623366037680822928445342237599829964558262116760254230467698349851290706048384127867109057202564755612345787875676773955412727525382456110594105865410997451750379901995075287380725697710011077975349340331776782442601481224910123871459643659680047634819331201783081445670738707248988268481680804225563196724901973150703526300327390919208818272260404660068245795089510232171316147734694493511259639046052686464546928108460673630903815627420150221080227185465266092474326245646925946868672087262801468859836769442164516328803320804683698800137472018637347296009717026184501772873673184669085563276798573912064993872710286896569274339331742362452645727086631727928611112382564728748188772346247869868775337223670430347268965104829977743240448370848676597559503775676732133108477613618836377903095328448192382137706992168812254817530932545167773884831274729086451105802642907520394719130900061381109106301077675648904053039000711545048042341151908782984816077908937876091178702654411347034993314174925541573861548363836581678625210269401144813624403048119272110222596309465274640250122224387749768514094019308354293837006075963756497676349596262308412997969024003376793952198071862171808815524411451965046336898339753470925371136871960330849779898673555999344223042544343895551369107393112644784750566687350176560837527618964767036450937596113639605438401828826788792967848580035148963393133727545012209834608798275401561565658784735992227438610221892764953540015857709574874038505388321430884578301583094711640199165306469190771628216659893117744975731873149437142274588830285629020541015331073851331550979596100597488530537889874243103468348339438614913804382481040457950841319644701566053203233754161333684901409634476315135353266446403900665321108740176658851064813039303753240486889529025798032145728877080137968299972212630942137331412786741536807559555440112559864160528632755709886017030784614587259311696378320651933509537026381277608417112724044317692427698734646096939185609169646173518501302115140573272929190403495383539902924671254627103853715796860229413187040562124392432125478251429087000067708527845788343689009994598962594082995349832133130653402283643407321610808147368490924051164212033912454083777469992432242960789116173108006205231279504692717468332656319404936182574725234459151357581149025826451612794545848872506210950863818383699342489443263518519050247242237482845098736250911068484502742939294998288667641939260980110752083449069692311848690120822121809208829183157844016310875312960914004600494957843032390163105966119909337106826793552266852961704016152776177394304968590736879470724405889045724534349819808695660984008278640772130359919013428041579219866447179895908909718725002326752812471359299945639398057315058070625664976018644281250487208248234801456925507101735810237055281050339438501076530835202728599307699831375896813224335650389411872866195722265155777765624936728847633604397048370315849768826967310429927782772077541975127456941669397980583423333053845124793816536716557992483538216299129415596865466965962429546643336687175267034890712653537131950182190775363896057665062214419123312304755999743828609524062010383434106504345351881822454936707795051611820729018357333685720044087490557070438207332766317234625864093427119087656086476784277548358597329238247128348081766127556427900578278697306980593586496051661037587455796266666756973718412639732698048461019625353578089016959404247945736090733956952897637588537403524517338218420896005307193766695485639518899742838202570368188824156520717883600292996320379307260924738341613223440503563472952302971144928597721189788139387780148294015208615583485681753410597468972197352414458807640128758092843624244123665482982456977397734031728271745117495940591285745826115437654707346331801463969452242797842097189101408138559182615299290654651634591075353553664290997197750339958857586059442075218074690580449644167887103144892205856554628687307848779838635950775770304887069989368956679942232956937373991817448559674575206723377343093089845248876434292882579961897923254025665177603528600411451904034769687813607469392763831207445257042632489634674730773931562916208664259617635234609071189154416214572821680417685954777997825465153030015076307870693711559153318847529201450520923172580799727178673189960923435506074540378840653592416668894846941303393799589635774128504707431539138112272165404709293115377570701227748522947895930544017962458158471194177076683699798456440697262034405533261543277784271340610658749009728869767736598974253802293191614423189912169517913192285614108151810166180836184263347269685735302774555480712862987011383710607946218677162923468154853687814022549631874545964984379295310894960159386491770223178823290632183711651542154572172452475007513095220632115119093762246026703565098695778561867387993563292082035630959484533269577483961071616466165029194350100806595071649324002949084531435850449042505941534887306713143746205917195339895125525860167947815128363757376349345025698653525853841388711475761703994327015286567678385207309168889430215921566685730209096642209695029843646271800952046054315970419617663194890044475463765153026063520099212647923249561531158076282330099438252828080657543256272109775326599818062192946102284274622101608132211109081423486352082553569673511282317559223479651606903126270577913763663958183392023961760495632398333860347880685016850733213364337527053374890784072240440977520413131476035044465647196362970886910004404569930388924639000603250838848267500488457534884266653203563418127099092559455657876536541184004657724575142384421987592065912996016955440367798793853377802270210453094907852806447028022787318811760914803653942467901342447164470379662649809587382964278513466111351599296875399781876102655955594085787724116140514525439234528133953795782844282238540004808255562439198521011323318127358790331265844728991958586025109371554479643159813879280893840741346273166980364626762498480777645102427823222940021774825255238136958319852870924826114071238093611387813021583084440269007873309085158636138196625842662114325083044894686865479481771051892749729361854942473098599595779284319089992037637051254282074697529173929655568519223474951520931195343667198740457396891595118195281386446723236216583620535297225908802581542342273043660893581511555547168423538182563279245910781232707140477741945385155630804126002250312836314426078177696399210300450171055124362490443153510325635576163425150759881695224653296613774765476669454825683618425743971459359430848156997435032452982114695692538220904100127655172231591758204609603560409932694843328761823987201779742371439532341638303327425367178472330103016769121380669062439693584517411605107664375031761779565764988602952409038646513075872342464713930931405024434734217317475464867890930162752971385438785353736378962920319161131455393808003780989486495367130327290623594193221078500064360934237816281346423722987389603320624032651029226011307836266286900650508775937362484508026440341676626665797864675883928201725813717251094337930505576553227801372267453373341801875510977180591425908115657701140459730988760845751598137279882421512148907650026182582754293442401786203040111218796993790884298194723327050769963193427037100888840149393300964304223962667508090962199226970754696273106363120374796699212782738934206576984191061953272066755651209681424090065394411272606621142707371688283651891012920275775967982350331359479591715126550315216508615534353562219884529233498353321718167840282399069675751419228735716699663573371248453806037230431716646257375995474426889707075259786111548161276211589925830582153373267290024072685736359869707163926827350186155431428723903278504222012837091449658188242240367124602886053456971540929555564918635190923143273949702124063195047960011100807138918347371845450316198973557086245242048318257960546078857529581746096934539009711099375701449282994929066747356596294617735352299581408936665143853016590616996849984073017368238149745278365620775352752845884463832605609544958350141710601391891338789050667941043116727010769324543414393123400746237921553733064367978845862215494603517511644109285646648848202464311326575595325943981253097683673877451881387069466871711483980868833622736375078930814836266927182650511216851187239200920222261235217082407332903100008133546957850847500913663053215404808665526401471841742620141691987677268198355512529512956887623705268032026564347846895361999572611636597590267966254293128493636949307385959748706389495135188477268178685622798934896460233420083012497302551499275414262996006704492272417165495598149068561482441911849716000215321069584111933493107241392692757389144132247381207431596648531192663663712630255065155253417137615470885000521947264749225869995688087112608188754032668691548176546971013187569248210394880648511159348732033961918208717194801331700113878994331998797123449705461887648405432342842686907051898513473140725737526423863513786538265671272777711242392218647164145607522223532880046635758970298717331791948551613478303270435194401779110989870956661916134219623031724799191572963371252059753729061074138055175007327006177865971805171808807801899367317124362245422083211513018419455069742082627571954971372239215488243949114139688062044912951076823799202488583687907199482394393589326326101159727694904750180968526473136896687011791221370144285117188694011758007363914965858964417304529658775411193503631550389883698231352393587446294482918994532219038609268883295538979503692779568124610193961602786016803862234298793696280054072168428659575707794924092778919378458030467140077144810646107314251648545829403756249839235253639873451144676209769045111764350307843894654932010737762109731301848707087612475413892564247750050869594732126126754661909489934607601134802597747037715427730360652631878332778978228323198190459317359601486613268784927125253870809203991789771576778329501752028676805093296146628893468800854421866441483367042349375580248424208922053615745449772431323272561019648215358875202415991618663768355190113643526770708739858979865507284615657214050858007997235169008448885653071944058355216397395097252407396386326809723104310010831637021886012724478609784104712845630281361306369529537238367447201933568698649865130544779728164639819171576482444129946168134920001624139179499801016577272635330351927287649385586317712997290622714955062277163998259130068218658486577694487909998243666559605693187050091746995331961759551495664449777237034648515649037709851533851821217287561126767663119099193235237650590403541659562726210796433673319982426591742690534765521757660430064615664405330641206470310739625353119609713274347756547939213678861456000356410050135264272671965553830379046155092011763580520695235582351238368534836319204837011728125021094872795865852640450564934504940848997264328001094743020712419264211512224785662899141123221378710818596355775745989335885083093764868317180383115559849613778846378342677167220760214448988977386788246674105309081326652571578925945672629810991141888073501576319577295446887125736777459047757338337812876540847622013888604010445905114271797004132675552850027411910691359215675505558335982468119097451289305255052527746551862343431126853502333919579591698581707741618680155627675871933024858276325002757185583983088679110080101114969076193051215732877176909997348746622736879599049803423932840930753845125585237974581856534923316558867249050018402953460859459428337121150947279010437992974614057562580747777395273220650536182922198003031747057334440462701778720667795547394005676188213687022274897138244102303636349664355400341521176604768103858817702849081638753784505214591103134910864163172406868956082164484543888678152984500060193810222601410830231298934236490016576999803875541928753647299787459060376234205477755360392992009995888601556518220651698597569488769803489100869413876261552338154695302640764573626893003096348017270720589178292689342106801056254530653865571011277253035141630920891353313954523463999826757423061619060189744145125557008627038687456160550144031699241978522638622701688380940370943358156584220913051091750302652151815974464931745238996048055470985703053186645107378479583609463352382940564065512579137641925390143040574268812530208940314448647785014616768113276948553032739186358714929241126601507498634475612300453130832932654256514975869785762623018138568361164326888465057553573260038569514105819178454442318635687395476512875068466845972228802933291275094106599306784804422177704147675589837916799509942376749902391268519359766581735945550176126639278203659034129762124211851303557839304827653323923573807720680127920787263143704086647833495275212835666475399008511209023230065440125021001027854159560652541669761974296145203290214639538274546922439947496103239687141113539532649175752573409853882998303812215623139437093760533106528714960997592328034884762265255657431869890751133203860204316334079314583669195442198854427273712637524050130911766472095674612405693436541478137782570720912368083322031389682682161747371539819982185656289459257659055076867439920188079434523434869285482071532057126499292557927127675953298915622152463096727142050562277556436369420877488888777189030901854125307659632531980709127160832280916798861546375689967374826394541187329896904370943135789717758479593063300942024276616223906939034356158380410484708786103498316284553993986392608584077688689910457535512895625253837980474097101776106205135253783735822419603784609572804384724877914881660231846763236300387708778365621926055326632413563793472816134954763502344247798256393236431386500743561226398869958339224836871467830284769115343022218585389832066972878888785461551096851250110296733353315315663316109936339718979753676877839144511320785300940439786497062748081062295652026218089436274194173248252685243497664584081453155944922069434292787489233323186376143576120062602663395925768269815741060491908722495826399591117366432389328126908271391315352908306737936657599257316960621155530467451199934459364039131729074714859698486194693961783326442340177722352709648580426548369459693146491889358771606995116619574318081402616486760176790802526125372474189748572017292500789888612230561994944648782139118442357553648764812745385149390971711943951163084269751997988252496032068239098424707866802480964113955681501282876602605943038503145996190039816610049657620644966449567264956668361951722692276415223262493397797526360269586096087209908800049900082396419982661095617373207830341960495712786884249301740909367750593275414487117903769316745746222093788046315949738762654055553478347377839810343783555888556629404142105199406065946543311917525349403704745360914163337324610082608537360724258649212900944138685478210778736099731794232528718720417792917510217070315839882182372483360446547455016317701266084195210511723237774051254746433955524452173691350805262253183916484854266988697322543957260577575212832164456702178938635595215267158068913876072477501352957497141696377200149335125469196214702122094959750219928804261453261085233803757113497279833446580975478055518851786176204499116381250901302876959347403494101077279972098672393798180337182823111250928920379794023612515590410034387123189379964403727667488584882190871440695342872223593363830335731614834134585918866532598861277172828963565092217737420845415494565607030061275189927748261724706439639979142759965823906979251929715515635587690248514837147123865055622865894479530156477499766551030575356578308336726209133851023616426019304231840885876717765155177231224857290397652380639456584368526033118600030456636515968988641773395653180104469775861286224194377233906870084065221830026221239243063966037120757750441849711287312057413383815751212433569666432158599196297114580251785607068015424885838179925500339567937013931251549322596484863320249835522100796908463263020116950670267588483435612620793852662715892299394455260382391237437574104634404615902098531956505968468863268989244631950240765247895983104557182689199242262272203350149156761677082685049497136378552006385496234507548127966370321633816059329346153196868907516588929881609101818520866777457520718431255812747457730764401445770620191597606388458384123166066997144841643828618196139635543166775531406102346884295905648393116679711278389092553927011576492779905668478596627156078350976424738592040247254923961272174408232608633046101973479472307118176206757125340772741461726976490772694240445273259312490357553431418556813203234479344877932329538607393127749762623761579544197653537376641051314417967715613401072348431613971104148145229540473063183210180770481854267791609165873056154892060863244188122134819678411272981224963648516923489199109833511438617897373767274580862920903128787479653292978440586206105197790555686841690620809359608466780434709358123772393650693171055816454952422535679415433742503607296219677416137611661680552934912656648989234503258437810713043113188503702930770621780128806841612645224159748667103142807075460400708546270440463524110286265787707026320082590128088299575453546422352711016362148477666497762078169381041072634623000893106007160578059911441617310874600377903040938645004394334122838489334368436928140562874263334994925421589086310888328393643511907313021041952024447543951296517010914419989134085813694501088070859579604049214915991495940428940976438347121627475312644121218551105672928003022163887097928620850675801500273618442133146599182178795808242868370482281302446653380420515856579922724585527782631596517298395767994357782232600315190189112985485284326493003402283906601570931463833552483237423062701509016741310805404920266795425475136154310315205145301640250554044769059718816159184913442236479466832449014123299141166641329976006063394604366515499678495444586765426810528221460397403733242217512871341522106518579454337699276519502710104959396151424062836892568388749556904174125890344332328476827966535069880693372336526367229321489715791425111832120473240597282242636526344914765000525514410106957769920307605830353337979502340829865784030320166397816496048620323649046465004348208639323942074201440735547281214081343523849749294688365934545706328367667660849553159330818691638032540272997409574173625313918668781377783163483784678880213406631850024320008511744699401390731370950496012208546486193095240142331228596200092566521438766254989580773952071700867731700517519114116497746095559029456239241948570973980170400453346471918746966307248618720317573750245306276328041949756542025078876002577634995196886717961123049605425764647927245831949266088768948832680369664289644685787178195603173600581196734238316892573507596267695599304067611163428993577391340488180939350084187249584746924246311860197702100711322286561542314270741986572275344793946364971356046171102794922996725604195320216489179539083781380567499311834803572148907766883387019454637152328276716930283920581908369551303021183982190890657010503712764364997306671507078812630279886555114189397506728364725692426030553611565611684102432521128418428434648637080438514617185714106767922725412971982076183752229018584850479803332879222301787888432553652468301551549671711002714923754050256273555974764736792987109270325947502373276527624687140058072553287061150561246783681786584409723658430695789428031022087511275374179947533791153404055332393753151540411849194000728004092874907038020848911943605677914508196165357078785155782871881578915761477537610462198455287909885714864054580218436367695555975297776901335619636880235148020429225213914994780845967311709134926894962915667005004380194160373514347006043787082436356443529604065184881752259679822806176628962373107168455402619897122015039623016014447962582865560720960930697228559657791661403015416932132981743433992579900163286347359169356975336136917707084890395385194371476662441345395223957555173280409298178959203244737442893124846089537131284441889131712597404735215039930911204522477134447007250445195863774118370040737617625437531285541155781823653091619290930585084808487189029062474302524417755561065151332474958468152003256942497507925872894174357894195525649280651035223926492769246429399358296650241617522961917557453405381572329990196447988299260866089689850776591713669971254888593366071667806553741901869529451293147819165894326564375825007397457312776711613127067892910121756433148871304503010327757747393280157368569736682165039522837375515089524970024094348559621694476551770806103389296634025025817317897918122132811623063551982498720985288796401641959923064434284134102933570745107323595312628674120154799406878976093171258254489851002715225335743787631480717106902705740486441595555455490441114026521564275654938054220617022947391497253417955121689235312711977323669324488607933630065396409332104766015537667097769667123593121814640903216692915125660806773502720358333540420521653119873837851388363554501957566865979564832259329227752031169864626599541566845270715643218583938230675918265323184171755026272512143085312649827703585990872858769699253109989335767450943473650306150038368057160821138193578627266368951150961714020888251581082187202550142397182332442292029406520835359112626179076462818559043519186096556654832953772995902939698806723386621094978838266847507103638824248868849194643781885255711591427132666377114538591083003996625417249234795180841679903505513537578160873572704013021380859000547671365152041576293362024441699729211327282332295364702747686161826527664968401422032711803648665715985120746045456673478969651111397750319885600879185123514786892161366497016640316142120655924850009381010943915661029534970764923725206549560020925836215595406690002324609513296892056725138533189045997867327289091051167103294078415049790312206476869006191349436506954503967114808042354096533895329456837518539132265907629081716916389454686442396861702394916482160943382715596046061729789168248144069375314028473667675361258940464797902717602953667697737795149819054642436168895667897030583896413349373041096589295178894330883166430382249575657611631663023669400766114657536539180008284299796815626459225195757112677843199420497546919400093612662533083917906081418682224343884232367498861216173856489341137720067214689206197125746356906351284928787212550619586807689078918735910829407718501087389359710461022463701389456146996742424538780415950615531157602232606978750343513432579264234052786021668185356936681307196968205427353001764777427896189767530759939073598037915449698403285167343498032953548399673905259065535889968766792463905876429902829177530638547845373205708601283272196132802518780210821173414263448433433352688596863525690818797401763920598010952838054409308809532839278482439424712776997944714814117481448983930120854407030810064490710882817925132878492385661132523024562724557863809045779392233468897080443398480170630263116151645748238407447797489054606755048241060112400156321332944023633898178436260722514566601473749749042030157594370631164039259944290241557242335322416909149226831626078896824899056160596246211781121623081945596406186259451303303335973731696719153141710748765414023285255182350163394825867561268684850633099933088085011351693308403540660542251102810341519013207930780534357364748593675142106521877379545813884994206933838880842489253065283910106009459696657310067090275155355884676098320451065032378756366375448643316071033872481604844556333414323605667333403651689722072952210864960127099728460174212952065721545752395267465130199703581018916042684868545361501198296708962008656532451309801821193692114451692183822782249951193094770528494324849619989175335708240801851800697790816540600600592842718051752837880512664640609354719256817412867498507465442288906435502578948460005680001217407915507214141887332217096966110556127948827228877665527281369060015135348248145655333150569962191452782431621074723259509587260731679035183899861970940347579657611083129685150393018469583052498522970120156495406287290646393549802484203039529771434550237028843631138289038182489959682932470655447327244462934653703469327454943555983461456483679001426286001138781460072106282017507544504925286388929197115671014050046341376135191295241411899469639219523131303960961493486551414314984083830550225285020299606245490236657933366623140261869710115222174584430113952924557844044854930792266788050148293000360410313306364799024810102094126999985139346320803645370899099286610743198297224201976437475910211086254037090002336334310971040803663726142845717757089006916430308752126877866039995277444910426059941388342993241427569023505161181049920202945242923988516515011017534782278660025842618619047780507288378747912847214132622584111808882089649770572150676333072884593134980769412984181534780796915811791615958612462394948792167082391626493190022138181153016771349654135526027166201695124845377984194509208092209948354673707116623493079914925033619390256263891326129257197416395562188558185106682420830792065008058772907859140720052017726247530161464237344192911740052775073819374050820698000854691126277281789452302547376047001575721183406146252354157264345228946416849383419374805668570725775301267340097041993117816895766667842389384747101223486089468050149561627734601444936623264217096979175752181152234554283212307689722253037461362653375790268710689266639774484508168736245553846301744281315891167970837131789196481519057106299715672248548244354803772495345683819334530656895590797385568840528425530285147713595628767590187580737360283582790371237094687741690113414840148756132242142878082820863087011326389848714634744830317486230565111343845338783279280516263796783357225819882447928432873845291450513883681535097627800394053662108125266164675940437000785122426487466306726776999233567623060329351147463822983719062867425980685275429835402235442175159867047763888467428754487274871796582328063395224993485882874512437447982770020745999314228379410598778776347456443111200438852268618649405331991046765555346223508014218313004148468133443705379524220596448909730724889414269891672473046208415476187300995651881502448896917363663154358980390398580265407456903162584740771341333259836922604297465786232672147034909453839055608922765506046458983118505721986958664025603896429986398782260430899340488057727759326551700673532216091400000579254115948334858689585387477513731213259618633669642998730282972840967217736851984825563310321913027663255896096234248480571889659301113026765450614159616174748838352133480304464205665038041733619541087225021317032767580592417039737211729075809813837282913207489102170765618803792442525273834516169342915809617360627079946447012046419546307241685812258159068592284527802475738617866876616850789722954179783221924797416336683743320328284861668299863448335728931565007982130277497442052997999261731181298815100809642343601667341260362962612536742282820643372989100084059015087655077617243127266349619522769990895633077744839937987038188811380346682801143367268800792899470570038121200551296637876470804926120658687595754185542059941394108069764855992862240241175478049832003106689270319620377623142284709679848613519221014791517523817250474776353745470242726430144456314333898244698055988862571591568202028354485806167678320970592906056642273381602301898895048458413829104565275759775595614831421934599536085821007623770173944605901236345914894532803958716606582902897091773597116729122070897246063481656888735005904953799320553346293798996062252268901749517870838315206295273577091744110400028223210810739443326243233988003562418788945464966193316732408360031918095000025128311600277239640409825423378090854434946145440944564095106387970036115516311097939999478881973811282740861332998219900555189338999249797411016185572570647181396816363596608282046952209504295587561681965841690355470164369934400982055940927525561455368966224814638428871702612813200899239033335300039442794310000059687568728546198521098102217136811974709938790593690084780875812141002060742528360157585431182687007302088006749411848797501187663368293830926308821273398732059782119448089896221158309585557461933193037288296725889405368690064155272097957264733474533797869081957095032255385960077781664272625447127336331906627331621736111480547789065038878784371486100457241986638344645189195818313130389195749182475162325608833365991411348556023602550207993364288119766063176992260064726454789056028852551417763986667696225549327579532645413121406056857877334499781513278420438545360737317535695728222238024587042139417648478692307412773740470154255026681761071280806247488743791807306976819147971409344278024974577497420161353723604648724083891924911847078185246301332747336062402848489809013769477093291026510306705889772217743696533398065991394905551021128495159395213672631139905224511915983738114968271607576990900787531460142219146337802391039399875276624032300764352246713354120434761758943461100058725155362643229709240279360715440429304108706620869585139155835286606959132025559597441948909784226271485670972143062518250638933175395983100722490300881161736179127128331632410913946192228000548633766980588543906095744199926190561225046230020443915686900856527268462972991550225485129585648873980782446798302665068349220866334901242868430166835846477700396128528025435386942216606833280438570778572082534405910561077359412376972915101613941049325902886649657935045957179208869065828174750942778113494656682618733694641722966794722961436141682456478738315678368306573554993760437203220143178680732379701683060918659748380871135638862135794075179690885213882622687611351436549535600761389094780608615139440656640982392340825017645882907319507631348138305353776253752890965151655090927502098982145218224797963353140087674024769374930299272548855943371124235588617186635868587562002753857926510387849177075869299961526334558165041593607325329034154617808914980928400576295282383086121515750077685270350243792203299889735418328127041230396927121585385753975001526327482567876207638688227380108320552906460999369957470893830714358674036604879492260577475936725702566723454511505004948121270497581100846370605633724404763816143314031983423772990814850053130699692474451761894944969888868265461638718643515678079361778582255857106576220089647871631809114247817569874455420873859618579690213219618402771322505601777610212307918677699708375512362144583380521405807614698599783837897700711889614230940133826359294464885742564183965367689526489770479220162337694827328300590899748692191111960957890380080205726365491323558487360152708442855133666813076128342906748072547738911060410760885000753827795385165258263747159039803001813261311036447682811382954905576232597671563484569178258617024264580178433921256929292432414266193768872669619649548113870884089402026180799159692090028114028179362559447042032545341138660504270752059537234788808333351023497051724565917158844185394068697617553752081248198624052156891933772252372944737635619425036634541049366162855275259760152341963043148393791157980742964152457065672147588990244764743785860550310753143895976828753056150093704289819590753208804822044153394781029201210558506482575174203210969462922482833399439559887512997797404903151506738101218591349977786460628518593937121601365902519820355037711119288415733812676336435509531948290892457972481123859017868458025580788850491476128921168836390876712552413153494381671608824077714729438652501016341152334471127403388983469675406800351657383062109700525590553413891777859100570405324319414980348653637489170453942137469656151342112824697786208931828565287540343630320567304436595581441152644245608051750460448491623723999559570530011706184993641563366194544854543743519093850045309376018076589529528474660123146909470587856730242767948488838859117799273170121092410478869271262679355980710224597024950537810777171530837847818218778708822820318634918165566996944984898072849054381351865738090218347685869692369566157726648526887419220606384291624314084095813108988047317543181168858567969805538563871358147890291744269359889406045430615148287314077027010251831044736357731635410304374488922377951421566046893388535586578412268644660597841884874460431795063513423827737475153401761399393916968366106372366117693235142345085485084069063215393140760523096551421723298074428749198055323400390170596538297842096940212686575425097174979492932276357728270925597828029513752781665770679182646968565665326254973323843365431517651984303832130140600240152598391328394698754768414889735802912561160387797554716104389177435416867407369092486905453287029652680572748880604888819384524936607840874894714106998518654333047255929422858990372388266645559904855869499977117338668848846853195769359750297289665557612447489145040769830931043781442252855500201959699388028240325551906904871130157411068326717226741406643320585550197625454649828004747492547145453193488652352582569406568481047635139006936203041519363050147503199606011914569509833073578557491543967184226979198247232483671167078330897086806361728895452993762439792233312816760922277912085410259164635029796674917696899847102101420516962628681124809237044638252571805427359080482148519388657773382580022013675001286174293122267643358484411361136440530672802056435163551275801443231855098973951961378859927316867105804273424894496887103891314549334469815858504981988868245607293548819206223263961147785402391065922017252009091351983068173833073397423343995596244975400695328290131114692719220094914283364307514495001619103473646823620767517999495226853638675352424319346106694682233897643755670242744784692043044226440117946455885621256929449083055594789848522140398237548214135285099636404873367594925795907873288958567524660386285433763794940237172043473517409853463996048626584241712215150194406344647682943438702108204908315471215900692406974031079959171696680801233803140420483709998387223288301582901553631531516733727986126665190043783583290982056133386611669895790170797615984290985752501927088305743470979575581614613015551451802019292386874424569645167015882092605741614523150144618394759541152605755489405877008812475690472514757752873195513640321782378528042393636768545168516407769023882395782324231825267119833150102337964603171252506980007729689697084805091692258950335631272920422825362538599374532984007535936196585801797519610090009588231583369214734906100746182134571731559811107987171763457188354655813410786995832952459437813763314554714863621587843657791979231915847590706810286647243502250245612849534850060545587907767506245250849457204149691695624539031397799936013991029480418469357873556576696383620093044885417012989717360171026865766278816231814232802336181992126546544003404862412953233120513732618297932080492671339615343389059204871623529625834653029518674202280921764844280105893948810072782302973480245299727072352343881688520379384369650634692086663478416430447688403264228717349250818278198434962754371585769397900299814330860379424299882465923248664154624039026136341934367311581652092502383742690169163199198750530824855514978947248765935562263279316233014787179369745860787099301175766922451772029299618492508248816286105614963996960169571548704151377630709547256337122699424449611282207323098971809532466732378469131198855105458303127754250802309893673411590035873931158959643220243063683963267889517595928004779045380334239861670567734523620920011497949005232726904657742762161958370748009913691054642589757852610702301547107360920523897304659263013764296020717612404351908203190188368443893342193391847722088571755629420349573819247050007417522429706037579277905847758719795079706367678550867754186653077996322293437831145134776510427456738634901901504837039873023802158892973307992909247479250540239374543122587584783026554564231017920040662141138509904333532375269599611921253478730546007771471282099616871957156787003977296089335643594636062827562618692933312687566170934767485932874998431870895642336805057416520666167368406796934185435047948137182506297735734282970115988500452223529294842432970011987981833752859694243826922559386091396911445876918846953233319321533342909565908280509550234580311992380689921053336309640245446278826296420255173843413224052272881001558800931166244499650924391289168521579139484207861042007320668108659687105021778757641401405535494874671885857734062239934850781833758565833512481535811652228532369594437805472589849175081384961741107769757595654406920109760184644734222934161327752585917260125992972501489045693721189224741768810400407898811024019550420146059180634639202144601078998476871157413220756067396773777304938742319033074599983589106914723631345486292860367642643630633934013914617873546907328863894497623452822531233771469139635087638691386163559942201282929596287692196779676493081800508971635449297697535913265658496017460840526446031510620548828295620874598787899059634790903850886572611861468715215992700952654927249164083844154769585471053923569655875944996350988605467236838676364063436789140806032250978860398221988498878337722530731581776614013119215578927857898447653153169249263015258405307216529514561849768119083587296855075275911390026498958856873609524346213630429504551601030211625308106765524466196882632861222500241204044271098105770213551753271463087998020435366631909961479522658871956967179507777271337061279119215424775342966527863137777477002469525851076514564517191612656407573744903319133810797753540912923708957507359769020554383868094770568205497589943655800339888210597789086649928286051761562777815890624596963024319547878816910921689352128951434079214471053208250903964234912957624154399448505688882395069402487509318202503883069235220335075626519193142138450715059729513859573287973280517660794727706156650025225741989618410386670318664205385683767728402114915471133672068327296950518979202392435580973784488881433087981582753131197502735778945758847587745035759911347469488433643841703897918360274864772728840279180790593368778010514261149351128848220205694032717277918201999346934953702074445645016322612380986557368201964200555412510144678078534753934465236971065015615582250990411228605786616278065744602268951402373202927120578939779054022256643365569515844938173833721616397667863335487316774368072226207092185466927513402861645983859602270188697187227497553960978695977732138964119853009980365301867832134536213715744057685279793690766961796371804903453974720880526796191960918933060894896376695647373948794459201545810601157376721600665136734839908302988776969065900821865747927233962555002202894725370853063805816789514377077882720843152703700901495295769196202203638981213953095739983994870192132834155626760997498851322214429008334712851943041010701602920108440791104540358485226322352618393535221571063254911600108855277104579592726845042058611824236271081491584539098419709512170261991088552645660246078074841641167827573274745426678780237756494147218419968910057414936732872653859704798586009754868507851160567065759489432322375270568268117731399203219360856289016521597356588496987841410059741160244516761191199528953421501254486106364723551262555928683003324367697812273032580077850594926438664029692410250286173923504781119250711711321598611353429774902488657838844733999405426655354547143667983835760667760392736750687508549688194734147373959274132944612223884523551822903743978058137516971491521051995270735303086630499479584130328837645804192288692463027607989067657153910564220244788318031008006337505345450330874993220795571383213365650183537105096180847286212100408934588715502032373060831323266715872809066771731968106799281099454074996351390914394184869647492318920534144241167632079321748082559114717908890395342181014860483315305755263168451362088719622969669537661854887852103310384092059152894533040569069718267799314660623253854523971897556149425390931222293286462068046832426467600048700272564742244431991368948282945850552032905781582343935861371108169291290148780053933006986968420498722340807890559278303558426736787726476416104481140457855368204643959137901797855030792978491369663563629714045949918714928378483396852115013455255275024995755497371326102774107619414552713305306741209126519737637089386526128312696569473083343969419636458215952416880667905893115997073166026403473935059564507577602258499565087637338403446247339668595171018564325190128500604522015226034749401114293143483797769087476209445869808696091048251969382217037252070414249429769798657211375950711204887937121561792816868745229282727017206879919470965666647305891577279050399272078811860201640962731308195337712508424712508844870290682335720125767210061893586043481083786120950233454762445671080466431341651583174930233873433935421875302824197742595858238340995992536437799346063262780430905332287422334960346284824939784316685600569838148817225119732224848453603984828896264183774046079076379988792230628292968443399921252340072866055751345166433851914283705278843137526612582406037563005060059599568478344536179873816059260348582609829064719119661317504474993345705820175445502306218524014861011624835836563274078484703338780121978542286157795564178035058987175280640140317263520820947047188546275248281299544590613710726411284932921607723388060840609917251979190362162351292715124427395714362228485676097486386323641004127930624690628529233562396606599647438253841348008541895996261779680819721447145033772510391071465401195794223618131059212542519151350643828043574607462199568941418901089719338296647676005058529827210756926874696017554578084264552549403981304109082802147825177355403492002052852331428029280961256627160586832756101790805363602640373028423788005578164484421957230059844355440120810576713037913531812700253394552473449204226972561835118981607508729937608613053528144679999822756150671903977427843614241278202989735088733185405075252568362369101773698384737658061494503482733664459596589296279541150097106589954943583774204653163136782493908220869038618884710956821270397790012507333083739499524272932102917038562146633914856722885671311659395148009842844352594069376414489558034442146355935864609965877230320893962124786643383326700142892824284853974115302689976115606330709162228641458492400330575276441903947036154340266235624553104965351341732827605500578726820131432143794004816490646032022347963507109565524307184310304309983023090771529038989993810185775472128080843141267176995254285257927865029113271995873783667447683084338800315947687685690604423482183949395673228846141331918167108611373350642580081942621973189867404757591264576591439448380141618320689437874729608524844777264072781027598535833468806675862626088822154647634486174148717180774702201695669681958937723512236342319138331179269813736357144113257967274847631895786331532299988937223540204264801756481489521667161010646312276395050747881165109059511722409410216560650095008327614175825582722005851774722697982034752016211519434046144043523767079458562208783623070489626422857425610339604656790884340992448808529411477636850384826245705567405726856029078645693039811735493726696843687398869225255569418563887885547610864526714120756864034197894803824898852597376557742827499544896559322872652842398952737838203137164590311267224022365010388861914915635570201691282398130347683605467853102411703776488606130934876402328962604460654889758607931331859659816575960979049467297674775180726952861596781181003656205500586592590152719184706332068681045629623606996667981939703376359336029532882963861576201370148191773552078814488145846137356645673549749738734889470898557204913080405836339059231705037715823500538403351533881908244244013543628186504640518696858918961924784086911675682053817183632321530864176202415066302444657362852079707777411479820217613645578102178813163672167811333366340286237183876630080082706317598813310691283488496225525385156175636239342475937972848855377373190088003368820486747329678422565560911443264757282287019146935604436502840836288689065669401137460103475459000792886991215193316204002717660308058249225325364081062174318330908135028967409062070477132152329405828200875017624932982533826999804100696249586327679142928376067148154374686759774453655191906823021689992488491794651048189252536369317049517683877269134330397896723884164357790345027767353039713063297267175633913567675882824373821235513708080225603252513851119184416864665966692358846378590689617625919750994995398445509542438693237886522505471124346068187464031424172305528592424455380518958870518862890889180569879506351968824506527660121969331164813950819424420549698912051519850323061546399133346259524236606361266269407768993490165854451799030644103807499304747588705466106121596476386745482730452668117512338343360731533616395449074073476113275512377844784954665370692250295130630464922399550183684324081163195484741855065189840421717795287987005605139666074795931904224180131259200626224138293244701899843569657263958781195972160480294170444095721621333705141297246852236883763226549236605796081314989179185517027330698782424170337323359154207725542589224345180565982499200124545926302839107593260217957620243587223837558493293640666781464448490811279112413085189617661896409288800237211339568893982762529509701921227496754240039148453115598883134310950368281102369202630745054454393954626607301029634373317128673198573669754786556538781664136705295131087778673252345864644048699335538507727390222980960736213995603870611093555905380478458896986716356480966959079434530870345383815682892137743047436438269512470576777326273523385320148993357890358219470804547120818602819094076812899226370820205177435367232795913578833825728154474641330807174056872428846115301093956906673007799275747467699639464082702402068862275122007945605916704067527651472672299010170435519497306282717628267464649566541013688415746169649502605222668775440451662316078635738429827608030886428969312792958475141629806084582414005301001407537083905239796738600649604668111739012331347531027272845349037534256383979540585984439038236113735285787432027806569698911011192906536853098126750478499170291869854169147161139141191208760078585391210097759907403076650481847718085090543356185811897543673037244918453698539164052820565130449898963396604109160972111211372490395272635886889914249978857611025919659772642514292106511238962259650310531030168858467167851873264133564877223780062639927388422339733516153450857283611552528532844730396577083183024827742596584028282564518734345273415418153139208293828006413061462088726120760970986753885198152688686940015756697039359123441416378092162500427705319013303392051863260101092203511707448813610043390327771988603520171403192854104682563499950926893136669367693483465321812385048406425636839709153276477041724534608138139348604466576263008170475307182406373810406241970702663810007154815932763606538508711425141799779521895543590642129520749582430073254476909860904528854045808873180292382449679073578806706568914068172722188476388430892008797064980201426054415154622138672675487591309043813501000339088811396839115667375103763380246395351887444793802574212447872747765078815570233816816808783791595254214257540903155454758562491258188355085390900650237085053604627189124983086891791736873431737640497923765367369625754993562226790222734942987914601666937059038318835318848220655918704126871376938834533326386240690031309004197978205434137867872131704738455985389231277499731422562010599091323420671617985976975400476810940144673324775250185928877994438216114723504516113713363585376102549613577036185759927815819611196380905146467561041516357819014133166428244937145397464778583955868455031388865319057534397566227050613069610392089306498662887289513935277507589334934641290199374302322635456531463836460004345748458459022288403250687341882856740649490652334559518428236389098548025429996594744246300433266281551465794321921146416176557795530610353792037008523883882055142178280386749411414525294232873008865071549190281231582970163090026856944709533010194198645050951616065780895883900145718222799750988225789416577374935172896814433891298441530253606517565937739689764719668324355668324819298735376532296567583321722364495938592878349555995124909771294364742132332110090502727992861424559412688549032479165436638626701560035325083735234986024500262624754527287568692523237831367252284507574562381745022907918360493842839921606865909454427706353345651397884211780890640998557664863344141682989235274779120108483011899296896245427914657940881138367455206224653177935877430776745674809662832372738427936041998644020056144562391664424912959980489135608866333512291177289938720485311498318882777556781989129191035908253475361543679880001859898183721576677739806588224605100437922759474242088782908134786617238227592396689210993518064173733245770131112779278073874996839227154383848072943715811520718404787692031064186090031354016388282416961839334748081604452480616615751213028429365997665607851207309656306893922507581312420226016855061478005227598898312410388885967678945751069167435848028286438613127529733956805570150065319972467833430761895444312808840302891074129948737274360671257435608978189921612850149277311357368858296032520455168521589323943896514342208285197412149303188375715986202651692927550982347531395838817615159765885260810023126815309300084577955049812449933670777704077899355468325371039989533802196428276404117827848896746562772408006682959820422377827402352858859157947444531697574609362516458591864685301721236705538594751187174671759461037562549231867897756945970192995800053145441003413938758126395556138729988815248035131091616370626418473404156494658399260774416854438347106478333632334622271397396445006995116005497809287389336957681068556676971839778698584528763595545105728413387215325273260833405909065177975182273431795197715233396873287350253957728490836864995714431424597292662726557644360486562668323291841949947566672335510817132859906872081720443018616340934759777875290792861550226208212223135951800424789921155642193111559297048891265374221692825470078406560147203386251812370751890223887378493060496783062252456689826613047911968289860991734048704513180023060037961001084462600994615870113757146892383909596344316904913988047218398709114006203555270015811394786004870625286565494811802937084543921415653486682231967708742697300842733731759439630462346407020770879031952339552439302289548954325598914463166735580061373549772018263980905382306364525529790685526940603820786977459203552908673296227564687150806445397557781124656769568980259028846355757586989252856250831271453346260028177468709611746407927003556266282820983169819648359557771207647384476398866066746556754339843507420217968191950507580251911257499117434016159843571179661536567487999322443312769028091601446605824237576263771071200888329230358317042527544987822328772309853742926420120870853691776469930655688283292975501847125005117837501633468926135898975194423791685097682757293029225076916975262425832286068635944310586192952948274785804170462462441580981150406470127241990026032836299148608231832423945584492480992674507082586240447799930779390752727307201311353208722726108610139321284952834540735140427994810542068992142965316943263373070194177684461692925224088314825387917068692281396954850459974325710240013192235926001049781094306803720064992845810245350211890481353018957971265018576945398960812755531064394625810586513646603744025314081235808537559767044610004463280354247199898396227093324075609037219774001958167325330720604592821130117833293757067980402595715749036971108624009621665545790472805403149974758425075998838902655992296043421855546935032833887631576457143392240143642988897395542078388341655101603289739585743139042958165675951428618351423011703162408579945257434969821805386223477773842434673693993515944185115303219967292028177120918709372509680020498804918956942614269130802491341751899110424307446842057425666396500367050821038098304129607126312136590428127633924347296645861327117720206706883240677421661866595685644809603565139588438088071131345876768909088023460236047729443964972733314685729957569483285168979135629883516097011337383342625983357240640506359442102245127426507631587499527934887490118223999378923802814658624399479494300398092028016804717723052893960754356459829392874340967879427935159281821737489604086557878185689780390572809010485902568081701294742961151758096175938715835989420892687962052243163531775340405998380365767880426697154706476997424995431716127157519303874076335623936411846147304946696733343618161895049327784896366849032247279677945716095978899746033502709165007043384244774277316492483474771382111868648349034604035914497364497645322546405336922597925175197040080011198281979560940488733594457043730181116244772202607967242064936248766443111100509573281085711129622302915560107106047961721048680155503211279836665995550071688593558853822482255370669164809642578429739461474519731900828105246329962086422473822106676057544229992658357142264404000028673710124092990602434101854663430245169951775026109933110203680769755236203516396357098209977510298928342849212331352576296367831625947491803768641818764880820757035778458643537189678883255690082173148753448336970316001716556631232435841029768391086574893872536324964128388711470959276280041744746917386581800630786482347084470171308466826443208235171579135899997248527015684497609950714523230841662807898789608433486161021302075543484482488364030000657075491237640462511125428345023789558619646993662515497132856992245231068223658249315508805557961919222195831986536284708502594526253414373380411988194308372039658814494905397967908500214978333795821177521530044898335838683669424255622023218166158072484890486938921950919050376104422975853573221756739770103977129257554212751995592650819006090668441559028727380243572833931058334025190090683109264346620471392390017086341979466883757602820935784727816641031604954180359317104183008535549318190726165457358668750221741245606772671588074827301154078937763493883157782669133852853820259467776811236925644721172933781623716871720584589207659848808866361693163042026929986890883599212796488968217710735105078389246612100474285141649741166236548124143475124315636118062185494569518925677874147754651671303719933541969058444459172675980614259341983433900115657762648180424326468513183893201330486570670534083270571783722312698603136396974600581675455891620815028979149841114218453547158364917149789098533837636177697857562284759325376940804346839036112334305510548727408759146506786630586934821562730147232996632394084592390714591194860424855052249566587974982344475751527717949147037428823600428443756805429779544165813561571762917079231442708089379719090177233133900678762039428208052273571241888011666442310776308918736722566451177162760069242520356808660562147369459668010552875216305446752162159292706480854843450774008224408154254364453357904929461119252466558153648746022471010495595706610257521313149746435661009635172587420339662495674646992865873414119768260495117124899403489161407481380642862690218578237216954336782640746252264700813933768678864733295892018360158865244254880278434600890049857185590436720729228871924315568977431860117910194212902221439852940332773068649137574764613487300718012148039698572559226087203213106092933631232372084661126877619775059689755637675035563644193155755783907628535849632845401659616123918666869867468950905991553130050466592517425452845514869383589878424227998405833946574307513436852153448991716054594001999674229063331091592063839697368012251299665627640947058048566162958350490749990618977070158914517820348525787662902495145112951438729931912602481712274338486521043025694266876086749371566546616815060079158971437355517421898949157127562478190542893330693984279232368920669938102628833296983503204613990079196847265936189782706753434099372721851993059088000487172911729264186677465027107196487781847677442804539577558586611560596679254400178879274125415981096021722726125904224557145294587390747646941544595825603907630283986348471673523716390972923869487441891782703642284899679216719539925920717790245095208780854403244793346081055508783226574640149061361043802461014338675109326957916948982657378672043807672535062021577141816956287210143094456334805566301145718032126986527016739025129086042708175915229178773020920058033756423061344767087703389287968356432387930735513032802794312560529249090587544761339470357787706584993591890121168676631730076920234141265829352853835520047217301141731306905691776810647876667206519613528200038885624797759879823385772185346536030571473907962199585410076989287906670378739502181569015351983604492640312644071881822874389851447936235203016622524767559955110551649385715216502705527313592045694939094876760050129976266387207487379023098550136897193099442907607137811471351125228833117074815140500314197009956969301261174274776972402661689169478006687472602819882631884609719264907130198915112534715865989664666722370590697843961536711997576202615978257865752756479685842707427621894503650886199181879220524642454605709790541298318102830581600372005087690019522479577923239471607074683805598395560787507616172047336741804870836379911465801042784557510103798207450186110388668954255820946657755116521953109561017377989866616550067831762148935279845832279593531010572539036359476898088452449348899605706999078609623461367664623020546764987122013551162388552212058957045686991575857193156739893347552305430414559310878050218593354530941741145263099751593735201237006002342825823465219564035095479711697020879910787016127825014333202963319257946208767821643202822218746374175369970942266966666454850169394506393588062336856163825951758074776319595286733289697450201323294972802350549020753338010397067678517360074208781624914209511825244144352779981362029130073283566899943682542348929233690310875214898044376593308926833541046782565690703237515913699755419821977892147316447791301580884053296928812941997551403699694159397046194923252879436744071745282357534649509875792749821871505944855510570708233598544543078439482774533467674548955896329808737829847643473235628515515186129000665172741906128867784032218893590491769440769503841141338115391083787874584384624569980612942675331069329148300033446626960009360673912734998407558542790687907591258958656194390465238915650486447263537439904754520253711973850366656919623238482779489072989291759891639060178574159564254822364161247019839876421108066182174077380781805378573082427071758282700135402175656824518109645020873327429441050295682153785003428013603311370620047211827579983827564399953824345126560023691447579262027320924393668826076806600444984135713820390343213270362937340233531541383448185079706651948877661872240996560217298681274146593116610634240003018444540597375197219384230168831474408585073388576164020251040821195993545572328494804227351034585846104555095945674259692251600630896087682243819223279629182241042551957794473982384015290543865187355884034637137563925761250535858925440168075473286222642011430760908798137978107671270107899776856990479379446486064735734259779552852696711916625784548803145943558386229037575938545479306407941989782582686157077698895465223485238775415058059427116830465504190868348240695036614799261682986892923939735802047436694361096736958506770077831718817019648433650257474607430236724736216225019326102343581436273747522798798277846837241281083935898872291113655860774475746105972736683533600809527754307781119120397392199920140451847718945767784620546510605465748233570560709667778665922543029462456287496036400717333326756068015764881752998731280536988211000211909242151153829845320779203577673871209212749064138981363728890362133015888976189397122434328442202852176707115644671841997615011895129110125679027169053621239146000130147058145508091021294067423944283145590868883545203645220739312166910823182669616971199228594984274206065244023388249853901346992772666895662140113903810046529756542274433256417767419490501855200218157720223530767034122385649465139916649005992190590456528973341999181460670233813075908972940903146776145479236650483430591622588713480110052933865674032522898059020249384782045658894621096100454778250355680000814131500411090136688555140437960547069947581699241176931103970414496158348193872416458927464822887489268984966626460370476136456871275648112318003126271966993513929437557477441044743655062129477365213632045383461941605993469831651092041870733685056133818649004303939184923982434120549588289689573647829510820644346074903660738841045255380778679742946072708854066427245379790283423504418777867097198577013940378154306392568175737601869756179112543311994608018380189977432963564522222839765818433612076783995696779944612689796108543394514070402801732732909986360302205943536333591221313349903737449240230759751331806645742121627556207680296547880703677472497911820291834947427470009780360927175161309281864288300964750886370048453428908610006921945783738103630384729161254542031284070694550438236551263274295447757155071911496022531752719761832488570205747920608513158512107486485632871523675792608418786303474069607969173899969869257688972300923420433032017798840770724253604809481530975427250918395293420083286173659063899520551487439757170696408548897051234834398515641459452171555758700279040350898036986675656436109897827136617056343564359148761236009248777568429273936126607983559440396072166846892049278713811159210932841528925347053620810019427121322446586169121524021507928078651609472475774713063548011667507156256838272542655674218478256608334778562054176913789948812315691690560733881142861557248709637326276065152136563657086894701887308788117051845946805305658278700671822521987333593186346712060723988485680044431721486435767565184740641452075525213506482704350576120017396290644234460254098099032786579354205900353139496135432466292613294336165566368846102678573738622090089838945915463031957068376807981306568543669865160830681975245173058106695747385849684974610044497223366787521969984213885383248498391425106625255352700943552497903884424221455738164648140025018265952447540403749801368740294932745975314023700961271350650108549393751612168441066860225398198795709238269919542423488359004259053095469648346167949753654769940319694480326562731798109332466905564048122611354394495618254481749128643694244800547519899851795670089863692741533739086995716887620580085343023366386077562124195250330430484157244325231607482756583336764581410902930653871451715178005071984665142606653167470154216507093823988969211088954288085574354093608026855657380747852495151217652683872528730814630258019344158640835201411284095219469447390872775697468630309990585709819855331825215236497324747270634793506372111215470137106906494138783687863014444498259189289350813794386270352618570800692927765018105763005631575169967310591681916033023141523786255972453396091099659963035891264906214544529917424008384188061789958230187390777638050401628522630666394745430500165392640920827159573195583769218611517217581431572298216221470102607207106618361369119028565139479724175932005786388318936329841767083104446419070714032535579321306533937181193903916307066701290423804045510842242890108166757253270677334924430421648317630351806076714948270628440650280806899141904127230043141575570755671233631061345884844710160252657980339592748508666203660394287975857388851132430268282370824475099169892045825468171773338330177594590653684204874924064636574797801242868002942270355405201512171920938014918150458626270122188565039118759788069726701859668300136961788283765249998735425946027072892824413141743943007588455002167480952615581094688350491347591428429335757583532402321625013615002300869750365824790399944709492861079182941604446070531422271899181168285711320293836869140858152499989080155700608958630979562314188499212393562171013642772429263829830299426366302365897092124911949663596049227542925860686305201980437276109140291344023836126166171828615049361529201826798280605064740133307344052706254598993902160615426550823306738609333475286811791959038982200694946889048454708824654030302176533541522545179478712568665034670769116186285542767629472068548850986199417729375203613250639976880150666942159592997885839914654187768947761926687432101409201061332255156369396751635156937385626508313069469415217832750184680314491760050703856355158205607720288010311146242333166016464994684386417684041507080711846902076060587839789332978484646772024714309195540352169676477469234978262774681278734082726942417679389368689301112212604550769402281037510723571610391765762941011998030323809710158909756319460292061598460262518111453135339741774964272139685149514073910892974303417280202795749117815780765103796962755445773550250694973396175725094556805423608222964940209568187751152079552851147968742224267573770321748031616440034574947492897737813682431943431245018739210269245286340837843400983109710224496412010936782073511632599601924940749507002649382371227520594412057461725920712925469875297355548197349963949865528618339299189785610830488667563949628126888280368176300087545158796002732668129137485105288678019174082704958347079915453637760561670985145015521047796029805909187222612693874958861947071443899545289649047617363422930893227777434479418916293569337006213984768748995711086527991533276875082701475525091508236622572222581097118486791849256975922305648914832486244912203245768916004522872414936683683872919550326615822211812906834723098043195928650484148127533944993771983770350999690895391308200948965818120788223537322669828500397347728146335855625211151536560092734292966531090755580314242816346082772940508739334408168712972089781935558935499602822520811988235921596443116636046359502270360404909726694896019434713901463743172030839930144882497902428762963470230800569515428930410427048690235627204267351309543153233630105411257790791427737494225997622038233984616517964937703590508313257404948303716791307402857988665362922926509034296768085078514381167959062972917448926647803948942708268640640485409159653800789806479034436799275112288321915523689263974725240409371581617611411019630430667594415182929750137679179325034224713860868321486834358804597805364149591865382319922317821974224606647970219084629976448282231735140443897668233261709815327607328322227012467370858566003292882545559229736551593182103545295169963971315846642284158862023507138617489460107225533385839191744648133033417745071308442424742905575642724005576931120237553571371245388404966496519698730496322520530685405020943894254174779940542681619901441014332165070793321356139894991471064578805607364790949627205578983522992626222040697442539180699309024851720351478591941482139958287084206606725944775095703905841236704792958893103572675317984381759681714603733190298563004312838682873199843052626859852921631423861993820868075624042467484740929935133975723110583664808390574385743797688982150220834327014510916343541947414233327396205197718320048865896283581083916578428584559241369191475771759932949208976765242762637504631299205256643116399784129598412118240013384993345474964958137031848820913084116846189172471198448510881184420360164747891906065455766621442947822015490672378741676269996072923262924786457267915780149895195235435747808534463178346368696298202380413489042093719632861483680433028178372511227082276834696580838588787540977141390375431856880586726000360474511321703517775782505738092957053647947737005962730795828578748177840026234250017672569981633536987351497352938995549356551229649502625556988709205200604812550097109774746279001777571772537489026409160463944814144598185662235243010454901469375047408242659730574387171055885313991338159490893764141418018427925273882056383364573909034190997743148865864638979856506158069293779456343161045645640688589791681472836293733622724626669998236973286113448582144753182945914637980228551270296415647434889823520567064020177818189808768034532539207469750417221969571904757311174890942974622797320062532130061252329164207161394924843567966436161305431387480553073095242804549047784991288498322613949429331319806308874439482017464210319320934453082532894072122041533471076072234937802977613020175046944794594726674897878065214497866844552822920178453482697702664663816146889306945231471393256260940588285120792669016240990884587483239271933984285663638011337608992389171922155159822089327129526592271510610342730577403254184943396685999796649290153095099242978999846109220828658791767497603067783883058449715928173948358943693256529252307917634420982246825126201561978181421228043621745615137136756009196663985522342513496392346474545654909695232560069503170965236820591201322663961925387443740025569664853057269181409521123614452706029267189050055734487747529398520744140137224464528462005844731738430665509988480927736928402724463817196160467567291050758946350495133973301649055730958662538032364365512182002154105055576872950387035603665473557552353519796654516071589475570157509258178544452698642100237120653321919063921498299424244737554296384448420823567642741073025819717481956675131390739112332524615236644267610081490729687158531804706712529493515466256718798659321042186047381888248315645697945300199221982552902723709877678121377941458822780645346915632692326601776988017114839519925497686175639380859605391702895246800313472007915384454146754886570330970912992261812701305412647227984631016801501909970384752963759893200888045400606581400818406693624238574554213546741370497976400771634062622007232750403185100979275151096806838595631480296816599533024007552422120958657572317229855249937359052733836957654494995093732015556730925264887219489448228703169710393747192094814394497926095177153286691138467748812860453222026794128500774025823476771151259094661805067716387175344744367444573227747285027092273298794567785949174719863240265928402641505132456556585008501590796408988419017698954015719310526871917489746548297941293067209360649862131502393059001281172324923498834717698480752221155118323924907783201936164833062626748453517634329196084047782837282053853418943115660223034713332229292203776807623637063486183747983096211878568240583052048644402890567490652083825757222882903812358978555932040512921199502989345210602279780755390676518272193002351718452051442529547315374524440928768018560858916874501413063573091051157059532249759134213543671201146479841539834039716108341154417999864324136472677143965764703348948072654732686227459921411755927772325123353113583729811393222717201754047668021525775764265221259639120477934938636673362897674357992873655282108785297067792388628791377372404487892408206708424687568595024896541439538004574920863677965861300192361253692133374496104606107863164669639098213368416562756080419846246233788031740376021487098757340207589693360433914964115907850386005457421743760281857261458384086543181421969873497560903448208302318606212305649029744840737178683936500786237360815138951007232966980367902244982506249648337057585260147905279551814199169842092588862260087003660929124285749306234227612374102867366897912830987511659001926269144956169993789532067961468794810958586397296153598938520756385433490663356590676061621566140454008353738474414950592865637220971730935927890673021042146610495797200637365172798816546063680639910538835994505126194407228706182504446522591066836687312934183853588184661033471217344665350386305719572265661459470368631640286271369413275285929403741548272832244031068036219680752356184274341469052435583959955949142208267154550895835727664537626386232042051954559730288861756871959470388889817810594538872980050277079406332762447010012308485493829060874067209177004292724007398182727152381055108779899052783616145310834917649342054757826542208951477670297646668613912852250240566718652184928677460475818630904739523852389956030263069281316359699201342638892932906800942282154820069861494352703713049875685607181759416312580967134371095783101265795485096272678317331040229112467400440580936317024084970591347533494110100455610941362256913968041711246728351275693083250343704469280821741314119995381108196819260273074892137909686353187745232306479209421629402843330948279393809193932432440038206969995366583715241770935310210235969874393830436547595081092694373936520737334726218435532247499415944458871833245354708504234671049504581676047628941194530617018400976442888500128472127444168291041269796938303541233278105484952877720772483674925203684438696370538541973310133130832233633258799973281501353530307307029449971369333555228970001982013764760782280358046683453285709804094667126651368926205060193110348353123058437617134134619978453973090434554993982588669634735584071620745299541272529552113743392601709710449202314428735506412125299704816488908131357990442465085909688722547884241107341476437357792359695214306216383050019704252266509439181158451059365283622854635110250290705259847875780631346958015369483450909089586983088706033340494579224446777413327201890653846622966168636428734942113282189249691067329688255239224536378879043347036117333726110467222453695306254471484612552089655073786516477208080106020023475867651658782571309796113068779339941807493853810376807542672037006833845087113634171123283925700190632586240854522753600931709842417723619516483522785578184268957287875273609601937982182501933141857199823761184580282654438114223131900821159104337616904631300653308774755185307208461499384054753106564432328628620505143009711870189006830683389238837321968987201892274109506440506825019883114594023215477085238199266276399428660352589464953050415342168184651481643512003265158807689624284152582519475813016683595870972514828396050897311945055139730119242379105333930537046125095601050856930935645122534782370995110045825316369943580251639273354146252997169409874179644353651326392747191649941201401380345535106321122024033118401617522947157321525124043736722788366664149131254733269104487668180406024403141814570007393309196752968315453356657201291882612326310505745810283477774697969717286935493287504082400320364185980610665757616781585822087918217653134306803144239311036272701488516620373577908397577927946352519917044267808311067714804836423734165860245144140805000266841432647816860117283263850019439965282189241895497173499441838333848904256750900442314425977475288505476353575569153543421878437225877593625009812259839582115567763842565366523242525641686482757422421966262961879020338395114094529690800577429875939788000082804426036718194574918434959814034163367015822442422519061639685294415451811711292206776981576113050676675332310602946186728397916505703259797497238840216023339696341737158815446592975035632993503807064668395753870539032016044378088037716765142348876518701330470685675562059792695076441050457434254289905208682514492859698019409458956085188399432691904160607548044779078481715021530561888113636071995214202136435255655186173839443199908923346453692066094237279051289766104836929849773979452519736412384796454805368369553163239980326519443117849678262444516663670145343462946705853680808027002423905223301846921023375146607999661290641887452526157097591887997825646620311321763151653752314828064149138760680473697251840263149109487312772250866149821174300361386367154558918634521636677735639135336367367439991938171217263143284366093599542663063727830359681421933935865077946271814562170180368786866624067017270947153549825932309753876888262787066344083108927871372551507950129174397408068448358253621987256825693785304628394200781805990748911197768618710347125392670470392215369686391021264340345331397915107555604312757841822305440819821888495304794633741783664899845101831044208487331057697939812181165235855219942511694563646887161067576541909886183757147828823774741015849677944053457236621311734243809704408919968371376580913419800510308898422807274062405438231325497688059581847822250288216462085207440442941047304416692212995480942767902948532096969746345215682883397246014768479599656881588062161006165548253936561602641005040958366428494254161901077085248633910239315991839034264522907206840161641810277879648319384804997671456041424582382361831397840818138687502958649688481552869503165437133961354811465808546295100669229638215733293482594464439617028829002893556174725218404742237073182691117789674964906038329913930901991766143544326193518138456751020795291213816794551837006878389992231724002925370636473343322036445337058036915627394378125333088041064382089363003782089395523123381673642121112870541975697196769843862263260408283309400801935026027770712043645674723597460713010534242448608035777491608015788302066124903941719704950091430534220076125729305684008936858109809898142228729376065377006398284735884024107490855569679372220080402759623397834906789466438356127589284544214958332999473341221192712364468990272443020118184539175361174392641600291266913957592838449006020526228142998503316496082992987040466115900001958988618526676849292679203722327678845843983553782441176288989111526831331243429617207210242283630906430299906600967247517398309531492243526747516684561379401178879393141585929379596544339003821956417704808752629227576763998713198693045233033778649762436935786949356165115961817958967322615412653762694029460560136890092121475677620924083072936149364251270289978058469111109411867294042549784850270353134092687402295756679798610131903547619506614123369750021266902466011005354858787632642305429558624070003169126186380764102122668958671406934278454350146412780767697338700989151699002821551936098414253964384232232589640910818936241205578207351258114476850351006971393486228023147077189239303176789454678590477890965703515047941038478851611360768556859186016569695862829427870853186841913665437163640222702064497915490340950335870573150455918988558646337259877857466095734139053662393654769695354446449127398414695082046195848013735808565769680513391411461923266235773378211578495621381622476796206008422287588729680762029477009652000042127115480354417746385096391317350993067800107933471606320545607371154716029933807575444472140113301805164532841022116428096601979229438669015505763296270342042989259985908679641866593679859572480906635766312471598642917607637171599444469109339049687621688456644926705867845340010900537040610705070723117815258955727298718675389642983872986987533053639561751424957643528025108706901196872241612164379436253777173453740544702648904850469217191315222067852981745717656101393257268292194678734900845342337492151339917783580756152616010501453458493723710755034171413779434140097938285892964287478928020485023000702507509510895787684096447212334004947320949548150390787017520475712585271371214443669649777483384301344168716419711054107197580848558024385563409521469014746325122334454289433180287713001397103551128097628241465372445571448575043946790800992914195046444798653301500088626134248559160838359689518581874501190532199209585803065265878116480558355372968688935055356454436959383539088271498235755265814827377129281387661153411700442655217761005020768708100094753056994220005372062883104372400102554421445299519791242343039207539098979215448218454518014951423038809243537811660672123417658145902553072754758861445026391928805883633501357260741103189176102995584735862055889671870055639527648341058131361962638116026305923070186080879858310452871070181729676868899156339554499684400855559095290477683534946130855186254269147112032442067333654806346114304992505346488490773388877984392449388903195657585240381026427233547700350722009075226094186280841996858958481732816291127180443885815283058588200494621393562518901089741808677163816302685596142350241890786562304014684812991427409207995487610996273408303633608037423274347043748718443783686514388368365752104987063978119906537359011314279574304590643380638418385920954410632093840123991908386645539823612376630714867101082175325100703828777245788341810305606676911653436662325589752798166512685274523648737970815882346382395445451063135613659525651095986503666120129552505876512648013886959891844654738003917924417168999800525223178030623457642080409785295403121808324002362553204779130788237509568290848470070002409982398683264175127876168655217903349323486829126610947851403843229506678001810828019264063583051686897396647810448385387267361416081398503033098779254964387989075420044118006296537206437781646848265548447116419931156673196535319637986002311057425546548523103951298264423915929659168016156242877470568100117930079914374045821588574801429200484140933083631745447406278520006428397363271265482785061391246456454215690015782829403616421730783653756472811951821977393931653883804707571431121597780056344090567234019305335869858849327748516992744078356674598237139305152243047767127505793742573396105447262709901065293604140179035839584679715113628526269916991206920588389978101333622050725299487596675857844411782406578100942852088926363599235831470896181735631505613483339382345216125766992053187406503737726642947649439632396600379554476796912707154244882367914305177295390145575225016968606240398365310492815478286818013221927752255073673056759719136564745611869847356606301214403992606353415645190989746627893800697824431506990021658548824541608383022505422051387864935700710208115496715215378300472088678055452531354071917626749145102844774893386852375207025837350432527391598484709081731975229623161792801074138557930423438418056396731681811810140591975227485019936048626531525072925615126481897689068677685020563422995112095990421815839007575410736882474521388755250672575407146988261666403412060745943620282577443117296292484181315804180076746807781204266925119046181337280567360177939343759136875671285743742969727240827380335000258264963531997038733249171943462111733407062580227015087164399976443390558553510818755416080802298993123633007905998842961936199586249201802405470714149981287221529705434228024883281154637611701558900285036161494320922216897692227377576479519158298643429959196971675520794597492404513728784846929901628849937859338613659947781097369876847853925468642559453432253740649178351517595748187544170933058888681332108938991660051741790819970998499035713369874269531210663555585837140714818885334707311338940666196000720907386380069706952452484093372637551174856981203099065963756785609269294464752444388563795023530654699008415966283674267683709168607469158354776451843528222455315701099064066050924955149605785902489924677086434536257192904023817439606704092650383746133858761368080503665207535028134291774659248698689841614831233335937263013560982760978842776285447533246512817167721671357044075275224016080341017683814132838830432567821528542350870289866136980000722916529176607865995735375966786791722876915131157708259509240078488611667282409698953613853370264896538571239323605100862232488969094237193931154869178310370749314121660856476585060187690678548601214603068002076349802650458467688601961544723675780144313219038784607977287091825107715209183570951200971514976978129927859684742293079035805694707787876370701016829019173554708852856781686054137973851962775211871700270642303078917025213874099835168418282167942781964929097271962096663586815475153807095866075171756760970534904000878821003867622721144400644425015645116811151268260107528779382596636330380851199483646216154933920537274184639670388470034839973288714102071098399197466305449015551409629623589992385273786233437996903789837212378772212851338791172334610453530779605747362390518857921261654827643684536765242378547113110119012642987349445586703980076539982890076740113315910617899534053037166911737323016916600094660561489312908142957243425044104662940459465032810570404671384402378083871394106071025339339633549973295484534910572993185047499054820406476105625619042914149337639655424463130533606625588814392674427425661733103524236149337325500566991415323967023766079038653402478604018533152474474125042661158472470561771799184945212324976610472332417644450354992940677863882654629343870590699190461116450219782434940551344041202826147874309696151903598891377438728892941901557715870141918650277497845654347326305840935595255593671155350167778839021336809957750164532458781140099966139213018883603384888089619191803740738973315797762298492919578745741283822810498052652204643309465771635220114643611480631984946498045153082287256084904084162487291125966915496231331235384627257685457064150077750598340067785963787516526606156138709587628446417730493929747923286477172398345974047965241860784495690485940254743645557411749603207767088742470700736190848673890312821915144995019159182245690432050198236692081226929346556129066971267995854866175646295942156382498534017862356780191528154827259995720881961933760637737506058449571323755089711799634214451528270358246705684087889794913495637003812692007533002361654941394987638164384939356490961060050316982923364664046243766016791832774162019611870557458437292582689390142204003673659929942352191106461930579689880268664069014014694288711567463030577819077901259736237843824451255896778867686630376777349856127778238520213892652875552624829066364158552438359516872438851865832093262257477612501654231534784696401897817098587208337595006511283794724466439170717491561282095532552094357895694027436123333891074260100729891111713112720077380954519276116031354629030669208694862551767539542812907475939666627496711416159409238107143065914582438728171704350951407823661208014117628303711084616192607358541091774938015574091114100610384673350696749640659402152520349622290553109488218206714616799127066008059293608658403348437039584834081883003259285566271842580768251477344832379706604972110973893920496220533882081962699002789872491501483244408604839560910890257893022077372792801759835927816538830812355582023522787373339168064357179643489802165023207463195210283519570093883199082735664613898090553391347265190632104171463670731765973280621440872770452235601098910432389817015260891101038438632355347547066401991667390771190486253888948631841985181543198761874357452994181593512986474577328197679343829703858891540358691647683067960423913057511883043581827042238886549163561922901006018764375785254852919630201472398967573726653109064589294077723369859195347672409163327606904706002162175814340986688765437488102662731827373319426370467154736063218750728288614320121504370081624673237666451676788268578460122780736771184194876229424127838949339655619272109066946139491442184432679871704200207894827232300280097353169871927345263787738905108282574186144878953496946656869129805465785104149973447832267621224163379476050958208409534441509398224779424213115274520757038498826614326687344317051679047283893658813448897957066876658217728182932127351531018325760701303554910903019026424882322596863052551055577874159567692208073114340927409510074213581552145851605830778330488669584623438454771886208971090788316452730903288597998537045713494091666316314600513737247842707078841074483979428578170079248615480570684925414154425709646106460143722085083140425550101210424075054905711055268878095700435460998599689014484122086649923018787883538442482201898712156845335385820967521290750491013543423402329280654092868248563603407353750637827695002156223901383349758111948509688499960264820261955062056900358588976565337213247712514999764735352034743656233594848973637376722530237158923276998545298848101936262863920248344085350797082373014283364693113058163822711427216173068049758722884812300540999527764154229578703299933846750302801135105199679065000216133175815029094069269054491681970276798174844267408533989334803029917416382938941043874602391280509340885111211089101929182167743125722838037452640329135588247038445678446314265438457415590696750528216160067805259084488084452301224753529786681696710123976158467277264541131936196628703909345590367907375035175284323196657098267377214912419907768677794423547234621916592015765234137832841837887749373525188093007105527516076580045442766142083766004183355501291406715263290130705095937622167039317801523602273333839714250687207613215552726033736027971911950367755727961696296849107827739086462885084709437481712015921194250794725486488395758797698858636937156782587968764938402789625759418564272451530646524570842638739086891876282794932581335676315157401942149916707496888597178024648312175071960139947075146988415421551993928353319293522929990716716440448338737960018977422605125162249187204578181454656695500425287598580905997294823263298317522374151445221220284745175387452345868639569001438571173446099680987093802211386961145840769786993477986822294409329612926197546291042706377724040641060664643772038963788490809720311789172487155263999119581671896421434310190679092201871678204933897331713017342244525698404113978515842485441004858902238254280195042929331094978961778760928521384434778901303022395637514715835861952943332612039713511008479784753693477014975737400713793894385612976826901621659318412160346563339238334440544055043821180282226868972426648704702608802120870260586237939493518662131644646311768173719827614742013090868294819549519093048987455028829445139093481755789485877736503807597083671485844566990472711182204930047368849888725675323911331941596153337057458835626143049093398354887295453798554311790975095166195629887019805921120968081431583885582196070771821275047888322463070526662464884981279876487006488961938377174648265474525023709291455564587930118816755414376859651131925735473423795413997341442310763109789814403001219444669001671822845891290979793088037879688348251069703592386638977022558889680193743664789924619539264957106844634190611306439126187052346015150160688324001394226391961054992039302868885533546952727993648336395499498265930049276633253822572519923906334922532630662002118702183717329274282807753653245243598078481267575210966675774111236953346270139973671503230704277866271856996520492904769020981024794471273954344217633741321792062623923909324224275659195906676086663070720661585311412005018613741890428844339480127893865763309112108594908035801629662813524544321812298509583970821512093506210072950282558537036074395889338449929781045580499614921372041899429721385345520260300872450561457849610722161048872767258809122232628500259635007170376344717745310850334237016017555266658044891285968723303360524788153239671661539666189670035626080330270969692483161972508555369275295314795142794028967329441944222577794127045447023780240950372604367876327190301952734342511613168350493196370733532711788342342329034213001799732553489973500897505712102731303673351680920577018644646860932291661806520190731915472842035755417098913172815734134487910645645411023932110379223497632868371161292252535470798489206016928580219976934034506204729028607710848948675082359758504735673264048358449225268901778711565061782235038316008666958085472488859883043144938431292831600769942578155124873711545021611979580234282132298215736198185571198389836309714423185527298491246924328707073351848327394579129624261991623973000569414536334833191988063962884280978688899079806354365493138505966811072841856677825178615280946787986600884263985017215639683640523491364798149191534925302574595119654021568533806039385275768909543858585358307734170822780162941072565001107545453757731992806859103114264557745881986536721528766494645646234766084274160874866838977829741003633952811268275565491983408781550732043245167999522452876177578040079309146571511424962428272874625478646905399260118458731972714953027232477890712290479405968592985755742245727013856628008282588731435446688824833206310965459975629851812784074083974575347878047806966585285202975812359130349899584259338250518086350575990648139476951371970020960037690634294730921523225685347816433713698994058975219987734329623338874560073690754951247965389392449984420304946374980028963982527409419032843586235378313085133477479358802160420157776412555049450805464748468339718068365615313361166359369665820195831046861985062004984766404557559760492819166787207536602712987289230744388143798908319729245485149099727256618722146907729339459973992464117506541259248633414963678070573995361299861143558394203383313162301835095350815332931835499744624295629259992996020465175545144394932379211024227111268254187570176063144225058575703884551546932732476457330854730423940100470123386206655441241354798386850231669634546169885416919726230193306172249041659664413737891764587922118973540102521451456323398736792013150703215634709023442609539123311448179966708878962607422949475341495319537001358799418049888097487676570308280153603199960285673980116262754523355812137703386351986393032751744734058089830751162676166499420036964974735407067748840712289503878982215189268535359868702243322446582155672673503193846439004451007049863090430213833972459959609730605785556374588118634238436304734054227921764489103535738454334751196913667641275544460463619203529085633228124911775138542636040229594038348176601847125919578167187432300789943052277436821157338834212881892698844948007409506804282777876062622512462844520245036560929387940346613511877560997557972692846619252202959697891194577469362504518141081907708005860521869021328715044522318912634481809656971498772144781352832776058711025310661105496277368750110721285727253596871081222362284480265887187689315008173316247049267841478369296916578920633067560311187783824490166107997461460259411339088708094424442354404943898574716675278245719977362168479201633759781645590903559536345481428765290981469734855554731509412120749495790897817058756193803419847929701441320235443390762697887561790036467642621254124559066698567503285896892994382117413528536176119704685254719699735441530299692298967547883327876428793921460641283062436320203522935417850269069462059027842726197808044921638895880941207980250534418675048075540107561316437460351359603271234312487463912689083474875257364107501269358260945992513081255624146221229761610945246593711377408683190984031922732604458412467417569517211477918521254807227069171800418501133112859339155485616663096485499009686101925488312320816432066500409640424176175909092925912138605661504175997440255747137889243153586013481913189654467033177495357456466709061849864578114690005963706794215702711911664068267614329205071861170871991411624482611923466332103438833386221560288042407128044782999693072211569656704642261189071762339982051735981861902473830007631553148936059648508798370007281731534666264175177080331629180831972234921236274148923733708906147112172433185243147682694832879232313924788176381658838795112999432766283775420132719888913657414346194353250235787803000039713313892792416739553015931209199350864044373631376918221879849992140903554917331449106136518066912409245121955078935679357342742025634737801887572678823676212031074098572196876137341184807774439091207412569899398874101160220801073340503077105440890671764353094798865316089236203632329098308894659357342661454700368121845393014985144602153146405870536819829231849549570597075774054234766269428467027094758620518863517476974303061959388170211984352552857726573561021241775696048615188349557553634256153024846385709045260098058441152865247438988211551114090334568902601580870114141722802669000103381687511562996994835812107369288867679103217116223690431068154779869485504867045399432635955425195314162736654881244755103121274466145554610007632635227591484426347539199345583720946714951878138966494097489204466756799585197231834152079851480780149195263843598449760590105806499542361454088872546385871806585762396884053287218803595283379067807561700541352993049877483560384745600387325635522878799588218388873518320471958929608188464114940461417344695772500367513571888725951621429557588269807226638456531699452921259043264491631278869206317287187069296340036667222964495178985670854979233775082081576790932089099802076616989224442237238312254823864920977927776264052231290634884857452265195070600868714781742108954665897024572725393497066915263930905011791564235343221202554000424779202526211855828958153279371263349189902847201091827941360446094520774279071379506557178729724896416665523019593530155192811878459512854718486746345948203808676184251056095882631851613733215977647852233150000340208692581478898470540084696339815509731456199620275157998765885620322753928586122055086474142892004639613667182694210151493831763133756447733818639128746880610060804032677740573768257564458296524904591023159239307096812137106703854115862156580926353876855278525276876929312804101326417305039037532940746141010384199503474854530425250052343344593665368622493316139542104792750940034439120174721706777981307890602452598141273454236192919893030786675318192829759523805532775579946583039651746675382614756618525229326830999818591201701557482790185055273447821215464125198815365503877905082733347047289356730564141409052967935208216849560609121346738024946343843456656174040278259561559251758461808250932903176413274104110360282847880760318119202981600480631182398551776615808405010898411733828079328583311045115819785339446559300861671402888628227739385190586479061261536708560100136772412805391199397556069858434621024653568262392483883291204564638046540370229795623445551541156696462877315935985315495367293282136879602712647125468796570939721253168878606291446973186243500664891053075020338269045070388550394836848796683010353094572915906154598452216493479095869436150907966059414396006387911826923586808476717594831963280012586897543222935921838251022394881523688803389341449734491588081395807571323448909854063271545993793696621406976920703820165965574419819058625991780901380319890349435523350481553484213891920067786054464348276049742396349500791708370361273357023640672075820491155535186209787623071409317390617887139363694969290765691511123994840289560900062185900435639850587787640337733341983208919225081247058217941487409015841042435662797928752519335768689411575586700825649483796608530675349813421231146491290120191971748431636165036162246612661115011677700116309542827638359958039527382320236786864202557982971289759129442726552659759856955357963987101012243497730394353822032594459038783305582933962867762330066708116230881303813696367156840052201394484014833505703131566380090333768664030410863756857489155010177261069981224276660356578166797665422562352990489184997189948149771867048705521091734000603450994685682888445716795515119587059688906929272582712395002736716453703911737206610090913887903214819642781168529758691089001800178137692672763245007611401095991733415557758893843125931660576860777279438122420756366841613980461630587351338482081061025920965848199905854483085397584317901115928768767508742066414411031352977581370829029952158838482542414037397923775538743917590989277800014524355551911654430361960094834209926426556716387422067658539360562721240838854916247572191110234078094703538646064756045361450426048087032909793672350526564877490649487279370918712799037126680844638107857797565843302909014357852149546827478088304125134242335098053247430709469076802662366974920206832862556228408213439521852289520733391544120290622140906512465320816024049286004220892499016365999116841224575005546740857399779842064105185329351922241574986963449440925652965580939152679640586509360664345172703269038405244767316650381093865177883214739085694396590069371517129407919990215517601522901472940468566971956903712314740066686295304094431802904056499304476070764689110242449784405886098105617251172991845541744080836101589910099146015647501305084469709688016750759716401393953230265286586788741467042754557405379301214992071632006855452974752136862995768753343141944915666712005135457458446823025929838334113424109959116038281084490292407088762308190746311713627009862951958091076092947059904194857762696452965339863180632244533606617098347497633633514246004994661997319477593750778601445399095717537223598997801529521578393723211832517473645986350921589711481378618311784817348727422096150470079162596798422574901414286810297421017393293154844552301025255460498193004679605168173122513883375614133439895004206112132026205488428966033083971176607293802399690629273558856639028569079175606539256452060554632101958312469949209878900471503901528076814094917069035901337655974542878900312629351294774174796896527278780175729635510743612046155023055604985628586327464318119337988312133895949192950379491234472069245320782737331510336870312180276118899325806216443393516399489848427641656414324654800763234226817582759040648219820401584489614461418203823073400594449815319730432046225411088132911889786510136670367238907025587747073230529869628077892227852114777536506195410097277774567704304357765854917878178659589809150902590268662434399995120556515162291372601195776326757821625603517648805082557815029294835707451673635952131787131441877882534310305202819821535413230883421986347386151148690715905659464591497523724868842074032539968536015600264211160721968107663332822268657745932029823738065689078697621158599756824101226009176232851094980147795927440773418385710675341992232673601842386117796674653196545928793561873302790113210022401811874562205900763455186951020426252144799328825031387018916151734199741523174639474433858214661770911675260270148890729342946098569421818937864244086426483999846587432333894262604127060371797423212148643761904734568222853138071274587859961976876030471746315602333562296614825846677086073664349368653655843208599679535120356113615806730835244526050856296931293333272490892008665514919523400905064244838704892322930179337177742602355826952564877127384449183527830323955914260317111439842612499704777872196045757251670842825750133633588162077197794602476789442367331009378160413474878403277933424273956985367265030185652046510181677268197695414784868858543751311727247511267784039835881846836512732159845649534848487909317593410899504987790299199517920447214927226528464600584351810023787255209070805406284007671720977424857129460418077769117972831666705673978201832576999028677666263364314912687745419034694291196858803235945780644232569860168326064245029035503854346712307970403839731350906245447170386004035178833647588318178600561418227120028386540767476302067150783090996376633280450613053596590991794176067892442661558844755642424947148814542852877625066646590432954048129044435942343797467836231979882517511597319512522817988815078889625689622931994566673441165926172934752512525302572372295522427804984554323285654747913411260404269791081905007979007961645567353543366885640784640411612957375648768984788106751876238831598929081085130751962212493338427273060117044500499083960933309248175780861647238065290498460716618858944359770699867594159423454587237009011996821314619574435864264009750847705268275631392102139963277870141366064762455986085674955029332042944626421785638630224566400570794970459443024925810178382457618987016848730821809690793430996636060945046326721941507739042499307816706423507248185256423740656595849261926387994428231466066748294158180118045009774538735345182650034538067296426838237807547089577947105331377937375904490727619126432488871610166696672322933934076041757650936942089421662988566616223913611939957833934360854943176847987087032261155690329231502391838851443578762303549904673377554002242712922189960151744380500120812792122880910338272189526015803693096306884530879261067742448483969046480607270867159624155532056668350201479472648959208854823609686871432176653478559564427237719108942634908817805795819978499218029440679236108169951298527224500735931700927775607714490121515703867218686914229881557884266891787062016036728369221365607171147596919035236471087980477742206980391799976529387714662194895040863796713697127297143385373448717583988000709513338607519992128740696855708223757610555605527314894939846749472067724800375432745356662505902193372340090034771188844544192933074664285437590918315347350670082565113469602042163006213479875521507557999847266822936569901131074629018951894725358368486983873846610340409068020639307399209533198087732828479252643633596689897312898645540081478003106106436018535782617854018659793181244852108686622579582780268551846098732121555244206461057653636580441896810675660196271878882744637517252442303974974810770124453838405380435067180156443690045932997163638666432909546418309973331072429095430706651034076023933928269534317608719164896893771463624850981915834151419353752320473839079348910264954395281667795125978440731617007257412457342247152150122784846992192656602927054982637070918748893222949727808760150456215532561121034960045911344447272676629279177411497721865144293740635728895299184357410964403106187640962014051116412307955705401901826338863718275141525793019687005814153956487037701738818250605147240134139884433007072541923082386304389662740672168184308393274540820314418716578889114233936106801660445122846187501664823384212673875048117412077050854208333361656954734405195377735862631579781653360572976897589263361379263990226186906678807989576837130480292653913497579666265352465529061736508167425679588124866552421405181403028712742853779635413475876131607881095313790477497263252812294288508523586488397524648920372487233738605209925645535801446152365473807236300385834718502330457691280891859274123067844893207080272215895311989159499035449173906175991151744187082771868533327510709418420727492230004269589301152533443046255014415818987794225543712995012992564702759387879508527556577523425796975984628033550588560536395127227686524504722640105867137851436572409616188269274894557262114345272541379994188138890789973523542555190988196091301194435378676332580733735179409401841213240529946664098876132023827221219242409953605096139522760074583541130944601956097111961472069167576542340859915169550589292690513431013136447782352902930230555701756748460756424723791776319471852816842809917572866260808214712880045055801670195427149214847934281272433085510615810044235943042059651687936475524900401375234898336491500689153570847621567997624580664801856712128579962135039627388996164454044514876377521862904464440218121847597061002027751328282623747056089374673681922875071389153649829886113116813318864209597267940338002250362474872654498433402808785967361713556056477858029501097650972161863278348873308442251801072055852041747919218303783591659960447058475314006225742807076281843951225355998676411365889778119866641270924214014324696373382001131229909595533635378690870751140341203239485596485486614976682463556668817246478794628346263211820439074361108538510327858306001738653195632775886891620007897980497430660624005227376633708415673087580043694728412767162473334602650557796976484334728052105435186606877875596513116968523119819839726837310088336817241586294275689092405285564753516154193164693164504375805552333506972303061795772861319053394497758819703354590727985067597195562046563371308703965918488149636477070845342856953518387114203041589806239073753282553875574193618160961968914489157737081207934366408768865652233852842264251760129868524863739197707031676947397728509449763113276199307268146928789749590503310921631600559117890453793338886632072746556143993634883572873846669486230289719959018496002272050883918643644157459415435220287716231406591267340271466305650495402081644205856974142192154298859205528081243183705621762869724596198146479124292018126624831756003507669506655600142935484318877120050824789457741126249316392336520541431088354278730914705712875992171838191846941934442725607714197319091971984081509693658237333887909782354827870323866452430021080362629431625774307941247025848362893917544577121858751819753058615140984570990097512636143174217408332384500615245808561339071881582406475528360400434760490278048887247443072529126384181950451534761685204055212086788802195821565366905749079019764337212844467862979698645137453377586187752667838704438409165829319251497158909926466579733483009718967536718738005053250724128158838860271931637764726782345319772780491757314708947243919777384838240490804936370596693917258332682503973575490626260956033275451856923374444079349356996519757987359346198973068813453271971214302285191479387662102391236642780620778453911008832022308846946618077218934797517373522415140376408956393066510692766598737523207965261231790772731921406643842161134158590641935850062650462881191698935933837206532639307807922676902019297820456096847209201058440189397252918895053251942152688328591072917660428258086809679405307515975789968410129259660973094856383447504205088307797935716829309441363053497310790588941930529270848763864696320330174227776264720294914473424816454326459430329240668608980371368044343267521261430324657791217048512098018573152811665395576406648172727745167499026644164676828120806597182834375898812687212240753094109681403199632376229561598206893385829625579610126970265936087735326694040191097219150582659860550285223797895104416134524825613576372632211291346148118147829494602767638772233294745172488227174762178042182381946306273406193314370140265186138212722882159929866883565840532916319925314100890904582342812568810735044933184934759425422260649098816169630718571369524116768559195707391538777891126528045508710016402972123624778086883391616032871743755987122588550951144683871935130471650690407495749827007098591914569675668105053398996847355871840861517361867627643362455801459538352976566412603022003958580040491419395094190474159060208490946713440958119276333158646330631664414578588798731852790841595734192570292305221126114912180645201911866761576618637060540124624956573498770328485144700450046685864490061684481950026062924501685894356992472196475017435135546010999470479910944929771008647000915639731154869310065319980266157411261985193502283528271248473580914714259975759744440100001595525778613121138248901811577017832798308683480433474673160635653967267195210761231872935567899840029023894124556357386660343962514500127530609112205867551954185069500256191238274917208598188926969527194541225242755672583603544604249306824669468141329302656029265068843396275668234044388201912942165539690792057223845245115817684199582356641856286421558751873106298893923038672467517332282149792986207994908709653993589512457592143796402616087485217387327087490240468299481865624864772024050531977243023133264254167568876433384843106891757629252356347866669258918597143156632189964425777698439490692518113173335705832446445927749497788220430776711716696586932714033479408833818037819319593354115809319391945476756404977898968187927426350523989725839397143171590788236012402913314443056429447420892565702152602460823684968248590081584884684617925109244624009570145997748096590208975135253512050542627911269972219833268703304276378660392053117670863482726246245491269976196832383692008885022955293082706228593030316164038295151899644830817844189303281386324832058857142162255850557240095710095626672920850477719485035435508494148953362666629350990501755914532463389792181312871011626132239697295815881218145391629459472562188421630788663944772054085888753712639867269330510338133734469512601465825761100003945029923287774727911886942347627369010125640717486561625312917607395113728505156662307134557958247207877425340573873227632655840802057574440003598404364668542722445721939731265226251032593308940622782739319002398628644723650878465206190356128736808402480185399654448635700425157895115336217523898822400899659526920485292259257939219202054008430134435222774676925549339633579781212805431474024779522187083908325029334673247921818587273616385978332086942519508926177344498965686623327647911131701618538968329671743316844134111281180713026454037255962810187047633486979886142815548460936658782877596714281007021414073229846054734416350013872408192282517606562286695424274807728995795046482427329786400632615568722463633934615148215869002294610269656599809312140174244536026598588786508758526936422431371071430568105698731250491610600956730721105041598906606969831167434149270240085339868817978594259854294694535845532659513687872616093678338981895829971289459371237476516999131795106526550772043056260666112753822393523287006726525357157731499574425049012998391051397622452793694931688499396041031381826153042393673950853106211423380313678682359573072169557252597276798107115336382424391083571464443640483827798010531224401959600978891633641835142673437619836740831755573862465097368075271019879702950639273417372424530156226979733233503935152009499798348045114614446113119461953046513982808100687377365528024390984955775123377380964113241671846610044853520781818080356065572668431213931816768192438044363354612814676451753020141435780039577669221144802215055057980961846131844700160798613280472968468646650015533023675762755556816144561699953625287847813394807191504784955052910086664974411383016536420953126648363721356886395642204182267096386953938816440398440569861168588193745737391122223459516071619298237149832758580113283261883665813209149247810652426696055655396301201596987704129235268837351447185613332090447203664194831661221958195179299646235159311336606867822449813192804584093013315487821928363953033142465265853155411496085348601916806064176183081347677024317164438996528563333116686462588162949829000188158234610242744003639403272690784442431267885812614288545946810438149949299288858561634272639269139310880758845510543693836238748979528447337121168290990664070057805679406458509822509479969825898819152495767254966382840206237086199748223663586734237834953193833872790573492902462403335059338503920401701266506805580012148560086689020658307228024407016940992412407250645405238737922660671921819038325752249045455046234688124389417888303705516506601027822543786002036379464807285074977639000601184844946299165502412760596592003524242091369234102036575345831853359477556949729343017653099711450622538808884647690189174469109894042420052409094678674977725011508016184939467275281764805559536139683096130115653524545223631495906210822906652601404819001223187214094214383409039642983430860103536706504552140839669166256052816149834862984043769882553660622392136487775655351272081861439085351660976323893275615990677103420098237722263044298758790051760809379994020965676707788984846098759262457568165785027193665219195173919738015572794412496090489564954368968869974463792720318344942897158939502485592444093068611220464349395435776676907431647399131855824735993053841834013276612491442523684123165935032605155711638757413157923651167914454085680183581899176927179938680716183178200528151273286415213748542458745577479456943334655119711215432694945514240308233153945775504709223375203131371962315023990627862891303758872421434478339665672543323093120982213202391634004450038296364470117995244855934967461205277708928704933099356633565473522457885947598599746332815502883083614135176937826526251798330830372968969410371488710476620882079064720746702664938901856899148788303405152448485978232822013933649951443337779865707948759699959121484253036127394830547784459075353433481410519384328461975614320367811887774472987441678861347622382635864603449831064421397444653779121012299838891673107272957354898579034795234018646041169834528304456913072001907121392726842344719625371157176196879629336205451521459321355153016191177710087246522076241143280601592823747086867034764196319872570504384726100389085776646127937376441951974291116429601700621181101320833250720220802324510887064066852483729143640164535381959797774661926789107131814160722037418888267910365710954471812976303406133543195506128862254796220502591326531725219474303887114426210178681534533338229963992540825707422244799772518382659877961462458917913114335932847418029484628137122562189805133851717615782825482192154922875659251595658416955245814541595473769745845312766514485220147708768477387550599637740833177208313476142013839785666013399472801396498373797366169033471884855987054509280129270649425940860738011790201080724878242423440714137492638895943447615566795209502181937057903982403199760535239805911783574329909091245941463332385566142724320711226211937936410032102975833280709228653158960243787658403239384106413159994261647553883780008438890679174036977652405221170247992266303961432570854636699283982729147362154099543320979454074039456385250157321563286837991456289601672775542438165780989028094126654770817183870428635556310554156434270832543770091506755481167006356908088942030015704440916051108368806758089761573053730766964860363301730374688701052307908564361897255763299582765230587302186922812140702417660529914004049384620889259322276444421107013001918171207694301788163727705535764120924506478047259627153215513550199891737939684174003940581925509920997441346183171443906225770142970223447217185817945298664195105695709065886457933843583049179885232578180422756776158154744205676038778747615152172891177720715943282741684771270237106959462025821307509050376477781964564991359759583540654265141373447042538363804360786727196294766710029194868626140514324010187097606838950915710470504600938091989922731601012490924701831196727317814357809570402986257089350482304335013378921017948925823577211253714471624004559907016268008007522270356278593977177681745812254403388079542913208873779221744813438277875396066877822519820862975016750027716856382160184187217544808433714664762011485057265259982511619402404455521774431121324025148180270585772760701210052071064761959451836851969584157677163593923017945475764776337892105543013048852714685319985513869841449917077735951947153266492516217468168183963551158353332836755654117925027230338974649009851191716665287094080532044961944961491124787726941265502322422630665458366171241786118943650899506598044375582478532358905368437701724949534798204866369823305557163967894905827518315162879649357917289902821360708029710390202190936416496101905136919736039099532496069306700318347616312939575645426758107264525609364645631359809292251487172847851166314721461637879038490953074967435905499894299778402284321903993312561547850384342757359314331900628993377355993909366767903098063827253067482948980697947450337152462808898702121746704053433140691779457311002727473790685769162340597206909578164829920982447570061464684747168181646222910048675878135215847060958018381342515331324844877973340694437844101983240406932198726762597520353673027699962138898681637552247962707747769324392952283291814425422908264632304599351389482610018743890227276497886822158354409849292948760349689326796368782404866605767539690345757400594650336646624564222754007343032907845176006663603010981131513842302478178746900364217449488815455161104943687570076244153396898962120327510927636654914266047391137535487698858278457916023544926646672099857627338659696308211478495890693984245013124598930184817192608566444792308200222504076386877536538054563512601975033984236683568089361266814178546144739576133878513309858350535786311926055797512527480040238858941930637623192074514154318141197825213410555674884367117777128270427239480236258992182065295709206596625859110758932177849840348586312991960275517321807543129254065471421485372504892963887083150340984340491626342699517254424001852429999967675311745278102898643066863513547597040262789623605438553145390335400957011187826039133411069725678997294903638469241185686394938126013778113172666577944142091565054062765911323785532668917534255472478192930128944721713095491593455594557984547059952445420388371197804009985748472620241073744965506817208922323152244405904969155597706821136130316263506389820183840807505172392481234197881405491281731023373442838355291313233236518247604329638273949096144641239338737580894309438584712389271212952782390442477293540275316650113441567983324334270435002732271934346365159143028483638121779082203612601881325400772772632419823828093500864205008836999114309295245861264848099442350296357820075740844363875407350744022121830215339121435983482191896210911875829505645667780244521894864597604725528570431725497842446737663926932345994247818727314446939156872238697145714472677773821395226570976681135847526238136836760399320637849225514957037323415700995485561256755681696524710851243904573089895422016814548550299222535932336054456444138964046635169695675553010938770073057154378521324918713688825438582526027370844423296253099084356332477001184785790952506596171793947679652834014312113961140136707148387958790954666134948834825927850173913182938542250281457482631707021778354785082387302359403271238770350833150649367991071429396362161825136020536005411350683022874411337148546165623032896047208316366394461331759041574770750306976764013591358174847149137956644791460303100215048959551100222621201465159539876643084687568174280014209533215081342188855062118240019796799994272270197675805345152697153728762197576843670674583742505625137548798404013293445288722611257883730982989386175541596207063996131392131119455984694117035779313737622240637699915836412396704189098146242236882995479160862721446122278580379654951836327860718515238497410679744784110585287689287522433151459230938824076807908874488160978150980784695776634069154730559118200020708130503986728113832481265042823648141781353584310279993885442612270504297208667600310476427329136920149129638395424720186425733039842607425313504194502631036983897414217533676451917685986170956414805746829942253402476365890848371751089910868864840107088663049908643258905298881968450957960762971659076044588118459554301657461305959076745308223461629008749176385561412013689907775478624016506788925759933708760498780092725128466968657104087331532751907620016201258132332354716411457225140436716512060011418869866792889588480533448556566680404107447268815514963477196200718009094977781680833937367150496677189713868336450210629357601280440475095421945136129965224658424006036960620257247452102827369482028226073254045263715665544197193926214860207046709978515448650690868836048682423703810276460738586427895192543898112695160819712714857302852353066827835061756093553556190026235771037877648678414248982260681790760200833274370977412790843709248906953348313407351642867872919925979407565849894606561310090414214446227294762222701481860525687942272839081097933577599552968047745159431172727768535190492992940526424211798888264585991681393385576170709055673661596491501260010594672648520321958973152284208511401258655511459750927661891675008944463559726401335798313635485725997059659568779022276336432510142007683339486860723590694856185506382058579223970826606591720673682137271851053724390418521838801741900702587501056240994957730474892037820031140310474940719062920713825468479643053787397207520690352345814463992235996755064430835549930783796640771047786581604451033557563023505678048051441594765440396226929940664877195712674252163110078822799437653386300232787403349312805814961908383142343475110226574789461438807205364607586529810160535059027904546586539015731995734632863506515282652801837152524455422552914313334770716275047248959714175653920586811203855509471973053860484291582769526447097953309502140801544321210801495311510827924644747555662927579316119025227865467177654221721321008712327791161340067607673506019229976264143252008078140710976439080442952516641458964458712624592229269077394046529051121377896714684611768590577487106691988812407676556218440608798223929936073495828553417506624216883340009944880371948059476914181534349344439552637457988022018561244133883211232846452493948298611754626574813590504567561824452091183635565539608450758162787016799352316212994400338853402765465174484176992020222339319594449423544790531453153396557313321598470670105516169499899764577957111824763601237448804311375359530269107629624683794348690653494711143856987724676104933447001302820151979185125943675388076089840029025343035672601365757854412325179305171928065712847137743956126720934759808935312987607483194092703762614804671260191454140985642350589187062990732481190830089398996479887183368602559851773968623149432898520795860388255112659017035083823279011901248070190134569451612610066106680132705752924838616204683121351910939909426747657434250850234192411636368554268066520526520115765922230876062558735476633122683698535852518840383838151371297645929542325279783157681706216091767871696649094644887351719650320651727556927604607791426949523291579713600078102408346279463802865150263616102563766125902688347713233572802589309775670881489584759513418454250344418143453186975113941553448576994704477916987581830043003864734888945613325990552608225222984787513687560220487881797084570045688678935552702502721860956313170560415019016171556075195121589192026334495580288909395393480654350007284604804723784969637195653102104053097884010163686850889233778262098326801884226295051227496736877306883648653597230685668331153071409398613586065107844493516071825450302513135247843580982069052569687352856525722795231555572627217755013159705898860836631200389208804626971989865614689711075819393516236140604299771021517146159379423397646897688911639180664355028918531781390572517684342023148213147574681205104617413490584013277342285698104660823418797685252249779813786581746998207274834874124207091498446786544800043263241531469129365079589707466043404821749857542196687009980296263205477735722518718092792283452108947234420543101208450617519239356762698647531787113950683040276236888225271475353783885216437844259237042467802102507138476793799749638248616931049603449505013144384877088396566263257303439468232176273388322104092884603353690202973755071690327002396821213628808835678964767037295515775889389587626041768455866254847975718839987291284854488907897085649010454214143429786627617156071661119454153254831655391003174154158269621459409521487956366395113889349457246097054437756911075255235684730544815450425213630847334811209398954547709381853747332847590588208400627970129891442450104868934362011650310232941403942879563076907286473009244932792195061355558002400980978941400908471487111479451486153456692429330566711147013112745672957770879176335872020674542042151661850065491290501112001578215728134303964508269313304313496556151112656375272840255688850473260487516920799236436050401194874238626244434869213103309875084930141383804858542919554746106417802719255893208301866105228103767531508478983180024298431510784527262193776377924044199490852483326725462136772561603301527198136176971155999777269839921622700146964472309513820556363830542497303966168366735714844888220641012625058364621763958955777989214908754477219101831933415130061061644692775436119027493557916751625836874310756741652446917638409664490295558383415379641626527945286550470262784885956199991201798833934468687866323852678092428734473480253054897086397435508489858860014877767479330938378023787111159216101741301969355016080109333966481872966423783830297202712766427610797327016737888905652095204123498943423600270439885096977119457966650011782913584339674813811734770070160708597958193764817175748948991530769060599303844285600881311428708837874201911993074998091869457020384909117086875542426179091239874907788686690035294237218178553615829151216633353039704053110144615055542971684458563623950137945232550247765571523911931432283116852901102371183851736517050024524376652531314479588930479449709244053860311625198078983639782190301137215021728559102371828629314108190275177193507966180478103066068949373125144493618369683542467392729244655624627405156187258919479362672505894093467596261764808400742793297386406239852516671362037548755134877784437742320528515990696199925766868931201265958487945058774737769652631951178359910499625445162298934464217172661877464390046847491438527176829484417752417079575534907826159822487550411847511360843976166264367111851573999988895542652016423409721807287816996880370678458278037384492607874968294010201654719493758967354206621831828985780962298225763038349242124304687289734245336572875413607258204631002754727250189946792225734082444026054475901413214662704074681887187993477070670082259710538892197159370467196457176892945839557849520466556396518965256650177612135669992639785021803616510907369355964986030059606696778037784377773043551000675112738368700242792567456786553873280191095231867166510761348469547820913193396299934196232285622981912208871305654430354127792526120467994557619303847769691594784551542584551552633339892666389384131313281291117015977760990027341459582355747440513465303312512781719694402556408047039422062531402089423964133593810272939806993792491604705860406998499928108711022179341622198318222100816789881148493452422703957756868215059181067429732341252815172142574472863973898003231146229037633420397555585371876002214116731557228199271946465750842397122068725106860478307454562974287406550866853620555442240906963335737223024307021929204422136154908506985511060383118002364647267087490832893696480036633364442455987471792821794467975831926515347912232699441917550855517973143825157591543338856279664102933015330820915863119300023669984902868051972361005583799546217196196206268596099689934105345768379897006143067906831201564444931326375070427193959907756513690291109430281047554350980682015416146443252949043275027075691223538958056273381003693099714669115291279020497167555204586686886771593742346229503805208438785867403180684189400179540422973803062088337469903949362781029167035344440943758728829913461218807303840792713668830302535780588060882399973741643116328435765564603268261596567152319745701111047026723228523342297257589804536761339521912637061236636042508378549694735736155672686528496131613697085667610261170347174529112850952081992281714633397278694853410471986027228488862512304527284023261246993634235888765903899559565753412968250575603686391796180180752269582418317905578119189540135272458745729451075137951403271811272327790819500047099516446239918323154113277709938601957397110943698239469709180795415451607997880612286510403449836151681632895663473332660060840721492330149499513156299422286603285654030110171475277261276382358916770686682679056925267901982080342526578498395066691479646132833856554087842981494969527148518257828163022373645830476405153489331388822986616678022435756348980323467557847384809854358154241334421336864075093823750703654625501924774817235865328363248032426784031488407421395038236199291620191511266883104460473368611060206510755004190218219207327501493038927671849649968297194000491902608239629779607274036528185881997376273115812885677327412401007476536161731634209504198736441917826389472611949096301887797968563521169659199219599149606054427359079181280081035266162701668417207398694608030267288451052997966141052976339404665661540501616195789702105593300043274475931746914494470093625535269873315841468590034450207072842116462687164179216702787944692821357374117518008017454187877173704544616472372033100574679509229795870897448126612484638895952439617746839242126547097501107026558177805888641452147179376140571285269815034715768097064828272381377082699538140739511215732414256868543681777028805464485782933961896026611546843848442823683166270290507438937825379071679461369343601237772343192311477668230071580941412457318172019988243616420465434813295034034991672702790282128993279223135958366672511086251565887813823327960271104303702009191752539005684984377316487407494366475461944418709738318881861491453061612088587507426302672142707454357951871752348128182292636304702868303710563442835362002798769638415475853209599062340861645148842397536689501480851379584347669119003718763324672207431798663810576651262869094207568368127527514148142441729851431602777789138179198551228957188959444589905609381048773854546586758434783343365493122450986653175468258174519847545042409959448768939461433597574270894002235442077983198034506030452654394459764481927242249079788736734734086417611912556820026549232147240467330678791806826023823682072288824058106269017307907340267812584763495811426542005988475185842298346376690591307284686344501253638442977574365927100728469385739398424828994605858496637608730922475336902693368881675375842875570299370551137712301953587467714569586321078990668628818721066783846111883419171070357877233743467608563112559417569069207821704972476724288243313666476420891784626588915625501145687535237021271282219944323884929039945901522372885770072702343120092365805703683893497902695242709479901242357594437994085568620003872746245223824120804409318856574632888485772667471229354757600981219165777388610429314256075156199166817407423273224518802419114783933351324170461936640685184589479630778966816828265857129411951556276274066926417816569825894968172052797109398196379787582190762728636009912377291450697201938599983927872982560571831789290456258320046949913459982698271135043524890932308032486683145958424972636633625038722355637360850945783183893663175330459865564875199758678758325974058764976248355655683122128416727414780360465112030292977808082374244810499898278125413896094818001043075980292459340064479007686740060959563125510379955064551036699998479999372260818470574098769143211869629052913660046453042007863430222601229932369351502822891194011083917891319651551164767690825615406560328024592233156827936190588387610465034909848942742885097257288652357766787791603886076133586066077511995297939008125825625157317579358860330434850330435858501359170720323749914461466601655860860682093869646987115856742416684650261781202007109307433088709879535296904950724529159397024116409336686554564069120124950190370386023817820963311770728905616243460006026099210091897933719372327246748337386740467877819835531016500907382856744614991066174575277484532743862934924265752743291132171211696252189296015148983929221087092079124061731529778753724902320684939490332083077169828803689483540974281282054770070961682355034606764427712231173980191397714664594623987281014292283790440456384140118848196663335983055851317788732186853558193836945311384929037803417954930855635688248385861152852009219731034249427785483437214623651395346227909461795799243790236544114853581908456303010945883235585497733055543416175664419932549045459704325130593383740716148804310852684464022476825165450898729094377354336417279085440463917871231522532628009840729079195577526054550448299859758374223880054491039931375060384105774463981555260836560752796435317640385334304057421675534867153991891687849528885544774872085879695170228801142942466008185072466045247473915785706164843715961669213020340782883142260832749320987969016940716740461681742922735954535257753869886805560586074329282779365415042417414834628074787223257651901770169268819086136162709582698879440793143626159507755014161130764898067570823899502381150267710486385231346030809144356280359847145137756640212063074255674403193751662530031896835286441764870014844711915354697498267957338948423365386226333743354688750939625582509513123852813293617520678113475415731692480091118266759654637336095925418932634887354101124463144038555516070057695742281825461235098367976406070509795853518546790224992520530843019759851595146710414645098450715087368600340192806459879646009693510066455768565392135373681625557920883944566306023593467470432921974276586099853520977299728494875293744385709093291719446048992799507026435774230379575476750562458232122197654730051141270895561985323147125246946057534161829052222705132155412578560249731086489162509430041601428252055984703473477160713602928921326261239488196401438454166850851000824666302290009014577975732322648237648258469056537255416119315301269813213686268334173765691843140579232528621451338554190927825933111181517587323775145279115016215367905403484893541671827262254630867019769095624608738507130815224440625778405266283224537829788223485786977325813359913009924514958762453631996522376647416071031833787213675384761727723467006020842265984612789285189427241714628050183152177841428702360792585443494159943445337459264329355366406998425234296242531909774874146439954338414181114065686239653704521335346539208652961698987871527420468195143436903246810357595701017113263765873822417132150415636864639797323526515375797255850572187914732404019251187089982561349370546650274464969594820849796538290067757361000460792527919157530502112506689068538319466487848876651154705700469772976967223036419226871398574944977621058753782331174435684549395713965595979717397117085319652721476932374588819617741707997897468334810771514842455647221512970424252284438171534022638160361338239612036645635426834651315572314779508289852433348024734504224490858334606017290427038569347899022021725093128112567698863340289837663770732214197401147610359957439844510860205650429646296968410596355472909960542830548845867336216476318488467457985169971624051447670172560186734950965039275308057547427915560444248841488449024706330366451470689185960677150266883458122109952545525510337119060637841870113235733939823794620741617472887009007117919639151572384513709793460777521327658151938846501255627339302592061994431814615524383552615428830384414854655987645348160457585281621680186147722814935350403170446384291913989654763305431155202981773620927439586827963416878693059338365956594337028569049448764612334082295183739145941928571607161135436677393401154811734924666979621773173031352955487223586340798493263779878550602573664657678910975705348951904871710680501899248645090347744582068318309633687868149817907732795319944708700540990295943679369873054571406186376525565060814814022143626946073962783213652704575048272576645008581875045983863597401284985086219851231337140756896643628550562013912338737492491101470795268757108443924473472706478249611524200630004649164407138410865324924551121931557123511143557183573949965011619248037818146536280982831479771533006349600167915657145644754313670927596142194609903933290935156887637639201843698200656653827610499761673199609906174389004031619990422195251290233997352036670959747502784525850700911643058350486701308675236261425787952239355203986886111627388828813135720450106532192693958796245679327821731589160061134686063574917039666566611973455776089655042094342764395302785507311329184702553586348966779553679811009277600965686183586878709764010297900948126038556699676179456330052770322761102044539137945505841300376593320447891592539481945966932276128596363085498530738216213058097712917633407200239517901239644535933010691843959317326869671867245162638900287387639197549811385424934970628392370076964612493804684513275671767022890713627752878841386475685988665780870808729371723493756606749300780516611267925838438705168049034393959180406387514850151682926896797930028780332767067648623022821304581589023390219596260606277679918660183092211831110307810157038728753000881798311389352835702868519741338778543866825733704097448401938130516691583956869468048186771948096777038971882414791956673903838523865832677245177525690316044522639531093182550350599375471119733086763613416731545254858091777997109542886070910795598698056333430533714122398748998211970705274605854246807462952517115055573078225234145137679007270941438882802923388713811549843280862567561892097531869037477118003220244818140580994036373275592622337745512454105178050418160911371346714816872308558728801174922914979083775534542378664032603115900474948716859074469099410625937160998505897701638860668367059074683088834346074177685212076652384964518452542285443843224667723113433657510627159633288474513352617188318328081506678644617061493497965085025449932377866287946052570592582697568534810150747547608221967463668846111441921309499677025091129629195403571123566436471464644550657036445854653708765379455879042868827204926503107176107014839527157513316286292783868069426735736268477177697259044517407951215797643354878086672571662458783869327735161537727345046604551327136362962074285467343392519682556957196624942366390012409722693045459518807197641752736433908200787072478459022447303952660193384685889079551247007499848524187574452646931435530129935557211462122969791629169644523288283737727369269496840247341464127306905085426747030188879247433753779693152155039097646839374064320063638716152353537906680761591590423268241142416250472709851084309859111076229652962104658963313672093449847063374296893950306217725486404461967249057739602860943128577046160465770231255819836496823847486290939465429192549482179441275314847689661174798680918743425791532447524624267787200895598079626464759273959825422643453076168294067717348412403109595961312073418494082031197595526256209478220607527032209462694744016199317449054808983476202214205097802378339524898362094356509492437496878379419268782677768938459136073620211494391232229234754969209759507011584511599528864251359871843413871893977978830300998486431299206278935305663481676163100150177651205068844715255812284608441474705825940540774700908419689677155323815071462391142129971978915430476701014994837380010133840080824042711892881966827837399113675566846953656846400013198779690190165877782673456808182000244687068901880706786193969712956644987792666018160059632927247858605999224784830993580033850446175816846077079518154236255455677289474733335670979722594254379591878229822308406830567262218099947794984002044400301100343350895557904298704031017527979864724380097542552250667494403707436859036180400850814503833823446543692085671082121093817030242660513487016577648210649928249992141031482119226301901565324365932826230590748328976046573037949125618941597042813342616622970815821260113277149695739578682982981035590649193558648628556986642224445949550890785814816962072893194395806046360375049662019632859930651519571230739131709096212150958153672203609739764508923882810459422599711706150710562023296303057018160390859993869900368049438264412648612500652387316584963155540279948671836450852474385135817901697152461620805968178786528197921706758944788017926954736807030136269797181450065353782849602068968266215503887623879375983273122050304919811701358528933433981882652813221075980826375217165704211495343534377203178845576363931032779584006563210384216841290324265250295078064883237328060263900525804949340095269459422881028499882794560720152234742082401635537212360889446386377332363687942925118278653238783254939805394723556947174328469920285126077444523394390384371857048737736454599814320990302471945394188268875362145189709859139831338343809557213698615214255998134426698741994917363289857986587684962498630926440340213640441380335644023585092277150270113493405702858076262158978982265470945239842684431419550559190341384484917167252745623538739889368607387116639449913098201373302643233951887454253727309998251149762559183812006528083001542423835841770264088203104130171992877665371504589262420758840017756024173376866023674495652477545887068987112589893595317036963707398145598782248603877809048296543647200047964024741363172605244747335640242190642966978599739566437975244660752313107159729299426307166920144201478349989814979764904894559000621493708848415400510612695642072099126243462820541709054725693219239119391361590072984623897052622562398208704503117994737834945654266808785964270965884252927213856761808800731338054618426858088292339056589613306011269426005210582621315394024756211508842244974392818542960800184404735081448887366298709581779004816480908991390862461853042036892604631082908227284866392514643000858318871776513675725851534077539029596213382304239704501798259090112981511082089833978698916250131228794365973496326264827437076508675967770063826880749407558777560619662107732702344663236484683596610568713099416483984537919738117981671715165815497462667252265720773468315881585435651374169551877715883629823609230567088968391769645069451252182720719039518672807870584291357434874136058569346550242953008188813830178541603936410934335721283976188364454448404812438251557409311134356033300712087565535569428001185978722351368901573763992055031650072422737441581697234904610974980833361265983916046202197280409536055747335338446330975651275287006770646880905522546085840829271841225266420644806402868571635858776581386555180975101236308073511629883010537432569594048968066707369883672978600396641350278878653397446777898826032276059829339108774374771959357503848839351309821784351670240077185980823316157829004371582289124144124909283919232493881646239300671834491276963646448377963719567955311197828810347216109278335806754242359031218935984760087998100675602482772895872597900167972852207558582220229275391883588108798740117426898214241088315202052552945841451399637829169920910334378660539480394637216418548972379336830223217656787985345012643346069642977182376439417417124246518784916308500627747817342850601110834489534259553848334164317552453775753826936321149125704176496508848072356866015681011943549613071203701500536190252484733657155854134704415981151393952375605673095649190190889593092784504926589593513904924446157577331621142744407851960801314408761695008994081742045078215965308441797427720998280907693314814936508157755207040093085996550400941383472841521978843189590158846199142494152262644704262787003958580609570782887882282282855407942203587604427742267853165162398066932947577163423625816506538932163257804521064594577025740997519586900319619041600507533516456714900747051340020573271092885460149114053430758546478586157479033269782862362817585092948595338473195197709091067064592904424530735889936716321086147788113469849559524118374472941580169805243521455928744364949882789487583854282576440125327400065749692551048681966255081632099050966943717790896257078712182652320917037881642190062376183429855640587079712699801697348694453637585676330662417636099828647131690413404520352585808479317857308206780154260188628053123305363868188620891609006366973013367813333407032962714274809347530432283873508507583209277323721947541463214115438008550934123061842534645879386057057089428775247830277943284946716120738285374031686712829384670425964574712195399638988112341044889557407154421563111694777457709134489215948582647675763956559087796591395113306042046836079983434109479127333287258596876170168348070275888305815540190448524220440277938803754818281364853401838502836683745045873840035077802916375571171545902788286702851293433911387300248682100619223111235983029910194071183958566407815903637074421753418402944303387705261021606677775731249989463101937536055143388437316138712025697127352483143993670196940818589561677188302692340989886145468628861577273942312604190864446519943850201125032827925778806007989597658945497278223650591934911852527416586922114825992841413183319272555283694223794858684394950947611495492885780336962460570233135663262031577911970329579845331207100659024297648639457708643785562880516587153538129333912218174026448567691812925291653408439380354844633886732048441458443344023739310599498369027030816074504880598648814582803777059827907085922093123146824844392283166523202866212556627770337269290301147989371120323519062199804562046185616840922606051750226622484829148374335169438568639377308276166801966387478432908570287355881992487024255093801965664703521241987181468261809288332530243776358524774395630786483270129391767621279914292339984278936491869593159347680394510755073751636413453863756502882015124960956216210680917663612146710162704768073203969889354845261782878259612354881521531695615006151924839674133020411994648200855611414262328898975105069610910140057909772109413108533134028278826103477472321018049061479774073093707909261388412310538231672892491363371311894753787678312528597415614774484794669203702255195248294331114499026436251470470104440938213986142560602724631136732125223182479466266892821988429019080698587819440816936185015495420240282329887540673277144256926844269982480153771681594745383068346608947032461246931342156506969711034457223200899891789580452940728659283361021494020490651329427642065059327446470219928086119782051776752229715342710698147158284173035687855786813501158332841423202689934396755091983659276542745636346008523315798985111358407726934955560406925602762980166766429080856716573717809306684947300711784335517774156050365766451844266558509439513358101310227442076694439624114201902956455386713718813026585113325729153941289759893711696965437625664742768442366764819534121455567110903304805778162795323217909883936772075430031682854612382663377791912896482937130287078077336399551792332105844767987105525808139041716468320144785116056507800468536885866989865683486522034103088608191530847383665703450457629982492521476671615566269226199499314338485160443515697580640064832555573945435362288985701671985624445189796447785686639001873495246983960902835192645629331388923585336684045644087114217028805283193450124173287232621304436219106430883244460175568637274827479229449835452652284177739531517878258298159209041612776220493240816244304015010903171846086175701955545811142655932752997430715885769442120059687308935245686875751472236246425771689236732425242753212436768631739348502159978990054448685974330321237473515354578583172793571508600589120198498210337263219570877127596428223902337987094018264200355800127124031470905204926636622623547871178546180990347531413812550179496805472388568795924345164452842406043899086546439686291744211613516099652913810988892351167673978963858083560565174782662992100525479928682441992792725298791281148280056202832170628664718175950574481623190809841569658633055999742709658923841572701134550086384221086510802897743974414993975103619152402011684869434955945525592455557100626219844648245716617076242134439122221818849803869545829766421051596919778490858464152059068706597210305382939312801753360475063436322150419761118468966155836562124470718047252776907407637506827733074195054451524153351909977241958497709500639421706621577666907716820077046952676905683486883725606069816089490599776419632780620863077447858114478160146998225311583809735273830874512650206850208985208755196757964365328579510786242567555823516311715909379666486780798237981398763640102401029976138213279405688770730013860994226052585033595945904833768747471499521971727920544074502074316696056327027002737641845480234205218319675945477561341622911143334218604188647499702061217056858476283992058952259633010282934123057088204858467720537217370252842625174800751781490677852163788241319648005456517461989738202286321941423519630324581245624429183431880812071298966128323389387063043692176200647943784244032518710874085463856796269083984287489552709827971505085484913717589991119732074970845936458110871052244801246750969777983041261026338819435397502055370482720015054156974170105381695056511503046686974960609988257217874652810660437505161723445167757655019510842493475697017397484399118335375064798146531333074980024108976473525480568729683189000816699267682817170480223876535308239443051891336763939511264039914314646418370860301646197947941146028581529967579791809923051938096852812085441232198936284283068375574490275577654905610357040360278256582556990719449033632614378395638612194784663378998621155732018071915328073766384236292445691855478579694203903137825386573672961603760165715646129449829508087243044921553761288096622056110730759670689745923386263728153365910312489463379544620734587189083201605249959726633154020107030033760251636267983769043988826694756228267629811375216012753159292952336657244241112168967365449455680759681154928086707347257613167063559719696555407228941980481113158231452781353282157149306340673184408518997365606137164824028262858144137843805640608322345209663737581923102497634735009040980468280173607944102259137678632841303117273632147825597838699531346847864294143617536836311969804682922576094728051091273781027092704530120072381219246711197409367852358452771382345200916288406060652297146319772932961716126010922663630351067719793072157265012357345534839902047029194019632508491135636424411055125886306366508056557467897337325308632494459764652816220079547043035104785532314865218584813185796555698264061207499250944685421411549992024673659701622237962104078255235352930101410790497522309079367344124874536246915437338342581941615026091205656650403500800850466032742305056660091954872568543795161032049345504929538355613774719518646375610210691330637378762845587210929352466487281155687041254402490108762935198184155241594711742409306369209024600900582206738618590520854157101947952459691486718711625227790787799920039751692288566452259142161507742378529219813796632526500540828368196415506469501691033664110827922950372891493302372259983059731760450407328445360123327451028572170213035307486050454167012473803044837441530392297036351013329917925977692170281160789245575389637742526428191424760895510310863340452794046895224000979930069893253517271843753937802795643728948410184065182094299760981277772832728867231082748172312789863584002510188016594166583911255625800149456694855690730687817841076053362734451546710745371464422787458236230990598582862101471526827730045099232518254878226834161668054003314289818868494173018806461167629750409973619315374173042148757130009425901480563119351434496312912625547067470368794531512663953761103043888668041721100703845392824768169982503538862436210210981957369662782405710226169003067242950725928944002008382635808450769967222301308060501170408049416032130514048036775900415086234306090676239369907475025436105876030883724928696735454856905369460039996493516031031023308256441883087380051700659677499915548324270341855096075071626374078702218167607475206448418796705927970934981569994471225328544439716364076894287311580507000294478317814187814233322611417485546308059074608454152478281805754485154501655414771509191486566372197953935574149438033367957634678543735440697548422596404817556405003144042694543030744119342662863007506788140169154661348802564952835034055531998540021027394205684204250990860586166267679137877920978755197152986768261783618901991141531786390093668760359833205420721813012676785139422111820143060145292281379795345837565257678976462711983223878183238039845895761434567171617574349181952693510135684435849233748213516267245391305211589583314764391263543958205998552606277809512978622069273486970545750867263351225385214549031611584949061319164291083658673318470655132494397403307918608591000929124756654857180556847450242414673603438531939087681015559614961369137589952187455530180679867383092805405907474246860153536611160428745677432563801866901638959703019984075587669354351672968762166992491620034788367225532847191957417457813443163744853763957870645601927484601168455319269478650926347808554494907657714804249534378639587408448772869222781092423328564204695952555675009975342664164325130857214874168137610557934109604784823979292306395892561245005018400539745094144985992722903239151827068207363005318635937741571234585503793370758995687598373975078250433066230068387748817633997620656231436397832858371760311232838084631469963490406827871235392379232816515932371112766951389292770024590942504579733738004513813459844043630379981130463113291675223182318291654813576193271892215452883616755575795597198015328307477104586374913182254238610124948662204552273186237617876947240719639485612017352155608007858866221080014134648320545451870267560025687814678635750291625496489643328056364105164034136405127486230513089427672912953508757749631617378436868652401361783622592942663102797665812866713317610706498534144655083303177946631938656273460093229054085138577034970557247502110787045821031362585276381753733796240866216731844305085646079824309795246342781331986809930123252710721390008558477517185673416876646540659018887637154592647138120487128983138296563880017766854874312696443961370881451950978130634879248083401160083364721473822604193243249943257286999531953647698698369722039715113443419100633456815610692876082432255577780464066108090678715335542493852925895643041218687562282327692513741998144771302659052854874144553599557423527468436742748500937510945997914729697427253421563422932055930937887853203646833489205176910897175178277444168258020305750587975144265824955063418032733528986158254279502244234302732026858048055757355105979046599069488688052157091518930141737654633150423437674965906799175545886383201291684885220782417819305623837638826812047761525804897978801880584271271356816691413563610995788187749975112535077690151317077242361491216949699977018020352396052519383830012127243242350655409862208174799412760620392619850563513656311431318185599151780517870249298931227439187901516825055551127223160348695397855027480556366396990921109692599611910329766759921968913246222410620172672042385596024725071849931135261908908896790424675326058378279732556493061091632384250208867863959778447005186511678365498024279268258131111402177919428872064643615921625230804911199601029850530680321017394062581968284034232328038557618447661228979143606143664564740761994983436123850399218194633851207716569044330102413528951165032651664026195391542966092218004692711197476070620574583101282558854659213969947105560136824713080114001045264228106147468260105650091172184733237540372788938140806134909078988124431859876095611213515874485349968806603400089999125017661370064451112416000962094034606995675787218327085434728449580254543732364541975791582973328964981038202005291814590460541983835825179280890278130502125076235397158130632571458048052191052247103551336465949758577246838725031680046645740982547455005224273612072188200113680267176206583183747616453291207332166760053652780288943322395994744440029411665317939433388423591845581659467847353098526905576117007789719681159076659135970872877150774696357622977458086688294023359760102070058232955416689675864423202750253531549847334830215142892227041176493076072611391245712991228271859776919391514003725479382951395586427354888386355066101448702397783925199302507732696962684235263431310026081086394162320669840576977600674170124580217351498220830989281799483823722214803472898015903230397690526466432846671122982794805082565007466143598560071885220930224677413605136285538087369599282713971662267380134980535869509896109675431172750059476180264052835650849607333426290171819183994874315421123145420640020338053365631574445818357987369130279085089056730665694305424667393868522724924652702794013743324072322641998738202749036419452301946378735451155262820845201452235933259941289380710466772203096481216836629694350583152754026969296856620646100175528373673569588203444572798169586185148457198999764678904423285793797712998461851368590662275361732491313307441762410891984238245535062185103753949313023047454930557137297791463003596432091964445526231340021848707920642552135832987463027899064703276438566718354053836801436917363585074960634721778775966964733973708831381271304386444591252755113605977805894451906429085640367444941540798359094722703596779421835000551141281180010132971746733148724494744058113491628762031552985812682793517138316423130371200599495536785460237959412451468783266874272550947649742320321534352165224596506853593984087662524876811003259088384728654938478803360722356640811874565508046971455127360606594768687142938330549067525796719429471944954529985030853398459330645882872682425301038115630522490123910692193998895181699201619592871925334448115865181616176148473557284529175313929063339070250004244862197215008025974752349859953610248248816540223189057867629473474320375093661042473420846933785143876091757591439672547955028742103617123596402105421607721869160986166858115410141612175797170653107253798604636191140796684141341534038205526795143127591032487881568932989144425672543100734902420095034587339255999294576707554826971716859607781338716751247271811651406513722270752727083420286941308500320739643168649214887300903406258722817985044706762513063389692099294974276812496627118057876638074304879568311127384212168186628640866123493901805439294657306928876856607241142567050814931520810975050975961200319865501032373006928789777301687642590012712852825739923208238871805345525477147245927332824551314013448089415408264166370526049469830515887227557500921448928698039765725345018027331288802752847378171308498178767958913020245437157130713116913102453823810852613613158500114542692823706632786267464940548596556413355816532569070135230168266297582832309248744633415574338044445910879428337503625355120130081433760893297796866629412924221093548199870375468591570452335689577442532493188588302242645544892388066038699231180267447223670401081279849429485091821276749270614464498168330297463022338951729626406394432850466026189409428819231934789270692635382121147584816441855178763545970108878803755819102398521952767128413800884489322693698355010990354992261319247928656806404494826576156014810477809698674554478884499775540683210410299332051369415967021753528295006416765205132023864858194582896667859187654850949631219146741449840017169848183639234471962000820499033602542737798720381620266891060389987938915724087045511492323812951366142185693695236557748969264822842232022866002057650102675128185276109950859159169505533238693713445453578454278359817536161448576839481417409515875185011202912922047400645758716724653254073573677683097919647557061326887084820787158071650859566073895937025736543218494005142906776926385392685826545492529314275505235404816045951254707099144345563513316650624579893054086954762002491497859086317645872621106949694529041211619177096901992195173714579029249732232694417435304561383360465245518756958502454662228220189485668919484092608118780388835579124283815313985759872045184662831421107838902012574968732660214617333700828342801709148115118618822025419026104611400068536980794340773721967121268064547051817844276017581629594865781646659498987936416669882468495717675123425188342606904043302222118947682982212117163123346533124263172087909388776961106346697558272790357578121704279706857820141182835630772991044028224790994835011461674375957389795400040701696365685103577214395801814342038252430082114803689737245534803670169450064016459476375904395278122206435609820725793814414824404491062613469692665163280138402511756519143184404462724420334173292028144916450809744146687190658106057363604191881389072085503053919675085555712517246420637834849318545842393292182656796658848826124255002425850447053461202000796198368719798265816980123875770251978325533816461538166883798525665457816815415727218275676280741403809726376237503739880992514277771947798242401973055476565441196981765168563796463855088670047183295791211430580707099324255857899593180554942321217871854700911649488440561799773540681344058646489843339340305610410132261077617969049581172835079992505472905036427501480040865064282115313876728000479976574089391857148407052255808200186175494408582360561651222308274277013058663220171337148181633004071732444200929550993849216880794506886188829125349353292352915826658415706657696146997765967039884952248938024075153216669090693256550098609554061353483721963264075582789946165805972248515582233877025134079055053698488633994222711069180172220300366140403921587774089874072407670362666265921879584467933545680799622112515805036029468662732298997492361726141891080304330390609309961340493378686572957550447474388467192182831934094454792385314254459175902780578224834360059537656420122716915782998704391589263173573614243542264239025185196058582683546469061627527151597990665810049989719572272247670693510071687512855384358896183890633036336705732605558773603587239015861447465405714495931718630771962645093508362566349971896378178268311065756980091111315778089375926241319608761950957616552716226538398675149291481810098371314060181594036561253394654721855794685558324358278893099136509410412964855951601880704681846242513794228285823055961722941897465516580237559999870062156726357375453867331202001619329641540293546866923911737245376091013633141131692177330232795834643871511937226661727127425953470663010436339268222749850293416948380244528699234205123518722731354594635588971041653517733833783884254061370662802489900153789574661771903144081365430516044544854643417501044652333610050586919139125778686438241412367561100549741301236923667643788964810504302273471980728023251965452167697907021566140270738003578633110147363728479009400051717650629685811014015895115810380745390448885513422590440922707441019888791766966324950229251268859114795407621423692048623351680912709931877390880382439289661482689264511003055158382611045073233385622690916125901691046409573043225124194320308331578712646326152339427720095704777543873152638294708561601833145712919756044319312609507743981721545277985049207798451647120987450732748540850434605829997748277272514220834032057981307301224723502754309009562911666018819133456842641964484885412657892737883213282233145388966970072264311210745195744853984908114814418293070461862749582861673642503391463032277690630619314770972524393873244987005981275637613691215032558677006507693914875220972744410321697552156612521423282485784881813887372552420915607045906723558748311744456726355082787307866077810711525171510022401651419532252852061989862714378415868350182155486174176450772968879636071929525709276020080002470364100904633742783146535334970304176920883007541849890700370205173371485977297528376561122995704702754250409740780479714213703529647330711966834788897969594686104380021020602666889661039997826272186445101174848810691028040250543873379725559538462927893105951395155548372518708414810676606823169427185790727175405571557687564793018083882214614273476540968373893814396129982626775234070392135726777343462617587148864265866076690643647060727189294540644435358664444046506320596562497070284793802445844544553683395654643547197501281167035168122347555982542263860599191965121456423424067952220956521373742211835745983167615018013180965253922815369449336676728360514169546210262101215756166915789201681848299350489353485586910302871606465057044374678680408302004770600133705060392975533699688188907347885561992802520001267508143315336068699394380827113470699228117542161152689455161895560791192222239178326199113167640621678472291770469779252415172857921722794354161599875715152929420345695162094883771874963282456656723515053096548318996599579013104281888040602160830916670337996893703080547916011488261428719258673795296626289957064435230183933794568141910606025871828548249254160336521591069424546812922632449023883209797678532440691510712059358297669180561469668173056607735381583926988143673917062021992974836505231510790737638771183048020986907159262449154573969747905382997757005966217709885636788044914196303769035774030815070299815736033602199655270807308420362119670338175265756381174455589065306975128556685422111851790796635345329414742282413173442554900230806285534228556568836192568466138829484004194253593894431617943469347496475121112864415732280431103066749279855988225183571860915696937431822289738449170397409140549792828771617866380755650594839032893345210966321781362800811908204230436955158674007583359946558153060789563781971921092703600393795942727429315601500658415711680339069588990150173878878883839990760523906163925975306188244773976389311489827579279145352522455010591256457262466053507103381297850062947601293244313651238799191453773882695393197433809808631061369320676609178063755261469649157271302295136690900599037703002086021253078090705659523046583064463248372169784820747429921387309495654218830459042381677931135204677036601644674267400856260320466181009703541911474899844830258520015167704711326063325948663987054853866491969300314139460753881122145188279405116134530688574574253635083378055526845316327797838529408130011901001694124735541595897488632565241185185845872579022703491051637782599993918068469622330984856565176630656422939375429127588989461763538521501327853338223399194800303897357428766075417513458097496455702520256215856000225074394182688974933411254451060551798341689434695206554361626879289798515520357236070932067248294143201053283649123381246625157145995436238400975029519907289057099339831498935225887188431229951198729093962237367773612536199904484507927333673453152828320603598378268780239982129985130222107483823612966827831588719984344388568228924852901232840425264663935109726734810920667259159750280460408827716224383698332124124368185179221998806650432528563774267447044027572685119775932016554548659387347215532488949515502395198780690617912444839617667152564858801255546047870450012913005314141792976609062155180184244130654469766572580185600649926863584831094359086132298677209483784529658161621853618347786951846120350337533517159804371898068638028711743999953951947977173575473629475202026021803342341564147784572086271730056886751327291324459890081753816081393644131547413187922671788370353017093170323600857598232256667237822554574590762275891979419629752413383766408453688900056707084335637488151374905110073608204760803824684845720599517989110480995647875132106659844830069081497588295819078858321883173947993204992484326891922479065861534168782245301479768024727585771430399128396233398247314856730620014715598303869362463824388546915029279600661666342237417061218608567209287987859516799065181186623273831901018739198020169598033926294437400036171538585056687458567097549314434052861758987623514403182874149872549172867185885501980210073346312463598796458405283223610899135670051342382892852597748219272219254007282169496067891210870685221817987675232470796385745902344057989531972709667135895159527860296837559757838963075036486812384969066066964315665129514901475923099992349089823757005484599039824435879516445548568397969634613458680056715712096638608667579021024034992904616083560585087553465242522621183780424796645979933269209514991149328692775786414126872063942657472635618888999843683831625140801598156201793640697302796229997595736776999464068563741353365734008484789917032419154302682795984105719719445821334594342597839556410079926744058339328794674291951483109574732935324847625363011796445723268949786813180221905502732359370457883375765844874774148033755775711303700384910905189519725558353572281382211704955362410772080889107940619135457838240574818164397090827954849689854241557341264844828307643501692738305385121568271402117301898732375219823862591620479766201616522516187114575229064932567977122142410610325952138693685481227800776605773069111216258739293382092628192873020416527911700908970342338101672796600295051994977961107290117885959995334334715428945877141767358462042571746221590331676932709808948723713898992787660321070581971746377515480144593170366117766392460919681067200980556887885442488400499830932444657201261819380891003681429200646286495633716276326414949655161576757642285689573926581589072622628835950107737035698965759840545211831273639508006978201685271169616465206541257266285525566799242201107081446836348476029345354571724924816451234596157245805408598181502949209996114239497200498131340978967252168039610908752816016507368487724672418439788220769860769116848078920614315971668205434049530473521039484580013876347940503508899439477404881052507173003020746634856028450979860061173041814627258901468679158223432468428063820519866042786141015565088569377696039495171815795586064226935718954378309329631985741684350310385371505246446860401895006136056295482986696948182822455516501571423670053200729943270115539544234283836382283148062909023341400856997133208188330383194109433804270315125383279521233730884800852678343446025266954617469992669188780706541740703114890564594716736727817600094122395935740643326558771585874690142739550008237375145094241526086235695929872078351295564896159553097190674650629821354247998119464148806610382392364691253133577503211615890002443583335198730118537934944535685746763872932111075903293424619882583698465918023245474993780213571194509425917715146095344860067895031404003301883624921894167853010990505750365952812793872522961881585174376331409871593640228829121932195373705466793175246103808525747169590138741442463240292844059807903047500658201481826401924783285934656426401273734615419884150257692437320028216509828923665750695174891483874532309210700582162135293398298009381297250810101133365533729849922611526224678353774572995248703484457864368741035745353271292903330476358300283138065565114595671090413363978809502341154322254649273021326850640225175925917774461872508757086834506121055170664237347811594705923717672283283415129518385144778018902085160014981049046133879828036639606222457452839291382673160949361000845336655983448042950730413011591253842288554031969634160408488697945744340899060901099501656636163728710961187658999044764008964025050648173776571447953854443149633645640755337615981693816131717748058751465028961438630825962092126518094096065362089968910118002397415635946883893303913013281977337901241607380042028044759354450995350290453893543950724023310880975793211865539603137578688201747171206187254652041665041345952700182437100228857515310325443436728578267321491019311359767771341177436368924286362389750759365393493394002397032253373463937387874766517001465637405554937058850381334548292458386743762181450716480721155924564962435327383737804605782991354450266035189564893516844910056134815076133464253188433294528741645528241380530813907728650928193168111066554046092614792087037170888750548832673412309172289845741506935198477078846426393611160471347789728055357838981527345589390696956280722818057948755998218371147390607753089064198178231521165181042075423225028347141486234814691764436118875184215681409312465508429058853287709842959378132264368727871534111959373337692240965833826067182015487450839803142194232448682735753323332434622803279180050366678688711232957307745011116463386114406050109645796932874758423181004891056465541918463536781742078907961675412937178463182564797860946257072410213270883601598324746911339840337215852847859627274833065650976431804003118323034844452477586885727678774771988151677573483387024678441211354359940792364315331572106898532701672163407584018069768649742282733986945763492817148778186507579558065959956938279691273074850776689050921613135041861490565465837920097692412282998476804380975075872509958564368145175114930188380910617310673477654362806429431416810799147272122600459897437127433293274756374646865045229981956160814341258492588220528803579111142817049149431376625653148115783383113428052975169000305427028191405878164933398066962805050766953441488499072802944681598556095282601427671757061516933784851581380821158800757732518222276467165812978560386587975889093087947582478394665760617478616501645851933372804903567108828432509557418642561010494657835617619542056397668992816139212018268273723185105633556462061064574126332318919483743287842514571919626516076962092471854159943865315745161802821975904843182308215358455422139073908867903306167101888332082605144554875933311900626239619892500499734131063400540932889046341093614832578638572944647824636632988790525611451907592428453537434133313072715944859672502337845649749179033343136192435446271062696143903075267968243533246009798811399941167864846961311837505258546323842390118630063255056544572705769486715794559679954813812609431985366922622926750311976741705881556696046697526047598923807272934363601589594230473318755520704287175162602545524415524940661497252935937481077466847803330394928347641332269257811781831308912758549850289198159320546922906900379344152021950011690614251545054601883030133326206065792810216162858629611280334220057706449237517067702738765169719883244572360471281541824238637185975158898301170625062791081585418122425003870395864702023061360334071392393645126955100469528833853369204198186908263718174757553593739458598419787791857739314055341567865128460758695954898483227684825045191263977672512404688955018339291652408405028258660164751239720221157861453505627859623467413207114012013486839357941167948223983684573569976275972079283073187523033149286514855902964391318831595900026997488986916399153260362463045673185894999570585512792075761013091599124667610422283514273270868462543349223954303009567746650149122563131398325656964880357492567605443949884924374511788505451794678685505577254115497575709139383212708008896803628506453228149217849126035745054602289626158656149648619014038321832965410611591009603047381576286716712491472284697383545215417574472150424069873497158601826283702312011349015644610015945444887496066019980224302931425619670921178554235171092186643269857027078679705646459029027502533944751997754331374112553475451257240255288576277802546554537474391399958431455514649454728020928706674439048766903831373111069131287397604776247065423052402753275362066201069603124542322336101409455731063259136075706330617078898882358365783478741128820521775169956944031897398301470100964935965961649044316834319726099814107062572018051710318206837311804717138744686512264286373443465774254685235140225144349280281913319192915985471109093999656635985221077522680620160729035618675471218561466337666729660776471391726269219948538293428424727185908714410680832451246349436625871419900047077155176839463331817060418191198512233435419640526123214443613093724087485061206036360131051371792088190585551717553156440640542448056154127510183813378528449042656132252466192992852887704091661690728986144459727015587504472017036905144609442637886916548832758051304974543306332946687725310746722540291113161401340172666043177708256220018688797192325904082643804993496534224488161624868323134805854678419041780924086260635285034879494261647303590532204448516910589710012396751130699882577132102180132729643676706690772460512354313370483696761224510772244743387368656630816564485075845605303883169860519738519387309807487328890375191475408075343085635805793901608766926468747482483242757135661612557516145441189958074224286787298975160567179825328425064267987529126536858455316734715808708552341007115714800664752425992554118698383926542735212260123728905725856795748751494986498175425322024169873778569942111941068929245045132595947250828648041461142927447343500574161192580793812680261449928678605582280594113397038297843197860555289495170568749262354138222248017726481308569286032163187672585347583207766424077530676038212497935463324066371965101021055502054499960303421215911773731699933549619272574089898384678003672406503246705228513421436027122954033136240158104818603363948281691846497008017512097522029509688451680465442878013843866251123575231803020708355787259749394662072450642206479165481733124562008561779661311972348155276437581204915728742893618812701463494441009955718982655267733141384729172505942857120002473783208377517291840691891954588737248932009958832138494752946139150695877748198962231895430412654524373725049284071133920778387540078607998716487812986258418311524267982597923191834829401996530428308762033034815832323204831112445412400489877078802069655645771665563402937310663714815647128218302415832783436479299457077084263064139468583199264378884773294446368561663934962582441295347250687584684298108176508337900767468868277631092202052072901477612749205876986027518342283477812348423017015565694570748846503024043837254002126040153365475589029541847442439935867460916388816125097767458887435600907303776513193134509140976861935174199943076420838012571370163758929726173323592524908561006052739085477876318970784376132471340796412517026895238278023271652224618755796621622916901542956889505970610393933988589472509072567915538753159121368189198909437802712580460166651966825600378717055660574261084100701264827332732744095579180267793421754177880525147538881331436296226477967375822821209813772234147195955607161470062384861620791870085000331711487136752412853299240479874205854877073912445083585174404562088941289454407135521396067887325243984835467019119959036233325834455957513778951239594679778826730315534502638775196151229337727343332639462710713358174034906760222590756778042733230478526560513423694141410217560484526665581171880855948429162526652468981885067286758014952173657062267368953748915643020487981052175482881113622545831166726400090522147521824542001425128792362841251744420369813685325819438098147589218536999360546630899186600559127870681665980553845108283417371306872417074103018607491676491470124590033029257589400586300361857781230270393579802062409857239603439962506160597382502989579996309921758320817439061690113218643888709801233167920761555271965167707687356220981903057098699347565837458752692250841288337609805425615133009868792470160879284210453097448328612943490527934292183950828950275236658091714552055036117134998679181386491994173976575210096114837392373362409575007628844083389400753113844347153782476662817132762480789008191728593533054570524770528438465010903065947572139610813553052396818168964406265294074603893228097695887002219109922242446287545189926714820709098919343507224687057243835989158080416448552626900633884278764491107430287626731374917236488587350562517377311250338018638144841950089525118029538401016885907430807577419386330039794919843836254328592886383609765471904998837961747141950300749371761947958329005120362792343841449297510282867946889022757567109445454906953418124998817358028128361182741281521953688391867590765640039418897679780952968855917607686180491960777042557003373622642229154404822940104163153280656937390993684951782937015850543206968791735458461825260014453799981145261029410961022770572676880579248858179051935799542431265645889624575516689725273275953301253979547830767371826053272753352004783936923055454960078556275663125772218378231459405670294938588151677003515539053063720744008223027699938229532953535159463753124031181305050571524980416705781885418149574405826952845069206925523966234018493169097304733254648632526214662034535414924685043030742023294897917879547992852348126245221126395663852312312389572926274175901985070490188118530747354036793657513652037312502689323179401120381808185065719238988610366481478855593615656968359680321165510396489963753130371742857630220822003520826917628875623939682577141975695702179536316989925194956464867485920184907281612788876348122478554918538197648862522578137471861546169421439102845799171457152283969829556010558612383840883175453334320912025754946340234755129106505879951664050543765328335175514636793809398342653988837514940312592290226643718785309111752113206237602233441784770063515973251013597813183627502857099613432302376805201584667004564145881035205245948786126347293432132453857966338204785706404931942638352881650285335932954568065410820779858020029442640128897397477861719941096816961591129812276606501757502298811589272246687630897509436208947665271919749909487989251290966840621947105038900093557239953374919279879145374599960116308659980313496116850759933700937701632901950561606851938244396948740035185120589328680327643533915676362365409863318348431390261528610977767757880045802047265691689075902124921896910084079046363507516050361212006732540739990632872498632052747036978764622434323101598992618765824674098097518660786306828778390818736272042581239009296111892028202595164107751594600426786221944887749229660433543996818345241392514720888729992744377457187702518498865709485356343040590017204773074242278820020628982682858852901649391536762457393192606789874297590954117127216275541164086011060603580325844440489678113822359222400554643471607630650145825556796318446003111414044171834647059424096891369560254276237681734939703816513050069742789453783688179436470649292146289831371499089605445099472915973974574360133358161199438681181260819303866042497598328922992607436112099606384657517445187303778686885786359178718961573925742966552419129489822144535661242576928616601933364541833865433004449618730143052918077569260441862745750867436959811721644939957863365042292360177714513730366988597043909035572726789442319337146548897684245731352372201818638070815506343885145545222766749914998623224831405453129848346635105939340801074648833569033674521929422679752314434032203404879388580140471972884168861627631090317759507211298892672949149585941421459202813246560982579680517447987175026878045441790653960937028942488778995650265945384681245382692654647792589588939590546378994309360947811453175429986606756185350010532745043318863324485802839624692943922625406231114154600487708232432328801075063884663984847459924302669635424614187904952858734111183444112890551024256495094530835868251721310054721230362082568766782280435725316845551896484189030730864249184962295490770817621034579106095048700155776805654942479199593692466298682568592279571841054553179835607802438015623625111728588426103872548282956673027294591196056295201332147931219569900837558091784996600457749952776924187801015073679306894107295146428119349251947240358667675093556170204797914912941083188176898992806595860882928357867043255757477655347429908195718951145995989951439965399730995657268098473767943150561258263497537293852844715773652074241284865147902626744464136007675319367131834635266423814497681670729432089504770482286865172320888846468507512297604211054752316946017361801715787152135894502570561980521770661461415314149108391549358258155256049955076840449910898183821861157476157678761170047556419133892358256461789921941869953655737333586495007151008652073576618135462677339173417259126213398481687032541233458607788543632881498917909416899773281021241074834255926693013030168603405854971949507635968456812161854203486732679390072761402274090220808277114912512454523904852133179682829377923603997954406280850244119150209191621982501873447148949128172825629728240644254118764832261899363997808412735642798415162708023247935121490759515303018663116493847500256400869986018831851385326631948147898422619342266283499650141448405074344862253322810308433493267591923635895790333193909427426360976021724473941033950389896285330111424837011939751884046600990376768824917160607116728147794769481074071241952719791992448789835222024283461748538364639312960950104454612207815910362426720572581002854957571895078422150780537147220363180248754220473077161692558058009334270043177584580407460242600557299000880011635700302346155812292418389489567966806076381366063413126754032931629300694898112514847128105731414752770202015965986262451195876207564360097304769460906899026508154814548912487377645929795539960945738506505177057198409226915025272303322893983043270628821874041325046075247297259703815843233313847222711942130029177295173687904416635619229792655406109363870776471420219124899355975398945112234121778375676352682129971536750402918506129517087761921355866089215667328420153442852277408390451885686665843164520519106303202559333150053190381078072716165650701754374824364768864246410446852815487421721595488845428630012694590619267564852584220891487305804708394259275702883599693266643650344679492511477092710798153600751016749461028896032642922373618513138055260865453474178477467845360238092398956703418045140972461593390721176694353334803803485400467692890774919318276414693914282012720990400308991062486882881739678294632005926219306684480671527676798125328891264719084314890722094826241053923581549962641930756321789949015389297625461574539573348979040867455071959486473661378600466246839202753954209068575204451008060223912938022527605073337349162601811381976348956096429550947377188931041734363972651123460846168979166805789255929966707728160113804490823395457360649053191412820052976189974806786298268669205998627974646233184272460271469450842248079957816903719198575211920526434963394769875436883369649968515487026248720215594425599749205356594966195613323783129996085985970030991773713614968372944395849350760529420665902936645672836193942774389079491887513953324568413691330136331392498148783281200176152457727263360083409094364049854883097550664568088669116061411625481422470165763728095921813794509420596890066010266241785512996474480187349768698538086899706225264688494527613905070854343010394964789046013181831840430130806706544800316406667274206924237482390698675848056515345233916412658230332829310021656344224047113780384279331775700871271499335670205567986195496578450241151297359831393248898994645230963512602207545298298677049757272796071878609879683319708942972092190611386013911390589783339132122923782745831325985316059268932940204010265358746841341450172514188556477017728294915076345300608813831757270440117843431813941404283355445288868066859778189729903001635091239650435982420019451859936629891937271451048917086183100612314165352145986904648146361167176382930065069648301463100454983459593091339432534009152225664837888458306191736046826460276708139954115829799909412303900654113388574287898815684874654950187070080050793753189397520076233984113924215553937577135912816129541054931275755007151814870364590400807814593631081643204686195415638641894194310841586554307742523019318749994805139971324373829639514457337484359193735815247519024742479219847403521761235778420414982301358841368157093372597629206248796385279271632985707074562830637510631572141461702700964945449329866365018941683523311687589216546325965002682334930276032996877728158690577958187812195787872983477631002678980901754654752013559217514609002254062676916201738352828698635834604842697568963942299902553953909219456519172588264894263286175717012804793851618670173673135867102088252289444551885327772786717632944791366054083939337532010523078455024430013103406927794831633873491287450161971840315391125405705862807332850971385148371707430599716214899179431357643642214299398418541463495317517149599007275893408363685327406457949637084610842375574196228495273566446729362754009992957449472063797692311008902041715304677102478474377592153285037074930203514487057911548392068953702794837591771889949818647725916122923222602804937446328911422137328474033967096256417463543105891932734978725131801478724880598624883187947690618231753690367179385941993236538683129600355248358533354176258901492280616110982382448737695024293521068689427812571576046505843535979124336807234477349200255556337172722964252927075422988523324259667427967313151735508448622948036871556679871583411190354062370124991151629095194057758714147021636099645763237640097575105755387704568296535806576319474801681392888619250074534216521798906916308659414696771027647113476178219939537563794409661680074508223093006690509439149807130246501062662499097016180287583719547059102513346912568658892245898236559046413498419769482275532647685327102693991649882045459720507268847347988781766307969086987005816249664438209255324793027231402108329930675869934200316203240564249737851465902922768363474602812800492380978249519515751158797495788523892258367684721126299417512879104174686846162734237186946790218846876256333427721338027075779041966025035679806225756982197542846688672496230061998590766062747575048273443625486896308578592556336813492698487035549319756458409782235423127313287829322904321897329326889436317636098101034766738628414208904665374555984044930530374786728857291134351344928279772088160070770026487295676353330485745201912292707087908039013566008496427304114942043037044785338060931353536172349872276423635844797317888673335159792071038344112493421531560375141645979238052245497070618754771692424967005831897864443795643048539434934163420283069262412688615236146499256586729400927228030021343499659689746391827555968383794540177714969897756901492282491551835318165697817544537659489890356415391223398198717075499588889366347577766616818179741455037099401013254174734794474804098153213279360938099428970938182994622431225153369227402347961401385680359551457967888335826619606202920496132317547730402797952246536745869889583712418134786576018075419717693710494096383549202036581339218032553122553352463109894072215942819330560118794835051094794509936781747924269332371887432878136095096283580018196084916441049567662619248330875426222554687119108426644443584784566866017692030033986409123593485253803856763828223993226609591084870797894771245757388519676126575777901964999645123836301069253595019376076903727855420880777806683555237544146939816555496510173310031619700670562127500941243890140529613141547339139311120680759125422624516395514496116171933915334992600639244528829068849855436605295663715739130601703761423073107461497772315308729187914790632974889052775896394493114094995199623330965394370862305263487965246012006840521863477241310300716566762275652378110367040518617830699320761996008785750625744109020631479154297614433316032803460038785696129482206374072670010084395990059815495558595607838366111266675674655480204701155488658629531069863081680876495821004133000408051887405600807926896278618912769842838264342309385421972643577110147424547282915026750563180659029226243381507520858331335768993277515576690510617124945720446310501439826100997691411300060433441078844007261987844162296373359993959699354635579300149404449404794479773913991946330781388098371416053734929904370076686903337363059150206426248287723461197763026474142570585409860267755437081624730855897583684616261555522980104555314106796907235993941182070663936261622476159189524418469639215368367495353201848092938260566251028225506339497108085100567042701635656284952936907485513660878677613286733520301008921805260708840346703914738497666929318974430772218226265255715766520135398906883533198956042260958877494235648393269161853168397738823603284940994668755412507738511578294987025366208773113759715051656652875525561075677738637973905366358589089620381803238111817868163350808731471449750390581165701796680785430980772906867295031511371490611857739513689548731730321453809699628449693681735598913068354604983687677715249857575762561175769829477326785573809191494896703132971977754815751671729726000348619331175209424024068336817221899989379891860234635178736690336680659213172749490778765539284196155467176601540276771135241420190998355262437068575013111386463903919471995386944415405827258203910004425908674230905995540820515209311963441886640980365095509362458699047939920555124426221360966335268492515176139323666873751635706603211677170123136239028977409055963731640062943933293157730943304672775492905792545849000330445017085597622768563515702186473343095158842692168049547075081362576593129904990809383601806774137630680445047390133136765332936006673377664204969457908223309433884968838005236445936149835486277491553641212169183302933289029454845955887898905065300279758002875877780243391482835763482661969285900220168343329266487216761300527032233219946383213534392897916065892777033032773221236637484083284119049771968782743634466553733713603760112018391821419539173352309180671056283469833064928371400367008458754375045092026770281125502854665086730145694539682298093727742735198273159955262150313824492860487648223556941838289185809234763463887405686661594938526335898383198930637983641608734741472588130799875206344023416090427460349220193084677384800311456098441143725437845806447940586502116192206314131285124230970033103937408061602586048175085391500837702950339168796371059215383917700467072707051420517706311837792877043597429432326869342997181691503015427226515083305540556913185783640488987782902048846872263713658175543041401764985619794665113394726458335485710359639706099850162491915562355461853063589179143030467095816532867391711478369543884309638076506926761328071382442841696601626588895587613738703855431519794318569830115082260289990378910566082028192841017955271837045679033245650513943166352142476221611584131427788911516507563056061145659267307959417006167413083342426669672245692522727708809734360535863688236602703659841300854441022934095516927353703474298188080414064234599445659267502050206199273500613122713172754931804325158483587757911139630911845404585937377279568921990677009792764612774075171464115184691492895933267605169896650795579621358139868144166042160683422641854082197869213064314055415840491455580553272841409076775711935062861078475796392897211250134329026657076326786400849196817037055437088159002661085872359758972129424132506622766713404841500286272874394234435366912888038585724677109154207204413826077899610040227606012843365620768690923369876408743057672611356806870089848331877134802446669308838123630219550881702597358436289294350755936335747491561051148425088857641039313065752413173374394725097518170965656934493632707865126548289679142478465432316929245053418055641789147385527413654901146559150288122109807129302467595298768983462219397536214194738288312055239388206263583813741191970768665816297490526425999616931457270766064882781829091957769093932345960119667043730765162962219592733121166646234393459944217615714711893777009943346075895901446442779219163783550363831007369443390513884910471147380494096119713072329465163644736998070437497040519542482786250388576627863692378124657967867302600521706416944048640681485778554337270778667666540271035832176977612516551228170120114709697551414942965761316058574463747930119690780065648684792195265198118503202122575894900382203765241786983452887266410956224243633900971860228797925706521593320142261895223393107782078393104856206242168992139967969443589179505348907205067784873450579360835987508582364843968325549806650353797800915871324668193856166468760011398889900206694627443789537717708851882953469564837655110338775996683314305160683342964282047756092127385454490732667239998966934757617775488969447209667811766239845755826955907530169560972809426708837639515341401810673851331869845052712320448318507162154332340192261086107435149712582573810853262903981050329571504116300633361918414279946381438269889861180894582760410952929915215868112816362159072237469797708082304426852437288790052744608130221750415693318133894505394355251548190181857893396441907511530329497525316138662707362066212119967568095311137337923440717682257685973675172421759156579669241809725003073048097450395298617744666201004115283034908117962344365607479036822567949423132703193557607120266646923311387012494884077879592569414228162512365937394357640586726334925955581319457410898505399843379631291523283183740320874989299690802004324255294548745593380147674766302596075455256960639428415518953728258380021402975097562934698513546868722318639501439762057753191553733289587966944542700504463297637826473910239953578922922419414477784493832823070759265328414867167628157825474736425310309591459717820561001705223712029844019210360145348605981208818015086228241274440958609576455257368784717740571535394255512843540896968173595078434966275692727147815463363871505521733477798786683915604932035931044914408844772545051973711666220058117322244845144160028635366835632470374745713588031847681635802527830335508301782080374478539029806924027525228544477608971413018778569102123642836826698376613777145290034081431315927735437826673986749417498376381605675581106129659426562294310135279608596044746716754411213890443043005380318644444452771144253632272821639697445769926890656143474906463430146066780279016951587414875917312619820878984611693270909810025491376292420899197692718034779629027309150489460139606493613906986321617763275718990918259502548677809984542755381539159708892157825379071801531710356613086570288466608283934313102974218770890238366440873836017309864611912693519573981203660274362040431797355219603120139681697717137560833505657958682270100343037906434558055650391502030639540757623017404186605750635496886392739310812027907948927871630623544105955746868709969074229652581555081611280103472295876762374975998471601243551441763419646275855115950348174830848615942369593764408444614784733051420786809106441730069172221410420181373516104929815187604165346937007072751626903164498254883605705072271538583388911508881174217058951834306724328670830012725358845875281916003463487658202879247676018758742552139142736378455640121718728880473740684640453903745750702360628429101774147875688123703031056142075545336890410078765833576009693028882123355650806060210415480783401650177172253582418358736156969591183126994662807330698641384136763788479785684177184713869666787816431612423871143512520863331229888671264267389290552261006942448700432790189526805251418066365450666727156562090555071200561616739134633704794690019547811529874461179575900780368037460875489316467544935056862658323070565346748002208980252639633240100876129591790985252278752918561231554104544423565993821548069679023020897907936072661800018683931025969008399102239834760848602906687887520384575874229254867176296844697166078061712572910756606556917388304918387475160527373544012416795246856467093012413356845401366506411862934831598203351936045143765523452270094299513537928084464362398025134609096867495401382709507189672940524279293218042067997600244652816983965729218444675536556129392550072769286728972297882481181934040708697098917983411359224937744809660559003540612665495409022108369107918473658400472638512429892868775859293004237879534025466729818241704219178139304131063746400773493199879680255948066418561213295474629496167528906903854132793117031380814926317535862770917982299062134542073791940465494172358617630466472149312719577621894285034861656086170266547436393253689640082478398156735653756205542127744023304453655756488981206837414734240291892659596047035283555576927572466910219694640451006752002853292164094704504084713698551745993332220724341317921973945602583968459601900323534979882744125289995495056109682971211696022248742605942986106482675498987597322367103900673088104170867132288135577971605892944636850484910177452125388124156470005706050741177821718802909967464382852121613606623196619169110211291476275989249149530614509097264129053747532337032499151873949387272793071252156501078799775810492444020349503815720861243575364219780834367834674386496266092834127971832681808596815761782110122514118263759241709205421183914488132211717632793250949341565915113714861089848264456319212726717786285971160255718942256645228953372994865429237924470529251685712271012219789484375354186771698279428171632684561312553929791568718335032176402940353608442546888763809157678457575160753215531673067636108645559996514223315756769293125915737838044842246929981307234575656260326154658105961900581716623540455751045316046670376905597976158683081540475087475743459127561988739832950898054513002882989473341400942831427805935395242932610688515232128448996890707761083756001933717829393118253902530336620271915268903622176274714653967418507725007746939604953244441422502640825645081852626346902248138804028566055835599994020767372580702049238216225401272135748530957197532784683161231232171049577186571574970629079886414346875076645689154063801931181348143115037682039739460609760578096782375931712386071412466604332597234628826427882571773585599771525071853033955710796852296611067426354509762172041847381418911544902826329417539610801813970802073042443857441387800744126640436348446724572110827531019970428137509422804962623132294140315015845986947789499375561838328406779519952944427688569330006978091517154695189119782750428451327750032487941840699237085031982357888387252939933942866808561525074977920683485497267607385745184745359932501688384416992618181341324774731081631502315481000013529998600248000721032279575190379986445488579680417752323293677994531370254582494410313217397401586763933582119495039588451094570378832106031761907453760735063725807068246097517313220435275516818446000788224711420843633363342574542868083742963458760205034662721093849478109770934267158085823075144444877419053452768294707304805376880830727540768864249167102863548616449573834173011663597743894339155034843274377340826405258520813303881704673072888817953507924591894043511860459106856250407300092973913968763824444540253052368483835478523918710617608312121473105294985582783902661844092486469391756140144376220878262956724827691869654857560685682958654347139383937830712256816416850982939852508484798918106036469379702259760314283833743065250485160130456663814697216022662646874079908724856968811740389826101350575544514471894492176395659712919975156315009347115950347945355774420948106520852269594784758974058727570484855397473250997519979332101335515012084423202120186477714269700806104815189139472041660844339529315630092648618161439989037587539592363533916197412715618918263281324031654317368011510038917532071692420631685242689810950989344174721340729478196750814459035310683465710352174456417019122235102394244845350643142986327774672853464222648287473864953765120389999526891979013648326480501718648755677014426356816702675684447014897336846421555222672984253758679323975549049741575377317893619932939267866744390978898867632879512367142008472083304695914812467657976638624970821522863829247995047287008693938201818742279968268728160308522175794374458545863924897641943488528561633284902304347439960288525236422273700754245070411079085028044710524011124373655722934557644591109243492271563839451334744122266381755756759955759266333592411054472581703816381038129368319792938311879146207928241290811720396502736707027161111227497637042612711222362735088089576461199891225915353807098855683341069697169479704152611144682959563084536417340993934023773908471258559993845298266486787658860360754245785767530235547571208605533944186455847685586432059713055017766377157297440134964719272233542582268719666494238823407597033752214725858596028778322107742097626183206625092183781932872644778233756800663689040602197086227318924721902567801978923076385766096136400076481737185815268770224814185016380483305513829492650526792555943787553080442514858748662179780985442937549831215143711975796065363569639853794456719166355665267605145203780832582943343700156902487013248612907172075063936219557180452096800306189229509700842481382748534954714631607543974100493848475082078888606175527441950925810388962392186702861604757358191589728076381502446534307367820105368440896398032993082586754885510074403794232957061783515179692339873084466137236409443146856243798077866483484390440083553357772013159626363253921352176059489244326418622688159055894842680329584531302183503837823246011629981462986708462987836325253417483316593369954837939408103103597898865300574360670181931813125514281783610001443417112553732586096290004642347015255381501515137474802342442840297148345859135629721347769869892940627508728046944224381379544424620503320861197053655005673929775955843522400006218103657779766618566031914711281288333668508264185555696864280854518104705424857949468717494080353624302075811220842057266344256366667180870013046768892124978824270813019563538038266989892784158466092364882758159599588685392042252312586093749048867624295412909040761528815785923619095288745796412762646025422272985160174914722925460264029548054713556546115808281022197615860453447491383647995086250083337393177725871467761807894617046539316992225741820699708544814389196927484330205148887549579872908699053444675958203963196716058999754913633558889789391929896424595743395709327223394666190051282964578348418655347754879404400156001355283566156435090690231647299155987781058784438551299673296974706931423254467566959555729883564963532220936213496585600578143865181880188314413480503992770816542448356478731379558556111459126738992145453776006686573896819704215882697675910321041382589115935828364032225042298145247982598874866657071469349960225266905801897794790953847771963719593841119610416758400727790448364273532021247251648235998387279885941951772349887790408503879523394578894098311891217664112414731475109970961057088979273655607707854909353433250255397756856327610592067574915038016122648261825916152480830422222592883670720345898276162687569510934041950889710910573802096781906895861287311844420857475709251010592201213242201567021126337334783596274189411026343475734241271287063149501023143377050200527092205110331493983988891047432232833950824250231497623019223135795623006175682134991868347001085980617620425399908681494366465974788732789935567703061163655536090062624636106607444446405361693938323012021011051747179046360632907326241776018104399581022768260561887441882159867001195344275231882493076636174979957176928207469139864312480344860698401978029471033438380499375272020730878332442651967293609400580493623610100739219405481840912225562811892677115072893498049626740818637171685050625428923275358310639851465439563237508524388068647018698009592289689795053336893251749278668606669414916459883693869553594034236539482017489762784330434412431544383088431959789435367956310789692053920601507750383920921707855304690919448900895597487501826910100557676104803229975645217990997592885977650139678935511628001924298104178343732367897946026886732439050067074554171921463744808825111945555313650730702508988729948576697871897311292091787461467254916085104428333738648151252503916259807560675744485199208902619596140342944616657772997292556332855899085445459523962666092700432513817079188062846496811422953875726208284027285275908298693299499582876029107280135452896325868812157600854284025312003320406262895175474353723702169848223497170429679399241624324162380575618557145729639965776445184388764127249757128029460436080945710459601203028285388000925982787984516955278966629050169515570956777432978286147378780558139128037978501863818175172287721438716452249572968962043945474133382262931018551790127232505395731257856332127517530591830961979118097568431556022114894945987218902134905346247398534353201590968340450636381926857870879822911721871008052147218623152217259550078349817933033884281545490788823944391519013007000169232915528766069903182043460715624697939614128686887196350015892325051467512820040851466688417145082925778831682802020182944765977070463087550080092688285163316715039217424547199525361610645851679971089762490086650599264007881375202274481940850444532661943821326960427707833477165755652174234851123047530840390112005580816051969567415577882891772649071879233572080573322538780482255358285334601693855993025517150696003877067196446418610438209145821768835407915200055232755343077797017265165081611013150221113297580823002352045441102728913730620391436305756892700976620109890863498319789530739803304028925730338732092343929880404867506001884905767294702065002756066347373670368508800683799265461588765659667897577826195928096821807031808044045497428916168821102995796497758620534252388140015027020445218918174288253687524781368062341235524247488237340647349379907448933451236320721512528334131553525098403469833779541041936721711965089162509751208728170147623468430289746573298203819299700410903690175611497045013793719116824126428900696718645729546231900572289862607161521634535570782049553288029185176796193748701491140052350582724875270083853613262049945337101068258463871525386228920077105206927997158073569825551439334083923058525973153292964958468194342859391922956291834691932957778478893722582082244823545843764747537828940659792666548231786963622626618699634108665006375163956131209193265620869076927144596804027576964676124065469871171515050369763536764694071530489172165718085540136184298105530123390170791550155392089544780968212404878623813786259044840985357960028836518284356952118633394796963417910919474404611448132651726588967945992974550247407451865239084299552238218235700643532741936398142368749249830004283006541583716824257453423556535636813113083393539111762145211392669032710623302533059174911581103446145967174704644735945279758533821923863426103049651823119686748123679292996996406806371559226118079815182912080291263765810981342271883644764275929549981300144471666403440963885728365703320617125153221870619684901162295250139278345208069423700506727165869719803941478616442878677552111360057723512443025664893278257997204646244895423278911073403298675123380509654994894055002362137417256260859029626833548714498757274671483364009213307791325331820403891310464862875360988331214301646266314534714754383272443946735868532389307941502943084415922896427188487673512917008657901236784027408078143703046822567206225452738342063500384798745967815223947710193109632326227414668281483525741844051879586030218793376748698280832790321997079976803958820976203283200475389256587492104813046007840203982295834424469262703812315926177760906760343169075310649506817771266184016775673636508081523051383655416857383638274416681072668908738580312536867837823038351111052076172315201854214891682113959253656528688263049147094468618324365937499660745514482129777358801770299993950001684041041349603569952743235377215629414771851612074692057612845939877962167469609783956048051020760930650288335977428069284919427172977757238891967178953791307945932453247156027730670613772699720721083354462662574472606455490489348664851990542148551448026327265985626882813348977951161099798433800994004487693333386548216357091773986595049342223432931207080733349702616176512049530903663663207811945945366785870471393072822005551497134065076115105313425280932319146084939427658350435488169262809470347888990824770928465956470673085165119725433361199659595002167129240929469288672091343853826636762702028356263209754153126334001185663246957957122061249838398674372323692433125563613559893375856292444379541447316872238142065025596692433309208727456594495764107538571780883455380354641894841390680839304500428036659181676355044046240720093637586425672717633162927367143418361605152564682668471397494759977774911885720177583704101339766864964985088923123291904336624411254127129273068161264712172359166158894860298992178537930924165995293276634215076211718222177705763660943166948906064099681911880593103336844930167323564250231293106586926958267512020221111642840029940558851133588535778753564293273349950030098119319075563465068384797926071979236556226200607998353745879589070725914466712127109282994896430430649101203122712789676429460927258195847891805710057902715438320770822193934752464903397153707167634985339964101656542914076457624435845449888687548017512509228264745053221579404618786619251145820356820447593589618320372521580253866744356649199944114037090936007404973071058571031889705853545738476566638301801167121662592079496600836133210478278534944773842295233236631114070137043845540496631906111504895888786294859502085014838386551388006633775429990195399907697194649646369459324800477578777835018058530138761294705844327702044277169697974201067848410271895621456950571480906917426773486017311820810659659477143664091178454907800276185104541846566776568370684448748036744540816449801818571418778543830563162320162159964481303227654995102844035798494461260227119174727684112990555235640557952846843743764469419511042284260018218335108439270463420588374483005412229158409926466902760260230065367232454586829228819081880783370785920849713788868847862668010297666106245732111631722894370272538540628258473286733744105227599861600509971408955269784294406914684845387357491432156787574095277353727347482704058815194842269289819085476833257724037682885476619515667804779143422438785402918483454600312174376468044960920528942172522830167812124191093561716638438514847426873118760264843638361620117752700792843671772634520815416225344548260068793251014285093233581694809643328781705142112164410906538613200043115930966556524679354908856890787331483968197606153630905242164924331426481644354979594987447760445590602433475999216799119609424484891612783610516109542951918699451746737608699458727696227282088459331417561492127368515008012517922681508588390810641572254874236056266651465974238407719381789949968511880130476552054476328336445470192872899549167916062303516971533433499658194487807807511348936520767571445490523331623647877657727366261283568213627609947096360151666694583722183591691924435707578639034586366831350183498296291166356614543122571965177915356694634563016191195780318408973424371922447258674515899811963597782243404183695565050709750790169433334561196815616224448967915619633690264583374977074371828703556982446318429303834650315364667026956932808000334763724084454488440734412420208483067769410130566641581552402928287111288504632583680997806470538927568637468854998853879423591194129168160648318680584471316522410708101624775251292864350569810154494895574193519458377253357228231801338128944728420365398563317877516170905360522833206260160661949245263118408615397011811251109525302804761641875348872201947873333206134766245130271495407145721339991982798380494213324093894788370090816282987377908951220088636034452951409001784849198280352968122719176535469095464354596674995047110718518160055765883646913648655086953180785377104550849431401920478673397393174263345587610656844153982927069319903315649268127506037425688051342690271428254228738890361718918423825695675644032396376544564901331902948669822343609367998843324998210918063730722192667478506865875521043434671119047730129493970584205322096805124620638695289288500489708604598462224534998174772097526553862959555621006919751155673332139575988773273135914103488118726377128965268092082016049321933463278237131971908898188150763167852319690329165414194833263389891213362585113149904460812048400237265822576559038770944237767580118390581637962224664516666308640447619513749851573430666808285708760814628572884219227456647956595331737219983803943208760947902219123154336261495392186868009190340989355377503496514804702393390465815495088741466162627663248818095445983194148673332321476501454358117498118066745604399690332527826869521910625232409625607043732726299971995091646495893577600701461750597094715862679148246855851292998366842062230596063833863559171615068176066708530018495477445420081638781635502360739976903692120318375174859190664465008816611727445159554787703279047800498807256727828119488953037955482578184174640481324721704175064916122528865840973581575948274065839106389559235096680937406106170443921332475392910065868246271185349338079827289096908139492017661374278201936628331738286888745612791157000601290348902572890299666192739232452673164150683191355193939642502294027343680362609654726529551746953842972973434743740516293051094971239664195502043178653315028347746685745081026758082114820499781328012164883552434127965389724434193538091588002055028077998490695229716045926315507435576209963706351406002317210431132664798008546351978963570329447045888804830329595558373100873145977775211577972878000060669100093881503357085030048164983617244796708268108071339479576714663257667072968312575904178745817715640768008644153153423511101130702972925826883215466068914646342156729220652265199880544166835705423009734698938721752715767817378450631714379303041441870949083709610368132373598445422765487180012808880494328330570029343163110022517860369870201701207744541439599163386925758039161281080044703280812796603303370083167501227562723775658653265788598731541017187299075138122581067922455002341273774916988924727923098694661878878674534955715803587870121030982748171820571813373295791897359670477000622133356731896702947586222546594679457954299312254936207369570683801368815335310085916610865155298642387859335620858903754322558487993538563086102837419403853669301178460280963842142074806140099818414200189208214308487842047315878034596059295468693932172976758853857968915416393406649068871024270363392362189364237074069156149439886318892799022978110846009962249689326480648617326317323601050018763139984267178701315606631516614880273412834310747808184563922124355533144843560024223205201767787598830476819422668516423530836231093698450141576374747616188247284363124223208560813234791297180490056602827447671432015237083278400760548074357325411127376087436919337742122986892574503259505401284467717649118890383339076948370631726787391308957334009127410636109233697038247826147397504979559916706699698955280514124600269342549764794965248910765661911189371954945419168404900924284034905302807812681644290880667364077612942797246005035593785059903958946423092295201356886608915784134598722628771669792743367250951460452424337131964760883672902182811640086580513676268984920105557527665509505529837648798776038898531613641900382273265890884543453336879569587157628291363232745293789710468510830550953189257917792678942007538077415173447036368621415620149885136039772007958000210504241217598945230238656296490006589295466981704824421746949633267615862570074241607691032356070257654501643405942793230845812022231223096890341387460823080430645238746494882664086345416508849605175354472772819606632162115237575435850550909018823789235651492916710902610686701083267251105213612002000431774979943625935072483480883365041756009645224493001314939149172843754391304819827117113450584863355272525350699473797544218488785795460683970527177901616542129922047812523492282621837647867194404277566978363158440830227610166760375124740253797792132583927066287321062329616796929846729921619706913350450487742667591411262748732759713826114177860052606016267334902672849474272021339128839935662045667220663183468152718123293917267546356054137215661757211299443298604862039067550556315183728462846403805849766929833356529520862189534041676703259416611159692358941838805920778374701012559126402646096030352405968198624486097275263263980130022964544577159462312098750229872341108283025060651329738464869833924213168660309097999257832351765613608998031251878040266980075901825435771617411655899744977619962499097939792894301838694041963647264620430128580083873594645577622748964980951300169925623451052614439185199628278589113502277363580667227208272047302831466065558957872165661624852497810483807777449767080114456936555404617511580689299344267563178989438751523033008237235715123391712216015658945880277408904354299411471150390815368864436784068638455418906973114099671809988743034565177978656781250823021467341230261390438558535863306982253744903051541697101831002380914152731872250900162528490563604691495714722045717707742146198819659967399312974721608290869860867519468269177246924545423317467561078183341616309185191927342774115738104049942087429302405792991508997740090143241317197209978097184780328815027402113164155590995089418225203283559532517964567384645054859338537336182185106965082585052594875778564924194576577222576038884801042370451990156831611474610205037810061885726711072479889720702780492973201127027217349124103930229577223168016246118258685073623909827854217913892472698297194881814382174894490925428528121711483458905932029351313790316137816686338945157991727468434909133571211847580186700324439874244318794525429816743149484220581162795970796385235775204638154588046673032986815475167524284202927766666314606871193716219997998073472521252471490491554917141218736740334096419744538543400355133626641590971430703647266520511915542211647112776463526453327977251536685278400438579011374336244736685407825835726318056807976359036997929566730100738099199989123311061483394977342204156223783247561015167492429783503980195713521801715762582878579024288332337756920206002002873803732720403205049675681280106876790833966570198757111948042522336621018529052977470247210571146945160015616916985214948480105212007538575907148385718212416320735788173119433280254633051087586730747297095244486305995343284163482898945883496568610618001116502013987095529836251919941724138891800074808691656801547478547362375175615355674879664556783935056606620231341496312871377110311694339175342249184633373123052830062178955637129266649219864855052404062475573274539899631029209122563388584605017617361380212215112930045601419491663066676104874017811192790368599102720807642308991390338708504425477716753134279028192945140529695727287296552445811971464310426864271767346041318835422510012637354212286172595575781343580646863560826903896780045908522086859805595984824857651535418828265950753030255885419174747548849664828221106928352818441996824817183307440691301399065161248553603426795907049181851915615785338263927777937448881044255735139320780019001679533363541316040252364407834985640606116988761914126795283405520490373858402994505745133408674223948241195805068562433091132346768248158244067912301471156890553582377349377267588294487908769589118699111031455009087006422495593013431180025620585012020763857496981657547023481324365740088161313445439118331731089929727441664149096215890667310036114423461085377434823379344761703758070852939586347686101896498210322789638414278421817430213069826448664662277281805731072530453392702708120792312034615793524444980009304499989925788701549694815449734536554563449154936300752614288034674926635033013525164062348385016686497373629373303781908935289016827509057434539252787592632535345187902538500699529965482405692082047298826500084155798836996452008678472231844196877123791871650870723563039470204747882317852399432060054222382506097617191149650012246837608139417361321882557220992185757352062189929882473179987828775963591336868627733079943618168435496349842759559575576953736111700464402015411909397914412075556624682866512224305067588150549272163029075070841746984585606850465495387667252332512567334477175776217759213379229218303948179320865858088788612442844508893584225740811642086732615549634030388710286519315071921738337079680405403968902171112663825694656617437061389532390980385398919001034354088783513620231074391078037457728983050720053342054916809041669778553360344308304052636089458789994155208314332027917152764042158262370984580120319131736844909828831492859854877693603764709504541905754168406080501962673561477411127619892909907546872434346960454184711849670829498091182345435966786405377299153419756838902325705514499400758093489970164918654410061378205645397905855742260528169529677249378032105783101850278179228672337750005237140779823622870279329183425658609006736783765014633710783672316417499376751985981435635163581202631383913571902322584241507710337220695339899985068633899910983796899034850813143901571033781817401478864810836528928463458038052444123687635566641863051505367605265656089633668691885591786732197945215600866897133396384984813668495344985591596230622988780573184432252134275847963399059312447710557341486413385426485983309795993736279338491205057378569777712310173825894141994158208850639272073224922558236865235684385910162724416393526897055535078277562611416600485166498818442065598168644783743402178549153293330995119494902373744651044970486809073411456035690263551793026424871343450634064435653076603969301571220173004563830229352104778756744341169218911441481127607312876434978614520426605574370787306577453781239726444576496523127432708476621399820230752241605848116139031479734101460601152945431241828810513117512053613402144925874686190334215239991818412094627425341456360129496492570367638882173524011356346030299414573204231109459935345879848511054475784584687820318519790153987135702832677915546402615051787807907301733122666044846510655207166905458479044511729910866864632805445643831798194617618603404552450643041456482584715142813633164862399116658355617828470731467887021035257344731231271814711170350961276714686166671912231125406953667120477213833837613297824627998620501914816436748138823189787297352032681975881970532897039214951623801400137717269166418734225109203182576772493349748656550633338105079999559791484467875650800406193305914670431639967533617151902591583367414491958829595758502985025361620770894086362591374652296725935062456073718724443414814402163774403530110562208714001532824606950235633673011453643564265091567374751661508526721082349486365909193845920323042993422896318942448119409788768843159282452589955561190556960916839306025351991453684769145220274576207396772973814081625390899193960047197498039741601305676614090844072491400779722131592269262304726745444761918172264254416837602397571614433860208773657865553637321893967532436976078396953971807875654935119408744244077176028029601104728460592449866913142230162473551511231615062132447226314670044921773569042658434122100285568993580824109070603388272650573645264664670517686621520553310710576490795144733687961208365844416654114566888435202057351821918998613342470617023206822838780600667570986925917792738151656323720229348393195681276968609389961678965503699601520882958537724077318602052420662068838344647953498850232127881273782204266278314302039485477479649971495019498389934717164304189766292499952418960823600015836461580496255048299668741291637132668328322016738140611165091690626675023566770510909124725776844971877438968359393990525804443912967589230265961718277615994692877485436667504673500757208877895768499930517294055038425537199596124498249264568037594186329462443160935154567085058032109972331246763881244120455650537409081269638268156703174214322831893786067691866451035894775969106644381053409414896546537644853109161050143198676607455822407304991803961864268398670396006431778962294396941108114213043083271648683022607565186698757411238522575971225717807922009722378504071769676682285942988869815552388444932241446905639544405491484745948843375371073803429613137050541230635878389668621123208374877849664439845354790288462202558818577283496578097697443300180217518942921532612828833321493353716881914702627052095787131230050487247635685035688826581066819378307128735829302874774998855325801049070233027144706729870002519319162184360466909499757464727450940972736207735210079119664366507349165708192939670101307089009527985964773785185850065392730750508023306953306030348789256198919523344677599420024134295693417846716985785154054834449245326204330626447612502217057676209426205440763469665791912176537190262589494254690973169744692640225693287395751405208364564501500667282031769787257594389628078767456088159128157573030603349810498208840740498498555947780116681496184717150265376228610651061168712379566963357540108722218491867665518092009148173970376833145097690146838756961157837246593708973621776293385920948625674300475388529145119536728708483784103382714779567755969402428738519500503033398251550248216290327835556191662038044039063785715994546742420735543863062993888535594824957028848902563622934574407553418267493435998709123781937117414975747610241272766141385863742516887171286547935912557001456113184342459752974886193121364597414120234504470602110379559231392561760403161516279027551262331821265862021054592913801876819881629728037373980265690745582312047223242581184379267655430711282992895741237907616459978560913000917076491801508618294950344787330472359941054763734198374168828003635630207600930182700801586058817208779476048099256076497296083321005465543350709771933639903773160989651123597195790353888227242205082311223463661040684383143594509464712643458954128490676150743559120874184360272387876139944848318640545425702452417495926012372231276514989092947951241286177740223683011944995340939664403634956897337779469964419765077866845710028538083427596306843390908833688749778769005210526449175536259992532028908737206510532485522482830093520338801556428473130351908566924747231025858983908198077610738867222090875355462516940671058654626941321594712505378155858839063109757564157349929873857144471569102148209162813927844079551042762534213093161302418648300734494535946145326434603959328240709366986882089297728860956035885952572142967041714941855168043724689523465536958975534515218827520494413719905187815904505190078075272220508883243539008800280594526609002696407334005459943900545581412211256985092344673110088946061382193378136939553292483955271265353318353116904171348504558345110171104828224626026585212401476338431292992029300556489925711389141510609187462745946954455447684086486231080822872419246447711346279183011142198857552704096760941011093831402891739382188522599714116358808544837702861805969640496266949943548737739334602274067661580294035132169715379874413647668299528635162859622104790148962866305360631378862852622616792067213847547196454846206934905214930731724635896883452197541130703144636344650075873409520395576776613466361925152597787871368265224914922032695836741112693314304937586349879890751386447871560927148060244588711662443525909035589052235134623354547752527726645345925144120853204998173096710799860279532182293572339573628557523667276064466014933972070534473213498431438230735914131390581841043417050456432880436172906828250494572615189430240185748197766698831199908256831778377063618210647290493604707374722312246716039869673657715230442303328913807721205377163859217839462457272497157718231523217394105997696470217137964239752325935329649802667769789585685729635392612428791571687359293118062135695171865874244976550249600285556338297195750332337580279890312805944623036602142709651806413111600056058341733317426911801213735016717730697196035840356264006825206730447336192090453740815944986387528070995380394896819004477233584416701598286177823906579108122087103785118405109178450175884301164351925946192494312395111055937344489297875016746396250563191415070775405796992071385770232942530740478252899604191128830152518254337027640391538777309774953349635791241163911378761492406994305719524610169885226183509658862987741974553316437091144084039625861587612254508967754165756126968888074168271319048228648240295838176330823251489170793004842815568116175214459401511040289641755935885991235917722656503918747446555303072848930496501693751603062442256485012190586941811495779547644907163777677179053481438005011444638159856162712815554676429508162995753135891721522888922261871204739263707461218221087858651029491717372893292040472961332338973479605928285588411385856332673580595945750619466556866318753531772215217823358038216064939151882658020353639573691389359211361721555972702997778113828213138882627396913862459861559318250044916718766714554841416689441422983532383996720582753288289611073251221080949336363133763380978614290098565053871798430102156381842545618309394879215047339019499736113108441676417720255394664759184453380825072595245823379180980361294435860320630676493787265171752220165854936144749109601946781349601869388011876442278163535348738694800020260804210302674415407813184751599279262884636747289722213711005818285027197022848294870740894646410576712962005453236135061490803255951710007729682329984601389990538890351434128840770143947219506354964928364667560368038341447587478634261606455616715566375352336916978036458943697831235122539075136785276837343379977601583134271161411695125041729060644782332680246726713382577469958138257133753544659081267113761176336932829448106997620557671436923936205977555301477985749127201062935806993109116164857299991168570145080865473093679768940011460549621129768976818729666022144101766887037761484535125031640858786366885971610673220255526876559731162234025372149812926763034423488353878522248440796462815291354192182590051934300475387324401578282111921236105773247213309354076867774926052570389774870931039645767436040754682235285919993125142476144176368057770814619439455529825075058262185108903503160168660434363182564308867642818470360690660683349667326219361979007291236623502780396924616690204687374782717075275278922364402739839937160008275429224952529200456453567273207548067684513637313230113359955475644839456189664107159231078450292102231243035198250217479269055347906316116265229041260927672749236519489841750713898207698858105197799275477797256729425114897874027383652890231853764434589994080421999047826862860601076130677385354677384732468290909829892935735660018844543259407212495739379312704274348134711464140006869162563779708454357764469126174887329272126623289637535420427918642284873576898504834840734048428154192630544701596938011540390960766042236348834588342239647390241975478191030570250663172721094415660467544706137170776190072080865504441169794830500664899164598700315329315041455628718900191348106554325044128465246655841406728708287853891078665666542794095771981066657931113074379613669511804961602807700316125407269937997562843993949113109905268382183551583602290353509310166720388448117377747658364064313732680780484811497117814654568952446987353514303488060872248965746876932306530044748528430446339478420779957641557336657683539368486931648480280851237707658542467140818281214102197892716868037932962746454162894985140953947910533510233639299472595625560497655509257489757104088252911446198265524444644536228432410282387551120368451408053459118070107938140157769450344302551743613020333440254996202818921289759763937343091931748432549612357825437755760285968177547251843935518612594642864385468151834735010391046728863328418877283143380793960610587898597231323783809904287347723300374593909861822589997384837135732000257729698884232769180536261241666315448392176818748094866469138637894756511156129359495865912679335084741031335658859249722046817783923483726874142689188089968257034957976247301752117057979687735889093378456046222423932686998223754510858668515027584610964140013925072258839625168742541697054776761493255541339077101456962477108860412525619489280982937621582188662764359579040363509978454535869780194343241598064049626987618709073701198709510858644781087270524100197983540404550763385912914569351398483533540867417031113143208259469862719435966523194702607141951045827764692865855944206053511418569228449884948332915727458349812621796997469524569761731474404265100013893404658514581925470237868304826559217178327282942141422861122905819577063331802224423059927832284912059580250542411392892721280691428331970746597033533854616708368928262929647823568070944512277115578769530185664260549529357416608599563518453629374938556772127639674121843880740560144410685316469385461383856679952045483009720274666324068733083343213190273469697453873926882676176851808322649927536331580939193583720298321909546601742105963758513662224888722600608209239416667373870483354888305856278822247722782112758849168841390693184164219913871917967657910212538806285088248883828248870758633387125876159274440438375516045706563448815548113284250677959262515305217653576560688860203873821116888633055861181786950865039825483873304054843493755532643803915532039278847324273263750880876274764276366326415791449383968279232850824582139577940372120731742830561433093666688747449307760844768127559045833128103986571115796964769290831834123315135237138378446440202415013175031439929270383488446680140947104776036279023321928402777401642692991737800299651794368958190641894038903823278960126646511725947614270003680590227179736986912122977914743981689648637608977946951734499651571703520988219032958937313433464830168784812420731559300489148068473928157336263807706162399790787978649656142949658183015582149097265098957917926537591885992132733597549912086723846532469410397320706189676060322994664490506839645983029368540140203367520329594867437483012042154597241213993445401184629185908176431173669534009739049807833966739047282664828772870574171488666562731234967815170084129809035685047280810225207840847424986027410641119563976588034650554943334323503670886612018780590422792775927159366773942801774127311074529802874969921401299021864071961148544356193659783826118740081314587577361137113145560394219366215767237293738750643185557112346849830196193700835682997231864885163360273614772779475274023684445283801824199784570870693316161264231107665808863916104723304763032890099190117920545154557607357148892628759699401537838676794537070751381137653886501447294238995857518812898176407792377338772021840374544797119433870374793760041492808220902852919587308223943642083062950255204925482518450838858929293001128378174937004992205559141446236731145495702897750524923626508459650463934996385833678160561094383243487289795737176749128327604134511763157633740428561115684846446220299033496493191250792631810467169275125076641384843626734623921008181466569494098523222312563515378224034630394211640740691559012824517491804851520961052066376807582398801210473940063455752610598588844333248337662728841352842772063280011742674472306557950919635183936261497698791759485875016848570127329169659559735073110207326417566002450714414543015938881667254064953553071324267242954343289966379914405477603318655350681606058987393948270657205380583147550789122606150223776170798751595051628119772185034819466854329203448345739497699190413326753159382892420434517695433937903999445966506542086096112221282974404856307177691810397644822211806556268559322695481210172961225808489479756505303375338857518119927742538014892291007849034525488823365707434183863854147427050778169744853121049462658353544701213530614907163209831011792253589569646094615343659655590719261209087988487733437900984207916112965321601358331898415580837959934152713293466116811606716668860993583335783504672068652561832981198547213277471068632081412225492111709626564371666563553804961558205395997949928084503821791368544916148027741321511510190080234871438332665125457785791008257379166253669968254254041090380770406049008891116136026472289846495560742773271121152805405214079774957485892780389411195335786276413206886388448888730444576576591580075041190439829613195278500959239057932300909907571937659451212405572472289372846481650739880845487936896235949498576316670081946167643571469885063886982416020437810234661508803591979006258910249343805348848561691667118143412642756073113390755100377250345776655931216062107709326609341260876904482520174844874670718482427474856720504833989003957976007666038798600015968392357520760111204707618999528315325182457408294650828654630460181423368897449039970313901940345085843528666111336815405694705460608515555613917504991876701452792213199957300170708977135825796772889205226824159496029978712122563051194194202831492975043260645765838680721924819715486047132302458559179042602955833595905349408066974922279598524380614522346619365431271852860502822467158407458024858169954222289597672982204612974749803803301443552868115074464837316430182949788869141682298195120060488348562037611776334249848281440901703460991590794702847694369235791241817034534693612985010978307550392392631779980080069283656909216204750593551520210098200340730857807169775874462381313547070389493920351211376142726275391528068072008973238582540457828518617552710055445270428232780852103238287392592301682339757184323439203008672937865479712281832992283928801667361241913809182645513753506529399412087408565287577542653757951193471561334914858069763616987231804998795205066463724425031466105195798260476188872975595552669294122597935039915606358771626715517469997140733774770821799609586247254708469930729743146328606857867635293068941653647876470797316201847799312325348700136273250810064008780882932556761976476028703034369806219413497836329756424109440501665400690249532550475960255055438717372432132380725464435960843043748021803721857628854079908684352857219115380735518534796621681755243868177394636443663245551406572170485678579762105027605263867223004397434925118600977995832262121533940447053497693389069071144683959031867838709512669305735645174181367276241780902046885257898224794802209319777097663242870285975179797365231558541889845460896501978502063403265964558792724849609046783482762609315242271473633575048448229094695127833469636466482276793107670418827767081288252821287082875581111293909160039701771890830581738878192795962754693937363835249143434407605705922636022829420374570410815494286979129730219084412530704633244595248713883337545058446906765491651318698325638506456975765120419953077803743136478659433494375812511736965916130438772692601811007724228313611898538307805067257751880557556318953290909096525741885079406469252037427412780982801813292277805649229152945194291697347543889328922104864301631675167932664168445625137643459184270000904681982667702102765123234848499692661825112026556823111894794535646296378919015407310924916581560031824837167062804356071118791436087311316259387812366230202559746339913273206198397094796907486871588005899115997450496476427047573758391045662580671177669789909233402369022688877512007373620463137014730390021573493801278186278156239611425415195103187665811169868994081038759714633060396947602368407256090715735491783202695125009744736050636548617997544993563549987225977299983313348723397042038276413437466357278078830299857976328657889401383104602405739376170531710194337563597176233905952856899308999054518478330034976209197796746005970996248092902136680752568715687238720752873076045260709705984912653632644472963323642727830092311381012867148977611858688477942933015274964462770119378121072665519112435527928472275650877429156328603324023338907416817874889256641741556581502720921767468659714534299724200217148885608812045042477179153194205338715219119138802961314979193766764169472105530604366694829384136006735938691899043757019879032836991739222585492014783788937022924260315324338149559401096517220062666335929559236900999680006648271521703209704500472021318663892233603323360897209260777943601975988391276223158326901971618924839009578797635427291601305224224469746310620839254782539222938929691912132710638906740369273072285540844239559449223309605075575203037274660588173932840706031084316163056906053798558019955898181685050102586744607465661807077700005696680802125718017494059634683613841270395991943589718093570613679664476511788789630608094549291274181016167851041370512366062681542612597047825173496591666090252262884262843151693281155608206896742661788096541071613446320622371816384520706788457979655201350986565472966193349713558931008367222711450973357561027833210170888092850717883906578497091420965595548000900278433324769009823363185787251039060016316406212734590253236509976272769660888579891994105995495603322810996469471193527490898176018399034525910152686381129562792090960058214156690078177024027044453823315522972698803912904159536130156385064244552639367997410379468850263625767309258219216826119453160500226649529625243859776423462949119666285255396165816610061661979786510922473578368084157525546313551179039596614484724639720214682383139109075207071314115960229633136091226154349482758217647559519870851895460041149727136090307369853598553651890595851802691901343489412349272771751216323793160732157582153933861590894339945071112506402271671047441495703859324772772684145942732611996270312587782347102055085857931933627499028821768425944332782723351555594723542018771830567195556552713970412796864077191600754087104910024360520891139526990215752716113185800892062486812804922518748397883992474420517883866194968215957136850317625834582297678571068537853917720867367929079369591438579093096848193934500482837976987311230727011109735949553933593441291170860924860691375726356109234983027090961404118477845180986024718191173944419518255390073277151032844733866436413587501944273982859947808957160822800531716403301954001630441935688728037666315186852645002797031076170650343135416159550560588515147470664019641735686685264735544586667085322936458649135079800932215914166152627898893677794076671397099398315747197981809384924391678251108838178130722024586791296495981876933521252178757222864828817892647395780734725976706611240902997858327098371482015768033503086124063618372791325858522549399955579030166477957482532535898875911693288253667178279767624114608917555230108847249889494647767936895951381116649755418561388636028659127924320760621226328449478513193409648565538091091077729659502642626861389634411948436037577393418729909245505820745857347244119976629405672841407848735863703588499164247655194243852399342490949602399729013768770005167663590853236198132476145455406957151508394776345586325674801448380442693675606779836337020371907241029742973721651287350206819292624243361889431692081596253840682733788356682116145728733807739348524555777808873101255172751874631649215895770699274763100420685315332896204510187032265047294450264701613774833961195706219689749886370347507656598283018354525364915554482055321047996117827020629291401887493274856154090333111081097255068836517244665118224479880402421767405905605820509914910089123441439141155399313820870504327835211025010967085060866386172756227794038439672810620832973898604028178884463492480835594097778063892983415072821581167902665829955733216234007369401306248017752396551524943313036280247916900081329271868144484386982762372256494167649097747831644845453638462821494532644242081250505382440070284249140476257013919984921537371852507952120196319684315662479169843417688487173266196101230031241436477107907575245739307066444791020516162073154192006737435958997425677537765687838037755429312649365765624601945981123022762149990153761253348614280285647051838684447604426154909500410831843393898372206003445235206991551493976243042367129475776578651476386499626101657049984289570834278371039521067681875198151364258176369458100430091851727608287885397795377119318650056972139211091421489333559197523232618621757539222949805044092341638332515873628515522898104659655342618047246327072819257893665323983954669568134033961539154751439558414306404029741618455995621833191604098758237887279396619234733205944432393153969553780368403152391214092085622757248006097482827294767733188439145736146144261036054182259297870256648285532425933841874153285695578734125603373324176533616299325797002468344533468225699324379489536161504819723876791020748485911628048125806259498136720675370388719451145655783483878074751341892548826053964151914369119453155623495100773244402303527518346277031147413250177096741111004910206860501867653002111123471026534455807380168371357048951738569948423494930583767836178373146104481518275207099966910412577326864906862684600605644340220245703841633934534037768372663101148463464963131855442393097169614788437936010712406865045511826423510362502662679704997099274577843227520401482645098891336987485827992658997277715919127530771593332385984294114801407300768110031874818383495918628771305385067317443369521382326457858446238727087044429222467625825728946379656105378701364518807463559866327291690841326595316845996529966750676949451198450604391900609571733557039954529014244476040861437029436439753355369916872652648484026399520211930531996956933119548111136731152576588517362638147746700108522207422762688062726023899302455258578389159528791214987592021236518770380135714026972550271309016760444016253542162857802780680221061470075697991169232791691753598543703252494872795907743331558766961494935048903434479762379224565581382634758583718507491993277591560224197941490388274608716549694403391570329932167458510107423611056182646484456122984352162858913465602577980292361472692328893352326708815564216921461334006766034814562640835190584350639178339233274879445030409190231506522632259175268337124444105126135844089345936635788579809830270491144828431570285224138746855385105459124510147368683323829559800146559143467638293315116340361522525675429343817780220758055174422995500109583758820581387211020682387853114048204142314140340798444391029663393752396393855377001560391917399844789005650706241199652504384827950240600929662073235024072466349022942210650315926363922733901035766563286194963931837068445966443016562588888699692227286230738633849450112380637925688661532871836237892775613286615520393280659118324351168259112114447567114664535595304204674422148191191805390352098177358827437823545730970505177065225550277605216125934009647147646989132192498750506879364186012432216824932810014064252790836982081099505779347374143591196843164509313111546539683271169174030572835715077626752965034346361879365007835686642788378792706198138576660935176922370994914157975113422546829181495638427780382832599796247164919331014326435021165695973866448643061073506685755839838087875758087757693730140008484285438084329356993556451583926562556274952166192150157313676971687821273365542731721360265105333699119904488042681712590195615902374143765115098372885355593661717781396729569958105118966071304117816729774192003275479447410205463684716238339721636793565449571313242719604591221749105523800418478620320977920588557014205813636661991452993222310092871364849431734554395499299617508619242323193833493677279404357886962978180228503339617867906152156930826916192541512649455826153032917565375381781437590081333881750704488912990115414345996268016134138157774457996321712742462603285442780626730206227643534754177557870917529977616549242713616178690606480156005732907774774219890076936811755528607093663162999778104989887508381788146217514513845428880477340613263822063892198561114232719493791333890671858092690294927607767131959372278521936047722466634340719338967005264661057984394212161707568393407321919312829765141744102135212151904744572450705711820103640440600559050209506698600685290643780360661202151571474621136482331796962789767010166982796500391273533026078526304488580168136084642725218725536524482375351702573305878081890437334288214255154948156387065828583226220553130863062252681100040250212886611768974727567329843181813532615433117091989243613632775967199058109294264375909138488643098496162951081196694809918984275281042319329561219555159343171941700635400752611511647094051337698457595721923880727809946177832073350180724558159257191286990121763850047585551640552906272763781038785061499196400638424235464273826676081847362173256806914993949211026360555216896669741305973429467857379483011602089667256135631563756530041775074928957975469131644317597331492664936251353771797083320327606152463239334839468045845630708797872500069563226092143763788820600799130407268823438527315132076228987567909332652891783318288437343607767480849440883241799923693804714803506043096301510370116919225075705611937602668804995744873675537238698993102099921699478998860417842731982388371726678888851671319227839927453001644868246361954092259437048746425408013638539633376997991492122317621743990875348877233469186632432550930742360788629173920587137567090083267445557663010983331085763951044603627690868450719470240902592224550326886569972395849487641055679986696090617240345631339264406208611655774327353623843446736095119794646249532053903381850715830367731448035583536232721347040265718186700574632205538908268450004119200619304612688379339135639865261765069261785962096518240711376051189703372195827451289758274949081376238417622540702623035667212940846223983453722014379367270956111427385658870726543777471003863904400235459228466901278544013627609979195049600862786062333095516846439319555321367427190811223511309725835939085265121088605779085066691375819489851020064426573158618254778141670664533093238185712460670501819203099404858335064118903739295829644165399600090780764809744205627524106089867964622715750247846531549945336033184927928876916411277461651168249026944159938834532394541941272984054712338643020528700759016373264067775203542012106114339129324173283850031947094754000901079744364541403760887711759250019745090826006918839628722882711563120326797561377166611594642382410750798590306722096793455221819142298244305603532367720921138315640269902285268607486368569697115106678728042356403792133382938265009179097936238865571968902637647639150920419586348297897628102020089748452694042401296309305191076693794345313834709131520670528954517431750686374865433627880523733184565428055223097996035013937787417657259914032270622727694629213125686973840873127129321458523377296387375252439275442487507838579746767181742345043852083693786943716615899593562135551890650903149791526172887984551433760927208465056056930714166746159594646636439180212892936945489617691177950676236562338531309550694120831833882293612330516523597374270288752072532446827671451671033263809148179970483518889911985892833400897030301746205744567209113708325909582809287502383227951400630746010014015154887267386121185828128782815095160497116348344664046306520474856849618713473352594995866402801602582753158186555411426361358380912045167319347224948723766020401695595891260505138569821609202619417150312880587346757109415639910111646316854788418529154445598055183908760553360617852736940812753153476067679006044149593015254484308791437759143108094917985750174647890391225858828247747901171918234761422302010799050823886365580845626372563334275970395416380858424770236318726980611963050289283973291666239402044045995673950018690308998978236190738470298938249471463273656325169525620142763890287241912691366409068904618505649920671906817181255155288530876796102634618309545549579670278739255756501437930514060419544561637058764154171683773046404277933251633382221738028978356488267786690989250584667809564609849602984359896794943552608690507956717260480629754701451033340500074738911772527930067146328784678971809227455134980267146586859322834279264385693051207716164702092409855164266426943003769641373483898147121782851974764383585890599167721281998129658317588002088184993008147968957099241197676604589388285366554439387398440026947702954271321426537903648134862888153924788788393812458231173417052191878146998843374090654764165942557520133449044079438239300420133984959872158607975424055971531374201719477912157465389984375262035335322427741873937060603789434624194847524639192027467003342952998314391620140445732707993742070698852184481600892843888034735380362869320028796730914536738670032240189776698160332382135536629369330132607693764837276345969742057253294210264727707788175168277584722781001513458614748399527696943670884779279615700405840540570176314218786700653896932817307568486849192133801775054836449911699380410469190930961853003832611352887980391313329524568810104462820360594330898920049916383287711596486764642115729734686657573300524253221937760352113703895872246929302852998468486658351231762137373316353797403058970920275215690096335042702755790842731657917829705954841458850999468741322038650211154503876649888457686070433348700301243630446804747400251536295770206312862604812232222628397282529514310447908604187075113424018486884193220425075910371572463175413581330373573367125501403110487671896396998870376821221930825547361202981749447685495704117727091261500062271769391226604912383041451698158868343770537406173334621828548244953984367191808578777753218509009125092422943312813968306477438031664934738275581995583396388295904628414724882061527126612838570602449253694035927913105062273521701192266851315158603310378005423905801260125933056264810607246762788598770207327216470297697614916687720451502892765051626525622356631686255575607625057362053878504951285493039636295685276698921363645295802759292201167761859870610904089730802951847791278877464542188809146133071035743286383518410903175995409465273092428658247405990987128429333936750337301099518508477367401944307133627046229627509429145046720337024258194714169593918181090941401871539399693043057199324759289031267136134580300419958567574887304752908188399573357621639216460872558307965584319847994620110231974006419812505463857269046575031734637163037106300540568328525847125870143571126633646743579598452647649121203705954851350406743686237991578984789909988997258515040123953953665251175231865986170952578589540177076378295940423176541126613622390342001266848700447926108787203536848046090366084649640359202015165549590184679963698957747247709935600306375491289318783505591282627038103324665141145138928348728032066488608503204110065521174473214344222377546688945978521620267737345402665889967727100369645367351741191098655991308530821183553343538562527541595786928848856492066906949219727573428091157678094925238241244209488941452209594066578517310376488115328912009810980691328327955032839338211324273325518630292773557880698986985780325582319630494330744734179432330762892797437254150049763861995818464012384201315678510415964117013473884270879229748947467008704996120031321713689539156643108495687380495095136802043694711313654639768424440177084117122563746598904514479936250091466787237343742896264395441057018313647025495845704336534289897928242820835025280929367596282460813972360749800155601174537207891632278399647746495906173560347454572825993208177061159120883072902346776896321335192134923661454836578176692538019805512341313165334104456485248023821598157974251978304328161435791750460244518434451406385915124311592562758798337916140877367976176387655102897440596455502170679014206213940474606991468667378944928495673506810522584419797320154981002049338267931943959292399315672519769148301338948140300385928373082398149625287455657255430501661734236204247660285405760832770085745909116537317527740994839172321023975871799600317106086051133531282555738186755658337373579696388086922737008024546023908069817197553097905341545588294642096437454710681430846931502371778382429942404158911560938148953891620449459649694670104062406660163356615507122719072750722300505226250019164897655882430016650540936848614223458398888951763157021116748859456978722829095654311492599841536387427193531896731462741847321823717735120997555043995358065869600851440569529270073362654308442473331448295492030404382252938681995610462188041516120746175469150708496870833052418546792753749708647371613818399039675466677719081170557754021118531903729047873148429490148981869276917549972968118066753611812373885912139688936493758191273699118179128375838596468815962231673507697842715783575298247416337776858291021188265568178382466193190674444382072350588512741985922762870440736107906410932103498245569050193331419385687269041668799756043546110776765756968893877277253974037297321519558354243680818244844119832906764363822453237302335268308772990263118057728756247752751511449420405750818010152683850852234008548832660910540740183009166916076718463145482158423868242144632612465990626736708122464222599928478868503008351953059374832355281280014293749268219975886864571722470587555808260730225618838004827628371726070126933937591598055603412819182042919406292304680673740408546029529859100102704769646652955775146536644925566454988246580251517195731771676964197092850485290516238574051740187966054084471560483034873491846781999544912436579837432821960484281761754271704377603528188453763810679171009369051285224098146234225544824404172849259313425293320198703853023548981238987290722967840573104331133610357361244733063434444932309536653223447735558504356796070803833482557569592108288664017354255942337206442729998563407993133347686075510815032799077430473604453297649466370325677871617878282461310617000750016168243303751178625292736656617360967064290013001768215703354796501904801820805238949145353298662688812765417472663491249908233098031132094558555594304207311536864095358445290346171358118951393211317888035059889653578685106376623829131806599281527199905713809147895644095804268278310615916188498143321821801164625117135415655538116952020978653767077419407488102254639937002212399407774705593783200114765152605438949322212287721187812783800692041589025474897453278986041018860264013802647614137744852090078875865813771886220508271204508850149801752004950885318610658342924247926098679135686158861416448958599713911043409438063346420524572405205948197261685393415795269283107615028149193357699359727734730378870634200543363726241449102522306502586321879738804327619203075060099957189137441642449633970986383723213837092593588894264397912441118182756011141544535642453215842463471298401754293931311049259599180012713471081093606012342317926797298245183270290380912358305631252924954638722707044615239488760254898584587533245195005160307582473611630801806971167466871447919249290415667251959161284152008127597670655765345860043246927452202685277811075037662649529243395290471619365123071821422527479259016807223344615051587182444735230357064105125716028356751155603488010277961525464363196816550424667178956879594098452818772874879395898567244549632237775970989341341435256081773251135975428010250153253453482914054865378856008857915824296674209995885180263386046784275379319533111432734079595587052695777485602126716721096011449752290981739301461206273339683237168176359920097911494512842915345713549465880935435504545224878579326142925730654610224524959139460589118900894734495300171750371536363786479428706406111682126116375127159240763123492345064356320645724093980138704843065496172899837953389577260529185801356029125622116474883220180516348358584860747993558208363504552731731428515512232116931657369505233245210749596601056549934465137160628846034031971269017638088329666014959725569924411989305206364762286836607680347777203089532521096560740062875976781875771294590054154280062510718811486215740767143636216165586806217688585065551003447486021716277820240155061688613075022624091373831116901303777364690596524573683840760506396321483890964804851329746557061332659012718932085884819442257353832579107703927265023302768775645311992997931621790217887748711050752341024832415118375045772052137884796708472478457370818590310648938951838567593589567488399038900555021871786514100219213437912902606859136787108516198144138824724232426757568134218164842087738356120586004412201160822740353300501902150660844914220538396576957283577688882900194271040738175093551490268715394865047799729273476285768197340500206149292080773656521216073164856580665543286858015462492725546417188189741602515052346585546976799154859061229808275332083721787101855836605946732199787814370279768719068047380902424456533043630883612233515468180564111933651942894941127043245715828189622324098812150621388487852976138893881046707915363592171472139452013043582227805194052036822533199149644658421464496393983994938906249832669817022992221936353459797743563304544867273878356513170982970327150228252660371803401798504411875698136536055458545302897737108784480640100844858935899101705709684004467946325823231151758971028442444525476186527529565796611851741747323661882035612426672240902064976915171056605028604389092326719408828539272317995590550160694531711940245004244052856404070535459727030210812602340754110912484200124293801688005926836381634631120171697642393219761460197052857651444123754882812703962406979482933211641706846813258047645772631138400363668342360589556653344629097403963549581474428281500819801795092335129301302286055477589993481968353413275696646481574962164684859804533354098813286959801349046939689865423305775270237585256509417468373072068704540412975895032512893422718687053080270145970878353096001148245753151778246870160385044571217194728093521549656786990749005013915894570857513839763010654994174301495655367579576364306932527243913696125698450410774148197613499500710916410591016118681811384500668663314266034523836794735628942073903915975290862872172117320448682931454125905326661704699829490672089485901894470877571269526684583441875948984144580564744283515933577881596777051495714479466184030497970643316836154136795254495714159687961358535242108544765513304183832572288920632686854163996623335475797804662074865375114765597481537495194435957096647749240685944496121735272012051420694003107523738657940089309560015824608227544999331334658377139918688753636753970986683133354692358437579607865130790434622429939395545878059127681995642007432585642736346560821572634244311822162983088392136396248710208179529617751959523856130213510420607752238634061448915635436351733222638336971632194985430671140941239828197713417096187008682372417008427635360072733251050137439204360325654576142033836710752473465767308845879646938157000069874323514878502629715054501170950530502443093831140205839787606840792987483192628083887991619205937927704232970541276239510987673611360760518588535981578503558835733294722341125010308915755489613805400071271627259124508184330246018677449061133389263513423115710811390660529689287714056722555251839084239859682248186279613658490425548321054642923429585343854217947363430831052080140179977425387953797746012171328674971617146471149002991581764812885539082639825791471661401256677235287147197624097564001906031331693703101174790278160527244905977696195301073326651229890089076843766733415996006808377707921634839722338526767301785061606518068397319011490726201110950024081675545430033701852975144254121750124613673036909741273394568669768080525214203600431232868806682756410244309250636374323019193932438900932803872444387700607328048857001309258751023771927725700189523831484843250198223107549663257796796458317136663660859133119244758735307644362948526192945298859392635330562367476044363739152798861635613254073997152975126050275051049484745987405759753111727633067783948469811096264808880524285567938211885813857964255099834876832839169133477680436676022177833826301606896774423130982816124034748962636101991988938649396484918251770637154415343741565129683768623748241848162479729623543027186013374805406144845555136795323218820660092456597304826439126698152126761596283031931803894788933440125325278606746449628042870076393181864101519227758774035196018930764190433061251340862234112153698575315275596370344841749098875717351198069182911914907767648957582001170432885700303142393923203388130865796145713845962878060885407600892693931973472048778202027603629025948351000901817619737989715206127881841658236408965224478590349964434858337183348606315347727440574922142958044771629846638242937179552509597372368157627168764172544404161815485872230866349977288901029254366097658982754516459104635313931565052732017841449288108681917679894675189988724433617632199536053669409155487657120881638563780515178331000194819511503796918614474786692329085929208981938659794888520729617112130627923079223924927363784267223839485876390667298826713286346922725038146986692085423299069711890143079096395275002108511885428628685294274279206317811588877225822126868872121157693661689864129658537155304386826816296512011247878712643019355643448975792161074883507963093817729890429632290482540624881096363462484462945860110247730475598532531330257380747726007412239626254336110409035274496593838083059649470770259765351065171799269955904437292885783751895825963440162746195935581670750368268336014650149708359420212265424605557824463666233812078609585653186044553081989893395847669889250400940118259378115488728180785966057662523821323440990400539913902227772328070305480306262105086872103876657834830989595304734127066243215848190179202668633463922669995814017942920239735446354508110465437478132628834006405314728183744946314654032819845289737386368684207910706438051049794480483791872399905863097950149798680511798692949907889805358901186423689615952942747956777204082862864593080488885949077821969460852484432276938564419204137545771654902152737017129501836628920989698434552301504068016173419346092005280787392155410564780344088486460679835767190386958400712654155871349307417044736190224906708596248108465229315387407387896452260196702338551358397081132216397212825761346454937883055130039872523141662512452292837003709011822360385919511254572142099161817062326358269143974437520302018256112541733896560170594698491236583206343326420718628955523096833647446364508793359137521200739621500443845993376541417731628021770027160333216167670427906443226955067514899908739050305368434568156677898243814383474105889252847847228556435135778037265876139088639194520895439814611531486737602056827579482806665816961578473417224829414337037843595765718992674305711189992865947447312166365352623809507888552794188874197473564726168435875135032012633603969852720502930792746773630469182975432222626664266174517512513154652137457491355859190312286699383753499592399192660298953344944569499869275052285940190692635249599481397847244057065584116800958827367169090718336703262736646952988141264973257638921624849707351871792229427310078830637060063400299738856047586024672481648200732969141426383977100436556051035556089037908426282422745526394608677746848170675450942232245120313861917594115496103686605586180712329462196045926731475763487884077638495530079210669792968252309114524856412265691809231203156413602439619076971411744539484584288134785611507443924742467905977616522069205914827307563329655938980223869210952172743319764470799004278318885615547124295681833213894698855173156205708992706369360073671310116740820279229172599019453554471736290288029833532764069608462082755016202319587174428792181865472929295646890105057397137371413308579057870827364410565040691691459129904888642129854934348848192111750620987201564007839970467023222713508201618898740213907309488591801051231613686356956254096872111375169660426973018695474988531030221004031348983178754137917247294782796937944656412189156237599321192840161187810704959641156332598084481783595851032647729045877620375119699426357776014194172943926115407469074263343218456038242202566349012037962632246556673636023546849402252119191942971732851179584341518011045558550843780386261832816892592995546142902883870377315929983526671203306773149390222342581320540296493889732412213088930021199860674929713893558232758571590912884163976911015249598858572877878269426978929105414525376943012121538425783767585195659667885793946695467513602715721756636983969305734126202346850999935196790565567866077004504390122589793492970658588418522398018437674980445236537870938796301345772868243921589977852072591777794185154171932835535333470437817887042043001399480466246621994914862852789094054000217969649243526738445285607208243485993305650844375545210159447903461130243778133679179725500004118530224396153143895692533420503207016091182190492665596582383473018960554718406620822899255896568401094994427692859068264152102350263636354870637155729696685338769401327403425610073488097002104978487656739269818207352211333502669186437452098235504158018920657119451271107042298011327662704651222397450584825566870197721305450329727504082119323490203960492195726620062751377041214112685279228037509790383964355147179750656880702978180666913631564369252712124743562268535776528379122249194179773477730453619463076896167414330465331966479352636363419585031159100483639709989717455802773960272914453070055907622635219611006627088523278921118879108543889496237205145622977900256483106367750201548510333461190344836345221489499357213696160464317377188867849126108125517308075127556792415799854686334052043025712750434570316737652416084117588554356158136154610280124081824978549163124305622553549742824321096021448304849791410325093005317892404643723600119927601139295349141083949126857985160953381687121852003001602765221682021777902792178070965446050305285055218887457760322258307101402089438710412931223213008962997096195692070381239400745043831775815166605675931481328108990265086435032317318680776706292900804213108210118203476205997094457548530371376752990714455193433023854576810836700498111779653344856939256833209626592888536862663816611482277174572145450062613253562155404990120525415103929139451554813838923997427481172753507392940409126789337913745534881306473354156357470539379107991861066115644664913411944296402337202072106474384537336179482059953817902683670337596067903278073319225883917821480726203352320122766773818430170657319595835824309238769214797828226284708582126478708479603345814152447697786954874604986993691584125497702462734095159561198052412441733444582798201162770127782546034610287264183984370763395314891403074891897500827170167803834445746798774392876130115380344148633840018546016211204870415785169951690058774233910162188130174179699817182075595863784475115193430086045242423508974538298128222349031450356453748414205278689778112696753343739634265321554997244664269972830804917571623800693858855455566755692852659996936415386334663972334749001550425610349377258011533086820287046028293322685862128543891845369591524081459490493998152633094945138767277731309329357136181549113396570765446039604075927404251083915181107419114749789623258890663524115092493250581428999460605985452820824068185098982926326884939724103876189557473870246516515968327385442874042837200734999257539664427621430788683268494600963371934409029114096268018895718309540920630321636734877066915483482511126710301422532345071301189275422633516656663588125489938220886191225097264366382406028106853674814063431984834959700223716019192970625948078358163193140443452928001045175029281117615534796150008246623101203834850051240174606710080976933461022925275313693817384477985047116089802942246702864828391450013304305309981951539396394776358704328980087004616295513398311179370055092303928715162601254492720138001321369625994526874732476021693172634061227228195022171991702429099208934672984372965745183754858259952625206425248636207100778427890972962814221162429629696377502265618764738686864233581267579071410776368624332433909674659684240940299126457207632952090742408057729578567192223652196545847878752684302277826337884905585788447323666394416912462773435543304938104481076540915474918977492934113661062266289495640539047924121523603989133155622137248497390482720882756362857593750079990368856287864395914402725744643552452573443587637111681674517932911301492240764653570334173759980553817968508051951945269279707797543961020175420485758017134973883042745378542681937440332105484602919229241899199253386066091774086589773208008278242011824033421725459626844112002733366176490772223030214511922230652474859835449951841066114536639415162311289639758407623344826519605272202976506287072575731489053478770917787166770132019881974675028120496597564092113806171052032848961153180855168761833564892597560091421217450491736381293985833550590511142417827602058578933102355213416174677985707675287540024373430444030000613806636905251982698641368521082840044231305838915910145980222400858105710564927713166697242839353054231964404955725618735514792342744550465177727849846265404370626525925039199611344103823011449276208757640196507850580730867182971391907068019196977188355913028716473070368615374999544073957909057551972184420035497139559050657393701743790333808469972946659303155556441085939842259504440345804671499502190557650986543245938090215101961103477944123147701916630486524492531158547812912612306651022712677007131413340043509295616366670692226190090683652747812327286984091084121108379620777273997191941159592380248078704607672033214190065702987042006028514011923335037177908230476927401596011475329489428484097783876514218923303322757617812416346633318598006787494299920271772112921529962032185119509734177225519881930600335157061066056820368714431051175976857888369113484384923758073191692127089730486288304018323690915538148363194339869342541585917025800463112347166045647400518440863209319488344436881255743376299329755047569713611257271983157058904853827807498207744585220631434091453853102851662632644749845141946451547639852651663190775078019965640524100216838797989867716444899602512897430700586695478235710632860949950195069034515270224221632638548676147244740072162315637659458547326374235607154632626182164806724453846244863584798392495525708381571961958273621886820085733763964813964401511391455864159728886440574522608968357746820380601988079650276327347998317092017314402755941474450627995572041472178212234088141645037695883430755843286430708267206856204571404519183892539345484611292522130580894607431422050776716616922795022269706241773973348359474368934315808806783322971545120030675759374871655744725459930219261286603675542017526046033836309494158601093443551420794411804020993194922552842277488228839653956453312370204471756420016140081620069862568387001734742778951069578233115891469446115513055598998042353744585804610518356723344514895227782164835915534718532851482980810862328756134070363684374921679567791706590595462825074824975951827290720683123886847635669635282133202414015065094010497390195523174636540667087960729700621449338643761049488080923122068047435313380755638061398221510527747880116309631214256053400859766096603307066379693873394767233089072371239316541779184617108382282059712310808890548079403285620235813199974244714277427430629080915474276664570587986563810612400470373342734727400687309323745361692981432392713274397466593514081323264648128451852583537576422352676171310783877458635406450373891058527909342244532789192832712634055607155014788690500919197232671175187173480089142748330138370094670402433262346483800840898667579062828638226570897186290927504022631320847909239637499915717418829255058186505738687041022065666455896519775125442307944520554714857828619095811102845007517032684591503932401889874705006042234853373784682537117583798601986135255211584854422711979980496328885936621786913670106970313431208816545547781032325350722771174938059957102174065025496062653480150942208091162854942425496343060137754086324559882443887042383358683136331131307855554373201918021666385802874132959709662156078824602558724619085342488957195632990637890030917128058318016341889846866885161471510550983401254517464867195377103378965171360983101035796542226366721548841227501404297063593552682926394025582851029133059875003562832626863082172183135556784381557840399445826748417419005128164293300397278053095025722902164378124907142360536024486530380074173157596190594650879160769986333352783999623030240506346937677899668606998027907337896611618974987538939232360876167746504006630949527640044095724055205767033313320403373994521754687306586604905004284609134087513074076093818891652332743743979884222054890015823183893546122042038522071122011785903316239607399733322170753507853485589718577796281357478100639804757563611831422422704640536839967204804870160658743304336106185004816905131928774759664438759536500737945033273496565554765385129173193998895526729251898042189371803425069111861370818855561932659930221905017635311758824780986166615889130697034692591787809226417453690945376978841658164499313876424438404887626063112805740522914351644048016374684702729774116987753909314442736026288071143204144181860202304962935808902659753201563122426515167667798407961863710812822505669837441496863816700930076805227838437191162920087811942913675339240947420318905643125570980750721613568824674075696728218536502219409928013537005186320311407468586553372967407828232402884087969552409334442622788274429251538028366582962819056741235590902814183651231013563701868465568500251995218346010797123846669933016102308245654972698303670846697608641617987616678661069349246093077444806477986155769368028140810674896588804813570306477424070004303604018439808355352044912982757331518468933400302575135101889029175792214869658452702927681779855415568291961268134401156058331243036340407712818135424191740121011483649518201219926420058056700849853773295178451194940873319548974640020858504565445133580011438320631890928896473838698620819187524402437461257800367981131097207007086121631594147348723904084626425484422797874930993480068774830727693826208625477125254951147036325571876770818137261703700705399003256128997030611665863815650219372252683134796798474526453631384897083173875543754270570805912708492785783332902913946250198272014136486557844934872376229867534029595836585177288705714173299218924022398347659182808886439063432815776525125728731017024568364884675953643472987826188900046641673697380376666551352875053558637874619682085146571308121636612105338122896211053203501087386398532268417643042637769060343061865898414178247631044623604543453482014438835571689285205702777420058187798315154249796453468665045471819824770577610628776202030844681354729916849166285798000714792515221731682636839617022741678049246899010702021092310801528583635329668874940855733883869624666363677330300165258801330175530964392696768687150556455398043124223374651539825534729404628214432353519833467351341606487918851343075619524217736259301778607085070782372098692822245515204344246709113596743650126605701799860990118505161111333104213645277101585239931719213975852146490833463608533926146779535148933475682177552442608436219762146367341891470082593370014804061244281820552044477409355327693583884894521060196860569612496403716925838684138293342584733120485926719059485672753917144755061893985302247507231421465424539147351969832384583002569923172277091112875346098654878318841016187304754795825617385357409559321326988748015922149958681389492828471877637557143347015131894591793721949471678662919776939657980565588109719717922692535906672370666422401512414354832261825830615711934463862975813084713716528804163299684796831409357810489657364645675718599338826109900828619930359295889325424884224176267582676138875031467549579209841524448014217790739389207723672017913595634570831264676999803340828139497692695667838776186947703737923266830718646963713812784884647073955893279775649165280676650921393853039826589826561302249218950404322536082503991346521439111747124937553660664466331196394160207367194316372940281362432024318987385353543274813165577910020597620088421561991821006455778156287367396637177691104637228371872142394775675747951258130014162726022881510731735041045914840520750313339014486925014705037274792597430054757406082842396352632128402197568751706268314712806448934300088440452566433928199055491433630238201899241754366867473777791227923498319392461648154309584254327374795690303095260036360164331427328412082260625862039786293314625472599096000949471628714389933023366401715392978299984894898233075049058671743031734166906453556306746665372148436748710180179256305387960802393270931492122162826494741099644690143627711579811901181529369703114232961224403276100034597843382548035572520567676792471277989278826318612749013392368895851852500078579476299885302154039004515643097190872409243393202101623985296263598198715188743367152072182214430858376596045381729518342679577222355953392007351579001179044342809922676388822538835526148345858678000822078908428358063507786543829028432439534409034193812636872086904862669594443539469959285464034567518653883978086314213071066558314794598580566384774178283974380237424445322232645104886417399181012833777047205952138175455197659239056836548436463858068660756630767108387711058603147871238250354641230162391476219924454432566137624404570208950948046057214726479421624390960237823841288641465067498081005676673659515014269974879623927607082094305165457156602665493267992424076002536629507339505564588788138400009724975655205524143611607923790840098453078604484629432246629167463593316331109579420278738627480737228475023248972503122951548759252923236321442183663766087370122010485699645864678726477090681235637505012653113468458993957612147720870601524670900662554906835116922288467429563387840665303273528593670314702420707944851833015853687114089040659306930162249718970838845065963127984897688517309181520935890103002460710704558488582269778102107422047641691020540760165599459015843881780933257970354166326180196996301658986119009046947542853454741705180808940528538157329973723908100283569323522280831192672811749184133301907365061097620625644083921489889016402585222486710166538134164643161156428050981028245348446955365313451920262881579144940611068055964277336164969261941677705878217708746884340685662841500538718882358197638144022576777604808772850905141506048192677387940956480268991160745877636642073469633831590896264973729306539571972303944793239347762441077948406463724841065457697337118676321157540227962287902435525443644501150266083484557120195969844603041836941732673152320438503431935283322763257067607928007273697565977136077574395181426866519181680761223233081515469305340005364967750811631861447445128364432977460609339108773234680684453794691670766030013782192094108418947824350484469656782224332643619393727151046762292485167381720314686659453116267344417354128941151768478008574860603896293552321522858179680898992910086616487018520505965946511534666645332254701434787987555892056291627128815473255818445090580576979909264974938500977813922467531877035208198477285537881087641109817434030653535284466943257572550796534467068140774947899166619851928700994014955052761344914419824165051533715516998523497549007900721373073840063684042751920840445700954422551622438478719646197837009461169718994506429804450261630358494101370688866362458456371178371380059499263475203412192950465302185264469572113738966594612095936786417808831367272982737727068942916412476330399215473102521679312125917996639888635313129965120092746234054625468363988651409682878655791543931129068941400065395216557037211127976647242405840394341031298655497546855661881286644457050504265049654103761110792551251349800154710151706324319785960039731529090672538021235944403642696859348108872103365758014214242305666461809100306261982846384555295858604569210449222715745848455895900795431818243270323789815615233995449231691605550512456160336378114269165128636798461807016407270269492705930777756390392989078571059523134648731047441784778764053719775456655590275247344515596777718359158409936147646687208881648623056272462040896406045590638292740347425992730125370785068404803559796261119948822378025860231401338481552535513518367946602762096275166626599488861819440069432786791405676037726626319436182163957428477886003282124895792642707456237241865026081593689083944246732588619010156086816460756341108376717571150968282332358350510804092617329887301228573164396789362502862599209981008501417849559976607380288839685250044360020185982395963268617755563066004919828343201053077636263644275114136615205552494846751381402561039455302027955148128014813102930803603154820390211960575457047382154891423815579027842976591266201198655909000379675927137965705135324068605394888514111642011884761401988937966558977810625098654024269608728968097932167351134338701408562730980210477945021197975336587697757616764973885971521544642112135532751161257776882616754648857837299241363750763332882843542109828769409293147821502564727670794648356110461977827048874320356124860345065928318069678361260605993889302557931595825246948332287329985208403591889952376720083170626219364226797247923440957326083010038360190291765001164726981404693213782538546231189168058149164333327888420749667316899996850483005551056316196879231087411155146876324812176711299948054783429464036113987854560246123825236724005050869819930527118546816771913769690161712828444292239179375794625743581676977914764703763332184054562811695174856563664079366641655033037365901810458497384378944101479936904131220479731466072271128510897981631612807751648941916076157300500747792704782442375902437457959051514271343168598518655207436607281601705066928510292008146789623786128917520510281761999878970079550690015024611106789421117547759307960254755117147757542868136409969329496949737841729771868444543908384080243863008024494699794822954109974259877468370069888564362940330858017882427507079222120409852505846006050392000705414462859489816616279156555849964640904584946343464279047323493423834484861089503893151876849172968200510210828989210604483448480661915762482235951075891017440414952855106644519660055859051178474403427298444160358154184263296816078962277473107867368371593602576475351684164942036624223932127475430663582332390379649692415729912091602614361252332089190366006601070338398865563920107203025001371214591585744241238616185919628817387208425437334583305585187311972940427536628214969852953171301883407054583852266184328363436577634776001608186024384200093762403347249394792281806913037432590553390177268895154554912944065196899033986285838038034443965262803070349361105115868478564314449304945684443951478805305611202161872806048809144565300645355938652060836149105300656625998165413522130257966558932118171033941543094945687430001501141343234087727013528717333083690501601037542479027053130468333550509113326642535812373246957617773466573991414732204531748935927893123650445631531561095232209051097022038415654164355826707675365140921242843264738848662658706719322188691683739916963090798635353025029381764399722529447340342810951565565463369169412792725344110285262690860605504606895156961925248375715742702709646130221198152137502985193575455291014866740956625964050850608831836544643095152505654050735469868771841008324893708877639646303130639265899712238776445785326626382704786026124399313887850964134060427512721812406101807349634371233120822753280293329016476044613308560338937174686260979335927441179148441387919330733756838580010870543319640632818909663496414338037345090868824846071065060638566796932180133873597622444049113802954774880603563033157152418886679493606561638991975785928202032604286743325349545108462915794361841358685250726711116111217511587928919692288438991979722413867871758435702215056073312580923886775316892503787819917731369776647163579903240018110261171798087123464828147965309871594494970865284946021513648946644285301365409056974941973915640638857143227339678180132289571501486889037271799953014712961394893415600853133394674054298242627305759194138169411531693131061154566478081484888483878745048519875690303296030150084109568157576454639879348389353601890875036122728645190893409061092186422135891631018753234488617021815718923752024740914815325702183632622773679666775588541992051888704392633856475217771749631681950732853487756367283539858428700949161489880813388671219105020742696529076300280841009809426514773470471975727918329472836847824367181085848050895129694930022461236642694615681061532072217171335353296764068030327577845981533257712012851941291196001546409320098336304866695316902383150753674488464845965282677888684872126123196500285430202971346910691673015767319498403111468920770564595039329928225262151710126309708298357845027078689286873589800336707836205707845769862532946905231742134912785356254170233897457991353466975040645785947575657733942558195622001219818414162200786155826668595507378348215551153678040958455057473172171406118030813051229599768203723371528226212844720313533211503565277112224603878880715817212000812409485555127277093228889899877883303843733134381485731227653044007048960113822566242981481827878629465468863422009687241779898595749681349567882609790741857731667875566987909096926632327614982555251761986103638506216226370237676739589054540372299827020632046494721203274556536265414490293247886533170999824073348920209894357826732708485580998224966448543207930010068681340670615292545374170745643382027433585557272295711634182109425022546921604768169625881193762729158340961772538699317151253238189152833091117022349567609999647508082956408073332460980971203481001048164553933526459843675611868394603804365313218001533379311145435482223767094774155434127359309783971547706160389843833406526926961351776366688397193364183267683857963897898348858195661197355469381008082755899670040673672884202873599211026652637353775088332905792733018539755703817893880357453689651401822647780074705583802658962410118045244421571410315737129818644558943435925672393602206960623957659180785858500371238108015712976902497967307265845949319581308860026065593964121839445402921820065321843806316811422783010172271987391744632823117361110578464583035716588544413551766283992090154872925538030561269189329082037944244582393097799619261115314994123434002379116556640906394777073450923428321728632317318365668301806835497108757698905546205823079258382090410929433671151094306849360960308055699503575872473891077000741907496716223861744618148689296004137143525650228783307966298850940274900343744039763333509645345948079249852883432509091162863436019236702164016947094342572105415242098524055992780526363493909969865372795571062441088748954122587675551186495400504326371598663293371171538512139515085024147921390637578308425398569781745741759087727932744287541904909214648762070138070634076925682647429175856241095078051610235846303411397009004226936997225937009591690055169143008046405699862681822670779939137430613639457306876261980421689210701522680260697420281886060204533778776358723137339830173674029749587736453456868811719824164125916800253927920252177237602157692096973589734081612695319892424251209706563523156898796513345173856443939692706239266878443035059941100512169299085335005005521474092975662260697010072640932520282324393419451260101843182054138173496932938113216739354073801443421395986556954979125989370049377577654603259397074751146424462348774546639838634834664928234188459709943963056004705233784478996469591940618337218277875465424877739385350365780981673518122970430470380433460275224058521396298386211179014413158013430113695758574913141463207739139337798150114032674366535768799900342537878826175067287547244255489797318914927370840931950473121544764883789285757817519264748608750418464707332931578723041601154727860701495193995588027562652569959805061642876439876020786400333871393268333157931695465344084436305509496712333394918132820164454274788817291286992048361274533452153906031679051336162254344372570864408782046412468659495421411713171880016357258623287337487378212463701895607175405808360629364774119208845800385312628232389322924065254415648727704114529562167366134269279131032357062491129216034945636997974745356661623836869119633511187414527429065813278985701032007360689698373495883198079237601189906502135398028467582807159288157258479361034085776033852242013075619720869153916165393598233933816911358874502149096935581987404906475263258947129414098580001359052080265125699250497953894087565640605209732476262545179658549631375831248946228165445193189877584036229768152462752774483941637900571019034905364151255053996789369983966007820268731836597025944523813493728156592689523633135282546393627898879825452079728895246574517359100448004064609392975048231612945173804176826316212215381791402775897815573051142027616635444903500514923097853933378418752327377027178548300088577481472374413259587525179761857286829244173320047434509295790265686025884697514957534965556225436580379044747820239113974783279327677995060468141425483499960853777659175579185949796052363493757279407027072684612634008941186566157804577395961356186698341438884693027186670143780003391418323178675758424482297628849572860093444108180262288625184996114944779918099017726329815008027801423410852081433664705222641855593701177519152021893260005109603453233947706841135440774801894962402442030111197768911197713885865932787389632116645393931212884893582655827489205376931382078027213847482090958068152216741045623718870265790885711309991391570412689381188062661775141396824014771271940309832965884607688299323729761360572737222026654191113922482913980101324331409871384844353670224167027910728390800655063172055412930473474559971417642170559995571271660494825431286937737124922869500192487463450560942587481166900097295938785701528739288436301809627680174347001918966978909295153983006783074372508498951367201684931320690251696334181728578603402821185540582039049914854459566504775948978109665216630138768691407577713870207256055249343648642623255329269212916948150173338505219064200384903419496302516212246084040583130222490310409957519947823028757518341107064613729659275103065959340657483286601345727656392013874316556688001024404891183145298774163061404454387775133102338640104045926883672764566516894840486953968205477752416267130165430775333508991061311471250536219174219778968358147032226647420437456100867147636530584244708859327746849216465512122743584166160523049344464627598874689547363777951285589428617757400230645313261644395061978232226953163110199536795163496916181761514128048546810487469430637304723394191092751105517913828995339321877039424726843496024430636972765558113492281554218329233952894941309301011791135247235475662729650245791718404429123785964680575699056299448682177723864998866966721323258489947532604607346285535942387335453213976972380164225448726794547373291305148236435944602593820918573673526418808774246547110589614005864718495320257294121621397418493499237712855835924676808585107745943568395992919242172712535489050851357813930536205439798597203446460308508785329448882426086747011475933997621126578418387594212055470085133513082944775383828854551745328737162540069086531450791381026054628789447624297555674267252838992470613279964828004264885394122482704663909106590298392966571752058107165513613575352662267964012734398663886051965171928139254130450569249238346532910357724098226797988933179152523867635362794072216465501444352269336193393949629358880222675229887623161948438241406900286449740768739192100623830400290135021418748339829391843594163257321755883252307748115922307173183391979276728956959460077039916034124381661710996497161259333359142458481601832346643056325967376894625614583767245963340256386995553238864029508049757066836879312002092514064543954930552448438992336466573563985368442330983343062824211070253347127222442508169329842630790693136437436233850072728314397094351606806268016113833207855519095893749194144092562862782800369291747205746663876324001607183898796444918012405781761821731344797018042562936420133597812058326243750854804056271520991181944210030778550124995295015487613642974983049787129861298153050564218091103811006985449421661528095854884684710068573607250494379545639133060944188398479652761572550617184102373051070060853111934419708300884287521361291383990028840238700610267488086842550253551345794214811611314353306717305017778204173082538122363382036796588875852555954008699614673480696176741514991477334863974705215582048088493665787921099695470038749733816460015413610932121730870746160837428143292120147062984939890122652605615060888718608780710327584903105678831951661392720499036873833947345011871927765418237080087259719638130280977123230540748704220036794610379274397195707674849177695030704271331859244322020079736855086132144926485660012967709961764101499085880917598543868356234054930087730068390308028142927596998597578289705375899836968906368658872881398326902523608464506557818629229280788625708256375792076040354654896198563768257719992165511581819251005304846718147634927078855951848664638169760254435944317347751513423171785462235343133222368387387381231355159414449826387579286324077333519521954085957996399350854010869900122450779084919096198765267613265275624871436808291748099026429234202996629682950206276301251273394147824044946781093049936197112296343824348171386188679824050026919577994580063178208660112840211739097247318765761243556205237477600016891103808249967145635450174771166975924247248245120390482069186264304534940940362571198061618083448773654992611352148076964134892290803335594128840738755151754224027274753082743918479011629114805347728893185414226685722165808600542371132324394781144508137307483516909149990140502080080053522879829136149865441754559501546366239924397708579220667380858459511491545050748382861492291395118885412118251377853780953638852937146419103252850344779140666772049344937807223182163786535903694922158222190943098796082687909452063619711575731125619599503889331195777149619797252453139188525556545235930826750063566051828001278573468953063228078064423472704748551254494827031391224047484459559935724889110926688719238081403480012090710500973175488075400737493714544606275054966598386169147126257195900842706291384690460262307423708236728200159697952841960690977900378763887721608571513548598401562073600022362965987296940168933445215933781165547968631831412799151377652566388434860494321003708362920371983137919574866839780134176164641595525978469733523766220219033807191844968560487983458280317078050474036301851896013059393670480080753976854729024667890397593621076421454810112235721024586323827113801787229864905903825486977217173995593779358289617672792998578481752952206585312625573642419783768219875692272215020374697464303516192246960208567291580333598429033094860751487593244974045596146493032668196552980054550798028380230151476269457194464621041045258477842983982237735833578133382137232494128777890025459669607754396628467144520923722828387538416338985928858340879701295076298353132622327176845260042577849356490073843809229362856241497921375866669865071702625892011966468278494873133160328816678518049932031040796944733588098653735243118386668101092629415826240331662170994234232524251769845241092923324034022003231901088635413609297222018907055989252937872710261983723707282891690069995774165620168678194633811029423390064926085567754982904201811986867080176570899463191383973446062745091391082846751391827482044439572773892263895769549887249172614788341280136371714335514428224484337666811600283679471430038816953818281128219402669162647797124303866866665274609175104096058878591754775286858661890191244013599406568065461720288598642811499978477258848631239641721782095551916889006505720667258139548624414399116329845908267014036092298453716967266513426256582432747241330046604221848134704379920646434624972938457091149805497850914869790754210772121402079606234983098534953029025124214147709419486842555326606400485188390766634655419605354332513404159332753877593764780008584583301830211971171484041613469525130595263271173231943681429682228761988638531131436421216999690075114450063100888598026905049328754673345532334679759040757142513260879039335417959689542710498324756425582857359376471559105437064079365445849327759443589381822424079985161547760000401193105135508287924058602128790100270717619004253439440043641332773802806604711204217096778113332163426941637583459808025407298761352881988019678127948880355426694847202989304110737209601783111371998934118395329235634919261282837112678509292440937372930114734108990028827268466293418267485303587856547091833504226779222143410280472833747648592173021390574590674039394525072356336496967928540427430012530505619702775910309139889869721196476137675588870245756320494326138669739263603298318159312730701521325342857577889325556770142280092524264874616782948264533167124409841371607760331739303018234949491963788522906349631044522117326283561256642014619774060136715424283731266580394168478475148892481914480001027567794978665691839054046726034826983852695902984719753285847663903736367255740721851069995436426664329176300634037633065766599741664258069587039929536849410679690713407241359603332021961826418740464545342740732835500488809592653933341570773435908461292821300693678097202386261832956467361559877789256110079328649154231589390850720433003197570063324866927077154050910667736984729750111018924071619162712001059050027933312751431638278777707909355068518510119149466885026589637306477250049527572171083165279675454048834438971515554486948598401285620780867248184107992757752373974642274190423378596751513987004609326584131439829230738751434020041187690107756854016322537110001380025663562530890886069549226498038486977364376607207032385702373270286372906664629795828866412846327226647096921866796772539257213468941292556905166403764820952750535413831569371616730320020642026865095832532576308531143183234205162406206870274069378334592021077858220835193775400369974513312778467268295820921307068430602386674517020332621109861505926007736046855340150237730601610743434661105699698615933270632893746122879114131576652091925102170759368647388838740672190343269538497641163633472813253648677426501696044654225351833389045202499104067028024458435012929182226179443443751688697766754730194262202696989983170498135235332553668861271328184132726884305695811847329034628244666816422115606757187636423006650972509184104313385853555701650557312457007448958815989611882762281783190738321368919809531774655619158204118235516553296643280320763825474094388777311843826208805619256809930553452057520237507999687580201558836831061957441961033696171021281351238190252736497191779032881993923264984069645584214340115717869718078711775608496531940146917733305823559487675851263263771833229256116591228191218006906654950796836320153433294533760654302713435071084661058565787754645389162875805700937791287319412978003804637716682481330501877717892040053175515976138485348796051608411414772410764679382191929788635048738409791935689178750395982932198379601326466691240964406522079629181779145379268384674293475829024104441895145289265645177043472017488135322748043674777746139280563109886265804462114727791768324239048409300052589155277000794269908963459386086160056406202803755618470835193616350324024797257379489666150189646723819369090920503766476245145476330445220515066844615926748953536694051340001552261392131490506606017568857407482668072776000722715214204992649565261318739843397999473658945805716800134272927165500950304077214930712691831363923662662313400766861851751368868304242361527734231027393272489580475018908061475775265113272118456376014759289360967985559993457072038306903904965155861766677908373252889824320654400714390523968923897029515047031889592448558933579708303409329644149976237695956032906804096244936924408791272467352206970597896892920621308053828942212298114591132280437048992666146837376665567852076492550444292633299249310324491887448349991924914550627358050107438206838475804443064902294159915801773012780899426405430469584590605107811780646743065172355999384214953095873908985883914261023238974201647394043853547020366580747753267554068538599999016454192593656161398140451036327692568465167939500087603931431543830761104831813981236838512571739205505345769211121739326698410682203860982846574106612147197566077310175854520702164764271858768456974728603877095229939976105926092431972026469571909484700951779145004849176171720748342549562539106541228401136809057821261588669712749247789559897121055805725081462339689709089473410790544968690268393135533971903900827889443577345072824076948574002408754001586963144463331530953536493083436869653376503713293085280903299382783400598356350947533958371461117019939614484794756530005798405424065694563658614592592890768533214667048133854909871279306948569071515764936238344007363027116853312764423661939230656348635347638688846499796491565928469428110114045507543149441601497253903156480704116312079267234464344257361045015091872830247030659859271065664577115564621149201173800512471258760290991915082793813306461032077226698212080722583681814608001859644158348842946609176725553011290163488081282799076026037636846461940287388011681028051074657379388907395364273929513243625118639087077346696647313827068032743514693077501717077763357469366909944237279462363570882197652782255509603608195137321157467926115898249352776288450970558593488684692442086493370418030136593620167455362133950249994744385807744759818645282494763727575715500922817629027652067341683872590223028205684887306145774209590676790055979725695309571987083376938973948630633466128758559514093472527764297541980731071981506295227860840501056996518663155371053540568587232542294454703735254869026051456260028489006772360192717513922504469632999239915700825519093237168029724119218849442446590243555906635373183591891183281208203428518069629802637129850549118966888918514530010175353578205137207574675714643534270403260994974431128761900219320588983403105421082344388151303676986425661177182054659242973026588900535126712938747572587701682053974737143727164745235844466288786056714825417852017786251585602930018615428675322512796223486578965544639905310558301410388516678416459847821782162461776941050700627344781809336613689478296042787709949332077554289399339368384374177673852734931246441276040830190292826744284410184617217250699213817036915506337901847220339092254417054035542986045133537428640327794659292500675196681676188597845020521879160106751899796711571659044501254584119592162155821400996581356126356477356408755064317436052529484312765979386289047991711558860841936014438422066377018188035599732090325829076123686152247885989187207833501259339936675528017683213327946569344597392195290665877455428855321415792723052768898301933231433883988078351070847803583232461402470395042273246672185766883722231551687201478283266032522446863771092332040561492984808665302247187650479490043261911162191475291009904819087135884191860071165540874024106924642247297323220798779342513102981625758666774048794050916483087597210817939917672065400014819048833746383122171882901606553747538968821665508719862778668367812365566544545994611712994282677458709464892440369244465459311409475061275943930324224745889503025146573822485164823460903511412344978857229804791109661535983371234062613826126463124403428131932054143214824425697630081051126854627165159406030146923198650255869858862206296962862330490912114747189843560076881476931989548776211001411734696487901326208178016449008756058270261520902858958478300868246292941195100878296150252499078376618047333797372583947174632191360593745322063356453665633857623018937607474120506716980141917613653732912144904007909071212392726291794703806087599990372506534981102280926321195694245680662061831427722086748132446889953437531469866470501574100940708750591742754198151500590840273466238981968806697578277772700407254637892274542316160114125457307510364266960450895283340818202094583598549595284817055896024516885676234536123234809834250268370946476947977684177040850359000513740708859216205868831620534668622684769112711738809832425796361781021181509038370273300290077031993694629672571515691510550146326807410711411412758692381885886617678506920526829660032006783125484166462117265688833510469794040031334952556996375930905499053978006777719417943614513819247012142735590993353396853487545618399550460560558675706565208613471932285192157807399489276646170466535951146385892273308943703371834487015097826081938232532301686746775595891806788881037391917854671932756277332831613636305854603363748942501891591906096656748790958464778469739612874203853964267121071908025011269207994406053445878150238255038274369699091553319363191589583865209410130128338760528119580334333712204013553226020200908300725877167248048013921760711452431776322876590034710004749332205366935739964473797397743093532982310716545624567673897670794791016177442712708620832811574491575532919516280798220945557972126212180976535538047088911086583435906660492997727276845716606775506567579558790497442412813624262749758394192287850490725062718719325057152320375304822539767084910969446598970875680309775111746525961576621557725679174258466672730077840538238345906360900047041227244339414576882191309318074418863062640832450609324009407365373216031816649237514655037715703928215721974188085743140152078346326373592581529351021272426564560520131365681836666301551259623975580507252561672383367815963077658114355755331548962088756877003498153423804395977307033290531066250578496693985389433925502623004135823005173888037028746551588110661875639397593779858895280314228973441301107087543866905346125666476796875689128234733557992025288280928819136424341694378622417987323972004304608862546844963078485307367728175682012770924340276977358464138677006788316981192898545444428725798566299821225104122338609285248390034907601648337605792033215801596309766012474806481389592495911857492426960917069712875197552831000601508752672596191581642189191221152484100971271636651740370245823480608614762034209019796589995839578555513801398134289493579183078888202337188460377960083280209089047433714315191746686024446265498873942504517902567967468911297937144616770351499468126133480514459187335873671637054385049095021122064754515332502407068660908589512518811104542102970034006238809728894862445448537653186161901970718935108206442144802338949241901324737518349100965267237056062486566422712624759749303937874584181458590627211759709545384291534581900981871641710941611069646375804675989109915109714673060882210510884515471602244620276144668790137758974491998901866062501745613048866320801918611857247493409255998412454051028778474412872665001784330290722664124623174464385352655577910600901093421792227115564891271258974321127644798263405754610433517232462236752272986620505740586301196539832989981926782672744043783784644383207784168187709055991908137610469856815893703308246822332540970591259906070568172416891621718220654034675635505929287511060241276314336166001594744584899616826190222376095260014653560550887166930003613676039684197848349335741871799175969614592898764833451004981290151906495400514083731670240285714764934169272101681596799926111656167623908334483714883876789715118741597292391693658187792726299575059065419496614894067435706557569326370068454173971473055030070394220515918696796072652316472661378005138161074573279661005712610949047478634233053835756789506305123385951691777948769486451382936135327023585734940013928757970696966457111516180825553503783822701714253816211129764960094837515759469070141779441121199194838253964991275182093368050279338157523488480614927129778801789884779470487036225831809541613007652944662016898554682938086247432783752594660114769478529951129377263330796737317272116649716815746123214156769807548260615536067032385058868528828001907681226648078810104208232421642313705233237695492518518072371988998727026801685643026267131795758565597587660192660093305820213115233704426830859793427143546564709814626377475101147222328979610165962529828206972570268425793106935649194434926587752965509776124673092958979017670732788414577158596473383197814006103220256499146826404998147960826024216604809765634763648461880230801367960600896173549524186334857093165555327487808884576858406553995998313083222683677177524873615953830870690925967318253070646458398246900261830757272544055174330177851061890292988190846242231471288625336229619633519239722493742977474515416002248941084162096745245647558959535696354056714941291065228672609612386109260902811363811608736952300337499471302838633485986395270818180622632515598188194243305172800253600532729655235924781810841429205932871071662691757756281995334756018359372410411030401788095643028708094122765161707338103330788515102596688643178344094657399479559877230444483627678053033034059792799493799879455965331965070919314719720688760566247109963158803274514807218734915811314820634388690305045670220749974573964786329614895874489068650714896449539448345123470291962513887601227330020690107717289300755901482759248260844870999200263229792646870401268296494957233867865175251234338416305062543923443086909261573830759749454747591079284856729720091503644645413766272091340974307720897769519648907830510812537430451045971823894955886807381215995706682591748889802934856096205264403916545746468873094169667128350987656874446028179216427711789666689930856837576030257301394416052143573309928103459985395628619230045663632338347970643538475610594805872589414909415943232809795390530709989112813179411595348717127130294040728402462959182246972344474820396350682942427164752005022581564417005211940397475750051837718156158225149837063738171924448698717537579294571201006554683772600299750426496721922953208945248249293834589715914003115365523540399271366451770348075839155656982043477185023842980877159763843146211314402947893411040960124495829292626670174658006027472296199247797919280161756381375768496450195123023414706196164591372717658170760711744250298720663764368972571596754609490210716623854946509257640417365477366215052420940914468692317559957214023139638577425746152385163529632980261151963753325701134753327132964714024942299862582103067391991777564887084639085006056435074335400030804877055829252879328320483807324275901530350987427003630453275440312398512234219103704094930296837476716108441136503127941543797173710642997756153574974876687050540055435361794535642809702931790773921511868892033406701365822630954662620834144954410670749224195402401780149775647260085427053418306198605481132937660060925405817875365309477834844074711093886955155722057066535467317803048025406787634511877026496000444997296892717379112251483098067083604236478210986915198451443538713584785435097754582002233014613810714464211321009978954346775467433643167010904341396516597893560493479245598115565370425029446903992351935576163754854151238868714930579159960687430692643506426738545281601682863158088456534331974646373947411377967949356088116381743018310602012449468464641136058105463237887369722293395802552789581284053242676831802659328371945576379366411090696998791968259245999134451136324396712123516846680732308950123182752125810968006209948105675889041457026706701272831023807525617993257964135843482580188257165726288364907770197966033592006801421948640750553194128866321169372640729908337948861404157484177569228012016763512419665339054252507011815116711376754874706962830731312166773490192908561811822453465857843880241366609401079957966850375225060614750547735382190669634804047946168257064738985488143038999967691407342376807596405630858068890039503366272715387704302689630669036363244468587146182227986640369580397707083430156772965951460988527833338471677421559224205817351907204692857927302374623504350055048764214738698337739427692026012389408601425562664326510922594390781744798329529887035065293215888708611251521177694639605023014911585724851720128598309319549006427198703070172533723231713523870114113274369943099079320359117284698415220394775138496334806331458729000793109743416205425587929996209900439564086889244787660750202735732156539295534027610134054351928579839522039763236895820353558561355448088331199591720029795140193677760886532889987804288666347638094552245573276840909557781657252267948750380845249657859880689882814044337210974369873582438120780845338110534976568799779136869427156948377920174287060452726239876629287868212126461258918923364268507511780612613638974487101889344372138865351353714012478897339434127278174598029783448135798587280894548622575611262564660853518150846510894200034123520238305052149585936624401150478408477375654437358801336390971542807844772415200643753367649200909606045564333893029792346729041857324400732837506938930039920588781507443448329551240736062544528917023607064498256190549449956005789178795771698300704467012136949489168912901569700409491278463275708374881753481651885109199658102972478003146207689235769646636753025294913177505514023754272647927545336256580174462923333174236779689785578706138695061259925200459488083911831912594577874426829426395955990602379256689735505781008988295381385264188223875864000775910367272207324297485811525499758317533940498105237941666903433655435628638673847729428049189579139916245690194212882099915924841563841354180199498060364362363368272389124479749209277780607788386638274614787844462367099564118805055765271525984149971548002870781808390709202267731303109631077400016472992059255963012235637881142114288092276814923115736718240846573500074027759798963271724893266913469864683670127185169301485053181121980030910202290009891385707878686344540573823142021997463364912398049582794810649583109925579797211257578110922868491939100015778263673668866771322525962941795807370380809315728153462241198760796818098833184200300557383938242024989902783765036857737367163202686497660828548743011371165171302540209450753087287831609141487284053871891831706179483457375557956096492661580977676649766503347083138725597860883045110550342156035576229556281120036083983653429284010892553833861202007344542425753781483524743216985761940833098661339769074476578006233418736966363889702412782033190761070416064109449338629712230467530151157808347785046652272269641156188917746889535631197714234172012518501222299416918551354817346105747859040597953254099520500686645728409942648453296618629888649521371015325593071170948057206078137310433965016064513838768165820816867553246349755594075304410864615606238969180301810430755176826832690365444719533129125788672846082862517978969220534699995099148438910219788166812090434096214716650079015833153613496931808003169554144245092820813455392850198895934504774172678801527987868237846580696635475891486727029533171667458903088953203487705652542154696821387126994060827610251056572977197351875756140119673192763971317501900224915722875909401803733513984405328530966985681191008709858270241937456979662096183350531320771559827938567428127557212606440572795380399223363371949089566240901358600742270624081245391578503049871978393497755143363760248780975151931938730457747875386404103591758515365421686014178441254742652934534370025414849170571213868915699076531264673519810817031112761456616990307461848218976722019056187370477907126465354207546325997434656782053659057624744134673881932455166999968980664795615034218440905019169645094584283471811293007797605373526874462645015560379597898225916516975314172862766300852337424417870703929642347631273782742294573829560051253111847454718901103096677873870139535195707963403373015603805869338132498156676982747492297132210332045166273253573592489198837271191002435265023629404654862877779568776048608059376239292220367224016850320257993140740059924220515666869864687377318744973700846329624950711776422572066278951157729876384784015273184248013179356034461852906565721809121080333255661109753331813852262301204911558704748855402078675794374251802853530456008871075464819983222944550086235373741714616418667418186482510109253386124416510036280001234400575191834331542299819201689674204542300010835860126106820886417984825114542489603520059388019048843910608658108823646923792625991376706068088695102620836382930356168488693723266135645689969594915256956116846007470575994526189223478417320610192590230279908270265458255716109844841210382823890247671849259826296474410061612054879153748540663215671939751344881340886797071774982340310249734793389206644364673326479196219181217199643874373550111303334356505823753934166120127052028552543605817400661463265786099735186052588357818330232096755852132852957861395706810880035777995210798829151264014257241902848257809828489969502224949769310638376021855598849955695158088562643268333744856969338475501653464819592771814286806407004937992419318890292130631384113955656746460420881465193401565345013387901702677492915522059780284645542827484616284056331562778788369019172147588893609330248932905986615873957465311529514469912175267952765232069464670672497289342645885785877014885617561636209734928719644478588395341440316353216829896756592497902586158476158572274063342293910770765698780897815409355754434783627256061368846410924766460863938994034565854472422669677525749405163630125198050991751296461328333621097753792488352353530067888901726809272069245863743804345022043140197759259993149875134486175950339333791869028895893812144824627385844639528109302214824376403190801537047665647303785961729063689768424002478010756258179001031662824886660272777286492551238225336201474389636427176991286044322115449172298263639209565963652322875732764276566923711440457765526936416240679733669525928061372295455046427471959711053665355459491175094518618803055343964184671804056454327917570494123769266899023530072253351553729596246696430612583987106167471894938689303509101850450146180347960408418905385247458975964459042346390124530702961773035301216372848085792594450845031232684185891052798654533345211456123129342778658879854093247880364406687067883317806436676312351192481747870522474925711975027333373967456717640160755174767176859000231893399834430409901217005771558974981617708218950079683349467356437164581950865814286857472929304796845554229142831714587285828213402927054358733311152239078463082984931659365022421736570132642975376254834571104377301824533976175225839693490186873409558555113184696961963818760628089389403234774082491486622980511897086703814362895992433854012987537857096887055430730955595007277865507866807551179911198163897713085017519953189916857472369748820942766338825111142476020875871568391783378505550196978286148297506210482879033085489447798174346753296375694935512363148303892464238956099384272864732499408095030551752519374306448733008526982482679851287998748218045855683775131515783286103251596704237479472728726871098961989182605329262580156146334191276522995027174923309782679844682596862896703261244518704961908653691657590866959923347732697057532825412482478407974994914525681904459646208813703859622485159388717450095553403578248682082403246555127174742598444895447894739434297373360447815992177272689607378381339465380514226501978836804738420003328071547861685306350987037879856882680418611536090575474847558551217817762351136669910719417724557289333288862830849733123659151542364648960924251785731614317927540170778203371794940633915990047490028620366692715641140516576103755240122585159420797625765297909545812824004476875403326808154488608378454937562827362139756747212805068700236913191349358255617275964104467930346143187109951230635786312283640689080063358676825052125419831261869850356135624103569138662365854527214281439235231864676888355513685396685834005261454253334549425761804682289661041693019250648030619315585949665502137829302795776018477453006553365927267833078340051810650869946969314301057986672824207204455882142139153819900843970769729701048853278578680290498214976574814956304390877099612626750232541618877060330436989438378064069798288067773384868933329644266333311853546823319022521401335748591839376205307887053428626728734701594897790934729682451211385976809919164905538349790294265895150553436809823149708507492559086314981596289788821651667271929453652625747907570086061962025920278279895376007722366989248934196798787563276703212809016440931417246590830667406115026052509999701853208037030335662421978407489027051664503029900349412999580275729163122197536532495591694128273306600022840571611536649899421870385049096292983637857524745078314012811087882751284023274064864699331850601749170002255430818234747514858765203455653865648440325551771106802283064558584959923206199405234395006638709232421702123288361318416996961523134581607503562614687819111251785183022063013269732985444866412149458424784954029161418878403297974493335256263727842720224634372294564763792473131320855030988544664418546028260368989056465835938313384534078186651159354833533405807604092329512055059698458930219664797471400294643728456582539914717577286120842332383929262360802699886376575803058823412131808842849644194289091115944083561957843938153858778678144956482476077586614102285475171203107355703713133085249403183879794137883280561229612692978738959663111211058392364350695497444891784440507458676700437106680058793920899302306396411053983740458107877435722047594367722864344224616829256216473652176670443842900604810137004909728007609618553662843507078978043885348781501642290985723152098091825947401646068201549892531876080268928281172194752793660018338262424317197399731922441928084154477730169835177944000918455573045102486071365683883447822127366132303234894200679367475311026819237595316387652104293250159768115506494877109164001674135420298863624711729559698258621212731623182575177823823678265983039449051705336913513449482481198932104465569695807301867046707180784544243347147532898640423245220131809267215705770357523166403528116701011432898784168847337532855213302093505955956284888298205351126016911964934873293465020933974801985588980962007210784914809103508112400002857336382609103164322445000566038054967664814091666399510636076036415599861591572395952329422896130983281299528112720389313177519248359695539134843393157547115084670054960519483608398793756162971838483848249057940740929421579911774722848806233186690453701913295839654753725595860423731287340808972606559431435566683213332176756453072338874520168660795995867930680523407123166264336463644457114531106171492344804283014424716228916217740691614997797561085243374094434450533665445973288323400082548244428503220180307809940746919615675082960489295323282291036274591169499755859599608829017141103477158017176539317543698064508102877832026505869568821775448616400690085028438080530016681229486139955347868440011781505268599171659945784556779070220456313247233092201641231256739405487534495667583861646019002239511996605827273496308955435247841865926769370514322806275896864235666767300226411655631875452458796751242240948506599026464483084914122817349398503609509810269278025754989289928726645413073767804521812036075719867750997987221995587457545129016324743549070161184788147144455799248753863601341901751107191122275680482523457197981134892771758869785871851894683093911612803460020737093215643957789443213146995517585786341968451945175268382599873781805668215425860768662223696647116178574314287824984541321916842096397520756847084612558104651802897182473193986392483744291399657278633679324342502734602246817584737573604550690356084622784461120414618112295021414148100169827437025299953347980395362320521477351523536143872389871306344722538711037404810504523391763145231790838122483249922623817830307840043576613443530909450437800394066441367907832620169350225470043256945600919815019014832399992013249960001890424326374523015060036558057934662293662847694318080501935129963601810310548904902522557691490717768544253365484274754099453585236237697789649015357304456702391876585733704494797187418518738752878742946697635336909969403695195600542453549345004448137095334000594854000687884837721245232450366325197815572119850899229651992722200406809815463563948418453075848386812238703587956916731664948560826357707362454570982052177737850895160040263227333490271693804796904521243754468470124678860351661584570703825375645114228974178786836212714792157682298197154590215870143416065226317165999518941859043856159134356229088263877649507079765336796211637682565977218874294495323028889963816782433776906877647549916391433286155365955190171804804927157725265548070729025531808807959947839752067930774128607598769173995012625760281591249170103650818817213627188441802982734477774627284917392762461588344307904750986750571920512729839316024685486078348424926619276847497249302121860884799647381343716724484615741332416939216694957678927350801917526608148482629447942423304789265404903790968837383074461940312730236301127877612442792813944086748437160572043288485370236584778922479022025782850964339865795749059167748022327905738709176396354582400327966045764418835868575995284866675912197024801269019692708410038945130325638191250103755664905753498628591298248141089161635173998897538136502613518939609508800249697676405777707966081993334361760057697485590588994030610205959836415505000195880639829548571856622406259846915439585046943562961608957900486054358926738571476409085120050574387500738773496935686945156491399372415620231464296606980308510650095137502198668025695978390663740758642156966481816414836488014558796988249717718594758675421316548579070655475539775336542497950863625730172924939309565971326502399933767988113597156207918145224314975182931961809763351637265918494011147593892229043386900358384176180149565846686156433206727654102455353549720218217683351983814772938564788066874823813528296358654138987752724126310271723978681198836100806403994342021744564709778395891464715420758447359844528840775021935071361807522151541428125605127423959659564531203662653680427009766233328226879392114885148570017303374441482047624704255094796405003467846613972323286007996946587783418087907230923577670546652013275210312048178045885240478798844008375119178492427163155204749338117984962352162149348318954165854829616920244062736634960349641395574229477666916529093074701050551678262263500231159209608378578998091117324274644743451472626571065063321480834563788676972422470194933560983680914302450424421906972503662531364646703314180053814676777361697607180280281596101537760063221011207425117046165068227746132295577488603393067084454806463390017929227573538620504476035622094062337026139051041887379230298503025408541871293704051538686383948334331570879752959065427745532855307063044646874162416294111778790043362030809893302529856313711504489431622102923785193579136040436810493800307159101044412541362745085757584625296934978637461546371231335460657483889762323235134274334560064280097049672674388815173379810546821166628044725983066907972975769381813355408764950530590439149581047367136482739550117523498853014353760416277266953364847506923745860953425645249507131739323587025438921073849703598226748925797737323977974222063462141141614194033603138100975541607633733391671530299282980718595731631255283336387670152864552915370690774171554117007985369253364989879361286074154652062349895886121264264835623886256722264244877176931026642228842641142474279726531458803607991363833589991066404740719672227937885326988263186206095258013288557961443847602187621668052838412602060261107956492993105983243186462916789756541632844101931509243910919998135449078493218224616477743697289265364731440120212593903066418224510387372817553205866399287843640575413823988999484698098340250054273208969985609546563459116388075578160877987645427347576641731161893167681651861057024075598234414269239386609820223591804880349207633396357492356680953773351135393187535907205551102289502958468878789407980435617535252527433028177721347480781497470585276607276209628328528581861803023737829606733363704797345510615283361563284071849088890150024265512802351708090185450985771578543526623304161109002040408115563870682542370529706254153859170360088632140688733971905832176409080673760668310064224375352446250859027204772461952384571087570710660971009954142834833481028115363359819339308441649536908566697907527058856944200778023797609084360136328171665059630868854455921444099474687288466976427479739980238769975832153096688882230820281165044594341250590321858789647012328073223037645187903994262193640911636809114486891310921528220202801745136807500027152942235327363955346099726341932861931909882734055326190210921193839240083915050188057848889904280296149431369387335841311671131122536521204005611493555922322080883848910948461067750937147997085868554495237821913375878888060317936535675291996072354869887581353359163584804893238891893776186969811711014478845984707939991865474663630214128861085238322372125414601955240430993953303838094431402252033873287050399354879104300834280093386281788715303035792929618567290109945466761137969532020731690837280855545208046644588359653067233273257785186788120601872605141983295737980130310580725483448915976411817454936982763474111780698807360942308156265545642847823909633236957947115611999153895236735115203298504668676036455469007397184622722856761103670518532110995952862346969671685896986379055556553224814116908755514289772557206375223608362530968020769473966499376678515171151940146315311801521861310220834397932272548204521252954879140673117647961469389511761867069448518195282881687211417794771100754274035463710466196245467112224888819177836643312716491398779080444422094076812859602170672690669884177191517525928290990388813224126126985239593323399257039331543295413463679431314409993524223052932300332805464690453916405005816861413581589054345580544238713097281037098089344803131216461704942943903371490364561204548308898458637383480593920971908799483971835153860181159903064203761208419869455454712359068163030288004746283861292490352552548708169662738656561470926360690603754400585678083279920004804072219225794261088507670374255898879911723596903419502596085704447635604663476554174080812147668879484011580906328997287485974199859578235603249030135879099238467244708736166800444565940261609706746669932555156617191228866206083437324740962688975149559967852467850807535201806776324810960568083543664263590909751995953793912873301940192124755475486991124070003557283318880637302021906904476647636823693007086292370930242419786433131860112583794131983618271558025536922540392508689492816392515473295074710836405286101497124571225318189773362761911510643876395665425796163173227967156405324995696998008620512917898634878613871336788130910669360410097062719024232917759887232536781294683270061521550327820708723530380176956210492755706593311432325590307974324799511977104607502968950637389045880483176056417761863084413793116547420487915714509712346733646455990048990612712480062058657395955935882598518015746675129173448798502968790103759861877837092450461786889314386982322399003680343352070784569707173038834081373643465589397383463032229828807621414822899716939597052657648241720088952129247277073099701568246121853574058046147685433407374441219310130316455686145635892046195166924619550620162534148806328738205188044083545469856626146151207452959442037318918631928645881022652333716577347233609190199155816956409722881012361038401099468235694823879052007708319020995380134735939142482360755883517127960184514091477461333333181664019569208921405642973392569215983574088226036731063243272228645311616149914784439037857256753493250853377112918979223311200464065645303450933835116073447136344442894032801446852131578212582933958617990139888784011736876142202106392175305173068972871486099437780055428135219953833864615599739235277260596473919002386259823955567569664402940398576525583768266631256868108126534745250415550196308587882482576354657869011292653425248988544239837327160058196340593136330768327304587584473776148565977106299589863125114961224931215727423838170236578863679495171824591362197402625569379482590181844894596941841789563661502377010598842098516688570574304328937025191296010899403704573742475915452093021472079984114023493764246187132356006602725387282673131237513117277248853593079027946518841262767008113549538000370161540254086785053727713472764612308392236937164793708625554379174253183137751837652017116983693414561294598629013427044634204957170836606635828751601659274993069132917003707262715256978412512432718398516832847813069958839166226699176877171994443457083014999336436218923365678172255481064362014418591702009359343517058772143066444144053583533411218341758371490321562033818736288449523180504432471282279656699039037745081531262923725548484545713143354138553877761231019502668389704348111237032506630985452798592447309405852584060003932837955866196415515980321889084037391593473202820882142654062054111400065094908986442944510728612236267786692802762468447098152050821988441017051885183424866712218685704911119701020711688763776998934929354877754343110859212143757097650196298994340987363108856160865930220760981305948471084319452999891598490591816093317919275264690889444009485332109790885558438808594824259364929771183975504029445357358603925715290264789484719819859413547883540425278805606898685428340948629950363381101734487544879218580208500290064998862889035259067063406133197265904555914540907373384222917116917590068032158380113357736187414640474245660926250881590938974602759199257894836683914986284098490275257682268924507269905538747688916599752530219249965141030597770481632933445451282923675229472376174441550811645124161732920179588247451395910926293612009830554314562167979309946415983159569120188213568537154703049482289123922144961811291891559468472076436464111335909183383436172593686662652766102971104642827268251295430697686187976131568246916594176848061139570207944772508595332720171791029546636323580527815504463380541568748389315427564324324315071361654606839679088070895291582731242031560788236593585065785610921760541133772808407959357672581858063630180996408952326015759993759823399846440539541881006084152993305019251259264342480723969544350457745363731485833903229521418010820433668297723809826158526702708604562370749406438390410439876657530762251974058011943459842201240118122061818870770503717411447474729943558980216962670929097706638178148729829770027100216657023811942433246304898538154714263154272772113513610797034022194674368213160288139292192260830986619730716349810964824640478856852556445339327042719165554233044097873711693276829094054554202629090677247677725916420534995547902242778122901583879180445841722965731044264826280301655468507596168731458718803706726618662610103126650084048353968264483737786249792687294839335329347971331239147198013557106703070585483949262521256285817034506953349554694300342785292250044075704281532801676821396511949066646553241435970622295004155112830018989550734596630651138074243064436133461423599430942513618397129204122127207013570524086608519955133821766284903589332958737697996220965836044475164420295289461755672810465934909066825633061204823089530669183627788184537851390480928965276560217763973497239417349214134940705818285877806364019301346760395109901826382901612037406840375764356568296565393211379298653122073387391812986502738911793643661720993682654272396668201750267722844539067818982821466537373990830172774936710878343947392128828962206388168524368536314665288971390872079478014434549695563510016098471873868026884671107827679514951242632771192688695352803417740023303851274183065253412038582578696596243324987877057315791513302754426359125022042118618290081591980510771248126525230377569887166084153744890552868690425358725845051896365574064713196847145183716129771166415698747019058104157459007867753432392951232421390665505757587411750100781484541521247192688578830626353847464546879866580982573439462999877385473956087517144703042333004579446118623597300659463732223101025896667605288652408641539975727679224039817252476343511057651641488037375641105703265538086502477066016077296984910577200065752950627038420442558121645111014429865355446931277677335178228170131900436065289045802792670605310222218293893486285012673883121380506561248826035585047246432175103756385889267091772268884807708921218943017999430085898957131017185349065746459936567098587480788734376195438836992549941043373950870516788204103535763544501678189576447950681333636747078884183288645090707330600415791635120207630998872793026000925030959339713265566144387062913786801054063700185248748890308064896633720231051279199773440376094583483415284518253929471428020868898725852600307917810624128843704561611588500040878617009206963084292474265549998502700823505235192155006586510916575914598293083556388341341660423777367189087545333791316897993858132252739908629008880100121794048935622603656985144412344357443448989569712504607147407454216640766399053982663588270342998676158645868654748663015658553757473993661078057025257920024683469513884949479630453734228337815412847493694305968099862103358668069193640563787363513163969353888033001320814604329640902259443466419487209063269785571886550658125406482983862954190633116438465973730528527958704185293129669967497931333100343909318564195607724794835614922906677463345268786464489450521145085829174815518070191465938427685240600015768147688852369954194071519867559232270820371238617551370494528557863115723700137617653333198251728023586358250964591968909811492351170961489269515086491720020016938778091972637829532287304843904540984525762782679243688246249082957947137611209624530620317001319181095412126398520382532643580474646606900270013116864205327749397318488120349049726996107766923540140059813865295378372226600920264325644536681513413197033095542523331901144749121690903906129871707252228875026352353881010165212614300572133262857842870034074820188775873695743148298689815484926974588324919428828219221653203715043496998511756220640345079277255898544885865015986877350199710897617454609837691032915859720967017804303689406323409541446562660550504819570638295944727477381900512171644092451528795641479447334824752014114496294140703426568355104236907174129073540270160306779590133075054327209513028954829449922816497225394661729674299034462713763797143871357453064433988573284197142074610996792589839508334843755474216503657051837747310819456275222303891000008613733028483310754358634194160082751475429118834165208338748622522005705714903024490056319183055800781683220222050715211466521718864841562383922668961404591043735524675536255907498730697044013262525919844872069122368864414961807733847531933888441789991439576206594410134570527086290591281804911263931413267928413311194520215894685975106487324409034051659453872674651356760648008558604775419408754071624386545886952935710399186922099078752707433204661187177774099800403078478244682097482799317476628442225806519297759506411721212713553445056029060802993840825482886798083676584526032000392826270944082016389422405334944759299444335900569447084631571036448751019463295571294792797524048218151603444837669322661725859354744018930041495746836081073877120491200389001054815170234743818470741969254843769719753392612808146105090985843037757990230939042742885576310363750989202744439822593022622849485621704830523718867909502866482938006270849816645585423381704655164706486247145070143038437527583113893083927699873891569823988094218199920562008447942111565624033699094103920603853353956654547760963095202444837555401800384774414903764045261501324028243374373498299606565562802105798887232760066264591713164061711336135229643897660547083931574951100821818483978802566860674047333949366329561756396077497119594023734655975288078155148565586589056494486557036045516681139675338932544248204381876621288142117007263927868657663767131467197206611307668253216653801921424122687344114490679107605773438286778301849698447166247657969403580996735212567640943977539273869631055641091255013193415099898377765605767901754894138449424004208673125352852809666221252168896699477603823916921445985968224603579584783692243959414804532807759751336322924036639227771054743011633030785346181068272516829742495760603533573984610614354276495524899857225698159469941433091453766823521291263049533084143829293128844202805214706776671788568150535358672813167174928645223845532750515942560830816707509691288790988424282162907030085287639199695866486821779444348026853777245299205595988153117574084434009674170715364947393073044673989258830845404527646952212241573063147867155892293316446752903603771480087881614687390992586874197716329203787150376589100974485445151709271139729314495219641802433691375561225857206951523572131537109958651771054257241863451047396015113584705262567397176141096570615248190036411819868316937039270430877904708805232155061279976718094263263918586726500352058006651073391757924439812951102936634743971259391556507896784706845279901731615949795543442083408477666581451395801196480505084614920458650327050733598578203208778376641722759517873802267596541583424006460256560488999705627782895452416636592014254329168672884488521710417629970512387987941221788312669293709552867222744093479278731968802216197808175087943887172502051859502712959774403118967838472546184332344086261515595674185164884590153787977098659604003323013580257467756051329265490263386585189121833824652600766259322740563482435701871091951837948601190718453842573044680369334846187455600397241106120196987128080961820816895851250388734255109286535181196677297455931794822631903155283536631937851127620083692986840047045915595095034901050337640452477487018916092801208111855468992377009817444668723807098994932619080971736215931866491603831782099295778160535903330349538707367049158445378809853259062546337584939058199435429942928831955828149686373094192601903040119993200077182942564285037346158966038409098964506261033110293032303512625880589945827176842316054994791795137163766328311064076818492723685230186526845050650850069831592489972781240244795338765001368449311205545934684471532188652766883663093440638315346184727590110409064724486527256267770287380305603739958393877968264312212016767692658276179117428909444616546430985231912814964132433780650555841456932642688376658856353401135779762674399661494627709407474526241126291004999589498341978459436998281928336805921526477241497624449510235709299023303337516477774813202264618970530350499542869797489393368149966060793230354620725690900587476979349668109764920123291652086731988674858665628407806310485471364495607873311163595652792391230061322554570720993087368605843216423070869993335890743703416059223883216788571395174775437256082135446174052363419879293012725383942793044311049487183628421172534811909628718617390680332201661178155556383417072592169900764338640393066306507953321876327696354373969526901925751335227569256764756709166792173203051983842456885265309797062544434882419869743533219922251798911637110867698092430249130911448916440885565020366678130414165157156429848365680475835637129059085091848541986024206408025086836419457994132541085546338713865711640009160663214094528916020185108428948772534589106680681703206783505318024330797483161831216209878291916895555840458559544144771751926642258467480440757250781189952358934359366753918175012420062935327698443920119372490104760828466961912966182748500114755951511415022985332691306415830032775001337490061450964107680792340755768845165127092137574779490197401628240946107155039360941663468462059875025493424121810456896933624971618921850923121236178915705009038024947451438834994649321460323295560570024364278217517722539497108970859399210408131561546303263012331696178217604880762967057133527882496279929195391337879055572266408102651653919467732107571053933885189513339711772379669952759038928863142908023390966979595652355411052792336947444874662432937937630426794552856431141603715521736736776622339375368488301149688467391607976879579275109160187378671228029513302890140363173448411424595065586907934343731814115905347682755057709323571795595349080488760303424556068576446182298578263046769239369072725264371973812932274869973659680288204359505660576233521967849682008804639835431036908850362838926983723159202540001108966273275622506622892268185435305855954412959501833635134716208899363246809691684901432980051452414210005606580710578993368618974922488978597432180199038107938073857187528532176035467538127790743654936825847084767544302168438483746475725169219634851983706085850720840515748310505428653452932533556019867231640452866878410151078840687571347926582190465397699118185364664057405086597154739031891674480593053425988110532981941363205875326160859207709034720762398098136201034092455098102331872326172489088022739693370676545365302265333966275308018781371477650146342267434690848988066385659968206532769260319218566527235884678533310726636207037624915047314611289775219513813174216995514876546755464336996877889961858969367243430814250076707266735286871156567547597814433537070200190181799075584166971174633688347751137825165229065327078352310529176217343082926424032326173888017007885468316171124404148514122345149382659999479324588918890492055952889670145570202436556313901046946284696328444165437018540466052690375257115193198016246257668996767630344348121064641519242470697477467564137293849521489608609524568250609681244564941912833404865469609349956109162350750868823243647335179162567114302475249684003779920745736300957635954173559924067528829861520108853479731786146294775138119386955285024762145694646046647904663577241663923254985140224857889722603885584494912068722444449368466352315937573688301629405651187345970185229237137583296901582667293395781924134420798390166625805412207548069392060092219184132161115685407369718461561903962726319671636516815507107194068455031243118354254756120217199752357938636077228335727649269374008540071615704793699943731829496884296809644591895336318041757102919006220303892797079845324250841841412714862674821904214548560076720599694753473391158798881327126489141322804560373478514555101222570607870801063247476021265967533203626037288179676534079884529593106243092533234619426506461844188634783045156211136474072297639446114142251304857976726232319777790989405571667197953578347497281361985883703732139193722429510069579223122808945834708500889950457443281826938824950112535933373115599653721846383061094484284155011664977522336164069574255042915134327230167861184081696282772455842497540520247652477203614627213290279169132187976081311290104420781984193398942616370046609341438436193249134014236538574977983174408009988063942997002203263276604914363702449829079046907160118477765637088565500734883496015834486525353059781574664429757370091220126557309726880214264968972101442695670948006167856118346938948162980695920369106130516367452402173651045069353574761433770369252860294212141820453307116512779437623118535063437880980785475540892596711025938364408871082224770550718154435892567671324018570761908545714011962172417024240761523637538096088007142979066764231622545607102881606704913321437838949555456643329304021601608178893244497974862242525283890869952299560221260930033832942842733117277216016380547327617607250708900908418732147658125645504426084053986519165642637438949960440329589713539179683357279200135399764086626719062423588860400103850488743218899421599360304997585063992082513205544751486676562793722064451783802348239135045725498634661732085230542452227156081705197583445351999727999497058121129023784706244716184524520539012664902974808879739653415420531323616736115657062530761098970144139180189472759313242740523211408574326785685254737702304169237142246085094876038300282794025572369892910832337403772276464006485097126349126993474158441300687224577635505811469375783557458144364523353533184619885521320260915180714823117034239144762631880222179763955417961619264500756927847631754619805710856156146909692426365444668894200441067900739478982605975882923010284538867400195710346625832032139037566161560757470683625495794818956462055954132478655534128563359475887395155415531730252617436099819880124302401347758396882367919531859498837381206492807706350884286326163797226519516141687966876110475818212039929241823784075878538633055795983308515138918712079976353058711245303250845855614034807866461621878823911809665377668155210448870372737494323928843837987241481600551596115181846470411765777438027888598942877197898962517087151576884911636518276899698723180417234093083231031544212157330344623206832537327194008355094742241754437317724335045700643337436824182546133002719541255003180573869675099414538588564161907811804796804831388460781972115923176459047217778266653489636931732323397932481318613176224758925465362405350529153263095214579555089976024190581308007007442319992604217277207648384604905842689107819831779110634763883809238225772815694904012835955302209001864977106177621141549163186262810776178687340441217939165739736779958605332404355179901671216050360884169150229281489491020623024413565936346508639984834543549244676814459612688614693217425539385683252320454943443882233553938171438279367882596901069893740749893499972754470590290716707351050325268425037200509272801857478393922744128909386770243497720275601855076738398949002355743925311259118550047521689489628611965547637890112064648669403386168218039432699937933249269263106063759761588384820407894180534836969154689691090793810223866824965601323359157718780637201179073935950953684620598493938615270813708219438088700430821279017966953709874410480159808116222108566526896606482213005761997520992698059718994582273175400070498750991498987000489104712893828042133091631839493852008850199618527907036409635038618411704148214127663708054069488718958410699552486358561401931886374589432389178901073094655776872313775538996927669646844760819022341401722409090610208838653903569749241829778006828831050212953484956927687920607831242221336654660452887622647892585726230712879973402158636350345534496281752921567174887140791379241402280549108793654362905533900831026204848430032046538998684164072155553637947187882621490564958786075470112390410306676951134880402856374937477821000925513138945240486917819863041719510701566128397434340672575456745272314614014942281860744613898817531501507482529170961601836872079313067914756221960501586189447519264491313011030365785276902432295506879661623037741186648436270683547881109300896570564401943349436363187466352696742843540207184070758496516249327133306576831373813999304174943316016288209265070800561795861383758943149948604701681773380248664805344983162518047858195768489875257357156722124037344310233699217633219238380863584931751950747885548951767793772628461697656570881612804947224831710820859236890956321448103126958706283265501306942019575690983144628569811626592835902026671689713054837026633489713394779268760494734260757038151248984234839166505277164949331002543188197449697306781397073779276162927882439385985929785418606462531878986845523950050908525104429358776603696391285289075697608158522399417873880649012883141005433959747094547916031572415982230988324147723931154847751408443889015489422007018516670300203213291421506868656668778107209593010649238374251096032415666831804012186046976825207253388764798335966342781562985254024279167899527159495966343964055255388925934063782656918456555399746297877969339871688333113768924802850989046964965034316337035405892397407111434016596828791386816234466076981830720677729265925185458278871233361964346509095293642584851370594163502567197338879460713608466592528783297482848408168809471973906659003322957592338035812407239218211456267950495580497331551658117925098767474147980007571077881228614058035913086509214461624248285074195022891847280238684941044343747569452996730428292394853856165325520549243556176795544868920468846258839941463215484954988681114283471924624334420225958097013713807119001528720208036599936240897179775637422532835511436903823034229135749635821939967575419700152883761681955566990113957105540377728655984378135899415188480620635363588047023442557479501413234526547377182470452043468068649193225564188166930356281702124894937418188683629178321521380854219098159349723634407919212191336224358053081789058180350151199292179744670534979038440361395145457928523252920545898704256151005930023680345108192265228576203644676009617358275315187777040332660245985041324867952393971884515088621749649779591397739089934984659084025059469860134098717222164566602533756480619411240393673595234011086969864940327717726984353332984251659795170697417257620945378702514720984130850159964579365478880045389819933134366426461471970511549538472845499403241998874086238292912060233579715604981625629336288032692152473518635329751533963202660880727252843314935842536392005758243157152844259908763457237372759915102511275185031192994561906404829303385363577615921905363042251670032631157654749182468942431705831255779140263022964203161002724867722849042160561801005130626340076547128660982397267087848435705778311420658652377764752946090198480181198525727643547239275876831363643939952481853894461337960514036581753578638954700838758594911520176514619961914327441279543590263334048770627792610197827818679404406248056887265867653674843733619801715445881207917637094867968291578777786515511854968266097424327119970827809474147563097529373478956095319294924063270678036520277800110681302367168429434759665086076835206591830520883333778741502627710562474679694244283116979293459037229836449194935431290737292493034029592242701777919460951079616932152109293861228997421431102523625522747954335583483154110316216386308522913248518513740507503444684747972689390895719910988504473455305624070951580245333968117633570087875261665420252841298197792419684243148190234261649191832009573623407565695741519414279586448896312152804173650567804350566923290504812066564061566757724638095993425477042416852773927164980675439741354336677279093666141988568312781624992835097655217937428427804903380818842135077034581357868281108623130705966978550934273267405101634818355205658949089067944553452511290880217365870563912659993854076430385447327323394664348272556649905104098616295392867976661236027019426754186940645698533245642788616946120083112759387598358160203964566923441253977118289410740110782713884881261944421740776908491128300946993796697885073960399177570072608681575099141712087391693615336659119594870096424273387773637047318825953187556510587679659464358826484716549801991138246130581815531631347991008199752906935316992239944299063008756235858059906165587516085914422394984371512300332937001508010173790462542882027447012871980361266308122070130324718183780377203335038925540176757486957262283728830985156754638229735008656502075981693082677125974494569654332473455520681510687816613372049644469042699218774880947472574672359711637080885381548689055525585513193570250444351743815288839258564306691696170512231980464865262330389824625776846656771973018706429669752437667840795093944193937386891253102658559948646368825528882360482203204876098854780343426404423280973034172398120004421387933504323178367705398441175184236541680308462818913816211940951692772440509080541839923918914135632274147085038728391779606541826276095619479622290270997525286249126670456474763254439069735415377267370646029799241603987299545706239858121546215848423908713225546945936593008969306293122245425960914146571379744580805933896092339424811284552661092760428210212354850961413959932135301309056916844984257114561058007866904810024097640250400015350532647649300813433813221873711099438601110877243330377047605131061798945906194252361958580019573480456490111021833963226476433519572011861194911940558644720759145768057011932252254465782105297379897711170288321648442806259418155018610608757998897337555825235320643174899441738042970119280643049374627502719498424747767022981218411312405821614397103937012428481171891602367518290691069399422602567115700084544567342288954531603596619959085075222117513131857796642354156731180482865078221512922272894836033026674440458338884701843319807241186265223148647444865201521925137656179162790868297943679605906378222289034605681810808201117300389842601563288737914928812483866991205779176967423474768096436989352419886121534040463000823685516577844077990738726674553642165702162280237801082040481944477581992875668744484700800720267836230235940342084756329399744647556185014013452885035989791224637555850143776416166795431373592824391092410104844483288179857894220732685317161975166355103798372462566376284971187999440300515875897811506090169969743421690859747271746636204846879975648022691902401056632096415685526900416882699623865197983810273254748767738969794661452377012009772026475746496478441231568474924692282803048512844933575788101456757352393887369109906581763948633776642845280807600835485743332680279925755126629099493551958005474532841454677330805431258716833258917147176649883039375321128529071247225372709405109028344102875127065972883824140141796244627639502500459480004530713502497803103019689731173128985548928714606392937251313370137985286477844431157893959469484973155057011243463141107219974411065842952053411756806063447758822539986598613547568083191505423964874240367487190962057294482409556295418981323864850281541360010363967869125303077202029617550077354249287568440723741543103385295669159799067876673290860298009873129018154178217852870494800156909014153950225767045996370245582010043648624015884285254884309689012511980227900452276784674736322537878245812526247985262962906218332123627454071973218406495701139413127818377395289329109093411653538779932328608915113275214520041278902788151455133967467477879310036166968893870075345825067930293814151845723698950762987876063364022311477849466586230263240549740908591456725833492182461523002662314303430529653385675259565863606343272368146503667265148366100115399290382642298221456535111824668082896053932473633992716515472670892516486472442852631973307707056289148260572059380850166813659420709990724873189606012595904358909882519615998777695269573200033409449886029160341412632217562344811110797838221780304547642359197779867182646564807799819869983758213783699971867016666079776429300950820640369095979798212702318659971290287143013239351013487649016217932276791610065550989189615505533880634817523114439424848183409862334903169638844325552221700646995053223757322003355009471404287871011312363195532837367972747872503625625565970211938673012556539976618179874779955732857211534977253624889312590116906158423566439150867432194406401912766277741194249271353780457075642228538434412810376138384609811734392468732601649507817658283143596567151852244241506625882873386425690292048150493316376987460474738529383303507430211495021782330460864796464364344252792429508246390930737577806945708570193459621594521215506724644668285666312711621007338105518845917759096969177225696528615482521059302746452994281226996248419279369209590455868665086670235101174353149119220490866253952700416737830422159334259122665868135603137609201923668922251247384232503660716815329254475899598368104676078233305320226218202556588458917906820818280255228769778767889259985458975916146742562059279584143354655241602744926430363864487682542651203248278874757595853381923103417238605025616266819169981024513750370895127485899055284817018644752660280387522442730279083170995128455507334477089368331017660464730788261523723163046465270782976122311766016093190611922783106699206698746259479530042195500895710777277507200217148012181783503254953891150134060288327326294776400258707434975251719772785028417081849126325975268764012564531588429015457850356297248384690130826595384196419246157018965173955879134731931507467620775174668986617545840124667416016000456612914972419543170386771138677864981908650005595026730364268949265581383036753658266832442665756138947884415014558761911598695125128418717599227547713073607671078427940793311056690702675078580718253698685467479201348923860578634938501252606244968205961982716387144621179170953035238142035847601185166081705259741892441563265099589010150216406231696963965086603791772693046095488744457321359683131670594774039121596789833334397897143136744992085238025019637550793411704629192599346263460724802456409655520413614999556734471933642557695651966306733679237161301372516840676476269866965016399427700052956924026863577486026046253144186370976977847896070035173419650633351292568587680805289635428018137911584971353873781856864932529286616243558973588509417557386673647962273743548093162086175811328509799591781799777306313843590616838275696312715992405157879430140612283849878659308403661562056729916687218915473813593942451718134591106925389880118335126176286225179566075820033625765508706529968897100403391272096930002027099100422246667397454109230643634274055402496886872256701642833308669812672240794503543816533909377888348071092008225364390956387661354400172098472076313217015483660858978553173303397293590367789237239874249010271287425745466202071981246424626126163181642412724865944298788480582396822746936919650302399331935548518681781160595188229520549640258908234440309418402534417123659625695297110903070565315026894205327809056824707531455459103221567976497680612336775984558646652202711283797958234800732152813548405474755938895719174068935612082199460637858643736059622949619686266559402493442547124380143737145875168994571505615749888076890695814213341207920879780029056423028432728881846095182022060391079827656578438594528095278750426179467042063211562940586606049733786134885722203902545257827599966295103181161879508892285112590527702204478846260262673652016860290677137353277922021112031705682959527709963736638344063147165609223201053468909303353686312859225821410127235113469482665320724165851795750770697187207831608837504073919520917239076832304547524381240457329943048049351549233734063731385888173217539158548466365383410674490687284881072432591459381501552707057571951967635313573871116255924099008294577850459904001424037905948766265846019490040479500742682568357111651738101467039750017038597878339879461042644874981816051372784063857200449015029006043578811299188426207149010405722295803717968609280387848436150861957492520767406615238113494600830984167226132957793951341222466146779129301663672707909439323105344581426055322063862941488593435443037182682747613301095479490003069724864881476821658738545480174017947511357771223675917469742481303036994629848785757623759622045872095284121025056793628265089584478304838264668141700210324076413837364805259841673461744793590887020429700473894844873500349295246181212580866370245428711955121375818967517016153070219244659546547536144817921468372514976561088510651584269962363485570886683975356835666413579174679911515670291265920102422419846551859352215183512155508012099094146614736693555519526367320504608593941390557280984677599833280563939506716100685204362651183380095093716160834157743539762298531350699367608429007748734010504955834431273948048235726351828679010253292941673807407438444350660502714348063073685449047117923005487462382857903795148273082640056888354210664944980568039792858392389638004285450201911978956527631818554224038856358633774765895755973832367475446663315613843675855214815198983325608732999992058374254328018650113099065814615073434854701910291298751278112383155840660590975799131818877485515594987654457085974782092588127852036475950176000674787062558763929231996425854684062367844852619441026427630761048342782519893771796462128603544387564768584479805846072647595383425154326294142719399017804035517597092834913361993542972034546494820422582803962250270941033214154780190683655707055553772781402385614058172438680441399510124404016235114501365902729466387359822220506262816874748964517626207887906632466057834918334439952101192555489583701845446478722747207225078403774197940595391227457977984476114457868153352985489494575269334755556563831482598306248471098102722897565100918326123389043535634113866535875114244587218415445633633579001111970913672976535639482197937870263940125646231986449384749565546908264974448383712266910665559165013319763986244293722180896151489916069683502379660797188082946832600165340848325387141676843331806080404248085793180460273586754498170268201486036596656724243080300952662516852831799826031735472964498377916200069753786051644391967916172816144972018802565487309837743551453909772040732776746150527164938825283536284060513550964088386703113627544398448515974375615524136025475855575508499473409048747094795753960168120723760682228449256963701314302434043625289614225713192955703536674989346833411165444215542349293393610889614494294069880186199181887749699096770696870577186832984474628261256948689225558612793721499397016202254724503540751747506878691623096467170676013809120834471190955260497529018093571514914393455057146124388192901000543928106919881126848694945274782040163558332273294507062887561995875171351834417279323234122446349895672391635273910737146065713880401557707672379241941759495577772049003831606153069430599631646544771860451873942264201862549961774321094455745804793793303246146125665562868154119154654691642752002302044737235030951737713225423372842620043198762586074768181202277304177945109834045720096168675913418234879370029520415607002732326635502541409659732109159288912154486726044750309687992583375631697282632574533893589060525490962931319582789685388257233062991224056642629073621787499618786397379400250603010334672182378736706770851596196879407642821931455938599816733965536736838946114293076129525309391849172638763830090452107710877030713327325526274001932950301421247195763288762463411355025677464488399131234478864329050608885286451718871461070713631969751920034242343718852749888544695801054737893468115083114735522950860745365491242603409433686811856665177663792202825058320978384734355257342655917915284862662457741085459948717688438857433634935546568360684106714146317454409909065890605694129203243295006238793509679869082162975737656845263134841595711764931701459099352937461336316532993519634213932538809654946210250900468592306024873388963678130371564400561996060732426121028716617413317882960666373436273188581192396403182478015491297464469190576899367350609396158241540190137853437384543155167509163728748876324256413141679685842852855123223679580677956281001759214131856802526480438270163762141775581404482919658471167641906890736346775958668693489739570361468159172949167756514867134487244924443146549312677137465887145808700566633235852359501789880673990756212439120158022397217870839187828168284037402899434277453333615476282207285122589585136730342347555431055698308641231677472540430945905244461319126377155561350551307190867939014059529395633135959759695508313641992846292393114828174037304213594523933710283806678162650782937225072917943179774088215267688438370707514397408515284331481552307922583867023328912562305954802766630384358669241669033441047528757387789170915957592780026538985840531938884005355326867905839244381120568704105268617359085466503650586358936613061233828235878689605218016749832621031283424495271160575534785345693058990943535588992404650893215169628792185479213077353247291790844777154499675396637702120349366679507919812600742153426252452453606649684516157269664953721460434789959059966838084594569792067563254325976731746457506888441177091537055283152909320849243861766547012647800290120361469705426346101702246972527396773600890438060910350328432107296300352072453994847788059578872377096846874915766170919646944342395613294530546771082262701107211549646984443351713294370013735717438224767495682198327576278665925031777922297089910830858942708643692241580315713397338551973667314970772568202864272761925050626706978398636075558612761043541688378763803792611453768324084090090106283484467506149358357375562913735945302078078559214649990033428785230478149000398313393305655654197213409275787630264810318900488372446394569147623440271207751481792609828074960244388287615480740054887025398405665777753607215034704941609488246427528171196377750588045444505304278075246500552674863679954568554345762098370974477854441181807465132619165486983181707321268511381337482883656820145937829296913320575443445743591033493390787274795528735731619302155460177918071264967796930440085190145357448925679442069495906136354053739390810259471302130886869896892135704531026276684242421605073787018263536187291524775073311434290035421931465040787189409622816125998399289445210292760495498017960546985666840741607469333127980922281672076955940185053455298281356887945727952039099382843941786719722852200595406054232179942418453561653937089299400403161784293067955748509324121083924593008150379889927659761203944608064490790636353400578250278643120019850579234843193513417315710521322426165389210979557205657792473972433227282569891768963110573689730607310286058484500125660267178325022915786383741867153093224272929676432933817012986584225360891851348942157590943622825589185111422174803725446140405703008075518923416099469443611691614136579988130251246001325917367925906112261402748504872845785214214197649682563186778983554770315708942819210498744302645555230689460868312378795416368128029486404533237819324701660942277828643016481839639206995769740817147371732803914055433424511912364569949915320039412580847710324987947119571689410526825338637654176516793486426639746307528119294434243217550334032483368935694980335467091325513680375163239338131655678689318161200981811174915399072322507071373197029007466105316329450591598688723645996445859413114962062683964431962025404189453774072167748347690936919649581913014198657692622727461421859326351791564337164953714383612474849117327602531697949667663125119634538940052831207475568573942356777090885651179922663042472641725189250730323078022105590167033759471943843899852185923082024176154712866579927353589858632218201188715339131694272401498390201880814778979181537166971685213619431236885799019112849498730995873441539149725715888377882745306403063987293986553182396592799192337099512540126866023984707615622794596681895395551487454272128694113284628185488587815701517345375237997789392446348632631070418046005144916957692191027904039959604994500026256016510001168074918844161720893244671158201931152323865541878279198603204827421048171777333122991949102146011829431206432512050393236843232153190040801593667900435482935497635883378603376312418252626425027888996810203358874210113951246180869637198282986323038139721333249299733040299111466681655235867969413910285199521707334852900502091188241040575869601154721818400283592696806185470962637023627470331846046832349829034184694078271826790692234068915375882804900802374925332746706987099126598968443240193477569574824742049585068948229899154581237083334885370335834945324151261800423477079726653823412980996257179471555478734487294947618957918870491893911127109582746448755858064357428289324706138012231204549806227053649452068334531932506440642077640909689078159509852501474719894510710542329454267360807615589613830969280114743292918737210014301588123594494167767173369864068182826435119664740531842139477565606437147670813844448840431653504101002625601735255584847032315720094702234826617493633698609819037443472977676331195575961248707321442775832130873918165225455456001676158051660689780722356931366449481822914008880333812726755718429247793452096178786729832495751851383695502983348000810941321921225402295597105641028470381443118680167034942306384679816956748841182464114579324210814812648208132861897729647509691059705793376481069008981522164243923190280500881047705222068917482206768893206413599849406684867801851820810538023378319782816730242907288614986744444564249668334038743045083175104115482860618182234693634722842427767127285075601948382075483341637844274422991475832403179949387632636760451012342146082373580452788007628828541025187897100921750103360991876239892506910362668894713403481792845691134732164834429583482910636544662203957723293324941442458833020903076766821844254594514258882334833921276149777882234649661656760350580200625190389126915772820991508002513681922304231582629110092438596641020069633004795011349181995997958078162387426533869457551405339036644417767143142599198154149373547914703501502167349904720966750016043190542145335249895967186323628371838150894031069082268623575810700016490871310993724365933562476072965491947884799756032178354595599121891277970658358481147645394642925686027888263806592470861346418684478043521028553463195371039293178929064975136610612731619904999534693391261163401241130037095188593381968047383162278766807021878847631164184134850494176179754319743990921358931647684193697122223104115695000805345645666321679703674345357098615325832963207780946343205747137912921654937752585705374434972789822798769289065088975420728176693413979617734002640339435428081002529961135579862499695270153093436796022649038061438913167433081905821909315075687059022145139740572123898226053379043606022220975148858703029836116521819549367624496764984726112364863672981479071615001596284301854554335026550291846719192162437724571348489069825971361127050359720874899661470178381566199543107786580508665738885808761160722041601004941454852668151928997765264988480173320713129734230870893587561680391172281569563131518001870952445485557849133627156151567374460260210240224334995306920256445894627993545696424807688384056207180024617624718896620902794095910663136353669182391351810446680497940903587285411338237455001776813997860669475967983977863769736180301561368149626482181545996353637726939964941842088144383546633227147682929618810751679369041476183840016788026772187185069855258717454503601264481156964313733367161789003972603380527251002709299147468115798608765192902590570235453650457464834870508355695235428766420287065509331886024820779800425927222396832989078884525131235836648367520148090600722106457088253832765218844471774297327806406651841031314076872267565605163904054991107545964781905770215568145345630139785364726167522843403638159017016692799513654863126938565220142064819917975075283320729163578952711120905544239860548129922783291238977560099318837563336729483470159975131394565841827014282928126411184098428740873614264792873375964269991684626475387087656240330852898109922497037256091645475902195531452430681402832257090437494829384358126601863901607203578982203500909129370414017169707803747784693883871334555889250330054048232053190607526683932253556450545207045441104827389454076449192139164318589591904239009157783941212433008317946847776791012999924535055629233464094723116968199765515010930255642866727954723173045554453814607482598910590055046439148487492863005093057236115246789928188450990137165953263534305710753680962129094843771845291917055227409625336378035276110099975153149391536353651502749819888018066799394522596421596220968440657712500817755953480134610145714311796871090415878885253010030190824929065749128850766978672167629651105724118223606927275782974589654102734643051206776465109877695792999244539588196921824431142815244279593444780860782599044384375460548294530677787997161593534921423303615318347398288968700961713243608531662146139529981891743346962444231437687138344234298264625472354681902484677525674308513609774350322049374014798330470831160007538903431008162293335616533132475318082010840751039183282288928556047973099106201165517566068388906084988652335604089734732930815966052531937837711013945235085041053676767138330001941155817000088687203404975093385603974686438090269876489428802301355191514529170618649309242477555009452187745688905779698225198111111641007840447237134271402096530210175931627167995629849224972792015673337880883314303118423542723970969458241523186151003560608120976701734909014502825738490243494526999035177277490142569069651471221615100150611823608246624359304778982610691636995768019711286375189663178073715002062112316955601860882093138647857146217241852227454021550574481562664724045846039758197494310204867865602709959819017675695406141589333717237365013190927000236147908226703579032657678774621930242748987359732002888787970262735436175675308824494208019533993884600398506102710380095092843305723720469720745956350468990969014306045719370024201602211317206861204862154944028450256884474167021332734108952638561273490555302770470763683190768027087557291340842888154995131344162609988016607298753742125799617327365703380585841352524056853384768727146900670480835102131229450460249038421364349779937669346536834577780638873694298919694131060964039608431293827864958800225491396488072251146188532992544923276313985616766268953133112329079895118075656624273142558950804896742630141933585755108990506354024229148207625340484997020021057261546799175341335682959720978095779548609801073858484009311101635581386787884234917344962347481950894519006097412480755992494288475081713874574533649645326695766714220781473249385303822086571629478820202335758549839118104019126730350322645181458221046813067319306855977210141673538394345888319619188067591399970706961223882256730020225830953420176948804724733183884159554226267715524503557848104607092360459417989695208298029071618217198486652647191667159538987129025674593317505136784793116957611114412173990681463825755178776761233232239206655904786099028793322862412814826680437023261078230319220647630830245989346913874018268429177590098845962173996502518278972342502383083524519884654456468212607566659397574197560819222057546986303339110408115537758592207183731731634425389921326495859135031597891848451933654383260806301205356483957958915391898270881603026701996291655281779586741168987117393278581235674864169784158909012138455839806359480081630201791595033867596306584728925981999965946548456265774837359586500936432843221147699730039852130371728199696983641550653559330900290374857524204187723392501505735336681348402522101984279044869554332651084636100085607907348524316969283412698877078944530405131830352233396311356756082437185299367071146102485698077962143568752441609089424475788151239768339695932612604200373544371843602958436661706671829386729632937290131564039102710597712872827721236988499919905611971878826666996902411602456056224013316220678491252344721596245805835242799216958827278738470203773314755336278867258297031103410428160290386676358215209785789180965433881459014709597793097767346498458314436269334973245247963448017697495547221676404830117370532990027273108683744249267043526602098319103261292415294708168897839264513490919757110360793521553365212728990331939588418127028758082533413364857977715047353010778668672899203278512129605769591011766193710196666864690022866626765964662780204457174916577283926006996617196760598259724713831744606552811180485819297191550569655956206685716561528122269707073638527926019690378098592175424657843757282569064744401676082207680481337642699396815520665582183076190113848417274324682879932624092854406839095051740513353273701205895958138110598736647644220527273093514553845123271623837105120570635954796144021574482310298881491820017926937809705020960162859206262667167574014751100693229323636735172607635648765900078918184150087353897646405211481673304849688451936056815429865701985002170064188048281065182763101809793974989656659453624049250403341847447880583719513955007328150191268797563918512831030972091069161984320527687044483541797973638065632075306648129069170525729550217108985271946859999614751318604336807308160289686247192801421472328617657988012731787117609854341610885884535889347491139825410833870642347072102104728502687398604087118480624043889462925573079851300305251561329666033811861116789983970590290714287199342425876519119907997838698778012485386272482114841887997746476849730159358680827133320515668020126087507286053510382380796667267768474717054486169478223490694755616802268921766680626029923468549031678509475711444734014287631862791572080977706064713078812532680787351411438706356977699441719966573119943400548265707195880730961753573595156752380679530727930878132584391548584554048046070270161783711307643657044037766775897619256026160464328376559415168631618535222015788863653336428654289044093721636898515524972465109635670017398430746220267486396368426567689807233815310417725944805384868414282430465869242691806247054021653071681703086694476074374434273058479890148471391353375921462453786290792915845171042486012272968916607415686061690099087404759697044265610401464230871251477192004603377716895900501591659500878096522631053186632380179500587666297546104663707368914639586914472520217238382520422294968324400546112331863246545983169578595327254580644072392778554347796280417751643507139123232023380590166618896821215920929284353601874746178100728958793661840656242160725461441432344895739751443685477103245503925002074396742464376818378169702739241520381611199468115787701050027886362695019980312808242438968468914949137994309240015749388140763837516339203311618769574670722759816859555455644342934851610810866187697244195030299008855596553510499739186964902135212192169674222499630236695766429022597294338039016578753472835244132617008402844545279298648114865818014655493222406409017974580809517113564230230510544329505824899731803138140513974352940187013476788657742109367084218635125926099976886663750283464849769431152944848678483064277107690905893846330885657311215604197361267066298886140832705141714450167773491619479361753924243571160151526484568016147647506564407888414213533216075287491811907407890097783364517013609786361797967066186106677706123999414126770479522137952705397731324497690120692858353542225988964968569050555420401618249565926262698011946378127370895350277611592254201832608583781029480579552921167249487544230923246003615408723063096403490187775222681034202607577527833970867824612960209623716386915462370442626091694630613304891619677844659118665979734416474244864170622252781909373014360615724972441989079710973255621087705890249641526485538493372887347567339120936167092971853506690615215905921100313439347038462903892065580210518469065046882823646096872280307533228719235590302460147991201907970536208992931977772512277858825273508054195059578646559093572312578459111027658012625699570564251010841758074387268104968611895353972887141059987586006851858540086370132348784306106262457484573376754419791901856533012066021271695185847819826390062967527621105666308486643405471978310792278004589740525819864645564494824884145130341841308647575545823446227121555261462457826380787639994938410372736191168960956327008065459628461865989378945953689790861761670770971847054964172212402460185956165952537099019170971231010860472583211306781684925298517580864980712478335412047541164140806201024998264957476844001558616553801902412939353563506761422492678327487194793099866304670107039422993728875500334149896548454793294973166837305496870425530384085093229768940202745208990683550193732170442598206341370539276151722653365976387196769980253450556121079170935745122788156267446269501429223740994889177230820507291036057160798467921632302526135120969166471125707031718487683507492404323239780914776257563532766628001890871380582540067767298418256952540599275962426034882590704032188119299910083657369933806406140305876336398235673656253676587889447264812077574482901407802178339334891190358121620278254901685137906217451612942239941155237695112193195179757170972664834833633468954014482322740018340044562289909279437604043427272723436148053736955054684268323679825539277853458244517433063851753737775073979787996698652787980184676537650693416619425358151207873338277145954342984238014027905739123704151127148890485759180505281693466166229654771502881184781004001098747752319232316011271525104469579771778660010825530511675033631984411709103799111784588502456606222833740167286256110449987484635649562748034164901881714095411570171629667893965661244985847537279430186710768203485772091765953274670573466613581685155935015596845974963821791792693249656698779282832617085738723780337061359576680001019432190539998609522720785161302075464996420288763021444263242433336329313692518737417378082658807698026272338436595545317904845382667460284021428473065096029745821175390161391029260671736544742276091322744597311027508926838012628132344916904500278274701131538297068347300265627031383811859542070192033199363960560972293815751779893962929808698752403978868273737515507517775887143959302912917930054338090485812995557509910007235937455015470038952879275371883680542006333150821613547918646794817550587149613642622330537211559878102404319366505875235088572850356003272935732134698084688629182287907921266125850876357562277399716525970136637545056430746008769886583037439597737031572824624529317028623917682610322390205355537985070681453629720714018439319393121690033533255127792263709943641772202841571216462791454527646617422032797638664399740040744652892876280344895807266408850946648345766648557394267175265715092746260430305877676227141671114932247749266326705745413699197389662641903720103319335963439596639926320969492247959620826460794441026359313930372530409353025551211642989019895659073862852927591393866380000442463414820680778704371962466480317179386113345676961865188275022772410255482324967433995782359860131367132887756394336553718237218205706178205304502873873208734703922946266363111841086151142096667701432011708660336647108042243617596230218877510559514098026349676484657468946334302784114544081772472706877639920570714908071618292681776668316616679928873086586682304602827861231669716926279879375412431536521623779278233401703249635687443879670123544594752596880720684542844249778473545441197215429937816553147388079077687885172624985884336339813296081586689250265043966924615488323021958694459126358604689743682464175429053055061613613238275752927949186304547842280091518840718061367681563047846183339875391116114969633067886684878228059359489031915545683185363700146226486104961220990247593336686215703429815069874278184320531368840543697128473857978819144980865849807390235543797665277702728280977856903830967834153648430509563042716647445055481595556894455090034775750746191244501476443436195058785709203107583395452452045250221442205245491459095047682051413301559835364846409730654443884215356617406636707231041758146165181830841025454255933058532255053485206339770808046473267472626097529882876437341193327272690161039791327823816679656519880894508708050176830608311466007900603531189087411512453943970897348974603440930899676959906112135397124794309395459148753161767000238226653972761108473058507178903554426766831616565124058894870952099640546856626972731446005689510987542370487353796187982822763243352374156503886376385303590321270116369474903449044706825936559914311546371935426951582513764074851896732347021334339597421975345130397843386282398773491613650317167170598532721352460656275803871496892172285770102161186877786068055582009660312047478916007637867903523449147709635209979826206485888490715637512316380346114764619644768817680846069396147459258910642947268359700897208828584888413722483832669444377226192565494207501893477721401097631622051729617273529331961598562511489402021768498600647094883554700792659813910057809184283155006110527513210972900367636577060663672679228568760524434023320956780829594376994208042490120488150040907791173542299426802000615044339515815537664931129226328238764311026290516469154399665002706688477092666409537944295131299306363134206049170803048815423270519994549986714118077701519914038122789721010677670709967736704350813951036334944145954489091092319665349187310548490408600769035692240053204115779209273704562188793601466166638906158419363010571211249966297623226835370010263569018633870318904661839828083270351822698470057451995489417131514878613987161182988420812530399838536246611032146113744023986010298764813050780647663200926479502457449895663115194118937619444949429627590628192697345263953438865871368852578922694134330407633852350968856089726806416170334870440869083261128178846579249012775794915741318482381301964489095877871309550481759539347741474150797663886274122537289322803070302063237053392472246227676822637207932268028973126237472869473661875486276901274899050868810491132162203973092342150242412921000765866408294908387851541897504484139648456751597741401302009260412163886143610814538267277709502736798484879065000314685881429812451513045785073577740870276736883920554629481297516766149273953604777189061953473022799453417831603975398999330465141976487540141602592246924952081650596482800973743673666072506566661083896149571134758534036723681585692472640453297592015078000373273875351875909386007729599634980843146225372660733090472782143498925409323819599795094901121323157626701855048487516915513243069681580483495931912059269575568134661074809123831776719755931592436199683044037118135578143008810112337542820957689186878540913319094601669183661836134300320846114744753975387433176454527416806876400863452881466134213138683714350813297692742490284634494937052719221589441561190955237648354463934832028226638777514464760671692426615373601747880628273201020057936555417882366970009773938137262767786232667905829423058832537236190473550028024119606076639020300141196275088348080598776861466143148565304712941789118609439129610582900615117701653881252446441427683547719856311002596831874608735375615208392146867270386254374556282745041140419497886274207614489479320876853604565133026273445010141617673742997022476696338079112198226605976330219202002796670212111095248002269733430072310159301736439522310698694331217645303454554905790002798000133367723703957071846894516716330141606136890636221881030119198613911550277330880645868066728345949848617582801553605231671717618987316296532858596595880757162120551630383164032570805471111939995065309242564433628820326726675950450618517600136857860333659544530148482510605431833367263042036276241204755452791932689053296126334513009311905604705570032468868965724290532897211684031729409828459467544439495282490644096291659978760813252021372240075763441149816324411880190241290535822033919947444631203727628618928324575402312073842440612048474379971555246084615212414311955172916539131007461492408692844223427598015409608081752229946346681373313028478438155697740360611598697287746671377247151280057781487686935302144352616205610286393670064202419761607533853439130967754669836989276070948192259956339884534217468086363700284583270354870197897760619650546226619788129367299718063164339547330131757957189762180567274411269665722412485674841469530378338857644819930491372781643148640368740280125866572137169776291752579584632395208040747929573556427567351458430279488733363484759422316595804668869634827757236968494227566858327554120052147273053780398779329432915424787435029507995118216468498008054461321669127009751240123550533344797173740995144746285572224357766642420482010505982508257150262454041228924393820457300206633871241011699601707819040489848536427078089156789846499935468307386894211959080468590131905259506922980389008624505994152340179579684198638890371316459825800570207837372470589832713142176747448323632817306389508810357657278699454583247493058721589614676294036968608716900424102435756900382858742494674044042444337289291417484809803532752309312567910657169843146260385869375634453122909956956986073094920281443337326351028735762847605508357721389268200917170291624985502669968010869090635516961568298282200208502111404178148696109753541480173054781051459031401862538763117941077573080691711978829199624676999740174814608519771899490036398360794575439002530984548953730058395855823467543527826456864319324464279123052514866914934468378688774201829532230260407201914881955751113406426648560408122395606139917224936648171556656149029519297509973227465002252534633512447167322377878451671113136099017491496611568930728245530926998348273454410949978978935016617947250354888248871473961381041467187828588941532932508903571594414233432370693964483963703125878212543267274532617415361008953086001150028267791852279229595235952431055177627485427468821873696795592730420619676759207163882105612373152835925436466720250392854550588917989640576895425627750339272871300407830476229181462738440256142568350210039461256922332281153422839054372976152708513298233950145922206834069707409813280956351672470513005549646320736404547895252643053667746926787491221096761730601459818002569908778470613839888959381822653363063761936254240573254812799307522690766878168559058911888098602009514046316102973385502726131347140148685045989440374955416092374486629682668430107269847227217827842085047826483873896097274981012052324210548835720400876075398891818555915124454721173116144546440343171683473769212710032836973942781245395444161567427399710469788411268370266951309862818214629917873816497266668953794182358088830752722633204749014845076985146948527295553379405785920753723780281558611032563879218943079132344054553456963229590071919226705373772650004485448009958190112630645578419701660559803036649892348858198083857855988628076357507777758347431330124324180719450544039119515697928192291821740324950895293494815362402311264902460729307138795220949103386286178416817020714431075760408387061935648619354082676063399486514456509130465211817025369123377590581918644035855334907915399104096883988839059098017697395254070909716663691045721131509408730560467961238187309100553885747008442365786215757747511297943796896096208235626269091068715585102169181224789119456180993628640845992742399025709537261106233636084283470921875091306973275553782598951340518990667238253793252564478089392394939914915210298591522590995053422489395005900826719459291944983532097615012374447089892260533877297473056189848913271230647799330192328961847403005085748743172140433963133599501491840045318028367862485200655644023463457951749273451519957361316325721701426463497494462039113339532759327602365186271700027314037057750908692714023168515300036369450774883374869258683996213649411942221385091258966295068325806581127251877412698470077873841365037554808315450605662283310501362309221057551454544972720560418089205544024561812462677349661999456295857177292706479326869651432959523778998512664801030627127995314723096261939813662153905593769038082836638373984284096290585097390832324383745223012715528555211499365745031891320577903705692053447338706700261261968709111935422641381608437093828395455720225880269676443202068206411783047738019474561248301646616984388373432531496176981311220704382741552402224531912212341623903428617778937083072748212302755970438355871438319411490100329961784534194433633232238108036188882788826056532633348131724126250333029699117065600355106077350136215579134645710678943551843300622616503315909906272599824238143264782829736984108780854503349443910957423635084042904084516756764630505103099323139911612417575476212626842685457474183384508181546007153565285491159166004772240950443082690313923008155260024495058072953435036644058046206345000658055511575684031395765632443711727776321678052726400473450128475195131408775186925731238481360589772587927297491592723945300696104518320062139483478513019302259496576409408777013400739326093475990720250953815357833308157418256545620628118965835187061464837747702809025398008939765374346369201968478092280464490381783135096214392803002392331523092343325923521472039323355345341393324383064787629378036471400645651016379876342338875035866857237283273493021293918668241118328533266229456639342918749362126778026803883070586513684140022292473864536039148970840844688361861524856540222529093498415977444699245210858717135223887865593920682879213213666748418766746137820567432193958117454593128712709425080639898453154971468880598585274730234727419695046800717783356234820459295707758643744262902245387799224044392282402577647027338122455022990181382589738779965291570949428340876680356966590658153553991892673303309663876643902414940405194860280386917346394932886352447442511860517034354570534831134720341259679872422359689947554657263404101902711379492438445705411128601323857855522279250751347345529465015126923362573572571864776523026088760148297546740272451109165737843944178474294563994183665458767251643212419163088678128686903148152780058512878848616357726244346996129599448743861464941045435362499604875199215825275766673790308198508282457897250576653883839152149971407340649582546889276957554260836890984196538001373254120665403335379140957895439282696350467665583467542049638732387995438884352820395865422675358544457307851788732617052401000058164086505878269877806020017616428371846110649931004055412324013645066900049361673686126463835834537737459896333678263527270326223257211074360078000243401716272690633118381312312082386727526258859539300680216584582162042962771810019649571689334147623177065349552510530899213754781018659869970190779244250823046800228537169199070435904637962268545562964191549870022484230281310143027131704383018815938047813896649178481909021630235857177399546165226149310644329937601360859381672613865310244794494557698411750023620672688156111967468253592655468161580147728923591776093166765081380998880273905978210302152863861125279671530556597556649995703486166860928247659352098840839423246342334207276794914473441692771549588199005962079230838619437441588767185713515248746715247442365484566276632034972446274102963339234822954208245098367981077629788129072423587841149390780149130267899308644922583572810766518471143871536830726625430676823669357308789896146306295503712420244535828689601936478817861918552445160893702273443680367198451937635539283933830048883400125644639908832001027662849102484052771989270328564156681220370564734187297612718899269271503891386531224184130506518031425970870856467450537298528672639151379709676211041799060443030612653751026012742942685355610643624930721571827074040181023912307121711982897328343764941332277189846122912867965744880130362727327599794882871208799806175591300880558351835879660073605556610761824249929488999609979088250464129661988003631009154553192580782835439444507257644757748502732670948632985534322145653970770778809205959257565976824168824698868631265354803687956893348150909435543310666639267174555107213538237165503647925804543685222763896203456343133992754906399187133641079328859949612211506310907700840426539689407679625203987896107111600164598573124873020637546358357442976271483644697347546629849310812373191405907956512400238903128900235210141811131024667809323484895937403658110991246145835339702270916678180627590709157233783689196629016433597826295813883068041611997987917368066468106071893413919369888904668357421475578853736813945615901251358564742414513098495680832032129049301300831377941583889907462232978988097656184188921703194559063649752742196116470206279517686758706916344309109320145479413750601572294125458364445127097417937139849832248008376349606606823738927573775023075821097035500972085991779215718553428746124294086723011330613366446688606912626341236995076535998193883490853010337366079363325879821189291739073924908186860435534191339787896099301199295735579753081059586757283405988381333293732013095183947823464762512638822001524105827374459609650489507978005591284267896066551835451264049285492762054105403007893512167671108275084250589124834068029533089774822758333589603798393007569329637796285256443321186530417731831927487003842986896959466579901991895973804830097618351806737738510510107087762888688140498062317336873776774667995477467808900827323259628191117356125596460259379304532658632828759772491670241906134094781926702328402630646078061695404849297602357712315966100425283610583329314382564860069660043528821157574931965108422708879425680992719420909955894907743171475896625959902262935141311369596890952581089272251292324316521168999786585609533937161891379892065707727820360155170795581513125261943267063524368448115023905879412567045054326144825224024859700699054354169065316813915144114307819192266616200428922841144125993203217694383065727860806313183649914236736145517647327354867120206428918840954664450733738699451145777737595323193849587311590235987879552365412532871191245610971816496234342229198482249731454130470124942174777933652425748839377930243987483969914819947914302161352237527593742485224753549660393144072677359430753911253848911268767412049760242453921498856921812504918563192767109875036096087986167266479725962632372683435336113532374562582294412809387293910764700022005102170786279678465996446451356768638438661314635903275376328319242061716537410833074712975686988321779838852019166517995747820290910112024283899502706900682291450677503896189493988422591557452602637771616419259429073527265653361070512841208824353843249469414846582662512647476356582405415116622026610764787433539753701466748686918913771745333811729640428952779771632713286964888891094719377281154572560696541950978844612200329394196073422874011467725647487185080118481068739984071613385646574753769654525740539851066438287548911582866765902175199474273574466379885206272901552991111101534446334803266119640373981003759222893665439655059510038782495911079060991435829262882050857204722017948680132271723096058386963218612504365011881344384791492034760728557539780158125415441608775922638798206743910093198197966817660440449393719487986911158745614997862817809406286421587605502795355348759774484431757391580923829855008743841696346627273333053225862054713016014924755252490854874405278688404016828583508444128733377658123261479435839162727341716895070501142514333948116967385711232886037397649788685092353592654688418009921504532864924646174723596196986552303482558104589617003185052336459942893368184013379914172162512016367546979183668521653958709314017105623039882732113694239873249510758767016820613144407696781482557168296905956299128613780926418803787051085672277249700780253247913141260344810171932835208507929729167296846214905982069687108007723594793832194621947350449956801136367082945483772149451040217628624601847533724285545066410123468701034762920273269676498138643081211412259158845391220696685168004499133369012310152599859679576973497828403502090557524257006480632279067260459998976349341415130220778734296818069028231968430909924041454370560885013503431273642394131638672478538325161374939597471524770015732194803192640780824428073531737866257320114604550989734171237226315423212313949564175538539596564980216033207756543748951940299096376098351350017893657881253951273694720433308989047600558815420619782848491914077237661475679634328603242145761772924492486364711366941334651736850593198258211565064050860575430046216022464741352089534939314069206031393008581679138892139370732226986551959983731087840598347018049998462621967714392223464278762460324556847008405795918033092188643564413937516018960074979256555976926129785368899531901302848241231004040056925389065250876744838822540108980076463859240233328301597744634409369592230176198706163298918370609015399670094922781136083589553351883138145802428227963728625548414173254584823005498184057308185293629620756966102194654055148989919429505470419953620756194647060568070968917505083262298557285432102900163361218766878268178275053174374492486828765781830716171742093578278784003029652568631512780001446597016447658888193073278891341327321784066976075394270940990570303294573318552044407737928314360466164351185437012008203729797225436815055114413154645756084739403132199382548353293820838819068685252523806363452459137743424553291235940352920850863824170197979733038629100459839583418508511899003286298146969292918486556702635753107139189348124433945242427095709100615543347073653480517076845400178187608043383226184568365493739205784966296113246034568419544800502374370068684489064513829463392520947895713395713957352941983170021798922971943137844504159026050159433298694232829208262290823991757347395701063253604161215023593478889563737536980949761647658152418987470462644345437740616194011796739156750694081151602530777776099379187502304907756699718265477357270463871973931941890025287582609680321297771189333354616117442832043419746603518698306630057525786830380147360380976469925633042060925605912182773565531584133238573177161988470074880643643969583485422691586204177910800464595225098222566466471116882442180798270316380697688843582557303291219194336887187924698971798048734449256832644266973562943472449601964151471462159654167405828224033192679540603783545343571202906518769790038949400616115874750815677708244046992029015642743237923438974857543381663291920709086090333653987155926247356414819411469181193869615323881092575366421231730215062439602396094435526117188697229978792302840154506996564314638559545299134654476540685589732607044819769391236434767859325063895280019513246067682576481749604858028511461610294608344749827015251562123664457407339942142484222121255301681057791073015425232802420700761221767770189474318773150078900771855405857802620619874619067697756343245088272887046311890671094865057151319967389993371288857514277756693884483528492555895599695314133806634200916268662687850177141078836684612700785671189151334962741397414535139797035805292678453971607527118907291671076651026516526350851104746341168484287547362964398434757863693653717115364822800185533024943134335806063054988471239039198639330204778314968908315020831834349856792453719377436783086383651474881721356716590235554845989285405158854852094531341445730178203935130877442819354316509072752684565772032048220292871990347705052718473219980023384970717360839820154351555880509050112287495983178252090534358161587270111679753295097453386476895770758749385203317625094770751200002869952176292605441944285826939296273265409166511919500945647018933686497663216061547416741607274181781866603704334919817071486242982626405719346449293399001403212131855573617362725022046283980893602311288866572958618809560312969062297353948703490791690704749205241007910180421496850784150415734377673866460941610940691458919627666932939135098561660241218061138392535593388627663799618175004621744166474513978264517318485992173802902019864696883385690027743867617802361277415718191608487193055562663172259378747438891313603170766112772186178070429823313861616993389085609323950160075675701753268641771236435185088755446681226715713724836689689336789604565835347253832533260823834566696347201203583546526570402393420802480761156808663370404820961080423594908911978735894110906162375450355061463247922410969839201269866059927571260782646743695258823182909002646380783170545746525725998633836032334588701336000353364354918504031259701070410306832609501214092527265576724165346286440837205650415618759568867114819071313674806980229977924762182058103285359066081889192470704898710274282336132113471523505698761710150951609868153554299887579199196150629168947781207281187812461425140756877658723911693956768523880036971840372071199808162905989109672736992978383358638159293929314372222606650915004545831037514878096656636372804672175335512717827680627791604171710352051319130182999955201143574512947745048999846986458052673560995361688513074572804604369709486065927292676130849510244594910458582125233796666767171945615996950472713878799453259440095155824763686697558489180082868899864121607190323772518953597740246556690331131698512432256650651835877019236377250716537562026555624749290007825051444454492791470854398319758974932299800745802520479191276504784564186179583423414502880275637379122328322773241272438089313551472111320301119735514149571332452927609909640524984277811662251286232960572143290415814838015206215982833827875513731050291282669978912777144101867195685129782669714074954149634879710809061060434382612048362851202826769764286330965810957073576656868550306377571314422300721419390723408768547004828799465058588286124572715866391829472748701633182929525617089534743422373415209587078505784797327577671193655457761421247075367696478547859153279511184450882528009406667934970610444252216686489401834784532167704637577782615341641735885573006655812077999679324513893065416616960555949189413921329349643954351964397179246075906461807793406729155776739038942688213287024908425369840541140082913661768776020090713228887243795467627538754252782183055225813178827370644251479345539400532849723217801622963900790535377537738753297481239569597482954444761339019338972066868003171866106396775887622144961168518536618131150146375160607417970071659164095766827793791639562018537729724044218951461497117878481140454168445533396343726198893928611022950818371370575133392471419984345931405040830786029985846789284115162388020958434252357293368168191012999973119960457814345632734221818623370408857066098768038998740161915723860418195170712139533711017718232342589590971787092238625782418681950883345473056208329961543006590906901781769522434915545951179555824088242400022178753972208703177979396887305542712239891539591231148211022291612578489803745140557395987691930284523861655357200709062533647231481565958465044376227292813171125398969637284624492162392148801061180149694312322812223290097486905898314115955666821625910778888069867787908655249759761457920954559489625025978593559925723363380671921734633296049400123805865038867837816075053885700837251888850746392613038749995511895109722995257811414449746233400451022253679421877823227627835459745872919970529198911199949211201077728985211629821475711692060248804112044732428080587747201638635776779012314220199422303329752329803304672790326511456574624412657765944430726250951043710094350485686545448280851094991445536832681433332949562943495177454719469725423333078971629910633207212064384451089427243113747405041055193971183021115849943590644049871452196140839813970571013107032046284193119157569125550926622949080218376630244175097919864662120772183021720949556252565179260796320800229771141233201668753743407943983324112552033060468184001120849759782542040236903966788913369086670022511068360323420681755686211665916371180252443945226821592780347677650298600631088525939829170612920959186915420590811021277483462447459729257976301645254511042195225108045457052591177397763518615512372377757011140030611116648982724036273389116263205392970209265382112002606466796968887720406695731391872571605735132119349675843952341514677646912142098216023208459692688117450159423594122883405997120805166764479487701034737225957628846161763498711642070454444495274307965861966503382411563487748441182284823306880511256344348745162810651120944227755225711801246816285020701957303634978483102300752847375267606004258242330388806929593887359039542918037600466921526600369091688285414302927678872100200704801533934639527838298375215186244956382688095669004862607569104625519483628063972220416496256684816177224887063467186940714418945741886316254372047239231213960594729439943245312265897647459798888360268383186693503663916087786543857592576929834076966541583996694350893368817468161540083088254375114217895783124953847031003612685122363217447021381509648885446374728673866066251986380393978050492620299517984867589149985673809977206503902858051662195864072225066610872844863193611079219660158087813062524688868134600763493595113524806776165078664065984721098553445844995043862609495020189010661526130092165633871019176753904165361465862040614649976746951068902097146807409165643039773445036552006397949861313838633651706774578128720252667790066083562511814640251039681504453090535540588940061847001187784383552763538325290613947324493622817005570588930281937082279363884051685118720617268811570283656932198457530476178932527063274027217636818480226776920113305257262728177418024276883052832566937517173294690384805294703420741293293000485119515826589012720921440628585384149286761342854198764371528552553798650668946949711513711013503428943395986388197719352584742042042273700960527978873348247422707913896337500160541680961457724877824916741303718380083948324375437012990657710478089804403791312742723052831758804224183664611024431435689908842841892920935016641223240871135515432054149601241745601779229560978582967446643026086997968958738544631554329707484189892478103536329195810995876640526966398193556100111363074644886212269684952192591249887134444710523351186445931035837187108310212956447520337127349474243189572620770039023249943305599299394505179775756113875848698505930276585912261200291538357954042030135579295168234640344199329771498951568589844420571480877485973364986613317478751086469723248600920881265413201752464873057339789772008586523742001828184256169693442118180981242447865673067284992193423154075341201822066158412533378575149981340934911892199030300904188930107093083603895709084399168738313346106532989487622380204807527510366093635191746202122671061978088329981681205539069566343638524925162994471539549932654968256150795677675785664052384838469804216665917085863610428964130012670074646936113761795965766271426345128572702161443743501764688019065365183372044971264011827336956164061005253403593607390397363774880994766982219139564251296079418759473401092988079195643607149022683363291008796657091718685108695942808302347139964611537617831832331557415693553855534825264312567459630241873553988709573416658867678623524406488366483178107242684302996254348604451003849098581297161348750114798873968556266772676054483445241627212150130938202975948156336410763433165042247124972528298048194909227098529236784374583506802536620152752709556538559612153150585816508489333475736768668673527795569905977770930997183280494634634952937008420488450933396511999430977000421677908269601040216475703599731133685494266999114634183707136419120978113973093903423002611272310580113481859154294848688586323865876710013751673964625847899092561509650692101409876499673291020865693034331640393674866109928912390181534425748548573324096157457598516108006253214706617718142337821726040511331669841735212906417146480439530914923117918320094174769324255842101239808324952258451745301222403242419010477820056826714871052880336825106798659805083109546353976746822455159447705875124658369433341308927469660467556282938535449323972444993653027137393969157726263944067452603489910727229821899731182988867745185099825744624065150446051062452775141209848901332377140041278404866595655702044396175570413110224554629975538263983709498565477910433253732699311349582586959985943271351084428167527913369784283972077637402457037742251096963029985014370077221470326722713423437332913158093727050279152565595052177513468764462282932688390355341070248729999173517791975544928110044988041827523798148714604239970425413618988812715724734005515423673853946949134757009368998639682444831858581795625625215589658212902818061396281770408499518020564215140240572209954799556812396719464483679005151125789855434261635820507161232042288206911010556392588646311504979755944082882453099312516359219059438098302528665844629878486153084636649367519455499901405782840748054416582013240924544970931241775911600210376277697769403099755496819732662332937467388840163977021094276217110446762210524316043180976060331664293317341171295414087489389203335424391345415639032402585767073780602010813018820348887094114641466881982418659122403109906300317857499592754559021685290060781236271697845452127884227240353095295843607761522628114245180387737473303612110659353463006142546714702870056399431814284071571461189657135738790396901076218135757277977031628860368915016102087704591135769389794575021902280979607621747879563329472510938128709045238917380967165288558745851184206953379949220660808826334351286119781584393222635424204312870744237963736750127838856597448507957995534728921099173913224627147913604541278108927868495795074278339104653926824157700167112883077729214525354740857926511422983831360790863638612460218437182890854883827542601955944591719286800587286496362351206491996774416048858333387871042514029012577810584949867323841490005441140661185520733395019557336823499133314369198629772929355240193461400907224997764232029533889927700466988685610883037627923338918775112958193088631582853505705260055608099324589752554120978202699862326337007977134112405389265273389061115573095159545343219966853166298909473387462139466297240938942667951203534134741638312330397589843291669379526541243365599536818892823696758703634207018776585339652866874692967564972953241032015123094705008372486578010243284658632999721116132254834049739096132746444074862852652459847465476428549543446580498904803003900215879290597653648438565364048777971520423377018436428198860328007670360471553314881141210151280586518529720123487894183967238340103368612726508840066582526635633564298624885158315190981237291528893880711736729693777130327984291055623301340797691450581838497617678929741372997396577358876052812243868000226219032417912240252391786819818671807134505680164474682545331878909075845959549155840314615274469531711956220432831331945823810048379136682082164910455583140246388916741495103797830102555425032575151201923981311163102966517633700089743441232375061749827550819838283429794165159280663126628330170567991779208819158570194928466209650001963134912950516873764209694593855013470042541288130020817192977509159122579936572905664216350290343094729179636944024863485506165992389515810271397581413868421745583417277243913783056147222861852807554883236532589766045664464202027392195617472235503879291946436823512261292358787075952814277879037172801445516304650325385069107161484792449138207549426525239415654953644974578640217967401710993755499841931072369656118005900634938745013201235299704573737799314139052225490460917054415836788605343229870573018130872861597552863146823507483632086882328529242677229403569399075150030810433858030068318256211508704788709122355855091421974657250286396689730764608220320952483054932878785169321042520785067968083819642322626082974434957634761831093102338015872573201294373287937753078500469599847801162617855383762715999466253797308304314160928728111896935811223142338915522571656945275733694164329422635392907248422479396714699365850363054427763979498817505378076841987871785983935702987546062433205688445702593393795508286265718708424198120400698712467308254246427931214010482610893999578458655416044770555573344112348620110314469584159414038537010211102913847631378133866352753438729218182042617049953056830429791234238535442874903939122772416330423978676833437940209501843811204896500066650780159604097599676157798891527978323772800506398496986376507424528768146766738273762768473673081486898941210914756578397913726547044780311690182035340501721621877812720838392579826625261083145989188218557849137850683779170742350473057030714767485278428456047877080204471624148734752509323288819086789467466729705100283251461620264275945584186366855122082791932753416152071308686827948738803923992223097750311243127711618552743328793644330889753346041204163819494472123701752479081847308448011463944575969412446703142506552099847584904239409303553891866116759453660690255040137304543670574452155517430514060930573977314692175995831712284082912645695728264940048897780863162445964894480283399030883238603456355622346832289285362860545750284996735016375559972249767485554074784915453922753048004502501346484637089928908940552176174672064239158633318506320074596603539462364425338354493941891115796214199740492586817016286709401691408477718287912614740306954785811335393257916805665690905379458472938257270723639145700622282605180629112019808450316480657317737003862419457135681372735110624269394383625528897641681106796243323761181757958376432009739557158445460149049225189258272377101166558930801541696446100375295175777425575658811161752166113460973731075087757889319278399987580703561183918704593320087346689937696972315389566520115101422650370509266960553404736989553525921278250773619310227657488090012219830671769868680787139097444094670869605018072297648520703219548791329878316856368576572544439470264835081248173197239408371576357501420874028285715319236308749811214769710839801435235246665575637474408242893407420523161813829362657872849842333113153556717087997151603689346346949892093687196783207520851137654423331476481720391807377144461249655437358479448013095831242586294966566105670262268705222498592007534115042614395814079485689861720868240136714046699969120524940511714689089503007999302183091459807397987262761741043561293911925960332981986687187975475923834392200274887716541838622304187793106312014236357381400426840535846916860119528241323483401838772943587293654374197037145359898658449013706248123273655469480046193091323850046424044929964591721307503155296582599899401688327762326994901302888702747065672747745665013594217708939995898541210728107317693284674063447386700218754839107190742815193025444015276159352895110061022530435705860460793975627169272940944133213785729681725533080427962491905464264808664008962514082303009368569719442656470182144132323870876315327818684154069614337092714816193593526535567732867528488886664035419603259024473759237529565041061010071538898075413869401986620765761269493847039423226079583489216449066004935477098644645395112985645799151076811079084030363199088636318471241443398468359506516199356405556339096461430127370619011488250046369290873780327210714471250986147406131827226358228786470557744422346100575850916374447390653659371742337758986863103032103972475123095591867806979313601311509120690924565033441954694137305446831981842201519275812814174707618360038308783024265505313044633450721532373163281496304840676299778624581195901760435815768470669973353380638878647587393349020401458186465151130489320589788922037234387752202070839982318545073132210890116626459354084985740730842722371077685160601538453715062045852817208182646939803701937177206534565194526265638651386018280217496362902840744394168619342645567232823445597253103812624451825540882112408386688331978731286106954958996774525406682393653514303697191889760826247790094059061687152579749565702591443787588722689649421012563383353220360313057443215109113802845293183123695886425950084302335801794127205882975689738330549531154868389554227129593136278008048567684277024634614312458901645783003337094113137560788994930981895434238094293252551359205856919246888096549519282434726630664041631356721301851418839546204757051697332756632421290302588587569567890649956645788551900569988267897835525128912013561283414030716931063775386219082274688120074391784965795098245345986153676936616148387273074151399062265812415430152055283676204783247590676035647189516637490408447201685128933425053760277704743506838746659363130062696599468962007855989268812583482677879930473388600399947859079291519430816382592993150272539973219026799516172583337313441924029489991173989481839125177395657401146043764122135441594104891409483923241376699752274898145884273752260052416030031580211766719278768273795101241453391694596759088398839915770057408705995504857404838457614984537896635937630151065253292410688412343170631049048358008956436822153980602955111482647329265950153885110977947684191159766893862637356530748573742034194510752912757053745478381567560898711557085486941641604791546284139457242730459080943774804974596617287903688505854349119416749582061026116499907302503785477596862711413411519961064151509223737009513716169763910316473744285029932270065191958094019120934567894857556973104919888126247140940533126554861137142814156740880902081999041105245307387415327927952599643083979249572102838149565474428576730780225734202410248300479650280846734187474072976883713072445670811302564401711918379982703494886046626573310225793766568463926444697250480458475763961080541694373283914594780526500587446180133945039177055406699499090634378759341147215665963578091179780039884757276109412956530513778931546070825638514012834807645787854524587638387664407603054159598516430383338228744228668235581931203063714599098119946691632062071320721983115931624319733329139890822587404010273693415056511786683993782799746184577981396708737319526896058189817012320037675768075092704466085704671660912573082376811497783321887541488542637788480889397094430860409667519436492730216441050013983965746296614821245782900673069474930580286918519903425102026076739418350060709212201978414287535732441357195798074958098262027250742560235641246105670078665075183647044587431151506002667630353304427355882955665679618437327630086792870801274967847175859926476359530387016506664484854455219428426990793573008000200114066368010552959175412555751181745900822386971803576761124377048771781559712708396468576786002555491902418137892017656909365850175949208858920761636441282632261642526879210995364773624468479886735073446036014532332318822446009303108913533351313590268015732311710148278145394652637570202056800610499143657239253635052653427268481115858270033200110643450772692830603719658802325036200627439358332646757023507957743584633907953775972903626252564820534426557082174307594500088618710356373556437668620991718121730772527406975420212432617929822229764122900453941670587773521429679070817687325318943316157124227525292932866103364975465633927639074118026942025550792022120476335653610111894695494042619478623262650696278754630543584426885112854222873132674124065531348825462925178091267560615334372639657797158980411540518121921780047219744607163671401374756173307457473542248744178737710170538696589883321961094443453259211298830934564269427428137656664919134454553029277091609851092466221140660836842609328601683516270554396482311093970473338758119294504291161870039176912609409754330427483931286464425416710999208528462881368992646725950645363562804682846734518341092533481968360366398594569780340661490798217126051734947443025322457565741002414974477233340897358590584258400276373786671925186404171194380268541018786073380193365285463234271099154317378360505966938952762121318281687245115916044002021772373034888884604923480683000590346215591361838134142775437719517582666685405994028200996548976947082603132148704642640149856186674068030653981801521505249114252831090246929799928913957031814510522401940778072779472481697982691559315666839991122331062536136867791546506636819820726095326968823536847063502932411032736995417004793542813256252036170943973766532003229282637235191427058325336487124936567588141175734910398070440232568728094293891490178622586670657965742756224403929358347335399209066601327708030441365974159823064362023260580451180475871264144320874563914163735264844055030137253663249249180809897994512950739201067340200830841307020467720726334903442922920933737597770934257327247232011067204760632621107641180282639456995413671378553700355597035333692305599538533953495634829361257980608658935998245033443276880887351672074756571817895237712555297280373620395260221050843930437412441204956906173937748057115684474701598467362628638008485671520106793415440227744838408401147810534965904942289136720048363328817758292461904237375093590216775856948094184552743662688140616795223933956136708478227231453761561325587641770756849035579395221210530332757290010211540883482603176676959244089197837383933216272984433057427527725316152741364560659382791241797241573761759390761652303938732919518507017480287431360992729970772940122769068231012116928368508726134738395467027038044568618809415443999084576542260257221374540354471191265596343855077165714185873473976606973234960749174044661466570787262625282415639137779280391177252292314381001982569940185838261378911538350707596078867247718759489095801631695207847380697677608132663757553545201364300988085620583577716623740342464939482752491479486048713262467369499010575653630216052856076226908486407075970508570566817034174204423364664917018955261554348858360884304287323314815275688986323216317387753754090586233611832661761857232259384107789951456020851062615055675490353200190110057861255840808334390626110841808945143110819380075685938130495042380319579580896636101956692409303253571985665365755624614695231659465784002594084780711350443973790429071441789831869000584484454556457638812525800259460430136497119338986729967321867315915955402797881063331036160752488686865043651226193438061914752257353270664198874576782916711635549493494863017980908993928247879141565946838450716606519209399690806505274705898644366763847701379680493386257265386603679476783575745948907356430739282694356175038061472020537198614073114734394510820299263190698485902654906185701638318018335286164579968523057402788615371470239796556029656393633542981151478154382935496140382179314082640547894225838689418889726380163451280705642060257242962791147797168259103231504217132940650662567890494263370496450901028275738619597639930212565046097924653807747951065583162387994969044240401676080711317843464192697899255240244624281051979551881494774336496641518961887195421592050991712559978484238143005982426628918984347931050549133995866482505210070780883639651204009620869864815019836450619931168045277010461672408055776332730594251044009543979155158309815721425437303980038387447750154730069262321204629713933101685888720556891874916170955323226530170839994253365798386642193840710411536197393394103258810203839840957345101122592668513498024738276848159342176480599672945632705117968026067720125988319411959020772189581491724037124870388818173764922096175970593222756984999821204969987991942416328170212027019736564752756698411219530836694399945057584885341880191648522705185568863845268742914662022341295522145615292964422523729375313730360193040290053836952020653995476390792413047402617057927568597421753488594371961833475470066181367914510037941281841016649539149292371990067908445252187975444818012331882763272601489571908402181530421375060975921976563691631869655597259235538862645890666259621150796965190170633842607044859353415785281898872066900398557886752556060821147103348086502972002665301213586651341957260257767686293177423539611766909406574491721712357555094318647772420268273331822693993534906975421528989854532463815344331198507524449927854426638193396279297396316785800811360480119136026197521518876491310932782157229137417747835852192341760607623816952470196245994959542990838011217260024665184160965832719016321822685447180589426236470692214971737507629294108300392112491993917662759438945305134970057375929934866768174736433370000216527445871542718650194658484237940394173440685550343755625898465037515938327678457073469988481528592777072184335987081002745644219941692431174488338258542264347940458865475848330527350309612857551663570864719135382738621264217798492306271625960568470399006632891765683980901596257049883252900304143303468039717176061201374033747578926831247556553273140114631571364864569993469124999091443375133665946876242742705900713504417533227759650221240997728088097934539596317025454155492980105629886367372157516719822687635075879188941304082918173529040888923826978016785595462529644688403769637268230573642402753238292617592697610861496167935820082338975098924477472218949730002726322535513666908733932457417873938321006798215487192071111806365886033496393342385715746132765229459329085258246302507585302416412086380992672338958009953604312101545630525824925395734705275712260496604968629417084829172310448105088015333824758439302381722781262617870354778725478633272293271787217059592709781507676796845026309974160843832087176194506551872803403152950001105270022664586371880334251664378032023951919657656278023142503388954807272464432743604521646654914572926534924440113463095516035328369641672975317239529149686920916106762554395983202886747855909317777080120232764557614046109665139657358888012238092837980012796585571373610930005004782908320485066128157799074438691737560670920494511657485069261155098025671036637537116402396012892746008755705318995364723028487839270473835318284561474407523304944696963650112522509595167557509504359365156404679127254560351211024178337995628824527216168896399619386167789368781984810316660071166670818111708221804937866656399924828997302873942869566385952013951954758121273505981669132730326610012033805400766754057369879889311871985130047004824302642436480646301585864667149389764282995984423311633193942809190195716495345013831033916138733161931331626042424332927305240786104289057784930750176018692223490839903272493449022213864482040218423470757271221279964210316963609849026002445421492926068956914023754369698229587911777914778268671663508422906717260906935476849877262202978248357837878028475737445407526144475548686770928260230859229230180871463252861152498330393981596157392547086791104643599080309002042979987201871935777161811969573010262559530213644874183466539006482433041695058081740147818388667877622378717740570299918713090449902687547538825100011331511082691727938195385718045719483063346589013970804441450991829356530921843777140908713527622685613882679902054659145499954058580362876007115607677850227947075540499807201828119726036355662048964155200108040054078138790994930622718141326127582699037285412072813851596212312790551694172577262114845609299556175303044243126218829383160059161683946666647568634943990277571984643355926561954238662316254558744498764307795550457568426484601852315888848874507897245183710294703799403163161736272975138509207297080868427385677626178392732483408350075019935568172131415067039533129754550216986065865273846841696909064444260090662331152767661896233093759924313921653777669872397428887181574004835263461183656477758623448354931766743454412353912677986466332583571445395066177201861516162134417061102963331577514509847072796425484152195613952273641823068316890654821970827226731505615604206990942808944522606283084493456843650530996185134065530036767543756312860271108942595565945222671169021303075962033546340578599897967901880731807804859014234833635659601219542959760008060758750584301431065173229903710723801554832701964142871334852333428064079717169895311036753073908225334242091921632493530788441460842704340696617519261777297574230486747629677965371655101005970457901033277949898746841776742227415209121291333530833577041741337583867357166866521221500243374269275938852445620873664719328812354136598734292391951224862217940866504558259754912916773383674082006221847812542676646751134993645059254426229249889110572808201582560819752586877465167477371770500246299778141620863768223398729745259139940775958921892998930931724644315886067513421034815586240335553818712373690901084495474311483865313700591653262229630690407480221778738342678341568733867303420686871522832964847770656686942957670852406445057110573494451079389959810422505410377779780577403398555540730290765620398616846686444583384627813238275042789911601020257356793035014862620236805073796373510975925830186876909431644027482928544755692396405359152791749957216415858123318281418349376154911042386001694952715065127113307034752804980039416901031714569155084627548094451037121710046012838335856396152906098106475523786677328606871501381586579560668308772417808827709802833382482602178033642068977045279312833597872227810419934804527041824325532019812642373328261677818573716907859155854380287944251821831119864363383014514994944119858412718045703771028745433261724401357865166923254301503860192327551902623247870666722666027587096472159321445009631874509871478733031729088478500612189413343606504983886940346221113021604438265988737080354175240216146574940180423939137212343414590316881251633576121177718549251249804330122898061273090468688812270294942863372118618315900015584761178461262564279506627031037980832038339486377468014297430641765939465038539569658590708331507780692501936390742986450334083098978131951385490248542647607466707135874704685079430571709989963273383094494859365736071005404149403474429773453284573465716197603662594570363373374145630986859505570223572368704916448384681058560717529328988710041555943099891986125106443427756256134644201037767347966833414428313819984795865256024793066044560561116067319673101771645913570182787338984413280697759380828222550621942488058410917149346403009411289326894189307303307590660142404084869871171803598967242168721169541433913603218576419279158476843221510196226651247643306431153229202000133266112421122484432813580397080328976969393884761999109340885565340311117277898477540530725210380046829262789703102011670490056373323662082841123412290860279501361552014967900347579392795663153327525799716632188320397852979295004563030606655458895667392999695981691639899464878880535721770095648931355867891529150863964472064842198192550552739011689910794432660584242032125402015821137582313019013089100154126826163626723124245498245773011044365797084679165169507123804378898312683134759453887674527241569011465118716314711139873631817156329904983420785717569438585924333623532000136979259401866895460443471822047627049723971882641083453651460785757022156046940335303146388910105656334226932505218008520628533468375181351571897262989744800715557109312943880190324205849936216031504785529201489629656636266007673875632566935119956904819327925224725514204753534839147532565584048587351036666448302919748579896475155964231252123399442497695577309117145599486827494429088148582497706572886378682315596321838705663478997165856478664797471094190381125177757063758727931137298905743296964556478857652161788964624051571896916014385660946605242731574993772322929879345207519168033002044041597494596532673715126779058594826093916337635145724837956126802508015591237728717833631260382116030618864794288585003761604913667433322501394633501463117994642867469690398677683200427310803958860267346497252225291079370306927502914624836485068143922882917382815268535608928376218872870340836518008828680325263676612433963567889971332164632472344705942096213904837660192100697940957569176109143656213782267168661678286890807089678957595381949053443378292113639137957264518622053094423308187387409656964996959367590389658701680300833515175900192381433107582310316642535852931067639139559504801446684307779829143092470735930380863959278584314104488203913098664663851597665144541278723660475190030043985459194577133374085463257606308932131971573220891244358253797673560754945656829915528252118948655337870392777638817140342489081497988903138890003843384020506306793270920320618226102938586498163381192112592983177272658482529391529700703658841247445917909668634918354450828382985539243483499951736561601057847062099874864672773312621072404412893070377161077145594517457487789681527250017309535747072916347027533765591761647931066484102262659513458326901972705182236485748000032896867558540868887328017840772747343731394783781881809250682345078377795786398849958198039648014059377784282265737478841653200640658344844204970645453908434702046522897494884682439869381116309853710779984383198427923894784818741138827921634901109668476994953043665464348851285623442417545189786997580844082578544374583112771517742350193049458964583390985279500307523559005783796350829713588864267271077911336268047822918617619177321428321255706227895922832818034984920280092121527076327428010741785172071841289675113447326269925382924272112547741279342310605536886500791970633757695448863596061945595244232366995483591231927194532952757371489092109426727958164997122434482404713120308178444548151584528700350771862530776774854916156867039850818376994674814696561230057785662660652606808877074974994168783458899371368073843768098410318000363475649601855602469185192206438002070268007067735551883722855250019155512984091444637429978267223573563023438963126263840013321741439928167746817392400287659356782414860774687327765885564491014950913941498688720062484743188226735904073183202340034691836728045950226937716664139625291970066563764735423887673505103791312789519333393648467939832378743881438178882162088908897910929924857169835032366727441346655368681848219759318690545999399666635164827419615916693276857156330303172081169534742088437823839967319446755346284374817071074828740069923101788214683144257539363496875453094246188209477893757103898014949720219583744871046694744141006808797753704965776440681502300723665673226323743026136948809537649564703847971070782984612695761132401890770272101935614748214113528324831855828207678049989607819509739283780840638325011595104107360122743911936297874254249396369499123311653697343053369600062206813585302288380003820030956712529834649825447138983163340778601028649792206220639676563824611839588692431440086074770526545502263821081197715643962394269949462573304402304428121556948163548382857968674512855464295945331040300597508725622312951748004022281897932778561423360469367986301003617730380217265727079862463500551038466960211106413070491544373191526187376601863810999343170773591939738373369052111848302957199384394659729379472318295680161515583148185318014744972998180338529863321027432077853313492845733057119542496655844625686539026381930246061177954376489191295733415332156354242321424989133977962393642016353204491992414268505476661272539575805118372884775617172531851234814647308707180608932076592273320145927275012255597783621456918305749546224414011553232227885156669902267494350885419851644155448254684211942951679528189298652672882283011412389596880296731409523446998380092070704034207543226686847606537388532941767885706892905943759350612326206156971539128851126917700997924564928720440507929566836600710941985681493173424858822342048803664948197224546669810908280931233308035902949093994365410392571560830931352797290360666508677724508324168243510761302917310500508815571856143707265058262430712395088620466102313096347178496058567361107689416328929288525063847921833537729544497411970032309474165467747250354817014953461479596138822883092296495473450418810473747454617028125883931777209485152293874598779318493422857747511780927113553813805451487130401994918394220690003196690814470068303488442674812215047485608808963921031683286792617382653724648671170861794605585568392287074819411206014463315577203971158020814462701391717671690726140233361360214552008904809011435088353811653508642805725819810372927590561339289339996112942588043147112476610816030036903686842423201965275750831096262927030550804106605153010210935571713240976121944263983651687326515277033009736307027794498242933235154617362110575537297172337467740841542009460044701172090798809349494354199591391604901373508542867826905747462167845718213309929266260949849377235031634861238575462671013185574363507864780361961975661911541319365931908797926599182289652014405921621845696879914205384607824915844800911188261718467647367994447492859876452591224592690420290758428849374198469769459624196372694328570085432199579946757642755845715481395057321092285529430190448649405874359830770380503952167172484069289268203974515967133997863277971028015130366154307882113266434331818755821975900762630318811215768972523149922010928156919291728090299817793575726545727606301952365496735546592954840374154036252103459809792851944941720558051037546735576260231039074847783243093162904229090319522797477920016297351380975608381422081951605607516394105778267299249415765510817614389322434203012057320130131197569625707914435691778186884967753526436712097639318219029742875254363370232883034802328261937196996604734830269002409837980699265735337964792214747695651608215242484212728648256223907232626063107578069386236010939476234037008232581807534475389784667590135273313637749636372282043234387857730682120021589016510913469641464687760276998833173300262815933891048271125513097205987367726995180975856422494484664851301287892072798189743485983962797977855746780078457719025948815428721323121073646920554931780458201671152921280977485675211628565206646113119438214135640435012525197132615267094028946093813115320869527390979065065962332042970461372132991807385232305203837434462527661751702410658562026747981914565718803103587226512719382724405082783542120904389986698417584833475638585493075331283752104658989832077779063726071025102295064933287195749079153866904904983405735859703571192001133780092589917545613169903272162125788248582912788373938939172107777895894597085530496859040747752874654566917906162697417565274416874025494645610368247512249797969146926373224328065797599574713440291870824767839214677479191635397817054778125452106081854840870453317889792113571652389719564500291015318685845677024999333636275228649820743045054259291139741096446068147928855749118049392118196815254766200159038440557902824316026377005024261968146896630049848270633886860110295845609356015253629306636884425935064577405614804316879450529778130521066259715645896409402585743952183393294440136494636166713398430186052432079718984361326466148617010656494778345970901023168939165879784549106258410436585191574317314060633761072025953962133776901162487855048337626221908309541575129416074276169955284381154215367549080129845541492286782040616677017898514453029839138397143759440363875466379215620252446335010454506880925201690361225412744934998831605764866495987991796170850718866663089166338038266889260190530743274570958623736089333736805277992921870495636050556783697457945958367791763759525366817850256694060102509577301390015590626948620339753694381461374068591295360502414448834111411833484949557342974758742980114292944427055975245184791629415033859824624479931685631012373008830178262224986637038898953226558909162124999193170857326166896024583158883223595132954568884701494920623129436597342277525199756459365260306683627755184857038782270510524906973117193809832481108009171536603629395922820694768328824674154561621832348542862842757675454260487011983074683367627478871445616077952410198680972799109879265300405097469611974820306466000400652150922575450946990088280521283645402521250419956323925000144063575737047055597476594101467438383995300429788633493821366359160600443575904896072880975762944040428643159787698362777093717519869248174881211057551782384586308737860960664564991429915242432551026277516188011709883489061333517797366071996017587111093653220886940410927912050925369872810635984415836432642896768527395927012756445058273116208104272352261848467243158261010102799309016425936249279220113676914078622889837041557701078198015605022601454890078220641698975685298399235406901862666438195597304859750352465171455382957117763664666958910306491595829035456378338306307526781485851270893921314042556873435788683240105810578972781679093504738914223174410122224026306985480728366004142293516063601510065069995876836643077277286006610868832806088850699239402240321475161388123621669973108582954184698299768228771240551220876067940626933271287251609365773035034559231582692105023504756455390643319326089364754391168376794885274422868143970403253895321908078410305688929821217096348325991042151309650493499109313118252408712910614526229634491435971135248620374679182641290476207135093265720933176104748612439975419001836529959247297680813794177017269124943372248490052412697188742165001866598510828983415058984695120207131808696048254637433660257374161560184960158054054365923650400708155146483473512250621260252956388701637064327371536895470410521006289831399447197006736255820112386255090869856082001291318613485480245035463959428193062412476370949310744787568451354569099151959909994853924382537337879621827147569585500221791648585056409005567530224524516687162234171571608873196652200364175795117817617119133269722715632432394226997408617727784466720682938724924608615737553289895365980171345433576944988792099869370245487569188069838371490239564846195889495670381384236082628749658464607553683656268953999007792594132777392981322750429613620371289763989307318714925595568583421947416958034306699150389513417258236265817798119764345085984272698493870334326099305594028649810119700735709280035165315416559257875660221691230182215798251442330542820127032225898435796372666620223394452219818543196192754460109154567507907777138881422354315691591791768900300258892561769491466598794232469604897858089991387437014964163657509143709052061179966280699679948595843509625682755306097500513291622908754536176391689350819346505043138066437919374493554852611147445374430708803012226044115616961483344939091541306043230613726670467949796884250897038030248119861646706196738158386990996018979876596189544411002314081233799908924059842759941621157689800414314797014383768299295328993636773951664589805232695390371841684935455566612868681202218290713766898300924488598514142486557946561754359931268116845021355001695103101701640933079464515284964318329942264581216246472691338059026461065891543391518211534123280514575933866002186668696329299219495244982916860666246215177987558212558453862005150587239666338461378046406233941441567084521928995271929198593113543788106976869556969264428937065135552599533754041228486207625972860462513666593156931210094478612411093734995366672159634383740786831126907736069628234674267137712706718042856900788170628411893801532507207773740816471950872654082751351439639330568110412155711825187673541138677935031327797591404324488528646682867407207019373321265086777967945699096797278521207807848352499137033919525405984110017030911822258270617273836038940479234011250259117978430315026610929402705771446281154608822616630411365318516042033566792963017153784352765515506581268161311104849212651565183398855444137172780639773279903238851253156379535951511009293018248812629824990299918234000104336060698229624598911228831989578575613787065910344296472700734199849245849503170461400569635302023891883706773429437133596158278533042644714748913310037063545609265170521831822483753982219624368531917772903957278833630477540276167551343733122893521163609983271188776486512422888247911569484157850053241176534465794475916489150344026106208326472837886435422752247577309133632589234293435916354904155730289025521665912628723771730085196501676504361566447134785337074861466889505327785873043849097820944020343791971081669503492155109947947330689231917010957583755509823495101915861478764695070133906965013104118420891740893714550810633477792902610322539490128536922458760004795130280697752129858087902028954030221565965932009838021881199493434110101288512851990546570063675190288197588006224394364852170730294849514365574146107335929678699725791523433485430703323296483003611307424480312563230375376110080208158737173278577795274037395404414262952386941059185881955827628733051182430470445482824021703705187894936312456866712376929312174629638531856340222998482390591123053397791679294884146943697811462622665629350380512582946955064957260771359122764916505664861196850249185109639020725683266465534589814882889168154764954719324777983681868904487016645068701662531901515558950789922720165006309073291525391097348134782453317646323941202359898291929381927276731304181278174714815474752282317086690214910997211212395771282073745141622630580100543694246624469120409689883352733003066491473338703233698139179595093548514649188882328565578946957787134172033782732170216263188379818468464085786332316669882948469299384312955400178834314136353536128841497579357144980264040221588134514203352192031542088862939458494306980662488387312918309829792653240926040179735807560268131128086857118699732235784119912604337059889791480528325238674806106486565411273480707202382825159706080636974704368644192693202612534691123650127386340016678273604593627485895165247842235290303657474045354257912471347940052789051909411825792130931023334796335247143633200617827283070402269340797314868677286007493255923810430344404981815204788324790600542819211030173708448501039981540254761989742968492049206228597368501613909269965085183150182974669601028613535317305591368402868386339278307390632201409149349126111811200216532063861426430417976156343925381251436434503397889618325913863378314224269146890434174504568411586080460619009964675047013334971564916911024869625528021959738104012117675096857142075349956760242452385671019131046634342987713200500780911534409933473684150087003422253925186343621230640894399629375224703488597906858940439332550081751019840160252880927452674062958866100514093784361622444810822008003902363238173317134674263483804889587371803113523976025997791903279823156702742759207622697086512937001679617865864413403067861278216742059715377211653266754587713328679796649795290558490305598616110543856384909801899565328275712390982415628268687399825176482406471808807925805654726534404136138788851167264498824198089798541597859851868498020482534191347437760618457140748809488146183429072661513756015503994675404810778032007910013022717663394451998563307921448685854946370925482013452594679324463620663921606625558611986013325781979040179661376419670033764033998765544981987228793259360499574681169292674993718117552090110242349562354875362619202780302436653638704348034015053722461312541166600231280540309625571527911750835356989821181169788765877055661574870831697850983881147304300511293548600146967036674092451684396665702630646546528234040597000593591010153691018773785611619024545099727074498656071471788159335642598579518745547504050591390854186917966337338778107945727258635715000465954677678431591675449132009260012550321442963534943899127238898368030518105755818772835953757255934587640025815532526012343277196727153174711011254036038914714282475062230327102643920934835646329746880779278047193505097661664894676505942752549561162221451853756476638087099122024085439331795627120806899142922075026057660684217483831890575675583701921529946106067711812843649298901351253219355892009881103638500698538671675495838230490722355744892196314981338712685347078650420984740449268517857104037431995654745234230505260771267438924211322612338053953067397406506899906696582318726462053042610582324308895261669513280471885044710543660730615440253220100275981955936871469397774249203210285839952352089106883409207470391490586427827063647711921316541373413376077275211235854284652896673065414067380245681873861451256183232994109824238741615066023387798779394739575971536994712285241889022545652706430497582985135684540410119315324941093571808244094222355044896507729981968611854888026954361485229736332173484762822942179352133114205351455382787515201899539531997296698468621579720084292597703916501096517574888491379195744392831992108282950119615830010904433901543490500079971776056458812822587875447660151106632448738312997392194464499689712008481299433417230095280136573587320143757644620162647108107277255091874439221272574708815830519742545903016446417575480202921066175531100594623056052499878491227051891779192981872704580472049935831265108858990452509961545727984927962737945746644149169656368895918747414556006336330014671830161198049674312311309215748213434540034021126450531702876700116805187624320866993678929896368304518900439753294900569344601584866579220007250657152235155348941626875315867160811792136448332089551624627183103822817758596160552772993314248029894358854024448745014982818045082045334747869297969714793380910861732766480749867524483555973812944336197500316452744208330615226507522398196234965092610833995004642375727666101122452764328094663653398349458984589500428961413758720279807617674334538308949287601466926464739519989571212701094877676052909138505678349779738192333147694374061709439993163206978308376263312487308493008161348372431227301244264168397543155959637165750820813915470518465080887527624208124542651582243754946743751699804993626922075279881940737545983003336093070018315650434656272023488704900057057555993991558010669952536100375294786272547814369647209704802140372927062048842173542588920396031559795950958836525918064471274780931565840715631910353541587302396274137298881461336151567646045293888456694102271420920717107719588890233596769305385473709480223061666450879295928016844681986196062250175374156782742098540278431686828525001480593489517014770256457211392089727310997108011724286385180676732578171518280360571875887372473550044034782980866417633888246368121905857869375017630478866195194828015321522135779681848721733494857845821105134448533503701520779217456580670451235757428378403597343776843261800301825116553182803841397194556558277886665083580166939079593731559532021815144734810808110689331824700545603965548613976187524224258233198434988784178334963589453893005156629677592843240179983088496856734930206096552379099015126656166867169816061623781011194620286058309154584669241672828935791202853956718034819894982501212642543444846990852997268133090027329765789835446269098970816571191155100937569943674511265290801918363211586561208920831609965417324013758102600182243975575929007064895942344189152338468558832652128063515397746192659312149597419698848625427608913845552049116266488941242622308140221500828397142532600090312269052224567313993131246803587195001403137700854184088495223129488071013255191563427960215553667114372632418584601756270166064846313445243284683647718669353163520484093789405416009300782954962065379258218100651843924955041250243001799551665043790069190292524362296352414931110348270008532915026609325954091382777435787435169771836212060991162310068661839962783390401020141236383775812945536000016969911991847310562062068889254504674340673534914834944577473903769433569181141538922833766176821321477627841663323170329890673551112775660100875433145678152951596509372639988020748012935293708257532057987763510604247736641715462401560399863490232805832603667267336814644840663115016720968529765552074381770086442937899340141121088650225990485877980561560498606044747280586023745121332624531692616200185685578097931383690462846461504722665803112023207163169970157870902940369775117080685035843738546208619093368049710241530137889452561576383749871973722764680678478055891173779316712633327608467269071079747961156978209167289272387124913455891658598507820377581112582384598247096347605232337260700547204273340617336016086229831033569048984763225005318229083849808091524699832271340443865220551048030749235019641612577190463206021410098149031022186318157654645383570368724302845961612363452258372052356620204311313845691687637485856813592783921008213856321261246631255696614847690183891525413380688363247164973364465883479888556305882113644224279688498519560740086913188517053489278615536905419351943618066371704323000032397670946389528566386441260381842944488266207394641529261590151335541330473344705027336522668523529608354600726110345052813795417658820391943622006050245450533802420232631500065330099918767732166820986323810554290636882754833140584492159123128905813836096361871321996260471331821108319714829592926194966536129957988692007080944809905711751947272179402285355745781813539846193153435814599835573018040977932462157561196615814883638207720169699254337558943552181152203752189358390196097412775914924076801089739204479571284212555892230395904440466605238070516883856590591582464156757812138857285160786664509605791586178696731515163249999906022645011329754171443125930761173694442443394594589899085398181371871442742365388861138079514059339303793636378111582578662414686169615602327377804357567456143900426165826279054785891467010800911767968402726698212817296723004234951645301979529302588035797797897522867686181512022020698718718351812210818672678280599568983417357641697567511216600945812309565515400864873930432154177948462001630570732146258296595578279096217171222083001749248371496761455005298669642314621339529482750560988389928642017545650812149028797828735071613260950169279157960744513872161855791415991361256405150049476140000692650957675489617373073356096282535281558631571687330975538220240770533479229995334151963270126869201793633425141266997068165807748036819459722314328664411279340960494675586667567236755015523785731406389752393583987355968511428451262124386293939297716585914976210321357502547458018548822867201009990416929405668562669397367129608093340803984610709542693423325503394640774321259725868632816289018901917358574125820760980020400249957018430200214089649248703250521931591644391135623948674358599329494926768064314874904688699693428920591157750096753619278376743332811257292175561579591595368293713794987109047356991427515837910813101118487331260289189418002921533037434317628397059221157453451755352016449782441265464166924387127967149833583125829279026009958836685992903806470739570055141571213454649129511492908569829107544566326555175561657422190957438651055610115159713384301677638852443028152560633648581866837630765561197487986000005635340491922532314218861352208064686149399829745305434832056531244609670043555482494640868819407300938370019142839873505924617281291317809397236313108898291416096114217187055305899132331371920887236385046000148594004914625315665318582762487526228768748048934337017504367209417637027806318714457378762502773071332440543820231166019715133009895370795529578829746004150009873642188655283897662847512139445523606076011335113368980351586701310870433322565643368560098792194957689733155787295732402998142221726591169662864542622534909728788898296503464398107994824122342813816262687890131371417947639729238298750376350490315890523029099515991474919964887368332427266856703028157096467458437152292255574916759018485645858479902774351278328054865653670413408635159187830430545080766356531233895324677514145833801898408475592398606280679891173275057844019578289487681138396073717610433108903727625719908637278854863562404274930028558901482746321886364525689653436801868106712205995796156557009816173418169396939493008987001889344009503591801970880451532650189448428926450483320830832997064161827600912040519253851955682940357181142948323614544448683817577347629265414246169259602304738104637199591276858635758812725166620239768725442942580462052228869024736157834733426047565327119646324054535227513051037093953766813444316155718276828103671618306634458222141996889062215874939280515193629066361838395119622978676567711018193527342501912274418419873984368718260041113339119543594989534289232597172652043052004878858671606953478294551863434144255980735144455692615271518342876895932846439703539916849147019837880132304721577258526179712769743058351708386522516342187699476724751947362125751841987972416638331055893717424196117089266438783476051724428846537891598250745629764916417583830311970241197431309932191554760663840946945004696217034800034817749997689050199052729077023455947346782259206492266953265077290659205896468674080097206244786742040401121440913091787189157783583158529607903745433666060090283815655746560685229997098860228264266961525887764286319364001876239215779069017606221156564522599000589715587293230849727271758851923125994664016498522694247343663112583498003464809897724652247155829825758682326751872265380398924893341054677221408957625101548664230150431299337400052298428913883955050525320529173463283002271831254184364878024870237568916592345413965068669057809272598340046870663124043567929818485086766303048219431155518073066959318934367120634543721247794234767316644046594578151637041938229686837373547682405495955273787501350143844027961002837439349768934314834231458312081139112717811152555770403005681223843630369553620228506998842852304472870435554402122979776381102264593192894120125417088975283352157528554868114604974888974089251390136762836178331916049993060203224307669970765925548328983780150132536993196513009762506177865358455336542140961487721316498861194873218373956173806566469154086429992209745420743416848081129933556074579794690790401607710477409046204853699485408213162858560040558738310078888662750233707101630313574435366546303211429798859987709123673061008631934243126438023491063911113030835899742331903079652982075922645730207009064468186888983833735354718755802015265963373243384367200755791382196842039323400883689253411124595477181534413462558829231713566050075112725001778448214393502401328730166041165930669624648964631909903395699614465301232814960097782912407248597965240682446014164731344615941851361401905112343401477507880866297851340630214926852276157228874630052269021999652731367097231246897228550571182334683502431269568242955006874934424643902751505782876947945206444551029151158014790634312232168498478440427091408989325588463510317419511522459543041171996960151250361103604072355370006658473642155592788340130202437891784695664193837078495987124027794158756933651941609971276650355681043910156944974865953924647043078942589010928844144153498772946686417453981095207696355695998451892082343746303996542141184434634209264870240077683088603657877461156490116630567071659653078054344481385712783058927371280041621345443745651354246935809822274067981986191624954784015156844558880063638019295800982724865380654246181331341989631373127165944671077365691698424046945674531148632562472797473594225788828279807352656774913483125012684846409619814841494362749441198407638968556526355465279227198296858243783397350397037908127326362015346239539477223001759812404099260926228063399636013281707059836968233172413953265887525978494417278516041732485905191317491685053896765931636549762005483847996853809195048754939372292832853916341548620558138589681886217355116915200189640851928075125847902572848866645579852350941442488165966812774867807041272465791840340593499886927764565442062354869516990772318737952363466871827381173375837182369653760772596920429774981243220987362919833560612450954188431811311367588725004231886173157753468871441723889726530657729985111398122692973731542154302859129218046651112847288845295600783726608277779340290140244233575932755919354996628735533721624221143660525763592081161851852584631474450998881231879453302674858253452725230335318556671156491936153192990691350145658698593034943965935481526230567644590490435624033295484243558949606120784070753632513420020006792020144333817716026774745733026339670532465629102992956818280079749487539832116437197417049502730843775029210660802755088073832954241543659711877973435441669624699904986355671697030664767140091243746976720829513205234270412860375490164511428466153173674588308359743236955768581148486177026684122018156072049003996484056908413110262212850149703191838091989361709327094728130211075371863249733584528252315270790553713083513935777874597517847707618404003356284158026062933583302172350686090273094033629917830757834378084246344306607523252641488236557606465936918228428107427204213189371002282113102525266470287808780619202280677180505487996084265899058964328864809825642313291884876891153953096674501904954031708821186873345011502833555922434463088593243442474011432815943054142125615063393194075896659163147504792095286874664796244628451975774213717376103197700163460991822182577162582994579681406697313814812887316652322226510311103114972156831860264552008628025685702952413169918603055810717007160143859582642828246325526991157009964127766786696202168997924115785096981675829325811902944114176018771614655476324346480548644304212105759492781742873457764796791030804085732376023836255465064038215584190167806936723249603283733616819451750256843431583536685253983511811150640664027412648907764437647001609151830528798568015170059520614641926354656968550719284609411919809139597620792215653490374716268566355652398403557824650399603360801762898314768582188281000251514294396751475066286209688649055884454954110663524628302558773962643486133744048810092298153717700779937174789481118214958223315321847515483034361787823536405564579504783000130396865432402523936259645753129071416495193755153549651634629051604803577297425410188803515347406765886218044797772617326797411445242229392623943835230822872346921288187288418043673923139078988539549961751119855756046060192431813993527159442061522093912326941451097734072068859382529882628484426528092112192448253269739190204408245406534264713827363265001004035012281004516933522257787529510899090021976175001478941785890146624990877635003542712388124837637319712644749662376145080597885221722004592883617184289790215146504957189748975135046376220908789838685702958058954264959616477763648135580625580160588629557520468538735511520566465767884832450784061850498801857054210872700653886010241624562940666601857827378653530934328761705053298295388257742992426492256888241877119565357931414886010828772181826596042463046705558173855268568946622088150294805308448056601221399062727327427900186283257841965208325984475463816807183337236520552034725908625889939822444344888440893390873941612361238405564185795752818807660331258127061016405192537934312875563070159907382197975522141919342684857765761729775801093226624381581463748213661471714465022958951349856588272114978101371008231500060431833574615510497678061543277748970273692689747341802072654754024723558959272585697237838392860103817795309993548678666126129633210369066026234078813171681913145237416360200921339278729156841194043854523334826287338209988351025174759212971405945511260259359996185992502330811409479715618870477104664600390970765635458948716856189635104133142572537282040619803153026195444992181788867581635086911764741947404880441990640746247069813591629190218464377412353152429845933596972444143887089109579633712395028677230881757937954819069955278763934414208747057636237613536019687511088431804030891706988100639478564026254061323578740662564359394019891431109771781998994922640520378137696230652971356305205052869176700161073685029388632628007047424388996481128081935533578654700846535700927258922621512357540610996310792865081866251008056256528917461347268531460623655376908288199700345744352721636989286382971919201119941431313254418082502809475526033575482441598158783282836788678232185462939315405530351662393793166832343839681017257743456495206618280951717108609690441105623955706962466100457478940301202606336259245615137529412339266690842741008325998763111636542220959832911881563967228924528996253881024719936588745985043154526205334459324732743008636895516354840373356942421054342511372516315493876174271738622711646839254382063705372782727163382138679225983031772264418605710987890548652504678321632698245403700347223689297172131254254234496778827645844797236125954295939855466307919344549621175242444848174110230279575464510324021873895375939665740299944932781317912536103187934559951876705364857943486806357825822596197616792904006065522548967312839089378726154620217844077164202677551271352386544625848314929434873279107291362057502498323251077719991487577278008681417883462003320187868807418943985902962409055542291347320850721622407607497919553022693156871022905444008367101736131445798264808165619416510896211120916911092797424229479686110161618634116114894185417506189512375395493528471490948012127599730878693274881952828309431811558662388494766932940827433956859616056229125311390087128119082185856368171212204275874014081379362634793585521178816737239879420858162569746086471781316765029231776723824565080709475584013118640586949656489663475496821598525953557710794550534592731491879730889186856851024584461237327325323964666745524001865327539314690227548103129339055378599452488652900618652070237839462309759612546732978563568452124703266314521615444423675794035725337592665306952662918088845921488420532319540868964745210250131630923124699909577476798491396766966434362077601919723000176517965180015999527301209118622537293053570045691338759781498299419851025450710574415527109781387241776007060925581010852462048542115214487548279979944893194816789338455095523573208509109189275846162262489251009814627892156608344924238279594583293591871809944572723665572214792486712943457561267744776448878040529518670908188146346654441703009791252485438837139600739106390258744823215177205632569163896996628990248957007604862817610125587050404124916006251518465713692586099113299962936380584867203100883684158490775749836051971124863773260115543415132624797078488508448658894361930866125795923190586953583800475667781267780609564560072234726461168349033664465215861588912454406902753307528870797576573673953538719189159811896417824854144532642094310761555385462683836889254096601953181519067779053083435821046164671808428952139928006065761800782031479535283408285235226327547428615060349421050788998120480628622555849919984628510309486452630298439041231056569616013972611570370329961060113560650930439602653627497469798970149554553547533520166570629836488037863094069634682216082716769048236939498941938443179719938813241631344489155297966713874947817037472981896200840866001498888410157911042552834760872668845913750418964992865765777852232170876415885367148473834257937166221539516803738592027473150687281451187443701955499565240836177047555811479243368415726946394732829784070368261784467840132447296131280772186682914031432597868201844283751281055928256315192259409462177342130252916149881834928860041426276794632357797957787631192730443097115517062970780163723788614813660249962617713880680588830348171311489665031861408229275172652964235119103598302310934828514820658579390328575710512595574728009307221920317521006472467535360044311722251507212885962894802416157309510680218873035607043965936500400887717578288972379767473339504672912619662313697004171896671200038815395607017140838946071600937779808467189038258096934103563421877762787352648604614378939737444694905345944506709913000443610073988847616411636008143203419261762030495573811492221007295227423982135751765951903181429247223562535809741859017697073896834018342299412454402868703438447157813091531719551038719023941119354203286903018617152047854732093414866794951828610141015393869058187636125391385492735720411236561725716329360378860822821455845475813667256769873290094737417296219450131390241888066916641168036877667350688558691629004694957472075513746285509996346764296135814255280875696137598437329289701011398738934838772836573233608322005112556396574959309656222402223585309998243308200697368097339611756726319727888760791009645032162552661659674264370211295516588948142836194337062051884320145617864185986447719607249538739832494468459141374653019833025791525867819004653529586384494171154236203867891143210803767844467685269570555062695619142152520363700038638083442544364500846860590294123557485341890450755089939217287788478547273082661479528832567516623517471025232540397291754231940984078447913635420515310323491176530511955434833522131909974296317705500328548667787189032741182957134239444745896373450319090435767167445392768933707132034253635429031024349396283144158298529638869666712769573463902918980363916895980807369642479628382764184086169559237950776261876931318128736614500538700653271668144571933540041402220034701879693124267757000112808105428891197263802251555272138859494765198907426996808111817093054623356219842216072313496808905256188619919603690753096081391871059465179716572176694147111862728375539931786376289814330164510778962926471158591374359939485465564586327720060962701213266671253270221934972167673166249960818527378114159657312919860112688207264871332561423211133700332576545321702970469974609627595863091036633996782045367760356977616198929681738092020337474931837357814485397220595886424285607460938594263364582564278415947940884054607655066330836613907572844899176684492192741112543282464314272400410854256391833909124726784694491219845208531740524851202677261261529827980732532841945152653465943066973966045962032978562367851834407743680437994131970911404070686949763634342312589022957477906826364064113499110541315570960819108151304014651257641942868390914110153322746615103580735194556522864819930106107962044403335881887324001516696127713472247347826219343631553040243554415835905624881427289768641539931394331142402966287869675608615550968111012175849297944641624543462102900510207979280360195351378377890616570131325163860074611295910963684694894395970069407577864054357787920145899653158876998380959487970332631871654908259202803301427877081565308900595617720720346040668540888367632693755756860325207773939016768214685368343527948099138773930726677874447548454736757875042270655419329681133896820299297420102727616945185102985565153160156335464092551158360405104728704506462129933873851750995588196550678228478166205507846863556455073698046160849198797763484630048875897445533697389991726026634235132249290563612083789877970659260139583061973246667863724439448796344231968828686250666559703527782097924798657564129354580580831360443600320103519580515709383587122241565612853511479927921224571405407525274137747706051155350259608895545046468436461037184775537240934862467530382028418578126852801130007024423426429744283340111431825052522768437810178301800161710358427866767417718887407837288812408881312520987830237678760877593419153528786262930720084972362196227424070010206155344461814544612824281199515719135496550584669236372405701466912470277797708342403501463774379577013916253388351320434852216795810239087253591840889969424633511607812698347309052318853272903778065956295051637034722157010353018349040244076271726705047870972304395755760745170298354930680725563030340181431418163503516329573653833203673576031572296250977036084226479964670619229358846085106394497763459259356159941956301253397769695916448474378840022943416934863360891190518832149902111246454540898223714898816557128638608028133017767739579260161462136255280820360183363547116775956405302598078754624983960809728077742210134393548269066311533665016190908008106609832279623665818963340937066080549782914594651496894430211889736333539512145357153378459080718717858464299093494256101343693655793596304737501699117341614328688519448507786731759864864712417199549200101769226665263456734192895687406512490531735923820746939712201160925656600582332222279976363922206627619550863682282364162090138364001873903876186301124793248665363444052589184440353107121556739070906516371524567609720699835188191355681507139316233730945733318667712763233966561889683282183212670340441257756399089807122021075601319640008560898153617667964682602676958734891006210854280021477890511448837468448724604306328286529883819634311154106589524033463425252245279587303736127261287824156194113427035606697559809092853118505877393905643498722801633268684844228970729974926820555856275715378618429748100592531517750106759876771883730008533561513550630974469242791668143947228842334389032415263190580672148309194972767046181151096315980144651903382848444922435252610165833867828482485081530217883940342627822282038375166677068046975212740964613764042833538973755165517384571032616269251038481394785204679922972295060099523137861383657033660897728542804471109829500738618782260868903064011738187353171365661094536520866612515441236353616026524157073128763485175779606425104636200289044951634735019681088885982405345489089608112773210494996523694415969917569713295423987612884714615431213078853355898266743326366899680370298685061492746751865449792470569201393227144871617886931217601738806711445765691943445041102038454851164693057288075441977851343055430746920059989804076193846325411949010573860476673715075434830301566278345164134708464834409765964465746835726802126922959991880460389597627382444539329849036635501383702197891685985790555405423924527573294173328119873248234508210918737118774508834536153742965198864008638927305427142151996327741082704759155040626721270159448280232662503500988040182528801325773419559942722524520428081427618379938218399890205615753088278081720850970741147553036998448329464609783789213370786115340666177786054082423511732030057351349576962495424717586024726690403376452593745410276537782464994793221895701561216887873728703514452154636771526421881486396611410551010007807908976545776442732462934892572883688627404349200108086401525022786141371644950869434504562679978444803330336087129787355988220247966422773061277365944999037204457254806663262606307125733226147622584661192936991403900744610021522213807421204154163649775071247944393114515173108144580068699676836930899961565238694694749234469159368689155917818723153666897292844843097756790277658942267604426795198422984193727755017664924273082585626510914814553583751776313790455407046980586475046057356153555669060913017024809027674880086839833525219682249272439958633021845689049412369353098692306943312338096304935447629185412979513936219695815909977171388737455357796257314495501718349813603489306847903961183489733377018405994640150420195785839388419371602960166240510008970075896412258749885376832729733614207684867638279701830392577839954932009616492523056225384795492193487304824147641279542114151516146915412348558353894357271768767517835949522761439821711301732929737520665089643570793763335037030987164595068709132195898985353314621079222642585941311888206278526247394249682946211864996226961029879949890505080361171260272997596920518405157258204545340713945184168267770717329765444623007325681622202255070403367966382755712128702952673912686289644692651669448184081834899462901337490061528715942971062812552147701272810989673411394794682380864195069337298785432979691362444572857786669898351294978347426927449275773508025804598322236364168261552405652823716024579436118928160260223113754548200830871871706454002875499990287027705568472270235704879287913220971714882306402566772709414203651736599765087300315339085521308998031687307783446296002976538050785667201563057743759507084606128903375884669678696883583265402557891236858186781321912942243109662383021020602558800584308836588870465823445085469500469901639799086904841923231897365190404978645342007819658306498867054276699683233597200041328321784428751481591271192057916291073499785563241901530432115354781848763932086939117485422261955739359919241378007059930666875025992840046515333934228723666895392203287578394104474450904192370755785386719514985317405703817597671481040429137184548678007309718677019895638297356217991863365269918600128917505247356567536589743701717380756064503886325585436639395817338158248675319865979718929674825809615534263828411871243881291741645241390140786783742441767662118214360525737655545435298548231374802632581094369921904348124570251781483314754876588402472166206302105195442458461282916221790342188067033879073139947551438003238894171290391534719860358234207171038413474281447988175419227162952523384707396667855626078856013015539821415671216819095570680083865583594530956918187983971442343164323432926049825217319727265917620984350669307913174702120496500753245092516003137466045043416227632225442132898747617702595146186263071104412114438449099693077187057425030459116865564486930125269948712497259682790734248557957164637226877623210361722106626312306412751215986483485571539102626854679970035912101182926593302634823941949569038633997592568951299438377564520539555212504132845091675450672636733570453493722050302584790718178342158426442065339865842216384679742291947957515097072084512265795770503378223599584301385974223766640774536588611133229492199301539213824732052074315007527489654787709105297766602945460636724852093044079740867993296345036709173688244649348856021890561437055273140946186455209118225464983754600399480407711955135519696504216390040986627990803189834784152861046163507191979234020948259802832903363423009103546843718579137424955609048798997227980335199486647698552089120850927078462121330889181713287390858201049125823779257144698518611110353504866426740675560222301668625537204223592903257215345195878577999175964087758990465947233511310118464228494658100229437929731231762620891210798683375342887961680150368427374299027801147690144983016424695431143219867168252298616444330716661385751003341501483768818987686178674498622632941288391789735124328900745929253268015320481817763520225905568512866296118064598996438422194056512968060487936834295483796395441104187008246920887274766019338192189283287801821113439335226174948710527735183414824402664114645983659173287233419484970051278498354666802024243715797848229280238304952264199985508315247489223993857572975180850843995708531607557657137230256300607091222957485779531895341550430502569677948099077445848422547829321028537023335738129902472065271319338548896198501429766717375577254487717419299441052094564921073025746309198382627907818979143579773592669481723041224038779096658581839328037647737253925608139270673482536350982152440706524537195101542977383418788319966370082290106761237467892347866951836786186405035764850234392352918598319187143306982577802157951858319457829308332495805064030661210102005734429602372582856481693153967300612092437259584056331093890754747607815558342779502109255721181334197563914147765791654513927652487230963335823368334655449249924537618135807236586716954318502025747534028109791361911412211919150722507351862483035107422830209005166276444001967287020596316573084874069912375053108936311857008333013395779778799051901906978167461201111062103558772967405151430779205593073078987601442623802348474754623735142245370555142034060714624222989404942331588930686913656923984855418350655900992554037758607727807550450712841724744952471833571047811477394688251858173118004914741534281117760353828975582935400656933909928198996080582600727467038565217056249109606208430001296425833213916909397200889365317674123243994351920472055838347633467625947778552880195831158306841754971068135752582470241619327168303692112043544839744824946479041453949938632317550771948279671221952573737852534698121879168768523980209978353061760887911368853479673716479235086880047594710606182981077499313391878448143184583775243439557796571315752678554225086031922468474019164508297963349289422243393025752087624163012658137825731060604846541679017382874944025332834843296961706087726068018909636175837656732948498583121523490870695273849876416563457183183557249620925928788364497127480052667154398957686859709096705145472880927596715323122073677028148693663199414364941038511028152292906380307829149355561129491600977753298737384544462500893519012112377795153921150909491517819411537626172724870950873610214355253328469554308666174655917434570446360122122067787373592821567312256441517401354947985627392619496253376091854156347412700756031774966528844496143533203945125680350930488760365629215391437204351503747039510136055500992382846378737545819922356233122814626040754295085268692134691194985408843893704036232999959098797124001850174822708370257816258046558707907602412484660887090644383550836571619142788328662106791473526702726470970546513911530314810591230086939837353657463929398953252101295831801735072719157159668987608661259673562682846188216509321451548156167541554632736298581141189632273087184322975730898052046645458755323678971104260342524422470714579510106091548052391665084349356456338462960889524114205666414244395123493068661126092698820903922841870360165824872237684249364792228745548339694087882376492252252683558804089015935593012579209718635430414793480267756993711790963944388061215310128284063035566119795557950309041987030923614996372558303068007262562802737781075664095928134456470550645059184639882714907349837506165309543623206089175064899253341056559168598661716660045799982564436938800571862631208960666477286246222727877649608297369209240743062458129652029729783651995569449877928497730595145143199212443749171192149957136284826733212473522573813709280771548679499680353397181621121807892333840068869843903395205129276325636118546176880697059562883649447904682404142941557040529032829153697480686436570374837004711535488932047551450280934599372501279903092839634669611593888812267371931255747055608889642117724023491191355926856942420780220965088558408720655170614006288437432206659000001608533892374361841414781599832433409258552890613972574679950749707155895304993092492830174540939849738872676233666961668317612503988468976813738556307601665028992625526704778534009524103077553198981173285432480366882179722943502880489081725508797013890487642125397015154644924611492907780465673933167713372337585165024316861673389807752466163476045111911338259397267881935585530963247268352336874179946273119349834023013130815258551434010776289235168150815751530919847904208060145044950177633963067835579390006382339580741849772609440078260639335697590046694600526513329315923511419408487501137001982228178315838962403954043516977101828124204381519861299170604978091118768472156321255716720662947532045643001549527497750790381915603670712571543136005824797527714460427422346442385728769257994281876593837955570465257498024384780147168190277738599714984137563150265983781328444636810198859665091612796128435803052180211768967651425154038343093407582630827930382132669070080419066094328632048302956029324635445661141461249446440837742171195580592356377755468869916211111163148130962525184046750392828893206677692440402951979594866932966898470449203679658004589587223760266026628324497982923692277466047386798451629725557075031974385282228472899156870129514700943779427879447666814591140303368280416623096270171619289462756756080548673950857151959428272258505305463913452121592116494957867764015663332001705557507168083611420797386676755700159581151073721880299521774565725456469452950745768492089672894864946184884582938167977401239999016934163607999898610545954954462101543351754484794865359756617789128141129002672940529552368019296646873340192840180664789214261870779779874114963906953864906114915261105374779059849191256407726499427009344772386243973871445210568453440398653474800731974884484192988965028649710672868407996029786286899323340084695263464833879078463975111762569424976443019144921094157166960524773938265929530055563079812650501736504989548674350157897650823425810237039216891443808575243908935434376620848178854489073574122181394351058174601282477823336817888094664142826846082453568755734794394655345666156009441096252472112864983571697573033916775998901154610107279976277005088506630723111340839810974839327563787155807934331216026028489969828797177150483134827427274927803008395542103674071683885521616639958899623930687107147736012712464543952659228872670133642614079363113153407698306327819949740549627517529973517245957629113397773097054128471961378583946566083121460061980717648427368974035490025661456791443109207111364698345729534131215867833421031806931463483837602339071927946593704907439127146650973298979868241848474073416832905628423400816354144716070979638161232550001670627496317125211052427550171740003516798328016107019040460172431503236126035787247112041177048681372924579514408824667091213204278116947574420062992223550059301647576175605152387911868613948395563045057593518030339523930144453264692962558447729459628345677054123479024232676233245108417892676515623684756632096188750582526611788546312772333477835318533199687732375341984675248746701642947543484444931714417443022363590631612560930442298937784702183582608567266407540917016986760230931022711020902662517068138210094367995246112251685774690610088786878214647831520281126496799346185711334889700564277908488528826448677998778822312871781179436019817795966460090132437730026641129235976806095221704965457888847434361829510042084942139649887507884236025030738721796626907444160906382926780880993667933316573914523846168602345671526170088501734468214611786445189674652455908058352156698637100768033547741420262513816074284125897318114790028832385929706673881984545422045654960921327055485771246470565158125632146129298648072980822709063392308129357130697908637033865431516768114814519905832219398999609839040106787477119003488492198503009055277985534118655465035585342173786289948207480184552137716010751724166314475349525328585533498802539572315640331319023676281903606192413217232540789827522752957103755122963785715441201390108617789886424992509822639674807982467654031632479517975554064384165556669978500397680593321707432162327335614307732642613131450725650727048704637442989939703427687695560493802747900904692310461678147250904625179196054935614951610355394140988376640646474971377692251037637353964930869461262986802389899194957950702256831284577585558934030985397774582872363382042342824438955936885338926321545392780604933652293909588964555397210479257940566875052769595973117445897729456907705740843245540531646790258804128442550186798066683746073343627732033998597034059402656573918442817770903877498840302728499897220279516564628602382170307253002899208244205431492408399766407281079331577292195938888826161970487368488246628294616666103017363131578846768118202109081078688399297277521572343221385479803345943886638300918145666939108267414656184396620136000415512504567688403186929881926206716696805179204513574794646151514147421470888210894057290876423087960742578184806002480672320708724075488329358161547916357189033683555624335944458681276052407072012013834125876486965763105252095946887425522547694407394617534145161354721295208743555494715926189356252566133598510207524595824258352314373428433868133249412348423188393921727640045795431651311853196280697510881620726326092789154386341331664268468217901341857849418159065065362661197870320336651773060172962279104702603634577101617118380673385481089947434620503587973715927251742128063374121808013858145408062975147785791305523172713553096889392396805995209195732515488856265131460961654542599841947747218809293745975995619364147853297161121508132798195042500105061752641459151050543944531794949258295288577141483178856150316073932773513266925561752909764094830476591111925522905107454576771965814976836916538669325642226258913562599317614038112816205817403782703483976559494577575785556692976777732622619912085308098933180292456681964816735197509247776046636549116469096787052950522017736177678205836882128592032602083144440423272421833571030763331171009074280850326493821020733060711783803071153169331051710757913476570313331573339998292212678915970863766914745050808760916331839070986972259458467120309695159434890997722424006848150131808623958894342008915050926805732162963291542829777593944341187034290499614655865568575991191544861785989272130821542248847728337584107682754721688944431730691636307685551033857132800442156701989822689846343002012589309139114616486849168987225286429027756264525430701417200967617942250332788157766185523462943763163563245672446430235533206269687735298328137533758812755469648894588266471372961973981510014315793277691961825769769062877035279928020490911632142050795877638561686857782143636569377396944092583060022901073235564793648677175876764675793186601210147221952999575279420413526480453865240490907132698710094050629297398830903677348594147429656427301548557656953762259564344714052600583751145408656950495472726943088210658166243205643454343368977392332039744115222586518663424589778375385950667287435071399374220549664335432765742536711109189009469971852922098510090450953089213940475748954954278479872464561861703321588851099307204369295628619440901441789109450544211145153922427453438113260413791749117297805427068626669138317118464426892822254168954990607058899233144372090484030875556430807552011333352890587237135928914870368788889511423005438369404324113445801147082160339666602493030300285177854077016853738222856827887730065695415008874148890462456381415138558604541749246870894276828047629969227899885628869042714063918223002219868154961871586290962448692188116299470895254760095661141682190907041641300788883185220335969543520096263173014921137080633799214564082149157987182749985290125486813731607609940394546229868979875067023301555899855465073467634132209830377876560627894835721095767379730387313838592450412216098569668929990992803122072767546925299725708144217097312093600492983945682686222826315416040900735176519854374002127584683999765658385711052223867782551670233962355274889870630275110557817809458852453804082440730942509513797187546045448213378723436120679828394875795738153214963281154603328162774091601007511870806837025312182124573559623416861526730712307512785779983691775041031932550964004145086039419282572756630149474687360114402452635463274893061431981421514033136893349294357369064639276994500913627927765835644025480686883228955722071899282112589304182012522759591665163922436756488764369530930899061180243621430933095958350975164828333958871695142917516408135163512462587236467486158564472887009990894030326175258942693801048545199121977189249007334031340359727328049355472213392341817906773445041949763212653253243842059087121639872523233559050076262959215539381505327701180110975077057492584446173508287908203120364065946484276291155087220761654124028163994436163110521237743297906032246636057026452976239401039914033206134926114308279439876430389039577579653308190371207709656206681361675441781899551614366587846498822481611662776129446155905126415146271734543870439329570729596763804111249272172300488204430185465286576539725342451938750500450011531509041960954398395411304044351135702817573581507751996669131421431843267333925383457182930398195589692995939521132623075837076021601225095169486269053205990692128700854157312531895836611428509312928658906833208979795121827004529682544568630598344357027152069643668526689272950594452023282286381257433464534633216630404228634982446435004375997798090905762685834870321415960394124201387874913854451339109466087785096672876198423189653994271428300561938961896344928987921452552833714670137585251249119730134770565461627647045011889022363246689753960608532347788983346743784204526740809852619498494315653136729109002142958424691485429018260587518311966069908285377183651467560370786955787222183000741714517718618948850622033553394902942180054488229930123023394660942670609530929902848266763344707539051102189380757743576765027975957638192685956983198716438593731422273170758872981801449131626592648420392471050613891367559931554163321276656633387562829156218613052278668893019976893578976741028136814357523372999019236334507403000233125380243881754013884951147975892752496663328664388887307308992303785473439761239399200421181143440176847036153768900320550417147677301693992956419139117482300324082129050331642754351376958064607337467729393693315565471854175260425214327521888415804004404269467708406529835193857503995968271080218313653335153556170744613108863985604170881613356017656859627318354538861186034541528124328869945411360219329601054833319887386373059653248749275183935616738149970057755724462048232072991396774637333840269648418782162548601198357071495690074409433972586690958839120521116951929947309232786212410815491930209933381900627714343715117997612558826903194802265938546965611939374886854088457401275569246522806087447787184514802220020317728798212079142252365518755438903149048205235343609008812570830575246937834958643222010818178928500116225866042385608402347745455481194321790344086035452228409302122808562525206667299856430892726786384773270700028785907216529642769144745614527877975350573755403496563674985288203836235886316302107188806124693196209635268024875599126647765329852250377860855387799542302250045135103893337993141519349430387432844467128650976633649715375835635805739733273141290607285316082784209838482443120273999144378271500193468413867590862927399752697279358232859567480665026020912557789667038803846467314330942867435126822692450008320542841525499590428323199661923626087296601362003832558968205470841907951368549314394898169444452836180592030433530221944871225494008262825534439330535809936053672935645316485883624932078687555738534899545814896702787687547684447300002548865183498647409205237400818340210502645941303392597242339249745364604224465122097645748707369435729770167647517873647646940627096412360345486710844812084765920103242738336124424882944334610823373153788933493351685143189949439061585322615060195355698937308126742029085252708580534395169483138811508350210272279552825168064859928039461388872976611673264880710768432380033421481304596874356818170255754090983826138766319197734088482042386516977819114463240450110634336821546101167173758957486979730331567360437564624141997403396573674280903615194512593165390535854206318452911781902412931794049839372513618221126433092358503866313417868464976573067050853828778044403013806609320870045497939987614086156836882396992453150551611692402973501182509564318669033413667011936847060604467937201885407244252264682314119223549631087588343402165437937336155290679783033306846055199431680275236484744443872842177393529547046514947721871471172973825117775819689312188440547548980239499956688857810660451457435471352057806499713307212956055410666728797760449137133144373667619794794945056415715079925349560990446793117865131723429951944171930483085121925175139936667497676121809112585194551720210120132014066269784532015922334320874909007526600310163059521952770227347298169645644975910412281575978173213458416861556022808169460515585486911925661714635248119989494870631745273795816742716179436973278346925337472312827210776730865865620555238468160298526827501870323721551250675468642958379535574788369915591470459037918166445499651380367547925971420848811978708902235996889298188379447262229803633967389674657848224515345611263331744314311722270957449052164891575508454094588102852489989392714689889891371471439326593499085891752430765249517826089639345077808300528980052487101225522524373158558508925094882794913101576955463558652936884929303973136947370315348712808688301584592507148147020153867183769717080791027352237564503507482626256430491389576780772133370166659046658211043517151930360273464038861144540602772452825665414303794244257657959046631982023933724776611103061877094070381084770167989817136486358611476083016578767787418797163012485723896154275033593784622175055021913778377255798073866817347859003382751568233339081195240990532868333421330038564444617474856897032882758148102450047464871914607453329455249862571654883059171684674598826780373279660190594194057508424951562500554476741712416807852773316346854651268735415046454559897551577652487156650084106227753713524956110377702329040849668510230743549504842456012626894249105955698898841337456945042104629625804698048629774070423815096304643575291739867016352821891072218253259992460445048449398182036847637400664935745231612220088686525448093665822757656171534215364118210309884081111331437234819021228306547281207160575609154856925097737768486599686244450989655674566492148244204739282785528683575777242750545445510487459973635102808681552561033225806467577808215887186659917498382515457617675609782105532884320703883152160058249255955203661477322046212744307859984995215966112217013454929644905023684120923123733432381051820282501223161691571178241448983255104582775267170202467400844039645094156941702840328186894439988606979109057805409636237729074153450026788058077813676866119602415111832102659452236966405365149914791006103588694306888933916739327547635164833771837780644011483758202446156895825165846831264531720662665816729431624729030960935053189658962655117445167284381846136878779805704500325995787445549551094710711410619321999122993476110028529844210246491995999672131526715063233630186884752485790042127780752354628371689198971210981048264607047815276283250353327859775078737910499480858660358612639488188607125908429557023523590207843033134956970010074508288814844824705905727688424769853323420299170661987894130439594053493975520516982580831319142736612021445012285334010370097232245890156447505006919878898562932498745499196358128081805111297964076846791649812627171034190943280079962623725805063613913720908111342568431334236807851030331584026455391032161263828730685985041975738335626233338649117793747151775874494189012646567696807018370872779124536787329731088216106173453596088148517823463798985113121412450414312971829391461934058394049703535216223198146113824984994371335954392330302287800274972277436785564703053515762686381544583319168304294697385322933343201474081335485405122008143106400196171096080850663071993054013879619370720181821250413002272527065436159109580481155110439046941905890120442981740940916341214849885656782142861045254822750973054185129984718455671594295365015130055886094122609731035230302099826985869647376058795804902477077869326069610919702128606431135434189052525950587634037222055201672365860826325996166823263149372710488358883386438929612368708531025266312214886442502059507315146749016314950526422303750579174475841431967192253557214856256476578288114757946788186098537927362515376473212535479828497019299258096649282808671974312722961723103631042007576978132133587408489648178920448856204087590637967080004955459620558535380983822705752200635667266983938235638209661025386904624196520088497880396463573978930484606245324989106698225016288909834542914539747137823627712621606873895681940652123401579113202509835080147355487222841303124352946252601594242691884083188402778466761286911175242584793645835347463832185543225687533489037500306461871270639120322079507156597752763365447707712933775375224092192739218800647193969359767042804257163981821111469211717802805779328769121696912847591414581131620453599312790710349482734296701932359397710937471345506884100731980305275651897188840925501395620445591563138799935060365456276841741034931547277434303048710261230705675437159677601049544575836622353785380097071400771831740108365265755389765695884478610296695472824044437070589907722309951165129880036914519739485222375615479105683287749750501110560898078092656466145930249399946304450411522836104800765803906076387446787064567663970310641533792911359984817103392571650265591733632261492862727887366954566267737680334452722235086338553003190227170321330626425732749074137318776089931526955438963072521426289891116636880445877057220940491542559177408047870609896781930805031776492630234077869066390413798040493693247144868995046050932148287561818473239656122794374585341589157466619437495132402302462505812508420468093078840277777178313898276222244090493597955717857047816826707068626407466528073626121294887272175075080111226917348806459684653876237905926206275317857763627914391797049052911530484463873519012627082849282603722607700470798759390898069764959932433368732083276957342342602816947629728606531394530000984318502489298164818620756575935533298216461225905201752818120597526909679148442298374744105097034606811032685729491416357286170298274209732560519765918060964847545030269851173277873209044680560888677994564284931322431412802422700533362469037216399275595818768546615383381136913585492547790228424907548576109016248806116715366899462145332907590825132442649734034376858800590535188437518677940823076453739490879864215338901100494620297448431440282876912204763650332687965712596375781442707814755618252628641638603663089622137692792376602505192533946303632062402065413328192624771516034218704080156507571967705741550824504470908946125003851185531845404746155318226651105684593833149991280853518947929598850999450982887310220185935294657697908549868231743032587780995636329667139134814762437546267199575650721538418854656253761314785264335174747523644285210123730670755958079423042771090388145901274835901454355483836353980263861148308715403591357519592185847409721944676283621221871234770400554295027970853218770576211754223377078062599099853747620746600376204401042577140070928794304283252873931174688471122698775026357167538998561905811302951935252744830198330289949396971749897997543111721390271898470111058230838483394528773497715674073706931435484073337965712492959119378012031973467514838566839194076732027908592208575830701905816399207429536675334787757581427181782699139447232604555837587356953505215894081236629253349620814312149444631760776982869137288834780738584939623354082930115131889207279427858275638724284528579656184210341446167043508006320149860163949543099881705137776451761444413394258202584761935252500155777267017812559989583088485785441748399774663508162239701152419752750570982867524733380883624507545672087620341860800512316548839588057857234793304977704548644778785435278810779140226134551021575191733166832314544978165615207108614659593534706471459625227576787523903894054799578522221416564216809581041112061543602421964214127162799449568260134465179950846543756323620325576808544098266989436599551526043159575239735278799852806489584712041603210271904502437212667985560012063709816393423190841521708740491694286234089661428167862856086751806514323805708321991915757119340660695420814178090437843338997840922017222936155126635404985427311911243754102920558375625675457467629030250724302582541631052511623253104523164584669657862874934548788442272415073651837907389735941901136855493651241514317253283585703644903172757601955259979609872111583809997639011850512846423256317405433315238465884768976656760476959110980536933835106362677761318653251524519484923542506066397446308519219160953294573869892609343027725444263759694357791542632159331700198482550619129621936674538948398791621046797591494268696122427865488187025743642527259232745577066991171290434654723101236196736852022401276483493280650160253448301178817208404582130313666249563046077842679391064613658172828512229827936681916617678881535445557042733432483686968761982243223680386832279035235996836784927346845758209180590306886009147024286981901176838903444186067328069541638620804817923895943522593433430507669346054737295692128503161910922739948604442970151392631988777251384212216635834027768641857604728800963035537940607271494848497761431785670675318879404263284162175377938192830671142248130929899246956947236087283918232541939953583215503559000476519029968823912803676761038949894498964721840403995625478453198635621017400321887186377247786738069562441304622216195131315092077411937263822495804608313973834665357781400881862933017327952490780461427718283364644497680963995678263744627077051771775509963897568832685806548527345429020769476258445532460805495407168915299996670568360199776457991955002494675224153918862994727089582753301261138078479639247492742219687138210172566483091646933592070370337653511253115747529698114030557991220966216980764437147727058154849106490740164530988140530130343170047595263710432188595824316975106644935283041900853492826663267995934797709059407512480521457675279768002902293695026501164036183573353286504069621247995736124802202680541289167143286464337349297831269713045527794421449927397484661791087453544161143361243850824914488720857239937621185541142689543451996520703981868619353863495736393203585987272847945709193548275037720513630432026123306190302521145908914245748580682775045292075574920336453753083731107502955534801531058289213528774084436190765517212787411723525498873696448074791722587509603689731133371779420958643785633965522628899957777507466599307455928471880142121859169078981226515620628434889856535956343567687679510767549161341355192215280727096646520523532561922347516316280853452453079289559910297399351602828469516080655512389043914614588388817400685684007969357437332504476084276290970566617023272020069079764585725308253746395643492632486927779644826119105692415391220387926540073137318587810724041765903198716057529711831355826026668471809180347946525837421021846859739035862380402630952710291881436261288419925204941779124286430620584316469191743023242850719646054804114075770605943916260363346072279292921776302383625244795223603114633408219499548809798089978681751697513214674981233174982624014898098762605042237603116953358984392373463948338181234512493768269035434961018004334885874906233586896436750527989861814381146199884550876466604019168011754069350075766130878533842186402036431331446852044496062804546447306918492606581288823132777013386947811894487344058380184634063824007230861786983712721513143403359100451829294975710211563168701076075683730091057445472672454671160983785533130231867108313565199528252328227897768930498797975729733936830169171766092103922702133945784880075289886205231763730743501856272640521579427671397707109922446385849327544027356243387918606288592626832470918955743858312589152798658689175381748053255537621789581152831370013223871210428047753970087792611668834095785607198016309049272981537020832074348882298673380403618258790008415492036779255071890688986249685702631843139767038451575712629339048427487365131685630223135962488377539775791766411559406605227513926481513762711849380229156238789880778627064042783517568808086659629792774964061315069686830274599215937449071823206412339252866925114483269244786749477768859433374946659682637063346891386946191396658900923816625245879248963408913699041700576532758695448760473467950390949852288336361328618960621039417657907062339232223348234689413217115707639326953680599613475596117595722489471763426510051025054293028770206654014381441969945556496009160181100680726710747662019423440764144422738504276047526205198987060478163683092530310653787030332906682838191340871094587280870025014235332980601914056388398500404627455903366557052242122302945120098759931328718438963433897631623449772601675071001556876691645492734573083461998965947126130779914394811721155390495133721668885792271315970924871075626406148729962310478853323028583840109392679255421954484208285801514503741925025416403083811823552732689048120137774567806765680220786695352846808996273663385385877984121466396386631636659071421235320949120431034887074447550191286950980393122748988636509846262525661901020287483752517506766793280087164898783891960308192210909467051357939037849083640234353402259970025903702936606967331293450669689383361634404886608267380326096905248606218974887755115409735428196430237414064798749683213239176592252433953058796118799800566042639296751378228131879906909656504989639091928148483746622863642330973154781834116485181644371527267178906866586553597149117171807887828982164787897796041842657346499015270828189045543864741810337039363369676526638518053128679792603467847156848916806764200190547847570297367025733568600945025110999058242160382778662763093547892157376110493653838193062059181535927830710236987417348831940806978544269084832973952786583393716212343152916357141643309366220619113107523454779713369237243152551094530665283952187695719108135687168712502432351814987121785651072308749457140189800884578649776785383556871713660648201053416459774766078631232362658041712080831731325099911969181857537011311904456443185271560064741301783146084149750163793796308527423970842783815754455162859783537280678535411728815245379200011077973390037962800381031796552901405093091128930179616134427651098345709210855670694346817457135977340820647728192078266852644393136163421764657904628811601257067343416749892404520887140912759002203936735806021508587075323257961004940428986882291468163914614043912529292174517593021898961894048299631856077376443814298030463281993366844618161188127435062145974788713126194113405420422683093777968708721330642630349257375629765192797166216175499888723973863715216714680322675936490536198082535377441965312462997437229080534313777457045655711789463559096325389500266949972591631831284812820729737337963803064533800207675270935006762123029104485706199722001917973973364126507668508565845605897884306023122695312382152748068241874453691772500734959969766894427062377778743393672650890931299463088188199222225652461137692282174985733019202071609700510450200520099084633910336385000468654238578682975559734335482604889731286042316551081576524672301901322656160135311123917378557889867979066560801581160363591311749410664551657878105971125571289951761291257262388408627651025487804531389790618431012732658118695178593481565698619113392059838714475054099053712536660406703057922878167159304273552995057053043589896081134297056339219612078477948920911099928313701730866886484273239858373489752076843732863154752635589130379706798298821922018116535937820734537232045382926172689467237515973467552353362808827038271893709154126113523058172303771175102742279362796710969310127543709657152001195306333546306810579997640452554065057050699850120266660339009289671275689587948357819241366436886095740519142867049670804581526868973154485585943157297855900561551102807299750180480389016268392695370609928405864700526903791342368963416364709226374031575242612628191073813274828999414996198502621772682987218395305088382232819611603753315532418764526869782456294386849018865791666887769087542724414641198729353480339259416540213824366686703096239379951861911164804144228356124051093745606002830986508892242123553448911612461239339374337211274526422685579528406351906812353589388116680363380558796699377031878744941469081830340313745305093351866977632148980369565323594173322811903327353956448098580422724130148291467467449367726900695911365249981153885142548808617818320714717963692527688790525370223309319618522136753098756847172224308499752310497959065641269542725882742235532230015644236043764044036286709452447155950339495251993781916572273222360947081318841706280153276116846959496280159756546869258780884770395767636752819659881853908590620013563618016739378741075005207030095060424018476255691818170299594969467238714190649058202452583188436067136946102050608365449972855830907028317500297607204856725578876013739356082631574718450764858204339904678912288847613549411939218480761883641898755197383754703962804659494806108594182567987530226392379453715380068095841059164622934638356702866597720247790131672339675317313119555934429144703888741184969018522688807360899544405064103315597270391811752937443160796455784247734872075905521465969396148095248129241259906617768453205655187341216990341249095472397080970804348041312621279474905985029082443057164457645970378434813404875469426793983328868977290279806537578665478619390222009261310419196701711131089516018563836598534371000028584500131304499039238149280438058172280642741507179353457613158592487075217237233497578645211382734089082693898648106637585591109863348728395258452585757231368221027722054487811273125037449260507586538741013611283654133485790551918703911090362646197473449204264746092228908596348691604439924279696286070894571004538003478451628136244211544339161959610853498179992708492268660982557349424225509991493528233340700046990329257539451223998209811192946010148047343099272056623853512977474670947969100747505297863164157468441700192178459243106561046573145976394469958426083072722555169262578927076299145564783709658908129883586597046796503992929550977692766309592792367586087892593783408304637905118988552312111412991989058220561684130997272694286464122844791484848867650078696436635085283378701261032279334272738771120227929951635076741776769817734317306665657734250252605948907135181718827274556275922886400708025075627515406860556831351161387252824887836548149542398451405952775183288056138615177363670932565558384206694392088700378878670360245712193054809215022470847220264286261787043604837527607730561418478945608912315512977469783362313585746622827559339689670849008541185669309617647729809412691069990006102182828489311810536594847981688669075102680503929845274361833192072148495664926565212306011555221092384437917369365460004539486755621156103041155501728335442242240117332786995157527702302911525839784153391641782535083912154396165429014367209991916064730848362552388748763132951681591214436351695270704309701880001843749814675971912049249130885489638096970787907288310900349773091333624419170020519499640246984889974474179104572055194507964583591754261470999194497376723817028405934863200829329888408680553489975862572066140286398751741224387430625970867752260034936635849064155962515619850353748463656248362440539289653750620388111318763620484779076596960108380903749544570688026061797562813229277441556564675523309322453988724865445599881198467166930527982000032209451697801904579293506501324341229584691166735137074312699543585679508235917874755810775114091315013375370175517670987524742379768897528836636626544099232468731131628548569478574918103337685124451266600676240199304560373977393222986343075766195594847240780331566725142688642467247329913462650969190021414266237180754817998893912799462569289019491868257686228007234846937217040374930886460898323771656706464563379207113271750099468950409852207728075324018384241747467965877780467378110689267640162298740961763247158411899733949381416116112109590549597152860851269921489447529269714484911128283752431459587011474921185702789430317470945607999810583113107658672716427202427810249954574568142247040487493237718596885206683195257624174874967572807096586834147148504014926144985429982245668535368308682221373373172457262283940958569073466409372973666571009776876895068768306986806838176008328641721692665673340136662678117643591001628871159693240914415509782115205997264452564808972095372823263706469093167695415734462529712363005097918904625582105007210407158777079617228090979601220330011868058601720760833752930693491570306811772207605544963729009157498900144399833771974838216131418686389523204864928979692041957200855447719812191022018703384432304833405272126562990270604091650186843798566424168975271302596816894899160314412104732833347015309855524490066805683933554662444752193736813944161674375561665394907671454011227641984706048030087055498310040622417453373001589244838628519954138222333386796296962111805710712397153867636490947933378692731071058454017942904875174347554267539074626636703283229566811901628995093675781622486247647792084558772920302253507032605623256992496125316666994591789057234960204513439251497127416946637638048824091798942855130766612387955628990368092349652726317449691430738683729952488553565379492858644314262879645825761075821491258609034748966151336336695086949056560474393783890118113203847401145455457523244919391616209461774646783014686259679086205998106673504280933031984884119662056673971985142652034300230498468018134709045284922634878306564138156460229421604598401719932048723774951551278218754213264649591979752850602551759255299467433326436245650240318805942383046502615950586729671039883194802396529883037030405693427433244520779507663429882843805751069787271401562549319527133807336699722354468306152004265131733545151178726403653710354745741164962618465302758913072524065293529684584980147962309890392146945441590428912570148857187993433861826045428997986188595827376345571957562848787119329998942283427759848163253245177402190528877183503951699565977278321764111958742830440136877487674023605517874644866120899658043637590165074140258917490467696741150793483972140293725486790461689230722120000299122495560366372034429503574000250484766130729284336987756118182797979981853565701722616763319027806455131947935551823463339589567074360835996364542573928342637215582569723771688634305693533618808241551554180269951186375991864382902112812702770090190079992651928132283810660588746457041144942967531582079945001903290950393153664027639179795492952140524641808982118320302342901674950630272082000957754192483950592470926814528165567955125903152455538622229260051428300557074990042091551322458957288628069072736425411561039224973086904284557835239905634058332176450869764017826926893240627183800781565528655072795578597587809515078229730913150065721812560651411543255744918304222094174540236762108789683590010571583516424165098729213518850295950521766115859179268286207346928578437621646122291671905039659530919326468167842137571640786497661039836800212270228466896741313895685606731010905587502233506275296171959276223137621632122629724812812022959494398960154186674216618812862641395767764359553780735070766184968600664590410901521564172501687851211437922059523810052077667965120666534231953471000593248462281461553240651131459657128637133741545344299911261253018692918980639271087392556361547766313971592503719297291199537684255395202329799924601013574649893383317603126209781160844826988457802236299117832524917828209402370528651915850620524298799830469290314018968145187664650058195748665324448508416510892213209508485943776912435923061323676964194348666317067259813301411918805023439208815591694071181491770990568749716227766556958910946409210537638640107470607224186194532951558256792866669328427581579454092663544589699684456566484301036573152472005325817894703850095692187161901906262220475650011202422425274185686068493929203412627221472769246824893577054093908765528526350286436549688380187149850584957143076526637719031160018674591222330984429312911307490018312087720662860472315841172036269507057500299471234417252261717578270155708464368939792770071072988112442184468995906882401118599573013716648878905474538868410833531521230058333427016219871783056197537318720771329583264445038543680877461344983913514568884791113781498534370429006050176508171755887037014688391803368817126310580973508521135412635995673956609839135633644342527803274388034544739607729973645680899790134192285264425337430057820934527810179341635785597928042215628594505791420377670330358170220480751957973975980095763632916308652328375158983188186052242777227094537926111634633060272610166995019467000301417225034023662690524386076679010406305751074551233876602454341148761328248888703054061136715574327667619607798336659709218837945836574314768583506565530568264462090859565170136469480810692266330871174291860291475580122110928406280327746213381254376050910314864975564038049133380249738243163637173493861585031243754485995145231973763937852187627140480575849731802053623878757883112802101778599610688623831070514861366190776449343438595632266992659736080012661161066390821010024782692193556152536151878035376371912183654189869376746256756158057981963923156581384621288188443643282543941189867050351056995514627841844710824649865875708954739254013312496793510400996103155844107582621672647707851413680144286633098050049968839511858597365837268214984410654690783043628700526635846953662739889350165029156730836428720103121145586621194606331586926829987729871101850590364498769908210047008398285305122054668734922190957673107599067686858390652412076767100110070284613727273204681358524434074610658512528024938047485859781003604102726650285955398683656097868352728098739206025102256380035503705792084930382148558147223299565721371522211534890041546666661915955549495783750608165331032353546365362501873968202988889832798873704094582820016251433553917343270727974163979021137902110754526313418317303255978268148856362927919777994392145644931680064303593607663497155103381447205988056792261872443575456434617564882108530514054253115873596315858815183782516631750062945710498094253421164005338615912902708600828735678865581516373778463211216800690318071474065038578991943362053896222981642210176121735697215695061594158131080872843206791099457783609140958499476250313445153947653580446835855545293283622135287842365967638392859328383731785208602732581727874965022157609156182496990099199844416514890491913005823483617395649397131252583062956536533341609326913809055326687299664636594760236644326104854768726863228696127331379117688474509796811327288346647012980188059932422212679511873161047456179791549995355143426767858997546865807367118437838794107298152775912664833058059430587689574030960147706096420364284765226940348100669452652808335960691039434200239312380851559593143341374787410794080596022499982369324678792719776764635945668513475626435630055994665676479683186435618104531632892338702776683419968806835944551699306594856373898665754233297585924236882514209794007493069624623827774141180032305758103668882493357552166291246390961126762270250842602032770596453877479061073168966364180640270718852154193438424599797083394759016416861794529504149538570032290825254265429211247817219155346818686340045213680597153255670956589712439044707171923760988093490264699745406451238831244923015824182620450483967549202143582247102289874740407104240098338497779834638201186903660726439945596603646710523314141550302952424033228240673085023900535076552407711701654201894721089673614499701620080587089634379346853183508670808164730446646039636196217256207348488696241776119875927056846250547066927961951588033450190885140305895787260272037682297039435442770588740602708581380527134199670781749532612614213651356314501810221702436464059058460498226205468675171624678785507047614666991623393504245579444796674618726417423878704644367334246731132317617076554661228160717015258698255277850183220598256913160063199193647700509020952291012887897879521069365237718342527691952403910029805569871192258746670913979217431713294922285683237569089945665432274346139750604031636116217316525871599152692929185579012025561704254713423711615881613652133057953476878994767803852734402466472539554119622623138917956404033212258079263430492229589184721054896090803044631667782994953901391255126495389659371135636307339665242078966470249162896259933039854351098628821620402608984665492381780206635519500318381508067036232974009660475864338155548900128089364641601643171320483451557001517426381191441493962464778820433813279407091849413369643745395103082601439514157857209849698703920297233882537364818945594278665627217544390833227032633943103738384525391406547945917259233845116158489340104231475134857725972410780131216586129046799909768888590741166504362584607724174118319654311604385698823924737287011573386772540339405858305200645327743985286828835903006801524554416433778364650491606086477686912209368033709542022703756000180035676597623852030965416351779937303810808426227185946492925498212850717466948278698676333564774226094299433894635280616176375237918990901426481315863488435059853450577234992461948691506935762126998715677133927197804283185228668090302862909902268395022956518935528413620455085787081768591100638384229953871186714628883517114512502315414043243562129759598976011574569332114305640840842603330504867602389234715695612199573496020314331916284000662514330114293620539625695209361925896808962211484820109377602564976725692498909642116980200839669053975184140718025620254392079952551536609715890494215360631133379487117877824671920921190554247553527610664984612557604758637688629669847439683431049722603108546008239829872273589516500277094755157732450702393529831460945338253623541941294104485895647285725301227513307545607942556513023738720525125511866546299482185803982767618856062856001219483248644185306168678600224054740331533310864655035955441241968605141845109864632281565912963820630089522462262796715747623913013697873228109298369548462435661793708039811213340462573023448500021542928238382170119752722337375402086375804393313213546303947429763460979199090234852763244764680699321304867812221060741501466418268614515535089759705844821333133481772755929323200044799201997740167440650872069698574774106738868203330491650834749057577302356297722629218710213550768107587299489429665129945607562754278506559627936863597758019097909405043725887640353351279812692880068862744389215292241827596769520437822775384527185055884554462377550358243488314264379554153275227023463315579024871522533152493771284831891606539849911559225030379773471442216544772850488985917279695576334956867766543159791101781306636405223387110346206736602149989750683933028182247892609542212207299555467484196890303054766781827597911990875415438530874843885865513599409431422516448248254201798519438435287449387725728528963582186882228974143492609310521889247919908078583448656715860650511483276023686688438521276877299582472138678637553245102683921793152058485472965892886148221962947067423610086336808499930383073541342996900952691827211748448002062653927714783188160500665538195082285369280970943778970351066626115577045284344787848130716189302863298396080301968964567632983476739753402663484486028366353469038768995312364015467695615688368242098514537012469234129962881704852523456795752600674946069674107748822029864185735584725474061383324080608330127131471465785127820472429695681182111433378188385164106653270911334596557256117219670010957038864456233219598137544469404897558723436611294999686380192697476511342381925992419790662551909087221794976812224050967798194103748605270486122663222265063462518742750368041776264184171709729197170857787239573025439866040885798361735529442929012734580478397671936752642347130363881421629126185861694704111117759663859931543825933915102525804540526759048697528589710272267880912232140418865112420812786564890308213598919246219491147190818737943556255169463895890049559442234281651727351779625738608691997160834283343527688534739524298301702126647043617730029395390263209940896059943409807360739280699044819713664879105086065097376127685537951142873479301554371617889963940348201952093645643553118442951580800492740022700767046690114227949252085575980479468766297219391589124131872393679976520637657520812983222164046047646024762041382274965170052101675536780770587931470279655504026429054708780761139085493412873229613961280108952736501194811689638042179408765633596093179298527726326920656682387491204368681141117550175589105012507779849853109155069752704465392446809689501881049788269596071677095714181909745501638285697109823409649305294321039800141752691311499719021031492523108758181270557617468388490272405333172358836843061427281026814423163845045487816460410889621590301140431205054173473812963262818143285159022509556142709127275169245841679668051320229429510911553511506291745492384244491362913108259124445884310428652307604604785912713628294283939369788943091489621138088363139055752824808083570328668494092599269851310605197027027970000759039059990044042378058862961695376771542664878206449269970564125006974342736837400238859872452235308692917081707155117172957684828727256673404081447213261494108352214303023325007934515559213390406969687308727949139549249012007537491101240948179545155610044820181971900083795304025423369802162126271025224893347311573548589376030580026346016283603475658207112796430765376172771563442180645240463686853734035454776640677800131445219877262628138584798855589739973069260122894480122905362305066383805674396025043570332194854634538688932739449257419966807081497971120872237122846060400051863456121604313205293764626998456137218939975028819722302776974873127906525227917524408117783753167646402063666673674386403460453043692609408352192582942811268721025041435588374608938097438461419329441728882236490787270571636537004015734010786906823880470580767769176318914197877326495381206410779950489736843954014136401442259962079977688254641864087314740020070716903772945980171352259148758020270558313446698546024281473463814355475501883960064946515271224138910952766132701263605866958144058398433106156225293720595734251279725960850278577682525415334299613690084525597169623972434448333911986296506146492872271629730189700836282774462579631555143443061230206551344587821353193680631966745526391122016036120039047330603854459798550413943757351340087384287383815774811733465548372029517066569688250229366488030946416695981257071402377766978647775527272222875711792578897644511793640098208479094103771237215995422537596751136138687732412771222826489168614525988284491556300722250138243264720552936300534811771543996774045243535355651477530120393305824611697204238131096617236658613051146274460894267432416346174731512798537625914647434629235103908569594106254343305107408334317603074053892675396536740070497155854679521542231481814136183936896955185602609493134738314746338482540573395305160074900612641987967107587232834617038960011083643343979740223220253330377524622514692314325239639627364319976515100653240808221131375740883954629501608380743657335762867727663094573771673851001242620565895501967382544497070313440722193157503753442543692319816696463956004841129073424351781681095871950899890846517789293026042664924403467554370782155316315264892071756236184404441752350568401641650977885872742191524778468155898798169298469257486533015309670131660943700019066166479948732928049890168831617200951903980998735041508551471871265502252782249515956651273004503223240828301722567396296647524959394234668485808023508235870864779919588367432399426644594718179019553775894219620679206459799883570144697081723936171828283286102001972337351961465045376396514241744684300729877512685850327529117408441891350722342843523254050715880488809177222032007223326472450398265539752555195735536100106824167514340030147303987455752502760761599036776713315727688516824521347912184773352054727651667703482990510295140273387598762890490308849453488617692415250360200073725441648336362079606853221891493169924242214755350941873942566931272313563985678226284642196039946034986392181190236919856560275104925357512392474155152077971789059124766802700059275406415886297642634005293951387983867460438872192259192422612313674966188964294160552432293074897787322470495892783447086217265482673878736483855346284675125409714922187877420683495725357822015154779407478219517679189862964773071622926212085248166491698119842011284658367730052237292385400805236916961369720789230461125130115136947011927733080486051088606399773060521786971168079522734152055257814878926439287634942179498965124258189267188067876259606384788672257970527563317607110196561205281112628753358995156417766759442243434403617460079890531442463502197617705481194378041460067794252891354298815650520558867493751757721321436005141031251711743607886206971412509534691191603367431285938512407126065155534861720732493975179828233767370358371838803560368023239028010564794247080381673560844750424844595362140555694532408490864983737888660245833087544278649238892812501334574802582334245215262570867774916106590232288006859465298989231290913120845386095534800202081721953732379997579636958215144081051125080594646985281815086707205037471318018885936552312510462310117412644370957217816139380209720126974203463226911538572928640459897895992858865425534233990559642419343323224913198394757828798769712856625894143068988526423801506701877863143872757031704871833473053006507540573732613432439424355463886697698080176533127129397015067783938022535923454996685731110849861791916016366089135817344653543058141457747439271590581895503477080946488974054224057816226416209527663265617549149058154049514608081790913580161316446891448019211270719049899956419995753387349983233547645179425567268807497672182134809290681457642704101982073100981021777074646367283058614296745787703180970822670573295926692355465702514535891482892716307951651776459757293145841054900042573191410065069650357875685207163587986634989069194241270340273937145795537589495982502765924939974474040711271908293619772482157027991868520797690198033110377406172567352642915256131836004386774670658709571755180415665423924438953535180715543394842995418410197155682563167286737992368696401776196380608106370319831238196399634870840981800085393250191791253456436167680901719935512693015330119542215449441540363804555847371280372053868661641157093472484274446838046565006915612335504772623687299963087378444620290627849454221158961286424236080416262367044927325015610240055550108310054072987281034229180668996938013728727051625312217763025201263948327155646839023085459977478025164496774489458653025832447635669898253673959155141548195644511361253662939865884059354702253960845915524759979840020555378804896155514306140041181774956704056667891090226351607316712828660893932032003564667484992405809888704087247562496840622960832377656444294681664035793816016023762637779749779018811392946692835992150452754956238044950238844024566813889817158906741543643349923499780855812894918546536489148873615473488264834194414552271159555351104630607023450814316568685976032105705452415220952477983886200124257609733761971611266204312709684254146402867529242793927960895551846483866904768935540183964519553074699911235541296325802405349393550490329775469550728156792409476966682583049239645071051917990068615479616102829294705551143264825716707350016861554390925354924957880232842074202172995121255850008784663894206818729096944204285189013463973672289367425899602997300390375600583910496639917628651258605583915119392799841199763348556163868478832418863576398302120950910182029333757737402263809212074471177939217952608020773204296168005275022530705455316419284080765039576881461246622100898025490410381943688898622109176841599218500507914766424272055262447013693678122781544121352485220548712292200099420819892793298909811487231512180969600316398397223979182534706966284409954401244747148113906047827233928598401262667753043096229532252575921235053247089141579794156133824796878527551057413859395382567358862224391152364627040918132601767663601069766575332194020954311000915806520762155012810965877596601092877696625118105203053486287742574027052797426144729231646920676527589102038836932074892530809641282457380887933895249749422313778669921178205129413646196089781121481945973424130224685641402932975411739182289452847905781903748659531915546739370092438360848780627330201948464779172653485751790230254804626870495836396906672940723309913318824445583167566639611031087751427614950844495841342717310744293501032411413663467980937413643760506334138297118889114283178598780481492731831636042309354549957063139963674754939769029975578777169706471000249997395048919140615780211473186863318330892648054812962318370519847223820997953987483502089754956819375331651963842081286209508343590201520632153907841034684025114377787137999693715088190463566574025011168321457406690010285021995708666724147458905112995725647734655977990234371099602366079626323930216879195757913122255998770432185351551551586169360688398824665326156558498790952718741173247799432216914662627147508836872293386273105669490937612852301274451195524720751830625370975574470964205986032211748888375092532780798916024656118967267400273891485804303235498996365739108761282213512219991228425459235055633619127735079693721279252800686892308194933099355103033354845659490732061785807278660567304872746620975754031036702166880110750839345602073818690368693096191771909157643507789479307008051310272671820036247996438158528295746587915305407017172285534006865239854722891360454719574438522496284123146667966402201722423373704377044519336685172290913916221487138416110140059730565004531831602653721877006308797676661045725691173308002749864582961303472564216284529295715591973814543598236383651480183332758078516599734557235763574086596292566270929680170201887601457393934735106759746734510356301111073710423611616337505448279039333464139484562531429108285747321216784875086481376861184770323498034694215144820985605203089656513855564451763248236074638736226288517192720140360574350193974040650160041560247764336595797065900593019701333517787354565300684947727028572031808715926146511736823489113731259277434914127009505873481256547511205197349859195768708147777377993291779232074335319455558090627231233780178775519072411566821464517897100641755329259629100170741766961328587720155130600936979404372412038928930029071257383055184903482383443759917341420480343678539808910508167573793813653367406578031441592656388313075585877319904744583021480196205681864127228430293159179442890935338012548875082912507549981167013459104375426012055093257822017920249423446743750371314705875143640979060771202096356637732603891134441403425053006644572043212854531644384115657839445268523280510269228953594549133643536555207808202300476704185489492577522968186475260771103397563560288993453259066907729500787153151407526162745993119294951989188409028950439451419239928895131063766530434939641084834923680252213505060011968460232345650106025561984963537266279323306827027980979170716838309413374944340715081340883885566114738921278016224599446352930364617841612607219527829947115758269881802382675494253591059781573829165359737567387168674993839140938878249312401870023949793019987990273724883300963282380528460788523382419274105549759686161137364962351384880807616749510702201517006398015037073024372008857009576668525037664950386882184248133086364011225391752592469836416274817662680638600232599000074069678339721905072180748374339235828246320745657768701556773555929690640565484371542091443300628115289829464640054876931112775042426009424543174220199423188952940947220432124311751152359133994294740282626858918782851888362211667840890431601319997889458360162746614822412917674203488220350224408306716533435317398849229639786843840909162496642566514440697517819737431194110645411751199254996818670257466192819553782244895538953173828049436987389263639244938299042447960532468477445298135833149182139567832412303302054068623208998459248034285536741093161533135403697696364830274794624311113991110179867141600221923445482956311036858995568231720296105388665854117486786361238943460494494063916342956049092873381414500770768756312608955316990114537470682923828868992290883123959184328577077339883519269410040795254342533812790112130507044260316114640386269498216518428605097835476591407229387805529729397012733603185010861512701222894875607011275290191655958406929843678621710862825950492314492940711043303510516317655330726494242804819087660915626565691186991212535536553601227925866121936624679962260005844732042405229893049653569792161177132020903144778946976563054216798617002865837913027469869797452177923020587639854735748420772124855822177495792786658737530854241150962977343527857608544694927021546567267240708994379509932162028766613698405501441938812099081437123841506258647775495423273579028002110476867776235424896106226955531197250089852140949724987925235669600598572300224433093027002129827078388460460104993074244601779961715399553900005804457877517622330989892326810788726089687233021589971120897875098703098089807857097340940024560922658133498668351865342910404611375664645342097587241463174574566010981517034497281647840414369281503574144181863299719905527025302833055973114550945906064441353201278225115389130544957642020974517990174350821793575226432478681367738201326682115384046066262055581618487923674555080822728408979020043099766628568386647566122476099028033537829408342298271407485182849787260869644650496436584296593506988017515579398279989146542429541258766937431588113660330227217711170595213337325884393134489107160298498219300569600172664979857255712439949645462914906524781835265547275163400957102883388109992183722926949524694452030650569544840343380109825475051445852614243223202751983581460343546301819553079087041048487172129952872164875190037445128698509115680729034946462438895159600975112783117734382154678981783170121013159590905698188067100452016257665112193042338138367619622563775078940920292967975561121204878330363412357961846076758770084352058770841072638116371616200791075287461791441615954590101715426628709390283501246152447301042474115764771766166792806986328927593703002704305469818396134704067619440395793171621048070149568764265013732711255573318805099915005320341483610752454746938030075995607808916856391624984624864897075886452317125001327464355929558716883528569862154333267968214132543135985469406178577869316876753702255057691243687444059476752540128657060277696656927257825618708393761701629233012249374475266211804676193425798893874230266562047002603724195180023081712196687322549889705990305453698502482996549631611383422538515240553183160921435069285111865973983247684530354194369213835860249339968118088529779903673460345127299981252761514256922156693179295742321151975080115696772760985146049137478469128496087447064185724530282008721566876524414989177761642805461098038877356800785347881886941149059130933433706388019659690361629179719183953764478455859178180188914230052177210628078194328816825599340603402016991021957538929651162446827969719135255099212436825863371285113555094024036554180588465315830909000137601327153775525024454293362737757356394027618698307576960144807659684375432215425550915555095888067761136987280233212386860618404114958455510453102665468761448425682931872580264295774671225348424188069725603140613790870408481436796843146745910626832040894974145797481947583332163178007867595257455162997199213626605332092190116161581865455896552033426138511653952899021393580147217597334019322154325719212713567960750581208617090454109305949367295051508305328308145561780575982679112064451560894723380054555339333911701207946411693747331797908921064063949157229155508421482366052380522676819966681324710061960250943066180672746028766063378522774574127017525238453116029933699070268570060474226988019724885638904768676957802196714404752910140281352552509976368473296831255858257040364027839963609224318931122337615045210267714763639421923341861367571819764954849169962978015985416410219762414144660616298497824933380344519679263537427958011035844154087130599741880647483958032016436242806270954774926799172225510349955312957149304848701720575228509484873965983438360683888910099302854011221693238000773713058947978387561676283134720681488164461273992317580261043095917068216433121412074425808059296581708771021923654607774500604364185418130967498972749474765534752391917061359992284166548585183014259516013177289301246083811805095883822441037362075157386334066448854539223175423173455633308878467898042245748398154103766073896783227897544181661830880107131589800046966389067869321200793971013399886728307972826608458356749472597856603059272842872591123404074723441831083380457118892149149376469297720535984374267406309904581496049981754069681557439952362395703782413849350353612892582609550423164476430797970938128838772646179196542068754755681913646578620512464428413876357670667407041024558206644355396647234625621950485827596850179721435975932169389236705258240558202283886573746488798142585680802788632395317544353019329738715820810017653127506508485959647454374167566546371214765430531937029375635293787084004749042785204666124418179700197073690153408965452062747718947126862117759194686564990190666149488281928671810083196142921189729980006899274499732469566677724537268350385558676774075900597599679239334240474558962153508966706256723905414204056885088459101501505599749077687998162457194933143875130492118161099269592379789934479987918734416777735385202176633046778292946841525961484626203992888306264439889213416347922942907592391685079362363580333164861001626127112106581596044195885701854542476030538067187691795814163295339088150064650167229479313916574220296388633145168644272449103410926098882726617519377273452667141608475128492504344854716594763701066295803553773502992121062714264254682930062786694883776109159360439548293244138323861847400101514532980629323973730313982962346536549696557908054011394372702621665917943792007303681591564194779563904165745977304869332886104814747011128288597981199473158838423681903387019430198293595905631565132201073747978780324401784121288185862330045847374488384473053533653930086775893109814209463932257377479226074798967787959054301116293398079952355356680550575699741232296625088135041424919592720847784196485990204066085836477636715461403791813218962257040699809180294645339730368131009895707636621181999245647147911662811272157481504170892940569460813839266429025918860748213236711078130671477801707398886342932996040154111371131651871413253863100564997298367737942625407312677187222518952763041975500192272776691442681005409366148331547504787678245512231845929504881724164528251007217586939537040251253603187550196241526881645833453902198949955067446559352935016197366846964677494829540627253215041821148288710332556747246772701823656528014809721732441871047532431085558324310512754884879932103340852134065468179379144517759748941486554325181395218544572366833582988080111740931617965467635172277382421848092353428810931583167025955578641583262061955345805633523085457315950517623136227954397320551121658245658451668843977092696461878818575749286538280020319790990407465314763372836116202570547256359489757405377008014651375738287552431018387189185290275175770249465161338282422394263120614934935856674793688539324464605835053064557440593690795579310845003595173137855658304336444328339361069547591891909731552700899924860272338739516754506985697823305517431521191348907375008497278123682331288953923543269021814605074451466094774551301117578574246626924296523878203089485344074593962982458888085931545571506432324211724585583019273988604583096811129076430148104456584873367446425687872225583546626039469495406537741436362732912005195535516997673784660613566662537862739547488988195736635184596218236442218821702695240483392369397372391391112488492190088665704571369151995555355095734398587921527728917203715964429804644027161641347593195015515882185209384850369236269976427038632732879754277913795744580783896606214576840872739608821646502345793953951026742366931967552548691044124673151108575556332741804526539095904927851906279121573852266365691354507859253832948744504100408894712444053066833370307859236237730094714123431729738771654696144605482864294855893827346001093264458529955269650026836953579458444356662075425093860191073848459448675859922397700455008343202824706894081806280095357628119919209191473908466273434082949316120790692546726321075829590318606308512862430594275578199294811997006745779530520115088916927718243310542756950213583379442095064129838597026481762279356148133836856967182857012713800186791420214902803173035370666715932279416138397169888570352097801173350343807484574094564992881527083902028469050914102560874804742832907661508195368651959377277070894127042133926486272360466001283641030895910100969433309913893813655666944693960148233943625106762078364846759521122670146152931010189777593096201512151122185560683720935583791181258484291567282323086619191261410515962646481214908940933793256623036945841392052446219686902762464512596866685761028834846968708204761601161792232449436614642667922926683355560310494773819407395924522454408369782684921324360269825246808597675291000975090409789511309661703298151242502930438891258591962690213340721091728871138326668668820815410268100418971999895231045785082966619158710538744520972372060041667245633127675233222361274954772352078293004287021569433711742354899056647419483840865620938326265890805609690959323589173848785008273755312672231136978776658329587001095308674343901677436914966463887857525374281966274974903675785701356450448792627825849851583270868370053184730195676441302280710506596107351059684435957240814693940539122700570762524812354152939543924597615184057570901569463375365290750781539007867980192347811806784188717344107390174159939717585705974506115264590215249249218049921867563954674138601287508612941164294104632950011102758448539006642057492438753394686791181349770638139147691608790866981071475792500235420998590497555322434668178452476492128038620755966260190874450649584980742484887963132455639588531205375699872068546511765798871442934883258546230129269226517035525120980138730235864871390902404672780058003832646586287468968078590040069004111457345854061985053033661179071871918966248242313642564107782070787116303964118704815544157161908615360721004342216596441331165608645088764210843187558101779212980208128521563185244080733080149863636235867318044219712484078441674666928361399290287261604020731157662444911785944375089232753859377091819976617739119917886959655402432807439629632524046944095973781991248782573237774922771820903982881802880192954448387126052809631116321145312866500349896033424445378147023384608140574708585479405522486533371999035706598765311951488424612936328483763229151952057970225431542347194917443290811116965759396100001908494415546994438782993212809552200385356826254835379735654814412221933218800374165029580309935113256107706387722378138253042627689910619947541400708201277783506240106643053580022968249339915084949092486634341385009787137859531455519296095710874610003674861639375344062356870063482526975081515826921373073118750508910412338843415445628578049420638816669305407950032983269859349654955754869799959332470875456693998672969750225770804465563104463857326232559245294675395768179236811133243772152522840916738510686559388577644894053718375782426831893528503233942256168748473232461146995891460865882804120613725474837856762533377046613043059885363332415806060973475042025073552287448135524202094730011789308155964543964565668677166182712487625702569949674988980729854087522176909658684166451201201536051761672783522563572677898854996293224476080361909846704643112586563056069178252787486670043629269854195140771535601084372288722612444488342909836752288296864506721197186378663378666094776161812788285141483371274402938795717674504363434328296285539493898164852808804188567976702220274024000609138980856859348763650164758551734544171480749067483176510774740267834133417945172559965749314310913356804863055055510667454865162074821494285456509491577966227524275136739592350677177859324766766771922680301541570241628847677003973404825699576335603322397429866676834437567456844045473382590073618273346560115284225681501178680136237863735380174906310908087630688816981059931914923423246183444933698470475451919046971901337368298667425465314422268086410198317303151669092947535991642912710901656794671126357016026484876316680898179922395677789072025857757374580979863637203717555164846186725220285576869325942936873618051438120618176474059411517836368837321036833571112408971738773353481105168851314553714143098895138659591072568256034095904738256124733203702131291611943937627249396970804672829105393977143580630437490221512052936214943012024322185804045787946508124736072329878099605609534290615949316095729361970561334039289153071935208697553456543498664200797155364129011277036225052452778419934726600305455870885627136206433322871617343282145231137838312474449555950739066384331049115497798236893833655916954155670154319383573855943231209461425705467436195964256763517057522257408545094641125088216045271024526781281933469058794749925876768513800606017164496543465975812180940467493116207965973007810956184930620615912347774699624680109226441818874462872915445224384049970112299159553832878006388794525507228195451386641117380885735659751458339348640565490032838875656198899659925940093772323385917929194648678683000817883065665248231097610492594073118595821931444698471913535046384035311111891315752664579988167384899166265323535370365699581675783951261710771538929572008776018651283925340680797943567575695788395070113018173024969740265196019325522998189855899880942803117940450258860150128105759382504047412585415564715149089006284504450912014111714771905725314659477093334726510412004123469302064619021750982007284176540215598496300829704134531512535939787807226243759744762801203513044159287974071780977886640406398427046619434368347174835078806235520377692635440990319964991802575813621776191178289946322851693608968498763367991446573156964743635931521229250328571734179733227873077696017812381476121848808328772879881528960802056039625355933500392975217190177454915660031367107693481287283764604362635327322510335315681857538948776652483880548833465440583000394808126280599229195902441673901304279975299888024692878310058840185830116300315173569846986138500177756394022310050838824926620882839354567650147668116530199904998486419745926077976578153806534070802044362240055151959090807544962792763203450736362952179248939174113878412746384080277132733658296394432596652421510434569901385741870285752432206856997316189653143741784903856500439620841358344729779537937233734266322384627412159912780136785786984557567388990311832607385387983300027190918028761299212027128534778792248361172637978415549499684240894350968841140987813099189986193232200701917685535752641098124535588273242126099712902490968908087540054650421984717680494643528832820506898103878934608139534544118032912328758078586201389455662845890537250806792838402839875313356203197511946138878788517470996592787854876409508465211379135554590360925525330570419703429665611800840813434646003428489449445623441441392740215302136336098972817316543992191315354087054533553965677035598122622202193111559107671067295584939780071877883199725858586024034308851497642071845644117375527226744009588649842992276006936122559952343867715597098077889631205827787173803829419259085577032984374691972384387672966195923340886292538306623921528504180076700693322647597899984036141977861130202068949167822438655926672818572243914951092027849147691572480521873163485087996671752906688401303371452212620177838734102313208999856025817760710779547557665538017417736579367057670089410394006327566855431296003349936164973430515622465031763096846461568004204730563809937591933694380829722568644223085185825820808835205559405762831606929470941967253879398373340704571286398525705749873482055607217905822747030064697091408645691384129772881222397386729317481800932329372446268058443840950724117803245649718921338914270134703390285435066850179370463268814895156708353235844988711499578586109074520081088916024752055850361636605965726365215541177257670523149270730724811041889098480150816462220956201267573267924995513425223043107279311826438378687829343319867724246601216666029575578605595515011159844955335533986298425323979061926104547291314196627846576369804485280747829018548821705055930075031196769275988114007338975232604663101418108161827396555647020192650770624165994786920277223334426206160647942351654539198324980036744582351227980096703743617829387381811469628508860520266271282645293594387829050566796501207453810135617384893071366904981857687242797931669730110626833212407499507389100706827267666424448176894613410567059013585212235500958187238260730283631033382749640808157738821754087376863569484669722012537041125100232745395153104916879631339653579542571302815550890524870832533323705376437299168219382715053772965892230011240765328843273541996387249365026663495069389534202939453168580578349695477645422193069595901257110873725054252791814929479545179605843158105913953847480744412565596248310409516390946004585799173040954757086138626969218089167922729250294278522234445460573237300239655642497585323938535786200663976231983148568342941641597487716913584135032110386220652725620895349294589442258228271425664013282946613348379711714180876829516231619072208200271673962665056629385314706661596874516737422637025355706157006184375748082698119179789827272176206348836020919047073469310456795032492983314194264408294892937168883929475991226801001576375314380802426217958062154652054604339789553949941729963376758469511960723787436767281017995710953988261019666970670890964174871839259640963862407459895684085398763978817160180369613247196333912471547814931705473570747450075175292322190452215128076657258664945364870832452882802638747492757527805824075540831477561078399762940871680190243260268529935025768501047083451839747513164942668656862722761152338040522455515196114936113452481034230374583114172833765861751963296069544868447929741264884313183492155968684307569029775464878194182706983940939851944046754004459146937474612589297262054026610834977026589127322058821644274855908578957283791244849266752579168886939052761037454809927292413589346711865006086148168142455405874561965666916338427322214003790892737400761119801441708886505714534087810141414368907170098379230757411999621534761109127303108584320904307237928124428270863088810843806321925336335896232764747607429929226562672169087492776235118105145794251581689182643692492105547511557452792326788110362291428920583469017034618580527757767700844168988887591919915382672416415690263456417662067385796138941168977308030471493673315155785832812276873367610235801606026047994011091017905709772983017094469261129664520150575912267585640697891727388762913308554876279278838968746302652317313021991234755014875369471568724624905514437999150304884854751596978923291193003537829106820355350241269838438855051243277830174795786811429168026787811572293465280068448206994200526886087378633196487666818251970449476286745731285495644096816256475774144836005898876316534524133604050560848223186347185351144213240607537710574360478531452476976318690154903373192410321740791802607865550100705955019433661346262665046081869575502714984511088477035994541402493551010836846599582645777091983397371362872401465096371722718857123804224049227573880041714356004496903857184302799645724303539878265571588383714738099489615093961594302418711263887291853211412795389874550112636134968538649723521387440727638666774299978483976982945765700879367694275516691196757081669306840692399838592130207439791595094099638123210212240105561603375414701502839290418170558678960319003664571456750739841819876654803573636954258824277148228987076110902073512769512968600959432633058821968029560383889997882308988423051610240408935792899088566194441982474625138422057435254357418086078441131404250104162719637517766981352690150085325433441205076585842361175879319975675474604212320926393693625168839037155866116143992944877979693657945529580832935964246948343377509933649586706819911839928549613987886722023198599935727549269107311423708735255789347236562343592467739923334256323191834721240061404512025945162965057288264392625022020505550532740156364369109277900104759317447953290332606041025319309865655505998447626318078678411799522304529254559043368088930892470748234261117824123051174649725921300363292303058421980786379980673469269824712126434625715673303212654862228599440555404777717217691379239552653990472852052638378207928141477510539032610903271959426825651927647036917239839806174699930545510771120364508960297354020614376158529424477939081718025570395386420325780493384466133832266357881905900324906520207733210210168409376099063832775021491111994468820940818982017027832652667934489848608038693982791408813188020762412575700073846428437953592592190568688144574397338260684221275840942703857440410230256812057356739881070893566555076915855299808440939738847058641249962023203219228241763758613709038989276606845091943041611972502155636813381949466811210331243520669583813968266208872432168061169317058039668328966390968699047419848355549953625368264731175315726108996116567454880917860659301885569799489482111244066633708222911397933418366713693623778305498847009793781906209052913879252055875829464500198913344952413934435370540337299220357364988948939426700694147692650399282244861748400063020432341078531376465095333929628241838294564148310999719002500499639702936464493275796254636219746784470168252990503665716427222854736697663429942569672501719030733651367956249905609880023221049245647109514973122519872252341596633280728290516452525100854069843262854341775988687666861506869625796858855146210481680106157396741865949656186165522845703359205596521965428983383377535905738317340883357886404323537949943624462618458788177716007058133249079242823589460429262966806980129873955536935338189196242546065921217446999623219230340211239381853341897645339674403970025946002383966539567234349183409359230708324739496033044641804868022659240061907498824170411637671161036729407546409342045511803903804913779706446332652966375535357501905077647085410916332412017350838324583679621487086910479012345335695193256495837903823576940042738366460225377580984792326891056251220698709602886570535252936241408611309224188001463065575455187130739038378636174184251356374416816776358331912355330297149871002838474669448165425749964522387494309801930081568350617407894626045500121558512957486203619199352706916541968797811387561901274720113108200196926482765022315850035031220216237389650419339119522725667874201703720306061001087972799769996226816944655144703941171421161381861571290979389589409421858468490784897889280647098484969242549613897014042317686010988042731271372248046440581237572916445805035328587003648032662817893605206632090428271645016364475290130098052183443840245610395597668205507151296385331029144635388080453367845962664269758757250576991029232740322042752599036492120794237487126269722597114902257112949291622394212829026629612963495396960336785931299050051759751127430978315768992753681175663825248989851260670842324125192233330272993525480175762560933013245027420726480305633355507686617672741082381782214199356858663614048230355338322535714120290379128128768285465179150020118629475158047593358136710995730545768291157315637875838548262954248285505224859423558311912614545387681173325506212360091531027685833974252246864366900853732553994674373926329504734043847381942480988948034768471998233631144116849004963273886975264858474404142395266074735087108822657496679078794808815378833871834169256797989322222015891446641376935851708037181759763944411766065231304576929827811234393541706416101097352225640870877535747510615702527960846169559288936028418236633755313950976295930090788089491858983137468704815034465513839432396981262240411101813907619706374287597451305229143782103648956541568699405585064438770113224744195429036226494810861922569820522669489182054012656924954068522267372166064919473113429724272555971819599711097986892524298924952309345834639038052039910509811518604974385024116261560339156584085152662478262044384299020501865837728531479923593381672396514391660806627771473406599959812661506241523223843310605991791077097804719714155905408767866238576081405939589086304784104618548010707478346948967172401052993304572993248669026118029947732693628466745421552519989939558836221174096413941880348684825107374016271105543370069220648268639502910702274416809398762949796711782738970976339301459428978666489010700223818931175535892165089508299309991571519967494385156281236555402183836508709795424286362380491869254298871636328043134723178391957312159018552790434538162275250552567301236919083304909014853905643876768533798458487082913790401573440553212031284657592028408966402195999982233891844401687488769523639333645980118572887042082501443598207441695434005753995996246523726526074023073654619471739678905398601112298899385909800279881689138628952594542136261983877073906560022423326286084988579219539942831673130176296728513042761533984162430352292790161537290437778114840075806282933560977169126224220165538917856182103405356411230667996712687715584872759727837524555924999748302228091038229688902539867746256130940511621411861757998164295665289543891521992792790251058730803793203466160149152350142071752118576345339114745690379514906637420351958197910981532081621556666728946030874417030712669180381489344005340781875622988306416499913000955072194631246212967281936629556779571699325659557714571750931039422124236645519057515474982593812716387699825439591797137530949334917573933200380660124650762794061748087608557562907037914784441028429186334651886910029518336953358870117588372203957658583678022311529621483822177804670249727528471733623085772777929272430797737869237126998466231677876015159912435351911531352102012824984979816250227355866046114901711413616509096961431254559515275325616638765873438465895029940577980453964657770473676283153875773016300396460922424218784652946843432808733023353405554164880011759853811032987224273313865260667710606408326122085080561742206450055987517351754732973546577269199745296109363905623737385630459963531936454296033558681238584823153550004653251321797701095981170788472571411792788954405509513914270723321560840559245673383224871450419096209856705090795004364846083056842129908418782207874188411792670201717552833380659319889047443986929541821617901097834097442438530159860680030870892716111196118350116780947389291138050126660117721200106731165174979620804129830869788396906114429094231275245767953196430584849821881598538421035461775796693138955527064779107841774709488474209740464642254278672685225768534926759443477135260356624969774119672061029031518931614926957090135460591456331278855800230646205640086355395872490385972489913898303800927786251764524683214456690762426660538974723289181476399782021706829698384398154102827338512866728647102202401889084517348909410011405456552273099811535129626830721597446354994013445649785457069396052904478628310282263308146985039071010931097796823054726650259366260029750903348477435790655315923160166940899091481063187846107809599110054551600548538058755411945246749799764643823715131512690687671778192280221672190767300235540829521202516476110175972124022528337589301112432818525173331173013996587315671754472124244808404025846228250565420876216191453680998438445067351251932208610323985226837113555430790650715764475837591855988072829544711016756677037049502295894621076661820007575618332604735264044793420780961155074180663046148046140815476830001882524165131829711493599210098602358813993467016469950749903658829340218577531356602695824229878726006045692874416528749228599871747384521595727385734458170029834278378116011102692907717634341221260904578483021302546997355994279835301049833382944117054461071907557661517033210543387334751666731309766402919457988790015754310117658273913369980630651969948701114576414002828837969957749219619701849814334590151968250670860547365058496501647677382364114546476435630785285749923417910533870368851266776889980495319672855905049636806096028798967646646367974528863085508833176977324699094910128720672162118463176004698440261417698440023781694012107187061121903880922317317981649866644712759177726193112014879101286520338582525322039096554156254304889049513728956540140965621616034012098790842232180516511914767439389797558056971397805307877454313174611312697941805174572205696348197495699558973100469625405902209228118970646856238231437118010741378013836007349874437771929588331952562345841584509183305174894486230874420210091986281081377954827393818803091268166344622595211568073510254555446515679494179429435391055079074059698074760491826750044059297972535365413384148240766735368567699358761171996815887418511209212150736605553547772696331982931942576206577567360740535592178098942793804844387180766599680933811708305800313838733993856625081159263292968137166838458403675512725070408225590527024170154953842416587794599458206218364506126891362191399211671114254003811169801520939796653520328808210931466891513636914298208109775533268401487510719713852099987037299886389330976161815273024707384086630657839275471476920971423912475009569299963083160567002865124132755093648110330598549238767126159246921578875512265358877991060817162913440334691973059139751573373835036307467566975992864743852626801405662281544023729862403601564995347570220349606527890193679378767104324620712643540543751753197209239800403580423482288303547697365054005566875569604700851153356779582445732802429632411335239845409687359132742256658601123171038226397817555516538188186823647478255583163780994322693997191604989154961141833863614719592139210037656687457728673196853179768854115588287910262202266461063742623637314786771709805589051331713119366844582468811290771256969609602864729840742460444246847406397196895835162044963409925635741183505638590554752379416899545806767119597353978639787117218326419137545618297611893539684815176034137654156774055396668359491576125298599132714755282010313977902198212612557352443682159055469096137779565173000820624233228190610988197090025959564057303347900931624139444235557998087753544308347517179012734577580968056852222570219945792455393979225813922910215351182081293182857952875388488991247519877222650133005608817413745519130119166114316982245678672309071945968302854554224989998383639982350610636737273467181473240376573012376232468325630552537450819109655552401485107345351004651167154678868819217357935462981149988961686742533944778156591832143007332257368699237083002637562768847240211459549466045039124680029188065288885797229694641793897165721326140596110111528104586523013299993310259555406115367584104641392922642901008086555380829142571714063715850115594496195397171003293506833220642748914531443125819982084232547464534397476388821897067019363876059701601135231267310224912885431402810680426148756956611806026347013968566135365581837768596560641207167039741236878965916939831224683754647530115250756701842236501726340047002223535289422296550004853657948429562064536603434241262675512439060045254148203101533742759649792554589913477322593914125900719931037342586718024620558300602323299364847093495547748115623633651372320296868629838607625724298036743471297875488823739094893450143551119652904322550092902526124795676588976993816828374180263148849007835227977242746909029367766604393792154214898715055596921635201342637164179092163614911831874207979924744933915899850863087781297183100734874290465766528555431895160679660130977895421099137570012273887970512313010971817785813012414736098358830708821437344864519205769767014606773390840010338071338273165140007875477985587049614193330938774784723384488978584691027249595596966197792177288292420515801562605184456943667715410374390351256440515384863636472142186442236360137662721808758838402974557075067003407301105584286546510249116079673964091127262778475641318647525106681037718373894968793758862643798720395330757213481293622288047887756424687098690685985184733047049586060016674011944636233137466945639499014311673264120315826452486220531153076404382683136020092149965345209573524029535534684450839154678086977566791671702561553781871108184862773901014804613893744926568971329869963546335494348602482604543560088927707796740457479672520864810737806950396164368703075080481757821630204415248463045662613313554791909150591146738860277044365917969319625991553468197230735250481274903281776361966956000620145491299051982136087010196994314381116188107849687480133651322073986131917653044184029197553576843441884564748121477159031599457203735605277300376146808442567097117331527920010182586670885029443835508322930182966804850914514757361292230575452013022179434587382671522730612106081739836811003843371326068049430751207500254769616096648255861312485823790244717089831936625185885487413869934921896330284252869691186365273996523315550206131711024115733152397436138807169534336901254302276798539408012213175591676565690190234324131623173866540725623518815703851892959656345538590006830668360392653302222195898534057309556593604163840339768267303971309027842061180402103628996079692377582689971107588272580315290218747536349212782997572942536981076161692177417910963605464753566316344638705738087258907225708185505006930037822550150349257390899173261191030662196407205651303935419260031370767614061709931695035508139973876863257000386551719436591827373394566823917906213062341476232864594702162133486877634571006186556861377090111982229054665524151068712154190000794999718436707862644413812227439814528099584368161564384501618472453747387267219015644207096090321439183978128608710903102997430468628665749425188017878913007439934855397352133132902429740611533375473782467642415869631834433285932114936068823294790279907631633082695696080126887003921765212718110628663630036023451848108899999939965948979571013373466799495279684980691390030463557050471466367927354283387670307554398456670906554131022152270304474880333236317110123836641664013709759761116489140031960182548545639733982012647896245820301504028764991472916305103913910890817309619049109275074460061422536498220625706063371075797432020257024890636293399458979157441084932963951677570380066350382834296284214422160399784768120839179197650752827462540615735962663706914408450926986847964581302574011407976925191087215614806042891386293192039180616458518800210468058033385813979509425728147007231954965760914902606236403391582578920644015853224170724025796878676317453093733324278677448242638137324935742514017846922028580316496451775214572193965298835725019902598250775162219331643813590929310002062094987941021584300379246027317226675397104443000256926280325353000603561752465661841446369941088532676649724590864898903513508808730737559164865784381252749927768257913244749963476208322329410637999986536590566653174523169943449800975428537306235513719315695971523732393331961098170990019368138990965755673378812925489523895482745845564352272181736613365488290674552318178353108655970033435952123193576841557684078006604179571914103938695027340418123651964003380063311609698430634382147529165670468201428384575113378270277313382448068575344364028619824381107662283949134022523878838104240000183625319233657048414292978582828099847959707337802712788293009316444695415205288490633890567601001625753384716043560380950501201364000461483463323454848880807044152993821332276821711781715141326295806977071344093688991369017290517190929709853041899918832115061678461659594552037825805694454161151562167722077407496130252464283607219762017579247072428392710203316293037699336427870637883061570676769887446689522273357151023712221693443913608421261125428146664690330830189803685703510277538991100969923558228908011002110653255345485416047196172127519455402234079444145985763732479643198165775923797942049794069962842478704252722189140303308146095963257570562174287608151633252600881360849515405869798904178599146554965468510209184946941208254708728193656758154450465524794532718355783357688773575260498554008045430836920102880990172476533537926015122480199211977054770712144597168282247484255509755225873774186894563012268080270855142509406211275424412975307219130913039213845231996632373050843571933239454182230293574350488554275670454843594446061710185321977930896143956651573420345528333775482820814697087841810836569327306106736056584265093358949393155892310686878204002742197771510240872637483073107113404559270281078477710295056006309220612708434251897314252838331584704700168623397407530677184023373206531313929841443342158816980510338460398997614876745353357399558972049301111355345414976900690568993346116325096606135720617157866401497945883245330651881973610774346938199121408704069289806722338884486592839192609905199997369505104029457890000482017006266748630367246785432027815175325274378985063763518504188343121084072508089204326230571168550202353248333100614189615134194321368241967208134152161395098572734812544741511201278908055164489473045954818995058353171729237796602045157974052529370155276459913432501754755772763009001371013841566674174380923939832088317287508857741678055613466110237228108767125327877654985056782305615442087267618064455736658030085024382868058576394837873556670771376173875363992082474311271504983201404830618614334317712616122057246575338609781748957695951029833849887976005784405727572212453166202144348440117540340605049331691746420148078383353038661294839225218935024689937871320814626950815382638082560453873912782925141914991887808441577236662273921250716726042984098387336820411968245690668307862659788124772469557301220097690801161770770032489629406710291967071223676798502126753108433739208972852629241265862273871235950921540090438216905183837762454923783585098442532489231995302018850750063839459134124423776992551552975882772132027113545569289946035410017648036641493909231183429218446659390460275160801255746093262485021426473283319115755062920123972776689212535670990800839904005404804679643724856538664455697405450629083817856893150734245771992978062191684119323132228003975874090894432143145544960046610074088118551068626045746209305893677924782754498306292401158729186352452312943644250558403307375540630058325776595524215436561644586736176945285202563208836579968027883430610184587856017444061138432850687221981406489770025779706004005084506874580071068839551799713452611579706384352172336279682737359405666846778977501555548507046344046396194611688967726422689909597647703843997620905338791335268004116559090899429342024587390967529690470365848177827521904851664866309749191184367345293528264735415528715175852965197612569788643157789531510406507175118659180028380165310440961704465168123693439394457759619439835037573435936619052512629488773569895984910097646454703924804153682002453255632907359716201285947765062056436348477140022878504408320266044467718814924918688076116001704727206313722773850656471525002785030206852255560727345987861820055697440211881497736835935025669310397474692942283752856676672097787689824622552593590872861118971360193025008606344552321167034383505042628982379374312732963892290430464135780921970496860240536332485822993268613574104636536796538388289741868565277863470056924283957779892211889130974844357491981482691284071128079725629911570471582033833474192119438855844883920251529483256396958192996130174491060849015162136517798895090477296982244309660051038697408578541957199191770775187159081601649950421537171401563124751435410036152208990620599964473361614408961053297489977409223141527258104311321482846185473326567450329188739301053273766315071072785819661785819524306827731497496506961852476992569119268968952697018396651225071638143692239607832474555225562949206496632847882549199423279554702806873771914023778609158080332176657339739868569801473325179265511493268414616082709123789727806141985093402601187759921165054773986330810765988842460968808125145029758842629284813862043540672019997895050767941618752702012119889939458181517029850826553734410750666604137893183911080995271249173470564924281846455329238547699026075980025324105606046971139560228818251753287102973189324149755464067580698883456963476779674746821374338715589700025627170587141987559125407121508033337201603080074500982872789070531877641090261052539124913166927738849661621412715925273448668972989495339265831149883088645216070931645130553546053768831374003525433883964654052126864134028306999248492321264535148924968927403237405834374845408464171342468483040095748446231406798559851580798570853895605138678873978947832895258075110362349119466645742364097388681788555909985192446526754178003934838521587816325885981990079218620104269655073521621757618537084433296797290123294786868707867959555041370407474470928750010895905236419826986728253347956994899472702411497491909676401201002986918255822872194670405458617664505413890075770600314734999686796544975085188045602388286623980726790676574264587094942282999552167388212359290650239360871834044010913960876645237891216276113816276837440184334197329616585647854992793047189684424634556941821868281372166215285527660244273115949397676947558440476070714048686499460648665844692289751597601090844382446510447986392106060383949210499497248990731236838108573288661152742365508028584866998809962600016199228421403964856228888735715848027861183050420488393221692357354763219301087006616199812647885801513452787098097604711026844119204975188512909357678177386615372556701322994009467086753685202707509704626137858736394164959254875991052131780630433241055811341351317968619699170721223208677846615758330605690021599717804400672499863544384186920263508300812116293620175959300610092217147917690542255069431044488229890766015319219398932926269795073204280434430856458587730149254208151726590093175142157020743850031135142625526055187245019627762142935725328938812175181747150246884229723171465358775328734004415254562415721619928463214259644867180599256816229329008587458921951482351337387750003937924613616319582098635565842477959785093715822415319270703543483955361838975162871612430758322999636022507804382975415364330719494410308608406734946612390459280488453353863904730030448597339212903082712718272997792296573752130123793365277315684952699107602809310038408434696936222261389958100979963941210395803456034014443961897070374801229581822732225515534046442734683630675428332024961523261904674113466327345257231560868541128038822819677356708749123354822358838834012493177280004665340209941282095785066726712277258571757199624140249180263811340700959352792686708328586548096055509577254126454500729680117865571198824427402053159787304205886821242189976469496089915071434085673365234203363245890155850754855395244064504556325721294420970548961140992767894719818412626442652802139009943591711374218169480723498491755422937520846801186468042359366392533428813130230661623378833297902043318264391516268528848418509959486758338356029134182486113001459453694824755348118465493020885528799543723210801093339456235633423368147443641838737559242667043619291334390574643958684364555741027822976991984678016378886963328124571525794518075969731396905461136370387717805295583253861363055256727102028470748076614967938740591835660699574845055140641321333864852588821601112763773996832681915093065721693313471666924039540974330078006642788078692630161766757801897252741323755339356829726411235141459857985463500256964497532707582594609256862606572355934552736337899521139157695213505497116522148810486177653944123437236342346243643881861437166143619739399195577811969571189271865716857535394215381095171218833791630606011169799072827482478440592002111709127853939194616015259195078310127206973644705824018803024597625324723369897267690712743647911622103498365668384173824442185093425216708017980968624167328669965591358025436939706247190320846379462522411102782808991830289426519305041488224797919249091318634408044636558240512766427966237648242582260359779717182233808767149390219145788633403500951378018119882319960058736334297893413383073196587039038169225117228751278977423752640651775147718620664633575639751532936907032727532490670192991174460873856896601041268570544042928161101798664797805129109819602616410407259760660424651288721669024121487692844911780895772229736173702553181076190349221943555624983273667392205818937495771297796777200796574237367088269915267726648083583971863651907291922234319534765783216591106971207141076490215592856795996560931583809217002354457555523827405579107115677961262088257606714866771380796968794183821084578771565551470079379375576719544877321970276760966915078622123689857803369371807617874253320851186230160319570212470079488599786975071120433352950400002967879257833066627962046781432798715201490228974157475553207886559313007711549868866072964616130778487645035836015626751743404389464453246367530004704156759100598962508031271138000311825470510152979378317887747785683117281607339908046581765139368758646716538642421992292095475595801043989595458483538826580604456912904786599923298875367352271122002267640239740248336606987833131371938673975001801575751579357861333531720462496472393653832680854396925045005695824695703198734023673860827097244049190081447281915063487050256528684762290293377477925052867003004778540473961240074805907083781270436238228124518403296532886181256567747294882725998399850444892988823633205854031924914267450038839436276146216782307667679196735334645801624205745452423642276162328202229217653643542595315700031131876807303679668998681503368258517983878871219650463834664971512239850158980640100854156081888882059798914821300516013662309886055858623492496231387842654233476077194509945452879999336726960415450900607077159303559952483613570115973673840710605157031179690718594359294659065285191438074383740514044615474411677032905365118260706708741486382018086455090945780895816338439335812850137717793601850786201334427841442362040827302131706908630057817606240715901265451230436749073101666178890957399927095041452376244047205359876795368386755044985617997532884821230456675830562767512835835676222357971536983639269769862336862958224705339489233859413586560947671339519495559082127941847739277241827595346282706619377529676186358637337457238509027352819524682189363004524038972415929908616057963175890399319942329782426050882939059319642464648398013183944191097544536081136443707724706410227281790652829295652708144729419080759657648600408927223215121631823995929465880995703336503534788652951851433930090295269352101690294062888336974272668441977997383331631680620126676956431624685573903289391479114293855079103651207064386577553392918721279834981839988171424921851827743768155790796219858984291914252728212956124370696149597960509776506360631288008379670848276607411273724790246568798528008417246053466700574296150141896945032102559246349808106205470650707355113002296318409794612603341909676970761218214947779486734374695003952075879895452182244860697274544230283854574517562436353180122438522752208406669384036345132931287865138828430826717983998987121467387847776523125475378993480999721499229578370495060292276878178528050749791192732296113663166857843764373420665109229448703255917380338861288589514109557070725856528876249185483722776112156536674916638401957446277777454986347854888692106989715670211089677732713926444635479930078023484607216907695866031640598303458051310610326434425873171571240592265986715096852603796569840873978741451687969297482230908750987564540189971672070546633279172803003336567758197357715893059197932610362014738277444133666001427727507421852423373968657856348793166356551356135345592489410680478038107534575794613506644786298916558899277459656529097705018015911345978550730686634568465312720301012544685557845360355038724418877986034950459932970620129351610696372247602865974547574355271687785996390975919295433554785889761746532645090494651632017035035052180105797589014223768259035591123732710309415722687871011569860475910598478176864395295753006753539293606829872275174312069278656420913083035882936878130161741293665366373094270855786434305716806711625046658989977261564784892689571339072187164087522129267526134519622467937605315418604250525735501224401246972075829169511530179708215354883114964874910909364684837780808897165665125133783369878483314211799578283426584646319575620393986916652170760672927481460616496446535005552861015906062699385975972172927265204892929519830331234168114835161165945049207797166820092600528996446087931783656584185351119285031361024035982325093685878017167587566465009707598529510036144009124591201148522376877427029097187421607800912072814043105135584328765187661168984887440901584950981782681763867116926773291547839429796817334208290253767258229564697406913280323903444389890847211347755089600659347893016687102877674258653747251490520886148580755497158091049627146556104395473965839693300310896385470224860786695890278476832990991384307350668226943636404589755253510206930977801263190239752873574077750489648278356300004104269411544904182298785755671606825203725435228756194472109867081115113698166837881015895576297665105411190057956485986704438107677904023320617251255789936557227015150860534520111581512067534497017036684935085237568848248630363711840570639651077245614065352736562348973957317563758563719397846026530982197200089077033826659760763219700027226290217613581112622898288952956136386384360809398914011557449471820749096960489116191627231207903859803399446158405190460766997893053292327662172541825113750923268847161212619498461922871254315544334791222104258267816524754873133432563641535306893480646002357037646530275904993911667243729022448121272643584906958183880358786764619455117345251509643225734632803934958353083875013231108292283782867238319041983665916670401300440591827192479233056454725770965944052492517657112089965534800272897541745035160704669614338947156096727342249228956270657063781222657465569082958544850802883212689723910137798554569202361783906486440719905940943743285005792861156222243062471039879128775131440006286035278387439245412323374345051505356484384129728658659006987129806882938615351304127931076940359021900715540038486689172788066298043631321327345777913389725279933025342129773757402353359489736573741645414394443619956180269292056881902609191481387194054351896708307051373989998109936446297595520987462731860576682424027259585383675847777035921640722335723791604803205284417040039228793596752478942691132553610058806899136854108957953341692366327453778481333405316052506007339822228388908829685328688937394297670628203147762535998552488834177503536627569822214810811172219802878747661840582742875456075159475064258403920346128888626175951695907576360249976801483413843964703186771440591731138261138788564626355862075482715497378437277719819337887254598234000762984192507531963808179153455783198495876221288407354778048983022290010775419146104560460637087804710390288372079466249181390376986186406615703397796933715573192206670122327105457013743513145114811813534210918418185986902716190460465923142399220523111221644057018469938863254139964000688976648332304279991164856520395623382994875985998171476672773591914900458088153403786827293965667275966458448102376767749167902810441354078387464070260029016339382172984603524192850212890254198695892736054454853500240772224751074393618026844698264071941768816153430620850811843106404760807352989283951967125194467321656382030084485622633720683090472456116340799188607515679715235513941200479511521115741994563145568410058236987877716909114447431619669979989915037722557657077934312095343567248800619367208826498765817996418980173287340740139520632484369598203890100792435569909049063279235411136491573555392738843736516972821678369417069969737784749328965901295635217387964903178802490128264828526437762951105363436533467942038750908685162220929348721221105083236037973259940780970331388195058730504186731320587371361559569376358301063129364058867936311832792737251972727800570295966315767812369700035150705173777333866189276903906758521901721448203093073366123805053578048479138344039203659270047762881995346414601234356119571686622679666234487597906132643019694418269161309625784313110445689231904996685536224654491021110313737730044198776043496634059126055213921725078706484560393679666252801432619379630985716033132069406549423125928417206040075607989385091404981076573148020026849177620813404887290361335498559785311340480582284788085111608994666248200055227768407821937298207814111107052664936190066869074828135445288506751144465189734106164807012527241380844404927356928681288769895833630715345267345407100824990886339075582877097079512499760878523870478864808153633646874151690287758367527798439395596285436620405590847032908021779058937215502135547239669467665231035967637364968702622985295419846530710306429997577223690186882498258296547258519868600821596263160310965846601571252199263886390451332356349641630565452603202150860148265683974280343980506628802519611279359355158461531039483095591693539499408267620852316350394382163812361741514434909177643125111693018824852025027397903253680046856164211529272799675634543963921760284556478237516639681118368089979511976119308750322977454263889676316954117410771327051911912642055139508638785333473477522722765136767860565669807105787313925347840455547917454930777458644178723315852321827953837340401268796791011077180752028446227038769827967543411004634708974563662305085577226156416258322746591809192796094596551749754717106092541749577375562811210487422853573172002979187915636122375937600900813655463479272829527546179193669244557872421922220031635041441841078414592511357184040798707521164234304946166061773729368372854798919377042827514811792194186261383752467349983017553870156412424406778227630742212300220273610834600360322346205544680660212443295855520896828366480190533164973416991492210937188803806611275126823620100070711273351844197986503501844961515967212273426321571641939613877568302441592943160017726312716897136397805569194965178890107777811835392387652537892994424738182547288806964209459166360020339192035376652449985460674354368019515311911586137146780106033602298258374325615413303719737965901630358534161093849131547996637518293781674025623612192678159579086497978353630845212727184400722895247053782909532792414363383773139619425960105794925010485957784785279145456169260600490002365614423566785394699345505180065843392312350425413645737303296554397245027785340630981760788700693352545971619516973960029332877257473865228002883609103328299837113382357013968307907747782830693737683525956480143961865311958927030070599152804454775623375279845048224024254012801027823791015020705761378967254562144224483061909272977783758078301787118868718312281999416281498095704828918031185746523015237443731807031504569256869674324095019939330460615555348978876991605096586140331409852509372961409927643013834548010980238749999367220630213349023416820769936384834337173358994939892064852577981002960996188223599239992099452098740647156751550643798106725826069412793544120097701585080257173734189758200965886620449159303557343389519695226003689092152943556158012808972526184607047338541734136925487327466726651621565546041758828865198357451845260205543218359826272741187788949605799425378803161621684990784458267389397615092229208496231704312770133045800018458125933663398190198470982490434526272444010710624293421250472530400386650031546620352127411888095745671656630187423667410868262169059117795231181276282522311131667501270983963174687704163547910464206377279107532616414266209856078302686743223307968154280932367494311400575228551038402580617523240057399624754840038259690047846819133149015698427996316919403820052023623718880156346879976557486151318256457460147533456080770976932860507950162766598137309763198238827255628229355221488032547742055504725208881215745091670478453416563846923141898487234230751850854117928458506827322621373152667910650612447720432637789537432243420913431573199157557393176618977902961238504153734150775568921535783817676932126184790509960249643900134478499990840217036577849552915698308023086494402807202823256865946617728009502477993160684570052500438727766372991043122846955964921729994918570104810507477088121097219915779258837067225705285920648864621150666088901654123205417025171437298153238862766288729262226697138713800441258347381125184515083358076687268521659501518842499390977955508859425068941287007136192097001577061989788932484771261975537918464775125657579448010061195170636900142826104722781772054295764161198911133670538283587774600903611340652128848176144180714830715543753406768003138238073802808195846625330587963749008251623314527576122098772325355257542764073255251824314176160230340140557754099253251403998940528854968816611051383608963363807450551036393950853544943964684127396009318197519348516077989363329674966222031722630513074984817250224910680852450483570714299204410859035660126948575900163440319760039146216590980080043624271566107588082922572770404704362138713540597066313384094650006897910336368384480001081406416160597475016118288877688534104231353662224316071463281236781982265868598248592745245079828078838786932903799723994678822212673364114202553069324953193488490438179144213873234601724912729075164606532980624777263048484987208468996387215876899797796973304980730223198881835107812773198104339996288443406809890060924622141979829479979362929797325980027134344120780394833119698862051165176611709798912594028845682220526533432010956994644543262649362731776989428883230934851757442821896342204709787696475511962756210203442263213038362589769537388727493587063649830524034639523383921860551497839382133271287300138008002417736730881940621869289732086859016549498530828314497253078242005979858093440387717955697498135008133411567999865103401018607213908954653285733976000805258173566492160339049465570671715634549638424538182977596018689204370812425636660771915417170878690606174071080190030956691171484564217063817463611188554548357393922882652398263545470989491294377327111441000703489235293343396564956686548846052212319436302773676845817209676152330891664554140078779329201697061603019554647726008254617081379392023649940460544128813554433442105621189777129874873682367678255149119198412134973706574581987205351163772265847903759866923767069394695671422374956135247435219613821465053076108602992563547949526374287045894323038262179380042096823713862167966199428835639009437596908724785963221555911581184739157256379517039299862367401132132507244064145422940646630994731391041501178482928536770988103480720307272909989083565963717952409696983351828454477072909143445276415289633613796255262102983859849816128847298231515545488863603687232168083090847768573549687126255581001064458756681955345647938271238798593387662587294876359939006809238412817750579068532791431114269917143622167340470866958929184648846741351552755697832080602315669216850858342187887504581464389835917499071885662321927560507286184981353264216994258341851956603871168141142783074222550203485663882977312364450820516385144980676414396150924475766330522997745573696942459964580711134060024798030424805135514304219452237197680204220557593763516462509266264434243057984072497708064088940426761128860914695112142052733175048393183837654695209655960895740021412723950032966537584267926251872444477827251353819439979072442695144015514099234363821208985138641353570964528129049583196733342602227986685186547115414484694076545347344805513013842868618939187350038337985339810276400803747719140220008740428618127883778432771031282093776900727885349422670487206938132298228346730480312394115359992141396133247100762134318068788646032776929314775686738956637902140571612214469650035503882029574668075168234850141714055568450982466273762023414427706153361288194090974591030546877879085122711309892945860804621442125649083181574171632193927053205645035843360179154086995303035613293379988352287594263151579927839058090153500908031724052876663845342475441137049180517234327130928811371518628623536537250511734922681759733561309994502625970540193822814120712332165752088164572251977521438524491733522638017982178735593992463498013652682843354554193869678560559640689286065322066274348699152426962100585158691410631366825470699995615243529081835139024261854473987083686845488401395268839312764356183988825820337891964648681208282712570678661343019239740433385229350019248925648739696464503022842369539244886901242058116589562863829622574459614589777305423247671565368177373218691758217345247963945203750268998392023248880685897758074813359405021020607304420541553793439661645750216894760709292246477083294535558662303257126773856086146803199276517158124239059714265315402680328565650144613968354946026240953103448390784624431070920672922415366170941227884634319337181539807870247306514501753861185977022196196915784881625399526612296354020732066527547292507477176004217914767604435396181354177246807670634054871027143786318230422669464575572092811946796316424853820764625185602691543082819900815309644457360381545074699594172094670465410251088584058692829773364022132795473213020980032846774969857663211478643296166381122512536274542254113227736754702792508967268743981361678750758300553321454890443262671542303554371603117613515655115477621976492796721636211551587813419196987057506360560892524042446581170490533988945112873890522184126888875024623514064326974617277185867807628229918606808251863571589718414617378653622671095227278643062323808372287531805397379932384892299252801973941073369218594432187677018428471193151795590281690267677004061639668682948073724650139511593988063065188384386370763170348015221213905313108241365038728564911838540398002381258236498207217300901339485365765068331549184527259521616690198921326699138075362271263014456214412660597811112748689780611599300556451691492986693181627580856911827993755054267398661339609874916474965364030853937290345757100584183876994404904577748441538217079611412343369278027093838860071668495489032935162004540240102208654435358076008709446448616453961032894774689249555036831313317259946238300710757176472280914282912253958591199613546779636262191854741889912870470798583388616391646360882362466961183473625934091502014294218175898207535798082555477297697918390297089903012493448149839226678942626390134741771232675652493877341042341278266168344161093761410068186472846732865241956091898636046557425579129306329527288867661778264748091588382576026828324363158889975005290357072907587113151269846905337349638139842952190026780671213934967856822680574275022851777029557996031537269432365204694430337452422638338990102889564688177785316771900473337667686029502776616130409525168856459230085669259496999950939425213949528420340008821243500935097724486246668591819947241973780322568782623327701287562039805536228062179892865047697009387156052959300281384871231345481169518294736237440874738648896801070280638595339813940352627574752320982757690219962973518032465617075388171616990572310887060122237940768393722688300549577406474237977168744511015713176655632543311804749291483571610040586585905378471267951402270934861663047452439034357235912977601206988066108711312734439280705525535756797356432522668557744857840417029579370373032412397111727669970204694551516074354718439012874126354077379631821703098604554172491784778879084455563494672371964998678631390693710138696274644799011193013417396306647794572729582082547163009585363249715646202086021442767331007336665568988683818586412864247269565492785632294592518826596088672713247809915437355590632867392554610821225664493288371097026710386590652857239661778712789816315969327048910584109866580096877491345828205486798647390860210991870803431248785913353140721578238826031628720162872225201730048935773315862404349105413121183601265808431056036833770866419191700181489888426163670676009937070870381525331069390919431843599048296265989913977194889486214188682350350082983927676195628654707608914540143266334505472649819711563104684079586567870086371133726690188317383864337524205672439875536210308094660985962704571396080153763045043856111092970839661849636598980470507086171458028906376956570460574664526141527873536898149339347605825279268595355386220788525338727641230387754802429546511333305183035354192719448462805714065185259012592062922045534782459661923192154601797924582286003635781198193021918232578655853596228955811335089317377278136718243812808064928862422350808179437587411504731315749458900782550172608224813412569655320472512014213874250131402095377135511512366074205359788352017272208610978133551298594886626768730258165302303388564573832822430876453483802359581277267907026592044286431465959942986477689852699981786782303789688327864835878493573386747583162599408261943265949594662836100357331997837800159273596155436652447598272833129179073080947631542553510977142052215324105423927094244264814623976395559082104038502926297586314295264938273591239391677686366068490585255999147914337301415448342129326206803396292178260871338554202964024124868183377904394182780463806274747129336681472945725467064461330841924183574970844974679879340549344569897207809086224429963519429269838853559603649649825180668294485052025416829696764172207673899511294969431725177161504773166615107068562943928064090324491505455734313247599294061239066458947256849659622778057985983521539789344174602200921388571280789364717036138131267626262943329240819511074136739919711511299817733510498869127037762027912376114776176396071346939572738043049661083515645477255618823192996809543194388927389009685924375941180972635275807876709662799923958288800770679873114823129696279697451761212124083647038810326524224027860104424773612511498677375612367145405694629065168770517467494761943462380669809072172189344142608080482414440201361465070646861800063433286724056747461093954677969122089135250889014657485063517441280871339191598690359153486138334603835910686716169024214326756570266582380837457617030637981851143959567475930545951733813910181976411076326648512697140060750800778181619850227861321834843462603206505956419532588249687171607464762518138213142167729760699585571112256239963660409821553387734895844881925234712291166268725979191557964496620421561760559578152541601250476533678856810014992750133099953662623072206519311479809566486400670797194163885880302161541398917278038118582071563493471023654285250705859035181051730034149572811954586161736708632130875522045427470399813444946829931577495505371988947411129929082626403550540824597710085030632085421803982431425880893539448178645078104804294155460282126801819948763392428306422325596916961691479563641431329964906057731470978926464586555701029103824326759609596737939469850660858014652135114611152006731835229751938023771890148633011244795106036706993574297387460959971344848067721851058620871219028966589682749120525917292094659844114814933052457847060323711313489273242454184422890251336983553569298495143389203798297195848817321632827853900583877525113622392159942844141658192021628107933826693021563632367023336076410580259011647131234170898794116282755902000442898804875379762510276066472932422733695030753376136860487924047210761816722524397738650823470486308567447707697101285039021416389265783724795583815046263363233723224376244013344606351314377556903510061576006251873286790856689614179429976811467778151089544663617348028554750272210291885255470274491594426264365522048623096217650530230090639912445547821713336390573774429506644592101989142174713369817563974029398478434405686409373588264668972040838759843803229787291730596227880514127324514952251330383233975836191304560571569620733272549516786014430887881640205445437700484375171004010818493805848092277593475399099590276373799531478398817219664397719372576793565234186969774089829847181630979255666746840882710355473910648571861153797824460751346599093669217971893901454095945155346810626568730183200264617195526527650261639216362233685291214009345603418168509201233205001833092929129530959466062284689762501503293576736350610329034248971947170471503254027950331687094940358584787860722545405233525869452415419793514881047970889220311056903870008393417842022450223211469950870146818025170744978088172129521940297227816695121043267203925025010657749051739515891032577310400771492881409909750466173939325016701176732012758097528169083351682669545247808934530537621396283664146072952506287181567050274449766481563674649174375573719122299791258403120476185356764749418560662477651225812031504016030733314970462767957267268072134808854601370922291750371730678220171533022711718705266677862124314556565265343594895225466417606356135789627596861353054866873274405114374132417109792426305744313209550618498375519143796074458725385971856739172410153447670581584658107365557304538296543919835865596144176184483427994469415174591817177847900379649964838886366259888607396519461251836021623667419518900477673673175275935093916437145616826122269602214634009172408148946575224076278424677042126633283848336137869432083322343086848437350952434184718428719658448045520173023232684485262822812804765170605793790224352701290616978171599807971394015380163385167570957214268358702074254896062564545448702057024133115493020854977974503731488834788488424137461956111363722950107990458952936758351820970924889612326065635147806743234518583088294362430536795147342838040086342115339791696847408115068974809108560184202808932883529628779310262015750015502917714148854442930865619187428114838016186770656074484782286966193418479454636592742753341353888027789276186226570352035400394383861291857279513282540780337323877618549919893037228627162281560898049747387534690278574090486802952895445351454315961693892127917711041143661809221568948097514441547907907536021866567389713306555864441105192557602912167818763003092616994944271418924742214702234770571696832680374863687292704477729415626990110216232515445954797390211394021434191103646075500400728018486084030670510442962928163226241729043092671102792517241283653593249013021597285856593650362408356969402687055578975395926256613793928804849933301747894194180340456660921727980782173070224368322263859912434787064790670335345437997365890155122549507159205754629140905860072237792616829800333808877533663862924977515956238882279666654760462956530263079877932572692989302128588676284205443917950627631991057857426648699490499404511370045653680211252329229122897826551220643297044314137829437305438097994790066869901027073066763927440950913632256540858621364295122998918503470362344320143170771135806305466384918372761172944394630902937101738591601943140258466725179426953992336900249630282065259117512908526998177322689171407243515412010677886734014614997638008486402631284991764613643879120017850802944411910036598444606258079775330941417318757443681010415726793118157908846256157874988093381300820295999759714903637320039022426800767021455973786164729472812141981190817900142949981810026161550193489169101953664544669012680996662168693120241563754352719145970414090860662709979512156526929916952851737521594029319995005878233741083218082210311242829295480730933539207706045269666599430848674168991365353230518552159435448296175980012746561636135425795358950357418101712579008396466667843498872613112201474659929825061043930773357863583614992581287867189566192473752123365267602913834544180794305115259988277559906290714304637101004926987807059003765256817653354903579902256213778539918751140717998506868096097690935842852583168584390793625348281369829820722161854250680621130503025650054862042643671712344251710532349651214051885831213085496406102654224458381055625635697434217226652290582157361742350023275994370186700097584926354089439235497726957286778446923678619933607238961992380267590333906521753477588942949475325662933591198165777499033677834134580749204783909700737606900428149280733130038665422474859387714811213179467786881059632177546245030906029193409637224694293732547404096835504882008188416670575027977422438380582258174451179644710356783487579401818684909395331983840893048743856607417890171416317625521416587791510147156976484976846567110014527158709965757234971946921648939253975884999106754236677294931906743546115923475621874258487865534533255087636127657369583563095285005977668305223142644384672980312440657359479151862059191367785913528351694513262091592284613662176231449800648610288182499309916950031992030358945653855692438650657678092013343056711004786651963770679726693771320314876729585953044765128419925031048393909502934801181667642804658191315084553787491695932218767565968040674310634402410826807604438163064580183567964229743838541942298773516763626898444843570819358969837337777823915322318209248574226324808632419231958549612412890865728845373414886063171613238016031506782420854339588105986578352467369407490351094074397287863596813586890822838316606534896215393062295943079959557799372863701744478797304323336158231040011121879373450215348392973224454470503817418549563367656372910054334796070304942575653340734854447910952105972470939276545034854764093356760517002068673881702255577696265954280325720840912681521096028848335760472890971673210072431982049377491644099893398998005508968154476671387756284125729211284236266143560651357672311784158000022115853128048482532722278975706198408346857445937957064334426710136563606756025993276915219927663299622539999881421547820550289090816259963879879625040316626761656165901346797468227864165152825385881432584185873008389302772696929535722240523137966979984683496907867058296252578969046320623514413122902163345733843787246631389508255299322664885477703117891579675958820786290705862539039632990317617851195496617003888374608376186739537208485094682343883521284812945744639585986006513491827437288873221421625211608487489485954775099678874450144783006917303652188409343225362933373740391235137046425606828196044830258861521909791658323200022073674027477065436121343471031548383520125381253478053629466396069274634899879304130193160930555319269339452256643648442682146674335483577289351739733133612039052195884736821766591863095797524510962879150137109992159444588425223394607832655158136889284819655601889567118058451194563827530709075570955853044667785898494509750145579656678208696539351804197076704273783814710454303144406389812926640566271217829959280966998145413454742979750066442474161176839856355301205485440397600648592258445295457032087088517885440533387227743404161179738517047327533061311521553114784276903680207337105803059001331003922134245376853100362167184898025542876575045445957973642826334619514870664485046681124952761177189539334541261155088104592074234994403268581624658418893747833546664585715765398806046345892978596441062205332495804500802334260620266534620214572689068436618630255984464953818987199855301249430592379713170827320357339754492179306614580227566230792129462179680861946793738426563402399524822274114497105852377104572569872024226799177534785039477436599376768034662158055353976603290918005344774741319789686958163094168534202643658434767788604907655060089006081965400771834621604982380335857241925960875289950726832284535096161552311288409588947074492985736527867931612102728235434749349050765504873066067000411348565220872662415558464468624004707093763189139139411054068801297923316418597184646208032038566628363065675484127620945371769055474574141737326817425364058186813388553315545339874691381177450886599099212163946585842506901168238739517919324191965695234046688302196489983559352108936220230480093419604253733460555269044652802599290041004007103055561339989552155719065819471034124840304085071000575634027601539676845591443633079433783852533543190701084831183226806623425390947679098569534710859631530530443898735862356511353355709351259040852329851295108969410976203907765417140179391670771043208979040055243134012369453319679282310336482504260566255430750532378441939870563233563425548200568845503067806301646038970610811493156883314669121209917757954587579966916024350750012652550483711737954467173935719725039003351961844575518184447930999736164541221848001458472802845609909198143836163872212925382048101852116210224774553430255911068665223976069013205498413368924684049417484932837387167692434664070863534342382987098824316224764123813664841250776016662125441929432427016968037854173394551201604396957577660006609818942693101523580786004751732431492991722381313731346851660659689552918680569305339590779649109886483969588066521345115676596104955411486316394389619811540891603661534982686055565539333527642970665331610966113507204207343014802305745835043174181832209156587338098220860287924069425110781206056412857077717758848033575848370463108475873863707270516539161417081073023299695389983919170166859206514220345757181478566507318536579586243701556367243828121428223535057681832648414415873720419799135632331235209723077008636460363492661037922544549711342941793671812421515528305315717704214029791447661442405411797559761753050311433050494112717501038566424993253434301574092689977077951530599857507057085640650990559526403197985029368136234284940363141174092592447787349995626601261490270300596359892670222101619400859784606951982235403656018067140874102815520249637975185442540585420496356769437285150953455715616267959031365040052339824941889999908412121373995094429970054250918684621089001508368318867035188404135648506388618444664724536675375743125833260964655008503965287535763599335317688346580363307778150461120313103859602618726817007815675878597245741827987398347429313324589298752382286580667721650611231749007041749392278767936731964630335555294093323728308270660490924168857418782993636692648512361053531969797436635313717780116638662836806915569621440171665876204569925538500501789533867329670560077071790106788937225403064113615123756895932923700307402182103580449889329939478372351965837016468303687636598649169893797638747843590056226870229476611470914789958629581646349555576828115875282821786858696697023813994785357004441366537122571609107055625469405100674330837685773759967961328697124652566255187136647163751861862779111836628896807173293133591639748477880704228794494525519989999856242279726158900534363902666040356195799160762742830903842827128079693107265727941238589059045575395114126208075079928055004260046366354866710480111335604599083090178817487333584245379724754743551345881470019923199895821792990994233509040199961234713424645251226543283577728221240556254259055492273117964829473602133648879964707962131721661608197833129733970670410053088156160302329059990762854702661200981696995890326493199334194292341054225997657253211211208753806850338147479536858612094628091047484419036648513390993397275821239566129902033653157376506164460295019434966812870495471489282092938477216426214859206074798718171452750201231306643177407746539976976058895485283531472259660030520559036986335922396125653926910704484237378773320841394978995101436037760665573220572062021729233563235226945392196121522506492870602286795056333573666941366196373710182437495188750966327146168047959307724571729576186807243192856701689809961721357133504568653118738649553963545963698960123932622717296071749422691634040936671250414676463712615895370404270079287503664263432040218499124477226697391349830363899800454674395712220476070255109126489527419054166655277401529077874708667640566447633553183542076423112022874730898512827569304537067861314001917954395991577667627385592004339214439628974740297870136492442503148083535637766181934866669289782233308526663281617942852756943328800321826656979220922180095431340374482958836332403763736933303739260735807527925911463499475489070932850037397204215901851725489444660931091561567539268564444471135160318636239064243451300406004715779507571824420676038161509209884009741274922756216714918380339609231090311617340590958859392431194221354036352501475652267478992000991187490448986642067408341145060321378556313189140005255779836806559871736388106419170432861871438501430217392126107893606476877241773527840892027152023604913824591108665216747437969028842260257869776123984701011924580366970639360590612952851386442785012952576521343916768692860721682579224090185686675341968587261921450848974877069693453819996889808342056336588124688439279663215277567807783190184768293902337331043936477514474441802634309170999207631273469818530570831390733488162070565438509858217735880232033904531616868094527606500511213555301719351176237512566952428578517116042982765061470491307076780182124619244502804923768454922737070192723265497933691783830212918299212972711911831555019633585556608549349153283224737065970644778327059067417469122052333061673558006437336854720407963500062127266732135261353758041364910840722428451844153967768359025248401343680723622819792925049787606065543821484082615729214581368089578962883567673575511705594126929995567041797352670088672940152381717040641235539673529459495531601381573672054420368399843558857203358503225678201894660707796948697132237524884008272613525846928382113792595137823008393854419967156900744909981506998734379615185881031317573245661271895745910026769893083906285951907268226391242008178410588778265214105988852952957052585733291946664204188118744948130765398484578334870605588242211093074019691077429793305323709842066381259439758767153320647475718156525707338715002214114220781284697040686372933126049655994360689559049363875365968873809753134970618081571281160665015257761863779913878085414345321155994901822962194036291618000994751370153075717764073843955853940792395305027536429613220046207676312454482539504762335717700183568375873041666764140324858849019267112924755193204325757394902578456460638087483941292193485931624614625773533131278127028592711637908814930218350884239064931138904975757085891088769277328853496630088132132469034954528878453971590643485341325135548532705177054864912070185989967578617899834976296825786330477206697840507123825693818531138582189554821430750434628965817337160088555977690809271854491929615555768607805081726706761390669204323960291969795371477498328483638800696557209643779679560160870987204872883306472979452626008012908396335723371967025784904428692990696349754177881990913735597648379046466082931961944514255266757497924321682780428703824976692786649907279492002370332926128536305427764086099149662879285204800227625974524709502408121041755303608592279401970237358812745202913667925126724682495719536429786976389275480751846959603004173821370289174092366788181745584520747254998570206770175403395133631959614913968521725129299830126153027808828860423514188962271621385453269883326894331704782489177336471504401696214586094310830668871781951081490780141682143930163579292459100679712183549861998497823639313196689536749605603627765291103274891983741592134190760436602033462732477682595487570307946343856370141456569309011998216943347541155394905572676155887704201288802875119079022304927274362065776143708950733617757312850802800622206359762212197197149428379988667549320543933128939620956678232216023030674781265564541496446149722981024827603476684888677487118780172971976778848484089764016158368679459990326901533100475165338231921767721609063912333429647515595971667222870438988088909365880248453541135804373669190341610927509224005389070375498368019454256315042862283793728418808542941373046472412456412131036037038854993468498468365036289398868419524712854263989861310297546896014756264607511277667485255193433532067492843961983324865601575270296459525992695079154785063406503027594024055673218947600941064987161629700161500417984587793059104563144919681370637340662550263674695914251310893704504118125493662017948072074110720035646657682731115676421281610326791622376181953402604527254773071221154870338221230089346631482225391131743937336517333296884634089975850677962354050574836737917197945604047201395004469269138909984521521542275108860144501392325467522360773019879515862757863962676796677138175516556146524754815825065732841832437283393494243423279426555952719875241044926326730452762415937679715021280216736609497258416207973046894976809568859963856915875447889009194707399851336084758151914257944922685905168741508723562370453441587932151936428009251850174498693308275920285513822984255518044434815752669886606131015452858547883033470145590863335171540353064417470283125947184478887271198619251196546700980557833090466070942475682899947452619207668371218582860228472702824735234882635929025104964383941401605207099363557130641698448261410523920718761406196535254291092489281796879151456950830101532942219267835892688139275111646011177327443324949977688144993279931992356912631739762609950338867446758766569374617813498442548378354481603866243396649148157635629844653014721427720386220891103614904348675570225810210101763290292960016722971075717224607676789752589388353398796693918965271665764427762709780602971305320755223150775659804418036216095129639308700765896260163535709758391467652808763011659588978962761372638993077809023993561541506836065945651846210518323450592802546971249210182488938919341131870306376605443310436222598465385123024845137836187734549440392603542260853187068075661780533560464631246804220480855587045517971482369924332757874664384743691835644717752277158723967021710528647248237327328636508261443915843409908951832390535162263841880981137256845548139912506123998418500648854410514629262498638120247247640796438996570330468532069925047646868626396029564746488533961670410630992922002516269207574215065148853887041274932172367126011750617637418092222538599063355249200607398488396029547365071262954336035243577996724922601592150747128304590539909517974529729846799771313612746657031792840395812454920430291648481555618846641271710157032975803431902916136810592926877613507477827641456764834045491992839098636940469477233086053747062911705164617983388184181868566690542137030230629217655148934103817450494313026417345299746751787294697258796475817219699149836823870672785393327584487268146897184100357161887037723718534390542355301188648381779663719199953109177956745662285955133518976312505091432191194917012119342600774564778321870541653891749146580067774441156158931312480348056029518248263672763938082998408049323416680894680817302069319945455831840864868519730418861916292106751645134788100244339847840587373200481307290170875347090819654473284161315291716057444255857045763201415023073277522661297849391821975911772928146801491232379002469091517735635614859143005016468659387381075832303147470981731440716491825734997145441424672255183254557427742412497131835634692962782658676016897831629168055756928600581981225796642642353703955716352063214732869151006284601621471767661530620851484667325357999621713832279921714500285379153487823031597021722879240624541696645989159022863115774906837034308984704702221621188891740671199733465801455579686170425664171139404360089227879588135172430705935719767037789111059984141418520867263156459816599177929585330457888241330131764333673738263815802423838647266258516850317932385221173383075308230675646206537461505976018609949202157471078150847092763519764067864251783106579810169139318784683048444942710908619913245322313712961403122157368770043913019479769624932934992834424390001455078917005214923881494223747041595043110065213937251893259885805296580267011976297286398093227405500895581108520961539809623624930066666991374543120150023554043750520069232930801451245355096993915423495087224319803560882417514527401286045862972348482865640828627754175112535893836512364994923477540742147326527889955208825977785389657936468802756645495075138612919880895027239493847087272182716903685033947956336742167228607998453663908017773600949555762775569312787116018245654051571592365158708978418514235692164000915654590701310833089139499692751741242893579960636965949908267742405901648948338718737339177442622383098125877425837696922328272592204165355666359435207076020221898329645717854007029501119152957071261953485607894175892011183566532617875445857761246381113391263022463525399284560912419660402785109698994336955097664493802624462401525872611758791719854402663210398151745944052425265646128735862735502617736338563234583024299168991138573187888625112435502643191808279425063237553587749460688401974340436332049773644937583184596924215213500527209693249174429920871402031444565835157808095235635523290009703346375466486561930783613932175599320157754924088751027021376427865262189675149065738952628086594343612179935748356214153026749793568108446573928115026460119842036425201450749957730746102365407136597659012197789245134255677638123356800603712046589830688099194747721801041004933878539895302103464902484574898904748078520580036880742644325913816683009286283708700615540960466230122163960879747860449469334938958863412886230635951881567557597461190244451730745977817022925855497308250470620787486779094335109121763924152820916694247598585284096630904578318418817224609961960145628199104028585503804878252611236838000919586836386868665781369873035636807047414717438789191617376085112354988695741634044181907291526780141843071526042007640720864732790097162593970650358604524947790296934780259998168722452932000500412513117709989752592374497715245561976972770414621854328967405192421674912743241771104669730134761083617072660929857891650204081002593357430376216260836384939402611152560633903454229255143987611624617243861129529240447227657904303686058589121463788573978618856846697270814439634979206117147914211497561870170971375526742372629687670356164239895073473262009947488950111011934300961796797618294862869286391608260149451027598723765995020642736229056153855314523606001531546267553601412043657664620980464560801419076075008426213319886110084601880647019609770324746435955659993793865943101969125532522669926929873796503082319529810016495841347749889973671960325587022279827121648459943863354624084057702027540656246063821094257292353578060227499291031895475887719829589768525243196909246169527823278636835345370445488198167099800370519370666623400949681124969034547546072650784439593223800348845446831385948827542117431949892165109384865608239835466853756037865409829593763973593551712505605623408295640540487399918664717345047168964493426062838453998443324315739106201379169525570102702538190291932712778782695490624711538872632945553498453502692135225906472286654010074208481905025838098705934316995670179949757229593785535278867304972227825025213328042947381193180120373898064706452632299693559214545209579217911050864849821146110645577316364419758930305600686232250843970274327174635061891265742983591643316006126260596721591104208127397837165063316290977828237887245269043696425239124824445436718001350030913981422013264611787410474747696200571466197181882658894065966009610421505622092845794830415025289962878512541988457368179839754563249613120024154390332319094492115248230426704098717407639120615009155010007732219747312902284228918224480587274365273199907368683375664552441328858346153900725922907842584671732488237749629529211104640901797741182927237676111868944173908727235131746460022479889174253867165679256729232150931758541361847919773401076028873553223951569637815303079731745845440613793652888402905842247863192178565609860134604705626577370366866965607241899264791448908863713306998220852298280140373364298672423055359200932803576632498318839135432737977840433337346504100275488868881288634627320556176889979204435919234348568465207177717980557159283315605330162114241594750952834872305828570103004913688843488997990795137167242112411802965277926797387729638716832305574654647659866170023961645632009852796190991139007080556600835755942844152777499990293989386758051941247204767150178094497151141391302491145015040238765182049834441992934963858113831471450404568485278874623221853289328362570066120547445015794254105551052053826794039745810695419974269959102386121100055704682494146946325701282185748181730381723903255586099007311180330098193374069386755493206531344199433669453106906013209675475008501664827534603832813575936540414214335882917961615598544344420780800029573705736089476465167192715616016820441831455105222944678471349655728731446803081286530608877538418165674560579920390523306520084502193545295710712563339607182697421440924249612882402512821505875030335790295891722756030221877377450410057407530436943100979287375976736683381932992089813669550037753851031120465637690365344548417789570230281315136113607429301574737687646615521990902205501093616664095529209906522330325071992969758087121014719401935375629807613427486731965135330898025647025437303600290512257997779429715948311409167500187366322876188393929203764925958577548386230306991285869984442384752044999386710647038486552505141455711915564646442530146076610646517349791190495917623398309536879570947807692631713113098393414661924414262233274568168179007158987092058578733482779086219246868346914172772671730455621511229788324847217405861947481524754434834599531516966531506806297101880397846531541639431962400814034142481037057699083808402305846414483616003994126927125664619798598950337172722337734707845176912172586224361753888865156483718239826661997999978375620254568707773904574896914722281073199658152066329849253095331792038512566717573518732841843789065258446535057907686239697712585137391805994763925985466861096660716324241476404319877686444424865204998670076815082004095451972879797634403876076426172604889782969075450225776769178763432312999612206942090653597019182704482340147497056067216537380011222297358470046155686586964515731023177453826131906702065059606264934552115288404312244802022841487463218227034295884245850051525789670310266215914787128465910945914770047986150187739198800562591279324809475307199193924512414928512216508612934387925655623034029665696386707140810278592748058813655332597631119255965131469764448628662910560263061044031165538651946159900569941304325461999105963636413300507342238394835100964284940264237958799115597171281217281632028048178336765527247074332020170812742360109341838358152091210718566882510459487135056735911472914683400801140592272482470294788038066603467663164579291998329175459133612100797694481145336470332016410421035225801758365305272674103562397617276619604536338617546318954836374628645028400956392038252784562536193323959852203479332719667400259066197120819943065726508455948645239268781819811310135219065127169177921481897724462477632563330217372245483840656894505783810982070926427095819362753331417539067735242973419871035721478158525304250308224464943970231868233683596201255565144170607340221493063074313277847526391309000659538225187371670244647758240786463911002481100370736892307176681144174374279848942866729810474112784972763441086107436300140333273084833116865482154768031201155686693249199394811880857422290396440710154562670878506418393600533549973082841728659739746782922755358037139980302591714384549865303088646151159603440400622230016667808248876808438364498890387745345215208701542421699258886412227286122786761722466786145357118762592479181172571194765157525586486491644254364873540395961954480850879912781432854297387172487693699607445937395983325965664532386547743764136491227045728041220316292722460109775387994890566716648390129799161476248066540195139131638483999775399186431063736041453892955737258281642106165862684662856004271822762361045814378898966148694704531702735377042130609705260157069153056145063059023741833719542749007528475751512531809760086749713776374488131108077213725979985107545253928024820303889807400169270062313609449367639221867683956641353910100891603384175267585570800432194212989229175697275131962835959770351347621870468256772373292632753361336791184021497693238726305880563097273114891750540764822319591610424696198137784352334141794720592179939032523358106702616460612083171838322313193056943696801298033793696340244450331476590593608622480207824053807525766358964555110037461660629300247661724494758832998652403413988021694775969329693494090547695800957789855201313792578017372710849264668729743309172476815502213261540559858733500618831494312988555362508778571768901675218423431113547512680965925015745536838544770120302945116675087479938628440930933869062400745896465550045761485126297994581402996163283419757542065675510831744037911645379026675191966930749564453370885750487867827891621481737538433691938423343570326670778847499771813374567788252811076116935947989985928728107991780208706863226671955873355486464348169015168844507510108736238768933236974393193966545059090185225481361486030415227649705097938513473995974098010212383442550992090374718689118481307704338840251652351380420352577819780416235261664717267360264531933078620457745071709492854532254175324407443064425395542095213927708982910615500367848366015922038525056486366922256170542808140224612513694803853750967861600080092184676953984320887924024952498532189272514499395823861830823510972711413787474664162884668731747422640372003722125950626495634449677153065683403092444309281669222978229148841503736288223150517974026829201780465222117852363364156696286365145849384716036152993005618032206337534321445475637050833254161654009466730791429669433844621443131211767392350372947667303376346635616288595363037303676078376725819857329265687451328773957326368901190439507203098439527948336505185399198775676482751569881178896562953413597509019693813903021701010768668030048465756519796573488538083721835833078219915378956395705812159362504942364323730017171988115681637147263696687892666381481762074298755160702495424156365944217720001383829589831280549213733402857925123928457943899564808679915088508817817260142238571233945237448869032445457149260021692235297047420080382051092751624544735869310619191843124887968370288902532121733464278894775721058299173315090158508897958861278568724905633823428098262419399410876881035352496319427600443259616374842536274853593942447296221744352770969021925249539710860696134677869276341574179894746937743292573374296875905499698467442836367268330726346000530189072162661603759935198478979779468243558871821623401707888377585146818238492662455506886004729858682443029692932521062409126586759428782450904620958154720983458484647395183827960577844860406589052347474453576092283695193897647566286199191854403014640257055985172247609594386993799214955909807871326306987185487465388906585240232510231716409709225966019381700979424318618251649798446369737992453766242071224613180230159385198193417957094257003521046869459877584632706656035434300909433539967110643996439463841061349895893144457457427771245712340647331123698688641203900927059471244308108053911268329368513308415550079247881785408766301500882248325965630008471932197074252501256874776871616822801631306549619610734930788483918342791178069980208774163984195360835742942701735688786204338949930877369022851156127819580677903764646348761895325279351322471188139683627006674177775714812658699206346413396843234948795730741977444685183569304486176564450375262436003890931318270661266819706937483639145069795751147639266408622204051551965501054218381107247598679260196091470040328195946451694777601434739166934752949188964154159271178405095964470567367567949376346359093815172716456140463726833346934390852021228080659663599055718530272651050735648495883745476159592437330944135536007818386852435799182188580853944217680194124903778229231825699592045089770719058904319017664021603396496738321420902243982047812223308312989804386754800185900853893596964568617605038499296776917498087342784169825767314678462291375535270412791041443402692302694795185621756245442139617727122309272997107656660067131458235693674472451260873639671184149127869962036751699119035481785880522822736227011033185900784463856035368560983667735549202550089012564103795202945877694535950342736445249724622394250051283510626249063753658691551269630625072673043037117575327101745749978618437868177491364401620628805248295996521756735521383788741327987616200208850944158861593035887604781804261101656994792754421627497090926866623599485399133179125354474667996052847900499667976888214094759392090778108560242419467255940054227808963991017188546618257128938801291144733325182077879346814982587949569613191066349494393959552145827804711357751943821861099106108192979651276601800127644104890375740525532441783541656328432881692641853478681991798346810043358386543609873256197319643088907760218697876453893768593013665829808193703748991054291585533226476753914480514143412311047647840684543100923075115713967378707103207150585480828886510686468605372318284674962545216314882318927903044982141125069809411058736795051727669154098389839837800165152761812309681536494108472209449585306259038138176564882525376403088885364692804196425694048793210338055902486925836655355509551792464812236830462364553798271595537097743436634146104317877951734649913001661781055347673235385322805860445853429388900192000426050388785951459115650549377024872310791511764027819434729076633622843924219163179221983875630473917564008522130567050411282957337478553136692701511265577030572234180650415924443101936338841421374124947950097162836173841964641353050338209344872960887582042551338143548666933466782132564432096581424881556158773690425502844197551742151552405939368177890520073724683872773344780790660122483072623829441932321353398703692902653795815206522773817039109707418772032097586319969907490971277149374219122664088752944037787453008755898490659064826138632510009103632291037662013411060708506447304850394157606589610310852421149953706753273078060240575372044296090207516581676026020887357399928914397801646716585518718174959942078928302887489787486525029897207180158264394627161610988181290392051476579197398278370681200767223877235450156105870372314039455267009398387403205156462208385483077684396200076836368908168635093908034010485504906027453322008547465223517206024293621573053161991585756564159417658571276799075371074410487651187870326064790923453658654066579882751599962303556605294812521229365357875130930297864336750968146850174201296169434267236931797642787755404108278928497261400484446839009131327587575950197683236525341548573748438495866311435803469305799858630356706796604409812691762299694655367560559563838683111565134135457522773074998789241214034620019261338466228283600954604784259053227507907819047110075130608660898035088336416993919616748177656462543690144767467090465430812261320596744549535601145927146017175343091091875533127912594020433804387965430965573666686851809498465355533091595302260620774727125677737458603651984651638071105710365164346971183336694191110681461310154947562293089144612359498827403108995886005418266002653591670039315311765486554167188176483188067024260855156746157580078693646651626362894589594767622968521953980800894826145490892874648539971084939894865478757511391309500287231731594937185930173084843464221448467551655538562947414651652337906988869554884525432912869952017139577616232690225639066821157270065555014088341245371890258942068250730180404709946229095586353549401741796219224712686751685647669927413499457928230713617093854574932832769855873808003541823352857126402812941553202029695626318041431652961647796649765949896965783852763225412126967340624918025016621774642215884579866409222073405034940830944272575082520500678448400236195255278427965558935437218438392587814179706941142517462402067059423254324074250433577481277088995151694892089496011329985872551189988259452444682393777590169969475339803548688369449984125906587714921207232917627179575289817056272476287000841400171097407106707267833895729912375039988631366327117493315332526833262843463332947173482231549578959880967850841825708310062552390671989973872837824001485535287215488156370814490938142501390643757291162708346976661642144025060882940327139365912707681701359229621609178718025692530761571684042576839922513868914146455850418309569823454890045932330541149843042654680409387785804082118434068770266853117021007839348374710367577092684431625160000281032039859561868298724465552222377468813556358716268212956292787692401535069204407320197581575710717630490645747879142060035059208728213811034879710564163427546153383423244429153776821089278960957276222257017821813689442796572451808510593532261611518082777865237978138978524118890181888411915654222366743244049459069837019604190031201751779442090184387558475224692622369839839075532239497574968277073979730230189182059134205194970291469623827211370949048927482807238852996880567606876394104359428542243802703137428023405458921826496582470364476923492887419453387326200723931325298298673795787931630891142806383798381676258572910668631130436507110866851944985008711559122007536914637386995881967383886303295351832838442074354155636345346817881352844461531365888225364547732620725220283933087826733045043536346716827627727242862998331254725963726161118239704453683200647146627584837081527593570345893384468769646413811980833259707784838522097965032803198746018642892229219358479589344979919070768501656508045404562354197423329724546355779365496524811780970771566969043474548845604421374274438869139511325601248884974000423072374303119300323710787723747140275851954373033809711112586909574877478443683740345359704850482343647583127851753955071647725516774366475659734253140348315006865625992941690642335929607912893071719661325822796968539344376216846427877674294057541925601597805836665586764012868536843117649453430875928974074986946395660835678651907753098370834025664520453312104111519086060424081980918623378196125690086496579488637307407480198478280489357414951770126042732799803697461357338828202501672348529847416925921950084320937418589757998223802158795421119392058416160103850781695657594970608094043608631946920845387814236178890193321328910941491798251079129691164307217337953162742767014756554792224646609311976141196629956306180917114418182522723735232636353171244962621457225773703698737384678502109113865167567287191367634142999016686050148427830282985447653967884520434726276927588578136640659449460536251729503632161211180752144675041587111024549338638736550219448659503812304153941501343241966468469623159515650498362665304249051376548528096727887393990466156689686757405442397777557780658390309881753178076686898512686513018977952049451001926520000507872397688778564688724384481566581570769457006428612124293079877040446891395986255788456695301801861900879040869109279456223384355601238121876395544313027091004065969298136653053863960905234907177444861490811242958667584449280066921277804247909332168531567090248512582159404213405733511256416292570912070596805172885512264364585817176414326612336451597274510644326385365294519934134393640830207477801382914534166178787776048979966696697674917034363234409582496126666439949411334958250265579448656011045717209898341889983344342322651511621358183273713950039427736992867973758764303994567475284706076907811756378489174320863477820090994929939849703845382221846106011082898760246285875125081944056304773154071780324932876671172515723400842814257937989746011359692099487506294931274598901819875614298897089510230445436076417686689801977263836543477753340264437617623441656962415494671314615564668787431343394901922689906483426578859533571336338829158580554551527363502965471956345876454769621374533152897101887979112356733253960133980036663421336644501799162244714315852445612586293320562463677023449372915993581675771624649722053514361075549040071180655227587899986270403399790373757851431449447562303625524641255800745441983830271227239958135485039207459928945559844743501793097278589121387472194771877141097044291825709699704182673270316753057747642242081220045932689124191975755524580725462328257456612163939343315536000357237576835750306905916863183993542478042758007711282732843486529737642533803363664617738418021455402775272277139963122174525018114380518182080472314341452646148574089194672934582160742225731705566522022357514471712305090435192643664602902914288413555629150152082390988950637150903997103216248750428629149938344109036901008794811367034202618934400236750412990361033199161901101906084554085598159563986237306049634826581714088944806481898784872257701542681322454198239337316967327975222409037270521186230909338795993584922555142068527873930106327704979482189227167120268722035516118558363583534539390752626695797565839511573863913906272070076165986702418864480139944939642327815483136327916053201130498303024771726324131996225437449115937251929749459898409640563261980798813175554018424540945184498199859819873046010505084739270986405226696089392052202755774860347333781247919042299099298045235365821399237177344487152070801308517304025876541808041645095038086003169657741146945406547783140508559048639469253541161538738558422386716888313011553629500455420381884407778952517272510895427910886980585439851913400589506227614724187720013329521241874976730226257911113784100092613387331368314717993590512942243055986694020479908892561398656498383573287855333508455834778169929285024795157904953363898842565705043675034412734467795977816006689877641022059066757831833224240075826887307924234583073542818256330834312638980916659469816158930797613901355795662310972067036337620011636128287512242125489533208862680891482926913567851712879442976277518207202194261669707140469252663905940049595890629258335969244023861219769973235505545602184473392875792485343209605998269368480530393123162142509998116764979744239111114371979576997856939602627375863467118274333073580569597964730935387967149045655637202962733831481552773021089900277875651554871903472960743224819698646725243753607875874921368243191065115856387905105332980976641585516905503891680207015561676972275923507716863827971800657090513566232813270989187015269631049781322436318090648542350392634829725708076310493050028043158150631696153891264870257820730314525542175753394269454059947349299658906357868681081503037150896520680454444827599010929907430675715138181713180457219264153307215680593615682364705588264814580718613895251980660202918531498528393874998584004904967472901459756609475267345102640453026921904993962104658051401020283231795824855829814688792778542136414741682335228206107165549506664512374687713179282693599841751509456056747918108193644189978685562780133852872087995960903782908616939181447902646682919469405870389890049333429245707138870448030627324249586515466159973944507759507138739956596041855533067195947851393529578248261514319764136493504306172001874668200942459665865652819694539284131906776964223967369334469702913548277459334178209857530470509522418905742011535102177658468784818031661677297434580029967117391121735153092778752221173809896302501346792908297364208758597721550495589300670594647063579519335682711486312168003389670554558154911151240284452339257377569146232641067126583444296725080425463053993607000572218724933191610303095296277866307283838713944888205566033292140315385771144289855143322318936253436123950193533354182814847785728237894293536818878283922748643642847904117749808832360589865505591782101743349214845836349012221169623211396512304324774776189503106718335479092476644632146777398886639967112062037687567382565977459088428750475979791688785481372296726386801255350257803014530612267173258786557196207533659798882435857186290204406766452054607246069730921676801464325477633967230030800857816676517820474578669933501122050329609430898252368013176641862416567137183988385293931508829190946677177012769150546212951396388368835605273737171926607728370991408732436166058006848547451585122349111501561485597773968590495446047899234466064777530601097889550196204809944681347476689887880874311270737025518901409465143153476394919666179935726860949838639514095611518475224445215000963240740855631499735156012104072006094331266673980098616429080707237373734655885528531960216810470305827502926480153964450626695077048739289917997823829292952193712900995098285141309380974185193627203403667393550380693386500198466504911574715837839041356011557030081074585395557375602237513419910142527419554903715154442670742269699444052129046378339539810015947549342372918431833542938916721182413649403263121513153704950439227829111888035330807933616231060202481314257604995366882513413667370824884386348720182802094764159643442234542825845211573395418061664729310588592521311612052763955395474988186819178381305783783547829157706179330539682100592485810771954009121482809874271855603071475629989507033027348381694810144227987011757069265106004388666994276600220024988220430821429313706888186002411412505349179218932516556037369964057511203971337887067640248534439977990797943331675969465711379833148171573060326820169943505992215261260310975176696551826073642159457071546371402320192606730075818056070730898893673737876078719800902862555067200837190348628888356414337651536854679336950849379961655524055738033179190312945931553994195481496902286572142940660043465891719765909829440584646730261635173330739685737529725428542388778745218638279676471003442069824972098398356867566051528795896729926158789980686511464040233696503026822716716885717591573913478749386774689314075015434245135354811754532741733249956819358609008437255430230810113739223294099513557912009595167577815852443538643136202984079937427083129711922683089786258806856623349357964759204083065408396156323873806938932827350770404938942294592101693276141899027894530840514119124945728909395010028531537200231472637810963046459178953721208636363253701489357524668626326717720654054994770214572250575226710745100074537590840284401308109326676240293693800163197655897305444401649894573593790093548734338755943373287503773994013773562041751493819576032827468167445632588432505670457882269670037558726263363950804534218919315214468503808028966573767568904345594554922539960262823547543857063855704974810503102536831115187573484992779741883804093360530944723816491771438102575553086565051364425573630299436194991648880797159862541866142973521014844440051817410567309485356808469715052723457017496482055228409946903839123320566299197114193615927475958488575855434294113652970053875815904635487059954607703751862440820894585832810050066578331843219157326543128091260900106221126532684085111324837326086119598698424408755096824970555526405156554243263086966027833019205462567131180289211243537096970592921652092216153542966856166041585120476230759732740460936543837479022213255048369452812824979880441539756030561673488090745967201044178274147523333030540843034845969240400797346798199651024381633975992708916086983233898569998252138679502722707358058612118366143992424549168347189199959804541429111861215483026293053202889861157978115387071898017160205842144444726829934603327862089296088126189241852711835470815435264677942816262368903906277185388545163073559123384394103870059854347039500130574996792762611478015921291447194250071730486938989896475765849298683749343807497866310360084490304743264019614398892764183614440620378037433256937598761315623187354291263443366636290183685125666010040251979429988406377291809136395103377877435510689760300133694685799496980359479870838170472940276587185666499443979233067299780669821600934867278703931681047794676536759097850628445878131648170635425107225732511648279830627217299072241063597162990385122565435016828935925851217643011227431326249830901379956282128913835082557358474202680468355588676168168233876050364572835866624424395813937791932380354496902973235372754274634409985522969809193618145931386751215790868150017325634361057831940416076756690948583445809968737420189010438436561300391537722446664165494961605487033068279071696874838123902587590352069224535649937567889453681895715254930916038707990601916298246243804753589735208208243061927658363942666212488410785230536838618850083481504617213170773078185268569353433611855439082213162339249495163389847175635992783709986363851170497538766371272266772486584914310745751737277985484861589305773807156345146484886285001322930657747249791759461606598949163611889842791262470524938065391331338465277943958136979905569681796120848096263916314662583402967162456864629584861537255148032806328896317624058315713398115792374034687819922455082248397357698412759127432209347850922035964041263852269992171445998041154343949657063198770000292755749596797561951377748613426239133311363587439430898245718728727739761670798313806003249413183099559863759839159970507114632155367259401203047113505296458109012895230443924663243338575786606476043261702172365295883890043760693361717887619512961228802887642931529238517747675574645690029868197096143614942176856759633905188436234043529034123775861618322469744797452202461109550252575460500294549161247510324939775019290244501514952584816505147078413683746654275073881945705131458155603555687631844313459641654793155262680383617312827479776045023031778546137815251001107818242260790098698510567269797824659902847634504544725523147891147948971562338351083179340534280494906899073670207337465047156844010956818265967693236346229958656978656833208224057034268774705660285513299031477275828383315226662979256198463368355314398459111835152803768500423143445449565494325068885934299094643527964905424920976159312399884737324414149147682866882478374810900433961848925171333122356938199434889670337642774154659668193250366281705297324275352726277981664285995235262749208390306157875903573575149769409767926399912467262001896736826060806824446237208789960324224829490725891140085291006704525884274039734453567184844764915481950519606830397892373579240506901626687526689696081582167623265691139071941110844862350649643676724330612451380241190171223940946207649339791417996801457977972653521039935488806182424246563135547801338425023008363350016469527174263447824608689249563054564247536539457575773502522523996173720598469110953715031792902212608276483438080455567739048007274100818939354271959158833613927051016295871634939934936908892427305904189038710173389283110795182431621943666700227335145886784008138370655518177506660527139240146626140620400837066405614244184400790690763670528336372017804381505863809710728365761223281925713252915872957160656795670579873075637508972913276470959389345748560383830262938231357543617808783144436359415159372167399161997675529384206324321297846010483108939776732867610194650586941000551465990093755842070009812837138986279462717725155674702285912482804315177770603532557197009073956838199736252463117955004542808226863146618079055630722390017571018367970907058088954284004326393790905052925083577973481266952079790914586464352110574812174573897128282404860196407403108800793220584849499764935859996423496277384253783909612900550484841527198381785927372813196217897970384397378701371327064669163331431255759707090886976404762403585234330708239350966935044119431682696435569022378514093781888028854804851182627516270835469588579087983497603367973111126611221809406129083895172053228216348405202611389251903873133463666220488843339778369274280317301562264031481446941674882993444570944446330348354216287875878625701524137591860711343588964990053300017833158652817359585032067179036872750164310755791539054164013871075163134580720530756285378962723379733844674710779685650128696012817307859335389211623390244689846525348922938855241306707830925447466625998583958856649866153104988137087764061703097310645532396394893407052581079919870111911041587586997429071233569716019688513307836368219352599980465481761793541667018178985470329889853078218257542934448385355668252768819013988133503320107887973094717173339621764094601394182718595178695441068364131090549525856534232851051823351125680009131522797979613712050213403044932978080365583788442211869357583948908027042925489405510198895587727528486183686761010450295253665898469457722815188942405626653559773456659901068945390813847518687325096594655844766891769840242693619714119113750306334146904681819888149388843994375179042156501107929281943196906181463010817612069459782187917203236454825146891465859649805326974105887949351797716717209603544652208107781389911750416334071813158122429290948994167725708231588688495857836634790924887536753739843132097644173359723049065065970593994820602024973109379215732042737766158201094965070371652146788751622444574755753843041651057166517502857306525154097802218015659584359334827131269549658450290277547708273528693845290127057092147520289286772730196828021181489910249058556697863695156604330250923517539028973385507698877885862536419377879691080477234939059191068732865361561312428272732132978233347990419348658267278158547294016817654971099938922905881145282965523119862115274530600953695905480950211272143450237478940317116751396127081727574489518688329043323278975733575214259313475285785183911876177419846188479185027553798375998880659519504957529906184560402731478380915114891328686844879494439015065395788983949152644596542184189101378663943724976215378642454153401408219925226758546593475846827753613075599829423314063011260586611452284007779714625060275059450865286352268211357236429934700756153619968494570780540321148153278757995667014178284049958625636346093110888313337919634572085343602868419268396165570651961250661391252564153196446245384514936759734318748325157917210509565222516983774663136544065320001164886932040896042126631565465969290333141382703287980893074684320694669648825436339804713350306252211595857760452514812937195176368194442526790139275424416903578784264852354988590011258702017523816904829349833575638367912963357935642299186117561854624251194878368465257169592389007636011069798557400252606943756660233151310176007751312234561925459196188487212236449511483294755716065618464219403103125475747420751056949389556012530502476805898124776939756348996104094988134262309780883725133940985486397803871754678859292568206939467397965691358797543771809971178459703433928032624328848100732384459022592560263018483214512070817948723784227413817244347131195552366912129225660491635568083019165884123562254293494845869155164725989528627560250752452729773168038105200550932983513838942730914163331411117015439304668645265514071959260590576632381702669523748174074190294015779363112253765968680347761284021238762429548330354256701132702715462294777889508744170401333571587502294664828800350647140523826196589497196948385987141617617193750772119599521254812215486991124202779763041796433026755481463782098606242322533855143245251046271290307417917667852120437243812351979386559525066890696749044737770892683968603732214457343797062774258643456043516252593347153869540789769821473656279245043953175268955498084904394733841737132442349753713393157138356898211138681730329712435668265842472899408135206473549838720256363344968480874202367057035727275324086108704992634061480377449412507255769513117693978344524724527515014615434685466978499698104975453180408394460457243829930518685267522158172045918296926321874728946370433543425816615581558896688654192858043537737212747235041650607199038456513304799508978904384505424375219888918966372166934784252148708297054666696495205685018635975368083170161711515913013109610063482021344969503614569741123963344336659193960627816404030669489091490081514056337962521787799912865547836447983143230971629714543288316787860475053863128833272888096254503561089909743893783824525589215907389369480396053751687601759918914549732869076610897936824732273159850720680961773135840916000374430349589051957253007787488801171544499033678240499316955265107171311723023413417993736757910549236757778189316608235796647739271530220314267812868191705598067690759173314600892134557300595699133366022662660595040489164798353945478981259948669823212869376530622213818039494159743362930387179594795938634190143484100571871830391414506049616152290858778224548548680620954721769947300529800077223185860433867747916179229210065282419270386540909916544928986618633885887936955542479541611931818237995847197051397791359415862403012195770060847693004626275570469421915051903361962973309740784785947220910457653708632977705051398096540721554833490557607323158636419355915507298936332857337526237236653464520346039482680377965889320524840792635789533842688109901790458367164187911792602290133403420480790067248954563395178980593822460680412149275172880850861896753566112354434574870366057547633178155272428018684127326553528673170522622901986335206035880967972258573978194764735121812131979882775057092734214371137527362102958990056546385619245823410690314978065301479170954577428437178000615419759163889720498904685509848127052555957998183913631632088241159604514209804448163363431411207611162658281493818450713129925302077602718472073111866032951295596708875872391467565801821514269204138174408772358464964023378770004726722033448939804074993872646685271733339056696384232975662546364148885534578973246530575686184312964640793388288336247002892845254492386229514139272287666207060369505795880341231320404495862816499632352449866015023259177127554127535954419652004089094049293361460215011590817583687032471714882355751218275098345785353424084559941950205073680125951327561031154472805042138833216231435048422412481706041913676696072187357591489920031931488079945405556509195914037575987238013449881725499245822312182644681461501206477991593123154215549956710453642535005780668930630995523261366862759606586220010058421616921140933005472163754372132182195899089384533326812145678215900263138316798515087301140904211185785237320904496921031379349812541551707341269177289864184540794742092888192197801606504773309814786693161459147356493749666607145193859118508361936746579770775330195494011905518508162407160237075072518115499305452895787471192806251386163912494107972643392298482943794149343829421682849585282331651626328893037736271115909197947845157704116210131457278066282894689807226203009680765826535688910679558231395060518476086087339805523836751907264755612097639004873803991944665371471976730100914709089153326616316167066112767311896772720049360685510071925231346863127111440692731446069027927791387018577544694701004437052560391438030055401907911880258793878559720257388157269737981392021299505296811901630278203313469006290332870726655218049275092030674364184425046539718850373010124415519346017029608565471891021766708690121386321580000282854714329975336103073762526620341199693549448742271372598965103333412575348970968789385827902944867932303107101274637787304495838610813681695308953779401875591137096084086041069477745055828716378220921758763481567778528828394515007794551628130700417568026202660225631665753425671654906071604334681832125285131666004386957197505332338202869065187825709245762038922300619136532127492349259380028165710625029048069839037062864057763022031805508433471854129240671971439663649426720304635218250321326502070549273835918574570378853968206330910307136732251409841248981701819368735540382789629354665356103886854393100002563693638322595812646453033778536111702014075115258879023522477242534424690782382518502079382434086646015324141615448769635917967890437510611083364974506224260259074201204824568735645889436305081845173121567606313487751871172077773973205948201754389695650358509566387417569619782713387419827314233492190703992459656693704449645267734198095262916995257251240233379833036363749207660969320809641942733043363391889900067577535922190772284506427694966015001837039735872907374031345192355144157730312244166531408988316059328790572073467831029014772988512087254360288292501688512464129602756451522426529406755599410927684752377757143934280683600257847219425994657566416018837725781736989335037900637341832476153657371609132806386644903466751209951520996570887225901948136404796125196979421790277203869956953787470916526008838216311971507606167634843958834745210558697199475511194654049746873866737293422683056021069435991202507831940809385567410270487518794581018058359867288197653970535355212418575848421472369755090608133304335528430489370820142252101855993114766551812677061627308032333156389800728502415918436238069321631484967325930164463414927092831144862024957534389641872153144493681076920246271457734614229449870586077694944477294575563866168685680572362891431656172470916458620426651731793574869395934126410383696833402168561644660037292221654530337805944935635464344094478375713983515176012678190683376529758203026868632184525767648325984937628656107475616872286810902501821442117143471264621212790184501953582503174641344622664076210237595193667012466663359909788016590841630503004483511195411638927806408771873377412880573379143293340699027894284376902067660976972096230406927263981491548199304460589026606422940941595436225237765116458990902833210088576423798764227527266651810924852670683718378534949333006371090214919653810025991355247271447432703313227958139949484093331245427879648522888620386504185076327811317924242000135120592107633508240167547811409386532099992839123663054325038626186379090367843940349370004149531088367442095330314035856237276757145995557039112738927077840368933376612566325950120582918229315249703178921587649559458753116490731204639650016645414763106028401245182753079782242316844408274974764275438414946039512786251626005096697790765021888400412014554244637954397240894970916458617164797019563704646829132360152817515396517102958921261418237669254081129306382750552541500049923462721020852553595017000320114608929333615339391094662540266521778313744775952581619736342959659407821436984576910278805759837207713716630447233164316024110683259426801134138052722542853470657181924371089545391916441349356128873914569998897322835928275155034194888609389721947353142404911639125735054725764193470916697379987506532443855881680706825873380938836592176086753766183117634700957292827635827346758372035145414948770696480184709843650739771435710589036814500425964256889571657066543087634125496587126146227193664552256605272363266921846900449011170541270141497681185843931309387301086484291909134946194383039586406114047557331263008257776158215035558673373731675609438605789743541419879257216055078528000326319855743831829970379220799163999914533034812772800806953610131953158718249943434309706874756720528348499490504781940141285027252052908632906060321381417260060582945117137438057019252501205540540252468738598172628198489303367893481647777296948546891542300909312415499446449417920993826769409339422567092039464576226304076460690910259207989213009766278023271014950743581049403580404131026968164938473594358696717357704717741877747375505110895733745811821863692845746756459661443137102803426676980640137159572325217102026200134013605056611352329461802415343685774842038734873720875475297368783551905354877570772227779022409864182372502236310734057229059356407035847573154215522804286107349037768867515131813215783723367971739038532388207974962652327807025550263432079164410941411375480779394736091119583594397451323286932093209241501192390151279988960803855207878726339302924538323644230567835781765914727016591704807520487103291732560899321594778266022951646905746987688057477918805242752920851619369988345844290409912505950633736428352087900706736143002090243235919878739805539807820525161095882195624427075876149161034893499566121699105179167274126598463753285430155594868455478550555552153718246840517593727768049060793833432400018417455078056063701912369146375499015445704005336062188818317591299415515531483613670121570320577384111211189066739189167387075996028037991939533060401758205973175798795974165198719985490255590464136038586152334701197519559706621130514881711891497982358270782934035841251575660517758430460922047341297394485534125724115399130367566917045069554320022664838232779195791809554698730474515249485832036006307368240549969490712115482038349257203472455839972150101673926044438733672417413308733963008979770566787633398042447725434744222895776269026255012451809401726415159095682024183585454793591380371928927584118679247311058722897604825111628074440919610899229183728194153607053837273995793793166203328777595961677367736593526835233386465101451286405901415020102372181409246548064883028215772123957139439630283799576069484742663995771457248741805099784889566152856944210445134739875473788580334677100607943456372548543838935379635035382387045677555217728877016411846053787404633774245206049631844923856875846385217429324036864057393462431526015557606992408333382421330021306694135066998172161486537959386757270592502612990307063674452232476123539202502297815291128057104321236193584449073022841757619269779427109745957828140924462888032222363434918133402734964160815706012298052559529999696939291031216102027805383900165563695435308616923202218116374736780605199932952017649855927470000516624522469266949628006199213551577343380461849969290317681130805714814707542857051517272504426051323059819729410232549106099535895208093531971978119617978142699405456884472513499696208166269306222332822818976633789162449707210312248019989737484734638724809266554625503404673116385661144176234961855439075845315904095168247594189867385617394431950464263334763106505052524075451642664719222015333687020551388095215531107737897580115585812598037574036753417464474473583491601728756776540818987324230534504593007587832600643910431973006397873162112500498550282707560557860098476146421091220895449023937519361891034295723742836838209070001357329224042905759270650122970481152717690178902110104346171614226622154442289162120383718727666862568947204247479507884425300978469244265072749588661045513858175692058720814325071617710362082421550861681409239766064134481039886456167556909104211212677933554000791469014929207716746816253079893518997236134727037595205153353066513059670653591360963533170792337263586418122945042564548580698499921447620222050373130483446490887622714452079489839182262760492785389733824221538979746579518397466943781177799474348422335219270432256483394032152247711262130885758700150292572176664298952273152199650280768166000897685023382213778717738607106929636726796352351016499489758482681669986970642137087328448565843301190646654526519949975698560989227721371030791948987439011124779912076131398239112505240767537627296384867478019189265123422546596855310070235783090378605257500993852569524267022419555584468826384399582314113264269883787384717456293742736864217041235000764113876796794717135085117465592025083107185105857504135069426464732095165539663937514890298257701479480687686798041260079147842630583561662777751052863545052629968368563302457678660578875987565290233171562570499255573658833015518925355342834917400569962507985749210494300302639348756238866877549046002609965591830853393934835135273500638674273185056573309453643818735148678874209597011135457140232458207626003898142112670788309322326389650546542434484893969957295535527567977829032036817004947562065882923445585467436210790015661395953580777966392398708838787896719190156061971418559709130019083846673281196403092628108153005598371500975132589830386593783395936339722789329227534615309995503268504174317326569869744754495231292874410828267537672143302508699811527356599142138564120134649854478232216927991875017640686845219099122096381778204560765399887772674985725083712538886315778469587111605406139942556181948231948494748376935801884506638134658103656396647799934191319831841885684039254824683330439778701863059869658929798990185424888788652207923119585279292260111473163221567684686293274299891803858044929049743840829095222169682055747706506846147781649402580824040895606200131868493742139660973233516889019670853863320799365861102436340688352331385424466466831046770961283289087757463156155046754238636225740181859250157827271841566027791158807874632197895582773582134232063378937610589079756041606400425554983525260907168845022135593577028457816556094180582773895052903175419221851991931896090508957488454213907896496435756487076641905460294004080321475898402581908951483758810192674905067338566972283174037342206473643570501396090674957637115127053916655741787920110690947488758513915510479712664357636698864342546661384932899801268419746593460435853207981086446117690841964450554993778182571834625266716433125376444832256981860015844340369896338412214321885948833797049971885523191241159604762239476874904418706566453245614796095657660670030151825356259549315310146815354248637280504532863444933838749378412945169703546331035871899926017291306379513913010588878466247761068489977090386074722239133857423725432123707842636395836647190140352784172907863550014584164998144889968048926848654859558817249066268638554477875123076957610279539119076977147248431526091273323597975585997877942029692009567044505058953604787564800280689466832659385668681473431402837382768762116153082658883234015924487477462928921408495194897665451763593479271724897207218980207893658267646465287796359470946478915576295005871653747185864186139844964659754231425900345466835868637733761759390950739359183197619880210294474371124523666348136329092345966494188283722501430094162364113197389131032350026140073484154427614113043132877747072428340761924554534749594610837600332563692109686145958989589207450071270462469879764262438728533910890291606474785745818086468142095879297378097820958918120813759608256881456201486627483955220790511592172592425235923953385592399011120042488026639531726240441826965588068609773185375375166271219908581833628766693324971685774341184818833252754675102739706835242542135901385555489516689460215723780487834106546052806790547169059314066579908299340633596885419157890192903793014032177654141255446666295426475066342943983066476138445915816503657447045388854697886686399300940958530688882197094159282056999922295375953313403913496675301888745706156970309545697856822659498664389502153854752488389501404003638228746882477531311069360757502153387117879087116558295545454359542273673999887893198947618865627282412455258629665439636880240031635492302270437474934999408146918170179006209484208918315124253097690221656210629508222776554582816682219532982112012810126544642570714501188404205087334807978960551367887446247365627792147534296783780850262680596734428749636808400599937776153068778458798524431487233855339869758753943521534472451993262658127958920637536963012426122765061536506047241543375918250692380851706738969106574958013068329830123397866950830118771222902602970726662098744283189085276874283312636638764961712980587361405794448614191595184855916657752385886339151185046465179641772916637921198289565572699323671459235787239422218803718165684711818913170515621096786235494878357826197803360485340518384133094437893049471773550774452215129605405693591965913304265350088199905660613229525898786697833010798355055284573938613897732117487341284081490593275479068573932901003199188293343862003790537097083291848834401452480592091189713890560205635804148405582641628326195320159489598368446949701735088974400818664632319441248400582688777393137266004061921776073791014499929582489988559980084974241810481937893455384978747343607894220384444826822285864634034306996040161560024889652062855178420038410741542069800759096152033337425813642083307435762879553641573987140597543310075778008359478469999201225988103779646190512484904026423952062352672654287859875850458337465449475520525928186142403299946580233611119678295209217180068274644094584662254122418086750853991643930942141104156998387867132931591645473979928385604823812393707039556374925791348487578954980870903257069971883773012366286783023624775522529301633034768862043352989580072546207570077459067976256897047420373398173477332553695021665526148983897224650155778456241243697325407877690951689921007842644645651857562748985811333810293584877046042074294509369018577128065412267371000447303619543085726107952635650192141484743630160509089635336675225686974443178118815268080701587584385078391683053497046953297356794999918555454022859150215490710230357290061911033493605233597724106755225344749170918421511032757978205142040874201460989222963560763602483301259809342881287872334901332853420781308494495120262521679602934440456177359978902072312243252505092376155994902357609743216509184076820086061603352824503537263295240738549431417529802001081683141153102609778365435378083630525919243382161603192911850734652150015257086091413037842285864948114103922484073315950383573759136761749375998726591621845230582530355626167669157964097059110653351551524433723290096937862292913674188334679811458293813412831535760219550062538276912144974687451117563045667355461130931710351030545546483687155810950182596151977119229439747228741498027734763470455990998081258379389337192697277924383924914211811155564471942284439888056470345878577784311178865736409882251275353817924366091132426443223216799425738326719004077168347001284653910429927951885280381298431440063715871672474684592878173228218772433201235835882571602523381328689811006126071752893939359100482112606503101000231534509928564594154202043528288043579428750209695474320761655400925978361637523617819168085201626961319117536533531237694491409047334469847891820614331861318715931344897901214476822638023025258230009132245248093182615432870307324988283836902463143527417293590175930639842571789298650639163099256627021426543985883939331634156595306416067878385471303787718459109462259628360343969487339666248464855720611318743442719819852674363527131896431249516586853064070609434696992729393751006846204408469674424745744544256805977038156090522907451885201523942345853189952866866430337826011253951759226769554075365682200905744329265931159977717417432501414265767472173416416608648701903636847861319210431243217173142342305860315764533717840136005223096072271143719201580539603977959357226219964986295630791771163877330350975358345696755332241626177459318374296346515739231715031196816257253292936590901705090028560562463487098873474522213000144951693927609173282035477335841896603665114079018266350042513258303004742679202048902212483339243859463500843332795884862953355917132726211811796532309027313631230884438489889012695061079883431884965206119023329762320502471779126224113167956102782055564640932647060885266055440700112280882699926321723278028164125377212639967616422122311735555254910180676956236048049669666317837122199450606545828977244365258116070210933000695276380032454058530832710789365752162148352396870822104133855975401932619232176320191706238134554156861238695146722782640044598962662269197525561483061235916717815332373071626273689962097824670091808368807056657357205252279494518278325435215043574275345105559697702698558711422889146004419909717923551968516250503771351606939201997397269530977372586428275800162576830281920530524755838292693441833223339661994943471213949676425668525381038403783519096522759368083368349827677895994320950587935355542233067339042517088116832476393591329315505914492154916929636694132344579754230062499359607811984163044470417485261941372364402893790576992127761590094971504672713007906883462795535332600589755524996697936469871054587061912261515694490570157272331316668115139343926651181663498847399640497696501695154777912454372699566764145400528883944258010288700379879592777543419385761598121608383874650236344185105348599161480632693316584067090858803147847876358739622402740316944836190570143015592148359461136897826021991729736079650105195089946651039352083266379914756546408496296106180322103114432092742396470902622204641757720502243739802093937621644280818678128567983915140359696476853800291084133159589302251612271666272739638451104651856616210666589198740457851673510350307739808869646587984626075159859873080181252003637214199495010594625344456959822298549743144871386715572449103780442408581870117833762781288349652755761599800165209156278253400846011746036458025802497945706887750120944164659578016055097101472573617107816478831661325724279137252935268069245661911596249611817761696315001127716677813253188151991617192467321060699873047944507915211031412870912550161756616936599533035118120490269694920555394233322404331973245867649495353684672723587601232903587603013802971567207819957111124036884148183898699823748853342092132535261670556271394710145413805768039151901858367475091897919249036508232283030736659559447617279993155066053828478587471855059557950870861057787000472085613036928397390504886221873811178591418836891914383078083227059656475354087842162146249681433507104105670769661172175847127392492632476915851842018382648182056829125457198289122799384049186495318090119102412655774582761654021130958931871314845158077148352886742397333882448735231833932418321146007981884582775113096195262197844040624262966758609378806259128908628834072827281648503518651480160923553453520540779249446942533280554949951942469434178501409696407759256725029234683533828466507871151460303688543010169680911807465508102219016043595203105270617078647196155609336995360525599982991868685723171061563239248285410807743899899091023601539754987262026708418361420291392295896023921639700328281712356950297791570303732035227111642402429693114283381126375265585067856975857889823719766354705871624951893766114408798801862949748848211407686396389041932152726223880480089085360554725510137458653449683165211646242418128558396112812421936278447597711431579421759763613751929205812714246125834181021105557242798896143357432128351151141329110539819080301667548483843462324006949384615789775857026006428361459902265008796976641880035445421979410875815036317011039087535477495047007960673151947864684768952628095237564886544292660101436313740796200410176368145065619056018198101473378714317061124482536556282539014773577873858178219173448449670673445198452647118669303487495941680123681752022841998848842240412736181456506603079380217591779094096533418999896743045518423409258050337793971947299204102653808855666947565356482166643256934510899662607975534273322255052105518105018798916067633941427243401204433983288999658965545668287338974359022824962308373521098303122518989216983244430968122748539785917049850949577643104394928554828779290932396104587033021773446587335551740912070134103156229935069753890919176182113421233574833785507445782299432510241497244832247182520714927677932926343882027605453114594592026030525680867244864978173568365376220065311093696035396589122371631498900239111149094791823696638008804142899087162830705411825302310903280887112320894904527649239035764524456038232236827214619434986266600691112850139242127248354970965181221901278514979039230860778203599888852440044835473423469126801516101866793080807426437289637632510670250164668894572375413733428500705972975580221852996854220068415383410767062079095545296960237029534770164930979722677631978324350431229795164708484958035162100375295733019304378215078284805710208044535395573661249399603269516192077623467600774179541086060381517774180211569330520847178777407388799185935892737895268918123940852069282398425108345456383701307156319504386145895575522278140908026242882144116866518576219478230230266871185855905652891404176384199352691843089016538769728321226449482692191517679046189855438691343592957991653580894700304927780156349278746407738895283447833514144726503968965608879794063759590068001326212026494310151324910890358112568269550318686417707982923919028782959372899788273677721939982600073357947016746761697833417871132791508042547969710641237193587274397883769487018657337405663849123771624883742354395035103826322131876199065241758464625204147060557987782442693039658872646243228789509268735026630762985324224153988860342461621641652045745947655030320716808068379223772368516247789135507957135180648432590622127075707631874192781217932930735115472711566480571002756117544986181303091729999653915975556515555900923914250034941689734082328814678760833586798285338091581600786446634050677725201703527615014411567109009544463020688325839265506706749015555207034186717432624785414538617284736754175727657280051086227709630861925435383771322017270687890105684644383309653405727162310958385195332977790465819899156118748496475341619957656358467843952592018498349432746182234736298862576746143115196438978047182565664775818526642610166479196359338378520906048588161363627713250739529178210583245528217759204552190336254395049149012653731981204419268678639501470926403245634289272895372699212200765870756199040433533674849565883127664953704895525391132922088100490202151003782578332281191475372394642381724165914624420273285330050439561169086050968504508989711844547642922766714836369921224334916450994057576538538752850918464120521587008980266902202365481660401704008132292892963927785174879186455388345722937906753090180614502593203994027132060033292882410306560583638084765676820495824814845066184827663500019482503840794918890620320306565483290191475992070378512247535625188905513483251487875233054037509218903326533582870308887542016283281022962025365724056411056553847245772006545321495762754820433205205261124616127119363736922627051962701885381957401496882597774339413794022690920766041425068490997917971186786075065831207248076894120885339344681061912267667372892271267871362795533155304357061573244469920428778006895941267561292048177311460626939542870933960028489853386278767576032850552719783792953758978994069459509175435024390874893278011990320504436254292689645377315992325776852349708958352693341239017780847610566086857681217896583675716228167149951667071780829242360490128121719925213433136226986713474368614967385162284263467783123845877798069443774552141217907184836484440252055578411509894193818364110654737940432322651511991217458043805977384280222754256026352747192827534639875139094783290654436715272963024938150071587470299877909742778721370011771725829915075358567250178365558327854825208513513528605741768036780593845947066740326551096665612051733714877905410178996064569924317503183469299671725101049728578217053118060245754304874078236962679925074814730270968079644784563537656237460999588401635215812810554478764167789631578895158417911635559815363446792532098812591578532491792485508466750151812932239234850257392312718935371507221601320562089198607479134870097921905367443372419621760161944102570401024244783701361382440574416026775043310992133002566785122376694117292449657884813736523271024817494951012168482726283177461974082887448967795702582144738569165136036744292303251094096372135909802499088460129892672592887995374033095674738719021211744933713691424393569130857198170861779511192896124344881767366592500305587193791352907837892392478902795617908246048210259855058401789144032808507131940959593702242731325373719264224126604180047703730241727409606434604722628403658052831079033623402188276568420131809344075378389284954448024132471348129251614492790015440499708400909049387640357549198382925107035477142476936300454317390554071308577908291382797750375535007157662391995021168580314310232361181020705313513440376687255882069612265686049783676516898398378914178864285762646202542640757592979093860634960137710022199132489831650104761942787063343052494738370964046394041765583037784038153832999622649351178874766254873605020095269931566700986586189832351437592183229354410130559642770284139668833128478858264922472031442767073702626537367691749002630045485847892660427871447946192508855423734394898640647480742920525138952658263278452557457424771005203760346386486530891128125202827018075176930361849736380456261423960214129125745064728238885816232489280367773701285734968936140105183271163048896275262733295858863947509975164968487548125513901912914698974987961028586570463169327737742494627727020100823915537741270553848202934590268272111767521948974120365707516092216116370353610235190983881306853638430872169807120850620724642487256815549763588685400453964784319331982689788983140464450292817183836053299934609606979406592435785043573528969049394746903774343816333234653163579263328402684159825395491824076542002789986594126550485847877009638473746283452449310090793562439046697090696523199619542608790236752328720443897964553030072223923188005170891123038979025118387564692475238347272051949482151399128879078356758631914425515950258096383304018543437728078708468534997089770758979951216148432238357347718243418689320659126968188376647126860944054886269779011963333871389714674163160581533239107784420574369622434991366050357016141790376123251374138905082293846032755909403925259004463058499635802694618837922160069299233243161467063019119867464977174155238628689378818740412813516796854125974298698793030355097142671207330426168824303173417886602833535303389627759640289418052443665830033621888239701499264581321279374232831302365254326239164872253594455173302592123846630292831587407936151841567472901858624080057175349855911147102633209263117002939604570453085985769092564605253318240144381228282632255219006282795835853467400330339264824891779414449279051021932153819864975546115578690212430966301493991735556600418013362929411534882982798811957807398566596113702493054850874113776857911576613371143271385782819356641037812133686552944080086300577117082261409622785016446294176898321542311728928196554614495160091226970539372838469458927258233682919326534849849814278749050372493935442314818498573670407937250210934412005186161988942799640987290646584672370591727297377224360537212390636120654368794484638546834741927588246061344176135220621228549341545491992192391771123579071982188179259693290535319750113405938570278421566888115609193933840436411940635457503583292467881298085322762905286938842513696948222767126174182427750819003791944019016634661755191454339493961825222599106857515410064239697236115115936228175587053029017435355451470880452527087602982233517316146997394309872309627003014536071669125759891204519834797105591533683367914834312928641694760935080368356154606536485921561886335017303703017483426433521543797836272663601561234653106367216869606519460972114755269381920054348033653620337175430029276296881987296035196407911618961106315252428449969246206396850398741067711882724481934194715860725020723051751273509471267696635644887625170268249705927449074902688274262140050689113971417964487320775240138432061321251120823029405715031351336491363509283963417289690953102292151670934551670205519653102958032268196673469540987568456343264141053390444685404085536659502765922103719838266833967677353702510298438611293684184601137641314905193691607508683721873965659477573564016331121713002971660597809946937834913636275093845012324741746386604776869520149792047994644416371936081042241338081866493765815777422665568308997526908205471372746195216715641297279495928200766442340783857867744478700804370579071387556417016543594104585832419376403273147196803977866931758831291023847473290530224874355048277214369548399819184762833224677771170524269222148754156516811642152244983792799578868246377642994609096147882055862489465722410062185531026301121101012722130864360424228916774533140699859340664694099438298497125241235553505296732253111792470437621957362000102371243257171383262325887462799498494274391231645501910590640461570664987760382713361126458653112319070922780856959222255011718390268056950257958573300027087109690807389919211057752821496350633314548008321283475890263707288982217782325999229929507649049737567142349594884346710988751675363037041753263666101851104479975515539660112955309392309879388792328290595748943217071807856731172446045969730880336038169497226328578850330821460797540424557230220434151284158104095783135585904111019305643543980043816920315310523776440235241298262153795667546645581979289429099921234393389914882282607553356802811253129167554962574323295905308757180989398824989270745953974644252306596557190464865528031882104565865230396789717115532102162515157331585216800396257208056365859159469705757694539833518285854251592357786595335718918248908427902912381699218600091865473388151581583923004553275269393367026302311591066390354490085110332427827412331246055678175888357250628018041190076867649417678291531871083352699104867988736720204867959739637041226382894098212711717931852991256887594618233100590605895719653568813161332932411060606132398870440379907739395867458484772693998538389017332472501261526233914333694487508301747162396570781781293657370847453444329084746922566466573975439407565050850703616618496133665840246641192026093776833219929812505784024516891215778263134017151922663741054551166890433857851532112074350347447940843670042470492199730411253136445346537707851688055087058157304833767696350464270055611450041013988286417975116206634029169357050946998020818310549257506925127269452730717335999162518996435125867347421195547702047496819457125414779622920575655528181771160594451000103716372319997013169301832596258544374491396336114726180598806208229814637601189080594981497063114553528456253897029893449160878605099582113105097756006991665018575621939628778552816301814075198637731991741254628347206284894774589159400104043615506440104292640259314500209491485123393707034503173305275170766269294134966210213042094632685378885640053791552715148725728169734151198860429914262261254146328929784024753884878003325201074683876536847492794779039036841932899803689365938666945359583053570945080803599247491544755900808579290640799183466116261681721053344152434051998605853064355907986783148606493419433859185799720795410899620630055002453680315288681590647464538077511798700933551560307623994997574151650417625905270521280531004227799898755008465003353834515953029466649882102219328692202198122761778590227581267128995861193879834387919742656418205065176387038081188852971364178997548378789863963886007095391341407595661623779976326315571071712068932111450770569622929417429297208753900360359762081625571368190494805002638036959427310898261561154015916215471549929308032394960547682926880491994212517292820487914609929011289456245619725159434684061885588018310668066782637039586114385115353625206560603328368346482133529044686350361830995836108865708210787397926322640585875296129963565093200787343084519692175883049931938368251143950704744338851338168296382896832092686529942719671274237982850161162103653255747193312397905575729043158272130615303325410267051088454917580635539631512063993557874154412978015073690041826577401206586256186318958055041158133577861701721298091718098788132320365572931341547203481848648710243121821055571380002564205163845845884151211890066059355472235113741892523020535701635876041600285312032723639837860518048071622585148944105914142603307940213021053440532318585481116739626930432062289250968023232218232557293659170532156222579578139600616578510128369499950557871439134664198698610964005416098816695905615274785894456776729448003897457675687916102524794310004621214695312423173096215690276697267348489536122242421063635460980641491931614255310587841625522613962293581907206994310352162079793505121694090249205413375171785377555895712689552422829565872916104813735273820202654556295563403525524775943065598348882576373730982407138152161835352094756320746501421671890435287522201168214983032060189363947344398923728144825900698726080986122285906196423953135448335084695334312546160319518788603994114898894421442762966656202767382144697928491108674422663789977049550757076109334806771496901378654381364093593756236796022398461592920847421791367694475399170416695481823577150421205563375656021554713788801756379204335507231038041454659994732747516086277141809571269075170603162777328197964885435822325569515815443045281672087825487644058869838531679371350067539815193214853762845319252559257877954740899386245977510523960526361881549176402170585677776553651015281683399333530659499213231559873693212864273735242280055083552974176049523957950595797021667521491002218631644092521911497727539605475748202260579656545721699218630781457818672708123686640316701185741954955570241835592506209511799163579264804087858667364233078785546950961456638741294938831317419703301209283959252959563982982062909208766526657600731907101631892427846869530025197723716229123655001702985315287726386985218151127441381096659635751160019424887758353644779308245674826634358680915770795317884802674024906130159251474890993736804153437252596962651206977105921332984387115626531527257463524125621095826837436780587593702606763595750245693075933145280866622623656996244218646765238433955075436709275484854512902514632431668082734241277621299116036432193662962657325258475541909066671840114548420513348057998344858606288957509566239796416958044903196211161913178061952310515263559268625160168205346003880522507508348116555460713558124110037854889572754359665393018509143375297014465208295606870728319726411953268160523010700590540414137876368512195234850971308560129002638775152889063755310733800973632160567821644907119115129193241361972772930288632467356278035777157229279650632987609448519437583250424713149063105569059334133016729090326786253247366648837153396904156730570529675962221101620412635705801397882870074200018111420526747721587015263574358845800485999867150624689678418917322372336828991305413785133080777868124609546618610561689972029111952830787755161640786891255099943253998064416185338242272081406554666559062619076795720153807124351625134911626842221589494894143182037031783547485620082888583475627420296428324338380028228361625880787337401773008697781192094187524354162204436073532158057384790944990947759887344361035710735355103242568508610447091753945874023721965178217319934038508731914664147476259526539261768203533243097189496227044684919871829212947602526442983842883838719534122938793330490649683362013478914443386844613349878861241566656098077348414798385998639221764934571593607337400561715347450391317523594678899408571881058478709147770427487207737093570289914802909977636235043435426656674025838677248658899965050605992714606859491297789433298671303766347317148320067385754260286392441878665130307127651947017158316655995090063519132447411011622068160145828209424161040635790034441340300884065447520339307070526275164161257194875871259670057130917385850810810169762249520777452918485622991968908236602638470453551564092093019488300461119535636846390012579646976828713724066129518099758867944484979819347225955443540314316340550259920460373182459111133551161386359545303975180077552763133431860278912845189531582947522078187240096131257556143501099165858651039357354640630715731863408246973302795003535749459016681371245237001344000925856503387401714939976496053455168887134010485725743863491402428416073940113791254936914658075369957155401892660721833404161521586785448598538183271787659182471156030300943076619168754292624337809650839767209735287705861407147276745705055431680450321825171626535511758851021648223777462676193580847369052715870701345413578272555836403216103717556395467081873497992275220178801014083588393492072639418085468079115084185998556630849203801526736490605629657495877016336814030860085692641684576933307645926214041506893746378898150515323748127263291201378932332260994090744624518796476910611276193999987664129200578671604289430107702536937434070491488441677482885482391105144947655069870169289668408979674377082853946586858854511875848433695925160445083746427974791393148247713556499440391137765443259879755123918627399502583884791399359601306241812472515405957940803073822259607329185426560185436697369570703112332771288867219706332116694855624505385675765200545070881196508486228620596196814256590747646764444970675667601334138297335520880634160019813348622166195930545389297801554991474274915440416578727827793689955436618423492308422165253952832433352046976081406293360601784765321191620424606381234146353390216213488347765773866125415557076289956437304241106189311977500865358463947748836808988775843092013491142352214322399060251755095139380024718859860450082601121682411992727818127513740904523099378359053384498178986678266510414183270131284640181105730679572002322867906189332049760598238884251372572668725806665881297719783236598854255711424362036423736935695241578179441207678269845098693305442124597906806917235868872943618999699131555053704136199394337021179018840807667533586637070232944896694942315192463313345029071234601623330735870450092562749458283909661257245451418512127978649761415044363488327018192244010483419398740360933051488612443835010751763003417927786412460348433769031638356020923560320746957800985783586074837106621966805207503024312367208538462131007730256936725535364071395448000560031225671923324969836464828828754024643534380536010167429374270537367862648226524296505706031150315282592956030194753928910978904141757335938994735358814872039130142308072007997435875923166183220991036828172490473341224120145567122211249806676617485113177697015695441962149595005521503469135845136807810148178946390016565772579992404765419712471798355677327710272281534280933600166775931799262563193141534128706315988992160081874449557435124561410633959082946712572068463894819131104719093093580180979270014638286073791865386569504972092297634498304025560011299095554671216604994552127657926528990309804017377000623390079692091926513557796618163789838288669902861377491282898377445821467505303640303339630630490658133362701334761847856572070594395880850401865914486980280999770480706776027979675653737088623585700105949991132923407871511854079925108966104680034726239225437257612690020166517727899260856480725090220667184275577304946647933007624758212761413338679554967636686820333084616703136890392309569007314477439743351831710622391496811285120018725480348994505421610911698774723841140393679628490874300149499880008775757583064090076383311297038943331156164349572201666205189702889960006213838391026861814091717348825371768463930824273871243328095604216187422248912690010762823108344952261760306912161377448681424419378185878499349356769224881581025905484524366181141437060716522992309196005416032151535529697633955293433038752490903641801874856011318495365019895456787567766756869469969081606158685780403026174275970426206857381398441119923148987280480745301591307192714561906346408588058303179507475606045545456562431899285026375833969486673921253350001456367707161561663467062004066069207401291197725929589140582594248138944002265629809373604805435898777476157182819948139712702555754163908068133352439764571382334717043596357674979071827432413823275733991151170632287809448171867085737092187682155344617761487940712396361353858962356430910578511837022214758530310700831143154975894462479936568661838841434910534379307132904296271759123434675317425618434653314459245866060496321027985478988263838354253002073170975278325178307649308737771817896191555078762041292162558593763343049786812820473462714985310633067435727001464047149922657075167383827744350561256233825749883820252014096439848507921351205159689517402184019501508005441397381153994176194736672390298286146022594647020985781744426726541924031257243132992506048519640174446355437646423315203340572801674580199199771778193919143941673518385877766521498289740796628213748618233797592451031540879035600862384566500676084149311957958593337142953810606609808119994964219339394620627166409230738083779069151932722856938315434608696271817880178396207073495888581899077136746841033109081057197234857735422325670118369130811296919426714097077741730258449756505268440076659090957084228641483556408273787526561676018408931567284964391732770817470612933459121922382560863454589788485081285899395984750668255982400384368207320489089980596393269147247295949781084955888769922422456878422552429676602606501407956257387016772407080583049043344267845412365942068646271940439708345778518425049222381278992548589903389590842874616066106748245657730197006796355659372940742524313412207564611686237663421539813465808608442949576265734293567232565970343989389080316182489545967656998835377468462075410994394944187924111380393686562474971318009526930962383272441942502590066158330362471983683065881451523717642147689772470614864665509569418743130117827436625209058428677721380535764867787014664069891624078807780531759958702113917147079839775383822744579235132624507042509903195077764918808893213719244274963015437929864482188155157700597284609014158807326237937157748585506806055311710654851998381601124897858431391248997594195609979657411938784909490807422798572497417325189286492305595406177974284621461567495153681227542753810874402056349990747603139158509996546553309331870493799422235838370497356029883889489761387033533641264748930502171939421758747123853367222562261485372806572726427466563789330870980247436238424591359616102647907999993249483232194152776093687781658556364017386319242259425030647931678449717414901318191110220206445649424512795150249043963767916661529478214035030644259845223169950400964335019023481865652319270955768885437167203995855930759966307224748237496134411997568891516461140624011244175749412857181058244721037736299736028810375364190092712786380163529179396847741395448477003754429365043450446731018180736009571197010165639149776269256211652701979319237520124129074014881111954771064865373089561902724328289645497216591300777161263194468860006301617596298185496814367138248447349209136675321544064549252053100873002216318630986828638949401383041749892233956313029740685965772840872715126047751883208998918069265944906208766320079096948383888994599212153824095572269966564713664695517703043293758468937038399626893440009359223533996482349044816502237061399499560005019118106605633398728580409048721160862908674381881392991059431392583206000034041405671204889506359172416640100014650976598650070849306765063119975821899614937230908503499474235837247071676818878728619649390742445916521667391629630868140259672472404665301750795925243047409073123981091580632954782118663264202075058033312185034173486757818628100490094089084031781117588517367403220929502187833594879415594604455147762908639085231544204836783013418538465963208861135975710921366023120250040165916708934925617963267357234110819635578107792570086380220069973248533348294881270043441325583476505372724963286451785041738813204886645096006425402776642473665714281712881113396011587473311555809196708811910831126820112725585458900592450015578180703350680092669745904756530037245388441962562274607245509674690248140586383296315579150906533471604685657151165039861382168718048984062143493969452140313548555019476094982447166184025484543184626829691028295338210134694697816167390166538395948608895681901628017020899568888586538754453456007264008055520089428570739851493365428353307015427623374941742267602702791506757503621076969033242719465413125477241184596769831237915154816844823788146834848031608216738643166789221387191883569618728747152866710296776958352222397570529783053563547177255449345480190767459830756169183654965043986686808333128035578822894972768313550129501242017653003834397388934279466532570789807771247783594073513048207394186396856058792499662941678337555914001004979636792069030723761520305380033158815050168604698042263529242931240851799227859334343762105272714356748500320110529808147276954278481872472477658454333069067469477973221959042235157942443357731004432864345881799743358540300971947463382830335355421557552320810541300790573714266258473603440587413471329179539622441747817658820941682202252168956558411521283317231250064892313253190425130509499177228259897289491168427549633800988618620257926882227110513803571425664117173195289564971561666221659709173687013108395129950031655538043701286515953030891094556494356629804798561103849723471088030740179694402638587295357041756850227054117332359318695345986102829632144863845984679591662849166061146736858985740247099229882797355432934819409282849770545118145643154891829253886550234775697882552227929184613004824807886159898662502782845613493624945798926502743126088282685926983838368214733187680552656434893519808865073909332990578354158274184209576971066032550555902680387257462315134294759166350503885800819063525435070884416529463668473294374193636635255729086454352435827654629178881051493304992186226979923896435341473331134417773083683654220080259667073029780916221550377013233286311133149392873131550277519698174081083783465836067702481592880136729070283921242328919593410261652236769417189685317743510183925313043816345629241592395848411726239180303457854171948407855443860127453219567791408219298303959107780000927802394789350491320152944111981262195333062808078563413781160169878806306455211066171061824688050311477093963445972678082029616851425507341161416267972404181059370339615453295538161148343252501258620504614314750658559771965836021373898138024556919041727387252155512709162606696593760951658041567697567474101638506964395979846826080325328231316949808151574794425011759420117293128742216689730602220796841116008330444149762080806903397280567091509000339345375409141691703610418917347965081320570009234480853676296062320565873580597881635918523864444661117687565512877278518371497950139534495411511463980317698290596807918617180208041678411737858611155681146607445844494484954283120056614944186011768351919824286651103012968211182883899526617624751460780137788000556710288431108729437354614720185235157664760502907823325178518551752723807010376975862589669968548256657770665144528134129642701630519471274056730670615425435922850610167141287546339854349297998018011252733879341619349398844020356306850908457608420899861275058055433492723252883755393085551868632055436616621655379675540361420216829670790171125828454457824268716785622438073491138945732293817152334989986962111075533217142796395291172467131999989596374917796748888335632209199821623981499383909200470808530287136538953126940534225420497715834926161146521679066679712792015881475015133986289448933980342977417925700957183100784115845747972363297810012789813006503235076765908663483362420431385029159384837852399173807118042226296327400244508923700156262191038881074369741653561366153020852718035870377330806011026855240506048376931911662324291269391902666802844503811547887449736385378345696513262733943177593101583427445286200286998992328841347173469007631715187443932212786996170348067912179833545438268206080745044369453396149414134697061125445424300190059177166573427939914864913980179173226120563854123479858580864218753995063471733778465808903990950633589161027145288767189777860962050141719631840389387676517286452318837197887290345581407145772323811739313781308625360953384809378461089154407436479168909075085053135946296675318328753557063716209311590290059902451644846661676245783466700282040246518232356085888163592197757244650324808932115635416395101640663763587915785716456401326529708250375139957270289374382921508751638762958561061603759397234250233868837081780016060527700692940187799025949177748657917226785988364417950084892392911880651636471011790030790810207497644935012784295666329356566458042790399589024251664448042113967890853302644227510773608764576553409160534774965377334830040873395794338618028699768840646525427732377745261992282836625916487022892555558089227097645879635879786509825550358116878401971714344603722808179466825924591483042447768432437691828105276932387649322613431566377076810166238345197641440482957843758066979125015209358433751178865897687596607332179678325567647039510240996076116717829268697388477339021617320696897554005822299267373505664168418253814932209832641542719774204653233498307664052519607035966182492208023847333653644741342194938352939952662114700181467472410054120715243726382010100841882410999007256232211549297997959854294823412350644098147443427332305027994789701780774123978546868687319355226780082207172881488536842100245578224939821874844098503667101068680138888284163602020868228674260092470671538775624772323150669225340016820788185545644498130591491569574450673436618728518984108811168729481117656936134263361011485329971310749178849591001834817379995338841784448294974595890973728570294589806953599090078366164702405052992154525840881290395383408913024780604921323639868274694280213591332212061961595442272431893203303979484835766471317774616009587953674560631968545166305228949732267671530880275600552888099163824878246312753216751923778472819782453599792070309329917401720083797445223681958606745376688673295753993043308495104041428935410421524389841018747637323704529774904777372165390362381003923926517375244208594001839855174419586403567805842661866543482327344036693106073344386670107122590017373619567061258316589816339564375567942409544735892568784043323795010217191497575778440466201024774982094992705994000295854560527753301193185632174937979110577712612491940759441291311161778598447949716442712883758294459107526451473087054039704417130277611303600694779550640824764918568469167510990794968893948596327271790719953127171783650061706560285207066341050043710684589506427800957615096319548028182394648641460290957552718142630159200810777544371325052268641806302891563693130159194386568569762208661114889547648417892704092369929961665646461482343772655198512473154213307814316082854386923509011521373353595580046234486810379963778082760572607289854245141652586001175480821282420234838117264648141478128810689612951202176518358577885466500785733642978292937605747836373873232995111326720310850474199521783786669005561172362800784894009288698749490263952502178412982631191061407175427106621157561148105553087195166304005773585737476872079126570650784946167023070024036043981015108988362679016218654301134585446303301695798266363987839046034518213444945400737132506239028025002462484681589435998092681364657965063675849003645826893526669555859717642043187604503640773923551379554776349455685039313352010595409994198802317960309716865276981166740892899605767317554763424627021557216318486965389944680497007333934295372637605550824533602430661331429916348868586875253359815097502768066767811550928290187883497753692204639553879962694670074079352910182760427496263842641032559865162517299122707354373026484754342855010059141718348806764798859181272205085761884382270538370548248162346951344691533805406013711979045901577039400692585598237009089485247668128909157334413499574201198840905605667412425874767308712695759097873064035511250190605747573202787556856762804211482777971946189183954150590737174971847506626391766250919821066750263130342171767601184959316501468828072500164925256096347392035725284259365899580566825833441312037617863474752726963392475798533903688457835557730293634220630383361033409691026315622989059472635441488843107312601803763966353908445482912187724063658552389002196004174390783796682438983556510677108816102253940510335547859309028313564311949616175598734304435226039567889541547087900102105173542791388569994028676850275155657099615727884616539873788434463304397844442657142115519074059307760499429806031346714443092280855542267778645262902246966803998229238945120295919849298310950157377091351487038147471804230763693098029381834318621331921891368787321410764609824905342940838574881744315690945163655746574243847387222847647394966234382904050531973653325128803353478983810572127791728913716958129658852695430715671784316097217768499163136762487849340144988679832248775566891434497053056314565422348075553014599365882524480600266255301389400808218309335280756418811424040816391373809513352211292812625771877765778683865064180641382195267387927551198037268988475928827822615576134440972069660711400143287820338849673764332113155636050142688097710926873281381433604275296513492023698024528925363827796359765073148547515230282923450856015984750384149447813356241479503927184518522349057999413020136465930680764139258804474485697365270461748173858458619788152971167921229813831011290728706363799588659279554637037603513564457961263884357273609018712174199953251158978524599069195236000825996201256829099634759166541327015882175844283085847032045392176871141425418953347129419382889522404602979924415679110348938839157325540959675156052839389053065406866691042771760027386369209269478421001007484083522762328548676833501924152425472079679187727880163851773700684883894732837543839774259156270134693037981763938824463972286581280036534538779732921643014126733713270859787377579627254173454355541146738015445381816789186615437798025506025520889738072010819745353505739181936461660640122887963995067993178771222255715268291954027978662419629723100217221017293842471180274620068607712130986948436484451748832116712824502950332140574555164627525324293891125970604369157238935817423678500373743848254090597106303760931041196785511395225119945952951696979145715590213231554141779584777327289557318665884032700066276215343482112304846276427757208253846414111816581459000644562830868218489186831014383557385796524063584918161324475607977238065999213559478795413567955668215005564637526027027111003422116193851003975881313222416954804268002994090415555115399591793908971065857917174375663397520900242361773692724555420276221094630460843846000281126420154496245891157127644066588063902982433596412998969828159336083232155339965836931337026334696307571519960486021430762336922552036054073367052042095803994749048897236362512893090533117189129612369370817215237145898246603587948360920721913708208229411468897730756767445796178863979478471226118564489512378949390300090355681538972106964878149356729209899042042445344880382354987102103520386645201205325945483630055402814873462848184149915845624169976133026930967681276260527271734104205006338669639337532725740141124921810024243836122825705802040683886979350521351964165039214485117177821270320917611250767729357513212281666874033173667203585263854466852985285784614758417309204841027835863971807352031076461377310543774766084337387477251703794921449521512562808016138068110890100306190407138764184541942026434522477992755195388677556605434971069603016569269474656248870021549825405237909837869811410902206158104260527818355199750347355233868531738311734258529179191630684031518875464315660098155407500923532142436342202501478293387171255708941830519540935384188537547562437204871396276182218523153303399308350305652014742981970390622635087844581100843866272891374038798128641406629768550296142482006121858281009689823264561811988563461226356687066620028778859579288692084856857517314753785031546729391184903532403227476255045239251755792947920328306993544312307690941823297842476894949336730582238391678330372639215483903931596000836813917738296876637592630462348970423059944440374460069147092687406492166124287617541611550098344391321524418445812997844595034183655084028863508448421697996987613128353360395304596308090716059473392817702474234053148310244745999201996780549043582575952837049376958134000244213346002033056958235557450928404346423568909123897441846956518449792602425893940886846530873842536144365584162159925363208058426484138232117725190983346916042273053391309943546889091140309590522559211795460050121667717033345558910273556552516983424721522644360411075768960422721277678067994660490551011078806807666035527713228096054286866555558432987383299908340667414366327097525748898346867225448174975517933714551461551580325028446260223652699581358251543008775349457100151210350279826378916367081732340369526865745323350622250100074963642891906292116852021759047028087736015689156601076993371046021475810254324549607199202090574419384742247196724705474835549274396962709147264499120893622644669526457231805632932416143758937765290889387944258042634005512228878692234294427742411211145138444641675587058019046497849219817973912603059631685896874638151709974274065152706556990835942464560546995631698537439345750319557333844731304417421724176446318937100669319302499986970899827497244213234467731482515135979553532055635652083607714102139907039278147021210941366967568133233064414892219845098516718744631301951316428697261025552350168323233729052973340146516142069696723070294158072004919298516658894177714103877806037716698653484279872125214378253477860085752178866650109854187390811488573019606042311064463738338929858937062162883888842905286827727482118377412976903502194505256281023133608916553942709441272443457163137726303896365118471770272514107125745212622734222508701122195703803897233592376836408239684285176405152939582432550090789300653681310759479603184187690255077620534350840257599163409105856714867193875377262420539549936335335948873492006572058458634676709025101102037815337767770577125407358831524974861109316600931572186697905688438675008214373874713358047984659045590123530735616911656822284113946878582680413754725832490788040920954579180868780367925213408950463644357667047571238173739804478409335526165114555005308792469006453726050795565989750314289243504380792404860874705191446790625509561519649194065482482556791972685889683181012141871054046204689566103357069857348635627230168633978801737530458962749468123863468445851098940127762663189735586643483278918045320328013343797846371069075608346406916903092517214385171627796229860575543364497286932823494766449382031583568358101063957421304073970525440382500165551881385137523196653799155906929152214731828357987330355791327973435139683694006611313713326362137766292240644209590839077684302169494933983812125038751659634413368047924306845012645932872905802655228435190840053569622141841589881260619131555979190300505992337192027609398853510385490464540588930407768060669901205264959099941804114542046983675736208954423725585562299885026715257343790688704774544216951415045480823508620221908634951120502621634529849151662559551121435926489360968801254427975897266721322184648914463164779027227360905023235335874270442582145067259714355336747224118012297882629015279440596360621141688266214686031475620977600957718121382108551235748609290127134968297231981607224058976939903250477450748940421133174513787227474792125989668361156785701722805812672317643369945124867623759695523335248716534909571069368604275538878787805670866115262574333461607953345110742420157844925267111973435344302634474549220605953882726218149792688826313275742425224250913263420987619899935742182182581873766143016305955030410736163421256377805094938250949376866797640326844213377106959866351818586094036070446281282667948160429163106772732157613129205398254930418724719878625273120928025034081366274980001556330192133547495652656597853289281711658031682322695531477425470545267092717364295918835072451451504403478797882155405814529593298622381261556754459204752492434372024527977469462205026112751007817650849642714765117327585206469989984135831966426713519330369164986031742127707419949204574092433194983843382695751576016994949696579215084612593587378209163149942642504813388276646470061111168085666260372266130250800280815748234219759525465217812130706844574109454535387439784649388409404590134148665769467234071907853815998801324840932614018676122358455153414958933593613147800235442985800961367799962326154797619032009200798407906484169646203768394485797669300333941812413737705815783034485418706023363748183235336401755664516221177619825487741563800344280748858429892700619085913629407055678929588344695729173839249420750321227220890754446771921967217792103939997953303526922328298196459236571298245707991329776934854614639635619879861020166049252729890848695260190463246617936765793496278132230809512932178953252548629052114146658780802037535956835210116089164884515101623992041881169381292744531311631159824956268135904436738080596168403775367067639142737302716389186221041743695477484209319580345436446992965737936443633359557805068016848454187526675721643223404662804328842586863600116979065919654101387296472820918809861212272299727608366824099208265650167749657886394628677051434407210758860135445709752884715918407502956109447200640240914182080924176323570887118612413839593769371462358469985374674633842890919740586411484049356246755188057708705187146895510927581878789718538972134834907872311478604108313651642431714419386665117541035847547927378109726573787246328051787981509316043121424476875329648951699205106871563077985511385380771569882024654283509468346858266302449525582251954869334492868101201642541673608294035367168780047827801774605660245311612210096319001339912992351886452033125502096162943332337613179595633534632791121705397341287240338103488765950535006140221630994289742832638935108087773503951174221882217813673100678678185104330619955360550712062654505504598722742088867107818072987315572258818420404456233142425980960453878818169379683894898598133043166100882065727872543976833062034903796002695296855442569470463113165798857294512210394276710344932593063230542203692688045656520816024460508447095767826819750813843912362033853368110889005482891004329601402098576520165599661213580454964288653730109510446254353801525775353925375134370495208310051473700359736570008479093421548250000510883284441755469687918473904574769104277633338532588286737861125988510935980594929955419786283332935919711145552640484169400136690803263406080695417811548046541676369619334339463033620842529438188486937990694319126346256969446506585698877589497433886169416984418247772925451787634027632958790548230234786831768123266727879326547152181746716657518279686218505907181927524791386262544474167929789265998197977267309992973405859061812926952319765792483278156772846848840915877807061000792255151854750584811328849240406651274490746978104527390107423054128337895900528509805134482525037881819883167203215028647885022021435577755048795324755714936036439035694008619900647894343386591205123867378289025042404970446940061722917562521226853523172563046001601198544159251757768702820001525412287584428262331896129818896630891901205017504825683089006050785671381324724386150435717536396776621276232593182926005576866192057957611143858036406986067493040440096043666261806369880696065737439017708159277909791090129285233912485052256542652111522338440550471892522041342360477574303720075679788669535517671335803402450469846424921310467847770546451817907706256690618915506320012465749165479150897895127257046810189847707230926154924952654350090777833905556807437676390642761915203388956497532138791075098606953022239586508168156972666535435116869370770164204431373888828015260384204724145255056227619187581340616802763517764510427136226939392771555459401228258900063344715931811758765679303250735309126756107728639702908834475532495770540752727440436763231797517403744723038841547402389944309901456560509312424213780254516720921959369397515361936581433876625264826389355921797448916865125078685056840365861339225973961387895776373445835284677432260401413847647544223731875698774008637339902786347385553965761510457960511593271660765278642751748533924775113049017833272042669872233966377682577406263886233378053375399050296080887829308195644274361712384649442640213128787460632129845068976071566003909329201946256618952325574390278876188593149050398847025378395218222660932803538863289274374313719982267916920056143444876502216735377122760865270960017015322787437403157463827888344552975818034592146881419293168996722933135950439462051795696532411266854084645208917622918215022239369509596839833433673490508858287951833353703252223547437320036228214120624968169234443069167333887765508654261237950766921739581255901657044734715645146907772097877454229763348930052027834729732972639645561932586449241488797059555209490178460295304433400804483611641623073302888201519897722205680713801121991700271473465562449407400549290235835391031661206814667534887479381741135387515613387618978538372764402148008094355497812312662674123405117664806611763051461731295776230414743226440475247665049852301959492173987099023733243816058849260580282067159537430456212188868650321941822580009532624839740630757364393395897966455496855783089417059579887200656208766305043515152130925121109230468195845246701967215477169693437695604257866178815656804063311813277297470772792965381399141617200070956174033510153051222599478528154585638589387552596107924647186487947437608003476692575040899085944307290866403135190988592246625399830207257176887609495619370934104085313948207573034109341928715761118182888965384676494527611876636868048578454738343924189650478876682756022192715573754726919550193781449784658481142945091846555440587588949192255597519079658797882571416066212839171948842891677137407208721413987952074093125563798664038495504320179600879054266646330691298842231434375573180351342013717913158227070386375335666080316558860361443819678509477820359506070067133736744108691394849448390702210373375583638212517655012914443222613580659491840512335708045137731475636618224681430936429919587988731406710497281718528493810595264989842145941184345016402051111628279180373930034042844766642695890084674878478886868006071573873159530748574102038078213801417878215259026300962907865312855667838464592117858242920320725908886693852463347784781294551435683250217863397140556526404178755616599221813302621355679498918656126002227174401025298382401177673219556760616427513329021463852183818002281486149251315353489198237825366048173729915217231869837039065432192924519964970538119232015922466218936253508393947131778454582660678604963340830858543071842610001478995628505107529582480912832657880386128972992058767823647132184891722865128841604540641083421969683293816895009136121582954193276994807215535581955401367653420024455147468602604814549911522474564197223304655499697329557051704148445008330041783377065707031142244189083144319861855986441963396603438221344853785706597254160210829648462475001788248371008480434979581254481609832329181886372232563287259348406573637325018045492370703452601003786543237237638187534915627637193155186850546903776605036687481418797667840637798177013214300063844780392028932648726147141328316691543978113395183841081461133985373395654494165822294308412312705701812976079651217300115629966808553173056799287566603784612443334495541479623839454959957162906211387431496594366101074202738194983049642458172784518938524353389249103945490143685306313506631356325063099027039053647205789170216493569364759871497164915219781363846774753601865521731889461596382995615647876271469501214799913762871682597734217175040954111999330190072723775910287803415543118265335462431209368976781432399757586936321981626699240504183295462220471658211906797151816817440768226171209096832214629839733923626012148234624668421052920396911467933300804140678881872225987107095353316048433449909344189971213762170762516196706642597170767599247751278519952566952094317311877831267878750514716799675843316078316652712073429488277766730302772729631692317358109995910279183991505062974545269518290589920640500424036442640152675124939580933425505176236039040536054741625533765872970114639217207179227450825300029551578534368101450643281827242231458400117950212961723958197934951193293578095700040850163066821114403459186130419626667036271564938845285813133836982382088053654848765032569316788804884617502585776415241621059932335013951595852657860188301171808777622271790844021800516291572711411357250960153252071017864076710549139564267397026869067484946758235644283464365884152990275484487706562631842321290620536316513477808840489434096715108229593242256923060318933802549976432313313897623789401666007383223335463793040086283259553808619365542034535647591048748937375912488609080027398037164199941753723826730831177082883265731996741371211930865200921935946885308847786998361335516363196794738359754335182426697160142555719739997220553147838389182443828395477936668714725172789476328448842847242244828497354606782025735223390719882094073214885172665810088974766651801553910184661322014276550454304132615459732770820470971758537562580865662998376586285852275449029781883704204996349204931314303834032675277679545890493833754623790667427616566693481510435309882731998675373199035357291153913383754715681212304683627057679998886410612014435898063646233883399701284967018536898554875302732706578401450670939297266010327794866455933474275428267531202634243506685694303040124746843693616287369422163802038928850425640477253824430818136806028526109980116110598378477007843075986662073787504281943384940665379989625838539714915511932308862949612271341878262620265812336164990910931972783099117387703198136750617211277686546017351126917521161634390972033516929546442827174113254953225915337449095037672885463283606682950961898353301609348384520343519382361262894580487150240816472192273063218888533506973890234262461622606190410685058871705322293997545139575488605367023807810512329541458243003232393425823534381087568187538456172907456483006392455727536905629205247288506070060238572249727758650627228361601202774252160966866962414763675824729188665313186461579503888143542827592844156800641375724192838120226358381152159859711552950233107014177233154237586255737103250983664399791495620972860036198239663899172551485703926874478581266102946266485551831900648713855134938215385011528897808102656261734968277704795810339414308183641607743471300606144895398719411155013251189222585166474277508747798286669845236616652851545279207397642516169189802691262287385884506437774867925430897264627058039096814788163922052877387550730637198539561982236603597132546598632840324202819551157394232800697712821584478637813793986773668746350121309531890549786432703045568292827106593729381818936498711597153100004931465249196767635472391913234235193582556147248062912171530173134953949655555863474718922407735734638189080278184159965719472990673634089333497760513042541398128867563480537254312022538296262036712417967736062998791393576375216911541229691086431535606074697036262627179941993512489659517312366540669697887500357390817181426460786348737706305313545562441982128340784975220921401092252685407093144678802808396960069927742998883568912877201930861476012054049550977057997424308206094856589623848305310309620146750011884504187675405256908306202079335636882123116726449527246820681578489741006125565943417410509190811869289572603240993666898086480481928739543950746127037662063446552861044370887651821527528583130912075693127724923057380726890167777088920213424649735173740159017156084795228812073137352864858088474044934149747747285971666516015640628194432945994599322206790143970276716394076064086798442064291441822158935831946123961920417040047054179168866250369227167316839492269887627036610772410788033440478361120158090608845158467210152530862239357764268139560196774848416552824096346871511292170446773457716957199039809150097050063195897963172398544280306040854637110228765869175024258709751851961624431220319459414000359574597366029140425355293265506462259876613574199591619410595209453529736976215656952167337810749724496640701983086176110593995162118524637872929088629033483902628419773763389926072728004934973917939696420308898507564927920454855470779834111110889276224099925511840275072001582942941070451794160883649001375698217216301890138765712510313079467983357081374954184916147636889559566780829985446939217666999458750084134141946257186044891823044750109493367906008578229584124064651381146313535195621523811402266945136878867020260541756423149420184626879148363389429431808029822768658626172210223639043288320390299978090307924131594185739379961642250105163603055164207512316335420013224903636922384163118434903944723232488192865679853834163231215439321726809066929803755531752478276879505056371112665929724205400227624740761326376878994937167962994891235538746352630327637972747453658824301946770155725938411405856228213429755520147034091258217547006644284011011292561752703716953791020264107096364551438351699153914176801794634274622379386464850702772460806048175646103475533482296540963194192325875764122147894623398114347209356180651587380751488981558082996549917896152070247245069580597695621438228385786378300828435783621862964915017161858917293788369650450391644585738844102624401988942492808721831715003089093966850071602538425110959940456172742314612156331195169000089077655131667506750710343717203869968269518504326008172149221777023200201226943064362643604900696592655199978299331905376254903002132428179804471159207547525775777508185508202430143653713412650695567178058515259085865107173858161279257919541114590852514160803160298680525447240964127067242209536848963580596393847629035706383678980229873124946395350865867745649008428530601130113776601729668782069899664228010443113696144297530850448729467780399936184310181137733109641806925843504781354486801446278601483817202480017823662599211474467540958251846839089424661571087198163453397541083487381460792191249973787835899069532597982342844848682886730580900481342267428569361337495407268868852125335449249020163491569489584095086444306118472024446795759922620645313498052709544216103885223870870242842527563613721521736295344255340838674787269155200188041018815687609698865161647412481342465000240512535272430879507879062702114948665476482407512514746770253819958867020477412472820642346356591366539599832332771699378431907269185949487452627232152732545824157403450585458113922957689345437900849737578453652655074148376659754604383285224033627612638567931749539430031724269599822134626557499474452479084769152744511637328757572363250644878279625719503817593114857226576842811960626253923771649765737221798794156053493716662473063605907829012081019398668868642655895894552402895086148126304080091579134033264289204966071425406413750018255825155479808784683047339661568519061912748732424200553964443139193848238887679631783561406508396395582133149504083860236585804785953221037787842364825182348642049576610608655890975594820462858809118739112761415901435008288537650984506400659366794128763223609295665855789393374048036347282804549515951519830852421354823319914731016001048481957618963110307538253434163472529990157464051663407682175300974378267392090968966376091365995248132847371714203659008705235115192119616959266631702999743616034073521505839359930416874956695085791475994806435581129570147368451851432856122147763298910218571969765931579964078289161081032784838440767781191834583310787525261624811565587881119062809960053443396292543625505015643217031718608850156061789171215403686123640497991396158076712161832297608409796061972335974828521085177995249354913113983319025923691320739597880877161470843625343618781894413199626042454617465603065243794681629394014869784675621286276329265622249668136384757684958260624372953662648238992858343202534269332359990684369437174333778520108813747850772733076757344936743035985231283800955474057495552111894702587886227547365520252746823912127835763106579034899268016480603496197371433314840692974540994512616110116837174657913553553104311231957717224010689555586507595671850100161878758656328585313402660763237771349554615238126342699120953339006579057895014922192578294667713160695833314689890031561114907506070343685899501929537008703815794044090326702635973352798525590364844657156572740349206732104262109073795455621385749711203803780745771655195854508471186349398184643342997098515430490705979822332166261884300968406139123931358514917992990808837222983559030787626845148951842035437126016233737075671455606309609860108082410252024797017716067411101738855005819321107526853769345369703006995516041782719739857163513929124689898144303897063727378220412249062437145207843218993287570197042278339128020260625613108208933196190517805027370968998459538343681874679486342737997409668312638194178223632224426158571328222912938448103154267225042680370136002681534004768012678221669067268351662965093945733866507613812970591788445370865518347479387285593229954853283182930787561296715359308944905387729337425715825195927134787366996693387153844888546954943610533576442502807852111761298776655542448692209394687033545754691959256396516224932722506545502750590010142249769259874802851804717995819019438096301172374293008743984552398353570743243963926524813483323185891083729149414390486200275802599700448519895829089261521710906217084063262915435235910027176199644080291448236043724285108832340386987525381545346214433974093021909294392364236802416268303191147091169308309428834608476931708032912835702982352729189994568322112966119360666140468412782174826587028582459430502205921550076489521263289058095538094606902333859621505943003875024931818661823374740165998675415489358692926631930937407893462560265954506040358864015495065567475919897368266941483766608265259913225849582409528301102775974430668357360572388933495684565936250971987765072311052245055849499679722719740850634432056768218099265553566421141129661846292275010963567193627249434135950841659427163017167080387873888070198772824860005960805599290707190283357169461163235342606545430717290543199330070593454900086911422377424127407834130172417952876808931057907623042423512527802133348377212312385972935267612413040987628185787074851698027277996839560304447277991291536824653522845703654574639135683579187537078120833887755157218627343443810504711272942928026617635325642159395160007768461290081577771776111707298705948228211038658888240482283467501607533676523513422641402688425498281669716370893426641647722434141496258828911120078631779660061754938851995271379290162598151055513176869204674421107460080547179491644187680003243973214378495451999907895722926591493766538853505289977844231221817377426857757872427696423385876473892292361285733941853601468218257047555619610080069897550100884435010231052719636115865041675118439642296530611808000027487992869531800803800357044159023644842345151893234274332669007193206581265429480386951472557866624016595240567378336771873616708787551153228534864364665694063911455475155114549882604766840620470666870988860557021201034177454482204587923058423513028724100842662904892833865675647514411038268997649437724698557529606047322400259539071478586899903149955147770472584076365437991853556987001145911161837910500086957053668388266646978064724481832107025513242576705163208622395957824043031710068772784117913518523041258118967722217903356755162237916091438938173995504658270712745731021847735317401619357435177087457520041679358551720750254108944251834714659696519701374584752878124179016022398637011253764529738131910618638727869175282148037163068915066324481672626850914734082281023914767708593785152151206647062760836383679517794004046370479331886397907949572923106282588004763010140968003157661603699353011590887580402246521337780897912494647777096969351079470939864857572563521000018527781299032772344185851186369852688833659446645805289670077746543203286684721802632264010096550614794382232267146725740402915054618977191746723369428015221265781003266275831651942712578025530804572592345357628746836941239923679749051568172778712197073720402680818877577104899486611684147487218591331472676025359817875717228438449288153577205641581614387158698666109207161239976444923018437992834536788312035785085254035952147528150637652092356849694073985505932500163024293417446461042149115252955821045069447241568482574146655433337877764044071573441221213803664336403882463706551526608301740354275903138561391077246134586201995743284805908078739448313329549376214851749843105840502966007159819432831901394234121247471452399718328987675345804265719704416133597341589023698425429443902879820852731257404933052350113428166069952452801553313101041544061913821961785437012910137354654966499909036093602961905249037988042496338978013093731718247413979010888173352086887175492865210159253548724633285799634279646875974284843656371090932053865684233264751007159154593199474291040232564692050564985668658452821154077480079703980239751563575029407530519583653800830237390350824211571105879767667072380959230582167023778505341069766953376667009827088847018223134125508658521805729068287317991173238834590126184443607917852687681026788425813384360845232748985812790436713950611882356724769083614481238006443402407976144796482487658801565453019658484454575716172565449118049014069500789635614359433320278177692963851898293689646966943354240409139636382809702556633670325273471987798789331273429608006561122485734063268932241645223094393976531902526133370726877767978070801979605175724148287816450536525233391327533690613140062711945664248413781059605558354345319571996397005053009547954618567862985705144601594874866151172961856959064884509839539089308773052934138540341706124374602727118758071220413562908960053866652707343019883439317834088739122948158033895597822056508813291847724710367930497652917124636317122360257417930910435457952416964169235193459729502134350948743326063663955830874507604071132706687204401538179374592078550403514622058170291070763592074061367851745358157121331614867378745773532684955427606540956703492572349683207635227108083018078221203393786357927270216068864170294163665112973202730785162562998452330917344095226433563078748385595571098426070306131426355087863392180311118264929848169658641193734127568835880433722998246092503729299081228557820953805876933034611883625215486365532062146108671575564023110806641416222689708140671456836279355396694711098651613923428158233076048697403147792543035860235942685259320414174196476261590269119512432107384911739955129623828379131740125870696365237081353318717338438065655456633924767046286317121340092817231101550930046912616688067418221152310412668615775808390266280760103245536596792877146924000768102365111988118590545662317388964449881475559251959674542589883888738921862359692746823356966838441644272699772104998686440321355132362262173188375155725054692604870846416060749052179899635657747041824398731248393024001427471872412205085006551437095120465965569235007034770005123882830906860002186364444521175337189383754762827960173905492721310405424667783868158630722635686473124184182093587211581729642570130316811406083206233939880858459040010602382066516479633998819422587944299138438336026589314863663443077529305990737128032540602952113383927045908935361589095020031461233045038001651707978094357455203435361708111865626467819298433889003218135655416908643707948024116446782280042438887115766835780173412213224587309282304767450723518160859497719289900487286915082673574170899941233166499826616444877064254911520476486205136903866701165619067048465701705292630826529078720212523064544811957911473316149418871163209039224161780538668019187417352772027495356004588236855540697772999192114903923896398487796794067641115279479699175684223381322766146521907569624866961695937392889470643852060498012696905101879353438862012060138982862131169342043922348370925943727194574534309754854220324833588625878611254799286214282446788189682048466232242715530039459162648106667458562214598895433676270283133952280529943638346056734868390847037381446804433939366940487550680875695766590690437345017030556122195097800020420639561965005930245970669679739772423008068096077804199367696305036776115636619958962008504438565907207347720478270684006271089924647067986919033303750117088784461655672033840243353931550926410818848864645966515837259072722920795723331580537288762640554591411383996122278566534752736569231728617469794436777717711433869089429125670517881628505151927105106738828277857114615510485244651603115516335356186403113521046934230794006856460053859604035984776344053339200479015849333137000137091385838766362063220423185668979136868744154217912016855247380908750949756952581917554294574737640767258671087557213526600423771850026972542507296195675561134233315896345040637947199522804064289376657895055261145021350029144992435999146938841048975912941216513730472758998864794101607569590212392320254629859496890940083743137056955725880176041476390452799429956161122953853678286103113574865230226428315574986514787388285666604007555726639449854708866715912183508177512696340113582251290058603997701827423687864362752311261580752908136449549028447377001062927215338507052275264550352234869665570359341323697168307677938427539567871024452355205019464790539556302127305324564703268091542172849028434079479792386205439667968088589845620124424259751029723420711189878646198922159551437418163870594868458070258908011169801576749626518737917056505170589054363043513508270969633663179850470326889426080688079864710975921466143927786880432746502472711210708618957738162945200680886846593429197171712606115451849546988557001502057474364708098337310572826714639880858268299815757618141784882588969530751727112939773802184096508407596522308614224664811583629422034529634448265212626957313438557931946358621183306502802779610099165001594242729666466750747664734443619075393415349723226975103070034859695733829231799804906162430661496981097708424180436153333768135963971784124693444880055352338509899581851864738299714383901235096775034215500624576856057879074834074774129910072369465794539838156250140301228162578411808008498231549205064085203323602060135192494064451893049731832783422685411109397660798434431365945886972072170403340984868960557413797430519090521459445037701777276970447200402394640720031128411618415373671299011333944125643951648369046084057745263562432151676323222715703609975973366349190888880192392020060913465163344878161453227449958322288438223967819805558026270369215535410641780545621022786339342771394153671154292678012914916048893790468372717773475488162180425463173279527306308325673251217370985870483224308355273023551811240072842810052147667650284082962254031497133681230647840274197253137399271627738552326397847718576885771590349070882233588715372248401510048975444978158298196950333540676019068451978124392439981181369490154400986971045993392624064278856004456901786625585301716467662983556185222769237741657405995322762501050638097175403776609536786700183873243117750510106698603018136696613942617293501843888212744663712594379065152669230505688528441063198094791702117821060147388768801973095038132500923030621194512781780766018463862488188867222455497229185203863540256302552143118694562451164482108991455982868449579573350483701557890128435155429474081564858076066967577576898988094180427670804593833045080544450260894209659271742479035800181504418540384066220138564475748916765738796371914554903560957918187653632717946820951556026470876573691539081056505507644097002127875137872612055335134019909751914886150559160503404886893257229636006779665777443552811158929718037362206833212609616804201251682086143820779010327272323816358293194642434345271422096703352787911566021303521468145674437386065424759097036037164977882744552798903060736260310726341186043695624836066904572871367303798150216866282674401885819925205007475589786181273270322764898557091602680661411898661400357517256684267201194272587756189600878600442988975277333529379352214134277261065587482621274170805176615123277142431966878767161441597119137725333246776160248203230696738074687938072426593155129671349543478904745047127608117593615024018824067030598465435106735399191273604851585560817996257091910488281529884633409145863818415902087845572344453310672198094403737340710289875700142900088481537077354973208006019130466047015452815644645190084259479253116679019058522433428233955857901887759727287577209200910425056578248494839146344543667110703102192890717853891095078426532682187617010717458462214813751558284791094736412776831001475597190576222317072120453270331668769370480800220135568757867933179534531206514017227913677550295777695242302291672630411110999119229581007948751078051894764086842010255501442872659390879850666011477487368694979641370256001880161326169051327317014069366273151070792261111366850193721603712193441566646876387914501615309862618011032732127534065487221778348075117280801437814132149126497570183421950897559480795295726246328211607242201917613392149684474502604760400927371922753889357363179520850714469073460882438100901713525196326749182230939585849148313778340825109385523257266973648325129653829325534785251080488750448068368862565995258940611833752256965389373441176409421830357279137908135250809279410056291769772314622118518789917991311620934209928092705660401874580752140672608666691878300050398038456732619820257887049225680708934888045763168655623904817927742117927107240960131783259981300064786579716299884031436419808097618922091510720398742738043076530059434570715649367850944028070925626723720037562383736422684517051871563146496313315292449768008581622473538766714214663924448334008335372938858958272794023630999926011519334981257201558631824572628868708717369371010106469332802394734576590868512633931555404952420834215082870737228016283819862485229013543112664701489176128397212974363599869136375795740251918582667575344192904163184160963639371235874307727182705816079730440252735100945150718211100907509826872938248287743946504922880462196349812477698048674579723788800566615470420562947988022713698110990465066776331923474490806591903905450192245138859089577776648201976524983519280225467974835834296000433962485299127073497592032132529392454292181908742394104459095971678988767859036468520735029975039851120565047482259978643289806299704580072092100418068498612976482360825862304314675151280489234147392003274580196823397170055217879827793450299200720906065487034964189841118802595582714888106477506743619374286271801225571756317140939992276080326289695636178782224633288296088970097750297530211470622309530597706888979665986111792545729117923552999245871358779970237798275039477821993327487465699730590705813679556304946978280847079833680983727425475852678367582260077332360145695076208581945177546434029754692727519142336181408400360082458983480887979781412476504008993366499283484668136603957590689498218844099173622312644727176575333532342875786867192672989075228824162595050601473366186782556444275944387900589997759196566854461892344865225620632201856232476007253917162337576348381166191634391058298236254097169843999771444275989942174769766673256025191079546326715678371002723639614913323965180139144199459891460527090284990865042137756575285312089508227783146575694382330683929488836205146022086110316073619052671213119969185238162692626862448296323920945513944247161299419663231200494279354114244382433292346986623874818642100355482676226988889859259354343704359214503470255894947388473977657602369694998376684022162032807285168815939914698182462329217981443366717796339287343402589115673378766573156642609142265386026066859531020379266137012134849966825763604420511365817794211811319989346872477743465995356640811402469861606867295464193713353289348671917290759022317485074304860164335037967079154118491191166232099655542079304870951858891312805578572000556020278708756065789123766752922710491916334732763348372414264310483638964914163735480002203401695218602155929606648202549891882671682837683442247245342409109238886993489157611313932070304094228604507449961602586351129531535931268079110809599978763534008560371744969206793622438259515529709813395258617018477226435697870205031449444748082314425454364999679158847201686098662297571672431045656374916306447511741446607323961809484449629711098746462075856530472945309233749457082983398366489494295013152054927494734416559549230983098735592644088562467536517140737191825093486517551118660407359026479230800491223146639368364357657723473000682356677347905086489553562620398829995282041598854824814799823614054086017563281126660465350780403814830164656093566577184262100110337667470599222327471661882274582160940880231045530630326911832264009411017895214614805060924054148173166425947276145960383627063286432382309788667374638096421122398992877746233893171515031949852477138714605606377911303110476382064463229323780746765608356927036284350477136612572175877855085191350435379684805657773998559335793718601684741946851241664568034639104641961535292396953605178356711657018639857846433633475180466265319011683183459675358069691962392487740701469691117482566589844239715748497084258088201708541503323534907119457462605067441421788865098898285798764773011292662594543290364746261222934951585722007689549940316398918612579444326748334979854552390584836086871321260032491577910809823117439097304454938272636257189329391831106026741027370257934486553248947436468981610671097969030723805267994972111881835141121004379421527669795664661924078999544005824605291507641008797933845103170511368832831053540266759504703775398127382358546551157382991424722407122192343194251293776454237572317315414184271528403748916536396080362953394143027905916847658728020924857843669412574414728535683694399726161178115587564133624495061547790118201554840395611422588301017215478806120098692657977143682384068238050732305062751010400535026852289767854872633332526938065678805960501474314500119132233646508614284238894214785705989283044370589016750714730161480198998218275641154743771760708684867042863653844867983220764554821093482538734605063998135364502625490774700450246128378042643190861814169393134094883855822635639053466937514646870691250312266623658395226267396009734244645021557100720198694194722225712439203632614367749692876235755025221706561094777579701699545669443525234740132235305765056385253157929944992746127102358316643333746147654020262293389976501455003349900630062400717044478063600364098845836508522511453698746897601035132813001911929294559702485187515831594485844751979420501756960814540436656473818285841191036449365072230228299917342886520417933108337903171808928246778690747396859484069847833459284441092018417176280219209648091252433102551118409451956285062691772941555802724734100771830122730616654290617678126769255328162422818211047800164775356649850503441782368186574410823967580959089160448865092105713657220387700979280176012320908620802759841695060291484433605455756958507042124222394641585414072363810730736752122345757863068156453363978448217737359895029188905264867640452525454673424655197137695554761912016047731459138611655033981075501728254086692603122650122884847755813132333873143616632366625861111967884673151844023917675153381021322107573633259170343843390500362834160474610502865660242890447620034191477573336568053062567489798783625071618772289210929382606880624080644249240204181048835271323688281923413146140252916156377144987931021656631528954741450805269579647259787098014381676695677416692958964856027831416807806940154656870625081445104708302567177754739577996601845034371740773344543386922644766218090286129290751186972480795362444175335298319870345704281843069408680798909472992621683895515597468597959402626086083113205504038059973428778829754640970721422576226306154160746144222695679032892229438825008144050445385061495496190647103795769422767096082667524847294166049386016605682827603367338206589002901756362306396971568071331974896884255155751755908556391908612086408857418147998011636181477349577391776499703397558032914856982095445566716973191579910103520673265439574081662528825935932836254051344518299123600607714566681654482202066700897425047883896581838280779655262732218172175957374017474988318022910124492231498186497044138330256587601909029366980218816445285002441957141986574471047157337278906093221527336242597446596627239114888086282259637525762399906529843789833878861076466821994951497419867386001641371776059881062465550966605548257539177607821681048075924269448738390250466089677136974319773951408042628858121492955439275269409361829416577481165878645090485222720266251645533019149178501322060634086507564095265570163604962697407030214474187229467729295346996477885662748180412608016602119609851413993040474267330928126881202731268258888699231722334782996412097593689492906905016766258794420844440691717113412594158398690982071816334459681532751136942357984049810340874927324855440491652802376362031465046280504105401564711953539043763609399576668529210221098865895782488969387004348079834236203079259195157432182614250431781402091420030846461182927651294324072153430534280259378705175666131330438163531433245928568913023829643280129277827416277293314746403998987930478373855623083131282893076546007351684534738426669736171424337042330178736053905627605312555150548876556469257169735498094693020316587329533045228714242371767613547852720657435148030013139777262229091678568365530015811926890076283027631883837646750124721738106258892850074803342669412625033578412698901006294966327759830400152671577473788763071209292646959183841217718068988021090555213786737323375890094472179655031412060087411114030199147896298335985376727435072894507795933827738570271183312951361414418133632978010072637890030769829081904078275486553095239788057714851534374777125951160453271754294831513611886031029414299383799675416613422862276403225083304165241561450382226809404136222736832876471558930685303078885154505021897853808627793751295697071164577100896233379020436890001072043957338992284755508906946176949582910600166840390623439944655670969618486546487552601672945487646406701635339734327560978318237709327505125638716442492590607439021497087668761130761872638389495287354886612767101080394765179768949390599630609045322920910840645083273716938513232399100649486542359016484124485581057949468853951755077841601428692430652815840628577306023878568445057274561392135781148046622604365517896555676755380348110823752093206815794327248256781293388610751361724054851761078134767477519926507795368513047849898282181792824411270765682870611323372785578771279679855994433852067230598352823945724104942759212504593613475198494325229061596216592078075886826718437989544798757432357051163040612174834376459808362901847696699260061301119617327590085361969093523539561092107561072243336985220317881489306596536139453972098036063280071521737865716555659866925239598981644147229683133758242318889422046259281520793555212589431657520745354693179443592824506893850811497350151048689395146257797385090717618052116321416360997034818072295181814172846388941627108472340734091901763760484251246852508698676495677162640311130912001393837006772072120744820374617051764303447174731210409382997545576893537734003657490060514644505791366435933402682363007756451320409550773466409015978821784934370767708424332238177329070085227878069910951496851687548566939714720842641819262803613241094346076017245644401268496149987639784512961267980940909052915204991084021954355163711410562706723752740912112129189556514631666554895873811510034925290463046042644014761228553067370386101633150675133298375958738595371148454364964886824801686446017711007960659829481237111192721199922530472069805783718337295731766437641687760908032298066147574442252493038867399218855527798299821837235552922582136534687678340781492588715620371098220120376741149117137415182152551651996531219577466568742760050722518757260055425791526719885970473883338101298518986870131127824467637302751714306045906578554581279396583085902771412504889882894210804418727008443715452168580247986022992788148497464685073854570059657024445373038799876070428593348887544622120368970816392911299837009266224997533102997237814648853744923385045692080623168485361660634559524311023473458989926904541577502762649888878544727112843898343196123499492517197231280220925636350648409655518371562164314293993960896633080090292500694812933498281583873701864502797853518886417115395474391467750865956631308713103154994504950547202848967694791008037247680993134536863315306072503826030296615532515937133937798665842854270282263190964486383908121449310724077067782991159412146119220377870233427140412503209645909383727542159183608011675038015277383745847008714585210734324892485374718676991685711970973379735988566739363015786775812561811000990817545089999169942795768250594325929012631129998126090551839517552048773252321163837023978974169665888450506292615035718827922273290319138009085302097253849985096268693414405826809670044602795209828969020252096017203118548896310948370545484599569079888235890706644672172909131038488560472914313440370898324228879200376873802244058586677748508351723566430393840205760475284960703178097652342114838592280636277558601895056251933328313227787142663903962795670204693313755016812788653218847856396366968212727446850722583044063282367077287259626370818187984407388049764208872924699873266635577936541781095785375484083252156593921539929430211608788827756093249345606232461225192101627084310930500890314273172351319221436281242511200934567781770268632229472078840986829291639112214103815189536056807867474796015043451451876145681365446663527039611002163074780406156907470096401441033186912336356684992167189048321956736122821036595307854909181251156422773556753543702278855156336621484589304929334753103243596652986491078422394888078082927622774563917906419179439926198346594461886570162830216143891524654873877597089659218228733141953409293365339577964348057464711669619442566274976396294840770702697820315274586188285795615921534173043403424896892296006609395294501209401415850217776827725064729271944167600330676770449972558657149408244447071012435357935734793562583375761668471393720547824328307146565673470301992788828453950946412332290870349876237517814941860842627824901873003638632333300585266308516183281332021158527354932644822771988105476072687447788654528945951480310722102423560744538250295926094565708066652782813214969769231344763664093553495732188783632989758169024972073866746856019264658166339594819668039134110189692520379468282448704562862151146721017402657914529853349064983647370282941198031237014329237817890771275099553259701357189673034131507377498027085574598980259778705669614915698445402117710160251465072896638113156764525986640911036427370028832362275867426336198875889872119785527425734908936910261910798526443614766969317902914488488854300836737376891625479249873700179026625557448832653103712334405761435929386510898877779659066986953314393693493725172880649885476888319764742704180205546681524643795784297613261207161542299920361243808962591874582444072382013826136896617291690563047159070527004959177173785006548114185257424675383479093139549576672820043839670685670915770284545882474528214250963583804987525666153767311077191428594499296176780759263899800345306196441310620421986570998545107695139708834930613647077183156733241578327259536648124361329817392550094833370814572553375315079012245663664325815265718820915453412444191797250435406782074116780418662230700215441603257687317668255467994811187227325205035827003683334206413556708829636063974340797252810473386458691904869707834381972792224415020337469949996128969097646277421525286953765333870349285746138700757192827067503409163829870477699284763508639267195284581650360577894746730442093276391419944592208047363948229887348746609677643699171017192653079834964247933898347684764173901750812833599818257606994179372877112694151159048924246238681594495830655060233494161556418758765421872246640643327149007106282363665767290008202351740448004660189470337310618810182126625018243141436336030666395335508571481472991034089340727948238086791978386348273304538585587746409393217079178714204707099168059064114009832126095575897895522821922882645638170164745349129361405609994389206599068322909755193315115151665915485480802129568259465656012366341121955127685102138089373615347049210574090720468789752729622478194540747523835440791907950848378767214553225935216422072787851667023553248359289687952023116134120478499557071996419711828129503328912329265173528968103954061678741742301269082678371122435754757135549478522501597275923327246381183811807460511107852273662229322566734879263204319554104734756332380513496152810723380636564026846177146687144725464999220564424396372265817892800425350713557454617421450271973026717656002328634676822631230203839322984309538490365066267647401529545220704471771094626261490978751140389521684417622011323491745337214749453978378364467201951315921796058418449834728621762572625727618924206990594960495979257705279026653408409614582741145437373455305848425744491354765186278003132676984296683853113511402789430228590161712388918532736957955962087420235006655105067356864498758988975580027969502210073481252692917582128710029117728270759584592986512195224388341073370418121929501972190763918240581052732343736630667583437886193245876609698393848927430510026230271049322954355560829239779112388695160535887768825622393616887724508868098663225894309490679633006339062758558080310025880309803162329254454625444607496434673022316134109296161151742060334146639464933471375349243806824264794032129777486361985322400759696383131930861999284576779943600393805096772355830130338052648648458405570190300523626772176210907458808874835010357590761923622100957629938811786113580161711339128954790745038409011584516427812187579057924509152893936610152350839162376604715667472583940529976787656120415339227245231000905584124183545621711760684826943023037250074428663292970510151091932303140702799694630000908076817118159740214219205942972661355511500051477961369586019268654373931767587095018044469742338711368115702707628943466907221228792043076516390261455569700505694864980733395413514580952919637360197017747921433604681644994263006611972279067728827243028377394468284224950641263183188707642684475847499068406093696883611500397331167068021217517647300622459096184237108973516100971713310628563018497558887474977617766282021888874920129000983106661439934595046114172979834807229039690282286800923177776691464891511363910641032227707482026522565098070815810060200898502207681956076771361956602062157220077506927885549108349274491243214195629431891777893178364981069716941127006384865546017089930525419081345116661994476044601373465306799726748524653770863846829946485825873542929427031282606003017070355559123796397050780923240678395354957443612584332283948550959836943409084989395776991274571395189588335954316037747088483747656019303646541458018558384770981768939316781410286645801649280069041166147614241807652392653879269667370713923331531571275788264772921949896309045264574657882626077998557847334324333237862719283205861854379137737006788353051286714266981964483216522960572807507973873830223723167753088128756093994898702613422208799961951015556505757959166152740072045307679220195974332785746689343396155069992953931728945109461863574526945813213915657465152408646390591703163177476784763363322388426248526897246023265655402208350095184522806437803487599798603772536866701075995327015583079072271853222093323319996226439314885335477882880760055911434401571193884536024924066888362050637339846551692101910014761870669754939172521674828261256514450116935920250438090425497895200049446592041005954464793851418758868257429995005768473005515201265657496945551621785589857573745862380624282689268020913426720111620404858905018894933972756442931717020003071404341695170491945456696884588230856608861813376576873621213035398591071093319429314540089049293702925181293145180974560720493426512208843702808528151746425641439029571973472803378855733363589593747087227960128716007739332141082889732087871828657941039887032641693782597021801174165099318421234482859880009084184904951925534219591188453794867320065971734215302511112046905205516428282537044953420397830414124095729826657039806660316260143732716807371791625847949970598005198902029939644023546328931812344523443182018766580610092225872621191162999541001838403667440267326173473782194705874576956599844655525235811635063482310439955652404174055744856200794407295797911663152974935822353255027908263755414246671242021240897565309675870139368981557994090709767888917463501231887948784353807523838033859617187479832342077102887901898644386220102679801598104476966446700755712254516627435657294052568094481799028512332142220139493450837937891239952038858645167608435131699523497213609308072895927594994236696643454063240188846113382245766133733048553648919815962358901473762497592762777743149242130656381357646817435208205718033778385908897262405819143065303033432387708918483019078633649209527364885870436190896814161550915373163384011353563170790613100465569989959679901530529118692103184186594879620580475902927123180098920436435221967857653262490041075610848536984630737729005917386674726787587594542299428126525280807531882876013365792153278720492289654304903016106206385816287220608992632420311509400178026050569688375611503038747056254799945965172350437493500449142602728480451682035870890470937160208068041192630023326463821507870188513875292726304623131624456352878732836090408029380805211522694507041022724434028166841366368647724742688571132025760516535002912192968484605616045306094852932941223241807464215431320979513894159940162133232317821879107934168754450756225879143834610543326083691324031141192861849332511845552627651496460437336649739539542555634605521631200873133936034819904786838148759440396496053451229986658561973765986543009856771329382898659697747621354040238252925947939281030396223005850563158928304082752031704807758240872469203537452917070195218473260868996815026888288911130351625579950361423986130611290882402511406673560148522157795404057727973573266735262579723775760196159537397786291436585025112908900068110937229569461916156147612724293999189769177432104036940015955829214495409867121354776403951760841146001908514996927799699321780886294474716619869007634477867545937449203321495898708062964977783089101276648651621308516964412964792651335518393260167146892757241348972993782985198410856221426646193168259884130496748226499617089032265163748269816715361198682403414610163913508804369265211339892085910132964685285232446563235296423864393389855050846232232726244759413651484711137582348220349520744348744198038232610987197775622046981149014659665563122179567821992891833116291967131997448034004245384027360746443096881111264949164563125217445476680199531004657781940423327607841672070858534575090066072805868644304985259862997845713496893024335090922869773999719225870192671310201109468305031740064444963645854652757823311834866813342707366701281238095590230068088859365627377380792283899269050792993682049724074107092337407923445820454123254877553191900492547821458791483247623674825489918559402616217681728333005500420515256630541538100675943908108100368644078470926652060687477365285215258456941256059194926356349455422737306626215086519192572597791533174189593633791698838961648604925841901038863410238138734381372764078752522086927418214020868924483041856717935678469757101242810163231262030827427771056961399890341341166111018379582803277257075598030842672231174696027954910948029960605182735289787397711048309791577420452255092583493078527111176056508297484985157371929412787147311527735458249771713621316614161660301535496405806667311135790082653695038793415724021560764357700914179620099505707068552803954986809636191336340471104898875112547655632701161425896338232214125044909116953706749344136813392374225060855623160533018493285449639722386162980441069803216592633353791994417956766904346541362366606037441812798096769357592611440789192639048790556883685171938099892864172661047721581807885870179411565355948072000460686451311718256731266488098132491680382332872310665909463506732908377276440504933206182129026042092867661278998529959878372619846024496649101418251810895215504356101993329576327716069375558481370369937217588649467392954024465625736657511785168023301223030388518860444716340995989596006313366770607913697687909303013187721565992204325160704820178146214123309237690317008117053914658133655332148011821520807284329565543240695824641990785953442517216279720045043399709659642768114640469805199915338125374110693600273946115200152322230300242018309817079816467990833826038297495155725218190486113559309663053454459471694914992521464008029799033321301146744328683764699410010658237280022165209857420483144838909792335496284948214466708943857669958583671229782023833192711010451965697917138317432012861829853038588939091044296432123831264595208624507706760724612528528215687966448566756808690193264455019263779913532354081604668290655518704471701288839816643951919560804533980044709035098893820228931153488877713592577605824555641440128841260729776745966720332544060810693468803082397616044568449834952277188168587842515837555913820086235733488838598541696649511686634030969715673871914732559245240607681320760451559886283128412956949075980947927737061239858514857375877855726851421550740281178216014139785579776312193700808993934424836543530550934361074752682031804367081381594928116369500650788486845829315704152831008793986491210470265787335893304628495212483883052059986630458170719974045674322055669733230560668337294497947104938171908079766016049257921255573875364020030392978445258668959947025295356095387178205927158024642642443753795522693308176280543635310241155394569491124645666347210793988111795627580402583377331529372514694420037463780016871887821717967180708792256799960267771890041190238713681799915142789506742900661815493060927253852691892872977356637569691403912413858872040100241250091473911872642955480493466040686980191057469039367138272872231939429954059774692299469998982663201818947723187740315978277914355603630155610909295127239939481989285211763145476357795827011370281225415503812794454297270255351376865427175473563579563535498084745146643123526956839595721655831817543199476632652661313232115101284880823102712091036473412507114857685289492266280446127164127023999072843410199070424753182203816760709495971201414995528117251285838361917880015323792354767687854208477253443612230850759709264079417927502324142053106733893913054639312323950400754345994749970044269177281237428273362984834855531258365983194224567617727239953114904102096531794543474210935978220385417500315554768882811827645799894073221899276136022413420556571398331782840888500218281311156046815934822841649641016524848338250363760687821518867943490504995033356567279751408322744752072203876681338713945277322197200737964955885136923368156028530496113013873925975364169259115244091723153994947188006427205080552095599759052679849980425211267505792151276239748195609337419951323412927554412341834107868951744890936965128833507650059584386623428860904865402392645604413564675518033848125616531284735215693769001324245216927925502511012536442116845466517553084074109967343105805976010145403244879558469964554358712067159667453146564612197763350362369098137406667330482003521166848540578075339852238202833941889192941547679181604325573835884197636356272312662346822200312634421819768592228512158468126917415070507850247774158145653660186002620708305266929585691849570252262886489592732956509866493578880785721994295741934468893613437640597509182763422338705552032020466832004008923476751900137560916270916119909048746864949110114750594007198564753478979919009435063580987357734162685283824847981299254403480998489496454300651133337003129201350039159991919962318785581978295641464833749285272082186316799953848885627622324244166992881783053539470243236696901211883324413240111644070709889458101069932440690595626231869585016301814237080008770589445687276656021782148368481043577260156151085852326989661326578315636606312005244513768825274514517831753192440865681867700253376349015800037361497882960428059544960637546367575071999561556358217148657912693020277131476190185480127954735254616990726314317534109059101803479761235609374159007807317357010544003089758195441171580248008346164935965265294437301964965690520948632353696804054323256108910761857500011365040947773001309707450402350381451438343304900961337006722374452966934610145144874454149434858539244998501421674992703425927878953875931600896265137534493582660820278151721941801488367556549111122100567070845053384205641539597888107351676449734320929654205110896059180067096735464189484846473364459132482982045927437517470573043174043518485902034279742319038590843548751784944556756861177792811219559813065887386827260054016669188946696617124797414085886547989350062798660591462132866681451249753580836908588395177573092499054373355841515308126345883796811891897042137507412178723611238561051487819696931947764575332276754453964355681834059551982223176086399989121480651043447127432177601652533611496101126784308464415403438804678381473152673599822089986457617241994099725432015350134450473815297895475466006888794586254045284735733341889359680619974722445386221006946968081988546977305526967242285803482657213917880426635063559734321274079453599368763361395469501495147761430838485242197951967311399121982575261806928702886742272602162688251797164416181220525148827832030151008131462746509929397514048073227561504806384189717494132826478919969707361684236111101303307584747296228218312084219320856489944556997766808222827954017150274862838715989831456532525154247380154283260182910109665024756128945791713922798221098292824706316532441606721909952653963983229936151654255292986060305345928939992604588232622592569381316354389671346579768387177253852547757064886988070500954507111621420800330885354661004829950564850018032208008016991284580698110392705770243426530162652083915879760908395821542180292116527929542166974821285912226582942818157247959098469703281493518036017348958881240608568875257617947520800553609660766694299323350320100229665420251416420282453406224080978016747611606591904547243583143307835403749552410241193366157962240515578694868846120751299749824967803602242809846196630484034108803402037466363285493036101427210406838061064342947892247580208136713071221468004310156804032873107304527375186768642333914006121088558256129580108486902424832669141841039814543460937590459114021937026214581722507285678145416172528513106598131542104683158433353318000550889254582315758459716339368436702959086072918587513463470923518471555839105856346549306729530488630328522204209904420814900373263489938299160358515877687483593313584551322033698715614761643981822148824597572185237476147766055653646200206964362762385299806612112920800120205517273489492872809723225602003944138703457558861070729651173912062932415408814386222982006636766821420870986397726297669929776282885508777038590663661027977240149487915595660650347332443104539228768923896817484208463349405846476762670741923476188712447312305700496896491730953835920088210786326320988034203894435189898963271565757717647849423131182859572854707107602731485637043202785986198461242140016340945988008198740692038919079365647089195357244790448783064756159609381903136325619932666368761715382310398307864811534113770177621308770002805429924283489514851851096222796290011716984223895622776289156527812567924760056122113035813585739558546743519994787960630815427918244571746050968844636505292843661780049107672257433417016710569648193193185670267422214138871177765649168559388040100922598934308458741993165671481107123089697027435520226100502299699860374165482684137599501660445038555872089821467207003092044989053144073118862927633810955672890743980738647221279509486591983072369220701214969981697887734820306440862195006634565530846536967485740739379866707498988653911653038517801627087137424857331337283839074891799060743774982005223513682692529998349805506503741537852834772586977818074533720146640652665874889109771432416308112294448940172793586627523454975892116988732221104986972830675707358976931416006041172024526476831594805313938192145339562651862936619277535069300474486530116328154583884693176802379450763126195016194269084675479837882203536895052064093648782635885471921899394161133103577850966773269667518070507896673482647816027637370177209863080215385866160017659847515215898762306643354413189991486623190288109757516757071541142133128138404397786078356505195975470087863083877686457529130516924079416026112465994074567090475884791250657581002481649490575048583121527204379267534832737186274647195098674949998556504828190847957014489444109875930956539166843117877625762579493189655496494592543571942778247071940593297462547463087176895363820577577721026072663502040223097393687679404997881885104302987071195082566296242627858561845656876761527854393627354043014537725879416585989118731707957190013520385333961896952204511975983496563660494776815921135188367916993947811857684279113431410685533137546958225554372224547928871487146896892578877059258358367091435611517415460189269698787498634054521539493236822827242273878793999367355027533893380444824677946288502106669847350490476066652233364532973732949815151805858018770712859389755006555224737480442955520679081198117832867794148058800925045061583243406964864301287573398660604017581151249361609019829782236744733063842722221550974191405703392558653202963770978581496175795714908738762931874401515500851387351100310389449485637736449628755471885016268814695587887728326875109021993751173681050914355069577858836919872736620509773958618091197085390134590780930458601856918223934822097824263484583200529268942560074429616824799828798966550244368027433562007704727475511125527601864352205748696938332158146631565526556293580619774455915552776057857391713409092791188968027744142066604406247907780654034052836882633013943188401247135113004374176570006289094762472686903356428230159365544717985774353393439944362759213482466884484588650833577687040698665493115832484097630547453943345296240421395167377206396033412876143847683267992822777255696939511083636645361767581369125128248272214764426006150453199760663523737480778496607047437542414217646124368764398924011744089640189729311382089560707938489382705552292787262078634072051897340364340797253583648476509876668463024376191676350839029357312033402976827060887813396722080962034524576162149180154716502461854382491903586291053026135245294723567422923964830615507672722012846893832152662660991106433079106977506393586343219721203404379886435935655293181609391328129675419424874660414510867248213452461119511649056295472932993845979142157896089892510948786571210686466325039094329600068293337841619007992057039072034569241852818533013242868398109997445738467169494766221160534324662625834029016075739072908578607560461099186392671005658751740780027039748863206878112817620467912907641757822824265195028721048994149502732499239305909627881524654583771494303051240764914579664550016241909782284749947253644961555001498890446936285394145188470654811142596859370787405381001041021743792182252070840187837557463679283751090614777456730623715182867888244542167151611623987039340116015468041901102901965971644844861481296740802850080704900241995594972445345565329145734722154639972699286899150432278337466620727704164288603393761859778365772276466941976814675378256173226882489592954176368312174783878411848227707170256819733240224402373723364363371604151795270186726216139329391373170527547124855659364391881588293807140213189829564745152035371721454623848191110000154270725991613878925412781699798566435007685464655783111083440425824965293356162998919998498423805256203006313974190261304230637784203506747293218059620013554234873539395621456030966964746550497977355318637789582048125291848798922976018847794086653512555957354155846464773750305166893063527823227591814121823164923984122731061315914678893418277263107696617298034885183778099440267932412386399219616761038660011226837340054208083268374004119387567411704006507292708737189745362366516219746759817272813217984033931293425001637618386401008675079271576091455802791725547242713046181002476102651858157692659335021305984230759218160646420194597641376495272022489814550705233186482965099690483323233345725638118725468835616840951660810960159739235317469054647148983289851445025480856057703564144452946105281746723925654941588621930952719585490789210708243202166582636108972230892630102835250997333299487939121160405616807721472144546622747806838336887995293144030993142831305754811294496580773432902903190517098129505175998198669230423106777799342650235143423301073234077657746674055165337631662365432850437516587933912689357359106022884362317384947148215305106601502220479802575953807223675030342673962321751384206844759670708619810133315750041519486292960852465802801318620088916387664422236788715976549847723063482693191914100975388198725968302524975637296338085810593130962896751476277474108603467738329425678020552690203870929472209714707680103912842241810243640185933516489926749315610302906362160377414490860641565289313393047338928560962115428319256312459734288634640379755482848736006370964397699950424583727663782191647452784996922406269358371345247551508343061476475952723218842910913065460861403038153706078369717141102819716100713940573811207843882917891477675808970542282965523988156158593149897555539917972933131681461388680385817100399690975223803940030548420535767779174035014065472654537922922128625895648193346889106657218485357779157371164777724562857874079231167823829654939429882592315820642575238697810317232899505379571673272640708680766118185876276815228937476963290962469232611439628558296357758249759632204031367869258717699923606180142852297329327143366523294066488660072577645602089854979211811521978947601583956938509487844935273945350662135471455052916953023766253609102655859442777550860317026661756293587069672094693053592507844724226602532025260226351973607130677704216186728158822214557443049858557796668507246285261500211759442754859666808968604218989021844872107759918382709434730187488869020490854685947268585999605122478997712964207258053109654619696777932221164069279327304840589014774652133085532147102407549313345187924939704257909252401826346046639058863414500425263540394756148847575779481868695391103162682383186861788432878723168482070067249738634439463314105677776067393808126809608886915206249128395921609607763998060997025231213028605703508153046100684422065506986423166777952996979845940102836665178318083533814257715124158200629458658573179221762500222371401754304706010958318786217475478961095592233931312361323909131953000732505993080749216254234032542331137811798588945667932851200472682067235421899204926036613977070148571751552825173940404818984109812532756090191470954932099010695900245540092016601015775353288660161577329948560126960346490100216412998182646415122682463752321384026116031641565981594411322124285531166528005516521969885646414909947204402628101389572904489156170408584966664143872060539642041401933333850283982679999106815479360795605232307843525953749546707106884574689567487291772093855381745599268786095591924800911703330824018082076099074778425882715858210332286259627038419559257633136551801751922884041067184332396876591054498363842099768732115559277247391841820915975005661724525810698239531885865725163509165924417050118951350094244547020876645680916206842790726462798488579375647750095868578500785502444575089428642066901392309430638724763116334560356524282123840869065303174332945052577381302480268674062285041410383538027953942702118973486137638137278514173983378852809639171065674347263582624160856642892000809430846884939938232712101091455747285316057860745271911580187683850362950365710955757383787174482696797411639606218662361083271321043571650971283371354419637283904075563262696359561890431697009747898447351551604028635523122569549274863325260036621459905696976105938526177395713429601371591845326240036899107472708391444315620415440027366171980307271539899933905811961553220164883041164693549612385890421999624404955508777906652671969584705893910275678263471371587863142587973193110725729425589818225487024376271763074133338189208038715765892105920990038619602119876902734296586526089707397421160172282009834271124545301234690435640569062554003820593948453624832052779251672612967345012489339592470003067351538523946333055083915125721632999637999268599371642773335934319620198738651509092901934459206840012935243808877539787462464458066754342538076998900058570598113753179981167168406338373560618484664576057426599328577306683887291533795984623779567285130498051600416615831493773154675207680294881867534187887878303889006698790490226372263474132043244985685637766717424955099285781672257821482232784294626908181024919183642013626283895548751284618230365452407404604868346859677433647732734034372098449297667388648552312597265619508839255079995877433019866642024095723660781195236992248521980135572414929709885551243817903631492881703401660436013124923799930541126191950776116103278241999185046609455299439992507568117315263794794558339023467977626956781031063169940369308223861238739997793018680064358265160370180388717919404086972464150120022081121681518757833582274453806791983199269328968827338072434325704933918207588238202295668257058749623572282963953739959042713834091752826097216029342868464665546811845872855737047431148572421443538107192813909473285367075671673001441820827819143783732823358277742032819303917732251170298945303134513775712609472411168374562229313922718746028611473369321614120311299314908214060029572798634326179760262193371059412971258571136795646814683263588975662316498748904663723454229109369045369723840687174981951839076068639274699946239022699731876807195934017867214006058302705674680901205628543242815362857457932863982821795019880618284396751597932274819474903994576363819087084995379816119771031478765919677063621371179134988359936493002055429247599784707223696567308848003170316907480850330101527138096857284152415537394905270421574125829878943091435712296347643332674237014691760632072493106207251344393783263072392730838059191456383804354889685910991326703644153152865715733010226773293396199368289479927318030078517908553529724030877691579017943943393826848183181461647510318466954213032023144872438159292513529705936743927096930107806341787418120174661378978120709544067012598374093377283627571173944249419471294836880238495896232745990221395262558725253579501836428970943581131418525771717772064138791624130334127020831325781246139332226425483472252600091226903594864830568044546274698172015477823442327825760406933271843145487109903262650975348892350914312623958215321736931087581495744471565562363825261520855979665295456120231437689854576218554233500429539306588034836047756759998556008573719123740291367275100053072706754664970440059601924064780912884999137977726812411351519478930059815702154878890789459543341626320383124016540399500581044359930188801861021848136230588965783052061900307476920751177744719216301583799260198361643210802096273348086046130865289047328745947682590662394771473924644956166396295621036672135612663800848212184490893345874467045704666940293867545641184456677558706501468476424931432994414738575524401995353607303576349827865054149179959443821450409050491650570494462653415285874089646345144967865181855696847013571566095313654730400947464052740459424646234740149331351383231923033813347802752561453232907116260552234838908700345246487585515817010632390226386607975471424456949134683583794632527007301951339850521729181334788462780859084333016374067630161396937481063282766330329371881648248385930740753727650434154737673566006101901354587621462332470210721677913214010374049117718089092372481186965018133260785929745387271552097199297522182594724198259683006921311230093373744719173051771422906074711819319728625237101259827042460327694263174565529759075251503205583831919059966056957752553144873307714225345813763499212713983012553597056283666735576290877520422393006071224005744797909762041826967848061373185060838484308428445561401736844890928281074317193136298951585350922509587309439770907169251391635524499243972451626699608887543005894602097403961543473301303102850887325697415908194412305728054236034638436442837223390471802570530115061751131482064404822183651782077839767869347239016922164566099142387292536300815148025384667862033553224133140346264767248008967084387835456932132615763159474956703259180956106303885750253124547437979016067068917783525487378803791873589260814185691819730493491078984492057444889568843557326099441484801155113430278779445162541419101824763876353058238620305576359666500447308280960946716864442032125492820106659225220604004502629944317314695091002681666234095147928616601921897510684139895318504933178983613873652146358810844549219884197146008218648160159720331147886419484435676877404538339663928249369993791112100366786815016855063857506721634999729785189163505733932850787374655228548052251570397228237093922362243684381955907010416543671541977458361164046889884107687490239555885330007257961479896875754837732449286375223888493149053546565864085710193006106757426409143280472052084094606409082348834737956159167350758318136950602772491016225235200323171677598511621222601197061722927041444092211318863094944855727320998181614669963720490583257575251113409086346283454499093308756001504013198963429380012854311433033083300309653292004748935398202132284909563085032802958697781603305408272486867948168030375717298170120914413586943430373919444085534508705992707528592613353488533197114708682985675561558175638396699585604105908184760965009180570926581022321053090063635202369131024042923317460362528784249062991338447763903758813115708895736219728814089637739987605212713484756888458741577336401522404239832689843941447592529545285083686076109127122387713976235706413504673802397994952428456662496454800974100002760366320264831668124048419786307348723421451515332032499954435602152483085914486305108132517138856586424598577463048564280737256227544903722355499197358759948201073587972771754046220515590250177439531659915200850599820088514920051404833108280142690908391186838089965577056583202718826526758127596643514955401774290241803542727324519189652034050767421498587516067104950471092311590896134443758660308529489442973979194285503336712296781284796290329108832860593622875741125783278534715920936031255032322219073811796236440419201475855032332451413636933843235450351923041960517734849913133494887478952478667658032974680869922877372855522986200849128238892008439032101730929843779164248901340490507695146724830992205230426712717875823366656402316151133704559100006736768044527636559461304606942815789737537406872740961936524599833034832336712174050518384359719326463694960819414804575262509314317163048764167472190731452479752735108061798323535840207910723722515121067543244175356477528565525650745537610831405039903476190006506112185398648385196490480694397527331402917116612526761744531026933211159248434762104423967758114989814848238103164405481018348178540282331299470807237667266040456630306510012690458475393984755785766643930163714490682760183628478717341407120865367729569512636336788277011150442182152785655372915911224448924613254161406820403334169159052699920720019292437026469842505925955767581586403553174147218135127413106631474996127956064553806431360068441515087419057045242854777037397913596928220064289198970729208179477053455917818351893988896212229138640904105130087412806889700968936480853574220883461214539106275036744123833872611724702615833452785211030717837299312024357692762813322157370912940549880230551184075073369006028916626198801982181332725364660251055969942427040140552510478152003048817471024216792632361616238466184520125297488411561418287325666448132790506581523583407659247447607392500141553882034093350003416643148600293961113612091979844523740995516096599473498704359746291827469637533151233919836625993883237456511831848115665449091443221952537662567712142996083565927516467165683160246162633381466091362180073837693263154485980650051732397952265593859439834839012666000814933396960511707810487431757445624205086399287331705850539858619841724436457175358792965623605174128680557029062233668801534342749433642726861267654118625953256716243087851728612282568961151728170310506996985425451650496702597475412580913356787939520448630068903355837846687200701162374967230209977566967383376148419323469805596587404936938855747653931109241188908608877231667065632010476820611611420338840482319492140003543726880442908737455289981255025344321424998228722014880887347207196172687047575821608869700932106466580707327298348171820914316309040398388523918081568248202606792399666218054056225704519451950474385980015865000723108827127238602057809350332264616698562585241522264972552474177044104207694565259463286142022937035211291686262502067420556556322393418363922762571935943048949713531894235249642814053762633451112015812078199621967209767630156109034239064969400361036072410666266025898480174178114184530476574806692861099018134530397507470775652503436593803280685545252749734326925288899288392852414694103332562317484973435766393590866944342012346681799268429778980794041228909322131388968437054206072670724518011345260097349610138839923242993747960107084620239420006827413267900453197994607978493977722649214885092972803282554870452286146880718642178245335319856623739322665965347575604717516005748857471713953673594821359357823908942466127297637356241992297573617745613187292152800239628097087885855841355795763825312689565300611102289192490184265896053875363491641633713032295530788734479067981202678643440548468506785730390216454229468053418951603001046631892202863166718353494953794599828331591750539786235057485907352489349961166771822403382525403125367056418868782241524567481107133616092599454652774285035252358240103039921492595629876009583996009212388896843491864939702005491108152594628648726556825548964287234946814246491623034750925176035687737354289174982729698795667085044937337190915271599820783208138149407901252319214795504634732376530037990764063007928950077746966970928575057261520477943233216445972774071699242693323801059558594635561365498615762644137346296403355265441295047002555499216849792732611863195623857687277115349055009572629426254357473329938047560729601079118232695293736741478011949003294473841910638495184060228689123087103073596851051526556059262845866353348346712137390318440381698851640937015459079961658880560223244489190086587622058807289441359065466627922336266037474061473543194470569412520019817156307318022954109286773157741853677226754027747354724130588183867121486211044804841278762252008297785978936035738935938414056898491010056494355700183103166839495454085856635897896715620782829208012922625086271052654785359895392839875280723154125037325425648106969815792629310428107158588786659799356904741677731872459671874317408000941781937556353450886755237175867245410111540847952924990152981656858246017407600760313885873392407772279342782518032049643503940229283829640417428889540534840203245809108222693916868422987901707873679487328523661482619993279024735891948241593252426263822896482872541059921810444861359168411203708553310696260125957825748544718191458697222443453648733505711121878409260037296282361138397438602248068904664091449216003089787920329349175382213310693971610017294484944352774415977183830800187310830351873013088493882354607333283663942174761979588828454810103219632713531767460461945617907985947459927451529806745108492837869822025773703082716940749379677976578433078226467177516364795782123971683566642836150291530244465069443455785612657990677178405681408037986025424686110085257311819849120625594297812818867332771412298503693499678790109881135904485884080136954078607582080120400074244471113208659008139041430720174898466794388401591400213089653669097799384317939920360576327514053748054040035512130440318652368540648792082741153656236111023905177166225754654621026802667134836311899665442937611066593553056973362341236942363515990219220066424913120497061106411296782865795068886639929811581734390518491918983058463388496034930169876003486900385705033282698044239675774579033536024611421170820993370207691035328546751781041720305804148711005843786278308301175161039168212462998683712797794944520846157261285322068984802197259376120969080287511374843173570520665085066603672309657251572849348922511965160868132848484149139616567954965915411161094744323161233322575808765940596305761902991569568958236979178086243692941584771940013298123310245459429230266341595608698467403953747407418470680973688207064324544766978298871550688344850132933021996307161355918317322231601041613507575511560707853781285530535248478605796767121589489319447397544922144746594216060900863282034261074809587256608597191040647162987257896122141606276264191465810856671399076637410078763703372895554131309976226356812804574656459725281245843152155135934162349343687221495285559635437361013031924163187641272970253225214892788648315881904203699837449541824873308213901172793791051323950401655679569152641589387211218563710447960744666892879968200757420254461539491405456265518894603623879768406498144453147545869617039701559736571560048191418289684983565521730683888675829176467942519424217304914119655256023009876187260968938686301101376212003842659655071726317151322009754348053133650482697945123902927968486974552215086894456004262767095993929937778265097860666591085154123029203092404581336062490395016180668225199471356022184847441071437699232710359184715171729213924265463354063971604039883116829003586057852227049134276177547332943638530473162774428414939251627734218464770565876780737643760741969027240761847584833523902557722581374873502290007357937498472121999265180025098491878599718088423814916054017361360331174714064363560769379598953362260357611260302051666099180126246570016560745490629260478768182554674315702609042445675175072639611983020116582415400774167745887392601321156566760711953854904388907677443151014991728592059433576096463953760547108582585767837585320319268799723484451818400227163067351899322191469980858717241996704836130040972578299557486032871254923898134355165463662200889110495382111529482583136859703309768985026517757018686962591965845794486195551433071735519381363003527446641901731363818150643757070522925406644749326155115314774249950215730239045253507047475047440540013742723298392678810736410451626182584958433589348980385787336857235129609060869334777045273273733251013435790974979719613416712042132818181872852034519621966122074015515243200783054773829906140269099792116400165876691629582059838436463534483610123094423541417219481872468214654341490792040171745923082366698394625030385495773096884976524375549384990924258198879176486339788277514848187775613008033404706125896957415497855939740178142859821603427032796213702310981433622907552507869994433268127947367532013703372844360581245852583713344299219367048612038342575419028210160869325491304868329150878284786671129946042717133124301169180393093724299739245963146502140584656522113332658044184847136168694463677609585952779688887597933455451220136450113785906576717286242464696046062781307936933580552726974798590190919215452496846371767740934883587384937259984740541257465388158182280316121397144097957894625215303529207349813968119652944969557830769813268596761022474840023370666983254487838127036349040971175529156807853044246716401710576914162948706338679218987849869101652238271813463079384283050678506700382144180850343657854239022883293527603858502325100628394620163881927377162734658872940397483182387732284349354639086340321069388023509159112776045124444346619958825263671459421117231213299965777787851126610997721331986794937494776344229934023854786149998974332302523062828582770801179369706481875807857193210715177057579948161519047308114286632299177896069204046840997130976783297814009566364453379837029709897055271495027734521716934754275373491001748655647322406537275163042200355834522172991646897932968113250916857861649238488286062914798632170764357144720768670419823723551579142387908134425365658416339844632103726118085773046378001516529550253663093639513201243661910632386456203795899104183736523618715622199377944046178227475187347621732036877620307386584591133010795118547550636193958960750218671116251778994176890496735510924548030477130685866782368385169441425604351099569231667623576355905200452117786031643326489686247332253865945642063075484996517896435443578093824047869636565225863990563101416611666749533818158144528084270408163660170007883443878692555331719399874650088536178042938417134370896068784697252414372734525988696573964330809739763343762129905314811726736840113893775398566413775881799164493003232932746354438795213512972490280996240372345099362392012786039720163311164046803920815297786076404117399309490450668376521589050361785936040038349378299548280279761059945251618765925921506076215078669429981743750350629989713935615712381160468397776716012254171392021985915296686226739708694384673670046733195523346083223498563128018245062051122996936951375342585160708781221112729854096306325641522785805109670354286659158326839647953780427931300918627278083813463611863739264735053190771799276217283792949980463916244006159866632622485685575516371240190333053901440850673921329400435156407591984677136326701010042117530875717394402628948957799145961290162149474990148963296052570412838460325529458109805508769097077019574332235731827847417440957724531976006620423857022012202732348206710301856916811327106242974639157236290590485496659617918105360637123123495866476677221878713085150208509783475703838839435616968905021937456688710614660431011794936340258023547370718314305740420923621950930869079735876823154573861012300577890178322494608833700587723303022371267883815823350756525429050632962128785326462954018355873450064357581819352085243600220545514587326982251261727211915427595902132319668565354016142422278539991626790060548789167749120105424087470007542899848154550887095575934536844531488165318774798053956776983182184858499810063103998376162904900222603704966329853187440306597386885576876167581646238946568174938140792102462606179930628583786044492377508618305997739409707338280228454179063983160299030551763722600581804042136756449981995288003471830031188862087513753069736402932053678225134188454121655412622149304276598632171429210639697412139995229112023395958724878387035670891319471318975221002326296365248941155773537482717577605141398577382033798512381785908326334996040813985134123116449844065616600797562474556215434092767496949408592786512617743807493778055150460680337130289388088002381877424766975397428941495098523019885893245016185211142380011837330035858300497798961153693509100879908511710254432823043792190910196532428712952973860721306676324618104945048297662865190740550738960406750385225710687407614549731148341136322527775307696218216704357034923384475672929174728883853838315601774683849394782220832036908068390199350636946726811150549061463309709525869317161818188621219741411984567356453641099378379591067384707366568064035507779172877207063090121313378389400624823265820458053697531084331481368102893785549448876622866324628744435082787014482949722783003149565615378173957931737270554761755505096745671980708671915156713864324865496046906733075844746750578470347017422617746251141365359933952234987621257759651357534890288552351496086251581836425537609896981453128194152235981767390386840773612994692537446576458885793191766886461808464909963584846359711530732728848599846774910025361379409262226908940598335395534630069787978839910258854621428876969348870945327088715090702116858278197812978686587153125764024049081893921718361607381998404741588527955916929545826048891485659732166976894054027282946775229098931525034865444344675364052154060882122969631001973187819104215325270797211067831293280835960739673760371831069107142996880793113367002684719120813838736327447167277825063242524495471657057777171487982348039154057873215313729993289420965075502123002491578609858872950425832841269638727177610674168354215138189499892553794841591696402553900345917369586263087890804005163944998168677311524648237909284788703802356913122697424080436581868587544685473221920566830781233083220388274856025921475320243441036062204057439562138061818096513292726839522906959130014651938850579557394409905184783236555049853768874646415672824129097982551592825585150999813767141347881318303295125656680830658777604855049056911401056821237639989993827060180601544283794047474036961824377404525760155704517848023022002287405181932539284266873573471674874797176331225986593303023402433966550961773590634382179621080845045779005377271610773972029642345811772092804022194071812455782936819298751549312585042965302076200556871649164942586519263634699828548413237947110373687052071735718013301130587052584916195648337533922054271860281434661454176337729213266493717921391370363605330614730105145713524800313055998091681697375436142507605563344557089403336114459775790804855793713466640035036660096833701390367036882088064615080348464065677736789408342388167383288108531968414272175127541912149177812544241768268483304119880216331579697392398499620220980269412104427358959540823519556288602258765718185070368819981499708292745173556107907518905482239656362223603157485022844751026797341752937906247395290036323938707900400573657957084280147723682394599258004958322674163583059407805306134096248286419416018835774076754703093410715693894937797317062574591576547991114151298069440326693542084035335837442321301875225603131835224499005014832778949959337935580678494267528125690082855278218336641685677158031587800165816294461666522507720483568993331662824218145321449917540796378771084235257301269618188793261965859319266139468861365898300608343411493792231394476065284999019051287289233828470509682721989122750999472644063239786719427806828772100747072563418237952329826430881562877689284349058776236309036301401259679726224394362977483126076604457948725172032244531212081578014618888373756306101005623080017355977433258129621582741609806779694628976406250181261944881693998705139853801407729182250743338111647245434535632307979969595548639178761963666575919834577915583311666631187453033392423681752073133972047689731254244867869235290869143514925097245182682013136829153789681566706050117774370073236010416977247798748285174254562926822207544886727401601013754702708018370811999788629949725873985364339335327625839641677266021075409440666906472411741045966119519675796035548929203125567566774941822882518231713002349632505361774660656633192165700069790179449820161257154877961196717257610806621054347626500615202671402958335876256913180538734477656211021427631296888677042962110019478203931050612780678130534715470052479596469351722732347685879938088483478472851859443852009438472079682567612643149769980110208621800283002528147211793550721783220894639243491938567610188071314246599537194046804207006336497784586849347794237363529887513491063375030163406206536450167511574898502302860093120343959658172718829641983747686779858165030051440649172744355238408376031240458080391577331249800850746810849078415821798683144277060081078047554619576047403527626818752298592591542442096399743557902591441826345285116665564756113503372197353155917271451552928402929288762993692348044317868845639312222032368774025169908294983699599527596258448292865116408217645044033532365911873828468569550647181122785286963106493929339464988147170137267508900498767842245312144125974190007091547697601785148841303402404298767950560020521586570562426374660407254580884767838565654251746579659905989850077806307813725111832576691736857477160244874465346189615039349956275763248160692204767574185168073361631717801572928537972336206768431693893248874467712684741856069247046730119975421129268163434744716186817521434446472267343612555761826345199656963188939432815578240573246607402210158650247842705202269903694501825140642732896622891973760063668153590030964971048214545261970860783762147040502874662027239922706061319323463998120195332505822298517556302252316205443578793691560341247614655055742795185561890485990899543397106841040096832308158183443538314358244005178166338111611144138448179943927613024755752137355516036933932858261537193815683938655786777908453936412719229161682638414600581040803991658363229041288526794625877760250317820452912199807498213424369336538757702605663697749272239151324968331662727204877934960319271327981578380445353892042111558834019335806429793546625787297334994685670661890518251274596667923970128010729210127287547013274546276338152183642103241475707933951110129758657399305229765756064642534332697665161592926306452040384499665659647056804002566255772839198288091575925252363185183134680397762444590702584292903420131580673493104014048989847075307922723490715010177573093267884812428784309866038237173933716847973200444122454238839048807676539304646049061831963330904955552160891053283094419713523219768977700990118349254629064878845085601593498644210987109502862634745317847183309611446327187264117795098612015036638193425886162918136256566454666076727525242045065220286985508367711606298771792519089598224723754917698323057959738224442008615572279598758929113448950037792968101215507982012522576063106954758428609295440814649073374180922556036101394612064766058586325436325201897722356319221754732589864603729524624020133670872924175819817765113381361284877932726905168805632639895456924467799012191789284443180349407436874454347146542694347295411636422775278761866395348969218527347110817641431225541631934922605822421649032159689018404473814582682106247354981944351016821738720192513036907661590836341291929646243961298285656074308322704524584427131374835838805414231618737616265829793744859122480614393666318572363399143080219420828747819598343843375612418009454676205368165918490728848480572617865469236964483628575275457015143019756756106067540880820761080461180304135460397649973897527549019123587391970784087069785015170694525947929990109409601483261801010514839427340050611753899277629422363924592358752664784386160575016460686342124387424405573069835630127264955022010674238992881897098632896547821386615188371075391272257473057609780743119334335430763511077612912926802482178605934551437621484928863527233459272830554290475281988601247961470163484423351034784786952663810492890667749802547990710305684167444738273508120255492393728293474320802078309607487460809792031705574991154399090263708730234351622735545112673854944903330803074430681278948862244880547011173992986686155232321544948119219058155531034008174540025142922586121650857376478168824257971616359543378762990879684620835593161203477990760753333801711297141998871993288602591115063936583167478021010528249522705502192118548936242545764812449338290081375463021408396583719902983985710697459779713534709422624883235610102274551047092482969273105642563096114376160116873343041486347020367821351169870654429907097168216887357452285641389834382707573943255642900291670312064414638147294694194840616184142701835096335763601685880620947297825076084353740616867798321301984811729989047914963010333075818402690506543999697970104006310091782357130004074328828388795248643200514154178048363193940609701919864208203165251116345052823262286325458246397683892987899823174622776854647764041327048367139532645648180416513207375725927400530093521911949731832021158966965057672368653652659110384447192322745847957692877936902789005720453747545957432093190382530136043951534992111874555057429115493766690565148086489574106865455316001055946242702818888185098528311180346165746049374849415750428180926103083408437570078498336532985375323264507733328733716026798309840248223374164354629848832326754580960548605836751876037298195535936454837597464583040293604575322239327610263493796813472555302611967934914320497339358358024848418766081121497207299022116178268516668127176332083055007223111626082168568008172990386170571570004866071327246167713427075669201816764534961946950238101118709949792861135518123377959662247859487669397115085744541558893810223591719703829866491799840956246606708073626516121080370910527970093261410110897275128971020416899588011383825478825195858683597508533088057235726894506981474723793795215302019523965240148907279320030586447934468459516925846324615021062412864951712393404996247221605303824658410712294023518865910913484669277647084688357897281960667900464038045977253845202718609296370314655013965495710160654191635379172470342643737244114033497631755041964569514447174330343243521200856740580816112080834927001068917457850576230659374904178898214598687351015062615096287633932756291234582710639279458531631656228907074165347083949204722104867645445777797242888521101881707686196628315159208551028209047273212120849958441767316410603237202090705844687854510600933373820270208438689263816483993847372233954569230307781343515425023942821079007871979571589905843622980871569140149390471061888731196557590607986216385506435824651878835774458578248602532305759485079529592868704349137297573672548385738669348696134265785471605297021508041802475938149679224040677402983822789250491567282652480717045220929094208325016769147656314732352965235558677266248955612507372206097819246797555064717960326030036629302377801048742621119532037531327312783920996555086407209925667404609157104103155647718390036398595375628761637608980386427603861535188941488537754976982846593664249364298737065006909461246010107113956461742058305748476309662252884583088541200220457951869266403956790878044595713636558783944742808283620225090315647321532298290034697898555631939897585899266368787536951248348897688709711154018841401740392767229473303104721871686350491550944979608800883243554755011101419276557163857301883659323604791436076428070839734221109902554553669515031505566376490085876586771874296494719942502606571502841798869723570500886126641239263930164549534834372247433127912348468410071143465949048078771379881096678694530441168807726615334531776758725830340401800704053655035008643875033137189218680237546391115809717538296927579587147992281574758673463758169271423847279999229938571930605775175052515969914669134467294182517798853871946902494242684311144149750779082450076233553540078225359576620135767646743765336855014584011108927811368774464966558340186961607691506095311259821487680308127135680420931732813968677598822516851861074812664832870933660581755514298785756349864829806360708890164978372289217503246065099011131523690072836077643263598725709350958042634633545529006035496394529067108637906565916155389959616328161398494074539387959743384852966868883763879899325210222488430383732722461036916982583521854313179862560097853562800757547389259547518667756032573710097113069690682237456367337118572136126219656047121331294018404413503518187560581651470375572427043732243939783559518972086726029844654472127625698281533245830386725381509761476429133413776084415874969909002986198738326103566516253961625934393503675440800691402413190553362910366242680774420703321809990702603426681158961861263002341722648544144742745796046735930851512843800503175016813535712302629915083581087341754074062543381692720208464442380741414399698275003827168625655914707577923370049640210539172947393185534155862473824936700900429189746385060986127496706815097551706773431324997549850293792834225734636022390856937652632441309961745658026973197480499458359902355168463932720170205385284463181297464534361031737201643864055046951107566214131250641466795746824829449535699565038808494728997412713056057148466338826436928745429410960697180882815906447760855609921572492197117425884565485474368921385056237054226512593616893728031311715559165147145852186660402662897799476867791845199477307706035661394430369619174944718937763436623992980676911519080022138400165590483759726036088447892366054301082907412973044499246098807302095369083159246009864977458902547468010808284972936869969000018620461556366906765343455945374276690215614000404165409797183070627766462389553827919152002780991929008394050062527342311292136608070197678921121576770544111857581262018377273811591914352691088707748300253445439418754533903866627412521752314042225063627755264281793923550665637675351094194587699909664257801411825973626044026302281004004137475681911652878691343437559999570691550448723971656877094388258250705548864878843932090309777507585972684963911381581213683843050435331778846284905397323038505019954287508080774671243220090912943059527581234880711596170013551663633184197715528147459894030664674447213994747907744259379219469232425341756476325591483017214061901294014378030638993622330564296819573648065751304957829184782886325701690641383838533439773856650704602100095651556090350720567266438409773447682720247096402669409053817371039720336816774585019335331795060162834037554439879504628412436664812163958441899907325976282270006110430069906208630070656890727747660775428438584857301701175927834956872747651545320804869032913039054358665170100844039766310482094422578805498226596906985943439578310688439920397862705628108929337611998602696356388412281077667642257051947087645935558672755345300652258534404826865291963313969018763594922333086757119704221441440242139355151803615386267469970369197154568323056852861431912839325069664949152545873925574198835910162938650001483654475166112786555756217975629660352617556015769099059744819242798059901485345267067540456554114843084252646483023625655239634128536854385963528890248202978108884755343683268756402198964546971825733288984088640507412726289053478089227499882829096745910548714290912900978464954107209980754384683886768228593940059616684401790983094623490018960112373554079040996697986279085455260173190028722154753271102508079042766848675672051914453716816135839613819604968313943171681016700897341269746744371990567860329682712471325241805426070573571148089068769403853811461038148838645083572441605180439583285861754058931610116353895830178050026437149915089088782971595923163672281428040771608858694136013386081381766316673349386214175163013580564303002554015534755105839555367487552717759200518918097657194018886427292736691906712872142717131495768551497860339945214580621020956954916075239837200598333075116329689423897845589181749949335032038988085893746871027676444582732436715283132008583117016955533112170898602713555015245169960490330930499793398047382098116702102182416979963983286177427106053945515110936334683852615369497317362705153181807804669303885751778949384361051008540549888150500924572873162700667249102233545665068957425283634652424814925197190686648841393676807064076945125043684275621323540214411431242228236189880608365753026858245865602137918969301746687163383251888413472234022023899909197534878091593124569384307854799583393873601522004335190956705806992718227418056029621612971462146731233970293199743531070737120621463048501877577262944914767264275767400455686951027037946779810152256739274369396113062706104532101209354969892047130440458800906614804151058427040369979506089244243186805281200857570419843785455955214087714105757931708144745669979630981354386159758321673695131711323819138430752516219284761525709119763593478363203394677683919208450249704816561394264592963038080084891455895309749833270222391840613184879084069705773730178964902342007016170763857205208460960984791693757141538191559363331406826401530909867100908587644565074700118752943707553039690376242471076981371349772351280146750121487340765475360989934061372563216519928104480676541461464402264761433373474239865790089935218004257711971351458825540196791323958184468480067522797945393274260846051611503919189084954796196818349845291518985794966940553133249331969103043136073822660530643347893266551408151431025393012951423312942205660689899772073934170334902176328899058569764413639070658898388345894756927886921696230203675544952807260507579502573523107008128377091748886008787659896050631482161583742881830461963885086514012777237583685307726342391486042159424599340552068121185943384879322019938149182804257176026192858573382426964670669130238859547781300199724116271977528076388380042458147003685297080112254819019957536704131430867655759177331966639082792369946120829804164812966071797955746009432153517713096398736070767282182316401560586495232202610052060718042658264258066626506330428187134393075271003709894424268701356776530183753769869564255741155129940322478191285692563213203430096625898753321770146734251798032797416170502171401842060919464804408074330579369846444599119436754867857053410016880495015008614046673409121905261750390835890883174131489764566070310000288726210544859002376478561317522151959378862811375462598881945643776457227501240142194521779900795889616638835644482919676175538544914094437100906670263704031558112923340441274853736840493941386244635991508586958990757270394824120697913939536981657642505297430683694394498668572747691477588357160192318007239899163936012256027861311504425766965012424559803985017635942383502653591056450208553834360008254353042305764071017446497733636058071691069932097513903982591401201607991244684255139579048173823907369442589315755422000439266547329593793375260448737275472726392529851496967670546539108084713742014526121808410830138410893389701335076173119729566552077280030910210666879015430460622867143444228778973588870211400999372627126775856014926376404674823937029044407335204489432276052307754494392645252967575924233908013245225678591030478288690536239996627371564433106975797513024107074263016851956008492473804850921511651723473017916399913786494913182600650462587701867602129806930306299156108840787656374808947568632349873549382903202075105089722552097254529949874403538653929839865607345002526840451098337107521526276326405702959382250340883368224768347287285271526185256507083413370823556174719559846546769165770295561878812594145183946073020095045951630431439293402943420273676995146916472731174638324809258218246431733337183216229761216442892893749085859509512447799894541702038771225650715350223643529617837688850587131465384459814282369112936128886366306766214764933403215602066768901142450864652378175082487476091993572614701610896673846188172005897964702217948165380182015129673315425011168472785553712897844190335615146856402316856142975807263340947716099963715359912123501556388256888247853863809863936844511876975721035564782954717988635316522314302884700327853924333480211095612864770083837849341110771147137879117497557315064796280840315537593413443475275738483508363882847020273414597259293540130274814736020907242734607286910775982048579061403118321311035062168855549874784669096533985814760333145845512157851906428442144610393010305199204450924016907602200354872469905617381172747801742161975829423479743851265746985179221935376793817349619485572164581489322072577733616878916165402346786428668024638434060958193798009458014610556497709103232157249734174132569948790667573259610051048450968077698461651949897578847948580063887031575823819424601848818995059154279376289243497217668195670340646258839174264496368886012231793566742359769274372003154879254599067543110529964645553920424234784981650948125643105363276065007658126455504307322528934376923182902063881763566785505402390192651934436419733318228032278657568168672264767999092675699355261842004920376359293168136966235940240940291930446776123982872628047667275981840573749867120385729427125762215584539352613899023654587018332518103602918858465462659876434131089874561401982060510842721900950079854677899739591828569659127694552527794329069418100606746097552675376725272361750765316999869044647436053481296296824793294426407384573334904901413336029782779663567810446859115760826540579586176819368783043323358555177055192831582498941407901782399581574638223846020573432459377035750638307778034024833801306551155178879586969374331023141073947884004334340518035465372583624866549136010375718231200864273412655283065920576285710152339496200028875231784318963929951988085477127134741330465083534268843941913843539795872425653919419283429361811721249426968836675052857882328352998367041084869983700337513348491676269782348263017522540996526006028983178826547493969413816710889474925404870934512789180980776646747571232163042685580641827948672029937218224959620180334660914883559001933896315138038069002465024063413867752462406094886337100515568606498080845699500019234128873609463163527318639308622872499698395628538655903865206318009252298186853666608351364719771393188663391616116385869751868431977281269535265055204691360354547828813543526719099632520208256873989812051118083505616944125503120786932508711009700250118944309868725153770526586037288272131737683280983565749836716533947903040787550572583444664999168649680428113919062854189141821042552712479011975040340575757474271848419439938142612006000406359232390332103571675801697940546589483357412523474078676130802462227821157104029736660794135647037970859686850142502579198593301492700038051102385709962210834810796095951255992539330032376804629713091155270812251912580259709998502423765260515120005583950656392584525233990894768364815549695431868988946874634046797172959509311289149759086213915657059052904579853319784828008562036325033655726012556031842127675268168738250580143208648177320126190605835713930838486442221860450632579865081844928364690737010157762910608415186504527089656029557563157255697065182162991699917399795210225084308004094297974767659381341282419872534063065784014886268549480149492318083286664853918208274050040097215251653136865305122696392210187751544976072018591741181737543476234681466627617289624711678235329659298101698545052180828358727708138798230178271044652595970507594797822909175068423891573485417856772611796700051838939889745976991666070475239899317747095487750804666336544777609090335122016312193721744583755839497292199937290703246398955712591328985563983697595401581824047965102134703196513590785091979414650821552226028781812383991027443154393164000426278281373632407313666852561314592229877716733521832034682502506813110602967800341618721930075524141632766917526853805181961802908439322560860936649413536068190103749773348450460825211776575805353338146755063213604690772400390344948358647523192736457000337696213799491208726185061603217726114406667071332329019643783065223515551599991532349996602259148481102956866509931362022405183317932014862927917000026503586714479720189845330038062207778840897131014588952348633501529459007218316349691727143330100962798472809313989735761618521166717656775444053704069358678403686256929318451132566184982551292638615472793859267109075787697409318091573342802185377935092957816438162561177618659492063841983799415148542407249289164683508874248606692940336192111212367575859391265815060552374048114481022260591258088652094263268052470320099467892357568540146485549622413127558216771263804275692389418488350143525155597415325463792691503107631686900670969288447928635527717812857375633158914555915103285405076947645507241976337669306934007253166928179249264237782650825536491437545542660270528356621780631777188756208236264095139493074802201563422489706653239452443865856924527694313475149293456453344414040811620146299576885267311568279086531833280179167333954651985120459318238619280489557594829861113250122621261427018667586957149620589334852841195354289002889830311672979161484022728400908727237358752545226740963217808818511248279643243936903182086456182458275119685072276431115775788251928690720124324729627277411932946555255932304804160118448943237768760707480193389028303819917912183267954841341971079381370573961610302319193659379457771831507759436163639527706794226402092654960198547550092190600556015983167905923148030456282760648805221777361944737880433384295361964379137902267708906802497223831444564126597908798492889960808034432626610056113792617725429303842125677048596283764698719942891183709155342229662480743143194411292484495668518772622711394546094037952799262433580001899907828270948321795297622923019737225207125661156591938681793089384847483575722694463457295662786817980994339512161235269764897014142073897818045086550283903305937629770793866407543256954475864683990177787996038963974603829803792283685665936280828055372907003022034163475846866582456046350898190212047685624729279176895455399791647116745689869493856431547922121308787966731235499310779226052234875881272095352081612909767393822273085309852989420500428089294190114999861093616255511028423376715001347675730179811867968042725464424452607378495660364001258231115139156796550283192429816357902460459482989081301329242739456551362028795841748438224631827732922311163609709469565111867962764721031313241781346919724986094703173099563874512520238417866895316165583076600494336973914256312451690281360619409194226769864517035712104381462088163256772555392084068471173703863928720716663221566022977013246182965905346932086382891098280038960810335605868083939921817385303778027197299289185192034908949564067776922744006946621442311892963698083455673227452871729145587419330246623518932272602911903148263194518383942777942430851370332603181553265274317039124359834059105183145344845778912666467231442422804593086939187628082284425098410841461770443145062457069310679569382631467362982679666857898363584712832343622606099945167488710733331058631017314506961966487303730280736873275857648056827539853702804006466386800035664582184892976870670090172212974488038132103063178944538301734622198721069430525958740255191029773168433287396703912312737495215522559375909991475658932406294500513592765247353430074925837412372618327504792757660937835745357859999377421072871562971412879815978191362901240190489965700163083027655014100105582128890580123523133131440330841593578931932668661432843019032365015041697950592644707395625827875677497306058310516935138235255179157347755179190951779815464951888420036504367925923954459034547349982726154737170894298097682147618041467464622590584989434173706914052332001421414551541300895148068874826161718926042930526696794226624891554134213928493969803751583575376039645872275963589246834932595072862791335688063129729352046407603117453414178681265331686088921192819163041634383997612556942487691584122216785096661601500709252315307404419746166530944485921958101407373677425726465124188322217415482179732277683264007163939990822093322482495581683015975546430694021874420491089419790481076077115091402905158503413830830811742575204121200931043939995615041254676918939528337800599653089503196558854837952379306197548841995741003578272704819885653885842052225250882359388770201766790780259803030494090713819997300251073996554497856673709657452003029174491840320116337470683398377036713697520680144505366414590451223937932088137356712607847798877660585439392574812941996239148176131199334804535392269191560725062519073678295469035187799717500889141436266690231839077473503818040113755539541821170207602360194273034955797254364970530327507037739977148149634340812564637302478013674780723523667996709583388600572267148966361509541313094710830361860771434722172848481471128547160642158167876226430097757092406353859654044130902453148896274617169425674597561908912370793595308062607554444491859756930848387368852924322556965160754241467616542848488461039099751591871861943534738099785897437847182840157264286297505114368073630949087070032723351064411101698145580841128411184562468744327156736212615982553300975647104839702804949135805155043222604307671518481348346223893631367621726912044499478225014451086184440642596985253228646489431697270158085106457385037439886159417001454270350302491598172235404300270677263859161261396910987974473281221875853179044974720431372146438247299867429168971132725069524065280270600299542848541016577543379760233160664061974534024739715623491949814837564893926001350711307308077636196156227027310966385720504271528967755770207104063207426861676265108965388696836153771820900192249900847660363887071116128366531216491252708814550053271186744743226522339890996721391954445500940708884311930675510909258241085974177263388644564498210306466675638309085930961748229623458117840599687741333702996302017031511815091551837879949010360774944013105300773858454448407223628437114969872470666070733520657549665238310558392449968989433084549254996858464894828333926436054086937708327444820240411847414210303439056058635299438959598511633866769842283233556669943211546022271590417820954669820554578704288165180917781885239807490969104973906395571049257903223789875546229950335026578504550191715531050705550749131760092194339346478184206899621487576577592269721096484160767111894686232185927229740421155961461749888642455803263534238600873437750399087562314869896194261128091042509317647274563361255206705217870937663027404288109093756648956384807635975440023834586220807976433390668157836354529041242000534837616464720090164735805803735338925582618651563788446569196044463322307243219334267397741212964869700359204200385667105150069245943290006901717361964358765183089973639009170239236309167872361430234467295344064894114659535790238691205902200999730129548100857042354975083447376981207809968066303052533783893066731881135368566580868335283246679901248877024938620533525756425736430610935156122739317768769338193690716233068146246014306524471957135403861852512274346318632004787213166133031717397595124116536776668490992758229977429081526226523730330547459704204270384061911351725527055078611145968102535989633121121009268015554751249363365539773280608660069935373211897193921371093218263944413003532585199796870956702513110349656917364631406206434292445535181304347599531893790780564602015436889249605431286177794898657976434659380519855792707745290690078096068971417082044077142120210121650965469751149254442190835451299884019901383267027654960745338814811911337924402744130839992143079289643375914786006815374546715147143164799761866010399630103750355271434342010005005033684005671351519728375547501207835321976080226483094451456719079690272189487533645859469264726411913292394980210545367103597364072548675272150602551488812625906674782295877097936712137331655931783193502759331986614167454787083366625515801319660858455917321407142106050977189523667255473240189674481724448143089380358925969603593021503387402596776859989024273728100207959150744006926292104437249744296667193014056640076097600884380172811855907065597158107418004082624057296736446567228816902397859207899915720527744183024971575352862308610101710280165603645057024095899316787743539137092902992500802884367837110942744099670827144606446872681860234968101217757451313968859319127529005787298162562594837516208970097290238292130385789354284492755609585912105733111794060581374192531981143610537811607318900920861012705788763926066466635392653724481122478895642724216296058995125603719179836211313279012802790123172424248090534760567313323737086702515158138350561299535111874951938657147513799017119605834166191300217956647598895123183597925905985424294895421271939713017046425721561840330116660269777778941337594602018676390022109321144269334261299566237204811728947393101102619223377041419425202779199855134697195330918868073461219906887520706177578177535265323591712178968417419316411732986021764633179851182560063913626504108519628095826492498461743608510644309658366107637231776610640367159324612903955125328073776506558399853089592588823607827184967903347800652845308203148637248647768661428688151537795826755239080160524707473889775628602754841160774410123383504489079109767333933061260236193643031618195540129117389953526662077732291886030941430448317404203549110971974102021547843795311900059576921231112622754563392430782207095788013202087668633561319216462205248205751453850361896338834489748324643548564614640170973122046572559598212103660534772066255410751199710286813181862765141258937411782984717739777817191311100837804681643155957766782235273141322390859530877710927241412997936503011365113531406147385764439471919910143789564743284729724079954731776402706607263014866405520834332899300655581525827720500218169157856637720685291824936423438882966474032543168684877903764527054106660526590320852019879045373841639634318167660745124687275133942460303591792810711170798238589824082434244690062676761614414422098065792731842061723076442204850096183485194605046707918048512427848100496818349501321890541562066695117229064567727533343551100412311638746738753400357599511844306894499133971622172054359768270743503593585290279412635386115067870058886146639166881194137289868303538896880756418363037626527873207262602255473157671366450727050006012980218822723926772452262550152459366169869758321415625538318273646484035932310782165147737990752965967924727168813117605343763308400352947345040789813648098344335921033974053236662530314070337985839868596019380018373471230988258477859732499249366121841799987603188683845670039423822380699912603736623965541715985535451898975231490446316677200763700707891694209973867567382046471102029059695291051745867022227769188814918027349015983559413025642758337918768331710364818328774149050504642800865954994077735907312835103544151576003015217182913029545838423491576466919436186142203208041672534152869467916509068775647978054105248015379650390681803457966132646092762767827939557370809793668750151139017556494788619990171560787454946989353943514644297707650326990626417089506090003823668936694858659456248407441218838583862356477887204520806339711743514087753003789757412341787318681383127955107818096971137984861685666166512279831161108625452117353728129149508505157542451480725777924341132979192897338707654075120720665302687847454143247016678504362335872144289608815188426919982764238876558061851888752788350650340966148715423266379588328590626731980451424361901135814656730949362337508954870644920734793650084515181777632264736856819443397806567736886332963146978475090400744242301556580026085436609126519264601879606451411927739342919146644834483317421446467473818933656646492301197215467783921277633414616290182789353379423491400910767222740300433155935680975016429976432865994972474036934830947172048321921190600072971361969935324217215396118952531187134505978788730431494405319608163775951473146244174038654145083832116312387337808023135761584161946345982196370526381985254915354000846785053712806003068369718473542632653916123025008150290167977020458789595445342335237628179630507962120173214160981465419340024788998157877819652518730775413346958260586644222703559990312419906924079539915729877779904384237198034710618982584921816484932513357661152809151186867329434367105835433708343772099557379840860365852580551820182196651187084541975694802285929438916342171214651196166899849628076928276574729717396819093009642454613015024342897404924766499787118256798506218751286326314406975046567506485721334056085290712217058580816107607235218820693024535316261419037020033712428228016816582390702156033520896916332207844807633865172327114687727259120390737669750088971598726232937801617015652051214436556360835076070032130575958115451111683393492732449474695818655116842209003757051976004104247404083431388563871768533586921942051637311410260595125106265586879857881663302711685790095516443891169542861288789550144502981285360101977587872824479101016069724093119824879585585497996077620849572468100654555458679841155214569934987606954541372695108666638943968243257144397204469805436707893601492828481305293210154843322087743784481464101517528006386849604153204308177435399413451659981675460634494928880699583983347710883205252053079876517357702983047899137657732701499867410504331490785681541938358827053425096193783982958748258719888832325964165494063092503908706313646651733525966874729241602520521782028742379419636600094052524435240743940561347590317330169298180352578146423992127376021786812874782730825692003374064387478684211483047549685955423160473715080358217195510637615385800544617805929366712485474213032340204428114227907674146963207501947105626383589173830862500956749937993488104205183750583392385091534800133923754922386107117132138212303444807620078249902766111130976462364482540873904081211545088678073634402881414268259698253197624537356424959294040632787579864716263278211130042234864611836489987081857286405982374873346647198881942330464081491906127576564876691069598423624710452998153797399309854115492832458051137276031778088095966831833854067628869275233573190084192264840649946799040670258708537748391489847681093999403378968194057363358502850909532026649688254940234205663610709012852147231383202581519533849750181718405021863046342542703557411925870884778073273418496828524155403581119267101912877766011926257733948178680383131951968383404306819442547421876229068532143527978514567466747669316657620004798076779740299863091320939429639244205822357826286214256553904761888297405049957545675779793292513836629525433474502901702912936363541700852460649394004249303113253906180953264219342828716665977128112150805911242649356760161832289345439692256701905478433773141540214730111602455939304289975371155080822344797101627829710701843422279913961194977556988330643455478641824020234257120587727498401701406281783618890507086735842628090332494089378183509818892199468396921251200153316967360321829601772045568939765452249893477875609156212797183078747628936919170978388424924090150415486058280428971796096775369909221752258465229652921929264374440935125142916894677463773449411890974540956377962599707528537007522744032072632325488070457536248747426988096618576665796231576170632137481953854618468639522698259560357293711411446763588904591676933863280140985028433677839076268790623625336244520159971114923047182487778908213137905700703148409756758990291425366067126243551259576025700986944504042631772637204933550866947174809942358859329454249337877456499407244990766336326926595624488598830535950709193691337323810184421606304760980630311443429444198389013387147357219183337284374848621656647243402188867964954151965585626786894538706859226135503944769592257812560638993464892897211608566284295677241981436201865413573636370795396905828669711721701063937109466797856782782333482249946656421559075456433228151175787910152098075177198331392241118245527374195303942115106143718021731845752003799802321569749156163348057636519380207343756451776507041935958187772308301587842192026637131879261886447500968259558175657290343268329299953368089961219691862484304417665437642264895901103225243647516247268280033027085821457207338363299136782096231818022430846388546758244082878546070482459859497022601086049376780741287432286652108015775410828885472118216086194183344059852649554566454559128063065153492323416091367495278826365365099662571787929145249962176665659212133771002738994722162170976041307226966113080600639052156771671747151308170602803436930191608366030778583973119854887770958645561159732868262316969793189777168309792984071961035689810787818162423531786891981176788422665528297926701625923384283884443087139744737472070918591452758452138073465906979735521353406228925756733647500587468834205955014658395738520096267539578291696141914151633789534495861673055779291299518620037558157345707017400469876767285305361865836140821113173452898219853134012822727838093339190957925740391938604217351941584101446221458572434757605797470406700768868287789743082318185045570917406129871969498823784598074594550469550627868578212135564121961923663334716804296223195886939189479569854224034484604199423224758679557601770377258456864861454860798047056622505316752082828958010447630949176713194849806719951309452548114835648079925750026422688496073011876174329862655162409956440019801460472891667183104940660944833919936057064202948513800124200504038120988916574230051564022276851072287399797458435234760580740398604369550442997338830327127275206158377544786299543178396264371945048301821866367742917739346245235869255891824126686833742945062112070350227011774823896934947998652256437972385966896268508796658216280551098466715816834091486268560329272830308089128826557167648371188804604742544188977485203885990722471214296317928810268766011417421855786119995072338344870639737863632701712734116871291240057766315022178159756843006419210737478041695949765230154602066642761185280871754774930914675901028435038778206783982463104184783005232813018622930165539486063289620469616647675837521910178835009457901890244410080233221774648965365142282533294670459852979765791158012086682489846723094626049316633378985131005429641642794511992030498390923821834158330845927988466266550919049589102999815326242418795829947780388906587150694393809392725082696080879468302345580770510940358421803278531332872352261946257178437825152074397469623979657269104534642899757451889933218677095024254142483585947316163449911769509537188501627182939758816698765695356220164664262158526405793050584546765345179233607674630610726657099465356377504900033295543881461111551844775008354011007018499734659237361113136343714555739046197131877592029705207176035059245559159404513432972896959452530783993682869591049335445014144142915224809802835232487317384202208305536822347715968637730790654391224133062777903375795788307362501076853638123026692353276451731300167837640173852087734648993034186662028293817274963220918410331914014412305527344133864712087871368838963674624731501692167321955121729599456181026199086133245884740231826827700425124918328626608259468243667026837419847958187052827271633731815790160924033765684319689869685848972444424227589617861575065589299622208790706101846632084922212924951529851813367038676360748013534140815417882531589507829425698195843919162877020481138704843046271900171424345100777284831364955716636788721241051672906270536425557461417180094470861822684987920396206406936776911410809341427222574698922606319319450239882679515894144799709164215032492554945087306369466527856150801653134477897008122090618383585216680047593544873909285746098493869082491353856817301708364086610848205450919149890728913716009012830952494785728570314675904995575688746299546639849633398014127848130765769483564098044392766301661583046485667345585928711125143742873227511234591590792639408261055590253477979743568871739070827782098060127805935517869487247827744427035579065147439992265598384627728825003027292069834326101310092103585549094438058912722406946858846787694453244754486277652780522761196365948837320535614610505739709928595386324709944459143146769139056827751763000349697273848571230543211525525949678599602186313814207197128422352222665713244525931567643095395836462188026991435472098159698065407765156076137666686046398273989690838091467253766462363318552947615143465273748770167469491854260799063985606227663848778579819949617676389075039829731024840094366029437323330347402546734860702077680309793310153604128731730571935891773506701264424870375588069171889656757481845341515144711042454336200338628486556705832935411792376990524494926491711946881434423443005125984401382914644764102021086556403751661397879508503579535495412076609610419260018095736449185678282921290715669584349549042038753726514618772745035121483636778285958920261475740568673074224599880436678789585125354682878439829960203756537273168928820851913092717111122108568395897241282417847318705642256554670782531559460639973623767195423169763040761667691552752574775923766267071380116735745976515897624102957268770254652329771141030201086361306933454309197531710673030189991707948957944705260868766089480700375486066505406758415616194162286790283508355426414102850339935816416128499739638855394454239619899014240509085622932222127204687403883185046557652798346409636737718063743226238124716410266954515000720303906161679471422581080260905397442379267193434105639784664987215943363106943239152492144746856615380891865891403298088062135490887117793541858299135589250196774903756882168580494992122967316381788684939051045894739167901130820087469726398643889385914215667890564991179740447952617602850843423426472131403051294051996107054953219328689299035560821693226891188664890747547577369669068128014646828809615357719255095014820467467950283419513858720345096030160760175592272399507560273908273915018589517041644353949691351453228071463788699813104165897144274138199090805600672555639523252867391349361761642546903653702912983550848290536284989596928110246875965227242886655060185480711657028667919090561693223904037559414163438302725099332017478686194067634575876544870191472345296016270185694517131967345182449172820259497006469852004684330510199873539593962929030482490085282472241063420081921549853577659546583568350267061009016353685042736153281509027532345058490828559133743880534703950956629516118119902861869911221724059554427019122073506403583968551691629913068531228564032180107731188504902029739759630277020860398114911236456235544705149333027981048034258144674901621460602788540990621211519455017579215765847909947751457785034010539055583158379474316414172689892398628909752117499878650643047039864787383937261202907671604716691743946668540778574986450194142953218717897833594669075444973840053179496259623334569877662068607226378577081771996210902783106336750945454063188448212696357986711982780082204847504158738123083513074835105030838574171774873760686805488720944231101518172283006726488976940177927869988093760416163173641359712358065338968849186963456568743927420919769887501672113130359350568001539871499661954291491815822262465366764022164449547107659743914778950678049382538578475268737946321530507576384271614435243231283740533309694366830499079444790112307766093929157949362503972767752215225462682808376526007280383342410695386271032144488156625584944353497576603821733146832100612224429811429768701696270673423348376317618676268499925749784953894205160096045533413620931665158856911101876628240768896698713819014459348121178850493307670415567134561992583246853847613734528081656970990785381903958062745935953929044837502024100265808259822252086565092671411926542458200381515566535834622267343212356178248393606232974879885645979320086714524896982232349852152008991079077318924791255433589040501116770615409759744975893381584809517348023712951691629630741821700310309669661730149703297275750443244371736643576954901302209007224144100664317496516632905304558373876412143869380003868654276596372035548911352587825221491414328956840004951030212047327302354454711248220668342470408697389926748845082406164723574925807319373801980399448920281384225620487445684170792685146382404906170001029405150667612260027041251564120388968809330835055999962526744468354480718020213913984062496114513489428153341341372731163830049258459530316346322827044043547727493530856161061658723646288811457272607461568478467801777299191337099853696738157792383496139223064841456737863454195046517712588747592905040858449581423743689483776684308254994575851102149402807020190812633286536056386687607802017189033452502007540922638836599250008528778052058705046976469469961650933936332406264015825446599560447142333891379919225151329688821251299798293840442840884011335930294886430793808454200488552488249943773832657723206741077471347348959587527157664493375966010252439528886054988333916352011686239579013690070569719001957071990833874548143491181153852103266206205924857357169621025714809829311335529211743654685911449297519940238845862277676568804996337821413404080922520054082931805054895694275862812387057843177248179650965559313280347272541421849209660778369667808104112042457762378233824340541084881669505835988520074205701693841074246513289207005492674350369173170596483836324999135157553428049341974741957221752960580223396340503840770811221679253492588621090658851149519428546263089777713526712157784290319974997434562253091460766740906836150100321091704837147250845039557811775839543692945564576607682176168835692669587749026562840881592297978210740183211003532037635220945638924668282543730543106622421419427163287676475908202413614923565643419318619082446158228136336085618768948798033387707905137551547345525541343376270763953034602813669692659636721126787461652129425000671356135892145361008776398191357745031350942758409150146854764357515234655346735069174180091644558403063415852315243150219960099473086553291519579935019780986299113576211690777558530972823671966055074292019906492968429875053405690372416975811108527869391698167384240359284267700864436076255365099375077932424134743553787808167116424676729509235333590389824347882716857236442180511360555856442783422280936122926835751695906979488151933443598597410974582456623229594046879775791485141154652319044855480701927109536544327075085954684335376240832500967159993730161938846349717436805459529771782498058582010135052515309221500919349919182414587202484345123930665304584858662501146467017260205574314659239477800000391084216684439927232031582395265534085310705855251513361156317910490980239947034273865783864457742089444408615745364297506459704519082703895859585069428977446183748504377258260038218271118065886331066600297337191720747861066944493725521612749493017990828749914064756330247037955834552672051963435216987809915035044444506006735852736079332637243431750409758554129891557258509167291489962408045639970741322646729206256316715981242060257791888693113633873200275547870765241220493980717899900083826475216557045052644609952980457949926142112732673006647576000597393229540002644840744029012688606500630591055168232909645519832942954543747711219212388070098848807811007382074603850134290853862864053920630608400292300400781442646562345952889085185695041552381005864031939385928546900270709706627251365788246883712162134956939978465618885991747653267196301251408486160615997446327092564124761719831782523035349663678273991083748731421065217142006106447122608719610807980748559036298901525330248656458512708333176062629274218586243344267186109787279286628688845356089656485890615641823018477397335848845403690235439010224671290332786758293662133747209533631639851936291422332595870911750586401755275061913770657903121552234267039855537554453813946366714022135457867201011783737366282448853813818379690114275729093096532453277384313578852951793924666012814527609763850417544400989184833508752581980662770392691436083530753961163725726836768054390896058731635730730201637045742480129648341449505807967542632354311814642711105292549535102264084836339549654341949355054182977801647085475951220207556174421415982693726330622300980226376046961528341883009598015934062593236496806815482130968034855344905777104657382090843165559297634141592231400676809658336353913399824126794456150753274376909889543670575235450048976446761797620659441314345429831774885333501966814890842099259341059076177236853936050757557726137197114600889995997992268441338551833202638669288518981956911934330019891777381319195219228944224058991789721485686862200970794247670290731803316389839922798392838508454124281964877698195097606664984636653319015212319532341051776473338304577720098603653434832464092257069685212682271495093368029727715379582346750403113732846954284271490311536024322255485327503172690498323064463656686998941976168972626006581883273835006808131219714272487156906839862876504695925804836140348126374732132303183936812728405741892802784306927452057104551705400976606188263475379144476849723258637331618827742554182356065544505076386938948168741953349027613344784494506650097704169253988146494101930011499586495967145814499535779086567588286793055314592450943701826600690633312699333830279249065859689818592632385620916233275011335776634750334405402642603596510360050526250913618796145764183369250802970199877816467338481213819458257680243546950788390570326198900401535398717650361635079902995160103671237826084928702735435906224551569375946311617573730654036176772447573950103362566627705139391609966544788494423834449406246736960797118540349461420221242240614468607958000816494573195533360055412551104056541737295562801833372174031145186369746086541695901148174241954074221773696535838082717803425283427627617803474739712544856243020344330416080178390180822049748063512726629326140856251550518183888256783065048846133527818141570108901722407963132179276132250192959624460053280879509678709592698535277270519468286259839917376392601606258772055260880618019095033975179192455636551588568787933247489738246566659969152035965011190943815708866894358773941022061196218746725055649648652124528058529776758021077243371046890881951154869036643919296992484565182608649745031388028944943084001948806611296171262296922674237295888787622109983629738476757997339166899015781787817072354495898816724944169417439477082017023183939155535384656304321416197649206465979539947729072735250447992600837019929623517329033479902691012111904192368241650176023563590151511084274807263663187728392894090935001275111552783400481279453637890410683358974873111970514169430269530013762753637516808726950616020543133623619166987279000953231580073959114332036819121153432105802027417458529957162321195415684474193016516003575308927252412973923166537750587436181866777642906948668332685995221431823036276609356667048596745526422044810697488922082953933898844867649056529840147310810964691248816703199339529229451740394599909371296760686261156194837003781022173092853164674342798667717972739010079289838681945483864300600242594089982358632316045625834899726575425402460012903790128135395968417873992458100130524180027300257469070323874566335742794680674324374359368075574981131714537421577075936356313916405366326690773685366372902327423585875591233766243554986486354398232783535418133690573667744567086120455230328144568646484574972054757210590676893004126952915540732763720635288656471791507119645636761573408313148636548180531363241687241151224587470907590245988360658538397616702854397758140778929311102485535901626218831089297713487796790103387124792945402937420844228960121805832190504928948859801031834371539803065539970925561303575588302246631501971919857251767363959373294296698705886940865167437607202584389943003549778131685727870474619096171347343392574814492853248534268639735520215868582353486043150875628493939917503353451527589633918911380806498468646922328293977942076905978794938520421646493467571562254645912538086541652715898326413782924436852286380052375213039757296983661422411831095686778617199308470189458218925469935235289729601798408878561827128228412725455941607450718235858355595049068825426573209686262917462592802451021739844367554534432630037192769638845696930673729186722861950815579006864685372667690459914072564509209788484243748793578622387622609321767008372312877764947688263415106432122524410789209846140585631471823149234514986324934961180207077471552388163676221907584209894931798153573651482957621935564565046085425327040912691071871167881999733670433961231313500651966759723292217497447903065936900254636133727667315610799923696508570208248342689840595256711228504551533651205603206940195644721024604337518418789670197274610802040584817823604791733616984285438814931839200192387794916398581358072059428358647775029900578420521961802696780942971181003208656976626065778509831544869675701790047828700200809299723103659964116487174214811137715062787502529413699029877830302292116739587662433541195093960218335021373823628808468446277642885556568745209571558622070297400031728120011320302074484530659923290887126357610168157066796019851999914545486113495834014540105322061652690711326554734863954121440755340157627920183132697500355846870561935695674175864822708890612487903467479548252992881134017376621365122244663300818576178961558179884683434375642562980661380018067707238273127833755772347182898610891364643556606943731526361915989064062848171545351057403386479431113266340660805721642927054590737741625580444451714066798938555551743166434211015576152858701002412147001689760875046485417087122632709692541537201990516050245956195329194083456296674315009692668445773268358064677332126671280303802644143364603076885428291313728725716272722506238971812368243096152249609243789557679555739690553998354314405849184273231627315704906253215539110012014287413232712433757980439360426531629030547456308126788410953085260757644786672943726811756586396891657237656342545419385018558781536372386328628061252192480210534475669593027352518273507953946769305546226135991912058808120085359854232510699860984447464543459792295009532837951660393463067239131922832312664412564883823883363142721753835797861936209549548907179551998288571089591748573392347813502977433626501885370851908573891191269519560532430553985351318331018280107403871938429737408459170438318005072228591978501007961876594266177690250032966017886194328835188248817420085015222414086112497926357009272433262586141584634709208529075243177197051002398485899630881587428989564840395449671133401796477214143969366455174875583249895617005845199873967275103142593951992494116691801185019460919777569450233531133539292491293956695354650707316001263718184421631994968570556505082655177105340920540502529678186169690578727227127668991167877260686845619407436932720643844906199553726979364485802424258145551515740572028219294742608959414656181238616136586207526943640649562775324864076617942946785980507674555358975836859623179136035636525796790918955447818147629695823442920250695111086993263917837358884521740536650844095121316175853188467727789095748151467001104612199291254295191214218894787084139443830159746835511135425264987447602711755650888814996845906725907198602977356534759821581650324541226980387040193200910532159594539810600552778986398965719832369604118148532519576470791504945401663975058766542522614556988822102803545984995185839593388975225878833381182197930058339321126532690810217119650690952178848380585805026591222750592782081443113698477125027847299224332167555073882804882499242421247937323517212385749916104376576750648237372987566542999456052483723570713706849653572880235179814614423487250203244899990183515919565932039573460493079254293169678487674016934505068224173654622081457799723122486647259913895241810240894353653704289220791414854306845784600562208841895631066462947239801959445482749381839970078931927278178989739365371398631080687836553712536795068214751809053066485162175785152963411755626876937581393691161594595260900452390250293557628293393540913346565062651371333072070609537132240433693933135209016417182814920892624781843552087272745020087906605701106845089263995399770757946060063561844352620889361325743241347332640386535012986486508822927072889066659626392284951523883573950188592002079347512095148363739824171510856848091307037814968103388809942538722880269779183322568002555404068503925499056497181132391348319306987038227804074465896695139326284679147979963335995299059060054674063332873546262667539719835276708417415567562901973840370152937188542482589059925152144493402786043733441797702787467124154671899773429060383620505590379038473678110247125191254958809066204935992100059326315630581234085365578566351814596354102788334741353792398610609000225929230819768323572454738608124203098784469304442812274703395092313088645068272326472900644154253270934543856209471859632947831301777319430621386199251070316900134664236181064883446894242858565486919044387093536677898886910473479061322024124126135172725065472450281057940585920987130210320819872441141185247447943917932908077111198870309310356336006868436339885124022022711797414535218570351111602158734003572436218602257992684336943201246984555552115881802114111524456704052291101537716270871420258693190463460944377703748418025251496386359375810966641042842896354534468179339755055734653918841869801782726022493158564842620810001686661781848753473645599078736501222944557024008204346212616453969987404265407316059263245209281213543522206067712972654748413105954214021438740754517300572916733795437666306270837696402008973598205975444691065893741824705643032098173621825131684184508592637066763812072773377381253460170189807044355099822010536655805078394409860648179636199621337823216030143781603774396714142903114989782514065450060933254612761196711609469251582608893492006677736644814461929406996460043098392740688835235496427266907314345732872625637583364519130386573010436170675760490117822493400589479111055404501595107760985746798322740210453603698695378782843813013693793619271904205692134633729654684608450557263356747422770521298587633687074616910132847779996716629419078110759120450402655431805756502781764501266930793790237793817656658085515604818121543919838991163307089525793456843272060983077341247044783450002637672979582690003112052411754784891765443521482782728029724146027915857627909534827412886988768234046188744414899627406710526698961049433755760947892120034065474341522688738600711969243436128086831908621802305438887860784744605200902277892543111391752060845516807934472048454867308008935378214885198159340729722724595433198049299205087998061971815419974472803875336327777193621878368854710308232279277767738973477256559518761418101166353465592538046558952102298646241746369696070130154352330549074805744408674367676380625620073443231199491837410229875839419987292425810178403642495864006576085975435719326401783389666783621947559311370289679309237521162431151945271742269971474575484932552205538842909118561126758392338642531289482335184309096902422418235345891316626122277531527913432220444141714791534765698385816032543743572973621239153750362853549837268916334175179118881219921898575906002665949447442191553140057280292009143497010911204761339162303568787058352950998776503892116750259364313822934304039637193632516748158131076638650942375992425797787532796310874871652897690040333534466377844470039902747618085790137099639223137982317233207807635351883661280861202457016054913017861762000838360748878774242086006449934079086131259781632298463023499959304026700224647660757891690142584042889701783912757889203244430946477786418268759179548767404266508848815916217203806969532985924148795283260904428667000529129995241573973656373386088744162804447606636353538123632012673996117881000711287254581637942465787940553873987100466837853284191388537178241705774160862182834821939125884009831074213604711810849533622788518412793588514245267512848434171045333345150917338430669884880722609566284678558552990748430181460280474063473139469945605424582434277977674364985702211150148693096588814969062909135709941648592617291004610968256718453323388096248693950664783143521478048907074730657377228751977643230308028215395586170564241791199418891886768223301633722287277136771915680423581476025981264281918932483026342164802855531958197430633798130931057199466904065483217672765568647536005905407794211130184207782171691639964371468267667230706151332636909876411649941392023427795975103800395675188142140400469128086814408411157105086484222538396094434416741238914573787752157655192125277696693763230201368746155921338050046597971345286097186355052600594594301248499443625781723730473958338845264247710376200363463886384487603883280968575894121756163098641264647257794152769001267810680749296224849569269266094286769196020936062766554992945812585057907952681067484483638627834952974427622273442379601413751876484074400028182949827070789698122176570675621303587779746690674557526210412931088032072040969075669841784663813933011901111106895150303608929072210725227974679976450766823181978360496014688171854187781635076117398488565548844093809617194662386470697348653993200895180099112208415599305543505882373510651158780268273487534920029541458015317071550725410132708167135472186024648360353930648846599875421849069127191740071722830050792251728292254873718816956135182678635337329384659433822882306286097780863282664726107395377330716588808797850865029179553768565507916161780531861525187873393365328822102904917412019956438590429374167560978966189850223979838050633765247310556993826467049115042279883542357020754701910468939565424732368999915669411470281636671776069934515283115247325160566242055601516667084961783724655981809456961029813813734932442914676784854261409935808518453084602131371546395341178370443139980233497020511884498773262062258197425932236518459061496504746759397032372212261704544391058942976419471483569562745413828557861894349145532488747531122766084417987826599653059209299762967106710216606209597656320794570297261304443388425694020695003407967917300540978654691092889147308083670165125812960547771774598996900848478059149658438904498150591794648510901404889543039838022894372727889331128640802956047111965241304741748712847159458916587876907332642909325811630463710422229169208551071822720623282288728970532468342408625068316332484732727459694695809223405180423040183038383394449683881753912869893806623646678097629341907494029285313336512009197098610825771584164426155586052503337173068118938166537318310407916439756628922296757070220048558679401636121110864756899859265476554620408587667456617949754952879790393843591846385267842810910051800905293368849170599501236002334980170054102807004452863854399211740596373914079602959771177577516634024245961156930437623873105267703132627825689370948752303424229111199336941363067472231455147749198079351525792278226399732766720239491965314432978758715508414668603861008425447681592297205274207697179325109872849614578754291944602918983353873312888998038293938387379281984430924193901853834776451853116337252256832520847549328758400811828594408950527847994679370988916185318617869062884809919612445381003487149536540942774940944665705599744173021099870593696414730391829142428537263563601463406987737555507361987897752076561020680576245585150807527441815027459013274852972900843861468870633605784867538142070758255377562925837900443493424740981758228671747717940202197231714914724751655156152221284428336894025256384489388454624725075330081947539452861959427573063395532979179577494864755868189457106103985891985128947472495576666494423153005171149897897897039767367733950231149557942699911503315651991625774110670284480526440444370363822471344905823649973231516607508455411352905985835342912460853255348169117329537192410169161834859337676286437506073188969155041635435904678761447504332984556148523074620219911442142133342740506207622408739753218802086892731087883974209195559241235829604152559182407770550515333503158009697843716009648579331603655143979812081430387011947746816558078361781005279383503389026493470702464865956000951793338180639029062344946683106295194857444895087868409223167651514119852156649197006398794862219429098576143584418213672799602817537356553006251871678815502643766374853352928738364969831334584919660873426739718074507986057524107234284590845111212327668423529401175077931416622900201952806231636449869975728148176646712792422829371642912469380614970680723731841604391903246667718567072610807612995126451694663288871486336228729653786996304126920546174452743952065666613986769490355649696497072156849712172120001945666205496985978818525288310941018211523797149178895407886533760587838460101485372515247122656420392063651838866656367509487946321344421407676581091631684162235036723718109904165364543295362330798499754030912052403295435943697375693729932296991190245653841802020843443090165789414249557331033678468065569179741471121298625994537020542989684275147987335466681247052148998350156441433053638907590559651881959007313981544393611531140362942607633495138154908171931369593219164683140516649404557077230179468886860054092617867191246726934198287652070464489077638107866794706075674069103604429538989162772437460598501101357286526080725266512371015101056104201762966151550059675529680679828959281940285790515818366057679161507445814062880304357610546220575721713408654609256936308238393840887550586966700429411541525630687120199847955313239231002168280488321403970617199310708728210975135502989871250748900089129463564763052763766297863244119357743882381455370524699603751701750262280951952499327566642681526385842269010122184073960745685992129557475381546515300286512643696631629654547697157208092452603793313024901641780570447191995761989596530882524638601157652884915769102571593318838464884555209216732622551950613523378084970073243532624902473363807019896685238936594686187176447280737856031729800575418144862814870342534608907685988037402005068906772532714435121889326613941218876757782294147041095438252553276814626280151487941688962161658329505701861161711032393008669080521220883850901833762464611049115099960629653299388999233628699820902054117879657123526079865370637376667475054119395612417079576196854115456233213580889024478574133255637023623413685443560110349381347536797904748041652611541755910361272263593249128184981663036931314092804432947813193075899744234123985578586467069951974566899649381087103688497624422960684665447813119331658469644299494554168105410970328929086642286753509468764194051057960518770335411019718735331396423892297151924871203073798280458212455038079282510417136998021022806229351316676287672105479906210761171475610069727353692874469421573311288152195780499526455538771506405874429521970574266659617702713336047094032748905137609309261105826167178675339503659980405448368465379374587730487711117931009175020648980670132406587620379389461295045945904546943900054625880712552494309952348546958982836965678359188449981259245649484997043796644940467444381221349058199861655029681599874627572708691043243002267373527222297549511606876034049907594360349908067281204159279533323366905099521057376914081332584600356452964559804671741376969047205109791740340465777959366360928442115979842699998601625886005760919433354257522659750004366076696918650590788387523958909794203407956178913351413129235404416421622312170880061630556109490110620432786416357798925398060932740682085805982465804351356953902716274957795737199818637763699430502890223389728955990356128549387527439743308876145312096282400322589069533364146981159956385163980479633253549219997701620507270530413925804069146603827686052332823054879354239713705215805421478524847112281515952270714204603666955097082747442028058386400612102952067092359603230340026963720450908213359464021506096769663599692759676597479163927273891996142036722290062981784698907891132714685714820199785822932428529539442923522118443956669999029079445507706813118783057843797749384289730397259478923662673678369189613066074487138258500576634178422515531869713743993940762996054118784635350158504127514214959765922203989828042035371430746022094208574864824285536615303814798220603696952274107418953877884142797888002090181256405488854883571356794234913149719941870737188653166815477000482057069636657315540529431187513099228295087617893651572195137277947597722621538507117044740885634447900898192869830646488327918998014253395396089692606377966885778741252085612998575836565070529657865738548574137161435566897942015911502378057307303554672910973683241968315926466622112272265838276188955882464731450838272265895924234585294410782928762785303678035816003409613264694634612850492914575771849082662710788123596420736501600429110215213677082566685837695216756476505904464668609786536410772981295229265948230593769419750301479990048810384210292240200621966796149324094933576438374572517026117537582093114339369407234442280570787505571895345473859516430262582332412920818441032052926605163800629910769882297911266911244275919109320756142047144009688083285810376200451351148716040295983212675953564775242846674321537123249954060115110715372271969407846078966437546116059995601735078283665046455561880500964331630933730542828761366855362145043828374382174757479271462031459425913568614707607649761358772520885196417001397965537385733843729434025052131567988036887349578872810431350095836863435185268199962927292604418032980475903445400828126711440735390729029204811209999637015568596730909668536011369576296847991022116232391706187559491816315976586929491084084971369592084475211939115464796921864416754564908793631845764400321954279363016792997919339420596968568232101228719732349435657517640095783418110868554937243690384841861636716933541025885878205385710892050346918340058619423637393193275546425181743216929985973244231860000017897566010617504700995565238858412301544119355894550264839782596071304175406905140028653530998475707007282092901288279084045256134243213564369333929070190610369703190683828595815162525313596089751041702654364210146355429512498261970159799577382138970362113853170355605829228667165700608796772489730889101626089355542343075115297328358485354326195168121941170297135789887587934570462609501694692891292136745590044149867497084327410129401426081267366048791724190111315581995386335154116096168004439430537293668127881661408618688565349573908765036453993422114827431042380530346426977182348734389364992930927894516972200057367820962983058533510162097259719074245553579215165687239104696687337928848397600475917646201819262546742377416511574947815973186794628733953020309390477282061588684478303860195914431695891658009008386924983470729013277840444299464897995686662681981023290499459831975211746162097896163482906329848436742072832075575283382783693213098120852981759522918429319981501305398263837830399165119207493884414392015091274706434117889928345236730667816041376298134814481153791966874533335243374256596081813406968239586761746721379401756052361001627622058348753419133195149539542719716364301813618822378425933072365792392283048832931662073728635217928175351143017907737084212653091163931859484629329694685273713941823447258827241566091663334057131401861324846937399033132620461082416071877134763111607952798171188310338473530045798934683243186743269147084434944671256566535104776538934527109437932446809272699504960405719424781170703496458461898484787096398056203962418837708604617854489332106568488363784858392644494746840664441447004862139114239075729184424582528876321167506877714273490462891820645955513519640033246679615707584779869880100339004551711727412216503226454939437405653851788652848305595307372274437287370537260077765376496120334363957794069781109918073137808395017131021442114414834833009229875323129498598271439733025554193769177141660827859198607565392678833076842305409753909971674580966465903288919482580772156634622909931099193181175906009869794816357098407502003145997191783789702708540154238777988609146670499417719221047598286725873895680148456802695109254373467097653457765624523097461511563509965972094163791703141530166101693830837232471278367994816971617854025824307528077479182466351434071246904450348071174229618690336137183296239135637331737146246974331776725601519434364619912775907273867781146675765401145836606035741024153788898284827745821495068870036141784168406297009957447952833686182666133608174470417740873725498141538481956334006509702826562353987261532128516292377590293227380928613458690527266397347277888371787274427376721162322111664439834442135339552200468051338002341802786740401440080495731618417044449749167897276993861302405899144681150886651755961025858156678822808551751283301384697635346097335015248151004180538548577595342140745698389937328188211194820470105876660388472084969255317747789532560553226522117270608231733163770945236419370458834131690172632234570493678971332350566918570598436745668291828637999036312975357918370903718161880737488411439332556577744581339675183725775731971530265254625528619131120311058828433351765812185495566044950414363657355575215076172214305698223700513296095446991412154142613187726775212125192881907518302011098345823103672566454918416502627321970832261532483813924302579862829455759721009016686297416182383603804148063992149195106666643618989109867648831429603607206429312517309508682735747826522013187863303738949881554376341731011448042081073448096620335193805407002736501312037809786014305182143881196252129203387353210834012257784557703415135415059243027706479041957748084141803734619955098408073615492814839602122629731592932880238373551629623768503750322855688865324641878323151246595453589904625772949373717064830025001879001912173503291529497380344275855586563832183754740164970768335012190891712119819391511785645770020759724074343498492850720769349307099211696675355622816635857969073508593143945953461282799281580100481233657257436564464831218903847574440512445061309545643926045647415821568645174184685033140426713989326006546440644770074349370596543451290746761626410290626416284650158397335820900450106447663995551851730155533813529194671867563222514727679924659281248682629768207106145120061619376096333728208247812937328401105657777722623060532185084246051227766132930244234262494122154150238556758531749075299100410065665695126327322424321981538088789404738460933142289232191333042689403006591544387780987588568968505591739998180414460067355967353330390288510690367538330393986441475766733278535766928434487880755975699079623347589308100359797024597944152937227648131636938635555800123589129854009179742786090743947951935927576708191966820042362363374065981982455520293452579037352260876751683947446073134586509713815017321851600019148886145169475321475000663638941235790703954288040478047257015249167605987502887022180866924994955251690330995576241649673400817340758268395837909856904480372056796183792922560948392803698346493841370263617223234569333981163279857799480112168307043315197392384706161402418402710083628944740244208500637631898707239545642315090586312810399287258747031720055687735547536838325624245731441938455286395560634505975249731496902505149766812357739986153272666900189659550401317475000138347220589728075702835854552623505696701246871110048080157030475484591442720979149500432447428052124901928597889536687649951551949286916441596732649536767966061785226444342506636351418199799688046205326641005317986695998146014930180166593783150378181500430550022721717443734535692047840763268515052528095049379072382613231904444809081870809415053428763141289447218051356657317768721868803556641073828607612441007377341846723050626662475454150274858167209129505620880274048801971400357695840300885918957174786697461137713463734158966986244134668554478513268229855249556994280136065293987264334648832840830259829123191693861467649727000980562671999207368466781228891265467373860195052581246762970440253385144633602478233958910506101089233850036339350694115403030216632222431393551175651783793852394381347934472990458586677676763987671933840968267584792130684519742122323734372569527764611507755728066179496463172985139299212206127727207640215599692607019328041630783995816052919651623215699940121286194058993145490036400857439599381304145745377837110307383946250880598244454979668197597924724930998220935906573598361855184175680270397833614125186203237301268084551585046416257971771465063493959415189644287522166841327442267390723924698203898501769773876815085499406898245998829890015681733884792327264524755859092574075834643831629096221808558076441979047438227391949566980172842857528986356501246633979007609468425667906053947692337631374176573305828430656928081823096313669805309021919409715817842009630852961264139353161636043912063259897890924406801568747562257586173295947820326717580547199697856620900723147176052693717963223804288599816938253973916017585348266405116708940370526799367698198093280529429295688354827600835653767422555584885129094157251562936852113766018279642124079937945350945891113113181201868113283294145610494578218056883653054070316743887598671397295796441043409980757430197046002254491196737127983868541384273749959203014891382671592772492158452756458389730333829402123491975336878491275886668911637793435264358631599571692443592342679751160941395298875109467376683212885791475989927303136009037467957501913093982272550997101739261599667710499438427051844048678098799989142760033376941908156802196435996249101289218514222924420081719137534882516656732222845768949454437465852453402579665410192113746095164666195255686152004472545268531239503864272060004554186723201161605269300832680841203149209252063950650029000218816501221784601861204420952761898737780564485667823351404478438295841490713373742458003683840573875300664116130134214678993190554902230168306217096579184063934714031954198693783523397995137632233869136621651578583722609970497672477200176536024756728503564793735501686202984959421376997632124480497942752373166327466408933650026427558037005995244909976532181095108995872544517243290780421776032639237532545854125118375644373158356992641211324311247065403745202709327004832717245932957327856354719288219225883359143281732238296093034874144304795144561482384301757592734990416204393862144555380652087531005026199502200125004407404902477222909906915596065535005370055225215332716592610114792496711443342525949063540568459639006081165601089240299527904792743105642854997391573638067924476921756628134454295968100837432321048460855383104475348573425169936504960416134002996190650553123950441757121721251834140788955540771714570888944931588108332441985164451679928924815805858789705815840861289661643598635447157709975618527147318763226166185002775277821003268617399209159298655779643887092868466680787517673247903724493847788176869852013532545218246182045885925729541531919692437914298814216809846977852824579552577423864142520971045362431255635935204964279402868617142643845301244350456688768548467483711881019428527633404952097638161455215292225947206886743708029868965124523457429988083251679058680017677432751173972866999504000671249495951799810662372054366611467208735120696677967674601829680622169380071150681074218015206635529682773056284984936153193742345137946947559251307597782664488106516696971349871882074065360748720033148833467566331769571104700289478933748029731480404470713206381983585440075947774777757601202781573773504892198925174794584212425734146070123685079467257405136921230040371121298909246761798472480323094742954579784602007996976847821618329302074826735375129824091746772558876882629650435037399240035954963277176483042949755557084276462246191287232082155868195312581030691090216891281684268398564683999761637073317578854752186586227085376441495154723864398368692358536025069995350600940077049540929077291373571668242912323845292732513346566548868925341217247430610156225102168800432030561190823052437171011372461685168278139006655370643026576968014417456360146644913128147070530302343639418957136179191987920272554895064800099974922986386025476240236308688404838072754945131648029232186236595825767216671952085987322544824967471453447492143856810757675014371642985050193788022746843118799581289801022767644320977917485878743855594795787087247999913079383420834934440171589319658584646977376177368825939082174821534893977727427787342482204863181545497484835017387470753686596852799227411750070218496905365173563646689071242845104295008872685492276124935317920541798930674350292607273411904858171976508523417401356142781190753160404642179257077838271202933601442503003159591315176477105326742492041132742720068977374552496715765889419687810565713890274059687511859809095809085538960537912564930977865445125996029305663001590693250066270644993227414182730477402522229118882258055332362168167431277469849471387727375536868786282715713318130979973031550636662731200745592133371449787944039030641571312703960147437048058174371414044394515811482066517931126854082371159233226864701397657686225126120370081729329457163775513398892810349141765299122434474461369780766281825470584422121141534231865792239788194265798069272403041956607557529599430021559623310678840036963283445084854056559238610867375220474912910861506657078066035019109932377454234541999528286157087539576591631263161705860225718916081187303354047479754999781590195307147010438319959999266931631608131081777494138359370349478019046750350364338218767313501355467041704373686989992722421735195695208961762731609411388410044407250992700110385230426243451728596840310423999402881908023226998608061666710891578599970144677311197387789167324909304161182489299802222264750158497600025757504622689444795047102897859247798338719538663071574653900462649106948206082354431515290554013922123011511370239960691438621444760213394452797750188117167681568820370548415996211034891320268022531664889859404361080462946485660801653609601963792455191245049429250485208339669832669789370690717994635285704207912347845157494320025070290561018299927983239777791199924406009183715040492995979973936489602778404563704266785070579083968024660765297060694486881631974184299503832496392644667699569551533697343318864043496966931377589465832207708137231079026572297337317761065511564177090633905429094685980140679700784093823741860977857246260954349432720401440081993400314345365695891739035290808760339250647490896523526099126733420238559033750722605177776792011337207751269555871113378267075650140059537240592458361084615148215650783414911157008750946939876328902209523689508171434587118642086142891523293686485202658064527692185053912023227471533527406495872013983969205591618005394061515996713078988269381262745690657832972768831981657571807424059191295508422444097650201287535792904310806130952563230091989506033398304598203036794796324812522418151527521435772613789356207107296880975285917754503506073962042466567606661341172866114408353221044002004067672656430460194034181132447164876733543679278171294721368242004413542561274468336236013160126282789749903401160560336047207964392982484347166546540359240230852870919682188764935418507624381366284066074451674316386231300966391162229614622856034867734078782946953265744954796440306254303029977561619866465097978089144323763600904130278100054193039961723703464234340091617211969007226749325605160939271437217423327520958229135212163509337804823435403830011025848494661911480151616758562230193841406444734458048320666523160882081930320500831654781927496561841418807603890927880658734712871136731655318371233535022521581150502403786373333758542504368518192423069548323464050852052152292960485682642317817514812339103605260751050477960663154638275207434398104849285992536694325923980835323650631859769369054401934027363694663288759177653717846205522971115112783578362906448992840541414393935436561700420098287634067764567850823596323797674382469926500769338174105983584738347304155462500629448361348354251523579108614506173278987745779969729160146212314252601781204537902455697350403232235089824918891358090834854106846489409811540582041067546943644763706007030661792834555902785907430341777245930370323272175597305928952701550306749710854207867674904660574076919741231563794918214518678941385057012422848646112941017989767984242048438401812290230500397052508832995384039463047942901824234946590644178463936291012939207976419990855976850408744591237481292816763054651189373058774793786752585961528440841760238329126765329556876605978847199275877916386995341045670385805103281458593511421094151812156372301494572863436963048825543496549651454677745204141058579344732683985831337199957094482887437993478221526344343499826468465067151365611913206176100553105116181868471108564724050890551421827253800546027736524075657483467621034402300783891515838048859990639515983317172658920797265036214241856657624923184358113940128746158382913464889567921897237378261229800287340406714673813677668039775342373917977502014942048844303230155656877759398222250992957960166508549486333545991492968549308185996832108629041757962247983793576004593788978986162010555315387637877249360351394046337360672635373357965438396498949317728523856379050336765275767518542240004201714302393994497811826639062558285637151296567345680294682688349567539163621702646562951427593271932305962084391072076745253707224921214231252964891795963120952726995276461418029960861151581475198442465621954595361592055818242124993261680162863173494934683664518562041983300090518942647999725045740738557471171819587739383421317310367635563515169444612409677349859425003198376244545336752225879773886146141327900632024512561696376636815921449905676202428480156423922675742425704066319419085229644844392246753825576835522230398727421134328861417771189770589455018554567031524258672796326765350153165438013579172226740125411020987754200158876473643276472888154484789942095343888806918197884322698889839589074254503109618707749198397605462206542843115977456402186457413217924642750132494850933629293403234632278369694225569130842579682938005584664018023833986171834541010019918169280530546904821574270237364552346326498482578340710171499000664427386422484211841932289857322536685216374854831782158716594922836241232557411740703227596011490837053818748707912797703068953395037492153495954366835912718016918321162638686374485881129107234642557336010394765806974006640095110373432582078877051291674547226345054854877175463817283060379928802342712731407354070382074024829841285837617367561991039927826013602419073073219432617900794562817254938504880367084999464894684039225331934425745281914034669933236039997974704288158431933341712198238012331822755787197072886474052845755591397527481760535183562667584535126666872311494962755381189322984343272031972514753471494772445631098592034516799255985092070920298052232315146475393466627606265428044120209763333073013176877828333433033016655757082755749660809365809772298886488949175848352577082060648031968597279786191537083367813363164437961246216913544663729935793512212404561575549148514711724006950500943172384874169990331799190457404931867637036738169646783451450375488816660652684992722399797741575579353373594705595003059270682954507807233223239515403000931672225160221459912916496819183344845126570459979972024184372610892505871598794647676859896578931067857043937416689643341508017130981395617844787400097745184073226914602354115663039435643346127263819231149541521977319452738345265116061670396888919499295017301318096076982499996397852243757027352411477990706806630506623768870042859183722006302948915482129379959723265060991509583020470990076365347790286350801739676277471591209149770143074493798771334341584488022667912109154873814661197633010151270873154441535213916433462353525256044813498065838167340418207455900473806758579436208995170981682640685239490215546771686834796835386111047408222114814113901599620675111044828694047900374477118594586326853837407453770458430715658041121327994282362228893949874888846848949305808532429411882704709296617716772590750390984552336903634379420563413442276159397394166427857910844832375227019539539193674852843616242254957875279597418216805775484908282786384629947661791971279492253706420889831951356359894740619947314784820418963864017868998325096136135532183752107756817600474044776403881398532315826999443084184677721105714082087062844238745378646299160256949990346902278983395503925804178034741505471604110108411325062448013582022364681548791218132574958776176357677187354692821602580577557876651778430276381472094206275997377336066517889771542876831081321092796977494515831874055017560275865781567634185739803984743106383874704970282805351956103081047557916446377815172554604383548246244371649022806570766113913271507130239713454352333246902676006627377592708744986294156854090641894675078756586132971168694311114302415379414793197565282424049344749602832699080171636445704417957984063236342856272077190385827363818417678479308909819177547552143864181000039966580969336078747941916775942486531334276320612986963263339113044037639034765772013391210180846081195968825554383994966107002599710939974015560360987507987566904682570487038658175920045436463135762342475628135157986863081315299876189208623334885176124644134303139003332064435986202178406986753029797936465730924093556780272147895701634028087856971176640654592234666147136070268424975400848428040770261606491686762948708399941499904947198726200106701931201979775698887594750792175338489923591669228119815766931231446404856426794448597708483415998856584583023763657721008781021290644268241564330379385413822691954139095960099001799413259466498583683961615585643671741065731611260461691307366703928079242947808408850810794689697137310600403372379935750207667214875115831516990284670784909320851828644186342744280708085594592237041863542657630970435879499959847504504981830662571218371849596841888066242971051200951506424635500676558839730171015703480640829974068250089639817615688910323843049595832782291492090610058997299828876868855504803950832954559775874528679313194362654701144242805343099106964544472865061534555180145237715171134413791505470377599999322864744159352511014855016430159665325495742678874872536928278603489699385464579651630224107955160044227246543697040301029668867995971077746583773961132863196810324908412474894683037903058058531296867073882869297642808258685051202319037702275267803616016870995865968878521967943985699040593144592944510378007356275647854983783848315961601889246027664056607416953451699263477438570782412207122172941146269522533432341797485629373754763073860873668873644222650252771941454386598597324233846850516073594218549772066659292265268639324541397444889097188353760006709846505685539817957965844442983455187816154898176520737215343863157452625426615254137901069666412486928897467898112666189515390192602163877656222377901443253083140529839991326253730207437643315002658047215324767634199666122932355337094386733003727471084404869417395338245760230962006708041360405434502283926230313194046814074200611457559259226252089590484452736810058827036008931241124592579892058207676094067483412236354633912849194061936307969427940248207020597576714711383852381006767691458396514612429057834359808746650073421066086673255977203086446848692906767076351898348314368058168439436920594641470783443654282603167239627491016629502331380157234910185044861464737348936451123683856855983069495119357507264878671754936944149839090151447524703657709739735293001711208312802384924110048244558581365729489931631250982893964349598196767484924883826641794368423104516944460494578741051737655237747229833080396744640996784957640756117761991410289907283183411362920021537831255973550054142982879743638212289529181318942854018541845816337665226245010088097842944379837037707401853018200469599268381149299889285202915957732461621316305433531290954262783961421173239545317196006939085887064428337952158914289916352977122856281199433601756993590377979254317765575538738986713826614734605347877805736380533103885554428332536291029457952168179528599035699414676402751906990290273197183354809799235650984165404607052694949619186320386830748243441309748528805059650866310438655731674721963984151780738269952322127437234926971719601795235850754868872009285727644747494393456353462184156554198303923860133094485056664276196457901492673918303461462152602641776195807548849966436549901369536167866272447188051791599048625334861994120846322800639663691096514781859021653311044514317989831170582711788902930914987864344405284785325763601645870881403117187941582929991308655049214690321772962819716010692427779199569791514420723154127862734601022822637784614223205051902466655713131640779161670504482154429586762650186824934494524060261146946632310377490309576827394581210240746438288201125758423784169596651297991841236013308109795954631109005299361003789933978840424897180099028877310986649772708332748924071441535192252961397633201715696172282753129914499315627956065228485311041582355358332692146481053784839231799368014148362997491285216870750635839877140686466711576177318555542100307722783679466909555231324376661081931681517216546788985108899132492308529768014690275393645864488197758473190819807401196782304154436006664848366811381598980524819510249995008072608131001235106755327773136435774062272353883323319974518059490949495083313386357842737562038674789889292831158126011227860349505549947897206572877116529390962304404521682812826686085719688083418129230497016595139513030697471546470979579160183029619528092325536844905680883945945787839020411401202185181077403360108251577436928344189379717343965101500743942444322694827927871674371442399989065752698182906194959568646788448453480722663875800980717903083901382673036681935030655150320202730015106313025602045612158658301821693669114898666136667124545136903512744387104565215797273691427716767275270236930461496409351749360484550398759131420722334821623801148240313822372519493709428666860100102225977841078764469183903725093664095515151560881741852880324972461778964279269397980150232372801346014595397880576571259786552859630078331542435420010904195233732414236118859837912913090903408277610646864051633116748249554160672112730554447896382436631179122168369809555331004433318348460540051082256897932476654463687277090661233272375806025375418609512617085537193223478792657951601219851323886583692328472270873549433741952266904865054215599673926952577801407661733794041518245607765257343230888594731300354184046954858512456992370117807570742750696299338697202979456169346556497766512032033691458686584099831633154723017230034419843038924541285833951994192699286837489550719988026938412890349637836924484180243589446634513267514653313455855281929295470950653833472720385025365249064104268047759331670060397794550678722566115047450812970072837449514605690982467591136755261763002856778686571957873179126964728727153785965056900162654674093300399857512681482659877020073014079139422479168233040148945168045219219660541364611634093662423107377230719231119850140718167474449726308481285286145419482342636397062286852559757211905908335659502566081608524396898791140618213262995295733209779879281979426147787079510991255529213909450857219945394450470621317402936701109528820427492938234671405057530501733458629350733129262212744808356105061424075091735475567902819715705842733457047368353923153134143101476340818076684515793465084731184073307823245060805495797313175339491997110054186902859142680543182527583787418806522672760839435600273111258200677278290506638694994761945712846910161265357407261764679057433514538812801733015805104934314509782353108873662689361137374552665385856331288467156242617350221774391541133909470804949630585273324283306808753267248786935993288660113013208469727193251882596758303803041233775880995909932246276513595373295565229337739434025474242975325951793973836951499607727483352595184965201877577288778661881499163886735565144671959543080595218039008984126752796900531959453763115917392627498858606686049795366622454229802253641195245771552905263052178162376389801763709581839373648497292866885489093027397299431009776553006796848661727754498383475307358416332424199551764553172498071170519590718073288355415482368331821171021217192237809130969279537789279622138200317916484049096715134179100265653866873881062520456786754313550154145190284969648999273768250138023045531457879822162549805195872104815421548068132082989984481720561587769240363144035667797849944781913091023891477630720192196193820894312831600892851066440670414839127238451558736242813966069879783399233498528865997196341267669994019361175426256000633005393570881449397885709172693984107843490853220308451306572482983446108707405761400147778415222234499843255407861611231894948418412065403464854104955646434455725536182099121101712461608103896026024420545442771580208818338046508360078790972839020174944513893502476210650371855462547089279982621463105886888774139200884201268623045284480310297320153989531883102475438191079063904777491000335236391591293504354761841574551035611173947926432292495543608398247631017353825492765251949874203167724163311102176732449209565440691230559620728707238309854129477822591275350174897082226014011427483756945927452273580124556029333016073425026005238007345226079545696491455023764153367806771361838239206187347456752024269685599949995190238660583019478979519025578133037335010421368648293630357477721635565269090363173252091367754684511648055690654019566228263654719311547034083145448397747642531247485924829394650727036684784655686885211080563224680367195351662335245821710809440442252873026847261959934594617866367471125459827936708743355879852618178279153717342274733734161175412112016639667603798673747956717126010129173983948193711308671542516184999817281225833364424014200727644215311255418179577748952741653180144587633184086534356510561190408316230824696629540284087453595074985148856801704295629480133778796232811667519637115388861002443262339347668121798150975181624056795655540382254649518498040743914477052501138879954297345178858960730099453810176356846638171372106594015375647496115133394921390636929842089695462091217198766479532798296509374683751009639541019716034461527131257819769964633855398025503636328009752699437220517656660770447869190353005797019357263126632722992003880307111329139148640574368918052092388163237064646338331214796143346678949286331848517476255922372155566406286080353364055046743109390187539307373902004347246079704803496846709720512367344306117211937019228033460099575594164736169335094003430444824427451146833183509222731473764610166032378690768432724431008664106114037750559145040607539677124473040593640135300240629889745812845659394809216704693284927386087938639780732174150613637842032761972528026287141270756174059805196999062669472890461063887485681493717696308814607978764990047398382828910980293123701220187188686960183843970012970212277203115978324554914113686783621430207836129354335055981196000162065726109800267751343102247976760980152687797060182870852505516590166364170445795276469932624068405465535750252611993904285138039720069025768781485892933229333407302176034229222373807600149762456760058604128170466351480997527975449883783594324558925237068289002494280916648098808172126036855255163542451882075285013526662583046331255554153862572305909811561458209773761780426153649622829293027956122103213804783323339822928381922460378048339496965175902907503457889249650950885387980402625081777548261357707794082299640168949271005176590086752152539056917005588018673356378871115695379768640576906768106807869511262111628434245559768425825971285722343695670690098964851642693734314763343680065342771701252928685220520859164022091791883689776723072183661977085718055416036584545100226764970609669729397460489760082227607105594745651014213107140004193071138227496176879311119876007798385541683487955445219893663783210730391046930402924220973179552177030327177070862502988196199367094616869854057512224477831795771518294205980353201686843684052525021177181936328540008166359276612108201350299015391439974783128622563588435924772951180821977162179193734643899480196072892714720964342254257402140251784653136849997233596445887317613901416464694821053874829536357924085343708888832136823026164950651852365102232546730771036593031472605559951224190213001749170862116372003143023492491102298163713296800643103330972657506517839517728730771171346005434760043356528263917414785890911159098661437544712766960043186812352723469601665539907356857219894597395904408218093410859802282242249102585826820011487386866788358782438603929333030636208722806785216934182333965326576434637194858055795385118667987103863043753297086513386829377006272860971365605282376855016175905937230086459476349128400375876103843520022092380263954285091807199246023002952526472613626736765965365271493613015345755417473627811142617579601800137332761433812494099416290015035567596559998970809790792810769974623399367028885562829496132974925783758548865946772247029632098757039297435804863184150570735618920023474961460311146051128670283742986840985620060008184445564495062033328387075609478167639991704371931274728567717270375193497677212150291270372006472185979512384305001905600948743871641008714982092183418874595584968359010306055133547761680217382941442401750271224235906624054242848291387769004593204971525003489931168920130677936579460378654854084913825043479821825176894417605313599314419023723321553379436224974408404150347355441156930912234040713169347544688394067157437492359731019772409271709323903551269346954365627792711693906384089260407755330079032807257637440161107889727302986496371156926511238066982376311308495912330285849626700150962665261856840698025277195986639474905326952017799086822502712574237652434454690647557059108192187877110077973572969253548198250645714636258051658686730153186904072941990375770693339219248806722018700239469893038973282340097352660328875376111810678021681890934633663789278189981163615427478135564765837945909339590851513880373805939411083441999899889244308560061108831820197324216758225273009958642490245544445976257154481163705530581291162964474859309685987977631317062073182550424862350875344133952038711109988315358112341488784413872153226977804448025974219997309637859574809708835668681645168859925833331661801046991786358507193998486209473207230017833860345165948724078328669435331214527172033260341979750904388556518976009016115310288666094005060006385417778306474487964065922750092924667333508295522875393601097039101776486010585845380018282109646117819024338961144395720873446563737211667747023216555584653022359328690282922605245512175018286629713875606018531798908858690083572534604001894145551938820026987912042269618214668446568818484185991199394370509026334454105656019659138465351309645373173736178528955001175571334006388699690893769180783298059615443106630593907756843722660544758025065558418531568400452739998192267959125585357940664800176021366679482563128532627950990594388135972790806723860446404064603215828655026478236968191191860349351349417505571169567937466972409321365025901077389279895136634547237802549744520115110443869611222536614901793276739159821597844679144106239908612758462590624474596743976721906372711105316646206154166754897750965260050824211904674087892033009168876596153765028516320980796142061699006207879430877795519097122117466455077256350298994876926825396600048765094185936740056913718828017177407347857043989083615236970683784232183893514753757607174203552026536280447111104184085201359921206387534760980517659252825673722470130414209412707082145272107755360721173790676547495299209038484117646506783906854031080579054399025433509295164351082551546711163811948744025915265453353985308419116431483878501117494217949802799195762359185146229230848800169664797452434486962188878947130895879437745159095143206468636285571067225536214219006535252983316155801599665476190235224543750521124802461395886259826534475646004364196459637884726401469497464872208869210889274521221508827466256203634564577407654330961901143426095855528253882287398651451778445008711719217948846798504049853619529584841857986450508947032907947188878637245815318809016282462439456458447836403531895066476809262864383223243837956874639344636250452480851767973206508459624315184961629554041296697619312309152629519693869585915320744782538668056415069841963979652750355925597321342847637969718639992309518376263250995738692443791951871572584583942423112667573960719847730963187642607073789561487121888684604677170044658366266818567169404408276544851897023304597084746528603002049386077924692057910828018470589225523992445917003769290949541722069945196162066262676497841583060008503882398623144648206922101709362071304643306151885694675492255144182959660547740104927632450008808960388694348284966870367845745348430759360500386705221208363668372082565513367062520363546824537032955481657802604798691060650764952084585345631863644323239420829402707851302034411668274578117154290102176666322204813240606501770008235462780810194617293027680058099578963105121801262300540256922994968242745606109890797441828096760573185547905256333747162794315265855680839180993453764918763412159068832165206689838646606043134518730360447044182785436130266558939728157611195157342616769613057202940195564776761759568141117426406636491121101382500989274631142081956545639309391193695904813135658219214379410257652978339339500802238665660372387035928328196512649642120708216138034877525916657517334237435811759495963833513686607230387427342903234776554409228186300745998152662164376369034472643325825288891028474595151162200671161767592117579684169982925768200873003526216444282199577865933098409729992801881730623478367423262660304891759166019519610279877833489520312131137631605362858691480524724422671707906098298209010311544052040677274630476244729065982738216558434493258142509905760785663395350578109060569487095237008921705550554664017948716566671927383129070634421117440492733999304586717026663967507821377505119063373335208019728747977359650898313514534543424478766125814240602339574746796457521793337640422772371482268333613262826308931644160686834756924310174665531445113982737918433539020479705452253304631090242715138651827935412869897255731664515311348685895652849021372470464616003965098477363417946531025882290945975447110601350108578334663526870233257179024983164848857597930398241996012196735722544257794010471845128863327633781335218704079691973474607626749637757047092395929377770571506142231059660757659608071041555340103047918043443045479167473512921175219868385210708022723660048944010112363080286538406851963509089743126112120117509652801419543351319540909886825485517466984205504341743018107695961944383842589765449022514010559162223201079282087579225648556665523587402988093497765078206777478480993757188758426907162394155544171911874770645393991923564486637992326471716514350799147755703421935384471536207110136068044917961859925699816289197773513839852964248050784683997421210837254858690504916076616859987699443292053873342189678270271406221086805001771350640743625206516731883688290722650556100867540206588171451004288976739103905864755887985665562850579466850835157241117836825275768892441970515474241403633084855212590455679357194052715079197487380436246108925971556790217746592307033169387687110334286377340365057642028854436867461350418221997775486051304255151550958779754690114951856159317182721299977724336006724880634783843607573875527986982948032560760277836070803154186604635114679831779075748878771007475173877977229320650908392626873126250978132976293175953698057874158587004486044076100177013950145430690457612372589526662508649246706022753016268203545178797104756965758853659739267877002624811693603215055487364572049668736455441915581941042979426427793112562120271699721587474026858052166079219409630087006134324130598258638408497967698955114296973681320919854546112273448663945858591586632374034301585305124397529507299229509047918356509927892126477626287777768717329827365661252475422162251258364243964313930956151632186593930637514952457770010272296620765813592681263285089877539703804417047489067265919693490747175649418297556307874184709694350840802369974002451024402285102290946924765003775582810164305640882802748345157007573573439074054155477280657422292955137152255322133843652602635246985434017095015666158077771545734861377265693661249047359022816380763471830247446574909643403541783214692915434514581291484903345816133936289371131906199854880162196400165679851670722905363297946663681757471194611372022049615613542923891119959620024348664777482289852842666471184145068128005906068932369840396873876464615031729905905365917829405432743051477089026889395390957846574555385948607539786101126978767710339548510012373486513642700575333041575716348334275405123582396021660468845661151949345103043726667438757755472507768227786794399657212745750233949530783144819467997702734097099838567193939499885653218411293448028631456045999018046966153291224769491981137235809038344439167658018192645832199494148258411768844635616282084398526330295906242978791915448055257099808669869167496716558140240599078624461077521704332742153546634475762735071120648577552617266123272387615280565993485573503308680138072417208643497784554369486847723244152480464769633172899833691019621210948715351150614422593708365018759212730744339755393895483596703100762503620013523623634331240707180177754114390547106995969485881656974893403588154625791410339259709353612103832249940513108473540994488741479367456268873851881201821030144397466868731687270373782516500805140688877829428879708209781875357397177573293513926533281545056331371036290980857539293655104447338286767536664464248208076459860545670384140883469787394377985733953198229989756304706585416551377908988173666657300344797977907126615734012573983118173048308230453508913506428151591539722845507881464163193128759828041246595694798796362940719732645522977745432818081399584304306474745997497343308182719233877339851020673357784558041384339610171407446189344441920444906473822394124142026312424210617909363957081780892856236065310421762562769805849596139237519962599706354042408037698373769042222725132853655609250662582907061119605501545636199289863343326033124707665605502605797165140142799429700050581010367573656296203155963274660329378270868625885030471968214212963194217792371118160799549936390959376242700848874410970245957237195453350882814756364848346161778809336190808381663997288199385820826243642945645651658154362434807466476893908176069640110006614874263144915996600816254164026668274817740919892931152761162778507566867012951638187333637148699761986051989330527678219019249867254270145834859813560567183316701348094992076016856339264437975441296160886860283365802555892745773655954795414935976518135357598639259546122485869986471560474059471585978175384756190545540985425893938543328162274353553348971233666056073415085138553690054790685959663769143883021081012487679973879710008493495781416171645647012395224143597175684710510110460850493560297632534967492620157771845850862298829212509218480537809683043272714713408236159554708728642320503631442435122227697340454236655017143425034635807582948877450860257795236646278721478107330862942324587730965727820024159689438876572740562130835671941213339011458023088801017496561416149212797862006007130366412305590176769452046588762838701885536996046030532942110321962908925253187315185668204524517908251270234273629269401310211781206390568499995186132249425533785021853830856090824891224125515443375166008064900403958458133764577805769578706033099282145254769314472659655012209525972067367839823465789813303511655108874777155311619162749171985981364122465593256514960297418099974273317025951390234846421495036635530281447271137997923532287413975962327388465768119138658398561232446881901254687389364586715186525322441954854149865080860241072375280475729867483263502420418460972916190859107004691094930785953060335793259046898009054932813053400590287944996440106438127758757367331993898202156482446148378653159885246275313716898411549255254855221208744243470705692674939502321965890065185162137395089696229954330767489369626127229656819402983691895218607504973793411380853608498124195860511303417125784400364493996781853521798187840362718832058183345738846560552085874236566771547229515406841533074700735654239354809248316513597133045427730693751459215302990577360766299949743656940708540641939168112197257431330995638945463640035174046564443302719632753851089463115657023916370148821040014356272111937952739381127164452565417324423460951002216363531856964543573505569526973114398009631683338345875408147311798603842677126396507516263565293779358257855640660186974441888876299587201635980266438010259661672797546040560092963360007976660400397171810164420688899537899258054723090941899783710805266068711079096576062899273598054439135907428966498751887366828385583405810294620813691602309541227651982594889237398553098943106990070273264335499259664441761072736577868754174884033578557277092955456145110502641090572529046311228087958739549152006524821504935200708111420937455431645014929083487950612186075069455905998602514264202540927221007150706999310786602682797330636198298214991156359501067610765839378186625105132876831282116899367268528538990811897045993783834161256671062350834305816731298133884949246605276860881183204823820008868950185361678907055784654678511128309464296489980211776313205321438483606974877391521493419848103887950751261536606340290399075317257979473517597768956470284031727991493465167259812075922657511210563316033775386300073842084773558236066132464279054184467827515487956176133969788836055159143682018742166974665705789327639753474461091686482758194246194395281760670663818725174555710606049623565069789509592838969426333278889725731413497643226737058451524950067931794419158904646460621467630251300126329333591062167574339856577869116008256252379061294234436302090242977730865812706128449185797722536602877438923577501381279957007753622635720555339072807873064471382331750613928937351878033245577582493993907614809789131215970898200962887098062931050271769509258527834920368424321099836291687204631621668339541731026829418780193001215807767019546473095924509110962176844753729872950738949411993507741675754309228214701020285267569849881188983703710741670673720626577542084270008837702763783336757276188995388885005504068038093202679575545767335649769369908048889186479899921508941343706089905995305296203052850121133218878239513857443338505998427475907456750845132769177752937109373412283026987735023042372362203509059378625597616724639374245648303033081717464367813735103203750501055431770875851884098835536270076730546039280974099358217758127953182644055459246025470443590690356436465842119265972692914489618061471662823630686973680392713662637693501799329658920273736984177388300680132021396291644344474364782642211118664493859047529433434518579517094552565534883832730582785164156562988153224404523094991059330044535154144037739804871865268638506599732694511285998847301404580467879907117832611232583078533298627644956563703657386528842493951442864591651002844457963088203416554571437948251528233236681327373156941759555006363545219036843490584044902721263616995641661511190604215898089786588001688830693891661620067770148453801008686182421285616760260090217793966986290660949476356825400979049040261691888901984552352879385684022553081788491807842710813121840466751664617980225418571831186786981895998873411192439120461267845589782298605953490029476592648845204047414978738064942852864165665317446288078682043041606070778760705295707752452587240644443834823055734015915230173222137147970758954959433771319649871418462760978352702735070210675627583530418312962719408957970136794939240955480375124513821507434980070029954905238676635243880760072544069934625133305242330070582444515876130112696138602363266431432170576608085101080525928737075643762278197682328379766095786056204916586148908028544105058471605788136953948613600851571947330363248224449237042214845250034834257610829192648576592371501701069699041712349169582803020937262412526368593931830391794443288288664890366109169366950843274317600417272019335669206282418666176198990598166084893525794686596515044979204118446948455563146797651822774461042317254323143405565655517806908429539882633757688171508400859492047919842586849942507588464531830798474251243487906616986084562927401573562199625706332727492112501251320288563348813665384169674559594199611700956607946106134911054384718941121148431852536628656651228460700775099609305152380149672775225934336601539002316390724298523366798309601759130340973412222751325081204095710465227687506395072493610631783888941412416306047732047184397073031677133857486086289846823200098274247383600954346201943678803138082268946450668164463078937500953010120140035815976674210560015357632314240146950534781451608436176829333156768470217286830947066466939782234250835227715317192110752532104666767621657316765013435384393956370273917798499371262069502863167349782637771835155674350515396989739317881281808149117542827911866335696285868041869087706074009741125101494194396049991181949691849324458257479598887115360838243186336089489466573100157091145491639716706521989017167086583327036116889184983093326547978971653878602758318363005351166144684846707329063335987599001670634948347572220841149042005900487430438737773579028470220292436861925796136916640220432540211369910603733682566624318137700560893952334312236627698088909415208271216655381265877959161666993165410108988863037235284506837666399884091982652896607616883954960478610548259548016535831283579394335509657371653721464006978507765235909586097339977715976377944891627744039997360174564778112029981328178360111255276900932304798617907390725665842431057950264731304206408851134889961914280068757133341716169484166496830109003170527910868782404271392728362553481547527611086551542103289285275225937529803312892837638857816506455600117826704646717459570374768097095365366255643973291369293415355086128611725316731740404670337077232241892479345923212269587975852146687126922517502845031421526803554029343931627431994558185003496118001996446366832163027778178080486179744782564224707222233766880474103567679657056930034536255946893587849529739621191817784934608703328495945610135919896627784423366551450416151377931446831897758056961713024603564636756463719149907903944704438994380822270197605730734225220339040538722045434485339397700112501726969956362927580307744110872262776588237152554224570584340091621964399105430594987182319128608117555173558945961431682776175002816580608639616941297825803459710005370072054091571329548230367046117068289570804914492287983829975980122913066766349057914560501687495224291053048767754195115948761666979768521200522451536080465307837937165916614231926484005318555444771209752940661413563870542591174475354402649600365460643046551987572250477656358867289874172088242153454207575791292542523772289071851113333862751812976458135273482676788228724849895193429409160759958465383911131242208851280863881114272335315547677761180383434198071865212256939170965241136258116282417443529108734692638664037641396732360137699788590749207334881409274277925961740391804692877760519603514952209271881950009636388645300680208005549929189055368430879014255008939023745665544919413727608884117239666453787587707992795885737588935731788118671489091329393825436320597998299120317424866012149497022210681642968287609786019379831320875828276847897632564409147620702899881948845378400358903442724237719166215804420255511218855217317023954124867941498856828648266178458503158844217144361553320930101781989357086672146945935312780734979009235361581283495120096572089854788421383600840120633492817352417170781914666820532897946253507132980198809830415168380654302578540778994837113434141330960065949315063537549939937047498278997404000374697891342929152822471304843252751520925839663260220686946758498928193357794459736979052225464508715235846646260576721349204043660736962608720216044829873212287780601447408221837049425623232510833892082081717945318802535637059464789384217782396516224087723578013909211591489692294813267511598541798551349244941988622088871931622012897107051157748576129987641457756900982213267240544671495119529675521086578231048306730954943605170099801474978160783126603145285704738107729764823985218111911034309884002538923838215873445987106418419344121717360079296956704199559572179211231051618273392045749121605074878447709007229838274973410992856369260333167944354149250991198606542969275885152672534779635848429318953412147163177319857656603094314587875413109139996853456669705474842393541207396335739785862197184852878451871698406283796322081012583883953556856166847967173368747367969087295841500240233788003136223140263644860143993340990786887426111750063483794215817709070580292970158363137779409782673818074363334046690675704510400975206365713504566183345449644411485323925837104842285521332184023916358020918095855244810283345470291840670510742397909762627955751258574988675992296275570313125713341285469419061810791696220849858337185985570365925856620949872297313348499178407742804621190604273810164127165799863631735013007585401826924389412091722573455117636188723503590938073338964805469651249886784714344533668184948215879943723954452538900023631723929662427919323648470911480057189036458848167335339094789499487301433247216196143728731829949694891678570195013024650856396016603876289819847944144927278779923472268018657173179361250708918106667167728139921988276140418788303209359015242068712338255518679642711787895786760311422039184529060036566643219068844401820174312380071491302931251783489044945015925818947148665973508417922244600388531986524852124564376722496062234520956937323811868287202130215554122292744990956394230834173755616615748780319293528271671059079389793157189988997682207471767721992946276946478658583102663197443468182145477137511577958880735063814402174325837011455883729333761921803028431107553246031111637955276723279682212454114355776392382315668342635813522984045013334698380645701905367897800444162424670157834369114685222813034605245908804133494045550960587137995606170949739613624815390271326241980159921462965880411451828001724419199066923871538549065474433757040629684823337427407224277099993104249283616073512658467229554461251150623590437021626332414056743381445110780488760954917227710387162540288233036422368201364056754986699292799180018268732032207654273999345811807663406863948549285191841437883705504527423066817892925725131647796977984467901915513581965289032279624847079982280479520383407126443287301369772248573331674486833292082380635018246950396370768747548821236246390903994742148007979175031303774514544578375117426338173602452472169721754299816113980169931738648642753517869162141318350914646883282432347827169940540544426561941806384087345594560712048487847206297328175465359185689668062227747071737548242375209787366091732062788914388611108124380620308683267221761404658023344093302428210191816108667702917852491743999307985050767182732837186549484209580103396471300140808476848453067391314823936360806008590703465877002538729197610746836705504277948843276465684029434079690226487408679183142209044919121707637300332511219714566297396221517837342645610223386144127897261535285895376144128960712085504681166625338515758524897836995857932412102202825424374014021326827124829750641678523191566143445688808437880135720156536579686408230286812218139740411368317008494298231281674722823804619877043227516709491546292106810204712882063906368195993889681161966051563129864338171752700071910782045930321676051051796400980266372409962607906349828813692442738090982285355591791047173788031016515898708781674625982058652015837290301260768089272136789074988014595714271473789926625834703080119844848686175572202408717582043870981039978078597357424717379637937706956023419136664048348519719779914482312219359457358971372968263670047412108935097783546361035572974884773411713094363775068304958108111849783644747512012831533164339476315809906811214490063974290745226634118755959137501437312681222616013420424231145542502774016307922382888124480933446905049698684568099370293893582979612143902935176276285014405626820771828880284537179722620986724254399925179032431137855687915271609745217583307880476382697546976992579832920967946710212828394454536285685703852400139062571830862593080932633934027073555059792546349153482969242817255825379603601974171448402027154446559759006492845095837178621377238354727101954833542636332906566734285052875828748451408712009449388328373747311912673601325192100785617689477060820885290057890578137482464168682862875570585412775285626232135244523417399812838052692790677457764989912956934234702587728764495870915208231808245560211346247181197385529107823971772243695939416539078112451399490131513473147161430580688167315839596759263535619517490047369128845309348783062352351518851509584426855780294106087683234488619123158533718175051907096251187873403186247912983253640022448349335321378595771304971955427945567222722990559917708302239367897289141783157184980494161246459229402069340345968161592590251122465701370184950507637229483380135545384634117429042094564622120600965569862587812085205678201594431707959467005563042837889566790059588109691872510490632455815868985047602379271077073678939023961009290779673520721986881200040997849089116844090851812883103944371892615871861384087205919471481974573000858044625518862897108005903685082011016264435717193359124978268759362269902093757167876512232953286494207016140780661809042443110709147885488654892816193629003200496180318775605996659419926123741111416253342054388999245372206391541259313791800745808638007290933217145527866045676555235723859602577172280278207780767123053206398078578514514444744532264697818636680820243631100905689121285839111537899419824964895552289060198340556492445772586338737690931854460904088474241996596739846421423502817993193440646239510958462654564402314298714254428091502245810287017364769414900967917732805326301767565412241001527635674288937852385817851401797150161402372055472645293943631396794499307555264494851591603465907927189615653771862391379366475917419467814295370874351751563483874607748753832233162648522350729985957951057362320079047929650273255808643296201717974478529520772856199764098352414182581225102509555898736077048162416091107888481721151446364448594471983894903187760821901409197521751176716781098743934448706291987885465570723687019497569291026025420758087665461702473013412975482532143497359696989910428399534995390252376603541186339954992452985165420132446677980502223668100345662535383080835436589673337101670867460861398549947832200764703240614620719473778905618943211946861368660548642536419393004390874744812328027997219394959504883428026581491504732102860837104897624391131351393972422951679093661069954261078858765307861953952128040414669006871594456890543154531600445076131298990352332161733341998997055816906172651784654010247078338347488422822415646246664821766094759711542254120258768459021375533273594125112509921753881685849237873243857879619913144451668229116537641788528126033757679199132429719831322405673037656902004026068908352652897305393344751380547745006232169477993693843208293048692608142945365145764125623790974221828453473208098509443290794170369021592629395342099394334837720618498532573095952665673447056861846850746063885738689701122057318766575132601154474673173108124986833688263442404101698331084011413721153322824800217969131028957503089218702717720930420242899487268077488916163740519713532547119710225892938783965342210588712253781963183073923597543946655954091996036677480882478753452381057463355044257326324193099447144593956762909896369133706618612603970624865271067631882155724195125176678947788450838115876800527459451372584897065893076627558907058757726755640127433650148824113579779169903291665904508811255279619751518643566856616726968121080321642958307425003390015157870652998672388065681084986406893601165993710665498800253172223974081174555619695144527329503087409239670523191465501564810699686279010720318876641860502236700012392245628016226776107386137934128341642217440414511506852567623490270328227564945804287226843116925908719424955178978338527906320696516983103794482460123930523309349438441633769610290682105301889107444102501193266504445277116531716273254123310301603417985944486602413756147133149327723954239291577867407671115956645298244243981714476609360468851197278957520846765007075544194985967758548547738119480060372740133485428458501630705768802282836088443201593057466196083781603049128891255742610562562893399311579244062961036563163764236057661480770125543675887634997393182133815986046322297021349598973098519585645693522269965273021193523693212551989337108802288907008722296187223256140510400966233085690069656547429183113619766325151224045241464183900037339689625326326600407774707878006931168102058446943737147743486885513853356287004643347599487486681421050892219955638179909576575044550586884338279763723644875961696664806927937970216586537678713765383021610111025569399618366390144007950206149370900588460509297049548114171269718629498583506050641394987767246397023158788390684698893793903749238432960768216851668236744664386724554130091539148052875825558350164632483104337356041250644921241293384783387054575988491357598866235827632696697742950321032080798283349990348542875273051541770424092430683045007911520860580032769954388102909677458015196000452692532041339884252780639929085924191401247788812112041673346605567715934233003625702005759189883790625835705228223638523859163113521664264345610497256384416077399055278912704579009545963306282770038973016296269311421629329826571558828952366602848999453440725417564914483363138744659696848727852912451249323732820242981605736875182368483544263159626755865684538222949805949096226111713576372210296250735702891579844764669612954480665526805619766605602530094471908598183585651438954900885967938207354740390618478717860329139661186228670960560366703660438828245055561971840816799368789121632110973053634571363835094083967551218283068859677597833195970369599367820075035624647814559275714290500836762858148715441274749766447842230368034126899153824073711087392202201868537920551371033665447594567176734967972451347769836586841129581780488532330788470502841908648300962741418248730843054898244546491607296432690983024354320247502517354811892339707377567720860700967358529096901039556331636471832081372057698498246053489642839112730663340581179760351642087618107798962172375311641088524784056198843865275181514301990004799354189495090336822048764693926993496381381327022230387293174676034762757397632174916658830918232028476733559277761369385755920750629367268105844589742039574979148290080577215013234262724559107299994504337027422327044511716549223724653263435456023008388579443261225303161499261682301492491146686331179408571106360279310313384430515137423800989952363288155238949551662431626428107889155874305713493701378470204450664284691601481129691169252165423857460126408291408984362218133054040694078514307304298098029049366365479720529568653884995460296530982079014664981846727928297169607337131489532542100880541066914952256338982915919471607237645460089831778075395045893140333740883587707394054780972507020020640179188593546894367644973671014181229347626955871600821252923244274144253012287081691482402842532171285795556661187982915633501828365340900181267052597632759736045043906434643575266042276129402922875879871563633659798566017383550854502973023567833951367793508321763080649657797095162950510107381286517266217556418435272042409672470401181950347760654149684567318679617918352310973968023140373262244433794788168516206051598958067437619500696976764920301145022906789869581743018790681862272871658959495539908987723678823812751287825087535678377998336605739366857333115919668290003316309886753793559734854715895022170770692214861771659710057632030548000480100574771964317891725020752647310009977226969810868145173129598385364512776817356532386884072978905559311374634920663062385216839457522875903956010841277537088019224650478584663732284165878257625641764299403032964777279506709709569374416653698670928681599268585480173221749880798895035140068373021323331220119735820593162207233183280321360750377578315140908948512660694030557512877844321282201949547192918434686830113765509115109843256800905979062534904187307288379170288674471119843075180749045270153468503230324197942160832529760075682146581128502630068426393158443557982951934475189788014277417034185410790593449555021555595314476463285286861365698159367460268751609013201498617031444313133708276586012866252909898359442519388532287069343341500951838904418171314874819920158817546026966455019588339562485315961491930398749027304034386271651302209411590831795026136885928647877612469122439547537180978525954030375213352573913438423083119083227031331273079289712455070071920705786887164459473264430957094304218163741312026159261512222447878143847870131969212567093149038612364668300475630213618159733644353974740538709498847359687135452152183896982960516632136923818555580440953026153651717913588070089670634083473906990693766700799247104144910534121274021758670617913977536494588316909664294284501141822782343267368469049445101418255490465043957331965627195965560466213160730406887854554793104242048369608368577496820848428618761741890994358074334721190742479073304337936435351166456417973211155801721120964219631866766425859067720106934334310726858538773318322857887303780416643217682709375198765531404486703632019755847581180845636748738121280955247201122071757231453706486230330281203013013998593403955567675975113713065925364510948285008889890017319536200817390464243177177114343980430163430847322850281743605970981600225056911963453123195995030704365962232374516821699175947097404681651477713656553108296693124418140577120649149693738259796115261964729713177544360623240474493687622247148069658322798285256726392200902979622817871543425508996732129768142216575538175711758413795131423407114099577622734528489330736043627555373329440896904106749337388313481645621512075661799948001051171087491085248732833936118287997924372235232368937241943012379822172538785400091018806366080282028521874002213786346957977714196465918136092766898883452932227538743665660967798395848458548273296559030494199564944867222291754021585585676055111786814475453887634352393101787494493789750276183328460287361323740149409053397711292723342048402265581322275660305114757860924774060666822769788707303788001526444675220601938979835911184545972728838005356216982664695745412679089120135668001958198298311275034276069020899387122831703186666766788021337678366167953768163590564028023777897127834398682328052547304267053373855668302435616708317703084254938532735494618391611837953176312210857157360340942082809942286619978498033617582948301373745775704866044237100197433700093149042000511261327087514221671940770600402291238687575278879225144738036830612189972772548758254665963390989982932372785780456428317487651643553433428861292854575073755472201442038127296408780290586229136248919040079633825061257058925375498590028312699788573110500706313534684541486030745304679606928502960847923946546684672624543773194097989635856739146985212434658537641609733547131467310780004746478879474827659252926431063856060280718083661922958011741373867641805872505534168917595270323557234837206243225631962335295855452068902410777973971166117688143200696515767617410631679372764836512519291627939677696179923701946171589961744591358053373495530859285313433388010928228838357368591223732837644343192915663645492963656182276408634136931117577692237898757659491004863598216418570284398446701089497999398986548348932060210660383011091573792337194914615897902683563891852780184559644427098991473597504903531504279231449678189408282495218018326060014592414552053474135875534387971069251795545012663574181596960264475620782161824343191842097707341714282721960936550030854902288962003010441751662838536036728192158148185026234172151440224823817911323592518143144619638002519373477302708361309230250541559354708734121165888167466921471481518950196593521761677906125196202257639965069039710712550733580130244876664168528286283203755380016954357547505873253956920225832136560239069972494303024496016033686564594363903836513629755909847443546686970865608655603970828178175204916845470714067539854018515060501085168855205769270948342898828796349736572470769776112332060125604615422867563290056364954601166593280303854387048055986928255476318852658619665840445174546631660135007113092670352929595359366827988165426361790923151858320167365443420491171956429200247761909152744010787931303264088919180469760064447517855049552625532154140397946344990305311679333322661128524998177641175573653292717091935652491062584908131529840033868374545511689867157008787263181160134894889576409254018157029098424562688749410819536514613129735046063628499990070512011486402175654069973239860686468675385308159068557398786650315126569775142035468533950135090201668213042640867288658610109653206958354484702259408225858550251081248664610788339920246142357313777910336701653518808348215287901402365797251867549761667597668765050277899118027438220543086427530741877514535942204636619668730693358541233985932426755057331888864783835720279006302358599402423986165026087814048739036577526660071272034515965910031428916260901818215361108472016335659068666729233984409983310380178326528744020486373177086372018942576054880308086252912838501672950172133907506079976164773532028978934105587943111911405822405730628181193022737529201445153501956553904213431799751210281839975866226070176805431932161659390951061187103111546487160793297274598780923265302445686854849473224929624323634996440522134288941487548711816214581843382651889369504274732060756622493030371144330483323416166376854837722304295582867489632581376834444563975939506886655814117399543938714943693998390224936309839508862002099268037873233744037517927405135088381862985054711788487009958431991673704713375835909099424762095287575874172883378067160957851342805249288531714652097233414262050142952534232078368511254153684572513592641336066220383006639205560860958733652478386388025642447178216901657450978706313633297652671389187752914939428284685438498321150508995222943026165994786129896888493322797266993833424906801930923357332479331375272499744628349182563033832787487830044977116210366765400725640003798622636906785767441719360391276015072090107038191426311304007188095390023414458961005416003050340597735810760505436527087001546224070251471994460308078904967809422556017575589653958244954868834164095090537026963060458960484386713769224547505499325282793308337904394387874487720249046826302206709311115600022765976652586504759683498691826609922384088080220328808531468723452974024664497051373360244587630286938578105749546411081159672261122993693509787471957521690348204883563574017098154015665563671799580920409679048766105947254757200330190881421525595482128173887055108505137621129266114699321290286363420768850086163423711233669163026704900172133905509105457011596038726208695027554950374975924857529136760707249681009656848167666413363651427778526942113258527912024743928863991602017458000261205649578414233671418785937419345477649709625900544758540081832107356764236949898227085831368753524648531021703110002907247415492095342415030074926992427217820616336752924485743206891811593702925480465553947190090571167651459402608974889722028391683770602362632405429075201641164524122543018377015372664976536528507249297078943246230775542157129590617089049818640161104842738073245129224702960979656376623122522466898813489568278543937744850089378572904764385426855561374296478408716467167433930580110583118677440384546434054235051170269726408306935550285090300902188235268107699519646637726731744783980341485517138351225928078939795561106871536112917871869363145350518484266739428711693462082829005778127194670986091377318005141272216310534143618998847278424030044309937654299712277874978080763079885691083372586443864872752238782551963270103232817766388561483381778283526170235514989870950829163811413073987239625332519188739412627980862295126014119323040554669458864639437149821908666253484459079740016311771200515134967150995688941183255639030954847404841686718519924770012427502785389114563344303529539581012132520322879047718989120135708675245245502962271379381505153319990545350395524417532616031003728296609737828156566944425207951612012519860860520822848453473281278761756936672449382080525835878551031826701845517262309255326829813857602281182130212365666711371398239349210027130749885225398754863929108196692333632280977676626192225295630056688856920852895546890554585106949061477239506733292800876988606284608887112511956020224522136809304113044589536003162151504999160754583051801753490037352918558648476931990013305329732196492284662838478648957287241213857908093601585810371118347622184375632723371352654473504850945444918994947209835342299835207546382950542229269423954055878864542338042998560795025497106411019528090711130761081250529606851955397827336491096873544514213538749985402252165767229014696647990712909445714958086359729418386925675637170265522626930858274994742347567647150973812057932148994576020146391879416744481050899369695323238532977171120385949253443484229418903557317834771126762778133629962613160540878599626913560836026463389579724982236564735215054250876551410459481409591734526000413307289108807805632743922538130616137731309841441120054069944627351078667401202822146615417208332278018370785429845168581769278137211986053058838701816506347506783113408372310594679818800044535405286927188266896948688763697374996009422097732679830555216358551583617104902926781773257285229719682790026259466288079514527544226508892467384772007778550838692479551298350896776263911371393940959652748883934595384210415509135114562802782310956549824486322920049568861879131554552225109922892546747103573965134739208760220704312302150719077551469504865837855897443151100761177700001889617020152434555929687066634461158228015215455822781105301462514053576515985372845818267546237664013018467137969313588500347612395790793811370116176155319382404518380243460033054187989172852672023755424028940984490754241839989910172644190687562052388457808818149741929141339340239507480549094483596631578081475420296485752456045988970951573953595361859854172715309204658319113176404518371647147712988687339664167517748408860208513253828513657179541287662216921374529997636995273730782423410218332071261019699176747490782206903934140893238562635230946974996901535747247411037413118747322904527410183401092110204035363099794534222632062595103105061856406706028780002090134228655754262623344904038119288826055130797788720293645098535236019266353175161694270688064232297065814055905057067669076931567713610597110359812383225812602114621001055305945584948651325458208564365764748179047183190942025009691305405741755603375992110248264141196919550986493770525953832176423519347743174433196944006305400004410435776434830905602199160883442367264968310875352957191112396663911877503751959247524669190119989527034344711722550517736396371475919030786860885529983598719254186966883727797594512413245382716451954987244638255201965776322665949735179549983816700895861637277638704702016529689983041642524132431252155379016423328648083660355293388088697418179518157136241408948178570747337506697404810092435831448063003801780022026874541642078106238472542621892005880194912032812565562296616597186585001963767691765359846638239284210736384339078646615813504867756933108551788431939410144181639600816671912232369420375215277397903119502642086193983137864743957726173149471030949772220898500749450620947281498389849840755651410205621128225233136028035820766630532013522738798035368535421509615549220382765980378166068733454732620336523832940496515662849407172671692843110869303960270898010496442448456153039856907163454144620004746744261120062229023791012064837045296511068780731144129338756350094775988455141881817996983514984781244573150560480477959784977739951649228151592410182798938283109931307425952540926686413038623077494105395568115936351099749682033125807440677600503709500457183663415849810331203509033482918797256823609205278840073033025074891659523722715737441088227958251723932920047404281682328535954071080183498904444941397249790873644629313431700251764661296670104872341684096592363362333905539817726825837488660361409488577754819025295019102667491405526836605234259946387933976538754747662943856606171298185122931293578251086284722620701589534093837400820933039509502222962965835409610079190900203419902375437296594314366922800244788747661210786168033797963165775586757000498429496057122727649853656082160034394204163267151757089913021259257832855030592201095687126253119137690806541633259741404741942705863814993688781829004638600075762332179874073365318084757956518721837039989091539481058970057744601378563761670201196834321738643966678311914774000433328416477011441348461992509360098136802603156256650724466444629873086503899030644955490594193086203803484956759771000522715364625097848202140870574739097552640952886006069307081816633339072538301670224846324516702106158066283918956015974001812015486815197620282220422172571592087067957819630627766020727820414435419823511166634508243256232267928252168540645068370781929538525155190308588183663863586831087422448085107849575558268277889538297039377863644451507421478291451672846880566350918821760680930200913969796606277367879763658030268833488046877660455187297402941589727649040470653068876860209774290109352890624897747173814573469298391505587620393260406215718222388886622380182053672196083786817700294386641725766355643694809223681553572474980428031204628018234599450815636967970034185534557733785770022054141503780815170408812609824401140123900770387940431263995570328410085224601717329455388604743643491988542330514597617369330687942565374826580651329026602992605258974224194452688219452274063541364800402494802948573691941398181799900101430062523728777965674458988452036580477900323341186426211874369712336028924754180221287537180371466904216999241213067553049581514630850139631096995240130567490862242994443859157354913893347964154244157335732398453359564691174606283409429892925172076006748061297670744293499810034162181860527757897258641064866633543277647500971168085781390910259950426745169780961059270219765298586560531887074466977755970490190467244860309903888108379781291886157468720399036242421745862581816248758600436153326109190930759177881169819361036778735377802167914983637110235930413114269159377055667120392038732228864621995324069354192699828269887924889376222525120617168548828193571753166011643409785023331333181716973392014260064626660271736207650621400152977576258908762997973610378741652068154238129697523016171571072060148555930770959302626746082801415146053404975773775503194230194669038140450258331605065527413536792118153297568059655024234481910558032330900332529393774263667967709916894505565169930858053593153178030551539558285775734568617043853309988231229708411935927055192108552054455013214248350551023525879195786071956295786168299455677902605202378446267256565254977555683990152162981323383758015257871913948749961946582404433639507633940258097019771417615336285216069685724296107073928732123309393965716982400557685439251435842375110083402130870902477068433195030135068590644638991440388648309374714116563726384159040241816164224377173151553700167646056177607526526911197533867125760430729462734777057141950895288936712112043263242161210367093917026023155904907566562712887318512674299940450799033927429722680379445867157158036656936072147788364181448105298265091529197386184151355098380042531192542590290900210201461998967328739417495787589296174403554015331290557129775300850608358667568682896031406293858648410981610607151563543363904989149890220333151216558136189079270687994635912450014759858720195758814201334075529932485441979263193149085738195856607597130646020768277773610248782904746135474763858765144749385657724591911200605539801044146899449670554946071690240830632546104590121313451584483651598603375584386704810791095262379199168806383539367310545185288294367982604893861773139136119202046106220186227638381908010608847111631528458594286357043551718168972837986839960752030191128073018795974447460794622353717019856712229686516406384091125147944448189294343148545679154824295576210358629896349602692947187971397463752059609528598842804893921139904268868142751127438018580100512037171078249529697505051615243738931829817458102012884232366980291362055046927322195618114444539801413624502373859789514383610350524745973617074121661271734080916236771069007480890604730048093007234078829372420347714828922723284504231625740992634752457935584631989634405407027860021772984570420328146811739669543996428635126209098780892432103643491868800724343216015434762179502239409785863038324258279563713475324657751072900799143011462882401938643718904776151518757568358888701777331800223588131226694203056992081604090096126920413512880495305043864734187078238845523563358195976224051800285786566385100501931398425726499791143554330478395861310411965568920136179467393980845469594944596592711280011451489511224144042753542828884218284175178299457980593791180493254371385793999167098633162742369859945935011001034228453792926215388243364375537147375268335160490893094331744251732956284820113247160295014548746093709225336025233146485574734467786439994129230601267985630579137137789734078276847616240172621808048505496558833101531027457813673242706977333103590325888513059408746158943757065337786387333042766287679580733594501438294915678861668548089096636866832653441289043531902441308502266457571612600649243337791063821650152675262687804425417571990193883722270028743664105510062491210030347554945620512864011373569504570998517672935636092043051060699514101152566367484015929149237044644955572928037990780797891751365039060510909927092670652593416814011036440906055189087805521156124053380290338596358398735023156828139046708511661612090820595324752129704828493368213362043467345967744374538333609988231039124382321268484710665658293674567237971743049350524988337573386231274464063435946013288828710472352750411620716950157690871505578931682634770482764634950180723794386935682555164174044926508364862468721761765130382888201923370959736147600198762933870017097343672319777207359365033075520957605376190097189052092235076423370405299626200604657689704816166222703072282565614279547853296953932441928830224253740366259906205058535623433809905337952479046951129089114320020972140163354845182182774288152927519343792959173816645327686551853971994646778503469309935475939264779298730409504831586904278456891824157750585523807113974885771580413390266245752155611288147761757076623637603377442582268163267059455943253680163921627569028453002726988885500243058328629368242758846748591095590065396532045112142999559184595885323024588019382598155674211614040224963932978568476617185310303786752839415631861447723563213255388765432414230496125382256215276156605172008960678058482564924390606625630264401401870975887556084700897819938738511880375746802507078335501898288178192743794997102645493146261273591514842082441855952138269094599079304572661206047197411245322145613862549673512393769582308550390093201246844377654012660267908669933148987783507606503875058681263250028987265289133027116706165706265436734441434287795492021903975769890285475688277329274818424461785566093110472348007329299655768338295095958939685980133498560118852310615434940732621415718799535321769035341148105144886091151187147166267092234253367349142882006193902758692921543690474444675606661501356198435827432201874718904566676081498285708142549829878680888773424822307059540843894116500169602294744751170543733132319924595917498613450540260266519888824580069123455871210246772754836959587133384365183849646583355142447024822699970408267454408476784991453549550643212556436710477054459322692799457794918628060448025999276973850100792226423779159565924948119290151878900136901858899083098598663647988291934365804067811690888889016029636536908212120821793943542210150708978625528660727220109239043058422202549152476352322612891927818540143851961203366315083795146947108501471076428037892597854526573679895215290543531183318788214086731538325430508822645516666561658903000253670416489771359376713212835991933687134278223381240143844130963164787565435317056619146829724757788907946383053280675219776480082420093956868767373443353855888350017226846647738470458530464168166161189175861020805190593789884656522039448353051255381473947715706200362434985737141128705606388388064037895281420593711485676888885740583045222446197402340512027478311857127867357226860480858598572008430121933099058170145401548238025930047772508574649123843401796434341770894971629035295964611864583244582567144526052407570673785217692986178300915191564078636090199671506753489463784562275023348375035007944298977721181936974160572781065230290775065975059492105158891824234623660109998185176183515949369808686957766815424409988876063156291039358744114168781401836594863228118868149374499138793754180313924063000932106066675900835829141595589191589049637490950219109773090328557720658730513936661867209438542463784266958875405581007141624241294519489081938711756465017407341024057897461989293895443609103011976923989479762710436941218729809939182188297304549243050703607047690963138847257271774912611050468197865376492107970919658569489007030453257252685414522048073887525566615491504532181639998277441804349428259624125812218574889966039526448710262451636990826730496770248166426902155361051663313158862960185133027682449969529342352758052115497779762844496341780002977006947646369094473329464834682705693422638682373001916405644811079852717881771214361210199517600945113510808163425745666884751087136996861379619128360132674509779516730327294567132039409578850255359579837852162663044829179861847717551554831385321462568654842889647736791897199240060660822132907300098666784067806321136952743912674869892700829073853693520356809185225532634201705938241647198899826436745926618745471144774854824181041179646466593021586046617423845576907705381923641050331446560496843766158326813170800496106579578798769434771345705993185062122405413434644651075303831460998027163824040090230123602393185774993132892330587467916561391680528632184511685706656519417176063191771480173928860404611481284117292193672749357191960099617848930437738737767068580891357864682909322466440573803648130496865522809470459425217183852724285082250013551688618357799359971995494559738033104724926322579854834208140147176645147916523574397030021233664645454997685096530184027447237186336233944340116572034875573925651563675803085075999517614429913860853637784021943780202395382990385393023734656454395323183373956463379416817846140858383005707155971581316701124468599822374807763792374327055971155755322056586316080510659725108500851322858591346419650680006934455433927492553748644862592784889084678134750624231497527575903550892285642701802025649846567910661741659752784478555440930184971398633676064948625923607708164022285753558463327405033505460228518651207386618434879924142670689617966778756099523834928442502837178816703027394824709088738278335541120186637067067638620196904305700731321922910934080061493788860736018121009464376941984028938886699167290803776990417892866526649488549326916078170821616832834247871771061654697599784971642006066267141372236773593233310999711427776063008751604111061011761692097512726571047404990575708266155463785892956506318989463569606046611257165017968358542887622719976295703558738415530183309161118213611167236231765170885249486958557763388809747136703937482967491017846301852463346720893917011080405765663046974161825687551460321952108154814500058735677559333871784828239222038920312240397873445803871063786622777768535139805799584231588024140712733779738189745194932539842085507364541029009804495668200934439926203535387140075726711215979930743937619375379374952560080275098605388661213344602521989826738735677202988346233880182323666218138660024992622818921517573835457498403368843438971248931630605947924771690659105303641547758205366129006141759219242958656268118540746529374739016612363997519694749988212185338574663421504706055437059579316026386983954707622243637334747529148829947535277730067238374098866445753404770082795992965069295775250300072834779485316260889809062230539267568757235055878738720881610696715648024472814334184121236020851903659507794564779256544308482428840192252766547325004704339809169825160714451832015147800441411828223462597367731006151218655334668205586413772018923063498722295103794496068729467966879688887973625485763465730033701495091085913727646685217373156438188645767329372442046494862116422475560199414357440320193201553116510039462937165659878959352252305441390181943679446175065707701474978705142928305541716914888305615003850490989618827609840721661006097929085934359447916999464997954307913042856960192393485479128306291154751817984369548746745260852418963430771888314069145409568593547440427837613732962306285486245734713495466272648478956322625596718397315789057436520241013573818313701177146264374212339271061018532973870681020397927825062770639125938042685427493291210830830806062067433604393408229096930278982703798116424999848699805779183328992628144988830296643436330803245669769788047927503196529899946504909403803747558055001022089404381804036187757456332933655315982442532643452168776663114423382783943854585560379738136639117895363477158088105640392294524285234717218809108211500229339446065555345502864882640793604478203802015628616493880495323115445360779266048571581159295485515103939660606450741782190812270683376028071803472629450666236448914625743161414998140946743011541766518225418018185426038008828171438645842542247204422058688848858654619619050982987360820666992112247149866941227844689834397627580407935976574524414234381341399870633672875771658313999381998121461802507238599282097329100557551390405085995763708834103461155501612448834911792739593219743099198888250533774211413521436378962979973259715961552341879888456210653346067654815147971647269062605473751123319565282459274665384130416877565652171643069971874113359214293128820277380394933519943199428100194973176609539368687120255633981304608566501048661133714808228908684218092375337174131645791816713518560487065579571225494744384747882862784799184552972163710672323981211381148570119164562386463997491693183612653055520090536594084520343474666951913420754833088991637970888532655162280236024377853367426509115557535467499490339332538296373118243253435703516685995354313047116993706619989965611467510252262320644955127604471536675943671796876908527284637937491581970976947126072933446937076421971612490620422062418556910157293521224737363903886671886220898229218740212565124330267553381581840506599147610322577483460982332443852453705264808115651345482636770134783978382794158439142132187809527445123349982101167485899648122390051767876670450555645786540981362471885468208171377502030281783564314010245262046052409815286895997424822699284605041076917395595448944616602544827206949264724038965375786636962646860373156063246545074208648871331507971481159485626702308359385265528020721184905674633244125588891036399102687853426900032723822332028650970221670910414089301832608521033743588021722265650590073670447672518702879712121696330516857642891382677151108481818285912091395847092173833747120294444567685500465517769068425560821494200358595994987990612864178157712926107554244210119385466674557915620946595148542813153477964703844930682598711119735538701234989904194867142734338929720088809220944756192723155143275116712451855840009176238058437926426796865649978807699301371297592366090434337385068811718626443415049888064608305348143414077181081858303306397843178436923025091244779209976686833483011518147788517839035404975499702209589750764922112848641656727845388689253931254642535550619643863676392789410981609491649768164967037287603421573665257375669156889741520557499918970464380584096105672402590161826389276912029569645412529823470853440601443140880930522337890280662033346859551241041552941851679655979859872009547977728874389338078328511937020205152920187462882136029656232524554326442045283631134890393082215584508963125874494549832560870471009394802633842387621555864231951344011069138034882618263127763297889387711352013885244895670271397789027113798696129908090841912905163931508352891194487403690863636913564689092363624932900080971412180812798811228628894064093356572947456935105346278935284366015630283068032545965240573169450252858386534507982213014453065449576065425563041892112128744775566609065476018519094109737453103633562071006484590538953034145540283946712353616526928253635268270740426070025732625051267887348888341808140339139308693469900422971503834204447865949361713908729663832609432192087100394876080633320190856094831389208618319953000160393003817230903544580708386968074662926362719635376748484639429814647088199134026948536398032124960220306079411468065608046436806780461037073381102120963679800768290210439926319331886930860952275722092047898296670463272070628769752739013894557332315277302452610446165477640289712271924974753137658153592893018333783060443309630742482298184916306927686528915884223896383784939123426443789104480222053208861751497586457199733682386999788008577275407054026876667973034968167953786221082661641473605019302845912729477431629065185720330089549847385052196436590584530429593316371651633650469951114290580461479030728921926060456604011662433737385237669833124941752482618293564725801519464062784238030695976063235972614350865803464618694587864797969887510243536129171441738308817056512875628384751850154552294144212958886809824760426617310433392940286613955045533928697409652913733528668334998310080068996474993673629067952127952354906409476923031271707896710329063364605681068824301203271240693973127581095855091852619839133151815801045024846364967185497238881971207329532829701581119946650834477931400473755058063107182523254466186503956723963409939474567632441023089646916308174516194095865063876920778162620021610870002174373366288882980129012006868204480408473021716113881072956484173309434241926352133796723243785082704270973988267478540521175217186499477388256916531343098064522030323465134208033749526316664634040244319007433637547442489092727987016714213122047423025424349014241481457096813250642053059343265017366932594136235471305716101133477997363316418730468467082503367121810771800925795572894558496018274847182948021399709690091176757488315799478786504560445511200659837827981049713814606992074019570514463147996825664110443244049862910739836592499692700546905467052861567744243637057489468395129600795120639688543098140538443671497766867748312209416405551970896621709770798148318951284757065291383862987847314869255581142242095528634249476930452964671264497203970546934251279648589631803261526388330974573118921288680025750772890684024999160440708852807661469045576999930896661309894217568304889556036814870763415838814960104558891114570303865255070640037892004859284501135887590521918673661706280503337198468006567330679594854647337445474446011382160706994149025778217323679962122653419671992466628054221813580460074563754953104053827004763346405779591194242297998030917763904529043875994036104876665703208736402298916517511408406404035805867223969652470338744430583556531005832996503738941737531203598348597363064132790578651872322098636002249872245697837985337514833107093732702642800703479690154852673044979652997804389107551350819582188609478028933080103075941051018577297353265606593989841490202589542355134363592352604961265775117848462155657033790237157761921461584520112295141332561559840697789005272268144955160911218869831193983178601218539584828176454277970421308077905864034056051024848056690335209581708726732977479990584184880309656817590936025767869213366713533699801345632982381974626058051790498827811223836278314434441512265554360506336455439394832703048250528041764673834790703942342696008040484319082033020134189718757532769626849915107929321719393314232306917783114104282880085197828322499522886606512887093644589002408412820622411972991541408853402609806185586438234135111694581694296447185218094741002434512180410260062864621363212301119694686432482123673880086034339802474266146502778486593875131344160402810409251215424433648542670490618291047090907698541408878421005984195048300769889559016150082723663686818088288649220793476915505797167692980967639886242099762475598034470929242456454964940244418387052532842275404270135365331076717087495718755723659857728327745191972839696800315754216858803718619959224614091229672749716201825444463278429686434649742905940304540631917645284003974272058368771007008014196038723585421895241991081537914162752844324040005067498435399328802433652387969492660556425068701988414788338850799526286180498470807708541740844763927470610651615676896818296107481306711922125055655893445058148322215194198879088776483638963155692521680998938671660383564947043063845789267079213527271943826375293457317157925559862598172767592740974846428458752667779424875285556573128067219463724454261166320570956805553356122764589097619970850574992547240146601114634018993908167737057494507556823429838063150147333965049970143446317899663089262120587095016307580259053550718372711117162507630395379820609744433827162740329520694891508687645745212819441229904282634662434921893956125327444345001034562795054817300190420523753654355478582460676458456529576534967935389726094112555261214979844540675060733029956900390681915536759601696812870698963518211220587987758093269680132063784085349067061824699359624467456908585206142743549341444028149371396272580352582548224495253835526536268938127140170179499936048528141721740472920760738916911535844807206548855315911770416459768020377423412864535473107455882028439049110407890745310442275263677026859857343343729956682956796341564129784826617870464110585631752829185673288421618329352676177413292538025321390046288501776814837195251771205181466288686465320763792220899146675747492870097014040219311923250362480897578759598891684546530921665779363899543150987492964445914528050172943497514940713863331001499896980513093746407535344370781592965699406087066458991886607843637031328560284187997120231150662723428694197676960050734623835992082870114190596974301748515891119295322242938358794977250936025550870361615654320268241547282330185921793467837343332794482368025493941281177199132011232464738483371508843284445219587016314446702227440966315900837938506770392959095117865257222274888114652096496423359587314933237735533657717907966242535157538986675263348863809946594188927655024028154287868120008346497582680630232943593631774839354765903798733774417653774827885870605277124761830725954612308832449839756860072153077442845257732466001246973075559654632462273821775370603381909113797947832131474797695070676204058080845797204497268061821059079237647887760069162378862965770729826190328913017546076047137070241919692941315824566410865133298702434328389592728627268626129079560901214003795908477851639925773772529933718092029132656144229114245310087201148078980067050790211597467300447271121191008301615069698684028069838630444194101561420605130802652864427030109190447362716549739893421117300798979987997451266578211350529237944343771515046169539110152255320880826163338785696353861269247251478857210842831278623410822184928933173159378218237279304867233558845890326808034082350479792870045828727817017190146188573085500133920807202426290857232583051342005067597152860538119668121923743421410613452810154989313642802203947746093537134660700843112549912912013949379963516946380744435415602615001814198168570529877511090761877092338460178334454427929975423529911877334350151165012093382127452893257028791195083555964068622347658092930368939505395385099905636717735368526783308311851978577117288653175863758143594666324883176384332756807837410317003936755321924011427348910664470015617443789540527059977855002936978527665849128367238691411402347056700920600549841892519138822712111725268806352608210471886612401826520955640114364664213505935742546854040369681587631657601794846036735930521489654898839892317668479045034361708229146926296747386935876980259430932967563888010426624932137807722567760520390704159053287507823270353095339854688237752931966660575432148445734833528944366149160138978182272012373332936637675207371889321216519854581008184715764542490346125645273488771039511394221086742113682098591247843071365549016229261811042572905245051987153833562726993005993303367326005939835447449170519647377295576429248436614935094792404814984139039194752690718393562839595002528720791963607617899018801440920028358830392792571381765852280302640533912828139200524927845732683142138727877409416354913864805381815746572119435961040332184617000799627671417720917524796789875534287004185405615685756254002788094827042892233975083059569645056893253791465229463190980347303084772185588111104106540030958722800367909152582891467493676306562514215914685249559478640872358125687205289750142533239087941032000943022021479236083939345219440018317060940200349198009863854023350894689740230275960135181863319953881957982436252186209864604705138238894234816570147897627909882214971937643579307493446779326695463517000361221412057756375024907651241629326266175448972615115143240338493832545064140731463333847288908735389709607441942421651557799845468420452558424530886122700940746384361294502391077909536020035917478287727748954084222216963980266133516187629140998615526918759321455948712014497545461637784666281758145819306980073323781923280451762499248831420602798331980661892933605037102044985396647544159033199491249855911644482020055592195958959858694857881702002733723880212886472620695273876976738173379348133901419060282448219002782793902596374461441311282823821848782972716852411868089011522160224259368854098202520643748247091191071926530366544316827445593393629016756031472514717494815776844939859536492184838322766310811378233196853597811896636279275733843988296039590542405389511567760655404588743068627355575843577114026351209935711637795820563739615569604018954812442788528006779499736583771009708376771325918917945298029005916872408778763191073270431954939259268239633460084644478807211632208287457894849177575847690602138813836501074279865070607529183436705446709333916505744967606502174682233328950468747775266803959057198966730650042074422010371786255775537381188262875142962939765418138416735849977933896126783127320259898403893478258014742911136562669031655425727894272280615298109961736259242500761410242054042584923509168379325727128451233616567082254709705565915323191335269149451298647035753010804122366168887515535173600240252055600341188528659376588139333803938981933789822702321995285363793631699584460937039105747458485117978788217987725795702158852823856894227837314633965109380418187932588634578797411459558386688330692979024912480813171492317956302101015746670401122231829315105327855798194499347408340941182757589108818189227647894394215488963183512607728825198945481148422104007583495358396138832379364537297915799463524491421364308162642765166946003837952635615618910420700553638577549583923661010909836188289565149739815534476821773053124831340386682146110189502672090043724499903134820724476205569721476649070449297978241773180817603066759336492929245080707402947396301526142798555799890528605954413148925108539046224376399107103044058015527574999480614040873515565166901102487052529755541530232471761407410890991024843787783165150256934126816189538244730695041568198796301970391609788389326225911411743057037891869132347574231050074631988856427133110209741814158848842656278957286521133287268397042946511937445187849996026331637609300670826284872832387808497672323428557424085161152872685929247841655441869438322785851391968622582753382791755641392623569163507726335989536408887589814834388307317478783384672298613845095959904455137207530013903593531944790854583192996985673630741399444280450920954177289390766351222871814598776014131966529488813233952205974259871538247297589961242440312197736051699298963380316758340763876648805091041567429339709167645383769076869052078134196989544597229729022632130945958088792621586131477919181756233608675515928705001525865938039355703036724868293493214615833184345438914489387823296321598448184247624506203454937268569347234552318544126799412008192714219228682975221044553447312797723196532580721605775022131843993446816133771192466037385008089340038236493911835407443105687939062239811484807473808587958689590087357779689762296811173466218136316692531165639011268143414064869968858480971317897276896794549246060123397114507556891725551888890279662099644319624212011483126774412368396859874859246386647392201817223513730404378630994467132608042417115181416877887825306195280857877284630876954223586251910043291347344462682148887604451490677420955479907705256922597604827988709366316641160390954723281757834538945462794222343247096119181642340313363182515971619169080166377522279727863519577337145164769108480604680528656466487009528999154225543923517360152574115184223056636545900406282744525117551099866020671504058603348505815860780215308626140930058381772558630035973416985071802738556776918727339881845977781610395150466495993144144690089447085853363910149124457127518483380596163396098408905916218114225372731963305897767970051983352729377485650714027727227798423726144988369353971409206142266312019244809660448570395778189498592450842749261009434101994547270207672505687884796275806676944223689531879314707550210558863173820634521300029830266201329486020254132831928261127003925197202732933454328509585792411241882492729570990980442785126206994532632579014200145907258734156278280038116195472198037439425483595880753620982644640454012935840549451637362313715980548028745250418573992391893428575158821065290608585421145368940491429456979230116854703903662725781011945984561499944934798545066851877242837921390850314502018324456600532255315010884130095386715104153113384789914520096449171105350326878964005641669079560110734781701148132003694455003074328856265796831739865467026386369257827014950695104792037093484927023707288422585810130280146709006210212443100896512578606211677566791997177971233437740061595249957986104114337733475363743692122598745404232237799691621198529239174285001548977409386261916489013214535604406215245152706957893867717658270832855020194479354948451905690561368928704517187421856409357807759836328714088794028702300606395750235626668217309063190089660716429768713852904950837959882893060246789433878164957260658642468748050569644609823565689888519748523153316102228189956113970161993403066707965007106864999629548142111169715746840654211043882002420797727214104223506916436799424536861149569843693671071293847697936207957946847565929239750483807042682544373123580456575990017913205708035737910522168147969730461039849779650984527201720631013948628204315737236611737027569486362761899688200819270917102461053400640203180726196036251300405751495196644931370088433748045859655116667217308855850441321111005488387320922140894595976263688430498339215041749159281357719693827487129897519939283014002064289105369902175104056203617194306088231318506545750125700933188013359474393711800186481939702361628495322838007291626418575069908992818501858651676403732010399900763225034181761720635264706330669396525758270016253765450806268940750821593061135988651050449863953788858344347675991737633136805207700253281668505039874453907032640576000280643418096442589153697726491702762102035110458640510726531218589232201133613752696460104611934044619359047126355642658317376091007314430360571209835716401973775958872383233310584683712225639033667059216544619073330137674936826029494776923959068440516452906244862662214694861256754900345190131391959769869423366557211383979224478681585160203640301356330143189046244124825394647615301320321089803264037589063097442962045373911683029237570105145514555152819665092098362587455325274125590630187660707751216561309238158106809358537895152278683852029629530778959442058393009306252476480579821122157387335747306013483364965065571454385603423502792158985598090891727951841688785022646626490399342064963408790600620828906626386299728619613126924005658024855989421019566774694330413377715605315484882062926567975102935899725069978457104804701446359202326966075050766480264262225892668838881229042881921822677353749151039915202830510589951485365460608196886697796103149696558281658522519686187541417253296446594257155697832170500583102555300285210879797597937304388230409367497303687217800397065862884629317174813645072310422336235888209640895044483584231318542635154643570914090501462082524238176341003505342215900873075996584181159852862343570487090598379611146746796826074312806530184478201989253793018049973108194327625817279374044989758308498057625124797066043664389788912522413060063856313374849528970042341225626680766585913343509505813064911877303107000389844216991636688593348498257392510438657291934913745760863493117431714785943160813095610932632697398612516142746084894160033786770189608115956208412734814481728935677585007931182783798368555248241523045094260523994757945198782347482863265401974235530807570849132493153928319522223174272594532735605306614164024678770974738440102853870676599451508962916822660319900613804381632970742693920124611061177790763868950556216436697266941075578369829151921295639071047258220214690161298447603173822166113174395368776151422391078406740138958835093273643490318420759824167913319819010698258357750677448578406873002376449499405808551996300005914962927319540096213946833192349977756671287688513081436463263064133917120412767878514066181572525155351949835589517946771150700693695598885414767990859751341392776799179437537520574516980014173472265394878188283245021826919389689180358357322343523426122183267675522898377116553760606696142941874564418134699315307646190378277884612277824803439408082835049557850789358593163415098303583667306219966357707874425264301293841696430732033312866307725606975054044866315644779335460431981670660708078396737484643307806999858690090037817919456624330736427156572693735712878530675207818766961063439116856885517358123212217200960359830863745889814194001423913460581241628324832068186868346284676276994863432407885384061296670117303146956350766151057542280699422100337258740133058108099533532673811256135232104886012374813948755701470314059347538415587325866241451944411603965784831012929696653796930203774114516904536303326214226249941878606764538535120042798284251275082283155732143069556912704836279228126985330752998743007290612748640907460599612468450125956617715111731465438503593566685566293783785179339863375168783798138807975123882880989958128483616478853811716683963830716816865212738488909348740682348142268920877434952203991911416760386951659301162581573996267213472101196565593961757011427336461375303856839329523325387529265041779863546096201625308138377194891601401825721095941738388779601839923127672561045685652763750638367459156178448836834201312222552679263788388238941506731904833385178457312929142494835171044717947926726243442431494344209313313235469432915017774650005882723001946818367627989217887229973034753846527267074027681597786546532317146824948167355749240870549568965085710047645824433309095086533739980564818853142151116909500088409258078908687680749175986454314327571359984693249821852181002461252627071548728831492269814070499646498739900053064604367571355286886807253752048695336903036439408127141938617221497403972440046370334457974065938468861946240765782888781173727319074957176966070139369364145709006823645842050245159768534354571003973111609752373896396752207044704143924502152865713637811507026942678705916923451807548968045000051808196185620186653528555377029410373201674907305428829173783982176407754823969750777204190018679361172038519012174650339702828322014768017354811298459860498560664300162584969526250927132334222302781836743230330681629090111027200866613169834826405047329887177416990863406861799718958629925490749244586155248495116701718568888624756482808621185214178250049935341754087664691547945274702887125322137509193265257378940222687785283396887323030108823807711205631466624860277738166424091099844259554861355258125228065930645126128587808917031258072180629920510773910084312559651123912584988897307089947423359719750665997257717287848595323129527147093300846118830901395174177594924947265761707907582050590334414413638486730883882536562372410222916911784452505079935663455905707570467587883836638711066845236901718990667600820679143930063938828016304409031911344304936022941516341238130740964359742325279517473041386217662311915430804823261713401849744895484217460573622460619613853448937710338546384322962439833875046344879693054338395887150198701405681691600294314436310609845047089082795333861690631985387152607009412994391365550848074259583265164902158433986931615934013477653802766883241639547033195325020043014298625763348998998334059342681393217873502597221766906042737647879039162653953368303376986597902005325532299343442231400757827234553336045332085436526982841245687232467768354051298024568566594311195399780766339363869440692137884920746497404635098502301369627813764201619650114502338328569483135083120594517881837624330883094777177067570764034631769572608840449903058667419401242978027310668433733822804301799167004575358850471119685684626680030407174517890449022224059835826110473135534648512602855779872331839860986370019264531472593139619443198422177530407103867143314527420551279428452325957346252900190811596377762716940359085028802045758888833171703547048791447937956917526143211109412631660334087380590175847225470552257727392498741119597111759827638762123992847245483625346398663963610956613142957461621361593958578988128431997293778196247607402372753675041713448084403432534378430117989450174775731403124972646611892009622454178554114688161603830898273352481180230522365207372132052491727982920073758747302289218894457510419089010429715595574360817249466762716014923364250084847758690326351748945645751000021997457556484368886392817400769187817953916157484377926922326063539529236519986722790398279405233329659922348435409276684926310414487994662693990067581895572377671125732065511992251844118788752904271731592857496073632571368809892895930758157529676677309934978603881156638935670360654808108558517425158170203148551583724272595631685762497252688155452209235778687412918694926767169142289740771105546439658280889728715483774608674847257721167275558695339121325517180148270718728443001134091185423412792953443179738988035874640051417129821841593866382309865374272359042891969558302554567098894765301932215902085826693665161733729704820024874108280094926279806732306092076307042484464345970216714347072470839906166952630584487367718405027131320638364860297741496781209389877026089832661920580440752094806723634414320447771115433749066771189052249795858064983762065369860536442047083529077289258356205160734425727438322030342945543528337144855353631752576719026101040025919185536894997222502055915726569824178212482213371201465061296710759942635655618059129751865676799704075929549332201377497344160123661564655028983056607769423050585577211686602097460801897178806379140115324194755392852902882866863994593000076996595507190390926500532357404354650249008822232765981342778377370054960297521331630898649101128553436297008807447050546154750559518780518192427186742395144545559908317717505681154833066398295653890710501608857069337401258975130558482500828481289676506103984393228917789837581273366654612116998083171042468282342809833446534982767072143375529501263907187920122887248752291134775057719042290029532338055154128169391522117718407471319692181357961468021627977806282990848834011535631168879621312127479863033169843431226136171614401113872511634760179797761998406107957822921925660659291006554109446126620935040409348773212197354376849867560044164655911997642054736879178351476832902838786468676811083753697136552365135000286498161820129522927375495377261456704498326161826722462801617298545092777910076205452646273019605252842279731183509032249213989471328104791384978996867577592801499219505810151535213113292002472122734291542311947895327700195772538076968492162865388458360555610622896918103416106091738423208997453336051658473079867111309104819423257170714199967958745654070226414573170400737553872402154918482606385102551357853748670198293825035319618800062345103069293369433258670034424436356655048816292614046749991493619348392751160389238559957047700295926137317746531748445863484905323571945778406325601402243234402155729032875436973350039677185092175608104751222079570080714071742979881453569293502371530331709474158311947152163604768385284195445743113027115291715247363786492152771028124448649835517535758436036461938854066206706068942723256944724143608019732122453192595489252082879423827161693792599702794684889417603849406131899467493240333284505553261539407134598554466309016888064569350425631888897206466540746791821679740425807768983012295901919956409660055908903033039507236306616801847404216960856525016599340817656242629148547110566969212247472142990936510376493584827442452676018273714121157479409586604433930175599750640239006999893276049871806552668839147133313004934685699611182426052602022517168188716034392496248447707695564410482672557574594228517311452244951161690731131963762608550706589556989885801544294484038776504951272587532444914618843633674188641798444409355166977759524929383587714163835505553041743525755162976852996625618361449276880349254772245953128041283684089209555465008949197772610857974121999732977406608953299519834336735280293834657181892388472104373307033978927189547038431689431306779430047668432970778970751768789063310084677918370490903770755263572629216227301822371006811153479312333766679822438285002564099448254573474446246305915088586031170008277941098316997546278124362445960572715670320705390245891974303191957098882277419659014713378364227533770020701779807387257338593448295055345421984659622825405089646469622938630084649445827310073294661139174894980575881174017570061728014175375951067362838301778870127479111589999910538608643163849750453951991823216880517062651191188173381884167553805326780454829387128012846924488274543389407563925757985407440477249965593411370338938310242423111554482694416395157637505322335968172934942927160479224892317444593394683106926814371870376484462247628582503637792675872016536055326701122210856478577987704836773994221192262350963947581822567653716305220243767763425256115326855128235742294896560605366497546635117343612440368937194266613486333951669272578884290905517911344458523226726614052732007324731875455157467304153814159275621299675831387439518574493566128110306629453292439224292712219670782525218931127030824723534698113955718620345377720652920597532447692124458151500521187636514934869566656762674930653528313129421538815075087441200415309747783739037703999554715509124474218977985264959837853107945501729422011113017798119427298305869320881867628954532975819471669255640446393622526488919511189500014294526223446639635868032248641567996386791983506719281872415875376550205762573383487204808453240846647019598674159915910339026769976341405980277378357221439430055133383526427026696771849196748538861756644353264062600756643472455187657568519146477122485313930608508830772169870196250798447609527307003187629483748349964646187083387306386549955020117752178412190481695495908018016895993334672012863871701432631023902926805728759176278743832665292117805649716915111947157648004613665583249915119735320647036083690398047140252842593778971096110541315727207761505726541336247737110140465065983887541897025861069563852813592502056356262650594530619314456379268922367212789037184931439180728097704333807321758114855952149080041251664236118142721034105908541243927437674217560886439990125497248940392636067475770771575837295567543709768272662315330570099579616793627363102184328745881142947567388261565736301376107851623209555640075380558222743506188422027267337999037855655938675117152405362777281376401150822669874934914512878868012719764037826714614422548571303810733622973663632107369415556972103228317935449685147680887939198839831729914873786133472955855574304600460721819118064425704301911727633347437107695276033694090655542473198250727203324569171156142910495116337421044150905891719899745545191335327642102218686364165056062886462215516614191250325425209968841810835421748979250240305311303314488738976951047668586101792444287237920754358397179410137701040419086230716925207237767580832967378448067210238628723618021335212035901325553652410728587205954421528199384406943669523590645751655436473389857227733755216392459964156388529252300793387648146452829129878298218288413411262166015071550376119650978540500246854927849534815060581387495656590467530169611681115202357776979780880711177919540368699396114783442444438920640436398209995489129608988641280981535260445216182304685722571599617443758867322472016216173539547499776627887577623442399277538062147668346942128810274064758835407435381365286928254358006293880841053746588494214700914521998798660217862969194802009700921023387142565101225653356043959387432778962156745490222725070252094221240520747959907987815870936400721265637599321824462174392342471580142895298654540049128138636492541105522910557617698678389398425072631147598868653749482583876933210257789418205823533097498305835900405977587800455694342199791804830249975982398230015983265046396978666699063392342974198968914931747365890944594031060916914698212577144705730923256258905984349558256466281204669973845008026400567199010589819516073516935209377411942266487917682226649609226408066704254137451738438690887062837610656663394451484232157550834483353612108451280694045994640105307486207687869009074802215866893878034941276489318109807745607053788363489768497766755200119816695542942039195138206164861198840922059481904221686038243124373499660031594409858162702106560160712073633024842324162658879267446033153370648229929545640129068195901938066271524287721700316337898902108338885743742268334481945950544123497572931364900751822607165198310409609247842561020507080846530928150632237888474470552003880314579612095386432239877504723589635839576040060724935374186117406444918233309645039631178851111533319482757674292508172502674282744346469804731300008252650836554194576130936696953780788436474279182400037778569919704254663744388700827477403043196898169547257328487122266470349960949432542213113029469423240541976637653474551891178906362979488873280300253474300643778792127009259135992738384670583732504939508405749331161890358862267494914875446612228994987984294041005987239053788753458074037299839644104035906457479067845780459935644305800939224369636487458625708057162346721517785789936846821221192241030990625818896298916991061129178252216550002904990540488450763619505770783550177908182188348286794960961225939468930225473770171248550544717701139376840332674234584943935312945338975209208187136699504986020837055260816919499523957205013209870025588428249083512767238706451699918340460292707398007363473448684320563923670089878832727389968331209995664996652541017514691027693682309864820486616781577413904749652725616329061848392770113735914445195850338497750065811102500730269935802973731795620847910508130546592173913092442122918074020896266021466176080640645244310472992761698241768235201072343650375485701651497025938858558486247355967617656428619464489142948695463453208716205147218981617600815716586244574901336139450188502955356901295606457473207654521141611670570109009861144249648381606140610324697426629850712132357057003162061494163824962525944503911552633681427779260341254904655012039910142976543589369069683400009050395626455680206632640371437576025572958412404885849365199419851308661861844949620660006241652466965480054218233586730718206832426203130838110471053074808108436890655758370668750827980440566111406626937218533410381597850106616684623504775339337997671275073346188785126166336880996504172857431817869567651399586770012914238674458096909474461706833411985352016218871806300113747805552742527065305779070016030545972456268778880142018724021411757589456342470923534027697694306866688602857467824845311008961948480956271862447373475067022102536754607955345401715236049208442969687741165484302128961918145510593487291836948275261781101760905602017600754823415089315287481989378609358188077227758244244366971161967664604833916564058162520689472417901573444715437510315365369874749147638624583338961230357315419742007336538620305522851164699393875883480110987026218225080769809205928303862654140294915465671600600584451281086554554128406001255072824610850295930002542377102853570632758782174581844437158090655860581000833831768530200983528432190165916048803653593890542850947823539666462838516654349459664166728479811886353846522491884633527147925731774998270476808698711391329939439891766785787108050974217498131999878373317762155290699401439425043188648131836429107288436666295509129727645786525088432803742644921245548393559621711564414310464901996205165917312003193756419116698006714884925568610826479635035559333064604426502142813120282556015597959286012732931950516922832770422284687474756395999646832888518257296698466589001064622318441376009190514296385260648310522799286542807833043722556730146871203251680542848641483941102301472735524788090880276298328775970592192828335420968747979525256061056500548435404197982454847106202311339602546878472492166910297074961826491281320955855844233369267615514409104646253279640647638721948668186522308189039177435101899106238506893645456775694654115457262907353471864602302939186863753866289863440055765912980061348704907860607056733312517763967732871183535462944668341667191494112126942582820539475145473223849904097139374444594083819352346915180828608990100441084933759915138485491453418669406802794388926201598294724295597882336154148621732568012241988473934164236046180844386676424728439829292339942080762187727378648444736455358992657806936583722564625443563930013882477186930856160415919475069113007963249606526178979969278225340692270413464537187794639851444763142432742672182527746197001991685904020909464532383633650716577840422215395437656227380292313497825867234678426129712005782610167633298064608959869512107105224511593500184607569917012072770216968647329058891386951963383754214257072154334543969612301630148493632912403818023721007603999512426529823999100786512193249058368891978646582200299885299092053132124929956049038639958967091246666583172087712280471865099745880155989971735889167108146242190616566786925283689387819009142420465792507256768171336753824726822157722630996185871457091305218063081812083267830152536329323350447523582496777546925262131223998036538266673001890760146999702605964050613143144541595220372121777987739912345367321300154155639077252236500574982345990941974009362055536502229957004556085174709726510261197103930113760847860287309387730033074517371693224728714091033517221837985355510741476867677774568783456388373916439813739177567247860990513114944625084410212088386918045254864139196560365277614670211175776871583768691621229735644371274492013034900960968871094694504118212743524922247529684518442151552834743017876336086555150238773023928492587724291383624335743287764896058385490504120421492704208154429049821288026100053303202500821495067246077509482745542078401682365597506544340314572475583700074109051736083134844417379487193646924409422130764442809581401827511092645595142124685591736744152734726183484531122971301139747436983834283096457875397129238737155113578444272924147640692015690338992170776384550680915052425239221994134581438714475485002894317916660567972680305172474987732764283809707707106055833724907123776089033383595871328789063699700644939394461004959614942922833608964887758461823886931005100977973193717918632764140678054437556247657848328710225305329640620810745578194456085577657623767854911281637090387571910930607011453033823547815964919758489539911232732136729354405535096613466667450894174894455838937485785995133621157087886695242682313044664810369223780159110389959171292770417108254731149251424243695975715081626519360415700872452146340373824487482381579881276736894272453909251201876204256860364237966734802642190848025360365714731446031374864319484963457494450794894645709550974345290992792777529754855097579972116683833525464518545017596447616304473227723530596384724210193111185403897675669041560359379142310144367713103194770222224098038893494545240444136784978600895334618486046515803245478130528562765300425308256881446072651714045970014470500528892589602101237627476521662864635012934422421160037555966553550025829328815023970270448118222570107767447424986042839325897486691325723195509060828018218828181665090731207238059259298334788213643698092950359074541682366947774792065276858940474128230149468982630318835772500348565302425518190383185253138789595101641992940236686170884398967611915559347707761497620161445036509290734805192500570769150902530539870602797777710318099214614917543942630980857559914768695474335376976038385349579194297109884267583979261442000668174656377390472245104840538499433943982257658586690673611554893438061349738593880937276452392578853230648049753362010726127162622188225995420169437686982409917689568580012328387969149409959796850915117813290641918752546241455101414299380835795510445650566590237419002875274243099170634622748034499053773283927477470619368413121391843141463704815903520122789174926907757120574437053249900842940250007606274019888266659447446122895787076202077810810711535439702492963767797839523114257733542055064153274165448786796655521200846690799670662905154656358195233938432324525905894013779595787607796452288960487932803505184435562650640959554591572072396245851273907907920024360535787059045374398242024486337151813211907605087341350890787989774732278363479036920683790602030541860920865632705177802354174572688606882526712197030504281823948379631097734931939030551569879475576321034076042894292456375398684565815143048218662148464645893755696194210414376552746392113924907670678518627436364386261648469443742383806278656715241913567810894062650579999131426849589525446317169252067688762847621095201231455483881652436259119846328014249744062684411611073012026636603496292012521688720962656004508321540198672516234404359446095809911528301900947870304184033716421706688317401331460405976655739873181408075213946639772957254492996301003296414738827423637557963075408243890053786585361124390569557892678310180458859491299100062481875480680520727515474195805144759992378333232920812644014265121825213619742948044904730170752180057526550569335122207773943649058441073930946044599194857559327167710433834847520907601234802205825540040250273292584730002449019734809368034970701390143439872939855458269247735812385972634947802269953477934307916718058378193375395959044816099007806901985396866440592823218878265323607490280108833942357145457272384081476391299614723294782628842807227125528435248174558689700329667520408471979627195440339234575415243532855405158403637787220543347713933887470048796171949755602628796982901162822645300632940428520156329604249217893566947956620585620800680787661759715005648029651366438955158773487006661564442250750131263484602096311136559661492580683600055875706234892293523064618480785357469909346035888450919835780798142433773758319310813451147998152171905595432689368134404374569901730494310806517138508852167891113151816827431991600171097666010888428281883758171338054336802084325939170224315118383761893920848074618005385525101914758904309507440462933240787499979033461429250563656372354641957090928386008611904884695480912997606770881217756502510173486527771450733009388963342112960553526988365593659190540030240966191155766986775613636809833684184415356549821465667774660684427439151002673307569394662823993151234410006798805697910732733498832935854051954117248372260795047872362244387060308827246572718453387562045131831129493832477856165825614439040212733124300722385433006953337649863719916743197696530416040747366718633938196465946838592809989075176260178299563016078745566950436856246606465133255618722928355465452632151873268672617408086348157669748965733542520679381642253791084680325583817834962831918588351903345368597703916179037614703009500257685284866608742233182894808053763652642708654898879410565957179108516664311836224413657203453647986527764642990622602209925437565478558169888120150930918168587229140837896947723894861533035794339875716688903575388784913999095905019740154871223177095180932868833098947991474562262246046246607109429626918750542719757160431266868399589862110442402208452747498260341076087143261595284023348858570975532972414496614969453186648803404238045967130792268561930163087598583674051110937108225541616093860108329043944065546058030665235857415344673927144770709630515222335733521666399848864830138470311796083526715354766669755711243762999804274263140662578721851714912072074939586702667693927916650630458271012451929882175344472195195061939032114185438665282773913646185073604682165084328896567352686679035585305001899782047577305489361419443531220467506600041267646030772998463182198733752863715084552150293618439701015650852288302248584842162091508148437223544851671136731081477920596446861093612936224182439968071967432431800816830092352922682674796596115129573923004979289586883289081793708759508302877848866669975979636676575408699494895710962694847752211671790670842745510246265277301675531830800402023484527945511117055237769589124980699351010877525635385678139247159830842006647470153129973154411731945095338303251155362950303500029820301912740426671770645287203195190542333108361198897548643948846365842244371449613547222897205886405115126772456857773291028830076026968957029915160417605705028839148324873512421955365667701061882951151241753677512937317107775058867404663633136214544317256641861913877974648306244777894606713433910539251045029536438561378684952916707611601279937779711159336565842958989306975888715044175427428776197366436674334350235912199114967697163491933033202676475753897306575926309814458891331114484818662786794401292345442225235348349658090388063505719455801020236048084775954346008046443255972850255478838633893393231107179706650187485823318091214497992958643987537493626702887574966180735991947131191289728190074206557042454473114514822276692061426325862775698674449155765054858797009774310857503316543900721655191790466417670402441855217906175045020077147497588848376515422418830424994954617539940456923731077173193425187113990792467447486747190906786803349501848022738928210051069968587028523683575851948748847027242267435134418699090746632111500547513941327979498214156042447091163526402466987821391016630983668977131351277813275005658586463288134721272894076258842704109488147487702164867540119000416160986187567097638445828911959191596589063621064654272923054397715669448310868678865182663630480913345791937141351486535521477590418240503030435064376414736055049044185571194953275803053252591712247897519991593614095415145114837818441936760012916853075266836902346832470810091224811362187544790250668023326364624998891144727540090483311844402509655940821435748558807690643877399882490093241269483459419399641500078143939037863832406343120514835369736380937326581529553907642733845375034186659107506610012734590589837690000512641085268134114542082703478133094491504927987993435341357225805837502624943328069885867104436764998610811223286246995198104465852970597951840485890821948864256826552650776044681994644903828319023220021564648368887503122523232284677154806348526125543428714909736177854266617756852381111866786228073140566681132403839868738680005873150415023078756549378010658050415534416987178498220078564679564833537741160997312636853252767910256856941016421623017719887127445857939725949741459978804476074716152656829316628287624798484983571466967212462227525232676081838598060279204669839846400018700470446377857290114764088147218133504029427373146194746474115094518461616481030456467562773766115779275775154867966797307342354347835320038061542640213806007543104383271544554035164352099085897733181541193819411045588818771537641630588648257437288488393626858468711508544117586205744776734435380848999170125330903387028629667484544875405477270273253195707692198323920215956370539132466334258767195115976319957092934084463263491144445284297005780470863291453899645741319205855518118676274391039121999319875644371965182364732686850125181967708753656690535840022432776385104615259699813061540749655372398827737812583426390376612328828903787263853879140119008744580820937753214026014843903181989124275786058277286534006275916415562269710924383066295176576510006515559785427515930530523243660548762079326662413675944548121573532262326469915609232433761866923211971806599195480116260757819052946845868558465371422265140839244939550334127460179667628258271620204101848814373018086040091472411830723981960584986148720896639133188726863701400931273231473884126349893875405199092424922809582354831853784657856751810994051290417598218756871235184498783655262410164160182305688500341696725215209262659936799636936649337583735973762226650601797336451552749052055683756158996413991206827338990276847749657826760269156629202052605884617760295111606155110759265807707254170148968674160872505783999426225228649009188454591553916657960079650633614032002490842251511196639119401107390856253271678199852495055262460725529942785804754973500701903979016047972632659587208257657221866670419863459739747352952857398660160450317425734214397475474514014689120368570471368326307421875294286908344281114764879975462364702504932379333438905630243528355811222033331927995498852633507324309330152208264261406624695339670228162176434780199337674676443529327551846215091865982663010343337867656490380255668676940235982348213351399249717658983638477951545079399407406703298276157383139530420159594395959839839959059301418945025210667940474930295900834151018106365141248587547430456548666294709689649990978554873504846098906968205872831732474147086343391921854586808149256024813858034694351710571394099471991966028754636018267513645009206437954714905470311730089513336748210290953272198172380398540671059323988555344267222946677634246332369608789769450354839257570445559787844098134801086351440241884381881216080450686717772119401852720323354684930532496031454576128819399144232631744257309739281914655168190396466853332198937349988077449881745509471508535423491977631802728520379482253779666490033103695319602336076530933793249850074092154295890574941315734301705336029962023538493713946083073268637396817691966570319153752105270440581566260401369060837888071509386910853003704007033898209929197448309549877165169838691886652882022163144207307842494468031122665902360073307099642543646523747969440988332025583631757337380857399525362690434208535576740789964512596177061921448231386732535157631856840789757494132766207259324833712286804470635655163790516586575346080102194529298313929124261518297960291530876488514024866650084877936965991887561123225000376742834996920062427806775848369203386462543840380318789880828902372964377187769658061826141243041760041294871754683537927580031890189883328727093176232502554009693285310937210752332525534333624227617941494240917763413265556694481487011082258969185909244107403583641967890985141967457813878707767053646166976607171715580083355448429912685974180102031010913217105430035608193662071801066389868042544373552224161651991244026521080091364788945230718760550095186557745300619978832088745133061399573083038009015669947276652181530737332641077243048692544808134419316252234665691273150982679397806665748024145814487261694954670560049623125551442946243132834334634536411029963884865507730707232429544287946684585976706754618850295719615765007470432860799712886666230223340757819516271200926067005342248265859619654989458854276829612111194447672244212902341972248624044372381050691290481630512328520510782226556816907543169096648022896807858203380093068428139992140065221214308651436020080074916307116400922610828169288784138626892671905361234190855978513119172917025390965909228935571992618902448727264548358124953852416848909198799880555439349646087307059508035463614920893688852664928289551961320127056302955414065480483313139489989168090547333263886487423214391870873533575587642948520666031152753770464436997801387968049262496471227949488903622824335309730596844229380808861671700218730772986597658668665968202344396347862880737582501390212653833474607291198447896984006630643229899865016449885609860582337793683220042765528053903092428772127522340004737702837650097701716176754137033987499896751134194990876102379455981175505383270830476913427863356701767153809278643837165466719960558007332587116300819937762507504559473300589707156121374991258741717412327754885525300546499793948221122153285625638369215497626892938046990068770646821959592753742151949257679721565725304096637062283557382220053203923598619350941441742810691854416381901209206798052640353847914777479039806125511828767007565742170496987136388950754347829768660153134776260835647680976027444373476911452326548312669325822400173865214828756815017359748097189915673520927337941131627622876921894584407041325336992111711237431733699159333061771097785340671848971855075015321474018961320733655833577040494369124018233001156556624220012649691289359121959336345934482364148255784410949703156016391358480081192888798735996826514729067666469217161768014653038802141013292448871063735083288291166381494846774131376168326153589446774047076299314307431807248771500953394415349419890115788303214384969371305720777217906678556433755745652579483551478221209235523215470115790415651997363437260572354146514409117287822259525703160225187144416670641359625404119773909716955951051114322061517462915546318439537390736486881728617072568636977011066150926391440073096085392514953953910048802989557234570273956165403555977559070941499905949706564031801934423703261056939112960844911295005016675119282726435036364502625181207222058444622742721594135527207887621991993378275397901338648015618911095497848580755870946664161060291783914330872981402171187744426140710787422826612537629567424940025385373783723561299062939497925313330147604049836224468708705817609454702932774854044472302778303987223481133649060940589765256453135168524895062857290802011102116410136215800741084559236593253784602339953085039010983966575599931751462450023131669629945175123958896189736950225730724811968240247481043766038113946583123228468896240284133142896537041008114967038240702923014546308505110845587883435137109657972251445903462472741126836496650320976142057543519697122703409895349474888372700124598016135618226143051117960005586098597360758460810211601434545060305922728432526727820522377179380962042290133804493589987399669159355777991020166163991820479577885134720103797611631337977979207095915713456289855958008675833143470999474389045210077078824054344287419268460244795483507068937145688537714252966382501883452583007677030433344064615892165012859317556142019484126132066534184750033760281708735488846964892692413507686058657388027301194020138911367610981087962338302062399216524614264313890541358304881101187394801377571853392660666572218900402918222454447347221562044816906265049559638921031213059156664668802871020765330536000407523596035308504950285777497218874970541681499690959377928162610312061037994801856942574909921112831034215525060478041006478570876727788979113188363683950191415678890993663617920932934799509982489449379757880812737497816740003499522630199503831649700178639971158063924966360464731402482407658534417713962915382600599035610349623525341604283827680265911415956019396526537288234992193378547260202233899869219987703451109273418669896434934342722993866110224349448769998317021170064114271226503483433346072538418018869119802164820422316733470399527637471147885804461051195633839800878598055145999166602877365139750280644591417469012647435342035075200305597206716712157791724470178309754602174087945171025473723595687442327439325178490260296756391806268002450332175688326808808908595882504777092680325851058329564198688825457913448736496494284441098808479393324434506758832721349721136814952445803978642463112387348571004526058210379270212481658189414173112864721138355215223541686330374826737792832963219467881200763518602505724612391453505181073006108938273659903449035741294593531808863892289430982596081765559475142108897668853165886022520562609004355012125081459568149202470005215256690877235430266193259747675443238816618413550116527355852352497052651215693934293208727662389538502882016005632109173805976599302611820523246450828497267074839842122236885302324091178888620362224949636831900896814171546683449714765673265759909129296108732695834485996300950654439557263873289496760461355808537263599171224474628496817789152195421443312976080566965412816007085307232913839665722107234589746528822815400265674938983236934802203802840645031590245982849312564266525464440525880969880923831807788022413864966563007561664357579383757906194066663798410373528515773787997289300834675797979943813563400943101902932124042953008680150066543525575449095493403109478829492917348183668303994239175688633742134331601684535898589289691601646074070116460202785889369701991641060657221299068438254998422815010102740931999331425636599211732913516943929609487786482258885687851471303681904525622306234590244715830921139854379493317017004793220815438763041219512433852231523857383206577718894006461522629830790522254956366718802208660726694925948363965023987111764018043317504169552861064916138690491883513766536423549511417683097458669141184081883513841090546456487586240121507797776970798025900654391690141044758368018439791355976324553129482272751088722867262764002139165765006825243016168203581510385421167736521430000539491780063590008234471355733895476810597661464938831688488234698072890588066143393285249292845987996134180118517700559702954415484419394332393124713652773197452568966336092637764028673426553893508017219255956962067960413609290928578709630980954259303736829814579909030898008514897395797103078295217341440017335014941620315696410074436782321175936305249760793102408051139327459149708708585132869104070211411893338095852693083816343683684924019843736223507236042218989574559586673888692382161137606672026592380943545242446157492212145860378545116137159966540161243625806171964783746881462527374585124100131932908677352041466331300847974343112807655353534968422915874061316001690220001279877355699620573405396536081110310968563929800867488880626588954128247527117640596000208529137249103926600348449682934423919426695041820929984571292024336880726993171041159297505003590006124032453516863870459453255715900455907011348002670982673982322235411964400039626641139388177479419364534431272630824695087016668460561875024760847922062806714232444660292019016976908442102634918855462845177356931153157766523684859549415718421932445257262749343810320728834328475393465673165487924496224957500105465486891597268862363709451113711023633627201551632744178079804634771580590712565564988783706854061939953697272420361605765462047295344383550792681785259397755697317077205310556546694754938133697256580923582659249258436226507828948613001495713654410242207300705892736117570087281277359317329074663041129491758745667440249102373113297087380837423354866302513201494687910522081235431378655975645714960854713370560585652751679731073987933472883414816629710733110875648539184481270066563822682103447024246109099283757041810095137320398073561774986499064791605980177788491806156574322178390689456248127105410269810035939929450344776057734278622689223854883170029827994558048101019323709566958668096912372104641063953704556282848257082923156223047309787051747462177533014938455481866950029357955110007293428751003980075268327425273062302851257459428191163988133258303488029947282551204897383833769259162527067063216717294426083665624283404767500858999912265543311221449853048709580127840846178745461986269219721568195925344601693525833913553893544024984662917147263570259375567329993652633114236781961171038223720844939718152118957726546373010443465785251949930774942031442836230713056904433109787316095855627679601224796993555126179022518838227739395293717026311956621030668236109459677925422922402309100307593971865767397694714986963652353608886006679067522134283100110268845986363695341126588671099382408534076815462818909323046341652937872657117087478954882315770612663217778131591665551184910513306949893719684770230143137114166834702370549714536054776078681773117315296213462883359900384068252154722044325447042564780150050296842906679044305473732624801383667593905543228354286862702825334001174104514309427126998463741777035270401658462489791836301177949181815220612335390536882145770788233713300479787716668895903840655747354753902419128080272985527406428074495289974202320696005289595603277659248823440708368908346037120716310333577329521349829454316941794853377864847281776133260022575889696017016839638326308336810198251202237915588864336744475806117596442522139253031009763337083757044456187122013914989580971263446473213943271677117547417183551103993205016538157402862851216016560460537350331479262694825397769890424759474405790699247400144513063340880424683377527298353162396314077858847026054995943641731291769618295790080121687087023720577033471285125542840008010693205981654317460671137361409184430019532412662520770862589593164625353065624040171762046505719544031065474271210434900039484203343853395720581094666136412729486732584183515110317957120550601086293612819570533718322033719004646283019991035221459505361460924450453707987693394908601980055159047996644672332298528085604828582598533274870942978215955973590200240741726220108129470599011932598363988547924475065388168375592986999406044989215012076953453579509686371540553401097200607425070642097013376932314221590660181231836172112450248820639755445484420848893281791383058376446590719794206243113435355856552367652291314404470645123436119844436136086489930802799191030008653922701483701039702991322410993260391442254113629500443510127153964440211173066022477012773551212982797659895416890326633189915870712053225482914033453120436888882921011040466159879299728562786291668633206228936994356175037854550175420637015800873199255844150519814914936041826579976380518217531654346018444410658163976931958665053423961548297115177659885017516416127147520070393159206973899601881317534380007341785589030759242843032682199765966056247778366974625686622360855045285838386802951601569874426388916073273162500658631164603649338895665742979251674881473275995085364290548065351717039444704516517873179279035566189716524153171583980359212183138229192386434324591944463306047885633281276534882768075759177440391441860571983341083324886240032972262579949593761290448061085937145549216210846051387999793967348243735017876846591289260541046710725524713817234059923566673482255255951872095408946991564342748149353176521706261517351461655010942051109564357552628853721650598847268253116482207371638415203620614891667479830233969881786836296602846123437204973798992753478591149195376523426508826844639568021758698986049856309305700654389263568052156231536016958848301286947942913913238052127515329830362267199350371812847133008427912961700329881020207946404691401610708867172282716767882622681828220539527257441253600048607246204814263247262130991419410957838157165041458143367614424200014169704019550211921926507470834876889732701113960678908492566396420776014001105887945914135757104920405326915401689248349419626452809634440044584680614553547356161041031335611637983924442396314047825055436428872957614328811822548229462169703098390102245685080300706377898718412615181597079827939708221041275462434217128302846819233125472851104704272457517537656982116835695090868295500925743352616283915132031936317979005458618421728489623570232819028311261127539247473709111592346487051662654417112429649953916217125057738398156466393223191190187721865834187104682876678537081491198244874091139911396899959139113110745541228829098675613376802538747434581443680229944326298614365490968550132570260349069412274387655702930276107459961796408111983972989181061363393003015102276963306659689346252288112450462101354967134100950905097588173576459945038744073360379880489524063355025955518910723825148542920347339380259233918342238396484744479839063414703253419457123620110538962253117296087336644929113757128318318761310620188388152263854259706458070686896965308276338828964973100633317628044102202586108737667831111344422960241266132211567022305220265836128352099877024061201970063801634030535863582246669155227638494036684528207540380672976414720041850881066634211324868046695071348128497728589255699753366918948946558787901549027923450257546742543326765279827739340220245192301062888910793398989163867510520658960151817366459466811721969793675069900673312841167838363389249301436491873461503112525554495638518410887076595450099292681556143271440249910419821054830306321045529228543637097760499244311690320367172754391205453986563182958616621061440364005894477075258204761060603008953736951972788256593090450025069830157676230099704513047662853217806235567725648380291295140222586308410141995357605526332351639563263965926257986855938130421661810571848023669930574036964197086683132353620073289051510906256683700852508001087489312239735272400394314589990968775477833098852963564323084290293151949597125040497460915703173279296377697610858619528314855240493843899969092717629756794257109236707740271958569095566949428763777936436437981421289012274471489972677849834394592941474839903224765498093545830213430937816255509887848624509950376464949624836544842049158309475527435191658767573587314937683785841276306192793263230527274205102588236720871558495358969658197294610337707425970692245558800642537502074818863325840451682381180019450429347080939485985488692108361912429030029697919123442193843898150300168679105621332054577527880488726297842152500577714551430656518800161374546557359336683393380410131948761632926506257947948482474307289876039534606004018971921704470715984868933433111855972236312851677624746551684651137804979992002285892058845994805362252352046203998863172757892246432166886121688107741845417843163008597966662209099880099129771153120667036507679174200087439819724586648745954119009069959711990789755979306173826315484284089316263406015232116739090836381132400661275621108201210606054854471517972623264747833515497805741515163676538459564114536088858733756603182247230021816939630391380015243529096841918850561233157429975397057455222162562730530854532084601403592937325763825345035799322153663197440206813697843017921173450058979418873159186694961705162399555622540147132266121584888905823998125064780915734033755740596889708006082682373987613296585866025227057934864670500606675088286951023135743206533177267918956915437352986139404954703950241298755710970070092425634903958941337404092250760889679645908066784659507351608570853474983891344326144391170560621492562341514370446759717855993304862191168776774040609046480888061071437028368973174718452014764150753639683991454969836090377246631859962194474495180243535365772037085089589319278178473949070739812851274371633939113528085154835982573227480583227976917825671671675493356920515740637235321091334229305809875586224769656103576676480495038978265139341396414660309568615538743631533582673590677108095173724302940246682330161411820345058057220256263254972608889589744233397447167275230154482034933098836197815364708551753687598164763691938879895163905418405664289643549919780265922706365465701113223467523052933314044924936321115544239057051180276970969939983489169945551309874111252327450463735984176671259318062382383066796611478764552247322086994772404413189544262444056564401876708485558782451893827256010508824330928314842906373250889666476182528551129225162921120127656938371394182197301071230765840565856049243465924865120924190319991098710501758548266682500282975706538117129574495768660347081478502628661421493052917694691625836794938621545666731243495344008538669861388693832035035774859347315132213749880812498594199987392817076718505932724555998835278995315930528859327080617261758351255209552645270042400834582619137935315822619475635140477355992459675217036566085338830028920233671623207990662411908607461744280300600142024175129738448593871760242610906005198328408065129536597789036290194959673479176807341429437715493639671261064740576471677167992298826329071409953616141722084555634717641613135474023316931099160449818971751551300928136059971528313851704050158502038666985332725497398556747466866373299073528312780099727240237393642049854692445245978346404114941472354103115491589422975397020877312745735940259932888414010821099760558869678310117185344254528091706197205883370920417726876693101733194311306331352951902017603478332597656852723066808873111523859750981450491622620683874922455440430939112680636667369628839335352744914528352856626228705169282391155578537292969133057071099851895356731157568430561184445446924677931133405109758571783559586019584238270830037059797614990351085367060230892921743265978364626602252996671198798092263351944374088294955861915822445450710295659059228130035612868543364272849886903791921296065892526298893306344830249356605663251288718039393176010483398919593704736033907915141035861243664007648608760014049245819419341994018349817912866502970419671279264878641321112345417426836068535779499827479912228068515578406455973293098416337811837782090675201981650280737240049460647513977862785386975611109103743378699667406046394701195777081548066917836005828941317988747546659707713292044318672486177590432989300994071006482009854424798040728357873407804216302034872134201324889102659732807147664380586486128197493241295419764018159849741340750585871754486518661885109468465026795846620834292812026390830987877749193819864011615073559964651246627504175152839784053113401671157780129184436728114977836749519567710377075538301957616722413387023334115463688478747706123874163732171793235148062526561294434043029966413182890135795305687837806048330359718644641240595334812335183540442161578971778242901438509612376004192974542474163252182331118941789262973749808637116214182313245520370194261725438216960657537051170993351372397477901566990708724004147718483788244863235359173807488935656611111877400276707452082663781266889540983881659055969158090551561534509054092083015808455089195925584618908706912015910565525723513928282705467608935267718924725946782804330108516741769901188633828197916837461602152828324608717062908378380204126949210082793907558609100182365674831812109021182703916614718274667123532394563516432884944189715516092976796649172439810707506217622110074836393900165105370585221716438221426558495185208191528919798666343248370890490464122928221806533494951227659651181427651248677630327195226448001778581805172143804261763970797446327211651453077178409506144303761436779949745627847760509177526316462505026093171001434453192826532305138309063085867344638092304166067453126691560735421689484943125695196196476632925649477693590554597633887129587453115309607549292831905070621611360202349108476735202244876805213069405064385408245623465631562629098726246270555325352990791151775837776270978875879606566719515524152550636804457735180565361093997065058574940091933480132911375742786884292239104467455463414031734459115730937784725860485303442172558613807533563943820748040715953964930286184501136919154029875303410634276985719224311212482207203617458272554365019156558154887114403139611662450948243205010225969322844760460746114182053292973563420163613063594776897654231088642045940274727018548422559206609331457596673312011070763634137884997565958015282987504721183996316835703429713501492724304093591383080143269215240282704845237965463899950369227305406304095062731832685854062925282797901080510921752369662149910412733047782288256449332103773011607503585540395735398436237428657003986304704741784500833505020450229634799303689304841311715041720243957135943706725453360352149270811602220064054504175561336790222095521127853957998435562216836197897279548437329326704669937502027496465157533539223449106021987297137244238220568870412102012302170469198745331740691288046322186673850238034089255258551490876059159458269327296455167918123749358850443402646240362527736820438547722906703701790751738528002143170923711805197702764146324924121130332988688355599111934952607078474147561925037452205506273584002107250886459053811570104606131558795772140712796092421311898533152127548909924995311770571242557932580515868200786210821582973007565892347060327250540908766799793728778054396150344583642825441496879031542707509933639293898628334891927172554658672078939109924743901998001374720839148401254656320974335231615732946406141429926971396006067923284004904722805284508787757486878624004775398227807732996296253040749751396578903141939063956216543799562069703926843593079731398941510840097168784928694575077392300728865315710765769465310696810534745188589241036744016521150917077315332327977091772839294529971060679589363646342588519711345853457846666425539684219090390214769662244640476847621029116764324570169858056335051827687454180422432831721808081401260312067246231950413755980100856524666866174648382302605187891156017802385213023411271924923009831285832456941453131581499511350757081825955401245624325378824918483739440570068998009086363788945453175036271424730283730324207567156297159432653013178135626470521584258069315228017833964141554491667852454013867342557539363187077666718724098755039597347813313075028138136221025634126541073739464906342253772106535896772861741179091736388900099602529455447564859523924460132117361270143329538193579799153472870292412473966127465546374605156041443150931244308872966704047943585915507914830311732617416653458067960371404595861415081596115191209921357004530891325195897047229695178734571510905439065639052854576421457390076496426086925548022126035543275399484448152267230047310938845969809382243135037521389017600080913594545532085899107563415677528035152258892921287323531247790406508590625969157456110452097398643933613833123688434454682545831549582439420021515688856956353131763354930109146256644875396503217745263774102780954313587500536482178836651908974099327236079880377315098856446647678231595932184882374535558222529279183512503517499543437666625852770278374055214825832056623642971038036102830490004321813294967458811306863877676335349480703478944015097455701435584272372241368539281833636216304828728749165810924175065955253887678249601194631624068969324934418319672034696450503807787771538246495774426860307066057935885849308383213596613996064074513892355949802185970591439837008848822312485015795773077817198028229238496866787444007395300514730359220516742513107478217237312205193550269963169537884361493214897856575866621630009178912956685999101660697998027786797640979011506031212687039572654095106052975180546048739394541381399722593409571920547461970353701617172712198994338280612864228118725961188783931240643223824560459821533084245479511762859739565139584254037733906880781145362051858681102394645209902314603444416017865197238402443054048223705921478833159936612367158647158719472865818144746208902275008501500960190272236049007469497786766187351756035666377982314648417497750348747672636974509742696299287213856129077152902189912157002894991194009607553067029862602753092784384791482961488761205058447307696698315844005656082158068964877255073335520685063877899314884209627335277485815681272192064716704841072994691971075428954573278936808452005410268969808992754539420437743896010646763060617551031177757338030051819376134134521564152195486805535912325539309118985439557720405928761807173246029796699986743423729200431789522867487496111404125546363147444215379524912075708939003011820431687566697952232318977485471778008323552692745410083515930306955889106562015724564449275538260863203401907795214572707217168511527470428328760188101675771265209035381935790875433307139395979567036339181450628218888031971758869946649705444089984463657145358940889120445231177554174284901266022988776550770885904656746726932894978674471607851172566087319075351769036115828805176936253243330442241035637810610075941720631896754682604627895202155671520115390149285758662040925000283847740455512348591739998157141034849923171174103336869635336874503557019378987999452947645673670188043026663251591697102849735887629445867745451348706376616718171461171614772371958787672500198790918098856544196398078055420829582915748440124662889235963156606343584452835325462659933925818581499027606838625313212218594156269358484231183061996425792770828466969107012416690811736069004309344930249084466720518976895180661352155771795865512613821394005953301615335086329093246660700247485707663530430175650428685705124326814342662365145842241090399472002758513288523952838188058270003456627338131001780048168541393357021131053293934128772338612223384471937739576401661492299657297441058031500248036480893010696515810020485377725553590480344402911704870179221734852537431634987124652933820039799083315697510550630780240142298333289176897679081351903238366236287983067842646366588715032403125881899828079362340683307613731576396206643856677026999106126584917019454948318986307535857983516830808283166015756270920651816128753930796011996096561254373749538544709211704467565046495414985442454166571885577427516998361798587043265324583869024673285951108526114075543141110602045096573170753046889772382559941366335812781022410763582450552461191377448835020679839238374693213605994877923994760169675619867900299758748134720170409425240680293864074960264224104478955622654425043957827149741427224591113677561640529267770051338663970157693938647842360785965607545950656681550985612399582368066856886009777842113514072510628381893367412703444596694734417597982731386231432521687586193395149067339605595220729973077947596501261495379981078640198455414212425742762528052216658657128762533826785209179579669814102874082395464300041760655433344671809936914812220697150316716025983016336644087844820600699137632476681728309831815183813538299453344446644210887369580628851441063992946909785139785093311271950723651587720430131223900275595649179279992495849387087780354391756841824640012572150631798428710283882206143533146764377450266522812301885385599751297341009352659001291169736162541393623803680943315495043684992529698723888707933648191204465539060029531490353466427114856444701757758947995078825763805664487135175089719615294683259180764829990343231276389674139220113750733556892949431485554633568639689184981241288535337492818534164275931442842444246186907275725044934461564750239622902921951453117947103465119605494500192746176247444286053850094157761658423600853013761194436047317852779666108911206049742818443248953120705107631053976034721373456174843836122568026036410040746909264397127175977632654264728024630919189327224921074434846921373355638706201544396078181561667116908321899617924227892588302615262768918383154283896203229264879433275702816721038011519159871229080468433508079037843835554030497608791237375658532881157576736276701388434529522239215282361433299584627196847771755394252684256053459059296051424887178272199493084019203936059528600428933749887943601339257947100214079418057141560014817397315722425571236179069969874505193072060233627110583334118165763684533299886344018325314244740877494569950430491281774753876900194226952703143497117213165373948609158439775756257424008084045189487466849398777452438640845741164750667607446240379759418423867282269117951251525344011388788579493914554655370938853675483235330074464545962426667195711253525519175496264770490472504744980699807803903633800787099971212648263590820898357176909801087120335101810280127396094743500322710636381785866343609370400154725975518236896319572020084639368247479472774267192883411874986013544221438094329298507057478022572336295780155487382302208774556226329937849422301626655302881044267060988189481352034274174584110692492698213213074575074631234483973014956386538832531285302291077441102331695403459613199524620474141401773553875140121094969832825269656104259037032781311446078186739411778760273402808353513215038102867555780654043423349626535961377278330216431252546339030376028354821917276728645349128249219161281014463114978398448371056126562106464821047452891445521033936640595303711894845826375830012647202574896223745303164835639212457186629034647859606317157748616685196529983926879974985368407351789888969426919472911205589680062450646868016845867789244360654302258202915653179233869476160548189109839876188657680654166814096229181916840815220303028783931604244563560226505571949512246561865941924812896219927408692420250982844904696294476584536081249009133093536196658416281824991442148420523324194387560041113744826356677324588191904926020385091347417102115074740259508784472639776465513009601799484736193674296330942719267814569195012773638494648320545629635408049938152541660606810675699863923704367615100486734907708766694610197441912557180735316852698464215977196810330341678025028582143134791637863374289384371261206613396132243862530311188023269609530105911913199312303354029838533526630203471491111976320500806645495590892973120830913821062006946695415450585941779348642493685425308972592980823502520317145424832273634835620239551073807877739771228514186935849004079015264079477997406573409433125519377109080852435025377560125651859342880614180982297311604985326930496379010057086480729732622379542494813492943934586038619090959212639973129752762182611895964818939274392090120639777774802132263625835144071771369575035162665651320132032023067913627797130816765981682375314886098272218604263472494476751628575767767726407460690204778658997565266743953417541467305966204128016595310526034479726990713969701129205895560731990952189949941627535070703136187783854465000409083078749943264104085494784849353230393999190200147586195869256911753309256017679359623224872661210737645089379078287612457371464076636717537828957941260332488997796510427325411564310767020425907215556259925230786200592758248003510597011334663464701833367892909527710437370732188311361645476282988755877148525803996890673023932731354379493779489145052427772138701503266750078153684666551322513914201842585727602894471397696715632313698898399899666047011055289212430500006512652811061632529711988609966216222157786882821919700481687634116657384928040043553397647911769578802083318594297061910215083602558834284085003055443427156772026321560214615227285230644296738863348121168842652870729022256885608162855393343531709511869859475140590213232126619476402408951903230266236614736677033892602091235906037661529625547683181036281025088515556158526489951138615205425785362334201105931421569017702502651221750355328701572332507806704578290623920156985131992286693269426583209697297832007380224638397196229243453795803801546717244886213554073266846348124035510322543834147695532285240145492705838951749066289304002113150044981387722912613242586884691576233772782303557593134365530009854187671172380353400550288006283104972874852719159237726673666115501460444757423465491770484972630493186775720222390168121446565928063230572030517909783643329249992496384697254067832469604589939807686450716276543835347407528084961063187213073804697053382460060457523163825298735261464341403294695110163641175790410992451596152082625228432165217064999107681044938811516038296566736007336822549703988887267503210473652189925789202665708040782061445504558547996947699347117190921442626632390458648204139887139916980669068211556830634161422319236792286179465477882135662719279484663014880249285219635388832946698957491198675900637490965468769547007666414737936618546342167459842354686360658302570206350697081059564663229233993304604903810404708403228701438463008002773243973024593377145434613876576873124635778391311710484773751316822586288434004893586269058950894061482368976216476868799361824503049450601115628005602815927946597337749441561112374905191987738163874646177489385000539078004792766259314253077835415077968755494453802302573367494934457141170277644410620136786694567313697919936441554998815485314536422582418667454809635455349197328456680715878076624902729066962236348080720019580961631866639787061710335522870844355957902441597974213757612920083656730607255976372380412858678823451323866527985193636818690304431176150506795463703525201338543487477111940084697874986682857834678014933429871032706865410648261618317964202683270746111732780345643889304212190708263078847159579956602514778872075013415110823185483365993726826922151163744175499136895185968553850682282724031255643923231298624008419949157979152698809743641282031904668884611998314100442937335693614757691627562639353766234360245230007066667502103110802456057150812342220763699829858337269722660329302387316813209455783106586501979317863238320836327167250581511903084264272844116415670035703718089801646075387275049126414611536330508469588087234367659261124798287724023195448672301888458364300771680939966692528737142040181323106606905854715630995892276079840747896845945868630553376160613484695810814104432609752955232620176128816136559654615623306885823829388612475542758420116483069203630394338726440530177609226727222855416183772078605485127633640811395896993783735404619622106028239474161631435640814320813406133796921645225662877383145155241862916647558855679513863721893068224643168296236602926022434639398461478022982997842294162158959667367959151797710785817081034123715894808668156073418301866240053100465724313376795900403884046440083836334671442970564037567741232134013835081497864370511432640223452407864718141950698939786333479055509755278735057402362476488832310393964249155915720772039819309330337866450624059844634433719403188439126435730619665857680886152700757974450478748524077362950679526503483500669198074753226812854889435629124184508281062717283495377866963975495219124980206648303339453548233342677726978842394673545321230079284819806747640947782304425145620016375041367986642893593026279463148102674183239567332457221775110762275640722990422311640250734836352645832251047695452898587683280032002190429857038690593247476176599672214174689034031583861388606096360379284516895415780872932192333117024226761584499787908135336332995930871021825614123042019399750923611898575220179180564427718450127291526178353417711051480652636833448215912508243063117570487075892983543749278148706015188803982185779276759807190835458696997873927298232309191832480816132253238220790091662958107704876858228365879302765014923165267186257397137857108249408653717308960951509323835918609803174282352581729168956761873506375826486951065753739683400695584509185483766385056187673539110827761585855628277156631044447074546996227217538541802199979707157856150613787635929651509374005453284273102290470432515325201096249102681894312281262974805902392040844412969452621211515839804770555211116037697578386530043966539985859424641467288937703897223450050952257531592911872843227125467690087213524645698942401730917942068149667476010726885041074375330011455903350291775398543230810058064786594355343132993727171137698290095502547128238200250500809335640623397382995984014304294718110553425260839256750449459208815771056888433636753864285730589673468173458920350528665168795626962790288393126756291988731217955571965398379951622045763533963486122194889516849385406164095385048146846697157163575336822732872622193899723587002542672874227813465391473461481811322276494701071415839212960955079270768740068662087552908319450879348815246819546444131190641228629339623099955238547842825728032123813682741143915863826447830095929998599431012201350777724728599927503972619430838479755603353139790979803605059141855341780683189705134218506426261296206659184488660576194917719005617958700891959097948281321189183114964938544464487764097856483061840073908819832475243415661987963582961175682728231810768457646199769943776390500598404071103381036634515881986488944256530609374521783371596354342231869937164568691263832438501852534005943257907993054698406222760958004745389380143124694126902453737490559463275473955768148521217836321786146690675606805114973623598254462810105268466225545760104603161326944236770808964279867224543953030236437565544959940950341925623072142027841231906181668122800520399337441922662949575441233640820289483675362358827554623816170998939159939791035355816728668534005043596724420322346396299584694030219131175594705322873362419611291372658166552373447258819933548815979529661523750472493144796250386350924279249808882290636604608820616397826515217009763864321361797160749054291608221801380245980538328213051035674040362544190319850250251737546928179914165377921930371544724536094459626191087670750466069610931311887820788360913434857424792597993209244373603579747428756826088703259380184717935486465135263479004453909453336861123696939446517622721277190403896004735297824821077154736223211837593788924932440771377237378460476773370111426742432928196549446311050113467169345726777993303093613001271002803910285811503818575073170296373381783245774540099878655923703907832239940918115638778769247559593581512850835874278898467496343415145780313897747898080732705470725388655989824553095976429458045722510914595611063763215447046096313813431366784394227476871748938572165077337185754198852824890046380383612795239005409934578891046538809087149050551626781517810072694434720292619440220615808429683975434320734136467270103344503406234817125382653076494173092165721364574940436066603223199445582406078289990966826723204333523066735339936969589872515459567752883672501279344584061303956726805122465440159163573028493938894134924449472956472964186582906962710244611825004223778229398582427743457512558369884199972618805415780087542501756620367388234381191702470212392638600398847437238266560241554637190512626445418175344993093570249785564508607388570883031826326355449671235841092465935918122889897757027693499327990549014409652375146693328135031326221579371388455453586216639379723718159696091778005264581728865769743376683270354053447018019081908674784249637153981265927107761936721406631977797936054007039564689302329787278089771269611461504262761232617995268659152118075552935507458307662939615498144385619429938142660532718226983084119653913323145913890972175032446051864878107748976449999075255360843219800837611481704751160785996888289237708454448251162683248818005166803989231047939581608718108028930012366985738871326163667071520265645176040387372283218121778516079312721429046640455447525170008015212200352234807854682703368836792100949875607701605444864936119503608561086348156573148564996563639570374689816269925356104975815902022577002819545155843509172829507948332109559970552933502503438377788988104219498218699271184395316447739968950303780825784813340634255834129892622840443896178620993401116027391493350551840842266010198160309235954107513313650323447518774500463831948508917039182521327841144806958355527504835821608795107620507283756588348662299379041821616792422088590273684732716349590812153665013607635140112294929155049003474193385243809252845320753274690733013561136418658206109527202044769204820949337598323084202683589605594401239482922572173697419324358677370208780547392973731190552100328377069514156411500052555938789245916565292169836872182156399254490021262726872710885722227399001356282927263248964394944983933900920109370573390926507299869973008602793441728917807344554260521877798046370475893754917767881721906919686276002080728800961135798090750506250826828359614412210552070194361254957439011478011540185834154770535120671847415649149912968968465066049313381035919342096427310069905843403307958616899175584180444121703987275531034820395567027312007503375734673848130048013836769198554127020664764283160537622700163801516350889279459973237161126527579954755147211051897825109157875005918001117181870907307444182882087773194361603362864995057862473093128022385505675478960933534128815263858512229745495397284734130565237340699302940021358529307396970017016639449271986792311577901794661050054667281650061033982647801894504689251795127432801727849400499227481604976991665709115109925599170947365994218279662994637427339623524748085999553931797723828505811239219588028907827541045110649004919748173016283762669166929701675183793211421380648108882675375503733947452721094210525431723684686618321189801399556974108461970322605793104992479026791033667648171850719072390099477390149292168805687959179658851156753030006593919496483212249174092691135470453114358921980556770810370640995850918511894485400638236621352900219463732896484162903335125164820916369042280465938759727549601656811391273849611157366075839613990859434282241190959784382503017229216784893959733835036575880794075594002733497003403461671684244588452422689374948310831503614131590886977418104928654226412889275680070609760148219389725976398633077075970739269045164650277873694519238176408240462320631242857223662389251999377161255150668179418259137516922750555554897692696258404898375015379371320516920875409358883353407301619278837759953620757870369335406896604379044010363225406343693320336324145556505942516815341481043774576582907805533219506421729278606159910588095281952112488433913864904164879724440045718758192634291085826889125072588731111728828829919998871135747332251909196971775509395418660489919925579702475611546385590753692661278746328194710118321708364640987368208263472146319062386735551300113028581747748273731096679784869144160268283526180737340647930136644207256006540073030192257333149550096394554028047584031324374081261826072151806088703128457330230939744258022111027656601873052376183277025478319040118102271223822310345886259659225485261713346098980492120682898025937639221313326134053984847202504473317033889767788118855417116140299504252055204220829723861137717300888261200602964561930171174912126982762593623465142439798751947867900817821176915308599853046108587070615915596934596730805952245771289249086570349534820952976256681375859702414687882946305281926373523363999997920242584240716023664625569973023627655252309312799919604613411623896435403578564316063740733501440567972868641146765581181941739562788710130640232635867359756359428464498655482382784413995292092610498908612862124495112659876455514242414648723207243138656449978947385033825943726033213055888614233061543175893223031300917189613018538302019479431513444592983850161131811382145531752144087118028485944716135783161725904176532582909371480333233232304478677457974163152088383030911346128607648040550572081802020507095942013617074402227452140824158771997844850377524064506953263705098698451739645517596971874435701256533452981938830702908531133050376824531268617473012698556895147374432535125054049433489669347819124118341207112050851020639324912855540183021978286488293966479700144756012473872719979534862935454600237162493901940861054245542946054865588859717867584715584197260593934788153482877257990729545794673415150869414989803096010782120529160522174250047065364505799473415409172836673780043106794240320030627441000413487039964638633825604572577722614072220081208690809313368800279068648955074046379081642694451942276885853363135520159346098792049706721863914485764518341418076294776166466619976626765850657199548401971939435553346735261455295619014261640526765836697769842282185764217660453613498367234319606800352747952854306140426129212119677563379640663341152581535008431708571563604731380785503050462672181096467694228615195666344816740600364373388518226124061843963317686372083607540678219104694443357493656769545389900678058106696629220426835920230649367781064861636559417153657362411797005017799411308056899587649900317427217766354139642924749791092170962061881722310133697270476565915292794581444175582719012944256504637970227050556745219707156025119438196067227747332881917449516910738693288544255947234936622323991156188153651367518526782714297262245029320838571030811276257163822352171057158163888559065549031504348412594812714734651632286519383065224912865126846095971786518716071909292028362991877460852200216283767761474236963710835733304908199562230397489121954327795034824945576146743978157545174386271602784176869449287042265123726198936150918992999309124833638022630315160351055357949479227428014531426436425510510636167028912097635021574953109576595264312377163446963706026177400973449088432675959346897108269733226658031727098055139251906622548651620125317989261238731064553406606938856207606170497051201186595729086800057689355098009122383717434519854243837064694313679114518431697723514726089414967025493716350156349856712891783711325103659993333910124318955785109833982477240957972874443966875297285432880093475223315439878843785929229034614873107416648622831027368718404893746661378224941052076428076972968262911099921372986745998778846768995371637529189213264372901851032349554219689981757371469859705592259488043373469699115645420828270351475843231636106103291810404001351381939507116855723309612669947369658301730119626107014378560232972287780826363090179090578477776921593172453178044297377270109130698337549942363186344361249139178553687305247093231381075450397443056576695684196410357189498669219071440148186475003643946500249792710779484885347444007210175071143867453237170084501617114649892856695294880640177332537191254305582297552544414435118382054670889540436504711320194470713883687565867857665539830399805906833886659238185531413022049427844752609855185827715189778130275649098026924673866443235369543783693923488761254086815157619313497704627762318190850508507428863090997393455981656061739400722552950169393103136648753324184661081695428474327668815821455989175710349289159767713262484338952960432132002975015986061530556089299698428727751590583675220797060776048510965969529308857753972029060154684494540351865815300091448655093611720702091274910209577902433187500588655231128189950852530516680601545255984951317111349836703660327474081127361251952057023732153693535030086677254386536083665030505297739432079529093380712777261172210983927664274008739986084412798103929422240800660070498632856178528684372868975081028505576185974645245158909844430636349859011290468055934262707486927086474153913540799759603300390694464229869729049078487491402830465499039561418577209726484509984416376100935999513391683338262962606239758500739289944105376700271064363054195716484158381730399223888967676347506711278826237186321228264894605703506231162220466810918861643746108999993063407447654778210478203488790628040902414832228485689109628530871436274822946044107774343088074978607373597143484982525674560592267501874135212825097607207772088216856844790742513802193716928444157348913898596620563209100426967998322968624113023717947932343208152589126507092937245880315905649620845042623160513908048964673355955321592669789277079345418981168823859888158780203026169130480082600842338148388376675411132790052596870529404206773231876221631621888791792237624726173352252293474886831101935526005365744639193134629095713076720861589608116616541933969474133620826106578361489811703581167014496355379046481061577292931562152452316638020932882457164640589568272033968829784936986066904393140837337058507745025838022655640368190099030719859411015027259850481919359437410990698222708870805890409632166490578106979795767324527215220074501864744077862984834409615792422345261501258470783612237788773179552078883675927145406739123422647570800874332805875261409816446659023299713044169194041392769014735195681782965267982407619624638348501340444043447297728157283443332997361500808058917763237214726821867660756084925163554412953108012044532867462270664986514060034515336960571374233727386449502239928361482374412091560689110849417018019777125703549872056796015466753465317751418336711041061825492120514046063474935754376537539334955004438744108269823615640507205494474932430293517105664326862704692667967434918180225341066357878465889215831756500936583505831757097652751482703809666922703614917507230336031121670453804584492873645628446022721100679720884530205821661704756152215184668658731496895435626070670947619340232675003645177268173263321707580309542006731686443304592997313026066121647241434147518866447700256003616802665545903619874203646573834830195443906655733076829432455739035989045107376174016902645083557581779399550276906371581980465809779380944880081833263714219023569915029522487636222659758268968676925457975741917229380113761508419834217708258757726110522565584618193208891664275673113735586561707622025366141251413478362300981046453723543523379146266339347045848050085050642353851287526163163944106822722964584665574833675071146031813666435843013726103315802574942884050104725503450556121522499986204951800956204828403102552151986534455441752050070335780255659605644247200032581060672622383716214740138501879025410995293708372015686072477816108036630003848347185904323446683082004074192949020834242023247643326597045329088027088494717652028325501400787077543846026443245103504153515835372249207520289903238049983811949918813803773119286799421090140187053476776409249381194037552592099856397636181838451011506535094248643214938789066044438472964304749945270213519152626643968274081786743395227173234231924917581441932109025183688786706506165637906982841871380908815124845000723122439786677468033686880262236833200406357866743949597228105902678954856744707188198633460114394112236434854425914044121809410194868176627825524793542990804685881564329438570661155654443681871868351910499089072971660024550213107327310888878224656874544351285470186297091878950707956843840709690293205080504722919054737705543024278534220284271789040670303040216657597070405920751726671389139294920575424204712906322452896649718040222157398100779728055719942896028334937128900660198336763396076687162717305892412399536288697319835318479853388025618922708524871205085876589978283711482839770655145957700983045441443854035497748401169117476255588748321591786955710353843267205510193045960937226359637339524284265727134250506144287361099408149216078536183157481266433330779588096267634272823667483087085767228926233597974067430262775299693971001181743960635490063251051591600747837489598046313783876102389305699473096609211663585258749365120035778344621830196633739245607352472523525005350661523301312772236723301290323691184488361622090062159789103205051457180923744801651449455379529866781309603739966770263534174542552437578588236869239760364521648682318253932069219060024953728288796222637946124430851328381796303928036722446106299730688921821581412855449953790128646971312243446523584426424144015321740981710514991392761213133466669426517731099903456132398181819598239574983525163219836775562167309699083594999213275310091833990207037949639723743784047571679631603223581126996298515292963418952542393419941154060504016995578470340527667070223482181595088957232786254292717748230206898993200813088637953238936386802426651929711195530310231779212586629605643085495647854662261662897154910227842644650057238729391040268090051449760392644750653964371018528747551020263632697802450016785037899032470194946308135397975118352895201674853993345497575702351105315576576385189414016322445702013174044402827953683489859923772048187573309448016906597803468855021681586680015907335625574472658251135064823061605511162400963662103932154130146188840088761090176136434928713415125006784862396951342260595300385932976986333666195202560279256085934075845843116999867075549491654076939263650487982349705459183353721597738061903908299344609672339582421716585504168279532369679400182938323020509394834187574946605594276865081785182360311788028017984557788989467720090034714829429103393797052605543572850882114738933305263550570767529146768851941387867916518699518527306380448231598921211966271689292119924406956801076141223670521210493538937773872406488141062108433834845317917066223476562946954597493216524693173309464897151707380256250342615478512911858316426096930046085590587830983425546510088593425645560839623979077344728690170716644466879131333479746654803820878847886404718208493316508395284849430093897285669111357424812513508783884936056039638464057851094435919980864937896147456059095355553168325471187333632810707856427038171087834826171830485697488754057121263809170331527603038810195302040066802923426414287082889654949211561100478605669320871040542174522685690866350932038311728091055718293178959554487412416401045711694510516850061470258777700879977246028258617102015534654522233461385674509774029602728639253050660324162029360725338945842383777774335799144788139005115306577436696464097782904020309646793877170750027877942955842762614806706822874275919768292141311648997945324732776525542942500145863361179743393119251638417908760936335574258065236780163237798621185802987659066191114343316189230175493050013508501294510682020102102062921507988853993001262964681442536124287884258159230228686250137355542368733315272953816491156845888540020341440965771458915706649259340383273088662569009876284026201229352832112921886973741137026672830302892645605844042840116853187002782797661314522287040689052020266745987798088689794387798852914565686544508942978175957636356559150171464821984101188373193722221890542906476424964555482615404771231857882307841137713506177428159520909413295572619597174810718289432972851128289227799026060826601209202281567286513789624594363595435288793625950472606130438786450950738050053932593856265373457248534723596105569482096553572253019569734600225296555819755022439990346784764400939016439716486566315495010650521869374779166432568840870516089857899669178756092293260946340507114005033392627740758447252344342626898205244864780999597400336594329473117827580350850886626890140438662214388250198746201620669667537440842331174507338044744902183490471448181308662753758690627760821865399725428388135939176463650190134415390177529234128448948048496188871222585092438405720098387290290021053288950047792509748980618622653306884116930589638418299714309221254448529032249624292180643770502300314650773291752998838010673063760612921790387788614047195553166750422903264626177669218314372669114752716372245270658080131623398033828732051208652714683491137141731250086828369194612907648153558576359010301974687761947946773089982764455032707556346683266731423983484654272170774756954529646294429254948151733011940538088706970836615731669326535863060326033204993021999283156172650543670475029099504262851218964745730407396108356535783105837557156202969168821457539781392628189817036287707613116396725320050057401439983497269730178901294237526273485292500584810537456607575068222340119930363643492050069491148895973471464185983479117568604026051254811820399900783914718761100444580671221186488307600265571222872781000079669295859319483424878858476738088434046075491423606083124193449331565726334211578661128242526624350444167775095091348872454133930894685036335284797983833106881817975251727335847340532504518422560999115161589456880910802579710539172129794284556901236621678005502513875734950695774978855329803602941308359652302731602449294955470834212498071366155799542463605342397515671354542627983410528070206822542643435708952101747195697949725150072793271756304454498653802911875009063608055241089188137562408726934889284439924457456109331164597424878081119968370799451236931568164606348845066027673263528902300998983093070041028643101796060764900926921617619036044990950186325439635155861467661188369072991810970363537060747104063929094171430631619663348710490062474982222299729783225346923450666838886744104516398611227775403982534282325588867012368402663753916374681424218967436282522849995930196794975433870959952019513855608794713597238059910425114121559235186079637496224115367065536901278435198339966398759297928536117253468882074277845793209257210162007712952649332611986273550646784435766547536181766233129539945000414241019796831165957479043206896787961567590800439468237464140256859678480274626260755025940628175158870916376237059794752409582878697508821517762722059653342935849755153718595534746534407331981453258018654897349502110983374300012819148639740526970470376897239658664803683340315204463968991977510026778228279390131086730253388318851202877119194491457530229196728723834164517197409565721734486841266782836174213513037997502795093366853492963469091766711722675796915567510101154721613159213779624405968982400066192142271292183582806481038571499094170406802113798770679473575073686375477326848041325172948445788880867234492301409218993997204397091712762305945035598936674377593304431407033706209251020439529463876288710283363262071994881323308733354030138204514348911816624135301956364382041070087724527133850368866085369237445454159119836321104596118773522557329230955666064703706119391391121224427259295545213164357854619627185629910676633718425646533814807601004916787518109584149103136096491752495913575629891316620529650120457980289992484834723276085810024496619879305034371754319427260391932388258371316093760244174908526846035685299550540816297466537726152539112380361089537982421073066192968024945266225376473713157652777725208341160296561399568167717761341222812361309581803051229621732241721354481623078309114427878613125621559924539444453644603267328528165394526339522149235809194522692258161349653114625655850003571151547915654544779797902159782475353952705583099913324306480396343182022677041585102223586217009817703046299462433810298184369306809188319870304263688824607796259028485413220078998648535630863818724542289269932190686430139242868058535867129768769043175954768884591726180707080596615406545727241845361886537405424838454971040795752132509601193731637701354304230832400002844470338199217010320853209337928161077415985184640197440696124047960438614023624430319393721551811986555947776875979268870384558161860638011284201754586625501284279351974368712092481041842212376944545260585144178765354442353737262532510660258416111326565295581780687604221364857177883465075081975160362995609517850184065990899733143021513001750994390259971848573249818514536191004786927414222817066077971165553888361001584617927815436401831746585521975062564923329827360550542560114309808674818410217900730440320252376268651239049511258828482202630095019736606182610321775523880453515554514565201312446359708449070108781486506539694972115632116946901560965188098783720885527917446360974567870306220805894012518774013365645963513190970192514311661011382651613606912314071482654768143583435072443367395572240075364468746354383179787287412639681659101081343353483230694348390476311137883315711164890832859458418109149070490982720279973764096552669039798836855369255583712597777224279099179313091560574509831875242354201765255278657327833607920707269470765881218950427061167708460304878758851451259591964378634274829544592323053662483697272391005434537038239130724283870854111301486817474522347761566600412618779404004633934937824273972471124176863218827909230879725070957715811044454622068021854936549573683527201554010173159200742015870145516111858060848318283295989078920012304780721696422909893654209227979761768119182957999126766659640990665307118483355834105432689089933696420368642597387566920698694444237701064068980824299578181973731684066092615712736950572059783876783895947200066948250233898688099917169652467564638876209125856533949050622599001653705743384247402574932861224975051338751993452626653037513323595838348134894802520409454525175088978723997884737371148365943191624326566730270130941724589480159334183350596566173725273550480371069906306118934942132202128548138222429172630885434264094406816957229867258966105133468732028103821207203691667523214959508031214148349927095260986481103111470801525536594714394821010282963697251642138941849275914741872867404882991227356689358286995601852324661609831351148748515169803311737716076204458891672133446577490685526995223475631487986180643495144913793551188034835140352640965082091682963889200440267741068942017260106466467194227066131676861033750199358940823372649359395992523463934491465386536506047715482314058314600338999226666476907520173185407334732425807904324366786662533950412630390942637200901434994333056799335782602576498148832063142706119510786398288131165648608863353083182946717392087445586054622871169641132590755054039644420427735287845454489060183092615737521701947545202344667348475104547112369079739744664742415059362067472165170300224098919774646634335369931197815043785697966890871249309677533501561193574266070954996742990853832274296495367946533715022485735034356612950510982762437727606053865433641827189291961163568715504045597516496220577997339546053783732071349551405365255545190397583200682052803215148294942242118266674619906474352859920299174678162153049697335686713865738127835770857824566925432457652894705363680440910609691967489913312640201538059988496649148097531819333869995556428341047525598262324123752407129617103130482590572095070632466102278332954974807160732494995981096861987138367473580097340965175484138926829013679945799310194200295375062436499754028578798878442935925372639676823156630895813966137237892462811800797264170978468441697134365511191476734559504442737464506336508016805097015956399299062295077803817492313428480201526313652669973188369639221162179140413527841673860553182070144041733634455548467552747832431621211858900069589249892360826974802715297666434521624901709684831270718527269303559780464674556602927119606531751648856824378316248147023557537342524648724746378739949461946459176245379192480572456037568928101124898460356820073748689318325445752074682471252760011980625894871336642042450559238073666582679409700538529317777414876947940436838225103371117273045561418425969989001509887598884956892946777775108246456990999250681751613737853620024260653733079360164233359079546077210159707410338742241213889542356146311312703763668424495294054297394849477081501648647502079775718190341355913538343885148898563035524690182341045477207164332656106613257654018740334918827680235454063107876663000937167813654970067657811332499883117922592255556264000472892642051476917999154375186970527995570925707759646561103659825814905748370257421795848872560222607384639477492700080698919873773860652501496369058258512579392057350177452478115929855275631886358260454392575691251829558073483974390913562937459128844017987010408893535540629819455156809493448155796438462140540611700558555101211117209616503979408595960784285889686859622989620304778405446408269662931439435446186072811659262446128748823670564444395824370585766112313303155878614203538195815470228407273609379226322848532610901904104732644575421731974566841965479531334037824918778946903399695787353166065700889196174940515312533516633680182448804794998037418128723363831946415522010157259766594946180681032163430811616613664661002049072655986847438462954506438527893048308350879518485523187031227350533860591325861512721929963381395210096739709609908297731858234646971678980125141852376962166635777830157743208586542385004249660161534619502655073779760241337216744371603669129731230114938228435974289486465587995674536117699603505155998161954436513855159561429836583106289706266083558547129676888969678000084659966091607734704307972374965916709938722358261539485035425807012323769726842448551636215506452478011089757214632890703400184067555830250796798739983992325883309234601715611094855556631505543044873267050728324467351139279276430540772213108025532147581451178359234954336264677778201402046367708997300509604644097272831521184784542757239312167973997700415492395980215350783396682241034783319347517694932028934943564354378289247572460894716383783056655376380487813706962126551537655313150050982886844258642835217049016460838632046899514021230081172529394486609965525314909896846429189254866203267271856332073586758401659888808649157791242103318758504398322599505277391400788160027287356886003075446258860732101742802676474079439946173083706573527979292637363806936572469044980437260789546029728064408436968886043865680441560762851374361241113575085626874072892290902670726408776588358024386039176768561496245107631367651274268945379131071980777992930238110398658525506339697340122106763254853681337326784847859305602769997163032723917550833859223666567736984571976764461259716067866791749269952362242041092852935161700130360600564141185284854379408485522654697407565956668434445976501087423177141820592428587223141790744278967381868186925079586762231235013407587461272587142043679240012367125265563853328478182486193110001709771165417127022791707330413650557231279704141768298224318511397412601087555118522537246948780925736937190257683092725434741163416619798398495396328605974386142355452108750186501309545650252826718020254619005994246234523419822202757225927972526666896921526646547510612641949039646377720413770448760572350691783850215732597630429148309444973088697985159067924297337950804082413767917968826047619593546730508589789197727187112446779574239202276904345141153080560800542150880530508306782044601427571857232216070437446667653757580739564374247851133373617877742490166946823672295632379135334433157650622304383713721384983807688553876944689682801385787065422340814472674887460182106130594843160960214703950511882764514901719411689899860429883086570575852057868882007392824204895652424951330102695642260901736838132558719563157099860309226707083491201378510140465141389350738212376342712501643355693160613192506027124723937769262166551587861393982978348964387856060644084219369464113242798153326967666553811381980283628131179365180725427688829775190435503510349799077145371677539164004099746391280030261538443329587345878916321366499214888634739393034014679092999717214335279649792807454729287145226986312918345455217320259954317250645677218466377820575605368145301256912727095304692385562381084195405385463286316675628749357827470634724400395197519682295662684565323506385587718089544752098603047897670895913623106070623954930633875697952553541808916292622550190958777105833050765014473443182886645053019443123658771656724540332336195644798807505650276433027244726734237649381557613301961395903976740839719961822312098175620245779260041627229818989292550162472435869986982405741590792707728106090466874124337052413812607855482132317526108179062690243426232923206986176688228076901593269756763415692879184852453116954981660488447970070823147126860271236732778266364158190361668908971878581630232511542992816167048272897061601691629837110890953197245796842342252469868789633370522538452846113667452359389629168242014423251111680053904083537470793248429021080215154873672186548878986423435288907181745945990693712506918396586410973940961778488120536503239731315504649259379892137852482615943886279214409674096090675213425693519979447507602978673364061782839117903055257027999679241751347543347861651395673069807291460971332400455032423424076840190106319122714962689680789214791886241849742416904989785504957774060273297580174028210839413384972068848983946075733299099390135287885077529047439813893112690532519427175270254637318695545293767058227204271043682166099675433073916229453891964564427485652334472097290001292277121275000320251017205812327348821947597145197300376623649942056592299541133675506816670394766620825017776513649032148098152499829258097536016820556111912578193081195860797344770898708282338020440518035539054667057669751107689257014016481139173508287373887734314659630035377211279861870618311323803292770614700729078922658140298475480294631606717031314933236643309270991006465645289013093787921123569245253074398257337563129573885411876355682681546058735941589345757023218476725441104524363354104259327756404552093021621962052036275020340456351362091095644652955882739952333421144470042478655614432515465475188619680709507577479725798316913995621695282678541748924413960031839798313644186587950787124649298828487187044389490043530102759030589834024018354219370316330627784118522385621850655737842790200808573553363100066428214604163526965464098753243128922439824065455277044036855173797845881046164397746611926718345125544381184762763012859559224103801303748892580826031089039084264903041427232775425168942642690392145686327463929073957962047913611058262235395944090060141422232932704415202625011327643352884922437382835299349077474163525555690407715288311580918690706132531768968317198371553863246490385642107066580627119633101562803866638850274752068378325908057790357688007079921124919923891803935610081782028122077584884632717329416524465295203462610034301670093339127147571164786526877069310952875107073731941955749753494203509250542075322283347093666127386088764967758275368098141984433658087921714239731929603148753883663211467892553621503667191472718257001506136990635545359051788433295080190904667857863860328940377638472420755190877183819071473390125504760003239645866781362448858665456390447230493258546641027834324234773411022852299709542457438409631574036396817724684625347062729068015844922048104293072987947741541579215014974950738750015478433631525534995123795815287877197633030729350075268662800274225798793541204900012555069430597787052685152019504719866899577231225663343352980035012730144429481672859444576554968318976532041717158676639296525673806832738942671864262761839701095159941641187736051244328033052260465364575154044379804571826590383896303661237884198842724373721682431162529561450026016258505818774831637462733721980008555272800671807608756867192768961086220260015768890312106751132277508440706758312840054754416025882203554512162526010786082268505925500235878652418304174554605893010615701168929198390298892798592860463282022040574645908322419396313725748936065114756293837454874305860006648274627630570463688833133525195772779471127964864100054019137808908432316241275238960215378240254764032750118725006307618626982234775410049579227674834337757046135375659223707784133294009739269062032834005448130714233870356071757306184105877136432799220111336143310722125514316741602977583104937537628743240355884778040208219598628822674289331286152704290761278032917363052127798889280434748182697915962031404177014599823457994295441225535038797404711800766487581676930314478485779184672292402529006098097312856634547747437099645482867402481610975209021889388523501211618128250601975523751649567267943009150208100748889787208087855864195966071112227668032355048953527821742190337378418374775123657439956634552317220607712618819046949535152993832179020577078456945877341833425905272218145557618027039618904560863725693809594921097166749182520272662517089377645815788218137790192342504317176530608877694849260552660292574272120299527525385863531355838649873466385490730723138684243495435591357811143797111456661181193701273111638718002633299167020894847890356415748134180507649795303562430225575553588246657927833577376698916338201588148001022790259646303940108434729735541616107760591983838139678525824887813460525961477921230912840323133309001800851263077617402974004952405640133219459294985147802287074265058959690054750299143442693886694623251990931674139270977489706571946787305643097173964973063827386282962151725307706331542888185765201940832822003136390894884815491389446448850969672663184396214199117058404431764533941154830454932377249826779569587063569637965895064167938619174942992411485000622029471051895885012522713164899302747321603993158132657477875352766127555163154124464572115999622632793169906559225264950116818741216649925340992597625028913040061038654520478751826314097387180977640894393633266697154166297147122475017443380080912584079009571920926960830163450178557835368086982766114761972849797644783365773893903771400268364091122964307186654577226083396528418834272516908237292932283459826063290051026652642712558856324102492362035229608704175381997982852276268450614647011131944159758699611585821817007080795727367844285623223937011549698017445826306113475210230900102487918891425894957653064931811305553933825696496076246860820588167231603428202943063626415954026107314690092034544879143634450617496845387481013596443062831946905720605550917480012850419270117408142302331631996330937330238067181716507347853553158579862694910670383749641011270398838334739175790806465395769939728114873604481063313039220150764328665535165515884267412722770466631376544436984354921193937052631309821366890645975375930925559565036564183726863604037788666055407725212523686462988371611550613672929148301285275453156470346350478232846112350956328237539614049269053906609819326029736868371741839923281810932348419353627649762942099593732133842848090390825128367862420532765205815239547491961652032655392869079504911923008685116459289270336523346610805116338493514702737391271101749610024873913941431260945297518005730406020952843610872352371171517022508064475646584642159227550062476071418184267637097289096656022271373111543703436981353604480206484020062842527581615816800738255230430122146956103205826214549984017918878051733091846697481696834484935554719333960618234735137493812840218213553525931708817353367504442114053902744682492597678800341678655837567586790718626687527745609069321089369380539487069370003256767413920232658034179132284978084617110122644933344697797565565451922367393981649075445437353681346250722289350403869463779213535479783390459174914240514170109043685106776141047611124512246753448233494423825392129920299549427973038643998914111870409419113969519253475841797304559923173421457157482298331376680019295686436586036757656355383693880362795027521360157100027048234529818507523108028696306603055388350129608267727619616940034374544064169933558712963213031634513873412758756151641119905089174210657498594241445672774104385250796576918288336999256684082224056881413419495688476062348245082669520241840542190129443855275409109356435162390760082085454603828404267997060946643198516081428800975158912948239618865429730000609423010616918984317250806089800232581425242673049797903547424732880080287459016614932319347476178078068522314639002089036918791633464137885938783017227085661047668965011911574556365020050252214265172775027691441794702801798291923585358781955138138765845981259858587852975025590602799590524510118207076525221596713584824207010048820066600196998424278283546029581005278086272264332421504160990199804239894728779256624523692744266520572585068039626158425631976227851492579787546563945529195715453668431907800748636789004348997868735207263133833468434925818692282960087441602155851058753210813243872892235086838701591673798430608115443364979633717316291050620334643316172836225710249346953880684634085649541067999496752479625516441516411395368997433311347369223009083925379568891815543136615708088688601734990972296092893735428266914502821990060072580348340336550667741283578168358304651471158118354773387345390101946021506728971771142173690346960195149252307475218894464837568259919623323636208311460145345763899777510474005539899981439239052414972654056784729871340913348124346088720615762864231387462822778829627461614287695291098947670146908973655381731209480273754804700172314922722669201760100431471844511204852841792272412856763571839555220108026499104056000701143444320091321200693749196072567510512885419352560188084669136902127557177463288550262252889326592079949674820517508105796231871734482215304415578920937827590456143216532172789989835615391859179941526968669277023584492140361268806725392476036593655437538447789535591434383188081984789352121478656150178222163266763334517707861295008186781988723985008565074005886346931367856822356750100078357510174406656862017503555451726226340860237446715596180749966504595267032924357633025791192536329512364033805804928893931321701981482193675571254754758941731585660278334206740970106789490741806085270375880668992891005200615183879090928863800703719398711831953740566909085871656093814206315026425865938337662945543497463494114424004017757116901913682746644652584094392543813583930889554447536326854971580163964801094931235648499479219943925718295897984992759839611451667898349049649296475920139666672478639786406957161718014055649529011770573640664337654867761922467244709382362233241121628522846816470180851786247406113036321662191533170640395878416795975518666651516063775972773397316969013810774135379266252400260390839334309601750699611756941708801280488469985309490137400793879286968799220155789025252451503992106143435842957947058307259786495622571142170857291493315174668056058181769725958917174918661973621600639298496845889833189084878883014528245570804618496819938194029840762137493104174002419361498513160344522057092322730611226104986578389164994674312521976864438327513359396467010054551434564161214996056982692604361821875211283870313081612345901512586236835384913195657743512176618015518868888209849627223155763668782694091475947255554878110044672654826753747697212145130638433856382158114373680852167750600539483805729991050680096410347951873212329879990254759251354956830414390406884394241354922189634227183592995711302403117292624429915589220104151801619724559040360703711494407534301549643386668169832154401202634863668481292734993214715201544053828150222627935535954215364252382636995217967721739277474697571802603800338444829368035478055724267256026679896875505896655609607470500663514297027070516089612703868609789244488841112630545998767942610850848462250550903406207080130755015973356751947469385985826831778625855965912456525009708918429138694248758323397145392398693051706026722699406437818142014258194836251412645589375537880410399972059390129983505170970700533550682395592042210450073174740343607431634960883277054801212322880389157639411919535499796696500247489700116026593410526028686089612966092543824658453609751746846904478497570071893018068922590141535267347803681329511953894820237721423474524411377145010753093789897343811659266689054843636031373976690515179139001379138895076075480415357453876680950657136814564922827689223559104916833723956539360024862963780112282940302257233719542978429549281755076785312528650895567261165577177698292027546950089017841354567083471806600700562023656032837251373165109421652133423574188900577687752226213853755004342433053325756809375718368132298719800657128846652566556502124570381686924099686024585015103933324159138590662299270205623591890096990694420205368226875641168370190161224501777662454277754713579219090238777575633358307447213981866237412143658100227025779742272591237740455944271149317163089115306378249224798954436872287094736836995385284939373758117360100920365498799973354100020121865587468571662715835360792782737203160363047421876769745883964965913032762220596580424890175115186501530628847735667328212810596876530264894164448180995735820423170552280667755171361416198558146676670133855438845059160552812991347486543732261131240721620942993660706194439050384632038562648051532923603615565281826803542058076445822677333331732214373648036389372450053996570498267645901173415968144099636237053894448873561734009079667393990890498328492631743431033221824332369450163578775380358333450356051983205364326004634328598546953443019055716098379376583303636932974580948032484088700137122479410459503723182064938939761507306125993137338979298358576723090339622041895126259708312411058888011091807443650071789083729945248443770262020521881724540701307765727031751145381757786696563600942805099165173348423863345708466336815677865181507157928212614461856424373363241899428017254736294580967558696575218019846690977671802751828313988556174188451711077374653642255163578095424476620543890288821316010000643878346733713764822358150334543520520116813622078863969188587743557386696480822958733831648098040236274285138114114039341693974827388436824709108430959545165093897347668673085325798765076827452282696784412515634585490508584319239154586318343606202298002540650427921447618366403753413268340876291328340938481990554941896601532828251855437551902286143103854995547994460476795410829118996473426537542771116119855300402858695897004133521322521339141967199282969908539732813940662397679848309747834103292540333526316157055105468416970621073228549974264243060670389852544874587011550118687099066363857342157169533464244432290202531676944753791954019051980152582934242457380586450810200182405917679657630438965353568259876196096323508094420927318571352890677960003877820171216638131189033065255453613457616357700473887667346784721493456533795193172183739240682378116589332606759799090650202425184236893863792708127732135294603254646026669305968441016238185198414631207561110530255457009410571805860788760286274304606217209245350247102139581527143195162838082063872194484534243494304458566750558794333076652339156708341713074085761767789444505567189622409550674584777055976599387199905456794569236661468632410095413677573690702095980644737453025101670949017935214203436090405843356715608991557575032841226152902541529289016367793889367201510991966522704689910763206549441841283112311908175551642619423938438603861247903944946436526502434703034023241054439825431212862126268866209709346506236900193645440447068052736335716123685899612488972363029143074620142829155038326472401358449668997188948574864139808827409352006613111908200476742349331622979345748251740613010205504068207158164773693626274437394305933503359460677700581753546891846915530310012270661029866359227228863963882315445078399194856313439156253800544640246895594565194912267941464782077232268084937099583884988002734365980800732772842398977751112997522705934853086026558472542269819820237377322902445100468722306261940322106964538131807447966043213674484966458345758060063637092446249520747498518512323719268246659486532535948335837152280807573768574896822191342893402385800128472857058068254582686159387752295016362182802834896726964269401782677897470545226014448357791577663656426820496137800011320361932045005279376673877936862253862821977802096922059305610542625286776244239093169195902322894690011999709457903831391090765002108299726576843446707737809000028122508974631413619540512677684961936019534828162160950850226266523809879707955375417158500712908702213123822611540493005650918848075577528260388934823262996103992606590453969389205643872458927548672027232284448551072499280489541139173282650157133654713866370347896789974714847337345669024995732492408433736208402232424311549929834049893972946607547729405419991663722995724587234842117944662649813012882193365269767460557211216216055915920956521139382458560950092042605681512682839190871380236011732481743219098084625974233790347920626344060045262962308493449403243999164584327430714751396691959931533449071651352984282863079584928645056933032475829103155167340742897424864154614659903284372651341186770126695119807797465445353628308531609186524152252190098355486382648302965798874017075540527631481575899744476938258794820537588646013167775815056420329958847255838800630479164111512011686298421920837460135067680435790087924367796478807122310548611280688424370236471747359091088299603927046177329275668162717214478851523736009941575022024385270210866590996854220700894756080483570218132350481310294595425336840350015436670411251207461397682292384346245815874075438938578444106399330829587733245388568387356026086305685211596068387230395847226987739764422508356134023382454023008083695944360080886993294658676044941514239667263327973584941983576329795920681557267905416937907258574049724013130884005345457502412219661753335417369228465616335076795125101913539111099379664608016652479583278813681104080061011525539685197784154646123011467934209561244304125766347430135972448395354183742063847573412519675435790242964851426675334116786667905180863575945394865645578919121996544987848700240518887971687979882932473064456482510856468344392081373787355996765866237639343281129658563776530911392062245962090048578286811879411429357438256299727748336403011915840233672890907465779659031780852921940109058601509351326372172049646820534128268590939860630274206796084154345637194433112353274975172505095608216670412055322309861685006313834931874363612644237579688008141238859474057730359457254430510797301384504615756374643483718124994973464008907415194556980285570500692891779450459592880351505580578757621446086486318157714433984481911423841939106598968648431097069357688407232931139712782392289632388407729021617233791523570433305248611401121037682408878465919936379016517997081308158327257059736028357565270422908946064821666178152020225962578048396728500536293748811108222881435983663340281672062823258828901133365031945121207999916258800370817785325994613590341612652532636897262602919870821661948995152279302949689964058106645090966184057155254578578419254835788679718618250709250786881120029574658589750772135962213087130354915260478290864733609948695693545773845086168188143062955055699555800798671668932938860168412136252722073661188421195248340891312808019768578778138432153722564865746380040322941940151430930124034423770278522179878345175735995068365376881545942641591724649258413992107185396538732174391616567340020632634409880037494881058431311741845414736200097100498045017694362569676417486574262893453701099056955345417252311663971547593294582287569974391192016885156821446977550445546800010773499287086574567509207003991554444604466296375480817303347340879700901889138844884457403906801719704224242226980558005339493488459181937874430458648613489261381295274977283359668948625414119824353184664776130625971152669124014479827269853639564918944948698038441775127087787191822361949477825280423887215019314747687406145542677137483924445060985623586708656449786991007900579865756458852478794683300748614998680708977537320002679329199605511437474414379194390028078127467598337311363615649559061658305763936244363273186541468362261650915171740445726560392247805341247719456236593373250305819538918588929463191961434795665821383400263801193736479899952143441193055897392251483182620764599200459052497256054420183512376886942143017809696357308302665627073924905963131422553213954092258783710528997515646630342925044217626493766126966401043584314649441200454226249855436443868499459056344144823749427639579446794498131073048972146790806228971208748553991384600035360658455309633375013650110893264341127943377322996209172523037718377760093977692940999162646463673885203636223096172923701206919170073254821711353844032625437778433003007779740594458843878611048332498037499273381638150791981081379332277172289779446010459106862932888831290019165854979546738525944665564185217013982185806090088081997563927252092896188299176349478334324500045887568368006038164808970471571618637631496504980238183837580260396117127570833961149346036553285706388424263499847235292692156474734897149634081820614312031232724939290787488541420698550179414022430265741963625125519214035622884505830705307829917823642939262924532599598977147815267071125720278065527094840146258971619726813469347369093928057480324942051070394017613259745229455917936003591578974303244956718769436899702262159900600997847976626083826953484173867022520810097075436879916094105806369609578751641501351763367621135402650928272316364422802151953490529792731766230642342260141323593297208820096954083582357183342691413398257070396080333490432122027150344995813635124023205261359238400846235215562245636627495307462355193742453179399542370066213730645672985279280987293347607781367190168398066544536770376197147847039630945835699487098928526823913274126206438135441792589914974646257357031021369218094073939469899201377734571461236470158749548179047242111752124457547762498596989822979820998891164711178414617436834220388322592756982132638354418185638832238772039055879710343253618480459626675953945217668701321065681567925120320236913004884408292640251662682412263458886158173163257488671194019525944329861947635286045169401283004284059090458529207384062695659123074342381937461023647359678744235429920365125788823756143471271294487504399252902530428531929523349194315898163442877263162280494366658010287823175456819379864500359617435418838061113429466954193365426244368092698993557137413922832263730855565579900924158976636449662147806061183494486894884621305192696770120140939671735945073318601710503888545444111725170723833466023542957361371639654269729891972224617795825865783255613009267185012877202205214708509969806342052266575514747459075248846408868513325179376260406817640620133775663905122414566229169449846078554237360195977683772107353053020753805343022954975450926759022860369510714500689967716569282292635257873330861378237415563488493329073969031079935946318567234804790402161716809412183560172138118452575344075008471338616226470640038586715678231621599922507972608783375651342379364018777857029574168172211186344890419883839765532600807400588396071527233261060484214490017195236713423435192210642059090250941847618919591461493467768758661034062740872158441467797755065081247330023340577331130735001647699532889309682640525774382895583330685673496923967727048185657469415335223096952338193829346064994045083505629394439108661154676911123449578798633408886241508921959740710661827919697794185899911978893165732224317801288930210256108349101779239077567652514367543937394108887961209912618442840386599655715749351991855443035440721146474658347548077147937413716657350518143706941528076981847929154087244023472769026057021807731135229258659677078844292661680658052428872118162279054243267612329434225395008709552561639900202951207101494924870644678798673172735658852031890359144925546642552770439575702764401843923475943028698762632093472268994720243637368043026996296015910136298311149549676351819717357512344803070893730772800712619194576599718388682099961905305854563138186986400338981677633198131271827401251279518288398340317327889850055655203394896579602053036972377459502414194581198362700386069238571269398849151225951213152688919935920592767554708992352946422030115062796983824287676839207065917961088330774499709195396258254452921866795008770308929353682652602520415083649226553652201704899932013882367126181195965435132719981577856901169800409845081418817017275063531887705453827486943527852394574405979073581986821761615970788262991475753661197410186451160921816390424004836644139455315491059637004759390225169970089322142240939639112565708006200825249733952656115350356066774074907853835314772689020258915602200093747994988427844425545338807100841574449203677234083986633536105161250246097201714060619714007612262916389186361919581521888066325492300649426711765562462942128796588103830794618613389886157410186971066037875568082282941147365183763480507716762660046530715191869564560494295872605634292456403474920531482550819773601096457770983435563874130334996283232727176638504254125517992332027664210402657440629013788310744591952855496104242323748089778818268054186756785239080821208080671486193365529137929878337742885401654162682774544151745577698132752801292818629115432169921029930968818308642234445636034628210567256973891688783489373526791499839036327108727965963234405738591619511050522426726303597239771961227540076786834687910092999548303805292677118283966067635012335507541615355510482699648562067155983200596854908540230620198140434464824220786633563984620184245940726560220212550968619585033188856143334628806801337495823279792582629551043958701026138165464147425432964216219666951018777626156893972288484234805675635027123113896878034355628390550296532200881557007843526021383773725330152590522080196722702287635203329072206634880857892826558649870656579473183377162029487698963442613072794558074887612545174697906213480311412088153745530094781146201323077413337073609637955228729674420049239345864749637813292488693026471195136970152098840089532517289189023933056873357528766608684872572424749400260210801739485542784010417179258483572660818238449986425934566459199310449756485968575012409497994816738364538517393664618609342633183282220399167941005487303143259400866793548333406827395396460741359044478630579356137604363391339939743071408797637155286620680824528475031919169022244425052512059567986517085616892190535344445953065634476630256648941753132016546649920034855550330798046821590882005634663702974831527538924377248705916770388784867718057429261380647676392448166627327344676390274028301574832156821126615166274795496693081668292860331059095525297105499173182953134525430138453724917452726332124422782658701193760109041099629124214530252406209569919606164235362109956963761453757160252529882874304052805349874831741085581141727925123983760396497956202892193580151585499609062516594762610540244953163919170133581384906372725284497065563167958096099728451218878397507512439585398747417245158310290756245825797340054177743558861425331786717861893194180633460043631419541346915885046387225309342187162643542452139118418817802106584830196307178034999290568720778774577101745795458866981532421272309362142872541780786729388135662283380058592727327832993470499928312311971657356276207273092882703089673596390045653099852555441893010365106942070828188420594645554679205762564451908526051883739334644328353093635711602002340820121851551320931129320548069740295264959771336797763694704178880061423955907186870026073334675780538299083280677995463691783751750136434103916424157419225043150636668259936884274190522245294806572516284326059940377953158640075109882019672445688372828437016417233733131584708640835330939651362121609435866558364715653477730482393261162008676016029038315963430342315259237494885830019938382764227646179345182908015538324944879173415646761117994260292931106850194004180120046337653307887575821969179387206714842673291233104604827521261421984620356529446386076995959526835895667766430047476680466462001383327263371734590812379293304300787518118375068379141363426961834404598988784705670803488004145958212700594259853678707426193662909049935692815873975747080186826532718441612452147063327477626230691252883942258522039179419908736943145776292226147363234155251449422663487132543570102909870988674337073299818090425856283141415053613085316425676978518148387668134667662500507224311180966041792580419973336571560795273896672829148136954041039316521019973117813776867044822493975180752497508984674503334163203077120913757150274435335935039497036689360733476864893483122943655176086293418117923736506978081072714363625180430598811565199221075601073540887240531993948918416435619507028412452309214170702387144065699835397545560711387744041999543447673619481945775430224709531003966266291267646559044591016914604929682832450091656032474750609811297498054075931713881913661677048064756541547903029923695263037855343135858184140985529975422067587357267402728510586975951536355097226053389299797813851838042716920929036917310178479190582958094308103309868077663395862491436323712517834427483836960803644638867789966301174818294461000130611939250113829726914554250027947388616961970925478304466436155045411566321344702688131869094460038403583073323516448836470411007438147534587690419110501364457079030619858291998571301122472097905380720757384468432124744465253158116931818821881230305116600135555808208971696795436454021387316148191259563007410838266118712108929963142264038883192921419850355470771981454253459112454782604444048951369743941274354044872242130180657300002098990814749312458431583347087969817324245096656030053100328063987369634455220685972737558880290409559315077444746012865431801066312514960027095872913954741321804664256414864253635688303208267644926614294500027490276234424304204254179455247163661277062205305197154937582045972347693030688723756204141433338481002210029654345575329919361593388879808166262308500667799986941683020906140468314991328304388065681786141590322106587799859340963014577197593787815256141682297520257149282972745025520663582851197660407194195593986660907886210005844786362923993468953029331388174935896682731929221653893405205023468746350206134331595020638983552513865936371887130065205316294733825667930913299348671761574347772605170327256414370932800455396315929137561875149727353861567689528880607524832073442084108369771100039325094373261204031906389508634669959750271924175743010291906802886992126305760051215812682909293366708056787359152774361512263212988732029422608715736976525096447578634917716606145924627114016006768099897854246808463024661479934523522676955872254926815297787917899303488676097324258794740470687884829826807371424019252517507779386998550639134114464786815152482701894142295112561310975701752717367829648891555978597562403570299790726152463032077808459338128910632955150539904632741279862324642586119329159283468331919956110781449838400869765700129391695552552475502129783079472194818356815323761816877664311600312393722379625139268929916312575674052105732326402907187511131624819597977368755064696522741856993301870673801997605569676861570924619874205538877650393997189131911910403804062710306710659152997791727814178558326472987409772921340930644199940141596053898114395679430462107335970581632231600276317122088874675048851504258056152192422877835720384999935369361273263733487035885763546934468707547232121928863400731761302544375417770570089194134291816254520493039739649623820872775301016798525516631649490823417635738397365878362889478349908500026931928871256039439839336551433630010908535222641557964246991069898392768413060869539531256034907274241274953637266834259670370257176365447407221123220353336787746986478487615338302788581315918525040960374106652433304133736929729348140690647487763188194654522225729434211504044527242559503952073813137494337992011410444892570737776043515908995213265556206900489914919064554242283151202597135480377496974243421964569193778223813559214841639757603714927224515689333880090324348304820787144553875785664671912565502674906463405496633729870782908959133491125525092380300855448797805607308094105798761997811666156541080470181424742374381827900581530049959052707089937877412312950747845016579081825232717620505770298565617549064914987605290792866697515983123281774920771018439244261409912415356498236999459600612919316999512917354000314026823862559624001636588949202358203008901155326034369725488982745690869119356445262348833672311684196313391055476388922456109326667319870800365783273011234474608518817206919835898678089943877464465756744481132421964478367471077419940869923399363082879602133968704492217259921391991703242598588610783517497167742271929653605452650167152544620761924170170574684752571559320493928022059539606454422158503475250750262244861036176861821509515906770893272457239019760491342738056630052077125349243164370065173298798483276559761827967842791550460455778843648384556618527425614980406427519090904112653442255932285574811575376509694993353504442307934349949163023014362150556071708151822713684243142266506672984336523864446889045264499785475014637389184835200130758272497777152401927366178064291876246810202504488743062390742092850773022559106470356303662812312072624730193071666851630039338361310917451273833450210633723419117064482921084332963987714359700378878961702279481211504330111830464387458259840167379153412771247744835117118467656093127982073710249477392782621971227972433953750747922724477464658119943698185395112674809462229632666898635649969103789757079359795094415124914189968982801161593650074939124464088804830157891981540905541770545816321938512081015477303715579792124070968062854500684551085691574180255200036183184941251342340644920704071582997283063602671382009220452890107615671040664467247873924715724792426770744588613979339029589633630711091738025410398560099177306230339057489590028494337378874627066198985731844374628733230061893449731094658706469151479767087637654634946156852705716042682279494683765887365762232434902619682968271946995851437622726261474950715820263469681259027505854870320246852926618876028131223053972977136257436688169173207881609809115294641765063634527091834358720695430619908517554849280159058211283509088707261528597097581357870793710749452146676025710002751469432374019557443853970189293878874462071807579577208961703007874442182130452661065592160749555307132601928535932931032635613203010080991955423445769554998381082520620399200724351090511540462147847989606454994601247979800783861379310501798905025540251974314110381741061156665223556533905222079913846685044133353002070019560974534579427481751339573668360747332739044751612880142027429502416255241856039411325606099196843790223025777949421606431381412232248966339518060981102780979032733372402990590073592735804537945381534087657701897608029856865605251274866140383212129849092357509834105553419602841939872079031594879610890911117791719779041021065007820297502093264371417272675850119419499565706332497175695585417147379398917175358580742271592011273855148243301009130044795092741907836531119753486792207352643207022442014951180107642566019512388180650384434004192357071338766776297005978323620067962183497462976097600991878291929450411517888472468958927305185264972082234554153420430926347228693630517068934635332865803042889775455464500204218475182629366736016946254530198255047511402461580020580426058593633231639959284717436797451867693499712949848383759896698332036912431144137110904453341332816202764042019726313648629551391043257783778910339048610508653459065728411617828916890575893268290986731059598459139714209679303212802731050558574826686354006754591802238098201286628551989971608818053750172261129101951432873662190247500851034673300976140898530295428134731398554907643261497643620396334450643200509558425402973420449256504564381991170830889540532871806977059726749950478420373512456565983954273796579264401296016318919935287372361759381237529497994970281340963250270617701192230013825910579973450586732261055845393117076729072023563954103819060941849230670500982297185803596531827442002675633349399090387566312466459902523700668591862803685521990282875942131339420908325421450416905123447121420347681739774493389321220973604201863095232868876467637195204671270397600100474967570087300532814899600287101580306178116940021371260900047926748522361120207986197489600166343009033963098979800166403207296327826358030039308181970307984073706522623907342567987618456330047112046534820572497791744202574118040182062630596369599164060041525494627255066201915350080293041504875521503484972955103983284345288545129971431225037068179823548076267685919089989582529624097279096277356546562026896189543658567336119976587507939954453455960613204400234495415113608091478881151655553826297683680428082174479044176261310088264013341022101650269047385062200473056350158883060059253924934809221233847098363376392136894753743366689915211531763691083053561360291554491413795203131812233183683842021821220973358056449452216658356634354334164135497703025079077664673249052507536479390023887706075830360437244022112037989598329865519053777900877058627676361297506062927498272031988967749710297094457691045608488307587515003224989625710273031234895133939205737678186417629971718935566628825457348110440681149341621169507505888097147681965314562395194439795898621462427790441612710731761617049082848121176669866842855271933593535613186922605955221316199064139306934781253100719222177737661386971925006538754911078453485387175313979232206865565942732940591069899762812459982158520174564907880631823110581198867537433313009597170315010028533278562178970195421239896987150950898307607415581309193968139146069344973269467930003622214305772703975220369631044169265676007853616366556778150607347213330339468854595206079765978568544343805811406304871536236866207814287048318522868676065099339573937710161769423621235886508695340065058730253956341583222934816279914823840572880466649396260241131079814915072026111966270135569694330605597107720477402154114025463087806096134359233024531932340881434613402868769255895128272288107782821179260392890830894996653891724431426418088382597970258011411760583966560000338836059859180311781881301240511124711425585636719301409568989816358450118425714184655170434087031324046029514421090879993707007352459746509045623851941446604382972730886162718300441551642768390833246635806585644529456225471242844830277806578332598829138227907100967196622456231080564381908533169569204772087101495385075315081847952775215025982562988990359728385255513378877830466059246005663002903367278657345043306294108788900227354487197436885398619810388014700837407264155797343716289433970892209518087844514489896368533960964101481770770626882039983540195308003740537442601507369728478511671546261094203213144763038869382707652845689487217825835474012997828995296378805638646282393489578611181744428272357213714525173133790785184950493669391095863165666625873584679100686568246440839029837636959445606096924750975227476121336574696582063034847366585483905595742366615472295841839727922807295010731999669198286799848193880136106316089308423966442523847688811604363969947108878078946015561343955417390672813058025332451091284928004708236259373044392678866301635482034818272103731304883907765037189091478675902036154622731395661977069234964471429809108969844393166917942723979007769496860194061392751791660585339371781407755547888827186094848266567275180356975424660020970439048337755780109704818752168089701413642351799129381412705333718478483280809571702999300555805307332390383412357991033164474942896802959738046175460710322845576819180816627070975480967636904285725329270717165360801133331556893282171291085417017379058019373244596140131009372444496969917281931313403819150688499874314361590773498431103405093345468512482440192358589154750914177815592315373084570624340966733478215489352133224030878441345646593147335407042961631380615241424674853059585453668255496741045835201672069593339552732406089236736314157449985125338346744174331292903227732926727232045420730189791064539551823060200320177560718820203007854924175332820247633043821202704059318181783526042500729073299799070919855159939015581586725950227442061623236795306443083211622626013697697549829809605245802755255838297515278590924950507115086008429760020394299567808062385714995989478791617689872460871544838441280052058132371740972803438020033756596928544781242341147769944884136316929778277152820557970400538605914398331498856367038341948578392810303029371344809046464750226838385967692048367250437299497946521413318060361269474425382014183336794013061321954663879493256214894041752680537854521520728922700745491268214833539467448585556909518366049151236426077267089284729874167870775965002189270153220804247279627306506152041605218979153776112813944877175387492412635733198039504960412034593151720484104443918184780872271981311303434312042348034945027656787297600141420518641457601440121766674613142731551091246783490035709878944609311357575210859888414446347487922298427785289915947561228609573958078873189303688064738348852661879307050198094407010827337863596967823021162645964572687135547855293612681632174517913540270682720674258231652338955464410433459133747878440127701508959471500767089539342823498584609440919030016469462452688771905302968417335454088671081698167603168973926977482667951598613202188117242485782971760334028390951368338406807013920785002129562623199191589279398156696052007487908725232856595846148251020388157461055096424971702639877723960253077000912339425331979321221141658232869452276991297331812036395262349216467782726004181865320718593901808135447394888612989581985630057223858943815588522772063508732873807881625655047654589293294481856009252582844718023870091329252274711779850488632578866501666657625014461792673566246534965595860547581873071459246012160791141771107115725117791141905920179182844700373128490649189059779170235513377029065526723520098287773128262657331725292310075486818305411837678297677045974927337214090462504030433137240801434673927862503151925962346925917931390426488544623628586786885773967329535747761242577114878722369541040277138669814815359310026430550751203745681292271243013385629532528335423547730377244396908500047119888104344562531108847120657230421228970607358174004480733087605117994019458992242982478805710330693550696415536182453648315398474685505797716784119140187018465300960948902376790967158542848458326990573127263945030364089045614395141994269027257560898187278190364983752783119737132331618589209679747849586558102212929504910007348340873723924220549637095372485563815805209195354398520154124713171747887670961228818861929203930099111445292785565961237936470735873625656450101368242285492970046502487181415441375387096905071703532005910492784122506772081844852920484303720863064173349777068861597772597259491227639151389624035757462666384002300048981141173289059608282490134259033980536548951462614902005406980157170569996209316022928745801971578852760957945740185385646772818708187476320195528711186892375828926472579341955752664506608331112954270590806117348316964308784512689245897402940090058537494718864972218244866080550561229686093310804628462828992811389197459297111985082510370171527330849441540692586988064377463152898815832488064671595503807820571700532115254918275771989986557377347622529930295565658103237095554749802873933448397870884329804326370574496707832730118530136352220314568490416806248924349876420320285113505228598929589945233447539119239661844014017571880329472385681732963286397546230498311674993184528936104663826000753139786572780773586446448886712374186284799576556298410976934583688854844632004546304365427749441878418327027856053827395458951687074532705243317658118143354432089904030118925678266937338862322720988589676093793084378025070078509832136952886887715558744682200133575638543346354210456194704310675277843278945729280081457000794449449479295647408909537661313213409809632269005570509327737772896883122519663003881495178487102688126455021141421893101310773105810022206211119821880782837053453009083868784521737700071410493870109175278544153738360645970678230766583204070676587712025471401261095020781353188526193993811212776521829775798085999420942095924024573061134588298274672038151228476935894633022479149840197464968760705727469127750278641865826887035554215453628356420668818544483956845029195456148976933488118172428191257323141469219803277803234784763291794038180106210299807583177850978427734169263513291044347021838127481718054084844624391369546539445461338252346170693219375383212132205484669890869581502270523747854710578550113021749727032705604716355663630214527841226983204694996323665448628871961522025154061648674001355486826874262029058879736593470375100469635526516178429115935630860884156315559210976189264811602689726148551097577303526402818799222742911814492954750423391502001812233978375593628624786942075110079088521770401879023109333353323313188814438024763796543414800758802538778190756450281110419956858792322680499306473645309643997872437479053860813022839724158253784587938997469507696331649194000204183748821577668450110742430658877512730182905073369248380651244828438968751699531456698656730063933805902386432392315123327680268452768199283228001495938439562597742897955665732611693448909130685464870016648957027695767036449732639925393672724887716594004689374950989873352628415075856349853030967894230303707659247291161909594390688582325320404852610528881636545259543203996145153998239441140005787557640312405504003668926500194736431737446675615889464196799959671662403262163526491282508205121150002237989402073978367964051187681571711305802766020172270580487314951725195730351119726811224921584649075422926975839088347305627310157118645747410656413739869272411292462374855752352254577111814257743003043381627127049852937773110899679343434940181229830308591006634658574827481291493388325728118086738827623837815309242288769960927916460180877151997881637176336572958731642300349059644525017322002992288130208540487395124920698182345682506122671978666084215805571525056021001624550393555812514417012181596841743263590407646724333402864099105082748206744753196542726362670566708544742226068266829215605315116598392140703905200251700238919872595568922224048501342595309245350530990320488042921993440415627837238729220817907746253756919012573471392994391204384719911891082994493858903761571189856793035662711088825482077729186870402331652791551674808605850468888017624882295353610902124010411005096794352548422503297280853590034197532497573023035536178512507315415410409038267382165720969227651118276399227110542105436247591196206589059497893566731351329330485682800350557157799585226256445913087008284708468173728994473117435119341187324575859601566177179922118317905030779971178415886762816752353419619716939205295056255053535186882882088655092907459363071199553140636258012788037256792007427700626966345523574483557860955201847281761150941960818185327719536181732249026771008651815468099596401654882012048613186375920585607018594149813898996692669429996515508558238550203565349602356122277861959942474307083166336912631913092793767770834428218880661483506310490508240279510733538425438453686806885298889305713539855319202532278298039721841639624427605055621201065239706523319674813787590530951901285968778926377895434445314365798932280746580150438921370384457116080582823647076482506694316796029025551363784790270894066399510732268492010101959852511942138743389329479435762877292499193207012682198022001712078483906711585042989257547828582335685185461612014275527373048128137024917310496188997043482768832607434362015945981252333963785980032038746440376679596015034325148455325592580787284337631316397987565126694849832983477524423706981329682605351091985979138873963564131421267452799287121218551209326825417710984705073405564251594585456164344968217576490092742456122042351947999515655071380494138780273058112901920102016003809756011155104195504778008590612707185575668254723816068932605104679989678028015297023125444085131303195546986636480025550980882975653517820260297140570230507818327024971539277514722938440586193079131669254764987815347586607053943835146331139895180690475650735371548973947889844177054877548980092715939599127945906270778710169667413956172268403985809184295263327884497229928431036868142037956440754387432106191855524033259059267272254082472501082647128825618638525302042334809603385424732588638827086642037030713036216850125713637121863006000163196359585251657691901928319019912011143585319187020537789122042644094032757722057022342675982497010289920558889762346102394062575920237157467524342056466488453290338826614480960921374561674031675374214350605316048569663350111535902104288886022738751567102235563533466322892718219104517807629477206707162257565745352235176663511946353756359443999361389571845611470601632106106743193956904866138936076764849925137618190534541315760224404268287613609708214303370586099917040899181944127178305826047831405360025652513434705290918268965062817718365986842067208911600699732738700272448499857095501546502370906358418270925593980492662446363903776325046615755952352947813659875246062749382520223107540824972097267753219296059945874019310871592384563902406810640604112559436700182868312472905302440679720533986311782860028802627999411096175415983736298787886006435377266604408895039250332680205696276564093187934753014881615091663123789623632733476950966595765231596786193534542825898655274806323324618930096332880111431146695612735891999657106165036735678151707138493418505508004064786339143997263251435032047426562422303361876872946817367965632923724000228984624377037811540602402042299692451483130048453386275438945045600051571822938472698869341862414216132487006660545659744606163549942968081897456144011401760317425464174122622554652874315828288424400250082247317887198707347305500062333694599121566067815568536098729887830263990532655364797766825940534604080231914706250212542877029166585873010138813172579528639551017407295174636020649368047069043377434906642003952610942703930773015375752863919091277288107158107658658758885990025677294294954737663968123751934670308165438950421284601060989560610109046569923836416166305985269071976393119352157041858508575601896510887905357964663492500670490122143833813750667793940728349666218816862047735032698363615255731515541391984743480403663313962085151261677091387001859451897007146338794873456740313880376581665341808911086218125345013644119788801618302419227234557249070995078995382969650747789171957698617479802779848194612867960202886976737403260479057817701548141922033845154212713451597231464553026782715087011952256442365827679574673215941687525642806605453389597114044874074878998638856048884761019788163687413241767474442529170544443131610810755506050724001585032570982806479447297112257221052401379834325896471821532633681974779958091326646995051028618188962389177985789180463479018327815582493589630748886012319902974470067720310871926354336204652414341696212497751202073848857149802881831873677687601076060309008928319172771043382823381450235680467787656129442154318924626549911264425838310083723454862543094902025575366848297544059862058015291707185851875709991983422274338313751203424779776182282334357946143734044882526619664405861631324092500658649340017338437526116867826515672126486153836889886531472200493719137657033217260984521297933723347648791949377720813371895185453297785538369142086069807985582109657409513188406814211063124172468071978343604688926252478803013545108635620002228965070764550936609935792047790528107291297879720469650773921188415375198361825388767678411851886367096905943093164981203171058781468720353270785377709275286220483212593936960362588476732695174274970531092326353159037075079618484421559648242247353883661944283631916782090027728281652360375096806829501338476497317548348365195514897856565570011584606126978372146051281803041825150142273907038636782501117416181715623160915907985711424923740349277080327343028548772472617669802996588949232284963816705269952047590607722954810801246079118191776324807546683299363283009871777716423769488167529297957290491381572024142429562387840710091079901222196542604706537685255299320624718099981010266341125982823240751239125948311294144364398290356093245188202280102788860158553343593954875168099854182181776548939905661991915359578204747137816089821514801217197402680918423104469100304067486108852953608705479795021772390911109861028144395088432500213148496780062296274317409300951298941209598407639271709262279170377531731142308968928979583956539894629138047876963216754057304471367348682759534782030603788789392884173217135454321590861449501198986851526527755033310985889957704653477235929395094495051809559177502952085771544030009876502879086383080140898429542523749442460988364621141912551462405567504836938004939959049966550457794964015920375697808295297153563949876696069482739384791471677808474347383659761912620960703486640504700731490465577323632259739269026144295148384106752822711752619603982734968641242637358940009215137435886363297751386649159515603754621859303660842490597268762586467355723776992336011774508060866474892164128498785203497411093829251614563947140482597743577869142036816382455971922184450405875611569049036384004711897071479255450287067031454629101249741867925688126914716302566487209187306688376591828992960612535680836833701991927757373391735093124488282473139258677940034911982191967985481734894407027124137086578142791288285196403649240199052423066490768171371817654981523274460388497800012048496702966882532162229310818578247349145544004576062528917539281949212555119656156681729392505240792979308707259230338073572401941911724547516385763231498226188711812101423968068586594414362849778054323250870668500734909579000626413487385681277679630781481943782087736632864097764334559290903567357028070776558218417016043227098166746642369257938807355653104750991871474889830259974183768534916495551820073023387353903029885085813991722853337776545740023252698388833476006778608091217962271308348858656348164231754540278443175063866330088325926717518785089557879146321550348163056098938146804582984862386412015843673285843057134241452896223984844284031184579762197467250487669909802322436865649626373264372833529116787559443298209501267577952617114026987750920551780779404594363499553365706926169213555534574553860414228134952394205593673156618997173271068246629507471840536027171582237844513170197519324366820624018095221168253882804380895366446698014213827255418950093063571090011761468596219537241345257359646965122696000691053641360970499154672446467262230856089141362570647356445981485126342433654117487039133293809537487127907331728410375676251973813736885677089331289616497576246361631080764982137489667834233300313961978466923584949116692274449493263021468072018298571905770242989844290421873997662123026444645157882841232916256033396527249336777098180462976840863982340680285465664158843752705605533762035950483020091012492237634901263430332716709020800388420726154545008169986502247382017529861635076929124108269198107320114647154470685815182100673072769842285542603711046638678350405690108345330629227873216205734431570063616920072182156669287598503489678489248609142989325463615535026745540175725722520929969374916975634637032287954446257354588887374375598155631670801471892105992654254336296609531781644454447262237834393887698422918639214021395226818884196908728847506230504334770711177728620487732388272309126552735340294825032515138737400741720418987018798621662301115827187142048034254010039961695819096906695450549604555284411399512519064820615189323100669502025454711216945719702523633755662940548677288553794322394358144021425039951598529754711013114270702926048880983459713090582848260151236053993306198714290251602924805915285970864476308358823789516594839888712053130665595610791300827417224183057787164839739459516941480843958357512406674041157694529270020585218282985857597642154665226462610273108428149269812930605188555812400286299972026185465633071085697047891753551632293556746909878278676599687866811408993108327835168779560853747092883376885941482384120462145725381051186151046852648053911839054821390888479731122751195802715697937551038272024323915770561679124047661868609220970861307956952363149472319467918840868546004545120745229532072183586188494406523681584403581381647930399633078549847480970036291276218797788105051654522762538333378042401219542660192191732664899185636725622271139867517296060078517015353835918795616555604563083502083265578048738791566070039068702083247173879703414984976023367255014430029080867244599404793387160338158365014190113804584180916648704994600026071536367325271454919232349089438193560491456594229618706692126414533354422812827224540382636307071478911124868937781590331975883524894653801596812353261969120657086239717049360095681511199886369195923381883049235539170705176478514793576798617334451074503515350652752822133243603578384321067576079400066684168743474134358015769321277536276627026715267144426073826548968659556965358084974354053062910052726198742605749846768316818202834309498117681666047018136314717298952860646272493415841636860145136180550649274434427654811239079845072837044185737982983876247492515761317452968727046759494988583218750332131568113184867811916093075756097759428610176924321067645083712911836822596924011321062694616170684721745604583280869473751080743830842890812713377470146936837503482055096999205240695137267590764411001243596698019166940934674073090213115489275664311798677620827561579643402305030570951058049609295519972984581566015606233469162858686016002738285147374121313501934755744824112630525932807392513058365924615441545206362629190756021383388565285228326151867067109738798691782916789627935369268157184498196284958261771229618138811907411901903867892271791207057736580486428172872201159068819627012038449307111974653987634833357085194004547727611677526686163096058873971618447904878988812455189606997131755836991203084433525089468495023375922627371238895727602949969331442691353534986325465762345027763830295850429827213892762906532302024625625595945361943122555060539414229716071116051879363318020492588199373448972666097755059939570580932651363401387206626745083565978975352212274048175320882159794203470713022199467822946977000519162493173513681113874694588125097384288427427328818981444688827789437572000611498429271239598717876786631099543433173168676027576577865407527239964504610362769386712956629276020388084196896694194472913684659025298709041524933835285732213854971604700470791689208283282583200456020512281352695146741031603416647380448073918721300970277478939699766112401675213807124310946772950338475232462990231926590011252999108497615139100413723722593987967790427640673074469926462519983465296658809426479594291089959903101364403814640764222302330179593636560438489272794299300030155051370077060321543325377457975649103788892544321850335994397221163693918887981026392209918546534218634798599175582034833809857849473271002580176421355270873797780485703878461415866898402035752795787337652848634328532450908333382152160444867365513631965424150544187686365121757407663843488355028369538718542742128391883675711905904784666104165664190232253748403874242879446934797145426901143555216618756220241155232572415614365516204516362930403375444696082563040422079440001337179522020925187775162571760856145413687201118725080445607745601078750510476987311625777603069292808148442666565756386986409152167537927199367187476822867950685387353496605684433439240621055515965731741474350040926836140565325388183017976412020920957225284415801275105747909542450228370792462837231628484561926584795034559500277470851770441498230188287616647150853433804517138676978780763522010418193168009893438990723941971075409769068663907107861037104218238430334693765907770560019853070350820537872783820876674019763071391654247701502097057673795565349152220530582222874923252648005917527264679026187177659141549033421577472232005165214536744290226703780509570860104802684058868524126704862693394139032622074847827339740657692615237774600923924854351805383727940854451482848778807729132379919969636944134427023441995761706892638190686871401949924426369253934241373817532319164615871234911270124818441567825674335022285471098646709707987216334793945244947192206779208450397640217958990093940402785104824682497979219209078041376603005254055064712519356404626956800656190544084714779087344663739675414550744436714413455653955434732021842902485921155045023135120186435381249638884487840228316969019752815454545866950518934140437944726887302590062873102346400208965573431544039535737794801343173224119034007180109237654966700892966106306786030243797648072987831557815979219253026960815550560506265865095560733824064379458522558670098589042122473351936215044495610302204238434800552846226378156965009150940610212166716086988076214717421110376079010747759937924227194773354512852895798334838285362358249116894632000669847378727055867674141176701851551288942959164405680886238921229229080150147802393402004799464405681036539613840451374030244831760585190662748159102966738638005765376297267295611020118043270854253928487644945422201753743617727380646626614897444978734212123936344788092954075654304602628725974709209257391760469568098505882873389651333800775399834718596085442942503236710086652503083880615784262811817111626693512884088245493990407102806348596200101328622685104563736227775298695628700927937261841135014360438536489172484926903087073811771026502291525360731852092238114310796449851306952643716636855257604360553300973539518702647233812475188985356860494141701674190328593295467780026309144741997669222803616348302739481064136513610259994846161469604742468361643096335262556060006764299528147949064369996711665837023759427303453269601578471134864861186592856270951484889006621043425566522160134735950287944302467060020114282557340323720307952632971894530071961241981694607748468210956934322750623698346541829454952410555677935887250872369060731741136527068014819615953393967341643928354243135492491677601476185166467788033827458210600485281880199545706809363730831480662465525349792173003297681607576032396998480567109627603029872227269638973280822356434395754354650986438320626850825481291688348184305743726678994423465527013451363527698254963207883078467729600320517943313430106975818781041185467632264636899063925387378364784387741109997894547551228171218788626243150314246523085532277611050198181369881191336446844870560930165987208586457266625398459732278488655002569875251781173611700728148358297778036412580779973861433623284258567872674116127932033488255762733626689457542787216723437750444039301211300213836131782423710967976043665778782200830837518877334477650350286063794260134075151652674361110844796397740085628137007918903998765374249728731145978594924406131201075142668416595137164483243595785311031423676713453409568399812275948466122777446648162663461579633822745440357305752613094233266833929584768389542121358545823158053367776020770008213389504039436562851212422276105781986665402325148119109672572537304052310301311200470226183306570888759183251824203026859911103982127409522090395068164879099245667084043656530859180810663518475612367762954416337299353277283446295625639062762920183120266497720383458453261440165959177482265948734458394269919637183463224833016405101018357554220020924760123253209103184344326053311967391536305462821982682605089890883349775151901547380768453254603668216086389817309761556205329432086770921280208937163683393319895123938778631779161063776798914847694760863927221035088497119697644476482603191758022899912897227086166044224202230861539980454316515507964637424042347090266763648133504927396233629503998604693458549604233404754073336322386911110194049459164830770722512607319527819939112352818897472085840327678736920356604039800819200410472040074733470510969631256103360811388673765175474943509076762066799364431324836870613381703027062197123686163491284827209558149473118530472473368859552659355637270586879981372394857634628543168972599226788802159521866309497374448888327056498059713515920029915943411808965010408959661758267064261747190652637995329935834917367973674455568237332944143823332533708861238321460010501350556665008377384550865270532037336931231473727659400800860091690350231078471722118555237649579999345542189398820449477407059551675028789971538087302606521957631998727495838910148456052864023678378868400267407678927813986991737471652797742428440692820426204824119198314404754899051877053622061932912217169853487014713773808315899947641709764811949154168944174314950522259117999988119111904423238845342601162804192235236851519504517079531847301221207667943096172735169691673623332908512034509281442228490021426652907172307810633264237719482924588096305081155775400955449058846215004933444492365065195698816035771757045500632246802038809482160106354953257093284826050585774017361220844754361075186797253292264930463773169210041028400043643898371162002391289901690925945529411573540903584931428998105784864599340992306729031348064772909390940136354923584812353876253952195885570211083369423844696844578887961888184720383595510297558351045115797529370910238989461167272943886587448624171930486469717120288844244556570241176213039099220725474958211912169524416981782905896832172069365403994797081431539090817223069033890102267906945619614845225485585208451873723263877729809041044509080273627809352267671424888029160636888619527574272688464943372459449168855338689444271746896766865840548650263409299894304492762426913347094764972682498957868452457737075405301548875207549263997409509940107735697844653122419643702717002679700445139338835592202553196775719489130893271414819147208414451750099803452228729762300183473153144408177851772268978365202653961300423402552641265076010077249238019248306382021124806548777940978858629719684021275346998023961804818185861906974883769660989532092902252168740413962998437656277286137434098244019738250794868253365986969991988704087965565975128694529323856018736867763478701533437399695620596387271032622358789754864605746267547353280566078977077466690407106865949968783192625118994872167042474627533311631414308106344214867828383031445757273931737031594422082723264428556535002486108554216756416902956054317716056112856375488174123391389874409348958142670621439950703835857956037061748218619966602726281798797684817633435030571975252795190188923814576407326283179411353516787871033018299681412717920505969042264928562318890198731716701646937403551690357311338937703302413179760214287325312621065568670861034352838874467532597335987963727906343724351412495886859499965851028793852564764793603008778666432390497965896908069648281473139900895151288678152399227784131083625679951947953332392586882423440404578313348957109800004892824927983465994814146607340163032665571658640476864791539435629550312496720375401285206377337058310351743106506057271817203714322402880702238311501033221956260728207848719674032318331798439856108058977470306767051863836374330509351156995877500535541784113520689156551154593015499497574946642203561796124732083009409428175588403917294195682367589328678485055287745179350960597748560626651415863937067239716224851695010599315538224188452233636463914150191246019415648375538561555814856736134172411510522193597746445374330972881633415449672216544418889162100803936348717341725711499285313421534682931369208787907620135565380814097872029645891550379489327380591991146435580974850114334710359492805845228233049208937790778714941701935786837814638597825022534910381999311079585953562148855026034497215708225028983318687823331202216604891225872363074620571275702263962509321356208424027937298430771637774656208141051014398217867137654496890320116552506941645503941643833146690126405738674700800278780917995471946819293922877428697459561589337337406891901350842932657712552373562669273762060591116165284455080089266882109612153682992571408669333208763682824017644489477450462099336159259775162319770310460657132242898585441324535045515799897513761454949527517116359911573617606642417250709505157251920088296937009625589002514540327065612091379457288566740674084685041113282782821222344569221076659324987881063532114102753586548961398360498537720949813832444162866660349990420038464636333690901142657266969006555522207541865480906236376213661699942372609368151298789227674391204814753401315389087555624084341791944734379650233690633805782579163769683209349126136894988625766848853701555177919814714788880786236699875457518308374449199821044226313310075356205626934392079955972446148806891073010322925558895867317901740899336130908616096757844307371687980527702622299244539774557460895661304942349143283237999647451375120834533223472752361242470326923920505859082726204563854842451973767050266317524630880358597565574684453818950645033612406120338543005442264433181622862332419985918009030087675146032137832055264555991243172976007645802300077236696005653965660404850156088002276899201464983125210713324897338178736973042927294926636829168275103207092660305568436691059052834513394521247327739460914520908791589430245354552931792618938502987463269465789765626078917870271039131647711103369744813720720211548317436496416713503658893388866712649984300719023434177525924475423884644695125113175608584024614575442265995414126275843921712263268110920132365094104636342059729892760795033982864779410282126283947149060457289411691346060898476677933465110502584618029610592673640240823381069205203199965532636334996316625822502393857019566309863203198345680363584771199522358643781310466555380704344779309653905193408829374431208565608985845467666986990803867054371871417636631468449104709879851406519568518139407154701630597045020082037756986458437986540513661449178244588065370346185045869796678827932781368687167611717429785489263934089383625702839428488576661992472225359355008897500734762730954595015281189341588302672665729226307952950889388434180699260244389028997903914753907131604745402417105257767923737020282432111914735381979686355756595451178239568922111437069935826353201287173594328352654274399256435391431680610623244758394986048971483937080930851216512240993108304824087429009621696332822313235694804654370873930557335150127385785866349525709320605323186624399161246105805855369230390664475821518277121439357003212493808832387228456010174536232340093710588650358086319788954491906882850507427506726536211419590561223564524403689857412594528893305929428794873980247476880388871180270232335557637861938508321079973093734882027068548577363234794883264508126343851547620910424246048778167524633380604658133996696528261236915639847427886839775834049059513862364773343213489457561099592846455082482014239435161887327455485025834924226941936892357149860656020635058399672601802043868614062835517158756074423641134516339960479868001279663618267013695171568709227866534871920355748068155166668732633297086000780754043608368637332800761790895869490325451548225389264912273776422391252917029494530195099587190376832794303532200470064923863428187321093737720847355047517367249533180690543261416171083984571423988276231345128474503814045331989840430106619919151226740711249351099015121133914045973587946019596258593715204651013755429430358270359827804460846162881438587593198158800812482542632390688397214068598460284203387031056639474838654235271763051660559932006744021653954220202689545224914559326305817246458714513483770297863530144326981723257125492515649830271880515148274012892171458576421298364986623681770988338620827780232055047481072201535349955062379564631180091633280596270643671459095152862208723600897959643757836866681115014163544915164131549131914607134880937330639257607095516328978154047272235318533131240622414366923587536803960815399845292828485680334512676965498085953619373549749881028391166964686851877677856926274907505701040636221396279501850318931660869894006637504455136082484358572299433236376626107190175381557577335045512582494749578233096751924863673446771096991905273811893069296315029114889481692282331224381116870054549536236976341507212255422316245276588329080765760075038305278467171573166020112679959420982669860768333440135662459690779999123284387371755148491486989298020798555416842433606834910906298403138962027311696762144211826548540145031833654624277234640957455054779126422640908162159593768209708869114590574242840181025806942036142564726929090143489164915366366075101544021978022931141326380214680199215941520675397439719066013313085015254763348392408416417715904179975508797935350672910234877029317554799059725467462235619473595618260723221854288988282496368810914202880202917081424289852812084889909322318950474922699869143743717318418868265171106948872905313062030473575119222593892924120146192430986416189086749320370251656898152429529469441877263851732445120290838576885281832326962644605910895849589649767339267479600467550630899340506592812906868210668097329446157196252653935351251862669060523106821750398867545671923464206024830153490985467674516438516685907781306197601773104556566653577718625704449825005951559834653133816110386083049373983736452272217886517238881727546217896832232026327256448697939348164769447495861903744659720028568222203168226895861613146826323742478513970299070893068225900030723781422203991478284534050169594459683725538173112508723777646040940570082119863663347663245449611753788493035132943295871296613524929584188728215216782940765864213824181498984186321129875906453782746186586102491861727052996130692319750540434264999013315137219228700689724927020789779474874220218815303719418627381183995536284056710315974798042346078857869097875927007641700190867289960474479862010041004355216139867594003649029738230261376821328875065249339421050236278830517792322203340421713342030083199803445991558087042438968581512045142764212097434361613963254159021433322471284234835942938776328430638000359399902611452102294911910049486544348765016284783788526367433236651266564521572451389189302541692617097396263886001486673848839200792194885747595486651384336059295062627130870781067375168565619530479933632266122402290658132207164548032405140124139037183184771116186616319278710689094469459258622083351783242911585625160049510770118738967809127381342006176756466203914043892048706701496049982235897375025963502669940385820716169684232262097885753875998940276513798528314109364299231744117373533702108122857825326125038352026840622595300582214417983340048823695359232425479842777211386150719570887948503914320531723113796477030301689296536574691816663134361544756044530362274980592376494398244075205787471851292518079636853644163728427111717832930092409312563559351410484552580215802431433290700471127696607835553959224643684365734167872153061751772989306298815806102114770759230555377989731307022312765746206234073122816404058060644264801161282143332005886347621587842781714192050897345570804184091908547423362663971640101452651081523045305725704865051929619995249135400295556281215049326951942067640087540580095487134008718214014408355343645844900404298741508795811467480319124404136602179537493271430203134190476153255714526548979328590029947306425059611775886133235635015594700364019191958642241464503939678483622650432130810233450177954144689366653022665787482655693099554168794176596332963456902876457961653786763310883973282351391404814450016064206402964880644921646912374661471818774561587053719728402586235745956167336813275484941240151024968633542070961887736629933238538290745902877522344104993927742836830065767223196143308579206492962638672108056072016762749991903861434552654523129214709256179057742808559009085971099312393292604270035062663957800093068701841365791780147588043160192734043472589560587130967065112870696399424940595320526306586560181987914504124770422313276666446719940099148811804776411184119258793396581804015910240049517287031360319765689874588424061680694643889083837987303972093802695958652445288286362660624976926678046256342190024152197110229798507095584655852826717551456982092229497580768617637932505907739920284368600903509475310390757014520230570457473207167003755423269316136659632462573440868221316239379929897565823008747232180719387562074428498400810127329114978852354888103625764708795302969583525409246929236482753535550284728119741223564278476428110498453811607864759452957142895182027778676601684814056625626790854905852836215312334859542833933135341879145443796165339273269130809199243298081170531677727795508731459522303198203395643283562643781491988115779686853997143328944655799073805513658358364358867768551789972370462777218732739523822933987976605320825875859907895977598070783268522017007026307068268445032019536167095300664887610204553657321655063476203740061824227882952307468340531649520039523867315640942244732594360323705187323994861842192656241059170485916410552727187025032963520546988115395923865927674207454838488363794111943274730678183411434826119318790156740060664069419082073754248276359085774037214658808408818047956545906666144139997995595366113872565685838474044242235585751921728817802424742474022329485561111229602731838453899870079156351397972021529784807149901710808007458551401461632126203692666353176922776796083408174883047635254601327693597766037893477082135126250970770657810836023802058794465172269801658823447314747199932000964957927414163329372588023304533413827415764226793240622452121659002385280461668872078824470610966673390023526616082134702988470555384365732563555724565952691480799181092039718571647506202231926271530082028398299321687872882395833130081906867929526899293356796587716205351586591660142819440664996817128879344738258361943621488113138121763817734250765311154129927743119694110328083385930716287694121449104030620189844006775339581556564101451019380334584219411383650438176277535933417248449096271018058549407119910615316018815884842549953335283439385673557579034244710791842376722776336981763572340575162975681830299778618270063297943687256016361205993895033940965480031874942509179883729319192819580174104100358215324574401017583703458040797523069243813722331248001197293867314571767912357795858881205010096407494687304569129615500697715128542654454432805384381116995411095639718572404325306323620373771234849471993983887539329911594137249367998601686397615488923149751732680533366715541803767238037161821400265371030591614899309504056061991997232477039922664805222190956649840451261142062517886546477267642387717194681956995898049377237773840251764562858230379567421249672032957244516206726749233107805812613150052905629146243793985638007065503853799130959287206275180714479881677034018534188664502435612475616167601847231011845849491090721915785878705413975643586538168539567865051582363927192451576147349548264685996364120811407723407948709905543307324429864008595264788420399132508266985380034463170393934887193603241452702871763242814542491324759834988944334709804069152430043160433060175615153003319005077650680469946517369340301529706054239601661651501261108903704966004219932792438740369615765837248145163818075884375796507801053255378586518323897777176978550607650426400685740037567594756979335402858912288315345355901035279260534469575123893401688586220572454165979946204566740033927238241615686936351651340822557436472268245705496382444986666466333864583930865169868710685953327031758492107874547167678406140357038843321886635888928197675045151892277967767159920586584717969658554022177932171411857999088613297540445687221783183594697969915724474850157906654810343744567158446659292806400156641270201526019306496742023144665983186721902327492428989029502326029526729959569521992952030684626871136095915293214056039185209642453717265228860725424573270683999752747136140652662409843885958657964400490912038438030918863258206585106165533227284792162545882901249338392485830003929809364385106506201967328512652337681950230454765689756745956594048461856549609094261636982295426854705068957314755065745226821583697811949336997335597528417178836904657712044939485363162788108251703666141393331638974164652134699586120131373673238034524302372910307586934549837846287579835072234139413456400212478232841898154838413838605274327624533195117232349720532019197584468488786297284742541550513924781211030193999740252537359793454849253964109332094139564545250772324354001729197648889826331921385542249559855755114529289134321781121349851187809363549480561361161168628686844615594296636481420327494650992904206705913485425196256545032160092489056390896247570404874017506634166170050107028207868764091305572950496858637411372970068431129316197660792875224895260300228110224651485574679705722973363805383663982494817888171522219562847446270340559565677038303652326554480472231188882050330871144430841631209199171974078751891982085878796375335736909914764499635144145850114148000938967245044417046618224144543321376967814802308680534034190026678759796239679480435187703028309250325289053713216880569625044577432318967230764143914771989137398188381100293635124146475683921608717811777195233869312305154364236206846865954928347615761078987048036013806241702407632220781943999527056258023791637978972246121049809559580305258143646300737905104683624738548422669398676488759410671047466787172373775942945939868292348382260820794551139027523446545165319637591455454475735127470350348501130609270186784113282909603603519514665859107828879112237883153272213004242576046965893383051308601607325127309987401181001134765803710762885849943904978667343528021321345794712261846776738002090982607849910328305387064518167949346500947690149999437845749015347297076168214130119823599231604168526297240994906065927284145884642872726768185221729496856101030828532867144074382667038989217623272303248381792665780122112532753207761556067318379253323194421382444445427910352307897996769604199722809124539255461063046711459009909807586613329460029900588588095151232415536439540556810262733821168824185034615564188020434081460991526385787583573400765569471882833025103030639406142300742949128090022141659137874947164262924709852442689570622820787574234359468855875765212141276491046370407645960001956332521552454907564470277991440325155781253153698693483897168463309987207092469051153450425860114776759890452839216665558670846722278534691377796322651542732986329258067439905446695919101632792616806147210750556035258381854459771522923260201110852365582289293887003175071267540249889960400139228544197842996615906165185380557560177498940329262122056578657657149076156765717588919374735501734811723156370615318418497498445909438555213853159083560236947173968690481679976544844447345461011736934005775607928345361293061460818138159641964463732010212870206775218491280664006558904542324215644136048872591343935609880991403192389551363830998153322352927843520453355303099676211666645121220828861752173994865683032567834612775264229725390613941805620690207157231631372785402838349914933731526726108483636995228183400044593964310788169239912191149972926585635863895563316906342535863405206632270854111043945894797142192538988112000032782620044427938600283245538419735133731364280395852540216265375916934092861762659726858998649889058078487135804561013892205496509557790980710608029539129450227563637735460840005377231919573754639440799907916542958718932532155702433385402097325480101816820588705051434430679153189603188384938664318608191542221745471162913545204271700412000493861148931182309054741835064060595382246643938045691876944373031469354045031321224123979544881314051107849266349709591378645168061088512245998536847512751985920771504203007664169507997937136286598586061407892809000485452709719630814258167313401436922759093259680984996200541255024182627888177076393015846863878747424567034979763278490112223209248211070967417042215162115999191398622902545429736150827664261752034027539875530629022525422592429628042195864842166421314301911089354751444186179655684855123654854672584416370469741832321189975415658944779841060160998420120510354361060824591634248252821838565644611671840398251470692880279588598701015864673755509412842723888438006261878088917917622855634293017473002353535243948853295727099624726669896098997285776688610964285176479375262261525857228578528968597079903011864877843807780686778231350994145156793382760940480791399812196359749966234921681379725576932950408777782946526313823411250554199616144204587073796416295378689439873857365280616399636612978950071944436812004845834756593961330193394207553539183832352114489156807520513909283437284685150807067861739651792302338962941754453095785534686500175411584776082279455233401121609166607222847848799100621994805665916618791371482197320375378731372089006904233343233663271218191508641813750296159070797651299734612440378724488417721569242045982056603781772633929408190136341464810059503276633101446822595572304618395755427450261597305535232699655114481921196532028895664337705113651989433768912569667790248267278787626924427010990564870069944726255155284910200396895884649828273079216292506301176612235687586651847969429123027592908903270474586132060812890141712411008067328860851676758363663422060735421791771548853268904161734155084462661658161452785320189024561652403513849672700011524748781247803749422594083418319079469414940167238555971254692811281568459951913291114863956293995872139193914042394799431278005570333941956602689077259143216073833955253708288156679113865876895317219994650437086778249386365129987078227909433798159653351212994649452746123938241892898047070811370254464022170899247655776715981724938840389853130268430270309572852071442666908306262062412074185163792947842884677220472533695052291884847259627347425990393482514722546279656486107389040328341948633606290837254318347388847128821030860410300606490569228031515634745536083849204945928317600789216797672556377899485901845013726223712148240430652808143558298771153258917897155189046104098124489662785182841831825458291882053490710655901525367466232887409124589750183765712936896358241375853515737200861841016220953942335920704441528019810108239415540703376555371713978806702728878058980648200751094509493668648580888729863930747581977230051673221886780655654551937629808486899010915334917349070763991178706313467862890750913298213251923087309370387336577852795453999571928999012763467489131535717142954749484750270765294272700960434416802449487920515753787807007609726506870968108260027339277800882983351498285761066755114130197147594166897087697891309995038343280784810263867342961457044194990134062529699303035143319664256152203209265717111380081784439160259743960125968381264486352767992497779609345675998194388645972055008956895707347579870899737439825235289765371759572946581726121241873510940935188004708660389136761449554901335398785017743812990719105718477869589913959085714552105823528701009859127229750056167490594376444671874131514337232576226305691605075109416350852288627770684404226935037608366836103095671273027912156469619491444452853614853245422751980669387439245322454727392295998115736370601886566632844994003106816512891938498944595079129254763720245227476402898500069618603392808531580365799047332517544278702796773198267899643280674008349627346176222720645197253679988537363080420375076503393325770375212418510220959457204137631445542387605664915066411397958734840251529069178377662199229780464839374145892041005937349813089031615378523565048234568783411379951155094957309227971861633088196443350625363043937018669007028591233090209994738425530609054423253638862660586110910374545366672855181275991111570450929129722735898601917232451829236993622381590377668378682055653646319456518509966656405235663714368536612330843149997430021815790985900911822175129988404408338635442327704147229087732689743999308199473429546864638860326225882232115898056410932019523255527799966700484224553907908014297599070258668694642302299633979205131984877480505628129262929930849550751966342704529744976082665224351785518403404541424672350781517115241999275203663049692864160502485557634201142617675817575843310630281737717235852872922980350688793586337438411703121474989616302135914330842322374022330928875639849767503720184861161631874666038558842522732912890750151860746994379790065785103359852249310255792886969446856786913761861446001607651803571350186008637018716081022369838889723610194535765265228394445560186216807242089461406466237329964779231539691088421852644041313948937075663503829635130575909826644646903335585675677542509866049025271740180074664710241822631049493608999352213776600284832240068782687829475388106451744439539147663962205381226986258103480781217885951403936749050752240266291262149698886993785972854875647329143666377211983958539058891163729053754188654483290689087937854754820644492007421857558556275558874592059929676601470433962843703037963674714448797170326983127006165620330246174979199509833318117790785073278164322215645007387963165737227228421698006008964507525141254946896264056102951708437646182803852713035962641219334789989027301533450953964000257742620312830706997822413865604939465097289203147293478269666454392191319938725328839525716044824332957757061749526844543960886375625704935391745059360949097161011679430169435158419053190926514735993734868657984175133643775116979566616837202102795756495264820389372819023573983598109735037024448470249453905571215502037889769060867736983342907685620269017476926520465249164181653332621746178080355020956080625160591105700035898999403737845043731288786629658802728237555442300625313253498495406544765659891325383304548673455057435873342141949228471567134355763223785776146572909392013915868559634530011615803674565779772165450205195856352798608630511458295858512078871444056674203288059075585499498994598332071930235432885677303990235770060993137229690296223131900808040308965876897708551832052871381557631196884990947818740728922180569002650632907584077880594200493542551610522382587984232535524354880185706828572857024685774417522512885049767959407292742957338401707021190471901315204997089376127191464543733702472670505190025593341163162519791165269882596004173980784041664116923659454068543318469082853168871410764588537675027464233216578906255587710702468806507829493673038413895064853274214501004853243966181654514607507129332556893195534497910201739826264384320840758527803563577800933562565597757165077239800547405597366046115819208805375469844823767415751276842561610841825693068787778584729475707619634318189420005938770204044175165686438770585463127022531353187831034373086380503067597068435877285401951311000458563207553339417258409502955688722740959974899510736211679817416754941113462963646500052318475475558938177108081932885219799608107448152394559805003709241169528111040469231431950815720699239346172756870557195862360272918203810071698544160033413085758129695809915972549250047628808740747095190543362418115692513728721477237819835651665920527750230160107337550673670767336961906642419736381482458156370805501551111133120865830434079017580985591259905816683693788806353260484511418275567944162967106527553440870640043865200340185601052958465905598429844153477581161400258958786430358190702405375607404193546481701822168852160715535910326948266516767261112846767128688979552514703933522067066310060573929136493794834666681401508641116663366309533747056603443677917612690411174761605456953120465910261179576490964843651294959368103826483094876335404865906556211151046486171665641531786251290365957174175719457391661989556312911493795264148762061863821835313780101409634931955919741780020547505802229157867373271641042841384607927716275307075654470819916326986325760565263165190938214581456664068050879435967565868428432249886691177569383835596246196691729233590014120178705546284130354569472109480304831206957293215816980221731946640246445562872602312996579389572903034426235580464788784442174318847583740313821191355017279613660870929311553480940441950837176894834602134466154217580914410657113119101541878412538347507373688325844655208712795184939956464582810521587101705711589756290361145345665858370962681082238486888444688109756654548775672757248234917350592504926043562390953406463160148419022987635505836386464104368667633334825875963116023492591727062333442002761047105239202673092177990882737791192245254065180205527153346945351472205369467372098329806053017225647383393203003492180825895772628250114729528886746595719799755777494561559061818386771587078010865890004399022057587049609111580719520550870067123351999998614090863686591311401988137115533267259800234767370334927539908202949363931241203792619233392145816461346375197002978641319719590639842994490588513997275449032323792583570406581934094494783132509194529816897093323575096030011674930087100166220003714110198174716868187476998374330926968332093828007104480479751600693031312911883938728913506112190662513958584209023385941725949567183433213960774886893969941391471940804984759410514927817614485041679898459212596858299961985807199715158607670553576778156483442875006228651221294189877011248570690423282423933259653836658693862304824104486548308190803509477648611183838328566126462274491966101743945993129640304645537217515087996113211935285489041753709171954159304925236000002679292678963614268771683964552162168162735495548304690777627816114507661436889339685180012560949343981819398535244003642972732367821335421191203011510895221864025431769684699521933444622487261317859040578953902917137991802663677213167933710044837388870477052502499774377907563827205059841768666440901188718375000372054732957404163116102588957470420572101914025995946867478013252299314212423303642518687964904959954679783550541358442598690911535047118300202241341945333947763657636696856362466478665118321674996150568199463822500019322814341493618518144943553915359300976427714065116750299402291203301719969646708671534968471787508631528048731162139095341298626175444158097804833625062053652601570760389115445160303886204305026952186004287821707581149121078475091115230287964354481807459508210438213906656742633507600252787506405397929283075741236837143778675196460763261220999760979514410530840394431115809089006786800623036286208686240685203985600492937964002952729098171265916354501699223574883926430908897421850006751488154864234466155913522020302298943453944185533963087567108788209072129013488147863959272989359520919958038172678189458221728794541966188159412688487021078285994548317837246578033414940153480292086894384492065890991141807905758968827229230062635484167458292286513539152410940482741742959412095041821476021358367528101202704283620063661523640132537837345144801719637442947049055715811737191910459156598806368656833976499908402206034179983859032848078520799790469501441988674042013489941108122385401695196585430507349714812040249208790362858839181818339036845902784599845162341978105174804518603758474426839069639043295596287747577908553100150141121938446748107615726343667819854816465979442438973725312397385706379708516748969545278438315842378759143305301969675472340274851035106314932648035332203275896038772975583467802759226657795780495702637915503188122869276621967835496175989542582597334540404435261186541065009460100199067066368416004319493598265370143341031779584641441459389485095324705077973467829823528079612583382295047155828811400530252113231199446387807437734908997176432346636268678401837091198327772510170690251280728227421741477795757833562267463679333313723109759789523039524107691436976190486543288859411794183216019215194853983751857064070952706615824000048180589895435416950912137357250552928824576144410626921667201656340856488084144235542084348628639046772876735568463920656490268537031450285965047553213618211727634751037343012774899768247158304362737259263760389404223518782334704498740261756812435525907051026714853438402146236923788808079452791095313992988521389854276567775269312601347357676739763376093952786703147597705873584376141416797725048235033609452839152460055919480775114365316640814748183892416607812176368516484091213709550864605747710279665726123653624785450040656517860275438158245039975805173247408558289463257242467922199522379346879161848574156122090752622580288611512510382014033711382870363030315481897108739536440637511049641879238951756848258974372142041210470997475385313944196394809321599873360801908257175986639995376759904002119635106461318449355791939550048634338270923042795801806705693670840812424853915499234631635135403769176829427159954128138339731230942059775864169118657167599243605427070296458833377916007835326410333894252568829862292766389400166016641718453310186570280312878341772812257478645179306656854303704030030058669054781558690392692330281948644135526029807993450490964705444914117744846268594375273491261257328730409202728836318671098902958080950472177467472965152033645409649197479931918789510690671571630496430152900729935891072134364505330877725188821310654069137496407070939693768951549689808562057548046700185215551209902423373139906443024566579428330744391326004602706486127964748008300019980821985925575447176257051742498316879419496103092105074837767377006161931382998073115318147381111972742626352795683478091156110045892231770913045557610080704611106133782733279859809758896761917636314890738246870635734951566200808368887114221537518102533393927771043852407029511712999382044456354369241035802035331735734690252032527486599941776321550057154790232226228104426708531505581874252062246063497207981714941641532645957937763320990482109346139751413447388019299919160743426212486304368072214287356044092859307131184083446797665670426410098403942696159572170492558345755546253719046547473853252366693430280111005377708887985168305148504978510985497224294308857521167633785217700644545405564355723041336282911833400631680315493433097938304684696514739265616498609878803607609011989378364850186156275308210750736364554708874229835692032956990694444740977013942148930238933802996652482821631698000761346630427323880125522501806932414493481255941598407047494573422621077296200244049165133228657672728775380011652118456904213674455672598831099873611811171042865446519771219383933632059948110466308936682033775560665415125945561179946748547324719281163601218405121153592199290551679034334065152430979867138625664438507859120926505021823346607691405660290389847997340125424714830385264845143652910796696236372293623577450209759403079579978580654801607027173539104430756383085444033242825745907210467579589366224196540062506741076304256297067093377630912608536776776856563493136078402512335596928552742060434658354047001041639683264946730057765537724315869887492832056342975440912838749825530110074625883615087494403932331168917512244790141287007022615820945514112980751828078101347959595164655549390074471144445631838677920443051864472986780465083856994578085934914932358673137066470333325166754447141872686350089178100731696560612617394828797577947996381598080868768123148956027123503773828671793516889413954332540008633526157121176254237863645811158560221138381552491937136206158950817448916518342385889000665548479058105697771403044672634617949319732122588461686683306204971863964218975751347411983976287244876444866046961313579315658329124569101827612062915055749511866305423461010329018435126992853997891199779590452995905518947804367221746215487721541376024290002806097430571479449030437416569260591982497191871451426289386657957235515247901748177090793393479117983688893222249928244336227316054914970657342502192669573935135496760769852354481039925567346915612529801099993067978876398244703812354710656091918861746693681770256230921765304729748622201939659508247688615179174153368016054096957516530713378398723946584582498205351274196963064635161442309867097130217986379829073566298365677569074003086635842384373595869001983757854724369007461110767820915222945603397421064045622762992842937630349490533257949309757113317635402364269073889263096898322117413281831104920168645248138705373194516375019548734728165398964563091446428770332913092561716728614735104886880127206855398447725986967178956148005442755376535156389986448327379366044702379684254285720554794090945782625960037516632237279221046792731756337878412305752488196371612615705788613383449595303151863727378978311587169082801152663169606363319608125260732347345532817905673856991119077969942139908576578774482910397542044227263802814025511731876201470222390087325838846485302718527090257038581070917382026612704120335849429431580900407175637252766105880137260005230878152980870757198686859212437642499336097477652672824015879557889487593511923319210682174329757658044299611026802022445709193541961236462405182573005961819051897198590791138750815619783459082483905084176277356492678155378428455246234761488260876002071778276199132192352880461846141331345407800521736946557694214632788697665893035760453782821454123987445579688737519939771832671238399870926159834168032521682716205191719526975780316975842976774329225186768012528981153969549621463389308256428577322643388020299190857331502819045203771591506241869342944659257564501487280713489322088453412457660653987994150914372312466172268337322170989186869513459183953972541315448255768362725595587295582307407704329896639466376434243180414139465039484840872936013739101018469832254608622169377321296250934717011581137125394484778589233716725321101604040206010827380476926593039685962908362518499201696224074161214700879955518620411406415431089991166368253372011694816929709496491346758160609762601447786536475528364852208574698690691852082918433123568979484079918107364842426934900092895893776318889562656746519772079656482638950802625458421924887799500394426138776153514622143098043039483274798601997266500619953054544441096132484157803256071280899951193053407592606412185268957753068830179882596857678785568990628835353605877218556328601855981135301953742830734727990964971139837433454711475715488827921132666566893931365251243722499337936796167407569457579358248283763869158759742173351845266010526743313509895136470741018915170074486635609251429968053771287106670510261986680526661617583879255046898826618968535453720704267259728689076098587836062799979172240645872073078927212568254115480902183874634857834878159101479222129503254309569168387574926448401241952867998309112090944339097369722624785420417332762204068072199220812625967089015964084104004481938720954509705023941988172448601720785451881714266741474992829992843272505458498987268733963199404223117555354590713388481965391254047745085588324631532601233381229605917051458127292435420108616754878460490802273765369520148074309610361210835657749138762786425137940167739862776609740751390662465668285226078037457790973160032510597703967916041904457653513158728188858403535716472380814674474672283179128754792061039443978852168149248361401856818199088466728468377267958644983494867228729346856538467436028539479185335435223528101069128237677695433553683463361153668882367514631651110063136675498224591172332334194573683033302767462499008750418263413726271994929941910767333987044784912371804057004511193724114623930082616960946826606173233349736189351523134253772220953597787651852612677018115732721123756177862045389192680226523463609700398661170851454994753016884511114613952519067019323933616707375162129817180804794342940231795765713095977974957262382856707222327514062763217079065677414228151630759785640693387531615902500187565677610636261069657573841599405832271900687592322128071379328146944678556889046298842919996018420369089792398870649191640917388336659499218612705943096325559603422525809060383928242455588150405053212086356856442603356015164465268096641424401390904110508961299785461172268799994752624851285127057650065430824579467396947918231018417109136243426103774982999141016143138434751648998275544430968427587183679948745967976376669632741754203810811569625657692691434279859775698471302720943443687402522111487660155385031690070895029460277259375883011905114911665386257694700248010935918164417792632976560566006131170965539374915938068442019975489283201991439796802968391148013588179412922520845311996572436192327663565313293059522981416596630508707217946325869995001685398341777235382097042843369673129921443890862874946384897824337692136377497192499811909360665793619110444118644309665421316678708169009842925936514465847760001412871437384207457856135978372743632101201926994429966281694938470365081346120571251945089117091321645513838844143180581670053551532783719812198823587507965658400277376381297287152999068157229743424589054891658339082976349249798589384983736019366828439904500315317145195317186322748021918864418099074609546637837427041565715321685681159120649462103370663590352423150057264798759276070198922082154373255813343634195291011695169840276477315458242117411347288162903985327339935028018903585743294304898665488439385125142295815646293495644892992311378779178710948107815455618225240599401461182083789858004369092044708784437188363925756365041457104008754950049920053389192948469331650590650651073678949580218896971424574661179512006989094200056924759625895213696473695563693311724669036132821956968202555081757812840942762700197837560394588059641690528429848885246731607572198478028324580755035522279701532894940687541882478257142883158499651409250128002936136356769727832695032148742074094494792121938044275354696575978046649725635033634948449368467591607314613791974635112895908187902531913242617932695806803495702847254773874420411191289781761341602964715572534635972507587993545687341674149807792252447515432275385410581427991489093415141430737863249382157313460939486340195433991854020679925068177061520581300763894201668071814391288104681329848811298427707599675212772819651760123215193312921105608162869795938208496146015387029155432420530992637902762724002659688047471632346191387308443313676710557943045710221403155502317794914426693008189131736185092962965555321942328439782503367204187523716951529609661235398842907847803767489966267518254853574614943322011888004340704249767701773232572515929053878930456505999396680282788885288907377833058983952026491877819933560406356875143916470642842686602188790959174561668403230644757564706355485893273493476379032281372783411918114999970997218939347061173945336340316799494163527178878522986251314303415303589981221092775018288469243556550851349237871935763371558263128561381442727740725297735850133849293717157368652960579959350038229390554026730956711308037818499377256972319023404979436985140570074375862159946905485863208925603748258561497656699315348576163612373689733054723861812645337226642271876425825325911437114319985220467250352854606215711917980206958275395119375415862070972668040259626533384997673355268524369243738708566821453127345150687223607728396775931401562098559221091183982853097008015599183479376170905827554576666868457718425953052557676150842902478720020947678789967885706364466920077011331721010585913292488936448148018682748824373318414639148242844537671017207501773114822401951779841433995968498929808023734074215283954904269534988161790089813639445980488012592897717408365046224848225791227048864936021493858697354025085936403713121646640477710181814473701088767139283776128446958639665122571185035556917174460065516068630654856429416557879916267250643822979674395843944574814920509857180643481610082494269532769722593414378640217342563961131985665256610567943360651534610739347393554623867701775884444101735163059879320891585487740389468312302167339955749268649815198690635348988798165373011099133580967341815663133520473509293572327172868963242381123512783771225882469306753208877675061889789452735942732094489409489771905168589847676449793241083648457303676411788564824656917159287690983300760222439340452381532199254740983654897036976281840161284991742843162918255726570095706892086888637820966782226727307617878126170906688187650870257039081036359338467774641734618315936524902063407903367402075782512215492224705679272765924116209535812169661071824521741463677829698987997329438876205668018575160040238746838301588506277567135701402549466711544232212447904572277661772770074212455747746220732218719189011335238583631232683905102386832585919369982054912503883324757479379911873718280351975845922542153684216583048670556266237717273413372008479523645889898316876435628022042764303519102445313291659259089151750660411174426036857572941768842475961694580809556655252115862890601933418608157968406349150049323910997502006579498757093727493970759957482325630137820893130599823271185626991539413245589068619780484377606497341831316844791508484161807149095885910460202361387022621685455064889841337323445071975976061651511958392543840034827509191768075759012576654092089409506089980586094958696240101183807363978836646468953902265602831963342118223500111011121647191585528262959660673443268626037694911162683436954420401310692792817513687878087037383297305332699032936393438019627020924324445728778864270840110139842378894058434707296493857157099052503473730606867698184864165817526588546932499877226328899341777709353583698735710000254729778729549719807884923489495660883425504926145967128268412549439026306931373574204179853865568290670826212031387021675533735177028049754127969825260117078984106356279410426543431236814386153744633777174437557362443335397197191030746442732419342385499832894927498572979245169782257945034407724208772371532627394616974246525106722897597995625745571980601085717900604691957802878935653142706547338466457426173961142365314755546935681937530576031530928993078306629334153283554154600585387052581826011350771090697677737908501355247364248640815544438878773269173098886986344084013761402950249886840344446990493634075032416251803319896145947521790738876233103464265987380077586797344921130852540956229423926835916277052282810835093758337872974860607314167456713167664281317697465247719236685874035753846032542040686289280501111538414304319161744190332520601731152967906281495563064506745580566824730087055397084132204028109172054037382924511043674088615925847835386494949243427168258219690957344958840165263399816857713952104643215955424797154411190058262594254381816389773268008155669133771145871991684705861715683100321629484816932954171719872546567781840339565743477619330223750566296897379733349088429355935091478219414999234039437686714791765759891865376483614462225324427505034256036926547521129936016630086668356110775464878280405028856017042761542873999655905991292337694564816521561752406247636345910794379225033500420846020632906596832828676252633150590567541179297052116758135359990155786981415277139560089457329141627238673371131789196378950690501163810243687384694356033924985414668998720529427865944620677157287855417596514323598232226998464595415634798091267807175213858019389759041177097461247874494905223394750969444273530062063061291911286163751666746771976795799975507964458718859118410438858334291815923558070580774705321050269350951026917962286980515316703002758043371612946325880322430089443393493662384197181276359944489373096626240408652072926295203549627022777082101763340698623025946828345649614047345961946603511797682113604747204952613197794718936752215768450774743801780922513197768981731889700802242596942683454857987318355407087843464043252584716430564835322389453886651118430785108946304964168708385768810621546021509901225969695446337198165922240155452904913259597777224701509120964541353882133103495683957311231111720602059848534769650020464586933936146101044197686014006015462780458042978675823159825395314027081500071827822864851699847221659958137710847988803476840849882696724582015580217171560771041561641674770523768772720755574693572922740016229623789505626405146226838978504951210913154337210959197046360183852347870334784646212293866671688264696194167291845160926617845224363142899140148019444247148474517789141112013923775565282709367624499155467489568480388580538623778376795650217408071749883457705072787307163131018639562377041057620676054665123826707742297944997004612403750181751099960853484459684937226779518498594375974960210306148247971064861255957472920981652984183381814939830820615307786937978364897777777561767280786659302402045467199044694906012560085147663663364295521894776970932477524767151484692604175346104405622311581636735550369575276290422808653667272717559595665830718059367164118807624996180208162492389575771442462298185459087209303927273512666055809037806542856546875575160252638473725883288099830797911260371276747478019376355017470575183149856177900665292852518970356906610859059211407968500218047290535148281755789936195005981578381006479891303971882008114250833614547215205837393748975438701971787846293092274614981889750224866268303403293187092886622013913924780074451410165950979959339342379561838069851829473846696939111396742826710586070491043230077432897263815720450536720255206917611337403668515860199768372281229639566284781841639254272774320888265515302814636988768698733753526608953566712139754264492075392725980705457376149921534537359726161470108543234926249670674854187569859713236177604165475411294353033386041462647976323013652016777884672553456077515055876180413073223599501448282514592711598403232231876980332354869070582606150655801610825164200694794574274143926536987507828597566209911790781270335934640270254346068766458998154204735763292744241909365947740438061879189124380438390937238104585412797005351048746204663129956157296861053190874839929470189792596168787787150117873880551576714514602841963235115666545632245213623733270537130131013837523587020714262345535535753491383968913019538657966806473610781699819960902122027274580899849478344388621904546835622317645529827932940052145799343609799149566337771897832518956792885700167341541715077601749155660263568406910664894104357653404589070982799427671095771627137487502031966623692693001502705081919066208642469571347463426823348943498155933713180238891924447868617017905107867993937843268105068870540453608036580020946329174422085972411324739574465696942625351097453777043230949030137046995214632640577182009488296323427169153292240315360877676784332786706087738227002950937873322252210773571468903818522903493921790934051918023445655558369244697615310078241804867318302733823832967692358715115396842796064667276339401595915047928653281998820560114894120041294900420470796128716088086629577331639632843432605762677260823431103484165250144553553943535965995301421785864722729825172086786594749551656882379987284738927563159227425514881058086866383584865012036027556949736535689501997893029654777480419506962076931141569114392818012262380887709387807575807075223128070989230780221086770361302046698614870992975612442086976260248607601657164151214887308291557977426207715087462689102492434801278445859169050001797873344826328941465028333606087295273182890095725171773705116581156254440783402734772280436117667979099631286668848552993300312356637612486999916529495035561076434437101269474559300206013233189282442542194938968606812703913854969607943720777947310913371773919448908915506536137215931617825183209486775165712456390430668398151924730132964865949465789193208405901075975375096644405705604105371515644849236988935859235103595791820359682432416821461198244298031430891287629287518128037727128625841035373054441540886642990147125926157768944411764145079999966388916487708000905886471068523535109721017792033397622254282294290338099175721052707384217725586261320824415096439448812612672483057610502396340912329278476699989970553426329468148315799835230745545741592664781320885101720220227096506387153151093305830281247612030453173280582329030966186060209325609792515487796718201661989319677757592520128701964420681678091436033502581118836749873650366925649538700431218265292172781391046555588137953707090512938861103618682885444943891795775719487793181327919577415196454529120149263107477201948278461110423131666211099537801916369783410777196120046223330249787991104095948000552731539341261706114024995883708064254647472245988209863168362518634141078948115870004788813880155893518538142344256600881870723316529103086232856064455828756908620638635881864096085724652325357333323213407884468626995019034770899189794251886618669935572858866546504899953283408485046903254613815784831408297818445508448808129565062410950831608650539706232241685702594653612051922735694392156897395584194291436773848782269144207639143813597670884516054212429601565810569063976458883082268696340533423367914937598425056956924432257142269969452569728734447003643953701174047429633090854786971182292662204233815937807691266714297471222799643144504881288124091226865665122211239051531161703556010535111397147760504420794318023990216751992688287468637851969915945264192768925749977431830235971325305177998808152722376698980162334358072121095140399494018988215293794948935632502923984623067132748287484707309943241881065149716007788772322647386566680868031597363147414147554327257433661481776393285413628253354572412156442939940473272703722199001614712535888158285260948544185257254276326092153352093909556790550046917451365612811193945304452657029683197449818259431352520922506801489778087147931778207724297532003473192232368645285136605601194918194995327329739182699292655038492220441807182726668891243224616203629488403126483102615950294140344731142725229012706548020997846784319000691189146012177683329349496684621727909156741744942854899773283313417663023838646331997933291712302726455386060262815377148315709371780267991235517170046155737530294545449381595739789004624656748407441343498157429213232359038260944261715707004636427628984505438661085308964403899363060848217319124611322645303485592688405861562226074706560059113464562198307414189921401530036724236248758128385647625919935421864490990655719769345787883919448240546157612710927203794158985354043727076090150066122741780973262599416768608876363542649732589727970359854796666888441220522827900772333296547836674592106089724397706133071963152975379424526961443589882979980177992764119365198989198030788372058754226750166094638186392117113766537619848979512528082074367050620350489652628252095074445289897587375294555588285294671344659604307068283706889614331484766176307969726135203212721137055750503562804372352934726190165196966501584750495264448475974849821640942830478444053612177375620892160201452911165015547358173546848207937738057423984689481653716362111112319031641268543851482690010998343846666574978994076318338512259383345926205817876226790185254316149816865398018235075531553151480462210964825269507195365964546414974089407520526656338610184591609688758006366012551088034823778976001699132438218486186364629856906946292344415494394188521847124530146033321061868426751623888043440297622406312927809946765336098063075399387768193440692325035638964743543233747760499365843861296987955610986981407319796619109141890513092377467675869532371284199909866101818937789122784534369695265412915961064183063070076722814325667574910679806871087089625455403515695782073953351823334609763362424244814149414065818927975665298083436467412775513648348108812363961901192262083278143028358020056127848574290277410124634689488687892841089190715212617449565034775034383449774084300325613826304120798813679258915139423921381275227673324069102587788722057023197797996322513215787659920385257462301499419051215845634400983253882016543318722490266537928000787536923235549127923185869376068527528436571229310977271317743283534392008563923530610876438660984907292143719855275490464827053543402852157238342669515958201548256502228564113217381612854910600284853553643448628022434589598740901845701957505205635438569168689455701803786387660139712693918572332099313885343812285401801769559410515164538580368943871631888486633580356718429430727608739105984007840711813667924573161262478882245055258524392530604378070003513405861575028487543290801312473483526627331639886747034030163124297133700303322003941141977961271072095197546360734446736676647425289771212970755197142477057429580418044358670205239502615843781996558590097034999634737620036234893168939417229772108011221992208606165147310299393508811266737388274086208915051993021519749169817656541489335827458972057890109726412388535731007517141589759451355258654821718323064561570188790151529918761201677239524246122110082161877056284998914182554613633380079703267525412549850717442700449170028605350196305079281485030408274408413431202156102810843631335194461097848054400713270981168967355650898216781327611415836249069568623027083025724793357702437735707133059648005651492162008624819226356131167860637008433969239160342725996088779708950589317397719296726410530012294730618150085168611062100947034866099659309675654418406663873757197185623319064325308711034994460509759963071521930540596386893140268389021245537188473179166869778669770406989171385424448022860888969344693663662336820747416825708119031667321978020317305939626736546664872136187880619258316236070369615752738385308358939713122529119206731345186281568528082007465274880756172874002876789036936456749029129339565818536007396418169314347772151878129887175639972457159274923574477611943210910665844771477530250861367740043000580563615592659052142943432462007076969918107093488471716578396036921837167141930137005451591927719192226530872245114624073019671583774434763681108748962341361780435909541162150257868197055137467777166838587008459359352683402720831776347376318284505786611079788528869361377432366557169399577994992844801270966665717862270129530416419563358331901894836302813993647144927865594046264428744781803317685717536779551751708312866633798237168379098116219149765326932532474300932731723427626886816300708802951182860731421290013583215909346386837650661489048492571163371444294566221500195928546504159649703560980352742663740243798007963148784173121449351709870342331779746991691132876251586785900454571881407362154345528370394878793718160658044716351633529016949001041569514129432608022081202820893207157830643375100173505406453786181783696248021364557548579097970673966662822217359386094586173141915176644276568176002491829624915379888618735255772262173452593755205649483262750707423087427893187235521466326133228568957427228019065217252858756043697151669609245540218994960048410913136969108810520571956574052490891519302430392165752875262130235281968474542464115083761074394184558580594284482742560442298091894983330005093342258933635806004272250564261725711455284268154405202572293625651784258821870886136020436253615625157284744520179341443007640468264358476861839509137539048931049031234172250029378591310022523328820034008226353447306488629015398415884527104195566574535760493050861377415707490624306786478860094866341054397253653845332186251894188562766534950144087513373238969038119850636461697175825277569364710128451240320560679937763805808013463039558570120006070967656851930755813202067910842610852502865417946420266617376058397147112857211851675361615099250898340406340868091583452192710746611363024484184230700331684503979179978293634699169425168340377076816960795394994255683166076232200643823416163936978616284840123007439793126262246866552058990636202028443372635686812526548021639933643629723201457522399152027667462943586937274594886693071891040152068123642974869508200382762239165188432831337702917842326182103229358330183667868339796662738040982832274357601300415031037312218831782308634208882469617852954808860514413482301867976805372839475790332465561669519141132834397216704400626070305725957208472446767636239198844051044226584750624981170923697150199571745315651059938026322777095367479729519564696657083868442132033018592373468836917946048139501066869294147033235090753580513071336114252000706067425045299238825481189958890908986163703095080811147880936053157581534885726544812332287275616282682705500936659781632487362926536189729688192424772626710732895930717984483219507318953954752846274965951154945414419763655372463190923511970965847214627120469235216700346440248949784080671467551568989513623251398164216783627362814484837224551021831197218149927342422502027195085138628383806588429353532835331052621310537348755749088739029454195437626008995845920685537545480911891150311668517518186190265598852048864155178301663599936299592908654717564557236441894640604538312660325462069140520391516087580144778714797164795672021711809918911332640619854887475586118490521637985594122609485899856192255626245624706866784454818513354472193248813597096984963014334206323783763694331358142945333601583664073151295084606641742758222852839515080663262610557868101772584487163121911847392652411521643846712816247697838074677014791945542041111868992798087040782613559303649347580800863483308801812875277393249897748448836819714286842160239369083460000985335045775141095524156017484514608064676435383581753489646719367686026901838670763924679296209833390416178400451718675442768327955183985420542034151028295373820750626379591241180744690664669609487967526926286557832798299188642043326499216204183016999482876873469937817697093099153793254273104456158058679669799558642042000440770636015271423363908163774010695523235042953374135982864067445460209396957011472975931780831524658438032165547079060010425076803770406736042330988353776655417518729641599813178335863659288910678990838188649214568851522668609108780505381386811164086822167101209227926947607402414543357452340714261555728627583259696348175477259300452441421757352520067588453121050999064999163719378784397212607059766525910083451159414215150813316092329637427893794896594917607197711224231807362367685935200575363224623009718587434227055302510495478033280925180561626516871221164566581984025886918242610279122786409730861255614256889009817236462283203811178011477857849328137616233197029951456158927481811453207808959228260832988819623139736816762251675557435918489055411430690348676128275326445439839493411917673551849360153289961331265354288370339692437604738898162529860877931166587003281488710243473152534494549608623612661210350131257116036971845250856183510121173999352030692756835866271232640229582483930313130939575905024176357918369687847346090248575185270442156762592791385586508890438294497062736612792205254033059434520672678748835901459459451471670736610512178139012769897441708282840910019162430291376298013687894727780211491665957269917131421778683978771757986059808587717784215434203720058801982391290532482402259300503648277517483938682559079338721183274562295646360148000051398518028964253289850006686756581148260837997295875332861424870500460374026444065297977137275777468661226345128947756224631188576321205212523835916684721460668002386765535167055297763965488278159970579498951403309994060636845260569809117551012634954031696959862153621569455480333046461126557543950904034739780920850514694613691743860893701992866245473328693632663321681886335931892896267758949517860514117973930542146125457300326743043728540935194017384630538976626459565533714646112788265724896267697219264729558315514101113860519013704936112965971008580459158827319056184763572741543868774808193058248357655789792205843781184624713025559956031299526678505107166044384464516560361760937533010242727636253108941968877204546197097088442260676036356784170656642477595195158521957432284507182871821814283443449816747794290100677057204838191721896456598852186938672247243167481930365828817959807386481060406723936502247161411847616526989374550569423447665599690245614844789111861694364475175588480711518539168379090861516607844404622871321510797386418571681282440521510084779130387638398833737205313193302815455054993643157036262374039138587110364785969067646881332914754741954813610237126986386675589170935645663648598609995849340509148259111324986257374971597292059754440101910830849601445925019146686603249690133374301885681597997829755287674862400770994833425036575142974657758983595568273829712511766990927164036176477317743005904718824037527290549599748031105172795536660549662918488535621930382458904035217753357611638133214803689946548118441301460419619051054963145031476922782899106086527141462976991782522153671814320476245829375452553155820499750127016241072154393270706132640152198534022577041131346969445755759364854199327902895850639717638961585054148184167560940718913912177902455615873138275399379248344565162557825276830929803714184277839088191783264473952407258557566070928466093428239128363795503061682736479945192657919606854429392678114473938788896422653389355244957889438853436622703482539323296456456209859480096824055542657173736209876605477763130792512821801380148017861415658532268430798346243411896897105603079528298411427580869624973437632590277795342298948044865021987402880875035626321300476768463960685681921714815757158049698179611293001384611064326244527330811908165761653471590638107765314902736195654281642747136250851828798834590204519358146939948633681427877352031557933839363709191358737785566367138938097294582700506041354962032022621802732043002534540176987905451571546225058446107661884086928369925585121604693695004423344296942702013495944211561536746528764717213830611042844519387057141838271541215182803582672975748655423870308645532744701893147214462283599959074806486926759534321039222670957289130447777206342432652874773613251979775681508281563300353077361808011498880970489318617985867591891626071912297943404402189914236309343389326268544425181154224153252648219962953836977821344386423450068187658514582448062536163022118823354619312788640051212173180402411947474132640630791244579492560160727666498663139357849298952050956008326614669321612321220803385737957605920997367841542102074668531708329232412560513077236770518083278451853935644673206586181927408963026847466254550884251588512632288370780890480960603369921154353159347865742820545607371183379317841063402340938228487748988842629055996628864352029962784315645332408901806153232573717192080300592119372193821066023526865743127717939368960015993240975574111814449389253083776456325775935675787133401488669255871020662216003008245920273755189842032457089197688163497402482511574346415048737690559466444431649413216515038528484738570684889228292475921082598729088289292743906707975610018353367544804656336477055178953175147120019895032693167519829348158759769312804574412507433166132208090738066472468736782006660258914904435846129197140000786900467365793345205141219892367791454043764993668979226120504347112290773501849193179658586220086503859792927961192680053319816472756344930898701657404239262651129239439695596356198282873761902784164320035065425877344847958347131459851329186834561588231221559018430988764244623094148150510217442061943036599924020528103016491698702381988032795583311566913384463563516883229992450884782671072340250647086718989773850904068307802285882672614143176498931723985784659454193831276942253677915530362900268294018768321997567281918127215932673524338990029665654496637952931639029495854613979371694490216387310166759863397418124580510455677474686815236929900767955866185960883425614458811798566695967962460880921179172563284025773865182873084742469888700672368069983261451692109889914715492875750236011517729363929065383494779324866967029296404003589198795594705179120184819957115377561608282224402880889591583956257225376925809231954492973440262239136180839481398538039403619953027105246232762073101144961480577026460538743393755454780085654312894933486820301256541668546520655400192831638201846117308152302753761455938667500531749591627684513627590193880652517021909049976183385836203303577887275512411114788158793876363554293414705450817298068721655573114858048996310993453925730624941264708546552229633915918321361261984056230388431981254464299857801950565344298618930733141202671797047293718470446875092194332008263576659121870797271889103421872636134011353870584971858802110806415502610710526856578972878349334412848966717702993009121309097890864047558483609933239647967045969799506587297353395601220676252109794218128797226094664112343776179531079856839470095028286524435414111131722493821427589204337026758722744846094997082191099389679789422017804533539672859702020674979243297369337931646779729260028275214026573055252395926486148137202331955937124645568056265040628065837028446555453419179546018428974654950933959801147926209628191524644868588957274196005302616142823229973437963411119593850223788965946222568089126031729342710704192014327064465322556867669261807547713284240732228712885425122729865555540104659826905505675035130886575911983928300318642419055033027860849159210786875228345516526891266475155868178206882116548066644742493736542529055301700814734653026305735678735191434677159094698639676510456547423232153210379774897001844714771638732625601107654791703879414639665612373645955081322713824777360654074299545605965740269395687748480178630537213091989235682115571796911676760363675572623322590972770365128426345431054575219147055984898019624646397711828075462666489535661849234026281941122056045156992766288484273410857166652472532878897026619014736722617976313516268322234510010120571891994745446429828121240288342552048038042743487677137827868737677025085136539621029490044303724946806994461846777397740929020849825623332624738499913153994121537247824603868406973474248639581168951015241845756320607208821293353941051997356528236958875397406862184221498116876680656607523181118272212301968026576019531144639328197352377506255995941931199517225779906258028107313107106861195517748297853037994692594393706280499493455116745516266851337371684540694621174069334321839973552527418672544844660580424124995153973218182497702751052194099582082587826720252068661982582162649077960899367109443603625611936370934277246981840567110648583339848857709469025891288531995899416041506761851543062688127809831848318726383372085343029600711134940463138254223399594575193395588423187651505246988522286707994214155599752616920016294288017754977073098433140915556913718848127342442608277744771734098452568305581752253406310642873425430162981658168627145806329821666706262559616520757246131792704245981905114572478986131407409874200121481403893784869947634633916069669008693211044869894925014610487875253798639404371993537265786589440347047360512330355759875749697032339657552847661004598331051428841729275755805307966551402554452541098382090078438104861294555516300007275388402833999315282679183594408048862180110206540690173753799775796946936551176022257860586466380394811814926143071689521005606785277918309489629250085748325255241112150057687545804285283408909823167106588919987078014476085883824632115056512463957470049629272185477439557341983763582881403007140892018086492559775444149765344099110720304864856257678637525524225145225136298750155742399372588670976758404300977723530999961550219492608416253427572984745047773583820589319275026121554850483714770885036217294956562597104242510333123231843225378370024404188238200352043364159481791040334177136194333399812158083990275398583279739997571762986976521550599371165962990841912534031247887199766567039192316228204695528701306654198792890051460288562796015851408482918742707079590731771272468862796062725158606845798481922355916105502254778513749997427803856695751118362047592516697887115859319025230722183673888617308592456096397632155676374619811731338973033814003393471423380627349473896566641583251282171189582218602449711146480585757911554469330175218487314698063060676368245719143826170048078286402575601143980440675189546958359677986486275603895087989197347830785854785718701765067513053039164765896995489443925750288899681972001827246962291025802444453143144185228629900493122536167494363692127991867961033110008697336914662170844848422204213832908993619779388276876805397725308202619081241813583296938726092525685507897954754868949762546854032758992866884159632601796158318662650478778341044638963481806966050635017512333788717080141254671184261042546181228092002518281345920023990097064848621923923431830089955083061900265632975967379441854240621077018092183083056584764632946284914573010517755685553477950295584180846704572358683456427557381107927953577103531581640078051078475907711880895880714531449217079949572716280116096960594710325395828395144384077204909561330155279838795690517762894547022665488330464478375818972778107137308163470644648337806345884627426256808071345699901349833379687527092604164459003502507373606274732620583367489741625200356827015715165023514433541191088726672532010196345027947566820898604964817525722359550413005583887010564049975205600253511151323737220865976527355725935769466472207480606280537331823107124378703521624238178726220919114949267153343969224839017116290957876650809216391523603884947145920198040060758861618052085042464704420559525744926725079006716476186623259208320287197894972262136469682478955807282913285387566598265282501211497034244536730179602749806389922724219970687407615786274085903683365303674370028358462555999136445805322672224950648686869049862727359183356514211186295301092621227761948835560110993227121588097512487320160087605462067167222113400617818975472460755096492775067821409468306675862502821236236781042682037165190213792115691120835569566401974611224846659042233759659658716045189694457529113868754340636668673351858668062274640636821017832123252752148863488026099961482649294288068036441119905211230784881828700308896945711617418624006533581055531323702303433416238085483801878844610405194356321511167004472873039066608709003880518361392856378665767060695200000437123881917897104725259346014093741272188896372923395688247345573439249723953670425329332072360767439770733966926947403839801857710995489329725729668974821593975595428655366728645182747927238354215206621116244390592720566878434484097478575452802973419431406317314718776489587554037727705061499234883348037247825405327145384555967308729000856139763673880656742674357009602757100904731262710012266472314479225624188944653973449134082476738656467521690824801450370013859782582873420950904299632004466079449075764762461180776060854340899341616643401718160879820161398851651542064206737233226881373832038859408438350087146253529428690796026651382162774090942155303337210605357062351374456613577932244767341060899946663262663259362062199689169749894393853702732904308277055565776119703631384416420712977094855665995503354477411918775858711481893484985905947307241875057068274620913379857866639231525697282039363372223502147006979641892826315309014265933711050989326596705249515530465520034365331587419541131500509358126965027629446875464036772132275750032913671144416255014702262920846458646057763983795675182828111878183748052257555488104083771627138752204320234196134076808462112531153845433458005955722931202404749578362194337700359965437808375969328236456950412153138119745020945291154625558525427009500980577970893063955255147401623952549092022124388446659352284306966248826732845022615299919859236747421941104719563544088566235008566058193895398689556242364190351697097240259108622054686503447975659282484517932467440722716860034410818068077799197169294555475795964031406059610383476466631259745776811618507642621093689822865054685143824665571232388412490206744911544282728072573695434583968818310483135882025422395618160929255933392534284105359035310497684975395429502055802888316393079530832151983201838881494925150541266692952995202433630567577593579456978782325753005204077139647265797985998330369473061882869468335854336505657918632710474529482523482824483006446557095176655463525001647845910531192320866782475948384250857154980545016244841925905174111078473419089487065237025963614579321061745208860529586530299070937777888248780552036457482361661349086152816403091079420150924316902642149277055290790156522749817242906076591723274255491117862042095378626678422911154749195118658429867899244869071525230389245948845805977958246715986460707426456518468675345071549237508863242101924792419796118897671485059399804940550045235260681379473809228424264326309313906565381931220813398633348061012356025819010813386880568599333586219729307084269017591204305260664006909143297872951176445922229590862562421070362741005352404153217159424545863494028263520067327060383549348067009463430772899732185399244814746485438063841894792759399671595616853048067960181733514265511072108089340482598884421143139127980956702043394734863975842400993145495088044693348313898562903103763847975082763270458335077829146378407658986011414841183863470713935413035336363353674985406516470506117186341397167113173405555990483653558289718998907244233502348867461179954578079283163806028663562874100391519332275372367537567180202332520310203161746357727576988337447587434315487806148644048630174804739774535893711213368577266149115182411741393001131229608201974060748918157782405586008171648282573279270462947849512898473090616946849389032196548359505668040956956829895379408257954888102494386405956308529909134584757360372019942594323185207869521135212419653332044349860189739182519576778555837290740563572155800889243621398426053365837016985189548040003789491520915321996312048158762833576374536806086004478792877480922765222476332012244892841272888093736365615723833358034271883565603308149559198848732623476608832980844711644363794505398400422431997148059964297010874155143376366500134998618914318395155111925434793719590825224361686483656689202817795487060570571272391914333089275461996258023150990408522788188663316968014561856246943726293076997619969286268222890627686988279438366661466662276424349619536923647847722809911090237561009985031741722058229575351849978742169390266287195519971229886453129424413342421026288950451552941449672877820540226837294723124780232092612115435333857194915739489648109476014739782161664570160574707870541878163638335431467075814903504025784518505812070416091474761898496175060533551549886790371982127215580442975809394537525617329742345664930730369408779137567844242033582963893486407294942639878084731041047918339557634872048011818294697034545123105475766604303205398317223975573690332815048846928297862949090907509926245720200038017449528178605305004598672829635668705736730666893468572810760810237612668913149772544992686241032756253010278884766697902918611283103646685462222290321145468030490681349710591131203185173985012893464458108372844426549048112062095680064224049800954197442641716475450172123229859307709369665020929192882070255620640323476393825191435123968486201410855451787315163809304363465470295791677730837777436792270843710630611277518232600014729747958973198342462959323103729019793591222182421882354132652893500033997696080200333592232565268750174944086096013673519546221334408207121936828462097575256801468739835548125785887652720645047520113462536077378828949326354760075782426153222407706480678804743734479384596183762467577701058647972145781596586172403158217256357048463637135056788886557214497653707350960744543749760301808367755897014068200108469208639789453917194232454576629042624764607903384781053203351418534099383149528997590352083401311495430210342068757622964917449269626281374653776465409603957898121947665299232957509620071628453845440788161024786987992848142758924985781805778264134262341577038001793083261012729066932077033319568080292367298547786337036234115383565232352137217688311476270898602334601695515414866782876797160587704542917649783593969592951095100691454940857261234029153445898117457305650563799256247011615249509809127127554018623152817583235700711113783275883057382067692802817857852341807034304047716035692701204890047531313632297952679410101019196079728250767478222433085285547663405280388786685621236457685808761039894732155706611683539916096706768178456300819578525573699194830678619386711610676524946522288132591742788740957423123856713221360362800105897088646115571561734994232716355654330911851494590777341577957245207620207547663516217818692752980792550827854290983528994114055733802687040523078985423122121365907078135188721902827051906824206971356539319326482033818829811163070300179537253193279371386998954156759611034354388401533712185801532707229318191880334364276296288669141934179394546869367198992877672833125509640187267525786716918572395065264102869067116376765672817272824975580718651674365371467994726499008697396429345348077425421727561703302304637032800664222933936189294630339886687692585474181999505909834671242218665856214497951892395850696573342348112660119302662547655354740424226347311043382418428491663150357071520810042741517051968729662668582708529734828497283642168695145444631470405768208003813598666707113344757533052299556766375213112621753466655977602122370962720674292560996108190427002629519443713034075791540558247327352148636217214978853848794164737498035061183588146012313528075602615732096350884780528964917077451254082948671969632254617632379819271307285861634007633832504667332204009928024526529573511723615574896371665352912518697959468864794628981488839634533820259535283938014862313830430915131628213317143351969382521785248064784533047304326334655438920776019708558581177932848607421193627976625078265860976562101649404155959991298991109368192270417217872657797021170697486360545710804763098180458748866694938935921560099418918787985334099423272882874057305732931149902484457994389566331524376447289675388021594522500427642285473485439595962938792327794551835561901327475562565925909357444601538866400765816570930013912897188081094994313636977925020179541489129931681222630494526584830583102702969948865376809562469393942906664113348045512609912343053844354857432702341015396691595669717781965770239376325504148315944007472739151834548722979744798744744136143511731017704806174465644650676487620956867207098253718804846394612060076947271081575558171455267284401879514232036442542206378017177348373117532981607977640094934699266632920598802227006848742392231375353334781258072450533618218738935950293523114266221054286877241246893246832130941386102059463175053983415569068235012137908934013101492077189284622222779851896100324036444079768690268698522063061127010547586587647170182063972015906447259214577297911076190723476438331864826124361277027802121219812387078763297802154446768008839171151794176622014804773375322498598478073319568221762286723022937092770724621394880318959168570284223514620639019473733324220997421403480395075040738713311430562199345983907227334269477470310841631005939930472651894741076727632928914029616098669497664707329764727395913752725365399431611330348747645237112587318419307421494557498572772273909373274283152722624334293364258574909730561102531568187050372718072723701824837056552591819269979990888874679259573039227415938903043668735112883992390694047572655529047863451162148042156960404478100052803353016119946012794722561640238766666707210765179150688625129841255233740936598332888230261356380169891440215650826628896246609106328716117232933983257969010820672260496824478859467648226621783992125137959554642360703915487955456012905708972616416660510998772132788984215213979932685485319324565385297612501809881443309529762494787986371381714012572101362118704116900468109737998815337946224278340019371554662496368451848872294276743963700024261042188992765325863412606434925041460325055156200454691946569500939290171417608128036401081558892781127887171822614021158992206632537682325650393511724118062403618531427760568546675006602303431296399635751348848645920792137450590654116797853688248748957271900917999810195574470762031686371913799666388387205213445009284647898047008593511033124063960898454368613749727878746218730432689834946219441364777811351166184041826968494939311396045846701310908020814608922067465812671137768842522049868251606056634775577016408950071589401700206262584042300808266637335232012892970695172876979369792955612311796459299478466999161331869848855080346068330068063669191502099865458643144141542601391736324220777436478203884947395673105192571848937808885950760729288711631031881242671627796597540700535852258243584467223678049002219537225503809971834256842865508355361581858819189577065172304633387093884920157340730991701242885673210359035653026514610459042066665028466259338165546617842377755909420572797692663349562112427802427442984245827098135466420243320229331011125159028303697277138207310538250133654901358078980030856154381907621168992971514127153700848050602677469295436275217642198309094431901009047355383919236600210725583600194775251041116107910687400307411271525679791122505742847483035371876536209606660950577158822817076041551793744817560369743657469551993783338562398869148502325413154950516237617357938157597827097097781627808458403964870197032896255961833055696753714643750918592929209754916426163669190983829483714820099361770338033177523682227491389104683588637115199354692702594292847458625674131017696859145507043359910259230100366023875054026358607537252502079615227106442057693633520268358763773741287820035556265865069095918443266907544904236124214191941673008128435340159813750459638953213936082316428844283305546191563584545349441219450214725128445509983348562296340705698444897004889358233368974230490760638829754395805200007628132336839859431403334492024019565314232817968800188473060788790990285975586385813199119428256278248356361198743246350082581906236788608990469269447418422424795414493543456549147463059118494377480101427005381348954913582475519977265155945337413617004078852308309751288029103427696573893775221496209560591624596909786143153781500289355138471783003032557828666089404999207328966110116838189819415500029340157057440424609282763517000772188959903523289952979995155551945851428311813721808424901812766748237152911890892642836762618744836153782272059719197047195192049116087710248628966934476121841496707657333659969811366095344718289595529671404468779629951354427671450613868778191995777052084890599643638182842480371373612146342104564887271783065685750061536909924033061792417864004153156383341920117537593926828657329597860426090037559845798318646933557540750297386554575801422398481009587895753936330375096969875216101307001274260369713723246062429463064045678176980835759811620325773717885825616905152601996351396264680054816880080418929859637037926213464790224487024119984307731929390012600664996525649264917648228081687352103903980715069321548362620941762256809657843709122797780819946830730697535114880795648368937262492185512784794453611874021703476498090161351072337177953521431440766145039037972191031510298625415838718865197200146557203900135286038718090211859903642347417365302482603376748829332439061679433431661577894629748019793136383782013077437249845874530692215475991848112306183770768252910518035293441241820627857874369612653073823077968601225276510868320995560813656318611405321320602918984175533705726477225631210323513533646178077038807973720373138778519353209574402983804695575726098147645114659638786795891428761014127356900420077133331698173857155408731200248990680132107480033828457610596717746089740327601553296449753133083433351397644447142665057247381141847489254422274853980948244399699431621566993711716535127572775264500224062002598345665005030579106159394777447626900084356888800375100869618762304303923788695414000590212339462370642153765197110228380681162257942609881035037833318936459708957586585580652855903061273596274004627607298789351176096565817597676048589002408969139397609624302791288815565091137371644049909739044249823495747665517334971172443255746254145027273270396354731441831930936407271238822344040444955381107470860836284103325503983112424339874357508627937497260378215975092255178241003325171686635489798693839385658526882190317139719164201402370940395658573286854755767400169142644453625607217459528821381066999571957141614484742917164498034206008387523119141109880552089675875173620604243833106689128544371911881024981338775034269492832847887503418728106788378403821542194473931465021321690494911284613188155678424495710422595265844665333086463038572660281254157805286615590119350833722782779262562771377255258862868621771791987170289012682597039429275036196515411150809479738184339377714155225858305475360432713734681845705157252046152290621892348214563009547732710094709789987515554738135962162589814404717898949142256424951299993251552059823150703089591862327636591833512675327628327599700894862836898123759568214116225154581409636121447818397054972004049668666798689858503597516439161809093852519580999827551038393735355488944648136739517647634413609659754166321207779535051190688868790056014432212389252455202022623532938582884971853590581593181269879625101872654263306133354681332393403388650201302441917151364538698041015872118874538651843635568270977083807958174984070767536382541323966450853372076699903320426530959312166910003847733631117720006368012576281624661348337181311986082076909091722145210009083839487670614991353828118062411462070328694690710398075959598693080632832151923943027537039458806488287590043988442231599651704586295638012390614600225523186492527274315218295007765246413753747354193859802187852335754215315245867076442685485296812481285063610001567879570109420819482735686046166262397704207818597689706762358280266548362943800174709982478230749633789318773883914893752353878554047505169113226776974226852028544331663548042109138235335232677265974362200621642868464731382935252451788662193216103766888429157765308794235263097091635988957430966661892559233250913648247081501775006950592110637499582023618891018874271231755183628433048368271198495662080945978725249990461681977644898505370228554094931849936463150918079164294536118980752838808889713855292836538795682655594014150071533738563017658455909970715319435679017227876583892147495212652024412135785616638220984002045655957023855366209214370278611066351759500490338631994108535735298247569649500545947596170256901300276806352558938621222778751277877556668158510343651812942403601329860558992007176110871907861401351816401609875404844166197870101094412191539575557873950596973367859546610738097957128366268568458965282360804602607005021812016494332533914695200930180417597225838803351027984035914360555558313073981808745050039811232304240549104551592180543138736845117258631444855646247726729790325902306687673211916098924005219728292193367825689727730283868573029923511016437839845592771777480192307415296774206746996982229063800350965572630982557320039123041060985989061172310071307614339455200535030269755518112621122274241172734525703170827185682377538893185447335472741199062891932244419005825976191642115523481163519839679045557229519513226309124585474375350252110246688474973966288903228531387312150992267261457936042787415633084384778521932379271834799537816338653824134931028330102861776832184636798841623134333236025982644504054668790605098818950149454351698111460766354756206698769379979693156117354780050220052913718920843003159966225302802341684242258513684864139965904574982738734401789292009321845473262312804906893289923248577247020043895085327159187604500829374134597316505332948952629386841326067717799713342662677470145650307309538212144562811561591645500070455676743784615044533407393890248158882202374178205515620191814913679732238524137588960007636562402645282776816851460183031584651099463925776211773191424813606391566697274923547391930179603846591244891400141479557468462563216552569880875220131908159601721242608641746103898009274461521466215887413966081933983059384378523871905462594910472539645108820188860455536268842822447928110670686453313247570807212858818829044781997037561357735916491675645922741611004993218677865534741159810575459634564987036685845495961038066947686827454244903167317055435403145520396756219905739678936513778873978631003845602362078338040671650269035345388653267656077337919520801868665139307093398649152056277283027256132327391076026078939568820660483561515859810865605929609108436851579851035115785648452216950363527451294897267708370893856718098469553162381274717029696537528340030288753680595829272736834362345184111064837553062441293914744536757454432934496194963807379587506936098944609006404652026819224467045946790938928656960387418590445150018174872403491941552999748584749660610902937184058884224043099777722383052076030524826840979887140841451807019891778764431987250477684527447008124546541694181477303513640580234410293764239539995041060064034809562411167275550057409582723493907251006379847932792131300660557636668699597847479976771452287175980016390399329026461672878497122485627373524102150869340035408551834107033449022978565579231062618394323289844401357374853509791173936575311276549137574357828352778667068482355035215072164082365264170379507437299090384880397224229919792890343789528742845561383109205799748446521305425617574384046825045685959377438763079693585115672581918151811238633682405276480612678544308444263400329615901141657406799136660557109848312369299457461194394558630271064167794838149278506939114397938606785681895444170554749307990778035941131911103812450407040387318341305104547738841451788562798794176145833070446448148201481697354088440812739096696346222533613691169713988937033978454026479047368552863558044420335967380450916056755270685996509242626129938584002336425052109176795905214164245473787343817859569408536070626987881284431319947970422971804366194517442587687792291146638157458018909161068988563639365776172262410723443344262783957619810634163335438110159817476518156949717836581904072157478540220591911171243301714054618018338351301300857483951628297806793546576633455997260522354472118864403087697688479574684419160313236843442110722443693204716790767490298290264135449637109577410771833696014995810495701496713309742283666339613336767173106589134224175927897841816116750979206475641901441534366188390276343632817790440338760117104340295013056226120146629713297410386926158740953156008396790530889452433807658992083178687552779935267147249024093362351337436702316501574329351789839719904980806947634033316710723124253802486501585239286390325020070258779883710751415774851082884607454228526414422358082832730765842451547683670086456309556943271622493989518833370946809662811777709060833489083009499238385823097183308186670164301040958679212720455377500967225761097157775846734791832300224256038976482317714809377549992471967051492389961806524864700352938600215002684140999984943675144258154645639400646785135946812072173375536230390589056854620839557270145118026280008158818408521331810660684300189343843920216393033577846153236198283866734792039678960534682449570322960622169188545968118268185154435976083888896261687460728889508664638359593265927047215252115141205788094956721587174158881176542526908060608968564678930267229573953939708672606323133071728340240131440252436623629133749371807863815742371868946474939275567539521130312936536866763141228773584060008875667519806362066486270687351425269730210022943326951666702336683683093335267737523786070006162778485477743530413974576724368055253925208272939199534703656110311307254807827196136150133028196727998374365427259521803077574144715199770254904597402369489490275164952893906228310379828207717881155144905248696132448486729690596717922426456146771672437181226387512505103846462548385802345700534437324387854941876826646167167171284287124734788041877954303405236508562723265448164971958665785243196257541899137609531603687943859718728713353288339806602339578419625888348770233432847651949193942032282087488062246200220809382653531241142968462683906132817065873849217850826877286681478048768041088910465185204780289250199243635834920000569294345315710320664936289574934572801311680766596746590931987386287807490469152006974834994574357901210467758216207701928337971096439996286132852285522676313044859615417353956282618628500552232998784941924583423616016977571702315896892736814800060888326469085142613825139429188017465780069963919477116900785450664223338091432048923499549734226905044722006828413998968074988571973780731344216982692121224382389763746801366426805299062351259343112105327734208117680791896242202629674484988555729656603753253643679476248351097641018318233403512809256312437420578546054146122102981047996291342234486076094444093789856680607494555851537790830513702396739809019815152229674581858095427721239099381047299066651981733518007988962645306813897533863489237809635592276159336625156926587231159555333710019283662550694881810576486572147057952864408775504034119227353601426667275637332847821694879406120941916106926627480588678097242145593495594884679346754654378992587190584492913995521883077324403131599330918314608547291042389686485153611039498868992937667025329692660048979548764945674291335144040423897518315891680117069549477396329365563636724754752447966895542279441761066241753283443067147609846983719787376235103503915062756262602142776221378819132309340256979525695844302511359783785483797751546446776128084041909321669274572309592250613023261670710374608111281069674963692002371949699771658359652815606200980068824419360182610598284099545810605845775463999511275835461983214298560614757722676369376666913216602734406334392177111868861008096989774239324870025208568723405384903048859375775374637016532958971425852436094075291431323041131942025613713575257300155733441756884827553789276044105216588214505082887275221194994795553915813333284507259065249477924128378384416278879810881315836666476579835748362987341649129404578823219783573028403041479868059556668497419388804680366811304809328768504615578954266909092823921831728184703102404847036602538335309319367307840745876013365664706345297120638912690445589329158727391158488886034413298858157937138054087826552372405831157225986241059083557551839505268235679615943461801737216398279525181355376367254220644973335582225496869782171061861840521093398372838401695449412416138273117606280960226151687692622281775870279876677071635263934540212723598589977205258042701591165795613842776445361725427565403983691711252906120464326257914389790671980430247096424961512664661636964923619982745232723887738111189186639613019281803393611056337180954437440356817404750032847458375333744659289786500299341806803278645421689902976898636940675877504478380726768007804122954979287595167567418819210804790912138407203632653916400573193474844638575977588689047979625797848376925844547865060389099176310147258195290044793069604392258308871794869062652035686558366312433840734386567517654785851230111806546783696018330170510408761588088130037728248826891805256638396287377546636894351058322228879947613887397020052080358780369177743810185010518698813264831313805099636893626580327717322793372843551386103832037987058927812637012715961388205115883376414454584169260422551849704169031647801024911871731052511846120917996135937001995663794132031089937525513839715054757892011528848366699054233546150569038228822685196086637441879410417381826198687296557658713160101682333500161263873841264606651316865011599644866965460855481419483903785795759138393340879296029283979333282148474377614234828865908015097876395405976329583770899438936025680524621074589452556794512758588481175427137625762804927070856974844359785827071668151711319453200868362263542492500840832896221724410413951903110395289143003159026211927870453433031372222247613108437833050680526467403061617324269033616731582268630822654531507001566033080729360925349795680115566321830253494038029041532791151029030633882401620395570153007886025004488408978404477407202677712515118026822356480439104032899225423594315820315523548003478362234633943049598556098096902755090145435954110425605568579795404666540574787882053109666854922510158029697876603557114320912602246902965775405497751570624103223849521597654790892979263820979437790080610193560548459794164288346828310764929296559113673439064249967178870728492377084912460248684057132039278701235230360252153368596188215854657656702827958209129070050413392903401955239464844892039901415746084209277067348035572379815333022373747396966234409453498976591185274324203776605134778129798055223535949617035750136990144722779680368896537760734236159516567853295946143355475317620951334103071670695269465952892309905192435530718007903354464053210553933521020746043567982590318678731221064472300989136793740486439319265984865771655059556507036699063725516970404126217508393254335595401642932203517971166994493538799152899343071819840942504500955466569993946609863046515948885372173739463793670856074066824995125102292831218019387606877107934771315270064495116540791114469810717773394546842442194852461527600737951541912423826265675741398545563086605627150425944737530813761250255601565511318908501861809947938256014477136595885717077616638309111218451010788383240065558816163466964595306277450403385134270382396062874746182609980313588110151724914524977828271472061681312113791544876321401318274219851202105646078023141227598763260709607657177235571358458847781853674473755318282020415921749090453964103530795216543975943032973604708418254343953943625597454173162652407970189302681108733077885558095055857687102455913692656817286860814886900426643790634384534808658253152035218540800163353727667049301978220948545770590022426855368013083391249789908442984623482805175428862487224180314831709284731857035190524521599091834483273868136554549921649971015081734024331624785706913498236120101626467788155175861415148677895180890277205333900179601846706556448088781777780666444725484291785460535027417264500188366296111080515218451568755260591000008404203913969851245214556664518996524289341406123651567986318775336694427497982926344204442423578657617463959047668173901712962672117523135302389135936363456261288522784106269302530243665593280543160911924537903701621336256203134445062784863362134926159950131039798400863605777909332420457346378132966881169884656519764134122360119580517582891134224873767427369369562373861802014947129553004074201074190672891051001330919894236900425059255777360050748913792003744052289678061659587687836384024145484511634908656278048820269446153132770543179211446540369060929227918398559906633497133748097516759539047899130224406737541088671149730048097237817834295359131644079314277949791998225390758728160153719023710107297930853804262974803759623189580269947651542952093752126044631803953641855850528162226400061166566657906683026134932495820325573787071429292619125938397832157514983113456980794641060841563986928272066372210348555079690354018121788023940258787145522986315257776584422912356053886350129294266020299645614169771157464979038858557442777292636253778907421715052481364374493702306595998039098515719634418990464692507172623907357582990071268715337518806269130431435887551100921900340895133135304575051482864854676365289251389835862915230281433239218700855920768872113514153838889278720290636972209715531260370638396595765927710023536768828512384179275108547158534649336264382230616926415176161834332731865612122978205957425657412362670751256338169200493773977736260089720363684186985219368257363690797813813500576274388565068027212057499003556753752186126763634563205621653349497762454447271493558413591878848939870376733988664280172143904506516428508104558380268765750168500981030623457161369228208608135956399819444129341395617050775273100774645827674932838406895002751969964669325454338440397732985934618358995025159284133284807799459191961266451189218087581970802760394055483648551290857853931858962664290153937663293855428789963848462622745214909237586732797929431119222159449729900255638168695649548273053306918569598028915511350543213159724254924769486545259965706706471202731682809832331693963957736606836462649667224346528916795278903958040543705170683456494283103566895936394910077992359839910889486678553944641276831121931862049165956784392115396150322176007484314972806185119632479592935914330466179638907902595805710847154477733170992037746081709622636645439072200239149266903709406208439008776004021916590994666545578343283753363552681848310479860659604517752563830390220033142327159004548533568826319910191693336061775933367787149202234362521857356184606614879861409371135078629676272253025184155657468652406639415333820152568084944216652244465335026239830666760208119098369239986765145428850260240157351750468409241391654326664295368937158449812423494548055512758800763213825928117307135920312669551157407817221892856983811236616327339473485482270939825413663227074376115605236054252527771530193097877963374268642583815004261612224537577895498197265737546187062714981980765024542675278291649554595864823955029283842879784645667254774633854705778761240511827006937755285175682752650930063367694789863821885245287554886947803634728417153580849837492686550083600978072821423576380499090424251914371747016354358335065431395971277900615510546177434424024372942209999073498343519971635504131654074260924993968219896749150515320858266721658342785668668795528982431052913084640110400569961927103899811730415257149673549758922913329449404967739984532267404741593960631516509327669313356867882768828649374627670514821316269325443041945091014575981259836700298939672121531531831532871411728335318534787629631725883961201456503545113742720212293211808812101535972121938734288677631025826019513376726884576929547934014725929098504281351727369652755701826544789197592119697471902467199577779824785675591320466877189336873316543611261289212416447219254812780647357660932771581309378503048135183557818482579334627322882758373796999968555266168325110695030964302687305930008069037013221603734600284762629952657974093524290326102467824943066886915635553864412615727712377039999999556837119785301917250467523391013504316202049558793787009802563609024714754005514965082334974645428129200212333994630330181756890922809553417580839322548096842270657337548985938989542556085845090082784332288959523257706021263065893892138594202833740357171210148414111079187432867022865993545458988542334527786505583980951357730844404452534418857374880552023582243567292776780428400915776122087557501633965781521376836551779671432383380420878040323998351014725268991906714234486834537844854546689439762620263741929465002140085016389848044391300038788365330603602625780916076752519223228083637942107519130458997410778169171863847680186891356485162677785305429724641163151800732990042530585314915408741288843856865377078083431757584454937155648688902897202282296616560947011739046903650979169746032721514339131209247352327919842329403995085513491958030198969141282015519243490032319974696925438298933623156871719998246326384649230582966395532805949984046010904077315054026134257226703307206608374452661776573599283005340274069074625130709040411268147160738775367334711733526120404027794571721095696430670282587937909190746568790802596481074192261856478769364882202225470863124026631022739877859394382125308198966380723194938886934177115529615275863946937839566522906125530115950223671675518435209119725749641463942997111797994791399510944338674345606045770834671630121736197661111383388560010413045152288655349314911755597839936849975242939375259051265114961175641264355501438555755865920407197244016490494734179748965018454199586558700264926333802616861685260006570199678020920154888287633124843587046738517727736830419224627018568784483187420403207050708224254575519604807832855486693355838186286407225974150717842459612946510403224013287390341180954898652209275629432425545911145789712023154195052494273620156465734834305013983803987377398447063900952384996722353696580902054198426238292354743488070684635696342638284521908345992825638981656133961403881758361628315397605743039139723641488047006439781493317089919547241819767532954449838809649564898660747324869410908698961327794488848539921950942712855060670618175461506366399321861131823232887726131357358827182395648946461443070699879861949130968264298702451852579562495559888185747287127898150065292274679725310451309675015643843852776402101341915382864496844630669353014781719460966544970843823469216745579051923371312350512519385948590216647151953519274481019945573376311159698986674465943833939697236822422316635585259981396139764185172183483322188480563423750004277531932748082046579883181880301592219636281282040176139703497347521520153814558711766839342819040693804688717259907338225824229819579649710796378547901623461858603258390548394114003566577361072526658267749576240445373969745769395583569341766862693909664370959072956008766014313393231506968199959436218941781458055271108929183790100001171736355683981345902171293282651997657859326356917289278050760586130856200733737602910387676300244877108449935810059033340663947932768027483707136135527752538645314079492307560971618887120794582429019042235715784898125843738445183737591288221428456411437160543454831403875058369591589515124476695852174437236764649187903374245328965708693948204092700554178495493872677521755552387438351736536202919698650140121293434124629428909257230694866038705103085596409886764372102725871997485298331863982737771265798122554776912801969717607738896741120364057307072968120035843756297221519094632061298738862241431101145820800775183854629211511883052230038333521854999273748928888070106233540737231033281934155429756227601642780512062625397826046733738666781280456255023698963879532014355194391506018535095162398787165011723355649198244027467947918470543422337702443005495811108325733115566381073002240410543189876757432509951647757370486403817226635684957154943153011825308453924051320268252462026821904614125326828359371631193844621910475082087695445562721773453713134292878522411443560471595121782275532487640944796930554645612815202552874362335379047546090867339432551107743609432411396808057390773520674393848160228398020152416318847826325467455494664393821408469217620488646844226435410248882236124508458601159929923521898157424487821050429660915842696661124594994199700668879726755654962833788829646087481454686190602945232609563086704348209407235818153508625436188458174255487686259179910853554367823839491311643751324240649525964422581535905148625140515998385585315863776436835683417098911828602823671381577509032801722913370285654453420171864067246882787423606750327272778557063872194205413030204810906721111314799739658907057076941863175040847246673908794870967527052794123530885894943968881891969519042598281360209828339918896926484511088543367342820581476377506958114866952943413606138356596557159336224428910475452183797614307348167253451360996048562358959989714147918320278143196622905254911646922608010024959782404518038180141329123370876068615027528124560869541158629716327021504468064881333675112609284567158420690002257848809583361562459241587125615595334370918288977777866557969982230933138908230814369580912565793501819561923886202651604091285486591410641123767801527471409558768357357523192391809949808883107609992290901278238145194696950299791695633124030368760913012288819713712911058449108194133928840050099308093081667861260333542514874633065700223957985200033249092232650178478629958718493345564835014829163199074707642283485162951054348063870381145175531825358853232475231270960876445061424891859057208674179560676988487122042570334884947127699879830884253521383458479062030365640612127981171777295792733852503783991070772755145546342761065329762427273083861573599738762906171690132201117246592527519001330221667393531732188780899528038263266907086193743169981131028905727724396134253041425123387080820813745156321297907912803678746500946783669417332116235841256535979397110941856411879501112787289732208632349681228542042430924347307785239210968632038976771937824924252868400234154746884870373289987932248512688299034072125767443588719666898687765310191049619500651284456621635905005752202715474178462501350704354995179986896540020063125440151317542055177584259875941217739060715794808315871861810712674900045230771215344690889929718569255359197823243646762470479618411737455025669325721237150667616294723591969717584208144682195974522869265301737302925632394728908120865260598279152302924918413090930058675013308506566325391011503805723319708092165706137497137088454159718772449610369590132962421890110573212199392939684918244932960583592548656570222126811032789741078819661116092193158931654368553556119278837905490630574988652670355192167923826126388262768520019961260053898940466391116347742591361112739221502635240333237519579355890446224078035824373433968204884969662171038003248911346469256893775460025292147059844866224450006822371342015186533607834899365201242812912089380301026009074776022817304626983493224378028140274464306693024182142421260893155766562978339076704193989007427915520416822866555019170109708824722661123736657819366696173007463302173250001709786854789861037351400960207650295943231317568529612511763398500245148325745967442060527438574668013929767344370665133255053137519787400612448576415169235185810640143123501986382299536713333388302220358596571574977827530401597347846819121823653532754295256459603644580298896286484645598134387622127249290229223849851526395597125364768806386501367469746537890386270920663150716970217834852800828996883389588413817701296985955158134362568352293999324102959450963296237605842210440032241570357953523125142024665132042549380178770660132779625093411002435424059809055865011102454974800786182407480085834780132047904106295868430867999979654939441609849912451427586221826010795462451306488001572565052524813161506247420375550489557597148630289109224178492363592405433144776749653927888581474174814761154817492783038465036614636864483017692469437467032168701475898600178472026025792939928575298204796283530943636193186355277879788917531997620029565016002889109104687793863314607816419832029980023746861110424953842418639644416110494097697170006629819107374141728456442237634376623531069033208826626912373675407481755809776285372649284279374025308931289703689782479045174349984609856868774877721528542343366593131373607856907273860956245655380017213042207454129000585950011070280975848542663720123978746367361602027060865424072686037107853848650381874866874635637293947847019950364602519764275383125367776459378488610330971783887026311941925671757316000722218510043654744854175709874402624059639557471062674122307754229767668605584560824649652407111271475641458655989826750837796497991601006402165848249051147014322944045524103698197347956253567765816429078991890281740074542741147737350018528145948521260046101479831611817359977161776232918063557791592923260189150076633573695265232275609567473829734733219661307228221296507580896298877358834602969520570336365143484756962066519502594410183345894738085484839259890603825310622536735125097502424672001258779164785426213815527043574403879174811290172190908322422487585861326712577363381297927660517237769222661330414512822127540207591493733522385239390189942025159692376928351814823886856947252998223286328047853514123653982477250506496813943530727117855487339746516987033223914546363987207184954513172425078031085545247171096821526054188629001928118169713173394380974678790490025932694118032204942782721986927607750941326801556736390715566327544248760180828143576119301863517563680934279499054996547451016166986974491873772373005859910386277638767537909633453041880128228736540240004045330903332816824267638699280160936634243832261866689395744333475640305448649856701614209929648208681274318507673516312279826989671468602236437808138215618170989574259868868732005589595891357240877572404934025413188203018670846298960613208820939707724740194127692649249471731477222118637568818121666578442077807589151815252330462360044368585238437799653234366297177883362960146246458147226888355542538975697773266526310426220594079634284866082333560064006259048338914115495087391679551840464483457426242366350642159678057276905381777659465555379433395389854561970108348509827620440342005541385489919431004133492512153429765739498618622757621601018456420480774840258663325823988343957833450910739099315810330657808828041574178392264380674602540309349387163610297859641807705795063083598730243701697925726289979510841650201774114682441614472726882252369124309968036280084433574145488326877622118387782553715617910512510265949863680466259783242364062373104890187390999805357600867104321545328226978032291248262165293145641509111399705899330474518594036215680420390991243075171338625006294998538680192192925103462073994584821323968822735610231327560942590451688217818695775427552244344892209244841404520625315732036313755371883577572078979191023595213394235258217012920678403722486322700339794877393317166014297175029344831979421857985347397692576187119914456357790788629865275036520177264621483763181546530798058025276498781067141353230474332832345573279968700716486172094865139979439894649743314833306872618869572029681335908238331045857712007247636913499592873728681945209954074811203894604939123955613998593044155544944031681804798743815956928358638569670695082033228338382182679471913156549562427686572234669030998069509761921270414063326213963996047556696684825602699510799083139928300353459529201436125543508545822114450536202942641982461299626404367865464940492029874901997387832933064460104089171290822184486358407421145374580449406795133626043552617489147137911927819131716038240518259466170004546589274415102518433242573435511031809292557186168207271025564625654214949946068369828027663522732102162078108452056695986192916128688358586249364195004166723832916988064906742078037170154424564815680063690982142787636397112134367325803193108582363262616734279886629119184677104927655092695867054152483472200419229372919593159788511894307618573749976890757105517152136490487993205615936956239115360057645160547018182894902420816859321029480024009457616102295563965778863954899863706293661645229242858385590934024862476496169408093675568287557621726430994518366079273020680998491429702757131830114602667203388252617471266830401879917786792935959424341067166160495806935410298493576465984922890119155385284343920652824483021532264835510175573061097822219919955725041951382300360427956116590232765871171786566971223298461453617256313762127037337870356217551431291991371315143510922384658768375647874483602061793859608121176429136378333232258435947544329441567089596281089250261858761832728696877863313740266280954443829493686545949532694053387828724127244080595442126764936174971352959971760463758158580850492814160101285351757679735560936637936215181799739777046120903731798463579455720035408390512809301383756881277407533036916268912169552939675673786735345556664713453296776140876107181130257262093515625872783071828852921041316161694680754162459418427734208837405370326157389490929601858954033843559371935934497032023596909978984385957711005455261796975295561221962097598657518117913267820858841037356979623718827356393232072289051654230171525433466715435456244658878576437277381064192653482672021542083270783139210271060974562895155254106426127905888346616799072375678097871006764728749245444126991167029340294406483849524719870609165711146938239258482333600541803285184604680902073287050303273980302840454782816835865480618294134946119186917298054247039750206079045342956252816304938811682302886382965025778710171032517304987789138940644597679205909351481613721404902432556555561860153564513657320956170824093549949938409464264404627999624703781120101526980758255819757634885607922491713601560553928364655281945086200751860287219125725136665085799612253506256769326156667746021068178332799507740376051183679922537072644587482295629395483009681914461108294041322387654113728487434337013275396014481024119823392070860451683651455664808501259122061121291674814625789535654078170323035775332909676168640393805045864122785708603198044464095859965621040017546190577708319506471321791502060805774479279066329679765422872181510248440198911915619180294005810061206489864133050306046129808497526392795872726631797177540057758126344670937957112765612016892810313222732053017147907809617776475685811233095677873418222004914312213360659344529043800681728047013929873274746992162654701040690653298699925625715385224347637414481956066199448349938201579809427342875266064790771744786475982102634335323998306733293559462347263039853693738693841086676136296165593870497901232631914711527368065599423903017559744236184995506340750200492677058204615771296347264254763438321941901665370541922877522185908694752053460955709091285687043344152947854178316096494178828463646864104892767521463213005729131182603010170869880668931065782561198336691494037307765766461685383225471420127624919657164719380985313719142215157764461917215150659097926346729709365619387296839661054818736226239440257664890087633184814413673583256110320644834154936907319327577405699876471627734295650227027694173789839859317718739592724445241886448217147614602626387824341763152782946972853196199388562075145499676803577122042924190106843716458205847798333367884074645830387263809955015124410626065568128463704441948930716646750399301501433722830714093178723325441936549734941407240004430156496465933444899052705720031378032734715053427376761070011935171534769434336795046455200300859439642017092066318858940386331630616608537126845728908906303636225977523348021843126928981821024499795961992515786391189906476624997359707591365099346155622891056736808782919160969971743093319352155692354150769078711794313967486495025054054058013411660595152129877588116091205614204779009535641759108064710774238088842338988604259560008932257088943453758406124911488918992346188833914269654416871084785278694964445039563544666670240369079139169705510641688912345526585596513954097541638971829615259489042180303429873944032619881555632500874959789331839450177604291759824272238176821041344266488464899940057269271204811213181593288319633609751246092179199802265083502366879952185055671939545974028905865066857329747555244606337433786046901009961662398036011908750585272612997065494215753235473875076288589067193858180846026459161081580706779684845416843774030125073836918633774690155396628415856985725663644110079432687512263174320838760767465876034724189299144465046927977572909193683146701402021603502625244158000455774795730803101931255999751011313576587243191714282555763824176412249798029122136168983711452981548504238755499519283757170426268354624807175778663871220558373908526266170943885500551107125249202799797827155035735014614436747645074977585174746917622721651929154489324017242343726494813020372194041502439417819183634264417821759833639141358327883563103013305272533810236024343098716370960888511065466545450335723459370201854492834675700374101710162690320920201583578740442507782652251041756783592469428292858398092327550844962558756131483920727332757296518297384718118343027913022799776417107527466279008965838713281237485232068996756215623367600875745937005060012404335411148668875752400652620882440491720677354286497739161015909542161526052281210355436872494063784983163133811722595833143907498719360202364774700389153101829928776691162565647505271684533215179795042428382267504641921363394984635751711103527757027274220181014756959729551490337259487541209685326973523548644314266462396895782197248011556271387007335832752329037151803825196455471359135811336605423135170598303495198027113390124745906655779807129015493411089585115336239648290557401811813690689267312647751126004151119498577233022662832002773304564434687653342455576822508768744838950303212673262744789749312411804420288902738492254701163087024293916096862304409063788186126232858012177029514751742954052768952404965652508598344847440779547199591303674355827520220650501865641540109628257650122857834069771906990428736015703250524402520837522375838013954100780364010317222930418061827893737732259400180976153789286327396491842733574959233388311848223912117132136679490891678265163756986831226263072617838347368812666986040164630736627527570872116937440244876230127618108612911444941101825459686927334059873704691786656728121015438115482282460042766054929400516032307962621920167387941416662466709646617936203223595106575993369044872349143840542624539360477980196790332667455562899731884083615871080461308652750019282078279949145860450792031700239960648337211518670186207395694598357789195322092713875352112471572593208358026870445531169585566617464343515037952760163301072583444105098214883172342497515884638019679287947967258116709302352543983235297492881562182751615596362335795570788499026800127394533329396325636352702510826289067151279692661524825993735117465769804447358065381701787163520850179217855970036493377846675592663343471471766703205998741465625574569816839919150015458918351213033307121968917227730459942062214882316671698994969495405519701417301914722239703987897577547560024434179613441435368012703012794714540222598703567053456510670089564235229718789370144329316578464259893867481067279685761910074552807091459607926500072507025229484470232166001753323673704439229064293404690833981491651662182254126198649933931293596072579484450270715550362651989496088784629832617864849330275098690959971091829273335999982699254424337619228244290612778808090926239450361148091785111207339010008068706094490960543254461250216014196236780921650932586924207779452955825964951065902806368375388593483923383672890586714191940029126991945060697475102642352448026116843733992523345245868762433986444724693905707897981787172218948107039540582099725936859589265394458229086492821760859791096700826221749421188490788879686261316340956549623846964834895485743840160332119341379331246667355718150979548083535471493291041209892635546616119474575540581330302334648771134569203648580411232574962188675848870949748892940028929202016120527374544528114954637384835710567555409823354511151395484041112717484235593893859677520038089276134712647260563657207338538823156241790826231674245999119912887049824941744759166961406861097906261632730235911337046723130233977284485347316593344371618272407030282571180247305812192349917302045427118487702862047268708302715454742971166386487463358769762029010908151264566554751633132864528337578266805721966404669421386179483331406612202280792532392899039145224497512607581212408657612522027736955212225175083658606526341038168816154753747126218188681010090599205638472128332605808074795478994839127238104024393030271541690276348721929354248017708023153066491541718863673361438495759215064838987252148802522541631279304633914093923864161077008887569719556664739069608846822706510412890076776579357121188650848061814698406074353921445497486584823656806316687399845075157134998175008439875188182333359601873384007393752460658861625921433197502888242437248811219462956224366592998645867638810864781349506638406645580136951804416606392990263377895640990960163298215180684845820745007778088489525182019192770758496713167346467995303366344455355125511787233900057404088174453637478234762858405750204218134525964258329185603213462934533370735783743509614229800194258942749711438859204171009109879703678786562774289459456059029662674370664108155731532903933629604768494656571462993030155083414640226420798416787896977473956173748392265768142785416572839125541753200300135385986002788974159847546287737161647486186673260280798038081320395073370216231473962842879638956944912153076342595774641043501260929627030387854533719774355109813288362513800122494352711326376799505887017886030824171824068329944575971712800953057281871156396742655447544620036585325657196889376147131450162032833140233895150229549794876804536845960044725987711893104794133404783764438800060834553763238903547671805749162892056859788095248987256940677180831586000790689703134658425323296834869937500861375214163901048204725726049968501123384171622431695899861485237298599788184409208561109449794517334462046363346035138088886189909294900384881649200017534264304226177750266721663544037454939236650090678141976237658850089575527196173357266680413446748097458887347192980887369048266790991693345635568411546490173081254712231469282369031756288952561575979366773282575563903158352670238942805764210558228406139115379938073361144586874993204364729325687678434408842240687136360151714771310444102456376814928580466570273993848527799774808319912289607521435925776151662456205361468686646744580892610410976527535592614816973231684416576667386446757180396627970596678697008027426718105786734234692341206778915899449763941000349426085242948602979579138373521095408901845383493304104908849608499352205114746603406350609965919359479583603131867521064517623323307473968305959502531442713214035020550704817870588766666129434612550510455344999534548392050317109432436132889582188694272866699977473191734183686893385488632151002462125956131388794297883447578091069610325827364116816598488709937812078709000618396424560122017063252200782538832763231104327155256738692868836402350576478541069666636945395466825380076478435669145739814463178814855794729187015834292745755436219517969829861682373469055380451741452646699556109538634078061433231743661633489944704035471971764017576348760298285295188650848358366451787950068505391242740776997402160952034532506895512651538845152835189314014986207422556602167805658327803954145069353208205714761263463560908549760659540109734068569214035104743188781601868130903103339587677933750513873868747300582292109808570930258309884516775368003588974783413008933996346646613794930380877400261808647252635416681397722655509322203896569380848527149611441799044697166515511546283940466962765416105636913212050590680969320578912861039427980556412695601646317811549515085205619016596862216506894962847751988455036567008356970122487458768174458358905729401472282812355017912407194400674784695073998963327239509474463762987847966461640240084556825237072359884764158998610387698871706459559660323251538799663855599491461401961593213657556987349278298742122291222449910910496786633037065777451314637253098406558240157067002724979991965677758180228406451253525490941741403027707106987158440595766124127947979924794547848760195380223984050826075590055193628829966193682257196022767710068698329829872204955996915176057962285501364699900043069221650810463182576294156086795202581930930741665710434993103937023204972606223825053351072588718936976048428555883939293763463479717251769598368768307830898809286445950300407021017278870580809263329426854996000791989636646385064696779607170008667057428400152921980862118312887116226890714411935896928441301219842477945315437165253391226615329585851260608818207684243227898594297997969280988770716070829137205990028752097262800987400437537320480055786847904144133021546231084556407078242590962523414597557473421931172183691022974315250569411048833981954509797037715452424896238732671704605556882502774572262634899394389768971303200548002763506504441478681595186315802470719587203779910965069691782021471491312527109495588436160924138118601048998735320415812258601964025334960600900695707983017902663943962596941633116112878818347657934217228482223042162568299655163921786324796651261219410125491645971808402714568440603130025035246439824168597446645938581636362858209341946175860922686150581714341986087945865102806541546361379797390949106163869878801667532046707496985553591764147385210796105274896360373513767980323348689900498209946715583918942709412636232549016695663874526456643233759812499847338569085613029357005250259975240429567529867336688819045999271680439360332507262794416681451768750949918475819295135698958714700098450519827296222586873925346893817187518949303365410178071350592636577842302574701095124693703942462266640037331543839531895399475771947255825896869258253741567983967065487059572124561739343730573901274504145442734416027590345083561535577222698579237478301375164192179620914775600341429394367303115204369832894823941047669504727280829036471926897813244924795225355043561032573345794650573887561852346177275625036074124982752727972074765387933754289771527930009010641181462630557276598891149999094948224078704288723610404053694424416603726643402411739688165118904694938927901254989286721261417527216754875644162047010008342278163041353070799989651080071612754445935646059234384780450551476399623458303054629611023962840339139124673048924454027493811903859102797233191421007254300555383245457139193755243346217122209288283427247690495330252808698221181212363660326196176175765608745977122334532316367043560267263348098498834682987754200692851495723725816031701594320323127457621096936797394605576163210700655052248181085298095327590461147206560852703769657188183317226201657051395708233348970160014678177895331844759823837914600957270034560697874664177207654539240243747595386242696523648142338572807297955362429345994073888759658928112422908684221516351643431672505104917102463356515831901623580277979887650511237132318467078837117992271642453987492591187465588802998233374064467613653385894020083812232844601215589087556584119051782600991721063488262288379527665939029473949562743852256261072952690394184826240914413712745257108029187197382812017517519275260473765494616520573220369731233477875090326825631195495687114925366472902676251877641970494896418522757961416238646895406687823110478012909893770064810355371551456346614972825733200807544518617507549158062298555314707489693757064488110453324673170652040834518854189776584465290955366826000144634511529733824119251554416727836533616575249066751335372987928740546290455825534471582403648624204441203247930286372647094709720781818926891910244970654335284515739787005521175546410965825689387692975645916403590478474570218722057563128934710564763035685626708392893986948449981953263023750752114665672323478444159503629543162593401799768324716350454399161996818633686724450488799644111265193024370049098047608220234837386837070063976953243415458841832562072584711176197542274903867715603444365909611810985975797573730291209702617260342937779010186108703832715253147444120095273367485106999043448779709102490696406687367001503273518157514456094420186229799298417912507096425864036977340800621063590385146278961568327751432624314600089397604709200399136472162212079071142547453660590268259635903274659713540783693255118758115741573804562927324897754865487497046472279156744592374814184901565800868679385529853456837547810827002804873075393574834718139284163045190921736614122371454786893316518746476857618735766628415015658398333035860918495949544265236137656735761765782335123047990286663494455962224680623325441161973900612871616670813093327147648205845385358250719216984016094799593951297932384048766968615869025457353282533060422793418091710102102664224871832321669076965569709678091498032920594441582578101020883233390229998592344993536486130106345935608856612013608654453208835090935071604302168386677649484504986125342239564164297560315461673817948169654538326838976519670781216434663487635286651163564600483378585239650226737014058171797480106243104903832237975301984008237828474704183584182052328868323777955681610730370408357576390107830547797642564385777440778064325177849826931752247417507198455175125256546288051824036436383362550712060191513219736721527262018369212674930830729473366848051441209019204383790692939521217425358586697363625844230819817366287131366964807175923541480561000860925725396292742596688801100616254945410743469341296769202608661547669089627952134097059800009507761218376221869241135678685793278592889385876942343506202609450086450986638816491917740775643331301531551471495505914243812242450384296861058554640574301201450727642251362392975150581354705656312603367456663160609564663071242811547307924492110708474125470901044897762265841695208016996454800236592551941723706687852891161944084952856736972258896220329332137902818627473850295285129333604287009845692531033365723531235102085363622045631390940665077439275692972641875086930416928578768697257737061707758008463862920664451349268698981984948349317880431552922781067220152668079472616117413756005482070273537023752086681861797229062470463327240808242693918224496580666360061994494592046994862959741790239480177273385781308468003096509124947431521167560726203277909220001966507279388729858111432903474424150206950476868881730812748677808225967402788667468738383866578041799175940154927542813098239398471381204815465540470144202253491124250839025297135650681189199675204904717348013272339706530413676109266585631569774841544353836319073140969178289457864012965757447900945332039533071713553937290678110431987656984392293825368719906850968595300560365750431246571726856739385037255844791858089527199660914330318667066193352537844098250371619807283910364129690738067821902251595958031080233029624003005434752724877571976334608520794115602947449118697941823123618917708429835566076353041937782429423387458783773979745377812757601605077847009149356360715296242900978191880528707943483776385739674254179822619232940145805720944457163048972648018641472806058007289669029288202104979263461679894511627931642065163265251382252701238970573032665902041023380654802036878577525396071770477437960357215815109314078440075303749092007396465039294540375849550096218459559624432658901287803204770767681902585053184927677899592075436406575926249235284856284577103796545850732229619253173834253903540394391686618024195772319942325567077516432538647152330791779092492679259045190746174782500843137956579124416743892009424544239866346825951817377499998724273135040760965463481717486524704001447919288365749470247275304331700387279025536091526278289542640489219184304949341036222972352495181846209098985078963364946861875307574646190742157306949230605254049581788928944214617266380678716689205320615431473476397905147744491254682991544995763286456349778623476369521904950506217139018861421441636198026020796782165325274366746526922535777870712118804789295744390566304597029376762479083040294231268534352268174468295612926803131517256707892384881619701351991783189307323937196713613695338991309650367361854948998263648571449639475811561961878330300657247146223192598370705555095700233778295176418027275415810830259453251908113099936636939207222572135662860132412333321823740871050634944684645645210193262469624868284929842207747406467261194897021091286910735776818189611563858159342019289403771695442716008924683121588817062866788930413441554373961059554602526860014838450971351778221089916119125206660521196345912917087980896670563924160380721765782369626177842816580805307913288863461980163335460531347095916348421564870721399494170581646854410026568244334183714613046064589542043660926181347774040691141603811604794180855099578868929061378039539465007324399821642054427969305187199529763859701506847018579580581591466036806759686516548341472058958750618783069626372061095675838687009529182171856460007919929172341139437596564658180911568984601188718275117583571619718231552745023199729378576440908511890840963428045933001081596165404501985328004659166780423022764471553831553001861487736730059770052386630398077419724973853945513641505018454288283860395537465692532536300190260076404317810557562190756106845233387065008716451989169504974352771869720696408322278843293287661559354724544821432363475712636741573431623742792987086491657934096390774158493229040345574035350601185782614590540588106101954839293942227933740790793525584556468771807450494727606283404921393593979511912876486262321348128967595199832007705132755022065018477969390922833665922776789689601528963829026307051936189550566204684594166133981260240086309638984179812623005108638790221956656393937729777680375602364410249235449756453543737028510372421979059665084237981294519560542717096854987794896080717901426301463257497783150147210490851268818846661434390245348796608444230619000789826102249542029668426899641690235040355590437731244191825086485686367826073935394891463206048605138149302590288256279324637592073214474720613665088306651137248201932945093159614443950746509569374550553254165379825050637946016382768291044185122018720267113886859272010108013907709069108780194607080179400428000577335812829418736279237611900315406442262168653818348854114384525916704106346861482759539055821527787874559096718733731106180481668279745813835533115635783274627438956909360633280453076055855807688353313256739625624806879749290468622132698441658979018109597100665214537225996284383518881497734090992547982665498733214581778498724656738417262508311733718453713456882410427630854119738323960092305379249328943443120192982243020505933331576183228702420923353971738717552801276127924860580868752116661021400635619330723728153534360132285412433723390216754212725897374710388876013455010645702604419410850553237548789789369500467674579962243655850974727399268727295320813824290267546909371169804484578064021561708214238268184919728690480595272335117250753876120782440247474391230062433098907932113122714813812204503196919073181812066361806174300104963612171823948229508966324938731859056216498496435363652426803615137175362284623448247360396821678366098968283766064978011590093354091137436012492080223669925413241836816772986600339172722992462604567485509291570534014907334061166490688859515328994240954380159262901943648195595894956523583557962805797453669517276462272709816735468663130773672863785395527163729531486103873559925252255723076510170920322262461923302942057262222909769281243745556734527064239002880317485708073075885049917906405086004912264408171184892016043534187850444260355536117957136868851441569417326674001685542798655335426278653359643473193501150717049722623669884816979328453008700886662698137461507278498717717461181429561185744684189205979594920974879699704961352770751479437785713659563016925280956167120173910282397532009457463416414077460382352414754289085535035347501447365092745424743848422283524777574876900285827915064965050234987084296524731054606730086758262877866198493272644146671670572386117447213705572361572094795672670915557454699110494087202009043558214434426752648103800442991612319735180824634449131540992088101545592491925649513090092041110290050300856095877658849038617267957695729145549960588644799214050189597622600678028155034851679794707723087542917971934056535980407600045511178712304687638486685162561716292480571325944790886328000438602611184115864251030484755367710569198935997184336184548830257132519940447024963908510417687189899338943994875153319228729625393431371305854684518454463441952115596817619085277355768807805358850778438561923078350600643877682390944751401779500996085448423611434736054690041075602484087922529841502244491433698409660198333091418117772424830579209496351763744939316774570671547546668691311582256087169926729442720420613107306794853923463886626416802077132963742027281134342238158667271250237851022800744250711802710936822465640687883419606706151519885363858638174555589438036259160471082516581644405307318231020502692802237372226335849506678425397457320261941029534543416537148670192315259146331090755793298461354272645278409889121278245414985259186054177637411262266370107429339554788361868756409610246842557105135328545123080196820153293747766962140040894475748729429694204238912254882552535389581608598468802038858071769299731438902180626947818755521989064135515464173025083234762840812299524457046188767784962999501360164494474567232567756869696204791547308047512375912772373788616740013791399185786450129017787264366453861672119827029459789932810342257397187631382601607981169551063323299036720222365580018047487150665101578987686997596354011905228180335972960729985896668980081755144901091152248045744381355725205235604831456618147393582029997802718720698776912584312724908429902532866407494934121224159941478584818960318129826306840666371757323022450250897379495534875036145545411195838981769216749000225627206873532586098007665527196033779420725415479152713718556785458775412829074773608490733135650881978611364409523144450192782794615235259633259118147775819733612242293784569842840810336274864591670550460905371718671794307227310741164501075283263873101730138658092957455053452618713839399983471953700267264039646333093682682170152426232268711497907485161851614030685653188183847305640936213954470257788860272695998223328656198186879551546609635341183814047679876153753854800789592463441835499968227806541292634241375641504153384730811683245917180464295501106258801240622712525453962769849862849853395652972923108293195978648793483348374991606204272270971958394675121965923095229503493237250979929480278502496507960901810138345993497087721230064059609715672353911186537787184978441947440391592396524725043510303677862485556388112276951610466357087983792010900374555120199493532245370430939144496415804626225382459719219264885295904433817757144073239097104136541193993697030146280145145832046265537073806561311324004495992345812454800154314443031386426398771717827349082354117031827177069184276101496656411755849086167850815923408752878413413382237984733596104506619976450110630525363982692674491807425982227729763743823442719868533594560755350683835548901518342483551137927816852399093840882266749679156519591495990775775867399963008406429423294242047079356885535938515957181983501542662645016441734199687373762015134407870632426117589392539327588966127375627406628839580030315454060791868210414262734352170289271802018693937517224082905303357701194715009654521350512683189203671426525689120272715272684656050972712911426198429782464915688958565571762970884985754853922062631869632554495841800253678855504201685293833558699590014367875219531129221058695322508582619045897100095449716597874600485583045945552206741107241510605670652474647825830539851879082822735012052048646494929221848745135511621065371902161388312489487325419206160741592997474082973820300781369291357005827083171511915928812715813701577168920648151080414358081582945428112218061919216762912912125338476465390862454046192056010762067544762172373211449391939871955264101502788801222101212332266122812292416459928550322167395265485778314147855460691929978870388908691131740406942992885521794415751635580482251176272211753128592227301286216993370532001390418362214701255474644115017580285320557554065103944515088654842771803282775922995653001746359576439745390111244913782533244427115242367834097367178312390959023553782450006763953833603354910276562712132308038141107518069414283766834217389841142630139605167820493298714041619941572229418269421920849462035909284855486160683494703973713349045023454999345060989518163512542651829296648326790552718060055453555479119912316697508231185472580660781050148811578428281107868036430526760655288798857695376682098874535540864324930251276247185805303804577940651737010977846651483702815720487576969982222105519941471642071915964252762918628630223172275334579316145414022634611983250656398726881525084694611576091589590511854009288625067803155164492167580441370600618284915662379856971277652119483156996262598581640627769125541345848153254034180477732868416505387864195448673837799232036958306661978950544570920205810192140040392867948289297978231222973581110998869007619618863127507481249513731506867908854808179980689318948714988277175466254398389039836770201727877613636641561551070314601575678571646564622190035064224166222630687555521071243181054959900887844723604262623089746832340408304433149033041408700856926702141917308990011529534969702025756008936057761105929950884229071654348862407500782461662545031780098539039604803412931782320491944865911835780298135673282532753421068851567142829608210200392825702169467644988634040014142250518498696893973174269942466037634825111501955754775709859454365062224587628094001638571464774711530809940294486025288291270403802546154805762543906365112250665303950567400156769913528569231740754098757430527557420997287093482965010153201801957574309449784004983024739611404693144829626680931373129158114702703977753564845451496753708684834677902880233121999544352928835122767973256915586621024246089022875507473491956407875164374936477046772557664097147411684528055062538578864401380699701257023145645328709450475914079616325190908344883047771272422213958979194896102330835836457932339064933865730488529343049265702660137991626976294247218710257097092804090575766972034748165029109954980620304620977613035174062158631553031233994021980918509110858036186288820887537845481621790847266872959436086535261200294101902072630997629080124893803009165821308165048821412769302249573810039901295951366295596791145220047364585773380956994587069171606404904954105788213376992648717342070248104766736781970621587946791118855007677525531413061922767776196623147749018957540767135433854458679105045191791197226689958804320939222844072335316089765182160522521322426842963831288604387747955852443201544142530283987371345583809771818126654964400591252992605217341105386818645351285477319190021464180072417817247265747948850323916689068768403286480955305672482017461105141889469119087056894974712413120773927360659559005299426154017414037512020538550333500496233847415752272985817707530966086130789554888373590896781224367066962695078574098868971822815643330874079662802940003909021445015940164042980080410217139884735452102574389570001210237643222431956291066370630952048959892081796080254427512810569144279491412983226040734381893942829165461275480088374065305313559922296835747052126902828915796490037578416202482869570142991576478952691540521201094902432735841648011352509714958921104282892352538132972156815737108536610499745112169001028586877614972760289410063685909430145740237848476776897164607305314576538057769791515695887090611423916137028541547641748958410898469231716092876699002417392156215095833554518792339597674403078872173956632216957288331699343612662319189956726255195571287980821478361730607181885436742075775969188885738658302686330802598884401446306045099546950925908180468618131867603597739229392955570198786453911502606432953645764870303783331644946905445605396259188406208456611265216692963239344019636757095798129335716477898769926602014716556741373333256323128816204087924352162029661586493723578330422079165698851444150892113454660239689298609439610408592923560589259172407477784773189171360023743783384856446325756158229764501931386493454208780514149988754367712388272344387886743958351515159740823976111097553813863683372503948778076774376605242476840313645274300176627516475582950601718389779609191355785483554832007997770662249302752928113590365808839266895185564088484696794638103555669283952544325670966549034298601599163529381584917669626012540420038857438485455379847443323987722768697541176256063120821334247114484375194010212678263768697300923703371449277923866203761397572869041442277478496233962251118292842456397829483040626489798432382937982684370799136151447067746051264533783078239643358158802523011707470425721306118587344396167399296637760282947420097820424202587017011731939460647297507547569941382532736887703125608838533329756379329575121805189454803432662089012987351344110938803649498460299590716720979598420640346950778614612438281414659336347846287119280820513872853589233995258881182485635543606326098761956720562311522888900055693737836165538432357011896562064911122077826770854606526375610252439990387375373977535846078910538518605354682263228944071183186077560690332941194528429557168254385194090734036963567370719769680907551526243161329934229761281103490611990994892005260466776961586107277892132967153807857693864381097675310262876355974421384506051244496417240157236908940968923846848227169731961944760779771936104749002094346639829764722537816847378057451831033872436021271848019335867386014921771979404354307134322541380536154757188270812389509161887478892584359988719017547000735737001248815987470710414760253271079421269517375199494846055361978601810206562773529908117279513266141864621074823396264416275412029964263954704632993906812950155635432086376032648672201288720070611696670367531545347129593117851379406191234795332668897398779318088399684501475934149084787594156354037452118531610501352592920364210339126142008510812835322104394968414528642368242460144534953304425710587927283865391063702765612071186110223593011077309130320681217067420371424448575693608589961316007558944931960609518716873904224583968408524917070458491614257298874369096495685113471959423869725588042713291083014924639538240005767891634509811124147880430827063543048313023427505014560930493021042173677128362310364116788301921453370356142728102021047780456376280032691729134426812756870673352684676527040061329199515797280436418871062398695295064047217646455784050248681351652198894894084131448800372829908218744679613107086392605286362802287784030851642309548672962286318758265135294225995512776601342097861008743917077384291068400227143079753475269332120320942109198243464191140714357791833259014569123386238376328275582148588042622540395240706494041580000205417733938266382875387992954368603980267410800091050924704188910546491780703004431294099586615227731090085473114576794729579174851172929609864199474883224325461422666979928438269470403242839197276410002287885569345414049843744586117801093715520404960371246919793687021815987417812719676822592623204711068293547913016343296312112095405873077562340862337597035577494613927531140442511633312106865672698914532534470502590684096369702673996425526310027914595112369962157132916773877978617625702639985294314717335815748036041911846015509339426764951894328296989456453582297149737478515035589890388236280032110940367765560411475277344782087800132159340144593715370275236334372317904156846748976077397210995408331281303480009418305624672908831977905839982362180805649123851916117431723053175003094399787098880901223245864044579106595410773905046782776614898464660933578979420643324081403800133732175695059599204154368622833887651533335661621795036616025677636447479623706837406012607420957786166197245434306760197078225095999128534958010317207445770782569803235697699470248769470004295489105480461014625528610482055020949726112101307367706935094471024585193737696624193384087024707107952233078860649378251807069324837609422383947590265234956330350610312659634110123655376559373912572234543083178653500557169794143208385582750654158885346765368960019243537791021711390956311361668319070212444379121605009292856343921848468818149154573968086401925788927832178373546672933002732366464987601520572051210306194725168959247896954715151497374429215316562147919075633050053312545189309044731526156772426814483315662759989825789636929413356030985732487457745410132457375512282384764932708082546079063364801604880699175691203396667740322781974946630627013542996972051318451371490733213169426543626275239136431200114020457712027309698353157786727862973181082164785613081120716985193699861849060324862689583435661801200831571410875180579343221367592859399739346797508059049342907399683629354341913697372607312533680530591879900524153536270330273431912361266735117551243474044782617097955880862552425339269574216203636782946750859669498975529971980806871721299186576092020295340591653938755876645290882720318307126063045223537711159016830778822496436113110917373450062371419552822019146598900009798401717474696409390928300783081026464000765646642152916854588559986285487110372517190738400528862251411297532825602633318755301068628309085647596593440088812928163708334966217371561650817915410465360056266435504358136296166714923574458409997322202840979187022259325187104684220498225257510301373966904323756200982442991519065877301867428937403617577726807375163582008368828782866383774480573553216666907731779478446853957255272128674287549942918962385878084821990811111296481934298858184805454499934886188766255656420613571467170692772333067576729183651646064058433520441688390964303893309286464487651280741933893925621403935710776091546403127809138384773734896640043757768326196408608764194130167814386421925092099169209949031126895245564037084016258426095349404632731398270917431633327016841570382097142060847076953054860679014795817600608574393511286292471596528579245723289571847818898418213708412031546431164691291831280679935147999459883620311137008776301595336250244509958404362974978103208511898875151651024270806374129985044604896091701938753738473418529955032501191126245861638017784205729215154665603936115938057263256780851577153265392139151187889991330752928004702229619599775586865579073807089621637453020344115457528464405499385577958731731757761953953620627433682271621294792727868037421764993581511483558203520756441160481863287868837960305533148904709190509953256300121473009337287310321717256219918900665736440427490398146579264495186280275648521131307867962347841722589360421308107946633787721761222359254754203062620581737789261249536547661741005722621571827554850715232119134304834356568970945373723812198228752657946785645305029520447341236555114293611421761428286257849543684513386277042025686132397123681758078916430550728781624056350738538011794864729913934009786264011042444702110230199425731937898219799676234880933995935372306474762011755306205215340145468795826270920995427581457853680188660127399401278460169791653698324112863818853520871883824093719436917667221980233753293368688543853054567109925674727341376913164596522633579991504570349312749180213947563285231108547260141554918018717465451678640563223321804967913741627382830772154740015044732433304330118851174159103698332270085517715251403472885697931303931530439846740385586423663451977247348962986716149949638454505265185716590706122251996560496748260837336440545535230841204479372055233322715217825657928389159467349549193388502365354244512851749097812617215781026449254881872542549483350635735198592051942653943294353895418639130136095053825495222372789838001521338561641329802765176949834045737465307537793744714749096242446204808273440496874688288692976413175919732365390291680135439272463702491610967244600716955679254209085282207300207359068814313969488535543099114069378048551477561504964323950582152635133399205305000575404024869082369196967389684048294640522046942214326079744478385454974770027533079165290618171343406766762817167451652323041702100991724272247156128863408423719497999706644412472316528087164716986157120102332916052959799186275153510530293737746295226677772648812683625131270521389028303888883327896637363835832544097478065669336450870044251706297003958331758739055556185536912593584248473395685640079157941572026019112994601855580764600667714195889469129186211802425618862978570476738209411332692152184999862700881264568005240863249324688448169108782870545886722959291658205163582915297105666071778210474688338346739131686283637349619446478436052660410126986875625471664954122033734773837675451264731385671938589922371018842218669783696234345476856924036813530175059854537501044718611767275512850655863161447802077552960905939785998812228882513116980276942230402465511054480241082801791646204367176847668646332946657809335978930323748425169261295088890576142551890047170778660751351802932396601729829364347248185214770097297918793364810453817210527538729288211007948614374537621592726668563668996514800020638441775776376637790309134183040753261996530993248493903049374809153501168852934104782674965103571996292292881544507288736089453940841127350901973684100295311528347540053013643228870226570696828672614801033353684493259216707203449832328537625361799561610301989603920418865390113184658297118117468358801668262554787334585078553538328936744452584963499209597891323036458370204710786883605406916636211377799122777052981897091094908834621370282155108814127317902776178258399485947678056098452284373836700370519547275555532047846564359577934332586969296541031268165733621107196598068199751828472490357867304918671094963574959592273928182042014151887777601022192234067612012870687976140976113281302202529502355956032852858930696734263701438287030905292869110989033789135683432582005725544318104383304590159634050697480013967831105095839592786157191692910163254796054985107760494466445047974572442831695969864589291378454866324323327809465570014983657641996493940826066659430663256290640280962131141913286165690893022325092715982111196192551232089577990421333475943188904253718926874279235654858996166884128541317814184601499364526396806534867949025563039141130096726954232090883827413568157906460108679639020961759835038537699552892996628356279320240682542078708075043252372604255975811320612025382303762688991341507196791708370403800257747928348495858396308403593175282024363772052090271826444049651374048742411650827386827491407430534603678545180211352103246878338846834060269425596059417190129414905761783910436312803307323239536075355672335519150908759240637521929264814438889328925044876173935333323722386459771147256873992255120804684172317276801980446421596163006390579405275188393788442146599058028384854740068244698495505078666408560404850039535877623517315451497602441020774191386092275953601702556932313844154273482243020919111389853635124325852413248356462224533824127853381841842074407946864042613902498554893992227138015640598518140503808368627166548501769427144275509819219270938388066449718951117730234469161162172765347497451975575183277265203725840184704424308395384773935876046053063211472129230782682317917206091876828206875120227965075113118034689013408046513843145770367949408998213625686446916868245768619492733675296692313903194010867854856951395761627193103846471012220182007011287239315395815975373982131359550083504907054368728591017662798723493354122911382121559628090729984827217445513392285468900561642603820747720380307669376514020634254474507834803739670450998441944565084473350329884399943829645852907451960519665346653726942542824108106942462019124703642002453383753444933266107576087819014725497238950564506875183601691907180122217842672683641176654161712711855903811695856974809536641591131904443765313540774801539145985623951187757019144357461383989975770899920048940954981216030294564835806364057240923707572562787505899572855660565797113895945588275207877349126013933178880058421575172255889947361842671247331721703049265926417053068855050779955317724519268689349117029354583274739786894891223878869837996215625621996748142580264504394794921574721405336760287170947354850264412954656110315789677083274556377983684500919136757011841455782835806851961867801142195380586683904353779748846205298391186353641351155593009754966732281826914632274259090431967827415406772528414632502196532932110442008311127375258035317019761998629327646093530651041117510225539266486018810917000206179726377916200827892723903453102203841429719971422099884172335486145796188521299186010806092489320770616876595091200182004678869044753031312519579454535168978265076072085251467587944907472181613118418259733922461177268950826494109237888287982440925644333468244003206662649692458507357950408993367426735267727423469295959680642499580108202796070794911993300413845595026154598163259738047811539379893689439982184479706779738551118615170467508015709424667714684835671750516253682370500947466944740192666727176700051956004937153138767887004553659188851192856004272856372420452951898448597609861054098272278280815624884952340527081952867811216312669505597636139942529761861342820015111333047177216516447730221509941856170904046524876132511388401280857216440375444052092174607615625349216191232860506283385325382927295623281463289568485294657716821697277132951226278106067153477008448406980248989558442030745789410117556786401353219590876087896421089707097471125387904318011776600427996768571149438651623780891877707581824845941898058506142456547031572575009495129623229444414431778077957219143873878627312037210107425173545676390968512347215303035793339747105296211221940163175331004071428488305492414051401503790075957545580209459819939918290305698708597315525886338204509772964458036506831608151771714005754667779210624990918824737965578712779096001685277172442900676412757833886591117050548446337343307226460085340681895007934676175370564456878937117540816259616980638711011739704370174674416710522220069954351831982644589195043729875679481472834301860030069721930956541287427602210246989488585505984475997116569662431688912614511630591178843688608562747332651839466239822451428485438565520426475580078843080638980991727710569319935094358174690031810738834038718167357767387382853212053235560221409284337614413954426229739550489094554623912209290330299590072188716865750614969481780553288532218757808596618589306880475902324531501654615076488310249771076628852404242040160669916157077242603324555094035604449102139731866330949668890621667107707361628134471976944204982008929943671667446969732044063815571588917787366124387079957630850915437694054772657565949248848497275176905744770487808528858239804639780659029104919493816537571867765906291389954848375526413955643964913994713489490099341506252486818679291711149299270303961122936232228638169922743994099148447491949866265511147381741505061863205042718029504216913791270406179317137125160581066424912601736676385895376572431929418443982415276923325010344966177672486538826683115659192327141564448244915011030265680723955453822457479445909428491464133782412810817036864609260475098638944724125000089794368611279413226204254144698000673727617116290356565080151688890254118561300390275397729023970525196608285921530921555506590876363927742511434807202088367709417690093372099140997269644693214714564849718692941872501942422766286278565467502449799559049599627843329398700770008620092758964853290183540919897706874326375685464679501639711607865910038914077760871750334424138981762588489168915376955737073679422369939867553568796780579960506442793289477555477265218550482592569836630955979824805741200757967932914697596367309669448124156748902920400289891612487918936069225871026049735332275150784833211107332000663447856172082288318829539299104336132284663526247461939496080525234338197901226683809804687955469277326688128858161990408856671519606626291726475561472417303109603301304012787112188648384731348192246794651207798514163840695774673637216417184988561376861208367555262205882152076556626257823460825436821303890671544316569822375315323602900105862935601583645678710851307354695842481755837615754268110734956123244477117711586101763141491265774191244576787452287954180664309159130174645024198187410334970843352629002865687586823167518634499089605383997535345286906233598939551549371918674585729797337320176007851231339587486190636088719692988138552989434003927995451807564815378318831526908996131757584633117921845242524970165647487464034736380552215339863644399597727584769766548103321720131922660854775390359777502254247438469970847894587570248767889368216109414309222140326825239601601272380226496755241269691134441208358740473873113561020966192674620779806804328477842382114830744406540078423435235190775338599065223351696571934427905810833986545831916186831682507526226740673432588954263612283130658349855789238305122807194261158360237676621654835324790282642407181327805412588676772849141344326474534355974473563507342714333550411721311835653836033362657405047181999386604876283584044781205154830341793001087581715427194225799169434941779833941089604184257147389041172175049936858875990536590127383859901771871176295844727443641501105177552587823485894163155211445649124258721238120944969064278394288846355055537829603283523040656746448382313883092115474175329410016330678210898269848467263363239811855976132499156163312153010781836136213349657664921641690869418469252845231664534806813546453535709029159850406724095621081111952778213132201299726101961783694799331202355759453881753231249439147567703381817855791338798709076612725334459280332646540903720571665001483210262897386581023198906880787812852145482760900435634811200539739806192975471336759483151455499139067330904756974557958527301555483430367901142249287156023228955412508920923211016111134428838480155089561047880735751312519756467352342578661717689240782738414662459514698445960811380666936677093062790887386756872273714072799308033735560912068149894812517125338195704370484079705044621008600652465996834896584529530105679177762220077145210651863590100945211327977558808274062989842667932221738474089310104263764139187647657244423888021670455896740945392151448692741654276644166409991109644838386418567637213787299294731361824743774332091181485072576901141701506149727356110530810550595043830202101689798166838682885926697198353944983292185230978079428024373298109954951720878668985409437433765247579958677146498383793886112288963784493456495343498043211426236090932399474764484284334213034774585336798260807041298587271951123192760568577922473569467971842365355185193833170080432482066504020172172003370580683491851050581195492532740832050846587978617550099215706182776844448470770943330290408908916243515381226598444088942579555580541154225614086517882393638926038141122633319797717075251008208856796880174710928350284232657263299330951363593117477926441765026853077765166790529918777434368989852631674520787626910984047766698326940555123454177021743834739143583131829832581642110057884123122498754613828021798619542335987986844334014148475859527193783232902719224346337672518916915708530860698905252301766993546489398350034764321632658504182765259302625065389826537312153665206276737924297397260156886850413073142814628194097549559182619926836144093366405152931115987539218489005893879876608202604795285289065899587272586732798881940661195683679610292405286635286994697778408399430570921454864383678421560850361344543703428986632421668022701099578180808092267119152614032096326765230592681868524872704525711483188604150391981123526289876938483161159132055465079992158785753362517405384827238707803845018869752620746008676227536559292652979728551490263998736843548207990876777835427203972785989122067746509705411259998374889282276146758547056785787878892514885751216637233576779954064199621489780751138432290260316098531348553527944103385765046033904772456864574371377219911497394980453838192036482696130517874609390371110075304750105634974632457915204545475882427488880293054822327119549388177350627455031694149232173160074738951548782768083293007138466534221194276653273296435953280226835462761679727534952053449621383191267999396517269243620474904324862807115128740039867233736802731804490074042564783744461736333236065439019842009628782484338025422028728283434361513560519969609781653373726162019727943227649757563224643815690912040486660400404408073599260327142235557282727768581429145510757896520851477906058460172637561230112624081973795703536120123632655595297505551117421409893486038188832914623328801546278781611389547416107376952114122974110188634773251308277140934683471199923749337350490319418708717471770907364040784694719142005441730215517042131078076196917296080684198479440399197376612991957090727310420833350424139391886458497380319603129392858640669327202795367315199060588982444610719679649319911991038986785855751085052373552470402534479941143872585779810882654905166684013906033549376939282910008846020065344698697957176515589193432167157253777055523161525808438692602735460714220942592549026032171407403467658312099403445752898536604342794809072182028985779764651415249748451301621974625254755808142164863217944828300483806339077169703850550657569560162314703052216566286690148374532686958067129081933251942768705126930766770422642181549798657084040440663941747885406055400404970982573141083085443735528874965969802629859363905188651201899116082431286396498444193341344717118431033704197038264561698959157685631442484499079416415197613333438116553432996072061484827229044893641839680431239999424808555658408976110152436641082344625314545631823035672676716660092182081566266995528158592171379959887527849713005457475898358463622953490544339498026791861554444361264004757487317335620189068623083155503497984912968843956808890373120501802236422195003330592924294107475707514897587495231388654594424627461123776494378752501719062304195435198784130917680589989225101916124028608715755794427010287950218471236967465581601304145368150116442135440104659317155583526323909035270065458785986672913959862988196520294871961737102352809098730470094178729593047472964997145723031112156028733319377394854265233818771942272390852374860676800732509698110359300434923381603038611141147041487512454278302425989387746539147896680243009451185075926209710920839310863806154571950209656517294764597660119913524070962476494713438331748881146735849574443316479963823363207956087165132379260288483317486055032340755787817130824171167199333476034326489570219974467043432784552505719499909201931863256423559770128289404114033759145266647487862698974902933030616490505519918045437587052350764294247729102323153962207287633184818644189746984261321186441981006414224792442765463475936084001851653546069011544081395232060118338234010011834358432171306933068897330910461952559633973722302453530725641746305449164593123043252057111106599826839606295021012284239626910337813205923214220064342622258569689282820867891785224156892201771280932320653587393038958015977935213267861708235439097604832163729347848491615884871389901955327864467799639162490129047946421259782284565776595916461665554028124088133178645915987771595696727257293420109932674766127949403575918814363060334591807931146449748778543758914308254977002540283311908643243976803345770859328031225051472697028157576752791851320560271128879370367942494693068067443484908129025887229975183387569453044800920250446506130843572141887119792329181973369978916428552168955959639789962784450175576518875841508673421363967667091065042628772092235206147158158816546566521203327289310551214756482837286279793584433176628874792530682006536162285465806952593308869330887266868137733096521912112886985340174634413778744834682272315328359140734275382756716627431474485496183272954615164887392948515211763931682123567332289582255962231446437337079610967518209895966038363886183943379992454838443746670721522809980797022739196835600287378384845390506507649274308564291328398904287562770004338335891325746292101805554082223997774961514631481335670702976472728346099898388915183433142252538052168581465722565703263554639561188060987620492251267306488956840397918286288495981512226385293645164737401430272325687011007811282434567389322219365641357668872497994244156932990062109945113136443725424055824120966758056075654592231358840835661416551118670223442780486916341424666821912190051633340786341756001004707051499364632095661750831927460972747832711563010887402670502507117287160132988241297794463462556374472819869528021249413872349586419081011314345727606634692484014446045409670819910988287401739849765050536116121867245119320154218248763772306699458663959687453338562859400332679713107103193923845624811281469521227714067909426741362764970155065247664139535570128060154262015041647425479788922854254983790312029964952572542818051743132873811129925666370634642164142018083620227962677946957329408767736207568994152697757946190829758282895744526962644561145101046651205837300099237660231083156080090475189154004184666592883915777550998648303551718426782365525233654020609549627206539619390452220053065923344015504766047424445525391685443711816709206207548933445100044332499941433459554745887677973506346284230567896336190887268286583955934440476892620859830804284461442293089431299710340931369211331087428377277192780351816092365143200085462843925063178328544058822080001948444942407494681124459611281494125684008840849794532373576154051529917168774873514237626359561151333731999379216923676827995046899864503294841438232328994556605255275635007375985891783037639859755231854967776897860237060238318217406842299274388838550348416872135372259591998491626244579241689551250210345446770226004247418075725401750652447615848770196381348651548546865158800907493736359829898827404858643177418058844376144391332227361263410172310293121690353617441265567888519559895598149229078824815897634299756369081017795288332982315961373767623105858503009624713650777564285481627821999911801717251041299043526352621482515277989726668554564654361383270868175499672370492152085489307923081907370393865243536122065959071017959447946097765616887850442808832666212845666013079805814709706747008131207170163478852049829209666142780055945351193995946117092313791753425531086963687420697649047374208603241839387157755379210674218691661948095768804423118740595406127631863973308393562493147567407029380546120362066977805748548945833687713880010650861690211755560199559062832151503477008625154576237352016004389697096313979615769999677509836813190833728562266539793476589210164906973914341152785073954051432406283626692044504041264263762350207145257025901440676674558029791114326373971755645689888276373652767561043396611403624874483243390760425826303069900516356606577015182928294238912936578560123434833762294882505805883105043372833840705384831596963374052198394826113887767036356217313680609236763416768093420581940057797362666012720976503222951740973521514033373181081198839121660493169094727593967135305074626716392602682193230780224257052385048635261093660074601456588565114209101380397881620262721095809482655757782540422506111186410922343576401269648164036118177602713942736462715238763790345607414232303856138720671392336536953648029809348071434142017633596972247025703025446280079332374673927734576245169526623185149706881368838662486969926360979540212146187958184751176778492381668438620125451792037612672417021398213812213182809412052278203238977538407760591177951988432967498188850245736456792630967621789942388942746644060822228107395127982310467979686403955057525905910907320585627911182867200950664143531207178782131275384258355936048620437370703396179980688278423332207606886495174112629615810146772636961277749299469617591929724596429251101521428493641750036932387373930230370604930709340482052255042135658690305147013883081427643407330219709170554254812844698183471593298030424722518142776725253907349299300513247568224886025590277175809611858853209423710581204662136070822287017957035723576237829146353502002848184205406209840883968684910729946327996240986519701133754407447555031145230635409391126717665047413217409511443339131189229901224233107875787025008482306950556073683318674982485029582853729298826231533147255761425297197487152659628183693705496517947527357039624798185304412579930137165626378723021304631209514814500402788222984483527597505861264160499816599557866660736440190194590462856490596416739031139953827819747052182604726952610122477097452542589926316929087930527966960430348081264810784428026055391043329293742560117838199451997747407933385385892805249445775674430167684300809733473889188379676583307561387912554509823650823764008312589743439154375536931235135324166522048661075778962221299616806840388536141087504768810820341263404909664523451138557038169303976353246393342583005533628482787421380551743649120979396369163873685887916630034636257634932595245518206874384287302284338146511933167887912568572526349340579771813123896013062888829319771082161166180108425461467528591387749309616732013007503618605881471565509784252341296572947934024855013682069062007278293020607225464738737170596031197214552037733956937337674009150894979002082837330953934650795640772597901328292087477305581287692521846745096952067575934373806505677946891309881207496703555028764139181302049187491032292127409179823986564309209569209590813045649786050191759146373557332962119302322241293588773174731843206986576651000051584530787277272117003028650419788488855716981444360346471303385097657462380479101396760718695909629605035779814132240464551974802156356837525475512066126969957946551511341437239987854617021428680754813558466888513496914578655971469112396211922606246910860801590438160832565167985171272151810974994201233821186590863998855238400113591575136063585153626438101519572139487942337857100152611271598075579210969792181604936933860045561061925452492344645309852661910826156496478732887460291045047381373889565520914403007070634166586246533692735609981604988214144020567141524800374695551202656732703190826886914621601589863659547836303466757148316269879700342304471821262081302965833533323192087592226051952983813803662988198797959991140354099450425543095945417034038916286625945013914418576179136111098114298839068742671224680120123171309644738711978728204892293080271573445905062824842082892019642098441295620839365836358142520734954707022540726014774521119931689434026260906797724230689769168108501800310620499666331661071543752202445523610737193082581045183804897488448115217952290801404368833899710503015616732766534440931441650045597818462805149348190730277896344249495860748351100479436425172574872110931950568108500124211544086152571825995326628395048521551123868096199004055144277599717362576944440373165315268272228963284831940175314799647477835175634860081475852794318995444288664697838787571391684943699500880842043301081223256759617879606902264750528829511891088771409915551397528443638497938900077455585646583858674018010688248811451992956412918170517560193830648888802639846175531221843573706347211041628371202659236604983369436359083822402155895790878316798442913191869726813843307901840516106696063385000628780794226579543403281654054114296225532003105364354448606974371533252821301660678738725650243658525469632170443539263733280346220791273173013696606395233613192273109474613506302478384671564989163184175833939773137791011579256841736914477975843599709488912587339548757687626603963639983028850398822271407251512469665901717469854176521923292998580242728980301545004071810933909322757441082352545656138834834912870001971780450890501646318190314889591851502428060573929834705464996902562394922148653938992474235130341155747963468708933531720158696244575884482439637580477345524433020878189969321286635889800476811571456881474428817180097672233944867701373554261382810314499873791693281126913038495697992354086150524988520599438354389248550764290847026616839696897068811183962790921953857507480946748758016935839517221597466320096847425080278040392106376264838939447353271694161615523871031876789440871022287292732928614794246598985359617657038811333214721236419518123329818955904574356488211274434182518584907195328305885547543296412470968081142680913907685956468088231347303865669111786774069098311653554211253744266331327516775775187349780930706402517570158682210650066912195078691729937039287739378651001197605895481675526076869054716602047915053530912090878517777342262517394351643842224524260099321308459762427490389895898622388679758760125998696874384749986892971266937276615099851517188546491895668030175256332777764806422369919692844528288515117652135423695605411552198496755976110655111358387627919452679529903223949568845522649263742920005920370410002722817628727718354870699352179905044773651094633540659317608751548598152377379367335718995896476296109241254328481692746148293687032187836349498282262154069534599352787618246330829124543896994264311214899342349883261306978482864662211578389601970597444152414497267039438512448269038063688338209306112735177562498195502641664216153722995265734320799507732862505625967877003350107055570545303403725054439952004297470701241125747121296969738246827979778540312799074921314876588353751028406603152333610083755817749798280777976039408639171135881246577564442254427746680296502359637233921344400129444047435802109287035424066672814029987054021948111065617545906081454651021996862852514457171676327267213919703745809186496846395043476460643566046456334564799710451591577999888765438095302827154562986881423446509682617117085806546250234159165228944474736389771270259340895518224601051489445892541387761600637551654478475457233728013685463387711785928774575430446695744622027871965154727886468049638920968972160032483142486918192952590598081939747474252317769823599774677988147661265427416971032293155811900525850984126899922852802318636240272612559537610072445212560722790319523394686982044198419864452314717536019599059951396968771562861304473878282023884236754278487606057233134992762707561161689894585014252700461271554415847757825854980893047215694196374578101262245787820116720047780837883504600239046094152869232541273727882851846338433779878507204374667076968844180549710426813814530415968355054284702539879723594579488462456480891450655016554729658633120847963251613948663031499360376497944551274195966190329815033703779179281065134007768701949348805942578886809410993388556114588398714096960076114798327837336448176827690806175308061821648736093794717573024229592821366468686453237739841180962877096273880763740375864869443148310035150192910139358565850146509226773997668532681111055591517104353582152350571778402900436525061900067691341615231832986137030755647374891191664089480308073136323852172266107156625696807599920595913447558058784853558473056455899481405265193020584294430828466258130869403677735111670628271845043046257896596322249223091928189683560853375206940511760603599435105528573695298003139350563269004571610680775757497879222431331244336124092144942879541884742865711861270169463900171689447399542285917136008427154863625224911847105833546153848923609040271711568236554945644842937903200463037898602658520676903005818761160656265208618258521001219699714649184830008364991622292192104324373119695958420906919326246565909187775978237471598493271857865008237050230357413671167349687253620749485367456846257617025482396031026261051359704181504327340727685550736878149256743548111379444865636799213692530678849502983077674040271535003046363412921697480591978335622528478408419725365842832185120928777714886901864743821775107743433049724295036274912810542059837003198202675761549151704009116486292949073758879774410854844140338571456341681251412010115197585560904518923725684499060065785450060167296268469743287843024476473395988723643231812397650322574175445712404822834715545058689157602671766904590834532295834831435681478622693379344864837491967354366353978833535726318923203205681778797644712395266151353697359132553766440749795752400200882391641028022338595455525804078551687972720584734312235735315864591797493134866545004061422627864474552954304449101034810816457907780485267851449403326519052297705676483768047988777495389854787923483051132404830672772321769287253698545758421343942476193309722912568903827273688572123943026006890974848082741168591244860618505860876594159356769115886631155841203841212670472359715923587484265966388811654398555923090856441805053832746588732343335966774823203333521944307480052810475135973466607000594578732060379447496090767053958533146473272688086321285959636994150994334945325700516494563061032289180375638689948246157333784507105661089245380831771889326420298504114508470931332586803727912687025187804479072362375499721889721968455371205309945462361530045569115394387693977475616656700910206806849367783491026813095404622272353457227077367556202525613853277518578954753925946562891708908206763554080293374668179874182651960728608617054418643619100637873618420818258194039192301549929804548904950901280022039054311478984818757317231577732159733476680205897626595769374502769817158001269552876275110340587209998648112251058317421541144372457508190987848383507434822732833754929052217284172244100212251397516743788474792856072728341459500383594336770671567361870881456597463667821438035366943519515558277851155073622320481531949016735544509993393952601656488108715592408610613857663915658929514492344093818703201037507275286721939667540244845016704929245326883559137403871347973049462208485324720180396323388439907799231506688505343310640838204456997655431298154384420962157046223283050253088638029336817881725972392401978687690632072664664143410213747091625461181082782467699160894357447555511795906029961427178407295178436957616950382837596209328187812606173514424267350598067919628412080455999708242656041959789463838914244421418488707295679669296081146487773789523851134073990113048026772372100640973078845347852928543130141073693382019971426044983369541895278019397983164355906398569581186870995170277240826748791000926869593055827327166878240422312512601262661184076990904115393615585973040731408526444946862368520776362622364328401267504541368206211075272495936331262297939035232046106019669278920903293640546486293809218913077693378557046246661519765992554885199253540184832148378529142906565954480377999564076262091316436181667175421862162725126758786798304067395125986188949794298064721601132989051033405616210204164772143767967993350499647997478861418145999762345282170529225127087505823909267596175783048897618211382488816230970683800755522666069043913005813178624029906713515861309838841802263445632745842089453809698488766123689603573328298012072981320503282729074000670298081184760392113652723436779916744863981853440002025534789848236557721757293528330835706079319262454179519252859604950635290394517119135147650205093892356900464731764716504018383816151620564248192736731703613922359071562094140340388011149396490188040877308206463766548528119720339167862965447725608375171577452543991570784686751942323914866653672931279383237298521537862031794406542589330237977553134828183717452212899548615663186779122887077491289932113107760162326661175575440190286664137972806636096942251659168407248059815403930026594205182390667757837809542880944303787594882090518367225044581184385299135614213127770563235860675112038826623395221854741416794392179792316075107979458315015246858530837909882117966911114067568010034513174126577473093351199222845407762786161348836555578675478690152447101680567700690964285341515419357433704058031178707120129888374612932343822457919769263230229681513058736536658045308483588190462556141039909455559790355645846880885158684442488347205392595668024971087266962936692979234259196924744539029090967621929667028271450406383734053408775516805510194488190288130587100842364353628888440752388364452511697528087942856450906448154912740468763983462965165964462189540185294050285364140097042064513600274413614625091139033524991715550127191994535620145944416413036101134428376283651987032023821519713060013383353711403347645237667549126937412891702003551762663554887535195918636300262598044894452269448137907552340048938352881825487969750582941467461176027778951522672441498318884564395274631796036701682005470131166176543107065039241257716378778028125524649513256103984836398793256385788381065540582272089952716419876111041529736063174234258449069305962978225201124385529501870030372831754440821247295715422633036897774074423767373996559528532534326991517085406998596068584117798492538790855083190514240712865257906232382255216088784699559481237668425367052920902498689329121670827678136688857319296453169045886561718418264888871270317421528336100740203420257245203890119129693689197278422355556482518457464971380624832424384895927509234187156125059307933243542206922258846654768577206293722996008943744739820140814369902420993205683197312970646082172009887191167609902217966990804965054408478054754151422643931613410939791756688026928132153433639867867268598444870091730305357951262634071034016483364120730706965434512969121001518703977527521233774539527473035803520003185298327757401685490913621428767365880607490951798662441504316247711137945010097299677931281364956025758499722744117887683726699952724851152076666923326423364957566608518401801738641812489008655872682268428073055111281926340664027398306123431077683556623038227655417492705517439280592790845267752928096662885448461677256795079857840778270374437915292955460189705285552220937143120692852669014770238638300926292508576514395679277110298638258862271612097229203186022590053103671903308739012726468450382378003162800903447269715143812454617506169557856921246107892104043214226190141785412487888395158180456729517089488522889144882794097478065596657463097109771476401313816404235461951238296322983452576977316490318343487108046743238467716776724732626419776294007850292508877673509326105134023059677196538205813686637026514972978085607921597276611541514325534390412258146777040050846563141584512310217015806047716938499513513715445282840680257830429390670440033034020254351485137000123437586211991722305565267984971725751244580222946265799935552800858232682798603151723803044337651525363614218845197767777826387090160245380062374964330336956485653814977116190104307089896368021330230782443653360753829788437275870865664778214661750962749493739895650083242633737342816163469028769815782825598263828068201141627487609310692384071690814063266234803921300162001035593912343304032678303722097614892229243498415144372754956723139327793048353195361598619449728415313309573864827113107362725440645174107180726324601768519096568951259979253766448593017756533638032551632024340271460698383252285108404178954608235477828332300843867594724018312898738177532476982379088816783937566429769766382434362503069194407781129651588657652206248723895610479196022724927073241553770285894711184523560066495924225238928915264256785506473701159734365468528641086718525550590802693397983613316738088770146444790179317387343911176430178114917404943809463463094657777637810957718761240169967670581512232723182411088651062260344565361267582630476706214940632672342399542341134556801482988029077893766472826320668974512425065932633389744908641147262660538689776162522711970027431505010765172847262236357438747515001392129917717714139599572244449422186010731670233348266142199910930783175811869433133136726240351162173188580735037471381983457476847937649220185940845806887697673154478518990318492603171197384994701359482694517774839036971206201783397634724566067375286243367930088041118377239040837574102180539937991806293467987720457518747244674360587796933572277152805008126301857480269049519584496778460109880663114663590998186987928338164393094548743567870246944623401347531982886539228230093934169337522889441748686305536318927580332746659993223346514432979555525820430911767975243756118810050156723496830462152602399572929560030165560211461887063372852116590371785572471268011354417472827302297898557792339476045293032826230909350465443166399910233331683258273155090891709380216922759132046220007766722916855626270872564833754044255988832996413183791779385148495213266587573443723632777695432135844537751974584772033068341300533036971814668584001005577100821897697016981936989458651040144163006802739856907639937460710625431664744965083351141678671776866285843900743078780588295431536229959388820626528190345710126219557243638238441165992195070567063615597611192192566818182568967235963026634080419814957380851621196063695463125233182233433723015311086673301626936604827752678308851329892853086568815744841535685595484850412579726111807762526578492903994076919629624050947443390172647526314583299822867372421319210981027060387555774222264425559732604594333146737142735071917311844132090130847865111588650212929809924914683449533399296178482402835018620073987743318996528894723547927415887963090548932642590394295479923703534563611209656831896000881425645056999831832690614346434237758641254679440004067471739903962827090484682948388237691693057430623342377041067933690557275436228084480348293671656021950433733802715546610385467898712995478982801054839944250165292297749706346973713918732013867622872747585508509657208539363097152528349783451425347319024293723075627599451552365971073250191756814454097233348084642191083103174642264837548181998845079862797901640362744302752264641115160362275312885732063082628849195508982731642010845653507452992409814215592779388678781129623822459938807569108996418708665523690602200663073502037550654097918662858503354096864374171881722130880662902156597422700248172925458429403487370895401575496048686126563826278288152149930120798544302701080586859891073847508000520168948119717411821851046709628686050688240219123606320222889479750521044941277109677629553978262291007091848590192433460511757244528578690833360966518001671006946918046211350980056253217325213977938227859485139800988669578367960906917393452813153022492711917118149025852938077215714430889291457593757828084624681876578389547295559381998697609244578900938055870942942742736533150117261727327255653756169284591686898499506163801940244561813287131132804836746587747414827206960177203629716204902092825316439121989863820371717303595964717601403915173904531465068722444365052961164399676037833804660946525125341365096314221544237612692071301925278901073839397043553746242220425523984589510021828349030615558488021180517064641490279368874936118416582592853771614146843807769272955087739401770230656589851607156971529541047432001262024871404482206219640437924982627364865993087342400427984765167495551296143605345279288095602831233594798294601550125594196706170854578895488179263636023275180720552707953606707649622457724929746296658253601434601117621014021043152011650343256149872872354424639221225839382837460861056555387693497981323136063411932221695216275117900401801966670907863918680745663669598122011327051064337118520720218419686740736365042408927327454466167122384956517428155681351686193270397472579549746634341007832493988908557569091843908878670220593484410011278436759259406421451061770058974965619531620694735354339887354112920000411156822330416525876378760491936289242959426169263090559012173499695506162933314156861775446653624075943383492629670569446061148126077052823553360660449556023175134389002871898524798651887852353906174839857881983993466206903269493763605667618067221140108870492761785273468977921731735329064815247148496059762121178694328871807573194954332589083795448755310223786221917512927366946956627295164491322432019247547892491965653168586776214068509614971605129749018124393427449441512830411386525668594000615117857437435671818386067791186899630663958983077037086382827601021602253274537701144768094077022595357228573023636767388959730284093057781352751697878508048796175462696542718290531449907858542983106587996310699148586593390911978950289991153516038767934956152499847351660582190562711080229364625258334924843348438089165978674843890228476027299803944114476555340578211836858089828984037212323702096419726210006991802449900314991748552353061197071598852290117783714990308426224046695939487655498680878124278327266654166180011831566422603102961963463552130005548397632884622126408267592033056424581356624346797084725355572701299813928836319138236880696698305446076375057900522982044216053404047466928065301393698344969850080207977402843347745401379278225047436904661622303550524608129360699890270812748214850972733547320153467050785482061530543433602419820722388251112533254225381963983625657468031848715838397673232996758302781741354093145824971447904747687049152463528402834761600437584670851701929005238125231956910493147853872129124326979448683699450673240585850102949033244397688547193804596229263020193537470025991289408348870504232807205177961306598115240290890946582915323218447251632340185033851225456745230197519084930684384351921349296251722237944885734401451825858874507681300369792682576518174843411682719309542013450502633064099954589201251867596557277473975996877533456245569208034435985670054106448556441037928026353752734382882453271627816977932596303083710191584551935649341682062392669748340149660682399521881116145811344252923004056334770949748702587696331050034561963973160091725224154544663295393622443372961876546658793640722008582534622667860776553513561863052296596367662301444384645313288065015005378773922649661953537493033073247402444559640074323179049204317688267573826337612173291108392610389938904154485852196858419374982297330436380379616773363576035606012797023653032493371038929708239238885467145419125800053440154870866408365807272940571399182397632091404378460325325390129409915427628971980667924560729290012469690021688371950863221340960771887486764693098451495426927990662050045724638005520610291558963242939556392753323524559755122547292949112672408569780878795241704236412036921567884185206002011758203016894905130555912459701815325570346078451494187048808706346844666740763408866016771964673653969742362072735411933651889779250289340261243499993001589051000438725294320319322485373726108924126912021994396315915283900818037344842183962164704443357237810158306129806312734424139430476064957744590339840802062647599810567468414534037465044954956546268215499288958398533528114900576332997436076478390426111141164119654896842706842591557303298541662998663735179641516979143762721167576526390916742211311591277503024376242290598622215704999364838815761944611198584386528993454376741644161292786836539280786866428675785048451347995944754207239479191431121143112004221727853778265498827072016593449831726582587002272801576202646403532697501580853875596525840300963141498935526516386250912451764467776007124653516478119098348618328911034316937165419354701075272067950664163834045558636649807051267865879924448384678319603878565421566042310573393363674097897103321187450303390563798045570814913103158593093872209359098552137925794425835978479542568071216459109041223046555830371265065500354594436502766291826755392726270920569311941378067288801896543920298777288511896006606855850111263281289320368669694831168012085968913253502077295356494053183082591981475191566685900270289055659217887051296431013186265826282594062935904957838348998714495171165744126840779866179256111275024077514313994369729403963931250404423702784676434525431607874927903793205557067604591689448602984023913188741702739809470204888679302363273036527450653174988790740045507567365164180151844208616659834128505542495774875762376022347027404734959313096497527332851915589341301918871487047095590803696684325442425104137332781768253459086010708242622197334244772941579960764479702781102730276467844716923022079636279065667696528823166762559731017594117798233103967713989226414545848373323200401520045987464963771543864069193458094927153250430742473978571885905824842252175601286389865686312996098297570949331495465820036687110182642947465730774763394424264443869192880979402628699176319487464337947002486963916364910764701989183217267660064147202669190854326184847383788759900989148862149977843287230763315513314908519399616429540520385855961055581135574299671948155831438261934771655229153942276462793965467928608244905009177721414245952660607722738046154554200846389921696174146505578302906788318378266027842172124326451280899973765825535518249732695782141781214780901424839318431162783497326364380487562635857405197859858909410189827358614182775674168644010687989191414916837344742991202081136540657262815805424685360386691921958046283219520024228915641054839232023974870977700342084219309685148225946646901056900947344290785164984432690635324111339355825975601265484736227032754777197154402709269984224405845480209157437599463090982326040140968861113538782076627974839757134073125569251132550248067031364659585750591431253121669629482661877463747274643791546384336336197734982890948626023887877129601225068420224941767358949633101536964783164335133537910871979642860851399088808394522467533860425565274438454132854773033869784659721642404855134113009770914335220958920570245895248210793318444924367502305814550942401449162516113936313038850853591065972357225134915126258798309829250414595826197445883498164750633561879993991868865707358900607690901706105611014349533575901106777824069277685618305411773335974130515764900146984631469143019113011859830825654779109208482068658132407596878425023711853266031665139198772640389899560480234947448926244993442692291928266766022234335045277163615772675721294799934144065211291313554233690010065147356282505582706820830761713421113654642886347681303242674920285281739954660624831828405399169180333227291465336740316265640510021537874860134401478272548717445229169557746509654315336754401984165808551208603251490547351615238473454174230513453969329147729237979198718482813726565326001741647504799510869729817498056138523562996780515550186144436232240525888660911833148789225651216500062519151697721537889132162299437994592556404399477406496074668452928633635702097304578208225547932653782732401272955194447514001992585532793442880725116421982899731757454419988358674464831818944154893373899526819223426459736708501342818190417397878838671530078416547693967084901627818813361924558812416228472046429770135483538490796216240217083893941136612538464056669937815346881926675261811337315354852164626989367286711252080194694620750354074004364906637323431207744902266137254686194677651634876979189823534004508598068253550505197366649502176135464092524226285052485825327642953892783272650360172707434728218004423373832993175740192080289217537481570103902590708211701559629789929050865039078127967070589438079857768754650770835142972823821484738488743401555215513100796590123225152993001270349418818660161440411423401522400333847800497909975927971238253249182198840495122448822216799878163787031245646054338438784196630354270481788408877130293129939962079733211661317165685995420930334764896878940154677394227875444515288068220161472820732451783569073375532603663357637856121940645722962556178600307455155562331046381081010973180572921971020871705861499995567707197297068300479829705166260344651708457503609583377375096916490014745749440994861582824543854077880192760102749709349314757073492351678840827762875829894248493541162967093408086164631629924257783613520372998607683503960240758004133649143454422649875615714567767400493805602513708296379962361133688568296905923768614821204945509720510920462693883618246092264651810051811237091267087967002312242477745624917110965009747096166938505272097847048017163812815127252573251530489450081475932104912828895317434589736036869037364460178133349943469701196067265091605530119775171860614245238868592174942510004542128961148707437830218601502364948482600419913699771165717399304119506046084999904128305905051607722842606725587531467607355234300432243921466298269881090270986154612965516101273573034434333376077141902930811089168420733095476146993849092259198677440915542731935879008295572712089818593402508770454074566445881950625056644710475057990343376809899304483998955961896082280720283868496090446023025528247019856059648689976181013831024181759258237827785009939627651580148361050047200773248010162954681660231582425836453987868814323779921462790628650217496335623345569673314571883185594404635796075969956925544615622788697601444197839272175411124069422851148083362964054806895277568293124134576712519008471604891663677629274821331189713928691062534500723742739189758168133065089525285386793856169295143495418414664719993641644447998628137552025922247296305838775664496292548550163776916330922171848937436362318231787547619169025018681063090752756098916677719182520878324858000707233958129759235853623280527669095595123953570256452275317870802458070969173951245371888973485987002482997404945692383694412615988539884141180675210871299648482570488460881854287609408204508449400671339431192279510100731697286399066030820971694410596438332881080651506631715186135874273050053736228060078734569237082095121762452762795344867161118378339099171811971289134461495172146133878970013354742160583225013478330385057709306299291499864494993786267376363230832531346619223585674606810092128323847350725448572198085193991164842483016646757571580907958852953870140450806239700555845877334197159766348994380701164519313101587570255658365064512963643628318562782139346804026745234996775126085694189377795289925765511611970002622339857083723893640569525887913393160443310000209705752057207007914906235193475953610562629138391307785832511788786548315158827213617459499229186302587578735331003226360765759938756034680843982281673468399914143443730162919992149064752772155604647992112749193017685608783041403662497461564813734397276237511245776700359076561598540444848387184707656853987959672313209610582218770310958604465015612434103058962594545864608684706654673564453418231958571583096123842014104463085240978539783776477800352542436203990505525290099320231468369521348118803798052741155564224728646039738445461097356231838728179278733387861226617747466581866095201754520070812736550079932952936900155201916320401791994786442500111862520218253384704676641572448986527740258346454073482324975800373195356937664699616095053006089112477155763136169328398972082780966224296728171680039300376102011325461099776785069000865427244243902415192114037728149998597674114050675055397978314137554229135188432205717446154607349020377809448263100819821375338170345612153559179184731421769852795263053689105499066726157945149311205065699031196718988278849763630008861632836606003276783794618571687706616456250566537172672005018808495471619546599091167289442963810291432370275805070760754447642164482308278258786617003016002521064460300676387394346071136516493887846071182291008289177520470592363318743740415604208650781863219733984085021794531433475745630826837002113399301126116410220803534066970122785453984355030719202052389489611495145409516838155454810975769884621555041356340002719041435217607218993762393649869669546552875454184634474599998911295659482320665536761770511703635532388690027684352948909781323683198106317107552156401577627596893380994659067519759227785283309859061139809777837282848585627118298196292669987648919161052759971411966515508591818858060357634732997452835276489295188461533462618396187147864611913696565829787517322932405600042178185683015220854672747625892940874751939168695619012517696387812748879881513205890440391321499337639205474084515034471611263371542108997408010172304028631674824032853401530406890579091790740592600706980499998312228759384018333609281813836022265396097770939821858179276889597154198080261791459582504166607690594794391529057760543247726521027835850488077663035728646983594822994420060455362337615597682823226491386808192762399554620928972412670293778044424904209250519996558063299219728581694634237815386817150640284762681916919167765481803732618660626256427568802542077426530046898702463388806230698399909476556355174074865663651836291036200441580504188782984401704021183573545628087740289525016765372472109816728305649996285754288803000538765927608059552212131509814756909580436156924571009546214173049729570720729297870585829344194066073700662060306657682326035354277222984351637421210453058670584781886570292878399560005897184806685322001830465874211405291435455805876876507997673074201140906302170666471272899598005300118808049745129214262327629829130656797645472879499679958310189252554968766580423962428709919481834222585312238083919138986696688743453227271567068499494475713672186716589723515089234707996263563866412671979565796592632717146281054743511513040942264755904917575108047036078940622047275300953620442665995474211541099498988324770674853015542202289893466819669705166824048132079570801532493270322819970082667050257072378919679107417892822558819837217188481028347366643985712825984671194474808159288475818887107812893128353549656996251050956199537355500694001931332618036069949201471148053920332915875462722857578773737716032024832453034899703517276494734366060321735234092622135237951953814596329929134916197256049540801831658011415731123238660071898462996687236975175211992460728126580339249735729913188172716313067045508729162973091355127925773180897667931021066458674576841443895773252184759127577921386316286836600571258772595966062470112988957276759565750481704801502183082810045727055039607417495641604432565538165621696820053375077335556086894196621524649817299004759700434786560518200987100811224478160336226530174765574797742906769039749456462043082883480424805492855449544854019968146039873680992272906417804162857466044670113255552679949802259686267673936288618375249909414313387898857873346893248386482929877696546777731200840904449896148421751017422092134404137438848776168165707320134031089599158312538655777926874046512838913805090667636413704320586572231389350014092196877831191800757835313224016586821034106149828323939673501734327710809577631784754368619119176202257362260988671535502981955455661005798155108289199562648027123755656008185680596648023262560109030538566601062505298303151372602860440154816091498661075164439151320909248264978580502656976742858416724059197665382980766560884660255374447908236334248194526624222697089780389829596972156230211659366491986400274993101668198885030365168315626080002189358250389279035264252945716559080550218001380971800346212519021888210902509691845833715272666217836345020959412560506838908043372292443209471077634572826867373612779220104460571356534871231373124054981644838139344263961894548815965618407116463005943362313196910096269836754203694524023400157316339684216277714173586505940432288449946249045919445755234226501578788426316171168846071923929253363754846171421470861600408424683523703116139852598712307974359087650833724631809033795842179074023967172971919143925971174846031980403946455006254067226831120724066524896081891491098754918492263030800121033166864009015392379208792340235756126060468304965280509679340104857671432423907082951906199984657936487570207990486653635033944239523594176230297404755326195861568425306367505152936450534679111426535596989911734946327383225323612397517861883141115407807038538230892814764038526926418709028415366204901596013253993898276261356509375779126067285427918637721958086413709408712221444875461023424832898286073168724621996284174151052195685941795822963717157593413206026938292988608875516067469630084712158829639143435358509599838760043130708224029458544972692065042118900963309731775333598499679893375356710262245420589780643859532364765456981743173011469717707264883305099852533273710368009738434869437580075506479679216772279278410883008530859429295776038127572821300082773616859004402793799331099228704862186007717253639168229955834901273550507501407644939644273781252264325702302077864249338540439739550847915091978958825251139703748072875129133595498615474470762893240640032085327759252004749161719144757014973829808900849618716587046251377894785639538814039499070044776630387154498018155044057126034381978816981053796853006212656255708952152192748431168488559295749971037003952292762720630868057581865485521900364294686713641419129307543077275828222236734584348336668703592946315353068553270300844829557352140453172693920505278382071155795132754242713054819221294272657771321269767629995496240349976153446527788131307794492322802513592458717745841512512891668746795527305136610607652232605529774320116310671770290953253654302000285014029864623070007573330744121075050920888478800372563801133045042555242575177487181417605382460012809151531383368445292160765577311795642712055101299727531543017791677505909516422065002631776697065619149464344599021903951520851429726860800022378562123516521908456317407521573234222088832164104246480015640393673776279610548625448052542518195807920061184158086335914954158466989775326564216779093313396339457226062917398009108427793162530224405457034516096177401165881753524509398653098565950687209903019080899235736996191007019379293229817807742321794452500649809023525604991188167716865554577215790457128149543629360771683066179058318846541745534663823155104493471539180989055097448922244079711120984856377274649727501075098893972229369067466759379474357159213730789768700295695515353771199340345438395285490040963188471686682697849038246601156888875778752739827311952527836240819200043181106655717318279662186769183080613562650382449161701615305260307625705907462217703540373277243755125326533108942195038242793517646724771901707514081730308067578759622709978672751784486002893276554489589821628692445985174676583861016608785813359007131803874888023162581531923369020686512914706075212575902402449458060641249114110232933632468731859668724008983193642547616258419607242827532810190114084069281796196065769984404478433755719142440023400773895254406911201956415620095063067768983360863016251560235441012612571602532735377326160628596102338954570414289841226426033060329645279901522961549176219146888611518222051606041247769489165832937361494591275054331394946289641535559698564398465762153541178032557179970856997614985466944508852642523985651477840489515289873753969783453017016137995548700143878891004680447536058888500631102843662373005856119996200821342001926802675254102349332995646034935282200146075110200183716107339331506722068380944234269757049789883340218518855101424793545228805116898057095632035553324365447967060046013776142625026216210080417165274253938960342374609944660146974826133852934145585728751618728349041469601138057681101274497771748480032448693134048018608553015388777997295034979059205127817344577906647261977540171602043102108588379368412505669796435417401575583892672593626844911445279035431714811517669469239721467705686420501419473533180272420974085027335331805840019906733266661712335550358337454751943132694413037565292351294949479525077455824690343739158714040826334491108279697276867684104655148247744061436568286078084547975921391848574874347026696917956452605206428638692779285818600014512749930418406110492952247807455470052298079744565939929520264574649593076929432121668659248659188133436427752360857626829829412572313238782502003115047719503131196402262994798291225809374890272574269813739446702639698100092767991084463380611191628788917662326050924140767897639488651281934300159016187873541864213670536548722990808762889096565067866891291768140650792539433099084710993063419092144617454083610431571569406420671010103998325567019946686634651567410746456023055261046044426259136815138894906515496758425416770223349572399509612178442299442440934738686786888173257595202403655670123453260389876384136746591222154439610915505918169595126378501071342466303934510123098842713172611051856582691730825649013370945228039344610087330910417507831792151840596107771890611930495277658480521429879174514661650118327392565352642609532177168962754601249376785122044107799463183470721891488460453895913092856717007323694484214483112221453648394074641081324950608736289324899671114195643245420006086228121249920916097427567086296514413815178593148952689353028835451855971581076263164740686645795118466498332859118819209141911290850650710507782006160861898942729815130281497539868112534411394036161955608746724858892056495762108740052146750427022559961363564953408968716697901678089348382057984141941874218793465276313872438789599409495546949842670988208768028844413912147980129551269713475371248858150829743040706099242194522314240887794701765170120769123345919791829350681401625101552734316124328989532842241338464661966367536253092073171645973669265635167157867427235260940698505218207821484696329337324526060144290428889752989140593003045138075460665754689879985075177582667469459397240315943056210491790217778051715866400358219103054255554665934986847792847744045917059026336800733192091712697729451785651565651919876380077964759167491108311929315492797469847988516722070211008458543874797112392697755532517811264091498369197424052354640061318074120896014680777963223892484697258300618257977050266023645538752513210632794741467065262579113738588946485290814443729718431894571968931341981389490011293058780086540857790114945326281075724643483240482704421274965695544852624284275908855416002957330435126839178530914768950050005972062647081166419906408720901167955321336675113562553585402049731602537901109248619805833809480935949641505818165370741096152127687185980322602535433196562566887735905347218327894188607715184475668547925866136297213871764930677093640996853154213762149224693871938370770797861661181420661199219136225353311049561975514156473331735457608748328480800339357124947635202932422513087657808448150536272688573027121683179480090873691994706594265904656942626463959297184652669529585767014755616231281392906283406357152198552242851291998754612922640517570786197452909774490654286258473481369235876752236967757400587473592900998866164293817560063527784596723633311427836068339903843764276533897546311743732180562093564133170414194467730389088836154599187246245652056476187773361981176047382085497405011146962311919997550086319666108773331075123010815440513622875227808230036065013224884197063980290209190299729432682513530692693435475079550798272872534613047851297199573170214939432151450836059167370336159920337339954512817804518031387352940699075169634522392356176953816341299486038810791849496821771981026851844840161973793928566933615383692388658428653657748268576284164465943553254347435358578784548197657775250127805652664557839273481967843113134601261091498665378160509589588075455136741521088875643581690932648910396310017374707802281891081920953635295531099353289395658225226019286157027494718754389225468947771747930636162649603975193862411596322290289699596463352726756454949272771422510195825772233548120120791361941651712537448727394289212204438448628149824279132977594352308272582908945603478800040356908742476011732153650089536801335341393374327297994355053261687152523653702833464191063438286601265348166419122021021133276032847455610146310278024977912550261266726412281924653561975152741583437339908625434401285962159600395753349245274021197398516089674026187519636938152887645542842560299134299033299353778120898484725599690249669779588412662031878250967695438925480812174128498686905300220185377256243893149876180138924555286603759597576855607969477746468547981772900856207423355996914904226625351053095902194846512546952081268058727645483899197857219918755919802364249659295934149590265585799074284773738697132345716265764929131007230437533245695862329445144328031945740009272759961111420626880442179292037622568041837909029968643685622901070852438280340000053181624046851710572040625126797121585260701437918457966839360062866537444606179167714748527375465142729715354851899964218192375523310195225138274702578075991637512410614640190702181025040849654147740646082565542403642204174297017322114620878803455320410566478228690431343666289534968062017927786498889815120278219122114669626636387956860927295793530809507864433151482129949188095238006334848585046488467652019232924099626495644908298632950212941894707257773523955308887317630159800578355646771087498841474940122527081717150706677964536522507740457664012278885726512874442804005450546879314777316198467336292386907975264865202843975455577074218077883935482896078095263354766366956951848903738677338621151866255199611205755884814793965099014567790711690824729814703575376828136379254177845942915681316733030747319498227497122108016278914603679803235497332694939180481400699747452014981688111270590458989530748285593175949638658053722036540471915392960959833746266011478563912731525759618646355971230366525672086565451638282351251179302379756593180251151634490515866667319883485371583062118961526003852040381645529061018856104099676103773576306146171659689013133560465372075880653905070327652451022179443423284776913454582607293997010160845895283591636906105000148624459044420136224820262326418190266049965433291243615403786615028150828748838768863868637204732583811546431601570407691361563386636789406145205247431193931037728507178012181350784908884795904419625830429044378429965323563246733913019683699011628333657728921357264708205928983296165595308477951050516927964072006571671154458941273825025534421856351815934360899245486393207908778622053923662329997081728033424509178100736331161586013134118155734553363787655239441314852952546221569342399053886258157786549088969994840027842286441374196422789658456037568629742062522969329473095815885817801388189020451878942710260161273138414299281698342949454826664951677385826536263916468780748562599324715981413415662738690919438842332510978506345965038906026857233098468834560450088579671379867032318892403268025291606170252914000464774763816437840507723564950976574932517718608066851746051863325410474190963356757735634434552993355127647817406757415458227674964880679488721591052748969573665252497256872202039194058858948825038139347609101045569388275528869977610169852996822692092374514967706638658837619279617454539776136591964478086807251068841787618352920821014329230679064515531248866198233676656891023550245257123602738552914535804668508835455598130476341382583867276752116282024479478400474767520324448878092387327198971144224335289100415824518576243124065798502099504764126269622126326393200818437845140730742495800719257309028327558593322187341138427350514308231572208475243750273474242765912980324941112964926332278851565594496747121208029877437113291811276338705063910621955452184326215927100588328302185040640692317591403059297654695453505492454789240821828290878779599136827341015475315223905425458286203513471785980201094884695035899924250843890505386254105473466533615776117957815730421809715039055122279365224506644779374585302349260885863537078836924525777865045282326947201708968589783967170514655629231654517493875421878241727855437104572368922643488725422673675627238955133973044242912731482059754652822773464713298394374350776380414190321781560604355680715814339155508924245898544605977279725494454662364366682416736606315344990501482957194808376222437792477544019234312767332877600578107267787469385223861189175354660964586404970054353430209552178865943209650640011468855726328424506154593772323979770100152932112363631065484770895157553206091952463412948415491875382126495813977657145834661587845730665674061579192319670318410258631678749366748436343840573593890355709103744034775365160069719930754669937052486927771794717526938606240480497620766106286710475356249551960822322797566262582725798505073227696638646504336913638966188103177662488174746218326424295646502249579677035705513080682362204537309284183635235858804735926175267203307630548309166591705758849896926075820482829509781593947927324219182441951328923222535094377487850326450660310647149091950353970458985285137062996036008067225806305164199976722673801992814163604702679586863964198369625179442975319446534352109695338945055655640006966650360490939382574456005407861144836645754121105819426252336603406275969801139009714915222616251134248317079018070642090142157686322996630581842393225087559083267957441939069799777078262465071967299745624420800011204563871241473155844091849853593310113175405175648238449500511028483424764855182742221991049848452606300526912457834682275548702461681640990391499743823024771207988399353617099647785726512524127167683708512173177350183150410709800838031021920751404646630396092835067568280751113870317025917025053634675058364948828395713700999551847060893153216347316022387747196765003218916892440626315829523820731122787533770312500892991803539186339199698754887507537720241016183758823497092838532775430051565053308680964325265410650043104307688699916838429200399045991412715435913354805227808717095392367283537781897723518004547780476352367902526127519307055948274593744024681982235880910859981034264247478795297448742329350212287985857751294049084095196315217857171311349588256481974943424558260054987974536760654255472252103268853719663226664997812686396833693271104675414269112057060557908562931830271296117436295973661723351473550672315042020534409966404342760235652374072999200109882642868016782008263892815643621179845612547170309233732509413796001509358204976951670656098453698756251202179661480689808557580413804768567756793941902865246680268130703924528865629823925979573764213683663586460162399340955754505346470352306030705012112919237271622275246402865521631714115738498919187185045825722413012092671449977598716183548642959667574685796127145639821710714947893574173056699359502753731583682998486055337906315777390034993078323313789309252758242269031879068358567005411859307108577782132034584551129613922755113135837924020803288993902349076172593204766956887653915893440764449126467966914132679733865108832324441837414467992520419153629663193266571261699358910095649791433703941138775081477360527588376651332093621489757010068362601523764852664385776026080107245073089816716888301900388856248444590014206832503336928217029033780256377114418072552520217668293564213491877508767842414779013112777507359862692428209966136780941642464019672886455378761510411474195988316230969072158953037698275707841065092103139275496236088319165115819847761813595529364854779074176675961355842715339380138467146780339697842901194393077566977743991990714405506312844323346492854384627801098627009607633008331242114032003672740597158581584149468361977511166117596383242263230735852357389268964924851125401071735582459587513392672010761308572102254301838981531365785121650765796548505934445542459343039685393997251624682502709669067691026192438895504427097799833874412691513302483393981792634466963373933837140576472018648582439301860956621300399386142997851367103183280790179275929316776811009989016000812509259007338536796308027917080555918685158181448761457127477592325834044804590920116444730701139580274279688726475787378066557514905585183203302816817404870548416393992747493196246836355720186173390114101117077117349211331225819994026816143782071802065030441402626110636377786976713897235826800003683812379867489759969994922249742545291345540799065280186830267731454547661158227392932868990470313146761164349956114061086099589622564519068044466778422094542129145239933805234213275210661223997574390885621543900341476582106770804986490268841133192010893468150828427914605360430602072872680538357797039047684984803739515258451869281765701434708265047623187214935213753132520754969522795688490043892474757255073864181426651788502143613005884897056741324227714961649625478809707040473297409653908144860029453319320510667694615101348829342545190062928957367674532833338041428822358127724778635568352993672837572057548088159622016633599106014590768057959860936091746496513167384450269843892550182214262760419211201099382146529405615569769493770208966527226273952796983828776204612021290790609367621203669180603196505163554595548855484632297668662782406452380227269030671922489419536204521269753145345373438418810849278370573757999089953108125664103756492052910459812045974931534302495717299840806039112029563773915920694704453066405152255957866891661233456895766040357126876270454317255886320481269228246206413268191631428080461989061965837881460601135396048798766729901621035774200277865065963316223769900393109168453848269512144620499341474923040726519134466893112985187287068582261475274372167885004534670609641928615959681888135763415626280950088500378100563284262938791336035534785011651776187388699358528482613155781229911752491036414209480136599520179529376940555935758458730520037108101038674711857917894978462269759815687019709706924810613050210300573215511185514664953371733850094157896726344491754262578852295556846879803685089560271076252375389338475940827696408383877738283698485674374488076521693796524572412347056142190782052770168907316090569548090286896294571928616865549992014286294879515005305738768800464022802039948087173671152053516045030190489537551947399933120360048633702769304610823091369260810959489125276137502856685263643462631167498101702715766956368578738895766505984768767783555025531364960485615754765051819107693704328741019969348564728015057780919722191872700447661235025608862520234878944675847492229273503278767122380665918460034250921462936917725043421357193073210218869737240864342522777110853087130625449075169473021018075421913564573773588032958890323855278067336120440551319623793407365483821677386777785146755343231354502857301919844005858513356491005458084870450020916679074013787320334378053087408795666447063600670423112802420855691309167338382589679263544546149478074015623461417559800802043796585556022012184987377755827403951694768974398070578733511080790664455629697293493983161693509293471157951933305628950267461510071535884949389013725935965599886437487895497482530610539061060135103195433326120186648383760005346506921497277837611485326856093828153257825447944650555547047636688593500651544645960213650560559113183162537082149636438573374670527082626461281506908133121145295964239071491024279149528584708331585475555041441435140553348321587584622066526628530173872145899706869561274027576433005705444918375928965843256654133628315791213596334104915213887373608618659706471868408770257038557410474781992065673744293598218082049962217860267699524041871830273794311572276147650572558122090682864346851519296530396775229910168520946571926888391477160232253846830984982382996351972771814781203942017357598473596618075666010530010106784183292561275695759293544574942019567656119852461371968764775477045795224359230388202706312884195998865145577891461047899030798151971537914576849505470336976346813730698076724927956569931185516261290594683328775009842238330044940682494935718439947632514122677104674671883042842358828923067221171939778457055677173962110482597366116704265665937242860511796177082119253213952082241115212262565982007179389768465999155236482089732351023698511363533817778978251029911184585498976543248172109137679894354026660349515299143125726118088889756206608582481308152427498237977223849532574798027079870146135926561203952687582317594183920700191366117328061134619009382578634072982846383840892001762979228701035269977309247350660311935943728575388483824439340538604903490898630146007846109552369103130029707824862207187411194709313473955069291775448641664297524991227782540101136584145030181059177885367009872646389726987219419924765637891048216782822307718648111167960579258241562800111717245265222111982623088318843178025984342462120625340494909436565205626654141506318458039707082830958785645740938790796252704413841478630543059515228569478269262802363692775186586155346393987641924069842667558004248297457007961679309969486581548389870296109092020140146511479362672619356150264639671573609879183301956758455852639364633123050904345548189193957768728845197612452064577809460725741812834091532283796264010422533091795742071762705288185628177595583941860427895570857196082005160373029353325415165245465371163229244886671687892761790051089397859353990533154602850345893536875360421490939997017571404159162654575628710168100164355739635381000812704761674339059039286567602531536248646806122303481647932351106549120345376620684740829829809914164926092463705809997714135846626173506204566025477797136945055880116196867087746611675697591113052146703676993727185506828075488591624564807889540422531651569873350395039103877003022267280476229306981671532672842349818717131221874695850040091846570497492561269349730668942066367173499517088263735277174118149966652010745151531778860773335664339374166727354514089681960806400448982053078629717613207568011139510652818203052637719141367287242866119824867767325983289052823078597948009477324994988558336955520533047823616703216187020759504758979079990565527332710646519712335159397018933600894106118108947861128451379276864544263340151450845684423581144215431043394945235186388729581755972306058131190727149193992461248206342316982652932975676050780366908464480331743047122025995483152098114647032543389173237903986652007045949553260517249329351738133802775703078811994668427849172792730086920475539589925039858181469552366964946960852500437415319661411886323159713541946950768994374250117154737065682090091955617454374789080644138406298006352147601257659137690637847496240049719810546229034393648203544096559753193722470789371592607090347876640322826101011488849144141412325119317520574880330741203852277897167611727842171378091154816973855769018216274806034021649592228265420716334333185062583403300924132581433856726336289161799188744603623013366640137822428905200701957191945436171032303078362984968583875371191309121145890141198008931334711711901276195406918137054292586448358468702071100460781327471682997958654921647014559834020481639126069979298901292363557663460120406588048232074013584799912117798279779241340890855477447472728693256572598102396819282769910769385813213258597876689139133950799026603626442380283597356555064334276981510633115705924901916379692478981210251957004530413773395533487855164506646051273889755322846909532931195179643959581129749766207057561923476917518683922701500533043681322524255743205098355237932578103730242281364512272316472780376515253543430400453551105418201040286901404032259639467831500504364401129173026867733320358809251999116233424196356114791839856988251982292983512518627487895663442840817421938714155990099607031010587398073702933915032020436526263950908332913236640632264411712240967652001052000237070139424231579605248555595918094291060833139253949026633447899595069907167682690221528484810814887360818491509070855621972151171197550696169489186873892175319837401914466883826239905921786334532982412755739227872766276477376431506123532565621538997485571495612080826726304155455712211539031500416474167568002330500607652958692827812046071222071248058918587944820886339715668731335256117476471484674154615965256576440076680614051408059637627708472711812419467301926607439431129761236756368304875377148798937035781152602166265287309173350668953469902576688315378777348255295587338641809087568487027390939959061289480078070825504373483987000262043913614982265815409321581945053510607633913914935403668848460055967170011359547325019251510948928370136831937707011515231813890752267509201211085697119596817467390665190405712559658301923397416959197859724796169722458610368067553793163628625620593924039355684827071193618658829899133806297333855568928483548870395125972155656730561578522377130730195441006826047772590876743061520217883999612190112471655383335602409096879885867966128054894510018321759642527815632938449693998694145487867450022408815468223412314501063241915983499701100832721745240556893468800554903909621568054919819640095859350568911480198664833373647001030819780535056042613099200805564175195021113336463182696548788769937797184210686625266398503672974131262204116853037222442737150186159628760648940266599691570587475739493606986244051711816385149543349504941319922834541529808927529218405222797645954530276270776616636012380235781059568853340912507552606710867939862563299739911742667750204371598015678511673545500605292056356640407071589345917986166248347305313017945387340221206174865966997381574749852400868526769708440428581600785282067473820028772966622692069228186508681602120684141279708241181658993349135876880812822566295793545145679552556737371232307910063339497570642683242800869662293421101159544923658102127920408982978246724018932617089117907057819836362101938171170205289525526422228238890059349361746822423914270344037592976910707890330032894594314503889049143387074384659715501754941014319659997342164723391255285337384160931741718129513547508985895957549011538607684626318896479236186042992159977918921607607114052492818085672496240961138784232644552938235468113020048194532792133985942664871516741296039823714604888829025431133558644627051973215543442251799929073911175517578469943310460308088618844512074991275148878166548576859303682571460249544037220972333519018258687903804841398630337339013823054160986899688452951823356868655151805134948576149640687247675109191142564051502907097723719685104778992887980654602474577546790736280571730427959691825373961857104956073569586517922540278383756227014211167632485733609628651829845680847543459298710049133196165656276494864807695403561109681852405315756486318555279092527585167183661550235016008985522086748185542899310654155171422523213659643612582409965411660853285884355494961658044958403112558130968916763174655678949237801632739069190926740367144071937439508566415536502370712801272258098691479414764793901909147208080209401406468375252118413001507280120389057550465833749782706973275887149012294288216304145036422872725610781723399869010425511115896572573013768973404870326901676596893545164388811476314574543884210494418707320421937061718286163200728773768565796763938506051757248861713534097905205303510659842742717757231123673331222604199445049383992999593418687112204053390482583873212133606448799995882620542875200176797892197139139224728313282000994929827287359349719716343599117343500557185865193238915090755952560170917986757626650041592997723658452963620165432953465073566189983591832312465887227885940161712263471733850712409353039110172437661017146846639712520151694243568955297640790271488866539656603986654869099228227082087777999112629125821834589274632528550910585198447150705243905515176168208858136106480561357329147279901270533243750620880107367881157993512735179165355412722705771632141135185502186919803764985002766687410642822131338696486126754481237602152311862706369282961937800557063776223590602980243277863567494265324084078139164258298881665850610511231216739630231763193434746759638189633946672241347914985166664881730378064158129489650501934864607285974387366633602549601390603143949532928940529892887806242917873947131441942246754066616448464471915485701105619350721052641251746907165453495357770861562577411094529626107174733726144765510263581313477323213225488461908926497874068836080385392401275354212342645061303458051648022127337802485330858086172260568987573147753240105979845397090749072082627572667711864337958804270066763179664559154088040174428965272764813652822633613334351612975164178631771405276024364904576353915063284272598759977714802851314800028385751652200940935174521329024179024506043400700660561174456839452565187196126600153764612378850398238953462201271328188924268870740513491461964448300363199170324993486066473871072587129770224076919371509058831382396274567128782708005070002105330146303614509773200564136653317439794377136259367242978876575550823441410888212337681679947250036969747621734394349953977285252430488926688682190201593758931435162521605738304954847611034867541712527947478571189023790029686282523203073883231611567600839675596732958805153477787619953196513067601237116437996736351861126362674699961647340232192119560795405329302066537094124640962791675668702022798453908175316116840650352295490884130563192307097142739685398277335585006856035509843087375766480617635856648672930235801209400420010732945068280473794160095151789267021129176800060331431961649203750597731161504134169140715275756569029876549708851701485211276325072947232875037350897678246618229140144406241945435803702252676766465187209613260875427781607116673681771253332235633089720963241858516310185956511825030688901683801807886938919924229567842406361876745295921451208957479793312379145089214952311880543284862259274918145090472437254015937409608248359973844903121124062861474916478225549809307248139461807034471021620967221624136110480775317667619318714470629250685035457993151286635216058656527228063280830533886395702271976707848031398675948425993421320704647675943441845764762911524546809433944631754964771222825350360565027990070208681592473994702110229285412820178627289208645404291995338427048496522236785890895109757643722332849327862159700510828251268341813336790464124226628027810007297284625027152683329817531216549250631765482404916032594446197491367902850612519539636548232534001425202905474132144298578515212286380482603341645381072386956074170534913297609515855578025333545580145961051737375577404440207793393550821712411439833903193541724083557643731101282764571212872243290163751843779990982364694527650196127953382951683232844761671575039646106958165034343825493874451294973387711923390314162047044974032876290089729389785793896469419180408545407147696475479437533524802750046818571666290016463172019830655637635548195427981598008190634040931255173189075916254575996813021023482992529628233938970163044114911160695659384345540900405828292997452236990504581463751876236338473067175548232528094880899736704477610315284168133517243217734972197378222226463513259624972346598998501827708594677518111530226583787517638920415940020293449958469903929107677708412298538162815539672889222056551233575289658803767321993860421332777862829069704782579416647685023632153834106719527915438924720357125294309050035309524748527378009516118809042279940396080628595823613107239880926295463684386924317193987870764555826141443324041939923388314800616430260438471980703543047246992248320821953193749824338933535186611981461390298250821974869172307199128255254636441777005357730675560503695527248663004297860719536850036481410807652829724448952504815691812705322720526985032442294086800252832796528653597197512469855706415061063548279094228424607524203735629626765800720785452394831411091615936591906596012419754227710986565781414682144032556683471983859960753033597477915169149657259213447352770460256194598158891469636730413625632760211040791154628567402796723779541243187814146430123058314909384424805491092906337536781453844710683980197943232603043326908030391695059985617840378569881851976578263311447811070588799447237100280201968885866185127434724311814525069329073427790324376529872741986176444567204221568416693482120746708338061262140195024344245595257427809896092669467948460877610808749721985367346369031090625990733311629679839588889831714033063220221243454039796461984095161014194925703161360792187843599362006146484168113381369036164475436270098890309836785393400183742447924975650393302200402599849594102418600694944741131372768814743581241088973683114891758541414726393514444845960507533724703799398081374698477107844270360732213980868902614995543856204697905831518112785412772358953357001224927626422262595381205468074825095289147916850104136880469804712385954636540681297092915816530937163806525176413549392240511535816936677028184579484394296741501920689896285418577177123291993307595663272857054890298038003598236792913750016456982424805225531034481423406476722808418048799478836119102583440700280066408258796690174542408601976582355397873217722104342162429182558579272514931204406796343120632014843885059106238109887665218196019131619109837367874869044878772062759420006974483371131015108514258927375341265516000820465390790762892239336555438816642692046005467640932763009358934311993690494328284925682664550355474426380092966135000864173395198253859350759350661797839733033314854305226234448404737297185973482174485781518420520202126659158750478390978129098270529801173950893523715740862173053444243469941166459632690069885746445765358285428009115245344227869058930777813626022595764475195182390153712728473338727967528033731655152849191901603654807274831947307253698498339491485614440862524517253979358162189309146345851810996877881848798062352925328778634518066630775889929552545106142030048306123351834544829984726864638004033975939138580352701973264995521136300454577043130488411609548196724284515091502943328514251805588866148535759896995052664004473338024972935712875830265777843184320816332793391268053649161824833355393631829689798424285227082755480188035970955788299448041379155887960980283183734234057995725156571422665822477709823745332579916234070219356943556732951873249814578459857184043292864644314649849077387720986742177803958200236781953668937248279526233130690366487883750043992345811602343859461405838306820419222619347974764801235912029974117505523341542886323702621275418480883460934713038348424192587053137906412735441048685002495015283343512471286508442429043926974635470312226534324801469876790928536133495927876993501464410438579309263495307956296917361950483954280272318666206321563151804870745442837183790235119630051954783621574802292704995457938718449032218869382661337992402304816164940440718918494388009684526497898143601549265794503480452483294078372582810050676317849892775506531078212522482695775376408394037144107746676409408845634592865700148755127633444310471078419514625062664241524115794378177201136573360662017821463601677473765823496509987375689093561428070017444351525455727780513122360501886839209775974687689530886198788456115368123271166433800566119679849517855853430756174875957351848730280287138691308550996229652300166556767674633715409073652980784752058252328155868794482487520450397619594197705021573792821996515735132971673417030170858777968041917347437261318797498361132886990281162074747163356868777746498544790869338623422593139782354914053217889560291558096741995346385795611626395470319338144364281828384109853445613045773852669570058468111466007826629057321171467120272008118844498752201760993795839157680791577123215431101077520423131031694990673838826810866624763190710257721083247200992991163604067194260579857209363992544612871588999688385310205758026955585426960397811102192365452250842464472365419628740154352174009717175260427153957487109236737107318366226300760871188710164289067439765161441844288981704714793498370270727940587088325406383412541159304564854763096547013893297236984731751857327092319493516760000182759042692649714393165989757203560512186151251503908100422270890421063723893505708935338757816215929465552984594100410559058486621030870590006092595291886681322754567438608081405134407925069761665507956028556912990261592477128476231959786952355178724576753136792038396629098092609510281357047572410260558246986338607598241673247768148963440368470368010910751789607893985066298560953225266256584750115169939270365444358480891366775812039751929462580768707669193149850210549055269352317656626484780322937428239755664821107141346063764205262268878237388280090701966442891634315903652222178072675276272382371793055711678294156171855795626481402841803435783871832475872887095762432789984240697370247108912142468402522546978113818047311641774754691430606844321663865489716862579909078275839301965204499183173065556104100392061909343769481126208981538436223167208939814880382149546914181541281501934335828497653210875123425279624700033227202087106228647828252201537083813432782483879987271998305067732179421638095665155985143474157801605817127577126148038465750263871557321933361095262114258551641032157354914041248807472579112827623033758276492171049969732066338441298435549795493593845943808863382793796335135316063282373231875052913046863937339284992019958506110132378398967307480101332100067043238030555513863576119364925550833838863981256881928877102674843143154375951608159202840974507474027319326208580608152865571322431316165408952282264473531074508289843083507497543081319531988104561034080685442579218737864636351772729335890110601046989454378706675714206995995150118674295491490352452821004466599729644927618654975013028881991535579988844132509701028540564018574598589070582504846358867117873031626670569843591318309475960428806246094804714143572901142154759378718802527036641394732709268363649882634934269409400423908678324649268412404538521660713705524964188993446681242772772018997107337814615472203161783935436229634105931072635162988915896843227932930347037344497525840633151542736459861473381495362047333667775480294440355156442218463951402386226485860272423385722355888400965208758347575519622489156733886766967954054972176046350905516481133870594819873663332540916195540368260320387871935986495920247380226140963484707914602121323938456533319510908640458585041980598506781446355436906669284074377804205375351464838612187745221298769605918517670581647976609218561112157137813762227902919423284554628844606909734502494969145488834710022456497291262190812744283454228049651938701927655410335427008045339814250308895719506176466906892228581260548644079916928992462948097099978174812155625718016402893355183366658168863573149878051058590687397817681145177054220297772713088865383610740425954541621686760909853845465973708154953962369362012977946474304710793937038997469658958345189077580854724758269696096118615416137910558650694164792392624720969929906623683846360918926400935084794627488023949244483850285075189216755012736260633133750622113777362863345285983665028898017766526754915380248354901203195757922726581879429559301656880751078634854097223057973990679765432996455519129680650683779243290230920412727483627038900144551476693314960403178896708742192214241419818605706772807841111124440384242238124328219390457998305207376717843032326015703114427173564074437440153119861961726032364017461863593895309698434922597393300531144131408453286982875247377094206760862137023491688313135233724578090053454704339840211449097821459917111288821186199186632685891509239485983653081970126248499117170810391135815065962610600431584974726960049666834459522597898861043119658174952677059808070157909473191745497841794206720128284199421917209894507452882692926436447752460156445032351349762719214237495618583494255991710689572423038215681669184357787606673305609803176977669009936855747313873946496342820854996846577645141253763042221566784266719281916580940150143827254381368315584197213475482422902459914208669832659971305022329688129549960993723035894989774466291046580895456312852881012167298554214950592000280084280632811149895284359243960083616652165545389780627459951199160832468551921879940301359440700259439270805476726333173194019131457460185648660514387269191586770504973432525159879890804684306540921434547488961656814927083883481544174179849052214479129759153205279777533123980321347138491646077867269931468145265005243052183126438931937963618141676137270447341360463131786983254301760913164608113969734002948563300347176089373672549069448738061813095495970832753898578088176935375688290397614391170625952735236511903157455820212634535816800161787886978330862198200706825873028400272050741201105377576853384901098154433465464501494193491231589831949226434374536921226915296388359547594907504134812791763838489420620840190983958022602765739678966505927158462733074361870836430983301059809779722016117799455354789944450286987750563167902896070547395837055189768456639612127376399593649994049791698234465712559067697072008315600324984490964636768134374180891757851820683875165833040708874951296571242104035161602022533961025300296949865487310755895203763385941698437392925817492053101925912331039202357152063832916111976224192679286751471972330732602891477618202763512025681890091217345880242576628993824955169407314536364577844678225334323998022778825111109889927049484008828362146825527859851899265916033183790393430284550514117786593479731778164242052438292960413493228902685972375583261179701664565624511512986756015998977881740690654794506596039985839990458452072886752129905793350370417146486083250977737337062358251729570204852109533759482819871165318917671425142230145985396641237180079549172995274796468694348825801057535290587116545359493243882065148875507136998226636696361493934701439028026813855917739764643181481604272867752273732894479505047229812686079285831177740801517159877746167584757125858473300320777191806211375339015424162798469882185618631342989209437256063058856646295040749949854515110180799502476944254469702565805359853310766693928059166255309665720698688821822226800411912109213446162585401766352674096223272385096101479878403864191092676324809893139919754721257502719094991673820472280763521982139443650013347974242637171464426036580823704615688337574228579076372410106252085233431521519434540947122991794767010297199599482580402451471058593304398986273973789697739148746015775846970470092910494420752995323418887301500969330976717155134738864946694701011959999362864002323311200968650301752124784973360224171678748717615145795143006220992303556276007563307870147207223938546489723629042509857460020183230114178410797049239200809339543971688273073310698905011831628500005536873994387662502733412252120251534738652235999028669279031964206238814704747421651832600421465293327215184630328595641179277170606097865196501685646671772979474900076833649981713537408843935129993198903126485745179138624858161738621321392176226689873118349266788219756447419561883473435628553283853108219025895304746310769353176184920936968996663361474583717538078498304309920432990248623295043047909080497187999762993527437073760928755382140312091398610875292107142657802495284402383664306679636674666105728593305440777051504780970488806947523992544291351592161099881444332494569101948690625370485516402271140403983504140515643833498815653281886199599241138978212214902936054073696534202728063358185768917300071452427739361674682368391921938892121541226559208779872018305152386878485908557184665790445713871957431899258519006258002221476670869232046941332208637085789809731493631889115123715075254567988266740394480640536499417180718932270542447506710778600152225685217103635789407868798449109961094617648066692662128986016046810340308750282182783582638129601308448861868712760447412986349654745314876846984329025529369658107576915275992916184596201232122283201718597095132996623264780777757787686869728356575478244081062042394880110058406983601997626135040090560086522752440618168697933642450405474360796258114971138928370968629782287710408230340117014595140519423927441706499127585159196832045909013017834169813729600278524784080706138441792626122685641483061447870787028900153130015649458041790566280928173186683222881094082075410814365127663254534868457487966359813854539716076401674814187339347862245554808964644979220581848258218747790427213503223360628850303498329813785433249355506443237704582001111817524706740564459823732860218445045334160908580818889855921889019227837283332324558688169835984378362939044170976381582257318160797129891622507548074003526043995336647128920901796069565179149766911183043704331555325677080841374291409021793515982403524777420910419847742068021054871559647646416731418296668371565431186582299999870655725219987371475450201006218752564270522384317317880632416245864403739512639737789885174471622001710971458299863983099993458296603140214157701824657684218662434875608566277920793044468567563019587870161055328299459008076711342929638381173428582060033458557584596402890425543240292994467177417150329031492257638672580682999309341881282925371673584647106169271760504985444562413610068688947437216290697660401342511735175143088795940105249754539954765405916825284069298975994712771741954138578715537776619509354152379849909453280778303260062511215248487897180166036747069869540838952640454588650715495496940150108375359565077664862833729029460992883178626078186140791978664901707054545820912452641403687781864603045945548063359112195002810039807669890193473028086444809345545814339800971642781837817841381550427318040700078499105227855676841738992332793809017778071012283555118442333040203638189099938616469131502040239558294690172310866690211327943614629001741234347312415892328584832458978423511872732104733890386141580195905757353800606166136971811821289836642316345931230363194532822147069975543910693065788930674435263535828898763650699191668948662201895972735148705618748834347556768296798287770708530282052485101451737565338699984282914523790574722034222039378252112671591569042436810242009793274971109562415998149884006681960588557133407092158096931818914910340065522016186778216826401256941918967015021401740601488558793627447474129685523150893849215868970701727976979765368254072357604715676016093153969054101517583240916023473810508329842214946183227392913070771948444183169654099519345763807193826016099632120359238013086615682468957687574178057697867135045194169313746977283964085971394823706779717601805086971914763923602919428745254339151439828519724062864202138799057492581507185086792239241068400666827928318323571999111672162955157737210396703897221723958168284165029964620747634615927837236400706134252192677139455192382340818087536781410017256531862767776446548988566646323163746765547250803154865144153471231470763788085489656695877578539230314328073868724048634479389165562555515775578888259599997619846499028594001550107523807553506493779116851356625408552899072234446323348831603040945723719755718208588202542132909954995095336625796322233145844457582256719025275632310229394558180627069405802894646847104459429022668027404567104793172176617531693285422342563379252134114516470055042992702039153360043649152986923168219688418668495899686052867346226163201570822806806725196550324955679491402508114825477730002986592748218118433003107969848357513273105228944421700411186243071774295682423500910169648568363095441670302561385040807034665676192877699999639645021889129810530936488284514942781332192258932832208295475791793254903209177969350657776585510377947916739922707236147904269278440807249496759220196670989250915575724806367396982711044238873640666361381970608384515448938684968747344066636646110996617297591159344519610488552409465240558437042515960376809501454548327730033066335551300277530888602303738205819916425787788660689786500145633559316107643597642423423275851812120765394261741780294325927972164910274268118510231456198694252754007489887161274105675956902905403408861393587066104884835413674992781967778106637092250601520386197505409243523503284726960724178389797026450359062889185276175303403443891408043428040593237900883171057960743791827081306050363144995119951635271557057871258964650528186651630928910732130975962475718919934659958343975739600256151962495589661255993707304147431755687307818316191826114125597396528392597584879987294335080313863175790165682809320319916721158058003110041489727402585959732157129670549128201085081462155784072457254294984761284685464155245006608979826571442210171430231495017739287070842835759410654038693028224971619459173854397639030726021477082312565343212353179057562244040779393160592613600593872875476342428118421602194392398920493900767314274637645845650603275239568682141904485619750307754689211318604980364488282056056224016976019469227518169315256988755247955121115388518984087623683890799777859858291160230913354299341641961140496714585347597108916299926035385728754361497956678512896789150333795597323649855896750618734692035756974121165928729872431569221813348614417955573056773882978548545169916513514000868488304148320629812754130263981232909091229700457033548432646371317412726508046498429088807163039219953351110811982277655314551637108481532214120758119747194773278853057703589909886415562459928603158713268250463242154989368141672296836658256649445319953426470422062464038991952029938433862191141790565271335890899127468351321132840563940028807155126253550717485505135644378545541860805061365313036683982454778292218830448831345439402640682844878148951200133625040013392094198505275716759118310640391588932871058518691976579334588620674900983298302271066437709291504094872573546204421216329499636243986729807066656212531031673608198088185221224931802908757190115269072033451385322518194637691169982714301176094494075138295109146933586960015681494917260401657972395478037422929606118596537831587941377127223500846070555059064551264305467051283081505216456409719596411731866220144274672076744784607786748159516321007589543445970408703215268229403887546178177571503179895810133801368460165129963567267018672426724110178172534723827984856221166241058628386957007092590377489556813880002485846842309708156797222627759546417866565969415550592338619216449348776830577519209090750440901598006394424638134579792097882965412039120974537794112528956483946694428781939672111066924260940712216186717446958353759292960281872313970251109671123470871527337575106109096618108053467006880879789531746613238972096598992909520104027524598294481162648125885197167800237163406954611716671088899133645925691544687600637579749618470703529275811259770334447892534365650378138912850137276675488226891666354406394344736816025315508761814104661625647515948082310875092595320577676460803027122356022928970319618588581584578450099580203173715697202031694772565498667639812338768308391006824637501764059613480189420253868385801764486615437991255020882290279007531778251854456254633709506514510686250599144951731770348084146324195084458230449198954059425825554436222739436210539072906160827947914448658704031710527621865084404147717768272350272662444377268193274140480886575254842702011548129175221672614756335142873252187249747795719873973547264926182318999079984131929035989475994040379888927856536965459836158481412675756721048424506128722951621752718192287734813956073801087043114859500328098242397204117698924597213935619704089333278887661299439584816950914396515361766847878103130482662099831309828850154855381782199231271757252893620362362321231550572365218081117004670090501465525884734087099779869349438238667192489848570496669091150431471006410068714012239328289902152607450628207282089362465942640994796877877799662132324983293137269390359017043239934322691662279995274162466973487025265132990960146294566241414099180863117178742960671516191420279854254187022052120407539830837749318505081617879515554769259079265738010804831569583714974081134052465096583799568719340365133344188661304965756232291063506138903482192299582377073579923298660678375596547660123784268424368211627638453486169975220422102841820128160638609839135362931056679929700240395757965675170518263475973067768818653128102946687712540854457827109721538782641563102547299010660064849793197506874437824842288698715726038072742067467331416768049782385648576864313203039666195864359946460966566362617695534888286067343424851694143639666022278710725908824925584684508108916148296177519903808811989013832611523231878874126144967607777390771654201982216748535603168259789356347106362847282697133184355640344428717464077760441709530388624711702224505672974214903860760116523515358004337977624091570781625809048545935332071406486374080640869738311156752100255571842800032855801243845729868285795150406639600833386095910536779464366692722416945883435564620822924485957554824701463065888363179079296203394472069781109907769941004349264732304517628747074360577810114577961280719654813406965911017545965071179894853645146915724494969450278303039466110514220456405500614010146166305349522611071266994786286536364840388996334247266217588450492134600990397412677013039992382198859534849730574604564477505374713989688336841685623972539493066711506360913031460135671642455799220746040655879934166410526089969483120572100975100647430167522191708905311895512118816460897505350604636276790454874211847501906319064985586340325951855215060691807973310480271264744513726947314838635640769504253200086995938202588586738906902410631579096792534445636475467270964637747517881210801003240997758975577905320246900233015114759549526000905525961773089828185066514854746532089139784094938853064828451019286320969554483525743910346891041882013894876346804125821956524120670948419732646232212799059323648716116327661539125403606802682572627081568910533240343337169958645706690162386043829397185364615695433129018908091275436839729067081779340829006760654368404647508019323927041236240427504866113758740993433622007640987621616317477761657996076039655712538217302434950535596351631328365387867666151323788843704831298791545255000765827405099068814291982304847771767690732302059276371972044868795783221541860987213157888012972771064397273296315453922569732075591650669020018307940071294205294116974538331777643637708783816465837217584039976637673882680104765313528760219311822711416974933721103698655135920523935138689489936454598230566167636230810862860955514905095646078301878798635985043542969615111546659041536431381441447895935500860492681280937511833873474038524858932551116588857528216450673008984419503606292768259855142975595083512817825453333265467056447025043011433019090050357023121454953990522870658690922486621537041148508271595260949933953962873134723949391277561628797860629991074474646981834973447098670287332376570969742358378215709293707172811650750172360835831080870321937999214572410207115281215141731172184015746457122457501139527954682404141101634842673279093427908881334292543136760465343149830368033392218237304521174256833865495394400002101896464971423371080880887238870199688451976166918260347156171919640533325074527388235695812078287713887287296540732126646233816235886702520005635561642023080745088107250961859028357805057575437524992305206589772117927573347372844187099924973801817722270103828967848389502251145399034752559553708668818411100789015550040443989185927683270870664954207934729859963140530140088636208437188805129830367459415520650002569576368391882193694165098293571254516220369001556464833946646777964671009607696463300466396477489677315801273145737737630650878864351224219983951976244953107679948465437551866424728095049763989233949722022644252231840636792504723693427211243976706519184453869104451949540937357635367102795014775190866882138736318180561435742975104942805868672514008561718628712763539388833312859945185873483462397969259478110252858798175321516577528939701169021766829667924757642298601924481729006387362403812008365940320881216467454531180499909507811796884137422050615323152650178869899071707832588420755199129606557527736404688987355288279688663663066193074295794299186449001167808557471241412261395030792552997725175412005735359522854234392801044153566509077079040717533129710426431734017353942352217965122748687527804624366131942505914418840174105431069122056421303881949543676480575660219110578860833151121807786165649492869252047618037507896066664764243957813738152162752158067462679860212495144963398458162475743548208575069946475995308679141313018215772059930787789657251322618322599501964931533187893023841396197275052707174045193779421987656309961382950580829642947822687227733213368611532864416696629666136217079409650008452058788063265380792417345192344802246389242945118067707335350125358211956982859263353896510512956132344689301978308994511710604334129274432824050593729377284899031624095057373371285778207834472355825589544086876220410397581357156912952590341179164351109883891328674245344503930145665666281718227820140385803674420904017923191757288364398721957207943943987595826730370030404706455534685104977213616021348528600632192408889945657281300859194591515098625107349646261340995583602393439322632387936754559459803091476396801895961641602965364396118970962415698484768088218449071647011579081042698831024786801442135859413432939648463643325496064152138863355032404968459926452328317918118609601987592249386790574215516025839332493103783143154851721777040729974161395324968652777398788355729838233045972661356622920106457873025661341605211911055360601292654573910541594296037549106741304759095199032630094275201331986363622544906733730899381539017044603407932078707479552666880057133817540414272926203544360441125268240440151992427072484923310073435590228743427185645584138133063888043077334864422839641850338346752542977535811841112042178163001939536976417314800032821296421212868896981529042789893709786337197749163870756724965295829503118274687700658449498620828591714437315197120721328544445368847317680186467421570990436488169024352269943701617229887354171908925305611178625663894728049431291503365561610838628240859387096779059386812294512295551440721973152140668361439115789683320521446457601320275185396492188075234396818501948506481872791657249715968007077123721622364194401060481876950391069603283348237431852881842596792916525185633185448196012559106512202248312267772753386523813499615602816282100045298285701448838426403565488498203732416837942765434607012284465998260500376842891642353285556535324832416370872550086351930530783891066002130296465560329243727326744358998816213782022862456965453830126734302107910021109320885314757135487170618560419085889183691060804096092996966862923523173419168744169699192449221907376903659947608027635088768426208423917212309986866614767311335051897528925497379646339246283558748378098351368229123608226835533802768634833088992580675521816162931914686542955714748666746840096104604804678932309605466195537122140839104456707472258696446460111911919007484261373740461699792167138956134372382476263786849080570796452754134265235442762601099086978493805741547382074170550018593010426634668096065199894128495027772872203461271568985910645315941236992025869749685901359012135663663324224251268123354550170805921962163404973135606491310540498368032968029640906568523571151005364346985818430409580933300481084170173187534858210789344732037891800300826494007956351881156887708856957354517093751111780153870970470135118834266985336895389161461210946577578207790860836209047553849126468504687485298666697556208080908677709606761982753506420172003080914305724623014011223584471531457535497851881534938001027443827140796876457102479942026795867242070819150066362962066494397466343102867075056609261409102288215850745665029046084050067107927828277653985741380507700524761732626010106371892214375270510062314317099899717776523286968054618471148483756748319803195304615900231947359201508333246016996304770279883982101991426586265559846115995448315336105395030206781032635568196582925872490120876676404493807308269182309920176382890162654150105618503710999856409702507716771751698145983462514317957358204382387123254888865300975420257214718140695669722664508194282695821633644686818588436639761078163119790235494401428233758007718942595326706553154409018049225246056457399368634951163987220666823374918210958433754231566914268344862862626035736671931628095772096984368831787522989056199103181237819324043887544472408317231358589669934361529736257819226111300881133343641108894201206691238747574321534750811937253170902930095685970551293211682651733157208124662661192379728383192163587230800768771776459473873175574104946672899981606046387808560581292371879767464450060157313835002526702663980330896839177048298068416939901343854534473576477024238256576904229181451181390345605449387775124283827590128545081290589853124878741350059404239728043796353289604619355406750724320906741848229342328105424993075972291438021133115067896923822089559762432927278453303899738837340006272354824702303747411093450467861872769469812942271183919604686007044720958593015242631186271003325125688219131124069975574037354718976098653017216317072154472415525320530994351822401146047384198019848296763774492956997269955887232547246749146749993350406137502464292005560225754750342549497400410549944552372292303705240528189220810797560261835726260052979197311627665386835805858945942267635389352984647601450999098136754207814876276685840037261590042992469652925098256454804826561205976980196584493944136575015701515679906855285466178414586622800730847210084289785483152578830074395124165638991403461879126136262254057913568460211932105277065282251510792155067707999999846722373439800393172754771675254900030392261056278833273529879006454513813877837563809240159661560570389367413660491510962248703303110391429883250792140990027294448000705390439433134746218565277280332106389325153287149798196526501581882592708314670447339816932287324932003880560983484100415461656910411104924749861657549628790868934363151870313221693236038988483676744515878556647741959859963952688800620721649132271654489185269103939251453154493576970679494373316937440950140261165058025023508713018253296591784461411660893185109533151661158663087726190732938559704281782484277855542880701034870238808325822095819049523088703942271508871393891807127256549576402947463159456112362586062472319824403783578981018285425458557293731807217057998458615716152729693416613430161784578125554818264139583101556412447833402350866789855778188279152934764831951792270571551891387162693363395193883366104612009957955960863250854676429212308710022836937932578159267933095707204002547856534126899974493356288940992779932839079152680100389570668117502797630322214802209079244182691214400406511618711633417232086236793174356481923625007135390141123507451438306297798963249424905768367043828999814322908631791639583191520451212505666938070656016925414616430819305535333779073671992240503158464864372484061154433506040600055459740825657473690551376508808501008182373162419587905564137258472547062820167236238101537929712906338683069965723065666764426799370626545251314437851007091085676555348739821847891822435622804471013513682832255562330189344406922685695266275248111138703540043540092614224190979861883910022421537321478157839087744313940872602983621373915306913035521158045206591090325023266974558416590923357991714114966668796570379797184762290876415345359968850201733747667483031072900668338959974882814318460322848058233149916319485199604201573348481351215466253855507449748149157460454492250048614536439432250967703447053065427670080316910597800094278250856060157057022718781998057284505561885293185986306025940274304684999763874200879690864191198649361513503519858345790521184750386260539982789838758293572747384980132841693072612004978598141970476086968397042392854300867044886253562946338500058469409789724935988070908378213050705030484675046656198044851752871788393812035373378759313567207797899422889073499937259669122547206512807430535473583164241848278201702321112334099453818142379956411352947008177573167981047292713311221399655539450046699117622323709388034757543550820011818739327659068875992437516960766659057516527696707726835782902282406485856591458786844838254040509051471058166585007604887581420703734727169349369103627135799608375562776690266919575512931449604180641241141823889133143278936361264891135039089434126281708785334656368299954994066417975178289388754986797048669149403463354527583499019500622187956330473599310423401848803089289649320417083719212238780770584154750638698359159299203514381466608554459017815271765421748336906919377378299802733925295296936640174019607676666568933147951168100500012665096299613491689059633301234876024856438230747090983758647266175917265023460732013798649011580555968948827676046658828780739797331474527640284009505593350983317001229220514701315496408776473449876667686005856821854740843978388994102385494225802860079724220334091538100164813921695274811364551486836586738022546294860450257252291860282547103562352811785268982314638418116935981195387664982918939765903428487561054358741396481482951309883237754997647486009426214834507772775043150364139574917612884969321771530086484382223068356757855820341460882276255955004731908912598626593024843235977938374680949349063209410355229314723800497815615849611835636332526196443975258543741551371894764309916182037936198644104278924473921086850109408546919719747969565391152663642434809711043402741712883832524571201621357302013707717849106758967899735653946002593100844279736887569976625558466948069850923931700500671736810869862657728989068999070933076431606021505402360344101801180103416989361533960339319170724461990997442957151927875749763079161327536666962850529571195623939134465572825079307387980094781501515870699096687846689364190841032780213519023150197158710763133168720871734836461923558867082032338382355265200245025848880830895956922338196330946382064976971124023695306951391141550300731221294850716069459889680255189264898267777228850980836738082458014470076486428877159270479155033221344852711564849985700414547105427728304316512181098759394948088672932536190918766604555118641432842751322372685451403594003777742380837162587950098006537274270013164804492521302424116482812769816190421989460881922961298580891754708926045535186894175575591886013448133430217462186831250730835449216019276343608836806319657303603059193909613570872833866786847532040095758545300961949913529786086666125869912367163383945418771702853114702855143631085898211078456591090203289671251636807675325064095414962704054266178067087705177504723536705548080612599265191142948706947774569494826704059534276821155353615104830562406874014695162505693546127565262293880249669317968630628121068974191698172966006916094967196331849588954810845980832613120362071933735129980929207565191383867672117303580281435282713891603350528152979892076522375176987955375143351250632696251002086315468992616778250108590190010920299534897836333105089839246537302741741767618828849911128306326142456763850663299859628902268615223925277488387748071084906841638319077334503761527660221426419782762546917938714137938078872122089620536164557519227344110623462173608792631931935232863962722891982682216369504747708730132847286922746610299843631871644656230972146931341077899983087607753274131765616582968496624994243915461713051111521546233915424021926397557818005105947479068238291507677373242491418225089030736580344679654609549495611454882915667521740456559524431316885155044671573126307025669259515565712091036212889353825193866525258848136761305317623178833619462483279592802162434735372854868088781026682958850812897964908551737190095233873386837155774421199008868603997328563367535964786154999327159793043250393330251847094752663039868916378700438409910429966374394984017105480646622095204402777887553907942208377203444865354471159366261870378673199928225255129816073594002836295662976551588441090847567929610583792007687737809124796293277064440527287783473581725898142050383713518903883864767697267683220677779685641970741314527032933923488643455064486976861166039941338806992463881026638575188997210468985708001477653474463149952310624012997073925600129114785197832517474115903881732643377195152568295017396802778542125545922963645407020713373610025279891185970106124903057101416463190195629239245490480908891141928756041136393833388034370911760203478248325687799019902487236169102373280836327624803985916855109464325467157292805358332622683540373654269951304680774246482478628614248778802879352249218258360908599494253692685063652354056045898422868570423333544636398641142535235100485662325928355656744248016170923075208483533807837272940554171554232856302270203063906284076443565992754106310309716297761508397052414675419141901651073579243824975732193089473562905920097166852967486575809679904080389927987696438811970440737449527597727795485683769665691257575982205288761285416479787747973727139552831012594497457382463552906765997329238187075755734536486233281151059385247124939268648859829634415128500921407064288349323144927109598176122457645183547475578600907107560620770908482131705737133056063582100532904835911073149665290293457462530040596927432605909776580212671893559488302603539964148595538925828962403954161159806053661147390453643698020864658267423353873480432273381765433029868034806442617384640668868142684258925292606899175291340397821196253781741901252360960701857531239511613881086694225098749494452766505364651986306167272802083619507076934980097581445930828840926579322239172085324495839463460785968955961500537169172749193769772129194408919905534168667420041028932548255421802192487516308157596103329334014232632966681709251068074702509146105704218247089796903069019169743828098296342000086146559719289254134169536928131142267527448090918813127412424543000444523138385765352154746965290636002353677481400625067203679033690170576368678445932581917329492390743150336235412477623511065634049888880217654940580226096465271173103026926076550253502702386587450810937541355387080521960578296872775857666076518067709707906831225869996256098029068615017230574919660057934262773644951394911789530338915933264664305550908746265578553931505235556878757923114467636788788627201804414131551990260433878612995641368985287435831859038039161460675314113897374177854164197852609101602188159098169623741194794146159406884577464633754467685102144324257597394692725144876737115523233059518586932361396790352280670440958703270260313051732343480913335593304412073762628776494412559958420067220186694345983147751148544215695104427174229730312646051528149279758997467642076658967627552283888400070255152141829957342184765463737617224701600764582109282664446805166704010300611440855324276809731483260226658090520636242253392246104554724053740116224662695419173710204420967904303424746162008871984593883641696248707151085850738641046136281180392237227632471485758228967703352916222277976474682097813116933565640725222222668310495307378336199456175784058622978644179771080771464945387277687489719419582962816988197410406615205583640126626525389106208611863800530306755612087037349306878232276278564623742294418651904654540932214064049948104398245344410869248533773966436017282700233666317000809279340893169642934736867733898164296007526711759454662517341431741690657107820782325150072410883820147190441497626340822253320173090076880757335126260078385612311612828467263774898491476715730544182871623076097522638658380877542550711905975001977104711174092499744774282943563829583821819218739668042105251181964731256262502098836779156904255451384428496363161483802015949625405898595548270814274378376105067630218594032772264593610245289854371843793362185810059899398139162965187475241809955775127878811467522025888524455219506217536368316570224135964231437418531496730708739027537949609934360079498508568080999189565371116607357282049180622673349028282957883909156329923936541805843371796348865230288790511675961254284505100472431257045049826631755807639121917727423453108437374783142093831976462097862438661097100980473065775186739317492061081483596183318915706506615464276313606589431287979222132272086939113208565910385505967781992836176109286645134556553170460827763963433767334454785409868087873675055219040104197518170677761182780142742608420273351967533927079152474284161518604775536233758081636022565100628323769138057967850346564740348305706508490390146787382476565375127306419265845027842329001883730408239429325017523803139944099256585848897023173780223464316724840385491538798244233826205589334034484601868927090747494954598143604229877174066878327214077253993490289222726910008140768656161649891844294954112729479368376962200341870593790343432865786010357470123681578006491429785948612006023078320481907320895366767230657159032186345333761558482167151932763157851038278878349231337407851195553132143235291102998681197398636820103318957146457946265243163377366333936587639287692521154330703481566879082373397142649931383163429819776322821464742818067811004253306035152448588335649653909774043200032820422675991307821897119803980091937360794958961445770383738185191232879577921906728328863294085060165741891696661176168206051972930538842069106557693503067109720831832402435510062264209857521747432242593540074146997161208237753932515330580323232833333980751649864811968205268930696361798444382427470618713488852079331367809853165150981318840343917935494190309597263944156080207986579041923373622833039135976401596883618788326525560566617313816521155344864595785084207526085142130091512056934364939792874509177755480317879900188268397967178848162874931385785205291555315351949850245547443426137359086161808143480272426767426826037097648189445857366116736335151390776446145392977302430980979993430897923731045995409164922466396818456457436297831372633154718515631243686289096979821197630906472746926824810604739194545750805517654598954912721861663006617201947829543879162014103077634299342433402879004250414150912345541511181168296667708058144982002371602716947700939454798407729301497948370734787693056193544156701446319846402632662455035736041054051192071925809430899351011220828063170854508525117082055879928828529062876564176481765754279924687951091022845093328086650603447681413039400908944405448084447702852030174225984208897862133442609502134890304514943288660203706685678245246758722429880351193716753133194479131634328836879908597567073517669279022497995597907794279697184957133282338801485680022938530580412700072174684415011067265912827790496938310750476113418311203763886913928463974518760336825260610407744660454359247714353385079923817354427737205652993934956984219420750978550156997480780040857370744484590674072328205207048108863387238967814872378920886066069533831401847315258732900788576906364455707671925499519977171619087517388677071243159058897576695186637281202855383919825686507668282855127912511220344793173440991531461656348439718289421131411755356504760869602476824346616735391135095400321589098207100801203501262459925189775828077180981795176409189971832716357328853338079349979580659359545654804065562002734273407015698870027676859377220043953463197439070454749449437607731288232237998176137583039912190748409916456722965526155056783151710196668079895377728968136761821806372110273339359647634260081584787920529408718353267666717741644726671935606766952910039351701734893239654879704873298711087681599572354368399566450168332638669795432553155395541499905596015355917073874792454443318223410520453197328301730589762695389715494795771087934168648985168906492062474754733678372738708226629212540642044344559735763717598347627250576756319044195387911776599884357618761085539758918296741036185040144052128640097789259937126514231998508332129025139618023722273463913519892208804748038924621577570113858087895339611492241896757452094921441124155563581156272959453843130437089397737704234136753515041251963586051404185354360827519940309115485102930271542846103355750863622891519051948548150983407369391417964860127696003392485101704866390629922892992946737454449580767221903167086118725498135230541675919835659110704298453831906680229744495281011339939319784703028745295897614272719755983470592147409856588307953321390673463253816622050246052860751721960545834850762256698717499848111992572744319611763819882766290063378712159458423786607815769706969166864446350435678785197243856474594522422101924889444014065156833177382342307246003399563918770518163329532291874251037014989429462457024282980472867694076881451095938949906418394413636984002007841328827224741968908732054151994300116588803228237926178683741787007970422187908880468037625893782142020725975898326220929787670050310368511670140875847640966305405516783547156953404034743899577204720619498088368695372537520691749023067600960371167007508924734180331868060422330499887000885392240945930163861487316092506762721137614940120327342210756196357832618970852405300232802084287086266827374441412352203072503742557784240731964551159350035670429281120231074789096282225842126686376692069936650109668889459745816949078005373161748591944486211153069192975281769836882235927439402767828020610281131857758808128475189736785983554239296489067467776208066569918909593408539900408235086916257575362657924191722415734047534242000211303034301570768067708581231663473868795153604798278949401891486648739769270055998816557086312637155746913506796237769863984683595320460651320544197504423082765201175864063165637477009929320011239555711716909033225880708002002399625572707461837506994900631888857449054640687747914723513812897471249513170912072319942457443401578800527356141922807127644751842969244314431670817320875196888362590727951124363175191574894883577523639336713013384886327888378775724286102943240422714893373216625127850574320238518397462453210710368629905776860424416286835796483193315639147245226024171339711871104809268435220475050260846949696641165375579627126532188703843993108081412041177720586967668668631178871917084847546909159819103014793656319937487763690460480879587472598801953822549353321398065751268621942190335600582981789914610530615541838498263801820755943375828267144575840293352213398205234415890439259050885109680045641387971596463805831004537870339275676252487214141710395664137840115065421193382969385197575005215719413588137072835494323698429413663511005867910447141503346633161053743949733036840390684216613031841699338122347031139611070994168947734099377357121940960166640366182954717315293444281492442410734080320513384335496484751529452689482185736461592840740413010278572484619760908028161132850249990615839630451372199966508628836894566381278223960175559851335748491768505246070220634515673247271546188796826194010551296877473789453598767318925779630185857098216198115234689570714557935488961062044568002034499698775778910785439778483224949469807566238654681959704658806170713353197662310125980614968443148061556177171725817174595809673467585015642772517996657533024627763320307759066278004738610348488119222274004875791584283031259729901764723264887946374261276472289955484752764625678657173478549049554106779927372490386176314359759544684298660515939670590756910260914090450778485214235840356650818763981185391630761704316610843904080211213110507591671776199139422719189734299828578769876505968143333577417854094839710366546806421027847671794131493606395062214836706591436894845841522040528017088521993968656958691620045724795829194209831849125236065456778545024165860036285744144329145923802750000651873171132854026194919141521220658826457888477885397564403888082272069526104542785572305747200923130108568319450672835132292749393819328006180133992367079360564440354657769556235464852760102249128697491406613894891894200165699613620219324568014180751835547750469913065471683760559624136170872289074163363773446144273629232720173132361585261291282287949490397181623979431730626395032599048945953428987860214840367638006711299005594781291518882322303315527333183034006228542700506385737214389758160044605521313801081146015703903732552439826940249312806437033860113059014792696164863199875202561701325099981904762951005237734177359263382888849993230094243227476877394895633207784507460319784825920084891481624706272233736760465138189149719840237307214112696273492957226200866604137290102104488151365181266191948118532884412845960218709891851238183962364518891513711294833788153028232149851715073174317588216083341277897829791275402008458374576725071618149277861066813592258001646341166512787544145887620506108132132157484261274259992637151737463585718524850458260355995158376926873681907647305377111991151594385070447778153336661507124192516682244364104721263517606146624721722805037157236798401557293357273000299561833370234335502162908635033483221465588744505182813135846418770182109808553019544909346124273000573003699911700882554589820324499184116736220065445521501106936680653302364733043974141153459019309873215858443217532381665127935462035036586778994040020601026116156852599973651702844949589890885114472540157536973909911132943058153433266850207931289497148920890472645252935504175326261254629912359908999800944265253822829828865868615717151593614877500169216895204811541282606488503246611811260727047199238124554574343523772255084377703383180166195524236948193071631854502476929403645323295677784350708156638974139374211091447960500400817042782693224844097081521411080544188131928711084210874364042691189999971376392365709086461210935801875467460515239237320059741287420296776211996675783038708311370382442895197748587607987063421246818687263525818482994473294117594632256308925455212728702148688729399151296109025407272593841188858655098497421489330415026612994048404183692866270618269144335243447662488843067979106901974906125833858405758933363462196179029143993717707481026016749884339396913899230788694223121743891473494801194790689969129249811725856499186932532088126100467421044330862197620542019118169940451829508269118931198985356138602035231279970638286091763172536802588986119424408246888141592801200614917806838093063176115938773241795069371010160668871254448279939452539566916155561807688267535401055157875341195972594486610727373922989483559378399282479730916857356894217311150919812393005686647109917445387279748013348029602130853244362648604253929430066268568660146435281323565161007247335857887546242924546082822408232843865667329895222525561751490551852105195041951508237021251183917681500467866877997894614733941699717764772036869773059964045162367043186419787154701658580851662905392408729425500097914715749223832068540713564565520869966959318500294862296750042990193095848628780314771445082682331776555543879497150095503820218023712738496825233715462265212427885277648239911240787442395259605733232053354663223720101905098637066299226761488272590388395298967209373518046813411200816108205059280962241495267319938587411430230912345997278609364444111745766805468328555850687741371741048602547928872087030118520347849374949819730739221892095373377576214774630968371571066725680572015446587462460753364190968222863856789089647673523908621255827382280600583152743852082123592437989627149280428452042888976923505531862292565263926892080593696769048019907866740831117617206538376421474304975157426684334360072646478544426735602523861248379419424748624717834428060915900950769261143801898645496934504771069598979523746747608889404309815410328076098458863719351413269212769214309233296396363502151672900643694837468618807611698024269736693915386841848869024319364016321870974886924568531386468395200979161001863081864836594853733708884261499447762842906949747479159989666571256840800616025926663742836409531308217877438196370738504593944023693303054307036434816403225700130998268508644686672339948062872004283440697464673847786508287892864624381169781101938080663417137574610230133701052558916017621366016096662392253892902284290709904731395436444467118733673394557626549507394856329607335916003047143532337379281795803063887439546794106292239337122418192283791222423973410418809325602256942192883309728680610770897370947197095600742429767746098242439529355740898466766188965613072476288653631156859189750112579133993961677009058136607602334284141824961696960730275633095457114630367453994435391429817568361688490033057712058215691020153613322472733902153992733101579646882252690121442447181343836198198939877371251473974175181455508208257328394139227499693774860299670842779600968278395258501777972889165255692450579594032129256523103021454613752714748308575346580914000267378415026213085348193880960859225751912503103027068886152914780779714454811588036983540459034304013522541927637746600871668445755767748621869858228857719980249209970311121406218452166904525022793116003484700177732515506989808533762485301426242958650912431377954883409073922003934102193053793018670624514390808006051218243855596065380743246971199704939028262229756335796669549598628651218230994896551104602682696893603437555799177666086829334682773510687220367375530642187588981452707548252929672817323326725272193727584495031848416357179416061647721162357915692297873916710093175439785978523767059487389734553475774656223222352757978968835645344225255059226857672944286792043115050310190764552062395374931488390886730314267770283092636869458392358155264546350930459658131750758477715689113015563555285175082312930703298934537017390018652461135136297103190346573629476510442367303433156264879297184053068341992494953702945944502124878880307664330798177980188552324622535232669442355282924970043463074944420844383251660169096605235166609769933638839333821417275433494384597052287098100385164526116521902812759814011769706936941829752957738214045110503481622985748390162293102570360924803770600638019264373852395570886726108681985504236374599698834928943108244313567528449208657626037377401502962848377724618072142594852813532443845520036887227421977667329492375270743137999416717914380753953011672982998279277758671616800539557338864763759516745138100891476832886254693302493921796942743627109943868843694773569982386228609454902732959649245816247519047798916075525237878891771961389676871183076707760859420751035665414705341022146548776891559375042324001177644587932533564865279815335915625528080795181480566224725294145417726247176854127580784536024246772998982607124945440219009643665241287969895219844557494442700352375644262698394702683319938630452034742810881555740341859152532175481264773239775709340699446411541958746469401684329458111985060982308027941428706455692511151528482578071376011660476194164218669548795706898143921541247545319137676035422407072228585729366446057510033239066419630931089021624880762892017140292194431023421328327843721716137570972268725750529001445864593820158465435345458134081576992956454726552956154438921350219884753756690758391410510366369225926836729586183494035277061261030645430079699376457349021530839019788922236897232566839615911059619790833216024943205307699097486143323585738305780475147876844280999027581611023984234372772868326438178831786084806492608102530216807420449079038339509821387995034976287913829625873653144720287277141236038248872858752333839888504295723018875986604155695746943272319131582980865732155000772312587613137888214023569132474182989125471447656666601728454595525964187338390049966832743685699015478669881593718056332930214364840911304215639389611976376189148708489309971690199670893272025912036571115403639272727700676600525307578027320355393648717400149220420812184444556910388848262682419469997577908469787998487834043304232854589578461324643966788875191287677281126677982416872093578382948012603348867635879032674232444146574910655072056412489784706789149711073998408368747087377721118778657156098679910304560655628342389522435227922812274380017605683601646604825322533877528939141100700935407221027380300154664525677297420558315237537562393614002385008033547930843296370179833408907886400048502407474954181716729793066428400389555897694941987566700256348199369658227256963487171208703754266388174362415360726093976670084607444790142683406891439506016555731300055741042180346812721790268734310115022248031041904350356179785415543843013510191209939440150843035982899654867245637842596239711970887824375336600462609956019813374321447596145368119344699135200824814790669585176726132895870204050001194142118372050750751060100439949549645872222614899322768162590457155574588537530116731030915802969494061664975855996060599419147383510660023602405499784802256900166727127491749964830897057110067214940931482460598667517568303805378410909587190513210891749111351520212444202606810994132587995806708297161491068898389223570618323618614741700298889203146722724497208750343560930291363207086561389876130216907718609124849794737132197821357616408826354497996644576846569345395316115773454029155214696972711119747305769957388077260291895979751849326033577632434431183076841691234988022769158635877018254788356605221255097453510014669536521444188230605903933847700733349369083819970864636136191284257364371715407266932908498304360191880909000055048295644731818988966394738895684294947709683988342755801639286890577600328769536575080341773773135321023666740218867941719823289351209600316403342717075678509433535867189228761448591242361305883853131341125664250427059067284697830978355343139292750520788719254850017336801059395998314627297073280064510896875612784813791620993724029530244887756591057748228067237154599869522374530784701576138392040410107742364694439858459539397874181917665082079551344218626610016015030989885309716360801116582729077731723684739522960648241233065393251093706577933165864942457561378980895817709812400761174255171694586484317140975060387126726645923392811780875309027035865600766637347307982579537964290652529506847536907991789964757194861871798627791555799798074313934861145890062802872516224928464168690662524413153076320030611769300896372845329575249228221307352753634410556297695825550218694251811278686557341729814621247677748043084848342206541208725548975806156291341101263906547444367460890119952899308271596925681809924625100586798043669022980093948753894452826116423800540522063961664871446104365118941217332558810706151792918497246798967693503889283091179300532426359515591961542443512006827136708331825052337448159056019807835534164469727265006373654876351626266190657786329030675260009239920328266960627639593141888005365328972986704006388027587572634588636384698973819685092032011300710678896556619611204489065392094474231481150782705509112967514546233069427173228756289389385319255047588835590133060665613849691786784620630958528866469980651540319380113488314942674885037241374253521976340747633958559065926770166178098245376545893527219765842449398738133673755877815452517632284759937580045657105167590255986750880637648472121793925967737257041680525513454068167069331821829815169274640226938323713923587303945352908267338765021301483244160424281336804640253437724786484301665915812651495585810351391475301811801304429718774293134212066349661078035835570381608149454410685431513508933415129779616607497115119454063386603580307300655895001923906504528970496858583774530171641556255322583819496376763023175965209443474595291472592647254190513948495498604765975363500143212474733456705407634036782052976929306391929528138634863003070637593709139528356366638795831287645925945719618329725065435875995674286016450126549364526499951472662251158614729993188884127822467203370335139184963832229030631532979414576679674915740508942355482178144639106129966786141800681685712741210136825574856101462614038821095581375603624333343630265751367855340126677574288143825432384937633397451139789034042977207176485346986259600583998630144163635078382061533053314351731208731008346223283249932719747492523540004109153919643157300200706989191531697428081808842321758218901856933054091751418997365353340446631364143567753937897283845626519912582139321729384210989761143188194686948180956114939010265388261937830866827360103381418535681279838689873826036841009129490454817250677907770769104864102652090778337629118200160564343413081745467531243251983262209038855923122923817537310874656482042058039484644954558817829886990019731210410623188982382185057386033296685745758569663277840097018519633468031389418648970956565701052635765121003070378052845106535961308707039788201253950486040979472618659265554859300060245141074539179721064122230505809423636065334761901097743199448195311825385267249882633652519533678144215943905263742062276368308382430919601277269988614200705261229388491763538998904688198235132382853748810172817751217301970689770755436503237828606782649556988549590029045703168070300400485657006954832244977869584822847726905964202869985111473464386473982184297999086616272063454553389875367911519221785939072855949483897590413252893546989256222909027526179510307657896719999989029798723781466284057182054894095628789391273315786950270352226733680364071231071976689008648573453973395295387507853484508946674207168306102946172076993221905864962718500291366331271871333785856745973372485357769989564188333379643625660660312828251076590054226709542294884123125050624807084372084699478521580706502907614609382517599466316712092699252794101669995780727639722589370691324798256800709136070482973381292861412527668716629900404965734388242107745267657075983197842819433837653800283536310439692974770716544434620330735342128251893945511884295993849658455664982149410952536139982851307108146763949954531665840001477117473249264746186415866454209497591594603583579043927427535538214234107825809981583259817146517304361252632224024061985244001838840525501554214148185010627267708814082450773023492765862514760361023448767453775318691688181364172985667939375735989706561363463873314430516766344983909134439928602684790875810008426551244554184500132995042895558810549359802611829694990569409883901110108816245688518745579501714573480397826798522599968110786370306948713343498431905085305078394372341036464947293372405923819109226045155631760649700612841614295076455702385707706279794256158264573152083703062966156760828374855954559140277764157884047615763946523272260535007419986876612161793606781879372704445653009272412608667552633638572541965455819059289812134069567142642849326184675915518972571887237774942246177500869549971148952792066539144962398298319840743175679850674175649922377850342581635813532654762294597566106144537989793633943433696557681402456769370075672799061788624349821002882904399378739805249843578068115763482372511060298969324202097498013681511993693018842553878494998662954130319904419299800251120538109641876390280991123707377827346623366986228143805243939302934260332214710396314581535872343054181662722885171180063372542382677441747395212818110461556816466112712835533860934128065241070682688843083022291005426358685885381513531065676464215203545009377088996252708258729036263855874057445017377777877685505882956487939160641935735041266094759539497073176895004863517206311142583840914483351893639544208667572025395921682981297756246707613906236830778189130412260511606303549698272130896902768720512601824658258176899404275194046475601277661587473993310918897981743568738678032471037358977975987213364349715765637251455762924536605771685185863843018081054150215391748946645540761077586275930699042467784092831411710665938568237851532731708588785367626836367255103260042678227326043875778271465953566495390762241571854412607125542254342053251486174550602847596360847683407136120340380580537098633719748466914201408669780068222326007948124782344072858920502376140865736930054795572923143155399951753374942629141316407566612212175160235743189045312444991372258427354469327143677191837316236544187180248704522166039115381324332511439013117113309117721050738538993840574337784131118367408040939394359566062603062967670535607441880076380816910175230864413745640278592623824619815827075793683073553664160124743252319659383617353518263159167551687275385588178370307063659645906274658317092495508990577535135554079025403862142360041123021034561611869885453583661925831986803537501321380076423482595783851632997617673664613561763976682227552082316984173060598494696372086330995271157342756824138402535510078315248206415815280309380691611507236981897765756524291052177439875498546882410801018115595279176739063851551682324632069922783908198765160829650399802632541823645288715426126933549662086990208994008044230899874433715775161828944139345590651951612131298233281811309666996751817536055913250852846113523921467694085903352390047392743959384537837458065029778464622981854029650970140156405783975399632110868847061187118314624321197954809776947787331969369584904698831228597472239248027095977306891853887419445704643459224368065746014259914125335089210338844659712752536441085782632169135650334631453837582608376651983269694570199823286276371610032581371235514223627683300079846304539105073876321377610053183186208212440429739464120189120995932946472544986243250253708145646554573392413631487682869038413318314878285511128119118015878974224681404656503309129447702839230239722772274349534997142002983155280856850333673909584241935709031200868587189406066907003660064780853282885414403514794694055038459589658086540039833643521571248472597752307049079209100398917540282932931353942650454408240117611831674969773967827450038607512991985588173080767244543838255825616484257389670204523676056769446068891229796089210876976926887933090458131131866452487736528122621363541917814205990045622647940308151119413564870964857537671265537271402671203332126915518088264425816880523693321781242132239638225557467943606425858580508607808285282488513765840480081032520942424332547176125974331241198207399340070802091693284804991183194900982400190097920897750183995438514078026247798218835177554571350999452453021602536015125202167059226818014894370960701934715156891228932834401070355652586195963737591389995526692008402078485157957363695879486844454196871618921545604896468321065359017955456548463980011095978755972636397099823319316760847572188195946072720804002423225110715936459534803167279380146759495955426822188052579011299135257661804439636882546211126490172325255677802739013285650687650857667784133850796665281952063926022900655904520506408900403442069868404052765156746463110790089115149813205378923412086226896527280014240781412018562883880365683746312598547747971677344463663343653542852564040868634732391748569769448737107882877735661375734928694417716940792041299164994244243196348090247816613833297217209593514434090973954478056177262229062230460142077966395917476021377267923890825726480267977247332051429405644379120284592189572092798979916244181418368552631440467978675605989747214304003133966145910119203276851533505761618865866477687451365588042881881385462641449207711105566348253521298296213003110680585405415835703905221408062261773445149776547624781161383806701987109159585176503059768219722494585294774745899604210090570916666007309114894086882393586866399404444885541530257563188694286110735513964677738446645481432523486949426354433078004888631217417878644049645593511995505558546270011664534272152071342747833907842341929032102109048665604066378649397004468473847701054602307507201476756038767426783839228924850122784894047542870514775342299447848724712529486252800792619258708245088438354805173376569752245001170003967998608674971570745506451331103432080868651699475336862227767468403430835589119057818158948014015626955968009876288862614215796111525272192762239726764784806635877637048821183865623673696354393923188493205706281333896151104397022916961622484147805490179413212524166459466331129154546159040522827872287876847259016958695800799133531282261411393070480806716211646939431475701218993606740731357843924956029456581418789445938031569059330366839834926865481077624129816446701086452076224818336674329012372665507335903524078033986262298211794288683211222419602289749901541476508394831440935382538930647369659181147728273520860468334254806197654198687235409737231343663203352766293411602677945435781477272301565741350785403179120642920208052789441817339827022652245321617623406073300530540803366407005118687189561804027059167062207882930723211147965897647492477290996120760942364790144919085603242972023522695063304430926382232085382343424549054225238021256288345741034474147028836229341799382590818225405839256639582282852149047193019129378930858170329963918418878532670704178353698373823468422120414174728024936302606142976334457439627082416868669380479191909229624052775344226628497979043396547580012972008791330538406831050810563466416472801960480617543215465754085594441635879716920060991250184399277465410113556726082461722327988715692031342376643926989713587415447702521535362978268903088187031520126853997783140131262519971848912594184358027170557837447682607634944159037922756431241808113618212696595446121133336569815241918976255869639412262982107656097072754083711083716125327088329394441463981736874242330194283996826190101887022992710345841913585166961999159431562857645695227965360401661210381112524154116632242111177864306160582346384496413003023388271682684619982581440795469322704866008610932426909526638679628551708033345985997028026130651805999198941362313749934552644228358775297563172481337412246995461268931820914516833491150351890666406396002567943547480133430606257836105753546437391424790570652079688409789912824255207756337150832087682520781224731857501658346697582299621111506298351470894423576523850952998596935838910435225319966811366561081422297820584918231136946691650742560576095345923748884406452353096332595124685439479449790597134550333901803937927508194018091689027134444713098131061573015734747420289055458673776635902064950887281487631124558461477243282403199470723429325168617308627176210534852302370473245637258805446430979136261736040364450834779252022576244161028328681697809348958714002795043769929270684485241217325184994804568460901357619332018509777934474750211010998323738153453761775867156479228238429344288845795046186124135058158658320930745958870124286593265705608513454645910142941212569144470293337111793408470533052511202799918774468387413884867275896604989988636002971795033766165391723780739803854043669207714622481051468522084024793631698437066054701853930019586403147112978192002139272107819015072057765453845981729870463919343141818588033728434188312414122787909007320436049888997662950684321076090022748371447455560968854021101260415600940887045730268068309869580243582534602853839808750981063779522971947280141641400210800188811677733229075489105712692801356940348584726295853898161979087075205782691564770337697296805679929251505553751632877889588756983457825856817112802694871845012573348365596851213827924051298366014543138830042535656149265704122682253327785181067992982992609934699453433021693967476393889974120597048350749956200342391109644669977689596387293008495547182914126795257770808887020748720584934432435536707715679214361423781649265365644682830605060557468373687148929879657081423356636858882267012127627801754655492082130564951623504341755922854429200764240560898812387202676175604185187508909910795701682079539063933733962951819203729955260325596490765903176000614078898980888642142813083126459863585366804062513405995842129927026714848310202491675867675333980098600727909870283423315679713399537863648058008152785497340664172982177680189512540274957629868383329741789237891442384103647334791274469474298276646046420308357328895247139986544607989386707285884385962971106052556788162988573319387536941076605956418231659632576594692487326507704241742705531428689714710401219615690351899817041986314756800597538661769382142342068000152367665479780835987903019524711256165409867675038482569191598234458926160804597816445151724100084915730496218977912070811084882987686351104239616524062650665030010302972856370782486553380386423526245488728677218426880257491721736944739284492061311847222755855239338336626859989179742184930587932118977695038433099407173385885274271953863953256383254058781985419660766057978093551812079947350743698076261874929992728761059167892230907584912197151248703879875828202256252105814240939736994255609338911397356390823335969468299454350133869626352813427033611767718969342877252319756856843466239511120580956139220221709192153052846556879026639456134442452325150874291173225173198058400211161465665370264764802194074022533209582237203529051247508821062396767952140170122218440055636180096079503148085304995381059534170731272259544380600012002536210587861913625618430379892810142506072145589333477849520274131333801678927546615248764978446451049210420886873657389679062680579193682321667078124580411308544067323685147800182320579590891905583362220224497130520358612063605365249057822668418338090878568793894832387022377373231804503725365351965455301981840313900114491946220644440962001631983950326967210823915520275391349232812276395582440786806606013128973877938384499592355553803287878662023789632739759582488053285010070770302473436855755528087110478362576152800471759417451311271089122413885135602045126395555667039846173862747536001809133133354467985286629449139213179278805547269998154099206473181673870986978863339920373029675624263713709077656510900180535535386283339108066516025301973750393508691147377046133385256393566965597513508406792264498331403472133518250608725641247133495911180870178824686548946548969032278473665022194862792747183768554581567939158269721649923699294376477980796121805304601486638018507979817868768335638370440736503954804469469561403367745878531726131254196467192709717047938310185691097995590957695018274933469456466410529423406559642251194934849358557164521973616534676899584255752788046631775097289129325756320477636593848005531521401973452549351671876732319582596806066874676831424729499696019086142683874036402129883658332761489471674301073467979235558784138616604246728576769484570178246133942921204397514147887120962119111078125689063534278320390330441055237177117896433719193891344127896313435831698477210427298239990258300398956580479133543195538562307380314133276951056436149998116763882653995928878107391826851215661297424002779154639465707174274078538127835790165937146473975528821804754611244936173710630976969322395329785286984765492761138834137895016909083005722393407849870961275029753085430100007891105138340184549140955503162013770220563919366247327709349519808467527170323572619097837110874388741042432672751288410263695093826109206589868253415380385139388601100927151491691437749213029057802819851684722578453746642476246759633451865449171336805658817573612873782306146297573994813458233935395226894799971192407701756590686604846975691544042385775693106748696712542546126256704530207452321096329950809754687946283701435021308596301992786888315140047371262112407330302641535145015276439202844861147585564639797154549709865971176736041886944150033251544586834479940582067863440615889697141928796741158366295468293382899709046534910531291728591893149756515592802580138624225264525482851019438190202792777552767925973990664640987871509194513409932638181049401498550375152760869983778958459997788865149319518449141700157068216990869975074346907582038147489431376333558838249937003583395320694903043199697546808662831784212611981958711738458695580254183293815416356829540632985592996249513827794291761809508908805722466986351014229470258608619587785897459142829290681479516940572547472471789755660477368302496464888465154463659815755348316281935164188968188175602805148383225118972128705554465571412813745855275864857200452583995379854299865522818704640980354262970087815731191287753095929124607522753459139241472599340306740070380841106877568109788942387341170515732537139999878607023919980696071898553953740398858794018170377544474228032723753749404462673516165124469894327945750804582702540994764569294612617800996032469394663561575712838854769725326335214195202268959864032452845072673888645073946969397902004261021623191860127147329701162347493206931979154449924421318670570203326203367969525528705652147603815055093782549042769863192100710412405933458923803374438744597617787911322755293900168128545160921109163312366435269441115518250038655884356627122558835310011153073553977084082672285441837456651333817895914110371985623385224394228352091997815492066206911509380747476120376747924036258415471274520700839559192913755598487869985161941198491483551828980431547187576764309751995341037156530215927521506335187956375936870540932278888537205357633579608159805681620074207897771686490160535475039690255856094492342167141479751881312445901968946209261406914193601188239633583353268176191996207975286453762245583482374522239835721057125768348253884803195296932050095839099548345915180806263452485407014247848104293248628373501444381939272009907408247018171549196993432012994199295745389245399619742779245283400141396067059592734253081926930411174983081530064564196166263316966487612268613030979831589697957301240328655689196524539602250531830203710984971410052651063984096681882500778849040660122795742536736410268438748257490497550431301801437590798490373583519263640339607387956840371352214398943809700363911137035508567251826480079158541777110067338618648367657014030377674559194523153564485575627298781471740062006782485602236070099437076601559343010966967332011678226081796211232745984910160645385699755463123672910481733137227036785385544656034841877775783120988568293710147098977140080847233229124382210696820964550260587249533150202111103112854752377240638937299288043484404898777361515395713656643003096139431286442186598536501459106151602992032838376414517544017714806941531829374952835891265966976430712794544451500368736296797822035977632995392905068228692372488540135171620313975511105580547584218566351055855591914287903627171126984865049412756797311058367213913985569272049421767933147073558929698584577693150837920735241690359995484625549187844815444323349331106879473480622909907911220786607555233355957924817936865284220290314957765700820279815305812092921489415619883822776947462115946500319963197784084608153049667076376844434102646593791953012101291758939367653079805750989170887744953695900086091951363796745729820800023000703026735464571898978886576638356224033845215585874317133334414236032800545769848381173737932064297784383676499967284395439822490843658178100472131667412934430946868994902449389157481674449389496046048359595942217731371223203209066000813949251721287491394950006349100611422067632146919739489803245097433736276907897689957673505213409735581675305063168476835501358932879744119313185089422672952466279623399964038644644131699271079844290207252381155522040798754824268973761520128899621940242576522435207262660846367165527669950916994350137611056042738483173683926157854199335180534999634360597399325344177787581833513546254826759624394152206087559666830858608285194960988578712334087904146518347392197113681062162174624896557605433141767688971054243617323890803234379599398923777032395346070869002397497794873053023559444742088849416426020201146353891598380137478143191272305588548998196215776418354964586596221392431774724877756109895655878046375274640928219434538360595091327953166184371555422147152341235071943315340509102653500294761240055337981696444777481545095469875909438269522633463525073109396544445244930641732112825871283512858177248295720161374093762571223028116973008672828684169567857426906314976292086021749344518894364396793330931624330858658929072632151409020867559308339040951830757591542216861282794835258497649200700466796987434866553693469904853723025991961538794096642740285844514715131976757881704885863705360152607768081104324270622805408891589391477553747570201117867017078480905370813211923471039368494013463979625983329794449951862257171364685411129231858734439113281418623842858009105266751661318000752633107098434892129445462725832462825431776867682075165562971796288285679635132629467586692331821765679343167082842381080289661671321524625906083692858687510728205930669812683001091776191268583833986091262917002991283120730042864019395719999963972744799735756497633225653805280846455427834415114073669286462976746016976500353684942034073409505867771937458425015459463658359471082508065642006557418442767557752587451772332601556632183782586854343144315344553642314215843032036081662398454923521928349967561306882573081879077595767526387021064312601145101855360913306672733389518707976226199908762338233131822993189411701857624774348661962402078703956777318377661962410031142253189883500602905427922554547556740894327454491891817834516057229851958825351465887306737507339576632137429916264423333617302426782517532932165355912118244666731466601534864543052978070621196734460234728024433325532166238107199986153531745001373277136033038541430070328601862425114303410757494532987086401822709303879687381097900479346659612839268198250742464147443865257081955627274071417298164703698027874547421559774034778440996153336576542785809466307996740922635130586215745788725598091288496493090323730047791556722408743587059648740565984877485700058033838699227194491347483577633115791820629291219449401221655886039781424484715272657997678161341467217388153209415665793236668683961461262913643646618047471095800324067315157924599891061106396048336807800359554412872225014254628438156217047964231545486465883679193937395553479151860907799243019079480433541574717785349279653135114221896735830347842434730669087492821804305992333804394807482176740006622458624133442707594354581309127766477689223112293964058604638174879071991876314581094844328054658825808394491596127097521916045998044040213761406785528738511687947152221085215132072345409755769901055857416699397702898464822835218908185887537990576020150952376216385843998985352304771914880397479163175531745390200857489006723009614977019282572332091117955862081360554535056689462278701219896940253787797926991435495385737436152942518250927054030688921840679690537731527934495525307439116301246326315291940840445625346495931174542241214397576799995248771556435044685675214295666212815874575275825551230721180664011875412104731201645192560611069571012538006413620858436743741207735054603500289201824395806150067394437194955012521864163816566451240962686237332808832187606441851641288399517540445026836210323212976695753876653942333771842756017629206111055971667730310439355651558189305628120463616190165005217953289324747198244948569158525742007924732192555928476530609654438793565172339590112033338229972676320307742057410945835916750787182894333318979994009646014203313841793452978622474644869619632658744689388639944398618167393336117341141175775197009979399816275368145198891606265418703485681382282679849714177388708511686051998500334549868096352842748942160448883535307408526350656958489092333352278309335099365462581921379345397527923174832260038764073285545767818217842197750036306403430843360132621072505635099375432204288733068820477791667898242520340140282335206290610208280123387109746172146293569794221302873475004042849692067722234707460253338636956889124224494477048416636998122666795372654473173908640461471407999864190230996327788331706163901526041197127638164507633666887870594177723540126224189919416067872236973844409023310798007762122473105022679114965235282093309293018383442203129676349878918758334017295900097805755306430551025925192568115265000613831953600384441001273515563893089147488993769627924366366691707106408533443202926026742376730005156550670609164057909561381749098932691796633081425959803251196224973408678494080236332980025334469398174443981074003074888332019183418961061746395161586899748510512523978213207210820241885370738232268130255388442216676854989925889412142144572874472285833562130507205242074859115880155522001389036406540933354131691164350611128806785537350446900446951119783017451033269268438836750720863999905105456218743698132915807394264950878939205421721441241167454179883006408587629834809196579102858465200662930730396172468170371641734644366206984169990524834287262546526747484647809605448592143292134346287694273123120299214111140973803780798450497632517752773181659385547963963962921150669833522890425301440966591129193639413537373961257932439593081784918824343578721612454697404438161714245560234932724173827292995752239723420870973633262809654904272161807521404870836674595022649606457842658654863361987967728978812453652091757309491222695323341623697942660965191746900131338846787652935035381477467118781586107648786632808854459713118264359594639398143418453235092833430211974498697772838224741102639724083992159822923078020022716810991837100410278033171302217120773034036401348882242135710175745428334989492259187127206664880959197472393023460792518536935730088616211033960620065592278111407035446507806563441241466219091125521084055301230932865406834613555856854391180136740754007775083768031873381962754335951633884211318837402033434666643611356830468971080669079572184286087691577820281926443183020605561014382329460973102790979464325589677624972340035674430029714966087115646383348219190028094209273046571395184781310438185763978279015330790162413638644226126721970719065917675442883666964250761804379494713703688604737580455279003568455261525336279666736043282430564470317786422095021942633300808825787685397309949574422977696356962023436038869155177627168861905738644011536002184828105141124052119871226097828945323851755743316918486484313347778883692822218046774350570315350264594340371855229025221913719308203442532018497392229977831473894801496963438313436696197599911981283629134874697209316926804438958627399935158118003448705006199381456068426685038755841866725478560574491104023095259976240882129338129694997168963983181828122340616373262572561100728534669007699212421081605714041350977576577379495883537454320667754219487485769033147122834124681046130591367761224502974002469615994277709238906173016454914669347153629552694591307367691611742670772978685478402719674999895078848527760112624854865651008539313664931136670977652690559397081890682727166682162246868126885766118086533941678455337996914829699122246890512330128015995614134356487439897480987227154661509740783228617084446969844676406475636006537054121527012225814698483472540063697865578117238497901006199138113576048939878003998156335527729001951474487080370287715580793835787529026121015956060453718278333036223015600396545850159915100552539826203437494073092179557036139546477131157135690225402755690703901643265389137565906056293715925377139983527881911000801057959366437032049828397261332257243034862507512125266354573521904633814179954180511444279581264033569103422089705208174938991180894823102021739871814892891792101642457602190803281752899779292023624005626244467854002194758576615953982757733500225947108037909011519891743751481824193769805993446117986468848016619811809507346660592127991381481070519980477343428564036319212517923608793893408271706101455139757560913210742738832568610640659992741981703659015802338795362769074393386892855547414013673661025758630020680209447976422717301689863776888531246262364091430708103831120664871948642244859083808137673580343829913211227962637610698932670907747434445078240851310032283358655634395981829275544330196339705016382178297557200182683865683875577584217924951437683807285103166664559358788117867647120357398809349164296497859953218571814872628043835336752762081821789792901803797855071144029246032710791457321855214990960859315178701171482898269371725704522690209943772130790861493945957460197730702490410724627777680112515885516876115844456919549923720841401564889088355854028639373287528810208478028150833527187036994029894346419730221685199154607839635866464171924072180662829938115394227216142765608525741962159851349603940694559921320081479083539094223606544583749376256593428461504444735047139822972523173411312570250175970912133062438906679124822537202852836565233453348626620260043703514503648402456019591163512530605596007234382162236699529289476277316313039499953890886687294606603256389503538412137277889377299500407942140093228080995733970311629683953289386149348568449794138135576038750353675114575079622752101053070704807998034254081662861834459123259296213236453382309062023831879959007341524941224347098988358934199551352015417357974649065589675895595424725762723542187710506000831176100544392094646948966516103944847194422831005213471425517632749051962156232658366742417336828130978974243290567492760983856936393046476368153585931068544437352618072883836975028600860339701501893591585704936668801614594602759743872567552631940816336792294830526215057306968893019243219210556167419061897902232620414016888380131299136078372223907111957754807160350170352050785177436262808978178355422318820042680844096041109108171494742352918126342753049871092293713199804616544491865121215843731047345037545989966562313434622633819429587420763354025131803057561931547136607096628450844805025600394626479342263095640513248778538814429004346443250401705260208226597883644789119836696402915372219284808837305991195655471755390816797235658928151166832375028533146925790713111488420011891449364730172368289411715501810031112919664228510686372154199989436866973313496263631267447745048872303867973201881938230955381552041085595700037688644432209404167933450898677275140208285154641344338121264530228299954494007392829110259987910424135236821924328246718576010692894333696329819551315405148184058829904016129259311191246308351423695747566494102487568667581407468864364474153159005380885528860442822101188118602474363855464420452955432042473491653954746135287449027317746482008603007066335074175281807424122242729517715397529653689024217569917924401938232642364251732628566219463223867771718316184722085926703698048822033128863948568864993706961068933614547609787547690670729164559438765308788503971831218681719806814917309918293198805671684758771746579354736306250188973803502622372326924506875559204136255799535537988948441210662580825789647195140592349167287425452683424781231480396406360467195147916330558766590493604216396645900988275891265285001159007046213249320061431003525459860463173547958795505015751969094624900554883075096607899760987325255061090309142228988160706125443656133075843247180001370642325407071363109159122714121044728852595583079906567940018209911837773380960351662045107593500791492132290294068715554346995355481495255062355221001439521339976436205924073287664721198412103854517259037690768998365222047989820402559932777540936870322420571836223443366111130247246736097213377508105174415584927608433235449406449860165841378596097983117162535673591719594178571108192408185796575366365350684105323658261440238435558169273872922634864556996674769123285819575148776506424945642679612454815477762106269128126371080035627328915053477523064399688715726620534983595098656434300736641200492200025920009921486410791031874444012234472426173149491121566788347985537281249554475663411520935129569647760809328261564460678795460686914468986394046489481242505745134082892148732042127386122342565198289362642201464302638748587011707886565480122978321400052710027468125220294052478737386957213529677431558148808624007696400441219454837590975631370105865189489230210833352554204474724656070487716713938534166848026009512214964518578843773356283510038090706097570889069924024139933968081482475598723035508243015592524625097846965529546452232467566156915977241968336204528827799250849354182568979031926276773239986268827258386308643077336672884627449399973499226921189669904770668198424794069774619592390742955282620066970137396624985562499172888541205249042092893178368345498900643096239438613031374146453447742439971613562894286607628584469419323993104849167484220984346224283909474163144265376937063018652472070744476967589108403588048297951524423538907522556396202998670597820552558210405143522187692635564872313584539738582734228098661241789088585990704506440200366924886385261190802630078023434872539429154160890491950250266443126265173393070823390007979682465397132829833002568174720609819607053026470774533901470432241514330256463994320935537701943358199943098406789227274259622941597176179267831485831708730748681063433178587350935541767425498879822955853608232204496911481172750884725658059994717431279444542034365092639981246531621327263724091467460493357098996913267088561533889644623035663684836875526719243071025459696320137988163687718778500586067969978158297305859528433744487226911052468886207120072241356953508343606673179617514470827616743567197570317299561865325928123166328067671027620048866638184655902989436414561476644328852330274753535318306499781801361224605250880353215220897652894188609717490230909840450402963623772497735502492515015440896430398433761389383504122323695883318122471403423491583373875797646406075266170361586347435761171523063072475748424653908440323662598654443375010462831753060774788622371216834687513668339448388715607887822953984621507933428665286289668637434903760848901555676224633020734488741487287612703789089228494016014660329989325698679358285112673869218594578534545770309736038451145535141691033659070280440377040412602634855955852244354419332558273265005474457174549564568504492358898224135159661155326787276289950057984189859475416735753958969494475721961201683392304771606529140948344906338124539970234244866953759019714994527955940482750632616473712414667962520879449526688873931309480597817547918199298821753601201090200166798777886349636243144975330597699247370298065378580617717853295659223557726013874784586673874011100481676719682789593167144210226488498449794045534904432324670675614979867142690846676881003073466944715494987057689743700410742074831587849745083086434435175305064796964597032460117151346816523576656728079119105736411253915944380322054996118044156335753844694565827948965578852474055394861473755095530479001619787192831892813240570003552716614869252507333964197957851478381325781644835739938209583287129258200563626078417158047948832483363778116473377319362474360719633666182201952090564457927023624629899573954909099682911687529690744879183548651290035101369161532247484037459491481325285480981126510139961160969804697468061767055091827145726962781084304216917393681866745312232264953972571410040817112309575458035047291058303623869984886508433900137014026906990812656127013227113833253687326125118649163002116606110416664381061594192686633720654269354698643082741915074919482794105507224462565088166912384702235390332198766021047983352312854680648108521798678859183827888335595021166677174018455791868558643403058292446895348882173180655886171620467844211762544379940308568311373746391388011336218846930681126907088753745742194433801760976232945465733572588306917460308658399029944982371578207024051858212096585201266867924443664196543919781641152903838094271409574206932587371021138537412842061269663149595216539562784909221680724614668848954882545479279889565584711251627801999738749083072270881751149719156971136659600027033210649874371257279879484317946968734764282079152414105095534990306780763259379958720665062799664828859028257498753743652544765233873158460443232762267227637386880415368759137802923275565024869803475844193282950408325157334307886182617216619185843818766911098469409100110929956363605228507999406893237785213245899632724359665629461468902931397961301169405700165068978327015040434693548005216287894442269301711971297597754379739819237291687430164847752263064828087695183546885268219978995810921411249932926307936793838747272607210441773817590963177749667804029214508948000488202400295184822486704273483925783008301788176579525041636336495115596094519025193024960218537052718086035139828783634674878043624258410740881386689465797005733861517274003659561183712530751271701945267293121566188200402884312433134236955555348114043149167295813622462619570422817291352496525591027477204426030670330068352113269695618070111690625533481305120537508198911825863858286129314806593915715440194543360542502465947818520733092506064161031855309181853945771113066214212693792673138551859284780857932790249032988116659524742625972424151137585440450063446065989112093592116318459385067476928989241966422171593330152039796802911280302665609279218833000291146206559231736883370114054857392271407890909032638656552172558869164439194948166757498888542307138528279280251992005327814568515213745846542459641292553812547565349610097377898228103148361885298672915787307477553884204156875458422560566748515146818481903188336574244320360491491603777425604215154312752367809767656388264461316261639163529340194804716822595815369172195330042705785198646504461608306950663736568612511471622342059726605894838476228041944400859077143127161284865367411973946017094471416617604232916428435449799477384010031950392258724076680953619462840491091914655749258865061379490829326761846520209432916232897131558268702412019910140263613775417877551013828672849073498630808607926907180960093794823617529135676550668158581311558697272266048758983259697974224963395839251589471343995762663642582561684174411570336418590870521316781978909819267359978801816070734230807318486509163920000922092551966098070160588626392117925085096601368621248672907229145220091578229703661372920213631404853903217154503956560753345365355227960710350708299003398233596676961404730337226283940381198736786749514833304924740674694376214549896610459772662293475127277014998171015978608003858502085865232070385506526104517834182817324669327902067676655058206324846167116145203860464795357498406486689153364746856963340422293080662635589387373127114604255327807650181443385320712269984780806528433407866646226767210462893259107342467295814022152198321671932250807395677009105145992770432383203999070397747180685657299990595501104515852421789147533532993254994508037361988738978605665867091315685967310015746754671663984853145581522261801203986789878011921290113295190642157088910773222915553963339215217266545647008247403956162563461022262139509786759981259693633266479302733919505952193688625042096682550450942242282669513527341651500220509429291438678167133815797625217788201408971575298892829321039262851997593720638066480302894084164861715205785423391705196102951637249461138541833655949215729861727174000924015421017687956917534397459644425273837671818725798458865351021220986431523410965546156245233910362786879186684835409104278821380547936351322985685759461132656367326841669535933285760292380805895190191164091156008810345846111397957551064688889912148969892107721683387303888884195146478987771712206205159855881359541578390586347569598831710853951058065908478160070239082900202009493471503408939284035327630115060914736336799533480326127068671845536307423724275481031610108476758668607039799690595518835093041115781655448262504805251824826621893204101894690802168918414683940114291231974259802763154021920173953286858879885366401701356522811682467782369401815403478171159554194021993052632655235753949620518099768232124573089158324781122556791011803148021364757849800140437635448616383181841179748235313062894432866363450140117049711001555790444458738343992441824617808385827855300867139486836012923125780581328954683066525502867866637371119205748476447572964730520129459817344791016439827808297815901400461412608945400079058134358945815707831745836098933334567253977537425601846296056928969389856800365739554161945712569548393632170404973289980268225584486557786617190877469425230285072727113433808084123433167867321250011345484964996402485663756987451017199365732769263073751614674388635542258036918173429216806407778100122114676099771542202590716555167410516341562306905108754581938137702015182036089002421081417773023474392631831022467680843025847886641387465979861961781423321079667987918989470531904150807394186437187738408070306257270457429717134259386819244349959099911259682900197898141359510101033794721688837521783666372539510480838157396722309837386688212069428788332593816001602786301828399536958290238952192658149465679488567469278352384564080482814802298208478411716294819947892241091192222931056588967695999994335670526894714552246758974584494255474529806821609617851887824717039800687962602578055959505647467114407180148607530978092679783781918893674283846040439026873452739503723201559040155021211695516701720778940691711016881990759845719264402169886990478393173958436283573151618432496725089680248894183948149830897437215948914489134738297058161375129311903557577463200409816814133863508818790631248152922904411576126923547433758194034646086554492953514591220619098720081164158495631371744671656735358477132197598552381216715940515003949547679783116285087216281463929918437766859977603810882176741037782747656584533697771594446280237753376934016517568017527760985773690530398236204510545609562300354925018182248266888197834332500802795363890995230099408925458898511529826422229137422670929668949961726136566338912725888400835111653794675637811469124244966704752922389565503526494728065188713124578167601240845446704199230005154867875739587383119825551927923665782112148595554734311394285229462165790522668765041085376288244440292632574895250854125308370397710781252006398221745146392441401126474025836503712005051092184254827758861351529809891099549232687723269935139618849500144648833041735875663722923457589714147308523723010399337380014594339615548188050626048828596961363600922886237811409963746841569018664749570404594429213150433843586258065277264327694645655202377545318621870841236060335583103277667194685163316075860323908064077404323601258336860970512730259452697561718621950499141042379562608880433943519537236895170080361174287500119024938650838027061707189891262188678142371688450094963392616143799065519154293966551198810906047357300117706631817921280693310844314427174590395734311839180399610260055795455197281952598386932187454134796784463564948225157879878011510579483188998833201060657398739950105227610566801673185835781014549827707496843892811736488064658504880493190049611901508095107537619918644065267564533971645865181930034833085710199884703592279942712533434734939888039264949247896565135473320501067885194098140381674407712559423532652919074152406824311733784718359222666292770207291944552769826699207026989990968538970899654813654067020980492568155590081145108852989556359836430616006925123587743119789562128781188379848230550021374076588473353185288748209775731174072968372758985270371473209358822501968779941847286768282361572422980086576495911799628634637530068295838115854203672264433424065218029194224901147653254316705872579849052787272339407704706960913655449016672931482294549007265244461662241674788473243263305109921275164357630190809903038824045196862954663093967997171681364436614726596059151688008344874813465287905608266941913819947317586304283253421226013320950692016440414096608142270901070682219936047150600424154425435939420713904355129750262786828722401979419973541171831009757272090610235565727095203559717684711835088971137607154052886671523506608863226581990421280057891048876419307282580934598517887927369254682129069762540579115678771460032898964122729044799444842063651769442065531846953475654847593652933896150467435487216035180649617740114870181339373801713612803646360663083053061447577062973359582151793950166120076325262606905259911028012433828097838245277974921373585007312039280180844724168331096028009036687672278352283068567593120101799488523884124835202107560274625754617628360474433258509655029977566674476128672549911089321649133664612666532713366293584705692279257016064956513860411360504681899707762411146307928083167550403808590894304581025573001506407068193475358941886638881122330204628948660507934270347837259727942642982683758346881805690072462499797321543600147462202522129029967024579353430529079357049124257058467142932355949205161714085016354565920786971885751499588879551327322398584281989041578938719261582465728306744527806246436967893527955858608985800823277804920584257921078661487420842104137251469560892172144993248929151511380283928484647734321977977716014207475324105439863417279602818466980081871735987172168980354883790271634538114743459301230314398319651344498216071743819581745965574870138941393589863243840523373240507489805726573991011713408552904502001552272248541407650981037719732138697689220998933542158482209260011209843687777510620388222153528814010084346146421626902326216633968648494405221163669042226144212918081224774094758672686475583017871426770659169366957860278191619288762934132802572289464115806862171037770952006412743022753302354826887609613570962965277358376640907320990299258896508698355767691181599680589104413494599449042889417275095333862272443623515140726198704306002696574478913168473746935525345229265222724670862069405175415559514891445089939258848280930347593172066450707005124171658218727277456377728279038938141102685129048062709652913821679688189197118395577516133190860286146261199836769333853234922230736548261344438963761251330152863544432234585791797516944543807097287568434807656422277979296412041728108792953327421111825224261866168473691636885738554410591852144815694242799663632125644170115560558939766394356058627619958200413852476113979352319795592204493632921863732153605065656928842099047096222688482534394364981756828222716198398173168706141445088017622456335091921404356107957471199846898100661613508995672316264730772501120303411681621373191049384505015702143430345051557477334989115014860833733736411446650106306496313727688321224239830584981559075015850396742935242520328206189827456335468584484469053674410972879563723749051062296734406634205850504193126093879557802261461516067702211484467496316555267858021616041311745930783177188760190831243129629877856050925538411279334973901185615963109833706872685687639288482250061083805238557217363824281437292217998593565413435526769586395783790892510462850408860949330660421324571930179493737620737856050078590428527205954885038696942739300943858292161918256306601050097715681833338970706203657968864038518067326612939781300296801445394518041399764880707537050983239170051878723089745543857462283504328214624299153919208332226239887315602387216038223846392996018965566640780380580513732751662606375610589124539310112246701868431794126360316343549879851827154556683618566204488710675803241352607753892646860667447271493758020538151973908065949088245356631008337223643504481613663330707224589863240341133247150297337593535601605219387970213724418928136339244364269419072146931584717124809098896630580247392718997882104255147139841887824072005344357165976592687476931006029674605578310911239097415881551913250164812442507824468925714410108456530157112431173808981929802534436967233401262185471875054006853964600937626855082065916600688995929599870062407902215388505234274601972775106490196673489692123111255662313376482491709465465233125162892084726412690031179751898072541762181779701009790874159049633815968356828388536784564313430857672932711232192889033605582628176067455481655808478426293653016058801276386094853066501521127921952787499763372613607972156828821823198625948429172589728172215481949056065384949505728984959343077139105582792239189262358363512120536459059023815462791968082211918594979269342680395520084093918178962785270110668218217734923012753890289305872689870084984050302500641799117777783054492480435638564463745086895344128197792530658416745480327781948103943133149598087107395758212509527007452134766005250673472457061088669972753663960003242091417478418092654696692297796568799146615689022745043696292625407362323309721757579957664222081160685701566807167927364179179139288611631593498099279979442843851660432460838710963880415410251079601086783224875467375725102559413330617297491525977949527548046626560583845462540956140843066943933998740085207884566751899439844896865388510419800990458285336417916065153159797674604079951281516527923568845863923490582118827944994013467529215334514668767252518651108779557729745062554996848522166778780488651931998338438272400629931734131022602273345961141892603240110966658261377204196412664500384166020410922075311270059116451237879701683322862765464824937610191430193761447459047765301775819229402358780786947089094344360610300599599179371384609261337758656330372056071339412023475568891118888753128183519629080270657515983678834426495394315158576783781648128204121041537266165122797778169628132999967319976018346862096451153089999330564680209494849819600031442010467029945882487658162806259318206706556889248931715081182839146634895714797825537527277749912144873405272428218484764798661912569111735325360216911455943866297597445841064500524396038516889401289313794305147435385334978219042391980571076313690414579507951262213334910558672239063903940548864810491437068651459274266240399474056805425526672776482236435077880911605669162976887892481891680432640569127160023685284456902626147477794886358081063524290292610283354282555699166809323650158025441094890862019502250392187778929326616221364593654239644694300364076196603277303840969135585925927523539091856061024029197995510365462863108857935334207711576322514219164158183712509339597447122030049988693494043744700538781924276095919699208956170292557747047971457007882557478985709701929318966563963631474213505302142392556106164791995262848557170932472218770990763727332536803704310340050118242197970948536217854341764864125003449650198095828654809850042640632749369877624061034613771201480557009327912174860747567913002977355837504858883853222049239819818970728520385197078200204117121099434901466655769460311278788373324811797763535300889054173735840783299957023273719689335052795133510458813709949196401963334677482153569434264188314671700857414411576574156046476392865169705527541182335669476673342364408901068109092103980695218189880173263875775298278407963142449759731517888821177610010049222690862940930670907262591718731833266842670199941123898430847342378914376924054947141697415963343435507641972964078785999987330580646165393469507076461528009162308803752393065383283443773856688285516587105484904417366886323375826887060959586875411224230928971039459372786671382145468659354584765574746057555215205579621148731689404251584331307702965226392861942259341790952300783183015599612080017116481858735635851953215474192322749167030446082813529226682420349918953549082232736025451212653339785071207261268943637166481066080642211630009211902066780537612274288127342371274353832773085322892536026595062078676946961207811590912166849448597404628271534516722230207964797164531584977450207822159278834985011635096134135125359326795520110393656517491611240447194069023741416759678258334972303405241113710918428938273831439195741530527333410199095969110449265014770486449561170776426422907356828459024357059819147535633384860745975864456945294740849013203496201425067646303489552631852605088993663247196499463262251214910877015916050301570530035991671271372105802330339914383667794564769158685996905639674496624507242938690443607382147675694208023659467162443742990600947338274975688798499733732948616268628866822673005854330632863772630742025634370709560369423352084504801821532613578637934210809877997433811085951771818531935121511234946315309990877030471359164269963483021317847114701313648519064739805203008477593413816867779450660618486784432232078387996267119096878358130163602752988994895683712620357051569080298721014663851220954976099332244828827830787050934202350680354473783967171003043394890053992625298557469745424394140524391104173465381546089811938463108219996018857724643271698430742560049735053686241111942208390313932674604528373099501639819910846266673794049814801659256666121067384588900435704544970050251047727867539913815570132569629401958942536636710357247782970361522375312620573031655684653945066432306394481422381745694771832133520030778556989055519143244026771315562271652736515370147163167983623716375292523019726424518580970090575547238570652785072899453197835247520806735330174990162420474916799116494264172273326194726832191758024850409878200408800829260025811537033711821666562814701299685119642165157601222165668691603640205979040307710050296021419421857357953175482382338310321489713174981726555159557098418063384610686497759245010320457511089647577212006585466175628141236134672051254125990824984410936576585805621297178115079068481583423377888940035107564873645004979199216357155933047495066831745710315366572545988366204514285850052209936663514015215144257714212333552040405388850141147984624821548727302404895104592549375588644285894323600276272158332258570445148120415128869545272959530126116243770222556580745719661279116732465612018409075706425260611350338530897032434681303494705861697886417186383144711827039814259013510314990556387187770278076382665588905210301143387445295427718381415201150708745975291977679072321899730150880153953012520456455961150799956507418889591115597316819816486049838377383529731064283350915686007410991416160633522919270488811759635296504200368010422392503490529607636182828148353412373010655067270212649532647747802062248735549735877973846017428884547012977459560186084426680034372743008879029618142044358356460751687622351824581789360613242693090282413501695335592224843906386103621407085803016148440807745965132872453652741486644492721355440169567395551533500601702610868460591210675225326410160041721542410602301755163067151184113886932769851208953981354528437186310691014966136543215731133305950157008760340532574252116120310965784553673005831140056681393305516934069766210701451913322664581983490051032939250264257866841735084936851336433688184571114488071031684708580510131892958139805017054621816310581044437788786719355274145122995650996799205713947699958468860606872785738704144335356536256092417293028072710648703488583303884303866019776458569732601111200967148432199895260822604499114112571705587079205019398920798183827915188812987234076931214629265409676524019747650033449948854585975722031914114788308194666616114202477711053491861096842731839590529767569679131426674212978435340540871198418052920133945195925050198525325429101636815664933842877276110999061060302664781100626742630136111692369091300071136158923301201272446462046953249077377174283785411089104625135544129228371267997076127270873443901832344454943969188775434350570060163372680964980402486187550011212885442210908726936829338748812315143241440259286664363792156880296515735363304287557082048545940472488144693282907463339518438916553272848856718591516931499167575961098820571729239124558068398801082744096627368499387344925552816789665448181010083082586693174286649304986594632443297531262123592250806296090762702085568812733214640569536064895714582214096841854364404886143716722189317954871144114441881325034768663935439312704924273479383878431124313816677381315037648655136429948265966208828546444961084627126952029718924633956005341885997424372276199496804519732727451269230806561618470334890165195215971222601057565956039087176768782297144159196418426597397901310357808708399998339418846050233665903159771657237159699103909569322776577650584255602769699763532947808723458088708046120833326752707518344661296697530631659903846539729162002249769116782192742106923838419253001058335573123878949383180609819375207597560735897042281286120965036493555380048002147947099529716037348204101399337836154742494689580600183237759873820289257385529563794186086897646789266301943607295720083840809676173751860542629494813409106995035478016842986366263698742130035122304414029583251457464291975435333930463196689215361159805655178402563079171835408018928684603992763640101294280528100462682351899995338859111815536606529038226455706973416488446200614420068828910068596975500833228341672213470310830065186291567911937426930147213914660007379754912309145943073221149393816586914730378223118311426575608851080902690859319433863055975588791856425784088586804639952057265076330155238598094484829808945164783277877511511064576104688101514065090556462567710820808487886292585364226759534687989835276637962898727579533255669088217653245860191486260471534004223018146031738846350890318444336860971723005754480495600625298368475350085579639144906108607160119197410805967615318252637446734870644598384847116055187105453637856966446180697862818274515728392484650603270774517229685263455824431824682058133309012226499605745014543922684155638189567024271716809324761348440058661228032543570233387901775615106755671636884944144143046108320180825906884167046340712666355508057302517506308185513910596811076476134419989298228578965537339042643841945125538362216561907532472608011977326968039118110136286767065520877517407500789975710400087479043846810263969175522015347615294074793726799950534838378988309266469936493796392137292424793504743980563211419173035073837498811490799059619546744290415263589063894551741985304149710063837942306052366488593569299195410908790221067103798580816300341445776222813357692614128416274288572825073206133625695000545354525432908423972245948024650529412434386874654141355892207994140859582075052622011582416335112362268741802872945964211845318348078113908091784969875436087056851656604350293206877950720159008185570012303427921810380163399542614003427039938829986451505301316354382548617226308200436453195366684766819324867534870231925737850860879102426577237693664814965180249851735195493738288581633146003754326153570204484299494620820088516969510203540682675750482149992299130192924165443659160820894465131235445680860915367025339870407566112583908879495664199699619598152467576018835911676349410611455756769232935096745874650820406797015278995546402539445048913049105416194810630856011098997857727619557590876064847612975811684417885548611432573840589864906663163008379913923881570499442758049868784216343415947717890098219970348089244746214198034491349309717277928126406455992017812370195991321965140255404630764980056627631115703179793396410788267934958196246689585045086560289937969499971496163940799407488109385830627484028306057821710140247608653122508639296727757962164158413357816592858399297366730802403143880049027845324617203953808456772343794547966737800571530371795459821031564291813896925079952518364832480746502814604809653772062257245915550771408510583487072865150248145105952598029108821605820530967771069193478441676692235950597104337744008738101938262229947483149019961223401060960234512132286844681103042323161821491474539471472042578710299319914256949034722232422302598875333393438648638765126001796264055594117056574731105190662196270910354090615793398101632985462268333092601171793961404573046000789860443351254354573576847900822668235453707029483570285552276845041204740949176287743059879126122828496796765604172476075124046706385533525319261075817139679870116121479332942129423350810526578205021657960429803201045035986491970399389177861187027123457510089819678904835324754339504999824208725371133848415679121326482440289254149626701514453480145915814220236030576735334221093486564263168720557542527872378943544805371072958323306117129609668775614105561415760885810213521035255779867513479660922495051917845191498185963073433729401562661028611524686828598611883477001754650243173676282984225517860121194183933818614116566016146730599670588571925932079111279909183702862801321444024279338378524500540282570878927097815775478984669802218992025287592591210082556583233276944973017386600587255619165908444314124580936490760400075324635074152095895150311725139197611874992169127104477180414743358580420578283013910701334182867604303209063635034850329976888326657492438493059306310921079003498880758805289470548462238957838362241990297217759870704947281451347778935437889368740262377164169447355602915172905132595627053591749124096752084091475422076238281479280643639573258955828843659065252845861287428644407896635251945457666340635563831698013169979263727773728471787890029718379029108906823524083776421943954254829173435502297395478813969845652533810881042530368455070022482028974039482079560842739299719117518562758020117497013702701625732693854301748424714707114164818723474116379001547524590827177621297147826222603280343687245883915212295187847653467577016500285291737054588281181668735338286753333891535411981774895679978986596928419626215647174108923423132548216262651404083756000170630736299544442021760480480941268703502139819302024018847806101749823319441164895485736666455400951876255256835474366473274372546031667359122636347339303961276904733993352535866786420833809925605447015028618921834819419677128589832505334154450895860834149331844828928187915648027153653604675685386634277207695648164036982626985342104010783387317322560092444756787032301073336576125642518863474317810272640116073893152664309270733985382708787590554170846953825612158367958109092659247522456623308883030185851845642537350411526301426917128729024005061215296936325702801263693840419639824219258394812216363481565262734433108748990685845104577459200815124506558321372981236140582382762869850185125479642342531972387243411179389569170326581481205662842161029159100692122356327757202440188760387485261653393632391518818040391595963913991576629603929800043365076447340516906368208408803469161964727608003065075417118481382729843447914766683363805766218743172428586148751932473242768412702673471853415496016258411337328183615292164293343295386013813558578781899028926431653119077586706196064696618468322017560416760412570739926763623993063180457194283229876222848824697927301908663379513345329134355917054901490766243315215277457508954951002528681844590719063487239670184112735932366926511327172864500713311831288220161850522934657814530590765373851675713985792193173621385205758958395826317629405030788971986107563263342282319290468676398014558432110958871454656540910043246500868255248217213950314369713976427675651979752929291808285163415666013329651368500519105692153024356207457501460218381160330537544030465120908566464376106727170666924401413158047485871435290148327532043912495349518499311014813325267527780147348447363204605471533156097535516147510992142926015196078398510706755738926535429119614508483186166646046652772820460594648817152376719486654840321677698310780824143553584266738874099315844532765937356458252511114101719306596557366977395382342256975203767304986681164200671943562071993075168149403486371120200384048187670300942470727079913530303947124616045977533495710585093889741823647994023013260615570332534860525749446199747526385140015618392780246833077254773772846009685436101500396554554589029700117012356835784124055602223764611692988940495054389576565988521088636720989799169508931058770959380421394818848314089397842209674127434446411727695292200099870448618532020673116638714634041524099416222096784764941985369376664986147448098496748853156822176494649362857477826305188006010360523549697589163027686713917802561369537051995937409678620624796922174679587397139236901227642026751478260542912373257122093011878566234329668082442020977915699060448348674357894009806392816790093043707831396050744109167720868051513137613127878143425171169670958390772567921415932952104798584425216300811019492864384261087438047358161850911240819696029301527725705956494777107312602470906153976531222088659840363317697661703777319443780181986833686544637983851494379902765739876952078402948552891981714322112860555053869606757027745989557761102335149318800598845702036579724545753732320840228524151866554140285779832655948368007697737793242365507676608760218887831148145952372335957092260660442569773114557501186388767366694219003671036296850565468993200804567390328812407393385529869245890480652400651783488825582968602400816675582191344996207079195785142336494484056458867678923357062316755361336346838491071028274582693696733883078549286870143997100226796367654560854723376121155954099223575244391811708823306414415247346847271402620705223430723299001523130394125097109901932915764118993595794184968472595337821579757315005736338363252052292103250664808059206904196572431100352677299478067147732731857944774721627147195361131222983425340246207948376983752135085077433772772436865472857133797531772040429451765494805699947153518166429257506318927506097155730512300829237591030463192115689942285139951722437806890336613670795367183480466698970353695853420032376339205363214188094168240674566781727329627601261833795619586696874743977406373346948937230994893068892294950448654714500756554285665472806040239542028019813571831320256386687846269278460652382231220825852095043929801413621367912377390783275099632017730259537538096028236569172643968755740573398968562000768303445292297797215122724854968945048114482181690913347506654468495837956505262948868196400743054273900724185467005324705803684294146199754927256879533711879947059760317658750669509928729028916428310442448309608957165900861439502072556877586389321263243392836722646467410560494112665806358014679683084738663375368966080943208197219203817014833166626522677287218780347407898163418763391252666684183405594518756448405895530608176822096642408952676375153370090220439623525087412680478274281624010814077056187395483949662098567933250191152548249167195468921534479450975559994995760207436998909127030582434635954509523060567580869590061513384790809323247744643650727142412851297686283820659333973411451223411215731049992197655171582780258637047749359692326220849051481663202977070952402134632593251411476233746682646350967518050466987801787827929533933062451686031321537435627149993384198323222154833607039657868107641477125888941260269579159392181653525862287993749183960577266200878337712141269205011533664613589507042845856754420386914610132095231079987634401247287042161845343911489587854370529042438774137460804634896612955150624523104599537333885826823120609655285272645923908476563398966967379487835287974059195699328914372654189906046617897124139372761216752375514949131147317866306269220897768578936862205163364441908019545979745898872986986975650275497138634784255145311722878159218058558510938021584557828307210774256690891371622602516668127834365522257636661442617176497273621277103432625687614711284474115577434029058934636027702698614220383011558204387517426353670384153569257829796055090591276778728780368903752560523652369451457330844376026778248444098405910449157189868946919898718567345673034185989036466564363508537710576941410873068589926581994692784557792789697601609283064194637970673644926944751320500718987769760477423228897923639996072626570657634894414371524196937058171901186778973700056357824243814407871821616109436210323059456245343995495560834274780225436693465927009721777860736716568655818056373787762459112774472562381043467517430960601895817439141228896270986610593434465325287377031347468162168496997777364947889532410947743167913660790979839281880471817733143405096657687233938549972815455122412080659500091558079898002132777515859508590154815942001072661972372532510659600684728125651620675930591628493666624738106588001503937055333598510583660690736409043887603654927871214470542361165335639193568583688448041770139705278639653858511321675182513685409405633589080882354729094097184807044800160084366019051148643710977849213504660087946225357050102673502928467032426083370401940477753921537640855660904096349258672298613111740049992419247180215787716027689551474879207970651617910637499459943515070985687065312642159724501977620941142108064673381658560007366578243587978462615217632302003057730757758809070144052725959560653538899614334338594666459718025816761262239115580591670204614307308540988035088571186023682780710640319666853466140344557962305702203578294408718727569174921985493895339449912725636587755227601350924559521511381427080761672132894423066315358569913214757289140672976124305300387637639333598941268551803259176657907692729274762985879029106469772494032557114479863172196230147196063208045197214757727652674479091473550063204478033712003118570043935665155134029973665205707839204763425579541005147926972139446986561026458104617672100007582170140220763893718840092296327808737232486856895842059871566031057593964212492274989733812915016625295362045466985651056370301948865675650779024800632437554067219839434056525585366944832879378760671743351356507889848291351610786623859980787089493754783232894348350400505311901280601960906580746015300449518998524001373208937120854566512243316476351531199691754026501791417470139037255256124445018800192041169296026586686951272966647174750844883736188220200534225614771292948718343655382339343639813822104421233237132503470268115883468928752303780190507268856596937691014270831192990302757315528526668250241773285229795601108318359685910067287012671820135064982477527599115182306208282237780055697510399921158505293374165754453649698314761179641354359147094526741344336718675003292432407347105985678779504922723883407164416860589757144132505751640206182370215823313840823884873853180625348658474491139505065992912345353189154370326727246924155622931206139939615750728516815668282774915406541246147806625570888443158082103638948065772808007229092723513964736489609399979738115481073863123126712150049271711779053034734354475949850268052622662783339696651916219580514829505067683949334031696514061780746629423663988426127376834068235897237587466480957269785724043176710807941261431065664890893293201932389475921632649064489443666260453645098192590111833941708695679224846710698806076018687589478397496504227193778094090642622872421031635617554856006092571250215528257951858973341223495138817230334122536596900362240696600265775208632384699181000941793968055372212390642862949696030119222021714997415990601586892613765724590095125066935987571603853876997348869507778138163943135840364546784119716272832777419966969393160145606241151259388462711804402183333257239484324523759649729716885006806168734825624265944485007453576815353981513142981519331090653955068621502533597181559236174101044021585842140931553743647865485941769750595302092381994780898400148426160746887132480336809809291817874314528748585981875445244899779673924211381263857966612481559442517703619220184389999855329737448783828367589610464207199455201613822124279373270002734407416193249843598144210810771303329300645347802033310372740408180384263466407508173056776515091405272692407266319443594314785260365224042684059341385744004951644596588137241514154706885986376746732181751906836545121201983962807323875620921443037932033558645287219423780821605796606195554269908450190881601885686492953417997235905523476372799578042053458624315815196476967515378449910379591057876313832798857570633665595759341433727226657951279600944296388217721224621913248109052445766223048544035928299444310866420828153326898369692060329564440894290915799651909824209519702170671625355331773984489379310837441513291821919084163106888893531900249353110186977813105406734125187532745638641669179858713200130004959160206149971594828412395990381239354354336671290159856407564612034869549134348392236582519281898326225895376943569355277493010248072182180942171223574252362413122368616407773711893575609654758395271957487504628372775649501860180567002592243758111505928382764305554929180156545368042072984845293477092657204303646206056421882773174621377192505300569861649719047735589310253754239054623166543823779415157256722332864593737717548818089494948374980929038271634967195760541078942661802328196282632691168771645499132128863584383761245109983576675704415366259925825213422993514823733713898412602263069506519939959074049363803984901399575076392997528768379921997619297177588490771846193035157153617025453473627575900928480648019344983090577064670222856736901453387053479258041758008870662864200785315052258976759663780742922840662621179308395382399659742520968951790707965271516269771013139954316656492581869077461715758189704598122099966019796130886657422790893845881539575521864182473439758633150885735688834616329649706592152603446146493019847546459932428756615382454183345894013357187635703459972773365290367291797625561773828865707692140824158874208741158864977139311221824996600835614175591927283918512535477265980774667189864491564434396518912366730409038687781048213841108714979701161118019718640235508554234969046344732684028260237675250021675499122990346918496500022341283628802512795624744947584406963442213527576404734880274722112282676239545802520514089561075533783396124228938641092590207306797365157798568695737753644668281333631878976541311280855738987507759944234503703201909745821279128945902414849779108076157458051033523998428890620727420907650702964292587017879599329977976378935462646370531191308776995982808681956404826218869216041862378341580433034074451284914127339513756090344223820578014648765201656857021854482893663070582655421089797557568896771892899456813020438815801721444791207995456391858706540177806935753370409572308078529703961269338676859177279866472882517084709687751675737549237542657885009553782576863289189163543616569887454355454217253629686623985387325278236030848404217274479984696322935466018809901757444073882201561190304416251351782904868936166274025075605714121042182019936959723902266929473380503231977601236243481687168403487911645184919697063967537525237971939765563576682082910597278881033080889759647283537282557308992532830452389282119946365175224142785352965600047146613166904206078158098780763145911584149454301688748771282636617131904185222757032698884872521318771174666197885729021955145245628335311932827812244523662997458821722130670487884603121249242037982596420255589395930139056372547018499260205560992441964618523393307371368935579021726545484468895242097545594802532186116109601995390307724121942734397522607943749526876653383849671082740353605853802009044841036448737011101594088830375063364834875458456397215145275184129371275708136353782899066976758383828159065959271073402053870941144302760786359941095108950920893334580733844419230111560107359151251660621513460652179383550020901084467304725248536207451400263835084160208495407813263102086050459500591041686186227468513012922637016596511970438686890853128003286040226012206887534606641612250861379621172398873341072924035151294138420889228466406666834487932711053722870511836439912495331608625659964616939191714098969140144869569460236671527066454434477983474304334386722490162461216620893579559869681579529561306441353957163098615121693326485327504352056827834817692774451875587761593968392949354932847305548343323000286410516756418088245411014780043599586183648064577407484144217733799316282930939896728683359187074797180082110292999876901076807467531168029622002212683100017568944994817215560301139028452029686054229063325607468326484819454205102472040561190548421489814683606426088454993430975790334082374157663299395580959508678465158708872426166025745693493638182437821969297240809400022830601899689146106173779417381155103839304939122288123845911234477234830828664542684674050028172975226026575776114737280478679767742719018347001751956722340137703659070744801520535206185188236890288427867039067533039207978556000044540885474811808666502567130288496100612322024155978340483812086555864628242284597696781844036210464153938602262754577741653684978163994455310145847975860516984718794189739507638319617035695869427906109305167957789437240873514066883485733760943236542469670369790178624492764002370728850677357664097760401399795923881694058518422220579883968271873869717141732038942629229944874733966014338280628053998638795387720555895611368265700244231572682220513676932163340665274094123617568415798878040937657822938139035664482296322726601809200346916948940068886182539564111730986390061100924443596304446668367416665167341954342935381294886121384849449414323393021013318497635841569528868988516603917125750152626785414895281439422280988737149312320038443754256813074429014428724122728486212030114225572169251465173730488228843526843539185838179697914363728253354201717108903138988293476494331002184762620575115789285433847367960326097302763919349759001592807069796509064579533882258527919316347897386513495913887760704857367008336850415785054856729415628317331848390325735246733349159752557026580473700327155383149778161072728001069440456103855052981031535009711291350344077816963562644532385376239475514097471220405518912127442027838176900646211971586112183766761592563078154647939180981588922115715209158491727326156097561842311935172999238210454398252637964233590065474754301603293415853023849547453917038663032288669290083088990336130902499156596731525490418235762325102129464906857907692696321661557461287668435081933798982337280915691314791653075336558343484999192663242721778846741886760081249122367796663341915752223944224510732230362711385787682471619022655392668796131650369118856044413795130625261189283502769836851666593526861698897767584615705001502360134765303463345416039992887983009963163459282343696586179045336774882648886697768498194035784481485621813184513592994006511361983858872988986917524518713159096063656089848375087120061608742612306185506800954105741561122048844702025175891795106839091045862912038390029337617551964715792381674743569356035504154508427533681349533793958872943507766400137635650545245574060176684077092323068850570424773848087410082096402290298211490394444345212525951403725286987931991512673021285019846795273186774361308236553162685510970278781701938539580757156031240470185875967597283457714667260162386390627697113069534649247563721940135887323961909169036794846139351853805447665401996344532178432587907210035737891781738597162213213736581834675091363764015176549130650276500957501710619006796731918581353431523063914454261314129947813310082248268372447473073891031559217739271881524369688748186317961293338031715194724710715045889177690489486752467368767622533904118547095231159903273937458478027963876552962064290391003224767210030375858150984953192532800757279722645696772349937110859984184795681785498127133278946166412158574872260162363210906317333962805048954609421600512070966307690175993666920703803202796630212479113052972626441614974540868187745796201618755316223092430809511668022949143243424420716339078352052839299271721894353447109528286609538425634261199150182275319897754304191144030118329543787628474752423142598886241490790622212478187506633909795277809030324993114660689212983899723793157818307836679947682598369021014916095459474058696866859431589662330480243209575096525242978101654842330518914631805221322784299078188416935813202494633033152917404459272660604564349783470231538408559735039463585420601073989206207097542020879587881709159971453438963342092710642049857250696012812713882150526532504361559884620169108735256043924416078044451321047622497879505249041326722552734004499679674960473464786412920588982458625774584482976179271711555679683481125015977452260271411757455922226691459623553406677858638172209327880207119773630419118148693754061678069609911493681445025776460504243606389612551460592144563297841129223404741040059439833239988210294912891808243379387179724176224997975682598189887296642793059646529601250734650566555621945636962255153340031745050679567297191921031302824846045132726640899329883140138126989749635043984622506788587840944210258135458701601121852504268286208004864060072028010676260310053197858715006013790782110184229884802609623340830813801536644733279229249811602761739500381903289469514187239489076493373983735329817044472065007679508105282483958557470135493506852294285337066528629875362322285108081253047465322100383105449644301392032116982808014007428406260624728766875497498041207270870582662033261444877038415056050717568063604586865710208760228449727043836257683694095107823752364755990189885202205950148011737272801418795071312265156150374867692406775793241910133045701826486967850173350171649075176236292474651348980975066313206074315037823427839898334789714476591964882445686072698531243208026568069258956630487596396468544724052086796040120412507116560417493781523972284558209954081903858277745007924579216967794019774758608392754729164680586753949752169493047754924794916228849990840149133131678313155702095210644701286739369118954990305602368545456470625301441914312758795778911362552291010696127966594389017215214378986810059619149719713063353932219298662311673528429213148882408232315197305866142407456583966645923166983295038704694411341389449836704048579476462107723509314678351683691668680695617831927095445592873730570036843285651912248468178493954992129237465489660482812047871011950132779580480117620047774567529151588304465070813888532017274607903167862104759316420832939011194767599094143979332199028116164392996943219039473295715825665766739267668853798191879324919286110497713505558089444490763948880279804213588541628580216538194480204539502147617603165403574655374915926871419657124873684108493798751890812710810709514123858744367142680077819272429866063068561931868555048614918650543269181379350017458144186666323680570196795813629797983107841565521759256454878177294214789881830089297277495790708264347074769142270686426194083786933245798245452441403043922361331688126334237231497102762426946846415210190808085578005097017469287932457269708061321634146040869667356236177867413431616526739206608398078515503549164329027074542453247263796309484464398846842906195553538189324329260628921053229539707096156985183823544787224983199324386973954349799054201787665909621000843409288987269816979270188176644717686637444860615448686738838213841286504901687331114533394963642464915253758015824704910913964905482143012541371166965336393021445323275592357841537242702784133861007930466960857823840539358648450173755837478424693451786400971492470732329485589858738873236674560330139527767394491254755046561693263226089039306500976635220086824970323425889703287282808157533145865355660988675909614508003738864648586218563881316369057627530804933468380670085649681828893262853731965978753685179846492636465912311804288405901838946504724420863435467093564234443615813041768067074046742310236599024658450649304331276127854146753407646908829784770652995429953783714854781848274532321702420442121688740012692834872488561814342806981557382026999596076579836409428254102941379502623686399380273116867063122239100016265587320214320405685961353315965305341402320871668680140004046000719583587535749715220211124906065124526415563290503598730812960990876611434965345354499972015421294075406288590366755173842606145444360306910641367531250610365698192795023537306366982731860525801945797507746424541535109331331046964933619603445338894705600878690648958896918813856519390874000609542047428212977939212938904823191593058240689895677105843102183406116953030997543754596369953670777855919511458354861485525672997322387448637003953548877363482717977988464544835869442024780939549505946782969854535564370601435464187147520327670239626027430913447768236562700584456954747414710312791458347899004423746426618143135661812625470735536550914012669095121700006607816262308125428297065250634616831012633143821340367742685410080279044276866678527640522468159782655904853255391588709348487681824850631096324882161821368064546080965474098676962180230330220526265181606222622588995696306467116982747431713136701029761929882622879638288416144135637883248406228048841434927701206245011951065296096188646953884467043420049619972421382724824374042058306163632444278389916535016134774954497178264694615637004580877619255933535386482626602199172170680332772652713319029608928224871335588392825705007118317382862787268270833385489638592015434777199649894888018864708637600991931054262449486950432005959815718610223125501492398124508695806164988861318136613432012528312459238379968980238519389095939174924033016891671473122438996546182813649085308043919678898767137098198989673605159894299736867135560956472572767168548415312250075122644515337539714602629913585246105533059482956419090772547014395900129952758637228791257572630550740768033692962661716535198065652396809388230269007057857524587105572161507337939025541153026077409276939280401653252698767601451636090193213054809551021777583417253568590012830713454667852323426388020002605382530143112996775142723091390807138480871124916273106682306095933817413598614199155045672680413027994526711022974488285713951589869576736101776913908142172289862808617270643453395461563375537520949861332931472170779826536756689888832857022189250331309752430982057958524651186878080103372189948898017746160875587100531105649308275450103474397730087571690409594434832576540234367935692614881596487525665216186003447013331152821466253785686130279389953516951941489829085620251017654599229253385041529527471922556883130066455841338385202366914758815912149783039044918386481684850638878987403653337397823284300398839262963920402110448405514164040104804235617089723974198472098818719272791128563156781052124202794497800880278064592095319143861736212353613940442357861398864203810880633488222843886865814050963158221370713402017049314831815845453068788442527688475875531926491245401850134511895090618913125876464042382022488495517806890110848880976924468088850901711111675337452906022071076223037272102270616824453255149700777681627201275231048696984030576620807692662035425808082727296163304824162230912643003034967301825130176043470934657238567094624331180440820620269885530852790207879050745055028700534262276549145263817544179034711024485578414998427715670154112514035047391768224871944013446316677700923684163350560465759442499409256261791145300169588812046389066176291056170875490772948596014308214966298998544571635999778298301719108650796793714427377674067130376914493771616641582804469962805173949368943703397367283437500883868381430225834456458601281721979220306899773450507583681936245154523712361013629305094992587005388324633522135870131188576145071066824524622126127600329370480598248026602777995190888566205679452586186805135909021611634572135029145449663559263897620011436061577359062581749358755313639313117633049756418701736675935553013914599029681027532212235320216100389944958203859355282575407766696943985689816640150223924300166733897026509722430104435657665715933208067493895541164696173906490761728401422919276825967376907337384770198587196580339662398133801495254819698809747841255943405013976197027379772443867435974687153898749921362512304872891265520160293409235646590024818119233102952195145303537145893426665902154805691485074644762318116124311857141723921521239665554916835399371876176189474958230395992787843949615526395047096766678991053804118122044919117234159472546432486103437357975732802414977064027079411019608504383466182123037206635811500336142711325301979757134998558726335363888483558165080593095848084011933064685050723946631667161646444878507018902978636546927730055585908605097560032028001750760121741755422955429367348353866864424555912491876313897233356649806282464307787212429961203637839511752723262377267893796320680319477805739232256552982804816724242944144041978612058933233131657296853022241098377235430411448495497354528458100548782676604857224205822095487292254290249757820343484067628836750827690664591525988564584748932784451169538553389501567833120182103886966961643204702125725209841295162563869972614735476300811515624137998097860003839972269274312094768829498795283915743980506830067679026298535329184409558383607870603862482010595606859080051951514706950828433705848457748397357702984488955305991121687347858174371263583694958738571172631677235407203602208749342993247667929800673807488217192444874824600439678934260080278578646626776114084376863102416467387617767795638618315928615784323785971302638734529042809872381380278921160678955419059839135133451793532007553893715574586128617622418297992966569705764650872730211494305388836600671738648005640058819864713842666570062274461767340407506772077221963701479566611529314218717752827923820093307329239395967598366714899460775478528124984452604533340733678695083701356277664178370839036545615573546560735851518960560847046128246957935569704262928288082737626651245715702970041186791557886679733715294093810760525940940104193002263350077680512604284692559742440281180852401457006948869217951276894022844300267008728663686941388721408205133138270759188045985657342673215518777910376194612485109852311677023233518501302932250403868086099635605570020812874156278105061091234056794006962289756905730748572348314047915781459736283310124738358053020080610603659632033051988194549768322823990545720843962984158141960166979459346496069700325286650715944620772312588676709168757209541106597117425700423888284420019099969239208311396480612092638830874935046952657736227966072160081593751510457029137166590871299476327457284576076834018006787701922819635762880967637163930232514016693059706272167225254082722466197311903461733818774257445105747273476841998615236476119083236066920819501557464568483798476281077786436314465624717062077106063926203310648767515627228441769423050272863053553525474035341075011459338698079690649436003451882422344498990011906718399846925491899423827438704136870645503830840789721834112334911516337518981133441965532908217735736754438864562026044736163150334128272651926786193446767090998173526219299648999795943100031139726956391838322144751553241905597851855091873084801341972410605620456349478094578238403359858676122021787739322616376406330157840732120668006373636124162291999911929204218163437144578967731763020799633028329301318703370099694590034413070676181087542960247501919196582007472399645114067970654151917801170689989060668363008510855475308615872918115123227342873156083879330989474068056414435519997652381658567309535140573118540402553489851199198520738083491262114407706086031023056359335395919418824223087122930552759095819060224630748728408970185920078300689751540708309162588237250814399450887563774520370396100610295796534983584710712335224020242850521347325423991025999307749540758220329764282385562771823303468922802271688341688644684183783222026509113741829329061506128695740536196832616241589234422602281042519062723707765865938816377573059337957405153512020246448430250354282651909507142693955742079984193287425212337372765852363508047058861316388571283446303397928640943617564657696466568729693268882012087825502170326943531639101202726246515971419284330518153930077756960819656240484147702073266025048910838423981885190256256551410725458954850846903817699222897776314773007730610421785803135495275777354099119496058171020394058065763138073497476818774823018751181379071576303110383005135740340316566667910944107132977848267856152948569836047904940138547295247078032533196176239410154971058195375611959469568926343533690917160631284460889887249422595984125971799984193360656969521908750499805634523116998278774465949128210497210112587412099156053694858739938605655820465016851394425559724475182394088468072145826497391379359060099581915003499554380772010233693113176949394786189498029728853844259500118188946502049529234950031797491532182546303728037337332452506495766219418270820452111482941242700908572369036093634252363995377005125623129579470233559226439055749833497187514065142655802098297070652471220092373378967352542482493347940807540476343464486002784161796985108727337642220396003582610796686485289657347765897278785366128138884533244614505687417033060402104454864225828596147105371374252258957974555699944074796857595066371512125805068351659637311335116715000928671562851310318583338615942934813187684489697553036625831133587160801726834376872468449653159451910672342453135217985169640341921342183918403926615910974894974783870588749345206908160553893508702265851821327755050467154596403351806845710040516749158369573292496594984682777816909755135942956934733351963596280016535634099773914821113551725447018907383159493851317530052804389340798268075104405346027691667629413561047234804931015826342940225249344447689510336263331374570274640849998562097351693206410859392170323056993734276206047043058472638024866188443290748340591709021674354885959171770073554087100792449103680248415853434735043317110804380171745759453635869985542056293553433484695198575683509911186688302130461844572107862591414799529175280472279286539880460137171609525773169239532919303169717914582233936177936832787526183872366894452981364988118217334171652799071657701701472966184112821532290946495703814055328366412755911048969606814828264699076228890226217873140745141743845277274756162579010669986265199384765542466065965183995587909734270036581178207803214217205355997883748243454888409830918169275563911271632455022448412831010314448152137069391848463488354421147223681510039928850532729181867012153826454669066411485394383643723051714132229017371814298717483295223477859319006357441154299008640903597811347736007038271514027335933806740912752288158313263035717221849093647362323864607004524936036928937468755068513299204856076003746910506014507765590500161552343772786698960420071176989355983038027045110853892535315625550911604438399242592069296757521177031279380747644031708769769172236462350611021349146791275611707308480670746354116313628920115672247575988291426798155754486102309023627041171960079588174979779827981935440073865494888259834204902491511975261096604020036684028641904743877326644903340663214700865673709838051336201789114406637777130577595592265613136965206198315640782659172649604871732668062238447463157251670218402869215368351755720379751164780426404624875814333106765705027684321091133091454642051039984573839109163337979261925834196273470447431567628541691694549576328328005405943555941537843415387967486485343146006220294595118084802791773093642194477182519417156962633332752280845456581865427974265919092559760829167503958036733627580945739404649345909731682186611776164669521386090780208459939184829678352199860449626850110981992583877591427961821405307776914413581972209597639481331436259797271021715230650725108677397071648077451393540800436590439229503669930707094914946927487575810867530781422648302760966657999564256187531874225234199106681498884802695071484323569666714391038677577765656296870777295770515078052461839140573507160505930356278137056562754298423177280961527554204959898508317735201629227791580851943324305799171887512609814495728270811037376686330528738856639438809063178283409864116338867106762406666965564162891629453640600922295216426952905408097335765972860541458041128676911377895411909397000688802887689561926195265373946923948085138563945279934810681372759820939085045551323009151038122487186120300449999996110253097679333033734045007110713687380169730972749405819648877984185704634336211500686763425294806274497856705784488693931859656156735505960867626757421634283809125844317863093467391596642519906267162291285793834664841137694855142904237387447223903901957852092074361375903230853707792571748620187487030712402996572676685490882411517551169250822516879767298619240375820786458404483842037953341349311791955486566180064596073871476418300425558377022478846606321129072615929158189709671687365238639863129357310917583006874882177800530354483594462469688626678178035406078104794218623734438917865405680317267491307700537633150819611753448233093757388030862653874786223189087454208645877839127873014707588050314386588544027503701789617118335399577551967818946901728454039014930809171213222166521207685093305477179765192675446851543455880779946724248787050994486977110049658467820596605712754920574084897032616374881208111317292514307854464620784179163893566957710792943515975857280825880168826866172093237085202892751823461882037702736983578609452369405436307235504004015745914322059446234744982957337472342445534028638250648287161821837029473552010793620126970360070098178615185271342434154641095321966447273584970898810293852505947106697352508683560757560149265652133733696080076532939277678268334810630706169811262952121063323458484523781110685447456828224316012806707727723867658621997521939730133331461956680059048254872539103887247783400129626461900420156478314161578668176048331823904493986097739251296280319824932320809382752487418065771169306353509717361016506268263469604866369090964912584028448537506281114905724436294385434061389364007720462922763021093709136664744275353922243785920631961461976765804790988937939549912287788737173173516166329754231622807832983985747040130272812289729659235016537371195584772107021304232271645928731370095578291158129249952822296268415960334437988064735773411720787257113654427342066587643385932988877763931768342687532999919266130702992598575192276789226395752114953502644621749609365096185862920250496458909644329043058825548194346214182570114634632641861883487300920129972665870493407129792405952213923730910015263448023319827789840516767741046579406549920196551711900531948568446753037039372298971730336384753492054514962771825048043768998406014474484412331571068571791578565500743321088248900090245023549975274004619465027151059894707003812018933360009526160025677106878666512761355449518172507985694410202664551851524074355947301544975216159027813249119104330717252527860638993670809160848600220787750984647731456821724486497835322173816470771525379790285182848034956722687731502370550531279533598877347527867863592930328628949776093361030656140544398827860743468568555496936345776160978651981890416645978746842832621948662422240183462518022383069573453300774011415216048292700852156714946709999869874431156320481889183207048070849347120770161516884451921159762893836091473855869851243078046128240029128902871577090462030903880293193389988362218977915199723309962734559723264023099164535314420152547728165804252382353213600814290867724281669297893657659820568334373341412079363080681626763196418950024821728227895494475077447547750210066520051019565127072630872204322249215551782215307052448798234835632098074855928903109145744697962612155363432116233900378841855171887797352885428991418673005124225516349614254141522112271631343711787033975810462282339548180808401141785759838739390215290038923182209880680581541900640427086308502232088677126732733473475937700064249046759479065190765697839870562636269015009074407647149157633591640589624008998760554569160794109353034606379804048567041608103222109625148619262864821030668814604597085206171958373675613253085131727508969604509029185968171251922522519750576101152955745953904106024536154285675230940052266427699895370557330395560717416054413421563954810538320910828496392161460317506083782220058842668662501276701678847756096012863722326220535395303342669396082642737148386729721124230761428461532301038944658713061078784838900684691672212799438527706375781176606070606568791246117813690504218997870312333525118383074047478120038571672063273639811114795612268410899514220622891570279368345088611355124006781483777948820214549031784075798895721805841337971027725587341032819895672609337248299788571275189600135279270444527905974435609806867249399195050911638602279800762572713906323238239649999718341048507104654384939956022327251057007303899568671266133933746242792766614573423796224219365862568423788644185528885475758919796189664096549471965200317579521092212014217241673941768570466369204833950023019820242220603404390544942183726597986227960531760968128043301561867055201710879224500385299630691273839593837685682022930684188460550644790608216529320334182251005611167498001577260027792050414588542272967856310628786962068390111131132570458174709679172882897915046762642437133280769318512201082563059346262138465283705110671936228609912400429761267144226562098021607651805094155576944989217830541942798259283425378102557795404634665880469967746849216275498002292994037588905890317051350824893012459076461702838116546852806849396908725167264444481700309515084136325038737145686561958796212541113162543346078777399942213674223215259650070361683110393947836436565616870242842527829110436744144440167277409918379384948288203492100131824667010385710008547655920422608489266021950138427150495971153833975220466661081804212276053154291916109787865859599010918171534425691634226841252704659159067112962481980526821384963425737515325641668356209169258486126499626867614285655935413579198212305692417028019444325893798065804991895434639986776790045105416408893670855905089313966863270467706341215414412345915716888054164756250370674975557540129842279281765905533835819319892513715774718624211391987182336059651165399414785546769075392992020679075482473118005492108943146864332306349542819955713856508580346396185358437914046463472726300706915732961334335354032377037904792985680942448943119230763870240063585980315225727654385572377293446346663068738526208007523045920814926745655952686933327987020913104933887604238457958923191377862387738664281387801210981666009075328070191972429708220439511250487539535581988028799557293891680526407069827999024630025424152760073382868007065131951070034742413268446661362529517811473820677313305960841270889199372131376615186571000067874141837595445062243363989662029919464389668510866179472282748942454560526397913204550253008561107889736158773012540182591507709234355955156420198784903395571123190380536648200517175403554996098877878734880238632273504255548298498221489645582816133062301371651471409436043214179614337142164431012645613290812064930615418332518519865938274993444128698002738070928873486851180910991735889447934015244745436513774215223087372887575091590356719506239575126124760716323118844132972094308838426853365114791340658030477779567874316387664997691299864555530914352711476887596540651091177951948975319304140045964542828636217552542850937429123906215668158360280861915938396362730273947981453585054927498528943688773471926168702706813697705118305432277218190678774379941934244081601019637535395965997397692370587991987171711414652728887140936443683746352502349197961736187569076860219313469958262539406648497928089944364550388676035888634723979967318966472563866208204753733806157902793970473915932565902653337711905300363820004419080673869762383562359767114566677071611908662989748368776627357680846833625194659139192182979242566355730649029392045194516815586464315748801397644602974051298601816156083590405830589182798308002800079285140748821287192781791299331328798337716663561802975351866083177000112762999601771389602461817936640756744464657035544645597266901284003961418372376525065222388077677608389534107775269608416816846789799931113809900649371091894859568937902071040300863559915886325708640251000737345423479880034543153432752301021434765540144870247187589214317580740992400682734384803860155712605671706644357781875316055282284034921955164417078675971896107437431293816539247794502084380155733911150179166486876334629007972131676478166245024775225052067542440421798184413078629410681230902952312486617896664487042171521225700768356979756537080704757938915186517641487163912483013621514061276876550287344226525694507100047975180715590063533197059623933643552400963301432715310562443169617736415673193948833834550721405895154947671873674108090262345651505632616932720338345165516617829686983211794196068097529325051345084826895322895398724560738389614262375030711582915362855919109590844451243448386859313632155381279532906232930561719729632567963156853750008029128283697444936450510070112615271708301922538953326783886139318086440712902920626126040481672986666648580702661964439312601148546641402971860309939120217251437419444211333833789534827138672352104443560362039779973193265056408891691271247225426839101271777646620577257004587649023902291642117084367909225008708726769789513628775392781368812658639827441616299632516579911442746666351993895291441227332094672361813266687560989198482051826419246318269115893995384846594196128488548277594928337688166083570412533449941384989182779326047471370425876470880938427998731747922996255324670014601711926328570330377537812792070863516785807834186013171635921719010451712113059223579117614991317020549547777278459736426760242060125710561807245195856851172403698732830059883252099351909491031341442546277224969094260214738199075083860177517490097510889995372908806262555917012846612175656861537888017892352149660659099766919897086724343552718432358972472374885268145913373320023139448899023757728880146468657658077393091847056622962996739100079715997311795588220326198007314661231516543999413627618732401009302583852676477392946428023841698209387344318816084597707108501197041095852062399357820468682183740753690601774726599995798529036595994278159416871547265523558335451105830574960583862156613061063319252917496826455952068438514690758104586126171421249695344023669044148965346357091215756551010885773939262659492844602193416606051692227658041983239986619017480367996932689709452014021488646934775209570450821196075790910707158129570980194099014345644805482466131477870700692030833485204749563021107511228801336956226404868593423437670164579702271262335308349611397763434943629837365217262859269957897339243341396866788139197828462907770933038139202849872270780088153558186860269399967744147209178967441568725980530226913430566312873842963807417415625376335540463734972479447647439630898523048168065366699322134614096785042199237387123622852063984439414025147302014064176134203646878744838371432074959316457221496921983780901920152620824113308443153019785461796449642635217202717134192631328919015654779794018602494182850007383315896813954854318832854111438311782782931754707573021059108228726012490907150260349663106711280911993157256522948177066568881731852780537120824547449222092764636030422420416994349275272700584615493628315697795861789352496283655869137280037112503689673739460975219544720021038516060787505091944886587211077493353509375428677220382599952474995444243740104227312311619772812050789877122882078827260637039303130810772873066151377892050874629683092924520403325281127673319634671995961102990980205735076753673737509410425469975314593974258913411640792200048308210504448913426932642551460366198477345216139140521582620204110548819180791302802924424023795354232113331050883084776619271873362152461968460461817190580994159074657736019171707409069066504071363629909126291635944849434151748049814366330707656534374743640414821941139675168591840123040917134890754138046031409298430207318443198047889763511752879124079700008156047560823282698796896627006483216576993058821132189187746040423397262755217907420225444741449516848147087389868225779913382641916175854245933161367381968169022877970449965051960311163019360818622507193883401872381699740572813931241793474355048303005333010436817040531987471746950741950257078807844587786367799835720851323191057176694658298315514902618730371874085940601203698256446423133431987403593964838763578047457980365475017271781689941588132112919583869077694067400908406412947778883888059414622822874475432011737897129791118035925710186297994297894432455006641730473900236453437924170005057593825478594362369491621675967073977063713987310679845121360850620597614584479675558108170527678465040900322270585400756245137798253377299586138916314993244986663211403723808573299089597838706276270988334862066805192276194368154424988740091048502253409559200951353564538004587796406695289528203840647531460726269201663151410018970866070816572180547001340210932341125592137598023101542496796535695084992591481234758710641756195911593795444634790137022182469030811345016679795429966084645816560117755294705915965917959720330302875775505448792901905555724415781227010010491999469892669898731652552850377295552451067538723100156519527515212368299313308494702661076666728762596392576752694361805430942917358599688352332516357901921335384650846385228429947524487537462984791271743557149995632257850746376135858253409923996862365078344889091210540476417881167516516350894855437721973111331979800534838831043340947885351813790761894451294809173104674051201613282020013367004444166037323298872225269674241990435851853945718586947518220385315185320670064982777418569661294763156588173879513334336568543261836427542436758063888889450692219214266060105964928209864383485052010800322748569669813059919944494701689707269489349439291711510520665704098057841012190050195950171794837980890698108129912563296874416799966521489996268592125563314733323003041575211052298349539415819640510103166539287397225554471996833015507800859744174640168674067472684651362693285960431582633646553317052082173233917934247917614477998010902490442615002708568935613725687507105099224120807147846070107397162021696625045411962602356569028103034183225387314229677146010201427901405741414724595481683645292795680778944069702589102950105997296698366136603878209979478413968431706955983205406340312107302909396846728903613025412044167664027088924046813026461118423358184488578385268439262062827771351456496026993486017218508670071644577715027300495205318217157671758305901287902429465618885797905912093873626704366372242925813678485082498066715070253369766812968106758035846696139192431262649507034965748425373145090019872783903469625882913222625975631456381866558612993594397427387389667296658997211117401918489477165303064676331707595690442717399412622911304405362897105382661954778228136941513854673720101653136875334831932375779258702998419499204221668590245290470452538053610509180528897264467372241166468764794195346513627209355101623957350733239546605817384457546667167989075983172587629673388647355827224143794631859389780660344362012438611344339187081021880856347193379417636850756668779564755610012632199895964237463597587258884539383888173433083383634669308291021419268801277743070310844287969511957013372571411957334216293692287764588107373705148069996581735434818449594481995335332420136329369231079118387148768694976269988726511521875985475433364307003972732758012130438700225749374932849740834826293346072327546253868658197909585842623235613420524986199505254013518948695181482363135436450202752424248345889954393634642234636273672496546999870998942339940945860369857194328951497357629567047580686691480182385830142552470226138048466808743853829932048062884342194656334660356262646036999584877848458241643339893637068475839771155138590529529424675979514951841538787523466079600836141735643204478024306470803519051810849159765071097444248327810637126251465102201783223862391594755925876530623505234437012666467654959380696794020407264712663952753320721370116577901216160631189803285424203832514066718619614264392618929841606922598353942323314574795369254567158116197184195200932441639489479915998839869262047689977646745852030681837023501361426346785648091402127692343700133217112317256294861459517199365688846278312252330533766042746652474209131849401601076792501501457304473967719110523686923148446661283443362911418135270578303103335467352531102369640663174553835319930628814358852462254305421739782946586388093535022291257279419817436869082704931861908058331561042538235658527548280226511595805414918649632623059190789999026139540139349508412872067741540211070081157357433483052062400940249542391739637767302953582746026153394311829636121099169234723624655527318618306168584409957444774737529629163752461468096522625826538482870067565367099609066983632644710157541093137477173799479979427172255038607861489147903275503109626503544215118970163610346404319452944403277849077522417442390063127531554348597929213556851602175065229523529969081539709651175532539944000033875914987359039162073233478243560634031429578755360256241304043594564091772812039256862077772033520983053458103232330340550042638899045978416313453220210195300140334268669076622846303286550288636858269781306673794674289877979218322043230517781106537082642593501718967611967019386241265413557642164272410622718425694052225071207787824945803906288218120112595815785358111369744340753934915698081091943263915271092874204908415454389196820554854938685580089256748159119183944522794244594153364759702669842639958705278194246792657870066872348806742881097617124882748338888325948557248596537469648257408770619772997125117159568551567561451730617271305853307959848628802218591594528694881515975266280190015236865034373055396832664609373416989806588579428958565232583438686687896698221846450070381421279268353215660206972183804133385937993098084095684161516625918747485748374086950555432196709854747075486044894537959352244482548698903069432363321910158606936851702911693632618631266061077491405760807302601757806084167390905403672839529801882673389641459531632475837915964102953429112232751714085555626025050326512840223035494589854910418632214909557766608455662109390629980587067769749908639156526052276407082355192503300008420265116619870266024064944490051317305516724493372314770373706176136671807762414149055414211303523509069128552415603358025327575813877601084704106730428706663100082251594548176469648157434835552398825354704390251882035853966884975001019177661360092993947950447512347955145112213245329616345374286055445802105156330628341003434952549949056162456024450631392994640467621695431669877595508480509604368569755430925558872516820688015120688890358828005168571581481988861826299219108015197971322477559461137202743336923657864082701543721503551625680856774975319084548521854369301352487554287172499977145717974740330029582431494198896239862250938228379889758254413824613971724454272854066006256183572831721128811805652763436894075895718140329097515711050325407123469779163204684129758207435261924490420423280246014216847817339444750714797149032612933418611027282165167723079172447427386124855399447443404667857510681558964880694731147119282525395855317941700526699524880293555814044971939139871808598928412142304284124591083751621806991876090503802102017570808138714413150200812781032675094072366592128579351128649221663055831217335581318724460600282149971305652339186644438326922171715374477840922422753810880458194225360144928598447246267810328238894178372968288716200127024943989678098198388793173119279447825204994304025212392501010872476293749119233154085375346200732576157247490259520648721916846362791467207115603137436457779884504509681866955303959431127830081880829564852419099313863486467862939021220374803082654196229957309117276829042595835218160743187520930725944115888137011561953982747255810219200991675841300995963196126514471671602091047303325776723941016934894995278271429225911230246309773817008435011555340966001230923370475335925576054354861810464219935542726317076053486944679914261057898723456889742395372504836830806418433985409209746834481253788687644972916576943055487342620015231022670690893818423566096036881102915307393697735576150172516275654975907175060122931744489147272172824632580355329708430549504314821147020928400561077123754067254414613589915212594887697409922124869489431967139906344861204303464788538787090184579140841981393707122983700146226139648118792588911998646914266168555901469632558863850178373879923708510249179111524396634892349329144782927635641958365232275816902436016334516865581507293722730083082570020284774986359366360029731950822930769429769421819268924181649953058519524179363593315757228973596681233312052011048774646631866966220162496058843769536361420723165346059681404333080405996548136369711556875320576476607051294769293068642781993916684529942892472208935892965560080742796993047783657058240695732189056294216989944958036670028225866018321908642406198784368281726841016439172021473192008925389678837458422487783224484498096069879443526562591914060694404143939270405919523561161638374897034924827410170353310584997701787519661584023656575838588243924001355480710663463451021488011700331663389347901033936502759743947449323385736857203271522464785045545416649757443582277979137649289809302114181220646259922322073497623061242894175464490706706448471166978486550796859791702928570219336029094706098897624855439592994520002998943814662872471907467739849393562859864989275972091868966535929766012585247584755143124339027676619976625293454965161793455046666283155469290670082694715640926306049334479317460773595955442225131161130966830134100904590547946788278827033913100945643261344358434757890282652977020731968726455356810631624327121003696805817913395030099873100584075976919598160899326316929274712012668205489060244334355152648485787306511579399437729181721285490298784941711163600773249164357046362117881209041919026101493581560577602399773906189827142710806817990640934911708648454578915521460843066059815281992821703675325606512912378914001522284552209677706526703128148764046695910427658343231650323786822519254209341232288952068198616129781299931470499296289725023954843321090458232420712104481350353117944982461463289788320746019825543200053567961887064830991016575698200539723103710111331193051757662791327564192454396712552009612976414151216058355753983427733395713634657753205899211034057228784621433914772470576721301529599317075460733361474450805465433739466061110677233813980772606013577687581352584785596565987004812443534579752457840523281560631149480985476580126673148305295697353293788747778259166490677202648349736736376981079243439764799179000945126176474216592091832575801142923915308687692139650159891722717982036304440485157977073413559699693504729939085194369571849080007002279291667797471347024524405494225073098343055777751954474838354209130990589349591868666737103964007363706904059166640995288027580043412266969386472461240216937809747171397479172780791011716909481450124768835429876575690358483387863693077950302724877636890431077702384109635921931738624662120832957054918402092256433285192441578129303492603131277731341764442126618720149648053438741146213790349091413802555381288416314880961309483320031067386404209874020085163251457940716892368490798196652602475802749238674137583583389970578050929607243555809627470553009306084401437644962572201890112531794327945228526452743275386221887261770972418704036824489194466022007088998468285041143842018374680300451993496134808772006193685948869291230500188206009479577323261209169326174733327960388546197216182715282077789581574790010075961616175810282466363737258926865670343095724148806579078205335897341895333143428337296494990032316420733837689507156368620999401326965439073757898893282975273297256305852517250985842950535325666534492818318864403554186158200125500810160642376123495460197516379885386644921159882975206985262359931546587450588501855024221507013577681373584928818053652851250703061662729581987429929370476174890028078356518362658334773346220607638760978814236435230345424852653009320327067512195771654133987488083515158469748043677610398981824750271124015454097346187615617960421707289491411811306977498934306269919561524008148951639742159620023525600449394045298675500947166860901215414468678347450098544930600487025146346477015020552820324653526081386672294435629223781541966427951810492749883088389890063297673198635746341345647848152400187925422175718316706155886199566937454578948282554181649274783939891316818046282687300471188386903146368822025714893042047825843339043562042108785992625468096166459792243899689537095589132825668120460663729876648244123245694297246886869542089674476489330545647333926977493993523853387464948080442482607640090197426290460048003191826946935690502776282777930465377425361074695634397389358541018953419472816496113350404755291330359089246943666536910230584182519130444030067116439491504414514359556916504279075717737740548062483221254243226902201268793105367846300067016159227608980137143248658360584548795888172677643500859243575996713445685801842501989957928328108447468205221077448456995720414894563748873363584866376456442079198073675434153113138343293499245898777282390180186768341561988575750146016181053583692302064316249615791202521044892939531305789649686331545525951065091866579212164844230219966155253359747090292840584215761448824918319519350001418852154844482733543134838527460232362946099845016417631515870473472388841601482801290930299975061349689997159518470473810340637514757601954570259348404308606643999603506302147110352379998748257800034039391917393924251152251519964294515202888154723821765975261806268645276370797754774405245078651349998882283882745408609352702667424629283469744055331265592267298297593089488974615333807957855111024442650401734608358382710374716582266474644147838245195703040295800637922924268315209160339367553108951731770118031847702391499380613675335259456742358916527276951991265225044539997586930875525736986835926195129989780096300150905942182178596422296142058395678556278766483099203532326072019895976533626684072576577289002161964067683655732118682674137631837419604976565695737743772525491994205026733109913109459418161088811473293150586243530401943111305398894840869252962139480305714746221370702993384986453613645735809631963000499692785164325952033392611909169149370426006921273614783015027732298420501983650785938856583067352100376988388023866468917857297235781748553318953897118814022246997737069493826330836505540648846717419604200530073164949475371213776986632889628272344026101144310214411124576760600479425142805821595471165086113782034663724262254392077259866797496909753492057399606464526936227037454619172240646172525307318670161068056418625491029823453124598441715338300515437421737952129509015434469103514526670736012387736253950805110460985877274097863591840626556836879126365961366314774407341099653946285621539757340822092944476208381525084486357112844532349597145830263177912095224872743871646680359137685203381368319683492242839334457448867292254249685062077380638247389864138934573138925345381991522830702285984110389758661587167464357960885134147431610482373803893001268555865583514601467450222504659989959062688730269938386641880273874779473540716216262605074538474630733812546120270149957692927912593507385056227256276793027794506979341628679980136966130218319859266372934785231315313359693686399808567667759503029642304498804940322762034456374424127566600427846753445079180474180116922944969919939767938348996267359717232617817988460383495742016781367715267085712329728253779681881831656494209133461039307231647828522164368336955299553617709946661146475015969853813109470245856779752100009384263032723502487466096150577979550047071607845228134652332596949465230902553413030783324624951745964475313663792802070646572929628411126403752735844870654361046446220454562168097137946227693974645323765646010473185451998976999218825069460670833017329387922226276406843508428503337817420027090150192670963049252563812580221883258796482036196306093616865058345359808473548810789984950617744278684537888659526652579070612771345492639913023411956113478879064693454785555584019360066591840114683574173635338306722138196345074513816136542681725367768532184665231993820579138806560676584401806859037732863826343529279537016003996524215391445153749356042237837505332890507454924324958305161999418578872906460026893375254862039700239718308134854816572037044659557268040675899020150833845169218293018838383361055222569816513266029556382079585183253477503604192773942335408254650419518012551858287881064230165440973726463702799923266728054254278133389231429580368769270983892814334022935575567897387691476663532164818398546229558151563517423766132793295157366977134044425750423922033023770637336504422555992416327902570406339640739245748146752527562882028100674920073221659069008067455953656640044087980208031921175394351210950766757927153620810239655041970184587573919153836625701204783054246759611197289788212334922462280815377039164618860298995720039357022689952373966045454859033954618073214905608558874830169680950866074710206627540269303459863359328355262128361282828065395170806232108925146763981291585403163335730830628431500961088327271903097160670307812500432574714915022425690753405335710911604430040777350441179986387374991396455820733860946140048305163724708516798836031548143060272879138338259355191974837848103183739555576336223577741514555405079692130961059725307615203148316895175723375635146259205675691224132540720040134293720374587652456774482030181076223897887308073048626879582116681599147648408288453712489589210515139503136820731664652716259489380283094342230246719362536625696467313226809369347636510854686244750571563335811363726296699634128642016275167004368216080525661877273964533537430663777424452033842022115091005894211540123936179237331390236604829720765154535801311817776675527984722799117131002683903924122997948839740831091522560531640884884539161087077214023744105151676671327705875030853649892300667992353784381881399781501150931231061019903767362775713252225463839722445804849600352118152964897721498894061650638151872912630512653107849749154241968207902670721804676560713328313533263450291960552366965430165492916176884214966186069988304191504844479766466936606646281104498600193333460281622194207988789835756613071282871615511022023171192715780912119427133830498496149942254061865903780881748333119553394514303242071462654647822318967580732051228620862461320702584520997869055602032072171787647488775104615414008752888049114416844245187168235693510323366236165356167644026813894561652781582282259808769479260529166043473543904486736461634384170323738984559174075510387408831350004076005533438807349163350874096233108678314518119250454383681360022963204551561412854197558797550624709987898713409660522703584290084913729424392033749121263200202515442656464908835735116786275233943580333911648797854624046745831090344079774548002024828451415584138827223031907389441805610878544616957508774663040765066806868577422755440508534803506342211638751412847058375328950960265969502200519415008436685891175236230407233487637019508832355451118497504667185552186475246364958611001191862552828005773182807443485670994117612110394686883754848134108531232307751911692992865187951428359012912289105523497531413830303703569816509115021123637268486458775054560283196991598645864331383439194600021951618751631941266115668023073237948847148053408407441204955594463794132930287100378128697202057324833152815438670383093557278321352461031437693657440433890476355771709328149194488189313993861625530716866591298928052773496469617147359956129458649015978767449535420913936211334615906839670291593552671109341694803052675487464276729794279364438249954611207529073420640907514354732314432483737424840438568719549586254753126651848960259520854225544527129096977671855355074404536100407853675462761400688372501879813629028043979860733314409528042369278445042355066061767248015745081110034316687931270981721438074392787283588350990434565530403328426285982886730038839355112354159255762239450262143118702026202439067882812437713056974217967559399704786385531423865123106039739542039920175935606550895344030000912609168725302429753088026062878089345525069768580690456233213721232093347280579509290475803918831389657746898721256196230751834374699359467532168855151470680887602681414370125164536184448835640253297163181229582173316073340781388448197822141764910359738948861399591070786099901591004208736752045859577319899080046393852544071490913832092644559621412970981076309804042756113036880476725945105119476671313453302112904094598262201764312965930625413309398744236259014058408715256241219965387566341836054372891170747504451617314685482209712540798723250596428155118935190357080900082931613295393126835718338054367531064918880559081060772191310560360011424701343691989725689923500665053154861793797311185859040524987166438732104059972524325883205444208041274176297605085110793908769738043895621579429455154809655905154616272478202693017185940508645062652034758309808571225735876981257665306709318176479367876541706874352509009533431277352310992751366318175637329234700576413810972781216077108142346857928137722736976265727525967077105796169363830288341545291395916906900293084927885542323487359109172191472050387979043133514468038331080198368964369709196775756173411660421960679060457533926818364596045350120216548453936732093630819710792273323567306700883315341843335094781504366457366830912389718408319041297354286392565566585688866070383370792847855904329261280955554020671044038881876070961660861018655999329992094001589025062982151824066121714359503530152645676256951346130586092864005496889703673426331880009039190670252223097137900256366739872837458151953789609975736946154073254485162966812066137861624291065380952624979612444926023337151150113734651263271938544397547319922056112727923778723088329687884522422495791111484497771167430113537649758045584152213689958838060350085178721116256442427838714312125542308786213463004140313738637960077765127391524492861677907028077607817605817819645208019367342908753679407760344556192750241649206468233951565017529926066934105963509983752498418497603484763972830591283749300136146012225521689194562264023791138245293091974228938493294350789310804611728086142378793952009635498689449236067108247280478321511287601159583736205971864831955871017175272698492276094953420868144120514960329638153192941961403355874592278345824745712348582897462402653519488526343036831643244772431266388886577851269561233092671248535750655586737600289919572048101296225253331642608603244838924409693450933678307950927531019913754516433874558835930756907506013083397892660826845222174268465323305841915954466530559293904533845098299853300660860901089178819067235705190076214360843977501463375166003360587549408018688049758694015041123473923959606984772267477102062482447589385441792635878867553107840408311443132643550846457337465824413904357508249867836195520605003865984869817351877441118686802096512430156122383096443278461735428179587859206747349546096469597071075575583358846097270868797798708696121535034875238974507271507179795022604827871160689748578649441510383880298580606190088144136740244955896970818179102865805288080705164349935762259043312435133744570982081082238601344124015045362686454131942551664110778741077053696510460782899190645404286918696761251984367359700539995508627383463066963396970624992730527624291629046910264032334942441501841847707294902600519587631479850590877079429363200549889915615113537101695931495316005452128402347061097062180906218300597390098777111201047691847493885079240684888355607368084526383921628088576692486960192528382671093548486850908266633940191058087483209471055136247102946473991269726217842844284447135640239294584257057468600934998963461483301794634905936190649948049902102941554959086504820001278134923988930914633611378692105054521689908022813552961205094708024181575817862171460229780770751232544308714884293399477963833476267438689812189174589043477993062990589865253559538505448024242368636413676401448887715566481717805450751589239597506285772441048807671874852734784851598412332132121740616056263341988802065264750544945234851285428351941143392077102715616519730075900507503819595137492664156830728442694904424181963781723841175132665710297587164080980283917861259829321787186399472431268484841619059550655196107222668214553062901598748352578979250417215197272739832374823863903958918153059187354650569802287959415174894285468882217181913456783336047202679437593840435782971207972045574491015350022397697704028840225083872915803034014917008960461013191788352710040773846305721770133446319141986476218949598635919366243408322982530922883503135664296862607612121559204604203249422893861008059913687090566171665811417944081451883481456307748423620371833924505382165635394036628266418618174858577482164303772793895794400682899815316572174332006476388370150522184145584132624274662361264896179268101190725036475457985703734871773503507132810384667728111444345529039413853368447048546252226081010770809282097420271387776751920763070984931575717925483592333004672023502000507022998859331470025077403933380846247737496496654901991723378829553449887891722094408869470620109133986713515832957671065906973779588918755200602034832392875464545262026509766400541296195982387214192446435363918585430309795136994457556364579138971597870630974076612168858778640403539316175059101278542971562535575474936696589526350354575215919560715765278863959102877454998168619806561101425242111512291352990960411555159645807033438292369397736039812719672803242990589399763387731919555001293227670581484245527540592664471210867101567363269693955514543246809646831093889265603046988901958973368685914657529981375175777143700738410482671514213833844868679463622607238376252487143796794422308808369999664358725937089301234147577335778747863126173351219271396871817068144310174918690865515726535850992177649926179266166483058511821416098371563819499424143574708990144064375947284948276635061437511561454047220119582448876552475670263357637522858267011608242634567031944960541532974302612863728425173974090581677121758884568893582632167656752696371544498449384421214729020965982998631175995747035847418440359759137721392665142280445122493752560467850005984695969014169735735112130182654618361822541686790869247872628224808204453646840133608649334921364104077057546794180013521098090137669481477740477100872604036078710004910954651088044627814974143305870498158906317662394434790633459565843000624516257096823121584974531489656148159331408643769364600353802993067750548174973021012516661825579083982795173797645577168143508988246379241085830192732340825994137544721047750316788213504780347241262870736910307886091457377017032139425738709453516594631304735605390340524366713772999696852673786677977240623334666221184406411867764190083044908959113275431763453438714115647776705848554650092662759238715020133734214566185104484281708862772495719951699466551242766797759141244888715677521253928137740623684443570026667477371614780598896109253549830122048038444824257288808258171585108419723462263077378642428931626398159112130385482957345998456280795568134813124957044536139160336094727516127261103896585785584229728259538887686042805837915196705285253469575083290516503563174181620359716910441673289574386719434395368053621302182800858331702807198235761570231912600128697873602363370020542081138399408929160616909530455007581566553694338355757780142169542711885857471812581889711628541253425787493312897408031180328346023062687403778962620138872248331758890970909354416081883118568155799546929540579487854894737586583776313780664846330587535187235862692125605689985002549661001206423748327343825531385769353434121760602553712845066417248272827300762941974169724832242686180920684883116033718623878813609710024449904288650956528958543955846214807234642949933691075749201969739017415311275755580146840321646725616683334941879327014073808281478923174910396064143695033980142918427148023194307803887676672082304544353336696393826983856342503301625032959773156131673194864032942690308325059231253677084368920623059633577277865808238753318560815790602142895853678339091790256241909431691043171478216752720134120215677490419012186358189166247890127951616492013032888806280332016295719005132267055661862641995148137032983439697482297516508094014075423595569283500653651691558019654535402798101384758644348505437092797756821349379926421068970993667770347205270778218532395385109704313945240501862662596836883597219414317601925732731448461213131906143595320491514614120966122242162899655844227705561007078766349043933723447193255487755731626561497670173959037923572570505381452155824474013297161023373635356675897457956438768127417505011348141542846876364939804961455908775830812912205650610980656985765225626151825839276879876033441176261850573421847719644642095485161250534172547470606112913326330074159029258930425566076646583551031927204325744237314117429044627829813226477251958197672785694545583478598929987906183333139762404888005498815804116414959770332758072138292147974530426816445290659171679657449463095411414470116849175294780309644896470213185127152417683925380257713272811332493202359520601262554310019935851591283173202193871542320539248935864071927276888875006317852704045009780446573776744878995532181555412366674014443015361591712069675309680860580698238087983809658884467289501771851887838922399928175169042526207206439415500388735436955810485830703059900365179023998850360091097840951927825583143940229219739350661669036629852878594443154235413439667135660648900412431593575081256155123888044540780499595174330781370406877057135777842967037980640394279381694223972595999222751105126836774299158315277682379851884136346131909394002534039263272125069986883081674350679575212713501942690683327999294546020605986546058182821913909978244191618968168623797996018822706615069645083700805891305685234205418543290599647000392741397581514875683404886606183008084477887837100202643225176571122359343048554959127635070975572712262228551365102087493994938409638913464904592052376605220788555316706702673759347832683816384114573492138038608073794538963432996089578940080149510637575362560597927012723060187791193458761212875139522452337667599554171022963511034289196351527154950753059602385779921902293993903306465135658768557013171683246273998890329829776982632135927456120858965757275688849645345046062557837994320405493111453365938444237849582390744210676379898907908022373912823941292917614222350162033705507332356697273820610111919048283125841437425021216158959115978028321136861873953879392702784391634546339789024469348023183538281034223814839240493798967064537892417861283866625758741189879395926167265899137189989816406609511444781939086105096710665431263777201897546320947976494436357275071943445420931968860129099536146243238550127162831705724314798080292917897897009921356835071050779106868118552649399356688998805293359315818344366619106361047993563886948385475452416072628880659286855305756729142013855607273963481870702980362268819633396880665958513110745551281138597742764834078559195621458884756987451104232714176341128687159002964603430404742678176833114413579154715465987933414546066855562378911744831743842193320086510725649546167155259252968047844868048678580461014009815280308229444540565632421785169760050615895711092069133867095177579166327826748497764338343690177391792546496606794396849422316988859558198484880199123292592309386477165503146321743613909683312851580145365004920687973629779063125827166944730559363354299286040385966480659261840230712151794452698231693478730843893485210311029538413915865219839749625597541414310668544350892308044749917399559068147590063148523616197267740633005326033001510942621280370927664474283991843229842911078724614204773860575846820601537170800542489985253601034071970244386601870621831182397209584762613107690415602910897863255197424740065485270950469814497973591533261332806292143991890655586460907953446875681087214495719630653951886196798717300498282925369561397252486568725300040947577337757520487470889001521860096076699269090758260057648740632078359539452549003193885673811052696478086278719794808895523509477790054991387862095578552048080041544285721811904578646980216092896040915711866501096638484696840710843522002829452016128678890102280133835308548457527135011266832764346143240329009857826462870981135055896075161243425813046500033999306212719501766925355372988139437690777357224480476464701635896944301258752524395420613370249039875139938518169830988309218445474234409958541958241075407466003995488609300695826655226851313895156389390090918792361737734046185265826167141337395090812988936661718708710429008752659104270704369139891811359510076397345938959422606774472064695095698152964144726144258795031304777651141107550120060795574899737371679955035651284453408404580417024475788872222109746616110816412067809845068005615988526150075311702541695985918902172820285114466758620717747269065692646512362969533633671016758316777760484411345109100070656528430696926866564398396581580452140749575422194372185679865349023031147837870863910779339832212408418015062541149678544760997653094171193033767922293744319651320868891617884194999092415107971948444769897272999192052062229690507739086397585263220294748159501295272228261134492159457021398665408479380150013368718085631502044426010979981163541648540170859395786273736136662092274022514128351279093092268742783163659173880146503201514720268088042495231356212394233128638162611624911956395772892788151559514527231835197656404568460752467814104263759731501231980488670524407288261933101780322514323145979311700245777585913019538529450593176238877470878334323286955964733841507909115194801475165754276832608243434685003698846945005256323643669145359300865977003422224751313545472323643775001256335905848579014335729453341179169476112338126353587682476611339393020846508186245037388323071114999036378093137003222255452270494050371012310880825346752091159163616015201721984965971218369259663804935968165426766993447135689170521093391433420403189454827392627113851532289985431767998958591522533615238596743182390443677697313670123351242080126261593904753736995785997779682335918947613349888090611966087762520917918063503364871266573439589932381657518802551507750551252556365789290062618858131053173809311098705124627907295383929560725822283256828347422299540503322587138446911069663249467366599721146014413570916364988230602968459103891593219521204352085094384548441697106629569052862761477477714512252390944906535599151741931225789334115148558609572679808348442800385489654398954849607348664874307515964513937677376272179711139480625175497428182625876642245404838027734302551839070063132290119855831975383304391421557115297187425414114611897140230728643889125213519097434843798491396183281838474985734574143896734633686391266493462377805561247169532428844581472980191122803366101086528074660905188434104353263957428941061516951855248303605277016753885269812026951152485013861191411351899860916516698590744237201883916861798406886454275114919983776259088963675597018874294858367897879183629850491856484942725081574253376293370080804703963850240108581376129235850112767198860589739764821894795294366964603480780964464237026691615677771546118246822558387930038295162249234220980007622109087369331692766485169679835126811074826612735199633523689723851391882457391689208293861226356368813227320209116224684725230916634527021203802019161978678962122850950101163242861149791350632088831986084497022082560675085829514488108284166861989598954158194413201047781631246916506293558833188063359756472758545654134997427800731823794348578168354878742202945989425546656257189423202105881276904980732042252547989529748781972699686529144692994079650617334316621848566827567491399233873073619649302889706041154234683301393579433503474139259929123733234970815307543523193121868574224356781666670633285665353103719378421405722572647629075965999662931295756883065825966412181067931920912270177722725470907056148767716037312229809693690426960097393503310666198847249867669340710851475104061303502263185291638730562591843188162589641538991503108143808305176591800343996390005858619890086598140937140209942461034889374299377715406308704408296824620675229113539464870897467627871874152932263297068780100503539261419377934868638850785348574907568930960258729664098257155214511927670997093717789752441392608142192085641200143813376150691401440753227842739511031327379942711331528433076453059486902337373543796975059667674691372815786153026801727822545769736836894593174334372036617706841331908633651010445756564628332189489763068431641619924421885579802402773606145547833185557552613458544435505738759454768636830912568473682096717324066524906673152026337473350363288953740326051182977634776268736115333920188369100014897268595425884886670492583173560803556976207827346980651051031020209462349382892853988565855730315611414666457121486444305967511477993751478218399095928238529111728696652077103744676787574548680307494192043201058020051833095026017479727367576801764051998903772412790545121988994739947291331495128899619203229583721409741321298249183765981498996369428554083779090767157261588959839945000683538699097806531084918961973056295019356944150732515453108597379836486802576968685511729659402242348808417227690341832120783123887651474169818665512112336929707253619356611902814164531653153213390438372745892420106696656231666337772724912692385479398539675869038199255346447187940755964888799030074803766653504140782124986279640082972219162258771599103447727838637524586969653316574883912845768160494844990446126798860495381835688139389592084856464424358370609484529515921296603560241403680143717877777258765814227591233050182448694371478868674099902028355665607822701285124918303957302959980821076153758506801834418544295187901965193362192281861347833129460790868551523182295960746282838272526947635765994445388637188913416988601770122459747513813965180114017177624611597895628169280843017962647203141800255038692341031190978133656589015054126460882054552653099613459062531756028073412712347512150003362640623659103672565646132655789865553867840459340377158072653268903518374087757199794779497076988438077308009240966047476296652169793164920203322059369279080092267962087257330889933993605251243429099806222393704360486397063086937695363520914530379187694477844812218815011793726684601041795435497488263070702171103970133847829584457755741078103727375470834451910992836621443569626811665853649058023370530044436600896020983410342248287489046696309912260630345468022934178425111324449621445485426786952019596788502858552138404435195613929920511802255042482858208264094796807693420827240477157285438979688252643956401610085119313344174605779320400967428920211630933355627931380290176201648057899552043633645619440356051400700327449674904625437099582222383555232658773065270357100882914485788736527445808642495416909376643799459957748011655313569424373918344730245982759068146390204352841257323318209243449802453875380897960611361540716753083931267722376642503947818112229836630219288637545544085929479076215373097143387406488753269657445003185454162035857311776895761950288705269740291110225090772407021686737891700303863990255279750863825510299280141386946413835543797776171453111464958182829394945327771840096984768588573907623303335677507926533027409429194983842953375575275951688572422586850981058750924454844716418446856370031148168708495617787191704078815925620390581772285452609160319508468637073147467949925088368899771454178817648746302172664373673322965491169660659517171753016426060030971834265855634520071838401639434169950862543425564633236071566591269199701515128765480211690750993816223622936590969212499089101430079251106510990753107828437979046431108382906329880837941647504704158131214592613368479093264873858218055551374634469394996740107221810888051113223561490996347023678098995027369737800141064979859500557045305456508864908649517780485198293955760056753228803379019322449175968532723172115561407664943321721746015834448068660961072811406833691597440447716995507260619892212853703435804875975856087046883421547901417410456896301737389115908690578819934847850602617985751016736495261708478842219928575828569768860991389959336340883869583761327123698874763023946272204801217309693676536172182496572004144294877285079584551369893876838330909031972654158397258025522732140254382600176495565458245106171747794777353131041376752730921265071842632752148766141627145375084738190736798349997985859795896716130846880848428520523626953789219727781689922170002106705971333573537894933063147323972093228173829153407039182139673862301495104212541339617757148382864905876564702508735676113846549479734529062431834114214064656089111061087536029356112095784932934472137047123240031874469386282266882718336779780008713607255074998654181242375772621120719823044692793050252684886743442949978587622884114080984857237974717489056140605658752645581053812332072699929069895640702516130443171859293387435923292027165776526969175955505023506032348329868602290185339404397990807150570567168084672373214912721720328388710011581433818947421132025931279950950102545510761835019379307125264336938420084239769289145437858179564163382977416582344794865164565973396049365914214435687443299685993421320775198787427749852801437235029674723126596079031569403045472576128860635804022535119743221202631541534055387902256418129084841071373309296690231715011648444315411771932869197833398864783316805227444880565249511499556855316511371352718681038832464754842162765953152384774776595530487746327466079551846205901792310382852395145183430539172034630594978186198863376796211179766219999596624893791723862841254552273724840366972169536650354802965658591412761531507113292224918147374694651930126546024888042800162203010795240643661954659944542929706050023205186770204768578302215229869808577267708930584550185918801831163637565702183014661789154437845613736716206396962462762342430282458064327262547229302935303948916589841230335828817217574513914679152938537871520687410647013111910137561491287630906383744378330189824416107702587130015628243742608948166387659580996422473419965627441029213706633644024894796176539800682198960128506214710789529731152790977770884299722408902025939547460427423697929884080145048610247152590545890939114457524317686581207390023152347071794695051073364443237073250687228804938526563399029727244437157262935502546486456019013457511411311043302970313941890117768633653298908247409306272144103580486626017288906825410287276821623167314481448287032868474004492159043414674519823222600585982554629438458471362309890773654184087468861864202203393006527161028815192104758621928010930769098933869918628374522420605391529014867243264734391117807159110870896081531318217859567578405990753328724965579061051425203883837948740320951106272111311766349405528604913941936093003145752201150383238343921254475165454181678357995866556670100633423462751844371576930787958151815187129148396471763770333198861737469785675270734814198658255166340508539777728241366493747724673381305673771907274645537148191629974795547680925928519694546221758847002129051782562863058057991327830666083919670430130392364085299852652294821896613858458518275684037990193652674331553286253188172892386584704102962995936198764367719391845737807458022539474119814934686842668833386346892229971656345481778212936721821434769666687041164080771266943455938625089140219523094792790062583079649835056763516188326797205936094484693139386101224770014444164823724101431905387529329283683201218095096855771105302953722288492826305842581563342824238322796694597894086323917668398452682576635154800952640900547936608514916577594865988753918822571454899012377982895117140781212725774481459390313235372491656906166891562483881559894747355695186438207874861052791488159659360908013248162713173657319157604351011169671433689536179272051603860543215047680925327894534626364290409377847406170712831718728122253867901162262622350960545673643313885588258992926815763665972085401301546103098727885592778025841506357126953806071703976211512225540178818663765660462405256074451638162795784570941457301263340841628590860746214874456025697885776946606088064857818168574686547521869026667895185218174134372122634865530326650858958148630351858165925098940222019259600595415485701837422317756985106027626447265749869267357429420124024012079809820474940590313316167702874126237726214054005942299918697608838238261646226525409057594668906731615658188079050583863933491267863208763987480546331708832140882845567440354313859531085277529403530535296773340724069466364676775998533444977878567763899374412286033819966161699052516842493446161196033913061550855103400714167380137407884022390638591204497942252622306472231558694621118581597250783531398892498459636001099742753012634057972358936257444980679787480601231380173391675354539812221470279003225871390212742369039776715606058182925124885153132834772316872320688349095120492569571393772811962469019072471008536187508302934795517542931375134098295862866117644625192154273014979695593686152459683604452843517782119270611284871571612201227157352121356208544842460692696093512064976536578013226064247554619093462533144178063794451278597133145790509892791113934967037140418156855559675361813780643020255635370093741742618909677314659878528847042138650281306061793418017872728243262263479806234978328717428194305466362966651561526302576481602936283304071999269176799370291495929738022583707555015354819853851876048958728715422508547469087523616268266488168936675618512690008772208402145400357380142634591383237231868708576979185292162537046899869568558682138379554213342254956627722807028820837010524941307325310463206671308948736330506343374217886010261023865061772264856379710504443021305471474721683138986930761688029529389922168446704006246995182673645833220291558559638735711098297700622925147414441656623083249911757173912176712152526740047232726038824461941968050841130845420220943453841019857301724349589338006848842965149299473313330456569805070287906318206842558161980632090603535558979127043515192495128849334218443940810463741444854227691500073786135341774133455629540918588954911884930172123146307608628859506093295617749775775836053597883253128058346013659146800883978093732114405878850618268098331220558598033472468577413906218875114482432215354668618702813751206092343385070117179643248370350810559664254103979458886776230884189074532350041286382915265943346806373117704575017084496144649337974851040133481532034958898898954727000804796103855896025770945126273093173373892022739228773826976185917373940025837694460169688142961264943231797037427475975027033239629094194030252042763018887585559992581724471346739594118895384733880614556212805859613080118941414882050429223874089723721197179122620316606297900067617497260714800325388591533942760583748599110849284760727291124412911535483131172462049525806723677430793611753178091445870092012657087852207409245777683314641306406714272103461769418842489304943492158081875719240139186518629305823891145360791387849750327835721584134417266525367235659736331300245135322666481121532578165334392647843401914863089959143070497181165786499869666505917744930068722509964646020940325873299807906380330492897252361756796201746372810642260629303724591913676409211242465848543311945645739076290058308399554583263811822566310950668346432185745237198210975995606000343538386978953532597710609416058286017392170936673120776688793795617899426764299578611701970984684688910994348654149945929018183871546875082363751280999657510599245224483085717306555906381986338622195087973850083591609567821767801115035010570277940472275173308002235446907006220411336649210614571537938609657684641354950452590657661909620573387379870989438278230933067772333185453098512647321070663853295319537578968895634421540410708936014469304709327056404487458792830202845373000861561178356176305036482260951693891245046943872934663859149662473565700107683698115586070779688141365485292170035183199450545316539169312692475204578898860909308764629971088747967091692968357423790564520461624017243301670694738192233260767258427206739312075633569579844543821174992539619627719172659856224375704132744990625845994640489702820161251965139785431791749390404714375800649482007434695529394336927328071067315156352327887666065741062483927572660688619642240442066517950607057723709076003530851148794010812478094115241144255331442695097533007542445907115335826893633838810206421932762424595901409197192226349652722931518418191252340761643974996639400584442473937829836538170372000066409687067207942110758451744321097543850072666930635066686467284549606326005234189031206694557272378598964952104039895896547081503593643473842796770641829608692149540073905116245668514446006062248230799003030898067922700885833666425312744787158541132957456386780353616154381204758508394773286507845082509908649028632617300470687590049469586185981349101706891979573760245681492973358128711461664566349896719975946451007138974118037532923747511019680934081953175019649454347784183991545783109004045073012288607183319442457536004072500741649430576556873028841197668054838284135656626307625650159280368144216083085585264520104903555829003976160999465430895764296211437885829156779419964475573972592024412116742427365290283981007359230929914383052935635822998580769806992558641924220619580422294267245365208359678891829605050811144262720846637286278773182921582716849196096133171572980616138407892395282202846493191236294584411258313523434325945231145277117291112145230955253512611457846893662414593159823961389241778486625176149133067134780385783857705903813966774614362203143032338426236875556495757245700961528035820643171227586424866273576028124917897267063326915001624399556842083581970740119704623643348490427577580773631508439641279481163847825617384742781009009941396742276748565214344183105219982025454879787661944456739051343609941056428915453333235147860244572527300894453640320558919696938842297816291010123778610941531765670160773627341403360920187463985838846380694105417003055767144102809476389832712977872267372954788671477475360384930990962296632546795000907581916379551005799060980104904369720446628228826613622475398506252724418872931289172221364551478958490207594397572530262633311141264023702604346577553489192948012382796102489123920522679076131766992952022379219035515044324070803851908723171928082230497907624718318796541129913542786247007675205702375881148975233844637726278679272324961725575690664796641611525706053872180852148827735510866131828626106402715004912321296604458702913563775914452762859165064542022555083262610303981851113071324504924042741586784562497246899529597877064410044370735129886395841632776555787659437066454618893209133188214012170478321295882036134740761414356532949343452075237592374507661353349326507997276040379070743802949603744232963483301951476642331222639172552290934394713396988827087746179416417149346607364927722330586836188624462163329626665214290283743999790589297806847993040950690300726270837634765618780680841424317752149246253815501105536912689335709377084340162031638013868118230742874374465253701646132177432131536724391467480709236746422757838358084494567248945619952321100656346437319657649373778828119271646971337460162713319707229371111662578055865377299958652822596828358977714504404940337220600236913018718939212080294122561204272145475754558824936046802294148083588991244974125949034602108899641891731409314261038433404832568611423995220981539080008225358671720232591562085462577276237760448963189327225699678682251369852089597126260275300369875729563742956707600594737627992053484511212010255301913159717297147676318171514032244895252002836300281371715282230769612648691326878037839235929428490157640512032204380052399991723366175805564275127722216820805206328199931419593653667917404079761385052713750957638187707218087125915510050582508232586777924771299198388384356426925586899083647975700182818503534978892834618146151391555382969414000104936034137052741664505676253952985954645855527026518259436681537287785733582028903073143417147844695471450902122727102549965990170575884968664385991339884851012530511811763810759622342728009702044088131288701501293195314439228967821611761846246812723593905946775616975632195352231470191209752935592845708575286866044802160740132018723091851828714512777424345292723570208414400202751893889527230040444106023314877674657453506007383117911927004733160822611040045474142395236073021263914954755728197256767181885577339288482929065307465445385442600112461313452143865814484752629714974506099211818782563351653468350386732862175901528220414985278951568086934984594125631035665225740462434457009387123632423908089032221332092522808536748887700713854506110219707444644853226820483852684605803152722058184623628034988582716169479722885265352062173988619832153183292598168327362079409831495963687469576890968023515106856151018882123566142076254254156363713405847481358976096514671515357144127028678269898180215408155576896311026995810767325884743742152208060325218028722872346633657271803643338888406066065592346975862667753477858488619610231090068982588540520821558863255294216418249255555032759061570533304556453467444452792751316439985417463653909940777330567684759615777287295493199218903918468044426208187829668155037389893930173997772396251142684249437428952030746095560024680458089719294748797431650564107856222228916426931101963997565329190956037655253778402313177485585726462158828075820530041486500200409444016764915218144516802507884417566395038619199365091111671656019671689486268539833471306195686502851653028516627986526745608737221676762674512245025252329206656020984568824507105361971636300678435587335776024904658860212591685168536945384762348343790124713337525179388028214394005212400453108502786000502418276965306201501410952923976918068041129203344771859075302600621879810475826029486117933056386474759023285454664108980123794556513969924394048435531913541625744882083851216024708296519148906767692762935567240913703560017189280787096579091357492349377799132675241150260704384600726613737738269572119261811831531244379958040041031896719061300986881990943436507083438613547523222995621435482930149266479096262862532906876441304969661301797475458131342812468280581570098777477515211797880969083472418756153327583150190381348869114661291955181175817275828526183820257910420964347219729130386476419663465237979284830663928870279394769788674836957475994708891465166064322543945787851935512902287658183999535251197872765921976967102996619046001689849949089470710790451174356364850471802131734422759098413664129392613255961469710816338163204832471745397163230750789325512320231029768006487326795299288427882627303493101118513010741745695006164222176255326979305768152583075220160485965503641797064827096192187868536428364494708149362833701539402612131527707679265544310586149208949984206481157966051446202282635550730493330530353974612450383684664465446158317321776597824427376751634085335793245789118497891712427316808091400552659808976313477505485549673649024119843525465034449443106117704019181797948283912278248801149508469712021909736301614322913730998746811310292624624262842798511064630410704313451885810970525595109676372416877977849882124242693566246838572407627394897273667281570084643494825721945535004534634732063116015532339246276345797573782289240925135939896616852533728524959791469953325029221570870462350640292650145913000661478217228538930892894279027089320060020326173333254916157709509193001177717464414371555362183513383396416596055450190003263271878464903931658891992032955962487369126046552514034064018446153834054247585066494184064609923798849292456741009208082010032403089662816989640470701085037889598135758367952887467577607318669210037355980125878277330898634488346092404613393112833155760048830385219031050333243490335778102268081593872474898330063118940029405333395087108368494769111354906917926037644680598400479308578646581668260457691096562831930048746923536114176248611078213515035715834456157354632813654250863907502966390712187948293997959663231805545575778666660579252400312483391426422929913798718853008960177981751465796835832141393574822230167485118972901785825138732516109544443782236477405227836605039935233125716214844023565083126580501943849168427098437984692029943520734929534483845141612411452319518585263493884184493295079256578463707254143401527680134515786660163532422477920116233795399197641451351530883683629286619620078704627431474811931314804261872398834391786289440376205708785002145399375201284520991752747365610262964771783162204772431399732001981396347900820906000421798510445699074956421961841532398153083437503388749715435424936356301273027441331246512903945118613900221352491392178771895103537476994033357929290504959629115908654122649351254724012671225775432847734535321258424894714593887342749557333907516800562347756965788005259214450931439872515468060999372741917467003063074075931739733960619346244695335702894240694180889109425998425063127570786290399846391570028770764937610830713803223744740291703182061552283989270679887352124617620504703790373915730157843846530298932117810884744008361784555734185797080650003498255905479762275316282541795121773648426966252369411077265694559855703759029757342619235433416164412004092587475778699428612065407053769284905883279171112502211473871877002053602886957162674584886892532954984947167567004432960282357260814722986973025703883302705350048184564615826881384802453741107167968845524438915524823538028054298193658757289741438735007686939417362113877062933967479186552542103639263051904229819924969472789774803843117768528258292186258403136603012256918902021906946181355262141942383724348852916316008278770990407732155559404186577896419924956921567188965918224416785456756921701733835017996561704657672921803018756184483363664300778995363452018893733369775896905232151968749961856633957344661094718219792392572008378898334143885257333885461577929152974709380525717428982848405630665383232357342646652999061228348855873219150014436169450266678587037223900177579388057916176213202603102530905250528217938791477009973159698113594298025941862416071743827809582655006454862749353440236851528981238997984234039502618994986170269304824972489107433885425341965689068669136000672597064529694105659953622348508529351501667945618943946643493045823257038668783676067581978225096393246498605630004760964149095502407268702796542937875987432054989232488850017605462778649097265598188763608810876972929358166421988796133596401526105226615131482297811058935345128992676531648572315733998149938746453151319435729300520571393973861394938971077207092579689840618185365011686811060116945526282946918887689802133295573916668296530163756889189499933376691019773821790744764582681755110697821764266221815159848901047521229366681796954603053676361795673074320984904446080019110299896843903198201300171199337710536057706083493218872252300284859301001415130932378797192494093184566886083133488859871596934757091280691259726462091741431197720895310285181633256252149144141323209268475798074598054676427536222317893021333933569253068588409544299489938601986419367997081289969852430039134061063790804776197877372080261757378949271279198850353608387189139187739341647436057164845256209010330359775073304598781700982369848122020760431716996909825386774512119671862258008526298561846675534491965949717244015089300764762185625113214270190402288082040261246159825973408953868820005229106765266257454474771577694234114096827256666895353254163759732489935513301025339418490017959468246501373034701520741093333440707183883765725136898667876646628283407165716483206655707237020110194043052583021426916031928639523634714883486027096024737145130135870092766864325392662476594973801971105851060715241793565453358063220089859350804695589465181994295170643840384006565723832688433864321739959996840894193719948488875969905808964727021568175070139996083278027185162249333581320189323515854705019271839133133090165965192055667960187102459120282613331778532134833716165700588962268329918313040406743250021633379687893585993964882803732992979924433378426278702765337976385501677275863120956588692562299455233236826481628961594945819999726424245827087074087178416894611166981902444819347034956440214634353403557982991677246774208265692773292221878231013311253621249274773513967320748708506449934082721492045578934157036294534889662174548935862208933909675518223643336597476301623984595899147079736785811581492163248490237685075490158758151419210851013352198364044060833695685728375167047514571925372062370961005910626812224426715557544187127339114321284330216619214939513863794597699249207410222217338133556226862186836663798099890111950437665167843317235320956076652075739877935628795753634779694869029904168024890912591244944594832337965946048157929423750237270456961083724762210684581070009828542302313564393582526022883765913573756966838764248453561675011960217306290600919587396907005494886130797759895139123962849865533265502951141417772635231551772389617053752712186600948329730510032630194542972605450383327083836779829834097793836089983893990375751228752308193494557377293681978932598416729188838371477294674664875583546129101066884842491739317029442953197919670184894262830369564821391719851683662639159838671942121006914345354345775516427414173822854058637128206509079835810207519881392615675494927248786682205657115723853555987046495167943257747974423965735217940963981543430485235136255759688204940314825263595583749836381861098858413121416223735208916885761950284321582701285718689177097503056376495171686600097403133442475677089388413404753004136701995509271667730512695624832614280071907351544240328320342996994655356711066022350561067156240148334329193750236653660522754244646928257854189468331170243189810834251228135615950462031081589268473027578793400920393664504793772548891662061028987536830031434785596999915567548846854317176616714282176958054317785017018655097145674907069842245175165487420973991496101034476769761242537501589453340224305757498046590165167094963646226212658887225846322904703005245688120908673132184510131173375400014063606286291615617704478119959412740062416042219972186579372376875313199608218622917772199714068635055868101967419337293683775092777585826202193482727171673855048705938915440049769473348395443201566212191471693585646743640493809012641417892212560751531599290266146224130751233058413670685041908442159608463845119423610334864026931122267922543122506915400085527147185773127573449913021444702594294183523543520424032443508897055992846061751476412755351201095625211926756063929621920983904182102841065865390112664625474735842086541150481131666800045381660759009742691434952239876853029812002158710743142154923671813781481899395500963563983433771011134498644258417379624314163824634216486160098425169061950510056227585990290426092893507155617985493686614400889224564343785866693816277768126329349083712713883004795359293608222021958375370480129604169581698144163840865182614554624964623727295525291864180450300802416622200239922223918555965535438135423782281881006514971058441394375999607893962214474133263477934947116608942757745375629600705832285531248174045500024897017838686139965091169597875861662124193357134853412102379354534572503164787294975954197518599577336783357698932481544497206268409387486503230646736956906989184759861726392707318694300093421659874828836135075589756808157404271596186254860930234340792804837880293703701811932552485072994969441262387548365706259198448119232594244728978233310010218270311532755203095065609955036532798368989572456999876324486539792634781216198954358302431526527207838163479409308594457453521540971399250586527149573233318232600052550075418091794774044051864845175983071714254131926701883331362653112886720349708584793158519907801470567344289865460199481812605385649103721200232032785848133446362724307040714485460699878481208262236117608047320607158565971238765168950966126337466203123801070372424364881728844715634930542665870521138699385337256273293052266010618111027162394269820292323853182680535069910444763626575533068458422436740020382916411476481653738191230884445891549589522608619773854762753784606075520879206728677890372449672607383904615188059253305116766044487110679817985606666827211482139239669765543893905228388271231275001872499407419731597775080119047807745680211525020289744535539751315939181652495251063321931767759135871014646954098479855016892237339264338940883520498887301498478404442676086087360658524984833525200652580866105021893817409062223089324585092906347197066921845327754430310554559469809440443345544716071493763631751709357619706995521813154313434951454631588130192080266238142465677492998458871992893251988527535519032166718225664924578584788960549966280358039939264935082534085106769894713611489978666117979808097825242115275475267465120397044621831589223532533676757373204920369498206365358203743272040755780155673102705823702441578138931727946932838975900722088961779650136986134051751007770107800155374253707256866423809630293445081150885894294025131023661577980767519369346464705980518614424203005129213770214447944915762182890425595754829140882695432885156780020396515389514458242455455817607154216399123388901149587411914681842127384605752946232801722950725364815245348567894864173743299384072917800737135055332342452029882779889162207049324133916223624700039375247322794281780145832877006050273807838572788657889353194663065433827191619020088722773041318965288074182437667605337347511175349680473251727426131079806066305247566249770420905810092572410170458855500580628988959022870750160235457427526249669594368631017164106863771813527142259092442676610841566389160211685799935593284205366633799427341625882160379392793308053443406222458365242886881528249140497720872934345433361926285899454092228821399746910165300227366341245604555478282483791442837076429512829598261234148059625675711584508768605128988847904987313155877197955721903193320379467082462040537874930936257591518017707066272473211415651160052987390667689398394386621155468124401197834289010341064992954682092960425828840227839084859891790199654827374001682038203591617950083140075771733322930414542439454002579423061346092280407691777764460443791586679781485652362266163591057481193608706371987229811578336577177967995153729294803575283033954825748411377059869572416854515767045115039493688400907302742916477826715661013042995956532416575805659969362043103124723842677226040766362669448100439901526958123559258003462666740255903965306666571634487030412670997434944329344175704461153931826112713797916804575015321806192111935042808846730904196535706420335490221269756049486527839613295527365057436343675666268231705934123385371953397771979627362750024044378844652368658480879925288273295371463496747208735394601230064102174362675519197031433373028067990891451869208504081307152647776421057572399217572752388979206997324168783647508364644925549013728657421872666973442080843681783561676517788593318448522107496790095060517562302567032825108544948637197304142804278395046422240319856203227229008174252158675268190618125558004592907439105291092647265134558510861843274015778014202954120677773205557548105871619061048977262884718076767998630610385630588931674445849122876981815838617895544444500277656857774372702212767733560935625607529008501994540726863134043831238397040766458713516551155460203807933354229984545675688707365404508692846606213918682013043362252366444092764997578968551954182234707023001192513291144013906751366035347564961969721241307892869757823023807292378225443402859873016441981914604304466600205535701612399153034412125189707682532333351353042154813432286538812424996107179652060183724301775110515997886829774571511840688411476099281835144088915990107276839368956912613073028691638702030038950130952037013732339027577212481265834268366412201829047068018943547313733432339360354705698491952673502089282432882573630878958007766904630176010953863780121865503133807641968886537627786317672209102028230431361262542711285575515682077512994063921738688905281452113639496219974272570608950325542313706730890485010059919976158899720127339282588183021994100753249153831700425094828003569915340303088230455814632315360984363592146150831310624938458777992541542420927086433594964993606446669825423658087537533150472984224861720645314758579567079072362373152461391533872236699038474811532458146122255840599999675015304505396640258806277363640442474124805233802982413232635393536282292351880123434033001800361628870371083875944549087547841013442959378251890509992119870601096397744945224510502891286122179516981069757432549204777454542811332219697664599592623702207424103004229886309941084251816386201216778635794979532136786077760454611041765450259140208866579355288237128406797644705159812999604024147900753676508190966861162830708449898615232779692093727264461106116661015726668223082286328445712471695668323480567608432368347339541502879767797912782382386997814838776870771672705536057035406025145165484253279974336609407876097190625080279131205436549439449161469099143984224281923887462222631714773744895308755848261117307248907674558918565276682351416143451314904620930325394603493761220609750845602199294911883889944784153885874362700826858254192186449301656436137814095259516375011459539352917791422336726135316371682996705793711375862441590881893497820062025890687747324080861731811849537884493785334553209866769331448906727008829196637323762289627543981948176140458397432013244163636643613396302131080749506971182006154768422129162617471045848077828482017031694441400725427657345713960182951552813152062365744266736922748337460254504446818358552815555772959903362012284151962431045534876461529594856791557692532722273419080710995769323159856520193761593132317275373423689119349066642390295616942044350451421343146396552270127515654924318658466830841007046949627922597997482193732684511809284125765327842651742090408357610268501505898705516408343053259705443364380626365085205537209104482983066373924590909257909640304953212795142251822931652570290196402134507522031020456270268393275993951799662245619065796926741787373114802328635818094742791208939834266901244331558384140350857585976512957763580420816048992165953312990320693898708389017866842674379314645671770413148358357128202947720591324597840637370401297311787946497572909861825343530685334885666213888707642300754857093752655973954410519556330871898858680293813620805085518800673457749833865278000778003580381329097605353856255064050597049225727469548039730196093153554104509841204312492131904153889369164036474299275186878850706020496920388510133021256649218742196535180117478768515999751338586540187595434307810215078155817062763162053984708193657501180202667146266968257215084791172803442335267986456965958011269701989529692463372648139767193653523110311255921050680314482905806750061876801896196964665139133007716861761614112025248802759613596310524852465298876100332981151418405524309501596732137328054327937116971922771167773955288263986921828866906708219125098567335241104338062030620351061991987209767576751848211752788960312995867580682162965008990313398793653908388755265889680171122425361541497483314780285152316931843798957194902683834420660552399194967743382316583066484124530412434472732071437015975078974961135985107668625534025876164604837215736294201593577846607540716107936278099671054317212000346898969414376034959835784036591135358228551032016791823723589002976296237906035235484685195354414603536823210336666024022495309506757542228260819448059441841925283869533435404907819878216417765115144202876714843501420239002374559528286381229377236627732133937674278626241674628102836794641886525611053831393900613429836155252707177071173110252455148100775368338933850128699192940361096361126415892985787002562678771160028653607125073553370558682247097928341923015101579582514019145555485872225052522264991794294315109132150710988336102866962755758095470556481026707736700676636187497349553045895369091559290461047604928473633981150329781850059343582039764797138471933276289699422377733625880329593932107583208661442316423576870532719288006493027256546412925338066943912080313461594544220818851508939332301292556255954216586563031577157291148608447967826197858647107319019601785629861477597098524758970554847525735323304549335026298379214126356190679769763422804492205710179337539646128870623300549639468303589432298261177357106645374945547213626362939469318745498155101952058285534701782616124465204931616111147046235228206187657248103950438128824026753208198975232119569848731843632288770030755383588899183905446794034999985526830324575017825689058823351121363660090647149658458744816714747500547484987912431508506912706528549200910618094361571755194533107993730487878311399114895571294559249613878279538163743007915437685812582365887368658379321611363780773815409301415684407244545116520076925610064565736950665520792392750377410942426983768872351680074593604433293784434383039751636035487856962867215458142573877674710964029816439097104699305002741093064178705243280956146024644937340731851001242927520660717593879069107632498315609223370369046200555870181987299694074020113255317056176930466159487436427007125691090049309176434880631852601919866270436196148160953411234631283386820643427877761901468183873083310060689242466078145787721348531747988689024027267446005785878483338542061668942975847217527582983615009869474851099356624812822627382264392937555673955292460805243561395417416366010759969929139443717651653483389933650492628967061699959484519457906301519655467549837094705687018204459229132287015247803070212980854864078810325506237711524007395906152169803087734586601555351101332775092947115718168277874623542419321590690776260271370588447292728545062475466899122638020674926530934294936017075335403558477111391414230813695044670292258887034496055438121411262490309992693204827404180448928059304492850363376726311265808207688773962184707255492363969387468616277224131093208743254617168053748894783752085335158974108289663586475757788257510930390488111178554795037072508332779925920541201186166907204882296519913318817415614354653086373197942868443751304424450895025856687544156956410179103384931682356101179754815397083646200748110667498172457035129201772219668069098865929620681403054940010562073885422134213377314310665959899883397317432186750271584574869769746371527368353974631995142957470963005157021628550999304266150422843902283078237126383880486802255539236849677457545664165145497384429341988522058053844587245589954821247146428237976530018187855623185703116876989877212113153040358994116784205476952930231983232139386756970418504244296909833173368648387341666306551284344734453019961497855802163494391773138130414157857516170219299922589858075449113945670351200521431562023055111412649399298695221043365506902352139025912071007260664834147469819082819378042193703166034919483801760022202757617415723888268890364820948632810717339408053651292080893778489270293626418842964377761643763845540734216137030062776680819351525728023003562094641281577126695755944635725224860935620722954055661264204405681815806210322938815914491328992164759014090106567624797843196492195241130823746212914335799886097028862198139809039500113634720942720023916852100499596239332020850911916486396157848571797902638396880344919982469054347847054848639494317604839290393672488527750529425472062674690539015073315689155349103464511905687925679405007436660895272219503692936977541775412317640950978631407607781793986699901935301690364426578974619497708091818452235693218383826844470416815855059145165436390319281208452612549478358774235266535809981084660002992630684644160598627777040622754895164543700733290606795406885817884775370401698076909728677206688738068156668717500010006544863925993026414766197990166047334419189496601924813249677151604815539327729742291783477512658883995987365380763140824396928800585457526491795326637134840337695786521372468882173661545107242025620565857415673067877733992051855559309825683208965162806690060226228773481610667134837720998255756686714027990228781004800438885199679651583190990075426002153927736643175680300559698415414633042062272889399715557680339719886630445935578863961461193901458562761044971688290829003181972880392640074574695932145685316463839265640323524479219308998509523826183463029472317279459685541610726453659478676412180780737697247994855701878040431888226822309943343392060515311374352118889897761496002453431847344934008607086284634716127372483808211149462934059522935275785468072378909304942846945717632278035474701111828669390961443859104525496887172795269892031360665464846519399763602839217665298339222939088040828054147656319877250166272698768263917765907759085423874001222667491222342257907384514268969755342793617004091531525810111279832985300831093723269227735022159095317780913644257349339529743508079998972592901621779464831509192794363644119675948255226922716119791018966361111788372406374035039169222628814321987136854377757994776377358660975141627336458549488968388453200674672946576927116847261811164514861175613210519131422807562436720260026802851403219146773011973908847057021601924527338069055364760541357609207703922831397820371060416306809645668732483921426267940922123128300640224855980388627948180490799804729169167520855744882978540191997015237990143216066703633743590803971341250024168943923330539425617264852516544630528492903565552190722616654534654840732897892088138414523697209702219785718018110892183183204631091717206140935701193017161439128080078635777523422508949718646628164154761806643120890319576898383485142498523263537134135578483057205818504044604319317365738787123888822328691766955877470833482767468249667559089761995482739687004267076968251655916706674390308820988572904210410966067163814553160662631736253190062148318210041513449260472151633499355548965519220007002437854221231336555327415498472654847893496535087093931869200234954899495600124561439714451949648721429455615924013204744846551792772969674571863692500694268383336733224106088756957496536509432137579911474918303804176168983695496166545205703914684202532336563937305346161541682730256511965673677796242709329510799645194943699064130616425857282677450707106644765711155389764911342716602999934445242072428735667475652987134510107693249370350964170419720020969659961443403540526328745611988280894054341928466414850765080679272948049350580902235548396849695270636841575244736239735570708195531563794692980796908458814124848748447985328236985368637123375084001210539576619446716352222583809183874623470704949759382971739213390040857578677878825487981429476103204172615663711438120299953671260924152502804424915661532554750924125443865188567558772520241350954585310089295681945563960226614178690338745027033696816057419895547077171181757895927319441140936025801910083987005897518503390702178076976257688280847324694917971305262702813707600596205839939788507013145661870656493320504820122958473201620081424659426475308285492444554008228530831548505305432692765766447535686912632228676638725586886595062208568450924936926081007586266638994449614731837819151136023039921663877039629468067681274802140576392719363932586035823718846678973054574107362969277337401080741667099673777532394747217035628972753530433364981691686831102346209145719349623072562220095044254394566292450023242291445743200592424773751741630486940851958230823154182292974628487855456782144047271233559723843947308155522893258873058984241036287940471277219452374261027316641826204678076032922674188625244358101851100183896686965352374641619937628826329839381763698398856042580211263612773307827767327528149996017769015915044998778073015650191417875611650461753495842244866058834029925840650036207364550480504745145181948874545171499355555135353241314386787273098574241198926534775365800005971380103724650855287249819564049815725227019229632795921269525537733444890309441996282229552975744391800821027480237957934962987638493892822384317510190024205687669857418245129688181227184332590913647446089787567814720125691212916757236261998481356282730313477004215686163886473210744270822051248241385676353640741595349325788321849459935415073682966830311126340043357443315839606529150135686269293928100442876465420066488291029516786504206207957254791214332865301194379230684110900249963367541733012152113981211945102655005034862854580264863234735460785739977018740098901611045709090178821368375695003394514398815028033012071256603212023296432692114854510106156734090755804924082858473522016037045144349754586374715885591596429027902703390692844257088141541431167741824971198794395426779931516173208075708096387500814454494881645904380083166147354166336723529512520721263234911905441045160938554511757905100193228742655987956698834939317753043925781849921747251204434308016602723780614717300156156684090721842619888881058519237893676399015587990523930579635102847048060643129222139275521232385772081816691309191020308095797064759548901579430420976762399007917413150118590028279652777243814701112997540405815741634904717220541593402419306192793012938709174492208196740293962602275235938974913684269868535590168311094344466272416858029917100590449291905495500454450524491214914204273655860238587446644803966565007936755234591204556836535870474647350530725468455793417125126207178265107444143810778203590510247072656519986549208584586058121254583531003869450732178317061468220626110521999430831037162135917494745154833742043751989297397215852914095961059898799916504476264766922527601751230924039344176909627764748368828577959620543454995781893841052847915164309632802734037528606139089833529756270595216086592416939116029137371744602394262653129934356427819523534511745371442355896093926463496219707075741697390926476434672828921990005755700429486445072005427111631348804499247560375675271092475278894829025023416327846412539083283171337469591277763195538958514469772176468455813483299001780829237393575605578171492018338502563175604538582294164062135869151169178157067013187821189159516139626116171020266910759024391844662382981301183533199739272306505599029488216128692901215951636045642903262119603674129488119379043823624321836364202670626939977502302428081926063924668250272607714625503544462810699773934185250900357157700010218718996041349082277288933649518837358435724250492718819734282775400802187576896126197854765343201072178630673079632046266031098896206343821517346261491771813436998933178619918055385116492549468095624500463137472675145691270236939294373416036602432758317065651328438992692827464888591771791861157817786330504210217127972953380533951369314753483214980631345582258163384353090597400009674834981276788655953151516329223698266588987578952921211641497759781543421666022003879252229159771018779870490268820603659642010162533178240331312797911650649406567963828691197897914276315612479157361115665737273832375909018421352718514226287554781274309535300665680138738424589702248314330938791927528030651759559547286846131717413358550235967671476496058720347166002438155769558002164255188356401947319486662094759598205891281553596724582632911167331335729280704833785082667516924779589316060240684485834078021583687198972432221808594559674445790001623125485178899290013134102486355058877546463292800477453780742545082481740822077506039481444173061016325926629837215005853322350737858791347034120658587585307528614021801434939177465506991500035277268769381035918910575161909065678528867666324488595877064880848162381854747501086605765429733454746800959596614840722006745957255197835537948350553524383356305688083568717333721598106305908025793914061957571317908211246800669988992412714881543591530481392778278120538254298209798302718838550948510111056017109387905682167488383158306241381109568542418510305571521433671193500700703240872454826752934879722818164205767906746819658106457138167109399466877934585540560670597880648965471251409907741043316121853079574373137288645626526211270720194433461326531023408165810943175964116955820877125627954851306706563891948210314613026242888645190814480734334250973747902338067777579055174870687195451869594249753297894027481710415282052294980532441288148075381115489214626595766677132656547435673297931487807018359508134851003344997209286898363073766409003448229894750522547638679430770603527009599279073706816325655189223600784099012887328818815099890795647610560644081957757294592494104400592241587228751094887021073477561651580095539908965633419216314546344836762719373603725870534829376615896638563257643668287578910021469128801075149721109266001322102478604175032878379380325602243431945588369716387416580573040092323547640956189102680315347877389705525591934309094879880122818063684074683875810285214388249163409144092216744435216075895085683735277154381256245688820273919700691056773827824646808552063574606001917961123475189279924202642429037487272538256228194753570500595567347171440473068556894218858398465787073635818286663197591347689342063744144580507872741637870913943828087776137947216555197122203765399943793106578489806258889295473285324289543311142673859921268345217304829250126611306065701138162833987577046184157618973222141693319616042446719125472507091097843590882338297349741819031827346810675030723590164419750079619776537222141769205695032879707800801552769720973217384832407941606888869034596250122228447122018212479098976718936695000939503610486682071793994873499965751406888719751989158358592375187130187509588562965603926172062392664313587531577648566124555921079797215173084010300410436131633257006532984550173516075634952724539378214439894849725122104019593801485978105841842575093773405109775626157527568503248331621587193691200373653263011272957443581050020727180562338619293849349634131479600511525207831131374693087295015246423974949429584651292745223769992951185491034604332324990742609510776734068778666813056228149514488586394962373632281369406172438719238342743967229291056275932486768886608293502880576004160256518093374220213283279097758519535595712847659406205474284422811102293029894111534254905599228588374735628461267736564367718684393287568200401136211360881296206724849401409552945222473199457439855694073692354198532954128957765221003910030031246650719611276198396598990452581866562698700302292323872342955849067565102831867796954157104688250533202149735542654847744868399782314780199201719732594202953716087789686821554027141967631011512322455468521351229329575832763770614309420378895604973231725408085009584623163932216547825642083921659149717629883260421232107987803896473384106290754408319602847197561118802525869511783579126787349091988809012699882743815418391778223160478037767209332681007955818265362915608622807117296396167490820974652691863274620097040352132485363834411139927265434548714270678412730183366298340434912465050321884073122221228907017059394732727411740574526823748226205095907846018011703817710053900744405183495101240996204492487980671465537872607990179241274685257298033723095434201406391743980569628693390704112439194329657411622291527400991063112718629394017286516517024922982034328687685007098932466472898219657284012171679717918759805247360402173864124981900170082137390919920071144475930534083909411850644429337791626489494613875043478915357123965405611852842380735856211222470698634465993363756991803777338479108606703057460328684170860046210813667532826311670221494025336877346596072525624373637534620208949074296539850378368602820700253306571571438871399907741360824175611285278366127964628073782585657998220767708016701003249408452227321190248339265990928023890842981347260537086080655948363522434326300324174591470630115927506263949051978650325194732521672849250029428097128996408812533562766193762348800619348777959548122333727852613104812804607832295467833566835919021232696570429018325289162960501230189766833575296669449476805794915174973477529215134675902952192114868208231461115308410194327508645142368723708541858298909352462890967590492107173302377384280715901299745995529993034760776788112835882949341178294201187000188261025200068860346809870235173099765555823742139879760368151511796071481709081578216100135684382271444484086152945237206445953687111934664161271868336127351418018118805702162829057365291590408946622630319347370181052523844976267298894567122907645324193689901622112599785577790236410013410265960070388868950388020891747687640927233273269149945156592057677537126763036655109172939690620682199909228491686952540849374859474061435785215106801041181547686079336630221900059111909804858658474939662862273721540088727550480426372462426470501206981775578437126932090509769532452248449480025647527610153145833131861800698388238772520988651625046076349181744078747664621011361387896448936266582765253171032292691394181214585322657179514805081459949997559112230132813477854309714178407672244982405144353442468412572122911183256666166747695561609023396330705734645117376592422038196162798301729281868141177425607424748821512654353416818941138227491658663922418161372779948804761489866685174622774724100529186541542239063947172624469847521549433582841296144891281431777530061819293835185011278639421323507931310677803186606475548155430260970296345616426928622553377315181091308076449814741921816879908344108234048627901871232764453229428715202504250357917470727677805195016095804698482212010816064455887493957045883567116502542374416503270639650532960211944614575661303081060322912947738100376063428124158009359771997873024395421798902929586761904531020543128488949503755536453135765096403898224743738237739458464760409055734184829344312389317496555154696185429786632912912933084453898471572138707769982634376743909780163166455833814674493972738389022280042051136604016400971265665883939850929446098758167708954654482209546053621573351226705107713066461025439896823411585214103269307475152829755562372821079183851521800292208246548685050217771803999004361871121229216506243469840903409450576844453826820650564537829134072370434544891227510971067617814163139360480391254374198137845591227540672860953379712352366992013364714781662323457199154085321390339090614188544090672906093796141280098059735356987158304082658387710672998123208175116190737743514588209387069886605605144397963620166505516441751530008884722244066698226688201355740210890925150684956545230481598398722695786138179672180337488152487718280422173442029810732273930451792785468335246552771126325973903916098046837529857888259902766039078328437412916949225534370331136599757814422533253544083170312056641949822911164839023369257736337864970346388826432744170727716514393971877900809600584856352201184041229716473476509523403164730627000249771801119403891692696766077985196734638335716165031243829225737202555476862915526371736579136079405840591319213965846361386259672539945713979353934084150024801021777572251858023500063275224511631657768550573017809336908061263701017371513072061383172577474628279866100054030481391911371152336083964263688935277863509278859077500112737914097784324975123613669428984197670129802170652810852443778775919439676202192862429947812181958794560126563400693571756658382979967889884000359732679312221578177980213629332209173483321380654319532993338036871837850573523198258660424609367371673934158137151691266935454225619345357261494271033067320884960634173694002642398957614870386058904917590527397376364227846625629838027490074934681550941953203735421305739903824383317624469610276158559770675184206994365967718802282052191659207281639146676518933192758871634383936012120608244103874361439490532177148063382543380184545248863334886225931939083630969767266102239551475358399214886086912665115015726891501487173065569611784897684227321569317823631309395178710104192020304575582829082258918216167423470771105488439988465477135464297458064031531079640056390405176843692693045233166130854824060974755760743570144424128860193335594055095176072383589148901981684848893807232668670949874103698554785910419487593701818162516131162621565853074473972694761628565144977956818261245082335249575967918235095822682700668005341295566364235704418665268388465884617158710446848878872082008149636478454876730111766052313777460499284329354285243157251263627343208329890107734323934018533770861270832996116048867307473797368899521684505635983712981850665420518778139026532538458289238801117343545227731200492796882971006136621599760900255183873070858687757913132684567231970282892010178891721832739949821548592284236075215096632998852841160061682139858393780306719703323258216569262329899928015076907364214513405888922835039385834053562037736943956159947361621481656666861464292703337096287533537849761167258533639715147919900626208134716381723974993524839910483811477256313624424540360038564090383817804021431332000235769047667872213217456259044265661826857598442090046033869929229104569120780588017398359538118641854905678686163869894506085038906877391195909971625898132724250073456438052430721913607638632051264255103407304595490782659197024583953829023559985395331665751891249549208281780514572347100075143726635305155730463525812136342886050212903776024485595357408765015808329042817903523258956927640493070392151141913931384627907461192141310427686336197818515367715841545210803246512467284045383139526294770843887696549204263639166492454481151550649606090928001948230059243789054411731268859683741399689055872166642753020997863886072109691866342730976853763835029552006044458344562683139055711348411827713915775742691370204473937346292119136229463101308563744798876687864379593945560417056026489629849113304250111590443371764198505646186358993297680652778312413892632280640700219526563617481738052598821795028063802159914327557952559674791981469137782389093786745755303236659591071359089552030997832995012259606070827110114398888772556842829887466178693270032242263561653964483438962772944534805077413079423548970243940323157430249195159724527635692619564116692033139530224352194493519891616152724740568612173990267781580166333442368526697308089769575570416174819412439938699542459891158538336595523242594689058955105919804226170320474029972861994172477442759220382353658914492501070611839089115725018194176791787958377111402929704964109396559886037236144147372947031909837029216494102163092126240258079420704353399521064411537613349026868720182317359565518539500179032137623709426224488609351594003162337858196582501329701082432439161986437720955364620306494866142488973027206307221270979520393772253994509769944458679829495704617043539542075382483973620098700988188325584032806975049296096476811452839902325470063831592447592626934974239734093579432730796900788536150284423050622389284162480627881429062282162405223114208379511190697561232252219525346107385866399161574506439085743400663769376364025383406529399319396334701883339421457591908122038031589938754287893067014573993684914727256971838704422783845478794557903162186787672080564433853557935318820733232234648850193356328386856027068118879287815554036021954001976175838913071749718087923622427545590330272608862293130699011680825645417496536194716852383339563629180370513352307493267008707803198055110820872282182977954451294008702744560464322040412769288208094945191027452941092193871950720095372398637252464222119421377294926814468229940893399244100577256555021915236736614580408664813994557661987651688691116946721328446403543747657608986362908791654952029356335801734431236763515400565113088124085877377675628598959431781619244970022932182905346721223392769590378721216059029164426933597845499561604093119604431890202996150390391901529913953298563157161936382557343421862032810141045090766938127890054818259900830995485776193790420092400525881370562657957036389575682930897076403005413058146535827278758652645917176621594642647734323875993509442006860232019613544516612552777923651640796575124228047374163118242545411204166626002120119332079330247827675200470790275150741597692515360515708059024905697506040228483554664481075211113250961783273518537642281054158152012621952116970399280510467066022994726252202668350933439264559220138776801737381491124443433107102007115889899824826233916148478032739803452363946842537396857136906028511006918360968905352438223676764699762479201160309305922194108071590114640434723818355528937188589203347146318990275061889387253519267605827748237366051251193652150876343001753421132962779239083691738542313787975598544105993749006957896620585861439975881015053106416405473655318470633837924872506065975607302853088642294343015414884457756864401118755533136200193268680058090089583607820892805701196641178124303922182884463136286855112536028300174855674933969217286913460290193041155413955449532363922312609861708405156880194650543217379798448901995374432284938413031817092933039714050621536309314957452845184117261154653992237841285005801325905943188229950410171831452010402560804585398832042352768160278637547309531037907119130235116994907532113660185022931475557034780392724143711936972158059395793191091210980575385112071563165232083213850114750122108696898348313953924847370763655097978270636092172987795148181901949780912349910613913102006158957582954140270897531270892744141971019610302426365933894556067748925864628089875166684896684594182838887955247693177382964284494290122959656569472938223410886894941578482191679551213681026504885554741430902310974582460002412032433894906405092610407412302979928581521045522691502229026263802871882472044971163429947186275100138331283215454078751860559064116819359598337930292103860261086168468985749142728762330457360516442661588126522441554624404246213942257646642492268071150226869340593461543586046385735659592103270903903742357443103724921220963925951102344381396844901556105553435418247429628882792412554465575012818244061254746598857307995121882968461213015994854571682906604116908020629317644017661090186565373568985134066117607795566398560201012260194126638579653875013557510382244325513144597145196163252671211794530233008345525376777637418963102801105854038415885016753531612261758514761687250312446987337070681005240672236860957121801086136207790230212971826666808570768493054777734031559695324590842807098539558716011760450767398006639284466291585667015031761587138710538513680018362540046813836764396799838463757910490621654715598245774532273564916104048412773337848130898447628190872717642156915884355712652631039736136285449618027754800249437699742132846813587644438308121738197206403963785546768665480885309512080434322146362474040162546215000506776596047273863345895685771730288585435296044293234610158765979424245638771353942393326746470571394446950337901588217498539561990270842898311184532817642665234452129099372101824447431868692338278061799926438198306789464065091998385924668458816034015299324807907357921812273429000127552267681514546891464979074920010066557742679970253233194155057877876984199900489618599702383273742957685987219857157720359305587138433818676803432592467461425576648339147142526590353706019246368009956661272931809268131676071293779288442714543965093029637481735984746291235552640766953390180540863392850613956085690592784143456652822099461274225994885622813666540848788564200346121296925444853298844802861733573064428898695917738138945459741904088559780828030452874413379575249913281165777040909490023772405739315766154415506730226385356823658696269203769701292424968647937714779589555866517952016937560602074397906802225842117241119376182834598355662934781845857302521360944507718670644596586498482669442909298149538456772523201424325669906008541118909326733916242677829481474261590186571160734303976779266276858851416768134835791625337002097730310183816439854729005364071854078273601443790805771558058883400540542815745438125609026983548813382492564805899043602935378540893587225273422697021352806549031492417779144682725783138125723858974249532038329022110522216528879720019568755956244925258057948073411555339748515995354857802542060067979729040060595593856562841039198705978077203190518479464605119816174369154843473992005273788499856184527181048802022175270154620647889952093371725174441830311746136555330814545518699455453891560461201546634161652569445264818683331889854783751100458335060763369280412827833435000677321825016458311790480889614776190920016251227168559418306675777864410026021774492256165636744971152171324914995237126700161910580846126672854489483059853546200512700616709739493643684832938518804350326788818727877361743843761623759945602851650981072592339039227632497889185023062168017518285990865291334265845378006039915881854441682229875981286000382360930707195188648789427572888406947540969899823271686715270262083538838410017620807821958268901733986822043690808456639103423836512556013278409065629118488693893130792550123299348131702530942038696905490141757527855350630846602374406006848516590778120484707315181762812326757357652670456014181899691473816645757422634397914230439541601076906986195533492097126686009850595482452764094864478055982428593692566543586948319080285443824183226196719890453880067066910287464078951322153306695182811092061575201378017154474030813558686855640708849713034577788900885992427922045457852662974720266074002490278821664994593645989108082605020761101393918280711478976796702812696622937908414450688841188158575508112267082926251054516377815273371022624596272824483392109419031576670017104183981143513777172384307462318334929688727159539075246169654206214168999723480683940891003417903210871469810059248766005554395634986002823132465260266100108864211592210480218819901637124941114333569952020694706772345729852567187080841322230408188411922223896872197710109571555011575461555677333505888143264025003189569334788679222623351010690092156159466497198402825133665125094758530774649607292347256475966870800758038804464680218963564332665911513211351755184261416231439724515186640928292635465554139118186727548517742018985447349763845991988269529708912629477283712748816654368161670560340622527127617840024763268685483292843014464509427588297960027283578460279484141845293311127739274868345009327522511121916781784026262759198229028014459489216311097547901962074528911563922422912445638416950795319785173559837664177750093028660848250379459479932972490908595834745436177990784231445664480839793035998633030501304713302974959658063797936153748058107430408876663347525916463037284015469860118219403296682483656641960388766257178043868807178828364972126767518892073172028605491508852738680689817015973598224412889855445219062230949006653142982741101229016419219504812742019983697247487663215823109593387182176462037427546312389566958369708622922093908690737851016395230912721458204504928999918442454849647693878109326233065859792492257110841807466565388868570151234129996966017090306920314250866870880438488138128879383134360033485849787691390965144520802813625822445032927028655267042563951063961597297581189697544749129288979029037768456619440717120970054539703195873257879602274779227251470473539410709811424529285888635002035440832302804197981232730147658159006000922599987232432471779542595658027174249893379933790089002171124030672915059047345685525524305279219934639207474532118928090605863107222819916395821068813428957850909851204018723292721267422392543770671123875014949909328744100964266123729920058039702213265776600672717176537813555501261888655191233419813743767794531414780112564429963053691450777450994674814564994409902450127423377979081819277857794089243893916785556295840551903336611260684329530385357381063188883884776282818017024009222461211858739856024282991790858396248058605919553527559687348609333319009943531583681306235151159285514579822984585665418209432022998793198848635674320974635180487379770238776201373476617938224030349151949566496684689235250317762124198299572355286206899539220322658627918738986000509148724630956007512595713401922071613376788348467567122868994333205459699488286319848765139854668757739459306216103804587528950048618757675329574753307518152194145455341262119405599108153022678372451473328301181041561581608148200486758267625376652494981803129203736550228832485500257069315703162383144076272332186871623791437980890505689750775659053271057685884867331277701838457301776251638354830314821122262111514974026667540853707198230212115013722978656828522032643307899873380851972384221620218941789552773384844561833056156024547788114967302979181475588526594655355046259597599222854856868522311135223125808895970731609404262531398172399060151873636178065032083633210364806866690293355117494348749507245089219186291374377317858641471842689292235950381311784879337434187748617332307645231830492392689531373966099903029597040489244414502630699283586041013184286108425276762893686816604157525841871778523144244872987625224719467833432890200506110818828815963617780956899685092782893867811654648739063559884165069628530322809466394208112003186577739888578563446302638037575183885857028974574250973075031099558422739757848182407667266325440194677960945519469572059793279424281535496796040075932581762274412088894109254829851045002149595205386530265335194617039904553858901297263041596048732101656831738524953503527984175088170766278491372679347187641581717664533709762411919849166645606532133329861995113055361404604820448785728270611649827399271995079096260729371304871938302803113806443668378413369275763347418411647618702806838398636645046211491408050197536369045025214654203310817552527358036726707881007563907534074334944881413584632790786807992611128175961248338928750062920419106210772067438189602003526204885998561423267857304674181785449447607806765896113205404581749659741894971037171121334851885741512084658491586889400590290387980033730785600127548688780766021760716406368968436437729995676729685321505511870525136519149252063235401741736594480180047740692203871187094540790725079961427195402449241879814886220859761310755150031465969865988197013219712278384773247308076783098854291922378131790656083423727416290497892578138590600840744626305636299547616157352499750532525632541511399794048718433985763439643536991422458888227895618846614912697811736114419258230979228981777608655027538363437636354478957502841206466601259041910004049487395304326911085493384081883789366257572705423825731768825963680834112333200637152449400848039315511232552550324562419411370020658655090094335840970910000828646697786000122989016445116808908730672930480274073723555334915500574023563292798327137401118966240505064469236032400883253867306954302401821695917080366854095907959859182886329448320235123198948648041455838485604479415062931742879998497149580327299180921161963683936951035013849184747917878471033460111210829054072783810549418221621640554315284909843007578468829268484451395147186798101603830473173146803840100274236846920764821357326302431992627714687011147027830053997430978294274646400195236026378272045475390339717963093235995021280897740164324528083843297191448392197209748880243916200044783743134017321397299771743118559886798936903613855264959155118607947589949202376541725208644579547927669469804036452189606324622056604994383070588037904292097731741629683636563082982423602780646954710350990724520366746784156984749998717330127075856927636674342306018426549481984658846175638665524440226751852886679658284284795943793227274919176355623477921718724064725101156580536851440262814665954422927228202878105063024406220196050796443769598568061948749688487031533226653826797897350123513202986298470691297588981897217506978877368244228580144259029373138620091202633009368519484756845381094416881037300830281377408658522745262690487844679237799133938228469390100051002875573081869542480687681510068911525691598506298147870192852529913774033188581767322879243716864636470840586911426314803941549881016102792586647910717423244321020877324398216797398773167213201440395233909119742004935697622368834813900131332661059825781454186342299363999297781192850319388067347853911140281004695964063036648880476461152199016548439402511621939473443227082622581878812670236440898140503383446939889322609291801144839444895113418247578727718487637790169719968545173800805481210214667709473690762035861226127342084896204615565051187405985080025736290491000414240823010492124471193191805866081023221921818719162165775768755677860444977712622132660075956412485178948252055681793406203880661717280541999416313933092343883454410429311183694406831433414470917270628408866701676398146366332144442434512643208569787444699689377317747168894192585699460587556710088795267436896120310943697754881236999049095100398738063711816373361307632457173798764880337012061772488828861924034398258249057119263299565880574988003535297964239656974245334852435799544709086023202177821066285524914161174113989362316434072629253194787628539190777371290773082818375091377096704054177358077714806664326765083312708615082190564290845949137444179640368070650894351864442006177231593100171877979546713112168756975862110914597365313236787172108105411023089989388808987989772429948822200928741635909135096695772319215646411336873648622683238526197055804050775711168278412614246850336448802645615462181221060458626791437979406422228233849813247648615030194310274347235406261943603957240949258565197572574026979863813146360281327353517169378956866286183957396915122059763602550567282681242336183565487917482104716703045822569842890978939238760619545367839055763775999235154927721335959656400689493453915939380812214111219709729035101463697184455416649150523129316954418174600657143000443068954377255308607911945346489297579464190863209656531607530847780745450534087720146134927954505008837067493145076355891071700293882212044324600195903667515585222518401444807190609046963397372430638880575721862864167933409853817817240060442214070376030912333632382890262149362411443351730228631994983667369343221054700177402066417129635697994875093309930615802002190982690162447549461334094288164658095355119668198619357284026525128266752379652625150846663684975022579339300933667775194794741090015830904579962670285841873765196331782210328705070277784827620356127659422568475046064180488523774294049395076032900113783401068565514409516891020578726547732607658040744635320397001559724905456100386550062692829931856886053361640896383727238246064329844976880899984565257380192294629089990208877874024192717390430847286410149494444117162131664296792897061294407026733776956527488701156758801748739061092132864511622489093787381638265604187692212818334749238306858140215609194948097173043580184826123628082520502980766660435530624792188697858619938617163921894699017870450029197926957294257972871214470577005841182583783976607732586470324817292286957567741484570147476852162727183280133149526498769492318004209045346185706642366495447191537319296261655591491743506587219465739872836356374719395692186382536767632508693883933776434650181396802289565697368156478324221614384195263966296354023291597641343169784351491915130852826808058542682655280674837793115085118810424181661056212231928181466164822281390466828077542972037197453563148942214465844569481746938430608901661236122074293082533167665292823999326246123502010040292655018955357447985422369901629363079970558300901098893220642737542906478927794176163885283606090095594537039825000506301824283588174523966878199744240390480198894421934883786728229744406246398475646722390667536309797557174387518993753339419001082024786378202956183843156450076182432390409576613255726663274106857684276234734255004419506612570459586068809855235437902416912192319031092121541637203017268738796782227205977991240240285321544101298882779646387708347584066063212519978390069204361662379677539077245525949070259320442679964157503419128956692461870936281291339127466838556366851501071555813636210039625166172004645562632228839411201899864661985554913516170761465654182599334874136413998851715472397774910750756190278727679203221258370838605143959054858073951467446136163059227898397826117754341548867913403502070948816606999374759890172788428293359493932995237700832429464021808413802257025925783508852460294390034858623396259451450880122991084339678295943503862177162569942352831049318109286128506370628389647935086969167717005353368305264180896232911075751585785918774521718985730370027058283538105248354028612974869988990635157937864422257407527606127230346934172512317785139676619729027556201918569549743656295628440823082671163619860761002814409930385562364269483618553957901301114298877261026409055113528133263378490915690706144852772099550471265750836193800379927483982557534956355834317978905714142994624989030939150170547367523333017887066040369354007076425254435365727298491124097000600927116632131211542830054228947227819754120617804920411311582351176044997878926473521289281404754183333779136230300871911284370696404416787298220788996514595878458085043704832644696758835739713964679384170688060639624932073378743698859338754326950826189309077463509744799357156635562022546890509113504711952124181725493825692660718203300705161130545232908381781060727510921060346670540397616087368042263588160107010856594099485907315002361330724539104892408339129500472031912622491404262682343775680408359730329160294177397585176228455430687704430477042897773329581271065116929509008835250202424354785149728399669070289547612440476194900152721020004743405776672219561919211381492063961357136342598640079077321934586972960850126918242917571155594880754454388742245951739127848456131853350268117103010636971305480450276872344711582008025931963865502733126814524673127337427854679118142317255233381646859470835560645220995376654088316346623733389356531950416055241867818639857476475226177601713583319422101598420363140457876404626973684382874583864519772685744100936708219726270682636296808505304480503348400013667727906534028710134594417765821702675314872735674031428088827207766454930929070651303033539599972830287170309170441064570216459842248661063960481516902981126375513640130774778807128564988843821258725671657862681796708937875840369099625405222897858029786110582632964000754930888789949483926030280256536853698774330978712575275352730952904986342580773558845011090915992168528053519210734253752636846381463650624379423683374353133044859603847192951427590154907053190108430630240290615876302536596123001194747731247386390441467338477749861038345324051286572419441242717132597162219307038506930120626067909880129301080004543057450128055574089716819231578115402401103614171135741668268174733564084945466109724117904669778536031704032132980465025901082062179803912377179318644482578398844772697549567696807215098107233328282528384747539489917296420586879662079232329445849579329292414173066927790281851889129793398608905211092094330295347614324678293237954760896452582459456893179768894569333044861565388045467342067130088220475440707326866023215389409182268227194860330999211344985684957575993452809568989241253689730559286118281281738113007566002799972611581689790283607411701707268447423054954070226841482569482442154439277798659934563364065828079672271214792583530748019400583509930809646786082085354705095479433003997981564994302315583960702212038999661698624635580525448795514809584166200246183185596286221555248649148912363926784382112538974384323586247087747323275121627648194354212113711653879707964302216365883181503184454208867832524426960915345117610780235851538026385196168368257276000465567699398169605145531931622668663219487660928717948409126277620665961837459692819557099294848670274507250502203138042272424438894359843470997673783657567867819166817305189327120092124103595654583981384416479709749800664976227148838640006831804784471576667511977491183038634540879027234387350549276039472041494902515417634382825742110604286086825265918703491823783595011688253105705559355884272052324695205900231647373216232351019537404432753575563970987585247780071441719754538406854978576996604577600614360103678296205487475897042656380195475629934669780921853016015193046458013821386709815747325658902812381224534811603464914500378973795495107846359690725365673430784700733868979721963453812265958595302304282888110402978148576577853887635236520110406142675419029036370820759556473906330878647186934285002220408364908248539201132465767196959840702503374324691687378160919352231287503523406314502140401283350163669271767803807705608886994720310858507172446070051871541221160363248680421798297287257973387438452655811380195605390557783243075827385564437251398771222034401937710825134739716124763070733297327018891180656470282382032378371907119859771844897228316349574590515135572163447338021103724145710623727866021514981947171328835118361454546897543189463488449648119076943828947277838836083779474993269880380898612940932014176428127190560964743202911761621907793806769722304273559094233554202132805137781314431910749123966795212323041947021354080083260976383849583038636429214973167663643214057837263978860560093617807217087508936088635165282379871275745705137610675444368889133684888485704230980426808319758361190553348371896388626378694444135109719984000264199134817354628795261396710072757147872733289931612063146441709688961815218180298138497699665787706230540919677613456398215905429293909224020073147567663322799507433514844196270905291497479743188230407392090603452663961209510908976269991486254638414601658530937072066642976190496296163949902331991652941875078302876002722893247625670147319520580836572044517515698834438525067913954125318843823916313166317159755128891641304357227956148869302832241242401215840075196639588689764241455805500487929300649956473176087417780974627020713071153515911159300032847280387868891847861401606716615873587844017143339037918812351587065550048261613486377111204388048986337543364784119017409759088451861015942920682785632484344497003627520642264168445824081423302773363009450120020236099615195129140911792340379102435671494876711622657995044743221460736801255756061593889620072883739359627050836749716728448735647153252095480945940382504924968093152713922374362917529789047412366608178128824839487619732512173616745599838692156905509122500247570367505092646575764524283903931767219856979486288961176103575618836818899683915705190939433789410565027038752396811348591380868731440072404473248542228292831333564215669845354328487283109954111449238294089226246996055937881431441561880751373289135409585944814375807590044883439426330833384340204176133252826096080211796907738975268661714785507494597847473474738385416275953203802974796790969255353686647072834554862521333043946574855738793467883983822716611405851620722178477413224142117311369367014790736313385775110945898812617002912048480506313118222962902072677252168217914242030408156691683960894534852957155818657344766321794701546634971071518237384977667992398918707660532643512061054483004015164365380167271454422915223220235192590926194075196047517341451882865872949318665047931080209890378745473964779131557741906185787775622834819660541901830751507760004831447310760930597536967783524035307450118568588504316198160209178567812506340006559921768925627183107480881893903553038718747237865169371042730263974567602769964695847706397078290187958695375262903111664576813771592292272975901931473113305348791251884846237234268511704933070610079857830894092729107475781282848255536443205162772560156799616516883805712709533751750527770091291128613720185712297821281694693237516359833894667209832800183135712939769626842086529259738340311947683471040195641915391439691116806998844962236355973886131638065456195347690416631306297151619556544930141050861448080320925230944223215246913792950586732871334351410373147625979420960929623983282044591046331496793615103793523483882474655690567366240643697361945159220852277687172418372601735724941994816530814535974455161402828814658841397362103252390956046817927257201024690686713079978181121477190563487733043305402525824681069564780627124371747068724130986426046133292547725995800705750600502613960860584351819305802640091541923672484046347393551259829851105945002569191053864653983016413040844764101397055388632207621044573024312183311096159467713575772036520181257880538305014307955845487210182071643594984697674615822399952192630060342079513575805499988534321076905578271167637657117885850321020895291409735570527822639862769126104878143593667548107624677568413288687130000997612244993284264628487460147287866273736058430245898758795365407062496543607023290838910318978655067775450922221901183315159344662963548855532868615212772814475776259070602311714836476231000880980568682147082395252039904553694709263580775975725355859283625009373898213890030726428637572282207124270489955715026238099400670365153763845938016857120599785137366800014319002251210052498945508323564313265891470617491019996587319797305292410328457568818448696357446654767866044455082241533512496464483238078620749945657531457217844737128856855492906578258404763480297523186331981619825866221219361612543955378451516514711266209728807407944694127208650076992802133774139823970206168572060990688168573934773105037284109554432321304843504028789562305725131496407210797361842253396249375861312850031716512914401537309427699922213619312820861913431319396602276194556678375439056642808334686478951812499334193152703055603984985079112029944859863647764689005456070532359582955330996622025973640197282915404435545075669024450719777350069089483913377845528902783985563479113155140342013738456728291309102893935611631838011903921659346738519267847622993212920047905537735651837456968234051438398109223203341306252052208466759486644347493747271770283314331400111191990858110752150690881995474306523152634570539112926915910886528024173458851774786445790225105701787581894675144394248932617931925105512454553824726346372499318666438534689760147100458015607875262399636239739717620463153102783352536072678792764357795845418509679532168352355979427415033158121298209597271360053762913777694998690251008683179045440799418848112264946997549525888696773003299395622548499507587252576814766652072420756918345097759235082051979416998955412162323916507809579739893523462549776978543098375261133508716505119397309063762280873177329354573224036565162417938143737328958988092582082052920931662264826051545876284579703146784723151432737872538654061507536076872723552837915162114945683123922043440958493240889491948314313618620483174013937503790920730697802715479889643414624473560602354497862854779074287135830795711312620821705284028334802900367389164338975035424938022244530380364051243292342949851467897299678257240570996339234424463984811214431512678284896682953815707244963321984299564059454894905046694671889069171309596621794175746028736970025182326995360301474970976291480678535628808867292883428704448082751292200732527627738378018763800897131804767593064536310882386547387777411386856805840186312203496588455041923963854105546891131014650342883050443903477799947392247749712301498277508072540609119309991892800033993909013054721267546684308972927479357562719661274332947652498207855116572181039614917424140763301239360372197714132728681920827402435469090906132554559188177483740245040154652721536145789859784964658169680065337668998282663088975676738240850230415149467723117235241635149611350970187216538472035903945594751723025813263258086741276551092025226823815345969572573547801624372013925035321827780995193416646808011828857544507248882385918826736331903732476528217081580967236886500885087763262341584586362357620703615557887238443339991554691377608258967631974147280882696636418538062920464856111397378069895952291397197736042950401059784456928606002789500193156220006421410010580827819185220033862625559511406912575450778168732905428846980608826473555340607081329275721340110840652944549040006418028234499244361267979050085223369330879782187857742860334760495541272837833876706056882829783107435897238497909624727015796502181329005778030760233153641408214943600619897545773787735630019096431349570572356748539819550882634105665549798591946115710995516708139871680147727134050848379994419469577985531982302986125462817522518353109216302176109090103763103293089870492724645364676675170167583517176499986298580258905744353026162951574771728192389306671717254592980605275631428292573256144411727629885337846530231536953002004893813900179686725496761214307009421910649367475626584619205985105751770989973579457102022698063803402297780128252285890762564429249849400945231212774514464610136284667114560596932398270774806594467290988175598015515188575038725899923161392696526156690583246180584832734105375289823782041915299998141005898645128672159090643884698731354356966037245042102742984260435806760492246576335019130999126661632255578525947000284868866553438446183273448672490357911744626133021275017012671865270087923598936260198290700741668258966288907081032701242182468044234870227772799062322925617713557600213687992131029837958741039957925999419629447577160787541133684084121804763705783173673630079114804011392353058253777590193823438801956439435039158995917944617725192692281645827242975315882343106014339687649726158756641030673869885737899619843571026265056267712761186478269180402338790679882654302598060179116026218948068915041582264027668676091969125761812244323281313722869877890262236765865932804026154469771569706639986016267435079612111464692429109732398028542833969272163863519523315507547591684950414803627797467837972155882625010017560396048927657870076158145009223813416071197012585753088864984263078712964215320002614965721710661641677796990306344177953304323641274674627572978419053307224110251969646648306105507680106940051367007332325727267479570132476932089086284133196239214430570185160478916882672157901102279644372806962495069240726852190820578281533230091268618263646885754235111521249101694397816547173228766782021814754738151083643745908559336661566711095499808836713738354251069365109788810965263727724322945845486925941190086094249255370269667113880475922736857870122290875052763987554375719045435734878540121833571961364856994970755300975210412782503254874598182547797568919461845775251265376079935241462422782242060672821162224321790938405875717206144363935757768025733100666845658947839269432139761130012157639488690158901594912402860182317797964385374952825513000568259730853162018824075198131126180699033487241544855165542227169574895704327584913902041290888741244471913169633698715135510926614939823081167489596496650375255034680413991386735549636575480718997901512117830280837333600393135049140776406892093758623556001595298521059011373058531072091330895192712090786258291091981928706364587634790700998236239431745642897336885153212082397145654289267106874565052041050795839295695636883450068097900720436472982621806456731325141649839440672006911127788723359416512316707659824810285746853213615550609222773815130707344329968342776963296425308516444228955207313017338167323932233306469174171245141699540466995743494863763723066579635240926405748464008606172384376121660535680632348075746533499447103755439290695997718372802128721543578764597117699389528720911484576861918270302531320395640955392635073575103517431205852012130612096462292260564440489177248028586115935248147376670361960443667696528076511326291479239831615663999879715048670642191902321006687419441575780379341238593349320025418895111327985912551149328589114899720391644546970876338223176645000531426055727953369432919036198881079913581659010694668383691970600673254011809087605873971524368424848548352176166539890581165833912452607031613668962902103340481178523666796140930087505184720738244587303180400324322933992757326486283099427105187994275161984899752742619813495643253056449814999602439486782743551414608188253650068270945415558559545468021790764655616463639993032849737331791756066989371671663967416855214377708487608278185035332078249734016881156180434101707676528689185799930086912270477592473418352951858194384924620723371343200243381769354282838472198406910659993158407508913748582799642570302260620681343152655486809694775108166379773312475074851656872520315197644222799604711381688204021923454919415721198782977385320169677777932948822577138524010926933998990381589640875750715565800035702504810007233804803354441657394270683179795556564607040389002903132577260108316570207121970862573421765536103796797254718286508126886773803746387507030804274552800845486900927829614890372736001555208369364868840806292542321268713237729070375057467521956106574057346895364146598044846299649472717462980363562590214566054056030122108970348422546851919833417747777009926734191197320502861326597997532024763801021070723427887978076688083418870279075147690638088403774836223689521397746270993608122495127942126255903877767741423657860930639409797912282972390668879764064686270079822642080761885569331389557885003766243602046432028862252768805508953914512295902962784002797599354441974970095925111969232637236900241132737633751229697456121830094226164078142095344645329571071848517066471217882286187713275803301087441938062683848293362680473988766410482986429401098284751487153109819457386090834987099127126790478247299158358325461414047464784321987908924202724312059231169699357729249125750861513602840642140441893332182436553919606422556070025736259773542313860398278956945170440073733424877433437287220919480120462543704326157288098862768008119344895289318875677004414011579617215232602762729508970887255587464098221125778312771142901166203008208224244837322654087429140027762105843824271559290135001884461096571563940259811206662063664945544478516910207620102403167814443190481263626878514869807012537459154871594619708510087686395066607672303007433693571440905777284794072152089589848359933684135646779442613067288274764367033110350882606542224621593993082029337477013363763220772191997637930506009617349890152089240067634083849370483319606680889378614223750697964619812462989667460573055487519131927623464783431482426059205415161346711624011014616501310833632118782206043581494123074135798595258821985895573577752457373888875636514799128413509383011926708118256472680477188198382432073879433009291496628750576011168542296505671052140962296268698281524423753274002297239161782693960744735321075930003344336602073109338587008706777013584720710973606460105689446554932185634256539062395258605303326918614301813175263634201888900973199956004709579227411408167938716932752348567404703291020492525549826650337262623788512170196193019795053707382252711409267018572927765201499667990466517918407089604471885967391515207805815534161051864206184573959656707631656611417105010588312245161195815311665600637669701772929029982266403595672441606816218631302229914649888572635343829240592867874702241004353672047855898337538607461456197752076127725970668466111451718657859776155766340973209704138180932877553396972875772125486228428690341366641024488445061602345145911324284515564610147082146515638950421922451002574192394839821520656352562477067440503403716199138098470210030632639938439904033880546636894785306620706375676223107877366961344817463649294298539696370575437898300001714846324683546700959400907187994261299056081226855344423232295884973011887692611835988014364011394135086107349542655980545501192266936853993695087730897255148105221874995639143008704144741692875272047678905898235801020384820490978698695156533521948771874968318749904272738225485861929818056995693617874978068901582624164026267234593332563490041598407863426094669178988015935654317233172307711941674362341817802059836841965689811257040936145456397784443279894108778932746934780614070784549001451195059602280427038421119881031330621553624797901220999826333303496874665039455982143292314176968536722995335875410547172744227687489652873408765164685486952455565222269948440511451489594428197598378166782022859093754393802451843861128341074400229704852566519665771064908070232898007130450128113689924507569576565038438531694899625701632413280027017117956024185338368556010678937533360807766854367348962471207549693801063065424354292014143977303403065163011440634191860729171688394948208513137469778151326958709312349648646366260330673257454203549829225939678354620685742611844874603779041925909816637806847249321651710466685711141016371512399043652641960118484578415543551689854408834250418761387116527494006841988763238069130729363623487968683317249521099147150867298670479643108241072050988906462517692677331677655959421806798458246297198651569685161647392884128185320274443898604532135710089166242862259751781194463569098851141490495137687429667123781200960283890145974311545653995112508763011811308510381719289198084409537166366910098678767739667047086219705463697299821333208353393291249431498213583978451472664400294990069259746071272833191227791726556511358714982541990976206078413667448446747135170006987182543162564202927580261875531147215379638316990784290145914905925955960489979922893387953889155694431842292252320331659519022408327166025249432809745058590384979916651173025274913153472995461489125127589278875064254728187016306973110064804743483071504610839010019965586180340406308059735233934893577920895206268566469377043148812879792946598872612893330720370459424962234335918414282598745287212789796246135691067053998950573012939288892403596895354300380386712452956602439029971105576204299104562089734318476590915996201631471311503109730604684541681427751405204344355351718147478343430566108758242281984044198756287092531482323729127226190447003127909457497523774108923945527966080468563847894634938111170458318615689614732491264450948723476313050057535710700578301379339036969116219008104522282093845923705547659106881418820984693322694504325659523981398178963884862920661936905413297143999014103627824487782253274646602616004036213561567335274335168400701474177313323660846087614772569146399704745282590838574257816645714774006488903920622942929529415604868192112623080650099730843156488722284344356246448595150483721428309344055481406904953789499625143229818229690084912779790955740825549561683191729655582763260126922233791557706422141479131219167051789809347763434512149883552971927275208177357118856473090287309832849987034137598198829519383226474932626944313368461801188596006645927616406731680255685098722502219258092060416118450982693867146564913066572209203728224849341243111016960209063691433097068664416929628625760773310346400614817091022692008510163935164892869401501092421274299917180245057534552997329635870660422576490882736431426665923880122432327861489302554889193403846183684049844190092238195294440738712176399240949077302400127824094917151994797729018286942104958311551414155866203438241578074318743940776800294086615777383748984711025567119328523664328892779796827177487570419003798673950295756784516111335545735602355642353194266008067094754048756169329840840505179120901321719410752629939186533898093087000028066896592753589344816576980004243489194955969795718042108621714762318348024462703259840745605634974787942352359896862046836258088321785020991788210882839857346282513938633223150950732884486292219593920122094191494756772316456625151338233920008519670097252226803088518475982472656026123338333934609391650259715468867021753117503083497955434273495659331390943784986514710855445670013878039219496781829204317374314828749560901071925537147769615539677104736277965400949492630344759335585171662320232974390139757632177626450935987333197406257214034945357735030846560719532365240872536469493663919571853825902150929054940708829222433887623691880445480533438127243380079116550999733224350077243855319323581805091315444825264656441382899574859962626498310469533515705669515875674990646441568236390242112769712261747497729917894008833081467809409025603845265249613969852581943243812792718814475328857124218918405772525235501211626519315568039000260686482925221423937672216538023539739785653329186147405408632186875523616314088010659198038221837514350230560090769587847714256626788568802572433957422381082976137635862846491016723467606598887921690149439142582204324929816036421389476306592573948345119470407718583714826790927193202531584244679840385094547930839957130933243597041949467758630467694351895779264436397000531769874590784301941707132472897829596528345777651993901072655109240075137764592747079515515613501492418606544357897724256784411748063950779777911886385613085228267275406227590206039470747684517133071188532577945718868358080178846446778075212883395173954910900743649252697639742045912591673860613150865232887446254362527969915632953006314399684879558969503178330301343890344817977458036002590209250342049813679780685881193734888648246409003381052445983648868705331207912206400740892398151263257538230142582061180340108104487327644790320663651266954978174012712426459618421733252793993372705603061161713342091772374829404381659353763043149452412956067355363617831449760027673850589299216947979647602406384886576181063158474401987249796246979819473354313019606933365245519516359858100646325904898353960710910593854823740112876518270299120020081317616430206330012019965066718332026911516194923791878895254182658550588631562939791831767509458441114726895432780186346320524017143407495758338052229952440960740088815402321823289575292079185371863501622541018043426521142062270543052493507351308037406711199309458177343026821755039994566837342791915397071613871978564949805407509074321739545519360548311446878798428973824013568945379232410953326169800266498708010421043723044625363812733851110797334645986940945286758210858960784935284104947887002313324591810511157464619204110377470474753926325426658271858215394453677487780501537689926890342431397498821032327357404112702250700587031410391344086283266121970367583667746919150652962625533159604969673512758903789600069790962203165718023565306855323232919367040131640520203028007693455225276397780064881514449121774965763367141781280766324374067480613927194354631449934604104975227524263332628754222507082648647481353594653821792574501949405893816401648873724801488906069669010644512909795833683437485010153110996391329953064255575830215871969226091575840043225942933017402063641511843041273563060318123762298472554211754213479046852121441336032881263728972103996238716903174150363839743508547763483477362756819950604923054023219695370094554144292563617962162381986040510399771069471652567536789866956791547387152014741432610026284336897092522317324680008112989376483554261745934180476016936393057292863272359389975245339155815030716981290831700943167100751930051929123198767304822453191560250273550811162099705911355899758168861048064290211922864908830263008227960960239216278763362746266726027612336994940794749818951395243985311463329601465870435022042806581757745237443701816075216771249556941671412192789422207738469653932055054012174415831848018248049776433837267200883291236097084207105140826797699597808302890616470483680071328761337761386632283536684991264612795537101513611107900840236190867705382315965505824474288763703194924829834014558600100626763056568852789737985301528391505601143207207551254492030084617480986949797157634776717892555538936192478176640491001148916464462956807540755108061887769725382277135254031740143462386526616474884037439129814667417002251503757958122964979765084958490943173403664788413023669664841936262537279089972806429614291561073575849711920507684241042727935828869830865761860936886976957956237639581818760492938892991083622892644484762790720630745490298821497801798242241628029780919691433733690858323190426649441953100742820420842406936726302524804925105243077750514872229874556276065648286177522607637725384487476824814666415500089424616674883238985704026635738092139169113133627795911582302000700347159557775163753608173606047185767397086757493284994934291785528887030544709219877114005140697294211600387648945595638537526257098672047578472480499594342866460745361841948507474045839860333840501373623985948915101075484613004609841152378695269778497158008040001884022865973549380505485701409240267009622636384704996415841380806789522247852678285257441981312304789325245702094253131070283057370948877967685444530185330048229418426426297708871636647581557835324174291884788495290515288112637834406749863565694317024502139388784333806995777392784924536854442467402444866800875574763331810933640125718594922177817477548497989146714559070323874812872653102730851068544252585067921004983227915007069296056765000088152054378288201284818634345437098629967587938995715799437024432791950839551479514649282275830967568409965888120326531643256997485966080815613702099799080904441709966222978387116764084281970885271661902043264593282760706870489266202556411926875186113247405912397471749795858301930530716247034916837475830896462613443440826070006392086298240415174925932488201402284434545988830056848664761334104001587939124398397188842527751465957363395002860629880547278672101395674613626749192712329733883805297856753850529012711052093124218644294958871756838649886334953196309127610360047240810549072452067671374017633787636180272533010522838571388915251416833113491947442395390209195458698228259907003530920372008682982442697564566429968413008241235807557534277301295438698101382392589686814986114641940123053405835606847434920548628107305519748907386490337201152629378621911802958814065074496703022034628089520494296991819670678012621855152771707215920342895242985565370688859736702839888654239138971069561172330172673586799771888025379577881688572635462930322511710501953886795966408242417917497361229521576494771155910758491165083087526753732075704341643913548289338036167038683976519765754942926115065256438361827231855376386676575194959393778601405334500054941910005532099878144753147354477894680413565970263836126290673531852081392184123611927756071050005529088785426407881596486187871634602921423986703283685375970428478965964947152518036429121104673671467391811276628971760369845917682406426708245803761527784554515221919037126524667268741749800919881604566596521833366060148255307461408622974847638247498055279736658260425015384419717370275163671420149107801882424414174868413843875152135162280112722301027429765884809063708170274680101704928784040513717080262692286423547087310709475547148297835258254912108960310151064161049732415408009295730370914038468835098124655207873603613423259854232005269076523002565283455021219923499522134538421112850532728793849327388314188264786513728742949121351039768291378442743793530775719425427235708147449808592516666156393920898027147523337962509633522048515973962084959191301152641798096292163949156262908919820878639291978964756138409071651596108770138663307387170025818363202017491024370298317121316519292208562781419735754940082510632655519591534753473421152138558736681035643063350180567080475462536545940049696972801193164889841243718302554208733004030923876411714176685881240764720258257882765323211582726590814475329302805365155544468073984727906376554972690266735253888060216141695897465255766390383012769395890679226411585384398725794677481291777896695173680684705143947414773261197640439076999109229987153352116001452513131548574693299131576428835870559433067214865518017963073516804900436252635077817111118853783137675878970273927884727475690361133592063534824795636722137174847196885067002099686622480889302417155663557585306743202013342634513176923405690410159740591341796686426597666437046073716830298179229716427310946089276258847973749290989977924328218296408002786235229968635798843129715698439876708785821685015513182577481807998750809601095375798588030781472131343601484428067548345212906064242299939455792581553126230050663898395366026551821241629963853727193765499598692196916110560427872716803179824670593989228338182016118699137638699138066854281625923114616272751644098494243951715534050188814342651988197720619966639446968899261611937552678553705666803787431846179883221857177496608086192936854926282345902165717113550689472230737553279397348608820553688224160697231155743015229074845799349958626256101045355917454118100183534570895105106453669487360939648378896938290155811882211963525218814386546914683717218660249435474733266796660924419317596643152095428489604660420672802600110260578078431251071660179335781866030565841241572400415223329146882099304508704864839977843884462065882228454591313151202758210490997611077801784215934950124801039460118338647210166127256792508472867781065493951798388343806013409835202257457791333725506922219627417330915953735211712001805846908557589870117748207286843843274419435644814019663341356160107041438009155726849266073523200058222804112877457491808661624409454958691311740604775472170506019518862499896101366627699534918396201143980577680887315075064023229110350374575622477940009326991786532307487876564660987260378813625023579538151352439461550527174923149781866558695085305596892757558815184432637662815527745816138353253080171698461614725669553076305948560558023847842056920659550536854623758660362006932485023026026282820860767912123096007384710807146261295366453429558126622524713896389329851334177431753310942164933236747972333100082285306035330544947918214793461272104656247675128043502998230039689534507980587079419085578244703430446563004010010642250937668272930474848209384409995597689715517134492121659473411077584647566034911666958536107032229668179173260665112245709041414103242429357849457804779459017762566241336279571411862210806061473008450921975459150129992180666671533313649927486273018278904828901785460811731343142466974637219742617852360881379394668310558383539562987357828368755191636842151782376382530924701902358595019673914577336122910907480182209490386268152872028540400322552462706651640287723972219422773460595650446867327981848580283030017196056302769818850377309620760321092752032933422242768581571053626916694087340201550431140113605804648190444478357985550792175040992018778063631548835767910638232806188238599946627739302219422418293391860489528629784509780608566221896266149962054169504797770349468225308245059567798098548712266679593939393607192443947528555969816077433950786486719459970134612598668562098366482399405936516741049518092107944403361879047361504695983792361779064268398157277747804751362079174879851252364468385631720712199053106438795153234750870781286138048218179107336053329370160007723066388901927493765388888571940244278972581393350157664070368588558608261307748042828558297224119093839424305438935575653340795036348516953114512517226922665414839518420933295179584118409519962479749074405118621922944190320223623007659300914538729377592084628581042035690751217958066777895243715819072289497657973782843854055913811224923888607227538383107434313216797107365053118359030061770453754942407438829101365383424925358453919537872230378507381266270033902051797072307097486912305321746899992608466832959416743478761280019538552129109348053413090667700469304315683879070080735778587796629165863845135702544079573444294649169062878752167460409731906716062569425891699111270195266628901611721501356681990495000765330772829723351423687707858062602380885220197717555734517084936167351115784816036923555383176799070973426011828918826816434240487040293091884168858378308728335733913623488565164617084706872670827003538330440333678138809263785620457512522078947529772280925587308204922364959988211770137973526396144439895679538993922372390501032462584908417968331053815310190815712454423627413376689232812806576975731214389119018031581494679417934699793149116958930369236337518222319991760054615888376020901413761186754088109035855660559045213357935227885933655552422190662620490023915955813133885106520693804268755855758965461041401361077766624728492932202059290937936184226126410153167008277201297559089939470991710531969384343933091825788119785015968229423978785746127220129458973853449194661991756684214153750843692954065226371847946158302784218834280356738869949987158537615101061726633321904046318339125619025231920930003745751753495602928053376897232442595373560185718818653860901942317598731696996848940533530022266196294694862105545277652116688071028315659205899045365591138696446344484359907557883788119467797267127144377416908880074993332308597174897366866061643632274042688077744949012710474448649415070605239913326292037912564390654507594533813555527208432199331303782599715268915047785420940326054801828219536789839349740050753772455870816057848567570582249077337318981220006489281031055225869214148113406043089989107893161382733462363873900763470455230620056238631274820691208452968715167869796693031646414105556016597480955667311390094079251400010391439349469508655835822050192783692198404079228488896575732173839037108208598466111243740463225030546129375616691121344481038661011922336277303376564666176851866609493781578327307692967783729851952635453887809389479906565239012464662405861683350812920789228951783623205603384520740287314952941526626997169248123679498773454736067519051324776928122128209654483261950151829811200016847969014178904953219403804130599252680580482463759264092578786245815176539472207128099969916539445993016371447564231388439225204369459072981494791955217375151503050017323396626755797026036503634387088879418707039329655765686380869870946833110508801136313458764158889700379401707801949407524214732333144526301627500472963761291316867113921734419111705324422233944884562282462144840664990875101984574572355523450889395560370623700907101707778396561715669872464328735446833977520443507631790875700581315111108187292499031697782365799531813331790767550287496907483230626535135083232703227260712919711803672893149172854833183664073847912042707826428488244992452302006700567627540515745677363067322569610360163481594616349437726264811628232101640873364036213796549494203870545729762671204946241405891256941130631611175640544584442509278939110748901375808603260292019901354472240477875043477393237586120919931740319703710050138760683691778544391580895986908669074847664810541806192405695267226125611523607025892301557642381529186791058308865946682438948870121860489818841063422223755635469690030883734732528496678643302436571624209504384218099156995946862087324137153736451672204863821630503893796828127978244121253731009580975952379181395846134748938106610962938960712339311380695498018146261037403233486427493986113244783527414596286388929151633575118935260442785043259652669132772604077956835431455278191781505208837096156444866718198338185010826366470938893211683476948992375404722533112390940160215200196393755554809191151915168758648492390279372890688889716194549156559783070169142406876273105129792858032830925340694903601470800832236855434353822127265091614198397023327882641553700864865094132077792731833629970533099396425098111451001017908693300769744865454104765229905227933292686416216595040901496385849928651146320838372948207590259320742928835808704349362496117292419444648544803731537768132698859061682195750760031576969037786255986678491180271729941934850845282506360820514174030772948889747182075586406506227818025320574455485613133617414702247181810247356196416160789981366615600606064197366830947445794977532607316834703687385644976417602734623450805145825607835770773067135401901910863729690200627661794959781054313528342810394742815254936941108971960442524070596939977039263012718183289953346572343635356580756191909831401908340803568870749370161052639825904263542352955599230655071764187359769625376928410762151076134113991854906401568927869456943401168318135321504408703667661970527822134349848051248139082765317950925982855912130892152550174003904137059248006295989594006319473098121161813449217209974029509743653901704911370520536045563197142564083483314958819739282560039270984536624417416846963544776421873129319697475154650402056154128243831599381358320780084988014054380099566192848281379770371169378274665933895927250828736697229134506388477111956973253692664127779319867529899590587071815173985151769594924768749357161411945658803007495737735128976575956661467580937381264584171234624393261012037719236679791825963438538211062973481632200387855768227459252979554784674027177702199481090077393954801475378557183927478816913381995339125316249839114694795189226595208624990293484204871982525228726191496660423822914192538096468939491324905709510701365205522039778240529840149513337338075699065968774250612266899993663372135107533629920728729814034486183844316108241702198981790578490818564117545720998329270502817496667824124448484216043657959941482557124999087627779881213324593249089371581643643561344209098441762398261832836822925872391951590090261484692242492108637990219411674534020369534987892336891267811747257374463757231462115970796738557108323970710392062347293290945157886151399889897114500363163070888484745674892817091966210418851433974959483912448125608786117407625398816900753939487722436449065535398700664857664323294938863836515646172195733749844320011567826789769722043263335597218690150825402573785577907499181545241415099730155520635640749251944120985628281366336096807802117868479258663743973610930598486101904455627990683809711994068584121637119791194383202662289090977624011511738699175791650686458073496527056261424301449626502579516854446750686128741785430406915205358303513289291982016287708380015708632891207340721581105071257077014635545059457200238665395087998064307931128827705478920330372989057992665089772277942291129572832817548950635880857698404712640842097206197252883736387169361676720454192761702879324315642060219236410240625215654338406576016497863447654175499434946747712534267016427577823527444152915107083800433187637800030330991499589440721092796551962630824361701908356194112904016512186339985069904999207386514007842572427524070040577912667702509122400768989081708281218554262014475282708362125186677376513971237736948749324106833952724123058737311118149862429109368455028662982469190344782233062452170825851151183480047802879147753892902493209890069741730717112770664877880323451521138551073943760456171469962407354856356373632323394177638225936754126459872517609633084342485098201502373908261336340430290594486821686305934549896694920717465755874583116952563379159820129346691898058917183983366639090198090477535529261612910476232216158900344032784371950843915958869963765107080603940238902404880804657158606933056464929535578955943665771111132403008512851260448061344944936174470568080631156260144007877046211896165947010301690743396979639789042365473284475261372770748339323225370015289438845786570901226331172417468448435209776313497494068494885606310815276765409955668656858630392255231957928034883454381762462130188416499795699035773992655212320456402291583124887428110142530722551601304568984545440183836732567301016738233786389878160551497061005783905209810010566534812898828885431153231922951198110631394986875407758781409197988324697101905979241254842232599747960117519598965403197604287752403889812005685596202412869893228354070337560845805951883744992149148519337701497780767816472276533920081756114616532784783538035135991943475379343628259454083709345672937490803616996670273369711011342013088748197807756485996341410718823683266269624194802463860873667475454472835875276483169043466986769978409745531386120474921958963783874415221103466334983178713311540735614012554002592229688063287884480410421538095204840965568777432010206624679337694517115460910267664122821713176757874932389482974337348849203064705031477500410008282622470017657600407175695930519834766830560241616564139668193790453670108946482503023640890524719950334713567956596899875996381109702805109098771293278364653246878720861131901899034953439853232920213987507744634019846635544546657563004255895098423391402466311009075233597283175926805193001591823099419478757255529001022885959437919322103321505394465862228280357030809606297529031163881772663935506099667079525783713754604039179525443583009481192019837467853514449627430005562777894936781451000820820162873475651380537579001407513239630137678693774536147583846850433813891187289746794012701287779748065270473448956057827005313515590617958068693911256207155855899707421558830335614167577512032957998773615582260128000853271794310700857389294307372421957996362603063377681225531022480742480864896950293106745076219967950809160111345548856105884060539771153852973315906788795938911018739799191619549433264394153052966925624500714851541634053201575111136746429244772770933833678994850430521991449559360923042638418042927923272552455877471265163689749008850786831286664340200590028377841786852131294646359042618442585308180359468765446168680859458722396168547805800427113629089185905433125287481251709259346213893642843763237747360666258755125684810213797985171660278341858393160463094033779808081205265727349629249174347615852523950983973033803231759418105351927608863079804561445474376134924360968062069798747136496457367135485303714378559109727565707840250808561991430726581900465200597292122481177252025533310457628319654297159660190559516441707328234237973487794579932403632947667520903627244208537868070657114973146796956057908945190583272342299524395160786003484185139619879196577556589514541071377315063767616435229068872127774915408756109479655353705193955100568123680309423760402768441374895939322222240100947004024990527614642454724010188139170256815501673122871638694894060458008105980964541451878178149147932515832489390855033286152847788207125402546190055181753452215437658402076416383512503189740597029467385494864420517651135315753894106181913665149105932428196997950400239797005036449285747159703667299948248905512115939155610105911434569034968036559462672164937676789606814150736081645080455804941572907248724524570051105668998988679361042075893218584496301665296457444962419758379117511737399892840281331035704600117399084682432362042564053397298662733715303553592587219928332622859060928251500195689421924374341803169795390255398293965757152662545593864606513323691939548128347965931808594178699760911234566982753383099850936060362893793846159782247037786306594830427592297439894251211480197252817622658230187692064712957911489855430516356231349970380784337265459492106095400427007021138918085584302715578719328460512261903406015194707577638686707057635331792932362416087418025471403014016555466328717061269515285451925584096472463261537890686267960892267737983106435531061593449346096616859770998110879023140666542127845486088846310069587137188800518751384931492689625666340122128237418067975227688848731890709537489035921286041097350445134072602511249966294947117659673856958139593519555971598154325882055970022039422156324577658234887535402276594169775015251999183063336268185074085705546534458163063033200547497130649074830049756040960666000320766151990350115226887394023042967634652925910991037306006316327889507282469104782993089392905311934637704800011360734349352184187909960946153954602004859787516468514925144698353636504462363363818773583535971576861532322385095878914074944935191708616723072752724786329727701323759068579447216663507001839044527186441657791107780942920528293473112857458251105934995391871271534837516282712672170735176658514243599438245893330657947559640725136360166625387145924442271017024334391825712685219828487250224855622260370920140802410708086226926213398903756344503872287971757361765324145914538535533654035294752535785138672726493359587452518458665308555765004649781316692467791153846277501401409008321555603153735567942115870490153513913880987389076833849350618740521172027110966463513161793243877211821272394805914397413688089213573603391949097254663372831466926684800458335590552266999092297840140962493085725458422782936374106836181496392232579849380358615710550125657779105966973447293247238723344284090218255243553664596340976457239909575031114120783142869744726565907442631887734974934328494204787686154521229890808332117561747529035389177203588728681597008638636452869414145530183810945212019507318119717263038082634368514299662076321173942680466126322272545653141871296313395975657821244172542266560064131537070525450856425580440652848183559449619405910781138199097040241830643075733000176131479961443355958229131120363836649857599886618463428821568353954193541254566805615671815290099907599271510765651292329999627096604529770897299543350216287777255061268061046221341815493529703494908794209502836805432096816640430338828367959773458007391392051814314782608237558026764647334337325008489978709056780292060191988250885922508240880656741904303368876843474635192416406701901626336381904425497437029017787690597350137275493202409551263649375692441828894869225242087775311310742963273615982485617151999841201500459365694365846274606912942707040426352274179383308252714531494207155312067157738382262915291975474900770966684633643490326357917531341862104019310410990634908760413123778283192871074757743716631784248737921589964746196776214046050256995905948403328372559453295109604323234233884022445126632520917353791843024845513886622434436671011453543857869501719715610933936229534786099355852058877544301662547942273129839915619108950504707443136617384401601659934523160924927534504067047394887621653216836232261877848309401712631725204767322587285331752525892106734994008592136488547396515759919652139325271479474306496599792292288281975844617463729400302142426789905092290466556858134958989012494470193244041537506910944115146988386198608176095388216424795104721681868579445493082364714909456389952357786243792032356407231272532424432552538334074540541931593527215830147934203755552299092953511258028912255784538834084902705922633720738361185237853435652863554924398405885404288727147948506279236449257966403016378725557074547245570060222372717168942136599072822434606025327953377959629323941072929839354275972138843996256476819439601784005071335215920489739809389459878521657045833715630400794184620553316161718821649102226409100926065055035141212285088891215272660654079315266125959885153651033209131165003591623780340595122751856276812572313141310982692332029688925859481878655521583722657155023428787569491812888484793122926032214612756364734413661716676037538156833473862413219167499015011208776347677382317341468349942416250529778361941077416308115652770743414151555764040638700702203913149212625612534533986072073766271746735172649012200739988948984654380036165041126796008447459335755654735314263644281315165050051349843201952921977377810241708835136527804337532967131317194426373917540368420874555932637810621333444530632878270870558632704223693370770799794218141835323670669283912049868379339595342748963937566160873018166620497198181615943670540364815991333272186172472574447470400800723009843769124473785211750544887075456265577213968177943502130650561224590515667137546694981002275715156429293265314240390757802485583686241956410565294429412009832618675444677844472399016369536603749457337413733328246559895301004387727083074557607206989880233174499050425143452929873949508694773975091544068454789154751901931973262722184619358659656821195438691907755672014456667186653346263380324593961788046071156673714878358593344282713520943611779101792430490210147623340558865833667004306280460766743851725846827577557225294775496835703120753628384961432658941334111617075955489920883135906384629063153510878348448102091885001652185242012000903389912069763769434214434534490226904657110465437394992933973105990605717812064527973636844199724693359854890498691492968745391731541280016445026001328669594078446368395276947308338809300949187336583773865810148956568880833083840538211820996441882691500797285521561093492451633056074290319692372105906491734582258189700504972411864602689994777118179035943121007798443353650422992031049515186570931126758118328327308208044595406898549165980348286519734101686929439852520945470083888960770043510778323435235753680977110384893796742397983768218158261395908464042147942607302678559156128819640243290173194903686638060668345484741103292952817265185204551214944612145582298714323031313168822702741026478685224514383863400099779727057502914045844314780848622954887040195046390680682214983104142504938840689046054720357715206164221546849698552072965134006291053434802572518523740217646003841967859821199012013217542612878264791044361409159956685859896312341331372452448585155022730682270085990017380884004511532894554253603025976398222052493750197338891370947488587520810702281133610304705485958965337102034151235138207433121141079075102561396630688691525821916697028550473537782259803961459426121814081921370025026120943134337022576847915381968836042489236430928269843600520112627244147642577050373316677683438064034799518439846749177154474298572738754844777532772140842688924337812945824815901618257722962198685195876279362888718610354757464850627490702549692201076421841595921534031655151827474755410981833197241193300816279988750340791136168722593339895838566902552939523621167384532216896195773794654238690133546653195089767872703384083414675737011450656440662003498598262965336886655979606058563484599629838630059333380049487487390200630567407394964766185736475363430128973446403168135814835488976374384186831244595682748793496058015134146847557530612459749004633723421274811363621542153688725563866647204010521868287729348031080594304710342973131773948919274599403392384554314472422387964341011323301374855349714258368065673901928099085283343769551970115078028543109052010047503317147504786398558259421296718152672348300954374545026822602977765205967222609634916760404069396715330697691592255840674938614729814605768192600131988848727967611942940934184331355663321713848898768212222571893008805008826755721514217452347685638274067676374806613872670348119219380186473144253237031317658828013748837157538269899800874760863048075648716938135403385050145587344933815413565662563830510789963218948108238858389306542819619013478199420681643726028328462657126186392420724072386136211338704857239526389421388973481629875753532319274510651240121410562865675868795303572182802755176358021269676526176312918279082988426412901712037966862951090357219116469146397733463254324521484805605585445626287193295495719166638294718910693877929807972020061524411759532278789469756215605575388412048619916850906485542933832867710220583956854376684271424987447235425687975748536619425298288986976981822704696970044787273979287414047398269824739027003465609320843186050113240183975572153003201186902619761950768630841055858374661178925612755621268205085532127895914886657686990515166926374346697373526823139588125022244042229683407730461012382180434420944938486368161789451993618413994250547793130433921349064947122568536785575041638238514136914106460217500843057063481567060263340499316869526519838831081899261304997368917346718766812522480558506621453318081816409943084174953841507641253399400851124965985100088158281049964477408507431563596059797131715428838439274748656930636026462310193585103139372548190922952888569391806255718626533245815000159454950657221566975157447631889756979792001353484733048978176099170182472596900323816664055197023243745749280740672800880019161059379999178432396457729637948487128662464467164005314603865145256527082595060050470036312655511057358459077951763147148792514093995539866846090317007083151098547825118188766240855383290219757370325108859798998907898469582230978451699525866014091464813552446365091418581108319691070522934373237265896013715973689432649325897476618942245298273518350137123458948633604337803415082258353357973947171286403117832870215790789194324671360086341328781523343445170700401714159561216610292792716223222921482467465779522827350816331568019294272035289366227345547648912407985842867582000814835409012858490793932241431086568981454512377940105909624486224100094042159731115533665057655162464588764695542762888560829685843024119066103725808461565801611280513723066074833777372488657513216528164432279755890099592062011812829816105880656148477608054860167033920399504241071371393318965378647019763510434835985665547722376514324661633706135859172094922652556517814978799486283166088416343895862875170490043741306471787383753093571482335125868673333581957655739965836610902750060962616801895499499807216343802571527232598263204951560383643490873971213379826143926865866131021961799841987007210769276354747690184386042441164454881399155774385345934361973601349226187085601036400984782728565599915913547704054127211687342628569833784097070971831441155309877701629604431600343342244004340039712321351770745534427911785429073980905794433591345482225515170942493643932242573972989092352286798097612667333274978324712082657217041729283828827593929927924939607017026868037614296685030330477260140894050264745905899725276290374017996842559094067250059248541942076638161078131967857728325358190150135463564789752177419969856720348126112743448232302584746803295371805869091122313751905701965329185886518078988792048657374945310346562532322349591343738000219495872669185831090257616366451645495786232298456253576889609130817813391751606650947003864573558457886611303069147798604836178278221705988972195368739666656493453133977384065779775651748844834955976942046649303108544276828418950106979153685714452746214506950269945260288179955920231807114502140243237512252491751808008370869426331769120731327679710613957539239908290932706463554858294605519921699207931460279374130588894655072675321758798088448883182145575294921682287872058740322577175251981971205836146873973088059155205903718925858962337184062115274409401665238432814957421800784557078977034239105982750884306659857329248314092523168904520199215200960319148907645588690307418009243452401732911375645566458829394944898206837418460720564132992537453838214610394477991472658650538623734828017960066093077009154659432814165311528139618070828738744227867670165390468506550032630543220750220870127444037432282250297215071495598603956182281434855322508631295237161279653389695100191725008784399673228861172727332188892778370665158435047337274514666502584786423410377069012041080376822923710208418351520198605682954039471180571836468881690836394585128832978388612078667028421941982523968493772791306257391058944432451355478206381357950918514110036282372462312950882915278533848573762718752709044009448142991530020385781048379226333928649005304114661959607476094484385871912912651081863276310261742598782681132348495144938002142914402066176217828556622134800819585400401905776368333423881768096889698513253933100431503834408699413406992387641155348810059536057214243864962752423661117618308084554651913598762818509192142101152844393986874734533131918062965020715716313385976777800508201195989531553926619883184730795982321810581585674129320736371661079933033552652480204316436945048503329373396254142635446025450492761704420582474351270816128480562060004768986573144246824052375826961683743319127035848497739967058216376982529733426774066236678395921781941438582076251518823807323303502921935224449339716657199235867561643985622019953725491195897274425183603548376896181525287126634763787214433682860630773626613648863600576655083471671554332086575558738157717669116638916466056874734972931131288185933456677775182944635511150158762860750204403675564287630513394967613361071876321084202343069307278961338105128977892576397267166738896251652997358312097538014710919709020881360832737849635694991552783496759594692411470426546270597810350239901661005563400545350677780926718893447945274689048010528976599100154903072086350973232111581975305729193617537921920676782744543057282541643170671891991711160846549909168752936274375934862423144270736134621922437180009048386670629010904526813812836862783018863790806631945314898938287145100976936173037932525932559270987934365352044726451196447854007350230860513856738580624986470179650989603167016761728906151711186184367281505199447198955744311585236564630650803371349924830197586960692582907241396123558294246742456756886035377653292220055065796703857044406353869360035465568856734945819555674799985150006146025727578242815964921787648857191719420048252984718717010587130242115362952618418702772742100696475624265988767447978293203892365933711065380008280368715855108795334150826247410783120910369597673749713758050716937907518941684669555005021643989606544795793470731316102960577008911706372960072810488390360532853893609675489481639420935069410776200015338087529605029887763809597517371292938196311951550211554132729253392313843142514812598846647556373538304828945382851433907463790534727569376541199274704306296962401699082011805365355466656498796079539427179226384172294388479302292425961751781168878866178655481824075788749248946492272938630613988803976529997815459912374621844450275336729563154217906516041599363326337398765131778658256341392941421607168588021390120537521937560396461646111880234994823860321844870776487092717312087063310371695019909910647078432763743808346018965276058749652262407811352627895439783596607752204040275269700481954400133919447263347728867622391578563213628688673357349570745948636872321244370919561869926396776381261292157750178972507729502189603572120442973511073050180185132789021015198745120764901769008978393860956836968008280627778253629350851816629803789912516209943066592781745330312147160321068285683581340632340241609960333009771202387647752991328711497785466940956907752636193005827723706806360706269082828178469423749546591574957086165822198484959235894543365273547912558818553427481187122167114962202821959804775002964019748698997214482047860358450346140394974850827454196827259965964872294229765192444682275401049504272698418322494035995077173521166039318823307168688337460533832465023420482627215397858267657988704888028430128963246064514188849486863149077653072830227324692325703756207983844641757360129313453715276309900330983482309772311341233777485629223958717455652579544034016220289392845481746537176586935768330480663249908168098237802229940693739444664914448765233702271760661023614573825307866754488556674260313145713086132655003424347864319098582525565130464246274170248374210957133570968053661512793140967556328397831584175675483008913367590632508760542735062602664763244551387566435844563709808717526118652756704322915970234649140157153940694999865383073238341290134107576259156071425036475171901715642974470088832790644352131042101860388286123329296446742736393877021814979610035544363326085454725084003443523500466751561378616537822096812357092109725617280338012423296247670018504999172251520290220987389548169292629688992508572338345595238937434289804178486306680888670351299833925845810854413320564717588590516706324611392083206480800571722777551349244905629897784809756902799987330671033106026500927694297465937714890121009879811157313549491517693493509592951372055170267205507417601198611343562750015783418248217018605716573379577447063689217038912564468749686546170345095193777783442398683493685847231364597503201627089416976157116361563512108885583162365686907538673368965446386045832950160534700186232246219366024946714222161558236675582933532383505197863028147295676322773163234302674453326896079488423246587265748194377984312547310809324845361905536291605895764273088390172119900010312392711079047390411118989589088655673341605470298697788999964621108842307250173824024679446989993552079876589542722090048209469231022560298090495513568239756682370057056232609736150351590106795284718499237388189429931882741506527450042405417126530214524747892098134399165102345349359639813386040468630968640004634525827632151906930132054162803843981817240493596371493545614191097587760875080997918864075445818931028506385684490427965742584613868320964962270271695278464675925549894416992965438174411137290448772852331062618885970305018879715487556241081602600547876692091535778704893006735344635498200596634954692282429316493136152104046707456114224553514139462466763652201992637637459246057741958076414149760095812384089222734656341254051838453971705002481119047058403589854540023148041075118186440964520973545317391076181563728303018068579043494223224314626370961618576297611738476853998474047955796509821221612580173142308112797362485126260089861704952075852512067430541269995367092519901841218180692981453833269130286658412882230818992271669315974462808046543921608511947974402178517132940923068072029490466750140523598403689154047562031844551050285950169820968341113571029810391072760051056099895225435198606394659914900428902795367903847857276814758787169049254312999112719921376573199792673510038789916022413364715803376667361084391503023849719337557578052286035697964661308103834145607373801250103910474858432656936490587857142155688279415227646584690073060035852375030025869191258760633842956066919170849173830797985309852732741032800306877147204662016520786134481384128806707084129782683440999441742265209902508537930383540615561218653877485291845631006759946458244856625076702397830312502883566439112104196479087653651256283861438965649421279749544615812726880763770229460304896080775104763021750927572135855314656825952497401104853304541521938758768582825137515860020448122105370885680470686504606848818256340928470927577103368312093535179342329813217662601600831309763519649346615352106431552601112696303270827568536848588000227144686233300240633794102707505804978502496683489676485508958412492920769143079780392880800326191872076159671248897459986779051549450485296604387973745621062606266035481430478757279827208105160514875685624985357336964329764252194285378212139404007894338653943966353871518660799179971615262534932846834866456566412833308111974302075204630459401221435062666099258198334863796984006115076109171882327265970408605752242626420314112386005324665254255761887083462121393980852422637270576135214026682329355616331898726861160697699519295381005542559922216797527587373087258530385564462869034082535119296124262980881312682798949677727482395233721927877319269899614234583839319391050628493783156833779189076951736052263396222961858254747738622130484128782216554113442035513996927355368689486005069636115253029833759040056722702215770167047251042063093624459190132307184576172742385277000849173719726582423942438007976912108060388801286629637497142882267488903080098228918859512883174897248834151664776770295172321852862783971734826262465392355577509134473966445751681928531023180232603224132612800933190346501371045908296174790051485773298076960685899202468923562402101566597354090019411081253250415346510558829524007424462065857382551434372239723151207228648929641718738183123021869542737800384879142290543292956270801579400397078635327533085811775024686183670474510014119914410774048836445758234406257045890650567120894020015928203904118667802726311668680136444530097591866141158363463930945120370870081697366660425346931057496460343409814051599061728395110855385675491428574219957431023197814928700970984402811878102302970717935538437606803820068858710421441531733165930237786990462746918234886436901052713787447611577484476224142230593240828360981176109687856580425022161044013171840036555353022129829338108788514875043336818551723978122727466545425856438146493846473947603615667214604836811498312980229160231723986945052945148654032258713560858586538930141843380868694035402230005225583967319814861758997001956678124971096463073612921564850977367176686548748005708826391029338514430914685325211578820092294355764983672412671114350350000078968173531059166092925027909225837548125290921246691609271051402747965138778695917170454676351965796938822698113757025941723150377837907828464889305434747100990277569850112140084844863741751564436612741053643859139725665165111741895286162258237656792990466467084565870834717327329898181589185829370166744799451364642123596603216844635277230202640631252482461116002771812648814671386599229025148551469639408892718089126489080906507660342103296627098675924801024546880527123412609588202406364555532617798565611655017008695509251954877620457320922860926556512595327902390833405239728212812137773511896457787210680057272585475408479519406181640765570867905683391783243454572916810930697585603277237499123757571731167837608146190431323677934962283401069990254522657975583660168209180528129978877733157922431571216215909365182049840621395404677947719961225931918797461730352947263403842636325765708112794627154426441526831876166024360842212223978895895687895129413701645923138271487025486145219727765221487877110814889842318449000692428763929060465156213192999560488464422212938287494763277888192219162871188159042467904555454911038200558325152815844200847120002220222043225385940932833780293062322387990120247291323492559796537653557951992934970412899191070626048492347283986178557930259218286166775320245697969510917897060717216782545788288912087801473883369590015175836766578772469864912677337315707460077490039764891785453858769816260229011150807718836832371045862538324597615941336939099777529985515198235222157024671100073017289229307908299335053468992367592956371827261992190553801332599948739393185342041885453533650583320496318866749498226271413558803753424843637546991723501674739821968345974894798605350381113947667950183782072013827965420364157930462492705610714613840551015325828183504132630099955452008801435588327770606252067548790899884018856751856838340377235646566159011353783873734206653657202244428037570842981041271285456351080420312938020672922490197574602589206133537191318854844669247616313555313127606260279103217308114476981198507670172077867786692985603766162560523089793579148544639534335749971967758692728236016265864797192951828047817823775230987953818876887786200616502298004573288538959710578751043857438770766489135626517731423866686521974927650295905937219518511417265949515687624964492585356958874044606566805405173722559146529232729920451892493205591362839377070736483185600749835696064450358648481089420754112640490558558639257681840828442143782930580512724754849250999452815232549189794537045163924949316909735957400052615126768947624501646391413324430200780502875583146526110210261176701750436563678648468502376522635716455477437851145408474550732269018992638457261349224537920545141279931814725420850204269816720013163391294834551437628958678271447458892450815225175505358813615836913123351172475604685176029133082189535152030079150481797949282044628224804795793852398701199443798420867797474658535087203239760972460913627926162020046472072092617798076043498352512123099131656621064890968287163177712565205402012430944208791978617525042140466324792447816587079418303789092709458585575846077050186595379882978930747686057804792208790787189884544113579103405329120660405683246079025501303692991312922139193394216682197705022012328972315433999986123616604311174668017713806784609094909162893439682516285986239628922145253871847831996856480903957331455340429549098496864154431004027995485935625633839628341879455730915802942554644754752248640681031176692656677886853943576266205192524412441608916277116061187064853889504218000939576932880644938100550486825739329182844480765416121297332532939044604047247209519123020986630867855168267900788271862747919118397670917372113496277144486129546752226638489393960670418752662782497140887464154491039380662059381323282046187830845867741068042823397049430950598249071593610407791886046023164881964921917634784447730187668865843000188422004951444478910852498057499754763135125072558627070209031850643706133559743906062245014774539894346479959867844032996646241571640218200574439916260156172966357815355356675284254470473501264099213993355092527534292501139337235350015667239456332852816478166864973257415182656949356216896940234510249698419765561668472582785268840739166003278405831836935896616196615877577131412762904988842898809533511688123203114644657531113774189443020436956933498387994981791274152434181520016982913658259806162093803089660538427260089812331760030933066577911079175107411443997930003806635896747503365096791895378390145528926306094411358595753873979138242957321169166344485250827640158745461714053346908652152394251553075316054955212112055875453107372775949383030690684055575085734882450721781101754553707055487841367494832472563474534430589640644273304339500792501949157031705048586751389170842030270334543626774988664189736497573872259288770079563634369418538114680565463873324577635318022772959199142625769840252611176501531492265428762313654056336484745091786712468686332986561031505630013583821926370738527723323638877815796613533061459974263250469981541869458107895870491974309393803366706354132670814025062563525438631391925956698402364211630981686803772603613372072620918836124968436765108607275507447685953797795853683622838000282108256626422103851302129867293597304651011081927897723559077363704672832005365550799979772089036988319935928981279392672612421566885966974977962891556266470216375125844180170331615778160071697716471067378976566883915307579991210618968530067928980780184519798650764953139133150900720241986268337804212329330913244684914860286526406372563963192183405908003749938358018954937089183519828705270717743702159781260633652214898384533282445490883092220085306318849806547873878017213409251938295741563660804083713568788094962915801302408688573288848524871578620358080281408635834571667828816534175331828703598335367296941486744911661067713243785271927410410602229554927499329549914404097715774293041802727304110318110929442159208373877937450832059605588997304738224620696175443933161905573290385149278892442328400113423994669305250876836244874065803641404347728798264543859665979835599578399675799116882729310908513142958199909955642981144148769373887988397460987853915303449619328301084763172750423206164241377681833698655763541834713190879170209316249152238185917108731080876564678008032654306156131828845951248559841445627220983230555012547216615805656715888767337803865211509432236440207505786708174413923453176918950594073415299105875448098762827295681709506381410018975550335867434145712822669866307217518098392426059583051214505031345264297033370890529431340999872913410104046390514889638137820883201898441930341623283021293536091055249580333777754552478492206581889668645456962455153421404725725930070592107503610659612890126963528569797244565294459439810985328098945984685864814440883638596547040765981614105165528858877737880203722805910580947910088805468480530093396329061470830855216924539676390272984996853250163328327901395775933392247979897444492567875063144465329958328282094238450208238511505704177436232239766965677245654693517580187083761930849754908083565522513529717661200986311735598085426248645764670457700458741473698705144847813753420838767062529840645314839796823186873377265436962820779818779098163700315628069130875926715157381048129795116391506152166149078943886856691680834015487608755115542387830426773744010779868339760967982858737330515338430156197112669374541149972769519961033505649248695085592200893948392145759032687826216962081024283492257654626792008690432263777012142273789976575503489943446693201048785547392141222347570964332283945538879718993078183285075150353524030352887097558489043301354697762351412491076925938119411510764903334024864788203538062836043067689003249299843047283949871186415507860090878691091782942899158296645577784184724053226471719166818287095989389235918869205278035209812075283504029598793413947371281319384966500423210730274824310778495221255076306894708710283708426517476466953817225081865320622569722836732600828171809207095591865913236672038825302387928141072871952566160893604460419183785724268363718694155776469383679724618093536948887783218401596682273179767014242409797425737785026709953993515142496817169646549052498917502805847110875356898671070005268294101950541734251604708858154437898783872471011182905577249008083901602108432557889330162998979200955324575241815105634614467793299574299646267505749121150407262672270325172770796376861253309791160479319883955923762462930030986729920951300308320648358260174766578437447493675813125802968219875705492988210898876468583039092793089902743618750548603533590726772839021264650576548384362926130266879622985696029137427001663743074795297354340797825734647946651086971626389278421261100834117337141195558171334190524199772601985545439875419106837306765006832825884874939474317434660149525995834644052311528957659682005597062245890783114924188682709207249912584372740238918171680432673803835578084416351979418064882194577358109102492292746293425637088030421769108578597066397277875480526121736093248222584578879749570247223090569778108846980022020110890058392354678809710807328552762919354098541010055629212401496656857069074978051249949863357055767034592625747863206465156392627916073774436127946978646781574194894518647737201539073147208933397208805392697257051802812881898237859248487506195621104809726925253501449117838353228657344994036293823141216227619200843597237095947973903657919318632413930109332646720212245454576662347489026147363936321524786275064463797078736785968487788809895002177198086763321727362619937900162329273325283561949845709332892883306383644508888815909839298453163432058612111601446181650111598208263073959194680382048572517816673220713785717619762172836020316712396971316283910725148888130524950351873545407112327843419413638155872826875450281604383557951118131438777450049177848924683731034377795203943695308415960161080800341752329264317319391796951416624242683813435792119198831892468941426275203963191250544879296292511006575186355392235183401859349114094678543182414527480892678945344693037142638056665286376234647904873225676976466348051214795326559022422171845163914081545726734814027501073428406878797442407068933865046956522899709063789474478744776357278944825574107750571329260051499270308947464782280546008628226141576206479636223029379366057142242395849497765849662605099789075643281845892050642635173055038240114373460103654315466859788592998846166433545996476806187914596544394690264732859865780421216626201286276642016582197342365796380282758996203140929706847733202394329910852166980485000363294173833879067609634822006165776138987214592934318198960641336482540663764441639079801573318610490404457110993155413614510286902763960054143488963394326469343885106150268489532643816230547389432893648983917978060512845441469746785753648641605052555459566289926244892160099020770692067059057137388077566193658952333127449074935092538670763729995965446734422085802611471895890413353077268158338441204292176931639604488892984345356191862319475161864604139502798406763468291446080066594053607922642009021241263972003814123032119527450186591711757785916249752061890984557845096825501495328790902690747635068581452262281686161665436635722577228816698195071981189730327611260306599773191795923372530747952261027702923137886182002647491920407975329797518632438815649504829081047176605972637358069490111863183990137155497143213490370708706927863782805355607829080693900911602775815553983579495998871517836880354633044173150412597078608021317168725988095417510951188170418045317467212015780934748584389646569501244659163924258506480225767834522636874517273008998610092145597990829315045043511371758988466452240509838690017331509035981947128145081825343574419392211887910241695528227908717331477105547764872629683800107915671823956552456851955077691956677716413372209213440362784690107715335743775728334154630127845948679255787200804306347227731357357012162468101338083147059589144123315991266484185874391018973802221447080488523737881198775751811288341943454507639952233781355890706327421747758280711557766802941094937198223587295136213237029756886340988884598312570350530897275519435460209246653588120689985853634512317042434109694654396528950386985780543934233691475013062757440001626936823449322413358885432958821551413091895605748028971919248588431154652194612932703449956307424029500554420769465646423624593982554726159092894587285185365199049383568074658198500769860910156421660733882294336494170734688838941846530417611981396968886852940873726668309236649365139304859976588186698868102724880371262514959655654845606473763902410508161535471795160449439847850380019792712393395517212987964078699960918476670228362222061357262107708360864541111467677272581929171149718966940296181196061495444324181985345191500763978423668252898340279956704757731503494027369917845316327507923026562554705597804926702857057898142988376306428091209341020961822383690456086132671341750343358663827748985443652553107444015013629206363181953375355908144527158610457590247458848746144237535448715512651873450724926038867824417987494787780038352389927163264905301069237822563814952246437655557174698372339652456788058763093499257231698762590927295524316867135418736521314453984021057966093427510148816757823524696557763879282391016075750714445303152612177871867735557784366859853852000786187771550691437775461847034248861978746923003611464002035906463271926504830177142035073726065821962794370980129539300563910759897687004788727043263520477679061116920271363909380040026679376143087756471845509820960069428124778220957842688441682716513317022656544573426905499511630695145062491216545791728784971456406585238299012893647763810972423294151902971058217029564691608430242754258640575093004703629460753277100890128195858089528923951689882241652419988255849731932750615122880994732236800687683614016638786239020220052992269332298050005244241843437728346305405574690749195137749376211081786761104527096226810413031683231092367683257689996185368031890254989112473101133786451786225490712332992373081859826868253297557267321362693910342565587059249635655407692699859857283811054878955803390639768167277603974855721643421395172093101224877140186394587123533200357368132697110398438163102669904520487107801481122798057272499838289745964773833523103764987613112295318385478431387523402635637529798358644581655594696120469765452133737329968413294555785921297917225380828130731452705382612125959532968724951470699006608929224365489737014571647878907135435474186598402528212978376569830098402431776536309153484831444039692815393341457711517992611534930293556199709677487614442124891553865361108475119874894366051287219040826879288588684783752121177870965036179172971076754508413847163173858997031799097472718440481852383712265892478886506016724201223437634934278976029884945166942454963931897149699576007025870994743883218894670543260930549628382134817291570959198282808274799487394825732357593099927634038410186463956480628058175346016900461105906956584300993771274145404655551323688913377982944212618927200860351638004936911040907261810524286067654355808308229169231805923246069527452527437321255225372994733233373899303100719619936650421248150386389067232286943852312338713244573709438396250481909297379445044442240403794486838507519144082854102083301580981481018994437063348686365475102992038074023437791871405433789852045684015105163383268990249201545236967750828078278316876189161099790669541896164191021436499726263026807211581409410936750547001991719321151889850868912569735307720423637356162110218193070605406605644632607799073923442425774235767577882225019982006900954693460290224243837261242609352659087013222946870477399100857206281797540415145404212537724522346179116729138767343628206449513336906770097854684175496684845086877024012391767213534322416548654284196258734792826633523451464701330960416956508528502622959146710158168055462209426579718742390969407659400628202277242512412096505140367057682119892667182855636326989820824779101593321840243762113595743398761415340599639530412460909755400223729687458921028238672474370467173877810006290518745940271552438816035506683529176021359679897242622731240973572900097272533379804219124680524946614928430964393887502146250047683347021176393551642375877209767716758280763942870906019500353397714107030284212697848799335720966529301082158484176066655238214044088086407627704381867489918012788170990037246784619099910984026597135970713896616688992692103696221642717991356774561113799958023847584912123708522169006779416515843111193540558719263122578058857598303286274734109246490016106542336527773714523487846550514313781759087955691393844077530918879534849316586940168042332197564301404288007674322676826595534706447043000190392379883256633799962049919196567263800702205341989913330814008240858269206674197171290213348383150924467886801359912703654563452543400812064768398922816145505350319827437125498642566233760599114633940720067598912005287628308066890860047611682264301656519750784884194817898415009186579397384279195641548595296510172932028029967201716460190157506840049469275541083843734571952099348123064380010407351114516176741567366598098457286815782147962829922420684417664135764007608960098311831639630860106661679878772337729217409745237304909903254604027846731780526639862486363485146261104912832843462604251378223575898414092273885152475390442994261399579961473467747533232807508934593217054845414023847189683366241987815856216468615700269319231717705392326390194704650186675631500297612379501731484231187937318565343981313297689531853009564385495490250761631668194295465628132297680574424806380592439910854958434541419070033383437588749745030739803442678611493468506019771673190061417228471822777445520442397759134758401411390439097562071987706811893511005667130735217866350355041697908608776938131525129771505622686139843069517588401425913064741202951164088324256083474184673605173715194218715278654790707233602495363970998586801859258756298231860963771904921761120185131468592177115169656901283617555400659490863569699836248794518934774820889397304407235013788602897274694430716940929710329915848280408197688422133599043299153015312910755866473038947259498433591835069581444330861213794234844889182472972381735950980586525584260346531041909736765153345225816540208351046622069278160084650859929371563318959563480168313725433635060017426109583674866465749956385383757140864867861176355224929512416123260578711858108988742817942895936533068604784178315699919035370533768386275902234463178278046567531938290209134138927477488037994900869196960634630021372175331806302799526836132839980974195737137549166324415234316312401870906182111993711206357817643739019506503212161112771094941482798796171632246644570214558773120630531811481405644814339977776239113379678595868544118412287922035507847311208723340911684776707423133928135671195305908237255206616952480268304298268871821317171284098448525533472978396469850073173141389862935514956591233124964506032688789190925998354558431392172684217690475390456441965101544394306976422851585901097731127395245826946066135368952990041852033021395122440619695283173282193440308684579098859662432815831081579104956968932708917063258039305021095121391041571373330786866826554972567279090572963983792062051704997466549630282155409924459004830343947092267000128818608252977932130266469974258891785716576654209480635853989253832006655496486953101924252543248059291074110268295953987013776224343828550937078551234694774932601251420835779530436436983321973141786814299250078095541664829787624730904171810946184747236928426531112023126815017470502869948079346879752834412453732047934456913099771217065252385190178110942671445605349131729270026304452645532161172020259093892437131357400049460658547755843110972107072828919985928186932476873393458224737161715403041384215755317099653190051420788380922122148302062582652314315361089181278222209035285230424531460439113314743366659369818257288312656530578130039172003224668043567624463263672685196642026226332524347562408342770649417299278992378489909778253005523927040173287569601029146382061919449642807070949723681708526429898759011604618767489457508374370023327576875452903630374875341374542666610226168517427419477325516214517176211848742698414887553315169048015459682781178864791550058282787226906307093220292029896093141417506214574182794104407991259334403892011067309708890810066772628037135831778814222579994410737007432269022268955923565366633021766718143458366176779264291392060860545535942368883780118571691735320602725344793056113921565050609291945070009885901995399331152103448453291888846680568227319113309807437078656316931520068106170133625372107846569879214984435528617712941455132509618456869468007990312310236017837051916277566789284440648365120037306790510774574844059668157382179519265038800221927369540246882150476593795593417075360338290137910943409612493345569247190828629142465431158953203542729634202045932954136222900058408299142154009429921259998436129333982878115650244796504928005743180680341424198288872897797135839221535489118753658139653744199244283400685124663763906000192741829747085144543894359578684598453680696771918403558871953005557327552754954479099524477575540244173276551928637045419548055899418442420023623960531819290451716941797562402695304676511137072756072293210297463434525401213900691577450078827949858899330840411521876673898399624269977574107564399960978841762516184716695349176661549268303306555273624149526538362674289852519541469671838082591050316928882550722262957799771824742623933140841427727759526268695848370414551673335261437197306956469597526410359419649219288284112697643589593740062208585400136074386953417371004659192442224286630509824514396503923300727549844622062565333539594251940663972315518046931139633743134129160777813552707496389178660656549242663977002114625651833988827950884666525346282992004451229429514040667231429214518260109448359464798903747848068812891987848913838667274518650381767180748448045320495145569328884258705635315896354385848651351836708241241480652138667050470055555665062495732509950119519953795200265817038355992347953375640366001077294844910882804652304214096437291868966251461948307822380531627531586564881113861930547623748139444534606778904443322892307181754371096026705557658207584325045411240681171142796463611843782066772517979862784724518172956823559692372753097511219376993378251103333264279408006057276106145062882646439304237214751564531598601842115677879261946655730611606597327848738705041976037452736944150340808086060870023324416382905809909892462418226784468621525120355332256170944942181439378529789724084923138151190104479015900505857779007345340764604540930262984695422611142178246858792856109799479825904076749995074126703096828778232592250657819384820365056526207305505172514488920470655997341637557846127371334265045663118425087744171386141442858146015578511898651312116070908771952214209587799685792930831230793239526753924388523966644175480222823635997640304047321128431374779239136567923087566482202134463233279350180693766602396929432865405268770095475591359679144057458590165070267047501365693779315345286024357354839042102374963894854155320715353321982471316327866360749814037865351467075915826220324709971578880435720516741695496889681322750258382874228277918063092270481137101936941083727933613081589612764097158045696004676812326644984842666300540231544353325914283026847520604631323890172160819486857025944884980518358904464001915072558499441048827509005259233747466449330354234665020116450007378230954458086210374003441349934146526822334152505697573234962564399121565561239894928271037620197190263516484174807683876907109546085827621448177352042369260007108015304354536868238830185887365851572176656985187650144209536371320101457593808266281433932209411834964776478747913577277751768403918734566407843191138729090820176889464278171995225467108403085402399500295830322078128801415698300484141802692034507757293202017501289843081573820270394645452209170071513569773764963718333980193283341214748881371436510931509703765183009706161117199709727381088251917781890970786019901485251537702181939721986395550613621101579547741305603660254686967772281036703456050457595207411399376488778572717222378757234187928519512629553113548018056967686081334376190278015219380325718568727170822082495928813045618399944081261872290461531124139853504421106009934193877242390257127510327534296193477079760392563013406226718230673767760110835560893781526806012424766792806634683557232100763397152140934195228381085001123052323480756373079334060750106682769630789623614344274737180584890234659682373341459302457371254240566581735936108337225230700097562100586636515812478583135696726284982610010142523201903543407956880393321231845913087683164773349352818271881469519109165592821187352891141965594461773811462568759778131829354053852363839312631559042238104609245821335849054214140365892091949739548728224061586470304809261777282383650038992436145453813353243098215640936278503794887594954538220809647471834579541532721804291620903636887596408878736526509422635660540446277516394783012894931333861889101088838098206123489724522761076614812662622669434966181742000802953516116287236147052084286322554050616165274660022680444415187471573998749304167815012665212713653702786548945934551945283874473394274203593399205048324980190655277414713326889709595090150500374302190832208513237628650153895131494091911029287595596234650772788503819371108846545785930985599390793982965249820610299529922363253377476883187495901697738156786777271753522055834381849271136272026216971217595219109966109738457853889155193430696979588964621359067979541059512239360062438011524367226288578549195411471542798344593285099836088467072713355418417087657730051742506636720103952795598736325153429948012425832240392629486966960338360691243489678340887868677466587377163696623205874697531296961189038354290118209897416446998196721117718630772366239553774042678961412922007420492318505200477375027221171614644037930522482968211471788109874446373546494907284908519315527935967107112042293118213297647370877913063228757643039313958462091782836483077567798602744989106769163042932727166098663464919145845227472748836718465946071247936358909565561043201320838389034333498155724514419863020534961389560338486801257262839157223669993237296552960800212925497346822063705302545020121228584594427775479480404483824746319567539788736604318268823278955952606028645331745191122211727387160232208128435270314454199912886886595866452501756701507031372448275784587785392647091416802442480107526133069846532411414481897839352846094191801199853786893188894225323707334310199741052549339352221008376231395912121465639339475108161191733998343454112781448144077360291807183022755152925295797657123848476288128449658417173128976352474976000639101240117307395078445177550544969512389574901116680742847215472976666649655758053963499982461427514734289786969678679192887961149611289200406390110370143278402920211339249550891413801845882078357312292025276611258409300539409803236888577641612669239368660450536526420322330469191736813234113105971856026648843443625093044288406111912804259061154764529782397119326372168990735038534068848886829363374051468119054500698183348735815396355355327376770931277866799874037497092987037548893135401554542360238558334959110439620105737980145350930612711759597637975475115744357479683185592905298705057180874372235618322007984104576852230777097083165069253697634828744722198817461756783970103692541571948720469282726435963243600599912936277112482147823660967548381863637635790704701137722926267476972487736389103049930746034002410150301367857503688530620382584600045851283442884842162227582755899341167918403040811080449301500554926560342473723033323777484739344435760076577689104519384885814879977964949434770011419916285946040580751669474584104750696411361695419722019663376515958055065337330602012114688721093499046668164265114364481944582515036270678212002190194997504706345425917362534318892805468008254180969262121607096138762621314763760733430641085374094153858973270874744855230368872621637687734289429740896320063758421388395306953482408721466656478085303023198700641904600379993962788170449882638289662859034121000975388116746951428531908742419578006880055633213916863651325783222453056444852812882769876118658386608930721924102031056001991826564835805474937936770429662779169247598787496452797065040608635112347970710636360129266768306863120959822663899122132473247810949939059961469372992397614812614470267135073659980899149107751342315923634868949622081392726025876001415259113151470789734731877939024437484528566359689858341112849983453682646838210238126810067716379668475095211518864142397969744259927866319290597232413571043890435197350245024059715709313229749169558351580331831748201007251969013465663386971329578135460672150479437176292945939172122230144936474806453654160041793396539524024044559288383507018373559762197980618684816057872089231708269731509463300576280938583393554610837517931473029964911905460339528768317898641617571583930613059534166074780033133435658050239649524639886266542108567130799613782813302819081109009963194642452698789131736480089164548890534643353635467292230333052554146461006934236624181273047616052597881133235340313613375986254265347734990925461445191075603554265023829172039216919573915257962495669551495219227790107706911954091496857717116680897770300794502621107197322382066563332220092684080494305680333239788220298761673301529511482720666719809723732392788382622461097875692076464563154551762360234838798599755304008828605872604247008626910893023582536115308109135535784091607922965508970596124174650965072891557527606694844678948199300511410830211759198490406696713313095690291716382374672756507222132612844887717647839960506923436310860052952231860866162537419498997912066995341200819264191127636519274470715073636779910266611987336294683188492150530644440263342461459235569105749028317952001462589626238615224741255905467350647992274277398070321163344858276283333617273763967047316808696963399243589249124516131193223152907454730268196803415502611111936076676600014336169225911539872118144230743783180743510478104375530093497385843381520591773029909943172033073447819177926586338197953333925517795314522460762749376059841117366979119897481497748564065177410374783522200292271963217322696136895082132283263688765864087161756324954636250238231552489622324563422571189750110077338467328390058794526744710877486287604681319527486397248457123053955292768529477487657683588387477561690698265082914715314282678634140303964934541409318441042097634050870880813280028100521399523221135840358745160951650559727223087398352365304878888991905593323374999292384387990165416713245653513425858249575393533455695403458957901146311698164062842804049422121260429097310141998453852500358457553699808312328957298016478597321626541688219205251375780477746463050970430745817184594170628967573786992927535751730991019124155238099054859173989477746491062449476157854215109500829255236869162981447725480098018803371163188625334534324168650871322978810288482440370922255438931496079381721524517191824670290810401043961718574573248232356817311061759424246304101143335316559680191718654432484865498386301069966065461167597063966433158455582843355200335894954524527025332807524488361641083851674043435802574699198609861624163766918902826896352703302551688776353016069656915451292906613979152551064079085165104709659369126530971414987282545518455468874455160025095714645641395368876930326857396737372465383641041144612630806622591016557417079799887423761971464049356520612727860743278743300819931326372012160505439368433215863536884128181086829431803360956904364827198486319570637140149573455618887203017462699615060291970605515410717974047228874544537837993432946165831100270617554194914723780124274507578734995055681938704922089811751076906569335228989115352990529750087152313551924551230858368628255405399301766516259201724890289388528462251326451882236179860104998126458832179410269077605845943219818954734223486448422729544339509675820468492247187035560470711009214181938685945976058695998678044412982788102495019695604149293242502533687938887323378729020437856023113127604710050132889659143278495029031872831757632952449114057920828668090563548155080995762537689575503376999923911080781068339343901712088042731200706094735184995789910154177093037489984807197994863633133599742761679735103872659029105788438334537672938506704724656794549550746044059976941294653526563577942635917839968143501647288301371127788751168748552666492189410859102928550360383137439031489441456390405481959759998240509382033933679863247720153636009756514227890792307704376661097308250381373003137849354852162793832073047758655995192737147628125679033466383251374530771937874706313113335568681745726969425624912111765019392930727099325187107667949538938831800008400632106528712284150174582196059224672905286603575724166947166109480928661691626003070313633306807763896729454973568608274273569170697086866792974836643182800484828750843197013896518991199436062480739987920992937381271507576681451882911377817472136842188652865608745596203456031788346311666561896379595976401275588591823696157066276364461239353389776111003790598779709463418575902950094843399017391790814545134484232045026332181426349242702512308751367015908022413794038898506818642207941508710796667712199797811612826566511769812864327747099534333511114024124566474558258273423814337364054567838844370848189270016736830361345206040238236338414408862810676288141644559688369905997498021454135148929817362139514819175920175702478539029016230944498895591823570175891242243884622652665473109304671962490376275832345237910957594360112363770191892236008570632528660729028524588828111471305140489358206750612092929258153342662929521966842041890407931332629810678181425448309112350534631140800407614787347250167008522570531562407899921719952094949902810381117142734201615266655744731968972104074325380551293160876111448228142803799904477949850353519384486514727818126384264452117683814693817574619599675248712362318288056265267423088021708317495711006297680344856913726914719015253590001282207677387509951870003452184887416903620375847780842544937507088690878593836188875343637097106293152431907747635205815384723238950120490162053546918778790688053434272075573609203073158322787757144738062549429295319403049896748316366102948642557687931114748564251838050350723650353853894093011467764991642570312370336383753832404808358031359108280698966313245253383030580927100948125863640038759867664740076926224742273006724249614782643376093359170659891437140593745526854430570469039844625764696860878518328208318611558193093439805098069353488918045203038194253008935067274770515140599770590154303799672473850696282734580317275831193658903650472631361556495592051117649668861041919189513930218597443990166116476495299397898570420231750870479746954980417192737932356079854048059887730224355290982884553431796510410205840138876165263404955791269001626121040617330442524490864677448930031940439273206295939406649856648833252362949031768867061706135318534869597560089998325657379175697032806273884836155336933514206862882334965432591166148747728810965600137573996364505853825892025443278517895876284730176488291466051393819222836638523428400739753636695812177047566321985166590082785494002684836670665771356213771048848580795278724072624715203788578697159263498072014740836090247558408266253840979377668044606134705507830395390043664473800500495580084086741558106001840892312073208146169708540149447860825024860758391437599454818716374193942304712821029769183560718359872541436738694143085596873408894409992042852602043197233090807871985798585977755893698724576175521683525736950692053768904282557138320309522899163465930696755620271229523235338123548344264032524922412626128329987736192256130845726181422944323333435588013219259893280278023506414741360378529154827234196703948634669513521177349221606368386229055548790429737102399921406356196793807586446132499880001030855813141853796685711829427362274801561699969784443867297461968723206638792546582762747496282949320724907735500986203952166747607418341595565533414599136586617364859999547590715464465843305495237704969327280747484275272500377461870540287072393720397606375952768863139332111963076150355840449383979469034007593752607945330398581070540762349465615825939875131093542712779748478983746242379545419631841078946733050937723102066306143153512946608185241105819643743576388628725473987034824199333096310687642943125995744520525004311213699591657760980242744372131098915001101726907351534896346221585256473858861543467744250881558374311644147843258968744121582420711723594009152226441201958975808758307091622749471748078126174874469226492521695622947099592325918092855139914625792983014894917487618662413792862826803389452982495170629834888730336246515091071445097545608084142947754765753965856484790360034336557496844084308885702924427709308897404179122337777928624017598326364431410408029209782476904024939699001944324489920730678433348555217701849030807564748355516288036849133573588559348490128583774878455355321643553974102673627414506358177223819924911525318623909645534336323687331861299679344444951574362688565818750291849787968212597973545338458556887695055577725331233553664047116642770227519156373224411978011752661242967703213576995643835411395290351584894752262148689716568762683472919240217166895360028612962492697313857028888804868097379173882293207346481271336761518178488126819736393782108033756820532208704992781073715877748379761618198049084225393245865577708148191773155323556491213291118089186667849990140851256014959747651900283194700824524873040552335501022818755513674111349980566390588373054950612635956606332798353993256946670387562091260883645341398236481403387434187424333297801018061401640124930084807471501749680149144631114305613745475642593625771765797646525260752602578150456929980273919963652168842002983221417733935705059117509193188446685074255316424711955584228835468090446723046970533961185862254123325867912792205451710176611438603394215506834238503927430289635273712881706758354152362417161199243095762575895223648344682115623891194228551340461094393688516633968528386323065370814536860739697209625065589289593772180757068646760553163563103277517828267823351854063325007403989779831457793861335291693404634393436332497676942695222421413005222505604949792099220471257003495676936904275215938773747343942358386436958462659234151488263833911418564751077427120669771805687332516661212291680195288580759137214787745294871888341569295864315698509588542068131709861657523946147804357026811451383422842327621283798352004930615619877083952892061164029448682084982975777927765537472374953742468948316243582861072177404904532154348922031282350420293870248999423081168995689669054160050229263560880364979426430213253633548704036394665176604244039545207041328591551109500582567787194648678256495702033735305067091606736554746271799958887918240955989322347658074612912347841505894699407762218026735723335284219243742971546619315738678539770537405975924422204624913595092850628157456795204245836252226403217395485243939171981926251231259154790601520543430020110903278622790609931712392063996164754909461808195945101785693475392141360223630067084006526361833233842504629079952030928201084975736308285246455085143141878120081895490618437079901784766040454351402968391876904358923332568772187116921305855608596550592086661618535604754271859082917812297349840949344413308084359883525831813060766072040247406945935369904313244652585040195361020063443153760005597434087059932350696240048300302943173286820106614758449542631225032371336610823556224769608571732378116888024591815643380086070302509517331851835015775905421915982367786190068109397494108144041619689337730037598305236754711518599496233357896939463146876701162581908459908092944608280331594347793275511680634336543312710082950851360247312401469093057097283843270820945518299549956189816645145844594430663267212332067273263685716906995911681076996912911861001279813486423129365971556019910513645153569006260943025095638884633635129661031810025612178131161834946568134943190184385377407096499844145334853817913520392498355130830383615874310996941570431548286471397550274164913274981764619054099275542994025608011448635067902054213179473519874792390881912019167541196881146963816892140082803331856153748239498934410240601117401700339913466053371261082766727971893914668467098046613117544040760935203256525853550420016418161805921113577841397263836209841309161932840369588039981282931427944390735794099134495751259722668862913032511162438113235684697061584108075784034997532499158361829335385477097804103294456820085363445872230891747527560681961492468013471204529916909031990872848163942409937477332423628523760301225510580937890386199387861667879809111498330539886715679579904445615253905223698600538561988340461632798894894857544330624292411338090140011348182602987806090004021947712637040974424955350296371743261661592630975416358387050124172122571728801510590773670961907869931288427411441118354020828964358397451477206933762452280972425053950102517200792116569470671797918067811349875731574823878412680191171433968358256800774449639451796715101483815229109448769058986715864773129264478893991048036876941563099183342022384506806432946823107183585634126771538324858995632012616690615022418272387100022195443634923471568259262060638606544461444810230915580956249221527215452735888679116768559749341460464093232588467361168883445000346435946728636334857819850707510111388378378605052414767876872878390434153009599675089240617613402901495093387020830059384994881707605518665271814945576848816872640804451006101097486168882382784590090499531426027559160007040682671359633361536856748952407582460144479805907221047483435203093870502228526027431942984870112910727928518296097226788542126343175124034126118722778727321571559219299018516462635615034906567906965795858192337671495322030109201200940413664806095345001897924935521057817353042260383592071426424043582364212451343434100981558973438240127565660157115344185108973792320020728120841593387915212347219371493146098632364050867695901727211856489661626658945085368624121190881114815977608843649407234115426539227211462061351416616760888858243201268914510247127047704911783107033862738902607779038132576222332419414362414388597613798798113528725206577971073430380341593396708634030103146538854686604348449615849819721878841969740756008511329303094698016094795581929915679085028637375054360161370403409501434842191581156900763841510498332394920993077491201066053984980718132068699356706899174424323800958217833019144221268186610185615254724633535766271443358556143301604289414245571560016338469033147250322949439721214880797333426481280459517890230289800492875183585426255030493894824842911392758068111898314690657017876079850631554498252317506786903635379428350621841912992818581691716051220672884583101179384959061127711152233520539015492471940907295044240357246950447149150100263964143146679827003660436523597330398692164316989315466298663249196184056314501030604445120524551570185618903741678155745066279004082232338080508179506303618210889663402582185022414518682074778969359240223711268996464583290378029612762163515045712362355265625784777307049198870556095044375448958696585101056143173153960784636613681667681993246211814674443708506653832166708388803429729057374977971157301080730987597562312073985525164574495328170854536768145751040749356393212203489608423422651586041694714859624689039724234751793798664706356470618911527984723538191153714437034298538159353645256447974905780551915266880897306034780523919239548909895061160815815613758279791348314087712313785568384204994392040434115983269130211045852308099562480143638835795611872989644625646322280722853664255895487963968023877927776267909963760961608320182961090889929232794495340843172080185620609203041875823723478308114553023163987178751521567254476777612095628023434484844724902849084446320833891567810542043761075442648778530436929719484227439200268173824937998000252013236864427408397246175913386900116554422522774152786790590530499441216376977110674778317163374860668408910848014523340533163049493884793373033209138755705270658152883191433505414557186684581266957603613817334824282338835440000456626541632713593929754635484941647035032561891668184565223674726895784981218829930194826914848114279382186828544189971027627592175953971474536199980954169086239071027691409137312598339667827241464182910503404978582528748666098905501220156070050122551005102149689130062840670255712134951476496178211964712522994307138662234848110768491815035987195373829787772116678445162205019114225082796985903192015780596171559149920867427073121168799601882487248082963620874644912647325905333807400694920865169538292956815760895773147056395776170956400699206339265732619410060378653961570369037705164297542313272358074898338139427231907592015173502636964673478968507026405123181288582547217068329370999585576437883737614365221604861062110112234015091019059543454801575576761032357747300209981490648384950853767934949743347570701021461492499901688733687802989496983889224593699087480422451713197258328599769796412172556332912544561532846304081769088316565202541579211997531508996678976428637696877122850203390384442126208277883800078193064390566540214874765665711748172068551662286237994390733587362189436213726903358502835605193230800052887043110425545733606138846606401092181916198606473360274085350314645564609136607066184729587097431582540031673838271483397537183800726235063475580067017609269662715836188219597755867630660448898815583852718329014699490563831358190468989303796023631898280669657654414614504393961755567437898581772584174229902844076652299362029646539487956995344222418398438169245420849815759688386401431895407972790925516825350472772864073220701375672745468405701291684108090191081233027552936161100506274609618203645600731664218509055439858740386768628243098558602600983456238180155554376620121604378600094675811684251723541494679518452103070345088777252481946116376878395236937115476991604420258249602555736119835335703018947663760715715224585733874765398107226565669704190126419318144652967541746412335272406551559695856747388897649329774385846507910835811662713435818393814941085012171984704631474379899565814330496798316725333320139086391516661703070754420332852365376983171793644932233012373004862488320146172314606832462391684262768331557069598105763290173350676725616096421594515268438618893320749927955467017783200728617180754986937311049954374576581711361795968516932745259247341304253657838305468396859402719903703601412341393246580060925111572482001709977471518537771178930493995439215027013427792718026661601686190680568296592637281945673009570598541499686999874992571765014631827632824239478035977318938679847932174197240249018851461545251549946748587001140795847321499280999670133576464538158807285127837078706066746362584715757737019864638083131894008822912868673813973194859178853073864932803746972598380481269304570645408676281846853429693092995308721163423036123566277482889868032966012344467799723264473355502799530139197824738477929049652947953331116291027572288264736196728443502410277644702242155534748319466863378967381185743293201997127811875480864236501616576914164281253974671907030367869850184437451743122659144786923893178178941406094557039293669363815985304785426595116273932005022314972315400610512866842097269139016126588115377008684572642312167152374684800204873672491482089225568397886150473502259038121181652296832135470669160657640976888572047663439389232334048759780008979253097192556936366276561512682030174423332830708451906426451524265988221063714362604961756069865869931791360692003917932603119557183742592854456925702122777501520706741133070786574856750743218998916914488144306193416011844384982900745989547336435073388658323071067888084321526039154815271913509190358697834258136701830878603250529117013031421478730673721304829846669863408709704141704803913826849286038885726793937941024950476952373768681158824508127520213172656155762904689636590731588839899295238987019186102092737425422442655896481642454994465603854827809936322733044457399869803256417800163040280675901200180194646790307421086265857436500210098139148425076680488660415536303850275157169342658773191514827277140811076302091444688633437322698957725053713849027827617592590019626473050942130359682626445354923207275186470457076914439332776223683487955500942439002763103942578979252257272101637509109819318260514559318058885670530021294625779886200816274417902749998351717445136717598032680106876135669146217078893210822563985607710985474610688723367007482571509784858330638228969018859187453159295789838901696279345990211790258821392830255673797970465565874421399392364402512642297329232517767517075012907226845159427869583078064991659250001010344266813617699420986637152681906838258143355960777211241341630888046910349893639409799924702646946512366133764164767453616825029751232737282580069070787899755785677643074690575271796747902833422844481177301831978492917769053916580302967036375678880110661768985680126188218119142947572120930821192911994892643667483970827607474584740699020738555137431985727584802555132580956849474789784106031768961993233090005536098698233267689760961551278057573502659715968024117662197989685709746428789266187821795937119808986596680486152101435415317498220407788611044451328072578775186877874108048337945648825955283674256371273232539719581631281640902378039924207938238943911514813145574563237627980723595465848340736085169733545828434187584356559256927091877898288163817457964746127331698267176805650937905062689830235864943776087762186985451602301495369684778629088210645836144450257265972263611416711132532723164260800890039909046090421375031081390232139678816703638314457504936737770206741997544550206653349420173237039142670673021263990318751073129126847747277616951258864361323216520628591773655036767881592404467009153416252855812683368264017995083575335499140338185553120865817490961736324504131721046073855007815317340631441994425093595197347335853106965242595824608197128244632204154477719200915302237733432307336535164312615766121060148390986559486737323623286503988287969580161244404834840878827514336827309785763568186478864230078609231489912716519651672753805418458389862885705224088382817704566409470387791372552565558464172526523247913724273001648814028541079170423329983040869047598191427780436433106385562937148285354754513316368250511159188460465255819800606070517419638918470242069480373247191550978136141680020327745156815758756235773066083409926177284822970639868089445687482456252095925910149632600347513053566058447302516304334757376109531372611021506134239957766778784190685476300967654016546897217898611415095430478883975126900692811292014457505277918028528893068468476828762476915487051890229063749520162145734685404774548273092047175971360687240732796156956487121295950349164971130893240538791189688477029921587047026834850381753995043781063108624869643074676667738136130264268865103413296874120346492827008211458150662791807073599106771962966829751609748416831610822896696926538414161918297508845533207722948213566209645102320474316302329118158088362217224037975445661496689074700434853800048723247664776735427502941189919875271307771033333774482787733478066492254301560806548418899755055904440289394500464505414353154668710199350107355884574906085734638607151116629173075059940052644931290160762655012094655316386795449448264308294284579637335296160174119556892667105643311653704156426693009644655052580827461679349633759499712689601221710074371596184541226193150371901697309070220234286224466211997271849650436682578359780222253759009582243456342941067637300578134523822099673575393411850652925160947498737347852022715847097373261397332889956975323790620176342482222901265307675458289354238865398539096350230991837618593245949110287637819229133955206526120730309907267188803774886066597486453754471497167509321380314061594131416506268349674357384775110204348990035672672310129521331746356965718423584357290674904836228637333521242091896459185443471952285443325336036257295426123315099614468844907972697068711351450748284315556447340890035202306638817361288224582159158657667615011191332223246312376626712313954931401060846634701866393293834419524670292744565529270771596708781227681809889430427985214396766238667010950174483803063723328688462100672164230687761746029913777665946329194671753338558793070455621455799826234579764532757227858857398329299850093883268936196808489271086045204613327558240313790760709049369104834270939572889069146247735800454823270078649029262173436245800797109078894852733266496547228757278923557925166827397350700460328819072682255820465225792062599994292411588008496824124624193379004162263794132219375827413385408611525161440779205345097631390606519422797777335532521528203131892356077044971639214698583777888019743882189121162804205879698645702170614812612982488220130058518507995889611513713701385400036452567308500423464336472982542275712930609776091105626344681711284758951927144628735875716003815169431989998289079207704525547630105410841049228427296352456935225771800758615664130419517389353331907523935448408777268229097850056231866910672642981030344445576995334051132325861236810004591363442027266358637022658740568039147828556050538510763550341190587610451157295797441475716393931382551416473285293958321884069603389595189874992397533892523242555222953910746282238391991625863794855151383207261027369941014693888898393764551860113283753875270266694424576353331930324692985734875286834119419770110404300778033990174346417861831462024544409753809573788459802429215593331221595852373861670270103483278325616425289076049884437151839172790030794016189036563014878085013195594773521095736799776929474868355434272953950935763758190659706834861748475465484657765545983526050885670496729088549744429419677239520948736357422582218353829353218514416248569603255560464205006402074177345762965589424777486508178845064446600329275544185088581040415141253558245595284637157289658293255446086413266624654156610967032898999758339231625754919260689155427893365641560614759922595864875436065736480496320681837830173378774556930457738159042867421942349523726685912690815845116929058080580768109063892947021616053922142674640245846008069089878048159230877482548609818616284497418589146711284086502208313882606079087972850488431283729098457786423307125497556288980909430619573333369717306571382491507740020022041200498917840761731620531710521243036648778967507510485588499805331405146634122078243974447784872789186209577706890874871377274710489586174078635903474247915656892683182910489353825147449675271759620774835620306520376689398515792408424265086756665312540692524290790942088823175051178884825924195933582229493494988192971889803873860900831591859604598967087765428747333732143677938252381730902024682321257913924203364627286868020852113007366622174676941784732938657755876626705794182670145326587306067410749359077559468468374524346645935106803923569205056125855031009650155973081508039262269683151234190375238217946280211465522305783895572946187759498066866628793663809497296614623124196773252482694009061641643116442162677891086695010242213131089548161446302181466946404266372164213182702702314298942823783530503116934612825632955617513189732701392707085903564709468110294681493925061776917531933236002016097317975539330692588223754045964776628375659196768920956051625282835247835071263476795557404241557076573199325656130657425208958432699250687492662424574836061968291421592412549330325276078891203250193076096504168946893371515620939614378995209169889343925057327620657108701741268980570964083077436714655566751835098264709116804366747046989867738232139361119436401767679903465250507972151181756104960763671544496039386969227915181321455253514184271108188545976303959297767165888035819235239190902123814748843424427100710929338268606459224334864648893854634240947632623797590769531307359665722398546021659562229729587829236894037201315376336468779621044097341695944902905135087869890029332388049239006381054262637513538039006682218102115230394648392330927407724271814493522931688228231667451233290978156078907248684082885543058213248724051705654814297702579570519423035782584189016623677138141671283454096537852828014417442255674288326446883881339161344642866624074522605266643238725653376069817670128244281492599093219810289878053315354151407889909713135971792866141216235488546274336487942705880288942979659836168298657177894887664637397661243136422069954159785494993384331897948607793188244369908152343544735486713545809493247916816192315488619842297685898294309767201816088142640155032889644411690097645496502676720055909011668214172699656012338462440636185265560141510142072892437966846393609965959850330322210571471258227015836351579343849967425810887088958447474549812048468130340102806037615813989380712259553233380243527420987091712076028870993452065339577956453238390664394329436821771172233214591756572659782248002319687396511501225695046274464100530435280084715802532092503854408014433311967208098384120151971920586518175418444460199368611937309034487289360244173523967888426770745026083649999668072576845171106459934749992185578818490369508582919194552257063134793939174730443927181870725484173543462438527579925750105892899311263194359803613028745272228731236837383662545013276994022407025634316551198495430656506267008696307182225154547525343623628667792472239728093303240061983133716249849815685793186162598375315178247703831551159135801403467388021075505057859627936475615912519896274839813180532627173569983509628367268522700800968101976848887362640513343103710397187185945246798128934616000865488852377295749832367620410630617305221176362047007535653766895024207484487347277413979984836395949758928228982891068498168487921744781865748258443119324422936362903695739574559715158776937892532016391320110118592276779270688320670210911219150679124503935219614756518987351826100566714605884438738505649071640079690958491305272714779265531965774530539883630813432941315316200215853204065836137847955476641506201164922943082209061367378885101453147640179819285138038518636087531949318070669446263568963962548525576251795614785198160028604826806437917424449940309736315212787550819202814673877519531339016225518785627475880047976914611743180936073861855984191371376825238257877864406903904248911230184585059487583581804835408462708473894287083795997035754642866034934150170944904342758801668367158806603001802564372334969890679776363970606961581393053363708466029978864506329636003704121516884622445093391660083607233643206937157939773485610561855903726745408530564740016654768015142359430953464265404154275583207438703756455782291345743745950328463901994866049915626614350210312032011536433784004913275038109259264102924026834429255487168057479340691264426258326550337248068104479661777058249462481989119578736602294250397241594354067097993008683881439733790815155453635405815234210525713037352780587795619305506835597523775854171155040651869249481559042067481342377961029424720406749440285333094335177504983692862167516097491830631161870423402562117597796934877486054491188989328277926030338718458755001541611141121155960188785717761013370201877928810327165787868670244360932661753032352728833435312729312694472721719587299801466684830672962058472942285315650192437373252689450994667441891107260597272973190703700699657641012311692383318436267785328710122395672730915388298217763782639684982519588713360035147466424026039950937240889098353547193081737683916435658316122324654363583348633273179494856178915164702143240607416014627010033610441360223868078380956979773085498935378325224058672150433667551926543877536749708965014492371772533304155852268449031555862764513815112708686420460467803317271810616549251969406466328915677480642733807213427265512709860971512281657864853617146532333889898401019278938399322666249176201106691079578952906997754941800131650293891381610390436334454756939714705983927332492543522456554844678828523421180897286464259430659123083759000468389229507775781655398553398068906458224317072114699465566836441807443423588212736496397436224731646508930895043522515967193006729687141725392191357539510823183102613987255105689781481337006815065810504356531538491836774694745415927728005077276384985162429773530051736377434348880106439756064986068744353898867256432311351411116148510876630985412073738171562505069444033210061185146618820403512060832809063062323817410966737149822063809951845014269592289259542874993765650488549040409411462516831637145770246967219344605685314669966348862158038672245983372432400555386392951258434863207119789502861570897578349405840792041126686651984548871686731178985111931488094425951336395020034417815816351683007731748466025465004965742345118387009852238024268359887107022051907196063394963111184184766211246169743605830142899660686151198536684263318204333468745662680911240274382983537623315736613783442736669300705528934906413412904384962963365338411353699138785260536405530976505604475067577256475406270539267261344678610799309351124163763484217340371870441855843760734486977729584402593444737277710707673295147373906835590239804237936917987594378554249268395109324003027822635386952829087286787229858691277605336641016786936845157023699887579502805925826910619990015813364166641620875795608268328169509786824644481556023992572184963293135568796117601116313313717447287586771122903390100960107739539196835265406329575433731962292941681757643001594216332498726975334288111340289452649232470121430600956526327398664767303421043141660181053271635476747444995771880154375595940000800861695903365671735901265160864646336050423229323416418084033086999204880992906697467954402794442269644258329239750744428060170372868045238262375857365847959731261635120218925906275382747070368104041718583123332015580333979079714218283570215025947325091537275868019949095222158618204285675730710920083633565558405671005935272939612084948199885170117446244862045506244057013136469206030716891626633942127568052096548215320820948089847097885801037631301652788492378155228757372050853912254205617293848032935638087890557818701721497768683116196125297386454805833963780413273268849084147744613513240678886834205016627207819561585064393297899154737204019520626430210696930416023875832313628787687338326299064703425336504594341173994451769777994618482424996057940583085445471494348054259669185110346735364662700007309858774570685389296185528045253137956350387320750668104669513406535577882814172360923503917661312994087399912289419350989029566375106404509466347424497724196258159571920622944523686183635602675209792532700190736457227858833880728549637744817220188518826133620389021350252459304281951335973209384795256037745789693352708751850996608162556561774416365422536022013451403999092405833685763125153842654983940440585645639083727443728013524026034631333479064369931713276644842672095363397346468640195982535187795911873964866213168483214924480167125502050851471948014058314620938481678781389009305757585661326232582394819927527526174169024025913247955963518825537609521674853375865498009835979463057493411934147002213730970813254429091045876317038064476389779608069317094114235073820569234125441581205262343309646592447612958345520730656281625309016233190224976803705687937769829031098318478849225649391110581206852560862737707643497380434441653747890008499860701531142856409893930805733585651588633248951637739106981775179033440808343154148916689953373936525033941054689230599176188820413186468451220511258494230872771633755289308599732464356380339309383346942565695804091076777277132719698003128284690263646680317517682166476275480365680505427579403320242062198936551459899856289953080021082463738697291300620443374967461051875230495310059978925011795548764209166298406580132744718643216835096853146154168721761629042355950674773980477709912726264705235702205669758079269596532489404961981953332443817757047300605937643922539946034509232339846669028803479336915015147325973793427625902076326258425489101876316452580773438877268356568257129235738436105652415452037383513403359782172410113372647662182146062531833716476434517056883829485976916808348809710343514036645475292217597412193456378602339794340571682811823354918307094272275540497051844905110422669420687546790200098543288324882901627093906750043170223514141840487831267877728222761667581739373861465744066860788945349055194795091237388087678013390158909455465652010774078504981509638511337308650480641096872870591356409297442464552272925681629214764032540969543371936580524520883145704876084356826280586340851836972364301064080817230629878417588503664712984652160681209125091969743126981587116965761214934013026921371984599805438774090763118458090246388921131246081403000514319117232588002993067816687018513841534861126989348713613678933878940133582368575446332829130222510353990785658254855705279065841566746286043351975462782550857473089837171638989794837487852621102635225890879029126932892737302742764631188320380220702412280090986010471505614120333345447126843903295453126193586571983317134199836619099175814748112927449789832754600804639965299468976495104658558193977368242157079481153033089070044062577023907420439107294619485897153140158422291466125585778801416412405348289058919695295478870151627304179550768880980976909643690471391291059558726516639692986135877680963384167834042020289986136248045479923610049030721646629275677539163466360436202547821059297467267044474086500550319695493311218258824030514056596490645631968033337391100908538596205349210937037651832193767646219083268590882667674471203202731135786457713109142864914128080920836817204957992928495988106903303826019130789849938239354569636686483639058446665906352742921769019020163648856646393239898462923925425731549835706208080509040012156056259473352551457137390302727571287240440262237943577345114219529675141918868971736326743070438321139267008212387877396862978470155520843724739400990155075989194629885306561746774214318753770303520161305816550330457900348270543363073896420708572288447528248599008758308679873830195467614620425141018447927334810827040803467646356474200901392248453950571826575657708976602008627150608755509278614684009371895444404835449794667651212660556687902484480624402041588665968846506753274466297204472645762786579144129722394449664446264583464695803166526566252848298356920247310151669790084523258595187950469703710924122612354308485944778359734067709544709523293374143750108062124694923254050172965173082991483536723029933847273211659265895152118947824189426533927450701102301924775811702517132007513269984784946094425582238318820717233135811577739640392452156883711209604246455338422376319270487464457615572768640119479565118312562262867705445221419702454901697222245830555702617024081852543603783803166838688911052109879189709174753760937258130248442472169098634486074876111495488417723498320793174066944187169502939330840644750576195993982234229340416117464259328933687278095335448304245197595005067944965136484016037815898649516523185138381903278163874630167476356456566236850907016155770132201196396065552452975959936208471238156959319656132529492566469685991353870507304000263739998250902722458690238672739503045765428620564629191179780747802367808881712352319063511447259612304846847431050966611639364198664395856069912136034547647745088087073442583900870421552357496216926901647867443200935428612818924207497718845923618798523704284343383319657908292092976338993164524368348424087670739771926885103302081953505899849639013702057911688897009692409008936992781900043515762467131968710690366827611337891403019886295631783864160243475639727120362462515501022135037729383467634675319701928145634231317913983126336567732631194387818387671932503935951018253173091293421729856626284830360125792681488033666843278154456166560911952063350778759453949827000399880184314718814837918991717968345960130127339006880162064045071692229925823127528160630578958449030721004849853529609254981667660601858641500508537599989817090586710667108963446107729585285718123752790240706333783083796039944598042505643914134140263714045860468419894830901563480478314747104504482309403844184253325873264071905133302643381504112809471675147226050566680084177391899036267232656610152877496453144096637868007565843575581667685161912996964533835485827828346313835372496141737718354521603578433662168732472157318435638219918357030382790013697760676240378382482965280282433857733783055439732631867884088488042486850229105886165327015953556449538171713823956173981500711672839448781880573086979295348532674465722225887119193964118860514727243104506289916193074653807446362141928758053175298072791694682974420892974497408751922679109054965328212129180617206555402077218360951465621215003793666563214063826464419729564824196804804577859592003040284361195245910885227850004612214475673095746674226593408284271979894691663539244184410753653672744460757233582590805013812229248783767989382007662860371303596358957135396166268234607611901076720412249598396739659047720389264080716876703126507914864695617882502845573242010224598925383854567444573648860432625481382573230823277553475208022608336132568697741522562706000680640325277942634962939967499154966037305804923869467675000921896082884817547770661266498211537389157216753273687882262277609202753752740811555628413910446712384776760549543532477717337614976590475742059653631839489765862025261953791956891875499450204084030889151786310737189364740027505699570670883897977808061273487605562643232482737232054705217763383087243493158064047794083669764861042435796667458637026038691054168694739309188061811110563391255933082883356806652394915962612289756942700459810904443684173045563214931066311338985551780539492103051007035480553258065118907261471160845502783371288959709748945042797219710536951899620976565378716537571530111830937807046197370879454091834220882900570940121889639109781544798699393237752268887233948966530713476782605447976965683354654494762363161452982641649076251992146138044273410342013323852494562558805922126097137131709079547861110233367130639140715579405625576650816118393104282557018313798334867065894955982355229989008237519959613632061119416589105367681329835664204966255905460049274606682153078965380451423578675383644134561942292049285708205640642055832928240214059844953912654335949829460455301680281745212497344684119158273173522225492674306832716239817039976797155351817273666166596465741088108990261353138744350699095635033752929246962045212219913103553905306730861372942083157038711961318621692984919575977088646958989786667225675336363361403637149557173701339883845266037201896394919580621478518340116310465068256192388574903874576392902201712583281171887033257250772784012624644043553759314031802152990979151047075360764019156614042169177022620495323498694364350068213377766921248403398631490851375707452249332350565962022348127657353115242597161904360920296357874381326820166899606064056282805806607741359820830985698281801105243824118320260447897895008270665483964060503732309626555683300803436565500149564055524387683995469202856347651545925289897672488751820876546814182204621954330652382326732162167522331880045307231114398490192892150952350695138745383027667508155739991890776722941188069685492340130688496504214742919739616067027985129370538200398604777301560812150063594293322075391513160949309772968458348682541086714731202439853338615868190048527805749047747683355082283996569088842566414210383130079914077263405330901608475346868583016131432768195952650328289760880227618740554129151853221832653632479828381339607727877550095520087894650275577620738097130722966146012092074091960845186972745602587598905016944110665613630475761425383888342950734146170902922104227538298516118241819334183601711038093875294288120926239154326403744797284958077290418381459572176704154567690429102491357887156680671041756260771849779152262406631371897250228288257586699240243405941138727860073793913351048911967049035103442499841426238136854809846756774151398614965439723970090321561721894706849568414179831682729171956687369311725641798217271013298681288666292509294886972743249993205563384968661980879175964902379465229018195012884863186369912680842559289786572355949637812438356633086556883373201748710683402243165526821611465596597088994338366034171740913780339202962615996642741133234948680407718233714344315379532372923668496369401064593027453412191439712526693957341711021363743634635675523512970534639882450070162060432213481908206465760936596310179264879236007337793647407665604299858722221455447767968436084906534635059446161756322065112457253770994111871475343591893074258722740682378405733496978694749790342626432848746201367781648508493306850830033538638540798484691746193224879728053868090579658606016494322432494152544751573202770512692742144966097277136574803979381467264988318259464828723395971979550264183473408289694366266859076158666901762808269387428156138158781073649008660262751730014279337917419783368744422607397047495737972732372355288169085778689755872443250713324363001196804743702625339266006068006804382985033461941722236356114666379237454866162747967617360344824821552076095156344406032371628405076595102377897908138941586857090175025144788570331989924529177874637112280825640668347278430717569865067730799621828457850774537463462078808913076622318363130837419339656467896719798192745582736974226864618545130621396663652291101629172314643073700621394722624131557418175568542561129947626666369250986952965263186397516525995573941072532605124232306749101876617568320912179942557113397386009243463197344703251499028272743134769066441172437450381902834375283570360332600539804513897100513383438242971530881134303524069584294834495584367763018238624421295992168658510808787853636207296994208422414968320396884631676875913397782316476607182871290763594062563498509581398239111288284687726322864350648713205554580097299810127853466074134643717633376022000019598335037264170948442640405974158349147086390839348894002297725652791849526455142328311448457292552685151578273378628599834058824612174144518659946231573924123092877928949070436354556258268371502726891993929465363162685259949691504068003333812736934933574362455667919891630046927924917382601612937152462531943977915249324325983623594624684275640677200354473874924748862979356628197943717244660644421651424473527742774821656186947302471496717886401982101027688548528442710560473617171668478629393821211725336263895897375131270527841044694207861948023106171042606525860250698326068851222306206537909184954957156651070052074169858384250161867689712936897327210315757058443533875732797269433891393256620328604451949914371666252410654374570150412497332671514819265336233442225326453765192736860077419662992087289557334825383694723036651118064827009054335798923083895998471759574167977680506256778178578827221402872181045989881767130434864375941487635930509109626454785879325879522317821288354025395444404967123262468170394136102109666334019850203433065417534839998354644040017614497383758368050122339356187401444399093862594221921282764488010928655011664191645050468309943304088428629111857231737996739279214460759707943305366708045826224127026706556273329062173607721617439461246777450587587085491942529873838615064210375412802813026815273488656265062486522830757955538152805592787297331094501040424995148021811796818198926593872693575942788998301358161054148368572517854597739023122971862382373739870047866944691912616052624624079039994252107555512144935064025668812268413652998156293962177325821969552167609840891082002617552927234094001316016895421779063739368513638699079404351613759357244319008612682270247030495089416231316399481797560741344035645361246608467021386230326481484434113692234489644065738062098941676988478972475341351613228630614827849042255544816831270510318346018893358975970077283638121177237630665260360787742332926029807600817274325685897957438568311591750483730208705474319059992999181263200578613325643771079695311630439816697592050800377177073078007171706936366625598077637431093534874092177301898811507874616844284582078381087674491300166754111769098947689817364088973705203416058842726104555279102721020906173889928577905696972765145849395414144500366397547251650105727114536066194141214652209236230002020432673283917638025792781901647125173526995240781784076365687548670093378422195292340943413532159595099044611479837451415087486495444740836019062254806821478292845531768986733603231198576476816337525350127337439746220313788457793925497198854075672169611404258508576579766592670548900837896378973666135193421478812011966613387877066876352921106201605186172231799657798175164593525381823931110789697937230635934342613571015446650430957520599131138565880291473993557169045074069969873486880914939089768460473370973662285235516641555983122572951327144943553227124649230532272882172757672232160873241839509056627570410835789359968974462435830972042569234611694084054992680892385320598331854670904877523634141927522454906682519856933518941157615027574030353751163052429338520542872279250181427040204660157366367710183193168515714987560705983357155505871962128906312165031486656207619246786166783692612712589007559015086392352054007512741071691300565516566125776939483369263254653284218439461981768029561606228791071752924628844507656081223832004339668509928269017193351632729488674937059539986722002025685287829054530817311219547201264370579008077715132611118257636916879486992402876282613143549788993548255015197822932026836789719923159438131791578334366367268598721502480058209546555357309033798518842259888573054849290394310852338556943324234825571648290311927138609593209683706233239352811353687418894183407252166855661716710560457432958021801599953231050452699010325133304638237821565293105753279468884877372735153551310980289695820877907339808417440242683918196175611426604050129455541416012420824851629098318715052589447578925271945355877031555090969370542365818142041340112550605427318352964220656106756965386017330815676031288677255249200214845482538493145708764052994273694325875329641709579531273842925103820506101193967212259827719042191201267740599088640819558538750221003455421944510927745299359996458527320566940649989344863871450132575409962293750337060446314346624651589933507083653529872073880417342499005605701143269052675270150014194946191401640370708259903179962594771759647219161458368654310169694656775126191236868086471435960948194290418594844031427214225748321961863046364569496939589409049651590877005277877717514948414073030703530172356648201502453623867182239802971327140392596197217497624528679120463002635956487033692977727452347407268760878198129001041745915289728597105887999665697352703108538461741600865176313655298769505794428257165246205963367238112123203629110968504659602613895339138399193011755525021440571844565787378588430625713222843297133827827649235695829518754463408732697498796224204785153582552458663783944304999869379690682156962720042327152882940709334706976645284271106814434235018740623452154755943735263564440467499489809087889608375390918472687921359007004378876349482340347932666503199065736736298295739523926713682620707287136696204049920586752778538840245413359893577734545650304302400816446175333214902241279609535625592821165523658130354170508436543648799033849019157329772915177092066113022913218190649242997328278095656261846634131031512178092920474036203645442159951957984321741858193268023782066049313138609538712941099889499361985622155204327359437878621073195128634069303142502371018995666315113163420076230925085553290174772137580506952383165610774861854345770942888833483736642957465146152411083200066498129507280224370456446412427811436225796891914903228716916596544411168874926358592027068869896617823336091461770479080910206438494404027691319880648586217926663384119721376316228000648514061721917698057473437917496490485722955496120887184359497014250999133065449435897653919257463334717096149062429511465645503090384226440016695569858940366033210714700893849585509190257044038183754921649003790447882620298839990735945982623278037223324785524856007350537681391891142382562289263728057081084437410587002090805572655028722031798220097676102281935377372351483994201633103234418049794426937046650505767183796343226684955549236470815687532942578627497149128620287303600029926954544205134595638976457941426829340197486598885366824523820424524132575846480898453004387695308845918695849417371819958123705889491777003379047937782052699668095752483206158064543810784533877553986210605678557584521503223591948695342936827344458832207846610900799121297415014081294608721273049008018609638508519887282617809331706689076429914104979257793743160529357810343399584299443450324820265024796211599697452169244485710387074036746888203935759331775671606458058558306601507360758236901546370664967509587955297321859787118089621821859493767279215775729747441060034118092052368987050038845580295278286564173682385541356728080962722335726265152576596866981910188763328907373242596518491307417116135289501178193180157428276417455174571651654564158103300272449028242184224147464578670110628304744568981714943148440607047474192524963475093987991701072003505188193833917779002723881470842586284684558714568748057809840187998722053204175473720273837027717773632995826303283232848573533910947134075275673871838753142067506182561855164111973292918006397703975238292884570544381659777691182886734255202202802700258162484266885375215674725203076637343477184661970387597805477107193151184968816672149620580790947078243414067877401488473613892853091892953645971520690698054055958284855734742151844631989379351526346385787353792848448835043877140542755576924762923773313033070169405850512202566287178322990237246929792295034189817669067907562029789873171790258262482226425168155106054237293170871033428629720308420231370686662232879391766648898694887196451608983259821633077525783480786613050197976461171707412685949329002515336010971814434809451000539774703914867735084230329579596025020166586237305095115534005879015978330123925072916795363314979415726341345069211647520545364045625273630752077600252684877744360030173511898764864292920305967447923548272173165239606777820291197792708210394553994306581920639483032471828658903168662833712702871825263538957368372380277992374616301010969006742066621471215545727644067352218777510592877260668635423083723740300657593451428199499702306683710192613161465058583698295993057990212114889141628880489884490027823054678507741390113994645742869775174112453173343859933190141170220369194332647922891270579692279624935978216946063757028303742219987974254592945580283610395244069229074334057436041847029662194266813207849773301680067218198100498340296559070927470392853628134976820778151722038110788300783190759628656949917766694127790725286262721256588789933508451784271816862563635775041107088522445535927960092666773963993394665077782214288762616736806891511411543618865313749040825429585940264443822456095268466422365149190370823397751909049004127875315406548532765297974944813035498125443658743042356350002847054371894626620924464902995729834379213445590480954970877187598375088662835009001095955569072178240861714419189567280027627026137859094534080647406639948783463758914280202253319055678916792456482126516499354228963185974097903874895062380802467854153812839956682953930109244612675774432538736013083759179550184135394275689963903098555727705420578601328754842507754330063536594474783559539832690766145151299311278056711799957001894362516504620381447840036287988753983719906149458073934469443418792215118501783764438241781384518296339884248155292672994097038862635117293095242379610784780838010815620754922513483527494770072488606530830090868125419268998345194816493464420662899737658072859800522724528328609548798198334426047353828319659088645713191079934051953180459226979589902736316133433930950470236013096433826768071109752967788889561875306264877381089704261414370898216921428276215574968479316439022631080065321963956961473594815100820873739790167230932330954842289502357118768617239328913201443444692638916369349727574188240366978448176059713023394467301031864243031644749418992003769122107897878635306960537634256470591525546554997172910391409168975720495852787782716861587737509279750102740415511221679722610864628484505567704338642094254507479584340473275723309407588566400638918372096958586348317148168287919959708195002064907329486477864863574104625355727946968646686010535560080909755815995454279172364196658908769340316656949237069002286752446111431580146779267855708291641450162041536616690198607401516371750324810343863816204903361055303352711276389159952331684860103004653885817075558863343169739732320420949436439997606452458450766856754439339260470614515263489510889545284092282109190021497272625230929745636858489994215146410042694501906460404096453070611571989653629110141851958491606701485045739325823840965993845356789705725473564180543565576515192344607167002490185627874962143316769007079837111188475858567487002842682647649277668623413983294005133821441991468632015370093106770309299021637503753059333653575380552422571742269292585761766827909188707112702656948444590695295980805890051428405368707888718958692891569773094196544708291243382097064261900170347023703678307880720402851703708090404115869292441140292203658233376643463062188241047120715745809791758916630164152082362117815045400341652438291548284955978434971876722159436872218614342150605052777324387292847290454139799235577151960442018489055442860768366228587273420013574667646844804750915942490216705258270950260379018819466188035358061853435428394757784312953947260770151952921747112749745305646438617265352501039555285797649105642376302423776123694419486455644439231438138030666538835735482940753185216170235460988575120989653538670275869448938302516455310195949996836062358098368852456102051952092730965667253395706040763410407035728657316455241699812074230080798210785779585729455216820896757637591931003241195252572678468699605728994989203017240417317917308002363405286133536784691836403190467706601876037065347435014936636371785878576067381149698118334610197971122163999593711950711524163183295872212518171172559912033681237182499253482787364075325676493906887054120598956441291685194528997371232193802577792883130368946570285838514825669055214233318524636115743580890798703802418870232389346653450862373748056939055796339123003282481555514606078762668626993645516803617968262469076539482415712802875863050662432517686902160687338759814498761404730846161867480526576599342480179009911259841809724242356836853397062589788607250799164686709368216881877124170189083627174834883006725306738053194102664823811672900598117988169181077114039902421291329921803903742807584555421550351973281350824255544625834699306966110826303606311088962912108942329309511506674170095921317566793860406535085024495818551611133134934682014428081789548435161437499837904524395748662004953506482318140085601836105254160960390613119325574805121745318588421628480244346936251963629997474283660357423355798976532070889173239670442280320121666472099292255126488688270474910656085938250520900964071536040140555562945069991526141486203519011104139068014480733945751884736554860648733214571863660501942355549745742893346220938471751490113939695872650790351374816988971710105034057328196532583241123899289786646754271159188399640961318383045416906534490710971659492203270555621064426377445824691074452538502202908330609215864303067190263767654914451245290228864779128614397994236466973120662282069603631838532641959232792789572218760602682681238211978358004909403748736671496302863782455713669973907717072861516505243808812139796153107688450168491063050213923069536340069154994444209238634953428195039557652573275432007609384381768917953335714240804633930902620603639150947114374464685387281710133279953469155820129771985894009713976161925494580874035693061809645340621666164589795899350241167230623947684138447840357774546689250625618173565693573168039475772104188791424741574133053338401437066835388177534450737116151570995613083599929854756572628858798375355343866383708248876532594395187168487766172613908394550942052523948690695368476762309450438368928716046966542660351249287340062181555045876807722318932777256714808253548537818809257841323892521143194927640144567826090451645743312770727898746595716207723684776088812383950787414835179410142365989165584354231621661841914421164238590046313234389750690923945921327839654108783686965904447945898945818555856088470748666091693475868934109092002852147211853177279358749939011495130495451638019897468326716095313815412688492691542205269120809544630637876789540382016828849083817471169556597770380398960989185407604578275254822977172055990341646569276487343229505462786520444341089154437886325007380282686689592038082243000048581692724406551433105541730599830937346237635741224565752717387609864709228080797285684003108299365449907937777187559661526622320808249203282295857216949816099052727292852391763113385767220767775416263212686925544415089074376754870571296956387671816323866388692771032388817662016681301759106918895767370741376542079030002780635523152139101553035984715357887267058229053558788292449794855400519098231810664567190280977527027399135938757030026259435150636618415847966567427997630141760241834903506239375787471844852913258875324495663597849499400149193899587819371202006430408457180313193610701256936239543298700139600664122995724873464550607223700971117122507465558020558218164133558493564435652083825371812171790913286734495100144677905498837411572292044291773268526618217658058313883504351436588017511904758851461529864615046608807487238030926671618800508600257137289742954650604551360892865098275485186361582002765904678458865041368888055664544736757040306863349091453458888861713332060304877519974557223049752313213658701048551240100511761360546383750805975947653179346718283277842450833057090726798982832429521556059640299389390374867930532504225378530817258838849142216360315764971433135541408754723637335811032105135870566963476540351589899027377319315072550895475290095012392997230712356282543859065984678123889404059218434784016547537150578403118704279457397904897272840734182140576220275336295544593302428587197781968509627660179107753157663456035875974739074936720292672617401513251331245192946233975677911617334529863692697679028074229512313352132366968936325467521318419584285915886014532395431888661303454351559093999965709945923734334996506230456550579026568362996887961089474115775181480814078987793931169565989289215298134926802597880012623509859441923666791359768990532958566495250914444636359093426577550082419261788042383187872627366014243983906883531490402694930718216108193570661431180315397720456886368892304303608209740269028248756752085975772085352522362042389491234799032305958206593272927611045553019465334514300068015760835524400142445520718225840586998744261453403747160859493621552804006182872900029397268845035343833897233648831816689794583934836902543562183647011043511997830876107028006056993849153968409197345890897579863730752715437976906507019292896069907440863048665211282519303905480324205460942542142984685389555121274817403116947637991874922978345118996997665335039108120568800924721284722681916224937054428488121834641011451263534508658576241517905071870593512247277124690302278684747924296774389150637281563072564065770319170173081798384323859344016301933723406302720764243578460990022546574778720906575538547124609489588099403288075698033049385611694733449535529596168251202991249793996583347568668347548546825193829461217838417630171190220629544137253704737847015789252558318743333163225282637827386567123645432969807083156472032065785465501501068436988257626308346426472500617190649214788482985307449512076651966110648162124924300681453500110824413132735024954812971364723489623784710181305661529311312724345142150246717971553123743994450406539609029435153362561084864311995305184094858315009328335260170799806347214353175240947658583543462064042918178528811273388671550527505354310210137603866976362526733017570602379129581949170527187005258598498159209730191958306978309359016919211336302913410832315466500197150203757922020608496604825997671441901101327123898731594959691925077459554798553259471245404022931422101112170908151963025728113339144029653914504886764577065243306614197879854730040581432814465989018732357058318353480641935554521725657667186339102085652377068438532794191143822910349441551940817801787927206043270359001763017593176728898611262817588350637055138873042982260498554427651775098351070756028448651894117444671270696613020852394436226826390808878991407330336969051222049062505459535735176238145148157693749669683235538774392805457064268462337010901182756547231398565621220993650770152538549639478375694170597610778660379482935197435769368233906624219411019595373771721463159906476144375434032197160536022735692113093295253774096126488125851620466306158057941321346648668717387281255161019498110511295616692359312774812894270602764622419575722913148834320509023606632323065333849594101456296587619024912276758309938159527061498955103565562766499665223548699270416515459592175265393459026839343033416537547463390605166043374186357769196115513566934942170338749828944271032720160512799626079601862222249925965823467131839705915710062159200027598337404817992460041591672850597957404376834613870603610378831983564420962377293236921523641851552082992348594889361869240342990153270593196046987105297666207905620067828221216777086358068370721832012496262730077360989953186530173153280498939779339835769497032543125218805483779910367426735585760538730436327859643840936246782282181225469344575426164357291438717014691166671414929607364586582652753347079766415695807602286627022250749391053964932174264016786176652008622270714276381987485818676883363449378373295341876954252059586554552235686206431885705955938441419533770545342229273683644768212435184142262555557203900806609820985700897332287807324726710963871092964735549755204781334384476971243072210903030734121954616521996362541588702856605926164961136282893579573147838907577768820657304803709239150069264939935354954073824982027177652669894669986715555654322524745670448510318153842767562560246527269313285005586116264141298211880054408043299437020591704415778372980003378679867590009410307692731403492321767019173839795577385134944173250771071654539544019510229950238847199212742323711085791813688234567895147696788194768987044431681863549916051910978645543873755930441819343433998528095833958600948166102037258599546652775461046203522822875363994085358168685230687178854954597930895791808176433683560156905509252090172610221475183894779587816648143997340824157356429965527269817260669477167839535586868236773119246818002383008317103834804390783869895118795478290714115397835451022383869612735790794987706553038162546363995857610129154144590998302943521663623050211832187823763673119004547348885086413157835987900927254042672642718794630047915467552009546367447341066398383383118893759411218332737916223236917281913080008423494717583946756504077332600344113537883275883479031974097277385123408316718341179669097459953551010704100398846338473671996880565346249335889763261689630158940493350324656245556030923330100527298579330499715047108587481170298384761902059980811889030515628855849076763963293266593808021193791645244765330642073266675537821167403456974859618048329768911155616174710036217271095043095342920071023337492613561413838422087955803006293910447645307870391072308751282154294035419411882649639402847186128160541613430048641740385853685066246661736714596695057091660708398765050784559638144562441435548035007055834540109151130218392215792690136684098424267333078280448131766037006759099771317320801403921544294514006589412972489876110142747614656531670702137832339652837856297666150416158040337584349081652554760961187709326401010417023271114151306062424552046235647852247902612078148679788228139120931843912125789421225496300238784857210299115304869814780549739850772177655863770231591326648724502001513881102415384394422921384360040885664293418258490844247222644864389209978142032028976770378057904763267535887569974794674385667047013811731781929771153565746635283127266132328911992136738631557742909173578783387614826619644674532731703382082485398396981066092755402872556044802610364770508805802894644619284997612446557336853198783381060539212187602859308363800734723743682665906500243554671826577951807976261621682589731913746048729562775214941844210324104353892581629715518454135693467403529854255226001882942031751799057572145117466418194869503323157985036226928550506615176079512658636249555985697819427281469137525660967279591775035051397972759879835707880527355464800976724846629623469916525312010038357410211162359246586320677659649858546832779657256006111760468593022389852322878907268219290830585619164761049400230413561995184157556598866261370220280345036125941470483648235581094029027221819047791107865563390685890896929524506279332881547672558251943773100314567903821361136380771797374171625626418864957034323653737297545113848895596443815483947855080256817855261712127783705688980250392674023456752250602862602171975464671202168317684056866549373350113083475293849936991403604352309802411472461068283372157950623038663002626581701582747921727262958725669623908212269367300200327495035031649008430182910447945033358276484601605056394609942567014264344197935853042856524062140904313616497186127982196816994387885828920508887584619168742707387520031683751746886061116984920124745266076883526676766570311913339917727031619517952576190993466167252041458140109745153252407047255742392759164028604581631879607427490786541585603216009271421247310248125794349914986517716302285557379424964419438738426059575278458646315515107121483784720519123016846170272728744792680496176254111475459396427607735442471891041156739549841878954315882504117353118491003935319811745713625010845343646726280061858697154402914708814725741777792775026955626221571441638614304930909717137508800257454058154570916537445575373252741638146233840618546592470344438222047910007388424374149180353994621833977363564128221744332339673633580694919165467314787340983840819469843587583509566468864660605313269597164809231431897041960679339929598648945234381112877409065095704055554970430036941488271913345390005363527978864334695422207527618085187920796270132076676556832208390135797471121403599293029143269033469350811827637902110172446236191548474775340587908559649210403819149604539481869622471583442966166660715965473513284689153177942148204968863752101574090285490111578688694343694078479995067811592551967298089966471198035695018655856448747448592384749664012618801244285302138596929639657658757675005637738810043216957042382097694366783294470032979906882457645214906558619934881546542695513253185138679501370272447083156714618576155540770256950885342727526535307438369232290370555673336205290567537424708680140182082279203311471853882480805137376257322639018668906325163372394779816121099542484909802394155002626614935243291875590719460362166029290221179497595045904155756116228590511322368226538332080538091406495096596257591853742652673135638467514012311671844339762569619816494971131488025493020917670376313638544911180709949180183561635190425971573858676588051505438138804634608357896755822104495900316721222139946686622019187403478849841907530528062476301047408652040857745364476374481854666747769766551351975529545004720162845785020924910697342864280118354194437866276985680950314602788618840344883291653905077803468136191554791057035724064880191499084014718128972045913502912638864815049911333257471147845484272123234461259496703277515672983056406438488706990045932451546935322247500410779865148495984966376175213397656492224625163726043159978104160114962499118976468465651594154490748246769725520755823081213037829138164363538036836501557144069416897725030690264167846180685885515394700542897386583250866699921240356363901102685065519567052205897682307725250511261287700402504850358184029605286587691661423678927792872456237933592762120660334612819105083698306382199893328595178568840639219080055292607194729844050793272761788826184785079994028291380060792863838610626011405519416059958958914305734278836092337846726267408836706275050632005636531033997956307907720852444955453629463560520918544904752537113238452472871513228080167763834390640942775528708941308435951614323277686821709152283184059347483922369684468239445509970418171943485164512364375472397385173355342016251898113279724457038354859775662174642161888500262816315586662982469596976414267965830379251910741844141507274210838660344624032423828321752486689662227092284071027459360624058099382170953534568988215791976120257460235259982236520278406868066256754729074405708023059183486252061068526748137127225317967193752848460177975186937974384211775993315205364931045892753396164718969555185436020653539219028189489758891939177750679283622101943062776562451292547440335824388486236279435478853345291008791219846108560413426385206123669749781296255487645291386235734917915960089408251108120466265202515432896309295273369951400148773505366218320771218298078190206006431807887831573293760184421576257764872972901212823493021754881880245139108764779803104946044226583868464819532300050369888759475142205258500474769818330417016515601568176051927324075458279884579803796059535467101406521119289089111633477779768211110128980491082842534492106028103297192114117327271865585705999230800235531680556751648130288763862389134422311903354942418532487934865050521379425334520957929626273017756366284518997439280451042800634935876227770499465402207306765534541716592520767213356427038830003803148669147803651756100375099727507550277441124686689638697707550117106115316590120276959645078547491163874933720038361816272043649672122128764800026169481454131742269420097588032829147540602991785010687815208805905184720342206777895353286522997005223308915812068904662377823780252695004175967724186840992799598587006018067834970336926243778185962839795176239200237915376520211501484107978635733595081590484942686194474945283877909537210116304206789158044702149146088439600306147918524646695337581400762206331741438427942361100182361317445953065538166552375354122973699966569214319390244122695416940597010932513202503749918759981700961200925406894569262369771630829036946979695737884837062687893401837984293606729325754346111851827529042793474762104838839806080871094797431583518011189315347863493772913798992396341536716547001650842724511699458605497669516863343153134356766759652939158584248309675354464825569538233834539960127442057902308824422388017082049179782289208614154601393341496053538940622957044752246375001908864213332252688137133515439859424086605761668754256746584695469170362463210300773776295389935088787155772358001158439062804864755110580760659703559621735846846681153340806059637472711986858193792335841708546661336527017856782941970388981113201361879047665840343301844382061468786027721487976877932190083231760777700312823671916048238036117620396672449663797152420415825558243745926972147234536108611514564351631834780231558120401246171770541761046595612230351390074492100222573036798168827570793921555328127079321339941750213951587172027900061182240642204258781523743509362533607678623306953185486690852985298801305056260964240253438809668986162099169368922626101575328387871626423530136093269528026667131630570534505581509913347113034023309106950638806167005678128344277652494730813776641364827971228622849723866070853250441818264836126116421136169819171579907265505328723724022095061642367236262979395490752860284303460635054682646692003218252516360677093917182128693620551869243516606060710470305009560632554527248237729712918175967346348425231143085352532304689542295363086035897441516248814450263046828452498168720351525779774177995448542298474244967545174162543828148171893314913177010486428059690352420778949746581595758368486133153726493944871557884397781296122547158463431324197596946052695953107285776774556839267818824637279185300819810805711370543332725751454433442074681446060178079452487090549657198072624927031404050092799922288479329798835569059422152956249198959321591562987757363200820211457060822492578818183902405281410152518958022445644461795464544473554754888477295657870260814484352868928526257616298149346457046832713901027870624610754166565818050903663306427705126461496044071861420656593391066382989548450297886260499804933149868450461493184505806633480654754716997223149668001477942857721638185811921603287469825362196493223729695082526345456163316405130500822385887922964439718922118443727140358098719328791686643130404136531423634117134973719495123275860966095798411038578532905473923736525964168245047531671834223935411744901485424928015953588772179652170514648933909831559235954755121885080645075411528910044318073271059491275518733025107458589318055765074559549273811393946169612938064758489892854787839840577476945224958663037558506037750287554187221933411440270890271489975425645538490927626919736919292977923087754824264430613284262904736385035433242045754184540970599432094303717961457380353460382478564347394243133619045485434457412891037716422030388737405086955908782565957627840695132995688981857769249949903678424727497846564883827852171290774391024042265502692425010110974031341513583803460844041075594662656189922550110975498371689328660135359698455146198347037472172829184966890064409320016440096556428818241435902451279501723066612089622426880447163908681568732535091091091244882437838887295754866760511480695360098331371977738370726276946860898151915260597635441759196287502311086063909591229197547052008221111767146754126573617344933300290546637886942918367822255701499757982225099321719986057898174077503051951701095277546635929456101655123888231307179553533554852544475607466566117522750933079566902895087057554574107170600231241518655397137465093522461644611012612289714134760739910239953261916050619752101583057262318106600864589009658797367300362847593133922880026366486576959203655820899479007887439826952682405520827857417581964301198491175171793085879083617223528452673093580474386352219295337665061031471010529992749158507640302897332862738293215871296206126121450089007785816931936138946871561990951952436100271782131849671332767988825232944247344648939455249629542337494653658947737447916816215044474993455206342130815855957187015765973543568698025389196818635714368553823595371190431572596981681096001182146928959277509414444323724147331604682147903975505160305148175702866810152189700120798694526100420848122855598509713626465983625522069960459111231991287121433213117783792174338837713376758873278470245235782224320095521913688157730752439733192837288494244431403392025563723884314437685353103045589378387451910369125396055783187821262061752442179304995779521856057578947967931544245590552531069920921557589211988592216065616696108739701252350980922296310811132098368253089301376254520984105076343430673747970792312395585877009618205327653383091772755459106111565320609939857837989665253108101299596786455689808349532970270225084920116177653661175338040886296376666126517049530981850710149428509394723103956777727553605099011969494941113772032448556833144924329765716631999110381789782772877192536458102571655042839818323513159278190776183750168285421751210098721954843247678993264836904045003016429557020040189643275962270392947778775059840755124290555494855076514675755834599784327269917045339393960791947978318246408761233332318215137626562319065271517846927268738421075681323458701262649691264803676678171209062938751485281741541325064942887877365707365879472378214939948775330364443426785472749806804282112216124996681640806353982637059018823533026175955099544201323249341058654121956070741751558135492679646553430268207289140042443405979494365452873995209311528559398636166800538506116952522709407616865300386859943169537660224148967697023321557623619621467132954875050713447336994730107444509918016091044998766528066837158645474770710290322242215837454107544158097659185510259945542557370531992209803852198385875710259146453145731102024475914130996967802390312432430438620322534307509044743181428491809608002531366101138839503464842294584854655675218689508916413637245197948259464683417439239819900259794629264135119486942440511941376555763058350580140522479561531758572209153142950364285547361023113788561484545686865849397525977604878151283030165416741935433744382456479914556603977243325643581547591886326340264725414082448103976652626908487549714868441699433734741696954917294017373827238089588724825713213599731061409754643722715229452220477297556395865327210349556178259141755543188950996161976758304361742590138736854002254194883027485804372048360560001676963100018370118957323001248553886082262365419591489470881240885415889673731045915709465841538054496453551085998356918099200762963616736157363853102633259588917051521002758739619733610821656026256020672990399072389360777088832417620485899031871979955753453499692607370026960604429857300779791831949839982588842256487686018611549791019759218337094296066746555060830123525877276315089470161673795784558814833909421565017934479895438326596613983008803857917752054939228906230164886385251133714800910304514959036590947600510474066709921767776124868550110889553311660802987828893794320835072491493809464091665900086040753663892738275058030302665833753469645612413582447358143311816478249189365156140600342453006102626846461024812061882156989968177453624080723706719853665418692825363793044071189346789835376581196136356189779379175786969352013455381980388471981077973118605450725142690643599700309474061503721045796573536469060907929083959361102821112740222573634116142578918230205729069459246302886361685396624161037634486043462064490314992460987731344650747606501792653035431985494492224763190537806190504925622398267730622973023373198664141490187452706857586059881413743428999660707542343110770038959742027278658715967269613181267016595915111722720286460310588485947867175778639222759136844187244895839997505772909656692767531263849708575869256699281568740578811131970423744464046870634834204419520691758926525592737592891650998374676338921677115481258033458297918842703563138710288496225074608798990204890494466594096558938747261730714093886561775096064797190221209807604982490770583435259240490657820839069402543559412424593944254831546962136671052631927597274457565840841738557143674759873257489073767954188049260673527479068296822412548197511680654448935091879249602008092952641388973404934109745533414426009601881695742682152280047095277548956987062537048307196121324607919903880930587052918884904781474014658318476192404905536361763518990898656532951799705333133801302620127925554019134989912304064569670908395686448399171474578526054213616300510214989868687887782554096587947192961620542031707718487850750145024559300848596157537530765856699325276350636811099321760293349957037836477699642154099131820105499110355292610510773798031080006704171452159122021066990270616046288546303526464990879046953679777387114859466571291169787324893914889747436106639284689302670843841770797264001965144363993211052785048915611084385615040977278580952935304665371172764017121876028252352361419186503202807260062071243853546788530831462620654388332318027917172210504044949622765285774235308884576177593054988956691940786062065366034484912554925040238588701100933950709133794624471225122242154093686922635486131821964715056490409081143217047336315285248954755843563350070783350041061717436793276412774852278938194079252807807266843902545053049265991132546582426498562821477275130843118862107308876670047762966452997223812725162977140483777043728190101225899906320204654411559865798082151635515854061623605054128229199839946247351919028491660768262907432589217814016110536421113532300785937822766009011572147433536667569887452999217916759333611415879550685164949090115880258009813172962367057356988874211657137287538985572809022082896534347679772926697163887902481632879851592400200464990621174320696668745386492515017517390292392268310624022981047253376435112991332733396788824540354913699925376312178415904582080348496883318854719144351794403050712018697137969108908632179820075588004958191136556482985982597972737637133727753993690150512767706732566589116031761963517298032959781458264658780405869304913115996551512287458665951001904006641981545906042632508464312193164204122666295809524485254561047566898834494833447272546903437340084047618487078765317968624766317799414631985864174190549173786217493641039317767751607206666616121547966794532924511286325399614161155595223653503319552617242123552216696680957185743989843299076782367665365291304466164317801310328862245582028868515726480286755639810948368192753864327955763156340554879219374632413790654845579772842529066960405034198926556065530074866026501224422511485919105948460890042681695613366404983337938460889564742479590154434820745818198300213228242476964173700859293642339051125739779079668691978556371509576972426868895586482828130545371897737508691233388198237204742840986669718300794795923376327162060130023984868091173450530325884060931789480167885732963126372361069842783549981263553352691781229665967257675654316528892049519228938771168413737206272461606314165623683710372653613352064296971991523351959874561962757539778098728070513541554879973975409629622075758209975912113853358231781811128888282630116480065013195272366446689562934555454795670054698040496158833009345207202101461611449081833055654887248560798395941419082077768948498388160726749965163589077606420850435826049125153870459077282799089711324210669125562819339523956367585480272625943988020248492508057495676281591477505014362089398329033830695200254306807163323358760394725811671712378663659933299895651659526664897685988670412517975191098194779978839511475759397133467649218654186495182554045174483120892354235935673720183254049210983942697527429704924336198476299510090038029397102691331214227213480043505008916407391336031027967989316104333161306376249612140846088230480754813836597964608224575360302385558735108733693657216427571723062066768942352549838321281651189140884918827608359755611500047012138166939852073508288608636076301633075695821849721413275855938431197080439889282245856682051209158014439751573133244729036989566199119738414083586593705275596620397473368931615706951187394628293011835402248045347405001662905628041635485324924203909742353338209211453488415975605928733742635835398678262491813704482670361704543937635351518619872666445822920248975774265929209974639921241687455723548298706435116170733219124729627931560386769521639036769327938783293424567068206767535365631749576843228391256138176839998569552427156267337022760581769848189706300015110401167575370031408315681265392360994364350804846801422934560375245888333507383021933630416949226642046935847711321569574072143089807456224430768132957811545638966645042357228954746865668004699220886756695586463389110597310025855660304381209847725146677749620485704912249858588599930628207391418103383926635448267027734048118201824085302407863125773532583448050180078589554890123043717658758783241471339341750502515790261128680224283988941875877709176213009520312147378846163223998205007109738547358388509285167009853892600284609373755530214412197908516640197405471028756295959646505757411763654862035555764614511341127280339626521376071422031031434643095546446935146260358575256969868481493650485494341461433137127258944218680655563780321098665158054489125568055381599401005725095932492716933845742270622235380515217221538940768520316171018728016558127559286675415448241235166846338892703589797228965665778982186588353936150127335788693918697084527532560578620111243707662836065764933941061674217051916697937014991355968955442605517689700188162847617917757616288897652506229386438339662044175949974735313791233545818841573085814312650595785429726272789198770104961410332809058818935559852187844259965342299529962891160149888469620076973615803372027014908162679652527118318022380884623542848700512173947913174142439627747290070019112580102029433604239155468870679315931804096949338490335639826269089704023250640081104253089478419768336878322268571960627082613263261293505693337584533734342349335588267709165190017439366017817306643521151816610861025768881519343477489670390775511761885707765656873605118200616079417361886361772675255117075988446776832948839522077101185864510828070707810884083545941740165704000215180083568303541749501866749310237138054075373648403033506566258627530910520232889993377338325390269267128743217181005693056101974421622455678375148921282857534874380939527751417450380519460800476984855211821948256955359428147941456189784873213234438125560031689927873253536372748610606397172504580153671549507182692820600105268799170259814203120581762051425256621234507239180075453771361261720439065404421575821370045063760727019414139718681208658988788795242575121783861797135589598607132203310549275584764057203017177111989325865667642388917543743984862752926288396579663619103827060445567966559405045527938725576606723464963740487884036881214792901721485752409509199662120601389555229533188436136468971577872576597586079794092672674620191909761829928961326936053213108651259659658717135802078474785998213669089005101188866616966151338694889963713800189612936098256288818211400682404995331731091839586650225483936357866873178249920573105592191529547940646423502085306107541233673635262888156906287589562330631372364412446149942610548775033316969275980079017462070889933327360515051209003496373509121632394663926865018106402199140390657536482213782532812307830806963940588823588969265259843459929955470436291521095427593508695920770449963004499434698269666433572060218185214197745993471635537119709467054620636893923938118367654531121641708263624933366915883096348764980848162399143590151744388693168459250828078558937559792582767021463600356183816030785324564580893512590547554202230744112508177933295027518327647284227314286462591424366872446000632885460707201582296715074654876116230417855814982355262377801045509874005054194894135049574867945710598073135253140387146216023990679469261770014067589702452417983212751654017011497723069005421078528319424838996566565165636612226387622460782929282260802906447158652567259845698646012700127995928499250502847234557001717656569446793814909848713411843129173451780785436531335382066926314097743217838188226461416305067424244150507974598207630588453398797866505662706170425846573107691095980674254082902763525861736637001240897488196838261620922758224619875285716246390284325236116736894327486365028705732506625851977659133100991488183727401705591605159946164881460695382800652208018842338394413980973279395959397473791627443159052003606026534173953048788508436337938035596121870143943505424656014386921996443810648692381710160685272685731093761417150288612830767576681225913965051851584560511871186947382297105779772721781486333380990935509073530341670109099370362852638311892446005949693084724263241478362452402843022183561730725424445367239081055663840099899649321603620507974129396239605186871277996669070062564834672564435618629394848539682895350332593921536439851661924713560546952002324699513891030013229526412613569651749883008389711036088714729029306341603495539597495235617336142172986291344889539687745603940253728015340028168925689662039306738290977292210878690336475165074449184703446787313880117218846447263817275101340504648912310718540082655218686394399193646683087001561261424052895534268734143861963087997750559550581683643821876330651000092126583380399053704404836142720518466534048986866263647730013360639217627069017781375125029251401947338754861344795638849855363526635682297380836893330080777791475160081589374384721763965979709709658517067797664748209873010015058284379623841391706388172795434461903955227590428774420734568988509551634203836148533328793845209661942300984888344801001710861236149134339354127718054259766737136681947236955048821648984927167583574062770423822183730558382651870340099440454676807956532910078436646413986270989949168642449674761132865473818508755092231058790868476073522081761062917430144290830689061324982200593551774687327850801630493240834849768418640792197933737446698217510957540098241230584917153883711990457538157544496002900218456820291357316400926503127978188250150539322399495013184250941082593913505300678802621317356141632241662665816811285400862389478376146026677340111971046515077867860570087212336111231005631329787479362169758782778101195996564808511097129407827219608750607926285779732430966778562314780041805672487033451079905515296269947167660735958051715660850879714209229774050666557656084839468534731394544046343047959046476522383356576462755418709647327240766407551351196317111210948963838249709894257003873590937788588818175896018089270006228237561687545562473856475311768015548408537465845083809924116385506456215415164072884667505331670142405138098146966847264672707515397393875033814860699331707063604562235979838062382785114828062072549475471550383210914139136220843088572153099275718125465346491799408581193708296377264037746593188905636493775358813661745620599879500549863378139454133117797489628849740506771233309725470880907794003567307140957302009279978634817786270763945355735536964434034224166075175427015252126345111290531433803535859819242474125038279769413332529776362126027526694046627150948185379785324592819813967303118216654140911474246514106862181019674479585897037581550748697922883793517282100310566146863412277964939777149238646422904807038176636300675264382776565232966299415677252092681930143029483547060556422536306946858726467778197039958005418940944927613517840900745101909557248353148038502285002465196898197804326403183770110098951531843283979056860981748102833814759780673291900281444201041505408439295554614209071387705046815093767509801631222176635590141221651787517880473522086561128587355017530838113997085723787546336500543971633424720126311735253270045629197181290125481858969923207021885656736819237620830827861269520951694737805303622492602184612000829613039226799666065485512535044855192987082437489336167237540302118465907824165471447930037966693715237542234457621994920024333798486300084909485878952797079059300764945046252836826867379826217289138697169466224906386446339476840124121789857626094295059774612737443474981751278504466271281479072683987134807048296687471979017061183867832415279559322003603905950446520614072281047833903006734158522683732499763687414016680129440877653409649397623283732403109543485756808149084092588317271809979709107904288266430833011199957454459537467102466118533048293000149437036815712139075012711529656413352908612840911363865121821778537644413876068997733115666932605685850709731507312010657903556722991869294203943731387471907410577460157049287520665704970055108108194850404785634472172995854175454190612377362901415405114408394851451662116025679582752327776937748099035379882420704337569476491607012846505301492578616552789211683927745225936491369303577934010558542308551273950985230813977274656588669687662681918709290380637911094148862676980160999400562501779955969846536800264487482840366968640818963892853784019458379191475620254255653347986006885405040836929041989871846582597660684130397735874286870831806058440799610024036653781565961874365219564854605215262092195584238790977795962763790234858664963880937206747882958391964484853202217842091908922062395616883526149560808012899978806307374998046953610971267107860425443660703102478241460762890632398736190273003096340416898077252138338826244485280568076579602760384567672738271382307269421819388966984587693915745991592202400748822386100959376076335971367488082999680423715181954438105266419536326281613904298272519704483147043664758195064869888832731982806018676316527039737903186034009654312311989362959560813161485450010100183716333510990428066538859111092106014801948546667567587706230726229264601452875815596143279884239193467035388354341484225114358468924923112105426037081041813627113986003574152536697536898015174169795162081128944346660727704958550193969664320087976707795226477434734060864980964400318402721352123420604422031000041198655561097451460267907927745040001086429463666861505252627429387109995638183518059195963784527701108072072157696110826338514634256195552332967314884292607558217820938212462937149407868260794330849331746068467368759296174446541507694920928296226327334375045764629896032639983389780398795006236304633443377228543732194007180993124601931404664668184920318593389771048715786322509872227251113177549812918543135505784794218121941765605944640486224695608139254348404627922313872472765077954404826911782028566590655403560249322050056243347708576342438959115893358011974002121368020490995303649007388148650628889725400625160237341624024852927721421000313992635430848931512440491791866675980004303805579903318295369117052710209934794490828091818530086816926111269711863956786351339250506068867577179348099448935646391961292408540422549089278523749038519645872574806057163235819137911711757433732399092843815390322560241657041553761440611115229095662595184020840298066878307942757356890027490351439790209419039807776445644591123432131883846726707876317344299662877183116163289720194022454562999263654396270612814423890933640194677526871207775533738270268133766175451984968585671758613397278197342413332910577873574096105652142950652699163353404737636102249906326678734498193635130509250807130502532445816517954984900390666442484189963867011102118969684046390660727687258970695928640705685381155044045530932830338219709149797342546028001093993064459826591675321947003457370536333837509754318570556345668278466618543589958362416755646333645619627385643254798650662876339766954739195887525781768455041554768245335952720045880644943185687504004739988579175861533976298239707152884468978504426809965412377479505673603993674846992184800326972001326125298138124924681038221884335987564576215969053884858721942436091790458466357229687045201508326752320560300171160535036739585880624402415433613647086465686386078754139593162609844606769415495679011039030509653080987167038706644736816733320398786538477388008378028886658471067317658245500158634216335750090602279756582647117385048975946705319012029719051197358018747644355912115302370162069495705446700403838974545096603468212469953567996920789389435429553256723141371079604374947430108173491491678382010882075589934750955661307800665699856188861793100659395569720387596309328834659431554794650720820777060714413724978274365457274099129162031547313529476598637451243875822932958360555140510178084865065415638177497826711047378028716946898051593896667556970314180764440830644017667889651381143267464496492009981811135184805179515157283146927220080952069323074174593697691978602380399935641889268874321410698318610233428167836314172995641766346449054117638181527000134352636104426229707212860887578756716422031428862564974986659548426946503225343959793536582194368580321647847654884204265288499416036104351913490504663291199376959668008672388612529612846822840206497356403258424041492875451756217386641087304748419106891108503704181761130359171528154089709162525820232329564527490366557556665686749800800545119338284565440959864016089616556167220444102835676138880583621545790761693172139526530507491236786845661283141034171698185896491594370525977473573207669436324613560194840129623357620459018484580905748127200851942863352793260674264636549073246959935513796731748467407226623859373279741864556506437260001230411824443844406086879849934723626382522338291480250093342399614115761049541172343090204736755428962820136245900265176517635405077291868920006086533886209756519424511852336216394458873280106192326414121258042684882875452736577036813508026972980359070324631046319724778768804920554247139471576570121970810885733909753741847425026105463485334546251636791676582902553686866004839426123673209779231370283709341593551575375632443003745943001156658423178469171633653215385241242064996172665288749055386724357412046705790662069494187382520964247984580456596149054623057018305372198464551842297411257993381347093047164598897689403470143123109038517780179006005836405520731156474088263593191428737392988121007909377006471972344727664179803348498382812219799598270377851792720146860998060575669829568521014604484006531544947997449231572863850390885087495071196776750472635183678458993626859896426321542574420304471179481993134907977170556152413113391256641736643817039947500594760855065570443345362266300613853284120214223609167946909267680677871763693698919300375798461086562192638402471632451152423071622480763863694200928004531192997121659518047450065595750038767262259594053785207613834581746242455369072176767332109800665235413443346457794518988373518269242689184232916300942865652264024277522752677634696459378487157894708580409152773736734503157375335970761011273657508975399884101916251103865363534979695873450436331564396144760647710668296896819603927441837525090441451383219623488156533340885183630774340154753262036970162846155278335640496196302349186044064975356836026066312821402887571377719679821329324168748003513707216292103199751681880495768611247723511862013563098523939135328957302576890531752000476136591734488224006209164071199347628765523170004081953298833004343404164622512502303877489321736002929003920679350934776091679614112647636791724187343275078554964958960390927250148374967902812999661409771113893229838349292633143047067785521113121406476240040456871225566255392569396673285020359854241166882093220449805337533627268932986245547742999529479522267885282934218787882276197786580721546220032270046367736962888324929872642313766354450722642183001311130605285331592213247355530929246494312969112477846069767361699479323300665984510478269483041830802230817464163661693113775345074746250876749569745239742958142951332484798049384373260013695105389451263408897571147169423129022054822684878439775027436683709210132915531165273132822224528177281357916796847159035071129477191980688546928403247230866882222576819517511536366678943432622468816372571633013394618568076683267790679050444816058020629721886446935794429008463833304966262109703569880128837481939731505943253950033815167611708066787171813862464600468407303777965657685004656104239410831957759172524570082113873613282232857875197519292391570373787344771539553129728986840670945882480097462724239817240656209507395717310825352236974388400864702956141329119170030920342795355918612857519203224205810680244385219031290481013518210603497023976554867618113126683296398984383547809511070092552901401014847037129970326966455457564288286179282507911744822714577742143090056470459061511270433364553696984690247880999859053273181508238907084612196939814846415206490456217926390835432641375590984689730612624011569465636773879657672723948801111567490584722693010002803461010151867093475052214522873488060253436413163543584510048110439860022635185153278295964937368851435146762551977969538696189936812403814085618554790899677321303559029836974190378975125418597511385422887021158602129258608350477483569383184703062260621233762946400642334595904834616753862055042376923665027171138029859894145543894935779828159725178715207633535613427362030335337005954692648292962957142651146818120143529840319740899302468454459377179266465871453914868686121078561909969668047620689576499993216967015829386648952277729669383347231754849354895974470171695962977398303975731800132782621990986449801251478082399799080974400954727194337605512058496197487486908086474853237783118988058880324306805853883830520830551680554410523270809084436585066680778039477569178635698780468597216542309945535297142296110061524334169105721185830968495525776253710057504837001124079105412582119650277885739120475879986331105425117443926566444333549670212368474126459591643957709088244051464832169294496184070144849321099799034417999739133497646488918814409977491194437557858622275566211596762300360804155821602442679499434226725630613158590675727164281106117531464697691631683121843236645311900705993489396392936735530712876508999039697913794972222123312128328638904086476459109741644171063275394021577113163226253108206791456787724155697339914088795257289013533605085000657413088433539917067717118674447877287431458877499576228781627930534535756520300562531921162672708689821820354962624803499268229105918184613585977344415807175860248833048706929482701508263845340742065472592889163667633389109309439043348027229180598323684775014994030485643579621701821111915722639085493961294144803601374625711767609270604614310009227742783044444104419476050375461160143720229622976479357920939329032882095405477878603133107465282943264369070770742315360765193248078493672984376594129295379491650514005466992321089753764423457142069412003347338500495665323515736653742668333438605076230443794250224102197487195126034565329834279953165072817271255362473925245752513019309431530049948850225866403723958560045845212659345608333530317702288316764060702842729845988867325787295382599657180666032480884283067093800785879977509769695451793850792095665684386261119664529022045652730675840443736284006318169353469225881075311260693473236162860400705429258659084795946409879801252514904525714300444494012103554921382512693385603203771230175951402388250385115364605315519755079344931740936130712004447673313470833513775193776006577798520649466560682796102018553047985642032007523209614144506975538753494790410547311189645322086587297455821710429627082912606365511908971963680739023402779641328119603185034691142645165527693073401305290867906009095755281110417936826013141119900905600886712989152119992984452345787104713785615730180484690786966302053539918126780638814249654364296315693376628025319505451451302401536319010918651825673612677893643177278977055576002422200909257009221586875920544042163968488166719608567787206741514453117148762639469886324184581116456667373497701600333142195895471540756525389877057874448353563840308356478790735540264698025360260782155503647022091807954587904156379956640189846932354708225841945258821867423863398443399211841257390008478202629316062428231609768977379051299754466676737945997076518279462972483873065978728130260337500794629357078856216424185092198313204459105205608992479936937035852482616259746065344341456453338592385321204063934544520279118672926879871754375691695516676393039666853199271191248943555900504518662799469993375653696913405115360413572774014948026599685219202559303138546571969863854806991921276837029836187420629227197780567399148171420949013699179127136263269959559739850357289173406135109890352988289226412786950664594825113112845892134890923735982340897619213518506445549438688037512923940424559367769437519908454143485300328555484465403567913128700857488947613801457509831272356332583843235334486823436902852586523644404456880742586571675427286083384653566239289359091807450006495004578277396439039175380485224940095471011358957549123785929590143438529524670809040563969994873619282894153460162447735733322252473933863567786708631593080868279337103450273626594680315940914385109462911195360394979471250948584588858566912564083617602319705943036942500363540804322156979724522346945597471436280875440941669183435913226058795216568024187501628858678184397222337243374300466582136681496381706266744249088178406111402628783138789980064516602954242726755184701114461698596257582734054686382368717455626604930633123363757648359723727632781612065972676316697639100796359112321566373388893735719418849847835318722440241916735378679997878410505223216147073546983345873872420797928457158846742753684728183867396244834183192533836262523622699598828749644396742556141036848172943108006803673232756367436519963433072939439422852484831813343831811027054244896208495963449784504546938838826504597751577841435057907366505905914774972913551276430302242140397501292568054313479672554011341705837941157832947294520351407587250513441247623800123170445560888991681358363032166322175620921335789638412701888686841951493777373200526774138004618856793456248753717186548303728490113975162266431845297330945165385295522954320608620025802430090544746876382305500872748536713341683989279198614105626203289085836490585549621372456117484708896561050692046107600072289113891793865722796364560599364428072788378351911516696484493729797475026669540293143760616522676516649708140892065279748776275022635007763336053231293392959440731557213522227974983103487102320439059630412546533156806790402888027965903986080076911690456019912669192727470195824605755564330220347525450134502099077233742497939504204449893764234182607231103416251845366138777402380942594699664802389629040255828501757736404402693011267138049704278632810354806216118315207920606939823384122767283740680599728220995133456472734458661726565206958671574487634251063991365147279437856806199231130804708945361395924257841721879060557137276045113310285501644353080756156595968574735173093776043889354236951770657134417384510884085765709452349236075402029291004532854163411047707064028450432498382860237319519845330682786904482569186360566544897776190402574354443353253088599927201652120006123657661687289160061274160042875982396163708339570985779362711014703832078083433330484085457934807452423132210983684692993753593005006909268714741649811383654059399625181132271018657837910876148777184091961736549793463549938392927313038547908197740174980218464712601085081459904510193216480382450261117055380050282905037058968708717106999745236017212102786584250251905004292229968065620538594752250887908673766363579507585642460830713915098359285276760167771501835847380983564168460624458510710969129029368240749160128935662979709447656172615060953154957213014635602223879899428252746926350583126973805141871735967559298591191725089039439913908106470073440490626023365057410335071015444835426768055308421592323357530786546369864456878551665852305354073109237158596339657333823778525525968514156696119718863565565555165769775665930819974059440492177246131239340334870692772037647367010739942612186042490633665712867539096104432814340630989410645588291402051755063244486092027669201598990719527957887169245672633045898093371618193311002540362877114579363368281440324003653344094836139128852824336076055689264729216221205839133430230997506674698522995857399097240783928070630016301184666620873754288182649616591996902792790575481078472409608869517734373551814804975515479821716248909474331276918842322870739124516560270193580007689411691260330139392609056248352685188592887220043034275837330663671063252853876630373777195517099231568421923906973988695355221830283908265606051917569748130776326819470423180326818858123176191583742319867061821906006394198884377412725354480538471010192687468471513878330263668085084809151710331060252569016454902838078866143534335741444266045577545005944288990036420077771676156354142875858842842771819637330153747457518564999332832995458614031529825321206199909400681755253093662128978654164289507532250060916084336402360850387531467067169808986301187592691969238718045797129991609132379752510977277853538579452224869521622114236553181491148059855275541079707558165897325770659497768467647062200263116775566221194162527359095141557708457974173314481413368656185636746263961727366318114297797336700667314337521609128941023276197275842808005106548839250658896397343272902070636469017131920846118607158880228842167352967445714058213736230072122191815461755182497134337327108735070833214926996939438961148774296189806253300025127547198683162331472903135146100503074657480152401790619760368628956463914198363577871925347837832336678263561541445706105918486686644017362827646940379254939930696479624428773844742540028991735145814316159571336174840169050054865815433697162258322594161343734358552945379408425008340851929214748466954237055275377731888062267087711404591685612900075573500586064484034625574013003187764946476969158599091165387897554590222802418657476087104225003222122053773846973025969990216163401055840374987354855026734350426184978110117456696273129721035548212121106798845669035636831959643718820309466256051543766035838938264068643017948020210842634065218507274995510766303418727929234069392962927577531153863876832703639021698678714442275397095394965247732517441114430926559722662373652986353018774575200179619618202157278884438064210024516557929727668108562634719450083907706203104983311362009639864102795353476339231975933675739755600971388697876610567861875937053425565999969927458998207811081395723556521249467172090064143257461322230897762010479616025545223043828846030328491208684679273158094639773232887898694854976295961170120429502649327998258953778405426005713907957757461439507368491982379671001541527680473599418115385203023380602410489787453180221514072190376963188927482529443084897938934255213613618132481745209438924232499181248002256450660759644259012803054880249416805367367692699730970150346930807756857157283232613839011249433057290412363568770956336319618568012570760500342886846006638212451086079177538806280274923608188614444238854370739227812905054254032358788483134766017769827610178205487649637639047657042518825516702774820905634247781551425372667569113203000284415793576568894141776653535891385120679000156095773969211571873175718360589042885302906745917609012865098386205151672286481842302101861276725477480964845147549783436972543635344166779357083337561096409805232587537626261868770964759510940417063625729475948210803280561994634232425307981989655679998226954517153022537963652467084226728245346559044216865600903842127329115527731427802977969659025508071309351404290036312581049648235552868480412647488155649510812108130113135868423088174672273533993945966183578877984450987679889747645373739068464076880522932828664054083952153430114062253209814782105484076595400388083664773289523766936507951159607738226914757638043522658953915179745116240100780873356212723160649264598612436893426482124698917752696756565692667241728803395612728780737410233785935464191406187738620780264017348550480870699253459854067709725856245448062543804053328598263842634649601115712729999408764809614041082474041667297884167944953654246348080401859585688066770891207789840573611832251007031581081234964103387772793911754148265201095658364011017657131132143332257248501039986405671860149934599205271954728619995103023569234485885373841736487831039813712328226458346628422315197101003037080429156930470784757364880277916236877250234184824900683085134061401761645058651818269783205643027179172803328129319972793987725908974093237791275429445893772832868000887863259957341005613053364403012924041945874470275011567365207179102319170987198033959823595126476678276948396857687588097652232247820226442969800505294574400778802456030769768741512643238881087006342908146530745310176616963417086653152843345795339149458527014423033268986633979849237420753556637057667216160662608531996441422869352999996129448005299754134924367849254673726279993452782351597177901413318836208561191884435101235573285035675261540295615899578801330568955337266971726004527086285613332602314259895710151712563343014193956675521200140341819674413595298970323717988507083764360305601786812115708059435649091519035019728451194940236827162100328648374733701557003799048281284522252491004331328623248329924469109841864910959080015708770352051240659469060956244352432777397249150894875341020134280196383785235916431807933670445137578247363291613350490386614545567277570724256317777635329630163702478378998893559032031462919791727583831593625051632881665523875846502193314882565489449295576508464112204793610510256612608991932083565613225912790277526230325436593312546822090179680675036453654596336837637808701981770098872505186353672756599832172401846803868813904171555344159208562297420726612641435783016931157546992659975072494280340947998087255622473563031084135674530663513365252708821435744110978596392322174864028469214347898592992439661640632060460532447074932047976473099264197030158066796945827088351224764820932832762222940606338659933140058891699663353682395776210085897659472175680323480954535122515393252460862882217104570947705119257566910552912478208254778151069813955448235865178113944241829761290841886520998188783852663498096485338063602341830451803271908861656093684637974182099770254144605624965401567754746601296200727571151712747437411097181016554475280750403828227103475084722322948599961364486086670110472954514678317521796773708766621956787643921895054121337262875655955735226292741401065949280944906017493425752619887131354841306741206313773227170798725193861031142414295094124107934824913392058251392754106151885561622990486200220428060588638107142463899214782242754248436726503904828568781342260034284243525033321186570627847300507603306793729080303411441906685300755938225421053589570861688958450270412829973970075959132073193503574996958080254646061412824571739723368446340347352622471283184451092567501657376575429756450396745077607224415836049545613198487980948666654462342156870398381421678396173311202759191022523815884491404916309722984373776215040464849758604919585977933234567247078791466226814589329479486356471818581978661305758796564085797027888368489938996871872515574914463486619466663293180587112458886327771692468368792484123465073525256045472194402840200689687883248459972446387831570709886714531490193595527170411912159178143188488060155586958517079565221463375916464673718566767168041959280703026525413267383127845321526550682194472150509878672587739190930315322344138853184887178680232048126511963964338508918737889346327766871914872489678609137408972713313805771355355563406183164865704774156030150786509595071193789332079119215130778975274184077174178365268824757156321624332692337164024342480192252545361994604427220918581568567663572679573039481788213339252798727948890568360355453238747679554811251704901146749092312349064230499406462324087769879657547080667063143009813670094241969546714635465748456812787364396077407900625118603888830216176825132263893044174637764910222957261448285121747462937206256936291301669512025617536786360304679872187782545649180774649891356066397051227980204460081957078956222124976343442722214798523685696971243055070834789941766570764341268950485884652726166055446492787224594539704387658842178765755371976313040852078631925135900493036777733330666777544818922876701288621509386914773526404948471094382654929899897663926590717615898728989181858555891793459227967676140794850268709916379287351468815441025767080209906286067192511637829882052098902725188072702815077843179122908347537336059187773242811207880741079504189968136211022621790817757398776849890108601136819492510980127588107808017498744194081085336841140055258468574066455691351870740391538271659510438511909655192281898816935662854590612865068953693476185510548643609390152713767414397193185676130747696767102075125421899811918916845669699465085449886622372417496520050963285268435224688238545340313774497347316974913086131969708180716990451842810799218783920921155534557766992130715951149755341713968646078544913388138261769652193316522995218650665831626820002272572637865173145781227946230022687362990121956556752292058863416243506148946639870128426001918857153066773095954042574644024075507135458789423808062087308755873019568539853218484961763035852450125590673183014847430448621527029895418371824912946619718246555404898787225735189704939629475314716698880264336587490191401651226456358039433795352705777697411815502281574558731079749973886588530264978501645493263631614458613404297026671509579174638711884153291686711579405464224490970089297531756346651941130863848015100040452880604989422887632224498318133401319206006497770956250917864910172456704015011836805877558607715995888262919308066602611907850687337239804760267607101572543429269190002012459697219946316993045381213676563682126285342722273353376323622576989630741951868613683068680126765230961078124430034065226781795519433534557190218123922927169039393710702020217654970735050002818018223767428374707190283437084304546151734891762397677735185671998789281591254036906046820864372746237873678077972268343339396592106725765568288622714908105051879302019051147281406577951916415859466230383991616893410518186230521368771065059900370334532555201530406823265646426964041356604203909493459948437566779882988078780068329459316528543138707135253574286987459223547142732599088294577330558845321650779494064303517381946163955913539416666111344749956819286418874059867176128072751830458555510786373440175745823055863370024584241508443808076953510061519676061231884772421639051573087319490490197870971586956990528314834420512944297447364099641929682040383892432854773736957962392982993035444588950211294197436390876796225673417136600090848610222376840436100079815799742060675945660360545392629927614963289928723483905915072576134365999866087684883768489561256914608317413405924038777663881482943127017276315619651160875825161719862800275493090370005224805567012239076205248008593092659438947861782841177812494241654870008824081128439937975159420698270568987833524472031478913683111911722204364356693763204133189860755299917698708553275714921537955556852712676066746438970625159335669100218081575897918551884212043999575997910683434912654575160331260058689938861847220273001622163411915796809719500786069930889108567641484796544999154123341744800938875861071031567239061985773490885998933283371933345660238644955119107755911569747631929313579893509409329760541047043400385623059436287620891762077469352083805331904133367247732872937795593818692117340240522299573705785824355297982303354350868276426943704766385000251124790250864845560825185199670343110241227405435867435681649277555222728767610491822876282224995358407984796620125469139472884461397343449039252513576187789325500766644009287424785420363822039537308331028651881011568812962422518530409907495366746188930152893301922199943023735724780415490764285496899193267522395548296515685861114056181779531701622993134207026531200532905550018893007441697350023254139021708404267259407892239745309842107737722121069573352818916537937950254488040257248471909931744908002745505908032974116303876884504307563639259195702161488625094027136829732313060491712076857410102754010374881338105135939149460127357937714779850870986372964970839229141588131206098613375976405522372509688816091029482222853086320328986974699947901977852361831310071786827020245033167781377073030292828833810055634127147388349864762501970956966163328692110637293913062046170671914986949192939821426616977434178525642446504621502191895943779233604077741387707904399338671049083047557903708447161761714471983010261179683566927268632306342328402218747542691646455479350832071654967980090983785199987761457579790398215311424654985229746510577363391894872475700469434319350526765330015696854856608941355865626893487312084989230308096255155938260072476395431373790578582490674833588460368677866299927658201561917828319687340433730494491857318536119475250044350785481197971081108619913010168823060991189198747857869631952463365608757126075035908116710139723812841319825022051629056976148302747098802785376794447838389432245642449533592171261255603377830676030993577408797359863211359236942906031568077575574281266497305576950917663539043818854063968191305133784047611022860890278515080399006854318157658156747282742327973301797589736056184981003949618754398015660744014095604358543202183737306749406141099931342150284362341700573038027651506691020273420028071407435082951313508191814911541247268616178042482188754688990989288300767347180299347891042297329817965972946193314787388910624235104295199975579730204104008234749654737032417652261180424428770511520065557265534275410581589305257921802216376190709935869093723189836800771673703438178424466427518679212042525921336663595909043784842116047523706203754556661201263356036868755781441614698946579194073273872144170906124235224244159276428220511755474605595103236354788024140361531279951467320464139090961157770572373772928538874633886122374328579514242716940728025739973143625344443182864811409972293344615696189848842977384059823572249311446217094106815001906316055066849211668501341997608145249884804308202014656028323955978447199491368818438934266586125261998799198824214220017504918305703102802745080653474091456192325080212966731322505331837680089033685084734211870424905443105637763800451362406354539807438924990528038664736356964601021905588894993329017847261030092621059999182949057633988856486862177847968685770754913070322612606375870011580832353179342707906900406485325465333447342581023049674747582037843739571249834448234066053289234431155377279079675610779192695409483566587758150587619419030402083230242377997091937410691756637175164064549622196159009282016205064823830254642468251438357745507536533316739422621927876982035718252921898130917890161559563985482270812059644540102813183948698839731439594970169495422454816729569442983016310454880660252282912932120308348559491043745330344505956303908266141507901181620881917237896857575724996669915306033352470704363019059173420547835958457398543695820896840071135903332935850538398855512277450007832178564754503691979113705681779013955000290624606195393702068146375393672327567127068856218085297849452468507395131253980290283635370550545604790641164239707640684062397538674184543636575290123079583583200943171531141785277766692111404655757847163333160767970454508983349180492319203950167677433986798475592669889713751950536923576628549529701192801145376477926670740988441798842647148714512374708900639813432511206436159339742232037334425595135163220549257993496280666329179652651336422168693733148244023367652568825450151051275193156521227818659411794316187559529128862956170012654237815996411076431150557431402210752369953083180873321486586008366163579638026635354573247613675312400336748088614434794981392996282280568612017831131174206004456034160821013463995899551156093520256752896468714983202328173336832876262034647809220847623500805762560612809318851288950158493694293329226526685241453441943506090711252265469917341281977729721251906341379330476725693331070897629986804437232852457680957572741162799974185112218329622661581305788190541253287350594161318876764000772582692684211307365560902776012836722669677171433690184423530268611798410378733769100694623148408808499268786863817786524962836980333862313264892483872442419782625411066455222237316984408669206597131806419812763080841068400015883415229058992829587749976869203356200221749208035178289159270473112928775222293485271288997958631254413917553506403633688876389577529807568871605768700825003584377323869620886235017896215681356683085121104864098279563924292415392324019811102890428249198534721570175587415487846825665760359969885828227853561020539176824226335814391105227400315678745602535047992567976523828469185209667883136428960249598770124018282769256911383082092420598908864447213861373884013644271740370818308133071711401143980975785721160177657153471336275539696671400628143297391211128995827955667000890291605675951598005490749543307541455052050167119374404090402565277253315579236750155465108327104156823806626224599130539322209600354185660728808477081440366403991630698440827872068264185335577751250623647143077869833685141234680799910324101533353766353688785171459063816209222395434825929242052557844832088942451564377267015208669117807353538844162073776732884311113701633266733003842938992514220610449489227343812395276178527168800668636278986382511221326863122690554436389814816130767413726755038555841455995002567113416529808086883008861066741098630786053184706276333613594931057613625907513739284918485296433465530222083756352129273764927615613108554307976257049488061068971529128036711580357277127797292732861909083977568733889690662215837882589784884168895572017501011465823312975734246186600922433761017958241333187603399726877666545963188800713796254510592299159073177190886843707373483904781392164784792790735509281866242506087386973670968326837707166734255656363002897627058128614465912466708112978166424105653395515720633342409626983402920968027687180119446948145875045175981446121747988895901860856795549525708520148253676306017382459323851522595701558308851538411116754595172065822026532105325502212492976033180189660399988554559216537838082245784745288096352084015217829681614834025828661500863111998321113429608503564598899813891519218438267439363738246415586602001637205341885409592833517824454980423392768852670905716241955096788194609955460231692674657366682781796220237408907562171858889221885590893950519357404626152500577197390451722423852294796162166192638314041626809051724655395456324220536272245102308636946551214359163615758487350558176038912322012030509737299512092673738185887567413680188747958679805398949552539379454555215107189183960087723690361434987798027107470681961227897042610187347201813951115539483201408959762506924182517135649361369870555656748958123257931000671131086359965875206667212625198147501488409710156236990083888408466339780905742592136310544885273538796920044333945231179530738263295820771825345482715152643880931285053932535492218944410428408211159397538074580148911258588840326660122004923765044188877097702243916830559403006370414963383889579961340881860936889655529915691285419624466997416860687526345519226383186203272225462704917188615023934784468956561915667776819031596525309083363154132705928306418393437256795610455415981283668806766646032605133847811613989775540676848594407121163560502009751067762204878653965476586424846705649517659745087413749032226789562529070990861656526290082145060052492409715557667157526133016097259416023597094498656343000649467967133362115720345582529876866332953457230112932721289621660835215896483579146501027892608363739985325356855255153535483454941210164106476175894204914673477887989224901698290554222568112243290917680410935258580486945660616532980395144238208518710090115755411954279758124699365823263481978359006352819852235707756698836759176870490179278230154563778647982901563895201160447283555011270528952601484519734041251512812312337452275221676530034192257820954398612594031488351062190520928516860527976229929960040778652758893425044088128258292872473116974144608217929163063940725441114207588730055662658224518593062713746183716697485521015390228575870365291453651524931789397896990406359176812786548934349636121876891034028262941620781978467597989146169531450928777046801322318030452839864900680681092500040314255369124751218623686113794581274707129540450678602665091648721695471899332434585001238067939200643022376086916076913845282526104459523976382119272750148471592322326067467475674519381934251931333394207492260946306688101149859741560239607071857062889761456913543108858585475960538204276343543262496777507077218396665379912955629945591361939710845402573972226842847917356829298280569331612228158287076817947170389840367695767682652490459966167741138329614444437535561483670574216339695884927675677224988031221393524742349237294466510719965856780061409990433418270977351372511315571710357108373863775023383608180748041109270928858263793775796625670619641367110424892220420971351209228348236711674713535591139546899405179486575999303779806218849423757401541162564624110944264740654552929680469153682300588649950785234399267510064521156162744245266615097669006962487811388176812576601739236470198254514088579372910081664407580159175475914873081078966163345721292779772560000700078328473344209050259424418058778806030121386495998530093361321767587577654111697134038786859588685389607150894954745863382911739638216713397995817487118584905139135818023864622049586035322536915879317590272601620399817251461682731920763073088403394293466403510112076770952545407524939188253226085731208473284968233386756756395983568564736337154052314399537155256140918072967330535946586175731015856077520268082566189382652998958071789872467738989999546889785795350077711726174394079874862559796743345443591448883794400188463396887756333265868896185757419131382524645662084121381577256710300669974727881807557485651334882386642244867567195421626858633222301554546672564153300458227920298254919811982744396772908959496350793481741290140502308651772720488998882005805542792443809410985087811458555046675581219324814936131267262295578709384434190710450512986867324509547004029461093170135687095454556625206725407097364421542836932441888168511819673197095272190004702548029428173143453370089474335333070144534400288113495929455249005951535534485108981081367515049355304824389889981392407881597357719138410135049167119761736883533976588157406135160270458753956030244441397023460872878074487879970445868830675242233961255934177375626148616948737442223720221057761400600238712598263108692755306011282203963017935850764151261063114422853230119305167780554473606624913952771891365229878562852271736582528219233934925411628502274728560254690119614455307160159474020258115382596475041319610538135029182506163012899563718361071216033322620910094986602501532684646058030907125336245957802148667069603197222850360981783298603503892850771220981799722760513746575183241282746837949942667443980365388449892541129899346427626781229057550913619350828041978217866002722085471004539795444374578383099738564536260045781992225041777473734319936990819884123735710655744972979095909888441009175622912950535683753446540000324183174633593385894201689598903719849341145905922357610606596007820731990302771546646734754797003110982309951107574144412445496818589784505399335076416334678305139981740623284264902737477249842216796007414026569337322943449867147567619711449150398138672699574755846123726058075308850680315612248050006487584216784641113874462817680785743923308279050316476603106220278164846973893258777842953572431244327421661155262961119043830558790162763608454559606443989690906956085520643206989594199946206851142178291368466605097767904816018255764069141542973642434547913805691766226820446386083876251602272391889822319899847317620439869970452796904412980263988960957556531500309648971289786492613491947748403664956528340221710466931135125712056804609669162735350967004735143753095446349648397484772054120669742987415356320395257222375892447124577656464035894563446633126438952235809979957474056298316485834748156759407169367420197422834420192850820841254780166110765751656098225841988901080239926956365469135662965406324295249856025060090831262543120440128538746905103396920296842356689420005858228525828722445788298599056097641092258901556089682302737215432482023377563137916152981726327164889697091759439060495490449133051592953091088147272029134152986323829364718419208584462682342296624686801386520384189896047297346141135458050806368593202805044898318819254386102001868955650807560712328429314970670210546199288354938348181727378901571257316610586348889633299763360772445188155260152270024566250094436505651998870879353276955202873878130991055251914831613062149269964203840044973963666579227688789887574272033006384582628933208960781912888231011233479700995186316426482793524705202224648709480757577681972128090169726557529602223421810535560852299964623408453481659938593955304965622612491607814432603279064012392998678352438140353507093350912747792138639695074689493756730163173608103691330755407195232675306171229531048985119691586953452416377374319952331402850240157986928721287718870208083917866871366428327048539192693987942989566874507243707856968021934700280979432312228190389359252943584772204842359288693243286989561750998077491903433081527950036358616734976181997206544631599799093879168872275001026163249860621686288796533140706951848712206195343165673198542698807491449661979138297056546275224555494201331277652252434398092279917202411207855299192965963039279245919248891925932132259665905256602090464827079950057353314312250650738958089652796828218264762138573023644945094167805723847025857468173629617298693769351954800717727063011930734331623175287049357239866631624444783619305068400428623288653121312749527919821537864917291587054085180564636079284566598465481101336467723052368105958694940865346428679088731379497263194706399211525708069270598905851143417468447648518934561789335894227947554156587819751167758970205401198265524513398913016836492225127448228903337248777635544398280094167593265465165453980163333888573856509216083634241300099047821726500145401304998488142239259308887081854264799843048030771976104235785365270550887358451620506072340447495987367616183443897371118814565238074709780886587344008464435708968817730960749994752307944467765355252584630226586826351154551325221468837655124418176343070976651879391689673760774110716695261374031025186306469890117844773934377465567399249061646364113528384305868543240149528157707431816397219821247282198899125474211523741478257256236017199128089836168271367849352404255367486509638758584611893257519249735768057182017596887787304492583704022886057146356779256460550234682203429508447441003233198861942412286317146554827308763932921521648925142797232634466912553474810638433647571952409600547854834429498294323112795383339704592845204526823756620789805521765999793181645434550717956448496382233828820718617445536456727220294859577491401845070816462381577611015703421747767213102067119505951474753745189049031594936561931757162442189966569525564692631672403951359387234193397125063143728096810853461970772242428373365269492040454245126537874403762434132087345208326871634264799070997500971350069171040103235395406249287035937835706418884800086549106936214881090530671525116116267038873927174712769284994667020731265498799376585869793516002662515694618879961555299219541052895590439721178650262057494534842277003228019165967137776594191135642613967744736803960986324893379084004288115534510113771065347174618295916576286393548040968022166414569282606592694982940142352572346194709459345222632539787566908415683328229493842308103647725117577578434547550756203950267147089580376867290153185614942388661390155384104530002921522246032953502063512511555146106563352949228480485159569417265153402963105862437155291524080283621100387248452080684311623000571086634158929955976127319763838640597910470346266320395396091786936517372573601876184607444442410218666924135010278577683294571311608971692404134837607540072464996981089455968732564323885596576532851793533659903413191642025690688720578453045191933464909601823542631215926133821009327038725415122731456128354804402178930446756396252041820730438003561009860963341247350070857787034069463565585312395240828664842225760230654280603034735397529829618025944856146182461060663142149158903059906697659654530549340061618067749819878583520630738982787863020056559854785313670780370543508581398767058734966706636851956593367844222040830237920449078226333011727400674211680445775806046049598768387716096791131466686704382744631001161343834253095755699852779422821120520673504663517665236960201321990584935139741025661205300795942606457553261607232727093899460947456997946342037543951246107680907572825263962858679238392949891084559313653934786059219392276616226563124214005482192293321168550423111555304787323022756180590304651673571742537824678073024809411326244089816738718808616773329043048858880849831575427439821430226789193343134463877628903557670341562090824149275101053894771101967733442034369147956810300377624739130985330394445351431027008749472346062383365204801855119549186378121392693261591051473572156044958032598789961529788987405806343168603645263345712085974266823377641576179997804086115184998603723370335615175034070759014747357607510773787956987349355761532252471879914570474847413711181301448267555155773035854011194978120888494869489433694977950279187979363683127068699252811470224164102238346154872983568522015325513247681129872043400389582911058141731740799420927512917826856440163775913606912671138500939127139612609764385034751316559203546293413260144067510132244852332221745631894619347194000182229204257051442570088920889391306881585368894497060915931681828206077947480529497171417936681402905031944892835563727023826910540529097613312107471543123565022630698656116154918675739902111841159074150560895588247417895166938795507557840586932435547615514447004061212806075593074911879137074922001728394028453434349063997086546186135351086075607891949042430699735714060540904216538175849946366456789247260494197977141911805108730647975517291102143981799948725720152019098720203026827134235768916645677785529701227855577494661721747686389721790665239621601124420222719511606119870229545956334547379387981330968501125510295782726210645680046907217715239087081649050884154740504594025130708430489955521430914458710191289410447571946420993385570703854068202560982583874495716824547005059620382208320447790866920366212567026048016007910942475710556552218631314534888862892305099644860146202283337429294700387961569462996793753626347445149545645236123019014927828213867750231641164153026992215651085394124309985984981364652470042122029639521658694562919457569261509390466411257934907544845404145446999231751146702757582345043919727833423717581837216169003836381884554767802357895211169601275242972302787435537439882257441077409722820501244067055577352114090719224992783187469819595704604922730097642851355973507218556185654409027118585903224948763125126906410388031956315729888326774242014227904095691172050290287793243106671941578646052253968818173790394867911485138511873063428525440083675770385096566256259602526738556697949511853073825047651696201437654236937088302580386146915204315874619745712622665480120825839147085199167445940017827088667316006197264759765282746844904968412116494345086966750860092885110242430173006269031653053718937764328002899528364473693133468737530754357582327436932578323291942941669261921845955010375244495029398319044103196167035802266755753977916028262954586484336268854165660510187893974821783014785360280616193487760659724848330282481336877372201691497160111936085282244692209561264365965549225182052914337893426276977282253489415136571519752417945089592518214238009230292063280443515507921620923865263928604373393069642257916702348680288332820311791986960894846782076010275969609961113312355094253008075876755316545421997392001335155883717059993001138218759599336101838715424785076251926954093920630958361402496979562518588740940662550561659929671355708151472585188839557916805846493970583251174057954432969361511456268431690822797447332060104009518556425403587057013611848466721339257088317845302196580071028397233707563262398097307032711730263926140964198911896431831741310003557685790659519569163976587069292691038719907687309291480693503833758875273190451979556178547889441678754608404153783822432369879182650820593951719717385596897566920864088631426418570800882196847481718979222939688094112516597462285395952833149131799442638932503956508078750794593720655445139643939869871946871583072502404038520389911091746218656093584753969873779508979931317674207631886907415790542651470524375763603069663009721502721442192397536709629257510226190941414424335015608741481441861885442374325255767377093463566156583097082082503088980586597192438316299281736710335133682019432611795177087205940097887270366313353130558094820483241779687907053065478634068462790000530800619268270326651767007989417253643393281530114630807681486981769644154025868257478515521351885258170469387333583572082013810026237675289879318936638452493932407617442396035331065095302577789766979074656616536301375027764504969430367279979261002303416857217919679787950032674801728090743097783834470920751852873505585463869185319895571735558286424462182169025866976175044579256781254489186245843963063200139587653534513098868314837859180539887393369750532915075626183231182970724671491456754629782624231618489522847474487370553508973214234876441392331356672701629077559578793209627551404823718611366801145037061985292253017981035855383399765193525353041041539648430194720188967433401362018954670408847266343711144605079529840727144449977973110971814891325117879202968238960637648151279458606721895203343095522539817075090464378244214779912553375597606449982791673482756750730789107911857053213550231495195110671395112786622913924962464361018280860499704513784374057824790333335326267227495551140956080612511796133352499504615946436300921609972868577941461727181275009835851999008493681157786556667414242894513965838341815357551778106286727613278538158978625302330844184874179039441657277315393857343308493832433941341415684639217937227139042838960122992770572109575060854158087648141863046196997452704207979427634564000521920846110577552371042782875362107697445139484825357598836460440263572761724475607633457560263744601002094469199030828966747298084417444953567834271890088655277531975694802170548738581588253517358691217141487016433457550716662486733325795484368401946541034293463933551815711269286631056881017742471420436747817072066137812308438364439732539726713146101991483382758184802240564772648263526867308007096996915562962335443493191238515905101074428228767356777864464729286789550162943532843163334851332555692949833960522737952947546086297432115678897526835286842501827384268405383324031635492069093921273712349393368623740468731006871530300237419461353960558531969953384411859483574848536394741576437990581990971334191051188135366792951296765835150667508990154028743464290612411393481037184820006975759938261252490143243837679197194469190030365074214883617251648395309919213883063151602767784171833616922946535460508626479351664964650667075634158362960811090472515462800986032109435129268433158832828837395754712130028494489143766781741906865391360192657368502392226881560145591514838343059460544212489996172240118897624907742218161977554344057014272428719898153955850924007159789390600056590364462378592499910083833312034340530412027680801101625334854055214713634027680556823010799131943529112087062637923605380089736064468288243463575050306688464393909705694416207784549211699462825657741658131678989399249028476650525962887378043148727036613001517616650251873388847790259876793464973708747171564870149249890636798805184624895142828688036157587916025605765444464366734485874439806101755744500577978143141813192849971574261260949564055973545370842996249349015198933285769533506401799061153251790076366346994054002365578230868487370547521630787495384182011476961996928812482615207723187597699247263340089981643141656839054982296101515408513581598286217446838411257428238899192398878861521881656507402250459802927684060406576208215845404075116329805941661751051432250301657581152030761348136833276935384700848286999862522150548817307324532145704478651723429305403599701895104419354185289704182894624161333142172925173740281478084575717981529277968955470378233161267980882821832342139660016007096082682254278656612870903520912662342118451582309264120504610638159807689910201103411092405457230780531049640475982873112417693456563879170661553291075055514358863550805682810320398016752632729588000126979475322983771190270706286118244052352392057912903922029166684828994792516646916545424746467700990095458681507070363277911752682865068064332566868731746687261648712113816770624860660088274211765324111657378862406438480087944460738114276589996129110075020667713625103520094441907570955478040609942190447859148310236543703593909794627523882607378618954880452876112282644779644037370397888259516099199807825191978189019797125805531830786476345937685685554672557875471354921954749886558315519783617340183682279004264310819942996630188265527514533120726215323340692438473619297268632940909371840996239959650944665753613743696355322365284910832677684390485149466140605082291286663316449001134331840482911296281049306909070120403947004349560262096131782770969459842783855964996104779631093175595948525010973840254690752693632105222502469394326477050937127666463285350396269856255618753551082626917454827292261591664628584770077329334652041517187092984521302999283596223340286057190608279886302230466553116840499703468166069432723501595276395951437637412704622278136715553246000447013837591827695836837969261967028863913226470892787020502165773056165234576942354358355883465992341801747636291389559175733520724659505835719683033455840250163072548783789817238811060711731100525622806092672229335179437992503175081887754137619637122445521549945697032190803223182456882122396451979994696481556105104312624749939809237977767546675800919815036645850879665577277794043547496310460030825568214918667610023939720191342359972719295204314235693107168371260386865014041508144208614706018604851384294965603666295025815758136017854291930193280191926465499892051077730627982513492902406103993546253546741731848727582967973325604717993230825882440406201526410372815189709503312549270501085208972240397588830447467998527640222665124744026317977978426522421747868958843963295302667805346917114410731919229341878003791935535496944635049903978559021836234605318854263733287973186194563560504235137892710218735327521479637960010023879892260245263626778259050856351527537179204884656857507256916955556189206506969664570772420711795883723394767655043279895209221828573506201922983286862012971016321452326435727632646146509773379593153158215396694256627722392336743653689967571937368260404178548171571039456042152261595194428150375518061570514045697533161722346994124986568918900400049801601897195287306516686449468877773101199762360958625342822094839295822616962312523446944060816016406118905667938007576840387714413492047998661965303726758959637184204121319859066208794956931504733849612619562431421946958725253087185355594654402168491148287990574502988468859691489749399309253318016180326708235723391952520492297368099867345389799614750397687260000782892425765402868984530554492972963352707567252309787652030889807341225838470183394864900262880619344843280494173755548201610215436558922129513673379436233854007684290336296705802552690261128189209752104597403721977608118409093497287782412165762871556962451965344959123022532906506077803452714126500831771930499006653244904767142549647295666378417457137810522026023273083371727595398247417279468298616488416063181749356903726683208516167378991392531228281511637267406085590434320088988237678447790930314861843924055186822195317784546739712018626622088480807121822132281453082644179906648896664795523815766310982209969748801596564095440898284925276014964938146995523039686789691818543973263625379849514510408957235242297408154014923693604735946723095659842118855602998194154908845487833003392195746426701808891398622892137627845475205518539614893596751991735499897877802402764597153970733279282481956291965906312344629296339220247337251061370653951720228972959391022599963875518159154230254611919482211918372084101991667723410262663911719490755200735087798772628408335870348076769551370955981037086693845281819212512223411478827138134527269462709895390386755947236100849087186528371740612974292907820047431476108118302817291008339987727036685238110663759278469934766413723358830905518547577944486044809680878386968742616156099845047013530994888983595822327586386396800872278543140492051137014275028420113281966211963432801430763135404235646115205932925196919893585366337413591834159280693048293592104549364934196845171641958562598985814888918384889895204534456521716509668376503544750001223855886546054642080854990434184957846358537687119581330911611962069591736950599606309401945201549854931189603924008910631014059663620479413147541832058499889228278341610815710130953066882832991472485510494377871267224906787570540406046347735484186469089291544220439866065151619039073178218160132040378113670742763731856898357838053199890042297924389846839525443833791004762344754695514628015732967813314667019919228879843977517385833192106322252558682120842605340357319827201095379851291998325633711024502451263870050813821974027100288112206911171997019618321029309255447799363891157978738080294745192948955807079215075695421123523863501623302715778067258067568257681317149974872153450295362925015844378008321628839895984666933906269575705268814971134316951888736849967381009470028177744419840732254476617678476673883236510287571322911503696227857812844347017012905062926254242522591901116336237312889337163323151191418698812633339015169548684460170082418896347772350016586703553645516352398088628455888781146526186433489015351733557520004589762297292071513030582230579065499296062345459556077222808870295132769913560015219248361760268020660720074288527045797363107339775148672345675579294028081677656224443925953927526495494591000483055719516865672145876456563380250185559121464341764376579408551863107608879780497536803826700050935448972794377368859384910017077995712664761959060204624483522656248850901140726170997104529092073572521506662495249154163024371806167151425084280905986528383149640766375600290816385631752397164416151236859197216073008782442084370182865167772402324650380974690520221090277377076951854909672275934166582959029637941624788309071223785712139206827790882411101061463530805481976438480405294488144498768229929038272076140904941971785377024477112524216675956117508780090152166110725925926710090189012933227130315674035666799768599952661733403315502649084403130030751017631305401986827495217919477458582783826023077068172757400358216229121263145557324478172885118368360486705509013923437503706219985321421905733283428058674979341425526885234094339698192055146808979126961610878966072958800986512235937804760475146982332277802094813961888507213150538016845012007408722798124716087777996720224434131026338510761531758644924388845166631884910962520276348844895872515603630647645180424046695237321986179241447692842878334752199154672334394589349542585127963823407654586553737415900093073163766487463800933865354180735474343742210630714297935115217770092507562187899132636248317410016451991083479286630113537109954560128481620895977250903046024047087564782923847843244452260542611906625352535125961150771016745307047671422682991403415876731792332928923660499942488656932519561130373149066029697263661681397980821561336109954582172302914373425263838630662561886291167151754001457510483500730968635471356067314477274301325571319904065877900229857851409604189177692314017905088478971750383554826478895562547426301700958371417810369216132047923662602391370252450909313683894667577872823200954089887891255736798249908159934719677871492659090061788291162903132413567990514077812963376720417803453604488034343956208175315013427083215077381137318418615000473944146321936181992528418294538191623840493108731527307187762588383863557525654863767794045262035806638354750982034503606323412771948577035284576724809001554020588406136441352785270783142802030360038710890320596776459198294604362796748522151556481390009660488266861932603557423125356700350454374730205962325694920083809641909102460602845914245861359521661587970394811060420005778926747885086304600388190858714156991205565059962437697614505499718569807149586467633041862474073703678611006920894284724362569270203258552103768558841384563143850662414534068245092842463437423814201994970791830589954977789330555450976708582731285899354293349196254465740186144168116249268860698221009828336814503291486271581051198352326113241056030891531948446984805874281596798990537948582888390659713620917055349922064326185935566564554529750560030438587039904236860963070432538716827670892463215383202808935757286451012277089520428338924114599382248646779258429129053352884946652806678333450274979781726138724310923920644327164432156271368965575874363155884747397642374286890642625165059943381082245378034391399135046581357593657307551817955251494550624460785421938082250416986495424711557045060878167861130005742387377237591112725728862029298110444130234715071431303253990252847284344185065722063973032481482139409066921147781330806662147722565917196157346760500676999253632562610038900528618544407231218403736548865107317379518306854983533035169608316441949124108245189490006063464818434339701682308172870060595783848218864303992801444507012733377321138407162138217209034393777358815551404923610909894099025302604883401096517370426874311789802882652808502440545677972431047339147953729282900243307213190662032628851890343264158698105896653946127859914999122017284874084827261631553971412070514009075843952015863773891344814365974740133149166385658080524247584386896099071728319929222134884651292682517276880054575819827229498714799299141068001962102607204833479840624399057658673213493885415418126988199793790689687133499925638522096175162500217777638213947862152522141789689384586415477993387821252027107130739273727834179799569246636015856786402287922492445640933656853915517658377492321684252938216179367262959538596315156247571284760783487791375231481623052181435220786118927638159664796450114215695863421410295554539311769957850766946090073649689570997164084848036534141008841281197949891782041615621395365700080350931918729537837030882493751174687272084578828536351809755764187256276501047119507446104931374381709354926737744363208720555167754749931107423790686464589418906570506901891354847653656246173021899315805760737296493774700015435415814695816680308871910180982475286229701029549600641412424510504381651721168660223643169883178543741970272867622849499976426485533180826647368440050875712902945927199292172595348589060261713871608908779074056218864363248173958798299996025547349208611873060714390455508601432322141339903093792227997523167647321696288017392303407367013413769352425107291672680391495971403980353374055287992567345076908123018667524705238051815909020735382483545116261988333119175737625958229059145184947656349268139458741587700467554984486229611507771306940850170369088184584839172737612059538959271278436122819068858868824321134745572773819624698099510304519236218513505974099740437534256255970586680735287737765790286723931580261874907668900058124550675312600141069771983676332579751433415175008028304627773753694875216084768966236237742093370728233308499422337411522782203996154849312111855284746969546902201188486736182773764175920496090291396905920596850593160454622772592769611247224373492105589394044783622025500224453261644496557041356247199706058833976375576031295302478831383478948759755634066067663347647279348193992062457980131812178565171304654606007471378668767912831594069346874570838343582331507374848519989934933802503300574934255799636437826523785943056051946599827028765744174005079223606247656862857139062771153663971620744891636942068176903116358529608747454095733705235036891831281390858387570932470888084234036360521774302944100600278293642345592379566753118897014620784028368059821570983075168674350727797330653999871596030526130598203495471298522340224675392000213820881216963608720231743975322381808728615360630890994994541290059562479698516316056454231727802608312695364313241470252418452720369531114467398919000522899010053202274644549675803225571102092883061265360777628663589641111527167514693379969169024095278209858441139945220591213666692361585913044241621830560936984130722897296363777965258926286678371230244486591819773817873987700318581459867472857563331488170010382073696428713505942800028042174845405807545611173744158257801673127680348068036766132634365539571756002840859326111927703516189111488463290416567152795071578841901835589320191196203031972280902668654797356218923472593996477678968262273858607817836215826480046941645630885715035606979479334148745164246736002539709353505243213764791594133837331880817054668739112456382027803400367219121119773920565546261408833539414902235733228124162856088564069346682514657962283454307252099119042745573588092528841530862464011037918543328127260784172724901160469971748234410134499284669590068656876340559860484762590896611260315185134225554429697387137986545256080060610746942846344378610382923747598046701982968508396317359507607147655153518129371944421275555010586689917527220317920038567043364548214520063348348053885166449114532913257141976213845811512345131034687116441127150509307146999395236910175380083808933696734562160261794392870965648529664376726913562448449933789348399269920465696412159149187808107086039427241263944022198088353658612862684996223582897802326259870402362344060096680225055573166649796127499237562428213062530022173343355070394523875708027182564977601937099314095151499340832826950355091031720645281489925980079325654979584187884144036305680738551137017192972428666779843528454939073606510229187982273060266243605540164158491357136135030497612911075465600192691263914889726207850915989068879700152502277224634449346704236349087079496675157881396239878008860935762926465739571104981555385035846353720003901823826394014098947205189058244280498457912369726740298860963546172038497237349092976143591197804310972329634662752549018927893379193629151680647036453832771771454978639774691573875083984995266766537191205503406339431608404256843360194873883078783801085571115589353940532785885899583046425490071467048478516907766824499356112728639191483101230133987325095657109358425646490005634695296025931272009395757864437126494914210046468096566609355946299425351437415747380673405631968197430432810321965890597851083161391543082792337518381371822279283171323903940844661172145371964580096016350551160845319043126101933068747887805934260864133096602670393884195984071549755624186357351117805350357588049440534409553117115663964140233029141764997863110575748644540253204442816170582913484864578468888823738143979878474091179064405827620174097022862495987544200312237265544046498664408317427708794449189734278861166704153568162006484077941609770638177961336315041832346521633301245707319895997837406199938214909623457695729351730038719981011304900582544670269186497333422182832131647495991050285526708871700441624149756988199052779639741318988141962122338697353508870149083707695592298302830493683826653724429325663698262603103805940779057156957235071319955196535242015825241343638906298209237129474320457874393468522077457868987840256915092103743430471906307469040720672630059124196019172048304058991275334216499384811030994883360147322651040064526940468306066960849260213588503358390839321685586271197726447468088270373481559636449225762059522125725739062961863269592886866563169804477321863163368117703375740864336782307601513748487018631617040158491195338548901881096181381147780358684527371419268219015174318175873451821254896190339277183364633962354925127201232295311508462123170243515984691697498559897158767142243308982780474496879614965850981986678166727520903774496731741801060341197038311581215784582247444152681335189120560504767557603717946439842357114238772219551401097420125053739668322127482743681592331587971722658478215252780332838018690497300247214129679259700718686653305936437999894982727919295452251910787700293700796933712149064903500395874270650738592607727522236116716648304485394546639054887261694854446306871054489781750576946894149517934887047172552307154952602599540040057022704686692571762756091543893034626772189435404260243128433261335810112686639458403544431074767094579833449227156544787325148689443665647249069924804427539994634214700732909456552973667081607690301496624552006170873425564314497450627861366686740867557230230319723156347884907704944807989071401867219151926422042535756271874239316607767188832124057968752135358591350133149746748532048386867462254670324709471151280259554659433710666536683781374665817971325451587385609230323031070296088368677826085804673090999792770663709439234638237763237883356429957253745115334662084716699711574736154676057949602885374247560066110507497215047068622133442884988446875334671818825196741047251287696743283004807432672607957429095743039024788926891960814312267241674243401780742094138299084949668891969077669208868042062400510646627064228357351945256862328838028417991893897926562871703615684179675967516379337796554441851215942076576455318559533230316484026562212431112936397184766696347938589013036752119949763976484612493239523473180874630518138300296576913919123987158028715913518150592463951670475716000212123604459511913529227980947482848100772793464513336167283173150304875261861456291233608449762958986132102293662468203299956052909373346136515268698391185290344162192260799596890395290965497124972784606708175718811420840414356872054153572285597738659215262198417525693441407711656937014837384110754239538333417158489733095757556436634689454687471020693643955728056834927347512458568957874819399703791973598640609870307792204668399754600335424525803238664397842102854365731690199872890054520351498877535995982402577003399446324897071876667038107893284898828938997738385759725979472075788628060023900666387202920059141949587678891894982288166258478183810858076291159775047170970685426985494402457336515801770103564771207267612038339865521551243266934876245413298734310546844816516521442897126025870106339048007865820581650147764246179409259008586767747745865050154796584708059266167599971005071823421350672100595180133327641284741241208017773050253893747672885985771392903564890937960030579224138486903150663456306954987432721131578869684839472633207461112562202983063768526650440594933552144372736173601676130624418862789378774762358331511348859106726692972624385127129633847709446340391201524953879378282332029357868091513206618937274227193629889926677674921789655794338606778185225283289178677126613493705449196050116340899634798676788198354360433684177357721327032393917749916321445041457504714986128464694266069565857113639836669320066314425463347069468042883152918430221065816099077228649643746760830283263151721090610438238506203949595955955661562510362072404548551917474354766353174069894346573885255067684528060533174853248621919698312103580435189731032780707552809217274749740970979443611872116955690859109953505661292130823366734744724165340448921439828081823681519367749041641618232276768858086588623064802467064987790541085140627478047596935566792235842747461070268793744574514742534372646480909474451647534632601113689452797210064010662289380576901357614621765241902301238137343053977632120439901651996744567905461152692519064016283435092031444703144372462140011745878864565648650919269245074730389096843915402049642082614464934089968077059426353504776556994166076182740460763816912072770736095770028586524480302873190699250692197765369284770946468416371526703090811225245719432270049400346520324311745343473378744513671755993193945361323494240669585251342187729919527566061754714888208634811645286796451305063958110175545919319834762306221510363372716577128198413666415861187111363854243793066636219751747864085179448808908230742796268197051980017567790590525969420045365672819074296470692290303727078012406878750763512439157455001275590021043411568475034310435185145303233620259650551097553568554708844515737613089235868367750985791353057482424723993253871774665138530249160399003780608188380210325165564658695501955428771396935188452141081461166149658080635867142020509961287347477878606153613011929476719525868407285969467096417305064947195097507283531482358062921053824358001200415532032046393229134167021021927324627146507177638807048024240791392684357215398991744648390213391974394728584151173183894306817349004286955167665966513536274285713764512107998295154906904988647442590944812516040851026034920539414632066196538172450943091206638280129265846454984647093947825188139940457245655199047248732980335632811042819371892807944118331908413219469621184311163453817631833884493030253543663281029211431014370154105555952800303737681689736191328497085662636806808311678047281839709881327169011693182253907872473086872045898189885919790138288897358150148803377547012347207258112362139277415322116776574083967900075128707824891873507844708212890314420543269072067254976094165467823339951784205675472412588294500493365123578910542785106530503220870261797485230328348376212288482352382500282072140843432106703911568253236464279922785052670799569952502802540835832177063171874737215311186596839210278149104322271377466028006411327088631216781899577107454284551296607806370472822436041494354812429289796233155439049222318909219936389761989092218912258903710579147038832747592608653679060734457982595479905938800491327790174224984141697640665887530552402405308807156335447550389491156616179133960889651688953713791594647359135677930536678619155550445256532552169736243309857843919281038304707023701218008617934708354653057519995192730558049996350588097649226656110362525460127735776791278399534780717439995508870379186266323740646052097223146736797970497422828176329254198436753560786998110299181732091226634782052043401000155335307305158548329630697265736065265344111439923179557173224347610480390668222809809286067819339811293344070631463734170338011458962372763462416674140641632972770573107195493663163349859342012401728485640389314523319913632822761074344746897815739500862946845899246748420534290258706164521572068476797836797899417386557550748802043365880009001181134490611277414797917333371168109262564867925947798713564715255041913607467913507410383713054491818490988163733736521984847399280301496827207185219433579072630201665234752152805878742365499189576237815596143223468534556620694638048234610457346810673202824644852924492663170909451094573339072013418248207969740854642842485582513331485344356869179250714468293498033592964490678659758191652976640452970068116258557364994065174280253444097014340567438872136381488781034421130762777825139494431080790531710115201181735979771537055553640220589678719317236372369755187555562668596111163343885083225742866280328248184909927294445733395439024782086300815608428860729485246862459281811674800096877514756273569507469621768268326671146874043838925936593981698635533326287101329727001611604799611601392926786033721155323881650319594539024474687909707262682932379704525982063065786989201259461334387146640299521489771590806456494984204772810666217559065447733784843351441015661605418545110256730843449443588923757841480972422574588405016192383736694219170565012614011340247315065521024331669108380991234161062243040314423442038884432642923867075684366967751327302696103447040261329500385434724159113210528492497470745046700070913061532267716743708525874440352715323905692887478955340174385703832377022358289969841138907263812784308764047993502336738222455565770374616544986926712403822265738722808398807128976663610154830277542019609338982077499813467778355969093981969179115032212022221584392627160951935529597005583060304566047906946424574530567850522268175784986302375018766559733893803213634530414201708405130737278753670186475878462819757744060947735608296296616581826072687894230988222974656466366834752090851018198856550235838614817508465701963763434146470017160378686587927699242175761174279100081432233682861122334148892258449009464378814528476513323939849749478417036946396384252699130289246437028712415315568578258257935232294644130744676457927226093083043171293152018153122900701935733153415381477804329654239495877773666864515601869803585011800588340567683700771130738022493824466298629969040577678889376345484802958940273280067049019520929286864486340075046386938956516482760018248648035720299696433283724951653925860733718288932376580308258292090663000590517048766481044933614259939767518752916018777170806591949681047083981905699302426148941905854018636284399448893525231744044809777515328894087251962912269417902752526395631623639531081282698397233866080576847298679736112003297758620850038474259174422287287840325835474441791481133466528192468125878428126574836454141338843757186487499498418867535966947603569739006662960289153951369047837737843376680604731003348952263648893452234062589129042971548157474172474437175785269246168956788233663561604626573371918497488365334246386391993770691514444289460430590091053145226622005755137340003390969624952727235900833219702914860395147564335243620970010434449922304276535610728924476046163326322708900399807991597524799946974258060334631249786735465174205477126767648477984404429211140580120460438469811951095044351637292944276429689218284577123497589944041728324384256655699316443856407641852005471833585987743487727515418887795823083145411992717931740921518883529581924481986142916276958085609405735272158831458419374781134581746911093796520860597896179712683601936006925021664010377123366290682067172041980824002369009143551626449485473306483669927446713859935162126116535089559885720481433990810846793242558598572167677530180706056982248210310793936844639125818795725441578465958769070841152688012078260557030584681906120994218130139071953390914013551537251673226386522871625080698939922384999684506618393033440673220586862471225309615489384951279559714647598489409949928255035862057944225442092600518135780357205596333609616306491280458018320594063749110798614565834302394350003424254202996822495551860020392963352201625779360137390557553125895258473213155297484513651525510941256511326197879821227103101223012702310286331540146571225185687669291808217459640628902862506156837156615536116194406723703256023103888094319801520787269479403597930666801119827705279789712814855305082012080670684113325434411298578883073576711923707096212145961302240574396528431026179187985244239189073043940287525116974127405143779298350610672097900127287804203422231084919399670256236990138712362912687990288427561629714912567891703093736991813767488933530622058314889255848256131635014764064635758636313894399074079837669650431031120428219791904316607211713038873832318165224253329520747050033248582270746307892322705218193735354702185938056877089244224881405627534185709943951763694830396826174532475316950883328016661016032964979568424899897513098092732275462800629162565865906147922108729310606980860213295942054071052613384779891654628199083688769508973703849914682834092515272558858153927557671869342066005826021170171245216324752645374650376249143718216693739873821520966841263556045496995546391168065628672323230829199254467441651904455480744432010462663822174606063412366874849007908560967914453088054146318860129364078096208849459342454394764028017338492924881242510817742226923508724496351906872773800043672409434243481017948153826286796985378478836919880506864438786081308328022640673749004317783554314837788798629389332867184631520925931949903340162932344384762227651575574194729362454083710403100460640550046549932144454538495595881993756696177797557860598823116145039467076442191244760102177627248148478679229319687839549247349191488495764734036164165338856282081204524776578383926583983803207879729023962448033730642653114027837673439271215310655356571979749994900209636040385012198336173525054058423798784270182799563878673914718009937386338136050965814848438543916324599871581043707606790237760491377065293327848629644084524282935900152072187226599466009682113460876862501499596244602104659003600197056469346953092880019856558786551006411829405676446437006855297264392259312468980039153188620328500119956823905557537682727077528048934823218673707865247897990412299918728814761327603317605731741487898054471723461399885507316706813053886085264898226136391382828247049158574883812085869737018321461567494001393858566773523576977873350591640124277115727551645403330350015409760648127711511981942459081130671359662176751460268121439339867198100075193722812259250159696247886233277083096676831600353862035147936108274377377984584482701639222788118557240092229415538188963418981600857348050624716316214062302144701965815437726607863614121187639328733809156864391244746091695339581481501573451347796078092107219147634849281167391343787350912737862693677605255641593576034238819422877986650173379670687310391741576390456541465914307723956931900233745300890841437454875997696190201708082543782467912434390927388999573664672816244384309113636608659301498580713240256477342897128118984267800215461563249916186035843751844571020643492438404815849087117623223055124141639160984073954143363076100862496737330603855605611415126048887144301466344429461795481856648008921328366927007259474210854332370310643792057506191422221981992112435523836566267317553779737017329146160571434501225820975341454683198749213546948811661472673088697512239192475677160683498433865265909439369409981249880076200265548881751818827284144872465539940182772837168236384104701646755505927089801509314398834676525557178796697366847357568917275896245179126846879415364105449974644367432917747617953618712489216498730145418682484875722754985491650305682473661519745982496506697090858686697618551294172446377470662805062497041194400532927013606460046483176602088461406470345413276692626506432582574243981328653705789340363276767680565146380866411341400534229539739529730210738895532053995946520565139892101297484360055991803822217365479705432892358329651066146625651601088147237270316948220953788183098322570389493604300561085349859270597785689668164098846258177259526042505607014296728835056035407915857181361438601163511462547477360716010395511770825080952778450912670554381646626941119304446266388843017183828846940679594722233416075420771585427178948438171983725872800177243254030831041047713444648899151824437258809780028407562856247454346881236956645676075960394192208525792981268306223947603727234014122261706319856898016623596066947019522537626330645056955191599645184994952377553067717944270382797807895456835824612933569320346522683529642157249531407357377597071661695010507422651009890357160883222713996680091874222643543350895966262295522278195141865203228186531140201228976729664410038998474669491656929528742030409106682030804241622527992055570850547307868485762231613372809926021826921718404778527092565016308754294506407249814578232283218012292457652185705992021727833297177353318173593360264259243553424230083417395677607560537359339085929942231445104299160725372315119592098648017314943320850292802616241822083178260646574402964573199071689050471478996025126616417573701860527508608636770024294954460969464770478674670199645234536748904587695457405763952994665433770380933632537847432297695566294928107759921529762608107041341665564091200438136644277941603944908753693562910716336336380809677808624944211567234403989658365582264981206727017944043566264904788392139068720558475235794756306631546591813118527085929116141497102709345607737431461350997437769555029245912971636434723936826882909733926084092898841575756722163873703607091552729237429991281504003784533043657219735130609352340328053119220216354849939410219329863193195137860134235514798990157383108313535413683199124476634545475730893441203923365486165956433159348108365851790276244087056784543113065904856390315752752940956903524839298745241550194397831107321212865932140889408721872324266681913542840560129884808005657867123382547329213353589654639033455097286128433445772552280134670173040502706324735120114572409975183757787131407471089775688798569009893701671719037316101465101048874912412730823650181677234215561375005667344753905635739822799963553587329765462667936195846392155204112822273808785664494425578506096437785499488046300232893110542396630518399227211979122881060118744027439992286784613045175738271209402338271204201176327481687116919135642076134536613566244054118799129648686722564849726460239856531209154100376066927022809886362383423002501267788919274879690613556983162593483646990033016333854499999178708842658859960082387674224214389558198643586888696234872653308579084693095931564994041314928330367995605588934172005720884812485804080373473743901620218922453795756827428017112370568805608555401502348854984040927952987903870307367257813317110864502696446646436278817202557262996717442510738084493123417396623177786812530789121358547781364553002113910539186650456909961760282767639050873113049238392341516709983463025179266486143779106105363501973423968425692739960545221395688888941842134865371049936242258552371610429219423795781223456095792877994328070214907066567702667442585983657181431755630583847778931086009200521887432359207592201582801862452163525396270950906802152455629220627274896967890579064764966692718568667823812056129881255629852427272238022598521814289023339186554505187695402503566240532637028491106264218748507814144588422860901229500750684380364723668949950565769530913094037067443429541766443416899408983667687841655181134042673143695001619110133801319414367827396216147819420740931194534998173492632835185968556982194252551438445256997642429079266972378766430472800597943220885025947182535424515538837519104039641077388782562523017529702976267385927777888672803110760400809407554368620260226310548979191080781533380354469722106629433752397086001345877863984546887437204063835281146215478224905429851287890233285850207166191211814893012410699868092926250712386753021653397783786190805619436584160078319762310204342043659690710238243460336425573058295803868310854826011574094166871985549048998665969990270457619374994802181516618790459182833187039143054663935375776700142470817977723693493322266776100701271116973972451926213990551790685318752806815773524375126511212913592127924109279039983701056476322906892285833189299585242654887993210977514691103781605697238395848430846024868641921884806433561498075276792367906825587897141542483896365444902128053521777270524219983125418361654735148466172966925932375718200886378503679669684997865021022295252835244971592679332835417865865828026000589429562117729574305968975894021393210878384373806332726963060674375834268081473343044072444327335526235549447175350038786541440824412586930616139410911264527633117639357438436339232715298396456266623441963101268074961052614466422725879030805874489292532777557660528124404779445291866232633429015139019050790710091894080729828286861854444782290898763111341179117491693650374966542273139579098940167778421653179406409344754306925899694159490884553800885962252666234079302629385644559276580480864477645981287260301862379844197558081940680831747439061784679321251625055266106246819112872829583440715750332368441682743888410551979004483984266374384064853817696878645269574676092011036657996757698790539884018527755637879559420735177063703645449175078270193288096627030792173274367577870857025835618547174532197119351248333105455223069720108971373317244525420902194424939056759823167219761562155129588365190816639260630732057884051160829886318611390089122097846244870947083561837192214224531300899496657314145179978227354002770333604682444125103641558808846777512598368834497112635905501883290334656154895031318196879145237764205085580833706746254323142853287565879590002208999835252331763631212998061029244686345382537074857669814879722938562571712658382792287080075148063611710524978135008021444604204573613026262336543233683899651109462417240402532899337294726505025226943989600644655395401418342128333409614299091957318472161487220801163835927866188748965217511703900525666956505272447749707594290170322691533912532787411406485926536023645220112581948019544079609432735062221015725806169609977956329463801596942660425568837179790039473461743377678964161505885481160367101919241414867841530686274057729095337924328807850801165054431502459633900224531567104333348378645841138721689703534248595693725167077658961763836846577624538067321610511867465307292763236485662839500409021680419891684420313799135401293289542600634309898810661323464787873428645862469965456855491169076756556201842496116255045920751643592537196033749208164929835698876294794487702190349829693917866101260083472655561756104033486338695451264611266271444030585139267138460091999202955372871072810976910676913714154150123246847336803551283640644661766454383351112044360264732850722083267946249589517336104074516931254906551162639262664763622469052053421835875099052401597180512727899469624181543585895332325040384760109193257000220100059744814483320046809297814192550647275473478558729447933284467545661942832298159380948873876207446913183168903908587077626341667925393918507711454102467041054628547732915453269904106273403935187375125503982440739265028844179092062536050436311067687661993912534255760729628980809314456282450172272683220161191349239164923657845768201413119913491088895587156982250669825278727386627431913065847088050913777448279810995150456808566486765033882172950949727396300191097583132518474044781453465569751249656068869975142358265232530607354594871423133489043356888985473536931290859741078663131811996104679981670173602377253562663905018708040106818299771364585571316336425602648541219438066881475115205578481148999604102278492742186530399968653142574658154642267386025625168376094594782605450059565322292687507357662668465346721202355967639558074401398110564191338909140077397124756953558471789289291435615061415757483335262195390568804660002263247681509687043032171339720020699300093961669335403368506160584985857826187240249426704537951555185844353590248951922710649865311054068965717472067471942411040349821100236960299720469873796765599939406128980400598105498487353678439580057120507019445854053265512093475964039377668409559354424593501992303618786794028564096702355219033038189425855307486196917522502378333373130354439607642413030828307261857133004908922353542531501567621930895295173296819972845994036768192203801420507505648717031641493928576351170782518426101852194527349579638412094773706363299761161269141412268197814704195231602091715948167397442286685588590483268510499739165533139180432504695190210243470650597447547967357099964566356445291023209679113328042088082369223753719166752351311016398664483890638301358481686131408759151706934499455645585676987054965276038672434723878927111327924952568771439691293791644599230640271349322984866498490003897418298794201724812504894370939372528794570914544858048326611872216895165587688154613822839949115986584636306328174986207724646573740129183757314182204488484304827753463686418644628516775560502806932604238920226416774940157113780186738101805484562811751959291911874706740982227052991244293163621095513587455934789467610299670756950270719890473232537871934445498668401488615048269034252082981138521714114540504618773238273187738220740862203242975696135945594024773885943442562402507967122850579716318897710934502781935036348560443247050094117259322825353077594107381349373306799396702171877189146383521034546008846012071372385708657520879637160713674742684218771526357700387562156823371029219711439132896390701920338244243746832318996738985804473167943847068531292308907014119377425842740052305635782780504501199438940439625802428966868646011371105494631749167914850780449301995170034813866130725046144781289896610143117637875373280161304711799615143205358266172547713167780038356184254206028347700428502918454799061822233931334774932337056925747604041164898622484124419374752398130157089127604477881480792448208685754221146961005774376944956878603602502431577817879474069589201006202989490734671707704258278347175086076137822050029522814235957689148657289575300037156679064711948781357151392881080465333991191593233316674446181873393495553661530394967544376185463392519143521689493097267362612171670827024588010155515495594205041904793287697445728590303010292309149523193314936040459106856361690886963151027573107633323146222563894464395790435825766707598205649226322623955541903276493168416264106055493519044589216467699513838781383503187960429783086094150151776484398690397343499768722195529879445974793385041116015289768002124938594432161027897498748464379518014000155605329977160812018658921589952703535283270131721015422137327071672592514847401971557749576166321239536999186829938244753342715487237017565755054800555486207128369475863050028660820700861286832255381630653216749694345324534363516551693656674450087743198965588497939453183665024202262360831619564148790958648724523725360514924978451429946447868256986113353631607968703107203583519998674733361743901363409969145700058846535898987831808161430692487678917745154725072129972795380440627149588415263910116293716989334517511548520011560836930985213811542683270165105396943923030183436038480188742887894677740940079952388372026033726700954350084114441043522095463405979466341402887015204695198569069735013608376796097179881368851285334551903135133103273395744355686723565202406520085329580556200005467799060777575378707876691660515118016110643353325008214740248470325491065076829302278657259993293428435321514730882802714357595552818228462373352728593032216029238091104219279542949388722727923860669878476388993794106355481092103060697019675228841278778555361984769349613707518046640234880048051852759585419966445398471921559937520818790136110674060359843084082789527173628104612270360576174584354939667131247445420808459199267278472814072493899976036539603059922876650828258809256572118558511437657011276203330671797601413749607567128538882809427844665965572352160276960411236190982133388037866942795827880229831642187620033392705698128830525367714224985255768639944755933658392875274585390739050303276052424019091318017998118127014893935163724630695158844796691657259142950924279460147556050210655975541729703136239276906421064816564684991416897859579167926926962805899929186001950950372912041066869851516677010773949621591740349934102350097649255031079780534532373436234245552997181444736616657308626107750984532762272125752249491297612680948107130466244782356700929436569024470913088894893218193537015829096132308990642426146273312138045330641009979116745005226724830097542399509651143820109711094834911108956376144638016405397618221473302507637526142600542825387988580074310543875717939066549342350578855583425224825262803194642117794539948707935069113140581605499388298726648330141235798845409521345765770157256050112782913543225803200997865591903583202166891974880563076511611194219949012304091477139584081285508083905063684781267106570345900034680932259644073677948641873926305621440163042053164918381421097938044147062696553135304942444283689418878128203713136650056358710458210813980782553686019375354663990058834956692865706963358795766955429589128930112489615843366637029429792327966143784709654294228291793333936058177950342305902663707722214307824581729307763690850193455556336044569065836614223934956452242481431118236269454721127527668245631209921004662855574040160660659677711212105467108016300076032441258782246235849193593491596716591258936318343047955184484604804002531215871057831086239195983317902938781871491392749460667501409525054280704640073739635365485305792983522243069535930794934287992426012601773905876447941534506098346196803700257070332653695286675141053913331648587748057947945011743953635518673391778372430381252376960726744015630286303950599971060338110957837977244425813178442530003575836141051118450451150060278346612034833536433438066461292899672715405756632591206809883545504507727769651198433650405254050997825508247106562907603362758549721961035846718505356919163399692807979677437818095537187030816103365202911721412025990728419583571478466079432468700266825485390153394997143435535018581572454834448162702606538626731589049439710969418625033879046123201416523687207919856988600958275421787023038693163731221739422047209860250083260129227879519510056197056695092614411804087226348936311186176627757869534245210015122459904397123641124916144038901977062694651722654327824991438018383222422575598749273146544183204118902095567154690272436549355604865544690960958097165987523975160086821969504449189837869449622958601201433098405708774654878568865258749197797003817138339813907768296337248889052075071281498607466009172415393073495937009669861219299328636591267364445678440867247379552986894681054610580174827235337131303084762610515004695785397328083609047946710485422773510043730515377674906238081604733951373706584884214598640175974860264147591621317024899807487187421458360376832127321260188007515327137868293461661562350036004753855694922517959572309916884271526561633205513905575245101383607514688133452689399331254640467186578988020814503240514005410626347387215960713526056429960404134260147993456549548067295829291427853797487475552922382907213332078412796179939601864174550867217371026677371663020366575026557359602867168267776531801581061394407384733016742318342238726013355238452120162853552842462844310039867870060919278145035480900520876696635226794682268749880700919858981475726029043356585519318573157145036006850637096022055869621629216395969130527548692929235157431827121190231181083346272945277866418949099592653031920015962230526923169121005502009231030178081455069796498441755070423331392766695146243613879895430496851847515814608633853713829539802744662513496896918323300910243234596433858473098273668345120389038854997361698389991718760250533865260505212095371570600787936324879820275350995948396079854294306864261368153816834504191644537602889096095285637123792682698585774913526147344101383097653955588247199346215012356489956894760756730057498589669268132566352938851226279731787857760883782364613053984352118865657256947141878769905469099752178856082563640617053152665982287887776853355248906672427841327587815613163296264146591920834286777729485007239856772594173093109368751969230679138642737612410413768741155949947478923473081257821704381501565610205402498507149365249847793958109914699443890854295649787892539546779494852018255427249097902063327449493260061519913718079542852465495476137788888979323207062587205482096367186835638662999545449341595857885445100095694142237781686691909283532845457383378308448585713168339813536055230941128551660303960986627694326983129453447065507478352553205034102331032636612744644308804308047682380717132309897049190462948832444975418178838581181814407579506069351195088981765106741693809693080918068095246728354797580805541886885744239115699730570893610339337213161281763295058532828079269054292023224219561459839587235972069778803408533752409200571820773966910541529708094279790612732844978629005358039413557109869546760152662390575512642836291832025543350347551624747444915491690669553409385853971248511062556362094488385421474280487807098206734791271685839643428084699541627812562274986922037091468628652959676636580525084924805996393217448699110126105715303686970986815450923100235212704490499819531126230591214820819189992125968425804819953499915104347285163899383841444364156575180523546474286967305583791620666392579114050986473818263485875656333476602907214592574115754404757205503624131748311007486692380768412974883585631731387517719726718063625401508089744437797668636985001745431560446767358759532507780615586043832449411417080332663796412169419670756530669920519820543556635279907163424271591840969676929325845038242028421934259114082839646133342245600845230333413956745946554070255636769623301815923079462731482636047627566298186144154195323533185209904275143761256199620432209831799519427347536694378445913966595494897418826236992205129893750384918763740994466385006845837282848206536073604018149156166599280281400385822459443744554111974128470760162528239295542154355315840336749544796208260030224448541145035174279741444500234778969978459485769417297141264028280634042035132921266694270541971917767130105741921461731967707394007085533155067791215439427335389656142224260785847286678322719094175879635896361199959825943363311272421838940631491698374710264149241296408356117101829005094086178076376437804149583689984964704745186737934696517548908612432986588759315258926137362980590417190891618940478610689152718546839408119622228763848439256404463279989630714758182412297050602544750879211505866206203161744074911078282940758351779402327030097288636865813679146427441805383281453506835917630540142544194127645616320994939322714629240570107678696739889350444282207875847728687817344308315728562832443991540004933507399485513578833882322158368579310234070756074434895049366376083746941934261776188992559715897029486311066408126323609932228034274615306141161711837950181614385071479776400234047635823639873468556316935912135273738585919599010654186620328203887128770156630162775785754479090928558908673583103830016978381790673397406280830702434465038426521016348443543084961529306424754415285287437587537583915453195385464546749358078181149057094993406179606042214694312074845631617527359275759908698509901815407672170760964126662649799014949779954324321450846596731174213848995218385526703670471309310091232204857286059918294351924435644990606603827195082870147750813484677900852964036582026386730521698427872965273978367900303856583711530143093021656132828412726241285318038159971706059388615254360030858475316602172226585299668702494765645221670545624021227569543911411571824105004513799517810706624181287232618282069357495083259225891130082605108117814856446918349982529925648412292458985613809783717158826935065995158057389522312072769020707594160394664585227974517306801091082026585364042883075239470426633404629316128617206102926419872192843543335180781566791958919648106505315202177920548846835446869729711302779619404694781818053554838475020588564924929697577214029683399952301934947893889256361192544346126557132788748377825472828825209427562696213160535658263043374041999422005376474576085189208524809342751997071016088459030232670561756601731748995423139266490088282521271848288467538933378444994319512567697080556404941718440611026864794017173545544679185804487783666270898206681115890941684144513506697238106819479682985535141963688810746682890664900758994337256953059706714271763879521985777263727948290812725717349660665873540900731255122966862839033250833132132695445314844373142865649482171284445373583404331633521684345677756286219999728996709408031006324625708152776708935261789109040419610086554682963398747983383711248564338442813653983731944103737728070491981311620639153861721980257071918939202829377543073704791637258424700407444090376166840299960866992926476040002218614336397259426150538931506785527388657790763547839266458465161013082334333100619654603800569598438595003904343038494928623150967002213917242110340794312946792485962090983663586969721542034459248353510258790887743044592836478609614205006280617167260457770574192340814877303356111829274808818598196542456888168121182603663695262668336736207499743911092151260441871039429915647582847606451181480845451250072082584784240422623659162442852440529430345893701663305354931848893145455231181095704664899514969552655122071798706276367422866038586173445874976331098673060339313690405472646310125117028241601955403241114013390411221224807744217892692226752847500223222770286106310689911826912838599441902348902392165098445867011275687259568699196791503914062670099837150961519291843179265427551510363500586087638184178580193572748132541146261791019564821566536855788905083211577409591291370445475869894942053697422253399496651664570521710479530508527519067091850583566028019182759060732035027566127267356796576256020809090472347573394514112263219900567938046106159347039995114820128392066319822860977996532310417490866180035569025350027680236759415140968265741809357711020124333230466919263625259852172056714614183673053953514381352172493751278503824734855962070505611830445193332003397923405618009142920849530870139437112447938937471052174954018019466086753779254283647718394416992481425964329172944645739752675379605165322590495386344945058424955727626488386910919970108766365346133890198928058177887928108407400563595751971859339495205344726191995076638518380713774614097907815017345174716145794474779215370624377431918937091320494723503216369622013850807937514168674212708059543148728053158114104385494805405389391404378761825238284872320965137805407119211824985186663777025394553675415304703076471542047605590441689312286884881344374578477438245812292816446692732091867402644252028565145456931567509513120009311745977240629623146271720465209322769313424708881332431733202731135890659215887540996820672793974078261260142313651386031417930909940057897434017188271685977123816749914857543715252051861619419359561689401528093237166050114717967947429943412211678005621043122840770425612825614717975648748469043846670402460859950729973364914801085769065143363580724252901766058950966422358840992029088085298991884060428754143086285443703079979938386760726123916341701236090302829160742748808029439832666807066288530415631092190032763895015740121270449253792504000490822352411100447483410186349704052943333093211588058103496034329519935550689089337709090906903418336071300511129247757222047272767326915185515822330549326134568865877398943427365565569053124182205222681132362258008637197726211026352679912959994725762123250680614958837749859064992480254302474203016911705768024007651771343229440999974523735433446186435751125573859556812481242034660191815311984159823619223103996603391262460009570822637838175583251713183750720587141957294536120105259490976666137234833794725456275563249093244523740835299084247822015197714963247025530580579493054309604454681838186436010558880524374298857361122639777276783487125207868532884924652255945737817876698557684565160963669789475222287780259206863872102918193625606582136298283492966197892103593362145772274204561309116454569444860880287070601683877557271028363847369818346607842843913704277797903568995596243579215267128392547610488549606868806606123993409162911862845891091027101768577892220748952956489984574120899897476533805057829823868473491585400920332684635350550631931528760409121715192655097675491272262607698772247200751994576284717498261027939832962883340878416747602029639954023301803027531560702272552427398275343089204761229370624928116305610233781849626202013178648765771519701522287321177981368307262464854467130413985532650435063084188731233653718043591822430632932567257431870182431354363358630479266675933331870786923123098057434385366079892878880586507418352938859840812617399051489802319336465540527513192873214671956528608757499230489330818853181138454035499204760704280429745249362812914815362769278509044601052155087136535815533880385515065749321935239712641070352955968384966939005436307613121368431013909870698686490353008559005084062371893855574057554862088372143484678393383277689110445618516415426208562534853988335671239226057557121652568399024389966530621953115604389807738855664221305000041345846410094500849146028176553063692102697970505644878355535661197490979934222044418342645517012000209173519424728845985403599894180427070494833380189291822651368456639545932005386417413411090093138726883464996838838991909098755627171197041499189286144344183590539677334553580609530783159142302473326916125830918014128395148146112772621986526755190099545107166987677242345527149051003203734306882567059017630557916957214861723095875810203625713435381941494369199879313290817005683748401342286599368363753672440149539459385790292339757357851427762138007751852757929930813407223788311918255652875726733199089784845209387408088528183081251518622558717432153788109215466209411759494592227398457618828706556977211087969665950963726089040104671024645730705788357843727145859571889769758801309681499838370335721755600966594122289742727291083849923046022461205159263596471007390368086539024854206682106172982216698214935444700228161938188035965512623075693137104063840819433691365449763294233160726184905540823974080295642488398230987668190763894363185413077351701197846816190556206567849079087373655328497992738958374881055031366106747816860962124275351611203859371503302383016536148876467703581735666004562752167994393198006930151099493085366408910835679228349694622603432352958381183753845876972359202459366080856528188659956687776208572610073363181355093217445359907067891981603369071648369199443730806191389233697792963971978972902909481773122451801362288821004962227814508005146351637139437524092122067756243732608717646914067909251682130776706372396194386353717221768704712325703516849447193431362074018461641356763290426246569530822576600800475214669861143880218010256757126927083323771641658874600496403866935976737922904438735183849666416668902505316131636913187384734978905047517454117654425794358565633829718779925332631572270705165189663033876822259393813840669776790606549817898261536632865566597644540416568693812721462554305622692999671149714543930591559049544924382431416214395184167500671680881187503628428215087273128058715190336488243809596103424829050691332001111428797264129369120401002734904934951361558330650557151493656477512366270204999214353536927239196368399160132921466633972355658736552647535905867762757202037426816010902607413554338127199634960623733331323003757223177935197460179287285984445069202202014643079921836401383896886506884314960568830793392619063223727456832208872022487056920396342342210326475287672250591578986889524056085114166278936324244291637946541582679921639243420415281827454287387177856716256606634135743256727068674194482776618615327055166140111446621511188860098414827288959617807634640908842973228578701325609985097811131257016426289890329047053366065675511522312559192456279264448755967645936782835442105680928715937125868860495654689683700955038496667506278852419384809187566412518127854276600211756567556155039040518354313826246928639400802954020409132224266981626742617824916898406934203516458913491334530871919262862496337046804737772690338071703609557904126085153924104739278090663450858171017839236464183405819449084254902533951577182497555447450467850510276812065339065276967307348243463884233544828843803097870534202849628141125810063434705755844166135941350852916978103636433411883941109905002191721585540952049210458648401470679378640388242967076023409595989915664490110712390939306983479847233227862403357353730335775030886903374482188063454447962075959921891912362798311405232079653220858965802482831930278301989146839593379712217938969901848820077739134037861417440923910912279763787815723842263608463395979574726559196248349741496265254879531383765356163447768448174590485774162658355057462959647899057467108597559106295490559062162041462815961213017777226746808400532791117929689693447977602426682640846010037539690959619359894969438280606520619352099094401964395482830939049233520117298804502455701632262687109836556861365553174544228483534572383280266040088966834565897141577962925087505960322976875023821049160984726225338057978371653218030348629232133309686163688068438422637603023701793144590400260072788576100171762323425550741225176207268183928994704702044735482117980515301000000105058009323125693412843191663772678274377291839288121675975715350477427826919364804188401069330811502718562189832191760107104518901764084827138675163739287123665274900382137500646471533034073804490396481028012101424438401219954061635860532785714916112771758867298226010687310032835191381614851902386860292474879713079384005531526067299540780833124191318767856380625352652494627532662047466201605831555523542130641136449165860606015616371015013844823776404633908604364115968678492927179725567025854344285510347558964159408430529248638371604740417829840214915212875515829503801540393825486039026074478829729317806044166603017188838530764308472613882702747579064162930850752971270687597395965127479814558216414640273035390515034580253313181698047080489847155556098211580336474753134128553531666869532175493652206565078808224942495726852625651697567211821418953965356643901289915837048238582615295793620111443983588830090428462210831234440489959301664051401273143934956362828884566544998724058978366293286231426141760535326402956294259397000463183901963247803807028565892886521495033313987421811444199313308988486722100215406382942373841075228440858885986743999920573798924923555330009603712796191162398581443307692814594046644487613026662491141645014621734476285712301074342288819024778387893212015200445333660348532436365841948949823311305415089389113456406051681121738390122906243108067867314969727188523175805010467652016309340790099330852635171195996725594358531628238147279826554711354159619326337858504901199566872009396802609352529896858419157999623224516478542600504195602688624690438324934622369783753161698471497708715078966243720573319771635350925063472848904607717382701098983541380541326411900356472072674732998779664629433211416683370734822170985757426193822304569165439936819088045942712083519390018605518698195802185713484437881412164187267947548101151162520184596351735121040031339319172192677104350272629092835134866926881151902470331061371469241859869609960352714964346363866081315004048946664421430194406716159660072118745307340624926083990970949161594910425683270756044203814463818091211163988315477270660654691980318541180990556358832810638913688430103242062746204940409608427098096804974761353931274569936894612475146805401605320496959920312266149875657760336902304558313643757677107852235141186158958950742150102366181350320547722220733269809517752094108412590624889457685597732153442771454058314300099492438270697656970597169315118397849932530863033992878379668195325734844700100338670547365640207714396713985029513134883460498980342641349372294551704288403098258103917487662476032467530708403353449894521259335354845879440902896354854639180681357923530829041629615458227892955389668290541202952811584071736637617874011674189098111011448029392413679190338596675953136145607144550360688602846188113803105510028329047378926821091713661364826380103807728019547891681381264238775764658210943007467413636869321554722150484740904917180874178370809058018379719409292221100291855532949388727614666180809406918798299849481265525741959647301177737267886975032773206731484768793874406144379313052894168016339639448608980811072894181823256099386406954436222929567447989030642914513286003633704132321606127657305010534436620569511034463658478279606425032115895464778240834856311057991590140236272911644113690438565210284821456902270500964600018252354812752976881135376333025658684106483367388551869053349258888157923601480508475539791201906984403693718757463449390718126689952192026597205296257399029972669425902745171352491233864586359356445702758053347565377080199565384352398037001551430647847459090294069145427575618002618585807345242524843200054958096129919999006646527691275670371543489732000026847639783574842038079244048199637339786858673396387164110784892700230572390698877817222435910954940044711868958259072036073879840552313706350710482784452339897148417827610401658213996016487000789051641511516973122768254677525909900738197371269743849620644194409660472155782968581495429512741311467767847860180027318306969885392853841647537788287167062921319719947638096517254914127617233088165323314447315093767619765331726954904057429513263480562701558807508845899349333640801343400458758811484886201682551840920522220187579703240291941121980735947631302848593293806185710545170861831983748735927888746995478563121431523437841039335715640763086179003732242393718272522800644205772011623700926000325207555898059597427756129845165098051924763700553928485620335575884285949913963281209790239237008696351963108978474235351654920016824450390967765263790162132798625786771850837361495503459924015176644138191541088440481335591771182067650184917693186152832550400305631913410797470215085963882566368332972413259701164525384743176647709141093245434163553289722842241183970745356151985552738045237838970700712907493060154327915985147271054675476668815824903440758297630386571592261186129052186629455725927896742026687283351222530968172446930152884398381294315084692695448343688052016948514313565019787812215687731635342148406731353274405675661547921773590001312449067610165098791886104330399424053294834957354525156680727592841209383621116692607916692883529955631287487543500775005940936720470178101176498514799098081676060190132624055549670574021706699667789514832254981845984256687734194040871903610944591539889188272871825008486731576067616623689450969597318709108777216731084821899660491179399849047181359896572250731457024186379469493273587488093125395460654009991023642106557495966223897757129217339576424541881034256693155262932003302890841238885297042214285581515327670064002453114828603495684862429070755290681594245056439785692804298823742118882378124438809449677967718296073806648515345424344311709718860480353733607672322679759441329034127705268653777960219454041450667878938726407378035296124575739051427470687090434724555983399102178605329959712289099901678429396088767305753373257369154241129213343357592521080445055751527248320023973684373055546220377376986882042829656593410057771254009281443341029884455114587066890271418822149385987598486390999441793229526484575412231675234850919217269522015591638707790200470285166970901504530778526182910879958970950472532924730324542354705507025301322573134800174772176347596994678534314385858847538715555569131980888672508186306824383458775995768189251330253177027706449180311310524468111920319726381406616216428198723204301200724792827379348751305706676698646122242108155106106775626318857967078804401630154307221191701695264307674426577942389407233487947997464860561524153327071112457175443516933717194188679083695005384165993621876273292617253636882854154015319053831926975063423340394819250265845329981359092001137628190699784373869530696986846716540216208070103088534901689748109973048629533721677007193694445069798284633487612755234302201766278665980786471804095267328295793940215966554255708118571079522968450354740698823867543920321444315372447693021241631059921087217330537888325079230476316047789935103627829949210948050917466157108254513667463637373465389494111462693304578284411030768607730848126319832048515781305335071346148423995401829940696584913284128664161919216021904185618175313713530659445421076500456008084106060460310074183001797741180332488886622772236732053810667291592727026240157304703859102397986227193437131388769361291739193739143676205634324399470979542912857430303007973161017047717719216737651792210586650740100204095325163981926226654107971589813197331406165381126357225608454014541143763306144967631482091429815209750220448788662034433040746670173495623295106460653669246893039295269209848416151876590965187742892147467028676304213991651271583010232338389737995523246495075656180873872997142957958341658427616672408018285521532075854431871579971489443331204180654374076478334177867165680001660915566625894904267555676903061921024599101246351727358051140171725458388552880083858245770607766726070495426526452925518158698529022099951156552282764146894072995140654262572727053623259495147732204753277430834746384589309660263211608021158173371626597040099639814363457012351927814886305801948175304947054288446525413471005131415703146173834145793059167267097459747531297256255878029088169891734492915720601568197288848291897112066753895331003069437713431125039488219545764398478561183747225787305011416419696076025513892330125103126575369926990256844023253144602890310433076733239012808843596316005163632240862510563491849828860300184857987850251508421212502496795201462153546485227799312848171597911972443478271073445168000741830057299376874358589844443613357881907897809339201770061841684724108272331750236389229953063838469196072079807449711441430022965079870813430714758813518670454359170155791862614797005469454616494356431896883783481615980235435113360810882125513150762797394387363358731753880836874451033875288584035128763185703475859479828791058774922627725398632079629999283751186543138342579093845526600720371257512171244913067504651014254615382211554081519397168448580002990080373677874469511957376765409640471864723011293003725942215524716345354825048362049995550743386607664040428472734512638600110284189137829513777464531540776069054577176958196505874352509311051879773926336873786683595921320485583786671911551145619689465718424143822034821881099484713975675029613543463508205871449690867996105003473152629967093537475008557330802338218707595972364888513463387395501107603628596295005749456146117379705764847018391951595778317894766301275356517142846227027474829447791071850121413863273935526646751502420441305468112918334217512373292589907810105421497623336641826687771203384651003981887432644185574360193986770035707046008298996849328765374675987574287651248032970790738478618036145691668760583059156566580055572235111697572982790845204554867867626598970615327440671566630642205182767204131927133949254518714439898884919223473824214337831627171072402136601266688898923200505488330261322540868793644910332355079980884050794003591269321862584574372476934009947801826569559674885829771964733776306186221593444521099957525468078496197276550482197181739404021690920497600267472241610670359908419934310390184689839440831031890276237756172127805654251214955158667815593420752973932741446441313617298269876727310317701775983358501496260102289801191315785848094984577289971579743637562123129074394339690255823865363447681167420414202169784682308375962663551737847306987149959907494135190719733696806943958027302096724985965801656466882065544154440775327364109807185736386161985020091647318412252621908401548507066287348835053934607040402716265147156867133638244195895739716952229775732049821169089389262752130071752253755987791905722986709501894326952144087203925444366196395182806620668412435823876563237143115588758572248816880193654258546346568145933013354548297232773777350589112779700033131399512920790741729800558216387794535910585531687712736958984570563782050701986555283079352695735712987239508468922327817331660301706378229514874762245923475310012020779267972313455250802224594119686069611547291579901644474889053363469714201038652545590863602187657680057845940194270932393668944702377106402408915212354216163792557314363010875106019308095886733977477498882254039060012276126057482107767433764348227482355925567664068903467989956339347641480320378297880540144656846422484428158902962227717391466780150487495944732877806387917552115854873987656532925084046573977509662487540035143950912463641409785506025554712328111950568938765385424127777545675332089011335245031203239332920490174054601753098124859373597916224392305866008220958122895944572799475250051956212745945791842837923451405649848766940948002596285522982964126707194105324446762022037055064308406471205874160876964161735029234035061689501150981898333183371638106479488208818882009590883677183163697513537507871582781692376294956871824778707052799501556801426272001616887140040043230093239996814733173438747690089584001565885724097361673379902758369679588946365601036732101891339427959825410116321126199304953417999749740383286976719475077587142323303682591420864429230557134321900255605241443917821556208464103322766919247692009568473608056222317108378572893086606528980336626856795011821226870053974019838627409627733971108181515329338274212464793714861987440412991407107847789031784725743090247901468308351427002078382601008640158703512397068461928882047753006077428743408774321039750447603497328059586515270606866392261597719837707656906878788935056371511575465137705010624809543744948330641410055846736113441061542988146681073658097321196066783159793080317888235963272637426507635093107408941484931540858372886498007762972108002934862795925899256494566091056088952771741303364610901572510151044049868795884034798581768428502471975320319820436955648492988925327631905714271234546058489559422780627538183267025022497854318144121277593894149859111705860629620058576196197950702133764370132849083704524646427905455831492576116670669719372269441131873576961985012318217922371335846601949422093829186018065502844766747186899470097484357273668143578472364488967788673197557593124017987605443857998757101621425518027660497739343029419048394768755950890050842845885356641007372011167046459804170706799834855944123311658056101811274324991291431626814354290159292928682336326535730585769865361774074498795250224429861131051051023996797111633064016105723659671007389287066077102767867651380287806071683002484859681063234530205706440794400218317838791766311318691196457556044187783273268473235062738173828170286831097927717639507367879721321381271607411192018095151424914198797159942938402898164352736800135279333819890631237966226152209536380447019810931378952350625014163288836943993092549940668163629704395249901094068948548667380592413023953301298851596974022789113148005811867224428634937002730987293902477607069491201729198982954494872419128347802639479140150638161900156565087367804608849642660362233979790426838741337331360954124725771146238099533514120892397340645268951509039699970997812442025839962537711760373842800449050207213086873759185992706529573687431378901779469326776828865166076628854038886191040895741339944625785261856828421972694578053191663531231908722370493756708305334519945218371701121812254384811092804149071069840308072544562383850648153437964545045693076501188212204709242443391994668205521051244188646685475276905010108869065191781444964019754900461875724093265845190259427831703381168439778229505817442977207177570219457140458810911138796106339767359913557424204329502921774261841370861329875587540486503230369971252620625217802993204405088639138409788871838176421302246319035058064031244162633966791771627890908083119410371650009402868525952071123585333402214904875237386600614020929427281002140921994752798244040818149745253152183763721714500131482226501076729901919272902949565840057337047584144268404469240836515871211046824017565694624525245924563829691843303838680725414485770139156434310101451772117025361984310678733858208063721364002054373771663434119741923343636503771093184514969515226826146086790935391939551710828984528114379426478895269598966141837337929421353505766147030617904096360931967904140905565120127152379355966118549916041701165051173835881604166345490418700010586494529439244292585628752936316400923306486399814296632965599023255546553636260565943578069252502794244712016846741456650385515190806826485404230233681163767887141786256187073111651351853604482851697414757840852611866338133138490929578316950145552076435666544781820600510918124534334628613594051541197025131929681717295823452016085153355519680802853977750266286217513474405542161765029287925626075679416703730723037087987468276941300136619659552961969543386774014495905204012677012461479804535674065596555064248656567240318879855693747763781238225176332237726474947964829301782524110609778364165979299536965612656767535700170086297046545312549263107416722063306939325987496080831021738564557387238878181021439944415831941727295040402677929637126757736941919000338292847528500977391163550951870797302395442237325778052772598330890149538296151739821236269289484889892537093931871948719542887467071374099267826303329798363054320204606182905766993211376796210316663638577261373296105025101796395231029653612794137136819443996740766933673584654162467961046821093401769505340547927482296579385258650866061898647579877440317815856576521455871237821516371583540932627140481293619731959724624557198225898050321308493093108844378011534823550046309155681371572053982622799865308831613278947366389112252391238292004725057775917392519823839492397933168968817578242960803173659978743180499979258157463677010736118951936883455506848888328273433989379904068674943625899455211008818224557908930385514031210203993758317642755031625480011929414541838176298059036153137645175451445956148870803947268072429687938801101598700596741466040405352803670772091864185364145011838052259965787476578809689492679142828881352870642971074231874619158244534848276588354422404105243235761086677265816910862205782822540884155981628679756162234847140260402033244430239370766289727725424686295273979738922902001514736918762921055484563932139585762181500705753910006937155710063764537541560250130175039767711911803326479078718457190744688176145233146661436422564920627227665818501298817932171792503222260276013392163740041403568334819798399274221043134451643856543064535956181988329634062742533927894137188971683448586827763764570186921204805259510404627851747550631831054996215439965098619274944569434765422885838261257349394289207473947656632676487152904507655961554960955062460687171459121617039599754033894376667105453535666836855433432957967272908900665150911348235823599835429587941743185325349642444284145988561374923072621908604423567395691281134036846528172736129589611541698306001822034184080379196892177755182815913628377161091949672599411392062267082990808554765034728936424066428488127684912288787982537952185929887971865433202810771605704519845165009251806386382218907126813403696984330610701534197943652592182070751050793730190336214542279778020999006675461982753451318649804743158926038491837026915601461335530274226268410415845473367328319464343408621013875163203117995716127022186427871709035640412945823054112664466058514504212556002699569768156822443428712714822226687563405898193835343416273908534165573349632153783152660067640071461066316261455533700130729423094862537285524205109674241903719425152636816503923707106842134724652336014487668725805977576468041249833036256411722930161829282891914991050484019389075306373450529532932920981186657894088184455265949377435826615188728446629226839366790712363662251303819541923531140947643699667890661086300034388860719694838574761837926699020367790839622942896884637762557456862764824226539535466041765666607458060004170774894780237652639995135587114195048023800904237695118086956267518775487628361999170969980741312201203164800119374855353167898300498632966164994297945240295283511096789537248238258055386210114342488069428969126764428892868780343184256649008497867936834493425363913369859374836200243994163678991917382036408532337958920083083092359205495109836270120392716870147592866437081984065136044441234659812968737861156478321495287473147199015486500737992132477441883323121748381815326125624486275317671401095580152813341203396083471438744138656189507497295083993973378043521868405058430657615361941690289895619327483125122664960898940275373682825111972118101766060757221076216830160414362148510151685934914941313213316742880819184456466015907671314800146546795137439051489328107694408074167221272317893558957614070000630389061659888876520074845565318420138599839795047320137208230396375922521696715630691112244725363647510066783137522368171585500177427395121807467421316421761762628393453666049532147377532707952853966910573780431221726356949850603291081791058300876634409259782066955641887040935322778018194254867908567638607766995986655684525357553576921072932986179147966560113571343806995550734353202705494642125489079083143238588055818937872391778085791765440250924146693813823639737583269549995296152471930392676395876702161715685559728156285691894871289593898955331475251959556688656412864076475539318925106706884199945701184793928596630981435775422852441699613353769579920837796703381204777826555545656253051096414365797450858326201534979133103703981463500212542590880742173950760609042962018226237720391904903306171021528335546305285410993142550921654597209694907874873622528886540531992836248137662937084584953925084106133870366587138179407476984386815643001647559783808184245364932127944631720544776006696649310144038787988387855492346328751153233934333706180137419605371980771937858709124798153468347295375115626541878954187907204377016061547399182099758388711513943623211219053436951305276099837614550468844197741922786986076808074135745106848792658498731064327106234279458926627717330614277939335145481902259125906222811363705759815507012930297226633825128283312137887887446965808958414440875460997237149195594901229177634525099820351277032932216443936474611389446081120294446438684056835208691027277375948202981107182582656084442874730725085268488267362598754205211094388568937747905881650154723688939975348942739579322173039055785655513923433286064058993613669017375823810717943185097603408172057675097143938739239955879401164175196002936415654573080950362734340551487749165621280974122705586324000252086051528503626701256808584600217539257666684742611546375519817362397726177408759383657424721140913838856629582359574905466369504635655548521883348629048830645185826542977186166612950894788236187299137212684613182172534715284320736736601984626546663878943284998520769134637916071793895114538797549621758775553300858266514579807624716001505684395627444106285436743043841671463038472864919266269140139777592009989420253076591860097873839865075659333989413586770113898019337311709605872434370832109102717840625271052631118651495794517509487459314212125529837895859269915269237355980362005848024115660169674388184793440477176927852763593189738655739535714009770118733218793408523278358205659567775432614967765225759269844656163553290432183192207839082924661857541661245161659240424426999972307156530251166747780410652704314554118458112558019640767844463763009624130151892750498973714952326357969836839790734291621887078341055303307456979237447310183766033793123067559109270618754781222068379791262520204462642116737630190810644917195031505891948555007893960618128226942259169805547941011284225782379140592943285977361963031466551549585054874799251601541765025491069349441754858482586792939426520667222989630453956156536212755490900468542310134549784967063246162016188613797927123031883846434029022864048691443082381438566913275172685545352735758421810573017420252437133487128265945523369300825888140823110725246177690198027054098708898464652858527205981832746175756576165823449447376639626733819538559500263223861362461006555588314572791137844015698403089737984067773869908200444548031912789453356679776546129042223046279262466959952343378949152996381278460877000869914681491021749656145453915095441294637449718698746280546223988356306897692956277845312218331303544450849076449528223094969127525337802831873476746940046842881130075332675008515953340885168468269380821075502001894816936750089055559459921053916181651983621049638775972227328093420305418067410926097509023184522649619218915620202365021921976360022613263152174989225009434305059078697293432006349904284803152415671469029138232364356739022744335246052448454578418805228908914110041500321166262889019551606405103559578416259785027783870497266900169088737312137299277191085134447177022516568883755715334935197744058850857366433431372663887948037361702224219076547898840399046954203592311358256198601439877974182989318018643295390952286001075080407288477941465854017902451153506642445470975242560683974366387608472212179648484287811396074844225622792120517575995845034820793311383523751365315732855397584497175527291279651943087705291524821950572399564994285809446036861719415609663861018829114239380706710803873482534046518794338216295714651725366746094773426880834868679782608751435697785343722119775338712681286707874651730576676187397494821780047779280864492593860941839545230034507917931787772732462642045154806665249693961867260069259359337411943239654334071370025131308717916606672046990424479310825572141318377003616229017347080398172945254350162506907228755250841969261177905381591847512522223674750011540780351814821938469926119138436066669519942552889183012717405072054367935138103284233445933401307782098584243229162657984529246762216710214369004839761270384111859757048630182735744886211701372767472170758859144512484984109620944482621043590596886958494199111204646321370315898368385991470621859819110247179712949345072071954481578552034072551379463771261147561720464583629659029944639092437155827943741312324805432821495325205834732189859743704147709594179447103837920680377960054767975911895437092314981261357386590883723925763445183444411117535222316234141575848542882912530890048265701794075507922267049344131434350423607572684988297101065482282649647405618175853257403021377061155727306929513810074362086374844119376117250069432865029827344639475304449236497228836909919571721325388651137308146133434698419294807554068667866157123930359111136356440635139474521977297530958888504207010569348348692319170941945078397750689763263643079512527001290252859220014737280263323462749941371765067061434840768152186050118868007173913318390020174963855869759480530345499432966255079727413833565071312093763529028291122788326598614142646878409198733870362298379859348812145145572144231639465629035809833962461718242107183708245357843846058108948065346196161959520140813690955171342896587041491877615709727787587628878763356084111173432041643149331342697142797314340002388831520368891780800125948387271801458207580039333521522155824475058561783384642331963861262893133960682463341281898347952251885725482612155624842847895291601126404636668433918663768763611168958779082718724265874721710311374444272107051523589987757366942203567370785861355350475705075510441151356922669029751360148795027135249551603814969695195781108632127909088730657337040503372759449095946975700620439276953374126256315282766755911837280433746168276970842084727984616092236441367883250283237152637673670444356865256101144570144391310858205774163463012108717178845692456116965976645328979530555644644282379356617323531718875137678673776700952967090474163655377997118274526776375495012008300218842755637984889574035299903348832928285492104259052278399609800070671817616908293915803101372013918735723619007083860615883838134130254647395565544973500607608965809253214687882643750324360764795482895225842968631567216470455667349901839175436604990105173958497227283940131562144019402607343414825540676135766259884274198639003026365779449804352883914040951213810356233034038978384747400224961056438403560092438253268623222771721446130579538850370206820698252992695757856154549970271535332345819936010937995595392899956527295608450476991265289428422464657052352547204796847812358046461253118023083314937021476095283397932710287036397959071198468698790232537878993222294085566230621740909146241121690429043993746372664784014928183270780220950958499203689112035832910289493376918184510113766028444888598440340118012910021462609161620417695081722126489978757114417121169513115097376727838784037034739390882965714687211897437062927550523257096696336939271727314566511467245577554076425486969052968145048925462507233743037801705969267701185373496048856591605739019103709602159254517384564046428528334654723202525090271870035903381864106953768228890111889725961960308418765386373533485242436865272823798831772154224074805723394398081430677476092510004505617635322270162996349921451267967719069444699186852875472664619568660321039092924816847810068329433676323606839373924277681950617505657154190788438349608701367226542537919877003485979145009651318621179102375640472622010869351992276170511360366867533269775320125156640762678306514780411230409680529107658937045776779028276496139453459157181341537026574911208707654127776687240905948878457737015868270022824042866038063342684948871964721006610832464381919047195784331080691977714703470016406220194238680216787814209427499524123479941598494077890851083189989715054540706083035356793836463661415700303982237753970311545938759459405612118529657704837298642583565851726222349062054033206705429527113219526113032360234084389302606598437419660702035264737806173126188846533982743692286216614106200541251292583595639407223085194755400677858469667670310972764374484826023344674322513911642756477479483177487574397967134673885983045976983202433275904257898825413557457549207522509651600767851668522684939797251103940710853400773044610279985820283125395085291925044776079540491548038833301968348437574377823036394178038373236386050759917327409395498812425472272792302259481993461768773111192472286485749428373028653003020548819018698062868693336109784212233726150206491102443268994812180093692591858489407372755257156930480309004503652573211769764145717953500197609108217752558986417759973731137254552002993389278591688920032782641218609979380093291053021312726970028285276680220802928934083486606391416168332874077591094393424488989499387518984386721605130035928087927837955487769500285243836490653519509818835763366770830404205147034088038783420268329255615611373615577407784722025548552183225618579021289592803535555469560863044649894850229997658643765586212673116427732632581739537069211946562430743939056210219521442393050180470400077802873689879242261536270127727589904006467787936305673276114233806400963125316522542380498221184950423261208210032551365602105082467091044156642775619173356412255036980918963692330480430533162983856315842133159027766420416941106921265010307110945372026619166489516474930564195206300344539197215593540825952019384750668251185874672773015809079984823369393141481370375391890598238558849223744298883260417730366280929999337015492633989176089194316347243602684422559585306778459029789462905677327581962396920844447953706426046519954839419054410556204644089269336132206854147655118388037781437530513195047774081851316037910150921742406053898510940927286405848698678292360647877309303011013203759022500561101019692975619605140069278573370338585815568776241563308164492181410658809315868956210876669817082824801867545752314680741784809375531740088766854146345929738494731979774069840869155130534021155758892115658060364548327333919244955729770733566423982576778550755992758328348669056120657155233372413131449864979090722247021535793583478740893517327316837629586446465367576033412801558830107655805118850016685189055379260286503424827166161843013741876442060708907233958161646629446357977307003091282629161497181887312640892204373846739120362305969257081347335725509765563113759098369619111386843036222777776920002479737040548347682525414456639269702294388640649824045864530213632024670932553500240128447631966690343209269311525460369353009737907857890418898141871239700957990627555341361964377276339533307521731974246282335936649740769090228335213643632665727549923207653546775294724545027398912373697944530050552492663139315701458489446831359595121636446139277640745121452183689933540889397098647951728798320321159959785147642760291810602668478175434528778507998182248251969310113400320347323209151651686598203338445500981791672073448417313486260512596135255506153881161467283072853808302191829692989844608877330870029387495090171956997407634405496685084772565099961170576790989073268290782243717933271161948370194890379685843137767012766284448507054250903618453077467971661107354328415085465715508903668588998786903983557026390604175683750176420099074992998535622747171331462525194362218396712651745327417380019526327890982882502170498607165313670896993956580958216158383282517090323598854056945082359360683150663406188775778554453825108103450814155577070005276083341147135474601083373941470189851089420779095776128330120196233634685196678212637581558656953796210431468858286627246563229332901773307359037103644105803453999917340296464488060419797557737185667940140593442644526498402626408260589688461977157501056628412764355303085327900224964545641430928322874728971446789740514398790134283394742345950513334248948646338334107616863646577954105439180089929145990586414708712169021946844583104700577240393342074183840745271236071791754022798692871029711536895622078276397613768019465736706469583893403858550866367171026345241429880120221236998440019948821953807752056078289628222621053174343397195273434896302176862363178662151819492197332097661899880939211187849824995937966364507462366703224967674058801264919761521715960920341625720630875589065509040294198137583236182810403626298625258313823360210492146839340691206388740353440572806691394436266003501777726823567783669431656179260769973081282641594844105249279207295140140350895523310705474047803920564508270194309120051905509818839942328122560862049658102521145566391047267732961846668718696606495187115253008153467025011454373103793346392892335209459124458521871435052541013179071620201357217068735609533960477621628594089858626936375430474187090453183945583221038868889687349440688219795493887459061294935025759745053318960156434630964881175181151045619089506209841723504418379056027712393673745570009360581865151250604551763375777373649467241448415003410372491625029020351184521199965792376971210890877349041395819165024331397027027544396538190890477581433061736373551126032082405790422141848735289835449405403960486605639910126570976013378498469750761248650005805894416803860960763394644408068659888376579334869303643097144524229174368968042435923878768497078169666637452745771760990970819857046393934015798519869907605203450818470389617607244250364610550706380203915664781266334275472082955686945753154730005015638546332274021484426133350338941449070670382740054614175516472897908644192558080897628023428054513679898014217434371292440371202665648652623214609000592106715273876486724625879529815595268364942505110474921437078099049775420150708162777596050201018460085491299748037319006255109447422349811444231389511079590105106159512530505194769967117810110665044008471759765940076809155229177288790063692344789546490438345105278394650495747038103489462105966049474830446304755592602496137237698426116706909702144748320623041928512752184347120442217996323997973476382027366358121626561068072138122080813023246868668149324524510104994022569716015117629334657633694140862667910853236925495972356923590072060968995047871117859915550462001407565073051040225114111818472323499611483668056776930209702252606938878815387079767265866570300832981354942711185464318220455181609573938067870897619497078847442554147460908017966283625231457311389945258873846343012023724445966584187634797750646730956509635341312589980276682882244712509718126048458705761521573849797031100419766046803268044293574573943146828915389932467388877182442303054339332933545213650762980529561354677593849156581637452961247662965294384705618438556289386626088231732721760526855276982877555080307087250546906660047889966046453087399880064586940079614133022304669741184702713667167061374738357056957869543519529114702290241828929136027867424902841701375419625015635298865711778531498579525440370393602075362930000647161802834549597600789970728359390862246475150359606939830752039912392175943270891383591616195789646632172951997357339846158830025139298794510520869364537797921846917432574160456960604634291146977659909262942770161885802597355145582124702439365789016263771750344544942989556489236461540331858290089731595579178803995975174359066030136209799824514525728630613981173739481102791047118695818773456364144936012742507916790981474289779536813204263945682210485030812348817383610196019988284625304035563075952090203330500670246152322287481170453212074429638422058473018543117726252498964409827951097248822532602185831359223565796591109596476840122076160835141821432884162944148109577330609521444745808059248008911053231967681753865420777141442940173556121399595396839094653850451992333623516518739775453527982061975587619345298315225798754097582317993534014977810018823867203637072957290645553773184263285294592938191409668448468740889439120700474323088272274644321478066826552277648223729079072549387016633863105985491812702206006922616906733703025043052043278440906759414071131316052212281403288996677846483902217325445001480101488881254955977852663495447004634511231583290369734422414884049516239829531419137376410818668334728997838700083689398945007833353892973708375466630055742163673799310412908987872960767295970830841636127489493576896908531403862154409628936270630634991045016069539221686451934541399057418676612947996974134129014044678603371077920430135109645032904222743946718842195203102245487892146854403310668480577806339158119858985513310726300025322091969403502036214283734220030390722080121431851058748017579576984949720856602103158383309360812807549492166874622069704626781496834285598133485814605634532744125067022819140933716855445198219666371008925152045011098754830965108928848959473982871306002468887901377054609706856094974585802955390225312731999024565396747970340648305867661804661400175288122121634833015928786025594910059267955620957301234201056807683284964591798464890829949175938187583278198485352270124299185160678020340700853123585245949074523986634493434237855464050259990406793822826004231551107567313354775472621371358507188410293621124522614570469491126455469470428872881302417938263766143843352939248470858851423405260682138699440315609453807806135853370551481973581261735106888025933430519509635685341053796731586599654636665537703075989097953432114119675665017017708591366234551756422909562489477930909802691971841551602701269442462022167460109770391933476253098540786632167547375309522615499412630339357259536510856673305375490216446323566527160425822176454100682846519032430065049784907181645442685957288659855058839844533542245272865912341907705575568170712773893502007304872036147694767450702311002000621019369200189561691594899607118774286822660849070060217673141025161585306384810473747807837968981698834055145341143098104694244940061108907747547098620660933102339774784236463790863318204790969577610183647084058785865389016697241569847744726992404144743716936960028973722237284162268165360929586698130054261011610509966124710691383967506352543478444462809597681484219476842908031635313694810192512157771898540225156362188298004100553090914184413384088215387041146725374737339287146251259575967134129483929176529870185625526701794362849475444676346794327810539819975958524100429409174580620579931937244152388346766542280038761072934482794946001372924057429534661808795368472014344605096602231643096984397265157688387685662068926529348482899902629623077795166782010895243684564049554586377820542193298401906920524045999716531200689117358116563919635250659754504890389744844859804272410903731968379255071263673113353781233737682047499575043671800431932614711811278132978082260701663086345842170934918048673966171889787997761938972015610332998678515131203934294314542775617927415908307646099465385481998199446308851507708576912947929897366175087980727243612307038123597283950730631841255267988320495565744724547823310066900019007213807198395849474394314606079369960985608306474296023656542741119891610999755452581407778637758205216347539788437719163646125931271634784489835335016273708179440921073549818917849588657150358388291018419058737032432402571375906153104599528074830429571403806564497122310816591661137204387645886628047266587354342183658945860841330291385476084396639785785159301666270239924499043221911991314358383934864089804295478254646970748824927921912150719618339712011400781834332553226481979909743099531671139641961955043730015821391851708422297696877677393196386667046639673619980291589334994951679859643913223633334789843781944705144920542709286570812421312933376851894129418212441558013312673571488966221692571159240697074186653340688910356525302396013020917737138315189363173788432707601934976169688537178790045085996728699233849563012675610147436864570166722492188558351243802322521097516969145423168549215436116590828031744461219766717869673990018261638817882425214385668907653980919473901469848011827599200744986089220595667225203186293342689265799253832964355851594956719302567101865390525712341634567668986831458902339292538476303024514281583766213713872609312038068150115687904224721561191619106499478998838602049180316166723977310937182164061987049340657744134459346964523809770988760038001899941314436617194428998923183131008046753524468893678665203066149929256668987457587842956443688084914239778449655633314740568209688298224022424454190468428647570087317777868233252912171772769933325506978523547423102069316920022339209118434973188636044683993549552380021902819220493100805431034423626801108877889690149636969147898236614104658359150254197185717541545598202269834686773864176554610144342786127128696184134857013544163808212230831669068813023140465849085666511714595759214709548656169984988724609044735554208876790825382264834324313701043487284325703502924817550722082993678378834332903895783634998182864882967146399719242704590374586213814993216838626070594045876542111643199624749851792911710926119103590865919198745135672162167617072980911222757201971690781433625513626340893354108137106489626796645900276271962570959957441485759851686305658899579043983923248683281046166299431685220286000140345923186298117091515206517127689632205681796928202831670088898398063745980384070145502159159414491715193654432578109844714779621574308316494860320205111794271999138353370909979273628758568052333324955501170490299172037334118646235025810879637676074819649420045351497722910564434793319086933299924126201381050524104700842732986958795786957964439193216672634215125517980871381571615613142275700940172380131459065326614079624129150627888363797434206889266925960256489204428057317440905013813188655866570264596525079804422987297506126633691832963334732032519127187443016920808893695337109804880550992108026480052831981291745149296669086243506183419766633880310450854927475708372647027558419292090102488453779504805154872222168756295537026507276613524613938622186277108619263992902956743152462255362904807449560280969326873408445826883581664949040567330074415346822218179537408172952473857713101791328185875521724546686337578436345931025593219715340029159392810053962705344198329263687548874750367513145011566793880122481278349520533517395225817480583528856916035434930642882915607157788891313363932172750140685954194605380288297959130411958117617614100464223580521920335141343296515795163476734453229180638596765842543437874498905983940956346782621836163976418531893673129244913155031201460042861539142852137139523986531729824017211208756572750435893770105831840259647541419191587735571311121477503193176172994458257669411663126459901748245105151201561571255350057828819913724866390027544543146958123639635784169364582362854749690104456185259379300447843657366980086629525120217970975921551226638720376117501595670376222713414330154149940392371930111376941220171906133231953844235689326357377472501772645471008895880890610699185578024164270694604110539136452623464752606736209452887520951779061336978663178231985029347101642903093436224263727945848496979969286483230211525118853545039463558574256500726246937946649639175324977442070243137904557303305358503430841483541007572755652669167600205397175087706878612309987649871717607653121385383064841384819813628155228885131277189723859685008895188040472173992739072769014410551838398297821533151527585931130093841086282738294640935223181865680408985609097927547548821863355204249720114872208645350249729548809536442106449688048902932587502519601342969450989055738611398035587709957012440290005310763256461167936610544467814152355350347076760384313984260493784092284856493610605175443955596479349902716321775971475046476933348196882507063801623745846727961914899616651945064947710050288398032143254689294329364116177070391948022172064199240857401106991131469567751942921905041886016039502782147926657343960428674844882630092061274979302528356761922052384228546194645657731011487208623001528635874020768931403181110968445154671743113261311341939457916057412632631590265912526361668944155312136132648202662845327221694519894529916846415097957995929721505801525116619730507796991542286152648246244080585127808856817067507174881040535983931139044698103365035070521790467027300106967132986088660035782791875076958272448747423228395360172099979100324092198004642910701880303483930363700375997176180054077736356186507660416950061831209159795962202904059754895262883318926009011234617418806218026136396564310762285196230743745347260532940829582772384705191633509510635798001525075369423736457675813251299306512364655040919583289779620474160556177275075784755928046834343955737910358013613408088109285083235033283681150144792580419002360807048051346674057388627454318351869105970999778403007764707082251545013426254363129269277253820978749601035999206006048088131660286431560547868708182815384596407191588054735372468894418791025045996119005381876806476179222602897721927349926188314908886192071370643766437211456371084074715819613890311283780761841434507348473742671979661035877166526244242789684618505273654558319968476897036009850883653044763904869528398186158373872569893725690160933393490541684700700698511201920478964973990022242614093434286415777979813362075050806090249448392367281054280991272552001878217959278424402625828498835597765801022576426807299446486952012650045268021789315095650253759138222625522933415322531675401500202195497478762287032271248375648304957962661175809703206784930861927722555134832286375809150405753199020109174552251332115738742620286165904211104508696165024765597480154720065031884773251497895166921535045756336890354333151664928351787208290452493991131294583516457906685790443873540453983202322231107113332307899647803534491363275568164354205466658781294898007369317457099984920357077315659934391281620419119351012639292142611787361634628286189659537263197850394709451243790891992257639006176580084212965603598295886856084632409235552613090594800128042608489922992692865443627363887686909185498111498503990668103431874075871600516301516171666905393470575710452524265183778307994088338232849726006561571062988796645861593627204650281959496916075148617670468675819779664657218247083838639922210287696130928945677885821658749183005123033150331894209533998684446883086087676396643303427538619617142650424093834675724180134341187388968882482543511821092807854531920693916572932972486101821875505902656684857562264611543146365053195255991166748619359481510184516061839429827509252096484786547184627774251335382767590615067738019733375102009732170463491180427679460897176902962870675196599416378178361266410722393306184951155001116632165535630920843953852397176631198324413042251230376308362865847078944134191731944867660766445148580887614527796778295832082210783434415698775030092604132719689237073365294807943963666623359561093335567865278003223709174897098865140306141150176830711237261664670771023757317597841832687141671643307530194407907816684336957728406830101839122500182044994765068052099827532961016544050948674005025289176510950432094886552368314524394984081839138476717951628964445851802434477978652478580287869609094921917919548363202171877556589460874894582151623507899127454961470541534494098654589206538465994939678574960746166646730483154189016446647674743859989239719571582754683939127722532198704935096561860415808268280988692457165939720670950987799197213664568490227692637795929921742461550070038611965430024873129443959022627274253578163240917714510591299408027185897830648694043947211661151796632107833086478837650855367769852242996462837191533358676234332587331767064113074287075608228687850894792368261877549842259093700514613889419691740548825911288294428174317236341209758980608320822747788412407326472408722477756189319925782712353472908242732492788519712855255914241882009630115480707560186417036686477035078101171784848564923698252991047527451738554378459068696873005551020212897590461779394646796978160789253728687681776991994108755233126891126497787356751607330415567295386021285986343801297280913364144513026605239743422586071905776441700204367060657831573693154030464463636516489719236920892171724591094116429889635364554083378660341512662589368593800043810256132606799250266748025032551745988890050263229989749267633885462539895468053429952458544353507332373591517741456594291853339337098563847654482283532164994392520640697866478985185677162103059997524419949365609295001925015779557235131847588962802599482617714525305180070402417025402026888070895999396249031928710199934570713349251470621164564386293845193544906793515220730126630742345853414777284535509419388555337416586322835679153348385202017074591539724584764234114565759684324122203117095332739752453257177528662005079053809538056858523839035770341604048117197851138563532231833385909559041422350343266837880987550901782137388975058900296297696565734156447971314000781790416794406323321155364455800939024787667540926979703933149271718137042307983587112418356465168304224259806094711302870063387039632461252794090111089944031565717425938281752060772797800947840692903039774776313100047030090838745274833510159503053700402290786111265066788018599868509827794666226220177928939551547763394431135497212832371293367674361801572968501137428258431253103496194084490486050435058289846228671629224423211102036593170602910399951265650968262388036364384377696761782576183797515595314211857451460084898107093383593080398148956628509343431232707707312612584833579224992721997831744146463212990184719023342018932966129741165060078844449356406254511490531417655657049831146290755795529675577857558732238869264622436712136255225808483378365903327748466572745445031915765281632297738791536300163354354388980210958517374861168227568144877462930816195715553822229235096445559267867890105453580667737029499400760080113147461630930277092841209185234104716130559251523163420327398578521208634794854655293318694208425064032957470408336334232294868696349775672182251314812718395758429147251111510396387087433919113523344414015340244596361036610738431252564027679944687618407729780961238551474812324159986338264802744209642035726517140702786764222506836849137513788261792733206238312439797649842184947161160697255202950380050253354610904945147721968129819245917093763584108879322663427644713614970220699309444052523196238143182875131508779609080264366674754111494669713420222346440447016396784409311069010656630985396999547246370784886198075894570617772584201080196751724469575538221467316107978521253588850440453475239440229502024108241157955719356190717189882366317345314294301343604388016744146828771900130008765231654326067011348965017416492597407284531881877599071619600359812159171550555885803564245891730840400813006170497371930805387218762613473484114101732725605206326577389751967136572051700267982037072308478738822671599232711158137061362928575334572972372300934863581589095759495888281255533520168707359458389410515582340298845628474119018358413997447786922205520547787143425138854906378588561093838539457008130015847200232719371314183457280672531878957817207428912220443611708763687052576055699749483030009204770914189646363318005824779519468589303471878107751216520229979154942561818700272543192600802713689433741132166353927287868280767778550483026548466565028594602027105031732050802928595000625065142765211294864613050048338040596627696569209920125105309932953447625544643309879394129249285538966997716638364766600791482720372826695469988067955021905878630210599501818533838246905168831543377253818946182174136265876812515153322928833718529645410107096518025325182101221563385894165669474191371906069836146620875289668889193100132111766930367850152364643592855722910379621251279924943822857079888985113073111981990550535073225284634039120266707533288139831783507617564712099331475694357216803616414774582035916402051101312942886888233872324208517535946473138284295189952649722783030930474516361222079726256080450832337856156528216284764824836216915909461028113849664427947157921925408375927563354125237538543186814420727342297674270602409642423422292548699084647920414377209226993987634897823873704177044761627324828909534189985526249466547110634894328060550635951674022316719408384971939467629915320628489613417117828028210867374323772656308384771294445149348171160261047656308824533349956416585600237154586088891516304036863930845980232599103331154859992327824938493485722021874521302865582663138169306981576312651902264984464997132908715046428515563658503975249379901895704593367495469729804014950476650502100516872005893064422539579014032158945804839509253399462456648333302984430297786350905630308600409128368639159619142491541947182099251437128596720499945893080617435567724298693680881849072098691391696036748214765360320433218719525498288651087403688121235370923417072236820582327566338826981483882947425656378770059541182995258060199172765901024851982237701410645142683429797248055058740603330699046618559556349185776789192256014579585787577442172523533726849776886576769056739182591266906019458513842027813508688448959275718485873631480336961926072972822234429930761939995751573650710430752281951075862279025170231848182724838879201064586686451555999363715672694736173167080736856999182815364131739474047893046915803667251418425880678565553314180997230044670997618009951142241434324310381166091244499168362938689749222756226001130015512178237094011384975995484126595894136472008686534888445619446222757636649075387581911907602311002139498704851779026183040659819979745817190986794813985520957571171529892871937966648219169416475806498286926041211355894696587644329499752110269073889282145456450164758254833963092403008330703157415927427108921070674728481167397161016809473768004217084367430680572753678636004381240888316962082405078466092511419983589475758074140583915639567594664435442567618734745413043778584065068612969664625211708613508429351191104800430236886985845662500297310634777914385435900772609797128253199803709665037040656571892934541866779377928931775865505232043139364602480196491267204040441212762576512466866972968115602630145179780302098937244899813998928956534234615716583525382801913476462603880915667864650017560636371826797290996961068565084847884944109844030548398981142067459592040158253214532915436990533239566743382886744398899884342234632350314776930225270156514544696434653833579085169466796943629664724272275748598955877513436801618920757033049908346135112723916821754624565317755277998822054657110616888770047170120398493888113430739852322159670053375893629860518256796456793480836633058523921349967684699247180421916554043606888151624180657379014654840547068649867231459906826737669920400914594358225817768212644676044066798838932485800778190289217597808692931659755311570826340436664447296926677210864918343876546846360112389068405990222990643088045597563888429340935713356507361277979342957125789857136565486795296516630245576602121018852261517585383915417666459226603914475716602136865394656389732203325104584172761611961250212160267008685652825179263671030669288743228939382561982640295154006556512187775304055463336795161623038568692864174485062774121687836390916670817887902030812823516419823259242846247258432657635345189647553890150731740547472082717529609132248622267556120764332974677382549347349967180408659786948981678947852849457632495302091061844823063110193453538741560554308576272943235815950604973539963515622636536555226468908249381840766761839946467208792729091570191696874757559900020670613450944498617156789703667026846352500844013802222426176117432891139630970088906358449283662131519200723297547205574772877981215120780700510352295682287727280456117626445900263188570165891957490883160109227736693969447281656013899486790250175159523130738063138004310878988020442324877309544479347371577516991696636269072027914351318956110035512167441866687540767400055469770776168709256356331318543460161478548814327812885437635875947480584932856646963816959675714097777427790097528944619101874512376933155963998858052487390823774964847831157853436331209199963151697193228556396244243022254117766363243991141581163096334136042771024298049579290834382405242459160722999466524350980910920428201632883459545124823816034906403764139172502396145335367780302781132536549796180469740988053865539530658246447916630746967543089708167478174864520848561305364085940315895129220544733688528972809378731781910897024014494644350085142331202910430055693547992297891545984320064327432995940536418408071903606454733523281218539581752678110834449844119980150900386315991435538314534241645612516297827122955081143219650419383467241721498149027503546335375974334905338367245587112061889598182663828877268459927548828317687015260117632168854709341224123608629727172070008022107056752216665318906455797166831657807421043718468238100843283617141768873165945615354955417031520464260814503190536173354102628502537320590646218428800945189480568238022768627046775872379347660422523229561419819580652186292294313033468323278652827462391438266494609119676121219744301384853489260823562930575749413760238077368264405899503943534970641849025725833779631630883240132011240284345739804395681016985299200822156170158262067704454693470012483822201476819063018134852989661642803683226900307247928482245707362841473953689541103830325345716978396490195088463519526666953365365207261068958256363354012746724887525225036249496408309157598168994227776328700390752062423970977646681553978934482230938869866460956249304381600378500456493970571346792402306367720548723125662384230942545792755898051173596894060524737147077589886682426599104937027388408957890612889545033259621694886935194484487536068742500438989078022055425900950675875986013414014867463591386999249578826235546714851620674087577302452953552288492189859132086774424655576984670288616936250986924498312281573352412595853137730051829039794996253060281976925721624515338298501850795574870727164062088836942567294130938905528146416426244964929856731235086357020602604148553550978656573248470182128271046017007704300001256489120371780159886887795703737727097129826246787633309029477960732772869138434330685287890546388713318048088821812919398140004033800662940876285626434496797639758346057832780129977276819487933026582661040949841747788520045346368590205082275836501967740282029969913365030608276129855434780256435958663669865860230667203455482327581182715641630957215394261642366979674359902693670248847916211888201328989121305615540171893881656268696490694038250442386184013413650277049486696375230854058885505785575423692377599580977380703311731627119566775115306290324551086823987336756838188173199690277399772343834337020871142808885938022601727734399275208258658342097172919969301285859290709758730594584415374086673832021830621627202702078272557697094391638403593609032248826250114323177985203958062372680812177678224919458666820454262765011960465534437828105311783714467200985681865288509121745551096427655239866504170040464749572352330373661655068056396802586795390384316353725541301704809770452904359320928399574574690398739708984844827722437307927531900436406753802069715443199772316044368182664840896562349994169256025950153475727175061475812650264292264801607015922413999822114811885860416588216337133465085183287306093800891806214974435536309234410030971809645556632919941375457859252274897868863441872023876874231122398619547236085015769836299904129274279196951490577820410579168176041710610809387625979782893969928746232923392062793366238751435267757720921964174936237715674079775355150552720996093188175544535276987417603560395115069868710419017133182684404438872037617442230183294752391158811996578726107001545508415206337479274180142528079386487320608621348129796606307703100386863113287896078955998058107580563010015470307206673029093292305137391445087569053043230177897062260354632876469177425711089400058667871497742576337932368775956181302723909129301278155287845138206934315464020901533229921932945520829197572602757325453566400268509268557637793199977379465622237658720540402688452364620471865230975225465310266453882305992931435132061671871921103688759192573091510028206852713127810712390595531341547950314454608846898897236902192737712513649897003262133656456488666427777723641118496547063695473511856802737101200430859622978264055365909280571059218029842001339112428317304815163272750924444397845052537294671987203666542875764880864294362999130178829614026499593957438393909420160191558759245160522671381231186695648805113285811281810289862960187278891190629397000579834635880288225579798238291073790988990280794496859951189902478324063343787293480641621979157603538750405807135645318914535884890042169673058485466942554406085233952633381024862339897215988946702885319064755769423684168282712032305874686404366149224500055047085129583163368442631045306528124968641780547597201960815496785180395844310848367731532493489020327995631028121814463817846084662286040854546269056386760795647274892963747622251146863277305158363662838519036947828280814774356235750367803431784032100920862462905222217669129741714144345606483633482383553895411191790698704789122813819170647714440949776026921934487368500315370831619032993078574797295357083623400074421211819553200984076456988615078013984490562265977858798569884963401589027709627131748290429995144872929964018864309669527374645592007016033823253946710130387327854154423651616185000025202372710497652172205594250947378779324328254325002648923423236173627236971224052902907682582131866395042508074061257220641100139347930715074681769645521976879377112308474326630978658266970510753962083658654444498473134226821595600367003057324296133707643687149608303287926836590200676266675949575975049151342341195678116718875299836295293279970827417484742261392550600015693765747885333679004254796327261386543957874282194058626720206320987705512303938267251008586731189262119202592583376971931394934214316956549544128657836379602657841076729196791521828623309523844032616046441821299838367147813057232837266774986334663302704248670819627168532203391444529013823301417325157627068065170443933167826572939585642454929205047367973756420768436956421783818859168060117555417222804835563787110714690173457284100340861935087617467481337515965949277331315096954047332148706337742559797347112069675488687733806633471658868341461290297415026839036224556368874311948353801385640198875039879552269153471549919761555346977143965400446458855144057013141949262627001048055394050026030675115444844788040406519875357643187526311343814354268816530218089413737735441080890319679929204788636890058326785320579661919256807579667930218083907428148691342007382434808619786520866859634149313892062616132780265621039962397250433666045770367408794755324021889282894740787858002207021778456904402068527787151730536272814622354429407702586186584481240087052323695378300953702111121542485093152666144765343580530442245808204923902455846586195726756234673905672127911421875460654243139379158099255397489643008450383319440365999178054861643668167501271056173634302042744392654697566807904702248353825688327303809603575168000024450559346472186026563208220086753523686458448681014959968731598287391171638317587853030863917918308152116938734652366375195655180998918958999856768980780805382709988249044076490270625454530452633297158230829548214679555919862695995563501295831276603270815466081268906591195342778286181002121533217204124337388914224571043794531615522549537887521617747508420918388770488310587312559602821092546381956127455597768344116927841284358518023775375056510549036007328050965687501274644233307009366665539071824937519479725531039968751765516934302428038760893582264699994108409646622784136006724226904621188516923696365405415593443471061981839342743978384889128372388095115985204183704929670532660457760151300028937262464126443344846807847808166023684049125061300997531361262861088635455577563669740153719513823285628489700707930142276193600404943214385770330019871783794262395861704116072478038150478761838397037140398602285763045912430360691932916490223096932214272347229275194686976526582438593194641273984311748532819325283654315620011639072767497505995076209361621953108442837782505629697417001431172774743419073254771421898249461504700053122673007075262284033843257460871601759183072669786021346337279795713174062163076852007664436293795807488972941519833102929860308142505557069303424441849321759155239272667144948572635826355845371270264444472452956873476084047621586776481977492688793471274468681790649306057840202988151342980977862486868737991979450312591746585978921690679134559473167442926587433227769082907325773794067868939147693320258064881900650952062383075009462164279123132906727861459141898114002922180219149966264268350619977633641358688057287336012443051956590894414048758380841998382493265875254832748359944656652015027652478700544060216418398071097405909490472174698889923215940770382682881028497060526767439544465883264480501512201265024106611150904410350000322670193304546939546747973255650217046101204276566689693013020110349923524475744376950185542364213008258109913231214480722056289488831788054919973187770960980902374882797400937970894060713660919477148386934482782302664554607448190012410803221525462015593736487822366528847971824938617401531330658245062527214027701038409601363603134028089078620465405761486423830073253547878903002582692483153841552929879270819286146589235220868322183016859440899914043748347811312109794094878647118083859545700488721013814738560793595981949667797041895338775661452033232536870183289078752619282765867905408024562588845062176767200593397964677633053073631243861454520157697945677723936399564096610773493979917451823276816163353222390129179729744890414510354359981509447868954422875811554474034631801927128816940283953621454767959500772882140828507759025666831335157334041609240309387720753628403326887049343682141446143524896755999842650515657284098831664505296505875764261595994550380940225060094191940912118875672977470415781889897588320258777090177179132347027439604447285974086140423672514095335708166485345788360860370472804187987327113433128102011808621180847680595497646832765979659701143749222562588766377851703040976089857070930578850325928222507558640500475343327622179965025921538111074624812029933617411345097661199821779914312084480022009578394623026179301941098949127197074231427497543770843248258475857597609147747616950842484164870812063183216200935480221780462892970215841081701171910662029905212475117055096931390248430492258149617111751056810455824887706665821383108532899815996231221966091536487207250617271428143166196622208933320283190399281735833229183479632565683894696719973219142805354672060610458910061723780910680731657243742045980698787642787062189187019827306636022629764589982765375015233533580496289470014308592886954300656519787029524347520981363421298483891185891282210635542059270188058468253549081179981707079804235344254668453444712796393028013316593903907367425193445071522948833649805626117857936327132785316129590625193045770638787949469164080704065220711454149491306676161243548759234434735993097442958091626315712657285730340819432878097970923654644537384878636502670996252437964545283603132539388492861114270757785157409731278918533362287227802951916043185672145600919732752113295711305026043738017205845606107501385560636693963427171182993933416160169376399222778720307577895322803962769408948397076758823166004109302084729847134180967442126730250173971107222653964326775401524269520609766048428627967570191926722137095437517252156189016146630623917163907457806901467621511005556332891066711734356084971993664030178764157670592995305848875911694295062757919314309703057004526315502712731064721197049311430615741436700973635267953253062897031978699884677453302148882390704048377534331029639650456904856750061676495112574568694498515460231699784298941988776199538875187964000187900532742528387871980886121261263860884958594021241652749959471993847293444213923845674468560950823966498820252683905460587215737293861335760463207829397230602735661179084404547148110295200307831776715567857580294632147631571546815292177641153103136819361400218341755185534188123102074603429900932551972622711680682483940917679287061428060988367987121814736451575890077714618441564436002355204273093896656259057515446515324679371109158561534840258362960244381465728673255723839069222370107481037476112506205540485184847037676747424690889168839069574933722754419469949032748599533679657633351563543989530671098636455588741272907382364843270174441983394271517154627752899138111770984206214437056848524294875466150054121619033138186959976631007513780766714020149154345004889341537317591367095783832201672554718242904011221279505369048826762604951441687856121016563718270715839621787386449074335457759710587845746014028310469001020160210111278300360497694409988286760268325035320163333421692896904132816805328428559373173859414690497866547055241334786834975511127812533212329323881842173400784107270304543187354456472700976794644187671765439902076592926072614233361340155183651429787635411602374150422600862255566564214813645360253072351822210807024534756601752981700216168097919237994907343135242380188796465370264528204562783494185047060944174472797701046366172509319238361028311028274337313623135703850802074408780108265327137604093302448376201321422238610967520165735611346340472311841272376012784691177099102558948303279519996538383085829340250598562870002782794321246509071494628639923982723424366444504314674837664257611460128980884187390885769386765071663578395122212789027658980189621457045160050856328667971007690530989150060743252792281238963758316450639780670974495971995613006068881947816843533536362309711992157099382850093906999944175455250388527463427253542786587684031634335324453695786037428357324870921883482979710513980767025986997146554744094245291625924023973660260323035474526652016902490092166647171941147073413216290354642774382436444659737041143148755766813701986426784793298072088799686383162755568000271244150466180285879838581113599053996960122101351627699317607062676747876552342464487476713836098764812804832623219432700883841436322021562383434004161841201137286349648750594920222292669906404391728325361667333369741644229301116760054942755235828251370470122383133000928347235910119723010305617758074781761958288705412438991680591045050869262281787293520018408781260952692818076767053216308819207166532819559050210599319408854594930250532436716278539757979130808205013955969643359493294631203732960172977276674728018865037626734197255339339225836220419957779245506666620450222104742344065489053218200637534357248220881368433675997773204664760438534480819813365020106474289409528034687068822183455317825639616820893153582777681700447037683797178329753771642591846002366853292106739464104465369020470422058511242991184465450841281278005897840049977381673797412044382349311020510959292509390345748557328700308496398091087595088686527658119628050400820174156357424030639789991772631678945173533544972188491241496019702617855232125549315321612349278730008848363079546836346657539316365364538648044205865402833885877301462314258043123730140613935524288332558102998900135817159308308729949049226863376844469370158022170251168604287679366094779080828314781071684631968060735607156624068071085025844183236711387784384110579798649193947443253035366125993077796056794928789167059158639372941756569593695426042436286228953523538981320685743737850630552651091592381351092576024264081792827332205646470895817816754274310628768078375716111901327069629747552674472970815720461210637079636038604615899126462537396008224200780025840185112973964523073155846521496883118586482433611106069884318172589731341942897630985292159154562187674142650073001823506532453902242689242648319894667485244992241583357807084236337144491971502161652833705597747161081686909913538817456975670605550070899265885310843248641280193775416001933973789252675126685588986432085529150581543514002218377273989463336555428297785549881851014611555765787853405835307841842066796772861205905817761684203663890775630941760421829666891308865977897818753712355556627200383880415864201081061382072731925512147844421303026711113292138585660497895666585824493791144400273942490292798472555919948841415090103859363884895098551184817290177988400311645524727313052862782481613202267930075391535858245379445812853335537165571068166355187782183497733901487500586849532976388807272723765333724662138897046227618111519902193303563841138583388358880236378944022218257608518642996706311362191674588836338881593710310985573008483312872109603480874831959503363692001434884239138860356302039894703252413656134471971130441845515047299848233662188373925096950359313896465221897459808681265060743684050186689644601906299428835118178060555116072675399475245211437013884946277518555391601236869564331810404371551597257222506551478813660719885812280235342114461319816663929232283798440557701060659181215486257412640865513615819421599871154612516132445380740984204493263131739239231531426027341929416576230805506717846875064765896061854275494189335000966938286233534033932246745847166917471225357511902231349527883368166208532875367238400548317013516863822663193580407958257873519859613247680676465575209350302604695485668959601516098218015521159789661605259568855259492779182789668808372339429640764509467904781629743089604834077036148312043663398684337440691971102144496381761265845680713637659967360364708207533881661555640555669730037916724988319153709052468148287502237993636226889449098128088352683846659144834554938947452719872627811284641785611197841003325669451254694700516066547132972677554119622482515199152388678049011157912394588900617903495490211805193229137944749521571306593205005405904205843244901615825772201318831436109022339292512932837427852702754012133397326489332722614094972092668617468945935838362713850812779868224846498370670328893921570161541275831704199287069378647471405191312759460639720265129666363757682063534819019964414467726241682754791866105662767530586317390374852035491527521495479538626699930934643142295509465750208720519526125782440849533516132309220121157053267632076015822463474685432279125121419504263349230483684991293408858546764687182718590016305976056413216164921665684263966966774265911939586731687324459553817557185306425085011201578627830665853593284589384848631800228178763567028914310657981917935988573484225056162922384525561189988100563338239411278895223285437367078316948774633548136069787991600470095974923794481269615330767930055565025606209363639408833618019116552918236693054708124464599257335373935291197402092854303358163959434642840574676602591139985954606177958959979046720635790097822592893498249225104920819825853652330416654369015133934188651296151991349741882105400446879169557415787662439575182196156408848412360911186303136295133473293631717960774875410270985113507407044798841301574591414684370015851290909206451057187690559126786019729435540873254891883049611028505110634648892061924282506761174011300008541003676059461170270678421838419060421243716802132011582809111488841842431017083087321123277750248618259217728445379913733991243574043402062989456386164399144880309071772692959284120450472723446277230408905300037859852159271703271308195024299741997330122390894016752292101994147195238941000677048219767963815893395738648980098179495122324002213127031693900168561150287159015625685105460295187489739167950866971243335336231461570560069900086258277329695967948233422315588225878191184294672846116924961826163589139768181251998730833042187430318133008915688036251287108648823001426537401907236850321528238053804589571028055845336456298683462305238699626167259680529194929232050956974608710356136990341188476084006895012503507920049449707901898487044712930280246527406559869740637328016449662654630398324367847272281853130546061602852561477764930766070473290772183747677493647949588244885589894738714700606936190480705726061278070795340858644071633737197251066461133127568211698900261182973380726634729063622432945765655345302294038377171849234988633393909485988294649518458982428515956323416624060617181786188797521355809320672525009042603335498852606495033265342605861182694729817221896798281544069871467733656078517418217514598004842358055599462164216186862451585541525307738788769841531665439076842749878489088237232412702152654346246074044056915490147715471620034230436401133262951394918196662672685036701114705199602868976983084107570872853598607631748191673213836367220942965531903185332461075679026373692228321627057247874490975729809502204809104997773157767369008746287282299821888141840614830054452701805602716944198770701988304304317961178424687969783990778595728655175436842734426480888542366774834113637726209977751739771480431292974349882193044340769183836667845943472780310468893938243655042347957337689465164901084741321972185678933747531138955281236375429753645698518879154348559905516666897394141161309646454364417095158363682786994870718303778956044576314726266118264000135387653505729908551946392341519728176036844960667704239475743066639493841155743793869839241582426418710149495284002699189687222826656720619701478450202186361267718463913111910178639812179275907557893655829931823238747627041727004923934627856249481492488199515395548718740559729854990384960962719485517728688067458613591666392124774179518579396236156908039180626838367613160049665148925154453375890297219852693703797007686711685639210581358301085924845129069527815243343026296786481939724365051539236379341208127156860725864035357847127558044649322373719293139231524991441371531031785972943590388504779083894112590635208950146757068435303510762716377329612087569985289833013593282920828793504481849371691781607421460147997286871244675809653401458207813020716331052585105000571887535127633024409725240878873074020565713870282193636582652673566911327527205064113596890887277609777527848274016722514137981457440304931879408604624247237151740019929245316564738488575226321031675264195342341499892223976494092449892037832319044833763268423912549706317173076253972797428115101165764938261197258764080881319856199245205236251507933110556573896415751735308248769642567443321455003645916075855524100185057981788631003592201864603981367841859349020709775403582477726094533784761640223173800541481227166596639991491438198904270833479130981934662091894449125096133463618534877022911882824846579716296925724322766172411173118954645864335068165818181187180580147549376017730861628228105965096324564978861524794177682327146620296180714293775549026276789742288685346950624897006418654678306281839459830280977678028872377008378910745277863757720056101589623089494026455822237117081184511138721145091610907048618302824490406449371356311572444917061271951311170844876046036108385741954823856404715478783835127930906838416578266890307201155502764318611484687307638145755424306475318880116739109025519232820336073676596285166006731947872235993901046371998666703354070133091660614312904223827048760067596793912689196593594906861220882825827256426102272553955551076511738351423245765141376996872455738830441166513240883664788193231562946617443593129580288400339149890314217143360466655316218408501599113505088713409565817277520152323263211506826222715625241272528126297115516905306799667593222331388146424396218407130335258458092633842566422248871195924297021449969523904495517707553948210555127374536758221232659592058272850875536004242106712122180209529627884559726372157942146247308014461558661276118140934265538994741324318417271781622576419028595111840544050160784887880865202548293912940013579363016137283245307638705052385693642502785026324912630893355433018026504089220782951215824029986880661083205783796493617694749052196248334529274165103260982650721332206343795814245985219102303851717378367531210784463068591058403153905592275573766129083470548662363784311229924498585532002173560175598182949558688152464104475255371540973599807171665704497334206464168927491048798818543790733832373090880265722281724030027207162800547123301827536928943725258109453666444602543722364117438469409427263822043016858801190909045390010092496242826679692529741752747866162484033404081429640469798793469236583129647732288127590604900807223636362969582799999706908518354691593844971426787704469800294193987836907559467669758209634959452849384495955361038660594024059776343516027913469291593591587974249775156195660467126908644878970032036334144539262135826421379785334247073503078426425924441790602329312685450644925500812783880164091729809008371972391903884743078362475309383006457635807846517308436599669074826915513703771008335691690975307815160351511668130262828670546507629352661042947224098328608708872447198329330155886926647369788078954843931025526278822246226944642737766007325485845395067584569659775940347241615741996095290945364182041078585320798903288024091842027695635959000679539245076712155266742849632226022004362811624469303094460488358066129334479571556878853259594584500020273038220048766747253356426182569872585424187055016240933564991482568457624156800177959705195376842016482035746852763404215848937068518240603093660770384507650182043207513350658594616498415044256639402509954348245679332101394227281941610791006014676887681173009262320905210812363376744550126787249096245859680140547296669433072314353081191009174763545673521442631210224376315965145237572049919190343135246591811144315765138131899350810620370294454512193054992489613287906269209910313575192055874224895648367390108796453057745048326028655387503901919887348000706503437801168416140432530233903497637016724520220299902127683000405236884137033349939278018796941737316351366363946941826248132397026647056197203078360404393208740378387728825376521397685575781547030244339490265603246075838740941279106262466090889756876063486807694798435344167477777138035899961725164623772433480973859606285809691704992838892102115557357442123304983243123068574938843892377226417293692671829002909482567886655384693777835549214584538168761045676127367298952452311720826281107103540752489358487608769592433650992050356061726683495564348435374479016537660563997109026972394280730721664794928349582580282675031426071697351113275670374793133790581118714308622066098172902790634052037498331279409032366415164047963638113064246379233561284038296025584128778960138868651905410973622481145407712787335062556904499207689981552428370123956932161710642583095940322603293194218315598121876228814155189844457099178792935386675239200779348345075653793879487157062611734218348084100822074848272560278356124150615508407589530485066896126004280938383476510788980829085469408109505505405582838973660955571050223900908356864593426979218360574399380728070318157610616306149406371277052877070681057795376342594507555023076461661093822478658132119652726342829056427258811713309681358884525127465724447448670836728645477925381964240247733783413560299327049849154502558009841193231807421626874825325034363704898384037470907421251751964110047630203290557184950626482415103077349541015368406496178751076414720499759597575345942079477946363886276790596956781685853009145397933788960797989690546946448483696995423349824389729096640191843254058863932690993524970136052663757051207564108904644800105529301230786272186674743655444939038776268939713134285294515071708707629175562890384407923211647586235587629838886865579530738024724226472152516827860935085501332536575434676790545823908626545903896659332144788194057052487607953340447999713159427350499953322768551751124338975996552886224739131308337991847964079408333131406691110664684318610191479453824263664241888878915001270054701467889147752145445949827813611619236179610528046470480901707026919220994071299317229791467109321843253310088411116181494480250175045654764033901231569306452583254946835308674924372504611841248666684837471266358771917595290782370316007451868623059042354990859133268316110088663773301685285063312515849970378941742718226254082170270806161552649101852375934011396636198867793282941785905771206732615688118324184444451367020157966774976046207228865493355606245359157572227282992735140954240385209635310151527200696615830604868389813021722854815905345879996186057617079809408486921005407914097618446296573145695535046765193937317111844667284347137179121673486378460981192572779397259682806256661212593770480032917125735439510049416314855528326083017690251920371090916494621750379847013270414461997424474686900591922738485003681827042002505637556246535103585221348003260770093764202660403670075689512360762894794564741401252326890252777252399703122246707586850593754110009867762419931058904322340749785271929249711736995217984913900340892134222941335445563172992720929356983539604121717068868452292992262721632678535375532654190942200857373265492322346284442527674602272044932454694302286526859045536676017452586797271841370740666324885923607648227818534828403315536056051869176150712576742221022577579701859737431796915761349052220645413047106951337458670171150886976687082829686410840771874182716978108610845310998947985212862078920232967529612194763487147504149465476285382315920199377731595819764017795483501894457350477923814914835764344727734151568433612099379255572725280055048864619135088001191497766722301414059533078637003340699793745162464013261043853029506167539067545721595838227003822876565558276265162539236238233893809715750744620890288639109725469397667033602392652980763568988506178674153608706993272717903126776545295177884181938214356488471255287318256796381536956763065117198767625581182322227134124289615990966023040306606741300266955282273974936355127680435400188375688337567444702850176722792909202940145880888097126626867481787933123755292210837371206005207823961369041069334008124250130782723262344924590552207259503457996894180185504000910818703849249137684195048088772291565279026383862111838859603825099279563205924904413932206113437506896894897638687122688595086976560751132923796576425323226190953806503079363620174958546568204031051594316750111395162978991309093251618357442664271681176870491438280620908675134983389299743147844219111156850279604187411062950263562455192729445155409079965107250752116224490410914837436798970302388296200534678551277191845259095023856711335224305613283339973770366731417478709517822317238731004949027967861247415836542019790989575529802819105723584523346813018689697366730656575484749557613513452628920587107987311535062123973861459166700813429781420787683294252978923711759974216220789223643414536581868613766372892031735413292700083220082905802760972103430080521805869403095417380413509905108896216442656759701626676101900618060555717079427601704244348504899982415443860220969345373034186292494191265437651387677934194453431070824533864477277485734188816430816225667078251770512295195798556960509569867251991411057844370958632472916519061273647132568757595454641715451516627580360267143116457105804730835066195918657291687057931337255232979753424552032622561173649913331977047996680290453460519562816508384899574022239214638947326829484739687117975112569770079774797614730512113005088471071819135599965172806513375339665218518727350236621029217491058705897560941031721610570868144498661290594870929581208633422790256434572773318349629988905935028201483453338829223409677987125807678715953434154181903394817108400374654617242132740481174170480375999467579117707614811263541501642895130615688103200491737007572547040422577980754814061687969849999858132559801012554473419702654594558037218625572966201254825853759822275265191634352081228300839339960866489511737181163150070267026089665738650746730659669662937967040021725837280499992083182187137467117081603013612835282640006988619052866422266635260502428867997267918381379121331215669221015904303448329248644348557869051002511390611590039711301547642509655490406992670114451768091287433395515879735930936631311286081091543520379434631057672410464990903282576958426915284924049728483120395624490633210597609307245168202916435236495030649891981411591428829996631037767700620376678992290785608723152538009786377049991350709619298773609228802285660562105332006244063927370332719056223063410034869264942312259559564371343798401716362531142806556101437910521876026844200431330165338373237779664212364563680105660097478262078983581977458838598180570897015937620249550304870394265910719123392618427664473969384917143823507649854403624356498820222345503267331515019859981331717588381705839255667131871397110287314309784898016224638573710133831685714638903765893489623917848543975025572364099733863323140512159135503781843940786724048526420552189088131394926614654548381188394389041861365975606138853808215742144097495929488761668650359556550853305755903658378546766738292985559508738707203427078794649166259692440719087919226673511447081137930641237258262421682134489933576012235328485096287942457982404874250094389455470610144967386802555481468674474335675907946356930737198740494194134714017329056487761224427329526057261058817743461146600475274025210124913058514623381974466694348577700848588174956816195611324747227582523859066197914395974621337918894670076069085226166422245400175003873954858871582714911095311692693192663100224225810053197628798957702007835104778732389178720672150831593775929698924563067855809455402218176311837350547627286738375071367939164757188692476667012790999024690875977005034648796240073592211013496191086303581073079852322758986569475803858220856324839845384537702218903190932604477607384478841889509921481817204286295962545012453563192460427607978564778887397541292575395096473079575036552935279502401948321630108626171364314965287927571058733869915988865401836473852430609861123975783928137063357308464034944602562908627110288923822911525342225240435961684719776952637303119189560672050997206035506967738136749919775162194992339906899992159009188036321640387329963560424357859808463033736404813767419896116541017909726093770174836778612860793080107395706081137721297558818768151082847620748987615743460542861398089987104609122694862137713372090665939367340180729076465619532271892191262122523766220651815800973561222953709392413584162886139814106441818718281550004995984918984879560670416877696574657472504348875310076765472056483019026329611186502363541050702228444731410923919087747997331121227718275223360002204015738620016170342480472701699482475354394902441088736244949591644535686427525099827803404778286207910858636072741032436428831237719559233806952530019351521687048942732729395998663020927092961256697641527441841058277230484791657281775166488080356499759185841334707983420243903147187142023840414933222164463607405504501040087112947029527318000062973815649706594893697372807114683414717414408554813856812891171147897862090036696807757884832194824946566151963330402638490269963369173166998777206429977493505570226382952473550615786614770109827695534044563037126876676431293425078366712001473790682822372908721475396543196601328876351009675194574878667904202314713563846655945525679050653009889425869341852195296886173120455604657617408602753308190511146357154498649425737222301155720970877837758582355284038393205913404970561211769523563154330228353603628727024031299118547581148990717176727913690406057911083730620135376201260488490957100161256455701404502902360393858225797903806798356623202223628533701753042279482925778766913145104446091891513785121610842998293327091699010183212859456234835672958378813421761824763036694502194716204174036297814357441315851455908751025409606861062131349213593533195367407498646132826454177743719549487542568853328262249047376672811004972482565016149945923729765411735718357446022213977428682303469163437758460585863026156175532045845266421617341966859541352458802168390232766246927321170112413663512024479025238391504144226853742537652782511450404045120644547024405783833691108496561017950106515905904745407470301413356548184697593477701391106375144298956998091623410806057026075123694531229803808133771655336399520605223726524605316613251410091863308697373815035960598209719400691671435226871387533050105561181864087435082143909743459866959005648396723800186285089983931467434171356441453940281877109800756673833861370320915417366072342327832128570003995715935313882786318110794832729431701587501074935831462612809952742173729829131573567226080927725356758837678721677795460230284502636658497786650187140499049556088119228910357224133595694345715390488577698384092132569800742210969800580787349812104524337657808530252119403364388702229912481051130991340275473377332617743638160433476385629932649343185621259938285432007526765484749395605578197550330624161863959246493386079508171096856580454519123401986933952016051461214332429122962858367252692558984524166286673602825243484583675378060098091215560416003720146370555140667869857537267703580309479675747417658334592790370219033897093082866348956023660783769899105099071736897521455026566231358456356032234012553782031211040667610615354143661540915197458642025083976318452752910239296197940862928896122287659527563607683244090088591574923045232303778746634699866831414381460046059596946716854402564481896816649574601377338150586447863585164519339986507281115386743704436505440328796581375188027678287092790712587962135856664874997350681746930305971494564423770610982812560568507162070627483625999704335125296863824349439593422378948439200998099666215467135860951713003226010579125953403164764932902266150451287903555082628669319277322586731840879714383181385257670493162035157484733274732003853455801156305229915903125564098948769844216051336734683665829569639735618736334987205332586114648319019472919685290735318725753981775524053163987811552662978536528238106888881686480558507045940394742523468564227849380794347345149490118007522200570903614931206218087891609245879091836892409703627528451518622999393242616606082403401866563826724274798736744889610646952127235494981241335501587693519284138928402665142977022875068495634742467439599954000915690762906302687896988515786968326405352488452767807624583149530541029937821211177723182743229586402271611676710240699048095955459704756822368401845863319382724248797309546372462819323117300312598875725461864427913291569392213192661911736406782653141441013208071719874740779630272903437246918559168343854470454510556578614432642795506834953318415282967538440939051255845967977618163143253278185002876987716027802771711630196480661820931855115969625748406908310813382223498709489248914907194878027047325399122352145994051807973530427269665252333343328933184644569848179266674456578495433255681679844550029351598177260005178385758579924734073233797398265377374375902622636052451503097586574367436097390279787086605949493531156179400162978372649016114328111650161688573364650008979378883580509905674899418376643773047827436573551749783102333298082755742579789187593388088187088199280848333582094895347970517322135887935031512217736924945285509711502025602751678734968859611804301816262725102759197463726481126682673617539357021363698793149455052558330113426304242647480273432317997756876370631780322363789294912109204288435186175673654768879463218601098802234001451327035388676538204851422094224216937755833282755146200782760557032363714626981755095522863574742598862973112853109751988957605437964463911552057717036658620333514037039974105457895351709782328986605758023968975095193675856667414135858166882347529592520218638179232187369877754459773876515545665002194696522320662029563884676643380446089113309777724087698343246097915346853198183290153581918622147987346848153477511744268660586091321244991484150257867822725106610247950954308938043225971990989902887969029928459300528676833405498554317823681344293464978257660453362954787299618975742337788889813070911555626643332457365281787880728085707877770366102670357753702158979247958336782973541232927287054080794533624638474964520007302163274217899413684710661401114697840954393891663481221754941134441273674501065064151374177972132668307261234929430319561820616408895944260566708677888453281872447163900529597482860468152040518177004385243531119407074063169695837911194562771180723965491849508192570610104977497426542189550835168230092766378194728119959657809662062714752110118583481971267799292127618697374644208806275211063616327271156740365881062188367927482505101807550529716044927200758987069209093207922328972724508276190053225876835776513163908365130285816884852513837013976805218375104123577838445897576687987491797905042039711017735142939673114949045319291531899374833236133742047253823373267936634052849614973544693830246334516478342784821194437067204358270783023319829651493670312689591826584863579157925051282386249719268825311765149715019679617949998301447197517330435139538464519329911326749448605446665709896773062216096452305785100653323215053497344716469454491398672909676677726746971212537858149321560641571135138784147939954359713562234156155131405669579864221068882806041546411076198353509765524155908376086187439146548852062709919937111277507268353506255684056376404003116278535994028942081786277682579953441211811595966425730704959701578012595559189252406125162727043512266450142820208095664387151512656438849348749766160594868191387383711720588569117556853006929671487870343877602623950709368503775058285973720214238294307631023016374713087612400391840273475663196041019060132918795949231774356135350200621150424386392549023961997171300123830582934050995683300578960006318148691238058674809541657103935716643312068527154812610583335544306076931210362764872507474494724772171874759664358335055217278182389666388682086231012403941920953133664276664679893427080474677970030319078133558273805179034561428445526079781240066903726381582233105841612886128448981531492358415429773105927987889163979136593785992189862522380591889440569872424274713153364056918681565227640867201671425130129656592407863738771182951193776444444217528220912527761903678267362810404910392669473732041374609691087285369253843247559523952145290791807925437843998158744789008804728912585159048393510189805920768054709505993370564958390915715379210315019742118458262989972830997185276618261037101959576001851103375534616515959647230517167811443871774578557877142190409990750303166521233322088025332704096329755252848326785952549142581117620275322345382606930894906929053059036285111041823412851055596443988348541871733067342016904224912822729556124598938638644360359322157412233459802963714772274741675453468970707820232524721200880793409039167476801924377701814810462918774959638245851833930633902461854782290181785572273872992682382490093521991115092230083554589779545995159725402629179234629252086802843368040814359029418574748245291067382712699732494388386610606246405921156934960321458216564264159259161649589330814407868481579685524768649587901089463356070774958314536973131883637291996724925458007933420422940393797137058069333334507760398059129275292082406517697087490818161327677391629618032490141601363436373185566559599483363961936546124788086307409355810239038663215283574354251815634216716317468373046992269338086436885018627929221435884313486590707895790851572313975526962789685975770021358991710862567767442570699488451189995427367688236497151641507567867474095207878601099921613922804324586924320465537918028825754121433780630244103770914845688482260309091539738948217339473631106651563773328733780231700363262849776187789837428192874824051359504796138585420987963021560646992035887677806237601107861369135992707496856488485372699327025241222934305636598784791258965457593501354459712925021746699390758740949375641842656727658716421551956226645370389192909071666678363768408397252894334827962623314689335915968236033799943436254918833602452705808482022262629161000515497209823511758495464024547305474285917721413120178566443664495973436612150277323887824211197364441554381401089243291383943685959052079268794719999997878939252296921139959492322548040511393617190731060122835980706098129130431496177791654741012165457833892783790382046664525995084046047588758660064464900312629552806650208441652131919499089573640270173176483203204441943160069824410713728344337305990269514147310136174452426321264250088522502642602088984818971884653943936191743114130188803607884128133970554445844677695449171149219648284674703442412323570799796099492132566827293427210541679483580030274700329701215417567519708765242073395654827368337016090080635667659746735812923439410738336163325350085554004254499346439093449302998558035786538524220150022498842618958887923875750000952121888050564650839256119650251063571606131106661143830927034873591985317905539770551146905956829990832021227629373097223270096743173383198341497969700209981832290161505183581639456816278524710034060028041372762497891790392786210360611438971347743336949927520894117232080694295045143710550640478545642314213981619052125871627661983148214596283548279320942103454760055172774014209599877151803267542624575362049697141907394345606757589499413732990522483399373351858983374886047481393116179906285858057634907539535899111941949145665774538905922967784714270220894405840302734182104418732550136499757595138802845638197394118022108546186357192239366646489263780358000764377832954252674332276234704302066050256838862218191745884203404064262107140083086289014704681507605281286997183263299713095979090161524306435949236310298140453655494294528102991323905645584313439704814371364317722317609710271197005587990756846825856285831863637331948870486108618493031876416599194710704396982410274726097996825481021934955840913539710350662625066505363644322526727785726572857972728984010385157142126288525203024020510383631019755348376983348529498346877757800600492613389571313924708788492207172876529884218651517319069109109844590273134263326261420203629392864050259927352121429912570376142728615142033941898961408401898627965433890544641324987270912348525018522613213965852962270236325517450661213967098208194379522230127314696164310455877697894806242197404253628243699619963429001502787028632575274376351073049119432614760372528415146835276794565869986568944857433530161958030908122058320375759291014214521128578488706763609819563444342275255887479028282418209841815075841988427068637311497103948171758399799216194648726666067258762292550089713068491614461056318320369751067616187978640947398308233894242171823064491788352296615545096916767100099995181208148070633985876533379735706761559483030114327822907182280935938480072621199480744280362719899232615274687528554056727644092229353765856589180646618352619665261614399282397483307799205526578645508707876477300431426209077820424458211420820401277371496552498722903166166006677899207668512183596583797545921096256137322065086657426987041577023515408800545906103558732533539198478314152897218165739821301019440264138880738810611277418132925060769734976486555156214427447148329574958646196135821752377742786913103802304906670975331832278171120489344638072467452699471618363054524204828543905697595187979205013449376847270649813076017223137532806795282489238482123083181692266159696654249109366553241924741852323000327544557789726837785938425946334278243762885497236240666557746111222921143969896189433142567074184430798621875377233982886200052977702474679917408993275109412627839913531797455323441413939118341491762920647025435901505117977626298048033542306751121347268143906683821230399862528908761727451610420426153092950171418101569209848973641334117713820754446393363226856747983361818006018554713740752677300941668539247611388079962733680827743591800745058877809038591544569318743893122708880942192427382146974853982061887982241913557293334460008170748694791427931242337585371443907051251047202772596246727796675220667909707257198492461788762089455697120769456827497815130305695708669538539561916139115780652724177170782193571684290142184718087502336461925653707970383298147541816697025883231454103856869164721667879008633993830695685590283782514923728114398861867823758481225997856815709625351358372762004687117034475826559531394061460628132598033206787363503572030631775240040506903083234148419677943284595434257317733205512300611239843766745443818102960008576876358194277782711509149394065873060315050517489473295365033268128500807145653270903856461375068252376485785067068005715637228217927228808043778464829951346953227052999763203118271443359332925865758287092811164818189772583405790744930730620034885950508567801619719398745227115647141572329480116315139611853535740622255600784018475884601787612206747501958446514042418775512711348320174865365686849967364380662477088016634916128566511647613990804623185821514223082875572976953880652216090150064682883899607255158086493686290694653232356876142127329389959832897782108711632767898942553794925367548707505577353878811562404283456426387219026703227029379239198953824807502004354934978791689842903318139387040311143874829344138122540095298671050921128424448970793266731122131726978354583215663396364843321577686840119071636273980002393675949942390525240106728174570061108716600030964570313520700705191090514092089021543780666192304576707988641495705703455449089730041831121200229494815755462595466245089902042181049854761678969707007554699923417192125977051843187586581791358430718079397362463742501600573596094122390075313246450726263028536061410692854361925496391776099990336677311591284046003879922487924970727710172016914790385250290297115763110357715908514821705169944162731534600741267448777768277994663046957902735766620153533997988867439930788761420571323321718038161124310756612084006208234899114103616961398430903299296874201311899574763562782005733142346217729835614910741823165284111479837827826500239707116893053182560381017696416175210927647475318739746771871015223548107643001468070136230548730233370974655254145676540434298465075137704862654506190167848061637408389711590521221564720148972706329451687169197967874768388594481571849584826449494485256932505732297386249159235138464888997073496946221314150208487139430572167333544203766080677486835328299113781878004661015104432039966265073448019673795030568770538769492442609766647017079611726607856905193822082729774435502691761216713341691252746224703694562885387449906259637314126568161886127446963509657850812303280528826231682389014786947215972834084822485479985266560486681064455373845322237168111076095825170506207254374231996614434202101327872668619830200376671560242985541030328870868151086095312312677110520795722718179877194596853041572183656473958715707675196095233917421421150554858640707211295051020519669440029871952902864465862983005589917187239703660249393050375759316480284492279181264231408811814722718863425320499581624502879159054071366402984382336439422642080214232062620438274355832403382431971129457235476452852369707324301943047466499330053531155797900086757686216727217015395189776190032865941438855192501003547054929100659637661759650827536766679383843223955324250611829434364577261143875568793137770679939419004639083388479713829924342965518117558874408348428283423341459501920479737634933440391783077347472027689719554953815974103603784383972958137081991082724312130293132029626715884587875866716787101034912593588152952849167073486706776062653654620689028170541097378588700513450685267581421006556235949188246591524516775694901853347348379064365312311983925420983536891176675442522131377922091172319714050304685321134284343510266882099542108350962004911165216248276978960072498845503455827708886270565720601942073843786385758843874720740562622285771034266417035509813677453509515576404722125996401938424571399057508225525988825356112377212672965736601930509292503879053161420898629187934285134219722468705297692375921261949370298531460261315430778607241934109780717268383776494258437181011531087520004347986927441262233040834844679414935035149949884107872601632790726702371227219807703048852758806394771785964916834137328568969403544989584554113556394343459815574560236008357012176348119160724952919039557823947633401945358398213248730412729286090891010680445483482640440014969164739814765967479856504726590484132889520401973879758833933997864219369389807812320470575237131704171310984490194538971374091284799684189471986348122592576590282209075183515861893817625269717754511082840085280363477370246196082074614134461942475788027313605408128196979158829773582293662248510441347915067609676305541987832069174467257937152156725112083721344967551975528381156500452337506162079390181447894511699094310684038853480265051136316221558289688719105012043297973572189627003002068830640885839946852376630506892087043419008149283760470491512046044826466022547812741106927964598988760007198492776524901072328491668533672072847967325080146386366758017901839693772693691226610441038765948779399834560603953391362795133774993387075771150530147866286189400411340656283517190164043233321479927659918069810338574981617950713533667598677785424240397495519857833793061544236041709967688101948856458307860686282952507430398897222673848854147713759752683380464255307149348202075815824179198255577467736176273918617256147931991704636588617464086719126270472640238714818428764085377120712234788238149807274516318178276765860126861686816667531829983130742635712678453362408841685592216841796135800450642066474528913367876775728144366901280177602261431002668853698686179302977261592797048397701506723978731298531202299850750949188483662891362851173388834929279118216759454828203356519948770273262623915462197757567780442304301283944678108225295999115642114264908544915858209391172937165270708188312250329891523260696890540224619247915325123602592335982037254947532155579439621676325968996516982052772730867528611868925316538324259229492394803354930093181441123391718116680852993463822095451973993660017928367974886643534019244436526637002450107162612837878840149279045748276473582508150687736913618392147248574165462049211165937606335761772355215600041390457459436527472983273949754229045637467282191551691787687069794629841099331087370617709406752077891272641449827562104535169452453989359351664613845197922433897506534083730732587261647273492475020365399870425906093418700868692136560478730174481517010110878463109476326235168371076226302902014907023261993618140141161211301489081914240084826180086394140505425180403335736839848289404436975672254944302995960513260353385277717498743728416057984303119920413443946338076452979803543003900401800948797443311088308627632655526964969345281921385038272148868342703056266795153371434230520653147915318354938771350995225372752616865318935707630448496824078946516672388431051211223518508030055673863946428090305350381610715172169377831083019354992211571155990244661047153402322585040191044981243913058337946310393537715122940838693675371432043075795172371388238566539685705927077643242918717021643343944984992675707387422750287116067831408461671901982479725121186732306318145470652672748258743717909750077235618676109473523858136451205257777126989360877265997872643066868312646277762455185977270702244129763109362782509838529051112523466015165838402273727755407856126721685958930210019044787332713631995583386782335522548333152089671418928372126405950361729271443987074955725806898997032780726700120295620847632175840371946326142466054456784617507418178709901784910790880161815784225149239190165728794607203482374961688657881435364129199952646194313826236997593927892484095643342760621545833856495281795616445675900031077820593033426943743382897411041489141867230242700405121958222192526935342208849649347738751615984309438696906628327333300954643561473487164545423392455494295921163951888960056641973867017826856229622816189943385708909881507827635244197108593097198207709214554260882267181929658441257153669105233010364369230866119664241791074560328064378181488838531014545627728857983025548105708775902029384721360709587859889037664978363649700562700298954079908617293886072594171205725053288086602787814712053125863231830144295003618066817603151619954630652531086434583849490558792596019782131316522198566964589953105331719496908854725661985237872320688075188248456782182438024913153591197980409090411683535220567261049130981117235597019631409990136677018446449826000577780200926185696071474258948772965356078672671029515930208633148830834951804154590388632681138324687270033027668930301636383610766868721491619870491744797188518101130670886456127815785840022050046226246451730920655240826120433269890640624464625799335174729285533937193563007530432086869929830388424539128686127603511955952290420601402905973692357669698384702431436039294635590461531730387928541449445717170227203300469629980548788613852469536996094384285756723226444999837857674073489914560569700973708846047243993312884943610690810359024431564061565328030573149110980354959742485544611049561989576105823472142368803422601480266485676112763626897086348626289742029804135378952724129293627645388003451993784584448325118902593179367256841307541937256217374598931427014057524558646927557125364638014663507128709930744212798288979234127544188832107912289449262780007549030297660561316151515323952753616636790218152778049570252448300247839019641637452163373674850702352859486808765751017475405371966403338542616525707277402246801650989560573711930680861296355637645497938202653903935766907303051458719534013770567682621389300055996114656280733410631658102606859691520613152009029186900258777489678774674637070712784944118365081178883641506414611157276686480832415635887444869193707600145827661506451941333028229578755506913218805049824600293865538998277045283842257398740037915510294715254829025726194338189068573328701558213800362025033344927116958718339646114367758025261144421281193664570457154277058944210919139570339509811230650320819574078793126964926487618236131346535705947618075194068317203119566265563073209607146161535160313019589002374858251273971429570085970238214920538972883297922169191714678064758391126816283225952453534120093362253459443179891450105891927327339152102571305424233580208587280150854477542736704209702999823978275486191176613256177753888647777213501282399991692266093539565481838240147328917596386003374935595810436207690492061074031569942276369469693350285123867905200725889713461963004460689361665318699551100924773338005109130334555470494084974878998300961869078792129363031430627290624933490692431729286537913009517828688817164728653666882280346969381363650764323570076803261454606503043222636795581000233898381088690991408301471487553408256397224480587183352609164809407314375175193779482787963329279061560017008910323773073898032015430365488724561695362217340463106179296103508382515700046352984548557165787708289796839746273824012898634632035712868545723329353552054511245814870813647967800403808496093358528467979560972360612864743400578282774688453669414219002521145897923568898005424324256875855914986034243463776524860249395588188148760131835846985202888409600157631728253641331637703910043072700591598917516054570449705742258393877564374829100046635827049836730252700641984961851013530190980164772380574167896204265435324174591596481483363877711562997129206992122682872081131705626677751754825937885884270384978672870987901394327037076879258785741099171932749396290889704715671868057296287540049584966238566061831411564547818807423273191780589643077051238701292120636284851130215485667028926089869357358997172864049037683216890882800735154973136989616690392497072228143680138452132471598342764611254757386815595588059202444477073953860264311923738642818922870788748053757007994429993156547673213474308672062408326573210914274690365350102470709519735281300345872214004203107757298845131098316362858085147743353035514522564082421932784724434679752370077359771509874311385837169346769428388613111849748253448404653530722191123083587611241210555603937127682601159326360735041421700157199294776530690565436005377009853633529763429104407941478115425430918757564502598816813886725717039476395414610983697807663583664717089085854886817416939484602395075793112129112781529033358957603073838825036452787886335284066646261364577592137665863049552880463202127384916343640904378002223003550499898872966233984430587213211652193561731550275838026528264846676437215492395921301567998808388195927906398888665612118793200240497190488821705756101740925466387585560399814709887082625756310151863006324494981869097114737041101461480093325149377039250560940365925391302023203590391282004610013712426621707827025444434870665018154454015883973794575501318754805421909291228344760887071781156245329822648818715585835152591333951213001382134232419834454051582019300620547003443805392393593493495508485751471924663634936930742301610089926188933218385487661802879045306494296402787005902831940446957432079611258383930073372786526548819155894208067726739913427050480109279350683085821199525042638327226926411402163978922011464296291236935706171454166315244045419721513175341724092418047666630863918017235362239799950389370085463663530327090225497879723328166758009796128030000497268174540240019067701872940935713408163620849269974851480976507702455666548876800650429606192966402182686316885854725793029410669247597091699576296263560225824895688753207891201118957709307201919741715667555009219787679306394009438462946919118147862008700951098861194934173534482484034686590672594923821857997398897680933531216838968790512410916896448235121936369192607626475366219715198952991254051756424550631504231029996005507239687867621993191604478906627391670771990885262049153731462739878979129522297511032556740871405970900988504999596686998083631020196980397321446249244274947974417039276252665507189690921131564020409901729992729997989782801301938172619946208910743514962794194819724763248454933312124129411656578472079396943895482857805425210287010900994087936571816025510070424562417538323739967965419805741625605444617126890375929245157819332991352531671420160407318894653391264825212366581577424178836116272753636715657103442133451614791205557312290470085365065779091324574054234704506266404635370598805631890108493810182180862302832164086381139643115432512951239329895487612459735686389867095940827482933836024398325279916375276771219946171639651720661068213349279454907473934421505093526709199418650073201334572295866023778064350240462459991559429796784059582889381556221541396704498815391569800897599060671089744694916426817310915426006364285595727012000580260438150181338143264852557766407772397314307018841184743604619956056725646749123620619811743758508214209157661366250256200457577548161050142874597897702596791661450959529031733417422289776066942377441546828152007285274775319032762178336741189663536654850326434338953411762989305508771931088684829052616930556140556998446626746492235041312993596986747168552065175711429613821600604595539438176128901993308696549192167802671878052995484154901006711349058682721026524157787863572908942967019522609931418213606524693877056648404936565510423355021065112024311153004380664402094655068590438835435163798792135339253343076627761402061543335783394199823187011656031936505171384528399725171595628276138242756492864219379275736289909297079564506119256185568972875370504774621312006661808466302239640914236925603788372487471857791182554250161807852419553151666814096471035381147595438642556198625346802873033440930380657741970914737833910008171936196039537544685036665596219163610410431680026371845086129474440196828211320972497907793470585491108030658126967415244768026850289409082009358872684597246060965916580717712961563652284586054357720267737281389053959709140056318166540001685977345693537213629120523010746677298535291053805031951267508290358419584713510914220548597867440926138894808634555429527001661950196080756454408331745592334748557186379727289878293040247982440577753136795136609454789198583248532043426416506149040051619272269546641661184969669683747479102571718609782374525513601986293099844265505650613856368211234603403255739861499247769350741396800611760918761199865404977249824558626233887347405213723042724871302930709673607441161888870925441793257536782311490798591619489342995191647465339356303793693778900369060950286949516532242319321658647661889117132471316424913420714098349204960069650621390829963562154568311149768125833265716296160449976144405058721679465242556239085246840397108173819330450941727607615630658736530906074657012616694786433583070571893371751242307791211252170471060473175396847257426161442956879296547308409915333219006814607595181282273606635721365722568826626640726274951681014983225089875457084126613032738933433146418814544764629105039369561195416319990319075503084336965858664162753104522481860730896617063755291504190516323436278393406803283873790469351636739681675250492334202157746717942676214049700008859646722161168124580027056065608252885295906026364282598794481794681915067144627228143008271775821152744225810529934757239539007597799387689474422518867258015722948821159443430777267088516939118872233142269746206509512509625735534416437551634019220855357160376562962359788797441140408720609703371807158292248069195335899614411801336557121407161165757813001722638902657881958177919829882307864807776612588366898960679598332944780015262893111801139309937629697563545415829674375501635689460605105177918306166038104490817694165814283079597389902201276064091016835412853567851877393049462133016053040025317305222285413933452228491344251754889799765131340873127567075842588326630489804227101503302583514237605401361122227167469144349031613803911056266360263107643678271759789431790884291340923137000518606105052335531730379282165395758998698861717454179482968178050202194464491269547114718243174570460332978803511107972199009767094147607894553022953001803763979850705161905917260147770112977400410120102082514387139482237088819294632747954982784381862018712862132069157781491747641051200183237043240460248429041892208405962782990106225419502567678646219637159197824174889962837855348158164164329726009079370812970464190991234518229375914192484998968667690474336953024746425828141835453007054851661158717565706131060924257927608749465866701919943986693365887985384852227325935448323914973839627899323299299554571961540746487602166139114153515676604617788678664624979066088362770740189120675933744373763965755378541261570720051783047015948302677665642167972277370839816621611223907388244089032712689083907566413218841382484395185047590215315198277988572124605685718016175628069080212089721553863874043931499827839852818196530728345940042783133640963182513764663778562120811942996240379297534497467590820892315627694556571310952143960719078758230029665271869028300796997112717973347067907006933052606195617934001659523308350178529163676487507439040657509968224177048385395062193240443438887486235005682590478762410043078107409642653589674154137811898916927922069259930795951318120520415688128180828559523622997132916527144601733174878916326702585657412870657110837739843919999763442556981158096625319307567193184834442857710972430126564825942030248512139340632113334862100933358148404066301857772295913276352008267813852348981256135514565879388816755012089492254950162334081702067946358268847119164253037283387583273739500261916181942894909506161680432698120546013377622951082003725580878287455965511198994657212054902464862847919186933181114624527959399503829590985837580143142781088304846043886238058608265908271658029582706047781206231120960344309430614195261960474553512880690337768646290210784818270074879816577972355933024079055680011387132044329805829453986008880475163073283328477237965286402773459188861375621733084731793297402953986195375446103219462120668576171391479144704658713894368124217931882833148169662085764686826574057747877238774609763208845743093124757222220735829754097445442002972392970657675698483042346222476792529238024130372748749690986554658411005490095652098288827097080606044298056074553272460405472398572212660188106781647318160459189152474359686280905328958272069146983084898146904594405899985467906183098513713781653132594892196866547809044781473862969005257322604363762866503631704517619180682364440502443982710067181834413769569073986334291314754863493573596206415978773767148749057456662988565966991675237527545280839044144882463173502913516343305101142830397646938220665403122563649875373564843451190583609625840810650455523284335247191990845439547964610924583570357941541343193072173908841479002380917361010639546055965015762743692718768756601095143833215034443857596144055808860565979088573195159247734192872274226094236126909905025497239304381700156150858674516116507838226883035275956541896744392169301608607030857894163936029559052196217236669887353623593050923019452966011851986206263026166744400961372167958888049088464219464850728830061597610027097700706953197461803471699014123193452264958872723886521704866296662537763601869089585600380364557149298495672537922847765747159211851784985221197772959978031940037346977982624556948114955869966871858778717910252539177942270739769921030073914615426627408464133202872564717416973381597853653479396378134918231814297836232883849799324058821532480896294515115072179986764971346882743358523790742705237272663962195345274650319057772435570433459836581898592626091560756145102546644843784349142357839900371160083156567724557840215275503242551001573015596367648142084274960083504969942761871341866259558888893868384704900884819267007304968968553020062428846421653695590640344552434921811608499097021397209075276975233312612938438898102133447191672078849276402450930566518966675675473056695848368297774288928316634606697373904497424627666535762502345563048454225554564237499267689255660712179370132693209279227155712222383244445253282991532459811237228275570092567808766188850591223820229208087087584926575327956766362145216464072862396059872531406852945520280116162033341841005766881030481184528286192832629598920198068650124644624859910303887436759438803948321395461577921244337744995012147813909231346101495080515379299595536460662754736837169054149068063767897781720142813309187234865135034208748388300925793904573670277635858644052181527477218392632659899345654674566933536181117726723031205002862719416538866374375658459939680331300489639145467249957923639028850721235833342036644124626307250993968782645761525776140500042807319556475964271565943230723015810827748291908489744257055975320181507163396479728983322968932383826274531682499678975678930807198485819005845054112601411814521090547506156940350889211800413429934415550054102739607801920204661510040231552458951749321563651383575192393083687908851721442947492601513494482535885085318987771029731916403849199489389681451370618537573368968573130350682763285948054894729278869696978494578562055107206234561794341114505953755721229090766149355527382842531782601028459440931105935881992656158058504821677522724325978371693985732578056464316418307246942238887780542277847529475572671230795280606083904405902763595645806007970091043426066102408564579484518893062697183554231030609358545783511112432249668427215209963968243118183698496693015575023344708220613464418611442944340639848812316312373367087854541445961957599722028255804889409056727706381302184645372200712300063722310482138374815982959261502881163046312570981709479708287476912659499072354156422114640613459864466055298767762059141387328152975291417653869463266190663513602084062551868712503823390916596173409876914898707050852454812395100612003997755182091462694852782982370113766094958834989608119147889021648703314619874236193783218635938308895742587126369176687403527209750965545661612656856719639122660748012907297560740012214305389750171211548673760050314668580121180411532173916720925102662490442254210206281585435741831319169866985326300774510157729188424002382616084834547972841969962868570968257574729980298283620573442227494112652928113819925123050791918286818175816002630538806488922881337978220749781909721405466385304955148623508590855355499318692618083374303844662377816964538549100211957983447785990506466801385458685341656840748063585951004793569888966575127140780993622848485118299321945208389934948413629965501214834446399303860529755690315934155056400031127871758982763342060449432622315096527052073191022742506087991519879929304783658109958857946230108820671645488338648917811377629573099630586493929547095315629568995973688737414552205632350516028831732213496300735621329243495522003198302316540018026175099955972707971169933580495108801995207785094453526134870963741332713229558515278519760701961126463379399090153705949607921268357198174875167669381140159877631238446368174372247460684133014581184923305367407073437246116740074547894532372231637484426613509449087295013481275437169092216500293211404864656425598543404522419293450019736540741122977909606389334924187452144120210934974062734497120960954145995625427679961107721772220432283736421452806021860187223306652639245037872654275495662037563514690018145794856767161465759866247498488890231603257159381300715837426637555644581407842125156409769032242773040620849778612150874886891970464156518966026396125127476655250041851606747725621644667003061798136815084592345700138919582046207384183167826893800372848120837328765304275616376402994545097981570042717357788365462393439220398849498434918552192988551622568876575890249713932409784166229377487104441654190242174274627565502816285859921687775657368816239552065365730883344615963658548390044106785196181400718331157275870466483971766525631204849321946432913377965292034878867215687368245948183792115856670578793645356198740498482885832946309844183342251544175064422178799506547841299522468041152343722420160288967158278587044212442254432001230325399039414951295132427790387218395358902389734008281596664844727227660156794033531860675599768838657045018855975011074003802680998356674491354338862195915965456426931534144426522187781275968043483213368796586398002761303394153332053468642755626731155019471694974858420702644646476089908284276917185256482628975484478644851519255343280195535544348919394071097434594668769899081529593930450875918961110011891828285950076355679917783125011948838813807865939550366769890675278514372228502900536083720743401561894095045027678721817963301870735172214362233605237993272743013224393153676064331069373025364238185859897937369216419619868794871402590374333173154982256709191436271604473111393765236026879708666348006677933540312217743988302945206216429176091558281558754164238636171132555999649117576428501661338223472069522908274378655648364039631392795108372993780612403409048612959513876094390175730766702486459328387365697320735386501529965073972579678407426496909465800401432298165035987347697867337254574760236296352689159090867386964035696602180321615814095614618596591455639411121227138589225977052882871545550328333363911258332630223650855834185532283381037035803718965212092315858701372337606381950698667535763921616248117644027016344559934932770806713609629512542025587558786431777078044683212929042570766873608754319105116409552811300762129725495821064931734259276198811603321425900938613496740841933341310292850479327782884506087949207984602517337469141469725102167967182325950766140090117684910195679608781183519775790999826777191228343933032695799514702068901478686309750864680101402403570882524668835755664287709064832984834221940024800515908831695124396684596611269469842190445204358422150040439010752161332958369091659784126872675163795460209271304410271630778010221676449161515544918423830337921768695369054124742727590148603650695751615226510877684872434603945784589853853646895157799952259463434296197950587223889738000752184827878293399851186390553313533141346766346662331042776622263739731481247102869421198644859264684200201266666823449283184829837956381407011349531858621740029030585320782848472444538091607467363920519745887771470632434205687973535434395737999996773271006002671380359148531208582407241999760473370269782613595001136217095775368981290277618005118708146918744191904478120239634551372619188965514440703435510804237433329221011683235409968237653014338658118523209113624783960326470374962843493407593128430134566442109153928125349546371276268622291316065187930326034336658440076918153920696369064288201415984893429269883659403765373885241066542427817041671544889285428894184326686640727813113321853560043378181237558759136986662312806071717319877589668475414481160806941421395467331538562582794856776368465746967906238155506031613028791594793352224695389638544034140369717246549283729454988743512640148267399783921000814901565703724854430672873082005445829813512205306744323802012730292226378177890940790434191681086237019771332822240561258210980510897069628947472381609012615057236251542841244128289575653856226111983347551088295314895544884290140404793845794261312741609778381887674009488483388481060244304153613423494187920461930270365591132733638284040960973838762074488134769910622638710513522185743196137363209669271939502204936123699171500366821962053296289175336831955809693999197960172503788189482084737651543110230468530820582898193150796290015595167390281768127853800106340734525405113256657608493041025442150639939274552358835528102358025028006974489556687257000229766727632155167379193449048899935921511550128515876747233227670948846186410327120450095674606269801398445118640744132383880186719321736442261215663934411785226090455918491819847142828945717496356889410997270017249729207074989301309485670455357795228944016172479998467396986995866791939661599551701519070030722064406577430203358654113870362806493771880629201316521204963170529056184420535006732744347383849314897862428186479289558297277641105525484978415604142362780276760538248339150861943967350772084979187523038048711367797941747670606977741508214115332536272724713133533037975485296651522581980333439830795953907145479836008538844952643462801175306597471605950088703953566519644721237651520813982170639242339110045492441225322892869622064637168589965153893547462075553914223215533742502678488157882293491450646056041061851362081124288302375689198590033606867015817462716473772656943969092315037890000854390641279390335962465586129767945618957476140684127013429010028400184050240587739873963541463835685513052379776232835175305316681778989775441750125084339011041062651459851689096245097417307778196499641826606168025610237557246254658510606354946112760190013944744201926784171170607386703441294358930960100602497976559632382614178278280971025137706185895358836791881924538477112275569842424846563047175277198851380421232128005239838241448075550780103536379011744919265150796842572353838504420019504604200833984777735249673567231042318538532964291855334132908272885316302208354045412741331637119429087016319821459179295518420843437246437864882038146216237759957819806511458865870840582713247110979369052727504533813729343736640174539304014348799241395443201210078084982521030856608655603563810282513692245680226894798184472807636595333457416895020270524359042176355687728217458756937057565549664028733370977548771072453367902008775279772632109744770431967115258719192431967282676316216590188335426697574914629778336176520540852035709787263223609069273839696294110536282451888389814745835654444363735611278008961526426189439820238305230209042349551722091000173920516135928573444173212947046662621307895049957012640960218600022241880785086828431447383858765983262632846918839294344599480197554028472250722357661782897446760313430554687040866012068314818595369270035627575179298979930252714544488716530612963421074214134889252396361644294518889774392973822181763392798987019363458059605164038110680717766425332888217003553346951205469734476138816416159148828736506058908192259159605848220671602068343924091742051306022071972898633666683896075226520363990686901066120972540554594146579798924190882483533951483533294841674660048714072399608004493583678650999575473370239526486267849390133967137097910610796564583944055607944704358500558950674867822490064738577783462659054525414655757354857484180139004425748044165333935964939036718638619318272165616836304619656599353696029796518607053839175000941370139753483497470949272289401129870093802863059292115913184682381122819632190445812635540402788972256300777459584644391582329701568033366789188899355391407363539967595236936769113440469076796933095902660705052476227464140924407701664146752871447040916590975688400665580054258367676172087432782838091741151215499076682897963115588252618913756074292579858266618531143297008173493212266126104564501215528745893153708648845929776086611935472370883297783111845912491044102512838062301128499336092336989421109658154152232813431675180846176996851512786826215158418245314283593986845347308407632555392628274229471359874703247216670535901164726728826366712893343563723512236913243496628381116690139086343750470005995455035481925827788862599803491161556369656989081363926639665215995849331177833696959484049713486641096015613648401968098040757828052238645518250351965815640417630433092327910324435994035103392962698239619508859787915701067510296294784583611478389447233409636983249943744077967087503022007637323614015687122976762623276525058070764586797003790443072638452871715494598550777954768662078943765690926964648647924862830217588825104264312364983312994372103625071265376705502314985201746840019975550294541941439823004057927970448180342114552149938796397873247165228764846133439724141661156128324914951212307131649827191572757915885126142140589030619523529905336988930956118664753502738538339613526294441034741969875483378559826148888963969314647878664013915763971071752265308599264689573879460258437321266023075672164129616853068695516116896403714714221390175031956182305734727180206426893079437199896816363895676635974765321528356728087606765302400894710521549310669591504851365925130186812163135666761104937393725251483974786908316290258018989540398629684274669833398889891448333407621835365868814522223134389620378402567537284754951240370218362081747197823657384926621896009252107986302552963495006961264852345604287390666888950951449505723728026567785943304874070827764041660667110514182620289764696588864194423311816537060312618007321718484117357635684383296541876747664027727873325434422895613142477923478652682598184545234545000560188165078944127789866598725019805006647371216705123704055038739859516606631075622314225800547006594009450448527824366449568319033677083707980214842365503213959734632885483172246402378053473596005772642576962846607849976804602884805137397464548303668784152064915702068398622718097201695646743117221343370896598699245497017071256209397279232722359418441467798113500002737468647892079873015334963449571953266388249783967936441803963895377412128093783318661124310882889606280569074645862592332142658947199580913765152648088734497429484003755756199900540381073483902230783141075653653781278005291754690446496891621720745904819961418221983764023340547072625720677748512353918335209526605565876973848329912684840185968442247823029390333759924909819446954126232100214656225834689452997846803616845883553729811626416035700159501130419854260885134360016393230258538010418822803530122475572493739172470211246544800509401024204526948092486803839303977165443822201354143460836914233468614052315964097674030329718586810797367423147839198734788864797500173841543670049985205118966495324788960508000049944290521726954709888710804497665920579863939153893580996676361345012553061139150999205858263516555024477491259188123051676773696549930821745325816652812590696552818684103958137818667610243189151713819690386587959370904491175906990671763945458724642111972493892411460631456765253126874887046179026779548805982932158225931895726008596221534537578426301017181407412804020545887206482811691428912710368603650438990376792444462167984292541048999092424091024937042954262701664723507173957006000391716426254961562256349584456254495778470755048909305887392819121630736852119226060632849301386129205076791635813814838673379086929438366137185272289688388912669442583444921981835400676104142890915173661368903668564766844138968244368887672025428229097468182743734540792899583459769823671450852184286197033275022939082121064162468134335913962947368843729659114598780614670194063871349620866484431749352110221228155861284108822655907645507922453103270117872289869421888500435308299136606341571563928746337675672109853424707538549706898014255045899734432324844360656459610427924801064751186912540036808262809958167651043488877685458903256507131271943300666674368078053612384468787936893940684184664950593242591171593678973760521969901148497270179209020807933899018643261078733582658684262699816087548651224420203781607289455073845193865861824522908455842860016471851926847563530812723596390592359489819886533394683884460579861260149252764900789153187226553295278912033225442627150283086733125443573070079461829621951164299012826058447563070850212829104370845392777635998431453157223836148874633641854248431200795903170708669177578621871930788879475792560170628790039776526163813957895774779350847780646888868619129508000466167382875107888137666837581552862575971296172503526528468622609123322058648479665327098063599908061859455528885822932643297816261886058237986004269354063743025985669727077200275119360212458539269435470859982064090434479230479576307780671594415902127789129434338563817617374659961976489769516013843174031846537483807887988998591595524312618498820106682406226954979626799954059371385490586493039267941538078214418602731287951152172279250567096634939925074056192394088808928042084735822034423586432855679541186584227005007223560504370845866758183366670570625436385980708181841697382013104832247689564278444065971264605286774540525539899419032741120194980387849037196302671378303158753383845412931522122007433597236521239522817274020663073371019476181091260634802528613038626019013004443259740990563393130320428877570990684723678549343057398908096007681350656151260794781170009654421694308193022358085486989333378660013278800028271929718379703888745950751857375806740193950668772125083478334760468511445692176686552197155348865221644079868843465056120688808764594369238936194224213457479193313574998727314511885118760524004323318264164270907496135070088107606749718671396018335332476766252778850604746553264157031985272035202678637177290393664822956721819093411587689470862582558557759473435568192471706621511918569853035299727368011873691124723102749186133949697927905930178433663375751454641972185693147818559396826064917067974950090799941795836309777086093683519137041083894288287123953470027594134152695871798553373525511316262206452151285036283344450885888740347149373073743168334616028453948476206168507990751372914372376386244071525404153848942145509082391500380052460415257702922558962647630610129519769171317019928411713548637407767720209886203580234656761739894213372099464796040736262521317944387120094142738591849966182636609379465216558574719079246621286151782443500887883592239712746054090586653502906136152977032212319121528934604653858339708631757614122678417224424737636397578780116930103979164653748748627505726194277350251353163095956736974353768296034991396162051375356397203062921457110527793266357363481037279170740242283846263977992647852031542970031691532985092227841884223652466889158484985030639152257741259511494474417017831441365177871705612647182519688408461916084589142781127050488231730298103830843154664161186021181107768776011271528882432881881472470846837451820669208951593640571897266490899646642495015399439744214833793281592329480615983470632321117673715688542900638671854435538484477947866642111465354145054658131822139385447361762024890712047716593828379412613170740075117975520916195201599109522248459916993393060221853592791780998926696862339782397815966302089044809330974299734419236445262912233812824110184072495854636628194437918239079992738843034953484868620850123002148896272540524388974622351082089447331111585253401988053607717106109393622370980892904003838445209409687677789302950639077528701103687703716541768983136098311723649048715403781189325624553326632729098985511672921430014757558661829804971040415686893905935312908778156658333741867889288179082073836234160797832557142549787511785070760722780673934934357654556378994941123320554728784020776144754404355043552354116750887221556767677571146955376053929951702325040448486791686508305870750936655949747284909005712498444654260558912268329335469962600135875989464339264167049811370333835124390301965785470048258146077417640226496679918687755811700651578902018608329334715337293854164181790059658831504173623291298769266057227560276821784880394496385003368375540655689612942845417476251945678973837857417929438609096517492020503162960298995073909397495183325768017715487873617631301326686296522731308094721096663230669190893403255134330040254365055585982798432706093111161802638514698402152897395161113674040903414764057486645699385909479941893220270613313224895854806666073064607316056316808724292033503190346604394969377011599135646227612431143960525581650483911377494145064779079383000418714083887772422140709343544947579394038484169142235669962962322306444679793534609350096113591919843187151189577315703210825702770760679226381874429938660978398204996609535844055270620595482629590165800132633096657211273874188533725639106134830446226247741718490768273354016106201799000120664972990533298041852082392232247103247508137086127663470326589743110561564304015227116791861621242150334611801926879647215836576737498063411903372110664727106492682375771127575484521360083439802514931030145554000521732547478391870684777384901523326255425006459765183755783172691295879829616219320975060179405087486786880212718083574463429001638989212406857981033677282237700560188692472187627540791381560876396364820588008599493607172869605503446098719822738876033472714057090242787817400602129304359559708298550960980489784999619210713694162871125032011179685152971778928153263886036744414414026076494682703525897549958627627051349002980927482232000056966406961070614559366545185431062369383526136408930258695752451253169571015237298460274071051225903087402123777319886926219476979406428224261107418866835107630162437901629491110351684537309549662521769007236560614475494231414942783799585916552530090672638046114863496448795876092848791774578026149592920416892124991928745135115222612473830990512326019115295131501542228887512392957706293973354658689424108082608928430019443784171477338379320846784476253450473555706728756407646397321997291297897439893792266573280275599391612412809421062361833408750926348421716479669477385878541906887537578199977966685468009668152646511955542928499940549409138877308180623836822384500609484046797786349260289291086329946609961387329881874816192460882492086213809447371321411632043571087834071631218960485676612875254540451896997276094028503567264726263310769960242635563336836131879325640284647701937474074082183930063704151203147671141667465850551084662344969837870101750039581978324457236667836535214068535443183391801861961686484250192739765326357621433899436847493305393315385056947174305383609405309962048398789771371255054304568785379059766428159322605817085933963721479822054470973463196324311877985551415499797211800048270808169195447961154077685909506202019306503719425466925033908755547744233682714177244081292829100895513925408565189150268749565297364959286300665594955510357990025080296871378665736945463419395317802513992218682134800369797294603046329581007742398241491232748625388788194737696565041975104938179476604246989529253191558664168919203350602059378163503108357965789386875574023339810029411061974077669888596096012931302221849738767632601115457740481383536042480543381190030919193214545204524442832884760460319464005798710510964388910618131498723705689130856909695827309512076443240612029788630326912557560300215016170809057014304266951279583974229265926842613963318811545166501337517888137124989320045764029208859513957872335658429710435364138538526862402559017259483833555903600815127765782502230568662034310216302699683221719299920859549276572729226212185994060359388122857542321888618302967096811796524936738306822335127387438925693081599508746452656208807119082608398933254207731282463233008524672138299362967787335712923178758629183378163393622722976099081510568111564183239277777194968336116547970075699140386098601026472852918399763701501863838775887024796507602290870093890344739960510159232970872699986733243609746242144671225951348633110632957849042997538487798044214433459379015231697895307627959937395864437372857782594753518955864504836472581043672817903312995199920157876991329802210459703634811836570656871068691309545387929256295124064782249735583189936196235040788719784373593231183595951773966800029271935508619988757123063050338442348740654607045737752615720794703378334521022796783666463600559277305613262199384064372887528093117759736681454213594496185900546225470219144705969615676707394671388200066524508606000422234944154231497117425626244727347787587252160434535874073310488172440907374163026580317902018368273332910816774726766618753985405679348949229634692860842274494949575382242091260226495361061412863547979658927534260804647259330556954077642685712571263910591169376347044696704247407740521773727236501340349416529788645019170010655062131278780571172827908710453907208033290486026244052801204496492223130493999670068357728746348610206687496045937422778890467718005663640444598154678272911784541756442412872702395709980315891388022413825758193494664238239742884069588205887458485470304584800900277852308940556986147224166489226120806447170120456555615550686763598382597782664697397771039271156666880082139551409359011697099789766196628888878902678154866807618044690602587092943223006926603312060290810609448577753324504953179011878687107051168148887354382329659186678111716714968081125392162114676479464621787499757454925219641889157340335265420339463572707152780163204632864252767688750266959198857288832983540391253163806898774746507637333491676025599856684933828747920930410566131197881170037759739024755451064177072300860799915854227735532699857163543157221661015555783113931595141111437515653189465695844609624462710997774000702268232533185235888287166377910945819796151262434699633898036616878240313756016685136767959044106855251041750219908887880421118271052375651241382358348451964538423373223431979451599145104378135739720391590597524750240481387731358831985590958825737195332289062464710853087039722694421963976453602850211957064973271375916866663037261415800423801573824044695777560061665059885505752275665006893478432380853659178705384443381670095766152752294885942259795494776860814063764857263003733569567955471047106710905270748696349021444780680956069376155724575163908044805497662209641901590192236635274115176434699493408986016655721734314085078065850099880874682561996152516384906327134464353920080063993882275141090368135836938411480410551487271273421481286173127827286149340334368744862419028227041132973511727205701071784315798102978154573514561448022884352674551476349865697035879361938811442138840606047389873432940936904316115423572833858281809593835863007194704751860912957277826558855774682316957839558041881606903220489969607231564415654624104823591600727723994117460265008809841891324979042994742072907724753907003440472288952802156129316413938811586781081431936063548006818056569753759459613671339344435913259960377261637733214626748337308011010812438417478391631735687491008939205062641473204641093642158044740215633587490912152868909893950270899674501830352173576581516081541940742809680095902819545775981166563515425183964835328067916891493952596844376543385359105095696852036502434537278660940012334738234457340873318953325510606426854116275825293262931652867584749426887517678587933558841368642927436805546534658991939609779357902061003459313050347452308484839801222213647607453803070139766844720640720864031731247235675007403079103734763820359049476944302033022194970547823111334970672807135150502703876095902655870745323362676939811055868090968727669924897900455380045896005817556187927629667972533885768849126355171832674438734506682849330679790969577706935510439869606552170265757812919609915870744310713595914717054548636372230025068752999627152112491800721090222465920620181545081628660539248992110391530942269711974726148442461829695490903166178114837389287239408148579121592278424996413174394778272539479366363460758238577824599800146329303784548384176088422354190073132862533322220080068174211628470915203737811840149520523097872155605939447163068652458471793688321970230172857272462007234721687046997468587526373877010686170604798450581403991301035126698580027402767868096882366186622529787294229245038885645326807492793239371112961587630260050308710645208012919477209119447868970849973947501230309244633001887354476476174035566986038397560092752195756671027672912777450496676988544689203329355624773232410687890227488196203508855050448726667875791082719921019752177812704727468854878658365933533026730019797413726329313774557839999784699071081875827566378616897227913521921334401204029780342342842625017948762703945320236687300263733448994400906315511957489169304335313595678214290560180348335995812802639791949017275506353219156656501433100110220252163683768015445752086817351256451700512580102814250702503300370849977293796947260018028965123564987768220836627840018636496244423683841734506198204476056305754378043996937603539394746404473544951393699089436759252613555084430337079809799207718723363304088842326030879727169697475135378162147098207031867120586746717271598147894366549139243630913185762867407328090405370864734916562457219517032547234492447378107846389385795359642421464152493729354344826561233177203252706650070171627307776144213892616577813545850766850595622445221986594473431935637970885589958809974546481053945152861302457867760167936449860698642385494973811250674617346056949095299979730275221932876704291339215002622264658334620824296935766421091055710383049854164235645403675598369412618321486754464756304429025504252956807695235167211281821564413745301362248447821855084873467732608258162473262092213808801067888549435259916831444267627045312833628466922097751925508131292024834154732757859375614349296412042064031794421856936522476882242897564243464374884215405020844326652800253761542217853781737672926463205669420150353929662061765267275156777142290522621779253560683541736664920128899755892135170561005398522420807593003489847664223318613440103845665049648169720386325280484132620969631794913745827426713661205374057735220065051377124821916278580802526835164159714611304181957901948027238561729449229264255506941072999028702630340998022126855490725118547316055527267404430763744672257842315415581894477068137245061093404447652512250540557077274920011225671963501496137909863201532439739722708272846148296159717710037195869458418288159908141772569970988530251462199479022856297648794851998696929827735308923914454133375676166990197516334490522812697269788610188884639334511687751606709933900793025246829571989310170342178920937697600829476465102473776713224851793616150242162839618442991181664269310698316405106987362708160757740405227042705205400004445697862061845471952722744252516499927819198779836761296472677664257255899584657645700582913868983538307833011633883837899390006822552264687654943524584401082215499873079242196104616716023722874494121205282396210736586937495965633971132004320417833132792839427359648507479408881655842910086210909396509075605835889708726616168436168476690863710338565991932655455331015122498248908194364200723873713730956020147499385543061216529254446074210018564763999216887779439921379957958411831015396831803652641464534410972049828237947477484862600468306052549370396898658466075572804421906361658418632559710035776529426600750144344858262419336258127895917600178890161661384166037977505088202750460386063570252090924152787071417803495591254285868339989048376349891138381961965243745957292285626261559532240403229703695257596791819141597632973415672201462038635679376179037598715478875625386852833471731100717928923177072175909853050234371922673429111862700431013497058305073852966531703591381689626226137115378605464388059015421558511356495148330998359914409046807895546703842336181579011396026804124515440602007290434132334664297351936720895638080207892167584121061823994583278592663646251996487892580582955661628932138682068539117967564845778912107118661316055945137601513189598889389317109615301101840185007069526834759782240297915333103745090156570722689266192613862111509603007403883728921363926299437977424072926790448640565011542233883849308540213126594923341036147261887930573433291552287060887668553177895379969124782370674892030005372924290261468596568981911668024784967772424049330964872485643768244893229679805763283110448907099275560443171447935437488703695236251270544252392656944181194693846427502455064664061965023503738322855823390643302678919177187315784498006931974605668123086830541201435548413806962501662770228134262641567046392929952832663132417538461488299916877248006777069908103332753345353706212059165659898853196724997315457995207742164221770019483571355638977450302418569178812429477212845517273642762980240111989408037269945377756605756650912893491845282076722446221755086111467545851258806866409456391527154546898400520398038561991655823853595648015069322564205762194366976092978453476657531213459142006989423423398349223736153167701892384365089537077776228058211700720626292415970924198340668943400019356151253512543094902520103146861660244515981525868029435688526169459037043975564360229935450346300032361105740181414073550315620420953320518147204090360914000875080369071489804802408031617244040930897839813892527286911091704235183039522888743750192324545239901760999865656060180613310510359109253613549566692005856264857043721346765919419503687168507059202083815562137227140750026243685077793288773694637520473387888174520754530782548796586079017159623564509098916742767468636442381354124437586912016093150507809443674645940826834669461020758487644103248294217101898614603096408906695393187739254773063066406144225277790154504967670791084045628934047605045750273367416090331219384930395604995221060305354155127532101905195072427437480367600219560946696591368032075066094084343759249727725403739335610732187474348770122758669583351912658281920578678683307581183295165200715990900265552251967648502786595668625711287531419682213748927342868375030950004428007894123100816647694877820800824373672658474974516261167415410946882728646644871596297223383709916759337744060978886135639995650976329180869928975743967110123685398803587107707496582401003024968360261863390395603817117502706791112289500976958237479465773238840348705898991157206914638693756183931103872545316259759698499152182014695303085886395963262216447710137846994811345199910116856193501089837607772993064714827839355638162668858249013377600958831938277457046156734665351054021386425289577213514587309476613077546754118945352484815788072620287978207028482312977569330847218687806798032453241928017028085057693221735791695430301241244314848701174873694081523519130502208668199141803459019051135036715190262969395039635623150645278895496494484720478611608496464300631002085344265040313422793445332612590131054134372268842614485005375554688833446295214000977377772737324950952801418550915010825894052301741321375685614199377735805093776397903447498664320892650642743949007742255501651588802196909659468644316492228190644590462438222779846485761640599464304294565192926157065134912036051502220405987623369130352592435518715433662031360328941439082848638927709832565122471686812307407554425605898405494450124276583463631024695498305500627379634315091134379529292503507840909127286136322210021485258482351328293341968631533133114611420285897420311306154556273474023698917500422971262227607117219348838122353390850030021272573723606263969548263499116216596057043925582394413974121256821388306976970649821570161332327603761285988056809790103487237963644494644940000729107714915677350440484557128716222312175120397059498740260928354882863241782515363262678917331811157425280779003292640392961511588593793904436164402203816086974777861844405732181007416436783137706391392482228434092356458561329036590939837270398207396761051324259513014007415169896529052943026320570423850214265754980629371040491788798899021793916168814391707592025434022986599594820702940917161041702083144697708764767337268901776511788913940167290367791416425387890721256525614994866624529545665693673018432806659314878139920813545749330909144822902867214648230726526853965120859104523927758946899182737803686821155091758265032649155702385383039888377860293140726852214620311047709834740356205214595511081691863955173263921401604416078105760767198840717375451514907477669871895481128102823715092380317786339212871563128769402242127072006354887671540624468876895790560156381675364089256519574163423220136904644675221870332216202069155603930008706574386053730543097391941742905068156309863961527664061525925270779380832353989902214013865496214925674519421183418722291368130217669005054243549892651176073279110609298146911136328679505011158513259035337207307944281284290727134314610895355262421044913648791689061519613787079902247612048526098017609184950079496915413434094781943128119794193555808901499635417451937747717849334122907436025423591812519074462819951013295760078761028351133618604168037903870911084206926913799005559450241300008710573836695266267442678169054852806183600980392387797962558853559451321129725663176950226344491528833838238019046458906951270440218212532109132848576013904168200972067222308443647460355594612783564905725819088493794283156645356427039984177002185973261971228688529168629237036059618918507716284692372287884899350509906964099289299204453430708655017239613030981643161784249665555883479603307828122580319220349845593851680054928698032832667140042311821952883227388962864074125788871569228400446269298280692856875121979560007055295688582734077012049513050660859279463077632646180894466922117956890578959972261436585066601886374128435290810063024523754125214070822418632161730258563484221377653280395810651201038523891787268611901443036774000368057424579922294676624863547092260198135925272532447814210981319546466540282982377146499707704512039273179525019736531679149040425698971117106434793850927879015695490869105669751942689565346663029601713634730635440668340966719612906547438892580305295796295432401991017668963006587287048079972066818218459823578834279806019791685323566726526467035658442089767752517106068957975378610413437230909898339477813164264644244766923727762736149288039323981329897837536874145097576652232020145519361776765892481278287080948707423972031030119182529599984368218157398188232028899016380897995673914096208151862007018810480576151815786314989474313577845921539440454491501154994483578979925171563638568663754631336046616990344448033579295700657730970451187932064652869058602392014414492860155876092041436615014150436208715647041299523128450025041637679257876746419933901839471672643075882608137556068248656361763942677526039211656842131128573780441848802312816230958261804443902348884854558850706746095538976515581307387953601461738200343039349624610213237334185608128508343075430748703403216509280151136820716564742125731009877128029156537905484402107299420432138526653776626881756121935013464187377126258558427572231252543857601466112047551417546490051299769327125076145309793903054216116063098612635577260879172301730601881346309150009149264269757229511241346258731221701086099688140925403645786586043539587785639921022362437060554271807152404315778817324571059031686441786079576510930539354050455072152226934027291600986241553765523382251939989424918627697445148234108871642641455979967808956879857474679993123245590526765376238008511310680162684100642447674695395498608266433692608656420925400014098890554882433949978598762100771790290893978226340840851124408300650066479520092955696214612143339739810483916504164558957186797838456138509852794754277929412980663018211906132502349384245937119446728535917550242263887672448612211206471124371463373485987778177845682510016278069209376113931323482446882325630150169520621566174741785498793487536414980651001442485268725219787805655197154434175174178747514753817174044425744748236335753741243498329865715095993795019957616299776208770103583225383382085375288743960711376219756858413052458599227640571754148607603851315018879798436304053121484370646073732343659234003258998503261993679566938143752715082683923413717069744693657687642293365735166219306473405906458845721623662968398729530638771034747973962662231331863658657916828996984374969986270556155049518887718983140749101390368651394541567285327770052655948473695463701633859189024461593663848309466599805698091015273178079440089321259988537767534641921509860800222706592737450228616213368257267818591633967885963914259165659006989242317571988176059407981754057634661569695484867006330780049221899094465646602574591146281829832533289122916995476012260300496058545801273062470625250438432287851784830926057404078317832205798731000252734832533127126167256979301918267478152413083392181404121313386835133179301187606979370260102234094154528256020970691651356966941536430599835496017690322844390021679721659032523664833596203722246370383556113042087684197425916240705071057906073709684188481530077014077068514013832651828389583484349096146936793215417463221839716833023378680698767257530515415962309732828508628166180571150952556789295335700333184124747032726870037904567345090314665815350647097095060998176683239408449428850017267866619355894006807797986204755609760413971191972311182495922663651403847508209307934207360624444738716309961095068106571357159664085908325393364053814003989400701573439368013776420880910198643516628636692601004099964906309890706421422680093793345368484153827272371481270234167051887474562618714347387947156382422606751008898273912772891196698538088045643560763481697866230172625870525834854845154731548063495375584204130831643622094999228856636725945194625935348850089957465784429017505825525993038415145007082441051357880899458175255772514281797307627156261188690524725064495217823880261103730622400923346767806870491612320115959731131334482123706250973185676173012191653114170775749227900133820239473473194215733174944520212584589590879834978580111109120611557409248064132353102751552934289128705488141812352509233666202576101595389037738362084372304738014480231100577224826211640655658388678929881122098280891526325752420310413014530873035181703017868848358944950706022758382021848213386225871158354166421886476978139206199536680034930387428806006789511297034249045825128998939671997041246843464218952252838953312755468634024586640664390635858338698976100000295307998295561466522632431595551777396493356608825102580346613026703104945011776990348940534802003333514459113039565337735035534256504992127812302164326994014750284670585973859085607082885890031618846915551172517991588802257279126691320003942507136885642020269869039081104295789662110749845486950174378129335882318429470893641382277353686356807881469694597344331627806638585386154555210916076500761133717015931888434042055779952591257065393645493591083168114801227216453391868432803131891299920375576172175022165419704526565052289230821483942310043076517076783769750833341947920649230015814008683009468751617758727493370585102222103860207307895973327009835283774824604362917765660128809105854975491546163081977053265908896031594563601464651605414379973818968386744102590039302233317709649877680011724540839750210347694016925127183786218446057006536419250940299198628573822846169578238899584847137255073916852069411982466022976473604398230086122631538373289320135638046850925274339582284481097228372915177462663078157126550984034477446593529013582475839838419388522492164723133513976743222538317507575320222258360665411304423426356288154497310378541795321991029332035116373894104652210955156998551649078409798452907789765023882100984698291121465925531807095700410947168323690510309047663394700734847601627016951915956175256121667300363075506231065242311326351189582581575212935585996663812068801257549939326952874274137130181007305381688370654819892185829581840368255312358653998054327258258313737776279661461296116620641566369616819620889171245343183462235764840017227825082713282841068054257765620754971260592913439635079380823390674225098921093874321848218454143054432255200977758443018982733357518411003399162827827023134634459829001852648150067187538421428573980849318475958321618679129678846101840914758008550516946150481757733503593423894261439995380349486972099190386993772672665537647733931319924450697467335831634324464899359149223736026937988835820418482192127992880732756464648510239784027441757647934912488737945279178285407242797026795848900545240942480740881837788395631804651605703173771863787833567666270299737814918222851528056054760456654490780435919084158950664289168819059150939325300442395002195457566344795082366217585751992130005810017263716008484085743693048115691458669671680864656243706326809204328859620165183417817747515928821886389496727179973423722422739736521953653055588768758207918728663615750288663276809900440669616411461984206000936405035812922212064830327926803904518472394921867649549804063526929694725890332863977360952424825285125008101310972714677805238469232030111740354446520244986936187995430355422581208902653100678342707774056768243312715495483370182137791168555175550187121817563145999287751034142133030221205551770189755601143378034785997287735930738859973678284712517244751016513202307696916422169973937236956562396027053105994515888602104602327778437527222735751409856820634422846002156247047206176417313859294995256708088310607502718882288338786568336388333628891672310740630864578873627080007608478047796039013364794592367854727290366981467981629209241202354868461252846519645545201866805502313165742106225201951355703211787277522119837169335795580010859222719807026148810665049579525117412762663201383019865406875287679961429964550618240464762490599912431964063347928461002103760188341217102477520815177321241972243274893276366477039661385792531223989423821597467895512273864587545041441602620256721217683500024213007858684204584369376039782352341361718242963289288536263916967599325579671423510363850411581522209527223539483627352743813124399767353691442402894075765287668698196762343114471650661068374508012585363454887838368165653986840925122451513575784829338166046990756537565112436272073386889314815064907216418618051729177997139029120305332798858097764321416678516291471809792963292527188854310840744832355882300403137857639137246821120299034438286524059775111030038542245818360049297944139421268571535006680160213523134685717046107966334036752508887456482368600201105037803597374099961885790895506369833587997770325711120969636672863649466368597824034442020461617908103081510393671917244159275991450220161197281749632644761298934112286998062394452731004689755946527833750352012569382288380372565705214855402602790507113257385877875598729278686787769496581859560030748574172173834796240451824529660008732590891201014993584662344617002165246842660591688443294943966418645809478670485623932376244573316586423789555984881562712447413538831268721696811397969596522100575605662169040603020266169194061502068146424601217726682159585025413053025820573418357772793261991231388146948440388223283204166745886503389756458066739522557393800548050519672620451964000173831171505005647670148129778417295412230601752422797329925780161810114305614996383156125938175765985953325291017940251247674090660138139221443616066957887513311465568429732091224859857502323818057803009362322398499101993064162623989096511817629147148686402145075186520920125916821795981210602882886309746742946156151918236949713866601069547934746113820019958776162239427191114280729275589709252404366014971709258820012539100383099028914498658287926498307672892252324771882996980127429147856162952001789554440946086876180750734550815493765806796372438688811809456274563761231061339202251559846801265651066573790877016499417866871591837427765690261508687434785420420229460661275074981745883947335050449595117109904324182935284510823394234399026009294161419406352099320217688834553877912210777355111984907907777126860230298622252939727199987159644582627926543601184571537656961669933385581933557202516335959880956747306208595012049535967605558031588413390292638498489582321682986822345663448996079020386911323929310771329968034832038505550501296956631561118356136068648254675838651149370772358161577450924617558838362763671670485359887669200553534501118059043428348021543140768576774193367260640126552784513627609308511357550260855284214105042107422573871452986102262017456642217381046645133933673242108047229192119173788366821405307851121704876672749479672625084628318250931391711969006141928410397226097568235101927390771442730416283751316884056748079602592720523824900099819283978209285401345974383437549493319794851977218883362265595747092659561177382712287465015289855770540902303106595852662157177592261633044348140430876514102575893541589760509247251124810928266808738197111431597326407811338157508830936094398484854596033083424844223229005905202885740067637125417191965493674077246551145074337504032971734814200315103720449390377447493643056440178753127109630942654014878726575159966008934316194671663591198124242372756079427556873131545753246612178555322205664877757108549382816639415732617274456796767328558067184500779846692309823538799395209921664753646602820464867585506810789885665778353211711641204696162695308115895256943208773853464650625802930742204274814290465692467341793683168930075185731936262775561179441879847675177472008333183795623103391253764647955563530778878688999482191930156802272636383527754678169943244736567912911741325377695923762492935604008366423023661641308248559670516865505198280050562566500706645892282067694297322469299977589749104585147168804422995609530946334962599798242731945784164041977349672399290933990494632256821472076120729541030650167251293143042229449001573160566534931416833107612308714506286609685152980268411307930953739874963025295377253126566543730784501477197688124742060392780549150438843401307038893433904625556737576810433893500705545305475774971444991489815098191710957457465901528499912371321069151152276334141180674757879163507191551164267789476583621985407044618755994776042852594936068696346079445580160519060504175855218298196715281029541416612662293577099253018811591840253393327271429227304721129379782715017073555608507056317907860301208456178553240511244545187051568651206806040809115492139189096765976516949428853267376720505313257821119120910924182331380960763997504029554954168594829431174937528679541011278644134241516679372613017375166431971661035073957176492060070955830743830420986935036593113177726402300546452644253604410872395562436645630091669465389802392747376850630983313791477522215623003096616061023079408593276771402678843597761560556438333443763383458811293305255560568614720328504047494234731338817078335741012013830940807208533205356344532487765705854784901791121753363680074975923977549673868880305284571535899080129285594136825417926210534342631494523023476671769445332185791337954147667333440996083228115134186135532014737063848071939988703887494174720810455100468114680849331297328827436691516999036475924052151892924918467303077201445568341120532881398206780315362921884623554907911484776178245862716757567633058490044563110016877498659839756321667272317739238099478531322339773276165816755838345815973660447440785280482128472191958429115596288582048706405420938285917740396782299652573755782850041743076988369395988424522513903787335841082806438342437474583948919314314832250193876489593595534772381275846185735906554933192853236204948650687320776809636638387725963503804556490122784927339194901311652272435645799635418500280251151148139766425761856645279889036989365550826689965167036739972590368958541649604172367903402208699473787507712940591479701322466036796308551384244626266306961790448202907779260458037654336052212217622018044062389960244292724549832604381058150420634788495638095118551831528954615520011543792511720458325440244854073843519000822448974807156869157494726175994111329855681347297494363977870411992043443876071855985802908541293418218714860631975461298398202922166581399793019522859696628275138655819893833358134809020016364642794438925784359964282351594828256579973059334503847115013755715812774933287923732281585677623722228665696740687182041203630281813696427720032576632946363038929237808801541082713086088297693149143706024643670039536278713158017680717044907812511079694226862489290719887798169688427893506064385965919478448481970861806088936090849329693224313606333304086220623172599680747420198011207001068200888605357921384421933575497546747004016211802769926513512988586083104435839533114634351781772594885910019878972988586759334841906242471410059729860856764985888705714398221254331667613868224398297606148902099081533868682791535180466281188207909194875118677466078603124483532844652137195888498568084751423322071240284820822199239551551422012451200210467009617324937260801811438334148544255492752214506797175575553611168528937545457125416119722964270917196545972356146284276252374791093601523717598587351490082463463723697914915468992132735969920500049327874283307615181529545924782067080477235040180640472056088694284226213347252310484937719026188324514695992945302782450277598924451190177854180512600964231161310830748891833721312233847480482407188826028117986942587775129179476517289362315814028337787952329901783729957387346823606663448073437299389827395402580869516855068354392181559198917375062397233525194485851185595051841703981032077129536154086945180962596570979496153399628718588477389548082688827399714106652216046511719145587808546045697971539319237295475154567126764538972116000796370878187059751114985906253723573136302297738890617918482656887982558291096788596986992254136875322384227603457750970365667143973177588324820489848815266752888067509965040548923533558697839712187701010437850739467721177560804848446221476764341106236503400839943051577230952129042429564369528171467378283821969314928138833622660081770962104289694209545387987520420420275555949255270789935374813265885289969439278083273510152892561907740456429302797674836180309822452000542873893444198118518295643254120725178813860515520768073210960426194295729423139162369854246554151645265947147151708563052380492413806661626328746113830210028778996363324036061468636394436252872461045864712872298360709577073428258159558337637278098736735163675499344432834438969834505504448419383536007421406708911966768584474525066257341893041313320427917956715915126730186422290355023500991177067769601428736747014926838122539356131023976991437094193754504013972473019555567685334575528134160937018219241588644897356290253234963298768404814056638141257828579249201902418242818597463248476785694173097581056939144925715098051194437466217732302900224518901966051704111218980819655781313766008229965733985811279294592002455854678424001131845632062420414397200711966817696212217394291650797427079625136803751646166036626790203604295121375773704937336983545269432717970512616705543876370976770790718127064391513505224496603301570859866349347125655004392815733004951016025550253848798482621378065785277298659978805488284614894934303609601752922752503514820400877308144719130147049967187630313729297354199839386318305283156848467317223358333758966437282451095309566777182992028629507896647905654813549975662263981817910339548412584700536839271478179880403955843414978407425905253912011434726491363298143999861403680891687003398098569191587173262939116926040682243054262832084378289893956128345983752612628791803990833008402482795471290441964488974904646512498905717866028029124898411514851879062539138556811603286785421782650796948466817396001258860845124114186837974173204826252454975753873129663877622377108089887396079261170900106851393858350248156731422429773114685280344221099984893991221859498459307862843396039553172477694099546472614931369282107012014941557643189142638083523999191347058721063768266920322603872769660163061318481292097385839205337673093206426337382160497020653602573014731777166648457401684820014191748151020797402350541080591183676650717628606536568041850945681175442669779350312868509017029315526864959190714241142752165500234985471043643899442043934855165969067478194267181750667496846610433196589666686965715599239133514061096981232818608412754303467996407675504141345728702480486267738409241247352917860945516685825915845750372006190320509237681786433547898608693491380825873062674705636441263654142477847118463050246559333014005508643821464714115239826253509745749168868900680163163594248627607717465574434854730192656207779093773132303945619771606662342610871823467381337956294318159492691762354977368181022723981107048073007900975931174993044646426347552514667062552659440100952844388074786758137578529483492688660748790392819602448807409293703212489552681576580391225368625132972220075438582869703853538379663245892300069637836790305512857161670299947856590609466652361017907180666651980729450908074484878212323052661762173726733035367975297226381859861241349144734366579673761148446699944664778795891962937705785674229606438581717588871178009829776560060469196950978434082602299381683164607491066754829256782153890572250212791014018461755653258898179475004845687391454297425095961861897277238171640847381084509005822016998508014783831055189194056235440809888284224446162228514855707009688298049632596068543267781108504765424986935217430407706403996852940493514792852327265102553366813640568875244428006922053379346757660043344860004111788852022791487927426202605174357410591946054785244049446763709229372028610239030149635380318085836514059840533767004149610082544423031115656314590940047163335845273641012738185025052312204482684712248921938909636961463747233228716559752656977102723588366900354034655071156815036552817528758254825484126386479494363096347250680587420480554236063988441755921278664597332166802221694189044503158660165454694479990901469269032183682043589515026302877967527142549320882980823341947819026102075155141107821825131833180236082216037370349566555905506873880945481962391609181098829583751288225806491133198004746152374206237069830220649666334472011710513798140523646112746180711116629232562645863387151530600072010898792429294352150086694639984790942534713928660636630068530935770213078370080002834117070744853845343535146475001379641565712238957093482473522851825978523801807352104140236368731229842390267981046710206384773287405967829815617591120280359567281194554643756487812731972819960165222837571322874037737263570448730655244698957629552484517792329436046226218570424086774576604788578134676562900401963737323321637497820843896834195086893457614156944618020854793216396920764112729126126135314573621681514939308297592816163763178891962051576888547820559854008266959525778466455311858768303607003583096193829632254942471019505828656094780848120932008139202273478295627504158262080779986913983874234369609392583744808160775067455895398863408663073252741894313426262084710743500302971653771620206974797351710224374818787359000162165646979485371698296318230861687225168866299640487526082841992389317717941470106082774430138836538086366328822464844400513669077704453519207030130253032013943139385916996474098568796477095355065105929009905233879885170685021366190852860208720465062434175627819020391394606567792528769145546792907200232624418722523773468740414622062454462323755320282226772663543214732577684321653520714164353522611570878477019967968484938831555892843326145995503038180588584662767821071476688457352177642085104093539366303196677528151891740941338436687853775559890278128694901830010354279777222371454275931380680714034269229688478538168066243398227908557879311410376388275605337138998282419163389422933756403271241085308496289934199484665385232822861390118705914741513845635824871227322639874169946522663483204895104264177262922598790327674752771192847930928041744883491412319370866951433220178568667035502928174718384721931041550183791814955951836075623400541502465514905347462786024828977449054960791892716391087738287686065977596172033735895129018479108736707460877214915086911563978024908021988372486106331848397776090482868965402386939131527229393110297252599621852230804771832301473155980872842202052582966716746089437775787361593108573098756769757278874487649910398616230276696011408455335988190112848363977628756024950919748831093516416923398637310317781973592881764017242082573549288174590800501994877862456374495145355917248116157431912245681331615704432114823172547433640784040992865308195464459704365756292186870929587331489631480842602639675793617160899266842637684193682186608355431196358984665162200700862046067773664460299482401212564382459104214954546985612121304847894586257101940329170763479088123732450821971978505254016386582256892795256145392317013487575312312878086165463817813754327987336536541444332261330508065777653926756270950694391749609373303662086973690280752931434091764253955794229397094891183679908086500846945378018300826815471174675069515565235314536723231555172382668134289647760346177797149420953094457442206190871288552579470224658918230104927983107161495743877410253648928390342083855261989464366027810439820235529732369762972396879336940009552440852466114562046038015529672751259732209627658900180922691561356346255562972307895179687510954037962477390391445377079973371707544172158329887485359106810868112255080156417198830750919746621006982233017045816045193727951088596051530059466449962451322262093268941882273524683182571484645659925398421523807274636585948409641338838096754383791484447261449873405997358609703169740543269325297113997286837954625980395336217185607340657434075873752131733891050707397219622634898579175263450839111820844653014416615733282090401867767182495707630541062366131254570949779404433351207022492245502462302349342575944353228365455703777774714726654136718883999896367357113042959277791049729967078440637858688385235833734639105059238233175764780805743621912679705365196168337943936636044477179693384722442404222956856076214753498833607478310636739967544119986240374763983210496150949698395002466402943189470155495671176482354907666041697295112866899470978573219797177529507779113495210052379726504094552566825990130605748880547617265326982743896467136261778635532340521152316279916440143069521466181601596747100096107008840301094964773920184310248309134973051371116155586733518195755466024573997001901620437026819711842178052827908538262362480224766973717780700670796704051612369954345837922650521635124042192338308740561381620035399019747145192740117237716853967208771671124216411847957868328655292948219319756718377696758961901307793429664131304914280963221731515225602606702378554166329858418926381425130054337645003288648594670656821994709994370164588090807312531827159031755454354082022186477474729736748697760456794692487794498936207613301180616383675586824153271944968724071270028350917260043908970128919653037221938696696824574422775137801428058146441207067126004943025888165446141923316469375038187342088741202919917277228834400466231095416890734725867694360872248851767342618187722828522693344190272096351916984053944922656496607901899865784014451386384513174160602396531741251998967091458296872879540720924323778508443467276703859958775446139822520117154457854305879976173119941504321846215899136939195213178921585373565606695616882480931749006851001381045750051940574386042264369095117482372331157065707599668964822724849449598336375217764059174167637749864428841188980875072001311457219844766593189813221319708229979252332360355628740075289142448321004722544041775831472452461011310617435535331832670361878216503579466286044700336487098521747249021017449950506913308753969526811244877535742878633695099145826334200898337309928761935263569433611091730486522730160923661370426186726223104264646049794262498742829117457692406904142434403100218841100578296429106034787346344302559661053350267590259215758997947806288414195317026026748353863853210795613360892776095891433068413391025843565049698450868521298590761023590098679701152817520255840539041641931091035177118651788079170635302642671077204553317398916389300411509786847707991845699340973103101294147333739679476681979266674584357058771693183965028029482026279200120843339199792757658547382780916268157958968169791826020285193715563448001118667742871918023434978418088254061521709910502289212086897115524530092621811470801543535927221889397884070896262111774465556618938009357405793715044062856123932847390014727863081354299037833146712606559835379012413336371899183869012989266300038127838049828168714954130494101353306434501425358469619938163374730240484423615994215908751155645956038138862819563920466787002714146596115498074592795729761099223641348651539364288575018468659993423049230868159747941874324098169496172469964873112686056846118530873254820811593621226014019791495832268095582993847727358706460907467774172454019557005377530183363663369539531911052495874731319610536405112848010072215284554434655288996687563373972807691333330279049686845116376979776186329615168416350475132194101082552266595180711009579815395304459348744565674867469504439673326840044950266235585336442833635117501109923161160507314554182023415634306744890046620556609544854220150199673874344334137781649482785039862335926132265116091064758819071351579893085048979914727034188771038233526423061832514130745328233645015019875905381261976177859058063789113285568842827848726920002499889725822576106518390300526119651279180475094356340283892975738888478699662735223497913682941317220850193405060232363546431250755406983215219863656399646915712108948443330940603519109892021107983376565184244567940907823802498809450723410435945634956012303001176082754209542486706286701119314361035483967659283587764751744686337535303580214425399440078898203337558050976923200627734182198005499380955887398527139375600407561731921443786404632632223111075983746508219561062353563826850087731994663275033143021725929990751644021224097312189029215265692855292051968340016991682334325977056952281445677475401349576438395926767792166669320570699759562783061976677604586322847880159224440266652369048763471534618900833975372954055459655312638776652684336865767461993220337652552170051251908363371562623615846614419505367881454824065287495650555662661038944649302799833138569787943733200951542058737559524529666341845327798282901713365133787400414290118018851721505703113577546265588486411848489656991494499995205536711225807844477455903186333346442882100049005580665312658428711579435185436734011414054453385680659731878444950345881166252044386557882177227520188907492134295351036508679615288780437215813801466225208506590728357061781182268471564693392127702182898151460174304401974144503845434964215953920589999166469625961955285398488000043676223507905685089570597900920541150445064575037098665668025693916656549439824698410418479547161613315547672362489546134501745836676516763555130036186300423192888438228002596295268535425811691928535775623218839297891763020663731868025468007370221580736231907037887864316259274945512408233364751622445460244585442619724788873520333904191148034613522606229602429953124380696986445482651217105561747763866358485033608967812265541220018971476010829150238760078940437118981801199305227444635362043070425337483357154341362896530254298520693610790749673998105445659938423108711516201580990861696829997626314078882027787419112386033671630945564790863234561495839494977334717401664149813998743201899870728426218910551004773083215322602720979110972366773708721435106341412736092739377096326853878841268385518808735296546679523059285116715375472294406048859257056440249798330977464839230102953121979964698651429385393666438298967928648680585995586518264062721230468974594945329249139178509621349192165808275096875139490237575930211552979226013445144037582067072921847197826187684435073555555537235115927865786105835080421239241172004052996252449975322791220162201002893156476864090512648437188231168184307954546326994795767008885412391608803078887627826633427522981255319953042717511943495062798344748946158609431698291314768739768146528146059053958357756241670461074126296331895740815553290259623214483732925480686459760568816996896493173984955342183616161870087936633536315082404222653257657760895928744945720083651524195546935280661545594834207744219966515061726616792612094614381441932995367603522822376640006855497372130025064325435095374030151230527522905915307762721717184056607005158453446296643605673295312064401484070176438377182508010995056466805659418166067451811345362301253532896056326797297700850099203171261374160342852324767943727557635539914808631242502373698605250034595231018147616571153611616407258445261072854549071356679036213199225532641948737540003885617128254506695775106469235793896471540200704870073968918740588954524495584332614815040325572565682497943857871555997967516059389702658986257883125102038391412502151463730183815854166179959295220098404932031559233811392528608538302431899007955753058775749852833093070043201806797689747507686476411900802452301101998361911285952634481399202729390956693549476539531449954529997867348373244010003579351550274332760191655419634527938838850873520069331311722797783868217882248358229928532451585821815419328191242342136478642707123937996188223147377714812182688797548119634707736094509339832290917095334833698801425731357912690966051569960632104183293267522638229818517326167889564558592784510114276110578671547813689970322036255731125489285406415642914393071031744637903935944719453736382031286689966733512801595920234508853826282576647970705289993377147595189772892568336233785143111295839039863006690823933756441423015510701025685380931422124142972642396011080351271551735068252990403826300163815402210966851011832062778812593146752658507784619962617535580712554337343069058277807468061649254620505610797910017030308219095723101485055236824001395030571524175142114769839359392241087137398997523775901185571622673689710734885194867129784838556287659397849650180911444589407385580705597437435601869560971495479379242869826106466156028113939041046605749628144333721983869748139830729355021476919620333999660504811848860051487602331083391696508578702353074348844594963501220549735261862694959000392796285249005889491844059313767630497882648367916608877798040605760488613530976866465349816656434621826078612929338361251414790185723429829832257276238418794222940416982407547681764740492855717416427445113020044535045721082006565642339809661215677431313428709003266046135522101201971650159820331743792155632898652910575733149021950198994105703531837206819167933298260534205042302025654812907786212186627064732500774174669984103731602772111017040563454798872411524939829188615607518818001595091358803345567135472430892811736852929302265659803197120782820182047473063846419960828926597056607717542587693522486165386809462649918946916677342704645563567679478714925218668666842967773454835906171980793849475679691135600931913638671700728851123021180006417379162445565324287716275340058020096573795551056760951037279327591896384073648528855741989902308516531737039379791475563436860361831280478109554680152526389980481432683543625485512602486257799411094946399097775123252777636543674778950848583581841255652815952016976820845282360543693054247829142163156600653180763884830937611467206870134535580159059164095998158583202015709079470415076377824369366804033070631289398064893057031203885555978325997262282385343031375303849066869814730823831198153748053815238144346996295959981713981397721175987552177678012590405892516295604894639025621652013986429531085313924537069405528700556762900755279529797040629871668413004075800495075064812611801514802119533279001394481050046276437640374942581214474869056804500077762815594805359451507391829290647189652262885493086785889761960556281447994562144844784315883528386640316678646705019682906841066044964500208164837974730235136405168412757139779269513847759631137921817264345966873876022451303215662207246097453119909705103844513085394694575241193714267104102811779134186059713949521696212336680613016817512489351530942172259940426533551201505627687043609679891071590331252389169951527713428217296810477699303437697142353032152495409975411407666557504974392641475370485283887537171028379870098664465649151732703391156586236019284268056334524936037661716724424927133752248499409135221691411954315536269897763060476719510463232694695249440964211955555876236404872470997626874539285831343896821846609859089206347475984400728324495182898326317312603757522266287097221478095923023627258689539924032859795936255968255690140866525047344025171452826891345447352541395532232519657420820536733754967717639901225637628568043664115781705081397597383166513753356273775670227822154574556685659561957851678631493754647908598180679522467774951750118922960332614738276022290646912791428647996689208182522831586822661138184268976206245336236052198364785894523092815050333498958849003739856943191922080230999442177225823945851946627360180995777403187169514620540241731491148962101976654878768600521124282238960196158340303631028226945086930825085643571612472031678390267661137536742917713043919393342690394028432518380112841241044968430203864221995346765858180685598598575567741104721717197691346440405148839780338489144966751031267154788048739959170645105035867243797900958864582670560279567129419944960865510952770110438541115440342010617320058333110203632527731795709134197032683356604041204944846440330355398441486646778667474566833715842308160679654174791926881255980598658696673660687774081882499173681321623981157723679666203252869853203610818443038665577211923617208642287032217339576477791737905416834584627672923155884085295801536525335659833934862952496249627981223651465134099067139150107729085188100860987826602250247693182735133105711329784302761937944461717845075683561525907480919831556878220678327249269151620353358825344845015859131355828171451465944524579003792903876074710710440608627345663325118807957810595163910414773575178744956944563836489958124061277140487675936920324140901599788473074881781679421368118974917597218018143414486656256121039387142120822652884331362659942253594825087419028717432374157227365227308702642097855388385357284033304104462524158703734549477711920129451482398750690680154229781505603985928655062405974197521072638855345785361612543606331857204282657586876787489293483010587105194641305083926485193280514072140219614181713385518484824660123874776776751912090774890376587318790035783488879552486669252169098356779959410554141396708929886407239336534944891631540168074784476564568321456502935052454441785629420231519755244932580906610043871384787219205662120397295309938479775349147567691636086891097129450772616598200635402899304578427319801899866423348595290235420438160120264632049960131958567675079677513639792930229711323041159442790994786012347292041115034603627007650122882808941630582633391487689911965861481508211786144779472993354839219076780872889801090559095860281834924267426478625204831451692038997002897950738946190657159618716842162349176141003509107279772408850494535379637560337709986805702811944343673742974448311903272645573902683607905994442746226634320454525595416664445029713190296906736878909477914477179069724201392407121360592781231840348707379963247910899187954656760374096403758086243171465731660064161676578295040841219109011134876992292708083380477935455953961107815659184403938811702306703301979028724693995062300260864241633520754071852819501386661862549046852656097280109528311237088367741911113624837655856488480501676988837981269711719272428809140617391407917026136517915841429996457033219376756989571487201550115668750913541644883722266156635394868325837650699393146407488727244649443815105067061479078126319268853323374299501286503017439564175354256694648863824741571248177311774790450468474551654996551989168634969458802215315267083532375058487925073182397569411067554887347666030296128588375244358911081104871666595547633878614852741461375476885229275465389880719888363420209034362309119116896579447295108956428966613520481006143765922130079108953458636833865966542730275530691412477132153621837798879109693728585342995051552381906268994726228961346070914768246676790619191694971708886126967391548019400733920668736491525884942001194928783018324794909391224701606280243205245499228929258659576413600704734131943381544961050078012570847217439962040207249000864238184494462453435064194920147319600284881742696270132268676153585988987832213296593462291547079918129703943525595366647689875837783051652468642121520543926638965801765111751632540917475267447964662360060448779269820081992552015720401310910907740214301562601745198204588483113790113834412242944257161176268290783125412327744852162478014227238232363535364320805363181015001926722689969023228148846936845710227089211979786490927005283265194363108389648422464403604282055853041855902675074799290000527928129916719319748921495423736982188171126681163419597882568861648301749669639874918159118324034777519513305327776924518395324532489683563330906937395612084742352340474420568198522003394741776980693551944376826901991344999811434124259742107572421285722861003124769133177862914503113770760271661654725773178078747737661862942460338745009968084024136787746086396939481906006033618106911690648141275263463510917760322989260250018383224296496375417352603831725684440764057755371089305192394685468559642167695761090567041188463880363320882169160160365203615134990628912522328811936569362077291391036180439389932389331301838412881203280800660040797572641763530955845475872642393927851679484215336505151874646433706944587616993210829378132260327707518450731773877372632438226123550318397192815784507453529845938290117568975269184684650134644850246747145590961691550828463080719053163073373517548709860762613369193866316116650269390214439046751830105407016004032569656187358030966704821127154487486341115562924031830454130037964056022530443000342123315043896988563052280638752895535432387796470191731454614825618143774218036768019497317750958383364653450283589929981652570964300025975493842658071304456913585276632504667149394695026914319110272687544744109029766214162756969809331706814231555420170521166868317034438437949675120197776028883654157172659335605177818302972028481967425854739992880237832575207006088871939777628093014196137362434311526778991440408121575249007804008519925238374691840743409265355622173595878084175719864483737339365251887183197352006650246176837725486617024868659859558717993857428706487283078187929677460553844435950591226113245816226412908570739979644327548079410925489171968238160160290665707824961170831797588464958631213253478649766186178745013067170315087907716868542025334787793694348461238305768911427397480493452789641730188884850985399474491023910453962116816736663736164334054825016510367901993161253712244841648123503795372129957828149310770908200951888543496494311771060167272108276117825559824087038613781493853999578813230575721587213639452441395139699950507223029885984052779452062085376918363934791156631498755447653359088497878988800385242028066316811662207307967252215993867993790807447336279470548488423705416747248048491656166849671897507085641892999021467893333623944177843451674821350580465223301598650497889570838333169532914158207733603223678202286621876780563627852462357805982935407022657215985094022043950682749150091832078256185571433881887548250480001585723839844481376223418026802449786927159094576669828444574043574060373713860186374771445562559669773823948478942019055222930710721569669482921463821679414095816945511545384471383083427203944590509864190587969161863423389559232052665376193077739216411111393653989676832014173996057215114654764978250174187402244420658869759175270965599123266861499094479591336303955669952527010513059521950353827430280071979599217585523082507231990741707483481790420955528263314974353063387930221523923731276039713889270043968702199009429983350501511377040602970340860514752706646066569731733409153824644108715048477464942846173753587241991836637912683893447473341794856238742434826444822539178511054947029990131956501188734096596473885331463034528689488012949324341955542549745336011734734997252418975914502809527609497236255121053431629443850181283474008153988826962204245173313057655767513622954532158960672193942977197955474117945006296148879409959666373403268827174119913304016981453597626426299968202660751686334157447433112059469186086511163738937810271094895897199171273006493222882545263968297234235322776951957464610809766303246669523920904695870715413492632651812843450792179286352526703681937867725043890347620593198927974760593946935948646929761225355405811015765131472748681378083342447202959381777415112198992048209029596439723565440760325040590949122732526177601214094450533250266525287455746961517089575269253555646239668201765206430325711713283731712179901739572471319017144335234250018897839373233297328396047319255469590572786839286599927607827739898885511927063599665224987518748821087673975145382666309911743805204851109536407754884817941610737672799081390264720681426000727621873118780184205433574401826102711342683828952192974785603389685574461495615387417349507709574217235331896676669128751213953076648079714086722736120983069587004524677585018395072472343050443609390072950285078156110609414346801963678703126155851352160423230424836216889914409962044484067663782565931640837988496924042087362846822889194191885865089371825770572000986555793866136440160020968469345916220920317874107185151340534404340678850092559243666557472536814089629416684318276819771918432122714587539248923878784489635085458577252870920436289198679578083646336760011036820931235257372622802687551557151046765659441972450392453618484241183346768204704199337830027775970399951373706189009940896512523259888870937969874921932988099731250898099436583289532547046496570410373189052126993659595404672866862641698954533669766304962806092270288525256084949142170034513396652625359285011724558578875156545859315720923740379509420252914928208674924999479056930162238320845127036504578126353570433611132269466766508562683469975835789784918624409061616373132140408766641302916088231637451710176257664756334420214313824906182142876467116659514118523807659268427147404993091558673405343830727635977898551260783019005535306638237990432264846180637736117377814409023227076631666076747548478106893046811362473031661732016730329459535379047342320672350184022943414739382544485288979736536738924968396950489470700903802934448429182024557171148085160558643238413025677274336567566230301347619384539822303948401163786106898418131107649113192937965667948658154899542567279473249673284026776165525103859151041540286659762504004129715906101161234399025813792254973507378362404023273161872487824342258658843678636584491563786236252285462258848565311735465118675312521166447874796988891822948048480204458566107720331765767139443762893556906780427034621013277202289343387871281775631623528419583044796617704715304670374657315518895231427516058339233901832696196272165712635199750202474311124033516772357625355588624138161119527529373221791260508219158291620383424315452397877992180931193748773081672015118540734429784026250356877782551177777732408085786317621229615339526090648096351845561124777457539833123016223974271267770600003572630126773477100695355667993000358165656870597247420736993774861236828889681885328881964815507466781949383971983484789075670964644449305898487840994026834155658275621814568045664143947547223079917633486240446503044804047330609579376016709628307925329442397508703224333418252266714810342439122096838372332343775806339984050813944840892636882429482399480827960793983182002836988160010276285287024768632081228161375558728410286777322402410114144213134632919641208130849511902410934500480762106306770155223706563128617336428198998329166685837377028328370170792134360109684202089949835377358304700586949634577962222177034660914682414245967109134801828730269960735994693569284506892919441549333346099360508762275861412476040034341261421386513363074127720220232988328116060335082069538086150518009132873799888428913492488487861145904524308690487612563984203127576361292579695844418720838922491844363226481762722057643929718083402832249942440122471243217942388729728612024886981212609015700138776949159714971795615479290862737324643874747948567443387647735299572621617528190706812875660513550753521780821377919429818346940181983784049511936819711835994073555501074574347744690267317751078739053782605697812416708742068087193384605963253756243131536330232552495222899563219747679559491690058873420856841145058062328708735405018748228954209652131714997582068606188027867273238228072988148854600545702327277494345872310914920294843137884777784126332436749259586541191478982508640827332145392841919033231444136442422619697600225689736080172717492412666525443752809119861666616295905341197377045490814572615269957604171475592234284291628685372439438906860048523123430947484177557475708117600918094380346124716259154778700267331921236554743646387084098872855867733518436780547791573664034892739889069984466010993955875154693953945878668443046444348833130149164264739250888498759104671561604423862215247492266652061139503766766481176045934374264775005866462950491743503649381536136048666240781346351681708517021853960950516537842455096111138877850408744020650488517092970105249047820606461082548931386498772684228533203752155797002290146560349053378840234485411537097897224229136433933908599164186304741959523404940368497764872992869698539728627259829887170999412586140939817603195945672068293546389485830499996406135122584617099301619302308451754073256410367159927087906756930088526994400378560156940902724642688673006167182630292275888235406293061237060692316653705747497639714248420401428935849453888668782383866121672183275751225651575342849638904089686434126997730461743150856560284262876460262047126966025958266212709221628333072574980297207682772998701458355067310533219897692697444615366282497045651057390168077057557546508501344667559751323623335357649796025216319086630923296987060521371052478347087846162050112552959662807874724615001446497552201589820398928079626997266574851723436038007369612717087251985538694079260810460699912125629359216057846172903737926033327474489576166576071277940790834651131280754399724468441733335803817066951846434840077589097535881503001708427348295841476674654314519294538220344428979119690345488790466181214475315125754982055986891004825503628996315472356015911813488125868715280305686098496454505136036480675492425998668281050448346995731288871013071892451476070538705798352048297324720499713897501392008748556225744661318604576676905079391834111737420116991061386248908054026423478818419293744174333729180798033682217500484581107165275140415957467437818071459328726438254726675485694701452742078770730299997514158233089215685470854404247676877428779086304775281743399588571186065994632815488488000289455815796646988767309505969454014525595687741144120604550865298386739220746799951584894844305188717625384715722231691995574852828790756352613638403990223261958762065152458256343195975919764640070067937713768930565212284082236701239393797939544551835099225003581948923829118050988907263169025520150789818132216489197534630192775521465168091534465596734603633144432077499284617958005732188620507733055226675352060792892707068390005541475348187752290302704208393249948424343495669035439206931928446121220891963003594562152551249609682238081806283444044380059929101472648300287526150294619164129222353754068185366971183713121014483532754920432873678521987709956612377604926310378420864987014361569071817799898985362271965609282122198484354167938316609704516734470608286855182655466590006126296202777520939017520662718396297423467653430475771197008511279993650557232993345092845995919859021938499238647861195253929405721944217276619057933670216577444860993880805274393071788315158887205767815858135392194771014640975321205076520902475349318600172276996392598887333940315316330839436040049646691832630713399845351894110596224181394770388694121413603416522788433551058259994659598791430245356094143338374711075851774741562794760426850511296750302083209631386475007111623420969311585842329453846700104954442862506725555469608176158765157764100199231068874481451835859301475523934769445344053651588083926093408105327919013629418528482534760378556209364841197831212746955025587338988981819512877888218350037899880691683973503002302466436352349846072952426549042679015870226599361398906528636446029006388015770004126282443126084755602335931365848251938311357459686133614140918965465436051564121954239321713480249051311069451850264992291895463368373987042771875836156120139593617970816041384342111848423305325997264048186468937937650578123904432429195000623009598276499760561542076673525914046355330288097962453971457701872799891864965471430666872377775585861900487195477822736486207199738883349980614254185675497196413176252471440383235439214407434860811755749086579715395368739982779796548995925231721885278495203808779391212847443461534007106973313992674213270707083341200875414927731592303556060424910018296435020198070934688061799060618408815390958799223332752458191801127697790067604582535968687626128520549005092742869920366327704170307028150441333202274814598050686134768816084016534091267964594626158722645897328672551598235559431910204808542595558712746261358382290401816766171840240785372904056495785356992787384194679091808261680305417453567093538483467919189598548119832100552872898688996634271795032130840535260065886328781582549874609385378955244032314586133486599137768080717305673736630590785635215394838682789022513667416941146712522561718194476010615262830284181551156920190039503155447737867909965801590239953334934979752830478492221261436360839969013187730800500084760475075214699020399321520163786497758200601351856181863177533953330006236433582070338477482708353567800744900364197439243824269073496864467623824761337357622432666811200253293514089967851877672241510475440761531065411313533823054625083356907668779098846579815698770423474900150002009572605297594996134280373951928251109894451332627629365527968865423970258282332608838227354928740700921478717579964712650061099610594931138550077231702566964993844825832923647173763274865687607583825837006405599317107788986219812693897280832089138881146992345610718964093823431136782032444092023447837761122105844361980652199527693542331718703312166216033823583772336008299010500725469267178577056817813548713851953388645218994006760958993744607225436817130625410023477576080916891273027848966321205354620588833496739450343826121580221095469788269973965518440258730213695358907322926922661404526161944686997879930463659882173659880711501810987289858866771412769244746593970855507379665296286005401078835682524791826533518287348528491951429967625918680654649800098568180395295190887542705967705192974424486225370724022006131176794280216614890869344863352302055761817033533145469575710794683977529435864369977505866828500420458627620875579421821492281662624268891956163551908707241726689843285300539491462991908961910372376440832229029308818170701413470051040176111635622934659361052075688516847443275211163646998623754980884886819915530258843907097226005387714695330780859974586287928076149151966962782135562913885258398959885053130632078321420183837551265647967488729848038997174737367347373948122060303650056651805588361524610792550438123013024658679640514597209861834150179356193397745049350013798097646137273021134431887312602799853163995681526761494676461354819658359564102077513538727648808941692913801422595258878985495988256393065099456323686663364648448423530887609395359734819341403954052955452274950857145207172399251196078702923515095098474128846205628406342402548674570599864277485783432539447312841310275184719951020832940372835755278779178314251254036723519490942502203204468494973141863345184179406302191356711271552444106109442379314839791310021996891706074030524025053244921887806609704654896894485636043191333863472846878076233676216221520553324555946376839604164562823679229443392548873849357454962159239285310325842892649400156515315457052009997931585868129442115901367225853965923371097226013281288485031971707596022215222157033709207808044764279771034599720303398900516452325600835468923892678710526584754417340672209669708812618352790023911952925893256645982724489874447169094785092590275095364979799741883779107082895636237708128487693915014814198123189616814733722383205387947869783061259756866988609848219200124984056297575155416411378116782804550679689099613703525943077385110461820249023663964004897173122234589326852509641430022185665206714412288617208696140663206175813752919284474554878517138759506718796046053660791479435379998464846029755212721640526775145290786219338061993453235707177380395762524522269715498444078503165867569808064806235974872300188563606264226940237120505817492505629597010840889974929070177231409147481172516215746596580425962060498218813138794865000844197300711458634025803586644768646027142221532516569590872114753724183046643174634742357147396076449152059199831720734236459393735257583911877979437164573834769180064826371497064648585487126075733967549627609000834295684744713087004798009040871280470694005394637100941973428195291541772320347770017860340533088726043426758079024025450934012640662263553915287628292144990369621624383532071810302260193556946872193331344557172629887932996207229847854172026808756177847493668893160606880274307042732666652611521955589112827536536509404714018122151072634468616335352914456930732688782457119487083356683234137132667699154755527125822294530759244071725000615452994086258647279810466474069751248016949612132901280278733126662708421978708987749726721498032410919352029632503039410913448001505996538265446210766987607140003731800039645164626075492280642407881627050167685383322371193727234606365559253648086303231596556792315127579271542328428279038209099352328538459756337196585454704956674867491513584571205465002282407404383568866125879223550879241595111254897023124778599127324653663274877706144182024384964778552332509177730276571574836631222726462556906226456711563838317751665371026551336651793501061632540453709768101536633675765451140134717816733393437161457395041813484443585498353083634718481161558965947545678643662884368586051258611989300350341379802619492280484665610660173847016896646135554655974259683084728875295451132680789276913455549330057179899119547160301737209466748280072518248293094988740786218411693338309583209799208927898516287457829987955270310316934920777403491952449089571311821651190102331645979295728751293998644588872029021867904807574491653300531367612506940436587331360345812205998277006854870179372543808131116226950195329709857015623351502653873179620089970677915565683162671650268099754566633266461969797046584121821024088875028996581643583718862076122394240880876066399309416579033290081337464181403039420162152193414057238171089327340615186517734153220265780124149543715047560172982799397010726569302185886177676535131480935762078293232722705442924960642578833696567246640958552687412953444781516283470701994003335553967795404175719824952138556112528354780056039729947266715119629135678732496784484137320424284969914755618106853333928393998787644260967857983211492750010587858584175968379018021727320900971744310920503239685513086624657133007179980328780798177010683937055910276781049313850235826928718170864073580434455979174270149866036866453705547054435820688175677204004852267229148568878601124377795169306270944658373392567821356948081448971128333594855355511596914891174524433071847891231886333959359196777071231578142458574902063188512242097807181509461167399058518955029771421586754830389744442943144843846346399994377877911800931346556198902116128434956572926714291793035302252281524405045173034872316954214950263912055258668474423443023638672064813089075052410477220630719753440179866947929663478824524814223204403771815054460167743158936085833752803031169788049711362482420070324979472409545235715537809598265576938325159872168664890334871861929192327521219039456227101431160716313709939114517757138146017331943852357919055583199879262048027030005394351630557518923662551565643743310796654337822490305711249863405486947085074327803398421475271801153789615762455496637338737493346370806191439720020860700542427704848648253445112154220192831735704104227997979691679997584806940271108596436253762738087558565331090675144829846058414102309802108285319776602748598231893026838774120156318323998916561155798015704689044522559616990864330221887823576697823623736542899301191069202082226316900771421826414271330630886707863702084835429617089074673328134718224285879732356215997334818117582828285020368671056418015768175440954415501282493906576256592814448870194600025965758724053605077737338179708439068867810466244401956721406837204076418074017639437114924616719069893281215129440349759581631213607658308172520461952398204476002861949325643247389926206865648641883717079986163289397613009259803092772838492051563591581331811675322596891670087388925180205937608667945846838964695093998212131735832130020762735151776158038318384044140746160424153199983512790492991785592044139077421584349386366149756326936412275382439193910664572066532553899566414127728156472999621835263429277191395628473720812697996814322013977384529846916692081066541918535380116954049986615321616454719952871726547435927751884549920559748175835066475417778863037431038268772295393599909120650845743336846536875611879492036012279401873789879363682065857167082857514466477132734879200901686319774258071425048973803544727366808309224018958034346314076876410769128978981856401867611867090672607978537895519830322829634378122065737048153428586835118132022735358144710280471281780364690957311685346852986722133307513254909104590220559640242163727242007677999755936187660005933033238471250382914319995283865667003414351503800465152320030021224502216905595088416508124373222411922749261357219094136907853850965010565197335484555626856500318719595377160044337729837928980982549510190684930624219336065566790093441771826237008439621044484050270867882316135448991669085675967098309540439794358141284353375267517825301323096712844795464412126888284509344710880475111742172749269668262812776189228054699387783175784707548470299110884788042493586066536949951419811778720493940978322541769407896313418963261153908132139742149720254037757712972121209408190000808939424716623650109601814606082626430254058319199872536970893445911048998429539659325755317592650558611094525353168325973758060347527201347335111390695166488555849922313845391665276341032380066368798774522739372219076453407570871412370620782172459315520210530779131375932917540471257285109323451778116353015383985818553188983667432660225522477821660495818067307715708951053304986830237527738310314705711191931390100482269090147373119772242971437861063571172438203408573657534098757173811924201071581444862729524521374129556097332210613027540016842037449146497248393784356926972700556856398751042969597403954781650797843020746629941281801425938049190865492445502267055982027357331671089762814760576191704339223489485603527802642548315030655275786974314910171308220892866040428933988020325474123861770707817141295814243392955808307302844110374721916564211669845738050193579294487781235356226547329012404755704703476562874853332418001329266552245932100643730612964380762388435228500406623423454962045223454057485474184812802824152664390067003220822538019526339106211306482458699965865487835930141511444059010311853946106547889885604520420037689721311794074706939954423025683833614355355220543031526759335312554211600575722261325852543596923033291981171759124629735384120665947893994270451947655970679267231971827175621291063482680537176653386596832487107224050923026805783734919949824717818003605985846154067177675126503062641191058784428771206346310642906775581592548132262391776106505680734522499255405307789313967158799798661291134003455213619230895209954234052653436316942665736896855328580824246630788111092680540824563502783426505996038499035031510205159091174682474773242529028584647899806965808158427594420986707962281002619893122490612429329246408720695545307848995091888576738749185809731325328137542591233284893487128406588234447892450712721086097357885124282308031270382575770186859483460486174016605450025084443743622458525598064065400254512480512450916226846000536816945545814795064002065627281618660517974218630530582622592750202987498379833258632058776782559958906729032299226069795036187115922217418651040987543939733047507194459132180276971279209243210145839110994987390720503266418270174048632598724905177115519516294228554040090057806536672948846525591977400761455540578771329436575950047029964358083413056426854952348348174642786322543198176961343107986532085195095407599281810679720015001420679656078298606959402012058999408583695152704303280909790889055031108636234011967236664269600989736712088696336812989216625393623104980382516925663781329958049315619133968040406924398712711911735855525858185243634464553670436601658802762799395296633459450181078425869530826638153746964758691945473829360431237109022679852876725164748623504452226318255369954192289827262660567850320561093399440942229680339128107024712485976032373378499135778870743273229207828342237296077359032430241163397577392941190836351762390373804822110566417200073746706319515896550013236634478852210006203128530842909063208358981311311917025731134240351419118434165668642119747024699102004047645341664448150098656647309166541719253902493816839427191804151680381009460761326190982573748051355117391247732814732658824110084723064713963813549749131580733552283833410751468501348758169360948886447953989118515514431738897136781240089446415159855671950370569375506070608900589105978492031873971792872208077677088059429837235299523355195622494556056128347008734036786438823162933725306284333061412066130851351765425781614755904410402250543024413157263360907950705437256515062117939916379747461269306819880847728199770538071516392734834026234873400161160424384243424256594549245220886390414032883138812907897216571010293911371621317314202329430117139059059144299814535189950232488537606591280019662147997237810383756142397363851997539270624922818318331874108524823497156847017610339262107244101698493759107033033145063519500958408808132818116862780253096718001443593488309973806459309750371030579071989527749536394038697369381395857683050168669517629338101132305164616470657653563584701868611419019032108114964842364212817915482964364834876750713352370045091589633866008602398155667949483213201631888278102515277376341189458507813992320663910560686764732019240785569961318896141230003447783248461578561367983912980637795810897156520770361927746203321386166572890652261040870156031331850726317053021541245676680261564032680026118941245313434849211349514498838823440047107425243523335086999412917355982602069426251203734365870826729904808421971892176583649256936883338654235388591295541738526229776318077146918461476003558886619596753700795531788927939710431365446751298775927996633625380635403258510191114286864419774702024249711226768984501256680250344193286949403660065233786733131799908969237226638674185361028158308143402085067198694721339386950613477340422253770418041244898715975255107038765701159401177006421646048438159225567940877991640724335929571036607434477568299086572422541475683196616048665361609176013009475643805087726621437294237560076142926861390342832877729702944155473347650648396646904211204140162714279601981666112972700205398159611807838425227701242382085703835811181944544847960015047777984862240186559113815170117850324513549406893107607429645640460598414113299243664293659216576105856773594831337524337280103168810994678247446434113210012936732616171392528985188215144763791260314766338108554655617900530116063388869030146953615264811641088434697409017802500761323844487978102249169658408010228993108274469300852485868116629826833464890906113763960110483526635237763840754737933969148806687032586468861166705948138672894350231878878878899339971536402305063152855495167877578822340055951235076821176095932744074703316340068789068672022125779856181496122910616940565163057544095136801599371409926038175696468836443722942545507002884021344504953513200092660873120222845936897662462404555266981530881972807034930702690025977240444347226604028644611787482142871161201972080007884199422932381968373463671008387451939572229996882910934750483370254057689552160201858282305663140291697560087868085218766265384586024825563117971194304177473564103141382536788495458103666845066474326428685373301350813702837802421785844025617576442623133632724358898848008534430366758031618058157378986759531735839925158924414794793754604298392953214203421533987736256783500444338515334986042583286814009542628112853603644512470332031504311094551130662419962428721187631519488067701560416192210655856143703288582769022555801072308621938389719665789593874509213618352730765916894481006664179250602385409892576763767958613298931816053757440583334882159894316582887901947850526816970941188432341464630788402095826794632086401192933689428796812811721132794754078262272078153573439104754469204596519731367494905357723102152313959275713596902125372856465297933533501292959799455585056407727017048982236506705896190734416296118431756759048095931247327478857820693986870099757694417127609052961460513300346881768005576999825546595783097897547784229293659591977756143309714248856720803369330098899748154824810845285038229545081086120913889176191600518097333145388880090077857676160768123088295361641025719244985421333381810559271244994393549111873040329560923922180432554066236630859821512185771339730458663676669892053766315549072247321793060348221976225071827382652441455674603953824966376633057566876608021797263687013347272270491736566026368094381135225515194732381020748197991428420000581229028520319612262972333719643530589931663106304553163756003790474952791775216714061159274325694925040029308815776765103748546100689891477826075251566365915566369118667903289060064736406186824701966681363447388645809723428592505793578741195904077892347575611802073537842122647744588313613361765453973003911405687855330128254001151059065370693482405450480725518948400980822230205934358126615666143785153130213860365213875029171716767708943689163990548805953399875904322775141134320209872469351636370349656882966333415982796939093526660557701890627291187178150437204579111740457433664430146580822979905917498263331881388186188594810944194770631454414457437024727070525882864829041645719983263097767525575923328555156759029934417657141857369133775965660093528334502789295944890798257342514870094327665184614170738570298832645332860381127718252556505381484422679203741781727046929431512007854229995812299331096153235415770329559640662107298812474022217128158754503207691630044983661642054408905510808232780244894681393613348593673117486737987803880591452007203144576603234508291200154655542876318472135995991279400558560747660415351203423111555701546151457302671169757831860092123749765051638668735226046126544923461453643200456894114585519724361338037249529483750932803202882048656809082090773642853136191310160845314973321420197250868595238845298013001375529749827047160769083971104199343942262291724372138745778126543309652085747777514157866177279373154859590492582273184200710512030014795899990127959382621747863528238954855514909379163427247119705652398747838668056646455280918211321027944701801535910978029804266142427960804626882738496086345515468441608261168217753340141709187467807652380317704287917503132028742079046399064988781524393858936951809172190776448922934658856142039182894697929250081452632125208701144593611017968834696242701372751303177883866007395708661023799386015384376285972025551713595672501167672762475802670000836658838283021572114566084372503457706628844330282875490353698383794923828751913750729992141278006115230102918038048579462064802713731114634984175042306834176770415119820109448183713137113171225823869937291740711931496143652786425249142945227499630118717903012513296139840668297573944335573425316765476552765237743598446159957439477449246280808195225225269785673622047486790822440334042263410834831012587072880909675418811634810509549229998526371586603223755151011341320260848350633970551258934355053797788535724451823826918410484115494517381725045342478421472783922731032996379102304396142400067926697809357738361584651558095164309304965111264314235285818050890305208606681184719930586688632047999040108125708134777969934836334427750396071440966375259816527367222142230630975328416069130710950651568539732467616648155997463692274078360399280677201786018958779476280896559051545384213058234073687448373153863563334711165000934201503868358405980066851185241084212843279269465718364940498080588100562961401021738278875150496632580312495714015944493880311792564846124494702378264510571889034607391345930473008106687537536566826276868237996226868822416384414327769572825530860789960032773315261624174548572014438337716406213054449182092948308304155068370773489833315584622411499728593303186610093560969815250694898996131030419151340331231474868144661626563836810699705615118449903032057251289681021852220589572748932854325797022233444991915660665123558622176749803023391639891527747685573568302525165507629027270535816588843448273977704726547295308258838278054761939238932846279855359365330462269267825698511786491510007420246937015949742665383821376423908768094569240100805926135204383499527739250002060270989776174216254585402234991743979793416846453012171485582853443482712075784338306477552225815694924078009154862164596177013616112183570594185517170116503097801485543417497495684662571973827765186437472730248829418798563374265889835615138707591799704837333157893131639317727165922616117069184427988922711307371096093472895093433907221258432574864543580029445405838547314532817613899784877609758780194241360231982501380369497328187640795908999978520825141962458523673756089418556100471780115053888991538669390027734706250446789142969179374006835569490745707131594518071666505552854941493439687490978846301054910296402939800503854134007897467130389982578119021757273180994725384063192267897559427234904091332387390386482184548372097461903841100107944924217928078786408656310804999891659031514278820201739846636165518268987206084332791960605323102009358791364591218121350612121049731920323868310426577543547297839221009042475652618749868337584486763235336351735998301854099296947343736014255587132995823316389537049052143213772327615109764068074708578969596447991148888627784594317372324426139436407422918682775968874713463806522530552841534933953981928310447604877567437589445328481018534017179818926683780936842711554164528551017965089164114660938812094885347007629114150428980221946898865358686190411875584303206705640563266259210287404337930105767500483553271480233550608721156689395908188319615794780624124363679934229245915379379960344620948099657050059758623196087156576364480737184103345970946841708123475775970367033215846908026800249109911471274867840403005601470382451995179729591954241338628930447316453106902751555888344519941232144797769685667917812703492124012499759238678268314381985235728620766884458976419894908485779839281832334785057330401058601100610586907028114657822407182509367275721255560093757153263293787798864414452781449787834071681412765529445443651524970554920291000834787918218356195588349878639756112269461066054364310492712495926600417386372675169640190805203122449856853328823173696954060388997056665296097728145684037903999975483936055769859345435417790372560559224063801960630678568017343923110777918378664438515636085867162374759565745867231369735601206859685207584954380684293424870568618356449154833545187062191513555693112969158268812051921787959455297693251721089637732847291811893047667849149225593466145745138661415596865454303091845601989356890735125959441865467483588064968438881970031322281389882441567747417153814600075494957841730711731801016970434898344634697729418638884773278364931102340222596502108640265172959997033331081034001384817043339128753571086584445643647613599204931193864812924758838195148670076773850111050852869541634747308332249580492852428824656076732524041251213309978819025144953877065656743059403881079772852193979944211935683514143624195223206691883271326989019179903986467774246356921671120583966255519917582783419493446933160625059429151952969095754811460416635385642721084452477891853983794131622090147133832650682013375303356599005181553584883623571489038372680753709011250463714472361476460824167107372504290830010684990674081668944804490200143579831182304904216117951533456023472145660640846539941777260189368698623821346710130318351678285852055591201022633970668259549351085853455641689833183458380426331779011575395002127976286723038664151183722147249143461826057684921664608277972697439377234863222813294489059256057163023953410705342934713849184520060804109304231069880355552418302592064017758461818319506714925139680877234205182543754994730887408181356730957887788106614480287725634406351313406172455562432870113788733980109514494665767970910201683107989263425322087671161770760205505906125486711223570992879982208187841279548429472874647678483079026110269538640890166594322908101828011737178388898865411720062369730880873026069640367546848206241708168204301702640519108574107203824766915959906921884537772179571679113393410132456416901083588125232543051359423873151631640145786029677708495391100229542573601969097981274191713964346180287719578574777112622822912841263413875646910547696105759150123854241777382000580074130839143427550541770532482787657902195670415679096124285825884427589925349137458802717245178438090901298855836267608115914566083652458044888254267146622281564232631270202564464838559287697034942347495809782226204268322900602678471142986680847978725629085517372090364844228870299035425320965574564368663121023983594091709351821268740033475679838781975912044880214936262174198302278249808573071443697370197516952731179246122995504492628991833469921709057080806228299598122229537689253084993793803232808497092031500630827864047564992829436698638447473436595380572098787389478260383583940255425570280233125452930039967199165888369743681679444409488563404166727691518323845366903849994212783951639511068005241630677678104092181894141010523590489112301033468943161199620734959759705338076646063018068594943846406964572150443099789911612280791396554072939175005201342343001400247166320774220818267560943439752599802467250695571042860028838605080974944103573687418024134217680365732287453872250121697313290381857937059665138817113986464076845539587795587333425751053864252572943581563648032335916819358562086440020477577404271700199215986091660579247157064059330113653178440652215358755459911754947942810574670412534819307012298297779991729155191398219716714301986950884833361642306090616820342904017583104363111031844368848126974976924214576555320796006454496317792749302553291383441797061191721715939015110697152241397092328108183964805449260277239547081978282683522635056012798905509656538378724701709071629854413537301569015913013413333939514734091903374451553024478600703484249361167532773904344905448752205632350394326742115938008525662158221161911783077282615347960757866740630183367042480670343826864298113031830743423262548424851045561890922616216713349604044298481914800743531387747812832610006872614622368901576498159542409584311197381813417813135516324171714857657518713853245671743867115960021217892143294139769739492357798920457632900718962855243814487484791009132049894746517402450203977957500686303210681134201357334571767876085407795373176173078099742490063720098124349294628103338583352958048594152008046288945152917940986550850229297744527603582017003007547564761173810254171842872634904010500053713444896908560999736520928015507498006959283559130116585674160924771391103068766679439061728677474215517757694780203845340670724424637448104966529715651784405756911089577885732725557287327679783156610763890693190867272843703812628108740781349971275031277300234949231454678152523836268696117457994135777474642668528314761555347076935500880271316798020670264899559547504727574600294890005588781600731014567803561523360033955036880903416492308521937680656516901660993119081873596175912166924023028089907486093669349456397038444606889473896139681095917704125807129728646480887505799886505931757287616804119037918660070572529371361679721410528004368223227992188383179284617802770038075009242145549819317970301558476694396819512912313977226361022268238253653215681548045127285755298242803466409013460740837323660004845926738886663557381225163529305225126029879211513585258001832073854382118183215172975581831975235684819743699894006920888970658526249326573769662415429458379367482900908874317206284318657394108279048154434888375276809735007165282162101396773071981825721479075114093145434314186481550598101897531255701468999010306854883679245309981878439975080368413583359472367788854528826472923041451433121527011727743536869877685181512471495665715804386537941648706433691631100504365209685024121984220355295633190530029267971888551730733628293006712299360921991772606267911177573968633288640640665146475799680916471691054374394355035988276440372112222216013735588468290735051861879031404532182762646692040899741115032850578707369575579355907703618840272979240875656343683067917225232981620984060907318960178952647724567677315236234979191258628651991622786625104788162881559431041906224337831954833303960256327124279643800444683589480112602971700188827493158341206726233110581531146478787640956179068694297889309830124386843624864668748395488987259020539127394422165385585875575906554589955442535818476994661133041346923155322872075271024546647438423451736998666404444035533773787438612362097767446812339783222898797376230727680868678911824329919223198947992815680141124779464956529236563486864063358563612275808619795180627341165778689273268273241788710069872857940368574208154935680067257489209137291861975570502928880015673469337015457382794917455736198447229251046755657488785825993594773706369947646689943533114886618355371454765833073672925247849263608320625532283376341434449611347166159470428168393911172844031226929147295131064017414796406028708221547858538109257503443260164402879341711651977810297585826672223766394826687292815511660906590066671015275375954305608942992027727380293053091110632054424601479751415771091047844699894163821337534500823334315446606971543324422342013411034928231036758143580147238426424235968676548914547384491889066810825818807845601301942965773552361411046392643923894373306301521294024213590035254635441218115016973293580652807307108875598894459061560635465045464613361335359461335346194170370406918578576234218777642652105358949746606038158364013016558784881701915003567872060030707233199422266789103082699056484087443260717543477734906335870255211107807687741077072538970331909678163609502246576624453955901215162501986729280044255579541953807596165967455271552905829699088230205454224247089932936759486204545397883127817410128350308934916783092482963442919141830140135384755685429872789814089686704072684753365141082765541857986780991728254461858698944499675761364847958096882053434675050316202398611637182492185487026535297177126510687234338074053536536537977147299668987686155341676998410205392360297854156351950199054068836454756329163667372007055341946803089505317806389877263391862607547335627416994000488110637245194818305736366193953780334832541363323691743287370688768447814427137902117380923372605420396249427250654144944237800228431384757783197579140006453041254389436572535578970272913225314459767861099733050090899248320488384820471874017775649054295792933177769925878323303031663463870530682286812330198617867844773252100417192173202145745589119607089961754075984904938737024894064457281003682662386299695752770204205034280621747454861201472624435135761601845771684811122290704488337563570585101438109317469251557074700843769890061997804612310957222659058245625803819790217577846631118290021256619902517239781333845140565480970468626566605234336283056909894587954622163388256964221865270117663163292691881235758992338109486018106174786156895460009300371283949933044179655365055127657664782318111729388999700607540791306788334557006234041003303265063722663254221933243334554052039435742003635284074106960569716490080497617308988874001927407108788644525421726367774116237305395926044822206140395834114412234718642256520304130109458016335558331861754462901224561039002045750699772615785690095465432018722209418484789900173717624349873585315060267700336849714488356206735624294959950685085838422051635365192324245018405799988395683207480520110949890651386353533960915868831351464518524213172213504581824369905784077776937763171056972144205108800205454861589286083815973349410191180399389224800546556880220000579259923184980211692790886649406550474940673197485004696568608256357989175128678818158049989605637935336873556008464627315274320701645669395994160524246174000216602641176405252883014995658488520076306531169771615658021288045600084253476556443572423739067448951696563335225545474092704892721481647528733412002634783136108377514299355587984635414156194691774449827480287578670779940492717347660397576953734309825207345241322357962249266507868141436315270316647536136629602597361609330683665249394444538370843758230335179796520744188372988116438924788609602618066529388288372537322005041137757127657653591809877879778626731443231341280636546289411340624636843602916710380177314527278371965347239562029693369912017786968122212457337356764340532578205177863921336078041543235949279980990281646743863298249858171464215557017292198848937534477535707260944819058713528803026964130380684263621035595972635200513954978112332768267163914503794507279464985141909744488906229140318733536978121313040891205810377513581279073916803558471781662270782070366941108924189696845068017675671719620909699260440632830332022948792638090484848763102657396355266913569051465952392515383313782483061470133897985529073109018588471231308052735796332634655407831812648258539384016732063473756187191792230257412426497422300312658651473365961535657398658149737172022474381784193318364422880399661253101941733946461274840340147584581453714195848074694614552283878393865548162810374033977272548271231912434191076143116186528100329243958774705205440867880940614146455628233880963674963226711180808052260356761903416953913101750594261828594048324979491541897256651696277699894908310848540235820041194326114746366294243354599402566411401458912423643527443897307569110422607594392723204529030132263221153094656739824931553044962119025678117268136389211032862000103249704070829774372245621443336422977914610097254529008571556439157760049619786331755372225779882747957458288324260132136656578910176445547185973299256197575066704441182437497848198760868945693868313963477316326904061888273439849885194459388681601531323218897014721233467762536373390912925093744526238559186796816181200816808150179727633245931029664013668929612671477875336624102440655806854405607980588910483207826996380196166816929087397700028672122200728374647526474638184401021430311305460656268383625781649552298757376541737820527822291330372895164876782489332176497502939529926605865489217982704398584180839351223141604548623311769223013626506033749606770624871958665597899169877294923303201326293586978094373456206865943706085090441810845979356944392364839779950739898674513864459434469629158963106877133986439488260606190338934191672855021699762332796701482034233961928670620600490251137015908817907772435665282494672313651555950658337713646578521831751114569842770438818498035538713818494078614804197530684124988552590101377705031576647238967918718815658304566394861939101100101538034334534850586749265124450621184146426584341030195744138567000962182021003632363280469914061785392806657943513412893646279773443371978803464660312542819315909014053176897555596178046144288897944267515535681319349671170187729813918422733536764429270148391284516556441344914857068758586424739598788686577407759491995835218628901020823601241886138906957595689957661196029136859853014266584164686292816229577648152205655504705221405575229296074770346418360902803683451856220881833116915523286259524084108306526264604618993098640541063409773718985910525912024023653914448448399957122323095535501809645863813030065547358699715552485475155733431079799855982102966851562552348813697654892861409431013375568473429579372781577439676430552195697522476535652332428163156900990934016557012864114135561217043985790757995526662722832392292011515657374781591679162319584308362955455894296480098866351087702852791823565872608927521794999998520537656602175577101794473556021865667067015342683669313701490626494678085570800148279754680928007396106074690752305150894764671121329057559003101041243473582245356218076808928831117083909216737080848360198241837193118152012605560749977479783818763744415446415245513001068003792356567877307269154254287708806283682661077818151131671776227113609928164825196119286166159132353694456269700100172269595469037760999186353468329195046829663327875699340844488128756275835781734868051793556544733099444165276226157031633112270000674587575503446970167046864380242207001668224111407678601673896431906763866635374035089433940119436528039995654120531444109912976605455778797670763838348580531083113058993761370283619165983986528340202542608624756723711631287067092472650581608827289945153736749138626360693050279891995964160941542202267713992038158905198383346194502346173318991415971650261694079684525557472350699701724573016089148062524796928234756314623328051230728762841438738786092886776171001226149650767223008755675461231145028510732506800652257436801912024255429915785560205373961077622023770745133366077882032229739535697017784586717072182311974743962691272612552320821789905761782406217828183262105638671424954957344197740993678021817588407021301309600608150258557111586998964519067192548779405684735389767425674224230869886391095938572216244831116327771939510141432841195955111506524396612007458876659905853377885303894669200213694742056210806864508622740133903123721886706675356326079416844901108960446310194366463919636627569760343003543231214857048692392868956771138613976177816644798008247201775157528551462472654479425584836667888699640593688448154526298033836067659146580247739392280472894748325300039961696914638084845486025428539266531573605773961830721569032777489151557012197741742883645738013972409570230245180528033405620619128917865935713517115102031482985229996257368285829757236946678689866214728460072619624630945011492530120125846624675613129362093847348286813212586806670451751568001033456756929704890785305128229855555790711555233214585137333392688280239449913811177260117143262203402322118647627042387717829777793998298107786846635721183565488384929941987752871728921711483409914226424826321441203499100116216588180323499863997919478036409243918180735361351113491601752028065992839978029233243500598452113654233543844173838254891708492336741453721820611981929961517968206690843082413452002785416433659083712328424211403668749349653148013305210060702752914826830863758897122373769474067410642784841227654629839067146836487351873315266463488385235957350638610406259933870245267938293094617426346735541074305868808080113957849457695605935260857520376699272609136456073052026446988216371973467435519714484865316415215093716649479714409309669071663650472169414158038323269215781502604823748689457578536066304437992900353123995440949968302558681359271487287064258294897138231934814410980266502633643540639624799374709534836452539485944855530247177702995903137353670012490160125582077366906518118690193701645093401663935651631795182794861387911942010977484370275739343999540002329409411459409143252066270343266966557582046810314813176725833634263609776802649081766094791057437920219994098050324631142269399752831758913388429519980811485172191527820665800801261096507507293215740850407202401215729613017976443284703962716351950584116829069414616826474142071530618215700682075880531799995318207755870748630666546570908276735679451144082028002598815958561869997328550424812011225445295644437598316151768678351726283696297166133267947257419120326850773631730258490753258355211173908860691074044261780879035956385624893456702616413701545724758076051217238133081462319752547630388965460845057164231999625530707678705689517480835848574366092102324949514466227079199806890327073759636707631743142496456460212119185901189713438546035395615875058038270909210681653524147037858516334991618144198114246039607386121760904109743650129044130705015505753813291684269826386416928854686680028986848411034963670870291312487367716914973993290873635510193444567752312454530004680005856530674247732405014624240592307880385809116019506792369277737471039009847733412958600375088789231853411216546792137118973136735843248141256117906481567397352887072833211160986465690035191396544436520955900299663633053240032744149594065598394840844421551227917159383481500664215565839150989263529366511285587382188849381610830760886095844821240005034276952466691424134630291043945078993759490811411094528263252400492778445553739886966608853212983993623560331749679075060711698600240331235402457298576439895372559634442929952360392551322745349250887576765381719552911168246311937180709804905370839012608270058225849816130834827715325779715057474100224049431064619228157240228232594692185616986552211188871798904476459187664191435336401839845004346790408318778611375201301402068830948827820223202832162386622372354582057056123472081913290841670912357067122695786834975073271829683849820489902795696986731028061460753690956570965607563889360496293413489408418941271082882559954319614969974164296544204774319000821970836274543467883651927611319507153098822115293162254267858189191220733226160690515128863954011773346873385292853997971470049086111147150755973548753020931798526780548494275089123583112245507002976440644497929278584665254909659044311853160176491076200911944479379707435338163668389475468356402850528213239137378805341136998851025042909573747681096443850135822002268309947203262152793152294099616081651724292641973354128554837381858183638527009640434023010467967396709989796080683529605771673432969070803734902250930535660661853669629187688022331354658129120501538584102739806595017597171176485895357700360711427826241931207922326209014176233276020865440826972853023438747636266680783263729970866958241852948599079811082928009276401609584169275953487896880919405875415339609796624441776293084348685886259885778488421876230407680356240038566766632320389033279544119558464410021473312912152625393615079169826522662929795822828351441528537336415284282169477601580749027530010588565079173041046802406033090478694146729778888457893718123519552774846944320855978695040362655840528249051673215788457700207380514205360202238229229201734228923038040442513378476404899424077458592466485972921524081191163835423666572259840896231077559364927741368389453706800576174691204674567213636180431604592691929832979719964176927163299520658179168072119531339889892596255460197973090924298907349701487016286792531547239693995881575104737065042435241736056113400425872136164292762866091770735278987160536993573503950859961627404183279385440332257318009548396364900297647633019493428098149072853420287070299159284425768989895271643311534508288657277529462470723508520223417133196065338771761828381278154322831035975313600661165466028654781718020606940255662207154300934785449762944763695959175779525901557188199022010910208447075815865232371400144268360420494352452163355698084610674189885432224359760296505871135150337900685451324860785806668756054994218592611115865387515225238913944363915184345045874193551710148027323233178304458118901055172666215420378144740362461019170087587464809618330422829268552962573702854526276238586206615619734951755829480509013782564230932897571840093512983745863127223402785375470020053884086591081743415353461469909108435148970227552313621136829047505473595944817337769693723970005546450223116200170865574404054893768359812650494068495705081098866062349331904490666322347947978134387743295998334978470830524664250268369168601031189932518960300412552481645778514400373096975000841628588316840897070531613051679557270412237383635724976439613921092829417113865961059294959713913935986649463878239281923551367107915597946870758411435371204393791275266745629493299484230154429690172100132795168436923516986652955808876228192398196857663953510150535597685025163874498850799305674921245997469536541878297043498253685187078400775929276809954265429128547104271075249716051286367062353752626758144795392161271910139517570319123544365215040576278670087712230126803753863176955285946559901595558357121597207620346113101205696050666811437593819295535905597361983703502682870575391591485385798570105657762902006033916890728305908318972517743491955926945925851095770684574149847460240670313657673603426912684736309440969624071486007119397069500623903614900057824242941929654873607184095207391541494737792166808424865983548947384312563217663592857447985894234129527274444370826923400422526978390943360380222026718744019696218882868544539064621658987721824855380061283366441787914861328066277243396005028899174211592838101241938231596607345326696351242797164792704722681507136643474405073723480486757879785488506648550771360154386682561586273263188025138642983214592741061187973556963947841214128178118778667408047170192399688970215006329031779303323570291505912785350570560358974700081446606722304217568645797797324366593404842237547026785597690517455187246927505034154649032574714728731520785617680030875901811530413332347235082444402675144153781977440986621781309704997380567771669274853015043022562083934234591711357685738862074789854330691177401439355899570567547769394031313840128102851265576271724854545257105529996943214329883165073658461329411661449697986782522012432507281851263353190479898759713929895630103837430919371022802704513260732169521043075718318834811182104609269991494717362335142982737245967659684863035925388116067161160319946724562260862082859639042767936913532649461476193383604802390052263530222922484264523976310161114252689523262026340704612184136204096162166026214332267807828395106311447902978190152265648678017308311682681746981818238704849548286734671224355352870184037261047069009359531176337971330565699653476438010966123288554368755464633020398771544708022994162115932238904680931434269049772953665709341566764673750785109165098676778450303362418387593867673409622859335767479903837027226088525389123469785788271914533159573570160861768845605206023629500158213007882542177085743186087923202466794271172484741279461476408150953620303592548668302857700562809151436289384022310684901013105841987255358075119270375412401206884738926380866632527712371026272252554146335513287437405808036068102282728526649803669440874648175772500045551545550150602160293229139343106124201716805537067590373792270311804286928532226507646294800861777868178844263705632684736444424647791449757981199976387945916192546735830971176033138131492980638753609310698643120130707916653147406307167116527894783101097177617365992228582025639839132360727690978061081708457334989733166371303620581859384718549260084885615277425026854401946983288707366937501701422156604664653946952038601536088589054186032645622973355421787177491678943947721167974843136311024866357427114718152379299715362380890039894196872258610781979479862185175446076636105741702137568082366768742955025236794167973164110971756267131104106884987083840428322737294725634282189558690356129778252554644593132728110890466863551738328023245517488549286842478554727834843447578119401114346522848054620250944201152706446530884988328318580865759612311420850293824304219014570298304278019311118784100906529306912480873364196410512191392545955107218294983280644756810785164607019405520637239045934266694560953092252786501426824669556434804571952012252566365221844703388307606433023606931932064166354881517771287582810777705439954248798855791224035051491374346164116722758468717069223944748668171754287110089507930921277611024418100457753502581904301882840774662315479683626094816806607197030566736086153100771939163613178223638029299160079504944369181180405701316938075046153813870786825139293099201709364729362721216227928372830505240415357891237780266409400388501692503994483611924367193513978587916536801759505021821401940887422968818865828215823055778118986578053862423618361957014234397708089872587538515934923901634979395924337120904309080434610960984864726963840082432012166345995921008643934941527023023252403264957765166153281685603584893212992963681339675719976459570485814205729967973410322240803780220352842382552831475779495623251311954907675392681072001838324117905861905599765669727773953570752090002112974664287651073784704649325281656131566342654266314806332015165989560402075486665802227700635399941174745987659087868484431327858859842562160166489700641046644936213610335226669085561473006644449073903199831803457007225417996612880084274824725103376028202067808653813349806310570413477555756962054606237636427434679374304449656025202043393305385096743201932609269413337852409346057471676837806749264178313262420472438841940313672505043749039134215875790338090681140813078194834492172515330737443146911949185665009334880411330836299705917337483245210241229687832327512849025398334787506887828553933365181513344654233499483448793435798905944535339047650778236625634373114152464418470690168203661352956939346514966250418792491700450888210966923683256476475049264795404677952306665715643964975659444112440029163034996042451450973800063595526309424522552224444128704899299782252113870800890775915227553831947192872516029506703058321633515683503187593790457897901020239599615191039691991127093639633030992147175900168384264401475374097139767732395321896780035678684244938201618994449293148813919403936313796361616810830813210871012943587392032814429701781010527039157416375136173335464426956795979265785148033065467542339376752930927152056214406918715606193087235606308746285425073232877429144942966884705853203399573745253915555103353739314307700868377260229183425767247031949057372590890273299073958569127329427023921227430974826693436494807547531606563765768728841345486667031302514857854204771539983010071189377597635739574168351274366059488146144065181160088471160626006274159029501558636712763653941426405409729327185692245339030282787215757106002084134662919212242944614384160495812442962170715400518575897768778493276106390822512232024282112282052958180701093895009104481663554470620368223928359806871439425451165323247104046284838195969354749147886130915733039002531770646123215231583649377166634377231726633782737122995521071241200966088999037449700605765632251962136135946066132630338911934142019695553584374237930832486178471643995687159774332804890211677765986872161111978161599362902759214512657447926141094051434308415965356396951288358396998861679141927019300159926198416795927081900676462220002463388879313951642136034545852691541978132272413998618298988110921586893895840914518878898122957215097905463372870627143016590193404426335658296041072482647475321310079684754466967940588207823217933816403676996423802819750567747419203678912176361503806127394345230398834446308889966253745350083555662526726604466257752573797070227158834792488297161878739720310205618189941798718270220273928568147297229881661716984536989935445352587945446337440169035548616024223575547762827345519903661118471241936357977564684935363612331601108071852139162840731333017144191903666028198826211511810057222456873630564520015076158040695082067939418909202335072328538229497493396092990550883503991603103771512828037781334376272858135255120810829550143364350742101063353861432217901110683864611029287841514264270482363975977270378539753465318648651794246314059997157332436999998149101289264281179980741690055715794406136802160824388720317660359509492032032149174686457772090811467303976830364122924062707920786287269690877801677785390927921281810401413537507026826214149773812944545800614335976512543776206545187272146656723178578058705060168294361052757597783468797302735347177990791770370268636274064790696255053833162291778443634730877919813837263584657830619282456545007057562979750050284240336060611608248771666220638213335908039329394129151545872861496978472908511268920188982961279148313287244853348209438838059874588456404628093134758580792067736300908516242722143171616006933294727173124779782819703963426726278997721726365074062237963193893457590278100465675213931011306582711538230391789353721660649467472256013172310663299455917399012502935839904094980088760296364206940984451866038942203102321541773929704670549012051537407058186138186951891927875422705906243322911461876066900305023081810741330986186711631156193323833862615616297415781918622349111631183396712156446162772862767942584382489537012241773665769874217236752584428871971237453326855396628284325293565310924520493154573170790396598667357409617911310354379881577960787773692735260095578801274904212792218621078863690750714378544905251601972779169694188057770569797124654806656326324199860805273309440625415260718452694765249889906670236473151540183257163016167865979488929157900209209066397475952513938336222948298039369657848886962860662565622244284024607335691345167710829012117104758056041646992551225727897757207471845634471468583379361441422694422386580176480619393840436456639334770549502906840955867384205675017848357999989472063128846612944220120886169393128307135871398945233885733842332874875743343352102440946379565865830167662221988586780411192239869493869947013174214067365458999470818435269267999529375420775700432115299383691241776753491517963985753925479034303065355846293058289090605736689086605879850766688180575044244199614829943904069390563313194956707223860373665953668857050468240152993109456810364502620321528980722353917671138864018757334616917841214898619398115405717002965008422903478922992961313829264012412333667193763604847319325036542796072578979073920351179017564154886370733223742262169603157975879064511391669900674273983257232584028620738141389387758588470609235481538737510009317636537028173190343784045207734961367524696773284272066323132758128305613798136291254933539844125957382442823250403928918122668623315730499064934988952831289109846811773117043023105542522740730302858667671391241741199374440689895544569634031215232464651753603150554748833995156340617450182702238291035811974618256270183245134281082803803300574388143079897997985027719926066842291694743907893647884306947476973795516213192794173150823367067578105329493411740807303591069359688461252061605342368664437205119878057769383651111335123811595554097109649084144245090470806697956793313657280735159150020767566451074631967442731205045940966156839097959362540507066680114743902423097647221484502956006308507733183459918800086120808090188156194180980404125017601167966918197626259763401583870440232864306880596995044029325393121898507344315210003648138934701452857628465353552164737579161528091057985973287325102783525584407634317750651171429323548265118276732919949192027184768303202461103954324011364052730254429942198604851961422398249022499365576725074624962406215567703494877801025814082958250995673696245216710411756057904696909767751967447958905692032140892256444689483854158353769705751908042917944131311688424799899643171574043283761404618318121966946632485578889723999694401194122381451171022923112397110895626035092446637959908683485734322103506654686042209956033438734662036567981582705838405018510122111863282102055711753778505492670459856043863098360387093013536605977957756231689873041028543445485607116423951280532818648435693909589207062946916648630861396485891783901564866605278570705216900561943827976894884118551232703347619846828717667510918991905583888451517490343975273686409361921270755210739717198018160534116743111613761001614972054280255210878588477034163664155926360122539313619357258776948577172781069988271540423886169475055225844457489552114375570898169249273373089443277319356323705640832843364531249121340024583007130369667930373465096707551330966220650894371988279360907310803334386615492163491446539712926381144830465166103074109538093182916088608383608022520304946281264833383031747185149011488519082326535228936698529855500108250461571680923252572703611748653100058002737805669607315085307434672380229768037842121803173991668078996262218154593692807898431364003331038269274700880996630460913914880453324952321575083475274115411973300970543497053720086336369456595808730410929974412721502142645087834383667987747550751706215849025363857157216625061981013728367161447823622795985743337305979441447685028198053700315643300689005606074768485883336434892320902860566904822511390797588819727403087923039241382517899944941738613665688621507681751676205522495072734514888539211585430107622532526608258213563180172529328297591031871290415960771568084822380735607413443710778756018067231417578664281633923045518465078538901487121493535205474304077122482255869133410308665425196447674047124998365366163479781048857872000698671985542611708965185852558283414982888891133028694722278802494977903485161760153430416109378748200002873667527213816907935734661725858237190935018731752075505772535686166937147504478170661889027408602436404671768177624181562254358418569467671766794612807580777071412153244860027044475942161429350312269625168151555138016489775050468180928960486133331614322680590315358597387623334136349185413382935451418184580246660843698468952003566712518659027222014700534916346257240668222159272452470319099939499604373967892288986414446492506856104447201963386991594773487984370069303315865589229226403492394997898653631757655041718517380240481954518659527518991173006065714216945737826630212482907966246694688836820254642012309407786876028163135466681983302249182352198468545669812240069589585661726803204996603306915139820051604214814676739486929907749598498239033833474932262558276835975116473997362499914865409380106214855218939359824575952597074433119685329719002404454579370935918529859802901058380753826886589709316181656581652816490589853456885938916091047844667408067277750091081845058772222420995956883207026179064771634121678603563659702053802345150368988420428037200308464459086601121267687866210314440346778690261501676235886100646271925823262199907992646776011089994148532361150052945692017935012748896619574331183865628807241420705650707961032484186043639793738110998326627988461132928473696129833956193084946852614874888966598224498754229393778052422392968182759255522309610133368388854657797578815070944420344652404925269758852065172161268621719813706241213989335461999204293580589181615730171457917465569442283426641459199799286456164572105391659305625545894182142209946332294509183526282253916635229426424648788083861681094180797417012609407204602543125581975629995578593613330242411138428115929959724912596249457182617674084203727615668199482919318721846708656626951715673824263749113094073618874848905873502351618099602264075044363961452875017513366396352984021989309669692529814432534531411538384598154569256947634036083198583875936405566775078982938911319743150941390146020640876822514151409545806721302894940638459734081491134297565027074810512735296078853946161955410298510685780057068966342568944556505869000210146884285350743016086318353536563317251187921587576091366469021319310702975975126763874952921373122640561480140177435949442444595062616566276306367388952895955582643069244561252263573602717454789013198062614167362833800534494138701008939060600119087542028400008479994552441311746467177435640038836175190688959534989772640032199165453744516153242343107130778901886534816844339230074052793808416521165402791352558648051210765369336036557749467023663168298988786835898531422007196526647427940696180359581478478355221552194402331272894509680784828246251330982051265291770459360997355149640531906270354103549068341360218519211340725736920111144068557687690304655658022715130535061223576188956586971366626720477720258208320123524455086297647982883276278990128581525527344406028025869612086839104278652701749019173240940459812478758148492349771170936585196316677534682473029837894466485522158750265326851712830734858781034552858185637490892783477739509827419733992753903622722095133333048263571300246664774002900340200804901215204801779441145287268915308248563731900026181598837141378807900782671636466626005503575244429639414464684964832951916951564124203470868927582353388532554845379067168699528314686999784320617903901448121389166618894054793281797985699620161306718933934901380556944724089910831696373265603823854542699461072949147592711771395379513312925618378032007585253291192987930401391658005754328728384813205298656747835525436332491785665253973752091643203061106352730384059063202330051706536967371527781836212428803496702403887170557847832521731708832605204410224286578646781106662980863664268353362267930651956091474775321975435664613452715239264220937087078427174587101699791642942362237420748630549832383656613246729598166014834797290416975247333126616583112812269681273991468183050709572839728638766631013002852261669737401626222793120898611610892291297729109767547801119466870140430030549967184461098733151314980450565965549365848746539798029056023915803249352663493813880912374662114795107588213040050363271301470217601078156672107835360812906236544793064784184666583643809921737294832108968587766171384198487509492253112161687733489241503434754501447278608324402319422457886615000442634415262286376651871280547199361787799821122063665621204529749832057884245125986587765092743754764184679679197093384524407927098821003642530031200235826709975462601512457529290450433527449489387701204830996422376233319966470999927747577598812912649102276440783955758175581006052150794016158569533279004269797037033578929676450106662902448095838111159971714962362774225469470651327684301360277346932561607214507167025962214812715823178856034705069987510592816774353923849835038683536588004150947970212827735836247298778650475906002224581892619018926021691159667391230516866104240078563793640961615931007154886352487776152231005046382148574149248366622303595410877581596547739412502017429531453018801650104550467761614027899867981304361027380355385195940388238599271527997300840285519775191305357460326195776426863184698341551831330276884988854932496229102984340165006889578560886788789928164870240764854506621036716883615168072804115115977092009043760619601229330348489204585747459601756092868660785820768531241826730619233693125869119963449342390364870097889526146413142189209649521540275426140341469005862919315860974821527124058369356035028125826735686710370547152927370652176150508095740144834583958005284601982576924031102862218143626266198032885993867773640355288243942614677653902041805691002446956299567358995244031689121248028590532575060588105892955821630559801399348841731959207958326734024198744562715459703033544627887840871389933606452847564161514042393286272217517600631517473275872395215036559154539726144515613730931124129377872037357551103657637617171208963132803672164345932590783111609279700556408359695193389936287296854132205723142929467256790411453755198879834175199812813687857007647661760655404289047927924708385569372731610824507773032784208389218892555987918299521110987229246289076005148211522661073019549457630089307877099510274030965025143064049953939232054764549622991688175201756974779921492745531284131003076568941066897979355729060708701160455369334132429620891754269148891153020624573975117873088742717632858879257044177614105076265415886860897850546286758061757593259503084751520291671846961057831106847240367707155807808140681631686845001851654371756223636671079189392787853806688069294361057326744112679527448641090686544449370707532105294811802604580196260723437188936848782148491305513859488404009972081104253733509999023058413972949537372636676486860306877185612453503762212724361695239283958983600367924323964788356781073188243310206218151410162236970961801814456501852135032238476447724788213788632061698677278952724022956002495285914272500794179784720918084494529558158095504203367525708842855098867657215188071113995104299646067413749505520498546415793996028955317626580605942518680396370866343038501225819765664788282225325873112689639309657052953779475243961956388331755578383271623156754098639643443601626544456273025115590905516279968659742781937325021398511225523076100952118253277518264125685194615924408069977588687883049675515326074854176599402155732688047719061506311034397990197639470096215116449849734445773964781370795604253780022568598272374511303522490003981816236772851551823592650203828423062526212221896499852899829748353844286257392835420702812081803534808004172558309576297879019793211856506056375988156025165401450062567279464280415683237583118658124763194545928628433883339395479099959268411462136330210439286105590731328978608134193620836537884487472935840535648790040413702217746865254849154903841928163330449053749515404964264347449728932320892793844302015349971327233482409390859346752941214771337410909215962730762557683380429678393111440275374291496292311696212774049330808958592492760297010062204014275615631571925359879828598978144602063839504218075226022673114017657242692328524179649839674897658600583844817600625070296157624837267095322052299523850187200838632647649633053631172602463408767302347609350689193013197418576706479782589337741089810454583202675301230827289420729889282918520436508256045749036376228805740171917822982622417471895842582077826502154079758698236501625186963603947068692650174708214735063978147797532951374925391972599644510829283740978378603581860014166810652924770285928655871263966470822306450996008871310522381072114349970968814073132620068092230680044270110843646552065662751768785856274496147282772375857429407174794096567641481873591122908572858545804397420223532985434502593829386989278233277103974766095708908848249320890340346748998412779789346761561713380232002638762709671927051015782811453402963523370473628808333201308633640016427550729088537503350961096029568504850912042558070231758371026489412490146498510859760088538778649936951639693765136247033848982686439446788203976286842322691504006312039676353448504684397009267615133577051294787432120832097657674783135140094931888953547956114389595802357335623757412917827219614002864846813915308620057278865957256196690551849463515396223341965357276751349506468432962586330668820949714892624317004653402017310713905323579164911380264158020799162107828190098007753467887455523431800900029432781686321888102140615588348204716015427559156350238323134387872925226182281706982890611763592663008547414834552513469883104301156435184148305624806251390393986070361506675494645919150913201539377257369383434313888038002997907801804123253037014934661802670914585599927854260358467864244601376906670628215340964481385856158212720542985169940616017676510766007961585258694648812415893929840137733318157425304306500551560168578915974179624304676250565511307251409943233427122704572507663608475620639764838719765109601812782571811499857937091008386719213710032367022915429721923163249227979654329436702383791834494181124237790333728349787219407590121756914724601973316096788118873542368145067099952218015805596620520744543501510978532707475339317228700548300734196511561078531908661585881908849088487362486324438312319675646501896307962703178021395581467026325282900457211718183923435335750252384943264380775448448008051232653101471964091294541189231171029644912695941587001725582688510448342610241268879153395656312169355415361882932096743929301860186649327986708192493107080388803297385706031795678808467330247193540573560039439433203326144691921835425505784535980914940598594983330301232755459686334698347851431121443653386135077762653028669289405282603397919099389324186067964979686685708232043967187881685634114606393136382356626333900166299022985544124916356708064277123263247612939744527109684585836392285637306966751147734085542997993336494068079260564104658166717090986443237978968862400212975071734663652248092582933194698339110948096286430761888877758447627247855295224101221154893229883027539751503974399257519060724892245285863177891730864026509622413340648911186319872287888999208483864542935457836750325733935826345282368412144555268753859871283163078217565099421336133529269766436616653033151115216322363331388234062601071356953425617873971885792050438758715096734680056663886517226135135856688359011891683535498248773709518477299844451702454035257621219490058498314178311494272152495465763557954432818971051732283748304420854611196029909058723480418642069816264072678110724139109359477114402995133875976213967765972710348888382469067506249324524201458863440175181415456128574830636455475252781865046448080652192614031613829015253448999584914326488962659404845113444400609381465785876439035239109288774044503854668979167979691923778810087413694344987882321749371742072848211983800566769659082840093930470752260054806918783056783647481663100916828549727203591962520703498088950869003770481170769416275861224724354023304657174487512003184746528243288897196984097735460233457280366155072758650952515863161615086476938224961202477482385647045145151625951402285951476143702213268817192748510271254615724893964842641967823904391985491757387240936221540831201552416405084278713612994417542605797930940901160823319217314678137052093192885947647773403167569351515358771654655991405253854888617136627908647149311858441605236383253352771910225909974061538750227471903458562106028928968999307052999359796964480219365660857087239321871577589505019532351105719691561808808146075853796972682331874157119457097421802734317307666489642280561144470262065500509103051891739946240767036162320054794293935482297288748412251785898918007229872496524308582888146755457721295456485632309987742647852164961303679629260748212540203714864159822596701680134537175799263085727060935150216597648189548655291447981139937126146677402277838050489897812047356652568071576076253157952410961852120495839122849387183622319411944344521492201361856535710400103389866494471261676447791311122521875634923539228633973078329104224692691578233011582988212124968106663663877418410586100674707121586584910698261793024820579074221520159988605463609261444054089358372422295400418810231682996816324294439032970999568157463994921563017102956378586758732472948894259400004894202037537918996568828956751106821143218729088102749197909336723143332084539965174680177854409496237010070281790162498815014574422992292604385533046692717943417416283306046363229309202444715402368675203034523963046489562995593165394878632703796042451612168618288853728673037038625395752014420577721849069098666169544523454290357490598937289939346373697993031732675723495564659182253920149465905462698142865764394144045950274939752904388290940539806428567364293486792926095389841420323152115711141674081885317100338030476845786355564061379795903194902249975665594924220953011313899164158046307068625185195174462966291575281773301091579334232077737422976525170894803657464537549314453901356635617171911035223683561954546293242315398744131441171642530259529975881239735143442104595721621867423569352511406703174290055330448275667398439398574060996291623397718370253151708572823342211413090881243792758765576015657623922890560582709590232451918066161852303063819306002853664723848670562063956422982340142023966881132942839313472045553162278964965589666992718912309974528746557894169377222742245445725635078604061548668444973251327992157263579206904875420697343850872992136714517987002199743048274584422275592667127298209333746652312008135847367608571687029921499441022482224859533076973420929479157905070434206232160721220611101491708377609346697914305656202072787203052497054999649442692136885496143351414452966175223195565330679870778305871977523343043535847859213827966532970593131328714255266703373994778130570513791904239731810055104892272553829529900092204280291810740505576822008244309612237889930086820589026213191003202488272984275065653621603093997221188682336034047569238706454312710275067864586986886025632496450667234762831774010611798078717219546973173619390317663278213643967226598024495346528237099503299884485248019752284198798856867529000130792299396224509297854899861240771045437065271816172932895091713711411480272463392998756540480299890766140035861969698698323989881916101839963972043830275833719384395787775259833675878297258485087622898329708878875811224696695261453063798541715608497223806979834153712317570695107191084582218885146143640304877809888693849337076285229982993757262439669498571651437088863597213040378527283956059272222272535309568605340618379887512392214446554811881231262864913600165398671705952930526278679137024035938678916831157472325419073134974453163139975728447696146501661279743452008722208703154039110824496395266541504459769720541962210755357366082770913814921493519581850707746586787653137861887378088850950069069331141852942758641787485015164011102977628112828055255685059891251257816644586055737209662681280277079752886601744418289753287006393784079505989066924751490854142968134476304654584410558794440151052274647660495080412898720272259539292445423155941294597779503047720083982753773666754892762543361773645801630852587070416109477996894000076024117874112779937843663167333762604847791090182762606800034652359548513436807575632008208541681700890967767736245983137822294208271600414064702203420908890338707954327456980926593506795507103764383620863872727788173645472526792028115668104327294662384652367414931263959024026413085348806697010716706842885297100665014985377455834787353289303537506312085982886000772945345434783057668016466468537400753855414098019850254965346875134798819945149264288178763169321440345012691156422570719104327018318318485862331412150701123820986783865698811592111612181101063684579355643741604140285629797848844826884401361592572422687627865855001885030358983355333150096005131508968062541146857602005220323431911621307984213072280056241181754410342612188210779855677462285054498093499156373347624181433688499543715692465632315011723309181590323927265534858370003083014960133425462674134618042429361438466494338122264643481573145580845352084439453716614106247104451819586419839181722374305850789159548396584030060179526667712948574460910892008341754446689527688740576949849284095193895621310698100019951541527013295959125980524372782521956817147141497882312519932644284112936032934600919178900740866690915614404573980548598669455293662824569983526668058336722741613303382891942356888009850779723823073788422990824777487380327232536863070458323104444943631739058181933886514257144697941831221362417248940875504895756446171933709127715389931399770220221415668368525273455799372871228114847793200755610505075823112534280772115292957136372203015298488792315470817432709544619461330623665917966591740206604936904571960100603612998557887410334741733792887011751103380207156376669464893441774143821258489772027185633906663777006604722581094839224732902409233529935818979731814650853926262750339660908028795425831758954286180240277952886722739774452310070595596360632120380378761908910879065492453023333903970385527198225244498404092783355070434312435392594635433948681881592221359830361065663028661934519314640806330859420444508386438915512424313542580679211766429174089502229970800657561233263865133331053188442035166772382548193385835162980000670883135986641169321640258596719264544523899057430741808380656359153318297071378120222209623345904667331227456200443520251288315446324542902824287462728422637511909676304098181671906641033034619917588709852950674780325825407815119201599677114264964644693634840678431170559664865969518508398118873013316869160934671430187979148208032695738226178883249351806761900189734549352822589523778073343202478499264240739591955788936010959776299849783094888426196308734126943370670468977475107476756239108301266296122822466797323909083725976070826806828508994901969760331484443181138853634883964937013796006045687278556035498576092526649459351805145596614429148903963338145038656480770599440654287506091070781343374461980961816075059445904483589659377002143941205552604939872530514260537923838447296283134197362904747444929729236823429708267961709234618165572664051073287777857351617273099071020667695822052248255210226148353846976499358837277906821564272784623178254620958593666169932982994193517922370319006936838190576162236117977435679108077813712660928207831345520404516938059658147875981870770135761030689179691709289606103620731366879983986418054875128967059496776474648889807580012102160852948748367465101704434598529663650879578308431646720791549085018936832941476683483449257704672680251034932805183676266263468020374564116746245664454686945868505859888661126688359388523312055158051163442525992313714458049452933215770143320727788051279530030300642551990050016268625521535215038939014314026955666499725947639727609062906012327870187899159598557802167399075437744871222454578256852231528089081766516567419632748866934600516674521698535986758424563240517356198314727640685849462439002983267978519367046925102678543949842627874836174454933331192820726892565744647828332073871166948265372583736375564872969610505479157878320915090228510887508851276339129488399520919317745889352807728553815803900832800977340363886584077755290849023312945330566414727924599747029282041635227367442387560101331732987776643869152016716873484298645218724279784210685069398332669590687810374740321657506723404037129967075616760172928339077556858727703246915558603195468264978759707799893119513045495453292187761302112066134455670061562621736743702926158097050399709125472297832118243961641520874046393639128351957464346237202995937990234187120940993885135018336870481026259015221292048858359284186792018565549451192450439289056810765917716202700384256656654892305102431826869676935690764035107837772952430025394577179183177569697939406626114297523243054675450052547725914819688440342838183287399106348965764175382912658145907787505001849241949980218496573788489883680728959276184358079516750886567761184285733137024281275328156014431148674348517290496604227283288316868751227125772329782794386057752016820719345394365991930798376751376030084141154783539271259333136944907462114380447679150790388112256076390415311619937997035874292966218467133004421829639773105871672848693485240645502613260533409988897786985165445414178318022818216451006781004237499502334692387450430240201440048165483798568895833707051009195758508027910979073376066553167276857880129432284163171604708120942131789416822907332872539271074862003695050181953502363467765845495110855770789034723255904067611409987184573911243634413068087952042319413655505948532864854967596190366463387957832731018217142841892162966605125968231009305229075945277327871214435339391683332609341259195741564501213248158416781775918147950342688768752229628462810392359902848313934646266186149500193504013171997982084244922096584588910938664451798711222523342894955987998306498552155302512409741314475912176156690876681981546663912099532851203107235426864191883371061236118319111958118831836140102899329743328262605992059746109666076886489773106711929998112543760680587671109993059212836348488635027855661767891679262036675463216130503199510770407569083752815077536733068675947136585290473666996130719670066030846439296792985082286478985013499706671096902684238996801556787884649795959664371553478209277316490683043601986972781253111877560021146038334842453609714573113461611980245919446638360464024333266392958015611762423415770788795114011089412819262265283048689072741651300490372859945020236959123650311115191990322678294499663946097865851374749900022828384902425730997024059770173552162208900485296934631032432318880255873159126173471463816862971564301374506801496065650135910996647542477520210711570767133841729376919400152838997821420814897581834934287088171274086200859083573167123017874710179054582194674959148604721665787579414622720248196978861650913072305206610084409793155102236147659265796077485627794214616876782402832274066817105767131834850047561233357141026516373671119651635105388752439595582553002073286004770966175665556494743344864392347513308948151030786670885048817516851567262229710056636971345882578909167803200566060768864558689798775450569031555709474428441632488508078356709032582731516070869144709872770042058321622996780236813185985117662514709088799385280120180480404108167573813137673288975410574263757683469449087089263547239907856162829563724821152452916682419066541626402551126689133705114194814998771241499188034682864626313411389138746201943647199636696488068215128946022744821330240345748700573326447984551518860664541540408225693949282385069993189447265292042589965702989287002782294631301058765218986986787083194752515546607608272004046016927536194423240906088055096683650312541046847336149916116928307846927585346812637580737907044899990478075341076118706608590756925566993297536085075853334698646275314879854917932575063908130977011106389828928233180622465761193338598766861306916489242422207315920967209370537921045333313829709565242969440314435587574412546273424065136954854514626318971581249393248633564542582812092345034063882502005752806086090007211429393783930939266378212395416649439031056552843324177167151668324343508439218222114226152815295914600915294301560263044307983000220541581607902294494073862976172150732886707815258948439102230088863249736654525654269582380267767041226604294380049888846567214618746219860639165160943515424586714046779398345578298702383701395491906557981585826010586807093359882283333606909929539433381844181121066712491127340077941383138418733849968869093718917011922234381621774397284009806672786881854288233877714688021693075035706629149828179758606094431697285109005244913174623771507486674384985189410466256016978629570078208295294480416826268594642255164677465245284606184110693825359592536973215467351568929477572975917238049416852049673356475120824079865626253963755308868669719242848431247204291121094390648555063882947548480425267505477982417562271142528386606881818595633574920135512593560712388999128198375664938838020393758171194633281405900594695781815471155478556331360356627114398606641112817480327220585812238540032139119171923276824895930278707419934431056090577314993077425018575219061683425440754280942277400488699764253935297673596140973908270111086975546936390628777418629735141839153141808378666309492930520289623334989339194864866647406421627456234906463564183473069384921015362021397763948256803229120298756757192449173752299954829643912096634292624383094032428113918629025816889348858317010506583089425942271114370283913261824901381577166848359639707300390033308514152202347871877241271398335589566838561094522489540395841864567866290636545575035599517225606893072320314894713656070395516271491337876999100642437204481736284017503069871808713382668905342971820366398397466456761002594717494741907701729012406750299425457754732636935248879058372668370354489077955733536602239512984957521528210438725784434271238039517952543757080862082924793069282987195461645525296351319164976316845216342281692191741589182574868332506129591185203764598993155686332711372765671822055896330469445028699785352398836656864594508344805989892191980354390050967659815244712259254791325350541040298628101478405763194548035093559597221139826047808085537137523682559061042989511635603549633321943809182215670721205158685697935541747160866887612218368194424297935558453701256459121680688621381629284617953093708160483731616381253596798713501564796562347939699085418589594220815423936124587352133228120094368677510800988402172846298486878627949017601609972238561470350817615658008176842991275646919769261480675200192209634606563900055422087731600531000875219084981269596869893449529493232099661590862806001504003297168777389860449799898084149993030281709647134781122010029180413923975767427860593694944976390802366924749906493459595214076240025697765913789761569600936104186654690832374993806165228808173559606155446726710090704534331869985679257375272280797640245460720420622238519377355845166950586404813286531547227011297182766630540008378324605328992376415529700500507012804845941588641730085510674072361882643311055078612991400842090047048249132002496189116896386181071057370841027356509557962044772631350626654139902895404273557388037055839888585845990944592232310658258451194039965879796745304043914343600648964489143814541091298896846700575905173054375865418315980268636227444423135254941455626229209021471457005342400048603904604443875117278896525274010114894010297083111396325328442981486293864689032686656097131663716751237058483085026063524317208673592686266773286950355369460795658747056511849111810842945412414206006312967162050368126382854958303304796575891804584809710632659672790891745140808392758242240438225301207712751121611805386357626317310820583477289547149661579708878415723694082866806128754620830996187613742441077963038703203438484062268664383930260379229092631050318437847825457809187892859001401986449872442907251346359125454251382256420807488409227678171761187240480232331428746354772553452164090370585673732247793547955555053448892962600775279331698959485704704470404602907002468379521100745695382194856156776842425930240622138191696756252803434086130430335221465191516022184893446588007443533461454060411511680458600679303117785928086918013072027302864431731051759835308605241525756055834602099292877656253093133876658868073595840407706943609321696660420568567710982212946334448876792837244741467468353641546865504171152805740369342373726222512053206992149901250247536670801797957677247003248699815304622000370455401345949801993128959814053905708092418749268500503768818815271962378960614454140802937631981110091917056645891761475944083211429717388684080192930588145059205852369601089787264658527753914004708019694465333071273348981827841203970561209586065694189198422263083106438085186649490309675488587290747757330898758750232615415958537416137429958230335773685474738334478329637888903942584249199518889749659538375692482196543689865460514543122008962906525507346026221725294759489706023914335584240652652828522096868433283341537673207101096888999522099006910769978261168555248402027035445563987278996723696058551951235929481437013927427152435336432745014576515960479130945713063158915874468632319139538095415251532475315739587934839634298499194780236174763081303206614953926539085492911679964147257224166546313986609490893222394258673051593789603246375408267773838583703480557889921169318316084603710348008136635790426655640680771142837651920239747689919301932417693061036710646767272322448208453660406817589564826590160231116372120044402895261985695406982914640458953181562846563899105576300488087438124450053570522647727035611888505028258613160681781771421533875865318318579674455305221016785845624169225828383247925946247703530686098899486803983167546773374159934673412311771622178576778782958986527617232363179408535885910199222844163177041534687603785862565314699685826795282023328683130575328426670817847793433902919543210264400766086709664821802646699065446846470963658825354798864596953281627280849237809263166550957340838487776013384846746852900592569742950545105304561186703760164743931684134211970654274317426607385977685081059348495498930906106153700922966853593149392145656888123734415356672215420941860196814990698491698574638453205974766844638809861109325272351606295523254612044436606327491592829575055168165099390620027906047178511776736076492201281482461795464512760765891733388649558193805024713367664310379317141558057794785131465754095184856102133693112839164430412400490699170889812981492167420533998774280470283533930724798920215386660492714027503340461090508655961134361458153665543657817179212600225271487712719257071681919302968386312809752356134760566644079652691960750978483620631925385528315749551583818022901366882288849741479996739493291666682646399176246960973763639330630294128395491498753167320440763146712316115008796217533431909696775711150414059334259031562591401762547561418808315039313770710843863896053242524481451794485763038374300664318633857880065636183853016051608166796101689829881572800094878948010780802790727542775493141285794295184236678425568213221501345320418726769083498860190196298293208957897778929989227130737407182523503971752805098970436190769644124177132952901721038982820499888214950917518638867010725627755484319023488044636136290478452743397686475651618449878212960903767568854014606344545413956509782368846861170677378696053797046559675380146634980437021622829580322263225605868685900059738913404480525101771268282941618637522470510520683424231360753124565426461865137891002651927250815504195993615778632840547398585808635700383345135122585035432647164972325293505680564733289465920245931921420259097572703648671241975762674396075675832770019392663406587381262298800016242635593752453277732633771966487596786756084558578282863495206546728277321423432875932055672762968111406643348681818870904338398790571522461254829136227779727003326635644021530965539156099989274621828703058751393280807840164000916964536686103397515230635613841832784745178061791655384358006238312940073507157871101363104452150586562352965147401214377393256727249836820874904954683893036543704196418985572811567002899900169809746924711374029369501351538840964972452915751629181460095262917844815258085077698042323454657113606847465316270952063014576523795701902267383279715082085363927465383280662331622133853244842631836265345808257548302735245799658819384412723086960793388216781243437018185515872011636186611463011890377636456515165415559102521698830626592515762153880861078582181876991696021243136917863160251920107690125807766832166806113910021407035173022077162651562777195983932768027803481014902251095234108921398393059710981006641706999317691376315701203265776445093482801093356003292103929155109506616896494375338685746504060782028283290195542741498690202992397814252219687774436251752828982390132858712106465915184746092735731317225759169353634762789218299335514825387127969004176589089181263813288230218589837522317667442799142070752241916872521492398342349030451315429743805037444877499120641370430031556065608651578769381392407406225435287158153898471192359259173286064696317879553640471317378724406858350534639566599611489822923602554940279508156967277759281942733463551181471749909528042538862847619686073045146362471690393881648120386125150686211239697850995894340708254956183347973545740811615538080321630620613883191187351477369338208511814028178544056408673604399842612741369040054344309254596710973502145187790742407809391981882718450631840280363699673878727516725024911179020258402971487185064816675909209053768125211508306253078012151434634598472428562575534212021240446006007463265412171752968838981619272647012073555798794538139507009306160273248049071163250499524843236914761997194134112713261036402505927543376894928714873172543361819156478788906464427280345756390800701636921788568839118656559721621269824218268069687493076206987325291221632764687918898217429349330458538100424008536097560346484182126468394134761067708361169449214973429712824321097804706676842339818823184890001890445961492179597877163691933950856367117923494447770879299187775781261472198777902213986077216151274655054788992233285840311518222909370785144173149217728348894192281454670180049960895380232091180896338730574522561839919188022363788492992228963571188381395385790466197283551619284190693387207105872949187925348619634067920351078580277474202381450928483229296162773273487608660617213965509172462514020795329347595269431893521767328681230954744806748479441843587358233493683723184666138152417325913114255479103184757788137773240464658326733040095680777944548607274780349312647735593625600288183086054167577393490886381749666333585651464613852636553014535012221752422506660040848138311503880160941024774067122716383487006007423162698599431604855343697667832688898360748683347672885909293699165991624326086941174521116660862464760839371956658615762463806504431284473606541481278894632914520186632793532322836310798315321157893822157238884136475754874533963892099281420297185070859129987390129848043827911256764568161736340938790628497116540304699109900361747558726991394929142905494022793206695909746469446316026715368742577296979790100523669912971419573004469021831193464962713588591607824884480461124420138332720477012300022023627278468506427806902751844915801886567111567862624976253669031334881568724298683407142823769050186420513561354580712734352961063948057268328842314816471546733721283224224694959025600818030926664265921678835962295509555433474502267799104072763498751922642268111768665624224050945653452689904233661027144623368473978362396963275353384382829604102789440102313251570184968095431009171718927756450005762675955607227503441842770611123294881442512685625754409342777209664831841690643852840510066208904587906662057060817701935776602727259027690023241742581906820873087587881147268508655547471292081136292769011441102737757428416592158438017799829076010469069425734627891416336595283187521886153476056543649985655002090700583122420572231708422814387982382244464692149726770317351326196290284437452916209698166791576138388426798436880657829890909811260066863471882616934337294704755999403081843961361470896825915184681283662194341574050409607099841126936534300077355121317537812192879223655687564148096566933185057880233201054159468040359415699490045596875346422681723785774820974516337509143429251002079875176625745207164522700078617173956957720487703938975433553256393013970797858906813052689551342955676483215875426130012637563681387240961688764845294963617817165002193093743011310849229804929803388152846269404865944946538672610799348483509088455692796931157170401668330954241960097388408143133531563953394928023995331544002160856761808509323044483845596100986304831596859710102999639781718313381239948441633363233181316107142505221148722490471171975732509743573996501381512581141948398495214159773429753663921309274146445848606221915940731556043651866598918774128766225336082453338556197931654661069511436196875035899278614380100735420433171872517210047058030262668526312242216996976000787713747731406290962576576749023007031098626245162946370880872904406659073930420164898320744513511474054001408630711401889401712655416770895616650482084998599311986143340711264585133990437749905505926837463012848496641751536065563361483667257015626307387059191162579725060329516174205363923582247468305966691945144504664466477513991252279437728579238863905225856283990018894360072733778275585207806784503669892792118180082358990578547815591248424423502903031135716254478997166026286952563675646087562661810318661180216406350534926979493677195479871926469354952420452579862273848442024045249599251135116889009692732884999005836196699310352849350498941285241875124818118836836739586336954858164441308236793269081081196297815573724541394172272785958454119090046165616678157588489427241026170803934768960637451856807636720643108567172358941986877859305875729157432321438790568819070811406296239186833035742631413085854210553006995464775662326626887216673490472432831666163230616294708839585034044193500363421144376386885930194140480969477967930316614994630046938445690301763065251140099269675991867652049817114008276675087285062990085885370262331501009108854255770053612212807771103258185318349941872289556547787601367703392325053875846530157468906699390263323513961689862884221396556899549494747804986332150514327556702230346252487703652914421652132703994126778229120392791162823909220731109210422006903075724965397816525292839253884139403553755970167481385573001370333893997142635857155536881189783945061896079118584392595660114903835286589782838972607775705916815113744200242120934358428937389618155318789410005427451573480412474842430257193141422321462877214340586790631807199014489848776410692853637888463793050858106150992657190723170737533852153215836403843364110014678899149192630168127981350341994288932769645071341753635968013978140968740585418954745517275876458804015558908120833817389357802543351175030521967060232364008987766752674889790602732369680532753531527720933959605593027416615481884719162523766434337499227561117711554646844261379204037247304365938401189131261413040557713586381830797754072717586422715876694995196427352505672333843778377618938828632921457901218239066816344996044530129792107691278623720438523324224372045540208295303380162046689166822185573280778875321927163437259530456272477050292402600386091634941964276840583006846020708299458877318288179821684902155691772314815027221595229141779476289052856405627715467292361179835742102454898642375540107439029463676105981128139214531630151425216606009434398421015719705420931708087212586551845309458909285488654283469781298060282151718125176939040000568767657112578117333750869348884322258239376861483140945133254538787911140260111739861710675485736120272829895661287544121545374579816184849958352909196949980788160315197005319884501092510746453625803859870657293833497023029695016591703527723399015788456599143406277671575725120821924930411349417944569105062480670160545115338521612596913064243371769741941328397553149368576716764558431306262431628198596372118845422540054717372352865134770252736702690085664194772607565242095177285681623500320787955426762734242416247199282881698525934338612810100620942097633896564082937396959979392164931936907375707073581838706891351805926949930729294908039849901552497938511877623342445407992507712925345821515939948320468303087059537828389811433429016815190409318159836456564716095146489129390321820351679607476647430748654790362661419630264477783598981990374213460655329399628676098188033247632271826142099682528631980102079223357637280004624829102645086122563518248237427241107729348274183674749153488812423167116116935419788439052477118018479110180136266103327533349898697871523177276872187637306496544614322567029460735400008229159174070451169847358565519727261644525738426546985669280516307533136443733507974276159550111043362920126449837648105135186897072975469167813811498521090931386138176285380141126491242240100292447006567290066679133071518698494992102650595766275744162268880057071659324696543590499943367472731727709704005020447283482400272038647642717176877415852973496179312946877463052895875835012224497397337612341202060489346726068122891496832399137056687407152395800747707385091155293904306681928260260095937816073849144760635961553055008862156674128297730530939629450550375351455708504358620116422245037927599847553534753454623130717784118013245012697338392234275215087740429777504916979164351361187002386315590011275548787943893851916344156512954555932974660416580579669032648209065823714062146566768004482312961647698960960758082173974279965728377123034628195487315619074694758824926638334584735153282770530465393434163218482141398476852120400679990666611949207530633789938635192688791676241610909738920447869267397202306016440639878235595079588293975516185037875643166870395043190676176967460753618236877888937534073940456174747745757187404632518014103259479488505195260667731891837671513640648391778155166928727736766207511198473304815250065416666162577991749099652048419902901276803622839229999087742014334338978868438867177036189473032675726368571861935623693009544458142059181582399998734149386653441755250932097680200070172949887452133413718783184205630948403029707180109493799485425026971554224898240576835046191761931180966178840501933372624613796873213041186496022983996535296778734814127638434169863762769315948446585735842136271292199351304850996330904431990200422670103886445459779926417222983253351997890692719723784335308352760554141343838526641148268463417740088800596091147190134704088970670364251625629265479462352135988001354749541072744051223543665854443521023153394386885814244033239643542017277236602726275476820129414763525488301452050197819059408356425010033883575670252916652997113610394550072112240746484690788999786596168320471285737327960397974038438182959806595067924156031144283486540094368441833773729932261278384705566441673435829474798299738564509515252178462618834782548930223129588168556789075349878892293967945784736707021374330657389424063254843659962014380144370536771554314930084702446571791996128694588444340281320822860452862615089405135243425253360166449466034318560073928107618992870983300627133678847935489716939203322878311890516146146683090710935648327115835837032709365890625540708636878264870292619320287771820382787901195973846513108228150907178211155570610866472580472828387928498677269205414664491686740982045996883127638096763593493499661977891731002287678439497890137186528734487820358221853917975834238284646038284962707062332501631648144496244929933616831720159404106272796261033890184225833415985661534696567037836752747786106156907260791721342903938529640402583909964647243420046152284716883447130921094879687112432826695624847559909780459369472656252276281426157411044029114373332335239770765277627000114750761598006858197213228048741906488075162975387537505212301761363138922833499073739970127037066242582021988132427550763022643705875881265774610807289304431774559208007428219209150469463834956985556807329632318906021605623274132718488761642836781404452163075418653451339196357599121782743979821327406184500390393957251993159676770449605938091871435302921880378645091747495919238929112697292690115096393945220937120904331545428596610138291457367395992893437178049673074467030399618355367725490918999653864633026521972877793086157670612551715867792485067580938716113271771542848297845947582595822499953814289534851154781933942816010077960615305930853107510425334474594403963124542746974825625616321421917565953149493352745048575084123955218506221089105598324290761443286430931939357281403225715094687106065758010376702124741433454944758398618937251273625040790865828045806298515017915889929678019280193687222975589852555164305164257477707579432072475850690972394980813944012123165117916165585825842278440245111123990513501889857876659168573784565965337343242914895306647835540846200798347844102212953818168099602215815317592472675942040967793834676512082716337479686519178900155058077390504191132403031684164391055245363490207189884614894554028917489172070515541114055781054936174100241676698873421560654294676087118574696741361242318532007116006571989302868245932639336921057874136290345006619313949076924264684203693738455900742446155494614483465270234177848133955825828240549647740150467030284457257151298139012733783555242057935999067264125849916605114709805111262722292758039397535876120718446127444344597873182955880882382995479285603022298458053770529281286055627129086421181957844075250811322394540049543233255036465498169702334997152777092140732270531951752395582161018444665012452511130655661438552520573078244542657440980054646169510656330447932000191037400636969155467505739228791441788901100531887715011311296723944695184492666255693487513243321865838548863620942194827980109876303806481074053227466012631593470974195026925813394950806455601638497471234360755785127682829483974802201078921403399288306225501578922489758003611585777395426614018691614911149411027199479536752813950466379917076139049007052004985678603233286780063322426871197111557336930143616670938949797972160390741468973436106882004403603293902626909461820496326476207473627213894549849949168784186625239969493964777054586468596769496036237427307027118983170884247710219077520911745110577999282961818197744860796141267465660081543079416713679175011312462723532966424985845878188017388821437400770328621360902695393217124613355074454862311415826164125420282005037925996649783837709433965057953643370910144890013536793859299392956957550727927317115663135263325940108813477744316126730110228044346663907765895773311906220491922410537271415521945244199893562017986390625313267474411745516872923702088378806125654196763938244795467127119955919146056134298213685062872728111030578235292511917813825373034972837422658670459602153313136879498623154512235750183589087156252042264241053167972672649004399128518954517709784746393104299652041505381070463250912899667659261340479093483092095026872631469579747371570983436553377455380802502506351982038877085460987685188639961772512287074408588976404708877942170098190412754827199932388447551003058695162328613040583052920405662840235591768856554881256049166837699316271398133119028099625813567975834293660065754522959532821317787718087881995443143886902994864690945316235637622854383325996805102534480219073373731660736665418790030794070134729482298253560839670809347022048834141178166530260774075265466600221010143863660510556349766261278910515833898805425933451237734696635439123649245212584500722396868412878587419381578412579218251223744790212338937184396772061531665232075676539658318143330904086761487188753114154727445420741716901620223160699641019198087234726947674908343327407716696996466524401303219623647800415092229583094662215754470198147437122584271876973468986568176443559428813243667987642662584090162923390168663523862409327344714846835548414031446010888295404571915730520801406802729689095486990838575230181190613648524532158202500960720321494529171505319710112294576870724956962188371510078624868968264501276851798691487690722816273363347045857358094435003122168979887432786589715127068369238630115212955791503090777672360901447381552870152523346375355587281794529787066707921858084132093015146742090521501397636280443395642868091909769899477420384963475942185640076062467785715420889925577778651428459193341796567307513648205871554834534733419269847678003480401624619989231003614291488981539051079551400882147071892852617682718818056952632739409692831378244788329611140793531010057594660774567039491244945331721996881265785806263218226033136479983132374243822703484964789569636242241971765945940963693585616575497006513601469972670226447682647200514662136851448509160984147203351508160753184980638464898205048899906829777588080392241755610327863043456300850828948882185847434851929477054747767431867068252877936750531859128264899938756695824944918564816239760247728922466464554263294398076081001603543776411257253363318186102892788138752508720015533859678979037620970675779634298414980618948209985269281583988504636104519222395727580149534666456122097253549081561467631894355542768296575999803686203753473895999421362557511518847545766030774971390217335553383372382054744696535910287667458070886637530793633347522884484278975585145235354094571760420597263265745946077190753806113662571607538220064486334136670697125792328247526491564222904172912098618499542636246787546949726964422024493468965546912556561248903431743137265745810145147798699612909233663205208651291556920123262310119826792121034278769385967175353359638347367954142286000425452958164882848095034796558886057106013296130997065485263547554473620084971931825353776220883600178089566594068612507004228608117259340908615593974213209826143727956250796101069877935842191301537746010292900253742795946979077567976449653177660850421969596736939206685225443621768277009442404450570919629788489608899418276925063574893560549685402379757693992154693820718937934514622302708731412057387135770891747049570212066050724432204226254573766779344605947103278328527561746048908592618312132237391722088527211275354386123457566138085067415636852026723974343205480648907105461787292542687873661816476981601713713579186990502164063553878432437478403886123507854392649275690112158101306219651641028816832401534543799450408673096382140226577334162428748015954464479719656780603481541768558094760302799913716491077185909720574170216360260975090050073763736462741194905298008729837592799458924671725120913550376704913060815299169201118713896216079011616286365846472501608036362491248767552668521332847222295480674052454400634984231187900083046139378403182994941447133381415414764063074113990267455152190369732586842912518875627949883818176909191222557162698581251640642438149096938741592218957890988098950572014724200118974692061267419113679003889993949308099815809748851135526204635232492761058986257132046905620318420962564859747900382175539486384899719835898895830067989838642118112995609407026369622940986373542337849406770650933653773194104603497999448845467852902767223786212910622815467140755003564812465473214065506010921704090907794044174423535531126413606614842190262090604379816243014403290019565528814976246043676520478662972216727814134474747308652937251230413444183982613657703434649145790191859083930030962541693688895690490967251289942057482096711487024724257803419385075728115164603709828783623144903663161284150884477110735816667632003579311640342820789953402774568573449647751037971350836674525466556460072114792605615774430702016558516192500220053430463920113106617105469128453881837206840976304302322020701651458426831371721131140341187961950517175199708168142145089781352144495710732288881767727619499663782463578750136608935501370014734803837465247621698905174243339960231713848516289776572693494898736515681185035693691533055684249807270186726107834448981775601960782299321746004517285463262218207735667903134344897234709956923035524211164924807697194903207422469921675703058506557600088192045793780805876282566564635689907211847768481868449713358286180759734163163028440474667108783432641743814651207266028503624926118692026682247856769433617555611590420417736273549082703937365112032258274288194162546053391434306290827719735957985466728102631457117118348583881233425175959424743125885383998040724245576530737899628374115142091289889479095307134310036580586449166417334782324741180631415865546749683379074265393320607740093660619998138925415608032160658952742526100100932635208699086844695506543445220661737341905153495278713710622016036337609493453698551717728815787437093025309557919770085073901017639076411395404681795643195709642170470392712398100261893575572646906146233533779522482244698112721989447965465947445555276661368994463248751553482574625385699771632815025398309038223908797847020144078690056442952777209392720462734506579719407568953368420530266044990627740039610933447825197580956475545545883117033198909100750085148120530259182385097211555237045937462582506497864084907218376645764009677935914134684750464310898521000399708917585219693613456471981968033657540397267360891759791636629121907367207359890868793813711391074468668665806318691350623848627186148937550684958486189792905285495175091527251900026238529059773987505799966243982975495639524481536227275539460010319665238220291539659455078157119692270342728564725867748203486069414070184101260809182355834486808027011740962558891930102579406106192690947146734730192819520688282984007563527929515653274794864493277331854364079568717337556758374567594688477792953743348575084781271913002046450891351768406522723249540774118223198211870363773390461615734001356148666677398455717505941401945698671098277383005256257049698042049203884001432180981327261129551577754590798840806240005616135953263411952205616300632369688901794106979212260974874585760445735943739090344891569387431938143567863114016096226897957337830069941943442831080801376783986094800015711770471171454822828321034317897529558702771569163468176343907976211098240203194763681135084208593212313473264057581732462557393133193543096239480449992073601284816946098784355935855000811721974173801163268405757606981764506994758227595775542139358979067329791446454757575626332362493699715607736851682695388022891823829697724846773527319651455558438305102255898181639126557827442534781743412290585395669046989454803621587501643670181268323644943834964852797358496776056933336358631785028622157672535313870760160991654393547357524089442771922612468800128220391401192377479128219773889466037407113965562940251149392358995738702908728089967130163837687994211239061655753329179653486267140665386950584277519426883899399487670509252241447526046864336263426931252393490485514623121987574010074521610483080865906056992063034081615836272070876418141696492716805415610875341969893796704122849502468632480877501388845820985726901168396736643475528690615988538726932412470616464872317861856047239362314754309121036970271675957857895467210201629002897671659811156228801826478157853590451797937426269404730915359302251602875578478270248793459019133225784985941257992001604063061376442915188050255588795810130031783413618392015771370829687693080285507684984425337763117622863498759312236703312910931894659240689110982628852548756217454575222944069578782142268226135652734773259589502941528331501504848125810383804889190198435833149416468195755145706050527536131463702684447655813751517534881231692736104580136878541960145883058231435834631195657280550828537367579860858031913132427677685295987623206443188830509426862056876852100913367021886056875472191569282289732212451637291185517327542256899893152152059101600927698461380221413525996341101970577189395592240992298248609195466272272378214707420460429735984663789086033167756506792693587570690304761946442335056182534110936296419373611286597538506046579450786324732507464003134164076382715749735351357426961757678720441458696795416017809933685374708128567592549851374265492243619100407052210474810514800116804102106623753506615454456127634691983772530996775140627281634898339730898608140433530986014020944886660980297582142193207375978185733828867583107021594583203133625638558173006260205891994597596683320584271280870813135973701757637986559796090250766266058611445244735284133912017721380034600836574357253711213793945474281345554110752978860029513719976941714613589910112387841062753497596903309693213172535661592638569685447076270928917483969298487775768381233563640242957945296560518820587572267565452636050305886660451106799181964673257209696044685358877183022080191212637296472197215604860933196075787818019755526179387115311940485206845665599593200045158442815262406263148768315850221169940004295064110208636941167407988367776461141361400262669195035626903684404580733774945082910498455819406953631206595713297193610935970386508582319156061072821304907767536865236900281809554673484499380378887980019066037431492815279078385728303937772314291369741533746715686930664198273738039318382455610427145472999002554043822013973808765526873545624734262408869825444070235505420651653544475219011191945860145017307822176028562313607078190434693596357819238921305665329697033485466605645478328138075249724442731147906642254549789044179199773365957247443663415774161316521436191531724858060817042352661843296547475012335388263142305640401749167644582726956327242855356378964807754693896562359594647935659700973010275719578616332432398010442217190384776237711298154324492795938696245119438139705103633120487824767336237014214863689402838305959188323597085937969234242110684347704965148425386997268330024946282833355007804717719653914650479553675999446027515105182373572588069607674323877962189165789370778020723910110009535137936673673182019217126712186632147971460987622340929033145727299719694132437741634323824040092569385014351731918337793723397200353389239846322799225805653748839299929357084294249912935033873478049757518680211675071212092776684218262529665196163461368706039220768495283582338189271148788324389277521877267234188215120019027797741128377629626755764476311700228394787029027138877518241458480231459333301897576200890193776978492887193170401049554085099724359818280056021402029491471218851733574430061506707811857438721044019779746067125832496158197100834504013144646158014396846405565952426009861231708996051420227330382189778720931057700413284180056645543863429768946548307200718023595244404893194887276147029472470270128120361275641272343595467505687806563721859484204752779438399214728764511653680385736212268595375851574028341550151699408275829759100561718523867520624294729563203934656645093046095868291914665452042460848397927433152869487246489712249381109899415105886712313275980935593736610771519743156345703025759926864065863684889853668290361789561052526111321067409492018660576163898346281659077043868317979421000957874286758523420249494059634962939156038191785553974697883513301343450499805023255357411669779060889079973045607914547220711910988353716688176574355892780594859748615218205525900139288891791789419936783987902922943654538989178524421306827167791002537691925529350609229967859222645424693390930809891738791896036164296868062621315373435873176867979707802709406618661807690181945625214206781725555868078913952788697602048163580718092960158704279560519961713538188753368136510510031186518375790316263760578310495304029018369049503847075036561915816917138791792141464219418425427670372702849200457703247198087688894960818202351028103868181047970914591077581094401280873339399110907119911131609677703602124518465178308154099132410366786255734520910177586713726376147698791365922919853110829453694551819417847105538200519033467649495938650952800870660278970292768761884748235575688148262068298554254666055304363748749092221229655063703136000795250773663328691309756560329057632304334602774613874455808311042333088841760732200435345266148010555358414695488250704632133501556095604224817812383397573083785740872356507638930158963139269220961612770253007060776957180997986799848928988376833092758954760591533198985974016584665681186275093740525756731088420165988203496113708727858941775208177499005961960701273192952352973412015824146786667608735708958835470865030282817512698689228907958194318043158524894587901151529603959797134670817172114350417985557299808031144144049037632831638109724518319678658106277861414902829117948805448441872953105478469095152382992673966473992336243531174756595934299948160663889955958361682280551707288943497991265465664112141796438694878500578308862848025483861453300315943560944185326249457094034141736235841024215236764675806938734062622671980850200148631172023782821853204840246928294423690263618025764082866373089443281080661452803806223517899295177365059215724743557722539508877718352781487224540229406663152651113105109760022183969621919004564851675526707524656468630038485851076180151652374680947500655191342635140060627151265209699657922480992000213021131499267530963141339900772600188603607756278126806230476990337738767460411316873026790226018553456772271027916228643122537638541347523023730928961032643098162115344603131197415730412009929319836522365131128913720254250772312138459570878815260983013852623486242684304074858418501010960345954655933706617536782749173263065957231470718875351528613666576396670342012825013679477568883575716752809843352048782433486255961954488207842403024731648234429724257918779876981204241750509824208469005566209990680332924781509433133000177252017235452507847619588794909629343011468745470011494180244271298787856493037105236957078752966472488416932399546792334119183148928851758846542915942393951751478870648813122030545493350080160177078566979349162845095535844912588588807784590901049842638957105029786099364997276523267216406219414025663501933631513909636051368068236868162587563829659845212127676893202844084578557628582536418635036025537982999651684277412825792791517711421555453301376417589962566408406816193406158742053668064808098013814100127904054236009797976885359676087834890832133075222796308776505852068408821928058721325126720245419179296719701415406851492013008432511162249866644981133407239494567485866094384688444443015328880570880595968994747396401008655365730978265936164931244824376516247516895980050945741413822320589153871354403094055368129555201178607794321596896595445296646913071574590279119496145216805205580577586854811694673164122322451047111189274443535674311595801046548287270579620234848714071269466912289096887183589510514479197671104065893185220725862172914105716386853159119901681855965457952486622092631504224747753848271023038893539772221145047699309569542169586657684862927097553574362977195369417399040800400402957676470635572719464110653597954202530842459502823491117036035016353413356129664983228947484689802731039619403146996069693609536731272373657557161943768508332526452296663082930249839756267215608296581151211143134452622099137763611764518521414688057939144022482150907582323500786080876228771409334387371781484486131760741753546914223268981293979092941871516642370907895805682467541912780366238174754769340829036757156134587985495105911411350370485710277664072130977769195830270557937322227658694429513728728979993219770742563531313649801668543946063586815553703977366353001988447298565310677351008135223413433686412789903976197936656205051542609361795443753041316856563979734716652796798992480766473050817536685898649503326046033756136912108171186592655134172903230853283467744886254792039524192227696911540747341972818816962820166616604123325923797295611911785303060297018395628408774797135063183408981495043602260017732153545620737345371676391280581558517465551808536669725606848429810738500206617228338475389477791882784471828859899936343671388811361643515356285848729085641400496818534452231131901406043627703622098333507063199190827475623048873176620479924376442041424969300450933054068769476612096749590914715887878772245880548393028280924046365829139063028828878569211387331444714102096328644605685848926098619715770403043132436549462960297286731228260223247065627946181062456435740995484480259105454295767560911018647242440990765960323164058518919108755033618173867738971702040395727164868916036315806103885270392300474116798252132474347474713164732276272798239717300632235549670134822703900073886487362371760398449030409260816104718275493312477356166934624601941765295049936458197842821447429658587803665908163982677958469935936609813178343062173794718003827538442260065569365740238869644477580947838803231409698794240253696332046452211251708440435618489548829383660422748369240384606642086826787444853830327381848175325762610982297482205797823327178549095390172741141070009158426833739563280212434064576048211897205112479249644592830201675554967575965433084055290935039180074588839159943766311748360138782350694786627476857821250928718703832133857902312874580865870102482923891694799170777526633551875215940976815370352979681830759717301990249616997178482097651478847350322161279550512859511530339580867703379153564538935106694043108314118403774075001329088007218119316701529249440861361222687052119409489040984789436373620110314037481764976781286284382768810906699432046667950102861051648905743137858103806267817283748800559434031938203910319880704041698680038582645619996081745391663391388383440724301927442100499204409072694636731585971538127639092961330552956288142836618663342971493606930061683289592884475369730246959556885652200429254986535118530549619656100529674962654544948476028961508017030780201528520244229939483082334373469306113129135953954957482788519259507733000583431614570016633284114998156872373146921570990926619744465526270124771958898526058316127287910339785748745176923564612792322435696798346012507922484338663548625810172252949444547073459207078825114260838439972184046836227738356286222287819788646916930630871186385635382091556985539338821650789066905022600758179991896641225340117906868889879277282946384996692238688704756970611066860859552932336962359860745624633519683899366249310812215959738652512968048407533349604695150128904010162719187152052705467146040466323539840256272530177037002949835097379067690006878624822916429349262747007957686891447099769605082314818695660452374430391359763163419105980709431761972263713948404149017822373931329864998909829973619855374902596737527548814157965566994475841134182583914814968972864301816947741451136878636563699333373092992123798556982210841018373394749087924725965925987078702307983720989293781432106861860771405155188868348228263277939735759784496184648802925457279608198611149870841783145833328372437485357037889983549433179301231411043947766318675409906376361649222204230233515665985497305616422159069980920050017242268543612515979142587428932593548650366141857872114794318222479203522472478315234444303312238711405799148966767218546609064918730850255589477224573719909339230384687117304256010091358323369356649922300124267861994866515019351673535860092543854090716923084958374784219113291803545495698241634153022536557322957432775051317674104981556095895409003173421051133613691302477030299536237421722940794343017464889834528203497273377826506218810974311383836194405581327342656430888062380163776470722472729940666443639448472292066998144412938845384864539442821387454625855804669932974963233473611986013775885603057203968714011612389996593688978336818045477612778392881961841846855567105430839944703144273734199508776181074724431303313646975636387343743121617500519018652618984891036883057777759407004798797454797043053204946500327299638604567565306232473341827364705770096984725771356536002283599971647208997785633562934469459475215621676771482648417949271644388010480020351516942756620350270987167678570624229768606359235794705061836474677613052776540946828106059919916153669155967931860870383175709807329978040629117032862227353063007675336294376035835523236480255734689090982538187323633745727998108693992993784712587993496689982468924163135226669781118880284271174205804009243479598439513877473494103045152321466593495664118165586162314653339251292750972167379484197729087133560043122829500847608035526420366617747089980472531022702466196632907259254606724133154699425155116109475367450877304775335352376807506806582957558670993411272229607447894738212027811259450529186746455931313545313802451331009382854059271454731173891554949843460364588542707807936402041362238122409128633504755784658430702477335113746040978948425558919140495128990299761670984570932665288486685358790508527060774510047333660183620973963315142390964203725016820072296518701406718034336487236491302186890373200780654191347136542368032479997912010908253855058544121125565105274228291453381751301819653526677434810742267547391645988939341209225830656035561636569398490929101454581964153781945944562680542551690197158644880321561106289159344070962790397168717806383394475918742638275761800421426951978601871498258211056718520042917930818270582541642450121598939340211660387413392923769284001486969792820230546291609989758515716565355093342091735597122225191688148594514960433269887635944254046728269480846550322470228172518636314570081833862502603525711163782942154969726611079486862458548614821431122945050105685652202385321894370635051994899194650025918046929316671389807783809735599515718609094784991249215150093791461494479560392336552019668992837325956882197146533418283087152785015859555959700983173152238784293276240199842427523421173387474082916330958842737226648253099152678710062631347499432188412291299020957551393629011545322610146395506097604712434629741446461162864608026333330240637744566258926012264725518235618190392159491978871155910469071880676822022957418733712575540971629225848320526372026020529154479651950579388271722281238513197922880887227094193777594802312069629265648172961295562531634477603270573423016082408887685578131521167218327860379140384738443851973736716081346701408861798729350329824032685608740573525053761404696045371960094281183838144815001087795784057483949512243909161194588275643805884054426823453426393745273097389330988220013551031157793685345488554827644227903555042598856123082964667672405037570047617685158906382666649871009621043251680334576767727121173877000682517973737783431641411405031722800181237760657897945137823431356097766404013416852255329915672400476688201331812913780113625924792401178233356765357505947889992640259136058244176371407324700145898042672494968836476712866446587678511647412343643696311391007199463192305041948464251496005401782161339996713150692264991007449227011328682214539286856172304906209509521284041103331956023303366341761465867448293665932537424966867498427180039760872932509206039730626579519723723672542034591753389146720756171143584725452346334847563456689824034249110626962776551287664038278444650584280826753671019003629032878980620439422908783187635657047949135942522431204438158006817940426109042453140563292757000353689326272577858886912576693386336051469960021702452818736230343231197428021467527469285289324048645945565834375807641838770272033975949417651228975692374199804780773863260048168795502555937574296651001401583292365758615866667602024677603676286984233783080755737076452851011477342046136313828282177123453091999215687558948897954373834703221602576173272640420393667038694340341409002233973921926259798282319290077544388289232561832858221034113259556068715488141648661618989026841150859035501634245404555686906499337378928255267548391759780497799667691383428960822446988266216498680196405415902510449514384481663711603737762951562639928569972570890683376873678294705462537273709037234210237999582154152810682027879579102697980344095887864244575616032148577184207642063303010986302501601894880670855830085077653147363879198599133239952888564323108229141735437995152558963881768069122271621677314842336147514523750025958001969961662476765183361125265991396601811025923947671398817251376213572084891018047421327097211114261912125934896405272203563124472952583289195251303406005767903853357111724685087298039477730280724014260413184774859337712260920084380206518916330955216396107060126652154707023137631221485205567264757257650627457558652036301633540444357433745535838246450025435708305383405455641836457383923155104296976784283242390039897695425321299183686996061219243586772937503052370237837187847220187573187700480946022046279517211981636519677173808505338447401773413041496849065657985280317931149064565307429788120786584018279831255272561938346092195968476717328320541679046715235056214580759104366966145806383707480601243646528031898197828929397679639972136068067562512558020915085429281555553160922599159410049080530115144232239116174870391636105146479535562252324716457911118470883359587684877772678141879462681623691961117801734424980552659833083775806060116114628891614028741776699049694076997388875106818855661683559695045955384330799803306920769513749653951899180640869906614507933863912850942208479337597063509324260319707309257411074744874784569891689948649852074598523190979604363141848817736809657983683672424245419769762392278801160047343889303248303922562665832917825202712463625090332729990899159424123003809310072788308587168525428114176824104959297776635365526770300288220310958908653893774556214088571885205463269604174256699236206208560788732734219814042954685535653468076116344857363776682897950164831368196118959774672386916672149795227649217535432408684055234996658932398938476573128984484224410457849577421720279771848783414729303343474008659774533426918221163310609743644850473099924402786718906045166423837171688284160895068804745682801929264999156878030408020692054210651033316212047373899950633485904873620557083068327716980536777816275883315101724357168029730535912874996158927273359851490795548149973508087611521599788082602160490944109820572827059997118943023311549156050568061720516669335081542858967386335265350889901184107193813204031820298752974295380749884707675583736339421382444816607641129646133336303697289659142417153592205834003535491012680673923229790256638913610929085004354442841024641933130780162487601419264440478485232859890048779751036005929198645765959094361343386534933374682510369933551874561520683930771590990679067046284213199798830307213984751172596192843911989445738608418719522798020054521560831285272288125936019968678617878356618187813740576782896204523816518916786669841972707267563999151564613844412188647484120549668673954827338401606222562393953745497149055970910834157252685583033869538081074976327612591677467602169662285371091193134791654435240739575829167562695920770186993550713296381415804879584108037756518823394780720090839479238465390949290216903411370465651984644647094185232176523918794094956636279356519765733589644939108212399772448654233239390718306696646029527931108768046202534258032576522404374534901904483264299064706110495523099185315755939040162368733519350628187809839614459925102425148753073794292857391722286629422500793323201859865943035293502763843041248046055296902157278413515533933388603200120145976085785278915552803945880585650668904278383962994800200849348971544547260812846842160909396887203604418412023106211032831078789652321047131257351341202700439512591793591561678375342478263388004148385826831816760968505388834539749612403926388873604937419463192196408388252596716518848091374415519692932461664761484790031490937158211708333914563889483920941621437838791846613537189238498130018242020753449168287841765724120511809810949874970130721549892403273606716653494657413016792976541793657171614209635064657653957254860935903927735319195298841991494976784341367070131824057592375764729135254134770429011237788031145769367973473720121386104762373744935318283889379247909317227096115235640443044582486627242708597819163543446649021453349725822264072877633560252514176914833322170019733278976526514377334631294656347591792328276353085084965898588946948257110520659297941683222129796513446474474862272192083210137546536620131599004148909126402520795262525453179343272184413987328082678993690950507871575758314460350139017714436770367850810053420094263903007723282847549647923279140181567608917501664898450697956696613382209133864445281496791135882729980581053550101098338689761560055240541104548269094881638857536703903041762879973887598974573780802897481714394161818215641578399077433092135519651715344950079806967249414813760987851917474431578650175818441522851642703733241551974500447928839366022833967610036516308122489945033610615199329457634615849812959102553281201388369463203641778504299420314674987432927484261380168797415719548826034297550555841802315346293202418829825729009798422814944124131731944105812141911862922865536161131755315682386157431196778928695023447084386108092077799405814797087544175563726102211363583918329428043577506314305036251494833929621474241578849378694352801294873008187211596629704995851274480809400658544491599835466987387841676171671275561186475293265118357864460572208956368976104415267016017534287722140516229560428040512250424406654634028511404323067697430197452047889408483812518790195587440006207053998641846233706664487336311699204185816957762169649880921571212243256212939107864207338970249758226364594855409968473073153911359854801561487114472361915797299135625039588905564670593186002545493820167042529582551958715800901620397654416950352203499844176047628570959757020093920726455137326302570274296978612595007479466107204869880775229331994824753825754863603767020578604571218852238111692665485768924559226648087091047549513241494903076919791227701264651751899260006062353534071382227620204100698098328362075985256223990346312604596620334518448648876345070949011475878306214086556877164791342171730448697567703389434144495950476434637084633320459810843708056556478216792209179723344021173275549064580407288289974115562864881851802377079800519920015582093960306819913053100785996728555938641733546012411760781695154270400041042600437652181904466750238031673145803687701923064465006592213060276738622958869001335205517006963977791447023526622418031937203573842038073660338110542038532208571788087129638218358211604839523206300009079616525876855039082166202974886046045521010766734359140575095523646763396916611965112260825937817264256416782775263709013869406356880526273485029571691720027591315787774742175649512966934436161740255498162313667990442632965028665236927137414961509280587848438855115984212885265195123142676101728427186517156038089035163390655043970025966887237490691977657287052220211762694667207354279001129443751351951638210322508107410045185979436663516528885402726638092340999665250174195607618534334831251113987097836170383272052214381388413401589698644301081917862134886345805152547679357007079919698863975642287489164687135487767330606205496439667068229349896895377970894378301340974508897582861955647713743094898112706295119197885353274162401331712901543158219281832003043636181965012023960132801909668679200664257098767625071179237509483846196730134978966115806059865085085865805243150474911926167058295211905991439051253160148894270035210421321292496988329696534007684635453049550808142636708421878712025467901172644339715742958514309694257800331240835277675813508069005237855776644789066377469893426471419422567056291075740584696561557814622169976683285505924117516297723558715323321927392998474055647818345359880515261831144682721850460290693709254347211249992257523999872103490691381253916126516562015903682133408283436495435846291803902452771638641036260743298541674584370721882956637191942485051128095296518287294528732073773352709078215785930315325629064655955577328272235561486876481262389517117518575523849223047638111904617296236037705914996296278843714895737290783201718468024273043206015741094256135454346491789895340442840215100125302496107295810835991706815147276683906221989476399004183017824078113131796684851647921799084795007022275090587587358216252324242012745300583247913196558823985750218806170092346884392273381417587157965161070558632457574437428044334943983717482108455256974484234879683354283718008394945610614736207072477212675464113047207430254932652280835029235229959559325699835183340876013280268496642117631805555295541518708318293900728195780522820264925945859950180925741886781723472236054799919880764941994607361637835483347841541218832826768860515070895830933067307557734318865475197636392984480896983005548454184813819039134024601417309759934321395450002426984269493656276569515914105015982266968117471557694738394809722349755102788656972980835285245085497884033379506380148085278778656337536072188054815019397913621534716876644327554910167544656974271387457934314758406401399736747201726198721168362851624245243250652008946520470253291916820741843830800648754783348777390400080368729594548121802082084771898299821391333192234195386312036826048865698776519586999985169220752774179335552143003444551474251024816324113392262493549116870472907530113564602192800137012649780739279203163620591881462651320176679399970025350323646275223150186123901943010913551891448549557702198219849922965841959128907642858682000390793612444628829637100915475735459905219596127083147200507766599408865962020906761658594224606786443643875812026087646037127680009991088844930470875772547041414737874767195168742291034344096628688257801399854469990430179877227917475360801215796883009872392118419437900772820584054627765217627359252463311761546208173146076159076872989813733229019606726789910098482439422192389064673929036610487406078984560580979615233605200890436704340898939878654942920677409009811545637591885328440436771977922817971686137079152363469016675827855822945022549564862702332812635071091193413034774224998401182649426975586540820770404296828964619250878124570314475588131356513218381460307130087134746776046004135583647863319545722600023153811987381318490645249007851435956852911526498475284436882523406416697970201191279202073301221251609179640033252246370749329350144787678849762447780547418185044632862924530565593237589414109273970460209097378524195722669543372483313339812394866533170051311657159992934347173272895279219286209600910799212258102908309672325135783969503571237734535894053916235931526186111320396711054487230662813419708278024990448750087961622052848479590399049297481356235806358106186144521360722422915479776108636815870018199662608387926208952989997976766244475575353922066553650445241909670029348099112659511382600394413905635318826002371018162685250313890080695822781972286750017769739987829405632270966264997639008941312616095747558876723358360728672487228606096921229725912200260237523070948997133954156962975901534861983361326228988698480771288115430552561388062070208278042160020496542778641516062173249215171246891180719736760646521290096509872292723019071720929476741966963191032943997899037647592398137310991991319587512933096974414835063340819933208423673164200693991366344110768351881885405965993969791898769236437849853871366584576040435871813063527742582110160264852987652577827188831956969557626632452528732631759949064379513697242114714066474708071814445884469485884748115876570783087891845949322003951791979067269774312819425097273763425397083084282394864888321156462399024736574771073335194412653976988102431047552318839751507250511531496669048539387886104598128259001464941671314925674122105131043526209980822539350533651094497668832645089137225404556597824121656775866140294691041216084618896044955695559037294041133385847340031237701433225420496353853009765591478654701759142555631441293649829204246678017825533600350338206367467779747632820792509007420698149158658246494028970000435856045726734111149739673429984937731805583142100273795215924242188833808763699455863910096817322236402959944175264871682165591181520382358872842971771450358869475840520400782762984713219015445518408419874212055157025630061906695236959975863558951541120758291661103237364557618000199194532441024295778816466886529224055729483752959324131949104585059134345956212124615125729122551029170024162563481157071762864770422121326279641525900746939343708426490832780794192592130819721085847956187335352561329769437320594830154863595401416173443739750691903457892826110974944777614064973491101319224731925565400681526045572338740567785447330678817586077917155882283886373282896590190416396377526565265585818617344679324503623128525511553071992102301660933759686440662347922502656816781398350677697014914349158716496994269538811354836021808608210493966428131015211213705791564348733046801687381615817475722291569148056531930241056150876856374346547690553979744675531683123281040466452525944361807133260689138057916468652552404759924220442064640838129951880432674504028360472203733556484311661729194918206365096287648145860614190833431501874395633444364103455800725145434718154442340504639179803335224899670632459131682988541197423660185111086941254204316994151637765853332645451298668987423313295551169746424870261534575180698101785808857173833867397802131847362144064965285526962883477685132630658463822986043270614333228069851908392658894701339944231303309348504985157457558256735551796410914614959553012467345247866216827271781296043643238450760722359805455577201052635495502973661382924676295689724003829350526244740738690293327695727975936552588998309367871235828390703060661564062003442712935692968829227577494185426303135223065871100227942491785435929589249428254741512962648809301469934549992591948661414543882897288172624477060061319317506577080275829812547631961994973888589854604060488837662363263098847544684013773265837065671405670698341013781771928857026756838545657970893141547441972059297892241155568330350985984745815194586687437447412801041709127796949329531487150865770126312997082209078261766724405941664891754895822224893835686716733619500626746019711886635257415125613130827759142417874979906560644398119281351577554503946605644814190415618041664874674491879403176172096464750510350062966642725159977865740678675936701493197490207242171963343452813334565171247762099795529051776960236743455570045655437251507846156897374357256721383294435415943447068374527252910924850253720983649017611910107055149913319723294242586629250621361570215655113206058702094685692088233954028035603451152006334088789871243318951900162395982345265944582916998010277989175796797668576581154380339252868055388263113566303737596719005114381738517019963668639810583728268619753144531533243482068316100506444482775114719694633843062388602007561078844271057000054026787880531955677364323875315311147416531581878745211461312041927557079753263832482899818053848227231585707538538897767714018864403535484985290515099445892004659384832474766564074888148186326779142917681569916341501996257920109357001804060428659820196167877625993976316673161762665941530349764280555756685080806901029992934253339291655672076447775916320429338020919100698241800434594939103943796675837829138143585166578913920314453965168198477894931548737099285508597318070815596561747653126175921558624819004167927793411071522904045591685024721606426354954830843093091123659991548224858782289043353813598159385725623153066285755698458846584208890854003121595691664665729901586535219237099737163993280732080987938449647948314377890948188539537240035645855962882420156704228034147806592586709608979118831209599222429296330746197479548460301064880346857571600238771141255205145877493141477358365403524707490525693720037363430316404462974636783824246798432140779061872595315242552059165625257353697516275001864311493363422048841014751910438672601286515376930028087437244138935520199763307244592179524767390645413646196133589274349215601672378557151409875944860759195487424460156946857689783657706203946514580136990208454807289914995058581466982698023692948912704263736123546124857317360625060538430649122698085918654480582062089074799281871184356605407305988698612330632193864975036943997648527554723793405116086056412066836540082908481561825306092394011819861831987907089861052910682932493400007344800106511681030020591345292803045651814988947564481693839309447792387321551499502897628978329484402824945249991170224472608164101994146333706843692419045665696550500577280700414123360022758550128627335387112919393190566140154841592306627532783840640815790230215676866946414997351957855982470728104340876050552491389165537467625273489553228326584367085127620955672411627604384458304849477713181549517952302389937103510816452779216335258566310074708099574708429680620878058412399580018174104859512657361113720603772260738378624506776261160315951246709058670194800218831814400109143980296025198599456721478993656774433224713674009355939364434102126277413309893384449248111253173474874589767152631862999478865950814720210947208142643085869159175154931075891331521879940924316969221825113323535299014273175724530713794820188171715940291509376257545627287812223772290713912216215865682000606479979836256366014079317050808418335601977867211753465594728847270590121031840326963150936746748069543110074188984013828172775936657667872302008476521910352262711056707940319521440278079652460215437423143929500415020112301926988335214038546804170018768336198462774380789345222236619134189143953636062487797630085269667233151521338357231775030527293244234698791574226236067998383132587613856782809301684750634867700818588053484600829813176314008275504856483572926948402669849586910759834394625229572989841210144839285764203196598556920103370193441506016731614226819968125073007452253027686326921187347488468663255667300810458136216551969385466428194843889678514823806306726042971312042541864878768990318822947593622188588741692445339961951438580362341644752884405459486889922806273378213258459604007442487555700935786946577483391095136665636632409940104604317964588908021194234601426461287784064471389407143172494143062956188836956852225288682672955219085805774724048555776339385519882573666588187479187883350840745039775733206129840228241463730256461264267709315161815984571916012965906873438050554072477620306094904373302025678430308648734148728698169723543258549470974301273144456658045679457596692445603946818951151139496131704326598747782688978355587220656377437950396563526680124332759875348361173707282741959859390100303210233610553947264938327583129741543003244239949325354904237079846637787034492459683178436812291170618581429288374482347385675421217148001364799986985021381264335180323428931290145746993288677950248384502720211921465910496339049835703785182812274783380318557144285384962314150448258647225987274899726711590398171537462021412797033561190571076825522103590972402055041170459175172537028076957252419485285873059976757654396809994280159712265880885675925888984524659671848520582692176121968644145337013147644679793266841508623879064465922041458365826410901848275164934088843475599971977586302440243705591422656272181611756044058681834761349569834301279433564120382781412768969959955107620701869566760591849517996718961380929927702198288918385686310563492441188885284453558491591122661025176023562559993510489471223251011633300976491431399736287431979204164546473699068125014120321375542509291401181716836016882312570115045706096628918396060397567699273906585706459914732546504576414414337380492283282440106482523374054812652706494603499511638479664687459117969982677385712167092065010166649509027575171426067710452425868853103512067701225589459670039694584639436403269214344781848914670458196553729375303552693659278354855301305244708562949756909290428379365869160610852289892558795815790288392600165245211503239990522270170416300209101818138779152560146880517765413215437767435922528125354357519620790492835056966005713364811632465918042428822727443762501170511075445014197790011213788375262221402979736226060692965590903124580686434824451487027565461094305587494438934150863225905703801291473450618610457125982377063555776008754714914113224430636872179035983915114323438295284456247997715304938009661010056973163665693821994915751952160910119161629011577130919161066684180406846638410681279893488122352394249909283053254612821344273348743500885014946078123100982666197146209964636295153480587130657170767281590579191386672756037908519183465459785002184577473873244398791258170977987459161019411132963878578168518300342162464260718591303624162968769795173949111049338105461603653099920797680519788704546203393256068365000923548166256723605755250543537720030532950552936668469435956271132562048564361492067047543588149123285869141566095843700685733970709097396846666696951735935148613081448003003908008683040219734132285138846675896166381847918872935324003996436351358402512449376562761261098803329394321438624606168421826350529100521408160821564945131940708708399694947647176197593798121135210779872318892862586859853089482278296748066833492933388616026285713547089473272971769305726455584892309016804655806148114023060312345272267300807014219491320760633562939039353738533782891162640429544635316245637324064251128034419492503761019853953686990339824448091450326398096557746056441638209421199346431230664814162564174809181949468915685651204658185741553092086315790653405326618322191279988010351004678068361980148796746223434543632817005032784043692007467647513487006241640737110677919868185957878664996570690058106491836315291447418940255334185413694185999069287177454219800662972858831617781861807773794688316836610110524753844572918646608161125106882300605676898297901132794337627287499144029096095981901622284505639677710541672649878125430329393896100279253248600791927540824203660959491157113234502438531231435814634616308158410084767625222390680310441798401967475718118524383448132936158108728509058405359948222316263109626392317041254300835415849519985457330071704178390827997525655956734106088246191182219846021288838346405216558599853413449891928564093199350271314493807774528134723753440602144487137598054216081104093744293296919662115641456063936314784460552315419444940131264199545760728851998489915036646475706029388585276775021372297157803524708839610834379141073633615504954354530710459349651263976868452158355532168424498201391722359858200156382766902043130339954646516507163970986880961290336331265980907516742723919110583306383510576351773618975549999798054497508203774869902908956607832158831740567140082788768788611922299162049012450540355339734229832879380807480334700288694641336714090484018283953308492474484747507553560870415790355026178952064553951746156957399681562168549213823701737599899092656194710860444722898045046638825717121760186323109419576982924453588594778650176873887731559621182931529855534343453731583194636807933395273867536586062147478322482086886484481756872779078991150788973718688189197134510432159617526448143398294524002588332175759996688302786487885061571470313458685314812657155567206013201111736834842721514409073618069574613032262701156501093324665004826838092426595844189919206031248568838991377969075039097472972569508742652851085790428475125533722817063941429939090128740148200915295090146709664176754937329169982031257988174487537010127665858772236926163061413120847720258837055500755059422059170322947850820933360989808302340911152684988532834646713091352564999260468530354649439390488227806941766450172818258839354806563525481964941176913561519111630473020461998373998316086782991362840628379435144047727635404160534088045055474686290263325841788888119368727603225054541097725684063064485878602352339153271762978029129155072657219930083304241221820188396186860194751449221736773008542868159649621434707574419880976941925602165838900041803982012594895082273767538305956304550328765392346011679142192936267746970072020858600248666433559417180265327537846465813765990105936684388803757374560873050845831485393420302108568512843951926929659461674677412001494722401577554146777645866259188557681756729543243676016415707894495555175323076808680717654462452383567373461659112892074064906982330501404926053672848836211919539989672696946309641338523786721230032054415787386137863377130584731149669485358288395636116253039492598789695778414318595638519087502040210666614609682865725810844063824337266177143408334975505159095480610604170376181148651467708248145966280888656426919124530676804495534585073149884715292021402019494223566810948759287343138035045718044510814640293813706183946645908409709558694343732519766747337310367397231618551334550238351873613820756093986289486711721012507110111843207102038627675463459443467375608411855237547661860496993358828965060640150323337114431106870217967724358973737726198800054152139709850139915477377710145396158156628564589821066554779874254859191658722356580943012567174862116016057604621348434683533064969685656910201446046031371269020424019222055384573382436652792077803156935947699552455165962062877176172993618075703952963652693577677355965395010443444543451721576432651711349598613849925245331703673784113327935885005156405451910664973124541928668829730442958679259422755053852680581339137001418135644398554043934483618930148124425792717033221437296835330012675804163217748265287932447523998754971628280031727269348749210727663106618151496834585970380013207450312077818131994793217878213488140788994972407250519101679141145832198743294197433983040052791663411146193793142639873145440983869437597284701617747833572444178624037902122719260592998445576548875021965571621873779298623189080371428689792334088530690339438008409453417905553442915394031953316348378563155611814801851533441814297993904992144168364275778237250422257394709391076991831936602010645460206355578342684051782751898958376991746743879279066072542769012961197357718251184449620706969702144495286683351100107602322147495107848176222093671041478355222335223095134101220158729004558595451253125432203886213912670400379822200803345030962854620118081618822014798403302417759059932413704821259949985186516130219191322873966103170661988143943967122514222884295651341011379190086481609338206665842788905975346850782986335121481498891294273084832104263117300090575627400928091047295350133234692165792591785387870107629153496567711282453106934289443249168005034370998002489642587075839970630679299324326953293235954284536068488700421908094808125606708734838620291171320922100145908314744854552314886032952223583964828389894284758527744381270471662540647796551136682869746499283754180787150465788250719292085269371557044322323353114465725079165883923440178059885965838957821898936631716942474845644984658655596264131768829396896245239911772327994245655440770895212822362850093360700885229143997705513116375445629931027689860532002324658507206284916673051733888736612590082688868005357711869424363498549354881307359153916859734662970966402820759752405450403218703438813370782372441631599598480186002961367254463980571330408472504495506350394392197049445956747401448170755500509472085778323219673959865670017647217739778254617210833481997065858708754239112956374117453718896406829613851763355334782531445913931282594413499333419821516970791406794943440585452334269043653883401924307909768401701514529017813329041317482052632235478404672712790267019008199959037356179612731001605251647667812860992679646070379410840588304386742480360474067681459177564076600505441521618098602626770253597095475857064859744669711742352238001607320266380312053990812483540374352896313971987432001893464141284317748206952850033844961264082332034319833188752789439714449397216393910050138222740800975313607935782920079328375352809345790784015042515732965289210591226176674807413727254936072730049136681788344727075150684829554289685533261437530502315375724188614421868464741173346619586343966136365252701664345598796875985498385427516091029182203601318480264183445666836539095149128125356151543423795929266547125404128727346321201168351848005980179145479547909206806045408574833668666915770278269341977913581643153412807111930370278055550188032514237153430234271931646128922165312147387034781586701000250990781971244861761554271580287332036258365507995465035218646363387799913497240262584161495387695120717608581223130519516820732554586867413665273455495166301256274485677397526566250622061790154827740354223683453826170777456651700082083955046768346628511300855988384808327394515247948296938151025235260242847116864379417846173452595881611185248776360737525292664954106290363011780068505614311502989372173794727265677225557750574665060033558039399987598426117592131774859423559207124049278610570027689065458896291084454910580388332689328593554054000863120604307338379872847794386639507128141111330645947722691696543901421360181001337328684581763471142850698472179188124656685743537927647058844130787374058439293752212129114222970130749280885702201894082399952907195209641160409064019180595634253199357662122671374426682275379063837176598281237255829611370766283723208602984989671333684129321417226031912508200574895977481181109834897533632257920323518572098072382021880661142437534718123756328072866687640987925102990083831463992904432972629260009235922595315843232788111819696199933397387663167110103447443588394020105761659844371066755313531702512853943381071039868477116526470959395139954551419790013414741483706360532293748000555908185979398897156849637854116705169356798401807708130594885527253745887853695702003901079410260921053852596138809405947855397477322348283703249099110192621238401009270343657919540611736305728048527925186737612379717043397339467566007337191192496269828229473405689453162389657167919309528417875829402627325267442634623909131276592204650249821130752689727002043565873882425341859517354390589190031688848795850129825617621262174847972681519005468401300823764035557484331777901501695620267062875574357898349503542572059523393304804632494281988274382547330547737266029000442088517012554963637635828766624566914297857698605682817735881714612939711142772834184324613741653227909012705914558439969883473512877398248670485382162084330536903829196205749297910127834957346371115342079045539262054889997549303069933593056139095194751195122770376474883229817311062082587084080507133844426682337580019213199847437901169017949309972340776030402152968167750337167097712513700242062719772074409571976994055078345349587913333516831592631785155209981140349050453127128920196456953195845844375276942854725611438005573966668484422656511120697020043347606478966013632024190796141501893459776096272411023601927759603647544950688676587811843613679310438041722150714176687898843366390920375381581984784102098152536455941641837143712805699342814748378684940855481765964493094310810436288649535715675420129232024394256933031427177811778951045425991382574901610636820190170734310686387466627554095844310439992710900187340039525635024755724924854640952507043495741358509407517711350618106481440249658270058856573181466897479665194997118949136059838513736917293279225448234842907341364672021658651283506186970557364023153303000788591603560072451706676154418948754311530301601144596122085076443609591086522915548624437163799220815826705847610333055159523616272719183337469499733610788529898675085343266315996944639001009310354376320441175686088423702249970717912150327845637210105507063499807631733356804147510062493368498084837889266011140888808640587126415785724038965145068018248020471776497359669962327839853776973562743511785154979634993395783524547123604078010787544778727458213666590253544065235102518516835964505411509293266711358477008024167098962546969561588262914052224883399119683487499205857668849020079869492842714769824233349170185596460096519079076774859148416486921616651675028017139013180038184201830797167737282940291973396455030682519157373779965780818483375079164569558169364799106821785413783018258250175137751166967343810302985061712571090469322593341125597441674664732759779040669171477092232399772003416429216502399718114784309808186281829398336705184583064509407046726544550757398573495049041256780533598992165668638717760549627447838493095891238408762204166200729461875363934317297968917153305534246133454542735872908906246651371555120589490133348476478246808668526902940146996378197012114819884510850642494149135269591890305737471574182726188130634947073136275313153257319348274946900569106455349703859346869948582935650319988693213322091774397006312740787971176730147427113028969997234936080755659280701573081556441797650513348252511181223106340135515034892819256221602696322345271967843704576105911852156579694616736984636648025824800552196208863107668416077363677255667134114293489326459913354045001575396308973922890017675276435328293695356012696573152592202419336631847105532181744272811881469615622737943538485077679772515944550716338248725071434573526999148402133869124326268421360099553917171043619383206363336419748176294914745668221063298690079941592556852865531891824462177968117274291334010183871379646264116386507820215326379607214012435969763074837777655290393294393332798006385058398210143032519623480347248708731550783339401709013468929315210556970486512746276678505418583989516054633842887066730248388298957537244831247502020583755721973909124251447553692772964195597193031564733685741023037065974391310769437484476004840283703880425511103775584141590062410302669822880028589386311735992802487892612598078114523881612632436778381984040044619518817166618609715718530084450034246396910900631560024077897908032340706281204586202416961156121786029361293870060371329666097149811383545316225323708839976014604464490266770576317801395120461404096717458917030449517599470076326159021100626182264192569220859286004070535617951112713002861774743799424931700533029853181558231145070371200483599312897302878137244653107655284939729782249155836904446586684487914002341199859185511326118277347309475701517846909912374282500160763287995447281486381232712261494420007361186059842014341774198435948921425348286814229997808049264752872834176530583904698946875741217875440628580372426211577357262682986057636665757453752378699169935661053654369774194882249237341973218425777552317393374247701192486837778020016438644048135249041044108631131295762551407493067273520042549779597978273110289548907031398477133077955770336892868178337776393891038324781828818722613620337134998712090974808146980723549895625288211054057612335086167653581397088049835519115119749300002308771368806342891116506212331622196009126030675044030871229400909463763090670478878507504944812180020752768413318112014160027336598245339762914195843136304865676174593990845743263627212574508749732434224062329759572480461175264005970258403419257705919319778529940017641674769385275663861914331914989452097196365579214745753372612088445088176451973006251766565580233206716289314709835667738205897303429713533936097753141309189064642361527049126806146177994439642279055863477743312379501448099310467954887065214675403074730545785878864979575384231691102552136990267988536117201251980042244958035462619154406697840858138473222004958779564795799794045700881359677837060843409400634264871659222664728590519396980029984356515876815152239792290064895321324254222931873538109961665133762800701554423352236934917647928868024935356231162629941994364189441401692429776075715445713787294746534622833536042841214563408514233475785252812545105910236967935540519844751458074025055294795032221776671856266492515575925854200530326489464846081267779500808858281644851030421975747412332348032059056010189261337696292785431533401808015575976748397837752962027439468520451848434565578145995927672333694653518458425051738790285632104183296869295639098050540260909621095879678165016629046428632149687343466795664250893357312777198882234587537481498922471521645018276200311371716200726112293477456990367006639657290348247670666666869171807962971778858871288629587317040631722173583875280360176366640517226418280095297734174370162727221862485497800915429746012948438840959893376210811681550145538425408964600017455996133093602904419335240424873418700336922730061632885288147521220740708953816524651438774159582835604724911906167894457674542749494353031222600756466653839465398735394554128380751682987871637753978050152605892790273516412524249749684519604486142540468164750970386255563480179108465432413836821427960532636821709105607438490781470440268538622868572419916281179244591283135860275531656645622614373470152344489953653175462576810344091302137116260678463667086888596056464532419382427680509439697792669424318222810061983970153746505419045454348227814700642460003213256276208014167576795105187170097758026489519735424142041324474587542834098956077364843680146179469094366541705513378938661713659547508515985995414394933151199526047484925960430425197143794421505528568411947562010420063307659127821623985463150244546028170910254747581090176335300507793272228892069309543251037297745214723643160303701903078532690965404572496200132434438659385195118640134227322432523868707354686091011675854403659552213168744560687019870016990548276085477017519389185343719481652468960545039682154893204246288841111424991507549092847745381119491496347146909372850002428356949965708549404094841630471918049228044030038774369119528780052835668723573182021156980528506482732108818994163658981865638050691649169792001653340468656725906853955661916961043120797342278584756997988059594495219355905955065362790636038873360753415961553302354885610927245539438748798496027083020703910398293703586414297596540383846242572123769751469608763831204967868990479450681329498747050255360653029122214294057488594739569169583489204985374354657715248510898588883616039431959269671401787526989932493748328176954365339078593671688820903457415238699932100556683325791555594674125063411925941193081572276796697863056531484190194394230177262091588710919767869398200665705635657482295558002114523514993510568880215385207293574920195746635701102062949980788537525651470373574110732470433331219042638739342437506526199077229777203534161894249762234167237230690035648082662342044965729454007951162048901968152339755755861452190631690589001569316014829405685688167414125664669452498797331452475342360859984735973611819361780073652056362969325982741017240152110992018950148312804635077305232465914392863848357791271562166884330547965686022428268046608665854179985002431070013989888684017915702297867469063627672269903971631106121354192421830732318126216169465093263570694969291342942236814726240031865789627015336135553801152957615157310056761699045311131749592273364136295225784235553617029077855262002354778571173283133392172473696798473947430285567372240543003384862365867153181250385280265231258120922528588184513188746667894175153820935320783824967081691055025774197079731705926324786935505131104402600630918276570352590671663335297147655842183190556085308128822549560116777296399909088917128503915434941336300774204048524544711185862185727305549851086237347198739850690482738534550213292340094974999189789063595385734897403672225089143288651452469756907795627482731720342141937678595399463673985018660156031897808271399063164178597540426552089899211532997501248099241917867564518893084922930605655759847372884031713404325184960527922586312530551610865905652279291369729322248841465865041514121261971082741698290128970228770377999873262619004648090249923601979284191978983690744444469712461149820925167936948690731221570585822784921185384928229777560029606688267407069276288938750495513340447684916538967688152598696669417036705404383229600928606647396177476049333612302283865085912911305574478383233723168621920060329211795709730668298001692305590959918545118754579648386211103595023668601109178614464690376268284432498822343630199549763631836139683892530244292939647445497120266323369421226801840560871578783060723723218890529285671354605660668505871730445329672761068954112370680188488068947335085257654198121497207616939396087948569007981040156866680611867764515918166347483575797813338414396820119509492762648116146865868327884079092447583451284066457529212096960321522275542992165199505822051878758580939612933646065722415943204950113066280416710073668005980557096235992265196913227841156710546216003343301332451057977091220595718451416423224325622932263879466338421097499255481311450597183242016481938629265623635291052405054989016722594333817618938472812698422842945337980373124905785241780928985852017394012931332526548778118724079905260114234706950454802467727282333065263350704932916204985644332466181395012490951305329190619402391914981689089314044513796856844877899392505637884427711124416934346844082521493974627455311688144416937595773199184563003866672179440181519101830586918366438485025555248114385985473557087847275991909903351337732245130691256296818198962691536084461808709915730658991892457553027771335645881560696330142585560296705159494175721446219781261846449322787796999695048937306522767877076306553137184225412003541165970904743792990450401244958850985483823249590091878159043474857261806587230178092462912650820853068041502470421837986566143500031617037197070325466231552381580555901454143512457744419173437840071478209072371976031731213906403022116801712786992822315185710979172503714617530234119540891412340836167353023303890947339576808192340064515662763485396019033673049691494570867117022715649892409344369515798820996400631493313580447178599527415277813110061428742214036201140249275922634985997360405858948143135716409828235020119498170144289174443467635445067012750699397059189691984454813970112534586359589128368104278180541411424558178134238664900994043373486247601611766109720117248294199212123683605724680559878736392589305913082001502017858760079720373828467868774531655635504067467385020939503897017511270455384513301858649101539000282814152853740332504126083459400570815421912736532652577965782764759372450186772171008312349318771652779017985377020566429316382521254874818624836198102462402825268522199795263844759799067584338660634259605084995977826105161281258208560131573142557807665599713636953056463427962248523148205565839673258495789669841187435673012312530734014453115738137193501686480145867174334259425697591422637656917817437476217801628679072301447787763225313603320485611151050852323993770780291832435636285252315250519257605527533392413884669862296140840512297933035943634251712984427007056365157487719815530638486413500049548047714116769100033941647842052581969402666236125940962808038681992063596386961917018863239024953550541138265420356532860638644225001404236596752053899065379024456674064751141079372028718618918655427555903941234234037775840982761563500941240022564312912146632999268759759223653255149028830650142312262963276331231102233912020259400568150591480458267466347975196025321190582085651101929813784064198655404183009644590808640056048686208014855734439993992133569414359842036737020268373853938435063143127949429141823413446694350797439453198396269454847479531403133041556187532527839607253634822562586120101321451909993039490442704846627028432055168878281112414085284632641167512818953362001237779073166325919744640737295830760727890644939650513162176216052077324677478807778632609819239576813389454614858514029023336480640912623032313131774497097591270454866694157102920592962721949740457171013496891746445949048079302547136768202562635734645450208343446052126474911752191331560161006299454207634000687709979379694682018367714661519313113972059941499129091011020504764803522165712277407660555266281454274844720630991729674172211093215393438055713090673454917358608165628079002440691785517047519773221668744860913027098765336929185260710604528490948338695382754778753057400558355951247066928737585906908942614859562032201830329576692078904860397042789607596224069046022714082820843647263629869015540044686979059033065972001859391321881621792473355059972509238289193292720550282356889369378051664965015051054260953165332439103914660406840560748609169213757606150831652056090504134561587098768136270813258162798851300524276264597634499762990928250440806428390572728744677789170169830093318937398865889668438649221363071957531214446522188257693599866411134027815500050662887974823931318720673057526595533466276241626273583056883706425601791906532553101426007198299199229452642296421579697416361063704655499802937284296114388518033548865626235549308518712303268171638934031452534249799242913919117945319940897276028759276246297810358193030090190474384629582010288191062644636231778626455830178588531782607934855893221667715611101238100521295138587993339455378833979228150436398663597217982926139478013476241331974996719610364294257545243207411107339894855984918062423779230648266798104797897638209140907648049164042326348200362949302519452796227204521400804733238668635596901868611925967344028988672284581232700454339082399100754476845604127512729158743923791602842380676337119426035264677076246939752737338940964012356724267073032728340820817765529169000234674920031237975418873853694261363304142651629739049717627600278490013659477095974892968577180223000055515813594451272893441690966368198793726143462468790278496341051015324318026258650042813501776431675712798896294262067337248354483241366175842842351830673684572499768626588169379431925122321757432529628997434668171406594957073718565847188202643121194255252325064411423820608164376433609680305089332315605673151999778532601810297037767292176795843354096672981551876010021259225019891987154982269480547824820419787358998346607027259793793643106866171860266618178502232570358416565979805542992498590549692359768470532844294195509751214811850554405497643557061325036559629484621377688817417424394871204759523855060736297655182541150361563441022868978751222941331786962618159298484587855155376401954565569763995912068464472675790030568631890063050342367472827172206685795994030502974274740786913661331144800578747319438427813439907908574957820472566665989907027027942287786260800464309829191563336384885750226877611403952525614455312141859473554326159222247254533193260821994001110145939752303364999520419687448289506377886625961380781686586445345752321817041266368201908804045168983673282786563167550502746276093319504261431671558254764670314680287273235124451600151488192506081207394228096440101591899825049566503942196889132470936792336822297478389448535801271847935453486329346363230152280967559440720994540658147282348975897877921038173661742655962095221933425369399690079747375953059912217839187919357150605738356525797800709384442902380217821387047956655577373913843545860516514318369707879919563734394875255327257470820013293940603059077841383491440021490952060830995637331206469995197832095916662548201442311996617759304007717473995466477157628795207873214112106725166003551038587797709625961944843428442184740234019983576861849310460449724650251609952664263007690926267332821586907544224324968866295970741619188465507847021390346488202338844556229099606026345448396948353558678515831369326796003555093718771295643241803009246149109850278162903340205277231412370719034216129204049739093676456061502960722588975460912540701625527871778291921335591202336186860885408185543087785349607722075642188696408504477960770769930704876576125598203907692484843214673139522583886769775859037786742126566192872129901055550957250534044945241394033474816159534667873314692752577963343559090495153083773942614091342267025777698064070842670864020182416559473315359168366377659728447750009315558688743381137315572323373150388574019207187315885211236297760677001205981220132688354605556284249765164200694877603487979346854056716153822933793375258649003434075509245846851557846673971074721518247023870689477456246099244014965511290500977088008993278090014988579990656679198120187107659370332931519337496359218345551500234969032866495775478126379127793564898567202560916089654777466036026528654004604428478615478623199541453150813211624072853102817334435264442756180268772079221109453097607947236644612010234057290355511625514489107628149855530566180876564632247031931330447663738757674977851364925572169183661325995447042392811546195572355522915654225939873883262524048540896661212450560838325178425846901956896148364670449559224479723757665422455438270966893152664121745352876636355666966770527590562436577071728638057958526490529672397605214821927215076293118095691910070371621264583708889274284531969116617215721453546643334445355017631158426388661150941612407164728788581702462180175434571224671186535529266869998921778187067802801094235786931201329979282408907037302773840786509974551487882615443821130423079795428157959589198103963829676042113565870902893499910493792806374286844085036992184582963994360810286118700545438501258334736599978886810076549798184961473872926370069386750420967517076567166936759730216790946752114890222443076444085333127991435127121825507028113892262261948136838364133244272226179821696454697684226891426468492814032704487940047729331443338860855938682323384044801084569974957183455317586082297311297442515077383646475550270046121448598733375071436608073837173715451815416355630562221947911405027892719921950853155197106734321138492781386620691623866445257856860092950224429102859508818695070631508175325192405582423000335751758060034336463473149971342208498023040688486534403788723017893188963855240203094930457845613307302503024446384275053126348796165723717670764596415788380514477407560554637449798244806114331316206756684381646998622347301235364953977227369518428609823374457961008640690860859453920462114283472909022480567407121754393130425981185160985411830840507014829043185292033665495134667226100588238640251557927634216495283227884333068013616139966886022565676477699877476823941027394708486988055224290336250925448497126148804025812922875923186210968415415470719810575641775812525301840108571010892138493290489457835892223939902384873719012320301346851281027117094226106394262895364417755934275984802770333087848116275732793510387918790286106491580036576644295730964775665675839309449672634612221979876478702174673618738346390203320259660382596799624275780838008423168439699596553396063142822564481919803569028143689255449778367279175630420033699674262364170779810081699283121798792202851484187251842795453134799976942286218126105478383669623505939467604314730050150965869193690595804543990285486049286087991128570321910722886539558659106187805013727931088085303499569158639437461817475216427267382252555803631437872624859474434365336255641019713751064153818989462013015053717701469997009814599385529919096468581631281802706335754943256415709871587481312021716246076032713641723958650940217856267708865839897923425098558071458822023677464344635244171564864298953727641426910716008275278598827548033071187468903566327144175859166045303281202225196762596660402324335534241407378927991233603197989121351219482296033803882415075854061196178199918581144321364922610103367545118048927377925070096856538964314621441612169175483067096296715274753558522494679478455814898992135980937072174801409061089229049310130723217573429038880524115419810795466995506910646620744360194257317639242236113654833827221359636658879392610303305539390614294213298466727633234951241514698292903263274776811295498194019926861726698138185054594077563210952767946904753934542707743784209720423442314351345251647722099169605644748550843558092020838148470414757737977786609223329082812872720668780958068240541054653560945594381986230440417547448554758114312254639365073905026499694765595377760677844597112727083532838867854855174439462385206312447990385002549739537110929397731240862202808861627483582799958325494652706938908899672857565982121603380268910116832947960746813034005457245463086141019303911552414423136859963874284587961168066325307943721131210782379818764117524659026680430039972317965024328135441475084047238908389477419541324133127125326917068750885814643803134192984725150640490047359520687138083846681650401492630571438316238228955760869630680526057877549115357366640043341392431921566040523881407903883247158729005950418831003951973758196769510948967534257358048217708797615112602117389906726276410394302243540086915707910250749126683843359468224412572877415222988407155175319323503721937733795140738777950694103400352098762234651470176997634406396703035666239602431252810649443653728950126801214125311617889624903087221309309057504856491148291902084914784167957246375236863694800382427560832521483916577903446987661946343304304185008486576345493628278627561730916503725919227046943059095004051097975439882886067153439611634904269704780985200307710004660060353300281237646835098952360990065817243520868533904862553621918056634769087855726055166618208070546538355803566549705734551945590068925136968492903300269957071989716028738416956925463420957433326057732086005335128196992195991656927774006218486562862046453199604581319221514246033710141805011790486572980221334589429863298788864238325848113476960750755700322415009111767325420245554884522861228674165796724155274679868112937005283376831695487889865731485480660104040311298163059360456677661238477263505889711026266783151143529960985741589802952700514665845995449560876835688314904043590911513272371828331414805029769904784990914705472991056539472452227835856220944859543781039439772320097339872987695288965420040377181175355416398289326591462825270182158987333224460579143410424489107972202940949443744876893979216317181264195505448348328390141206588657366818124347792221970038936593620648473606692425172271939126373351897606507857656921751401405468996973869205075243920490270938030710840686248694910583447156276739707982976841858482519408712320688717324880107236538475034708382881912516604050372892041985748014125219555144956703701236049032164587454042657685578598452566871071582107989628797857017339458046259697809525249953800477204935220761903787118476182870641051542200910837172000636913057321587495425547705602664715965343918291953163773144717349879322569034904296227916235237356560087051326270301954989166413369698262142057014790610688830975077254072032345772177060215109899947269946657150220751077825983164256443777494284869165084651096225507418563224777044014782311184242568212289776240674514679849044438961713333281509708793054551490733996285705058102041780942335264336424353628112001124091369513816755333006504791945681891121028213205556661451290295536088619964819853516771654105575827286800220446889696410816259489667440326496093399248648691015090265408787875558937642530691607604759456438684258140816261794997893382843023319727647748267484442136882791089592543344247792335826214866550395766205537651511830914191941204724029347619121089077697614902862292371163249457058823937730279754244468748718402181231344971723601315576899996625937944015827950939256802695503024517487819902225803909608810579650566282990943340590194764157739771719543354298135798107184153540679893398628256884600405025616678862762799199113488255426580949419449034471604719742579765813094360673506828024282239737554899055781192853761768877980247801756118743284103808421737071331724804299481167297553784770822053067882585944299889028457158720634397467058839514690367495506599891553811093276549525846520390062838948458311952149698119024820681724244272275576297888393689312707439246845452531741129122762027678284508405762145992880362488719557609544888943911191780213642959975452951739829018261189234603977413761170752019909362422371274442757676259498359160256280175280520757385310980069642489872424728152599821539277168475840200080934723393564769284693130222683971477629092856343872990279514508540505893200203371656861993934825509304951898496753069238938024279985148574016780331667370575476514715472427939848373062389756918964390950316339560668990040184209337112474667314961576438802061148617268914506539802218467225653300981927645215345128385419239963781512396155852781109917829495862554084660036413029149525511969964394300953362096395543680092485094935700701901319587355010284544434803059281886471945943399729307278032523694705928111068264401201832477454334183713473850469014956605711965417431494214509256081942472312300989482712786612616558187499563985463616146378038798280004966974826399514884455404475765477508844401235849385976356018911982402261992552002559685934481632264197589192768152508548530728607782198718576918160278415246854895931230715763432402853971935878773416077543907392645265008462600837253303234019439567811929394461875272723047860624991457917348694745655475418585227921092512207426625920967000903186496070848201240859262067647500513513022116506337104178302769536877547710242761020588604150413487067447540057443653966273770287988707472305333121324403141734397664141313952940855308097322470972242171252296569240775079237624062392039402072846543589920026715174290131073289247129357295862124562189202073186019191344492094878028970768408109512219523670230748423485499381018698474061745168678843219248929201070801800883481852189234857137707546608709280049552764581629904102553059303219629032756632958649760992747758157871294847170898298070328259085474594107306628357138441112849534062756892942782965739631308568681976823070666947067486020253614503577273427929182554231934745222479065081348885787556477987149333993257955865078193738967991323963690183884369427743460448106897816646013834642403258912648594293567920619192607900073566815613192582631584423534326690036143168574895729179073462566279457599957471862126737612189309622731628147531411731639515943092585846372020822698102306915580492040085167809740204655718366752655312937963426302193828691858490407500693842789731536798796758533735542413109693156543620312365787509142049120217527322706392673589813430263273129339494301521123043563082473169765988906719756635654770508204311645140026788828019451133138590725150997550300823974339380653435863449048668640796132215865734294665582922934675318101748767455889033745997313105146565506584047492147652576647287143730930801214060072815611937910618091513505155269706495188468588173601973392477818214274569592907314430400440477445460761478234443844192449560387324984163495187455465148530562896939289860702801845855126607376902557994715111990701125123832859052094982867677860970800974471500436345027847693119407203665596782927464677294752910296737331366399057883621958327370210526761819766322630424289015680939236105691363491322622390095846172493406836749689704626175041163614161938315890133240515559922323936944046821585029174460270592871014786834396734993021126840166573644130975559337348246186450696953391023664562007261689908717600070490496553562325141236761858643629070765565718533565174554768737322676327745313123150634392026115233471100599612089103656783999391793435962813482179065095277145643938206469377510738395005633512211811872063715780524193286829256780345878017647505605483366668799947230458329147230410628852996500625769511630444997863239029827284937426932578842863595223763308906726458315560104948174177559753488083860377831622058835884753736800962525637174931820715673823583678419784026478001824153643682594682875173757800984902301218710314073550023309841704580206959375063505719016581833646917598520515491681397555814634901939008734635730767908551103983037990674106326364211727747324832424169965970690480169776974079825370080346146859517483917188197144311592078078231011056977487658357525088872074257333038699635256485895000001595648378645607853504488991920965687662283504010737707352481598881346548309068096089845999126085258435403317821142460807402341392350178108079161043368967371678409275501972434885636768633027726885174782001847398527505429531640328991258406115867055956100203290117387443941602348421898019724577706233723191698081663427581220969819490593369197664965092934714325004511575313151202088365495840632957242169601971199352235825914828865047666665927358951642130382296483437845935710806640080376691220235485255617118074758386430019856826553009308237936206934116362993909841584980765730613786896711140254311788001317973622045223233259424355960215629450733717978347749375359257679262091553751615591830991715349423534535804581354780319072644012144976752177918345119926645386989895389941649927241881908184151209632266506346358749135511052466619967022732221023422753966827288046409187808619295924845652706281434964942112479926752540207367705467951186091313722668231677563926186760744526442966072232918985419974148857772472103304766364034557859350586347539665691702114745646057014684715062195696202399923958358121203507892924309699100023139314924016578946336614634134150215757222517094535725801211197694622174351742508695849893986415904790238397023160024765395876051441366864245662339731112495040327062480155713765654040466729521265925845360180390923782610747810591234767028778753576687394942646617670731623670771832871531367592324357410228846419555242877918786570485795797409331938789829779418108048930377071615182905978143679371960182741187324147260911814862778906181454448013027996098990425466028234906444183678056412540893149125673506107552835738617789576247803523559933021046142139451256084177106868106530060993790951607199913148472333501454117282291706575235143131714394835238815361825441279609613012238401876492994427101455789801986783483309705169210349341504974049242345463109121373295118100384238203539633402578406887420174235190332683140706054181582725633805910643995416711147175664149700576749741758506041898580033158062462521672214949264785944832504797046589073200054520279323058170033495276068583839633153339368905914642286771545821575854743149018026882051579732794036735201778098990183593678818429899232507798144421915175718249076521552708432314046198884926111508091105020382558237268435466165493433658837730601890526953406891289154533627815634758558027886456221617896004590272848889929037670683590463190449683764637862961078512353107602941704212630904428553633867586569852728760094562135274537939677398783242254080146025092578009761679970866663760809206882913423696269519838637030880213024766598870008915063452931972467285622319909132729886211589626685188947809858563126057875807434301537417288809128712465329786264425826908132917485261678794354088835360262892772421996534483981133239134702770262595463406680136508026732446147543559275042267795301450599878302775284605414739556960928802938179623872713603006203947533424556228022981582036805302498379853915204467781328525457699905782641994703784003792049908887267542843712350688974359999213057120517559885689166225843008690858765063956128132174965682066140565904939838653472765610079679627679036109104348204768392369278578906302649661981435850418485960630522300022567213904738297247533007527778948691611335197020774845052493258522490449468868597635308826994521403328515509366106872173714149011387895407948285332899770571251516020530251850335844099673088597357885817327908785517378280761576445539031747326269794974722271396372094411738213294306125525635790852457560855172481659905299561943558359758597965033583443873167076234803075921094218073775600997077956224798841473346373374955516180367056327737808816946928729585500916928305459068282203466495915000472744604103184349557939534821174740714393734767575428670728350615582498894469639197984617303107434108141926186997431289832192769710616557765191140178872906019244268020553278620031707621139839452224898406196195960735038867935460762396844354293503762314988050635945347289163041002069222112491144047149905233967165980875440889529060060354134539573872234102169324468087892548763404749413127226789435354787745957420291517473104048781541083901545393697068408405600120244152257202719416490900512268974112932704782713271174925939782060550173000598964630075631348346880485769390785426989134910809486326479531842818512694722834256900614978007426637752737505875581392904890560490102702681209622085386377694088813389173411394762008914265567472600165854862418655863742164399242576115147289349119247349502982344070745346363185171662279350002480081403714219366727918889748214995229624318312832965097600461746638615942782824165985957434122570942919854551372621337814713008827774372731519510569377620354223176003884771206428041561479223430653585817899510018603536847445462037446223820775726373396252395494813989048003210843416534400824643554744864191173360331022556118824387748402370583289410279362078971590397148064250113114770564470543182985661152230073517476393666308882794493539123265918420183558253915338481662586761853355219816959779837580787667566609717947249871200687146453334544327491678617031109736893542120687615416935006879045321089074436322068476100171876550882350330051869683407160823138344372129828335721211438591924561143214369145971399582734947313784617350782614660934667022304083609922185111093100740801005835231136300073738478549087368605523765012834844212949401104893139323980851472606178788828585392668703656548464185313206253378113860714110408663030533702661690365589527120424976764167096297494844677309137591266237421578051213242743907165468482259838057911518077090977819255874449297588330662094150236626609951955839581348733579600683669174582161527483673284542042944406363992655953803140827024762956416237760752861907395579115156544856443792896368538281979623513396832231829318783303800197749897705918772180372876161089691209560631041947268887452564508508086104808168340409637624007138095780229636040103530862987615108951090209834387091993910054448341784094604717414306321664637008059705657304442388024295351836252054941117197607966761709980715916263665826394882194660405401910765832284732898446628154521476829894478577443343828794944880859353984505731223191201205719820053754615682140311102655712463739578199728545598862488955254321965713757653076991522689904135420702957547152388305990231375971128591578202825323312441983456040494484034467392188784877161081919471925794519940034079493444508004339799088503986705782816807851977656766065757406111705851590682496928804285711091906299305891552614107979742731480535599208576104378875567660128113647816858197601471362475349444668533639357953708391104350203563027065559202405141886970328020529796905344818223220311419631272147108334701991401855962566966385552092341150929361022147167946062004329303408054385871657593167235404874113780937097206535724292406143802169967782144794969212869058710955161497956455150245976605829510873844667480561262912238227561981966008008534635983623487738060956117421173267020690100356171312700366302537058592617665072146465575648281130274038581865295974942972764777639108294288219666342205123100006063457759472634976024549420193058230456653547405193828915065318959097568079474048101907056953787244908403785759232809727022566965019815627039713759467215124977997978895703866465724830975890939664151683462634451710638799816682897263226268117801310335037863102375928457408891515685712845093288049048426581449097220160539588328164636554496154023675966038750514701824337769689857946066505771176358071935351862934480093332840587728876770257125584466802415119028971250889897306276528386586121062053152811952238840554323830927051369037076787959733717030981082144433223043120926451754659803183875162020979187221606974008642713605348227244391414933858930240891586007609937907887864087224870099376324519606013233343966758733298966276729003798524696378936214014875358677217192271545907806319833933590747483596324523858165232748223024571735592173304643658144256342470042901417937931308816257528716195271792698560849214467683875065327570805684505452828884569240433887591561612820775984423054578426041567958638436721827491326978076589178621968317304040445887762005906494643773247972352207769832206352857322998142957363416666270151571025298868280229928637994856021954973730835468688662733345421505514731462214194931087095807283022372617207272381221136674468654660679744057244533338340686820285070602773757576570590945938770865040274258706142592325365485680469778247482306521361868058218901718835746964316255452834397573710771307212315999717037877986578890507561762892383666690923030376409763805062982175319548907763881017864522117672473136910335843015122867274235422125762240762647170551691212099342201325587538392993242905711768798629147452708582709025555897835667612660958253871052328304535222945969217709879719042908854387724698367955385792279032964568882663705849293274753635169812807979905518208834999269975114429528855180563249588044161216911177931040760576902479516307942684493708828494536788194700883401805965917517584993056319748915222503565316270963045416319166397648593370453340554745370361952420484780555216957701268524666929337881932810036641214726016918384429583047340147131405758716151954540724974606352994825107488218306713331830730926373267095921817831082156906082011254591243021720778891040192783762753530990870876909896941015235563929052641204325866653761023866443664693804656060221346382553143534334035015251994213778115345622573548043535128790299827054667785703492575162200814402238302642354325939292950065762205873471326194539627543824148715764659372846872973372298237827695216497288914208530168718048720230299105174116240777489192083426608868380604053190565886443808712843771810843002548315912876271139031325361580320840705537493931243002890129467208490146360165677836558158512804194999352984459385310475992281131576816974195034642167061663615283506746768542060787158801146640900681030004164740240464305614739283691678243943159229712474365069081260114486309271134108459084342297417203433799428040114528709817686202647920426915028632033447747661595717880323369705829636565907456587439094984374777285533205004865870502892714165440795542947078594087051238471905188252871232108702223624116306438263443364201916051489093013492207583243029615588752024039714383966528354567092583289021865364688071070873725893366404920501669556811338182552497533692189263801609668740374135035227400898695036152908879475896605602691469629175235885174072522268398001844369725975605924584154030213079032706311716375754212534001054745651772466807567704946033528255988780726056637347778178393268928862628775421714822951435163792414146510912388160773682647654777849206373213208293624099890905437785861252937999266942384945992416548949904095003468064791863761785925081810606300342356206966905552107040775403698192577407202034819833516432889421688203518939131199600880908733434347003860615574350573373687288679617929304467594003486754391062002094122698448755568645545640077339966165900383788849606280343051908982507928140558130731928515058361788843531626202245131798378718145854177865329529611687914549756205358819231293813775077580832596998578306015155833640507727030731254120979292409756458790953846884488296719414993734037707176844214257994288997387822386784275705393338172808121817062851223258184434014478634526830169810236292964597735183353164230340010154782013965791639402924936084289037650534666011995922273476211065380530526439404550626989420442690745976262318883753132918548873784594592292044083901266655446357488782580503852301921091210119582269293987122221827235766628978134156074412044989548361912726725550225876782561959700476372759001127269313552803805294258204681541229511552844582559055945180645575898799733575241086847459511213093851359474390867996176998175033380177425212124477268653226977320231759087121655679987561166669710362865990878016350195205000340543952940272858845351834470214665453571672154281457654170394195633340732516916062865166260500312713267395001451550216792691200965833756134918366626618015182075533040388189490268956745935617700051224543639617405933565626595806926850906282433689953682247296438480224504672492567896088713316315704760049748612668458816017759332858425301583352759761726493811911621202756631818896135170211801208194393607394397118380632504660983511864687305196597617210098755337865227038195009687092809632577255702632004836448855856682290584150489005648073574893182688557877207950663649832567498980673312756620814544737493450149620678292509835381731579842054883845319652417328984984176892814854985712544526935970958670962487037924842517074926072211947633509078989129906760005242817069315829979775169028825927575553533893887914826392463318833690494622847256296994086250800779812224056749296936888976932238486635340268593594916560842617295673919763864373318996578136564524225045541662660872202293711823433731918034771846803644399620754048024134116429772560316650391051198265026405103565475460662419438902256217107125337134564839399322277202326994634129776569478242675653666554144171021794424407913376675484082926779007125393689296887938769635286095804770267811493051593011142252520773887646034205557557328302532035457688887580511514181832733669929821036696351733428442197247394378307142615688927583782977876637694619277065872371260287880833601489649699473579493815287138355390073462871884226307015680635771869248554055210580806370148935997662600704822199311620000664653471104752164771719650855623384962101520167126081426204314482739552531792863602992349419653568111065990762097854986652855071124048011633264429842936594092901881436724602635492781838916608826491771206579757565515719062574562913836985596549548769653664287963129504730924258334249622979801933777467836313952978586389472448808197211277953440970152864238789110659366735122093623365368223297821318320727763209355547499599101287401410962255367308108631053374851667945557090511223614097437374596787584412341160479436410901441712520465988720310942975695081350775396273920232247041810376915870281261065918861310408319858631750467774114987128555631852417193849111367211173538473091265953912507478255763616473936665312462536502729868620440109628997860039203738292162315819412511392819495657857843634208264194026209616272274252408887960409788248859936825723860583424230775925064025917108079750994136007235554953506651822253436834866554091331103103620158090363120489696149215552352444234874194186073988149816832482987964106495573420254319916935370954217305128128222880581660192286974991436205775305591295205522518587281796089429527017528043422855348727777118840784743496690331390560706951778228729812563109528269483300108699821266847806731389094728912529611282382719334042684292490634192705038638195274162149148787251660143962575921476985069316975436795737860873119727096023748543059544050536940796219791683536542117801653586936259881490012043270666145028160766002070737565991116020806312369728823760793242682855095256140357356148179933404593585495094385267487291683458633480568697220691056840158358786225063259727448744880283357590966773599288144099790474961327434178314266869157631760255121222516176839008105349157178046893977245311191710009349668578211669243627012246824002406866390737343037621712907934444014033232491568288227909895002457501025754980252554933187621846819975168706559100938369665599889383331093915586186699351680280752267791849921632662943900188080604009059307134628434908635052033391888933490833700569952387115717954400843304683827374834027044757663838466138781912987537361285872659878227385795173923386863233560406633435201056146537122923073595637318553253648583734825775522197592456994735608326959396250217261540455998288889189963646658752240928545852236957229108872336977718533343298143050517070874751993979159126934575662859191748695628261177179088793600083306212543526132003097149085617399792177192822707723105518565790463216932829389976111542193659519961910899507011154110701706483003563176997504223334330243428717189775316850344404741502641657767531857997885670328391773004423934719754676093723220888540236892633645195772937212790681816715958089507556955643944323258852601402901499785741417093495974508928556799415477760320958363211707486170061466921606587441799797349587797077427544447459555650348950047806389759877721890804833552035126304725827357192122440909860698468378655720184516054650908566845592388070436463236264838488016835049461595110983682501058353969406477946273756865264176319527630822129665450397805260836121173292134150605492995124793179476555360477305466770686402993320604907520772242511154798587780921204035605775625370805446263186657571400924713769644436861300630548735361702404091663124674368559475982643725081822987997194296681258866827621749773471623062740299297676783480440236279450579695153718651005242884885016072375152874691108385639096003475756818641977943543613435590672113104097860755891377009315840759529118198937132732847014952031214389305523788462828849554947728041664176978506595265497995394581051759275840835934413988099286600324341177086443551066652407846232125717630000525214482086251261013666637320516126703577555153700538196777010495810954529891299491037940765294159084642009158255574269846560023327139973714729546327790331793763720385562574951875902003843706891999129033581741822261935940355973949645802355154592193297787879144029014562983606280039341159257221391806312510191524875235466999115400169884866469534222364800601323161025575115020238319666221474813574510950047378768779371441735118925018125128115736028210899552289818676635076600463159110768805747667173143263351220402285074099490326456368298841232935047262360529425591925116235761680890775011255764109135097543498328676481756046934130670842243172528937162905880459597626846177267748166922131530509606078690347777520831959197364294638172362746727415343795576507857293059152157246233826794583599410354370266866123249264315856585166469817058045467840457995923855355344141208108335904934191286351393697283321499911900894509463875730738872775340504148460825927991092296925105352889629259258099302916831908307374641588632444671654632269971353105343272737895859220355310577362354481231526182987536118953598777351188819426207125950704844793339895008567079565841014108298557574991871714317162946071906477470750874423726253340589153858700423451084447151130519715705218946226341347515171091565284461970236017662319615384153960920682335286651881397944394154742748673681155921387758909842170015755644115012837281463812994127279040114609460172038460641101734420745541021200221757292514607006976597280250886536416237979997586416192041558343084124687627404244673849496090905504477890420889816648156771778830189118918636041626398183272237457147551472098160903947551400006429740348427783020654060617538748708022869600841172663228699190556106800003298932975342030431526084302284799386356665935824346959841605651779954429241410733147383344275829559499000523579804169765938684725106825435773918272391577048232230272331462461026904015608484877426128659035875022743686704706674026582626249375347338682367386528606311758349314119686479684124493572038519648170883645904908119330141932845889624488867565692043429517492009840270906199064728278730565668399858838834793826620288648579771914446367904224790311795072480540323264320538969128902439469606253422298629270972705471390968415757082434021125936106559318762997475218746661467071302850806463243932626752033658264118702084249170554048375209627230527490699287949747119951711327712475560598637345055350005066167540241461598528353578402480283312535833841590275827143456489979011023652758037008466243879991653192086290458874035526301491816020202156310261832440262894108497274018961884765725943149352109090880371479774055144367221100852205619871501912537438239924889426650340058560388516379955634268451107482903602408972633888915369223708443059327360770973426199300977396363962325045534214775378675344305504123853734931962100780581206156442816467275285938546444817636372819538073663075092266476669212826036808783660893369124702858393062305902802344952100772486787645987592505206261001166639892831032633775295801364305274102545906292041040922072147288918464475989448136191342731874381473225168865601379183362047980905346173997634585204541211545429044421729744693136427651408155027059171067159371645648001899725733145246908062246761606841522649590938295892023368917505303862726902626715019432457058306119309344253576546713164155030039284169941497942833568554706334996120151660892691814663003564606610215275290664068543567648637817549375256762829744318229642181050514421780625462782216890004233884000588216737508989005173332923029874917936742676467201591272625209515457495118412842637104662135193133401387852945630130049392013837649953126722006639557475097260280267426856972367563120985444559458833284855657481509981437815023567132665893986809268863556953639929563263319607382377087995647035132968389799623467937615475940512252889177281846723837078193102424855231781389282531066647950670922871338332052145297832262197582217335749284854153679772280806476943401987839839780807580807996648426288248481708900059576730270323148352259109556182029434485539212623079252487339635848819968385435168809862237954802871681245649642357638921060537125246855579505604021918554155430812218880356796227984748312812846413732956328186806037437697671349460142061442265114020972984518642656956489525853371780870598560881986305896088948945711632288052937866941104250194490080087435641837199263864320806871162978612618944747041391770787690064140101216456499449312315691377138266996983671801816698523532222157880830719445739866872743459948732133063936388790387517653279173289948210794129471925400682113741890256955524851027892225859097023112106769499765595632430253720089430656756303475437488156646068171985919987429168132092642460844407667793161021363606742940118240005877548274005854724584603737213706595861902760597043007145980793307028168739941907763333843383351760539782265081196056645448134254367884016777109598772320000185458080260968044906462424029440513675094809328787784856722923677219865587149419746489881229631222963106787286770638670777385464303161633344763674339467368372572785066591060884132839459753496495236334274336470271411388014570900192583114337147834443545654724941815433515331460590387307424618745543155632558521263919628820763375437703293677783166326147118631894597597834696067704427636663113374523568302337812285041557516310732587785494562718110273040687725099917782890472052468589561821041214072865856285385199433282813885550033919919708281204982543702512798649013620694951833884509963422869217066176048566354095887774360492858246305202339381853190051721675664374388371757702279965546028431678714466403378999734691797523410650440422370053931032751301864059844032670961264285533080932835698640382963659877049885809133028218657724578676938707302704508551553395230856421726845387232988930467653177001088773494661899107372224709506875684338062830723077043917091374700821930486196562171463477110920617765919407511542795909603642342377686136431264213774404136396497219780394291351880883337113135641022707109652657970546099687699882570390943832944062415408637529877967500008385190128635689920176197996001723219695988457639068359591286866794374173831001996540903894378452512268934072249425388541495932333323885250167928869548406210162491999139312313296529202368881146199488439213679506083447026367018617252526030235959053569481284206173036622453487089409439596802841986964826176521927261167769458765345188961516504017388067509728712472927905982137597497812614236719801046076823011923156964318804687156101571613573299202007820001432419884864741941134936678075366104822694070692998025354198979956158658233333777012076136184317478418546342752115861797663757705075546184086499374691053831846103238920246824919515540896589986231665616985896382635930866946857633610974383952667293510570977189978257064292762439675822341521651358863351359127330578941633587080711341629853747048982759695690883175436313487139464026214653013278810376910910559846827889911689952716550104669310758397366455472740235938507070805157461520320616911692535926881000102471926172165379297246556471129315820293589178383864333264084368729293440238814805371655039428874615633844770715820444508858020297371983379487122082936097499089928217960369190592633574146475368935395223517497796691670615142449207157276356261572499875375470269970427335406745925964340643209951667774647110447857391609944934056521157342645363521361855340903711338988603314756063223071326572825599544799675103519518442886721054451493210504345117937030835754436373727288585617419381174256490656255070141096903086824738812569539925305282231131969087052757807279317720961769043901220165202001655924988471245480126473467161666743057341601003108878195860862132142728652937799787530742307199748482895874603216380469412450765578264897922975481173921681917352392803050959423652363266201836426470632840174395706490391374599912380675127801213485102403877897785413156051297932466507514875498023595674760232022301863083957032887253817535729643207571668847232465329326034217661889594090542397622081333575009508569683044753610808347522882357803482917657156050800829952817081352993052059569723080363852813845894802921712447679278283083491557226902669572570805766768222721794413309437965865922174073731544945220479161640944419568279625321194373916313415951702449041486849903252251172859533715857216571191573096509961787251356781525098926386526866791813808073675728933558546446459908491393311837149833433551159074964705661467307984678424317407602320786460990187973906792485812423199322315524588141997375556466870204885634424370674013372660581208158455679783087720556454638582796798979077819353021417480399696407541458039982081274351856516515505956217765201763229243039150065212700233382544825154563799811266476292140436909553445445590881691025392395238831684962041941658052311168213385720306526236592771083539664809967989188187764228511175239380642272600848465204224349542559957651789012368027051312832720285828544143779770513821770637693027118582850389206129968088864941548473446314655401648278182041686319327009336703855517901782422460723485408210912954758209100042194803353326087325883426262796971693218682231740557888483991189947590625703545139488072901323613696817385929179584962269812093927449495962820391756774624330871072143693742150537897315277321454390241258351268883199900242796121472134936367032459554564566896938441079244731597924148023225682011227058243237445981361144081142212345513125126122444578527209714961330593279542310780342695260536680459853022547819197891894421125530007642366523012844653078570142390602535017017456065213450476300424472637135242886746353917040945417596783542196863017717950573600428420010617442493143115714042587732832879712157021162324433028260373247085395617749853272264171862483656416452644707843412961757857773356148628916402336719918985654697224981234414616785607271124907672166122428148107957384600031720478959778699913689559521903838493279902875863766640118963443463950213530744090719293561794385585981691508529299683214252563596880959317952176372499752101701721970931763612565741853062019450349679021214002097568749441260147910706875027819344981948929274042558047733292645540765012318844532216612481240586358420970403402801162200144129987165667423375253147877796545409086842204137634816302372401494756763111687805385538154374711537637025114458418439915565115866304419752335244781785677985941918665008357596055607176069133788542328170742354711928581653743915883813192536192849678115430418209634599411598344770417675455341118630226769787356371530524479382990041341564073427351997858920419013949007141437113933969404905807493903020348434196387554722590127165529084451540477940249441493951660887560500261004660075938544128105277283432256558128119051257236368895860042050270174846035121444614423686097044521630593186090081727360909493712473016869215803903776055424034727948656377416161146183907186905268380108360214319645935789268566873697198266767151056342449244944363868328689373511252105751926149289019742728926412212127540498652088252891839252596776738374273178468918869010931768848298556064784400138719960808435161524193134215767196286908659247498850390802060785988891522099807358899810380874495022551755637531288132906626571059366719830304202916735283630383924643421060009545923867665630634082623451383851836046182567539392197506251987110182296546685901522439764684657260369783880348355288322692148497890066288705760815350177769023702306630553867014950840770643214834369395936935039092492140792010933351128282460829285122170646755162613930878989487112893174371298148587539327968838558550392390709163287886944764131733877411496523738265768032312899483810852749124729204391208302490072845545664094155266284041841747196220824908734641257085528851377517614834469239327621319935040642682228543637215493428557948799471117595201442091204882262620136384268377993660699716653661405733344666730348870962690780626996604966441825849673813123761148719504350183112601766090357208940954162647340543529905800644148799337811247161737391803982665230530235765282170956817428748153986613003451666024511437989629532900328201593322481447000138787410410747858355678149116548335732840845315841269274885167587057416279376454410750398352663869162796068303373827150749340584056968940866482613166045156189484200018673657065415762256454546375501984616164233992139030396520694381331082670707992804206107347255226032603327227059892892144192722215292020953605656370187059722598905789052793627460146100705121299802343420010784638480377474145875063945738575273506289875401141221456665089040476441689215769459624031810781270468107041784926662643532178154158735015170677475553679048671885072806000344333915521607039244175872536362689267662707346716457017981678507708640402927552781652716057681348169404317425807366903132912637932612330287420504517944160033002197943159367764700684669159972855856970667500726061646073873778866149310281448853072959184900586843695900441274681363703655507865084760202592695747944567466614968908311487705705482462348528433039789863022353894156593763477675463849068693146028322468618478223135615051316124617389074543059125319138865349893493612341762040718511689404798276277534811364778949186536780730007870825850998042951434016032139932183033348255909936746231766636314167938789406971611701905167270205517840813906573019532193100591077701005844858794759935129483469855476328147822045038534046194742679766492144069130627474044453401448330938918436847964729083158220094254891381805014148331811846215537561278048501812754567464071341374207222663653706585481156483785682058958906113858260148767633700696167811552631842589213488304876711232907110555278068068275897632551214549952335874108163997667389927481311834198808471652783273651277744367833640194709469036911396757220469104082237191111085219447603947694452451204863029937979065278089959222658449445680632276402327057286661470824994088334455812396955114062788091269079102843781437252396322043794553208670407874840017055201265912337840629665087714171565509414595576581875640525781326306067296244526492851254557163550448970341734060172169728811280636967925082946160563009899650655332477027920276653757283868183076585348199001810321015140195712845288196814372232857910252895088142461658761374202487018435882767970712046259140366393250525356789178750874363453886742368236918967486013642485236007218006499968840367879539974471662442193497060669306553538604609966297642692965709309246681627598165344788107903015887090251906380806023042515506246110370098289313530426811979758930553059307309537782505446355713400066952157869924310424537918577456575988970625187302920554046883334054658560124204583412282485599952896108921449931223619203705838945527262308032614494513409277231931689740809997776478975942683397762230059301587157387489057303950630128513135977504444406360246772705567504922341508419167759687833405272361106586224841245768448436785944803473110985209741202639379026447334733041717600893690403536015825464941335799945546440544018086424886967287724550895622614332946288311003592245673724115974127945235146171989192294985238986052767215375476114312302632578674187092001304906058171360208159807092625002234302594409783615665721627376680418615187798467958868132026070724899157929716261319239619860142863911458054984937572496745044618569091731921018965414093484271845177126987331302067620842426267289949948682629145461852134816147751843354612195677921359582324481117804855640867949849740158177677963005959650416782454523459106776638934734844637783165420560895238316617672236576463594298333569500310200555781205080008914838958654873238244304488365704378838982544040616034918384973192743982622541964549448049877182531873626126850987573619390416929491336618209743983462908290079115638388303320076383202524332926204816428830475059061053979438690169998352158063739364912930175281474304569607703133464088029826404253849727581991511775699680892355801637963847743622766125923063530184978997071291186772987432152407269426981458023913602747114467774422485052247622008256586503219866765600907919254502410386402584453531559330030102077954695710851605145487625467903353484796011539173395845051421877958476135743336017133115875283425120544716367362664507962807137381682483495304649454769906025194195311258494419549279312719321785124385677268285224283246660188733049932011993926958762289989430919257226267500189810065727839467328813054254300619840906260134540809364746221691065229953752071082904817089578621033548099753457619134423597357893679340956749002701003840877725765650862565354609665540331080177463185981710943891954571772013273389355777656207354348361892517866333304756988406819283828546238889927919575211668401889220793659909140500181535137930753614283713538575684862257106861021939111499601821292962732413353514555106051614279674166999520442394520964148590140050449709043029428037065072536912118386808455509474156425943678626799293999844174429834130785595803564191400190808748899599555435020105521442496967423761003604413175902680591962083995253517653558185566771558110760213713861008716515387571589793142646124294481709559405877169366356705734294018116420787457284647219356550947618121218585931557275291843648856299539788863483673770078758089073495870606244455446581522613544181595294166610766858739418574603702652451850062760905635708188838268207038416999975469111552783703705917204319432257352079245540339855568530220909326171131028165500510742863360166225571510155783153670865131394432323672211466324740301017839345008247612811236594919348940614895109753872766547095867244811963047665765976133275210026640845803576251434676275536165129652786416667843865654902016244358724588271905142745734141017459318691268149011238705369189715610007410484516409809901078679246713128234693172677964048848972431622586883715475285549105539677568672118071179417874323840503521154351433549729538553470545838656539775361863969357320037081592748193108059290913582006127970850919640701789696689898328690778941677733494782654220177227377571739575517572604355759458299565343711288847594870129627229383893085087026905326532447505346424191285461130148614369156982314322535189602859471565716069035086014376359005102730239716117391190577685369190302973257843524291091210858885801735554432930343147533239969757695124889371327973217630579933931177891413329377374346641904466664437323445179539880467521347972059054765341322079638969193859563782368568789983593467026373567368761662693496864817353730876505748161090128590818764059482453441042517936067994121128929798464212501932676045162177780140366102191891757023204440568551895472814377556806821392503238336749119647640341190232655420690121639915362994843891494656137698463404873716662044670137466865811106688894465470618393418357065481724091630113920098706178150546958180814986068938555909564249344399294580111448665521130155431862702182387789766774932469075021340756766840082141560554078001256164666313078361824824693314504994117060989842436658314187666922133808207276866965749061160968891931138345096362228167051385714971961674695803668327941688942412933937816694782835949671774433554286645840479494172034944824135697002011506461053322788258002086606076559433020602216440586669628374493792713472547429972292811450167038818321417095433002490707603199276409648561279565284648307239793471086923376353134995655842102226879610884403844531924641440757059138523505419443722497580168977398227216511836983892869859380412670911556218521653015900179405551157848835495155865957067383533066810773598064985321172801803107493667380218552622014644496859108256309934270976222521689866802699539500468439596866487520019692270540058469139995669190776174693206310832051878499834662620233279374983643678958432581089034981407544353708631860901105795415968015938946585477161985937100509980596324689476831271869841113388884317845797640387370574091177226098451622569126461462666346924802184703340488492696074508643622106317689209666842867099270175671740968535337734779161718372374142755411967966595838076478935578206608132636807947166353702299697066427923298645946873938747183315662720002716754619867292203746836165436388759306035335081457188962637902774283938034313897742925254801670951487218185890505424889908522822496906807257919145681597381947675368644892055618966452920606529733008911386197176819374806662537831123870116808951734805763157424344461261346610706633808053845795652590728941222743213061961924281906784175729419488505412740564178453508433084933013947391417603249879084460831173267553138545531603218469219518375701358303926451988620449169899419348692196984284715544831777949946077375845824818806476713835263737935139504421925428511363108760345757838171570689026584792173682192583758025287323922879912682232701252618144133456939592254194002745673412153540068712262719021196736025150224776114884257987715182485909303629014969920798111412484306267971778452145117448307829600957032833515287486861610811992992018726049392081564802931439715394620111870939238956665597588747530216425957957321103446552158882060255682992625526055081353117716516506861867589912008815712404976997952972616335144928828650645686608126990114721780774028674774013157983551437576671325079223998448072588504909905342869216288276017744849611204480909750150927225959269238754666457164914014417688307918503004082873283668138178854972392566350415041840507014088130023884961762634594584664387553968381659985389978232806435800529502990928011004823756560594282550714568556206929857480506615129763293301817834722543008082798363172682285629219699613270886190161056211009413956705727594994137178292602138772854261609943124813565602578158282280903618334926952009045520873358735076904316617011467791133932191519481236035451530627817988117154033693584532516345907743953771677400835318572130117948204672112778681117966213023240572286126980368424213387074894159905917595329485529614931961115251363994161428024104111079835129943294105897409456224395498982411402866124316970490885113884197078235523804732620244663315509052366163108173548417911425495191421465126385239451050205614720515891057538041429627036092344879734471699256820630429388386468098227978041583331628118204737243539052978397638013718949803556782031242212700863872460190426685380744059886781814869327706769255832988809799704167324032431463031849497772497624458281185833669368091297543911766378952024888938710488635755762385335096748888233658894771973906863584987413969699797720802135629994688209024973288624710726564229467475461018904922726724805877578678425110576693511826920858230692378096324287177018025608239750582467151364440121874605989551679938425976473443535886753191327050577320187438184499731043077860049521436236700194935903080527597983532612242677369454389306072823015361236252586008982654777357220437316092208838651812381145671472459730645663484958090011282141712007357182727448136478552642329326207360835868291426749340418722427647812681298731250977494478254440502720380131895956855377515264633842055168545991809161160372302038421515116633477706425833874041737729754053419723090404721202979003287608112855380951554291317562055979206084231877745891371654508147469059383320141081135541037766469119777167200526421825242639880578901235859129255853876261912495744700327338298640583754644212505731034504579859815859470320035183759234448106076226309633344363990124897595620991900792602162133493086721116881597882186189661271675817452795656099044554563687645413576918545392998485760172002703576800686828919212701904893314026039877550846017316842906447109773516217971355394529946426223097900407888145336751407235615115597300928102662636793484980229993716236580726300183187631089521545992332361054466252137476189871968214704078376517426004243910691227051545750966844158758914144496589452319175085340808966218450201081720470036576079953170601794360981843652590987778290952729191822455916039910325330849270896562740105786905601852514278812463908079739088288197848690801235558028376403534147148195537778346888925095149679028807951042571530913488326432418299414885133871943286483367061260848371516386224453565216523338672075664890325818338755422663384980657429381056691212296699954370852754962892359928613339653278791574761639966860043318115494359107198013485357699698055625822638552691617338334313969159210391213569935598464908835653346676022173778780612783665996200463534136357655911635733730923791127655874090109091622201563353178751683415480270982852024906858004690780287757142640108852428487087928724205444040059942714636303716125363199190951751676792098015626501773844417428552034613160590494191371085798820564508794480982487487498204532098381288937846207834389120763199582077049063271046038074595701791935122749478637379643949410959607121967562750086437211490228614302188320513285338352641758860264271936240611757005541435283335782926630290372888899784794565319656414523971584928539055558825746348333784329384188015512894288199250806226183433808512332500055946912637597039965316361116747594939821546337199897329539874321941628954509446452155396769246749281781964684142261764280652054274454818045221074554714680144275043224658167206371739033833311808399293720369255195227322489714281932691266105880761442865303808632995349082225978599697767701934773916622439636106207936498079733695701671658164769977878638484672665571515471615180593297796875910000259437907571181551703394090912716931095279466106454261359405029685126026416951852922129766463067313194842789052459326516786912926213256633730683983186182225134710976379569675254651823892928440120625447067908500092496872750278911551127081114504817561909821612822738426624907233644967163791812901422114661118688122253954690560159369753107917878752785446472247942492020806319930882369226676302576268154700045283112757532544635437206909500566986420585816199592201563689278781211499447550627562842936099653442640000321212276716389018324722668441158922807036246114714493688866296019385572493882697233772583075356708142783058868805430474934512384420103781528758599958559147534610608904757315366118651074946364279889374492182402718451946960495527438288531905828959102405138665386149547735105956001246732205537896619654801195694147462909763353338253864305234940465704927164868531019168036122540095396183300086908807055855257961858682833169924060607339543592198415640255816645240873611040079207055830432709291773843416530070817707222326233043263191578798865934074224915727461332562884298753298135701691387623843735331237794991314860787767986147544002628583268744008200358634619621639641586474340857123718813211597422435411298562606028415560161578842879420812496486221054936170654777903924130560619411265065832604885410995992535579501411984854009069762225302274355112457336835473428231877758314459867400418879635985988287033523937081718610185074244530873270508678347219592708226298807239602645130053702038842933062274030083235813378393246670438013614934993972416612063767788910808168803731769515657121052109955835102652820385137733208997050363551042842011875328756079875794516421356451517397978779943434569605048333180238889496827564904823131308859486897954403541003496469403787017922662362735586751334205337936443182290830977993530633065480062145176660072588271821055834884100853596602212755565347766697612521162749213378892511252104993544432947067038675840521865813847524791534290074749224744008391612740489306328105278471406656216813227569407962258646050662049953043314402442883319810742286978499718773098036020931286788059260827874252668943364742336171602137384130511098316015286797662026472620362746342150520589377057776161036554138763939898574039810447258353476160428237802353464910469263132637233035892265016987073192648039308205125049846613983164586424597503175655336062164992249817680110471095698925463076497408627659198494098071031783319179066376262679843837317614278052977343793958165389321146575438340042116728701423370011963353416193236084225558890851414784798666771853716012412579936622979914490547152114413491631192643219086968682007260839673842714300630628916690995999266047378606690896319649973954336511199759610370728948600039490487174646111716308627446327287233198670987006743336436049023395714237886516265743798647042469586071033902631491272795501334657573028379336325908386081155074160948161793477069703654383650069887431234006012374495066557969462443585708275844988631685674898059962560994796957273983667586997531191528059459646509861839340014442387255155195174997808028282878738924814654932277049858026638432396040228711923429538974219807824298807261847608362187793201047588960254344118584262130113739441736822927441181443798280656636312206294211417386461143203666820367955731252893309871886699882627756165576665275671574883963033458748800871688074928488913995208758745163729081512753223809472239950790013629220769199868510349130199818450407086323861852155832838514259195184163856009940815793365532993507169548635941559162990653783148745780436576466288638822170256918613769238791606499549612675929256902633955729947033220025172735790823049704589820752084649947690469091895552327287731076339710179409467856810367100817495329323382586610665940994130861716234879210573382746445313689812601791569509829955976780859905821587699386248203677966205722115463076846207807381510991606890911439993618642516821800173591392785665574341833670275655496488894269944484180949457213324262766437751821754151136752855827063548252435819196966002606690312396761415029947068634761167478919887727851081949646571659862675783540882042681334920438174190477083401827045266066261778863029095867530068631231754035738667478212089423063270593381226632750271138397554062920049693008505328119680744613627957286320261961079951120193340102824481455852169335362763986357244311734074414964392596375171309672824922726846010189582083438653686833967989468867153079925736473986982350953765487118556709040283152058801380059313808340774351622301059235707133164706040916246138489896363896879612389037234805720668012299883593608202637343286818854544504297368756137313522486412214130192273536180026225891240973871966595939896955443161469383273296830581050806067383456292187649742919041250051543224475656605631102091917074467508055178977813839556245794682008973629101337306404067110419839060030230167027328343764692332471866500911125216237564370221937308502809602526388962508146909614100298641032090584060383299266807033460386886031618773125561929927281401323128460051857506612512628166867892093639328104343744182055772472361296958719258299445970455214919973053397250734015401958436997935340332052966533993053517356986254250308153171227224052283956981741400411693020058356998049340846614798833992273189783854497362826492489270341955988955645356570606822807358813406792385181408554262769507419895936777323774130229096180033093159976388694855519311208395817446305799439146273074450051260159426869912709466872997947419520878791943870244604802320868216525881310085041914611649930130434688881748035329402542464486413889430572305474149763333387698248418860980824182269456780706387137879233082312912344603228964552931793629707334428447709232644240448482610800921117923341632832085240374821415915631120103399941504192069818628184776020928271778183555756639449296986837589307752872093125340180253480128629410185188064663414549176733080518724278861473632680012719185667998056258973426718856188577238532468753220635961331455269166655655449012409236422315310316970461723976030758832145893202952124117307461792838146890403828804955231160724658589220659755463724751407863477237264440026322035759799860281379707603293438317788555132816999371028313447205959729582914727016706197394302268545230751533946879465262451426248909577716726418646150737673022306841577307777455444480864277375446921128045120634829916219764942244128710697707348021739230312267099021953503388014170915156161195891378730395813796340982926360090697386947014873200845487285752382164313737517315768979647985822716616533426520360130300113697251417186941322781619223118902640457620800266695586834253917931664966011823353417823078876319278511088794641901753033455551929263019755231397491286259972513893476965407941444836028002369127943507274523485318632866830717638904101739907197154412974436074228047495183669063287420099562233737018339417601634606995360879523559602716217626308727541092614473217064884023877114163114687634597038441290546033240856278981749325236718625897806040373105249170749863436177207608157557856059586506488309961470482608428529161688315666818772626251518733085309076620830049674349854272757132951584536232235439197337516394967321302854862194837669018925969642797682301878745546633731756229731604688838168885882346082526192460091344820711631135830651243019395695146372798481699796749251903763791022099222746462044574678100631873657854273888169488083925523441829366653143747155177435830039872443661441263081104278811468460379409256666521623462674822706309104024064038116777922715782766121453595671630825921849710153464080397155136956718142757008976507525880866468523270076973015829936212381660830232979020172076199200889729005249989933875893306706099938740156339894801718702588995849437561996559821749718436287468490777405414468143461680779506870172343389112618357134559871077867730055110572837846576519389367871744591608767400920610109970303968575234268797874100192367790704342528970083566972355121558478287048748999473453381748213411945957457582157498248966778177952269784025902344544476147039733892447335040385642459674539991496653874370707545844696809779279716931865261032558691778808800172189727587726885829419210209858895509865882189641515281830298745286335292855022694857625134506419384367360815961362697630140885400186835272688637070301558743707687280288481306070294564738753271349759187275409194198138345041813227149396336109451117490517245384037622670878008843975139518869747947742656939760447826490291877623837194700525355516615686545478892627324036041220273629127109831297796536346324717457808336869752370658876800380198573598257724735199362939768517804208025939732997169496230404161202703057444739570877718032640485022073597345636259553504730367326395736986295048376425980297710111355728610038182239546444976955239501171026145986694593369676874815429071322417609917971419035369496444855641305433043083501587738519977942083497749255242273887440939351932999247207017258722526225880193366323928299742358325030127174850884168550095227920339141744467002280257792851267825689409675087816734920564318055710607509249386100907035194491517192261682865968167491514501529189687349334481970599182108832733776108848694115116668438458808791823115362892254811749316480094192368254202641222379923257842063505582668290989013490891162892728997429611989377725665433851771452208934723016352534108300404602815581275126554000577150930452686375277530016425379644050901049860324582884675376813973432792021340317059495426532880623798226519051873159398472631739603085486696051061682972629836972596962691261766705946090886312645356846528043324777004585699881045502245895775122228102110685883630724572962678368778302387065619829869742045567050506307701893225371973237576118910535599252638354847038288165770110227844892514501320212094757651429713450140390108968718323265405849045681859761940784006480699653817036262085977768733927608903481954849663673821023321836681703240177361885624298542499118834221073778613737301853158751096595587975414133219604457304510439527122943820895941332833686618795580752078932977154737924493585628276247870835917964766234459917213224953855639192348834121900397768976263003876460660181444278640968740924143443172476943316254285553633741043628555841340665937638555958319818380798767328714067460115002568984857788027345507649441457011227334532273267412626371512900698746511923276789075055658024373107747563907036187338196320768115449610767410231471793280321773173125549082234885654237018942268833943111062099115332498196001741949233370721079668872809165095196007341062550530639332773944273914140315663191966206690750858782206034697347287791998285845796943390620964485325723940527109389351237713832611040018237102394924478196101297678999338374641458398295273060434736443119543893901777164961767665170667723745020519851016318707447777262753285637952099586647248166570373994571304703997283928284253366813129760269426577385390309768323475134063072230417561068786776051101737407242495026363224448361794892934495452996023540579554329041422897501229064782401311207099242462140126512626525422316107254379321055852357127241260241348987829363630461041062781372412043422438498917420951983157278292657750420686881129362545903023973864471798611994920579335621717636068623298451087022004235551768714862546129888769266457361577836905207225389489941403968211199563611856011985554592743440777526330803323800659254684831409690877416493526486511712055789191116703611472567976723952124027846236933086506074703555718366164847760183206000507783275944875355417754119094457099677020049680127151829299553915267549660255579549778497004498137555165805860630197346728767776801889499348709286540499490015395537988802464046431198667173619408034343640020660806197222717671309383225079064774354826623049599062095106060462114812574847443588012359667218479014883264978300568921110777887250388604022067888347316419243881279428061029194735277176124108716136157417747071996604982072015588443972706438800683117286168958556379544069596634180271692769729769171097912460040540485008507981131194290301791772026912432798813795969117041328571075909590445339316788828173262711846344136893581068970242056245262725661466225453643422174490476383601719767901307122307815620603971241404845722377952808582476726339225705103042432001696556560718301656248916484414589379371002932022370593713135030656670337995220801231673613001580575668246142218259602658841444840568629143800855214550297847052889714169631885657498069199946027112189274340289178286237925580707246851347167826460761616991394692428187325090207274318230841688635493052961995253173720324331933164050568832681611578124579473920063093760080276381742329479043983292388595029119692259824952086702414941874103460535295510444007379961543277307453114714441031900427585479180495466375329719935704305370980454648453337474034498139310759492555301450634000720102412356963671566923289467620539479189214875134603185818383571800271881167036050152133128566869170695828860988023924920535621600383236559538100477858532170097513974761605627436151210886724730982871825486159972227724899194988402438650734095980793477866947830323269268200679464765751873583180787520952063844406622109786561195200359501971177277384415797508892767933733487260518831167613337747241781747620675786441625375778459674771870957148303678159479074977968441195624725945798607488113884487452536441373088748746448989225787261811914268790566102369428973863333097274150503942902751537496505695425779186427408858289435373305830681108751259218862509777562088094102949222778993617091487292344390769977603250970327005969479271943231537399498444443431240786656829002810911714197280428383456963040760209187381907622023493096778078624183131766422126589083428437593665535806672215358155605440949106877610573065520873392015894019481076558511644418726214477010567283366598214844249147155676089770975369849655124484759190208543065218525298481060528485767132332109640477667197142783345330281192359127276472853158134522018958744119771684332863055637107363812842621292236452651848668279936568247924629963150221789265785611971748660679711194059490215656990567051618040474691513144439133177134778181796768916450711416841699039593434464872608591050064423961338464091406948880313380081731206696395756655090734049217574644738617107237623263255246873686584939528549233928295136152509252386046993632722734678759578347853554328683137639212902956409222890083078042205763312267222216733357604262732105304037939297039137415442287966824987802320951355839026345790099451975992541720073113741854216929802718995519724544595069818839775287625011975874276631815875353267342465016824447324764932435691307085527840422551166916368900789140640698034736472252643296989201591038706369276226996638466666433201707442750241661748278335657364338269411989428495334182405414298553287920663854380676500041015528762200820500080727163179935574300266983329137272674693643589137791041116937600918166182346868530255305701338067026665475361457136294033720522632518829250613234288434167681888771166689238822934928098413158119587369996552615709632307310466537851631711694859847807710427276455481968143023405070929967976505473813465124481113926008589881233247121317781166163379075508429424539256014905821238078684444157208670783616928610918828528999252501013509933092097850014552836207113829430885188949607366787795894569506384085982718688346920077937402898769695858809831575754384477364901396018328071289168178495748621847648480521308058916443561517426329600767152562417872422436899738198473333958056332047247845195257076939852371870196170122987139948672629607959480025931705893042692351900930158134327492155285305269638404524943273165677612517211828207741754600865384505396630283526751928375078215098428398206593762845655325376409922788815421502369611309244192992938985865397226730839960681619231686052999177735409155489893470621480397318064796145421997152628177381103702090931923250824516425684340671831017602597745345144273518455305779660803171091032862896709165540396542645387896556284173036051301633410709651496663999240431819108576785257278202880079310879360175979727555866646225105538008295581490240037562099096020372097217970534649520072074286601879410369926801152207859351041875677432460396954326463627567113989175565695495304108598868635547917901283541980483168912086894231320362756302294545119251103817885331370568248997152409789873722094763660569301357692284667967548908344732247247128715910836308172567631317621431629986702340597543007473563661690029693876861957989620905402021301132383028748919764973541591051859053622497301029443002982779490710661015156758191984826734708003152696577200565547030780197574099303206264430031140738928301119463538034065612132692872983753705432501754133818556975175314591712586905879226325525194874053635516109479078771580767824833248563003100168034186169800894686854007289190568579420137850405063054657110102878704317637922649151354817448497764261407952077403930421798872647122853571151024225381943011681001822444992239308111868256262017845304266906496751905951102281517031588766072263981332338221051316503595401684617166601606253730049427290672543263718665105120492047681524408342098364405987442040698915368131489460921837141046123137153493418718085386175388496327938596143309574284974318074197426911716165148871911006464154148229209732754641489888904481453546161352169979707494331670644999269138866122738729502854464007516445924523760498811098877657943319903180511236600888249485222955827631834231045367283847876098050199047310147191060039998461936379029830779542951004501153390354591028612772673303926330388066321623557763889226610626723657750324109805441799391420389213581182866290563295703267490561035023240092957539439809252516652025879131096661761726753313958877225928278057033105424204648128391171874518767194375065590675623245408824709298998678264568472071666048474659339584975395626279392779607690421172022438950269987287189517627505074209186507576824056672998498964839833574046002894409075838041618498728315891084288246969932587058009402556669502584919654294259518091879263200531093070474219689978558326234086005111151796992740286886882353948001953013801928229025984267432493288992560973677573437457913145638015156756001161132912366706684749828375420806411281964894637341588633023815342753500577335203878064645813675974924902919755948300817147132260021529348602304747126392564723262834623417094024903500219707225373650519987214998015493025587303888673024993158695871482947595759413496685553490199861284313620149374262529219907698562339031004223457975507669924609442089722178608702936315418379596283563157432470787080025866570117440173224299995866583786582759166528924026849429747941145168826507293236885998928762776676900354622183722596785955581048000047408776962312230949837450833704414784260974591918421000244668226103627658274415987403131381946780791240716262678944994075155628038662954970877145080568315096987536898844698199266865890623153198610680149422979830410740385233127937738143575781369942582627545144162300664618734693492575570372809897914421491348898179678745440395754721422646643108882360284936680322553942159549595953084039581953526527919769810927002023113502164840862268317876517700320490800451035655249347001972924561484865453169727322760156371226895669761265317695671885765586285857819007654214614192253893388947734031550873151672634482829281497813658045590708634371926835151803453793904510723559714124001154059839091001509062975740687369958403180474141390637064248330920741749047573511004756429793661565819012377544289898467442630900219068436559262149781093210219058312844910864366907341389114161395027899208617043097671668753650467098335984201738603887604009003327602828223441183327363157057064719832922683117123100907107158103850492121087994428867154419646301547231113194451215893950550278371597281340670027398641250166636797291475497155056652588939736164389934561525468534574597520313603430205662310571518704633654834133037825582884902271554141129384637538555059598637512342150414586034712521881348531056197831271749352887706918454977017435065417560106965108522182888789510587218857798711616417268007745844797053768252322352817803804224158471229295138694146911847604539419017599423988565774548151033537844961136617077304571313000181127781434105377465376339058164818462191824151235891194562908379501209531677388559666868381435995994868019243268709491361927623423293452153475394951674219492334857217043841548163449924932591105533719236054387921297206813670928518097777435680734809265254109440788594345235293798123801272602117994470162144254206915450310352442808284147635625942428064362166969200977160678156467931961392771234006669697756311852596389395718051530691827426880083494643576988181623863143151639671647351194253211355890316692788438453270298803864587160242761389152621814511178031747319317068267895458526753569254502661852202572113046291916242906991510666832586112881441584347686132080807393965948533001445843218395258701691190682796553748296001753585255702459621930171164746079677538314228914713937470871526687807784470241750056245889087246250797864541012354101993629389133221970514392154315761056721482219910153626904129235510694233313159163673375289925039001133702225653247125469485659352216082293373932062858414714488867858831952872022990538315500213141515095442377754799046594169183804675145606518856757618727480153528374860080084869373051023662799419471778928103735140803716561678952591814813390455058551665424055696614155203663808148558042147557209128915817153117786295991280094254902533108765127709464217496723134980006786515501186030801921163342965056620170669655376298711978036753305379477369956589513776970904676918915887839141161719045657550687416495630456111749024618102019484863313691053053367473069420135006055325201510595245689586526872470644932055511267660344968592162712356511937221977457341560259717482795765430000996044752028388039868959912099311762642929904230275598802743044051145168442904239373637389718444037290536776417420851226178195257424651532250611144768520402817519216355127176501346655905003458939334123201653247794241906723510929283996772641602442901101081811475124925043000313347460474362994252431368093350653483003818957755182652195419184708833366994468054554006799542720128403326691964501647526264715112480790146944761471897318030486583147845037939147992760855327747224812664002165972796539038421598317277512155650096582659751633909927956808298686778900142223434109654264889840590542490839049836851063710922348814106200186978205367192721170502820860146115557177279881574532397260654238829578807867096325211798129472359780176338358215953731122841352364571226825580606019190495147450293236519206045294312290539271743165367127676143915950354757895980483681629926121830558798675038354652216274410070770448104483336259879721253843299071163281431882303170414431410875676260948523643222168421422169966962778085362536055433746522057366615774307603384846498956564630714383264330762651059855175633802702847380425123198055097113910895837373836571144211764379835932253460718740243317294315341518166244499346577558571811154484094653419454602936752136254590958040926333071095559835926759032868467803602560260202070096134278737539499183358070587075190230955494464914432636334386308531667785062333371653119090662325205615511500878242427235790660158468711465019433195494543027460075193237789079300769482522128908590492802778932320635129931273467758083634510489201808552716623760362389487683880182889478765217006094515715335766506323199924138482817291492018172473851527601560375182763639300116186772123424925897556541136970705298327707408577993271968863978305404626398585676282745159014443223501389873791788154109079965995016470556152826819274847628029231392325544802903100776621817793340837168144359234354733082444484162607479736308994227428298792448569616447273443295699772241399508445302143790225469899128153888635243266775424268707031047040582851096529997295470173484292380293809479076103099283260470396033437913889339569596397793016339148805031529504534487325329768730883333446858331633646193538673557696051571079188265034393439761620042173964787219668064107730485383381356869763203312035613942548287418578250828532570370284505087175046664135965889133204609779931795884820066650238576862696965261641985416058381171238595447174632037252090914445209975011240141313216700767527198311562942300868201524501390960857781661423911443247708740239381733986800644708202164291058160635971753507180086254278465185932946068049491225745025045783003954242054678759219044186734865499336465137756975594562698828978622128175853297586510912632110288967040212273069188399654961145409212212366287499169345027363935097325245003347227767569641243747082073386680001618327303159130843322698596280210841942113666382061330957617797081169225651535064324610734111517176728805764951009187092441000667354570296465064270526296846507601824923477167093281907449440246763198726640823608752201247272350510847262801141758340780229466103896916103737778093768858800702971308924478879885632427796189639215706440105956102604889298942841092094559253652770066569420165127377428407615152639551955266251350890741230791861131874409509741803671357803642973860251118102660727258379007953071760530312781399348382276630725172193020716520920036408656875142976199196532513550897358504125848143515342958595853049990606704196382399668310853227245704572044862884384117179024673880698155813719143989122653464935891777540597042513054690601014754204831331578771976508732270555044443899140954201459619369227212890410319565936652564901728525181528965284582228595253280342961951762520725018287823968023162529417048061480004206639904844689156857487394991579580112880676276133578616024743153058962506264993827355669234405871184117368579205821129068722896043207189291105831731707041920835332482547837590831107459572700607047009282439419167021489610760895293614774793367277219034412147022719219000763179530126444750913667419008779057925759511257747142559603060896057197843715852562613731191486964665114389326626706167714238493017004011093031260796456195056622385758281680206564458558401271082036683154822388132072872224343198453288932400665679988348185919285686914752082375547434677487684928470094646671028029734592885206680379607040798219635557609272045774459699637210116679871567802370393231021388996589372872558369665897838753687592621750754740087580710701869027110944736820029803189936232397559625720039082710749531276770840533173119549473973250979470320895845260654760314151997271670109641259920181041386888362647130567785162516633804485167869801940206783410750884487090840204282177020696426962763692757740649284425755770852695998441810386308220919741061147699628133491526202755866290601105835726701816875697941177591469234030147736204013045469258967730181857010197713661728457957585836473251448055838496898624014309660773847231900065390916329367342637282192941431939632635051121721406949224198974735869400865517161119923584653217751779767680594017942039571014935424430725165956692033449756551184547967008134497265890817722261761147893426087153293007622754019778945438511874475979856265748435958256738264092685277461384637613991026964690304997612567935185169476250924394908079280008857195723133991162736078463530477993145497897366025644995071564836833344436430814571699339370005595459068409143265231890982873436169605488777430072157156766750308534493928314599196378346684293337300968404276239926055797205729946403889510098927365771939803022094460881698792259758039148000489183267269185082541546773117651222374581692482555157963231894045086214768898642949848236649819199915477661481678505323028597321756600062986228337120573264448670735276875632514733044142348752882216803697762840274346031660924418637293333975535365226750720892919265767035389903095298683460199464867698567451847568389586758256568057612558080654464073740548156974256140392953602419849818363194180884002097295701952994921770407260619837800718963667226149853436367006415624177523190228106536796220353543351641490688647682003566074782471454878962254393930562149432158751437401045614953579421139492604796733286927284019678593530137840030490800835283855433778945696810928993848308984101731318057029270969796031947592955350893670483748747210428981480270132162024645186360964517731974320690862242338694257898979683158625282877895511421381482244597289015877226946485872909612543786845006271942742253694992866771961250981900394079014392316202587565016160612129741343713363678057394347999293742492944974743989475688751376937526164458627583409003875898493828955052233723708366378238938437698063757412782596778969899254376941024141745955759213251312752722495804322541809952830987411708201999945288649422804976185839015605909118464673893786244473850300346691773951307031999533271467021637840507656498048421880003134395121641166689714017889292773049809518673304270330431081211358617337633665161757625137000164470599290513711698036947109452490908123409126057683356599058459254783020949587244459283787541605064544628130719077776435514295634885096517980562360411154000652597449550916569810997262350984710625907419393719805162260961983421247191465096257229896956777318856174016054292340635384374344714564925825811603154860558598593963693481533690806853043729343938073006471728647571831009779720757791027957497010384579302217000150168981570831151933865298929389630928937154031120408599949232331826949559964222673665009779846213876172839445166073523881324018833174682588465192170275843264117670434381737796336363772997384252944522119806537863225476338113185434575818886518856038721161802999654471888998837499121564896067984816264587320108357042119702039763414914804820922609490505474655977832367908968138156293331779686949435187986495795329914257547124137302568297273767086383504363487544314021718673781965434655464583294016999098838624229086467975774199680150117997209764146748106556343927726352037491187679664941246765828680543052604679500288446290919285060106570181229529250343161330075735078666242797205397794323253476461514833386691694040519073119767821944486804374072782091377251356944601179078713339590354753931341568303344521080328005194007464544459616866037840523634002872064793909381986331592363076481065111536550956395493485846047377565194996630219895197828558558124174635973350781588558069306885310747639001971103053372498722946241488117117238821300586462239232164220848249868855502681187987164000304132159721003764399604473008198962650451552343567981068431808155265055915020617175348131071751446414578444963435671966981030381785079246548276492761367238147637356842623219574644561410408430227108209776535929084501871974991027656899611639342451138939093985380934389346189441375633424212661869740953575516754784000719952231804401066028800597068390134308435940329911000287775758266969989113682622446391402166276863902513428553782058517303693283761123100083459645397958473289379182577915391268791692795178387287277000867290973232712405128403284190942529323712228072013833141217081171347009875858784489491460254495778972324251572127734441168791295276269603399100035247840785970591361388658875598261650663969043985924894730189679379641704946871747955481731163791378751757552796930707072707834374748129932778265244881430171640418772775318057172428118285401683323539510162841503205975122359229472360454382627695810094561060626921914412548798241040479459749071919409720467730665247740839542608218318882274047624154521719602330526836015820364538119092905120530694923819790035940540591401854486935887409224068485589969242555157329295881063852310226451548921457698583806724750933334612749150384888135533387760556930594184854853500437760322920790977720402434115185091531984506153099307005530886415026267198617898328812023206860709104720912627698100641294926096508352917286261374908294173396288879167417891307628986741593974631183207497591030574682881143457234349292187187932771439036585596205004438886074025482915594138814802665828015713781905943012159326758317620043769302378070192314165721081803655915953099868747735347885087324973935470397348956235542966552358274242241152395263619103154459745516989885111774486702706240195349129971834862461088812018676115243994077986376649638508528889427682267205574113506262623666452259435988128923554982254170129993142454483646785657249682577473749245444147151938934983171411942574123975935753397661218236686225450984084975400797630360821696605344600420451023172858675683523590516007710261325037878052986201668648375310272533627621793738629165021764644592554081831652817859328401983174728864233364841927735881314369152477062844527192434119134337378823164783448331942774420841056109138969801013126579907149585607978169253087022210134157473411843718491010350988661913672678033211563258619595510929971548331918710728297704619484290888174963652342806130623843226495007734738599394219003291046312093162197591420434857000727465907380980126148196514808762081497402131712802748581009965105697140875289795475135747123608103047443560472608720025573738132301558469279958340113395459984918713271267113850410741293576574950070221136585425462948307464796665204484740791634171738618473885224728201016790122188951457952316793772358571227268111512836547346082176281830099482080059439175846411085623178463189077942003494934243179396828274741982253261678624548462899730981736526617699612554398627057890984098610703187153442105360354588576887365350700367389283362057301522006829331170392695512555564642466145853336971107518879810306037956651480802923185940924525515059177516865474251665084377558418082333572583469852574797517645937544782875339096618957506617805447291578172015512039956784607082410493266976081377240090490749253702324771911262381001843214477282196863080330758255558157679428166863929288429941920400759450788762361450400785294846453120874460096516966354447230763858398090411152413151595308468858305793571227220733994804430431193688081216364850221291448778012068011458808999127940797662955417919711726099169724789705793644144423753017841124271018827607138336223231717309847512980698324215419271585927739144911247826466150470326654017296889907449312985326620615374236251497555626836327187715159799718064877854240891672875390494675101121940156452808633662108386062523764014650810682189135075347841544076068024375293084410596891934398468009981583615735432989975430159148216380669292290150914252057243691708265847561589514231187366697087897549740820383267808564141183593456570752419105176960417954242890802947356089566871836114177611731353219172356596127525819081924121136150995040052543269663953750405818373679732549547865778702896675597699305343233832079184104127842600971201123353765270068276184047531021616797450019845450324635604226912479063731284141999798716025937154821842758541873636468622408483482362187945358114821423855767616871931243399756858169949824152181754592800459683726692897849945158928540035940182423582632510873830215208996956637686162224639186828901060493515285693843365141442813308030475991989920490004733921154095564146137544209844833940910306371733208346458119373029089121903850875136198263321625293619685305443598476053066998930285119218490658771217948979619390801105006192897274837104408896548120458583278039854261140501227177537589146403428307232318040395508457708489025842887657832683235019437927652891497546535687649000808235086211911315580095664144495955905623360097941395766932801575634174272571099636604565960940181901206943427068998235764577703629647945495211226995696600804614171567220499150994131740910874409404993432300505137613645226591434680447635585836297504644796908194374685091849613463245395106213579915890493396701588417474223710412633523310541737766662428056254900389891381103880381460010587184752146609890067230850265517455124450843439074317923504310481181101022726506749852076849067503278275573951104846241972572660559511562098181162806320919895210290250856649023790038259372776961629618287237569912882142213365299611980305225519991835808748026103743548423911545542729259614765512922022565158698915340894558053897644641932303728857386817758356054057836529232232535864619079296944922336663178449152316271048946315066297005677872070066993554544622406845878504087128329330643082479610813306521661139717496898766837084090271557953436408957166140955827862268294941447635230077974542136368801892414632046950558313436126372448626397399390491207427115583074884317242689336903156368371306829481460697049980813827761451340143751770554222638959709555760595662627291843359386668323737730933901232303728267986959156913771206830665938205382905601834120497984658487811440479131157118318478870612762087627303471330576621117464694629372098493986509244755346493840394202623300835154177889416333708434466307001284861976197241647541200657027572121038014302068074018335498534039554440473093596769820091917238912364091693047515677066797092780185409920870038599930688247556240615889560187115816785202577930726063538787080456332430345866415636828718488404593705719087965239134547678009389888505499168290590796183524167788711818917110656188495049170825150265247088755680659947940264049527806884094142289364680706679716266224064863308096782394261716289071225213815903353724888942048609006259188824489606020132172880740593437775216606773236340397469272993773274234197830230311468665578377010183335130975644031458084598958350145005261807536509489987939478630126356171709519236644023733824522279178151272327272132688045899767007977500340596275051421168690223321485452529949434591612949596073011616449720239928482863604668893940387337454460749895941773185021186947065644828851420351680887406658199207752028736565989829194951135395304000138111444384207441534710219195823403192629842156250192063994154202005275622062567892040453716123284122317864622780754078187392271925092470053293375240015585501712588133394344868043997955875429790854129024980773793927172224599145040133237391774760585924155400642443460636226728149396277816831887222491117336611546981456611032194255289549143602927154082873843475741049433436005779886627684469418445375175913292962599230482760946746106065159203633114264514763228427781599159823864628765453709127046377640570602597412911019309769685061850503589752226158572070980740757670583894535224129147930373086722314050185336328114046434651527223054199623116798504261704285182758259904860636559922653506056525852059539590606053302892818136893610046257121844804484122844177114145181210371421423158623788450063623900694037527422562475447638417614928880062067669286114086955614986733775839699628653541262613529200682410401633371040504979973341373790731613109261890364004114223407183409298865477881788550261311564305923248077418118530204572905347151591272562203199828706278302058632120932272143946518680577775480768518062541125607778598300461298644929714554359051478031922839074251242905466740205336924823851429618228303601079444727577465026546661056293752272430165746686180581332024224613405869932967511218019550131664648261797135404677833523024146629996865032195635638184894612720474443654834973354039216944662698405334682220979813327784428926494373853427146195154383940523278615386772364865273161247219454931158982269317921951607225288945180680996441897219880760654146973505492110684792116223563669019016719265930321938859650070104230421988956011191505242012761433911637646897905163355140512691281448343688337119173187441671819052454043108516917744331132977705039785336196870140818025282488359980369550241945786727370975912601419477944810277989905052631693640150737637847327273004543499554713576738518025373282175342970116957252982767503295687321866781549759608627023679199398877895053850554016361112861975051705719837845543580799306482389779359337764466027999821604287452719685798437728725120113578049156500697558345100693547665813112319243520084821219249673815044913946282207373820428921520196399952183446893916958012277634056112721309579353296547201271344796288592635530574201955946618545936904296624975505942342658807182305924427693000003627115626540584905837319301496073892892596630512166703546243857838458933362056810996089428879409433043543632703779277277847498528126632004313959775624232274910746961446423655970778089390713660866837602670640033803406935285386026183752241783826402970696806454714290199585917146193864811593041720259216816633183587492003878346667381388577736168721306218586500220265687537703758426699584661709128036234197779540203339218536879548129101719109905809213638923554420966845390534111365710381837180316818150333557429279403626841614613078519942973535382216718167465534411976940222619439883670678986892451332865223270060319595248396583254464477513919385606839649928164457153992307345569299641225729100378477640830055425201243819666231402930387075863892720478638404946271619267272136960146644713791082935148547503832271255516072038053554844777457261851713406702966019840564892402673794246766294865905532305544040778376690587343050991589320915495589085201557627583240236756837147822407626289756191157230298942845446883793121795141253698030900894601527621335320038635762816313659810496085577247238132003706641313484092223962045047760841589864837320286576062154863242296317565045946342372691890315319703497093746146533759356022527576533932549956742944396751351919480131788455048640484448399306740808478987431639425700451434314774258472533751995923455921817271898953361980261583986786393760097945787976720349641518672313617815193582287233158877575251002504902394348244385118546999913538740975449706218019642211318752731162925760374203378660608945764227853223692986781848005215347731667387494643419491671423352446895268661539629334625019796052495236680756213144028441687064759390971282533012869825349462740799155084176853668516686271389996367313404415148093189698988978527418226124755322206418875412495959278843125272528541346050158254175429507779425227253284644423620430908415145070629750840750044622522250175285017456320715170784664254899602024673527033456981189382698091995156305666950654539140385080351786461151003411088870236480535434848162331840168854428651042666709505594077437686506980579851473297098680498840171597069952065602262707671719538104892803252715574314424707096834615340206861056525669430577956715993628158822440977894281690514263998668109342559936835887216455667768006947435690862751110475821113006733970110389623290538732234530170549148334545423805832230118975974906172311755788358185350420818934615551447724482728180477594121369011784146852743628750668480736425834310327405028673870466673418321073857226869538192070716336542149895890047293798009288127739487762074949790778044609151611713075290844212278938432927237271836217172612392706012507334415766920675557776076008359566600993089503138235546155981459119237881808863678656028466813987082385026122039104251006676808258761558189367889693847702181928566102630186218849165490189707111640289055524716976393780971549256269128687310284880801637274656993426271577578641980827966765965507515864671936203820801089060385141648284588725717768488619863120781810595930002000357104434066940971444414417880015308016664877374824640273630535191637538186694742129999464287495979513740497627524423292176405736656661064393061149155587085660736020335571326886483449109972355927230643659278429978103813538029909973187855020211844979560666883669795977120637638487237402567457729043682864280630678882966450328276782352695158417124580552542990065492757076934244947361858517015133070098145008321250299999568314252631594030113463852621885430266776362211360140585254627409133404236833413203286149009705362198686803892470943034563221149594647478171470432903365817403677070198328252042878966025532273184859877633688670922386315868613308911022629249173329815633249792494704908342150430127807923430918787625325446062499809102354188071292040782944568348943646588170534053786621441950682808049364389446423314616381240450423501687653472419636318791301650188522999958506394699976882995443273383312450178918556137641462064285069723905605064588902446762262784034796095373867096987738138088514971856014993625181770035044861386044055209111576654550701083027907661850533792569801856496502230497052078530256214237081580721777292166428728041014788703068858872823353429387103470447381179587105487141896569787700883246104342183558464750622894215432532661705941304090144559859402705767850794403323636401613735619109574318467250325169673215812801835348675132823683990529323653922836621506841815908032800005232892943472287054948925998263379041623481188171646745519886179531863095097615786809589612716172700656369308155361784795155627828576383327303739585428888150682888112100686055066800317546660950040557224328148988825873736834892027566805735984347595761607746804794603073388614901002526167074431170992071455264855573717093403804482604351962344441214806713452231008989164886930925895434802287697584948780930419858069956958508506657182906898359818517661371425637143843971104867324650829491059813018847595793184702858423554580140731862970304611530904343009327369402689513769370541165429423002506229294582942006421400408397499042177089530355953927767774953235969075714027106291172521267912265670703406452100414033097562951543115468076393789453851619115003018898837246013833517430207435051630243690888017258135247301022440227896874187071825178589636274692870780233024678773839751899254850034181965962817985804179904801847153144495557726358116636451840969437710583047570395885672634342369738479587358144304734634073863872190532707156507801884197151771290141003277946829728253165838585847571888061514703219513861628470591461028958718893441920429637241139856048454948872734750105991388606723082590999636816894846144406364725103000329321198844411454411494293708523065024313950290659032484542701907733932243835048896046244356698419674418655364757297180157841589245363312753936222830621655993276166668016847205932200148962807286233129837323920890742990804353408297374799917802929686048390139708726088486750907047713251014717873402293727613835588357950346106950439989442005402765619691796345634681450300624997680738076869015238211574082230286495047393329209995272285205110470665172459125765749562862369296178569127086419083800649420432272821084014608732694774094348699197345327107824818515929708375538461106561949703411079551963551240970521012524333063214804942680068727651786067574112088031541717964028599835296126065737240211275195332529938953468345058169314152314747627351942425971968800369932065902906773871712824437597749655388889438278186870637083542016624861827446061677013592878526570200827093019036234331310756736857516776557687129407217546576961832513507194242330390579051855767844786428407960305907516923180879027347624369202935804098690459734585965280128689553336245887858317608712663334250181955567867846673809798008457453888099757713938067307922501391684830681438586413098852919944602147502112939735379122939289558297661271111310816182365031893671865369242863990023107189552661038698117613765097365620982494296228522824431900105183591573689094986662495499546796901964356149428877986003155097913186413616887249668494118307668458544734202789489938860356501300501245292121675948563407179473664538205516015453939557329443300325249344625678726135781242726753748553750359176027570164688188742076301286694864121520137854713168751327483460453624599475595048862973784357446093040263253108412899304952406991994421657042848553033002260452926002293600021375551434251604161640304840376292228374685425715500392682857789083010137177471612745553039638652636140576452173367711291780431727668785871498835971605155839649281610291138199577121541790971422081908414159688284307463838421566501788990338480964673008659274989992045389120236095530543401439199229340717868077264955151322841608487121553550129571804468968497668733432631252521972104859081812963972948574062545236665672672384685537579723085928288228677156529624163723451622789748030848929297504125162034753236238071034430662200231612183116158417206938875936593947209321084988493384169388177418972863453611793644149083191069064525504867272206889349529963998736741511562356696367172748170036709736814937860845380913402104591236236209409716386193205388880928103740274277857818161226285377049038798195487231138585007264653691180929353211266381053208629715627145735673411898502095541094452164862279423212941514914396699392669263123843033457267840503693906018375732148381417014473856478292627187146385906434306493179218397331947512473454851993057863057061465765336391380408150226748771771440576207935181715261025037955315677377940098659776011261406366192795802460941691520967018703542125790891510012967175771423024501715441176405718276722612517446773573051418408859770254855881265761121633768560111650802794490023670735333369310477179173758515334902195504524591346853117106358885278678109695837510860796724168410422713017027982898764719028977645072717183190748026584186527188474492899318853756264092585720901566719627484793829572086582279308687259046623544794882834581469195932184045717252860021736612156862514095349696725135793603979205092453057206019791639860991532203026668887710707704515442209271575826820770932176083483843198760822732159083200907546298382034149170856007935598026436099672723535004485764259600713178814073883993972324558488593310714771690291009987396550897206070693038393167310950535649799307073605740927748960268083204806691062619590654810590679224039797241036559102952480592131644949443785447648554049292988891217933779920448394753783979249286155146018055710838427972866768035764098664046289214856987982350490808916278997026189511724766895878109284742913359989257165630143555822174759328003206049684245423689877237296898490392146208451170699605295340175868349260240300577848270773200982018370262210044342667490895747085963121583015855879980911988258451847097453567218317995333973832224419019073116313432976089610580354250699805357426097219835776730246800103098227151623432739311717889557391115756484499863699263860350354033637962430914801501476387448747596135186863133691337626832380350130006567744384525145199127828828707676286297065138494161748335361025952652702893181946333860441324512538575216725774564712279120570901208859922545138135839794139892297776157634815814751862407948326799923078096851975009902863960767231902829701287554628712265061222746968109739180565586383305168974421274780631742000901279563299820649417753758458924597717436407065926509904833651886666243600781138971450356796420521741828010915702256047258237073680778367572313721040322448703545082576721746661621329467647838904185942013910661936636605827539863617737952449288589625152640256729229484244005667783516640274745134277495821102814342379010759915768107438365204521487120361998109778744692106938809519248139700413405015086789594948974848537386804376170756984907724093983755721145209957403877789650939285101154837559717468840310195787357857800936202016089834296015554823316194484445494791951715201087477661091412869416049463092241782930070051372578912420242333981295658272477455919639621175667157767473470960653902435048518488576377463148606968074113654074273913289891492024403370062124718762699392239505580263642285857228101164186015636200791045423560390265411148759660929550716003790559845713742170462545761272547558964887419098986618727305986234031599000339834250808974292953982202270430782549842064397067299337605662565422129317327962958218480666963253952956538576209276780640784045686116491958983207711817004594846641947415632017910132854190320275210548680238572891519076672460998811730517550557174635022761772583425562025354908031531796541824750370016819022579903737592215155418958692043220149975554079227869576953755709003688257651736096491116054945666626545835293404533805208162555947621578508949495728552252928949874476352525207767063268727346639694665268584270170777594217474116470085784075154669294239330572432019061457083235003085500584352048377619407664843124179025577725697139626690413686353607181462591742083597554484916165074901150073556511382649879378205568848416118240881443228973215588794103922918470161924211354532936430638597275688147751433327419893452383790182517603975053822828122890623326540091799290744396581690406263974939703139684822845701341985254581769881422100422943390607325808779311506211774835712608441963892576367507405971124186616075182113487286024589086075061936815824275598876154166249292806129565366638145988181214713015233331354769604126841264047063983041722496571556621040662911476409510566838660479776989938457916922019601294714433604198249152648810251412772421157415532557964453784629287120953536578699905140922022553851504927552221025983881677758898528237211524263026169442507129083606480945492715360924825744655157558285577904468547286352453176147509326365496922534054943061055590721607290656760514441644101069545047591142371216336023084793459179284286254928298313503308729171396775287549715937111755533389986152640106495598000468392676817917509620066080001184083981035050768761797522474512110916328309828704139828366261736816474271684933332959174607759878453605557005563873126675151846715273290043055744132238987322508604962581763788464927341866403004542795945773780830208238355178689393383596364708214005357981379629800391053030300371503095097864539005192985747624444332423923393509732660288013115772207945478255879007774402809124573480966506852420841447806575206551190399965836245942757304200138630105516290207383553172237397236626809248763954380618429568480286742916227765612569615158018752561709708758862499864803901146935234008948898380234508876557690769182526402995427452116645250903622128592566027445057795266475205886976647049537269386521978806834510606802956778462702349926159373563274807209660324218173644488104529835705657104768817852004724514568233824324719010943076617917947810647466093917560086183201295498059768458867826757200085419616705496449254946215823374097134733509547256589789761021408947004192298595002341922813468440193258687826470780301372049025936502676131194233434471531438965813229647185262393766364153264433977161632422398235637103999327197733448368760174243413251344159085345984710669237971353600221981675731180754291595355098030529575349799898132234316373537049714475219824819777072725239994003735688934453042397973183895567866760096014453112477068602070241242226301890350453563303379209741171982739320528130251620704753723265887589144793345326347160948023072425796781233046642102855308231385020646604367186371361515407575609478414197300061989997353814942295105998671448365714082664109536248353148796391129058347034193455826429501028187534150764423123727287143253216221006040639464921475997937274144798669844904093828829955333227259030144944543869092926172906567475727178841849620004409788987018618736622630358898885507690978638216185671703121007508521031112130476270485081406091826303660680651573647483219115975236476825211345735492918113884784548353593364295867778565460006069968490167467393406968155601663544265803629578103373172800983180153434020385684085318932100035620060703951025324589331751653659164999845692535982816784782758789397520740413602093890191321475448673078833910259930638551746583795095970984110497873748880545080578981170194104496532360420105104505334210796366724901192334232231757002694084320083574980157664971929676831594702317568209668507681529361173232656133296177252978930634127372228947757975224769211768924220254864844819218524426348032573375033946135116625430709860993991563499028551687739203530424244680873870426856428186639836690560348150432598858364066929312300951924629005879755795097401163026789445413720565188686833034567274535625198116559883597894894054352478552974390073722994712753330216955867862780447541351120518777786956294231724493859203481934614690379544470159823191496625937159272844078306107691529641562728026743641461171887006481123436902355393067827697678019437889104641502903601481162234588796661149500277654097535988319058569154619526641564384322433631203038453116395494366228597375373829967253706276148831537152464163028964753261126265447929993885081775967864014786881487906586017961828543161987300807017277031333658270155700451062728401590535453682752936874804669002128370331051620834819665370126373518636408090592766359965653140848770224863439482853288630452719944250997909202916743473497010425090325343866258558757626371476150020902219281388462532255397596492018683768277761407721511188061771994107076050500907014092868241779292115591942924298934676757317709858359755339188985341712999048710096232450706898450936330428540559180724623313052829865450360461007221183839639379617046324414345689232998823239522572919449532330024028551637327161631084564054192108534525353247940665087142847379220735715451905864075610710300275303326237012717903264454949289610876977449030026030481427353008312102056061219941994978576212901917213528996860171281181575107133819857229459991650431475177755602714359591660123219568012022607239519634104727848652621429302111750827168544441981953612559950036919101375039021456651286065931175674367053538614342926670133420070941452960226723416475179063987447611950964902003820733593997001343112373858290666959418711544993021438465992301319523103639240299605444520407048169437197178330087149465450691201416096644730939859511628565125897411121926556035062564922265081839300126977392037475830020070350154226158452315655161069959200317931802462155914159569843581431485483300291427224441980539629561190815170907810005711963152852768708095780569745406860075205237218514828476602002074420476634444719468308619011582074847295402775907113625261223475167813142442171112663513810564470916381665998042835180968871799625528182680768164179277522552561085312352351517448986669082641219749257530461712021907117963972284876359103931671814493143916263409254862102063831322881920678595538431343750431596299349674806596039784525259220302320768072743820320060732609078664174307257330094619830921907888726363918974472632871981664635199965249962959903018118418862558156283020732254233656749063472430161161282607879937367676670774709737132382186299281045897328207194649961608145023114322780095204725795329652563664200222218282137892766501264896294380765811550383565462798764423528369074841660239872252773232026376131845534631996382545383152251643513100316070396640124896619868685764448334635342165009409045597187720366731460528315656122669119556271843271565213389179316484338173191280393989924717570730814750975975103227244902750266630666487169249658363959432178011084879771840484578265122319725492439099730160429902376581099665177701655517173830853780620670302200139747493522849456468560813339677153969560302830572723707511521455622471252163632952806126464780537071390247965470459224350352038193923860063218705324223754220082088994391533464636606924010722799431161168360303791180608696233089010698509695368529621666071019522792878628650913956674109749328807170990005961238595942019842824174214393579274561729541820689569600966453661334809620559516190684726158747715747138015496746357598939716234591814924516913043365245572138954185270937406666571638174369845799998443061167119718266052741149474733163265236557288660494313394161380221166947784842471274497390696111832933557759439512386445608792241850651537596407349650864326816874331538679838040740843323717363332550310254170055492485983203695236179728375355928563304211790693380915314823488787253913644659896296728948123969770843449042500166809414262821921740868576171520934318954796402802677492593234912207481612693876812086635762041014213376988504307368781210955489309088057925067242562458966387789382610821967515428575895306075942987735715234241158981868371465188137196687893145298626841213456241247802697205578809541160155073365876107087490078602532258408416809811805963362797165320066159581799093164035261526123204599485239325586367974236234925316901893607232087102691839670529967280328167157858256211738849376188493409648286612206232704128337701466506294894019509371805460552086080545294893012736296692558316673073706474644629120388206049604109456348721506966482025519348592750334298910401560962414340196595771020388870803537247959992651433517552126586373123512032073007881105838895841895958763198071175153795237181982059409880101702923660762990003828797567301550413587910637953123681422842753483530242884790410193795425352548205811214014471476741682289846026143290599494920594893310977053704569440726870411364775898929904749290812816487325773136300833080217362460603303583206164081898092665796847936756711462489968828868862396590983980219303152644560568739643979655372088037072363709553562804321945797061109923599722852567084557076723916569508912888260715675265538493851887046807120442527639464778101929947975521141109160367099527170546582982003670041568038209867687450695325826935157163237744467843963920874148516451372907209418733613191307453270155364750291142072123257148192841719543419919964866566023318317314369449956633231923434975855488071225350293366501391821751256706574454963007915407663347211958253985148244565238989100822385369652068731501703613915382138674870126620013499646746714852055906336652313480665472087243855162068265336623442126808661418193873916514869673404320909106407687585092832205949040944863540287777736640128695738386228649276390781083989969378393300252462721873999338756500082093652756114698288531656692155367899809424208814681933617264559541194019871468289402197939588400804460034480767223028310566848450433832249923922797186618940611933778178677706567576155867729134593765400128933201288043559806386169640851999244710296775543676521212012018068775395391792027319419976703454243602461980056918587719768405838969310725699666499914793230622510823225935674475070046071902516730560231505181609990687292661283452942541656603080267971832939220794579659841829420475438141777022845182294491245259435295856956947561717150046303793547536100006510975457504899764023120939363485868550151798032150355096060354125185535455860720978607877900149591014305700188137053510358884507970735235468197941543445884825465944031597375704406497380461171933967711679900211292087059801370819791142262471620572714692988645522288903412319392206769677770120444953962017220047800960076069983918794347283450101508798660918425115294297013665670102214030519795986826959128303128084684222607384360288752816416119242907314098154432174217375206944633078101160389127158448147980235176125489107990022747531621405775696921071975173128582436348527995075293677250743758178941877912218069246541772902777064803784445250954617772296584531673946419121606544622928020584230850849006703426913738542970772788092073490549288958576537538131489968688333321966983205897761248212151832826525601738769438993445470258293583385568463623062697052730942993187780069171495239574867214090812303322450114727066659429319322831054060381290441990252845324232682220595752691439174696340370311783517602101714934193192045224741265033326423151856647364691065077058463835320242482519177647152316875803678747623161478354985404688446598151982046451749370728376373060129003020704219751337472187018919536710876383842350435999539939295160466227152685773339243053645539732228534077873998429104790157321749710620708854378708569362840592322902358123394688293854262440450028427497364058446467331299543312699026519694731593567565759614395787619976053251512672738175669742632662944224060383882539787104292346628535491359072439546355187858765652468594215691259435844180333356227910015333272393454618035584938482988719397362962526197779137923856612497892184299794084280041748337373884025664448850099300594353951729526143555015527225637704445251471192446078524712643068228946749157156367022852725294823981933905464151650170152706133244978443248665397383294872430949956369963639264205282680620734049645762181828832275901566919127664088282473811180410694260454894709895002098405567441707714136487014579780392224204937470675301338196627241125153541426613763146437241483180186815525117408693329363557781807856098247156851132537186329368382028665611638749229587707856480275270509270504782079456690473291458157984611136510753304880724174818033476859473939064847756161404954186666933788296682309056494167972152535225885929436750846244900156211232765971376680271047946891384980393649645591917929622555864610821671217613895674981657562122444795805811762328756224849481919034497666990571645028703673534932804419914721682803829042258485159961591104938428327411865746124406397256877757886409575449608487458576662374319186623704679218046637868819942672413327274231504146118258892991555164902254258484124449090940697865857471106501079769419209199165034234260917189754022986514222947921950057840260722421445591474377302696040476715243907180521046824122802869640298715285694682634437665791625673738559935671930232333544707043201928597853600274390743724301342385239081781935142711533250678754749853004548985645065895553018990296617357061743846080900182155189698123779428988042375727202578765067450085670847227262078636337693915847396094383901967632639598679673878348068605363647065868748700514797434813448470249764298034119701298635175699651908162234961604489025825217012094213091470696040561830102879615709767233923674943317306365271662623397752324328288988563592121821964820651803164432473163085518390308098160493432906057364730264388238252601888837442410618724340186402681829946029992728214515013540898573798936471851880898750612398937906304997111355215722732513968243556482912961946966459322116630953603635732714921848467055068675545320627928551645997889425093867903110599170187496589124433873845975141673530160857072732679955470453394435546059982213973010237321344449069682998359327306319751247702055803041158820026653374046961795879651035698152435485245803861096838091433982775563621375889392153466685524747151220254929391737998484559868801875255081215102137401799688170654207531965916478824799414653945025320570530761807869445600891678045040001729257225574041218257236530248180333786720410502541966560843708733447816349431053524315092092645484970710338103921698154013648264914570696435983675016689869438869066731114215002810393687551436680290971737751113034576178962136998388658647230748459199940028185740243929580182524084195304976204863988341770853385834586852857818145352707211343352112918096669192774775936784826331098238265449144015354610334831256983281747909070249867730203757529981120780424281880643196069257756306776488084661270177819678904018978717086804751148872906873787707479021474994027009703268534858933236516752510728301811384864798505816814970428196590821961052603558962033868750430473166598202204527334323885815281554532305976812586615000255785547350965453068468651067755070289649997252559850135176795228663483813584407036431648826473351887793850779639531749161899246383896213285714338136563961235898121171326001040494943314535655602796589595093256334128781917655463119497156046357583965732771455973890056566074122027726699965841028588708745031934987894841147013441354419938205595148338851446822282720191928375785341514502154980345774084202590571640482983210426156741118277691136814292992932393833820781944775600352907448502170499467554948337297598669487228501222766754167167020933390476723749254436087169402074757884831287803214187187967682744166212722474851071479689928706563982949647883355146914395555228649159946806951737455822315671341369994642649433096385729394031583619505938237112463078653457028343164813385519754372656116595043151708512520923663254250576194955093811679828556897266851516854777391948786293017276720685638162792487182181283735404861998703843611148504750210283078070360944742436903194891764615851968079560194766217356102429066001142327400710592691813053648221000792402341098710108070007927392347723547505708728506713347834111036770127147563864124482028529855803269835659167874143829232274591470496544798913703724154142181295107777345681209683596828175737970049258908458468556031475102763035692536336185939546411811386086407099634197879263550875185933994576526791691441413957639223238123266674608392269704029162953153446991473114975863135822799455518127331824174287295129191933559155536559352850788571561459076038799927280042605244994598132458628778246219793140700506790219615419093791919990450573581461637090485146529477185663423028900068682248059357205175751937858755764472540733663385310007797767050730132688262487434857620512992185820184629623384672216473225363494789423914807354472507839050343891976494664151768523839643143468485263133509585707001231546845755744445463953843635627695590802939007556974341028897578961336065898547696464454737149748374613521900691100349180327837789577467166057703052655232717837029497107358300090711512357896725758325634676103298524302546140323569008457724428925623302436323807542263534183587276956109258478383904220678235881747361101668342810411010772132345021506797819537375997200366019834564557824812733367495558652002229901695316735051666925768716791947524899431541036671034821424072069660751178938597644043981708442289708223699079891197063307197039038924616724013729704783686332387574847866978212534237329772525377918079849754744890840030451147046570693970324227128108983811285524152912914096121421133586319343252334741247349056361862538401765146777310003802876149657432963916804501861095794651355583779488531677085264844130187474515926067764266465228716302025045438882481711372628895360168687069180513513928008615356104355754445994161443018333135690984596576635593310239204334983923801600560088445997553913185640468772152849312696320287952446549441989638600416404964300765165001567281193205632757344355707162226169933476408863070970300426025152945389108488986955133727668023235781104974759356622012080232595090272839626375986589949524852726635910960058389104731677752251544126250004627355490082991190527453752845450534468581301681291222898311898641731783332325066402762346120909815962984588675990026760530927843928284178778099140339794467880506981839655362805375740588752355974289988524596057576261625716962815528333492964740608855644716815483053287643551049336208573604687804781176723829130081919076315317341203081456299618032213377427710072406350304471259696736830256952252012558145755661510454276329180513717237850994878716511578037155242597614635133201337587947897274172344087262006722182502169869929387058021957249538124059423188105050704248245631343725839998346417699269765788449663509116729014076216779991744609902693222212930918227504255248668568420488582342135871762105882369615090678954786544854816603882978924428461231774505558622765674513190600669324262739823100384302490993883623529451267654506728750513290622265082713413603519737467881077232014320396736319247345137351154961203309386894319830785941039819395214463667444438332544071999017194779907550718217912584088682996858109710505091387698238459409224191195392160474124440015673805187370495466487143339655883402148503140447771549164670378809431329335073220840958868523141092359002382346677494113870505077019974295768994280500227204184663168575418256321543598079363388901134870472953816877895184526117090205644706846568181711375951758077499834504502529201429598112150682278964983127374831897979921417735850129598118916487398512515317969776215056393377811765300370957936664751455856665653458900842282826837380534655232765959759373459302274772236666526262639260011362658327365813525982185555714411021114379485847801559546771913498336855261311250188180158362925078249056965799824979180012381337469496011225673236548997497952510687100606501932156411387292699574214029978962775238584069499816105089814402969769894696001234364207534774830984485785282522488529940373795463544339037324810734111369668613899935285883646516061201236310899115731238647552549456263622920404662280369108250243127260318921088967538131298295224888327963801409892846514339366955677550378777651324235537681761246821156860547637285588137920119694585197148433180566645724512956348504145295578172944220164061056886873881549764867587461424437590069041614911104173717688937132822365585670322141117071329507029070737627385862691869264697114070429929214632343778448050625115602862402762306286549624535704167824643614994474150478477481868191691047407745520111534829937011555113986043251621838256425337942742512932258727974712432405897426389275869649426028436631112622895356696003881396264248417748717616255033218616525506339969534021412732973343505107048825750522923543723056580761965123714078261651215881334592418184131506256365225362355796470771735726290704225058086988988088572193988472443502409244942238950294064965995439794102879152917721468742359123240265823745892953985667087187594944008117062431562713548780388514910606335695729265483832892143597557367632291747390707401883129312521479957960157703347564839829548800062853050936777566484030618031451510572782436020503730536084979811196518200509463530197918156755410566417378585960495565210956411530929330428913883768505256434796929752818703222488077816583673157028191390475492014211542095166636719078101344955666848020291078139988164318710077009424883914864380566542965608682260441556738433485117503377383617560044758008178738212817009359830180892933778809593006805571826271660643920467719800943466577373112162017531232808501151749277304705108735525589797752361259926777345685990849871654434289386876276336417513065354963099298012719690422178015447194068591623640540035941536311072278704387413452286408417834437053437103091193149084234598118818047425453615703480870666230257065840988790475328447493247632601447159305299999322537032220455238749945599313270333057603288049552203017246237920082690945881921168944140956031565256878243693984497218326382701767517209975863872003584606863090852797172615920812764829804844829935892021033722269780179270084709729813655965568771409207271022291638190709769251773679397603765940353690708825898833140895811515651453289978290611880844754252334687587428844517567660352594788732365007998809372405149982493851929699247022638458703416677066538593699432996607080235313154700706169117087860461974880383897564534830546424901413151579370895354929060341371032896595995579195389472639597662309862349247634396606689650333214249349143114797185354310080331872819031508551517698835976441274082621630367543206532858487581901442943635482308635493538853154828225698316302151445987446530781250660098773306544198695430730498311016497008049131547297851223027176478937633944969165894950297791675535218817061169786944062901582847658471296410730610601321423461318702646721745527572514584038909549161880234584094652147011236129237637827800074359560996369271554178992202481307414755671228572599417840353815889119165098369632745805396571164693720347270137082835130124891130528119017884832132813351335170449020461683380230744506142189004373556831288784883437611842110432870866038242101274738815162887303734729290541258816005079922473552700218132573404941647942993627350484773650248016911303157339397241975215696885491863088714667006832091949900616703416806307251852437571686785516031185686122745552939328581029151370248566829698881309128424093584329863930807621403362366347853842837933683195033232759436514596678030872632055533258265159005258553911504264694640936643148624340360172184075601412873106043912802417129066880096922865372851968597357066390488430462529849196817105166249314317649281369256421350676509243561504514240068746958564073657630199107802481836173524769104975841937855820291776377413057792634362228475052216608613161863328868814707837563240582224057874261812698204508949453225482483071671229583866548006822832259355657913250917153867829825686569211857469520951151549269238618335814891664575224774220597213561919166935375124457009012276195405582503002518028195901606326400920393543154479892284437617676244837032444916797494877345032517219472725747479136199685640388257596521442861096906971054315700988873116154504487273687155327063291901358932338483065868601256590238509420799336458855176526235566651158401389117309378007286902972599133074300717720887501137510899028876083994522931171441661403856333315962112551717393439923253636219681406958800174104174352312572571967271488825697899713744693620871795283493647331457034444133270518938550355432569862073481018262491954122134161073086037535532706277607133280021874675198395097844816980097081460544912551682196665273461054345326679334502598337167726655420888774017485230906470958189253046296643149367152495553590174063716728641521483050939393733836100395012927869871442118623326360292039478575023833256507112351400763377521260240718070191378916279716624613941019762479202132049046581117544450438782085640796501694651345445937945471060095464325435007982105634820545127015319741641650157229390910214526418197597292695228281360476125942230014555301860433654417252222794032200201012686407717516533263883997342198129741062595836297677736605590989270704621639564206801728637125484433644577003017325997614023903998581359784728943806235094267572689491828864221504554165319148269899282507331755714127370826046365077699221047069544773819738143091400967753099290434718791068775505612009078428882236006842078870161808074337184602153671021605610958062636171147162313608599383203066428968002745012596937191467963801134476379273375463911642159440398893382826412115267415465023965756726794955398581202292785992517887114424211253179109106158808546411859425342443931629031379278522591741911364382006948252140330094689277622208231914986354262577960187904412441505893397535846123281265171853521434165817993761459255084251012334992962134148279680292785606086944711329884736359970728028655819733792204967921294361385906883545520414242255734980434835721890373907521153788406464918696385941146124380574295294529945573916354833599615816391811314897140692968755409731899973751921349583554534632187943780668986613679701493771198791301500625727343544523749707452357495207376943956748679994257668249613910538656016725964586250368421476559994947760926005246613104688778848289798243786717366922568131097396381786658058249826055901310265313310055301575057717132118095754152259407585590429821753519207921300522670207883887852370386363024598316886256349635046756626236806526100766220400786189817384367963989642362361784216635188067591910039460829506619690589431026498699930438844854872664170691038939397785606219847585761727514281515787782221572025800447881720642346733453281088738586641777932768714779863414925968783009617134950249010105556971915698746604136707757245471553819187812821211429906714976357799653048323005107296135887340588254556206467502993017975771361191410892451554980405776022684025627863156160621463885553570011628610131594762429755837269278758292026785541473970137697627296549194940413779338967540401707980551004746773598639580698249884464141300843206460683405222049130953250051808495364416280114961118706983070877317448957426675616450961754582945828817146114772228188675092650221106124640100601471442301339460644860632280882887420403960481698215305665286905668356856506736496952890990720815581733230852747802097463332646526575388498522163349018171726227295749942278491995275628148801498876878396057811837214853990285942069814504042847787361539317389398198693385758435586538459114983184960638471848050917877387278776832744185624148504316964039228452785236971454418009570102318024882337351754526441921218502483421794996865332965340664718053122390182967721023198558584937025836155910483097204339379607713190587213453030825989723751995873005704171570071691770001124134264993232730043262682809467014977677814067713726909172671372381953288348292333542938029864661301796810648081407625284819422166041730260138322078540151168089500566458577035284402566248417367810181802282715290960345736463293952599435410561915031818993328072285307326990532892258176181348446311893287576064106712845417413661700535835275114203271595955603479962919334720734167676910814746494921629004903211048330425927888803750399765127197479062245188081796793214190375380477274663860226038260084509850371278804483771451467050178969647260410177010142170019891020621182583490525521192236993182267420742956306303915965060480373078159213289112194433855959730679388231603290430055207058403154535937730505639392473451466155970782705173516556840458037317875827964917898167847153984821578153717847890249705055903339254224962534661279155420343434755038453972927169892522556280385898305386515046073851921345565639262395965775029660000002364159868762447560170072543766484681853448847445138514928275541065034461179145201191596511528346100890513444677473488297313614428339416721175493953950038132201616206758992111651336946832784461210496403250492304441248159309508286718656452723729976081073477926405596957561263132424833478432216557847670043474528524213302664112772129708742269567618528084765717425676733660605835602478115324880953236430227274956846980680143294198200691457430545559615400782054444951243302351200017628745269478788917029842510683684595689677809174929363667027736225915180795318149441152237562044932780373737937223038900107909629134366743167233608808168885446835061874127020272087724499209907744626942843848511761301755456264812650048526871931074991653953095648994225296504568819085397738964510032621560976608992048005706027678029418833109161076447126972460406371924619124808115722416135170744874069040308709824178308805987910004042028765456858541211098703975285014397174596929792152940937181809114957507071595785784531090168271998994596180704744631330975941583853310299219297635521227001780082655559840438960084928857062394492822024576242898370208412212101234038950841773104454113933200561423319378579518908612296395159047787105230681602869017140796626075108640010007725478839648132777238014508506571446277679552925986197842041090424868730008197841872621340671277952233840251461652141649179819587445342035102606123869481927813012180214927222232077357724411066405818430442089870438235288827928191358332101053830493408190634209028479378686641054473199939945280663944428683166505525049329987059562464460992141659115744978323785438360469252607985605386581711695337932934927400402898665615952500319277740718026453941867908721301102734751232441523377941150049098136677190969424601301023923252160202247199081832898186968359688720553126417609575652784114922330690418996230247902697472945031343381081167537391128935124811529146645579324652137385781013192853530588036755909795688018960187015897129830064207041956762344918154199405492209031018062240000501830593851468969845511256367061974143859467408354165175053386255995400861755780509825403178636044368594519091766858923386788876613441315509824517352582291985593911238924443906444663867650237150239582645064316546707059712261779734555124158444355415763099217276604903447145556311781973743836549868582753868782586973426217674023586968310659199408709173400647821217949444819067127598062979533280787943465867238362895394059179609602741157852088964868904109599145672443362827498727344366801987327145025992356472341683794402319416048752006428909392242388963260655681044539288135435344949424854405654614582210066267363429635244862574022355214084335414408823059669192083495371451882605686556463469592841488346863021714363660177649578726994192031948209301361006381430667061817357103419693237046628240098815764765216384741824981762079197501864301577002966060161849017929354023442467927708631792068226096702388549106994366047135654586906483191925634225794104511674147733684622480350192273196209827936317668607748070674114459909832351839611944189284546365563647568111627998906385249519642329388726757520928045458524287503689417756768479567359417194389784304911252414359571979545931759549535588459857438195839327061654623939027636441905434190392055979577916269440100452503027411400989881417599905716592953081105371348730869983897914763144580566080881571141131756292230934223821567724175477524013418698838064074555819410038097283556925209248784740643313732438704010511563870949362564020893176255825611422668401205368737728099482346310622099204177569001703954854278777155337114516720175140076541726328911726736439975744835523324156008445073680756368647621720032589977341817998916653546319987459702006716763895272893026633884275704747312927174347504508738787960109650556770007138558859943171357231030065725358158824545824465506537757663132780498468686560234924071996851757897276551465252124902634076615789304945681387603988150483388035650080854190213437727064418948697822363250484216272007721539816515352389966983019248637429010724061826214523484642881791632623430703375576241322968587517533851536564640466810309782198491731240791055934754627509908351708863511057930229876863226951812580628580147314061482499125434233733407384204632040567881819350488151309406537402273440808520949784514244073318836502056880856416093051147170858552166046215947835332106002010016885453970446201555615602143926616166223679653181778604349538683291074772250221646856604578158641417702774169711868369375674438714670955715561194857895383240882199344297239927913627879017833810751484399931257296781811808820275982625620184366969501678048635299406750769375591587473371149243417554244251608876244190385800133874453841251412945122665450723158501891055267879412601458557850137337555452987990987932805246179231696961031382479950008132085077203669077998128222260992893155108719585133160315549647582070068469456261843499267540664591891302253624189066683000321617995133686704804115399820546741417872067441856556956805250950661414955494089008729450547125712101458107483894796463449581468486950043036630033015188034860857583933092883495801749836508902375873302902355178098975419497362073604261285830088645581318044390243436118952279400606413349856476735061360658109152756273856089660489950794545528755347897024215369130707850203655276740441184454422381319657584286215293816859012648158075945882203644532206718226336208282473388923264755841074419388356493266631404482935333164025824921758594166127215011468906657367264276175487682781539481663862573536829484829175774762510988719978621483387499759025401034857755840141271411754964279852263411531469853111051080046284958855420958386965960171846328427237010950943026377488537644833779276936036819710689767115837065502422953842935774564485397102600224929067859834871562639850536049571446748773947009839652727853011976652718229245618836714438711583851357899015355826567335436401228666233687009077188684540996855360063781692933896844370740044852163404411248978360469959571625624644499875073669884798641236500454085422142681427525012939436850394742852501785170525579275493934925983534897517452548109781199312880748157068038387611907578388721154642661664188023876528644592619593416717592579209874479654717450328038183703416377310243314108525475056861221871654823673400621969699311627508371373203082366520925917927702502481465406349441844413828314899078507034943119021559402403649542009351228213877632752757615816924905792313888433618595866100460412534739228941904096159538992338048309131646953558929228364415957806566668017174269397868478886832478814882296865599142224755143820134921203286973496430582418402982988705488180336966885459397363687078329716704742130932146323939331373409500896927007601571177091188118300648133655866531670607392874342026936281438882508579041480614110161332817978133695907670105768370478624322885793451188928352320628841998233988472349416231291935556483013406635584524949433246096571182420415729339329048872054776112607441812144864269072195133320726672348433589079158118334444616511755084815011530998852808619965784565260190445351057776100365379899841978820017537342416755574347797323214712587947768810062004356411964542287275441129828688948022494571243737159609028984407884717767874699163847400342330354930472465091242237146668177951625731503975663138379759424704521698123096415638445109061727777164463429821766795337344935625503804365892886764412523635083269852678459280157705697882195720780909985413015686876152526684713079259499951897209484867060297429741731713200356806268021006809223718064293846167504648593779935270232865273967550939989012886844193671775698270210642505558532974699665829733484108151562739777670429179229223444922907011386371798708804558188517105492211000098180139671032082082016771377070996659484288564932985515992171261318136780585870577142246435749683598577748395817801414984835854847073513715768633960696452378273643906711430103564537751914041256871657313339393997301364000546789110630106017887840847547873465781536459149700207074399639807653788741014523972348109822937232466848226045160899454872818628984799346334213324944166651940745005866596980672198399174112607573984505651286584659721778876794787033212172007606404180390434893049528184284884984565375666605144775834023897087987125500219566141897871586348578060304058983281761590753593185524105189610606206078048792306146758583431645112240256009141607543560004897324556122673318127630344084531243496570038729806568909821129146642821704178727198126522843156198044400874842942705380215717949935326745515731750822479835840019628748450543994318055077988893420759264886343959951528405359583529238665230998859316492981520976843460985337409402695211684060440286542653646086934095415353170795801491900368720484415969551410505020866035128223691997636120700569229941266110696306905312718783472482095813874724026928663279730033334614535299309145849818356753104139174616320328036239347141440308617430586069928946476254432252724363724045716534938317237298823002792850655473051432892940404297764233671442562679843952349375585605678291098500591576277715507142545508295597370208992780503227780653042826895451178085668617727164568707704869915470864485439331333556353639836044430851383466576706261012381410848533823281769270778221987982208938570078892202587844536123866013915339993607761847689836943400081315548532636204186944299083712235068083865390709120262309270200272266530339910770115516940164718829217286150572584553281615449859784281929949663470570574163841368276408247994134218935514265176128165218655338793842071807501482621110006637440638197386240086897676145608836170380714050015478051870941866593504625644608836232206377150126396910883595707536907387821632204714706179097847450488205519275960749104080382641015947824182095539270490260777035667154781598936937677256243013269189316699399990699640284865662727037362291930541058976768505506262723484805244944763344788986442603497183380954064013304404747302087605805114612809708021818627660560893877308390767080412568572917678296909203546739936983888657817553228927585358794456708818926094451233488200077194856760478606854171074226203897787096015041827690579907071856504941003612379951579902952772970974142061183026472760915204929685573785732731853101339011628482130127520519534831822335712383978129313556520760531420476213313132422835701401971495875344311403877728807209090480645845020645618122999486066182282733611981103505930896917123802407318256997281705199740058661606557304506799572936451490747090114712639066460251831178133425700428804310226544424509290864873720192016899142324857032804941718880535948875089847587638085072982516958909771725099763104572374246676740316197243460446875493223891112028669800865662232424245942380174785972563131524319402021184521359343518846573528968422066473268247383258675606093622270167276248981065241130320392544117201737760235491078399963514985335054736306022715679464200914257950084453371664371132129220502867343109195239769524011970930292107439127945408757028360406155152572641812812389058939436944611206607305107544837732952444604605748383976086974124690104309847159005220205820588523105810294639528898797981616883929764958173110055226442120443356130244499457986727063090898558703003130663817980318912068127513496270170535671252075692839188650723054948293567849095998406794282299788591403376774192881485576286726283809936168909027262127197828553503377988834962957311856753630374372700910688862710845277636228828495685941219806505312764634184159285325133258066966974667686387148660066149528474205370590902324100174537098985730490660406779771915957003865559955626306269962398501425156729456322174758923315816706556684196663868970092193171285613599982936763530508447098500791334169352241843552620605810946651592851359791503135948979207953143787933360976744725755978169520953898765688751061544584412440608043998553031284911863368833350663266481249822576407090828230193373161115088126578735491681659556519956710595380742531949031243353294792478465658058328109209664985255635984670720839094331497311951597561809482967545375084231827270761762659085410940908559974657556134669555569152183026760458408063358385148757601605734193064260082410182946580246712442192654169493283830305928329734551343791047793274084688109590674565450321119904674997589541017041737242906662132990929981749243311850990277115277432513657804627792075330024139910291413842574899594857414709607217395702208776185474063249115670514699731803625041700954193064769439025369283009412011354272007654254360829592346351182110979471056258258071472850435942909027422828711327615966082634637400486815339659216106576435674187733225985844693619875100420384107031958915945666040149059908592652195082941887338322036280472197741111985411451462663148878382376796844820218884617846567352825191028086414503584356244477958605516719348990493223626279334968741545582251824527388163494114642786438881573925403087957421901646643344224793185259655944593711368459851705089914151737234120424562458700054071515282286256417366368730375698195667754359277257382657949455018819228229784787080484750697780157560691533628819595022134134439124975863791295636515179589854732810075300077243056759754322500476197919358140037409984076614180088170591904475651429254868541922339830848075897036211011644328927430203614748368523305586424456131096151013976371018552141798159027516233825930677665533943806097160343010763537718118079656830313369708260026563130181167363083173900894968734086146046109412274324470811967101321184787893726632102711104749185547113020678862122644838816290993142877671373904239431246476547084799610390411539465667132286898114538453235872407461560409614771972240579444701175951925047402765853597011088431676578724583539783848237913264311988942799405320142019321401527397697057469748090474106106302022405512165470904944047149536266433437843790422075005706405972845531554065957819770111620701391621637433647366678153996216889454062747336763104981603864660319156865193363317046327251285149898535889536666060517675588694731374916413867933994531540505401058255427818444705163384732782553848182301667003693247465999507554964074587161525392235988506403309096944544924311080511341666341060342429447793773337812980556139498174656869660527119011259612388057708859768342196578427434156818103797163118049888324314274163963472399007986918488840206174200471800512410847470666655806177340836056614530232839598362612065857816022956027704332417161503944836120341825821534299438548431974496614094960997112135280380403138511316296739974384772073111113384263485651232554485483699719374184854675398869126081768700013040700425652381981156019423422649660390163399885826262994297608528949110930823305921251294024484709107289889254767174222007411076139678187864852508191473147267605047075890371485573503854191651029006329845213920473946050323068197641417702390105304572279710294727200076602764609120231720477625859271419731029945321228153607849237151020548463471299554863149087845241016684297005186558212178154285118403659563842162337851431682727896128914271563694562655149380272108382437099877690599338048414373623590004796159447177714109914169987181150408421033158011817019489990001315647637240014138240930707560560949325709810360932882384417788587714281423643617145898430429553323676984236961954337630388926626219414173245787547702521418211708253895003164136851861582671084490912814939083345652354977380828320411979954730380764698840781772320462248214474793756967942304245385761832728704941022350424425114475552875000668172562532008469548521204026056750326673854800593803668119911301663829234385084158363862781991021837627668066153310129157398695481944353094687325030880126215860984261679211222924038356264462891468386943631221213611519698402872223554009734296780040968818123466008470518292166116555222285000735864952378807327670535955273502192105155815086600716081262410483491048366555121956060098603417933950004486894876956650621196689522694697660910928884243505161393519964065766570551744705883147913579728950574102911553961919362509406960807810372650159693121317440028579558621020362689702338430578068927566677553974825656700065124482512695115163166015068124818087764953727867224032307354128717146801638517812513244861849626550859605590793784034397077665563963516325282661379951320280190420334957301962610121768763445851451186134424404368310280296602774203364860828809039833097416921853328682012666341181774405476582022731436608475698745360918307723661035343527539507274787592328504000572824386039517340826059644095839495492792755515039003445478786352920827422423747717422903243195318619381427587598486004999473733153844223573294847750203437277635356036241979274425074331500607052955974492821416481947920975691182684157657256512982545353136938142033076924268483847744904517846360911653155215858012345145645799824728581868937018413428257282659529339069715372018800344682991106334381040077471241164900298491391797176437922455230010536518481401538377638692753159819224850252462257288304863833183653389092984290310729220719311461837502166588572995131670465447474674095979733367497642579384465438029033431699468426527407595880654997894202904751395236829459425952547804056949988816183033559821465048275554329489326287125068676663141745400044724767417753911154699971588712198051588995496706111670033949514648093408839379198321846498508998198247990505345728404490514656119169691420597120507671993939258142044341366198761613386830054248719770770247339042510083058715653970828421896304652839432482823660745614075806656138992144966499803692835092229396157076875513802589650818865840003896218800054028708372739764867045659177444279012658795690197174833365012785057962046586724367001961400922531572273262882602081817989203185465304155677371114570193085404859092407551471925951792434363972462794278231708519313638921345359747212165674442349914540230673305210120467696061900734672428498531974767582268295908904918057915684656347335041020468191590911365151479138631373697316459737300977111178136443450000046934844925668856170518034096671064193699886434085994368946701050052737817855473041988688966645823151361646686501429772622017924815857573983141015690393653919030674478265365794558803936173566340678735541278051300694999955529706387006234864195584049980723313388094862352841355137996964714412656503131324570385261878210229910184216065552751386998795887985530924989815321770783001935492665773464097248533024717083249859287673750749353897003492948273506843526942621451211629354961099257961857530690828792170626563727342964972953074174536417128335805551805464323753733317120006172782278569557492752948185670501068837633642044077933457070476263467851752548963436751522203159067513068190313958994466300471463428245870329534779449762323617412568961167302217433337147476555770374673000947544038199436754085940502618997093823099506656821182629024938246407292005607954188968836324673180330601301762641764102601204843958728976307740137915124266929111888028033218522713075691909335664843591142509597237300364695193842453324464024198433027303694342269428224059245564192859680019165008068067035281754181786202451344545243094993250499165733572220678807949456129390410277452282834386755536227817935779105394827645611646033808470388043072114339572178377266272691423162467288251490799691490574881447572600596703506192073670193628356890613257568757507597649594669272320862866639881011583291707690756888019966178523453772811498882713440289780007426404004724273432498208303018290072527247748751287287461465792377877070448418625734794219486614769863182465711524367402828897391125628112272728579702821051824755572326479347326976437277246503917865979690217932050264002268832671976265810133597190196236877681517903481626775117978888493412044463406669951167174038492214886133707271422207668944921302268915643097345689802783529569107895774185020727940360561305717583095147386932434888566067811030133281964157352622645906978173400968100828627802653370596508107070032698687530914877809978138051485556175378697966352184008714342588170873251888410775602566916357615976860588248485495169107316972110635266385485879325861318452940170316198232151872783178864172821269769783544782122961584177494173716624367804544799664534401942558576540479330557473228594872515140636040673816242920943133773104792360308868160488621793762459910925062689508353103051177705707639481124799511360250417501274898587026234606905089240231706211075935484996974383962344159498653544808761846852376384702267837076334351920365538386639048524581681911203532394620309259057587197660912848190566372166940341080129546247037399571713954593128409460786041443940146433257182869299707900512732294898635981151647554298149583216435857749170251310483537647344701559951737108861032118051306849513207657744819957920966310045972630638821640812516064026582778943530427661491627022648193605886577879522139483594689832616238910619392887032736107699462235337844325487394174554976485850579084176422061392165090813796262339776825026024862473844436085377772443223457112833109081758346060316689581702807449077375449881514216286054826461822279881692237038268061000766633328499719592058494377760838919010632244217248448896743261275129674071940265662425465987810584100370906729758016697063615833167073658301812615237920261778685569783398102222805003613690603875015072463117852236809351409368810807102364955001874111229152955595058023681516322479992686187553137059666156288164109162203735976796237652968861239754609951603631075580433293172777638485388462883218796017764296597775136557509349997738038316361451729609437413795279269175476174563533063841893744145075775348174769141730219165007120428184320723756159126978605078486049752462915626070771074337923258443662049114089316114591406617721801958563745971227523084628696080648081775629841967712305187382450221580383219508469928033431483090388914297346508269652661559194438578102303265618193415354348901127472566943823374052015122797901701293903528688990762804541774488180696918981460737348763948435214173155631459698815470295656602273663484983349464793241605621113559701562479900979672620565747384996048002697371550372250108877584099471947945701765767416268831889986287951592964717285748598771475205268430814689693980641386456591330112850044409396761951658188234165404112314373374657087953179153433727603923787629479338616611514025639131507548902618287137105174997457779729761411331550617495638272969400501234007133701240894543062642522679819836856989682527420821771730571972745986389320715604642640896725046024902743414462000180181110150633584672657538043624724440891203780527104019721037686437852174911488287803412153128735947711586541074215127133848208197474852239539923562533487076740688917987080060590564207944143007418039014219235540549034146283307863233589944242766386746524149091046627201382695237505647553748920332633073741768718385906137185136492563265445177310524516312553813815414522926745829277451588098447687234792057010634516967578013834836179773539964459430320060485325656429026782275158073475990101993321586262859999243749411073848350355439419022298299794046233144728576096595291743030803596548707016994885198103057814566213241387455949114938619890496542693019272231241114311954124249413845821375805621560348279884797331269519647348804073750377136175219980890761410346342491958273307503187999988898154720820341747430270318479540892349947141776772696850762321316901390277920237463312618748395838254170004720906692400434860414368079413875565141618097902806133932851249977427889620247949577717221548712042073135268504475151635444387174247497892407344430746733089926383872492558901186402765622235209396873545789567757133714917100539016874047707485848769529522155947108803837770082254377906826938196203015878834289323837451391064130375466586465587752817470503534799812807042913992864287742775342322001719823192655669371122920150706088067941458517047684729629858784662807841111249710404759052409838714028831800213164002666259779978850057497736208640368278662477700227830081258161607599931660533594371548202498040731106454102864368057624079436874021553401769493066205837447109307256910912683233944257455023122294296838695385428010778370417917001368703444732970131955297097192335600197070938430287135430927289520831522378694972048127672840610251719807947437432477055832725170831750219059166366172608083100744295830173833865267469523787893189499305581466219753341634607914340360603735036477003417228819444025737204223816466690334448964922629468172101041446231168083730572884133009486653755529334993861611068959686907575660799394448212657079054981678648926999099226584487045232380512530066909020772416540337967858273894285398303732343096864334408025005194183179671488424433676039736251465042041491868169335998382332363187235138732674140249711337264062546916210774403025852224435863199467647892553541348955209647654183939804300345227660590312976054822730665827376901784904479589070032100028936500542389840258007956990209020415981139800118928280250213080595801594273052270744675466180795266382463172272483930745414487949985665980418014126011887704695417889712889176653198413224523544895012889309736637832979412293869577706403494954463821200213380695325060198387357608718329385017848447313779350478830253684245026572125153096098196565310242445377168202152029673086866799295989064713768232987188859052567006319114983084608166637918746548092101677154685500558187767764468917125442678841499613820504472326809619714973388725947538707971574355067698534774120692850336228158063273850022952090413109978922270557477747180554421107524166413028834702742660426047169495671342615923973323356792239089332560859552549072371684385656631606289103304201871383509731542344209252631144755127580016608287346845561269514156543643308155709926717351015320880143728793453517746986447345848237532435955703767312240069297338511275347801826182141315967516189331657628886923153881656502488904971355664812765105005741016419865837314631657936083776853567492406910504329364121455410122196972391787624019110909748211010966352477943244554502612559955436460574602380003068729257892880573852662508163309838704262735958701678187853726125647561534345427646955117765019895874344499737415007886864791059542708483036528173687475808329703691149223286280174674842300684152524397759408758412082273568279988952188862024261169647735492074778899857862669207261029395717969775972681529669203893467500544322625020363272212211040496077288728020792039374718490805823304015950862890761352680102056432713687855315423710547165123673350732909308644925164860233085419541477996202148820653581585498096967296128327189726012934266700407177785411000845042002981798082533393686089769807828027459071130584056591692396485998888976858497913629916542905173265279238679351877694158199002600762468833201453434735833711336875702536951969926366214332602222287697742621745841841428529563386897397024228774531354236396131994545552280376963694229665298302665145556550006826843920498233743909206470550813238933538399524796306627232647722973627593994703689959778604075606345583208375177561984105359888644322698562334422277702938654555371752438154299969490903424821289123926019587740052279397076411087566465676543218845294209534243964860289691592651303277066160780816463015942246622753291844698636664223192573211135122425773010188842822296102800540476094417151860715445493055563177423099202345435106482185271345375234249495931976256791093606875219241113105493331804941194750431642804167419936588146562677742096887104840320932571312190385034743602504108750685229039465361715895178354775057850857791021118213103897347265163579190283564157026233318862149982650747584631196163937439480882947579147702694899130433084724007179621933485530701706931440647726158459980206313049121652307508478487254985706315013059111146952126076411034842900481767555571948687217091615445447713314823395348482316621689896444765278373419279953311667415693068944622926216137649893824874378608145941474275893147234444380159534580860945010854243978533158303464167738252607334541009623654643982539858433417933297459438173906509354059940403494968678563629811972606132281833023560346789260507032324013298504561302677980251662482989472352154528849363134815457758082959005691121878590686434675144471806874619320900564752853664302485305183532439727427994422347305365134955194397215083564593314528625242387046064531502285453323632259700205686946449769450773712177232185987668566180383365044378629668380873452299738697888123670097210925990564616062604320168440523862365018408378461944851393328373950820977750298835433469908154827484339552300522492249036999410213373332053234041520714457319102877681017127879244758279436265034828029307198382672329957105706008934759893217359265202897953062856861046053881722319043777484571501360101376428933665645175836600157540057155471174250208134751019991394924079635549677384914175985078258705638195445196121986003070612280428996241848723704456809735538357947203203557070360790823806476135774221498879061892231478101808957597499862082792466731148708695242191243669880454186675302455768152734802382593499104399986925567692813224179135678181861510296399002399267960022144195967186747497986201907903289738191917215656520571474597764307777008087787865207572065093179561832476511019201794902020139528117874411091364395109918618834655993390879702433891656413389863633837211016812059220812287750476204574789736312586696704724770825646552289869721887680166294792045408234329895341639953006568764946117995238573303486459243706735848166888177811713484464390644650984151210283629362890381901172022327149249202328551641711894615391286999755712922121267782227360236826805435362218376526355289947794780366611559218783215342833949015187914643765839710335633107477807529423871362788131247746525457964125971023217880243031883654025437238773339401633748693438961450515217505296583278040338513798638020780692505592587161716279578280266868816160433374740493767663209910644668483949140333586357882760050152263802019037023412399247957888635499272047576223459704186956589854639718974871025669857052984936473339407818736580916487873896330950966418305287289991213926455396922405129750985111218185164023851558189688054070705184513307796689857892080746509001599880048504613918601875946697061093848899861524336875809258321854053935762170541465738652472502560271583117485363950621101751672881388458076043188659026543625246544248480836038971551775971500321986369952008221787198005674794248941649801711706003632621546869935158371872703540920393601411896509621725464597898771335248551124232772446019828543523326188525146242758226542099037845818700665766096284365673497598561266118009245823995969120004836484691997780804342670979629212982663251313036817877666609302705457598571166293821457247437717521514611887851952590713260504239879834824072562620906401803712186851500618500283776756550669334748942568762242700720671812863255021085055149571561987319032261173429510192688464053054321689925269539596745931998186322019501772049903623613581422663540292056903326382976008876222247194914785002077184198045942750775386467185990509927157066650666558423601050664005279614444380601353706070986355430657692241957611164190149920402821165813761404562380949241267337025207669519793771672420769383821438267222534855117695857096277064274732778029629648337017348140426793333389795348815158038431929152532002326079650894468280429385211716911617754169807194961423806975887029521127475905458531575668926244789552037742267144446099121271132311259381411122077601009364892092950826804570095730140668862361513259238252958441221418448440391219137501812639270533512759454716880261022166667772473299717852634122212162639227747207140588507608003815104975437300488311597501777396312209925338716897125493347904342856741003639161884626473271266671626505620142927854961018087309862176035644507685566198210026717217411848949636771815671901782671638407937784969931271621017347060332139512547524056758899350557149921366639925903212235806253489338566862649796616349760732644043387904530332274511601599233595914893049123345150800804748074208050517317868990615825015711496564518944744047669721000112806828075343010286786010107528256627903980821332674999228682477458111747547190572621845696423682251358113198055359308281450169704576210348569392567339874687505209909842189365239071351107810816617365538486686063609043261003198791680722442684244808982462987055018781918562255995235982794012507990070336525529265819585001794756197541943773484318999865358050380089776497580154641532675899325109828661548141969826999304819895328736938907313135533298119708933139866304464915179436756336827009900835763342826708403294885034999868155781859303258020974616711922533418269621047136440052686435741611080065862162472429370102678082819520614844672404010000629009821966459089816922851031003683488119966554617529969522111644822516605862632753487590636677163350619473034012319283314037890437374754593312468391979100898899526445021577359833936170968876261298392792960280627285997904024801781594117031191469107775678975251510743983144839714217636032765561888099497485349006614337171775874198418785405383368171210030163073765347828901088626311216060513503295924296851072986651836956990604636153690361631783081037817593858909506004922463022704125564959191142748244130866767368738284910545024577734020888331907638233328398883205390522440444558734597983244243702497484683350538271984684836663204474586741939639911603193673646715280046523680194250731572433812620435931079628398543655571529717060983133785591360482198507392296820411046966683980477978353716498250105518808387921620879879170546501174896134164173800120329918486192398686963117014465543127133815161524972324504853550466859257349184730698969979406369416685642697834828578829230267210724963602718993250424272368761829559225464772339471048707628935518145249660762103762817179020867771138792250005108417824247564238656878656509146640169482024989663740173318945833822456697110384143058951729616388324285754748795654416962577553538953519708843284718432071658685507682709912095792514627065785106535499727068020879629373000643683019558814196532149165896118859413006514735026587298141122962929276913113911876301186855786266006323176047779128819715814987658422084977738709541055023619689520347943585169453213696925710158786606202553552151816224901448725453981774206946182453706332652207653061544984362377564289107819133981600359135381710046769268518518474102886455686385922435069237404979473033672246275542140485268122549219265717918551758161714472730650484643367275209964453259916301374179414410287499239984961650014880705969156304083574315844320980768372662496092954886865498375468082498982030522451715261549538917196807678311393735388096655339824343614369750135615626351157372409552506844952426337738312980988290891846305769405972028226537505878395718407902114648049680393834131310067562534063280151170224114768982590712212214358237041787081610238495413059746709593319628901479766437082872339032902370885913684395412152011989392030765503958324708902053658836066062784423562708134531003448254564959217924366030712514476429600532482533435690582376464504324366387154922887901964349820212493773552878854249184274169904724061786958401330010961259719788436534475386243983912287212865861495634069960229910010948855075243702244173926644548353154583140245751732131419430095294984682495377104606644022730669551001649111365315496413138609796676539431669121522570288932127342945450581420876834202714326770076358597079296390613552719351495224770320874805250033420181199948427729846970311150901848124750839079971142078088520942999322870350607547911445545555226552746831318444768326080737839191464259441866940558057816754731702892166655026307663668427504495195902982043179392000256938572432845317483426205315305636126223341102023385658543697332607247444969106321619534308366060070135067128891207577490025956117245613407136433821270239652372479185738763829816685228148076532945381906890782889335012125189673256827597795748156664914296901370941335876994312264280126436844144363872660927022990380272954840352539025169310619708212552263438454577252284293612920195619075733951914182638456537354279714191705365982273101981350812714668667935208564448970242601956209421673041348959707484904711994944003213923861212415456125433857651483820026796676796636214980164872595962574941999743084283565888466177289804137018151350177111769734273417440048477176007568938758620622082647884435108835510490340261203706515679793935852339760292909211532415877541656800465680783411584320697550740242400717839260227284921586523107691323413837836829874871754720227519411322976637904035732878218093829263114588216917651479535921691469009506265099935051204619966786736533683767432446951436647793552993467892321004959582198787527618295070355369769640868996348375681238959807439561591551200491848304847892875560570165273634644955789517075031116269972468856499189189381332693963821580519885863523501587893624981866560423508684578149273514559336601903598657314037294446483252652814554745875433090861737382912957088593819291514339670506254213607510682430019312607450869898943588657676795415978549491158386526848210582005693044521506333028202212044999760737511553319169733660496016865452933677893595334496318544129043166616646486514929813594510574938424159824276312138710169530335396071087071203427832287021456049360541390771954530233105619625171456391253582265368344612309886433658795986498742041323209016769459262360320501567033772361960043898100613370962725929322107494663185933409862421019552608573959553714521228390099885310965474609870570828129320811949369592344690525456259472702704457920450897337111199139316299026442264784025564218739818348743461916039281731130488064464023429577467445575993775636724488521413672926895241852629733825163084153253725344070785036831143879479549053512934851604627525885505957474483011654918628512753979379281228240944264189533641367411015623559922336433650619931982134657690444344521188471902147720443470745925330251954037435181459338685575318923360195689469811393727170706549272199039955371613976749392768761469634558345275620258687545416449750266907886416003189807839641744263663436741732027317602778419865975180695998158157398211727208782147652314189920045804685232197514737511351075852665424603116971453727999166517188983557327031909891962859285141670428506297527158146800759127391881553212345021943976845624850964733957148933026521912187728857889485419418555039738513779940554706301667436792549943395219935490525418849915094202825122574205518697892900505205796884128510708589798737863101145197286583819494646798394889386953947867992960693185285457110475985104977453027656417451140772687535876646735056995503804287713428256238806724430385903954254942646345923160994291341133205531891939460870836173263233518828346371278550872709686573355043524642132630259764660346346734583669891762920906865498773572207976033116383463758260760343733492194545090528749936837099676620675661132762071525358557258814528411869694853694698027834695193364282444596410246707807222335192097440515598833922792586655473327969092197743166043118146448795574562295929813482067241985954209690309505001723576326862400531426226498307701061921029772019904233990381835880451271342386284685940411715960516170734550610415938343520922917018468730439596962711089360705362681309185198211048018598967070682104047192022533695872242365165170775235803759438911727204569044731953314765095919950632710558715315495869747010525767528286052951768942647292211583480379613995802980614843951504406782247756844570647951393605179361109851087655885322068578379212930368211313510300041618029696789549295964461303863388072926656728603000111763076518216580582102714547276760710858777840050474986565330583451201451921886162189895291648433887167803487133659408126428310575365785888264030431867681688135156618272495960831520625135983330940490175250542920089669767576940733732132721950570810865844378356749116186897016772926714613575184872806238922136577923377578411733548526398829741563067309560202724723602958911309782471324861667801935315893586392754117898490711810493571965979959922861492433731676279817165520215498833151909227114182697647084130773144369992121994122565890755733857071107133041625730767960844878413557184965805026940009363013235097160617506016664991766634655450702160241412930203922431801987058713426565729474683277139973740309164256892014727046093530756374928365681719040943963506385599730003650305785557176878663900935253111395794405448211517130361493406571794609713349135926917274569361106456488223485975143467402540720501894389076967238398153978357274027238971687207605215175038296196718300625086652602152407769947151503388273806656711182528661352249609551383582291280861622098457651425728684769272827410808077277850321825693735798631178048130527116968005809659257639074766456402772540498085266257531681387784094118664430145164140231751096397415007085870820302097213824520454620224403648130576749750905028895666751527910107472639818972559786444359295526769311879762064560541626643937097653567864966337120555632629336003163257640844808489494465402264807935221473625611835257785565266320674447763837106129333965745424210336866277342786065947600461894014135882742069856641762841607920948142315898900497110562942273677237501994407035672135063537402732727454735062354020257978527199116938376551282488012888802375582925562559683722568111203818761875089695853816986628872587566032167341960275074706243528332781009945405055006529475703694807043212567528981065324912292669786063202542053831686371867761896386241772368770343215469840945346548148843084948565487026441395959493915396817822751192345259450376428065785154597163917288294224434893349391907891943901844672697006016919317710089442608003434144412848518533463572502282958127767887369182769799291227947418278565289112291739882136636651959527972200745044469234325928277453553094088801238230301541849557957296211358847565319837797171114236495169078491433875560685589514019970164569775625843216628498015223774501673037726667845492352897870820271619510509448412023583067248488133057325388160833554758908802076060929562451544939842384060907673375053138983387520467949971645753523856158921110268569900618415401091389110018128553015379296114558313143108003034115882583421535503986977208321973850110407661140804873787934281875617698224233675522141585850727654996137073025204387484652726399989419348980687781562007895927162149191889007187250232739612710202999697729799271393371460567954547347855148852281497663850659287897438281098589301147152453421575419457930139458880627611473168034367725175060476791946005054614604471906220360557206873076816116699902943234719716009093554565729457281071321380215239738277713906761237434079525477921720738874172586728006474454167195027115039848691218305025682595875675551736186092564481219055989231839055484803823285910910939220617348772378573831570088436851532638373685396044576835723760501766439424366348905552608307114893035357549038610540816584495532723820808025065312376518420153869456886687196094971334202167381944779538278236463161318735134705839618514374492639093118648532290567222962749408972616212891601947971105195518571585866495100711742378407701561677983939774927534267112716307799740557376378778532574332601299104220293215146997822367732643560379332582547172333718117081407430756316254611799333451100741335355549217875760133624197703236916705496554315240949330382947211459755555650435533384050404249711659960634073256402317173052516562823480650623070460859461044057497039037744620171538275357506851375549911419526112919642003821718303371977251029892196710367621719381833476091090709517927125655371402834543189591153789441495422120556317353830765348312286848616803556196340679751979969568142562008837792277662259679126596675820380866299805948418314197677976932135985534585039891738452620890011989247420418621365618710289327152003588254142854534335709296558390172363134169800450100472148174667324225169468312966971410965479889048818322219185755332951192423573055667610669994231356268248771262700630512643548825267414709225969432643955027684594292530675424117047122915893417455247354771901139712541189185354739210662491143109066107921555094419581873812450434565222871586826446939744497334181979153821879796162275040805170299719115229396836615404403180406527642412506418411787773554387730688297652775683175163344047699728694893375623684804487119873223273409987994208379571859924410658668999438127047356882197375969767410001796663385202931110532411481745511835400901385155357069401479660890641610772323516242364142962308654205830513719245398677120487639212358892307045812429815648085828027039396103244015625052054382517572928918050625181809939462821465215904116956603622859243826327590789476231159441157206137148300400424522409085361713473663124872037627552869507954361079569142660083794297758440014554998192774258126507198469957894012430828383886721395052432756464611562249566540829858074314075173611509019258687854590115884680199888678044774187171114133698116930175787869348676191255269693969958599703878081027081357351922814217193187816985410118995121508164322911868249327007259172134473339370175931751497158152947904292251034658036669284725368391024513263364462110749112759488453064049503060169284483818752248402233749768429106422144814629286443295800689952879096356245176849137799151955358143356224154740365069370401776060910651811809218212050508216136590836124053772994123445387307910415446438645368928030097266848579025145201726971818215508893700231084190754905348116063504627133526154592063754631360719552138391321517946809565543336131210647428832403983429882954734567592852395353572423236693003348851867279027315459311122603337334911552998053869670609513108026479701040742624268644829618614007423198584966129451693716453175532588677985938396596739355956350671614538273483618272571073711512679322261881208532095025538435445736929540910149420026604852581764247163783445529896758995615405241460842562337988524622426991997561567875151988329885622763742298305142477963879512035034233320366590124676829586999527838360717042809303174036383135687776168265275131733934869607218866471885730645469902506534634402953031185255680110186567503718112059808054805061096367913150476713304130750594139639378444604527557142314993467378813545804650908632564434744537742199927405515617150515092776759485163976852949009698726110959032438682811802177120280691339514953190915300952603047097040221013998997719914651143911162283405612111170787451141485756801135881454352405933141202550010472682197994047103276016099747101765978023260058866087500062481426640927524754938297569733171982744543276776140019296457330621478834527901055413805895711236977364941133957350685132082348995054926883931754986311530312945776662647529312305247133173864769384207968767490298219341719241212632604600699365106964287375848876851363851839108241905115230775467278594162885262321046137959982953240491966929111428653172979963366057215769554519882239252787977104732500479010761305991913591673928581191058059678918649276163446440488516209765476531484987969326512690240437969399913660858037877438063934943070279562807325329335853076698266214646038351048756497724813163233058512962057130483504081804713975732061640583093883149557244780311526996494221421796362196061811364152899473218348288598499114012065156592383837826221705106112132393684774536946650159006734959044522288493286634230503217008156846870503316629641536842142262808030387274329994747229661340420087947586453104437807765029316626994601705973094147305270424189462442892074890666173583858809045088599565995625099752423046348821636648487210135045879546757638211747088793334147105073037704802097921113926048150290564715148997619496766388507386606610923450474407093051283971802792545197626198557546199920353120064968672446904301997665260167269550644421795345958380940290858151692388077784255350199301751736420682331434408971630179455018563779512649004677142594978404159536493292274245307274272476642511022958256484005067235937567069330348496748022827971838587832334892022109548581854184262369171468926515259320475919513189548992856169079556962580196346672522309837883812066399335322745434553318923270765719522128087459834463964243942904889855830874263493012095915677589539805829587365262220420585713875182700661515823509656474965726919140714035441689278236735622871400112320161014585219196457306748213629185909576368884538791729879752214911894449875898042617700506245265909213941403047388526432342797845341608547920578347157350106017450676892567268345046107195300018165568552633362307159201834277168724366243660615340719654777723230513141875252084872652843662647430938373664141542267872121187279297718238557283437066007191566475045442184974200406802516135205684137690192168323976051361157840103299656124482959749181906321024058741012532560501142911594753384861123141369354137411410985628004825810133141928401518194661538963783220163758203264145081347456083923901319033615179017239257396423940956275900652353948934189462650070378482195819693897209483632699361786006984204425790487618434989286624478047156413775997368166556699292890504279925400588221579443826006340126683480358610047260506768230147114655948613733297395385920785813200758273420014691177456039614149224893172721576056563405608319550440549888603442885065597708157772483370187264633620313097436659217587696906426539514944251325175737492845509332202306866849726116515491921448857887596453559812542981635939248369925283011412886716566095219747568649212934996679430300647036327491517590771298266971636294874079235000795692731946373541139614693265508737022915004809353015278881188141440424376022509191447242408753546660066136871020390909615063032937043639035525748420875136218110333138262346980948475129244439008517860305844266495530433440004737952419330936328851057880062153750460304905164087844721473557275028247945510457099576357006614340495075610137277451865585299631989975347589378580478857202516731434347694534776359297186382483689009555961407071122252223206885561441807201969902124103487702249030815822297499017214902240304236369423864987638755688155996691335015544611068044704814129286989683540575142576120463882900786071502559004156098582183173498625471958120388212164820088769030471246384847326735715385142383527231341329247213546653459936486413610588090853093364824289281578510827885945369676884923325843636331115520375194503316474345468298705944455462120189927070074889002442944584609786932415181338962773476323878424430138016627638240186238395524370296064695409755617599162084247626835748841721746268185923889156293242819114593106718811375510478862541783093925730446206043653837412062884609736793143031034119661088883471480549665364448744284741794512978443305241303678107916182517412410870537429744781956082783166150296408591296345293111205392395015936746584435389886986305276877704819817052463642795096419089067006631863675652923010589412933168162768819708749166865414420077069217794680561264010308138090786162214367417334814257727049919376611813546238127379135355670406081017050656619844850809639935571059237060205733972163149556361458717893155990476671021550697754291905391470392352685608492023038371482041920524769647200956242100918465064508304049673665215736802347952690453707325724508993481691932227406956516671421027263402496939868739901001647056376676458528076938132259195263225700201375360802613646640749457003891730050949399906930651997859173479690856012542462281281706078212734706383762281257645212099869879090900125465093119574308297785332940481557854415037457210933374776691788883226163914158234918522450229034457396331123631869342768688493616471125853926863062936418373192263066310373141569940263123042678779736126177642281867009372208143973458549168638810691364482825703839120947818703967613347615073839666209487396016169875030537827327684830464053797488088550493083169694758094920838982394186735763225095076822954742929414887529507626657693570285107004303790647568417367429842952500292169814749811937674462947694337743126740155424296232978215915329415014569284078070912492456875336765364844306967855569457316503219355476799955617329559429043554820812807169131068782946066815824432650747978516660202743456183849556066690794765371546484599119338661074194309914925456833794067386534794855484668686159843424428262104312892258127080202389941744046924091545748425514572982106242517504416935056942814989591866355222650359247537994733192953876970520360323845542295506965621591374305179875384364308271152220382396789288444208619552907808782291637796455137336456754600422054390502649379201603567012290473279989147294139170102720191957305489186963932880595273719718062426206969729264694197152018411590202081550026465004910480666242928238635812332442367628205552553130878744770686338644466684346697523514196401784217512582503550979573191441099939334605842521985439579412906230888525971311944578754404919231585522494738568761228657510870611697531780488356270627076662341039262010835975975227461068526197330827942300485101346607127115997242310570666762058351927015582272172284115712508144581072305594260044129257116590145165387344708026061347789059473104166653661431334793460621765690752028115321095899727939947647231968242971521366811404221867447032855825218293360399892654395972247681504944626344399540614648209343333675961485657871455586981478805174596861534978633783407172656790816760035701464996937240546734021759661857297421603595519297205172273020852099458741042935842040775475257259177478937731816297925310011665110751278008601629634696830375433974923998438537482231308517045500060885775493459738513704782886473894232944288636636396900874366775980902688163613188846083565024359935548709816544132853292979542303607697402945103742072920170658223070881493545251259556235354216107229522690380615497952830030580148795219349391417509362398896281997212645959164442560389824703520512107922018236347672180758780997203458914552272277685524666466919285448888991521014830166158413544472380675464222777909949296875552152019777647301146105858832889607524272307884656981477652453790277610928952289516602120593333059771427807395303755370042463818656047486337276798439185469220216180960160329172346019705561502010292250136313758875894355780292267893826388420616203101742888310101947218347611176630881936069143634462458912192144763685503070298267524188549606614935947437102130478180384344849942439795870185940174694296194869749237829340819162616439536900531921668512979568349244217751482429622431475779610119405542546567023456954029093309827430413928647840369310024859076081535364589552468932532840075082260543767558248073694989952647340469756689815593701219844258537442492196125936907270597226681553951250711865938771355848537094121024255599148153798606739335469693595213596402312791115058718077842015046023568074791493750636063008061877162549673001994517361082067985398593818403922112760707652952222137874126366628501027254792165571450282425802693748404879855569003938684333723348018794520066980832296154685705764531122666965488393074528435002047490673345682628301752791752529477866479121086713581183209182548035451147137495246190234574023245862253165013409235093711327370706823544532679490550459235403220353356266242397912803598872295816830172437154952244835036414604686570303344975269601921790763723209760343833881629837710985615367854258452046029514101679580824719054282526818680619752908530737577257319181410454367463255388582079008576365898053614248767828783856077727657147251127632140317554456101442336772795952747710341222254271509945063016128721830127481824903770940532592287935333555421538486412866195053451667443547464268192058285125348705807746801100283604493431152414753202892189113053856480689202707519052365052808886344883345744547079323118076213981048660162378496838514993524882783458046538688929130621409880589627553083243493436901857280330930582868019592613706175892319128198768399948584355644592992302228137131526805950478752700281263977437953113112236799428862457528613181521439256750023243622299958098005977011431373760620917274983733527494397841725647447276635791695842275131666395194086719729401106304649924990349689178245500306454596978911677167857871940939955815345875744152135719781308393864914155736537884131081661746420794593932630037639378468029404240410380588032506852434070050707521372961171718957433813892155620174772163548046584393262691584267069277763789823391338632751956676966031535766391037627325953151703283466139709680217246200631363853651940136293631389490969239223301185243265402309752893948350565753158168055622752451225169994311555583529975023892629762971010661400198551683670710421812408814828951552448841469169972013558373872646611997473748238190030572482547222404172152203255935195409688066149849464948260584451966582859900614878109141107600280995664517823414212293330476222954976459480330807561040166755377491721743721345911576577944167661038837070442529248446426382678214489596005692200058314023470434620168019348848356376390655876638600781280599146863474130518118423695753484591994547151644581069519762392844585227052212981676274923437184593262653053077247148237709206049218439647877589741217899530729124405952267580114030291656981306796652465400937719659155675346620491575425429524889813535124895346147494624927924367508954774249423717656165313943193860520698673431138774562518783246656124759143910870659257095061367794982298104130317121506509103303217966674167020838297724338504228117046553296741967872352668153657583637001011719439743678773572910886128308808113726751597126334468442322726825170462110266850516742255383131984921492673858271392740736797605645143704911742063874271396384556976665613166488538163149786010364411850364767314334818167170524111694163280819283775855993283496731484036849712746799187950252511966948604401185113651132096006633177660719299959179115497161233879533875763917734179498459207763749841874865114866300552012724128544150883623657541663348125134545182758615897950572847420106570563761118958554007339554098357160165440661431253525089422531799154418295391201999697893374208591903524324806775955190269756006259390827887950706869728152167511016938549753498333499842666812131312565079712703382599910356851069418424182848656906290070056838020174987774837701905521974310449871301543987278885362029884983507362506680404242075865862750318325921618060318080005318761783503544190466723208976999431491717770259963681356870488743513479228658134082517993357605700003074490284990308513334592895353454477091103661922965163575841886546949769679517132728704273038863096761620669204443711564000628435107578947280440213328359381820008801269241140810081031452299355898337383385117785997362558807378342122123238718310214021590269732097344338674047637476782850997539645643567759622647947906633785259754848249408138640273094078290330480936044313120426927939033636577664692050026830426662880008305137709731440486939780745242269253109044292509056093215784567375730201321000077863382624892077307674512998271616863721825104562525840536951073120847307552020107122270691894356411261218746108390464347028278699150295969739294312993059858911192185680749187044192523798296644923426773667690539291625355155873659310483307010814694804679721223388692909798882712523575480470952685765680257273050842127412200731128005339832822021991665858196604173628164122096578728706171111961441599839792184325596398798900844333810646184597506103237961491411218981684626845755105044055738444226344094369132646026960792242605547927004336705969365751800851079553108100018043583457872223653449566678750442084677904617555888600440861066232773587424796340607219247487647355664799566839164367433334625498587108075424563109447024862942004372156900822560403716997635635741276766262603604542293233216843147031348964418328322728259156274657597502809077319306838501292084460247702486161752633187041347214714237164234403401352687710750553406169420575657277380858397600558615121230897540885868855470486311511474204025667072486353480575776382512044928122087967106362061601090355254801477250162104615520506288719272396502194301103369777657279708875869776181898472022235812396735346681012651155362003060230136710561329678499968067307130294712741743331759381602779678892866757268346728457223994708260049508131169625254611136705269280330157012242552954603148795504306096355135189777292756869375002489693263571544050765450041228761695499749387539720646544693049177345145923298366079144258024699045476640021464978775686345078370242291039187462677348084007711000735921358754093747925514956783910428939550844023199245525135274808616424028099471985436472468955259557486022120261463738504466511433038114347984726397556319381660517712080445079267079287354233923511525548384946999390748429628855509078083251564634333328522746811002643654614722615206700392935997824459431027518265329186241851070637223702206951728281901590175784861671420133056351522625401599188835753001390029468613905815709949473362066575989196192897008447652627130156047075572094747613479266189096387314241652619132756954762464920097095546717487660233309162232090680915349426679073671747157559826929477559668662314090080714108904158056770255289879963261461432613319546604712653811950901902166795132095756990956332960341015304000068774293813963155062942946119498457664430751266890158388809447014933341119726961718230688091136664082378614469093850066587293823116484907360289555357377942150410124118526359982039840587751423759262491534512264057144883921362340414906185133017580331661215549362969401698420034384979124895417191590668112072350476646714838050096050991450908527427360690097297992449145342725426827610297981932065436300142269917181581134926454082763658619976555627878406587143857245410815695042090885793553940839154391519165778008455221683993784600622882416488129298510594841998087174538778969195060883963668117819510758897165338750903663189554147960113826540044543267352656093224669677722810295876987501182850796354689953279248619039461107840033384201713927217322809553940645195249665718622647082590243071498017321989120222449923064009604617713333004310999014025901752253372014052896076304192543148693276612141358898588262353798955639313484327104838133737561527918746482019013349193032951365496385535873759651362197948795766681181117502979067016035676440443163609401149485214768271791547732025058764697924913145377970293964939875515580474853789441534639780346921524586681890539957967326400014737315569151884513129049117758150290388254534350881188802383213608458803935986239548569894931960927507127009722860477618406712405262658105442636255112075739441214794756755493448222652087686617129359085006695989223976543872996442366939339429328389847295968574818779327570625413668268818708802969098420667515077613268335257783067861996314422520590115591941517384447133973813118552764657834446302275467216005311171354748540340122195775927256697889296319711512972750061707867135018917061342978782099598893762206706568933677265933671512541029040441330502771852381132580203983135378447638842519012618076883883868616296396295159739619597018412428391610628495180652121386592351719083258356570890070789981758755546870993941063188114737495730529742370452727242984281156910307940925712940641404368881191926233957756018358540850581995162811999508501982133029273799211881460926327047756732001325903045779936757260465039805131215749749447441164915579670275279345504796565596770746642061101191260378619957576129026931115492126620350669086866160067965023089134621763441525164473693482063490533280090059474549607151503536261813170107834377418347908138208333799767890391330030705407286269512956673292911556813220917259311801672261593995426900165065871864816302360856229891814065193197091072586432867378972047851987217559622682179951486449923992725995907633067327281177847057887686889295216594676599555368230641243033717679343943351103138152806340931607143649557080175790848146662604585048739550105387420529879818508883291251813783908823960979744835633076284143346994480798277092643459771287983708294625752637541227590522263443425807546017214341610774521277042176872428724085052195934708237852044529636951788313977438886982574415480407987920325998267409267199305870172674031735958539584342662771058168802178558948126222913351448870355563021510245118617332631521041510944110639908166136322629678268878629928860825907503064540494542744098217259018184283433075034085404384795151915966703777211186588575487283065904888350846521551538558675375337334656275379467282091853248328398411380700902067329151175554427090927424924958352607151268562507831498226418465726881197480461273238037783123638909527156561965762901880678503193369524355758838015570177374996435552962106654929660134006249001688480980069930776849028678105569418134156819664851949384836397809509887203612487578317144028632620108290096969454998585913958419396916679809852335772302761406797569147537946332173376340946913202377962718382735080174175345884408207091473205116033802480813771298885077508064810222242159269268128692545871768694213336112782142055865614997880168311446612995248707036170909859935431744089474793760218064980368803381025567055265926881598017306838796974586035460995651098713454099124321871125994058452059498720929500026471418082249404745798127379121180792447331782834836993120318144015847629272535279157108741583807143985098791347076184203292632294562558671948114634690800331933785276670576622310367091123681544434597420727614282761799795727193193664161845042484621833268439172184056977140752556634769450224650166898541555345158303346981078512468504670092015437209402909808637567403657402214587800155207217831088496973554954746837338678159376596292912106537420527505586054107690593008517151625819972553356844104006926915528941080438108373837097327218691767755766732823361243986547810340576340226888834977702237192177253146943482724993391805666882029701360332660198423947694113958531397611966045522904132584075361784028577688714657834698603015829659371062360217447008288782895704351780883762446572036268702978800533765614401727564326164695647871642399765822075707797400409913114857244672205554690273408000728963498153013123469839260854737994100418019475308770380316535252344440192489190500339086766961061373654214205031302962366227712017512665503777339864220224558214946525190411724579788420958550023875183463516580383118337572712627435023487631571544998785981775563484006174289581409405679588964298404855739511984994719682221331714214586748040517756566555335868527095949129001879830480273455011596650508081977505213644628230305209956974323089161453899111356072720417405898654994934498130480098942896557116054110362493702104267078548094980482856918270895636633900195444652915760993178389163035719384960286570546853211406124727456770564207896597771076076742222656611410394692114190569046757343570487540147336978182095061574190348525570130613436101777373431817763360722776753146008610143297121804226368365759261365876315589019017280946897765395486482210588853846530136342572893977524947382178535364889749260867823246132041934800300062942858612258548135721853473915473905485823861304877580854266515603582447374517516584791333532512631881064563154014132991569487428985059339663906908935423376948745767151629007415547523837637446601792241284919332885499995854195542983297489319063690594482577132894119525167711424581898815607935251085645842383701893265048426096061324553350070407460920397479544409118247955972794208204838552866911053398657467697569205344564104184011103744426169296849603034387599072591796576786103875227446328073479924205163779615914340786271413090144612606304322695613675793236479315402593518364293421817032451293607405864763359264714298271789860244250224658535550632309384730236685088115183205876294767783228155591636117352741680142498482951634212808471610832932582291264503114264421932216186469284438789724860600693437397466124093149449218717766037129833048021426717003572219844677246333869079695975063602127622061765415404596922369550316543653663257466301851504878144303098214851694384554642931004524006146650399294977896035315633551255858510997512033184939469634827447340384676470215119696876331311091117843218639756262952012415150882225630903688934978070040607970838434931365588396461376053366655194386611936811837299900117620031539673589506426042644094650523190276300763379742013550358440465614293619046086590457650262245742486334130702679529097169849173975894219724086248166360893925139354172794619735420755539780270778994993799784160093045318124874061011943615354741183870925475792069893896723944754553181600207323440085266515501082897230169089926645691670339162282427795701000532482926995496970492127936756357716283771030947962137467219297750783343090824070209890658063581353435779539920567915947165346158563960108622695705260589616772566287130130375657062523744522212250390772974579727731374114117187327547224849897999900059912745964886992621419820800735475951002018862445729572980297668972762950587653955172038278682558732787871281142375940459799139185836408568156097970659537932493277538037084097888709264880075851063951713369256489172495519084741946084072385416197156221459952808675905488247307131842670379484826581109219997787466328671477601880947893489379489327090456690502904895733051975217808598627947727109268619190031087336719948023885209649170970398406667147713424792932210044902759696885904494392573244454749960455596623636917858588488668318988864507298413907315503057482719481210763793601992662818662002214198642059662848297778014246106901705225614815571033480967924804175831506293843988998748584052905929293746061234160248646200817132931530579811263281347613735826603961175937260791135292273649217169586568679263868161099138381849382368326189230528897190965792837606519994692482522875350017033770895134244166384792944980265406213375390075500368243364491112054103598651760770626288790523807302328327073064208431207516679818594457460418816241940781472957294286241706616832596556420611905767849868615676902807554330351530029731136311712636210617118150821816838546543509711325639145354441776648613445393792075040748395675891861446716798894509243450338402353225965645941222550862610924900968109862477260507165536047473457965430803961472409626714219784950639423335581478493261719004767460097782934236249280845837290191570129017565457932692038480070032561196582296077817133713526253532048444895422101441582912881083931579920222226253287076015622759852893867498972819224664852751733902499758113425343436794721427979093541120572316947358952459679698632749599584569001350378110522070334373907313810975415956983114141506168526390554166758608040416591095513890291279977842961213133775163143501983470192135826993894810951992890480754639521426800082128478442464353836820180415686727949576071668983070608472684718923513771387058747149149159618849036153395989303926592454428357287095306110645267628203752780310551127355888763509160172840266280433714167816445363744293855122861958069580144139086893978813287389902431071172529657570254954349090264229243284686358878667493422565492527761729904086135657072086123933195911321105593596582134380932086655526147329957479794056833411324468097183233890256715915135201811080988961810970076931166491476590579932691269915833038266658154067158049384780987261483665819277743906839797326544782802949078661585787515884367885042015724637291761287561066992797568727470874141825920300917644241518784198161370577789010907890058673564441597216649607035481233651352511688713603659520332636680279274036228917936191289095785539442643001124951077217281579470682416058636427364664039244439675503939529821457359175427230496048188633621941435228660560014588165609005622986529390763061443047285550653533767072469426217884954151480083953992425542547432466806866508552709080508516755352029922407893679298358569640216344546175898903920512698269607763847515667410007171377913711201136818173098576012115650765456152135086261172790226389041602712463453152331681220757197053472713962108970681826202388596623555512592304091017198960641745773822300303831813394291459639376260005536773512710522885101109237091170205588864167779132305682312373553747288805631812094931051770716125410254474429216457552499656004431868264984591158533447268411903716000184580872483119731745188294866575410617770078627215946960591675307234816122557867222417951514474671996577177949262830690585831062589576849980959780029506781841186377744270059991330664245693947909022853747056044064774050737664956869762414887997600210922543792878412801204040274810019270335385362357686564709545290984257536757866952389874266039421039546549800400057165766579827363042880994733438381138275018054623871266305521418549765379676850319261565988435096330915664783995895261471008282928895330164363264681830095247133303732617578648464682976928440449076136005389939827344800736062225731934035497923519487995438556576180990104524002067546775050081569909460323971363000722160983164870593260838623955330181159154958524502803406322720345067104327317487434170530694303826111651320072815996365959222652501552014642278797337424195416124706430162480975400831549452725554869367439850777269516879681129434491936240066141636532865730547861301423805880956125011556577010037082253877415599153875306852835553680865044943075059972304955890148930993689439084368817091015435532813898576367243853953012669225065325615235540777731870170967539669584844913568918626201488133428374151599186540819625943941622014071567673633257285948510775777047273088259335620386955432169021003242456972986743242826341719693557985485955620803160202889044835685661844232286980728640627042306172924131459640105822327287456961209324445258872037673286613843615007715069634385875633380740833803677296451108615756990867172541965804133450509868898855090155866038902766030930851033500022139762387131392865405536144349628390387114108162706397241583220849832486871466098096513794261267544922990983466750123765369390979532234140465258757428504750470725239799461570750364041660792184536463325982523543297109943160316277431342092586135934336364825622588557999626809051388068567141470541103343229474881759866167137288270879082307475145989571098111318737056124946697586181646074658875960812377634666857313194806722666607669311674290052335144748318351347513848534687712014343716527822051494870041038206540358622404584852082677100229235087754339464324658559928307175684949253936227943997905685250826418822640577327210239284797678520831952743982411497704627560934013859758796826485194883868756460526949170837076111060795434614352136343065784667787089897594851382626055868448036231635194049668475030795744425562687287906138074940222096159023276317367982674456031254563912575557414219273262173915268983772644680676817507602145513252788668730532100684567516811728241234455699357349863927366795407922100609908776086976393986721772503881330187602671111569840772951300503846240925004853646987500851226006282747090897587674199651429271632088738897644823465361783074867712194653356851209872221359907386110884620344463013257231593570331630279009784368083533317321782289682661433166396394189076356217663557370571598491278392785026529358266463186832770366800518107478716007515403342082283015459299687846821673897678054999246519312181770036704667384061457868807588196448706035850730338910399904928089882681938652013156129780492668277753317851896559049748332600420506181261348983217250416462773783369130392404517999646025728671537750703362604408080789382639293350265369768176026536827002378351123042414823039167958929224531459547597772698553599587810479820414994596899914240944012420213895018344110744771646250394719969019331175730273809126067734010958913669787523796201955195756522804407886195990447434946008073071711704087504321012798028921716389070660686230168958293393632624237702460581120831217174020944633532900632916646103023972099662942309967124096250172335750364737455641603341771692297433849731695684176745020304548042720663381302937410304450034724108524119154083011284449445345013895766062116262841395485052993501135811140197190329300796472759401527256055806834632306537288611425792015929714556156695351670133158666920432506530741322030241943586467333507841423901692447988490445271550850898674709945528496693132409197364704029759453648519570427782657087626712039271923136549323124832833275081335923471180103101770205054772234884754496013994705512121441727714232152671882819654730744873029824723257202751901052108469685804801814226901891366131303220348189605590018023867361630552231102191912205667490604422900521110058053585089256695611867476097527459003727464350129619325728612742594754222613146423327028560854291273478574403021355001695923271043336147764557721492349951394474308923424025805776778179280525315331405184664727761073829395393412107751900907198942888100797532560690350957211204783539670423922476572279336218935509032441396263399268668210636275799096721725950292308446325869341719731786634287582417400601134647162572186059890829312585332828428237630771847748765131839991422578234151434403069454381974945516209502328340813313397717606649658776168319632257497103919972215648196484401497961244148158612756660939505413227116507123205654733204561368487683895150660689494360639361615794521220817946027565146773463070228619347170396961995687274648195833302878571940560399734947328925284136055608645139248689334728221420318181456443560617141881366667699083948242141655556275335850781157195567242625216658254440048920816608254282268934787047985780264037784919129552654571649855866316527378602117383793007859546836307315452593372179536643488353885805146937760891469056993722318830133664740296539607787560375709636966300175109389942975681609904351977884842813428213804529928643939146307439982724734539246596427841972110131632868843004507224560991089141779639672663111454853364873935581699211459104116832537723967384914188323145846868814032850941095285554195781206445758172071405654052231357134104098053691849634015775096101086362302491291727356308868224424697926444973236346212129517923350416660408173459904884673247768254960673873758440710252155551874031741189686006589728323411671726804026841070242931078837521302587964104695029838554731916004799163713358721550530449468175073586462270498675641092877047146260981059571632697876716208285006910063972349356529693674595029734960811756472689966103076187607047301581359511320084994267344232363000387558517997048052004986372424717587473304038166900050780660406135802718184385747643090672727016928747266055376670639169571233437223867475392428349409253323795930840304913769658510104298594926229409345881698044069695501953058782420722879856907801748698864884503004938481767709097422572219131604101340226611438569899442281989088067649042066846883000724588125356654530516537745116951283737456397632528813702025584083664315241329737928151061902944254873113929840751529343218021865536254929769595156304024523364912848975116885891901860408065757769738431573772513358150225840934062722450389863298016799386792851448847203713415539384989580478679923213587683056693307380105653468016475576048822872277263553492847700127183038352090458192958784585051258875833586823896595688006697690679125255488152348488932514941648863719547878604257955195879728624530859883154959479826489019464406381149423969652016130626866633210731324330483687526998141318016072604880220141465057997064245838390979070011664669145396435342078009288776237247923634847755741169433415243661125680944753589167884816406257100071949084507739201321903601373015217211168991704605005249682910871403615097602573268472265900978390962880530622279263133346256920208756828729649318862592318717796878794445740441617076550216978891004158072044661605970521295855170383108173707265333843716350552822029514546603810324562530807268261194367849923305482836327217695870321339932323963006445181087790179584166063153890828321040322022852490126076886858647868129846536119948834160918565784774759668305070483356944164389980562278786568858515914289291770218307982636934692535533620281556768223151115649472042915471788276882321338606061607025555985654423271752741150412026624543464661314483287925175981749599401707886944515840773473700284177405030906413785114104464551603325587162342442412559218299423816728565202126474775686348142038553524826077754424377533937222886453989223699318351691107862786636049191111757202180688271930199474250818313321157963392532212646489420875661298538747025871977426528919984164463610152297188323399120853732381053332953592637193135536132294209328410434480912817737479162017802779209714594883870609679012015102463472955923603494287857934609848509807050450318329616125390834401307579344451354525354365789076499807165427791476277255981379978027033998964749741715912366735913506697681589445482556346799469618178273759895112707967303095082525615297051006848235115725502659592931447351797449069899401737958340008836653851002186516006260574567662417984218626224426932140468055364458813856615434266830029885779119040852367736826974754236443017461451479013226248668384800101532186245744985045283342973801756441432192168477057121887583469734921369041091193662517653329082094259241012404265925599403970636990718908041682150749489931014230232808278689889327602873256833227609086391545297790525590695576526847118032200100617779757216599321252086476023869288013858443058963381006982563588574792190824504479754416063160224341045334117905235046228289641637208851289765786498925141459449476252719412974274850911710547825130061160070040455429571146091055925093967451127579151418421913816034893758363077329362328527231516045260204400930203837852671279999979668673109449411412088676356465994808388315407686152540872010631746567035213316701480041755414856872157085865943177030993331626533309012062076986444597023469869027575292948387473088262157427779555323956339491522304353304958148450832465082197863356036934099613358823773308312734035334218190978271912267717641304399022096903581061038605011313530616430498676224028613286342170461890931710489383486304198533908361791367990129820459056978980650892560742560906655885336770040033061933704895581199192472789354224611660663966049313897997629938618747567070155598105244235327792745704117240113529812594242815477484641031698309992155130491159976994166238497203156583174690596048336320159599063700041103765341622114581188604424564109023183081028383251353933282223479874465643305815381326810139656556223541451377216643519119158022319728556715926409157576903082773445152706576823983658983226257524526179418749742089859462075322920213499426383095551781847455272727824013842225182482143311037048773259487606345876519531718303591657882347668514070935713286853734167472693174491157206857204759078243429396669687753078328835654423857312846882843144149566174351948212219539811219404145600058502342882143591185195665978285803775842507161036214460469029925488100038922233093898538130896287094622367745346507188229694916690637645126861499385110148969800953725666988135450921749914829025724662025021849766425231987167109334665222357773920637884492780448191676814054835507229281497828521589864665416855528737043994736540124541460376516758874658957837881869835111534649415891716633246830350635055635433486641866367667260531696327170317973993421194891056684582974168303748755262919031959828213235031918721199946107922516619676003738047432323140140920310409700260727718177961448466993182213594505458907577288557341798607779736906298244953395071654853258545360992273920703552644107892004091097143979130636920852151773134458430065041441834126412505975671528361932422390310263934575815110319142689966905755295643872360551606375913646904346295119716048936161148440770106217961378888468391248884178686672367063811881121227724585193975945668888302672591798912224322843150615052131866904965192595337029822872349548829927278541064095456645502805432003016593204142972796167191101200237936135675816729681441364042958508749409185173919089919977960132162754356982631325036288327069512575679007486774191303751916964330792844972250417319143851813951024419980398798973003642708351983750177443142402611979552437358237403838708672794216519484652088826044208051854535101606729481972682784280811561509464040767173118025757395475675442850107268767786888491877903113291723707451059891772539569358874274427889112882269253117585878835542194809848673839522841184324901301569471963325916596554313896417459087037207327115559272688090896768695927299880429442490269148999999626767403848480145813776288719234954870645695122486567565380724648326722360667099835423420157420697134302085172093215294423669200502861041624468093597050757597560797405291075699719539812201402177840041390272340580572650588838261123409595197595145029693995055001506283622718416099495722589120943509031108084192752719167301920248788314836317487672815113566436280148448268114835816311992800440056704413925281565715802140420597565247584846628407753473716492774851966894080361311820903891909928127856622635742839118220401251077005390000829989421612293911442634356280496398496978727348675321820962929072173114225152656011930471958049365606512569175778672536817388984331234113530031134011228512985339237755205170230340789914793099589480590224238587289792834246954640951242162274762778771410648684770714248177695536543381279593331121593691436751314150711020631856342988877272708318371541732009245607342921758331500406439994468315721217716737915006518395401374044163946618487894207637071988397779640532982953265957809497150995018355332177782409329953278480753680303673759743434859403797021538990854184930759708045089687589648910777681140660581396129391242102517642882972920369636255303138723797085359057015039967909734604491779296332059060137970767798148737206231303211933739826260124360491083759806857834148653580151560303840790511436136022583786435870963908097688311518479415736064161527086855610158509111108083521592162440746938690891193503370445047250683283253027320039866277907736048290893807808917308353302051501877243777630526486472825587520272014370864253061668358176160279250618471117064736745416346940625420646694204048797514497982844837318309840679654106320001441768451537380111991929772300858231869250994483609495467290985483547113462026737003666799599384015046317049107612698402580935156309699010149967523231577692370864702394012213132272702943218169491942300113800963221232362600947606213443524744171292787187950954848426343570352996916755818575894419982163431454523714383630571775535657644829673112537616859664829352429516754313552388221676837654638664079078074942754568290915386781289045052869696559540911838790680610179085998847808284931519778861167185514737245368011575593512470155516460564434014291573469739206459496275703490833402307282756161172626050911274564503455820326257087401433581959044747880159209313393432974758391035437592037220407244573038087432961576267475109515422947227718010062543205935252135701210639358899585106400296812086336983158091299183737075198360253642224923213570852553965486486032800630027831174891510895647689553115872707098240239751482365933236356614485972086071548454401273560474367737490081306831370057500402955459048279382641645396432136568803892114385971743602220264226329406773308999062491947672147305217892539077655055978125303582523208714997785976509672667380159388217439748900136904582919537080020503109669721785478254159670013257169506195195321375739594284510719520599612053813010875191538881420020855970623189935453655848638582967848419358404865417567525650017389952300907096930150401112946828839920417673463266899609299287620132085952549132008280186154067928922665113457434277316202404036600162261690377519912768644890551950644726635466432282376375632140604627157984139948486617864468321555097834366418853142585363460993082375551358891128376938813229375521167734851101325064795869800217071408190414603413455179570430616717676219799868498673126939780434421836898690499482400023710775997327738154148075685275189934678468792707418397562892035150330054363304099118618389902015443626653825770003532634056167554485066726640714645998826889078454887735230257099483704001164254770546837305060733673642546725710977742388048485370874997784343472353357271087126141316572532187308991381329467429671380609546390873141632971749847718253537669049717830497841642435826455916290334317655006309424576140551581952039253573544442656041074551731586037799428087089581823543003195459610957824991511555327792946110941432348572096660673368416295810649915767276621301660235514817241403893460606837842912789573969706441029845281843445043995499093192867181915598927452891980505828967561423094041662095096989879363174612961091582310168495847035402097474519664739204577007648973269884488756922008152872283781549654027239011104213490404061883464383624174339321622082596605072697160550870926378631089967212491137827413637401664036535128662339848668458475309433151650139945089108137876917280666513392748526010647439988094796417704998745771595181773785841894482928632796238197249268939914090993014021610657572051587858063294882238379707540587321467349876106904250545386256787695097886412670681484924195473690744113304688683601772940182748313531405717169791018918278205243359288406868292799983245398683417623591521769012007505137445884572726285783511810437637896013487938227301341558924452502727439695636473534356663875652839725506986409500436673892613284504825205792890209421373572865867565013135244936004244619173241682855633000127736308778723580797936208744158187559103965908785089426880404884504457069841490130583214258070208190630605724056225225657132462970922436494616778219177799129202672649569045835130491573899734657995297423273518467113087280718032349710438679570904129339454275337045461908193025172644481266952099681122830645986198091643805214811754777995001864965450061816637407606350264143429626579593620222302990318474986144371824550223880994328673289348618541278768469724254746637939825444119965135976442955245156533115201528899290448859821019531912946819709936639003271564930045161624242443761770842350066841512672910317269231967085764629083482597945986301638950666032333582751398538825904349108675204900617803735243960460847552278744657771422560416365543622903795895394507490970984602549532671801694818688302766317340497371063661673410315580633984266400846378534510778004566812917945553038305301525601035495630978897499050277598469985446939057850682985785227246438416530204632784373223940353347216735133360525536744019234017012165759027220038533904938205001891722857855234368990128736389455035633708497965935444270982448669674316450559254299951425901515522510875864222052075349928113135826406813778996756313121101036870818423056644687327979881314364354033912668255509119674591367070962583568832473202082098574015894384605497496297645566908369304292140117971609326340734671075545991435034053287481194869367306959702983531658901163562241299585709810446782991187049460447676178479264175234746531557614467238608775323837072568817049329866861892292569926214232393344365047892502548491470548169215082356217882946570383899286122567252361354886856611558979432901401570973186327696470684332870620494355041756481305765751512540230614580538381160918454723197976826144585824261114396594352793202182194527365449580858753021872350022764438226586135514427536870347729734387833068505874452938888354557093246233607260146290424306336003447625478510725396615930215362457358196965965491131209599896153472002030067255980599779333351567624065648432672020905997600476512593231215100926396066264839957992010654559232647970713556640936710758817553839883537740270603689862764280946501758619090940141474765249736816581233791124365850244436184896824257852721269010595756588927436452548724704844497732625074139565290380642733154593718395095549729436261293668737642239413741238709885932806593969833989095551457306349152895952766990438286316721698912107626891443990173600193420175725343581290791833065806824545648201768264295546648810630575081854017429474322130241075903419173164370145267595724414101529182415709843442535607811861707822005174312102113968987140227778609609720699141913880260968212676783625381130966909209110844709814528410253182582091976998413858333210925933590769752993521038073187810792444400975098303072799217255059935727385393376187612060562326876521470308798319099678087481790397175015126804553000557252155073293888290696375293757482549825297137028647136377621503923702442769889996084283291626819719249016370223827810085953651941115445806387390167776754427564139067471726670652674997293316852776135858983116753671106962184092092867699158337483865860861645596958476550222713320443870866123709352727396711787764140974724210431125163526691302641377759865178721587723610898946231700362913143827665328654148026826168627673192000120760726599828884210447853707769919431697643205151265706034897670525973658923692873196707768829874711980127995276047726142435412138739369566643789645881170765549731003367253686256089858513654452179606484745746806071385939786506557921628020409105732379686186398042192195045269744923632498824764619892095293416970310624821615662547771065323073794540253242729365529007044718660634815884216079563244179407369041786708112074170847954075032469348761266335312200518658613805314392895021906532896290319159064414811086823209225542783341312120785230281018624619406524257164342199331099025065558651630699058544110033597924070149073027829509668751056600208573830046866640631406178722168297241313049577346381442811885753375971434118098824751020456046873992612184603230578149494889926712496611831942330624386261194478712740653504085450574646566938486037200913584734552136290654330719420687671283768595598848808297931704801449898800021736548233060127874476000837228018956701507486937961965070916178794167504052328077128870278607914139898529635951341294265169610062471773398652262545011238271005538186543615499050430091600249543230519350776875296617979838426452577957526735625788366332706465615976036812879069395941634726204059312232048646951220643594343896582603600317791195244046827735957002158306088836846592460686021590708390198293460109806387085203905533339527933618468447187622700801668493419188278211667067963183888011196187184942657019307971971300436384027503976647837336463775607327328507464070499004573424266787398348878371792734811893497529423770801718119647956519519352450637708316732775378607015017151961763976277198822730939524534153145429895735751584259087145910349564598363595123806611899245325393410837471328217636895991470651945542682184254310958821128331301484714216104059286149824449214669844352754810071068819341161058986154284087103859817154642644421442464586367690919430708889908423953682732123115872083325706828529278216440461339463533869465250182682177310289017788813398434762610679893827266917629985864966072084975528460147748283037416281180781179391149152108223955485692120299703144115132104366790008177397804751244226425318826460684204184168092251221224768214720959236602593829310595735057928800088759300870104227300253518624130459806845406985492486909983858218177908836267501929637459119693177448639758392982544405697679644051095794985736826848515917402670356056382529709899412255233612766787767636715285448525881944099324327429990781516138800924931684332215164307998367491931882518198023541605629509327725956873490218825570092330689620620278040877672296691303531077804185805566684531729872736327152932339375994372850248183742886530816133883233430329036991985338901059373772622850712715947536823102278818508422851972146622157333445173534859869133210244157509592785830621605751903780335199769352918051639820574900616969912706909773777255983641459910595500736754576651107378767930860777514322378797954384464425601542223383028812494295563591563768882754501942221975333884313998641799407831124175673744544878778712153193228361304761542044126888292770544990447609269028740624194454947930980577190879072624164081119773402959780617078915726762947945903284919126135529751087521487008841645883650683193072205782109813330403612181368627079110147476748921387263488832424008232783078858639753311460275283096319244859580562533873876895275111157942451117727245106406169782012256218552642210657623368524943059046407822336214617967204590525598607063216695306213470413695271082946164361804584228578987829685116243438622753677907622251548568440406674246932748947444439614662954667220212017088992989012039749213917718162971993223565259267760861970514997043021322763476370042914167362830016264015503885139524424086093445197881321726451612783589902446784563849277261223392211827540345848351842048187429234520280666235816395937228674725432866873740003578682793815306932715891673703940109809836615143830143104215993215659846381118788901038161616917296825752639230509249624879551189032555540326731577829886934996606460455703375345776027659184472057952886350194934400444763097020855426319521957720100545981667139679154091247785194466775359506928806327908224066263628824963048697011984253214354342414049560845421916807789742439481021730562939851209821445508589115256465045167888400111856030539263281405198527999950490256778137601768593017287646256399672360079094911121153205011320981490666726637693728962598131745689721030267705848054402526340131255329505936591943416653057783430777038916754307483416201276645230692531752629847477842998951271743098295081442935794615075861827528708275244513168542559755159711406086614389547963109797262010395560265721923333309570348109233619428473242215979156101415651806828390790558049521947872063115557521562174366663431124891470053081205197853467727800433899042768847249325746686940069851070156662554005637465676416735526153997100265995869472062734802105805943453709788051434944610216059344220726625911535523179417021493684617645940212712038216364766962552059223516738061059854802250722476399232129925847337556265500364256315760720012902958318051916599794010355878570481166417236895034999888013080052517150851684622055551749836335504813107932118666421373654414207811795266121235293263102955628076256727726682849007236968552262268306100005656688824151568412293071411708955839679942183463988059939365818926251918124683697083601420240875260737458522026615038686734205702600870842613509313293475354218293337373765510891146873448752091122784936610198474298606665098163010331111582140906991001173482158667387525877729476905666562939831585148654234066020163154828550337271227086377812893871407069269680260533081884240436571405539376720324612629323117187933560111762611892667521564141136221954354286512832057847572727411028724555923582905275753031672010523364251618806207277831484015480594218465423308028826619207925654756898180984061500472344892189926324310444044431588870092752710725598480351143423407074337848640941244187384673885466643702673284281399298969817967798444724467754849692935519736322731047258727095506497355241414289133238958839667188739507583555181407436133120061825123502854153418683340295221441000693968232956743982519404981933297843166452753489103899537821767256164642006153672664474915617599696487680064431742381806355465103729542669679507085258394828796221079289302213118949457280074885004117121136488584059348287897166742158006446868989587464105939317210885131412696246516735723652769901428109401550016530090977131140370929402871740942055183482836062317670845186492258547505773698540726578279567010851864204704102179990491853586296209130174254419308354089455641246637845769762936471746949611481320494544493094651372035303135592149581494724989372813440821365116628480097908608026882004928499957722455012944066555354244100756708328811239590443570517802139250885308761287588958849420935777067980690509292739829781098952363187824667217109154402779106114592684322506008785607951989812294409185241119238633644170090980260274529147589955380115004994156164026572857783563592248906166200979974092058139184630816010987744884054189411384717365725622197351896413151253557611682204518131071536724329459095250692672994865181350161093942144968143663489448366197915492055172353179196158951945833116188082509251846508554601846997915484453679437882427133647795335518533572183543948481948860019369101306402411491744882131651490555427870085337120301804562731633692376345901150026351966816809222289418474219932724768233152070134956956144209301709598412948713253213845891922310677164008477567294810509334257202655767169092323035716730002801010630838164745879058661690684877543543879311105542796850744728591800547829239702734413727671746145731011238912829900829530250612831581009947704781069939793194456219286821971100138301955949277073473768973850370850502866115123425795364467122114321528375622666642941698102369504161232582816374547430537883376653689484807143521922492348982852124445122402961089875808233834358476824900369692358933323880326891763186024702418071949673754046298881337094354415479405473146639088061898152173853059686098066973162629361213963468875639948782830592596854112976585771365193874051005758353536552552707030673161016669430605070512076100881431551838012748574802993467586486941412096247571920817476478689664063692815242417499798290029131839131733298715472629435936606158951063234672786706093549307528089306711370897443239146963980510179124309669695059485188056296422631230243569374742086384556959154522686794380295466697799405609189612087544766297187383023318590305604870595464553180494658633683617384801394783535688818251117560390665097662425800419820635008304604540735744019008106834448872731708685555346203241953226476239426291263669729629214228913703999105245061112963930272815800771121499290375124516973703815802185998372689906159469126334499567361378190946542582122752042801842803008435182964558513488597399600042200199723377916510361122852004563543412407185436172065330886910787649021297285614866058474132884604581130863821005402539040816533133678260561488416631700365691372466306923980406537635533342526356943789018188837188449447836591698602505263778749593956699508884394566560637137244699473095376935363352847183094642615093447114191739001334038358827636663791573946748956616071970519014633903503617761878196919556158383041047704131882470589279241754458850761658773470723656832705647040926042005858246582987861308970142788488600990921435426033496749668727585304545283825951259241545761135343036302097172143866104339413907481989720356517827189453926666346476451564582417077287697712380476032570682394511585247570768084200911430110406463182341999324896803229642665041811457772951118435089231996219433034876847408049756090825060354307812664625159122112168439160417021651924725852841496754830314812481193695554832255004806765288512825440796896091401031305809853768307984257373902097766247640047419344998501710646170037668327368230361495978297716142809058146717845605992429331457817396346987383781710470484492621060865877448824252849209679847699145360133422304823717448469373313412700016796688996593698029617509974734205434704707943326543521272590447847151476776248690737158492772348409725410240387862182124673398995193184548283822009764117428909170969159791779720266073161078438079489519706349133985673732510324598805274793424510389720847550766844292349950438556839318189266751956970556884078157734566726421027690287026887791136265042915337738030375172404396382000784162877427455996169972021941155318810675091757818019444364964954509345761796498790638064553841797868062116234350702437300076484023592747658010074693582151910905308216583683395121173703606857556918121863550324292622155430271126745151412488886267747520134782818560544776644115618363315660536935128328992317054308536729627286273144135011437978288499325094421844107335486357135017380037361149846047664303201644367843427658194508024921838609679248102987091663853580695578660266092867253545900852150691861967139466296838075779330295532396589261913153348220371927255265442647455990325371334843738007497814462795405949191671656895696270278413510970465402476224828854692970970186524949880411803813355496540619520467667442137022177467350805205453569008766929369942542260961008452132958111105770138291326624732864564510670157791292046896319170004141709544852034128494416612957282053442321941941959837105412475579218912955921376546489403038511165815473174683945830692033648767378797581242160544171462990776999074449510047301285771534448868437010283470521689403747969437673706302296585735861043638600689485341519556837529829519047234079961848826873110880661063871438417847890442510134424498628797866509210259652213437019599481685932695105694881094041083880808017402026467828034679703276945442961838464615916722858339497383960717433055228398458414474705781519807953452131606662362614036715402527339134295571308339857517715844316139226761883603785800377565365992635871201457266500042816301128737829474010815076000311505925406981380182053876242504835222419273868041766300079698459674987575150993290645545347052704309703511010535544526843762622434405433463553313415569719285828598079720222160094768296855223483989250179886738323754109186478283482353143764265662562649601792460390506880334014441369359405914673873168781598104476004238264236385098989074732683432467047633077671742306947650212734816758953069498488468668236391373260350040988011383569159333029982889629139870388277661847612369927845749252685508284476632417195289199459235292610452439230480154245956215747544340349515423696928148132500146230567185099827174483354011295448154427592666039699333373074955435132592838389936153585295447279290435728702438279154219112094296345397344378713742773627841420384916602274650131772016393418824358556826373450282922842801781899330842085266397294475368700326499363879842746368977621197089993588523478668307034033721691833631802903466455388815097923710270119252205039618876414970983094294400392908440815057585208563088683049629623382859129769857997132715080982424526525270856052171242244630547844410984652974981918729989586110676207491823668575574598619017854628087341378528353506380377008030478221381246926584683508159321872809388534285866223998699796640812224716699974370836347925356600638914009686921640928100724210369101213743398519386307935401580910269458345196293948328647567234226018756235590689136673848454442819882175457265443861851417037984664905081000382841829530603787963557529676508699038732793772468772746975722050042938294965508485582479704113151050025693721538239478022513031302108858932612870701158720702722567092967036875619765702964143365903959206207029999031246178475528956833043154495570919209160280802474917420063128182004190030432259029269356484349278953911448155471910366947825760224731643121484555581784393438602575102091288125947670529830602558600085957676426827451455412457630615657590215480800609884930846241827650495686152322411205316125967098166402872939967185652650533159493955825989941581307094212335176678700032919651444768738085874844086733268918574117665647082006819000959649366086635489618121576906041600197229713023094899662561786337799385767477743468936100092715609924287601959812913020024613093133540048558048270308898847703220267316204610997247222761217481430562315235051306248793524178233365202527764769177954272893594527844990384455872516877798217016565046666677861665112492265120701279888352250991640672142537767321655543971960570974305466696735070883385428135075948272882523195313284860828815535458942208454513207087038979319884803247925926403089979559244754696484928745308551051580523481771925122974217351093622781955394024454842861231727150274077511079335010378595238208501077037681255345685574856788350597587147495107899697343756539258022293482775004195341792981646645918464852499172466715557323210488230897409056588979104898720834075591640301821377671870597448256183891944345168383629126688259385846576717330950062530798470493220615468736964793362286982233967326884075865833371034227993541493472884902351782589238208783247728978665540520625515339267578531766499647234834928569686710019276967258154571316146903041054506459287536817451902674674903702445695120091648303078915670051066077297023198524547040117591414157582683955932829874021583025917720038051141722444569725906738697532221993052580910498946937918411552567413516233368303257237385646209284557040021666083014248195350055566784862461420435050434774433858374432844405540615114874429142953980497308549409059050963581296297043179710061062602755826638034070802358161735810771267409017306965512460026686704915656756754066244800554566783644605525987425398036779452224695497376628693853461470983303980190003292117229735157009457279434570499763729582849960042349202230841833795491934719990224416690572406591331887993654707331223610503535231704366027571562980867152778839068598901289880373257637514097032567042069902373442604745516704738510466387509414471037166106745789264132455343226353514678540970926375329566618661857925630241866729448634332927486803178316194770115279862211005064586956484516124988771254935912050024669906152808508593809818356548790253887442561310633331687627988678849579377305225656693132764044819129458737980995041062916605539777809195435341625682737657828121825801535211572045949512644498918625965852981512386756473970248368269366957802401148732593538936353458411288834969630039366263928231039802528062974998470518721349263995682970568123331845923863105001453608124406333569546482353913116643957760578887695848637378315372238792755314542076514215294785157875380528458078311834979020288735051432823629472704626894619788635268264454383621255571980860558057738121323285619034728651456383834937872850351543087908782377294373221539934095794993891948115158199750387757184328594912005031811914071020925244459825830348183646244765747008949064971694682829673707257921543845568681370237557062572789160896077274100256420630293161775471853937932833472918187456568620487781250616535990630547939284197592623326884412298994864456109365606094098722094682710625305345924919258559472377336667710209277273878727188270166043965342759796115779378749703089962069972903223777395721551075452578398238568615230049483991618692893022152744580660436565541123108102736972184831660229443063509419617635290829613575696266549455876695196946831524369747264472486126773407850492820251741685680705629679808842166008178040773588674711289800781997922656759736984336460533199851112090666404686093196693113157428508215593557611471226168056538209477732322313785127004903270273592281452975713211114359975434075975644975057990715843720040799418913390484658469330384874936773441576685920244242580016912110842026690097247275377387508623291326826288469367196751053569888923651583972350255154704055457393495818109992530966066980546533947016374250268297610044387447859878004862547231869569281372590106545981408300800193676765009267305121805053594839428016028175672255677277275220074262336316055858647196810527070612418826288426600072139746509982201722524309254876704996064219245600595784709970734840973091655631918178009772514007985671176218377375949139149999218680758829925821875152464711429224774238893616215062589718292466439948718328257384347091272163167016478804184826462550251200188745036659415480178753814663710471515878958298725817420086898574323692582093144176362486561214113968273913054797228624052266372074321789151495243028416072884489905628269001156011756552616507581083755096805847077109232835099735605852799071378036271690079933291654118572431686743909372740321034226491166381134064305958687013962694419226422398095978352834767526475682471415015764947911967833227046817186679741492424427279875674894166511707962397707979344212935075485767031556168036146809925133036075915972596996797282812011782120264549331631912959946448619052025407224703004273827122876997020844062268061103351577650842598340206565045527061643265295711037126720106678710318752992968444277636930585207264334438313340768322909961332411523145379074056450702900420887421982407081129389197870609617236018242682151992364034545453723402109672451484078658097872820863348555481735675055597223062927349574823636637703298474216114332478990364618127808406788284605672552686882125409273265886899723768529908367600576735846261246920874763260707663010665472122926713642168535507737846479363762993979914790833443750820797511567734493543665029393140918477025906242262986861121327689471112458790498285006399362882001128709235878192149428411155936578237101878408760730915220445719678462202856084890648142953598949328575644787609882173888373225809890172732547592387348856714677847154995679011784787565541891616427108436749902672320960221381103197161802036661948171478233910483871568384098417558571404580335646178562437303670691495866002594980650329674185744490947024656693320944677131125774689247257139492863616148154878651128957141412808664467905660212665545790483192767377719669482508482883967771961611525470473404562107224058166443236286318121381862625455088295169267742836069238247389138292150357198028623156321668170652624633241550369628438089966149441395185688900411666684671666929323365080980100556791277952956585486277851569561526289866545660730173190613392338289200222373677298268463329457610185313366911482774624860315716430716387234773918377728157545885140740102161647995077363606937172171813247384561190880571077641341552727255256931348154881915481966201448462892940197489109393129878218739635177790781176442584789639599650064414238676119430822972525164189222863411376287735844724831984802393465197715319261277232535082306152516305348406268571805150384596462294659717141008521054596152895446786181610101548170628343029867314547551526168664111253193768489067618711021031688882355389657408619685649857819767424020500514806815041149471708094610965227299534234506818066573735277459630793809368013742486139295424295848561010134896345839608292835374618900235903879041711912123031689477839805371881221494257067061168430532346769301544031180492670504724684473072891238291142969216341300600733721163024084369413928201840844007778828424486843390100382438900275868875066505351952180867558339309552189184307358687674769645145514337666640729958952642266766901894350467202140705185166805772353036247615744630269733521708791639130023305819538972809640271433686802524562289694251958707878167237310303093758905433417243533280181212275548080648086132980125027942485356637877744096235353237506522109479901838490218665429532346952545337772210448958386858495967314993291352504375842105544960590533627289470976482793021447206475094607811358583214420989665933551073763583613102700829287928971118596077597082851897009114423599319276310435065530027926747521937595587783078986773755359266085803453980766956355852120998108684878012304590382683140580527875473228872462202583475228351012928878337046565761346360070058657043051158577692242362547724885119129821977491923783597647580891731887546327205069905491050948424263834693039919042734200127350597490135927027601918282025517981538829843931739771903170821426375374656613075288247109207615416929745022802979192451590957830708015466849408550051335778665391429667663219491803769803868371701141460657126790598968203740275576900499383344367978567265526767170413001445117401363727627598371915516188049903373698491396040669084180475203397339780985287335239299001960227902794505167562466237668143129650035617546704619311121005340935463713584173381379824502146722029807472055891599084362347620099414802484623355730112767293377701627109029815225655015887254125607965995562284907240858980190645574467658114111485610210792769944117663109132426138405462387904447179414857065662442063892452484315954101861981566517402213835805756173129085747476915922399856164929843468838930367121840540876429232324093491219571557749681364052452236813827437668857280649370628214783227273221801106982498071861316163747478962105479947857374390245590302261622607744198082188147079457944062318851187964333605536512630598979977706887323475840707040730289282424252248421721240108292899933218246088922877629126929689932625478327289689987083830966058835379593792658754620424020513962604882862994577885002046673227160177149106818699811414873786340687350873781369672664546664693846300541802445812129190234165429730504298621972129658028756268171782481453459263606135055474233767594442923348469399461510223890738442951412888521763144876472241828729693055125412901934811613000080341329048478090221599800701423439199719147458575832578766732720236640514750502395634109601349751717480599319159405651390259252904066059605637394118246290472554084942202945878088819237464468815385443953768227759658258594993378175172371112134421316329334246884177925535464769516021767318125262729377189375515740129327361149495027720587791185758310399863734622986902415663245820689285850073686765244519311218281872409474681938778657681803781626757195006627565730373031301713153659717630483610004647372516389057349751763829239097712863011377294007874629869260360221550082773933983697715882292523265076418497086335383403932319232655230214509879461022245458681878500959444725991208280929932648872731971463327198805687331211826385884670167253174959691246542709828838448729082457914193287682823655585335339530927535334847887930104679361617392698034295689710706810187279586259173478092059784992234302627402620921894688577886874544922019820810945030217434956248449752337063173881959018964109088956612955403229179701523606811051825494105875987275775467370285922032153282026823196645423058685934390098960840331459530504691089887669268315204151473706978985174521690345831527268897825304936813178216083042329224387563637224647586386191406219148806403773776734315789184109890537525038363852971373882623559814836271956053264010018619987751957995251827414423178784626839186601184880761544118671870134326456115480816754652246116250609568414007887250766803113056226319071674220798296130658175711330747385688027874138038667051596001884101660684559245683586501633325064153915769001161747058940174122980500657031959176471183181300460864008506878523080856607964940416212249542784695524610209681311876661002273537372062983874707361359145701009452291185802070235556417041241616892851021174171587582872937230661199625366213416121964632362730925979099441715767898670885445246052707551507186985512746459356222112840263940221250165460253565551361902460926358175745564131825577230201794125247827045253237070687014071951755701110639736268366507699874008457430335973667673648926681613368101585686782035354604601451674859581427981021362765519677142038053642080687855315687163783050871867185122591553639885213470185234198918329920289367740467166913998654935202933061406629198310260576077774802312793216157895934411984011014835066375332635608158088457109770478223934510709514285609294130244439232846433326894380261532175472264876362376574553080290584012581427553198934122780599495005231418941923752816931222583661063934700122739052443427867733332367766757153941363626857685995919492550764266092735414596126911425794214212601467626714614083181892344297750119229766003306157060812564593112019916420897202879097738656426680471298906060024696624637797811035542620488852440577249497054375679208774043296490276235211487734995794789705152199328501187370034651157194007010477170974760748993482130043785873836200868386431503242015067668720527982365022673395662007714815648402638631667623070111132115564799095486302741010500088921140825513864918744440553866255989499369184881279644796436653858701526965272581436753400343578687906102643478241823659869477734511092350020191193129454406102742862023430339395528182430234834702809182739066903179537662093735638872666582017423454077978419133239258362636938442979605476863444379649995892247761817965337150833099605501192435601967136832903046145735554050549956653009441765341885475666452446133893905412274341031766966393642875973818009358617825528881820946414674487386454318439105886667811092284353100493282087535295155592204724781393894550146429835319154790504019615932398287566296846851456251664904077535692009695752420419670719748277832146664624362180827602921887615026679534985905949682398996594904096808497187078262755368070556392868676471092404778878722524704763999279956275770833701949127463056513314631964884131611287114324657716247393514796858284532458418840777295689120817315107427346096849660474259503458063741533537107285778215924270971545716573554958706518652371244889664921215400047972783645294374115250161890557124198181726527405413664260098571089438832009852058105714311650021602172023175555402670287304976551523242743456209463828661384693031751439119945469843835021552266630216925240808404616040521776574066441115005144513841399981949214669016400933371976657393573267185560148188531051357203519118020942501797002006669336589838093946761351629523293185629807054176973374203201226365899380530968087443675560677332391342293367927285745014003873163680437565132761978784177369775650023012923457598463691538409277205630809872856643112928146978521939020832183847428451632647198576534534130501498217734460181784885310214283908730543911715843403215553391001841369711401098477989808352935745228198433267004917685160872139871367417126195836026306609879986959742471945723934701534656845735679361197794211787381061510080619676309605844358497830015447492855867331303164974034740077287805927302888577652628030230195487930616435042471333641496510411732979502575336306526667554516915962833878457751463714409472220694824428124572751744721915225400029559038351005624720813840736664300897905794690438454943584656233108379936650761097445327947018014754470506587106259138277579527746871560081001290411221554193337282008201796842305022116350164387329561477691624433132399756206761870231839035263840170638947247019387014500495551603802328819392901344455190128516714240781619954080726015431707172857620354671887701334447796146439031107252587646766146806476641342247517814923125622183534640895164222056098330082405404445225198968163929312628067897209178134626338851519540864911657156004191182748750575593458562064748857392766310532502891582028334241476743433970811945641505573867806524447759157865027691886884688596024937911841471774028891339000193083175242127455619356545889622597067117648933779388259540568244096000888403485540566120327589469538254728620950715481916792758440698449852298522908161450758653226765336254093712506914296878026809643394606811081057023567318825067708217019593370586872748414475296389150268358687599274446852751806284070697392196446443377996707634132515068787526724024790216990668974940260332468761778793182238217159139078822036657962245810371249110830640103858665440244681634311322430227460689869859986445442123445842823333565370443389938586893749150436942243747575087587848736986176434257798187097642663315374511880152642868774820763013215259856846275831714080777003241980057501639954894524211144626008684979162129115450380917941952127283775201469180361310367197322331167654768656820380012517027648664967014547118826048360445378791045479071873989189037786344800692565991293099063103301048494372734685858710307719096042024844041398034036265316619109397024455271405143178691225623067753871243988994370466264126007391226367935596543168224668006544191634447365471791002312004760533049777008021516013912445540846446500325799273955140838533019657795070896481969302568478423309951777347579864707481867205878082900909148216980919549781923501651891112806599152934029342907748195999891483403886112921718516555658018954415583478307728880555065964835021520738308946985884641988004164290562097558812021821763077537473526810669317563456956672790067949905637561257227640414022091925596149992743590074159392361757428122092996216335969014318642617744006385272412317323546268411390747041509831759085798589330495428134500301656982173896056400945596921758260884882912313195940692036543059699870296541616910914856530868914140638188413245307213638712267141013377836788186512880713771696893147768538002160370224212863546497179606668867120703429363156993333828715907194260469358117489777487757724369520678065042097257003963558014900630588376374874136153575634202992613668478849312908062599260667059641922763801701984733632947324772933029370496016182752698711455245526253793601039410944611758864090065876426245293473276741756618083891457251287375548970910318490229316060399402565246507032926149115390503090033623226306092278232254328528208382465729772876404485215580388207166088460026371619455780564954296432147590073893088850899059378067996247892858125120217588614654397433941669120978442045102488205514498000338910973706445203280152962230311317033091857731803372807776442726956903411600534969136874719525121685437977708630438594446659112840713191397001473603545054237006921015498899897737826155887205699671584319281721766393076606586363394740760778022381781256906996785838068574901262807241716397445326911060659313465416563086956226994365664245844470404331719922967690088477827677077806509295147925908113028704879429958316263054316102713669855630448793440802300539149966197967080777293736698906055039183284531978373895540009816966565205167819655562092018699215241055360582238502778829390547387098661665447060678554495770104040705421004771035461714860377499747381601121157651775771302350723999731053568318871326610212085378579134924681102086309315115274874905420014629769100121333946473513509322856198857706430426335628782325971180063678165623454932652445262174047993626792003718733124011829448985421152789972625069950669890563906245806374842438518276990581239175024101599348945431377002360376056382767238063726399652076762301356166242520486283211442792108141308776604044625657274774072939362916159122511938582541214897345816192460427212220283036333195309396031238499101744116575375271443362741781933604546684768639897220020590062376092166521413502122107903991949918417835037137706117474913149037308067893134532586622914754910219918204783096411506735038538978770882854457648123193279976797430000464195020761156349629769838546763081059308318195425123646156359846476058573059753537838353494602146279605943107807227700284895977249592495163743349754242923879521624984530425394132782277257476424246665566296928092412686235327565104330732852079208266033280176470821730651266271369481154290636247731478184197363335289848465564917629670393327778806561628524457459238720680400784089410354829485039545452823587053212901992452970374914111146177151494085492895942664232076937822429613533975118504848273281970011198960310441379788141507629032930034371348516856819974528582351134996164688759500557765954769443966675396855149669342990067409997369551827439730224253929115243132464074596622612496540107993269792700164987317088184478932814687380043988230242225703660759981478371405878511736967036512107986840896140319519172515546017867517120045593442084885465054991985552451715439207571251849323214336595763089502009865144254032175055757138191642112347523333301214704950065641238632185621475355735011220693559087804103698220708958128162463508944907291615564967314204224433403428027310467775244906260908509623068234574353645700592296572081142963874877619486914670821976539671990378212026596273516726383974871452771974878277984053480275917089683160459207490644696238965604699395427965766873523821302696476756018568207723399179378421249274178971362170669245599347311286704221424699026834763612742080367274353532722653881654723736768277945875672262770783622886822557078606243377180622684004995813679467091060268465420109359951842846970319121376727627224717034692628465445298603451891388277965606341041650459054689353704005385310213443828522180199045707366272991510814784979259972581137203734681760452119050986720436323119386904370055231796783786197514922885753353017569981586255987495726668005336576490794012051853465735960302628118319458028438346110013349096559972241927796770818127697417460731373805596685916673748204744032397425701113146408885518678846245956865550102158085102829849638064024388674607517542740624285836173591743312131751332115087908784932523835197712862866621669853814489197485910740621855167232214981984975818322800717685287193432764337161830494890871217502708084254444051213189084432431241395832801629355988862209655747725435991633872426247970905330081476711340709031271409474547539067983903087144570783587098192379967159250611973678524524921760695994033990123647532240136815926303108944508429311775060680026393549407628077044608645790536922128817731622060687253693395530735569864908549880456836785776292014306041382383022390200761625335636893852294222365369599791857312699275040414555294055371171267174604115598123727457483392471804299704362711145244467945868034424685832322229950756223284862904400156505678471737516982641402806306003582387572708293211614717144592936600507869771064621520611738246723366990528498284713535030270167568465632318363356280084411209408895135415863143716251589419669307399806265290758618666935195527035722746633504229754147521366051610738007768257000874626212418310809130890146511961225504397498610282617676448656625429097321796967960038496657730416890277208889852996251168439340664377314520944944308012056676530157964311293182300739280735818881646137825061510287631943320865489729856686046673892897384291725032430182152578954857808064652940721910762080078765889966515765227263506604688691320690734527216999169739931000704985189537468785754422036562182458791165740251217985541566495369530402653461567155269352027629179590419923499072924617245972651105637702357370137710798541880257292089086550081912535435355157855485233977522722641217893195039508265351932884711949484351660651414550343417270617774838758289257879361880705356483838323518047668439215007444785726664145824947857588097178766712806027499688645807627892934097846395965520758218166302234373662343573632029705911356548618413442292265744153232203346629166619066906597254873002461942691311745500925534703526294970351253931284729857174961143393341504283822735947330066300262385141077940887144198523328928720446978505288413318485523127299763874414238758018367251286230256843584395750917105542811604238071765430993100348773725796072480139766415005165304495581177714789257129449127108445173339281936053642506267994329035949968855390222722789038261499925858807258244938024116489117129072119133095620370633836662063410567780722213888164873564046016856694984178265914643878155042614081947093743357277720364388133869356190046060513242592913405912748981435616585563525302808267278410777045954672814325116287909745470455545914856803555999187505168547863246725128663981106824219207844886810181988198717983749089891470409100032158427525585176114983611404997018444938610623868947909023879698754160193493597320416903291224968766946283904897586097837880495603785133476922139349467121614234324033561294437451921598798770144403491509236270608702027240767539479165924189997476258958347702249516837093898297551309211136398924499892226730043590315043755530106606879182393790458227477483751585500841312175234145101390000579563406012051651953472304930749686502523568025872836014746607917538762319490199856061251704981031490758448785189953871926692293502302732416589176663959935057350801474018923996426172414888181702486581604482700237739852033255502700371965708371868200654235318861246022100880718387922738698537327824908850268434554568227214913613960778358294918616336429316776598189358696548351529049416255045910775036823338772845981557038450032080915776903641032782256815371350234455042206058164123036688796372538832760167425898892425771653221919071079157814853791386491630473792917379917812968531243517750275329346029387244868389175645758173878583100533513423716095165429875508144288234397021684586888842371254347282201530251546214511255249508331994186209152819394429129862743297555359724237638784921410099888652169093542422966629254156295748948792097812381741705083732715517223264583034467295973874743883384844633447751231183282812427352334013446088177286371144186684784801913535654280320314746785499714608641685870838439910393425096544131874821010480669460037599762544453285514704843443756860746493149940870396421023849449980286607571138172588360520365791016029842581237568913774445443265289770345092071512617557062154593475965732032071119654833720236923233755395352713224852274314041370792611119590818278253033362739253142480525098861686360450840756966693289855712103272992706531910484148148514807863843170812013504830734495191927544545861921131145788240409669713344627910114169705346064994820547699617228562838475446605276206167987711361041348958204072075543756916586972957095082448240032548830959910379831010575680051888043547949709455142447556144598721438317078749406773143112819212702684064962093915828989996252496659449785111106091267925288915612193133840014881411055142595796294672573996262238001691868427975259286860720124992317209003629267940929072694532047132374329347329151771944773417759472325342016384149212419775272373448414113340247435226313257732049757931084009855773228226869020421815467411626470187241296535354295986415477117946056314377494656047868406014236182930806016668427324222747445072212487224744238757774644544172099941836963511827237201122137023880555899747938006398410835332648033399550125134362465879366800735372814140470124653192513635921925812321783320696618196794261048492220126515819942019827280031852838358854354082051591093467914908518021815532575132908006506877812419029704050852758657133637783914686421527656188687900028730977347195700176737608389967205108466203712451801227905827402209391413519456362285609883871456445990348137259489750863506953490864952995734075274354257942871242879760707002892677886843974958158355344029864640618890946926548116518332085350585701765847437901948141962970632333740783320861211041305759287751105053324833880638361417997209178616600691843448640043004886965828951729961091282176598514184997260153813463310803519362370872392353517877632135180850588014408905599529876482871711322117810219249581603366385358667189774165109322662007176551617015625220914512733306961406761079102360866632889890286402051168466184141997217540321643964059621359774232100729471395842407483938368756661257521826291913963414796131754426669233176386979076315189843835935576626924818787965606013992234955793029195854312846787949303363727816291441747354080733102164425597223240252029765373806019815533892711495094901877435944716903249631255041289544546156738930660951083706227611602349720261863231480913650537557361601197987889454543579085354230120934216588421244386818009732233524829754911513049327795815101905505918612368305801302680816649436519037318077596154452187333105410508380924549179718326041641551774859552151358049582514073753277005051763531225740697423828134241675795450596345584814524542266661454050854778164522727544887762677020683975557237960561973041991832619871098798293807016268872983076679375588131565895351111672888498853347141195442202624520021756409569431330573334422379274858571737371062873346930740020823245380334434722563382590220623226719808929684049133334486808308110049869465520942481106450145942519394551672178239085970167334456978454425476153321668765135210351521813268424034070983876540845474250518093101711624795757605626859014414893346708952168974843891215431131393583668094871196797921742706860286388242909890306748494012151812000496047405522146045475435564049847950772777935033421680536274314002171613341831216327281519593988935270398984518173961071633427354594227468864478550584316541311283017874166902529697302601603797635154845510960620221632344822196183577655051361217714602471720919996608729043174812982676008876052970795820968302665909207944293855344303285654868379099590164275773541728817938431289888162391162683923036711804772155154596927164341454941680102624397254365468263543987329418945644555915075949186390689806007920678363961780526253449104746748762677501269133496353858040786621588014486268300184786592004034358239433086075641109581884600064511754651111494768303600888015521928574513972243105685255921780792666805904417941608577592062196865508604311992330207575879422049271047933034848617105377560157934853989112273936404093093468042695827186515117135932163145841815887136473571039097585335350584969748337517909507183152818196494101973040503466744018644601767227029338703322608647586402581697650769229722402218546022201643193635638173641857303690933121324504563913170571126405539364437948467270638706454781259079353780332101331414773912562726616365066585156045955471734305294241051477032179541850946787517749467765726121989816885246881103506409033778801498820036707419931877423012915750328078632198954157708847696295221532173150587984379050397489225085519652108188879334648367195747681332689696769884180862384137946648999030043426697838114839802188916547979538319954017382303950832575812416310077200502395220848935366176669379815804045568612400161449512187734368053465703077264753529375314814370074338323158928496456240893834401879910838420819711030927718693024155435004406293172837813509740200375217292953267880396749815152367930419849357879679358604620358347190119435566512900826053139329217713157738125112947302131618573242954808262497957570089713059075913596807897792009242376478787284866907301099672160658128730362370859826278900350681043326252650912293367731827372964265184878424100687957189938761827704562188447504122831214318943673067792920613447245447057935510736690066299886319300852802304875811605127446972051175587873358885302709455893836323069802417599596940902177726123574706289191388037995824062547943179423935304898776042943045347267665982259256177841440293876002219480596581103451997201220102590571849337209407405529015960392985879110409754020796023257011052678845254677858338426427378389352096857143058347992864231430926690310830269727523074831522808176238086459674614504297701442492787888387869729926590029648209913554704524231302547493184790219269049349231254998245768416620966741813412071718582217634802699536539624919525323600855529340587543850360545075305753243350877128138538151117165204480353010097210781631692898579967706891422777118933575052227878157016909022012936095851722262295782872632312192641592947921784004397313675649788840452706477795215530341241036000204149517776858879007440211526116067387853035300902391681040349334426357309616832626480265164596775545392979822895432120176623653788113785951428002177672335618402826563672649047813860004929686851652146898382276747560318297357162588061939097050882629314265675542524394353317482621638953046034880214389552364162287325020682459789975680640140057957843932311519906645932922044264737196321118786801005805595223041020002849185724188560511575848771334304530306649920432755762332020608622662154288800322579201764838067548439931294966970775789095667426679490128128980113076611092764859570674293544488787494001220014246936995270406330829085034718761018753792768603136733105617296445780437107265968236593251736392870368169510846791136923503486193765258124721014015348617002051294470433157411542360103123495585374549349134213653666581659985677242966777152020645680356723980325790181364027598901252385965994873769970806438279912900897605659980867424863914685572462205924543436666066103067420406071694504315525823265711874647020102936238102020023508740208550620661695473556101926748215523596087406691152889422221796077302342532958386163282761060641462932373894621880214447034621808606165275507523761318205126947957932648023751943946384878405414836199351322519798925389737244859003832113627375792096666535152734190781773421591353510481112432921145884955141525280567350179428648986531516651751644147255543752055176786017187390140819101739590385944029290299713512779359491565719909687433288273778096920121831484747772034007655386868385952693958267653179058423391113092599906594985445860060586346910965817507910899647822620977421549908582192690977877513913331399726836114479364886145453534193750454311864807088657231588135141308389141089884796452968485378982581034574910203647582602576929499409642481398669811030182881521604901942167691615222486288685767496235161947444468840351338484806736251089152983750823473248981452226469512819556633038775066755754998089817700262384195920351029100977292816432296226821593285358795348024087960901049334598722338584532520659038822241599003285768203846006165491518858514449190514328667305673363003648400416155952447883683669337430927204976358274268762999753352650861950915601868752558413429492105601264418670642949717753691568312076589963835111345719621422438815403479571226110875148491598949620949305879693794393931489445140108192309233711097648362988007655156812724896014834217887168921230004344566923656998100671569212250980263477880743374006594111002799212307565799266172416382699998919486827425821987588931374739096453553914801475386133417925406858847994046200198177040981516354232446342488184442504733494763143338578355280754873788315152624174472737892454062677370941206090276165471181311545148733052072546205583628508777498051329741646026382267183779894189563670130322101866893339226633318233221586975733446990605159388943053381082948264825538519226604381661987938679757644729107621764340264937372611366818603403148836030594536553245455978181846125478595469848446091442836671684634183218974337545839067234259876855380219680238385285397676156981302009726012539141802455441074537990156413136968956661729216295642963321860219054101371451475984006916093595548199533325824841358705887700402315873027134106920753435312512687804852853141924390538389366017717954939759676681113703595483634135750282903528343408555252815730298987621217963948722255873353668383834204380918129760401273467880018457441931777803109473863421533362720391744790641272311581158988006882193180557521599179264444806710243198106167027467893246300785161513960119355279623865968487465017711538937319740778102592053301562084850183045494402969984517612365511402790394099262327806094821454409800364508202074887206199191283485431708023092011605740938583084080673039722233039617049160928960335615929788468128771194243048219684784939667217533785261225142175135864572906576766377590557725754377153653206671611844212862360037990205339575867698223762529420921864139174407194838302998018183656138334877999739085165406082747525125902776729720768304713305691346800837370497070638775343908865591675555205092973297161936475287083386375363377663096742251743294634005576776477213637805768269535904262642053033538576076334186536196748451707068624841051425311635837950236780237760882264883966539473099634715682644944089786955479906607610031423007801836946630335418111061667470887428057415592885177234062377791961773475554433272842929037765250727684270491706736490064160368844150578911647877739623829341458222377488336385505357935018979604057382782262060170837286155556538424326164973461231650591838602885649651257677052525925905642658498485138570440364165302596073889686156064168738900696111648166850848369534960042658593553328633835992977699530345805763353668041488479677729736191038518785808980537915343103162019362019884825903082735097090999742627605134524078687956182883649438907954657835215829069500290975403594864195621458060750216523906884120386552775495911898096512270643426021877934561240083397173513057880104476739456216609769028958470980806460385268396131308075859717548264427275728017340605715278369303093594357489604184205102401946366437409648476061249643278987378385589055549471710623431390345952697522850286161586048788020515696504101251451078865724268331238814265844097843525569307218288316241893520135532793687925684162385088237679202478018042329485702053335443590928427198931312917104733036868309707155320225215500183976068498668408037962702663378099960405833771059546508654985687385501329726071579186845398857831662707299613615976668364269530811736484186703430311867588800175671063680903255129955753594002515453620034595736550863069397638299855233295914120237290628318399389605004541946704655621340535069885962844509724928424027057412891586324897136249725296497357301067651737803827743384965666369812796850318900020291361384374682339747373189038403207261784883130381168827623440447211458145049378599332323117835507807359553261540799351144145212802519848678526736717273250988082063515332156214655213659944987649691664476705639400391735040121041032377371094916235021602660537524798165849606083169931349977906141282459858593915503668199572195109669627916167844309790292345477439175812371078363807178799117171289883920292719762042342066433420103210206218393226903477856221889481108674375770527562715861145873361064042601421952380765197689284710913895211967194387163680830905944303427009847294349616223974716716015846946816950015518747067259316608656927156794450508207956223124806888891074014012131960967131157251294942701166250990285624092584358175440924275512080736426246925811608546330784714259635371379245713139694751253567509232118609828439823886282388324465813591309346586621068559458537276800124272575519703858569788931252069154014412655384075664073633520353096532660104548472972240444872963310764585405476387594290876337451945483712260328354728527449119128770712120346666454355166409023067276998180875842115058902720940931773037069074866086227365638848867353685379764173288840552748163871788641065131257158288525540124374185541186372731249114735083811805376411236871467550162336661495494173628619502771671231925893261019618332263877822769983427881291831608517165735521729941426536740634015553315006528268290185588833677605139772545904901152082287899974076453005831717381007464646147632185067870564830552383903834365159372608205618451370263911325054182892309354347054079226694662741499918268190330561537188976234323596937538472128429554006713165563445249102638073702569587961229206212425667998015525831216862590592745389158792501832215097455596099870369781025133655697686514729234947295412485846170905884237491126701792828959576902613159249900688412092760892308314524758294150065197446283441391870794970932457008374862012201965028597623504986293803963226095103046951792939995641552042764194189026178172297282099103213355423682455622314619007597200025621078989932757689170654323326949791166947973750189992979591091041412148784466908432358182228765250460861089959846509794441355084679455145588790420939713379968174940818931820743801150264362424443551299832165749465022272195386340028576488428365556456699512974036822647622769023213682552488683954329170765509313145816915141186431228828088360756554867762585552030043705900561689782903868542056305189407357480809704554596041439396626950403332453256686212923433723527590360967066529518265781726856213083511766989431296001107443496329554679936711392096199067656188205323231417765761168742518717247577809109098444445713602426997013367225006507160639801012131595403178752005950476449013259360428573478746588409977275557852544932680800371130078155797472884791669207272100358992744427949713021756938522057512573951845021272865570910470933876975976233215303700798929321669807473750636130356976237052384667868418606188917092571704746075504991644542529174827805511719192608203332957808096549856155713026365996810144329332885251436402607474622003359398726166740847438258748645980441626839281787683669342220680545579720506563862487207787101843404160047657125802957873336107763632717189045224445365023663427170436249377536112983165948848502049761461760555122273156979451268865058617845685767351930559122018931737307563281956145746288639237486802214530866886120437383313480053609680389214031188453119224618321821280172273583361218615611823615639980790019500017020182065891041011603789566131775580817682270518786751654922829908046904416488773092257748668658408531685172807159711442599125023329413877637807217349746150297202109251628237659171022359260667644651288082507613336240355706809184937509248015535931771225930149001740222193522532856103206047397760199313111576387255562845034147962631100222676897420431012859393990982441903429004484883051014326557518918586840237592704934000903627805958740158073228363566035873446290838023406900825176621782846510778923265615702787496155520978752616246838184492238986892287980537801344547325122024760330326846625745528106591909558659632154718487782325224629374621826151336426071859419182277798039172742617200248528481370662392697585293192796069595922801929564957704154514485013552606934764063710727715547504244164344227267348190195862893969682493076055283117515246605371999973725350879979770617092810328009515685966998017517634681407078883183944413377801580323525128532491528561945750307808749427295306936413286978948567836840490336288084995907165464495281026144306447998123358841733861039577525011800121275495835922956283425513686614804008136822010638959260660655131920829213519182080317287261344677383773677915485901347805370887533820822063937749395680560051971176620069936309851252436283833655822517591038775936710893531859462602282383899043680762010439513198043503716907165749461620572832159088410110834859762517045895630564869071314869884832605489403126442672727005901950837542240201527589710839761954174346842076874801391873227868913411074164457887994834159047539812945096878581517435964644959617743257653683432127083934630276640795885574746662732004271783710087222495702360623188764961362942498748215519273957777730224405204486562536242102961101166390386034012384037627338015225657845303103620198551865510397722863498493241906455020544722839332687856579849743989641119825833082144013388420437774502324733587656399373091194348024839765966046625074661078054777305332942741505422099302732593726601836891688097574242655508966962526364324459673925276160833025294818011748342290976887079364688835773417036044846886709353470650106996498949126834896979918226764455006885017468508936108022605142619612974719535399949260011855000087925634402752013205652132297555377373401965449014006274143275239118767637755603380301184193519029357867368873259467331391535570498027694126626609836859365383753052246103511054206857098286425559688885672947422432426121378779512668410471700258222514697603614030137961332274644873622082286844235609762152536195442107469810304879669659848498412187918639032045036256194168018969282903491799447208815620449676529769789604651866859824938119566879218879160702922944101208128892117283918287370414341320875603207001488010326990170727573818902209052030484956771588923027774784462645594806959406621141382797204820838948708559427910830972329050527333842338714677178446632528446584087918513917540364342177717044471148352557375538634766438650497272981281243654014987733007808036867441999374666089912379151206422743133008498728647747868098083724890280846422236151524640862139173481150230033930055726601379276014268072444671838258880075263411174524010401024501986936353664894365857818066430665509079286115077220469082703084104404681501201712680674297425213718758897332688399555879778688334282939794565740895185663173727718098277676716662785744297096567720788755304066850184996251099652621127787761282634241612160100149950316271397249245206452357033566264823795002568521092871915718079061865868721102686761800683383925293481823307257011031004410626191654980734403321749325819613458892137601032092181481387600706678371746867690966198517132040712571140088492457422789241470220391969030534886360800343411574135068197814816134493371735327402536132750434289650096451910694068681959035243160238921694911790334738679210262692604961023303650584930893069838150774395764073354102070996089287707897691631679167548215514329468397344343444207182308532835383697035837686798969898038825097655271429871508369857330011136288938271000651353153863549861644829389199422238719472017182061968547909939938140727004810466389115034095851476984914421834235751503737225974846604324858225005530318943314677498488418284291163368508489688391493008212958216304424590349216381538310390756326843699411645012717349370660615785721959901461939655019298434908377195583277430383078941078321737170474078522619925276707705610995277473611505081678516902475937051297836157429413205391694719923838519340043570005044803926607870187042294160753078635195666685573469111841968884891859179679708100120727943452597148861887218639863517729459206017023638754354989751012038035812938449969332972597523428976895669975073843548360753369493583263601829639128313375944856537477965432379989831335006055123043661473445420812459799270637147625916349445075500261951132236022780294176787344683166541368339522415923219857237127344713105968643901634685425944969627598730413902067080240782818272469342679056855008660815055591889378973649932710507349725296763252143762508731848473540074917836926747986136854259528851505492238494726022701139265451845382714307624603012717806277233963319523428150043619368802383152755724701103987810953142059094719545631994917063046458115365633888680260182369683633982960395505576764696899878645423615620420608082013412599314417683050274645081399988221525921335477446136076704785364874265263087548957770677907301181556779700957773352583761673377248105324746331367818985544392104883997172936866968815812138984128002773182468166910232646860338033289963750043030392626826538689334965573732071521067041303643245686933559426623054338952452192274992116884121118497134783996616184138734826440237622887990830488315522419525209346607116055101960117147944184075165236117015611726487314600379429984263801257044444344414324137640666966197339480762519657737085787336534485490729559482402008935800830956348939926980137924688272542967136914341614591694377441848135313235381450585115186254675659543627827018642267330244536315500421375530005371343928859706084386288912453363546607127888150664041537347665180229590951155119962934159755118969058796506857864561491325334670550416445061869532309021143332609244277114780186145584273457188822873861669142341061055513009492552327603520067655314073127721896704328420640933032823889997130204779906195719049164086982957406769864541393898000104778891886926430137597063395961492922866007047072027321930257679130984645208322393550838011733093656027423501952057542777979795157311745172667609815252993880942666949665404814422451133036827454022544612723007747338005210920141311839091080469854096046865718838620439645186048292984962011405656359008345307614540416468692508554167561087376876423189901075204777842736031006255473335435678201374118705682986253732924554349809041233528514116307442806868084883568444682991686008120483417090949186605915746946801859774486033403275298648798703986710668558089122347095105985335168295717515780681998261204301306992666666843810787072800667835855964607225002946286403790294535098405125641336665567887607024627716520196200871785537505259060505814553667137992052848611628510792908221849582945008925459992965008773658826793241809608168625290685876129787004386212634559485842729400160972811368774216969347142528297550053004429310422972812581094916007735525140537533655218390046920042510310307974409862228900797761249208457426007071910055224165842526012597543461330450990687678445477591964200778971357999140774952177821699926358924531023548636979141895913858998772525506881132298295214011632490464999848492111858923553313454265507648500369570765330860328314346104976011437493730624464521726929497907914496507169595013285348456422554175909965218570730849807517716706984241226047803275342620736875471748128626849269291433122100604874886012173804734423104582082736322800829363115820284667685206819923055298843261061092133737859856453972964600012848149508935620418416575315898893167883747778645518345187564645284518709919814830069770344997851406031993219066618838421609411656412825929621870476037254879370583138491793524062186142794874006358727394991389048178618806445659912567456577963518364436954529710197665559363453421267664535088418289940556614828603805710540635638293217932457436020062238053643725700664968575192370412675005326559826070570864157054194543811280630191034300519428901467465907622336560435257491301732676412031814165577684496069968598258434067525280073990022799736968788496761033269247499422764804059175948074311165617431880988338703076762857138879281881606895182569512382118175540246205824685908144243567166195979049091195337753063667126246690971382815213110562760844188821672296861690015064070007795309546283271344707101099071218029326807301576133532197923851004308990735654735887286026951284581876627678636394452858346887680694804759800123769357485525461194993153845013004590942314967133469950920889383982256795365821545531398746019764191798006526457301958565614365830275758067597600506514637062442900404157823457809629839780504335877330008097150445806778959960418781724898729885057300194421578948745928022848709675723588273328106342080315138145825362417354839390824537231752795568670861518611227500153584129548886495085746283890356016203796862665141059679001300567487196381678800063118328246182925601272825052084243012273279538899462000469005421023811350812086096280377488431879329816973495735389269289460554011529267474530997740561060690423345784199442139880951821570741148545903920730625350520940980529609822138777758195899050428554422791952766714316187168586769756315798370592260430225846246513100316470866963109281184295205075413480417631356487352563919386720826484216520171957287629747371513756550163476021126816824523935286669095679397817975279092654829296755629717539498808208519620863787579231612713784968725437672904232057219754101205870566192410009725783921929664989416850674049247983629499286950162949360981778548504543808399035594101374591754638953408881672585967688075339165172240655320268406371169834143467381961595893976723192145962902004588468053241467861595723363452262970415222493871291520220173304814090874670058003617268296803288094061967748338218715405137189477093012416964333692855351947461734672302964581633156355457671283115016656669986891821546532244122378172282506060506962927083831035674389523898964290267977796634064991922098477113625348505288454964824629770235811075701564997851004193939502295527954950546620628692394216257482825363050970233191856653186249841222888254003313650947904960694173817878653868263193560513638698551160685675024958467651646122248058456337392276017766721802786346869597293499326529677233340250604498141860319930871233698257467479612745481451824153015744384922292275103525084739833100809816423545300985875779104379027518006944036054105531741429272803465114075655995148742675278150121926046313029348278965796943423377217270874727381606720199914471582932976503444617669906295828967464535746690145369826008425962565706461099496848178437878165104973261202634958670016338463336184261089267738695402305505584201843457413558089354619247344329857072083047002481629069999179044089819980958618018576705996833769076762476441154755315031717961036668935323507680834752952903164454647155831894690575044047364198847942278728639490053753629344576706829183587912014768559100531651486215634251539304291080007852937157287264257253973327195346628529767218164500320727236108802170944966263702973053551151949573717245800608306963003477289471780414916439797228756449813484002529694394698597439787587258771272385265578562854955934401343269377124165861622825590243761187667015145273471723792529462926704878780156541199284751919316657458766142493032937442316685180756784272887510336984713020196491306542693451244854686269910694905986539833629951683777064113803558490056358779515216367321086449402544143485748954232150174640195533943920867721787740626124829876728194072269637890443937678294402204499711244619535587186030441905069132330241217273168444035376499193884814418743378968555342460078687223434962410848281656363479049656167416739015670195069844699183991166412409357288573567459562251783805318051863059426620401124568554500973499992113046391314432693984959458077432360531729117671260813307817122559778628717685319051689802683705130291582588149480193331860559016047550671249630895994387432083236454236557313900983353827286476628005993078422367345858930200388518058906672011684920839306200291912570162470620807928550149048307494437082858526823651453542623707285218753550870353739248532579750521674002493257076218318219227640830533942680764626851129013946677835126674771481733398266914220064174690101853240490754687569850382629335012200405935828701173361880508508804130996807457993573255579342286694643281744527412745353812484670090602452925054608785886562502127108591275877762400654251573518481217237217913811207378860564730387394337328518632526906768533760453590733092596632976752052700354633906053988540390064105544919517816206752748432286259785724874217685825963260454493466654337941706222253123521478017427609457315431183523734460828503905848430179879375740314094568994422898129327413759640230681966225926472734894518389868106036144014652140817128169073643296781666985478717115586221400733560797927927513934271084359109057312786906006664732854047939878915657006820000001623858062333531381303371487442636154012134888028897951337965446226048408149952137262973672405170698313530240001973146427927777803779860067137626512030327248619853848728929625050964416000000670274394941580117815593624550379263639497085057723646506351003002579967183694591794105650993965781678138415464267095850406499519714606197169447086057242655141827586287845086473429448955921861344073476947428839388032724384526953307927734739344090821505215810559836800233246014503454775788838786294325237829193601009668764615562988653939093603170715975480062563439692946838615076553498185164105314156351247326001308057932647287699923327249388576096782229540308134456325086087985519912006563173590059008406610297359741717691162571553576602002339658938070314130187526097155524840863060570693939901325740572901316286117227137780953748473635125937166069609107392143847584085702527848446756368340223699515359803889325475059837512163401335165028174054024494012848981463880790773916142180472745852177583733790220606400187647470452255308255850408305235982182629254752659571685022834147275042053360173324050070260134431749446878898641791964342365499283569889664624982071663190208934749057079770308507586281205247116384198168368850022795042513050358441434823023751322533600974941394873631068267746702636204567249669617054934344865789530670270745996489848737675135032979973120503312222178070881877317428949567776084284768998641789969510005285499297244899963288266786670382716490678147665025871283791821873583165380200928146422611188793342355750291573318682923938176099918945765998767849811849806076975597582030941713914799319084963642375672409400905780338177026821524898320527802178222205210409528249835865925405767686338275081979838665990828168101834748531030767799682295754981589250459995530587217240839456311718408199190944606012569312454102360322852657269845603161990022008195820695615078690641801823070333804352021965193318109753367634451557807077367747890939889296627347375905597470293319785438633453985516691219396265995366376916848092798722754022870236462493018261840016772800632522151218251497255045494626978533812483742725103843599876607083060425915651678214167190348991883610529752002218013650812660476904283536803516927738687650005544822076867337404654425845562568198035785781206054537513253012583184954555889150252741115669042756641025083600067632353843767945968816875006542972108154421072715439642347013829722077147139305188463942320133454717574943482812874750292499590143743384969268524326414884473058760601943723522580395950499656441498143647475975628484444769439188295003303927155229519125577728073645291282966601290625636343472585374245949519784809718553081033316686353416384983189132394808115920081463544350960036584266384920868712465473106170585113095755277198654096130040471326338122567461683302035504017352184631325647359549248636818104063152977876598631430048358726546272797821576178931094020515038405641052837643411280973350847546177156399790137609822613729337362445049027044522524435583214201151766639249072766830764799460126484242414286257784187918934437718376644543025977546457460150416242308189916612508999997038163728997224526805719388641107491487907251753349212517811854069625855208581757270128925186629892941583437201551735142283599458282540371900892950799768732513207937835591375224665267482228807514207513976578838647572109823056281156710122185833639861211902792923668165640823987017726845103643449730051638032988066584046344005152437937053536418737533823819308476454736123355073118519063006507727042534797694312030302534194674316497755007552620923475485187446450863648096567064371333049262682977311091488844443051600028924273626949762509538076619834354389650838747723490858264076986686273393088298991402484874713456280071698111485716287356308473602532634163830283105745377299118861609310610531649752937267773589553916633129785055176938586617020087742974016072408494523055313324191482503719144889104265992819063933408759894619646333044752696207280205921190530606825738348494850567085339880751142105347803081722273789491230514607369674126462076481344140014947397690202120221483780222339883997434696660768252487304219489317848376112516703232251707767414155973719255651911259385384057968821038182489115541673903925081544127210284268184883915931155769023468944285927764746029001871774243382131452794890089750352199894796743708135284840314517111206227453435445637666989202317975972492589277078428674721557174644571118006988015701293996947951796578435140067259465286991364396178759797294120433158750069572565239215779404302192656224198144312318224963385547116412354078819887904047310123656961313637879834140784983343923148022787697364328494176672291675720486029804837188017200404944654220427577242762164198880766051922860050438152241696372679936897714536924165443963635874063955580022247797539162419697237366455525401610393284002535907090791051386038070640201736660873258078351900723773792739635666707560185866942934218628283868228503323930225782240372200531441110728340764588534037388700832934729100182552922502260138453874233247669992692717802732101456457819979531235188168834778231263580106901734575439962619857580156800804990283401745144039306569768402124250473428846286051273355283372176255547790322438392443794759710138356787928949263298008940904727862486002295000796344671043125237651472307847800661208560561031902546717687584052363364221995940373699635043244451134728901268483255496073072359611866929185120880658587274745045101236892334753715518056944623911041342993510149864827472690324474618009153011616878465026664568083801572048200913103539294160389412462815944848884003665785999309382624572102537462711904553868436031115428823579364631167669551842367841932038073185793579683520680745551579395493738741111353566935834660630604643961238735294467836988729976077003282177000414699403286637929447891135907773520940069682307686884503994978377049601991530284222244797473245847260777546549964796974439141325457419599190322857908367868373140573917861175747605171282245239255347479795782322216639960698829083897212884842504708305692478860632654318775643995870322211883461817159112456119466957601227723286229845371890276861588679264461378821426038694745603338175370414473871502557239415954949261048549956338293212832455381389817298202401144324238609411609594637380376829138255040614800200828097561696473496234440115509486216539135090714726148513979490298979414411357650583277404020180857076973583143592211414613429227477786550255328283004750711021502295808496841939110114709826714442106117212164140870603124960509822485552870605107169037426150543232014930372581655986103853961302374484041065671819127798368624954755788144660588669212469365522322618329720286066090614085418000970457521389948207626828477278314003101442384115219667435233754142343150868047833386038711513100623131154737012464971576128400704296161496675011035106458506364908993748483143406000342094245894855706852482921279765988481854879759803313319853304629300615870178959936660908454317627401070817512941124117226124659355343830105810157629691866322493627864205081238696824113959691359334588853795238654572655246678445183196167997415079355878174798600200712085084628429576540849318322501728182128477191399208884296428849759708761854650820693545168265268767411891398111163518758598846260568178851446875307931897761322894619173567695216446722761081008629203511206660880628842831672661955585324341158084746498113677142912711596443785341906810106450094493094025191598329198842469883517193974832621478148432401900962986522817575879528579830575423073880468281839810616850740772533479043302138571686055774942671545252742403511724426055181949991791771034456675852919700967841561414697552404904243846648420742805173707891125972479966362355876381649304380166466652447744335734658858120670024988892202258338829054026027875023513951344400979533863531052128132774502605632699118166959100821660251146555405532107177173323817835240209259109229444181128173142585932850017911572605612211129541319708898400548195652024876717348896339730747984524525807189064405300493649027722662222381367498359092160788033989316012364502885458511923793030350522195758617408154233458316888960048441894136352198541691034922846363520926019072926443512707071822053251885603983519853075365080700036152511818857300640865035209253390839355677825722799930327197389130470516071468987036617763911217926579578727665183309437875064954137117501074130063317208782633109563361986741687953121070091376114656697007718106263266294567194328721314904031173602068048501371970588062122692057101396110265131498443805665391820771965534851090683866899888061852995335416158306672420735549011736044937346557508725068854295374809085841721810037238352583441691851101396929182275931602476743100565305307285905975526524820281576775226860864264658371913709346805776290904874475879422531426748583043487042258989431555373652754886125443460583762119998339790294521266746054480252776256425391753490017194359692324030081683532865414752061860196681453481859050638741531336001919584680147002750839522878766476687500415107186179700888688551610529992554793658538888299024480555690904300443369848981020716726952076138094223036612190503270943704501306607755726204715102013659818022159451661357971628045892464895876221039519347323510905528441845166965874535978747138692434745401477698447677354468198845004322143803368851618415137314963517916682567211145159198793439046295633950160373984479181284043071770104989467623525692539332085019543718493942875044485813406997902252172384921431821938220986036374857891262531917507623491045557331902898840031034004863381383288796400796456865194461013871670647344027179964775033712160810505865302898959523067335316562670899539949116893148285927527710513416958355170448719329572408454988073244928151034719911297176095171167030407660280163214449268123461294513643189699943185406617639147628812331720202037148859688877017012925083847933635023898286434970889164964484959193456559595133513275670724510218069143254894284922444101607628955827860495092063905541681800781564729596043079722216048122660189086303229300916821759245818111507782825942063966349354559943212724786683161030364662022572159584006892152848989154102807869885531694108914141640851447585981744010800982844524166006607630366981597749663218841147233456446956706589589373028135271801656562581864017634489622015716384075489515813062534794126538326394555332535703185766647076454511699211052198383778750649934062845619420294347095229941052880617039643573567776354230778310513993808366520066449969533316527103533914016731631399818689350561926205690519603660555129431784659545870727608874945466206311386555357797335414447520639511740031594320856653578221920297550496423372477798530814708471531867960835491877321079272448723965363436256258638469634527754012500668512825562302910141180558293500162593014262100762230458237343400788821551399377309627178951209835879534603204305784567295263833868524840647601025969337972929473958017160087326554167563554994560607665617934576618278625514200779369157863545354663276432481754599363856198919710480467969882932947608746244400238435986574355161984099591132689631667332969700226861515469914758478547102983909796453085679263021940942019213321135618172862677281156373829760782288654379271260696233108802854437375348867529996662048624291298225046545185426481279979186607497257050636847900928232705734159326989526329577185790468048877007091041483839224515394817611997651295903652282085524103459882907147976282956659097151518064272447960164646489131606572706235314345873463543976955250884408832185462660861461324047867853470083967972410352142913140221937138340130855914895399327787894613218463375484247609668221045548621922090556008790815789437765595014274326187818585040762231752923702272609620107384138869132147705750676387802631335859634225994637283307589452813489049628028463491034091112606396239828232123264755782314591406005088173547619698657839150520443490343245138156503157174669695899949686345531903550651157568287079869020574605854751658459959753482740319394213472928019256591690710819935598459381909502792768053093462696890594419724171779835070463677786774649403173430894681571207398171008597055979254585822052268249964155867035192140985092937197402447589838632436985251487352044551864051494113404355987705024230244385704876474474179229688793979066163246236332945439251356481238410482663011065601344811494211664893008927472769664078416910440514408561677477997985021326790449729425273749453586326932710012519106225037430072576353520532824679434260882197899413121423092900598460185501576187004307582988804401214482220099420634300642663654661538641344797095086903155051430333540000250399885726349211190144425775526712402729828002769869228184793325211557446433324706969322149172866390112760857180094037196552600123487283225008415778083422850951052451622884446702838514344192476276773474304180652526494064753671630952583380133580490601491392671117754340610499610252136435889430502612128495744176643103272411095231245326324347164465283383830564216467464425616086946202854012598124812288486128100689400268884979337608305209598454479203383098983731264880556378239990914370116361443879703654645112349143483398117434139245705302381560946015311395531545624010013082728060191739782178179598302805900815331904826296192194443959101030287833684267926079111787458023439621399708242567816101868598626873655311178955558078125396826087912251820789163711467838980899354030203344949176436882073174937798246149670340627855021973047730927437225191056075877270978120117357188854057599540194440723055663078344730441904644263130619424453091187055799580254155963763921278907446768798548171087471483521562426828870215589202250314484169391878655804266965186446290524147517981971729080626971466837806396673827207866255378200363099967635745847252487197308644711736197456569981093711691751212849046079439129690986055017914568226216782175148584309384865055587826987529831934702190027698352565024585573525689046472406500507539672725864211584287259231408403513536805830107207433179612402483103016646607069483521395314277459528198977974909696619831684945376546073089419000290401917862662019294942782639177459536738675217978841694534871147672802053432729455325848722876189209566881119573543114135382412773579592109871453048620997010905190804716082150536223067015016472101226647319812880088811536912568653598996809669016071519287839401718162444871827370680860021778026688392135273047953912146377301226530977398360416762315072930442244999785542025322164026293473799976801469961350761709226089059433298148730734954609220638321692470982104616174533016268925251202877918225580954387673589672908295725048017482883795786675312525115101634812678113686409555429717991656748011068479911291242711281478972318159336350403176178532439924818067362933959248654464590923534619295770861471315687351848457382813965899012074005406571505147826496159689928364521964803811296569584336638398224767511522550710118322787389105586259008483631724636696305153284542403463445408162529425642605541612474366466120174905683246115215095669688606714361838313508693486981260400760810754655161438152831357485874030272040769452787804747130671987912537490492797500778069397592610111311736185187815150452302886122786486355824108075153988928327482059987710249356582530608557111925268861990470827162575061555174729903377518313049003080438099131780854062464329678342270214834935393420259312315704391017306041122723116735771313152341191903194213336447284887959233306039424095935884048774832112618865639296609400779246565452576200744700238436090580086593021332922964685359933446650122807667811976366107055197821444104586079177208615549520218454043383674185860900973825052849495116545376730247744351623448485640639610509695845996646328830968433282330176924828128128548398252074809325603763661920525919267532049116419968807811386265683765087373075847835668631223515144002775997307167227771016642502308557161573650221195618709666538899638322408720455522080279357639887844654643175107590306894845889421260118696433367096929597245067299525004287986733762093650726577454324539609770316892622055885058074942070346613354863407185643387660775455633026110267228565539844590039775458087003840214158157905708299084923480571039582652817752880339591698528516904021840467068237707179741860124300197310606673163832528005563482441597970829470159293413192263576768302222604736424202180566630097386701765708565484890787444830163035142783902863179140793841034567487761769125048936572668468012808031858306893172063497720143749266626675562860215750957370194204242883832916308225723399142193245183569524119968188936382544490612181510953023578548296590506813747114999963636069845313402655109109882197727291703786891074887626338473649708258481698809093127119739630763782562036234318292051259519214498503401704384929162960322616555033322150533324746293390152494093390405186187393609454664935373817351111698653044143430394935654262404909892554363476829228146015744788931209270981122235585820274478804072569509340686389803852182006716329816323816885830543552464649223170478811120697696177879676898819507696676893004298816695534183403229436165046432826729636024411243166992915832648487033769487797483261498235497798017258621129276843805085790941844566809019501553141206897797708960260533426110313637525143858004498533000356700174771309704081945015372231173990148425565618497015337941561754676787922659439613305554613909743201104100926947886815997275954511897545338954803514700493106155322690354629020282450071221857502045654085689942897392512003156839528882881299711023001827025694854330835928830300002316694743261225597540250233581366788772679852263864313088681678814748639697426633187461490209512186314843328594822308914125366247479595966595103863259839221271117495299274653994438737853443978052884005262375704535013694123278044058154508048103349548221972635890882715682721281564688440783759121040264895556407877656525629427557559955478932201547883096789560468276844456288504618039040783895322402928490013782394945537851898256814722612389014932438130850565519661154392051053771141502528333934345967254260045515030837486612098785653332686488473847808437524337322096212758381463785933207243871117357171004333506220521974464827430879836951104175075061264901843375259850696924812749952155336615949445655410794803520866499911302370918927400476899104380693264362865713099971202577621869546033426666135572386265482737748707528419132496935636430358670146324072281390933878724181351950895802947001825994682780333692506574552924108321725247487816496726420038836073701388752104775888213818821530110936122493250256881944668111896384365237188980440839188836112938879834836082851144908096610838474605632775561137444840062255785641699050454135651800164385929270625347153741164695455704816316660016235096075942131355277701485153701376260354209976340487465069634733296271746468027353173400036219301713774099263851135973581605961252707565599306999945176172461817991201467964872609335440026552548295496671903877051186413383160717124668723269413717156983372716447109441095378768287348538333097247482234799983414203421743474795665126904055531088610993173709403978811276170993098988545912829889979325224051553556444991176538593116185134563325337123289363679945143295744173924540507965646064846209621357931698289019111028680499538460306981043198511090448308896527166549507281504443290017783487218817745980675847837619137348975779254535286556941394523037820811535577062889265297836465390232869280989747649011108805641017582609579810071664578179086580223659225744969886628295524513448442627501097892774648476636674449493723301191243557327682952502288564133689063026089343140805842572697074491656947304299019287697359567280847614029542289774461121286615225883497652705922497028440788953108634576413384277229570307313856042745976401303383359987187370828321582445765616959098166188115621464477938911521262476764154880723740123250489401486485136347118169818735825666350583140089859982226322844796776403421283757783831685174247694259724872421182819238587418677150060767152497397189100082837308165687214345040965873644667299815324411298177076525131229585638411732593393537625559446310663127994553276478161704162707485596385451773643236193022374777720620912269295186971882683353101042185310273495391656928191264561735274279897896291289344562617149356260876673012716717857514841992378941207288615158771369941326441576213839367683811089602309532491417647885868557636213118237801990934573456776667269472082656329404473189818233561649900210048486869677955873550561331902977204219783960497843725049025877458523681646346644871549068399906846755641414641885784434478821494466635517232265077328099691332541641787478333644448419001347606652501477698973516047630578321189285509798044550620135569550684507002848336439081457911071057416240623900970975488178258839680560261050236598140309063346687304780826854510661270279010536250288787755816362961414839883450688561529400877218989280701783122720132284175023121980575102080860875789427785814727915017405208813805872709716040540895451639096509214305090352673318851968692999773429478784084596169021952848371270347619624247119020927576199516848551180579638357366183636564367550069603290980707272623141948173087471030691765629209222154525232804889862195939282941569894843911639226012959636187999979012636159027288512390487247455316593464117095321690956532261508337484829967009842077817176237863620972336393395527306126154933521878455879696488020945528224412003224210746863693422710461038303581890106030774531710903325984521364008514778791478776711312375332906615475287200414843015706116421155509923738773509125709747822729399687671879039202418236812476807540851060326435466995669111273715862555075299665307068417098400920978472114719538316445892226285960991877471384349104335278719986943010544426323560270308978624186797418860938820109207798137762684186611364837767839533223794288637001584386872872255913783428852215888166531090590709098176285505881297985509122704911226205667077162597912240062113806628197298549197910024726635720607311752400590093143920056474668970853591468762434061421293376016767500006893377082317659314474098576405059926718881958296796945944172001942216867653708157905745159835574761350243087151151556929201179878826529025396968885108933324079407500888773097433812435180365813821521294096003651498655890111746820813719394983538731738653718491608571185360970937297432370521715078853609696404591607741368059625855492437038647572231152040653406249363279795860036823766075198098342214056143589528598136582200524782186252041082976066431489459595402522463053734192613570459259444602904957325715018027131265666955292190529616563970344757421712852905972502107286161890855025665910685004940979105278918725340881684495808766541968510288343217416520466204036901807130050186374137103845909835657124027751291849768392598699406917029897606381561225029046694874743807340732159475715185416054908669143287922412488428523854199255977336599551345112702495469571234102029199631796993300638151759892625198469269733190826576599712660189559567783046709879106618791684734138009502781324508883982467302559106732258432674145423115798422340828012807908938389793078372692419573864254490263155816493652562856431000675603557400367376860059101977162552945771534422197121597134635084584653047879584010047426823572770272907150685476947581143228760512158262481408577139055404559716753671798652676014332438389889385786587562917179519204902457517353093903327264688404987153288844468406825647988770795598871188499506129081936404010193237194698732582836771314215824940294820378592535035024703469587685669878653738352322511297180330092256830559369864042017859289814360364380200716287848872628567297914205646618739224832946328586430330102675331689339708409093187428047998504222354774920358277363035156033823890011364889357174235351204062986230715134557476982609398768433580701405555123572149400742544981297189093941567622453980160856834309845709886446670470925480234285724226315122539032689066977405859326656710336376044501470353464250847403840677854436280995187588726761773765594119080937066203131479310891143330262243290248193760734520176311873524359460914752449696155515741911802576075140656175764963925110982792961188740275992444828061310639271028218123866463782149185169767419866058407280386705209024865865369734910709467626774827171805018760058406000657252653566856081001608250658245398548427101432306975424324979710664403291935529333136922901434171793298868729795043840910018068267722768650805822855656215367266898615708655261866887491665035259592895976069811091593640033555450082973014561671571333451214941478326670416670518898044653031113012726623992695029063302360902312691673614366012016100392835434085845399253028867195270088877701429318648792684736487990123080000774086325853509365974102857596991475972978949603422347668076673828805340464271658521916903267956740535140721987870765542008974098842963748789049328139230486496359391977588867808304486634493180735142459685671474035075103744201142441620330121793296774176913713846980270443416356627785372296392300620990861281453040251415158891961091964136511927763153148507536457385065530121045288909409077446426222883503222813650639118930246083874432807414226767133599735291274885684323570761364574749416427400271984501353462536972868803191991656761664671784013662109533904703772960421624324794653709471032640096809573764244175893133250844129556513048266431538525534279729499343113983823165491551037803432885875419017853290267327348398292351858112626707208447115246494138416832876690650006122508464160008819595314617957026246174219889060708281876215370500245708923735385591852030402025821670696762811421169284756319315448706412525392962563818420051101304406433811481606780547107886543899285289295635679308540826618135487828741037257937401809356323642281183353437038665452865472337921683179097365737869345185714193958103777893312284306990643686108482617183270022700970353396085172116060188303623092939420974525405869651774102288536181281603810441420386604538142514984543875722340079833907687879704395421208989434571612648994318427853497752041332169126107422719121361090736754125668228239063556851720907601138884291843874450537063640900062998347107561419403211090962188502374774521551551277711993153752472409447054695513858114974540145401783245932949173337485920656910200136733478043651871148463503084937627888792081090383513609869987128766514627915838378849901641982473535691855408555462702288906320149862794502515219986216740614933580061557893090531374835792410116202898444272077328884737308953717599839535855232929078586267696094564330006838225218059062465409971282778952770874698363665685997413913072539878623316892488383387333160568974252334776251726007436819263172812004953618119547995995103845954338601627644992580167447896126236489715515369572676767116831766875943785589679369253601779194059814324545581764647405015563249896766668663160928438717739740630182351603069983821905375769163054368736316962207445314373060440746533267227384241097005058029688665504717466483838328609326958452151996618204474094727463359728596804824033634812777682194280275333872545414161424387054917274920233419300874140934253541842624755085533418046818278827365041014686717096261126696236076586556355597820933398262929692311675851440149335327853491912047366358097963265431561093904812365447175008714055669763100465418329478808297177902543611202698213794551963958223478978868240863469318081492268864547126886487928728841629348370713648701925373687486254473537045734247625994780890006618824157234936327862891451424284367588375616912582126443807664113646620075349316837707326168949875258511519771889311020648526399044399795724285695936163308586608072501331323141089441193004714509172591156368212485337898135016472336356937334414686123216526097082824296820336566982399607644694018906398218276484416794410921494695211554682615560509195630467978085325169973205802549973832188588838290248684138594168986786412175938226751207678325675387272662234338613849235879876700554815334630316347231650026303736805770434867216942635346175883306545624937219964070759482726801570388734207301827354447294854520415202981602885880312509354352851038921313233281889128692365763736022647910820224329456579977242909899968701258277931147539781998194345341989690605985862345760804796703822264442144970555284940105753295465349324663732669570811686679850753150638618150824610289286388852808719118096761596830153900084880829530848589678984658768146268800730280072960990163126848389362116550147872030801358070436355313756385670109995771231513053914480424481764997516994643422088027990204907974011322614881608117975775909224142791915238908548948975837989438896152761411004930494739889836044985295115023903506575892291897199807179191394213413854927226763461013095774756061883064671522838172477483761735953527001416146731057064252208718977922597398861151559678299640321424656949617727581391128423266004530620147029186439599789049625157041912142122579065743782933993195185147249098876460471371052090319673061785986663994533241190826971485828776812308675230967710102335351928516961065370721762069488840211445470149111413724832764873033697373670616350025906772455881210647525455520138662335090213997051857464677270153313531288061058077299436500068868082004508700335206319702227674833737218851361163988451914806645393910992370382452071196894817397043742318973828287665430959229262839608626902718423481573263720955152800899661426117107816102257534773641443801935551817143216700176881755689420322170943327633930622791792391984659309532648447847832139679674127258904554948311807785608694867859098637209901704849811683638184617341622104460649877248410105926623368318966408474759836485942821985019198758434976590751500096008958318375763414251900164205153237831822022858239059939141122414598678392207670841759930067967926589175101441285869281274029232395329290734724117272450882047549540308674033311291279417483825734172613633920323649827944929138370498468489110950849940113404076522991656774608027809096458579125933652603853681519653977241006830824785228665250755423026296361656647499540337698027767254662077710727278154674904061407549578601687959734836932040744127598380299979086748583007982894401986138000818023097909352982120041949619543252358926429982404033852758454953667779402320670661633379146825329770074403986177797880527232128025933500787607539443399909032749163727996905406550891840330366954098472802948390219360590862146532302992816112395351206200538383223999053953992915918420406806380029374631194600866571147768539692540754333106764902123254918033852123059657288111663999291537098352045378422221501510746629379264164202778912451615839303508446972116069523008822756986721392399131295153101371066771972229036577049300603589178909970026106299758011630226030645656214612630361315511562384001874319104246158012050572961271762114372272773558085240853591471424842902841593430516760859035349869935341790979803774747621908006881446682199053218093245133982093319366545161913923520635274957256921734073358454585183830246923168467809357485894256180202619637683365131870919724041140697598802970429898931546823163520808930841761344557020234078129161900301497353251121625824240898120550454064361917224938881461321168058977961418297025959611327575844851529370221150184732353916770507385754154167574419088686808884699019564005286060155201026667417037524045162474904201181375701531171563658769040834819504791576507523790906631636947620144682957898703206479784857335608109090154425369228421120911150939079770688224324051337294200796148430892086231149598010733846566903449773127509601217143155151804895157667126986459609294741811185689865278353310444688774857567014733027914921159787793868362564558805903427123327557432818238445274381690760083760506334441276453950227329904139793193842191463786697656841522860134487537638474043386737157949896527439643937734530985990388363173305842382702112306269028589126572114007594637322940373437387688804917406092481779675900768772889025224294261102121702467236699808556290117384880983187106537048538048872948734863812951861661101763219333929748189529850461318850005647375093495266992189581182144399939661833857970106201675176313849023026629082095185689297047807303099982215979141041032247177667601140380078563659113162060479918129188599226268221005315445752749757442069937313092554617890728416231912969246161073825142217982020673002979442891967036476878214026659250754192668133493182980678062358505661547850963234931955282026995142926457952492650741119088749572611837865106849914172149030485160203062135549214337016061062144353877298386156599807558509699767741778857972501117397520606247490735195574378139229721341943586752550659980254746880906097439911277657198765779293034341172728818566802894772732704510692688745885936553467368104084739699692552259283681615825999317639592989685066937724560584241877376923761338408853768560124411328453793757479142305006866881042731949480332856597137753195919356455084675719964443506136820861535447967894894530814394533843413567223882101125830282361432771938662005499134415001281090176231308416475655523830556160854264059630743798697687550858010149436799530521095421496741482348125028605028273583645788114705240709683429538932586604360247881293925422543336098525140595276810765788111761754693872289914488434497267053072927702897917969331501392663150898496251460851029928985844350113851589286833923575700856415785247139470634655826027657316326773233916412412724349246781307918434197725056866247394746163879146963030222285176668975132661499216372961037790996127607628316752796000693162481310997092676148312302406788018884710615867055647092269946431853830009449673539643605660762381876243641511422091438590193751327979071678434305801963948231542675301043289000210443677078730406561436787617925991910726872397720552355420288004792315993351691327383644626554299599629961639225915096588531979810064958924913027208383736649378830114401421721125005481769741983593537956670187551518576016524258125820722348178132178817455618883563314946931371448776085018561228430254533835059041520755657957108777264699007420808584773211903323085303491119272008574427609901748505654629947230283797843620406659160338428449675551961324439376554797208072624956301799870219181647042728885090626126500617511915408699518756740455002447641524923066999654215842537016031583763124316578968347984042472061229514492698922787258964833042781325575943250220449428432005037895158404732290874246632364407810120117648850979219442595415969178033512751399125641049429725647340635123287475540104722427419470107792084045611999906421618146356243700552236703078265847910015909660258823053936553791003552571335758005719430629942777173457754796242235406186174152974180993419602062025451722639036195456979476146872616418660070985645577980020312479336668328117049410105547692763174255201519664958247774116712945360308397561832575948059450147118590813661188125880821509969200999853218473691633481447779342537661918712255012266802761140204774845443978293242632464508531392145451474591344189517725062652762496759094345416109926857109072509785039808286784622718336131774800207645907885587126688411319349263206902545844152885445987647576071096838634205385696436231057390771225471920501517391876892981101129565091526609266637193391835564638154856000687883550675036240861882828488824170655341709514417052199207658359069287299815396426779317432968197107173534929427861522009526711958554646150187755670790741169374896706840328227045014635524332257993708987852161137567232370347147235702391085580297777506261631618371044926267267774152635171094374277176450027036847786728513560289843158781100927652695343721104635125884116614081152853615028385918250036442222607999097110875072917445561341951758022596842749735409857763929039328811701366661797817902865992202432154186068734975369714556044269040476353732048789281253250604130864878924181798005635151098264786169074977074055170548194082232850599357929900425769173511238670071449910452894063197970178154165341638747889811292428176811684568734190067255867617044980264649709912078986689703063462995975636687095874877215154560584795162855748273835960502295172938626614643549347584451256144182958042779727152650513670141129812400627235308111808900008749678486363583738639544283334241716505452125188339761746559621044513960835322890937008291360572250928956257888278943053001252500932327261240581163638247657200077787520904528700601056256516969316202187363645724554901681519184062737054479230174263466160845503734846676556488404366730970227625342589348366000163722877647666135427942740217555827860291367376805235004550347456591579544530242928224315830883439820885521572679202195581036770598779909734881817570834143887575347536096958399863610547461847604916640250758826197951915183713783659981700087279912542293613235950889040346456737230404621397857986410899518295478810750995974449072711846639279126977200706017771095991805623475619538398049068575933815797021797475401198573342010146396183600545681623792677269697249060293336120371165344960645618794951118210825623163412150538204989393934707776897190718258868521667385556582141534409666408650468570066347662855354101447230969292420224502047188160048188378590325551465307543510055517105301083066952882959142338823263858027189975009446390386276943011381466695984878803067693751402262131106903583760135762350401160069173786304067588606573162985745585312547028618253773084259624702268268081924657589891716406756457130286350161340757481247495740147194802235906981592667916002095347195436029029313335909241092259135540181560728692308430878967065791683624565083408982557496262209040698868937671468833865064768868556563813666822654951851370542074408675704444432614961853417234950170104976028253730189182611597929742650689393328308186566836229976206268297950559623017089548822166173589627935601341802156920968152332244820516736242239970960671867320454841070663201733407631912094387080913151076013494283253905558095093201805127558284915813376662421157800046082869789314891933660962146671217096928932612314016187027714432750583584403849729979563112000776730238643604489172038625030531060005908843494938956653241338732682575443446622056926408013519601267849667434079871541118705293896072157824461472648036834759090350293996167129370564994159191576502231457654496578965421486492814606198881421718977460886543337846367760766349948283111332722993200765968811551569831660899266411554136037067086120853717802796439616629613359948117519253791197076414937917131045589378979329491064285292161967526981470948027153634051390802480196196964930073804340053947925242995109743006464900014894132510046377887923630278686214080199607104269969316638265760263878159721130919472621226967951464453470974183475225990400266689157959743563043605910725476833990288676761412831617833368951065329844792080691025724262098045036564339721812159793321078120889578104040378139688441481282529594572123721749198850547246820548985212744180542535459818147559589581084333497146099120519885493465837652363547363987887688120205246258973830192233753440610426516387468321842778756461262811400492237261237334422927787343015694608752269573485016593523142334614147470219470889627106717031638579017180283072632073202736662220719780715533216285933627715729996092193836840656434376673637061517250812947006729597871752679269699237293858108762133129415128288777186289995411959230720058168400274948519785739058171742715608468777766593948700200327298268716246684185381876909351483869306502217628942964091803148387806285884856120370034432483727081965209278942998670654110505992403255288267393090916936221587578707213864691346085525242915301574416702131865860572389813868559626646005889665248569523755601503446573641372931487504809462383262392066937669105245135146369438526127044742856982875319997925066464838087042934245770337451226488794909247371916807147042817098323067501236932507858645404190344296594389145782983455696571002876360782222222385220924146905021296983633503863062243515580588709085200922034222205356162155712305016795036086034584711827148844712501068372977996560010358106984734986358404403109608394058301557873179713638129246166434779520902048864129372042609676392541421144432479728783370468283544286008834569052870652978773166861130062234782868327725816241136990677506378443333952502147232536395984263322505617652857690931226206792556725543848313914129736068712802671307354077985003229611586426320233749918847199119859159647365824285131973849605416115009442702953904898373507271625683684906853344223773055776948276119470467449067736036291902880742070956603924450876532234267375644860606318085535252020769120651371721248894084492488254638296444390985397210699985188097187828569444364138164228810293792898686392823575248642675025712383121482505896175158526917030030710433989574565844708826621075046431176325066912746385483080059386468551616714869935414502828988608534410550480633283127206752883457366375513810958751122504586312666220696127114470135448424177615681136735693026244121161130042406034554369247247073863668782148549121361908299833360805405630336102808998372184370373913853226613208028109190694371576069208113375726896763476579217563075800438545084068334455501937621038032512081611151763906415326992467070790460751771350494861474843953363407362181325185063198850524800822337320803377490512217344688539794956289095237406044509629551513722471534476979536063772938680224882879626132154497106417829230720861901577651253471336634508420032736329835184185050586413443339747795313409847199560686443334510174236792189471536511558861064074391156929602305966730766412680780700544694712684672340989501053501254219800376589268618721598148667283939859287221768692299738581617994409711018351170018087772734674650740458575670210186746277012037585634407918270009297843488555582190223820679151341459732551012726795428548261310763859908550395227324711130615401005899728964098305925396080413811770326256729007469710117140186702971486732272784883731429969443307501181404042633517167912716015756021021160937020313940219410683448227301137347040084512707426914835754578678680973725206740347203866862667697490891440553063937670425206087140690662123989456406441551545473273392574969426825530123623392988206554988876847383658127370871662114765695219322274185063604075620647547884477628026446442564391854812643043724234306466054113830688444565707394023560959490340512862646997647591969946827971627206729503219540193406393391440267177469632404416988323209093089378945820455039532988776337967078948594827670309887276344788049526126375977147311485354268289225882691937657548937294852395245206449267275476221972788033669360222779499935876705394084527750215982044255427808482605927338675241716841541547584540801523160455813359979995367506634802378364263392543685495895769576551459338411753146534445872556458305086709684840486600063209786783110539463118681764479244277068584364297997331842290977393903375662112061516579467274464301321616686043268124946229861923287535291530286791380986301618986029381377360696782566243723873604919894493188109887926495659169090272382571637550161777861920478559821024292296692279943428650129577046185295185786036895919498645697882076840245111612829354126857580316649310784947545741621823179695086589314487200654529643497723277703274951566387909772199019287506979476474974161158292588772602169801070517965817702637209032583745019101401594406647528598132444834878136623611860633720015146439080313655796348396979327207338849406883279367715130765744956736834511962992120892472417114284948858826102547347183078580122109619537546156581275788900833163575062101477440118019488154450601906620083416757421725939632768488516937350903468503894531461747209997582275807420467804796875631047131267435361931349217135060846339188280510661011905982162366251131186737102640189128636972429385575926640227525229640124063670819495260867213286604408012057175359415608337993021430402672911101040474193679215851971053065867248904581504168308288905704410041067511194186900951531144043623619142588727416784536019732543099723899889914459818176554125854704691157904343851362878796150730190164183053749255908053784605674007740086317068267310071379502318750996715682905129596477865113618242764062582268266190030180944700223986303865582879269453092529002378140730911544915264857417573883954965426760381536503538950180033692241035837249992934753997323427907933627409863690112367767571130488710439445559254417547546307066180602859904311640465182802769365323914726566117516815011922411441555703396127134856948812684919593280514086711736142106549231005920113460554459792276768722106093688190653591591608901059492720868686182862069206635938215922390852965400544398284040612075624048630263595266155191533208014826386561655535521401225578981047623714988684846978368354215571853082562398914953866549580978343023953046008755189484802404089079782913107959882725658676052681898042294652946280113380396885096854200481810823219401682858797251754267441558035212852137634911227553870596843427742894916653632261032486203829553051606102671063985118485354137791642517426009148863729615648538012709346836623235830914061439958256154761408456435781822906456964739032679651915826966394613821827917468593213667904579838315721177315266204855715297592296805538337078423251841725187540573418301325195218329742926703344774032596977552847362069764014936953542484309284286566731545919714792550372955836718598808663468930065734354765835673272848005591789296956196907169312219449185932890682401989389865740073211465819570441501298469560362151972848386645777325482184664829118047506358861664556494735809834591524658077910501424584389752022126193420263569031612872365399457891187751636987388446127649097197608371381378298528444089647717492868053001215733876720226233903036120902449956795880710623698469783006045541713441693701274678238892409978821865892961961213369310416752647737493102969834571126456534943195815957363911877719536413420838078350329611377685932006504211978134461758920571294714292343793243944662410565023601493245373782197367147968248473001357236385925047385332256880940412286382982372308569705157237030140469703836959766911566491685090766755700285390456368560806401426614692213752242623706553341428199819918371205146576587997812228595480934173561968848994211799115057123552860219060168333352227606553254148731086164677900234489619385003923486781802673872747568500368626920756776537577627117144696088413584971766712492147388115338381235564616994843312735703036673157206824694150429506799486864956141554553555197604462716378602186816285099115391189983926368646601776406508290107236551173975515707870580680659562548301635819596674360981340781381675203455674775058449759115742634990955907881617446209155469584400306073679647191228257742881954998771616168075378433230061383328249844515718658269042939393826249947592539402816415857353955352754579142235853873011629744445115905659270974167997258388990437415135161786965810969067893383802928436490403200732050588119645429955259847645486974959497431653436918137367962558133201871894713569018239846391311197950602683265023666367924418942116711193855581072100989011988594239686466411809045384321980644648704987050018769323382769112920690230043817175213823865376308384843365251289953858161972287970272258595986202896870036524180129593026087574349078594485588238191025736010284384117255845087809606998900461018447233263556301707829261368722420907560889177151313998251952704783191783984081688563978463785484753900139176479793720112318619901260506014304406189660551351790090844866454752248642582056323115529363762255763946009732749727145395229467612384419802121192423350008710283930440289944942282228446174081510915068827382233987175981929495557523165797831490456861396223675945574687340546310124739990515956775588723889540455057060861405127961609200923674659772705855837918342292552680912628365204374212953808020780839156525119873711655820658085650932881932581794766621321115308484389502643259837310368823104702516860127816334987983507570515120678079153079646998082188978896925868718974807176164428547656893656689721959252891336340801960777084136265497041212675992338296471387436401380413688263711005275663094152707728443414028837397614790246187032697052199012492906796661689750952017215815513457455796665124695016693182154893650617541992784181783082263215169230225135849626862393319365456779074401452267930477139609687705072420294568183871726692189754380196220994494060360329253796595606214459027021351973826737734254516527714744708814095226863325954635555126081973461695212188158221711791355709242820784877342547954558223167316749622913817179123347536193153832244390712248164237319111322932333593479286307358785487443499375423790171832502321701603732758819079619329881769681193522326032117702558392006370310928587398822618905853883418607236360545700987875059003074819076894406038580337729658271597478785085063257601615039381113492502578009007508770164223165768158928566048169994551736367549442803026395501889050477264969138816129527002154799172307442066553895163227014037819355620943636339588362899969822827027905106249903341242063210081059550084626882391341538705956612151242534719091101142293975997947409043524099486983049842899686892797732183739535895545462711561260292121558111939547341780667086096485774681069897331912643974731925157661518826521648462716313405002133674310837759455065975582516162379959604329880522219387616839626985030089657202001411332142678003431221655720988104973464500686027145063959804777253236298054761100047058336658886126367348485227822250893553708392579598344032658191916926168157393351191383455615649732433322816127735449146922942972408393666814149540860914741105854160366505468689207104666864385226498311389859252358227795343324920278717458676422755839414049507440000498144364542814063902466732259886350154316539872939041080692641804502211363701352459147060002229141533185335410701448962521873104629315666159091062493850706567284846918972907997613520555092519063406020778283879429064237874941158627690573172531801035549798757760776513262976391886269685722770428942700741267740846986452267105223599433764915247081430850371994786519073477424414366667776751129249118720780192639558507825217998174439044803115860049711807566051171837071170177658911920874706926732245091814046617591444587680217580348807815488019088976948497929699215078793060638115787346458052997472123223213983621770837643150344377820914818369249723751005899791439425044540831748642441160114243221147857238109895364007923432878837184911209244643716792316315227845329304510433922390044175053188457242728175532385525203617292874551479706065919419862881729493154824176982260515733421689860330941996628824238965646007254601625368728822889105084452179204532064554673247557286094379665295222798500575191233433989370410755902581651569025270488749396986291362001506825519741863799614772420613788032404807565856028924364320599043081161758549089611068183019353063308771569383134229097043786523577699595904572460733486310715566381691705650023679412866166912570055858324870871157512347703016889030123200633241384313293318287977390024894631653791643080645382704994379281030852995429016415329056937006410371386199269139718007035715255659540012389562528347400351895016988480026645056700124919945016794525682432205624877404907878783188158674038991183371522895132782047909776918548064523052968039711769434089911927492782333385320219722124434529135361569609587047519789073828196850100006620348550816705609174838571067627139703798242007826211221858628611332778323952147849678963613374601067087069530395480834302425596616974191805681287006660526440206820310021555899367057480905937345649280903002696699331901609092704581199630705417446101931697679857515156046002381784408138078198032841013736927045631703023766759726620236604071440852132663246140989450805676594358108597777028716998645113614507378266513664405535436078294323309807933732632734849674050929010554369372075461961713105578164333681860329260042314570691728069402569383481838284500720669976914508093655489537648944108563105441133512442421447465788521731057828707591781291634512916116856988146674355825914773831743390209517782664280127737143863906327897982714968278051984157774549283792155265437566384774117550676906799454870221563193448642567928100287310295770702681655509744804413345273899549265246986140039186056315426146057249904313863064653123035416130326661722767537467354976845717196384174887501050356417359873349878308707666934298755153813783061146800179637521274443438258029498299354738054245516918050831183166162222838297839558462595956609922864321684509127181080759786229080686752653835310792668107405600907574274226238105563806141423988920328935220425894854761943567880331479143822609524625845956607775353736937566833669857139484063360890990859601233150693675605026355830136457223887328700545929377831971134604428479609184678457119282327390371345157459170122825098876265234752769151528440467222083082414183576416646920412555548655647804236297042482773300925553195237548188716522423661470108620783305891670232237371931350822437056310290774186148969007173418239718794630348074386320687760126533547230811711642604010881277715991254492416553699157013934311084189364745224305341555055680009176031375609666293146260028142383815911853159576005607322416749357830705704493971984931930436502507737188307402481234451111313939636267928728343294587548347529127764965637247275997624296560948024471122112750570825723068344534243387695524891837496582941045344615362955234797210337791467997117764583427896629957349325507248191143575901220923414074336456704342081689064348046794983161871407933300255894789167993543188097427058146326039327866789944663252158858507062653719350654666530649837991546163681106860818247341441882308611150979794994102835816324829378610904746416044651678264955478400838274796030243848978329289399852414275928216584512010651989275979718199383666656569827766303650255468352663479163851455932743326870929751845640291683572747577120090187266614708288684503493700246379408404354493223431846323527337313740475599305543067488543122887035851588598596330331953130190970189700865598662741803439101984928663581848358628365623532300410679836293494017742304886915650902980507009150287404185645453863771562726085486635966287309658535737296447340008211363118498203933988342968450553002033997755578471172601103154958866946142282073659722967130198069127129158753813325544540052066916247679490473639466153341121793394480812030922223145368050718639507893205234903896844482196764929824469986887510640549492748707476226447427154350485711263546746724329129589446293124590658595549571927197728839164186098626729798576648630518002059344639989293408235537441912625636069643057151334320981820572266006645048685475405584629870429410430558524329626185666614615631013344460130860317904301694044864028579387758603331515500175647088238667583362021950902072378695200868189104385300180593981244040345412450265241999380711739373142450937689097567429528491615151371604518981196196476294464309450325392128991057411338101850582979556663652494266606666966242223846067895726317407440567991970026681057646688495271123077382742475874881181215352213586699269213257038292026756464340864768117053354082322126271589871183407315918938198321465500942748253043533243083361883067366955555413721595206279260735431183760091675237960908141794613423915628695060313908107192343141690202502915055320297727502870118576871932876648659709831566792102432227614879704631787441166940585176140005961793895691631421674418678594648699239051833927268379026868510695969487450841477251014870558761343126358067313443145977834604685711843660491652805179337393490588111653139242579594204144136947339978107004609913404888140219782511424635958307484851187399166125506119119639466538437688470734768747315557052878904178768780611176180956159613396671068744543506890964359851328888575899474877734558289163184725743658032457403273200639647846606915762605750888969712942110402835705083768846031744776166813921797495737140591276871546553595989684062773949225561659560211054634475677079238261909890071579868468275770801351880432654472878379955488810287619429278635844270333047946481221129068585329693571028417418898510885036774184599727892128490916238030622151877215942269227565828898375164782472313041464855949897512041247327910186745245952505190589003121303443769510950189075998535589014951736183829100273417344052924083234121363389819143660735582106333455975857690524663547628606534448976353381043002709391357787896155811105832362747409031257677727959405845703950526456416093023062473180970169257686383277243614866176778080671129246842794809593230479498530785427867496902341103798592225552733527656009084934330761754991863134722640502013899053931906074593127408558783989747691981855487144160130843910756234844545596000818059556765423986027538780624205296145878703920411049374103720606940723677163672883520537768938032955282167282705915561021972382945203307493199838725740419205282187551611648913205101547855341923093642543291969108916265076410038982780126957715457379737167582119349000490259393927505931851135309240230942707382483637857836350616271994711558530893305831036624534076092007610353727091515160383961937943177359429619383301337304387112825084313042046125420038966123513683556129196579078203781373613807316873014072824249216162264859627901072150480373646221111360691597765938069043395174267331943631460963968568815412275596909941603882196595878905683175399285209970915529945882581784224889476131455829271392457053587779208540830334328723881547000164414505053601237716290262588811622298134279189475943516349801532231429244662073731033206327406102336599960816232340254465029770550942406962513160248281009396120091309406283230287831012712814032926456155687549074258988472264517166748096072914048567721563655337969901817946146037984880060005887881014108840118811897671381399504946635309247650883773922258142209659199461588303460408427790494369338029142433531959818441773457971373369683600934120639627228831974144149252454541912186884370054884027219489567702117306117348325769992394981616215133918722936307806036229118660685369924868909276858076017064958834854007654405694589478769188183549186402310952465430405386929825432733954858148065435635616120796062388802679145991563329677862010700073036664914239535638070799358711920522931057371406755793581394538671648476304148828080506487004372692916978851734694081412692203235517327537743041717986421014497336478930228312370847661052717542783905519222316696083748783028103683551466625983220671848432854994674891623363381021086049542888477931250715566260894450325618411877559550787624157420915142896232101744004211802654760519185626927597072192868536732625259332684367648358233962579736077673082297839129022585706752728944583643320563081257868570305459526409138951438974580116110480359979601328027985326664800941493818971989054543221448812546061328790518878191864559717707352205357892320873514890058299569742967056936395120990837026253704428718904273050345201527651702407309933064113797189281333116149867383699994514826106774331190963948837095540809261178135929273958083585711021004688325756744507382357387510511124608396225393439002348191882947951541207868383224892280559806813803523894496447020581037816050074222069088674034876659497802399856065015838523383249034968142891476534148651374987694490009549250758647674866207658910214908419639000075273042098856508035336079682685601198903563438040297318677836406021290976151108297932313514770942343559554818451494606789946556426882401456120828572142519792652795813018101805238091494731677813403931129056433228753567395780741588985700831049179771872127893269661188198601882115935010406182385757864388240381072607703768154329609499117551722964432293488180447148128671611164703248105100479128229532361050767927153020397542269021714795768508410637326001972415382666834576332209119286872588430827960815870231695130043183984055877558391143976151219051325250118146700851781186359464557848099966967329306020269636699365151819247812552660736082868516885153840945492396962789361251582165579586223808285512772606724244745000495744180663704773387713052757382846352812136495256425358876773510503015627188366641308552126918040661405607853175590582350181325120412966627296433733629181807123612862638151314691781259247799536391607668402059219255539106461919041968404076496339933389513215066523241629839381099462533671667717634114788159331890637553629914028704575396665834869356666895768639954297471919189654121878055426983639766340696862811964170223626112888360927963189772330417288259759319102012116944585121777033054024923778769410268444866055194513698005664247769941195107062385663704644756186967350015363461453111816375073784816030209834221966987367294339380534819037867555630898913982378258878815178770166874100054763606752884045078770263153766676044256230213157308548114229350067923541090444039883911592344485481677440944768422484919516607347519032331557288613182488546658457264270196757690401115995262080515855342478702615368253411593017424017425990067580033667613132456600627577525705481061823132615682711040071624158092977449482801271626535259861166121099908076986866137710550287400217167025058362054074821214553050971779935835053626718938837670433682657087199802566885922014786398403501504126921003169901170424735726917078088144365244237453454735283406456166557243610840815538785948864110888450949173316183733147471058295202871141670664464955632518504646719742871848603460716358007472435549626714784401068949818542839935440696426395768134795850626522376241958173184013865567295515151882690099148778470339963536910843226440873628585803991057459896033911925253179186376321966027450121904875952696374365431835064836911064061310819254100835561417673954068990739194263980276950736188347270022656274709226963512364047023932723612350771881820896135341043184060305788602411135325434624438842131442742791007688088431246617695699132821047791862324752833646830440163880674064126107799727749246181061319146930947433248110866606826102317554047011501799501075793290255148971757364092908681132746915659705304242401390640908516379466636698816307375821289822838944302498576522037124542432019096565331566162541797305014123841433537498649206021487910270149064718686659784598172831072135602334592318374419241863142533743339372749479898775611173267222622492474792197617390833099003098969286425227289125694803255833201532154361277197085686391729575505015833081588885213263577002987718719659931418940932885252197734535224088855077549034952213021477413517123579987233694154163651518461503239452988354577764350650759293544808217901119154941232850596393014999747380099602037085918712777339110329454954671644160184170332462090380615401527821733397149215572825491873517519466694770522837054383245775580130684887794995038618013195358826538862389055684785184439855392390070323651751180895506689510775903380907242681635178033117288752510066554688921697823523913483416094353020051327256957760557422039898650932100657967317604061380936695083023147433863442730332227163331402012073598005330212777280839133130148473736147550552360849205356615007880993340974954757077190140158455066385650795907726656974032806741782383022811553780180936134869316774225041093515339415898269614346573415271772311058218113322273419208636037544563352016228205902704268462901366573656697336198654909779278685357112519772858004959393232507046437335290897214291792671721568632855442974888954753568115438406022847301867585968501075817389175299047197706790902792323450198326750746203279638877098155169311676201044588673792066604792124993149057989335441311352174239901909044715632144404440709177200043993089641743883838603402682007402823944436902529817611974392030201689281446349787196739054474818246548498502467631183960672967097550048987799458229117224548318340563328074105335776327920533139223368892097371600740073100125954794381146958779544513537715307138047767779458978902474305739283656738620469595516981114999454531423402185354020438457773769003019371583977847437401937222423896555570139022621871687435684528008548454743492584919180321653355552739645779472755165782367965477627228945539208980962565712928854592091740953173538937858863865857781251011271764303846194667298408509668706232971193797841331984512016009167220434007906955055309018330813696505172577834700704591780298218539682469933936146852209464214941358365067013958043698770173118244686724135179044771647020858268457405875081629784210195012082269537884387610817867942135885916085395359095945781114389708209075288100539464268978338836775232182127468059961391610881475348258255660978295767438604285437732887097610934313590356084671033011720791071636285457412509452338553138212715603724080335002929399593063523367172482007578516321369538612750386106597389585331001830539339132780555945132260021788201698480385120604509771789931660859523388289974512500100033819582031837162386675911906215173479711650851561260136214081200920019661196248264146041105489612548887349755782195095744946793795526871142813630200887817245876188616431426446215980731313653059402686838511828986063765879248614499894913408934836944107149408489956592550110785906934225120032674491627369168682661771819062936174094230702659366125747641793956693511375517587464229847991906803844968571174216561124929438996563671325082643537672558217617261221448469374268938348800740553524816518256449212309760600733363061349722409297405478667758881300558922966400754724955851728319035462289442538266525861713264045706785317409521803270265951841672947568413116679572580752479668718371501840002706656329216482560584400722003071300324799326362956870995306191125144572830535649274905349552253857475014303496161857636225081122037201640545886673346740524546539290398027792688135635822093395174219949941112625484161371897455784018876464894949298664732892494005615951545077059667022164850694641053266617530928827894957558867635398382798718464728409805699874182322274726529421001807292613710843634691273504885269434863219586275464032444425117627271013259467976284550532093926601404763236982822010482732560791750253218527658505958505889224640456404960329204998211074546676146738342539831882655433205826037859803989770965937854589847907666862012483911743744368491271476335395786214119407133867203392706248797755723274297128355074362805794716823922529317884494892018174502423911702749562332934202472538516775362534580362889637696771342706252243773625463439195341535702234397845582656588049183281309075116731412640993722181404119614050758025446475745367743754211838906534922574192044287669086061561540194204847822627047985453262217373003584343694290495772729171280138954396531651552567450087658332422811379578040353147571185529543571897772840971499049488965691506511262744012667675100120002714257816313277069678747567762489542892914135751067218829025562476749216936299024029769162416350630249338253589046683598765340213186472579884699164914231860045940403975484616868191363800168728619431682514245745501952406248498681643050326271424316525820442833618814157713840845477395385262027543786986459776635656745080313516826704220293553538562966107612632642601021660909559234108875382062427598606440714867246831389799607784823186215702452086366613127868935521699588077263717376836323440770449246247438701754518703884514886383602978866358194547239211220058037462922636553393160592048309862934151740500430070784791474403469687780213224656466223732294418180537995234952603674720430276611358728758406989553626088813970924189172714499794567078388847430175839551240966022498961144640390877005998570445657334287188621890188011041838694602782532170765299263071838210536241572963352392655281945240923977026238859292221066003358493928080733985695301553787410032766098162945951942620031279907480391214980313255760072491835835906626381169364212658099443862371640540584762275886592162687792000977716897417236043681597486994398005714692358312253407968437209706182877655676824126517566964405338287965300724652022176631624555875330118826533528669024460329085438120404869464448827679828675606357437941053681092346998398540331762363019325257611138600464277694503694523777010491296148959234952025207485931729631335981045557062762383560930025348124608145519803289875405641452972097623574021632583068991638550667517242698049560663704044327061172820335880267693806075121093900338141483516772166899423667821407466511367316577321686179468286181386253619436540857404030821626302127620480746047904968041888845495799749869521856336814849550057122196231147299366352052241176575160885301859750906306305559969168880191000565739319141344337852033516213209910633907371598093909807023246182281831754962468547153077401556561562439819965847045889027958878616911771692653346531299390698801978435403889984342038430744521861682015671932693881762892296211726221669048036419300185172847352019165499719658361785145344260925141425785764460700855960970368643079297634701298298585952490546300154799441370623220039008060588798041499737000986840917326449591670542532787470233881950419482415377439880599840449132686971620220872880008435667590239320749413302238671224507966867573009620597927770334972181577388326759780541546939421870594747814751322286548208087663941156719250926020656837113137501381413920455337104403056328683635122277729555594421533120767363908782537051390959268576521403858476855416772460174475374557246503945923919261057721081334567929338062678246750573873924513715368900138326184763377446905005792830158244754338145157744374024044963595225937521700799661332514258191924701318956918260102672969603412896269731621819875023095516312622187305586021211002705910619058222798676953377212050408644203892288154910521452916017398445339257845385402538385153911868744586166361647849824579922620974261132001981299725524453250234511619903721324090570915148344921379562444632712342660838820387950777573207085141366604478492899769739921158118170265736129440698729256262712162568622745448789087788664359182464374539134866368646452089398721364003626841833910063530428785624990634984368093653171927205393223195186734380168210827430360169970820843157666960523665476804781149773522733479782628514662607780796548776801109182307728902210127355880856184884344553737183757639487107753757984945292239267334463049446405538482843191419844462851381890381461864426710320783939650423995524301580112608545929212119962307583554741202811716982240334946995309382896168365150330807603515479265067932027476035565756081093190019081621946252471004440493400940134771227396181484311677930048086959481337342217010064956476792957108014180448973978996830480879727827533374167044504106676145659655442493035257351584710700419546932913657348210747958644774181589896044622865457286738056456008434178901589537720663522760505967485747003261946080189949731157668720044297728863900597820026239051868583134126466215347052790860742666366813644959771885849600573551919987072339256110005742468190830219346420226341797446412078025789198853301206302159761009968130565975834446022864882675005810626287328725573890485149618801759457862903025457730856358850124499286287174304085421368487116664211888217794733918743247489619616280353693727229523733040371308209522352158498800460350165710246726151219018159447778119691404363573620386624452165264212372833949666256162565857207737968500020241534594878084210661747318598785338547667962720055464972114751000630712426190336639158106781226771521414970543792299024941340643303425312157637295569728939078655819196511152983863616647234112984939740210095234909626134472276339967698134508463873149261608167508983124486929405069097145461010880548082834898420732242395871350488819308594804024257627765164864466123864013393441357321468870390270032252620119457175658912279450906170601210535426411107360872821565502745558306581233336392593612355293403699528121809818656595937850431797814128637672041104579370597239966626924011624808784993248980088243298133640952713013134182399922704271224603115897109130603016063857093010584650843325071128545246734745993524081706952214266083612694444472137250227842278100344614544065252892273888936876063732571338955402714575222303760873975167343922795223985273307821665317505053138529831273698739666574244883217772110340843470746666590088030175531296298038188991469404291693117124202009108702322767981048972889320328458478369157311577480567877596051190225384458595250664718702064152827555620278069174731638737651769681335737653512760388614004091443986137570186324692107198326208348277332268013357973562704329157303186105926238964869979863342681182917167022607995455353805646964388277043204181784589617037762776366210905079968810697815543136808504612274973856171508018661566921294693808181564151737205492279289792234845734708013644043151649470184783670850923811979145728212927952033703722947167567736065891132926314549895569810750544046942983673568232717480939171735605509403728145914820503695544476615918894071730179965746780227112280237397515154251518555757157126321347473013565909256791162601153881907704597784639203122050077926024037166940410039683939164667002996550785399833139745650401079005291869062462799472066734517485388830115893446856809894263981192264096413696626215872552952210746481375910817218768299639389617472458617369602006643461643625313796637263487104980069267450448835821109684643024468807287283496499034985267808831732506872450923776954981887264355003909166666554270763916076314178327939338586444537899923780985130953811469029245524082544647373873155616159986079660850539453626974721926777812514177704062859703244403876044830370376074610220843104402664160351212757184545844909698895712561764449352605256944688636567770058335150461771339730571669194800249048647713993959122853221317630689317690507218246214457397026518365348256437395708302983029765071780831679688819074370772947693700207217766866506736429700594733576966269435690806739262180344828646986152467077216965970275391694124599465311578059726492192848635581780327730353780387086011685199135125834538884988474281824399066770729531694542011644387634172462762219713491216967480869331209885948412861943736163533731259206516217685042219288356377606859332109372217080300366443098783705140338268832148352422786966632743123290904778091186900967909339828144064395706749469359177738045099067591705282743218578507436994998322905731628366824360647772013406014593395081867030407070928000490448492407364076299779758028381914263091476736019345229485772010579413449819916339024109969193918838340753224063647777688994851624556440273591367179281828774236216946547496194196196668882799437205129521379851018886004497696008737180948399149511898639526707407419647102314054817231496422117451524550028478026858288570687830999581018931287769920326372883606970941814040348295338806596934400846938957568498837928416549973315349906162263978884161008515341342523868095842980745898885247036730954840893456489452701277026092021732044298062165039830654404326511574015757036134395357639700779186220767459880482284596670722238862292306221317234793663848480816676431466270932000861438253964397156724953698881353831815780002781751495150634227903168592976083535883493028681045748645716044686442891315850320353965812930854780599834459918425785186703449945381803349350164195649271345658334767478063471797945410023711283501189679830681576747912778570800584542383747353797012866177898078027894273879261141019126798681151399773899569157643627131422029171600548299624051748435729922183485286485768032878263417513420452951489928966281149292344465079676724700236418138728555106635245975536276702513391401303268670298215430615382093584161082127521342581534564631593252713171367994462692747316840702280736289100969038466061276896660065239309011989027411217805273995546499716677782249319705108495451501627683541484217096913594289711150166991941104904049456222043489100564624214973385791180520381461692562781038812891751940591456061511713153764953972189288752309362065478880104314271791034811196803267624853824000174831972968796328182397472611641902857728091020640016158197932456655939357748360260762566756991413027015138322292030075125655178528657147260813241458863877327924707086592194195383216141444364463865998661568244269540759658334472683126410862091316831327036511848418544930397938026104020202655416990452885410374728307759927092648607135048923631362414056839430891761250131890630376350300627942580404199471209891624495336645641047326149628429696318505821490808176396902196198840523785640196832216130723949838890894386804483891237444275004534672228445249110291361936716273002591716864584119252049647285730285099545923177221464200274181526248182047112618973656206582117842036799304463705686093686373563921330494951435276104712435561853107205864595346298952200229583069568912853682892445827487537711958882714449391095441826634434499033479946151718218253305458811804517688118985285775636553498299136626690986152575593970023849145987680357860412997403987546403477729870823784665821156480107889618683758939436036876065753960693509984324041165341150708153382752048444906879187486728480406842345284845424233521669690268871221700068585797918776960196008517413079692167015045416123057911203299380616555221676154822700107014280302161771315894435375211771768084727091571286962276605376797793942989658354881694203422109586147578270738418284978752524243846839765984972504757540018380982585466907254366116804677255282520397414595086818844610083266194941652232803937291547578597809320396272442339817795605414238056818522296031820795463821887490941349900251690975166982627435618823406871509318838771306057183358257257659397423497551824313683315977026991071369378786834767080674077322228604110916802741509168213070349825547535863164976963445529557633408314314717838638207153762523588155482558970798150247027839333954431718011329916558209943730050107743959449980522037286947051040393472175003749985746972688629489586545261837114469276482365969133609000795576801564128294326645531756910268384871423181266478284406931039114199332160518880843961131205343546282409112269572530422142216538216391885890523212615346213751541903589238601137853160207058884497219705741842853553519714442040658284492314375243666012893241913685739473810040028398232477512322214997073498115601557702216964651591590506254695244059975239824144480987243871495139453443367438556047818267167048755375546106840614485517055758309848408402209175412509426673052859906214487497112931606060475397863372919805259858587398196478257919628739567279336143778310204213042940021007529714156048962003837431448556664324568959870345690176443937952610042098816397963366145981241154293122975890221475983434052752629386702043079247446881650623363531870420236614488061872474004655847562863974543191141211979732139703427697243429814139052140202652924324823565707238411153061567747541270114427574846156536278727425736376131195960950995922383422828575920138352275653352559668295368782316130826489699780940804477517040473708346186500378187354213603931869618182358200954028823371990332418986605558811849509458646644328046007024281189469469255669987973105872332036336031327876687463731391932116554498872731257243460426516510498490919899697904307187808935050988964623632905535551264894297190537569118740144020648244795896243889588917924520351728804613551472675841400618850921126929313554583904127665866823453507939594986474049817129765805134938030672445717154700698527109817483400379904142498298173256582697603822977966273050439962356673320764953372044508254041457529757310562412063936458650431172798753765791741690471977788790108638316980216742202087043021983080696434842044997967453293799598089452518848462762222453135290907749421886316107339591184764735925585757840079684137561284796867259278914383907798140036713543757510189036211823380470910009682553779187827019777661185626345505171052714788634704438772991185023170450424615597105312879294987619989829973220149716982632674250764956956708567834836032894729530393482050720192088508200895772910741780268995310897653661784701018550084173769030777305842767237546086068476856103193615473895749983909781376760871509993725883081440876625896507778039402870784238885755793735432448785634469838178695853177584962614359981213644164197719582359575259505987845954523169507435754810687402019077296758273131306868022306907816307105751148547646419094546634364089684560282949574508403968253846261072955678404115633578308091461241719059107898782301461780141299824363097009502955255842094605739913881448637219301679609360836198759652872504864568607264030344836214849475388529764281042290656683370317970530220192117414195270997646187358443640190836851406538755557249112434474124163141995222460999386542563469556189416093994076076233433370749936666849793465612573915197068451204530328715013598085249723700865325606244254556138656682381387335957335691371632563455978680202692011350960269839615995039123751024768759599001331155081355954367560412240037101982081679248470989193267555897858041034275301294382892279152051843418034120856522087591938919026456919628666208175203217374594435315664612989227805807056844910204234713332542316072605637917604488973454270689420914561547688435829342687807537000489999114579171602883291471526669543401463937852003296495884328634877861653979639399720351213067354048483918890083291103275974146811079773632791627507125991073479795010104350864683041516798386736184662598152900936540880553868846491128604940871076744639527295728357638404897480245713448948727998237269881235943198514793520212898279319027807922213508517763322947053527817727037974373717812533062391369277613622336455128370359028499333127458886580723420684835524374475325613473084515846317852972660937180794762042828301826998730948563761731875043233236923628254495071677884433386386982794611202928306817424744266610787779762971173653379370231230800734592771071021857158392203245708337982326439023465674134001069381552543293114820131538561814313035945762979355444538177163966451707362075824231041093737953010463704498702214367041227145543703117853842671025797497540385837188647850176848754740646062414349085746242354986733851510345204732740640592606740985103850376879333375957369172710074100639145159899276492635335209748115464804903281218470398605735840855079489108535602598274785073449941032379403232138867113869104624731733012044793483393110467096784075173741399075087972253971055648244742403111768076216380113123099396950297719895595028385935787686271420064246431617636003640713932061917254870637734039605368755268229651678983314550439012083671253380606782841207969895853085512340505030981976269043233378999278062861524875844104528724981176948601981792787993972063868524156603018002246651523713091516373320562470039929149188776794487246076714743903999643030291539761819495968453746532727498832081826668814272220879549025263426190274525239785278849391475898116766702980497010806994960674969697195984905298871279613719200551764595594381480432498722434370643696119170980076687967293058079035843594144171420144709571599324374445315910976008571404993407278932359228912026366563479038037213104412779942775019567796631617857347367506499954629517503841754007397734717144895062716691978993254526838830888197179496380243970425642540185584056907924150949391480279327549062490131883836069081533113818724148485569277183957308418059091656813068341499502649012016465196188248992635376887641215536154694530299088179684151844112984631464183150614788230956818461010894527961792865272913893487171089613151586070430581209011637437590498756714692618342827649909134931242783367347196920157164203079954073884082236822382564773438908468787164067765176850233688091724187885169816496447983968319465496900890705620798560797273370795938355602674509596844384552509289326268195681134052619931571712225252185984206224531002594414927820653317257628694593180880482766631109326243130866860998024794955820696516157594924187375454606522621953024718932591136370343582940085466414674135966667598965768194536535038476657801822015215371572403212286678473823393837070486239512307606935035072282801996499873227374547238771042251855992233534283151177429495896563430878785011885245413546907552593449351504772708152956816012492109542232658441539815881118662328341302658262099235260770853805720288268074123994355588484098134816979086760872485229034989806445000641366951537998114347158001019839641898606742389804975300361920873861563599452554055328339169058677897408548857156500974364555029746420449729383913508999816721677979541432602712220262631655978536930650949893386165064242366228793674257846298881235592047391502633078849919833311567551298982094979518917167916669822206812197709334702725748578390476914944263972160976666056834735198905320210609237808637513103928336581017636012458037478587513344788528290620652471698779006854648401427636085053565131599237549070997606007589869286726289157809632650500679036855456972818075548631807912727272473141014205638686478253211166325432275282197304458696928173697155141936658961563537696999059183163965041114905725564149958430068971556437170332824557329024499248178897016509116932562109623518022407255466520091517626691173263615862356273436986050153655560982003539988625470986913341479494221022527532809588351363245840223166480244424892472484576987386170727995470911506768756480005608309620302094036050601254376804924305535699632146426032715666669541382436788705924259767725225331319653047973511610805865615014539145502290945635637525632863188882286259997154704226117436454249510124572979610462494486870803653804288598556043736118219052832822349852108535597307188000010220196823362213271446213946593948281136038596143839751530218157248318382651514200398907118823080315075928616128319666038718417091638396997807862512377093228907974554189427473150578385596293202140286860524884734488449717627606306074508822230365597510595772614874338639105594730639556697503527972859299333914286530906081128794673491158286306863334781409263850119902269081268203863748219430173857209156141087562427725567098802563184349860551656392142295073500292114048487950480166408646375111304813182059505406158649754630983665308674207717345373107134247996818683381674879431671527605601186712973456585719095201603310474672539758242185671394284439669769161191391159613375716588253635570561315740863395873011825289585887217192569968809102289430709154343312392432938931085163996655476519010316737422084456678520887825965978452447791165365368552826658026417663948132080800967975518276342912467558705037739013378354839881283953733728778429904123980116074045598234120250533783669856605450794465630273570655139261045480238392409483730275736255780493258459033691705953591222996743385514252823870384739673588915007447826124482180500563032764325186187564505717198573963255545599547041888928679042388316302921574692228649816091605023010892224296924035018955332593252973927328612047191799649360274700321786532225488233978998104748758863611117780176080057786785117927761534033142707818530196373558216605717835100786329397726340094613023795372327930732170726824671053127420704377468781354875588573286975471363612262888566015478761757622808513419966369300712450069748737689480870567101181732196381113780750222146247298392626039773532038917594354060629141975748821455307698154168313637938779263768176597653976830487436063456271137353694407272711836101978030117049428544807077888822945065508827725611066874074226544434951626681372989140956021691272708799979104405146496793047799637826724371930332201479952059425671909885759183848265873984919372639837965154004390859119107749227243869298185681381117991959937454624784232081487899830463811786099376305958492206338485336167280975838992734505345283482880778681354802321186072491833296367871368687678087571999660532288628016390233968089848289284540121715859982045055536275362169511364240455128636261492221832801561889642604769577606550770776581775292099276443393358494376622838863140502137795275103347335000547425679516554673526254111033814287453377802713961506867086228803923623425707649898581002900569687585744297886870185629830770527637414912383489305327436278173175974001129021135231425334111826641925079009239507527835867667098245855993162792114252678376732581685398691826986997185860183280842699879617835636536935731801620232426305784566062245931278192562295446348570805834517242769707438778360472626208738433641475218673732345672936182629390369860769851393568610001600786088233613153621247170395755863827814593276308164680148018393310300408920434483999382370455076591022237384686783143924973633393386438940024799644743272430831035850337250069876367296530775555242045593578476944287900796628660679454106873670253989024494335280845206676481135926934402830083951501367363334935019455485389507421138300284596821584410921937878530469847574874381226389217936703310565209848320478482042413697837568986727412430733858116590676720132640185574528241983660446873290456355312505675007561840899527403951049781527128850384821425470657420735341358247695558837680305051060476644112346004863844071506737744894107138079876969499790863641359949850843876880701259694848679218596087150126306256098216828599023833248776082491330269743217065475210871389505064335977632641613152392739437782284886067834791866658661710723023993054003160233014871854222690419083156695448820506639938175784723993976910095348249639478482167162457874490720352667409307730870198298904006494813690967613082042155574821020697284121585320183536598563690511639323095525325720387876912474557679053549071249498866250230558266864933514137130273049598762723141195425303114581179341086767098217036373913338679136854945455498503834228216519052610451931655554683768836848203178069853715404413703690555563418749293516117210200245606112701590861017056540345333313870835072404767335356150175073217564744210939236658357312822999366775933957878276918595549630986831242684148405665010700191070305767692947934709936898546067458939814664133632263355455639526250607869306378351620907231818526387837941194732515659731600560913372493465271571149077074089721848616700228058944507167480740708898189674483987772651209178574277755610662647734155557816414431955776331729146271410844591468481374994869367548908359213525629565470343445914910455210353271040727775091735877115483331182573821028135632607807261487801969038705286707066534144818471020713865055230916710072443219878024850165643159064071935005916657433268006257382376074537331779836655432315791046349220814187758384419284811413618680268722626415398356978154319060244583120331184267707026897213539869193558010407779689905028420235024895098170858418748906293214651279665239387522039421044763953193744537640760712059280288881843818735649716642711722873200248346822090091336557085294878000855729132995436934933791780964651449044792003926394025958714927993136424858495505699035880790239465686888475837465487961285241205120531733771974854958183218600606646213152870558351791062844423081903980352462968540598653105073430311022284232934252623678304461669255439376453423855696339431105366672134075012713455374669260020807298490754522326022237648332535975591550515478205129230539360656921562949772240920841622624556983775339969015390879098799422316813405184581074768542691908848475581701362027446475863987210365300248530098583121397149267595437271263866602136279992153483013549329039839012431209623172374630151047972536393895657779065566800330009670021177696114049283145077061595743568800957985880360962736270148596507006079207573361429972908848024519760319224274420474597856179001113182556866832166799438701672930752044989535496763479063759113786912006448065710704830211776674741163970736558667568757468940345503950045524848561609675553600794316647022981602597904773959274837647396425440703852267715669910472343376486687455081982072115644646091043293121304711469892457725411953949443525970924829421821302423582215475796654904166275571824347434360619960452038081180513613172103418514027216597326426728551287705129352548399981089909088712896249626528540313762154837438116375829074546529374662136200362843444568084941732040494049908796641414546858973376824193564032736880301274959670155212029191155384939039990489489865021277548522596935866864756371649021710484266589423952047641692106235691896664823841982566984559294122754308411965357383262789389153223196232134283326008352117982299070633698013506064693684930595055079941055605340396527635192551489067861691267226888167508201265361550974951018814801934247618181018129615020221180006302574028856628373139717446636164913213839487350031754068054217375593245654452224441565133450493103341439862981299991090040509574650910983582061940648563604881300314135959884002177834045331052609610405864334707925812738743704270396110326302904104669512068446789684579043159722159632308799482519036804581176985146511578306210951039393742683199352659564754063500943708117601807314735682496905948656504704383734223365253704190996061647186632634161509059020886915650297979869195863633825765950282080112481585500957397813215820470420484842746060024772869174161176314145436457446539112227113296127657288651285552405861826192149245204508654446860483387386623889984871700173476593914666980615947910150280766358955431905848426519846969348471862968848626107452142267767002901958232181132391944770767249235380616724233706401112170172442816555034019406145951378120967020541590946478518511096376285945504551773087278793529507611504453416696667644854405633728495433590227188122419245309262404716554097375673177996726071040014295649732528153271765141889504689421684813010898239758083307264494525186872015073385686593238906213940388077831760210818360961413998423168550997296691060954449990682448141727326867354259008604624711512304451606933201065549511175039971365082558488341422925870962938465286790673186514754865955687504816817769482823538087498230517311476501160105507925511967462929142051054726950790438407426536769147667460457874593866443065202560303107166248440928486422069146565817898775532836779404773553484619917079995999532759960980867021405422805490834849907727060263527921942601627446859687905424369565233096512200151030304428840832081623436991756711569518438299470457987852698087168924409236285398268865448476304350569471211443728685360109699065953584100674566872338979100355207716290555084473445977488601992850589200675977064116737696551075312715997390343838906404790411393329062469592009651458410905548769118418854492383426319783169394154422939308153633825688470306043162664259567930423247341598246982773145145049121962602481313182591067966603235465619306430084603875519263277662737657995129000036873230591545341334833849365541313174151745226134874007602714353680303404016225502059870682316755652893173149305481156365402554858431655155722075980000045776050623528723145098927228460756026907765876187709478436573950412021993125662271610296393314880725308365735709681973881378402911395976340572727068054835522741814891144079054220521799000473575442647411163134113442065510146237774582912022707958609233449754032477079793594132111011827434300944511678405266307799638958411992010630843427915250026244932568906785855928320415375863939229849265800240911800642356636693186926919608836890314071560334152848687186308973743827017433468627979436092040434677266892629004576620083706588453976477601185147548196968049535671114478909683057326034249595891783144546367410329596856774034808506545662093633255799325577351201152948454297094402018085878891918208905960250380816283321999812563622920928072292161269075080642236824498480569480606154955515064007841221623376700805847939351545610636455709341872470842059483488713862225440256694618653127450867287962248490985654818880685818198296358847994689895693006912071913782234520140006155848961197315879564687866034471631690629879861709672480968100086813377069991560418324700577206338101030105125435403635002720297141214083718421559178292252272957658966013474302526095704501582429289646509332810389845467954082933148979054138338825870818356164559862997479441471730254217865383650926690254537079718867612087546743231664006461320284413341082810784069511561848479266528145237861313366790268676647906609318340865165564024689703150696809533971148457279967193122255676037355696443623578464137606976849142313665742720358462027255509506702959104182176813913712588067824416133494577970618080172882162541763498980427137655142172175416629155661735624385821940482929383384536013288894461279428213773666405625275688161191415215057659563481488557969814373904695499784270298039922308625035666768624985502837917227582008134045697378175029764917150348761549984191645135922861643836252607889967668957239536695491958703691319661589948222051627115127425797424078317979991723635565817934687233462076053851056192677739534508759453630369774340512777908085402973435447115273362947032663947719289391336367234460707661446033365524642340351562935990517837583450824491443245739774008245135052480120921364605663197189059110731656980942491618309866397759395546400098538372503631206794204682182637622924409861669684664532231458211856416169865141735623753575434232076208077367919187236387472107056089806572800943248579609908403211359916804188256547489267343451852286915397303753880620597365602841958383843083670209784802780281034231730675022875185471557560859812727756654778973119761505971813084510522300083814011029943377687301430182853428021656604198185912864601738323993821368562605733464805473008265737587416196568998645540425899091208429203133529432192911347304980133186002354745661073026905296891479954658732513006982579988721267822276736349047017557161176282769145499783867819931733107392700944955703631857729244703304184785013484497877975476149357185008162108722350039559938424629097100170529982503483935213203642346067295346973765229651606052231699213990450501497480189934516012015915882107882364075687766830828647012561783799406248777331858847516945838255661031107943605906290290519665175068170226288782953228440653397618268795674759302614689921200048561758165275987061387982538892980671723364059333409604445516367918472410352944832865115587657348561977554022741474601518674812729125074270842307954002709925345264491739473165946194962452405904731003930019705567250584670373519649429611643210721249888179725268472174976273873223443639585780680613871972288996970583350812164730193164913369780995622975946493169601646555685205164682116655462885893165630885763214440668310165645094231045690409425086113639049966193899058415299062794827794191896593553063446118335486988575020345242958135023809080838901157336731684699917854145257805255083095618353912931811968554942905983482281021831558536172786967858911974095363394824780743530458898995828233481677377045126693805356064891985688399771265331901295154710324228680031519128017604511352916069988303021978718380122279140173260182832804622144352296832166831318358775488503026267545277120110149751808339428922064425242836098330229404469089320309860895346332024469343017042931626957231272039317253418454153895220438694900255795841900122961911635212536965933787563902200736208041680699742765442082079643650051405454183368248204492638995805711671340790873235285245706179432217519492112810803976286884430519252925218803635704155620432441279872793626200111908657679056711472604016973129107129802654382825022765214216081580272821130253264322253514058555863380730210534208229187877200453340238367497285360188383292473995237706789421067148051131798483509110039048039603927344673779339103684704266512268977787402786778445468378726453448237347465802048959517970958528485379687955474233213508008376952070598415205569193416784570002100636308325348960623142059343211803213935706702143036700684711765857372025909933798722842648242796258144193918050975713351142481347780372453436962151484213089941895878798272872314547280357596854382408914053439241705185777149750053440446414781955547170088886665079698456318679625847698590382357532990761668393784465622128316224052904912276285693004512329536140209940153610467322537287988619821964334026147123682940701905784107929891000492990740654894894314689031888241917949300360166331725711308796608551122410894443670246494032248468623529918006195334913099816025889837016312648021628515349594138440359824188060486945234480866727487605771784918696074897818431060566168502103855969683786354596025536929364146016422527678564774295385532063964216114178969286695009157513881775974723005797276034302163710719393715994449024423870240362408218381246644540120584276910313800825803055502773272492639138350157213898842403350225671103986825514896716903585377640898143695977420676701933781449057439430290031428164339956385781314242933102021786466797396993795611869256899538010229591665782287085015825476203229093940581709655116398226227340182373304817402690654409198123457643052272875590930144726045874509091460672270583653476647594817918435525105355626716895450229364385782510317969953815620633802251495230434249858383870328456357346642090827796793717521754397013638938963766412911413409489021035507514859174103257499804154968629389776246159344137330920347309137964822331685749176960515662521398752609141151501386516554727673464061791481743410074663552630281686375322366942883323915333082222043018755180649242206273238899905150627211869448509219708342899019387575623800029367453743159256723559375893287376267546243625229416884423551244231882701472101795033564554695277855603575890172287253922293304250263435506725825203512797137131562764729825104383855762175781246399412057062219346520508227538768804367328318197822017332758636221063396272741741065069175505444979726541865262988916313421671590774727374772164880883796026155488887798568510800176819045221573609376521223905093934331826510073693874479808564543301947708227072454775432841409850599531150851536762237287598319575515993490301760075032546428316246803939297885415306480556880585392185868630958125953102603353402825822137665500406132325397413086731603554128231504417434635045067293385675544567246262407418508904505655987278103757524717477719922485207703170255807329127542004901092661948035590177428773936177927863585666964316704750576958745796109092904085891941886602033161172092565743697301060912120289276800760869793100556614988523108227814264140846200494797254253585342528069242774122268165981089422948768453355990935726853099965823425340308066350539072261579547304968525660632754106636586935363810085304904306599351353073884990163549836722710837391961705733310554150811362362691338166826098807013990783797542339128988811029555449412831708656287930102366305978297338288645452061492208844735528391460247927197380583246414132894049003011215717099717432610673249639953561758943950484215635780135460435808752530001670681900662814160358918397346767045350673621347853610588904608119080467225906448661850378587482973689184874132985369903218233402055479117892965270695684288850713402245067318524386466534799461168555596232975394469743289356129846457458979794135975491477101741410106880681887635621392117114546663960060082727328803539019202577159105614231606969281093398353408525274956350824385137907961788146708153339657573798265992164798365488872696631735272948670960048473172304571085101641551683312059620156566442192414006306987544509762057727848369113874554567205952604877243327597569192171051802099844493715437126242449062409651919110801587840565948477529123989436206684640156130673591494708107092405671234524202184261608609626763934817721208670084884901938947840336388261317882857490763641679086079443177259575106076331879785669601728526754847614277257545112067844306795866202670325884933942819744559612586452244787760192039593029875758057782792415735514201748755984060453844518305343227039138159514965418527529962455430472829381543201561953743140071741360176904267501066194931963589138912325253989540987302117410524347677782955303706049734517485490886618138779732887450440629901397370394680677259855746701473054896016852696725714080305859281235416913604608011651704471674564475253175407754358209418641414181752789813099747990314478363037065668532541571128983245856165888290443987191874423865385244115831927151335717989568661441670208123177162009629769539254792605784602627862609772606658637427696389697832463761681085301897035214391167392138403636288987984972059433454306973879269166626205804592156857964262677071454424570998039790111592668159576225967344020721090746125334876407286005134169366565938788843808081236259532342140423771524116963265386769801326670053042632005602233684621419528214529310901423318637907886049511177400638872524522872258471648755095183126143137931223728095267386111058090236486193885101846409459108112101350596736526252350055630113944675823646940784163466778999661437640071412042818038056442939336569311352400409623725548788906142516197552658283342893859135581101846734604351368503941098300946576972315222010807468548470742477607521232360188947854554128948737426382048919923899869512045213757648318103715388963870726829251961110680178067869479232624266629806125499821768131916623767598435839292859401568096203411561407325690941319164679253158509833450334165550495632376946906286247161384158145957227057125268372836662305889425818682609841351397910622416914117762295146575318279804270868557250199782082086671919312214498927094212442365786699743195947798392955904734155996326455164030857349725890585214700107740363744178925198246805218595027786564569583545246339398446958555593757522719251189941492425586128510857318597371995596457973367396008154593483904995338440089525898092820134216822438160068063805845573737209602167437760441908392802307074428152623633415981215850359805923054119787092674530432623428987202699297957837832047614851970054182167467640315057575251468989370182674102030378157083094086970683125148955531304279349363498510238929600549052523826424428395007506164314759258410275636812085880217171321281397645647916432963802847819123868969738035204116109330529440413304232035571193262157386022767691827785959065044283503720868688095009751327548798892298805044211012139326045328217507047884666992243024919641768615592339326417885209387166664940788279999340961878083565337821567778164408626939109042688680711345060890953194554529150131564828203232809630765472715952652008095616268512249133495483342716489678332330852750611190840446501686408049056473261933635924970911509789492718955737586518516749478190987241325484624999060473481814185067922295493544820696642186889893014576797573583699787977354334196133125828562209474630682471390377353303323518359956241601041420440529269459730240645671859994070353374153748821648316796649096100088745099227832529834629594119589884111754570642173245971644257888798722147704020661241134879381403386978963626098705873342521123442832301739045921486888435040951479351036485088764207240310744104038565805834602409764546959554357552913158471114629951169228637593815138338795229594986595318901678313344869309922622093128010337621153093960332072437383054699113016323233507918641358392099805236029283032324014919926288697570506417584384860548823731154470595528670559652805058614234704753477547133666746494211415956995896494591067493224319960526805540878185371306410234819768129632679566639746116411752178949953571875165527089752127003589608738528888008257146702632175079121033684858226752778946197325105370136359888249292187462077783712783858460971382818696827188445106990588562820891836950797167117110473299507870065222749243885324683459234265115488628176435389215594095606694157537079998073038954509246944233471529636863639598142761900199808312129591327061792123606983339495277480642895898972501967830414473145342004488449462261831790914741665399010161323316902888087156259704859445690475092795158225753955799974141565215858801220941163559639998954831861701579383490236437853828264631363360177327452050009049154039423744728094036354580871257185034266611849225723940676600061800424676019453864389531014232380535996467667327112239440184501451927248922726725021183139409786985416050371720275125279791550635442329504812215929445398982669901993140671172550092982110185015494987451702273353371133814278055204263804351291548598627093102825888587591602319636673034157960022171128762958542656206246786223897898103884694395779047052112550859182986773152385368930273277431358229652647798858716961315985807731986089948568645130829122389793850532669321814000202828257613942595884516759424044106259240603499702522224948921374298725881591496704375970343823797682376643361648070450227483194874369483671530281381547478248851093460539907510287799217876356681739146769568700594952799406688312980036666416220778326770630768003655496775860392599230596623415111969363463800876261900024956667395111920357315093584177881945963236426424594043438818152667872437432456068900365665221234361924635688931060988484785934506318648458149991504770465941554705342578660684433003859134829900691620663731515337718281386383434212024868900456605325835038717975393571895140867389817664909244926409784450807301071477559368334995928827391302896174654320205823253572178428466173542729931552028613763142711785344603192152438971405091810043750772749864665287640399455564466982122223228150034031086590250929476874931042397413213435844434192803038949581550802567276837185393340239540073965796394188611665085731987154330339752987331443736182319744932770330720857202362136089921303543070620523315703735456901460152109381509829768292895737876147708508363388869990706701377355994597091085948050690992860450334209818703955159305428671967076589591353881005883809739777058949490943969811010646095197261952891126584500475234339633398177641142954802504261971172845455631170617677063063320428961655579628355869372374130395224041908926879372176382425333184696453782228392936406904283237615371503526438250763474271244489141956369909917758677929513199915135621617407525294725563504132484615656952726061808696824353370773919466966366718472737992144492123905987210825599669567465306378287451535857118875659761926506437646739623916399734521643329251544586230435505032468220460289944422988630410998214619275056323414408699764448523093491015943904810937995812442303343684956689469918737528721211711690898748918516102489841055748522145780768457698519639395639045258588755115898812229422060681284954817410122008851730458963174102686137984280707350031640136699141258295864621129224520610897685648407449749631721728317542133881947131738951589049943103530867689885186345980042026250133913508082237968223613463628760005839064531640240314236842694118459183713511957745863545812279920869082589546167262426742608540925976386117513579272796120004512993589563256783260556083784952675776973234995124197091099579199385502813647866027136628639756957326851241920933083026691107442947768838367635031124956166154154628961736019884022920442720389958152214570439846085071269256845448563464996813717362545606427913524087086630763687607683031825788673352614808367776151546313710415367241291277217627043477959437395298530087657381165553801926613659039529985470528304505702818775295678149345564135025864160647563353464056916138331264964087270355571564334134619974194272561496605641654195390773966366962000153832722328815893574936757160949857318017896501083997306121616252551139893586568082630874082854341252814372128108807543392843584623453401924069251554063693086633292692963189560873522312839110038927490029173405316262743832801037215939160779339663120937710940578874975744245761359779969729049895761703753899389456197979466825157912882273588932610140324828732850603337143054286240968576983281802267197618591118278969684802855867346033358703177741438821593266170697809231348983286901446255233068932981299277512007111377651164442268826079628358543523553029489564409691705099393820253475419554280715029461144097609253438784415042473255784418851597548311057410775036826059466938132531759151427660647892256839265367355006414173113431067596304397160233374943257391555008678747522464276604681049445760813024713643506794808468401847302644709994596721022912269572965829448586888433990800634172796715656124720806782473443185564617691259735800773172812774189704356600537932440996557928574631331536558461920783238767745991991092213674041856742963512219820194853646627083589218384148064083700953004183382152172000749126762236464806946728345362894104425890964943557374348390135655504354616316781969071371535385790453549597668337546773648843750257192410236934703051682202996771775889456532114241540636694102206310677589457727664724429377854387912558355706449896661068470521665768751527177933467201342311400348556238834282525067804632699285021568239046413026945928903356250451217080041123076766576080327627523008772368049878382433162888290389500505177997036422326917057422189834999648058836158527569226897048890866374144560207207878983815245856960980565446813152955318502338539492375312160594866476913356505120387855480439558705714912740442689235328945605450299751458375417022105335543181538818182922817051132831921030485223895980023948878556753061361436555639885967919368157932427112168499480253189524297119792557498792715003018177810213496280632241068859523587645450393843971839634416824141864457961268439467942434057430463615186216495142357064515961988526254230135045059417562174414596994487729425868007143591730393921625701588365763908029620139071667865193748891038796730203192787907345131010870600836178649490433632674668422133169502039017606905500161510453853185757809308739291214082730830589681625162707996724318125353205089913637514539324347403076615589594577248329775645683951652580953019885989055070587507024509758713346189377148030829848414671515648996503783728924055976564385715594744602590399422918224062059567713093629280237715654208983683571931694829165248990322949964570720539834722487107820277030897280307484308394922815975430005640571992067683531749477285595004585436959677680788917269173420157661359223877527400238700406792169022237134140388915167690940241998974109434475652339050800004161434554689750499528613338640736923678525250861977712736176193180697273562332891306633451029864829339974587858728322089966863522844915220931676380257308812779345254093558409369016537405273189196366350273529441047548777824259184099948850995329991467005176900098544227555767714662556718941559065344809055519097231444860140025751497768979326712879874605533769278865430243348911045125156006943117105990504642826095642532868564933682564339885272420571539589098164122662802430428397832137834194211148949533117657628413319538631803110565795262236315998163526387613619111373370641958540379265948392844636365084750009215481025047170497453851036435805212041162647241405683580808030293611657431023422227251005615397753829320234591471641333032193460716078611182952487251619320413076681061437314647252525076536478348902333633829639933475158847030534197939844714717967876212844469038154113177274721802496409842635062115812494074854567919930425138713736430419981272498108935776401733580728205092636887501676362736182701901444499458414828902985426860892016374765390861030605482879756569331097755681705982671677450551637429155320174649952241775244756150679916012117297117504802974276140711111741064598343057660111218366427415939961776917218667157641032409124319874766920792127670558532758385945124532312271100099955822254373893113159170170426819795213537088302462398361079367758810675970356348626846842553461752648329818085410210813415328833320004159468461836988956586060038788611861959230230834038068281427032905108522759242002571864155671725752057447653859411658133814041986240788722352228175089613126513173889885202273959652135917092556509070073192174297553041684327963180548348415677911294233302762370295749044560865872106190682263068963151165957093922030043949003640887254391642137451942762355479949883436676074226284462778370958985674481138970800873138771304401979372153568691632769027446099314931849377239021636895685171864073843803846234943480546808167869618743622429955625641774235886654798452333243381223391715268761846803913840453655502995063495630797706984694106551577433449367512708206202654493425259341253920067321851764635172630825585534211007508911038892551368057463538818522200882891458062519240517558914996214151642034727653750383935256080520507922204741837966713238748672125175592113582023139042476046884742137317108969888108681053797992324108011488187571726095413914762238255662418331633640716362110596489731382223928604606770848158214721120588174886094056392853000352217875869922367304028218946966147418149207432178603820580854904771596525592189620684348216375491652034766948436331817537260610061220903449154736878900944927856624183636428322695140281836572049457111531142127680538723848111724417924468917940687840206819931617938368842352297096554713463945806553795972775571874845515604657255344598869229669910206813195305526903462874199193263131820896869630505270765519015650262333302641968481902054144225653585435083384836119560335454483791325413478336315701815602696838656214916455497297751141780989242149797227922560621366107389875050221658531006126543327859159097030967985008227219333434939582585739962068981135082452937963830937958926338574090520061930606207783773455732270974719218676872354051961841640347717650696348719361904671683287577875820969443326503318052688301647425731919527643158666949746629612042262534446522990797723489307239884086930882889633022779008508815375172040569475813418036343025949752409150781237064999109959351416990434467113721082477680769655013355480766099831246613957978549519004015534902373966055812853650004211935858537520707877364737671909689559629337275442484133170054056971737920726368411553668195284537133504591585235841420995528737605913675829404606246639623867754906170699347179313059045312995408198004284761322390867039180483406789675109971853666112293206947569212420527636953025639519776382636074890231633882844247828943730597718398099679895708712601363979076171768744196801038905539953396269268842127572058772334413998059519527380250187438785596179677154803490667708600468351767494961694467041085105940366602598609178971884843843693651687809766876767268504165098097593094265223352539053056375431267121487439573290058659644724466403821542138963088298862725710671618538371750630529103371492654573778285093750198823091099407449613510880779200763908224986216844860422386459894669405688668511787496094160068562121697389527069373063495024124719239436092890073642957257544717328160783281161585915255777574395232614873032990361307124557989706655193557166818298074861967374690969011819217634566692108096546250506860076431225781999600811650882396908558611793836903129179788520821502104611126076701625695858550765584447630322433241759605904051616894139772883866881377586739141500489818546417390917405378255104804927031692406901448094910245438932223381951306570279828073778145249504592644621107601414265932577132802741500896132135111128331930658266251044800205526051456883826581743363729066748216660344597370263474106481544290549919717287561637211797765942934130586710309800300719411261243022807212576921437815906683395596451291555234128839451514894168894382837078211017834411967149707350596715572058337316112615231203007290999655501703803540523942380156454393411643758311950133534335171780193892687014508991014156623940683683279894335914296171540701003210328863762295439543268140170150126197873669697422508347332400837418894317206173091137854553553242393191220928143016496010973960943907677820639383781946970794318852315126552388340360597313920315619642080030954229222617081747884492721915320584250926800145532307898064264024896650540994402239204834380929905451932311943535670645746336076274937725173001787493365137186644829846224049560289531503477197644538157885508620805629347051114979376499949441338206074678349644832746957878059638805891770200782466661076746446263776257105430143215920347944589586485116184666883938848043166568711228503586116746138556971503211836832393575165801964442804902403773795615346353263122003091616306222255978042926581157806199708208354222672038386859296409358093621649221586083647811542443554900268260687771272035398768659019919762553831412590681970151292113059535918359124000440106820560529914656632906201728095654178303340759148795864848626687132237435828823754529121127395850341067898240178621472656067655696966734232140197791086149369309724722255830699817215179496043028791160929856510632160022403104959125758532159621838839178548040304788885148106755272671613666619679759334737539226613751232618922091087171208646306176567589001741029400029753348543876049349602972030847912428726432325857093489354247416053443678340745895907783194153272300176456904176052026321702769713867644336404614409239944904233855217855494165502135782147535624810692720686584444844255916071210577237497041325661703702450052006893241782901852331696384037650600430275583679966314250728778703532264002906844193641528732248118901164519462218861289314012052614086248857313555763557872251865609354174930210026060625328232843863628443799113384709455879597164128311547467019547934695998464621219765143002005311297693831787592792677076313673860872765778579805962145953317429565807150300268821249216854217179664542061062340864156831193395710109635701299064782034820448024978406468023535005298644374825828479222683171297696855890361825071329748736032505767976206308127923674286177659982937489135959500676344887946222720552349889330293213494429481054254103909444366818239083734161204960520175681915723683915323453538751508039650159351559287239478644576677257233881531469208594623630316187268191576450026791226673155717350387043878086934589549022948426481130393236750987951417421200515217322759120380669367492180759948782568755144568631188950903754957112677937672226303732358862881554186526322587395948975537933213450889202508072776963548977190758485810966549176294797480665147872643510510958270366650551703555488646256742634926258514103856065472757845390078996047412318937421564873494897914118943235514527402188452534540081933714682855764725764912691621601178397579381415354464889900075047827444274902407829406629233358580919686885371683024636139200087912425943875058811153231872047372906139591242538435378205952792615227863800926826731121287163454032782848613061958156931897962732787746187947534324644464033091372756887731316357716469545841088883805827726414371017168504480233419580204030901385507407253280178418108200285759697056637381234620863698703952802804851692310293695416669351684184747032437682569690654259969868049448121622881579814481433852197843011619853058860970057269248892664296130030929885003068072659936984735403430472742159882472226376026987269847054698840399194702354953632808656956732013482204388907470983085073051667188862487348390822245803115140395115160043706881078067537120590564311028793277378284577904725432210066815262587150684479359933645865905654918525651219952203135785700992773322569736212874457836274513952187894137036770506747678750024889155976274191570728401087459378597295268625844071508479072089757826087813519085705451586771389447430626808853469038205582853719638349900636329754532269370153747130241999494343821236617082287826850791591817462664162026552542483231839725965270287820168337176627386579161992962999841475034541795710669827264075518079811656420594634836863005731285192994614327861554149915319480131060706078124185593736318498625574756552501188704696496062184702018447083974478326902433011979133839447356408095076815548813711278157405248217039872360694379637475348193659678320959798905514578828001000371727626058960680790039129409524645773894418060133731941227530977076087036139807408422670575975867144281624142858890693274053239170411690150325888007899730330868446364998704758602564478920663066754204518027853825865505267718474578247882234702024766549379156843875642337963389913168280277295924209155626013535790133371164815807720359438351420825905835164674387221800245475338155525020654326922663837273518685664278047080133959336529251205692632218961001831994293881515012506090044612501048774591214120147209236600450312853697018670527508668944037376662858567646462143899934330894048596916100646318208119825872458749235621215007589249288779183923259876122906072651393931813371752769181734686409571054682058144246550294266480283528331100780491189346361041142127732785853242190101353743804438134492410697323626247222695358409402994144310493743539383836500588882896627104774205993816033723691789617869555347670842169807402626848948980068144447233624315948337830327900258482249794174865124831418556829119058036174842630423015312791727754619822786790428773769368049768485546354274453830413948201110310924136027456723733422876382601615649656938993162083325213581937425524854277365315118876962541008761842363593637025210788986882813546885461968736784161507850118915080625892569072375241584901769991147862357739825560808764068948140290979518992066316366894064722560007480809831538986907973471272104884064208098160681701124653069645373324011459726939533278644142750529295716420807014568994385086582007075859801814350687076010850130295457058937840033659245601584790812519327884613989950769416859864616353860524745792744400278513890155006258025058460157788460135679575787339715952967929976018829955669821912904590321033248835791783094970869991627904907164309918072145569218002031512457418140888120474746817715361308707175445489750238881103026293532650787997794643866281694369186703528245143295692776269770470230022556275192405845407519560505820115849253082218582304131217318040929153004942271101718494713741312075036278382657188810950705716079843689759814388481725006993638522241592402762706303375123487576172556702360908415921365205381900263013839693149336863816172241625264723374748813574434357004380526223041140986879041567628473202166990705558804351071202786149311564745528597771652757594483649818669172535369389297438845634944048319795596615005951750911875189136594987934954668178158990345205614311737984108980174071612859584051334870429650330077595138793372896832767036603587973234936694576455249277387510498395888095031367850243487091854809757060988507701103252457512015937933642708881121053828054777300057636689544939911952169528276297773125251104269398185483322982493581038190505368832268151380504198126042782622173494373339983390718015150022643575991877800752780853063236995346155614270508545162509529910022109580994217048876600041803989086472817908769740735941859058617934790898564731164219810011375787757310821103006575828387565944501618828151000603990528904628343845193491668156626330448581492414993111259705221892351036230858303852580236189275393269910728172339708104188844895241078965291667695718867526182657934131521336362889744425291482351525909942790615513905920969536719093277063274213930949085544102340535863044715792899381745303804620921585414334772928682518812828625272284129205785414302887183384962462822349720569467489883366742702916055566161680537359224384455341639948554289248508345873771318021500907228459726151535482486932445537145676356163411203972269285725900213949182690913637351736516297666115074750693547678136760167586761171791015588855665881765375705320977335612419494251452665017479906875248049395810556962497287346490423780825685722760094407528142147177698298845121147516622549009287060624307742306967856876446070194476304102834813526740677655925083468012776055657756085406199125012096444047996789730157097584139918264747630171030921002499278407267943089432522667818168111393980310403710951825408921465725258352222310929376614928864958068209564643316725461194658363927059971292773578351991393147398829389000991162988422656571019525760931223998786595920032646149378382636671837139562581265170207518173221605971452247284801000810880948930230456904780173914459990535927131144121408703549232925011885655836122036378787272744191812755513358375784896875336892864712016131636580591804564570650327104489420685869774898639282922317917667597963571368593613297273809808852764390616563336375375699985648938437339812399916452061769430348320563708850107759660423762587014951353932256689810345394807874977955772406305924091751926345198996227388270156178052016629604543703466246705644783444495883240913080581609766800771784340076564034440399985236512552736168763632668181703382196523485681125507546395497286227482763798429046110596788151894871118534288289918548305934712134081601399937062974221666306730663734897427747358864554098796434213484363058912710458735722922718173107958575539032596967304111223838783486108996749087288988261307682023852213943576075413397299415906428482596275690518788006796376177980400274371941864474608964747780884175733810570065568771004570574127963460038626753452757406012964482984325082204142603038580002063002074339245056328230856555315866720325784202033584471146688608371976815985914461788313054829824615235824051249822393182052639893223998041397080047290132597419788125129960530935341533638264494734981820222922258893756228874613321769700834586089213774466515623143990643241577032271303096663157305901611991637716170091209025615421720068660118050883445327591333209825042863577537112385308196658487648939192587636211323853788140567663283059078564511018161827706402126125622412625896529799840884866556234980917594146065918646671595674394855514718033491439701263099364723103879540729838500438494794455445885412357629147158975013024113207881784444042530576046702105537660259800783590133448625216173739067741992616700089086184239827052906434190822974839608931207653524704338540460210038889967263393911785823779561897902003458980202212121487510983664217473969800728484664614008602475147023863950706823910612621339523256792646296754388461714882595028889458551098558613929544168530328376062789513244483953950969263383585018839699877166140620646420284480704318277013728007808141820267528116951050287847361657038901162279268478728880335116888998594906371065131237116092478029893803910361673362272059268499554624775679875554517410567679768436848024949934782557113586074623784308530344466899153057472533508851882376735664527860732230768183826905259148540901042612851666767673453912684385521191861070028029423258230215916731362334860097676222391786820482960292778576523592343686506606716110675935282830646171055799420982316636950265319386447730856536033637776158739123974078090194750353825248460527274490994484360453587449055784317728926674636179928219900082748125662729122903697352619962018926816000906872216625068346745901592530176878334239021887886943031807268829103535694446459087145644700175718025382592688836865072642296875080677899440564179190671388469951505758541245564901771546752968670814120845320212846402571948616388328495650720438587434874279687784363039061565846461170795412317084343912594567052994416260871993692666587366753397532050299130391882777783134158683525879139826759777697260931767297782737772023454078845002154310466002986536983032677069855113697878021350945554214263168034095597527569924045184023755458903732348813436983394544296487219818182245661321809630052431143769994943487861947024874194608546805693757953415158651449838662712349221259459783742576185467815691471279301790525794236017411469668522440692462481262179738067182014615355442989329073541164869479478044620074621692203968208590614017794190792908915281333835734533864501881439791224284423552749873544770060817911535531246394954711281963126344378235586926943786703054497435698655638468079180834409872017543847863912733299785002885371012897804365988621651697746170006912701226825052402469949494728392905774413872049278215118978057212320879949132106991699832679748558530491415576253512256933340776834030077052452732800020835616429392459701043323423487229344195368396227821227406108582165878613806830112719363589663545999301232206906244112914881288320074850037623904416598944672995340759967175720667390691176587282379105058299743907496728244185139447496376770194414562152045087513549692573237560900844337989517662051780389565583124585948075285438795681274377593081919668801419969320356741837093319662048948930266697051521382219151553533124396715772062854984948971679694420157705218672050040909360265139162095151112459406407800223525592282410005396712967585565880642608076001134915345941750541007531665257380335851116683588582971188360982704405107072411155725458406095913403567471648281685340248441487329634949937995078818391179154036789752462302525944774528838405104854372147800378218149232902373074892793669832474347490102340988248755064679613038443962151133021308142226350359859105146326864084232162859649735776587346986274508280408402313363120753101556437794823560541692696350268701717599938621382080233243178481510030986878951609815726396150197557910997050790979061940418127280012311902146510446793377371863672811647176445229983443345649446213251457893656934417923360554003110723706376462260268620332099967064708843819766013988794983732429943802555932969023107749536071729501999228867946481408362121353554889305224697282590568949496532302750749994115612759589675661548302606236954195808416580796325871368199521202338988155336585564376417655025443248392456685495166932840747693302791309515037569141959704615878445064422462194969945613461478781394754184170581832657272573991636780549731180355920451993088402134987668545786872182644434750855316379598225751841228695814340316516851041553197610303561567611388834393762512119050763737204481353966439008055425758344041660857971284905571784292124162368057298792818387737295156044088404275980788578192008988788127406472994963307546489367172525185492254423414824920490542079787019097118970606230987380627910063059059602348915991103760844310106686933078428610707857913540823532299381964224515110402110313710590547664242705935215236304186969580238507187307548703759708788689683145089203291656627325849553049202213102712068900175976134469410813897912349848955322683366598336629931261908561290449408003405648097051328819061279005714873726715979786893582745787093324714754094894232020658343292731427292475555946837165297528664447897905850239291511019037568087536223718317066463412120777045174994579365562164451482132447067819130159982834946855214706108670551917408764005029561803550558927172337036698458268646495332530558714330688270035419643956277243822063718299721046393704601924833572074750769076885978705476981352759037487912441814059310507641100190151242460333766437928652012562856498693714375659201036846989842999187283896658470508927802643463416256051718291897514539463921123595864265010272697668182652457515257951465183154380668867635765053589002030893868004820370533087801067050240030813319959421722393177868280552062225843567268549644026381338714353788484482627612926310871976210625485238158587513231031625916455828757413306971096254167261188003526437149321490000719085704980249803135848375527035796170661874290711122089583021537351715267870612641141695921412001018772203733559144150977130247240192297287665927981941610463370373093488287703719862691740810316611040247200646489874475005588202097845365970156685651763078985482016431793620784091681645523591595989237265280246428547131403246329562756247005628002396419137223032809267158462832076648404602865331127042874511820403420872902382949095759595798618042978850668557345665138316348921400373051031058503461137061068360759611723445691812405817872088934938232440608584844397610184124519019600319137520283448397861535244816616378917176282310142410945448951968293357970890996244140099172268695664511995696359298748989125981400837844153006174129185230079497883591250880230676955416411677941143479386730941942069227448418480839516083369257027361822076221616527748599655027405447236410941282914739861883693927333215926281722641398167306267840997968464219823112955903453132920405125044372113758703382867112050774358164187887404174978883899445432614822868680925465032085693772646986141843451217815998171895225150812744884938474260136748060238404336812941165425181495271277196644550598328767153524184787857508975395748639699951122213010905359834624344051003892559003716393442043325605530859206123510619365731387950659206357138120800301600745806527093495585260792454033206191160883464116239448205362957257661565085257864649385366879385755168122987863556727051627683001366606629869468108666354414544430593527962962749996940861581146428314609614544763060003484994731871443273904872513411371442728111625016673158831108513295320268995820043472125956265278902929291925316014110341722680153024950507615843426026752869757905964049342780905257200387806855188471267591366424194074505832188350520933200079262775199243924031482181199957748018254996212959412537138547792386297859644025625224710141753894052373822934576092606285801642621379345213074435134984199405598526478326212052382818843337242217924459319960875720437651870450653255460583482564951155245822758542383681633960920902241697095510192979731596033594590399472030362258960874343980429030596570745153478018836011626957613544743515297482793371303905877720180973075013937055560086638492144047063893794550146646062195439139991401210644760003387726728814129873368421660619066974724695623453918927485069110992361510264832193728656522402841955794756985317346805502193602354428095657778211535949903519253004387527738810493991552662393810983907882430315271126360442720031201053513863972702223037273616344826438780526131235964526197319603551527617270978508495003277455666825904620571198014768010819472474677423891384054752003494781214623891289300314309974294195257964699756121977219047733092104242618385289840937160164195812479841207119341756599669473860086963747942963334186139365834194050676540582118690190180900398250255554589925583423801492027860562581819620779479751467971259817237241812094333149525013203069976431785071887959160826001983435884114224693658244960559945476745304519104328153182129024596565926445481588503674911188670758533775599394121403719129251575742180590645455528349430249544620645626881947172889212198991437635620188261647808256619013860820899953382080695738244004197363031903450002184657439132182811691018444479763174248757289402954418209547716732570563977546748001978353064428659881051259434220551492943532281805781021385004168858190594201022219005380625307966623502750677125257093175307551648640807193225458093662441173272778148772231138731116982097362917484123746732737534073607640364188745745328151733292716250449807955831341133281785299520761426252511138499491407284268893699941606870030445591473177748853681680140002261017444319680796865022726978409397718430300473320985950342094983920492531603281962586173566899918905260162232422133833785204136794740217191873073557795597457590821846993509306043721136700379654949655307356648522844889542928449677636154231752562531926937910779872890855266468356387769056321026137764127348551324842033022791662657505832977570180223253693954034223682700820137642086605738224019417931158108543721801447797165541104111844586774092716729741940633737929388755291408953374809577263014354378213159484560260167111566942419155432074154595083857636898376518693214572050878523605841637420227950758632001849168969037561079189254881354456893644179324620258743065746186317115693072419848301536559817909861742475068406969571748292907586273832232668335352732336571927665244524440205795608134157263274292897132223278036181786405975716360542376910542079744250521102847593321300345854955228292193473843289941209225769262368263821915576576320951035753522704498771586227539886691153250797460247726669331636387840335365913573559273803469376981030359958204110807380786375083417954572930942301841406247520859371665686186443145712242041163919485986641792112843893634184246275765609223983687677861593267717338996077328418299432957097726024598126733032385655629166230351954196205306000277743702502938119847357233873823613190040429155596570394208539087075213805498225215435391642394663597415799240982304760515552279535293282696478105999158892027022051594777907976817170408726708654383222227830027142639760025670851988000038931401169364577010088355595181455578850378332172077747727424560765470319726366824293256584787624443191268777773208563071398396086698385087976863421279592548182685601531294112560481453893502351046620528889751165962028233839546007277011562488616181109078643500633971209430751671501686760197803636314743513827221250001982596227845447589085736075116312776674991999482742765931648186397717410897098529808840106790503454117023724406435699869575197777484955282872964451908473205310939783464178885605349824306125690933805207362630177043244588605937544800571966436039601829586312762357120739151681753150434655329450259715530720477774017879503743846793572647215515346105977139600303984239107529441249120841655837677438624782234867110280239283495621628420585178460454469246170735559422965891170084740338827692433359810915524324987772732339647360959295771227860568574710628149851524949585772274536609511066069342444826410548092605347105033568676306692232139451859420373874830906908473780159358368387645539872307720199880247700384440139678982649420976059893946421463595318522063282703709573103821610145572601552811088027308912672026683144185968788348960995673438871896092839911842401951237617388722258275590835898692167873956274887284529568599886531576114252402058648537104442782696867446107949353183993207660191561442436662635297885378101645300010316274651081494317404500156881660411858884042510692154913241126690925251066854318795956694499213288231969904861609649199593218601171850559344721247051191205356221040539417201506565425889050888490505573347748839483912901402564180454955205128310428580687312753336720549390111792056755420746433312152779276542293558581075380251832952074473708911128075599861343205671543825448976661717607221195979284772784459034355391310992742711877884108110641449870300503411847504529521895532123806999102790502959823326060375436256240808312908836047731002018418503684049806741910899851529803474426786745459635360880146201731668129627572658779563044827468573218510108521884856873325476508275820074209204282013303447201984106080551329944519162559356346489946659456959897409486547179797232552379795583310451642555491283525754902272267301505837452452951082029107347533546086022845734612850812142172340402441812397946225617728189592146184649483619823169498268773935337251755107546379163280108787130631053664655064004569772982803494123350132048803700564328162532219408126031221747748084812355405794940162967152568847371878633625259893855063698446450119958814397305100395635574414970764755970324666650973206302040055386988020977403147103668719759128109387905964475263261062689708382384980185328497719529601840101166608349010694986795464662371980116615971243786676992354480202680285373113116046843660279137892743798433584741473612122429828038561009444057283144145038037616327130614251970685093837562363099850667540001106262346449791130877848265532802989162388548679310898128478445656305976178132783581680229957830490582453876709631984328085368403530236356429290168570093810035675517994449500537753284094395941185697165223247966247961970926133325435620402762250614895803665846168580800257598267474646939804259274275979301467628173709662247228178520347212628459351915469522092048047352595047696641919330103178180748232200000994809956545730405188395321307715088946153603127339311053689816865452974818176709663188822635635782760931273867481455214603475967631814451109198828521348688642489505222610228490654408333401831358016956391246910102274194666032000978979897493655087159037856928667345265276834892539238112666323621599249708659287060579709086698078200389268817939491450531895432780015837835183706106360462118423438743959311368872047236405505485162506125585293688517232636916744541537245547223021992022262932122695202845941843166846883822504564495320757985655157143482723334185192242201821613076428270102676005036438170270045366940636818006495055860235593478291968733376938979794682999052302145809857756323035154738928751398402276019619507840463296077187926455125976906209227725008993800789990077134203234756374977428780421923253582264891993275411322903962803771962462519320435819138808726900119263824331107211188538117273027301100500974589001183850510160812679465422050197807377792167022575321344847283109856146339866574493369285106882508834090363930732813551154776114531432107895438944330173184198066373988838041909141657655195940597451003379141697623158659115687118365192421441186414453405537395787429185112875943493181937409260057237907312809326587998394722893360528556518751274865593298337844462757408829137330234036188810774438312822537643516938697632051670978407583457568151881654089305531053641444955376111427552845953517596552684013711291860199456359911151835242161512295304829028278683419857239107120123363095019537064430950509915099300490891237481014156518215967483510701146625757386659502281021524235914200684442625346541680497210138745264353871422583750291019382060161224106880824700648150875599688503068700557234174490384286006353378036289159725006797129538204839499917277501136451358582131940343748551346944873253902153673730955417997845391901593918981427243034429867134726656817714023533724631411163139088035943673243805716979514834656964356913346678174236597504634639682183066706389391917358477860550180551891086620966199256234964726324812399961370831947115855610838879794697825340488436856699616757220746203639773196844837188014620326887670333784845516145638906697354168984838134649544230954491213817348089216063131632076458444602753463887115156352966726055640427237621451372745192367854431069126134620071969500250044609298476906301083915862519464622684843854688822961081396364840299882143822479631099193427434120880566339544752289329448590985712020827097892866385830242060872508207565348626002381231733062803969077741476056857066533733336543289749984934153693396073077109648115129273815532922396910995581698483798364536774771227725631297653445119522948517601976704320133222340709133198078252487533524718217310179028631382966907406145206205732075170395847079824781948536277777184144623942666146734338321376385332836453366708776988612878391239067357531884133468995382375923092081165784731238588735105858564504533174462517356953865169606249130800359597883215005962634575798247590752927536084429568352532350475422311364049702238299649147302183198514792345737389625830510524664088552132935209717538700161314150865785317070415860394874399396885236688720755226571418395093317993931824847161020758701796044657262403227184491920571722740258708183229013951709746532982970459531716692280994025105506480391978240304853447767680579131770436171602720465331321974051917978553561119881706771985824998607978066492134161585988255438869317638975912970821443582119105259887795202285906651487968628253645565582158847061473160661796652209482806154916360183261149274953954770218497408354159395745765579730356855143024580316969029712229269599765786000022513252920153419625415314096877928212923835083858207147867922397434066619402710357819874502218635277201982877990026663283672752695704332001860134350918963975629290902812299892173247968046881719822846746828027032860217453758784384283812027442238540742050038116126593621309697410213622761307532427168711317271560628726502289113564439347959358960974857135140974698984072026821765384748556682205978219082190526971163494979671394453414466025156227371159927914349924096606534803288544504645478254134643394773810621701602362089953591659271982421296075865033284184435565658379161796013007917572101406274166615093524744874784082701345686391218339935407662211888645871128946823096104468919937319887431852550734679274713880188103310748857424985666110443487585624895736702852513198252458067746626045200265995410555206532854330321855993859600501010573788563518708367484007969240193867401202553726268442049462604388366963124944768236823438160294588496486593460031826577616338888322929058957571054773489168259253553671913357144493263777516531187612217141913201045658025918217059009631618659018167027310902879754323900711145407245387905796001955778709427866937149143286183887496290811721297490660834836274651661737525317763041849538297801058932382638151944873157680753092406149638375781157262315478640122605809617688160009914289230337771691013645331352742241211047205764133908149874982072507518751391964870432614452397141862468150161822024034302318325105882472709835110708885174379304534281908449180717441680464862185384644272809192919079260722389202450346809517446079911993866340051885155028900378462591735451063615800776299879263127211565212996904031583202933408062875923799666754772009577521763709593931619194883563312074162402409914377967378536096788192901392918360349483366247464527787588348987859340033005448471314011706038993497318284565751315661271440446496768784127126859268979086789254370643847266615825755344614633358110595403633877161693019188547056157625840547621580402474589176641665992935260174466397201328769947766523807537736674632692939618477146941247894793097211231329189527448705605989225196012989814227392669260943604986295067707137357510079634370152289219598251132004566053417378223452843073962624973361687729205310821462754015285805731240936418721020346196422630354347376012533072422696914664990798811955738226503147960544443559315291214387088305885751262556925465241685052222964387010996465777995611206453300835188990871305249846568314494878496701062928021418596212756136957660517624353578986374698175143366484104263614189544603500891840712244529573344261728367441895520817439688389506282703296918239954724890365793550936927885474979720796528525424904049441861430373009979544616464076289109931401152872969532925834305481302987468730685925861208797335473872975045081337149674454714229348036135387830608875619852583209196432917520776118194337026933796280158385824548984450162298746227440147689272371516977991756556909526720746090959296362192165517016841775187976682062882057406092092652509406311101377562119599672864200672238331073784786068673379559861430794679322848230651526933093125103152508923330532692786623492451424889775558763196395101959329985469655123478754542265652019515724347683615367809638687843584293815681310573016528437850053918617716688540284419775109453646393067039550066885749943701817898876588065548396809541160118917615488786798562570519352146221435697439935961245974396145846786244767489204811491449934630338178174286199614961139603984244559882577893676884034568903372521800657304406215241362890261668878419024462192023125430282254453724992357011371603228963752957775499436420477321587185017012948542367044362759367900795649420074204242816950630159674221718317340767969682826393402451196880664909657284107027138125581331377584194386641937703663823539596244092648438156530269043243174316984836946533811760174321074661385639488073627368494109022476015760425934380416033408615730499461110734436210129929266620966410127226775881814164815217810957973587931451902553478697122891135025020709933239934661472436653031679311486724394204883886294308273928488508244333266846016820589064295918444384938923145395660565626973821317580307016585736752340372518697761265439431278266973271223873706244568324846357384508871665413930324400483586365594583499827822260334890009355670980960669865740691520631670116801992331906179293007445205615444406917660807398880701811915165961863114018558099185522751551914991366647366213488267539217475250530247192163245803282712966539935390259675519801446598763978957809014945655625963077935347565512764565087779393760475309300077254022398839652693239438953635098409043110201268994351950874100587007012993255422077481074482275586263369158377202146200993238648573575560994286125838557967508591821055990542489165134037933291383761933344261187991123410135198527305939349454780384383155598456964328952870023099393185638288287183978297755982074950219778019388050790876516617479072516442162778027071874762211817149617117793850312134100619498498425568441446460145080618079367645984392487169737392617972544144662166768677994321878701432231607421854321067602575073206127121304871586567296417646733183123046934990601899191151047898076761120560077279123040665225961602180226242698237505894684506910641504733266782874371772983392796126921466758355945416534115136944923878306963274205294019820925590661042901154727873119244377354982661627730377896473427983897466750068799489258632564087866245073938845136562690260238411232514414628558249755817239437395695308913339630345028579689273426791454039781235398537015466946569275416865370642483037869916525717246141493664120026128375890811323883611044040016896322203641196325895228270685388551503078044262398597869676284868663879944405598806722632649304025143863497724258026854787240649265494706786377501928437729761612262048352305829212619876121574854678071211800746593712491056368689940470816350252086502562645838417139172913051890865285354582060348238207144712091462875605305336456423130932006901351290224580112073545981005357596889041807809347051639082558481508949129975347678507930726622293254485657251489005064209383411713400498976559505781008736868337785201096969726659685125026870179650927029281936196738972441454920789444034294677736552562095006464672892165292038144609704333405176361556641658171920722168691797683469190243095817864212932044433813862772797965958187223629888146194125101998618988959504076120679471324132241140832492964363096301208638360372568557857302531629116755158577922654150229170802717802601874520755348620479470217537421659370772330145259877210185782859390906295189899182708177462400901973555907282232834224212672480758274099542864170293334337932685380777392507509040224360579341472706531732370713919414251917251097128183445379028325408318591622941997374243801074372821222580994350916792020818895401138323055386656737599644105858449060276670699291523919960177702062780410284391101334353038709102716676351302117494788055081027356412043259398721998804203565409597430759725990509015953792419497610048693032270012982418674708154266998790633728766799018056002300902452076589545333907116173031929595881584994596741778445874125671341809840806921350535508298684728795484506181024936726949817496475894649766013388901883543787748815123665280071141129697015364420887490969189532850033019990999990123521857392691369139949152440925187738456941198835954974341196807742743124206184951703579646913694532526798106066026042855585983584917001445240485042910759299460086339357880462586873988877960376831482494729831395062151150556002950284829388465714012268826386803789259403435903948592158450079681548541592521303386776165325523299876460837098067829928869167006164311177954488615543745633010229715874129361337533978280814772469431573810986237553093061027828615286846294221767860026219795184870742468554349325702081674765337362994418629525718471510854275090549148339168331428443358251765759084640345081913275964345937230026803057607429501446099189276658801625211908459271139565633791110986652266764185480252014839156760164703791285148620103747511196475391431485727114649337652900803596690309808909672938728978632495670952657727608816868693456917229106545484463718008000347957284396963135697147885674153998364233587888737240017277907399475095527806075245141901692475217980899119085257101885820499491028671962409287324497663985817917196638864955217576751915251409701331614849645847671573012416561928247163074213344218524347510495096567220266538943749510256451399714543972064272897865437190820268755060289609732642940475051658790148160747591830203308780904363402649714744972870262705106281282961420422112121876665401775262579325698626451555479648730044763111274518615338238375200682907364574661686959926548522687578396247589948392897045779244487134577174263762428187335336609322878068573992475492475747222547418903057488394632854950119399515664723416069815598674276616289219459822007379414137284340263887863530082362797467945805220073681634469953271473839417123471510636287248785526423062534887837785158797755904789642504484889294805455614481397281155656824201226012496657849813023210467656990368060442391721390016372582237788477384847803907465503975383377511804924323645232799921127510411664576872153181227726059183804460421254274890605872245335105281596233947188660265714107635773647000281448109095909822705753560597271431233732951262033479592958348709246247267069789348306987712774862754337515244295640215340430654616742105236300188230621557958632315470405609105820510406084305622223653586349579837396748464798003603410411707849892054570301729425286753547823826728921222418468025841060105954792898986714356753055174310201606906677040767604787089613832725941337041931136346129641753527198633734593388005119212284895840213628340847000798021088880318539577513165750496881290529049455467850891200116444891643066194072023410864851508579809290551775743614174984146500929636310283643248795330215912029040645017660877701152050490408034904395508349840403691896933993723172176761008498923997945947244108088216352018835727820116728022796038726279579195308324270700109546482425651070701323360333727473909462436834418346449749903520412754507700347034290574558100756456047559557407394567446488463863511545632792085982371515129886407180344354750573996876125309244412075497579367019944954784372340315157306204533018063707797233891818505062813065515002629304040718057735494638609444924140054332518386300987887244727937906028035142766488934383735431968939836799737175805788197118726677211919372856312223896232216944608212810375505330836474467502323852947142368663311925245682953986813494501544992949262452266696975427841483903389231555939913050058045970792602333738696769664038434593855167831041777055527251473219651907917479342429765302744739787888887166735544923650462384742895160745498013597865327504805362870501332758128594647601545811117062461718728434158889001352278905490235085965120675121707286030800129111640123008423784031376530441936973075784759416849701452198377082452440316978437028060176868483008065760869686246783148312957569277398485328989234136406901858210708644147238633188182621031336176382466560886385090859553277525619294257752297416648585907858770013029301786902275705734260940207084098041437827827930919665222871495028880434320323203127652773392545402517924663330706996853625483331968507567164562976754856175383118629468434029276795760640955218239429700962848301836728596936907664798171263544153708625099743619577059155106604779896269704365775257211336286219679886748457455421573169595313987973258421034180515335131664461635774763060300369535594018023402813532019595268432895312802921466615584641027375579798168456509031652174691002876633158559362662898186066621558588399409106770002551339411557920657593471586366636193530670187139104606451591753412142505453185234760360214546098262786131634609180654058785450600975510043511982882461176874725582155808515711691377853278260332586678864858009445891388268597873813221648191409455706509215259969580775279142914308232693764280542503567745418703173552053644836969219009247726131563902786936280749871066173041500053182549052506999380286777079686676878347704723467858883384287618963140046303077375534794390862850143895164669184627758819832857051134087836207050621275888793211389294499776171754142531725289132967078218236583801526611507785825801209090464793142325821947427637336223238832666858947256412124106346875582296003489069393027290501183993699065552716974344087079331964634932303539877430457746476621787789490425271698686199392746244951096103174189544604062521820357759722520413689900262213254784028961382246426261704018319914027864926597313609857081648443467334495335603457540829303684832906040925781229578198432378948101108153917148231503616823897945394000474529416811085401650964855049088290369605650303157614806874281101777360382034996039306958602267420366146142680881611194869202638526301070151506149290777988423140911869739485010751591999146634341410743548913080900997773344808668130766923174570382829316880288860523839979398565286899640894856142431073789509688191037424046911096444696914134641911317009765402012379864919660991440574442505227975695367070214340698330574541872497856828764144787874899246357170230275565736765180555550800747068861838256050102951835274174740251125147322367435956041098590356678074636134097243274559740145449776416930163603072613121591034163007600649910382620486486247385909167715706638054645502644273535907796793297773825436068960158772461123422668716987725854045319386690819538720610811261694072181946915669860211698199591956035007052457198980335407943318168165777748802042512967894654056841575549912882371325697149779629032510905736256599289154807109518101280905613333941244986876523943028620286568425165751129321032255920961761935982350109815254968132081624225360979289712761341637033231410075419126648899627981393727816342228022295283121975245346380527133754143440316622578280977902231024873503998643470567579408869963726661993405794503856273802972520873296770409040383123748919464834610004762275372171003668099301871591773987209968593224798640941047504231765404994989553718649364610630399260936667040328741735118048207389156867228883513456924858088746318848783224572289148818963273927955850486022877987727842677410770253704207730463206592389838901974460788496270894676927826849349832786213358421516450214240303025103983376658620827952134420884523582776836066827578531682331083712345960488354224244367107800718028092825709665049770715471439191396744145027339991079033465786664114156616486065760884019906607481119210352625379462613340848651178106320678932473712675028205126806371665134362493659651774093121580250950588155245763608753221364340837068176566236077215261622464136793791199543136061929608013687803123978801203784833259643081971030106031834763588834201122038677261064536218971047733972210630593397925022616153452438922456410746789373789820055399555981365008683051863361302027687270656748162273310924710348400492052264230254837584291810895109240129585633060327740722748092414615357691610228874140222692650254052018952997414159925093327190473696716574701015482696325061972342099421931474744706213953198655006145384035930036142391221641578092937115380867428063435403511588844522310360446356275674237611070265878735650949857139614569426888347976126078684974187652241199360565673061208921453309589338383181017039101225881590891538545122529301524489118793447453899540893614420638847726972390552288629950081933772290493143129012928252400832255972103604527416643093498012108810458750585009126314038000903911290903881168669348980159204973414503336819595751253763136334369751582287358971427274905992712371494661134044856771163890918389029360362272373919115372311737662369450286039579334356757061567538412689605981358333956844671874786879618566612893354041347662194802854241644614592760764095329933851451069580806889769474923983231958726949795021818151263363657556776968100709728245705250414192051406761795933804633156902933966611436672573622154654854974458630705183315161491860337742124907059422992843610076103027613436437179629897586165655436130926249747596354847420382855118888206200766668158471245902672446742286229352934538629225754948080069741665239142017184251927975176844189342049674686728358405401121211417615446724261495218942170543498053883865868660866127229642601602343431095429636020657022972162869387199859311891038726152105265799403189765907425767428760247214658065593359839286067185610962671622558494823336491916492023202465466186564687673917798609726563197718183979189857112604060553987048832836745092763147653644406134448770730616135717030398354687877585610748942435269805030815966712807764715062960446050298054762267974900563507993340408298234278173265607237904711215102875083648588502982156590981035235925238182038203495739348653905218542244648782823359781870711053963822911941464280011210384030939624245200870235028861431374364919585605995376958647621804731499831097378389594472070352352893510457077024964594886278782171611455216598773924252192940078835924003824522191871150702658641611054745808415314606279718656510561745949108263451546846595905141958707484344919280028071879995155972826652788495877906797298722940858535559170994999470185037945735742596642173332448769085851101954846844385464904188368577430073292114855626688398263316939179947128923826281199352925672938252655969570448254037373307848832901844933321480280487905859614887570711432453892942204851667543743333813722771844686054304600181657194222541781810220778171528712116898411397685283990780617026155367687411852023945934724824327639868177141905726688883342729596398964611640562803337857077840527009443548166570495056180384270730537395369039823807480319896792708709506637398778972452561873462918366596547639982890042731738633328408584856040027094208409349926664006761057820164217997050201552165802491948855160634143562067735429587049047213532711366496569549365754043312701164528652939047921290079869037249524056109424103512966656892531973318213632155396944565110618119981403619585440042961760772893804603199229796718778803753145794071762571060634444234984034536015663142226167543219753102178595823186134483214859574771851633698936142813896007856381573987091108539522173136136994178138933293072278281408680484695189650824729886896785422692169557472875269518241706475302310591671611528491822893002493253692999164173325658993955507171283269920356890157437948528778533507582654279865788985153301344748832385062217831097928145163139985408828567814685352375401089826149469671103971935571950293563641258809894628924087335779599772208461144378735740171624710710370317060357015918558126791182937117765386081863296189728798040723935701321348000085416412599396052225621526950437612332651808228452139724088063787693420158793586121103365440095122773722359821039627526923622416679496920959876561900427521268781512717014737050424136099002446469364290732751910497659180662886424025367247724094476927230858887807704745469190500149003764344152239130467688673588762307932941315413170571596097834496917981350898706219114556328004591696759730756999824657280493556676423503779028235832097308356469493460824165693458787209302647754414353842275599234539645789482715381529503926205194257775945365321796913991745511803427357038037578652412515806375945189936339105210343501053216292115974120116864922630175021059325809418131972926293337320656783339435650676054564542490672763490695022573753824974087265242031600031749508521457405305488230534315464796481928460517409654730152010878009368949578963726844064994447869122205853468464325877723875458386844660280523997755815010776503191062991621457409201108144876984520959029670283743360715639450255515480908836785660603194009745075190197927717863330426522618092408623240804791890051134819847509469136779774479574553687641109784380283382308864645580742854712647427726472713431973167618454237062502246103345330964603526150261400083314560207210506379806523429541780360438562192995681919193136815687859542791070903444074772791739220618618724516467969395808555299382115212748928374303550690441920576521336043029505158311708819184045978982105397497109094242634903010804165948478611870681269201747812682444677289116000121455725944471791439346671880671677048735533119468073144061436318761529585499068602406565136566791473025716994432098182183846580491693328676717455457726695400867241345140447525200586558175043422277999356687804645511016248430945563320505176621168867803836590396449341922823538836745311606132547268683904376444824309832040919906581142693440816212361227897460554903525538221675443464069004164610334819997782118534294684815869812975869175896737356764308979717583243515189170664719814614065180442512773288893654181296309363827462969871071686221922356729321224637181659504717289577090896082423976121329986626012979821403659762823205058752892571036520038381426575851435115360120802538634252201015848236335927532581852149569717624904345391819851299009696810208818842028785962937098771423719341773167399275663794647028303247862276812671642806941330028013248873088865338295548087877444001405314403153064265914476535715799230471397562741279795505866356659664284687070545775425027346632696018064047000604782255338087642948616437861038245105870033232503265598779231628459175440179984689748147513338143317479245688933299184216440989072223861835027331039209954384099970054005552440448110315312514376117199800790178705954978477426608890657341144627680473578805513062754844720390582772307109018355303575269605583708530030383979770810089116435057450784355092923937964970246842182495211233336217770585834211084231645192879106413250238190790254774085898283434691496752984070778423991059006731969682368040817467310756557549949804843844937556435264337164278177363865913614897531508692442173100143052044318021957761370477870226993054782362456331773707431515460732440684789977849356151116180679448395721898451674010869741383875832007343454985521173830780482947021433883209025572370304995239761903790613798854269811030852551529952336398719966419089850167342801428587819666913129076392463530108492490567063447500903515761923734626325078381354703635282425290551580227419163370199221328949187999978041407435262471421835133235638326484363066296163577346571315587686462833589337547395469316484012340058688739906674475277856425654614158648420044257547347939892531258693670318025728910790602080169414861384033803663510769770017729385716282361451987523513969313000344034576866952860581206219887892938349022829944261194361715488196674916089286393195982903550649607522794563495164228184721184704183019717242226975679697763143278341984566622511629390431881421912397212029473506756640078765817716999150589772610767641621679096521879402208580898306761748424603224376836936479127135229957933896627820743524063828918637218026515908209703273443727536482124401121282934295189078810015995109438067088362869396593129240666160785567365020210350264287072088165110941126539402697467204658063170291207336163329550109967759203789430146433477960776365988039651572097488598417084039986856450593574798715378130854214972136816023026986157575959758986864276016020879506081630945451693838462308158935506617371503911352270206107763834462582419907937323553973362724968374021529970255160187282659594859183646543642791481065847381346603739129269452657722797892779616544557187651945840584674884048552422472601576237941445434332692760339272075826052599661833406693277401223038707831173410872145828357583070947527454061028903402656617854640591026581562802816110308152033846179874947562806489689424040080894884192266779407961624937001751570757675519836806509042382576150835978889821534734749750660430851569408985679168096820915864141738807875335586252104725989015293627635872540083190613675091903636865299242216751621643414266340094544653441178708740269477609517169448821929007609834587510725847986930696848581026418101455223422852532346784492360248540997635768650963373118991723366987922440563216072157347515672116696192612232424742683079551905721584975578606156221096575952815519523024573457318645660109024033950583384854478688741394272995320285889380548922508128083197095607205940282648829430580455442604314790555860549352148770354673637282824733171099378338282312063352571071171430725180329263216852885630092585049718630135823587263098091070832457838696694183910960292059390595457226172062206776974494497427373040143477352559772358663323843482248484097417721498165225681457414699631336432776926552047636235729821913041287372650408380399242388977865036179939451437868455281097692291113048331740016982592949173297638253005276862417140242903900661019513193742394695465636161330512472422042021586808365593392034035659870499675047015581627169439033386747703441786181994556145058671982471372452829927151444443390829069053011367737852695366445822021599592782691565288172203791547957244725802729300925006572929396052373740093464805901632270517194280165294692006773211779245604389731054043152933731952724248219608510113871309620325449261385245515999039524683185319166532879572713447067856923178961167713021771191346125996021680394739382750011081622698619092745315962285419897752120918722478921887018593982252730025604167889399667193938505941284021397356274202928747893760296170598463979363547147597551171856329408892932240245589170025704441202320810370926065529182870165267085266774245346883620695677348015177968852935965194411324519571687242105485696153759721472658182977934889793143206982974990908479089365553628608431521248004130846274276209879670078120072086902087603601942925761443746824178938916863815706746828781541672708017961392462954897593065377926495951760472203658786046884984267526880165255026156392370027951679287703614516570513634850479307611551870596933095757246548047330269698761386604669388996501014307247410269733438416251667367065638503736107598749969676677234426044044789503482897791546941300305607141015830651317548862028135920411477556824011858640447533062853101403558890308280345466507725153476377452187356490825910685309132662903423472890048902072149250574230752214921722630387497754144385984047382357107806292370783069971229255376455031473585062983422493062716062780426591008493507129832544227733927731878403729423847717167567962105744412734087268253537082705004559518814769746679275305866732005314141574174616616988952744605721853657180535853392101108395558939408625460336702392801213089032788360534726755221546337179299519554442015145182911791426852791985731158823768124279369482445666305789101954609385368135446630961720645957186014496231873654335856883510310669729874508462219286615396645238391131310490725256848187039137878611036265184985560813610055943728279570093710063298316096648170330478844311598928635240811551695068544416291014705511455990444053119635780974816767992434385361863569295056258826806869201902660778310714610259907283651132309597234518360671000841822100136271330440097279956082760316455197212878454815430121607579440666683769526004772457470905290435577036773708586009700116848383745469312120224601121327112583462287182975822510229167162410356888017993348842195956638892155690205975709951329063491849196093887618601485378713170198921137902479565422595919504720728681232185416616197503192578807443768274810500765794011615719157104259984710382833319269725919545277637927706264761892417080725713919393520519861444478250573047437276655758336164436925996098333502340498252869427144198913134504731469227140509559813937805344543717148516402389231237246803282660996312038075799356101511526769312720515346494830067680248672691212586630671535038712206337604711243159667970798610615711899088116455778735336453184347681928730838556143132477684561440792672411442547852662979372504743330747805036082353504757604379824819302807017142991500699410200574023607825775687444802794640252064525607235538970287726027717557635377360323434336092802136282875834020716982737085451064154115168447411296535651639035129888993043336063380046696907321015139822869370294074364956450618188104478353377579396993287254092126330856030415751995813863650241762843724425366944751162919328679712831513819657663525196895126822034149959663301339059175649748387376648107513063250249209395146401591603081444172446463078898098172352977003482217118165806495573449123341173637918626486078202602849676996049998120941073777845114715900074731116703168741063644398083156701178925583095854219300117755049374635166825512926139718590854346421006642144073670831680764817214871598528970217829904436874852758008667698423527594791877316486971239251432371980217326159858811817581149304504803515572407501364537961688098813172002371296876124501821543509223564949797810343782188580171817423915835134058186932994945490581432653612184344016074774672047759892778497382240114941845743089245024221313702676631635130203976165552657928104852670399452916027965473837872323468945659634992430364280253782388613693354899588269379472012776806102806582642324408655203919044597726574278834049700913815918138857177901847132241315713232216632590899227855045564205773180738127621009037387621859188992608396645472955513117013447297911353259680299204519972162167468449630038324259122546250143510169007378513352096251034348414376138598321300160855592278119803779625616193889530681792455312908241182583950307652019568109094087318064144193652729987096487755620297989808042687762234245677765514368941466197450790813260243126518747295747273565803421274479910861995462021364382327046962047661820973248884922427797680236021747114586733051935406498215011122691676496122719198086575137059559149794789637682764616790797047302337594009612546458240306932066384447066060178228879055124485540129473829155892696480786377065440676857126797899420070991870737250736137568094979311883248105969938495477858004260212172602676990977900022558986863379184265851478590302422448476820564903060062320503808243166535787973894257925274148338467259369894595453821488728329378032324353727661300236734009968724829233952285188854717277146531532031906592334103062446345161981323309383851749732051118144584352945563532103344550278502312618459146677352732207349848377269619283671205747420586253696890754114541550114020062357345337826903911105013698355570226491157313602222951303405781157277323173761907795809269921692474754386904821433363973928979972012973143826344840662283353743812459921359587934086108646604064705735446388479591777855748390511971891751922852961950172372819445837399969636141316413797962467353780461771037282548877362486124759107776165608053811239754297226253759156389334891536443243263945435654115339625608326031457959834041664635076903590832866860070148668595649228779627279908825678895399743696590346964325137576198169187191016493027679969456744762431228572267739172665711311185831013473503007400951657290824435341214521284180340280327448284809745141844733506054981687286932950255757988846543270429635602008551732461288910035471962659762684576190254400028094714764490400802515974464494276896457816471825828935568330010593766317308977911795403033680277194837760711371412164424776368086641638709835489403931399571690553632830198818211154182592054964535800344115419938970055598163555368843768829077312175048517343468226555135497124763761674041575498089839954240201846561010343095938850898567738354955378796120155003636766164952566386719411920583588560522737600058287211339142865243671598051532029669863300165591007145137246934903533020921869559534098683789499307331334245881507274090150638889513379742700302698868046579681838647851451088803499221041702270871830063970925791886737160069030623112430258972282340252205598463646084431485900213041782673963975062195237424227681108841458386147968109333626554119931095818469327437475461092739714786962060353532411177196772184294019898670836230897934588827646508508810042151716012983578392203610401682035823862920943375754511192030064789297253495872080730226863556581931156708111025905734869984323738649318303328386444851396475023460799973502775220150802454054660884586461557571349928427457103140605909490722550782044956695487537178997110363510565059256545844195390701505246689042358753665327546735153570610028544532458186370228885177995736802494653934730170297693691834579256286052735475296052404126283667147010231810525047215405001664730543853355443890904329555640843237387664723696732179984353076506672017776425010697034908753367847546547713900704860095656033130592217954373652051767562697481220429865809902718514950237863708280090307287732048071239844957386321217549550913882757746921220282693328411065014638075352250926500823940277271978501483511936668043643803452116830841145287659667941933434029617136093457075644733586448181097035146300278520046782403219177753323689895703698714750615121493531828689058816047812017210954447594570949417201190301765784364685416478306517471782076112373950581978663803529384804907994425459515195374487815719498860947198181126679851055394048830077440040459173545312508368101008787793830040081699852113000874528400895997409627590906094456962104045565775043672578237542955158450152932556631305084765471060026218379328804584237433385218181239805120721235070318089433097950856471483778648192033910093424232961141257914585473274492680839370614379950652774088713281394383158855967878315259771290320030526879620872536268654704633164765617793200234896508903343237889158845317971466517691499082084180681917932060293331603954673642349099006855734698690992787546838514022128953816759764163147311134576603048347044190631491403155234219207580224818999417110293006095556897903095664033682371235193112766151821287358003333632104997741028635333472366873081358979718351460143071270174550079419638034215033418435719104638663809087368551338996260415080602818252127668354097914309026044789628938062777546787654103150062905736489397354791213914107703324098923492145803484583231861519361974396711679077537051234993070316996513750535662321282822152800799705971570650798981673761926306034241217377597729217182167759739147626343705177284645108262192125205776389443223167178688710074886546587477353170238403080933055078568540550864059257056080049696160160454720613965726229267593581405556951390155682090692144200106354787318715253158047076608969535473586193729893652551620904858869223536384797282130973479701333969382632375728971969376933354312792802354482619127972280638486183350282150415335409758611060644568961579347844569593600282101539400494620492962753950516908903839613191054820335127525194121303107443474637506126203496933044781436077149665658542590453075579385417916351029314083626970290758436859018588738765119155047638798961725961313912522903130929088128322883861303561330935332799527261419398401542083878471541482481964639308911067943651079468839932423638082356169274187507011654961282415372388931916877231292968719232467050314740267855367435161460524522488010530438322981112963634857214580731837320879397665119294580191401030681762398041435026537778470172742840667592209719096427195036778041141359215760381974566762261592740598290842772842606602036652074724407651066420753225434699986897613989625545401885296289207162734371398724105851040601345435033233000265296661718472649331957534545637387416145459500631899417452719351660021561219261217438577437375375554183389968892442448658478459739883218481730333103724125898928666764593717360983405218754947775192923941829679217592721990488829952595122526275032650941028679889856740246291614795465829703743219455028531440647076578680517072717675491142769736973178619584242249093826789087344316734282078888793984207003529492273976788606889361828182587414705018641904037373210524060516216577692178201302964235286538353255009438741711126650239809793744943819210277418094714857954536770531608843386792620806295545141700758440319305554721589077680973468547638589468551558034899220588523257541126043260055556340413498673298908252322407461503069996131238520737701478026471214859252775614625568094564145217565124630675187307593694769257948207330687630260801562460179162454052430203476022139341379419374670012700724796614485616525425836513441485566701582083824691225657722306107615732510458139393274540385106333505559918482764455677606974021711196855319484475178963761943976520886751946358264139534814111788138095647484512048645209177391231182832728795589990963614842213098585025342815870834346228075260631015903130808168269595869428770908058281707404916866590369498589419396188643891665746577429801681226894717470946672489829582180022415491930090439711846845305054567533029088206798602148203059210525223578006356271029933885351227430577332056207499970004676591327102951188041218849833203985478623781377891255750661877524749469997874784597099733703288589252848113454163984157451896265464025548361627715672630328740549467030773274190243247844322896307733986746834887647277696571336751899888306431785089268137766958615770433708451381682810267680059177933798015611430148172460966057775754892890505603817692792208201153649898925266768994147709760700066256739922295720405174693384044595536874146342955550173942577680804322491242523377567610427099631000448974516520194258700087155509674746018159109515300815155464178348750025643687581015163460555860922829011944614450077539927611719170379773321454265089536487953083809258673241405063331206515548186771416137332662575405252113949399878421203046496595244255130009965726377978514628299222933706988380530990355514737803315116270472824921282038359490171516968235009096824362129333538749864065555446572424133557107828814005950198491476935326744037884522107148735171607964682210347821766447309558218656846448554698018349044091534656479436661805042093446855920003394804559927312960482937318317029256577019082570380234841866995129140867007302070369340017372840089912190770108463890092683630469810322606163516707478689579425489819488843845645917442867867595190907622462757858375537795378170117820829882740709986277001260889781791056470066317003351706734878082306297103614228566600349776875489187915081739254731657765840727437128622281232059250920110606004797332467637606448078893126389343303851089942100412455600037494506329695040557893221114200555514675934226058931742094495466676976231882106567558041334506542660834549241167726292758991252088394405236166067450121866066832839400108567205381233902934725538705123401211192442636636078121706619755956428013285038042643373991457739425261701479224698728559043739376665820880688106464613467664068571737288004568115153582302075561688759843501131272391693043477601017862089444238258409748879508658101457159962226679975180557191062355482619117763339887689750781987497916790290085359405025447686508702714773132326848974204814733359173294924518617485140212821334345509294695704672684620589018784661095429129679062659456238663022588207542492767203828957868878044301164144088692849385144971385402069693847547075951385727785939431036919147947133469783656866201564492372858111716351254525905867537566588635306711903981553796916533002118637738270656368778686225494340362476340919488815121533149301664043228087192864064616732898708917975910774408857030156247167362150909223608293258622347283288305208107046135677055580124449693022114678596614804398931467774942300151673603517193218292690465981817751438186047320725670433389187371135144738340615308113066045913219116141303526157971771245182471146986514047655592754138140634024897214199047006882859913657379638504518553639582894922883024021581930114587813534258054124007171382510345582024541869723345984722177541779222781187739728015654284317543973602308134990353556976662302626055878002085529199090100561819961834805461999652807603209147777580374871733073488914671345253724844681799886884030789790753949383043971599809898925770771125375250741306114463562228076090791082678064184163837954953651078669308326880965184528750500374295778589190145708374421238079444011140218399987669331065185981250028925979169589111770534445525625656812969710965833398490705962022196601068983704093461388873361553487129150369664578337342913386815291478871072274009019841066932129920637937887735373391043237163757274033919144875863149369854333816331701588476300277768408737179799018924269756123206928748438777410728802725768676301954937411068379518965671684383783650178058195595003377401803450006714715341154330303767447051330485319581807099081443279117343876615268995659959876638257344534085658556915284928906079911327132772230906470955559921948249800443493510601795659445464815736099299518307169454574119900838440172764257569297164909279078616234507528193510490810184997643488169502222478653435758084486750960569808783403092446293322216969509269878694905327558738450079591660606242130963331405027789151062958484203029750652134162430416745718321862593333287292701880857431473145388850247040935713334566356870264217423957080018207112510503669603536122668053918583138214041908475289380060829502933288805707922501993432876633942464538502759133263368610506694524035880142019025136579569153380296091025863303672102102211888539874219451411142452067902045965955530891277890983295962003954465561031251775218631542897363618405430404103458324516945808310893315667100633627346213584650504775649089884894521688652725897726936215170668823298333668404386771168629348362987703897618305539104597548727002769387649457535633200506969922085681275648564808449468193483093429173468652865357313734660413796823491451329225571981515063126132026738376846056927144709895063993209830482509989058200848048867134416026866462849547251605945148954296073965674630182588300993364302425041224252452532256904168720375685435502609242743593368076370815398202854910393414432327016240099028799483347558318202380656602940160292965425424473275761556889516565669666783429758499252351260018993998833826048987365593017665891014849254605593552411286440464933307893724454771724106680112346925252358662904181409976559848371643785912442851847864063855372446198753621031703599467442767550407346142624950657974889493226943351438991150913421605806586375873774229045893512884508869888471000673788584353740686295155489187674236032011117616337590642937566016198838036265242443741030519594928619346994568040880315053059316301212192819289470813368281926693575308612838266446115783292455122712711871817754523252505060435602387431381985195714438232865228443450505692240529246095866780476824385791557626674160676488558878025775973648106264999199909994324830746947038008292171552076730528129965530176913336074526617722322023262201630056380591535968263094383987772344666560646792801521134378031890454055253882457796884596311053050250028087439893356295496484144526340560431758484686090121270222158660642462257696696718955997898337491332966634618040588166917151208538786238245896651543340093151927485039778155966022566394715277991512630555194264884862616213780608860067646107829119375182739062097723649063060928632153518285150005998156377861702101982839382148199384406119584855773170045606895076680518812001718658066337324783411986522314548997077178745381655074587441557510899459379114018224637089644974560826731595610893457804369607723368876065542326916128062975487660620121826785316553377657565846801876515503048294525953803601684727071918238270707684078270965634994199833017116549695230730477688864444200223115072804556034387923136208760218508969439827036469791826566105667678588066166929421159511412865076142737894840577288575655548987827762627433026801839782289612288553729323122070859614153604130592367220363772156968518244173710630104187046933784589324199049631204969160873017495091563897493976150592972783011236532823871520319726665213238182985705246300984432400071850585874098160796104706333904503871797689422188824972528473005879777526897509460907023189187414987885547308287458023728793773152534180497432221172778778325097860245562513324529649465241709662072918200032350863566971323533466877693685174475330001130119251914419218360614262454351088297282530989510550212984307285527603352856759799991248008046185833681215547501862178140529553799042277611519057951914332205752588897448642665354903603816574936518628793194028609218893221719648263121680223136112448174433764393488153532563909317048084114092766866185772943841012390615634513591982149522744534397307874868957040882590253535708916366365510171176800405652469211681290891275172123598847802760192654457138329332557310418949715565158088938805928491358600504204694961452403220278177321022782955040600320138395870499044033397560467275970505509634840119598637326354235389205859663827633464363679890850958533913721003264786723068026498887912990607227382831591448534882825876388976342541526451421501162668520713993227115042630999036578204118085297131340841693215164540018727717543947738060967105425505856819771602264140927257057207734782209019727147491750532457606887983616510215528531784193514347670488783654424607538268605396488230023503906012409433616535489934985100994610922887395180799740887064470657243884148999356853815072174589962626229971125081351959495934239994081358680214583235803468506943010538584477638298933862045533802777856652189277984514464196093829764241630037350544352238185732193386062309024272634013046941308986655231440959245397820273055521325514753501394434032969535264526347879798102659187708221732297832132080598541597825130140333103358782583407535816756610269953836612075729784283998280021683603188489490840128073716978211599377687741655697966673916669239464753116020081775327997220253214774914541614700610136166869041200273906893085630326081739760210574867313371183977999709929031844769119383858212206573907816040635680002075162067290392824075020838902907630673432704077040940289352123490096364007197011685661133863029908162315640615064269279913999684085877659959782131959377197262871549658286749733273392072987513930479229916888226721362876926649467398529449366676350021747580385509938855816920494622322811625595861502661567465057595786405979334063679119376780989601150611094383090811397232234453857658660578195689815141490491896288034571570456053109255557169755702011921418496319350369446799081386581418932586370435754113251299149061669582317308809516888263328530221183686412056426303596824546999067966292460169343226062334462902160375824736155778813958138986368813985193945313177940150039634540289075458202864778000992737858805006503761954769477359184494696186042270425979841423647649286293637052885865658653121466789262766792903480820580334999524072521352121425561584301062054513542809153352218006333545300864025167293999596326264163169477650109931289411123601480123914040635569034582823813424404433295765961206767304964454585661085539825403922806950632462366238683860903733088451015390388449079121450678652674532589262774276933537132180317235425770741735562939398794228029398650694939807674112442593039204225920593497454172764355703015685079627947311529203994096048768946041383497914120909270488835508503452365002068683221005051813240010917299869590916335496369926922026636733810745175197502826414905576881050709981684404194079036655444158357574360609501644467339450070884136852916737298857790069162338891887589815640687264921465475568479336072196492168713897794563995054070723694928170100139198491297103971029689592935607603408237672856072055242876164539071835731381719559794764547934679777523684097779379397467156133008176922602871110144978906015491087225812378552701115002269447942571025097949620272241039458895222546787144097927347008390148966196901986186252010515394091578015171606415582517593955605129501901327139744876021381978303886274030388487434855365629222632759595009174021097084452962034186633853997070111326679565739961303979166107135890843022224193261673036109290666433038353123425846672388086310207239938106453213316971617921500815400904112708541727560554432319509664993063392685678076903639938693300551779426007621972392805005281653550678935195746513312970094821904673169612953222014771917273879931084751349986798318232545379989590210054446545322979635174666058973912136560019649767251744957363907883483328184876954378587409429753433632336334066871889062431779719972305020037723834277770711531912922825899039574871209024831773647237511126451611919393164265902592889598650732568911330947798598027520039568961639993398737113009267207212492901029757595087331660707214952467841043635900877965685867149296126363752492763930602780241077244854066011450892093639606273621699354518119314357036438391211976308447453648667682836541620637018656936368524437315273951002694840441181929820210435151081705360394480385414368721496934733263693677816271316990111251727733256569974158202323208838450006098816023589224699312596271678820153197113238249726065949987657780175298053278870610474092192076258376878910739861714876844480098517530015287932898407801302644768630756534254028772507486098888049332581499146231615281725005284363896167581742343309482050356312816763078161783116444233858382679998288789250898794357148246749226574493968859419543657280220369033969653704557943256015211823919050624226628255872537486226510856787488808115338669488016355454511333716848175403673579763788597453864939222386659085501005329364591062561259588163291133544343292909945097923350391673935105278768828761952361437165300853215735478754565900111224008257303488397316704587785102200925598835491292485885057097053255903118167339156401819784619628278727082521969372046453405830198815424883689512999616929242736271256477264613624822546224664070276703599997700150706689835419359412839461056705746458002379083523044092414098271387951627680701547267853910296064144990952930412160005788728226242661482013661762915826154993149753419060959471119873512744538772190767052148860818556581847504025034965174536056862375639661030960487492293674303451731093098560334559565183913687885075422723929420373851287075926931096746802633517631323569890586518691381130458730595954847072540072320821364531857468557502090349720760963534435056178738459517093883121282619956936888220279715262634706557748519691226151451571520265745802457446800507903755142620313243688279993398724661953726497436017154137737738989787457108035697965359392763199879858160527169775848403990040255345433022778630935633897326828786179615436128813683121468932071903756263840861121657257219547818208354746450503211353752588959994634643304354104430717481797915310321391839923056604944250107694331772605893746161058436387073947298144472431760388113425035541682283451874578176265168062747663773254461641564726208141923555254263967730927429229857386122281038895838408368632622980595157519635643958905686969069411241894572129733295364639919149608961549118552824340853204678051230826803585256463702911698704770184327616167362275773651886691804488448348120062106871837329619296032887921172909169254772777336929550419957377054077953298695788124295843374193139194835391115632722411743862074470743528853498553651036422074895876198681677499453990357079603914616130821942301110226341248465670207329723610413698372452620834331759719686820299196810024592148630968081260162037279121377403003314593362510822944405307991986525905917340250253295807107124454212362460923669657336551658782335958797084038819011130767139358914948744956351049278434781792728694188134626586304189231052575920632928125407942641699441236759091997353133660639527168677911370536280852481816677345875152631315013059293308259861337245440266009277395624284606823965281000092444015813090419512756616085659094483760596335621801072330365138126953451199503201977994627148308749830703646740671904689155100818864242221847473567789207792749124246833371224318255138621781755416033168254413548583802626031041135325900010262544083830801640240065322050325158182382069062873812062552736379278307521156381381467736456983070816389425078997446079650729633512129054376620808457733212958708581275281496478650268790391339604781298674140140857217224614210028598838521896913597227834149584712011439668909667708708615509118245263453917000897918970651197793649141054222587059660998178074687972250631622295139993337364660913708236065100529734294164460851419403874763772180823701683606666108676039603310309352976465498654660544109203448507811224235719888068388814628934188791642067963777754052015056847421055705623775538681418814813143812117702630393909585029460439194481538049563572275313652300958200803810367704662461797267390037388692923784096372609611010039181793225320141696141026800868872982137261953711080660878017939193526040249754533763409182391044125353980443294070872474255973644301263090201746224500254844869792533935065482767272260984227999790205602022780945167931914780917806442569943523371998920684943679405176239763437671595991069848830483070473183741172591741253484926678969744032691108371997701821985027452521493344802585904454100498783470096159141270855670364835203900327564221851558774156951369625568577480687027650013120280827769641559145011304291186900093157469541164203282182110470696636380506238506847303334496632175783898406112565867395332076660063248534296784153480924016630530139716735524813454534692148445473902569968182933801294639762553642592274706057599778681868918122041217585255745943481706881560651354348031474048576375939885684197561649450112553976670782616760995426900552400633375002258596763428157942986140436283753862661460988384897949271380319467975935069803742867570007426206930446448912778233812746934830572443747461896221606511089993914928213348955592795938656424920249926251376885913951259145779680451122054989624954827133865856837115763866545236792984406264778654268704785837413359062701958792868089277046893326487624614694353465201944865981093353130214302953142785335525434448191327511393707908582829996677018468954755130994995540665253722363810717640931728758826117254043898712032805717739840792067933541081372840389561298875186387030163732422421068966415872431161137649539384533611956710492020642355154734555627772019981317991460999721789442482590054763731670711304428467584131201340012944214051587214029094149417472937968629017876342496691223531019169712495716329630109410735358820848373519752880561345740854399290925411625955380617045226541606945278242897040730398415932753577961200719629960474508378765006441771848630524351467817211413447421539379580689191082149905396481367506431562686345677394506073124272522915592278883973981134158138452095726699601541031074790525017161180863946394206788014991540176394566556083358434478165771865801497662946640365204068243772321994759952681928959323000829437705891892910084562323948152389480244880847420645287583657803101293523757009663995950635795608585269318541697437677420645679029619741026868154011348803214604553203250160271867331759912806774045564047604653100338804981663930380409268677036284031520009332454876768747021569809370191981332013876509363918235958484851009813765924950216732011834618916320557357642221345551431613142733062346240166195291067253281029145993047745932290741798554503998347179357986223941556825944619635015256122530998674045765709437034371554269068121924421532653496952805472455771777603209476197249208925672575845226638596797395829371555146572627800906041607813917155679226216731390313495086424071743869113777684924413817682783101638641042893497224583935848496225079725125378178491050752305993153611695159436638739531276188637633719061010643974667793112542138330235692903409848382775750648055473998057332609477166902620067062643128085599745311864042332877110298198400479130780658566203339386522204443918465757039095838453127606684730624731113995340988305514629075977209600265718965792714789154939839825835852098917930790363198568300676903523726179432573316791848376739073884645915195170144972280442076753417870395334086324310527360476538497535973845402708246575375164510978614327456549492591490746890105352033880090728151167145157968843838568071928809258464604676431773471477534837169429514972407273718631364341025543329778103036089426601047598792264962070831564700043612302510860801851013960448804070837729334662860221069197065571055650808108123253963311401300508103076750057311859169575257509779740171693127049497446730055249589234573250508263589838626718999805337144698104798969624254941388007382521161119725884998892632664985489148346974282854970128426529110440646348365950655540140108814620681116679376460329442831001836456474132426944153361725942059350982320922245818135340783989173997746563945568959133952767140303594697723642658147127217503445366106928189899163597610379798180766938750987361027839160888920813055020564421670393669036749865383234416488964781146069187471156620580667753777355171194390271160598746518713038168316708669406191277987066220454920772158209110769533014435073927078865487194165543263736435314920332071314512193928964562675626368222386700374014915896284593115533557865990669503001598318626391797011490837856807563918931435871506774665545488128914189047832413017692510097229025806610811460663979950507120072257289711308619990323977947500371810509484377922675427284435313256169858978734613557643254525891313799755469624585208582349445579278178180632772391662124435001738036731781922767682094851741172921799094817335102000666003270097706226838093052425783365922454769271854650099662621804350915536431366237128824412045402299752634492544194994896458105805907674857436563545647224088455791061948460108738042082553963860764274891610006759503595437107782777044441499628589206140208046967702549312879176126213321212864340265531233114960547889760228877555392157201473337807169857909842142714231534275768408515834884906124669274219198134234768027587143562248860628785765855558162778247918120440446068221253994065960594419589481071107914339703167104216477432801804982685710470239184149891537515637533790352141235640870067042933908024756294882489032558314039483761991523473408050082810605690080709451036187495083245648438960050788519246491102821431047479301714919536564456929119812996497577682249912979458081843570337357507922671805785900492328016762242797282037063106093976107828141930130107588169209995962135890148740389741036113556574007936890739915570014348652828770238645494048702989408910297124895837771157608469301336093359057092992459741134427888632495355257045576269379931016910346853874869023905913422312865542978237105078604420434184877847680675424766292850264229710083322116988928409313705553246967855368909224019896503531932778042453598314404906137042990511398302524001907738641702072273777766828588898328403380432111772043871557346986501170277604582706808672558544042056290463613817301051114518969649088124786513078824950968491179459554129456234695252075531373462714857365897549134700036727538572080025989675769193843470741110084834916679341049094823218506152240262143800510986478510121525026332178997301446427230496166191196077223299051290635180169673873710043560921733905882567575071086833455498547619747434327444529792192626158473395812990279293320719767388389435050781040460731435580958598327214431463518624438087895324187652511865154741406962041271943418028391624072061676884889163859961834300081425384337940211457335931502959626347071305246705635722334575033634780797322518650894469070223543149873683314138552714279750232991907124495361492136927551977636535273407377151671629262967586983411245362867495333865159189040723712353152764284556057623274590789624740790506343349080026040698637889280485450894999331235154556893672652647844228987883238526848205715309342868532808973326884790106149233865358661292930292443463240144313568511771119298487609700160192365778761139954673914558478727945083556090392047207843216886480009253290678348330899114722658165544667472650982504912420057381453903996888925171588763464712801892332517299984252348188570640803492471011725630188745808192377698175353950913636646756853474329644143499618189897160407050587254581792945285045315915527731064308531122205873262459139986509073571336860526463195663570725491156566519403775218661010401347020754797138870682987070171704363148630882105787665622181589878903290662052312754012907413868786027227170164117053504802924622419221563336647955964335594093485465521128117752647673818998226598393127528409323087312998853373765350319557180527291802202011520571085893575114973931947583848458524099031203253184539748756491689297297429336796936523040835419198409924661320758881175277547122433475113774836379116159643233614265137745469757022006578253093249297423156271268264624022828439139377584625626580767362013836537204775704117443356825828378729763576000568368193553167024244551633657487595174091366699982573101972071504455791305085659722184275699549509032252394018656960251089265987086856797962163570934533355515371671750843775800790559207384640122561214880061142275422358191008102538658430447976497452164628281529166268333480634907826073318394166400527557422051123735920052239537420252222137365001574873304837298621686283853110240885586706420065760180705099449276850484080466920804047352842654134778923534051471908947812243829064741598574181171454574680525865299094199305172900325911279937327527644671806924131513644638568479489960485358660910939948638861789486477024338453038964823796604858714828630716658755938452865701436407177001131583935440007894389162703746609195298821098391592815324301541020130534130955349554805486392129812799078961448560888645795703745887680005620014227308774870282603424724349121376248949134917180754796398953495185553338942720026078830422997519580559523511651268577856422738726971389213831800555991491534508935956560454603364316247489831881816810655126629848401302062408745286952072236028149112701408405431296341434111491009502605247953606363411106072695311147491491004817924485069061130730091712301607773725113490752326793219750382228240923196089398438298395873201130803545782401462682321184927700135466383012083734988938211538479182314902445813535191658439370721200693660279018494529168136721065762208800551767365077492445009927460333502011110044288797979576058693224705631782143753523079618765998824146521375035699890594997199027062060856815253372779265110534357788776669392341872732655671680658910340406981545808110088447128383867878963640931512479619646195644003369534062237969465335768436167175813118376846988239626883478616128583311345782336373448684550041771960268037417370423733517317305359488761851467098017223509958526232669553608241492605579226375263481450325059754993218620414362158131069296656834892110883506889112879751224320552328732591082159020477094117721769774388699156924815605065033572303171576129200306607126275930667312635071225492010886004897725520288746423995346278364681440801611389757087723755881951731187674969726258368097592349277677497325738801930454418179255560753400777724551729977274677205041354286710854962360312816942621547280917305990680179192748251611122290172741622158184775355570768872770418104224219019402835888367299393078928815227360780622668492028989908948886902832858327620385482118402332664213589518220974530025991848348848049714884840339411786932920845967079917363664514482574074392291137618233222686771129070668803914665036190666439660124078678027733884483218230153921049971990723342276236399190999838149020927645305886253781362385082698588904415380734725979167741850962472054431770282043734232671362589336462406766889521608001444372526436207385837224212950242717127367574219742694740856800661633258918946259027283000940895917455564600033966904308110426067243051872553068207013932491548527755680233525309945239711734163876688475227923593763987158766694880474723837178913998400835231042472277396064623813179382123623167564566795514983690740938307116531774628252936377043676746372557066403263914657183578053508262029754339288003187558746994499246587282206006377811395233761152123058101104677760122883858082780120241084103575469497608617560556075169403625228189707900423971765096587723023348040926465381240893479575611140023732692442982813977475865648960625337815202070872779221375000179306394239926205757724982320646063706398028394388215748321400527441011025095653659534180804816669123888213290516688140265889975626499381020639523647134781699455464150399677018386603576728328935855316933350979194701818003132766145999479006998209057932080848232657197875618983057021066627877535790286319383996727803422448245887027368273866323231412173094948614736995342524185182435186434092509526691719108688396673483904105067931862966252569600887809115639206752902706031445385653628614992505093221936150850488652373097077687009552129535516395468896148291215329140536181901186236302195368009731725659365350654017868830137424837331598476371038059015577113965997247388679525700623764337522995475246401972681746505010404663012755653699767105136395653590817159756997596633611320276969390555035168509065821930398511644712345233848484920637407244050509406864436065769942939523504713321531975063803125998037569866104663958256877690140753874882925720775928566554808294519534006088294131633109922972382997858666622835979634475949732423078744755510310841795727307466249439767036122111168917128174893287891392193223524258633567252816251942582317412208787213621415925046678732147745316007868352981836017637732349889096361143817304614814774248410307445200903111435024615578211445000795426861496069785630794622154033961336859511757950046849841599729265638286917848826562117168839305075520755665221455413745449017585909613070530301426239565401319135324595507992420958961308667158952985384270857353758474680779682325524907781395508403670092080263461892890751538589489605998527437376338011944388514952152904095546648538584196376353377674024355226458576709496894895516766422545048184264641193134040384826688808384187419119840653509562538868112112072545592608333101112043782116253653364859207074443101769934968258710771329842120046961480828905032056055685895372140489509498152976058094809784785934604844001024461912881282414740027714631319342780374678542902988940344961051432626160928776560574026840361168414256544518480304886504148558812150404594909065393805842206507800580057577145251233983058335758044677546586329089206489349780719566681508460195895971981804093440303516511036201347681161375179151603497108892371741672512499283805369047650383398513342705588917509733510293936691530405407968190922641883807311572741229755157443980680782787158456679248223405846563656374057076441710220098339055747858482115684370185835777528732674766504506132455815354331196825257298881983336685724465875645471876460085052742317638618149148723045671184568321361947498200198587949710289881996612292288824819503230588563582224739205784860239469869809368234474214157571467677398271926560707490311957352901613911012330246170204004843762630588484039059857018397804154653695728259102972236168874451902644734337385938314199985633309754330636444034656270203520439914378381819417022145614850950465910380036932501401425959724276399517365537340774762814470614630511892846268506477645695952213557432964641329643583566178733677902586278077319670598767046380507228763311937994597215684623025492388478194860810914047284376151344563566552787514208978336713646050242157435758488013363525088938197066941616610627241400636111236620649910318025957026202581701237077272733410620846866441865273480226722661811671414178453227432624301892458340173175849264460240954200205284396407225801596309158985270696930421752502949202055388760025600142543547041560475856869780082785955366231636208453229369454862375879391492688811835314049573628044394901848672853254894784999571404726718345582352409581977818327463911726905907297035132091165578798843089170299677419175932602213887707545082034574273950667974450277509236525650084895179478261782349860724039568978763486577897603655443617293594191036688190065005715479831528114719424215761893794539641805221174741414131087592657665778892152789650055388555880337442316218415543279263013552580693233779540867807675964455089180320065889963118344639453967182527792103058365526971031203338223358164708377670888107074343739480010134324437377516038591172921951657429631453739510436947874235714468707656323117717130399002388784440063942883323430946299793402456826067682016373393283009226748882345434270510523102113566033720259922966790827384809594301793886851301366567244621382267202977905488246262023946273922757243181653415657617806256378125358496638476199789669239222549848035771703699308704141076756082568649206088904886058135741463785719778983518469245933437277397292291921614601395437481635266156354864253743440387154361872741206219726749204125649644159180117967103434928204693287213233816338554894024987558328198886410895508860032807045921458501684829468758068608768393535318259339970402824014597301833693205609171142458548784155459336477414268483172643350267095674144330242192179960328193028225602033959543252864738576487315862779350200929124632103028236054852843797627007816755541995848437519254774416813580423321923978126752894343475999541528914456196725996300751589527947984977382289648606913583946773470645556618233536171175332479558527064731911619932577852502763603274661144273487446914321283469679282251878795456586380345091376691092882343153318988711847927642666083800068310237765976212565400263209579308453864407394693531837404389940187578068444964746722498651200620168944351002753402663847609025649364914728394355839445275393927976250222315615825012343917896231328068996151865315671569045978640802200618761239645272865022538087370547575362931923954961118231914076519084025406496174249329239281847292456605263124061679091357860214433605216007673583744922142089670006546128597012399037768819513913326621126967895573547629046462998453158816797467940934192125816811011220261082228135671702641112711101131066726160216331903784675054634916440364336627773377991074502765995531958707090816287214025014524876950615518962085325343450997421837880437903273961565999723434145987656707269430361179033333545011581435294815960953463405949922043830539834259930803505932648928024210144704719071880668519397769531636277295388147276857175106593688812393683444579989993506507260026879703897517054383170941928374340435827184925584313463300583524017004835698784814924050567569870292479874044263648547965161986142404980727066234417305229857286899739234316203221574663547286005618441122105571830988786206320855640292449258549476412209703429037602572952106287643474310510820786181933373634934806493843993481128122276526524091753912902085251978985652802407120538564087930204915274879058641272334725289483908419611612931844262017437486487598178534310663770148777017908703991111748929462098813924407628784773277649075450825077494467451988534304134308995835856226994775654383318718231802379204081614536717376636896124121411876690456928104017207902168674834735777817688005992432961148419537374385487722195850810900724714154075859762294959906042191266102527925248964384882735429530681181355414533427438669377862046805223081258892388839468617759865900786219926124622535430742795954086607155185466003747361474131721852605076015917334402730556704845073742041368344523008867019929981788208843694324885543771661340370517848045661888333879040801307662979833525203234207551722408740329036969117434622586744718665860315336177831210652260442830745131642916343355937690386217854071252096839595949822778028744838222735014153576907252392310989450112977710112518396115961144195124516445583260675431342549204811034982360595015898525661026865209949376866606959657693468700712244309292442568075624543778112851052849519115035126885468389489394529145936469895617761977775057827636333808952640252110129814653592053786251616797289643523087650442104134316813819304956741340046198511410814636246890476144918086732467249610852941238820159972459749391935288464180512416315374504323514802261697963166174915806585628953680719700536285293788014865591001615826968253805973791071385047651548504668471216924243624536126520969083796387422940522964767502981521089573213017163330850433192599695084951904957252817638015366948063945968777349278349775352986200061598416235988684202053334443516295960342960809020715761887387891761271223068854732710857089941336897083459438956902987826981938328009275740268022093681281327434555602946297333716790980925031121538578876095405114829220624191722411451323273123857448003174438945336798156197552607194378964725488239189573149553004586618267188006806353096525941189350824001689476687046795694552913740745297848647224420546231522114580882113466499982201239553988931344889294917881441167152091237172013345892032061513333572174246940902414217395197583637007421777436455764903057404684969310381811519004844544428759225508169589957386401929132256916495937924167168225086217041351433434041146421928763750303570728567779496285252863522795536074585968091567760945567171686355815066515201979395005312036926049148678130140778784664167225914252489716683135158158342988473930670736039194860343708549723471002696565763800150976653339070712142261915373787869475038766225279575882250052252708321836437355484175992253515046672558388325260417648675892823020678322619243924169098257037768103378486634554900524215667379672274215467507951295522708136555832170263554610185426906098868607970662303108509313886198114783896127570534298157272420800979161261281438427414550320285944310240160544344238635586431810200417191194823792109001190797835162111448944991771214768258211332267264002456200310551492213556031539287252982172747338612587864108391149899273197264627488965432732685710077768546446174705350711120002385197972536808004518159515618118547769039577753661946578285008270982716543425473872996844908755536559730739611164598014730394906855700890482305111588503490833318866539040573289072810828823039219181978032916451252428882014109978648261835628570024686817800257600160352084981380475258226927426943697531376763486259944126838716181736089860233991901514594549205336547405733230224054856774980424803512175473722018486066524973448951370736621806752374002275302344423497063226364546534224212413487717998628335874864033847444072383777357885709030790165571114117236263012592287742345033210871899015526017871354850437364224410358737852401556279100406050385335083378658380716968065298110577898628837460093991323611426585863993747366968588694209218845780843728239548708451798499289675016666993843891865581954450861648655520799701982636362493800583997842935659467914388393856012530093215312918994643327983840565383283943534150871471720490489121351020603574854921885247668416570059676491982721661104331906054316747730516085385731853602520335386362785142375703733194666500399956958899983110134942365336524238861831841156028505731224459114422007290180738809406287678713030519048670817121349452081423070687080505078879376133746245348632492150314849860962935532894998193113636746508270248774779883951769290771993043351464894471481346875443801893032407860748828081333464607603234040831974611207634622724353085053186424340376246038399780247189466046236498658403424940877360692786554572840396484950077434282992849951815929588303461118046121891558673692075534193660303432231733530214554329347907988750181936881697641930889295558345376249321119426811352001214811082042205556804897992526339448546086914805154994701109474762235754865364632770716572673821164983646240744752228547017363306576235770879652906219490639058847496164273272363551731697272391512405328478612486350872529038044710065111048118280579333454031231823890299495065521307551526072354195699866554251935924119704559725378853570521248611635930407410327422671345179176005433488646342019973747706429146377448396732132171062323714100586608633319173681149448771553743350156469494543845253777880850962314453045739948479623433172405231646497142081302364465320924599209982018331760360533276392712855662274956033020649757029704535492043228252927855284829332522799584993950388877231024010573067625905083371544959352043802094184446401391427603961256949220973054246164194460469711060091023202337612759818998904444310308269391408241075764607072740701503341379834217401520591677571113897328505383805926710098175375703144655399525941415605152384735345346118913730455643698058560916060783302704198342200056816725306157620628812702503076192321169660168105484729067620023458957282584500342950629557753957107036193305551577160655254498330656526788836339671345994219671404186698856116897425341602097996959747674091903732461636470591640646631298012624713355126322936915153119062002869600199117961600746901038609636199082032944167635191683781968945501773244725810989961047578240072278886090858292283514067733630562693927770162208819946252414306645864558041240249640684862975874360459670519132985548748890623353194523103395248362028860273623473037759602910658853242473578572238450258742919159632771106122952996364514541988913024266170065021904564957756826235401202757815901481640649640121786782885916160047364593708530206901044083321583301524825194695539362256135720941590494048736172556355471872147752009556649042259074847666853755854316125677370410883149021984905932282873470951777141860305521879583208071929952500134430880539241369134934673123343731521252889078988736985932396005329485834110322284342678528010187482343824979598621168270919811460896174765273406954724368558327183554838367387834074421640702762135253151263937363714161376188378188151129154866541912435219385653699671281736873952501312488429853762825105314587892035715865764693813072813889444544924827325935211145481084942551850582754408276518039206250969386140051962323549667943238098620539146224733435476089697983886475751990800368700731631106646352330337817342274737234558779598355246235770143480239120763021359107310088684524685984274948806817110040441890847834541331019185866263029170453859586146323803934372708749590382684630376387892007766073648626096839183968183911031512107676589800183229171050190499161378093123937077495545383290727492920508897688105248506464066826192688858438367576767607910263636594655104663736709185786026203243271988184672701687293917801948484387016432397720708046138680085352942738455554631329129469991623532275666742659332371851169831037361451034232557370441956052443465796540500664853763202007812392591633580626452595531707892300168511290057823575794103737631904823708311811707434590738756662878194591701491503558899117824696748444784001581728812775781630008579265093268057388040489851695304636740670810813040487756312608226055429307716685336972200560591480446927989791037994399025317769324612571293121331228837968083709302966226385221915152579739539532183429019036418217687081588065878786753142325710719496776952130541150745173575779200438777814271935288437269612390329133442683266096675352883497502556389387185077307210718888480960202184833731846282104812657129915151813737218194944360265458921380648260260641265602226024682741249013436288843154763461799025654956794403462042486867650359661789262850323380292103810947445661750006514858544912637896581984266398210800731808530894854904409126548872665356180137457378397556667304662226805016537645908720604505453059597043969348953117563249032728789168327255311990867672629180390014542463135357009831211588293147743960974705331442018785013629252158788482952503383778313677482969878923892755644338200708530109052719037045250673896440753871669433218958117834737302235925122537557611543556422408801741823954898933871607360750809815154045762192614160627301332739292708577112368284226007286960413704665579730917926873404013035227293886876629620795343800492008025563509712216003424263526693160971101994732808616657662740585067429662315995182439883975527401546488812515896136834680260478626020798440856283583866344193469196824477238052563857210117139945605361395742000775596034336964957272588282001428676097022943530702693430947609164047297818138792773270604372243026437995445428516473595052918569805716665307930690206181863376359803581934116791254092525129790596707430096475318220507842038039970757935623693642667012860804267902309485764629983488062755024428113116886010511905181735040751595735752601667474950634140606926945219388535498448672934153600492269847660923748691993018944114073394372196407634032598040039688652213440323572615262381604069015419126462628441589682614743692661340201729482347000965480566711337325388357271352065251456293178161927158088304813019889233254886022290044527813184626329361724621688295035426979353314359297010525408295438510281878099795603002527489052716462781820248016704699012289566360763861522226205163255444650145765849490089800568099657154291854080946702528276778944823363034454879799236700903001496488991026668488224242204029687355485701230854527989576106833087405333521003197626732578138892937043707965354121879323240965324468669289470353239107031825362557218705821019004097514636857269775635820244062362453370585254942516190002058795078994795930700078642852784806308822763109683164160618361885052276245909588725683540465816645416435778473027997256431653667744577100210060645633542304891505160258872940680949139494113289384789268928780186191604991212722316380051011270163156755109589641750002299030337922049054119141041188120298436753532367414700864947604155586133077432427990043055876510149453438899986968650509729240966008395280648210422800054758730205132023937369204003498286007534087782490414692427328221875515641444873146170927186113231285756241911554565033404168867576578806433681691059399990171240524045151459282109223936496822775739505766253064641949525342963487667442906323259500330799265080377796000738700655264931056654339462859644645747847631394406803522172899506325239315271893747446157174348221798666946566799782235872433715395050453319001092664413651279583583943645714660413010143220217245734699732295776412288984285036955216372139605354047199116175408806498003029455779952444915941680473293352166091376996100019718635804388058851460964708967791705721554433067236800868098789781020570292586464678161324434339393142958999213518840517543380635550813843134623049967561518742751638213401751671752018798421150927678336202786871301249938238347573343102214101131127293703789308273809713990893806128158716808336692502937864706275616396673792682537082637439596376624814627376227151895238305461090159076804157946096094346520760710448138140844404410811516521465652492582976273431592629678596922282432089764611065409639615163239252675842799745577995121975206695821577400958606036415929878594955087292321311728055037491103428221695165500168735508971426542166347241149990630226028945854195927814585105092435920883894373348737050037244697780473639762032142952427120962410422536315327492609686585871680540291993540052762034313905172905944600476345343084531659225831007328443244569835458822525610331393979681544356462841393543502947423456790488703665898879297557636880519691309695662794374978549992096586052769210408222018351011273506465536445382241974524021679042312166784154848217834508938188845534234168976426448207244220708556946329622722848517778440753617439422286517313124765776941792940469177994511425021105091723020582333072495980288599672393976505198514983294882012334778581789450357428428531780742137572097544664415547532202321903180834194297706882033233049471091162115073330948310689830577126799459946143620411076112236293571302810840485118625747245402137291993373382512177320709098532250071592058089346795393463469379556553198580850163458091678259981881042508503666943862776675375338700906206043645459416242692841470062726107241298531948413863561181186687761968540282333876570747284441735046751875121930161782951104229720208980928646929054187344123306605105435964581116550988955518940735386567006330401674392926238247226131667784652882413765105424454802155525463028627255734715896882214996744035478682280955410853145099083657559124303608381565791375379388161554951146268495174411456482180909517600283701653769158685771699440937303374569225929483049214541803505832308824501576755525832610522132851298662083279460831328127264667626024053126219562174608186280436478663493065431656114520229283403868236916506637905169804004818106939995448455187096763216658972829276920288132393795870557213306349349368730125588137048977900085752812630611461041643448444241042374109320368911240339506951654604716719334745526741070619505680409857616483424813626126415647877835093094474115063879716311943980446301685703387677344307814530248851644624451346190764794853830413873987805910963399059802704809659905120926918495006830595730569750808774961776177435712580201021861405025091181777189425150344934627867600944128209111516704907026519149741150027567819128239067408416890350436807338935643356360315030072563177397194169695771710863914096855247006675645998843333950642142509317069961391322783621976563516831576883621852651832667037329596191895988309284534833135057148241185493660767051432807026495890367575043949306960272652264875211076423191660297464904458163513517072273805924419506201313199352700321034107511144426650840093124336385129250762537536103908814102684912066829444983321646138948970084048047357011748966055001349094501543433075637167909206851740703895909146418431501839678342888032100039689031718519796531810613906455545428558554212854431008464178101269510224215840604520852929288046199840714670207297370889552154455699133849772300709723970511382235488789740685386455828947267206490329776920055804673447415943312478342593438257036730311384004037121429898879723901243786689938681828119831321070754922858501843708083412783666414540363220571197134786475035979536257954946395332101300887219509284562649844132637144988963599402130090300306018656315856339331536966356280507784801694257202321419899357417882354566839230375859686044092173029440321846266052477985170222642214811023122114299803609519133423279461305205858585654054161966829650980190572726073676061911459749056763260605663079366254729239973949383278638542491181356786233051369098893135180163527738358095758162222638045448975431718938881053458264651534602596981398256722506975645497600204054172178482303422959098095516976307073527975577531708956810384522043169425419349022148349790891633878148846951790256484148639871570653550308723621144134062470219112428756123615969034235310208651671920934255225747101053661690532233926145164592339019224751756077075464638470258491625826809728767842979873751158036070085905981636603199332591595568856870004796987343671581080890277089469548975618635749022297743187554547789099676418945958343575021727740361029579289453082198742439807808691915176607474132621343766172185151140421643057230437570698310813763446553029594716379104874521151228065544707521573254952328912915673381942854012625118578055246900461968233193155689771572864519777290854902360241607963507015639274525661097964230908324764452747427184395415888953290889668543203008362325591429387449394789941598217747006641652087875873770111071125499645469996436946361839148351350121926781069443323700008081423183989643117265259609456433000878525565769347069711409107457169736465633480226819782493337219203096791546055969498670516054436962899989910641623208676074605497642092034277658627393132636249691805455917226504513906192462105100613154576827967604229051229313572447447212497389579530760767803590529279335476441606510673874316069119976091263766573517402138835091452061518960783749970245924307768206012785281618617673240861748591902579092729632320620851097514423297641614977494757442538050843871948027551497652289864276066253905908628857995292171525738227539462222084349942830325280766425112060249683835641500886525757679610886355482370814284535056619558541767127150045128150763762020292502058947214417044460052878378306356322228257441919013662283642656733055360130164343441748205824001402327777377226327065362818055057417617294508530930028132627842496413391283392908259027410651899999135458980192717099408086094668996748094002534083341810001374298424552993733654609855866110308423916388910726148891514109980614710111210693638315348681595849587497892956098255903832852911500937359227052107887115633390495275446883534125615033451215611536238219192349071846515734456979891104466835861409688859502818501976786737654305215611476491643885063828368426822159115610337129531907069156256864689982552315267509437483263703077453215777708479106747613240350748801181611221140091825673272696353825501692699112012047236149706057264115485783020208834381099148651175784222991015946761032750852234798192534630783514270713581350278881150929120564941999988667002595114997558542013856830692855771766953175374566624100806360249399651963014311557145782203556884190359991798870638678363054840783739126529076761851311441869235103142732905869697228255576863313981027789447910307873323036199188020416529512543779725586214265202767221512044432163941403895828459716410093156084565891256948371263817934025347271788934960320570792343562021981213942666139839337269169558348624018832336669617472824632751520814981227593837159308464492886765124937364114035233445170042168877032538893136463689305586086896512611010282908593577124665472770835468062896860944108031324019843344252272862142379504309875124352469594995852447970120011061666893593331131079806630393857334458341352102014743253707186268988533214100458512369897927489934512152470204211742093733849451387963615612678307948073194993494108426917525695654787627598666214948443719108745651557121754476877188417232410324860243353813365998504234096287673319081227487578624838971840928027150785387333093072438208354375844272779721543107105459491118845786649168735335340097575263186529181960014293125078210263653956676262441342035227912955909138725979654863669042347723905197180973873251824938588306247625119864324739663901016644359880570858505802444415098882387043334234191245638714837601146888171719202787167983313216508548886972977291317218349891067060895498136479188526303111452028283520691973296579166360164452758690281217141655372122109385803351574188136770447916791053254580759932496701003330395204201787575462388829458904727176934053912743622897457649671297006219584274154813025904165502718395679336192860789490325049425560105271458191773556885473336531315066840896856601706383640571588694091714492375935706878802310929661489164563708645409562116063225976887025193442220822668343403604771546686610847902126367124371805754931735474940337502884474445019620623640238432058258014944867889180253437632443902498671395018064012342739900900257742811136781642015988595466970268338212285733487036731085167945513285335101392391237100266069255726870460518214274518094646357477576093370856025014810691598251603241462819898265750062183486281992324991419691641442759719730958010538806476680806876982883637579376786107931583920266932228823732626009594532005079952010033070652181868172967829936502382809650414544746902167253336006739200079138129729332396631590010068560475308249131074670385296467051300139654329664770742476526865716697073226060719051008862751744829530693660797986608335146693653153427784520652355552865633894274187739931578620524593508044697017820047852587177345308903584936075609067757265057286750047103054431315413570962425263061062898003147387971056015194178810064643141290530141848051940068024797740461126525221459879353632440544717763359275991397923582281941507440923201888425096650255578530927622999734795107841918254018484556906947658314048568854665317786152640989652059760633750816286323402894571287341330516435583204015049235329423923719923129482138126028700054455154511351417374776385562131774215069461672475627813815425610618930107545270530814230757377148228241854225755652663499139247488468300195228697351908653550952697116100837778233767163362236732807056817881473677307643354717863339250579682671028105265929406960776848827981428070956879776291074614745313140045004870658563602028987420263821949173304995112786488585161043472053611627591286855303375290835222075273855148410614866031668012223495011740842024123911038555518040794299702600130644097687469487543754714183393182010352916213012639572825842869991249289559438780051790769287832810586359699328372310752808745169522809223732682466271759043368294422215757426533839386655892759701703470008928850710698497046697562561393122483280024365508034227797593716500541191914815673230343392999739201285549633018160670197229113205513280733287098022549231877218869785858565181702268560460163835561944820731963097656141881241731815937110872675059200398163039812877465002796846015891389657346858797066077221667819469607667627760813696141080329884205740432327181217791079295644004570623018968445312178403167023625138253669063703317453787523015746324518204336010236924505331743370457809733184483042042732523280560956133335317038424482916802470011226195806709937371947631727447702766031806648735266414740436255027570164723758733258077655531301835584317778798251878013168172738455239428003210600688995715645816280918224281240928778198325714666630183986677758727024255028169516294741509625173630219986710586921054058950010404873087955945792077741957274468224396832335579294108669936368073500141392026169415623229235326997096758384367762083206784494501164155155456765973605559774999425020283963967659780706216190716315843008006002827330962852425083494784639493028350989125755834993637354777435292296452507089758861158697861764322416132565620644313126699189841285568425800460144739399016702437077242458934270496130905189077372573326654974270826645377329570297121150083146075070500835006892643617477649852114036142357432107123957482316434937892933970531506565545889587553328767045071979628943063745811606302756004743410189267439377605588771119646713234240632612092124236244426889796248137695473125170810483409724548187026161621658927448329389282818859480684109237839212445528832865671521297797588564380399795634358706308159263866557848910368543780518136112815718963568976497688183620498577398321435860796298297374713608981796134327084756398693962225356489403461193995619709444119671736018707681479916198747692555529301892799267761010543424311273263586470131292327568803151809601316358065360604660801109416634087891374406207185890529000699837489099371781052679661694520794925943674004952912829960436384826067933298791472514927624628230209400081532256090059455807760774779137641324102570246138931833785812951064873361788515371128712475339164428821044155540597206764049176129807410507002873936094223755420479965917178347664788711478200052870414909675024419747077738122580223539231545791802779409155126697360211685941718641172196120655971373481117555756084307182842832951274777932599624604565432932796562969953312580695746634431803678113508216131016141863683902921041528477630266434807535991940081628665528387172620358291200489116394653209228049985648158189783698232755177676923030833920043192560726929363397577827520583425379244449082143460019176909905815794124761491032399174339987601727024676156952135686837398310199164025343169998685336017419829827812923320989745579720829706899510232311758153197861979098007703139455798783086746374807198105493030309892027946668615657232274227800820190001146543179663926925893213528524202204927912667378422259502676514417814143577127692599241293445537374645228618521290086029557150458149429855189321236486331256898503758266993784391849253612022620130484399537047495793344564530027775256694703075697165106733331826844304791376668666863740072772366502945480653546642459670588263709629019286681533750285317644460842127445441868707229136359925955892005745846239060904896389451704148408481732527815502900229226111553874143904204950759399145500604538496723397627973626268330175365076487272352368341265797441656992340040948828923978070123228389912226945826119026509941619718307206696511912965344476952574658732644389637840088533265015607079286252160050479477797284733608844557354737931688174984581020679733753320469563992560785188839824762873987203344014340391947864302090115950680480663476224623787722650733168758099504895570108094315523486457151210848773825927446233581829051333010872080044262995039744361018153083898487970032194721940293940145650415607210756241522477645961053958572831775314223192613130394827431290633621472538721259125370365871708106156401522754142227651709983993745724605596709408916006534512235727634480593695596854245238861636593684445270779422486758464754269956211048976572620385980560067699684131422853628538896876146152108459720630669597339317555880224494924033635366521123426455580724882865851867397797701842563561924823003230394834889006738427330206280125451503714607677479102230441846397560909286787947957282909023988416016352335129739651895234982186564310480394488837835882187218264332518660600167531769250085604673448615590135431066641531635490223466902545359723308363376913187644276254111076213613052592276857214266042664549711634287719162754813839770859631861748360506283228697362086441036280350252666640173358057378309385982685890834828658393048114437654633830035362242319748003221949795969573126857952510406224808350303717324528994930853710033077590403921914463949004163130212956243520047958978940671053466348484653950166275290785517377813339659165452897333251132617054418380513651540754858896349810670934705145414176296442483910592109168144185664020189898702151583185228853127085197453918320781663914666164896256473799337947149484265643882780408742483510860268891897253010293953281057507791824503456202999786603128904636919318507105068572321634841148311707673470432506329876389778111326973167074169103838961168835112972222748847502913671061917718825617168190149435104958851053248862061135931211964460544415493492205162496413245178555383362014529433853290354864773602579196315683405158710618972190980144057020957479918152346996756608659052660841028452237354161210122279004631775579340288020069167882906185030270196232912585553439857519246009622838535141030527166922973394992798185477066056378804512040405893641354454924664541650327170037921011892111049238187056517582989474426971722629540898529667677873165802262392833382315456693519255471866852232796849118067925094140422025143060400060575310313580627787452381921115221345423322407814111953300537255623574393327212232886351025569892491956778291414084124303190134328694884143645182429527029325607577224542213204210300574630274262087798316541778470658676493384031268146073978935118608328091811611362835381468869140265005087409807237683376073676702144569863807666675468088564998330018277719029801622817920717742443361583295559680382316796652868258504378377346524054761631087421104261203618930278650461639169086364255409044634652441629656962463547341160647717550903557325223819048933481141338403437903410076192832807370846848209480888019669611076840674334134922228025544676484312351343119626191505932738847793776438695909591417076665354419113453243554176960363408230641468699104014116489575798174297040403771253371779925767676071891586303342389376062109426877936614726366133310421608117766582214316313730196566098186895063617490459720931458102943586356765790999277680310830467807202543452969726491339073603232601748775199383298981560953509063290914436025221570370148994243476876602103278523996906931024950134823679687808499129402064560207910497989461487332504067231276404292213610846914244569869214244053220269774193119584365884993323736672260369289709143358508372197608611974312478728247353951795437432492454496634436058650149789120264183439817397545407672028356283223152357285611730957973581655602304831156040439244211194889536683346374247675001915796503018197782123092807854561631205614247798190062752499922806440190011235697397482126036047526621576910749190740404861856773274052916067043893421247738041167170919753768500954184490876690421709663777892488949919816639693110980785697652014393557305316970605345542441006671039571913898093186630008001389584084750117678001482987092194715760446724637659018419393786624434002623243980353754459489320012918722954571127152932559173705794443935830606399140343548028142176248455225549860627218864561855261461957054839035397470660505957727959880710928762195498007808529649102379303780431246109467921749726430781824752167611976432678827298429418883560420629438747602081111707178380553835286831459344389510841391184410982319977927399322808455944016360315831220381850694852457981612893363156870751618250814191663436021911229810477658634357825559004721043308685181922979295173628189512643114519409010583196954780394589397584918733097026148479756940569267543852639654778961439743081889203385194702759458834720771545370466801243675994291432252302072493713338765625075701247275642445703565172724090063784147572986359177243142373943933564776989325461196561441473273109214240906820355559994821397050448909495346573975801124453267563180989435645712770630916502622259934502847985369750875613783207826678420002924907801294552620269000924009103456278962374089660532888844881727726231101169078840117913769831778228320583200848498073297560935843191985136086071827555864141575957389483758093749327921592035789888203770500963644323076999306213190032232065341586977146725729339772507724887928766542659307919930524323660890713092905606825802881631604760222702688448922304038912541448625797418994561423021699993511100696329043574163361612951966008801066685952578734114743784058528802040225339760138259413029182631561351010995081684328947650696282773333132657979310696871057678288846738565742539980319310521222823598775948212524783692057102003097181934726258584481804546280982947825396266555790214159320267176792848240414804018419655586196764925220941790625801858652814509184727527550198950962884083991861709281994730758650678419799525720966692438423771682296192667115895244465981516407685205029549660953993247123100887736189576403257548976298146324973036763748399028393254185855848831028261237748834814117432729496838794822291534743117900463003956438790560261749704545046403681517019461729200036893688039406401815357411274511520264106437782066876105243434837909944846092994036285435597812105285543878510470534213656819725319777251817977764812163801436365151892758481835457912881304680053619502364436936258999675962229963477318686535414396416990672336091474751273237371194917224467772906387951112885398939970780784538244807321373827429617590168028320194664492643553377770578278149077863430947683225966831771317886097128299543118613563797773819929103673161812172233798249329225000767922433460405163413372439261830211190649355647681234842235322630591410207482984865809297158721247835389229015547817950067307173756715732814842242050208443398246698407092406866786476668794957016989833839440231825110802514259149602958839323975235148080785296879935349324746746613747944225003761476713291422664626770185428335717815320156297748999705860862918224675915121918091022744636111978347992267788224546510539979703206281982463482425271576220682768951690371215979567439839913887197998351712267190693685111372794080861409829229681030800147834687215438845157952205570575112007182400705286485267895972738567850540920133197438754054088508327592981859782853618525384441240897552351703921674773449765453958407488490579806717475298923541729901880865741608363377887694142012540597551918336154831106516081750388238856965873742935322016144446851335729900162149753114977513573091974283972522114958605363313313045033113466859440190003819875805543654182429487894359001169725011413259454091808898001497855777652316788083536709073970637387609187636801811001400172393756406214862660772993976345828047383308653888867539710860956054218861657202924036270894503513417342977948197183393458383441546017038828276946895168391450859909323630837578362641942763123777516669334673683363120705549666391596557648895515222211753952354018427760387098675965731353870508149867866569957334235087507996920753537796258484663665009460961206916202340003461153951463076330571742781738897283721419239761616863177980282161466460475980246631444883679170522305214148057954584246893483316607466801359339936898122172218186074774344738458946190519458347294533893266077991392025174783121439551660270968242533108665372626502435678158965462753063906355361774506148044288253578925506815740326071980215824225654061743195920149862259230153845316684126381518308807255583286462855754532739796190162613086344627348430259909612116169775408646651317661582731165775568312236061966552030935987981528829991398036948216561001219253263340115243672540250990760366987521782952984978550995177263800810805640502857012106858117907084226848136865267068740082971067486590639576432558803677571921405626371183708976978369164252857367058439822757746437379893419159118003521549151035853688006011254611405009042319872066650614025430718970286060282711536253355183626696214993650789113205646951468493384996137833033431304323316516130738156300140548552064580943929488306214524470908605547700402302522942219090283635076462149311132871765547991052519684341538862737054913608441513774584995695804439177655001919444192831841963092877462340046309110451746541581995370415709753517466519001923134761821028025505370963685519990683189063384566641704651672997120812359400806033858090314835089743855789455523070098871833893701063540392902516135111005306010011859899788062788232387047650380780236904831457171657726520757957056596825506219171428014308101491539564024345023019315453642197486642376118025469671129554197748354736363450641765207360256002146690289386345436297415630721058879531758852600897628582599974209422779941850893556612731094623734172728762088335045678844338454432947405516753276471603270756834008296287524553107089717567383376669513049636252365308354990216360906171864692112855585758214255875273494614065350107228348988187756405844975687845832281105336286095635158762702581308263586053935932099875167770670041491106358387630890571936482425838697796761538484528153188101213587547770674821047056762976139551665798685983066465372417754520899529604788681220536980870266211419503996374221933129771001031400128054052479959406272631659963646549797247361361851517334554242256720374322049177357396237146754148361488262471548328843514382286858170110277593743220948852225818694936572799878700411865711840121716809389085687879943254906998027435501619721233999183928723494752002245253687050463520606975614788179117304975811374895634051654590606494795332327079127819303876241753071373799596716055374828132731951121623498100860855235892088479123507167957662009663560028316518190858503116352343605666449976589661627869536854145861336879317749971343989658850887146144824123139180043439137857299598465658050060861343081510752732696620204167192584559742722486835852260149519923692796168365533065392903741200436139264525930452286339280638897943352962613474084073102357109297795409656892196178565269755742184285733612333275613976770224442260823083551369621319202821123481902667695226655707598362017268115444070516642644094513166618754734905647899336574781467420781140154587267963087495750546687502088014132120100030908294562521575796597724977034771338158317340092519376336360597297260280405762231952504431258713493897840465043305126578606278670503774544426498255536932798211379138258747662053001566463826271676776882854004054688683954910527647768431988069981011488697592781319118479572475082597563499717635015597426960626789689111386746323996525024734878607631558711811079824801187968685169055056344475525757793165209160855599154794743114568422350371710252880874824878392037392581419236984661088165036130492748918183839867344055852157449249913951753422474433938333912216803519455867547906934396461310204135186023925895986875545590029302408548041157407269401750080638042451645160241401092679820935654324155734302928759368823883682563329101176594751416977078453062301363344131555014262697444508830385845465296962299498443202021379006770905499665638355491559374090234332707694038044972765397466243629317792580777095358725169522493219926485093427506597562956885070665152208385816884328753141620865671706143447437567556481476823607421680540523748246212465950789155900751987143314503879882927771730919289738018734525888889442910590836948506371874367984732725645568714644730702767318701071608903217864923859934856852503547127678251940814448791487827749438648016365248947775777036513673540928762581228207065485917986844574529952176490663981072498432551811788434056556398477842354412978357724869867838298949551857895067027068292701375843758430425868490427122798781035776452356683174264776448812626856611216430901051002661805054936855376604392219611981204109253435223406532499355470987090933987651213725703486694605428159931597680022041783230677717817418190904474414114518054008188766234451759447136819562236589947161837183228021806093896815137592401173855454743122254000550411225142941207601017840516788943269022185183980189918721715453544422064572819869050875905859385943881281344908260350927697089815892469391891011253236485649343399300299618204022645119545094604852862834624145235865825170781878374157952446574832179262896629821640795445524919590042693452547120749992652571703342540550476584375601398842394951211026824593652813941064325054624176223133315038867561657022465157266057498163380934916761804463872088306869870347579253803960000666236768609043854451721346864540641077562296469820112975832806195734493764409971600851799141788900417904743038620096857783318661284642367960766774355690697865011697220037847253545585510099542510400140655097132480050468431659436974070421877863718564412854909906617071091638913774831274405028515588651340869241002905731087327734203116156271162836751543526643484437319782000535743311994155637060716562413336969318616779278350970562468618010575553450410777884419142848390997758331007603769429014568251950970067458756400057705255256596681672763482677749876300005575012351184584808463949469189291180024613199499455596667241294581221759617794918946613983076280439238517911300206600618505211711756474967821002757633827830204072617422734551215848603942746158525501340598134174383338829330955296332926390599037274065672611418852296375736488442290120354861989652153408398511501071985850527876858177418584217249769554498271165931144566139842136137746921931248749835520118553913737633411797975214155972276337461587833214406784225347017519904958724990121948975551502206131234739522604089395977221973190101151782652941824802527760271490022813431036059959645579521499189293995008443944418791124598294486261870477394209670240178211695532355437378640715566640238712921196848954003851815392808200632840613507850830600932829284659783316928107934170618126677704375822769316742470386299655817143850964027069776600384670411370720839196360823944646259762041308620196217858971311051129703225446118413221990442644066949461923988298027184305127659173121695933783980614320847089060095788820130761962486879042545525482374710271421640517010391768296706119170224039517658651644972627305713239448272601489187751980941589143202514934076570547113690694759716919195772560687809802296270692454376674357492595536094170045351865738388891270481573853490286802819681329486035133826760032044380000310847035439074104922543485352261651953800587719695910664395397843580545655884870057350044691297824940796412759175191818719185291464001884253666028129710467085900728549609785899397520488814731220511677042030996255774793115011748848878379116277128191409477755999143317315686703062831351248622938237153227162120583444612972193119862791321971326832437730582380744667438225043917358099089947302632980892174935168401596858219201707810276071461205779463317923725034091378235788489949395640092551346935576896464358539357918189149341147640107887921123468679184007718437693238744791164709289247144734308404396371951684085467154279637271507787443192130114722352254940171186517396902263620256130104036201807903753152874680573113328048298040625850306569456324401480201156397728322292640039616243506217024437554108767936039445685026567028621939237976360035681948684555859022646884898521870996888300865057214320692110729661102041615299567474230701610275882576866012713493532941562788247776223731543176439778044543750562933719388441360537953991340260658564438868560502180539289119904260435871377004399604818931334842411391808927219350894541947655964323720268301722364023862016045350383161435824468335628567196462360642365006523389498572349935895199442835707569105118159532258470080351329446143597719180442692912087802901196128723216730224627420397830980860040682981731894684513623392496336697582849172206865661404050972209077240159218531513900809520416572725526832370351569639558128870371850508829252945458915675232014616114657809997244975617205054490040512302115156471814128267996499785928608129323090925335473989404374950228417705303069641820513311598051493532249733503036325805283317630938993563033037182063369014150631122513311505230690663934952787864873990924953012331691756689306324488113864579830309761323555643873165028873801125609379718796810604023712681728130590822333508584414662673004751989681785214554579020668241665706340061729849289970996798038989578672375679907918649458177101306107090543432432749980266234383042168948834286908828071381711633022459502317193895354317151406696257405620462061921939881649961467579586688576201575180473005116075517392109149674508774416285494895151938226502237166373663075601343234168280768913814121090827756140058525149715016902242285788457721806360952909196149408623464075499223036019170957314478172841340125382551045490494811049115570597833934095534955769149265758460253880762812009208796135110633919072680096023136638639767603245580075193813129497143941428298092970392203571674804464484803847177413118474106891251396994223316276914934537430782680626944405982081977418807119823786941501270886463916092400268295154295052797728867996589427950675328178466458965618782240881634722745203475280766451470057694422880030345665239017906978935604210361175827320778299077387888470727172659659574381148894640587179288342440573710066353984780918258453386773852825438266964840711515107555355331390059867950858658600677714350913881478800111339381815526670730466952293523826783751889055442741829971492963028914077627736773286526730447341809287257738582719377958873803603192387868369979075051460294108802879983475712779292833424369935178638319345305361866704317503670835793639438177509561210547023988431140397971377106500238433380291565207770266350175802854021312786611690860426144044623091725415207310447055323021101765001059243162154834870668450050621830354265868750783902088822108423186226464772381046067400514045153147412981790844964990219457487238213374786285719053092951194213474666306077307602153572768330247839553636077642007589180177724399620067357464653894996953614342333854639479620240260327618306130071195842591589787624293883980859260283308856344146467956676809531828390048461471277323282706609049333573916561448551675875704424073456613158098939597970593457329834879560711424905714465156447379079953278585119760153401526132673423881948119045606732668440758141429201616037966189594622183038249825612835854760366631518203169793959406886421490547160712797414285238803875963974102124792503533120263953921473111519581030336454869751409811677284371114070840318951288902842145386605279694228647022611585002968594764514327300301701440874413991279625009859985315681769354077827943991933608492855402040522524394414033078111946452344935406043213819276875941961831106193393628194563178699681281070603346296666735830821693392878219290084401286640057639312858820471978070652582705127353694293932327284801033297450239175254474594076624721884497789410464782509860817359647357861676406715600269125261169769996424765667231602581693154983101776903755613223368220121976387420683999975187346500635252882895417408312969554020614645750840916233219537827157857610433807643434888859834480890480269493796887689396236917858031545543910296005234665058485755055991893705119641178716533976931110417106362857240096127289336784681325168931835406932918893769823683482855483130831869351062086163254177615172705526497933635230865509739281572758147310259930440484178918604269695880075078596630717013261370741051705108252424385846556210355896656791716121552362541873979286974516987307129098705370037379253304935790312515393633561395048091589067784514462919274484874830570892304205089085081809390049830855109381867261559731028399466548051097804089906628919396362939787722705623165175589420022836178966421233788628841407683383564314649611784252800504575355827357885959299474186385234752508100693358566106445265069328471682198263155874048849201996391376651179578442175907033111986948843121175512220377756123955407521381252826490562686017801246545274432401553205616258302268396174557707643507891817227679609378969214402922982900344501155784495229650847877531464011355182862025124833198200842988869819703800929535966524960662587488943779954891950890327938422901513730859303737301336319620099648733689300548489037025789034601105581071350492644538201872205214224043893124079384078885919944834301571219207614021439826784833726329411238303255281759481779271959812415888466441235844277953024767072347940341422497046780484422235588658489091322622217097884685195590417056128943837377749341875683019187730067074906593288426766081623858956060360021519805974408770659277436483296529496558709946567949388773849710585622428172253914084850308026056672713215660186274305201898207956923931909841141215644527159000272843002877524434619952620576937531100669256456850777703427280445602182128494054546077077961465968814091036087975896290281959067170423986122668122439080875111902993142071514478076352402211253728622905113761871658276348684089472570775930258719218589682438194202575289344111780511747513738664945052809210862843113285920418490527248836033328861346608262676680152823153074281707356556860910899564418043417914769891401809593483593259112438728177065276857671898850507305421025717874157771026194709093430511328384647712860127803183039941709254393458536818479471288487162973341315757681959441507335295205351188076836432123540282740466763163554639720418070008277209146350212922589439149576659841143002637543561667489264969469489301417019736270926173810812248399963949707772263881723332154641752782118225341943055035589891078402466960313804170239531909103457320959149950477420607568036820280235447399093741843103072488327661583849316715244879001273669231034909918433449173710912878290013503040104514202693941626742797342099891507821855878716401478323874751787419386571237201586173674287109468126078757007546700985877921284320379282712175653936292172693772004029246599793972010400965386901123543004990016544333753160355302156157368618925818778990553991488290169894370982453608809542975610622278823606577818848829560908689017666670189762272757708109825838071388217448247524732148278828514832096696570367212960287521681091370133565933673034370271363355806102534607837721192589712095057666964113027966322851121734910971562661356434829233513231215366509745729234595289786022563659460053531475916809746793246544685876092752386542632114424774124014616922368993837658741736363643269398420158194379384412419631428818022433082718100254723833527331212728662352181986559933693811744753452887726824780637436611457772562120390359248613948165436787811445810938068632743584257770653884037924742269581961694507954540523513877562377255001276640291113556927092692585355183565462951818737943513437651019725778028337833730026177814340632626620946632769216442069907071944241130571613789571437801217726661609451340298418250666144815296399206610096466298013369491795116049663448450466807454833235686501405698293915877443652305203791623697001006382163494640998875630295021818586160743163815681516079430426928517186898897962421607982090624997082136429036445324397228047115754687254001203982286444645854014751996722582086227467153949112381515591115715419447371499441075685838883473593476171099192695695192144898435369857923085840510180791836035766355408616983221042052980672516495651006602812067198102687981276785865763296879160191660435724559878146525376557866898494727748097579676897780796356817043080579691315963910972899352468914818749336613370245822354549067641832627226995659547829227847725068938114852232459226257558640311795755009024274559553475938691910369840614454531460994505216557495411559430177703289550262355055584961521657200961362186542792936399923991752186699903519025021951240125266689111317664420748159996910928068032809949580855057489495302425903580650579541419670195040382036076597121472151462691455263478380566216412167381213759260808415717169574804458982308154995423247760266849062028095598679208784204308049340312362176380371223063717763181046694592806783373550123976745236435985731110054875316093620360163960558372151366846333147540246822814257824398871163714261065338229820104690371200968477822673345517989654836625258677003683658845215440149031674874006847358662489760605427222908553701049197778944230119797173414633405509509485006070744358021914933698491644597916478111269393350849988184632632769309819346877157548574659312666535383139152322210384856145846346005622915120881649515734422648472892965126170600748326938796628954627344425690917942741764962010081710289090964144600689123596824700136331288282618914582870753796628761215346617503726647893659702891700183618852237719735991618923615285098077085019936196052921561412400848647373442468984767830475984777145797904091458932596139185368935389559142595510579302177970917063979820444330025887180502231260575211713270282393227788235419918772400201450583944245717135844861055551391224317810244483106297893231559585745367507726463509138092242607865024355897696124064608247724837530308431683091306671471218855977685941248032225763314431161997177447295672150559236744005819313241068218684302782255109593018297508526142886573423406439828783452680994064854970928530610769741703060672881473196413230718312725541300742087107634178776806915654254644116998849864090593439342390278608867779732771866664485859629682003768899673039673537199242673167619491841739633591867132472480859633623831145443580847526320275538735792155851018106213732593679914998214225704695082162369484793898955113183442771593783191178299083684118659190033033845666355116777497906330802970141754513341886626890363838337289018131906926469064051980512730625044442474830533150743004263423119977186272222135959144120538945087018484905775394721420689295404344540894168572580575478241981633870774327649177314894074313351662983935994557083358081713312225784656658628467999951084747132644398691551448897315870746473311094221874307992585880639403294625152903198106921217013096434996601574698059103249709268026858173675672083464411934724414728275310659426311686858066592656746377318943086329503118249754657738589600474068890846493984310459234531203944190072222589460825820049340455346884161032050304044731329748160435128922719459637020783294713060681245015353738504061343356811883788846829107444838239350878093469769460414775485778451046130469290188585741687514810406345390143301271092443611340699178354350004757438224540721205188524075099046380143598340276399452765407507425267957345941534552992077707450124272999300612167531038519092311492898689179671110453060390964526281770043366099568504998138329126749511771587354466070112942925755009990674817407186505077335189690310643870727898805123700768562546699496397335765689864733811675991402390469878240480001167634685439526980982525376321085751997814108809212027040665299071891960249109731417571404119510335855377698010297307831853002413294020467219191425059634181923383842909500167997611150029321963173207803818492542662230036540478696014193084121627329536225471683452463751029961080315820082756329152924793807787966780791135615132046528328450415541948620884602398502613170989216547622145216674047820262306156259400555073699255512206260208541275927089645721982797732371853232075660634246543994759426712667326393616283134707393987794331505071706749219334841009000631299887689279749637536688963746360652705314835206444067691100157837167130370476768213454625838226378237237159184844065736002064955916056773841224332796918451766379610725913343443347606846491747594780376617430100445352773348567096209088811850126447146839050996543275673132322602871859893760619645782843796608031614512129923002900071948456019416099981302308251150806731978473967867642974193960106608223737948124106429608881338819195983594853672511958402134851828668110489339929244854566412920282874509956436391477354044988425328931565492228688992309790509517280613201989715687908609173109877119064295927377448652496187543234217189696331931508751261376470593229841138965130146730179053331863870110983492687616420152830032696966426786973664068590351802978230363469052436642579840877107608103408850125593321330114576924747802707634588218858564633727129602480756955116179617424816105917771552675097324096268501479616152234842918871077833035862482301443584940219183541172165782760709624142830404476782301334079069281598272570070079693878813177595062563710606491704308024404530429525915990825661709573326206831497705597201601565809517183465678986183916467499905862710794952148964008990452303227701028425757779672583613910921939404257333950387986322642298711222988204908266930209525937955930093271959740953981787740283257343586309205561000173645733549103521505034577770345803761113620420464726041368819635583273959011120183806983680987712965456496858334665543359533919328973419755344798168229969984364849683688152442773139303775415198363717475390514507063582173031289184585688585238001784572732124499097870897342696603725905141822922158120992952435799620255244890872132446325264771916976545342106663676774040998382463172938059678116656810962789330623583419949619344069258272268835221520958224521927480958018340422286152317016787676520773080027448847975085061400492096533526169396125793938983971021635796159215352608145464632243208787455328527528256600645305077039441883295386409476376818908545197288830682524778916453539267061002524036890591749240459076895672943499533795602378546691030465363627255403251167003414068662123950017897829031310560976577271026990281699602802508501998208753856086961224735545871905016129999915973823248469249317614173657698350365960647715140901729496932655186124484922709358589771129563737824625000766406158340907301029788040279040689853427654581868083842026066528811112581186828304389896103778996351235848181396720434480113732812866100407203640206720616329947356782250153302067029262966707345883829598591640902909265193333370386272606464796145268610897097098393711172445660504258442245272976007882496437707049801800870651640767233900077242930946209926872022375997406385642549623850751132409650782424210074668619103495837371070546881558053615325604794662541484580522126389341702996065739158694114782050301220782063328700711197073912185694395098628425930331879719014774730723132229251766066402430743878677559196576597068132391025640165730997177443380244374956508340809313891946977027387689927516109777375012211363723171557256823404552254864982234479661296845101381445986595188961005606646428460710372903438209004529398787468070322845541377593152812085151546216666566078163807137245500517316284594325590263828911532072632528042197717075348427392793717636483307725919437709392892138120004369727964491286523283559598790469623187274030824539210570572725782558159063996137107725172166721002309756502913231815181323656411653217123765503472777837268406706750291069989462740397990554266257197960193603082693934644699100730483515339638205338583732589140454940131196214812009473900279370518501806227758114480391769882350555084134832953091597768460143603928117243945463318640154565490027323194963644980860145629712957797034253316501882115416193971306187291982062856150938691337548394053011613468495180383780374184200954168379249040293170213360299957599898910814553719142640399156735239009865337994996182093881060621981681357126813708488900499002124881326129322576274246294611116341186318869515163805273641579717438198726878953029000159491215179735926644329429929166917054387076501070377504818812086505760063811885213287889933397424595742474159174892354813820647952831956795526265827846895046567391630833985376846861417832674263390340614336402565030608225546658785833596655540147607413654908958004274910994749339029002501523204443487709349828795264690055294243260914503040026866206236054772545248358748767419585002838615976367903491238839395416570977028545642939175156765479388143344923414046039228424442464526818136047065666216333916007719075594492182295095606328333885238776526331601627997515636511297613173563363187349683354496272755173230129795059855254288105924979969541597347800155736978578357958828942700948382737463725063406464102702788625796187044560223452795269394041069387560882486397290900896452367789065522425884290067141193138263827015614066816848778997928697974178299255716029337541874338889751431442849233287954075203387044792811191695204407819601338144957219960311755019239028478391427423309936763432529059872313198240121320755838580630658753862876046531807569157249882279915113218359195272385381409322517074243573650920372878126969111730623381707251616477384004483938495245345154492550548827151103177280625213138849360712811733914825517286861856178885316691636018130593613651021344153853388632210122524695958812614225501723697422777197618087058764419865887896432908655577281039897257838281477020917110751659806552529500467045584469043683387385729808251351811226739982818533886432055565453760967617629959413417366400689753773468017082898517289547544831364618425801529878974392283183222453086999719168043913989736041291167021070148909530551617474245295423086479411503014989616148372377857625991482200821225807317275788165727391510256723913362701112976850355125281915081245765253177306071759706400648215446514138023607258506703692445839139765848287851350993912188854818147236365911594280560191944116835929040951856247339485408082554950441248508241931136702392426934324516441538579527822338229988707575894992976056594219155426026577950597275060674181654701431821673551893109089021989861746064470319289810711722021160976590692924873516672215405391924549373262437294931549642496271094833220305972239504745779599577717653222573016102951405493724453606228245226276464880126842816410754787406919923879512208517455234013908889595480357079896334885161887721042450917529176142825624048092814386919616711108949757440884288582823501679815435485212122435824430450797976875678398112754006120742096095389890767917623795558391003095295575792779013143715163436680478764729694514022929375149200574154702399045308604639117703718038450196400475527942078956090482105154082914671426684163568499841509330980701042666114180524784710380100937679280356322358665881642520710797912446543309602902019532063060269111443642997813976818086254646771477177587023964119496359720913192085139848335799740019425923606886338222903986617236157188026420950607374347282733050680733519925235153904332286401461924314431274017173349141163325895141677971042736687341806246032872174338390670396395646614207486293964230716314032491746775364648536070672001542370995300096146074121257518822425726101819943775086364368421731137479202566219066861096389448409422597419924294623518570124464843975884417877350307183526948625768107946920524838512291126344970806029710123361561261803501333340664741844404312514813465227088932288904196722223909977812121741386235797586117898582493519214175429751280790740343093023354377263328890476328156869911929085484796675944015426278697152200076235035561625058885632783418723154056631428546931365015601386761378345490250085248628094952487279857771307472290555084486057389618920855359202957325519298784021509679252801949076501959426071961399951392774743446384679613869178001621762598071333541887870660652479825345575980214621604024390082634759834475727834264202400407386981589900652992962355003555528849765438107035917385000315113956807555446231666338674565919920911604794960470104411773331693578266237849935140344552777711435547982887901901716741760910315883708815615975504098954764645915879527205759709277424830112676367465842299183588570694155280792211025627549727804180064747820742258634865547210131569112045739016733946709625040603822699464994240510517824254705709705690040552553771789777743035920950255305562559061194342391893198333018468298537569582344295790856328434821898906406312560379867584122896412535345440357784680365052301872739350332956098486426727612917011487738334279872420762666858021981342677880106563262715955389456791506054578755116468599750899994231461117917694480469319616094006327460348169964622083476581726916084543796311508280633321360335778721949640213277285056247640043959326740132007155957708815372322491851558281194850205383797293755125996088314073680185359284491615685369154016691844446252346983620610856553033750847428684301679465207495193575260156856055152682301492238908954796123419191221152317521427951181482676505611771796591662512831812657824066996202466018130371308403533215650288952146400116982710588949442553411834023691495110661277435931698557363577350459860504737333893493537011275418838021442650681651359676947688805626531104187058517688034730684297746102264420354685152428625020030838715433070895700045096504332942321202810252394149598876649510273929841422628405397319506778080907533866265961923095322546793019745406725432859768607780290666820623583242764822232952761651729418727484250378047895941204398955109327093674559595207150675300773336043657063011023526399642705179058486517009027657483466070568179237226207995692805446917532319253944047150875397443978730524924543726872303884014104393197115986657838586848256923988331677568343645701053294326264080378649775640106354330566389724407606070572682012041332431720916518798788662390815234311237196347059914524778674818287915050134171802706960496405838325953776283310141305820703442549837042316402980618730536551761488860326972009838150818575133592169512366247425132665300602363714726155855780819107905888748253187412988954640380593319234046814839773356360292354764309406590896198922220069859017031095706519757076600256200570144983106325865521288503474322786834736759596636810207612374984158376650262266132879885619602240778243774255637450143090425048180727863716454885328958771584743259598280983635546023728452472893502054079218908409897883860433902458319725635457881202764010141980198267910168406592205362817720733858607355314546285920113675585003353039951044550835334774544383411199078552667210882459145446807268181877215463755909947262719301648115275839361222284513103338044395279274965318793020801849800088367037395487967959498628440119426576082530418965727410740438169218741164918606417223164648601042745739251048627126385505222494953274122636126006960879885148740081629881937996990262551148073167392058619782356053259695115033855038333151319417121878231698134403298375060103677536666028823911760540323886718028742129367446543050925140602697827562527356821723121630472696631551533280054291857864649188076542675775242137218033813311774435322620742348690902611808570281913075468469400846349915642586320722212813633562866438198230168582591622795179257180464398656288782255406743443563775843190291999496602099541017112355892028060023551621068848249799465011370568715850362862375732673489867946762892134248755537818704556850044949813784116706508113984895656067587687226956883295997087190332469284583271204817204695954288553811685360203469958583448465035841883904509436149553534338769199604116735193558044950792358966932901475240469704622319109985106387392843803079438169447232069396251612577822435317072116488437381738871288066936645311473276218243539259458826196371598201045120818568881131421678932643582644496518416989539756627783810717050594582408510802106632431048148882516492359611913557765472603729731580913226119164472135542627753700062230358313337994264567099846195271348609050572747787224703361449240746919248721594970478325609119126131815927084399146163003450530905341868911016087449057281588403491597393297702927306060999709792384496010776165792507000090017806501943879184628979564333173073098282074541549892337637767555248269672843796388659936851530605457565991483121995972529684469051301611287766085284669304455053277886940882834192533835189482776109090064740434268906209670788023951313895184805829875994941329012407384234566043613938300256056959739917618896589205319318610198543950921008108664368704538442069675750294596183960602294047986446020170421241913081524839275164040061709100045953193310571340696707695268894112895530920280180113129643587535439757826167098167738332654100347109548881528741434780928424447414279597741096351078853914052574198464284195907433314013571329405583257030348534077752922367276507540190348584025435736401131161022247629315183915232734151221447637625227291281299868023589247809327679282615462809214931357700229263108731518513775652247288128777473339902824344559577067381816589742174756189781323830639431773480210528535128287672357073811930699226611355439914918847876401747555341705715388436484195581490495496070789735568853212220328732050583353966659047885127840719231489213038242567843733774041130432424241435456281395477416544349670824526315653438591227802025904743334664652620403344800116025600584823316225973180066588707110185064546267655303390163033799570254832535119557218425025170776459392681894829112803786573024242990716413321793794076552188010204307090425073191125123576262371193100059004252214564317133702568495161922966613444369022184915519785985738875262416362278807790477277678719098753593005961229289018033813356868849726214342814232316427337059319394242542268623685946480421010337085182862918691875565899935237322338694541191757017331853922655931619642968808281329125778405307145000153751859507858847844797988242771547487603886729085181951231465634203338113390591487953228206242018030703882888305370428191463607382295766052427232280997364464314140428170805387283637416116305696193858223869550493093285013186704924931171107278368372965404910140599075072931747203757352976962520719254394572420635063046202552610578808463058092210807062545791752136014591626717523612491443280409156891864986626580989824365092171098429738921948281116033666641248437144165090005476747792146495097869879288085001606018618219457737255766647658074289822876919671994866664049141367820551962925482143809813101608202534316382672106711481356981117857734330325364056557723787450541693430161801038689100149755467431850685638207711558992944097935361723463627621676285273277211967046669622122599660228955581094997996329234506219747188179120417629838736077683720558225638704258491117039801993325755298567297755109805927908456402005916160409135655191834478288057035666886532007281076468028071293983286653509149502468714091768577679958156380675477274260863415631368393408245427676257529901581451336921836127796701114252865849822552826632409234174076128501501286794073327895763069967569628744366954859646163865785341079318972557309319068192794173025937592073613877638698732313344431882023990758274957678971595809661771084832157573644562024663226956259002232729184814216264947243631803239597818926288157857447351804332922308373612120360661843304214515724064418805729385405301632373209213881808259371439046853472887076204796497526983208680265088502520831895436165943453094718483201366822963150120070656450476537260860687631171055075918624431125193834095229914951129531499631548764074139570772592748360015078204096006423539463310838278834085646909739722630997749123322651500601392355922498342847452439059242778469991129525828082409441244215884256436652061221330802326932520607359994566912448291102916607517550776658796664638747286126870724989883527756725882031486201410847142503429346114517874197246691323082776124865062019221694997671977840007940131287735819908859239224408590664747989812111599640563042453370601178345642299076960173451110559819819488340098061125145373685357022870103622395828132071984849181802075476573756561763151866571013958270963776658757416827602074124433354221004784309822397478697892030796034943312976881089955227022812576497428162906255878874927415820048976343401043415678246636169904194176314933659001942117752301117172918182840481458038799238240589103491470080039663155067786817165790910795018770202296655689139637794514163860180767452975152665387405405776564277819993674433357199218769408731679954636969892535366741294958263239427811204001556739210716401200155657007546405301047191762186718441843382579763071156949156716031046914176464389828767157696677814217996024209727714783480144036461856328263268847604479919859687429006766187630270333911122327328344689416842446363786788971706741388339097172090805595475185805840036746675425755346239141043132531959830384814009496279790498255765296168385503371348547691112003377999634004032440123993984442686240737977766967331758195920653579042755329357047150799935624057382098913329123360275142988504517982397899764983047480722897438034995252332238903081971760795050151470376030991873839206914724220696453476942960655407458949911012814762334510466423972431164814927164229683776285901470679491322041720350858472832108391592882365205989498916693511063271525231286452261615070987511013256741101793413191039493113368740785784027755102124698162901769463788837499613591144465976842521743022491461365546536740798670217393072769061502341103728788853957412925265496391444757607039952426457053582587697164408148099436908317361665285961483303132463140959268891432476794942593416310738249910239834326432180555369664190563020533125944443527412224288112966303224746217754737857564924077482369108942980105361749258662591869852095544071676056342102851943375069752195535289463409926183346312039590759884779127935894774682067969793611630155130186503321315778233730969403295426850260905414433879630097079591754549112852620816856201388204796305866944068534700372787637129982922404759635430938905999931950724233531059446433242106773363477232597754720612381811692528457150764102140943560539056662373237397659336072842209853639057369358247594035821244401697122553877007093262561390891944394847393370776867484954427532175236200658583563671153378803732306034736219307181128516717399908251103228834243082960205117614480070108565005499417606387884108979066829668543340304674323013032694070399967843715118163517530945424566044443839706318411872753217288180876471034487325633506760014865333982081777700114170446210762372450934014317814999273876923854924038286854157920681951065341093040650405969202459077565073498992116535627466322634919789010565040312541741331782531342916676471440857512570648404567942328816445584401687499863591501829334451914656521928158117648025402518995964073977741312102181341934035886352309193445488646250960782001079420343987193792160564758516873094348782724213888580258406657629844667096563864884095179861066477749738342945831000556432560551500967572720419499181481448091361882664206246860598001891492950698777367996812302088897805106628982369597642763752326414649827820480204192555375962477887519127042614654412402670306682947420266843125689439450204043307047430209090705484204195850798173336284761577448207896513196735623718047498857180357592713761854693928996112533900558282546952261477122108070526147744991573337306007652633330620326407625001208367927183252672996853902798693034044489146684443456396008176603558645484196555837340004111624250202596267701453572249871404343053852016268159839719318396068854210505773292968358591633431979598233978483061800314131818271525711052965592471475522898808235261984838164321211338687270930716655882304731005113340825385566546224018233737380289637440172777181200268214137751817347935489667922977786746163114422389490825103692408674906801885023919518938006693117707041898492505792912862019714713438231816451134383866067987524913297175051339520456987966187199885393899879528177237464300915529675648674567686957753369115429510002032515895917023369358402962455661582668249180368736505498949031476798623420832060460237210926121586433769027588490388424467966198943599005627468019279664054148533809659320110820421054584478237426825920454224365945218918375489604203843584282238057912898673033178796652708627830654671615800075054346425582950971798859066374644171497695247035540264478038035530625397316745639845147609386661700188316177485465391291352574008188797622134165229625182242801448702357734609074112871184383294992427275646251629235175846519687309922456074718389381974181320064840904293594206895213574001316457726632000677560083536551194965854356401084342713895052182135889051481986209996214762062970869493154508246406756137838027398027385608302639766469550163684417088023458747205123284302504037904775252254314083359113023731290228327428263659979853536922478323215457145694451169107869876277777464545357142090521704345616125864325485808680572357039032724535705271811579946147943726559620889764153793931157341408288932493228961774122853803846699010260817814137261364885774388819971537480879436182535526213782122811170119075184081166307231562812910615186647457193255218008509413754331398945152307945259743155592697232740108890852992244862653378351412593089079584861729140991880894237230466446998460682366111335282375820733869874637133482402850589720693743549634890359888383811448652571132147889673087337273819130245813640444543717617777455609428349367127030758551553375043568135813548407948086343232961186647054344347573636691815383337340114166993528910511568594883619241363763410917655480683047844620851885408253554728866967709589751642129882140707474766175166244195224465794195515336034083971768300962266359126753046897251056658729167439034145607425744972799338449055362480223138871709261190531221556420342930539700215237751397270411828439188591703947256090047040514814074009031416371338299967398684807018990765613213247378233143585403636326567989937942621754889059467339811059308984632445067492802176435197722512114658389225746652206150230678560950656653225398867758808275165567406618720010137652016757077726674093504394224276014422098770016833435552499405221860687953179867534563742552179954075207016595498618794561038287284551339781613463904923679308918807732577496426318118741133264685923741761381016923936479009572656056750827674329492226452160452367840943205977513776589228776142137165750094737498642881092320803792065322632693392160050399207953252130650398831878155266604663628047281093909581706739018801390559670502563200527532440881423246845992839945584769275851771574029821193230061008754578751023671468743780989483957506170348600844416619555128513428762699569375043243716987512419143462296125812556447946835776021980139579639434208480871756227664963819982471260599917920753633922391770079607511430454415173434675008707154015757866952028434778930309562333339593796285360800024785853004618605683283968423911751877664922182780210933175263878064738210567575356493466890678131429213702022508995797836850358512523072732632160717573795738343886014103383929580657247201211357194251285245298927497557896107016325263103489078019156443696138406378921350985191736954109038808966495939142567359207116802973264284531924555239850131713278443065054959920554448626698293926424159389460143555050436999199631597593194125467173469559843600524894838079272080512615892649707227974439212118013296387163039826163564481628444221366523838652285341694124822582680427259170659572997459373520142773082755320444730744854774877166399482456515909161460360888870176767503560502678765016352909165212467963386969350416473932419848475364465669217795505496797446240199247363259365838772458159785466803571705599432074295531162238440014254355351253031586855015171363480098031565154187952933573005481954202588417092080220386688631852463056232822006403107524621221740771861663670118442120412729290175809247737690234894911147284625861755423820409083064417928370570353538287267446385983927636884897612172495903755033381535079639369934566656065996415265123692969988736472015466763610474121582911710920649403727796472869799129239132917057236553514343886571154209279085540959798350040588368957445750012077954953592463170948370517315459009892851326014891930943290282686965325704744799755257086981937335390977297213614669290323594904240432775122970311665997907544423407217514835680357236887773207255107762019409311448670715702534759199864735595449961478575405214628605119136915593280367401465847698779619663376263346737859088998817301307816151708293549839429313694905825277646244820739056845919633582669276530225110170508911227434355374158412438662797903213245277389621568599704923801585373175427298072057401667094595207218703011316100018598928219980793057721603254231180765756445607371052818964467531334414521585677500062189291066036122467163463492860349451351252747656794500207995688959548532314001247335944099931071968653891599674762272992507286214069437672670838488621253405653133772290537119862542913606439831344390149524523775982467469585871728937150912283085724877103680810361928533352917759254519687295366795324991243484652144809921096008931969566369351839347089616405137535741235318554805296007572927929693434441343542273882432539928515282907724455823143990196235499130920237584662176970713040588639602230495413914906510168416831986204958426477157647361136725993687691992646121686715165477757089900055624742057920891645943222469704106910014740195234484707254467307685840013296323308590597113676706618887636976356842566005472589953267599555462856644150193046008394741367559391385956319854202628067217423396817381662809009010921729959249551000017184490894204467888769907668022686195570366694006423767056941872636841696530505048991573207750598969427327048873199588357830702017371123743930817425210837759115590064923878170769664598954955621660748851351819820280858616849921956512547885001818469892539767174419508115932891270447452050979960344988987658310270093193866015329481160951903474899366270933005045040307339129003358556830878858509456641491996010838590980116651080256736123214534191712158143125728589310217125607135165139927800466102953482939317472958668336557042272156838850404228458499850145741955329073373088018101408404320525300417856971161920287246038997117298572836086378818717963112605020048019904589981399201937172671840992482165658994863250607738181954747638333161412194894433126465079218405887551108727062067204607676879771176806810236447625512756693133403100239698451275825728976134681477210922754041422401468741568069927321883844675305477728286089819966053651339095991763651535294799866608295797194039986257465570692484965183414512115618274159933848410626273022280434524020290921947811055220878894250942419215423112466019292836675612032400332818319066116313968920750548732908676406202776237247835345632731318784131576166611885921286923626236634365708124530368904656157391109543970717253229478303172917556216052559257186656903504325200354594866705137736187542702147815015623594597334583041626182087649576280660620691900522261558994012261297676835087520090357915830626889574689540563743363722025108629196508024296721016759333386423798407876210858803443748821423451673357297323118545024776693785171318184880020119808014576603408575160859894773618333228995816136807712679430244685850140820916343529664966615149021167429604557162753251819926750885838379906990494904840693421157949475158288864012087957701201171755120645170477347819449167863671118400882887412494852329118979061743533140254524856922539134081476141893043644750454237147803799879365700459459838681032040604773007838317380009334793271984753309282399698104114504926075463211608149904800180804235267230283340469654681700495109768479553765319700763128825307117211283904206835927682056348128934245897408838775026201754438018252256252961320098569386373763871560190506910289167970000825599590821708902493119865837515749547670410072075053325607497010871530047620910448777564558904587429904892829741409480446197904871700108004009787266197147620449178914618599917466052592795854412041182851905472570588598205787390642828918091920863152918492234717104063952143472314901169432060765528763941714893610720154208310760036953041806714596015176650576143348946627550685399816214186562661860071610336899493460806684205726421670869533914984349872914190873789319549825122501230590879482836111548754037785747506979265868592501134379860088828431812160920252382265574471517930693767279594682099437598716239020085532363513106501899237482600892614524208772870108645130322468569342905989251755150470557212197634809205940017591885833774800135999280624610090613210729665225934895067396547477108298984379178079793264987543141779622313443905322400278040829669225760638593829443705435449025937444140482899624661024210202108040296869044341627757505222401102567618634528384394387056118907407235260838310233777653021335586994508512204359298287632478886597932059416544056419368629410141929126673047245823738104884886041519280367535066279122970576786756133839070914175209130925793619182041177798640176234814823461371577120532383149973196953940653922591732489010068379440044001643639678838221262571264107158383928382740797325079142006766785934241608805590158239538763061921637417844474632748562685252615375552611003059733823861203373483670341126649834088847157319990199430521586955756926142468610126750040375591470562846405073070339006508874512728748368421286873103135204131109945272640539076351665457710367353952700655677517431813522647030930292871940706259840809411817406984125887531207546170414004669879623253012350220844897434608163049071977472179433594523695472538839728380230312274098979130491648256161223972059367494536079727491989014910358493152028550221855033804779171376321506952532077750566123219036431780868643339431050116032018885307158050886269299224820164468660378877429545415235567928612551590751125655981093555890835729605682082720796575737880230408132861044855538917817533681625498867794188416319577540861575975027438350619075889980264576649996730236660802762133261980586122338079190288026009004367523174768153729760607065471085598576088655919042184835298117583743008125867434472915299756102403124685692221253030185945400369785403341880258972420010175210513545475849795032810766421438553567710599151595995294383985324615563018723648573483182493803499543559334631693565500027681481282084567388537464864668871680792704949930923969053057443216078677282518363276253214107711868403217374925182531250548294213670056566899391468797714854812319526507331682706790431816335916460476015427275906173981021012039171422660074858398336833031658915900627141606321398688087306039531603976126006448694607074516421769040842201877634846057104341674932410582618739339200456312904760083370257564288512211700187704922278856286605305968393554223399656322473149430617431753988202111838566839014282238151491817492574531588288824657595373481684484816613408975048121483840145068600779357020079099263635195300343084600372040071612286133048727776615440797887637632448505979659670618488746409223264410944883092297217145494459909473191270711673183410592907505007658876036857251577124012986904840263340516608257027291151358651828674794286772636214070352595530001320942760360450073561131080645091514574549312382902149594136225698792004866610752230046265974464141409376485490200754544726778678858338625846211748474403447942012635384568810061464124473328715920211604531330753824454389582422169550740820042414205490607492548623962412237408026632143517382902414469158911973787121769895908788146944336351257360837576075035162485988400432666890207012392892000722575003304993876568872871776681154463635219632547575380469693763993430919661065114913374117910750253583733948048639248250782474112404181893921440411798195608760592721980079522104850913520138549982105437322280245319907783964624094009712486849924570080326898186760498679122692088717721877374260504947757251513358187967604957560353757690547315395966600153157346925832442872460675054679124312244967478170432732533142686855111035723017423491875035079022165725000835602407047191754626310867464141551535359650310866114925863318971191697050193626490100484279885915945472457934891138448690117920338371721853276991551471834894645561508490392329998058346517949122419917470889175875178219661519913592039727300822440872354961563353887105246588947700928417048007208658207590712082221224279872289765069802134717165987515336960816030251563766003426676610576536619925328017162768923016850719740799797769294274442210847133755661178941570222691906475162600646162097822541168453128509914103701671302543393320355446522914151207823683918514261794491090203391208604150085518765687704857174968024052962151792481356448945607170277624699973704543810990555674616482086770855269543250809110240312858575138557283641367108700919763090474349937447240832430796946444839529770399573812707635341681071540933340248515958273801912153436544174556586180464560442756846958993611583284798752174676167930515184442341298948360298314081455705708663478616707085445083890531093906955712256950849256778827636853936884507492383489027993662084791478204484387729901053124542279149657519238168639326061523990891103568970464041173187707509520150004322763697284300168144639264924522869579467196089576871154863951988518818704157659606474384246590673795832963127584074398610414400806866458549688992545651735721010109089060503892175359781184847977695292943320307965472137554831451617364570503743639614762419598544717632254724736446222868827775985601575032379421473241436468730409418512629786830459240324476490494818413453799149061694040687641632799990510300672430758499428187491939721189774127210287780585162874366763160070443946015536710472752592518381675502751275554564274486502198657341619409547440894233618079386923401100581424872470138282272161830661306932027316956015378182230485198647589684647153477417122261943299640663228730200222467509224858654316609869884363971052491313323688554520884713234342540987665885110175386865221940816292699467339992991297667935964042415389014445063986692644072453196515991307524151938763971360078788749848509948720062800452060508538250852029337904968136708306431435235019578165362677401304169816083450353501930996615725692861877140135130264813534108991479284858704259334881066171427796028778338767260607874004441313629316310465346056291557857320574834463256440331771347168440971427390005256805048455040487750775456590706750366454938733113671373349157651828154224211482747155692899327517970559640941029252037362356250361794896989192433219810573624937626217515570018054972016521526332691952535698902826246499465873041016156139411206032954907145497062693171101835023335289749362977652638321839808734819669388762621223297850450609631674600942121342241733401980590766802477885075669210259745472395792439561231823324797893938864005131438957172595922588173290430155888036069248310647350767227631597379563462484591597491731640573094829837550954332260205532047177056512543687446987344818012783818241487621918682692141048971462072229400724708133847364277135053848824765527412267852499521030685340377973367702274927854808226613430442187319093562539630620485612399607803026246554978151313982148164495363647972113569576035066799706933102436554005031849555760766602944493407814115908606267025641712878960007681984123017173219777999973012670981119251783882448695313741364970919899323738678773651148262656670944991919095878844181631987981495071755451388652247688494524073436493911260072762383039139392219036565943833148986257554333113971489317247689684985853444380236757693391995718631808065973591366583578577214809568741082813956081872903974860438865164249526087966824101831723650210294537918612672843159860860070475228321377595136743330436412886135929325870489223130445988608696872979744033265344042844770756419940923167779588168556927062521048413302250115661240636081363317094759277307989629981617121416487357856791775460002021831500084122669869801679717091950928944647993819329757644908461804208638623268540592184839911301037604816299473477898091843884377890989438175403494194679421776482403405273975049733157396364689614434266986016114244457269556238147715807385626067209770494681806308402501014140221912760317644261676293905956376461715612194779157373153161079276883332572642895354180507421963584456767222713549209195619558281644563265627296090783506106954097615348141689940689791925787530526353299704560798128380083554511044630310407836865475124967445093790192152485781092428080516451795643850210994567888123541038576947717916012200299574049767627499583876560293320567877436060587013159136876462207995040981601252897453586548197984795395954674952106752318154593713339794574934930603900198438722768107046147216421146514027019851441306271443638761208547119649323291051083881329778195749901950887494123320961385668579379161386940380233058341589595743011632176671302136177344663704913949993705792066757983112687100829788607117736706427471235625203439153601405349167185606848270659262625961927024910129893695564771147188771334489063406220582935734676659360696562907760279624656640077756739391149767870408467453462655717226446992484802746773852752305180285063363671576347058984736358125863419401538826361801555547813016042218572545136534064090081047948440496230566811149695742462398017602018981941041035871536376237858943916304975479153604531661374980227976540831435119119478732976032322021699630794088328972325319486512401770809950112699616934890809810238559670031817227644547175641232100938374402379805105584301708049816968386400025781486624709368075212604756048144205130906646663792294831288448400411119228458654390311989923406224879098270831617671835271831583334304387282261780754470794804913788850557270024945235967032656777360172580448345893545000592632551562052713740667472183195011970720491288171904289834195010298735086071585105400768594005790088601771234943197909261551447281516348785854745156787112250105744150960776625843516515900364987088847241041131435614843989752093378721144578921673151631661593697741410340078562288794694879778676445316128651662952885188787918544009765505677738311577807506604876661712678443148463900265262078577657225331806209787075507769392025483924424428516078562401212386176119650339860313172697982518580012084292040184549756172970394290710133006735846799648680094448035518999012030785602932217651050251774953609149700000172061832451510276380852015125521947039141073642847504214543077907520847070074168337907089063406177957990531739971546868386780103970755748034068729562305904905983938477921123099069720021181349335960626262801449144037344507493038069075855239570042499584775606956902012705441078534178459098004401097774398843106135863544722552680868661248960000517578423943101531633656256038029387186093913702609202911110519171383971638558194945124967642651529919880137507112951856385249530367420490304603394984167223511977061795914228294086205208310086594148468599642509567621921765754120321731842937474778259865458786506447728187146454186223997583920838381947879327333658314697055974038307279772391722993108548266763867627539724294138592349485608888503835144084699813041532728590882949713765216894391838261516998528821439033454248940683088805775944210936058145675351453144558011769526223839866908033797436447482428308734691392237172096838748956470486204538369077935323679103951018463791406296324170713239759068430208380490855342367233258995648231812555685826979306182374943832911397752560682430979735975201681050150177059405692027930762338341141579315568724483838516609196264056936673036170375113285861817718180081292797203016519917422126465189120549284886417131401795199918197912957842109397312067080946503039972825883458614379535327275561327699273330576017303760259993484588434805015989876293508644548562653258775874238949963687733838344039395381359080551836389342960246166864806319455496498088959515931618022554727790944861793852582987437646839247541975159597515063938143693411886930193512605131711171166252373474877224449389407371922439147716399825089241098257191896004888499312073830873737408792954266402371035908866591132767399572162612416080576110486573830791079037148524056413672442054205088602309391829883073216830467094273259987980078202721594723646924214328733130956243475240651037615431131394492553004656110327723335554945899123645161777778897885848493349641234121696615344203503214883545033716145646801007312994896882144415945448481214050180635605959012983516910642771519245162430765999902788778884993920045687710755081653073617027242165135934948106060329339038907785716531473300019834641660197360751301365789795691490751678630051442150675158907562091675712253211402238533930946205699176038942286918580698337593467906312250112041644181117444124729223330344246805980469569324212187308805987940615784524382643642506695755443727201159859982332487283341660680588469980716807032400446505273675350627536614718828139668749963231942380100213904056162285832491550976689782077291046541330306195021045249206076878425929961917837654088089024640220807949832578989508677606739610898842082154220946836479177008923954613849454705211232430116583032196345699701921985548933842388443533113602740874819468721403834536992197360460789545594391202853126124354967804494365894629715639828492646590394059516555536640951641831440648491976215846386618586175196838279794207582006823981060312045029921977642972745829222972411916183810034986430571880180623604601139989403792373612425564065252983609855535748189233733212501862354142310619172760834199449623314596263636981149358906254416286400024610549627681656954944757416528248893879697000945282354877808941898024191864421289953668462316714970680609317282564838806650542189538413706167468175087949524436807530992036968468396456171841449099379257054680339114112047371715419010301269178497423884633987045349707841634461763265247300387817760756987485571956427665262967670071565537377091229901621757231746863855070746294472959933386307471209761895021346223243863379352450090069516227314689665644489632281249004103592427741372388849299440559930350482034694802897861763003295059515968332960261130360440234925100419777073355851556460189101700459261413419605381797519804683954646620272211765094080365393511577666815989118959758692304807526398150150549496245077904146841046896362420205473662977564062925035088638878748240375318009379778760529926590568663266218150087640108638233663228282940371344864090702699288366644940497596575572840587885309280610928599312701419560967665155097721750832169388112204601362661201264664658996277698673623550028155145815928928917690894659080780777033964219530680087392613983422889285515975956965925360234591748333504407216191757704724727604252676685264485477107108585808934591413243653678705879324803446987757706178380087478287288113113363121611783335780310753522457056923774823367869090140680150899842180702053863889893186078590359750368418484271530238513634794579970477626459186416654428611785818483922799770664328077337142973516104966457801331304680308644074369590179685295548353937091367689086135625576257356702061036076911251189694839120796036522258857962473630824023720976727222732909544370588123204836179467537464956039889115445370439763064779976012453255492075166242238937870079485134818092280476680815778989992988048034468989073914475086119853383324009208230508803614982944900139372628674617744834251917322339954658479681414564719824399413548585677595580785138195422148858323104539796139399207304372890826166785108984597966964748535351989608296587566095431176889925119243879644053682172165708238620576145425706460771604678936497021715692922578372152363962582320119886570645472533708962388643153089005451998504988099185950221559169840948032795634263678027320903613898354216908957359884309106686423500558339456341112788226910080736423766468104792410063119719517477360973652640462798631877710611237176539763719705958992521852768915200222754741838231462491004605141176236017285014236021097284008917571297812312230474221218268945526207804407399874762889356054330207316227932984036355811752470146236933111023431371979310909090150396994470438915840287864359901762230330091570006370041234920327278281357486082635912428589186157874000451322697640608590820760713830160735863432241528179679710791683330899642377031052645768715810459793590207236443524265156895118644154532689500612170947710946616540510491584779308089823444492168549895982822820750845216341959162490196678049663677074130764982397530220824708850471171191701484507362353678973174709971541495702955117976492596381957351828038014574723743010139519157693486940409837013442186006456451820638785009454728331909519132654626884123370232768299976371840703630299868300669413155097005063191811939747652822749934753603097984329089499441266049745708094068890579367698294761243473682877029992332082180790369580061707429741601045645561663783707124351452978484796757744989256949939945783229172693620272651574285993708156905722130235897343973959684463785399297477038251557719974129164101632238915859870308587608407274118805853404081794539819421221842999910949462192710140546815219726720352776525106033266717932036589733677954048329758176328006747207174254270216980599456726081548736109355516299671435191844660954092505204018266079452476416667542478960818327654167206058542763677816966394313406021117511295518759574947691118713264576592809720471648530416982371431335594592710837510299935236333665286071871014883511085079777884814910558002684456823045434220105970934439357269612576072061870154928418774162172530412407578091386131963481647219227102383178817320608534338969846752995289011400130812224350575961139772028907366532367148326428994206763530410638418119473676379350478514712653746068979506607877571209385677768259641606826687677961325194785897827087729567994570640041718380210902147331170095940340759388224201052179981435418911321072529667489815847266568445048414544247560673185097252935025536072559784212796229858747405317913087784415615787812083452498282533167964742438626429065308437854361060534583310156958947921445619744957101466315251813388206167114631158918297738890483709016474806146965907994190200316436289124718570986962853461851076214267764522791810010150687086637737121861881908840148513751760534036189640874471137089915204066182412699689808859917936426713434655706803228349590845845796839630936038692791530479692225845906814138330249593359417792499664985472713718612088053775355122608784009236451819601301619317800156394873151220097408665879382506478590815403115140239278681177744542732730594665019015083568961462084578762571965991420601087603653678759945765993089084311097294750919272804200817109523063653274492586325742322667805126680880264713316760199245404471108230401108540423624750588971117494818866345611112947465114111787588938639886844077233432264494391361886905933305520906424704368890306956819697553295582529862832070309761951339739659983407320147305813574883643487301449185870759245475426887786895921507484432043983383244267143922861436398461096297514745975608245671510305372989554062368639301684999379474713668728924493245606404300504114472892591052782688214160004665046666019168103431918346790168757040540245426542704660997915759399481467349731599809908416987341293186848391273290396574321343062585095937571972574529962972031800241731920797575986579635497634251092789614449700111678103784670899025227174718855752342570430398171799274923039833976354922468058796594798740883428179516051608508194262295029815130393768948286001388866516958964924692197015828109120671769996758444604569465106272255481915360287041160418069373354938900961114011298992819478627877133340611266034562079510624463991743043891036398704477482075419072235709705411349732228128276264796042910756251968334292996800565177465568902071283688751769662131318054992167850553804605718199822121918421550136734818522978445145205905773189681309041670617451071579666788744381247363764278978679751828253083818206646428571682548590943325176008247569571245928789463430810308387012597740649732842431889055194530100658840274680181534260475426150798000633733510538283539531496756431670589686413152888943515203824092643125486649841020814036957677442740698869294492698624705090689363136069250729839220073166701238065753613271181379736347772482499032296389479116914387676100165968628104625329412326237618962950402037596626886758607531713037190540112083817836272742509195250632794910242446298342793426082030603734261584503684425424407716884338489706322872299003265262570518489165061892051124559015395289726132154522698376795048926385604375285318573862324312438861475634155278100792627187330028482220236378247998834487102316142733874542659439190679691316832089219609775212428922432106873228467634108846001356498945350658078364527632900570865505903141540215463033381848824307644292239161298059702959260069550802020450386966227415456057462258158309586079803107307416233511591720588081326762247809926352624310929120070079800070645239374774336265662212712369872394010964764701225176517390352572856077557552479254815514226573774747209013084881776054367442426639283825074465933982004761152863474823813552409544807367770196676175104723757334697854994332539159441831960414994450876177763368980127296494632558842519027849360792579158280260964498068294656807969646251168490536541050764643460826207590811706855799719488415627876773126003358444313195359364190987045426480214295709669517834903040665823180678471948036892802476295443685401867888170524292645404414973927074958956822386562821685340277859602461457401878109254677766239714874796997893170366338788340851349082205303087810155695626862468076957552241801446444631178667197750795534363952219014349190756690075412002316679528642354708671740929638217644385555341015844764637014543428579643808600224300172411476113572745747122537442683726696710154414708905639175849028035781749384264536376438871280901919803904036808504193531987115610362052798260656279182668260994069212338481741661272530190858106034917095347673263110479943303804587587217856893667345058729201471505939788988216068576051024766289904103295480318343645617264221136826822385609694412185957500680494978626384400330669930067529630835399472270011289926666030379377076869091123647157015055403418343239012936288833371965362204332068627623981874949692974986573422868048341379007712581744927224661227822133289402054488519396299586465469025857834926018136368109033332475192001833229983407573843094206403620071421852349587910235240008002424596507144794834997419052563112049103323368594320534926251315253291128287741642530798105282090371445341349656402452882695986592969334002270458111933504134315970656964084915554735437678013520153306377518405737565804191773716815222498902588002911399887255254204290614191409317793072132220353524112233205046139680862165962956841234431418592493060948784862145135847574184488031846209035421816860217504064048985521007681820170452210844932777283319278593503873204580294715086254660588592872143223106706431584256983805237295530081468520664711826551094675890703682428697577672302644079498394212375257659269717166891455745800522506600632940567154827459290957590095412110523066016345479879370331289681645850021224931514331067861533005334669253300702648242474684737500668209174859403204973013494142471502386535372990312356649314457497739498439424152931262715677814345676546112846667583910039151285179425479588751377530223213872642721850369732868617961730077628143805330320670896461138458304152871505641190558286466400435766781994957845388772815284773039476841001363529530072962773467341788778013152128944136634755864374348506166778126956830511325461868574053284186030258975042370424712380266937161312444148634443688438185447598283537376561632892712069847131670105112872870379472334087749842339034099296805043312410491287024543457218829925182648129050476333536398290655181802639750241156393121184434235838706698280109307079838473617705988635330264352735581544675270127480277267670086824201382119696223990085261111066933352958560293691196463163564785472996271490764531553975188303712894863761301398603558322785321079617177595794055498813019853176480363974437100158805315431846579803457749372438194290923799412804354039661942738322833533520073680464500977614858318918827702624207270448430242879142730252481571315665626074186237568577740620441856048681458425800682871103533585924184648815686177213986153653646877999254720451989773043503276832933161838385109689091305420007583035818712466102206755111919208358214405259924759913106896363999590477605862326937612905235467894484239730196582245328817444560941830288914930848664827152353138211056628357435176516832681527229330134835981157813379768174124776760468936774870411532575558731409552560806342920654315439862871131010899763095452711409295418574561544257422054358977504868722521626390769730053523739780111049205712450640401980986882393131561881898100139785979083749308942617347139376509859674716095260791307220101580531867982153926168528539692231836769702448677543795089511263251557707586639874567863680548262258070400023112036974856115971783412404233347271105985208233778989284246888617310370301617199376713601681418430794258658211416150168241627240873468234729264469455465230672607623307547866669068633995196300817366759272000490044471147659947876784886948386798562493570445991659255837036590506873493573691809490600986416574675988923175442709092671164177174056475469327285515561347608003484057346663694361193632547300794119175342556504673803751115384057777807835616897331387407373587593919786671957451085268888970376266038847986260237227095574412973808608578428672183849477492155515121607372476292392612939697153792752003878016939575029693281048036865288983971898293197486211055926829417672293038879497144855560836881543851784790367198215629579631152251044451995446112028438904961292826564600745732521894879223212577005841107476490157258678496396523474276543817534089600060581126345407888441665671000124859983109422683820004064859055984789072503542795478497335711819037073289657286717591885436443530998516559231310193238364629417766301232035276942408380277742731807825255579583094100982261423957615884274452537805600222852322685996930573811250844450599039511510107062165606847702848918609378387175540304779549237563689894231379313630722413237866736434518343880189687805597910806389017457418466697802639337654966400772207872727837681791804069715072569946109540245211243291607861218218268619313246568557291090448147005447422483325935858727939980833330904588379162075212315137306488223974361824734892872942779007890423358937629320422079612238551087576928501500418688207582608626261090520443232236699551324483147450038842749384337565954878928604034007372952611643027992696132933095541045184536832366737278117688414619802848569864079639959451274624311969996437881156718493371623532661047615820597403074144525618169590191196894301848083193551526402073835213189312025578960079994840520558355863607707597915403228326919927441210534474584309502903583524406451195770288512039233811710330228700295273622676206590002940053179275054040675790383178332798155847134515724580747024384726492056514692761728581439640510620091954503953739527493211264072870368637978621098284984180483282922264199173243991989850081677565724594724443630082416958596487690668168735153984094208076897432354393729933406933033264594643805755921342595379846333513883368377648794726557235027906336975223079026223605771248441304995957973995633300598153884238908360736673440723114156648965192913155751954429113725531846167979047673140731460093559795127845050818653933112081781172243076633436270924688743018065629211494051320114006606196868202990768628399164825408856342576596340979328742236898595587577263244965765186043521149847353807962908984883303550782275673588866913865592190577714760388828429603347595343396044322586780137566100196044136068068106903566428615376972914704261969326517413921732359812632686508778502360119114482774243096827145842320247260542942590744899087437013036168126342072791155256735167487506959915401501630187352580719662287750609484066849782611426918671360173361412431499034341285555178949886616845578155713014111336657109590448072765085343287090428201027219341708368266853994820020757115500086398511554683956993571772783287424964416567720243490305276069605458004228875624760133332370627753769995736844894846628912229464287953816023771542300769064047613129413395533046853352846446395178420688192429924399509367284224554886763031266595473994884041399063710755224487837872352734127105144729959257672364047801693184588768014280210849500530749364281109100095913830925543488401413819617684514841607137319876896010263333989559685811134144361998884253129132151498510042491728032838382886352543260839727927682290784183127592511464683242314738437477882915356023355939237228986718728907232543555861267992343358641246043041677217529633876890237943761912886014912075127847085646401825141293362747376633606947622370674116264403931835706461802253453383475685513113787751173142317503121129535678954676982059684919011458042898698098395698536933435064293831733598228561576460985395545777456416540648966275597817446116046310972385602289503943654688731447221332946051621887782398795038647050127965774773570843886640613247657446057026408082089044956280868360111733824135975094569885230463437884254090448865534114367546317996353896968240634659427926431190090887991948293000159888863719484754050303799934694872925984563779699929339695315141183952749896730916386894848023646267117558570292480784764384144807916156074031741684665474559098453474302372780181884891100330174859451304928769231893177511641362092837454327984373487477111453243346070483695665852651458817029937891365704414984714069385981866153569082509029091931362624421020049883206633703341856738499886327924842711855698294219737781531866446362294577379989237775073526962994400963028731920456167835024168297068716060086967555927493208170015051120449273921687285098397700672333257469050218993732645543485120522713803608745166993504094734799830740901469085299159664823539111150056007927038551916808839960109797634567599920823583924379038239205146316138803468215452362340000937341995411010944835736604126702808518169078153920864177957694876350295456691709007007579987563443643681397976492019474589077009621938011867781067969307317286482294266342380211519846941429532512035144724561325786673516880447280169050595820342976453998195297558724725743780273085697282741121652764768654193237411130786737726180049948980960615449310770614180987534891863122379427276985545868415302409067698305325808574056486971489740441003283303394381569775927901760744525439028287766103483758683693896300976271104642257633255329008193192733531099349214722738813952052742432269538835728144781649699919976408045366945386091046016646901590169772102608852282192148166799510148112275040956232528484691136542637265380895165330953742237467151342909920317165045279002606707980752042701679311741796143722618821077017865226290641044324296908886422820678271636735501332732755873656305818311419240826108360876829047441404482367560736032082105736689566970815537428589267068932517712754315758968557837704929194295575191445627570609850392231157264219164706274812763504583441462458741835538080144623005707576635266045497888809100799150382641649999351221434998845945224420350159752538309899250214073807703780308292741819001797629159954775140872229673878119816923395187404384391013029804683856111860579564084139254491966062833596481137852449550386131196000052013992446239963571952081904845775773474056412194616820398740447437114052341726830499350980339419541745556472007110515219628537667552962970351933907486498461170109793811956000575540038276508114332539596176838831002562742924568144113626221083043634449854886694362726291479048298235402118193116416346382698688294309899083351079874191068206120873383353912069724027566788446727543924907582549657797143178114634311024796800567564543713427883490818120026491173710429265958959511784583690852036106541728167413010541183838394409724291039208980222867590171651699042915345433187391647681553843886519536514347211298537832599027183204030397793068730269163955020127788686118116649450872526876802710487481449037365492410930744552436004010331722420781606870326475572447288778698952124472042555486668211866843642286298587007710275505110198778445758925413304896185543654356766342656105241379644118748220095792319914977974090873219841168266005699715638738419955770009157345389799647246375558294523827785974210407961998249548624395328730083665140789945466119583408202256931967010314228549630796349534708818989570639316963810177754047754602409850066638669862412581752588382411887803719311781842249281386657190334381299472786113277859690409613686052033901641019413577087639437064407733977245526058915116781735790392682169273348361964413390965806270326102222692956379470215979961376477682259476018299928071583946944713955194198252595944910895031450570805893779630855625460125719214472940870542182937535537054455099418402966685937070592193114950439760479644339290967265654475486041295544377400893586363461453964596966090437848093913942325578319187127171918548679001290234242383638002271171322457932382071240071372930122887519878811272485166704559825471412828648369384064674909527571215149559913880931128516444540427926599458524033800599692866310950896536284027820594871527891605701493202243169885593995572010739435257654724024148563910791839070464540110350008244155076885070335614231598083948488182218603444799808051250371708498083333825605212991094241197116965812749903543295548682166488164781846395239350080807096899515504057154908665219809847691331688233610901281001782804873474654137635091098577466011382088403199921736746728060778205342851946166477079259852981183546598583309596821640793917666336032074595709365352943436576525915934912853338008083710447916177877108416349787355597925057123479997029429215153768236358422431647868941195900750317214135571358386003387761551656278466796407977806251766349690773826092232345420256217668642950321280381228791082957362742006531011311625695625851905983559390781940231807346355926068920028188277868814841483280920070253294306813068327836005152537720937329014797779634251644562582236714087663170587071415984749904347121209246666084764757228144608326597370917901449322644571799394288057515187839975891413283012150004983877973525662936995910501210138094231880069860043760827346570024653746044093864943910003585540116209374727765670964197809300918124834832974045205615648478494610286069490462097403309056024985324262564145957130627235122124181049948958181451509393161346912670358358763333547398085984569190002953977299991057571000997347101120404142375254214653099170362081696484093639415319014099755805198214125940826239218262317729278134557054331238254832325470245182109676047033207248184419116626984592816773300715024802894192697851076975163253944085077041302816888068885614080520947134549127528876537375008610926091683753234200651146941499200447702354512832126808101587978058054584645219022692176904383978159379574240855041184406463554507330324156678091070068090911161781414353297529658956181838899105766023757201313300810079950383182898848134565866609984410602388544524555588168922261575229639904609246717151076277969382195430803977555479372196510034323826799290887622902397421973784919496499931062595697475646123150592958802915051872518969096297715995301428293855720518151811926387579674573176833947283383402829385870442407858831875402127617585276333296691676893127471415431772443511995962904209439198004787766954617142002593162491905658159587547073842215191529251744840515852209028373992572688351150098197949569489109175173884527802896465260523155416154758077617148518831715906893243755970567501675691989525170231169413580758521411490008742414492278152127702976203177077112822386471669466903723761888274730909794455480588701795852229393721442004564307094945427614236884772651672840086272289114514113181995654020602952354969676785205677065280798035709140238744493409967002763351528023570579525858990163677688769448274638138770397162121403419440214894576581100568334733726580193436437996687861216912900219299313478609730869650539993435695829067845501051311658453040962149037746463711902796986499212989828636985223587651402992293184163059393402657683434752582222527117198992356305977703643053877696350828882284409696672634465739078846285211812894558455432942858874429941990907404960754386634610073316410931377406356514498127447144236885228685414538554910834254350943311433772868698923679699586354389174512923508669001149320299199120778652714892836427014908703465355263432733796035013964196245467697154635685767397119881632492865218125713912273862941024595993892395624837231659861509850383983060324270986064868006789104851457773147986879477297482829429466090630806696706256964942348249190416196602967706879044779892527115131356371370659904779876613910482857286549251392296595408286015545512702832499409997829363784111120201284350591905362821904735874188923148991682097191655910158109725533158950161532855798310906693451324847142747163911945094296084834467223679156739494016228896503445303292514754562705910696556462857298539721301262997741544115965000435916094116687104211600295794522079098809394244323254676137566522960180225376738310255898247726799959762264045629788027017628697981967069680144132013882380812275144988273331975020336212477842573707557109316335404561050252086637006376753563161153328878369323721177047765076894962058420386644017349667516649110393523769971040757930001031921973780939930832263370963927539703317587130757466123779055546757949917695521096187499112921633761863742791338063781153068815078891276280494139103989427063942779128370942291822683732701345002552115387653897717472346366384263343001859146467148638403258799751215842997619685779857740661498341775411309334866209424978715331968052339466710903256506574829486332547604535849551896688417477003480280453482700167993965804280029083205869595601151309960999394475381061031455407487322975388872099956300348851112972512394138158631208609259577296049963536934966316660793993493109726366442635301986098281179373184483974252980295958645101577502461483556507129337819762541786710584693339499358292448848548641224844753570827108449829437425519543348331917067003110109561019673212514906175531917125652053096207650250072787102143855419359423413844726263271070245756287354751475174967712809288578820665021349650487784756651428421005009405759938247603598741039339871870293511334435938571164061065191265473646818351215331775227748430511773185743161249115553036847732968323902006302937485953107589904042183594245939217057805482084440281300506506757941225580380659691241632750254178080392521535914280413265316718351197258303471515969543461218044901991434670787651565120128206305758593715559280309348442614853283294348973632122861166134361979075672282319992489699321949313701847919805835223352846316328769460859239481480816841867899928198169166523630638545826219090661602749620138396720326794586092481094248426320629917831372158909656363259914198749204069489216122453924398900620146025636969857010074197843103373776495584148298932085073121765199673598810212712731735434704584004013105970048173396219322184332422720288308178801087143843087836922539717884649626684646277373008951286746361977449231693305756013247875439178153349542845360080090656311994681644143327455780274385053272239648923809490260734359364783380876234703905042985695806253809312698388746721266055208777947205780022667225355912065609786329424336690955190489568856065476008203509729939101104597032313375611821955390309280317102367782899714161443781518146184707197396091866761246087989407554987633560716708748103859134395008952877896123809803618489851582674823221574358445556419256883584364463751108443288063153457596593781870904797128801690678595528929524668145197690530424372530284860706516030053516350856160204341402232346237696196494395047069886919073141162023612703896817772420915156395595416552594636538428691545372347089985469730031606563183898761704211053120885934617042964504191193656740373872771316505132693311304232336732975233709886458677174813221326879395781058694344757811031814107877528868999593932418726466970920133902338233222856970652880322186542441135786026082294667277932872567384904014287678227711466445789239338403938729198609203850134008264364474541716590144341848304449863142787827124848473322375806610821885238670696033497233769797912853648615930991524007225073459894076687533892298180790856892378765394172517051633492065825574386531591735679978570945416584342954409176645378716422456592136618446641536630306089897649180679924354963004842099414117172704403625939096572132595039044361727563756049370751742983293397908885070056385852443309230387214424657326723589598009448516429138219853341682441736334634163575559165894315177963998522802336319985496000545544351974333504305713909115608847448052424656787584102469377373473638098909813902137657759144246647094478241629622720584105732434127560664067376905879536755095662338358665155224187514285113494417397416373314907422433644241878003843754355098585958307181571172246234363073671248347881168408205685340341982357225649071748208571486646153375802335550315937554376281718310614479434722583446997527969165966693355076602517001921674348572546502181491177854253666586807622365796450008708910948829701740127578263676281704840465546029531482217820543317911642914502187802842055766223936369502089720625226279379460063632022296324422879255523961672111160840768391926628047152048088431985266150577051251341452594116650520004957170226116302996153489450671293650900815304922027386699532623094247842801104995060473578320321944730355896791912981467397787466771681824677993919558477655366118547638227917735390952848687562279500348993937368859224635764469976500311512104375644474166274255493293426410557752321650554578577674681372575414076270879530017631385023657122242240046263365712918252293432827281211042847975659451807726479434252081314814894464268991404761577983763131858082631620626400920486103990605504308085097602167643706824293607207302131394568142645668129858834253313580852500510546184414800488709478409989252103723028806670238126576980280579873634834667119665168901131784197535615055351667235599303169923133014746107155405508152555376162660538688834140415909142790954180845113838767159357373598758479804525149606378414497731420901529804483570027183199423149032189700611522616031207277609103259594523522573020553743087314377042277285693188631719162721633752933921819370011788072219776147706379346411305461779704625826421188965652990926129218152621132384088245564816975419878889228274464761070205024736286892673126230571809404556020512246053798035169512161878367181099806336527151293207946377888891021249989013128225162774945331774630132438816036327405888511909539564982007368916357786957776880825852802308593062551209836360786188572182282999119420354329136178403984213090420668405742338171661002440831951609224897523699019189481918256783165564280593678158472015888523139071355984710611647172121989791279941360720953163552727343866195714428164185637086410084356913111860688164975803729270738471841114518735250048801302838783780458276364457528981750298213532611307118075149626952820201715759739695310052260113882309273926628776094660209193617051279149179957662607563511241974092845200869879523784636256525084707764866079896916979658866841662767485713777838226745239111978285086144484813478793709064086108982562375647978865629471580985804390775007353406778146568259456136858813031951994662826810341671725788801611935128668145009943687282685655558892375807585667340111237980758732238320196914667467758222061240232022715521649341457374005269652251544003644689707805253646705740829804407964517607016402994202988409682398299533374503916358041354204915557618752188964179052850271770124056662145532443955379421695857601823363741543316961687594463782409281202143865736747230471431802939057793072966680166858386048043159582718244445439247456679587830621204634359948985473405250750784614192128500439094808013573935093282346104072918982606354987080722755275507425970191558411202296866061299689510457965403549187972243397829378973838831903353493434110535854507573702713904157063829003317781002507315762583511775932209588511424245230717577932762803640091163890422880704773192530494662390321474814860494859560201718755234350668099401925902052394145373610974353872302394204065791732957740766755229820881449643743189226801368408780341643999889835635358683868273250567301386999364849933423146907418625826881068230535555969055999808018059291298107496377885554674346438331067806911383014833910275804404202601511620360367077661515238270236136948639359831624500373254009407480565677601523674694976441200042593602387623824802978732143838178937544334234308262114766276621585111216123746891571365361757181485375309700011854179069119110035504403924961074582138948509806000283912997915775089814028698257835602209274200262235723639845006806533262819374372950670071264181251372273543578912707715934757195527927460949900426443000277914466846216359029770767118962472977555803477527344487012704389723946117158872197126480871501546832475379520052460815301145137741738151981372833024014472936455450884214083575798363787448707858268823145105484307447334979246402777847936935952849370779430172029268276971285952457810289580392233938868232845112119261060948619897540365559392700659072294087553668660177680916882099121898196841054876236897277985543087635264148870155495161989277587341794893214977462672033991310724675967448929984791172331355516942338540112438272052207832418215804802027989871579097926983749215288713794698921492258042715391424718931715456015390181846216664879231858205229751144903816017507679041670143275849213729461329256698520912401062906755944141670192256686873371068525030853703596077241731682264089936328845160465762454408177843630821329454882881279082515120682031114345195753052693409275291861965693094196890763204306292304795746568710635223983671572383374108705442325250833864113279743765448006818289448980977366102317961201896452632954921119284624336296943681438711618935884666167402976599780212353970379789849473735018361156452334278956195284698801701669652470079395975391180997402762274513612763575689593272962414784688607069410188335340014768794398689012985701685694745256320594328702039730079576006154678016459241099424924876008285491681808760569735787520812732266495523386573938456846143065370503429934785212675718862884493656120682343533047142474481115927157307154009931601393764097231726202434098467026564606591630051470697343163756158559998178786280623691612091617690545509844362617351791703303232749557663964449336904749515696937784226128446088109485161504709049354048760502403156822686541117548114906577538200698379530418468256122463598370366598636975875412500159221263333417279322615591988543561898529951829308207952950352110169991603780099723069148738930916992453487217525511310641362693319965026952544928024052628293192110778204777777324966297751323701909547824433195465201398240545764671698292862140849029712529187467941978914752396616425539060026651410034111310084493894204901524930911385701257712483168360437983392101993923105768131656637097811448552536775793290665373226680978033010348780461178571772680680350719776532342951547071730079421690907254493345037519442827240488048837247368354546748030751560418663451984245523539595028776045267492292205430711983063748120178647625603215817279882466671006436704302053314486322017501271612846305790344816968598599838727275957668354994113340684773848038646256854180691491762597498265230955411761133596734189600695321322526002031564322908774917127799293971005254429200544478276508465824916535369514007133764487340324608052628253367353439537365741827277094826211943284714654900135263811693824133802831475912856210409075737850007896942992345611454054777466183425493975989889907076528559280486521781128960406361021382542171778003107232394371517113055160478542378921548644891080266510969224854023638152379177472965886506245974941729942919961670814986528462117643954436364639615288415947159070897136034371907943608146653941242007374638218289507888297004664353029373025565896255799559304229373618118813441374399168664738793856493580769576426801872926544382068110383940697917198382502624735149982080514946345814117871295171085940102175030851169847534857313561497823752016709541472541493383864174684105779895417632649362420450316994313192504762275307655539851508714975471443399083068420518369148093200984786712375601409687796139452155646696213708746228194531577250888181994761924211466486400222760337992663140618664180581661024136569324498229105225857097773577364689464312469225590563573076284621125418364966988909713504583731982587306918378049995762186360697647348797217541610590726312011927644948165998800993464968171609444232348736264087706160999460703286461857222146000411981190981100259980211692639185239589142642775658171332972588945534313413881878808627343118648335467649273830923629983344641503773973014440787323148940636573053453789743408527814073618934876562534523361063711230826145481302477547204186834921193941948945803594145971637582191705141460554183900198434859231598043527764412372512084301174765483996264126434522985758785121700719555433179731834984777485781967354630214122718440586349762075986083752003514742631875609199528102338060058313140458850962200456915292068315090535270600301533307113567011120548155682939184394219227753579089438268140561623856159993886215488119653006733554233637675736047725399489784264481330729588035568129458884905092917073583804074905403977902998360946996799790109410996252126240077896965933157590535473504032584761140249185642525574172658684877549357384780818670277684757176951187272922104923730924490016853589164755332444176164450348760009574291921933623940890771227729525525597221995011285431970608864977070043820808598064753652282010313891793694477153518510135416921887754261471775826449279810569700308957922202670011974080387249087750320947618998334001728210458645380340230381859900301219254113235323582488375839916688182503794729861693149239013974970846582700296324403598200320666465791987961552724670494474862253705474470170546888342739679033045055715215767025186086507011628426591964760673769546210567739744191036229653659060084279522955113338412927262673761236775829320342865077301369578144781581720339430002561806634790861726478931624844632409675685071554041718536574336668213658936047462751505841007635657483174481524217176776857732920966518750322115242592478784073918493456977293916524712372863807073615184513960225984950535000073544426361814654957309326576280481051869484788421010191434953902221209140819789492229844646282558652760686836582817302721802898546992476841765961995818000470776729262445062109018880672839171514693334138356084251189585803040306330611470212157174845794017167687219864382284127745202214121315248490903635477911175758163520985028271363533394123397390243440376975723114568904511056487767504884864352350472901091864538276271503789584718598250072348977173406480983347757973459770584050005239824373163905972511072880986964560439396892661985454846081229307777889320523622738519058544832463722358429677575046522166021402977150408397739630117504560040283818032107597909465673886661481308080379331297039191373368752552465139363037708947982814240021140372942775584991817466384453091401446900113845093606984070611893811261709069923088524222292396072756618578239235542885448393085844059963747754062154796628789536930276355685965604822297469649750630114265497558477330188276022672414309960246290971932691256486379912666647170292630139933233328834077106614119799901201768505264910386999027888655730482930518815190263645299974070322393691021282829524499434551994068134469388479560312611426225449928870826753734138951002418646347742521530257022903820971761220363197821699785249147560726007748394017356006213139914204854350753066961752238249646509797000539101177118681225525448553892547012817966330901019650657335912967382149069067347892422848829707368831844574598809171428604818516030118588333559373490113195165938419009572395065543616764608291810505068159987505240741265642365621863000167382149552173728624308733120074172420269945422341419617959620419694387222095691627537016003756488999535386685976797483654460890933379193135274155099398289268539312245945713306772730739182841938605894155262127956751043719349743828620312929466279260532321258367295569499035088617092288098947154894881805893279227972843408791858049203243699294298311252953548545672610740587280418487879972776761924892520914365826404054162453460380951456457341694084177174095501535014823938387575049334976335742762331789370676140458353864312770817594393634102963397358649235606672197065349719052749234273757032268014678075412866419995267231925217430373264821972622908879270308171674018486900844644542867103558441788394976972907123050339404999909065058240750403953446749938763617121175940490658746919008172317024198476676602845403813894685108817860999495856737915270338262198578620772358782599319452620790024928114854667731520826071364267533494714147493837487841102974653767434921825323731003229670454225020201666045102412480131129319457398730166589391593479321581246642463040101972965979447692038970020815910169413436293676235530983682503432808280797071552521461862763453774306511135479766400980588652016805661727521098021529794885934668593834911987110346470638902723956719343628331368017945363995706730627036380188725210424316670283896718593435601264071372852248732864537576690655836863657260452423324761363081828025747668093180984196903501092949543114816166988924593251321965143202873276862091730093602102118168347796870437134136234835051199082084596350942579614309594258621979411609248623005035170550030689327832809618242639221673167795318210155702194379026715558907688091722391283325154379908028878502523944916865619791805145213124044839627328362181191610827770333608769897828380338437743584915060628901704325058297801918534375159062348459546850660722863094460963648964499254847791400172671552031206833288921258382745156699838501197121652831351612432375367834511046628786466687294695253158070150746845305615367743107464704463867627589539648954001846250561612483523064398241265341500398368094863750797637284428725345412000355018407601515582144818846415695086380087188680564393612927311170918804932170983243443713525241992390516905071183407811205003193546212345214040622064439110208333915466640812418658271557266867934160152710467998676749490378669947740343671235938473214797157536972233128573944937507986874192202136731761368116340850092444185300716253369970509844263469922720390705154715640268544417841471559770602233048495768204342305863342173836536745969525780132493833763420216978715215772407022030351014290076678723015642185779280257728621651333081667907647000381985768953386497757305110457650522376808068409193912225494268994175277617217062916657045743895894085256948443134136604934707112473285812348134164169024237323981508920778987828955333449932584723975927072631974748904219082413146879466988238188419626665679659210240310376768929107474171193912237992992889053924810948971619873518232593336418587646703701162667589425836431739767712057477010481833297525732700228979986300274116353903803529907061278130925355210199778070444724082304688824917296632103286897652218023637766886419707904788729009427999956177133725800858448852805987956270470079626567532056133131710147888563360742477340781259754606629300210246861964758461617501139794819031071373837349576088071022362300278489848342217481236931264134082472561015574624427607092120385589765894074303236422265503090941600798573594928602981392693078479425835046768171617164626625467995071589413943101846151622238704411334713257900888990764343608244326762541421675295208800422481508229748658322200893670703526592517261357654520097352974173004225588151150271563958570015091566830933160575368763941561830279006189220013186347657471212633060831731415982738159593746970060717992508567507623449627744045924078784857803805454186308616055157748111433818367082313541782585939472761585518124385811304447259035539462573543731634561314307578808313559120476605876880480195678453656891213793575744300199492208461415361490497535180267931785764723364964588927215754478649776893841548103356453216964138793860583237938240959391269448851718446194040276273723884695307368602336593926942558274988589928193508419648266521551466898785263500290249730719490950483751900986066554367398770088937890558484298530138548332266657045355387728115815042565690186671806347014093973127303642718512866522205176963113410727223209813000116715345341075315238408275563034745686252618218568585031663474783326833849823508558596951615811248798446892729563331491947739637110263794499584412158203505428157830162763867965577054776356160538119981424400890563277890035704771278806369273543799689111353931025669457605814897484934576784926509799745799200666241209940926246596091625118926942534937333044447810789252584653723993195962640718126484917491890481717699079634428441683363676422287121694074281405670919999216151349312938272965005060056292626962597682642143816181688542169824933026661514809094438294412957061022291933896694457123135626215781071409372318022169826633848011011607695838815620671904493281470409006475071172314439913408601196341410371292522080489770061594254964781114506635297620496139719405969293169853186691402523802763011321165602908133810328444309810492733988842857449013220605436178488111457983386662535955940606760151861071566648573087801551131930801855226790744755582677339603045758650075390606488887851271516583100693172192269325937767873168250610161685920860938596246446100514041993139175427941022566108064654262308501233258364612511710537267713306037975250271678228014741514747087175980319287078929417579691923416701930231072799933962535400632058838169830956562045834280545886821322864313736455182400807557497785675406348098721379988600229018180877606218428507631710285822911806646328586973077378045627177817147662738834689235409342463313789138103115844152275618580395571197147082225485379455474226146424347855829288637927985665248552553140185684444547597710705070553755461401874377343930232293609867095016079003773459145924959622414005216356143110719222555225071801532466229514023329620542110826652334938175739397085279936788015462403105740941699021288305116301245441627559056426798099183206502880059005926030517758437968723176617274529798563014875881692707287617662610172576804849315057036772127578611701454237278837680927947401100490288573976997336685335518476728399623065738125000802091952020588974776962188667264485717439134908700155042875077313012846360439292460640872204750815166442626317163056003157191554918145596100745928588953862669186533471507202922074900433315454873423456028067070738330605330836949786788485731903350352112339859793532890885686129089995383296062612653412443836506509705090613378462519091760965443791355736142684402060359994759053779347300758434943395849310925912114029417686599533952590387204631817767300489323851682658830369631009202977999375443514530064786599421352819278934161679412168858332457470139071609383507089112145932189481682501533345307229622225188789638598375478506807355770856940178858711927072705890334799045487145162392399369837683612400672182599177016352780817678400195376643978942806656329253570355937499946984942363837279312087523212716820279551609934011159047650469813433001326888704992609843426439554791364858469190836014913923906053627762197569101785517473552340391387823926370527834856979218073909418677605937532898499578815314569353558575693166549023811975751586979854440260261990147113743878671176681008378093154070765665202455582797185966455518438338387673610263253959178928454837117617875401949689036306056185252987303787727893901086173010826013304537044578147777623874889816211713150229479668830949727011206972587836329873162835031641849634342888519265169066184849003587114675355349953382498395125620178222965550194691751443363658778174195778607982893946848513149137408700011461763212885964253048848217724077095539111342137776170020011332378314438321416906426883889343308586470496359329303824380288495582135044505524619897328828863564912065308527925125365394455796579616149535895841460699250566750187271447116164094584369913317576433068197483061296347164119895401802696021018308821691280895516143605751453272371709954696537797936815300689141705478337355110656005755906819157965247206300551825639627099393151669764078756678539531589402177447162053761234077254419328409991683652922582636134693583262524367333197638705770519258681219101093570247100127151095628698606183079088085959514718972143534388881427166780379145449932015479024766089366320533919102112455345233284274113738957723735596166576735041590588014052313220440543660423496333953417636970265710290606502854121737335782940425554238714848701664306255524321094719933740724859947267940089105173586689744963083906636271235820506002304718223973440664155897562866985131133107870869461412056138251778087044758018821697160184857765883099685234391070597314844289735014063340054924451213572568507322050819580492772449290621854869600889634235609957385329096410041542064892918351640361562187011323969487421503571956274698062438745213027937748514565115756035657524656464973639664336531692945970691946471186372025598037196704871548477597034798893973037086320792529889169210632440985459979973170741405446202325513691089165187247831548182893285554740735827373797529137415178223284539028569834189171117200341868225783088377274351464366407132202624192071402044434639627693770555172942675812312822372032687990454667445714848168318483248027207648558425245329264321262802372499702854487810279135027523550603973493962149745269902658506221592511743798494408845915962347077268504357256499328487920929275450353206566840597171288429803449606075806602237288383181600262837750301322488364825184893515980634419232581830497325573237710965558725555634715572465916746708572057578204060009779458606018868644342279028156730922924410378749775208468593582341501811966641008398401819631464266041985371199672027680619074717176244298238225992332827732184343662588025999349717286097790854205739078352434159007916922649769466051670338307288255192448817679252403566845279217720259256104489098134923824694233377114660315666166579328227492200614298235101763573003030402539624544356922975981547901107038009504907468828963356720666615545206799053319266427369317712588635857013328168049147695660637626649809205250119587813769923106943640346258250378449055720439840780729671127407495509260930464201705206092759807911542232102609485647589071732345441028119907007166690400613555541515647868573987660235050006460974102152067398176153409123548842818343800269942097331320749246372773304034609331603368601934715282924707134901256449692313137855045816233168359559041458710874527571280155113527822595651515742865906404447902241787459558604503669824819070175134332738491960805276563036786178655387872339130124354956840615828488580110534931387616872484071432834119002233712480689164545108405428679550903271435098572722329434364898337377148355233648690714926513679945008364585124812410732418964462926079506482176904509499979532298671983004304194083371642149349817199919793051696710198223263867354010573509701213365771974772113272576088147884578631428236486023980729669392895706048294557479590062977450432720123150389647855606997794549733281134540520758790460388216063876045738839393472225952465584240548062503037321137355162453720549697900225632982892397108934278744403192963964946187904149844531331092392942417799352845967268430915446495552923745126984381911640586911104209979739112337010502168436853116205096471033971823697646905609481465941754485818698458375284406553596336723535853540691261658280503045561531270640401539808605862584368078552994370395588386047119595680488556115348383173986651657849838831383381315223148092615913694279263095250715293231625546856877868336944393418452875576472756846882143042892705392867098552009184725217035258443620368102238646280565140988900231632870479431875803102096418168100275865307197930261052311933658787945796546534033330796923861244509622463352478723550389091718969713541257240555156685705868144147094385366186113289370934763523811617759830433940914572580700136927961937131184721847917155149275765113179910569932860867152637010375634398204451074565986319803380586992178625737998758221209827879694076217311396697198935163639642683506046169300250423947655891240187283368598160657185637298490315894059962170794150454351217827159915799922200122264032858475164283020743835408871285298034141193766138898743926120392094283204205460619483122885652264977487743670955779400162699160802909300598959723356784455210272336327099037448252461256471692939699853543556300066982067394980668230767265822136018749522605081645261736568050487551806201172391516701809211356042567239396747440494747069260088538431292694078955473395057823797668194890868167995395163777448824988746447223318484514096798507490661207835067343375391648330757447356083741333417396286480170555829214093403674597610204443695057833679822405647524279212178656738325565950331679913445422227815568751495351815759226166280268188148445262877613886743304206826360753523793994403022160961411096796166855092174050331899843931353827555895503938423569990896226453987001943323026818946855359006143425052176039894081973318867031760804585294627270329754671009804270230394369873608577599574375135891327710575959745216775619788632482699123802730012029816175509119055957049291019802861729032245606033724402131421788059970852674950984523802139262209608897551141867747578321083689822771194675565443950909458580685354480894699193533561458811084341457191716767258244717474268011694759671989033518535565374544878946955340317845098904405567067307951305955126667100841243704605551515909273348215548813143257084892308048183965362628240341365132947161113113879483377617590352782891703443598797749627828565586248649524674475910307417470813973936362686494440958086069193881202719769952215280352478101544827259218736004598557168572383591352511398785864064383069559090068002810471945863068862809699328949696531746056671945411998662431944248146597614509441501533395354416250680819277447164313954710514046121133962211263891286558229230043169207537791968877142599956477275955352469348157671311608862482393956409841023270578757029053967822116506522920284907052231653665904859883300403967028378438447467483136171308621093542662248859473161874883393607406744423494942371294092525100635311208507573011188957102712847426387883165321965784481747415964443164134316596049784015840298248701214489020595817465821880918830273234629544254642906049017163723274524998774725222204372432086442707933936783413953023817643947743371184708771249466520098756951017717820215130054427119807453382642441608929392618400237690653277994081050776362329520838837282433133149222387875317004800650626095211488630608563676511447106042838671482091733493349242524819757033798706342666914064828199083195486746649404044321711025659553011962639968663921373441546130848094541876982962397125493040527479449723116566872674524254595114758627577335356731011035133793579650917565297117017112106623818391137466256844375986245458777166325314388325675618703725120448557191265961045788129411052787760502896323460652971600228835466232094204207123991836798265645683327056535554916601960509885143207904027722394590703486405321760919512985069690341228116097889366402949258977958497331451685748278882705776585699591409180212989722668389635192704644866694047821946468828269591485393786882986396619511167959425978759584059283607056998768680741069212221052700681236265941946490655082034852891920524514460511802040823664099333430866622035643467846317815835108514540038255685484438085376188343656296065307912392331319037092971162671004276927753562380710000245516606066321059663351913680584668192038461540802744534425316622809324233298263979297798240811523527730424958269314504199169775879936636026869651183128013777886922445618461158341384121853259089217639117911508630555168637945103057716360952378756324753474132368444776124750685176068155042671782608053463983109800939090917409189080208273919251893390289393876831557617398209242289397724616090361873373244404325526686714112490299186830123906382730279958366075590647230818908608715204160253443645653810136275230034763964772163124973009049521815512956713785540871899286230570691597337376278281300162025585743060057784594399413417978485760043095247643829640458737150366692607222836534405752771166780977429318336549657359257143206026980347876868358006920268803281991959166960097730369887267799148680827194556803254521923058478074440343140303866987236376644803696984327254565409711011944384798144779764738002879024851510314238277090578115130801568094929270101564984501465008430554466292329285013786335099711136915916415193561204204137324807712894627480897639462072464923988290261663702668340509265940830193205484301719784201043077006100795306549777319596430529393763356930499285882464600480612239516155527001753982465213718153924298925304432597460689337739476470941818140841144508036149789625265951460637794745575599752957211610834489122581744210765337329674014869298113482308447719501630758517898625542565127529235461759179748059567575723822717832321864897890830918068883388713970731791199844169295123725226173227675929222604241052573874322620476657750766063714546298719918893011016898414218005083430754444158492249801092454337319249692550682071721697785901409753119410192497482192034048734355345227503168496931446404594240035240797107150056721688119443770886637914716261636353948992111030279133714568247303783976863626192893550998109787626637276068112653741717580875880198828361811131423157299495133361639283180364161057430741728001874178410792783990703155199369242072914114924777986519718304050303308635879389003053936418930168320740670588530539535585458808157657835715574170342432886900184753998746377074231144772375892577982618740521783547349899074883431115969718281567943333513049119484372787218312643199852652099113357467679283607164859814271873831214621968507293798299482920258203021387707324055137010536586779571770300453073128229749243869378212688551969576895079362099504538589588059709485679025658380673468033405155716837475264342330853626716627276649823610746377807911256892500281741328138361433570545983167068892816572959389109721117193201912682976559534904882124203861192139220462123834383795692386287661704233769981607099371592157184092848051812718414628205714009873144699897932692308912520367912361331214018134756966721376468929172711787512881499321982346827797095077027493594550367936524990829384455247240335279374711115580559754254056052620979832574455775148540308815519067583482923717456075747819310274468743816631240836771601491063191959697789962245621688343299850025687199162213892541218175400587525237324133213854517848922091670677361915458824200772852562763963151163258865565876634696535513544051993632025335032830797116109824189411934420599134745252637874383006637407887438677583350088531406888066526068857641159878710583904661867540398956740180984543954828163120236947472455882767777082444483672496608172877647994607493270198819278206697120210202465059907169125703667419459008414554906163416641806477465002815700947608583311425899549405310845296841152306325450551766543127648429856570763691250745513589596311783223962027678645117232649188762801914874223736559667773341752316496640118481896809275039610353397357131115158400329068728138228973012339731324534694204779015511311046217997262654280092809203333774975406236713353196472501467381959964249567079529396261459399204670047362107289985775541637060522415114297698659089780734252628755162209389116382475087148787090203572667261526618694395840185181878483888676587806344963580059430254581498085413602990861571599008600621413441401714256194199996855393735573847920208708720171657050092736987604649823583280627306522484978886116452043741795530470678988054855886053809785918755131803431670369223229867336565244726934468242384929027714622580196413461967441479162396463187020254821530166140887793071007137484099443382368103523380397062406340174912149244529050785029308242462945011180412237840162769362062425765957693014488739546684823035485861195814352363258822452429726517351814820459234265913500579580182552132734110782573883115985564939783153174731214718903259029328311986388315285819825852968295661481159886111638223552476839666073922026321303325833789689942168467154430348509125323698232695140740952754880064817444649664050802375237009248914573813059384330528419987464212136481817118056862446743280171169247690420815055090696095517373779539196929849339549642950378543835226157167026671438152526472928553262289732902628483850085594407628788215357640610125504609841607105980006704119713385819902510754656331694047176994578756087518384835349492864834033776394460228574429282181401678390861169811003356210684887977159198476211592569931119121045162173073436846909475766038646002359612092663865174648687221366264623181578378967672164688127723354153485940743292585295487064220436597642241795415775979368268807436361983126941739033990647313335220978053987288686144116736827018125555086629691038515474652048453336906135682349495293620375362163337834462131602777193734734753986512205332856602466041808051585314645959564080203358519484277873142451139469947679800526291633887370601902355088831678228122919841435701946888778661192317302450524708702803864668139104328886890324960454435977946695399488023344924447272502540610089079681657186023880562518461074288870719092714648114633863499556474384537451140594889455597928294047427654832687792050597207533998635822952398897972694481583092317957211287170889530924163105492671661542458186415472836262758316689095687318656535624054574176254905079864441442423572691142306834065919071396294050151261800826045613666335173745847644943175967677025711967139723235635198325728946521996641741157125574651036713954321750555437892319836114339604805038936513870359747367301520222047952942147666819922296110185139726071534347383851555544113936326303825025221260309695731183949737013977405640719853398738251549642924746026559680756986160710654651567835176441711430550233702740099666925217282545306030167799380339117875411232344251830027816887700587312961822640034217196253176106959579254046045210015976984947622696736115158861639332142176493072034103964484146527995023139720983098709446645823698118705364349898549640010110119109249762487195156045777271281223939106080057455103845046512445472433025254752747924683773077305737574095482923440787631822847489397141301839178267634975924130784498701063851901984173802273565556169753200672579723975197545575531317344918446105375081028611907244155354868891813298792064658368141064064948796051015281863073514865736331798267764227703918861868470028943113977547930254307069620410604948505924003046807358942111888972403096262170285456295563417545301526120005271995666294207745604087844198375994755324263144283708580802136058110024944738962578579131537934499757721315466568114683699769673355302710977536814827686188632078100534308888504614424716418050625779258823302037944507719144951395772474678273005610656970056525925620741552192463027935540351364960155550254554815439317065411113155553426979158753990412884475647281302036764973640099199215359441416472867207126640807493008742738484276890476139220880572013525311613125028675560425404396563201309362934841359646202502929992052504935157425825589614260492601890691703300632979997298924258999956275555318682518456304559929988523433078918205026071661068560246686265521299684892893473479915063313365224431036941562232623381810589272531808301105755370228543011011484716371239294824035777586077669705556713340806890552817109291830405931571535926051217310078519391778039820133087975055130407252640188691786349163542439416366385981589564052996948871256612870557481964706190042197936753194977295939770936116006152305575498273342618279809799845295061174549306505351977762340268895119929155806258198389696363720511609571457590119702025241122097890732494073680387188286780022495934186863188931163637803493481155206219686577837580935330892939126964986359016840624893694853760878450145130973322372869846612192843287513144757975630232188943892530857893032306661756939638244165780862482220899756601830200468995993740377692013801389741122221702466608862508794002829983671835676886687541106108363536021860177517827401418797866633455135803535971103569885227657475830822217235189903290288062192202443723633989699628772220588173196210717800306634176705570541835095141130777682041608940758826290116272765417144531280995369050250883398983820555511766958276704383817121686236397375376742946779924611454226564141897564732226000573660087593623536075405953650945535439018537378645534395364287553043524982924650153839846283727424560951988356418286824862179110341840260445178862121640144303759645247468225379937970050673205967549950008162180402737789137818045303874236238052858860793130379617949439283570924369823616022909450437814644323776113848160491646100284989205226627225351568733720682504351723328677077531950445837355054406299529831461946380524391208892308975228906993880849431356910820992195606437722400044544817474460060008987811483229243350407811548166214042421200986420450856956576258595745554344265291726769769307977818481986323100097339193570274462194249948391917945116187133757670273037477318836342732541601436206024805462461943761406113463739204548778991568597364604807397280706296672271451182845492092741230063621079756763350244436716374926410136568637212986692644366089377953845050977468655606742098192752427519203221390687778715186945340890529279351351931564569514596461527329544117008771477548477591124588314289872913337286405469051048415656118415462796970611685457811955993022087712855230321413333127817330637294293129144253680041151580269434574064565525315714840549620339357730032700296465082340417700386281860594858585151706151436194389169498258317486962795018133736056581960351353163807528367568582098797711374291739351230733801916851895846934600542097748802404831737640179115670484822933346357110368481158655387771378240355184230829773512840884956512564317890355013627643727852066538431258273137125897185675212729065336384379263504479812865269525965346671774796230494647297474259234543386039296066208142233602278496128369027139117342400087354372010637877952246244291396433113060489255224977886250324876426905684630866576321038060091526706429844045761883078923098820777409029148243595658227574744339179278394300582307144612847318068049201427518517587710308769043089996146165784568851219478977912724861504972888330447410241508820265654244487704182302094747795474372831449110250332781404703002780514351646703111820922258100273360311595325878026257448845956986309058443323571069968099537929242395652211892654587041818034325221695686812571427778496014627990913000930300473032184398777836134968603740781906242418308384935535000345660299636506673724130612730759646820505749881648103105683415263957077602800054507914041202906356300597129454759685724253947413327372798819376635433358751287077585705056307634600618184276028169493023204224250408663153537244907845519607864123864691801743200243156946115094378858306223718907498685345318325150746451776532198593637908974968290335974672690568691798678000585820123305729317366596494822241967710450448713228310679344530703756693429969827915190554667839094368978860092985452776284282697629506140346805120471122730251889623734990561790856124560130817193376865142005761140573217060339317425002066735437938461306331997000798077960402605723107298402382704850202447104103396801768755785322154954678676962783528679292773799156977816156430430208875280354500686138298624584892109344917406195237952426189492662580152406337322029679297648873549913663590570334410798011403469998444328947693909275850366405432198520136382950240752265244885453940435833335202438408595350213935981199406321110088379561832045544800754326441412308997191281271462063459610873104792440326501384902912189068011240939756539661579672065093774027242577992473491446964330730298357943269733778927314382198531275178544688732496524293732448172653410683567185713472336734209574951783497509879517069727197738521616702539598340660175826909336037359121810390669085955000432321696881889414978100776067044473826068688180079168715554993919300055636155960017367816327793726693315093794007633196295015047257277948051300441692835083645070700143898246788878031351053192677407875841054490564461708426814053988704881751312062503665313414257815174035492037975631264164336865934618476338054825357895269385121965209052990696673696226471646629820660995895780171853791735422203598669547527163405128928301748774624442735153971710517348429787944399954863164595201422548026474114309953678303511109014023840078646979542269088926597551116201316805493200995160434528220426866669928983448457504858682413089227911248107000781449166148056264227798301063074751427222485448310129351065902748907831974928846549277859645471727522343312511762329565689848314690784664114600826327954718490667428491831739504391735184495758789234509198975866073823633723578304635235674172918274782738467972292299169050648338120217206519084545012029184722361184566742192785382927954699994014030392314248513671487505426158938848372930377284071948627765990230531745981420334167461895758370329222617253676407478735907963377999890103406458489060925067739802144991215855708565511468019809003127266284503516562000729254236564823336900226873215077596005336182443384315427148642167817629488876845558511418509009664557794473491775901732638553840959117686993527221862892949793436323918476518780907477294133120166529312483010506275545669323689803620256795403930728063155264942628125858484619732901595526231954886728442439387889233036865087224042536244176450616061598287440672694186819394435832104590274405074933240995870044978002968086070368816391992357446146615708276702189734662237335080924637694587846970718230068182707976864050929139670404866920072180597873192343612680961722874759798861369133025186404153252462844513701090822771730537447006503753350913581600954439655242972793724476731652329728085636866072511883168552451334177226712271073628179220956601190339721487916453114437561411913331813653401950671936573421143230449820489053719235181977739153291409924172125851681076273756616206153503448409784990927384395574475435439375283962610959270122416186704297016735548067229969111475773808261343951292234607066512597551769316554753317827042208503522812092384366024020914569466366957124993794743073964041966633313600440650950072848109912796362501535463078180807919590186696904433786677427949205414937687263680456292007085979194756956684807654835665542972335814527903442808266261392115780392405606083611796132705105118986806241315315833903932632831855586795987451874433560911536310595596612507900740721803982063767207297880124831413735749352680450069215734667312669086800383465519709748093722246186380153740384175974405705554199208215788104918429320428629251642859618417893054901957721398802783334681161011122786273196363355002367911535846238140260464389863342035138608914347339338582640284367166887082934924525547505580535990344472551621145951000512640497074542278112963220152362091071919731613535885684305608828487245253743653950774740020435553557325106166194106779313449969741377725292081633155931683027270330857904351636693442383673973685523538544414023592882607218971869864405999470666865239456968980387675758275264865976217289394557116657830061653999639923086139659639337500080360396813239426335653826779978045972162032518590550093045272865340451391245942149212246013774375336939558707329595614097904059152128654539239022350008916132937981151120353755015987458927759347562095590545838115293409691580101270790426823633983623586989139960444938662531092918856276487043217929190942792034808411940700814351111624687982111280150433919833102804769472192135401091579124165039260671379400698278810850853754107742132922301973875675626261750342774121338535700510802003081827771943345015510577882149413094662140517182959732159638270227777482776542525962311137290382309913739094397689554770670037457492064301224089713356259828623167747218713669132246831100635596154256183013363191987297632911996342817996513064382392543171306841516153702690786143089750964759229457443790900483814074594889293365859405235653300698774749469299626090954122754341288138136294757612528031695308950309935524250527958403312631073792182715578896050558103975418227800029518540641602065208356857082694311116591318138592977591742233344568866427819813846496292680479482414645388648407624755871742438593162623806662614271188008828006229393985989831068844656676638624422481649126284299342125443476957192348175377684784961679681639990450076296025374972038776587729819965759933570783557085735826543936592813125504455774736474855818134086536335042994408197111656390070357806555716234047812742193177953095133584845151115105521400374485943015349214144328203054521461004813941688766107470396445822893474372288868995562612833104244604952980701447263074544617846076944758927391301130631432739146698593077624354101997024024211989712273129624941484678388909228657375068596479629392602453031989913326149304012332631770632796052315768742965136665489117390756127834593886332133351266960244934874072162608772060473824426457170688676141756779737086013328370625471837941738203260878351927389081874811897723006074842262087838878453887361222357282130349677055128932237840591346401660749911492216610115077270650349920690851091562869325346082660408270121587732553363336613846126018948472083515329949171513257049429507380707166285020415923327207683944833102959732774880382778831486334786903355129553464286388298467126495464008930058701577632044832046491677373088380288885733337635249452277574138551874471858303894468106104996307929655412538355900889678418477095318086253596666932756507260840441513981669815194961468835258114647326112884651068260794738173888920208505230349470150827192829690743910739709842882425382453301983243488967944013142962292962395365500946041788766526140108453660933432673175591233704414208307558497830545899567610962429163309444734740447745668116867664193565139470181617848020659820809643269252067248972787071750432730596939732646268345498233715487837092300769137389258413964859164144908752850940940786840505421221600346724216564308000635469693401536817298393603459272662707071867609803426295903033854776834949784794138787803760055369412884143190281154147327648597927563502340888527057395051015800640057992035701890131452628082453111318632943947755783134744586417256190003991725765754154103909393424544908547099486356983993436159073052251598896400741762605102122200056424199006960765064295064631768443437900434656440313921363520760053952046209068972471446714486006345463577474030424769703977543499435360761078645161510701385021628727112949977309640369855735659949375341064007684127711685125311130336349812661853326524603663485306569137916894596747951530990292205597809438218582052050121677046882120646858958007515221143765842834020248334977106393098253226365453022752015594258355208718790070332339594991628374130921314919864267024467922830302269591026720141129653813462972123759318749433362217353572617097646637437393634020330294898002784995158706311981920275432043390926692958344997839072038583772527699596663852529306523183060066967144639055744497671049116227132187208915891356841080327753723387365370463925889301610961880250058928298842547748345531939019782971241433846247905716864529979019474467219141997152942557436432454266035394799589263504995347327152503384002671324888376796378606623197725031950085831060921889187207889445742666803863345858087889947163352528899150041672225688101703663815892035237809026906252938485158987206066186647692796024550164648576821776375201391101320528054647886882593541052833593713857583460044279423493385965449583894744083835817319145942433541103631883008206205531457734354731012212679569734369931052375355206245787769770490673410103499299822544486065685546721799079238968144618520424043412001856785325739285146269780378866602968834981996496336145457361688592065740825998264949114148904452565718091459237915410353426938322477230490505830814904469656761424073526670905182906903213002671091787970579294036202957034279306618271701418925396000233760014915202705953252703826094176200038963567275145992363038160129212511736003194465841984331388368644742464295888804640490593852403995881301845420329719600414935491438125418444325368820546267936916844729914843737591002980076729430985138066780133624930935967140109830027818610408086261244504218334122943893863831910273315846025727964374319722099311807806012871139497388790124551291593914611596279467785400580157335075998615380749172061261029669779337004983740424561687989494769134548547307123598216732673033192507691841113543564586417552061298839657739033936304639752038782503068653548496433206026818009369907294281783369424543215005997174011676301935584646150940257990948147421022139875973769761259098263444763105369432641834654826940994143391104017905097794356022210407508588194556761617681103999540026496473878737880673411002740111689770957149809514280228213422987041064313813645139912031267898209094378306188051255289235077456930264407320830810319471763820800197590993823841156351754936166439768499492484236703786005010642225157088278537871324359263023006645733233923206127291536403448726286964875463326332309920015323094139401160364609271178778526009303783971781848149433888137097433355944943984755926766707109623052966211411432211013218964533138243456481614773090338248942273186421515822787748991743070947037546561200385677705202501264948878950955334416643035804003784800917583075212309725005632989334339308304240392079709126464943573750547695600213802824728507906618120989255131833080684089077562366719015530441042577881218659914744175535655562264077770383754239206409030224702700942233797921461710814671962327239692344761359339871689278399653827687654802315526336002853821468230765384446074701125931547736086203743517402824729606461356814853820981617782719862422139251033322699477545533626585579327913399045890145433540161286818155264687713845142295129811468840793122950697395675076320539699998562082234957211509050981398280795279536326565929384645326771289837528820712049278697146604864872205254952722694967173919543301942328061105554026506601517952897003166955353757606917754102795225973166073553313242845329048575978326459141329585095666789797892364499293354479825971938988861697303094221050612299525855247487893392191564458487536931882577356407707204198907851729605277569662656108208492606615909602118847580832934273674500499301835250455357175098674489215982913850671745002547706228348708356291567773797783108242742375300482996553984743909766909787662617668784150009927394795817578534187619771685546209373057038262938480208739535815729627348909896175887406645450164829051592066215707165473279999147676267719875501014613775571675078787480488324575444398815779057168247666868771901708614499059434747055244948584961964371381125081911864291884259175129313758619019484064429775814884744294116559604165997974176536476582853722718411922645282107278810087140058081406023697382639744512248365701671536954401862579926071863383892329845950336939956000020075701189408164724027537072863688947439345894084727797694588552533443493863746885577416667685315275156224896688651896933447883899920358319498889089705808814270269695432416442434380444618047428756740546871216158049194017698132187372543984338415485594401434756180692582143806387025900295853197406114766249985375658079449569111241472527802340031800144487362104533839433783396219409469286119378616575287642241866652020329411861048704608955240162894847775945909255336075705786030754350432335895517626343040367845577925056525380663219984320674940105100142490285160133811581625933708784663439126901283638326887860886893172736310198543490628536165723389171630766314508211794825351375731684859227250699084590913136738811205318744499432010934304224726066578867552589963484587822607961981494758691166805115112834614078135296618630418988415973612954337241971837988287178270699803717321239310711302254523003103068961001402988863536556706361710594550844070505221476614478599286239533789278992787718365985265929663778734886223177470967214657164917251622997052071695272031875601201533364697525179548669353102998207075040749644881325326108224973127605802298689404395160693839424171165556449253023405732588205521881015326178766939502299654560093681721882057172348834287174726545804051545452754667152842929844757337498007404978275209266666878581769162750397964761133012520748266660243558112680267798995771023409145608560582503208763788244556782182757063833717601963087700605923771580848179827838249115702214658002549901196633047727410305869807268147023755233150315093537460051665581537116942540435409124104581587590099262704022282739913266541026954953770419620297539207536312745954002618970250647610434920018454118605505134960204804291018718280393435999339006842737240440549546828547695640016338686392349831389814703509996107710711034079215522233539171618736674887235024660467450242048698753601059848105115084329817182519639077004138365224554437551026458274176385396201179481685088411409458268954780074965117627544512725071298869976150272189146073825763894022764010348779301607811490658105704000061796414147351640026130056018508300432272358388473232700975568797370686296655878587072955125779729791581114635172036078375826323350093256088567602153994124860520296390999465691271951665677461130746267396694571169646513151985131922939703005214505133134858963691131550272500582578218079497136209540052303470363265500004586702869107741529953645689665878032885047202863676743537297871089693515129465806802767556342131934984676010770187802341722928912108922737484288533387191027746510761470437315674250629529013902024079520678416386124143980062724264496500393562924965780000446480597506216961226495549845973192753572975635330110746905805778113704232971247709040946329237728032500276991312030778509878397468253525317804350223795376989992240430640909186339691225806941169965878757626456822778550953052585866373452335516745765492634589616263421018598840176758133964362420867308785176350045993180226230696226948565636420057080714292139741946220841856115995174635341076680712946264423148471061635918209989166096082353216866490797461323511225823248310699346500693449300366823735551389389843671240010844436184498019348956329069037691415157876760992783046282028875698170170211023028625083591597745276054838353585003585883729579255389334662726939393731322593075447184499703011744484600970805763943682679067755325856317737787224223093138850461803193878765067285987419685127621882970900748751164940640599015781154519028299664277156393319720579817026056024353701660014424734738937673978848616226430427562254569813430786013451302482307485078594783642313243437350989525955280209340722122286315505478325661457895845674743785142074414134762790764519723577486871220830035179091733900277782744866732144529335475576939715806229571930860213689926115028496286587212519672419561465501256730329435424003141626799361068898927157139933651585694217901376176681192365434312214200080633806416544123235736484483195061404967274612102674182064585509629899058813113234046272514375274016807751033946672842984877018865221816276164160510967551438448542775787171168139690102444050851667550184846452805694779964103030813301074490401659281325011462452343248103921978982211216123814880302780710603721765377080190466543479428904757802465638101308039785775638604648107263700054030656814405161245510326267839953523450694339813232569272793221546443227952516237344679577841279108184546338600165674175401862890074312654271772738724837108053479454823520597440080190566429219733094036297646960010910711815613358158284678979230070022249419463773275172474337075814637476075331077252615382488453032749594436038814812709906073788878313237369604832167386076182169838547659567770997355297195929779425274131147196441144184536520849753207513457371825747070063790175566996689820403778351738281026862565508458482607036087135128539968727902707955543122599099390909876869298872194215590524424190795882683418498038283963734546518754034908736024584221287749108725355694490525408124385488386755957907558241414674850236409300481246419849374934236514444386808510268753748240060232768057848440353296848206201546004891414407748728333674163396757780452226595454943375498027323027441908546566274781301217338480659435884628961313152711594242233487710164871856116728847486465557928015907764116611283086693859965701149277963801582312091316381091449827339362253635208431981635377342994365483566268391050863811684853837121097299489572322084150261306727128905542708501686643108812565967171849436720370748276040916777097494538886189289796050937398445861511027174798272695187324099880347391321479544143062906431180165257283900607009210983444302071810475445034000023068711660805697100449238143331597161191400537571652594120345994621626727237108784784705385228587991446980093464718827915363187901181479138479096660789701190739107533726537821415158764115678963165932880450312633555522829646152885213359449956395959086260969579588032578790179295010826919966458103583059069315364982129794639232134810256510812901711203509182251966627552859892084445422802250805205112073733485715989109193903593062551179900424437970835011574507998248058637722601928336192483498983573429664031161702772213701675968933867196602889178386425842853338275389800644640794840587862888201074201403722908523690091497372237815871691945724807813269414773377111025114528263438330280386800428818277958751220797170813341251875563010844289491953342879023104324148414287808185416764196517073239388790128633582662000739770349830949537291620374501250743431212561611733950301231774681216254227913377249070027543660639631829824032552871701922807660194664418674928797900991009080440946205180083541514288938775315164618115410999349650258929296426471421804199321096451574121649924930202848081253970876981399304454550279384584104041668571359425881642833458428582950101609251126241445785833249383075052909174237339268357636592698834597571991382646035374906207675328208051023842299017584136957714522936845220011915428199283129900932476837424583995121561750304178435221293687540217703629844666665376643662091441305196074097283799118986864585112330559136941460295286572658864757250025076249790783669515130582934620489208838359519495594854069663454100674566202739747126522154737476933706863641991486319562982239735883105292406666884783623143596094794239478458270073431577491982988537608420629318016699751131255429284944785473548211003704967706003196810209118702863757564265669352656998488468408877997218859252685227020474278895364587925953092896641203660037872018384629170680809342040931876590916096566843955217289060208061791754852552869030312894066096172397888695871022383429530189362714568748843888200286125128749273385853251854138719555911345760239439549544221130610440274006169726785566147151601417634466044087277134324251509157682835069576197171546272594822957618923622097587491032413067928943548600325505194202500740588939904025747279481149266813880143396612598128296800002347156911432353220602031079037854980439069409846061018189514318833674146347059008400517618160222224763635888291308323700033358151529991961640492614697666676144968161741754711265112724102566238406336261913060266825216882201580597173404352390786288583640435052275314431157988587187006422886819725666442858079286696962584105342868832597841941100003116668023818044197789327045416132226786556112515502158070815636551515887973591057164053653843012861675803371524282875345050013565479295165527245174780757164843260625143839350276870894696660746585832563745415945539547100998952681541263536589516259790961619629845152140335718914995775314158100412654304026328202864924038771745102616061707037538553809555814340901517366143670353158918062974716074775920833923084013515966157150929383725340640329128146030327776752217888722536964197281289714985597424357585223604982095032427424364135089390972947252605860089902546647745678410651335631831944949929739023068988982191610878270984464631626976431008078824823887843782266263058244374544432581958737064438743019191818504154912003616887286483439963472561419861982312912283433820841813971792375994748187307340522213468071420700444462461313806751866068469971980485966188226183468477888676038529231717619902581221175166243574522408966371078903684215799320326541154849040105650520237420215795981171523196034126156526018899575892817868201827594154234329247165975230378612077175921370669093137849154413226792576194550844097100912855219966143524893457878510467552593462131440851577783333291143487933197960065903890601244737198511094541848403539211539279083185181440569470998542690022878091569782315277129618616507904199321352315644832903257441960008093988318087714704479058787248488334881961522691805511048405186023073917723617003881432688066366908218869010379160698956234358402208013555679548312044456606744574157194340890269768340223024025751210725925400067825694087658400123005636573442315754567201281737930921071594435430733840499195315646005444625261842769795932116758985841918321595354089183690644764326420382280736249750791626858375492848532206586556136550719778082845193323024077497052553287272751706622407983868512652824330792147261759456870832465728750432463611323888481708451475335289822433262156734676475785585152073903060085027939291870335678039958900183294416108059197103002602663046120079626313050369869255687290857692306482068019760319441741503027000209448339502104865614243325462079520398408687415910266392494090375370898585212629547808146539189659045394591595565067476616870300235206097687341475881768022337165402846324160213512457864712837969787838020765700897194741642322570310843276021300309060937195836549830701247655568121092541780900648616702898812002290044275832235205580035413833816177834069020005385062733323293169350334509176178305474893104472077042203827385092900939232260310085204838792434026739385944829971717058895622986987304907531027298027015269236790369600778599053354382822568523747410568381141769737934202290767407153860722377854416716054462250972120030194010724576955351399049886303726877848314769592356574519228997579064042349775389578262689276746760924372743572381909400774671860623573179851527942928574691475076624279946054860308897198714533336604914592013973566943568891069279121497780941510850237857357826267244649523505939952690077561080583479694243524534902765676934751551732597675270993788015436310373304563000779914429304396215853848412847768732499726413510482373446635981815851680278623315315615543646987223706565015665287402254823831403563713262969246997308572789610749167396274787203517406073787760186320018348156452125548961769186738311207113863393874056456212799827164599209935031299214544425870778387812270061241389796862097438147376466199543164335775852638877439523816119529257568002368834561853870715979455882644814283434432997655578180401644973160939393809141901579999564237795608812500186547231389085451064789111364976432097222382985789740678474482898814692175536606609484366837716518047710402084603209890123195053548057838822440693819163769745800639534894275093214839657932573605482996476602794303416739076210075014848130003087018715223600995555326245167085468265028192209641905967897941311531417786579964603978377073802388986445080191965214789513360023892932029892670630129940798281205376011753668697629879825241107207601787123303655808852061679642088870323727337422194884364203591214465215662237263788678362894429343181148949175757393963290170113237937704813097900696880937546251916242184803346188792725536722979566236531582772003685400374054442681987945521878035893773481932878783566532375173729346779951643165752416841427249883656828403476510286825565741273290307135967797831280144207846434365220476065726990625351592202219393686189586241797530691198315767904768134187225093317835346601621733615216660428268911997277009723773207481454551512835255489055552987000036491839451481344680810038935824687657651816853154153139852433032042177100153114699415978031718694993990892383659151134354858290693483221303983114611294280047489205309565335379634408499973085949404587474695995509296528405649784162640514738067846611948862708644701350339374407491274142938406441989081028787263039644313746522414996281551448165654718258627311204753560999133292618817019154947172953938818796025804315837967376062847456496848934192626308969623392391960765292760265758535773028891162687106011657925359059807278766148116533870639651559899014281504090612239163396938319687404986813795028514131683064743210361882205320950532488289638072024755410203907283194948068790872334020077326934457883490386361831343535626255754959311518033417284889997921027606695591246506594576029026268597582952035766306269829063833835913868860184159912903790541975889909562651776620193183152935338016640522365790711768819689202338976356950335280669099553477356174149418711483554579222650576657512654766342785808894604706521112976777674386133010640948997807549841486350753501672816642818090837887735539923426244441202368672490194495940679122709888068522629393122734278544194286864462241342638116471291946032946213133149256529599922593546245276726695967886848530917808560082607123353935689010087776776476430796134898154735957236709628154190701246249586799041535815549706406097076986301058101890027261816742994574910887251996091217045775789993314054717023294622971185994418672921034983440879466488059132782082273809389550011160325350654469321129035227220132839899637519917547145936635938255724165514910773037367385194312929826267645725311291607210753479226856626926358155481409927561500195357515942469719662629795596860836388616634730288969911210384013917271505157847098863728835579490565371866839142217134767105870872883021473121449272210402623768700520007035325689789582284902028776308012570545027971691695884763572274053425019297535156935706415071508642043869460129182860734187746250544204355885404216543562016541634481405892310580962044460386750254669977714635005691716462442435117916168597385506567045338920937800743379452574270397122409472168378847271493951995069014379063962350607384110097586673186612863857279154056387981568316135262988719312651865326409055277325748584484634178673217658686728221032971735544430286328205031519357649696335985575030808243188004409538207023055280463933716460296136514468589638473201504734220001654530461359735644264591160882089656838594116310189490311523886073116002789541881211495487883016490752074968850171591264959528714607728693169919712804571152596386252714374753122118613117927041177141314843506624835857992533419349766374502396603180464977365952967968312395819593113014711231930618991127807628326225354628702763041283182801337352180749660329436749533146100944539915880524458809713714703099566344217490640660262435816836878658681895252119646674333918598228707640416444882576136391286079144491220633353731881686946410243287623856432616071335781526520176918031455882245923492908720836734742800645063016734777407753672316353996987173344465681141763459487374498302149983758144735055482676342175142961598937858141543359117805056499235241036526787811449094511512835615324588318547785917368579028252411020957994122182511833781742817326783672771459237349579594306502286933299276809862901846581746890528689060339248413777155061369854090618737158909215106169167382327746981319661118933447119486516926408780886820333200635617293880184180443034883685789503571038800133229545433869929954945638660979295398301227995012470087074649763484092087495170329616236862237342116424090037511232120099319941630611722918588199634875462322036414013287856346370412556799062082057535080549578154238245898932856035369930987292114023275618352016740170191588468140211253899885036864369698727182957871697103038456403019543974257496620839508344060095650253602609345448301202118215186169766685036513778621499485322304497785335645397011327341051325152188974534196336050801485772712713489278658046647349517061085534848943709210875484026932257082744183328251151658685624978294345051304444916478021228751569440177664293291341353450258566957035565669078134657474590684004434575926739157566506097341454691875804944001194671236962140458955671848782763488441454147572886347513485832371925605881997085986850241007160705748568562137467674762102832543417011938010442932728328505834866415347773349140996602384072658223938722339087707650445238675648157340228992724300441090400349836598728994453002175957773615106082452715138582279162562917325275455671334995643908750442464526621739799875011587536175826159117265676887764167169352458337546798957400792927044642755992964581586771197433133880595962966093823687043768606795324386523122194014508985442107103423530007971257726164480931759869557869340478321684928251304858080632709371957682993127376426656217029696932662129722971684058924832797116521894720073172517177055454383104691098404989995454474450354395931540835903454999754740668773447492000025324880498349127615960460284048455781173500021713832673347807711464376061968470999170744768532256953192939333922405933719927683408453699122637239699140616084266455728904584404624775457280895853745474840946497363017178487110480665075092847576000009667980630307915403188103776162494510402140076689256244905897297556200035228666908873141051057848794990868758843340756973532128043448641850885581161535884469257478500157445456932715788815840435362393651665051848911109181003979630651485720300332904289893986313187104027107431367081011752574208600560395345903865495157473707478949323098329814543491769299130947143065640068287244546965340402904017723843312599558926701338233160246338976556138913765934098229927513845350327663166357090983718759464407419308189832856592255364413285110961826726009455419857211098465406279867482725402715704161619431897020696430555265293036965177314906185666451856247013562970816208761674163976213617804122064472331776104530726403589114161334870363651184292072777394854762470187693124837632350881266009193873768919037220375793812020055965471433836450928002548545763067785010463246003813426714663873003245978237178579610955604717178036117219808734501155839156952828301670610922741062333710413090275879286942009391348191594538381074212235347453818208589299045966013115765437420855148535593766364485955581467986567452718385540966979757081141758851090335557131473598553642439454197431446720523316074454215420801295316264564235261499792925154120627119547871162479747865936367666313191661179319916166236023337607525400344636469471392557068463621766327672116417665713788644338628151506845033612738997077503159706593360665158251185949144070611729854023028181621596556571230889328640503127949180923678511490359011604442011723243391579217862132583412075422761071761197781651745228650961976182988164139523985551471975742884696887056636402842595537082333036415175703043335462972456000831060410811311691196641851605255862143744831913384793407397640577478186266721826287076429979122016280471515159123286271833349059792686398683983137447893759268182779622209078588607262899399350796767991871297969603045920664000704767532743717213748824946610008592183855943812921474705354234937891922819219723781876015536699483135985497848243015358632973279308272754303319750539725974400706714894609098566213866678785667850589272553863044103403331325666286278705716311148426155038775892412409341367669026142115123969212972697460058526231378098639676622071417567212102708396101090397397228100632064558009085122196330586255137767464199511804606061567653178084403663277730127318082416259377216720460825779663924526203168710434172468418105544688555351478176887593922663757083363230014152304399143786760128832610537024966818566848697779639715237976936665154984431121182485206510199840803692584903162425274049762605504633788631087539192555060944681946046734877717273631628958417444072969563318344420258044849082884569551790171493673232949510800115614314555767499331082426024119349982766964257035381881810594321772398195683364706372699909515125676001211832027478199731219852896222013295081838052468000938347386968090674228613873937487917201704001832090684929918372761691308149269366327736919554080992618756864508191481747101143004041905907322794206224687485061607073641334583616007995083092069309743556473054092541776580032981598032156303360004279411059493951315626951378992676645849470206841948093322891090688539016443481850542449983100508215369703031662529591464619645733131806644500695614950994529565098983693518935729560426112494667553753408133844015579728854671822309719190209669485077555866584532829538737319456292231997258864084425309931954533033250081270881323774008399270870072399134590854621006891810743207763840080630508117919707650251836020083027673642021119847745176675433020758323382307237953225603826933129638549131428494601893388805803407152383948681654167109939771944351256513697393089354311190831056658314169718179915825186578375935444907489435749005551266851674619957776068766794487550196932543648001883180523651976104189570971179637156999760929218768922103008299749176322792639192209804191087492944280271338984283228733288438874980037214781066472021826146656521833642482552202798721581033536932037528368067717018826765898088289884645905333752602825125393837570533519915533678391981923720614983166658299445718734117945357808849238249596205931328619681620042597778303948796998054069268622220943862088720189304545053052134901370246136482266676719025306585044821020677604657007923216921171838378460975296144341888741545064147366190240825019479433996522607176143009075111299302465080984081186851269495058104465751504580167669005968045864796728865882198144726343094541159826978516767956465198283245745652785946513467081792940681711468243570806266191394440120358445572938324205432484954407790121417597319490397720126810203837336119486239585074039092592280112538596275323430445967753464668214339962126195376471188721998222508615474275217360553742843179944539096616785597224127060157494987218611554269517112872037583713058852006473422544444131910697641860680949314218903758521297405840923348649687304600597193999006915980535755821801292457978924990727899098242599937634484650544613656841294712604748407205067454265830103533249608162399971620799887070515560433820008194012779538209461321341174334550015785860498036305651467956580788117747270044430319385775135896524023263034375623737415186941492588416880090080880814337172586321508561381476455690602112825852269987148809999441105277426960921413214854497333698958879517383904600097136148455180521753751037347063893209455264639891566233616874556836716466983874300852802893507486573594158676104976079997242212706306543282490761321908998581930067897094301641809485503532506832689182489407377600850991417846078184272274868788002090133345140147640335507264857917978377332002765485968671246656885812315582649538280781520660062629696662582049926358072710685509481800702457936104073193860502186270688293397811824570563105256146841304449399356134146600331899152540172475116901364623707532374496222925804864260402957648043644379914665992560090431879756393944211534196931555957970827857258355542264840591388491337444607711932954855464501021477594737234911369268473784682734421911163899152234890996974250402051392405175854341163677014752324523560153340850735297320157958319534111772343769870944827278820736059356973596080820614286539917087254438534184692256177746065303258989232363729149270177343015931578309115574802501351274206184193127658238071148760296678379435911478712105051154817063577497480308953826880794747677956480146719670202517532351275410545693980750898889751185493654817445377665349137973862504237827161087709774940984158045089229919087551753290906268497891371096306663312500439983372687647268527574494380454167601450818331752621219503235354471617536458061957593088946101003777865662986943399172787804723906684944461631447158872854077696760570255431053567831592698271743401971391351980750906432329214729406230809782411738240035267317696938294198103080667827112499421832499766236792121881632592660741318058229268334738013898253761997615310069227369649601498881735465532014661867329008470386797675649490980379421969390907433235770760513013123594375726595615141290268791821379103654994774199752468747957198498907278349576562392168736444791009776383023486601559152092153283825808948905209868937272475549877754446290307523477366157693755743125578575366261214997618023555029909740798034383317363718860857984894852550752322611276347402822212451890745593971829271904712507345479185160706663026245053531752739480713913491019547588632718260893077285359058014883816098937586781745389125983916083034326550068046843581017943133915922261327959804760285427256613914189615865548347026340860687469590875338939129270545064670796153440392494166293288826465835263377810568775563803589811355425185494037448349369248315780286293692996682086864765189402446200273602441068647972256811233536130851831134735732035924291604496779832382552532658584559916290715668688734855422687036749858201368891466784050917641875804208335110856295514704172465154338203757734584217204624306502268361790479738872986700737954704779690684648491848686687739177986473119278470820774411453134133741689430213117412427309281786670834777939577922571117147930961761424627469179332836554929380709759629750922464235737240526538882608089499793558047061359000472705782410525942994933331078590288213748646322392135206067738334243814595208750610019294565429648632035267616451278993855575602244629691594810255961044448364162991268708096756657516045584502478860721985707143636798917458264839438097925942446918439429066979623952495650010804226004850974980571674327452244211603793582020144834384470708025325240199337095906900360140074328417945767048326417560055202284942002286166428974192851283634705609273049410825408253385765696440064560595471852604253414249782820593572648609769349194045644760321303951470511488558293216277774695669057872529133271361516026991398390943943160696590623083563799342893062560957653719714540367635188002617699597959566365221099484178035233824275652103794452964017026101066411363254551498119340536723833714286679550128588457999226020298360034696850680710804450713524749956478104365684245642603316740174922546904430968860230326138835781864231444156091336477315496244850648989796432707326182011331904207031492726283625939937598146570215248801872590565295287455591530418086437990788863783792704373271123537906123847196416669534538186330713839792821250194190685973308807512064831914223678234623238246908551677499834244619106217182528670623957628611110592766787623313667388245536862435909982388478394521389797969329561452094727420038590605950321209315304062375394203705942575877220180226735175542908085231760628322962393835325942836336183530904899474787826308958586316372574071966454439943991994825108358978566734141396529776113564330274913649327307119589584556564812995828881149509512405923308148555509939381272998447380138976122822092799238079733349336315199435295019133839400040608245358108839584573791985724713824485792998319082260365563555090292614517892456005242075658697260889341660880095692924425764634005701754065145020951552437395007499244021546493303313888337280072953383586655360845420686475442971698282355137763203334133180277303047435854980562598033309724406088733082499345648790873611319797869533357264245520086425662275603467661749666645108041965788559997786529146363507482237365972695380252562828026103355150201433901841729697300910728188683570821491602072833555634771066815933704951242620122869372739296240753123873898956444774547428597586646142368331998070122084197307202224841028888967641056027337812463409295447749680899149108053493474542912849215023669816941033498261278867961580331773972248031616706634418727704085305821135608742068119260490609713521610331534235674719578853655779100837062132693112643373122200972892379609881610916437469957667524022977423252025934647708066922495724571463324545471911785857082023803842121280114177304212706420846840345960918842346452030435036333906061294682419568282211505516046329480863702250822075964956741714094769205932786052382982308578438944965486878755433616192570110441643456251895375909277515915119251379189858793613884445911497949804974506883427047968906429259631507542285668900870800353080090805544953704350953994733363461226919489964307965932425338405904903696855056708947527839885511690856709036582137156014093861167613178586565678042844102340942968090057849101923969384987860403653436420864492068752933608933674582516548735042644427961799833769086264337499309876055918215097445128133352090229167504299331211607903859235686583696560882506631608908112771521427301380564743851653997248718835728418588877870418142069927899600177387469173327934051916036072817335302116411864322560572419099700058975542831238033160481066280793378663200002893531248160791665648000819954958767767876635638692781129966950767505005016384623786994935737294228851875551456999424459554184916237323649280590952287521713120584677690961387483798728574447760929435339052124242789534955137700101582672970811416790500352716649528801674141194330800296437757230159921249777915432580044822398772494425245372273855280567288019815334137569816523515676932492887425709232985191782819363976636712879371697411429832243384731615009320558997015139572202317300081201892353151919610369263574794895572147163572652889150654154065737378310484502661298727632804650983178730773492898082212371255754846519914605984438098075349768513440284733384264768325442877273481585526694056062418168594274556763533870092225011260228816875106187460310119520135955288484983947436584629964211507997054433332774126873425420456875119279310270992042423822788889333964141687906248546653317091364886369385974509002392653717211037832267292353378273059342110502217396997245765707686086633663819014007536955427270470403215750493377396861241066004717587257917662601227585319907911527121495725729215683558407944608492246163128699925553508236292072981073702114469013347896499328582070694849757482330493269507952263023691231923371831595586683834108088191053568859829486425608987009385795837439260400706663023439896120436992195440218256725893354016961473988550463491329746905654818578902598753631797524847390906226564302928454124844816282510916750821582894508954853595129020641333993364399674021201355296385166419922256335706941541394968328230554752163288669029290146348987851653667024748798132011472556153389145753169688730201736567673145764667420455137147181012331520249577877960980270269699506069246717102516379876865519913990599220667584352820662453730114853359196564602939923715725602924509363123879086813675003670697064804912940087974637945592140778324463197756974450991599950654788271752187817625451177306100003744065060530748685297074682302494579236853641553902749323115558308173459845171447946842393780387834011078109932089356606169754993027070481104964905802994468367988036212041494654258694273701237052252549153523141460844779472111654840630350478605423539495384386683990544641446718037346071128430400943331508066594495798053278123062873292607346061762230669518159578435414662401132755275614439613300834614375802670846812992174826971471937997624867321932986197795245319973468447016424000318185981501226832006572551637279966029306622239673720185385067735524655278029526923202956995336214530253454877114456200165782692125783338171840032425190575461962991023580832641823904077628773940903372099233319866954145666247350862278513765657260686926570769325272140639100817507175680146499235002057632545358300816070345667832305721739553451570195561608653364644762081813421433944717829627687342821418914720764047394532871625260601917241729583565026232245659453619183657626654622700440803286137800739781146006272886160160812845271819779351133410817933875485531941638730820220619351520943777599021481448415336591806970406704065965158511966768561001499688019974353283301976338197373318814756207288908573700527002662614525551616027599047075418503676005521360457053217652821424898903568271986292896605828097621768853241640067674189270177376279897932055099340616605787348557813082591802198213004320053086647152328848922087695965865175935200495037027986520126058171295223856446428712340607953546510737775359731855588531420231300500405717487980196303824349302885940687195118767917615964119459648388546245145354999793025727403853913553425046947039062437258340909205856225323779470821487064670566761440966858830954718716942344045941761501966414499704343094520862607839029094183678106232029371177342951434229068882625897745664762514953721000162964446614868439931655263257739475384291500909794921365504692565521149156084849995703975198516615935201265891004159268155246903164275105704730674850059715254107758866673575280460499829829009361428850290884089754341669964837036886974375513381387021593024654954673415253237894577095559376648481679383723427090610475179243745346845486684435028462026383820449715819151511916602076482324385953834969425615945014259756641848229088860760936439365569735474376770504850614654359218133381154581630536344858258714572201617462205693283116023349263974541460822932364980053446680829084677443143478589727484373722465802990211197773893043712577138880098456704278306269745007706053707713853617978150903660831675886925456557015288853860127541350865165069429167139535827245250502653012136026930450289454042508576283217683417563422443578684145800793231844130472503893575522569979579434575711148603970292628686199874851233080935013510822423407272769121225755757945237244192176627473529164424682521410825287547139654478098354645478890969549554544188389107100196893626994638863719444640605989205661619756424302514348300557293040867042747199289006683894702851378076741935958106612464486806124099624859525411379281199659811505217813540743688744369296229920715027036713744390004327709405971866627958494833495303002489302462614500396835921517654901516583381623973396948613765006912420810672869523576433295643457885708810078835176678681603614129267056993291350189375909560997764847649972070654160248067051950425411924270978729273662119808896331350694231260345539788294395777609178363089760085303241764966101361825590445911609710486744420916733767390066477162938903248145173144851256202464103647030800444047994638421961293572725875525044083409361957550461916405670331432058993210585481432451331941427942438716220792787230955922213742996958763938863267968091344536880014308031742736221196329836738485750341174977025195660478677624228679600237089523648107659812105879491581048022443762247631743118124037330590361416923625321929837490496072567437297607123531787045815685511318494418340014865137033750753837275305098638058279026501394200469350412960829299689484966813484718935404478521954350104643364504754608788040254100006528163433302680964429859563932952333112435735477567885608439164452138493835144692524234007066121548286318783683834382690926865594211717463190841973636360725379087423660834308644039699896974890798104244665678822897545277668975158313075331078385412465543524095950043361340763813070649705114549155714362689863740121943514588143315274323995785457307176079873480731011506192411217859758667860062063442443064500279365795493592986145475989338957290197815265460688604175321248543125753302176054359439325070175332056937941152047682023088735777061934063375887127262679631181621919173994481040516149937258234297337685910245123858208516530625251197706215047644596428640828746204966881827846742994076363178678384302069287479750225371422620930777175853458983703339620543564928904902018401076008421625997655598171222719940124366852503649237711099618976023276356419819638328102260564978870667451324299696912723163240926187652668201382777797960791689644284436874997321094747319796473740417399916559151328177568408630387455897566834351365732997489278223132207717424328553507190208911126192205510876137845721031932023705067436321951769091708713060875121318010177804840883881704807245114278511912428871605389196176066063159793405230813040410581808489889293799778773933303135089787960061000568985009224689140109043339138362137236436042820002480526268084847167971820745109185397731081306973461447541097971488723171442154561332221181304500351232826191409349537351628822024115470536080751107273036893894228456836204384320706767534710542494252071347179634719301797865055092303156648318079208559377367139584925944080788997587386596549995068068201490030966567614831212142183584462571249445894626735148736485538943520578392398185015486523163767103854214154091746461569972457914989884513228774228716157141277811369910964261624663304102728355894818730326246489372067321881179754966779074685997590284536870305393729962865022123977042689694746626668834079956816635188492820022662693424041976972637185140558525759390412094007418609047104387106976209302813841823201290651969567681160478731512428727392474480138171183558037475884471356125544369906414732693931824270983430133324526290161916627083857598102665340564985857518541195400535667340473980282493464812130014814738441257707915985862797297888955297224118803867413435591706141512457327137393346379134956961199596023968666394757893096006157274414529451330906174000821599065501235376330825048237486955502422402191632625448654737791203777228775456043594423872244574833070410858628130847541438190432158807418678948119500707384240442583701045076954174711862645745249595332886246898200696737711781731467714696455338372019882263170783520055491687392548202134910672990825869985370393602750753570742128098336064851916623954790936579721618432319278380924943996052463879226996823648521977098213431804418589977037802246454706259221086868225586422300201607183312769238972184706616038740254746002196092661426199596297776542367662537823514775224308194553893344204925478960131647277627183330297668744734084683505137813144240343307470310652785187921992411043507079328792207830182118628486789992490521942475390518077973675339955377008788794754658989893463662631339251563676260597114905454200336200920431591953708603582153324643794123769210166713972339168168669837763356202706621170580603347948321407009994560737104738666033640786771705887378399972512334457920566575253097407627827776018528509259161328137757416892673424904128144746062229913850796008772114847776326575289161953445156669143835033045146540699345145317701403055172125455917650562630297582900301322921576991503919512485174713420718303171297351155019849774904032632027561235264004059153022959333673686762404408753888630838518288048574772186701757321554652287381885047561424246252553697221880340266309126244450692426809670557793282920167753927614497739011384160586223078301539717720123541186884362689181784526967775500825341336576096435808444595091168411613504239024869002736110996573287280711018116225671156654940241054624769923434148531469633670929024362652700287625849650698800888286175006983819460376853140243178358085050275569282903193742000783969447331964761838155093903468133724136133665692025079717066837809110046652657171183981240605914559443575022753244329837841405002481107008982570470941263781545401752078682926999479064955575575422430487454260413158754989712506121741951749355560316249484320355201089922475636478169684219255329978780498452419152247200455775898596388462739299118769223960699618140210713891373026617872326535530339071154220876842821017144275075620021797881136267136456417787999018924849471901315198379293886839292755874017419084189673498906680192243801339980819858641920552325416671414269129317704427338693189677153753429666904675634903047656800998612405561200547479822105320458989588965655969356467395418242743161145441689229158396126149082229353598871741021890988184568924396297958640807909007655579255934997821321717245886815987326564449396490670209035285157274792475666955807418284759331388993927458473751988158310409316534646520983231078129644992466256492872880556141462145520328726477378077314076915219236731491813591682453268837275327275454915891673106811069164974561519135014352371121486707979985368944869395075459476323240286334829469519791177107382414956799622555664878617244091272629801496669737682801042579746934539402076751817826112393751551735237938375129319887691383770256556962690236547530758195860501578803964689397012087284301428385373787694810258560533893931215793088489281739408664325507596141250567095217232859792337853984635062397657329097469055257953871887271049302640210012462662087162459912637354266685080864317233551883662842862257740775590734521247569034746498989052668676514500896602462671292507462117951313187120081749580210732114835955191292512592639862900432684546282803407793447313799164571907529387581436841570364747999123234794997229296435046161651303645108456497289777372591834912424640891320762081459466147123573472512777425606344971991184663289257156886732920060535367532205530862718425298002353667700172879114448150705770777058807008719837647082406544204282517759127823936722389774687566755123894387590349890672147138956463342353060733541543756954920124486437508559142042233003958537842429299869373051562583035931104631252906953109382392507722593214180424975274566793986615051735032623746275466517240894594150920025374786395603948220022213004402722681699501219084766139400877376032923760086444017366810378519074194251022614519440837033126502176411378392810868303013971534343426117757278014580080025163761448608329735704234994800177753765035215277761532031884440418861602920983553726000108473426100577394897518084172127719088144905302536411790646215941954210611726155191380906109999716516500591759504602720420402839392343838782403967435071734628410334463533726619699509961032541689893126434328822548724759188327094517341105483515719843457259789858595047493187231864672675536397046366773554282767717833190785210911642930258803947026859340790779817772645495906762087482014489113055318089897272035219196523800336183666762332608661371309479137866770677828653661981571377131709831365844146283167708118037880908633631320469094156228615927060796604305065207444277796084265060709057920507684906473059500514783070433288585729057952951599278339925257897675346351174476749919331354789926648301315992810493115718481697266936674958932103212115522357874920881368443466356678103896116357227462492035872998190998929272922278549345193112929371213830043697122162304723749495966241865640910385745816200568275070529714604296314607950534796176069492030975596241882397818905106229848894676900721538610303047763637989424537448541026337421296085692109215413944667071103179614422728072826313920795574118150046944145491744340205941996195251913447406090061461642158808520092387176214549847858790037238124477246897683012267522957379485522091253831923823209237924274776557757337694345773564860765024757250741484307539939871132288970147272344492226308842188883920803146882461727775580120435290838078148016730066682480171150488520716837483351086323358282467519981784471701874425583111059063165529020039438996240758078344264396441757395415533736316768827336119879514511725917711493554664897393164217599117606672646301182696110775096462564517850597580398961151647781284253732803553239766455512066829691131948052778251376049365539977212728025582458332408652472229912882497566424115991616052098650221542299632416082120702111563172568241347308677159260335227985703937350027204428946491018360466730952918565821214037633111195338769070848694872730558687122254867313896447240846635119655277605678208065757365514766911939553524469869351571173672704917816147838294393987473826258858970538925815048482894009754656709889574030529481160543723434554650705333239868733870724413781695950012325997624666607580251116955320918820796100164829363481872197462268320422403297538633028332672282618594952023709123106974183554426904216383354213143205189881069516561805329664578728681571960587497184621453008355686601286079396193481223096542913942887904079172173445184080281952112645197385886752106332645196179461048011935943240594922466861358802930268805943220851199325793753027462387644794608597275628728209867579243540623117599900397894249203217627862973881434497261572626189371663076854297181184669236699670171221726306208554006978974856394242962408883053084720147170665019280604436483194918525563271352692289889948760859016255637717700267997327676007158082752419032529633201814711025698407987511992429547844153947651117153175752205525305903108398819242373758000795600126111308162468273661253676711263058379202116682959328497443338061801666075908961620003784786749604545299747779740882401137534181142710036201914880976232969069060441175819370237042422907484790734034526399639120489229626812393774545472408604921348474263602220092946149471891801228951745682415258971151167686203343310938685474074585127571481356559260561275607984320293200365790241326721660612161269290363432632141152562906002905461393500022037484121046182110669686327361852077781896948495380188021256809476433326825571771442712161227625564794136333036090376113052340947900131288717151503600856511343395142384030825347830049695900066756283387621125191341330611594230787941248091281674565402636057777180120387435608021527416727096783094338680183853845869383640782530594056279473470950169507529134905625900056777363694675360328649892613892203855284152628103696116607924116167544007302410475947395788372228458006156535416629870380182183324464646414617182697914211605794811657521665918151078362436077169328831933656914104100480175488698032300104121233543588790144939909331923170592693960423265936797261843060287026907102778227602759882422381825788541895704669968165190170775941233761154021031013566439301061737875942040768247809073785577381105608103221872980133086728789271654200398785898940311369779161767014806523369730396538716193847848572632469876054176431096271188086917777882708170277213319978059268481430683096698507321812506549418568222319705282580595879424332542364784300367434952360064040914731290173007548564340737844877274137891978216249668899910918909654626160395210453555391886927372041730471175066521051091988938040709442196107793850950543517731087604581865340859217026392620887475429469937320957859694587349188865096659786718465462976883393485846406553098777360576175397339322240422952652016278353752215565738901112672570576725934563534498881351853993780118129470061959317443229717560357733373895161990813224308734904944879458868420215070060038770581558334923955377651577552972072814812618112460453981015544807274585099159874092268123230614663632178268040580572840139545063724011887919891273408309827611800330870488926259130999141742511536214678937478855886548503762910814897077992974519641769088935121209234306739268958267730019299284313051785367703797359305320429368509696846858131086744136806355836692546677096137670468581368701871336085876419297753645393996997883946732596017633011303898880839177844073639634155026292735665542944080046820289909560409329976152123044712334883268658948699191500819545230745346690705583101246584975131467574338516243471539512450968552885375641242010756975162834369489925411810451278623090712376932447564645992880909490108311534914091206206016916001414068877767294024603681027623821723799277354234639149766095960314768845504281145790206395624732945926174994480566242010547757906541637664617959998905151742094270854262485377334930235272215337866556591709925349680963983434865493969368340102964722182123056829621491570448284774336081682068444380307786259662532989842719061314392197409450624685309299107948446106800950297659501398192012158402771858778635706538163642123979413653658627393696038422177284529237469234374681434494151940826341471684796695059221317884551748902078055947681836973696024231677254003993260498164655709481823652143992771066331431392914226909792337305139590477810187926451552669334799878777705713884238609898824943021075405301057865546561823645963130551497751098314857919174010609260846095090361432210027328282256288379463872406388560012335431003457372041859562095256782468567704599846473162275479014768453804266793441838629145199038346738913244285295625149408554950886028671600865663334258140216036097866212631545918145884196691513515633026736470382234594484935729405721795090424397633242153492446499634584620426434462224398577012197642018867140135141374975077317641224784343169515736824337451065200468889225137579512254881984927661044529364535923516393889777652482249979781998706581662027344645107053547082702972822111967110742204678439736411573462218880312903170679652484608650005774700266433348255791605337938261387417793776475011721661373130475461417855680982542736883322624408349239550853737290751354412306734086282084045217469133412304357409561460371327319875732930918611555705571825239477763478654863114876469678831070447196892389589166687165966810089268763932071362452933743235115350483284815583826552756454689258652871997279596139644515081228403207366625180056767065635362114638227976737621978924337577875597768021946306665830121712337845369034847084130436865651450108206564258695566910288086848698767029174643199131525502491290559272891419801364200483840091479864037221081522039364989110072698165986720992475374350260279047905825641460542950855875249053825071919025990384602627974634003011376053011577808242534131373328553182586572973330025349809703080870960998043478852790846184983261231858374305898069617261120324335004992431139325812229511580935948086377483126290520269370884030008698412582056191549861148405702979082307167012070347729083368495099337012520890258644085298114943832718676318633669891222617612919568416942258812785541527531275863365282909159689310001932689571792630258565782583887570606525053176612566338484072165263347358866353481505759523424973040488387510627357398671416297737096437531437856882399003131485570342688505299953787915299251405407799224810808848297673605634114193218127079512021701840217023100216461570971870640858440616797616993571818864597713847704989707919673526439305212114847525851279767896960023507064783315900446102641132966407757813302723325947734841097687410075705330024361089226969505678673828370819222482308651956771180251419310354293701176889360480070360563338589181856972699443910699354782976255389375872175829342800614601041882391106191153890516289265524824741451702066062422242071227269330418505664046857131286351149819917544537948687818202669053350035283236998613275378095329918742921524303289623582128382298199812196048533310373136058746692520748862516310189122723017277199211436955380387302400576538952650691026128040721116080510967702644699641146952923463374093843955874528845383759907287312703370646847872242329115597416804424917684940806769594471464601420183314080360587687621269827875698281044297375926443870457428314098964967226232409028334628989549539340730044548173011286751579018262747923809073503141071050090576651860147722650957376737608733009213629091076035010978048735184567398901823731061715778517394155084458795766682895867257232201712295206499340778095582914007265883159070930721470818227376204895815968386944391963356252232855498191841730947826566490133257278942909904439167976031405107800732417742338638084174641867834745628001991123477319346738664530937975606862595556352887030635427852201907698076167243224839422880270346099597270238610586431606597381488753965426001140418056243645566601370446185616824564482140294400729699611021053332510423215942802596339805143339009987763047071812643701638021334104062406015440901930203106596487397206613151306152409743917427443409030248704610657069585083418832230170429862726647339967768313995776108303786822765152253866605383820143339540690141486236478452046754476368447555639013849952738206235779586457521419176677140217080352861195489588359823821564572574985561952174933809784448614949003813992202375004271092568724955868868309285996835713022025601815888178767845053164084258610762570927031340456345243650397552704279605018280942354747983245889497743158330276574363211224235606351053233215094998780165545907366654219977101489270546398659383630779625378643101907222973483566129182846497188551490250231014915598283089180123205738572795642759732308272561410346628044219409575503096837499780439281304214704701566498224074892947974850867668434405001805679333652892278361913104580758523545815101776533181428800750815101494613080183563569156670481965388235378843885347948533182032151550162228295902712347316465572419819958101177301538563904629638798800217295903117934093756025254430459182648744191571954745063733338189572408467047508145908774314452329582377003781411095157442131578442868694164779052393942029587651279746038161790614153041526271172747585657839304412267675094120169247068983840117339116741875698715156076701862734341514514069229968890007209988995373879831583119035725376229547187676483311026679162811823907579254195743210510779569873836976018807593630228877163288227388737952918450040198723438537341599387925686892071201736470339930874169747341097153133511660002026517725882922658614391000455898729947956585280667202831458660095677933052268370082554973527452577239070752284439586696303971840153508908911731736992961691764481107820661802204585980137448631760250671718106026136018727062206695108528377351478362645264482858042559143239778507517261198556517781547876384765471411560499645587593436336493116875513950527461740241442247526290832147637703410346205004219394042574259822512832361157299186683173618482536388786161749010570159350060448063994904770001487808492545087958972709437090281903278798551528637375888357186530696715128027068892232982294788476125186623931358067037897038106396489748868936914293338293963166603684511576830607947006129269050682319793659513797665248792247330326362822614789114824075047247895441289051251569525282913711296507512258605412110852553744210528919180589586870585664750136927902019070375082556928393988376679010754967187570916555668747141624103370070581091011791198083312595699278018433085213743975221582921479061183415675007647509410610059751094475284905532256424975132439169682084474485599833723147512218628545870376456376260018605847407196636358980563957491593041551849322904175774650325972687687132459179526789610494080194714301188480084259264856017912483364162778539164736915477009596454947091559929378527187908316961533630065398608432052075440413545051363296024884433615400383962764679286518463419841843334989288861655633672056295993549803289036728774250017619131871208075931229414317944570633724098374482202554444575142690644117460484916320381802230285477545625313863374107137442561122302100279588471589934539545228858010541573013402402598335482300885863566388633644990985267729844612246808211712864755097603111902839573198809774119633199400186403324210280183965145978013297481700202025693315227589752630113046145379558571518396564471226491020502075929070300005893460567589747370634048107964173687331345260955748512389766655357922117602713937781323114569086410620253028595793200705814777828774351900362237536833060449359395385953028498367508433557303292761158750956524752427009738946071177239657360728638382088947148088898091741612273322921278613909835020775456375266798851376314530096384843117660736309750697345701690444492530641036998690353844520742810085363569679723033140282111012460157317324031096701281204146845891615783077946217562753383525076565784482717233279342237106775026777058213650629442043695268976153138855262851477560373849443911234034936386612851083821483834774198690059449695431783672908636281783468533845321104689921901475136667556491243166785388838266683788957195459320904062627499499217091407640920844321488254642983168676275339639782437522014464943052736531480121352067757193746806562493420195412418331047312279994390197944574932080214554596100311782865263303377474757207940931429318526543990993915174214188995981272905338249490649682068751271207419743390355243271248331316679452962856283172494201689631471951437824253172022526984717296308277319589503373611906629395140961305889035751048604533826921889982086871230537498146646026904395224379889813672711087549817713538387492412238760300714503545545612291295688800009696229632156123928599087932222891924856622123132100465996999010397576481565954221900625876659631609040380529629351053262196500424133571422839438587560400171876695988938080759691828454774346326749693977013870832827030098255479253115386604702207197100991464696689920549598197438987619795000272513587442213077766819955735160673468352460540152540366032067575643728055976866750829120129255195699789960739183591092408781165355218238444623429938750287481241609193665439703178804412466186638427206219017644312292870268569477379089299405215873252978069216718073899557075604164529924095526130010332335607547002625172396227519210027568872664735557579628569894205158881672687834273594407695517031611466642062851972083027814537401232715279089290192169929626018412209600748103042919588153491623405315530274672494723637990294236459327113825937472725484958459331669763395682509539770472142785918515070639337264138743573479279481549116326068736024379866287507863522931966249517554689022497045067256445896797823038910209880045162686588284851269659431330487446762546984219170563921289228151421736546623637655020316760400289759423018772405431209128577284408958038148083172230534657033648136926610136963877661230319928183246169260317765674633525835665658177752384219674470847161285137799495861183656341450842917983376143423362505877598205387213953549534004158683206543683246308238203522879110396902762407257141387898676516182025134456740916908435215041709373856518776571216379419342765609058761326975495119673536247769695967536916598940884165125075801543128125734438855597772618328845151522151290544041672595159376675198433043583424135674941338069267290859119097778854978776580073267555421543354717060632407101260830561735112228793424822037639587795024956747010997710172526405881110444384219822972618252410343137730118647109152781343017732578066938332924528402010952144897863004457581808490112807622459670615685874449079215810701620797268931500248588928880482000176535126467847851721327765441123788800116275743014581974375788207968676969842774833879747193031491304427262036646031777513221408277468403700302491909924223400070224127320427279579526443677820397709402092255745537073323255386643984782116037182558562551213275313635890463136725419066642345688854294872273470140542797083132622626684804640446675678698207516722693841812771265767396241094769595422834547022829018361302090251574388644725517635945495090786791962713347241184700647844435460833680531710436928911968414929385641230513826049155438066931448248172962483298891061770380454747400235014004744178462657804059194862581080514800459767332148810615486498482681490933850190159480702191369946447897046374496418981986681960153352285519116671629452529262617466146319808323445270233776518335070850556322397686877056754253996691271417509393006597673185032900241992222152398378178956680439973804493536600777799846846643790356446795157779426791907954057242290494378589178941975849219596980961713642265764535362733421528778206471815178156076795173171507253252464090912181868391349915805680367721209201719373735401307176103523225713069394146882236279400202114784674623903906629225154245665371603735700910925084545875537697492925224324275297240563126717477155063201373638939515094392293910338418079928830263988841736211106141410421032529596782447176493814264046956182171698744894151995140649138885526579357176157680465824796987443721632855942655638730511584002500555150591581413713782976999863264943693663570134081601704160154543683128069075183112573022171586700178325337385152179378845153041951470714425542520965782393706139007773178649260334601941584687523460534754603051252634101586458589409803819980656761539089599777010438959326629067824738621368250965931177894606626750249395976855359187553540983106529367634629774814416449653145553510079988905546198817433659225071595862674079122818773568614652363743058335311280302779911169728740322485534535635115565437241509339513369440230770427629581590451689500951775859996220735728220802496579758656704650790408502652376748723362739373742865021890667581645362250058891178212948403969099087105346089603497982173089140879429758404817257321681317072358186086827498033757465472285391911282649903885139559748113730573324699212249221012613750877689344785213591957241543120695724507137096906749364244724272452927142305751318481148344217269128558192669251089121183218532086346716863796204552702094519538807813904712651686893296243977277746683427508998421251183950726719147008427778725709645983677471039289272999850853010196325495344026953201549638600724384233826745220732323325782864959601043169696042804653455162478332088697807147866533160360730377091093914789444885083287029885475919103941512123135750068003448243487271959553491689453703918948759854185739375337972672090267510767627301567199769125916059640158477900592539084406163802319537616112320462953504619196151610754087210427679955693314800918587375670038583977865067677386265010096515323110025227702115633269589750738897289593798347621949848470650214286812743049609544555797739891244256875675199806621460334840477685154765380415389467516376899762750545755212057634533880608029207239529810554383676556805094856281166780650170103756918194804681704243244590131816290877840900298852325957222271767245866636300270583859529860564482435236934126449083602872661830265865324230048645422212962844421510603516116522685375015328152102203209887202728012243537176885109443416077801949373232993116887586576242140504143310391332443376043513345969588700279006794456979929578429573713927935504434141878746745641629726204611400373485572102789483844219640649994343460030057292035834706550961415126617505479614207719920443059633812087147501317093397710235045223650095714378256198272539068091756229373806350839291734331748762340128628686972521808980630126889721050274775943070177475518833544008538774423234348156249553100240005986880190984120009855019964795676325956194697748295956521354328457238136629492932369566539482191924464842583396907132631213310159504155195736809941228205089256678087902867810338560959140238191416545652607154007568705099971145655558245265823614547367491982562869114632897170178253212110987814523866941890232388278819960293571221363145824642340163965817177732646797865839549362041661089896199172006452725137818708163175250312216890668129224678707175464750608258056173567214486986048115265861612325361066408312258243691282049187243800475151755126431924676152813977581644853037137440944049930459627854009682519259027622161698800549173354186910959444997463311348953992631135168388533649800401855116832643203661217450819992723879484510483618801828076145110929193749913299148598197511491900148151366214616370325956953002898401960907299122486829408741002878564314461438882438215789849154428640034924503464436166569232962881329616237303406048319232919305546328334764048160682393440777524031205940953767975057046634694181932528885284507431096199625120958304933825363875440104570467615775776417995754765916107391071232564191191674342472691739953461551182184707921857693308171231190299467438072340124336754995678909963675990823154857796436739629612214946973571972411592717382524764067584658808911996069142426556923428682752945858252428136468373087731929871984217636686695224419288121842582553081584220235557895504164229502039836361698115691109070121206559324324118592262855261734353368966118179306057923227443943767517635382572121067318213891157336198208191060552125344455888459252937636009882591262113989318261864806822941188748967907165952942005972272079065849200598738431121517045379988839045771509919566645829219210886441613348540940956821528777318987379919185057199654474376981184887124180280546265134149100373794477325191890230446351373891883599854338176752316579749754666355092698795888306726205677861258701696023593427708939220583107128986109053422998325813675899983167806949966686102102919627949704210040144483511841361847783330180360708582783343518862017485007308619423873733922382175135683070732951766812086304335211351132550506372550337267769017219598653471842009185240492381352703328256459816049296896360220554408283873223684846829129612293244630215012050711634202369703779623401462469783953493639648628406912591114751873940059239404660752218065243389385964297709186410065926389933021879866072989073505885497477373221362796985705883637797838827601933128447178518704460999601353064600674127001289372350796365084301898174054102301671143332897237684393968922921058345370398531699539575710890374310035329029124147644946750379293811705525212362999781610255816563629380842599288291694546273923574900665493651346734986715123756241969907863783646016845963357106577806200938300087605379758432376672113883014336641686686874639972274629729802546883837768688838348950277258405402584077187534130856912761045879261328163911697534361039286844454507753434000514640322624951882777714389387813106694505019009399308115568539331883064791192934840830313543932548350571466631369797482087446393357014846353118687110823852598074007792145988760294448961192977968080357159199771862947227168857126199014151073604938233090767361286087842998155929805749355664324144835854932293918070146136109687841087395947567991607201220928267687427771593184359042079110599216813002073385791162327912853629304960161536612834053957006671575669172670926120245554343017779093855611521934534254568053063352969157737059531427692246634256943313963027002614203796107838913369468319427245630448781828338547073761337924151170592695207254800658362966827503516234504440525804826358276971425736778899485017717302480395609952629132094765116669492363496866267531718853625752489856010629447039917383474533294930138970326360981365313294646963489217823597090854157492343938473490421315798850864450661941319373629659334258057663685339393325391458538502132155518842974623545217835098950281459724566505569435213860432707848369884769899722359978056492160837431486385437774930314042651059366579161514382240673899338119054765335358836652116079798000069254848707372696695049766592714107472711491492592400879791888211628112431666859018506987326513391975468787585785031643056117914049657250286487921699623390567984922805975206388537653685237219167272744333383224271653171474139926402542691343254191479373883812472224242520848321150281818026807610824595525085616450852701896383406363465216997003491951905604930191918248145292635601303726134233863313948796467071684227649477124232480492535294371995288809406968492695454950318615043262046546238136995828407809760032551402658945539760988018432802767988196394079848572390962530874410142004210049784888326357929388203569716350768450939557859501450166600108242410426483963679159801122298603615202374395083050130277514591210369307216223932805984441640010012481495253757109132292466014802500877146555572003953357980749358668914239520864679702067556367327171150454202456793484345114253281632687606649822337739435156246074742980765058127880617902147527072043947125085470824727859638378939238798802248478465778678386192213402198723471513965807559207109879282699964943199238979479143395173044585223480540935418637755641238114538091391319379283417200865017373278399918209058192899933506980924988121404454882526433967350396766489319963298942303010124934309245801420066323011728827863458833554907374016996287955143832993417553152268000757051548857236400246992756591905997822170385915838339713726117222124067711259600275798189635516935728527512532777887214332900334766653902444752499724342689229449079753289478635298553347590623923299295673226355922445514915718663015862302792053960999253241220977009804361576718396978982663138206964871336836076887666218809220645493519311366571957627246866465220073410036383773080502756719657245009382049388538127474738270795609164507335423895649340121112274773174323272506417789995200343780318738517079208358961629697773358983634215464544472906024715480564226559953181323618840568580073166136558391003950605237044552924307982241376936492007092242558841921904015381486763539220031187451581079488316958956488691843137714187389134390115326601325747881078234041405483102692635222595925629014880533283877048267641220805644967238266517653988870446605613027997984053242368952903404125909240317589336221611394338338207132340730307604584668538068480708139085056887968381427642837484967588370524622333731376378102884569323532601943140042772184018814347363341522422300634779865356840007113729673101082148092622549871270126369093658764868482771252637990229442173473538617402771593253487352697390335467855017123171013887450028121974370899395148326572961593375624638292927187189581938447965053286034042574928443453658410521304088612168112824945737872024193486530773644388623149345120267589167419768381458104631894261969998728780919270481025688977332170584851066261181313201706124434934127061106480582489597710982792332634105153362602858177657213149763661094482595665309040448119842209009510687612862971922265708897185514667597249322020541528450561114596844480200735516670813789484434758776521715531066419685787409768737190047296608699892390723046532961567443177173628579442401230614210466645429199548002795086969712306317923600541632740439787524348121099596566991398463797148280198700270061059994156743875582036189301043057122506100679831370743172959118079290759124435827640818813359085058275444991697039423613096970053811428203990815833125113252083065411314666823357190872354368405629549359279290586348295488894129622171444844494989524716107680088744767187447285265439856092879769305374452718858378866931734856614749576557368298338586554394813914387724919670591145102363211605146667718941743054528480579012545425419794888694950175734049506188506339805934955160926924260761171518164769873774820087808497216803276950659386777922177581881499134223721115752630249559023306398814740239357901651353978161695298448678584319032906285830041854025266894258079614668701378512551801156509689269565030245786818085139574153847742489628647563344360660766824730039026809954837479289402381640449679800240108172502325840801493498465754567997698302387944703248221026495164398054394643860923064218725534916547407519884230795681940647513265098179650346808076610690142428289039808608947524061067323274994998937639591456080504765475347363266770661930589685944739144185442434749222321850403895035318497205734874568581764415897276371328651579451359087833470154033717635823443111167333179928428801216497233919193554081710430886249012242325812449047824600698082204716055747313240988882825093982632013697890881334269203841626440044712002782598979159131843270505144657531442347467456692275471820756661861440450827546640190488725129038666172225781927493036266075047281259162803240597932123709334936457102902122661309451402620232756945629596602363578215264554924243417794106582619096529366088790990746715353310048553844442885388927869822343427595362970670967684604948498683179184579079823894263077000518185415211211089611267296323440883543976888615585789123554273905163272629543774018117547944924664755791697727994544785451352967372152260675020813813989013994724991309388878482816179734598656865686310724804094355464948885093851204425713205101210452463847776337026809449357709593155223262766196757224103612216273573703680209824640544798671225732533280690837605219630859407634844560797534365089486307647704613779187817800751119244568936985935781068175739445527901584507476426687518383567865605707333869582375474397800500964931399345100694174621033699806378856132823749494645067842897645504748767111622802410991064042124545872168690904933206286744795514437454252475764523141523537671329032392132915804695333989280423317641745069015817007262198864874455918657914799783197474500777744449615775953720449128626329148520380937759550572978107455228151684869592526920340618488912639583037372183221833062974127243001699865807503131295933950148593166169363820256215488288016492300955704630123373619887639530619851375458039489146136704949056361057967861042466169307556434559391841872743784524187726214372265787717010490045835262859751574022275023105622908785871564987227588549370650889341720859704682733248880574462325958539354864480597682329927689557034946391190406026898017269089414877238055228900008330534146565128042078462380799148657386857765320989235606500993395518269871585763674746247642225092312356215937015280620849338903079583500858869365434491102154129301266441441564265243110336439755349107932234775875202673084300740128517074186919669355340622698540888201636902749055975389127113068826509054976716162707125919633739077903353676951507891184529633826971340704011665149378968195111154841050920796151135828445415968970897520901205344064723032834892798264820160988561053551551301916634979814818201029485781625497363033354378676116044529819832304630739872861370158748022623404575916305856975336473254701830526982950396856770767075213738505444527152759836777639390478753255251795382029644953595426577538156819547974582733914185659532085574866650260817197717620665908398328743659351768490183521822519334614219270731489166131207506094210907728232265068568196035842885958537571472219392049240632612670032039048854735071602783700989300419758801903457171967963797184622012337445506761871396612091078592729292178762951646139734370745745462097066870347478860458059791481217266420432894699580020486272175313678773451542778557684647595885015540291748207085012118619478096424881896056125059514432815453677066888905937411385385451817241201362005919875857654011352692624791071191954202632574073923442312688630995685292684778448597250200703348291813733477006382218065957220050481554247114109282322438599431718250791277739029863375495777672488914337313406897175159485665764901847114932677434387195295139148044359622833020963522884034068192558286713108567166937772116353653335854295693878825235907664471289906336026842531666652980037939012231409987148696266403496044502766224820766908272895930887536640159910016996596992344966057781597336727313840021376416896007907221396562182225777276220644745263412885717798979950850140990875582900545565015504990034593199233666186240811442575299202708899768712713100297583500680024349962644922729655209605821913742085839588525205726745899052239803741262889799061291441091694695369125574655838577558500707171127548115939767093835791250569508162294464966131266186362610545339588933349420040583667833619142006856083579624600327131147685425519579361003294735818560598572136262261586533771224709831163058444189793958420500964127957212132988344609588856506445151186693741816646518085986014748265988435333674492185042387473105362031599509270939822134676707758515145364010790516709248846858075226108096445332392469006533972654942059613903218384724897030711409750028605894441446005692092086292724622923318665710633757286257382405849577399299366045669747189890565051094241654856936666962585678779637981606265211105435391794761142364886819276946066058875791275556619563306311822027724787014881143441663581655293092516471937210368348911536789368245981282204332248402687061543118414811863222095874342031875660147709816683462093899933089310313749108314395527383189283590662277436788154695106479499257603199189015071236765851245390808363501776765821548561358777398058317674244242642687917268354008072959857746702011813725428145369416946615135391301501569539481631890413530766614125264975768654014242279628807347562231900698116969855460146459669999390084407725241222790687259437283733823685122501443623216044580064562901429218939428913076407656039474095612024073818756131056781309876485889226567052417467336230808309279661333136849623007329814276369150864624529600326303289160347584422686750581362169002132497729701077495414428071265844097806381758150393247973064529665063281695000044534754960782751860038728942723688481091926326411644366488019983369541786792871789212420863911140986771034109308953183896526611913566308073534710355213613755458247793223853755773381853728670427473990781527433489215559049647144735685312934110090233973709034473350456921372389715852292315000785322635052424839789153946519642567308817925564136887607516546158336031206847269649713138915883465821278787846235603544779276784428438864235928718923043559208794721684164823223646250512566320245628287265870999308937099450646273184862723805894561393970006299363211447723157124866620333293839366704870802872345539606516118802753861986313212123399534854276880289726182632216675505764134220219505123592241553528693960979095839029750349876448792700539060143086555878566591651505917953133943692906772234619566505150555595016772544065957451918687651362162615902601110793770854174038731250452142266419135411492930975831475899915248990548581564380242743481852802902023599229833067805916372642148676080158007957555025199359860038881070525965852534106611658214424444102280873309849427839194219158148144112264010530881590336648310183475774707983770487741995698546580867175228506123313343201213273670552423766870224244660574633321012520622475599208146778464964859415191932408157613904295262911394754846568327677273943585080269816032350716186905048505814837649978852772099083224811393752166872381855095508376013418229545456585419001970370324263967691361792674706560734668784478077404427491207262398887650293279789405262182931962991542469370549638476413144174938722188963349479085919473836224587980395364901968537875270209912482937346436284334756634980563267398291525108799544596332926118802032902308834421810484898162850738474644655004799963081757218501245336124181329947595122092097033790723622242827007874246888464899558426829703933087728466903688915513847085324365303173988668287439663772949307358116048582046637573342553616189006255066956232340100471655022621430119367214105770001415268060361572118193803737662690315700397950705188613370793793149743593040561222484459200074278577048622401414120977125149369542545447049820039376341728914825374475352306220514398444290377746044927495157855125772062182449500878081997316397992781974874887162282444282136397694617132588444926961689479298962242645909677592644069562436740255539285584010575915211578339494910815869617170976856102695721096262057500564986054070465513499069483083986334681710082650052219516411377982339701393492450488716553763261437360022938619088162000433317331482347393028299080008810568420984814171824299227053665761032438349773182208980595790528464616929121773693216616342016231404824575790747964064355331332110530047635496809706324074988831356774024804033584908400681407319836779678955477574473655049984776265595177766794343523643547767168623313993169901459430162335002068592621773555310750898311951383567467075610164887825141546537916648689116749715918877754750399099193670717473994697871628968751313357606753858104834699378850853560941182354975592585280167423901297068484558972607812962962648858030218581445632579652022387013186956139220108600992168474153453201088735516903315279870384264305927268670153102451966499763877920121046385654647822400936506773925220561514210920847959859961385536716372511941825831762328305180129301099853374486866366137512338681334419557136664162614831157536539702312287694803245883637326918990778315628310297824381986956634779353387982965537259912931141631802632448076810315949188658266245614994982871773023061156293419715647432618805831269707355567669962217792454554239416999547721666892227073061747134968873748966919038827215263869933119916567722703996382928728401181627813183259251169930668318202992634381112804570678608541358049680202567445221309457795230675438475291712233883579969872638164485370758933038338032096241602044022656928291548494568861720228888188897275458967181712495669823024507826617539639897873381841364131646267579704981871637790539024663376084161720824976785023775677176040615217241244156914813452322089442444835595473526437564395647870394742866164234997993394110987209389169367219980895449553371028658571725114628697166453912841210549147018916002076577841141373697813617843847507159162136430573297188120541841478402257533989101070582163855172717732148328167121294944421655573663419920815154256164329729492489935130556725278953538747654678078073219876210992295688726154011614827629129417951771220703848497172727838429766198587293023007418192847570952199634071442020673578402655329979962912829053301761191864620817655336551116066589212775483791129801185394427998281769795432833385833570653370800197704450664804962764921517207247393360750752399339553639821054310995370354469017280045770224741452334235744882045696361737482383182960771412488266672246991191827350706517222690289013600321869249579673572114353063252867637691096987204818700983559754300626944330234729351638586476387125673738603781413422670620063199471958382157103745415750563664138596443993991373642843523633856384053244663210958047161801645413921851784279781839806465260536039837650061977672023318516326815887016152777812818319662536881339290257873153354477506818664378733974215857666791430799485116820326572846240532321377604943710326332012381764203291572490480850358791984037960807833602570682988280328775718444055932301073872209296547241496143174448248484996872937848352979530069061446931096080401746499484714109498053535982979807114513373839451141886356352256234957215649510229102718838241999670236051418757335641790949211071356148641610860250171117021454430090166544764205605842454177250601617765834801771216796369265218158199984720140468641859445346055370738496730635127461072760031869580650307408344479100044371620998539090748235368757244964992290114756262928425280720009179889737485208806516360903726669282683929811221518780673634167302095002257581923145137029180741842787289660719060790810759556403817100146781216200175869692147315840937805853358312316237242544808244991015910188589387630371956523344010486335192334695825072445886983430653718861636660909809988466882527301248602779545118816272470184182587816391080307549106555792029443963744522669689916268921057367590747951185940778587529063371438276421427933440498808085308458625084881480105819693264893707747828176647070830235149840895422161746541460945172745003925550430434432511799152009360110072921168211757043247994907492959853123952185746309736093181750817832411803367824113355776245057124334291339007990728033048843019784391610933556094178885778240051738493458551895846474629449743809622842775476206153086897405512174860066868035072052251184636182505230085601843039205523057048312081402752246784667595184982921047666697381420791344596596902246780576847395505181309915578456998862915884909751280614269508428974712433463900681138505503058246202541147134663461102459662124413485853068276411429223431578663898101459351036756557164311640055239035999399744231714628219965645563028364567241128623997399633382651533643565145704090824580812445457950319874596786755075694128876903250826105921228041803701249841006598727461313296500573665369075948312650213550922491997155334484186290102522546615239696065484558880136832475511090350457698341073769934361322025393816163908801219636139326936100781427187471031738993635125377211937658753599328456853785108923914636146717576258963241816133066069153901463715992314988222923768310701405496333705922772220046754585244408849893946729210151837777074649324837371841617042462124728677581242424870878007834409115617499208361509546929968874860027512161744638062671570766064209852202044780202604497632398716598387049361598227280129406962889014732786597055097159805348795675602136683713207332747821660156558033278573537595266586144020327506447559516592179210879957250127152921173617958956159992242361276776234857744366252724424948070990340047225228910581103211616554556884675956189156345635282021912272726827558743207293143544315305056334261150266725673817244406423131505301163384354582177283263224848290320129627909313922944424079963746774141476816526272597087755223863724149090338997793025507857219549021683014866985846322951049350227379696587688048304136417476320384486080818760661425322574730683280790062751095403524492166348818978886137882676719302892682977886267234936267591482394251565705238130782495443815388322637180407018852905185682572978701308963055519697017312766078551660191503494018836613223382576218727113206805594580784723847618295861544688074358952743085132597139206464527532426007906925141207632776852850692736097883842937608879940904987097260509708951929300155972753983273644030600701380282566964113008285644049172050440751691935685902076737992397832006566001151848329429584178184834634711208947653246769172779751266691713838849983107756241321178037658946629263345833212632604783500982521407619901115118338771718217585081263161781239096544702408379615792664165801668132365416642285376160855354362754866050089592287532874978891147051196129784762798817120640760433344021150365432320558008906207964899847945668759414322594844412552651276014614214325671993014399316396176279385259624087793608929601721901538489979363888346759246785983234561842084125222721826338652761042986397987565990592045288916466858668197994376840441709352513542417101828368066819255241930490548896243497671349259062606365921318544031317565552818115025434378083665487156605813220701416644832765247880266318150268461252656703536999495625373509934245623908731813530516595837102007345920904772706360726048436512413554600025174882935229499939592725594591493911791571132647613239077228458607321218149253798593254513755526279038892565478303950389264889193244036628904188087616548003306135771206084321679926774722649214121102777939464451114569114593670578766039179668154875509751559616369948123870527896650974004931603448904479195355582117079244037841181005584736000976200874014288307362943162773989590938031101321804537529389857275783693888305056829155619477404371572549829252266736099307884856766498942105977183942338227374774102365781181744263595127124328083531629677725503545632225496591410101301856061816524956820554258503365248350998306892902061952033865247638949971778404041915415237734352505149810251851584283700076828179136223809161338881403240461750702365599815691833966514013897996277584567685166030110741004453720636858426488075075284888861823531675549646219934275692227610983991652928798724486225040347873464869331279635122230541694662254575976401993234795224853656074929220919924978888607083492181661136643882756377545970487874792884163021866023611471981733565309725139727182278764149203251045538220120393597851892996067659720134469272018275970012042103093500482092240008865906497796662880928053510695490525826846112212064569287740384520878041725245355442040677994219598541855925714560556029353686903399952521295544133097551909759480442220611400901613001642048128629325084771346009536476436596188322692848207620569606053368874248523296926155218785852377331665702161999524962950619125955625600267556247776358339503473080432981392502073505012139830695316357104685965195014285067829271057173540609486533607162161366050466203669219512138939212782841295617946818973561151428549283850578173165107950369899662400865469820437311371753332073524291098128718210051156098040223094261203356203302410502077308183399762862202634983422022525210848210935098373064078088196211514442844258297340937488441646788349282626339094428368299955812770512428416881625562291887985317591367473086815391359637624885884006719520402819374207980085837224077806264724233297982610908097005975578859759044834977296586976158443769301928399311245074611232021907357947862445409838642965550456542459273556797401520628716142971619963169956203118045930377818942066064694225800097329462553955282862810683897944117863900857532805368164044375343923337891490736131886520626806324695151865988728571121301820584092022527991361175011539339062711399396322334939970374884135465486454681027426735368783288166668690372649290689089486384178675193837298810883360407951260396643397230333904640439278149888199921201495265420611143879619820044423022213487914274490079037802184739304687767940150024063599773877271774666876849214251440812896701975476336461555095010454199361236893060137355321211998616630988414008618083453728203551859578603187226813853269330337257179826287115376373826582636367274513606840204407879159712289307853812133179513142509618044805635992238834882394334954262952772153293865944292922329804965574125148119546454743640644727803816449606929271646477302755150243146785527768250011777639067786475106495096977529725589804863898047547386751373790832487779160935955214991463899500798109052681848015696533856057944025047598985007482925111695105319189982558554303180217652014019725580237962319679995374792670257417873202341706357586789865230268638275206913391471821676477476875517959549074675199350004971752356741398030456285525108219996721798538395534695514781588096029502059550326228320967317819712373291496493511128092373295434811523297056096512218997885235880083954540703457310164798155668524854411452386032339975878338568795456261859360010977579027304865776568495030948851485011828497948677028062689797714286599858279730728678436273589379165591707022902411475368419036085815003928496464489845635939810050756409501899302431297648446852739714312210542857781656000353781268977328015957834537599439780607466575301886091710492585668945228405624407135820031343259461250450779628943907884472052300598602757300890209580976547553718274529497030270286788972123102296434890439901680578892959278955346464767855962194661656985096586289662898157795158955189779325098509180891494187985526088839836196588481269750192023929465510246329961046559162955473571565512951845299489946953592616299644653411458981029270570576635621405089903847616567460075215727873520276116662265686016621874202735923104578654621003828363783906171285384204259882026792520751852887273021604758202598216375521427863015734703747219612480067134657351901081649577225609401559915340237592212867586636529395665152468378253749959261434755568219168445616059302420665638235306133208364504997557284771112239114292205791353938136040562340289663202337493410062410054113115258703342427248341894955045673993057865461147196238783228537110388710712907301029447815974189785577857838465435837102263487535354941500702827890586723106179284328491211593679637772334295536176377835008150594690308830872287377463038530431426999326463264881963747988113269783146593741065558801937309687646631942824647777338035925517953583713085048613069182145982650922161285451363904672117830074110946605404221792533831705810654805702889127340134979570678307930979075043294154569626381874253099026149026464509460298672337559587104969878271771050820752645901637845759374498107768359439434400025042461933796807938660443219819593438868506955293934339318266902054077464332668536003326795858949573338398720804988791650579456734290529686212509063107544019988324703727048713324012330580002429481381862207485203054838538057751826855999082570011026231112805676859950501007293475130947327992059453248553425895891132026934748269474589579386212537622384631835241350866369570829596246974529833155611750932680950221496047535172757134773732746214895493758303288609595668581102495245508100273785476078723065222204272478980189137341319718669028382238495584034147512789554402372381910700779893523839916323615754699951616974681080812404196069666236825781587359516114673537257234787238105297418131161056634936742414738170417744242323366920282202695524148655956849182888919114067285066052760805411779676563318953117060338287882945801792794838860698177167680844006709437150989978628157766442175950906102814433275163823789119634272108739826512540723386750518704501471798121430256030344839462969889821661574344518521180060920297903358061334783673723223601160934749626192897805885858215364755020593605505274334590480005346000715325165416373724383196520864910667293239896795407027699619787307448175252517254520271863238441055558448187872581468827119483715923295410505762595416235175829858438597864950716249828843739290622418215284683395468084858563895136738979043345744550471684712528473755995144420509687616691887884464159972694337699473592183511734347824425780784398304321897359242264750943629691667867982222180645158588243932496524417352610865075618846473678753811741012894140261485133120585099250095227729411780549532974454381179164842674539207710781969148194705556856494488347074763903211684313041232104025748122934908471636360487687969155977658774146553263248011490632377873378727930543215482189260509669781204556469675356304758697993302676435839021765492798746148132535613996389885689342825546342652944003237422775167838569775718304271071236714714698775213174418040910237188943126580596114321466712700681575077082487372917185536690844736284956873086642231221305966593070749872864329635891189973781403767980973210707774801157603398333661899383928904567616548678802341329312360432431145437294514662904610146264029612432172896993976392460699718877534755100902719701928418694693986008844627122028180520572554886907209770863858865266089560514738943717098693761862618987701539124037200793646427226132894972437061982300613022061220833680306724201788370034215292321916222871686689415132539151652663464279455101343763913348738018482356045304983955651267482701615943082231272769666208725671417966311073235937317414504130918614034930412846730327356740101612727943928071358231148788222902187407769877515587073583658839803103172051147009902210020378398640730011977438250930826634888563411815313925930922067078450525430844968286699811410985319623857340852237554464667323772881617275150311399398011242507021073006763324005332106868259870855737502968909282310373520574486708369604630268408805498755848976606850661135488483485679204016593104195107559418476069326441877195944313484802510563946081458884261455298396831770926808132999157153915235417809999809352693864811346006901257097931952787455451640197503799668893928414232403503081755599047174773234295785446062428900104984148601618973634134673852003586267491976302788104234997822169468510089135956773892072122454717621750900428757393846965964653057190825911478760247484856044862700286812453862058520055649036454231890638428904432734094001023109294941680108312521583394430001638625777311253713802481898642287920071768089757920926123474680832647920342922351164283221795122933604981546091356894511960500828506695591204885515213330086537825441863255463888393535205672173179918412314377151042727153398647558030295911882803822487514808281055516335086678212218360931240185764874654786354457595302944605446109206203087018269211051100899578561888568967919380761364523795949448118538359325265763947224677856413476770912925443268967445405652658185472752837295354070100765230218315805678107211186714650528319719458218931838869042303300924788924673607930433547561512690473653644130637335911986702471456708633573129269715994603549481252619936995623656762590340271143934895338661356978052454638716715275626714474047170049727693779830515654343045998777995947933709321798154300768745145035794276077387842951521789910977186022725140359760337062395168743012516773779225608449055836343643478844320423334530372833255007010158454831864410984782181198451649891893544013617003333344810060750162959583473800967712591427958208628609819036862000466067456251328823780468528473528771610661169564116589338741319830980169261298499362616439679365738458694764719823495634588280741249409482470739117913187862058620286788183812210266502155143356804548149326118019325906093649319289453491261766124287126713927696514534561328757934997592121804405855759988056966614147216812888049489844893997467653879303390559299997255105097447065245322062510461023004101091694880112839911324972128580276866249897197726134186740409978026381816089979231557611236945440001331384234546377219721684968277285930292861931390317462711224421721652538653350261622072793975324047251073174943853641716937641933524403484464593537824005180450098979616060220286968207758771688320483303379374689744749693191294466265378572416206543960532648263824810308735693047785848061167995552927906178320795455165613112700372087774061780112534877983074265777562536815810767021698453422391891260857333880387666005240495862347982263707871637938264674011741270005486940906982228613283423852983542588802992476298742231893322579735467007676207451707172329190040987126604884630294825600619763379733019398987748596492335005132588176592520900671903479602109536302688198880712575280922556025498592940028864674170519642315285990489773207299143520130223840681334356558424938227548031249660164237757807150961445985957718758857288096969347722230009021238249528098658479076081760327868746527820671450818132149902168614076470312076880075999431674955141581867908741804998529247299692061710686323896868665895736584871757455968892059992478533884090066926692491364666914528233327249547581508671250230794218990184310928860572964988907250379425836397378742737343659347022019893126410579676136155133183518863964143203125242124136866433193213348915878460894287085206047966058860349957837285073035099374766744890659654086276488848478616467926562395043896362132200714627986687396747543102660506063183731348603779764575441351395600603779842279556634849676745982330659963599446702654243629352326389581883550235036516114248148893582336889310237361997584141317271294710134080053687528568638067579394337052500716088195670638008468879193196986803464600707422043386537453055844042260629420903450005954104995670319659351511690883426244455912601238479276918921481593190162701667526322813128585235343579759478388067757139198845515553556347330729787503739688792260200468598306799040756420126991058141053506308335931088594988965328137106788829730288199593645893375244111792738088848499925314635551770367276476760659560951174685853530822893776396162412500525766383640181871822936026876396301761620295054485822211385555835045412675065063647264345273215624750256925404441463329153016425968518781992923909301939532405902873733360471697154992532820683611851218720769406260519055031495677990199679040443576213050865684552448901575193944427665781703351710913256096405384725806621113336114581473933756277445118919106304743392997379948209354362932506312444088625395886166378439830591274974810038826326791040968742073653188390826255792313208885819448551987525755301202856501397166142411351614647635690104462269875459257077515851354280696350442451230646435954099541667880083671758723083751903955721241052843609763875060352643023385916883558200081037007889911899260856590099149302113554651419718952481782257095225459058480312413584418505728365718692211545691494423853485006863791105212795685876713901448490090426320929958035031331015448472515168349011021685187716932806871398181814890955798324785411219989568208268509858829438011288732596478545687555290343566926566135782199787565833018560866829023001409192955868994089856817198533894753403311384255771056430591632332495691826493676913369817515520024673593143632461813682668818532354789476244341184978935003700885563364420847158182839043133363446946954175522641510497721382450703717206984369579426886620075830496104686809298765622711089826654743025071781668645889657360516880307276811475090275427272621314854041396349272317452218959961389291197906097542386678067332324060145176421077637866674057925678984644432901570418855532488344346268378000480404644875535517976991587472308167559128469012865553126906301964878773043425033058990151854624063919131612168734753566433098048247530559253932618034987106887140613715845203374079490087313491403777396676152780146762812347040273985353730786131171901272742759744674243997298063976320137652413969659194957823693858001706273485722980315139437099413413657356136763680144942901993382634188441886092808544847749689046419364380079710196739239206512803735175541960192221533106821341974117872841475638977254689158340515753841767572112888028221937100929430669553917027535789324546134686942976323261059440948608719215306580527783439564208750374510759248345942085995644813873636469677906114742559502087948293029362360648157415484533259823562587251098836272935337294235366989931007694935353075737654388899193855221670570301861068366216028234596011541670560092522198969547291772363396913340098815647858640476898112273453348200140997431517272767808039512961765743431787241327722586893441057230878040528711161060594536261974504457559978787726524053213994737017408780762625246775593106642189942691092490240855731439551243873670968284725806621896695989623416793791576075935159619218418854045930375855890073368158201128141794559626210228820824083246674489842430465266940595433972479785136293427367169326770019698679160265407849649058444681320310069264156690232438400266755465747616509712207137059845963848738047495331631040538237400566355636779313421807627192787449911717795573908250122303258286978787181023052050377436180326308705252281353806411501181711439246350185281754991624797137373310224462595685299317930617568765768050259024766639568333701472261848167214393569145239571633794982982707996738681078819830817865847381194620793070273761122975561871856132521348416325889591223565812550372642806304442718450205481418585881346396483038046687022393238123624959626644253149618221726464316914800450813610285268210392348191509520543334973915838900209462839842801177935888655732007524546506564182802604625648908701943475670461495500088442629247684575157937701966430497233919071460993100930414211116737444588213625062815636389338867412678392020841370560941328425105120946080011688063940181654083280962339440536520387753840169678976287542772406050283015937312056173812722138833283505702309450331297401444629507339463099029818424163799399062216555539303797350627569086114746755667142409652466100026992345640917635584137379193302260262589667607203688750193471406650705919609717300190057258152129199772276388551499158122886661603028988470421260894328874555473692606324001946828316995426339334744808524997243367115726557072434522576418970415183115226360999145413776408738106388404997418211210158716409394621382533493994812996067595194713035560755232217339735174003710014429883279410925861447223546778792403111870660550258842789702048289430611307355597623871218310596096657839365142774274766598914216075587086862899297494061013747927667305940202563357197282419326983352744917012919896630368700808419724890051097541262713987428895951320461931503482670812618174987132706357289813498883861550161417703564076122935967727881280705562931606627600418922134911031190821047138596882792088699761930336458121516787522651442769924581658207178126568389632605213187685749844301920114798910014229452829937079944361609443986151120496972645529687963017332811328209850525132262157222009229896390626769866452510181066039643892990284142844845001519109486056841565244621596363465160626420823578857070431098582669737038042398719539313829496992201100102903090557073112065820550260831817772362680492819107624506293072825160018821013526654278759051294357827440568917686473678664074756978442406566544282878457305047519264402319827543300248714967008464468646000203547354509055135109395955613702518929457594706306925126932322057660292942381252320639475848028276767688276138798141104899709205166253484344707508210631683351369754726920083435778293949952026387173754540689933203629110855830924707890801952037680553049113200849440670274721705730554878413868330818028013387906030677678070918285610667168853385887441571782241586833301963854020559230285661971322543908342614158328674812556850058300352332133790997324140847485774530116676430781902895596192765518201620305784650013545589728660350315935049228598956519338431546934181110734598311917564222689397365270327544242204747269648755223454822236139023803667271040344850435795404886540230032800012820448416558983882455730278739115028655307483377326904798180445728984171828191145497684393579838042158876794513388642605903125278403154113972219990387646809559448264516440099163318488288318902828426991915221071161479503467557296546694952417714297166736748761159501785179598873978158400245443813649787959267710616875366020224569155744920010681019858557465010762691958226635810086030776297650808453987772314391117782379159796932847774453509563686615755176046310475661657700270013086787925004955280028258529205868793292887081378727539284060621171071726515535496658200999461423281299327964656812700378181813201689223179357016686134600079916032973733873437885135894947918943370744417203721913821204809177990540035027925007929173747812198386900043146458256960590852899653047676277967437327913629066797782638331861477768432199992423083419610429990811706943700679288853293374390056848894175200163286984376903783896752933090870129144390786427978345791377086908109680530000999086890032349601792323688935572372652551958857989133927335755279209277034313856660167190633214249266029018034522763699163535296475173650408457696030476346451467006077713672528609193981990429853271636721878083499159868011336809782602408005567493724704123832563221891613747206984593942753430351780323556791568478739326363874816478483384045900244461525339118545688396787356417276234516840047739991218110995070414740657820977008452254989729959469282121160629536282610872348787664696232232492253892706583828160328411103110371556489735554811766998578049447782412770995397137953433710398062944342610654836274724012119221945150584947398605549529950219292801643077318875404533226619549351283739547190741501230604837717500269156737806150719615549977059224815316277727147511819906124736668146136400182770154064820438738272892331910789167221253815338847187135996206017820013050352572133983941129583976026612973304120189242104338567087137991008664017030506076258740658123483461983859284002275484395008745052505565285301462791693828211268478854207608530404250185546379994565955990764935615207374689251176759278610980235323800176138119495287119146040826663532124341975101578034295710999909676655016033031215450327582636364091611052547936975805131537902595022651203323730549658751520996731449519956432072098604967023475934032906114360630405277141772084817930214109856393245858525023032868788002752866975359412534306178589731194626879694767389220901784859976189728294731283424381994030966882431976100246178827687833179831708104607010987712032670790660312199679942301761970475077691487225937992571961295686946998085201121299476842387544164845367148671596536291792556681531903631180591975799286054755175894497049566845401886836256446809233575555138934781012947384463972198055529270077000569237428223070351805191197277555455752195946169259418121584380888395836917179026037363447375144646793003191428091183003660176883017115311107668043473668679496458806228590495133297876005940795165963900503931112374289201648317773383481534493031928804751376210681150602135749690199289128175714675410504657767014154675272734854324158550718112432150384368391345284229879944618169132108982564819460204345776152025156780678661950112358656217677335433158038215065884303731570244441932951749326066284105677654018816826260994964459292927364107867236108351018023248596709734855148508485238163978671083768242122531988260364099994360686808850753623101393113594019812588148641113871946944309700955682338291231193090460742374443023946524551520853533321565675986058073430660289171953287710972779813300306352743409485612222987090188397171634987853177910653502261352219455196224799243138356746027085381556046427960694036531849666071508218750132210482901343426228173306825158652220206944215034499509704768801795522824745961389420811161952190935121245982883293924695512845033367485947657908582496574668666882901583636261151551278782925175336078769283495140240061487482416169399286818564509809015259342058308618439396046805377630567644240148915302772121310133032075167230020235251451156221269063619497437815994995401688878421558745435154151610114468148975685992612414099433721662535449777845533012562047007793015815069949433234077177655342322979592281272662897108732478121362229283316822705748276890793462342016513603301671273019276822938137521598525955835791397099725178075046280360405529498730398189886057185463928662884889769069972861694380474436992442651940612312922145728148911288954494999432044367314675223001937953291250736808815983126227117326054535860824848375901225661795958156681346934468419166658334824919370236905403608710966242277615250256706763660329564885311147827730875682742229613298531685374439215798785699183691331955903317886611852961331193567204457855604324467844018617518737433793152182157330209135150908930142614575067108508006377509604324437210605881488268889587685449519402513097416017052809758844269835201132644214640544590610804563105157646898994622131107441924944527609252656798801346123087959578370823763248903129196309238678070185647900409337607758918964018186372325183848428098990984679401476300503047521168779417964898417350335210707348919796292890646607377996994216347235897096393630759985943979707451480053934741753600744430698968109076564063572995278746877628813666177599981563148801422338094882047106709375368618812984048307578016520538177532000229832744913354840333442849854106310548367590551235013629242458343206901071220483848488199738814902148394148689077360366045642994574514159126449108750034651865355935434101929477250991145124733780407925472883557205908098158660693188342987164040404491775145038522204933789758626306507381830667291927440363273262873700154655474673334300264175731895288282303523256654251610704672976604595971404240193328882753644107384942844276082339389490485934341248011413812957568987768877830435807713938438059586988276961658644908546426235831753495868054401422666350237745286981920530743479941163543005698245428994009082551857205869680989248144873931269411556100985356309004598920371970069014058723703663142895621605701617618829736052363648826747967269721345456725413394308605469153626507877882581609677764089604792499162338169504176208196393178886678567513894134897457903402507020740407413416592021278079754259167477914741160385657720541921882116048425329139426588522259774568753100333263329838018271091856630578402793817107570962832358478020223615769929700760332070609543626253889519200688118438206676227220004401791389230582173204405866856971947701611396150562078960087005661400225516186612624731300266109890076195474576105039443562272723599225580842122156577969164098712797413430776391890811284172348668461758740309866851484936123641532389801406110340346470439479437933844548120574403986638442869900447234663238117076769595980894310568548099142298852801040904257334370087422636262059396274425094543093008974697278967844045069000705127830068660877795308093199032934161071748095301836833473603674471053982400566126447276493957074851239013622284894237150060608396541252399277824702955752661968647701626499888179505521618729984340744576501954934613231259896652637043989274096824768932778433862339256783609749949231309872171205797099229772422563714906360627889055814765520125875554124396381176632284977190722495784480862298244310232190907796511788194787442760134659264927808986929214142774205304008083444557093751767251014759178903552820775348552708072466960125000554637541556074156095166874752838883734181967496176445190361010155751744086646914432948431982465385718101651443200645619718235263284034085483152663220925724163036470609969989732007076597245667676786938607853192920753396049732578157849303748370350870535081483654803829484491047468442234602939422745215282084440819498183499386861734258384587275650913995734838080096448726978786099784688726994341832784395990315497048720852310671916399838917615272724737596419053440871190109925919919003793451176709430449263776077178194902268444637337137696692854163636330371453456498125203650974220677315726473910486336128128312070020746697506402362668209030871151634483458323838329163792401632418135316620687011731113470991978812639374640677143811956179353993845200644045362984110892627814395442926509506843268191036781327119454202469223275193362770029812491479397998857996308849929695547298174126534966789440309541070941449326764239016170499287346550022492571277366654250381111689873659210892646300123697676507474106750298425842140856826927933825092767650913762320223533031664385256742517404739214724529865027968410786616813512181215429908508497131825884057321866980643032156622398507349001349670716518214636470227949939572790351209033350192858880661873093544899456410042510269582724994802916146193137165992789364791390944979009176564325244974421500479142383031132360746273249868083472919993067778218523165105353375784583186167676464736447516288593485185536519137668439542077428999356610317743219618917488431612781490253696296285610299357822395558078594077477743117708702803451271892140918783125223894161197454944031735493865946772776030551573184880958832808037417975573263159065829835418169275158733476898979323112476021149973037234659680384230585102661434444746902854557821469331922547845231331153902237714152972394638197027297714839189182333703386302995027743044293370030973713661200854367307393770343509097600024221086077795011768402426160838070216008979385754112699294771164760300119646030054356066419279491088906290881445983313850376714584692704736130111768637213071425334435435996999960746684495526596697822197854733691624034680870086719876327928304892642127542613892373044050443555999139498956190376264147722353684571259394288581165905418230605326720076060266102825460886114445888161332356833310064537545615823720957898719841364864120962304096687558645870414071501565484407365616910188351750360726099893484356603040414349536324313167719524699500576241732330057241056673319432100486136533468452590291307736846142155324169277291175892111099713460041722148984187486332077203506465346367432553930761819377768648556538610025041968889245307458514320590092319141680241944829158230807689970615029790903591303789473233690826421606012279743868508759778049075086276310335440118422211231493586470878295721684940194359054516455962278593754033404843304753809480333781460309968344127606282120724460422679836316987153863349989318585999621902554383771432713525604784307846158108744000482301209858235133995026105967840869754617760650163332188867638135725928739041821519615195120910179199674503097290005385612134457422914197918686326938144100462799744976679562075681696004003933399364109015417468857772867575757916796205383796339929905483978809374957368681669832287429988789582416602623840057786051753109128230348466606967810848624778471611036628174376265171772158372689052325886526972029538029253658416992398820937381248043484214382332573622502940611631407050764565895095926227283529023537589403113798724723274506726309752351137068336205346758188967018866687195095276794969779238409045300700438172847348581915113096583591641343517530104800595044784775190345445205832188593204321275198315999175119479200119173472366351249467603498098465097425233225542510542560173544931518956883823444684995299872073976161722319871417209930320161026715573098457178986602678009963059676899075014796036800817826026685659871042959283210909021828247569797362775914583978599511161416410347247498411212583011038561278601910416568060855058476104639674335975087990028301318266341145034943948081137439332692014265243328162420378815003218690124475038808511861658493151459436496418130813160733600271856847898752995482347191906255138078445535458119460666950427556443358440261459890468717171794313416269690675328932300495848793530365846290586820201471390807310965975859925653622678429947715427180238780125584065206016902590837751978009666554766830792370043889903507380450731348924947041556167784983349572171950515671685725398883903522229178442753730758059492246688244125907627264956892973936334544557429075244405577960643517494123665512035473103617946301801495619266942908656342676281975194380739267753587068652115437770646717886385059514314638420289407947290579815276595539632043320680700796180229188050481289482888371675755758122130311804171071297363229366324016181581081012142731450256660614154063878201859908045379883499890552359195776706965891823769181851667865602706909524612203520158538458666691970441855274013331723944092820350802357736221810507237192480496040105257711801763163380122683779501201463414332511016862288029184223698904603336216903373629022933615083960063850909322655161488871036302546718151835777417121605976025059411027361848939340799667883958136815168891624303858366899823046814127173885854640938159274417508170679859375019911366768704330880788479662703738926264393790924768431309900641188034236035480330259185118295533686644586182939034798484620120122160544441581317787087863618881882985197217642505124069837628591538439866393479106608802790367476089876458461654489403793347739273192913364455027378304437850767496509414608644711467427576484365063946536507128552164171849983593251858295162754651163909237787222402863085854113461159103102627991472088483554655141415901287080117845116962069584001803739839619436254726893639578250407834193579689965443866819079653065720514751954627592548372790099332931668950216450162529016822506463714978778735399908100988232724347289269496738596265915866515320806188765518618662133278931788707226615687964428671472114767893797843327092716053630218721416497749729172116171096389513269034043603860486685720064676736150287983319607590675708853904029188786256594485006826828054964589798932196328955836380366966676030701463142631887203616706041572073432648329948668876182306965625448311412773493690366373671901442071157333831711589328229228031463938693806650945311463527680163850554078930698951614944047378963223091397933785327976066566187848450534366357607097539159062851754129020819376942084518209618024796155811798480393361515663081688985695680312808003063677210593381768135927450958064292489332750543476304464764427568372821340799715878508301779015878420824612239069107149069933560369331048399326592344449248906992176328815046736172557895715878144163490040693213407565427337528137693773501675929347334869976143914039864836669357080533176917288447024039022930052455605911499074232345330426963021144158168244737461625602757859291505008163480977534003751235398790407369325881114106048740308215381173616272941881663737004366790124304494354297644094625031300851770439859320796834794493483371750133073748681139529605487782604405096203545918983639115381701201661332640167044971360564627384949004954671708590566412573410195019056149765810126763951447169352310313476931345281673174569802046753672996628262775660926082531370915396997949280522686416914430958034539354241119021148471480645738798892977652907497448752905455875398827503266873280693812848647149023880556589476357804649999889219384567370158510416723344416570495231680165273081647274096870180275627687548351833898077668354162493640411763424903260104524222208656496595209520370480032654610664463631275278314476140247835749878773985662610883920774551407542315451555837591348548948739968390315514473446952769191780788389748623471870514320969525623614617933238963292077487142310835845259146198414208107593006334251637637008270223998241740267982620982915918163811246610172423280019164378044743084638099215366596751566980468762859041203598988116824757031677793323544785143393658326825238312982282734861287580799917348151734384589461833482524480743544399670963096903203948538595632633431149151587031951695884151782756800288117334812654984335752777029922309147941550918267785904850613593200200186307774363880250762225774697859386872640785386789504582568265631182516280680287981396472639508402253026900216455034263327969405805468984123421509733674892521621950513406194430404096327332641463568931974582068179609771791390783218707167049179432312160051811059528486551662126572090360181226652266907703755687159914103842642580042935230230953017217643635531620912048532818330880854836871643871758658710388333280936903252834078449284295083040446697858729874739763222403611646964031688597196277317555054039791797635761511180599772703612912659603140477998277201903794331793781215265207124031499240135495144068748756476420312952692407187357236842888773546878035586600361457291265326185111070272571964196646766766828061878717633597329712324857205992866427319637319506743185347490058732499894155036448850033451414653796640196281279801468930488396479499602626062405472954775910422974412603645700513110796851144807850645640858663913888637774876308408977690380773626938394029179155604940546327717090811036912096543685346976542899614478964484279387611261093148287705619474401755910656365815293915055861466320823404923730139092882146885391626744444469564846855125759220095649135245891259103963743552610469351018622499725935434346781241562297802951792450988913649133551745641196313048764528358720347359414689881250204678593125779881834025065145569816013807882946697779092559489465776381271208770281369498060071847644719884806727564005260322029343642817135078547295675264563425547788791018012530760059946741979192632079239701639088874357413666896182570653541020405060178911815690369754464956140855618049619627070598081526756346691435222568347439292583495280315905391853160803496714737925732534313907586179879194575014424246949293582840089415191783647925473031050492433503704953590552468335732626214725601225748629186995338694800155948455561917671796369962014547202647228990966370642097372347855385889914134194885354582044096273675326946460572700115407774418636856860492660073734426644659913226612668543431826080867320834693560691035914446628291500257852279764461208197667628474039173969908489061265416912523984529368471374481318992439574995281948855220541859040049214893247455415227296323273941432642329244814211839823402408175020453066718255339827181862357422329317044960232439281929627146221076061993079478958752714683928280749284894865351083316436877034155100281360784786619186771296625855835617210040020445235114693163644861581261805898414881402900743086051905247450687870873950915394661552927428057026340894605012586810890304320059677184359809790558174356853151245870654989840360816181240686236600963077840764365313077405711967385553177100284991263813185489191489165101870045652478509653751948138013226230775645970734228685626924088545755358708889650686017468212195097220518214031452918449350112748430828199542038008406336612870195580788008261315891099535087504171704939379055487933051599479301908965288505999376714715305555925196722489983579447696452938144388514533204427587562839551895625273969250556868103573694488025718134062069871030219951371059522618713728745311476568146826806038168497138014200409081052081428363973841208556898522683858878443482024413245693159348040876881354881368658039382791505739137761340826526242394437620357969057853205654204831298804602459552480992580897606023798370087522736866513796484670504497121536328143212539740382111537206188165799407409759910848787402346580880672917124686470636985670204838447901899265461785627990248699603457958816901340203717251058803699071763352466677891361342737126287574830394634651991629098902438126070622168173746188047071850257658729800430031742056510052717128523619713217364265762985809519035272550194184128725344867747984819097503662724823594787659824371468873562860726691168448358726384537855683186113309854829502493747951630924613434996211196954246106873979640743382318538511930686289343896615251766602690873986691243447095329320759904131019003009285433961724161969959051960195710759855904553123219936524764247429303336834021480091306109022077496513997268621147884437537452412279997335013630835846493123566814132089885286817832968813175925783816351985936914004402636933470085441086180960292325170752090193413182658282476314650617311224464600580666700496010896952816689522153710521812531382682791001451398588458598084072817512607081215976252443466932984234539172150713859087638911137325525229828762743189022632490831944142906817851849748511790103681947262913847488005292086512070407560101741890035029175877554804776071349798424320606354498215484958950641380577549602034426906915172163912314035050496805588944692330094781226094912164028772585395810320598620126297760427671226682097399388620498456741621019974174282287067040801097726195389471023776847570696504439341396464921148141329942039671821351983407425718112654150246309743738540585597513166635602514789987422877534353026297100709518514731062665233861594868586966945368058979176527336027264112084771729947906474834252348540199327315874797589552196307502943617826148802820703046751684677891154354437548404014427849285723454255086141201219655324033002880472620587702000540420127055122803546002730098404430957729817812270661982970085995572394911078533345773824169625628925920482520275216211247218361077145185417198397507049469820770287289168874094007369239406517464278468021319044543153978629567614292512243791806102074827861203339405107993370106429564036379526900188336449010351186999627421275683247795078738853276275455448744781711748248179088608157362343971489011459378997126888688154202411209445475057543023402717249388156123319753804532613360335152827295148414555169424826000062055127814249556643209565262755492954332146722445013167740803073324874777155763385951487468288031089664735108971700341099204246472848604383341427498986154595905497496631015246245579894437374289515485604400857627263785382138713453230820627413485526690794958282385268945641491551095317402629493392830601693967595956374166538602421829030643274827808978455490990497879822215295149658017925712391069469101962955934050119051830872453169062579511331790459255167774205381565159406792430736697108652584119713198628081599592052836358014936868289664952377958677399758232942089591124989364172707599134009746073579566000388490354303216560999488674849272099448940595544768538401648010522671060214347734289070832963274070562421052273280061389835920805856050092843789762795629322928726152938740745361010929923742147335154450950274003973741106109214140917099417509927685647478839111836099074985062498787604584466140511660880999722266570278400166479847487374820916582211342830345402864612278459305676901354089388730333091484749175961414423510282636740774276792803742701797264607077404787007086834899697841037113298059488685966621706659280933826569592082821473531449583871675637374374716318208222127222270114670824580132159531481702894211517812663029155547802041369756208006076244806708527998661972620054700811172104694865819063865735853204293121721044308944812265046141285088089613596067446451295017367825211990503942534743087997737608021563951136731922783141251337406997485622548671892632242140535969900273439053553064879284694445353895927478521075125391207545771714418956903828131208169338690770075817449324292909472500083746771332340647701194121358875817169015777442042777173079617479833431568488981874551074507530639261199171671466953739101904293339515903440302190406213221357549648754114606938079417510867998859042380267307906286187177995886142238311847443902679254958683729082905522948208684229474561743127112955254609011722561379111211290677320247053704609065337578783594605259585252963743033867762137504004504934407306045147248073934592918753857345735900758650213324247328432123382577172934148568918813479885638905589279864413063010017428724893314480284454820544164523470037599179652041325077832187596021765608903682661731093480822520332454259099732099978766411209051890069772792009503652447182026543768078331039072078974032520949949940284566807543396750765838904204071964155325637488729682552706224898312579289103279876783818902246902367317003390666244098923058920033730368332510396757686847018946681973088124836139544522939378565653500313546094498379429150706006081086442534325193054850681357011048997885211444091638924884916131022895305477342326126073924951102962894520559653465894515804882581137372127241205585915654701661213876398541833805436415987581564913487710825811821438637925769567766875422703272733351336815336039119160723932015535387706526621507675433746394701550994647481093099968826507312639932237495772046257055081220088025607076292301752354014711357268104378379931318698489385607096726171809814747482976632382159122113713202508215684009797656829341056418941013958662279880700386846081148223942505657498653483920051537454640260822482871861711424719460857473076443772261892245680181997930480782862324566641676968090873629161109783072942934818821879322951799809927485658102585610903884625421571360130350260887732739295105036310382549748087513915284894964611570622006128180863611238550116734844405869198363426354646688535234954504889386191757610404985728779420989706385872628643668977653135833658691568035057217757910971083241986777594296381392996444270207013158805087329876491007033995074027719963770886088099921281187931593587817667114485018101869054355970765155482899219948865892899298226850392595104920062240082047179854369503458373923054614525779788413489626320998305573886661354335225272229467488619877529054722868307785675687378505017814444465523800072964512457947447344821243543506488074915505973161282926349742064851661928150380353601002054922909450921369123440588203445107825691997012967617185616142474696509295649176252451123527863012156502622952363913652132458047305071012547140175011110652703852399021672737687238851644614464535361639999700240759658608126883452603200304157446595400072604139940079415637621651660655085879318060447832332882918584744676006416518305851932082190156508107763254258622260356626383616025720870635918663698463218636607518568084631675223886799411840035655058676475881016051683448973405836358124135901833650226691217783978975858393641952620117477575862894535621622061946960474504802346756204000167109791981794435357771362175259975396701095429265913217985248045456576089036328180107817929998470360557674055284890789203521235852023209474201217178438973636024585680815650699172915382043061659553033487521450490119343378487617616883869675859075402763500418658204111450725216241552736633529839636183209364086990518604270312001614554123278969173912230018866237871068015203508120417966648322388867133411532626043680811765654859032143258057079091554175220645210244995852131806193319401886732702135922958296857707030735960815940413305884125581454612561593758886160182579142532421018771205230361872698963808214863068101927508834168043843173986395089337149826366194527909019139781155291887911021381165022638662205099860654975699887185725279064316705805461852052435912150053505747266425880738339053631797790439176110344401405041175257027178269166078055541560779838229417751522654982360023151732276355967539013744552407784982361529872375880629073557946221303924031568542863769231259867006577835889067354711380386244556695027879349886651274970792779048621406916681296183231291215164663954624336586123843374187525401928327416749439304921974874649052048489312446512777560863222472896967740880366600851100969187978102561486426592352289586504878201049771021600813366155479183790398992063804670062792815865664214656945935840870516053880475757829985705376776503008930384039335625053613251384573058811446055599102131181258011453371529303879540104248585592051385779593076946243450603297718158602481970408849361999321728156054428312873024831402665648312061038193963735884487974296253501519267586638336141324109161413644316650585770043183195759208970247419691268999984276438995813590926025881566674980922362311616193312829725701349985226371316670370017609199497427190197700842648395868624845953218681956902275690721675953585995246358582415846627661718398795592468171218563837063664127622584366645377404161256246086826084988513315236223058677602997758630085326690207590259661177962897667411931442902561904363423955223320476677796042435106230296646604808564092664826864603057214491066851913759173946490612148264780724599090194767652815317910222279393271933305510077663497538283856733434409819712666969156425421321556586245604239223852724324853490065940044179814340041561768164670377002996677106510481086067944058860018233964347199760431650627705224423855220056680712672438808148966014789422631584141734041890031983966702122422740526859879003964434537130554283862781625058041277754052689260823556721609908990397144937726935400427728001709261595204821384426868987964217718674485665757334822693394818666940955327936042074168231957568856225952108226862658558868165465892532553239840752641561762571291626930556559267448477693031439837154016825818964127704352807922503068029490448535843894431765892274883795898724559191548669207664413355580017120388379027137932323860084340424911699509398383707274314267881417936959618316347308909752626642740053180841971922417597369681016551514678052035826262611669815309199009701293008699356841951460296935599817561038522631604441535893257804075911138175462535300193010746527798687743856140644838400019585663352785129338903026268386756667311722021513923869053113307686131596361048363128836467322591071004674600265279960605272554442868069488912280901651173735514316074128504371029296403206680350252686535362341045897593957552210537329155712308324142123938873933647169975622248444551286145062581334070789869455144774960910938488697913249220118580905292979421184835468843739524870065142049857737943258660200352803510506150808101758481839659792548157794001313306944349969007301225488116775604323990368797201767951116155654427466841594858888738229783069894872007967350410314537970305800662695597847099914633210665501402173611818359065454331578846141354274919433134067925759089373889218236564260398532428476062716560035667837254972147462754506761348632760974046977484775780027828887738792115940808811549440710965477389381321864430648152379502265933481550463588646881293444945999071916998903244660934637383341365567529789772536873524098837190036182885384096428339587562820826663997019391095590036579528171448043613816239253678174896438925951120173447613518576015982195705148380362535416162485613016326615338121899485611039798303252572361210208648124639239509627736173392274122100791629763320208494887852540932336856541958223366015084676996937796809049493375675885436645337466405516748235178497971644177615741086499397147025629192368334845609489039268919718782352180410316637222433783667815250273824885253078793388092157579945422494253428759081302693107218297424120824266246249930227871864869769918777635159223802671551144868022792071100919208433487047421818453911894222924092584485526911287706516264519492188048757056860809203296400220179235781680323887403676779555587803889556231762002716357943603387796674324616533403818106580036656711300986542811341880328177165412699700519549866160083224411961476467598722502172006350228355775261206683180037954027287705543188159167570625213139987588648707327407644016654771045046001204232973595064747672934508112115528736178002122815462975596552735928292464432258449598175628174777272601946904184329934879220798177112772921377176659063177437285490558232849656253885291093011985799754268003060806069282385941509119763075229002992219353044152954595212872266549812872622739754963029160871434058470161089319636562175468066973443734105913242211366657409192493207805416242267329357161740160552272381468776611526027530130851238914554196473038303556180121414316972833861752675846210799289631152171651730533570358189469833975073887709801920417177711852958500475037608270467838326230879937148427124500816749533500340214682825940118967016008651943390520915536671152975506617762987450273836248837610364949838677422444481825712241471009260562143478208011171979557638282993919933563485055537452622499918340718330031337302542711808413139291892620598238027370477657150758172674265767122587590327565085492534601140728624456548826235499575385423031436235374732687955426057175196556938998261638456798126281435822524069880085984530331266625203115655659019823667791483948108357974471017933184783018699611156330814232664714456570997607569759021834912672546088013867205627397489603914676427862966286297745855354363883446832833988179499348175838273944496972678321188351872671860098418950215358396988870588141328859137476627149209923779624959011075720111033376340915482241603271695740496390433970558014873007252505439645512925184056288831535619707048575668237233410546017039093026990617205305619750443055480418266730235260318510184657891047571303097194447980382424236920745810581236284551351836407914801598535616275745904971089335572642781019095561355537233017221331038558816357871278098176637811721258432102050240532501649720360740737330051528031663912400304102912175440136142527105740231865482856145884886683299135967602155763618628140304384182658162470285707605245351221684708000335974550640192835883655803711537660439266508529820733903451389463061603110568205664422901779328232380280239993793283750307814794228192030000630354985409477350335437802128279847051283640525890225746559802126182703372634343245400452808739624031760917613961471335783705147008173987219796803618593535759606217655333818608517320393332545500980718395119910053012873209357841425711216587300005864585655546885104307860766687683561630924322885690447906400546123117338272457421946795441026691517090450834398086937509755119236980955449826250123156988621189013773851008393177482037221066364830420751274342819166990445845870701566537162332695660489241483820245261512025013195070079863069465757983329601098216782070253846090235216136848033153514675205551358945266546602864763239799125150016820491928459574368494793613608713153461167224724615656462333751355486845533792650472225791969261873708233750542148461244450264236866360358409669158578091590562731149431369588451782706587218275403266551223232491663848254917402508738574357864046231537213270897067049466537343134883239530423863108162598187483704583887913856876537417129458489725560628215297838149829502493150860646607609276711178264095533418496077849990093004010754186182547859260404236562698417044305969859798104252411019225003373911343806038453445994873467475178605310776734435969017971545817676493738088422993274758024111973120079203322101326255459551748759163999992456507780807560588524844819013292346335825322353676962177076396162245438625055743908112027716571352528782143238129653450156383925191170119761200053801062449043987183219996633309609054068652500817025548049048392365651534901912317965562871962645481776720342871576229258275694943835357395233726954387294073424621836325409699376863441534852861681446452109297152703253794668356197267925131042990618172358895144990998941741254835820155962787620683788279450223929100077469531268872168706419049417739175915647969479222759923102190830290240113272510839919116723339518850956968738614998768418700315351952627479819198804979361608341953456583216744166861760289478112036684594214695350004984718995408797771738372248217932457169485387887246451453450147273546457709622145327170651637460487459914858479635478023343623504682763787649934682681905453901801097822071950408094802580345566799574334789139589090158613778271777009966725764906497765003157389284466844964764958949208607407030892083734914285458722086255255499148262095734390214227401473127566115355435693584050885883073383535151341140636506337769657517012350086592122017786870385319899875449624589090476996987603155382761369809159081799352768816899170870890314409603267298487824733043219149297451184306840899360081274681105877280977981934838185021228956322278038070225289489067944181459239374519281282651436700942997603061209903983081489251600118147609326668119708118621305513466898097741111817101441675881089458412252857789275499903292623813090000713216923356954423217690836502260576507964928535789149213513017014196216288478232766386738937843602320083504355469986838401134778563706083777631042457339392342853646413721990845982396166863201827926454695656011530476268007768884508326292596955628391281366793562466671668825922040418110111184011577186819220733382686838850146619093277368949319358309264521754163334342787894328420720608460068652916418432981236525547398479222630721805810459711942606068009341879735001428938461194204245089025498937008132654463745807047431747804305494652218276405813807676762367650067992466764901539347361921930021270641881953090943197494700954679539617489418765446428909501503779230550428665056902430894899914542103349357917039750865335622793935557962428598895402558573557636721908457524013158344564011537773947885967795896136056948260760588457877308538223113028812909903464334274096764430221359964762103181429751106172632465984517248098784334880332232421793128159212708426128200155317397359992686279594189594681575595570571992593885303990516317915498185477563791354323426751686373348323933364028759970345928179512727322685367370047999071441051768087883449022255260797313275988579478212112597356209675946539911798920432791317213939893793512778571187133872266164992176423673097041802657826490081500385625227001785226490352931356242319984471182132998695517769480999940063135463625218969172969701881613968079528325951966260945765098937933889623674678463953437371984272537574529810021786005770978693254232534247306189536720148185803670528060038059407319535513586440725405998347762387177987270653229126934958804396481496704193355070666005714207053367237422714476562098715112499914019372768049952468344602940301703566180480904369774990172365333962607294149318272905094358884240914306694111202313697340930319132919699001735939945545947467211541236152466898626672265974366703070011707568403968118127628301776036326841055883556707515343685450307397117531870774954017833423600020201956852733002445833010874783315070176147334777172915371452161708057395294445997573332045806761173569120768671412568299913321201994167859787525902856148973150765228786693066487031897289042706631872054238536675832745047886848223509250042818524555389271014447658881307262484157307664488375032720098358293530152052625101954986994719183784264039350865507210146342381818014811178263239706319852959581951344511084791050628534765256553215666049195297290803055010375973563107866305048514314327203517039177883232343462382314066422489516176541160982467194156339289656906805259360253316078822356873124489327086409328604972550630920199646458277871809212773916524825554642986316794080100022309600403716724483302681777915223491499385635897636531969222115412617316185578328471365199667442777307906029498940793031276350720789278009623526210404074805650478516049884149859914330554853539388051288418458633547077226657284121304776941530035029574389717280073880904301259308461645524626791151904207078097499808659925380477941105140122954006643527949099652886466229122457663531233621850946114301044066012217616279450275600675044548279685325234994415721095763028793184204462693571576022727409633979591607516975577738052278453794755463863115514751919808523647175672309544345122952526202100483024052922077815449644597526391331473388426628732892969672838437335442453845338433393531890170703040773309425565309738456764079371887202024203119354412104870811036870608512034723011193927124263005361287178070903184672523779532544520273277052161821219868691917780165560644411511539990640911979032498641307939633765467083556105666718971428248556595609742806287202867884529586618086961892722174285440581170814712972045091080021646463559720277029471925742460617322717619006851553223846499406074280470349399290259079670974011141650031912192291859224729268504630591863883517852132361147444177718364622141727882757244830342026680729991974145990156994926595872894200269954734784640113254809529316397964567582465604647948365951907921993374182567730028703484129135176632551564676203955289374314779091402176951030772088495830991546712284091611273908742084719557791984807406539448482412826648438815708143392213632899582435147300458115983034564664818725257837916361044334398297735915407289055117408214545603187613218426624197597200647117864122756933912968264015562277472535165492290036189565358528982761920150289291969109340855756708719538785793418734000641283362178971841352662588926712323141077390818931057621002644891057878731514137881973674976896013161150029895236154538786312113123005159507991966723339564402128801399129956471261837568449007387700528240394805401708495125525285908830414152582238983545161711234962828616158129148832413283558903789655240146770358667580314755297997721882849251194912368367262933405095600932116463998126548942494249726740750637189486424158780061691773029777490464656409134981975912504986992845783044821509241841231607586286416369222618835952585004294757693619279838848262699687160589561760378483658785774371519782514463026526149068377967073401015351911817260701075725424348688954813619311754932625449862298411901672221755448362305357484336254404436670702416155374714670815983159994207242580671229728666648672844138479487712596886236761713390261249745735929860270411768116351954506415620279301654352491624325304200866481725859443302405894712810549532001518397406854412749713432673697478250438006151618460005853723575310695478716023896870486087620004832571224298884849602990671547906089028191385333528131039579572811661736062822510279185894715508847621773328300947455461273118794167757022915335983313293807199996048990727354609199455649812333966080915491843708178881941185820308832597162759236553977879272910509411927111571457550199911715566082755880175879334152680466154989252203292372374392451870997826671102661252044266070257008706993066456894970847516552274849261365576332069875224018610088279623184672487291733967405008632324620953658072126738400384189062660379306689720143570610594644421662170367269370614047271169300606219587036536989990716525176215870365572241679179122968856771954655063531572193853750505241165635454111930049409126310995574066389025973306152810789429210601530053263398852358529956732581099760368268732647766774575149066062571930631961191460914384404844261596312324553225858232000945826489189308856819740142518690749549862540653956318332288729831164954356650220115788761314814500902664978310018935292460355214153236168090826162676977688904612070796374397116921668541328173381908497163386316889122960969214199524789316626841729043603096857029906477970102047261618672242955285684228735155763138941284018342166910101706528304629777600040668138547252124707894820116851013358131714607911838423763705012984696167075952850725184214418246383933643619981106978582451895628717769937363094356304915162783528810240320138923292355604261701297941384027640313279417741194199891507415817071633389589220623611421621675934966494011262513913730011612563216157906984726948668238114061211530318561634916551893126227794185825210298700038416506094336245477464117444629948220680181100089533305828684929225077529215479101664804987816582459062184952515385711708501348101682641504413245448520437209225542318610375908108328519228121550506741442535601210735510200973193183343669536846593120776212788277801046170527763161233625730328673323129718122346435945536359191495698069150939671361165832274759091547178909714644897180094744766972450658097167986992739195894984000926288074980224556448203432912285590585982313761729714238880571329385034130068626222297581257383246102382652861798737606456866501010651068446577296734154274843616462312059891421946485278012165478445104594348867336510806590201719770035427894256198207824651811391941233417560638017912830141669777804990828079700874891096248431880631710283436485562388328216892144887226802251320059685008728988811458261728567843552016751209906798847142305112370470583213308098188905513156628754888858167137742256364247080931308080122739898484202869439872295498848803182131176912950762156194722984701116759571953182527605844597535837243367253423197573093586189026158122448918082084169611444582805045433100655263969501239902853087906003330599895647500788977174683424458380400020113643162257092945665228408626983274128865222682552423287661508025993987952961433058927123117383509875663317054222735690220378114612138057437111500722816991898985501147946649616657806241835158834734802757327282563488939811537235873072833028092528890883684279000850781030353666086681175955163403479317755981357574115519739639876919517176419585078624307151724435360559434589961121875468121504939429492721774421395967983223478178709720946412369579547364730730167594586165110070809350213165153270513970035164281016253237172813831329465548992487291604664475573086239347854814851144253124409408483600004781879487000660716542859745414332680674058511500737638743053594563723360006090978069854156369723639242664800504449840335416086899638500171572430041487493593310856970837874855689403988774780670221141876410193052954223503640255057881609065595305170452288818851022497011411596422065967764472082099126072568683311968370445631467147487781085950966503258690212555017082302054605276777841316541460196591282433427699434212424102865716469514667205962609351904632994838224381134981138738132331098695934154461657660204655647605066988667836726228188254690514678417420782016252964672154730013975915817607697915374670367099497558694493494535485626182890933189584895620718561739484021807463680391925466722083548431018188963130107565419588311313836836697997752353945691004770232460532629926488679116734757091555624581371184489970608537795446212596797361555867422354455937826106651956340689871188362133244378544358566640442111262166760661066707651910133977000265599919829556266175316392218054069330429395339775620511725800218325824945300466788170061812063937176378662997409013969817181907406930644603757817174437181392334478771630663111979882684773835382698567739203037289537892864711199603220660900670915962559730331523899382254464678726503170201435133399603706568441287130267420280354858434071263572778540799497037629400260476987112236162939416755686630932995322518437671700803094062529167479965921413229488799123772219838983472284522635732463590561813234523240016535118815457328969025673115035313786044863266673125184789683144233904802719948804098747029405953430098129134873644985948917010031073289069026095100995450258534383350167485351509755568920889217472582475463705064828802076711805216043416064595009376960743170386697949974657458563697944661021907735831823213277827698540834913578050085724457573214783902773644380820584626252700318470948433721925484097190426998723192019148385825576755477476870911513629126917082289323445122774802990020143702288674778270038054680457019590227344882985201073561122398277965798067217889240272092838969999728148388471778098256474867584134506031909575978944822684664534886624781186720389346225041770709397064602844361274861666994484245241466886025196609288573236755850250950401432868961949039631058339834639105851662548777030203247555849127365207279697569253402722382908174831428127958894781864699736971566811010855359183778580216025774013005538364669373805434519410515183075537779627546299554114958960330485065205835977591750827722746643887137358612702165897782413266465150966163490939010439116214189526641553836418932256701789310823324221347787239842531473116764906614814301210082211249954670489444475702439282449241100888504392564308635287278706667869548255483253612621482928768229111534572842844425606775390942328414498611314696721830609552783786851983866431094213910376086596378948379745936497616395306741717974097539255128290507492881589938079538475458110837781407636388934381218132579184792399126958861703298621082004106030271975638465233853733925421569218813346410997291362813876274103142816026428737877743072153703018517995010820654523241056697476165465273221297455764884581386488289184410789487505086257001245088856624703287357542891585739566147476237397560550230737697886527090954214840195467998642624566125176294099057925180001913137487877305798510715136310292231320350068494119772949082861349364470257585267676719548496041426014480710418696437278141250825849934021216753431641059204893649158240625860292709547660148940882639761438551511062603181301340114254466113037289694300113373334688157656311666308225563531034980709949173577634476769551268609364762570644850147532368159228794798981294442555059919912314132759006073042519078254038455603891799080842462978008336416085399285916578960443795069332181464973824484317454604360424873345216004017657099592300118448011130376179922515886326775267921826596560613276600806603869813496660819434286151301341430269614869570451734505525843179894414489995979488188366147703090717507636883950931910384253662744419928981296639127991259223588498667898209678478728144134739493610753876580405140332620089181455028325497734035457939284757259617182341513155699526711041111995959561277538338341648756024339921488987146964338163013651301678261355157277731780260132820596014431406006503604332919795386358658400131419199345643083121804399083819956082406582786366425745059218556989966361076331439937635431062775094738525618212391940088564870229640973253540563417672747134412202489118974793926371552718197779029686035094987734739487947721518912430332292553606308915048290714660648217496585931302270666625759479506243014391309577337139038705558938428142848767600959358246748124948837638703732941759983844586900103991700960444510577977334767922118350945649669476025072860889080977383605678907615271308458158258032651372742668798646628552523701780845924206695226547655824849405554689453380162334334355399164025009073740516235986032175013169481441181503762609073498461101050507585161728240749884629180299672193243082137812345900362208314764852180650585679053307937752032220869712118228553746444732122629831652191136102882313085590767753974733314457984260388387180941105353523608813230929508172651299884201282255818240404388089054262889124381602177490056338596569268463621785482860649708551269903781677532787686886907764638385933133003476991761001835254065495529626751547781499129857544607918101563319584113534779637592726418731400605441977478617408920028405975234336622479455588611092086529546368186381028925574501477454007304628200175463275551126577748441681603529013605822280198914449111616671771126784355627814027758204348643408010693820424163874452155644904573503305582230420111811768842893191206227000785669061218938422649806181374392247262640062512377166639682713756958962314694317507032658277606840481994040165461548356765250303370279235591141989916388338945619046942750379655394205492044988262274610654610716242577596985542592926811761434955562794149222594829530409597506586656204680167244988389921667312598570169918040724561516837235243897288626459167152654274877482148176395963720430796166321973989858741926014194747970820782666857705971135108057613532621960426758159060516811503535803532641108914467533775883418169619808396791607525717139211191756690076249403116353670232993414057457796791187105577229985400942058960554390638447156580561626047534611023080835834144074332376685226240749322542050516649308883345077944908508594731469678617006888963988105513706810585084857726596165186429853808448330518024911670776754511261887291542831344650010785725573658520511043354274977252900279696810316942206643600297545074140289992565768228227560027271892096035761692195736033249484424767298218889689774578602057570746148324318522431319616978127054975988936872387722107310991691523103967678274055074365379718084895904544450587974264510353939261440251652043384907943081857625720686227025842336258132585098577741765234952449491859705073986749832092667170861670687183863960731659556027478554251472509451912578204062354182335070340966690224271346888061971444860081830891648990139732841999885547145880799146155508723107218301956552833571058065331567240183868635280093924955662671934417222806054397069801949207191701519304542555851047030372583183337333205826697802193071692855282355415926652832061385899340575117721798247282637015559325983808972873271903444240916041394702262200633004100489971391686002067534453170304484308529885845871800879198276726366188344904391657687440681563094455744116911361053708515942898650986116936943747265199811388334514950568074886210439434617669046706804059489888834900642665139788313242316492597018251675871527023774065876074276831036501143567601281589156019547764996295011627438401975543343880133248578838840374067563235926605669495063622095280101099010658792513748329631077073278876310244773414599889627002320960908718920869205283088697767721873482936607019770282541541934300400971423857644511802497462306984093936969455712227897236330618425051363185268787890462955377095915001988387260007220825756090893868160290432434184225221489989382283464994857422741309519802590604301230190242802445074453676455456371353106257710332137233071671927477785523626095572777047775688560274930356845699936017983891807117644595358878932426821411822910403915812302408797008950298726725991421812153548325168273532285192312863469484289764090068594508398093891215987884154171601869146400080310219066196344057209589865268548584788054691742521024359637109287955202819717565138715644560175275738648292527634474154797589130998346968838365391259720009020338647525102028773895528303694089373598629615873224230630918170973994698120130650759770382181316096722712375792611931978108258661529853127897052039473434199220872845297496830992025844316808392235747786329855173314022218335335817253882265581221766951727392649831795856106523812054464183937094937969045563773211549660361625491877937326986232180485296684652829574683300266849325552682727601040399187710600487344700322347441815846665655045351406646051848645272257795660744087582132743599519280321645989425465509710225304445268972533046719030634439243549746013041477886270667179785187705485417215743146069753245622571180271752085697873278063747622778929342532711350323350700997854828700554728015882086552552441024970581694599808959898478642516634843315377208636948903803402294528049813075206579753016151556633006427220343525829997762026523088289166926569141154453200680719547336937721973847521187273341396926774718282253382763953550143421392144716037330238072968792224204944994177032215818091358158516074490133688830179384013327022252018531808734427285922738922159013693865393215177454058060995413523063315059360541231134922973445947835361101690919737188763433000727631222306161019306022458572314104034145944213734747797888920085083187323777362473190963354684708183128160964003000165431664998731527332473461760047951593789635813022494190972083591187704324015443422257295702762762091082897524152823201208945624824943176040747801280148267688809566095476563163489568477349869351515169416438354922802924570464658986566200411520614522867140430136454127866302804425070744530303431575160269817743328850097893939843200448555667896214321864029280262511460530693624975124538205045577515334698464495737679235348758577830419763082329173230091053797581823912289204929306127279754068465299073314187083134829647620012528701928845266167239617885709350776366806050144477983840068876838649018585583185104035107729764251622165551239667201373579306837604854918545138076142198439412711532433906858248166141253876205673365348330163474045204231911760722534909240222742234203364095904958084841669131354210058572157911400423907966940015212172552841497154666285089590605287724128807341012652031851219210043530678303086117749789724133213456880699964986520762645969016117630987832151432698852251754132497530352374891983784284843789005504906151536953366725712250335530267863755639241402468044373792770077024207001324970789781398018360169502413178193373658678005361915321217603486506199673615903534019085421131131007009311079305524085228979219996656265899863997302642760604192190586819758302782129067002224264217693346970865361289557066691727671680609720522135067109809748432608545171686235983406045309630931349803477393087770448118231243925016379433549431819086959477710673405978497883806085047656942420475597664726506529958227515142237286057067155330115413924039284012827339074626271496830132966482622883335823184566546655985080730570816261654528587473685818843358166097339693468116152217477645342751020234791688798296000749585888258075373306184503926641926541386307036299763852083389826059350350394766223655721984447893928111212421716886357837381397272042389693278165265954356567118877879023791617404811825923576433034683671712177126733436385861398086377817909198226647155050952230069026437463575323313576565156086738650713194213838370274556463925044387216520088137368130283954978900555933670883289258676386171861119547151444544731368252247655052475254732947556993494586851404164344754434765847852681008270444070213490227257937042424315887824122563568640104408580867271629807672101013068882863711784470198245530620229330690884573380239890683382487482770527572947402484166106085269593800229844381055814096749447547352424402731586587915009345196380508552702075595582445067680763490914287435597395046130037035915749170061841160304230964112742590404947955620265422067698547625526292409154096654631870015569696481924462541933059576276712706321679126491342967711609281823213232559409241533820930616964570672526040135946343052151769068020933584561780680308734690618343502214609074890601695771995708763957753619912611663881830717631779228714401675298336388682186612768265615846487537168576505034169461523804299078112326716548993201485092794021366541754853700437822889019924064181516079422353156983238410310662987622387958718891355202459746484943057249020249053046888635643369715760133744468228471336106602938946820919457512239642941033032360760473843894426865297659699833125716549565678203701532963338821111412294391049834533580022005346633438772582317241918866816646948476349880499485649477055269704712146654418261023601231026270576013166819786552564966527192095363703733711083907344504577056167236058282439492908117721597085371860841572878699879523269772930475467651214888624301862645551912701559413155592783040712408719865283532278208605920246497836359566396524234735335903907782233109167882264065271233590900359602515514256137606181316477918933883273362771788270493797431994815294657135708519741456125716997886666265839852387088541423265995186183513504836680231012062785466121844308361661330451224374858422567338481199888976526759711628613647008436363632381713679064279025335110075349426441450443696726967028966771672665139418461411141326235945112632432946337069409650356030549236447224994448810230461998299880140731779586561526297876189262067576226468382944848109017628554838226035313927429232426804482815162308862289589826597414275114469293842046635298239628765642592146383081520807714848576785236786612733921428966213235077294655489017232565571470583343763449327490214955546492324199161615484729243539572294994094312681434336520951495809233019996657593638028499636057103979914806089061904623554585906026618682481571647818970312978156267095685420610194800134757853727288797091646119996480635126143323066675684130255978088950169058440487724784354982798319161133113698923390430846417161750357231319193275196941420461763280710629555229540335403673191042423076078953805418970358986089613491939275549829189349855994159589277052028983441325673953120761432782287165158421038694978384674875012002058242872664941162887249598753074915024458114051254929043069813224871530539596244063233570195103108562789162434536103476011718306986147671956521734499717167707053968071156946201988553910106820656044728341400135110682019708089515509529614985075332648021741889746566995758068639053723421555958038624019731622580977678363266531603468485597285965252956371755213045155400917739626146143164989929775667173348867864434106534958641189266496460999532739406640624266846362933439561537741668572322939508720543140131216664783646413348384928519654963249450837261737164518141473813727345565306008466429323605173846180333663609960186518165417950794265700751883553039769036195775271913259286030860637019587996295632884568332691465150992257431328687602767142817809317396965200009891659122363399958461476452572823664328686253630544583978832710955700010930801208713362486090844978119355161440243110245963868514196470704416285842413626384924186924428488248983902885442665342761160131823024655651905527070124131697105622356521844294853365344802285224133620306052948968527307930222989419945116999555898859454251704700763055110301459592820150848859085817898079750668464982254007344034403237759829348536079200791308147962326435923499762654136931324418077232197783338695449702040146300533874787248939033281312413293471816080717870055342879353253032244654657479569671898012718039815910033341196402221362861367999122499031202744645730668571350551523535085296340083324370572687774050544289809012410219424195534452831024242843959537445082305107650492558456669939802581012817741931646387778682432601740445002221588616914344080950264002076982472651349206968778047218112126904928060719480469649396460647596161167449432756218978477600554496228476107281459728868294464972127613141306657362111595876489899073167801029898115116450006708283505412061518042810807581657060305834582399304890497376191740638593712248312421660913075467390968023126725972535333132585670594562333552125520344362137709509130649218641666464385703373458816141283888864327748838945248663892368997541864508226958894094547224362204584173863219256305827736429758134116722170461752711399225241283995709745424543586367518504199835973623082608350189727796033183844767760156418817530320838248646881685350388303065419398284096898932808581137687008616779839677291814931910342792011091530332382407253813592034333037471967222976550377535178034925556455534628944454573499963623060099646263898025720444656906580482422684696983806792877309294353024286809537893124490287998730964985210508266429119562941241049458407736896003995153008305825333528129305043424501590585635207036516642907032011028354605991601948626177232847570530999224361389320422619276682903873370240465455578383345444480645500637278902440887595912345917988901252668424039941603483929649715224178593792642636898945444081389673594539768871161015825079991263236247837197382806147541376784529017576247915387306090460129025792895361806564369723635603288122121634736254485921510526683035082795717252870938945229217300658722795914084745754551939359281281673957887105235101825720624661144699011749727336380893897219974224992179879191110962952044791698496032141461441095772263574128265276865688992758780085683271686112405119481055062673991475576138315882278445548774834937946745807993098683830171206824813436339131836363798312675470485421355375592829488285051222508134389214210185246635419227212447497903219569772232354430993133336943281298220082957817151278444585757551096175909664420260932183895172489216344566681714219903871960431401510952856440705220096099493298140089274847147985201953118268347919668426515127640881480601039739882306976110387648218059177663452848302353760443666887284998307360638197901959194615164702996086199584120470884113330116133238651308612372573248636321353524448751392724685347768314483212269374877349864536727018657407362755480554029118466172399634000766965944510251009634658173494302357176292524699330864636619511817388985247230143804621656898761212918866062392687052232430824750529677359683000650183069536721165191392058879899846522354538145972211462634559435558408920443489616292742565900494101264316585399417668520342660124337042741927178717162554827491488636645344938245196535657532758143999159942136381236120273821914557243922372623907759847994729328292504092942971728482403686931972237063667152038515098027786528982536924076938035802182305524890563384670060646547777671173458959328553715808266900540392789950757584129950632478663214663212327658465558602987900620131270438727037051901703784926238739586474934678497579284721112730123999002207189030863982663906960548107981006441072634263887181814643603422789339518932855473890384567926607231293957279351681473171363044689805270192241547080057121234055394110723116416920879232647116490139579282475237866473877768429908693343122490629961922245555159972416463843136657426558265123180861591811715389619240410059048215908271036399191757750315216453443771979151089717397564638467773489694287718433395736381342445150336849910875229366595112046695248212466152943051730210002500737902516476953221498539880737672664535030289689480531785697618844685277595731770921906022561188103595259220336232711687918677205560605550971333337747356226723532687190259964441380158069159375463980466751184425279356885896004571128242462445660743039279460295397021905001696076100293819044302173654483433720940846112511902728912000542375684489988263935612485807407545054278463465116401447572190917066810760482769418931542712539418478797229761879544363522020804621138119634043233231858260223950429192321767087748906179480939294642141184255930859227783049042763810014359765791088304651956750668858225656732198771673905275498760094848882537593552313096863196243884329449884372885534260713403946549226004811172147219129339782702868660394494883221779660407066684258851526817682354302259220810063904180021766137690806318985969957812878559500935000768612466686259023897250627014508842590297868680287409958137880194639853897886964501643203631226404128926450889441084497311200556437197329279809322776705744232771903566138330094339762164436678817637488066973636698049893777080272593751516772917409865159536214901450526884917870888629846826590106509928782385508133084395380764800730244347005967301091838644827925761622576525359541997724423179456657104013635839387019997285285378546848680539553356254980981812324756160124094394273067743437204984933719876578646931648103817943234871325895235370197062528304835389271956601820311577595889667400660865155452605830009783242139750607009003808668180641511653435219682607721260548434895429084328021548542990483656629367475356354395455193032066862866940023138597611840838295363142360709264900060056766492012931450073736903607517396883852910575842328668065572311698959190606807259950184952245384632866964467405002758622711976502899698454103946143485321205385458372422605949760132590633555745402672671799388292658881907363923646905602758908735275649087999985835370699146440704751806146641243282416204660520332162078562816377764514811050826909468906205101151807748529445590628852545763550430734990227783301413389803067303614913990173189177436238295709619233014253705201018126956086879175086788425072801034650327023853755008804722488973599684856320140006173982708756717551622750525684411621055602035732754767689884306906785477888453695979279891581252366620350002710560987195011571190977634537093348758696787528414221148344597117257325874293051727989246446704455172980684650751128347745883569584776838035551397141482077977644326249475452347962608883135864879246164642086856248503847313678276349066043700664663598891693985868668465086771141674202278386132776451775846776788516406913575207947414578912092797452298298453170295534410410886715595301537278747774057426608780713149739305370790951457876305554709621887323162537372832504636073860433519728631742772246292071733882382046542391231022318309541957358340715011567259003035786430500847220213484447865522817184250433926976889835709787988532147423166968966960954547133312923123761073363537873002072576276808229424473054221664426754312879909439187786487362278199727668247687116566383945304064337874280085042297266990653088753485681449608268089731462486292786186214650161696997290145990714296584780415722710487072840830358267145708717632252614591883072475495049927109935254572866170086639284064719320364271680612914658762352192839426709442617638599286339837559114747320733190019973377467565292700893926646514151073441392771992638428810058475589299502928034008500856944963103334407146583059081112939494474311431083878553876418273670782244385549408969258800340475436994352462003395560558359431625572485403582525301572661540484559821423305611418598498826256902992740648599525375371775377938380540154907443767835090814620699777269971117865491935221968692422923248600347068895833384367903128762755548104822004182678787799951527608357290149832929380899018199994123491791770430630413716358730726138885887414431518141018023311326460594961032870537953821780415533883557867556162051421836225793391670220021874669832873108107476825123502822604641817117733972916694776425566408501481756240612460134112052660529327294457484790772157064601659617048168095174154132953004471518494152896415434807303048376514814553676565850080550626107208420866580777944021140678179329786738771273965538988787075447337920950702178885306141823625682926754681914178009450300300741965758450067101947004422264863478327109205464810038955001882927414556506977102591397632158960201530710508320595404230927904544043902101658002806768065556233426861666886388609709058260700197238242055357619703154775785184937701179930432247242114575591506661433267413724251615938263129479326517905206389346309626200453753087589086575182238655787172846936984426230855963779850430119560448573898022258085934568448074099203087347949508928539881192765670464930536188705253715194737164829845769658761857075729956113205412307703250307496904315208144219400867807170128909153150953218598185671747788026331431198966102840997520807661235778959013725043708424496517433451259053304444344044788259466172396740642978345624111940705457890394535407480331428127248707087867723202277817880312301573362345885647331288576983238521174849242098389184080238288157432178865348245254903756014966446117641647582990712295526661483443310033279126693364627385678256273027224562306608212395475994609664083892262446859940570434653273797753359980401907527244610597519530731862709161042077990130338695611038063962809848761217543585908764542913769701938826793561954967529861308961538463831064274183407709517713808738507964314029046072991665974957453332873886564814258055742967217613072314853653730432733566519814674358972201977467555933943332190452458799166185701360269275277670275900635237270707903649180779045093501303967679745971347362802477093725334304349644477048692226667260027966378223900225218283857689222372532793641443883685365972476537943582670126845068159244077279280647381177922642983224993526891095774012003477678294188527648066050447673497176180667315849539609073859084095245793241137114665094436721845255261274128899610174043401428105880987307192016113395468060843753381660291522657012804073408295199597335490558514405436856260346623429300100669149501111428863468030485447545281379061018813813972705206575935586085824707048548359361886593448000824629345536147746405498576574741291959720673438898640021587863802098207401150535060289182529165247811108938297631719061195341889203723041541344783314075215198642925837954149000445953351066528086458581897951215621020706724289626874346681120627514495255513593202052518452638747001716099763416083327710027634179817321895262589073732152140082874178410359275833844246035174679239190936268618031414860670888454104354790724187777123539569209670569086666684137820640729192537539577761721433319748571071550629280362015719329216181913133217468119624145374024319204222231713241041557372317259214126922586730827295296945537893429583599461587565080881015871734137647840709240848788939010957149901687386374049843811995331131510512230425750643941674034774501367897613219721205290855978699586722694358218515654182828818012841816182852741409683948851604007270815258936707949962715676689343083726758588987836385245711627506144673069771715196279774770207947019281182966041206650116188189686261226931115127111526954273053500076680910367586048108423258327590611266364353558278781487757621397118442533748525714040248149836292665216606294098007784306057675000948195498178440857242118811276462606958676151534836893342043098423189093962660107511779036961705008560893187499179744891282478813836797537340208156529862778537216938165205957758468369026323253384141488865329437216585822169210639881771417596194144912325363721201620798914023902905008765211381797510709944481197776604231572868635081404357533905322272546328256313624992271777769092681352083295915982644050065733525662599242220017150485969754745037002755890013059320255897901931975176784432052896832332424494614892454922429380344588565289096054030928927122037257714938619918548087840992353265761414455312224945893465251896420925320809685638454604321755987888432282522786942382331623288139920655226347962901286372614170490395145110995008826766379020878429544887544830292539741649139328462103248704462896425625691613016766613317623382734007631045047129496335275134048511932943056427022777964372275852359555678896604701657048459468064401863256154711659772526922776492410606391700942517711125517998870541129081214406752380425417624126755510771975134577697661305327276137954801418538463075342124868032791150232766792564450253300296201002697222566720638235998778190856273080531629700443315475866487912501854792300557593839536866867495465177116160272761737782623526960799547743508048429800327706614207933650262527037749935860330815933034018919259018864658194496018115207897526324453419676396981035193132791625211386833119689604326615993561122660125573343612279058160703887877172469621985543597189631725568620250102656392109904055576494609602740024876012787109634591558487243214654311133555854524016545524720926714412609083852825040987169701760112087254977233684176669754623138642869427246337629545536510974399421886994219632106060324701682431305877125286451921470186705996064404736766864286338177300758518420824756349747294850719366525497207021760046502636172967659840102150077079283556004152065552411183391440845355474613775450114948634332398899132472132741606199503593596682043280759971581206123303152889292790533226184770070201303043507074472803100996259846526189777718197540748340736809072517852907427248945413351691585772393373508982822268217029909961275226441748885781904641854707185627877759158711142517905138301223219643975158086692695311192679133605182163451898769848836978006563750772921535059612240748546892169787869774517097590651002593724692523467731569556112460757185590745167410396606257873282772613498487965700996009112473436146397609967814939676040224364106249250194492049125523983820408723536138070931273477931887689001630607903525210684400072560110421046246869605508778708227512664940423797255634452287682331694941026057880398432753535723697797494931587357578622206460566110854148845937429839370185218711334558964855863584592849604123166956430149798689262878887824504414993138828495756424992910675434228696834827779643579513982221742170255035431784000501502963079399359363893642943589024162092807637159631614425582696096569915343229340020381504968359301689792892452561115134539832886904831691548204496379181710255191404116881625069280453734455805986445763992659701176292107369563269813525840483717789867057445347146871538991571782864413934508271772922151039702783033055060628772800231513478819556454401244717019170350816876260613744948302979834462596808020771930876551591870709778049753385186176013085638955283802531351165233159788628927062215568122887490899850072148105776924816016559717557517765195096997170224245484418946556482410659553249761541988396331025449211406912728883491391433104308859226067381133453531206234694317547420234493580250928181210546893441414601007101545525692808559930372756018030993096057671375306623820884929176347401799019440347275102592532010504103620397022357313012529499316319145660059900788036604239603871178068626926172593662822314733766677467873957044974643049614878578535520561206888568036065385578872173494325020863223702450605412270533254156391948613723040339542643237943604863672036330824803679175584987010279479117323995829146312987497238882612142581700535731075299785916771384659850986201684875565228382228622652419713478097478137384831551630908133050419387008856354463046253001741300733957597988819544800626706464645940069654130484002582727449661617516353248998344431532020405945931184344024564400504953670063308641023326995386400474760228943677259081987961229380847861329023860795482649681756498666176221275726068474235005376601744265262330106478097087862687435823441300762477684561430835891451662421016528143257936329311927436757960055659475784612782338981234432862530326158640404127810852312789679983055099838131306104045013737292742531236930850436520289546290990549459936850431173041858227509479567616303467789200401070342995953835438163134531552584160527808327799282198241324868132545125054565063941599929578400841811703331500113144826662449807714387217428842830149769150604010575437327363245183264094653668086384625246032099966646764732587733441320556724134465952175789178657078670951554962380613219693146230891028852195147603469130778018893150738730078808002794597051038809822952954054099262106728517017624554283358915044775015454187271311962548963333017428478563221982744292913708215907284278093398633251586494499010237742851250508117649609039454165186633334160048111005959772870082245943780913850202679605663381822922296047371625142889762618624067681200074947265429374389829263593965040507671018780148870652507000052907764970802666019594728427115096160415148397757385228460571483476711193371110998296493427872876445298265715281735512703549128412926059993160555634647837908876104168231459139759129237577888964599913039490785174333918374972079441475673672358832111252615594462624199587025657941494111122844373092494023598543177799133764259416167985085053205717266197695648985009857038539174795377440046660848703901842263612015130903611480009557806337332677651199028729124554134586754634487840453515846181830521931735475308363383421262876879285452528870699321370636237027365143804270172292824673709866753618037141279157570569316034289127279159137109801295946857346310384732158427344796720879448020108921691876695978085308941718111649093030805064882317025244321991164577524171960065526384913248100882579584830371403130252907316143304055844546189512501248321982193541294373045982187451670987568908438973545585359174654331128937376122794956069545377125635303834474949216655684267951813858777953370034426940160796725479649308957767063100811999419260463323590009190751239662815523345335955573429143011430920158075460194065921214201762647639138023040815484539537260007410857102894484942489557178750192776751790747447039498130617009820458383472047091139233239790339987362060820631135431367328382837474973086880318239992963361134446585087007848244097678422049867173778710017969436590217302716982746808633593682315284625181425730918294173719216590573899534177111964354591289011442761008631520201790010149951656839689863251684792791885625948987648450323500140674324843011930911223907431825521556378422018515031536720418590448428177170228641222094302759229121121633675172852186199420972950825847424998834741642676035869584321597195732579067340433955183874435381928384429358965042028883922712229890273848442848294303318118268737085136252859693054815566775832202718478666716215441280282890426440569423328013497742450082333225464004205784600199286599678205901435601196473164122877162652460419045078603377232784484423610113964095974337568039653970267732343641103251597120603742729010929086867252598253967923612780178379788267521853066819191602173032379192022944011216719589776468481505948196878267500695389085224823717787522331428976682943493491706441756692124546116343773838526420180372832705245524826871371332709229720457627716500673853476564454857212291462323611744286756494564713504942313174263295166435022620927436509453367172090671035858588990267501777667164372871857236952122039184172572797246144955064037836666815234829032463971146641451500648917626367387033368671407579261935797511269838496558120873073167412416486170141208332288366380786908164512060460380277939043035895396592098353034822273942831057549231316162860758333509577274021687167388169476129947502534379990881047239578270857726270604846998616578274151973321783798959232737210190950018875660453833057425208760579101572687846201599471175878980842631732902911696715597730652487352448043973411470399316243730113921693772258074447351639219503089775597171363936909288724178184930414019328608938740862026677382362962767773282902985001814789992454085479560124623446912396759960504162016510532499474967071947010367862960679019409523113013819383883103159113628013932348759335961125006463415180666540539901810019821071201839023860549059313367221578942278288808069357817011471109072545099776340512404165043282816659631581165035932234981648425154553233807004567646679314666473007926569376228207573014221885670289995118056879081265655614415926368056365790845088051709753214608680733208016804440420782970457770449641970455321344534901605838002073442552803612010697269576947175644032635088526934541441217698348079922086558807064980656169708498419342533931951616992391841373601979642786715361215414478787313305083274341955370455637671641535136572247136837598980835750957262744604408064060917093878681263783751715159081489880145629754782916144048672859450554739327397090734676357601318408045002291212918331203215147321212871592060296245478551966993302650396427134843184043806121338185910065414701927196449786291401556090207966918890652164109920558047260087656363189591842539624646646417510864652884768480443003700138139841172841612815531227531613934729541050319746990550108339481066542788755549866130480665059528401764428858248363102678826796919375338672257940794340862298745773509628241635909505805624525289638045919005771838130732930242564669186712476727061539653484446441626332645327328956336417687307967825795121882936792744519290616034533695214321231546562686904242172410765217163601518154891051824729742147498041382649915196471641858979208644512828462314738084153837556163033698848322649057635313845304251064857272312810033543829655646308713570112361728800101582223490811184072484728987992671415416916268140357442382962978009998424353781810348949981227316621800470220051728005523531971486073065816079399485251780719816011776597634405716996426122199045129395685293827706667783017795030095864379863724193898668607988738525540151928853200301104392756121641088343893119753025268591782112995340386656714397479619896257749955424869306702220182661276578250387777729182477987298987629459909214252828521140511976942583172120965155039859935348563572381931095559602081944777764663179812702700265927938196881639788829286656826153949378687760744815781454055973835710150035477120085452233353121838758711388513904175405417876883135752826744321202738759766585979929769279724345799100439369639866497718373805658026097234732951532674340196984483058840377946536447647737481163287083040694019278961119768712278732344890580056418952960667522313573734032308400118877214955064647339202644070586104742791668108791242620911267902019751554515951804202368108400354482683291602217074533763796690007867437471393821682240293378119963766267794894892042780981699837492960721889992970215197476895060050319384598945771308112487088134212616404466403523051610233068043502698422369952923252980196601980377095952648835834763703119870969910478026800427422252582061331671489120537014060313745534661171947169455263347838664145111871089654009707892356269164857510058043375740281934138681646007768869261258611893097034794508859769915946465697668284773846389106523528072963777645041037808222365275185281296386043494933182948597320392121792484682402439673427315952465607160295190805650900531306072313748889826661629338609579108912076288877189854676854595154117975646686285156158653172551648517213831509182001669287619679285858747502394636043385458162853779298663147303996363001798609625018762474674564764989505526108328110272062698634749196157674243957617932038745382029886670662693125275193588490382189097370965157107436538322341197448992894247238767418328039320909956306048059826656255919931896105856582868005329099494334603253395802093288213758670936293410914623433428653646806108536802567222048622556022104388347700825542141953317279539510521993401404851538378716819769208184012230713430112524577681861028796360413665224703625007028877775380514728410184248393533010825749748876602140041685609832051460492335775454737785529893987500236512765958612886974566743562907570623180107505404858605495386542920899694191836773031379447062755892726861905353677166347382081905792106654827637201087426759608827248311841969472987143285630087706452905037369382892506450526838038271895128253075470115085764956723604963740713787199014982575383055342269727817162251967216011379410958134438809525597223567661867066913531303522007746669765046005291690437259754404988818984594457614655399824182845090812067803158976050127353189476758967643711463009533536593304014946841506705325706386240903590982978181994381220183967622363033282777321220855088214452699893010122022651033746361307617488439966878680792454311230472669953740583744712402506765306114193390850016623700436061493899991742650827983534397957699344249501793525515528666059496232980825983224219572835461017580019834463391744001487110441947101292935423375812621654318242160962512272213283799243212003764641765929851068249023007189036923956825738321789019893551355072710129487343151904831729814893560000610069011741736503227635305267173733868293554409230964683913289235921002639626368239297917307584637206336971236412115926181768106034699335199685042122744518832775603703621001559745542173745540186796562376864672092161054624654209850870040330566022502893852146150533025097847707401393661854737846858451755537439011763352445442207456455019981673816330103470792151992576790050335431008677570201475537163382548589374165888286747960586277080077932466957102435795583609745004653225665592194055886780588797562893315959607380686969768227585187300044216919055119168120060587863368026531059325538500843147559115961727932194938028921854443766955922880260543581772765064117050544430001555964212749816979944367952282639511943753957637167309818983081384303278042323739688187550114639799341793116799278331249267496852537618446287894042439762296971883034287383616212082248830489420194520534322294291711223956053726620436263443641234788226150330278098521274514046824386624653477926628463245309087998610431800535109977016569590214060430526685020595437135655805900719857800630236235169293862231329574980408835078936269702338065749126862262028799908480572513361949698594563705447502636800082131690140903589849048442243462663539897668865213584459476996733554025147443012789297452674913910883345843737781235153565502034485818759069982936921568483082544403664479372616974916977672452359856468033163015916982797882137642429876603138635428002701397479015062808498762933487724506179312974811877907048012790041675067097148608067810577800404333118123680369434477068802913285844039713140099494108202585911933447102542393851959731947470807569596972833220749399950385399872853737254129312897794568691272914376742281403840861932254991003774136286347695016448730379771789805724390656746953115911299316870975475468805514173254707621043672692888206315795257188650438108868550549178734674606818188317199037608285497028958616738580393473861142394357394328651059774233302474357490160462333894950698283928944858055438420113476570113940158630745702212169119594440275984338630727688215389380940984355563679824256243620234879076255371710081243669359995158723212402956525404734513695734514309324491937264160041446035991476043619346060673938164157953299547135340821471787468884370284465458851532813435451422140209767222310818169891551551781500292882754711742780698237328802061825680450775660404615794637009586129521972483067200497740694185093918892722586777257285263776319957934364579434102894488711676143102563303347107331284856958457365715003703920851182306783514463267455593057514365704050221224675963741229654505202125642352945856613829892729924857746713522210449654578846769801352965233010183557627841078387071481640555210068764670817941171937673892052502239404507445980072270216271910236415879441596170394114440249582936334562160054388474668231402347589291783283439203174769874449264129041282935104977262957302649156489828375667023593400046565363326501841585380638874803618480439515446577683565624562549263117136513671705307314626162791524071127086065698191342943062130468468723288092660387259922613595689496618623708602290811670967851106202995075065465816615516129830195759608738587205835933850726085209947231422676905501923340840093281556945859018978179160569131155186138392539414114335770734307175141846441820927913961568292092519065179238177614362415246226393362496602608578215805488048684845384174705041051883933113562227343091621003027404769636630660608361158359706892011570193332941743469986239841721384318204707997299605057187966496277804807723107894543354939786009607415927371656509670802344723778181780192758697931950754579490666791653655428972886618046797487461776913361709517735835331294564012865321628518307788108222506673106001726754445301032884410733934068025344036743974136956188251668302072520623368469097892480538059850399111488062073549268124066741196530635972518256025803818059507181145729833767273696837586571984340017497148436154986765776721980260742213577046319429629834114281347806626352590157577477526164857379876980443233160875242545974178287052417348235391959881154268446627186146541051154351923843127247259700779370596206775924038376238984763586360912809545016339576007585206643901121586974998404745268336251332095439805128423491159746663310197015821562399346411056086992502612795422966434205022995016292827960350405974991292670927307375312580351788609866978763233022717499048154882856673183108548221712907230823176571745481146164032976236713222749488579605129344847742054923198380693218013431873427390179531091298172947579226718655174608734142946586531571971377936711071277167040690097348062289130816950426982170533878991189680454704630616561767507202291084864897987880945386213021371440862546790008837966551420230080110047849747371860129729434780965593973868253667085639673539861278180386307739258179195861516766417060238762207973762554292567738027141634842341114251199961846407930649510339305403498767940448345617087002687110831010833077823024078098158486359919551441648426598765183191962781012431620702234247066034566939356869570724897264107099585574362720446183559508161576966320902859988633819169715978797856775481611622869889398327908018303210572935129237745510092427622051503608622290962767500833328404831021678063170867556641248613950526918419209928476017430029917660000379620497407092730742138200982053209147663967214284186564948189578009247693474189568754221047223098989381876643624231412210932056442950757431629817024329624928645659724525590056935535195576882715936739514016803954351323649253763561891770161753330440756128922111780325023468360253901785465327320951819235859988895371464009744962631680232059042569867684219111612016909182351846529874924729225790483098702830593553220987812073949131628976051431918296216129812249747373636393744338859126411845931775742431557143782140783748685488191792204198826659353308628102196431949886233152765981229318165161440553173124453883862692765394518973484803742898602895321098311118127816304768345384036648968356903020745875017163448143188093450989725889572099142616730641184595984406459022635108673797506268324900094491355689171550830473631731498396968928310907063588955681075300627470037635378295491328868546355534824250543615619071144674675432627615271167335098857245263568830772799479392546012289624285677625161836090336958962920775589331128469052642668528987720337219330897571251267198191762243071938045099094606009092154379978121781588563641663108294859673345293970668639075266869404738990845483521107496487622398395349249700159072374213381236077652113764456445687625971294974607361013948561221293399918632651236532697028462539489369544890938376813033452765225347224684586290747119244182595146833040868751433897723520617324857182733481578666540804535584713988078274036336657059617052584488566688447276245807393662259598666549354094342055069542881003247220098363473744269197187627148145604929824692486540953942858670723247367057276738457703212090075129196750591258868597012995270772965465030952949298504397701854621889609259810747757336130624312849042290843930786260857605737835576646670153192322196591700972659352367908049968393915490499663185093804438996560461449840436907878956783072231000721542947648981969550950295205336788395232451346895547815554471232268565610743966312704082741824676351013208028905943692553064921760315742731417940725107457090257811048058413554378199265672415395370088492331676466602765901194194031420032971539606442380374260578207917361975773303527662199366872116468874054305578377683850453299209278452236408387463169974896912336373561626288141943478177258014015456089480209802162783081664087584333476661104316381866332778082712636353972343273412444406631949470950857384062377144156878146760764855748744407124746717618190005154909121092406489603125684774022265399134081513177100623988497014323070119006731582000854036646477134589849849584087376969417899990591425133702525121612270254246924935477481261082013530975685085703023668110445827451843932658483552525590963015712354190205591569049541503774412170981421747923946442103831577133049942418360380480288578807254745821250421470757763602924683721605668860723244740030500729208064920493134771382722868202944859575769620486760748629369319618970946398162688656233623026028999373553949425521954819854285014813371333247926803364203131513985607276614142518426005033649056692472879876462821944335175236220949232734219324910771975413134082154918879520654275036062065032125499561068419041887711232573918135205661013560152255305241803648673850559935921494201648108631173386858604215626984642695226327024920453189406040147355959374624210373352628802864859327046320421576741253499902139658079735007372572052338916010000255248157674025999274173831135723519702830553836607146411058844006387856174525678512809484903267012697200135484679615336251409690892821288679237806927194129001009834151654153210465432640643822237394609192881827056326980669943428769171305763262541431230560072753071071548909160501598774156428781451966914687156320492096503694084540092578951013594677888301378581185217651933073853204747490842351839989977670455033673689169975910291824389487387201709386195347089958464335869424243182472232632779008949172663485704474655234081485260171734915707215853702248861500447088636147156947378844963970971769373068867508100842843702227124339544995122282637594214838079908207342535039760067110363015340484075942884358914277206169004325376751594342163431319362091316443237501157655305370203190520418447136220265088399427301288003829374418219888414567043694896467529767740977618051610010679671957115164422319121889812744329808164644976072249421382916271557687939223493809550259753699721406915789528904609986012348665537425456192038929263488797820852864789418828529492938399709905304047589364622237476858388206504822521608187095896467086515524720785839802951299253916598897466124429067858398986102877305303004936956125438026144406556944300192045142781584864302118841666813173439747302814120888002192004080590623305928106860457148405480863203237883613939054682348164787405261111671498452946581149688364126365887137567662220493302998512184262590142841342192958374477979669587098085443346608664317844786705640870335321229004644110581705581050889690779071777678684160283669023268083849841681017177176785855133672344739150134079066867881523819354534483229327872836104805947926671214075312464059103544104386088862204991412378035470050734095764430363294005179425347704433482724969959313503339485341882683123352542038745786405322015921695198067663839586703226616061842360046117494758033868557020295596495049268043518016239598499106770087025900829562209991575326842740932669346591730471119857736865692852432106396200093062183550840318217341765642082207577741995026401195907073506630182478605624653516782587776448753517840039420270428102586939245560405263307583339042883589895439578645214901752380224908209215356212038573527502538749020264726764561933794153315205438071577623112695541814123258866806312977686816595216464730706754921647685642784712321319296020754913215489349993874092850475426484599016554650785052052815576360612471852699522437120224014584958494098137452964380290235334170405893971067669516808134944518563909446185752897574339641209049578353911114167266898435141252446041163904823047098002448900607261884664157324974063600654704454779506250831655673205160227333171908294344350082034467489233604821246511301512323021973785504076189477512845214026017468202917190416351360424724752607345529612109793179684560623637908735018866392794005767760641535408102376067227818590258638832427668134575282865024465514372038529832056069068553922584930189242043772986406216680556608139343269166383988102573855716726416667008023529973378971933053228404422663758957699998307097790574870784997417405170002097126871791268253175605688907896119355078983084024038161654096246291108515068982219811135589838026332115109036873114303394448951958972820092793921975041756400088925556045241863603608397693151609251866738638572424842253692444662118074249499165325560650425416259815423501791895595447188385422239699725774382747256934459092797064319286917859801015966022710457335996523909359898415398644769704881427421872147174993209028877158246609362707616651640153247247693922948205150570170642945849353809714564135168676694727193311376185832622150901756519021877395512082415801119834581384619401613780059612028045642709336930194752627011993761347296210533215581631619056518472230946053228008947507771058672092886152702622275205079064489451733382262731366037329112732945251489229009478631487006152136374944786515827990318309338507280699052004993452428304625166727299231024272791592682763408624274150023447835257054552348053806383116679361391007100064214159693526431299879306393991113427341125643467947406782509910948137150353540238641042319184623483183872323971228433566660764302584203679920129350680577929369826051290095408875858281468368099598027526069015322020917617867179454469655297108362091538174704226676227441690444720815281998866003501334270688235907304553878650789797531711333972776866068709837052234752627539400232937677501322330785485809358490572434411199066484616818738451115995411576528407214519995946313669997561090794475553208687990539825407625739476349450355168803594986592139904525358806610066540046699687059896348551458540133446432839240446213210710528497197168971281556272544148533792167267424569283311607104739647375702965990680948256715013532798804294163911123339511396851777787568698375095400147965512569588396730378040648684048085400265534371771559281905294671574010503245542664189172062455195399531285912516710445955697409349548743259577759269918339085863573569426691988196988465563649863181278204713009603846177472968031683887785292612794890458160185734038278752672625404998547436873968005836262148591910167442018904245157286952027329421315289431962875289818950967409109944183416350796724600443210001954294055757583348444742595074188053062472844377297892606671632051260830280882254212347121975837806757647177292383951226245252773770906180411402153199921074963778578731340316780666581938358521268324319447342453321688854259642781810151316252957511550344061996537159467762817431874447514905646002343681776557329298951499023191388490162023571360003332897734858039331726454850048250785244427874438881715808301954125594949832398235429639644157382848869637668343820348978707063816987360803320562242139795115734078810739982543958860573894757110450117453660971811455882922989803615814683992352072877705808736316439542007960172782706395498248085373445724246310242076584665460739210432115914292278847587777939822849522580944989531602159526693951406625989028780580404088600547890495229886867830217333051442445729986244216918653845482951512217293337302419040989179654988764136316648641306573842994872162329542641762281299184826184047711437949839955012826825377071969156816141753977850490405870661317670531253641920474395914848392380498676454646841442446567688200853922623311378947928312556726940031122535270514544573308116854514716893566524613649026381777973600503517436324360925342247337819309667426072075124706085071887722214089406858276985187165332318058313564854840581514401813559352769070139729220245888874358209227127541905491110021687851291051433923127171108660587241030288040772987225521807544760939407928489790513734202552447314391929689044545846017493694575874949655827840722351699941530174619483026406261703509591405135324287747176701888927219845088887134847488220834342248236883529686329624602372611668063260836787748506388909807269564962048974011243932714886785375370693482548055314718620557041995815092252203045356268955573644857728410913954900888317337868993377049282782789937048880095892679557156243992537048325496817308614678869956468782822490118969551688068105266119801073827194554568611429868643638236070176058755083291281302002378752248693076191844439530118211722265107303730228101727648174219067516791482414693101331771875226942153314961072072302895246823573213487845033956713272134946403359475960880322824309756287387970773810496475737959543320740378850431027010994942306852064416442227772970548684712846665247954314088677018021353410206393353332651648193477714264397118435598061584821370908121924237746156510977845257583965123348432477050244984973796733592925511654045614864984598053788812851327796625765746155784043772957140588562727526944230130842097280821636153216788251012732954700374810675228936452213164526183592127378147687114250927157952313489374277305928064025371586912715060305998337620098845257774818770378420310557446392237639912475778481355173463671423080395829922111286011811705156801475653116629354699172084276379657882938695942320017490321256140732125098454441857278252380240580376013808223932006272259708945220286000162822173751651400642831760528995814218747422057726878665447731605237305658537831242603424670864308684738645996093360219402423115067552938822583364532296434786313675030381202484675007977491012687720738345881153012181162765928147306549103079491861616529156622083788602643240805298380822538404978646955034106349574038499682119561321881280940495481858557461415378731672195168902189253585713966167239641286855443542112967695377184176140280729439727348262252975717316612612344550346984853991022598756587763053938740362519379366104952984053732128230235223506641367859833478887160754218697353797499530589529679349976628467773391411176800958930966699820788963069871344179856224103855239395628159071089982712569193484377089278432148937130723214526489022542739359703939140786992389134175420838806096728807338796662929556085584908419475458279351760349614234173543437632042385534435174486185916778736198327547484561606295377360380198200246558496883956887810484588835848508026130143445323248831462037527181572757553900399184644205681646342468816674314321964744706925995042091261494310847225820798830343310121402107176992446189103969396907552234956975431080518276439149301542236801116946549512844737850147007878584202740616923529160666845929969663496932896999454278352461632578432531119900368887712754416269082309981503412694844352835690965155636321124689152792209422423207769280623479160745038502373383888858814358926138714716541525532922055221061256968200169239307445162553208622347056805507279196603963773117809902895487345530280758842846792109671247090517263240891837773794325776090509102776775399628653076645197036870989811514552641002773537728694517559340470019867371278014161899173795965172118317480410636018532475942467669847633027044434902369358370484498984885679431093028352713359518619059596816048574320942141287970080277107961162059549598730666919969099769850626578502517272681758240094127534034460045022256124103690028042944078481467685532575394213966840231346128802701555894768712293200439947638964152576057120404972810733376973312400248404606954125864019365732234703358779811458849313911854789540127663952760425197620898687341916337795108834744395912322038612282747782567332513413196721502171520799606392838475745157258166747353111329440484366131736451382291088301617931540123175112973201555265844491753207637509461304933788285392564181358466345310882497182074286887430969866885472875501249369705038370105563485073956071742667580119858150045944418399890559917551403193054992399906739427169503917467995742430974348298112296640218821108086724187712666230809740934534408483081570979660913863717819607704460199223985932493363439925349186371338005827606218497146054960525145012588844781321187224130788422869494781984853407433341715177897565277218839791045691019628471153304691038823966447094944213000412842258019179620632576711539376247617299561204120388404606633776365638402476628239536090138879640720233893923712351896915554343329100162885237460311942648159565103454437344718906120595915631154206113443873091371132825668276791537111387672475328926972531320225497628545580160730804775089859849853708718268234924808610852762931096019738316509005129165648083799513182858698019522058401103430434819081716347293929273376067610185910462354041258282716285342931401596259428021229422704723738220049584155611645795159165017958221684090576759770185418774639725354451434757941981333622528569216824244206688692789800739384512391817177410568779886955812256718869090997802685193857780844064290082032060391818367240449623530033295553371377646755734063592687114755973974252831587481459006686101720202377820816039422236700398711995921898467760930380128328059832009770849276787095189306901442130500615588671019717161803709872206131474169161057428738528630961729689593059482019774189014259255206993365623754103914897953790019966015165311913363922089224488854642641163257011553036820421949408344922641058965189315221262397055624349267452961792522123020398264843711225799265574711396387815046818902877694457584779915889945346574115817813891959046794065320197878320629678843198853876003275041830841821578392770443435706281056864240147073573416322457627263841384942827756002661632457410776900214215553099302356085837004468846541771499121225664069947992783459708126537991617549145021025147146236617632617144641976120428005284675242945342110862769003644878062631992717877775221929883592729751902724039735173081998793745786003911944600820011787933544047282886772391532592643119765147784388140351934864429076005585888334320458046489438036721439311234055123677562689340727874695989217002313473200654415907082289940497174024089774290902553349313635061763695370951276470078544720661945257451461085016907744492599454811931020919597430077875161798826277019354338447538242461154554157751366123865023630741692717295967798464354316388383004153539503640163413787712255252412493536973874160025779924794713559527279086914749636598005264997128542651881833988918410416455972707212756528005167036003089923064978173346658327835126905160956258241440659540357151173563286543920772665677512243052678453786209160931258540088186258153873192015825564226396713160247164294230523973508781488146543321488658050239026786299018610860298173338362987257013405571920761179054380909226420528403107206922742243655770932226576517455048195610070114645326790769928858886674930634825742508646590393566602535117006741643027987686032842732835460628138823382129344890435790110946850717646302148164370978825738116584004155544238025316500370897693910565379459200983392463675181587298460975243501157897250162466749030259210141466213435945169051429228672883130618792059434967762862784989335116015010522922735602044772981533432228458740338788983904410650011931533825825360317463196937033151353951222060637983718488013013751072081082401729004131344649701434200262711119513017646437666242177719910581124730203721379663752007409529013452892957282706244000803949237324300886501622542976119414175749693750199792009405968234580936752652284322189747578878982575196276834598679289967585427016244449382172634658073328469466202324107022708188995375430040496221371427548273951159071154627860477401495785949684420741719229340106718142153427918781743485820309317126558139326846398034166519721030699527327743190721704065842388338153784680770280784983737059065866414251404333116078102037922995653062948385838881785261272860270288835386731369171057447696631587626383815253667472906581607932307577075221819344193157260881499929782178933348027283855642943273105773878683190350131460486055532402890329881919119098972027535307740005023544086693043473014438597217042207093909285570735262444434836928939428222543016705948150137054800290216255021842263340527384155167157952846159203880485369950826423518543347195822651837953908794215308775210435856806786914708005875544503727995367384983838660409702286420360807812273002636160139216052075537405998075779507388324172662359681027429756976673073165613371275428634358952260341707960717010761792774219333514263466432388432556919383028400307946699087739300899697474285864493426549356245768578923315907910429109918413757699328324882033380034894897701269034097679369927234560859438267330229096255130471393442813664891485852032404546200588754850599304104596162065510870972622412148014139433695700004471735971662095152459306611520958105680391573215639254284356752281067692517306949347169970697046037879623270973619607949650753261113468492742742581411564268172247239070005758197977326407380292050906468669811211348965843900047172205537498890524282038040733913780180502950225712219459708108781935501483515570206813001203385668469183794753717140582654001335337018428903117239910642695048188697436844492964621774008243786798392349894969301432094941537071491090496502204118720056657582330557908914896374907522077430610795101345062083305105519983161508913865511141093989559075023271427907692451257969456482019824395774255285639302612074773109844525267275732341033834288237340352051146286941237776485255831416526945439488859612710427800643738271792332189788704875933078350035364548530833991744066753477998472065605206258317564221318068447918465161880150469120262170516263416942257186305499119358869484679286107113769318888241339220853329362194873986450566176296256296051686168656308905095321661830842298486160667519912822172196461528137075668862222729609054949980405300843065881214541672530253779265068590928869689945124892137225320004064600488304730404892373232116829131286843111420274696957143522002014451237651259226364469241005556131275659774442646194697187749705853996510111745263512089180884776164649253520562457214115996209943519642260751054996141564618679448897373918113203824370453271172699051033463566178783070250783079639742748772149728823305054640225753373588193590920072255407545192154765054680137773532533250729397832361775835500301140312765619933141563662861021938413993464032778678160810581924885044093752569678055281366216305447025160197018189128577375092363589661137121017821620315507651588042562625082075540865417908400800128352024769421646745380892013130846857522484635776027255373103182871924593235319861782141599072757193215065845840186459035018332016917621913179983249719259423964113795356094337593638164691385776158285611480705158055124611720767953996750370999726239126158200747110759832343508639012418456698225607796306110689335216287332307822632737581323548795403809891974655519934182528527052524521281420674558033593181292820080149497160111245529031102757707998836377388551772913117230300208386170000317240103883709830404755419497871895614333931751335335795474253308883652386423563336154813072903024070943674794768849985625634374003467742269197651500474020415269063921963875909506260241569412755889866245219912144572509926940627590407616697113197115062716907995414730574967221686557595894189566809662075765100125378636248072851907136536981294676996944481512276390181717903379615430517409015242618897084863668782615079939039997032205053392775867343940023306452883849220264531172925673767269632098311441298709008127209777641703743390110975919036678758690263329612017836228141333431965129605088803330284651385292509928737249433622082593064607296381110213922890893298649741535957482222349136634684228610922906199076689518134124144393633722921802761359052917062399894944683875664857674734258630676267307459993561308905898628220849437169073614570393460704663429994769960312361118312854108856140270492911379140948527805906510860363206630670410505799578142436055364129039431117360822084663670895323161289876611719309580117558353206907903816785771933314955586968702072500149655143642527714450992248865331394364861880323771350385798683708985898083185269533101109548055867857348983764583950106215987741680846204738645125559553398638842550371433487621659374705941183490654297729109129520783429639856631548954120479753645794966736362091888451254309437728679434491457998399173862625147636499365188891794645926855565096236550634029346823795091531136047651460605591142545391531459990203175174470051108990020894514272256898550998769761793433181312685977664241686123023453213050112320814162204181460081547941295364960126278513641790675372081077736818062568902023957660215244564638241336963357982376842128497642995645986505245937231409999348778860014984650469200430770364157845866383532107312884904277566379471801616746129528740362572456010382635000691153866809621051029232940871052113184853968165641374837637182007470428385405571647240580669711436956754865595986657043327368264698751209016335718494015619014456717723528077090988389788392052348252305642445232689263287375450939634888601039725366819316872463964184278510733489272796464538797368619337048907022299688095196363439678844001263193177317313830782995393586366187932086232263540609597152007696489092664927753025941848217653576977569659013693892695938984213634276153932218417815290265556195409927751754479700653268522866198304717640325703852683652116762899670088592132838184458841978248242277041539373281579525083381755590918587885059246387660807918246946663073087062428251386445883275660661860576486017061086878133119982830604059958320901842182319291444337099454485207177353766685020415686707714768028377050529126224120476022038615176710084822908586752844152041838568931445319569397627847975695216897045590438214414670760619101953459211371883312160180430573044405881776493190692693455823125720810342008788760250504332291193770671651399556921096465343127009368659500589304030411656977285431633054329225747720161378957261530443668275309880248430558560873058080743570428041488691541710671403857262927992249405183810652377401656316358129918394388718709843801183807017608858062725009746580876887967790543766534202418579182015895148159100516678015862348671392485401240980567037301148395047238994176233752460657385503650912591678286779404029265687813709682226170919301101328379406250949131693155480029770167902339328348002841668080766935201438474056226219915333775831578253238124030884821638696809510319957450229779447443794335887409409790808040394993664980027297154946243214219719342675393053933585142665563186683593937718456657826691135031638467877710126722309715120909933196627076405484730868339948304590846040164974897180333057976190259489552446098320361981056015390572547233971158077452759533331061712993636262548559031867715433297381968454169784613698330705865891355004461286986206367111797219610664917300331875713612700045479127983836767387322261589617697036011288904054033017927462837101573894120072766322467656209516146261744893035942061113410299907555046429037736778041482625791496884697317992253306477356195471983284554722025813234149450862567947193348607101756318025340324472896565550796542419822873613083684058374809464661094384153796962551538858725464218142447034655787629477746167107388688065050773257434512148607184587483175146870600820194970986663920938703589500863918048724290594986332643790538834863655054476450116046690602829349684325829023065892709123273801735279828804595219532025857622377239197397576966477668759355082924520111908267354954027824789735537937144900515374937327880917825731830909482605251197866413404462922579124893345442735998948525737766931455493046424917350049118221259955805062161268245683174786794038711627422495852643323610448959974398103015833557778333496363345806069011868878515036102602290576283019004064521033500974990479310447242344332608394390126142438442550191888477912067442583875911867666561077321902662851852818003366632986487185105361411121196422196329747928289995438650082560980505264129668583391326507522440297716752394601827915860418311850985127109358037825345151573880366856982254920119005870433819142946293430150773172529157783652651240406973396696367802472300178813714744801665251554514477791777579482921730877433637780163441037581637152690748697428932814780755655971370913419592896798520257489400915815703175861730015192933967086106828601523920903512172156182431552248446823318423099924403255485918237592263410997024615864187097522406784670376758035658442427681639895468492458247875624768271515049862120721974976148591071157999490415983655590490107769660145375000585772297431988105869832531897889893982489263047570367882385142522661766603345584744311555248499198474845438292348417957825876569254349450930787979318437240604560725416923117207938658573158485018590587111285602578598427177218583545866890586351680944233826548549589850979035218576996437125100100733189295312916518449541007981122120503144368119822132643997113679522471804418278357716985144294964203366519851776326560669432288272273965086600261073183728812407574634139527652930248092680558809576281364064011247969862209632210465576398051076060880476872088110945256384308499724177246353814802280402746906822550097687627897031124069053448794220516317321297261448354276907518213694063232431758653739008134340719153244327139145072305749659626374357845445225391024699142449542627054122831366057335918151669704230680784510813820328136760804440102804946067851665141300685124690260125141457225128326677438696455439863398156248149069439094544248050974423767262753314724900330870603561202310553330828625900452196901514302563722496284680686068686889547657483904557710619770724263311015107557933841063766688752338761491147701097700635011689726401330196208994034357038443258296163163668384946201237602797753381562815682574084989602485445220048942562628204189229864549312450249189464011770325407522495729196092419837107587210629892422841442120591056102630140707428562692517090652375340134771188966280371358245463501446767680704096028582236327475613814620484194600273558491953757919711558852711040615862320883212734744376605405719924191457160683590263531269227504104885171889307637743145634808850554865536368927489293212452088913341813325387212825349415441943782330728971989844971735608460463286587754739515554078182694309215387387661309988652048617716064207198021497986274546479183417003764095684519144612189355860345356173493528134696956474898444977537371437892869258395921432712374885900029414740790801109660186285405421881188451163344114315796341168642042524955969755160609662688768553840950554723808389879550821369815829790458189001225381219234844430547906741301491929679274558146883690086066250955999854913876101927626797663793133310077719200421093169617988749632576877370869472340236986146989231142704686842556000887853193545799509553967470701932185332553744988714866632587231164845520635474933734099619143394211574340636477692761135681345538431499247798873604889520801551155229632231994598360801295987491680119775996388617484516676222148548635440823057104814769567330609367816724866616264390182029373551938680109154613783167312804870950211927998926910170123861381685066401069662021134247766144911469324706253178557582618949082520917860711557695670512472148359606361139150939832175384961396714034572859354101882752875910913097126819334649880584071519972638739895076986322027256482136550074850239559843284412807436265186099451670806209329566515746127251263859747190429224656520772492931905190275600654835654506320025800860208744562621048187194648350324402689343287669233938060144423802149299947251104232638904549774299938411096009029810014976254640875821534641189511097800459511355464590294733707342353959704236470948353225993798951012170033339475730472751198800914327212581902500343484433175862815871740840496239498545733120397675845549459906017344483278455546908292999903100014167126878361526597673155011754373671762275954408012849458109129634908410834531271163691846792437839064589173059655598637050592264677463445141554310649741764359028132871647080532015517614492748031044915626889920516542826046877368215026805214392124239930034899733771276109217604754341318790262660519412467201151643050313654496347190796408035224739571842941402449664102084025544060534524860659950537169596453344040324536961647895758294042400692653595912944716891313908528099414232785780946401536046930610442168474635080059266952967475028983067689494264872032077847978155564579467218971990678404770519704109917243563415704584120169724836697901321407202107250959431259085767374396393008349386308007822781867645205543902721687701578703787634292693447144576090995462114560372719720291269290725210213441220383553510726706714016516678111858191855925806181382795478986302460415016095471182606168549465827492293304066242086337410499925497776251584122195286116612914519773143229965170432712950238363799649786416920826872346739809390281132775842025140457057365051843377483184524339464475430513890286611670748220543339349866036285864581834444844024981411002827078236918801401855205315968431541212305214727001999392790871143999483502089514303031587353493961557343363622114494647096221564060305035448054402473098298094070615705575259443656387240654516037329582507483563666759645946974454025078201330492136731906221066004237632393079575387752872259824997157523960420640712071992080957919939143262439695716374576362840995355320516315575141180840466945809983692881460100787089396050587797035207747896850362629381576127438244412157006546845795130372115394290578236126631969506987337971182749067554781289126918827300906021088367483718471530764946527288649078164994603452598308941044196250891460144561533447933966803755928330191959705528814144539912575587843708121210071043534542835685691792451420009601852081719313356312957773591472340649821449710152458811732279827004992567156935690354778672002390835327136167284665659479671987512663641312219692007898993649864945186868640365911936398432783942503236277637687413006414096251271412190565656272328263610849690737162296703617870106999011390779408150366912917356939962397578139047097667949260809476597347222036777897152446052213742786951656262905141321340807950130585101943148984970282665041821998525327158877990602137616970869940090543287532476827515817835698686613301478070895118514404034802035851324217719449892064109476953350355919147823871727988804353788423815367249472907095583405136984366037422714886341366853848429643648977652903416868022937474530994995001666582418251709697276704409102860151129740517147373566346494033317296985873685833553387392613883105702018168704524670748710214741023026816913956966197396999886459288448922632204234829823209034528888273474205257844448693419401747827543041881127632931154093025496712011004212091604331749953400608451264245521918374414882911956636701310526958303548559511421615481509112028030752268859053507852243738007207178044339907672306502291446584281435501952430391854028597471915725925938881761087528845684075311672545491212182904891907210782567006076723591702179849223822112794484846715535788534732708832250447138367476134290869853048223086569860387852335854202932410139779439058225380074491674366242312771113114065675461718801557553519644957443018891147235131661645117760510434304569461269049543118320483209390038759229403787390927429993076189682544994282450216864518063252319097525540250134823351579226593384442196421833274067826762537715892105720666290642344800253688719057667081518129828865519630686953078744714569497402641450322851278481898597269744630426472358440518605562431674424453264335740429079746327742347874130840891591062012858486990555611968773018343483388656380659980585936876404948807379957565836782413439253206407637640139231826753977954657892084362066130186695823142415214214008886487393765866507692077156266819664249412971494792769960673285711698809301405884979338844910822281964527183621360128618183092284505409225802158253097157987112484448809887903481265521478580577219218006703915151168492791384940563516022448714894777589670691574465927936003309820562402727245210359368924048197892803617223140184449577586439641509554505917872326371041996200556972025124509547465518235637165804935506217647614119194661575171753047228753038188170792461219440655358316797628908170136340175418519450296964309757816141592370036105172651165514698423849350671121169719678155233218706109627061493227433543615790415113953450462994170606370379116791541653030200127960131343983292877064261333292752507198398565165961519294577443401324950234338696974159796152503329260675018520178481678473049262824090148071965048243284427379598096646021199659131881658325162004491526869522820286376621062674723373060653461372454742719825709928570594117047582356312946706692865975767988153080525164969976098951776536555484228534489189186763378855067613829806631752359243755455632319080878057990319860844003558957259133859266534565346823154044887517073900292526552901171987477991361954954408892583468158401266158441476132932717934784303482685784127865322363518772047877458319651476276063325332616146019896492447685797086229040525982731051764242159295661264278937730239206313967068820907141526214016568522259887028541892548594125107088581143728581064209675675403069695711628672477192200643784595689151245667844894949766875192428769158144340986658052519070888869074899744182904502647881175507527239504097686394444421646127472316082653870428327550126905545300214846746870011859257782078537014653557826450300680373735279242280102938124185109594544950145294816061280848254100301765894744825239233348095528293663063964672861587288180579659906366207801038373896206955824842363188415023185877625332302426123730264862051581850055748956629133635894241355069093977181663970302280191308374704990902300750959679932189450424564322222670016566680657249081318207579010589272970023158022077996508430041435957566695908074814440625260087741812199918810296942980056250031956412816953493296492188182961866023001925270636283573343911236758332994765422958857796285233248243498828416868643292676040813585893142010058370071376662600071242945582731043551263694966173052721472649252462763576747164361211793051718938723350229966161694982200641249901170792486208490231416621777971494929371935939180526283810072776079992333498234772747678909959133228334399932242389193931158412992375796160587685744247458766404810816749494773415714448819838516864041207861139894427395425575000697216747684876806296031035166723281957839486378247120089215060129390111348375130118339904170599662862961676411350722155881893173137699883351715937282568546371809609620796318514074744842212524731036758598495464519573435260766151898442785417774549722680852358930300609461258186958909160093118322866132274780158574596956908599238800496336556676266380786055341262955309307541161673475664082594129665871520607983950123861162873681843665059913100781181725930095232382153021623236475842896137614751190979479394415203755111611637321095405130714351196318961951488344582763359401804437312981414938342124242507772024027080709584321136339741520794073860349061700883716812046603613227552903627990857195097692614975368382821177626363707725272880611608600087733116797618936177164126976703604087473820656336640147195225314709384126454844408935239042244696458027195188787488065089703798435909289985952563632486016128008362773095816042291513340952297299395742376460902423457250529244696108064493589728230980947394310680160755668544346813672206213043306893830554711777707668792669128120383369343955023437213782783971844780129755919857189208422143640708669430610344863682210052963974135331760721708206951227874124894365071783316776383902243636253863883723170435701389684656293970135107399869185838213745821937892503596776382343912815605023455422825659294309240281613307605387969950367447099151219460326709820457011335937713816935391972220595637992285126834484062812961732385371141960166795615315652149329386365134334579474397335376084519773914202791370351163014470802326605174478196343671733579638906832774754360165279257639919878850969552310730367260709438754461088749020516339492600046905284934794172301019505376374627902910524330722488755801641236076972366131737503348274006005015103771372495270246319663383225633277648719201297713665453326655646469356088191668054714478398563435881946744428159278534682271774060677394076415037953837089526999537365261245799107745253705713111648367677211311857176779036928053019958712327267873256214914050093511679039430577181295952093346282172285983625619072519427477007881694544573873975764111403024814592079445384795832111435678722403870062681861472101421338537841425675310090281714807623427825833861220923581448457229631141989358307862632476509835639938354459777995374042917185826858029829086246719896373028949575428442122953694075464358421346950435537415633333582561884334082969019452955667031638244316181891253150466877593316484537764813739994640469816309542046592958155536052594680695212431014117886087706224864038308032788028018108313081897064698292988961813170681781574907417150879429198780400838914095606872693572827509316897348983760875539106234853115840742415114926086051038461850106615083066599802837207120855597481538205370860878715372450681652277409126001917692912788484756433093044350070488154494684104059010441322823008114035751757291154172753624264208033171564211309722000479664920150341041928381037142842354683127013866759938492547997927240934837286594353560195784205068264995743386012438416211635637745116798635859970117842975900185141247310883180649739491552379976715591081624431288571894280343266402156737006289523746845822239017061362775232398372242942983773236309746968546260763931261073921658431923196453070253400339720536141890305439453612349431985742043868300866498927883409169678934667466805588084576827346155319562197204114073999290678814060447487678670180613202106943331228873843259407997888330556629063694535523081625889191288840814762721574148714543179592624337525559428424237602845135618935591726143862493832330597975751624227748236970007369077853412085766722385652287385719539071750911238910752990007873685078359677274392989064873037534004842900345054637063989626429076749939551429582382137263838787470900225572716542057981121060025763831117697803958296487032054578264926977098993157245781770593907739754228867434083232997803955484287929973160054934264577660358752579146534922210814835841661568182653722196251301276322022585406892808286164740254407486568585708990196777597211722650310230000477555485626111277397237442834626068982525294327690285778760528303278926912089258438392130092149562050840582309506636336620090886672475931669181628695307987923485886804678878405410180334545525657227429170757359391998059392933968971346931660294040740176902586746516088077771893835399535318014822109908421681978696488098908794956328392906616525812308473241810392206906622866387280577322831502969037810828166566290506488683668397065143481654890103588027331281012762132049463424795200496608277624908421126157122909996541634597082664859852098731636173726781425542134174224260360844935720194851634306909418731175563752681089403577399760608695995175267184856175786938519722562646534137471975911590810893817553290539318482018339903514453747678394778464499462763579695457197603879556829428445704378573064821493354581228690078881774289327936947005964223714503118721364368043645234610399467981667665091584880681903082151089511376236387562286830948035135579718132501565690607638987908895189275762147894558979876543550371827363155277358558024440219601497232920573529044937360477533230058893116839240804007948563912421282116382677878077196491671690457122099832836904192631013633041343156898527272294754221242507812153707268051947445377515029346830191926211012000039910671859708167746065401187117973383904042008519174996235699997832638628523222752153968434104526505667452776371190557164091435853588229948110779368550745068456219713732749344801353155696087787480338897485507046387278935803046294857526179512239116672042197614734545287981416142722779569669255195167764530237966550461614635742857381260112279853063640614329437408671004556040609813705696005790322391363488045532961420659092619545980465689439801081531378275854350148906941348026030007650740309907140703516888072911015413221460906050443016268221002683239991592840955492818913448056392899803519349172323685807818333535604624270606858394766039375210625101509912089226892570547980723972593759776287585219254480931920719740426133248523324548423112875558976565701671520156006788928508163333546251887294178149366869278144196326582918239671909810309247207632662012407131569143529290890276909992813669626487610106686867782059979381664344291276183403943386139105588690597300435848803743009801677335547259735326807852080526291963289476864687856961738097570725541401171099561542180583732174138567296817646434209496461402819431689219326533927067921853586391384584094536212498703804596789536470289802206850758359109992034141667024571416524517247661249095438758732996418260044752171130760050627770272749044439301245471856702143017501363276735429430587772198378966206856092654299638442604450029939859920494204000015429097465586506535501804833866909853504852669925613642808225329242265175784334565554805036269531469937439217475699814335945687761076474864824633254826532089790514541243008458846191700735964604259454881159272811485454937567095083357542636796889018747134034015593634807910043393320591355208971488781016397258164093579058704042808387203299264577178488809146002810764656526107803535172015078643509763607466636924377600405276316481537106185691163623037449610195920505037222550629679256012210067568246600955573314271000409663394062723064624572499592245629428329959841078247280471377928406217541540992117486199434309741583230059943386874055132685528857646740934078728780537239744673305707838035936370413842665999259309286755930228028642667230746844873931647923327983530723297898239139684494141267256509049953008983042249645783721260794005600592617850844373176875320613883285754272606458307765477087632679444118136328434814617226747384196651798875523664409295161201282207518258155913358439140982187717802223162540047305389172458551261451261719252572531452651917352136677955988299231905555001037426609982456595710498945845639722992727101782320184921988526579824277545135382271213753106739850516677184022491415965053534091828046239709841420326354912616805820869187959833823364091386327806740646509538375781789854537610669341315325870859783862298223343524590550619293491763263687714215267721334036813126777905036757345584591696808055895434960263998659404777371267623779978206124332712607874585783239203230357923949750677443358865082248580841546928796873362496045547938680365105196141275192740139397521089977297659305316879558311565464378606729695862624000368837799026040958308490604651836473316821947750807854949782485483597452896187667355003526960706841218668518753818070419647151302971936224735863269873195547837161867240033434746803142074881199033227273671588971747698473994483047937451600536496794535197944006806570778784164749197851422908744821308107960299297941076852765548291616476338405140496847608206878989264128847344584158601333229154479284286896635738883237810508429932475043871276350672012840974844817591034323701162525547969221797987976980346057508016084490869498215471456905563801542671153857539614725234407769604059737199040762923183354592413992294383966115460744130823361158668815347711506005487882991439779903621289177976915696865434557100426570653464886420088383036560867949973230570895759907850086909546240287749403929867834735114386965110361474354844064376976444023024383600430333249445033075065487709384564297735349176758703246977278455734211620765918589253891588957379614115824250400067066062019624698264199789699850664721004639969031190397905021345680080325930157101520668841891136446198152634429964261094297541689700572972642526734384893845888423097811555335365737562272954173198502323901668402924728912103901087104357774351472391526523798777835801645390834881352823260192915671776264632818176479760452971604310966304536511506905803655300625174426510690870401308385727605870992927768126184730935060577482782157673569092382392544673466542087705086499844259546440880630609907770333759242134141882270349330079348251195547612416118929840295463958931788567723242546225019265024973113424161193288217826670118656270338221215432793388322147284800938171227734133262526661655104794872747512847749421771465857339397279488443786022410817911121185538035215029017457044870028226478977149929342875366686438548932595957562850362252072188351824718613461199522311271974371908461909055392748374591056983044178932629797566946792576540947116349664434443983561199770600403816817030486389975827462449555009671968614055325783092047147811615654011575245980669629949396510610985266300140551308544354312717498439397575383899581187937129026208152672472264367222797260047294386716091964611664031122689726656295582741203356406677532954950343829979542736715053858852527885871091175523643087803815159655530753001186943242746301056102589726997692287463153752712029481979256631938516541654652007871741206498241518945406165339397455515552750309871918835602233867347958650481870285110892574111629530943159797687611418339385949971249045272924378868699720156598014329425916119651469699417896768001819586167675426242357915765416768803169549621201212899688180737867260012079332577642273914150404323815360685500843751010808292045307562667639185735462318822092831380486578782082016936470310156041895461850760061246316801394802559453643853338718970303258758430613982168025719007136174306937183285808443161230452674781104846199400063245446212832432873612338072812646539955384685032028176737472764083422971111979957868313973693661848102046632244755518958052352715931626419272797574943795119579599695570591969430153730865381106527892496324595248337840136749322448434681686451238308797873786616804670633212719027949113988049254849146736871631232347244522300830610617093884697828858200397700389121738773126793946486209847739740227571705910714953768004317276976336794629772311659924411188431639908537093485662319637733802736888615973423967479953780821291629098641194829470463503448148994225747013746883049311553623861765609140706699861610446902031810715400295913509846555652765577105875371545572091516608414006185095629590477770065166437442158574404323086674374363422523671342933216683888566087604757932169746078573770057066683940557807205546318379657688670515878001136548056198500834971138804870870313166761223045535551597882329068755848112326683189688891843696970372555204232118343074055574746830189876357941110600326568982531949963287757798787565324655816909512295458381905244389610355865604570111604350500350814021490748698199537520211496645478951179626969619402315565855042678663801262767335447120735455244572837614480799936395106120646133133106601492375670194887222760380942891551090530506384886811686814982542209771188027250186813013751571912693437638308709623734853043482213511415782997117822653512426988879721764605256292759679034979283681869881464597368095146531306962206005108782111960200289030755834312869780437425863689297670568213388383628469455799970749517565652671057190099588934686572544803035300406709209153545923624194441249281365907358637603627166048532402641136623891547494263136074412066573844098413891587840537595718068089466615942317924800822397159650516971493207284875299324081087317905577356110099632698322062480785221175558452494470264470976691663319301149487742080213173775597712571027911916601694999126010280033611587601058583725188526779210772872583865564547125091936513890744565898407808092008800903697747761274752045521811972779958772600902830058858402656588674005275806082537443257478474540757002457175418872592984410997560684300360127708997983504261421612560088954975304286368390952481058133673073148071947741581345287043382555404967323565733065403797660061633752366886811103669679812387236309725420453061194082058664834006026823800201652016367321176300452182586696644737503527890473753894051856881633973790461724711038270928480050986614839380341660534243459921064902602327217410318144516062457488361588873873560973032735836877459339538277852314243484583101732279068344419259097567429846632967053988238739280315686876916074743082992182762729394189767464637629356130942811045053041006119773485872183355223996217081553446650289450983719189291824878237146103729772830602986790229187106059241110113744721709699361293086841405061773345485340577078282355028530814218695169044289324775909531175056938683795584942886364794839688411808211253796938255796167563616056959405006270047390175348345627254665578062343967218856599270159848627838778504299231390743718232457166118985045094172115008924376104397300816962808334038779581617121825525991068929091464967788906299735567997460399256522675223469578698163557324717265849100990896678339696988165750169733881743829741461837543760476966181919832637584944695921655704158187089304293563219059133355941029292258094866708999478183913145297536269931292953438377858477837857318746584303747284834953511250776070757312009194463352552600958370851226970340699344123862817973679561506137107761596635460978098307524186562282549348836119926933112092447551115367478569772361255648482805147502520780896619270994857859147415728906268566105261679681004822647643023068536106735583486264343698428877867152576190140414659961502328552523896471075895939146647296067766166882430861533466074191057478178829083876533575131958453120148957520552063296156440339841932550428696158146162255760238079428135661744527245244483940114252955710254209324000033927168538804970527463354941468178643894382276643567378056365191432604201773741700638591410412983263290725954736409862303649508211903333453721717345628981837925970712972631597316693631740607901092070152222279863347705364906902226070519827953287651735821769280832153152151886584939137625197760132201505353157409380486209122764432111522328738455204653644036458522146822930884811391359397761173821717724335988989131610739474405416754813973561723455622850098789029420353644463083010546298533903313340027089520407963982858573673510234863264422165397891470029739312252260625837603213077408374615846358118514555274782091249642691385159474028108469594839113313574140345196375672770008103262593516980819061446862893981367315706202798680193211564310587560062990989865289509737855027683594182393637570002717557011798553956700262357915036246161326893616353717192269501417030733396527361507426386635658449496715922185900396527387478933112868369794910373665080034102437430048411917003949656972513224686036577129561494105178648587280486414369682969423321325327109672697300584563059147353966384652662623366802889313765857714399675362311502662532265454152565034417951420898136211357021273920017939718728023592112685049685539811477284584034272126955618410972636281203705690808960994481584527477132981633400836657783224852360877096371327354184510383643480200181678105943452811874793127777532940392044044178610122514037035133118384769429094377931416266713657616579397095572321889777863860303703910710633357290909570877908671418275071220560187895684226724728755764325509630232810747919617013682112308694365079302893113678746399642874740656240287722975575729749633809302765139263842649593646734071094947195166112137691775325573129224781469493677218713168088430434389292742029411769017462866959261161191228792588106579610815391389511257250593714879402166972569278314455307489180137225110448115131983909890977362011179620051601981314655629482618103004029143195080072456274881878669183332107797765591072179138168516910798328299900629925418745041507503528718982653018656872706709189031538257679519696124868717163867719331605217654804610327930606312942048945187103687759695424544157551342563855684368232663471105103480865422886278350838068647174070913573385232563749615175215642007443437757348954183157597968530398422571717713966744130182665043709412510478495759030550456496723076910884398235687753319170302210262789121666660015622602168478313774042937181580498413644293377336408032461572612725469062160101339874970568097468559234650250054837092967868583844231494246924726793862337100132255596778399159050231266260308418321913165919836200711980914416329329111354738709496708929898534685304939034303603132618674278659958582882373091322410941760581613280384057619196660121128478892145558432472580342174421600327970114658896100957557989074975763398543420075760942510902367397385027220082631332950435629866812540771326421456912587080400417663654362163811019218619118614624307691240853647801176037428455043343264608568089370138251970413236838664091692144832883292790103193905769320369040135463943465810141824532360968850925579753397587781171568008439769481917796337563136834561591709875802675767802228334103135005759075014501360096109437240478087643110495411474094452430659176739734605668800859065123184445886561975087751389579905756088767582532332473705795377819669671498726284942985440838100219052721906064168252377936504860573122111136074439326954877922853663794048940779332096538240333200659331379369573058080143438511363981128048239245234736235509748226464447941301213307564300823629612535985581292834573405922707046241166574696421284144297476437849163342251555200424070216450015068819291668218418909895307739756130902725411369780327386734280413745195805818706172722160474498691270411846195461374995432048647087332976645417294165848791114720676213506580253149483871067015046964022620915090730275699387888107708334457345774832215202788145002747374878045580039370641154263418790586832693314442132723770076293116156124898231783388704948521331950035285344899048725346073625832755161991071377394335979890757692859240853694209898034547859116545042633641669559584183858370645176293654659562977923451363743963580654341803970326992808336501178528955618068403512054387321925129270220294065430090318633123283199218407397340936153205424584729109035259713279063901042136553877328244626497004012148438782743679187436073619502144788323509443777729388088294779552987586800634900354090088649719953002089926919591995774982199303536689515426081314981243217684732951742039258021392140740739890356575278922982540044127094361322724220393200003280624319483743997951178646629045937910752307521382073139286274791028499053642116982763822185234799324670613470950099279831955470430005819312909226549964948419221408768665989496452836988264625195477791569766826163509258934549585426958893479489183407983534047425522350161385272395955798545006339474902489358797946208317411279262414572930916051803643378319929095063518990722577065788558659898451927168376117382152455664308551784911720151603969863132601502224425230988426488520994735522952490507752716029498759145860173298972167971659331630499282026196780956607057147660527814796142812427476142941241199679012506400360138692841022231925402995892792257564718755540051237341973329141346522245085020878747961106927480626167888701671313099396876590694202277640483369161221484466268799331985353125762204110830030546742667473702573952549851274471629691302925116305408866068003970740111583440074831691132335430058355856501248688705627419244984496007486974883757051068130940854469442819397485923184372718117851470813207238644246866732197422616874589642309211090937058049287723312398333094648432706486527265531257950200281328693236831147809432833134972722511868349290703914523623676721937520908553109796510652380074043055220342246738047496237930808977666186815862879038916377701450070037933424937778233447029131710936618235668728806821375881954372441457448303634961050222090423480297975701962325605018133931254032208126258557159015859249206588614529130608766707605872458535488289537329428813002926145297172138449498099135240223580623945180460942891109005039841100471715023374327041496134295547696338271402914744131534927028321668294131538358269944356745848451787027301032633775103467417670906397901937725953131067654911204842616360773092770063945120933687146261003481612551247433219785401653269259813780566012271946332692407580544531582997165017427292736732712183121342895548150585667840890845294196829617880569986214883826231786253597716126067315983065399444861326028753712456048481387538087361554423400489746318939554301190244488479576065595460722009759536813308774533527254581461576533767928853012829154825036793444482877256753700687682300388056755204859099606015489272496091394864477123525995296463669575702135388167726719466089424160664920802602317970004510625006919623499420858479626204364339697832670386498076340649888048657534914383357814045511948054225752401008497953652988073136061986218537268332169307062796478845410151612776614880754527102481640768850350605489363660898930354594010147477428393615350324766798763139482082054213564750340949749085267931678883384391899619336084826560106300343981383824756553213661585389278179388855540303342273128807416293581541078677338320217950710724676519161990424601593629488629347925894288602217207408583489341908574559892271049179413185537235026362847014134118149549378120340699472075758795483420485420669505626395624298571155644747689173195996027226044061420198023599274333444070733184365280706267651285268027443125787637224848248032270051478380961852525100099373121696164962828975048215814502656687753157641386160888948812273371035593425836574360379184697250315769197170426125205283704594319747773841269309365260718866170138906332291711059391026223157882863760655765633186545677037476114115551210561237477852406501659300843068991371348297837620942790257319785266810128850545756142033920721532029338853367715369545621944668251157186765606704922962195172623680344667433699770491223963032532466255766560907091565848494128573739734247701811613936047807906257510201763951910593537708559077072460924902028518924282602717565819431169579739395825934170953170174966219141149391671823684299529636996973769937873282439849925850694466588273432762202409866498197708382738180411710373189928559039770748725586105742985254099964303952204160827164879471914289943325014980984542464105493358105720042230354714300315383442058254273318148269523675985478179171359306790963380810803942936201546819182690657601322623239085701314992577663914918316860169389145316295870309114843386424607680999266645899013189517640487901350599974105422673772481026062439960175925351382157442532394793774575343434350724705204519960521584171643412415478137387952368912869651412197940405500601608741053862626518407916858123687347795833779987050992572160802388283236154523684213492816910507349325518187932185908386240786939972935343518986585329517144721937592739366433678194484530215858811599496559735469711966916603554566182809429742969575036536303683282517522626429612770025107055327279152485986134631622426896560306722247120831737043859605506150104928684729327076957241681760335286517142496246918313878840393855064440140791195333862512384833262849691799645606195654588786852443818127645519194212689781424877589138970367305996647872305373645245587166895526413804139564271953938817033275051746970323601226188857672559184399676866676260307524297179079026155989893569095781471591259182472255552950858161690824482112194468542560527189069914986087502679865073741542101755314069530168870160998430485499618431944258651601561129622000756667141368436519806280162364383521903043682336497059537585296195139650846635052131115858274343029214880852402708889339132841672172037500363121472863210093173230847458014690006282103876614693436441370426864322709785321980940526342628028026850846499907670641688078487283402626625267458554163935677783897077563112520911873016285565019611155578780882066913738683161324049189986245270683029524908227993149805132650456878322221328339138739959816605773266201126754750384313062452119943401761602700881735988501013843756744709340188843593578339440192209030072590592238277906142975967150715920343820267564757586442084070098783197605091253234550622635399948318712350941996063687875944988813211033175462490980405864727900735603220855455498675426249440111801656066868126285580072460771398335222597087562076618300472540563074603781001950308149462543469934077423560534743908623494704057661370783752171142680039850784353425328087799628513106472259309787587731930418378430508853780383505848075168316338234851572390983455378591379125312462644522942319286662788144110750759432007689447091621211458596224051947375112072137916382552039233229099941726085378467382073108345447021568498721650216914465592494425787040626593478725689423361018412048449374133121151009759174285739167270130321304658346261985644495271402764162047557643362892483967886861357029962436141598667213205528689882200312400751381347709045587468653700003764708766101829328312280508749859699555637671010311799246026805716593067193952911854624618234447161898076167609227933315480947714283867985378926977706036282547803765671787143226664917252302624420419697104907855200270845974048979311784491957996563976699102113464027776163335556414987087142504085341393499810856204649519764311440140532892187788642887767031505818952773715073646624665745441318028076162427398825411637007775161213457725968647706850029289016396980567178234135110094260712926907265701476850149552155561076387960539721061133635168992579445679901638138761017555216768920996945151556494951732092739393501664868259008434464242691160184472293957180739374922739757691802317466250650389704594177780014325752995969480977597851265335593274691750730620472969406619558077970357719995056330059532781881406098480928886028434402683741390170277632574660999911142778669884316154620557069148474592145270275286432915532094131675222679074554820010964085694455221424972408773270876576055374558931923991071297065786798376183190075406784430197802887009351155304184961695913775463944444567926700677938826789598659434279925170552544899962607364265439077653889499732340058772970976835581239130537867654776481975728379630565551960275025911287580349291797274425044953708751724565952210665628994434723485963703779689830068972646252226529513013293274528478155893409070050820147064798543218907832513585239924576883525010540883435635035779912126289403261299588131223764082077394596142320666422381894990615049642483354874438953854695817545675779245516056551167220548135386468764891159216854463387642314846406384613083897898428143356242019127270042307230166046213426024503809614984202725665850746626531592118339462908865547684658343043775639814218104839713839066109675264291019564865179669366921003298018370924490971121198506096872164141241567901170267466125451875191590669691399671235535399598716609703467538795208373938342954738133074765046962522049331071305279370904915102317486289477964853974634489637612274177734770781622458636791182430559024902448382315151532263379570341778092543254313911456879741857068365880558572678329150553674287311032136262180604418850318161004938812845304743919579402548829781140064907467094552267292946013468503509244990036193667056231272833830121227599310785733264040209033600506759636322711264580284695850917402142896541088563405191806076123978818526253950356591708461141090737750250696217654906799199317987034939437423958121103564638227482475845721864365979697747686787655252569115654895440136271087384880222962665136446850981225702176782366254602425460069188749526279399080803897107235951939512308528201225565079130263964602075870802893255361716457053809897079825455369723637715342624901381080383599073159195931938308128255515934705820083343471060118704323884544504100676294226409312034346698236976827973881726045658156048090565397217195627627637120038834099387893404919096782612229158505095604547094535529937968722575658547248439400539840767277655100252874341228841992788951775031438907499244361022855316323594133947090889283224965025228590686457443215789129969227617880508667589421531014683733179362746208033465200152741746345414761411886615115154076458467008304221326528127212846483497856134356679458025860178227267410006286365650260177860028926728231235077231404696192528358432783567370356374167664229583993663918061727417360868442381837868226914017813337196161954432636838020292289248565595099032985483286156758540545349301689707629815813413974718705607405024000521184223944865421404173821391200752723820657165736118749284959177479091943427919183026766559589485119531097244829039629159795860344575558432528544928994319070891039569682389729088242079503710122403058197433839861524443621905618080799929025253059501653860480139603477894446792862674846052136256001030572263602723729471301877870099419408853239483458221369568163143013892222359193454613648979841194189073842329325103527808186534191231408233917580889748578536246551865288321566996837090047872554496319355115508207654914704831682642587258814869413545737397720596624467132202994156336128446070774677437495445175268345354852140190045497261946799341933289660426418618188476387005545265221292501687404466122548841810370913666772189575386745915602210448864185532929865430837186196708332239772482065728365327388360884123101578871920778163018322390438473970728842896997498278013052739230155219162877248355965002576928080376678581440990967853362670491829510845552003997870301661197259276426791300324233463178975706663324555086645729167845820490397967233150229829416778140242591938825740008493482769649604101494094114551739715465870655739405207321235589055151840131892916615261697739501732263143494380939593304562557410337560897773434942882303466825577127472760184762517739975797418271628574380112226250125966084438866986641173935425628266967316362442646798406967233719424542495555189574234010922256593147677832431054177681354896573138618163421498673835291497104001385666466837060128364889411540927147285471709648050369031453704710245809738212090824304812500637432426544437412438067452416063925077466565162970378064334589749094159544068700754804205247941566198009545298839018097883163281137259049444462317149355141662589211726858022398653560029340001037672717130399215751166583651001043247975040050209990272400202972400740137301940830453084779749727077196064276011931700849943178673371173132018827014024501555949056580855537362135766209342134351461391667416307585153133702700031480870972110865599123670604182650875414376124505079402026731751996262180151604617564206207269731630319832542469510629002032845343212455907094032429406883242755064246998403014035499654284907605543072033922315429664048585096807361043627349706765690439210732524364683785567227593386051398202155771717785729642631756637197800606280811766785798614447368253431869219374947870066385034363281658144844463394047284341559831242549542431669656308761878374601173898390939178075991214205394138629391129762379449673797639733713148699487160859725396900166595927669887916577720644608396924140147946682259000620113753013070266609570172220711017072278799618007575989869401545442852127701118530104421567868581194302544078844410666115102944537423267015589726791015063212655400841702617117856926647188503939022543250593017585696680096063958377969184437519764966811132417901816368375513890901667133238150059080867279371055144094594675857330143651028249230328632234350838624012457353468241608077115914701054221734711346704614957084559286972960700851008747496808979523961191881924451843264357975395546293237164207770645761728012803299728083998147687759988332610518987567762430439250809355607554235255978673689447309551919617692006344894287886085481633798816446908178081164904254647635627836669031061737716146284537450729246065661855200959053786074695002999065969274144174366467870112328317678608820484267726339920000914726982122774197700871664674029842263827493455947821718532687563707124423137688903552998766871088672957935260643197246173474909089909726169225647607060916441650814808485173224019412795291493388171732709041297745226306005781858571084065874126598503060709217446764812552189186573959138248013591885827553778424152036384094123054712679206533133940212025525289561934648679581934883329907301652455352835791252056854330727547733584168090363960893634957574887909776968150281447937010313761445733666536372997633832564406497001476337845505289843955205786143805511878694187467020062422739154215582773372119522900397666922390858500434910672144662938651903905297912804719330730051129413857058992150571620963271577545350402627238668196115374624950262707400562653773686839180785121149489050934922313795480297213732538920909528324736852812082408007548177050623039579795728978792381014094197012221798135442404365961277999161773010363394436580869582305604721420864839382819857093042232352345778452139341720495362310174877187310397891338000628344435775393162001120330239597314674028715054367660427440076032533053030562765118539673932391733095030423672740737555590161680253366663224811797869464874803970474512458372855692744035700923451200692256925018804809121310941567756532623651504895551649726107128598065198602813056255732369716865422440737319100890594744785393835270065590669719193232290483846716209973801599664930243845938055145825464076107168801628743655349683103285747912674318217667476742927386130623743329895880560577024958427289383120725714377363583187113803024576955786032856901502092133260691126969319555752264390893682649008519054374902126431529849090993614880566392692380507924083858492922143632507836768361508282139678675884264752591882307925806838356335917563399432724049653636464954195123630852395818353069189588446657846162061650908316198529693389744558911260241436988450633359749294710347631646419722110370410247022173342558999027867100764305360900579223289528160983505134566521908552453174561616052995599993044332632540068370740548316441985277017957516771492401088427018239592384158481875143536385762393665631452578258734190232672229067447906988857516011987811733270148518052033963324074718594873596646076474308375355322540883030579832953094960183805334295333545735637727242680829642991012332682232688242498371701871222414442471679980965928671125663486765176849861279948222915090524503515482532875796377205322031875040890821204029209187393275263240047117056972023139898917473528960249549162714527305476586680396261779689702538569745391848552982897932028304389568914824736055847192770883007823779302203564371832409795038186697442385710994128439389609911883011461129872362196712943807775580196952267702730690768818697986093444088447577443875977452365576352940608478752742260761169365617061247942470720473111693707131847228239406649916347118625293030548168190065162686179445555344379485750046229479908685260440834005275445638355932952098753832542426777304889470723379724966571191068443095009154898632832930413722019455381475285381846962333485410356886904480906824440161628745302267819935720146858933877560922759401049486514852906501756267209885003204261280470366924584766677407554483776583145100859327646994577961459468503493805771918780296298381664896828596832345143312966131332503982354154871943874812682823049875366113469244724792299215639731871745271567642481283006180035132427710315143464817044091686829352502718316411066214662763843310064767191465206236645357063964683460255275921564876745555609720229483677034685950622159468677130416372967796708794996341321038491388413186950156762909271408271410716301223088501921252202278116695107161485758770715027394259219654388254646888872420507719930792320615286912884555150436795348400422370690803157252312050178683014132518092431722347738272131578330195080934680128808301074997650704014375339807665819665303153431119169443511325003346722122591887634254620095077271734047705045730630645420424297860216895839470105886319858922568695011742187273462261220656744277855887604792187607467052348133473228870412143484319551746487334826069590288003508359451906864464669395909318201065106323529732957626541708574223238495329064857631305646646286871691406870228208900226386936303538384827812657075902488038250855641904877939575164963185960831975891518930199497403022714273875993824193607945307929953169728345424762455759300452341847248246420512536764277467359996407654384395386201026156344889662033451635407223756791852864955881798466501298471238210252538259384383230298144937321152946683368702701750436647613040369355058337100642619081942439093242829666641146847492958397899899772905653414949595302790688759089330601538728152384639430369993171809210589729496909416232350548438425872855848641096609661286923934993677099002916347423195878364143797313520360904781986755277755308759422585633079134413304196545244331283381004370616370079811228259443106176080110574863973745042439727556375162158222382668430574001924189210383291134468577299227027729157033683120590440836746619108737597797436998986789857326016113918124003979213165890398602296824365963715621752101913477528211666646592627567591043782896869458857675617572537058619815381592947170704905700528714968001970221299464465768367890945110443497956130360923493379491864144119023992063454804193918452764420859291394959100243716381112053374822115958163164775840335519350529794100719643581549496509167383988299720176883725226799027299110592943123085949974742432100148731076773420286964393029028795191955637989085713253539585312085684428744857086528752422734011150103319246418502904262064533896429784726738692418221012593965662851848406311691860797598995899908956132716084192592589735880708713788408677942209636877545985917014861457072354067711229648063442752459633474234787221245982015749862217700538350190065684645146387138667398117334562272932740004922409521395925110766488655570428406863907449884529386448876087923020463436478126712613683984561604365947483455768137721826033524662012390007717029158304631909908549730597754478118165001278399861638424680612050343013558733142165179022328906271626575434523482378352857637084505205224169823965181402899047770476224020176720439779486913314463725664622792756068000113129401498049770701196296481452685627136389743950781215166020594295949621076077096276980296554401339610732133140781592146722188063719020157709463842015838365947540168141250390245477980434816433434548721676688586955004508218598957604077388063495224617010627589365022679343728757569271237442216631854828717372061839691302759193962329105008457650051752652977543672283060396025724981771585824239763315314516026175721853098421231892222436168171982441746616793290098923467879877199375885883527526518314109347831464507251811395787948028469343890823397881508493427424063854252217940441120910908668307417345795065315530108665103703162356269199763172788277847337905694328546560987724913428175745227140221614236509348662038161050870256424785741710579413346887123216792083397976777932535383532680621365832948871906859997769942351007827833047887541139439176539620495838596514483313794725779219685192515610788093228533714485301103194475714527794148053156316864316787075755434628694712371110423655278637203784961294441166913547176299550875135151596728855911784960749926649542398799012056016941503246628271539686251527844784151855683829464845981765516844302028464862800706248668830791341552512103039176215939800542471974747611823059353764740016812498236117709875297887534572889735717918314481418597941671944978371746182351620703884485384339158999180056071334276084158503382244821763734638344302317705909847146143996385979777415709953986147239934580260275405371050690190135098996704715121576084829308545437248909087729716405964235768315139759517462235857475231206816190234432099992527782573540076617688615765137575365657638506028960382626459763667904752596615487808025197350604721299967414016016059392167478053412411530569501840189397783348492382390811290972411241337937656126931001554151595842676291327789610152033009721538602467296078924504595319691953779602833608105419248212012105993270484400689768129059571293055329303951931511457130318013937634245300682560627778396072546842742340061040007347006882480774750547985611574317461920456687647267305255268996486829252264216392476932277198298547716599752889783370521600843905659342294494595017827084423318353646819641452135025008208597752708855036518656482366895288200987574967287347294671681257451662750621304844712234025210010723588963235902376088803663659820714010855822459534834997934911094494994334064355832663915388872686311676425525960025949608366247647587504145211955667651041929258799002384607648010204701296244224595482329467161166188841696816232964208535194359225945134057901997245854070077479022568093519632506024531224064445219624286620556159367113733751455597342428187062682404782602939353221484239070127532081183149725937547742665537821728688953041240182873481345302029837322764586903498327488613624348890517393766903027364708436125897129675779367222257634620043081932445336063670617364062984272601906006350285445300912853959922044544960129548381823693556905175774565131335180015166811097829006583112427068917006834111355236349691277909657586970806025555095342801945330166651052246342516720635495563873172901842079010222380964317409302759508396180182301392732386346206345660977138447793369100395356330905853450406061633346135441787931379815742650826082958429553426628147135331667807917493642156919267455777580749697567160349593183996592494608087195464755385425478001023860031306848852485733934209772561059226458384076706880907732765157834223410755247929167423488729774800838642449923775535727142100028651721444652228435476957315300787247678202915476640033272325246094015829126993096487968229012697124951925964371529446241879933287000783096361011194977648726462943702001276242052282242689675956644037384522705119211209629099435982290244813830736661372829652598259844633325802443655615532440667136280113594354665876163769315998220057337570328807888581334527839321480303580275859961138266020614390728123722519296447606912793630345260579286980232770390947865140044295026760745782283252955869625643493804506891120183441362068334702671220764163284812615510669402949499767027650534020779908226812961270595496087856104905852476663171054603299369763936087728587892471697266482313200436778161031885704966534113742454849519197885027844949840845913722391695415860631361871098060301803590303296915134267527120494779353754943125155216236691554917199576144844124136157912449304364839617072288899008941182017992992563185612198566686963706097879081701139218975030378718318797257273864259315083835480515940810034928727621485010219501945490164788431979118646145658483418031945642983651138926862169511920932416914452708844686636633875862695898697140157672701646763991648653356644646687843250948576132812204253287100809710869618866050798963089708282866508766505634167303358361247363103684085632434202169496226407602296225813320489658826254708978514864812540347201821639162488154450315069668571337208413423313165678870690623587569590553040712284181899722724501493302687983512170192072686706499896974124322702357576429728751980770803450838128845219904142601844513421905459540055605072152092446327751825002561817630149240195879370271226715395585577144975832160546620361166160009535070759819938154057932994437736913559558139078879968919669284639995962521090424515120565677985967974699251673889831903390088253266717703354725491336383335047731652648918792930611667215748482273762514424386852896571620341559007966067355322706641934050010147968728468971038549752048792370271173108350658303726146971237874152864919685271448883342260482283723911445427707027091034142755737711118672173031249424448149335934168084674604060591311919451742019128749220601933185479744887014153708202693490272472166112062100397041064658568531219581809756939687441722093537590709235704115217270563475515527082162744653663105681500495710955284073368960526134977489211843644345601396401193266220161671818198499337508838911702593860097780177507444658587290729844892569861363797839696142454507310165328524653076467254911029249565673545565076879149588819482929087107019261826518698159185286993292091405992142384270900305974239385518630248364738302686659131075742543408189996408991148900403304169101693095690819078933621108414108022770998929719456912852869952856859071491139512211009290237263226923497962624365757753284476880824316976239791187009035050389460704948291565475313008674183007365129454961859126966396786251489603504268750185426906994897699732678956811274663635224256632978039922653005921866982468910132373098380088365371902468136188402487168789460291472913794172392720993947653688096029873470863115560342175177974304332332478831349695038556176729411327549841695923286597919120422023586193189646656359849802894641835421537829791512884997769655199849879870859962532998991507689528239724151074215196536099049812668477245386578082843440990930226671235549031382854312917300288737535721745961151798260661574835537781367885908198733129464770067291140844528593485291050892807547868525693242583700227570620828079765151235108137161021743985479180751103496591830961822604131782395833161753308684052058514287607503353691038815803855708095658692670135424648862101906182732417905281373165611249615971637098057075870787224103306847501292437855052971430939601939686082821401338298799847755471366663312607396144558143673285733104931925285823748272170052051527066321303288603538923364233843232711888474596790174663932440851140167622187728851509153307101047906040095718470286632613983334309015288413008483687854498915945871040926813423164164162092264464241034855365162141636704342124751303062305090368892733671135234586274542865588437487408925961379726835303696187642690039191820088255473938402696458831507549915649828412768825948087454139486541291168472224022639387116238167584537624211980634480000832814180470317399862449282352763580644487694057755438106186562859781511210038622412105824435614127294928231229607520491709624488619682292664949709603584385655561307643366964868027182241041964878848366091299426476174856432155308782430545536050826162598338425002838306920426133185409686509158458696686919956948031515634157521863615758954258154854575119827003979568107557646268459224574951917315511287494890509845907552674955285113386444526649548120107332670010039487371506857794374499451015943734362391330647340500373952612962560994517351160313641974982448687456286894564910342154593516321748851493147629975231464495058695347870395675741559011716884340131680971299860475745868014335419063496288857959126457128164660692519578472833750749740763006150472520536277429832605690313271801462704224061858604485588232279564541196738698626600101943756606800605267560491040572700184592903392989902453871249684011412512851987030692429506581268860315123779866764175128304763408722305744303106455548564662630517314583586351915278430097776437204115659028798906269278916422113586038319960828285079972780020697682255820527156727817981348831289026761682279784624310311616474307157098549223620741249227021173727811281485417247908705720717608809577904410776530607801577587095105488921233459115095934840810204333223374416903596827130579197092508764419519266447217241673102419217386287415901256926306259073241097131017598498637184010993504028996191502098858801609659793115155632995974746255690230604942172478336969224281409033418592895990726972683390281592652777586848431874800128580927294697277125829905284345034296264883427209345510925025386289516167011508208054546335534817691732398317167345746938546659279978969278271358547848523934633597820431289840553800325741641238428336470571879951663336012392944889149704893054364372734742861346916809529745850793904873993574930531092031580670393867916045205997018483826772073625313060979125171988222516221793224909384307762536282975430068771347085800885686975315986465987886194686941024019154326001978723843345453011546089891938214247677614348090080189638473336810144384530248463225051385395673835811967609912786109660651043295980673473368499393083483589296714093333774238057312010210065795593980884148051196500070738405328148366109971280791314379262102574927398605258248065387607940158695648102971057117831816966668063652803240751474243453721911544373769085058860178718787049306103198349657629787093114889539419904173248342571747355200687512850255131794558940149566642716464053699816157971771084351805790512058394651977439811535398589141251284120504749926677125182263193957902243518586487546580898270470156566400027183241288061640293375103658670871394229266536051484568999375849460817017479143598379514174555716602774856162807438056073190279123438253861151886812809845863940694797924394930582878666530838793318348442664762042170860180434639045696117680071958513181660940526117340635707397731732081835567816452239972428254676750066842899070869598039783207726453173831487636535131570458463799746592453415994146749197129964951438672448627504206546218436125629804733853036325548457504993508857103996182833083471289644118687954746837396207240549423310281260021672984003664458317088401051840680862527158533440668918441146020133486171197048711722415273724012495607906980224988070223363921069351626734742291780316116599807830775332287225346627378495583087630589829855625074796406880963988731906965525179833321861121685954267542430869648727017292113582627489690763825284466229856806431372854627414403859683467914640370690511005821815708304515735747852243417701237477097940277402674069177597687527740266354283680592797826627045250970393074162270709242857365333668025178824699732561324079457082506798751480625516238751329520375315117836095813412206661550927047859645584112841664491661560075315857920377443054157269436292934915102573366972631571570917010540273381670079024884289963461420529235795472095047983636576551387053493710424190512645584706388476516799782889125680456570456378780509668367194069336175361954105150902874113363979733239118450919717086311658910015087358239354735294691161063023748591987233973290864536338401062291948005273390784242200730851502393969951187172527979991660718362462442713365771733615711969154759906410878817025201697094130742061743870005847233820841784702337780711564009169196949473878907900192173460973775648936845017026456566060274459198201600804047414374458392766107802451977412162318362205727330313875599288534466796786754896605154063928273180270379673114161809058614436536992559196106707103200616110915186953300382173499824837214066829374626817593538169137731047463566182093059133280551534596155508943867375019093430732792061665636387918299298187283543377658512355565329585867104341699225718325013825598323286055408728418200921644328067290266741567137618034600830034464330706359802632652164030527678006701117191405481838373544488920647028670299421453739871907198528024271020180736955553743307250209599472149671845509787744951602649111140643597492167716975982980440023134516433285656666665984491264600692634321747114114645555553980821744347837248658249129640304795215008996384214255598342630269899000801519921589720186885841330425594680731968742893822163468136136727938595934191310642182302348843067747038384511129647817452645462372277111513284529524810655665779890551460821695822503514754085500679624504348561800810873161552817238276076760706228876355249244262257053025206686364230796403850966705114846017239732842574074595119081882196005324043764391365961472201960776145379903871712236274945162443343495871581155297217606700732077624475071772542708395181379271094152161092851484845879833854885311152674855269684544867697517756791607751547457472698076323370083255573093585064005964661040180327809990917325115428754324220216492881104864690031942743252550466979021680589933929412385990507563259410344103175199061305641037861134872795512513953149740593318529817273717059440530837899399489024933379636435151467314827260555336122595103117495188147314525741493995387327738250901540683874478171398672195733735335873947387402230174107231699987631089547344918217058059493541472498316673033150009935576951860621697532724859296429491822645250788377297756469975441856538616774255395511021581144735506039657033853101385781589605498398202149651147372600835753520064722366458560522800419744838719282264375052886754095266463301118088809477190266377837588664893148298052300355189171622842472028560477476330042813798839795448466231338660096080769618335212757368642771927549869515389448413167076492537148206209199608886949526598720089698181872266762529673026578069586093123621346304358023359961985540776380312413683305355836990623931817348629269779101546194836916042179226400811783179495086954021685518876053837729736499046004245377502919414921378713859314663490024735928834933537211575491728311950182103238994710243194955908874023752801147945353314999992154382743209225108167253065784755109182364098198581682510567071715852129578754694320425420243179252912065579904189996586750728968478401203489017445529964654014393439993829725744869885147652715565557517105858726464643640038067945676098682628852473848276297850302482396598512561542523665418707588878542417720158423237398187530140871627187145111945904649929606270458671736659601708988794903311353100011810677300780378281182140687993391261950824300365929845130636079045020171117284419610472605737918419413126976832987324759590463543885733598357789703774126199540915969182760367029801664139618569154201096781497713225701917218435577965263108151751241367952110573199103695724747522056434191724619267269573179944234236185269877508635318758975182845195438461297345354319752034179853085009755365406154541488195610047718608609358586316198535319507991238071077327167185493003240274224277710823792598704804766755089092569313539333769698347829946629299097137130425323697799869435020467692484663830997142168200692135229538370061393272459101866732527161992234006168985935584179229814646244131739559219963057901156834389521782581455843311648951991486446803555173873175761359448030567866153191173382850021012779659306458607577737454730890115744081840519604464732996762738158207883353663051512679456436513858385667252193713532652515829886310807738636640657956164684844405687749026449233244014557276612641621509634310018177359625681264990761496017680747566902952800159127467421595145557855791281559469488826887593767135434727059082339997619094751912144395086123037594458551725859565145733100790246253958652913274005603337480968734790458126685858687526661335015618246475546332689528787678846968631010149024542570341159363764003129482392780341742937762369813379745006330486380776789870471033008174056126884035972755465516881513427673484530588396441909993434455551885316835790019696114480372034595569299843348570386612858898343450684468126970745660836464883377918108562574037669667433628332205707589375784100483458992671356831259835543047902138493212365420131619827774944905871262078378024362569526602219429255847769246975711242225436489525607875284863937407321309806469125077875165702491636626610986738585481118224464822800379800855497788748561395762836859511855643210368443264313819873441258024109631960320302817353449281633877592225531014273669699763353146356791596919742522740944349520865517627416228084879548641417718933650754368258721240163260001751777283161172477752276526864695033865537715665727524617272793544497539589559869542269337943426728712443946187049200723925005499429167557068822946956393091294937310357296669356697957026588467040401053356104813094752378474980841352550061977209516576044954424055718561874293457215250451361296606602941359643763277191370258056272038445298174709488344226139557440965480835086073954080468790136221575087413362278169077879930438319015946153940364142844687263450768081627519753103415091100576580093585999325790349748658802043236156973987509068700548243855917438459420218525928210163227993066445214550987691251356983201060815353803617723604294288313617696417693166402679862141171248755674596698905796677112361818944610795254655531720455401972777244121177265656870466296157713662040145535962805071276461136394310636753850505180043526545897722383016592488951273160449179846605191657276462168692900428886311393996342405319943122766259614110298635239066864609497647581007408616425055124325621535789120815604199643914442164143741630654955008770516996212776322007522333482599067113563633669520344623680616121029418594219637564040323306556627126548886703857142683031627855350503556605968546777851324180428464784583557616688952118751710350336916621972470646663125121789931720185755731622320341297439066905867253225019508135589194939474133215283237678171522603304872775352856219724226891977366163397800475554719325602168168149743532456600928780752407367129609093088821976293231228881935596782740390534706822639345875430867645329015721754358139345336541683891727769359195042396901448175022298047941929179136594425425458731106438625671845981900980623515320455628409544515844276899690842321082360248071677604024660707337226616789435031460489318268678306696116453742279537426817104902805336065518420028218558374464043054012535113812089764386200890088149831117171499418018532422197969403257224420962647060963146863502083059298634315664916137603958610084967899972301397178290751402371793868697966856138370057928174918094814075732567144572489590918499364403328656769113717223539192507168127376928119547790331147560318297396034979268173489852685214991229407315422455643388456121054395289453472132344641740748204695356516958987995793705476080522718148943621278470448554036380217472136348942198846353068993611481387566576891780759883348389830542493486455512124447409181032258188330211532039645284703467779354994571504255424554285559748300207200219301699436218095999196951322470853731856980138012008483665169098986086167621262733233848617292771996712435133136529197074143696758821129765621010884568922081495350793313719204585708497714297129953586342562753152514361947819051987537643976389069885978350313287682875911516562553744382115182983180588740436632001968973890426975633394483918779958521766316489595739662803331521667166587797086145021675239029799736212484302598246678404672406439082020765313105449685087119548794014230678852076150708525720622985820930915788215438308479947106834832008819981977749535545519633928996656238086568675792378746343360491391174479960515762901160772765117316940957529600057709720039422099284051226640586583818710134627218334678857194244284605247738329844129234708688379426228105350199635968854227770276750114657004347552252439626714535649229286492233876796853737415349851766907524739129145763895991750061016196114594012874228174249009899347037840433158724728391414517726774814296401370161513960896030828843808098039104060935549042453429733642210787114732337513928437137795151797727701691681474335028509950265886343111938173598067473164380270466069288162710114674136818962844110075207920808324790001669580585980633352452506505001548070345481133063222012523155017993997394423937520974142461725924157870729123317064654633096169727886736547648972296892609666034458926201629543531901268317657663744572412021379104495773671775407782701969483089693118029913954096342459541764207687115160597673127293266325172280926063033099358185187165105178175593673214468557742228204197312279354716954455856292418622345502404131711614871469448372574377235081476582071069300118443032466023889633887217367500090339986090219372728512587243639178160209095811265915195553479334155334637054352698600610641930534620789202254485642334675449232156007751436362301171598021975347842771782139333229824205386898797430583318510622864213603203094115721870311859638307375980742339170532659460563109550159457214738950020887116957730716308134472320667891092918601657088157556548658626298914240154377603873281036934268489191099202548449633741138446561250595609030205915415901984589235873598840342975304748538792723307814817659381316026806511402449378186472923700722831790108412671808452044339595850892047919037414968198126509267563981360532957347984250109755608414767827936480290173270295283355599735273744818846944014080906036500229035624833704498195186617675765985160257233300649702563348856831820908218068636622918048114832741987412259074585990238689112001933643975352893379611943520863190158981161299890679766199460618223208832990365447199189892367737603303317055241871229887698789119049255190440656889664094594713749526460533803093943908230566566718136448305715574941675391257025484094043054613539554612027168426747472046059325114551124877968939318121817032365262719320978564209280155005223074568571561944291335136791567074269115251871428304801116500502843672535252948132437805063736415943001499626378424792351768514732102832384202586282082530004233712342189520554180676354486609389144864165373415470604081731305075675764195443960211518384344475236402576914261417479552614469631418539711826718044528847037921735165445442370396401373282128929502358823964859825613435620681398060814545906213220389346755050793142346212474905921557902104092844743990221303872087633186054222292883023788068810403374511831019878768097904589092971293040781521307730587863248315642478961132272657677312635726863271617425067217891434710216156201348909255596607216881399347912281333683884844784426588216843501481588767957500280511286503242886115024639451283883628299711655558178749925248044481497497685790168408374354804616289211685597855796421021396903649083819239406293658075530176072796444569940485247487764016754194053809019315609165309285943365490384566813505186811060199268288162343586111342751029291487468877263252047024368811328166618859068810727347151912789863867532156393149071175550215962354501574292443972064586985873832633377174432567555768218223405725731654463483943626872237349760920908687523711567804854066118165401883796590735429489139737848941103105278498878936650451755463956302038840373189614432313200393553188326006471014292296033950461201478188373481644260054340587907385512128221148936955330104266620644024739643937618406876166818990395825491530868326532381516649914052112220048559015222401061719893090735698352486344928025593171306109795793057649698374466092473315197050659841427948676336749108645679266246830960184319799096406334950101581699484978134227990172803213509044801219467831319779539275925439423478521230611753985538033356246954139439033755198079543004467272836499372545007591042802667045691215992614278959852407661382594689298052940130859647896686795405516304808866671581923783512082289455177784168757690803581925914560490443419617889459279161663325011173552077731625925703328059818608558786146685298683187899335983191872551239489960545332277971224503996734919931666479292556839401996057660803467352648005529895777423688550034565234185092207237387519021639547682154579295098778241701268991426341390572675441753826886302487515296343490769789135548291809201263323375135468476506343074066678609888662302092999679933486640758729118935598751902406545973388349370358583707208448574654510421594443034789125078299169981386960158807941741258056144118368522464793267281570769449364476275704371810323330537912758410641714594159402107888203934697528834756711961523531761200768443223971980134895585380405680450947346126950629778977348338713288330374192865899118405332563384699701934050955882016306350097422295242896257945007719206539324565593720155762860073928794996019192936700684759260066554957101133999487381495263623685469358177869893546757707712147079455969512851793823342427307359654434422367552075393622765117812663712763689463301150199566282473501026506240680840438249055418481164323140081517044384890018920712987481202801032193399696173431792257577667830149799702669628956724916314227430628843676493778941499568671526990794996285713696636412452225535686311088563738721273206017247791384827156891204273854164071600513221797979568927592981494419641338605708892775925655603888799250407322014416745745249182782408165567812280351643882539689620578003615809269107207270162796967036655784060426996486540604937703297986117748601417156158225325076340649055340505406025419265792205028099318147189313286343591014250382717125176841735205133183254558273405118454977131616539872687992132512382939819230220251241282531643069765802225962934669658037987605340692048207981829881486891135864403584472417020956826000636347106980830771706483413742432072722601521356834644260705862480795839486335741677564506660182027755018491542651038633507715108724124500015379269138609552158432498170911958340504093205324363496639087377165963704962060269289455441162557112123037563511435570374474710253221007199765395016541333415958579204250902767348319646462942135629271785991949147783070885756742741844998750491085992210117810418036459811327603910933741493590905329451375171753034581117940717953327988809351721871118637933442598969341719343110422835015159391082904662070360173914350744052691025984585261990566546067507750902125946164111322033672801910114150236110197353148579589101549868531443579544562993127381897696302733481677149067621478909127668627944606508335543215003774063496108685041914843155733674672838899489133032242165323834764057519838394955148440892550675699844672531425685174936344105898730109730581698688936506998429853815699204777812287054650356165003701115821234513494034929562004298442585328293541979556732987953162944349349984512286157378832260787022439373519544060061063999278318715386159774546805077369198639822868001716189599939636528020996254372380826445317980050390764060370819155553374788166774743694541350371591626899988611449199471256356879251146774372904393704763586489866981652706258866730637981599277647638864607561947012706256618045346726752425481021758782201783342930046754226441065324468202524823197391038909581418396611138074480622581701405530639818428907573539746130141228297093186175687859412720735377813019036408881728358241366905417180715318591293459453958049074409726283000285132684076725499563357659714407939347550226542364855954583790365678321845115033928023505554003437353653440772546122922263666056497268080755189294653579858212645993090851401083588168315120229426160221343529590757900154373954366227234067354123087277167275691274965714275318180557532532518070922814390562980529358772971109928918289800905612577647315338614534838671977379748626171179906131623049272266754918047657353762491209640353569602799816599261652574946404334019505628000498709370168362526433882786588857413274441090171775117977948797446640461797544118578586052561613505907223240128183145812360804745356977952659055385975022478114804111020043556505141806281876553233208995269922685378804855017230830984902552355137533825877805571102036746567332878712958417793244015594678082427709522952486064726281980111755209502108380533157378985066892989137835303419329246855572151234581005384962025335221418450906999024456792585355997936229142728986875933604685482312719801817282577072350621093992626917844964345864539638747782187824624948772861510687922793580868340624161724345892123423535876841276101452464655742333961886781970579735575279491614797577282588287594262568833086444648887249393429997799230583578982975243523361758112699415507019297336918920513578387815834419559313986874565077370322334219917088786914035906127637663835479802935122261900310625952257173489813088484989087371884951423770504219116662684686966916872427644431589503423844301186451652173846935398926640365100016470347770755990301702782717393956484150097031809641154825728722870069261077833593542085890725819553470138293618422493670390801968557269153422096615421106168773826873788917988000986090758541593259395491009228240394778116118184370628612725735638829098154936674179367086288749044409885233357661097237773846921554889309822923915376566350427057409382996701148173422142324884622458172216070519960708742294148306561865968844517186354993524467279118070609207696002104255189171184398709291742937618302141191385410381952129989635914524098031824538846067002444567255732166886424728578267746079567768606499795445155071334345359315428641738168448249466720390229662947848056240911528717229424204190033555515078374539480486578973744113657068903730959121457335880304753028230134336143534608465902379970125862211455405266180291882319757400325760356691288502582752341160583777353688405232561423478287274613645028603544361510013860359339507890149169307214705649110417087666117668782837505594504673226592480591906939201176561346263299883234363082277603365211683943050103779490206365178134393136908140243842795389735955893027630386962202878187714266295963127691052828513845702128336329198365869898555854653497412245352563667109655990871428909299630510417812633792447565077886924880680738519937559997332084827554818190652593000382539782888615156492539939224495153000380261446923859993554347526509308859164622457394799705990257175589540428968275238302027715121505241451958658730290736858373479429092019584167248589224072317686817632962065983814397942203972954424608844181191338782561375093433559164253726146849589298130196844394090046287822492155574953111568425999320344908525881311912117891826655270327853175589274282352243546385767137979276302542586503726091189236717964612577614232545417920402102671769966666732281633735690275592335171744766176194148713153675825438193820027938883780221373033695150239141968627409252995555538851121557264951041771082779982703464660215777569162545486272208477172525755672962686988632639714073907351071197850965365881635496114735903885038070328705935078901829935502352930072679213479258703359556802200569252126602711443607816826717665926497402908333268954224490650974639956924673502852203569519516330373411281504628651055306091577175634618863944415928092522693101447745631597107364997225580876119330911564166361494408496272150252617654988633354359980062184705460362676127537122119696774487645016948818044523293635233153511826816852685159877922047567203288528212288653423639355858342678167128943537853996938048578549214255066076814904038321375593699850793305562180751289010215260641826895206024445891289390720101082248789567051933345816867406518569780537072103241734473994145075003681264193728622590552405423503330562302715029458373017908659885911702941416077293973173825294740502663431264446298961817889096948484319809504552556223594389615925236202311380326358173927793040990418882388797688794032210977646162030338776209096825146373876150065655219574088017295878502551805215489252659924870151384798139354520227601073855859216596733637968403526095549620212097018128322566638215243142676027636108529650719415380473225554882460410050296031590708577774250514831829264107591725972632421623876842824554293529671926994081551074301138518681018398748812448915373101823338770584618162683271066464206814647211756304965538868604528259934767163160252184677229304272660965340634286413637451890387228794301451341394840847458525223829823559714424667442147146344095898667147715329848170700100024260010655502800540975499024968401552647016606235685827953255729188623070953121771045836742987953696322079933509062987019398558143374924820457289951736653937618874895089740317303745379017790435189622044267306173315844119557817418066803666354693367408806032874084456467795329826612625888634476816009465743090206828286922766486408161553321083450241780476212653050232068155445706599223724988671303732249593515287503230706869345524298302015028566233445771393111951650014027284215113526474598174956836200092013010311763920044609169569340476485817453936392465394315984400656372009964025533552334752672087733677573550222896060992065939856053500309095329912472792519363144198605332024502954146503183698462773373391168023297279470469345341110448363635654024361020145775875535917384097072320747606465694053580499363188075409562265284913954553418285945048850423807517948270545991606636106004402937962587914104436403842824096051899451384226251805274088911481660942232512412054123207096447680662011021211348029193609102349170776452291508321096104655670543860795137323165322691272732998809747989192940760377108593578984985077453955073598972166098191528505448141289082933845811860074071859640360703544821853958168740884270132383133571231290846165813655971965042881262580868795529498218764236062792210606344994665015824477958234416597012255633522035793642738695461188513050967207199888710170211436858191527616585380326545173469776245203847712900385891287437522113315309002811940485054953791721421543817284957742610973166842089001645515758462479454038332584284768372683325354748389308094493334282143438541134260001311171923921267593017337217478627107092997462822446721649783676727257254260364456830501900034812147064087008663240338833569849736465032909015520797026973848202466988075969059439480101029568439041099745222583805735813516234058602847750966464087751214462085745852029693623664562202859875318122303350208924561875955077503566143616615512697413874686868989179963226917078442042532162237205542150453969652459837059877282607744135869234349296171345988087941376114644607463980249465980295679232673452449774480848818078365884736671014608462391656183951327390839762210137454151807749607094084482736735965158250619322709785007644712982541824376009789120603371626604107685526175586863401222635562731447721453001889232828603860756277849949723552759276682163550099624631816510277265187360102366502173586252612717731510591946882305202902379537661210025216585505678553186438254788657701802161673934625171110121275606745960732731604481736445584666019378620636879414098775568986621564964337845748325965252098071223941808600605240581719662317315549931514112005500576026814964147731316578180955975716881652517361949295971204685074534000676258456667860930516268557743394435696979749316201132559483724205303119386373617633318178732050578102406097507661170820001383824426176246502231096270356914667462256141144330460605787456530264556169494305379602105002921667064423077242789351016637295924712052853786587037716305482764012590963450943364839315807981581125885971516700006589715391818105592461736027244810214347597306565053165821839309846050746662755450695495696574402427312838141954056978283085902946787679691289294723967013643692759625544969810343653205465495438621686068635860901386595881866487431795941573827439135891771141326405833359083227643405835363440827105073789094089962693729588961934395473121873061758924673716938759308924905220675730843318079461054924587835282837425573802809040108473064955400133062808268140823938162160041603839513800456025008281540130371842271378810264798024490497358683261165666492590360652219376907411147368410666628644861613703674979544048046219063799403921649228316009979778289910417796096417024665650725967148823007716598418844303202511098201923025488340337468866684594550470776947334676287177002615719150460613095678531044261660314571895694180396556598469427463721501618454156142755327815589058177416390015348748819692240747389991079752512357374755578977217690806346904173203915177240231641081408033152939865912032957906602053212736098094106649022834097492074176036072525996705728134504219305834958146949776513061160452644814669592400033913559709971600253666584741903912323939235413262964543801483781054878516362852045598520144126704631154249731353510825998020202424225495605590669289860690537304280851796608427935430722524442592829414395187081792021749784673524322096302749310576140431197692585564910758942222055620813958131955522868086639264946052190191723182821981911914709880172614894627605941033906722423669926429440986069022726307731992009499810784555485752862960562831375456034670760303909110714804331842043245122808556547133575885945957713521963261039632013601431096254927550857408925088154766035822827642093752669913616803470492699025654004754644014838657624782707037430628922870972170632608775939430110803631569305313966195863013424074372368984522186471534242785112040972070578961792992361568627792990473571685275243050022473715670245937655436071121803260563054227314062646252770493420671081243984568721434233593131008674005167230645331138339384637638962250196661210582138964323017728668963822791684100963428331684239696064322296681778504851550251818842367790221696022040463361544015074218210769613369746498380745884681270931275009679555211634378657788655130421349566474210093985164106533920457172726256310329527173395087585839009789759322337814744373001532054712109582105838233167297593548899910945574048936127901271612825434837568994962508756758417037575769401435538196079928572887865641832058187547215017164173189264758588322993209249223133555227124454630773513507254605932521283625194377048238185178557652034851387597446415260445726959423102105138269337764261543454975262093976368536916292949799142915021653519764759464325805394912926546463645556067368241155481130830509500265126530369134701216472602149436201092466681129311937010176097614667297273759117198704791503164931275014557995250148711400175847295617464538582882556382203809653960800248849568310202468915010883323603882319305752332363961912372485244416928257909644566793933826842537686341817502713062426991895982916147214670788260379671127551279884920407663409473935569498955725846796328081771117385667170061141285933637387130716631360224138982794987966036505287160258074152524033371915341837112835976881510244880086179422224157514329256924011377367127415038524573149445176246459698929062315928944081370609122250745940987978274737466406695295182658549928138216512225146128561009308015160200284029867277715603779959992000399640432519290338550592294066513301252291266678216727339836895498675672547338581061004134591182599531415748626677600325945537783518931607874459973135705003158902631035401717540306471441629039605915730138350250078576011297744836301373770144010743641969410941364451624482600454094838634412271902502560804046472814555919687396596495181946549907011947053221343404277884914838647959200816982948427590370605508183715031503145001186263013932959875086782742485528363676877813549047956960935807838025246210422400388037340066411617993559661688533046979989885861401432545599411077024133585140361905219190873996130764350784243514777339899720741878340131823561927749230887681484474334341524864004467992314314383924802208524178940090265516333808517876679784772372243744951767679736590849479849875149415862771029815106791882761937368223408069473831886610317006714017163412512073805578454034200210071343638839420347986260944651229434603475013699269213928124341105233081612422322846513917827634196230887750400714302612859820818620879557985183949822446372477368225673957256657881696403150881390014444075078830113130949459575706636420752944085410399169380120555453502413630085295256636726648017607186816840169096069211947462606815396905488738485676524874334648097754595286144440511884867272467783335254512617836217314362299593776851952518461886626175993549225949778879561901866506079535423258693200692589220629600165114625808143949739508917542975948710977696205491377196529721190868189931854962708967790622602769145400573520771355832866820590570864204850939433191928307606917738124584314297293711793749149648734728805463284420601048812497700848025869395507433008913199059490637582513325803250437221943960165373648614337533964912335064081715853141670122504322220977136890669834125237600409986807411701387626631749112172917162116392972998261686769599917550102981591004171266849754678721918530937111252340380727474617436966419146112178031557822025914340008138119990846098581677158520922387801106825915538812087090628027568660648947160191147405976856651577524178556826756020710730786181100611680378810087844262470957890094827006058999545685285341334799625198251073185350365049733238641881011218726883560555290817721348445915759331626651167953093044048692372406967840731742715928323728990702134788892387326521244797570225374914102017787671758610230596176130100850326639397388685874383263056663782813350230496206308414197380994278531618393519151517830009983651212022135833218686452365188260695302687525681412877397449405605252326006484159540398042495794442602080165103673763518864518259845193424115181678141563825103027665984759572567629924007073791867502976780762537892538844998291617582233514733787189365530426493895675866211817992234211077321727962434933976964704645916791576993320685245267065844907023228206971497088867415000122045717122377100952621550292519753139427072116846056460861388113789705607277757939494726280624972395290208647178399072262384601512562579519226822156785662146784053484747732898732549406464980067153684066546962163990339131968733385123958483341497559799580726286209998183741477577300009030994643602727211055889432126843221356887475773615258701182090428573408775504510592907676728412178950957366430962779747033589473135788135358180651581685587382458833295971076050602189271166951455209305147629204381462797423569736095054345323245486315081446631316066739188835081564967550747683564332630041000218013370892634404517993929365595726059586855661393554353861340387045322766567761125920327337576477337515170745813904180234362526168773739123654090827450395490646954061709403623056620904114980741128001337385408393258606003703080693674243300622161259555498086242598137854583364230596746153166196244906902254140823982266161931142191075601429857783767323074004984600359102799884731938276249820197535559153990834780975634797073589029535228021902147304406359926243089670875555227529707128759258999655754255074779467275851963751247916778534623621984795711790862647112478685676352469732327296851327269122353785761187708637773491705390963283682307228613587289548431725011634205954918277826222307693213761451472499529425858286137393991203404804262552939038928527639821889949905470752120660887377673657109747564405349210062177099439970412227623636175444892716376369918205449378616404824990799841466867729373442800244475261472396106628604559770376316491698717516449134558254901730156378452431860850619075718355001589645766178305752534321931104627433978006806426834960593713151491333485909765894288872834171401314958391445970905387610569704107772411067429465398472050559490997744256094992370528940199448200724514369203882769084684041110291830515040930757964217860380340268438330599197727728163717364322033939049808747381869989120263396755075483186718884010273536003126365492634534676751006590943655184593289733335614825956404018349274125303868662071943202743592275887878964829872489492665138296714765342206710118941970150263661715943184657815333946645157610868567079577206410181849418769872768996388130085395890918745493827034734140111634244057789354160007359145953434598692338722713807869993605269275802979244055390265537580097038160303264721056103874247812780758480051047605015452041876920205730563808083635324297756945499109611020399699500255327940880531528525310212066253749127973812770386319103022911804370161952128622472675493221202289427802737572349494182652645050950178634053616260000153994523572928374084493140644044549321686727212028410508071344721085615208514313760511089658233698528178056242566526535415533491390465218250815701469874607296675683754666343792237975496042982872346826575277731269965710990534371089013699924024624551425916188756059576379676578135713135758979357100768814682712930382037503430082301034807689607158406517459180032849919417623968863243618834168149998890230418103417630849814156936347144278881080008431949912435144311675451090494459921262068586587353496210639627816521965564154460724618704510879595645216877477010088313653686263712091444320534061567612001918638435872512100193557454219175608456158879055532515227307465059733088692112906991438476494948803481558418133329624642202827346691478231607242034747646738237937596872666056128249075245908982148233719109679409773351952689878500599030258590143167979378936075818331707687429456481463308744611426334682172984953216433743892176987520024035986578241825263195333444977764137077070736308121229947034358952718524762866427637198139795483254680367543018860507759938921533992327411218411167667368307385534733299079195580940475117601872982804447240453843391338374025342164187232876778275139106519720013213706761022808801226968760582197179517135155436138217841827355222223032902298256758618019098797140653692075795448851952601211377155753645382751459781315548546641286282994159799920370848100659002000725135132582503493172111025014791712791602674610154878948499161542412794755427213012529310646461072861290216510415512154277387913603028375565623658945818224543405751619244580133971063923488454420552890796518070858552839069251328539806478259811848708969527495048993893668956387320963630911669967854323771048128497795957039897247874029391055006766814649532137157090640867609917945616587314002460213274582184665933889039246090793980492957076088471671065372276793095824097504843870568358749188791744090345064001611302664952331984009643264731356986302866219792623044982166325831920950067588074568414177706620722118101645215221947446460137809233765603713745834468215211848891177901144613306138401855665429840150945840099276265128638447283341300854705590368268660284039005582416102004279893212531694626836046959663529248366983121384271433258513814212303680054351649796264810531426254840267490234680296768858614751810868101218644617664799297000138605270497644642437106505641439337794527083906183145464167899651856824874486619056506824308620586766164449718719295302593673015370826728308656697559864488750501294132764951505358235679630321398185909046804342176682097352963854604378336168799402936484297297335072225638079885176668866986508526475373994616647250652109297805883357754281887106942134573202146321280030074633685921534706052091326050380152258827673738969902942100075119365941618174495815755211753439812098168761538867103937957635146731862427906247558508966451961837906261280563837014340203294686132208953650046157998836412013718182353381846132351736473892623244929775561789770652619264289063962967201613553626589491912974540578778880169098556157709741516841971546197331956807590751815494067638219326755846443961689367960822583592430686431506287092444911586741789742741706427679476841312960884369785361372418747642316989028035095679865077532755439623521154226440909783212852490923558926324986245138391013890290735535491853699316928906525215767181871082935819039448506189394199291268073263478689579732151245617449395328649955835314065543435623711807010720445639532227419981546915530413623214703636478224006686317321940212414470267791246408313312393513781585744460271773976722537188150018968686014964480709410018289622720519364623374429247926326472048542247731014084928209461108595874500193772832117024291171800779610952954022928222864823849219654354588394886179688337989194464288932161662249757859263549544726043066627331220400752935494191164033377700716608878530534508588501691839261132573821981935036245939278158903339389369330388856637546055162207052654472794990617743293452309715732475381411803394243111491995488164345529492288101664814672020795177682442968837733300271296634731196681391488034455625269981369366671364074767495991555501854670786013553823629699641542035930957132561758476437754463664296715082240697795680147261068275232903870133954732940669111730886784257034206449708496333775039975246344274922079750297175087025222853940065844051164629704144712192298179171739502589432731646225102856301604648797375371197817907612816824580828908748228545190557750427687144099038621841099819299951963772088772029474766704490282515546772632699263422065305334709682077143754871671995283912539480672506637387081417207196219724655453692386130935671087408976926885661975269771654012946077346360693689559621523328743385795070197527719143057329158785973554499493515769317917259640689330394808185683730427690751409091265837313569019325714302249373048007589381309837998525375527247098885016193490223525441819913244938840937062647541747593945903263104224001259558084645573494865054481707151852159199309791930577284240616951231596602768982533674169304271745680686578146803199193421904357780806195319750687541795152317197165952825544751046473722839582326753910232548623313354836379888877724476800235467517688440924886451856831333105438199338843220329905832801374818881491843353767067598256199767232660062204836665815117312749511020708186830273988107900684807695130229901643057006169173063304496381450657880110411520310434262087687364076990811111856412378288258621560986671349128018262548647473664505790943752548991317255612476319342296502759457894069394549269471747673195346976356251986457105165899752673646694704677153599677840028165934878414799922785015884905366959601269460532924517891786670444393538032347350018284851594319382708424728965558032851130454012103951970667220325336067653116773289342383828262399225989772216517445051194408208422186497889809742055516553711696928664342974218070310173772364532372764193144397000428979051793946128799434541142251967154670349133490827698604310700703475543273914342785599786479573284189413092666063704042184856808665107560738843034219131065795704868879916405521950307435503306399521956405800012169060519177555296664450020975330536984653848340317807785012614103069623277724178556466086114768308118636922820962056284176000403816371551169147826607132537007562868788787664349120626040103431146434822951486063330817730858386300296788840490577070791892088456091207010681671914218611068763467139331151515414162491282086377322994162624443110739157276686549734354931430270256736891379525480328778663779860708543728544526632573920739803270497846296231769739499943334590922419554488352658213320607678190416081327558307581850255184505086379325483100943211022487728646748648864096286730494893673580627267433726933601289468201641537412756040711572036905176594476137201748956654627545932878789021784947149756376593722895881323510620362373891861524162832110709996994676769462040946861532438277425002202671988172424318214384225220803177349743960001011823067090455509861146316015102973421978751042408200830653753640704339036721247135091851527883394387941874949727129430511093918597160015919414257908381589704322219390851066159525591715272409192452108682493679295337658501848936154989881599447783741954857052214126777501041246253689736628397086839432873771230777038714787745615248378387442254838532954100412369872531473658242339278165556794738808547554911177546628236576733425860728013143026605184348435498252508082745250747818509145792456840496237384185956905969845396629622619303922896400092151443688486538470643945904536255784606150194435515334409858362324532854368691935886504928068365835676119176303616762469998636061841777755217663939284432601091242865691252316779956215609274177586872777783993696485922892944139094024171335792857783984357807841007258201311830390663553804964840819310437927181251851389325544421869547780567917125151509189572467082621058979050810730738725440344093952487346039098481964095146698226721793024720344974219436643651930870614084867833663639881117186675946334018414043119724897511088579306994284617761284706888955070170249799428548991560793658182352405820914398244399842356387499447934836424376210598169764322513814195395653846281721798353815127550130828314707950428253891872461953902047965739683284522243965223585433344497384859198638227584654828667349339397364019960028009839200147687790291515348184522738991294249807804353891817058698179008712841412608875172262727815702971824266712546483184116683422565488941108193171165476804102756332994426400245182978039260680089227731475638193544293851485272102601792866851725614121373676267953624951312485428928035645278572256143183391405344594078614375588142737722868767152420620222343403182140721474308955685833053903757811458236668297745552059098071465075260734876812207554396591172663599668133655877476582027580160650559435936227090110175301806648154226411001050487245652429194929078375365853655278295865476327336803466574644650231362282798049108937401790406623475449053302934214633559936436546690807603699738401434787672583722682100137824885379579269363494077641216820438492172282815270387917370230750863609888438734098090873544960974606569744142244609178957657716803769539930495772824276743111579141349440604961372368507034336755866227070983136170443670057872886156788680069647540493335053628668558895520358312761753907354509077588544935744055381708749993514791457592908796731162927100825453611716957094768232244636383054916466890947811667898850526997737560230793355071822335933674438273556418198732514925590472647379604218638461374108983441920923763339417050415985880429498743434344274258051938835189353906382947363271857597079780739539009940338545542408475517532702835211856364045077655667266398413365916530046953967370778154235235739695232763765336174601867017092491054235333480491562643445757882667533107126465140147592345046669885167935318731394066110881929485038395002465487691332802821459440243799636654063640400498452823368970084889205737123922162532719223913241087605479249352168963196173021162888890743175816900050152867426238060580548885358077010575746642432942824285441340486881666462231363673640104341294166227265868668314312002726168499875390051812943774927538763485422936032581501555027848281811907127319476776585064902044143365037489158750995613555141135903613350865945006310452091331910860380166148641511537815688639411465827293912581736245054006059667552428781376783421061772062894477029336546497392985107359243264291722891890604663270366399776830514455335232719854525919920324522681838247074865446302740391535740426197395928362659754894366046571044418946669949297020478006495710736050595214904841578819582081599158042957124140011825843827245586362390113774372203371285676980806377059317961841301533449694559961726089318558845380334748781594934629006237424611616681328297489501735828152712816752237340671327629840694626517478981181898710508158405433347129111402035663003807049529903407235312961863036202249804001961172851758317508298504708809259995919990443611168102590746993985979604115740297731925631782025519106958329160501543732651840100248380789495335108095577981038714425493392331023449652147208812082310330000227045170668825154399122988104755171805531053553682545720652745733299685634118255598708391591647725524640822204134292871338922241679097302498616680248324209162041440735337803441263916496780947839082277191221808409483097510513562690931603664779645468947427390067427889902993240258894543385290127388943535360245018327458219191216873031287368221876245246606803362940002733989831914747091851254055913099742625315541866919463674148446074536564582646074583193250680148036970180062927598321741079322534373789232907792061856983479834678038754421735439795892879052638948251095445984408334921640336498733096310030757694756924720507176061964213338590780822739238247415484325679098952057704446944297057493361016356987151915360131737533144559570357511832572277419898276426751827702842829958527378717035093239044780131616760485799079773014309680301432188655485312439208866454632476165725792217774154156696872850990739504919988189415844985182182021463119842524835977463844212224957816045782362409612548268354758425473897347562315226282463115560478436252068251560255895369866057190577240095002340152250309759181855584219222575720590768794024745403308300200558578940811736331998270963479692972044692458620092329720109164226987677752662561397033356929973190165500052744159969749254274246422142820798271216924418499821082017077113979890080317882705298922112366712441234011365631083907292270014660530753197020675561084132361649342159685404064503325207374911552462488292594165229171887773696265887274001302615751735854251591264418188137684551183052760969966968964182375600464847057427470481076457896830673749619067444798901307901507425544454299189486632472348355069879721860094404815169927366152955653889430001243838953378890832422300821770205806627918158746545482620626348213655641726031800725899649117441587769536173059804850743916147645400093209517728320016697538246277721280939426113618684142591564180470973619832790058100696892524779313903532724166084397255596770637189436850336504496656016858477636773332809838125603479997829798528034583987697763943558194849526584883980765620999475314908405054495862136374705674577931068010948182454165809030741356226418546457952219706211252577484071349937951186565664027356611466273985723770662861763754745978518523920325234660053832794090136225582524629275321491621101801081655328945610698099400234579169119562961009379160248719713306750026451866277652620654157377189199388655152756075368211876659019021281646457044698154795931091684500370263302539079329807288736408687953453373081998624993876228483613020015707969897565716563763233409395666595386355513477448620706925849579619364242143748867456609878921467182509023372947715509356836148306783232766666010541769779829070991278862492945811560313509687809346931183040341076713403601837794954869361821424080514434796131277350651081360135014416794983888133687323494159882958239223823060537409576407915798493643090425252593829293894538652795015463716506619126607252659325195012684281122431705821019314258080203874977736069599140449093820741600773082587026806407858169261612650203023769829172862630657422790853597542049812936287871589711048808285834535066107836516601937850975948939366354046568190312786113293542607131307503950219441738703709419445859621304153521063718124955119006519054570899549343914677964699208063737269176656476382910557563681749375544734067541138882252010728530007234317752751818657268504052562092727997010452376629111788967601650442115770238429696012572942553351982048328312678491784151137879760262776780272219944589740561370011058629060795599849941028230523688932559015336259802478637260567180847850682114088032596786449811108562200644819776593227645705024584062515153434495126508270194844227232655322753895487144803753549614455742357873288362012597398380657950891811403212037252583323958101609004957696379533294576698720313513453056092674574910618055766211374140216873650275240793708452135416183117474597779603557393691070056373658505527645981599465500456208809137933718450035665288085002607909186604581663977312180638036872052896956808096022714526297422252916986170342654337243691181455250964914305004085568790351198670015936453130553124207104532057922274942750244382362102393116699950951754448411714264586762067455688940635787314996945950421895931731587071945526258113627163571188155056422518393029965629727150193258859290470584276756315027747321044201004967572438629820888769818261547075691916040313827853492966394436304472812667698822357281370451104905710654763417932643102077644861536738332323366168753665617583094949369506570529747546700574814079404768657804744174795767989036482308105655408595821055282488645160602515520377316230217473016619596630134765844039975253144750713339181812698077900963008698912830611302168317707835638182387656030306101571424739820854416385109216647154152673907184373449577122963871629970494656547481461235170173544609559699301543324776111436609139457699915293842132746303262057903292735212230965011227234264038383777130074852648662308891651620924347071388020276721474298135559521887053918023736860075918532927461214454413122603200579195566125178276628197531702595109629353671734448985379271156675868388574711108466812414843876740894219788063612535232368152594541685452588949549833637186175968418998239926685593398360844826837220733305744914225753714983072153288685610156918998346496059224837858756285766767251425886815841505315639042617333683679079532051165941312477549891104388168756988027596520190801394628562612894260835785406724316383892204310125866006085845322268288619489312255241613706132028182186355947670705694356541829385594253772889672417422427465250967711884026670143211954227784383978280619257140829729626464945178310709763913479725385721944829045114886551408341363728145916509477716354218920335858732679809946422383651955545576899179605637501268911265040394275612054389149845638985790917007676246195952818210340015407303768425393027676049012676700696508062925867619117889806462832128788027075244944739638964382732739057668346851992390165676980286423206809894807510574789830695323382267696602175467797392944583343945377166585534464754615794192722573529836167483562777405264833579925657654513124097821946077640704386275265951707209172501722870207637205855721156208766748348858141892066824939614368001479020093000655000842320133591523006034994977476335668960365091698395560118747069145310787536625905831468284843516758215777787520970254508605587808502400175444400720609593667460309995929789497672944374551596165316832837523462286736416581915970637729509520977957876820118115628290092720986301760892573549783425664452462710186592795553129586477965627776025256555861087511659956712436690383107897829141116135857019099503444474505440632059213918842575606127860270760936779276062282971870408971093047503111318435575744130055671425277020969806713596149896580716719435855776370600751339387834140566171005179554999080264689220390621458136777392090170503147726511284911643956358864945916421635089682434375314219873140709792371873328057233146861633865117126921121297104672599176142188714910299178767187315840220938484152225826441981905454060330003687109296404930080477032328412402915307974440705181554888717030722157590321333783037654173578286464500180012098864885866233841856164134360145142721277280605746047866364686587923334150912447539849144896493519798305254601763885530259498540271853841470774772696474095248594689825282168244645230900826432097578985798338357340267193899875898988769598021649334699457490721773774735549767821935684000285982800000207447968234052784049492059405011201087597141248906120407896905342464073088858053191332696547378030874866306544735572549583270588520940935801658130466235016952708445495207297835586240966287246333411747579831562541290561288980949979236356257250883714448622922471077332503837129750428738282100978346068335149860780818458102325249810405997957517287851357407804051350917870434692495059661287530475739507343789609139445812935566106259961979734024135246624415358965409493982103550642485678523342692176525781707637597012805752856887922062207084765294226046743271729929652816263129306645100034062191859915675024209546269460403165827561891544178110322169304230530333474173197548448947952040246912653964905760117507907595366430028328710026111193157547876959594004492474366673837038495360434675670430460096872464619847561965338739153375882953002064956716432648014314183663578920038645007615546227900705139377612132371444992220164453759207517667479779254619241348731531579078824356897494440420415064305180687658516938545131719190199726680409120086880999080930356863792812999830056103110154877904824000762709080505357350463890112483438659316177558194537523753598592069974106485620997113923884650574625176609049526060149900967066192705320999901709734058040825322551259820548113310513361063711571939339937166132864041828888298636065983417855986066075001571575625771023444170581157402908905043079244774952958189937431038110681282016961207108890811553207749483158135315780584498617589214549077977232668960846610400031445805468554070498299427921860645137059768297053577216169206780549243720807894026409457789181979720713498688884834445195200352582561773216875312439696981064654512015268626990777568464475057661096680892949009402408843690795433525387915179802026278193943786245245677190511878731989221825058079867661112983276620803065377431207165521328727822340649803228137131258539955521898274761098224929241494856645902080602790132346103828184095026820325322777079662351126912297580644775381341133888664113701576586980729410975516594025369155125026292648014707246654142487046358955810970266978899386284107899955380176106919711115962659216589888627870921579986355916294417218163767840985307773592376228286228438771799592582581148813041334932164505659400322947995782925845714573391004933758915357702900706424326020285797140139230076456722370405602639827416780897350145396537880420227834890965819011393059487570410597969840149505546106412554058819220963668640105538904093502918439276354594735236478953247403811194538895322577178617266124586018044616815122853063161401560309169191077030244885917457495423767938330576763360840834058916905957187404634607724473098360996890707567587824027435921356788946015239192366761036216547821780183164006556791893766322210879433740179640358547931590952128891397780716330688453793676318977276095660134549122879537863039929485291369558133189363259997838953359981159580282835982493470671242403558863945752149577627760724171432038004402833782681063709355344322229556138303228542313489242332580599060707516364676584855997182780791570623955347762198512013226118907787365711930191912902139818011122473233491623140769785982447520953833425038916677563625315693905008107555852936815293733066341127409630448488980287425087508283486108172623959893876096787573305029863396197817266706391203871539674770366623002622684899565342588467407574859127945035434300007954232791322382153301266976848988212407673361029539355665805165227010919065701605328948631255345901348427524951283506121421960138886070564504187395056854943779191576306965606650003812425451449051148630288529749593369590217269330238609471462891944050850790656518482182580715235615846229912644007553213506112448827481709366877993517174246736200529269819351953541856098795441776909780887419962932494557118418180302288264269571030071257321392817074605755109223010973720760469175701009133468535363655430209278608428851446427803391602422940840315964125569822198358640439424032984563567296928937299676297679101197301249549192647047848398971201922474997477321575519314883814409334792452770195660617135032910365126703368186579195636823090493948168838045376496901061409899898611535192862776073216658441242740315167489844752535785833163812499159868182867394943768211616561568185517989343477442178931170828963623060980478290568908176990863839421235490718974142172212561693187067413114027754102339014598873292579221399743216425404512946595393129062275535302404848188915857309177175656659371242455128099318009024304864074154470324168136143503442717040704093472473418421894680044439855543026856065438098777332270216411558508328257024006907136951332125353333201339058868431388807610471404673907345507795160408325983561850980588586504880891388973965401293097897489413638108958765402607186346073895834241624328625799913930080896833404007081264097869285864068087493477740148313069689766703137021797266416977731024017951700214835271809336621077732039518210895531633610893662758801553625571247216225694290906702121603615132498069108129692390263599843157853708000346453966807191975722016628599151726900983547823582909203166561326176184172747265637706458070483156311375775244818222508184725999831383406071546377497039989421622856137985767836716985755092898983206249207746607666036562350209797882509519837563830312007916444347078054499296787612539486434354996609359692376166276786974828577032851165060489609498131455239322281798086457813107595541606449431352865606551682712712866256536452021692864661498490530365015401238030919767543288013747635339250528145413921094766045865642304387350072830370256309317767322698879668173198964135395429956506156508010798152334175388036370947071916934605807370347993235910173049327093834597000373534967759474598259821641425721017518316045406273018025121034917192327239669306794656509393078626127084907006848087800802734057291108820897902259339438559594349181980702338995792043211434415396349177992536048540315839881805201585623909420187803509489823824541242247716823039645974545184726543487004513282893225619511855268105640805145588411029092951669011036232426852703863320584109299087918604649407002891330358077580950291799352399589373798794999873244176025761906077673690404643901741582208851413315113998280096305375799937767285391625480861408665421246917634582818046714277303238521115794364874202805615759309909742513697667618696589654040283341188269451008197746618400472987692791845476753415124231648021204376326778775231779643061646296426746068872692457436573764373472436279619586085710295369096887157322564098855214165926817320381969608253406676866565169451456346948302876546219231508213323685041358895720725154731313435786839249412211971537720563108516883641315635193895780730336997363950119891637605746316605249655218809970937179233798832503710400020650724560762307941162541223886079245441253793652066186933784891907988074799637031516048367681581259100679434864029571766469054300665541402445836112492394940243554007212698306650924171518630564575473199995862586423172419623336625741821225598774509570427695664985881456468369385514379199006407110472592513328946965449876708524101731409756538455987792815871813584852616466122959487329411883381676242769671793819888080764373407768742464260051390728936562072858155636996860879584598623299740928161245049621522166873701780266186955861741777300211436754985378708259478346095462800298440340662170838275798367417295534012136536880587130362666799466015736406785837042781191800523738042651786466075998665052862789579951057116683739533971365174842688428342102294758999697805706795183066756004897263883290805385955703655327288013255565929827478958910735007767227862107112564958163327642125896270595490923698795435111206073595790260513870611541307451957137325560922056398838901364024014070056619823993816095971462039961941522135235975644307886029400337763865451650102116681548485436234383249602528664795526989110213195625938750344714867271237232967414081662176127687437525571346901336622693903739585377871928303242914537651194659065293380379353982703056549203016619366806515868746252145242877750640662510735602425724906793744690342533560434753924674805650977489566354759923870684499429993683111479357421173540610465558465192073763659215953553833952386343726631423643536976353741977044540668065283190348332172746896020242420894844739207924097301680642664826145752331987515906400794493368077006246381574830302673115164466001779459646014906614308133734216511316693898070628407833873575869416184554376448642119953585838984932425888711688730840537716068100239614404014220238002110905512547193170676179317978235129178689829511792092708701454235923159895421084148523976541906564105213245878525202874343249732229477926140354759215224603725032449259250971715457333894898032085292130196639533723388165980252673135114028175034121482480394518140880315730546014490159517816080062728947654053713627667581635730928883430078839468471898791721682168223719045227617938087522903008479600147402830363995028452469772283947297398615952545702374461887244513965707291861737785575152161473320474924175929766259623898689444929718055749567284686180308347574176441289542339589799774196447627217028680159279131324080864990568392892100220527060535254505563776861964978992077273830727384138632985516868287670089871738544104520927906793537352739817275583459673058055746211718453053737425888224863457048141747728298580934762705468622792018326164993932688471759101655370117024619504171985056869372136364584816432080890321765147387359449025575257521595713122558803340333575428327444807921775123003553853471125371002209963589706598286036877732310182765467438627987968148675554176626910827981035135639628196816463092212643926673695127206674831314976318297122876265098224343899150529208401369073851191859194867317569465816433957280815476757896792907937228614710904694397490721627355916782742922022866596372097261079107626808805997082446626189593675155236567373366666647682140554337737815045653423569893005498507752290893231582593584858943785769152231636411139313914494149804753593288888579619709999743737486407734104482243867479967056643420144546748721027673254667880303390901334240613306996241657446840645460216492782608204340962212184341902694670493754649968387433485245611742886071464997296810921063685530321010152994545333870228207666461229926526063871659948536325156934146896785075063341574382952425313844300520528862578878983177676283744408064321504610841019896019025438793694542877333917135866019543930858602850610051454544641422495635809971028494588250373031239488755561211125532223939701424127669493690184018415209318148468421477118507217105315804669061064492278793069595165524654327760661101062186781726053109082457228384203115003756623232765229280128907895457419363994754168559975348812216625321400826209904150151966687609062975834974004592079467564966543621815061100596719159687965391882503138982091123071105713378016620271114447584974775646069538068105940022537650592067290660035155451192289990668547865927208128172129912057184379894980811161425213488407102085124676875635377050561847114035326284751008723210894435307420500054104479654706113825302513156854070185938842872254098668664904531583896183189337480014885851939929331649459907814108327184038918980117302851881154722855741484951688431714979088535324689994692854063141621894617916479907214232492522364357211283017903650652821543771885253376754718297040646151215392055122128268936979651418985740130592594234075872494706187012945291869587477655813385328619763404388176185166825232154595748208305344405726224254990417026749920344846663292652016258828152293602635993784848912507396136159471593190102242926034404805328664411408672120090687700438227689147039885528851706654739100762563288220320213198412845275045409019084696652132580308383899670531065724918818799353219460694594969827286670136971631200412949905416141740350832041491465987545280873632639093615215951876055508701033849191620580224509957908331293661664217180104576419337397466982091055591153004319676051130006287725790989247153350978819054454969568412687134941926389759220018375113827584225111599460967427327164974424156791615255331189223910453990484182699687691895078086905312987590912069780184121994940748696321432411988342734647933649818249001777368063125778858677613688055020367402313051817422388812227868030245663034015900154275349157080671169083190476268988061176660639777440789572694043323538482141653590934592278601157174865092158365290475093539078975529584537545258674513286297781801989135751372250306650522823752607159240552424617254021753132035778894950218858513460959586834954371569345588712842555579068132163671759171445138014611640085553587584068973837279432718082040682136073833584905118101224001831325356214043267892193740734674975614473757032406094110209723422338316140099296964203597864261927459108139915386202488043902943378012923297891592891508766103237707253513819337699460238170442971556993943456458452058331464026248463500068363818230670617620560871873618514497433988412026255716027840720605262837357157599637830300483771033947661675853027350565265063369635522474479884234161491106475062134165557175340600699523611655587226603074015741463420816035345872451538329354127490737495571594369954269648015546841733420161909887683639306316788170001537482375912375795201027156353690817739453959822170072383802995413237910608373030833880509085813177032651893783464477613819044000270846884640984398886955958638303009138416139346847522929927407979533993426067185918184139254220663019068756064468790887304220697860249380395545153524288543891383946013047003501519103949418531003592707139456069031141139102640364308411354536036734933762473615696424999033443105022747086301678151960927905350802255599062293889824950001901087958581227265500185096814942232864219902967120515032226964843129248860275912944955337859813457880096710718583426447188360766561491546276186956073944057962456124193230671639413322481008013234121529112450550779331495551027320948703248395337610908475735127735900212959855414666505285158202975072600734752778585545350247563845057389497124934061335056824318364801991781986969850527356863918336837843811944876842381447744252851467497394100948401168337311861581989147347042095844950840328227762349620626359979536261973465731867415475842336925862580126696841666038303381123552258923239933542950752241162677091798618754118886181355750742571230732818529200421193088932601193402774991038049677279453924821468024948141087810733035495197230555722020060053038330212042210531520336328026542446292067655758769593801505860845234821706996849922634223461233771803962504457390432106231671253189406469293159443018355780747971971730461895990322175003950499286445960272558513876180413648556605464932094454390187433543546657401221178788934746118827250375414748587722099314161378795130458639458189081289214984397743227439829110603979109578562941437629950091837274060732210815577153660370268165202007131135005362900443305196761965679072426006002299086600803098039458420933113221891876298373037828201756519697309201873771588675016582315209340565371704605729666492523856310115039084434706413377535001450219088549285887649418000544897011603946390576883102915671359686032659500774515262084374728793842578864644055674503701414838642636295171650877801897463096456256348690681182484726895248180448080758976020218210290699265809233380576815285558790030280033262045460537294072297922002720574498363939340907520833063371164769332563799391033982433099875381995913293218986956014872486346706015617353628707819273075414222183571583967428347701891034304595237965372522795235462975023974376633153497491257080344368581367420279675411996752128238396429062912506441017755494094507533623628882742223744207501813809699266659993350360976140423059541503143916409437229082128492160279264372760635030472283504630698182407017012312473365172234264241590214311675740619886964041934569397857919081182339875090354959554615425966210527462693729211120635390422412477715659542715319259625245058798045753374531328198854365770911644182789673462853686354419229854597086170591482294242762907475164853401319142090661651671743518267471503485870376487219962448956454255738513776559147398274550120007159659872612883373121974472574756251828380439049092998895743013852502861683726960324213105309796004119832015208632443213172497540678390036544880607894745405280508434828021683189891352726663012870825931237806581107223513840088286830041610320941862068208264693844320258297486195380789482885616766322094999713898929096790470897151339595578634003849315811627817964750655855239365588281635200324296162627174556420188136853737203267265003999903810523896235477265569119665974790753064245311825178513131212842279039381235624767281176235162365039365619537182986000914382354485011178888779762242475855546287987449381430646699032456977496096561973808627837787291314596415967366509679224629952542909533446772896546067544377621317672908689843049670601142634650129230160632306891694922458478631995174590097420104065161111067295347452747386573484156489833948992004029496829346443891797491188801226861750364457848686011844711486566264615149865149609578220061779188689035996145503920157603155364976100019655214519208942251244591790986769929664295440241520612200823704842949254119018323438932853999693381825756759643347736122103625650947598264505282603335835755332699309380079726385742561892426358730614952531236816502341769093730740767652473201887487975754963139690302658869230051596159094596797871878330553933974173212062180993242608663795641335036216852989941235247155542268951489224828594551066750690467895917334030111077607934419283388428981150194944106398072464805095618186221840560521431758956490393010363923999350298566635608644560358107292307300229380772313083346625163425811991858318626777297899062500046001626379811386870327378721636825822200963603573093770201300652827199278584604711234630977877476210740194464628576750509787958619953330483106376920006177379634321145554072665080084254924650908915439059569243532170911407769190971744386490655414168910199130480702388659708188876738166830564968921561477379175117750806707709304010357699698929546624751643401618031367974313190532390366839923747304993489007907939916633421933925918873328199576414116779736249880045206075241857269829086588528396580918064710709985418919235378319121476961881928056449638715680350940091654870535507099698866492053253264240978336402055871370672589291223441401457592917684567766344922892178075250423634993399117487395218490439350951458914925939121667820570648212426107462541706638115222196874562921671815126772178130337893157917937730237487852254706581743042687127424748092251847841657492934641869629258101135052976132848583654841694691087787268912677236874210824229029768189035969117299065444260558192013731751009126834072054722809094157140588180636705251474642320576324188230931504023370724618820377239691480854185035665467496631326909939725621493303650627440501890134984144620465341136607947604796318122330081841882820068047481456950941920244574010168015762308824733071185686367165368493139605172313944090836155256782014617459318620332808294892730767259328058372280349025935080678129958896801028461013426696824160585264130222446489064443950232989851027905658695594245330163759156820772012400199023697670961750789721132566594752227443688889280208529918771005682873078845117064307405963002545711416503343204384921012955481598282284150074425188663168228078976377387139618113516770473137990681132436812462832624188860840438308002460210667695611511734197550400769916370829884838174191147665431432912664674873995062594315359913074427448282844023345749224928981092367954579794723570960275722329204685087763853799851601690217981302682950982745264999149836418106094353648434772817067842109302738568599972331160638910795926393079695267171177894469940695529137853889278888392869043115781700069729831467233800678893062678189358796354931283660325799414835065871228107272186884158542141609035937386677599794648277913803083535399189051766996693559684375986818751065585097003689936592116251568685505310460350888522579830027491197020687873965065379294314861005407888890782769824547180013241617963650454650598586262511706212876263833961307579654055963613655830951452440340566317508855069333335362562686519112008052074101459759566125516671629135799973059280520485370436729097281761419616120166981332478848733400083290438070421834597261967924489305589561052974124096613889666603187619709883304278225451805764068555663013398941733155815622049475855668270943792910707369867216995807349908859580824257690103053452843129395897632759056143296219289689998947529969300745964709890916778832178882165899523733148508135025306808082522756583766435027614351044113278690472391261876384156462770439655271627994710518565490709407539023601563653514666558423276551951014010236169164307836592392849232543953916887518836278979740458020660229775740564529370604149638252913825725960477239316501266761040673279931760645918760407357198032365187887133609386760128886121395628434567686312268317530329841213713912099760900759599485673998669782962676917124358237606381508998964039846322703070433275914800367908287286590771913362628778155258986624169186791018884378975371835260225936131701419608404049207234095656605203639723114264213188203979455825102717046754436482343456814013105192081952412475062340556850688088412045918455351813344576630179640943003364538756381900661857202312546542367801929557621716220293301771601472157008380728765823368462453639170295387625854022477486529924555961569844906207379161551990385674186150735562737327378931923504890641626710958230400100583763977913456753544583874485015154602716289221361561090767726834116829216845426457293932713959844708300272891557034709327911981717162125375893084753441086371776480350973106271851298287373999207710402000992225027542943469958851157365401133321862073934466593018341380437803954890954133985571615564431656171936611148648749533414200046831067644792423268747267605030106521583809717281938613097566559772019390651219041493855395296164859606490483255175570654834391863177336827817800544933806316674191632845053792952110445105385233776276027123434333343517629569494452045495059671435328047715520048493074233622927916928757151184767786791051439760042465591159556003155407948473925704673742997297118872569135602271397813742928195307790501533927873206437070267675559749718395918202994659729363515012423060608504847502043158639472311199713509273101803039170657633321290294172002493364860326054795486157500070901737870611399465284498998356098564107564185204072242393751745525802968997235034418229419321133388447686310239115516623527081091088876259891548082583013004387619209206847601573580242633574339103237144934670654588312670275078304640863837525660707977742601426300949477245705586835280090943781096826191818363991853436054519270689425108630751359911592895928486009964634165500149365245223669456378709639942262760451096199957810314860965077628301945220145158999895037370329148173940109906062665401190507595480179246318346821707193619360610788652730016534689063170934490196593154458015670245089277121107941081629343601966190635406385907256926844908345855167412089847715977650890030409871932311460220046538300476712587649443194260475521536546499781584282846364700941052293351154327902745384481109630442668060319475689024128613904346025207244147301691619903529353873757846329453882770880297855823113778326735937563659556910621917432567409844040425550698099817436333017622239183826134823710404621125369269539106271385618313223841707503446759976910100788305411776616580659111848674366997859581845071322635813450767663076035427921580144831213097871965217416702073610641281743466735625598479153352811411040718262842160165652020366757508883630381850077518378206512585797561025968829032826644151682748930915415656346718981639613279520483191278990956928983360954230697872973149780889434295533320066595987650549242792363989582255590982001517718182928864526666266455840501497645473667031524692194730627225529227792794828687975562220663224205030549834000624141784172663786088252835676693109101445568095400540335058205214984527338457628473847362949230567623496373267156539948470413281213066035415288135114380448549674815945795240578172242494171553304559682737699879893413085573382067539997061005628522987616613446583155549702482025156160882461551672575880850909104829705702612459951045605442511938499570744312695015536242910459200942545282815030736301946029558927001609718810637307178724368501746673174278630495013026674126780453484418143960140592297995275265464557477773979728493862378683635935457775884977546377293150989078166340700769151831289328554120270628392753899633273172920005233542306348235050317496630905796084486894698282999356132588247456817796636759463686585012615143360308628376261281429314447767430287248906475646551404443341182806451483777545889897908824381847526171029988931149475477386073302555074749460902305662026912819609912053002489320490430466460233081326512944308572737639953593715024023624027418056526405191606702295324793172337481507919395128420430924493031654062897191114029160950324522678983871335970567877486113180713710621915404196966764915442468958965516232158205151064630301700772697442771418131851864330152049147421795247816544248330249829881277080882158820643940355252188726670182497202663539531347771008886704498918959837471226677508022084724406735931698385885300586855194717209884290117499009948652182807433980406041846449218940040705645145955565389616140023427994197861400812752942638717085783719875597237879745402107154890691208095946744871821166288617903742021613383129336354749307292088626465366266288606618527415630121119622990621716954323472454465054401599803314780104332027958934553064083271429949183285662978894369732943947400549984743556236698809517314300598984848444129977175876534760431194508950461225044106834651252754984444172830420947209324550724503656169085062193432763174418552902354955577267376215073782563131817945555670370279905643339612040383309701756852080640320019879176580537924046949296069802778136091123116900013448431068686176017517172052194294370041472598292292836894056930703540804753170194602141458283925844539288107877217056032107626145701628485397942208247328219982268826169116084669016843283716915067154575765289287218752567819716649469116704567605468924327487324233138158839666123041418192326704648343997390566373304366547031300902355938397838839792506387364961462951868107291198449622122139489716720702964511374811439553413594481650599408375602107291151868079015632172199594655068414107137605291292721219945322052248142688374174893266961133933258089921715397909333255287382999056238261153065642261753583520072676270592248418898929911365661248042408924054014606042197763464919688269079136480074345054799525507979688292929953360325054461716327960914615660726495207274003390379931300429342277370177022994285785463854881527556489359819543870966728339365872842731612236735125875798135596247000447433897341736493907709287885214632664145446370868935644494111553815049526826464714918535933120407606853594620725116556063115681410747986843987486875150498218552905168736581943195958988692579461078515389839593806447905075255601715000601996846826059626898097420916102792208221910140183165890317271656125128187589553023126487479406418692909521057228366162323853698991135588486494087960031680162370596285862965266147604501689380559982175660704469478256090306990552583362758043599436964953579646017658272760139879356078952753388777318278333840150432509262275945871004514965348162715524525848710162750549894364336147335982127252744295270438408867475366600437741012721654719010818827965295381048914748837574287215727476111069201897557715039438977959437707251515105771407451658609088914685954940192218227716550081524566342722285982486649812936506512982075634129552418756159558466179747451869275492976226126883602745978371658137532782844492043042810155138902090744781365549778843000415207557342278106983812075632241311009167771118281306017808462261749560038979500100205482318714349926640324506689660257440065801950549636440267384028344071242264311268545891314947638105073098930411564257434464297692627138102007667214350808934019415369391609740064042788007000752455488286815560739667996850052736704800753149864534150726064279826675820157455798535291339123722340974080920157146919887574388043746488398308178769642984021630352756447615421794313114695703394498774259918866156276274569917388888571145730212547932930843913461930017818611823874515612622222287229664416326419267074147427898581240126159025736776518594881600218408233542456067212871529801210429978526080662335212225731151035931734583342882402728063561499898721802412526198476726846374377857468108564434294616438107107941318630055285935400974207233739455317523331007670463684980480077402081820068621728043682665052090279200304776283283069903860475227852653560834969867827807176218722124308077678048872277396384291072723483148691617436959856028152092547129322101796530592227150483305797221780947155351508327259858233116149932513524252854213658247858083921607692808568310236251308288041261960224969726021822219538120889735267115545131475344831093476919003144571986349240358103265921314703850128449237592471725994800684926338622356844634446207049251026342278231008365785721798926221533989920064804354585499647644044899301374912202719039340181347956112531754595279172348736036984331683196110257463871259946260361125990453170359185632620475350431495907295338047122688941607905676041606468844390565561520367261589476092562679979447850753101940311033172803028747270543248118545147227501554135854687658354819411772644142362233550033350850585312079351712665195306166828344234903129181617241723838612473720950478537827741975783618553523981719852961898299986986246076093472030521300770841930485840643353530686277108806111936187998589577018328274115323319682406661863750333293353998221504423712165255006943599677088335338724794259104010133416850207001801272305369017211357035219448019815186034362833136703743655946811484041212965696743141976559049485271164519886054331841195347409741708200086854816630958806058653811869760858168964788442805700392093426632826815675074336077061032954680295315839177726485659677139710190176843743506364669619330990351092568827502323868816706668347603276262308123780139544534990150944670978676257653138245695852975927794743397529747584165979578215297498485658893746227447317420317980909563380534291233915368131539322563147340705728949430730743567121200612887824908500758522598459313153097882417622509552887150177196637405751759211857252910356631001021068375080770455436017121426220092879919416356417700744389226532971655490456914489939431031977431590015403244635580500831034031563972582297607803806485241330468427289010544234376191543817978459079581978942307238725112419790407334498390332961947890736406786122727290574582475718931870945452715953636392448110689604608140733189195765814917904799181044296837764071141295079184914044128683474077005032880073890135162373852487943830449730504319364655610551301847881052164448561052632881481676231698111075400292251580318251378443323728229312472472304473916806810916794188283509209026504438689140701836759743013712970856598861718335436031178533796649115531971319880830178485449772475873967581743267126087679243807760185415994018761298470577055124847554951924754462144873966958399876434200162979689355303439748951929571089411457268091294405589655722204112050382752767057399064524435479959393089673374286901747885788770185912328274850002632466082809888115378799889901995128219219452952184246489414405993475234207429875891548257532670316376095468111231178416912611605161453090647292962559133847111848550118704437816387128726843602645924146570204298713198043065193947710001805120897833751357101308616444240344205945472812415230311418916177808062373075263706109053314394231108826623612418986259100534041409826079077259120920776920933514321460890075470941600701319957058270032910245054931538461669763908687607930436482483470867187920647681357390740592241608556392062804793657359556338768412591398599598576925747011488905422710056985873099716722201308675968438559113765677057823174110022488159880302586102055081884471607783071819325063744019770284363204094210156459377773642791019548562026127843212863351158831857879315512792962779835708852928149991743494037962433380353038058588664332342340013433030358712842445788246673550000131897404232565786649118628163252090516860250221220802362590721042240244951556117217919261280401750892354416854060392361958827341369772009386355842729215673702948486130263659048148023565024966398635029168104794232893298299259201338071597036370039728587772837974702273571456654497119620781619579564416150370139765555859882129988873713865483756311564444540287213635604165617888528072982161537477166930273670856241860834602459989572526670198916088432152068219552273926802107222813249016334072393803053708890306297371425329761388244589908920377251540604982178857117026156365150901587537307795139504488895012775791609286507923374611897363665747219551907588206788229994988299767600065539271669810071776354462991884020278515090974677531541731214035498867781612537540977686429380592950590429618588053932769495661906546242127692761265686805261482812088129571548060605454932486209266908050098573102679555519286947677190108017243510060504894341041196553008762966363187789193548372837675260295652596210187816194545397452849723728242905977520658554723865450885673343141504660966166863126810199749504496779701338453052429621435287023088364535354289402609636100931422726484047589593832155048415852751720867616589782450619744002602637425809198097593234740648991479953436645820120312819255503937960872247489839300895652061960499276856293244866426777282669920304120418003796070814316309958848570577483309341823951967528416362778921656419207068599208276071771823574145747899823829839124770427190971298355057075685476231341675062837267409042267109891508532896848677429789392551512151875743676388485743443991708550520956410397556679986701862141533353301783293097346437453576823403712843070764494670784742389118772957180602278876132731545011751971641562568215251819723677003681956575807957458665149636211906467833855550533016125631297964038236541847472307265043663095494154668988945673481245829607484424076272430617668072953093618801395979859032060159082150881971093765211734844125013378979005004096457543304359374585651639713186271066503463092111040838913541378926893268672133914597236478224282030071923843237668098386338329036727593696045838284679818903316936929803246861887256726305915954887274231083173608544390386191050435505269487161422574561107031207379877133037334893159255327199010721815169492448489887742265316801328764453859509018891330747197968945064130360509494907977581538633008978540184848633669719025566776872108774271970707498596804130835578681768781810070968959758851534128886219004025918058666216126976659009761240015394719861139375999004059189829847258169511049248902160332382991808676519068192613513320139007676815745955232848338187740704800737789597083369859482450780075240104015433927151841757530263947088950560086515953693236361665523458409456027157393655657541479740927059414205584711332256315332353340134201117619479402730497312988330842745929621963938016894975267262336633175694642853667857401372994272910254325212515268143562630358409174340463662657521244555174741280484792617041343797569989696511452520468835641976775790542121342653354695840461441025274868417145329638014124506553640144983211061054621556546375931039684995482424717129106654555483865166765737013795316303476824127696438350767292725402169928302723284651936586513260210769290390930733419112907299902596649031087523953895475136714884091691410260315355279554987586358853789338839813674164608604551258694231657541145766280019341805607908003539241398961519526722858206778892718764635304392187023836414248087380322246688268292789854907871270962275305426981348794189718464584766697288954961597232670290166937702096187025433793171915278196302788540277632541771169716872344493177924345363436716716186547960588751190897110262136628811867678310784430180390719455104207301670743069338062908582473681938767085497233918445274419293081028284557728496034766609763405416159130174064650706531768627251257752514331582426691180152717219371389929067595345223092572936315860329877803681078705444534613746318531735135707050812603576030908008190295638725335213396928649569497690136443759471631825369376271182488483469364939187062296260188995866860044131159308452854257873287022581361198988170677620728124133356842861518265454742573698738689405223886990084632367218604544587511499252883384742521687713207807836708776718333518608374842436017264731730371849815898756023300371783324279897227141739961703446924325509508312106973952671677498531031100712864754864355486755949472270255938489072782328893968265786443490412849856735957708103058104117549433406126377705004399579471808037980729926586017499770409310246123983348080780828475550321430800294879931526233628651940323946703676836589661837589351781154542680566523396797984227063352696152951236276010891652732925180482331461227130700994335329672064167996138926816034567293122488198904192194147045856767205633942922843930944410996491525055817165795424224829985211707211641433942666027805485899582191699811754982508971769641104769284158548121331699614213480900669640707250913897087023193917433790051231409504472095292819261671785581883237053501654499830321534631904024323311642521311518735124461898573593771627443507111827070916191525521565627745167289322811917649582622574109997177161948262703850820554746299921009623058125972507391751959808953247703449220222474515952102257918331334087254532475884199924108209887446687169320534362808056034217342874272548253737339395311844686149141156487080365663308413658044310915321350874495060796897737931474717391398018764283895355628247757300864544898743770135474711030920154889473132161898695708894492061273490323975682712615974952171738275204650225611641588743578155131615009611897321617482346019553713482548868978152061975106528765179506026655977222793732520753774319753073294500745969018223232161015978902448277804501396166393579735591074196337510358881050894494909541117146286042748351397023997731182257488329742524696323017040520574520063918692601958257827891142500004959700259442960963322624354181521353689411491573499532207232201916804962520897112618632084524557045630661794465424843849578512039654187165942003558300804930855789270359607918839724104594585154671179345709551578499242335865961838806396543918918608008714843433522204555625891964614671800413662307167119267825085217756603502178448150169106298715914095902378802767107363144143320313933132265407755119293510629125342955993861640101311030494682838866772392314412349598733397445734659412154959630069599630725157202248957271319763882427923462226195210776217982126127406783168725032218893642154076173604587075033851082046852868683601608319658922593062526980580006346162488514585198039628144224270856557124693860956826497802263522942929255300610828814971285727520029591488230625520223235094925279313894166040502606785703322224874355791426679340129183206383880449573458063651239923383719929730875541776363434275928862704657792732142249850847487120069668193816921900763155119798104729611959610424650579676640795682208731761277152155063164463068405493193061898652462806524487989628341147037883575551563225118889428788221712764567739906159094543672393827896148579626176781743798287609767386693772705426058754955621703375844767458309997938143179338854202374627403840119827669932253081233463106893785414175712906122665731547356306115108720639031808861645120013129688573884517533164024325275945127685078341549309819206093725818576219941691811681384055022687507692454623628845410249973605048500564911100007373252720397637421782454307886068689285450740561066897401756866396209119212474021064824834104851600154644733172696390322971222913396581073965314612330471480166366653019641162971305049768367896631743976882473341435214606411314112491496908796918177819353730704170496427906602591619086667192447478552645096582305381753843454810617529757106738284513159178866293546049651004239240305316884003160697765825200427893404261087502335023413293818848057451056144361574820239353995918327547532313342370413794739052837911110584156326934570033718269371473069584213892016446255979261669891847077728872726643787515326646718220329268966325728296473800145742674318614858944423198697202156615263542611661465741375950831864324909884433503984339914661821448656105977202282130150077124363820821337358729012080502453827197225025813904578600868013545738870178469723076966840236762882567039927117930504242154941487279835090526359857203438305387545716396999702397979626738966574227601203800934561130722382737866191685817886823823278810090978284436420441020137741601498489025088237511332028389876697782373249828593894692853104576583727752457604325715585281756235833582145175801897062386965075856419004576404817336895101704696833665845320719403277300111367584972402096282739334952593540945695134908988588592210670782163505955481021848582210225491051882492025794187001756906394519939187845659434835929619310947661654822003686230915983010493325437812495818410034225736341484646045982104873859092558570308663930490274559907947637124328026530327367054924988884938433447747574739983507212739460417393807140446135853480365935645813935713329731210646050682253327193096824109872290243552647229633528582077097614559451139715280883138150398402160195446784156002618835725491015820562420358297373844717463234200272430086194944572784193629726390150684485651691064143827043211661567024655976151374552953589306026486935001981282257761416823928328363116774410458521622991607049490389847855725715869774027052553101076090824720501807908902412997752645155127763983248538514408993934620865803645224472396781837525728239373870705247815578208612643667318860634433274454698918140114614232436668816282774710924790681198157478963361631037036449413073018908979845371032312322516195436105426042849773945135464233025918435157839177109612111628361399306045377206340437175850326387868519269633474895780159394505839866978200359662030153448867474744213875428107439935753985060759126966516750301412830722901925400770209105620471860253230676399790740994034969937107048950505456867793974252399794820285501056204508297635623264218405439919921751010068411648313641920423044658910407597064610219111814485162849041438841718458233152883533570661591188534028490243728976397931929791858485469861725344649768122206437116467009270671935302510990494378617369258228943063269884290995198177264118418678561736922733695821255037224817387758530561000419150400239305016672415968234883118472970399791931172256858913923254484254733549546125263072755096964841426126209632945570194687181474593160169961812985158009054227000969015055536683870607933922317420522950022038002882757901350041564402878073536298175276129869079625657277331061188678719081305711235460692876835140441311081188083864386130240442025875007925558239959319798004784353439810484864961538654651954813842896588985797503504473965109193183315091396145504667526825153634633310963083677852260480410228373422093516606263624082077805751327903083190847012125750911878332551246645546090645631341061709642814581358931416428416690729640593448363088881435872231075046168176633973098696484123819555188400355713510922083359598452536603431081756799538172198110461986740020906446624228287982990241448357331862109990336930196053357228543951048259877024696741892637483134886760466331570278199180261955048829698406245023337666655228596691389891166724666788774523014613941387293621455878619117058846893174871098346738363019528938087982417328245631868255060434973902686762666304738674902895379558365378256775367959822117996036067915932383847696502831968105004993262895800137253343090270618099096369540226919017013014140170723472175267698870004907576353917140427943423235515156539269511623914337499728274049329163258736124800993300061340405312047396788432755467902103007300308640061736345327016221615987276713897130782598427275173139530631449639366248787147355395526534398362313110688680598938535032235734860210445750877931214474608848734955403393479615980113217018949323358320076219791995660847141909065225045320795648694476279833980071317416072662767637879873356215921190942663739623511096657985063813760980500163302757855188123283499380992495045752847632951100836592801488276819896179774563994760313926947695486553408674355730726600697108193906653604941307045794729339159251591067382300332055027735108546995119785854566020022138587087634672762066779245576005174228969499260866266915774473784369007842168347279811060734341797531804790974113422345635163412035492702015004723032499551324489076254053591235146843041481761578101524195313560539273071961208781157956655953408329441581838605655951425437739331552211650500478404183096677449369642378071326782341137548182579064626547243992676641862869641393752255416156010933412008484430369149296218380185877241101806063204774297278552239835186599139381989662438229109047774343719223644980225810179367254486147898096660896937158606579037695919015805979358707913447508154746788174057153279877524514271415161202349144728187794413718611440940514567000725781380094675124482278473976862231702383984414728538184764272708789990005388983581926463459145822517480862139358636501922715466360275093650926319842202593545170642831521299165103121905515062261768952753977077528573192740733697569838077432308325917357369410501625687256819865540520608440682742378039673335764544141290034740629714542689344191747565735772101833726680646567394172807069214672627878325861679315126529247109025699506522809589011118540743818960193913387044411510148075983307304093194973501393193823138612349082189203510014657889564626387849204689315488231405983881759443109288503672034171464425943916724627560131988577732926948706221475841433766008537917260840194129561212975232127699022744930685825856950231030201038163553116054373333007468729897965322219882413703108749944062535149791643189301869598309355177772311919194007977784098488178165089197026494181497124842960738951291335161965407855687997706540277973148959496142300150511478572353245608435123482924989610226731544235991507030879902964655530003268538768193001822674052039539626808372186044149713811953626794378765085489204689508422471627488971560260398656894416731346661471607428227398247956710161940561174386808380891444525958507719138890771014220511589669903088671244287201202915590696636844995323104946023295488670266109641348224261083244298813323775081147607305413605268862115324727954906102702150089555001082133245503001246722998477001861901185115819178725582421926061450962760765122476185133304129943345362385459911314279398507603732526000171541762779330438590890383769694744215907561123719762009946135998687223562089156542873470653467137317382417867147259015693162147661740485445578221119218921920523922666644667880733161795835910316705960766052913925170998804487388757044738017893888212901295269543229319259948580060952820675883233633613129800841087189921518595716610663165523768652531813670987167254967234843144191580172231287560108293406031490423311287404671159041051020585032320534837396744461573239998291650370956889352012406298574873105008044639211801013619301112486561627400687357475305298985572363528382391653685063286742573743695781213216105880997776878481401161831012339611235326215147195315967624409659610778007869663880783902048047695371427268409475521652860147522258485533659755251807768566621365087075548673045066072198757798768978245367193820701327151038106188743427469341501527814891920028686665280151306260512946329125995988483340521113945487898062169485168220819171397699626152013391888276539052249227093196845925154700323195286432288394641086053200958545867919496010882763974373860948309023853385095836818418713544380417517361935625658909873810060018419496865625942010884074628182309105732518442240756781569095075531781836168492639587701977470035945805628338258748308823866108096207189376181402097479809171780191409945564146272477786280794935293852815729234247548567511513242368936612910277387587484006798641649314959969033289148892868272875562504386102947272609871454896122963075366918130869452541252436083666974171021979979324573504288418712914580575549228797913372242689357025994659622510057513450349527546231186263704035654385410675715824426841453893640810823942102148989238529609368252279181257292041134702006576370727432676731097525344005026070641717516279457912682175223253328171184673247883219190804694094703241891826093601913809740891822793360750255963651543120862409067989399791112182332669185948887776828096363394594808971531169696287001363546618308742574533314539414498913205052800549623437240048715412960556129138195944400744991867583972395709872650302750979141955364202091651766861055585581652389281020252323308165809817572575088971579218447318851619250787567214541179269598167518211984730285297110708187666586981361874571258382418021158710020991475875465515231800127178078151937862711124979876349716304154260155684239482225951457403419175273853154062554403850379902457923262161338801302064817382539496473989996009815023749504922128941835298010677621627166088945707263806390025372563316137753651842262896299179018591224678388788036405758057743937290369337081824329134884866600954719548656209152057981939822585063488858869632702261344770791059444665602164028290672252012535067004010897593488873307579085709133919258872817414606248782839011748123546169325385971636639586534673988957387783252581082855667992342061494057898854868704251571367814973608721449652583039858891052456478347509587556266206391473030600332545583507926223954414955141780633197796101160830006255777257575927298893370122883696217931909911030340163813001457257147503907122600451552581089227167677709977883692322268357183249279365784392911396373232304124131268720128085883452656067198181283962552902855764579441201515805850120477092586981561069647610418523476686619511654202417731986944658073004668517038216579668250990723796973306018905139053876607893433006061231657481916389856413503406413705242391386514660004151192555872841019830418684656816867496374455012963594022410538017771823508021123379129555961215673675107848115212998014607920017633255853509399702422966681569721308901233913561305150982672378296357008576255959895945864209472006618891641777623432023468489814452876005526757213896012771404550846040946175450886407002047802064403146055751640730859181049719925698324055873013338625562219487779643409756518808404458229198505344578086137547378811572866179208840291543931586569477802476710369805177050071542226983823937629476016140627630982672407400550002630196383941831245592890473139097148809028258567903162762604301625379687624010514660352149678963076411028572012118756156918488682751665311780116534816403404128712471975031026207830452634237450501135104588387537281787546699034975387677375036018444065603361756170587623609033815736122368142267863834918636001318872338175059050806599065355746466994005408391738610722691910929812982115785581724527227636477165247567843743308993950993950629203155003383789021172480456311312488270658870449504825891026230975318357356519928934464554059233257218319762686161626190040310345573567686204272023410214627402455418439261143376992433626778128063466696343738387368613876773086593154264092385071984371820795810316399122602895041922705467867146076699267363059853561812721784099452476828856526697156311616304894865457226698798620392643746658777774256385007757380174352990524514760030592974871310708511189949458188550834036839220934179490615525027305238116846921795367451247099136088306748231220698953907454732223375682969400688319125293590941480925062841162083825845993509881254505053300381709518796686188399795011378240164739102112846354864621139618765625518808646773520934750944211451823569541877929371176307003212775227553366493803203658662907662316400049362402061328995197235571801863762004337452863849248788721524039384110624719346554175948431200081642952013536061651563750630270072971274235037250648052369144653403486809506947235484145315969590156122538616341541475119096505945418743163818380568569749891498248095902813378719929850401672958308119717470113629424180628814605583072614258037271495426348809834495067670375801027452350612066823192460027401430543273431445981346731541631549328709729121083192971019753455198238401465108379650573995816714082064346671744938490120939692153946776182146002923078946941041143210073232623656659325827447879916340560843835478377954149054370676501203263638437079123578248180521510695237113668501209947294515756222718769839740469103519760130417121798052244573950026453346995854025690747800483764486264756253945034111707817280435596305756783978778719060986630861974494511579573101299358643951511162009046607820383738449598459867438518783936301739539655387893401094838001589548857028113564213925266185929905775933973343697788151673055248852522231105186001285742907818706464210395982767830993426325602566052387614093209434928589503743306669679472360349378147299728147565735095385005075486971172409204304025996585981734316954444645059788181905677973508990795540068273840145030189376399006966262262120467062137642797449765029437646781147224227329149577628064318638027891160131520378085437297625454909082649782758791961468897249691425966954051922951227901021485910393768647759186685702306424314917092075450329586490606211641876507607980043882992500804380109157344885767640722716603732258560077355582147195138256250351430428675892863050607449892835447917923087156815092154524683787334765379176677657747107448690737792458046531419338441103646601812117909686739596017494845188291526085263115186316220546652195027462562923341822001997386118486794191367775358047064566010305358089399375340519305422055465208568724981909053444185631337147774367120685784550415096358968364658466508913410191202294042287960266129578430873339968304720446032278978795345846181110341201737045168429054102308923239814555280920587588753825939728688902470218844187855047380507636127308734962338206282199105277055267721464776813919232237812946439139364431266557476929711258853840266662969066928426515381260873541436841717402764519292591080111149991591433525664664014402247218823117379215986697049167974075298731008628340789820470848306540009101450880497727361943401230381933610251443856458281158009548702219115830398326075234471344900263260720300607080133972310322954311494577223810885717299178294720251154637583590585287246014987141812876502186292088660014751762855926979417969104148691774672909303290601257607256721957304705040143360515605030718846685018588129575072873160244551560878722945864686756812077834756927046164815697142084117853409276748143505452355689069182157510538379490539616145428138776523949607293637247595165899003450118639732822213610470538057639499994737275642730917283764019437668895959044270700702202738988864091030443666202924240923695736833903864909486292681471705889247909734786328451854659249642291821715861817162282435277832520938802010518348035252419191249170862925126408828005464933573620941439751087254959120366227035091071528615306128438008263572857939608838082032050893150576680348698295171785987932487503804477444712492112062047787713652600211715575669711943278738297949225560150659266273676153006471347932037271183958108419257228555032912765015218799666800305072544357799585136871919396443404877549756809036064684722121173486435281850230173389149880267231329261883283476035456654873494193183684158969794321218025971782301880018839442800295971177678704675103046389947941640085115282432898825679672719670432952677426196438651242128535130554724554167629448976029900947643115545084414312146554724461454080645003708535927969284364784225564669609781566804266215900100270012004574111503675916234909641271973519235443465770312239792121150516812606253841597602570469447286770332208092202718935344800693472796566237979147844784463624905521328415180726069714685985073878574727564639159601301497279555469028822685126394430246072313673277289951221892490484400981603314053567963056673680798986080903738910056883760731409226755131079547952995166200532531796097532259591737317785408817170999700380024211791650005677433713782035929321876802961586567913785371799941145318520117247340420961657633136560894723232387444132667045030786549627495878995440410320550978690269535982904774956757581127729230487826019525556559620292595766917180314818889963215150005513924693511129900283265334070474047666281383492954066157002934474566786717895711688373710674710107135761741304453485730583051084104819030657470250010315896581905211300217517240501174421183210558696389439042314794370076733892775701479269183156726686005473542226356991822568456728138503036603986542924871263274616172985027352011419003535030068977235117195758112420770622469661196606344450844517619038065896245051134081931687245867634647832564514349937672507912614740208708764414827242710266429023944799662559854915564778817675170352965893323305662787115821114458008927570046621897734214163992290821522708145488616772951776071741240029831123862536243078931667564905587392930442570014978411165916912756352045285095814660125564126028747717141780846868438151828975128878965320436101757026604307256776048610907703549902477467379511125148160492591275863063906046308336958635935835435639830515043346415687215036002640977007766026610182588865719340328193259444092639191744467793552641971183055874192023173785585923163894167791470343852948207532423284963471074245095087140396163239161473631513492641191699624029961032761250539676967250210405309272765785623096317195137160931904218495618149953389277813902493114855158201491893489444830900174838643614833255104715881104123071929234208246136738928259894101391877915235560177407352970361356988034551222361805078422272379255979368637128465885007068456620853734101438819264236853049991710024790770150143982056347004183928905545498952752259121743837154221564208166105124398160773141188026490845564509590347317293383355223279434777285043697147430685035237450041821738363881672742888828387253659150450976291608836360523843034457292378042441080637026125511088447974706997942773005478803206179567538571845404863749517441244196080593910935247563385763052897898197993589772776437371201945472785243769500105394054572446090337412510521330837180560371538311874182068308310018023445898058099785617088748297396454684057689917257883166309757116457658934015635140319669187218874383644839114942126860478653068320343877590614394203446385479834975784910735887701472861480141138345431753423186699577322728004002824109637867085103075720022562868443677562989912181506226324991576644109137959809375737827098642716042203767189528942517106790515565267021668635311415756401461010339394973522217203458517714689425558255794568452328367069790007205083712403904406230456299167722652431197667691305583984750456775040035367706729537677077545970237498184735588405303174181608155040357238597181741585992164393704360522047793086553578734118868482741956164531804877598717716884915032595562139471545970753610968545915215957344554546256673819804584958269993097372863922963090709590473472977303074946601183748354398305038300164704450927101942492147285714723036278390787458986932408089441462662243566384670883908323534696030364412583599794483979871984057368765579019914212983103695086692321182165827224977295147459972032715830444205522101516727345148545721995070396438307091701546226356414538481512267526584175310168806513257788650221730928314300176650919581689193713143797157359862986039920783644807552899422073701980500632951564537132898057818937407733192216298572373540814247644604713667144404133797337304602695395306674973264476845673292959152550098066165594673713750299720363121281656466220430489263453313497810880088662512979249622373001581241583641847640851836492087102703283021660319643828142523209519593634207941950292210073325256781992466191611631974188894229199917972326148784583703747123346798551771467609186756913069957324038093353402973804139505528328419743080761335411199914015314423994702381761039287453118848681210026170562915803264443080554203058046254881560401718096362079086829467155888793200211095432382783241728754838331189303546039992939113779785333766683826372155092815244976019735820937685321699707009281365236099859946738556319345414919200038027614179165146489189293818260367548833471590796387787981476514744727698813561943880724963550786918541348441518145145620774954005373286113626619535116791753426125537701598796050417722752002252845245389373176421039048577213129245139975904836919216294935670702131058719057806669120531439514999527247815702363968148948094362229890235295299140294666489830061038135696315128887539996538055261657642513741287805778121944716938886866851015292834683880839693384053726519126103781255390908084549629471862235719201685642929224388147865227102916192710951771196074934972094336065373379056149214374554845116149836304276399404671290033533810072304244580434012863523685722160272582527102790693480980900072309404211422513846232941886447982871606107989277794444078229736847385488220984017061029391098458122437999663328575829575343841095812617268316009952629027698506065294915673933244299061342758763354471942680090197905861355402407363567627005371540835333922436503026765230922844309946766047819361801131554887056766260180783624283953364015202042225913896879364679638748583201268928193235987855250261292279220140399922510597992868903719687929573628627841292249098847364534893385855133711588162745380491669067739523213537910360944710903717115312405839842646651063468348634243059346777401833420623313076245227474188517680151771643930907624567959804013248024990200787243826608030194747357713701768471422283549259266119359248482947826205100117219168946003529031314051381275271516735776462058356324834275877908381738875790567437571612514082078666183525279501359109947546885006679192777297231229327592628217059671682044510705909480140315370804401269597322065820912985198753366928327121446221117803834781214813271643596976117281159569605996100789148715500897282166109158935451287437291117378634360531757578084595555893126680291196735599609976751619668513476897337003344301839323628924102422281994495135274648982274513393481822819191788087068400528892519864522743846984532130254415485414750888904292849907880420289162600512416972576175422842155627865749103711429008187917912786490732756629435024112241438768719613643471584060865001309004214827155580585389894955563258133493155669803944846013471619187297227063351831861686443943244779733010741418099004473165082154757969218760075072015710047446333155367643629425910301895228678286647992370371037398240390914374647864826173673559779426142449303594797948775895943831850208696461048769145375425510676325809296874426724537683840834187111662061283876552549077897977462336348181238503245516237912233628372598085054221197647119801822612723074293099264041396245441860090866194682858042763057427944121725501004589274290868327384368263974776831632191945433719039190179262035197817520484486720216748499867571967878839020692578926529823151660663454407594868643508215997401335584310454886384956262326038751192498243316903863731418005191707886408290836449480561816723480086464894967412020909793129170190724341192670868481464351436241910570822412269047514199323251054214047499016277840258477397313421963856239371149440843116909556647367315161068388881600032687178574117414997668648937801140092548550820907883624824719696685504573838692714493224770594945930138286411489716607377470889326708135681253429885994374900586471445016528231297658558291658120805518671691075189316602949232890197947988837367667780436051236548367035289126681527476491706038052112378877376828639056273221026317258501037018319985947448879120882699184048276929072822873482528671303441147236159135514184035597619367986880303673835568190612088033575208137152087582619008298282359849078241491045002046606917957854458591003079252426627807489836843196142588756764994540223808503810659682341082995825854240101391270206474057432205308544658265714522711802446330781790210284995256653025278542210200805378017020696274502715058699336427168915831873187298081972754859307150769262022511268451802228352996136711666532748874539766988416732349003856266582314241942592604913765266935414679015011638570858380872800637877115263858940910898975875712727383196991886837745061232394912397637431086804586917605972816620867282113732567839008061265736325803986751796104371436031353549774029812785283616820192837791833248376507940141647321339718616226240317230962945770609073092613049564439003524653904546475936483933193076257641306548759335991881363364589376698591027288609406892135009455263898414559719676448185615145560520010627983861900030754500152844620862082662713693125596897192408962056456204266840796794819908180790954883814584697464315391180449378563890548139378975076967931618000589655639090755561263910989438425588141537062329094814912802666553036848697505005212789717318032819102883965946824042944809143208178022848816847291206750271450946235869778928648658150177274818158586739400881801661572805174732912353666428999772093037341876816661743775967285477352745504177474002747125908959377420849740067297033747400073995773984944141842087732377107710624933238558483630097567852273942373512291515113125400361765536101453361770315075748486388196155787240886877921810149576241991032845392778160932741511366990390115333443223734416106618745347835800920508604892709424669308111642334039647981679058379685636865215559033886363882066477058103042174437020358970696163079248455152282637153002038216032458920750230730941352455585729181814863307541989423101207304161725430910509270284864288307472463317764415082835017293288313251908170588541227992294601588162136689940394099331878572548326406478587174774264714842878386524532152451498867776231471546924790383946571461405359114175819844901036564754833481021688506540723561592698104860453831988985583093481402849654944298280995040857124035810055151999222409920345917222417035457054774861187399397194409465759883223563233416206351904814409918103729400728614044698800459675296034904570541207914831346174349228043619090793379367577279828328848397056841614755280107250291461854249249915727936071478296931387013971608723317357205207415540919538742508882035716300882485473023614400574151976226667138854316977164331060333909129934991622969217127008636264752725336745653426753973563255663307719673339821906179329417924851756105959846383998421084691947605966338153530201488184779536676445548629724520757403646839689109358888273317546120222081347933351005123713168222060887162295061444243801651056363192615876911595224489131481696954865469269291637340520492917863828276890316548975138176624882667376784315267187692983181301676719911591116452937551692717407417608050912170392548476929908648196810202187405030157295176243785561289330599686952182995985309903785342038187846528426032182528328125409535285183757735963569660242863455053477183698628755656705502549121144747159963863654898855632685850379758329298079180357740580846740506850215297440747388953422703948510216332696663321471222807406300440742083341419711497500602377922361688434089504861210842173559937622529978008214511113343748361205999056551075110994023172529448281725099714219791457424331750878225150673434174159080170889908504723255014628396094473073290672976421003049926669792144105291982176001205446259345327947931629073849633950403914559859716674773704427116575916641226654540013019703848727799759978286163605993040409375932072863308005076132807837175728504057684803791632336210137155893531976172900313913967018114140343291461710513037862548299097027636266668514892513621881157394092365770340425322817683705539690253260691837516898971686230860324841174654309287074131273346219926812511195984463572848551571122430688725208059559623851238178971772060460344564751868243871291454788264150743627408428217674411807503340716767458890080353842973171922825066063674042492144688169325965526637363768457495978238200368430581919952523029191173495654016630683021167407895261380873434176913256003183245751187057893372052111274658751485414789153825225469133192050104733486849647369754673210803764705115011426288703398692519482329929703007033785749565643547447999121961715716553342869138556790987466039040754400817290659348437009394082483858618961855013321907218681877861637458675098654294535820991905689254712871767215384217461563438538059806845107887405250903887405572225854226942382206098568704775410381094425124226292945072715589186054593731272502679048274590183002714478397421703076649270534912821902471805269696250879575833430241895618433112666982166044547628518620124983513760140443248463040869142059994607641497117404867832087169436899709597829627830452962569403606103834246401643612341527740794250741082646580393884831545551128452166237887772721024924117802653472718353609342506277867635468870557765429038767887797580192167250001694788056871279732101387738979965543598489278224661220859923112344920804589031475598713794566679294821651992898086026479350562749217187026475372299404188252998833680613152115672560685463132963179691918823170494335711696196543754426701269928047453285208951991957307353939038566497855730265455727712198935336077154870021045897154646909263691668806307398076491343662185520454236135672434979238221973675909461413276033364739922378161249961768363427420533753871045331672039149527579965709310798430179341856899714226454688046692814222750188266137442584068399665414349482038472086929721814397516917002190947665305842702292821945813245503762868496379864079404947755880608222709439432467601269024402323310183596733409344978086715366089690929473962451712054132892665495056368524430365012953920679778427436222448561911458234910939363020353177095177156952739060368775795795827498149943569660788870252460805795083068673871100345960739789924200130542695589911213801631020080602401489935003881346247252267006472810850930584012451496552684818299313734865603298819033048652541249589299697302006780926763083503855573297026870055048386635956772040711619176143794255556466385368055451584430540276732305643195542854085691582673496944301095273787722246153818288910830109991126751655737139784379659493704725507703127226622862051932235518400105643932672798601887817557129837628577200059135637693719367974222221020919791354915535174890233323159200351490673220765578570543691170384127425875789318158301897909655545889288027368274712225301945857892216505847553742792788197601646302656088606629448226695070925350757597917749980329601770094201795332429825556900474461616313404501027026625341093489986397840197642606060369109175761987496499593967835516799526256508958984054829377960228410383935136733410561356403388104608144758544118099991727162980308616413024108791282061724752468268875339580629153339929040762492967741379289498930500752258057448061931577135518102061815947200947556223018807968741237720787397222517096833480492907405653241397391061148388255458257679068166815352227013922697550135777927936285235354745977916524761281170209567685578378200500867911677339466076966935039797048097940978996051659945864224614935726830227819187377478135434241593019838256105467827281903472596995528517827140928991671270864141867833602112553094342643054366108066553548805026873415028773773305284179186683840046938907913121239149342222840155556966496026890464865759457697483515177272676067311918679462176539483017768481423196152709831030013407317797619967399178748964202468550648939850104347458837241642907900474821119966104714778358321275511069077306666337701509249643622882054144282889140255112649534859253943408400917619161558974624419365733665965063869668185001486339043629207970487368573535047273716873144389806849852644903373722402893711271193432979120579961743305962200265365564368577820348357703510638436896098464762166713763505952736574445062628877637505279068122908490609303854932572554441068881970286174339248209711877505366896205265361318416180253302577312875448610809860681261374693839762388381931555660391966843905675929003615529052419189750868949082159140578984463352465071511607096061534354362279250791002016894551339690119186841988912109349348613451267738277506738577454158134519097044059776407701115109933982725235424997821346905166181269761610881767757575627192399374918532375816928070982325024511196326011409340556364155119741038506578454286215046255800910947479370638734563703491915626979175120014181335218769912564975396100591926285307958319016271082536140524985701443613275828776611943767912332948674235868999497257652042077522120396729728444088780482250864325320865775913279915582486603146419797075352732827035301580167859631991800583122768290672110466075837540303400786594729699965535898103279810329468938012279874486775423774910372001312831928036446404727136425876005272744647036785237782549726700244069337953946370422902197652534603580964840623045898417337606035413040566072462336083828100273924684287938771270774388351358102583372330377379937906981005758870156607950240489653950258731276052724135637814615258325699987071305418371509482350461711630824374450821872012028469791478970230007110598013940620694124927246099501931777621901228128942874183261651390955760488392287210687719990498485610988607760889991481989932375738438985625784421747494063498434391929955897950310377436391073023410755874044184545555277142268045563740736471449197939593580699680772983337638902953117577668980664622592844481671782337518330549962995127868317142447088093472139684102977086371669536013525053567053435514183304653052491808794459105099998345191304243046525459725762879124443380380617359257781385737521560055930336271159693226499528499174606966910430271896086985530593921581150498539141219833674703776195880066856022412667215452313102327135883860413496309762663489917669727670532453461894521597095210740908647009614576600998405727564445535022044456521256535454412458852508927742739011503226459334649497009197574342470093296962251855403486619105863324031691500813396689771611880754582618513257423879934886949741612350509498208692332652339701690062489903004662323555027665663799696585569509371800380652627010213671238211432972687899427831006233818877896734268719710203766456898691610366111688694542748101358806512709292421182576471951169212534952670855624170421435118290353541341565159679886302203275964887155671712010099899455004847451874719660935042968669519222450017630293882241255600506046435633264502982191795879855338832249847171388133966363981090484808496160966706126252833682630618780211764294978814283263005988437788984226787227258902183254866563163990832960356763057239363830269377111783578478546194663863488430630918391983881155388450730691855776240297112596861987812296078183228032013744862024404891933614828674936105358273888454869676778244272549412501732803939075135957484710153807317696819915526393061192775428111146448514170919405945052652098908587357418348128315040095743171556356511564262818477201251129329892753380612772271361405855954790187012233236381642701734872876798631272101493798265455804629107478899968778884366273310421561983967534113427862516077788860771147931849657080717764476870667995799907435772956004588960499056466262602416645778138316370485354352368309626707762439423294661219818377373577588072502066169321323588659797124674902581337808010238496068487336895618928430781304756983111596663646738465919911489442228692586641291809263985968243795990576668702199153536389792865238299890705662132794645878006656034945889003365855952422566005888280371162349266894868974594784850951046622227538650068813965390198864216376722194020516296031387154662176321481738587700072184791738003633740847020439017628699814519091787048905708733252273445881756794472712150500256652704997064166113268485116882117756672958797286166170013329009898640372088370319591576695850858895783317226024443581995541043630738784512479886623684836713538893290535231308099533313681807250026737606733229772488440617733413270073589211687402422637823523090250301194042078737184051110492194409346198454913551011545338720249215916788607286160904200451304407933296465214256236731112881875199117636951061400057320341914797166473400100458618605818765539588511654017815913074503814750673394817875071024275673819093485568778588341301501858245121393901395249780279678001043396995103599166259468952125078744275110143660977836334684382055259410511631123625028552116023932533252525630164688556645965236043644049640511866719592453626463236307740008599994928201225093510321312354658852028289107111511429871002097420836002095603826139747503174215379565412302643646098408667778304595160968457662884011435518705135952310574116113140427532268171096313231666872409023172348849600657535730610578946342998773747128762912840496299889717359149951126198570549949706807360894660657508089628195171757615361612698150752057947628914432192019756238416415640019245069144729515542205268537251788427973998595113509039482341623089420812461164901560436039962377240398278298469322472080757178132833720683382081764056662649592853460311251594560869447941891399415341454628011942389082209667373424674147258780158680574548218611026430580020074074849213837370468260528273526831863596353282483357270188674816475396378191246906858131562325140743217842374826267783109714821794997740512658341215290424552397092596280492614514287272734972017012213071959247604588909832249059178674616897207912173346230430273442637592528743931183587087786578189125405144097714925910356645923217766053200754627082760992727279695092140017306049488281432078433651536706720817305045799420790328594299467981754936226894181501300397135758151816688721071242832140640423695661915278413756897313938178789377769519066920757559855548175620928673410342861978937363549706557364473177245820009711336858903147852694071986247711118297175945674702518524957197407390870432435724599973769549584446992444417306187567780527917734315067081558481076982833501436416521570422559021417984739192181527281218410530796538901545491331006531517901700359394617990341685630420735832302588569117643771526787898408666742190532945000264504369736310778534318569636044202695509121590866126359471490740463348143251245947433874378022174206323670740577456403626100106331808459337604536279645698010188645848771796282487192419541752369177677381322958442003986459347407685578007010323382790713919750227678555052269620120089388597787756638004352773136909714285838708169433451728859330069358992190109677655455950448728418455676002534559653443918897884953139126232164812899959686079179429886154958304497346267202224005297938210024541346327270407406549871532762425796827319479064492531577931287982101478338203280622397859604421283155497697247156557226020661880401868987062376343153041362424282199526789929421138615499785131639598374288073359658975256731399867185778132833595505038455338875094018592582904166904654976471152880467435297800556130690385802700541134739985750009077588432058042931814765656365543926155674352148131235175923500634492930951758955364427434522876134747094646033274696824577726159949612505636084661929410947579939292216133890656758941091731627999094801092263313411047688136172728932060887889240976305588170241628388401749213488257207869873885152303773727488405304156554764719507070093287758672695037152170258160230863118303593700863468308613656018115811891011778233222978954764419454478780901531146264341467227367582156023026900753899122948518708123837384326753356943462900505817506904694255902043195012447936301303055435590134073234717769987786924838049066527763055496004691556799611843553355829745796276857711097652225516896994907533207816012834519149857964176415195134138084513940119442271420029225970254025662264232121871332470639598002607854379098469066997627604688169073171861915375091340240432093551927762040215702917841296393251227202770945147568371960040702542516673403884105002180226878259519624604097363780269418553820526600305384819215179783780869286625200501356889181657108467620071799574292783023443471955422760822591909198936170181058110631362841437216001069706719987803450914792124010990135147599667156746972543251388627622000805341025647819493851198728068052970428571460680016705629130541722670849961601268380349251635964604218564399372353110190598702017435044073529116284891306520104716636459011661118478337197188121056748653682930061278198740907818133876971781966651183097398579114750563076090943238264323265877048622508523853891914821392238789176395215630907564356424924864272926538177150626253402062952787951764805146296774685535274008069447059896092531264982710884803161920781007241572159752713934945616471171124152015982064572529915973980413943830653851918896894270671767399512879423807322969058550663442878225226744304947082846347633656550219519901009576188568609536740239382101255045935315848957271454458665616937406131181253271602000182832775013913094755439402011280395487835550800493685887023744453610427609435989928311613616393314682656406001397958333137601737812331835767781560847200929708432254378451896480593626191653027869474976323673901172260537793876388651386373005210270831288817049990420304393627109656331347901871816443153560749985515258901335846096232141682759188615915569282652679794476279367760737856233377524899464280972763028964091635745204666834954458426247528405222351127585413144980668700402060594691031179923259550722466602090727462260338398025349497578585530176801399572128214658591992751926021100405141626868967363367387127989942790009867544478945761271876853879652241818747733700766427384553578919600381385045083464973325846195302646797229017141094378896666205567108273473581043070720930923435548281958141861960607870759685991766555766313129267694918247620807365888692399935293274659544271917891240461221257635699487752849848722075884672996774382866648523731724015018605307773036573052021142019062183360197507978059755713820904243960622586394961966181296487677653740726297288553300960798518894847888593080884501799237184252953055807622627732783749144606609559678220973652754581221938833262868618941527651646621575986218016684143671045560659327731608698408137597183862683288122169746475725595730643513572847528609543800880216566794964554330123165993533669751322849945256545137296162756046182801126368320656873742830847647737642058047307294338354071523240938471769109933701476485551029105812018970153620548631121889041971005043663097421117122084981967711071899599728067379153064093312151905758167902474473377287625213339200280265941756512642521855217748582680364033085142361152580952438928623684653552222974923032058891029060689786618976435560807979418815804388752363098655460503664586773216011821731516063281708993638188286577060353193742396350548399413749246895189706276788235073124125310172078483686411107194884041664069481299991836135130338774695473903517607364991392833349483994901571723176927330400985790941783913709274035642762626782639719540032348830559794047100144249735007353591922766288842367062177970484840131859524797802250896086375945017701811263803964795690507327623179097779345988710012964917517586041052863206638582981941090664240254711682465972213663454999438498939975862322557424828527452844794474046152910966577213131413479775814647528613083812607317323947655439794121853345231104311923670852797858556587298386199584709797288840628246169804934932703817791100753294657639805479514166025204253435712675757701187549301639591170395559983168368422601998963474164205111601618129652187957304652330650187490395587088471077475568768686278752431583518347108757468424832682302356141323168351373068898347657746491071030338521240597992090845871943904374732169027989894084724765453553450441556932563385072347270323679736522038971585907676537274788572184159237042440684288179438065957224729156328210380864512377995972114008188708931641429604501338081371649897782870297345137034324139013819319966903886676270003718617683781504077347869440666053787924246409419021305871010055396902815864353982738283725795600980928291739507149502717813729199051074293252994498107223086220862402001017861245971831779362391785811041809206591803961656593515039519624579853473485677874561028131566816116309505977663707143044803094414910626456638886722820700788497998054931280159757383887469568311004916037050018960585775813437334629056737913724404013505150534092803795480481604416032591874726768972797809814201225237983931810937528241907264735484035446969031206457501745879533835160953666615783527841551441319682255569921324709227860843697557498421919154898634044380269059231549871338126889291295402051533779141938527260327576943797444392650812979049263049324122795151233845293270274160711575059007909836543244992541820770101585374393767261891322672828837316703283328647660211005427399589452176075458868112855486582806816871663918944772728647184084570769205755274002443103637208928239341656305464477230764551708259156664510457083814945103391751476980574243766181112458297654498211714424309437134685493989458303688954915032420631424341411804489290722835093174160797776402630137500289434243675064831945430776419843084960646296357093994874235967490092804440149882417174673318342367581575275129677717082328543036546102148311718003175586180050862272305132124513497695431878306310790135339937874189169332135786172754800927453956658907025445049012307812644627339516900593575155555182809766247155679302919686880558348081561983347427913185899946288863382787403325655375750106430530760125838472092278275059748638257368539203062912867451903106937634487061005126661540167333897435494189563487850481334065271968733905958216160622480690465548592946905198453075957164854003237177540366919780069611649764904406842347791133876554689742168115710915671940466176518293449746491278764522480360016291161920312221335974421582887681393135113821621696046301526377173815715380585988881033622192867543246996530233041729466884779838518239574960029981474380022554207786891062739445232844430295521385774080391265665459169808098827741419706404785533767442274508432380101111438788087222904895018974958275529754596100797277380607667601549222604745508632046225479152057480456400232554052044497034608102306188026221374471894955018942323537453309846311868609952920106680824968227202748652294744815833519200381655053789005968977088184024250807974828772237019232520536820824896491981522018941041637225677386776512720810904475780913364007668578738723179999473720536474012249481881441538296559140925855019012172175744341224945509115314274706099087594229970708657624692276139654051022786016984970262855954152319555806288822865951956461909929549949820078296420881599997422955825716683837924871974393161757605222490678193327501543443423146858257168272839523671508631654362821713249295203521878366590173696733143580511861690681133189068554930926770174591161176811996757545109384930515674267860646269320585590738740062169217262091766613675105696479195646075040197001686628969289316056874252201525061635392123026737276888642581764624168061815621739495450314203125483368805814526653802441227363571258407836003970211964341990611815318747116770086752670629033656665696075468776416866452797647765210111197114371809372951553841610718609373828295230367964850934148839767715900744775794266842835504772872376749870253620333484226068173397454022271544104193354157150532983882749081893557525453319360667128572095969865148703284244758456820838352133464349098553712689672889894418916399364188595060779005037960816731452791985027043800888002638017694539255961077300010000438124387510011464165384800572797438603234662337251109841540768246231281032971195472908502114407497686151269184540298607297636655422477162149517496435641394388773886425654011588978950471665978453015323989832709042682388446678830090076820919486521748024583318857578516004329360335096220592299980902768819588286286364447231672318245090097633241014283868985648784506652256342908755183017139972363809695798855832526763695847180937657779342998716253683380965917974251167674910341425055931488435057908796866144356826357573621102851029613856056624604162721655074110060025968590449526361960685388129128511190019844138641659728924000267926264974173917853150105402910376324803827276090797086827890303559478716866300944829367596189366752478780130330020771709946594169626577143301297182686020635628994618669873363121741392336407641397727611727138437155275738605796020435947697265321915159034865381838194962484827657150918570668516378717235385262836386452178993684508389694114623089954641937006784160637836752661956690251498117081434892829699265169256981537380814554468330778396953756894435213924694154271824779933787985128748523769286057850895299249079488265393440457693833247547219149361668951695483979261649386667327157622293447755424312869260493294512631980081501572448173545245633224237182158062852415327812627041869906784075094111834418554513703977291084955636543060430432463290657395243674866349083248922547258335107680536747319315314205332786698611059879046358272540919177824361417732627057909485963568152313847419899474288183013057879064391326941851760250587575360888787904813253574966939419592395077229791270904016286063571477078941966353834033182592075960249164070132741534700142924759174394410562576099038870155917547516425695139805787421246181511066416377562606593669889550355576787825762501106113310702459939452706985917222414137763129995565006326513368610878485213070154493284403476569625577930368855335480288654623412645107698348643258223346670765720777868520399693987727740367743780580944142198138524778898024998149390346742512726927763333756116868029252813978375952027855098160764972227867909189080948059264573962562102278790823722506411747249366386347537444523509882446332137088449515054613494311474467059094511571290974061286077069017885659642774271270597099291276967278672207091763339027681974615306518288128120477028852179411011802918089817184576125176741583282535362841455920146040661512161242451195212461886935199875089726196011839356819997551921475810141677711944084883536582336258089576975408398075928231196208738190004281235479499048793850893581822911127454882033443219203259813739446727310274818959039955935632254491434946854548938750183015800815698359159117184165167143111615787609991942660525988660050567838739581019248905602286854263851894217091904327142708770443044332258813506736957993114635690589361645689059404977481198278211373358705894684332299182454528801750709749743714754972436369622021276980179943536011274343773315092249045101509199785125056624348238354287135751238325908274669137336849539394830793861571328522404559631320418525187624139098543540280519228053664893317472318022820107003885954521594126262622841620987303167181442181437562975732455247482331003806521686986116481345118267265033909601892603023864476848957867999239454998405210374852572456896655485104936865638265735212116202237240167618064211577015045823959652003603333064738682317203716065268322280598487794868334779379611113013629067636678824589460946268216910671753057540207568083565117974415806097681301864939820034327960489407101985176075641025105890230966074192383396918292887369987346134668855265561074556131088653882354365841694722097520656905746694019369325171051611015735585767289269530891239934815003568473777742598197064935180083339293605479587790154751781981357140457735194056334287916236361347345770979633684323896593390161498183364304914503216099617029065254742075120082395723117333431905441616974984210533950267499910457887952580851384308827640286221953423561619846290910269337019669254103706082268663292896152066045322170302371286359880658904315540327445681999994139920884075676215883002044619905362063957789585053281215828465766507648587480297382370996036932618967264089688220730201926874895821312704508123648397163072523071594891070859867707590092563644832015054940205553635066766338122265430063499229182450422574333651525741531141823715464512997372054129161341254322301033281273797108761144472780947091660549309800323663434305086898387538429907273831199421282865712326033360457086547175320543221000658363736947754739632798721279129338799995376986277551707002715613389508249464457716917749110047487913079665826328331754295997978767558991281602968444694960524043471671656989322043451876372828485324643186922462374286397673045926687019007668884834678196311943104643692509866232040570636640155977779628235701655221831527007377487465119485425778017070071009140924586010926432019439209405014251814608953618658045192961856394962042189882721080488547697916492926126540822426167304838005466761968562197041981137173392504228414505489758158297523537952836153906864277076836811337388676724177722135350436242555887107330387748051612160952856277552212960406667379917837264234394937116170625262533611788476536088372902539835043374638678311119600973891940060886005142414530678966606246980132525596086914045719984121609517251910087585457769901666256327790618358349593069854067928937795567588628932579050210447714606569398546998137102556328893446080777012140404044726281281346131265278582998307747563947368938492286756524745025791256328458446461166761806524920484254624058829943974792376979414473153593518122797594635842670988794257586042353913714021941217244013479440135239686403172116047827498478485601957775534359015031392762853915634195502947867626560102577764664338338391227741837812867903483007127629469648197458018986135051826837731036550568340137803776507789531265170823859400298125925625984495270195542421189519848212506020734684640572201861614227781455499112675998083458104677400043922403728317351126135389140544744677586075150092446080890951211500771250811032806890429464862871782615460054529813718566371261879611540535766195224910114016154321191300327242269768845538555373503531682134453673580758286628440542809689935866317770167037816715884390836269345615585644123082676664457180630808393423051857022621038141542118671095289506120720423202219917068465995967024581556325491367604232823999666340553757883991432439936127679030666341822685140389141507328431314118526976133539014881105750492961400585224974852147814076972861095711424625451242483191311231260374653697585566724380584312061784116996610645058694901716047699376935831873641092543376954284520713110089226179603144196475617749262712377471352707702501955893835314578938104108873044898152452124236637756036605642710008096382814324385599912353355970407809325961672852697058144670129004578401673822833555348712494620291064546494405575046370271511914991721627279923007948293499744973339277802880174402113585571621582035522512511791578160416684701806527237331036620982820608378404947179548765815520681814198536781391731062092866296891293996423574667658263377350739661861336425051845183293055122892643951834933685289445523964639044185206732885887214576756515761656364588773388249959528509836648533185334173518782090707987520796581211906923931562312232486031575386105864564153155649661981659892098224762285381613220969053945214835475202988434895295435617697635200846037315679235720179652649095901366334332012747229520826175006521215924214603375464539132968011662249241897739887737092760855719220263712234851306795549567903639419823944154336357414843258447793993171170427702376660143157064312457918883663681759841092506351236323841696076423240969879146795038603487555408647983606431214439496067505468831771993929783105912619559488167588083823433977916563275766848742769873396381178728066004548506943581077210669703526847783087685215126500032003155238368622734185648493527267061597507463234672945648891047680486345537891708517427297847392155522841689066848859500343734744344372586010795329416326035880746429694609954034944723059961814846027656815204219725843636247055857369517191496802696707056008088859151210386967281357795957661657711645914557435984343622365554029713229443696429816392404146830569035890551357655438235777848038075144142343490465480547625428735095527498528241592762182565180586981863163781748475179188817955103746595686474146330575698566055529923829200554146734719882451010152313712183571899785505623900650891080714792164522557550609228552669666884563168004235451981667955061497397482539385360113058536519807623077361802063375680908169858930537274506147315875062460154831521570939795683529578990051909375585630030832342247894856705241489245699705836550150489015068998599319447152523409320110555352009703244135391023888578418392868423132087428036088766898036262473648735046353932257439216566702396425151403901220842188302030567218778998259395675647870750566326559924366814683910753154429075244688926801598100955753968612909492868309061396204914193445095310912183885444775146732657070181416167354924523591104706580328450964511297253311639188972582148443829586239311742943249285257622585337231661663739291859433340686043503106331278801410424511816312089876522787469526302866183314605243287241167113788815228385098000700373012614972557543663345937843390631024817412927338413340784055704436348332477054002382636530088627313621211093699856367035250405804618745736201765867953175378588853880236610914828186588998296439687815160915417350076161929561125609336569325646586572547172312487967715438684686306079328099103748851093193881072837084918913612009356677054264740324446910544154274804944288031801004772022772384063804130553876767153031820053011700351911003145805287088056116373879914406009586756067234522768598340382911928767918847721763063856044776012726430221652533579929860077745378140296330849979276394337227943524011332370218320323183986899560578597628885256319308921595493200851771507534551611198029667956052883719559143867463286337237776824118034083127107688320313273033753589109121674794304609579215659394375337376621401839718061156652940335376740623467360594123790839739552282454480625418550881781466184797624799202239209363604506878727144184174243910757242290478415093821595794111018213311656600497424674038415234766437178265243501412684094605575018410166541845559648906353763741113105083472693471890515692220193896473077590573780152712643630603753167987480280738504186190918323482506119508698633033852489213475933877658253034304337343310468997072287432398895318606722583245059075072508231100308131295776641496743963394778143087078007025094063546794431645364969411873673861748912032643528543257561583523306960685581109742195167379800798838475199880304877208171112234777235714067684685825984944816370995024053380830968544245522905104994737058744281545561140725535973786120461195847319802940993997147031563662502073446141489743197410141898140721999575860811398610324807374329116119020722733761178223230390063606255158616341092603039819645741710138311389410274426562325238267203822510120485200046479656329112286067271458061199676239512284476773524858719685956949899967599570405051016955064765194664225491767852995683380299844055007214380891540406403571405265163446338091125766723226511348896310257035843927091736996244625036811907047755699592968197413696414006390880203466247665553223465174531736687235560285733648759400635953148191817121861319353044478582447422896140279140182792962252600555226959538179157014262717951110036870058934369360276556940353230032597378995222585139909853061561500384133234648392360693662117688303815401647377713317360221641335141276412540757309520116936739088904682980167151848338404613962301143708584505916039278119387666919144221814762319050872454539135155376696511437308846434070072677289833948480448317811638400215363734263343094019836237396470850321921132474210804356257282514329604571785980737539123624861864638194847188384854967142373387002453952275409664999671669087344319916555348043870455191134928796547503104088964389168535737250840779350688320348167306736164405034928096108387496263849198897175384450667908247980354541404891435229574092664163119956620860676031478089588025766436197981762280438228242296808876843535197665568255778658854520338490881154265797434741317681640995105296856033753838639888474689767985060104648694673350448067709394087452125787634130077590033894067286844141200080893443615528465488479354577880265219377894162744530013954686642674123463216501625137930404207840765670522798132163228793912807958322997785618980413565355712118600438301742735500867883345865897536414057004092059052624377307199653248718162925836811301812035361759504538657274797239906318212588269688538179612704878692783496570430447951894026937572923034707122032419773989431106217256325924047128523439916036626529962742157812056119653417184696296772065493494253031473609812766874581349448813275855970253027141081526095268091355038950179159639497948846752780499550178973163250334943098273067058764864088048387163531715814341171632805956602396709417776329291683208301536549056864806192072137059496295363018630068743243280927433833229525161382794679544771271798741207707848606017954819575805475008818214263675741172873101570403715290525444565764723755742013351936156841046775461240471489293326968581571987068775576283503542965758068375912061485383106587070198036813782700897320713738878285048150489863540693220521312205328071203806133337249185356095811194976400694580076327665487981467128938228172441187312281430958619825873111813592911458127880838639245473459905714993941622906718532629808306989894313642103444114374812675266467821695913397572215696099597482051839706657947519603606296602171312493771537993053741353269339347727049478899663345682694309515544909622329769812184100672073167100364693423930842148489463055930718654140377927922121494228422864424437437485962399076234588105725853754367930285108505309337890108725817040343778178248381503488778585389807329065963273203293028537046585844761047256816387032579758124862205841824444345048095474887952803536248664937063406877336346282989083389174625803958923289279453891352523403883550830371470625655403930635178784579885850118930854029534620087343679405016887399094283651095058297902068068598100217536588935783778948698485015151912292704667532747749706499010729781026821736181356288554905376615370412561380843340270554440730760560635072212688520464526339826989359626224624222222852530979344141418426058416168545980907679189905927680974794270681185745926396233159875240658488317870601617728999810157471941117455942900000492699851021937120575200650226409490494696254547302120148675983692259387050639932912623866414209776624797987417429994214415310614838498988289603634031894144459365602803609917436928825569189105050258287882349275093128793175733512550221393958551156722444460174057679290753032327292570859134637067653173281277230889590365775233193893757938811421201015697816168983473374690779741635357656388669498883319875961543340450917981945574929102880080182764858384067321095049034733772335637896161986355921995120396578044021107756344509437291005579733500101752171932718987806278024402486179872329651618827643451167869580263555563264992790728059289397444142397029314924537327023988381887654498300994023587024201474687827194892679865513899435559112429671104613321483754449521787692526714420970906802175370165219357490571534308344227358358106153221433486227088146899705144006870938865257054703639021351003594867630320719873307964240652901445061735830990149978376668346600587387296737347641468512828303499418810994280480998990341111787598737022860657713496605552001065703192376358204594351471403769919668099355021192638691236230577061383333537549916964082337548498781205661382059921652520882350996504131157455373124123199031554334416531530213705513105955191033170166531865672489195727021953980547764796526445101654085815724787434696636086903053879813641453932891405210550212790025946395052723094932937539626114665637861802815952526696608135079199379107781212096299525859377630752810115174046427379965113490397536505938115406761738151256636970284393439417550827920919932850519807549002087596081889178345321314530390057851364845541533955644463950117220302427504493943852553835668097589992832841785856882531605337428992309065029602616002182699593268940803919996174399591997317155352205871221797207835420576179240243248185342320553839819218313787479924376119617813096371904000903461825208033664291711739050556173656950534990212845326991022648460613553006955706441675455617581961481339064474243807500943667690035692311711244951169979826107139213211499427818913393841173652504986039948511646755416965012031987356321748816234274175766681921011260794855148060425311395538676941819925019227134029969875631254162183664192149909828102570946652268117229918739112664813320588750454774206252730165515436045463838770631799529925175512088934177365016140152443334619734547721959709368564916532113155393372334076123185633565835950912413940509701411200068112739187377777603066741491414824116250294070860840925649223557468755924290736899609202848094908641010672240156617088072127037527295173780668401710000986113708532486627735526869620106624831180040917147507754685333877562548361381662664544513077080211761019838092180868188508345752065045915068700254396407071067142791887834806024603990877137690670267857040008338703674753406899891886111017063688356102399154639797064472852896174689924689328587467734311123985721848621348153429270300100761200662851069265339796907359746296814250894607179762495297418403840668322663993704828428222030793587315446225188215865918480782766387208639354235414914805076045075842863349698888070486571014566342032772385675097013507547852814403844372170699911122864644248859282725957744984598876039211828863250720673531792880744957576159465451067802655914700163627202737817483523822357486716998206661544711425270633046320159761884027341398816250715791692400572119152848145036713282435113077234517418363136525586442983291737367003261430218965163424214473674111184004194079551484381386245805690339548495465589000258202883182553462849659559072683234084127386950202498985294048350921492596256853964382564094064741804922376148040354195371526985866167104856548075158128010215551269550397249728665298913299909012604761705288327046434770227541674912641050101868279546455729650374695025388751309688154909780042064012967616680591858352899506133336583238940131533342192563072046752962467191151938741851933320136158769446876302143177973190877125538592872337686733786651361633164924600634126776844692223670868487695174748664625361567268022274165557148632391308145551414361318950282511210506694263857061366720974753219477321771265835876416644392318357112426816004903519170436781322448742698767353949800298935966094045450262670709701693232662166903853256209271664812980400190770195660905921020647372978550465263639983946815783265539259142563149351236298214364690419679306997962425656872308329470115481192210219203939347825678883984262005807021885177051353954643239177848373971779508706671734524521986433497064300681603086847883796590039883441160250326225386627552787379016475549602590235878597260901231076389442176466045224849006845937228177608508285754171925287158863192465684778595126725141367035652174569883395319985715221105519890252424457385930041505437506437293048485566236038558988127961049694949095012842892378559645285422891789158830913468143418058926545292514504888334866103500848684036034338284370984900559206223218615885364066655187437320517341198638173063376265312865353396356075822388353894030146381639594340159731239248249783348968007555692013469628636642333732667172237585688162989334250183823169178461235021621729314473812421055427401820952414500391235899055096381997489195145698141413722678579432146410471262170061065966128188124321184709414238391224882961154664742615261035666447605554701320199472545507069277383937062162993329520676819358084075189127586813220918271216653975459929532749185420639068449396862241169868780318208091265572817461662292211875016984544875608937245852707500296345042510320401378905926537404894849285059809952242681786448329508260299096019943650747714185342340811144890332253586112220940229993828064867964400732515303512095109570120252938263509869165286490304297779061620625102994153912273075034785690750045124197610829745895265938699304221009585888932600553813362071104998099371317633085899086034366357992132848760686820574497716537422450070678317954702895203952853331901622762049454574634670800290026916978223239746342739358393810747045418899521878000999480925224519550396149248153881871746873561292198894495047454357800867776816590125002565524909862083182406682309412491586524099164758857203071567305460180011822194322554702021788146875000729699291519696046154126541463762594696220492354330350007189611842161867604702772807767212946731204574112027116850606443190444220548381901552448689233456638158786444917441589477667876184412459383631466680619862158030907540815440756172374317780441594819994089689353701781350545552985133954394751147653558284510895828986670427068001360882468930014569069863403803025949282491856494880512680261375049166982325507840429254960708696447701717845154705820569456240529553288906001884112751331307439281165600808869863487573135868976266464424672714524907291406558759929873797792858388402951362311125530471763516811526473904119707019829299369125623077092837972362767550378586818958558311046236601051473959854049299335287255870926752138153026178113776142356931886582251274088500760523065877090766317786487156150178418292961079991473859057317235353897281252506182759235355085730443038337106106985907627708264570785275907727462726719360255810981562619963453854344117936642721164238473631863751456707356223314453412526120920278054255581594804797905815131119589297766058623610652425065012230712116082669514610438636348861867849525321895742958813618756106906108523534171643913868050559537652142879865224786946297624306906460749331133989383646700338748078341290514070999810282142182046088339853008201882937046198486576594263389353458181746795181826157648654907397448821161620271938265441114644100839105669667193300807159066068073234513234923248522948537570100621358958506472599855019936725754768216609179384794553784871276726185915401222953790072068879364615178424579675786597060149706306481543682078608621292908947732462943055845310561036424538377501610993232058001235688950870843411305877570371247756032726662041607283765650851167212718454716315709543301248482503859096291781220145942275722914704870944402676728325922906680897005753969268316944726599528227990812126290651282483143330490643356097861353964723222447534773432429292627245532899831595955997445454479807313332624080612084008997690953458049206870963587567415343593193340843749995494619488492885439444132141875857235242052312568172820342082587316052241849421525664878730166029817084433148749292126730888323939507971010710756835158369792229257572901037323937048407904637527632502028007900002531968951962576489680586087527399821771226219604815805575518136891143291418912327935701785206618509276955338633909844806240658112504621530312696305571554898060571757531331599960192421926661349434679055218855595313071545667239267758145283687324065589427537290162030102825223887108912968740425006476062628686943968159437222299150632855709361253892795324623703147487359190362266373521558147760562864164465237162954158434372915771644920722417016590104009374383491178008759176057362453404550244630485789572477347760841898016913006618944119603074303024308434455836037266366917459251226265531650720337281655486451599000770551226339268065958146725024104455895390220750231703991675940140835211333799959136026022269705156531269622836834275507112248669351091842349493638751739872653580693622765290467470410633218215517585546038158248244344094953297390204411148580020845693934131967642996954908903093609151876938320826350119373725810532674792656357521197092564767735082547684206683467699719791018549463134022603465281647128311776506956067525713300371996803409545699120368024594652936800004675425465694972664826171660880640578096169713938236233607622288303477466367957351580664636682229329971146096956308050730041159424208970172237343652497837621076741161516248041570069472616734846427143704997578120183864404717631115793928307301992526035081113540717937152472985450462852359115101070022899714381952986884102076642974457599931392375444219387568662159562439089324568386575421564320140917874312289527536341258728654486954283877774300714695566241444116714563278625370804167768425087366894243517005196771723733814246927261140715792646124299522709779706875740279832854493955325625305278627368533076424723543480291330449913648721019224414560275572104684553210300003460759315836238028793070296427652621889411759369767115849109276507886734268913709686180014208954119635772010259636463824471360822292412640788593184838222356346162509694678661231776678993825183546192221199808030691472134724209990408334239466328768031936961115029213067860144721139788901706625283655297682154183334258391509021662304899945800089197688280180377877334332080525375166494789726553762672392361750750554550311751278099962965895930207942139989173357947000616343370546471911003134751136669974455344379868211016942166288946021672779766825782047971752211302479529207557114105571841219052657850209420540173760530431776639375155526175491057064108643374141078559855472575467188233760528414749911024891062808845856494003463074433745130227994764330079711268939460446001865693029729459020445469197574119317701520179548764332836583437380936366052128312109421663714873825465447012525481960910002490365160561886787922452487757084097622296500451695956382853337376553887710805469412017396626543762240682641577675979652532211813859662052865689682064496741383420591989722994170995293530653487792844256254083476425708246641074223799142214076186579881813232663619955143262872701992120618466752813738940405606786566574405744109971419589414553902760705772191837981700237605913837233749305151418058925723707821933646649455889908922453051649589836351015830603016130612774868514291520302424639534960640502620753409697107208900287155935581361641089399676056326683864692738552427100730550467645958841445952007519910273018317214355266797059525916493192299916370120008839033770427554964233097870927646264546940407727651088929502170565190238200498475768143785057201118923606457363748507523489984511195197566205775450422335929578842929803140439690430607802956023569532383914114603303184624204198571947572170935871911646413973041857060878737590025125917342619187122992113355773681811071537418548387055692568283863285740279499140399996666309036432163796858234169166556916541869670690962668782405588830910998190748440215168908249779053293706783101890943520140739470459150215264344614642023751706697045363909041233971462123917831989967679646768296247553321909565441262788011667921687817531967545192126217679591455075152068498027294927959192884453252699037194426656040587831566846277788287899790324071195143419625778014556461513887177905996336903107283955889737021879375007571682924322052012349348351944244607756645022175719039572205936209705593641081092590593365157679830452868797268631981488885036234641171294243902222824136145227387195923239730354293369092276556649777979458728705246688774250316452340587358105511827975195564411150364520575976597751411683524086984955197872473497880538331776227129581936256489985038257639604298063614727478372809964301442375207848147278037624257831179252831469155914777220284659392053508239965075307768650087712612196528292252785678912895174470293218908163864833358878175312011271629269096823178680948061920409239711290138298872895975825987484882763150878319899158985397614536402380040925778561190892905153812649109348294325797267321535758587010868668955224751510236674180865276125815750334077694577831060291779161866215317367658604777418935562756786806962898298537627793477893512267804539444834477408778434254400731517385130131992856691301934803856325749174529801702968745857584118215750650869992832629372887724631428281038545110481697621743582021553897144915712225812486710449288902747832195971687886543124553333532180131592154214131321731496772080956610013479634058767720585154663242116175155693508692903365407337255721617399915337103556786007632533927228410397754167385741210101941750571745427242407483448771409143962771358045259659228292421048643221273412250833714749999448049233951035005041319966094217476336856238986789986631698621198614839791293101374286349403999933005741438253275943611505797552457986801505765057865002793199461373257911335714683053050344981938321760746129614232404208411167539858936389739063725275380029986804215205662042192143704986501297023967558260124404497944756022402217657971655548837163944242013337980621707937123564060933453919408756421334888460393862183550917849858713612167643455878809892896068563944525397462898611292275650845613254068688161502780432073139406769497534115356325051343996086563776669443599495135687617155365020174324019062854974582195600004933660690969365788935483463433613178243321477212011239452051828441331299980521868473358483991541157862012275200200861945688855549640579320492433377828702569739897557965766533562725540388157440131481122874846309033939429221512400000720551960526725530353396041507051140071041133772715752724979246278351905141240545900404068123968946613624606089704821231381763462542368463106649632199450127581295753984817099054066247825674546476474437006447406245147918255155540120551870826460756501965733864878811234789828677213593137777334602818606929172840146382630446826294986388708205571633095161666178315588517939624709613401614456957307888844634158090708509354084656994722527089885991744369972747546112131153702561097632935561567361431722131335779449371448215894338557712244008984776023982927376433778107320825024044269489723401583974433566557767287558087969483688128374626541615412468989603674700732943227449513623325386874368590349450821948853099892250710929580873899455635640294240052315739016144174857016719673663766727180649939764338265369396666527337781485139894417593037123948622551416635122377343579564329279022603997941185917925252975967588383705770446089138315088082187736947798178428082517536783605438550395855915704216272865399385489559327062511366500784227384557164758193625364591393785136643895289087284006318999116090620673062804572619560305172626346701049868689982940718062305524586616062775079725329598688602456476871261381980866152401018170618656650321487678983593000564928954375596319380905068486403659455794964173492148200754841528294646180329365485840017310535609435506397804623874013939028399843084068096295998837248017966733266486306376283599749416950773176638508309863821924673477020225176932561262793994600025808078564123579998809305668736295948678554073448384238418533698177342131255035580972907594495134462543083650730913977697828915751410314078259442649501470326594708265882932137892680254901065296744258825085209869043470570183308270795786311757706913755827009246924407290669708475010604855374441554086426742528703831417408761077470188350919318046927454200768874147960838939799636261317260380620744394010683672784011229113489502615782709785162893730626046044429429419645824887836423192532800435342596424986772981291465944381009997234220872572601287186681487170394740728259537872762586926161618989915968425534174073700714409653204252860652784196264064088178198725976669820653398787916641236887838429468112464758879247567584063104137904551686125431603757155926778783612650580401322830571116610006762765197694051131061913453943329004506897155267922801619612991564206008060306545704924773786711572220183124878316243202369187197244766987648165498270122503739571655141459343949226595573899244291591796891446033330591942978171149141175565233661345644268551773295398408970558782500578743386062180451682440196571763915086591964265396374842834448810160013797116813501650677474901972216569465311861976293231719592691253970823624032059561697566791765124824235248182393036266841796326391775848678209436616719305646242278432829735164330488376123224481380785369700780658620821858260560246380388929852001907011808330366116248840221269932279093258033903279439534286520196952916698339642442745372054460454176426617102057636388388443347625263878056532283428735122002053138693740867301926324872254368932142513975678356584546618628216415894415144415838718456385276062089012722716895704235984105910544203602906547405264936752873889929366260231441741660810582268217008726647377830681318279228247067091405003501131220213240770986785585529916080432477452508375984815349820407356918016535653292847168719281276772675555925526105137358047833462852195156573169140033344001088440023930803215240226702595574909920125349557498054715159132055050442379092951211994958430916542992917445930053552865200189793068691913979017441131413719851843589023627110163793639832180503483508428878669263614057187135318359625672405169007060990008802215699825692725247262140486990360617211572285717330591494960808312002011980735893456935791192857580197147754963763551267224021579217277661356493264973562513011186162276918514500749454030901493852833837484639515246873480298777719969325440013556553804522158336410204319591280919953458415994173307190058325576441336589910599140696873309253652554557972372842605459698511694928525998746230281415750826937409926343474013898088057216434220151196734071210056400583957611871125744280797161814363997838998219604828145497764472916281103133820292784229613724960239331457326513664197140829419814844517861415408767718906748727946085338635383662448690497622789068708326407771185521434693844028830087307605984670914065917056101021303337918954179558042805424926543960137343899739978064210023411923703471501167421515540824202886910762944701729254962379328374328110742723985280749359266517937753174131375393599971048779583410457359755154465934708232706024210339000398969998616507933103307040832924126458075904325464874319681042569897330943817276761074841757347907088737358900015131381894256557805079147946328823067794296536050268045165342599547414776203302224013892256340937910350452979195284039025215327559057680464506972640651049487470057343154234033332783700064166220387124370397153817897524823444676285594641132088745365647224473779342312505767067921813121623509029064680194307415657453964451217656194764128791209927843317497495337349532062789026021915832500595438507638565456851723676028879050977121393128036203670678791559239753509483281776487218442215430661075996295870711385080166305588197835456365159900927203300760104416205140562570990673037044912711332368267692168009115834175368634899342978891313156435444882578929613672533301461400612898940292070576378366482538422324770571541084399866015183131217273413049887220054452718973626478349314718631725787506103526882891652246090146872786607504279596896470955131390915957291010410524319824819157353686395268536509251013411959708444001600671643385265284157355237593034082015045035135227474893736102848572675162005852238472791892269770204986742580882291723366801705933486656093573142002454882406264753523100738405094938508523785561941538869819737943181252691564337823116760869459166559315765785284281558360666175314210370641788756222473082275584455081396487910561371279248429443751287964118852045535665632435728152748590859807988093689329850964053581276509206767255936602613051433238634276414082906053544599754566382600607942245231696364021506851213769129275269084096863911639399093844457091925793144298262563764961504234870876385326872753707988574478333226840531971233561677003341531249701240685863743033878105394250524583412859866767010691112492242866090121802332856279183723528574069656401701555314884740122347960127072953595461771984405711814416023187096072113460271753926398796014295545107855028616127526917116270334156493135953302866612609834897594624497397805930285658167991922754706682482304246380507128615717191921604897860134003497655111177389487763674267594065013525771982737954044446891173099016097083010521234839370396447050511942574330752087911483338190556459571571998410395196424647965043266381812867730570596594647621508961031408294140116750592587232192534067753314756344476468373369453983121415725801427645950153569296583893246763411438295976385556984396265904070203606205193632766019959316746009177813372049935909703039623499600024791245293650222252746610413692035233995514180772709801184565001398252845514410374007325340174280413675806708705374062665548321352958924447256086123577672046132991302277337506928080315009842733076100169892087724826385217990576144529789997425177246939563169228221165517442472308796244631720580544101989707578215096040963776724329587080160399512364558201531442865898393269597944711598466806482667096151914120348505309973362543580164978691367167235106711457608424549162544865877633310043152606131920209172897312577794343654513091657583236357731099621197091100311039064446847590980220150099248050185026413193517009392090825257893190793549065007554816368240079173342001217328755206378605780875839639463462831132712441755946747355036437731414598920767811499457736245278092608542722669638921577458770860375781861639216955093670749037039812148707092269915445947123627173547381746847996520272017769677418676527979904183787886857813657843924475219190198280033299111910750771107306006083823358675056126618822742223406182909290166445015888418280343656319221202183727953679201260998917017352498996351024618984254246776976208051425208906282731742008382616541318816600610730297343156440364311255313545277232141121299811867968098702314751018646799318256242989431561142017913673059073005610990299084023800757309423519611998252244569290804570564429803772592591493491374285742504477901576604876659393881399159282218153949811644129977223148181720525355306247431790707528900493447895114637512130744900818771198683527913926901748669137282137475304816989599164389263591600328146529249509549897421944197131917558888159752069408341607696564783105780124736181759680456857106100337565508898404410379700974010793574180281213732898853387554691604404035526975933470379150964776325484786530291732679836549663765719534071825852780695083425564925464352011069755661543836077842774763892811254784600148374296028529139275522608166600521763622328774354638585555053933166981541221103644698260372043928143346396159385834824763797062368272358613997343454205490343631301428174279881306170656598348476178293323410869289173748633524453349127883662265104687983335708076909767494983989520442635621392220603934810770736926073621785597493864475521480406396895658758822177472266249649215973560776324163116956218945581977632446914441082553562716356261692660009291866991034355099631109762508888999518629489609514193024097111676404159306289463631285449175923688068260143995365147965850943122098563226259753046538168064388138821859198166939397954886174698861762392387219303116976266155679128570332296530994689656388861360055666014141398367218584335536377017318105738207407735668940748090073145760995621897546680844962908149847007204618657960993839983822682836707126368204007491585648178774570841830615815920525179656710709311178638619151332135275717786359127424588816731253133311956798583157868953964537555619768701603626369358523286700291285636516107892030814428130739701437707877649062885170484241117366322801303679212111372204653081810036939947763227606189337933590612125348808986794745001154622935467098966360142763673535396124299169639853047143387676344974668186288815198350360054896166144059213459471574207740382431036243586518778900958751509215534440000309367916907628048624065582474852803050808035701491806226919317871775445584389747914712630123744986370016856107379673304739379211917897928166678038850794352900724348030190587830874716030239005092095172850673467799534105581023071691033484239547351435946383164128933061186128789874506925060318406883501207600193902976508579180453994679209624008457669883971111371747530980733987309569616758128034277420013526958260024459516411791887117985188875013486476758249596964706209916297769719592659314827704926778889837632365359315844792036652895263386336765950569118620828069446720224350739673488276081346736430848389051442141514303401923180066482321867308748710618523276192318784310746125838817856269006203360626586684707214809627291860354887578250450241541824542331274956156878217699790642771695289287350533321268838612029892523923465781776559680680871279425440667616143861691903026222713812884852212303827228308141013619405089018859435171016032226766423823186027433807044400281055873476524883848963601722561702091957108337803070725420225520789967244943410115023738753411525718340791167410475475520666077631660816180221940032388845578722350873243860905399749360979886531908634552950326237109806011391489641308687306428293203113808330313802583114417100453061006286246554541840712402031840777406461438031572667807171841066784605812398220029631986102287251739792572174723653832410020465219420790657061111820808586713591001717891751068372116415944227314492852100215113500890684939964128758117708574596897598366321053716028329624932076184322937864532502892801676011106740419973285962046773003847818006246985632461912456189002871386819868799496308870756780817267203473038560160021753595262886587102250253070290195262452244761649213134605238535066669934166066982051698993262317260598641962540645476317929352274237363379365343400280641239834078634723142343327567896608569513724108954163344248501814662884189213836148282254613096790692699330852726605196856274389642936572262076534875286792379011493943487533036897465700424685544337567928357445053335704127106055464706167172453287220587476235907384760577746456560162810359347492835437550320199894714749441167103410623471762115319733764030952803075258913852941595131424706811380623908804876698119401898735583534108472946116430051834454086022512184117928556339566406373823772840185332113165156335162794918788038166548007737679980408273205366381794472411758846816265640792644781241852598838797149155417442758180595804836505742883821767157928166029303287999653809560488979553708705624248785629231246437091877605450410067183128866070658791810106156494522202345336634759678976192590134747201783336813255116118177036154822357937355597223001276885647890839444842676499309671141993249479689387424368494246146479212698123267738276304900542609565076941699200194192473724974693804294713284627593621777523799088571871189498618198471196046279577427280364319783409071303752892295025359239488670487965047672663833848344685070257700935829486401752777992816595864441507464470707876927355263951372378801360303400353095005725005931997014284487695295722276261616640895169998245835271742097421838916781848960043941871050407223335898535484699346672164207913803122657289230979590983761074277299048715597346783129107804891368181401983184441426198750152474853863779885865490969561720783045164317115884568014614706914976136607525669771410232877311079458515622843596646121534036230024203730403891766587550385470972389662598692506855125584864743864631378032673463233033877648444317238869339252961910607713649123983630051481701557244072537036804289556104919655028379476698664098573120228255649644289100071934107844372688801060386123667252367719890925508131014600982618201888768247696568590710816491039229128119552127296417478652983115948359817543484707451231872987043655748411562975392257652087345220312849147407010782845249924632821261272164224766368599108220427355727081792238936462385611470465652279312865693899579118774950964674592048738150985652929036490408816913607171781043192659355899885027403424208405954319633947151411071152147663726017536297838228841183609457374937635322951515057951566843040872706491835217111962797814954538764478225047860896370858643851721600085371824308770415087196326416969014059284696433409220968019020630732270766722259567138428053212545481560079278251652835115325452242451364262156270012305766398087349364449214946086787677070485593615903566942522983556515387973308971667189120443485177190163709266011574605066408299081019220202913244331166001509902283226084934608104408664837154822110714684056050056994125785249645086861516364543039412711208597073418661787752978664373876102025723869681822489798120411420919208116745973714509036414554011677945545020103064780841737347825620897638047206218378307212317914875060252292034644249722138500146540138535840126052408326120399084186829596054602886069332414476637080857493849472224810399355220770057633591692318064394179273196276509793405405547540884935346137348071131722277310254662923869045742642262228482665821430685258804617662538220815193566532666502048023260855422722815731973299544756271440614741835354358707335162375126508231923568340776272117681867401677530971174861518077621830107051230181113614656704443192632472486673917641154840781269209043066413416318585009886820066390200956383373927056100052695739349735091940091385233481366670043001743905838211073858781638039315449729267801402521677931747792435585553397734983801036424408891752898717454492237047262668047750522936731877713982717837332625733113767680008027506657810316515331948750863583152141262356554303302646644993497154303779629612513893183586817101477009316284689021958536937214193168856343524174431818720675277249337121840588193440754217233867213410903090638543669480633327567296763019860227148962870098156713417667495890227291553857096452854061969649152290649955416952697618195722665099359090301976734696112431906771110650344962776796842778616227157195639904812864670001859139888933088144116040054919955756910774386049297338004514572078695815450313723906122122450350320774438767102049163639065657201653347323591208073057831343786894593699525470942245055543617712840046972079440784941558096465815676308928610912782250940546673944029214175792886676039964710354096640318294484732619810042173542383893762768917415636418847122519183666511224200105019344605374375972365689650870899385252693809000194333391081632917303625062900134575493850843848733841383547905383530200527341480448524472133291948720107335733480637957864471104128276214588307618332453045056174175977721162035173566630719545876168647040763265676011551949682937371895403752155717639957184920960481653338399933431660559390485507983561970586482292393817895816157976181340688657523112065653225879782376468503699847942337329106679358887583387008485356140809326503548063112167995487510431232922328388863122903227170311259545949475869871479305485680954091011184588969189387948827464123086524592757397685778865534765388428353260642654978804606288489095294560603733751920382405201686761460437287102682106485999473279537290265353825442242231869733731338222466388624095447198497143624268379506971609502849489075627868274549646082724106737809368836417813059712368879408524592085127017177759651897160360718821994316169052153824419377897890838773810333214061311377935029897350382717974280029396996651682645927609652267420213952912317748931448219646560629385580202736835069013566941314238648519449866083472420314854656958733335566239115350244786975255292577387133998658702089823671424800051545726737289361330045901991842565405721925775548659970757625895640024649137618343127579515652810513795464575833041085158104787080643479260974127881232033586380482740962100781134703158834443890342850837589650582443445654371216935661255165635833748936434484774976712990740382953158725546804628407987569579673765282491311253256390066804058221066035178781899992775660416374641090129051853816258223786058071880904176698152418998460330342717343175110115207288328779881526333677362764147385186160476140382649424511589618179193412445779334673478515598063330455485191846512813991438203023057335937168756270306290433120922579236525982998293754856066350426018195914802913905256802748219291560086343243883102979545182259174554588515389335638752146777062285324925668278421008849432222435776112663431040595791543012512655218441084277600901209552340060058866440120432415806655777324829442236207357276044868840534655941373538928729175932342396607889013170209120770881179781945232399567002071686706506998811328056248122750520982734762357860374234707808542474808669489352757181507781771659141439843706268683168191827493154623858859421526884516015052292092485002184324074032006585092956189534661073072482334275847102077028745440500775377069911698511394052506212839044925631812816333503475052280405446743582416175731198535683542944184379578465777128213752667897415683587738778090461953547723479672479246393581510487853158541698856095059300413374234199270538328671552833598897324285222643188503433515986291709002297744931142924631272819685367029180332454735378616150605328822649987695394675047437345097950583994464449113536127815344977298226850454529436227929700420469965366697954770692920362980537883757627432534469096476604458254299666451962212066697334293974958691400952119214763101268528619940801141043292392601103222975116028793703442198329904536589995963801838393929896574359895414003921870274178337634703509748672249832419928376353311688083766010561265604055529326272443539471512093335101313655055229247461383413139321292550104819676612641182218625718725098148543567705338688213425559030924301123997649384501817908772303025151493130649430547580158277627721746483998796631677213251178363755902310920293996728249488916245630776537379092928674077249577367545542482089663708552783697121679136694137888928225600308779241251288655552676611429451191300845920725058210164336743792765892902885039975521234647913315590680943624715436218550042693921249252250619523342747977480571743111948021081317294829311836152514578550370381985710971041740173171219658330953895409508329921565858235313175381674212828504565066337222504372022029555372851018788290068590604063482343534601281928202517018631125899274485708000269862397044918834241787275095032599534532400507135317907143817824969269648500883593083051035707892630929892318977533464353172881888986602089979346474312697175100899873175658875706962715198950509937195035657314130750251382420866173397622172696679926501141045663154485966714848387176087896181019240176131291003027953123383930307478995228362122819363505039521733342407974100289360737335494123012258791344307838880484167412527984619365437341610235991912490554999897405363934354131381615469482562622752234501989438268436806796650786731436334261124251963900235376133778667930366704190032872634004359921195593336780579254786383314535424005948610243928794268394511994953715872883415876897349114251985933768131857581791528220451828802979035124081691154027867380992589975367676471812350305100020147710604084448122323951273308283486090748835108826844013010676936602628617810970502953840228870693940866268294212421911883625573713471518194403692973401237133887594457551273088763628709352503875343919518600628198051735512758312984294254695803255116029522595361178120005356605417698752518796526454498222549573112069546969389691584963579352005073290447105308658554269480627853662719816736070541279225524432318443192719584432454561869299060500986761353066311040826764828815476101206865478360836953907849813821138845900808947740519062086203948238070136679957668428930583134694687155893790112453528866308993472823412366633162653148194896020207504896762273503423346024483582035062384218232048972375719536492009617972385936283443703221462915304446500614489614133474819433571453613092325993393398094987249982396508883283809334752898341257720709468567875788050452036816710082725155264160672836598147902020471907927658342882705637432561097877445223045114399521260680121165734117311501400250166156440862613381976586284315680815091275298811184031102109934525823018712607970441805953399678040099691560985914631277398209916338931216353670904628891596004477743456628022289796830849487789795414646688050473389108106021616334732131619000642060190742256127019068626922546933172920502847254031840209737768329192840025415391435937688282405694059627057783898123381908104588678047721567453196548033458979147045972999373011586818975535536893168295202933590166631861759990048900032475029516454375714962690233627953346692457292752364889643192149131494617505706793947738300553644363155995408075145141303361543906854294947295043028281820687874911945216121272036770666688533167294157765902947812702092692004289612592879063367563385657372557890163020477055858794458424321193995188095987105498299531687321781192560821806162997716262153582594686264383695615947700330987276076760542679362730899321069781742005493536821037586699139604889261711577864829235578613675061648002821856190582768777011588310988983407947473054185122804860253236749102453563461284017785726755825117886101771736216533703980747444835563134880224853446525036710927177167200658982728314808093369247872358693207185498353492418902413492422862051337350100366707248875389751271119535753263339891818578328033616816593790083091575049671678501480604379775622969265136886824231919950423939603002098716908972550073329119840502053267021240019425860556152463531747081220842349941800740951439758948483690064488340851242777258402632129979878430102201730334328745390400910872656729217246126857515982195023982386328999806017961177804384329652859639560672242529767796158383977715109937263059005526495111028826138600944615104059741217751491665814724882144371406475253171070489605985735675249400475027824192292075621769940921660283871749941004749429977283350980919439614663327567155982770832028569882614223331537079770628023914420326158545012369160843966984660105836543836061338733466379594736335591549562098962165246874176260975705700973870446055491731096332803881843556315126748728223832041687525124500646858640003495647214200212841134514564680899726458874560960926627234475019496686889044968462687389122473908076439700663752939831477803968394581480026843939426034686978217224254751061373561773142764992260435693300459413094696535859494545630900722492067214094095935121952541713005723494788307909548537460627463196218480224897069888449158894597595174075711925589931539370809391394983164487229954261395113327149572585454938960973650891443422934314125561258007752392278761368277171799297880544277319027181188747898417163540560059573349774792160373774425041963924174200448616919743233790212195392184999958039960632062745304614848333297147454457320899353235198401295411220763612087743979050434338377881784901528287764929029641248352906918454254740523378645790732908546513125527126417878400808390676459626169377515909535401192619091687286750615646223235213274878213657688124793853976781622332995263327773554886317646600137277783825303668011295649193426689477258453008389413623837114355942989422715929196418662460979572053297289151724671000817856902674680438667468474466910746626003363851788964802547099044575835083305928531444258744982591391299030742166898993724379481828541449385177179570566126630769542040213467991845668839272670078476544497057243044767544234437833852293524385807366339905933405946543836456610929450471429501353366664084554572417577711502076958461919149161577757382726389196263655517889910312402233494024363695595867250634170309603925775391560199163117801273116970702517698754549120230033080514098752909470456868637620092695013172003714600321166849943308640633596375092508721158154344463046666053145888769222118350732026111884021389774532888168123693672668356804804239101778147836863802313473492736150779225152129254484094487639654785812763638803641033966414919035608032454822179061466494284704135492927537421348582226592205893251488278712431971757301274853492990094477651654946060736170243792577296926577306702683700261975529703743590045581248034071825110622875376057587677164897512937146229879061521689564891783932600465111292523590304133188629117765425271453482721294504387255189546657637195204123103634299614253991704707377790767931134494826861480045117151029456668741845852263941017198351815671996905686057146938157712390017166615146434073287719552851315758193597259943108451388290804339373723827093189386094230546599250988747804603523132759828036083922413326178303909562883631003756811860849810356967501103053249426054343172354130298185544613270306351978422677146456960296177512883193234404890025901118679643886854651371803526862331872929609653058971786457156278021604917599519157297740573626969866049993861817180484949233469518367855700308619386249109211912123270732999882949937189639103245626978319190306135667863902285893525956662999203107638770332265463611583556994813393818494087501254804507558197963876855890026977605873702155597086620542137919689252681604411702690943169867466076901497263568186630765816122683901450874522908567587832358985673066570878694736179481268931453886834747642013491867279092136404214244643221010511066021508196753030012333660169841499914685552478173666813811423680579331953689998840211596631673567233015025997616401441454812852561864027699242232461658637003548536113874969301648079684724025611124258482485470302307859177185716775633582848109388815528520119403480616270207890814468409882621140026557315417663704817460656607012631465798009675076705665321420679464997906117095249068365350034379027451002175963206578763061730675005864750175100944140918805210838351683690716755004648939454477740857772460510106888201515262506162047591287679762667257599747571833150038839870486349122112010137943717496051856910188163348574897703803472893162318743977970248135622006353490078396876554297861720083235478800410009467511267820108760033690846607423909159870632179678219547764300911030541712846726415349620784857259085934592925829360179450948789414108020980215020701465034530630301673351487098805759006674661862168000288362260443878890143736768134937068910260559019177124636364076381028630737362365274786159154445498301579742361796219771126096672895354409208558268388761299345428378796567801786124414604792306282874284400636877262351965812177847100000249957136386942717366159152011800144278980050108021450091527685800482466661932098993406497233587867411285797721176299268301583049567141703128269755214713073323190455706484387063489618581848613467813581358065098785037630665452957382238779851536026384424283013325323964478014625503444954204569290114899614489447307083894187832700032664649292223856835291671959302761240756233997449953209375840564706735650435349406249685797164506521903717127474536315839764316858408149549122028912873603478219392281135637295335780897949864663248553071446829756432565203595842137743161996696558326683227201994630420844464323948009265548346017118752217172149789226903949829456596889573115044819730587160764648327948289278315041525824412278685779761695022723495928276319283202560574578413066855712492924648469941999576182078122802187992901727750165745500887542687007303937174822126374666340135114557843447740612343961235935757794559624583224496947826895539279531162761290387375517452532261457354185737696212133854826466506637638263788405305793300639402329286394384231731940429126932123790135102426978797682907853048544084799982991320719074847417349017101665526578661756350468977888779395798514801948310652438801934142232902213885585118615399304085962030408617055924532036557868392845017399723557648723687882248727535711591203650704752701934467958540536014924862604481597873219854692941681443928597065099146691879783529713633551253082400957237799347780218933101353627427372884652421518313846769857229527434575049139382253209549230501438629610936577570754361721704600133255346386321132922151863315964042741235748289117201933046266642065327008168264467740005308638221812381159715454764074036528146666555322753874455081064882443138846574249389395957139417560301883612204755497567150280285861915620154017894209212369369540357343647504811163547194864021729861133742251330376137450873393089685351494505605123861989852473223577591172337239001991088819052125037959181496654673189867729962630739560124274655674711437818581850917807390481193959866716579212830625345410018339016122862223276594170755094282722239390845181510091481487370086835080929951385687289266448135865133588262604733867679424061334190962898864799097752629880171745217966937832317151001876966556934984444072326676579662142470074291497523983730145910716772051013037401785198505377780871792751889632507865783537983886387549796994624235599772402436202221460802413498345242924926739470539613350776676724270821490766507893368002429388558093005484838952941836848578592457152672233551576617840893273449782879290619946843106002636125568942225046555363462731947462815397174999710759922249996589035376374936265184577884305283964759615537866089184173716135789530177744095706588146439084236136902432123532607673453548864845832986411712298334606307818550966722882213535867341291642879026448324923251156471308442894995836723803377253112900072223449160347323895480117311993381126692781493807945789899361339853143191424405440545010792288095114297587761653798740264833476439380888102449529810059365624061746194345585798075136427166867548622820888276054168683561426922984281294019340498634521516344248639007737455586284129953604837797394640426213482300958075040136512743786825089421133754400833533456777487672610777263852227132828140071288885360481714789647328792002619265062432558340210050669276255523314681943177681741470981407944981089458778859935672416257860671345124179310090923611178152196122977168138176443283904677960406019221807205447421951332363536038724967299601977620333141370957579204329747766310753851067870593457663856526021986985654959407325180352056139877239333925668723825549938108472706484658810259262088915596716989511129745240478214875437561299520152929139974690713377706921044962912287736824975677232805813101117633743571510428965579790029916310909944908814924239425815398056642589727376282819578610829158015725386525608648976915985053670362681519653883976926993707567160238763180816351010914604848067313362798061332227464531317099990167948889179883261656787368856965284847149225423729070896929750476243060758206760642104423801011409332242890545575118248168592424197683281249385765774747983158228549862187041292848805026412487771872667279767281296795395718053911879882545419197092914179755798238714868728961355392074444995246581545917457778508104981161312294171927229166983926685506537619602359042000730056263662740100895555536203935309500888019242116419398221059622665608515253653715406384514870487908790843979665871246448933253296639453338088555276010571195416227898109396621705716242097904769473567188576568460544654158893623086395274257713984503662059425053158519486346077787340054179006790737152243119271714739142745371192446852576544868022008134288272076813028791574419001802280966605000905776099742534416125177805933659166525278230917024579050954391167667202860158906090639463753434743940684198559889944119351124650086842209709071370077616370241642383028815837828825858548651371179688600781763001764816584667443689811374298215597819950326700971632185763514420938633796105233373924075404791340626581702186192875288566845685640742623950671959449537222267558387543437800798564764156077483724781307629880721797360421609728413186787538496332914086536952874010358876066318694168913838936162295409109301179710044260106702178986179828749208822398841440475089327719147745224183190994002206953201116168229125031487306017907927730619064383630047856403623987236212042543988817228676178909212899741840300112351880394588443231683281765062005598927286168659473540089027617791121534560401789456726953192282801272607257753555402747922530601443462332690602391582122025901679744480165647642760815096467718389859774562996896393504196972822895028341349420795497161966893085292313264516784437987776514668689429795579816050585700614168059917186489357861679572275728420698223611028725772224331186472798320093259632189167691741344610511125383321697325630889440955060260002446125956767035034111779736461423209525597461422494794546625668582968766856626936257117833526318961388480210066470361001471575436740866288299562112228105696503421514552962925756733915311221333558938673659460603268321767177549933820286768181137276424819331013823357470596770345302255081591209986686429044019801394125827863291791037118293445735972194792627134113120600350918132658292641271811464467956123104544922474370526100506978837817915845877280750952489755896241609735905775660826719571394656037913101192375149157827108645451002465915347520236713697973571982900658538625397744166912026522018702336012868930477287988596616436932065237902318028859824303519546982327962738934017287863618831469518822424178297589426509606754417009686127870656610278795756495943669493292912938498316684405114748410113639399914407439530398571068429384081404579216655914431122283140734755338259363547652580365091252052203095667121181389540467132518589710836472945115902106492896939772476679413216995081996657685021235641409188729547913740523165540682588875296924700858999134731508305680124583469400896193058278194739917501501764390016102776103423842178417817789367078227550114023261570244371891155238080937092195274250145407219375369856690405906561299511590113648234582287539087578356555186768196745770694054666102995240292935085919696884712142263737579174578857840884369046364462585184395569307095750697518234604894512201976558857357361634636855837364991585439987761917163856824543772357737945127239725661548752724330965103412989996614902750342589684337786806754816886347159327108932405596373256235626380703221503721521063968681856451905627826702359170677942476972091743207736856179436568421538897562498701689021017046367115684218777523630970763633584254232983370111021940792676721255812119174868378544691282456100858701852179904566749835147523675252138826102441757868341261091245356308477939507125200675387221912978189999364103543566410760392480144914557005050655629084415550241325295223094220964106486059640849154716560472849880207231212620409950010078137643644633861513370922806707024049639370703792865020745896334072446983414469591533396724383052616007228833818529400697799301243733744917314511517661287779526550344786275116678189383221280980202681755839194725467394505439445578666831045988472024297632964888610769117512110970518439754904176741663437392676474065319717161498293313791281390109047065633557117612832187150521071302959546024154671599435279497970362427727092115655121213705009292849185213893017006129996103166871013461119141985490431037439370234926696186871097276499787864745738424635458025248389024474573246005038486669742111330465759267226207667500911076841162064110319697363509125028792733395292033946670277057544525245318135147803750387243621392122877866051900510265300851307513119106681537315319244395652048261304992898245554340889824780931661656852501751630869393329639146263422439512031397276705646965031322588545579455529124453278732692583353531316588638022841488221096412251810948066576541890634921021533663168509086084626406864806184343522817527110710925229456093743529162189813083893085130383380428921848306454054430395267895350293847654455959902305482798687909963134573637377507116185408028968506615197629284399615874088631193298432773859090583344983132641387751247020182483973194009251737229886010763955715172211415831881725882508340207872715782499660211802160857561593863872607839665751846446860248964686629170239002289983768413907070147130652302691028995581716338874750716126474921258077816916411776052144641203796038645795490373943710075885865360058478243222310577009477762027510908180892225283306455706719051688518726553833925343117836278632668689172181951189663483412444664353788848077012187481334131936039870674686953767526889576686499249899619214183955816982447630215897003236036015994416733827817622020319067298727767503826728553608467705250994429213746871917437935312154383026647732864677094388960019839942756011222113505874727925805759632546257293363237181540481949365671621606457203774615358968947393673065537268007533433833980971266034261742790684183830937501067125073800146168628460047841748218537144690774185064324088916109548716168391646207689881717876771895154399510709754338155032321210727370070571757614958282717371652597190302491472716745416457702531680186761070874621091350157806663695359973698702488303675917793139896499546124095311078030421144568449458532488103495874908946382080901961036025362239907969143630151922093994492799936352804345306112000250993633198748770597408982604837674668054510274081872022306595111021095138501775928763936334040709957885535563064128857635109260676550955218338520628419144267734841600860402641221961895193964734188761556149208446574744669139729414259363463432725853856840649693784726922756986249970790164413899290106772074906136503133293120976496918422421906261322078974820587433755835928200561866573800847042688517137377597005148796630414518656225578621834209613908783023424027455530165946248291559789298531447968261277357593682564664927278104989144281153545637607023810943326216395655673896044165086897782246254564484101138169449151808944350158524851869165401783603658982506758900383907843066211878517544919954337339162747903665987508709991424637647006256572297933144496363621888545412967850382332231818580263469723557501988473235301310517287031026721538402139671597747910723442553568583936229526672293979634447500435770865174034632367781390751315731920367867135283376386416882501432461338439763679754765634052848065818495605891918065546175066354113584864861201121636610517128705571931650750820985546624783162540786965380476555783482471485999699144644159741533503067163133303960989023291554824135871178352895568115693588680685647173063439189560699710849691857602460468913932358015492440311134755869100893499101933653687523776649277306216933878955283508009753395926907586944252188913192811692477611276705808364741311682013515342443601143929079412316486500628798167357514249461078120911739935575354613583936097755531255946609582324012602987341484506756667326808445279873086350718876074598370293676197910637641948790370149410452213136635517546109765948983773490975459658526786867410831810353501521074719810507201990217390057224630098917144282310685978514949341835925621189989601262207732376282322499305372727787540076306109062417181887499922542127569972648139824280731674516058374421576160279072243395295606983138223951847067876561837911365608271837464314243662685853490980983812846300794498484086412085370205357961714385618160039770606693806290431143271746619087478236280709132465814827408614206759920968353336789166295161746506004779761303346399428667304779771514975695263119392482936391149172773987567204925561678045390473838327050904444463322219223579069555266946457244616587565779494225429612887752806407294282918821327568210170308189918567485084814801903578718418744894506702772357062894475711266407187549796575361694897718962308959108293873118221697733016236224735416530978478291694389885056995345992513186120794828927751175443576769577011576539279423828420271508489650144272692584346868314208763980745670428979523238003875260017376742438461812769502199706833679114856198015338770565027122855198412034026837346080127193280853962271329992777883839407373234080851154000374860233302957307022367737931461469339908950375503491418803297512625916953744735228807352572361173432041930629616630403516481788976384594262146668590886222428929632083702949507235321731675098831170162629909274207902043441911832082319723084357276593933765141004096786271806992178234946612623499040405675019003487046255599057400754862870470666791679317906730601239792094786725443571983248631287220015767415826482395021446413052718733428195653000541708105749187753210790343466599741731100671372623716891070131969940222912439065704269638206016506067007411875514661285067139523771367841316015203547385660306616731228605016966690428104249587674865624699851704506362106427574066639918478802642124816667026696954500715610673969645296276001055306549451326390070166005245708641301027672773808794829602678222048236260903475425642267653523117085270801586874510853947472100912139573052143033598527716966154810283778256283909979823316577250776752709806429801384001393135036950272647617511520039051220426799789328580245205198252170551153137457153521167684180181133400620917376522646517439861237211783239895836858277659069156449172649674471361355898869336083110179061046377815511078933319298509211177295129450647106181802727102075409552068675563163037674211460009975193531878473536914159397580874423765097581245837273565436046511625859195296824998018446658569562631368033652047008909446058541543083408758232637419124865234282587239703601195191557602799981482067418420384477998418985249512069913425250923920986230125741045456078516164392654182203130099286388695608272290812602289747236852823313570469368659879187944249595581268936454471652655636393522705212467481285673395589690278211149780755931329567930953034358976094045799030931655933801637580587382380633691606609903717252727296444986406176392136898789097513789008388498142731735847126742299303113341963685787640663984971377401259225690806754471698782499995077166405658202413113860004302737814303614005190624032422496662425476527379641987530632312991088001661460244104519389129207713208601438142051094604538158129872484133269945583659523923889357734941765421334921512604769293970483594332427997201357131677028035096041749602641748213323035837410097825733783569504614168647866388668058975827592221013209386270566149893769860394842243468096447654619570647069194515380427365263972517500439358152789961420043359974105724942107095171555018167319943262095276277790124814652238585061036518685386538093198397107393385006200670757184907395224312538206163156087183761705013557337594456622457538403476997377398577414312521143279845117349667789382480282910968301337480010669169098742359969700217305889961911530994743467676450287403902480539688443480745071251169754209376735960008376248896616444821072574354292599027215823116423216547376009208770848088193141295826641484846110038333793979046145950683266284131331612887397746868821865475176660283695051507846742413529657868749394038861991621715104721978770330025869011366382034396151428817602267314990327951740936233661419814268188063194438317419242586903304940867743504588596587272649310732749057269487711083638979346782125999848420933159479031648481984840139235813785196930971943306471323913933650746292886391808577802186011098136875908601472748101720867114719556228493675567234017165009005517185930767319365026015320159883333416029473326223716233556873066911322385399322261532071114205766944374973420424231371262473743220332649691971784020453155618663056872317032178659926213259808939292926237518552873835341268415415860394432766411466280993380395206205457197968019519846296293271228015959744940569396388199083442800898532381298350737659855978574305620521300108767913387785143863680293452709668813226206339380158100397281297112534919144514261022713058848881811733363491635999513504944890121911076246783257108421692996471274801833133322674710338280838098700126573647955229134753028236977033447911218270548439712976098274701065181761928243018659573338253892068946609450953683868689810968353500496241782175409854929234597503425374409694374469463375341009068944413998177116588571366678194728628488875328550650808531187259080209219588876744532500530487720881978328076283308114769592464875913021212314014692353443276418804835063098836227087169046779591377186230838499040921158733773278731286447297531485697040460138735236179086328905386948033546189931492041086449181726821681169144844846425643362923911457850384296538739059815372306167831192600055812339159207941774042238850015270215146984939622594259784360632233393150826150847164513424709388508244732615091423311874031114510791733578039076620237879585387530253818087507326941887423419090013453210222722205632355262503035543255303275822117286146821064371833163954977742398627024491845439017294866023868662619009644636887105439180949639577515987194641328280362219646597345743462402619748219241017008306642449838841679316972188199885460472290685638127929051745644316114309339015759398386227659100224577198513519206125424779323262250845060862858554674438821856854738471389972976155237008273425983872762780496906910523657376198247579379122427581784076457320271398196771807664968683277003486139305880571694841555204410238802000980339889429869277647602563239089182156580095801288002313654144206160238140580469176831097299490236414597624788363943098933270650147815684401718548044070706472089477959738605918842335729541560769856080184458670403564457900671310173489028881708199074184986894225202019491169419250780461477301406496231449140591484121879405872120950962123053018001577228734259283782764730681953430904791050151490568687446529801963577537505126401602794541163783470137083694639907320914120059287392720277833316030634525467709058003783820993305739210590678558494962243422615989895322326431129661132158137370719365987776611176222288350907541813690346516928412616521923914894394602803284001414980171958821744835250966790804347147163847859683659332759688011271635598536819022248612440377335782295245065325651227074500772429974021146203485900299177276172421965570824569973991682130475571334535556371364455995610984355172030458133059797345355684187720942291143663802061037173198890855793165648030664150003649187877033105763725988211774628393731613249967268645349029937623664950654501434377117178487027927461768882870818909074834469134794661302093681417839969519971293574700373835927054078314626176846443508720430895548467606257249885166120350705706516789514845688420924500561119399898305909868766184302350123862469363513031297375638590849939096336098250072679286794840448041910606350247767365163556626904196875215862881464683585577338110309433029582887157947541420505323655226427023092667518395818179286768647064583391444952167964964412801496553411033930238526701001426803752664697497040959457297384632659835661431627238446584827256090510357442536057707930865668698352195688450883519669798862202497221423389084970643127105213708928748763986610853386128247012985196453383963298766594978803352451363173913102600676543098612707165308975172743651421716957002849954674418881785821479170549076321218651389040970823716875400514723316971468559637028862356413795166241082998680145046713708288241568072008413932441958753660216610213869320058499753067885459370904676687193937013630218511240041547370444769283823387809563397685115057056683636923424632184564618210703670995983316736488417177088361522225392239302059907401889117793727802468102176974000000709139360891861115673206311829511395730968953384372204055563230768587210439119892659316806320136209946423198168358251663335814239018919418728174439441432758900498064085112217782046531373189830256918715024328212496936881884782179667881557935720956222667608103586939238957934099538008388235508685816155805203449113903267471378248871115834851879001188090059285231966894733194558153540723627929008093308838560130857220472948597951323732504138210882730144132516006052128923414702319964575934512633132698301038476515377815903724652177671411378005390765036811615038642822943360375124353201125413230069514347381070437647760614298822700117302566272404485561826744076333472471152186566124442523078873548420012983530955419774307031695370744037682244974601607416774733152540143326019457930571190018768467728888691035091173317415767648113794695991136859136007201361146807712867448737425304814005955916257989815269906858088940833235878414340459682977639352869124804382258945281144914752892892137763557813195872046095970793393788920253124966961650646093233171253008394258321870043530019104264146207020074313855890184605512456296283538623673569009089540047353570441907432819547589879022782540710021618401685731621912667574637918127925367743552303035487095690257509189606342686209339341436095425436198283711059403031636739206364504812161755046767985759019772150530242297341677630896816703377605340101100336960431195613817711059297642230123695893519032713056258611229259779253471459182026094251412590709649715962148526317181100781954217366923731436762529803472892138515898480914894206174425516883562080380375193275269019511250042811477945864852363478100004355396076045458774244419323123397767245393565272901296260949113825726526779088295618500443947349178866377306054282333009215065264282054811313941803335358724651969618469922169728675537335303294727155979053852974023573185494113871998016240932837446054395650317845753811608154971718822593323260985276818402282808231104791651134996103379761824070148114176247809724394513524136753616191462540070560197824475018927940906466919084472755967921504453721210742809943959533555648713080194948826001652574538077582962833192533581571124532976757805371761651330224664327149409479313105912184427217476001956120687996166313167451480261482035300193117793799858849444926165942629735263332693554536746064985536001769661755749259981681861305291266262875502993124853697383737297598985882810141168832029893014712017959778848135389126973076224402827316749463184839312639153719164283073008871130801471707698328204818756555243880849878316486154391383229484884056222500865781736903538108598010621838372090102724039607242306742064976789028843730137842193418147773110612220485162853261049578941304269304139631878534140316747243345101116225323523753408677530357471017116643181087357321706452646397567628642614209470954222041225171065850397191628870957301418121642547987914562692732738893017792083633863819404672198347374551863762893912064292154303119556386603782482364615350687949875847250283494903812448462333697826618324114995796753514441129846030145527438193476371135840908754647668904474921337790528939219124130460774481796154805918864932239490690579547844812795488399606066744442021456371878829224157189678445480751065027115462977951989691993783983803431256366642210724477513053791841863317553806577217186652753236248940561066336620324067039002092071796043823193038514608018391738059813573347895866218342126200833596549293310267006707220211701496259132727813884698373572935867859457872250345651401996301105797021021043935251565154026956850067539953941237304912200561497856960814757459361940765054507585957954572603531460827665945305545104362600966697268146447379184901180396634479479497111137251557460431712624340687165525143989809852266346186249603341347161670057987796695469043698721594469219328780043747155311592849638510531145022000672368322731088015503855208915305386100277187472399813121083663631307856156127791228201127026318455141255894452238063092650382934985594769163052938730909572899289617893781308984576909339286512203078211304930378242632891776451248495335738922014166214731954146587971361171455448971728203928644437587303632667773743335725821994800512701718765807781022814369180531941102484244694099517058444280785990368818930669954315973780959664422750988126887200233598184427355281852849410426441087228705021739597683975307653803931729691185880815316217100088641201671851089005050269095863901991435502927061287695787626581837821072895263957485360407944484393465864771178362465312466446654602888991155133789084709876293715099648942987243984305387048674389628191102228454295187595167519133593870589452923535177690100461654984822999907013514954500414204351042453519506137012435465621283230483461501562798887597988767625040581175285526903161840687692987436394489519337447410956511618676759960483305842105038580411010230727581163563010732258071190905727207925809803765039018042571879503620295832595822118602937320738926533900701185072140555530343387624766408489622567118439404507341462483346665462791942921355244671906689467984881887567279320020294213094429222640190650242836738365452421014373090056359067180902139349346383188060329639333815819338605169689611864787094408325319283461919643759148212550132970844773114457315382562732101212151655484389642512908482677770517843070593517189255610128259159005037157643708112584598530399343613933949189926127521022135810246018819800565858592930981209737733514618038683605370226421512656106232155812178586758197589190136609418424543303781481643758357862845300301332168645361464995854242872864226906819616526976310200260870741771419597738062292027602877524595786142561555984402794664462509791748350932669723066487269802123874948197325429246858730591503501702787987063856021552455081609439378488391412596115271282673698328487301821172131809213459176808600059874281115804348713416923393539794369772291252668952860243535152264364368055881550247598930144692634698369088364916540020584455147324918908187238801817855420773815344308344325270159275114912925036002125076324996806980956895430568287865843041866718905922647118247448029886629202713163502564446585385530240045457725178752019016420282259153498778816657903527758746606997170359967201213687555711339534189165286272377343972091141028210237253897499819127323434906338657580169811682004162978064926323528929800568627582947953596834333383001739561273337711438714473894663648005937239918004031633597557283024487558947075206716526103672159260126921219008004950582845289860161097933642243463209520674306473363082332609506462163251171959520045886908219488165807228267091757104035829341356212229141499224478856831775276693404250964195880080410415055457188666970924859451050854520423027842988370534979775680190733044913487692950524805139042738563019022922634874560523620800351445063675133280685105104246778296710281660212356374092267965364462856970927049800101695292351280837182956797222396927402282523725123289863200518103336680701156077901205697703635116204291998860980432292514996123845044407631095721164536150856026482542868711101408728053990686414832784710249843572248342430770454044028111300776720111161905754174639868720007270075507072779604502183041905441911115001046017801606114534907903701153231633524777799624299132929683950389116393794891459957041538314125214768024239738224283477454020761041790438934282165779590031439879066952787603944997413810161575348974576051908756693731271970652802777813280481227063150705521610386512023048397555671573444670001557838979601843554850335114535193041440719800247835205388098798433821157065770436969446239071030860620210033131650843898596718501738480576922811887524096575248460282730218932946719719028294569099415882758337795675420601246564905978138329135504018138302131919593335773549439545414798479812889974347891299381439406034844114918367979979056285039582352105654877316623509121194312183219400919054965491168948100217074604973570182250592757211135574568265432054331077121943738514855882510219253088406821874574584595380885894288126989161310182726831637739310899077404932254457845930036214018261564777674819135517351263997675920592938770018990623372253688486753695240573365651124070474096408330645134906848944399771712563459709887366121431064592957490445503460899513510395244883414129731924483652830931892687735829940099349320539017346433794897682657426502868847783199606253900052758601102117731926725371071604768260154941630093103188606901941558392498965248898315270253238741642488565035683937141012439068035354993852861107301856608319131994057132409414190002410556384413768144377429237562141524770358761242504993073271387626837303751134589941623856310760199802740450797700943406161445849417286869694158030744010719692016804118454898117545352405900546487107832643664134347180269225791242048685822270562775206651629753539660163521641423507202106971547650669672009642212338511924147652078039309080280915997652288751737002633200073920068177252869452534108544868304974937375930877518271049992106544063321795779766375512094890372263257554876814507609958500623245707467913002879820658975113266483715421261643905349338928885167343132742881237092147416173117764766619296026063368045271308022658541233496242338662521347760177721725329469212587944285480105782613225273875852869732187683334387651049345645235162598066511612934815861296310201240838388376981296787699378900820989926788110892157557111984506721350062808626506315713596648847519528239894031380829125749763255300535858283719999246640907084199761018473751989918458015938717908831572437091092807836494893332253126360416728232405530180739577624185739605458812640183006571035102741488299853150680865012591382377691563705097581129334187353014345153395029911559502134067814722504442215878508752291125290580889563506459351265732335551052571823328011280530776510924203984743919017900917024092240373558186069472881887915927124208967290513198544656642116617856691724154478573770722351793606903074589972116409619311382960810311748729907945245731757676771717251361726250901325452573278367411980403857713754433243500199903516591859393344555467332858938770820249175350860745048575630608152473692949047388295994205229377477468367521013830854938928410455372522020946784886917991757215827710501870172929124476787443331982301218533987763979698960223471886548588149392196909308337587581063844419689895693459942865301948064423583372768309556398268745567265292642504997015428803086122238777926579309695877689970350041379129574134832461720146729652978937761021306502634011159655236603025497737270883433309746614894846639040247820587389403909065649083419943775136762105248024081853768145014122278310731224959653632852885517621408660700357501329914931309944588375809581257910118481030807096913459058554393041118954443721753106467918567263196498003142930705075404836373012241500981651288652951808765265953332945504682278357063912062472433094349387118283023756806205507765333626969706637951324604408489777722669806655680774650243436382322551917344162976889454915646262761984849113804759640425143006354174447445259289621227413761763243084175009472116614081111295429306340961843055637893283270351649276733258299454153318337275775155127695391920192133013942565050400396644336616797149723518249942854508856709776719053805406702205698905351864462834780631627151555180264403995747088898262146968941907768001836412599710000840636727423481568318182897079001759692703157136727467514087247972503915973956375014277985626792623012441544623849344688113847192230485673454899756239094917837364290595639587995702277624028801783300377932227698572599618293744089404640086254926509818726958012023936021673058099671185851095533022246641520692781446803401875810938276632454139798442442890049296838828490479380651216875031999877035611807159242957329748477300301521826280972577498883773373060990488954245062791035427528041849921715091108621669740964459357192984386551377002873797094873976736636006182973397559604243258585051551663408419483988621797442936187461069157253932081425889007123176132414991635214167539605412709204261810346628884285789698074126365556644384001100487056548863150546859657678719651649178695573480133642254797250545194634328294036153390932222523964409785007222162721566002824237662771456533797329726835316081192119024521778300738286792318859953018512277582169769210240440536737855656081861532875425440133956621583194099236347697655472021079421741987415201196407523350624455215377344232004887230323490230177938130397585725513451553584777848278997171372233992416400401533990833538011395989391665774389448231864300879153821666776492230217303952056493839556171520652338892040439763971462285348370042253450674352201845927735529698242272387565318407131694733615456451613356868596989935029826093702920094631707928878981869585494874253239685993326234090288182696323358650419240477406589735104197729820629930627109575228370164120044045104971210456459364547912025928785273136935013564045053999134477933353134559004624666136046857044207919640714456358647853455163204349183298992616964382604241111438297035054075328544895270925504834468322625838954727322146227886156316158873128807703971305222592653151520128334816696191685960923823712474796828877641624949366980292573406685315254202867433281184262609941731971246869193426802893652231748902764844780446493401286972533513925904609111620268385564299604265143635300428601504100117678883554920702615788294573606298025269207935060040300195482536259843750764337860733658168953482329185018010961166517888959129783051022262366479331393070311681961019124834265669552514843192501431976022664867631544661734361182783350630593001591196119809133864848581558859249424101889672656583299885499617519123466040961562694528057882969673294735486889600372876601836075674931980932606282607045732641330737920029945501841108141217672553678640551191817267487982241374855425432331135679206313628499069833522152167534832182943483301158573756320788335010563316266753316330664923668831890609658859031836998966927378821283304663397686215008231186896362236579808165161678783015105876147297023600146557487267319577548575330667578628704821731472939660633240489575526901406479263432632257765756817752748825405262629259109286972701043440383205362953462352558173045759375034243108104112736132110885660219743467663760241252050676339040654737503655130515043208677491624865541358262914796554192480341708413017425440647864007835102012402450189028680745611854661501433291440445812812285863603673112130284698622559317038949796973642166446129724503504234006972911817000154963194246871665899390533164115923964424879207415648558155098246715891892934466665776581328634263493463636801783953808293808092453684822524117961524446103134469158449899748272071541252116253836024953868819497954925689846678783349934417660083655374508181610930922104787421141409693269706146876731833811910091663574754850873811929458111786796264583251384235195034553217724498325308343220094829640839715683735242571918802844573222995000342884536363174907146985352414283192772967622964003743972043173208075086672567900139304798923549630969370570032234178734289990282312055306653841287541838671214021446585145918151958963545089110701712905119037729088904925445824632274036412996397276881954380680887777479043960722256212798292916643989743473835153191683698876180218836916567264793170070076925675877149222913397720576242058482168733433078967459245558867283237352995563853246406108562126272557683641774976278028137440525173622796409996319984477858428968708628868579039926547225827584730917051202930308809928293701365500341851257627999877073101444907392328085391268958640423775514084590942997588868763481036357729432336011960966598639372360702691813805797627914418154571688662804457945313055289714929675170372166337156110062270016553140667102421306868250204470883655326255963214876921440864856249139514595464959333881750905108693674788450803785269055449268129542033303327941515840996771657668532918423118422053517797532848959092873435541953560749150575108073895696366488005323321848993242069958029597875051807437522471222834735810117614680867401851307351340565582632613222744851847528829102386988674020566853751232533508252322020408810766994413780609670933718037870328906263946838585607827411197990082448203884852990942274078051417022673564890728688946509527639622857739737378706714236958874897810385588455536476082828892202761851346156230560422979377238750121924005138030336280154112611949174621504755071624173164065715713331396703058881882506077401082463176248166403150141071462846472113812565417650014707993546985298972425987507308007492300441071274289209823078166450061081753574080983273747684923561267669504160415337070513657987739145244577686413598136498672666455709816577639533726491205543834251101846474626183202008069665990987449004330940608344569519830925663959605798673833862027035842378265997908257998898474692083522330488867937571173620639088534410547608554878627906028644669624187832880891608811399288143274766721803556612920978375524498371343532846429110645530069403092445540050172825524168196458147355318091164426636038362752830942812256015436090349747043592344569498482860153968154152358368492461357458114624577033691234554374956788753367188962053736715919764053865558312974421907323504397892450259954409552648058628894408954301975772169929039218726466939472965113989454906053666520393238963449785412505639881018169116865270829588719852428760722944624911267232842966805832943552523258573378535965452890072198773036116865242785611311451651688930959662713044927564067459002034989636278001446026235479432536017296926636520573580917768221837287636529987297877086800534946245667066872543087836876484774492605651016934715957539744721750143894252301354092090471053621515886976242609717376176028709609295837495099935060394163220424896956735208170446583145848116842423597204983998274723834846691237973932439740232765519306604501029599096564805028106058150227759292718821642711654084946726593756715816125199347518372153479604727522729721926332641997431578390757125621476324186502683759053526290766489022627028170086460290705805064929429678992206945516069862050879629310973266066662318718881330766076183795173916029096826047520678010724388912029727130981224228884398440133697805283035516652562299415683573970495767158985669563090119799881122551638123251603975073999741978676707896797998644300447605796302987544236126640707129818439427559175172988698131196692770006123652888713737144110766853009777525783707666690771605945947032759602972108885102695973630258851808045255012693273680223621371411648857451944025363962514986934182922751480031345472495638752062160960225308391737761352450734731175486147719964156148356872044530206475201571431900640380600657545233625219363892854537710140430270482300352710705230380718068257707525215483331855646693282687515627368936314644796986349121876694913386164234747342233900715335804442738519701924201179925730709617406812249161599966553839681196647346160842178728442774574441190249666978462270521253061852512197310499873280126340736287439080984911583303716169553945984713733096005242403236123520822099864961878032683899910749196016619590118638325763513132763713190588965260724239499663446181869358473691410241603789398959295088803375795360178193177200956341105948276188600954607110407309071489158222696970190913776502441031629271844879994834666187661846538864357116351980888101567291437201190099723536260707184657905221835080021105149947046479557741617821283106557501524377932812652970883284416428186943301442543764874008608929839617682758203140714769394476944867354604775985549068920813599125067807744160890528097310655408473752274273921400566954156325041745274092171884940226903447692600295882499083135383397114829693586607696227321290801367039207301334904444446115421309242405565790527598409152587719670954544520893761466604910686137168739549175840798404555596196260450916444532196005506447708611293681216597454593874462638854251254346948533727276064201901930163347094894500438266282313136133747064612977260428116315789983889759121120585054473586820650653037658192537069920115980376766787907876195890272322848513218998334248038230613877297669379411165610166127554291312596465005466999588413259874104096843226593240766643609027055623169555093850543528920641401647502873360942765595398631105505964136910829669526382478914810464437097900318596061516324697990496077689088219922112713846149066314099134633645814640258141896303288680738495133536955620857914798581261722485640871191005106669970498291784717686661122077662489144410130956733589523153337971302385262601195336266460117121898280753077676547463449817803087768532385268904451704152375777590099196181089753639480562161183212179146835097553913762057723807774021175869654218006458765876854613603006314694315742856929806314011903064998723307097731739452963116405889791178235188216573791053457296431200830485381654759182433116866019418434679848200273784082706461732975827332324407491405612569248818946363104638058514031484045622139331510761483497883033456003880221856708886714786965948262690278369350717089304874467696589770558513632953048518462388905518959850966293075169296026203064973100182827461825623680657936862394396485757059369831957170271286500438709502101690914038375007869641773550634729508261517628341900841705115097299448131517549161797599710787985573065597639362147963915613857137458516834617007088263563697266426152401112631956274941533051863391529472894228822018028002448329300574238251399612891566984137749543504222796532432017880940467756671946970407395024674067540255080686115388144845257830259147615361785282146921538726886796461745948241292208583426486996376803995727639456244663977383788558779830212954596752025400905610532259461085845982391363982444837644301083536884032290479150953049890721638817648058059575903128505971626274499492633703886508387883993815124147022440619171396465234322259598234304458726010419186228688332641819107128996912182192593306504645631308397718777959284305564835446217177554621843446501931085250657127700234625096793459533042525274441117063342428184412921843488580646055637503041846798400696708549321168095996138579571393844273406986384386089577973350109069877697166608029412741083773106151261479629569121192882249846337424472308524670627322160623959751924864005927548538176853333171564186164635806311332081506963539610473445408050317138312011254233189024582195463373777708194400073559960295914499351799472504681770306458796735942963682503239573047258740984957318639853411021085047642253104021500500829745808458617048707912992126273368293867174118632109182481260900052400364443207743412499075368309969129257742157915027577601102939812664533008406534234938960456014791258292144517916499691406502900002006457877501462827181949577736320658293632875510940561618908833703485361987412967858736584189447729160621551344684623902238386192967988294693942715469860414428121304869116027047647054801270692063099516684271578774289845551807579579061240656724180779414008936002351453537205476123003527061920532647193218893289718308618798476692569681575175707964008344527039764411396348722893358738633640526581104100928148308876409281195644761085187419030505905939514704979394787829479306396723386015605720382495146427928726320475464005314137053960003476540833738367653645166397356328097111756473951018694914719769401099775041471231595619169717424495296250100921311922526015672479326423441738001650372584778970336228343596075818688909748185340465112631783611493468369133049332811610173822188645879364636928576238204980971349023915879364675457186621709349844934772092365300079939799108878183833764774173155598667845997943674015549254320077435373443811012996595305398046000225531053745915676251212260769997050022426181255483146183023030092928477665186005858283506410855219724332000020143594413979055561433224678324027570315432605490329014077113105979239259648788841799816771287460470542878318315239647787060170497116255794222695664292742999013706270568868026270265420970726042998619168117138827015519398466870286853565758576623284235423920176797886290457935393308501891852123919760771254128513211008799681846446269834993499983524499566114734389396812848209071302965028451451416206823268664118427475159669756121397982458650554002874202688899889786485164113340333915129331847188302975155631192687646308976239808111571203942061492433888130380608788687626504312979473315066720853728120031018034916908432600214138725854648501966556571312175563691622129390245965203448037726252236612196891143075899695285791207456979158759631924258528075589436573443255732329262222879783184117329319700481096924380034078855154345744340855559348356315348413678499901097890748840855043859071167198674339662548666498626313225731540582018092898621504349599845396395882083645831635374592748943381225183357731934312768331718988055200768072987549069591725002933368065733470412181847711857206469397491014383018244130666960849469069075860424492853403199051635908654271604504313700705051229775889778343328712148582547880698254668063102221031835381075989027448826590733230365562056143809439397093848822905820175514626208896305042129193029245369335718677857591781989654473660416521920339505441174445551161224153616320337954566314759124756943162170376516412422776030843516570202081863290499685885217332988807188422373497255162033775041533915966003681603928017406121561107122452162067245854149925026838451104976612978292578472566309834537061080369190692822880966875091452186721325350955283674090877709990030149609815775357816444208515930907683712857391211524302443529359545634067249061192740937853320158570035303909082035280858587980076607728669095941950538204838284698433329021527388052532265938611488824973051021341674984959430166630364988186366208090790194689220374704709438336710163200828169372589979643114791955736680894682237258127553985181187056223752509322844614700243573495175876942473742966457725008347572541176258722440397328170965844002219908805478638399659390827182578435306626304394361039880458255744882095354288274555158422300696394148553558717005740806908385903252580065749765960235609382902370237583131070667407277868753798963181217366140225954379354533609013256128035959339936314187187600765625046715069513316098374230313411959637101809850435770560610631511030492570903785602794015228807073820401834041531262066108788174061178361900179792096942744777784142391134037775715026655311176217384317515725902680216634379792182901685853978243709257179424469000283103916966223660855916015587108391558736697451804964365243147595320946664909159535534138321829831663865001424530113228465487914861075294741839629353521829186172133182724183853263280858391300907497078689244249104309374998401888109324048967560218966162360683746990601274622190003191790317565045418256920047749738979489401842621900194559002821089326188547037382249499954112801507266314780336651899999215314784500640457466559814717761804567462514808791383358292346748271944355467821236927159916967185395238074773058441365319689241550605394684566739251219331660611135041496436466445367904921669090538391049434880339094470149702857814312800811036089821623467574226759844169677995317909908847195638646499342165667472144198121275207694495210013794398667867230967615239370573957262325401227536965939852443074590340765967905740070679212338660778913465830043641079595180117012536121932198742593832093808370798706418467522623260153850674544365640800716655567014598513121905720478811084426519773112291616842703614802856904336483202151735736968392733325385806515386494936077226641722329368643900821167377338034860948389475595816395161745300843524406525169291876532193918675866555528908334278591663402758894914077639890316979420328863724935968920023715015136851191912938795010103605272885689680862778597234524006511222922156271360904856710305650179052459769966505421766020342358105524518759445054671240019901357304032168948283392820116213794942934280292872088702816965573233991814786470176378475088144328969703330981514997309317000156910136283028652458542367913637757103235484284518537879759043924710073774418312852501526628228707182316674279417263230064149356637984554815768190316784822887745947346561132249417781053390243839177598113794156495732616592639545672189798642075913259294955040897984256315914223268772490006926181068554326216481871389285385727127236150262882260794743292369468779238915138798029565305186052796703221762434445355126638624048410110161451916847599836408496789889210831983083766920809279361255963819938708460361240353081640709253998143184296009891662531837013370399002293475228869927499794448182504545265177062618537756491292012687260524730107408193522356367058546192268621424998602867308582645849926047735359860337514954415474721632713328741956949850008588938109009827846516966027621224785874848768740295979419898230242401545967898854793393394616223106308391316067541860985932281740441937320026372417928729264473375897466960869740162254356808048528099214958159252077895307494036224603907666950208365428540111922268407320806924744278135919294408169317069679490915154442679963187426478269689745099955942577124964547856190005830028217711193291919720081563576899429303569880952974371473836787850691709831241935558696012061639086784748623356508076345578705743237470951972318824814232183262681271159535306580339487881628489552939413304187261792095941429827238371115462784692899311732161797366295549247447146983063240395436349266645865133359399698819144362186633069260462472944831359763089944520687390035953513209513761053179805886353286869931107554260400696433548116183788947763852203956602018011973833925281693501588986399561857334776474267350702695399104906119912321034031161815164098189206825778129676336750662370337072585642936685956200170689132459003168137537143957902158729333693455799945068339818279882271706806078808250007542370455013462944637457681283391324946643882038306533881737288606254356895863474583389204926922057615737240099936592534246889990807814226904303152050013849935324774964467388588651802427189149072524851165428181269868115481941284125980569094757296747207814211806970991492184351645957895916496867523513176219027890237563579828037429808458785895510998354863997652721186466193533129430401424620328670740576691501434843419600905441523519142693460409698207807654207404683443801645048387791114362572529259879989944957656590057590457814709307133081745251944985372693077909112853952388375571478330165473193868906718554293299129472198559990679855077873594940089828225569211701051160307097120748773749357365420324920708042515879226664329449001334306111880092013287130748273691708186118062588897117033847698827157135179789558415336804619110954489414084899786074046056799761291320062771072406215901693304159894706317315737855499917047452327683328248794444662320603158103129059048963486186704858694399907597009228373641941889540320450496654749101566945479450520048680043741440892387444968087026437857683543950250868134131089559719335182492671366172389331621817247878546285611246011373672660675235243202555671158610340154037604744825921937411603156056233031280620019055706177387245122080944842823582830536275425652357264022286661081478139447150513896111350228792384328072670670220429738567639289445854285554283641518317105614849167920910423885967078825507328927332838234608415417119423055618213698900097152569433555896372621127975242795565496613984199703011378351367203895904387709597118074914920579137075753463546694474041972457247797607152200731480652042235824388529960475437128912674698730749619449676897993312994288645441085136908077183178492461091796649791294169914204481837431469917358768211231401855327366748608915918335999959226435416066603326091115048683893617944445505079533492943991093229388387218592197190585609848252059911064555082533293756171746378550651996146859173737018520586303540185975963579704889739416970699207364686583199732785716303786792546045672079523386684288058384882334796716404918578345726410173992055556692131773112754456233401370074269409958737182406030014423252125155724329207719818206692593482389225230656275665397601264250046244511569861576889753915394298695878196776305442664590519820279631213804101497506939311762056501073867134818875582454714301857755521825948720579169618154037621804717807030544157919320598534279835582738151151603773994437356580939340038433295260784783271040630933201139226667224458417895090422532254265222233033004873416747497996976192270658844000872512400131854799353219169405188672037101239050202829360367391228067054734387412597444089441267944368721209009635701785253614991901896649670742076797672074770497082609034655856922558122482166673560998023734170369599244529205676558384577061381487578506870928137857670419805579270367937103361288366481184495027625234246296190697578980093550380753405926664843682761821544862478120862057494682095497337623328462710271988848989514325646090909508228130597402231102409897364975468861130375875128696040629567922988324351027291414986020701195734817118494957473795601218004964822989158116052016688217988586240514012379929385285497959375688783461021052770633226105700422895807412737175487196162132394581372912986153936371637983037440633027426302746305031013522653912389156420968440232664982985621182611426203905469237017238235933500347624800266554946176416412090398076147204277611352309145148026590971485128290568762546032983936418860115171148848564765468042511583548414167819031335492263055443120371648558125876640947607114536934708836172302981879216448282982868943132521503939709324293932381008703876964920084148366494956770757316264607028103109641172189943065872410465122036490128671964240419947893806205364653281493546574660184561002644349063207716592208076507800143492909431372149697298872757301555177149099624172555619979878150110594647542611439369833601497465193302403127303966517998363048301455929386475250023635480684067028409133542675129599827027874924782075333550898229416574268696123694604344595279796098627900955478910794928674582739774396377041523818082287169631678590684493312069081908987510573198287397372100920261228288171032696359273469013846009931408719753176147681810461513910357656568402106182695180494826122788681227713307957916389300014071544709769543525270170505160318702749075625472076180529713692570377978910037732611245715924109764707117270939094964374265162563379908232960349169479862390389571645266236625539455200937730831977288878972155309985425456636761197906786524931784024721187936687236057897869294211182797419360579246388882869482473401852427781018545813131118417047502414016016364703773058787554073273801048796683214636806226701588701056852048160245138337812004068787063178077216733298081780436932274212499914939030108242797389414144123307168770262922164639306724886509234336624967657321549497199796738695560467917909467400731436771224983677386176663902454840191098696730143794964674623012849840599625522727849857521405272723870795102851486753280761162300708295427327703687611467588038618106531346796363672497225451318998765821776406578247412976509063556214014661025884576683904317285477465956739921608540421052713530298925482106286289586558348134816270904572939912744374310726862747805664327879147146276455931972902345273274589826539434651679460997661281580958590999471688093499106718201211091723610068180355086465147522802304172280487790031800003166094119809368064043511813528883419254744696796881880764170189987876308618242839983119560826004774085421716987071537990930865737109283967248740069298589019640221073709155044799948270448328008506976322907213704477244580259312129399663707673940751436362610545152128531030723772545678890265198025944870165617082242896721888414372643780185377228654243656208491313077903214504328864617927574021199357548584291104644244152178508443070905727632308181228136997317886697919576977390431057072827872819309365713746964511704311570368301037045155189406673698562206569470441789123825655621290516979152450780256074783320701389380145498213873832864913641309638295191196933982299286665153616376651023823898362653542162388893459726784280465984929321138805870592864528461217691779557559481817082200789555797911368218798344804461199513940731825053291220420451427128041214350243269975390031667966707822985606715875354274168370795555638363914560200673195744009348043173665809462627977078623853183847037260380846256045854077474522847688344123132995143227939640672384793060965621568161472000693905300930887917851556997779857700001379644705014881661330734598289828395111218094647600040351916253773037676505325149842436861050492535880540643159340676685635442524169256114496538352783725470909504504575302217002912066491222706679001482088737147365886133631178281820237146106719433224984644879545506977867495759529074117643223291282668897776953171602111313900058508260859262804603654890749005717639754112670501495872551581272746073657587466460147335495602093967321822917008167751941067323770787017778379761421458790626296144861551272721041886220930164518184846414372381765811613179699160155265936238175738617426049911153441023375850665163401660030129558887715747734798538347040691549862762695620316428734749645814211593596807875287375247900249058230928827655269742721627174597599577110899284773612548830820905914548381594299787656439017141665341044104089090956680879728288664503571168965077780747693879223631802947829345427307523200870062258916431618969551012108444300355282078562616405335992486885044300041254824060833029508106334333225922073683155605295842751031866203393035600956186779222527033613944303512878821448981917364428610812423045154401809870929666147487124797979095348289298483067009734699088865746538751165080782027412545408856362439413523614173338559711809972339186200110253634666931439769952530298923056438700069070711647581303515508078504625720844855349623899262836028160975281233289644835936125344183944618891900541553510206584568148035064725926170944658003387719322492702511553683668251284586375437061078493385449933192141494713592224183705529476355843397962675561814548831862627073709897420096302826203195255198877574869425896104081639100657882877538673073253354622079248281457115092572957627019871534600085448010415593666036602523648222115210603459589070768784625836816468327986617308120430188344099185532454947685074567397944293215404353796486944505550614785006063436984174845129323021500192160517772077151308050411655533457280488144669292946926940143077215348114474386721539468515726636145310289459231953217855296287941623032917685091577677569164423435313926618081403522815738897295073172910655959545901757580898225776702858999294129363349525110664739643649144834689199873313280663978097802377159152597014653435459714208891529455369116267909960264849652905252658190906298651515361905814942283636958765989077330024494625150916741029739256751654146495380398610421539428333020310532879287575809745488770359903066150027604455469756175452917984095448792730616263278350340218677140123290695485021967776211889645878560927120894496756830813673952329061683498961426719392602638204014456255499089468778870406146466751644241231791667611422197495970928725300408849496866837774501859114792926922270284583451536701769793689956541560452827778905304561278886743636021960404218973147279994415182939908696565628596060237706667576373622072827619772446796563542134586440415390021132354344017609423717636380323248444746218367798034614674197280828412989291385486996649184452279998581767487721084643292778859680129806762827308855201073400336897642993482547390857981797770975848095226032708848649695885307220604101930615672638487704672684864672670682762769861640313376665258321913502908623644188435037792823299097508088945977744404873256536325157904067348511519570633740585856953904102416430968653183622082258913870924832035475043574350723083074308503509401496661508620842743184728078133084680243003675089274351405229050037387731706663069131392638440494502396102340303201319156464502241293688208747425097289600779696067854656322927742066623647344794858818317321825547934518257235421111060727239073940985136442149240531767730608369186292362380452092819880552325516576659080818562305825413956646076907485903501370986941357365963891661222655556241326128413808359881005183401389755557214481890279585684867003347448839143838964834126554538004188970645885724085429575470357977272313424495487600125513756946799579417196321527092109486285872946150126488050522171966715202705293150595063946296629974196074775198259916727742201935971735124654835272967039581943976437662311346646617897816164982381804716860005436637489884811676573056089836780370112610601151031833199468864490374768678183425287712353984861861074043310817824960442608495015525142304574990166713287685971602127341653747471171515066604816917575438809499025869854773412936410195097100374561113587386305018702356432796749859234098962034472887661960170820997119573478357320974840273901810150606010384222725578113539139786806560062481783003924099931577012610317459118551915974098167039986255171901254214916070521837965874377956111751951453237210134887813446962477864281452777988841357447935920670639863741214188453128146822750505741553391732574981876810380211125220381651180250868775837454132668400757895561588417302146846247617991530602195745409990527927108244210549728619464403003078951896417132101387038753577436390860354861073994470164974892374671403465920749917948804775642303820301801448117231104542709720758420629927809509520290334513447874228863333518121389824989854227391236831561888278191981760398820925919721320619737208789986613702327871157524084894614759941769228067841617348562283257334384098225419819249758149037307190985268799193123345219768607938326222662916978082355610015569234633301813539111417574844798012155977949184537516505299465037482289358346106924383933502809951905180776412656515142284765063991630193614570205953359854054959187513866526493952947995806012361806669849909665841877385989824552998388500440456760938668477381132430994869283042197709203555859701322818269673989645563801149638099162070298854545137854375953101472553015072896135017460143811116126237954659249221654660437700434392379996274377112984318818651660905984595661538195738580842815085575583687582233191863095204502655212496787268855455848634509830473314315536807041610292528238235544165625921896026997374121223766170799929193312793041252998407392582503663825473133528736768126852695173489626423080694519459053049841424866465728468977501406053486644713331447652629689194292462002346805600240041581937060520765686628903911399710005599168525613816815982047719589568126257051329880957975974889006313879929225992230099498607173106626874545469958917290776335383245269735725298896049260168026811565106253709155927577071680328804692533188911722583153873842733625067579027841085175367709176263347437913902706057097953400829609309557049541035598835491081235721664691009611793040426159011945303917414699357615785942186780012957255290387741590309822157794959246409631319006885720610392040243855866402387977080692764883896602832937324720424476484867129897991099054817034928506289336463209531803048833776279546590258072413791142090996888012536571001544813318408126646693038127512179211868246999784178582382126830923779932566520916052248099642222465140603709690412708902814411256972424776759415290754656831951914428989096113349278747912771384698779434912409882171232336192665620669328635055858637361234965788566624183515432350608012540004854723224709424434739894868642702078605640625755872507106317412121792881519367111832549696987845940036203201074660398533749901122089788557070529353628374190450007791668770123238552611976485577504376714147113328415582519634015028570515799919996970616370441495188541411284347992323688727117448422167748595942931541104872363215899145037216638567993624041442023317828380417347075100392495111919491181856198139782467691060324520609616995446396801912096628404418098536558811326728884782701121996827817222644774847034583970918383310419433993557967009239776283969463524129587722619689438558085760487595922442937758775799258093484789597827749260135419198741019505509293846854595655109036456218605005498012647207951453114832020964091614039801666570187425684185537297574409962890218535316694342705836234960232531202760684643248806721491702149656965129839077319084388390986530948600561946939917235659246146058711599389760369236105172742044703626165864309810559240236357346065986948698270439885957800036961004338800100654331296878322613562038472976969202642274817250364387806812987882727831118172321677306400419282218035610193852169084817667928420013217249694620288615421565977228000725089434912165485148580625335076858040228698392305992989899334317025056998792911715569870903925311004887434423819397171689697449093452544540132298827772661827050201533663572620769543622633217891031952356764956749628557008708481728092530990008648360291364896426434594957779822743441440350838464726720488513201366552645619445225481054365377195651439584742179370833503864357461022103406098648115056780614618601386768318981468726030048055832404951568338716256374566075612902641036114946799066823641458499367071619348422726587717523403888878252581388567672897238277654380234846556178118820166505679208132368473193877567409222331695372232522368308949844689834519297715439045474313081198157411102931787554336129595697299670784059560298312624454228525125972581569459537777764453297634956655266477408069918923132547348152451894315139098237900799226638533141598358440849206750779410133663986890826185752954910884365241608994663766085531392573373576372547889827745446468502172457783046567762044036685170963040322778348720693104203609169970363642896827611468814351167457846493713892494536358151296137469650682825649348296862802412555831143851510892976047039569241126691777858421985848527947813528989597205562683090383473725249232596212337708219381368666071719120302538683421584218677872564609326736854320824586446150730780089636660811758001062371334315551555922853022074729005342515611594478860699170384536888138869374641112869862758289404702784738236351662541811058279295475899241495945679882796605238005551700683741508155582883656887777436731941890723391788645679117370590476788634938584513597376737716703314206942911063108481535084514439335205243218404251730275877872206745966681728581929657394754707173392444455615858085991074158889278228453254532260247622084535186300908792405105492655275073608240128592636857793290176024591851275872499844684897163257064149177477757504918508896073668640652059806222164334805762917962558338337547081133656019726889024383942084214210603060819835320401694712206318682576413717310583245490074446381682432640705778285732957502146985922378791343644428427790069018140500086329684810270838959877991375013320010610278216712012578851583507997888153391696427216497147386260366549327817122210317652304596346820362835217485165986807894218204574021726101258114187067135269822566264935567736121445432811893766530149542881075435609271121775324536785857001625254180314527464892157950505147555465765162919608166658024563965422453056737727366430990077702148721335355317183932776764743687431656134572013742003269150150859416777921025108325859480133393175023678530148182052802969227757007784702282704366747627492078823487460832852967311827551601120755270521423685021657592537352346132251831118418443933993091516366423559349402529550865348062072735950014988383224030742935953333159199903874362584123007871989597720564989828338192673136994420042893714466132619890942069364190502946186816472996891666712012315692044485251699389042576077760186341252470694156143085348448409680424689224243247632802646842475370310060985000961219112496781847767285732384562965222489200644202779483484365178067363035728118372554438547812020151241697800324737974755321545572793635224708634465882090060258533353485898252943219722645012513450895289166161308332626480393709748716201452307018281262400655547860119877843952771580553997139098867199488884366730600484119753888715542754869813380065876616759621181580055206239194580656812128772085466434932062372585545429925360944795243527792911314705519302274188812055347423953842401687512302879222053203259927652034856416770185840370007464871888804038427444952197373837925704193960099762090834591728904839427301636899694775071347441796370983328451742836156226875544021891087497009692035988983083749571493228552358256859921543166372631655618762764407639677208307905842639190641188978177195272682008624753466450964344663706357159013954778426306329122051611571653816985012429336612520849663890580398185584087214146484944925843635214292629504269679584931851869200764695193480762871620912766649949151267571990647525480118260385888231364587539224959267506155966572736683779365969493842044990713781272891699349976358540360835818997318670258824045354456843624835703396141324040116440507754612201910833144594946443519363824913606143356673621033359643850126564819789779167492022946003559990681439660807660573488700715373296949719825105053143327612402775174140625354363919074927629135560672812189880389113400796918887647347683809736432055977106550149786841219681542443902339217411195998801440781013164872915187453789721845953927103922493714520187052160314297318529413230964962914021769843897397559961342966198256593429297091838020612980919646921510290834536810302638151016203848637387986764201768803033811857077726966117839082793019554586056327453819365982612140772157372670082035988540659829011589794117131701768979325259683417633598117518236135355373133222012096189334960251093742398212718757753734413308178731028766608267664794093535913469986789128084262999685727771382818245543301774272162381190325241950415191213403113799373719400671807725075320863891244568380077117471471626050125667612354039870641725188875692003016950744830552696028459317695654499237048035670060853776811907095898624893665099442577717904172054568748102465309642981052885077654232464538068736353951656602255388982319142291303947227241809526835117803163604407621135075934894459458596399736238393638050182876301044017072882773887233627391269624601477268271685545283117792152829910615908242868843621663045608992346307770324814532574767856808365100281043286738376809125450688524489956844736030511431354327819023736087594540865451611828945283642915206699738234276777305205601251318243565667407761911447242946014850267308828735146441010791779716311518813888175230449594480249224086943187956082869185811987288396470972775614280962343283787715329196012383930559942986263363196062343950398267487746414705443334270467289504593582503033798431096888973103637610642432844489829488331080434105576781262496624162461930955051969927433306661206738436780670845191453083391953373926440306220519258717199369388233012926370602897081843598943530333283187019978628301690275466075036488080130067130604052478634772895220635220913174805032688605189533403082204158252947197078633599359070613352218132232302905085324184369301314856003457138757696629694043944200364988838932851508965561264273793478801555218114814682066599502731935523672489447194061992940758210902571377674506467277684085643506711016242832133027170377801775977899880318804676632077006992360310857147074879147664164466630104895943329057756669385252096111360328760479299826813058740169621418964860863484505627156941414930840365319047584978101400247815815454799493071028404997393958624370944400567695870253563280299695340719341868902116904140139439453319359949279452892781891102015275092080464978208836294330028011455953228844508965263874320672609007851765250687057684372446551210325741265811876199609763439141353257460659687575200461403900828400292479072731368485721726515251161184931534030130809784440846271125498677654246090772323280011838958239298014425074624379901340246899285552622471170974700904544032428044421804685019510738250991712622153074867177646494923050797450350146389525728135473699055281737768513596183568888519368825806210944274667652949908851961078121007428331717466443183215422520426470694178552208156919756891238064368987636563768708454152732129838580284814381854405720340017479559989309477126656746099600711302284463750404104653929197205141875108222907013222237868600382948535229565686740552903919430945699456373826800039091207443840091549134438969459071533540510576837171430982314111507435350293570870113245226443668583394690416418202882846431076383388995504240415463352703641113531188828090718151222984752334610398510733673913015110244211454538524760411572199684202325194549779002610907829583367166993763220367525096409072211929895622432287526215953445288050431289777800187021016024994582769239539999519485236789237032548901618833987050168036134706785426421499521417108774742504570249315126608717108636389828157430422716665982910982407959653966987036488864671806495068423576598118143824210720656585237821642850143634769374329173399050206177043514220951456130859555157111374628861154753197702787600905632176103705380247283445301713363842954041126663847899861740494514084893416922456928869672084698754906606696125770135198730002965386479379896577385178442913568754664086629512757858303919967789792200821102451582021544703999031259587128829776918784538831197166575564229947009566721203182434172488183357123258003752625173041888422053117573663799395831864733125841629812830831213403204476229581735548078557946559610643944323444761765715754849801716952032909220425308583514824466006931834173273379020824089179092203243483296313052550660641510520950618109727025187034925054620719055685750198604180383151455385250574053604105644144966668740672101273316748700554277884406888668642652960302208102047963843475877649435634410476813657275032179982564927736804073670393775724567697536307774964640947373188561805373840478742357789829873050841963007833852377785993839713348001882985674115020937013431060751157417904673582534845306916102201477790614528336820773833374083541892899596761948712274168208674454269466694206803710302145162420242882732912783076368728505895026015608751732225694407212049126241420731489566924161422023487819725349649168036922924544923488025976274423531525017221493222227226227138558972599522614334804746453498876344239726655947646131473629171108093408822200386154815691504568104420435657432379237498131812133259039741985758480598027725187532835392016630075274320258863270101341299950616454111088618945198419090066521118712313120201474786149858617117295848189738361842466390880119761688368427967786279297229213548909317745573960931991050118732588874451806818516625927078041299796208195606952558479346805254365348999575426132750445316591105701653613723008080719310954408131174198792666014403693218261559631975250403871629255981495569258874558258824666257860380423771591849970244651791812911618374033930370804000893210199839148048162626277876401157261957091222881353084648286482804850252783389509511699618831424745378988167908953072946862006684484955547787053304904956023652164350220033744590094724094818270147341698728061144468174341825028956818340986953623477989720509257560827605765188731093598864728201060778543891021610852471563987102424196613193389430821366650029323813663570616053418797706742151210394994586200187289088751830058748898639967774272108964477916719716733035407719955529973243547748343321238958368655519956046646256293672067045410962782217446151698548602186770997295106175444175716095399140572414722644922179463001865248174204875839561417212887489194690159487301101088642054613448148375474016425424279042100875928149170012681684859379804496756522695556230047250131707492507003618296667645580635762590758433293055834356236542357222072114655099196930542124210157907472633493156232238872984850206712164807324149032688473340554316267151868255003201549549768206900688398539428069074346012017642962444720154486726962244126655391822971744292061084338055566452979080566408477691115219897018678018225561841132080932723857310904827492432323935742789904895333530823242869881853114908939924925863014108011884473520737133183545779314800081400882509012558549196045968644688252656041128267516151726856705414263819414601753604905891076438209982203914068444287232275128874400053725991777319417973684747168016375351658233820895128449913140022782107545318049447673378301553105123573560235508112850063188798063903542718920589270862921676764679695139632326025128639521980488986153147867110765695881950269584492236270375309511285985418439702443895889551113635043155287717740138096233801214632853682839547331781725582324055701114782102150182270285884743031561159566061933551080368710702090919981986242492366760764773956942937314460315679400256916212030393799928823067709828564900040120251348871125556465813043028523524464839944391960827417319771551065284430453526358066138243585014153208085661574640820317864362292979090348246276657681782760182203852688748844256960766469447641165152518338182788509640188241848845877917793959273654343618930894204536161271590548748511190659175127608450490499606818506020186412592832861721258410804919612421130077303497606269464033086810824302224522130941727409435996652547262000119482540687286357889606058985001633325593626327834567819370323752638388499242186914456345658925812809732403615129066862221827649450820825524329583893468470133439590274729091400282010039168717348992388939732872041572678640692522786602549349112049678592897085243532136594875106019791335917579489555446240045024286665079011413019066015247435773287906396252379635095371351505994538044336563939877306768130178199541322899319435212382188664968276444869208903502751659887930075548163748079786835943037320005697475900214183601737058420846969269894647728837506412343406886006527254769934905516479457134893085275223000555687431821973152030084813998632530412893930191741758445563807748741989422236252145959739284531721211411340899987689713258411286724708819084616896776385242284484346000965113239684809125546248784009874454783227601723245420487197553251697587906870369180635272790194676868391406157109815392022810896802861141631225784118132038810733227322028764696442663805652702566391098800373654537326837557532243657888930972346297651438150546507854390886816800600010792924193007412822505427765810753336410741526270890775514673449142763350956082219938442548191831000035118567644038768023714601800874585648700432520020869540452769654557621102589716430907747842869115054767434434015347582883804632146084826614619348791323912626175852312642499345304551547586866147740699039564010246704941833065050065043248074436027090889261725822052128292566886365541212669871229081322766092862335995260218043933623812064152310435527566775898701214451039021723383923677480266116932793500286673822091839558509460556209736793472833109824141787621089678481779473254354959216435700611253156816578698783570649548346936083967343671814386270484076980508299449161356242700519799424148645280895542370252340543379637833078680478140566167552473096388819812898368068604023768231667661745519983353267059861876462833848687990940556063394983668921213725594864149702866564198997506358917738483083804804540146282167910525970637063941877947625336510486637587584355479062389891601474939218116380531268205732926213954356988939163899540090668331982852995787352905744092099722731760763091005029040781525790027027549081603285853462065225245286973204944965406799680246099935362811965153148512241208221362454093437595894230747628056724138428353915024403907112748791308817631586234869735656589311394291629518939237945368677161668082463072157847109906907297625887763766980941356110333428199287795779295494744585226246701612522493899384888586861987690668719560487371135105148227194128862374378744636421353814198805339557628197175590438443914248459091187250439346263403946971278604439961985155649777376170358322906888861342924619476460602609206187611186311829065736237257501840305001471759056331455698220505407552059914150929294695849438012163671998284536810386010350013569895256690344367630305396222792440141902335378433372301247320604922715047877703649226557097316549976606759970637235290699695657867013467872009572618495827327458353198650800688350928907661763446019861763122146225110702695540271133800070946879893134353456358278053628081584438778044674051470995646781725763121502405792323661194516913786892178022240348523372817160420755679005373062303974862020648717164864209957293222819587670404852075496979721716423874167917234120488385158763042501901734629767764189608283665856753669460927542046489979165273640354388721802526400005993724316197404024619859133818719167058410190956882153485946970071448403234251426882775786654381141190614804735971044407863538504125724575261357821953800569782271199605061921757245669343224599923337891692214328418292126127249938448831136984387023583326669008727273083686607083810763689394365623887894390634517463705571156709683899964300020349590152265724181588589448191259981169664909899838044350655207771955970958332969970744309119105319766887808483664020150411048284403084370813690856429017594453973370469244642252765533631020909125549717425593353785363276359027521262876807114956925835426203627711394605745807268807258451066074440645722321342951489619830267485531090805987476305872681303179753160471985357703746701055107794848825304957477939638195154418650040101559648645836710193877186979067285335825142040091339271729228776688919506146414286501351463869256086672300923164483448448486559849376104284990776530028548981716532702379082677011672423573378333619042205611017317718264069504880882783441109404947557944747451703474644232191866438197223656357892040382714898421557787695320671188721520858900376504168126872344413046141712905752486791462624253473442999048630869854713525838668456695034538761948108908231736727013196261063026092071534250322140599981663006553334061732802075182583752578067903416135499192557159462996663441749548191948488275234860497231039937542691247526721663365134509052320859071624209706419174604490784347517930886642489668639567843932201677808843253284985413532077349131984524644399099343335365293403198114029627519277653569022038678518877273883672553111545360336587988015435870518401213345063413345545156304163946541755739641760554141186311324367280125735756344513120510564747660804292192012385999768794753452537601868771494905716613172071316979527762298409613901352315107827785974675942618664501148510029207391677717611255558490486120550360652884037891757822232577239569805853831389502123283214329702012651990172148103891403699603960084741430075108583703776268430852989106438700762014027471799737367414319955509747505511120542993642425516683408178395102159617430047151667817259049451877202248109453377042944957525181198574716248397472643811206664242745664473558117547753748492274488241626690159552283639137034589421026311336656980435483639394998573786658880332673166804793545803058805309174880177923659306576410714480610718141568187687542448127201996313655560639086201909715311061225696144245891072635749383664311421325688522346271596281080344927145905891606337754149847777899700755795441294531021661755378718998450297814459229000491416740212741460119269549522339728770225782189938231102465917429067088692970623632944958632041913736494458701839420166297735396037611328184324008513808816171645394203735500099828049135554735571108915680314407352916054106637326637797291023574503848435422082562196997993151747784089400397583763213086678220924110441322622407266331569832243926074881399383971633417920814386159910657596199336532186284557710807610472741590473805671654635615812715777707298472769447323516469347294744807158562091673509716334433592915829646773853282245317562077612526777574991014836598418761792100622213398017670766362847243879276371705724727095255139196400923655839788474729034603709111477324179596393567530412254048971501459792591543543327775017890526138863121360491017896140284474424108983974794083947581340388683235176289435033833250585911828732225927562927824677476775930294606377181028367290383184849718672963634754056342265158310291846828567395687504811488603200714066589806703545066988818802748994175963917915653641140862858963656768583426845701737994030794271361042633856816772558270435154650358469852868102955599992284104782189285327071973763409994729081337164493968634507601865950410355662772553846971700831890326488348849258710663590375689817216129877741697805868818424746302080970746928664574743349103140550801865005462444583973535151354433669511751688422366047989564962991818199043213146894132969537352989785369342690159976170366660751337093029667420138916610257694955058347266136315538227872164754124480942003306580153617561919419864508254842680772601451638472921911529594154942209556425463164291989183035101552002732369950483661860642707181371551327032021499609835975040385834701305036250768161503884605767886899858668026692826943706050558791422559368185793294090598883543390661348564955135551299204242248841361904213770937343785646564544137361479294778325249300413241973181318836777661441203833456755584950650354414112034907783259758951870461143030710679532346099274279518964871867442048013643097519761393261223522448557155447478788428159726375598533679291244385388976460726720899151781550117515398928404534819879645572689607886085213639209943934025670692491539216546749667112717478358836195409812725786140629955645473006378121532618246200618564734190641474690834061259891775403373032168149617290354460670993089082258351455309948655695293041717542859550319268033976696256624132179014950364244016002294515227914850301865757076809989603029968265651235908712356365669395615808797621032589299907610815579017476521826557876405390201007775548503610142059347054545072086796242601895793021014419245510025109919657663030126776911011162442249747407505185860783212167990842252051747468749081543181877937977935515006205797782054054007907008544687057502758272703542927906485561572772303847556953942333949810517503885928703916130166231421955593106532640398234648304339887642312746886846331885050825104003004255189764196679715919599788244562807641945190950900702174949328771733513975513161474235117275504424179054573178940292760473247371812315876466318800717472301619210207809659871483597073983435579423024312900353454007593215503214894017047904363822702772915683405441520263206795326379293793630713007820213471366047440145767759416069728002980826342155543603036434862755320653793755534568764392958072420302667909020447364171635360938373100576896161903983754308835692737716216569819828351274411628173726657936957836323098064740596998332166034043910710993870070899669719331945400034657882167400853733874513087955731120570742461045723115279448187963256532052245354224104610137381973327625524655154013951804513915542886507031339023093224667012755182868804298156399504481254633308951208688668761767925112992814332525361675229923713822075475379964215147431900140048282250407016668830876203361057352264899182985390421665016214336447983544576590001965292173440497956282272616095812237404390279304792214434377490857298908765940301622682755288618486595780531622740979281035195831511805206697320181531281765373589330478178942292982412273591123878597000358364698823698806287841721448964122487806831545175079315536699256641207171745757777056293841235201315845944949638088418815565122953992482460175846126704561614974760246819471520450944627363788076602326612399642744358459664654129768361201668500418788333966128335876843635317280873446191298239019636776084437245050638566515727067553556268191078540801462172036712995407570656766229536415357383858090888294137392857265367160836452807261755858747999242400239867577227835536658287419731344989266285783669934980574219214503525830148727039589677380959214834237952990138301998968989284458147589538671716977190748605917526860415462724588576874257053679309733564426040279866912724334087289812287859653218434691483977230891376823090348429262809522858737721080868243302355906359193656285838765822761907154874749644885452379171874268953203014207466072768615486671715631128858151647873230779947808255951034683210647998005761798631031199043556714260699290097613947618421684778974657206105893101558012794854139112405180846415297394987860098168071044048630920747170698735910163135123861738922124096719312836556604618685209153410333859367045346881772642463637020246250093510999960231395222051582557441212320022538083705443120385819711265405026033466385283431820686537299555499992617359367187144445364994630394933335956280780051128881647791356192642756381732357611650662445138749523973472577855786622450605791236715651294556344094899334247547955706067054580304598304949023002752434045841882952005604163112178062960136594357414416197642881846283337245101615573382329920066136918316880418469472344620700096442838968591616615950663169972347091877564420263701490396588568609453106643520332856966005823711648436291202367972907414027198821005954186580385299623256083865563187850657598919318902980322693941098430193822488492074674265396289774595882043550669983479197818243452840249810101998154891470588133499520243037599160056283693115000597017213016486965394189650184748753216433630944083707650544751794233528714759201809404112823139607916091840237417623290185108058598751652557600535018924837967803577744634498637175397999378696974376655951841141945333221262604312482539558554968925127260183923470643351103019484681465827280504061708733814418956213114007218824631825799414728661387426814285236045778239316545674240522872431013531038605211891109715203600439877423403827896196945611361468597142157373373302763372580607151307178194152463401869654053087733191816077738699062903192680842551443097040447908592685993439731299436191145026456231732788391220358367340839615958553254968207627519639261127119724218116466154898230382680269706087486429920074381340080777383216514775228624552290662523811327273230898996389946732784795518191182481051455473139927687398869638076813400815845194393449513204319401173501594761108588263053418626056724688752452089833466627102955554280349176570621439583931519093944099042059808523797360845698367885422494835339854466444144308501461591729300932443770751469092037146689243913198275839203129212215123571787767667828594118734669704524134549018247286629014607868746390777072239223094135933406443172240532944693970370810337094446343430667575968013173228837371648442910908467861570358820176230506315683079747763761906314079626637228292032503130285005211812059676237079615564563868444867808839396799301270062357956285861305510150308982224066857536318604012056286836132301098771150571704472579511005534607032445030830790427922327086892551469733938099468167748980588095776142608877262588775438402745782462545809559115809226600522450427464645708513278795150969595859703470480074793820927400867263364737876187824009499485249594655769998215559773298160246830727044917673599526661369571289390194085139880613955898535983807262560475354518872026515945887405330121284857132238543864539994556653279239252643284098316109970806561973824136113894614208648585952357717294772691361093251109859458845362844807469936595848796305146169515770009087441962298926382799447914781027356762911058269554157065930307200226095448264838558709884487214124944007781484565646719963534249007785114876375347613953312559176270275750421781531313992233947645007922506438385696189404023546667669144908739729315103015185571619505435118826889680863137891297517419354512535516153657813890440932328115823132079608000929614819602307008856435350177569466977264762727067141306438257092379695215972885487751398956095575077354580631331455118441669666303028702008524589806183482215672009208302705221470911715775157321162985207386281790430926947514076327830315531289105334163464428784522096415499697327672481628817499909741017488173438632517770498051588884836390687752723275754963173452308484143622035336817702888613748985297544388626101038322927415816319702314548538668379641721502556970527428393154931393590601657860937872378701105634936718081337975117227963606477665182852428399647139538134488408809502573334937901678951314243207086784774542831737417795134789486663890860386124076784099759198897712473436876846859304087256903380705919392311826267348766137182285032257135341776059894091091412680888075160406257923986753534216080415089557930650497051514066501087091331529205861606025580334964724637207508058745311999909157012150790820944576897810054743223072889906925125472417574138049140491564814252980074065136418154868063950782916794181271256818475088217737263653213173100777101487003313463124086459019760736045535503032255116113217143646569357570675073895697200175691493768461955296998009543778207658238667399523696967161506945561842798590517410838595430496806411966219965860768548579009989262036798970721740533383850803637940831084115823826741480234489608739203095868014183604175858051920730955820081794084285519394522113194098064897142926112577086160152290761642490052113985412394738490967899409472140329238719899556250073316901977321031548345571628779469574194531563375002421433025889788776143533131998953365104991807660853421163403048033582081586574633026818219723529767986075406444831105038914794005169933345602809363230818661021581916845641614534145643400565820350814250186534945835894628404173801725536588808428409475144207079742975886640549952919127653644568847653947864650892154471996740949514348302830297225759413898944141810693758701152316945078560747088579178852473082284272505935887233791898679481196198838708991512370258343889095320187327811663678615118777180862440665955171063303267597668104842194123431435241625693174722561506603199081365376608057227425978641144862405968170218958823541515756663431728782316202370250525895538345549194720330751815141692942605650674171378840263958808411822379134252345426494072477745650771429244669730659716566718315506583949388272223135206186582835747334611405900645985684514131035049272968118448593714102904354896991773620053703805999177305193691950826713270175038588590038541200138394946258766689443935078707847491376465978548283496574671164472313218951440224161914247611618485838279876819024528539098623370705962223913222236265677964927879740119692371857297723411684177839197824057719259844720035064254149858921526892237359199962314480129851475798551427227553925773408646192467233502764356474644398822385140275953351048004925404117396944006608021545104298248298246936917557721318246645874636075149882798770519841221049967689469669570837833542275099655598864804623859156925324285482979737447956519388555070636794145924879313847913433346379443821561072391035510326142425734885271318153876884606367970095372113679868403220535711852443505477320731135350625042378915459794931303361060909273721570694535038287145749606423947075457922844017903248594775487634510557445611805656957015998651055385839302986004655945564434162071477180865887564335485991164502872423170112794884487900502446149277484136410874101230475887219294626478252042245913782416132882638182805172696514831733234879686567617369193947949764968266775893826316625921047320847643706456366989220118019056201120179953502873857362124546416802183850724766109457507671309438181568092334381509552822716638348924871496580564083370728150081363521457395806509560562192264734557203464403591460305934354293811546273222667346690220225499250225992406099230788227415157607329821573889190429573302437771857116806879361450033210476128996863016812298565548566278118238362012880480118323948876426422114718820355213660053569428563769232395060129382449459704522803120460127623110964956383684669520351417901997132817849998985523276904465248440701006611838578419596059144613869267332429181835898890248801729486604247257261436173854817957678077733744573653745524894478099237990322013183781500459929243924592309056079943034621750905501664140434520441573521425108777763666940743725491546569715658477923805445179309064014930614566101327700209299594031273815802256705874076239805731769330557398570956081071773520345293858493492379597457922332540374925534534836412645325598066979798145953993445231676633501154895723503308451067034686433817978003958330087070626022475582749787245013435315332451072557645665859140624433785732633088738402053952999566765378188855719397050212116233554756821648043407886805910678281413715684964440404212320779923902888563781185845329351048044476758345579892730382342496141708281532954883887793561072813662918459875900216061662711476615600458822445183048176753059849334626502921211516772446889846742864636673605241147218966804090596129566345990629793193884992858231601637557632632540350930052163537359092202445833874708625969539647800375507843021464092218484246603995164848830972050886041511670367557267248497782255152399439457555093100506330174645692410520930813162708030714719552690451573778483782360396330514219161292260021393191162871650804303276323799118664557286920154570165457646845289677487344096970543008220137889816620690448496024042051596869330456959528434626964004333468822463936477900697078282540660269426399685157857085984509805983036784922155390744905891685894125856481967448076000703769480863189351441043493157640566090704405905361507291704315931855614709161876599913063251608922511145480811918023915606370416828915400033988341608952718636052830477328934037884129223647312813466528827109704275708698537528678441841660673408441962989999539311103243263361774798948636440382660945774117250998565891551275887687364321906980123495493937425659153322139433616572389357904734212868990937069841563243265087111680779572410057735252209397899284005143269541001357131019911903385731981978398553627430262731965317222361126303171011306235735583740257996158946670656539425265590886028873070113724200099712470735080346600829741013498377763868737265287359051189739776996667346791553675312258146628294490314842977325941731401406724354089853581675770399965024700851589953367808679079204578643506790932414485891686580145418034010569807610267263743028817527535066799681903346464458833832939028404077651276671312724304178727981888495383111543529775984542632779079732701049412856386393702622849365379787038450212603417535505528281736407102627212760569727865106443909730476457313917533064254652169885681046434161468175684925414507490738092986122160435492955775081237406777749492567399324008280034911596820788722191125897480284286513308016770705584821162308861459712421927617050201646342715155439020625309298055294251380603413158705687463802983556048578864360944898618432056876225178636389700505388647975306860797926739671194135987629855293031051355577305669079532956938834759935719050763149100078972945773305771398242635478977346629613420840312643641074873143848948026051168649184054210034727127023962710507924626186213222179827558915324655132101015056195179913795789065096308033060998170917224154072833945942341901057560935506498480017807785074975179921860751499103908718762814443945676553765290030874153139631930301516043702086084597237375312920241706974019542785267794718009639394552678732886237931479159657266652747651991969214637265503571557649526110096728603770139904533423919082273039149278483875774047907505913960333998284986786180538292323877538456678756724770623123779610248724200713958210365759213378191334779747556591138273942361201559301865910972688823471573004470496947592973052423360366597615921240371144124020700579097059240954277962951052326561272182353075695044780393810529233088170319627326440696874260102900578154211456551372594916823097895519916050566251474640733057966750296630693475035607951080146171757829591657617803058684166715688949881161019653567986177588042409898869953699910163048093844984021514826210998444895794168282316921535338393335251562335901317877441334321353236695557669250426593499805032411710466123482330673229077775169647958617034780653046884315801115124078679670099417537026919211997328555446651866302360158825289625257805943468965466913156706943086374060235775749421625964492188793537259263466271375461748822359803633724160088025774622080144523972441668110415592337459716185129834690497227837273776096216272972537752908471425479459482570549438996476034087360228841962343112250374433845956498545966244170549806302640747379949383862404730475082387861543494869439326667260883959511903504719266028625962367872872615567763093108098557796717415569629963705455324665831199499766456894382219981549416189589095811165317014618531463532547653662680175047301528749957485804934253509000652287557773602514373636375487610461002558017901317320016420120846692287683349827616618329651538652772190589107379810400281293689330339476520327484700453824862963644838149360655398454777451291158073644482586582321778824968437820646781514852425870821007853957161377840757516617478785045419703655975875375891197813727518224131260258707781671140491097457103685832011668389679032526199283296681016346374823694564217476570152281949533226590948274889251733078750663359678650930784595857365380927109540492895191524404767362934627801655163708401323869384933399943884464866349851832887799185528257061507876940684416346704288358678859088320298062473731103146782857851395848057185993850192989761044366720398688729311000161137299509425188581029650571391493162659452329490415031920755629351167681455677095670262348066986253308218040767070844657064608193397916771310616079033391511598304407306055261342955097739957364488767875547441195335496450274756084465718715995039540893621552272801108426417650709938728062358291196036164869528453209067069458177535587840999095491733136338176031311969108723627785916214993778974270361067615128964146610072472914621364364260324796417292410361499623701235564968331012435827668005674661137700403809035844072790792409398245286214338323323359937531556664867579576243232002439087027660340942453897813617919591526295523928758476293185377808769181413961841388975930754340221672982058299439612620176764357681291645665462251130400299117497794967848927223204736985058990243253158373573435259828327727564492029284496127871618830308386983885213882385874312423340538243587461890015741622966447719054524695962657432838926412439420483189615008465527658602515209573523195064084825312499268739721364235627933303047235779438056123377640753162385814819415546300966354601420462221350848026464334561771869181791060618337868155668237431998001880718631112646563621099865464747660086651577768368806053102044778099198965564845083418275077417730702461187334845331250045918528051339952370156458968162205914072103649614075823362717071877756771080891888000556160164288482111393772093449344506480934512854465065592684159858152306914560390173358026550961940616842466394267004092832409784933939521796248488911980426844977593276772402492461431177436865629962976410647024531620117940402028626998506554147565759729526610330266446204990981356565290264618688116525989435923738239233708200977656766864563991324267794944597296973202072168533877670742180499534513322192131186898108765031083272171006688145543849786583132278745876802238403363139603837373439256681595599874179694909884674168090896755560441699254989890534867872977878982195866203641058820166855688424662276895441786997270792147607113282693986425591803621550192995945231686422137188556198099546957851463222821710841171412743829571783187865386027776048940728069916126714015060002070032751151556868953234702364578500635009975926978667790773435461786365672438400610069893540259538387868514947157382382874855925950244988825355201602478076726958400100683783073667432265471067132131994861913917443254579892614732819579063121869800330360297504073105754871943799476373758986318330802632010894184815732701645703804309420110709898038903635013601844128321655493994187052050337449621871005428408015003681203083370791395967716821921408200915698256635708186597850342069465700785471129249773814080998526807491054050747521567213802634210003139561946498461995799547749140544303272383322723004357643754377730460654010224148110390819021304609013063778638617056367145451958160046567280515856956278522409016240259782235020385043359091618271153557726362187617663951208330915773551337588548790212482146680230838455138895173641454998930321417794668325621602382045357338280522692498693994668963224071321168561199967070165066798055350568926010736809682038990844151407266642211334497985944904226537752323856210673980689731675350353530637405142114153232246858311932823859337568819454625838375794023418380080562335684815747418028213189699515519779682168212481806998577239777357284874844910401872939460064355911107343631575994885667120391982372066447189907412923066062663788637836663837543615137969260406803900668163533287293358395546037556615802590747769743732460295631219582873598800816641001897391244336463756841641451719189830996689520686047781809953968982868660727941603292714530265237899941477808017572775723145463780314083090166794645899336896400844048386688264569039865426099453039614446086828648358821467772267495702137448159917326196497815659427889412664127026424924811611126045318699331489680880677495578520286708270433403120504054144628445319140149944028183428793664256936161913713251758965556854524490063658774362652736914283588720774357187341316723141732353016598508545550812166437665228701020821516337133171469174595807718074807022088492877780286323085900015052742516253974136569537357950504127471781069608251383566498399407428828805096180211688304725820342295609711727694077323425871621661017947095020075961747637836170237958676352069601590066585179926481303878595721575185310385279934602207584553058345586356783324609702123272202651608261393754566375608480363775691770708024515837118854814329447354277861349423635681647966374810730390444478832741003588223522776362642393782418655347838509652134481901676062006219326096039828219314608179979887189731335066808803905081518639708150721376865692236405081558541524982025727972610709932069608106675983907170778075516946367984974191939866412628427613527486608144368521135070429707387093485972403241148676366406208374336904356855543524750674663622303115650483108305250116264707595136208916310762196375504063796688008843059490721013111150809150590529857649779095893840140187836033576768550777017694912145796541490294377899841695458464759176300193760800930848812607226689766763691546131253611685557548252029546173731471275065728086256198448538295445369243154686329847857626927207005821632366223591697861429813307740659945379675982665190651041896622533067980103927021510879983919582178114308352393839109627467988480223987530303693605502792385902514382075229643898378866254364282295484407088853364693599806659407992253589274034129962605184942846951137352065057450248850054523549750917289029801335095384006729477296309631700248949683444221122293305944735954683719040475827184579816219225032641459607789141312081400615232253140972948613646462278952599067651149835916086945804877722929745162826747697183827329659611979531617555867708463471214973662961930736619595633293246531160729281155250875962875020364477096767833099986138859590282881683553236144179809957872778923965486184807750619176578266108376960243163115467137310118937357964621263183262287043658759148569854593683396181119341923922772100745772792284512866205376365717481802401005006716438148659406211527020366104077603394089869552265590395285445697516214204784865791331592808993550868613526035533592438506429641799483020477214493645183301232401426819473237975430830950580096469728420823724464764279728239895358721288139515827767380160400201573008978858568320205124796739701223637980720142452503274894203754247660981999595031823247859271777542152219791231540893613217987873417211801205110764081189616683672200612271601902949650358058560250752133016064898855063072221469967725664916949774810294321406340938900903607881996680829285919987101839080511748353734005947719292245867710253633676257617628508887799043095690429870738620373051582222913379321343657694802749054485852776319370146187132135883902792243543532111281508882334422813707047432422176463281184679841317026348044411041294994069070218698353684066361504600239317861655247573230792033577796910268983483143389433152336540534714520253342001745364872581485133447042884473309756286661809229290517823153878938134716656550636295936572317205835005223082629684082185240291339195749059728386287859660814510616903168500857233109027105269589580160425496656723367025676149893592765741033808129645421467000164755033846672258238225316175324498023319637862773061113704093310370031616789877504974695404091502980990212357054958170553446268791005829969779591640861276168590200193112018570283122384926552373141272424737586487366721217010926893083259704356065275812616006964745512412520571696291141559168344579182900536902347200195491497560883662769325255432587561857687717071937612942869476253582031569613650110338129528793243143067891273447826912082542891831231342586037228156222041365703913908448209999277546989392795919632218592426629342414666608957679235034455025917244981151944637004159307228420539383807775848078035066212259199958568128766633672456698749398887964159342016897465079072895863831389820494131107870770788761393278347815523611292768065135264527974059820046612188038808755359053243100283048816583771893113235008332818190161005713970447679819193100633636071873373526611774967601222444279083889242366906409233982313473973700255275167952762550006003525037078030571423854157936005116660158831161485172527344370445108041363918954050250660932797579244710242715964886631174897931790706041577320321076290921760754509097650268678033440734785331068744817806479687909219455784472184523062705082871698797799380774020759834974966035465958894744880223026267825135878846301229591956210034482705118342027998217218941111522009215147278615549957242301263910339631105848291462338167631552003841206221433026053559767339060875194686333945785440640049167878392532418529666692302989019387890865394155646993633322960010100387329484361958841582390152969483191130550269130403024072569000473601991107849039702147063101698447959558879252450809505323546799849209321933553472072351598771470904066758307247118617492016758450432699974745094164345298481734714620495104097331454690646970731099612818309549783515931709278487653734699312074114896094662579390066840692372068793586030274725878466266798587612011055720553668149524629913852391760621356009814306218620247594469908694187353937524750996103886874537146045459050478176231915572092835592021437577093183355134162424590057114342356989098060936156470930101608446013550882401163878624536584091987263897842833819675239148951137877758718212602697643629932291122462884816754945135129692734241841056019284206563705716570753602722408798543680589835935373853379110675212926340378852352708161980825315838087268076320259176523326237806198765266990498227611620004698865455514445173738989817978291164602601199313612730439367459700101155660527024380269093011279585643903839709544690358304350305125377799739175435699265530523207425932931883404979011451815298553520458955951289680327167735720491209928724032465591889785631597226891480366433126414508395339946283379038721952907463109401918965715591287787335099094540705623404027989009249064218682563882512482276818112158882861343076968284620529599499470402127745940158242853354638218308374478918908019449942540921891740743570892870855488497904021940618124700167141757279689566960735106212133948608091953124351770346315850432733731147278263531915448369425665381428994067881662219631973550893516544784247276916039961598700800614849763455820761587973041576817196446471571782001016318856827841868718737236997972548614615951578526519281361519787387081725252144763639818145973468389732821833925234830397477823782645733192415022053101723244721423089078208458474331378967092978455121856449515101861437907790790334499787792694665475903946149324813438038194175380267271240453599814725993146734250023984755127687540823077588732430602503712249968804338639328470456704467773391397547632316469650755640203299149184945937423201536140032603710695953807412360546998387518482894667736717800929945938680021975808128863875124220046505259019006813150739290154259781254682159742766285066005567941425482586743463121013669542764350962740992699776658858858117463089130222659985361347668282620038635056940603402609092879926647194766709289538923319555867925800725093761621477444719690506049434052074788908261742026893996581158992173803364629285599001388136502862770483285711137091352860942318523835629317529808265247203288531383398974688521175050709909611819446076264784856841046258244421634762978216725416766048564701076684466117200287972074673447660815513851033708248733752088001878314946206737582638633249256425642830170073854661503155910125263487062751841854038877325905311454334386548203912721679221172623837086186168274598869593545513753904808284892149853650291327300418443109241287235942584869472720908090642336265418548094098891854904127000583240186321373672144365218097743542590301085713238515828068766260708806764665084857034759000324986310043495830538112129577814297569543208992346828023398805231592820427222243930727051469678021346991199813000104459821831769767376199699557877609645474379749983646803981542735663948306887398402272572965529692185049524653137909979895805059191782916019914827554992704250251885103398418287317548184275808027511833275963470330238822033485216887054373839909044199666820236474670793513548917684021763368715362406594737890117561773272355200118173614590528794349497581139735677722822280637959887358937006769587565044189998974500036890990443164877665686676605417456436507707823623273234382187706416727605547536292708878382189537751057435929290985229293808832822784248357643671483067441600728719686128436874363459886590415545014117840297944906910324131474352889989334213419382506238792057410840932768362171903349746994522085523697440826388553573081099832115193584984850906972524575668317298810493351186279739387738695040518650831836980527003135954495915699914230957971722269112510484859070794174670216274216321144537652783849149241648600977241615186151530908204984073315630155141654576139892124984153122034939210588062874023670329005939595078547899245752447471261405898682364742545489223296990265518384705147831257130565736779257564992020267951773178314940172279684961485169832717082264834012742154785675546031266542066704906832245439432685817680127770226225507313449712827970976754942328121638538303922731636755783012227300997844593636772712004010445132293143717161233804724463709362716372951408103364238250905269256341293426636188650136250362248332373961999735629647646628709675188454650923622893769581008527031188000898280834084903332343996935191426238059380442232331130822889405669024784352125140035670412775513092192701583296932183219501635805052796079566519364176165011276229350815250863353092026959530562066127369396652374594100780977434008956866265082106535080103095162945062609097180963510691102053677950056824880410428554191306076083948222707892372889619727053878918975842256707304682489635519830461674700233919834761826538405940329185156746184069244812646884296019320076116863798450827353916776094379624906583897390650199130446118011045695797407136370470355345115271640378968244988548806767560928283675590474889389887856117185666583334615110922233087711932375682284060241177933459245517354871206780519992977345533740761498740967370518838722264874275360149702954629943684335781098123614034840561012551203006001888341198365128148368375273298803121952845964401779391004314316266918735701877072518803807746015031790037663825769420340704718718896646479302334641199563402384842566891100815722584248168827305395702494090332268378800358333404327587386058367884150601483283688570031353446339756007963556485162712968559374576425876553232154594386228003150825213842441061684779476277009415943058718073449706544852424808984755891120543960538330547952077341169654206155176257088823041373445748750892936917963702630979771667126554322572116852686876115909269590067692799648687811735290753749402385420185857925462411824176796506427119971942589009023476414359315398609153713902734534462837493128729925709676551968734650728507841891270587676228036830210457363997741145674937453108086240545352256257001593955785098662301727530659583105730764296327721753176594108270718126731655632751359171405885402703000964691535267085663195731121796103292202541661478088925591390748313393531460548440665602872862514223994276796110872155342101332483771015687268839426711374905130451384250490121987565638399532954523299432926507371110872664028540269568915853425137108226316082817048653714190400860505959249173266704482216298544291560899882225762217732300641278797653103015665849511141445971230125105422511885680729002371545159827003750701519691534139308047023331285197327364476882021904783501222264486312980776589745079231829041260232769933560115881658634698442233405476567676259976076119039764497024564483742032338282488602209863668393066996647959414299600581018006171891322577192209488804762730185684492961253154310335419421940361752638270319596503580854288557210293145245965001166128459273041348549517599105874755535214971035661014063092117126448860868538304274961367113447921292781439120445413266622181288018169769101647564758690663470057545692419746728821607346497735897990013080675564795318460838405427918175226270403019759866612301327744463761564877723506038748333526848610594412883406699756042459557739009408533829320095551502483699929988147527507589617171889897652583048837078467446188111420582436492682701268572266270912386688217988532122349954980553118501134532971975926290958891755585260134549682528650648019593833674776044959861307697381137833353243055051648788239087104970194231828203718400903512326601578981919830378875899354003314239591929996545478033792279207529852678308243285261698396014122583221875895417757866430217453021304258861797658595025652924524089165852065937297942443918134921806414538599209606003378988374314859169855783252444478733859169905236433897183505492831893305035982603662798838960207007956863134180725681625082916117025903978633459517943975576597060217504339033679539234225330759429893207540073944848600788559664035644768137264118436674529685442170318374968533393812053086836606390806430413104625999793583480292582960322412522791745754070418806917263490477367016982856245262223708041748408291408595220630649418704386912940041925521189646456319191856099667177560798265682336230198258610870993623603038909109548887433635720121942753940439787199288306915000250007783925460178980140861602305347004321131707103137689043970268477680454738471342677420156845608859339483492768684608516342848511386270731982450246456470344475111743273981861493573158416958098197007230220489034004253343795891659259231365039990378236336815574853825410683634281927220775685935246117770349562916797078895097808947362100620528078576275587539331653992428965489754273330782846305292051108352634518032443530428138634778174523899993834220148178892660040359451198736263464177295008412176324882603830574231716006403782724534259126230248929629860066574015126715297743403427871658447547894985748407863661932982233384459025417554219742612259223427670644896593607595787475317746716957070770657008130201506143404883880054987435869411112592950430545651897905932919247207782337319356035334913251563800388529682563352874535285122294605975339312269983774160840838240257869064957108682519454629068656613164550735413364403771661953412212041280361930092847044680343515780295954173819521006045303233923673744826744936762495544708300618918867551981421783993479538068295058329662635012794721223866146866231546188794598746783870193059350506197368963909820210834956595124693482027668298278262242689540983904541648318948612956944026161702840624993304142600352776753284099442073092732692676375431999469509990395842845768131812188318254412849474839477139572425553004142774591275677138592318661012513968823667868120471418808781329117208169820191169014912256006122685506474157433305298452894475623129491710505655344416380808160024090365856283727339725404745111100547926326218668009992854056990462514103639647241214536024368944608780593566997755156324244383542627272902108480134243256136586144346876472043063429725562848738906285396850570379891254587953361508894152860470337305727280039179771715077770371469504146720953290027853308397933773801817945336202972287711787206376895318131948132069356674471942184142361837935855459559080896048352668889641901818245011588051928839849908221213871083338574650911671640005503397829035105978745005122900376451209842065167662878928758493988579133644885500560970253164705923902040784292607312580075874769952617283513110738731536073058951086265215948600008518459513844889394490702718986498932165533451069067531770783618942414910645809370155927241566357230284020455048946829179838016184861602598179576538529554674828861436782207908092149746429245412916037986718731606664575037372724920601905467766146019204912498719474850624016178347438386525207808575218840399559244277334328792434279936310107481733214162504808176862472391948889445314008731251312842679218935193462958963092486517833306716122134611644964392802467298830038361819596268620663246192386185050442520388299966031005950162682638089647893420895916417878653774600918948569140079047686918060176320314457455046169347015430058650025972184710676298623913398946093115794830436371441387397936506234345818961354346140602107465215596968418430807514427214012769084144679638968546967399250334912915953852951324000035787886163041148337470934529596804983048199254733273617961938606641931857706886194599467167175152588933171249870117718200702215270141677632503643737107738605691732548951651565463787813946219885512877754909205326091345808056106358063046313674901657105564728646141965679289148112533083872159971679156577460302809024199329511593855880557321912114196956906786083580517694626060434591973555621575062232018233131410225732645445983716875815856880336805730408212166191027136422501911984184265593093768690690323048414671849219912972114503033912588287002602792912857509124371673890142739428966687858579977984893429589454857353157114238879339007159760245855377202564742237391205967782241505102243902847011790361821605427058810465162094378341643914302151246375970894653778525012969910520048031962552934496605350025850073934180533938470652981256900607014701138717553451309358881809888572119802060819803853658034550957883898535854699646669163444213211896745038243405928246437153747745628302996667340409592742149924783494903114073934839075633342322684303801942782043786240215600400914668219106295635809274866942994500736905290804281048871767395894699944826695691498176661230760860708807180485614681159701994160160232075724819356124559350636109824941359850777026595268997640735381280373971091886372065793356154891574704721608600434051026568216111952892489846983055345179944120079625793580734468563819674949739613091528927458536784867258499993599774873407942596352851636960947989381001791837220383073916904720910511340025957009284206540705061586131524132811937817486454177628823003015115903167999346302363128195227572050628787727942529431350720574681218905270588932682469496971056605966843990006649325414401169632898918600965740339024652414577704523753313111796890334412962686944059932736269876703336875199873859259544065738778989862922271217752734551253731764838105432860912208878994700051339263193924607065029438410804481907003255409943870182214356499564996289563353969994641531314309375158239365171502805928522905438749879481563665700949899458659521412718852609919746359183812309257067582513493496389142168792890853636352038074134318347496288396416518439756428866320692483266783832394266874550949323739089116007350588902122368516525596897730032819031922300616424749962062240477742034163393002683936373698944850384725710779714138527526387676080895977331985251510626486052229809963851500446577002688825741992453466983621655083294233807038436695694174444215886701483125734210654437016963170457279090142867281910567641168806225556598304196714455747009058982668978450980412648065514388320088363536298600605635134600022018941930880201123631630596570900340949489903485812908785406544016008813623379628069915678011672375538378815952440622938594748137469095387646981630375446721714063578331546749079715246943912550597094895895369114986056835285898238894353262489612247913078439833897069801247419148395859668462300773565996493462122262188281828955104899444847821621430408852364432346616045829938864974136669691009705383106781123676435580314505201312242566320082157195357628347331214851020980926127560339538411049024275760284591913570632655148925825556675881194781386353013258850192757195710779414182914512696659730296472491766601863572169769903720199386949408144471922343063508548741597096561831794528804000274674364979226115644504155256319240866592451118037949875080890801671664412627565701873736653759149835940269297362733161959607626680190776446111020048131816712417439396702346429406640495486193196733155746562469998122148082812518090860869704465127768308291664834241433496305156847089962118875674162836842001415064234131981125136622983974071507050699030490145292144699373204968464783074463108527009592835230363306424014477741995339331893884123742733116999753173887765935458827375586463044129220520575893578033690605966020816690169342098563934527267855145655677660710543805977766016663176094511789194635214660721380632250771674614940936243458136516512380658498245543767041106131267294508375126879482337853247715939881197255906878564379768093577731872249100701224546309834000755954380323224692374427081157714062147536331864015366692593899263315304019379410899493051128436312661650110345178616100746957034519784411233735832396169339412756528290232908458146487808702138589248770580904797640566761878041056657057047266678675743797882092886062417549268121035797016772806278025297082380602817599050814281439324809975631462095689870039240601853414915161134931677647674810470558639368488367925135102790978861873317871139798531597281950826746489003817690292672776990184875598505257770908277856684345607745879890480180442357010104324790185334029227483350251931112958296922466956840533922337018264543194938862397919426311832457503430085815662167963744967286986185592722771580832400936621226648533211897937913081507631264959117963479962205422311797433295882017873641048219591372190773797153405626702987329434819334855562296339724678950733233705830740748852711906280835067073581227328725868612582014966798607299569422373232019515173315015850494540199054721290167123266547059296363865950642521619344749821161589219773872364965848281515605344182883226606016688747441332384588043633661138764762247671331248762985625895742850601238329718691985649062834290991668251229436297758651606282463114256831766748537187326934229636518920094570339855996161626097005844017832379792297532611728537262676375303022567170392185626314063941020589295036722212304528677340979925136293159532397649531462930405304998776107907272109583373482977412519488452116550817172179534394821507653073117583092903350843788943368241431425603898105340023057226944386737548301204866204126854833368380940626681252879986087550240349334702053862417570188782471113905617812561503274063869799853653268977390781608001360335252859310727787888942086696831089736671202261987438765751253153049877832262423196628606138209720687353926602582951050542021272162418328532280338235192337422056511550770286386807482551702465148424018444362869838846303021532006253266855543479571437292290352072220015665556523717235427934724010865868302508730354618117853906195855556865814278090442660352578905637148808586166395348948675451905964248351279843601482837502083437799522883169758869291057771698547076900183920380179060912964132407557434600884694029037967791842346725332098448784834559356762647624754210054803967827353326722368103925027777949872409664468792199852658359676796113362749811310024739860082532905424728939000336819210154376240670465325911372209612869978781864170111702791910215892141123838866009443192293400439734281396054891200716796312934589734381909881653099891878489747231695157963603282944584586290311741478707785360005776628182998398554736598796240339416976588019570525835255298162216790513121919282829155967732917521104221414511328670680838328369499849004037093682125589452591900660260162190132287831336313089617051622311929682153723059889211935458664851178649502305906427283023786290372078672338890836597549180995998149381076224690400546215299207517482025951283388325162562938095462960315342425216309427365196424061223292267949469537997613146353452264731280579736351407047454608072657660159374304755938452587114784357721128101635042131790029086082982477683824341989156304413003059666782532654178371528547046617959070817230031268040980987109166266367465521586225197086862452255341265057322580296514770333991320187886520315708556749745097829531725489641890656397337170836584949286766017851490719226503544631135533179836678225152370288066051757415610731457749471589405589019458323251703114313214984600584781550497229345507971026761587532441773363109680278570563688248872300935775064544674342776544337919988697218158359314938049055636531488035910514136417818946914408149082385586752471606641527690413078045300650915623729306983721376003281708379612830041855156545729480359011572030314130152071036774054447198131905778908562384574240086140784800941649608903777474048676171975685759811423749894530383063219084279954261718592943386027526283857250826410061113321012797245496690132622605350554197236615265907139637309406630296238361948823483193658004467329086346650116390857326316260483830403125872962784601273516721105866967017560551713861612076773539830483815431804506795748906805070871645004913045011865238701629703008940403605471673162038748297446669298695415642354243500174846523416100921871078604760864706399616456710694031094490340597441712957160488368161364454507174882865179683808864280356766606171907173874494168385703173494745915729625260185957439533211029811006983187972038212465149493669811286759039074567817339832472749803371674552017075342044169798603774104996524284952114733925215167902695381634401029149185614192213425298010931330109241559419334036998854630709447245483420109174747725427631245825058414110905624270832403526867197191102939183539464909367590999824670527621009803165536268584541055994915540475072742667152550448857256669887910341480261583707607571977370869201058436346656261877346387557183508572922757155524226516112128871655512939647749307823402663102624473921898646303196642492174214296057393519067132900448274664599434520286108466834696984659585020157714834641144419545303889173636673022302791883824269522000004017288344597136430587104812079209973504139064037137087328306118957168534655869288731667880391033024111994335604966525585265501093718360290095488743518619846680559955149212345985483979165364171198153100003710035656392839211124336046253339950301428752411808718928396379716693939896622237946576780059626320325592371817779614337977482714301315993953269169445691802079468082666687335636877446921910084973974236476131276487425623454930159744500417916594752182251735030230129925255433762793473503482335795017803880184952520423486924584095014160281675655657521368668847256120202431958618580203719553839960001558820495220670254713077557446197564582695902373378995163881970261749186048223997752339905885801384569548189182187656596310281713788867958302326778627334274788157345437810543044653716137079821307717221280773511291307998050478452499805916104877868189395874226853886014924183097886136836038913533888724369914420959996494802240216876489813837429949972989237398081718417598133360178837224119495294377431578271230464152933358803412835719633310052498557701012305739320337023373276253420363869711740901818282898068566499587847861440643012393046385288488244813284526932033794020960472137885661364753543888194430965022051657250754594747913341244070565484966797954364888985164843300700877558284860400456478557081097702794978086159928274306324614984328492685461573634502084054913070545441126102578502313718010540294776830803827235383516070577428639401321689876881890524351815470698112035440506093325153610340501196766371318393600901032461036352096400328498495093337957124233408353119321335985283095413878460129140231320130717367245053884175046232653464433530946305106762989028299032662438670876922100002248766865286452095980842109140647292895891647491620094436581017455628617899211683821528843283776525435141542555890618147111200324103848383010281794215131256635506299888948383468661770107614227746796583825449741851233910536748332457947469643802191871788320859357727826309469724560528575341787156631820707021146856775042364363415082073221676100036250515552400490621887349070507901161976778924236654657559673745801100168042954947933681418933871219570824317573410370934959754653607708508370544715262653121269102386544691344193734123938587238884564888054737456611975919582196732226646266377397019716862380688632168853271743199326360978800490060402491833427409072918369238917802011161801816733911929942730317482570395583956873831555898863576819885731624898439357482420415911297207495653977582403232262643047134086733947530346323386732188369123800432470401489496126359856243101530998603435483482881862312439597687910336928028463416232603747847523403024638285219939555189483209399903739114037396904731035518145001186614665584342542757459241535111324357523773760267641509165399526757464708756319707501900597723509871688547994847654411398664522883715953152318610824809897905762405646844737680399508639619573221912692717917496725031698276477545801567843511508793860528780667422476770232272667312607812754438690296812650986908090520095793380887297917648164681653626831116305029191098383932633489329647473702523142324689663168692176537929353703632546691323781663304083039333244695603432418605549430021437435406590979473704449507572264842084817654877765226083910662802942198695873389454816929412407028929475186980353133073695762544976289455016079371135621923137434875213672954237587787823781985286598489358670246048103223283947423190007902855740009518519077039491271284965663010031608098357688019602512246618362673057733084504745646827040176108628926664909316102521920677667146939634629449914923784045902175020640789507635894516355170588862248518095183252138444300378784466269459848348803152592213132528234698202360095173267575091092258832820049907574632692648446970402757653435386711336376469419445255454472346444118955361918499893549079380295994639525682430658196055956834939115853640625743388020922451268433075305173505758379601882210732033675861110991864355166344150135251986545234572983232613146890859349995015978388779336336160153792291404409191778614635512093726381277016033517099716792987992907183343737328433440454223192274386678388654381196584111864545190059447093050122153419565591508540019084609528672844533870309201163461004727066836150465527532331479174524488023141788424374035821595429103307814823278716823269802337601243874051584606797492747616292863176648279110764780878900569875851771749652823818802891405644809103248894141277522368789871001341776365058245349447146714576265809322316516322238456567963277553781646469933596587688447311050066099936684411444751610933819188788382007782449474685357597361227011759628745856626047823628603837148873130842167720873528666922260275832029713063296299721841929052876238095289357857137414587358330683810689608735063415892360316496859713465795557474314158596219813951529499424716939742799247634701143711994613419662029417122615755493151310307434791234042872420526989017001483768460850471334634627430470502953974154864308659545202779878089555538376621179652084521084304603606472046222126802615395590292682302511411412742536947531040466829024849055398928993177857916695315715909198520526739720901051196327395140241750162892718713400387379537955175504635630380785613923441792210828547378767138072365218856002918353046217148348540410930203595676686563527752215328258807506202711006426966799881600559856059260915007912267369701666432862527972816393061814554763741585928943691391431022558567353927189908600860557030591661122640114778467882024741967221224397230048383501233957399394641160384103994936960749319226860127774841058352301628936723558324451041803038360318389041820318036168232792748199426689023195950394077060502602601723409367946795954519812108868291023645524417002894433366376946485712610226866031443678762935308234302741743055008561148014270468051004274235100387083366513065973519795285181243268586124259516846193864797498490021045302788307690988943645428485246981660610711948743399463294285745621068855633232272888635450246540366734796498758008583582813295263236720668275942333148752818649663824540223842099109289261878166689167873783263478299365096997013980170501623020723565778678656009349156683122285369948158537063650002785093689191041061179980092534923560631833116853108596569073040336776074124828777475415065433298274316134909092154506554556163660927867353765310984974390521711008151390419762018525670044183957503021018243574637630117706508413701164954247102061362845665664691213000694359003433512469980086813738098661542903091501900318140354161292794608697507724926795591339290623254741845995390021367700851432017983974739328628227277209005398338183336567293572078201705641369897530239195059059568262893346513123777132132352328029868483743862820502243837985550763594460134264809231754635231875861084429172345434460301917761333339470523655035988103535631956346427389865979280874282398466028554836112293183949786351011187393136367505050797029604950189123625664450754175454710697835471870174790780346585983346029694751951027385365370229048109476998012758022997015652139463116814849546513786775411131808341500152358860264803957180441684373228336786824711159421714901963278839526580992708003308502247860062865858481964154915481441203944492864278772170667721573612715442263115553658152585724033334257468346598043342682108289222085995053252541900927237966242258668020023808819677099038968262555868550342381762085689429130974895237152229845013233331075386578214931303710737804665922858526132759513382151642317230519210741457367777931538773860016083710051414078268821956808139579435225315481085858270026330654972924288669586752039393194641299820694533619982766533114127686213206378308714881820470452683726690574386843928613251265060322250826089616247656662884854964734818840535600882584409605662220644791020927375098061030291411403476016529859549094628758818171606290385111508071179832302018915108128460513368089851473367048337042620709114139970588914616949431042784267423773108243837767957174453517564350657776844662352313756012961133022869034900586237510431249675036595470056814556020843860129679606361074986030155130338258349211896389107786191398872113088968444530214764175186348282778182868655189317511935362144909237066798283466569715578155122783317505998027271104528591372596436568028000347797320882570556981394646288241825391358663095134431753855933020556884803233507497694953924242758038720437554589340463422947261764636019715902995031140196790631345271160593420168052452441182159048928459590276015192641492998384935468847245793527533974520243994023846674919176126125007353190499242743938551335911042440656803545091775942020433367294904104477133539410147453160110131303610543437362274153106398053382623576924851322201801175808119882454791073618919933741790932855498991840292812710475131520847317625599968507777942244751010600851377469068653946935819882661031396902744024897538126265972536824982771399947569102364066252414595211237264540057131978252943444041485839217130258614648390931836194138171663817469576944037275299068992288311840465617912072381271264845745793224394159634018974672843289145889962849281243147547987210883498579511745914437924179003600798125699457820086891528250477427779995466290381951373842444247272323378707387760472629420527220512033416767884874004336132568122171924796257976551329429100029114372453831434447314856699068905538554005221297247686581065991352950982295928362789840082409434168675502469619517491288687030250599433118456090176583679572812139051776177721029129192801289991884704543634046098196047939056016368587172564814525458602412678266203800410501168738856446317081743207326432251522484695038370950698159569142296715892027430803201147693481068815681476326303342164448839592240879763059140422672264053037303747778818049051036964360540977084716240166113690063257485603426346678542267252095097972935190871583456049946792126105453251752810632960759797283926175606722153885507098780882487181545686840736360925101295042043777903195642131233027778773018375443741132318741478744386726271677820832942433811574240836582498767256033627132548445260839093033019283685156501989902135577367975073798640350513955198603555957074912202363083965301679254759645703718097872712252933304215607403489317916785471471769583528751087802899728639400357846995723200626055913593090858807604837350273818237401626155417877327758385965919752697171079363201135506395270848773170720061104788663339692092882707158270115694233213534360154266949134119230983062571387963083207430081125455171567419284435992274832840844451245653333890287541922807637327615106580534069402829555549607960214736014893220935945501353124224666740808673623939842860301302806209901363377746239249611202156796635879239338054375860954026914155614315654198398872510486974834911459452856162218989703515217028976969477462060727759856733297730213443005887229216851576431584162361652917179179109659279294102264890704454719002293975610793501125564365029403332145635025224265308899162131026956078988587407338424729340589398174809947859965290391723432898704407288030601185786097672162723380887996146874019144458316236173335845315006179832725172132423244658356761936349417488221717318933125977220994694754446439573236289690034537427248955252751390425584262559415380765655318516683639902539597469421652503119856659259447482101129503346552152095758794076204050277997507695979497193860063319311273419095437775346655568380807657755502060377661988404348359516290722522953416475726056459931151384111127318869347022584921163012180159962018701324725742547991736691232535547147172382121486079118026141217154852353241628402653114411559914087552561843082705875310027954101321860527658265141775367115631735612820690733065689361127348231219608728853613128163286496206222798450830700732963334376000735760393587495709253324742796377904343008162381743227958168950519308499648890357313440963078334758477992052214387658465852941639551354296540357476860463237433145683963365118129112671350055378842519125000768361176336815694592344403846779334923025952674779363563567302525771645739709690194518390879562734811285916816525319672796964192835039775293608955600805530732954735221369636624884939665277800108051361433621246493221071361699867402480774739039401261308790761528028692317660376148424603218754982974068848824343834197880960781061048600321919930974900888003977304068387328865567869549846466622351760783638570802584822104280682556238146979629133209296964673802230647052091746874261504744024799037504298836724745647523965046147687154786831009849947417613967656617815083569558337039603457687416370528818590798447851051043372491377407297442515152533457664577906404353632081616647532410526583622766854054825615798586033627220586826539260974085613275575090507769963164961793599245744593679175577227657640283147945006619912336682893489445771644347843401647319568683633480069747509817636255347558036450472355474807618170338551644162627073017529077555319238905828985355777565175371097572762039463772422494097693668841001238326571610590936587590600861466539101991898454333757707322888136924909077298810976482482936637624473038060979456193689791036928936782132958491509080244296867916478815857322471869496805387964802871147082847038357611107468010786317444143003475857893954020015475636532809608511688037502577509442018153011938630081912741345050806418818292925406167210075548699999402170805539115798358338212876166726899613178245545765364713090090804482378497248661420926288066632953298533632876230940802076117361814199274939852313895767472021778792986489749502909755755868177868971870308691100251025583266292575344913552238497733929847952400179393396298469430009019511922080950751770038590507744586278236702233664275402736080863944218120194658276457211487601544755915720322196169716085198913078046224208043471284072994366041255420762876218168291460535271051687599732196362140527386179227324918943695157465006203425812532043292730609820508470743363082247250696751214658276609855480843181988942468559951413519319317065241608690666542723599981394682600151249746444533570622850922468415495667923870538099462591158061302577789017646928763109011018558378285426193812290661628675137686219332233231978143105737343995145078073065357637530217910411924335024922547284854526040983764375817794562383221833782960474116441770592209914298393497790172001439912236078529435561967448996653864413685928413883761809880898102220391883526895728086486350788835009398080235376297601510227241970315751150267341795381597450121929739378224490566788869024612372974289632791609699417702486074575593248729477427098144327327464115689620661208305657068966268288191421230953293007317142997196380976803999888796345448620949124970622303736337197375629815395925498380450967509760314481629154707794433612452279453365721770518333238468787659466665570174102566793352333286922139664109595163747841671792382805789588922477345709231771366469581994716848808240823570221331740591223931500380921488589401554933568405471712457172739465988784512006257190830746541546879280477154724092841346615470443844107115097450486119154902011473688413952031810897380690031642712499852851119133309567253778997040661469792009985497453785630947002252111846470149068966198737351358266246751711682389011521449550810687188210339878374812675374328657380691984523855413589021328042510625568792705271030981428609725418690044774666523428756709904283030888129153089604465612650497092302167185507533259536340584802857646919842471645148038596369843004256036093337395459635286886611612787465037422762067410241149291172336836784142135780632482021647518965565983956468572334733982797462191618745548910877422084791700983301983911022269074017861398975009052690908552523294271272537946851303332303319528878879052055640138053411731774439795446254223833009056407635792270839848146989769832734081712210366018482915976164856871370861289832843676703268495787681511138999552813900908811858077839576807160008983411827685639539872785628935226812993309387716730133937394467338468222643292776833858062838593037917976152172862237553016003504713264547361331755261060078013555908672069122641883153987654915884757446660921979922684952925549866404252928027282606081279502889676269034360224526021147059497755297156442913109919805410921013327110386205317682262122728524036379410624597001344399857971291247375273163668773981800818430397161560921058968921842498416562087228901340653560183393167855302693804009473200428105263309043596781999805773243652228441992127361875693769434259751032185079495126731184390576070863269629043377866534451991151404899660676048884616331337183935935646353168911135056472522847332665372570737489667978536480420155762059089860127800173959073612048529859654256060048765309669145643889835505299503906089376625640867247774584963374207265683490559524646232823872516431803617585189066850896863613946874900199010545992461568274930433478805213307082719753881861018290449039939934752600473690832397267730278609013495731874100310742695767483528433866135495733637054451671823186931291555147529857699478069181276822219455175302399100112051991721829054929618390909669785390578669582470557943502685819733227570231833044927437534753688598153086661136144848885090744497428415948773025615007328874288534104357650153816375816100063556586875034029828298354052625589348871274020499008097480484596009772446049582452611044106266744270488614677322476866666821607457479993269165851083892832912355043292108584763191143311940307671065600663467847475722575818224449170433862541020352892099571154449986037258440888574832218115423004271752319707072772028333005695435872680875538807963829186553613323426155973904123284316902142571109261001323095145924255559811431023414539630627379448194267905075222727573880006331976809062822032221289304137762239420696561650704821018328656906913951643392495718176084113100442137745427935480318098274706945941252978690424770493185644078064123917066370959202503244024102418170608932184248523413149049579030429778932711512321239691406895317102533544638641334222258573079045873069455989418641130767126937334280390230716701950089695586109541598461408442986847517823577778930166591789018166025683358090605977729683165043795058168282918451165612141761720060821081989437538659536437390840540181954157111483437424101791447507663011772965014457234499044907171649765757898666683306222063371239784899050753213844250445939222269043802280069501984237945801077059982587241876292102523583964822176758376666809839425770527240850743979277578784868292411705113259156065888022433705116805126418449465332386642716686445273117762136190699909524514294858224991047231958169446011965333352390388589557351105424821317546834619641087707339082158717220407049509438692000698488565836372257371236642357894623887989661133149419007954177440667243640949268850399890508357218413528835088140263253401060862025569605328689321840852975398891697884643321682878257606108373275400770054855463599304446509699839875300797899658362152590309228757811654148655985153071446863113378658244626228636817987986977002841576103327268382431014066435562824991901057808075329446686934357641590242206767566805955306166971813150407930664000737522984661296546897338763223704682096951858660759553416870198097190880950017845053046289378546379795746169464977755542796732772602381749911189640767979545623658391570005845364219633533374691704972440354415892792638123308503653120020011079737563703150072954481999903801399659257136796348484093140692228698777284038848155953153743050099740976909715317113481559945276183934281962001134444317699209577537635191641930302502584352397972536378456867867457402432310908726309627053816436660225771314404174739855801603870242962805336691953327659164106619732947161083467741668958862315274668453795377935776298199977267400420587257886519613524064138546953764465745594082082599149187312189779556932003706676562678477303656436447072871208492424924927824429457915097734508578742136621868528156004597685677601488586113842248580316038820502058591789256653205746728236911828519037405685683642778795971309450324650643096189366797323018330896312445013202787237292576546266105443746315038289259864512643544531401189953930348678115395275341854482036684676591449261167845735633609349880843365545235258237781218303127367108122012945678273628779062196849557961585789895955652315543671357099314861732653328733691804274201365813537446910685305068090385046503111539382978857776658395146609526743699334588720182591852962216764304166995035947901518674467553605111213232881255323596968897792225015014351337931511641908195892407341040402929862099106961112576558175064956469006931545332448953764750317051236647449911530900445339500830322461827570728084161803199723196656632510590814061308831163437117299088963587721122196141366613348267478496414184594376650312271060660543723235063356913922032109484627396329415588081940300139691689247218221643312175273521244020550972478407383274451347488801887931654611477246651037264638228926188032209975966001536848596428507696710969074002821922004205865278882308878365915858903781093891556705434770530937666916336704967163606410713099105041710977714811110271294110601986709988288181503733857681612834615375545993174457104901436309329517270471777608246082876784738029020110611726724947782185550297300717002649502017198765666352097210722445407028622606794926974388692818278499559991236161833590045934843956761134422686000431367907045393359339691821047243391205522382058434002739790686801315939448609891240789839461566647049613426313815828727741687631505354457706594761252871284324106923203709021760424462334038935694809823477045384593571496607790770781485622118318289909484138664130674199213037541096602040277800678572028082871420624560989225357565986509885184445966948861276001190721543118762844280050073864785883628898541439058646151240358183881027114328333294094188222348404091628497281257795426544475396695799676343356748455569829866206096608981266212630045735938599564490349732484046931439321672743602101453102201168303493349396361044010195490681277344370824359613920097307141651194487891761237827855774597553256874802094668417858562860321141818943612091557879842684078680443695148636436014514926482534912064172702358261158545950290126642906038202159062933892276414836554536697549035901781590506061026205723367587260669824511206157684224679743612408219929092005508321721234319340155228489172575979194610269258277710843053773557219797384885469965071264624371887183351509274839654571131855053956944148758679868005688812710246129022981596091039884517691487792906918399105781315728792611991968243835429288409067932120030803979739639281283600661318631315724998350716045596441995760018359120873797173297273896507487308088608041459744758778623511073592281591983358474793905175291823684934508854985052165787802999081862193603853422869559489870313044624264029591902258710793827867697291918877112545114336911286569283284157526587044867393715236185413641130029972388908403298077982484987457086745414702566260013037471031252343649840948702184032585869685183039493015436821410078557242798883305821801196760990986174226436600756220335519056998790172287569159939374592334737191917512895188839568356083748992520542926493612286464947893504179986321065695780778276649520734198993763960482233538346397103037846483583274137376374215339512893679106440071598462613616744577177374649969666532224215214045337621614430583586503497424812751452853364616882120497856336969769876062785184790305915544928193783247105691854362463298027191349129220056843494012343380179251718662188783266387111851111349582261397168617472124418498215571131556853442557418111274523263796399706976803417098092841455769586041733699272946116053451904594619675064159791264782426069589356852253582785142729503916751219731998751480413716467966428151936679342087105937062749615209448989170691191279093136019994295201891928125148351059558257605811619195521325917786968643403932785435381911610323850125452194730531968523888191709918966532857900664809470524285001044927526283984409796162594444913463775188359642937900916384262306514916609392490285099539720429898733687775259440484307702039432911850353597336364333492321432391778736346580606423350102568305738688081755451529076314573356775654391777077268677242593578798110004829875480936826096421212626871736521888957071611117078809202840817773943631680802772537013128238525165009146868524478629815478571217965943921960247564851255602027848362434485223645490709766693457997965180296284275825210407720671057745257383880251500253372550170365944534085730076738110670481608135972131591001866687022663439389277058552340267082169929145547669139264106810253758395522032694556838908722196416451612573759129103783270800366666061484779488393184770277588912470141247501679649923421156301072575428382514551203747669814139058566396084078834274150476396435077466980302336362591828902688721420811911208656543463867213692929163270660440047934873174506613038437828998716034708841497539191317640050760498859483119549059514748196581611676108619608644420621152472698298016996276231287391203445519375515693296651412895549193698835223363857844376160099703354318654448148829996813666320216678443227211412747479592883551286468577204211701053463866032876078835621772895005802547305352094333591701183108648504171084851243517852179295652582928612932300183897200679695007640240961978931145996051627236857741770662805384534930286671374328255403485635326886203892643634452898709127566961554776131080540416292959581656940174933783783091011528834286064926792659806617237736219159305227278392533260531324004564667090452706736388911003808759521281885514270220148530133961077031318561328021870730007101027029114394732309834552152725323886627829556160158148127262588424045796412806500937631498584099689582694462616188148692607023015046789451144690113579493956868531428835003339901500607234846342936043884011309077190636457830249503412926563806393519098094287305888577064335326907327800111123874762741132230954953490504683158810834140240802599293486293167081133817561658410085809930898405430120535820256147465855054948122535401296420540880523521991130815188581476802493871452584233866671992299058256993971758203273617301702173565342266350272464929797529906169281729952241727044607987753110466088522774593684348216331936221115325433705671686472689228902106821072129998445990512501041159884188002460638458515740452433385409168584351188404121236262613470943028415561173498330933054561384945211709116305522319027970480695351036426475373794332969792867679188447940434108883751205664389037153380722889159963858957898701240001242296155949352563346479039784204205008224583420159713708782044355451717218745642043966806807077763767517503315599858704420313126933147681627727103815442866629399192805179292069234471335882585109136801320614520230240690444920989950418360510918082577781730824175010582579909640700791867594823617909506690858390649947507099276859338673832736975745946025377476841731593447997712738047417772530730588253168967743908894455682502977835035410121479340455033288603016825031648760894227435716936376471096093989020700252260408759227008718165264214400608732983794805473375697587146417784315144637665251478203455616457823393459860881240333929683793003062676604279271370911839951078401298645045941741744484407342049056167536411098935512835219515394286798258850840451005461665989061712014670635855987007098482816305852630670759309952183995055937917748423703624425645368626049915679873133561108492921846528769637970229020543053480315178718489280901896151797478852347729025463663585842176552013469625198640267665666780071476239314320918474801382565288918162620546581880959158008820434015331658193142939218649675538984917701283513177838090266532994242039657239326023956630724996150985541413318106713980765616138206384844235451088391834104576048635459141226952656453783790843943330911763585676705728270179418608342521931700611842969137530589473922678631118735304957199448000291898555493157049997830116756642582653318713128514175360024160717466250463730536842529207227604229228032623692551188249473678103041609010059747971931750027463228144733961964698195326299236235497602431260726118718582949367384708071280209267483508107729275850565484564736001585227432216792287658249111856574778329159060154762566867610611353406296103362530483957901945533590673167322880649416407570515134998146539571302063363472289357568368975425104847402155638739928874509985538976318814326890358135717765564346924318503275929659588845792344736704578206251464806173979651619037940270944556694867482363190571025565587593870835055463546690353928412866142671222164175798519890398902298574748569356593139909582132425983927244799419569288063639964096477298221399904615970254591926235791678267269390712279766250533261927309440807558963193917462964985492949293742039885078753032640938446679603054888615934142246328674718292826056706688600484424020429874607998392863127254531641730031681073410671151102375362158032473457750641818690190717599512947310343345933711659842208413466959650894546690120715560646348246152378620210806461458622673973245037119844171270150042665303206292243152365748232885713197949492701907070983746734887099818456286711003829276224422368020897047560515576990113598996830672916168438269614009835520101008249905189335251951988414457233657957276553777499054129406932526118389687350858014112148730160590829557372314469255013964240591846612531649376875523730685964581891698805108476981423218210431090802570526282546647954160934680167820921059981068158466141270633198624066735589170910658865335211520557263054803866821685386397660479787029900617372943074437171648672277143951565199048432788337168111895135365060374526003750428804831669946206164172506746024391791310937771010814877171928906194094376302259568513929761700364184515865987602223696672036179423782186986890021278954484632372962608738477028186589417089833204894535360358518707845625257020732928096482747053119582162610682433790059173225851682576990554130422531737906177834563532169193041167054701918913990397420335265479423328424551194646243129894031241629820232409268575666935578997959536731704893411152929514214949841357790528112337923257809801953133457546874757118316747947672154501230653885368683063106539180397302871038717137276317919272912044209140855008737932974309719348251090794951141048593659319237869853203820184902685185952529221268961497591611599954144147034951015590120905830559813960442772909145557285529890577619727355815502658277096897991830166062107088538696794974445697633451849272215798709639035833749804743821400982120317103985490941857386867664852989137369424736631865476489195722692966703087639308094238114114400330983806978281440066274054539391302847222953912317711421102730308159098047205881069490028426277112435430315309645927230913464518279493844208026198553146735103640164289145424322568711032340064029795259696047378240574737131792937017287209055645152137373879814902766287512981662431889357179936862370563749489830144227381880770334725779101159294305676552495358814232952319784594938400783486794417124360911840404715513210026927280036636889522274978863075624768413359517175155603149078775571279688821005056977347917111678594310589993401074645211439833521069028801023534435851062936351645756596186620191242229267399846896375021206143240741628274957334563945571895446578277649630396467883686544697088554963696840974238014589545482402609984042331293379695736977127369613134256025810829539634606901732323408193316048156259444877976951289781711140137535720550426067132946386676214178531331123707837914024270782849444323486423199005910315110794278296742183211916184852252173960290236833272586131806592307023101879095240935177518104849713462137939212555554941466613643257894148984206956029411236576291334747240430684851488435815164970841323442705685297811706068882768780661703238034318107816055571994574744824147219960815238741561942298811965931332963210265621061829608535613357105807404269240821866959545675996428812895430324913240948483690399658441447614904133963378299844787391981826787420821167436874561760182252495917245721556643721894719134906520235202566665946100190692766651393011475541469745009340910476256593795818870344003090802875765676547458533356707823991459520009117565760568628292066281113949086128643867577705458855736538505856159290687146768697949421385186029373269077557090977512322543909757611249742218846653435178889358601304133471270046381900819153836412014661293558638337572822440482400716612090138891429546442935412870434192257471117773495556794418239177213278143951817675691974252648025450613136015038955724382666319564148661399112087167663680423022031188233317796358569327084259759191759244955993314051599179060248398728004435566989630724631659811757312426381116533956168441984360266082347788339415119964304388962648466709740312984036998638116935357725867423075026797570592430501500563629829325711435849606989695292114073397785346082527022164888861983405016690583923497217933925845850667617811514841730194717250838501862998412253733166138602840367762442170074037198107920043808180664883237941020168274134907948167366053494990525287953096963286955695779573069479753097073338620836698567055473759205735872284279524427756300142577224739240303551775566090108783749920656843022764623714353923836855057217432716244865517830772272835112991123616929656527002993795149833338406200153015298297690960361506892887609517222947196213695731675743896303361641052102830857150761952791565757617742136740497396197580864791048761382632838808442910839515027530433655054640594201318166148722166085954315892528881973292217717799428436313662198535999037454974093599395575372518186070554419684391315222346724154645124063663510873151304378142549168389830011906516426876235765167107801293833663595684290120602826153315457891475584095256949117096072931678058127116977891645442327813504916411595318872638663800112528697621869784250392717428200425560287320459525265335324048242492655724655438840008091298971247600905588524849634923226107455896537225414683647034891775942983469129900302466231484132034789973062978808554334664140076531683911017886359222934173481792202209268548875134477716246740858426927378349096863989304590057733333724694140424328347392260537701696510789825946290557589039421983802402413400415610106132350060615347508259129964598370876408573741602969637281728083201420725920013454036037248767553461209827540175800706416869511223596773677260055902374330838656793899525768442971468828774840727570989547663370129386624517891952575930574695599514752382843751787374375218546652980027408543733914068744917778276020956957469666192857284703494301553336999998567262710630425674143287443187927568118095881208674325967252205837796209507311453021283175156102200200532584169330422269703565491356867656497884839767107265241063190630341816290858743341307916771446425253593970277971338013372444491116641068419669527494742409633295748862533771875377884042310915999257189854431539991304261172848045949406770245251826821234899138658781905777227765738492138128082452722096664180967059263653657780221462081433212482071939989267654006437639837715059964077903583277488029058218106346062230337562206681058496196671208250582813919178385564399955030496670791712116815081340314923801522125467136779579637543198209227377465423364200252623529759087311525663779285952395962958917437921603618871978116321702302602627821497034669120575078457368943679504008009381846286413183506408909210396837596041171854812762925668158084258961751920015182827355162333250079731954380911870310454096637256109778878302353490807288167999095525887175075052491359066829595269419838298238726067187463632895479604604249131732453862184187250692133374015993632464106633824153423419472300809455245148292490451912527839461137604268682360066863834415090191235313472564262813933147331446909097920414233720865237380229214256685533930141683403044766075329074103860556390063703159231446928394393779388403707414719076446826412292889528457712329718765031039301253375107686115359673072698408908647398454768023449246976004565845425230897610571320929946330411212459338374163653722901411831902399950857250880825865622267644807151801383226132034613717490465936108350818441983683388508298207385202884860061410546121755336638448533559268364498217356121845157245909635652990707934284209750345889686429452082265534758051827836523834710917673675824240277310912864102216575834267084601187160753604307465560010276745255087269049631153606754559109465741493937538782094356318433921321976590102617780677470427551065490836552780147630871884769679725395282158788039125096108016464987910425598737365194001850342452681048244288214142737712900617481624918729021827873818512150274659491682159434382399435662721442886957294358920016707209601951903363994437623074445606536391563744177164515361613697292637213122089294279907179321989094288575360156681162546047911484762298138894556188094171148850915969251450454180545446144812191094582621304549054814641660484558582592242354011763281126114966937935763282895803139781050454175253279334997995246312163301625079918349318299943592312894837577511769521579605552404987361818470516174317525592862111095414374681783820574554325432783256322230664421957409150453437386640942572876486386331825170240463113041969213082642705195476875237025359219112796869647012714568045653343922409879137726974359059652660347667076256760969393369199188914153014991629505508982551235623913649384807399841454641837587523486476063047565661203922055353782605376169756379440546107831929126478575909825940486618716592358965341066937128959295966860166451383237591693033644741512926585436971184640560972585450204624448829431447138419613273628078938922242777299026033989159558614100201497211936117581189484357173986706523741391005704312943972252511475773642162601976750884655290622850785183605064894076108179613796151226523272492442443061658873845688790040076735197570579778962280607942191659332765501905515155752851570028160594027290829725905123210134249929159848830901058734844207479125542378980126623731019452146432219318487690473451529087843187029702327209763692984447472056918255660163405084206980391992153323766734347445689121374149804549631469812840642887864899062349980423491012238422615994916475198990526629472599072683392138994723860632395173516955710532276146142610135313057105458901541185383795388135323958065498896837594715744553914102062752636214285770069069897319311135289592284053332612665771226285640110343953456893119653796878155488046520056717197362819605962972655153931973209080817907970618683192614974437852915897080288962468552174429096940838656943893542476520700912353081582575880569650964605219104013225521495200275599653519272318193538232461592140059217057804382977557997656547629362420901087053617143539490959212599011859031823989787133774485862877165072267251856273417853174011299116258834061538463298041863797828755001174730644365095021464528351806570654960324103581264544533305547062670173683210567029470453219350338621457953781318389306502704701300347001720463474115768459799935953699154232940985082465348699330157688782517776822145120186124989308477213697145768707896023054100768805644428298546518634494323507682754150917041857269228433129644924816390961304826880713076752670894219965044966451372718409062295949283103124480814831499770699958512064531673268423673580170207719997002275409845980465461265582424932931787534986389200328264413555698350850428038482396940197478839513579926391204136411956163985136048373593697225501029172666965829647310793369472435445635777516012610538269456865111040674806742095449308097669286583491214285696303055299007541742831308471384171311586233955526159700928536638458537276268781625657971540988095727947270869290801198766964121480579964732789191503262835683016966936217056895792333096610063136979962159705201781395402373696660541319234442497777919267106885457308769113481692447851492418605946979626418143114172613638259632625593029939834199670835944761808732204821367313456039065421687610084873919927886184113007292668710988004482265818799770461468779723887464247139579965712011953875988294159899699140958594540925725358253757911992082434158390578235193995194915073427780747024223157484323917599892900384878380907467646583056198098743981895025739059431711219568492424660912724668965244462404295283247898525693366637370630077078787773257529098344841322750487186434637518055149536865442462594559526403173327556335268014817856274966168847145176913645903902467212360188733445078565261919348606698650612380072224946497672208970692992910130997209523257026364740333355578351671150860079494820795863582013792413650574972406053671457033990288500014861433360264053791631503974619215330444853885852795503731873218759333811826294646490321272986138687352363349327927889276985012557515623164161862556662777749184858898440875136623494140267878776985874170682408273645425250295613537221168783822394021950641830914606614177616555516344014968403870964659081204331904250813183516391473880148270611194289333284097844899904361389714168453607915337224999861079976859660437569035727187549254536240822333591669427369793953075226156065735183565634928468175818153014690691321324599652257185716017879913623467541008791792202923000852409201703219173080048800389116416009158615915814319556990295357192377089642745143635833816636144333515239244223555508202950596617139511721509098951341743196521650969894289785547179612219487254740238556360295574134393657239571699042337669444133229809896645382967531510719845202113907159724553684162935432688689182614274889655174121341612366080823479794054662986451286990852481809618779519030377132532207319567444634265160835292251148086783631394453452745810928148269432750671707248305120128294181028005770197029686969615194861517127592250492752654609539881763193229272059436481390486912521166216772066497500867142864353693800615521977264343022701916194072990791294141670589252063521262904471678580314231675704503968322993475092107779471071372669308901474674410693354362263932215443158496574979350742593739609513938112238292138953439831777409838129409704780209622367820486408869428688636770929650962003368651709939672513266912124488255629628757189787198379404178315084822426072849300113138152222589701841388501807326350400982217668433965415474092975674787937801168778336940531096046865484947505734012212227019973235622997422231783436563487682816442115880889218795581414932815353513142899443800465245245383510962693918593656196302452087893529119212777423548115368725295716031477757560057120254220756410758151391958076846300580746418272524710031490553236100776298438308767078466721719347099721296608886192221751324217541706438725419031965466506097639610387460414495595592863262996984242247117087747215677901394038469571854355370849685582018416033313763086951942620011538193433818376067537351336320693757935496408406183496765489600207821856906637187524054269554095156285619020282091557190937733877080928893915146901784398920175256019960460359044943867294731633608380208262033216831339583393279823828378632104124898068066444741566801485450166304175769002038776445642509567265444948698662483426510015354297648369291586351656279299525651516876214947490596636569618739103216790777950856931196929071627358831494759892042226522580556055553421827537311501151260472281536461041603428156335275559387438071936272075237321420845358573083722599505811368165310531796385412387933959055529916401336349735953515229688999873563372385880156339974305247268474017411355513283892138020315559687954748295713510387708164829921487114227136322232687526154073658236687621951871698597028296838482356402921962652856679909580804414175744470549498269005224409191170943938341147515105662640688973076838604223500567690638714518981843855059293868714631508867267375184030256197812790006399141438779106415446737506586449923175738491427618156705650859485818120931999700379380577984111150963749721973121452772066402687523538552995924549935516824675643623481587477982530560134387558633222176831936509344520863191347287455826409732063394822932021809642787864328328169381752100429436056784484751977501683529941366403875498470153870834541220727410784428915769173547695626373997927621584735747299502775471461759292977866720462770324151428021108025567739989137812524914114348162044476300743151917257611585566687565080864158492822540447607155780297383645147393547357680394373509780137084048144066853726651920823744633938789620387915454331296241000040907567272712948352253403117931811534636763787803401364125503227148010102720800695707139058319112054893151991698703698842413763230932308481650648251227550316132482512270789315516632508553681676880396569445291097937031879037824952894294479744898809173288991253139690047666319871867297464264503424806237119611153557006730221457369121906089934673481936058381543820224030673068514797860324881493645014300849466657770262264236140873619782448379988849510663602737825524821739623409238223542404279471643949035361547984407958108678279276197817112656455274420547339132716365916233873828620060773862937526125835527889609708531154373276606787610285581182513112370410629880216907377168198120830336055709477863835181681016629662611101382975002057574897092084412111539544323655451984253278143596997624185036623046340402624524789469359750372620232334679493273462971811206927328322434449882686860754540415350674465234211670472051402770854061491090881112116642470900465193972831359641654550354054265155214589156205555550896800224276852059628357297591665519434404506927877830449501156815766632637626461308590173877420565017751915544566980151500708137512152181734795197972558198829257925046986983741034992606851767472132444972206774295700072714541161547878462425214445903926469633429414597044909679182117634926865061669799748601245174100858479562677727645417961072002477373782618960176016482940246611946540549541654078592888464680848865961062109949551470917175264670541061116082576269568241709980654695604914593894408449825100184791031714761855232714794110031881392904745827174280740281667227321063958916625713334517304540981148119903894301812487239981947966852913094310273665982941398287856441452487386729263424860390344092386538196152820621939196957937173195347771194427297911472651714248235916250475636914314845347312096469988087474818648702278681824403855936634692812825441885229140073409695508900561801065730411163479756962532004003953256302823731669327651263211940782323593581763242188649389458290424279235431406229248144929223403839577589824042315744032211181199068909091590886191787950144348791942312224991105775151915696806515978136103505820727707269570738119685920947686142836249217111189614854833624645700622648272042290703563476403472871281283418198352673617022734695381185083601666195893601077575215042716534202727587763281121593518390706608221454825085109437242473108668182157068967529811078161026538980025030018448675724467964420529535616258936477072655997329562867749507889809634107903517073559727399611275263388459627530771257682527301888438537883636097553300436860379660163059555328215191688334051661265129175188927812685607586823777206488682415897214904177375522119198406334509745022284308989087470026750219162956890805450482827134467174984832502882986644533149277268296114764879439599142878028644611891779432115536149563904211144690854279962305232237780723343870730268765396506169305016553706120229407135494671685468351534496191566456858155992612357928547533311803224376291344753978413735683980821118412683461550841711284090191645001106992663939833564349285536400077349943361352247145450210420418191412794340084460390630463844641499362875097759593553232277512070498576085745199017998008484087743951724377680810510429122570146312587668671230001943386606504976479117425109754856790626055261845974463826693455589274203809364697067815150182199160826285892608639001184670412143991831362982900860749558143308307122350688735843303027071983176678826365501806673364600588227690404977237384042066044434291608590361154792575295494072724132909133751553153778508298419702748471231449389611965826582974515134811480119237621028361044943295972637563707701199736190753640039100382713302224777020463637599316424433581650655961231735664164655970004268497198839600478654600033898468353800564922659206342804003029350555231151143859308010381087704251732130124040923602623711336456084108456866921118483319233374360801789271453811996695578089537648123288027976830934118208677132888861829765818393193027678575342676821950318055731422424942126803267880635417284420602253731690582367092745177195705276344737720348243552761080049476776162014959122195043584556972965953245766123638319382268085950566548700379498071672327043171867316934154827463198316977364084630051082294476706044808485844815519259841010462608854513849877721587724400072125724477316198908430272948404066087979819068831352121008980305628727354985210854269078354904824596954882790451941781927560451452958580926863078264624420689859211859961124255641150074131947315922173877126811349168588803692206655205150402103493719763139500079563653303299621823516742901951636376403539004825757571740060500817026191293892948467916304136246215842208268323285673041876807106866596858884661537498570780094065512020374817931623546711478858371358936598161815446957538042409273640408318994839304253313522189022396870676912866652318326023439043043602831569203162203593817381739519860918835898243819794247154152072139188253341388298300384559919205070921427881424165278589464849063024259126807087703992153659138292743227004230189840604894151064971122823218304838072082293576661716392829619288822312707744043018004787292953730943239775366061637353129471787110074366740512154167875518469737350457588768249205729184334196904806677686367793870035164778550275235140008221900460758516273262065816186644823407766549651231736757765365952961077803028153935451110403936526776404764550738364099161566682648634701237446718988998586433185466715336060927271168953423832863179497204726538843730437920135926400745834660173525932588298154933009056195249582094371145509962370678366387545829711440566139536610022944848254107818215942615228588946955101030156715720378887168085579726219118850614182646187623725273845427186138790915303184301338193775762475352991106798238909001999764580131677703044674649070703116693305038058775248695826161959030915470319556114123223751379393521468796166747082559866559003533208563514989697124227380673021575864281097546401025188382391043110103183080930014321086616732759686745114564642976000241140569390797617507045194078188266530759195341781865807320698192773094843016084279442110029340408830625358177301324600946744494899287492691719101606250438861932584975231333537415046281838479413167601425826738256200669191101615339886096341360311895968544782793856701772585686412614422066282300246018747791730229217631519993040079250284576848169606920160556067523841530505942772162489383622232830650995549319697652684613167431381080999259490245499501993315245233696525285243045678678706467286747662955207232699053139353321633151444175385822681307518921987862771420679105592051388406430062932333684482109769508498500261242399482240491182320596225535154594794251398875395741868039830607595525481419964381014055779184092626723154215173148149740630336410715034968859015198591556942061098310454353168783644754129528440951277759202299849143825024547597718528467851585013914938105162414380440508871485566472919893895402867705084777279390759580648609355330807496789350886994477389767003280431591157323820256669085622824869161426702540226698558725295821864583632250104551656073318461350368496957097623152263012540093291904888861333475748665869157870171554891781471297720326005338494752600227374855742651697074033674607960776469440484958355414240230614131539821219319967952900756960840726593474959901263688968611023438234214610894903446157888309174121988278917775024504633738714010839037006462783563336976181417219668439858857953638270621792021807249114249591079822581701167598931244385397511760872076554080492731544990928926426422290837450246668376617746651814215129393658613750207476504738925844784813241942111485493616718459451507968384958262368888273153084390004378143653685514773636366882477649841810652843533481363652726784195302965869748168780706062290618013671595932468188949444241699622909349513463098932103536424441852478606025929743964060426847773209881779045653374444149688878536389879034203854153074854180722950684929944669625990627768174293708299575801926611379280747076119019029123552385967128167276130434744513578203022699042406965254341991629280194745165110804665009541206551191721244879315558561646710416993286010758769168876581369112345635919647199114398229203368503414880786475310302265191817986763746055881587341445738185371081978449632803119091918984451761379242868753314391913378575323860252253502869573347141152704730696766326475966145592380799543005338461424693925885149694638796626524355350184659370229245288009392353802625186235565725707629983792553109022594572211309813595377747267723962947098310601908593965993236827845327210942336551124468408771615045948745386899663606050774688987178865868445331343631752145035729506347579626813286510758298580141223120413829850196663855761513683022733024186704002990448423995068098569458050307443028509913500542320413794016702079846714950284353922437290421146040919586718832019418515987755445688246773937332480087481346564610139530928342733456464534735225679587923043565829827076401896531232655666471475553652291703446403780155994474614929860704760762965253861982374299485978602915983394161934421405549808537814050376380467180114526282339372830468462901223707953653350982781213392463310002398522497571247091299921356921710000740830543093072511218596811388900841453719019226230642186174652837392474423027662852865245108371746324848386547873777076348632583147260419905652734998638176740615301309161091990612359341775693648996455411103159801639592465297370406650469534856436487972355357879632925233705077281374037252280768860101720478575341397138031088823103289852170200619790982287553552314380988261959479247715762725242848216037938993648225350884717548078521481886263357898107020401249879745869937529803650893282323523244636454032615083081695268561235565831480730049053706810647910898009630790752084853443516228094448500768254982084529881542634034070703388026159917950168296691552612565745000344386776514076152875605777552674304849505339815721711175442616345443313994390926455894552505118131696865383384924214884034574244013164324292908606197464090348007706291173745693717715724575354923886018969827511010164772867550784629142050552064848130384645354104244078887644397706955337200663240286783779155977444328484268545520417533213895622338750576498839125743817487375436504766955813662736443972382029824064414934120825242623114796586981088792215379346161447847192391110637297447987228224979589848065830547732013586960403819215703973512632321000973741298556991072813276780945204168781099517349924474990525361273402860114600523848918449785376464737984420900261313239487857015719373124401590391415367061306136819291525360717096979989334591123780807089999015509205291513080857612074188413541130239174918738180096351879321332948293104375672724234311650856344447598182808488854383578418821819765630871115494802525969451199705299173504719249622352671560391686556122698464442258251969484403240431412027031269190721061362094015135469178224239926318299638560713743194355765463155759645837291908427372008295047949627906981133612671102626538622331295305064416242875902172058492527695616584695123153516250919137752620052779237946518040943183130479308678366744669859342435491930580017996068406826472465372142430442658780926394808187208153574494909491267469100528611782345804190747873429060460333665270170811966569691533470278074197226426496342146882083203765697136816926636886994974095979186494195085037260569510590016278972267023230374724807921507069616195617088461904838379060843444450641123684954835741366071004388357233544246595818894178029259669348700682419838653568104512390152195035726448024517346996556425318327480951824419327475302293060753271238260964222495340991925471295490399327893883394227809444182972615535754807290140698459847278589753452130520404327130216750205567879359069349145720450704790852267586066130104600274483402703668669391115558543549711771792794895466325727764228702044923756739520749412645609536410399039047049132524245033051158180148232744798314344383160613811267390217589745840914550307367057455223551474039573182983733593439605198606925907907607205829258104102601373138941820891878770823544020612099960601460119801389309570318626367758580008623153712855296405129571396411762341785349155488959606676128064900743548946559496366305739307059494928781956932832399140259003705490762143255438784271197942477077694136581914612192053019397156723182468785179226774598682556910157345235924961861829413893989590480605220712517802494707728832490327542819242471948554243373222535835337476221284094208081081981133289490703897730593154013959555136423581776651333780535158010678078209162241472348118342013635067974576619870219098607415519747927111276401460223898361883023616574301737686625320959723163315065664217063568102861266654692274050499291293815228900532328349678051305452330430600453663317046545313461700479157145528876981471784036454485491637202627098983088975212987736284404059420495831687222756228003456618652269424152119784875386663933609826064758177928897602808496430206079200761755655884118900319096080075587332288121307514456699600603651263077294073893536964490481557912749351135752407737249862063097615765960194814328350285643500971145679009349214507417852250611111925315164112119198615219290738172900677664561769543717363998018742243624517441300415441458695894099022365902521039238673403213425312386491255326469131963761159468831973603878585579633390403286865853546139646991038726534022133448602613945881761102573253617986738322227613446753706481233532034640488383026692398491513416218205900481326029659478065979307716757519231296404111319727955013791723453503994922231941472535520060959007761756878414794542960449428297151539870848339403390005900719146529929292820428840323147653705253607314043612439911127740711507497122021903369084373970595511244910033353750998067244034075347455328791244465586979475662509828527344131237545234395995023673475488870325714190657803238533725652437899525795165866491288817653105968739015101854538939035959980438744195242076864028070186649966156968303395618803622196441009501464049166217108667503782590930752449237143337378157220282864151413505588961707330615870890558577997514835035906736757967985642833364402303896342092077217761209263749499055538623398827231193939824348851678410410140932060596705813513921292492799025501627008447873333842370965184362376096629383002652614740525165731461490844983884204406183216812673857080699207410540052250334718754705822849713302365834807189477722149536893533658364489181723620019448860719424111105121450762958736400615297215782161760016856671699967484508423793144039177712892863553159803799411267118170449873977128866580274197488169599410208532435494304736344117485297463727099471127744394972974571635974851904300493256486324860263643860700300888512441337748587541733180927621154150228829644525529289012426829647801071778131131631474555962245154688129004979513585602884944728594963455846516433474082132166716545181233007839589837532612237124864218217715153468688880768554979847183129429484090113787641987113886814356575689242608618003241525136914026049961750310842489569811516415310679603245515545322547015932235562103928900731202100797936113059496273712152859237285206275673190028973791940099213155278469059209180317539492231267372947741591099380668512798109176023101857129141848047261885347037990308292928876187145103990652681155383839752575215728237359922041322219493868479571492157453645670262047701516882946845763420762970009371050512169580134187282814951166398667508821255611087751868704864664966763687482672652326704686027722463821319161177151104557134989596001954107404470929497212039396400420832097412365445339867884038112834745657419881233074612453161763647561159250191094502445818650148499898228322761323095086222744713854143075281300395788248708702346279553404223983673905306260100338426638080940767545378361193946426816757603958461484381307566286478547683629940040689048128758793608663082543731969540640383811288840551002503643052170731284476239235305322159184170418585032038642447449106168043377517420177689425859271767125544096488742345031700341272286847304536129209328925357396802802648811732003674550537579316241876221050418091273549977299117456243139232558075486233202967642263275097392979694416786569888006312196772450081222008490402401220668010149267756520069352837662997798237189003720091011279821429286310288140616849175943343894098852810930331739583637518198443369127816290809403893982177546943982202196792019897387600929033724450952512927972652391256692193884635056159161157399641415949819161882480383865305961246586388959237797188257680538710206559198654463537873903312443612120509386608543865412200129794350686438668915723705652387410200940778047776946312187938706824817877793984869988665057426401083491809478584938658007640260863144784604185234030141411505699180962660640384749765118461814617326830533803436192949834563386357112472537564127646547416421459187924966689996997851015741572026541842702195410093107550293329674094107521693636336203062723009856662683204113111677374020604246724380351036376810831128034646859801676237255591952401116856114586945344051468158145506376885592716097324893840134726362161035669818027492970354181950210249774933271033587443591069228433835146613699870020992806029844456472222336574109617904767842426992205475909567915863788330494449238152987979406735798760641998437876845820577931305985573616748519284030867432706282915475224523748261202299157424635340252181764013053149072292237290380464098636474251357738037554431005443378787974279865104120730852289386934827958188965961966496688357836492781960272492657519436928471066991864291794223987279394827211048597096150854635524631444940290446111950160309148844705784924001873613378840521656434313022061187449574680877913129377829709854303528811311167594059798099497540104493853773633748833649495808777443446560674850802093352415972183414701664749983260255923241855963879732676343027374535302702490248908680647239786932607478140132212255212651253291515719776097568087448992132151578351772053370562809358248126349057118783086541426860432559167474388845431585464602385622980674173305596054519267534704506397257470789068649926945832634571217048132602546960450985490056988504031059875526372929355407633105645641566374543057735701459294520717616680248040607902823977692397765084244856319811476962830108480921774301647923141679956688311441915527281660774226172880120153869111249828863270992322246360321414431583605622013571419329205219074307025851226208959643206186329137269638829187382002076550021040873849585078586175982751752395733885504087395476878095199693813582646020139201710026415958773393353307274316508254121651487759817092533823653611643559172762912788570861863549088308429722092314599381561196337817470237497907255643943205946007572794302797017172299295337431620668092783412450339637816245527049827822119246336675548043927322027205678615684382259336280873010484693940783703160016322903466014506322676456253933945107787646490499463500188940987909195964817346257085426418457945500304481169395834467754734639786825889522241086566894704059390675112619849966142842352478592027409208629303433863321619569695341326694121823203124725220289185889992244107776134654380611438496770599410142830641979560184955140844748195904326061331614297050975483042976597919774265352938270223766015095857639907092274712810284445139561148044185936694690741995345129273628118704426166210416528561193760305109716008041176033354229605270868300021870582105234975462280655749198677804353899022097496939098229711966098405121338166926974497227353952390932498675789071439751284950010213809198487060139816992545466580125599865371813228299180440446918371102508818009602341943708114637380062792872175264915898670629777807750555204133019660908261429770855865748840112343129847961939451442515163377457585096783594274136064195440040043396136752706187531404254756809501892816107838942670109372929253842300814870734824106089392460226436096278679150198879231023048733467905819357320816069463187970384783101602438962192228125213238946879638832002991057541947159830992527386107188805101623493572690239895674349170289907174819961187502684897003701988709853658255292575840187403824422779430869694037969331911668063477771370454751043897256943920773731671828484287394426490937415259659147943349142773639322192416533508710700776797049493061412108383503041247236863887514502323386380799268674951203411618745559725778775975708572029907452664795534400855485302712890112736495450618532716008332026832395747569045389656238533157240262798916796868648575662402951095156135922555420856795362834180825384422602039106076295005050244170500716688318256239688046446111023507032608162964035301243528143794027104645250002642970835142092783937745458024325883738310793573262408656440725934682672727668147780396134783632756676706994197453797630444123021550718414005106920353978502777947674285197035778269690204776525079845881727466188008478458400253606773721672604055182976442633834650474712167181083661844771434726061998215990055141469750396418025901050829577378457188457127569189135328503069725429065463411376915515163680832183422827127141246869880761437649378197783060480551208668096033051074892741430074147676430108989553088455992059080792588959469790815407644657523111261585649618046252311323743232956141022079570665487688923169855721978224291305861719479277700612459335868844662501777114081213771422758766924164611259674167840520971108653810475613234218517572419879277996821596776125077006667497899617185189556029471894781654935674771509838247264646583517895285004367076228758280624397405051650362277988040369964248552634295087683011867108451720137747669142725405141119384623163509303748778715395063797371259543743898408444494339855306340435562237825660675083610612901856449797917238554400593725236308758610068556538200009700294265218020338687333789963721701632631804350811741242375733410370360745792851138617674203905388727923270921569561568251980195905510895645941391769103333244184447164998242302675108647419765250032206524501721810469701290841899926688614928943597082595380466186243283050513719033811802207752338587627715076383106221678808803767869384979571292731060247510206061774128439502438536774860630253491103081933617346723551320760263960704154048194733148961976051477813057031050574260291546947373901452316519993913209658138441627491287162816853052335903248544726997419835604958703767778219946575842345435935554414309783727210277687802384948985811947585501703770443545954728111054533088469842155492712933639592626523914753906673143320464571101301073627571898181633339482121888852370619091482741459276480982198045003207011159933319154639851386216720928432030477764256385891222167488542700030026518689109850609964217258262363672458782977942826236585196735556505187444156774107453394108339651401415632979929376532480290555828923481126455337057649670420140711442711847489185123113099871787422444215473087648793952140898196480045261403020275240624195388082076208962475891081910835339787946044643429985257506767599807158282382299773244719189781733042265143020021349621738123653641978081965366833879299862690015780690467483325944107516037188792527974822344054285837424460629707576861440713712442289326790895501246038612805520983211288455447787888945786928832877683820469661091503175647761706050309417704627191729218227397740245618398761756267376397553936352035092322966765228970486075917561893669878589406987145959285632095469426702449127374164957917389020219000480612511026768393788168579715102371375300677997965207100548320387575982957604017714387525346637582263543480135421122828925934065820747227400349074039916534136900291749959651913576992182517718639444037477949453411087852846546216146390277969055183729955953842702773768390521266504410716590667878127424951846802458089349346044139297795672626179985531089806108271889225768936218137880407964690408290363462281441248908897487535600451034835217794845280947039128610700335403113867184900281309038715782293424097842661780763465997962025757955533610468874465525832528189899787447740283324447238589830333644003626295933435076133591174293317763167588652504703028253560057531164724507673561874912070327352229656644292102057771610831159962634039706368748450328066183610262013056840785436825055536259975040084831258369398028239410780133269889059223734353299726977206470494279951918044755094663470253280185059722700117969650174750632958443025386307117811440263299848803153911243870115650651244345334810631761962772496103680851948515344794265626972392803780346441720688433591136993076151643952946672491847622080234105317403409058144353521682488389040998749281328996967524489551428407677700805415777504282304514294084025865774231377442833884524470125463364652629300959331746894421601255435602881211133499260521926985271890151199554394274021432147050611604755435463091346696590462337684091381325377888245790426867986234230518795271619574890153470075482928719611630303481385188726718378144199752232508192654193411409921671950849368020719705084595436078082133106039298565489132605405882431250309571256355760220441443598816550587649822563087179492820656248333832855486981943440901406305824738128686695854857707514429564930730271068481062148878721350402529839775718966517027733413686099324643243163729411864731624888749455529511288606481062201091798454428771483470446283138079560424006789802625687023442130348934791660969517075156499427286226652660525065696657449393056391024441072024589579185734041420922493404429688024963969592361615952969588447147356682471113000890783705460677855256705333349662026204177104439669318703041263599029522776631693380239597862296026674508422123568693617298364195726664281096206471779461114641655747216898601795739218297343663350888179354526529318335927407034732925877673221570555845530464768476437380234443229244369327940941718455800023183769521904459083773059514674799272767107736966544264062904226814568535323121783019596342827678730146185368673810127308256501118396514878666432764781166104250654999832829430495012308133010454841281147076647624243100742822079507003518971912090912153833995592289632975842802471235960457616663077150603719286194557367699997237428952397535772052223044809474505971916616123579308199417222120328469944366331904106901500150440930716427324032875793858855960733207372466645953491741708172542353287015177730343974316496235436470172152136001472661684636448512998889823725629937677405308328811303507437490628396012471129507450081410231758565108793596098671751053423950419529448894903666718250944784702174939796646145062107543408888427431541425597739107877711016239376540538621188311098895697650300980519314081371611952905675188265100761375633098019582358041687188476906629419222330522119560452436349899371339255191584739572657188607548936699545772019826920719344709982451702974269701610569725796926070498325343771758669571559935195078342037950876336989559681752988816468337345499283079162237218656293280755040001543590396249562011167479477332712875553190510125768280263942301484662358886931917288078352176277597373142594570018895032961085706845654238982427015937272395780743820121993588869772977109446841315293264774173122473285434595956580847118652605282347573018121465978870726155719771272662825076825831427146968312606358763713478022240864075360429668439033674688206597816449067369244322105690089249790083137533915933117638568006133446603996343903811141907125581390710702935473927974996730538579966688837493257773604844648310599514137432524818263674000415237017693052175182524234022626941870517847540372655415729703788034959931236359466986865028060281789023528955854215921780628098293804552377259687321138913010056776151059023801766562846700350841239580043759251079498828618714629946431395205087067503162647058282463646909476348210564827413365339933618809046248721612240599028544738545232167090626315059997100601282549365615196626163695948634493251113384798560216522044337418047082418835399094028671376481188278286309491497201140119312592485204152687806720850531487948096894114431080890015930357599072215173439855794106048466794143970421085501865389174460149638691378074301206273693750422765152301915591253326719622022396490370539092601532825881920505200851953484613589456043115960977579178668610066337912854487934420243394047886371326680785398893937299840660378364833041688878881272263185092113798505437174324784686054009629112281613214419557330451220623991951312540186193360781908719430668373967324436854242672081633207802277338970144144578212185882304588871702087004478383917900079710003299191384793858333237733851615824842912028235189829471604773251565686565139639502562551193876135343999311208469612109404390262799245464358051407561070501831358361760030447219028573839481248824369344334650783536218964442545477552912316088499870927497269645218719813171009815539431312151638762335122721104473673089784799087584027910558802250291351234413816631712631372591610460542722412415515671860004335628205398885599349912339824136559381320972200187132827829258234713203694793877418079265878451563882924332266350983757188150484512430586731880243152574022137845566973611475567269656264285605294023486710922564761002977607603779949561058180426958125880795159596900299897289654797809501113885041131433172591128749306411866973444615641936054693797155811337393047635063309130504170017810173225064341612307990610426544502642756443901038730139824981137861619906897894548746191361542892694997333529859133369301196258099850085217063734692514633767119128600939233637088422097738695301741094285906962024344200445098313748927624618172204833318311774519457484069334093111646314962134489064919306408611189929620825896857917449870347456095168176654726098352199399969189376498840030674720459473864357533143963121659676326905625260846464724112323444168436050523100825094358561372354789916536513036029859238547303750879259010398135268764097974742119736259837111615756056666301281803411672884523567305970732828874361159834300450321030980597972922039849380046025176475690626113875109693081475802042099794239784141756309709280212507225207103298602889908358350911218814964074918582778409714176724256639424397639370037773865523615123197267202948468765574377153055087790635974486225656364850999469266367201978691825221913046102400034133975322297585880666017668731068135861550881288044342074959710497399259879966021376272095824428657647419903666926943559877665012948326765635039166300347870990748056685146728128399057637550118570695017926299014399191130813988188266686921036997353600976824149263937995032490674359589527183583142474017471991586393148905264500760369812881457038783536300062413155730706042210926642308365358762624362471981505783816831904837257023122391530822325419480029291337662102018552454882472252425738728113494499307329476574417742234301729860004533788660972499005785563321067708015614781322707551353726621379192270838509875093108037378545900157276955605567595322113568694456467948988925892908483194063984973727680878320490265169803257147823971323798564220020735668773242616781367126322054150610024800425645812234817940476410999446627983812845063513842248997403543579691386404709066294853203047435424705654294650755761711740918869655364193494402166602046848066665700312324727151386951110402670622847537767446525690764880901720160589928206034845338953594777071402980613296874756812291571144684789086819205787519672949059477693578473204708671156734616004276033938608164379087930617320666334137518368379528343083774680027944953919659476930893811735800962245903080097668642019334941866205450996565840752142035510883823016510677565534148618406303532030343253869457559940765051354776423332614882838288382223502943855628568788895694055030144204157527427174901121860638735094310328794666185888363555147472257584654113391986429682346312791812723983083940685137439471204615310706802418363368233434692858210366866328344613970948953943172954303116714229509713445618593294411873738640074629683561119254071935804018144415710811661369343962162074102881041734289107212908988268185237623485547678873011135398524303420077970577243861251818085493169690087069198159930686587948382670833579800066695354288056091790333186154711752410502108437956903746075328690654100578809220332885019846725611251254998892467978031783852616486292306194130492014836540724341938978249986506781732456848831572919636309367770688602855428692055887756451513981338271731301198587857379773392001035820497935563356052850363581827825987266197054370393886942370558560418656283309394299851598243140067397436911230103142517533405359684275136303448504429499071961394419394833562671259680903550999408939701447984782591633972837150166557731365227739601016754152980641399572318449052962997634042337473666261985367208910876503712666042022433991982953629549291997825669518538239411791745167350067043418294260725213589483223219362760762434329190145193747873416704163860765308512452886504567081932765415134112401185537185936220406409288109453245736125658169152724738969577507891085398350077106686364845638524112214989060265839574088114190350523363159955478355533316041669108050615681632689461181265580828490728822245737748989016651323284645241712414064578210653811736993008194649653304572579147984150187942782262790491565158054987357782822267220797602439350876564425839125194591660644430640731893875842247923130196288395889648436910904403736356935344899851209822548123792693488020422987538771355351535183215818270761132769771223473341568479886553406421996693503651987831842089970197714334573757382018966661380395215997661041761055231505211373294322962110107926119067015522242601241230026520403959894475419685278234353595793757078791964713577582754750873860053157737705168057484585543277578145851280033194823961514813135475163094627917062836069561651923580423515027139086296258283821322399368455458434721071385956478139066148016731113469901972663637683756198023856092039882757574820157313277483857608219825860114214474853052501794205802514023322058865344040507017440825714811281245301677457170452544955477163258021479552867282519183986888194955798720556457216511455877406010085272593430572764303932724376424876897259719595725670125023881473124912302504574296472965063907696545240557725692336249988051668519694661328865885926083147970931987164371591102922256834214316325188425873104665776832018753747037338961591240837590188441416069113459866570180036523921146906070323779932695304646854669870465446139689489723891378648291465950368919000269286922994458820743373366505547212698287746246300773123549579086822734103620301076919626263518129134252207148741154907393370938886871294105771344756670507533018164948718550657173543419908258923044184441519966455773827236688465977839063343406600172428971213961710688011223412434439769206415772863264630859802716132103213466877929155893985020838158157266624668796999569612232257697327816335529639830028516849998772136237796188836062685163633377086686942431129269916219964176321481404477852029886920587071624288963653005821285507912465168114978645106727101012954599428716506266723374442240835910235134618059271063777572660999063454633335149798616256960832088053745564396626852587772270085446191356514321299228624387539672685590580207640500853624422802588977951750579954910099560477455879566401986748733035549673522231209372167479077674013832335921034114730682339445991974805961596730426592870937009502875527321650974962102006751176080570082221203860020470488802999795802505229668083177564811325382639609187655395238094142810830182942390763706361093923198202485278852904743370157236906617042728994075609084377548812632026257305594116141690293010416563990444048654686196276248792382700017619479440770198320221080983149283554484576550346509248088251764770943719924086262811311142246206834153973538061331537413870300774206557031043303632075652558190362333542483550906906750036475164462905486816803155458181992972900697318494369759539967339120879143211851650567923260639859507033826518823142423298545316429477527670611132133911280787523828327259813900355706726634623376394302038553503838067854141159646443893432773799370880238274860521272197928304561191617611416027850652759619364020690042409612732992925211228001709601676791479783588745667661972292864657310766466643613104744087595895296798220519486258397047191097566774236204344616153348038327796818396562242022475953171239208916525005776489235345043304606877344515944455223831503724467913464924349646191228776554205077943538620022757392633929912572373402386721776698465105726611224972634916636128760059654587656759501964692290989557950154526452156286598093191573466055821497650551067734061697469062210934497617756532683477876140896747291114637080960265005652557239428558564969981565612170229424557628421920799911244817718867094407510954131402063653018537669272827008042394026218686729133404441641636675524629804597625167314892841207554209253131959115148152669801419113569939619847148213732434302521703675051035962071085029577964091350479300519652835866366706537762813648684579430617047565316636400233931136403281437840936190272252018472374732729449165914733937952503453167156433919978219597704378502027739058179947616096102266321763115891722632746284822203292353055919644937446734677762831596195466488137354423820646094726905789516597454489660134916219722896242906877359804096782627028559909216257752858005944201003926980028234288406880139685314405128268163776493789648664586742021603667141976616815728144458687172213515917041697425794535914570125317301127610411566279140059987252016981270531807826749077144004565484576068891280643673625289214639914115624711849486474301563822464756425794036168587635314234517289499433726257925126166381025426198048769897469144137061464093120634821639727660809870456986548110201328503911098211598065960015286628640720741013503787239941218562504318473862005114901602212554953248598730067564572657673872842622364957772836197869849679789674602690244381703653497379701957416612646572193244851438278365601552201717099407897245757542365426155244913255309243916270721281122513957566578555952124663975157100034312146886254866269135537613725959190851251357102173482471227275568974359097222772355027658766162817836682606611559515968219431092215394131729690592347896012646800264211478161194487935639537228837492715644080599129882165927738271223439976338505059479088973052420305361465043624841543402130185783888536564832050145189681823155540202918974537132646796299542798183386792749578618309512928161207690600418457618153114945628128401910165407380561125107484073621653521129274275277579962609944957834662401756142907028613607721012571291727046220042513949118178495904251080533734711299026496085296761388378645003662210367184305515841061179545742132532412779642577215775943142963421045692598608425050159445708725119120003169353055876368668997400281669077854231388826455447524034325119437930387827410370436211325062081481244248972785654914279882738575272934670060811895629724267251546629184833011752384906623358044262175662863501769743550331453256438280668545568902297687058772654757201923642305946020294603626198350596825504995087989538064481939921729114246520934569089571983880703194429443884631558673185493598933269351344637907031429620146260553868110517700009212557095371316278334680329352144680422384098818429495048447740355942944709462817776414195887945368619271160727443401656742372041255679439328643877780850255097853250812240985878752285903251185933588859207154184620584333286724747947799914216668457838104928167531889659146279429080158165299073019373790533465841970901183179964373726683487418820704856780573082236837869570632743109573242788351684263859937370791268709983429524837636518592338232416396633728731276769291546577415850029054809645354850547634168682334337235211078078931918316889288515944451140920467813222172695636936208178530629637959729878388324312591635859656463544367181375867979969510492103481822569405389218088516777202327319053926068180232441071086883894475496769589648431980521485210341537420243398624605044593512744943367829103538634246650364720762209268304086303437730594380141433939503834801587993979299667537006685484161045375367482397462015276367957153406814514774597896650194296653151454035443041626601082369051029055136481467315800851540552101574470825951533302970111396676340861180216389413024876117198013245080919376884618583097362817052877513937569487569219152724198177007499302397510223456779716938559348386051735573585758871663643514116781173475887017983812990479798302944302711835468205684061909602036716809398935795229145836214280056674436669221319914164424990951561317251315562588658445972357230229417572017494325685784101137526936460846354288150103210859451771983376782716356964012510738670704790784428017610374300217012099459075334209459425116047006232607260855216658696856162900520542273519166446555551471218925295846035256494485694648756084186311988287362860669863121401330518363631236955905068290606899118553081985504571491493298965147419292431774598757335638427925766171959200295036567873817886122905278344340834212207927517649678196409215417668522877785593854472804235058872342592571315013544244422662825212857541592267490118067355519334664566034455637243566700211154418101938847399926121198075117577623968319205420626209269421790547983825063749162702326867889351715951137833330601393387308368596702185884490974559052082714708908692710556491019187005224525609352987536494816924800796357072516324744189141642717641829769000477053360893872338548379115971304081776562492283019200757048356797898916439136591168125049776539776732744464358484495633318519240263421827638973364903322571493566037804761491668011307579017267239667372125578159557851790908631862180243391444076043950923914185410129318119778320667186436035526384777189374299112911207985887809255743510632652294318817527965956343576757245782163242956646230058025850984279793587707352207598739951923379648224967686593287709543969234304842466978465422340754779581222954665244731798938715216841680551783532692128446330311513049155560293832047993398279395577528785955292894889645789311805943060534220741852396182232917335347859044886820434247167932352417364182846405182548392297605546762246920561573301512469870796338615464119784756888279419738849782350470119861992978522753470719902923936268800376672216286668268312506436439667348498572996332616165874505935219699417025393600454535604900317145427083935657653857541727665021109162419184215944278465751773525236730704434194078384798401991360492060489493733313651622618861106733243966950423061844815394430568706144735129062683598056573566335385168034781714340338483744653079013223054162429799288317185465359894356036195382893338871853832201997760210903004619584297821875515454088369815010530254913239083356504036392973781693288968344765261468634523836547204830517808967155787547486463244085855669608378266209932208216967511058079952021049789125292656766187800142675758947377936000410623518253657000977644229214649858102903494210894065069853765535176137335831077832808011559163281141979841195847915316939019108707587972330396875522135676328779833825868886960475888533181877989874958234374851652963799594860540421081008954363567342285967604649873395509256433744079955489079322694424434060310797134341059893841397093760560273546732387711484449771510626437734443457093695105109939398924654199394159514398454408222718455301670811137388292485606196704619635525060546243526384241520688286471364634376019294201813652934285737160538430528369318757669318679409079071001430851926066086020997588079946087741979886122851323051680191719646303013867364261071102614682020279594556362083633571419991616780235396119784242217766242516330948520769627056130335898839186265897142191282178309231724945498241498517887078157406575877745062759527659113883721142249850685792226746093915284356074683488856978259029588276826505391436567624276472199591034016570739277714325498390760528739375188070810834280248246248588713015256615689287934397139396000684549197270115169078017631319984984000822892346519718692892321136747281473290723121271509502620681443051420369265177300934931062630153786911511407009306452492911906226305075723764774753203650790793027978644735083142848439581791756189843592514496419395437465044280000266194240653721523870857241702407944636729347753949949215326548147305400067588934931691631781090792558586588030653768104104960378494229478501569766204287437755436975171132541428939160688239435520797916037789227707399528944529123235047032165173080871807389681212178156768519110127208506335105190862306046334941666099513440261420192859711750016584840982892205747607646636649890165178210071844090544037984618481782641550566810154939092494083864508628747563109029254328537106275454072755831163149676082879091308918322191044244148663355942063909635276239318480215161861736014639653943748131098913694807536805649379559727182497055969086097371639833395662062703919705734758764966842226823775600929585778371582073320793998034720984534800543857566499436513248208058287802661705921795865341563164935006095044061021069301763862957947679358336881446822629552601851007656939982525389249085668243704544000201955154126774113400878276268514599179614099403185252650685790126798421949023840867188182860566028861050600047887761706385806426996387017979612221485296126993066355578235128049226979788058799608514455722693039140097858120767707679282747442567067219837230700057861511687753723953896543455577680944604269943028273588145433455278457818614878421874962051044729864425949968401903602503242197237573008318313215019342819166322004192074123915661503467539704679006035412625814748421315250049049830888205531445247194143885534925512917748970554128146018733921240840548593838915197115951349322366456366862524401333679310652718547387018008605264437680257363388121880653949542511303022213969077265221752508491120047696770185241120858224711740280803087599952334240462581339024226472431607746041042456596202626540291069530704958529861306801844758589857544976886176488116658406677502274234180010055361790398023933524866937276121693121354751736516481680169719118282322801485973573873263075919240899459502837361373767187617066505306810961314541513030228221964144655609610636205972792004023649906972737081656169398786791358311698341027354605509980600767889140847776534529793612771140971590648456103903027929075074138276291235188096558054607538031778094875442002923249250658610775961445499415605400047482620438980101671294472033595566200850014064436432135508902665400744975833651611259849528885531204837782141484966638562300221077251940922491153131050992663797645469191133800995055033129233763320378047289984387599794826418716168243842327576057311590553422045630784818132262833846735008800830029486085663772244240885380649855346482065902957047142634859254143571699704408338456582751052714846016547740481850057079317118359968502228109887350300824073285345438682558941171728885902912822767367833566862379143355698117753997167699874127227620223695924426256136883989945489417885581647376834613459705157628623885959070945175088319167696268556392253940236213868068142732148149089109654075018489982089278834122302672565639900581942097011959676944449805936768346597644787395255491047662189445990605781800074840284657333984746424014837423536326211060795495500513848768602782864562846930526482946127936611245968700404783422066926263784792970145666879950717836512107200913161869015386160645827801820005814637341103816960800845260312075710092893135745147894495216732328520122322442666552164428213516091311291716134232297513626616292997864748843218858633355817298716848624574359507660434163413521073066293211136851333714588830347391275691119293806565234656635451860655468394424453847457309116894915018592616758084198427778445990058515218326212434599601444488593432185267383851325555690252402299864511002108006218398603375372445130942311441688016237781960105877471560616616525494099344327357884834209751181863877235345324682294133179045402190542074908568645820471165667831272190177629858257208620982364756313846564477394356106411309557007829938295638292602498084643885888412248729651806181268491075282564521092063138738735543483378436653161352361676644963429877952985318961903687039529680812169047148610257027002882638923668008839635417072040712786381250060528412856682103859298414446846824858385224849604284271003954802313811724616416427364396600368650535897553387928917472004941400619335977872438853478711019261003787289832435843843321706282495511335960417084736870862639737156507545735796959893890671038379078518109384135369546402021472409511672393612987222009658450228592990805592506521712313235841756286912001753267353631738960260035717507604448277480515720335827809275622436014123700522921866734192120037078581123099548963287753453578994904931573644971789320501247332164391236056155516634659269229894755865547485364915869452651556789491921362864771636535453474537475900421213308065227133296293074759236325311757894239646714627345501583089640996688145918655387007466430880599500789426204746690015771671788542293825113448115696150885618862390962584776468980916001126822828795637714477124070494667842281183514109813859423878572768663594138217356517556159109834914773375099456171023377018831968413096176693338906942422443197566877229251018444137030512397870576788029758062462974438898822475812855397053720103677061233461743874598806183299878665877765593654586281909029452047479610939975320310760064690700693436661408816465134335611815608272484330161324958880842470524985117793236519723796914765136952009723535005487808025213488536750112283200061774298541680513234461471453316445402728138552739825698958537922354643172035951041348845918471253059141417134251350869353530345281270289309566895928820420358079400324053895862038465522311668673269835970632466712232827046188760667819454421358094294279310666870131581198259058884831889769000777596685930072473619861829027321503899347982726563271717594955321425632452329964597804069001177810761942885756750844471176573478731826263048649763378784576968762279239379517516599530899648915833609233474237554346532568298045252918845387487921086412791279815090022191849014985466629997481796027813877306471136156375851550667349544418559372562907573758251711860002527797800420940028686486986192689204421359509463910372963981490006044174187536829797729900058155861490924086952148459215342937523737740132893122715290177766104609206355781137063077982666221310702000182231551296207273599594990053628740878871833961312721912179662085057583189381729159409238033937042393639028725229556477128700031446280526894442162474285096389666772942363520997496157265852567324590598037470240207752394752235931177308426994643044089018138260513072967405848469545860996329605118384754373861543402837373539646332133679034311552196727681610720491996169241756044537269813301892953527382146823798975812184303406645420380007760878445708232329834924708103640178527024270361238206699382817105478129101258424032126624482055737762859675080442889340815166851547710195672039844255839742581762910187637172831651505436207817302919288810184798958555252061930823914857718415409564255286849504542449833031444492441199408431230413629524692621445046298232482239650514296358072012665053478231195299388022580161241187132961206683067977941281064102140184886662865991867361979156848245416269312877504614710990899584203311995580522667790347802340417854842431869049823911596338629538497139288170601102631525566000798137221163334527684128895380749575592624005591407892502211352120201078884264942838367064611547366894839758852578016159420212653028698051724970973919974590005152290380605485536931734773554692629887090589221063779971314126351392407845740308455199791280551344808439307131032969845283268873551915319734260669695758019768013636152954250825086143212556591117979927893877816638506687219145472513633255508977811173840211767841893186050845365991851267607742264208432664945951619157526316158289524439868791628998735004793189658025483772377056962464407541566511898179171768514688911338015755559748749381062792389497739075143998347797370905995106266750903268486777526767960322767382921252759932983252118426468421431200737400855242335674136321321836494783642683001920408739614525352534144615268638796003636825553826775529402902956972925268886218806155832128058891617969642089539779251760678877721553157580432538411944165666392966821907230243974424357520714139609125200384086173900647868672033822108500502035370586483919025908973140198185176051127267518594358734047086791540362697847061363155704304451016202676061423187821492748696914260166958368801223669642327454249199790484103469828266646069796220188662914940708431739186895341386084174410040201619402651264580095125679835579905530139025002526500236820759139084299626781892858183357472401024520073701417521560451699326709933767680930382901264807823293108239051833697919491086240778741036684203825013457939142029591109453935892935203428549651861667086283720383754198449102558465688586716410896945879069778152052376635307123798626827747183073774176161013628870642310180729120735881604772167801732020144172255123682476683986901168388801010930676316655970831663965644763766762605042517226485260599393601687564921600995329867090227549946569288531906112044126167060525531409569429923879744353518251898941412979724504655453556204354816467499573292937298359793094922733024895879036635087496961903750257925675627490070757740793993407606531451783017152735587135488052340642310973415509259825656640824055888398095027230253120107103324814485043746606926497986613621858990181777509516445430358687014190715377860092084028673864761828778612100518439610064321037948338852437421172968781761107725360773881533790106429214480307642673327693366041874300176269328981479888813702358042486154777894062496273686435112181598393914966056737733497534932591619631172734252054549754801231555948174116466364758358993775352865221736689523335945294303761724077666646697817618605385148330315139847004826763995430435132862201481512506447156239314703780731489856879903779086841266719643859637033550315361012022015484527934977082323354993525509455335633317923732618710359627092040331373377483971422692549537580838348939701800324894822012901470814870164394496418357261673389089931298012174207516138527354828607530525621539752727381314477036589870715646579737696691043214528805382039602609422925647437035340283816631148486340393285403899965253113087539979990078760668074303999574502312638567954454536662423700945377850929282080839139707568504333489169399675100370204643247398451922512102457084013603167145243501862958282743755657337651749524602257882980852918311196503937562548140955357307674394559813398340453686956209578517898390932809655801778380293603875946275233039667910800908533776978691262453275803187738035810639503842568836119036585922056235588031986231305709934966563554669255938464632064743970874581334921847456078238100685370871742626908549317390980645170419117178129675078312958901886259684699946048177511894480729398987707772627478913387273595937433774362652620723951168054067403994031417035024740786749666391731201870911950986392261622368359008883969599197867573132295196482861676435769829599211800365968772442142275716667283616947050835277421020588850808531366249228151614086458102384904640385975451875338710160159338723559123005898669360256672839361651402446111546322467735106884009805653522166699100650058015846137905480963126780894278734522001052191214671122387824923656660632976138729474961773812916764270238242588314172070000933408927181521524158331423820813579986838454707717304299764274756596762058240264098569319718110851553201310512113176934859658470067783940628288823134426882499432371306098068108211150022524291108175695017862634886607712391488847976533387319441815812949859043150957934803200106534738255972166686798269720080587167364808748642379508695904252346818497466351751841528942403647339380079132333864564658090479718985075542220261269522958790380855081886015350542330991905587536372099396541171368451268683025235327933104582792896801420690146978748804465038633025554670824171063265985522725029601670641002628269360811984606047073936355843419663034365363091965420617353467683587855747757356756390273651639344130487774738028791749308266879990755043201104489784617590454000058932441793800886752312502337053179860726589398912116695220383570517212188474812878214102269903635838300074375494986392298840979061192066602835741887854463905334466179016950793868036307652806603180170008445459942766317045920933906808215005340587911670670080745166362676529144432054647033892188194163504293480414286154298258033754591748365328182205603492696364216427814008500790475598397144600060129095333153350591673318777094376658518226983214278137449102228960519558406705469541862855470240282714974040040416959503596076227935944608557593077850282280408295993854320492458909271038998319255797362124542078765789228215637874737834946259518169269846486210420294591006637454191915888682289711479324341083179730452816774649267549521711321844622523583305211638232659996810726346530065012468786834060734079401464173374176932108181369257379590039613916799138441287983429268767107297141733019012821992723345200813287156522871362948566398211297253835656587873457150548619919547987401942724579999483912968880760182996961877963281995071890017959868052164838866089718070154865910466636443197562409175836373562945132696862652357775310504101824320333345450864651004350114344751567951011178458427151617057215162573373668447846582524739354290164048041423113389925714871769759366246113194268464397089073101101629142603483708932489229743735033585986099254925177950569286452046870804744292460570018892777130395432078739026174384580348402460062230545402452771672546761984990319110616423926039118352779534253484080258268455206126229646367837655420503836320788643383679073906425804472174547635760965687307956193065747757707845184684380251964174476588633406432034365912785291068598161767038160458531959130616851453541018348882670474196361295972301921597041876549393751048871754702756459556221371667151894784711971959103213272944861345775313728747485910784346438526799371611652956059814938880060592483274733524880966946652610128621427594878146603394791331387948993427353271164689316572527018904562242588249193403357756960237859432837942014324011433555970685944410367890062034931410719409235340325516919257416268130327762906482873730916848216867500098549593703992435348362398600244468402579051675402135415058820478197982282609163776525054039626879626487994190644594425902737224444634952237061552946368823223346550735332454045841577688085703140234631923624056703337754968853249505902257116135703821356674777696699616112083218923175309464064298860865745100057301074580715656411532246298982750219114677583846513858306485212819310780245867903714998896320687355884790567059702228893547674501797983163240306302122787421735961426243976923376859322285755183253597973174621188898685207215696580347222251773964379748647468009435870826129362986287260535502923164367839112377136553445605789257273118687796567460414757248382387673968271494293174564940562014253276836775907353395368611272142463141156544046669023252901022653570548221197042219814344507063038609509063729717515739214273934322516024078298683866057633217942157118648986895055833280199037533104172739295178905014297007821359724512585969278460360161325579571077591092238311595035487070793834914973560673526403245698920317481976909691437118422081953504697904508346094821704275187175973990739881354740416549759300635258282291911162601362300930442341990798616446370697456380175087957893307435723057343990645070850501476714040726494503212838882062773857712306724137371104887352193684279578568449941410286931266628918346303524659014531296142933783878852309266593732854180208284080814557895027266535471785813808651106217140642282001385932284075513548091549758300106621864664117734877055847052695059217702758430676001069271431231202239353347007034521750329214328802977541855972094059362767254317310367622083845934890316953738945920183944997046493429911108063910812148360871059242114860327962736631226052451425335993193414404525293775058232005387490146088381317627655790460521315686852966033926112620910489727619591342683386652940091413382885142199567405576573448830399273455172606734594335400140218122463549120419213410320821259126230209711263902058866406733697197569434998245354515255708912043108839159324851528719553849796225871420921294017188269029364748699995151719185203383882699638592942439472308617302545525666128484233933933187325432603789243712580362010214704342593659727002415633200148620261572877680707724629665075149644949312302365973353249517599526476407054761375072364626263588722201680691285436991317734342080935605783724217947980569273980368281372333979585057726345603468594358826713077451055899113579000287620426595543433361342771913191414784417310367382857688623697414564966347837250837925540725720862463133034100906639155097861072613516385709321251557804747114604578498707783586541454026473692560376313428935877370777019155548912653733080419239550882568924258577042032591225704598433335342851074017147444109306305040730157547805897845033371879771556261013780229488890266033093215576229224939781016978327326270219790215484795687718396244713991859983488245828837746782936869671463889183983615666967346459453179662060936369069966266127034016127486293004648520518648339078164402494003718925871054226666575279586911838629513215818187094663229519250251220212825284425820753762389081599170777635161310210501972783402962958789477217059065048455067077381712646362449695939228705072755582631428261285839011819784341924477241144986717631077055031780038500484601167982755539382750360339537583724763875970109426590693151097146731596990597393445109231155130898973825640615461259463862977564164735979859396738680195388431900114087605199392837801303185130266697854745768858669055541852778216766595471183037447669817212235736841803116260027992805318859052883150383867415892171201304887515638251128656538403035338960221706312360096583709081063096256057513660045613228141957738998208071964652911791667528549793809928768165238218573328335134551221189435286708073366260192361167952418431570143047620902411968652258710028460498740313006125893280483753621954507855601918598880286321416486439453185582132228978859121436510540083206823550451878856460244175387449887985065845376175589892394427549924082938535642445558636870336776143594333668884663691048090328042190370332252479326517087088443960555379593031357350932631598792699118195833298433864623330556713711750623072043089490302272536611747337943515138992713078870979777440722617665719445059590203009281024889699864912327235605505428827806275525257402589613779183106671404023813363350826825486398961838151677248401642191119604793241737490354446783654195585861690088661860565024899197345574687553023283619911216520557925366140563610154110258569843331389470454522959490653164633017876448640432201588846077724066517899180893867985312193455172281150597887939257845542064703365686862468951618084544844808625533217976252470275860182713485026341979035373740802718873376071566300460459485687018974263211439777172566405493267619186847994322299117875608863161509205437355640750855886136789686338898790195884216007465756553225019501132877383587427594943368572938121842801479055106793133499389790247752790806594898477286471828171215431647382012946207256901163732166509681121623199118554484303471379346086897287707780153610585642883163406288140098726887411283309026744729604792945854316679509978278103616647302019417924722643161407254963819796593143093193911297572003885330583246479727748853881710838878383531818303155330365070123964456164165069148289233976950041637802144820233570886797470764913047378943914259115185907078436124080202243758977313075803082409283159806928715734327815744310355532315954804228417790728667031075758151650909878773136990948696979349832101891129702345761053101718384101824966873151697033861766874283977476093418172177933399087122650919022633512576600280815620866104891369035968833825707874531667801341065334306924292708050983195319352228764466346013709265925013790510441747646878418136843069646360910369351175495992073973744415630906403997903862481967956263473033158599791313644201188946307864482435760670688705771838159496116081416834084409182876708865802052974972885231500730782009385079894530797393582007508111899518948865771400760633241005524435017777376373867655730396156406173839995172258516403137314614263064474672902203189758315380659422061229466340279177890091420209895951301000352353263724309338009527938861468860522965880658649678472508957579982441470680264264824767137611022760605796107488317056864169538238374346028726502429892994223531345182567357715478745899513166016292345951286573569094020121630614169220086537487279784971268148241722343889759316156562769327266628320944219762452385841938768696359713040109421574129201001006623688234352450855239781159885668943830245316771398952237904939855274799338982287042772648174362299923136907241021853383892713672819510791295309520146802396831863244947844076675370355031025790917427872482869196515829906073863759211976339142150415066830122326641669564062785436229718943987613670859695891249394754966485290178680757249520603673252408317102983901314535846550201820570524728252129765366276160398245119379884144716097324486125133190372819793915021632521122526428523247490566734479987921651118483348142447105512386901493252343883195591510879203390549430978827850119393999335334257034583823353288408993635618987218738714555213103611155654716614560287716663061389255178090351113793428587374450077246575928717757155248023723913790618231222790617225909024679762073388564011935905173497999732019062358313530251960922616470124062630675255998543083690297610849560445422931506953850477060191165152991010061084155927425390437405831741027782174062204656907622688868531238028656811871330532746801963085389340230666587162781133833561252712342878550745315524077091366541537721862138936108476943227906759498885199174491939819293887211937360223295899647052463811975549745905117599236818083456313623285908944235966196993239312158754347276716663910963846188134914263551427916893989498451008284292176409000928973053101440697688887478544796285682816964461974819234594290315815280602016336170642110343875929685767425014509183846629124047571717829364572675499901678881310871462393219623236928131900667303568457372456770872255721715970012905606270414140471312456400346420815865300125072427482985071065896106957503235423882938352165887615054908377204875992897351839403560010301221410432566687245037605797608906234533366949305860067551891697810067400817929432256531505231469271961357690026277146051078135263967536828523245892781008691846236610658356155973946235308463073136505336529430314636212544449281341964155951683193544913760957906774376128142604454401518416690873168670067414366149742831872642205712859324733429368775990040360080707251825151699566955316058800351377460982294284602924164172181514489588984782466439667569399004206992483730211439948471141256375293097591643163543367421011675024296731665032216248861012924084974497285448956559187622951781546172944543883154161514409205263382003488528378400510298636171870729066331171540836382519955935004166694878853217801788123659464565213723150330441186413294231662362245573972096235771387670240125195360224122559301971056015535552821704308423622317356549199452493029990041102975769629885065061716847288280096855752087456587056780568440256746593925299210823059067354552590960766486804825298173099163338619045821914520487747379091469274565695087906803368902191809588329984139918043748675607913847909745311531720651312149583066004481133482285341447725372226507744849263282310554188653424827790974039213497871842082714176027023096979249801662322655937459550281120010476848837121186325724126297027358732930276492331521679724576495330783912151962143700164534253252751347574335097756145617278567090453532921067174146404273824223348134712782841062702395437912283203439138911923543648382808269649541179098788261484156848136809704970548129550034450584506640670915892597952349552625833882634715969012080007770020763658679377826448950220954677402276616951483491858431330873992888023299833338398999239958562813925950751120081431743319239995751158503580532299521948905119120504247128751574772289189908207977968147651516200981556726971060714154053272197576563056580213490797617752466216229084875167882270392654296062945771697307825856500662826769644366542454963165057441246950674583473503795805521841715570750857498679378659963606198278797122067369343277652729499024713394885045418666713210594141414826093561597522970248897936355549964894300158161977511236380213797151850957842311865700389864447441268576486968814858605930898254299271031854968007967655482132535554903492908389543528059845082950167298677846173134153236050316067382550800460820419243189679472446583473237135186824736317708134273336005571520724396827481843024482580600090876868714955431628336870971742587443764118822475770984157295223763530896380359018076576962184214610050829961903041827441742984304277768461205195977828158106864044391333119059202667147729582640272070971270299415296028322582429560831856785880720454376044807515463675039635984982182750780306163128537781713825096002778075953822811089781128233323073453470861995798945558620340295473085660861119514883115851508855234368172346201668971459428616177533437663039604869043203095099041971095633927998479112812626727855640713336981973317537123945685120300584648282299510764980826347290152640608172382991134724131669285650638375075367344983930628554792877654098922841334094209481190188998414054774071904790775864608003584513641720097197824483026996686891929165887833042564431106532016205699885043187987506380822079245277513854231683467925499446810960487757993441512747515661161813890249796678554242560827614355139449342579175960127812905015566571830631216794029939146657927441073184108400216990839474367026864494588515422805966631052138219480849101573869105732992087496772153421678752530106197275945581161009805457659952987646654181544389969849114142495188622023216617026161643630065377649515989428986125446958585533250264592143985646745374075870958067626813295160565196090491086415398733871017395915710410950693765429785801571683814327088539280799552143892809468309474830878448487895211369697876962768954413026486117413397710444831259688952779547462418030461707205533602228023922491151306010421360556193118137784383906576079704697414974028977764628399472193552036097907528523180964386524508492195508578633258429392125469484859781854789088002975760200521764244835142962236262208040814881824536210214329014454162772417451913409937551353757212860310140770586500066687522003386978931407415028952572028278391463273119328884400163957387755924958290969706164866859200387253850802366834511728368412786778474791179628413111893270692900424950644476066326038290461736201579509535884138053114652516352072220165824533032851723206044758021651804665095866626868231610163769973084421042177785959883548365765595522057889904068717365359011068728727149074803811400427765123011939495127816880350678011758835400464432486126647440104487800021312424832118712560357538669582310616269829603714322195313340771491222747179966970719834776630576476982011024981140668868112950256142202158241889217794516657282630864533438950656735799742659222437461686278160688052575015035960077543539139808441263182330773002730911606197859401819230489005083778456314275680286376769850661193503930985634862673665029081796936371865913733489044309988065144717350286392578035079390120829707381426683178793254279063749449513244341221254989748871134103755093358104434656897916017014385885812641594335336340185104064903276359688061546058632704697372572037407120246786392739830483856586959903701793221681303606126696808900606538331614254511308901675103347290551643288860787808531990937840431771853448789436840543876879720379365342455188286502810867161284282297705273600736472557172143855404164881013057915882880705945560396138318395324307568914909063977472654702967343403764060305844312032962122227555704917204167772487393363405658963884991421685854904243739069154180542930862191897351419008828066782283538579587491039026575895581367623672506764926555833415838087797119763061421066891649800660743694834352711967506723759227838896486591300504818938543848987806403844460642880033093963538279102609515899086922606022343269828422283549754509805589042490641650043207690307941305426648277736931679509413245513947443851502521442047042588091298825323310145301101268802531714418705450906360835087363501103879216304815902440777903982432336710484823393267890152833007115152155750078435209662552539360988965980667185843043310226878261545475178437369954198139551350365843784267976822721205589220990320590845685508498217664264609140782635733746469335780737099562755234210128207243747373420296057978062323876516300570201623772846374457989119382376263018668647735469105956367440377285507882913962598448107188765989156480790783477158470194349810838352735393454187695400089000200740662655027379006280874531841097924807162042567315618738966453629971417816774287993897441058727710851556765910445106872221401863359124321951121256211930267177734298231780926261839012040134600033377074707631768579105101647224880268614672957187866102151917721398485169984863605877443167388682989826568879869443466487387362622853420300345380264352839943117329806624736800892755859499032926612932484795931875548043225481871024099020810315039051219636114217972315829788955167971500436404986462505578175309188662539721152786269696943947010968657705992854667222174010574101435340048714253053327913688569747133624871039076218551557812214676113816929277299309831781045271892616077324313637532740681928182614669040122004720455156581167917260144540007671138373778153692083218327029499918851550429300725127596220349638096007052968019625274356466659827967279502622597869739744503682993362010435198786191059138784215934669259126402468769506699201573992201978428685456362373150838502531224206301611364834939413475837595775079952358854273250677309680397599945711057812328161311258408504803880130429214797973422805264693416332113798731767263203684305121396378965797142653951320797401296071046476354614433067824028193571545513098766583257438075245240148155562330835697297235607905493536745511641890400662329478793345052680106390028139297782129060191334111941779566090339377328266550751502424378700819996419231377612732036177918791885324620965258837384748743994459996431214864986298161497577478393393362423487839087364674159409154784299819675105002284605162325233988133180970060217251047231843267351376812652085894735069778623224555052921111876986728968378044046159380469749491377719277925247481511691504516083914514149887880786122380687967641866705464438052344441736161054845628776164372708308303076139837016428070308359886884935835539696253947901820514745210539676278447895171299774009570333344715549236571457904728597416606190123083682047832880954614688295131262438408480611246892855447961719615789594332192619556246053799631175861263601819123576622672443397794959320530970435913151670715397163300867866857552720046687226734438809731881791456219533327878060050961787601401006808761903860700856229856079704540657475132478915225369660806073119075266202096342051568965010891379540359118923943854770181829089192076644153269482754624775788769625447168008806459848472972605983134218364492570048114953198525661456874088984790391082705090944228019129853273345056364106770293883118918732416300165553421947786178987527882484036663485266614940071986182058647797055908683083526863954521453451621161050179278285515764008279674168310791005334400569311622302175967629725590354057096705188529171620209416216091034894695633299013925153725309527196338881844109648403885808313425960796387456988777844649310032590988841193048284714530107518220675056540846228887053757513077978270053657740880736078022698440418298672931583769180758582906011151280662302224731482657204094253553925044401034392931630306565064112607323195620058168864162831942913869725454648675952717557469639871507974950473859298400873177164566990376330049108101829439336372054203351555103675082834749133306779758409371665480800023372556769431119528748941025024730419888930328747585741713819400306100593580740485516332690034451596281787556102147060924250499480276736317515431651454836484148038445691286772122914407120433378907432482302255043585259884852850036014947385837479840805513896951219808369272674302227208682863418699371841450958263622417498783176248638698287378518343336800805119756072646744574649315412203044998633976812635097540341635686160472773807577845274172578784703496180621270067821307870990946638070988439857838074805229302096625570638416911478563362078805228095569416127057526813125249539700680114144171486644967648080062846197013658452876674418731088417109142891848187316229255453143500129582247629868899008048141512719644882908680132995356200675055614939486373266759072296771869995619627741433630668713998298723762478661023195223741479399909421617563257622242173393527525233969349184564728809669742054732867750353227349092721436050030435123909278279175970363077989872002773973675645897045440769947485149259164340349801889211518005469160089724596482087005497077265034524057485237001276919145226303963137314072622682710382386170456127991120541353413633700349038115711776771965400444812172339864574286219325170621693852924737838901728799922206529882368725291384292379840046358555811521814939160176058662064509209157305893787690280417132501095899508237116369551613773367558909313755355073498170425473202260177110943260313367839593353177433966770461605840574799214675984481245921293402387081125821694802793818398407693410294530086685716213243195294436671833294959987713312352255707814726197691869825169647026333778155973221756677391114451631075810840949522223038362493654595531167009075384516186302563211755838442897422487502575032233043252017319561619001061753939017942390850904595021726426337519202480541170711873898087795198926001002241720672886565660288325782060022130787399573982798297193718973729557673635968111436065999455480603079815692109282410281074655495619293364841389267538804342950608334746658946397462980506589737468314180682120757835945725957323170135902198566759060535909899472761691907632146590129040158086948973742009949683797888213107293787641525790037391785254651318715780517446701013444393981095894974723009982807344109540124570918557213261497728574708123313646440903587638364597850911042553227953519715939055702736277324622788964763412990047117153521228347464153486468950722214352812800736929534252506586468194006389714853687726337653938639952012038189311980078400093977191956358994138944444187110013706231311694943144399025918808691374892016537525120832939776133508930769984559283371525976688716296580968732299909267047939699835416832509641950798865660366557204593427024965475174431660088622436050437818467700120356844728872817748219787974522498331143222296355766914189338757639206688929764164693638899472040682935835549326027378940070098490957347456223292499428503132470184211791519878800155455727150078093560662528020414659030195729320218493164769383816395862405806104743322934674363847322370132272274242232266142511040280642717727586870074287493135498599744327424056514270159140956903199416505620366790164103048151268609655899025014533027085954084092663694543353734381049359131018663418471961635471637940859789317713551745845649277997602158901430928520409146461166626053831809685547427412435672526888765512956237771796339801168178730283402354190979928900095094523478941148622503351803150634183814467878993551331681307904457624576906499054291098717098494396544791642534067122114184814879733306180758694407650554517891921492626135942353383924948605188886690832738003790169296476608872489026891475913865218642019122213527729301211419125988640856632245392821181602973178469704680802617773714115446731919236015559193383447156493833698648165849287508187213373154639812980945390022063919313820308344246698203365817407472644303207155948433054697613138198225469165852419223979665444062560415388243742450291326822043908464703437718543586365093901267071482642026756185035305691017200688268838471899600793007160352509176154838638563869877412325344527674968461642204718265039280841114652662319678729932098499991154629311520139669805263519330116683921465866351992786403978309866701967743286226740904953266438734814761130548580370371310143845171541473835542759348772061347761461097518550598305596105660323935638080114180383892562635924962601033490127180473960063036164759750173787291181487491578087976720779788798150678009028667718935482766771554158493902674941356622588531400341417397257033430760267114688569297037138708036810481007715613413908875776613217112106004168255734910051643729479813418668077446173841451097460003146026986192123989817204890764556323015371951997087124350352733243618685808753290587617467803194778687223782821941363558568776812698171807593280378632509537683262319629686089717463078629599294815099271166537387231630534639517770762585196239039826514595249408351087044965034405507065254057314690288411410997717667304934485496601723445707704777804738943572045940387133169616086305748877308644789391249478177579757551126955195381519274363252100113264548765494992052098266270638534126124904471106783450504668815068767416521549052775859555980182824836658654339111391396860026883493412079581773943533369403072023266650592465411573719174571367730765182794777751457175406112614471926722421508098861906785180948873382620249545465168124966578497802495735651791352056120109615179895359039110030532966497657897199562603225879328731449198886269913726527031758147868121443230783969582150421036490958322143366963473052149876017353037431744042023961968162195463289858092776297539164287073465003377848861104098919999287374913994337266482957808020674737451697212956689724085317348668710081239967857081159211462295586837909989553598260510415807716295377640645151168570272855753251080592210239814861802513400196811992742752874773338774078238657401566140280005391256592582200597867429031042669741602441932577200793458621862866933220354965515017788653360976956877791663097220245223845975815907136029191470079358566673492078776171619485498929103286542272028090106910730785531452416333890128680781840667768520129636971438007371607092196027677470924780609554247361359344493292490277024274930393788185783357173744814246193907763832517320149794606618335742658758650616071225675345473949159554264366690578540909444142210163085365768859093421803919055901071004935109080281970526733108133967067103074889852792446411866104786702379263380575555430521633456249742212036584855917909676029414671089827867168832572502546086221582865535265871211645157604088381801774886657721545962967710992203990614532247659786732929394220008678071268875078798921273064699966655758583352974717409172439604908752800700932923220326760348400717868722883646549109312735159247918736420171452378945541971220680471896254849172084098269099480688788519587381317164636227093900472299218958900697637612429873680896659473952213284502946101829464762881321890660580208273959029909432962255920428704181959999562403507710346891522363280975228100430786582718649344267549565664123985905770043810612870827429752566123057276137994579605657732077055658607170513941334231470502242434282635107076347923291666228755465688315542052002708364570684077732675430725440692390246836482803746791858165701354745380178254296490654733611314286102658514700620646007203385571007463927495899014065429004827500261485235374235110877396361426064432815854838160909273697216699933498442822408117238552784695283830226132763600199452527410785078290820628577901557556529762200267186078362296938418509721628067433707841680568691482751723852002971220503227237120012940854445028818043708623647991259423947339531473361166053124286585783415696195097407408265041586933020840312639980983509105016387091327669901767429675059275493723588241461979281892189288890594180312348119511732769743332152259523996563612350165219114366512127714206886445004444633887467688938533243982291058643362917318800685456791620503278471402133932602605536109914810933397021000497196976462399005626923861548183665951690505239419464780213861248270459537027187590173534281542075904295748197620085067445790329758399507227101762306990977181903671889320022489645476368593019810387102904205404761440990181922564125697962208162376072263309135580453673575071790438291370662172718673265787027561221474997588592703038145138026298659880234981142063200411193704870119166068261831142286248247790329762437255798014031645481203536962931395823080565007130014314339419451318917442826296223985222533448343106384209173082559595609435309387943976330836949601091746497892834186939137097660714811843891885655472605052523923727692755489028331868141430707786068414943279544641766483863525061083304230532806073930436853420371035446288116509070530436511233482933836489210215611405335525607853993153418611676462979061275072671200483639787695832929804835920256703916262461691471720516909707289105384757439274447240282514535092814243020443456800816033688369319643572704645303527458758736174792232956309052442230888465321612864305085090214090197662943324984464164400204313306508015736737603539612022859160171067654923243864544773460625693184937382940409008248151279627113286865369457579010615883100989803132726637652640025134212193121063205431256202680497963921767863731473366687862842927545052947306533566113755790536716286454029778990941430859125393462909829845156245642040708315827545464554602513695283655298331740215837398148123536861768166227145835681455652173953332199310701944620825086044478712807302448701053251026012567656305794164035723138779174881162455336091266366841508120244020719502072807777056106844052109190401419262387083198466175184964785118807971350932069595015237235915135967705119106791336835246897910053481825227958627383790058534776358835988561899835699292898424999149872017761476273627039482721951132197337880331472439754626629582569700293234559898394867684199800492244837224389837639252549940020619344642701224255588930609970628395233201821196714014162978824619352028334836527198015382018368853600418993935188545855663212319003433664492154563053175838350690489699063065043751631025348216489329369390666197644926082983817792623063696929097982416581302706183317279601281720584668979881424157115851862390007684951205693960155050418763806045728310422292679555651456014997798064363312232622319745274850456177260104680803897628192120177250092574383585730589846279021742115895338676162194299217986798061898537957957307822670287975984796855157868877486759129732473284392706750606757115884157921666651716301562366448551288165669797695747687657277523975765342466145511530681635271422359447117827941631945808504139095107199591725953267942851959359984718621889913841482638603519580203349460092316475310282258306055684055374639290100926628635666938349014970674712049636092938040558207089487766891879324952344971449181920004201781925798824178942532223519031169081156151097893134928224451942188643580667788496729926373328668899171993058895474213846579711626965882895176521269614367956098351515840105916351525734514723211042586225468183511654483324680229256043829188008566558167055921660445348718756110427722165251958011212971304098816995445086471085567841848071012137181613355928378668884597829028478323764775242677628238935028666875314210556554125964726427726388773741175278603055878177249083158756009858137664537467012885652675475830773992072282871132492846892461628993646933014745323559357348588744127247531030499719707603263013942196375186593391902649515006333314895381791385657630704874961262527551293953911263300729607483913807397627850975808292160937493242560610687710300819834527318054965204935422901598778576718575431114920686426157791872516031898619520798743098132004520616217958605360885378290334667373757326344382256162739741535833970349908351072683069015467399179772559111292401425750492998099661598667777763828262025721656511699635796950423432243762558313280385882704786441341905671169575451194695645067772580687212851693712162471176559775669793374357386649124272260401662764990016870195014013000417347162063533852981094779262532353764300183301730739611274965886036079043323105394087406874829133091747293515750598296155613207317833360889356415572498290260988200900624797222645929955800248215413952703967136061258096927652115724510788318206528193752054612841061313568908605213674713173472276532827376651942262332046815897810139405794057734077750400746339347428814073337558390950815554161834119105735346627613866133191521247076347959080195478103158275187864659100628643122574864364203547903062998454482429317794420870045845734564375719571801263047438810039693538581189435353800122363873060007650758617420693073887626556681236677681850922039773688125993825606203272105616056764208745821037231161378258634334361995662075241940335813627795152981506839739215604982075575217294133908414449735059609432000467172741135290611567812881399613503921183194643779422419573581180406844697864262568813110985246322161145797995326100669721150195835649294229233611276167717369383235263549191055881906276093188081198985639073797135871242469755162891202750721957653002522086363875499669251877298596778795695043889371942945985096121322550701549669254635330244708509953686915907077969898766363085455092917167678951413806833004667396335823995184118081621161411527965861523003069811156837720121770257886205919026404398428807228252481631545103372818043070555214357530654221043648031641774390906702767604241467095682617331435352388950860107358945264979969061621793110873487615432246056687213026985939590203518322565010158810688589892435390025724809018525815493901987615861039208875813546530347925128307918377117647536391744179066002195210738614205640020811860904051814505287190306941942951161648542459451132385464970552688906715716265285499319021077999415336900413269254492990723548398125936335249301989007386911332769430948506246654718612761726653712125647077962355653631790376854654185667620796472867465234359314226048345869980549087579677551496657513990055470445050370101623819155667381091831162851551808112805311927514213845455150978899915538010346603444309342362653406309221275859935382104326909692207249718924613496975670080783174266964413805579915888416805005927636937072867107018675413585540074935051348410717546655963688164694338616244337701110401016633619177171455267176313264092463276359487460714216907148708759370008875209610899294148228990778051304408247456277608047718592203664612343653398904831656323005924490297843159496482945960027375199310388884210285440917338122326810479418416285574288582851038683494074011513758893850871094889543810544127780703265897110224990201953058632736162582548435171433177132386559853898398406637835940565295031510941012087096062393412403889921452891998697660599185545391575171093926594081921619060557330802739529637913718555270263668853195273680902989902172747151291347817988115961536160875958067021223459920602518788275809124085090868506529762876068216369635555909819591800196663338258607257658092305965901378423542691484100798565335807473969780749160448151920920597091729040117328868294706619847393103283764260971400032975152914492062398138634425037369233751082324153283142790657151256727930182775976704922458447540054506980246052783380215328868237074466990453091528485505070577336837845861582726426237516696721281850959449355357187154252999214766467047053073737210630112457754039800641750986300623395266330557737253908954163241760664964356406806071673906321247389362569347793776073780138761844427027974759106516692850915613733553089300633804469095056037814447867979399532803046421044813868459004247205355719453853923847780160373080702682356638911126828591443560794346589963783204692974249179310588663016433776771753659080962500383414571904237826193428051670645429918852538694924999004015982715254282007826845599562744181597047764174169065552281525077161654814045781356336816740649586771636923339752179146960928948344783004388485805310885988291006835859129025692323473213100054129649109447369653558332521924138612490998784631169584585925649086624724338426342282377782076241963842153045685855986711151864415811575764581921601067825994388057595641409312832733071372958059801402735714625692469469841571667543365894840718826202731849327349105537857692384337243869161677585211863629215356664788128255383761378948245057760452008084289004466800431054186513496772434569589919785564866205295678622331926748675470625790844997414862890884468973115138896642589485965378607382843477045919054059011906332730782322429458142151615361076141905471598753654033145776573398888554072878233852160850934820851909702006888394160761080930343799183184106750288878185378082852564822288395824967582616976599763540442042062477077330402642565926425924036551719812873078176786632093642400534242596296829925342278393650622229519758622703563027047387077091957072313611863144170648612427517252637042685116967078266618212542213088143401760119842794344629307969569093621013036047805909706965236855253181203854442404573984283373056920023972924353571935602355765882947502345304140421054428543092533057565963564291179921169897250125915800341627018788496189983786388327807779204806039394901194465489933284384846454424307802307732756981049226047391134328220352750415588209585327247186277864842677536934718787202122888265549048694604276836964068321346651827184673004690773318326113766230172700108038023892578954452750521390139658017246905807062024639496104526768898279622543439268665343922058482442964019077197898174522305079695237473711422219568997082350082174334635719028118993473479864113794920888637033758420883540143487934663426825166943438986901331898295395708285727364547230136701024872377243374699074523304538520369310334312017036529551347172914293135850409854678083963900668747931671916832548952497871710418472763455335438715803120754974228543714001875164132648849643035404617424360463725321930507478803221194407482927780928950873915607524392226256267131145201156230829053794588282492578531753637417330721181723395068394472347768809877041462603307065719570469935406325632652948807114608080370954465728696056962495774884993739609095177823937942602330239301823101445565526179663673957813911166343453762655446914300949331233808553828438873988519010727704293449012587611798647667630157818180674936091707945974325138605188710779807585873487116987298529248727049149360491146601189920486928494005810998171463149121289268009656918651192568613441188150066844248511601098873357412784828542583047503057849422587980535797025841898116910366947334606990376676050903138891512807977605638464568374165597810081726147163452076727342520006194845813668779740168770600472330426252557054866155228909232265849167922781852592297617314471443025562405527234403926056273622505527491080030401851153123133491676298133998726649512709429227677842759110728239422258831137460110412380104301491851376039855982773177657237508209161432210597127678239211619380947576237617336224341902248088076247060266166594662670711953295305432077277885728015905942982527906551323632653393102624364609000913468148904308279145484257762934425661024678180680372105787494808833468312625761780138347639602050869788315852708750501242302383505608559664996620445625504686935218480332311276608513938807617880397870815120652871113366220976625877365850856933010888019490010507207214138060015760728600410582271848461729997958741307367365943770241927844250397099276442243326026234633143260815754620955747466706596486706939128534179281676369818623532041015263424458018755495764685941265707697049298181612152917298468023686297752190450061594124035930623143333654838897150288576059441298953630114927582467103673977434137068013705130903594333497689459906378895459552527343040672104129850456846865929274252801987942123320278050429169756929714929285475106422731503871399625699873327227048840407934280413227133818962688669864980995800988880423460435890314317001275407774880610629022878460510842119838972416496390141471800777969214364215213853548045158698843384709102672469058243054329073592599431690184586949307000339950372825077234338385464246937335427714767535084677486034961938188337815038424582061190906673306357905804286085828694627610444740608397373255464307320612400908477585855559267922251827989574772820594432950351801472924422859196323395721974676600827026567544456378785579234696836894169386631418150885533820803975211868962834945295120184666639545678362034085262710214860008769351557815864481367444718490467934761237857392534595030398375904270060797475305952971698324726149438762966967436954706896498633019992871368738059065502700972716353358534541372499267938216319346389573688380698591561297494181099675578522508759685953544469279068116156580368118457398354177205177697531623569766987527012770801551048688904186819787236213494111443842700098418406283125646874666148154660070123458504237852289681508936748495702600017914701456497254782535557764345208140726316196390355959590778091451792911569987363375773978841699045047026778586766897707994742919098143390729048846669385669370057476251860361621143885056256903375365935615624071910475653273495140063243622630479217103888426477123622867229377677199740565907531076729219670301383402506714132043494980637082100668477379034742042884135736371096704079454914172973658271478645782889126073203805445562945775042950530830156832772651565837027867470744922260938874617725049512148704403613535154198811858226060515491447838904451204766500603719399798738832089939065851590699465526760319692448928984018207793419203578986215594915297549854283153074039380384592507697120793418119687173642521197358508638949996382154813040763081256181899089792377937008393831848823136560178338015438590097513515091809610274757836910191414754356279649134368464832393225298474820217266831168605879521351692303434142810630587311538702934805822512009485111856774347818758877329890571899145161037363830738089734039928268782407790243810292204085388801027498671550949674208679843466877006597664657106768302851309991952875214065689495626336992525176851471478950023321592281376896134931228378980737700955781456042455183231917548348590062874145306900240956762714087589852532395638281792685133866903970700988893511374555789874029491596107176736140726279580984345632829062996714010216182840391687880705217939892668165880820260267731369425702581687874155202751002136867397029020318425373259718111817704020244347735360559789193548217028375073044196334665749945335246104087980344284050149185133466259033670135241902288451679560581384955829809441003532357984138093130108558358856740771760639954967210685004195746520846622272031372056014479471226871127375616149815787723155459271791337723675361270288791713964014976861732668071894800821629220073481391437533818943468549107405036857050854060242666280111459215683447277468629791590797208907375807752703327791033071325437056800132148322569009455573770962720033963589212083227225710034843579283237820748884272392951723742144998139907349655888899701802234453002284322030813063876169069244890372452741006982268629363703731934538691615445868206876594367492616997722286701598356970737518428272014965809099453536617702597640391677258768183302951834705368659054481637402686323822555445766363414784243837684475352872272531900015303773221480535163846293442960151504146371253161634443574880545195031551261072615063968548190161204406404707233435980534146072112050504406737230567773694712137993487211685708192112841586723320316203319945482368778557031600242716133645702055943252835426373228129784986513063188575385734266442353179685421055113014600807754235630071137244531237746849760026175694903359468507827729311715077602054854343088075440279359352077159428627995054625889690058859572680120613651461012107927580248069913465879903646997183273781174520361180689597855714935061692418092926920865096320804240366614036487765540736330393300452516956456314260279475483135935448378764121560637603571029798551581982298457270774290047187206234641907368383841687388734656646922433333872095333603347751239187424570124680236021445505724488911413001073041249854376570280020830320492913883676257161065788145497281902928181943645601902276816739145055981780131696123780493445220567108948122420280992458366718800846871983433744051263935082168871528189382307167414686602877973474408763256924613119041293975130103369652560359150536141618662079671655498255319392397111195755466771366333813069047221401124083746682930921158311233694619860987458062675215598944039520887692589683287417903360307418716144392614399166655269129054132833617486466372302668807867861178039047003074645686234704579258412187865604788849938485489703165917035872664153031990247010046111212100198499628192102630174683365168485442018285504155313369162598348107261956071669525993940851434347834726890574779291759176608334197249792256880869808599276494103118984661590253275064810141883371054559723915835957096673526612261567346098688601016028066679887939240922425942915775808943243385400440970477168444476221591940490038111915058749964941812219599139703872667534081781971900337772451682731414595813367823803081041242063310396104823792568735342678843846125564035267322971007379535171950058889555566359074555565891579426023102630159148445946395932589239124256580918533691097690077376361102397151516457550730728473687952537960030022435464168427069654104754558795573436452357872515183913520642846903466838295706391125484626459133152900563458019260406033160448109391118213910674511482853079551676659228690468565810876797653920185801026828111871777119176824603375012287137702679023063375386534194010782414316218575263147163835261265739117526185041608931746847731836169634430981422338915235724215652377576611506042993447072637279905826626506732732516040215000605046168217036489862143106899079482339630126152979605080354011604039316735602718566350931769563437381508000288657137846795224328158554727702465908967636389207714208292347526787818627990720624436780879295737103143891203499383161451690370958799562770335020830612166599036162519164631862093634988982384068323036986960346016654569845383865597436189246511083920831714141738231077271562814500872927188137679531686465639830055077099080574471041116248486114894751190300279776360475655797721685638093650611428026405034411076315170572480472242315517459016268125552332483854938209047091602283378332230797361988496444497119819293230142564630560385712900641744845162714167802013823174110348894972587218846754641865746999214459595674473686914343070397695572019655721022940003401991679827683221281725791249897989327375942467912029653390412987746991106440653207911028791401339319506378096735114480426311925097673384891671101780731689747187403004038632635048550817702942164874146546688760300663357009903185410834810579367095154651053495503492151526818110712686460042697320133981903961817671292204958606446257265021973079928141419493553523818035949596469085995868104220407873758770851513320173625066157291420868734380460734126818055768352626952753122849420168448305649144525672882610802686029290925595356586550384373948455645121040975421852148114197115369278048464943130994791327965514926613385931476755720177991218061147656468210678641979382617198073624825046993028883033510428959474557830632714591808105338815249100728631894598211116028463011247533374500823683906565567109343623707688374822236166594955302633937165445099096592636851093302476048991495729569047885980131533244878646225683955692008558090491636930923519733152580591377898751671969668118011977441565848946434936994016857179515687057554901440461978984690841181814660886755246595582608736140352953388947529167734116384367213040531894954994683991490628666713902788990560120346439616279760069266211874618100079299291589210748813702411052236683957931590816800753061535538451895372585718003983707585460122749552101532918249156990869336907975687249714916078692501488694259193956272635150601482121294291637757577980051812098190673099594822621662887130484637430203553452978571049786601314200256954963298150652977923527130919253453082766507634829919049659310830563300367295037951311478664057653588621995307906422093618456176051636553259148848628854516303283619148131132058090136409157334291480707637452249769693984701702459717576631030757676585142381750126218881747217932236553526800712679841507280939431376376060583813382833782414340222200649453029432323807430444511980718815102290438419820472042600262532201233468389602631230249099833301748558241602036186337780515695413457839858846220594882274358301358672631072131307042300018113142853357214414307190207843756667611138851780430465491227697028256391702843396652740571287179515082288090755595446723755362139592194236345408729965235226077682757409186964279745127405599297701040766444691885809618559251607243372971163281832851519551856917651015311571083353350897642320947839106882688469058975906183084578090095777059499833986318569273842198861775405526691285856357968442112052816541704994044986029397859273708323870910717525564002208513387314894415146591906035732026325044990511200726906249233363257139327831800562189204466749089516263130016304241441130440500805075437280475175760968789235633103988498897495737515258949647580433767533024568307941826727687204994221707926257241467540045402914529064870181624262016671458747757891753975618840271704933021572702334278948580816846655477215594040449017911388219999342149928074834124167928332633998643969780444716077275299905223617235931045079622420608085162655520987916497709440423805841094727737871609284369407293317638401410147545085766025893338380173323040890739179370426859241161956699214951022565003212520730427213666199056375795800084589313082006701189470365143492550742181855543154939456527904319010062961850190304001234069995287945615691481740386209018759228303027769240199414540721875690153350753653208796301956727383405376205701455698973562585432557024169608828444359852861540440462042753146223809156743751637350876138944978364887344093315235163507983887070105837428338140805306750210234467722591369890880117992918825861963444207402744621288662307318934604008870443885313954953276561168256745844812066091498451228764335409735156997650183439833407191329793643396500937874097511532753542371005144465054970986337827858021356377338331951284573795120148038586642388321293352180577375268980424943262435170622658779874018698146660126006687613607913434814430517436567729276757196932302145007534306853337539437300836770339796901500075124206895599070069323720776252440148931066066435494020694850055202535366739069958421728983930178899196481483103128873938447311002435193921807126232400805476782264461693797247002041633538463626640800871797128865503039159115254397480741252379130607114238364821606599931100409842339762705792456362555435981413334068900399626674779096740391752002641632520387983817128634429554778205504332121592430668607564293807164599393686457373660159767166853910448031916357192664977651677006655158939265585258293965639765737158764805497827592613309627002763309909161817811459492501745764630513993226726990163616766545583737119246448703579136737618336685051114994424742855589281923657986443280253909732611854864930436805913649464929255999002344273330909957842471196764027930020647388070227031192551498621308873751925768905563757439812321779192564194089648695029996414365848518041753069558064573479436409139436690751943001023687891891264997756896442716535449702138128264262717289138316838592406454654685976132496819981165287495523608300543802336231758195167419380502846458281175894201691075556342766732807744045917861473953263195467554149216128647701060659938968590103195024426193769564083421934755792220341699695253038227076942407118805781894810803977055724765375455290980954274108100979906088141272431994766654384106668823605136338045270134900222568858751944979126187472434278966005660271885823599879821507120288767161182165573973905769615553878373069651290501860034210110338755890228609462188162314774729093791037008422146762068963707131029448426529491049111716425182282379248596541894463245122185939144284764821333622950596153364210474923863674822383617263639574602101992524911293204599361501487359186192026587489636182807422562374621170961334364107441797794463628133564367317021766468321428593797284950223644104082462924168759741338998393784393841249456359952833624379424663570298154633459119733017679431696026651364872656032818116614619844737663402792888356556972655824984515319689616281986244367144239882822264963558048948906541425874262346258513431963259540147617800849438748073546593148433685913535274774248589422839021242175635427015794460202842658213291032081487463594347020471564311396162615404704134898604789307132545826620928120515797762688398182063752912654076538301147555314052350270196572482821023124375279176863437961420503787771132553174024151603727380295285988874440989918503310278650203568229040678223973672047289602995543033358198116349305979618362286347632642716886778294879013542617096961869021459918304516480544005121472986867286393020763282050770121218882354069139866550979908162283593574846904900934011998770311421215417473969383249264848200936119026417816010853621160845048515133212694295061923049811198432604948849740380864604315288417708403018324554904771751231747353815972751383573826382895224277882469062823703465341359805510292022946826996771836408649419429202101826326731430347843795066649347706289300843560674020014473927064481602574021273134437092464880439900787269386021980397722402120000760953777443244149416763926761477741643922132379623787419603332894270417222429153306234484423809738602883521676632212465461827363953384927519567655262113747543048301356741504868126580585838173191423724415462197850465630074671799663106742220980581554209013655608112045870173373192562282097550803979671608542768678989513260790066952174873238730339379963137474531338531693083853169920036634087874092199920421548060734470075136603947785923276949696913738874037201969604641209691518307578641555672762012195600095722119621648923707300478661048133273940551110070917469020693192053629454517642435509652288482767950222228312091811638323693400195988911401397194688026464690843906948361674816871470135083989673299097275261847775945902010422535594697630079413935956238317640544386967187811177239911325918074924695362371533312354088586016494122178731898338495656495384296351259916523091100431802087535346677666696283953808003773425407344668347482861003881449570179936807379406645223341934953708689445386466144164830320609663247502925001978723270896349809511194620151145090730897742391734724024364481659313259591777893852248001604253864505787034562598976758574202476352653069283429221983851620951148867255888013341267583092068604207065622336436914613176438642639069343815293602548442648055635527999320361796172394315435724421836677342514787082045077942956173286000998115114568951266252434029798448518360205757108425637091264787066961726268311971258683235969372037339991679038627251988455361998023879344217230373652598984907782397785010806516324270447998875666416822813730766345785877200524213644546609809266936701651197339535614239503507581607900647814723797628455333774583875340757497764047210829486069057715818530128091464042683916323026829835916064735946924165401774304030583713657555091176158636183387218327942717287006619424110297498836994533848609060011373026257923019734105566826478478899183389811589226873931595447330646446682805020117378326999169550738581205444253317261357549146408471353457089242064667946669527508669953800024974468652130763185638801967070144908896808063688694905200681442301804035368527324693648303118513968589512273711047152657896952209268816809213781851502016419859823732335359754881526468589358522614714656797824174031980248569389113189032382593727786272246753726630977838198226625214341129497883194589375149154094062251936025848123105726544816431733745388661861418881343725480164669526789807104286888556322536568202120862226896410782709668207834474800812364897954167618640574437919713346134403588781311570232297142738103015196033933426852653508289680133796737459847175384066527490735804098421948916432654196000643016947231979355075773783662088559975547835009241349383759734392204578597722885449517928454031366116533170923569192790716615865710962016620544020030064471757327921267470576068129552973162667220052659219051389920176083879502482308654226169069356192887436061104697484201000166226711104864850781179112907657593517844056501961820063570336866877935616495826319105395606071734604175510371371421042909511687158290506883274607869917650394252488223023058498565019220653381919782803265114332645978000310495314485596145506186580323250512055989673626561910071234553241694242158886860427068253093145490271599926012166856460744879638177805869266408647602434480847859048614962488421594294274276344519292996291158433654582157669523538365721625081342556965893419488379150810934236863259729655932447832827832314345994372333784066275039411360715113923148071126039583462114953503448489381043865619203050422264355489942694005075629401747467091183867783056925653137170980134376942729442094764127120462127906915292757007677451997177627480327704152366959565822798209919272182036655410241450655271417420718308396884927264406693548371781717467864845845601703774469902519111992845589398685724090967884483775698177746288407422717618015654682394003126158568980120226647420395449574233851191352580415387315563907082462960675910509460329439357864822172289758216789105331238593118776007075449397083989008009593950490873489172332419600240923594577788337231484405035717276188997309612008837921895993303783208660906032145668924565572027096702744424310808850754299113995256423267533994340540293201385837019701832318889138476012898694414572157177933452656993465247134962365047874836557146453249040992940797241988826540380733792015797222078930023620020335299453219394865434927779978145192968871019514523288461536124505614030271997973990678603230829819615192601333604298719594587097135952806604692414426051884972736358925248797087496505092032279081604411503155423162005367051000497799532980327117437888422934186933945279632510239689325705844246188205938401232094905038655765531131173914717777660571033164632288786851569767096984138454212429867633161759303265334407422209358871471591068780208318383652369536572858241112390009402249427073403629609713135028486996900614262279395624737137633144605442135175165964556421324426788666282733810593514669807234813786808790379501109304334745913671081327371623761539863201628988842651901809537831132967553008111928347589934951513838016375443753771501644541234091697774746157458495624812620924352529781740068394486462646134959791769432400240360711859842391291626057627106966963144613777347857657246612276184004591995120319918513104765839649449540822427992179418823501855210153008099778298470990086837324720639574850429891503049491653951201067325944246809342447530138186350565167984637474140044024505655559318759470120769836354974458473081665926067783282018150704473695041485355787531571497841104287448584622552681082304225524541280536857259781005213833530467546873535175294739330515349537632997024001118095333222349338295686685958978018558793686377767085714837848044727979562075026358811311488027479300778276176497382920504227958106021089180062880242358552680111579733773582783443957017306296085091078225509380100385272850565386233181758864379235586836680394207103196188603418412740934059632565871315853300565850386048431784397824880692474091891583567286213017386295764224485287508122254764476091391138749498850477512405100695193748633659447161226056205286464500323448997761756516543675847320837165788345711668334028978682977817233438077559438306960522049503414727687830330146738872564923649769100161046691039762567212922445130352775447400416384162522589148766901771985115323056769360515715862748971533408585476617656310022227959302829062807580369786902179489965636729194866652126257163294608169178568489091730187827163159119019563207107430489921018173711592642055290937529046017237777600602622615442208183103789409825663344682244747828928000608862791813981540707934327193142008032167406655220248287450360283066090775659322922611918782972835291986256972561063139241740514695531710879604042367318723612609763069163322794810419549616666507537586134576671252366577594408688367964272007623342528553261459599744302739875751942334322079280790418658971672874945203278315404119387273077673651745829116877812213455016179958337841529343316166850281153287392498566108171414339070528128438116725372051753260326714794538620687655532394542002619596991418524358693725278938923724853078042289826038141614001424522441055035930506693165009710266288560014587426921464231868707722837059999844923306434557033335853774616472612385505201926009147357079972155812258772456841206856907710420517943852295771393828323193793818123217951148989782499076008855118249519130113552196077794114213556735207203895131369040123455742035442444497613343759277199153383620784375589386247031495091001637523046910839904310442420430532340316781359550600848964042421520775642709943681099164227221760642447876653182125224324811170706613996536275391131369080415098009790449917567664291847819004385387765502191341045994209919503525290981066931677407246844419216362669024284277066890185462389000919695146337471282827479027966583913261815536831926856100901905047632534370194681404678631446461595901174160034584680694462591647354320921286922010377625810072657842348811130721086864687474261716624022563354008897047705311617193330435186434888984244431763624631594003723611142430321344765887383758003680581924618301588497554179265731575817654081068967475920401170506560430466571312489892013024250987849825885474451260180646194252448358504899456742454021463537399974858825054848223133131964583784884370394286960539815508138650728785454677488454673235374662099961673552032520864814467945886306145085590696845667947461540552873852835565223299194598410437186796787152237801034302397579729637026443776346767427226956052516143871712389666068791831238992377681239652077261151063922491857883028687405914741685129277690173702276153216546183878428043029193161766459012377127428506625514581357814684557949613505527455857483574557455565005172458727421258278466251499303429236881720894287603608888986146246680766249823375384635920651382497994758864942960660501427984666640135568212214879353042074732895283319927711238699599871882323191046112305911773716348395026369917589790345935789497811265642320051451193042561542593970071201557450319366048465814406937674968397013837779470599337493315334888841867132563298831444754599667380075946724213680642874479446948154884545507703197766270353616727003034827945665870885044096124540510929107816810349565015144855633527664844357879752139663199244670792614448536140483777803236480154566503581100800264899291787056022214506787983449294228719977487539025368627277388794809330519388584915990164362024300335580448226430002039988335599066458736468598724744515426753783715889329718838233128904492450006208895011355243915509318153046385475406518568224315850941419359411524593024504174969957926501026188968934152539953935691072416634249500912360184037482708765262505444740832625094038791047210358876050275561296630765531398251271879005701968325719569322083996326161580977827399640138922790874788260793489272341120355966820545338564660411991661197763382323435797407133910004101614945393973061329323281742637889944960345757468313853248309368414316286122155570367385140348731513617418048182095222247045251887711635390764603872544380718300553829851006121210865637642723095638406854825801018761199394766540924235610094188548398175386258637470399416212298604078371293202697824877497407868264920128041765529621471337076158630241939350477094486228335181061112538589106575118792846233144966587828486534620801543150772403561262594923756067033588557288618160990217760213457465211859238420529630013508059840310974945535333682455810064978207720079902579045840197505944322185189774330597063590515753236729093846519999256450663016051676668274886251851278484593684468556380590847923757377713275068019833606126757054805135886696202695502256872848724871725538250419489154044814550718425253811494747964441820370494363046385404126241678518614209538839289918931546218372679044093145065845759197619819797217519812599996197258711713237489769741821975510133304107326389635985225724693443435314781508305582188982403511927075448107366497667358748176744804299228794405698543485710925058374574903406060733187480751778987600423172535978685949143881978141316672630667486660365742299260567046657951654742570439753460924648687695929571467850256599978906480171152679265081129561192165804421921517329445197973661405548696811625323380889009341881253417287964026450248978616289616465350274244697444070176483788525594391448974556108203461637427619491697184373332042419799829738364698865844948000310507890187883102497682749830264547800965177180625087495746395894733818822890517891030722258158547444769983281384884732141807506041492146257270737578340907314969536295991405982007306815863575608368412671901018552182489998519101689776120700843356923568176117740092955105426336623459279142467188120208410961588766100952645432434032966475158392497946086687307883223147346397188351704528531209532344437466414893490699412215306287693872186725756534842557033727013237875870969157947332722879452746042912237749140056149504000299349429633511924488438471720966717298285212244984665296778582882077141122573599163587264270071904559655987710048542763614059245748586229364968155864778471270619681195383467005326618919390783850650144146162504961985232907082388280258701262368101606108299200846025229462594111966109601061225890243434846195829387535114321740343414451824093921021236756485206928380146788674115972113505564406245899198543855879640494626151582079381810616568026597167003387425562791341847764154911280150751433983191857209447518130223409304805955765358106924964514733130346256074992999104372470633670376960064942146241938239115483272634300737585945808881847924351764487818253671061501551265633030008979025387141659704737090807673802292055801650551513615106763918406502540550408694748339461611234932934621994491045306456361810097031172055534017688475251818591658012838871428184366964380405026897230376486621833100064572616090610950192379004950895615532295192551514632592548624118276075143303014225811811948603580437507831949309690030809813654554767841784317879279956232574760099181393095091549397552602350170418403105681844069529753637855876501565700353072784618180998988913358013245247885339399249375333202374652529279757784832126257124221236399640428413821930601902653498172355540739043356334752411383419079948369484875156247448368902705378969846833969808221186959687096447380266487111457799550267836611894456937374359281442405722602716182183108895024820832987965592342382860737060813693027378142090381424748215340985827828462575423434256997114875532771077137815166382581521896378304969514208841840104372091634888388194992333336435931367452768694048082480563923207594428998731071331250331060405255246721429235783890751899007199703787187713129022398456125227999109782502014792824726758259197514372506650513965972876841014073254675069900455323533362810765342110062790541692453717595307489665641976298470237306603641746928579269390821588592537527443648593194821755514453499424903366852456252172786358541206910375162096449843852505124817738326625920946835146595188361767092192528807945000510191137362396263472207908686543344482233057835818212067537829617653447895177683733596893997035667026369574392019773286912910558848427009413024625107090831759837895136246171950974886560926907574140972464247358898712914495878953599759328564823565119087829677830207371680319765850848886027700032929907073970957107047809478209143390506768987406789932204530884471780130736394966491506200551787430270908593289727462165125169047425607365963685359447928465006241180979162519289877432829925170131564319466357207880133451268281704659972183526245498661141159205776462522667374739969736884107487774821803707748487555214020403650928244172403962843092725573842293735663814764445266453076823115456133798615671458137594100906629338283051225921714564375853662909378504062311688197853400875314071250817209036834354827407328914490833494883798662941554206473910955442224509254898327730820972367219223172397322325344286799322205604881234503799489023024128966033400229104562673314059008936537856496184375746501998569683782406648963741852084992677995132294013231488292829667889565344173262106003499585393809285713983457384120824984424253777155679168640445906235702812988141059164821736220216719279602483766879992273906835635453807863350942556773576264291581039262057567111536476002637248420770411297542690496976741921871273916972313146090694985477036672145553734107972061938440733607224784914910805637046831263040079517377965729597398821899217220012866257070625676443488853559168776477216654103316514331609281176669967640150000662236797351539886669684182070597840959976901912726083819875073336058204331041669535984928079004665807190375162150832571994807665222270977298236907721938075763176864853032304565331012337591129508092725499923586073002504037692137150425911822380340384515111144104500124215209881142568479002110801718228851898351717760974286670583846293765848310112371403961960915249185301562473127156723125690610735824009479490794747951069067434455028458984814833492703825806764767540207714450859227488456495777066389268469009071532701036819956481629537483259755926581206270288783047968639696456704184536596191492703132400298729510456001351663933432026849491580028431735880041467760172719540586320880830250240070061387282393160102934798630212872677325277544609795135809628612217210939834012688067516474615534661789148454869925959112990176769573323984532181586163044918551101554125129543199955298245048021688264638732712503698642043891700306643964611433194118907076863651904177180091182848198302983139576864776217658804665522411717023701702026014027923942890258651624220191781497072101788604305468745631362435937207554564892435660010882594974996147913571179822169848451244741947765217502794801092089753716435398376289328476543742640647798968568479551725766496970937497476347127796710406075679160246539689287091338754439699138971225337473502669680957182782038855635765090758347157592742669796692592800327209430394406047636473894198479463337100497990559386394528561875160051700405272407235275631192502490624613000190557947754558023649482436786349991658658646658419884445100820413374487989263656171237965037609514365714326000874270621672658572985589548081210983317848540913322096965677008041260328157844685173583800765433864406953338706871136961305006862427140741922909600634987171403864748325497650630789597633430321670016924808627578707116986780991220538138074147284436354619159072030038493862254017841491372310804518034599370215165075417360681458337818330354550140885130412067623976830322465994319335194692560085507334820510126965011562959626919228873924372017963485241245395559934492876854965791577848330409634750533886363850202880880127486937583983145123251524711475019204388914967130113826531898491627113874959583297715247155741716505239964628008602266610178974009167379835785865289298555734345163479716221910580905611110924764059104212878759874909196028497195521697928973851292958419251899519617303622127110991133330128347860553168198081575615694220581424688749929081937683239917450265821858693278673544346198991175752847100959320628762913509330555545200300482580748463423972645410709973878918519975804347996398741618493362459962312069500389362154403725737140839020213993431851741738730804449226232127609043353474457602801485405183223554355553622477341134449658783141834262876847706503760318438533267025202404351513646952253706550001500418265556797013446661696610470837248831944104671305098249965287984703189785968191030685896171583818241742302591018192421849393977118079561796488311404210401181548878221748637523125567558690330629994763708851080071822011029867695648302350648754134895777580859411552256333564842349824265150934430165439772373383903780383986589878261446651439289742540987129416364728658308108141380691279229232944261894511131906005953077548122887737744164431286828454309135469137439006002898616883683321948090635311249195753615225731501923424657551626982644609905813864812267557825234640382780010581043309092066482790726622080124092302968240215077926259392503137501749806989724000394470233197555882372662037399030827008129319514994100234776647373804505363065143155311463603736089275270525569608639597440127037923172671106417997690593762443368490853364839062876075945542461693461991425510298580059347759116460572848174849300573840954281463570839453252843573381351506717167485698653301438467468514314996987533937063548476315654935963027381722552688163065406952770127101743958877727919212164574875593323174422476663629668334190979236605459247941307939013283165949328314069828497736801219628590107818849333214729887735012759868131702710926032989707430888866510501726584412688772844625889559951889138298969922224890975579715267038501398616173687339564220682364698215412839877929105508750630797440118524005002945696166036827463450181429786854708305925793968757810525997063162878998569930175573703166408651552408631597792653331653482256325201136995630925847190830125914445543444589598123995810025138912694957798125446984801864490319462043472402508141124440517579426133314418914057826797028622602804070092097950380817850458587540572341520459635280115196788722098289158626064762465302730302917767998706418593267634102978352672112998634847484618665926324435349072112733800935685427530931126683379883270910531736089004778345399088745236921568666311113168411580346265933459899299304943997388150786229626761769631654928358236771085984978340366445033701397254135961256905050329508803598185227536426702169816070824071672150655192378711828942565613061864519537134083903988369984955106735855837218688183509777255850663492032407763651256382459167123451244545744596778702376258190392699519423836182087679053379438650142979380444048656733665194922107492561835193790221198149291417424727098053772335738012224336172453656993398050418833297492643177547949795768466251344147482244762685211042666684871864719587657577159210532094427529505047366931598534965968498317611457764677402840759099784830392329785491068363223528726568205668471632885245748577188887316862814293123546170355595104774029827680613352078871857884845958604324758296726786231274191605513378290948600456699808650167390531754991733329130271751795370694960672872966044312483841963080899163204414883836961380643894574056617838941107728322147230912653649093122151261974044762562358853704980619467870646116807292184445135656492034655071713760285509436574168050074061158033078004704469818823104051028979198855612288403634570085504681412638458125788057389187109116834032793483529503656946765252956120136051926431043916231260252113351183910527719476882643077432960537990256560207677899384991380509906606688400698792096423296727122764567359269538433809762459292062041572802090405696662639393400175157320646731283258855677979279704672222744046096679786238013476076851081001986245086616354475423557810094006623309373394966914040465972195992134779237451884109909793712455459124721975943729828130192425503070017910581197293154961205082815966307949802701948005313310848038407639149191322891440276865681897237663684169138115158855449263693529667567424984800353983023801656626644416069927683598971645825692863190818258579167520422368299410254636982344957260405355923586552082010229748561499074386322825506796378431976768683481655737222315440884469685847376971881174121207218029106152239192165892882548082932826542181219504572282541205432659194454568532182013051503239878954618634262406999508559126577000241615204541649469316163962767263152678164205445639875266891833843335559437797098490114106472002431285236458992933607838422134074522569677320170391052349935637820650600428966280969416620991266304293374128551855596281783257829792934323636279812938325290956686199640322713308198607456187133284654837672120185076016846270942170704778819973157597922176853488313146304856409799860953157992397607275895519586232098370865885379540688457328016441312845689585777446030927993216426209518777020131066030647491564343532843080186038071857008298377201851818329299971989265537829998153777644257536200992294135209205259390806079999615024877800970954486386711878429871791832975139223592680849097266446031441179732955707813839025517468900453223388918311113622204598629355717351656455542418276124451880503678048331604621844777862017628927714872915425708803791882556822103600468132907270326460952985307139538250575130558305101016102885011410400664480980540305278745996424903770830139668977082575763369566268482482395306625247627049080745325929737418230839841011914073982192148863217283467543240084005153540661013917727880573999644720153486458736789798915844074055279216967785873152867664894157829336298056633408590367747203097581458237953538659123196957745595755982360059199438023739433332920595478313763187472958678015923367475125274244110647725553015718946491382765591986642139884380177253572230968657211264126923622130444682948767325048929890451057113765859686726842233988359352501610245619741201957399555661287840364218177362697004561434287694059862395614103209401074698917306406318415827317039259873776728163852780257571705273202975685324475855843175693867767835743965216874688151808827881031304454598271888230316266195609480736193962507128607667998200955907821474980367562347299588890551845378425662496758796129422961250873856689562137007194716948345388819285758998736844277181376648616447797889359686710589905494656777874048373954651648453978404042623816653141463656109400579335893882638806644563050985603407980513996581102679801314464113681667679120825712769035353349173979734930963784353183145309523199418713220501298887342523774698037157520360628850397118917768579558279706501521058333939704384494211934995554022214048327045699155755012822662003079776290522514391489095063682660176703319629524723116491335472866896464866939719114444818394648844862504535045165766065334484755028476049642699109456724818611889792822437951667737347096309245625965105367895511629325743092014480822337332753740930611432410357968941585242531113552320731421802025537393688943408637305461014889852673259322883141809197216558910174266324384202120793660857023129642626366952158946894607791450205531577887442224234870413559890883724879197053224597134055056441005089717579499360925412715699512721152976258855130989696197938402530309367145203656254090212787819542385504179521890184983250466876843878181158036580239009560503266351066746465859382881813692782223582383260722260408001251027927769048255418349520703425688899568371178684462380109866101601140516699756687082423398859038914199910734618345331421945287482776817528204895968029464570949612255004810792595401594139841090333723340247957820415692613645388358674629906229257030775519423834470689127481919112361436222167653448888817355322023559994021526579749799106431275521450553244389762096843323930570680761220948878020063132223771884941587576387357911840271373445294419599426534661289437276147790697404246615016131666140503104565528858323499863967472740868810173120357748709381217697063452600580722091961005627868085719554134778682156293957997412696823727555369763046382966145506731891847437888906715401192340452016189808193340646401155769269777768214769686116207846335226426982460033229085255094881255123777499330838038292153162407805682260765922059043895664149302744654631739931439834632297368962737773963419649965430792738221453387267237510491505985343741341584377502077432905210358705909705063197582068020459454951750949726878694832922395860625557392211099519518442817137334407683971715243528294797076665084475405190254249543212296258880398486731382690657203655509477549015274415820979405488418265044493725438862656680561059644517714522925659005288801850182143664290768058557557432289210215434842131762317154625322757287827622318339935089269482202233353778153622247828793652461469246290608548247955523051320090815396747081386043059716285017556957863797074325415054489893162681711676642576873517076092423739066994535677671288688542023681732109500911717135488272830775435039625097050053283272199949771776191304015645800528935360536962118745969501465971980948693646131046900295140855398183170243084151178889528419743259397559380746986194296892602177775939464439641423434914375771099261364673824176041236049448628389325088860909359643214191218028659662744806995452754060309380824653335355382802737764945110178580367625776863237817398945717821188493255617096125614593827728010252627360007250871865291916990821342754596163857307449704732658272449395855286111104925761818980043772641203666578494664877166859267382404943507342574195151514925764581752239275746376568838781125160955400720686917786730345767692970379655640338613852728163312717435907798833480759834584363343769784619995441580405991714105533512482754805448489269926343666697928976777660347854264514367943810484893042487675978379988114543495609415281422973228854464115414486191012471285947849720237042492780757414628137697642277682606008286758395570762327018302211936757124940700162662669127953722853308896742013397455313506273897920395170898956959198807441563552726248473255687329848323790916750759106338289240973959837837401657986761905387835555577787200095306199063768738310993669106453570354508858544220243151044131627165737293391711956215485194662217162939974728814901363224763807938588116175417968822703693140895358558139512850747972699411482387337240074058173089278126190346463813924591408952493594876510203644615379021825845372494762614917575392011169085014934776795174373817000835083808214082463477467638406131933025482875528986344196235784599507566262127315364516733225023030846569411390339157324016881335024986079710272784353696802227828813565845432538163828543696992624959309169544948318937986125120597715546049440682289968136530083565865467086576866465324027017469535853197952732318713217272829581973739243709579208584037066585367887546263687894214089211415846504294651441109250299461051901405362830129317350239137644331813038495909945209270690684258353737562396047456808191136966760728762090294375994824142968414144544192560095353826369478171577933354943430687707040134686680127510705035459978735148486537078824495638380098830617474840840653699515099146496353006177406152093191552414357996451812792177263073100150189942609751472152925825301644959372458631420826265080184029226581252736920308182292812160227753993556848262273072183886382223047415708424897065738335890422211129944408433370223379534863655215188110875017528468024187722386605983505133153109377705947057187514120723263607471235201903555029712079540686991997991209118415946315644681052012342166022372294582074453035044466951158700322853350922022613111426344834611530711381584953001096094610251815363437420887173819624723457762195105720945744866279932899971373104446982670258666152825993931619944228778290488220762851592258779404354429196922679889331343813750104673105719024611078593651643606117018928600101783096578946141404133872041127082922120999525397845844592219370312748949339834295426810491123667583845471582626295109792566468558991703957964487541592785538592391830999399695673998791829584098288588839949925756353027118835017056295235415212598135255377113023699446004140507253700741253831999040534797913655707591680153016273482379257362011352250903595911070138853288313600925890816082959913014551885966784389866767344716223289414295207134877493507308301855812830685589691664933207512589611658426929393108897143473594467463382433471687703669615357498334394091487134150115201437626958805423351912240325730191198279959027108366006611073381411914368220654664943522086067664772907080630742499694251541093119136245874088392820574837354523546288254908163979587876936120572552962177812501427391727173276061073597942480160312697695550325096127935519541453365356706160088432895317110370784465980191490950578140990770123977084979179607360340301570275773322610924892628160946751185540321951344674275598978066434038012870179451146282857967308042831222499614223123860099215122602367059994194751648094675313565136900275470006210576590945169853046697138994775972410627488147681880970369365968284236875506533057390134930587858329083110339432921120177097868500540198119866125317988367396120917944386829282314383338319725345437852775826180718555975715104750765241142211989160112027355521495446267268839329899002072042960861588285876053131063596644613199930697509541830194941137415602130888508539247295393971358510063500236487639343058054951210407774908168953119140932848380577095025385250949007220017832165527684664880033153115867085997090132316326762645991688540304577439946981532972472957538235911726409207696976336856863091107776826328757129546870654045844589619210531033675003202599062181615515576747624508676927355039081820316873278977214547751503375865189209038734432382609071007542844568351330249553508212428847324623004877233419254704931157356836121707312130619568310964451693648860541203954670819518769710430835060842267973898449272727590726196079554051577085546829150896689208377329969884044256161407918162380591428794145100325999708093070971846066221675014345287705440376222411161964858329476580353120213744285136164353472942233007566715737290413819073183510395110601575972033951924699179253079814162109677723836157584071330619660026408123150912847758468472598772309509861723531573379280886889245967122320198511893547022824817947726111752704701587149496307270373573289940206633143310433517956022787000617574219231747838145644496664107582734438328771030558025271115172183538810076432745965415304089904383806055905144531891783969409307055285681671439005199491172138093247102857554683309676722522758981528097238077659495502613467850967714549864216487717168700345404379820618730109151108201711522327906097007100861525630614021120787470756121968313885055295289092568572161587018160020918059513652430788538453988402954819755621275069040696547879488825163692424157948602680101727948681662357722448223621085992394815014814302718227678927153568081867999581620479763934543916505313877914114211088554855164258439978578654435790454905839559580639236628305490502460078982616827499761382976890370711793725820610353833965951513286741124141604485669697301383734331699131554789005112354121246205599233111683235843559111857581791494810388000641486933356188517654031612742246516243109385298130678913989057368238718486068662488435876447802998791026936218217054667365217816779469683769710742182646417594533601827219518611131171304036880374540484884010573708705659726636531118564439606467259367982733490613393829784713607712525214932444631305763796531609929851417117509500175555938080108681863509995077224915947054729866742145555589803744919348472789343733691168157689110074689003392464968537610712376805248591529066724375362917387161898152219818678719573419312839191125677754608931163055687083409433895879623763418058136687757324005775275537268082987652671434985729096723830365970294342048044556275501134807406562738457156317237808914957507048697266613472179656655481062752892272347801949558846300270807270823643207213479035202724686664223002349307894601387722663707404448669263376487090259589354395085247363357385440584100938534819389532813409610065961386062071621100193199395586458870434678664313298720813191068023831913502801722327749331409187271678731437328358839803108094139225964517852770267793673413961924762822338410721151603808363637348391979885811483641761085351070894253941529689155064399400940116852931388428988721693603610204879247516160033381074566731934145273005661226650325155024544009292417033428396821549797343802238264851344115934331778280318074754798283982356419869650661397925808413949856202195540013767005110597358473758608873211540016479478664331715287681904340914816795814064045785553103317090130584074428411159208318931463169712142774387821708292814602425186967918413786365618012041355813894586729563980294674335834067144207915203381617789916603893946433316244646020254903775470592661299767212798670527760598140374412361073309776023227975938562187612908107744008013938617137063869269318348591961655072538928242232882444865811142709828564652145155709034375801698133795672148007106100862071788607690761038236405165918437085662989915472191026423223722316282802917503647719477904203749057702443892785389704241810886823649406046461180292090826831594413417942234385121642029278173114092115934174289869801720735547981567806204761005327587111723799570646844331947286282087342031333443987817947996554997801264162373355213013692538834609017301656148808212553088242112900401502011585744461193624692842350546143433975683985132713941660234845492657701565444420893443971258119175444467298030804605937797887584595645920812774406315395553034782955051002870223502265194858618614107403035291203876644137220491317457550645790790016829690280149292714988400692352295008220655962590051006397634874500531722368782456132958234401778060984447002889177819434782979029787142395112291681689488787130408222243319399049421225347439423712007490837348261848270558471603117371644773182326018604747561016366871674723687136021678860222486461845847796533662001533136433758939534397101031013024732825930130723337862553881834381678332767197798459906867884991237105972322331185478607282264640705556348381357321681366100445784788476615276627692559864300575155211493163796173819520584672481961432301701223568466064474678756151810448809593741682945708570272158512812515178944490220480108857698682141382549917739943538404474536439731216084592411167166434684745290876193824027431848016708083390840069209507595491588632286227877594549481252900366261622827363812606189197143684330479257681162111301188147093412411191604706009343738280209953559963958967198352236227103388108230784591884122938371051484510205338302941926306399148286417397444673318624684929963982197075550400049540671019763015291576732375972219426374312031416346596452780501102419193217547082243683995964106205653963926475198056589561242599562807274836072297966382069663151385582972882778611363293653702841510161762693227111283016588049299076374831057400226731478784962755079551818710139271254839894620004351870355052745122355963171028039712773712299734066281254350394787378082194575912393110257303760185932311447483334684252612413607028024712983128835413259907150014830960716338508292353353258327726522612783455691467602366163937956376712630310733423970890769693197405947416000493549094477970250903849218421580611819933932543898190102281828654554711567447127645487715243681542615471938048490318225734167598128780025105878452834734737694735721655178671303834820675787654785292216878532834703813333238765486389546819994637351985730151932436910333981998815226077892457896889541428369999886841249136507890149264813301252455909125179422000393736438341223282964995464213498613415921760744645313944911282194755321319686856410384663991363524144458715387683078401423542649600563645693282958405358669118825235514971685665865705159327739371064496878518082893875635399473549396657072575728497569214920016901176469542337596695197735769316078598741748618305674919069760841564363493859658465993316860316901562920279158357921788132364687361469996979050833064293777969303553828781940202832829866318304937630145348429984759714193977956802025022357802766941430984027280702080831666161956792806672107598047621877748681752977656673176211780495523676108908743435543370507553707469677440111344623173187854387749376999323174286174180568749737934945803674869910187928587221519027503924555791576937018210320500621552318729906909184809501154595203553763015527751836725803983272097100494306683757893382306906422554003994257560621121158845841687873915125986839494219999751551621709258203209990093506745702383685019318543827508417231927909005334415827717230430265700224413002880851304913016418986666193897863824753101847691552752899885704504460940504796268405161835998920027340658869968768226736633383004706958310186048428220344947912441865695912475705303267915650833401054356500258403949507657939271234429779498452470707154126619012472440664287190484662883348734946668913966696075562461105298284160933538736572859725892742094575856442680564641499968799030111666060318845351323469009733991347660865716556425173540841062031930548789015224321071993751181919785209539676054872477531536361287468460441086509738192214815077264479895428627006208482942461858095404213105226531509933221108529696956483594323186170893549344770173966938056786721156385662247879232008916915340418123798225802335788197690943199861795362125107167217337082236333876315177578241732832564867757994071271575923688487262216003755995007633943493627862651296138222337123891191404821432437455006022577423313567519499354266803417099750428114655313961640223793184679639557084602747772658151118771224527098468718355533920667966622479045304024183720822008079065740574790879673389775481647015677733162325220192878400224056526521874104944806469789463011048950956108820888113565752467284146955880042412428987931230849193023155162528893234651638487915468301358511015746638381076722381427213248584841597527409622826384259271097633806511665902511019097793248426534011592142765852595535326286312753811500068368822058701465232476002658810847002678696824624652937697505823394131633542228514691977060983449118274062249480332515665174465327976910616685955641026356314217372983280099677387792540016304233185360117919836889129301100952729392948605684099411335900045021154468890016240817836712722057776321808269060181277199215714903361577312288603385483443763951768990634571971405719755949534567297674015712459427287693164103673828517758453922615517636447738486740453406010582019264697114059581727469383155006390219935530973418477788024243673743361361178596729042898625689308891891907566920631363046752993298319751770353119011351099969840693467323914307720825003646092360426816422871104311297191166350680774409763300178408213407124012447858785963052029452426372242679633193703829994592537530418735866827018555876299405187483987392538491774979331640718292590266383472020449413337672958539071435564427291219661201759515777631860577367233837628755843062139754531004142685575420611808205505960423549134877579208449140385441729705330224058495706785989904440542211959144007492221794744820613245742820877618638820206636506590078194764300223835992883226626158931510952226701694015055810296539900813955962340563241491846956042359563483102208886288054132488227517634044183850040926499383314090635655297689578527626533367412165606981624693526461196353381242383883049153297610804721555328823912412731911171421525893517683083405130345530834650062887351511914319449310286729567918149239470844483538281524725107749499764000744970606884186660722200216023532888389471981075156236988525793927896212351796173071656920674363802306849987376808841706152617119117066753074627059496266099583978931450254765211933490386480365606826564346668084758142017345924374403683207218453332898888183647667969503653237762365832542578892401586215303355498758233479911110661003177566515644775437688066808980379008988068511929458499659254300331820189080733187835254690564947618515714545152795209866936334545111106911060421461266006263506123858205213439821946085060612501554612621996217391033043647131694963093891307019714740101201696485583548492423106819239579182002907276551337668686868206800297762740772090479993628097665179560900317827383362578094937920535812608342153470969690160225292205714339287861929431873963173850433431014639474078368185602968557575256322955122017732739262011802934965348728709259936529942024384297331912300986965616619544755911478660290357549075437818282668189867550668449181215707207272817926210399417717494885269606728960167311086244693422677275916703134401663844928495846102541609567286184203698852657193999305789910509470820503772671631651494619144623736218041367915302287330635678128974344380072434512784104278028611374748547500124461918552531198611926667907890097188503341810356328773378744212292083718648353867410147976135405487677504125703602978075712950784405340333606502606154863611463067820291921055948913717264176302221018085751003051984863991110806389631719439952506884243616272348373599436604008201721559243927728334091706356934116755413676634022354690557018978898385221657275927628748839113265574892884474537956408334042148632209123428483046218303312393235181132739102203177619216607176553304572401615588801489447064582500361321174387443701299463362943653555938592757168213192627000084930104732209655414971568645926010594947317886536796166281191465270074656685073722375662105368348787611472824905514561118611042763770089179269595804510773962377141866941174607196982271942957281604934224539566898428607580753277879910339976977769646211899781068041680167661001346159329149500416867997495252066452597588835500799665170674972139394019283288700231997186217035874947674613471085147161478585422293541802310719179245575744521517313280364601321154712406023656008437456739099807426844458694871523253642121410513469609881498683694777288375255244947655471102727805794983297898071324224443351746906130690645149143955293938641037765541037409955399468284659632679325856752878657788658141573450585696734345720971610112621772003444778085216498911456804068299215347708564361092536865028678800262825587895624586542656498300080178259130050336915643451040165886376114912397012129229791111117379612199458043793356681498009400144431166705812112837349116290615031866755386024372427774581446442044319394464116499915453798907115438175889626252470440060993071532300620036727009040338767980077045775812977124704405104475451789725459648442688811258235702120416014332428211331885106764385862926500182775871210785263593370784229060540418330120088500959816541274741976617006109954011321660725376321834889385222188746774901063483983715426458826548257186450400085594079725054354156292035005160345081741090471814031199911510605516728780597644350308386505267013315849079644456001325279832372786654951123708898352826668677967862630845683461259848877901542505647512734503385772656517085613848624869629880640041863140465898718390505958249023660010721642241508025046946425647697558797137058442217536114546284833902998295400535145277881177209825962799077638233558990989277983983042760846857456787865311194015232054418686827735669321470190105894452062435557575975395644567354688187463663807663409569091979191822140914123804265606121388690197299547058852972715340820939148994906081109901380683062835373049873373078344225990260426660609478267877041320810149692109439761841546062095909089186987813383656773229132536496186008362941447752697755129948440962237885387980520199860208300517223178419848614649390979792228209330609618296562851744795305582586641927923688517336920031905501233513974510327466952898196522791556701161858457386549078755978702489836668682927967909897969162758670561595527496651564989939215976902761792289039070270355891529552470603584537170427232908981186682358491425561885593762634067028102157503339678993569844019482453075630871592187052739931085386329186750524294347445747141013557289522501820960525649630949758850061213159688469730071341309462894432911349787109468401954803242382700418998036665340789517351242285440984169377080388937695175017934406762315823453317013086915813684259907073875254824851742672011901222624810438613805342591997652671070865316788190916518087967926220489073132402274105987223013550008013156977017945315037080245045629696704547338307693640908417811265632528768230554315799262113741994793901219695158918428408074643053327474682750467199363319330323774891418076511577676965055899070301289562653420662582135519917692123286039311912380872982486179780732424742027728336594994800602503607457912119477313161607694526476798984417338569515862740387870188305581463474252384364239847443079004656147045566989591910034494995238449453915804877718415879043593872965044455697663584746923806386277827687432677969602764110908569017859488224474327852531042731852400300486860636319994443060945315939134731443739465839235492977171637799406184644913103430703468511475765896910591456393435307352144916421635239696714854809877242059087806012351997361623689737146934228987520958946725013218844014923334341754731798822425594502629589910072350698867664098789068579703405494987323767755911444835468383491310624510848902301045298701909239670516366603909193010249732625973262797426154639974420535610505809302347429176266424913898556116979234869706092708661155569258406578883111798179025780174533261962519226518705351016644679384958260986961841175541949128582119566254920442928274739513145581917024967274815926622787520596661578739274240278429279561390800899474790965216422136171171418764741522575059552123433180473062053369492062821304697593261655403498091571735972348159021897328854074705755929022322493620392032554206880325345505968371122977699274542298980449821869244487999954461641658097664420826592431795488698956062895851290015426650898907483796102608942044662120627267249712963841005046544675773031178619326331691349220684760864471659773359492539071329809089157082325260823351161646602280794103040924391784655315687170776914221714834352694804559011160394341082861867110366178831923833515012823905812658661129257986510407929654665426277288864208608168479491304936997381983063056930332350320013696344301992472649601062434796089307214638354681949430372651452350955505785408414828949529068558685803987348247891181668534888144501395531866062958257863318663935196264615884923185291050817852968745784056744498362164207545515870437429416283240561069318447720715947041846374826506006323407923662284812463716935463882780456806623376389595782453467192235053834261159669215412356900108251631109015120592286173152947511787714035095587017025553521423579096467236661490739959742258077815629770104417650144936243028935701966144974866526201591068131917610603863409477368135771038342414863535548543672824036066141595444506365927808334691810438165786543387915636778625491399895605240828488040155642243846445460587648064301374723634599720790600284991563470508799348420355938756211820379183925430906856242808646371391906675598242715318142100194351437193153680165587200850362607241320597426344675239823360810502098822466489348925825141596966504562005830908255851976100774106381805271796281895242429641773075329897558671492337426787376145502928967453735377216537994569766931512882678786266125371884765042731095679770695101050760918138032002864151233370637560707100291423957485269292282928151718237214710103926382679161068387303189549574754219549469968872630530706503397908275117336839367245201721130131985562304657216212640864688700303904098543688317329660071517147786742478077203380880549212051911788823380231238034883437635638887183522093680015696391084086436310048803933784858036220331637537466039589074036688136991918173060584022566598545487735141750547954390572790967057227837683200991065980499977998524599033068339489653570904730347638597818585307629465708435469305574784003041005963755022123291135518317249632500516367121341313810114472208645070445071811866124605020945320626495370187896261521164995432164469536305470330097896828239822079371787645300542407326932377561599568152445459526785531268666911378503289504656630788293021605536497005407392504531157153587658306091567546136643059411965716271651052569800906937437043626642685605698148091274371785967919622639324459173665447278968811034917927569981411718657009363227592118323509082463709778508834927880448238083427793768377222310148105899425233698458119221304117543174484320177133040619892674928899681986612471738095814783473184643392960326854452594384052809466076836445307561026516993943050789116600442534054729850490860817472830053494609313768903916002570499314748696085368436356437279225975279126958420198940677924542666438784344939904472593345085916335627213596873801402550467328859934758344906897045711061234220453799641995230305882553312474156276524759813898226831494496247679899265458478372808537510034081385882848667696573269299207707557432545339108068490163926454861194398837092866566836975855367806542593570001624829205272424659092002983091332170806074507917935373178084748941023610515842868190183621277555234840394090928389825641573286138248501002758737926328649645945809784514555221990840237980572489331932981434569374612319644354734998452669931711902819175409831934407863977069109324237927211560425036893499621855896976969265649151544760439110769587680271779947726961392428348225168324071053768278867179896450704542385166608509599555021516409899564905959034447665626002869500191475270199763625159286220693025133609255350266840684341415811339550591711772520058764137042977216793112526273730433107143639255992593666898595782461274427363254034467570796347307065958247779980330197737155491236208170066191452066161305334977329396627962314233199495057491732625237417682185570692190492647181085274361132030617889841297575338952298516120382446539125863962081205605275664475955432186975197820852047057438503859567111699007585596685821250196615913871826536455865311389410516334565810854955830000271333664511355084133754997259819100978590300141630590053768619484078776805653031289487653595966742568969974597819117838261994882273711284740029453780717973818271787879092223541840914811988602694117290348340826678831178885856548247010781033397976509746085876357302866693287387077624973476386667134481121052125939446438004600160396219348055065596971289318440311721163881848366123250203875215345484184691304898349772803813225187145216821765649763751533787507419802645839629579597186084564798171816218343736254266283129357403707342135111621659634486624427954065756594862162921912226716679368279744606447579523075700091325813216596994787053653521303038453368978301030093372033515952872672412969146606576176465120680442571837050924977143704010031012903869587502258542492971655167465942317888350115905307540306799695439014162708742742631138951106298406402587635426302188301108645318860924819555880920057102242024732300614072711703296813947017377058467238416040966159329066351550270563034385858680608384287698530927331331448179728035429458716559944993378508222523698263337347180283144711673126073539476276131609617343834782792058073556185272546395902468158325469354288698711845292533401113463806449601155252129083431548983668640238780224728130766047502181113776795911042497784060364102578756344191297727352797943269870795340218292594010859383563777886578614605277877160973142583770447075345276611204213793933465476188679489685007069672188566153065070355985506122627799688847882966641199223513303232956156355064543310743974267499579452770961890408780583364544284097085274731969137905301529183443500758384770252381733661892649187222773872287810354123092047399303639739531683401676498347712944370518686581623000024625362600965585904742996038467488579547684608978016866067394637452224696914997435408548970384449216752196080354905471056240226841251550681404480693229836651136232913583749796887548019112065399746860733462515581318374501550242161551578332663112855798511883948553035666265663588799648038261605942257410589435834160043518830629052865218450480243391074632783511130031354126649719605113978350359274201878055485291192372788944256505766918498137754689223903854388899939821250543086063382236428134060253980483182975021464217293010200181140822171693643106671143782576620653033903810936349500038324895046257221547239372378550370865488736478645483360897966278304533987528517467004277014052346849583348823921490531331080305945676754235078053863750878142145007323081471847597662738574882993334446068118224318799014142525897036904834526927593823512928090223424025342866145684292887728671333345936658083054518253815209261096444799866100217483461526676079894154339453077726135171742116220829435581935794668939873180309246318159004958881749089501200667870521190328798078539754732690025785286027349827451111807624554601717817694692299371596058394586695347155590356997108534112188996002448747178702013056083516830570184707707861622208767291898157374954303528066933263705813304252544252590256751892435584307320691199796538223809427487916765167951730133218160428309202023542066959500111455345486192607958964696036917258552623057313957668738245107141481730864734293055565080662136881569435222223693442395089815560596557267185833653222401527540066516667455297008883069428157695223786196555381256207792754666422102688120341084502083624922861471994100828285035337523906485977100710425500580504343244923238644019361824855441025174523017223966445918244331993965884384387098404970885739298247118462033938893655852016577331245698351026034037049334215248811148685467905530599364242232578014678792666669602914056458936222965635042507285005172657735143925132816809523911596238147868832601746595359739723254548779659061081961838112738949298670533491686010875120127206892401656717648990559539593612565588895559180151565275764778141479990375035642569623423577057244565950069922496072848490021430607930835674046927805811751928452948260536537299620579663961432820874535883092724737994826728135691849236564566952544202869203952627053900883304025065164454809244832923584288868657462881522361232589493490822617682402597245369976919247532357492371412327779190940704195255635070048253541318891402353680331358819711089500525062778669782438109305081924512311497966415712344013721081089245138526046701858174813624445922653915414540264305976541102065429749527900376247659408913504961119772899511160258031103809129653842103661443661663138445184425632371005615758620012591514566189118775532159771431583229531994901238579358662444699490792669319321723475453597186505045606901763747518720031890478622001515038989245828845975999701308270076668527545706122577833533894328092158095015946819913186201965805180220572701654562238383935492369076443204152373493591155648686726741116996631078147408156057171664765685289577088004286852567378689996957693743924922170791785864734656649182943309021017706030070791946921945251979116479113837959011867403221985497389269254096350089574526651103028456083131516400769540686964718958150095100431062238292845206471943841060097654505641699203914021485173772274727798802661601695143393279873767459049214732603645483597125418122633579933241455083653099032409786944518382973219989463507841990379946832548841281729651148600353679939358007567531204949023895915787165649777796605924618428891985842382851668992833078800301127261371876589817278380088723855121592245755447152335422685655853288991129650939993381956510371489111719718909667993499974432519528960830109088529708736885082677189653846771035035390657658796718630019669851156108326382638081147995154757243576555989592423483481668189726015761548905154933791750107122933921399311157848741254371700490224422033764432741809933276600484348041747463575218458261811758825198154066985070477231834469681876551554633637625598126309299275674144554144402160956831668749141267141809834674155720243438646283869698948800404912627251300627604650511771852099629104517227396858569769666131737935860698504301630626831684736962051088083663812124685021715371866906659143040688210965644948872489719626354756177207477945805916371196537657024486866200103296633324985365717499787827722436496457984731638357049913423761401618079726501856104758991430972695013787873260964347677510092107998923690106666640982150060374645774094091349915686505731051332484667294620465073658060296322071787591426774715634821781216038261077635372411196407992677749012164583405185487628541250290583940109770592430535454171667544583795534355599126687385148806239343768266769167361877167341984841866821844505790963248892785952938715718704235794970352146317330734262198784365144404898801475173092975294454683145567880318632072801748101230350268019459468370769680707444041613000697243030007664987609033194822685032786576712333926633111288258752779204602801467304489894269295212327982695438412059350016342826346424415676680297987359717003124604308615910295052560664320013746656476425059580183527909034817563544784350001006930905752387690725246008137947364282773452022600869031287404424499122375605832196769029540861375557506901249907615825694505732537002521647999082114116123677573198705600707400983842789814834919869396832008369992156425790167670736757217431300189119620933039760214693041966177828287486923100233827105125560450274615500642283173418319091897032634384317122750509952541211661897850948737730936369210247793440883237665562488315784380286800053598117778467197814966206115772427863711789256816333216823864206676234954419867476242848399689598642840526022495256047081724139323272240822469071622671154470355990026910424207253086246604742925999327314748595280469223183177348365451023719854786240004817011672757485199000515449391309390468669430872117553462025229629405998988197586812981772021342000746257584766375817986048045246843935952190951786637823884663627056793945593579714238708942962011104802988662933699752865580579725688214141653841779809205268748596884162752552651350994258174071768605875589258621751510408297839302683074175577340686718027580936546229204240829495706687858396440049044614971773485508094576817928547522312934742700526730694903568634110085935198471807450121370254545780590287698680315081642941274016262463311233236528141019174289548938332671922672508982392350179125589163757286568087345402681051029950119660713198267712967249064904599075575597172760835345264344519656838879476971511986385083158678827857739906052135133726774570611275534087951272450000232140243740104775000196858096223685480880576560174342672333155764763015376497111046091660847570508935147774896291053431559400857415810178264085104935280064426193736463784848531213990760178647970526421414325265798966851965075361581678868943871150101295551711764483152142598918418183906837862853829365836449831177895779198828232673887302154454821976229191522880752758354318674453797028782661764244034393237383923584536408949713953849233114699198060331566440857055610655022094681439514170586275863192658299843761484621921495083132633897503948268599037660570831698731173533100410343037530417058372408613562365819634311117563012267979973829333406240530120173481016989675902391827520600743339926427753797523406270563788777010804220121477467356997484385590448179616095453681632237365286631802951289662922278881330047841233935056883217511801419955751787578830858980778263560020446536538290247104827922734378141285845325672196367471438651778296831404912417298583923404935439752677016197669039927429102053648402077830302478685959490273588809964826068741228182268187957361236316570224092058774248831673561818569728584679322595403939570787454226382537693435407079444068092878174873735466349004216094610700885832924323367330504609636113972859838144444217519732790626919901138358938426125521649328311348257403531723593646721063197534140778557366347666558201961275258651406966593135664094112250131519816766865422806823850679867412641727622338855978642598366091333437393551398080333329275360871127367743962922846833291300045273549258528982156075099666617603908833594889584469511705380998966631199359034334643545525175492514159439588297854981877293855099838167185111330731946994388426590864948000961344438019800285738963762198891948364519779209591633105450148754894635261860464402014685615768754187520660799071390216787817807741554605180023416640748547009560807759364500452595104603739590999549990193850308210178228984200288379007994348239084688057746204026032291889141066962953263060561663514268901928323793488274676832016502451913584057841129038768850103056503993410155242674209084293728652413879621973459889011270711384410451140598137071822124698856407591670266045401518311925446051966629328952782438403761909875303128348436824249576121819215653686513708083184584717085283500094792660012852662045417804114968145752156037072628081467967978699957675537353911027441842902289781025057808919269029318127807127710664996637230781025829029899668696594678695379723386309585527634067943724559987817245900354966768589502640227469929911457811963145991222741100465682311134821463456995878154823065985370985954366077291712853937497847637433224521170116530629633157245106675697364767936997687429184711021253034249835167460719457150168985978991792111652097588701781769673416242482256379878555007507693155271808734305809863900329240796196516820262138619811179081395757681772346926756082158160940485424126854745309539413250354037411568975108548093940012967132769945963388832840120947871997108878150517744595706450825549239655890510586302410014809857820216144577280466765888684275405541994653706751797547638477449350313290345733901597586911686016471465141353570071022158074724660577012769842790470439302618878303157149975243301652709343213231739896023682676588035768681607796706072566712167507987224191832552597821132608485554504872290883204366316407374328049697527145806796405910914498766679496627760175632928916201118815787006922741940218871646867787596358280572051881059985331606155585163722806434700201995044505272301126978771113051093231038033838301013963899365558325082564407455142816925602950085581120864441688433695802981643682368056266684421065068501719081568559486821804953596631510847578700787870731931311403478658314591188414301326030202743441284724556276543138411648422031076116178895382319594857409027080502090054952043934080970881950649663002880561843120042597414572250885213036454680822984792024056172613995492302408706025752217001454630963133582480125413450039758486357942850317546971290093020600062024033394333379265115016782280908405273168922404879037541287749457220848768111537253611559218679034716080495022922312666030657244163114100637978725952185943684545887081107709875047794886406649747212559751120316526089178380172008607100365007201301096695263444178716858798708711438017108473883824592859721593843573682572610539691239269654599644571504212636794640101136199557659057958564331190041307902098013158393227644945510916312107979467007990524064246235627205029123922971340399665914036444191757494193174677659218512631404902633276549514033860962768281361973681059572463891415756473075814317262705902058189155904871497828485309824445611353112521315785312872201527976601126755060698401047849939691787180485972304940881169419653192015333372882797551184743477671416146743961549271953320812562687711016638178224723291925939883477782175827931971725515927311725894702634921391639468385523580100425113932658496962538318491278137541782357979235076380554477171713250391129678752261854847531396662047764212338407957356666741313240697962775596094223030726236377095336379063909804992463681728887985621865152241930917175344778674449568802447872837102156759731434865614233255641181420094500178968188924120689306014514614231395178821470364352613750976757181927622285315766930870069577682240654265741461098052283438589297245496821819381238022230436043767097633561559115013856539386263132882651892915769363373279292704210026266856021465329737832706453580517085096654135586626192895824438325951109666540401327683122792046543921309094645329970162023816975842050827229767024395219556438560623441214999783311427277524093051927087426388597499683151036965647314133915959241171365985122109110157578713911820179249948875952878239141479546309282481496341902111895829935854792221507394811669960785113708222950750657573672668330451704393251412985703489244121533738412509800605750447214928205827852836568847304042507321620969195176280594982755928020031328681987285590127319408092331470984414856621902270979902871777007498821451390427951195198837684838961351717107783719654664754067126876266162053837206514847818527817807237589274033144387174405757455504726617426051529044818072812036411751371198497162172311709278602089735423761414097513456733447667820572104365521677656427640364362204904653650709072087671647426152672954067361192943787863857886050322124337071848039133753758528488120470324603799538583975475860722791327304293165401188336544850160625508510244097974862450668469019422626110471257863791909857423075747301153163387201779465570218791274907881703670783974414752731273849769336690794708734948148390850000451169126754759728781295891302611827660431254458243210588813635248633772788687513765404616626946654954470886678041616329106250977650756332291607958835801405941749195820576482778830985140499730179272960175918404807421322099648899387143756780628374049734980734888987804068005599062518393347693559900124852623093814150060796178235010268282756599658927653277988745913944530289136142181191252207120715638175661849804758862625021560686919045690812553004983343600849879810277748552733935526939742084812506179885034931761562602167725382543291071396398355758474586084776782865831332370300122249773004104996415064975360962005840116047210846913757468288041924599312328949816843294808903956676570811255224841622860114354327172957090088106248625319344704913463120961565859657410251150172234943189635487370220132645304544128167836111003689002788459338444565853806344578371878193091235338410675795100093558643287473454233717965069517106089815132979756275046711197891692185265261529196767007625215800891896969421920110705039171685403514245026773941863822096069948091044528636439485308570703340023278746202064188267394737399591255131251368191246753835913151656284331772187810769322480151205032331519127092114953302044693360062667225544461889971188668188745125080799696630777926203009136285760516016705778825914624049596888992602786252321621780047616913706042551238534617785916230616711518053595366647332262740155339114003569317796596002991694158628594066054334883021116393870622632474340116208651361167347724988800471171004661078933539363858897655101875072842329046831092505019244837022434571394920036999616006345686718281304278689803540475136538651994534304495757571828352674760554210784753940804683346089711207572759226282333255386228643516579601534635718957020004486389737364357248498019925234139395936169141878824141848889360577621837113106875801371953650275362876062193575254893777615344122596353554384603830243178236628195083137996628150146354177952139640995446984742836773631021276631539915453584190978657566930902096694094038079171511939928904522573421661325359069858190554778189634047515087128720548173019617316752929732844907335246402401932809720606944379897864440664663984742640139537546304454856924141485455096330461797103345026230718715624796636825210404405581466294650259160821583706539757183435578636991999009793660279839402691023775595406869660059477470925323838947043029219649375955492403124434763253756760275362201993371112082717602372197160957000862442532978559980229192654504068147881906413141201523913426909697053297424313651484794169064081160214083221462150184325909566714303337022873746326373913809242324107752060384095718957016981966310128267503942523124302053662177357409079189004333986405492857406944898659207353907119669873656450173602119588579904776263992573079172853013465132254917009931431042161350895400553838899143685920048302229478202065068603331869712844402418697634262673153864395429488378245489367400491926216662347669404920076521343207549120538556256210019934488729039364472407202984701212937197002068012154882666050316499275985068806313910090586869124754114923472188457444730858725597819215942203263560470371837385442061826348369736712531197843191991732101473294501528525471860510135903278197192628112218219099533875603528406458616181397262338931227410368922088964864015413362746186766164004448421704109872166156411657215917122467596818742108790628810492105126346952560139739186481843960850312888058848923926714594353878378492716270181761729196932210446644027930872400781739170480671909722183154965459073634804728478580765179480497610000540902316890538543339280477846679489650964133163085203049869537749380952684652256332029689191114360384907291647768773006356871116732729508959346055901735364585527226724292639720658528112873484246038742742256035827979129803763684126842156999964877312721621728038736143630262617084316665256026352377768122230407856055654821072039534441791995388454077011831657150710017053764200296192746252531946543377740267663729176012611655113060264215361714213391641834120724207669549023748677141653930371488746165880872348836320032342996669038456404093605102328140694221685102637057361534752922617628900563138239006687544432162514536349736915175820265295017369141722361502111637422400681205992874442371201411659723858859308269742371855092296971395069433682952542670783599978251949263623946386503969941506773718039201660660676682244105950025610776613005823688764109851738131656490892528557557500664269475075250917650665171940546817402724884328894982893382066968900470466316229353513307593477603833773937689759664959510701511474492026517745206274980877928747195686091105337539518555552013209584840563577167306361011065873974744860338949488139971194422741563287067272348728308557567551358087547100317496672141620599849708819400856646680812188776270935619146111577451634615191162336874959957657261677127175342064565982696881023681768581052684288546501204367145993763723433558353279161582231681086915126868381858558684106800373636059235539021933586161579759648321624973154739520365448084087992984418128746820511108157389976562406584182381095293958746973351429260645383664330932751457610027913976111013224942062537527785316315566615445213767351496820698826064551313440139323327598767002534530705372043322136698079519813678886872347910975846417549335725142215176522451107535452401378330239617637647836658948070664247721658067481686433346748875184561740141908933682201800548799884466495734457884130502153360090317879559764188344146370289878628413800460078717812037221315844874033687859067776903287712577252737697687496647582028951206925018151577704810652333874726450930029998069662733434622968087257038307166160329638117294494585160191773940711331813024411982864178100971282895499499524007281056185632328721067845435940281039547890634607791708946947748854344169485305729088584387112084482383317249027252487767379949947840768334376133936141611249221314172972094467015834522457313495432815473276813013833094759797469493057398525560280929243603888361894710454377581298578962733400602242766290826543543369971129571698852065065823425930617300741825239161512292260357790853171723672193318129039988556499819474472425765994983882733730305153344061668353371202863720722751373232183239300159427904328406677393123170866164479769427605043879983900013318246427843542154952608624990701517955367600076588160367645501911323837794233794688482503200921073221941548803717083569072045524764326627841815473466626430392792756140881351900607331578697409798926913428515918207903380342114479482009274286650937528715159627149691587235091105509128161651892940610522114242197984660099585808664529983736753083443832576484021067124856217104555964188623250810233039471474848374531688491336503814638406376058418791687008482057081376674562389076971826240333667645676260084418657231541454175603074906915746686327156941077541017524696232945705712871299917658486199244503981140972142644736094753638180933101119027265226001064179825756754432690331548015208048225548361789124482570451330530531396323985045305431532360279622843826872261871098498806443189728525176943716077549914855511416133761664936506233712419639059818230884136041927095327682558577131564691386387945448741925683632393323988497867161084237174697598569232194359631526059912437302649891196488727160411604236982689181782269383507260553919471249073092422081315312731112084375779295977757960879835138136211816645583856010076770157381390828203850929747448115028986643343962471693492979716314863020005609519020764858937686183486768761866459024384324770674943263014764864941267671498066057168170679526920016194844660093046196392990795287832306829856107811395782672203406639718948927098559339772456797339425831724150280070481081953996864190146864574398751498023679482513446772354827253964459293950697195905632690057653499423265871475953251806898928400035319440619363964439167262607545362875228316735818334463552022835081175885507898599961576623833698189195251543692946511602773734473534874811242013846610940275047083247864419481094465431370908824608084186592316792008535287256379959195577417979993491694178798393148416897074043372315872131621002937342539380741019528449635012465076290526529687104853858047724533872771561633736754695018732155087565077778965325380747810669546551325659508217627206218595326943714884536462426698549790447351526462053604947950357258864110286575615173911562401900276235739511457318269061127939168787450504078168123263886895107150172527916143818976265917685986714903446438884795322414640989117442736800917174554274212490793245786329445775664423598762597959695690540109504034782355232086298145977846067605633204041912504229154386668859304682161459890623211983315414562132411563783345947451746399963276213720969894107859556125757684968346999224066193292049480531698517841515724247393583057299475616092993567212545620529815192965354991051968808825105519391008965590852564696152147649844665995343737342085074235626756508083169310010326528291910861522645448598692330233391022643981142822827946241417878163173867166239858571415356000983569732354587830516740410113338018495845358988624569263031211167177788263518216465660809033271412468851145015934467511273940324706804483561517418939648443203781781099550009597169109533522115215601744667724653656873234328015110061767205386660006747266149725652899253782233350331159708563684216349013492139214786152262863281275592786787268410854315308475693303488604376335176855965225078629751537844900736874716618342231045242916205073437435784359561535825200666219305122793469393100392350654947505632519711869008502501115924043906003037874858215468814249138344097975275535988622340879053391398939714817873490365781388972971356303442107434031760994680276454475215728750897213547282591044491809943750086729139177514058447170383642097529271617134660548119232430052049627561162579637245243900010385276643306135939091626467170529064634707518190960591917224687150014839146987063657247632820250451299443288371754944882316568375995420278818854031071884548059741105803700304239577834906136206398983891979904650389821971126547130538150310491452393314550746324854121265177257480376396325958712627494031067896365934291383771784125674027646171257529522902542756496865640569567915981938544342619639014284573249453775686491458426039068942642205521465781398446542290689344765001741222138449445654051154750451271767303143524580948609344576236054552024404949885679787697739572538045242043194518590617484239506296776228800274205764764267272774341597037697027677640937888965339417150107737591748072330749972833993838965569123564137579003485000203245881147496728083147286232732286160828656093163481656041464219817853274742990620920327817669943085540805954984660537984584501322230359187143464855067320380102831317907795573298376305109702547227825508064131316214967569072789116104321248086494013885371622973012411230967826822701065428833300342611793072581672227162966965417309457283399097964025605827917189095851281647203915394092731653854536646015971673521924627680944459565042231914968328215483320094994657199159504968349705858187321022997096167765120083226951374970505225836335623760814463451451730762071844624290161224425210321092553865358477684108788696930265195312175933586112926427571487537810611414715809147880373263389689241188038915847147270364055712878041409498849507609715517424857876920191116171577633943926809600240613617976863889720921653817702758275107066284745346250027693371232160900910273714375306801492104784808800682281041485043456647901207459384455479819428039599821784773931638583438578636791198170987884298941047616869657472355379183393083740016839174418524421730356499781124411290224082455815655012071317586175018513713531892569370858338361871192879610095665506999370212929334986640448605608059096264806485286710796671403958995667437391281219664273287652245988933795337579555728249834387340154541712556766986401076326654358601047312076747150917415562865581931709560919647154100267406288447171047603830573652920373556693508459444464788602822717348621051038752556742257166111474889962054559007196706468900065903923293699494838423183414958657570480604301257941358052552340361213652867893115347837765674393359957062294412870920930593767586205170140609178634532228914230741588565014200371279759806590505789731584527872275299897027731634089777321559358431800704226949516308784664800088797013508111979443638359271766808927689085442354677916191592513768272338547737689801868691493590926443909107964874871921672440183511812818832521401429452986969882014475508380156289036875186688550060168217336688150094818696592426478175053511336096513900693032763552434988844984139374959662744301703817188215216133816965924246071131331332383412176659426153373827936730098378035169246767939013775152656483361313789872347901762415412449811020096118615022741709044851759847470701392088016676757854758239575880900931001923165505758018938207460278233106883162367464505864927771957792231744744827480134335071765783102018908391655369788186511484712731485045976364858008970069287916471215458426312445490014962583411992207522582160139522910220010581466350041711115738332111779051710695593098385795950202557802370262411142490110331203075454214588974800801604624788650409235762392871949941516004098717598310363353243803206528928708219295092296924729149352421769233490441610862484194186965364425632480416533071956926226367875753455301039591642388368548993451330703473895544884414864976550418715241372317358603396536701618482639068265641952665367841139612364461713322621784693426029744343219018558848887829761545487315596302199457883419024911838573928241960491248471194944269175201071324538656126332195181600817628943672271167387175832130372403537351588702951291976117354240751046320476728598751598414521796935054374801367209167063939109687803018508239722836486127150226847689433537010879152732287829094632807069491666637815143448946224570560173527046540727131852990572698363690103029958195034099933982648387573679028181585632859204507891825487305702903571740782684195370177483932949738185141979110926358711924000461573962305878146529464894598801175838619124105407097312425974037339735509638196653049941204688966864428263438903843302004210878956266093854642843221112366416628312244029457936794309425980644004510894954757699889668485887587745700575683356142422413861943070000694127249515270433445406250629565281722840606676362513453583527201090001236976016239190066872881081657635733299980892012908546779814004172822443845443331338796995864426541150431976641486868931024286549778152629244835760645627202462467869684428440945513385272006940322855281279465142013387835739063370655312646857016161943835921186502855905783310005336221485376453405015467987094799018370235506859960321120639380992418113835155998833793532663220652721853519899978662786091807972218708364371289131635305649589588047848622345352004121686560033001586259599598278148390751492415801939804978608826496430715538320371034838052007767241251644847488585402577553483509585619624518528726909601714053212008895242765421054854461555551440389863050108812129673923253226545099794750695029616239904961875166710823342531365528821766017694124970008117092293964055571643704517552021453167390365087162430764206604219270520799530205322862676249043765007973439571586114223938377774081112217047596853892302217864790793904679100423197143950117698041406881621437785250099647694212352641720672517136588023123172641900688922272642209788705532182229189083598573822378703572924160485569570724830926619219555838485520446427073461245644172089512827128761316067456437123367658667610519546671622429476101176029788101344265262990775667213345146841276489152158801078401749962628522761406179771623803940860228484069345363440633778661956674823954156871862900660467812572859837859323672434481593378774209869837996941662927977920802789758716078423881743551206845598654994763284617296989312865037306638128868273126270456741411123575739008093917759277398087898865423344220753168838382895700061610314462047686287985735130129964572092235231146501037550431382404853168951435540349279048568024568170262149328200746190391483994350212745612560552767136599432752774528782830474644991785478783491705164733416779009801454869123804042505017208451474728376197262268030116025774331753766528024749144383553916684534385669678521394371462507890711200435495793310646437057345932037445598878580786001032117529835731650766814535785156113979957543510393503635174627639732693843780007446791092321912571730194157337113877897433763468018031581533721466260162985932168224002228684567921256334447372480462916628075490905888239081109562930123028991893168830424939886343663077290584669274336281255382608626424765104513185365276578261866166497186178411911626683622193485700317352723516120764309128202169195524649888243137406130043780569170214586705514374760825994111351924584688149011982243586902109984585287750138839230916668286687291308936295463095045954005983105428181878583651222006991094775715388111258741868558917127825970968616143636251021393217891983431152480479818996641618468932063935630577761563150693321341232533586120814369154987190984064844730054909090126635346311688741774958409728733256674279885585634939584673722942973383937479321303705409653361885624171395820693506855995150808433897370844909702745549865885584419847902877937461093961091190771011501643209591897145516894301228671208430607287432234047245765444951136612931593484351693601129105829695754596761556276989740335765818072117073647567125137580179818702951222315213132252736899075428567348568856929896277614771385329654904639749469822859879681904367454963417001382194278101241046779337648885467728844440277020159830380675723770473410562066235121276864198186039120020347797994080295002311407484765714981029063192575339780929812784827337734121099636636637942173314953290267678306331160351392135009586270967848822815062266253738453821489641125346973293213156816610442306089044832609751197923145265943930553016215597169468321676321831600269337323719604298827711557915509661944639524555615730433393145798956775414169276645862354473399910691953692375481158496984810531955131118143388300005803144540668364406263359788780368847273637568356129963213024350192678299232549894793020514906081440179794184937712880300211025793992432928819616094788234601128575979837709900349042657517958953380761178685400762442340506928313984568826570222318238339104666056359159604604030943482282197631855622748753019732342823166131053508203511992194225493037437945605525536499327483850799961497677843991586455720948186376284332888687433181783302176698170180389312746084011145468352089022346369171187623732436099064882563275083459530347254669421164621031632653686123533924862344489033980466661625279391722782664919808366598474815992153117906373878712065310555778586322862642709643646957757292204874582750256669086546246558689968096149521590052058959604869269334264132156889391576827928241555653778666635207126957631938114151976406317251228061618590437258266037499748487775004748986900927284262462390245618362513866596059327153073168395053222497819995121734055829512522298857477948262808083052390662166872953901167264374789645545263767688374712518575755996531949752533060186768071451311234160539518526082132955233355217512048009435841754550133084661040784820028311845361882217131128674827077959082152658935373722080608071969539010057381824964809091680338954389771229651046912697115639203454372790403809074935437852406396174469964990734500758180218497370351373134297547709415423434000062571907707162193981976661926360779634184039266129736025135044062456753203056070170825006512415316694521392326777802680699514928788540403153989763942704387736131096189443824783630530327799915747151773247054226574026145123116035341447497824766425768278131068526853492353895815213479030516929314068211807490979840729378886532518290509114887710550579029708041811687333432456588807230511910386539163287660277599673721748780834354659061884610763550435264493849825192470161189633066332801435466394231348054367628466455665265575462885966285683771330002223940703907941117212334235772178354680714255369759664817480332508312011666315941685211723639619613784567618110784075071556038174150567445657907193152457784203419573527861704028826326622869929396641174811151235968735692749755979266358732830122963061658029765532060432603567427814791137193737099606775093808363776730407684117933846884584273645309387992699279181322189788996523468351310499652548391999181265452402995250076167896196232943130527125566200562245850119676368853764568362265020184281662238498836271116266391287160558493884492969094924566308666798022112369399232005296536391737570906196181686163459192344254672674097581905047687727326727074355825948548471637203096975274634890896857583299533555655173378133232856864635365881220386706222251199849933164193199901813134617810889110628104638454370206246474125775606465849700744451631223145436224035302162300588301693575728356522456134896652621556900991027398293291118336505686006984069992367347110317830489406935693085178704132636174027522258677455887121051721927754812845960610496067018006912658571002341764675500853760735747889607005377925767285654210715460366427270973889227172361116167964684224889191552925958179875073588864499208887792274323788386651124982467709973385067199117258451634648760583153712572958788273833547690100746368392613467711582359680934940925974271531061366905606163390443041007317530045270283633878633224455866457050947655412057789472867490035015675608786321541793150373395201872824041978175547002527639312706741257069698066456928456250286313839764295193708054510525099685968708591363419118310835340906213314295830134073746225795917489787659120857100631482998450049064739480871977088517650504964769656444977511025146950872929426290604096332691113566930611519799315708658958873258373241083109914822706784870977364661510478563253393367998253689577854916481824723955769725637103281735444072333013985367998886099947718230604171019325665743139575759337684285098240218757011710050836843264644596440817190733271798032976391631849233214143990825369766295077295904110168809299775571590170868108471938592163096402536165782729161728824403085087134267650310109484986802184350090047702340308123599997021742990736710748614277650615817472816688851543483297300586625324141147593408056243144998442705312260750963287346401357315380607742226593092244322921927251086512401343991272427722560143678072286228759164012230626894611237578953924359065587443151309434178805023430750826049340920042700551762031647006195976747772609470943454084963326488920863755528034581969869151699488454551757857252927245552742312153333872061378377016888792063546708729528399830432967211314920642263189193001055704840371414497689312174228928104116827073270668816302716367935712004871481032031353583433512473602703390069053338233767839292497033810144427163960841673649782661931332007228630885129847582091340754305352503562777037634024894069382305652983584184169516409453106750307349067558505576940948520583190609689738604318284349171386488759515406361957595122972205569214665376463523217390893604843831343796278041042243967633487539346764575351634968301960027920342290711010441731596857020113447370893422490938545433623662144906438635525681991898777377948541602590950420079178683409246592245486357052774786976587471435269883148910422305597996756994453199730234166396132720913099572189472683582079765615273156790096743654706079174969877801171942106735929171024710047975043402911198302398659361436219016789214445275406232534152813122500542451243422517297234347592148009673642655201230260889625038730206297716317651110583652137518069497947634114780622398581125530487750024919084507488889121749069493953286406721849049043785201063688731916449811121546802414126547883332642935009218915969557775878734837842256908307339959896377169797523233806470075327243214918336735908775714774929665422177588976691059838621409544035008846498682365842216970618146644329028472598312188607004520446713269636768880916499484037578568570084598810099863285536193368750209543093249627059954931705392448955982712347186706690271494557540824293943536781716641512994822183477207952372984575982009357612527780407467316049536243933475710682598829395872559884578278070482364292777072756594677122059425367801287483953847666432821932268396007073464012673462304035729302750162803498183503915407545593721799535008117446212786157476499932022469787692447276395240920494357585355352385535296584717526288334858594061492146017532369641405731728245641206488514570829995288385309295436616707267431847730086533536840819406345598762061074891687166488703900877082605660612079110897464765375553384554729540141734315650607745335692225801783324472484589875356662411112115009314092483830318030159597501504132181331045232633076771227334217521281746110702813353059854299690621803998971263013762260181781744330643859151091955256878666829822541728044497180117502897491885162007164347446907723380604719929908808200418043351401152725744846054734971409522051093520475823204615143364478402505829745564781717525063505278043315965232287937088569976218797423735285250208853337696004777976872063171365747597954536945185153611237379981805276600642952449643445359984260768884640588097073284812242148525610674584487180322749051921722505599343402135913654483758387070146605859058538859658231090953232993889841469887951595237843707098883625910795343982645318122805268218009462121340937833584537641238006073560054683882480761993094262934519397538066793539812826976465101912904948265589545004065404048565665607817810354012870485696711293117664480080303126199601949771195964352836978232558282853863592808632257318153804475621079675501836578481910655477452697053374890515272807283134471465781633402318280372968439309327678373363339177247930622371285918143647953466330841291979353750296953736810584176320262595244921009182991472323339041994872679513363265082268318531379125502595867377737370114655256753099781663841275148286351207071290957639761854367430808351428026722077893753189173267756819035371471838158783745803725960734788772546948607286752881430869230558666166188688620206602980524805006908517937241307595424149059021235276597672527072786521634250576373334321785251085411633759977576587862021265000225651767636829796167190333950966723300277537456626503700678475772358116202003639491929376123538560971098281714407129723829148489734074287966635779393995409153261101686319813616088898400018579743252983155199253622864073389923175467219592828866624220159784851714639572526234365137315654265636281505470559379718769287626152927994889344717351196201642095314679043626962442456735418067192917708583121306134965122391935685617581917219358844226434473080663192394779212961400305623084235511412373301462129139538075176109693266424495228727565733535886332711903779404218265254929302086286236409070744090891243166664039432742139238410694096260573448997069446527193899619316853842242945547492253358301402249656349394030740615259711588623405468952864161062763845207142079899183422102019482037510840353165530289408181856440637136881100030397719211390358646867054167333854461728874795105985985811850327593858068576058405149102388087353776040707738640862628727817082742089408343425576097297045289533609821311943221927185186321944264568938438863220525965886484180771040470365947481991878733314877076003801899820963751821925105267212464018399613896226188760568396830910018535432215596198669039214880669781688458403387899948372282418236142989294909104727378366469982230861353010226870033221485380211313095142968463902538149295417466919972083768718601828367441938246378108107075027411276974657568339753847383724398297401423002067555980073654404245051131564405105088893281279938199757080714013174050028835493850880854094892265244574370734631663830704842038681441819242842844840215111101841320323003668050697208331517067474969550197447971439933941375461170844395209875540242109846809747807358878312188282119623836935628674899161705751351460402140113916521336435823929308672538820864435014698319850980844419933819078987713023381318518400645520020184306505666187517410925030772899459973859897152770723320478477089149437860163110865170788635162509147242695506069374307667996076371075060504639150469747381344059638111061976690123550727027346688560037339942820545413488249025027034307092577410847446021548487810210266470321210071874762543078156419671167573672534470139289386905082444854996087394310154156578107798594190641557629872610183989605857568819608590456851058912576769403897908070947576226677309110704042607468833889323796946494320001611992409301769690389496906463441828214102794863157804571095312481507168436650276320008700569712080256052186886380278081019480465499222219890190291478010311446146816538531129135178101321454208025941130701160855949033183289090269415594068856285667399495141287466529254274706627427506007492913585890614908366528613760848945678181211073358645673288907558795194765173738549432084483564289898664302671112672190598291197828685487035147576872710818082256663086314246266396266655905252188073708126519253662751514709433330785441997838538326357724389530310942921119287626565819581720190219329734855438077701996701996384978056806646848066834391722831835948826845787045954629527027960161680496590172691802292949422468458841115641498048662953630190493916389813599112569679366366859069486225634641020672288940332093893285052069595881915207123082999129418482909498126481225413113841433692737050996252105892299455342825766667230943619000379974293955130795468260700811216591432210097406972079642545870507068236966295864706372035315339906195725127579229090937809031557822966610167504671094926011099524833571541497854600935815214313056026855141936414057778648536842404901690362514572057568838716634758020127591084633521693082728567074555731950177997029845184547707829116682010848593913709649885078680353669833149676894666701929590332363635479668668340516337624043051058087056226928937598349973401304212639814419645416595591753170291045708013560742105936560175315611145280302331852357496224877005721088300393891155386166308857184627669032560873099397613847538115625529722554267893706658419207303892332033077117410933844984266099005025385690062200758977274373152590136729425637138351553018081049129834148953644295640903662917150060012910897512995465010103340793679104630457276397172785163276668187222435736243186151302256855732144342337042757454754499296906616595569637495755647655756706777077471782650968093085534413113792493886937003211773810812767964317415048674896095666277841198455301282145212697458520946410082447450285162471298843596772336767344448078424668689331419342687616630585831595360334660479976062424815149573298305768484161573040690164101204800239629122412088645287177413155304493359714060106289621915270430901433759396915455108932697797977035266701671013103128094468621742265305382175335848669315793102822280669381445831141584190443714219274402907955157757991632750296209264572864854615765869974615108205693653685759123341541477324284899103556189124586213819044417387919658263538275598346866128064322988099960842778490466861631970866419581447492561025686880806479758539379614936523803883358351201093215457872651839647036689968639499534733640584319897023047212650980968260209561987574771549413984822419552194266453161116026722540572054572258857118269566096457812233786742269717687482699990472336714740038398245623919031506996705165939314538539834235353314337316565786471905283773979993827286841192399771394104339291417813235159879052957679997999173989170079512842127146876261187781078942042195364102457990578693355643776042463732216092521545761214209816063313844851164661263981934110179296940987311801522073684796111653476794703041049554304892216392087970734634409899932692092085450702748187461736242836969914747357151643767130119301001270148949823647369907766602258376316729156725577988758282433212767380931756080622319757659989289417903144209736606836013538679798475986752145358371160274830944855984085858525188050489392390687588635749898982168895369406926036631183970899925132299656976595923274105442383419172201696781318236637354873135481304902997870112984640003750244421535177813313014468054463736914404753760482418710947862757139471140801045031422477161697677211354643379830362028555065541851782610333086663186169328580376133192225335247501205551810159823266898924188524721284496887115756877628709775806648235703253415901622190854727192028959115760219902768472740987029125479601799486367870920165227773202530127525319770547527979984230297836214168167997757280272611006432499561364006208285096549917571242833043312455516554899611780021081033080095906469560720514093876057944475829691732540382710190194661948154431672742612229522689434421513197310783458073116838737692089384385670580145409576478344880960598600293610188476430469692285625817275664726405386423102671624084045056109161648764920348745470230881446930606670902340092228638246448250802437589130952836968070945438573347705485288756711468248794958723469386343748886274219359912578078451409699394841086110450221759623465781317730522539814382537205397602765110577778505561512246462371022765984082705934574926793119518408075394117182648607010632220652545090653416124958874054436652043590850440704781958782268376006901032636870891139374858792572358436015448198878696490350447661096890453837705729291552898227435004833964716838054832173517785928781860723821173285961000134946219637567986442461400860584024726984257960059468932329493084351955189728920060509250947937072844801296631944172604377124336004513101280576686253029256932407745587998121040741624175884609900712036288877064929511641514298364196295957425423644263922057294339071395848783291862011220901654547239398398548712729084547148093610217598914532366485713228032844773483336634642341435007039830983440728233513323438983889163280939360013286716616478493040048970394609122108351881965110828722149136748800615331057415049672036966754462749627399747054138918157901171041801894912210235246380249182657710282361432092179560901880541999306893798453055463755292431073590626458246705333182354771173315164495525572355426112635298434269807259572309569231286436726001867701281574823130543191615559780585373490992165888231818714287672002620358817409449577391441011798878955600370512885996983078932323162038204837254303064881329454759526467632700474945158870031161406778708705195103967425084374064587075752846982057476022880713175217182714980664345272035135947947040772152945254001539755371503254304415870795246911383871956372436627060575010864327525424144073910434557047612643457911167220961300325825550250837779834782269087806943500965553795137822629380874127876244149051646781547074470913298432859767753430824740100302890478774081567714720541915370659371971724943686004838595624280670484397546412277304278243554375417076672696644382930327196311261648260908616423055572265035515551927704216696211602843914469730441069566672298652323424320140309195674009859401452329300010634705606915936271210543718294605836930288813175740917706039870507605812653494146482542064201472161938338723197628666181686241209096991082713912127259278607882877126233039395650195574377855765738872559128117869076557411374248941901151590513917176954977793813728347516381870949515967473644603143851555801182589174625850088313594341078355980605627834486619946338394814091507473859151945457798481964672146364071171914174818877598346956798525777062712747290950468581176476923203129420158460224121801657298335870663349830901373906339496779697318532023796411711117613478621335842841970628087973933284224070827552208271282376699048834314035735389759632423082143784225174843957383027224684243177057215394336237119511425086662749570656182543275302340359751539489117664448522929477241446600113750669616398186317128891149986706408067405613415963268414069577240805909568171091603111902169761064457401600952455269609776259988227336209425104116326066769814022673640928508611024363516209521329001735149852544632371672137478566228597596568417213907298746689013436723459981937003661450642853812757115358655609377243638618060687424981503439819931298233581254677828765300255763864701476781301862090862842338114007720628702303343624494078707266082232458791030739451480064807613879918360804281037849138564851023737134631954992186139466872099434102223856161018629953220777995460054136816574270384450826438922075364962783977444313962808168255022618819655108224102383865598207673542930920717441172687882466767163647810408739109749813499817313361216480978850540327548120217425995590577560433017734682689548865523653308659316027971769922032136245061604731211315435634433691735881650804197124049225907424001288711795742143651063439135498437085396926558322514669993100115660571755210183846842125590271018702201249171298191079074686051545116084736280471546220318404302388916967295368485232002281058934888472036752391268789084543452492850443349299412206964992089636268875552545739424644016072339379756204063743825455306397425668830775187815419349045480710551730465226375529553690794519125275107679658892020209686176523734262731209848578683703830236635500743101419274992396765604943231706300504598818698214511917618451819376460106524978819725098989097094124602792402604829619126087104790411496668957676968093701778599195232800424061723844908140247001226712348576563339563973398769648891273435964133523890522629198241922409294911456562581328853438012116630720767101751086068422925408701895121612601774277285042109579451094830751692045897108995432340047115517980742132385835030664812882478175810339351803340447598392057437800758458631383256418071627933008425691047933505470508996443004174261942293742026049312099976117851039896447711245868069702840165187334070732692557975067461162844168340396461803314112533856439867738079601941482630582220629960697100345614963362761150874750737198991160628591505087664095573548455044063558557793708738843736299096718193159235632105844256034882171422892169622782514621735103329929316933751289139834698618886198388174062772072827596650021566043087129199709828584221530383159031391773595869224854624352339441428423507528804164111663510090890813405473653155715731182897641603837826730591098438962409538681429391205069326085001755141866282559719424677248346716142406277408172041768422003716977727693831248208313765395778764045149710342473942256388590970697036204610261652110674477917903705432582561275581542262987507981160788513395521032766708571188731966539422774833598919955117903284229890005597866358598715161349400258542048177578082035881173170252915235138799634085589895237495583891428523832574060657599308694904335960491005298190968301338845719764102786131287552858679163802800324865785440857419835817553312736325923445188574656772570835959303876256503986596124458893643331739387008339640103682990309792618516117508786782939390071141552791884079521853843311925729215150001988499687542118395623342820988555657985868317062312656621122835205198454171168817575585835123281789542653968580330095656023863363767864769632429814856862597032644077475920757946672476059310374005587335594442709087408856691579557874213501339996867743865299589844657548978204768579911672031626260158958117901411416018665230926970603429448897280753886810243860674621495318595975752444072312767034970723332262809927512145821544897000520776386733947979259339496052862383618571922031331657481842081598232521728782180965814583003384582860846717557160336919882542354048090019802302986428678593570570710704072261590417888110420806122088585582791505582533850196772925923974712925110568026190003191249543512483523967310904164991015990985285758273732938803374071436765201469205796546401014243383645706591721803246066754200562284242544654390474569691683534894764817018996663688684724968653017290304913955647140957135803567548972537769719963607484407778045656344793064042893904825531672230845053077898215323102282230378304384279204071155700326619456210473596248125574444032585848314534412236770512473797542272043928558924344931729065537307028866986149043840765304379140703741760175325700755835083314320953405788189627633684960511501290560121326830347740590830045283192884351537130360952338519209175250854748496492159087434964964895822798727344623909989434181867102679679768846219312729122490365425339292436192710160375035149026000942398821671869790933811598757421120213507380285370325098653012556230789790607814216840469914260867769326443368122981524650201722820463479325035959544380374817635901433848682768331865020300768222044920939888386100258072824284463975718223493278010587095573624820912270954497970745465912627985767792583245123801322314399936936584925818715565816904914279520524273891764929547744941932009541295957713263332995732671418010278315477028804948981387275166112905603492579477954161016458180558796353939419111961953635658579346379769262659236499504206921527195135508550641506773716693671288589611503741206977427868478759392331863916147229676136807310752469678479283250707812807676840835692221233516653898988247778500900137868060048364078455225124493655696467872622430591970830110431134104184754190932617251275044248907377213611028190969717009515076451916757004134773475607040308188768447683507224658060516586455849115279972950576073093194383912098259742970785456063601212911477804615445819571880064215440494528854816060815723189751071098058653708463112566250690413773818079567996687260869890779812167024378572341860106562193649840258053026645505032782631168715594018426465153870407055836704834359935092202046042402481400640337098716861830874259819075030877203143066547091966771364573196454932329554237711724676774528995906526520959237570006583489312620814380433723357032472204288524713536421080377086146494862933843947149124406371431412536365465474669182597309464704612213994618961694853044880986576013645603900251100418163166697013628991357882163695775786018498312978111894378289882934999770822122658128859151614019017092515944543294704221290941908813219042267490391346734454280603145373533299603749550814866676732772527030748059701680257625999695653450187288089432905148804622097670396369420122354133131796786465877613105194959923545435145758625123759264742825051840129828019485390018468169312543493751304200821195179464135105753123421840593901960858668980121954978070930995388542010211493899167406809317582239739324696958233846083074289971033723276805060960742325942334319558487802643536272402673981681116036487374899038596803611194026983541385596807964233526488357336833978145818054328568808893787411726705209663098939174944149383322910937247933665357434567839735937618201024697971452020328213420094102721709921220970603213127879225086781462451056901706853390552604084461945333398703916173022859189764287747960028865730170078844616911962301085040311564575433942057034885935815823170396700508595721312987222667706883672957125372165836823066864306504840091781786518743004812481172084764125158545567908299589862473959471291097426008940116927044332807756250587278556678434209482517502448980078254360159845185278127528896684361712112619196537549031943808010439250811273845090412654024652799446075770936967291127245064074347373766259996395656223457066473664763629465067484646134064510086370692235384109296225444231346489744033769611075194533172276923462917823558319022297774098471190351145384674608218012019806321013966190914881496927267459700861945533852950726053170480123180854213898530067130235158250256579293782013938609846171503980875189526648384431079764225324818542370928763147192573602820053656115996681637648236858809394905711641278270131857510433665086937003164498111628632344089941887473802645471584161391724213985280763306713796461820306912217265052507633823386765107352319863687398909525948746152813116596522688515937516283021128622680993011317223293211115138720418538921960938522436325726975062865559335331724264121832721379429218769308307377284192852634440663943383647169897726902527765599711703195369588761341612736389563584299764182359367234128946284660171069896080981221360228400773437048991140029158404103047503230533787688976814263487045369118614652372524228658407829885791177202618989871351594377622272425407755037235770589926461518988611322470471406375632601715976084868119333029590926422803223335339199905641266828928228858981174528263364602774345087990821784592751996484950730166157328576236683379886371636510170388277004564480086035049610809297959392668770140966686945260371120102858164503167747948452781970661647247626894157547010844660175214154929483122010059433987631113529904664899473336002061648041978326025945882393466259485531850807530090373486991681476496263675386210930843573078063955790872864937781948288241568341379194062720258894912023974730224665353124511484803068307231436886074942226438209481026402200405312910008140456418726549990823361878917362533536510670194677481573282384641553207682075382141257477367677590321699875545827509789187479824700405579687019282131794839847813158504368844426776694384474455517654487413362684400262717800600443374790287688233872915761566600790727287910240794585856537593074450466159647483462462276652139846750382027829570211450934060246338093556101288203671414709998295830821719291651310567176920438852393899147593878947206650775127953365942615573164931778602214554532495318978260178576102916309138916906677190618794408343962543342972677201316486156584109687033719670911036557761182603067920919810793002874023683543805885104631951448572987758075445316582071996072823865620646287756251751666955447574495024235611245996348242722157381528919870735294587587193783060497645503436664903434182900074236326353928206696582700065394777072784237255498910879577665820654858898317865415299298461833000235515577548486932932272234346672207650534302732719031589911893657061177679014768873160755930323545165901779506238447332820566410209961174365911609664395066502313715630326093644969460200091637774943012397784123676968028203342621932706562358036410464625244246164045853381662991356983119043813898255101329282651886470844680030579464042483400781904150745192885499288866678363251690745251902793035800804174430099602753517327033588336977156480695841438866031743072182602049404987594655937201375405666739128656616821278851577475767311597380877344026056827146919601154847010689331060511884942622982362401124404008203113405596736955810169000555266651394310882179594661016149162791055453709466899482977176546202698109067808111038946711559826685184579813443944446734284908318503311315574030394405151408436101536494860877953634640469498210529141157966653241477799334392656378815589285360696511298024739256335975195613628595063701729594262819154419764713398231802210698507407236919407680538590788450955408873858182210128099403172320238622681820693172343092809965120624836244794642423056409046165156520856599829470554941524112070136827025642729637840164328041364043177168166446029145399837135251419343662384117264943063966521423065333503449730966914138989721778265210335239767148666554459739097727671364048820485974882946428250018448031225494147026311518532623677429902122800575923561200600814518249070826012115542820192784778212157016944337100125292543685041075897171710302763364100384660422606242796530240047105958508714789923029091917651026020777984720768240951438943787478383875836452127793381682466931902710639971458745105230932729941277499580103116251191190857710556073734179703851989817685720720071951951137780484607605795045790754504409105462608453610042491554902772149964391165626314322086456249625294562869929216728673749049531007228827190234277151257957131006233153620617780157999534751351782040112633797162778328794463500069540386620517704450839984765448204901351204198649574989502308111884151078837704472953509415930835101269030351559942174283702478683504976176330278344466579167100583151983934639534611487998161347784139974633545028156126347828922892939956072921195624251249616307417154209156108298058932617498544294648572624628092548786273133725047701809455206046808611872066546984855298697334884871692770977411597770551277210663131763933649110665611642413488584981218241442684401419817238513067014102269520890609178693237970186558697720772463919662614445849623318726145386429517732921899040928157120493047773710201704189320659982266641791072994416452152502169391805523527987959339177823261093360929991821154003221380307220606580270758867003190305116223990879322009781469235102732440424293102409436802659118949444007804495587410905430001633382280769392036407467397832170267309930172200136944782229302233095601007847417561736767014309322235754469015586037033419007060199719882115026463323712236752675097076800216339199577003581611841873593200842619113878716219137458531557432865705885449667770369788452743038352067753445770498529380511598608143685513523263066099218765940129259227585033833114481679914609350002379440083300530742506130395207991400363267902144746348144847669001160147738987412581127224576030278622574240729568030436167336184555220683419806568074742961726360240561634339398482500590479045779140154033306969362784958922280487071172895362764272298094341537418191941942325254801739363336830509317556680854171752454103102560355007556144239618327721207035949995759184506869098501249846350791592104624158038253120520294006937744837535556207770622869376815795391047008763721975722150464410394808692387356711371670305004877576568608129886358114201966485357253228767054684301489083116557749392146398711644348047126010717568634276916505523256062801628301690768991611350091649552095914748990277077062627065119839449646353800280338371342591138732034954585692917464469550754587700147353894430444257732979194359916912577827433637889704522091607910663856096340717782607018711138573907269590784371934886216444312324385670907754051939622249801939581252530593557901844577434244780555637111645709583417429179031915087664036805329247887541349729392539822085465951513772048745451379727962991869022998608073084960666904575991426906545602718602333455400653909080850510044280450943813373914064307521588440709043386637354403016834463821051493678642798093959800977161779169649957156215697412227530900103514620142874438673301907421592194908164215173579279464562192651093807703551208099609063674564314282292880077184989850699898423709722272302017575053813187222266274233784260191098228557223004903902478551255772047799101863361172540754986496336500630094905968813901115057005124896383793560863491835116369061518820573393709085610842052573727042165529244550728706500970635344106362621139567633223355816134744325501526530283187663930930644488712807039857731235849543662261020800483044725541687860303579202616680181904490097631790658428597957285706063273044617556760189654404644080120077989874881453223662245608604253311391352380730189977846440240140098525705186353273766843222544078988963305799210342161083509262060556443713993196143166131953787494251282103215167637923501671274721009234033249903548993253198630603481023310131143205066814446832622215774233221598804987844815621364142298795726626955094541336017377627743639265654382503195877408237895083320369577229075731410880025101988531221461370407771234278337593619980288730835780488489276291834424587162270526327471721135719223992934961630029800608875042410819905227371581731484326436395749620702210627722952482252402983755072964025041417285563685667220915743177280776634292523868661884530347904166799997407123569890980265123538335441978109186769609463059071185213955697018593135075306023983328408079631634081851171047578624171761530824542050757290479772930600452739527519461882271401424133451648523379215813074092030643461960495390008720243212396651288087406481794319652782388833902548195276957868775009123875016123629835635285531620972835713886115171967498596900403074517817050338237665477067313389462877168697581209116831239836076471540743082467297183786783336402667108373882579322986475728805829359305822670462716562384810136524369836221464336026560681350628483363610292309233195033027481045203525149138342634854930007415032135760371074911919048914533312792219564229838565180992868961160156992077037794948206505600629319341083114177580925599499078362318739723674173939319563993187369135004119017886706178993248462608731621466310928386931790979949324240355536164151755334023025735131649966533629478034627948207342606860421599195253179754041396106574691899955954071493210078763638539050074065775162151539494509092771401774195886757712745860832314245545925017174405422562097333785880572042501918191764610596113368264833186131188196781174850862925839707084805942521627937183080069496140856230693991071735181622882359253433783163975490259076479634153898351539827046141121986725615074482132948417926197188045020292341130485850384238645416597539379732081205022589798918129107348041669236528075719790164351772544157667086616012370333493959592369626661014590864232639137492698184470394474217730042824959817542975862251330034024163588474201262453182926069307700913358890192421588923385238267621067795249076571783826248738987005000547371593371662932118438713828790859303542849183998326383165776901870070394933426301077846070400722743843933401259748738602892577313440536885253734459106503150992862422441911960406543017102576875055177063222438122504795980554786194595059407797127374287306432170121856516978790542029507668304623481343527233916446712975591708499915087243203692606623332639929639522550289093283228666235828863127608012088711171418532423425254960321894354146240759330667081884349234295073120618369849125597880340056541199522878433470322167360817103172743963696612542345658639790262976844222754523512771193757351807021051569639873970947140974349521649703893514668289535741173190580690912833738277148652590896778291981163380276643305541814333698913197500382654443438474128861992690592222885069540444999216304747571163972836971721536933700517558215517910346503125053522828541294998407002788265488642473239226386605535486361863272738417638924847647688362875641755175692867957081267812542570068449003711319414659221031387804809513057648703137780461258631143638860205473715415984001689316064482631260960132812288597737423287171286781866160895314643746987033123862275853700765043987160369865887421661740272269777851436213030298258105349694627202999808197641638483825875973716526987358797829323273736151034840173756021193649944440897845414951421548297571873488661631858740168942938715198664377308607035305977131443137342696631856728344302777683576957534915891660481748440384119280736812251976326744995435919091011738069034539866403678760823883574304995752294931207727814141637249686390029787649924812035995297136553117782460841180403357025419296516425932555387145258365662736461483596642672458342043185828223327169513520573632163066477982998695033081800264799179333906728046366830621039614443971147012040933822102930144431563107330155471577022653123269526046100325201512012273505968226053646990787414043900060751880243802021904525968416218961231905520730824691935911264730370613090174825751993895192646305529281211677430559165100737776511727983508142809466263229890424615446754403566221760385405788094173190971510320332194601404760137915503524621993557157036616788428537460064746335314455037705435972184679143544000994445598217915356623470180391385686645567478787521751924363116541782662299035259934366212993805698020103061676616721446832387301394274591996585793207521226268746140671721485222045830307405615850504021263582571856531293113032402248215984448703792419068400134918467605484806749933949495500008636407422890514859598491133360675176824345596383701304810946225217841678169973117639172936496415436142641820127691620927822732924337410704447367640164580381884536746111980253141031764385405460698525081589251126346724641273031152296985707748497424673868346943005138056486203690867001745921033747399666220850121453197177373366484890966285017479587766017406134393056592376224958256400263785769857144855611021536332876871336740340863779772285605713014169672867950495093785894180089672989811563959496455121478683340117631555418159029971428160196771766547051021433703307256309698551892845422342462134281011040022326005363807107563163378697384793480509866201005393673487211352352411478335320336252190035542193723652017972623368596800866674749527978652242746658165890034399633932687876950119408523310080456059733664793465859505607545322833227648341029177051901671009716857349015502051735616110579108290811396406150963485855133552300109024525386382362581020701847897478269077886982730176178113635535559049087084593056246816059737593445449475140149136827356238741357818168941897195975717055679231816536295465486693229777965311547812478418888240348181497367620423729608643441953395422325979003199643024549314329649964403675865277661626454617914238125890675204825836136017204409622327514505229468785892911463973964549201372021215731477642254416462873794226577281912465768796834419868387837117486026106374188547359394699621421370724676878816594778607620431994976002937714292484473318069988258027557572605314519539154907222344395435949877751387498689124641537705732460618703976037437497934648194885670863832927962213801665787181330867531929446808762798688129800132341353868496747053499474216861928946863191711416511629926718025507086953172865842406019483643207201902426443456668975973736656629721207483591463658676119556462407750168250301902338892834404657156575805932650474503180962492052531172956187177943057413393461766724143417964753970875126921756142339036673210414324391002250680477047779145275880596072140247033609955316127226451921848412119620322112622678676567415785189475422794075226774968429979939461808517762921198590717969303890948795076060275235737538016533291381417344192648553007853377887356364406818591917932788134861287597663285482542401523991382177884810066916435567808575698004727046020225469883495909202741587118398931215594786956424897215432723201378102161567984921609398562834455022075718682651597740855941947791460606991421601061769252168840765509623041513436765119951620487159036988113653463286182880790965356286624528909297106413391522927862709863242646597057808709122309325447857824420421318629770549692072230706887468648495075296720886334508129513763826071208103324458279711889371287072891513461170517084670972694348172189117720571039551560974435538816988459850383367742525926402841208160856736217127623017000363635577657591031651733489798730412576266858905433675177766990965681563264621666232857762024931951772640637741333631001151730402144420747922366061887709516750596877055492970151088637466935502871732241545546343671199738408559561228437786086695317656591476797627199613503212609570464475242101895084746478640443049363731392993355077010476422819039392207884970583514805836325354487169229122483004504573380668957920260262231586013155325740768722311675923626879580040005934726240209970038622077294984106849918110451854967905192878406102231508839477072269552718274226989203161404840929046030108464310873086990419580355304543060628860085986075334135718004725126237575122120142437751579123866583399742257511056198444115735824102512525764421494870134486446320171151376074239283531306793080017981847805819777870162522338875458872709019768057888393709757782674060086101565637391293857024681083860939459002674464257275782514774616249897608505307963328256542934418731323757115024235274016277187296430279238399437755575434104312633924523227469650101655587448461622638978269089395770232479970750950006779723563884121846885540166970016054797049577658600797408829900439390748591393736001203063594013022611614254589754144471927547611495105501170632454326098758124380431476457751049630419048721652957582076325411035743018847405159171950015584342339568793828507476913880107571938865994054238167804288563066266162713922351734764733345077082203764640458187708310304610831573371386851234613319303733153468464007582758001857322578307203902634342983760715946101770904550776709741248937372401917038569592369579558495788074186199679271154315216812081257524770815220823400701599715388134798710350070235782370068249736121051814266921012912740376712293231796839454811464264391470149776060641152278585273414373613042453394635836938109753541620951772186340556372575990959551438132180245909585873081492111621195838554982192752477370637053771122459267822233602525770700366856797369596713292267219287668105284683414028558086288552581251037783830630036820201873558933198388585632578247277674133006618020724508508280440568697746002447291464055095996992603856430293016546654039782616176834966147108570572509573524875164630215060435266461819909421325146676643114637610288702488541451688317248381208551390125780091235236199187679317131581510056536071929245487261918375828544080381552139543597755960620646502123478238000682550328705195154407104407700517137075740245878760359909598704253220193937547269513161818369403840526171351974339413494716263697957646638242626888335462431943391088808210810398867647802557883899275721947653658534635816605536150821367167314575588972258769755335745189874424142619059240876127714573666349901961702392162217319339147849067009853657402215119063583870443381766136270453084605171969580881925244302177794065148336899738122207108086829666470944191864622268436058760545609589480296550551629089156996160845389472016123276437076170493958917675406398781236182765121383098383866984958143079361738093556110898709349823733181815046728559696697730042178843771506703209994829297683766888710728894538924270471406653396400219671963216558407311134462941366388084255378698036056988489352606596812411895588005000333903363047638640086349746471269530543928575490050925870709395575805546617619485875498476484290389053723643196438219459996139180121217154929155550042290819873200141978040819747314014203981296489479136651277907438526262715615053306492006845417492627645018062365114764246509521468018924274240800392995810645540621672428004368624412991157086864901508398175239198933629771903826771431414305950456103283821875716522392276094045763715201768930632828934154014695660341474341244217757205483478224939792516320284928047767637149440469436662857104812425156186408333196367119276415225648499439000541334778348272622943227279597258051494581162921090616867446637437667093540911189595552476493557397414098243879906841984530732792023060257689541280541941422435696415437411777383899643769646812351210833830845246088898735171728642771497654225046013267187717825426413473506619583299665233505430589153736013760485438410884016760137525222721393296196233006412392012365808289847251644352683734912296082805693314583815741331962897256573711377163740344443631165658211855247983065737784580107496351696097804761735735131084177475738978019199812054435529336915341847103438808250629369571786423800484398193485297801652933803710555621084188190340445183515801173686514534840959425675366532880475104470319485673905958677883163545333084784216712850417273804606307569674861562359420558168502288973271924022101920600151581456358628444302034069641071096939696006772426154175908776658839106824486905575972989546787436659146547768142705401943008478192702910497918822560601952428313839710219032220036755510069048323804351145714262362967795885039420606706417431292814234828854674672925596792158776362584501388283495047092721946355631063958948498297506800800191100103878180138261384403514930024451417648882684640410086452675632326383287435180423509108826358521028592096723473042234641763653674416488277644208490651531662516533888700553906867585409300268558759843203769468104226324212377563706552864213829635000473390578937185023021815598391932793935516247901553894562183021102899358146608182816036932425711796364405884667408198804806435346264393242648154316363801878191247195887719699066431258425492042366496837806637260751928909259659710504218756705154121580052892453982613353087303348382978441161735878642575580375701958649074643641274034853752274075623475474298622902094559310465019906855900460890316358015505099164958853199222929377562488285073407019405729828460908983152919797835444876098798515020020887324881504905142317765247725288045848136131796484051374966544502514002521636104547154915301238060812285963275523011418886831230116387607550547264936353955734894893906028263618122812500716890959729251771046979436440206191753484798192713071952785179314321484100000445367876116210499088378862104161333735447858842875796508602171952753230102854191493976147640619280856463882289499865370094550323742212532663496123888391563420276361916383289369941701606814652873847659102312466210849593674227287129089858779525320042577748027669813486492587647605600414010505465732996847358480645407419627735020769043463562883413480363427331107364182399620274971175509165076892057912285618023485565442519162630476907450984692660208637342021331331055208845649027177917752007711721385777408831745637599816011232353609480718961227570338238802986915070489929619081779291954776242414671296699175736984169198227319626917210237227773917980393515747845503496563443163156915143721065758627748086665584715473002579334175692610512434113468084629271453105104431760136182084497932595900506072573545750943884411847760430797336395897235852154416945809932324272316076366158216634384862897069581891177056345145181906454236030707634537634514992088695351125504659812155832114613610696301684604651592605222487437915500247459975510756615008389349095197134940509221850396116383738900307467073474885238379521313885550109391200389043204630530456507369435516210835778893638338766354999648176059747065332562358139605519635922429417387004039797184845914998004288477628364018826168679318105053653749674372280766753330746493577347192607946590573779761193797573922862445054297081191351824529135627431651631603020471158578704978381581562492441622151189164903302675416773259033964716361858723045820288298128585660674745685989570288928604332496730750828319708119236822297569227071501782720641150438007239981071285598980908391164123695902474588900309169096377043008858676611750157344686815494014174923526056499463606443665351043592990679455736832124656269056433141214360709540863375175258116376852322859503554553819652490841014431074466402601367203493497170600516547426606260780407377325038912118052554321282817515108016411788884873415511348878558278205325798436610891770316070606431711097177146641674844326448990781832785848764640225008314243622374211046686507314762992620721089767961763346347078570644498855521502627968565720974488015190043092609827927222501538945485164362718557887547716597664134353505197371532674690786849550128025170007635235081965949990302717416809863901520931121995806267134675470770026797057075678790378316044827568095988001194936868540369727090840974839827068287732550223275390079447233467302364599485709999410102363957064001109475667582546850815568624348879746531410931701847399449602327834744456624453753365742967287410992323417324593634391005575498121236932764084745951008722041913168332053276829529140688389259525414430662405502594577022478593215684596391093456120851503946322886096099328856423794947308497075108409330824737722249079358429186670441137875311806321601679877485990310020195705327988007791935191761142041749185907407429047326945544085049566338293788333914556197051006517651858050257797296373474932344095836875145799498059826497902362562961547076422449961249154573687978875323370781568692736473546571143276390829912883470887794667620822631975597514198199261788549527308569614288476575225328152948995284040936804331384198512378825211464391284059292148146868790143246642251186863830096913417111112678305658637211926542852123627074029984369395956602383350719037614840364466662367450718228666873711204814646845924893602168423678782503602874999576609406151777558406810342428957320377908317154406624395673746786450181906315832518291487910042417664796906868040105048940463318076346335602844838754011971307837315176751552360310958843225004766652273530238615226944133681391035766708597014859462132773336673671497525487737910599357192477652399709137961349177355008624557872009695471181392077206169031911695984127279693327790910184919787514633554438588555382707773119101786572770429252803514076867149145495563713451789864068525305784578495896780797118886208508597551565201394262640126182315026206008171498695352587557023361547832761749472641948063335719810817848732899876950581200186173148380766361702072514897035199282763477497143698652826984991248207927192822455293433326288726286394277050202623061058464375215034959297623095970116258141265171613841627450414286994234041358616013717332563816437814012340212915289168094101753840241244312435386021245129625078978897970139768616169642654722432296375819152391220421798891291296522032212523772698633514863681604830952637426040832977452105191233160760592731776300095760479127776468141614944053027946638173621090375147391827419355371075314407621970939143488935933414767691661344727684307067264001651282392319792654342091959674763491790961335144707412114540052052970356948509683461392416237952974250794153937029234242492058066254670095270108630680264007987165816871125596151680053166763178429540116971268648998191062984150769571223237279750824441483731698222759071967636686162573878898003430501153263268150162680600775123133770612935801357539005315838094481791201095587767630619905844421705118400328319121355669383420964465646086183522622177268337866027062041738216658287067516228180234951956766935027960074698307450828030941223325815396489732181703697568243770731091809415569845021905508972056189619640794789943659845939507721223434377985945443773318943444144292062252232833729076051761950428263977868212903407302689105773966154713892319415593087309920606437126908282355668437822475096954148474491224523900458990603591172610222724764341817355058358838162979902669240208933758369071810510888668066697374822976832233318211608789787796116079728808890079603716349233693293570187397151469724576089467469874785955833649159755141987627646158269904141536637682362474739775600443037626799323793359913040806908192325083148114348970341104062872319164310999127686997938691420250618529022754735030712198316845327606799887339632761885784491238797658409990698512708396493219750262252463501732406559017112070940706103005205841078259438007918851085464541845061140078949395515468489141506585862804366907539078167224243399857773382830432356852647539714473298538217405385872556829515145435850976223830385342580612782617264004798616426059234682714964671487606733379450329473804074904616515063332343616864336828145788602992496892168716203154484345976547075337786634547970037372301070751454309280660397921405772917421565160814696844784366425879394029823031663047794112851001839711766601257631992594246737978690526471969812858540725327177144304376435666654762873985079095963899535767081654843368908806154563723651502660251543780534007166034658424880258248339543564610402880701263301509606429418620968733154328235903249780423248302475230193143029511663956702102916194109165429432036473630775577563315455848582250614247153750962620226573325962808425725992413900439317189816136466301239521683757601160132906950414553436748728490196456349682209921593834123594485644219296761265332332872723305148808213487706924012494632052036086235594960866310899299756868435421890130867170785360258227928111989417618665842591743303855032358417494466537562139916408810894274980165774243473231660776001286417701551128654265302940714945342836469121386550219413209524793291178485783296064823967291181545408102247526396919640327987635290201724484720982692378971164320880600121996345600986779216132732532360474232374389779331850886558660072387680240160880271257269688710732036792704358961872502031099431046619793933413064568653612152312872440539291123511989850001542442513103246665432207336586378976457556600730232139075295023643300840223217750651182444477091896063329238016584555927583633833081205123245890063561338316629514538879662636992659788354871612248495587658394208170070214484413750155373262345920610731882948878033265045002148718961111722842110048592757963217421951040295196770116106479391181810189664814621916692058505947558099085386453953165010465479761850182262075123487387727982605672971811752255381480332304725780351722908589196610644240932558518010303801148532026552699889494629025468860716034490998022888316705485789199237658386735790949364148414250647462434330362534985535503719315331602031611616269786868025342581384760677842241120535460567018770065026213177196268515518881658282776414921583532876018452092959155632810507479642218762698773307298680383947419872987897773723034055098988421104180932540687566352365194178002116503667089564165629357490358573222235319904553648480083835310279447113634708787140658696013494980860077547723020183716551490770260764866977749757321271073792342991397049585993755676027953885452679815083289788854183335052851243838009529333994050899243515196028518236617419268973051035181668309747209715251634630785393349689142431197823186502481886844560843285125528028429196466948161279677412471093568775641099955015024587658578409847610034551280385531558785403509974008816580282416845141562425995631688330149091805904938159542721502676917289653285828236986595375435799590063990051166274018095609345958676003416731819753266984995276902004378374027374987262079955156588052802509349770316120620938152054727079734125552847491902840759248874332166083869466130115513373965951100774895367344096625590847036114721162406805101976645405849860673310067750207341913864074110910250364261697466069353917605253471813767203398477848528395899227162847648117483463361913541848923889642972408171455754612859686827982532588090272601806388824463141565360814877092666648514826013673473105847592330284428069895322134733054073260804991235420563185820214715222560130394760154988975409965444235444854343140043068228479497996147515818154998028994890443899627685654364697018259985729725969310718714447327930035408851647766057369110443843851293271848254407690462539824279345918146180501611509207107969204271429326272244452851130584485275587832426515176426147786874515136703868281601409970022797880729309932201328485562004087613705914668443140733822824828173090825259740443537922625594813110522036895079803303003984635073502973811350155733405972844262819585223526806199156895023137446484796217847414326404106891305669652865618880288505962663158260632720419099948524538823340623240786771304784590349842913479954503639829589426391366503611929416185413365761285370221986756411162608880118463302096078902056975665256168495590256615606887812854413523719960306843582340755325663280773074568122741563320857750164032907878666535060248186587962807005044882770638609530298581901741916443402851889410087944557992232116803266072148907225552375978173712402942802179245763464012196123035587103618044201356618323741515113413684830724807011219133786606757711911604177742296760935259826881408413784624694619054320553081648236008142820972385691069574405711573464818837002976819384772001122546253711021908032991306818498809331137167545938924707144616520745046542275780699024337153911321461944899461858259210494180552589632725197024967741376987968657711898477749502161811500415510336948767113194886423364789319878507796191451132690950272321267107261326488073742975757519448847894124485712842520583124771389126752204076105704043671961789910626364980208869362149005624117154927802159289600968713993491000061801498767415353361661739887265673910433474198826160132161592975355799065839398012431267145779645334584229912526556968544695139517204896871149842377930504506880232104583541310521277942868882014290039375568881019596140668171252136913345695959690215257218269136301494154454027998806543811388266675800123155557508593160364336293960720083507678468696310644293511786140687140463070230352137739678242079910035686374869520511169298610592270373610217723207861443940911373527710328639949723531264589007178624323756800456312468985251429486422660085553404127187288248595036966851112543716200680588367352330631133869183541566918786975721346154559097567075397101513572550713050873667024965607704911424484290993805643461754273883031485715542791395483234690014504577477979744054340120054815748030884510571667426103280851548635467867904497421079442272116378031917200159540307669834175870504984187261214701189762379267110409495525070999656346173748305836836945879285896800387178353191317361513729756488631096477720650953120967158041712664670965213842460659345881745209798273646346990885472905222968278799785557499426829322491025546616133841409899318072175957894420551151840176590983829867296180758603224310416480355257004215108318184585961971052913093234579969366333888040543468764130093380102470554779384493899949908017945963938337432965690193596240293480257830053732338314710772626657913456038549021195522990239382836668021764755766089923351733172144961824670563331754709379121662204741119516028755299683911365497305554132860129881220196118509357890311489537403492935961797151573969488499214189534615138358170183535645991141620299011852421089179959396806530738765190100568350599046228727405686446038671404961192910795195017137680706114170110575429056059730179659308775419474433058812284934694485444444449724075513572384292895076466081454324487999966946424890219419903802397262875382021054625955712299967750032033585568660463564049814017335711120026331645291743057533983424765145821672585767814187827407202905894034495610697698555179023360519077426462999335236834160195925459714072417663600989080653094926173178620347843675911796264738092557829099758216230266144559059042753797225997820950649183319583035349901934133809935633618507106526900102127968488185765079817149230966297572876915930452415305408149696693882530463211565320556070500767598282923291924842679323936554270285603174048425257049280710792436664905296472573646274089961646067315471659064022433628072145182213612338773696655177075190834869891383881406113204102237408229210325608102849998113483658215244331869450811437956413809046548841342841364588601038945169964617444150796511945252201351477929765450758267817166508242710425508646967050405612534895386963210692881648057410762001174543186851470298094723884674055830194595974430057395822892605521315407970358871643391321861352047741136123437879600369155946953585796409282566508405931274034662791741350929504553117295750320772175797749502903764410620945716089252491512364000493032880753502503706749085522667471956484881622883264722169863337540825418970591367903532155788650835870714070545505329766452102287138454762376483935809159314067921652693610354100875000227878856419711572054917435723967036578625532805706016021440397335450574412860400032773916508585506473958467337676417793537936718533512396378095054750170102743980353529221112967573923323670148900705217865909371874348437373037515585284822764761353534330158062684394371964110270942114468541441516437436554623827587404684002222821386180303842725814513993557830833880095751456333960215442776732489671818912043961061870469109591185117120726066275495378113116191279928282291405493811899154942745531434693685425399069741321005998022903852825506383031445613665039618746868050051009379078939014442711183470852387963465404953237491875915387306564800665626055071767603288413638592805133771971966740253705110942412015885280895794747328681919477319733036814215020477639548654284923945637208999914424563423444690282312295834023448371677693268965844660752969044293131826072718286880974920427468548259152316079383106744530595457701405095963244265754753173977025108827128314508745319527069077584209893939270110830203165958089550810756213697235367373963164214947373683197944858493126888536759551558603136538134946296131335347071043012853117297025851622432928232626805103134175590398985355933994042277643664528138577527428056090879667976678759189348294926759612532487142482980104482142560550099087787423819635461949559738718745426217422936134640850921229695994560475117671612218466614166106680497203357927756618461398590766460636922522683115497809933998283401839503968677675514759635598615315260957554154751585759909038636440805648845392644519810888801000148770404051683195319241526814328250554714959632314405304941465818324628344464516781507755048384587747723474408474802958513981510791180588371896011287758504801431780219256652385620114885675928846887089972408672733469392602776752761360737158745476172900199624089252268157158651103682847653787031486442393514858166540647159778433545385806098821534534496913395945421669312875992155991172887400735173777078760568542009616379194279160813571909246917597499811732882138027980933875976348738465294342173857864128631263994230850713608447918922116513289954201160160011527154723992158974486274915428949173775180083630848165444526647230243616318461094474445688141257587485460599350882872777692850553019140063644534952275075908004892304257800048757181095919345144183673270684927641199677089751272238595795735749976417596469407028083262981603097740038126069484977592392607764101700830696469083837286471168046121064273155576554430647158625261427402071299943432749661637086709806375565630157826479244131463669751947104757609931358671040284484823562515259964530436315108684802114194613344505130727821619422486378023809748266149094702752867774594948954616281875793637036292232757647896067424429072724791982857275732485158453740827253978548592050118973455613115233167299225645587945328090744875155387018407309294123200419213628839159896323906127384729779416576984267764062888180436629080668666254092463078168183490121672905130108318991443232495077799040974147855146897491034727557570257139744439651004205055822542574230051601091681915719566879059563162950468940739292890371092228025745770901369433296505209304841229603853634045116275014661599066831865169917961682548792058318109573236788653974778952651198460576992156234388742318984036707866712402458534678802476254921447070541273181902471778210021132275070782490338266184642260676771813253107871443919972626612449337385124306275229259055482633430266168476374339694790185130647383117377455602049525658102578335970642451983839822895110820588414918804142980988729609648438451544965562560899904504238164785214853840601984425742811358966768128567633631395120910379951269505123309648058893019512548235536260546823296715490916237977064113167230756727467526959243661949149812197529414207601645769005396866897161578211808820603332668755569633468567743503574825071264706124950751459029447019911964427171166695086815923653555014450221108450804740726045267539280254483624058126690496479419947243745059294409095593957083277812939862410941187214725297854328788486645839809752655519881249347964587215746895932471544673358265144291867825118013010340059695149043635985588612422405073644363915510151437286139024069186970567550557110664007734731616797523032013365472745544862239321814229431854737509619286127235072330359733661245881525607597484391357139747278657189416613977113171308800397323150171951325022274698924666547325176181208300836850855653445821613634478465683567386017570728345602090785005244585829712903818593531049960181180473245717584919846893917372336775086211403894877259067469559550107162109474739775021133789204874492646398168589485029192970538458959014163956159565109372837239428048017313300095086185550861556239152688647308811656400432868662373458452662397076225792504122521374537898638744646779894139685954027545738859939604931464921271365979194577346353544941329502596420153777148906340982433230596032214162344459082422155239681487724186558073355376813356866194700970261850399963921149562437356332584216203654948078213233049389825307769385337554654266697095601209092650126667642256050168379099501684848421280733958165616257611420972159186993309954375135823814951671597789302246192649750650454133234474264595898433945095778932110560247759782859241945872371496774244417374205762861572643701992613023804817158815483928491760188229373404136724167285849137742027909777803259335879917575852915073913389210514906208429313737616982406233518234408204108977872013689755734155394840823343674181568188215569693934114177267986676549896108433181582391611435505801895978040201528547945218145130072611335566823626504240209585268889121194100499091308060744062014320563382805296461164503963322982409737656603499205627564158448776438878360552527094466922511458112116254018574700994324731812407181202461516672862831061208178173748390804897929593776051821009907406507462703072300735822442354968331996375625668006551940462705938439497794347505723122576021813410358362141581128352116739769352768428051361564949445670663827692484946586338625815682083883460275387665473549854497530848729690599447944103712654570861339144815684055789619414031858191203783954783568686617815900981121248763431372353934571377092874534619394255053775612812428532472242307586023443490105943405230839142061904971888262184286191656132116245645749962581874732348260837583816624013703831771480998261232987794642722643355072647756190669955493901626112532953136534519048053835941875843065746857211874022479487975743455529708539059334115135242915418300803093661234593341675731674634719755261625783265798121616110208854397429985823407000784370386115177439302282964309157708136420659072977684354694148178954201968508481664447754745681140460357213995186798708878625715917594294451320889253457801553739103654631996376098532866110656999751460001141674052226420057183175118999170696675445759077567516246769173183160482980649533098640715031677642530267692302053565961467486803097619667075860407843218223886751097532379668713663799015466453911939778192755375886792575986724438466546488373269419546433417025917803880185891404944625774785008044990929055983590810460103337482796005825465509124523622702660959478062094403520174655031039801423607303061293751506089837648740695968880920063847384580556815809199579056425241413672689135450435862839650791347865073364847522087979207103013679490905440232620743815468577089229698378095468404518954660138233897457304840146012811575192361389932503709987490704342819638222021473857355671251507700412793059095859516524388526544260738643490193583370403694781807754232398227598380607955696619020683082504922266148465842915515098077230203618769131977955904975149301965446829588820420660432684660201941352116731262206497954950202926529664243580603884319880981641914170758361197355233390283722894146407204345232087855838385766022482972931744199212373085627510886041862318566599037939546088798840780262483882684549570914805935403202383232578689582668313213723826767768820107987619594763667293428167127816310066564438875275507956075645386769256078860823011978794980009120059930851841813800831401304402538005759432840037377244049732515319082652883818045013696736670353279568739559342595778941933918017616581940428121832828267459583347353426773011250586332806762337132146798420472587573023483676131498415819726553815724492560437681516593858484875979672590896677296573795124999651220711561056350600902405260174805524928119749275109265032222831624847089465812225144284475757874166928864219804259132683310931256925911818003941676302058643283399247855494574136683161001620782843790568017860509715759548451759912815589752950542911390001522223189187216384977216804312082246932485293271720324398962795615527403160146679013046147374340573922781729433685784687544674232751422492417882999876026537915056361886782328639371558595272425090923314548259952261413708366899678557498806788249846016354610752246660057946031643362243864477544719419959162345811858472030482248790244639670501392426907600472118300204270130839958676472676348772785735868828328630328751508932115093451792322796333097514417315976827416931097022990989801124303299283747832371118102593811699770233985633180677818925986098582960286242755692548413007398388764464034096173350692323660308029095034337219551939222840911507469421449645609224640560261552117348110132025602799832690361106445944405290993545194781677242457887784433511698509694349937329230127735894235437218553174115125841338688946106519021597799367235550524881688681421504147569801234539564195805964934986371742197841172130914571130482800612055711626375219590372574836366591966442633100607474994771462604799818805748435326485849234591281638781905180395651060790566682434809337603965172498272160215804242973409769421512439777886280916868169510554172278948852882902183552511969412318281097538820877363525614421585346747595359520299178891487165148304582984639121802096767298867938852551469833079784209755043141893114720619338877940747457910810668908609470698390385176531551342997890167988574363896358507572563197954313200482848617152541373905311446163916489149975044158952157415726996288409951975467841521663499810753837681679721666127029681787399053741463976978694199771341414987390710966001615190421525338155613942771754953468161904936293943147564978497305380509991251933367160582983859082009830391006826091417454808962946208243306448309936420814718065665939671255746555154555844796286770363984883753079637283964557560319854939100469539624242737319695929185805230119802308018870248889338280727016248085065172688132689342479760405429635010534594717924876851486221955543649457221470042977291837792562389104492053355867103989633292289178017977921460039486416248806506956420269158989914320037615498843723425502071182879354326530502670636547288950079704948904186260684335042659435982614010463519582210781952943414726786472719586934769824568229937995435028079746865179109746925487633559827472038158013062123328199680654120308538054197712080561665471402480928789418387010539084957050555834896654288222325496539853895703407617743319824969074858015752132760089207403643025948509714117404503386005786922472638913057555219594825589606596877330461657594247832242487459167267427634247770158669213005495564430934520378815385063875496277915492716283771704889659417374245285857502612893025783126698964859269633319731243475285689626884840369980935852672857421331771083683486946368299051135061602755804451585581942492328351674766057955506869007630415163948729633612808226123805143986778773851100829968925678832600512035881547523054295663779750117154706797114890898334632954243581360959378066114631049699151494039497901638632695418577712665155285192486068498534677953790699393999128511025495970523728235427285163391467623483865327458360394474235587525098515293289509847097893938452943472364211408643558333014140908484055471472075488575698533625267118439925617633593904526539983207836550198604146010298134963658221761240021489965325855596339027220395386193433331812401161957414590049654174137139276950934626039864340501380981837653848835580812499965715044732739186683716268035259219244930351752660691047864975000500093339474557459655883903476897981753423209457540986091783347673374081766284040411403418501728861818225944699916573106979625893593592788132838166690244578245853345087645802421332789660193305025476302808422015622173878408478909885079439830500031764481099118511377666856524555919839611096521318034254208321599647560128292113094428186057134826767938912630608954960740124848118184094959324697551457681494666214457807606650104986604110609137615344195506872491183027041049325932100286953667586509566081022605612035215803364967520535907679239358722324719582018611260084630292933455023525203393489256872481499263075256856479500817498299141527542751443358840534552199193631775348477458463506537673016816774007152057974605890734619420683786434099821029435357818769105524852848581846251025601272919120492498889441578794045466132156273693883390259239996363996418213178771371023959880054868803816711887314213257782994501951548759824205862688959627042733979652892949831464918897649567616715096103959468893094318114467425137298222801118079185890307099279286185555291489412156987585306035264807637197921765047021565082552481512655036777311269389856161439589647646395801836598475137261816489062442708951787591685969918103812815691998993463017251978889552573141411957870373630012284551534144723892069491258043045326978050187224649579292257345878231461887379642024872421427474493034195180518559719651109109747582496092538627056317489251202660809287094006769064879085324269164865808889998661884322728915890689766949220967901259442235181468988515581996656102636152436650790395967478167637774932882814975867634770622640099868199380746490908440880695247356369014131477391837849497971074612970446870007044763090643305336758303368461814233173859773331694669149638516554096689797218376302292395913815567901472662249698466233601044422177046749025580943059514291956976992065503194760037087222051820767456773935157423572843915084587504442208482130516180492687008050015996839634130322779379356525756198043929942019193833694145834689913306277609414508889464137110711723750723625903357250155059606253848718709055728040135766229927990143808915189209398564959702628416135475930781295344914450033377278517774880596512224403592635224220536900082978122469307431617043471920194830053952384871263713381064504430104385998330837697190232450303368992681091335073939366934210292653152519347295242818099319668281046295607874003936941886696973069649902386702321278702863095738119795525588739921601505926978421569321833766959473754118898195580139269735588916258086231038880414213381560202889744831825698692205289368322447827878523030174616280111355513195379413867055893906350934762622400035047934150173466376400618622260307324349610729072153693754687900790195265188610343769833621445922629493930132501374911367933951147907589596473382033775714082247193314855810656212839358952632994217573115712127546054865912435886112674883384017328882549156828869566739249121903458555062401877650266257867604387367881502029692040600406171791694591357223751251203231811234018142413946105120824826144472250934406053753925349016418788935087316003242824387257030062719531439989376047605348452237721837323509614424563173101373986346992465994767652145749598027343077656418945566433208080317348150711411015851770167646027400785715210929015919767341840078603798493545168025365312392827881465845088185637814692055841814441723810170581889743623587931940124078296097047690985967513883857490823038558793632390795108645308442290496857578390110941638889349152910775022399220664623795483721516799069034706119736600427257397906364335316669405509234130282916377578127870869972132051953307386531748859402562401637957707711857068229498362515327212634453961141112196516209256290281029666110582377223721721875397485874203139852223207619868049326761642045932048698169527303500625960373151300084933622162681319541316441150573950801327872473436383149940842642110027394695810249618380941982399665530032756099519431119089275560873587581853953335634396637309232955025723237065978534499660012987632318726892477669933744017934824768315519761047815404817222538616537613922736062596451809691482307448949339589171074238102177341153276753931259728248831613585123070166300593874345023842288627564177950242010177117445088391369543849336716006489901356632352048617738495234869601431189446933437020973968483746730200945852482550226301428646082574659690736558161976859343266672967334039192037418388255126705674916296359819965123930479138849208309660562687525476903004566435063562136401405249519632208190634683337137741529839555070356257955450782506046937033316380253294330694623512046526697210734701042844829436336679694274263762135396514712301982353288769004050772196918316717653580660242347391742885922248551951864139164157732701257337297909384125672417801056685202271723676577072856849327163331460099813712976736256112702279647925109498133133702978780259102492012836859139834647092850161684270279080148062959446082920429672150925432028870462076194592268632784499659603940510599168544793080024864186480696332290229351032050841404711287894598316023917173118733432813151950535413885835567285819308132451142189484796444785583988425652390522796151161318779966222309920249619209008915349872525869173863565069955507342532670902983951554993651071386194867731426820436880331219678665407079287058767990836613343619115798638202511097755075144282300384680465275390974153187545640539854656768373347681671169086860440967112613393718654128601883366860228541676365536475847206224038153634644741793108402142147886349240328742490384233969951611888498969475803901138172424197781523809678395623317954456478727899317357049265632269034007053016174436969109799158453842957808069346996845176199235184343392167645799113743273344570665120984732866772141024018842659067565318897561217784666848188040829800758931516916324335619211998591190857862830963091151386735358208407076228525885202517227728987755336931149817918476092232191555095946641796658449432519950405847350893229249708466388211827120268881857590951817829582004033389674196926700789527061049481853803005648383061896467509593425676021211484748467435896302335188587490451222544628110567591863317111439539209922529632281992035850125069532334633672750746541251691002391628470515428404642179881535106727732644963878009275449467667178674784718828293879087007240405315379037772463893804408595851379078070482723567601928380600592697004164313405253755130353451977720768858501176567202549551203511517937683116382807407023694119544028951611683830083130272321673904592522487056702881616337230678823355895843271282651042232457806414032621652150304780426306149732753229330582482879211208003929316159059275676362666910279998512098385169737819538949701981900952260685703507408794634153051793496080501026318524059007747368690345693889967146694597267642629759536163430845614517402146298436173136554936677879496839725573757195309395721130927505499169347162273743403351146951139085750696329835112229625961693512478337232921310276401113112802551826027045030845838254695247126929208900759335189671657613185689433171379005755987117129509449204527587189465903215416012893292279887775922245228154963533850403305740704120745575049420423064724110505828066976752868769827462171690888539728801899962961547173723254158429534470024707365898158383195673639104286063897312545722676993770065784934400160510783446308888725782596666305548469028825914835670552858048663171404583480148522133144558364145886217936345437163160413397988234619557309180319231220618121477691419649329063522791979814815655422812211835320896186980688334229588086021073762674079014482053352759457824949273259335725421962588100478466831178554869710749564190485636106488027446854463730911926376769848353776716048116088964245226900323923975528146722330251401238127053816017993712479922610919045957049646217396160993777895266402399593356286535930260384273362878271206708085155171194157330607424296079261829080088953496411333625728642813122725639889000739509449816967298796563051886930964511418561577018680983548033610895750249607411496589650865065485684992782868947594076481045179207838938479347333286121755586703441333016794505999195033463700221429300313015631837550793405811189512692127171639793889917581493508668582237909936316171261910416325863937802469899434345475333364719796272838058866222605895166118754474468842311853363885896051629831374921410623564934657779280606754262099095407027920300797740868129241898496627054077933450355089379108033110629391098615299236787637627114463790627121594967042844213499412148807642892167686838639116773452095341831596539634436392164655510757831069380432649497104296907918568677840785767514533306384372647059647829163191545034326637183778436766287070906886620067581529544997750602242572989872056536465237383488492885342309050827490085571735392207658554170081733042274887350761753836882075465763556622376428359544166156006709123778508421591837502241117899330991219648795365144191432912796738012720060748910623394304926675029330318641458778684768736816618521411634086107353947130602924461469654005089504610484953884448972978645094872035941075454977993813306441656503392982064243455316809357895372578278291080403189432456044468890652423366354722573490365051562396511458924167354183776625375757837834205447276533281386432245690633492840630430122877472825109190455690128204904725091616052512056664975567728348412147826509024546544299195107006676104918567483113846889227695582480600970275970204269066292710379530095303774996044619157135022810649045858484900653799139696807265725059088649508731469954034689980596512536452942407776208233088513227517801045978100420069104835501374013507070202464410926495930062946115171606376997053727801139481016343018473766832137390432947096386610684800912879924718858218050548094664420601660778758585159123125240134021720782864879955900764450018339261235930280228429092442321338982271960856799968763985662076859259011944409687803609017102211018549691028283434022371398363959897463484156676770200153498649360760797906714139048408357073717191285406702143408743498539651666809943024581452373181579817852247935573322945079321294214718042080938771271451096576476122110497384104894467691752874548799117261607100781161882157207628108403963838514089500334182215767804497123226244642743336181553874784064118236722028786218956742428900825291169526782392914816873013464683216202282239979536012134814906175876809065069708363219526141315504403483082434972585056740544414231092635864575465338760190448247054287137144874601803834511741908989111923889518041788598439556105791011626509012853827600341523125892635068790758372904423711267456162920113807126576350061713499241966830496826904049285699990563208648941203739016908915037177021427536928752492545584644636043855256612475423629769835439448921312672548054938786282461462930926686555114630827463878688767779554404622078653759962547363597441112026927420157849403089938397568405536316131247495179076800946243229880469494410852249595328291292627949148196126639691844395738834117488744260437471551005561464231114329973877459389196699035712352970261892927819939901956521774514631749236381926678189323353687236657546816867155581278603623620773009081848054285384072704383751366467767275539831806427303084582694654939698679619647511889813550899464127555839877393268641456422915400877481553378880802318262666015981926885826042593947595376012106434944241162637920072080251808668722523741215123367521420886087629264158842254751356563984087614679566022129998925860757409896228837075049703391303795082913930362429550282112330055084943476220379911789923960961997348029239773323562653167120891760991141671541949212543176705548335423607023277100539838373155689989165431358038926232413069181573405621409296197587448325673795924251486347155932726200301989837885153805843019510628657722797146016704344821635178844059756081279584350210079804274129091733326486867474099747029248554308291389768399678321206145089892363643308665069982782787856711719956618437115819050553444299656145286615401665421965201746134161278121639698993394041575487230134758255969417863036923734144400122764214974682421482224042937149616476899691013478346996254252533259142418609192621667087643056168019239559251121895380699273177815709501100100998682054626801276461628754671792831168915088511590778811860587126761427910491374575457246231527675646621568334337134034640351851510557036993865516410795735164679935390589425765190428778866015612063781798857676982953354834581786828731964322090137663631788722000661512602485166801935355992072651923648787591085259226560591113185902878289088507752177097440770780201069676873899858571698763058448639312469280029247763404711973057726001776389767380166144783844713647047089086286318177775560982313002150917520106339092454798982267897687808877696868292745953135226459064455251776998074246798543195144516641762757809512459413859178958771492252023396623914587627862320124744677511534676510342436578708928403570504520344478630430023959716825462469927730876972951715939419880524304161799938822908201555751438734903251981246803402670601906985280328470466283246708100372168419647038477181499626082399464735702626528720848920404483024397360841070430645014295847421484995297661510936508450539034252812360725495159244515666657348335744883934525971535617192156865672662153958070565466047223257600954489508917248201594632937934938142474986908821138977918821834913320899551105722553289818925598772833021765914707831285029787391074392644309019842711498896929680113178516884840986831869437601729480476623491116736120431720258217466228921204535196086415219398169122674419768669871504098805705907271632381798555408564735168863654323590689295421785794919675943644779852129150994789661256426114275680281851671319682761865470529974956497168453102449485808506898073771561507177600529672066606293591598533023427446425822441285678756406962790438874038029985158348357798473858459252538231294769532581103807640338855880833906261282471701507043686471514769009089284966825247244206541285624738456108825872601794933072101794605473415250508374503160348634453283880641594243679456395705612929878654974632387875648385153422447285987399153901192813167297996189050878193186846988676129614922489827337222160653895449148242632576367633520625675400001325457705248043399432114676711480880178799475868771663678176121345955846152766556986155865710414883943352179058623266361466105315173355350472152574284133119638996352546934891056045908358096389718763364093530607835987600522256853330738259375060909514371347278049547655242592661455611026907223382078308164417968938614044017553148848034986672890940470845637142943626311716207270082102582860921339149645529912407684516161611623231161740673669135720794062500910009103536565290552013528759981173400233489845305438944201351020837956198071068512040029310494380867518379158346067267721195151946843948824724974448579921026891415066669923154671415481631857304277117829429107839531373021192798110727105184804829265070111201303750954795127976763531919864950870248836414236767123015351593977419848207281389809202106878828080369217882678230137957087956808337854828422724355466403602021185203460229561995264650620535683570205364067160829055503544894693894614859394912460705180041657249143304725396075876600549477756830044140322219882164372473246739695784235197824051216869189795284898274439475042831857190810403669452796890573094751642262326126562749497709972565612606399143497421284924069256041619399003255369779143049147165935352695048409322033709729552428489694599989409749211017439625148378254118064967691963194018485450840656162211047684761931859885695560556142023665377917998255269513369639529529428334049252814238661177269978997364179791407955478158894813187642816515691540020230090988107569867689807288024092193652241687299741549985473919510669902648961829540913011573963684297917238173607139931260340444591063308771008349341526872253713005177623910463388875448261075345277511273427207937225072539508787291984064455912352392280198969132651461545025561389986202983037625421645050234599133915576213084913147688177657877609367127515555198460190540128967175155839675338672373283972491932656584683803800902586766860493262280003685538618383634623538692911762986649523024180956849463376707470319342553791378423602917443931035023852748527431265080506150782540712005345704308236277289801263686225818852397353290409201208145654066126073643228286205457085000093391205548137656620706295941648681519815064622777991848737189851485181646839210188787058270203642737397353971086614310211387174348676550008705718876254346007069516357825826964290339673605224316318266417506946637598003141701396392152620078488823870241573967238426263454803028238985364409836429995741350043903993464840970550937805463596721543226665002686217822402192131466828871244292590275830689663979144432846553233690881890569290385374050213118879982478332867004200380531928599988113526145825070888055224119007107352175505269656555736729993338812472093583779239111461949592710745658831341992305441907102385842717196565244817539851003495770929949170232548051017566347192456625741404244382568339421211979292194244459923236668971507299322144208038660598762996084875300339570936156398287189873458198928532330371090196064752774284867296996641786762376282005843931734654120438565119291931853900978796674627327160870337863262902494373640513183512201609478107518623884293899119890356511072085794034005205161006082371786332792294974310441839061550960854390766915682522644650357505243144613026743670973213120484140723828780383298143502603910635919142971096651770146078893754408277838739755585623052442051744687458689467312174277461757483485987690083378078384485230806527947639187630905274931197606285615467522525425619412404642945883966244344455746739765877972587558153230945310839041307377062067736538965393735459334236155541369374520768257270426572192474390738995974046726311083537207096789718362187864760487013261168107318133416593535991725354452798526587666495358563146142137980183745176637487375959267006689780668585684340795090705986366970435728670951331952544589169364065953794335913102276815335994822007445691074606776406265900260696284392461577121242245944965417797983894754690009988388078048514961363968114876212400189862640025703549176745380190439462583759804301438271682044663538964624120984630765172199906465045272901245940060861898764063311559193456040524971210870229352539901126755444275236888946389603700932512709429682929064883768719146637160132696229213280514417069696765357312433708026032260148296883124277529022069876265312652500081877847817595829217528136987842291546438155268051299840944162308179116078694682409898909983668901243047649548598007901103913773647865178729163170495941922993384623492601720615471356785063153969849551854202522881064098744465758570508844478277530902954258553659030579749681329689174995154374087926152149610978838347602171445783644116677059675796478062289623478092593620524859693540823760882690651459640378159453401899161442806093421944387171700596499734312900365514527906407194791657041537438469058616059509929431635040352157545615904727935238892675630712989790679017281784586799622778181978389539913960319531458561423768892777663169926489201245864868032647880586747583162752540561633294004984055011287717848513583496094964203711418537990913577528920616979729368342736599017504970270851783868967394197975348095074158712788430110922022657500858753117522606793278188218513720350231623863963508484489313165938038353698750725882204407512402075315747338633624216312100669230795436321369659553896776771004705173605012835432953054765816544274198947031445465517784394982792970168447701752667004598270862384625893280086283871734803247930225391261197150805412444145072500773040543403946681945733122523863272603926329586488204494744091707516479188957950575130180407130994365634871429681909719705173518426210553484754200378267661555292314179543480934162122829043436463692357454238363828842321202585441672229597136890521244700423485953803776288588900700938131476597427720329880840709570876567266880401861204004763158870405598019487628346327688004875018202855381056375002517201471606967925807459537030624967773332245490138670412830516188218904982066913840233097880447682882861019532201776733870948747762169191978149471828840686004638697087318933296662090504056722186328936374362948478095248769782130794169171830354268374082870933024493960034797526119075069819993975833907065825053276108433041767080787857539243284298737903364707113564925494534516614572275484445503936158833758970156368364456715796746281294898157906361515739165047491655243847702656135628862935287929377482725371521257936015799514894712433551867606878892901555696601405727565405458060684644381189859323951788714113987128536391993912932034509281988196834776755341503286580383240759467528232916705647793479583583085985388258351105791441258971400301600786981648997502232008413654538577389824280631614321864147559571077550910284435464014313387013403879380614417553989777019045064300753779050090831741374651369002773431659419158970394209736418593331778137157698219902895979604919665838920680344242292671036014173361042455563040704760772189174893883795114634543411410318647401264477172400994654053824158078817383653815198522036685613428707222156885849226891150525965602535101611249938236206215268745804893689939188153648140575979826501049448365920480390940170438850508576336536758744095402995721201266227679663083019686322926716679037772990173094451174730012919616853534595205615074738152124338402768438455728531012248197549972537007349160827280873671209335831839409727839166776007758351299756219249691699267118051591845904174019952858026651547235902077603457267311750990209374938743017808552392288574349150415693623724920030518980998166434025137839218683611416537071128272122277360566128722659750088293945198961381523689306511929080604717627996226686900303713122563979643682054487468243417905129704918007157516846669677877581062046435742575029627992900547083136582239580359344619862862482938347950269677255410743361194083072194522614832240577330559801275260676062989120377100037113511154939053933547009724506401960480232562974466014026916150964211050989542078563080350157609860122846294837913195282172968052877513839939379023543889657492174564880597038435147925599662061925115124524560723471532586077941867374226459781859246668666275460777558192560855502894588352263791643195975325034573694913399057472630415897858911481011341534570795837831136422290684506553507135700403371643399905070180930971065950663274959949540000139570339639473274398542089250025025521299146036596264593010897253568068362918087669325051345351210592264842014299942459526439370804253316683482736912753187943473560083966202766727609270404087732434981856817282410397025862198441573036516537636830968502438030960224320449437066768765998870867852311642481848454346681496228286031763563401287001456697717688053788616246420523168992781089389164731948559725270596643835349477423169878830758555599711858445111811766793118962125377548725297997676751125673336664483201209545315840412665473556425383480033384428041160854483355273815241313833779842056662607317700620110239649390733870848752454637782805945269248428337846758733871794947102231266784277263460700226929823895783027834059317806392366449986967141551276719118829760481410199755603026828002111634510738595048336659484904929159727056613740279639348068782104728539743907067579744875918756569904693880781905080048421321585039241503259992065656068764595994514880532499471965497918072113802099763666997745138461365606793014684060115398527658643872620690515150907356147471526683442969135075725925073192132151237799525661110200666215234264014937327483102776048778528154044724818300408786325099862788875139697264436481706418081773780398808326583119487624958963134073599888862550468678423499607230824249964015410004761074026592140929434797375268133091928133828166282905782089800614637672561160728306193904120561038092243900681824404029059909653219198142594609816303685099933758792422717246450778420169485673771181639765054865166396420707719281020810111634105615898444797979586339356722716885899484172251852629546488742996046800732583561061337350180032060578930724455182705509902558154563446880632450757855903019629571129726081216708218186774892855701479539062348299295276250413303733330769348130075065234645281067115794154184222273097038705203216737676167285124910033686069078182218820435426804488875063721536340092504154730989687566041803778951816179692830345622659138002435211260987242165542296239426110520251985802581260780536369160139848008195235800654857644528627808077240077830779586403214977858889227504361791682167372341186131631824794756738212303872397035241366066568552104780561052655384964950528882290698472181798416377070957591078888993728653230042126466498239212608215515893967537901437984984784279643990145204179937825029093353761519300883007824790210520889095856382516474630783063715233740166552723651643842505465738310963162626087451853271290107340062803402724008869423737074755564268813096994112496915447912290506083631410249887834458811062639883376206931973677962688482794584601678106865908978164780167848377466156599814787868361813528247150793067778103004308725784249816937322268659104684189262028719910978465150895317541307020442162887915494710182225653277193472750452429781353638271134598755275597432559825517668364825536762327007907978061132539598840072197907652350923930049435921635260786139881138846318575625754972034681636979092209561198532486215454699135823164381266952429549475303012011021141567968204373765497365441643748844306411248066004266301753453200102419508797026510046546035348752817095359644283118060591320975630546491927385556165824624536356375999643662618223509859766799128118182961096072549696111171387899211712808323182135258275226348143047263485362750905742119516777258864919817249609289013136123362030512402360546309401030227685047774613681461963897394306400049572384912692889645144180273090078345860243801601650195885384821456137573756179954268357296669381161500699360394630970207412416683522119821479905468863874389464163137248643880776142347497620360612825995276550232446272372094160862461296570030227050427443260190967853477031099609454561037968218648290613616811856745670442399292487253130269620969396744507420449482024723618679180129371473445848373766121974659448327857397094640194930807126925711360643753818910921559092537106932852103593185370306049616884094671199898389635684949618456853401734862477352148239069128296023473251577905131767981500853222173772986862601782832196312917754144449656162805318243720217115363306528869012601261695112676630994816140284282277397874843820027573981994501907069954941708202870640423499272389411295374596837751056071380048899922512308294818099187604600382571766604095210691317236048278415355641981887151868150058247716824390211894807098458769058272007726580478452148796664062928142185732601679293750720716703365868105679377206347671906588528679430803058682193698096332936925405702259350009839079928006392488225614475298691881846812550026992013068549012507959276749788556607135805361094320681892117263359421811512231897493084843565297490844059557136571064367954694497080986690118258967169051784072682691103961355454019747904361269105144555295131831367475155109742182764788042719325557489793925632167565912902699591868447430220021449329263696978579889022961812252044905124735739700294635978593280031135038955243796635568416668249317630161809867677753423697179558156461048092786908826005897823823653804097680765269539087237326655489414842998766480806173558635929531721299426576584206293580514436673479360999657030024801873258981197220162176290194473757141823292530957527254454324068759963254747847844936491346043907571708663849837539792045465716833943860400517241690246998752834088629739280868317052524844537770819317554010004658062678961450413783479288605915824292021609919102581293508665337410453058208280148082805283625388678700068983284224457913665565963226492926182474381872645439957310205275696974887376073535211720959525971028086173602872572703681833940138612051278181796902751112907918975071011311255218376084891825701256702218721251099710855032778096878482093331010957248511423515220834526841169688569282491893175709728417994168288785474662216573575432767809939272688594405669164373598864993583141311660920143835001673199687171433041680622385601100408194616616706275054740982120838345027503462926966868885825307143355346007917778781487602229379168871245671198880247318777242326072481493257150621406626702145796282040398795619494424268666726920252152492433635376169854999463303908041180872391517732735751667980823360884845523499222263882512689208587149655222834724744621258174317923375340976586767910256300554824339896388432104423577873241704715436991850576591621566001846422470110502273754266063011628575948832684684160076751871138491827753373800823308190775900978052277862994128984033164969337083435055841268509526461028605296632128360113998470539136325379480664148882493093295736034039264185192029454129509798946467323336157968108092118806716867007935164634270689639191318286473825940409694286389126011145150862286443823316877007988335551848711208504520132758319048050021712292621623838927509177786300265073073505799357951746665436827596339068400002837317878782367150022828622117466880377240215447140547747931558517176581536297292536112494445908237841731079004153280043768519248968464328890276467991575426222898832279006248772981383888998970000560011471164013720768245390295297260890958258746149385097990133361787050394180351684281081998068165419216680151622972487777909490023703800044978731984212631605717743470585489698624920296354024753883402398568958073186427250606106665259724158387737662384685755771807336684220394282654433555280296497742539613077849564956265118621941274311466235777172175767555420292195594839764685191085069968367122854775354846245980678976511128284817824396090285205911284546794301535105140100082814129697310020246399459389595896089745575716546858133304235544038513902970073219170427983844048802851361333056257545550066304576829198790580618725349768581350011019567893537861638096156460195435606536041052980748343944404991397919209744995737221937985488239874211795448199465837772712726824840632031358794794787129577011065857282597525634943407445497184346253947903778611985580515018248538015475123386967228581699710210349338538879028957079184018468391755459932409336237189794365481785502241716374305344122310301889294797732416937257897259493837378639884687838886945270819473812965043312329027710559872522027315573148638087276032271508889958627729030660820606538580616094525449668902943583267712035471204291435892186694818387307981703162902372435255888012408063569144575071662751468133209743709109895923690924979379822295150567338222118714766219225101257588439141427062318837111309402446283281272259921805567404010362302390667651835297488812410328856476679461728759528277670771391821677670719135188068214303783323163577169148794790307842857266553093341928371329386101650542232874690172700376629314542485803165828263899030567480639418136855878001254458692459181730364781624297360010764252356012806248146360743970541393891147032425631611484560756988953985765274576785650381288701991843448702390494740607731053104832467296729269054046615989071200807729031794570898674273972728509666031585215777251274585301590107457762451283600991197299479841744812877647378371957076263799471835183385235579542838499248109479300245473619912458305590127416759998965554151867343092181229435298708660965879178194680683531312106936550616342277195179319584498065143539020514839194530613490151605282514083061103288946690391117751987881600967873285432960462029916540600906712874572105964441753529986992004991369741450584832404636291271582058402261883801867602175455325050128006679715433929273775939897716787694335711546930250920723679689115529180834697066781828713446337201829433752802398595355674615229744637859068257502997476349396271931319486735988485537786762505913133717499018174796230098208311939229336309018346249122168353470260416371755948627306902355322115170825596737092886149519457965053016118895917295483861070882754779154109407568927458742325974626022014142974620907654362972221814903740594434748463140215416005399828862918845379675462350880302129502390402364988227977451653997998151519404361643582877667432607205161881088816638850454599343554237414787261325248448239299587785297382355595093207864632952925498740103947706295994771563605246745709405775842633048610022303145800964800782015561255534277228126081217792065166097467071895454493898136348180920744841109278829845586802731537600191033722924390680548148138097822056696188644744270623129648609865536304631827587301649513044280716643917969268326031804927436988600677060558608923706572377027217261667357480856599122984924607085114677710313398943391091308059436933698224427767790921076568114535518766888304894933987285148649808235328794225385525393889551103310986215694858466132479240459800352544715009676345186045685183819303440291031355821615545139459890595751392233075657874384985328916435586983256106117449126740309141967937731225754310184059310575850373316836974795449691406476552197632804233961292832203682478737688091174443620446728363219817021549377240088426117293011687664413447082735447244447202830282336476787188318414588574359064326453679262119044597167316379825665711730909989834837578747804961325385176565902327144862111983090397150372567505379406095051254832679592010334772947534001276896141298998889190660076806390297425300321531318126825435336236036917543419969267647860428897769033476104271746570330128466070475840005614313120782765148754877754898955190909481019576840523973896198413075165559783228778102428558313034227952465849823841296417115457707331300416189736908747767321889087376734360077591586962440228894945927601903708092760639967678252687635012482110846913156523407450281332547569099187213670566561735843657370760021608508772519136202441769574568065626787086276020757733672479036062777145481669250671150125693132238090787594375999339157521507697197434412081440570082183746977321272664224353653524486946159428299273638834545609599928555965313855315841975725935920738291899626550305781969673707485622761282028225442862676330705018947201880866429612302379146805282348887832347003039879550270778992104644943639859458460845113503530333546292864224470402405642021525061636394454231548435218603186353556547545919469358692705898934958703211491837878612673449682853570793618055568262499790586481008060659313475233993047126373695159640885345216533290586234831011595496475287238206673586194153681462501457865970728635279828356328690750736521126404309570491246825346310040128535591070606972467590585571818801722031761943273628730918206204488772493878627118667202264333519999656089125905843364692651613430172654508768168357031024506895084490514317088374534672636740487260138306540293231399412126366135076919528634915722188931711474810583698601116697154080887971297620106601959295060591743495450685886358609569290372628726939247031653729983413329114095599782396179151213268093265251454238986316336780977414422954118289795714517007353669775507165732153438932425815717999487872451582573418450046016635435932560867279926127602585113926794337140939219929269529739735400538243338157661997381393319584819777607109977060930897559032870548501909947919309480611730574156353787061510216296638627373235625214298853649032334023303954336192595973145045188392487128187880253551701480802976574567988141549529458502930711094083777340918773600270743206534077067772138701404500714464746814941327947117684507982952866249754678843848743587419749187611095384115346929470807355638258053602545602294982993168675240981089225083679991353990454984872668798391066715592093063513011562951320410430717925445861405624329886105895804792289452874050357711357668802278508475417752370465183097777160662891687137743827854788279569685732750795464178567091214072204982619052433490683832200560039647394259336600230799516073592029878219638104960436473517510485552237792545168991445887382583885927179994127214092645141644757947926250863527741068924373595311392863122136311360371374038751657873701457700753850412535340250392222062650502915182401037991218279445600326071898275833577671593788568959599588940086562681515168495072068645103317324913063030820685087525633343139000120266761265104763014829156780128875330777662125018093484699984056530158589809640179827596018300240042858976073652569554122252358066167203783801559821941273429645711988914382632998874412119188820659608449090600852667710149686527846903527348285857306714114180587482584031581713037384481047947930722100324127448270108765361280487542851302739189449352145483164215179989505637063488789426258417402473779467757481432333934270844115507144767112664809938671087379997938690377902222540741795999149748253078227954301805609641016797256209339924915638564860115722052714691737527631169243954528443655023447282032779938049337975321715743082006117900941232372516426049031715746109633797411776757518026353316830503410877487502165877975237881283921625085867381731837630080385976093480849829327594774407229715955361226237848021874544212365660909574463664893445256788081159572523746504978195876740274673537728383431866606189148325906594072390273052849274549541096749019481762504121087737644185060067879743533080850962749452784616804581830407032170420270888200783313061798950179505927776639086306857774388127088699456344389857568296842267812541219493818584252214284225493649230321799729290003481684852558438302658903838760998629073776328891031903618323346528601460578594494587447438076219910391826963927723918968913177765353896232083835533092139706851711555701877933083790791256343935975457035931003544852449695362794485960183562405793348942963065998871337309170360235643071528401064616605846388224373699430182963648029673827061602217384670951971847530114751125283889706676748931865735300094317857740453985165753424041118744617786527005793840925821379016662813422734243410642977408857887288939725162077039630899691479181409268310112947065785937043177130716647638309785564794284831041068987688733050698873723306303732556554198762088288071726471798045989496517592166096471144786329015867021160984063906337967555344342360900679007956074817854540275945488691775298740146610894917022839830462613936149112386343859648104469695723567895611155083910658430540259808776956433519858860354428908425928857995976114984045007111826814769720323653855124451934547294728147920733354072130435519752113672626776739363280909210310149335737481989255663873666567630636241464015301924381880901843894906133650091197092098032085299069827415216032973405225477583331151823387264485004745715701661297046101867316435037122298650974611589715118013020804941554158239846822858020793637527121756243482491212767678537617303520858888720879268119782631974783333010376040998629572221424985625477889794851221855336014190211584384007776848631138088336357285680390219871821831425305416856348247138504272981268980764069517863216656145523981324418845606160783442250591346339665929220490827255955669947625614941602437083375991276222200842391154639805176276598131284431776466210456745582834683790114169355003790484555266525567796060101445940150508506950902650042491325667277130667063423502340605033344992020656115119508219464180284878343760978593931097753647613184394068527995793868494365853366051705085307444201143222653730405556580504608765946923434037420903648854691119428101064094301054073378585937918162322952450552795706807925611158597721753988470241365563246440047001412263533514770196940761205646821583796963831098434916314785008979159416930915941824096816569691388560975193446851167980879929102451140095246460918785949514055964436288230053299914599909716884580178847053229825162336553851318836451847483785012542666782782798134821527343045031525393256683124588319591947132951711059342138883312415055904773440668453062261061378048798985071876579513267570861475822886006728890065648056658474983309424399643417632825186230744916595443811768883073404723644225129221231410657515012036214776546266490607091191158171186518087295821099196904896610268694433439186679859406202610184111702530454831004654128951820678964453529481582870622963373839043562183653371707892561644344697023808232966660697013419338279932147869949674573862883956231664760381287754592788037084840972221234606120144534237918560217988681902800331173611017027661094592799243790797544676842893150482069718459607142720339100671085238240452786446471799036445551771708189616822538896568725817477705060391195782822099143075599130323539932778498293307624814183673843248005782644638260730810411543398284458475186383036621727623224841372050957388981324848413272371329098363456694170387676777516424414811607525714783511183231308669570955250279538957671069377528141026842402211216303316567784971310262066599622920582109902388159055523005778707809226343317511271907289068846471076005048558930411784054648200137312933328351781160741219450629853653934994745284508548085938652803927966450764102058061788649220577760747827409401400512398325270197297728441485586998377023133267584725079803452168496600183459080391108778593092492100998515112829466373767937347788008201247611941773559742595206079060590172204142092379993831916974772671154450986107656528422373852970721459977876217531668953328975997472120325089098436994330518466744502163084793017729325526415627119471561636543376362261431536427271653713753130797606321397623179114385562961953616942346553313370345543570637945545801313001742883627588164303757049879519337387502759093890131046865200188400933519535778227127208573822138485727282455846291797899990943763536238502313103510800912975802100049292072651759378512512294244678160768322925055671004132155306582732113600041082561684704874484147267829820248570033219130698357162855179335267505172391830285734399553185467515125401561490067449163569844095302047277383469322929604924576194535977720407376683557136905324168954290263806416700604324356511352847370649660315983097841030721036404763293576141992896498633472033200546812325220634412837636832417160776243813222790004780524603535771310964112046239935383330100932964312802638748074909973969424160268312713089209812886955172158008248151013533447442171968928141491464876714772111052765756816056280573647366108418328226849031517780412909109889782301863900190556449889290960633702085100552647258092634396023188977632681346467698784993597434616512784768716271062184853973910846915120025910451763834990420526549549790075949316083437892195850069096432817422020851577013281064449050059087127935707717165513933341398671014157504248047881495054204513957883077828472174071000151194223679088318856853269022644174700309969360641450355658007797694243872854495434016195038195355385301862013066194243283229537998688289705114360315045541874869414271285864567975037037133318089237008681242212970278426696612435068684321231034581099378912180119358505775066566936755894060867579305001042015791862063547390047954378050596705482103531951691999769982269047695592428620040494048572264085049767069797652234040271652451670462833154829788195159995472012018155668897585442985109652505602535755602713101280554807835233670716085769418268263954546413104157574054579730595650666795384859881516110096153419835456552536499579656762513277793644985031898178203493832818994943347233251170173414291750140947311542903130844718538405639889736599828389762965342976007807166802071503858940983410045807798911152482993173408718776471764981396964714367053349097610834092920604597749586506385519777549395059050351165022806468881175977210210114126658188028129797229740940540254213337211737499468007648850392997357607992772744368410490937602112024224061914800204231961709735265712398139732649403925118916165635891975583039166592537615787862440605471514549291918250178395284234241068773482036975525046528662232498635334531565457329744581118418427280119161416977109305249203241538304262432332730098185850846528871290529120309875051026783859236383375353044733441396780427535221187465459596475903356701712617349415654608101228817398325575458734102070945722699302375619957276151415596297261456856700299559405284470975677168586347013203448345601704208564870532325390663176668276183551172716002178571845135980792226703996794447563734169104921810714797573025561823564797788558707401923283746258183078943858245482985246699072003070739212776687681642863764911371454407156934438414553806198657418270435995077654305069091806579990277742116936551516733167932569191499059631115129468806444960957479086777505327537479544502196596035718021142274247336131770159496943366010835017071435808458804807092083967580660327317949887265503702549641100507922820552015729395703730180489583247042959244217833762990736410771833394999724005325582326418962068159958346215622511087352761096531531089113107236039629703241646293680357498870792903943493616903479572382155286161493668660951728127960430993306002474591715922741969046562236184088460116282165297970547978601129424167192549319312836297187511342696527989755569497554678170100847267906882358588196936130224322027151771835076826065004822527572555667957621604125442751006599854613268019537457007514748703399249249211072198119377917187877490944068583828081694470965441294356872982132591053820969577938354466446975948621923178658853640890511539251715464202074279274604477988907061740078772511351716147091609847263784400360243664843730361125041554091087228665598794663029219037599492764642259496543682536083159614720537181910889157912879886078323194226923966146071948474496767775866626253545776806908558805159387787020117911866642807737186603142864881049764250417433278264520325120960066279142316905914506352385623682003418148156918858806122284570325453410825596219262100329169337810834660788363274323107006949791385099549907382331148785138281651604376950407144501774716386529496604349290897335673410203969051056265640928604223861468060967532173599540857779819093993838229766395050786888516551285218165859326454872794757029365145913890391493882318760896673386372100093795588349834368396262331800941076826863287880122892874122689015538279356246541535371414518309847689943941875938193729109586363623380440097131987027748726613033216948577661448090131302991936511048762059919209164297730160943153076741194007452229718020454894921137201416570615673738180637008729291971950242717436956912431000347011561336259970591709095312752337911095211447399294565671066393485987973743565191692463732712908223875930104729669865773809415191410381237524889611563906357678526494288262263690189034833513107642745041635305634762074504537084321295472786404977495254439075643455913351039232562652651326093438781984743387409831283484751346673386234789676534334166033827310894442529224485870325749241676486875671629175703705187417808196877273539436012244675962873675255688909278487628067632638341571756318894792762331004290498555462509774109072272803873630731312001430828984240450445063639101012084036665648071864293349087610227979748452648282477314385486207448597051445743710856986736376000667744084990164719883489931283369687081071291446292263073602049440439046369341924449255781937812089356894210174072719748120876520697848930056129710386983498627812600988623611247180665529460447167913056770531775810679472791671042790076643633244385200188745744491880552432585337999892623333134418158861107511924713379850587189692406260015664280938645747434925560873355381075193938866237362742730026464135679758567481002039258848070347556988302706634272749100475239644158733971689242792823327558452461464415289389617784134108050625869559705721978879709591826727018546330488958150072099776978913519159623543513024563828866090082716320319999733577490959175924546734403548348274493314974198306801202482841796923727842254693975427713896777040477757944915727311364287525409452348293481746888271730626600180395002834812417939259806412774458572762146785294738374638442913446759155320565526848788232240492946774661506100540048429595732663691560559188189825598288704912406600105783294723274498346280378229397100329802180711530222546602753216039669716019642692498143411746297013501940124633395025907223368244357593811299644618327247064315001761396960502586820049343830748492464636777289518978248424666477759244374137597211962412858913456064213660568944342643306185987702503659878516181897576792544224066524396015040585089835100879927270857038389127678047808569309770340943659677357231271291672970628881501887318162087903813430348714757473896897612142831877256049116353582032274870782532284214401560359952324683883958383622143711629803981344084276014109478015718054133544027819598287017657455643187511377794763001832438396538553617992064227380923747327222616679368902911672146223685720597867886825685473127516106772527042923893087716515038872546837705619266799929369114797787254147368209984432088579350875845868401201308126248800044357566941239682397854388256439164051043111279534475010278152429971793828153166463350595039312663289338456821906545922247443267199787575147200642547979933598852822080162571216759179591080516739085401323080311308515074401647272589569331140943117081306948816527519564357802530861795731115197105047444216017055530896870251745411181246713956874523231695696993539419282910255556402610348510137611195326089425540818080002548217035524104787308186369173304530048586739353898588301049982630630808526218843136433021675886824671142368744827661502528002657153835189158127406604812143423049132398622307668528094279232228390325943851215975077323549298317363429415986544668581114632639774850481666321984253426216299972142574842452751715385395164206408706742332735340121430034404593248810617989675629583224152072464630358312665481342562069830967271328288229968934777089125889237046117560510242356443523296080034589020313315216459118837607498031581162153990984406336306404477018468513416239550444591490881224506223312280703209678218475813424811755031775660778038898308328955786067297324086319403458704175497051325727793633589247286298965596501652635631865050872991496964382805872528699974477995373042025454397229194124667668159137054171761700483817000376596261856202701029964081762036963293388135945631277787345825486259094076683210741504542276772404764029207208252267621798654150190507574161393349695967771053955663364154179096133959960599623328663037509929426339595950927098674835332998057434960212588344241189727819628221401391697685374875292613374343483064024005728979500712256866330788071641298004847765200698228956081259761781070093937723955596271712736805108276000755761030990448498280276864530385456641996504775004330864601309294917080072542754047854976964483015709171253538064278337698541110929127512391346982377135616713790491116732304119462715710388048648341792405947266315669095132025414361580529192207869570391178517697313630791576668464805370213366771753617818164768113674703109298818647092486878400421003464252143969775757264217726619180285727387845267766604628959386313597530575115321287187189007642419082367144912577980885947671448387116578106706270580476118572318067072882183495620082093064770726402544291088411439966029802256832856767970439420480348495236660460915212115691837074916959142507009797784039857443222149814569394429384030342043545900231261068124717653214927811841730906932094842306928028089958468896150725971422191070611783758689959643260359093424548239502593686311704316039754505106286816194610750382643356906822897010205549703420785989435007481706845297349243906515080042951372511396342772295021208953380599221105860069563988840105015477024678111213694862249801305417047033723964834910605609453205185037277892503318833035803283385262743584284332516376385443202796880232637816877658784122643775836920750465154140945259973329016555953893315985015397862718013442764977588077250846023880711246331829468807253042358426367642961529771095951961516098950099376610138588465303845242361251472796690958257818214473403607369750219025283386357502678139147403049502165805892458329701363604608162559059467768297494820470386568876277736294603545548618916973113269177271503858754828579750826822084380233516040703219598397402185100261191017374263144624133026767987357960593107605755117433380136417752390515805066692021604681302703794693728429323209892711843873163899615697795256109969789395801158571679784033423698514659608562287255735548617169314742566352957510521046861665085690764940840152277380134092761040806590364931306587420827399253844011887719087648573985266212148083658639409092805387874530489342764693326243683317306423454146647359504980538085876069555336587210117871686460691534769597665310418376840698673230469225502510708394921776086168128315959333799801250399662050067243586724444050683663794847708708962740285968351261274347703564484047961121626307723705090636371774607466820929288572171047332540332213174645451901196181523732440145194711124901523151497380826211222957530173118593814366157867209105497085540316519280031218142817263511663993573785337064682447948542030360989682715101872598200978685327573512512288443153963735135663607521823014310395396238052929249874229049308999450477502191916055851443912701857845597034183715284649631837946213797825262144696240144008476931522483053031680083100979485554812680484109992315301748305308957428068513011290288733806972617228646774778064688421922913325092702897796371405982999029394208497427248595292848064681194366078169329889488316200520182732325203686539471526503201114610465531740768083893964819107234468196025007641794295060357166020502240507042769733957761194941697335952274121607252915088131814091113979510722461351051859799186409005296045351189127206303680763527472725933624300412320648290863303829952409085898340214094836507791782552709712418460658353959530950053614061148482351286229730361585354373667721542346760153812705122708695730840263917818050545908256384414947310377934130134779803381421750783037956178870084373058153585723778700425279858473740494525467333085383417659798437453667867624769357202257289585990874765472347556209295463064468581296082940560578298378701393200446717966347020149249445998915915785505444260073123560370103786496312732499181128801347336750087045432869965522764427328189870128626589402238027570589362665575384629663376933215989760300221096014236783629580150293021604964623407474004089305329010130166055226753728133455050873394228560079977039968919394967962068083294504027936473149707279925549055704247283649513605805747128955956523024078972676266705795830206669960219849423187920103514557030384402131644566274032479786012425292699613470449499639505404187760083306097898215193755983361556415007300260594456272789784927122950568484056122098328598736007107608953216545838655251886703365863248270051730196597843878156625258342709808522981937061437076015973250243314554198642884636362401879341239165946589312006282265261504245625266121050885471368549725305197911594294314531784130243441152593199917743747212775380570845475426637807798897963467835763398856610660980129557477148114255862821271569854097230120025614081066736654747181290352506774328401655974988291440366604848084444109038339560562539050123910826339926595329840961143713892522175505577568948586386795517446238196102712214211446512254256016126865529138663710943346469978541824085441305937226850476404613152040109442494797511683930264870320816964115364745293119497138934855980471031116179365683366307730916199711796516585328054183233972121890382076901324173602799970930492458106250550947667180371068904905013174944694507389601443643703602616150761246273455026546015933148413559933456602202606336124503402404859122510579797003106830084995092099402218540765306086184822832621429664156985539885734964133191006452629619731067296493272796960181950992503847887213499611995648184148630208357783043275658314375546746259315330586471484768725712856719271984359069237899537284282331436669265312485343767737604207783400252435975837279202289971245022892585099375450726106027074118771671668547275058605617702924521631741431237898658269854174002375789214964189968690944778765458703413311330894383865688609289121272558866857002770895306618085841550474516840050880924663081701781715033779388505727362657901447338055994234476697634736906561309307448592989219507667996998432773459472093022283660100908612303226149306106561609560996542512169769103209110404509826793385072439282409202829434971361981582228575444996256836162675675463698582219185587328835439334737254787346995892417405838898446500116999288017515473390234513607835805301928497351917797103069407587521339601514833021238986620504218881959135852499193775369067756821896331558572965418505599283554573316920311220961995737505272547066255473222127848070803937331944681990428175487746238754920094896361377254402945523173037965274213119805398773039379173778830713754376548075513728083525628269801941715119809964075489593745700778673312504513904580285721124407569022212691437890643965459780439514838760558515044982002783948960987135303114011310535192254733467408033799602724681001006742362516789237624615367934607646137885731855019857637814183156483269598061612825560171306331440755153805980432001947348264110117564229681518560862548111540836065600485892759019449981668574971429436223591378408805645926774110591374050638023293667851872981764664079372356527962617033014610995336573089966009313883823549089336671721502947329961852028114867731167445300374956678299626417479747766976620105501729261426332893926510642010287048731369736074005050991254582395567636719202920284957793850982395043162402636806100550097974145944151105796382339691868809799941131839595177377528937987687616124507695044729607467585819219148080485826928677826451831605975623145778001086079859254968773438490638416815522136371973174065922659394330242026549988193886585038858457290198360117162105416847381043227252354775530315786011300347549146225575547616393001936117562017064740410253364894049982733757710761571893228248752829903852896763823084995071878755574637997527035508810011783586463125441639707078870222032547365297713011428781762516670076397789933156164852637248381234230029623588626432994137543198107641531867691216139215937156257270769736795140092514821968338514788741783530141380308319828396379128966201547033011146070185593249856980380740498762373559200179170164988653380146623267269180007336847523427858833532897510111899110058126703880007595641186299972716037781696763426639239971492625870495869759667000043155325872453810503952284014269526686196476986594499444395340936982595021208670936718361804513842164284465395810900325800992987777115393008956962980916190866555374332459314046127887470322985705145425998330985208306854919108614675174054600381138017898967099961384225876321411353814223595059378662236748313867546187850573521821906046194579269788117413161650738226385935994267162379414441833337916150896103490942152030983046375195944701566699624176321543384341836882434654479338546388271785853219352344588825565204680685128622922429749469920371610554520505554942733053534798841706153781310429349400054971450082823774728501706584280023655605557605282048392984001755026363692689599181768238850781105563984285666793548097668146741349796765694362140369362556045641373869692647164042922159358281940637546868246598502970091744894088914583526383873758069828394599782712866790732618045745686541002826473230900034069325107122422421580551361801428954848252009003126238100833787872118092329544334490407005148858135908352644471751977725308660997052525127993458582350563532862158044780038880642738316503849019600768304054459193367375727114144533141899865458484952325021862563532023881536824508083050020526338996524808171199038006213217311141554744655139602063537287576425587967268330806771495250120487501890174829439419881707242788773205287385364024782258541483282459801026003607187498626388585444224087220610005451583933897581036234048267383995905010511531216342080074017962213716825035195111033235276432674366774011917058326294699889147388223259244981785974872017271973334353612376677426046873778886527296414118677314967778864841693796063416352109365213618504603634043322057357758187026974410800530898186473747131624002143922542665901331771956843288882489122288983755726743646409586786829350835844038261081975113167713243680546986044225754061374167742341251668752087282742866955395082705425033906933050140869728858097135289670927919969792218121524116091540413195304627340052495349126308658512367441879133516764652155587483812206200769313566431403213730270818912475319865994807581834411794018004923818959462807565754848370269885482779972233758521060982209153901618730506334778406586905078201503623909950803128475062364649905111169248088340467853256027328491594383930279980060187313727292233165744523643298333194135608991931989600627107928777575564580064684146811106795479407416185917710945508037730336446301556086832963792051348860788400541970902008106008453448825375001101887763946021798686928198475514882250613301420678176267867602610569137974910802578018203681817493531075973207995867839893240727930133361262727349958774971782876015960809460516788797237749221770952636951144170488980608107498900276506748297330842885441119935785201177770409444377306856156659958884011979881574131351339443378007302271277937211346878920693752013608997950831915474011946875966048680409478008056893931331214077508462279590095282005944025861178410389187232604883616879560478191674517367473917051413009263081049262186824222896627364061203096272816939888200649585372109869134924664921356496143171233103257671616508343926762686806007491763789376084030482459551366475052774833122576805653809647665214055846312636457292840528925742550728681362960725434535976938058323953467874277187429197338596298924935100046897489120943794844018470312433453603413968434127249751296241072371375220258408611174243721258666952291113120837441524124530499503169910112161283193303384577515460401042172997987780101207591141103573134800957473646682873540190797742561345743241089992375873199711323377393918453373687373985050620784722219935508091945572243619444129940766310590307805399628860636577612927752148413471472484906298302334464716229911955725257045792182539334972329597244160929484940528522880920627522103156601767033477787141356140023195502733889866216064346155989370885041666663913933000596389482993320550008752997059513544779699886625663608889178350353605253906352154010669407563374255471939726649519150389012517003830440991155177604728537606656491003215050272890402462310250525854118975871861756650765665948835896880089928370622229300270264873712702684809356569367087008238273577965322655063348857592222356174724937717700612763504334464423537891692351006279038462673368483461454738139785648078707764448522076778191781922443772832122533256358178828845560073444280482376044540121175878250446510563730541973369572850406432418418143350073057013320350939491116814376918539251272503969521453925696499724223500399092497526022939375118630553441259632685534910802324487637817598656318008420635895378523287479357192516292772672028817616275508652911028016240747368112728754045236253927602882521622280282308697405165155036064511435489790490754875137613154725513850232888412085439012790936082637023317936322807865563347030217407362062301311845082542401127247295075867402649311242571087313835392046420091505948899513191940865231355841899907917502862628377437066633883941332992484492881524018457402555951442006524488858284418535008420820807916783409409211838503276363006601659895065546096352249641231015988474253084253839975302614033649638662698369597054700946358099820111385030211290497043576697070368461210443238171927629623791341819861165423176916771722848746737859535049021478218599726893418612450028066844671959536720723709088612128244786636363169235286228865314316581902635165771793732249565192538706239065927393626510023190281150197499597695762774354278214779040169559638805361116158889142384182856537289463006716131006677622851495600082515229465119070440737516212508866706369314241300894919260416825471628541379391903535411991894331486398948604122114920862074051438294043512446156016446215421100865652442208441739130720215456806525242582499378297356457606637504861849779025778465421138805001034302838705854368018335124203656568518318982900736543943602757008212478852114731769145073433018967314625813127897351926299078958268040510153045207211595181203521877892124368971447171509479299650056359164072885500264135327954566072627629653202551814819079808132961871508444698409628376299597267043466988942031354481464848494717180463581759920274902735973975271534865214039740842214453002899840441515415029499533053051449893819199149043994222632033702916458727117519577648710969667107247638683528982208357736600076563033645163332411009900566040060998993490083865378152189236350661304629693150610579020801190045659793810157531390834664769685524927610414605518240048995953595639772828388486531081425432212620632707294503291923471191506389946505552455390781069227265501962557863170461907474927659088271754549270638333891115368176139788747128614664504624037462345598247342600622477624777196774366320279148330134115434961729112437240642511285940965272535695672687891356555629785313664418793819799519493879716557716998271635164465867248390888410397213653938931077545319079651810087179086530149074423751534431940683941661828044525996332405764437999090966397361497535794660946390864987154440358484858125422083269208081797707905610302856733776775520662432608551915638140422593528175905656723426106318255142913771281465563140069456621037668847690087709031471865558580126133312095101915550496118303728514158736614051914465955731348782666062584908677264402138296695556033393302161179895996157734112645728482515715605511149019674606180803285782616476746876486919968600519891487587540285373437467660916534517296563838927943512419494947763434026925533352484391384582987993108675696564178187249028047647569989172535098139731347249078929048542464016998379982680950920569035193232586405990163857566888978405571620572302416750187937424261173947846344873869806468574679130662992127388451289322403534286443990436393125070712342712554794603413194081592667303226523774887439245541726318612891779179549829827785917491536995044112228013068627468164700098003377195154824480067184296693697211694395164814613683769334983321991181763379010067141270047393925995849950393283689482798691696647339693410148160035987874991002839024900179056763626043564541178312800011698716048823427615140542821143930054893712732169387016290426772663977090082247563328342018064748388888343800852034846634006529718211950382621079381672640088272054470143645483304188148875202461627282822171651355765879926956162738582678769634143581445307892091902772113640910862779321506869235734874839466318781691197139683693391569909275269358278027316989792837307592058728153005565221562243754700001519687574591417331883435283023267231758250717849625059231338208925398098908460444498659265664198583097898189045680032807591656533142916733657239155073316013137563108795958658336858112309236811933694169925736323016654150468527088292371121930444748497722313516766412619942592874050738560846139124595857415536420045964765625169042239644375391770678040501943135712812431544281554833508139518028872269485997689208627097677013698483181703607507896449728119551612518350841816017435331811823700927485936550955665364356455797484443147495998379850660744934003115925623364157006932997429884960986269289094326980806015518196837077182948317682954726277451896880308664967061309989052123247026354454437172304450714472754972476335895336168009493874740274914765229007107571516699529472960651549580425829569496212792597945193975330850396224646714685661033237331575931508365364588466995005156922653291904882917478752045033216299929606519881461743687715365912794706259504368268144040169839685860055611748466984030667747509798703177913910381126463411953641965512216647892220175446175987944423203027927171780549923181706656213482359895745524158969910871289593169063772781872497863219125322431243128299541159757633144774620012587410216343084968143936492808536148346261051185721819206871130129690271982353154384915313203100736370568360484967258142757977321319845487631356910325165278829247039273543771861834821847506306634726110503551524139436288404252290430236478391889312545644868435249428389561705784526088742565496902629669415336355715271221206143779589491878381807230594393488782706334578471841823049334768152890519875609929372012759877041208861785935770238565295863053503317808654538364721178263123245579308546738866895875860932290622372142612843864173280742506634537048768118080090995134493343793857311315889881102421803876149390194074212143264703061474838976995477526816288454816697934476377289814418147651305204974703961533942154842538250453329556920692461305961451897862279171968437011940086757654183769263912236163890018652914410621819125768718937526076521531272285970139674906119738962655489780615223093178424224687278735692508141482405514232035538087847612093286306922501400404107170164888452936809661457271004358278894090143429391448341617863112835265448347138939010501855551063269342646372608077631046670248631613178412089953675269756582610285453618840907237099398659544239231227628812641835835993498931596210226512936559859071199167005859801137276999645465583768299186193680178260642712822150616584697320204863785910533453460917615707176530398738508733880209731066819181223838616355205055058237040945742041692858853701267270600181873474080725213404535535670576854181031219556007330053839457163160134194018377041773479691169895226746808924194040529908429904760513272690727510431062420835657291543284039481231547708797293973557981151181031927383979129337913790530695865189484928912707048552966848957041549683416323419144747812085232040191090226832598487300249190519423875528993552545576147203652358789626884714852679317180730556621150691001203509335783073453626165623101912984517623443332973632829730546552818943680610708877215922181574958697852447250186894773029081191167389096954493287547027296577083309868083499847218319862880296740752539829756384119121846913770080306247300358421811345536945552778776008978520507688878363348916213425510783071958244220571458253911775780421230906993150579221855591933746069917113356781884389062578107666552663343330028549185448774743114958574104764208309729533058349432713051542515740176070919147023680598490592263038966947894083070920142815782694910300712543526429635792176620518360406894196066620318881309910652975921916822562154426593262386853705946171436773777405609606039986419513907452653156952158439391496290648929608833666017277442295648938201135090585907472643019040572035081422420064881562043157269236523944438136859092548659997556495046659698081559903684475105706665347190290321658187517250033657181953270888126948686782690197538317106237774106636169179145308465918543713456766111262863486369043779948342978260706481971563692074381072257987312108591796363312111106302571382959399394597578072401555076770845321954202454444065265092930822566922013116197497198742270454303037989567000640283734614817224426437812553172711430820732897376039311439873821640577818383739356955729765273979130153710419913411934788941502208161935870684825551429933954926140807356254266997438086184981723134643142178881750159520893433439001415175593276314238074446754125134384000784063575956339776638794025879428262806124301658801749915217860159512991671181824593404526111487680228474303859213755401269957040907213517341785534881141354817610035189054603156799998264853671747259078758362462341195612261716098778755984804592149663950186814080123490734209710042675924255573680404270630246592771351118940884660585651213416022705652100682565691469875593095656526912003508287992092534283987894643614481401774655153503292332934866965827745183401163249872692779197393085250391992403159686819320092829393332457448004619785130416098849821514945702081392901945282242655218968299839639983879558755992869994268867291905694582393893972506920701225464840038930057429383612729408201906866461808719218485237931998901776372121526114291775606533131450752055884351133296818139134975283705143164869800424874310826249628058948760291798042760863563962548697834285617190653010772524074692966985517625262538164217227500701446044330253056853267367180618577506490118205490393077643815414470620266458525051825819487831975364564162624849600974787132171691623005680365578200219361766224121437458961439079660385630764045413740804892941906766326875182156507186395520832103667819966681571343483247962906198458079923257861843731067589172026086265533911826601647260709935210287200754836962352995756550071005411422512990374446328609780083294286580683807893045091932899793056562279589389597500459087016348917461040098557499610252690836741864971784807254152040344064032776857647485112254938310270241548289681509742068221319571043232957372162680478772337933827271017766553134807406134692465376593853764641858667849292525089802333709263663660874841713271118360551571630204482491891345015201904253361056318861753220152472171802125962568196076996249598175909314393019191000493833143994952788091063173216021739811072352151941756418456080439324447689041490752398755106019686888604391634398289649962226426662075895913861142361484663155017507472016467133820767114605592069266887283574996700238650873732103128000491107010446814299028427493690341059650896677789381493854398316820498361672274571471438857311534705717087909022557185242745302898198582881333215097929597612674754852131503410137317167310793440516303661962457687361373771581557810067218773696758159015378730231041284755443584108003471597291570092603332399464707059480272117762457385096861714972720360405343720762771855916339149859183151560425112450068770607460665537799558139853863530018094989858566771108808364797913684108730852283994092911524267269464645975317633443996100126020045783908038737724301168669964450839248745328168208896669841708175664627762548702714829232258849616515687524657262789729662606780833396925850919440452193376264498546689347442632781150968495584610674660779319529806407217576369495650820449838604107895600783003834904409962353034178804605393833620576918253696929268626974956943432635837342794300954752298490603655036891647232604854464069020188120727847802224397044079578820177484984171527612426347170947314561889527781840447660867119760819262566968808346879784454647991238848003793903749869593303868701986769587094868649525073390895355705393175917707218007064875916210054011729363797106976335702762936412016917720254294893392171674230218662679231591892134019649533268706577137512594268339783716806575293725162086994501010296254788592143178071040206286859496214272793011971517353964983887815490215030229859405979058108250928818739834795932478480694007813495982588742058283311910501633449659231639392684719888017418449124181460876451983836912442515856552654570234447409230678428327090905161313250772448157876750046536805112373766262501904478897821249821158319070608416242700242459591302545120400901672640483671196970526079402633835596138700985352304524600113957197212306275223121456922413354673632297914606729797048196026028419991175837307074564284085828701617988114580920076192581704031839107402707392862887476844934227905354527813785421144122586805031867197655079369379212824035690538036350857982285346035145119125331044417679371301996199705404926959286180056235502066429223028655927879157292987289378748730104001634967158833183585195278790171444950477834719012568836778245352717474396590596839565366574527423608814674794174107193481383292541472917353874068822423178519016391394732911748705779335981061605788576395094544506643927686990684220436154454133547206183175937977248487630615685008900170778997261069208617577432285597700265073385717878118209327219284230522267974268073141246491730883238003735265714646393106151512467096161612132245721662431036759599219300450730627134878095788988928822215305333971208881833740517043884054814062264261506521150011816774246016880147342775633464969892509088991419254193435813372881739599092779612847660002620466990261441606481694277916408424590749476338500132443242982485707578423987310605114475676226743707709396637846712988679030401750360620859319428466984683317296873600526459936632325079031458988043790332937995258824924374999732062905817390946364670462273968544058972587083183329326185852744924385981763337505704039730365647624288789002076674566773304114832548639657104970656507288334565322382762682666716800180651104872765254379301973693006952275406238734210640915403151846141588664368614273814469380188148652310459002618516991409599441826195022474620875044156217612915302744532971938497809763739990887365954657220260151827225732166899640071140349926205883419765555827214726170894237587419983168976656669720445167733696180690845788603416118678409733835030156627508853282931319263766910625915438477459640708137906409553101137937098399012133379768431057177134711120494860474915443051919844196575620108838958459587463991824977315574524188035762381141243337213733106669853089160365302563614359664897875913976082409130990652296054131245619004951919244839875783170203739700803585157743377835186198400541731834699625997837014097827284900146341638696545205172538422417097001714571342990270959483583181746274219191928566959818437850118700671375666703102653720735836561860722267584086762322451703964594852089275808062792521614871140225113337720650182556072941779842652159892752596343262146513140468926350831464677651440750346904179280775337046082620663700496168777330016824141884871685529337617250115240488093353534485812901276414897086452786629805901228226051518628487098938318741679153284023839017920619344943736754542716929551756400414837292049058003874483842033147511286543590997979496342437981787805889555545489978172335705974558707461214104838083427399650045979824919201731146064560920105037830462447620270844689299932753749903242071356537903413102664913996683599070386677939421931064552273500594133867069309026874581219763647718262467732014113301156809793070750799811251062428606958781572482096784126361101036943176397176159836829120942835517210694643268599233427196356243878227356065160154984880953902153790067433868326115782026549796259156162081870758223802891932485536124815398481182746751391302854166944084450627098649850988298160681460206610253723600032993099557000810349102392990724455014330391239727235797890057579233730930648719125037920070237346356015852201326933999499977637565838649848639343753472128292636367597235088640079458577038164999022160428044057906453130460275353531897290117626899265766634791552094211937550698492300356858949346100585459209382645013402351014701549020258063679582334244973884882202268850113229735411720935089536944352064800624019876590575816847844537598110360907852278862349882474923772082528488115470736444281152831721119318686139138821802218479967932858569318450214705366759404495400660796525716805052984821877173545866942448768475854060133529338744045719475310875910932938195717783051478143798689714378056281490223681230062173248628826855999910953640761996891453186626354462228300536590613909289400172050841666129645481318246895458403113665163452822393257120180038689683355360543301831971600313896726920911070780542929164180745941041330470806943866157553718917800069851465057217340193065546309753822673667500192194355548799843852327184326998412028210895174158283327223786943944851192728261837261405691102597363948670782101599248769998789510289909014398583883502371020933946485540118476059471215383280419509852190318991952025632917374540125548038786508095993624079541100237772305792706691431216840304872412378191985444109256880845849713463997138664952746146051508559500453174684632432586876458390427674994703226254316893019617176339840168965591644984699022759520213754716494790409990703278888671336925598570787125595499912867485292673476361543707366980658991347484029616405600996971288640159409766188975180040129834449491551431553269246493361365910583726367017356292993846035333437812993650841860044542629066156626125868407292330060717765311977820204163610717026112370584841147051394205838969234440063260963893381615758978659463957088157796628087263064272264036193381465489940705721319917822918516980248538480152271063666023766310772269377063868203743144902619811466580141919330271105183790154630715616384627337811723942199831190345624746477418969939910866307626818728456452427771801227989041500926486560277002092680091643066510919559166031474086930451081934810222583405836256258608288026178206459322821261758041224255627810478478906687187513741242261540669743582183608252204657594061362597912447895973999341954056109201850082688102399124901702441191725421701545703864712739579660666724530815451350285063730428663645959611774620512430619229655382122002638290710466378078501292825005847206390115346848725774599764656773872259936378186628320131306087104303231644687516739262389469472931156837446082814351013874407058016164249395776595348839000429916382314141604306237679867782888181329771474987119528815989454281014048346878384318340450360574096353387217693614281673100406679296684760926067516432543441989507997466416580257112720502198886678440229276205373689051538150408730062609946778267094913809835233713354042958136220648338675432914608609871855231378971382363834577226935679010241972279171800733133876345821531421387178905281828449417769313389236377566759609617555479714515742182536911852548223639911021315619223248235141310152847024117962059482730904048274476862146387602433072857457099536539669187711390488985139944333669751535391966298194285505272204619688805888405179749074548457120866746441435054405763161990147146689177436637353798236076530787671032577403103979611408859927652548372256575592041232197378983299221018695152663685250374217883662817206794901711332673204215507510446810432779479620265964209185150813141877238999669462228287838139437314211990507591234926238322766193799654881176273872150950107459860843798006273742385345476644868026246860522310001407216243299791463899841459972590578637805032417606482221594290479747140492179739482872745504904461188679621222763413338540238523864880717225968026920421705471215771891060243379358979135421920937891862723073680537438070547990176606836653152282876741719010674208028319034388560722139897805239294893779525810777255204713681742538679033694415264598817172299131369209629489204611490242074867476213332322788300475244841976954518185733903069857492290169364172404516469860011944586893571409903268909484954934921739244936734987376652227732210730638097571014032951890764818943421046256289868692403914735266112847551263863252038222836959373763840642082577021514584687087397899326879215041047742716735275710587826441865488940090085242063074530382349185831899769016195200861716014110654977630838107454676388512631425993139331120295159264466644231405614112471409738954465908140154780464215642047320874123965365982376671106176095668037263648447659863682693501248135295933876761004160897181840426533770499562074197276055053818591723542260545104368592232770392919173041258013362929513929975064493371151987836875102636263326392526568212834371285825859271711817130024823748251484890912430720756714097361668851954681037157794955884243499652329806492257059450842606717187248667472173007199082785560887859291337080084672805381976670910554041370577689383118773439829167884716564715230116276483788141172937696966342004141386172949962734529564256331391702035273693061622237593971697253882588278550179194561985322978925720258527693201430856761513746703787198074194944612502973133441117575254901050803938756287096779687030159379606440761557245742252302661367420799814066017313200612590753341229703370619772639594356417265755961260832465107044184652522986466802846068261479054762278333457310690232534304062769060113513151547692750408902914199330058576491812596171887259553147966526936195487325894342083925913850007735270335256582655515281266954852744319585174267943963097176619012247173593105091027275953083712984899750767708497453935672090081702882291036573770486809858040492049562454541498171653278491200064962782795173239705037213939888799962074785005564936087988119600589898665706328987217538261706722577348032203767538623549755342424459943445394640657292560661447964430028369480700638147665123856209690689657052688358448274954066380832491958032899515646504109633169634033343625145660491177533263952157188453928843865008626789918553191397919144457760020504072791254811879098278903626299572326771952383608758174724483662831195592593665422470134426905390706474256696863025262721319143178956320770598525160207770639689824046505794297455877146145967153575210740651739993661628222094462206420991611447963647138665579777822557240662742769545987836692340810779620988435600919032965620302451327548207698133970321795777163515698849785588559127955386785278305277018323810277664036049063477575264788348091567476440888942599736293812981947729192490308247580843413627505352911727292714865743343849319775404808058615451237292454338514725146646367622600273387519736259380290226811436389812895651702948660328479166887664665522069704139313491381747255341188781054282283099234476010917956324985465891970213419337224316066668105249526537590732856861560157310037793050298290070107866492435336216571067334052459460213014828123839803675291679289436103159830976437082501388131921184806938278096582921650820254679413955642411028482318998596768403283920634405608967922798549872940448523424270885220556070565573021963154369637156193141635388248904570287262081701029339238352560540630770248718197254327998979856501644883692702153736263823063506669761340929324370767917151556293347715218329640554823812148560402186958039220337169363153677271496697571839633860039497969728074158834242870510306849822577917501355391365073367852513832062673633632497709304168692237957829879437598183098715577873476780511447776513883422316231391426657515601329806510889780616454364057397840623210110533421863393277896275881632926080804590727371382065470280635561617961681917171414907551390505901358282753416939892987622453728183244531564953451372925254682790766182239134063288794166831298394071418850534794299844850156903008101904155559763938990754606267012526245499127552197991318118019174337301189441985148973280517203313574361508796120239611812684067966573328653102952422836948047913985659834749265175293688681343593709709894478339387461288678021199859539149163417499773255269318510928295752660788568358323364538063503000991737865267802186380450285127026942321606628847404653534878736556052852241304440722569100424711984361532629510924627559246484678260422105021595687995348467841399098209193032517606943779565999990932985840385972206826413026837041325165551118819186379675277354000279629401693375673173017254188974521080381295740370151647198296477435852393521215980333069702103104368547617102558518553649308794515333033441058344651576990399164140068712708773504097582575828988852556381652837834030260393563491410321782085929299315768640098242515995581182529039597208709245588891989520146373506870605467631944320726968883312287244911567384238125907960286179172219473620757060537133148423774244373914714014757482644041177867919118776056416265867706514941036400137927105273397013518945889075920685966261131218358053242718530118012721146070895639735934899727088690183535145795656877005374306359724266962889856264836483907434596321384885571838005309615711698157180949197329754523582751849282592660334587124764270672609706913170516511388379858023877060874136077142106703541476156766451997703696824688426557691406047892753569593261163648357896976024143084049487525755878154558639376928357534854991581445956399370286104764637842458168394796396835928761560497489149890578441281975094316717122631257155287623068913921051238029065971391309703452292415339201422054053538144757328104991403779506406852719434063724619852295243211790942701569445203560379522144247020310402497436845118949391129817586963874885929581629187514947603567994613171514823897196237966068487483735154209774659757667635731405498288314102153076524797280249312221102613199406177585863864621938863113028926002013754495670701900002548942078879565531252919100361154058408241721813816655010390826052186546722029083856206069323713421669644022828133233481190632037871063325066470941008420202054821300054008827108525325151212970733682240662123679532506456802254135475169287227332029464767355664759407884800598724381735075016313432612889995367775293747365456033379595971274447063024501127373841687481829821248020773941779913144219794521332813779316838700477935246596009833167785004306237824149279461617694697670131003941304864643615058962480910291631015559600004200568127094281999181005608023995601533021797189065811139065390578148637372728123004884808524869372048709760900049801579138633409631862533950486997756526872166247730138147957045498009923323811287694866051743092851109598889908790486577647707741896042519140014957960335382603954078509299587115799722274805834027430778364892294242354468908989464374581069161689383510139659891709701101772799458425311962304776563957930240831952829061127243080552779781640798626867138632904317517594466176622253921743992303760272778940226203305540986243956680130106311410756087479006782325978906177683809561002182186893131520303482511691618375582254810185298420038149811076507057260656467272060674916407431631588247164180152171310831709298272196657267769203248842695037826596254324207997047211910911417371272402189267987902071432636160300691767033812185203741569611841930167273287930327127211612780067067643423973500919578962289825668424224219001552676545354445063313145533545899539270437352586005155571290805857186588574117362788079006886629309957984683793139328426623703538182575131254568750715608711095700786924197182622844657817937622044139735619386967107108406287771664312924274911729929597545870929303665033968312211693078608732122799807870901361726930969245101919061248554843285558846185653965518482766501602510106477789396764292531814575585125704616561903707110712408282121382116704196526233540071111698855908094755552786549366310974824386190962427531925868421591161894833137982016150338004245897478218780649815400309555248737371951553765676541674619450594359783308171101038534075386693739744129786264983230369600259877948723217505856202227059934263597714703620728365164159480677208720348486278510086783934965665679219067277981161729979921749796085102659971113039895402800826306752358852054328086368510589330974356099742158898508628457658197748723528030465208480724639100428072053172220633549658837478148792617485511962470738837211150381353072031933148671827374492707828198103590804301137904482030773787115485326069269244804196243345308590955529916337769305117429328296519215534771508346214720581880059581219594717476306337303775865525763651854795965338783185692620560171437951602259205952417275498487257675252194004350535180022159926861107939270767144553306052850554962163180812064541185087847968394857929103182765767570707897813431979160884985283633904274550060317885512881520772566060121946358799242241988275831230463532422157238128384767396019825670792570363187762151425378842978943151022792105834150575479893868281752525128160978965887829685292588170863224956218615159032130163898687158991671478722913179923308279809802431428939658781183747697582968180153935409333310794634032041989607507925167775023865080029350202278691257678914134841277300897569619014745395478622994598036681107484344967355161399863681947738053312509125437344961587326809890976806196280342403734746570709175785698557665584771180267471319062402111244854952880384680145233383872325785198607699647397627227619978100209487239572115178270638993713350979129782001040434740548463502295550779965168690094767320393126143626899954886723703954698036685029665745723769708594044507581054663556096241516948259047378312222530953876939236591011430472935069435222221009245132443076770354963074365423508377666539427027177905989437947081096422135923440611428277213477028002909353958488760819138016433750861258507018465913653210685060213035892602058887266712632966058637937260990120540748417813380282907750219354421567803601090846305886030358229134708484544827656891487316522083786848598667022789294449203169180468675300201689531214077394498061055002387828580093808336024523872072964313401558843701682636238272170331324796469670887461649762538380777719921237884430674112234650033003537603817151248791503117181621556351423079672738776944839916394324100364947070901808079401658611954212934909650658879842649784564908893361452437731449786382044275940330889510668893924235385863931885186647404054655517625878125555407877293227237411928599656446641472427475733486369777370262936919816854463898052672851726898811259652306458780660154555922597800251613343270767067050566018759622216659162202614154955355113337939012576007150325186709727642970832559212391073876634395354277048926411515495171507683497041943271826927688943971932341229273962890892452035506217650807450996415516468317565422115517626192525723311715804582666609020078075589676117263543559013008927509139715008760742010801327793683535922777266278501717523092139021913712020196438290646263405411955194638193645268212189255865171440789995041809881632891308620721154732566989897112673810591763008483643064558850413696310666937535228752635216429233225205885556629726036113397913196751619060201170900068603204985129561644455471844989387512125759374279215122256579508249523893820731335841067707156766980132465730804205133362826258620721509615675236931192363384683048411072986164314648480584514723761641547156749586343205187153774550439487862623241089100002836293919095038886363085924734314558950319393197571138983749645688923376444051520041793759313233912288758599944542203152621059687983723689784941958006655128912195943057107940047710676264995996532371755863158851572479326900925773446060591202076737138772127615116984734880880009329649570132163379385963989839832996813267879288237904347641742898713684781570087696628335154483626367656544350565520785197732128038473793879264762813983688284962866321015793025218480083972020972976985895754054554749761271373897759698549678268816347138101320880895402257796572402551800907160830393288779988049487649442968805476355276603902236671376196479459502165423627918614718813238048064341634639010810021307059646326590159479168011489487808426757412923137549823303663031341144862153878027677510356414573594898099435239046734467098811901626147548604979624946635070504547452258145776188928105653934041471247203018672160001736104856740397494530480514454842961536974240261516615760829380376801247630992449901303094795025913675679523733272771881982966794531764439668765895045392761848067242874662287649202565103467234421071047297839279499408831952295403650961657829328988331024672125370963612368935861333631747502445353518345602176961050132631022527199571124842279822568867378102081405666765626813265458893133439476803390343754832962210520995615220957368502080823100133660123587148559586750752937901052069844142382062090232749483252762482782749077133500999465446326705206981530689776943876060857155346960415581071416577782640422339814381973477548155531501099453924706903341883912511567655386190474981127601880802206673548654070631191807989874538991794675045503621353720958832087252920229629253495214202475718002434686412405705926105801247230803562913988938170058021035161540503868972091662933277325007709511496197534523821034052179921898579506925364269508572067686385386126743756542877833981622803224090276107653340867359041671890764689010586788003902277747302658567759248526635891644032781526260742467755823710889630001423282136886635913236786427172952586789526182204619201874882833456176517954101217939915336504867524060192050492926049265986010092752505427488981682738353941408693383007941190484320584002753369123101503410576912612899182363275526892653865087053782173703926705275524836319261396628755800335109346217400346240388672307982019891096455171797323535995337513364148294665125835821968618314127586721647071088641105447630449657156663247791656802186803580440275385370843693598262601778611200638070183231577412689592572089076288174567134486895037057919213922097341486337516096953679449588974805041945139951049017675025656832022310815008389305725853363962855001517588273790569097005751303182999191044851729104658526310399406566515871781239912465390824527263999328546818863539541228877192460695693368239113381643539158715475274274325384004308081792930327478264400036010392312196559720082880658111458015769702306733996626152286140216700382416824801358319812181081488497567347337312485929569691064187827196671830670864176845690336830285435336276485718071526849234557424475798627461383582136508433890738406095567397375261286459157971860848044710734986046607403883769942938664883908318676564579683419628729567779346647403024574174901053859884849670333662749078674994481202488569498860311697720500605334694279105288182314608921843007892890822069821941730262263442511489271608414290475581359315022970596471226752927371803903694363973058914821642674226426809169220963183574635082360296921519679327627663504279639869487221346137087915541823969238204835124101183681203546275256793387117167524337414502944342701969312343291563876948752035907458563323018077838219139591870362152559923263977985478064666087161331925071847162080379803172710438789942880822287513893698358942032850635644517959345000671202901823822255138367488627708123481157971833320298713831503042602195707361001802548157690011314900921802902793261768873658013622793835068008573142866926352114160574921044641162509854669676809217507294880994150965583269583488757523928363540045240209903580551674042454437026531348383947203389522419980613572761555870842442692056415826135932089623443513331445783833059845997393884806229631437110919487943123856145337366401735923155615013860094820371389859033143070998704929663611150327463279300575221530317273999047850221933324636394000572958919141198552178980084891945056699620737530227241446839034273595443090733525050061213083233876104910291327505107003158371743573217770314974855867600908916021389824679612191130671635851420377172299915866157515193681773730038353074877846979389867032790062329214337279387480757059282807140540022474446721557126231777043411983597543301684351597486111365982616069466088431666547993867938029987186137344680044781330238679692357609997796695306057114013371830431171360294406751284276272416077148939886387224320513318679933902565272893225193260163011343238987516222024029637858913683798321364574666175441648440445653486175373554873981142068501663382401043034342533997983123893155511480268095985627182088951669307279006267464253760307585818456617894332344958167304513145827591797017344176897964202698713154193450771836526941022936201413329476297559182155463351710277451887025834754771590942648332179719379431631682379095644506597014128969732481217133567516633653566692122435764317463133294318483620418529167365977005506116157249529019572361425974214048034412726848109873577583709421440447397337022702801975579856580987737989571225202735013045057425950903599732356132289092316150805888825527553292274907892417834304351260026325303007463981166578908265202397028803088461521148528077534842659701614460921368125533856550534443988611504052222523631502420718513874515101803776502986821668475571790072724942754005213446993583881433296374886101656508041436220015334064203540765351347983167908877479519447646595644596425983755401885132001299252891274927893465378083382297234765177005899894125991901790077164122173810172824188389013670201955765029543883506032726437185800694087097479147377534237974967163975065112119008844238199222646944607423008547262461218351021994913078368161045293192087523001380804270511978951020357556767749128836114041513802101219618631936385285658070904015019940952741449998245361722136543194001396482801524605905016260929466220019406010434564771609832051059129135112272863112640318475432884721638974937426006610435308417360199751762609715724021817806354439951806720509204416366598407538608963477106680882038659965637891378689965447423448066408560726791048702609824165641928147603156423716271106064565108560691077390918194069852974046124297669449364050179445744166232246630735008349584388096627188029689794720741107840444297137330585236528886949142911522067198192253609886760914847529385477534477676001285367620239749770338285106211239445627742156257119137447334561515822736915580974164671804375289317399483639416258906754982308823838121726076552550565377606097523092378034938512456712330638047118776156737229370428793040554794201941326453479446350129821230421201437577735828936997390347865585193245201990547115722161585037267725397829613585087900242773392121642518947893701692253386896301572897254247935808871377931167284689405189986073772291378229942418864914158613027300356676564542982932078506979275601890707369614833984237800118514842187916857246631557469240701652310350393846511736534245232333026162983033214796422575913576592879208389648503617913893749105102533528112501181546772803523423502396274830814546308073461041798842825406795756367046596152938749589218435584032817707058067947251012871087835295711185459685261761611588947987785043442343183785098989910333542214968081218520000858660348892364697659301615106040983062061479105243972203503439279408472582126007606993850039558972876115912410348632306836385690861311063022755501919921872806025765455977699759063772007997271391630120399551266792626094059264570055950908229991346982800215083680468693950087646583111760079192114258351685554334607136295799798260197685691449750722878931739938514324957788452128863244085005021847494196248862701469245645887126322771803996257896317088010914469703249989230542973801785609467415062794240083359927808208736763706063504698248689719405100411896302075926359741308677054373247900359824378850355947261308862076711609575755756602100822704791274155626927895893583710135890603319166561530720954070782941219823413587187150866786792860390663498810044521365637354446929246213127935919198204119328020542725148590665194575906026815028792659371761506616888201482799856997454041892912728901076550019955530050369024510994750535805593719228901310509650737439763919899985383010287881167560911444531115203324811124353619730246474434630725736719207227576045806486017495351272190628805418784421776305746078736484777579048666524807537913828562491383918922180433254200196836891096609489086172782106736709148104170794646880532827740883619996822675184386395986880950863158631147306390683058954562106922296289516063021923301555179014985332657102272187030586067105993835161718669007837421689073080896798485237577740240544856811886423660522985564277826320685885610749627670978506976494126717246738608057143806216681691219764925535266306278305820341648756525585540135409552243643632504538768926287184666538864416266671221235623678615744452557825629204775980182422068785948149122388838242465962179001132848585654264832165846513763400641784509255388373868636449202354266453059935453355523193613783153690028924184989437996654068821804753306051604087778925702380111906539637947783063043821520972421885942746428338530783595120473005959070478484871913428595867782024720800550999128922402625489278986274165638093062006465385197360433103552150453510477235494467765062797122667205492883645291071360837562557646806675831427370654629607059053167561264225628193555799685412185492393599895069255027784734055489445617304384002990872344126975491523439821267738295052139337949452334622504944904658367739541926516605974807156787454204729196330079949476308137894949198544348937343671997282534116029017175438424261994809680776233327905754505042139413240251182608906237251622672681270462912144673088192441727963254876762343257469360757894981012751744008279659044321178980178942325461048316464220835361533179480815514058631947544384250161967648160043607236849359755948716125664336023840902454541877512331105613188368071258800655232562608928670747668814760876803901439686635513618645235993676362698366470425130595953691225087033926959830713311511720709242977967107560065178009760734862763545341269903029755440021291397536930609207248736455013048975505976555656868179871087367425713286492033422663608648169944265183418566206011438980127638826359729070375692810633322965544718177045380838469959018458752693653957024085011023145893346759070729789409765946372320268346505781175335422724069453323289802361165107460125767934071293803741175575342037770914419904941813455145196243125143497328660390049358582257815459807159055887578846012064071490234281792552745864373510842422940864219138192587933483461294934697181688178908977435838393552544874952191465154073764664373610816408121566498730479854094686781497008535940458803231506769478355848713772333325098562021400590578356427127214516215771904345800553847122271077171877942330902752152116878535505639532628636647141866517629811497314491132542649032166685919424027466058755057820081778824806769721668504092259025298889928787299141318526897400710418933141659847339737516373222565411397941187205382963028959330714500622761067179549316348019531207740366175477006003353251446008324716332756944655084268163313156693461288166312838238512707915828252083877532964216620406744726990668745235894339163624906100595227014506625107124900887415242889435922669617291458379944578187838800157035242444727032607959708525776956007058332119535061938929721468568744598346872556880311611388269272180241397502861969846746104976337915490982740736277061637964006085249075987737094465536210913298056708955744107106367969848202589435061216973726191925019809205231297978763475350153688719085791268373460210604474147269600997467956807737622532571390948961184733597493182963927573637890192091996933211913448074135089108679716761819372735176636937549474812387390885685105288661872547281184310878741011946519011598344532465029470303841491563290778327244281438694969157492543039247289220355592109254496462747510696552669111163266051012305200286269398674066439293563899243161000916470108973291516017939717769174782944763363136476210285570956193039963877779669901765319070428961570774002641448061410001777671039159293452944178806755747015553700822576848566691725003198368464214787786946437036813746259188167371125122109105543222648772355399673792385717977832000976753143427534609582049969756535563928213057508075307699472730401606627338576896724797583107366884250783853019730185901774461567973766755952659140076183580641602287643294889279066834668117195179611348127423883727885750655010552856046115533887519096940239075963948730996066634218924900554340991611453653739514541273691326077879060180201772123317166862315352425260478600971655913912921625795258503268999222414938305717635704272793104347941767064621941319500493607866593763045389314385859166150891516572461007850947406026670061857745041179878060672800916417113278324548270192324397142980093803503489418419681337089980421426078928630425251557361828488910358984044969818751380928000889302675850551569520692772300577317078508443712083644935041744790709320642153066039633009382702524061450629926689857998512731615131775653655451303542908070749456733100692523796916917302214205702349547323816569661712486213822514065185754037206858499681629195703009264019953043094996488603524068150555978411840215539933445282135249387720015603647434252725013116334597208709427430176147807014016380867453553630618212845639050223654698869575342933853539640768896561748525760492465723523845401407864770741701084585459767761745106958469420706126583731678984791444090650608793993203382748477372489425003106625400712292093634617970227297797699548875577639808219655599637683366167811070826309494078792414246289081485135708248356480019719417610002276479968132503118644859005215331344637756431051747766325099206332706112536871144482339823246774457071262599872363444914143342580048725619130807343969078273045636487953735231600029454625372802284192156435077654558199077508786949327939633686974360358167462483975279893336027347214885826677657512727880263039182328549256122926328121593829651915750145877168300355186427259332440174094546602412450632223984761708159228895891732141283756814976025012237133681175296564957990299581210528957935224816642897389842266874235237830619091717184547299705495936010183731671159962700812792350355721279386839800798469726828028655816864503631923579055967254512221254667246575012967775588857359852095453332198112747291914543985325031630499219275864171679174442535380208616602405440891419153960545524646257264951794616512745102777533119901897113378623880032136999587487042196209601477679441807941037883352103317803941417131463461212259018097455322061329064355896380460709849089045807528022554532656490363571989240281807984867585852504153644491350145159980342005328562507383427102401384122877076496883767944651867601453860140137967128870472213379002690368955763239882863546928026098654570259722361087030263223116944148808246160056111840457059214384801529475010317336102766657734491520049623627067310090342527109678316344923422192598926367608977527181452441860384730394191137265390904662276568564695086330925313187006581307098948988486782705426164277609870885782186107637877456294175151942185340017263183595145587327646650035322894934052914290484741468904309434136731230056142755786802222049021821709263041842417381190055117592101943567173421239834405629079569084951375920841097313441010953680604102288585408853827864996733119452112244317947754678273793653499086153017818024545185865292592090422135310121764027004759484777230445220015088913625506281215297453806809279580313127585077369263157864356404409791901482985075398205274200222607686761624766648652697105048273582844490616866963801550721041501982195322490592482661590835195849130646939757553412522677292828247189547720419235366213727945387082625440815338298426234957513511423522262928769485754128565422961595045500261840134436300743372852271123019236083330105115821367846535631672219211281911654028480697878518543028621970404336929587721931720168059822789310776675966273029146295421074448215614769743621666202244194995219303995116915942494951451282712943368957132158856756479777446937866836956311303391310983517718168035355204453599399523422780759660417107008729557682748207544010190889056374532157374327314925155251706570720265478729901131672087759442093943162499380738788630033330293339660923380984034412461431368016749296514497265595312901530080579341250802987875536903852868845147129366357022098192687236704158978265341252680027109299404716205625955667701217211051025332055233696909335989219998277572869001426030943487343886057944797896885295453555535863935105934442949908534557085660879060868594490645509086457140917602055967059376863661804394839337585251609017504892697581283227693961798201007012618048246103982410490754774365697208997745080890338158543248019216346677964067239662442392691888486370834634680020129244403512891284217461133246814783214333388461397350391384830320539460258076697369728243115434038557013751206804292979370710578870358111739242137329209822433837541964101717918961765674457001245541580880533008274298496628870724851898247881685555251390162975328687779442469567648314744449204562691225800123981825259635901935427321624188367769384940387968278123095391428224746126624148642381936646620680127307696146372443612306140788956582385737052304097365692822727877526080664561782231176632519209561718945741983298965274144276504782328093232563110663258335582643400917795014810940821897310188514478901235650861314543970544498874880244415781728445283300664310419138960880967443330289846500743009005505739314225277781717947439128335463287888806189916890450302601924967382962835507053659195252978118131023405776887920488182553370716818030984807260737832226958093209560945625228364074463087336177722925548042425091530616417548610486019791309838401123827322038659588700388783627144506675283776308825825543243070045939562611517595703255236226619606976593773214408230485585720530420225342919422258318008923402870598375844977377943086134054189631732848411823195689735847545861731602307187748209951498913210152714224226111773276487024721061187726311008307803423181202724603824769378088550894997938030527553696699445589670613268981709105770021572736437208812080512709583907267103946283470837827734627968599792361234888046411953965934741072117788990450031075078475712491530395318756830500807699923053142931520796996859174088563600958328222069105264335187240402072731077386064159883632409585762776705275017282483350692963415450197655778618175691072732380586527264956854479271017070252184807033329068889183808958773718776940203960483625353634540884883034008289835205426339553074380855957975499247181108197179975728018664925590244806040933672934350609128942708779948552421343771563829131415569133521371766399064345050629102223711075127227780307607253456326656083873856468681894701732858871321981658399799302918302937679056356869996490973789509375298476428175134719394143003886455078414485677350969800524101028783127579121981292429459470736560807848548780470281824071058802591284600958707996156646033507314120377239719143738859641213629666847297643580371424501911434961122857102204912884892577259553560276435890859315093491588410349416906103418557980590212675119473173424224281555470296718213965539846739480238385019119725984657391010104982998500445548546734610217477839091379997272432558345643025893268697239753875990802816917329799467417835989888755156603906978661263873923960851521994975222381460947510404577233954059504756884770059746943682255306636865280888807009720882958099455177270484828838038356758817656856459212753322954110511039902377595957007845699642021483473585517162578338656464696511344813982023581072381841792596387980689601411197618368733346067118191894118500762757406686447617092835492610920255919383767910327540182421659136456993513458142502118678279205370634333296373246106123953073100236042620106591500035733329625934211499795637287459097428365433489336180384859113000281833574841727316404268896567729919406697235278230415507636542811183208569771233983505246197782445148864181274303761700337189361580055763619846357751410046019209795192810256379855093939140037620626550061857017206545222105637355678974062990489144892473197270236659525420652490623302580927389217889267398481269902694062943561425414243819103712434857338537562472034737799753769456941214839214542292235279023371828985307936357716385389112026486018418906079336487838202632775068717367962367523361222009596048282219398462657620346194272181109262400374956444722565662576655533153748384240007703396426088176928311172428065645736011684117068380527382621235647232892489018611971265290013101525871791835899950960024234477485983720720167710182349889187759678447202472083878078820173577223691474240042685198792224025747829722335933366745621526932943005306356686314094865814908329221888071827799570853671326579922997799893932311855891837302579444192068883546944392370611950617206730779087788513138363930024909011752153514078297934534801967880249217436610733752147300285363893077869773605049177836913795324116980862932094273096157172930511867804754155154613867518636078263056905385313221750499166547365782382141997384243591286550656711617000355417940799966788542186010070190880388838946625324389226184423582011633150506227615255190065483230329035065073575133859797399651659747599321523699290692319287342741708255677476236951658534574809595432178209310543779275212534636509445015278331112096738117007243016949052536996223553140642291052238840296998716220649574269819292032925759881459978332271158413756704200856414651393221035412223861198006536399164025935434694878108530441736822231124026281528426152974259677582552951593316141792891297793400707136012827748448044117077489494818334916839920591257493288402499183726560570913276123080644974766030409331184170091757964696772521027251026191354892376954462244372938320367469379580480153134893038047132712129700811920649072276179589698010988222676483026313989056197231244948361990955228220060809379177994105633022227566448915135047493624412634501023139576171741967408024374927745268292442262772209251279612658377752180702389469862475723157074765175329760566008025450566530092053637953969565335211704857963731180909994839691645223303904483422231406197852328612005597389193774974939729274810632067566437364572011671098181147887604697344810347357927622998142256968984896049139344859590863311062743347156501129078234206278000133109331730611898468061902955255566767564612409614651793433154676596785165769801357990988807510398853094486981411567322908265751324242323213399784624017964856282948649459299756880330405243691153685007747385258769546730230065644015077136342701262639741881505954367925567186684878202753201190840088105943161075380813740805745492267397311127206569947481597995371627684441422978314885882378958540403157083512777149754116546284014531758661016441352382032307306924144729191591327263621703439686815957562494564286872491447848652285107749838105290879327343738866700889676896483742363975174555760394456945463113597325237581556094675438492151954980239065609454304159190480992740010834621257943171462585173897088204624791958947747643884868984093797222363617985148563788239989597507664632997484323031339160922198418876159942819183519567235136949579055901634810249985310193181326600833819189550461834265189303882123692313626573644477028541480435433758443159700282266649366667959567310349783164561350304272898361167619081219672082580082597450660540908102117699287137139873596097716698106995263970397131941913093607809377305946835578103497723772155172335625686031504239087316187011630187263144257098691212230991937049621014745008489334298750118324597474772875277600346071799374062925708218283654092691520802898247886037294197382059344850701738237411901111521914495119461097835273760881543605682786972033142253722573864777008015442735896599619071109159212319328135080556638164151079184080308995906934401724543890454410764876907747050442341165216062136542066979774457791204377993030341261143635230228067096083976071470675276941120695944646942243461575300091244639986340620153288362505711168898106961347650750245274818098433008480199488768006465037089176140208062683865691245051345171210562948798318057354600232418265566367767469795683268226556340048268548130773495050632435917104887316484116424825397821510321744163807812845653883158616756276334879781776607911882869344862818032442965606518139213014634215227824156051679693959445148377854051640470249262758910703954337525496828846352871390985447343222321656056992274678656905607948859987393299793809759964582912194219713902894217182882938607476295221427994297226383976050816213827058355858364042961887359072141310207247921784721295815348110438222348220333805416329218172381430625365497232269991089379197397935202750327897991093021499694352224055910673769852553927040900640296676428831156175811032269317381281919313083678158994089015704387235767239690034437802280353886972262249405090892734826352012294502237763871905417366344322896051326641199998414740124279733082226526595340493085606254426765086082452678500558211123574010327469726033458760507692232908185847998551997806231410823366021343241484628551025681003705152087582110698400085469215992202652646223438420684395514566002467003739748404563722004400787831522387391441620927634312972273734941193476559764378279241713897345007007749281756363389046165029134261484444762022426325230144364291183523019286189227971156085866494286536808949748850741116605353291239430222897629072003460861038920401851148524108803929591920957828811932794455129148636595974844569784099627999325954105234783482970143553542286392954559098700304411658225708185566621022749856654327321257843307834805463512879421950858517387538347455797044325221264221866327551451015884301071052678181159641804194399816633232085496424922441702963879534685331329994578230452824609255990202868861450726266906193148601622045257029060358493426383061454538355881604109132347674175837492995429534550979821299038591484497479741477470972496124406222869454950640294246096724487738794600779186221950799749135922150227500566495402481280812648305027296342858316027696461380959644090389913790387980841255147742734456489583760395897546440376354521297505905941152882187562563299419574546679547607605851118872909295599246524155074454544806836788035445954335033624498460759754543712380172861789939769582013579423040450411870832014820415099810540381702217726372216363333745474601272645393229522438163917609314649412488843915200262088233859541563179375699573605650017319702330504129950685561226308000993579661019027159740479683797333142730860527161265807590596488810581714998828603770646945390449146100067611313956327827110096368951146841016510146155407931089883042029011080065750229156229792464513927365847760392711241778700929530602357549449268790234880752768255793889396374289928094974654812112822405917143900863966561403114146610583253885210314482227145074251248576318138679848793602957143786911312264540268612545576817545142885901313801254731473710754019744498504657194714338600061199917064477217353476313650020743757958459667076393453181920751780464431255875400397807824225617717493603064230460335768972783584405481505540478276501993686718372190842990329292532145724129876419554372045223701133330485638327956277928668101749129287614963972162450995252080628510320462548504524900506506155591460021710113888016508600411925789615146406743829655031969742094384741536760372030259201436914053198898044953978846927078302210416221203900293747657040390883143689429865536695608823722473765436640528714824608819367107272536457485583636177689226719262795850913592407410209248543795298153129097997948370991978046290803414100661165658293311065734627715431032891477179299331849745954301214283870062878463549398828742776145394679779278102073288413827274011255740339187467655479707729043834847347770418746463089896367223221052492938227328905969692212494657724596740243211225714696855432064159422246291959910430594831531702049054074865543813151472249926632441980230189288433813843637366759696664786377100130319385837864602365488875237122041463410529180744920144438961586527301909281730896895643460967064636093379052862574356033835586666819322441839031420435992356597790585746828195297604918611981518163094002364106351084706739559162987405315210504247077497095664884644824409421253372403768425304426591374080895887996279542172651223603597561125996557011963971008858705512333436663776965245312891290563048463038330318663043985348359461166389363721704488336316771169883948031955987472280837522900673340254628132322881706583033015906658041813539500560058945691369322247953271642808055316762985440428802559849093959623005195505532727808794716626148433714393812623672570178654170580892724156050010345730847818540870774749141306491615371126508793942652503708758704867269408830284874439341435728378191955451823870085207719766388418714654736115316847524939279493978425881370907532769113212030311274722867878471893191312568964462536131625752441355477920627651784751924123436116504132063077625773877024108931038932046434492042470075867564296133755707650560141509934920949009208448981901066068431095758653902617037038341633360665289765674663499896218082485769547264226932090068217988665030431385902809309646363810368384425119132939665935678845980581666304502623685907503791695335835131807661311603572312403623808737780012236984950598452759928874786605322677557556864390976710503035309668119195867823371820011092475041796132723970612241685362781534908291022020483224887674505667910216860278645427725106635952391356799884799823727375071469591950106619128478116195829285522529577210557932640281952265102979795370959910903524758573220744097266479557151534654036456103643922052381388363314278431549316384304080228201512038904909432411102856489196113610814958065308552021373376208586764604009081428408534987425572469127338583188737242112141709535861773205841238136880490088957026784245512751791426820008900927898658928283546783817867834074835601178464959692117860796000963388243350963474380783771235071224979375437141703587724163694764888756996900938528594588273393658721869170912393846788516213285151251520387717352289928051748156633121626104754877910200411119925501229201340163922242152885343735361534035350854336141176988433214622790540019882748418813581364594827682308082870295526716222674769471361863492214097282995238090016834291338823683589525447950626565297568108193053703657051414213058325326035688450894994429940474716348195704120086916765874338561228739960647107398905696519054208217122335126932852293037254827856748277472783462403455597641502744302252241935494193301473545564859060597327779689400862063609672485260149286586812739827046411244140553594749668782733392343618947545430542185842784349632657614795004519834707715225256211292767101248549488817820605709443721122571327686530443746590853652779557721154526780568953298547826357039915125349690787789070530128782284931436441526268545332262394965905838934506885453559443941606000674898040654037006710083195616344908900564937239381476536985977626627199283028067170848351713720840712652370339100273391070283216827965581344055190041096877904798369028092069481029335355699559420974447347184082711508981098492010770606044192503183292889661271590479474825307987375395580804773225966087467404923861404531378179258494816300138937034581900775797862720440942244805323053798668237847362036072334897041201855552982858705616035856385723655802472952351492070588143084079700325414336998451529470297986507841614213950192346180928766788437173882223824053203736528914658205882086472119562571866496270016099742927828013823424051807480674704118597480447457497518258613573761698425360816967690915685014381617080013971978108863855911640103944356393995920637309446667112229326812532349080644504251703017028179670161577233390549389039054868063563121157888474923072784385019540183178537783357119652605155706986706558699896709696208632933635759166920161039675737898165513230344792007860352607314758489882742818372476016184981824965505381643259495988324160774775907869776509278415368405046423151038987651507215985601734108631414499337555855440204860740901617543341651357014875137940034235555947536571642573621630392696980789004035548306510611495058463866626004820518468528622090846670383485844704917074967729978980762003493720839129119101858124133523374789797464266185080721089863643273114048830474457503856289685350663957415054683873624880785924355076891042014941889739479686602863826230083397911003924245065693833262093292609729624971184521050504377269552550747430062877063255111498466940985413676326640842712657176587785473039096158773864010515634281769240080901145216217836033737566087588614316270214614182909840148430329701263210519308577676840776524235089212854559755910398320231330102476635312771707878652160251621451565570089095475087487878852970013333485948922067452676478250566293986255573952860702109491312942191164612993028843888244006922016848203384281205837603211170569076095870166571802937381978673736580047146165213403636003831067128531812959964351886468096435828619025414287297507165687996401408972823836194536933697394827419800344611337378734223759279376298346083531623850760374490955672215886957728446575923308730919002679397674238053524899087927713619628727882615308081279751573896162567650374073015927981487252009829636596982536396735494109570582389704716239808626613280975777707046630461529976479242069975539514299580152407997847935013965079989240103800568199843829083424477217663058823665934431031755214857199698966962360935458856871408760712065078256225017549936934991881527200528810663592203028263061520246918563674109685059873696293973538986423795138223621388504840906311798919241924585559560562646559364423376967812234437568222628437579291072469588927041417850210117923923392366076031476129515949492525271599901734612491655889899358585143838486719465444524888271527146890462017504139542096440343141090047413787553182517032289509700406002147212581588661153242006892684126969230757971214523231987757227772950299889161916616905053381328230324334985288315618281184640178281219109103682190387066847057416706142309038908127805118756355745455101021743629671025307401834004779560513213630043226600815640048576407493720934202553956244617538534792691018620883986813395551106963723976093542099950931113131413402620948872272964940309788924602998196138276812939596203911618559697355470333400325565314414879035515992829931595536526794286541977856755548784949187992481349810536324742373553696289859947804997421572609199062237552475683192319238757199778582143195880024444087217800227113801341408717209753392930473140510161673095626553172740963724409659723644083251650877554008827705308590625488273686564513715228318968944469222749309017574686610244183133654413616238621608297671213535909097861052379564236831487043910985450441804867585640533091267501840044858952250610347472131566217585745433991211516250718390846529857424933000716876314839699132195760699708910083635275695426049152134847265375270892653026203673731920051964104661353930726043723865429228592662690228976239365913887947125657481672778247996330059971937611025398373836728445468186400407605869071654482847870919396017322050559654095847610890377385322870301487769462350790882516070318714482846732721898397172670459946720962401158267701680653171518662570617168673175997950706364531065303330116126883527638253926873971086222021700739869492695182259602060557059951821163654100448676188524760858631404284097192117245989967790855409923846834594051780962550217030818403553748432013673402012313195490393863322609203806507709724487543763439600625350335599481080699202654389548384210511054146859166378482622668239508897229243368523433000400576688989530962204291200157684296676281284334331948571235410251294372005447401811860943387042773236884388691230900060294028123132346549758527193241439581103650867572552497762973552543112360351308320451058123246620183894565074707366138840895659359665333172507449141124583527518518089268551485783312660890538278729804250154373468934240292985666999702281534686007193315158688987803231683842610278114425795860880754826840226194721863164039489183203875673163342645384465156422170661880727313903583758260158197119618917311729292544067200105777301920666922653486152667561229792388507257305461608440561295014751210540185460201193551667392353981729162206182300612198719908639798562246144740942707975242670568189714094344125382288724300495598577487951952372363360355201604332667249622544758534788254531144477187148750198952023709780923592347426725316869467960300515321368355379480677943443188960700950653294388909532341139626675932528086062561506932691717700540963422737356847908082469347785417103561350685526671101387316550690259000108380831302273982132292963010161189673773003242357783581126797054980463297935694511092579865274831988067515602399761640930992050036112878377767159573349756001747306267011154831362077858068773506890083459530613880938851929066317291343839514744266676760506992583815954919981155416181425834231215139296931569505998373262597460929775935957039530409264737169577412115901448978880544621162136187263863668596714041168193149778718309973764320580029860537810529397079449248406065755963235088220544217088332228468461802618989682786030347658085589034661406149497897038295945311881200481720389793363373567324382976160857516801292166742826550454565686820694842430899221025974015068002300470239603862380547203609438471612672953956120899024569112991678161129678969258289237632681788499028304499541577531767065025839380830404098428230698157592206897075408324856579074059571213265734902624790320017285105748414767097675247468980247848701499221926404400349347911673044421837758420722247963460344783828573830521309793220025691519325109826033988089633469342936410902144529239392594323472907087473961679589567617439897047608842779732081476369397377754974903433184956773916208762265457430822916253480415961618304031879213324292096181176255814796427104699510072540087245544031916366660037280897964392932954567643135796647652672830903765927976497941064291315581856387843174967327917867528539543558639464740107859217205378773576861861702338495444793261062026800108226830518019461672387897586559740898763062793088757310410902346337915258161768841524134861895396489323645453244772666185180510600293766881171128606067068272762647279512624626697565345787817773340839158589433397586625467077677729246349257639693905424312176906463907915954481833997564463824000932647196328561486173683581104541340589104249946873633603783426767780738817688026209020227251600661561394718214485799420470686098650445494900538909290899351800631856488254068596278825363706919085706907799823887611103257144657050511231468313055622892485506038693783312157972918402356959322902903069096775248387167926535341295007897372840340914805626675034547764181045909648906897086938498583332962088562368184850891416339387019822018275236117440635599052498815963851079965844828786447796083026914102564567279169298971073969212712165741360437295390412137957091696598043218460741768985101257197418334735408553767015312774543568792201569018549735649802098238634771940809299696147310339724975140909939468539755541945100182897955930065907152205619811532926203281447706552238668847564509143147518838481975626404866613298370353044865865804118648636010534256395752592928766308032755977584968251480759613193517874303296118611579647263148950877788840378733976273355237388888133711381856648937863290999797480832845638000743086922859989222446087052124935159147087401214603013565445885039961713697106788074335132256949126749051936325376010806582485220021782906397509764060828929478292384503829648922939571533904087960551301837185384225306454828886199115374656111469568038025245397027231308159290356691966462918541589336110761592899965979650931920225379405072049460436923492706079867851009962514196000346633095762140611031036681481252602600653959436380567298072310050234711002416140205062063938024023837724147019155539894419699963093624509251271767451567736186398170510750491622333099267490933203158482352691281751640866740730887090573370982815829325501665925884115845894551996265177274289324313993345311105470412282762996844494500708866957302955270418611997615409650352876266646971957187391471834769388356107457639911302671315905670428840767285834290284973996298236565581515162778489082550344247083879357418060278631244222733678837250722044308891313157884359005328700120033857745033125303394499543514139522907896188362313881438563951739980423898306122887266818972800558459001521691986278237007622261825012443882857730403142701953881730470677571078761576307353917010829766258423045610545340639160471363052128232594254702292403628654409564938400506084095548719949740247634641245912824930125817757282593151234596193981264679044672043720987188259588823360244372405910653800679864675112806099886247732384496814792585321050294541817215200674134858658792197610826721050166447917626428066680161049162641233739136680726322688018744926397101161753245660719621257371369383668537123573052049040263306244733292494800981671183360009447836859090696946022524778207090884543816326898726262416969996328564668254272497340585734577008291285264228648778463649063963003032980716989110702914530262022469210734692235501665766113528825870743515507636287869458729656222677734514664028708239080560628840513320673354307754448433036665633301523500253685395711951647118465121254850241914460518921687462464474548715803497179059986983897690871892614034757301672976848401283069516908743985803663118836843427334234609500133078870196270250598930098439624109277970963704305245933356010396785174380301944855215559041658670877960125659892746287076943797439912617865208026686373078532246152619881646593742301785984158226816871930208650559640677131153093100484741754548878165357804569870070782506907834745490798695336301830480467536358242726051821879578199464609478508851634711889806796690748128974039613593648804688139114378493044251015884023003447784010483045664718788574868270997860582256389496264422371375079681808640902793470789018981730115153805484396950316591154768329378479540228635684192891771551986143000089186954018404317049851941833788254102145830255791526414210033446893338780564716084233294097881070891784177811034345023332655797628561226863911763663748722688745533907061001047368566700406524373469565134495536701777524823302009249016154465440415697442643753336444214844892007376675168524562525902454861275390174351227817705652865600941715491341095138733147960602442955537396431742482050478953660956040787923395383712673278294807446704911992080008579345416278807116339663776133009446079566384516274795491075885075811425332045694690032641169053196306121382120064070856213265618082384585044914914862267169072377531938034669677969259261990307736983210684821680949651681599768632096930767533211103429905225527447856414061253781933132803685241132450246125145277905533737568835865794550784707741428541767937249900458752714271898312758669239042315388753575727332805248461108181044251720100136241399671980329696165921984745550105427319616415894184631140844691090625917602410493372898700171441879855631005289992805481970029186020867897459817956702214727862531789593346167541093283253318933812498374697300703377756043904386642498338735770587184612604859942354569349421074346285882828843922286855695542632253466205364712444817641124420146042623520141214669781678947527309107527196533039698118589789854260119140033151537450429984695203050314428542624208591498566785786018736868200897801994530965292068652276634175240476197498713565796092823956952388875461351866591176444171127228152083478585108285319064891956634309613979231995910791499700236722339047744750371418276132923128393666701975989209566292810683063343781765691337017271069583394261444921733876200519945767044824053639654899552488652859655107304908483285228559967017274968842334685971596972151585033685414077990437204663703867376494407272813781604370079015144252158176284424790903392977921650643034277558670936295018350904254535598761159989572360195842122909542678937411551078915118776107451091695145254307606199171692242080488260795499833771297395604981951856630425946704869899018816277100927147122688943625722624967615076577671466842199409309088521161461991111922038122517105284694796912441933431231192197853862266942670454979905013539821472185217221159724565725230914445996908239541982524497286650808842786199206747032046592517452509297728282238562003377712252246055932318340553142278305214921735287177511559405122611327600647097887593466640064015807711092901926666928615966509666701935613044126343765458700202551434591611463878917800701416656615108045133223112656744092994345995503776118982719114022440820052774094966768342699935783358443521760104856692226882261467218066679014124508361323016279689969777287873672503160427875047978943180938642558209937032185967559320928763546433681124547709283199530164583934327667070164975075143615421439948938751196624583422517385929019005257191169592131925186691834591908532648225011062446535427166963781242192856154543650929966536578508634865243898805997068777034749894950117118844824426324468669294864488784302110637347811199459866460798218180721405748934234657335116349245544683029806542112928088148552035512505163089789650951527974088469696712576063458530754367898602228716749149617064119792516556282928510926765333047456378167177979219057458431028797987857121420384457350698116165119740029388337819713208015991504533084769956503615359492620303569576029584675982436970653987020660298406312317786984324362969501077727679320922219989197363341160175528375575272790486304882870906429986519199590489249948492385361574351681388947419749938282290004623655792712506338370923565201372691715377766645826517598437360805663847872190275003482214864835297309707905180049914808754018208993553227050842973735890330177617528244934875500674169158771338712861158678415749020374357569530304813236513042609680586227057573170259294464063353612806429751778941190342470064343731555763236327847748944804391937680130764578085901178883177547862986782004839934734221275792222199616136044297872828920745223958122374485840273783233542580914071928729632587786327513919467536899248501226358436680221300038431278218830694307873663492124674941924675171264491998604069740047443137919584591662389494959668190410650501093522510035100657661418905176178853111529817518937087377096254494998310144621950380895854501465807860358308036938534764464636481905111394835239210854900173205518591053414115965966602504916004849336375590066080020932007711257004456015372416933633021375596428822289727646453429843605587147222539705105835359909624273725413410216916029280440635784784866686361135781441969485316578956296769782769387345054687132756073376981297301313292791885052953891889396819542891165029504275585910216195972664169738022007205944716809707919587895638118100989445407134909162937362725606715516979159256362974047130820964011062830993192856657952298901977857048214316855826379166324807332004763300277809894250672599930167711084062010991563888653085496331437726334784477422969812458169037255662095561071498544738909032910437069428269026290023451645151342263705860967883886011147880850012540297173602784808275774266250973454315627457337072119860481143540247123824133620795774830123768872674354539188114216420617782242747942352376904660920481888661144089458500496408920472684623301271010177800927656932316384345074182554447688095211916293997685073403620434663997281535136636817735895160007073487297025166403975172723380835579624763778813595044200234835002107239805905204174991247264232224297674624319691098475846804350395356817976913220665875612869644606060490347221956936542519526656475198296208604196606928384644094061561292718392944935918732406054202570811053992177152162494122260598941335119998221109557670683962240151936835977930139917196142669391339016174258102441463812270882681610814019017555215219912977729900865554805462889559080102716682252328935597707138274125712446666668503776036450445801417419914422130895664930485509021742358889200297866162595252243965443740022435648123674206278947546240730162712044062880213313810397743534858768947205415479989214140932876914671348660226534267291152020514392737069378209181543537389853698219166202675476003102713624123263118937711806303074106665607983469891549662869824806597370411433373373820670214280179183994710505534429143073756816429044221961911844233161971627220628284732864293675456389299661518149703930305737063812787728883673519152744303462634331528303772343303176037094232340714865916052041689684445637761510234813890457485049821707394577929640655374234601364935256870956446376501454789896151537993983501788474266331971953295275017112318751225660730565451222602447104396734713998461701530359111029892164214063288681423179469474228919799694204159085911872961364020586614063582826583608710591759359817486632690831805873654276802935252257984486809993666782127640237794740220510693477212010477310001274836749211973697344922245862358872071943179924962937589158458225242869138538511607916424357048694116096622269410569516391198185524343461608831238257281135679899864723784645548867794535895770585494768433175591106979976137831649035596612949646340363289601345804046658308370536789977778243198514619452916712356377289900519117234645870515560681947390575386728962859626115646385531391128354812068075209905588532091210747872389951655955126569281694181917152183670359354788697823758077106811987953719012180240751524227800036931259777252574408049239439756667454080289862464952343276426621277406050069088362226614581316532821699228286718932806228246034128993397857700405387114439103496974616348176493443941887283778773105562768399843538371821146754311850047170134694188637562237758738108640876285708495183048264715865854917173382028946308532011892514765603128196469029159478415776284949180048680307034759455114311174254878015767783516957396804815861835689565474283018186673195814793718181986419807701729030584599900571579690391537561356349616744238610399510590717075210740311541821206199206889968215359045808018743782015162187472095033168421662960469541487629428618256389271557024044430086750131777714382248782417308399815581396058088076272956959881375086130245506263458375183095762881026635722482121036390175526721201310968657326044247302415939410177955042126763174091915370308558379272577827409890862973700734073908777888016587742730326421222955751983125184308774467608955033089567073104260451044531017152160524834366210064512180506718465003656639627678031186904141456013611880426098962164656684299320881735396424503927975490783205073403435770015650349957232244742822578179312331816432625185324960270727752507064395550247781877006171250225529005033855785346252639792667364052496125501469756206876762023672056893589577484120104722742558046754587071040846766139321298467309729238133919086888301929170925008236463365824529807917426609080530070504169189796401571768767111682340132562650141774686319390108024163408446985076599156460064499055219106300281941912461850627940678169236516316190367101174719768033363140741152502178041912046176213377395541024640561032873688645977680743923522934419775945014287996832618807812670184756799610380436016842980577797737375527099616215010529615277904212484785550443073394969227576265934298493320744154609344112815971123943426917969678401760541692272920783219858724132349137694136578217133909361898090010583293686906211759109385145854085686081219331548428588643475960150419822910109038879114259891892325123978080987602428046704232978219545316545353755209141885284789814340318988758232682053404123172618203369761713259451295678449106458876610465702544273682898371673128001769053970453593673044570931725052545817922729953119670839577425126427591682257609744195698993988919837584949807551058340824920619818547051489329881814011463069268250622651408848307018661172050778256772858771933284066269289219910532684919219349334330690058379855460276054365345942541971256900294778543681226797088993930801249095375166962199552742244827037742137514137908545680588139663789027287504190899123197068045487394577264134590209983938856188772613358737488216926984421030666332043306516690558825682141124497057587605053022526662842217530913855820151097794551126784748514114173933936447241086877946092220115061773236134937690460954329355030688258410322361617691617623567378295389207117972356572791860069537711068511487921307134940994306208557690962828172563239504730113303309982955042206646232345559634995824166686469291964565859497450585221361419354710692991421376044596519866093351588692165258879841738138555439737824759361195071356272350382071138747037357492773528708510685802426098272322292556315394945261861656154923037001107993058814725409813206058351619647535720956984708638920223604236615350975683928162486268947976762197681631662067497728075748681122577473033415477711201015751825171425174291222370076572791639100711660572974556656981139947420595546060911089805143589688175965808136536013623639313991684676216795842896624414999335003646754440270755956530442110249524448907384478236709188294008396482080343126565933206231246482922855614541934945268619127121001876835111099996150259065020285194264566347700261765637947719944481693754265002930154112270155574531816555524764609152148223154251425188530952669292408410010506754958018844239492011214209750911348983987003115276558868547312885244386625916911740791366435811362310070332210111303761302103221966651806577239785537370369208045736657269405243738946141466237643452274683762547164378702403956117789584655628945614319939067860399231970928852270218949204550225165164070494162065221639436137676688317468735149415658033397601014629088707463574038511502897449210667643588156512015923712095362783564920748663683362019894570310198107315407473670261512609013648525315437810000294278271374387685420767913155237524856353113980491190615035370154744329497435109766258014948518964924572251726102993121285799680364607092477681172353630580918656040657488198411417732397802629565862567288135886045804253964134353884137771045996732614994719100548148010594158172287578236701598459158870726087465100025177042551050730146239125944407311240420850261290601932561029497655267236871129082834072408422360068569091367357897957034799960117137057804445257856963843064150334829977708845416795352794200016117964679625913308014964228838385428613966763188380122341070586413354303746840626715870279555823504031311167210591040161862866005129391728151766200702889520547861822553205987805180740242448613999624128870243624874992685851459840967050990355723867991600820908547450175899744952627885439757548564912913900315091922296077940729092327150667983394835226778292820576340021096815053028218209552645663257564168588550952499681634653166167407612349443616152907885360026221160837698496976376934789410347996600325689675670586032384714390951675918765301980882124857685629977738554963131566107278489732137633798474864383454702400248924857080749341119983815452617401650431149919047673353798804727445620395071108396321408007443930862579850740361192832510024292931197949275393608445085869740889580620655623772023053677859709316635979543551366861277799254705022105229714583173535331748236743398033646188226944978976340441520320536820434088742745274791358308916903303345215816725852016150213296314112708530355675967537572931700038697012591484194198013095419788269627026047362545640655974652986570873196773399276544696080916866462580048141119939108755996612315689763474608347806919952943225831090813904395333767480289385799276704543547014964347590365797858671131878546501790118639072748725352148465124790612521346054873277187548121098849647766835170546927895426730505499262744305005509744707824154228837758936577342929624266162965455665846500734128461751767396105300065022186581821237749365466870432694705290841354515709264146171054317509003053005086090460505385419264527053738740921936866194531668265134431348863349951301885608224521916142362977471273399707783244502988857992146917158264217673512226713822811740196692992593073754166785397734772529176412053358512287705038874084487152286383824275851399453781108300428041697040442950062899201135334892099028461495909577369263488617471870145483969045339407599873463360639681805795320364118730357480479374047416085062781525082383348876937397197454723128567697207153552048374769683696426127338864350554301278359052246316907576054990485993678093030538623966628504604643810370699809247383347123299885778826951122838343189002966930169560462655916722319025353357894229158210871283239466608460000688030234633155205410583081762247880986998625283352444965792007559447497791693082752557098229106129454695964893521137327170169142990880319888862360843693078060284932534390220305306734138609367730994768768584141164475794303090833609631500426099993572221368815215464731947129773870674766951917936528734050089933819805326953180058925307500688907854560291025246190206376140934167693371183362411079970407193518385879545623082475313680531436525534947187522566621765182302872057768945349235740710137542183329070284009923699059950438922310322413002197773420674353530569610258299579668519282672233260551630195184242676877521402767577125401807427678735120255287549248394627978440674049740648844266651118125833940172922652169791161999136400359995757516032324716197862048846363359808024399969921765884847723177706602918337514207827160734686968889262554080949963278754463343492933082814809621304704266184771153953284301772766352532338518653387496478410894160961818019851278051902214971444957828753278222262622220114297948465612202579871590931526912143693067165234537122542506232495017668417661496265161866065855956865633501675503286967446240548951238416286533026926895090992827123326249615413083346803422869604280519481887019886009236620488962255606527312516416040662582891371500501943822178279938983061942838762370494786314929679222637625490473575798095352528527587257535738705024952406427497363957663009067279772370949203948325131221599602401174872919528530592385732531514991943195650673516645129380952848113794257783096751567120251072098321808035847347265272871558214501101205371639848960471887505309440406162312385107875486862058234300838866070236622112366333242287248935058977335487304651847259418881636150723918171387340971512824439006818914543777571162013761839933448391275441007522348750626935505751168703547141091412088976794046222189249391533800055853688231564826301068894993996839954068123948209696736325425525949641832371738770927626587811171308313769499804116293893219302044466984352600031505956248125295220781390152876391474991041598893674813006528608964359532807787778624887696888848669136993641587081371968707175274901471504391220819880993697403344281428055311441166898407985639431755326783444714472795251199353419653825142691758025238010189368188829508777967069087965917101195494401483581779831417228570819145584789247131212876752566400424787955704619173495858689940374660625379063297220478797368147497470701645196421096917451176305842931161208840140099264576813001831298425867984179008251571025112620858088007025191761985063353570782348901275904099312810666943463852197071937513547319353289994626782772922851013542687506315382074180796643819147738816367935979251857769055146376126596988640828563420074952314029944590562009885588463165981554781509307387474544174410275351004752791763914767002547736577689610964468025750559157843958935853253427711492895743721463963757047463813374364492623983749783247323872307218508869111457290148316611349732898939287836547933256883270715337806834681722960679414258498438446820492313687139708456295957195771418998641385426494950820343806886188823915806010943758690771408073602226325939673576748156189627251111074259433338002018954633061478401674359862883666153122830628809062837945362806132978922802758638111131093550697923406155684135332757303242660874562842531385395820943508421124393013242364404744386236001606622835321054646253072842037123724898739247731888515302794744568739972986299561397417134942486284508785853416399636886288196530291909063040716340293559643300815430717860619333450140230622413164860655757548097184552446083839227816576764787563339225894592298913068849298608019134763083193526915443460611832970500537382434327667059331405252774855769860623576825574525825857418025560572569770265432094545997971285090091577679318419001904406574835614460465255991253212981117893544426512161936177969344480637227056311294878620042318770182512620477799718823294595395350395868060804104678145109735854808448219444144291489543302942537923693851848979971007299693039102507516217350313839122644015221294039386234659745171796975264352849620337002203916271491655777346184398697084507129514744524052110710582902139195967392765973142817841957279070323527970995248484915243330715099362465111505569702140915920556138409784058674390664851146083350897411133926922702311252832513325107320039749294969871410941695125482633889805589165443680183852775837510798444943990411430747178841713423921119343771087493114489747235591793161806113213368620036086846668741948554465549248955366168734905248117959593669165629551388191186568376368709514472232600858796311418554645581766308429558487964759724722265771513508081894592834306756911915165850781960829803691102342609632565242398429874845034381121292623093283661591402578395476547078606658815831893836616953858184254670097235324995704709909704525149347155474476983844191387846775658946314030668948678248274372735755667777299146035079531871325496190971203170929606338804903371097505646522344366291683430298843662301793524496315651470877824113626750718398532359044660519795891261581040660208875386727206345134309829390759566978685933714032524513210492335111002605844249180596620683692898339936332351688196471693532449187034202853377377096318127060891815664401841829710614517479768022537464643983965258566551052901840572249002978956280976383826183455962701305159002867213417443835100705686645617576983221047604229280441334315920549697204332628032865975918400263681964320050725722264864595740080505855837081640834716738621020142196820807729988411980410920071531775345672588834087758368724988954858153996254248088562766747061512162438020760814926729286721414753874196859141596086043690041609861609176963390480356933468783411394226688544332008358898615712498891392376070381286335742259188873973233088425299250123382564884481615430244497040254291630218015381353593738744167911741333138351083489424442553032533798569338335004382133618194048351792199463016177772059953333864552236106127535266636413002689938653816265779479699284479064578694893267653507760143174310597545278985458722716853187404923594811258688489526124405937783453565671722885964693020716612883273807947452532682364804082830894468851986097905785892465874866208588251031154114943072477733903129857302044009045955713342030652918045614218015338221484416175798060778244603849152362014116912732694618363401801714757993091607880555295475577334313920457349015064250743096948664072427922905080694242198069078268603954406016898834984564559554340106972344400639109051229155436695768353653080201496364347480790179657124622584060000965069492588184876959569266285482372962212859061317667472535469050082579878768683246162089301606195533882570682628946240278703096586798755518438016639125081223269495624845380483898231347620680109939010463841592312183249479649831898239735426882740370093315652788422427776151486234013222112966863100262231169877981366814843465477801186953162257537635899738345816578930960297390523857632682476604251336327573426513335370625868344430635206158223908133166849312178101269639447477426995515853240654167945512985270949240456604972807740167172573302390967377933151718935523970704306708734991128101336510597088323603043791224872930140201404817556379976320416673977262874791520179421692451163589853328062593157332059868500102816606131291839779635377629709502534374515796730300193259825901925150521386058196075065106576082486252309394101361612646920990667463464453571938491418226237376666675374959680070939644682092951226539870628267355700530805249535671681951998303545721063584039990549534983440076591639157861559301964787593098528550166956048805016824623291426233912704336184298591513280931162403172566517859345317115615329636373411102185913546266099592076594911381548656896025625071183071316919187009387851940343845600976105655323116385454027552948008575412970727677088584458429812476832613731632560601086616024001340630599125640613326925294679898254219580096262152885267573772150087592654393634806654608303607236515527004651635001236364301225215646829644376920450117625548507270585718094510723513497086084570442932140769620582576639943973565144645251810542814529797449754419274947319399782544499954298501186921126581230856959712881349239212810395346504679115322531230312929804891000245682994731718063372619430439459660668049238335450855756174471086584625914726014809954298787821984987966606085599632696230353798386436936132586789650109823965574235227628654520291256649238419997870789942364942545436200191549174251065364583470551469199267875358330164575365905678729876675081736209084492447892399807365460658848464924609958786726013277898491811528212650764926111480257829056528775301730422832466983242102464190078831645373928135019701874485450009230285454006105460416628309006944166113145555560169325434615524063821217848132196082020390275950457886418674599543748132723098297144330688864787591402367696662496037030079775215592998114060583769876072876753706706521486459171619378128231259305180877144920107006307916395159798802348009013003332023850337314218387798794932987398763439980949395709794210864047387966224357731431358557625664918843427909073075069252849940047934544260705678616063126349228671200116589391749927016734375262005426077419078434912750709123187817110413170282929576534264956078646679416891189418909815401922028208571812580949517866038959020710052312090887604666394618221076087978451594683387910346826732498304020939277974641719248472510047358379579848792279932823746448442329092562309772975547673271190597883043159535566969137848789291603844644129942462440134884383901836643843122500550157226921488096081271893894143512355627175440856333120534702996503457660989144199793844905215026923587185409835546573277664464387838866311408681059172055838310967835125952284472782797571056194635068975454458071044084325440369160291713062238235602942980808806148815447571991580113045394192978893410288540526929051552937224325314968693133772058621194748947666182160287629567958030885553649252765363791292796180933804048359729340731941575537137194429179818254896964098336659060468700625100627667786130502533707440535534711577835592691826236292132178081758415897752452974736727429876477643779396213812923109592480785381289363792118380709679198941981664388362738638320868582470965634978844470240398826498989207942007790365826709700388949941179256797078665286502898343958486398375505066354252367842195428811777111203182609613549998681716246329766676461306338179590578715003769373739767454440142752364328097999161587717115823728331792911402191752888138920979570017931083185903823723062435029425209796438104172859242090713932371390070893627383076398516985962014893993886673458289537416355293560276058552279839052513556420405278723630275860619972060731594574645912480194048448408644889401986237279747699498683996007567714932786231243636002907929164551606126153313530437994146230146892448542626517563059778476816850707796534722279863627018670661083116217376909578918811115293856726723158169972245640963336988974738020675513016355038748376710484787480910630082077055441852867344085467754252475229808749653812117381858966426339458060718575236715316005113114697875319847671880908564239965162081584230643579336597577320057074466995951526184527491018544604453614841337380306187517337526662514292844791437163331830752207229206808568403805567226585846126785038000136777983723584858432363110705052168664135821842332439539331043025646795388181730035512314731185189608151995313715835411502856908890826356366892188895964455682773311151936051039037653057797472457822097535624798944325339127306432047834703869713360610330341473861530035781941103785983620287238918894653585213179972965405374988957695114272901705092614378082554055929897634717322067725262051286300797957745470026115421979998265194014565648844432610460671336874219292938198655255782359613330474003375010686906777281431854236331927883825446133578641201431715541059556241063502365915786460657886791134596888017631530025965784689582156130513673286385985749182743950414476902783598722270501556767119366590341328861430257663507509842197061879716149762860494062754820591163929502921203551476794153205324581150125787998738461616368792728717280463236731576531352189547775327048308304585687707027473952242491823539261538126270135917364606607323966963732217312749144376011717411956637173530848185350744980362967550634556090709717840782961184472000208246413855230094971396359183278079757352084604602266911156675815854130708873609042174106649421371393713256848771308214815854400655263159760360088888138386246089055413235873797131226465305749201899389186073465256723885089181319233102108363653548822511347816149271400991930702398736541958135322106235298895624705441710213853228376343578368399891798379274872148984559277959818045269320233967986812945239206819138073983018579097230984154835481265947758311568731297191581420188438634922978588239411191232809861387161371225760242595008341391534565414361926158705306413352652183532554112440181470324057076902100705805928284285141580737337899218715423384299123863228567919498766471275072555767534253178631753131482420577091255157321953859968230148256580276798226148806403170832972112950075276838913742790864696219842843606387949083968071652629434850933749683241769180189910550863637150764779792496179136847758836136158716655249129535946008803786961527148152642852614269990929856324996855608650950181844067771552161783704231559921192310092945953014199261000435297015226605971555130247582212100457562936183889819775001754933112918286108506580335310989493242123821316461128776190200171514878622343720223155526974458995841309154506348089063494382598512794728609694992495425319820375368898994257228937011893191966427210742645501584588332934132344382790353060286378804054042420150459732372895628977004165920804835318645571987858486516175780581470580334059849988854431334985018044697121055817272394191866765308620642066954485662951590851109864975750051194196614940819717912037030928659077399600841998020500614036379264813078030881409227285143314708243519572104570103118258463673760454473356749330309094918199565733506477015660124772489956279895495052555386533489480756242018270337516810901315335674294305690419494479667723080295504021400742657405697116886656064242856446802997103480178801527361014818177820291712861575835431138177949240923981836692740858406594036042278626394728375653349841882149619574518875063609879135715470818870195156431808805204884285721369623169290826851599589002986969998109857016267664494472002610272026251158011735591383463921407469666843780389555851932627237612882110472458335137056850715038134198617109248770169019285056622738292082635194768120107123629108730398777856602630933738068487467394808216484937355648078068677778676036776464890595320683276050643313246020979158137065384594319303757507623400629942872745802006171770683649141062470687862349305917819509895392722699408014234826960117153387306431992722755718902101084329575505076121128972456537547923070246267777031100575757177428780660572288295085141337223778720517588920906167468745020411130463859632997548517808388533594651461602075933272230064897867999308183060771473310974612408877803712186899269188321736289321816061720613025440590496961158300743897527378147673946332109102079348244175219814870232519610551894585571015781250287428700201921119993510032947814925513966322056023815317337850575232729173604877561480754117311661802423585851738614127600996892433331379196123283780085272509267805158741408648085876515297535142782773247114817809518376306655894340574557877320908393493112864562103013651038845359222320355857343014209435434075330610490192584308859899876508705727119074133043066640185148865010068157095462615252059241661770846179506688472032362818808156860939999607010756042194704544608929419102232344118233868509908005440452186995247622259479190685070820798970333271273016852906318970326834267733921799044740065212685366887810997023436493094132436400869912334985600802067210627810718254489272093345233376191676085980037312065167171861064015007864409100043576753936877171328953578847687119264652611205916826504937518287527859339944437734530311517647034220891285380407160490828285516355589497163863403190655786632427736875426611699801367397833972008700975487063133598835568160720335147438626207941543253986265981046012707214971277698155729222656801201370714708386277683835322833387691877700262515490489652953201042149340970709298245137742494995410723307140579957242534954575754019265562793326010944117178027787096248818786737354441860866546650783532980744794391723264666300912555591351092646987311213792964347675060823219395178778086104373208004709132309665700855527138356268038772440985165540092349479872114763190970312845535521537354035764524076103383660905034256744687826528071029921191396523813144075583605831214673914759865159694479421603815539743310844316427077342216790902328900737575523936111265313792436824953287381435209947190525845346359768431018565610712218840444547564043820259538512482917705803518372340895024053704718897558900909320168782597359207607624084764143100040164933004843181512508013448987172462708240327748490758760796368332778491077059699144405588374405896965240744230797221923849224014009032275015728918252262488036964727578906280741819586314008371123375951279031923311407144813212029282191318754481231337170584655940807971477999629778570046210417487140478490845787332322409228424340090521524332552700034582593083945640722742586135040301585195280626499476475398529842589532874219110648434928371428206409329108168016397725156469188912980279864554929143540029132850545586340209729366090091565590799790083241450609866127850612103582530878739847357933968183720891124456319614920812393468971800418612274701367546314904470942072486162255267459858255650215704467981893622410724750533197716190981764387058045745730109723151917641274904999030157846693100615320825814679384412095126186164796021197880318604545724518914803830573370806250342687551591238574130757897919382104901001740062289695782531895472019013642400320275786919834829378889095162627442237299175481856674230730205653676463532670006283351634593612026441838400757968085656665597223776937501923438882192826740721753726952500259855283400286240553762080064870328001424891690611900968019015352678904102994936403372114333351335919035983821318118403304207693962167915554716693212564538436028851690869449552225391175208016980055432408142766805629763203161117291186972154893560775964154560544960683548160264438474696566729275953692964182403283275865706401572837706473549924281624088254756023107044278020281943994750136202845139463127417153932687700149717558233911157186742014076547536752783278509991754638408445731091753497588972589604067716760163332956783386754562184571124623211176301556690796980624806863093004177562701674798718463438171206945795114450884549741475515844419202067556169749648326982178461078657246928372498333366485402369773416748048678519587287452288749653544344957897204816988216045207968744420676013331203411121666930562256772033279307946055496200936401963807950948994297876029614212326762643104888860443999061653766212229473473048267131057385498460146082670169652041647860669909917045642686304870823644917255921640658263882043929042723805177108192694120215147614715550942093040642600815076347640158377661254078062093643224125145007108115205073539438276602402699849063345942980357218890437151317363710227579979083169285376205101561631179982857670425527444961067878249270072413947999305489007978446253080427835110952732389975298743184564539123862225849305839151371706726028752315285915939359646663304487233979184845227349770042310086723906350078877191537076782550807027423401018435503936474676475680149461367386249523376874947138331149149264308455950456318872170940816820959706628677191653266489118771263596630343150520617112303230242291506226304470064205574727609752576349755196774841795782323860364624524828764294310121168375588473815459588529102758683577531645424918247316219691760119142658896161409980998598943067600378011073021487641336251215777751076941051357895256779905481966834777201852383406525591365699754740587477002958931160784207459886812925401355096436749088967123574244600510860251201008745114741892522455689335330136246697396383906043130200610109844494254427004591185174110283019043354120901489722611503908852705914724339429080260653910400012587655741185692330491205705672854830724426535401978272839203406463990772258063896152547754922172447850167402072469559834106744271025191142621247359764810017789624702485313128914654155135616822326784377635888360961561840737497002417210263567899338996208267542698537085198735516900508572312733003495947038508973879370264441509969876831023826345534760214847011831482779457702236808301989121212648301321742469408414292438236093580955017270559047506480643605039308327599747876969012818782466769196087627524084020517657511522627715076355233568033760558712385741470582844206586465014115582316908194280156679216218127530613844781016783205525685132032998463587345200813129477831167216362326023048381243090810765780119828919621187765124982797175481419503850713631317532881378615618042261534708821782029852883964465830618049062846770752299056175002016491451808449638417249879638300332427367871415006532876001452384559440143230211308061673787688370864711560986746030982909143143953880217794011705012427305069926811795448796259034361496739047334755782803290485705328431927878079817076386149819025910082149799417932406992163330449879653424488389575536539763849397981640876760868955331357124517006964754104971427922193956235133634510778031058717709640253860623219366766264426048402963312298409942103920328411349400619479930627483113735563512364367524074040398960485940990828465748295218634058190369509525349529045111177243179859465841614819195292369436939946694913118293054313369658103020747596795836856463993632067321371585130354027039991792745691069779477348848328806792819068605409144656204592887586847459004695638977203413572019352101140489397475853094573018035973974405037705216755268901448176924947061174726390561500578651730135716635500178178979255164379104892270464342053427373107245521980915590575121416013604814230640810018634847587647079969442252355837963427577106710302480217916367029848525110020120825827979716192843607018770235707473509962079775977468769639938226327736995433515371804286534775141829935675206330756761679493306149640224037223270195922853137044261261046734780723533529435137374943984659469845875877863677474560519635426113386205197914860444496076214721658498312305010033664262482480008172723471008442653595166253030288072369565266750599523522977891796047820728738255978116547853974748447189604783827647899647630499510597173023347277836432409680177517675659393010278382284902832049544199466200195665856188595472804945523382854673325609414840397448398851002654849761091983622425226416753217424803578797933350753690390784430089523722616596034891785536385145857914865768430295906788965639692636450086053222976267207384890097718910449778277016682831369881378769511231270542031488718496941111306889634255306743022289195854720322336152390155726384175999005052798924535366687594409466922926470638229345141864281382790019858591652677526629569991850234873997260456806116293060235149483518891920540951639397063195513424027800055719607804145567410867137355502629999271786178489403725578501964676433329185289887242798664137009206603972369069976698056576535508984761285359295334708085700686378235431606591076752122518661642482977407467078405012516885522502157947822653561715658310599252188007423410200812307660893557617250104199483384033707719013364931878768783450419350939695128442233415668460475201204661886163710611183798391987729910614591342922642315155001439608880104847963466931612162624506162711334684089805402593292947349790286099752094103390744718883655442098938017511918215860663278567067984127987349081433082724597117141839809704701205014865760586968463858619783756894064393675614279755757372443753818146851826219623607301986648481093565346683972082368134768313144966106952201472809104591560588421307866431289271674761450287294783558221112828720813748656653596165253218807224438061776367625996374013107001300498403254587181882757473404543753213636256216162262911984545497645825378852454717786046645887817834104882166571039595439009126475436101255978613721002347626535588890548310475175362777192310387153896865435033382850378314221169998640967881442471600401407882519715404107327289908516633724519973339420298653497933670969751825462348453252736061415293380425471955577944754497171743443485150855742200134461511292760802041841078557722196690014509646619324129520272398012842474030138873233307889365860469824855956999482642196138862059577019979659389659918355082217017864056488849350561928191928555412505470333681216199424488052769244631894918824455154456931523489443266539681702943201199386274306312244883285936689823856964352154864638234908705237264149197782123347148684457264845748864595533784183975733820919127211263071550168903052160551171054654736432343887798215734113988592405733207417792029441086043541371044142479905895445519403983239308435946286460213322068653441814689724421102014904563525289347621193762031780319395852184506957887253639365650220849812900881893478667022790148411025185160740571918279624943094625303822917906527147868576728619245674115365492774639911406398734666267444590453650102216143621553518654389454954674546889857369308254216634985273195199901828727248975855929996160356792122420331745367139613937515633657489481685405537452877371303229020288612070515359461285435608874360617327174749661958262451218176503733405025763838959375275457222681615314062746066535612912347961620278581112766913067242884159264651444169387794503284207206676602902748897847259721910351407039587603187776191368917681650879183670602737343776861030993105100664668242942199205861166736720490361392200409402596976029174425500567629362734231436887561707819443737691545925630935166961033516193664782410006788590153011841579603087456086068588106772605137263356412184271602854677919315460390814933279469253053201151595865368841681149007897925704671961006152830813377990846396430658090736838165987347413181951064047533209610873522803003276390431100705614567879922785874999678403000649171304364942540552982386295748951865855449731032940862492780523947602817286646781433385041985207632586395040036942482252374520186731711325249101029480159222656788918589246463886639506875697799863475203705601745160341301897039060768722177323023889603944772737183533466727917302241806582259453796254034877183458265784174433667124037070750975354352795265962943043332904049135323256316895926061471984142410946326794895742771488640726733811828699194362119574503736290090745178841700680577699278189075725242227492862384796058075026389010536184209287387102792824158348249522634141071226575950626685355639113353959296032455265973602347765287908563013600774176972749875828978599448298180716302244738022238037133836917478360044722743616588028516801473049724634015931965857304668594946193394996186406930236206404498307094636153716771497662374474139667808015109064528541839245318389068288687204529111641270041490633924459710190202418520200917941012930669999359915870596356149909901609917991067985560233581503848231217820846238240273900037416655492503577077436917102960999581371683145209556676054239532894665517958872846134193420288801317872654973849872695914740118592209103902223962374727623861026917874255211851933789009710736583754082590923235924072832705200089132612400683224816726264458899058333968671969870093281074431990047364840464156866223826733256923543990059879621196043399371639021927701119860093239413422653859198148869776378918793555889938262320682353046521228953582937978747501458306958169605970408648306367649197059575515680549148513942386860121193097124442048930921551464170403474970957474310103002178033835451355314589999426206966494198491062409207947580449801078071983832050409120707230174588446196431583856769537621556309283409079705733545098283593073197270626166277324393717939621194138631247509755616521208528389247938339166525835425174398402375103937379176623802473421288567379061285877440694123286668103924349018749403409515000617464242152677835193573317966999493445188517971118723342353147875298408249177028816004678264089549797818756121380505910342890990002235250119307557636468752073639404826675220389507688287668988140106732346137636642643307403028208870194445984443543881727138651640381331824892121620779478491195510723525572352285367582182679289524989893814301223717783830728753316869503317614005314875960314110703473609798796167041725801196206572667499707044313408394452148055651178654128641720066266951697554832466481215418969751353230149741945348041312296885106961582567876018939832660625446582448125951019123083212761116090161907356938627915273828771077784641013076053277335623652016211071407109209184170167771034922851530708013596469749901972908444345359268649793464592709486902973901587330387175261545386860498937105277048261370083551321477172369867998290317906645185075117536497418508165407084390196128590825126922416338527436850724010854122447754138576592217636588372351184899834811818926607274908169721914642104479000809562130942475482913597920526945539400958441556387990056517697617201909909631827310079954557267040014182128398467094045603323518290069595202593510989125993499837160209344643912177611506913383629746224609218943045711497344184848460321203038065519119510823284047909685678835402221132963070547480773690251935100653532719205989387841601603763876229600521282405677648018237524340188877629011774701623024721991941756883506644438013109598820358768325498077324076131760742549551762592200840878967030531175449938933735849405949608227727946162293121580529139989807440701690313386213918695787801596550854383270897490480016446015880386567002730958171441326405014592654246601774535964827303654503892491122832114269938667998468800181388560386642503895674962144811707619647369172800438344684590283563401629352084568829051292944464755315502582326412591597770895326075635616835330265881562629509593778872367246528113396989308690190845987946470325217805255272300751291173436863548099681930036931325687975086675688384152218906530876323382927814943074804772681069492556775780759392490177606288706137183005507929964725500844686659270239122637395092256228531651735529658161104793457481853284922644649715341942042189090425359730739342776818984281916630027915407770494271088048784529141419912420952923505785411052440105924567376854014497426766721165051020046562136095643514412371048292502219904115596790873587070871480540346733452354680610428916443611785231505921793385548237937981615556507263213463449494128649340234987517814612547174175702200888029222124461822989275400806945386829487317213564879044543345651730277490324805871450036071946475402683267914819303183471977474000657261324652659621791572912641279149981681454706892215233462113649762554594804235928544632282792690532182933273275091558413840926583069808784394425609326185432057851168561743584966878831166946711358134206698852786488560856921367611126000114255613830022582386117121046047496275282491792295828485577280964189705433239801186311296483373617075501192046970518699279435541105162601475257857920238204714409563687668396695489550556990483279382849723583210887180355497837417801913746422942619588723178856915225261187778446849019137156381037409603447866164095844978476203236663240409206120202345345451718438982117608101824072494183715222029428945790950034028411169281932698206257854972111578764731500996045588430714103885723535231617612425421398209793065313591806410466436555364857566828775494195050235831815677781479012998757605188144421245526769027540416457833075749186332211211783733896521658411801413033136201095018557517321565547872418886664364705092521676092943091156697997843821525488199439896532251043307728766469412208204815926225148583623131898556793376054070397243806261170630248572585461956639900135446159284547411884028675597726394536369107937700877708138534720470677201994137849277238080493812445925440856489791587860692386473492149116740784208446968718114043887184382966016417173523765753601790492142582710015399310568368006751590448826236486862615389731094533309197226257007101174736500014457291885387605859589895038756400001535210183102806660815904803647564887810761038424371308212967340708284494975609055036373284852332153839105009540051943512822715335711512445735574942174611161600545210973271239975849316679909432273107502660232049803349700736657611967910083582842058022405073472893687047908705515386576855685668397612509345187328389071955376854900989446725823112516563356157374279668119750335295598236269168482820701290254720453013305794040564486597675789637266311102316056172290407340845557511137559799223827249892720508376157810309337545590986056168667270919148581652741418086495427459244632824065741054047789709733940757020724981440070650071896415832250514975197595937906316597043494319457599858020261762105767137934293495109305359344373546199000752905513659574476085451852701130316833689415945769926187903873150009300057425286912927534185728974031146558095038981141524419468112116963925394450718811701117905292309281204320533711359849201044476106194251095063883004510696511902306292426582013617103331551382560020553498259326167878733403827862562048118965113418698011561446789763520429209245242591567750590299800961660846833559318942704115246157559012108806984795932577247448940110677035751988097560078586569171733144752233493229373433765899617186455171865388777745887118688856043115893173628614361150000165217801292613796378765397266132039039928000895195096830817324917035388261769778881217277598928167328822286743365073005051433255900385943237007131091196646060400421609795258778427971096505233995116969215111523275525411790255184905948530175565447589334916813078657768449837614701435243531286402209122656180103013029468956334679897127500218141749109119926807530536868166620875414214120015095944812606928904602509811874929704512680874646129772328547087105388843209597004077142452038774407089457039013728122101422613628152946101077119970480623356570914949629237524794612332007608947334424173015559617765842016191598348123681486136008992018693594442784299244415562332529223622613484668335053444365392862079170156160491438390989227037918146148285915659321285491716939966857927022536800542515551072754643441116036826802448190864335610417364496090252548125966682533050194426521123244683769665441586889288621548113834609214385435057835511978811975779876710884487041855569302224767447720278881610353916824260572275241499743065000470572245516277685569201094109883353948019745079339933455299768613844001096376592391082706448632360954761925482665566889616757352322085238196801809539200581504612156045748959138235616040090862427276874343177046760299110524847620400880453280233824319791475693188119241652782765396966633799977932623079661384350002495725478882006401933146961297352642454896431340097523864454533062992746011637851810781157042117416431281491079582879784398824839639111372437587792972391667068040806011958007223856001734827624039450383767706940351756288156311633012942729591645386486633841536234603542670639789214056382283778609637006972771606759296291525297410074578021010227015329861739870968518642050237061025761355777683327021324581581358293031431369664106599832539522721471102062235569611295448257789827968287465197602494032846277456186094645823974371069993476437291897111802836699016212454112690488445022172820146803429616237008671300187162463477889333795632258997197187705562453574135635285061403073215569283275200191792240385431756387813377607846253689786224272539002275586099515557207864030671256138649500406650853175902731127193149622211209992809130940021837782725477203724436659545747439203108377123862325591027932616208923099940429199996523672506829605733539127522046948795412988991012106461192979607241082991092542152502283380125016716587941258529660236164543901508309251244556373317840285686463293793404661725389966078778110760883185813080295935633665054520554635482254672302504272637512381130210430852669608474942491835033512976854062545765212907713545934037060606211380766258963333557998270024902961570533007181671519134719949814869451970633773504430849844012966620834492668201628702848407665707100292780040583297028363924336911873974370679847718383386517185003007009961496288675339931858594761989736698583403990033742734445082604673563806833105051335152685312461885660831785517083993087356830146236108425053973965010512469515336584654914237086454447318537878180832194319620279091028374875077846010832377833569253365844819123334727816729536401378995300877595062362504147854264468060710848257900708237990753895172811600259152393965154176209286350280788580071545059279158477629075602689476139679994781645893357938392779507672893831887289301682632188254684702454900291874365195998621363428245928672531097338600437183995808504222880131401766494866536330089726795966442885926517236483563702153673710884831996711326060040371002049387875197796726364315075381078784882044684775397735002100279106025117942735242004613339885136659216356998667894436200790757301100273291369275040896972786572431690883806470193742524249128259495245056831864462688941370304112301633818247562007981612685399189581764851083147888244332080034954587259268728607665895401565514501161225859638016944631228630196582583199763380194972205481840212795708602680924878140591556996870050015416404269152057476127310464422545734498650234456044914621599402239115740745124531942092344102533681883270136075875969218133822050900019741860537945602288619593536583966016611479799494012138294966964632963458373433041824059774215409075620433433877405639440483587151967139145003341820363141951191590301151441673053682144997363598002231205246625880175261322100450265019139419818577933466782947652399903912761145950423539267288035114452445151510441311831834399578149809537698334843529037845363751585387025192649082502217526633995967396098899608534874776536589732918994534698447788687375747882843852797194302001908451647645221076447282017326907846354104246547641102387979021584098593808113108825593826573446479059699663377969531272128618497824946020781817709198081674022106064182155966917094804570765648412622815516020470659123819014068701712680657429119524111370154865039750501686330559727771573222529183771901183801050985638472809715617300410677412451523400489025561634630813761921270022351612522469882936856262943905238679470280735727693939688908288618061662693061611467812580660626814508173721863651007275686523339247752132483216387468911725109923091747471142274983890214697412049956027171014933081217269857898429366565184037929947140222959736497763467252717306410652489445974728748913935733069002722273639781326738646059320170393560339129559777475781642714435964539911242343357547400123753163920218116941072993227980550246923067158609670107105644169833600592415576497084297055305866932172310735545012592775544021590461947115539408809206511261551226426403332002972218004235527879455165678026618861070331323086495706145231719641661647749900029895377100936035851007139198537709092909526797207901223189977514714460392774639834199389721270778359323527720308769574891365028367827545910304172703052891721405100895126900904725099731723317353976613985970198489421166767605606490463890019970527504212949547280775274790142519097373469769105190961996460681307291040800120686202480969016878132963035515817178471509204474243717605924621692232640927685690900857689199997944044390146358075445639721348878069298528164290669369612400864778538413145719675762677583667364333271245561051841252949623004729466732732858167256483058153410000072231772169524449296840849493401458840394713246351637552899970420449908665111923470611021429957661122001458171509269844863687998088773167041279142773238421686020820064292482400639040267917961408584328793416921739481769524842720316862075850783114708072131074453702069142350434421367731074779929561047662388710269432096776620906211781643421791640222918798626917949744685247150656172578448129928376923239431285233231650703720611590418069412370600134280411018281966160401292918031032786241366351992774115502195968302551261871935705179525630311818007295870172578458370081591982104757176921416729349204118996112633449820121697628646780465513499212049908167261343426873813715851322683862107738595891051375525614486936552834519070080004916694253635024213274657442339971795900352167935393531328742406880047214266560381367038891964223382801907734935288751306388538653998316797080120621775608563967294089286976300031448392883476848107528263446788869904009237082696934272292151470666255316832396665282919528754604127750095855418180964735332830479112026166604106896137066683892179599296806623136894272286036999115432887500636242036968382841163395140012125277073733848347401691781485851845539580686038937158417903592962789173284205936021327029038209142174394705104076677580853172630491115882732944189552229338617913092139697574710188428065659509679838687803647511793156827825933100176887504073469342043590825865030152766298987779739627602378450959027149468691728324385059296136870152333122105072016190590168382022815841645154115577522079091557048958213839021706244918424754938437885203604623299240304972446925786181449691498200036798761985999053997364279274463314293134221801933446600615452157617554832512392004619875466013191704480881500475067873863934222853527350826352258685729906662424587924203998583827416688746024058337080297848434682117003879204743547969250094737697625326162028546090718241595151059927622350184394936310779088876800679972049118731320461180803291115551051818166756452119094164054079813146391612031691146016983160616555941592539669384427741770853149789618247062642220385484690866737949087758734171246507437379404030402990356232410249556223343917884505072762176430363364197955213538804757340452716422684328265378396412764151843303939542127042048678741595182844567885554655155778325789218371271481305962795309652419211357262469703103620135089314160845270018503118064292725878508794395398386051849427546506369345856988227562446149984200411320547021764640764087536534784850824287480367220974157285861895961479502863504588024653726834308626587315339197370378875739822371831457946859873173387859889534944155503092672578556802581163341530124111505353984239505605600574025979575337691479704425862824172731355841018825354287006296287553897746948113735281229595364070733359084000774822177829369612984867227460165842583547279806430600674387293319696050182586866654522779394747516891232769519519770244811198089638478951480646925655949046200382015887535745201997718872599040252732146028059311728864103396291305065138485601513165565843343078791978275219962684391244710532167670970200680680714767985697908319588100807732679663328234666273915016529586599519282300945375888527647332255283793101610661387529657767079747396698657469806167720508126086730297507934872476559528377832075345793130525173682443575674009050105083537771100583930056194826732761120904872190354712257557680305863425632804234141659639412967249768361824047502842740096530476715640434358850274636805843930292867496394957666383584037766362662264116680179057661247725967474827045347816940790003293961310703840827101452613423584147507506445182696003270308677679402231164607312606579176195715494555581430134883991734573094411436672105402523815036244184762727022661309233975277834246123107500612105045614676694272562095659085323357478569196780633058540397939435971798920054970603772668347553706194950416686589406179612939861648174275319276956737283847012471142040371339614156613574503674954038325561771135502749578652651985314368652334396876813630525560853165038859132422212745616239348048552497140486437199226117698268152953370268656020737301841548566071406693039470793471641759741286581220680702677370707352001958408335197785367267313418054032767716942216710385414428175669070574532899871788397023986353076924023686792044950493024651657922070283251121765222672103863167657506705638957726285139787738295567789301486087630893609311840233232532301967064574465615331843647066255362584393104162203148496276653334648435935858644904506979459861472397345603477945620359952553155964899717227372639129612583088714824631040441057070336168343092256187606551459082217198262159892559230146617431391868484411593915265460577475387101400244621014254983865591425309282712182539918401877872307915911789497388700925610937802366842617150011727410628026992056731364991591126654292265873811642471990320507601094181439695291424420440231086460524759522066694341116635742009980682428972453568566194424819283899899580511890356966476617520699283858980989020556974039101920629810045261649979068336184837679959144739402380992934828320794254780437662967064794769798001471778327454108208159745226174447833390090540662641831762079210037792893606137902176300375677926910989215129810902318661155360239331831274902480889892050819140072847391904604715812712779083958473744162714935644285718502664077295119264558724122923378944992087528497075298175707810868590215159437016425808421920408459517188578880291369476593871548662970260141568757577745944788322160271158151647871931395957948457323000308782126613949224429137484139023709084770435256807764378664421311657312717680384766860959450309391172535074907214923804758706663409325902473170908363174425380315403417246648743432333445012410744249764128475085553351961749436637130801282119787611806108142525169484094595195243795333124484350231689435632843554401616607443839844724465006490407888962117300845304632222992047264187763124594881505407858061324745608863990411516406830152245200497478352644219927067093077541711001180835437388617485349209774849108634483158020450102952203198277721592675706212054800779276699935140965021057571442567485382741235057562030212334145168323044381761187607455262963811690235560310944092914610645314975875168138646871837512978615570157164387791432227022454623762407401152103494399530339379712222732455581876658263893093312686577883740391716615424075652635493887910621354111651680647687038722137595760830341009487955139119520908897189876434266108841342453267190170788439129872152019310223575889685845381890597369214648461123502002996246447483225550243894017452684078014037110879137853209227616077399161104934435217066225744209649736422618313965639179128535138626743913568448848398319934412053814810186190913988805394252032104707285198171320534239172489163463723621430594771122022531087536482822533188408223024056345695464126071792687337875324710227397919415111552808526767503318174407277638949757549103608258515953594917468354703719361495198996766229213812881044613977618690168400929212308676738419295447434285042835922987577264689345908100511906678356913127069045297307919834244557362647606237104645454947407404490584589410451026661089375488647759322798261307951158067586907178177595953018448993477901971256724536588522939446848883345850991524826496185113900598319525062197663187243200378431220752329591911375590996932873794059657775529236598395977635680039987545725100099016193162889130366179852483290228962786673127998903766556370182934788694791903502735680442130935823528198964514328393325879369239893699567496195065438596865626641389413782410894931818988065933170239264072837944128544984190279413452020453318710181751432344656176730008050030016794851411240673226774520163763281185312018481670342868996719971907267046993681304963363947662545532616539692854099156213422886346572743841189988741306359946073921530924968677576781896803549628527518499274679627560527283669633401388100086878218138740220186316575759460715125423279147342801376962715789610250514713127764245908263045078875631059651886377937656978788789583175374689563038445747258191209890602659050509933184031906393481164990818953126042414983119726575918478247820260106607077061457195702297275150072489549222429139563300949076652224343848406435980632256437180302319595366349990960904205395424412609948806669022229283898437609828236799519419341856820157730585446670217214104147047681941790238039468282089110611253378988821983592354163452746719026994396510744883122096803462263950882928563394013831801189163885762202073057718371908990099699478223374393086139372907369857502773349686848485706945573505863292518311702211578348096715177578410368948511572945487013187259205007800585314394277098959040642886298809698931919427395947936096830149321643775368633191744161478602392825244730188675217641149920724338823094002591733898670121700488020660806394716172608898790317938363615419110351689332744418136090836351434192379048861314887602419306170612759930982492408175124210627121614852965337448921483573719017163814821963064357034646556971307858766929965918186520831324090012202425718324032635794623228613660193460827124976090055636782231113364286227121114118158943161584556297647664343134192406429438954529982393598572167078902975477111257755986770324729755145258553642725921473772094916590433922623397205391468334224284549469656529690735772297356363511192892883118544718902867762911919692438199293195504424570345627045896734787226574353039282579479815898112566457079464384048915109279509405025672550752606592366350333310703049553170070957952389280307725109308102399934052421420552131386140946440631828346922449889605174167283933183314630927084719423644631329040994348120413941136695311442234603137899713790294903659087698296552425320312531116165491667522990151505370132438240683093122313676438431036760118769252715116596407880043329500868432486922059981542438553978653075235375209346532465080811338059083802640522245620286611414523027389780914421591067483676914806959663381999940242130842624497624317217445845525852275500879921695529671603753777360300261156078529551737364379606325890642882049479481536830444706270773685333677516034414403112862390101913747105427385698287433861498059038201685227914713228485304506314794523782053690708944450174301169750252913389753505054532918702786106479566927265904478909078463683523204968182678564123545607458240730188167466622067716427730733182679570232580800456250829117529453172734688258700763532329976731241983319324643290596438524585577690236117194960314205047347737483425389136793975164371065655769521446618953247451361426499144016408434593816370444919308727629273982040385380654381245114479940223224244539728924999168652331568839351484468278482767226703560388545109559734850710983405628023191246881020175270633640392308724910732162158896304605501764867286708915478061716824985859575395127440751877921870930175636332028790791864536880088851537206005278888540184915139708216661494685567980882100103179234403537246498813822763368805633983936145342496308608376850894617502687081025693236407535867852630239072714352157498418723302482666985240103091380564616041345493306240829913201828619937570750556785503364603152740428174760863441287966894108534120297828146431636078861850345325685472215527399988137462953848159041365662322646520701300025639527764843806105659319532647944636751481403660675981240954057028966923483841559066932817219401498953580824725441438177276087020943691482160591818473436476513164607509309951095544714807207000443376510544807653610457006966475165281489492907430301472946944638399264352084008750312625149107288192321910970494567690646022623964403805836852204553861411009337184472205979358987293784677083116468654217568460671890285833774758287762915577977813956605874574077111412024182626465815426274914872173156762029809448943739224215873316463776620652844973059115434731871122034720096437078649450112079669465904401421724126317256859796411358638368144439333544403933616846188410715019395112293704816595358625389611287500164504400572001425314730562943220432018065820264466734606628314522403662868993588993508350733543949537278901633226843893071013211701340751151143781058540166306849523995440761073180725046135126666451806167371887857510652169823391722094733903714581218212788282061499962423089024528908460245531570911425851600394952281255641516598698437412837480185679688572556493450861971136937732986648406432300574163817608270422405935738414543404277937081562106999796794948075858062537084115823313579949543074346417806640063242579052052419160990381521259182086985579587257383641018690050929692950540344898501954951704631849986110163052058679638067926371244004630150954950719492779677954010498757859546172346087605721275434718470488739711377845841657036729968717797562620117437670470535489117956059023316309969080560943250567311717021532035317812973268562349385828338675055899070382821621530912951067623038071368877410241957689198220638558906877216690610303580001311471841384796538235677292801577481448827433149363793477714477579262501642938152144167137808446753078827779275690516873208471285998260123130705824421265407904161660263679350751799825330207812013036615130155891450434873185875510694698603949650169171728077403129454482606611448600744401862735239231461314074210053063450578892218353239637437537991288860439102441659001612483769830764691465343313289404439957828002385038487813545042576389669922705966217623209550047572362966039356481029590635743321781264882391534482847706199780782057201512659671282463741173491964475795273619291845101676205925214351922561514290108420822499754808325483440147086358017988430463537960741222324368197521177807530650096854192938731353635859040033347559255724044324387853899567930198968578639302034874818555317688696608059819783069802482653527049257621338731879353412140533336288998404778733032873295318431907478434349265042125156389297741148179388458473012564294704602839339872806367611179153800859928979463087820584329804428627637925934641063980386747151013052547599890637027992238252284498472795148644370668998662461234808343749254529340777617053541891183253754373366301568477341050551206553109553741878707544160327677294776607275832886482280800275540420825375038714032553843699044261903034856198801217491340055721988276869540202604551215447767094266783491614957347231398395325667686786497564019296344137367327677170044177424448567563911838977857276084172457991396811735638493472164124888169356627028942912614845904969247306966214513395310048376395475041720971930057414029756405665637544969999007261547748194571923418128124973925987984052833442251966302693563890463249763125349591252049246814246686014694616377862774446517324520291749130942438672157885335963402476332896146330889343399680281787058483539297017562659442673746651188186225707997256036045220553121786968987953949515619558209866799190336749534965966164883539771993420327227182314226661409124239462066734472071447057629794758860557489425590981532650413094424615368652118605662474410277942619224385483592823547565755921049642953095276430597829095239100887831129798415206986073775751365007514333729260524727802150951953393544338913996305947635918745122851746521636980163666847890026144392596835900525082681339208974808936077689489732024994788007297946149219295438500702166260274406703175597724128644382985691990770844641800565799976666023940885207152321564674857389813388113764127533954438855488518955295820959619260538544285854526266928138364273847633949936847415665872808571762898446182890938435448085612226311496047799769244465970391930725462377544779575640151820515420434716224200180143949102163032783270872248866092894718746208023103440777458332392471515683593850991766352065778935673829872679224835871130021513629794601270696758724419535336446850209541502362721198532229834503134323360636164930625281650609533113668770991288674204073423545412902243574707263218608571907280299080836067225540152177164112293160096706214236667576553071008337152026572683837076272917367239624572272910862961087287090631912721377937922822723775010937723639848565354640593507789429973068288343382283791782226597844399821685567077370584093442875157462698296293384632808084536957521010095112292486504557804784573105070464293654594222597004369388357394470684657097984395252131824000871779925096486702373444716705227373660332011594188722225789250573365963110784399443128317285858845519040189938376788232446508831977567642444820060924337091400934654409325491313228116723091900687568365907815538758944820209994508943102001417134731744945861306958005190470425995263814679263032687338294268683331720026549891609046457518139673611129023518656912087679707573144951676114712467236253200490720147961268587771858755087853061567807289004105679991728326249860779889695542323996632479432601535617531133250973154585335692516568667323980051003201549438420377659385055332546855632653737956161587237209622584032055129984241782375928640048743144247988529216683567079777966830859550638804261034471123682567140165616597044973931733018242806870066844713038239381735183436008912673498558560494652132547818349693606631600655568393670620875586362791174822486876943948522099874891268517830754101249356419903247744450456923562926999558138855839588711907628359964554047954491823382273994258164770035477248860518488765120844253651716778510025597888938568009233459037854326541171944862133172746929057763462861686564354046460836331327690273307485440370358526949415390058593746146562686996185087789611376857019100407470367355211360670964887886637742921641581211737966471223465489395525943832233992175339991855250773816057941288259572558037420300505018837361290135591296596924439221557054080147635159787569187066706903498737089045212580020352961151268311915418160020285529782691281823066106435239330258569373473441567341340938490233586395403361865434117957123299973664070905309439759367412285393519161922650251038993027476176122041829555268143453894258842457377825887397417557260783962550843396207747490741772478594050848489419793284406750162533046255577016774724916861728452167695417221959837935217728824138245934510634879150114454262810480930052734849050109542679640565888396551892124297886488855111717109233917340433163050624518395040001106327994089133859222033045343285696441124620828313705244168428868069691267476868453783410207658329811914773948934373683754580319081204654450726255773912895435274872371258022829337252815023093743434182303530916436159466454122633254684735714929774923243405500220766369478824428063233299681716716805873947572600931865202919567636314886716582721322468006971406397647795979909831350443542270816156481607977119027551810564586798000659224511344139452750343750362304854839913093373390472743312378615201628566916203793494574978314963260961445825804192911632007899834885667750701978407421274272414041018720236949032099668613346250372698183993847337312490391367437819462938780027031719938634377732438363880750668322250795039125687233689878795467967760468215140629623700596168058806473527791464392740136457058671868411048247770943091349112852656324290670650434792901313133655788559188287322923896186141435773857663476924603884588877628477159945710642652141228590769807533034512914316348798460117085401717169654400627137182835337208319850794929775570329383008406752899230411214884578150697144378551103171500945321396183601877251264246543428999291017238770055589685866572273027734664567760064688833843573171357915376148283177072962207068270238604858255565583014193007485633602876195558412773566490897044278863784672911147668760596967270518722449615384768252197352336467907693426040558382566394487612728737423254900854288837140993663923281926505913840991708815613027266489671847096752599137574121197648554440150481905156872227456043182789224347793929812229353874056408485832475853463210826190160265424222625239271452283715661217687677617990609405811099269380030031964645173333039306592680284958063631438626349909696085937749652204584210270753009300924545188251650423965369657199721826466924182268725942949079294486599997202803497281164656036560011542940100730033426515787827900315219787193185586737511154714933978191284359440051559553727845961701391115816761118610085137924938745697089593218746503893696776099676554860176482780927234915171900074547990347903593268237067436570683204718242080867465625071245622026209328995936681176889220001031938872317372816112141226857812120876920755082632523787696592614605123681739885449020543543247793423390275883843290405450929953262768573099178548994334386198972126336741714973692027619515164373607776010951384875419034586814281271900505050022639703101446971585539639487676020537132067682677773093334374196395939402534437002528793641155662973290253911454986603922643593919676989459774310960901106669117091674313887381933619947542923577095146822092809178913227903741567045731969994375279461895432877062600637331330403314773548771256105229679111441747873167192286917535582326568739761219192207580311126057848697983960956417144189214831969388503365189806505274940589561784627095799616699515553455720704137398436178759061714913565425934878838601992542138654112626963072248385962951228448657409895728072697192013898436014383208124015030495360812817679429632525614137749193282284887786649823435717989773418761000842234377842345057107126685320456231818640102682805755248902074062747890340168736749405011248522408911315136470904507633533251889358148796243603137424228679238456499317409728602561567112465778309007916665887245063218454897211368268279188266953880057568186557768250973793853457166832562608883382628940443259382731346709198865768850814838087822493652154838396109443392256736516349268654098846083335711820887853060837909978897388013217052521093742823725508068467536900524539013676514510767907751754572526770682433811128594992300518400635698003217610075968360791486564033254759372633976191988810984479376818116367119733924481609387118895400488455666446205402886012121856433036498695719921798382565443432551190816387285693772899821716696894756629528494774471327382613264832451423640152167330204087922626839427990319021455990279432747426596517189192602328673656403218948626231978490505037413953304709877251194160037587125810810722208251968325222860161945096474809238079235719269683551548928263637753996193229115546743013189336648988310580762806488009033919879350397830077225685253744851365892673146620609118083770958913123289549731843055537763890319743933571606046727758514355339311284556416889944563215252965098634876632760732694316623193044779320448904358261071802973854355051470608287185613598079168830440426939692251212363406975742444745906401020564086447183477655718826970506420711919862931950893889295314907824290998880307731709728509640970839137866977877068933164610482028184994448024886164154528887413314003500562032869263682186815038109785897146954430500042280882340279284922977896052312600914212823171095931196632407696308286538609094590609435008369502863161629906179742600382776210404401077801718902707179200581301303280353548559620867695389861539694168442082288219029644817734195235997768580612519780587342449037467527860477083062731152122251683629338454773207623642149358518897024557587162160459811234804047249577989571309960146118776321974554257425019355116503701853064115264197121254855527078821563791685550396220148247238989531896811893065770724638886792693169358186270326493035405116193329695153731660582887712672562304819987724204766363243136209982262928670402573650649721027440304522909344103166529694318673503392030299867016962478908468116058332790981141386039894602585252329768928217666532292127580731217882030237414861683607787822480890802362929559816688334833814282617625124688973209823186474741713496004841446903362163545225063515519109769223765309596847279182565751614060240917491850036950307276001624318559228893324898142961449075835237022386895147450216659406592357104031998014266342097124162625329611358274051514335793373437393621600820309437829035378072214590321104122349656362123053694332847931918968765125176470793730439175668661764662884154715601059641570648519691052521028753987919773122682249904819132926264598850169783697446979813713120416707595367537706956259581261057380572461201772260537530700852509325683108275244542944422933970721886274304388382715454686455538233430818350938538671252685931125812878997142321446266221798801570641540095805629250544640954682946288237509073286654403284603150159047614895577802859200873711784726886147704523689354843790328799762238684052739563410921697803494305996990936333718354909727489703815376878891242433969392873251966895524119862228489152399210773895550887617868391338686545913114340468144518118497876177640480949809434349259732298965750482951977419144871150329046741457311994260783396279744142669957982030425177958730691694365519855751003516905053515249415769331648414755314472998443579378555570367762549130033118138888932183081741726737714692355997160220213095578467775458624398282477814349832287768970277815046126419414157418179627365670017827977686545286667061867979500356504529118932867156499129069452951908593095822015694520923189895766402743999833870301083983768186564038563161809067726503928689848265472298611096878050982101714186700172228227843392188613462302662103735892636220182258455521882023520898008310190581670316792819480690948192531830641294116622279519441826189407734239387493761987579549251102481117847708807495856025253117078307396473987795306922408994066049951919776309746260957567718202198588329682058898737239535172420246158947958083465235864855008327579563354089616530462762372336627366987985922137820567320178284627040724360332874205332023413090514712651663504670429884556667030118646010431834872133494972402951432991349978267484952812668202739043527697675046120863286506106380555755602210078983899107759702787227956529695953738756297579244560134643668997569033039544385114949191529383382461496815361114608495443922649176206352480861339919755213374591839833513954412782776769035364294853881317602455913077022518046535705524206188376799112938545462843897168587144603447367694119691265028413401033214117953672916421885346281455293562164389676767733063341501277741395776240805064288330610776286203923843099250223646367505332411142657098604267090892856181244416895519200899599557613999128010983856974160974977437700156334406480202465342421295060334265340658772130610449209251510052923396257517780062799668617987216813728520228641117190098598536889646758656554765796430331028016700224776574570920795480740664714792422350173352229080656202448195455487449876487360077863045648954485763663320537930432564103587902417303778486806872993098318719864054762127563703107534278794698336341458727862224712983685047135594581942900842520718832726366579175865907683826818256274477076366933457937393235541971079728324039936408918276749504248309940871165017459587156131611520892568321462104359770032050983859840833180663001119392969808860849752967368320993873125719718626869117315246020523845108247118324692115982683281430861949729480603540267301090434385866005305547391335873420710986887361082238892735411955128857179631151520273361267314851691575011718219375935112465804806308524125118185522773561591928786176881222025469711679487733908034108333287787326378609858904712308909002107764299955405890595804082000989515629985621451082482364859754164894571238864902266798192129603893795174393324636058156291556785160029306339177312770895481986334581911777491512865039413805335370729620322655387085516465862630808081578058734239477498800492437611377389703434079838323673223141945581211985988507322706318226586846087494773267366074746464270994354375707384802095748182301187376775888312758819102944421555065904555165632799443859368384174435872540024285135865780220193400657127211245683268990791875292633034616710795273951491095631784639870691661745514398202592657245849849558334859234504438084650184725656484616154281393151216184232460420345061460940269858694255524974193436243953808015513829303039460866845180155150700009044459350951401000277288280127208277290955801072632699884642391873506099729702955961956133367240678949047002979450875758330421767289748351009505445938665944414639442190210445157848805979207825543459759528504696358400961734334272861308850740299013658930825660592321818561064345834369263474489489638371396100903504135914981493815731661556389777159094796990030090181291779700629213955612014882455470408589379037719926648301597920057792004004576895944735728035270192174099224706405781114393760727278664154382725659235962461503494538103047096552288822538093332368094051203829677081534289126153991594137257485959193664352353689378476110187365116763976039451834182874336367784413881222430260668447344419428068436846279400570827829367224922038285609460014505378173061772114642149356797759450144622296276385281772591724192871602810468620431953754824704476291648545130281924245051608137206327022545586772669754372931346050354855219492493959151798956428977459709496094495690844029149592121313159337192106129935018077064508842546266455113694074187612803752706592568870291354009815476442643219757173619832881676070860461764196016068728544376797964278048398030044495696625649818386427600967900939549455890743913374295056559153007570176763148368782775384423501722247346065955548586444884811836085303546904394413458029447614249730383397017136437439527697997648480257809150095980132371738962344245834178299038519147510004488810795598148517186599411019831420295334670465467264088253724443457619781582662820047711987867654459763510511791170718623097022957683003821724173827871587342422346904062660173746921778964974895259515534417968756046956898736405989187894422975488874481361498279069616122430894519865072606168338354971316706124753598915426832699830379540910723588323074224190352553384953850376598883073074014444921019377468660518361810202908588032754584899937530751356321376798869848971912217827332456465754149506952564792309164487047943550710661653345973015337302902348681681421360700732166536749166144175819767027321500634258034358441310345716289301897065439949310863362219465931021150281371334659950788864605294670062376548696692446130608045083265739204175272007690367947840160864986334827409219599709886630405817800016751451308733135380321288272470880023412639932053986870385246984066681537342002199987337634193153143100445999938559614341350562511733564135755914881272263297917153823563239051113773609424712839381312006582986949361516729067316694457196881165072170472805649553967503589067628658724469943032358086410260566281552223275816510814479428536436406116080995155980751240418414487257766326675327637128896729960928538164114012150181182816583964655118201129917233441411906183167277137712869154103899051528520077485235322570932485241342944463664497824993705910253440549326916387267825751952305680285985017262535843434857872485031737776698355156998400235201485758653250787210212980384864504204263389924546665016651035598640988567592086420684339293014495857443813434214669832819266551016079747746489251963332828229272909813031702659952296995376352036075683579259860944489652923907096348260047113139352061867047484903320022486849548188408561869575855618246232651406467251260304976594877194219848049733858915077240334222178417820995755381951614664398862239392244415535986257780640237605650280917402364889569394577310250922988921999895017782429480175434818012187443892422829588146875646701636356278328250152977560912574258762665293217446840796267447474725435915920496732163402442100148508131650028221468405714442942232680980944983912360795356879311303294474895096482348199719592065757834756826617066852896413070287231403931216882042740939318765976996188594638743389352680433059763537641183049126040951508191998856055887197161139933070226978967223103409231214162084959125715351766851610651557415671954194035163936078714680259953467321035489600189223702002833060415016460283882586562348300808748988033188293329162159624620761867361363139332242401375901338034378345277791625331906381516439509792341915246996678546860023398361392214216495528801632657003552440455250274035959839819553686664130535611400625674817689725214539882447841441265234177866330584029576037007361564471732627148392908953339881142213113340167433896852487549543818221978457365453348798192715313710988996819768786884234587490390441678240480495854304153399441915932855725908964075398590927483947836912986550313841730234437891207312704653032634669573416299513058255879953901807281440497271176517702787494455310715499544840021631149405818343482445618129406244924280734768049772885603033616790359377131528022847439970014288562929580083894815609667772806582090415066593233057246845309039254288534753698438870453154826786927115503957881436581757862995842203624481530492740569254083914433063197675290686046410093340188194512187728561120025233131621781511952349055951968434067020893246457940457092462148327899295749630420629202733664688076102218759591799557534424341963366800668745110271458076400088207790553866264933803856585080993430848912415523989349394153089279750839519689189785352321422173252385432299165410752752811286938889011091555564789911666854265342164780720412033196351482372287022541220625859435854195394975829871568464541433105516703287044149617771302694979372529942045432174583088934788497587318745306911763959288473497714928687313357185408497042306499202933289880648671276171446578326651863938257377594183962523853107017040371813701931628470132529493682047914229557386490456229532728134258840750890548401129238666717738709438928019098351310509800159263084950430031539121757754517923636281800881258258835200617805040867405298658400390010490318694684275407312284482559893955571006937158314765244752193498602307985856615903022748322022291705835470248950201798711071410068373682188583333747457078332170879347435845206939539325442167423790246059904497409495109910600604798755184790486081686389531575368702144338073532390204128384576502373640285133368719397680279690564920515886506942601098828813196366473168530744320151727082137894255823722413198130851613443477449715171907360035430061604838892745452643913114433460554855949189474384604772556582711700497405801444016651387860475829595591392805418045067066440041720319913180977385852720696981160187397018925767452200497967297251065780362099624851947446020114213841045327330649544713973679499937010809575218795752708157806757370487824949677919187693033289764914666266051719544852212835296722719840902995300773197594300859278300317802667262738322220959099254673470411211735431319366714852307703067265782804393268415082347550014201514571674217786866843807681283528193086478226028542488474963795992271984594266919031520557577373413181407886925542879909183555487565493328600947460856812900256059022801498083353264052204981854669409699997054615839434343423893523061042114154104055260566640640517470348945919768309917008230970032384581199431163636542788663316109030156733230738850698598078905635857919782698804883932175164357833198253215754449183679093641583801292042944991848710478775835077287579404365704957720800459440794343681869513824456808157518567979650707170785845517035341804819615163471704686890043157166955825550681688388913850728878447134730573246007272901798499626998064159070049332347096063966991848487293230245640416814109810345079152287891009209533547262469278846426449984467183926815950024423330781149335400772034984530131913372624786150299921115761029036067289106035214350545025968570901278337894670682033045819711255805805447482984438317530561731382312287490006138702486747785644100292285785058081453679131746764233199248857841110143717686712339528742044461505711042722517440801610920834491433288705182208619039525773527118479857110614909690012175374245234737782945462482472966327675396945336632109655575455336557412714909517264091437400106449640713470257290044579493195802502587752693463406972178542719971441306209386450990706190452809821091346309043840966956435700030744176524389793621861355088152986095045194260842252690752505678050940561877981133482143994381933218192200295948996838682382508869700957942172214996615109285313693620356367666089204141324259283834518196124013197028377447991578154270719008156783025753235160419607570635144290733819470196438064328865294039874139711433740899247166776323084759133533691854072373374108001476104620405593205341859781096100638737885451605582070433652861966770120094544783972220671510531473327412835331571923148081807967278088879940150556740493502038076240876964298031418050176957656329201364128734616843515705235475809440189310373801104653950463893087636912646946905702906875914475622601786049982061308878941015916773388634995053694041375646185936456836659657130481012106050715401922042845453370347506332177816401052548603760683749401487445689268364251408098853761153243850640515719033045825584886696126919121197704622093373970862861803837405666036387763660657988425947444807959133154470554803462688704013022442648639217995340882593617955834488850514350127805045604446305582322838357570232845093885201464866145605020535694517862773661472636070475807390748863158498131729694013689599924979660196215442409296273760501981982226560431118437968046513058962116352377974537684030197909936065254639277313888492743123299771292480369363743408239751797436957743684804413392261498736353126456258964462666686726192909088519718509211964013888194012857035140645006838371630914112485343760467406419737679867770323557692628744680363738433897168971477046180163581971848450528612516716530213367468448653447139547153546585856546601661503138880018330263323857966539572311144895510879539332624780065999615124958144986479659856387531827916984015362000167516667475966596778193307147001596774756562416302577483513825881960505644458463268482325559411068477260738829565652373247748939884991963231712307367853868387441559337637855472990086367383773935167671074217454422133796966274242879093341061250836094527090138139731380191691437107516565848327430966195725958055241445977759418518330739104229854845060296699820601746039862355191407339085218048490498168176762334947536176570051935755386525443091263716715450643918450140897389511082167900941880245482211744950783255613898272401690128447874955665534107154923952815913666856785910136078736705320376863856294036255828162999122450898002257397738137073768684250895519165971261014303722883779999325584849903274668421261361086825544645459463558208870174929044933194903982175614400523753986132223874246446294303332371568094976869046383712827874031644871842581704367995108893645311521422078647202798796637612200936153503707055637599681941908664456387456743670484807058214675457601194492865717937129741748411916847722108104473992902750621123706372689633268892222989849105878031756891281834570089844824899931559657897799318307009415663133892708553744183214165035374118491138617657412197929859177570318712206387276996960700336264160618257455019542415482607386854592825000667439819244314856910087906355179638575902959107563312355177031290092600150140988137903958614565325382595977406839160197411523483463648933592729806244671039402887129729848673901319176730430160346783492195715211065383467241668888520334923225002921160816157239774337992326449298094452425185799235858989280277551686046687749141092803411130513779824348360087315695959098571259973200475615885463088994740868618468954332464483072069009057705718672716936118813937763920674251180440220724488712465237643679904593880374799774745737428549910874621591171664916518421225574624465729520873756066123069815746646879374351575802426851962631608812617106601163713331439233402302519305952765896001733625674210260774985892204239505909775819302264411288375669283239545789331987588627056694021137325756511970491746072702984735961375146524867483641265864063519004965766202110574117954875566956271136989009427344094166179413136865240550427275187143787470015794988541600885012394932476666413667807496699946028397978073919088568049428586568192651273173843879347420151408194716953531950054938929708920059533747034678236981941634490707784440843134925430169587547576063715838629072980820877650254562422392430770856510243923448787565756441379794299466698713881275431186154546961773392322947352305694594990978069127846794486722390413339280060472027720865425400936040554739706865561351986180700736086653762467442365809791374685094662444185106581058421654454422420311572388701766061930525222092192876348753004049397419896626524132425328329766907904538525354333460378587928515828110430981758369622189091212564675433196964790681826324107265384866663019874030106997321082869461301026040331837443206189238203558024227874054332156022300094057490157729223748629733764635849172022084177883451738862327339074358074572485942532821511781731708951044063069295328479893825262376403697320642746557137349451661810662586081090231001580764278748451436891530200332661825286174651544147533340056000824846331157620043412458160484433978133558123729821639470441101186081135937567758470876432231480129524286833597893404884048930522328065946234474112607386792611025378959474010563799858506782804906453328311926913755272042688555962320932812856294796892147136250957883351848668866857696343377575393411884422057204028734133016451377525947375304904163351624888219608476045147242633397438272340687678915617004854205004076147100618887055527409302603584521382906336476801483504760332073526420562339422631547704124259088405830989501694641996680734618566315921765493287202797099812212106209728914963830713254065551764595309169764310127030578411801132725473743200881281405844260509758372593805698891385512808599210805681136827129642870970587063933678513853994308343836007519804585358174038946942564744524854487904914485225818744298513749496165771660633794414101421881133117432044708356471331038015282691903067702148022946438883353795819227028498437732411249130586615047067982211358842721400833276751723859553732880473183822056611882320976023825597167853955189948992654615841177988970681682560160434699189780670331488584623290274935993322841446039894723698174521501263399291949097103171993979672710071698030156639824188661202950646611070934417924197214629129684339153747479003889028654066725582291582789940287091519016415916454430582666792720807902483430210366855626405123621302575176815767251549542755386045522593817015809963540511860799032751648930972432310041939337073838635460473477279464883070160403793722989973426746347945148591897207677639070701680616091245700640992275020169244871015338198244328622124906485477458323951693311472226991492771566734335871403031719688856938063889030847449872656957141187421021022975334381755880002640554829223678981859619788447732865196793563814217109145054786580129060568641363445012630920061032213482220696606140304507814811631851995796845077082758354568144425960002464901713191624132122720100187222422840218009144119781065373218558062112279733145186195307476762919817559714389905527327794911665268638786503626813693696077923723649972008363174148435080853792717348397851026637029872809704759515594984547676982471487642449869961896684003217664658707573744914102800001884032673135887521318864586011545226671174873740027546663046340041243084730294177028409751862750246058917736016439869657392270303622736336818218720135568890447042586737014074477453791306479589807620829369771441198213976169396141592178040136913984641004872004925891457651324779828592654417116279584681216051532840724242325191470994126277625570392678747870668662523717445182775228786060505365894816111944341479765162348111192383635434991496773811632437772773114192672493468147263997440181353506086059047373426676398714401645883724968294331650626431484763141548098572194693717878125598906079308845610402509273664332026267401030660261020808134432698646970363875152577756457678585624105552441163240200509560847739637690516339397050640749992307738776040142173050010106427097157379772636761108057585980237992222902071881881325185728469485901296037271557151311351991611486975185629474703670631113946623897408588167213764686168710056893665701856757577625841284031729473052544189334845344173383963432221959209771692245624972857528183022206808351442344878433693532850202049487937407842291671559398107392639028942530529682996563481482033585410975366161298102276906152817890673514166321654658355590425391423817417835667003697175708371933971823668499338000097039565572174576126319931579195650143948787524056133231627681944135712545514281646225707329695889388161334428178555767706326014442354396985470138753809585824376023894266816081205385391603318291304696314297268624468380472662581403646805018162074600538784698214764515863526337496192974648498635750672669611309476696296879319924826460850562324524110992284178252941690067552541125501939624450394773752907085192197876287383547767358021410374271600448778950008940047534247215004164368713002869518202311605335694356094324781062276252482380957307527468137135005535433815743607216045324584100375542759447215421580273379858206088248585129307921169185128818838233862471263110080648102754323159161235992149925597959013686149890980997033326866192680894278354633801995791745145658552237012479164700899413168906084319972154700859986787737683194820678547024958616330930381199761889615990950296207626316010364164467388874218130641567171273293490225925975647742900898203677987497200927931236375339196943970903410832639554849890992646306193976083933233513692916549503867226374845935290513403670342646196188256278495999809878183026136689612099569921439128640562135416301035113256006825072334459370437163638727233711623779447978518866551027567039273710057058895897508702836447071656011282907522337950123021928057917887283435768967042636360925638017148755359767359738728798500636516035863542652733976733433517992990414713460621485656974354731935963514710605840023906478522665340717836752113666336748687084235084609591515467896686898920757722833337163362290019577206224511693646778881493699589246843130191262047244509754839606595585692215450382476553809382154623652384662245868999877234500858650674418453067102877366362798078897960965127587389574202538150364074783386299076811396448217598419184526633582050570421613254899509037923073205578170480410592209299711178848647101846672288812257821654245670976710002338058016815882431873149870792004314834755088126333695270885254580338996986437910263919160030412913718978997707351647154382464219323649197142322421769000777135663196254303969008316206452852103728804186957144687295155558809142661818406521140940009331687813314516080250685676332229575061737552828292358120828462028849652750715937490930572697970041548912952340596829944086699859053530144240039121604071485717851430637743047008865709539234664123914172522366102114356539711324117990955554460019847208840727881477583617472106047299672101161084857369162684688984213621495327093628713774087280513670858797311817177732756205710983874165157696760265859388823517578881666386726756104353152807862734266448415586549893645159819455121851095796035261359228394179568692164350366018922323391344773786395216541559100739008124858465150557725505551510303314433058454007793303104136075265244335535934823751539403470735790163442254242000940393911024303986424249009594252700952400102920258669850256608166495047275292904248740742546897065645073427918233754473979991659369612622911665419649334988512884183045337513118119512229877878931689713959893033282337297677649290400024229863257489009037385864355823554841048492890809770595997494044725891077323502573052053884982431345764044586111940283030505129855115535172233423170802735717228808136733610343702931581816030558610759422829453431978385158337559623459065442998105710340288287222879465935058545728443647936640098994189844194742308557899832324134276494898160030437878109134497746690414483781504463895073013923120941519606065865513611622766330157118428142250123459791478336250943886332178593910447009227143545619387940523649535454687406290318796879355251976147841376875385384615423229748026191726463428404572169602134329328657362382831920017731307796151915392889214089108441725862567783967921433939310177151170692764336070244962712229463844720609763765014803890252020914856191922412989447882176850281315440840466651838872904783493344893705632517824510918388817029173569673968067059592490310349829467172435837320813742523690944287901482189946067486817669954180586438511899838834364408845542142044574014019375772882347732833892730596024602031318440178481340602845041363377494860791435734414187044998236235935388596039695473735641969262732520425954444832846939050004553690162024271838419308004220879024975354987213055863680985996346802265395607694499575035317249722251915989049562064446973538894557328794489670310786430241935987007566644442440489353787642988294127454067748250690094280222764250056951950874256322825364391925553286489501010014096055404915547439738789656112364353088588718668027600951432744672202715080482821906907909017099803386068872497456238471334144275574517255428071687853631429370756467393284430926279233098033617340764900250665125533818234987604381091629509958671753106402542091194716982835863913192136717026406203386887070854353214265814851239755533910184994929792813482938021409577787568412548161212736977164420932595414145783999245428466395420676018954331697180962319224926862550966495499801445323355017802431545063369737265829891264478771017658665826725572030636674991825218690505984838286549852187098581086022261094584505663495669364290828587895055205287585521269110465762563375228891445157197535022052391789128912098058624608982330598121789381524713957216715268318081952746073752978549148763048590219322570367559452258383427138657824940708653152937482659223938342637758721831281322522469807726857423967930086989221188051760472209256965963602856191701825885900975745961372670812214842456934404976980183335518410328285076823625873972481915663280222525260026399652387711393082460187285289011294979546933107631811599151631004467315621110065184903613348985541283060479589922980211649798233554898493248429716298328343127334303824106973587002968070703173435338125602153173894716277044399772932118584460584002633934177402589810249311222145615284617251325933782864072915852481839448693972387537298599024834026383518547267699312656655703191430399648044216918857233473929259662216320158506859288910352135491954267762250606350847182177741651329553987300133913224098217955057445608042709152932962981295724052960259985641576793689595351383760080096901340568329964679308869400040543929973324671664201357381189694265629121971048795845451632474840969765629226168835858340130850118293830483721968010855909960999542737770172570183584414988080638015289707484077268951951476634640675682747550630960967424839933800469129905689787586471575196582266465459407967431793936192841831436032349082787251632259631123205936820591773779227843606801383883940039673684861847549391296209845474982884792387303585828363779394326942389479720211856473180996828208869473102330935243256401820560938380554067953275803912865654996135699164890892014893787865391764900445331108700871841700450078620608976589636449786476263162773901126559658544508743047903983903176002340071840194264063944252175087686526883039497993375471701608497342588834154488067162663387499269640427121660900492362510583637172531469635014391028944742637269393080813544135096856312692631310795927470987662636253285325361184774338516318457260366628265561542167932449480998963471937745071058127566841206147701569714972996033362172998556526163463290349059027884431906846404253246883643777517944106590100225595808430447128295944437128128523887000542767022055203700263878500030978646748247303177245371696056697222820223507140366750913304419863057956178136971859673931670372116526699206852981489353316815858624600257079093868873408541515521520321528211127850906845468034674234358286869140005831698399660560786257985813433637268662095172559019534221448657769134654297808807192973204882064996223884806120208621003598221460463904849508021252647931760677818480479096837297546941046644811551114639111917689889174192826282870997316762087913983421439591393158901975566279445133737411870530130041494191341431101257361624495449233539868754267475686842803149777480259977948415186264116080853055185286436329360189709788411311940485242429710610847902954616151266397310134448360152772902651188802814122413806753785604302477976144863837766355766450757690954421208098650170548434963903927221450833378684597222648075675293471620389458980341876959820199967863377240543399866115560431632863421926136738237472603444564209408850319916509324211008939897210811573803404231353990888841369038322197864624408008951393233454443191191377993354838058539607612898821279311007464287111857997217355693490888467356139788799042222891602861213855746860978233698669710255264888686026986335727081770910951560824743431091675648662284948474409520799291537528060728363048822644810544299199905285151410282066593371857476491095758347355559764630178192257125382245862710223260059393078847005225501009826075511990138984774735790154956467678105118233968796285616216281431011774110403993152346532241042321109471377020279067372939201281933393703636124705695419680488229938118016727712167242888834515285508954111469153961049829016123560154803680381258360590091905183716557907962872029032185806170352686105357077349535316331141097884173900202540339038509898986009813006050500637264720481119921781212500651559539156970499469873403890055909611214144626203047643162787942144064045309691423328747514657837249027529766900878031015198658911021082151849093993976411096421964882513893569819785684350516343368722371776898546181958596952112890933566439762687074823982369827843831807850460435053088652282873553659054603436798552652577672337409708754864257704168272001932409059125993089744200160162931409453354056411793517507834931377812560964623514536189558487691680652320784538577291247976544463179817997229924533974201718923192975013490384321766236041318825506726361278691719000260334928643521944738484370648852931928214984647589663034086183969865102639210939699495957689325900966203381492728127520448650774340438379180968741621878365782618720309278319841066617048738363678900020959588036320489936851673587435223472041965390711255541625559250285709364009415228553370218500447837693407691306292256144566235849478435965011232340828350493451715813006109994985669086125839283946165016335778437790484162760215515707092407060606888752102219749996969890502102083067131720090002618022793319836940810115214570265468336197497980210403263944895106629179573180456299597925108056282365389951272556608780318087453994523807569282705396869405786793364054256370824763968983897438467919445118830702839003275351690573290989265799480026335267658081521130796276921696030313052495486651745651864829539378360897276240347566110597900375518989524634270111392197275325687492120268285993358780210639874074114577055507723074183825888662631165043331693351517442068550474726408024741252051072612613105905762057058037018840420715194409725094427535565528369983820508362906683790599721583769614365279662089838386530294607386818725152505575686808950616974187837143077062046053913416191826024111182483727381599155277906111355014833959012383769062987518247584359673311988613340225316039572059016215414736827547625526198223050437344315408255879238083595388403263756690147703350481907919815927627654173650639318148548973261238432123786076772972447777032871330920922224033597685160549148158464424383445817227690507527143833628161941907840615261056794919022183988623232303196476242175874086162248829818939673201198814248994554786919705475361031524781056714325954890780896302062290314582737614028392335549679982083793411682281517792306866580536231023000221329756572336375919322896032712094005924694010303353283165087203911712381303797458138427805539276570019551088581127741120435453373031422067084069827004510608607202907743967368216645447566733535809330346185065837226193356577423701520259053385062108401539723960458765622038710317306934042857754891714580836748983225154534275850225997326248924666182515471200887723896464449875506632466028934025382806424280370796871702813038493907601437146670801607618552375195995546343371159485989094990283567714041043283002930007473461723913497195603758414375379362150130357743211518265137629388791383428645451558254691366894199628019492279496216696543917728524200380820472770482915802628417022858975974109361477434743101327414177687759683083144415138048347702697373218491264998949944119387880245373803768334243385446123208525115621774061683256975055710697547083654690855998701163104077017809900837936832269835609153609746286549072792876490295713030075940037710809599370257765605239310340155515900079780575603545744743327396537060944634022076108310270988356578562866207261527456601830870059114270334019556020110198259958527576365254760282960738669566191135737712264976337332439578105806433129832004192507290269976390917750719389308919850658261028268322237061642794427713200479394739160574384568833267823845834571936833514174421838977044530456128207237773474070725249975413498360014279836962235015781307411648499086867651730341945009987022780404383760976444893240520428980155186424763488742504392982107094890138268663651183618799458218959809844641596448242335712364615321775834081103306762703929950978416035812176494831469335792357465717691765318256584538717757525761407341654608866200864153399589635885145660412761108910297220034669238581066059117899069242961265605152626393075623332990201420338720994929375053809716545336404505051826334088888849667667733641601245284878612843093862684294375954951293142258222946052909854312275225859206516789560541319291226677907882870852994538642970594461575934438705628467008327811864298617859961042330968256405602937228871300231068737512286846680887369085242065854068496814995984809930189400439824824569032240875216515026052581465079552261073210935782178660802366170003190766526574908543969629741784083543351574716188782575793251673248285086511243048817650571369838049738453425699767684969280576611969346374125256328741964368907424392484347512085296125443588551099689782984967522359186494797929177987726423357221929827719801062284320263871968493209110167472114353820106341558404338559735982868496283715302807949676041082891419852236911777922868604336263082756199219367555384979234627167473341218172985628479038741566159109399625828119310098700285173025516818401585382847777758842781029497146451172211741831936162372782155232674332879671728619156354516753223390561033755735903166074727881507669999610692288452052109777232098157874912956871963816342157026899544667200917777610967446888042171050137489748537509515960348186898654083484183971621630048440799354490079708461415004094386850412709669491652125038271303777799760865136110460947416202458815350382554318893970780723372259384803209884928583052928096743042987927622070087018840233106121872743430952588853558908942161964366207753230590794413205787225881852123889593242334648581434760429877339852112126458289552769896649442134689629114460272749209992493967278435692456269503518839978573812887974486510238571832957832986363887339192993136808434595851752910813435680337207205084556696447413241048581887838838051607287795126654294838185275336627940358437787938889020886599877533343464142076052877800312047828705413460088482438415634438781289451976542520540004583727400602014885916070561641223046391488252928414359667799077784312516370368536665921095788694358683574252850601874405932652515130433751955933570750684977720455794281834899917888247389819834595318855953902342193224785818402311348248380085475652928951007658095848561371648284901574402593010150418611712162286013662094160663527684946774250987572545894273478660693809330462390573856477845065080532567676586732843891818973184886145449025891839222909075883117192285466356612316720947843960464966353800928656260986902760739682765441327281630353264598718304501340497412047663518608430274826015307520493473433613685847604747533181190312553929523123609346307563990734562368308655932230773531565763283806868290630553630164851098636790253271330741356688341612701599650051593071042737181185570894083864507091488530901855280407141445497050620908720148480269766062874419271949093190655315324434900238221314137294434477426385533986909576343289290620105407618137569691457846407716334829211229816102094934055857324880772301314002811735101778121060129658309425961649185659090456842840809066187182849276109601730016857164869239539819041194644306176400274431597931240056008428505330386848263602143361233877517067113359928084643234137923784971028509939584497112183017279314963648780601120869973596806120664025070204794279717437244495252595065935683222578250107823670296746683583088232970060589985016853363087171869093972762808315939545482148126385862342985056952087783755158539750857857149602966845485942857488252792245974535547887576724329039505090486742408133164463489793792686465835652828570958173516712160644131545126926927858473177575673003425403259994438235075401150047168260852565040765552651217317878348211080249115319602015255063759944724544634202504960708555370422787533068602193737001106624698286686725157724333781209895414732249957193034272227904261981345655988830085328391218994738153034056619375695764047792303386854887898733132367821535425650145910880035995929766030438023405690782159860634513400360750690095013124627097457928824579278500939736986672800649908984710804535562159237662687819885629348342381308003249100283927427415795759012420687654387448966849971510645132343138184840213432267142267967796778483089819281745194429465491190488916270228931288729228538324834380740727573796806810205230843138723775643093034154297210426216528894678453534949694105344480371574025954050047378067721197038809304510204980800246123463251683571530909062358946918591460223276276273888422019395303937911656498478330149231342580037559777827348954348860639545948266451222418243710993986257731176454526522993279296136505530934892929434588585243989181412741595040651326701241741378253306345767297502962151838304198241074729987416893715705138440068867213829217210358651999530520331100482598134794166959753263292403884971904035763444556709778483144646340864896028435034493397155612566486440815165594287536067726491930327925607211817712628404130614969473251331955999294812624327478999928360278435330618468565920047479416208048698375376774525766990049893481414988100726452752657331019117856417546236911425762942322563880978885608319415142800306140583022367648645647271738019986056037855282106100801523094103684332505776939366730183954867040584638278697166826039997815054572334448715531226447753803201109614027880893990228908329969096090333711771074068683486210420741431339451757566341211642064153018876400615473967267202302881007674287325538380706836629731329768890103257649236726513848428572260163478837784119099476006957187259162204862956315925020106771707825035190321936992872763883505875643600617453425142122501715867954734003427645872674425486978051078367010472196838924227776425778549708514032684532792269609629181780316578665419455711529226881019382341900824607554618565961087397291458404067098068750608278748863062012523073199018024228913863135295438332288203547379013497294509572272191391864436119526533098366688637981068820256673366895783947086072635649333589908516963516021094678073966315855526220161416505936261054308125017089267094364599906200916162947990966472143970506711958683878697479033524406061848464361553948778260256274898619310917504320672387441940988171473371783051037279516705611415134920130722628206299331448007694458795428219856251007728870842040897124862919423671689313567701733212948462149841912569534158555920206254687090286519582315943418801132059631163881058787689834775145458699749242990465264910688485597885811457816364422415181434731918166879685187237147181589474821328570361280365856965991551879203314971262893685634869198438810467120758393879261570234768076096734580671243883404941559670295309831562946506481699386753572922415409820348529654136067008810263816835871204927167354895544694542481588764432802115948564387347096507937171717381692089942887282859545340453588821134247444680008011655837257599014141442313544054790052027305162147186308119371716437660806411814386292782553031075138778412533058262421259782898533111712327541883703742537080102686656037119376623786080582455812881174230843879918420811963730683558510420985449151017181024234092281442844638857629454236198804785664863183919870966342078442610344977993840051503549722531320993808224173146767501930034381392846468126443410019329445473149669968037312205468727371228880330848504749046101777643380996154076801051633192503908107809832153113189059350228963103930964836771697551119615607546531498445962589563800581018615521578378531044327298948742085201033784298805359222529324288322571529920737550704412371144551768801014090183327506503517375386799477982903517128701540498254629565101209004469660368939440770540124081526644868039677756230504795049486807237918860107372130161826417178676378200064252924059636934180303026439780666981704259900062970904842553246685343448203892999206988986096205664535547274900189530310345651349837899338857578655104720905709744216707746094446966990365236594789704932996508954504280643345728485002598867841295528414064198390650627905870416831804012350417203536542078723208943636559814419927744350122422329225283483076269957610690541482697678984639631515688854848598621835487582719028283118080086615076226951937883724343089514601022885770035984095335589791931302732290877588201279735308496462483248759362720029718026474729641315709076763822715493073395703395968760778821758362990036895394370243502507414088342037284652157583959024361096276304663917985008231699704249922272362789204363636574537702252774616915975917541802145925074231255469956799575243826846659077677247608468764389465769283762762170115453916883139280864169061694651628558811801767017814413470143114932970531377797721149836277992658785112034420243151396706457711603424019183981130258223745257726421925582407896839709172593961867462433663678313643013783035897056829416973686414826947554348837711330406605038425864109379978943542246476974311837664829730398804391743552702056570815614469544350193961665669361386141818444062226449201049838557612398179151420932691181147988457621212293650434458608331330316373283762548421655304907605130087421214511689988906447750690588145188089297705179732938548759193549150168403622395358709554043860873705133898412854130600707208027418148240496521253722400633683590999608384208707921755542243113979355374529969416036919957073176634084567757071797998565962891528304045030581359840782987880459989899609879203834514600879346209196511418061645134497013771786550632311628197752725089469016042167002839935693550233080497657331752731464517507352395786323581894191340146843629039485270090455819000023472747013813890905780531061758812576790918699587517415246495545153967056476993371638346464637585119573316922398263674641403110158058057643419223077168761158390998007345912679454461499029053871433162367121787011398681761965749918762047985245131665306059517121441800245173567172196097228283977606632058168151118323283014246781703272513940740976647400038536050890329597089605497009363273588288997820722107973721808768119101079436586938359114695323598569636079188570591552893555681968286428773527494467878165390218835201370227500705719456260010945761163566358175903501714874126022808768302354152741019261409842421094328537282155916814411499029711351199356413513960727947821835625569842083387757130642020539891502813499069393372974468043400802405658084226539085926786726464108723125825542392185744261278873089057278047512021266796016527089906885341685588255119559334765370856557206161882774503812290368555802886927919275798748782656655033747714370168924321772139158795735795221677133226989063095195426887014263387550382257697038796226795203119184358822219341695166034499090085325095826107900970350688485028598230368441339595215425560228859104876684334745373057678258166864451847643382454188198970729459136379068918453959191980981148446421015110482799578451534504336521907387331620455395467430439154462964255728108678886865968798347840128067605172771671654019600923800286923442581659161048893202545573856301442396773588435631459814615355598608813138554561818060181938772589250474597548900073460707762003859034028877669873888214264932358803634656597402623720175811965004289855659919265159557026460588934026877518767757779173591590379026537859807149486535167701991423977866512308211877703818452820864821138893369270234710646080826527786893791442174464194281911653720004641694695343915697298066383091475843471268487557474743458342513341136982083817311135481002929072957171974820168039720725988889868854122585642160300046691779543488027036627390758361109566769413692221129468209882481908376351909461827580032783227372199049160648281127115192386226491250195220157982178476866516583243959805716223069422490875172557520984312044525444105914717197515136809776457622545709108197297255000274529353619585790526924151511311827611860725318724191071397770646450774599461192040711540158901312247922061241894028736488702500950679398144602060622853943304184336207012767597519474826892448154796915660308839114438202606322829289839516938247754640250809106520170666216703757250446776658945920007536283126040467982927499514710767777816886598936913123276286535031604578827570062511896660334831477374551423790558638930212721548079180409799300653693968103805980971847605652595071716500811356238838734175377104730247200716085347281671265039495231994187834674862893482187384196416793053072994152927505063200192562898541060157253749172260947247891405985316222949818797652786655562879692845196066336083391080570011142465148546030516153468769880157280756951782783140045818376181202438115001903041969264974642427837774416109225035475207577359493743423067951778124278756956552352272279108048643197786465636045629102660749795246413107062344946437349572764799328857141415582654717713781230342098371730148741826593573184887481594210298245456458764062640871640894486209023288281773410411273528720537593692873949823842606626426119151653550724025750211801834904337091429788753357988923076908174261296849337726487675382241805418198486151370074785174543049586426676519207771967939384717323628867412897367163533002437281685976541096255621548758126080706510682003774524410796043553308440883823448959409404459563523218273305940379397339792003126625511502188171228683558224515031758292765496771996758780516435285988555516968255073027791739423586035623762276426974281803093984651777918785114684647744325305531006708053258047453385978998137005624510276455067377286081617581873515324428689785680492327914976220111046843935427974242407101765265474131993909192468815286141787049413623975174994947490894707312384886814066688828082871816398570445505332433470168771482477752237402514960156083393875807680199839827949172337744002606036577521624935960495037176066453758902883292531540177158106986176812958867390820543912502147179538304900320365860269298271786891139639678639184531043814566584264397923600878655894206712434252312628102281061896566050542811786778626648960792831486237275829639668495898778685763256820105344754870933062386251403054539801665689574837007395197519752129992329743314339950833960791796858238097157104476584113922819836481103918738360694367032542236540706507509932087760917568566792953235915720145373253335608747636739519527420144480717088551676513393848910426612038448235943094677446155737189823466969018965130950557371104640474020154012422681805741933720891971787149303783260109317949208095792758362988100846513275817975596059298090873783214016159480071431522214796713886986167093430776957427717714134105213164418956392295693410274285469243737357826168792532378451207148359345502071050562179742337341803517713005396890870095610177387874585512182353271564830223028358251236738346619825300623610456359889181453545925766734751750270834804690707010218735251504331021497624266126823189886893663672926177397621751364275755527775579867876292215637690728588585659785077665924873345510391486480631521334734483572587308043184782220173555173058039818360165550365776688044890739623801517006492022735727390755789686132539214788601988786153831446201213514518286097096141819883408523464775587747403067466310432658544337750008880595484170987499023333636038304360320752419614657818580411314962046328064480140116876552779863390569014621904784800683981538116552287942227012876002965795392967439741598120429855260804739889257328272170498797932768886732988664698004788843534393330879439563659356456169263988045047006574832919999635896629392801520866133721910198398946011892134358728982587314773985194370768544540010543513718058009142974773418168503132236823980729171361427501774573512108791175189190321888396739661842022563971750569393169068195460542334181715291412873503749665558636408449495220138493565005150530719483859850888411404799530798347025667929164928351247381738484268071316136988604600112578137644653503914612986571053291503917233908380115292700831735383802356300928465202875165562607751032168397902137517542841136068326925487999580177587581531051088479227646782103863970651109670480232690456809586130558065715615924494175199948684270712124498179710657058429086522404597276333353523439721428152243999469744848292474926039199202967187983091827867837047553186911362977053480303000439956997989494162153809359698711120127103256652663682883965823980660066389075341989066994859942077307695666671293705384659579131997218157620007819528609864904613789652055400785515428450814901804011500283486122548524636023373345093974562829495255007078853954762652772071715288016936084304251963292730161669839490846849498685734740131456273376767478672693834641186726525833818153247532374721786378813029222242307857245987289149450211943738446530793662069031936925002274465282673838374370348418070995630538289084672387427336827353152788754579989680085570079869736303296347972423242799867497529297965848819610654387281395976168975311113671737034957682425721186937884780105359612923828131085653401982870709260223330993825263182664385559325862669373248254341049174371406621935635916426796027167433997789492254733591540369589294637453696983990951690042906249079607832850999473041509388193332538398900871675203983337878229337819246621730069865246122770536610839371883996559296592227147087367223806352776580503100391571822739203571022405405488209047888030670830648297249745069549072300977472497733866337323952779854864359851019295176793803056347263892423316032548774733452415332084048014837951335388773578034118082076225412152461236568368233137181624038246450192456056432039093374230397008913253306864904926263153128154122267846434281079953244711645478372915729568018829201602131808430636511570239186132774789141103047450726063024761284677777825097586323948991719656814330179863910700178557249270175930475693999023493295389146402887998457959261570309705772780908524299319703017166047519746255018819183634920882040500666612999590970175959166666216012537461453045058832930200457945949960426760463858151064240083827551128840634917854389546102752738715524771935825311273764715460768818020745030602327801727858280043390483723374287648698306718781785283661683174127519813480485127466367022918763519342165274902069850727029578220390506106784726143140281056002028351340083443094069217910204802874251872773019347362090919336003496044879956195610134690773613956727455268353563125786151876070767320877289767525335696987549915714839036041235418917113058622025230243339640238732943492288144887405245327676280801563126331066820976360865463597807295460568478443816866940717353088695452805039321237923779184344916109826873420086677298333889793219868574067596055943029312696282021673559132136243237734838071764745108530073812482569291370375136562712818691827805257424374046009135154303518175622295937429213140334292080563581267137100937963910941025552654435408330905035223607821579449938247196316310698449010070443375572263120335690579413593836920862216663769037285995789064814602286153416513455743764972804259344058823013975890904369862219170807385372850884829626643801464199736869650480114649453834517127907843737486711225270242976940269585279228872738382945006839976663321387465546089378572864704374715192476030579348772823034061552134931297173684207245418699456555608279222059282849084116103634894623120859286816830676180288545723027094259077703161666886936243680810182501269718489715660634914498000265144379659514659380193043947613182591768727305984322166309787386325587535323012212541430911959806215472121894529554151217849798775940399336978593976170800567182292017127122756466325693186164441526657752975384707505522694242363917075213378658154602366558628962294425410012220289042243500636641310595847376467711765235252576059663485708468147623598830181720074621214681647633162565181785006752687058295551691937077510589978275154311358160604999532344601621193486067657407080218977622356371841236521793608951994536741949929198179215561421271941817279357190401460685548885979415344863631130154819176362242405246815732730037944255863536037654338511890175442036401123679439621102185127832991218512960343218947039299168894056423684449406649145649143790779235802595387356785985564697804200888012196098908571390043540101381706500349005335952483528116558550616771785493972320059166073959218431087914146011510722762247759933570749005869281934199529398070666434992469161243902411465082812318164605374781387944321277658715921768124732595865849297516290889030233366852722242857226837036234954444847878195936954891367796699052673099505406817018098097692677141814513399316349637109270209773409860024967319349459803137103435837363913925363322991133516313775919728542244214754590140423821030608062973648796576673627025943986548741951242460025796031318759127417594539742886177412053318325496561721769998630159062714537951271880072812541608791482167016179699806426537801565965615483299331047095090790269343887649096711729251880007664166419021921087247090422068598779076707992362482283997843307493597335527101157014803801963047643698941762829991971895167967398368159477202177151893973683003930550636883045886280026313008087477777446318944155373427848070855397270855308311164257331197629670921682241861828363170155228227424513784839787506193940794929683494053464522923958576050044348392158312958377337940005850178995481285488388068921313058339501810454238372736589414317365158097899754600201074383855029962643085699351879928761046557896062916495469696311385236999595506945623505131518793995733290589835462046102661269688107835844637576707716889416142581286007148358286302917425291078107217023396273514662520123344455943504914587082277014496136839535643359369050829494618326633394934830120668135169376028711513597438415080416107348211759743491086396805070332813581515137880488682238389072968793257998396726405097984707447272416702827326406070005140691283934795028593686369375233877437168094401881745101262554231237007399917713808214004307088390755630192074458946315823157084878447587973720566749830763550508999185404927595001665389290506944499381539884081872936278155846649711666282950935704574140527233049893490528935123503387046125960648283629747471026260091765336894433142438447124819991918337986001874572561888127159668990066630436869860512338691136164280251477379400413174321007410878008843520686107330686068908504701147473306726559877925067916818517889636121970545107840680962274070309531734066275643117925286177182698028315284671906580397270248046017350616685824355389896049667648121372734674676625425842804352801352523846540898557464558544662790456153616973944865272132440321229370644728213336219053380162777170017842480265912104037472304382106665587796801431946660937367983693168313762245844206018689562749436266332392519937662018155030227210048788151026428583076499676562197459697015124366530670128444628382076392362253354311346428214162601010284726664328140361598718085798077885620278623692811912501310969680512266119523861393661760252750105730693229311379789209711187392711921139638771414427833151597219501663321030595040925548312381272755120165209521656561659029334847493033155791637229681266563807009635450883775874247998929700511648913299837611688328554158680362327350252386115432027251575555236806481659783679671121279318384274824204195512241281168355741377470651968866669026551556362070640725788163521161887595845716945060975502445613300412331511137587237700791669252385531206785233261955977074453481990929749977862137353765739988181386124501310592542511361898334893312315881748250168967752831419561521900389593761217493604989799646481255345622215861634691554691285767118207293571926136435724628538876379805075431340973895129855176573966047154017728268842173789128626787060067996051959246009809074087620332919790936422284098206300243254417080106218820297875471025630861741485702363019799395191018812928803466570252037019803128354621036345956060146098232718714208589723653718305361530951480111917810737148706881439035810446579001021470331398535387705468399057755528077346394737699305333034936048221840281273867722660765129334058063491781888714461850568032964372532556863770425909196770540446281941918864834943486335908125804436889429487798458474831019644479293968572097200221784794098651294694813977857028969879399291384644881870578027706418450503750617641046726169318676384830359733699989944503210325160017723454278942270256612945173473692667722383029319712008359415473451487322886212424911655071867259589546613911433619040778037574724416519195875939134714739242196609362634185507023416115381039519644743128529240784131239759295424717576559475891999262890502412935282112897396059229588245524402285813634618229383754667739380395897417885531422598576856171958230463149110081119327424904165933418959988343571832374789876897260344867403487113482766152771890911295379661674371108218432368345956890550456500829459712013491182944292002894088794563970704444904071651139172884246708869935423431363376982227285873130297686731677571598277237711357738813261450407215201939253837318748170089367193349659501208414409245398361639166469863939728974721503318669163890495112586555508759542880116616235787153399271603687362398115995799011815798412663141615544015650458396192614762345028031670894016729078147500350253953889821820716011212223869419127754197324297134353570655276239049804752762299997642923404181054080605087575819687368681431617295449525653092046766673813925140006501420439065453804018436602678660285980784545762962897198777139419529965246906202857931326309811110672893363463178528693940362824259125091319272798399617955959032401861009274147600189863044465006584261120041714727171215516210124340073280518403162785340165318508177811498393492465446415092297354789208145710294365995757845119600154554061051129122513011730642600814292719595767966151369948812902914912846966020203162637160272688920487075269886842149273883662355461078440378694413458992328892273376960596788003160198285730134999034938648408670389058989288569220795426058095337467737219798010284918868821684945677777952440569759866687533786179009047836867934283824327601824948274857265827918049314377585340918231061958832977416737608169639198433630501866293438870657932208168520117065676012072808239862066731326822492918508739924665805450538384987420780714671032618859504735514942111831063391666029787339908245194157213964140512236986836467983322136479670777081730606904178979699667806517729217136871379718509870217479062172035670975735586302379875430924649969801889357499009980596465677383838814064955065403625489804517343791499556649690472887827947382843515205858847920302092957544977136349221915362273399489548311007991460238761114750149256703156732626028914224946406079133615439197767913924244558115417255806308460137037913408589392605523957836542536853265250493821317761283133142395779221746464097241488131181720385713059587060949095365930207482915516012587206420829060008619961107561373717720648091078812007303890717448024250972860755402176308459954531966750859812183772203005090001712434405133276835629780695958515254022788851463682138136403938635405601680424927048268522499314735061090065337183255483871288455582243709714569788416656684879898711061062397294266754403119484791525061605588705672034206978369431855341260101934653635818673014051014011557541495260073015118109765185130356430704081772080922490409680784835632729992911398845278772995150645066403544013769073841850341931517378002379636898736885978196658733075419930731629902829269565241171933796801808156328754789145748365783579829071804999999332914560138960493599461079234878218620061995861072756863229753715154749841462503473520170395082771879710358179834823999432060997096474179671040423128354967770778423798806984176511365569302675739468077798399034155691060593019065411204256290594246009636978623879715495077673081970265084956272496938738422898228973488633788133635127845587579982539103974404439593924303662279701501641486125012782317014514058811010221061960575243945903223973483801806801405630280497828628819025652423284526985329654245124210568500437480812555201183446653641492766404224011988914718276601066054238887235325579104345602443577043019374272035223625017384316752138620359928323384208263005021826095703089473038205485278076905190794513709421604510182058127626398338493061805469683355707282623876431142273828982462751487613833015696157933414745867257700581345402832738871053191239639417744351265656077959428769880242012638178074995726306235859341630639825978308028361688240077476750115164840602409094350694071229217526104793827677497728998511886746720434952499111765232181139857788461773241089731229178080833562890299221506980938347455920683210351635227806059150348075509739145741646987693481373231359923285287216088345133745563023657490033028294163115074540762356707297985096775962215573346494378637307901335008194793355359251242666658594987206111180475889907498085423932134497014468919399800232546285688606592492522737559480117030680090169965611464940673874280642473754869506352824658473426089356019114993316883818257702555874115319383000499565523991530948631245158055110181618524179882674376533908969603552849056137507169884249088764122897189797201808809181556312101457305471549083323682757035230248355420105122176895746796197367128336018836328261536300502730361293997666649246006681476082320616801506738281614484400320552663025232271151113717847946198241692096056801844840619080657892139523573704070613660199917781471938491128710856038259380994849637950129296370006592651457141749745137394904195310901541659991477355399819422944405115052229543652846015139290277650588127733988394320376621367378424201253335602922989969465873671910309872703375292073985071584545020262248816035686598131884159415326785503885492883780010902242140433399628000934717374538121294362938126255956421946772947106855479104970902758831177764733625039509982892505780465915319637051424709240923947859176806565169916389663764089196027053452974895771401962707297527633986823334020567547121838737672471272097701047021419273470693674374665864951067152851936027340896874895973793993700071597768416009662308636664303120711651559829885873837238752236546384089761274456546139157953333471490923757818543715413775048003304892208116822066236848416648027496420000070869091166205313774562328869355240429372608182187146910725688169296236363388922552099957095571682690985001241679268641069248241801448473436506307545617366784627004432416121054869973623864826706368282944899979111275684127933785284601306816369176532866973622987425771647519912244321590420820758855640693161321845405913236132471300579659951271930846298083270475164947967415294056831729867843694458606743841879287486727514904718644573922182116095744800852088301664437806719425421596015223573057192534184900879007266339499934197589343008237058413380928388447996305926562491377988560503229792912190526079547408170826377788155951120793840358919117001402389430707452169180614095663732451747416557402889268124202876771283485363569550370940073602326710629007853738781117335477659768668891025995436834109774907865539867022013181066784811673059822052039628818399354894024687871993687225317315101365709106397965952464560957861001731546937511567873596989403705007919752262642992799695934418307467744469184698494565328576748181003424645352999046959867831735465094284130080817089487319475214058625296301458468297803847176490007025661757923223071800455054591182609740347463779796843032666108473537070120578444536115827735224244969100289842040554444528810578521706195219989213165364822621635819898722251600587915746589682310743186665024802855457466069158590076209446088997328291371533920516616359641794605430770521492150443294099096087667860631908139801836882193793670756734661604360562030820745244098401298639433738410753735356344399828685243186207888311453528907589467848569826957447214670223403694309480934425470046402148530910070993205977289563510293328797833174481479605301099512940331093940691502493728607341482698510087777183078136691961620755413240717741960334553773758772377134987190002368949630105563307542316883156716269139907606002479437454261016700887761903663745733832898188239573658871598351929315577630299917215107619218476946242251715140776792106547302897847856903291317280750586393619353471695900455586877794677000528740160035770142333983964337520002488476550073037903187023209301359614380153159195806443375668496527347197645235580566599973875976352216631906327046952648761000733855048909842215098972231754343082527811843579773264290966080694422013025282932423015968041186280989102584721818501527032126875864934634518882309126015676919066783368707279759584844679248498510976002501527805201911130434916639631479808586930168527843652899415375483961181914936790969549086183129141320255140490446059777173517893608030859139998454933330150602999971922771694407740547086860793974695284862481381621967354590537514475175148583245941853408298993058186188671671682486328257970932538698041390979540740148967442701855153334745039648434876508574594089454141503197497269827498147440428744494485678088393216046112951312272266734297875671235518032592860622013139650163176434499876862595634419001747278555819307386335843479471470705241103328435725764036724411247088369778037581667221958330039895876795892544290965814263119066996174977715710401274002212385413104396867761188715973383058773566705635868709577190924589393711744300318333257101414775399373156253163851076632913186517658250510316474508483959028576385268200771033680194093864984602487621398393174441346919222983464292137133653157702661184005657744624385133287772607062742686985504798824259522703419220834927944631811702307379135438246871762522502928847628614955031650979984390283022420887868762993743950206931939580074077563575496354752246423911126460400757483735876426086644260061402233324120862848174193797334988113191747555311307765906329026288155757193677903246511113145398243602882817976825940314769470987833717702442986083776735690265699957057031461448284447641043628237429218996069358375151979422433901921500371767649402002840495897480011530843740377495204254009517717501576315216151145074313457054771097391592725513025525663490541457850298642939359030946714964323730049102154245106942467805809819917291047223008738154625960229316217852083009105008288968092318197622394148003504556203797020683968357821833633862369362909848202041582941211677651119524324314203216841965147109226551639222464168587136575645315504224443794746777619085810687780087234533195341599250298205329547269082068810119737146193117976769759322117722874519178414744484231737320058784371456150966022173790106974971820911084876963573182798940658154114959138389554891290298175948643184828971954957287304405804048856717134995100641091293937377623534746634289226848371911097722149482345022662387366648774982191511414480284602134341828401003140979854990334658217984769824512987035519318231941087177846101954960629369400072685657027968789602547897203397249763960625609319849470890095064062653041997818689861157798069315688832821813435833992195746773615306574624594333694842187038760306006078398700517833038765263987408839036110807416457443184403593156407417113649239369825462259949114092679558964584688100459094991579494786705804989858096738249595499129971180734538272522912590003386175706966453234289690209452979370605422978628180093610295086723515862703562398482969905253109907472982486628455825451931610600040729507251861759784290234502680821853834260833011240236584320647795805399365004134200867779307361158143319317464228990530013739308333225553264624048287854601312255479241641371384814956357140398963643061155688752701722896733964777208108477895210221394357916944043349554488372345926841556968111943101608844318012349729423494708447503723213394868751522314557798232563449796680841912237845328397718449025617075920659157516065826020891336837462635430411233648484823915800479651583404570188682334251847445252296170997936917666565382606101548277992926561764288693444034423742642814925570589004826262813324412811630137738410643553481172728490691084983737798261589770504342129426013517269705723456889311960496776653341437313953976313622621717966203147635235734241704360396004740636376083951753367054016902856552556275882645404209324760630774746302585504968639289249050090224970661068151260149048944402196666866505884223944373355968303147560232864031516511247360299727901920839657144896432261039248304510434590029658775803654773140159778265811058715514049461658147375135053601243434205667114763690256104761985575840268148507478270812800746306307563040658485148522693653042478173219694739674634810839797566456555970202165358025239726719652408971305714256117112361188389822944066618048284297604098040541935351157294401004379624721542005220959525653961892204045787651703422086295782432945522476733566975523385446999809927349182268674667425233252356528587816109823853826659199602462337029949955556522794240266895670568823602123064109297495674201530775251333294521728803759891529380540375416815521378807055154103511731353733911529206437490092119731593529295418764413607366182133863869791789673087150103025095244263429462464264319970989208826506904045465185571456527097267563512690008819145667503285733839573666513548696068932253144673504627828697892138675352165264264190493420101396241512396099851099376596303766116036618460393928141143107095209466364023988238352754371531018521649526897722633326028875268111387479695618111063402615374491795804423905049984650237255795407713258231382101598153759016013437871941837387475604397906740481349183630317921746118058352581503835579751943367933613135023158557682697059743551273569036296742695759282125236754173082991424345662418473649456170304173479971342409605228808268123597673140642022485337652486069803833023140802811706267958690544830328332650342390099431752469535698534452444617233578090611743447230880518998508053994522288335774982187798649848944288588982794816164359780105557139980281440622087730183893643157083176162358437705415974509665548672856920396424006438320286222723960988741113604024680216379511744459018857020593873537362140232913469785460673294176364378819642785285182779250472998660638586556685422162061877013002208434104918347266722928971222241306484089988824159687654423853863129846002674889745178971755621312087562648330897395541707523221359816620112201642327729601202503437249067880518861412926521372373032246343416995064772441668129077220508631946103793113312037595145698034163869555124610317880161742000869651799045667198732262892566199495219447769827426134704909702025458371604949169862113454888938445174677819355979168578791141373935040195089588782968587701596401887065614556188361023194564785321014933831461405317017072208223600491344365299758306026945571641242926196938400371609737400463549156108714004107056090247693532410036303614136815949246238106768021947991395556248480338857002229575695533726416464920265482952250899301561545420406765677341084894473149565662767618990868591331248076704318020260458472585814891580454582610841393409515271347293696868356912814806040882693584588586437304066138166661275760379563603606789668888049435926744683011505634187200911833669278348739463249934026052817747776935336438338720610660460406983497346431275378727067541155063699663962195461729617219233692925431402383676242594832679767978977793539173363022492312997201238220579883442967655571720030664769963000577520774981953032880285922660577996780907836546816937755206894428726062996937692704495531990046405853985264301355754528513629571400848392304204961208585424373629847188612538394935964002597872556977211811094243525170494179778969978868365411049902943625908639091209384780278283296926015184854268295260550988684176251528269447678689898642141561185767122267717264821772311579573399020994265570902292783168223453147834743043940063037799252206151207247082510680573320030712850136642537096886791978364480705408536223193885020264391188810729917061316156500795669338674800484942526163672370064798123238226563335444138472403604686467663729000567344065589391518478468998835698743896410119754034526511492724554318181233871789454898365772172477311389523896272402509410147459872252737172609654325736648613368225017562379705226522932970760929202467329438684614253395401870637658134646474400183390498466588159825297690113019491250168966678122372696571871717472412279826291861983876037039809453182551975830793272342960766740945337782149053633239898182688248204861390645924043158784455460576116164885055823814150862433657130600394492008784696776003984099401023129534131378481406479287459579077339268600182817294383686042131577430389658689983217003662958779086071880391329266195422105295398730419956965355349999888289780649381588118009431788842590862053560710110743938256669388273726878021172478028419753187251194623535586445637497334311161301014360075897061310391648396057009887971091024150642842396957920617488744061241001240992141657658904533022532330635367062610653165194325949990692494813113188284915764391984357558081729397143212490899513623647351821058226955693255706234555276041979684287606561649691861230181550264256267099197569998545038269962485376813894665897025806650987724263094016232029573777950816790617288252840376757079200029218574271543467681436433898362681341211488326582851598879464375857289007765119640008496985650070582212083575599893284008249746032822582304346543522105983227111933035474092234014374789532777042081803811693123819112438742692074496311071159846943532352849433040158102081465892812870441919326356043115056785563397220969442052297315456235604059909768972195566720581011652051247326278646596091870425596745458845613803051741198528758985866432074056620376535066004149214291069320268633227972327422962328333032155032410123296872539943945884846562918334549097942382691731692344869105565207903959591480814970275172141804422052088915854270107092829029360621301933219606721893335450147623717097114365503144209707023827497525431356562275607833872896827922699920499020907477880554000566712165838471906969641013723766135538235758056217406353005709425747079066463932392642347523498305025545065087291788085902099634831873387139312846989409997217857867381805225092152924987160311600711945602271460665397750485231399132332658236356430474907053943883984271479193569706204891325955885786276434219905640573584534596014657211439532093825001846179604743343293771676998079527603131230574196400626255061564973954577739047397151011556904481426247068052684082081797685404744653506589394610294251366100477167735279764302644291663062412390420420830965778109064437184009616958349920143766839401196969059404910938725333302318956268372208939669581494629567157568027388387340356259440500190472388164948216730164815208263521864694543418486330977300951969986757480919490472881111818166526751896132753460790510110522867757554801261998307568409845773988399863033823218725982778860537211874392229643434274798171315783946442051028002732290207240857373622402548949564689469980944498889324592461788154800660475629039754906579459329371735735753555243390393138442933958717139319344385286298911205623726309549639851921508299653819305473883187150117050397762474371336053199775361864625732819586113311124284210509259619241477151948803439159145576710686952621557684414501158196196283782243550107445831651902455600149905305338900332846652109987341328731590733590236183115555827506082462770109856128605455187437867710869822941671949695945287266369171113300695664150295976052042625368488957465021903439917778217310196622786211678359886796940508288082357348157555012992101053584021604438409886444273055412102240674115806101204868266292715187967307450520946638314119299654212630143033723142262921098886854121346923517061653165182570458715933272170043828214611055564571276226911247367110589633740047399886993710174147671338876046679011395953793624588289696422387567064263903783734030763956881691146205748671255115896036501410720319327687248401846485878429641301742016028948685467438451777620455447077182139468478543455578424380437731580818059849724596354594539678903875475865171988259871078708900622018681738405025122191696459575758768249381207681595077571163331800768640259860649109739790273828922780088680733503866211284460391950109713967156674289414985010734420256094579987291853378231347582128077926525941803191344874538025371937065035995998175333817533096904722349075579226959845085779691421516853951513729011180312225733699646609310834697022895378050447661708087036880654755417267352609151942785796000363496607969062269911637877575452915494205238648979885502713959184632083189089059752734785922444332577175157446703395437627905103675942864452873875099503110809273096323189006213269090504355072690680814275255537748231077420066310543954072630440138105630285089690547980022723266474188791757182470760615640624972016067807059199471667157937525273055062971569775294961394212913351073770493149385152916499222163918306983630218701477620585899943259964192325015278248696702534434856899984530559318934030764260280817058169611670025443760378456840231507129328115058974059063760015947293131193585883415476747431901100179981154070835591762545933157712449822584330334216964780261031152694507203425081514039409946135629813168386701009186770657148987907435952339654880987923558874151588951031188544609145485173981825892044446215349157276660255829540809491594041696779014445573344829007564701887234719410226722783098677313623033595941790102198816431291102822921685926797196953904047311912854552223438980768180045049129886383765344131428213594527343311124082110001580870500170985167293950654381109895766455145565468092083625276851841241351297197132150854778847793169333087039364023621197089107588483244910690262890153679780897524245938923914857769513598855158733495047071448375168111649341984374145801884914671145758148909813026023800948930440055753765639074206154871545631138333211041350864414846259750868474409769924925498577065263249404828382195414461425239669650894650575829878550984162130107200641513632888981148630122946614479277538905796496439316166160052866319070146510250941332396299860200012171307526352612372346319926458163539248258521390218939973229805639129836117935625322119451298545211084289128902305643120127823706059163672436517887708617407024375743671642593582187038888256388787457478176867890912402124853927726817170562674096256570540049913223182797723137519268274097157188797003427761143168006620829798426272605074619347971503280515265412263399952731898107198541882811027086546289148425628426164868409237210664494884337413557329913280526690945605011909965931248528308393632508821765041351124033850100689529200391695849833260263189584203145984739935759160872656797511148605618198329485435188933357516768758421967287225207822830457967791638001789937714717565397389867658764919028342309549964601754745173384572490003473514115779999673441137065238411248562784148499604488555424853915348137272397469183278796188653137881595327377977220803274976696255405906938388937704106158126478973177785780746915170016320839296519510432604294188111856890491025219233686798400553453990752955029920672124446797557753883217665478861119257105239794450844564553619253066153756509589227123335123276288288358675736657323882381226402574341985390422571970281504869243214842938151118682568140797738491097253887178499413045230968275118799599365709318489823479814482100465381085151269225902024312059234736960975115884003800651514447447716923234550626749557078116190327176453942355586840705031882418302992732578126460567086834229454758572958712182116475023729202823204481376850168737459945275973554863680301506230731227991129311476456668637891824064380481855235083443350807894791776113688535244754831880413449460687696734852803452382715986494757821709996494486182574970307969435280394875534604315684492287590367452711702242389951055444957574652096237902723991542929756410687200884546904662850564128561796002211373028560091777443491462648577975880586320667630886790852935747126289824413673023614974471999493173729281300780706810101499028401760436991891411037198203858436791881778675323510755655920396122529546997531374744593282493823834895833381383896643608342954519481695394588000552007412549875538258770894101301147715171726443150811261285289943023642137714664218033459668831594236249538855413209662416233680796377725811702082100509757160120241675360022841362599900760185869311946995310572253236605942118799807112873424086396102352724158932837560590527148081628738868798958039189910459749329486605916981849245766640223580621279497604039844029193499226366728688153545656942524496116325274833895724905031421160866322657578026195044216643532116724819626703316682688570374535945196829505297878780338042690152991353179460959986021974343611791321816921489751307960582285457631438704064809740430822251001045534122722025880014803603683630032017262043405497116177289145308549327555782562049166793668290287277188712487431834569741702758166474477613241055053311509575604304531159229106909163499572328185803491016515206686681693410971057343510369738718615269413439288922162663834162242471173828940332423301732717222525703360957763362697364999822418741843041332310504179190358870796686182066706321914732848484942416135595763162275673867646984651390739094183389849699627528017582549327185833307358976275062138440965225371568200231068508212973272904315919806613648847788387558898069086740738162322810159069297582052576626492482098826170866430135393356898324638437232877028244660990849943038189202043400728331005638491028816933101691921853217156637905871424366721780506980784998535686321887574807209060785748951359087087061180101702040734911385144639503214820210581197351078494867617604518072839857433558815441351051012767066901725678465254850468481766887048540902488001970447702787964190660932452948054815559224447130519964525759128536394478820568224382185814640076897343378917284773085977146553663971666278959617919542124097848773213713937701115844990003659752046139627582802194357006875488343757837383285675017532485744649395990022487501453283875196087723424858501414560774134669354032935185051953942354336220405421478955343055987087205594237463201225968285998131555002755583876442695424477820097887559805325492969283072825507939271658112789999852351011506041208992424589778993205811174805346279378102781508801219802107255778985645660487754928872853477118652802628401630958370587035478392030627837997974775176152298010485608384212104377046437340158788696530801937481504658788359653233776620554084329945162836997706521621779433735931513181116149695614619778791711789910999390188193340803720504319724498540086471728431279262300418322538786706764835555962280518134946559280783371222290084317437013596826331394586819909383822176605001915444820248590706796649573194850170961222273534889336117551678167433051173539789862575869730185532447294620333797917865341656257824235249862406999154713847655635419830914211229255275837629723257346576613426547795860196202642644248072454569284743252694643911771878602077007180644359702673207243632492466527207906355613141933217836984062739748771322891245189265289935679416623852092172323391397273193370571895249489400073142777951900494076786094282072106401555366074551166550573667316609110849950354205562522710283435873073318129876089076172210542145351009933794809898406443835255706728102712025890707810391058640544083994735283251772714497577141860572752687811137514949954998816161491197810904904595107887141698696957381135509190818982433942864360558571056861092725699747595513092867708778706021428110716754899511092258951073414928169211658921711951968997288566215062232738994896945848634980417505029458830592296732152504288680380685482327841766300139550300575799658920663446100556544859067264066626270139519315774556744305834507734223523678646049673115008957623048160053064299481229201623689991379820431331665908603628240911780274757933379129705838517829606712491801569090819207289554752993111778596606829618495152938529582170442433393733326444851228658305496022384283981395638700740044568563223503983576825248207119830367256508340306837517913365122089182570275626131300646224228102059573601885316674796211788500029047108581296799105646240285693497407315070333571873435552126448363278850735369373407356547646328480131143886519944264589694888098161839946629065455848472293453441488859667672586179507142686225400900749972801475751988344786638622535946017901654834420621586175100221947361015557845458311614957816192251254393686735517098603285043048723790511644240001533488575207074309164234377118667992548268348659099481945183490848185239291378155063430219424721845995799114697797997788576312466383338551766683454854907016736232868264117574261466304365204213453276269244999165109637776714921331719372260445504536683428729130935893436609686732359725974628355968915754980213844404138394246290119699151107318770728211297696034584937537847890253760545237210369035075824968341997636307552785941322347118653988467849096375573721157317321949279418418954146675777637911931518539201656142385015883356276014408362458675298849798171802359687108235203373273645117050888806127478934036484966529561581836597405934085304656900200674292511938902950903014002840485870045298340090208092649085379878922214066425290059198488167147235426058416744606979551722086719917681410024195248501004730595582945676349455285533053832470731860674276591371040282720324383447545884463670927521214270993548495529412027363677447199109788521237289019286587390319906190477915988460924379192039698797921492638968294695591809495853725489746642306493997093241450818042508942102310530264576459919290663724507464376878150947076071441617588165152837824695237013941396960402100667291024857264112398655365582705557758621695047005874086064748367347141028345263033659670995395834614623696779357447600971519977158181809367673208199842114965537681678078081384964427879692939588186326590287728576559971951877248499655483106297487070419007427734267418385390788196217832411908981796810578865981283345682426831906329132572120716111079572829476465651682428785862959695428970336255833843824645306046777329691503404217659928279792003273290289715183213360295126140846073302976870944570345079563140084539442649005124183304068076946314534320380197699685797211219031089840315730023950370558168159626232239712033882679187244580673122819019401151694373739639548422858080963443358729467974977199506931609052050565144486453634271688229141553002684046887376663360899894496155780386137861576584509758925265395966908594375339640739632549080747844552910085381719518770424770712643444165423623475386765598077878630975441722055314560025162453314674628805777207750833952941299031874489675186152042804810701431538281028601300628692336955415340832039649671588151744350827107568572235061221337490803668844993852607288355668554844189986526423524571893538211654002830013593588188106722596339798990943642190496598127051055730562722726712476050954677356131498039910813766209159324121155039411992611968667740371350032717855693806328480329674710446591579006826739427992059745254017674201746664868251365837768598371866242410366412412795178851274759985278131398609091218763067264487406895869088049848054403865872998542805934219101201299579062889866651298492809819869711637297888507365524929831687742868456007433533746872369371429670906659671342526246580851087306077701312673020824476097338993054926052657680211964572641142400086274062032350120847702504323034014222986472446304085919388397445928220712830524515601186690061234610259880755104749267293248329009045695462658373003206968883531132774444956811201564090416179262104205390966822743296059372539136626216194707859584228483389068092684716076744143910787024747640300583730502531238313756118745565495583245955387770780981495251880561657933957627317097429064770137565656142222263800059379924202441385119157606178990194711967806784248101386115115490284393191816344485952326307261252662563829244458515016796701593430196135917364696972490995705466751390451443495203421451791488428216131362539986316557804546729315564762577653859540732991560377791012381052580018628436663347449857068986886469004519991240016704707987641510162897348358049689489733335140792230493051247252318314868647402826609744334077856882140862161402650312034233588471912553873956399766311429900287206630157157079352337560425098392066554270224627737577467870463524506860124332724156821705611455146773776100265118333607142243099850285950536694210798244643616749494544340744436382200178173004239325053511064640096060858287333332129056616290547638481807008998927659204124852015991924182347728131403521559399171085632997586092968863211378131004552364214886357795922511233566361085314670076952732908459272431055747610586202396793861693244913092020196600080359666067452205471211926908204513552399142109646542894354521418595673110043644913945022597639155254919422883014300416251511368773362147987421212422128316262078352045023116169589893344561745907668312818790473703559702428927741367262501217160915467778335296643822036674114902570807122827014880185542014933215967475307544620487366732781063895188330084999633509234295655814178655450277101973528733142626376435899280900647954887955668923329633401164509517732292476792553417978419282894033613507080373645378773435280331086704236290889089866333942931086197952238067327235569687233551118733983395545825935841607402499086172875238660252145045826673886202314678308309355389849731333522474052729394995607805644442535537238586060770054973944178690798350383446175011325835147689274614666610720230961116558399655894203674748234842596968711906786229455258892106165771354067570377412114838139953763397033689905417700337027129052848294336141479155273486959030608543417547430481262624856211798330231997160811986541805773943570456968504959040905957321228296908901671800542294405302907141286741906105827009123048109417492015074840527852731738894271309070741139129907637001223159412518136593065193092162244397435239018092156750089082096426317072280511613994435476370407698522487241103958905095910291598469827179959140866439250416507597997662683469079170192711667365567650013982763578877251210810816970525876409099953572336082322573950306682707738795184152673978689598553460856625639526129595350891225409828446579114023950922585020672892700091813839286884627585195618184520413573760563023146241607223596779250115743285177754741238481877909619968016342700741515213826680388836110239812089387289126993818847563492288585169167801853413239169274902111214532421377086258695038236882040356742312758789514877557491014056159601112714882803223220170336456160909116783247753110121909552763292747171710329698323247216104982554361229165960501589233720304489189080648960644937542140276408612573175488969848617269546745697881323727675975692406261499050403547680595805349827602217887075920620402469830007567215992082035351436910569393778065559238380078310184691415291861725148089950498915251208504615252915554401707770422684085235710492473972083558143235607400435500598507254034613446170461402255541764611075357764768082738359386761970323899951329504512562666610440392606943748361336595738210068632126825349878777034661113060180734756150811885897321534020044366619481436870634167936385999048602717215624845127694043191149825836192401468976937918590156782141279646592976245644352218634034177744895077768201192168396062587713225608164437070081874834050286982882318339891715958537802485845589431217971189309549652624449959575020822148594134675289938045751871179665560426361043844673881630091936742884960398717093455226288554149096869746009983777171542423024262995460377389122150002270650604765219012507565579792618503324399708067403472712113318965246954316059227345489995540822570359680780062746201956812178998506806108996203380766706378392634404160814869424036695193439455704670451941626029841840904681254674677038867363775488177931610249584709267322475698546065688377459857189095471455836167288703105839208246492464217794853158258567039184431194163246823528883725032526387039143993188555706675198187223879184195905732652911153934755750771192340291810410021791603853593745348778174103027639580317105921587006201719763640232083275898243759989400841189057266559491183657744634808851612027962812003767469651093543734627404884609062440397475420437887831351684645361971898199171465416799837684907287307096274824826329485174581704525985854644873137199025607119036214205319114139465604886648971757124648994741359928479117493412374507053054232031083384874483336201274579330825505596513983944557639854475156348926060676328358201576585038348536703372900524821616947130040773461857375312678896016451771723311156980110631085638076288223736820354357674580751550388927993294158272311888450334370861179545399576299313443863742687055792046259428668670873266151207912955648915808114784106305774137082208023857591201173049061339439162111159481715712785210079256390578264567985722214310933954912819606875070158604900655165177425447754405469602341859960324785322679004092486446157326462981553620384369010229830399422189715368519926483828251748343369482366014728838326092122413458830387656622191621096954817099388179604143688697950999455338472760508091842309902343785782083224309079999321192606078735738655415295029309118506431513956097836814275018292688912986351564718867691414490111240389071595213993947661617523218745096076749315418826215619007513896664900142304445571752939812132529121790712014033983573619113319070360227607713090671665116251679711316984581501014670908911981035123445014267030648671410906931083245112199683248222765726288393876680799012420727924554968887871339943280209178922986400742570073479762926396812285793734745392166588362984898011131905133503577773713434643484353235412891329133934866744126142170818499651993960178398196085424248368686909106937358780000226934169750789051096629050484279227940750015137886151352836369469856596350819567216315967899540890427644754469561111248848835593889075380735618448416876683684777882897225380762985835750939046330103532268897905029080692847407402784949856024342675440625858491803791072709754775423682239219980139941453930354451404056478161986726005739566858955265832994386348599116496005600850535672441143266370403517592099628162441325560145388932215542950661110635192381365060075529750500620857873513581916968482797150596749612289986134585552239980447164511260457433219564579274508651565002324799143709648718993199538827000771035590148579346238197321617843439632040130579078452763991144053881069104452519564030252477817370744294430144117342561922734163154423435707749400129409317234212622759944102226515868083792916787805128657773426236525557497724071081910162091231474031203295547135686771560052955560561267810385384032719170245807332645473267999695659130576935679269618507283904953313233359610818753320702060504231438111336819204771143298726439253337397675088992207736919467363028418574211241509597828083959948735802257970415203631155280560109114510195763644688761301196925954127562747560576015483869332585410476332648690927527844452570922218321958891048241438122621589875506071257149581890503769592980772096487673230522756455134313354807658885194508578767505028666605537512817424750868221637808655873059271979651059886136452745498656378938353177078959950044558551487455763683936787545108359346976669588747912654419808565433667410263524278575261187143864328117902244823075914989805089548117027164319762452481992481428639987625874460002432858913942786757811555383996804812743604720910908797824241686229660260220149714621057572137260456152130073779430314587227417704816127230526807812476236241937028926917234457687735068206785137668639098535133446803988029359313203539922703106796884933038980696499303098735165789943281556540564575200782451337201542885852979861096086818363615489441391760951536008913184678371332431886217092969978130214648449082072166885843981996201017071401065069486670449488414492915778480881481075828236510839002443932838051452670025264541006181850306017520860830173774658967867588068494080934116900443849259269889701079156066786863464995418539014874395769931187242242777898711640230696365378792068552873370759305851098861399607464697104795217784390801090919528500654414938640276217420097634074643409092117738452722965646370708174403576558416368947387048550354660471669991651992941135307993492314676597128205286118746132616482096280287461292065720478276628315497912437868857421110994049610642650508230206868227054317765645587759168254649463158712420106824611786863199100653536730350689338016989104389971644346490276820985205519569166973857038258818135108487711649255422545745304344571762982281396046811654564494835122702162915417446177972290616271218065590030980163210114989807625284001094741472517867293191424262280863686335987299619741527961637917647249053015777446846986554797301823222071542624573757652739223186284573043795190650253024750899587334086168946540345087715013857760554293799890780480685252869656267576695966447674458987950915069565266432532088883666033809087153818945763830722392571786087489732645270581997060947019674056833114733347749157872857630362291745486586718789675808025656115053761450551173835898178222401982350501202306935923359521101173878882880540494548103118861028797803335027528510360548863916759756185609408772229409553149004697148413038018873478729726448012607006838643143283800859735176086379181181956817721621163634709462114287967817938265715854338005775411383794486913094772715431060202733544659347051412615816016486803568136289121855614126697172286204212947679017610214231278073826540815866896251228528554692137316124048656246944943869182008664617214174240143870881041044725695416594111117493330262301565747312718555553968248911129774265855153283154418957544168417984109569502960953989391032446204635069416029217021366800719633030129171246015141894212557193770071469524486284725146170812641313584229162251730051155909531532694766459958596978802806694976138728857753400979752202390229078518660927252389590669632721309478662430182522611036885012827001697554199258858512181848815031333278723728011411221153620540355493216717767239289809552158735028501990062707598456463117666005836826444538605045330013909904382975609848255399681096880260916713923958811225668839266356586185004593484054917739367807265041603337860692083862985506207676599454818130738911789876759433413157725865297163863023885464602642060379973294431360538827509026533974869446573118460235237224423490873388493792736593254768047816610647399529865462546795136542284972401607813134013667744890605688286323556013830653286028332412491824432671824283752024814231230954467392635334984486561842952975527449624520260942248619774192227516898649593677517174764497736485662539123853913552845067587518856813957353563813586777321436099039845476370912284170368860435637989755910129603680409044759413711685725488116308144069948475538170515698902543841282738951920941403733648491877536967595616818997783438073394513895852817589251392386147627943572113680918191944549271513814944378281218796050753376844624975052128531230731813925245303744491138515577872508547598693643517046665786011158198178297011457938932557703092735732744878064549922481017946012101830240413379018192206236239187216037672345397946116703841932204038701243106901457288692200923073119969257707852257122480217992438944732059474794668589639968300871428747281227958203013591488134523227951306997098686625365709558335487973904747706876841689939457539199228505625152549298564160719071465915477243643798523909872504775735841668529896200603509415962568531067280022349941377166239903136454908368767757292922838771551252519434739690536893622207627527185353120776036212433750487612229999341941144774925703591590415069767479635031389870855255538095304143090105946229873824594967824729284199780508595845616631794175475471791054831488001916729958195661065934541980003461663695557437918318536596399914132333651025652059162824922375455257545247707726836620893543982775946323574110823903761397640979768536154093035130011292101090361369230043135696983808089842334372009321991755293763212783705877966046625977376924743384704979599815713452775336278261973427043197821492136651011825862655648961574265699680792931403671422871041307579819762808149795281720853651776535041073025327677805075761645742871523683574454659245356082451298954147176226803384622011469358472981710522289475810836393428091806397853536346252426605425873763942272561719987144305196186131798729224586180925402305073327796443964656552478713908574896110179552280765017614929843245961430704296190714507703581328714994693670828526775963844620326675481408561423674017842615604080488849295581648577291900457519629509093158897461831429246283928709047749126315686805832209221603864645956453516483053050736472181304310592838073962489675531491417443983595814510672502761055013468110769228097580623715689459701599679393408606867404097221507443619280369457290150216957136609917243330130263861969333171057476391127897719834539769935449447483274724175167177178971217372496006236865940341736719412209154774864498208474626695363642867540022934195899948305713561010335875722042524060732627579220328859337288331731875758931457692294187429592480030742096797124328551843929086249330998700606501454764311497989507609174822831932063199085588301641828823485175688855061233755019638073850782061191579666977576230385192355812158781693470847945624864800288705114783912250102751408794247633065530028454482681733918971529490524472071671489567535294340779690468925718405163947538780482630316371653579717076416937549784149968033550544476836670001290571190284759667188625827375513385321094920863138706096399466840148183982174661367404492181912369406779703470232462347010978265848540835511879573732991665798042391073218935359239118014013727852964377334434190183091825039977926287738943806402065184944378386549447673575070704683493610586253654179343840264510298476836639859316625679907442047990909804952099504903136476550958897051081090115741618615075339358480032082006434568524886259777327013535343755467608089471124420297415597289743250638642260718337247318968379148070814355770168300680531880005978253780934352047900608750273616001093262944187107234252334207462899089598451014315499435862269536183747346901574756110372257313525920582822109466656586001198461541067048453158862001827249668568335582315485043162730987996591908805414720749392056637064303798514094455874550684664608138912852509396370127625291684905730314145804006902056823642605841344282319037994056006717396638603220068397988322897235324308408241644942916805944938456141495703173615051702170677345746297995042853352208314046493312864167079250947196236105597466390270217502939493920585071376371014558771077390550856448927432766003511539960993541173232829078866289854761205545374009112991249453405516780614790361671194648339141696479618154543257704116046173667356566818340094708506148096864602364905457813954497113972887574391327504951399957992961057240440677256330652725187158791378620966419023949218862758654109101254133627573865312464899722465899107220266124526202705940021536533445693458162478244130189908102384922441180126782265304764988036407174926308535822839421391673758622619254009374106995211516031326576716555694477822286628798001696329799363444794811174407003150980388517732561202772050956214615830895313820038582328479473474554801726246785369934479741310603138417959284397752516737443228563301394036292935659814149349927448911540504286650103829596809650679884762984295873455717810025160997336559887716587018431019661971705305186088171276553935997328059523709688450915603405044775492579138080594072928945041252718005938235664007278665604587595437976431884886830342065170525665363895326965700278742730051875320047365911551584827133309400990836959025443582397736390214834512092641325726625166241956635039456893366740875173186374255411909443562095676903852171648953412961798753869600489805616305293962961099360528533358063996322579443131654423231641185961567363860931664303123814877973860832200722448240723072188617108068873645961913947889567236141815617858680818721556363020523590636248441202230122119042554154620779709642631237558930680136176668326851264025618635599134340882040760088269286163796305040103508871875961481455321573032376100093384118280397610080334836866096812643520730506525008330752964361727609580232065172797983300388443232244071159215872302324048074014386270831210178961103401019711862916297138263471388011517741834055043969080650823269077010353645350697314341040117261909630197310173463298432290259950054414471130897584699748246684980819620578357346012909483326324783600635360792974549446855312544580149352272885347253392798582984272817035429567329331036458630827981439448577192520024556733276672345811785306709529090847469507227010124574967394791273760640335377765756591645896417805908078327425628059994755521553617114248374954392007298179406373933155378185946341195059543957003493302649030483124740124850372495956058062737961782476404096686655203054755540079584015424058192087506452183564109485949075939458653240064166579563273001026586406782895784500872180112551835433470662746489730204757128148636687379723400205069428952540345934146777850277408788854274862444169444401237706175167637881872888501857205462135680340189919529454721732476766334370671901778227451243017816526445750817956574648646419955574332156438198412272313634143314661026068261220728450634889850092162495963854334558688774178484206784526189396086903627167720026426926634169114025981129179893253477069292596919809673571140993083146187185544579694688576539113920020972913504097507203143740905718485712289917424029105753909870004034363568255350258659712222612095617506699326716779057686498715803159278031657872251107351672744175584748842266933803032562001646782769076423686279859239034738743194682886069461807016057789330030645504604918669687640613690800711784339114425712416786857217578644897285214571073776805006911243089309450324233503442259770941020688959623589591626159020481420001205192847777425330376179498949025652812198201491163252484898953662911906427187781661393541355268090103508847923104959426844506289734722404087094181397823213353371798899753179215423200354783823140976545326271110840369572589306576039315849189300559498361331865707386989367869366932380778514763379274922782070778720910172005833020747275454803018450297359454052888809951134155532923783917920058004340476293385958824251332893020548491869363072177982306498784857850342679850689264164202122994350185617005469660151988614934629113573550383196814698296229843569947317863228516874374785950743167499908318716577952034678899691165809743953364364191163824690067004051020344164827828216158993931974557567090023015646232983539967291248657314833164254004224252687184852306498884514530093472235275059182406195489133422825992115692030640328556815175376881411563743059763679794771712189571562523649258338512052017443205844513681861255089482689050779565623518929074102439191764025237727523299560088954524216841488415971674860934423663335091773567891987593896442670442015164117441241306578661414053489340090525758140937973763400131305035165354092426012706133755916983452406509274913427679569786255466178179703208667161907857335977367380636293577520371704054047481904148073286287406566749500755821287139135099274421811323318378756052741898518062498980848460635999308513790491696688715419883406897107419018493427391550870350877873940682156424710846345457321610971295942965309671981973129677586931165122917095967145302624658118748057423089908354896969931654305645522371748932008395772466618186829315032025629642642209193594949244818941731301811092190923672840442407874353739003335103209626489326300846415681153553406741520252186087415773374893814888603963237576653794766134424430318261336942890831313568034129905818230413824588592524805385152184212836302998000810428091045983356960133331687093436905238487686832191580478699446594545230049196183222810811217928416157518105115642917439619561530852889068101256969869688394144890478906461817347199869730207310860166209188682817281919320342800370426140982340710303008057675311837157073752155700771190206647144497518575069213257673926894351776219235558798951718062003121777484286296388774604165511633168804280261343280578162776210500086872607158100505891952764627971599792025104978127927202028251860241685907890220551995375857853381152347530867023174124684162902359685763859728801379905818169963648674324212250525661935100256766914828043823555971665736591890444116188930560321349183954312104039869457461475790979971423081232443453992653876286692781930702016570851551860721929082791258856733133114062100596457475371169217544254364363323874300320448143663586541451210198434387689747634172598041367428567235264830861784743334250764711157095402224854068678252032549135600710355914687764372981279962218527596507860618262048382803350590559180321459286298825606635572748417895661255622312765042739362177263177871253356433294682619177818697697673015200535962340675410942853834868231866501779940235631409451949694248708488753530659644597867025693255631587301256542724640256923593773832630222435612996090026958171723419239737686733004085428262631772911566689585159672461884999793406319500104325819897217945583639263564461940459902183557983760989222954594325781864257310693229474449309431853621893234138055024805514232690428337506082426737213822346568911591506585343962795947124089958041949686013749242212133185695606629665641943758787077102469897356905441039604721256054302916740827514804799972226035384701584054358164285333123285558240693548352447443089918194804522896879140684159371501588497553275560917882878188768977538614540407573496606569717435239560904626682608085464435910766721818177471044915508624003792557793679328301169495376366735707914939192867023028701403317230394895799031063516009398764989110593263091608033212638737244555978771410435352852563157621567902629591011062363995419842579517211831993371982815860547144336474343438869554492569024690172554821266846868086823871392058927482235077408256861743765054473068497723543593482305612144315431990094562816613874976746916256047039898290440930961075668097323379741437261528285580522932652399515495650277651522760980869212080312037544430813947766128370999272164960903205971383510143299412027501994973455816840374404633060690093800722047016505856906786905926167973457781625886871892944135984638945350511700163933556693890359293444309622106385406019149319122423130302948040727745858182938919073460418993689884653409790117459837017783561539845145278335981819166407907648763441266402722093617286820385244830348534468207159280551559895429631726147819526605167605006340296236382253386546413265622510998113178533613089192453285184363859748428022811504408069144605778027606062557906915919004690542875965656712283172909372045829114594234737301078123143344337908268679795654487058686735329406507201975580231931636155409452674878040005296893241989309219006435604261063863510667341153458601853276319536129765982450389762793372578293515669590556916697671669469674796210442553151620500675670390365955909124631367561550063291523858734099240659266150190697395633649283195391321096714242522199692939186902818530903070391284288422402883328731959297583976151253763560919857129460526797189737001399725174815821010822436946121132472682697887682481830977275311699575888671100000104818369100711278676221374424019589886907183411480716123727563453971344082939582148879651634695844916737588526684038170869584111148563742859843520033471252593485519205697195643271107852916439869490924312989091828054519177835139038781288041696768764447225674553079838875369709492570745435144081348585108506276255380956022423836569243706686826535920445473751325257110977572540461993629826531029579214942420728496430598362449691096373666956550143044562891876967221591604587678101190782739668129719990122451030301354742435614205269958314772630223524072362990396263548171505232541945863167060843570981527742188887755590202457736642291239766921517130856219211188426775482693792337856254160923981811141184443022880248387889765086166261439457281707993709409767363931670132356427758885544939991302863036851440871665114520319767624418747629861102522384689932889648872236568576038277557808423550728836514854631494019786227902702831549554948698096572562783026855434814268332934625036444255575607811946616321648862920282574837956055688780801786805637478994734334326695236480152667514649841610178819071370706359349448198389614931456053680361769970546389078410726236725305945014047389966658183125483105661776354513645957275183199531120539742294833124972307460330776799123463997838280721512101477135378089257310825717249045417897511988512283770393818147316829426815091473064411415911170348522113293099139651835969465256746735254180677792588036463523177666951982472203507294944178288964448008555783009791841561506950556613784129348644752913424742803030674203539549718684653101896375809491789693854735301448929008426302914583025458651788436356929908687045134535702523197076515925261024367729098957156251332544387536130080955827324521304763773373392293766125206681525494311492217060845940005918541013031104899346195205308030437120311786573505982352939329277845995883797062189524902080233822160121135557425476874056712059345062849251969930103272246953481119595440849423145262399249513595468822022441304682033979793809033965959955786182822526237878908221448342229665760180862452804128332436870179181897715564092197992984187224482957535761009811556098041125626190468564207986268262621704892497791653529333699817413127764626464108892697251990778560881018341521446856411450262735621868653750541475875613878331069146003160109279209647755129936493089080296037849155927022270334386709692349825672606325781712816716811981104056653373021473018377930449874388388923489020225611500286214004357289503470799405923108540479642710752235988968159224529919818027418935454726767293527757876437445405948270460468003164277985037023228345332317487015029963915214998422283133742183517397256269293194130672112902646039218350009654084106485827459256908381627225790095269876750592445573387861578531380496612066990466067215205129463420807164112820798379862236888326639098966009629208773430080094889127600902085762940863245155429895877242203151188127716235676468552888445898711240778143475840404338342799531216000289877638511697637520246561468942998689516565246820009251089539896681299118034031376291917610047265492516038510857549488846937003553553536935629467593486298192160469692419341833698041414528815434418602174067117446796272897190063952713900341025728705401831347368027157364867908632922377501064401059236640996359282339515766106113675234773713369801017192885894958425159021632708392519337832988944137049877821505881259483326922909753613532771827032825378206988393586058300985271741434099192219475587538892367754672756831147493167497260246765093822367131573848427764258409391786346907089121291374971615307076161456854495899712296090427614829457034149966419342171146885621601793176691274501039873017932261566644760875857493244968183884220479290318333274444532168569673377740983781594110363140990572453918931121710603634232291620857844949657177711968007992877262558463951426843120282786437641844961493025057399311368701194388110776228666094585661921964528471798811837684154873820217936535686825867971478452165691519271958208838322386472981564953699685157654176780102527934933283776627800274261352229806172919937037668482535633188108930420746260125284899523635118541326165428092134724561374868918012021195670730052410328314756778282601413733440059491598144792637656723840828716690394352224760703452695034182221200044939850929898180968468669989426027626721372749272222775578933227471408965002826914028118274337686139899981558058142477980294095435836451616979909278287008382800043823878977410589123916307009254810089257333255254554770929951099334367922094730981633535858517598805302696150140182299074260656049016444996119083199826545159047980020995120344590502235871561807121474805574538135079889767282023636489059814158626845155098692521186737848923283827039641661752736945110927283768779494955661877911654786056861558565320473056066807803582605814326811363236093459181611728851488856072454390124332600737083930100133245177373826262167688952804906448720478833343837717747221542117484803079816204502940859244602079116552478895460714689838877531097754303581168568175420749882112957539246414548483138020719380481595586969274811241024418395434765156705008117660628435174278871642319020872431344294768066370139735165023986014815144200333651881024986074773998174388249267508629524743898728701451952854318088859951400755360609904531488315850727745286499825417011099236488512344209747262947589377082889098328064973406127892565933900401275741466918718417101674983838469832536056030995449138639649510498614136182153199988296698206286235230959326545759050821690545376836341468983705487607280560199135961831967273312811867661842641201047199477764615923301596786478154645585745539163219826719726477040798492809804693558606471236479633182957973613429265363881050846943860943635580902418228348660963873769988051446035693186344203634020779655561222477160741825356859220898328674151886669819553655505151485141995471805516572044463940011988572364200499087732036021140816377744823561465953157636871443507441266393998977723439398621131288327872439422532830045447731854466387590811782556567018565521244708050845519800944746275717846239817845116064202761423417258985728508898284681465126454214887390844769730610830920538300764752540156295895561700903535014849146761840838978722552549088464999847526995702086815480620330341252141875672132027165845587601753800047014488792608789566821779459312059929026323758060919906666312387901795103075629329950691627102913010648659237205944878512517883331914410542932524400854471399845559365985958275835072922280464394826996785230927312102680839326083850968372260816915160058645201872942704041699030350839648894878660529100748250832583986587986579368131039203872644647594523536915595420899148166085146864913628207562663136723023645246934036972161651512317570010655834243118662162470717464002846672981961567238286422300088720240062317723815445977093836246330080248021809748809181832760385065429939717159067576437109202905873104995851353643143667484868887296810995123084510619560499419374780857468580330689787216812297520894594446493721833423918755085175290732567469163936891862067738115544285716619046164388169853013971173540921586701872951329446370735308404184494074655611610099474652153019132150953129062758850567372512257180331939717914716790589966715750669731409464455906324684330809353690144650570667781661476111368134585056380664598099176623353849278538514318220161417409471527020936190325664690617994458767803263536869721549096833960504050766495793854277310131772761138484797615864044531633555959091969448454632035169654600075262638406749394899071691750527330533907765976464596896601304406438646266826815274883327037716581006934623146381390411339474523690397569605386151166674529693630805757254445296086622631241838204929003223756266380988351995244458589751913154063359486598384164093952607949390425870917775940180853293144866019376771910068841920191788703237700601466988932855288888545435304416530723412934105087415169622875622544817373389816838396467389935099854087663484191293032419289046983307050695669780052335024890615577284287471926790424386033927145916336695391016696033313537864761274639522701439423067876168684789357156619031621010841239222353682721833138506319458956947821612550609854459773629446092204694009692545921519173860230998214226482378613599129835453012609985397311357784797205365891263265200162969382733592445514390243418585529807119813360214563463468316113157490732618910861910907113434800656276328720518932347352477655196390420944469095938082774784115589958367302864932718887942127098575116559917189682834130482648868896551778031734009968528802108479448720134341562725557402354771563727392356238010045855586960606731726116227351920052128743924663965402238716031700496142258316362552281699818600067262913962901043136754778989642303371452031014306280487589172840319539411735492935309767138198859213945001862940869492573389289746360235260175950443860736583109892399142779331316790985624875809479495486580280322229676731316757063304461952037947293497676771831742745578652292409029104227292111145166557381702310785968863697555852133784877862703484296235711483737087052128784042603006391711745291183208756431446173209403603144314578277408194500779143765939831121766259597914328814881684107931279232679241899613792540396495808539119217064286381083569782204131192597573170184391908256655040888150145227233936074168368241952579119759536211135826264249975174530066172185188015639682618380267762380631845491727103422886504295386200387980710687344761550199844217650855983044660768742467103952408110700600795395779528092474923692353900829246800855996920962523780320398195565648706412824859058884995537943792522848061789515195742241605453140779931902484592208348135413777245881536964211473338714494991134245864452954836643505780652044605788745030056527260766217687555361737422212485755985316941758572977710135008785791349941043702022215208185129062665936266179212623447849237853037920188778349365461326248751686204494052328320129599473216228736932889744208657419633936129787796831897451720710716602341506665199829478118085930171465471687844074202250796522081526817878464079635818860078650168678827173326852458726049236125185441522363774306027115129231728100019692492014583564524766596114251486064393312919056194386047339627195293097673455063266513071711809618101959834142801701457410101024008574945088459446728020386445126954799512225633987270463244139390586665153859432149110493925340463318551016772355184034333098567318149875518050770700490042374056798388320922230840193602726003143039773971494731065377161674820509896647160275520196941830142327529597041067033628830683082842956687574860135670252723409619893617645203706308467173931904137676268304760841949186723471460664816476597169804342083733246106487781919218371757777325606409088235802673373265195064831622716386835495841189253215415999806998383090086178861855715404974479397850999862934486263498475893482586838169954449117231154951965065522153936421742064142766242723601996354636555632792789835453529142196172250902193206057352410726683170460863846703655274218199707091135504278357695411170088455341316529647471942463442261273130453457601374144628533744692849470720503527533729828836988037763266484428229631370255302720063756954299940890444828348119276856901151503485448189892196861186341459461401622938610973985963726534689687315028604077696131415633603937773105554123985444495009484298167340478041686436852689800785750964891653691774589008410398757231118937403623348667253333614184818735815915875258946932554451303783918985275452842332219193119428306166296496023365206987377196519017297070341619884294350755272694192176637492479969163890018010193325903248783876052298670599261137415572500646005237130595070838073345472804410917445864936857687296665623034213203179139359285526089878041439814790931843364487503495378604933234555970238440847861805718090780769087038674112972516022802767127290569618980401081784462791425205431629900102257633138268289949716468774238003205132179475840145314727176871385112103898806690069468181774069042248452477108865048854260995436253244143728626208130527424849301681580704795102716249151092945942464057836544538247593399448371822660343823719975255213975892000567393086000653435954469401210114856479866462784749510055467636368577956781674611783967892349725758808770946006816056499643241398110918350771627229542063042398978387364600542729139590200197924908890819186702267630617874051442691320991765349310469148656992261582790703057096491794711302412313185880355374160948734673103869193586488623443143382304364067492202210216334580972577505005277205631588105021115957270136128020663314193750006816261819410530741812461867885181942811116263016385114540095694845394387848454126499243985519390045469498165979193157317900239021696508163683117524567382350835730287171937158131416522126039700785707374118400244501431518661722236260443267350954930766947484478794997126454072968937859290120390383720490520946242771440942106980678633169508495967150987145204383920252220297165818700746860178424135400260576365664909474204430097700338693022799063655806462986574001098064010019480720833906508525864587637996352081893902921825656664884665996098662018045295513102697577564989105732961372904927961358461891712454754718775562869767804587232399964595553612088346843418059859826682508600045391963609558458501056559367143802777276769179030689708916766141875246612784703264918335081138631163964330582845173830190094070313416295979956654112877200662430457154398663160874638389321460083634936224699897789296085297342183548248354322600706152857071680511414890010766592622237575374694197476476252365427127245089138973035431202081169332141987109863441675432359766935096005204483817932626353910711975254881866116216479291786692640248145489380729995474145739833112184035441202017577833021175743811727651662807465559589792155761877744565132412754679238717770164956794811478832647004961295660083190665956342691884335684367550680349178340813659909560490628544314817155859728871397761816200440443113769920262925912664542438635732681810424058482895287606421637326519422123600782416799684784817762978967443376450018460629562050425091313552182351145695447190275943498798799562729782456028242685333395577985692666587306184057864212820411393869282716882116730100196392268218307673677339595987286082276891532682098610993499500855981823734604305910866836579170231368381380968614463792271873614965966273464193535409628893059730329268009650927889603649424833526924378683563570351549947575980731088112784600197836280585518781796755715822410463019836528225873182810467223432792361479505779400560981513625401285563858105824313144861601874235825384975660020930015075398300753688197754140306540034516368174952880681959209257899282809772014216855711337144591620133672359323503779319121065324517362987560846362171716742299869438182679480229741673799805744994618544197700383322161533378952111264567593710118090355221104329209702235429868245393257136443870239163561806642499002258184720889407356119964338168879251374773089962213387812904684850965565692046727783782185074770953005926346675537844975976073517731782960882244623216824678687293026331297572516368396870974800013264671323637354599056316519588804191978275399537776689904318333810077444447026338824228082577021017369986125977091961804944220873981431331269087969236991775399094351589979842908214085039376966154910530454370511732474532621109050326540737040526546454513363468923717225872155237982796764260275461226648862333474891538501918679557295080555242993918441770328112047828740456989454513600327598436864886437624078735842589693516933320136130241150324801920018443527401407563179186024975124458525059864718747131238891922739618942724839149551728639273414669881985628884560513577434704812577241245331458315871538716082374739076470991222222914381152084397592390791167420825536346053942256783926710371893961297904063622781030905551313129950819433205935046526541343265356367822563258871041634658034806517574875658863593571834950321999604514754864740189803603377483687455597787307555309256554595393178093603584394060569587570820552940441145397702455973021766167897581326572336774118988578353819586141019437101696133936374826808361930718112565668398182675714913585974718277449116225724298908049558230967655246398350519644911698533987857057721373515911928582084829448892647938566550292597402635525744966215289069337833613871898211052372004519279541326224002668861974807395673593526695401487913719265803677425792622571261345118173180838607337524966057623859707898639678140709066870179467722750098946253520524988976179085872681025524288272967145315072523795140614433474005608780115039181294196220368215922657392474045032004465815512773631549535031064140969384380988675804799337912296675290852326734366498222861367937761213334483833565723985650999814502588429462286598528121916725419076706707363720662293486727936138671630265307537174443471573016372673962883651926369482513869221586406139752688734152447913325840851675949146803196085323499617229653426351949854882417792112394483111517024128907393108154197149835162095402284933935916193495654333519897572401060694205588785220096722428188757951545212607904577001023112108352656582560222721715264141831506828183273254496776756676781075582226715439692257100129156817195539050687887609949266518252530088270864543085814519941592891509083614382205955672378042541602141794909869844027803518733134016063658185726806368047215716663369425127048353397108359972751099712020680954568685762384412833776819294289538701012435977516845466728034673272905965836995742506793486686571217128304737795410450332864135498523102156780071228097440590160828296951247660945745561388273537895307132355238861153445214835304969141674488934341195089300999904942162428882466596892106592974394234418477543190981940647561034198654882255234665495645174115137591198031423331901291664244417945416892727889120659377681445961423096256552811695649105758206919840410153610375568289121942555162918516219719191326449459921930875413292828705244131154342197541339319872727718881475473330417712245827529842158216194753258835311477322864595218102667209993107606235391979009383726252499640169608196214624672252756627626351155702721940590878172492190774453769587055447422790586621298166675934919178383808727697206286412465430789600121060503171224072328272947474230339733178103303581723886103661560623990618774185712615556512775471730693738867509904892975854931359856947375344185879177507636042132729521696745548264305050711954154509439101300080760399293422395921276846091008064050076044385672477592597958732283853435807401636308787702583598065271743381118244497288405103260908838329334706377920520646740904095381575004394110617621108476866953244493674466250242119658631898297287897139307702862456336279144657180700961308875613877926923889981870845004134064004475986141834774803511623987563612470131372797101801063982484053159764634024958133871543257519143307752131031265319091956664520359721691943450258271429168432634999337503859798231125283618014438675668617954086493566491968207897222224136476426561122386536086717010066291186708113022713293004710498014797818972844016143716812026950500353987117784553641102974852195226082274695952641189897629118138796386458360280980678680045039434315503679387218902278536050824633228000848295132276224880370224761613131811958892592804107587654543710125707795367379205941220193349524375440571092837492067392983175296164966101629351248201653331240708590056499085474327312963595227902029166863786738357566120091544653121196796029489254689958570038939039050836584328470085499735127265711375545925917582503043031988380847649599091930379625228219008385168890184498077653553062351508581543966095280494669489834544279888038994408094533698903540412003874472597100003864271120391977112016742869023059028754469523009929950150939465178357762330398708440272730188650340660566635946162460497311476977601815786515515598953956677680626429792825008371058972480437501372712280298130101541070597287728881281776100457159954757007332291602242026153458438617214377469151593068822441991009505858567098784230241883832560533933200150521019993799370284363909679626153992106906076180572932897093711508399468182818399563249659164095308399854256884513549875008348012916984786865237600371485776786864955267846367654567332913827715757724403179867168877381145201320561549798149236062037384348809914486547238899588085769630950779076039031547306718298950332707188416251406462122292088287918033765213797693239032481244746276321386287500537713604768684281772961223937779263650157518973704141725552431907271548676037360383765922054131421362705623979286709857880905949564188941853566445073370003158513001175631914982850944014530220759838017952192161450949711723599354484651709688129743579959044110921076994398580151282620451816441412513273694940352963318288784026432170759291885960351696322050418776034945859675859900133731143831776514069739449371909556117715035506797784358832186335116457526540352398378861980318851460328224409944632298670477211741706731981733295900351392249422448799610339522454701137486352351383206881848572436653786083482939973741245983107504046553370648458985827985000790025164778879319295004063753261093152659738669760540049147902011874280321370311710699159893887044483142632097333919669635977263880238178685315082700861055360957317620636921463576785656005305337863399277002894609846913490827830245793904387703700894968848498702015090795353539211094853135605397173125630148871161554854119924432223684540354468285695838480756794494185313928192090984960312825892275030869030795452400568102922615596418618880396592987630563788499165994177297187132057717582995972011545070631260593359824606060413710022910867035003187905834291072677395029578480882778890315493953508150308065256331926983710815464522905430672550147637739148246163735524434987158077747956312643888252859681654992580278691293178738939481984341091117123958734454094494888662095193646108991187090256319356037813630642784546052211807557962793944605708353125960246270512370091338848039703344100204172728824161124544827897486514545073921493934447106869343172306240008344785393271876137299698984228390357121557789102369104491656151449698619949816171829148690452418427245707502303008341789974100045389748031454611103338949939640939780840761682532012842954577519168720498585180987831410107337932235473474677964748480292510168510403109362525064100539680055688118550671602295363727920971077485946419887683020857446416231380801041836328665009698469101982590538747617074567774367366208321482928235275326276473816289402706551901602571012080681327534446395504546595623779721794877526373800244577447338342709456640734270805430570673192127614654076527200303460517359302422904531816039940128957831486128025401310916488273687983936365036156595393582758886968010237525778835097040907664518878139858407909274121897887781924612106259667836004761141618098243905844706874922061354815281969563148513811530393959440400830876587438430444940231758244102970975260203531628303890438795052931066185982671730079545826939894016039096416716624098740549376804598995305624373007616278383660204660712474083858828383627161737027443299493268597981339446606328306305651370058994885146090193111108000077272254760548390376923575793071486133191735994327475971639371568667863300807598545362474313575204037175968622010955522552006103205253382551382035859525066673693440408278029314778975283441508968486323740518552347689071113207771635027575235890203780008879917195700212714052257842719151224116978737841014830355622541751982750951418531549750383860648503387026613023765383512717474606090391923850847306787318857649361126249330634345824507846780782729447871534080033467671123623102806884897089911577825630721175985611307575583281411473952515783309857375393175875476353696604898089136379805703266376503990708368624143554010804165861806431108965236063646454351474014918529315998937777819001311829682240424729736037128073867994702713322323753782932407768131223873925097556378539161223675697558006603412799726540490029125595729780627673137738744238011723208180506812231454685861346048902695298617388799148232186372352200870782147037091189499201664096516815589276871639445557561387261554039759844337299498445227566852330399788786929790779854836288741557903141318036646405459915274126055203423352045724512168675099424641226428418156799481201945854563057586464926966318528405642552773133359067616042203091292882985795155652800300515820677730289243083766186647472441066929644312580821383326930749392467054748292959366465886921247993587667510014349190315199316617202388963172929306652022361637532982629665602810619433102611707904979586646912817895104895200850286865592583906113065196984969729281209330242327780866571784351751142727731278017855651966179206031022505101875163795943228734928461306204508800206952761913329090668651742131925913379758415374284089974825267594016321558386212996938431753336514384887867225197887349473622683646054336388997438262326929694118774343211834671864508826666631185511339026496724496233840369983347151722146208856326767527974540680569132070182075669105713724036613677240048191377556749884601647294548784934162327629423676664638480659970620386445992340158666431293993341622433118155677887354625362192377552315531892254946224098252604481812216675927481009825042063924884288620678148365270421336743493803865471963036950657571049298154137856957953606732887407984250622858049877993142325963754169485959233945890919317619721767922513219555427476694910763544278134570359570215915435330382289750749175284694380175673752400181188881187710438782567667897356528333040231452112187366381588489391729062353301840612382905522871442514975335930522294997800013293889878676630742865442750729808041322598190884006166010473642104111853994770355173001281392828340155577539317772908860939877546883908455044939848780766242702789012576460037939633214164569229598169687048083181105066677247195572948448099256550973147968621469198926834567150843396722348184219890398317815778393898596151562853706897761336931063575972404551587803546256193717090607379604327712744910541482396682625447481321351646589907941544691112689797258811162465951796787994675064672725407270053126489557085664905757255773601993793050681220173127579886103414885333534284223634388148389058986118427230726241369548000608156283546415410294958273734361895481841589037016721943545558507421972186698036949072353872115034445403598859326919885330937261094640009657621926289604454834240818606823367278586283135049573831937390154701483433293858001543313194805623020557225771613004039139650409458028666784750673558363074546330741196069186109116053504332917199573982582533426050123238346698838897598795678116447894034387378877138749619123204390950929340020168870261489467002643952133753369208717280021321901643698354435920023376789236430168658118248849515273900906866179799818891271732020795840835870734187906284024896381041259294226886069282584395046143544313018523168936744165608560029892080622067432873503914929840567008320346072995554297302690185985440192442459209372785318378336808348161709415440487567703435057545480462034081200200726371933744745225625603322910835290788785027452315364304690835459634425220505682492453732659238542758197586678530709150507352643827499063166235387054363862584234992214043319115753891881581966741939587004169910866306017627886552607096874082389952244994447360935674645505527466398831578206238242248692636633139677735546716786584016680316366617560436577357335030028858418625864391283901345716604044234592137085092037353011064095837740798133747784371960769370130567398556085132815330017223965978518048439203792847992850653343466742191735673683410736697765940279122528873572401605061767683852579004274081871404191163815550009317454254207790828924110022731388143744967047213011566680197942318597423383579459336172494897193909930583676945074679735036065656986974516132814978682934205742278893002902030175463730390851645224460050099817534446703960319558329587643330263330741123107465428503581232244550102028572543219647634075325842624659431600383811881208313453658156806250150178832549671890935988690379589097024846676016109563602289117846330335731764239591752042053267657936355585367988298217798564223215979574452487869638704367121156129595987279942988967304072784459060240053288313388944550929040198529626255231730619349993503779489266170510037805076612292210854730748189210512957373857584671901691041347224672140981257488020713666235958103352533991907221427852497597134959656503353097931235849153021433762944799561702866364318577072001303021445557967122223967927646924622852651578466539202909171585296168706338825055229905056575608307642173635192142935164457194507456829316026150176178630148611124890134286230684176222537065631065473143386938110202548642476775229839866474875593034540570981436933689888904822311561292937762015449482532664299122275823059092636467383336243004019555623095565869142828966779353642680337858056714608896782338319940102098981673145472864812872279410839521552928156737035912850915778129564913646552854796434311109058900081866591304492242563037142781302092528882024535545247264832495804321261210816116587122232746107620625879106986609449079661384018476707875970468519684042327605467278277272691797831018665214555860186640066370364658495606599776144902120691302103147782849189624715774122622830771982267174529314759390306959985338538259107216860157994947572915546763394640540406562628018775186829509263176196120195741827532208973081881127064959156639458220908964616506188138632315032390046719084750666289049942621299042335091280358996395758848474627618783737772118149806167078924553132720177978905838232679106699158047492702295088840347118448872509592604682155127337581748582920989932288264053635796464760415698639746549687648101483411228645225845368161603763936103621398125818023512922696543090208932670888090309848310478519422664961917689011215431887743480757941263038590344396572060983845789832351793821956733054004794822454301406064526774959431540982523474986088679700980754934983998424295775809769999931395530656799505296441014998297135707908608021156770939158466439153119835173020588572763716773960197348553223622742207252097561177437643531599526583492316978456056107459557357519435303566812588882430974181287786486465037662742003382664866057473221904082419506753115203787922010871514454255415090618862797293002763595864878065913165819001910639936650062905384510086608223834315677725812874281415418225812220217153618844580089923822649894016535605849411153170263674823412499063952732891548460976758584143233713151042031520474183772425702070808270190277210104020446944092119416906769048741684710454432433606017119704122902561827736278102506923778004472979048670296406240388348472844243109068742191594237219895740486475684443416715693260426991509202308703875724635113458891212839949237414193551522514413737745824518197584323659879293052874007747705338742015385164857476357454528593218565078045408439211510338463938357946036119212686485387393132286964064250967024779756055018164493831722358744494328432365775829375525531122096122485348557724848001168441672828776932300818887506316909807575487422521998204197351865111955949134128386650298539284608756165041747158698861287111205011446373951009288356504863788605923232612504203200972786408844105710961804795132272426039535688202326347405451871812826828468111838193082402213788589285102247711911532613959803107102003814444193753342985089942023906973559506786151335375398141731024527627118763036727388652506035711564046550747432430331706180333049856161172493385849397816450043937211379213883834490761626065337947627636219922783213698283900889253362189969027787006362836615471678941231788059837063766833470020264032505303972792849351134689127930936011873847921982306203555240727901173724770058848196918348843177455583426775498333459387538590676617622882064627364411790361599446082132033022362764362669967610008375398582903881582231610497995647430139205479197973979551078425569791386318385592725031367840229811315309122449385202168389230977532763957600703753887304908632701061550708456376920072110429363859869725229924406170836360577273875597906153147509939215896455799925818773805265878549461020154778169737463795173085414496203423282860724926799443856827919786253035052934618572503841532590144856079127529759575762834959867592695937257648940999241329944654437570108567504740671424106549881677322936615908670404813233634672978324530389378279942666561372035508213959113981163182307690744932950426963402370783013532685027702278518458483442335461534807407657630951620536872762192179162279967341653983999655480027326464883461860454866437234632347328472986512574725899475115466714958615609252527212524975159938395998813774552715768158070792463391273204803927782461045748531690648735991451949076000181002633484770829041566699106752711612881358171179500607477556340767690389615452093985435829645334977734643919873176009295869474637607110794830101874168164415551024168572583480795912784463597464094404999824241231554484410848858146492780533028603637241340572189941093942983659994627489524187742875996308767091086431292074527754883947259434619087474307177179293523652915213315639191180088978322366104482631551134448098415482864055392206554755267435566425136871596362842355950069561456805404949345510661677349943640259651403106672117961174728482251683247534254729170672001394399412481373272848039479761666012034919835338935766903296263429119859151591829796468997178893357699784157826359183870445206382740550055075619106077252030614189569724867875454191548105410652180967625520221586419591957989131117224628766391164901488751772370391327647779506223599108938273491720220000551970083057993993513807630493279595391014810154768539759401592195564506719437141622538016363362254025173195905650380577137692431782064666388933978526903548094408424124721242469097018897575349112836936095204408245339346115652485583438790920964842833082939354209504051877697378964956188566606072116611110817231292980591030213251822417739006820074283984548615873589032509765661519776404111578809594786300623641487463407626945145734264879895192119102133350884634575964997309703587113245917640847108210785284806289017164256709225550367869606025528875874367825844702433499122428704006882979045726613136176322516264106020012306911148851070743299003957572021377528408981426009583269468432542543789990594531260833718889980445200364406987201103715456008142674109309969753778791308539561777491474170329934808711672356409917575689015569255802479998007251803004527028041024832173096920452532133164140439821575419514924328031759931608300117556475158011000120667146219323737551774746567011401740676758177360079105946060605228838846434014769585256158877617889911146310027447302628075416742554031550310367844654292990725989281455676321750384428714322495351626943835153953548268867888878026305578377916762940732748594986031564596843276757080057632952116798308020633926232581073543555050012236538710489093911676027226178704329724036466841559637537296218613007457582192284611194685214907837226917465519323089280515388471527983926313184295557067842084830739348292217030322283569695695956723437733766762348996459565377404514495160941872545714448929653071115911585404456837854750565947226644293858414552188335731008255188592980520100071047734877326503207617852460532346213742635226968443480273182496264215263611670657236419463619468002638924011191077285844297820988911374158588326722713654747467321038107812739112289510145538566197822232169790717809534586786410369327356477332346475839618822472556449979649232430012088356377689545738359032033577750853472515840969613105199295967537484999921733437750937862579228510443970809915188717224579186875761348327499533016473220595483451251764872940397204535672450274147061976529922433444797752958634755381781652599287940657155899683918494104525599065911213051974414483298472256437765281138916072112620691527793726622599695049617443157226009695151836177778794003689275019835672450338280430594767080150291767352952403175388588498515810746129481237094947763010953237965896520746376487812237724177604284486423795885661800264391867470018686012035629184249614753678791175064656156815836106220151055659683307549910653980511339799441358890760864214280743344313445768824910022748414310775526924404954437692304454990140475500206533224834586823748292820371053070521012746645080490168904991476428068284230293667784467411224923513206791709182572704307376006269204000612803012537527130241197202252094223312811116332297403048871658610204454254321167171451480009409206234038572625310372234902880139343520048980529349549483316658669929212223567321553764054951982109280487041713840694117967041369307180155408679588521573591654780853321935201063709447226749002892946839501313896193389339325259683887835030792918703230709055061021934666110641864960698308255091156311109720296890996662723710817571175546298058025324945068042313669450340637658440832749116326414288946286916443047168158191273156678456253003765359335745200230442268097612868358246718859246301859734642571888422327996367318140965484042026556128202958485405419904053452286592203111832518162980972481924934370427905319992582760687413635725622274982707266425213621779914425198682331381103925687188921665170294294698139375792673392116253805122494223304132958986043565683252278962508199266279557814570061385618353934590660933729942778269792208006795616102033224688453173969656408226483058668891705015555879801521371636867648954320337936269790991509995307016468088907665929745823604371791205183800964984809371227818347915131594153930897971181804865388918582433224202286055193268394946804525582186813268316925083076627660065663611810221638256888529049619774483844409287798647662645610904278363297457543065850650508609473220143074297868480715613699541123305682319869761948293791321310862652784556183486051440998166963988575447874586333626879370208423825130060757555600563185272668063912804789862406955902278666535224955245334360839870171444746719724236322386462747203111773868084967137560281527357995243568318536321186888545923375074054556675141013440371146335781354704388102397854990203229803091830163941521817647517186500567185642584889157685141860579596607865727795998247652693026835801876433676637557404794162791301415984665959015646474944373848934884530603962311110692685168451957217029809549719198476439497228935772975823247032157551472827580765452876564003015715184057444262451468779262552489131361249813732805238829570596104022535250954993654341099525361417994903597216544749988735223045194000526052222939624185333825345961648528629789191483707590389051857962345817106799897521893444746721843759132424193252315553772747416184613710849278825456119007406234642402752274961122662723052661467994640596202001896832344814660608499332596769718957722727582344728907227260461284741507893832661457747506528855417529266399631896962089000474894331949967126144857382233316467193267030599495188063733132175641406264727096191781726885313940290640522283761883926624899956125614621115850882590813049391902137335130269006129792720186840104962468641888402180759091360289165661220854864612760219225863771199721676722542978658302453489609218890415137125836933360745000448923422763929748509311829375562034804055427285010672273261118388848548155160699526673729744914429849565134439245230917406443953150698563896479953535848891198142433946814197465022399470491502170351223472414384996603936170212640066667903122945185216925063382237447884221716430292902958221556487185530216419002332581738986357421404891418788866984748352088670095891063667195196933850908619440224863635900481350063664266743156739818076198485500426904057150617412142212549776440670354350267552130593601032829762820219949085407412324448743045378724576070270297522139568296026943073853510825045199095347634248378614079613796150134800969437883265770826956707720418642973203976676532769518902706618719280554980746139050796458570425643013560198747066090397821422278885419367476252595132393263807970667595090135216540325772252448511239062331802660333465667640317646169547069844493747660020669121856072887663492271197689797832504503190468287808204575840735554994944837584496900212300888337752904657122293703344038328354012691157863800077410087140839118424223824562164737647346556654117746638648294953155096540389323921664668707743593512215725811694162574666700218900529642431641943727706626287959669198335488229901939180438827819789557177521916075624219885507180577353163882459510615353310893299066111479844790302193308848239818105054058293633969985978926833696821505220489514237176440272468026336673990198068791734018011078125284896109084182864697363203715806487469012457083389685679568656837240993049470539962041273852872583089390727246125154912608907780456482879338293468656450946880005934440113779227143163369999739847001442983067870769850405213215596646974674127243010923350955542900494172770136276149214478067777763344723497956241202307537323731765185427501296231016239359569539679767157298760525334907694139726654166901198243602431764809232770384243524512983348995721116662806473017339613050265785737792382707787984351391612775151694963610308814009413742652504227254245034437599386390095498627939259884830090415614196436363657630154709677745485641312286897275979002902854951893567783270119147784584431913663274778447488944561633143998136657661242382383759222136466838240976003160106549474185922419050621667834185876485644094519813650797992527827386930938406796002264404344909151662918040982610909314380022562670661485345825270417735571207223034629896563373140397855233528641249313957657364998413704795556319801135491815663504941377135323500961070051926289309208822867980677888214755694451584334302323080959501588374268602541452109869164582878848100160806538159585132819802832555047420466555625882509751262075511999134814177651145806675293337028661504122381970332187368624595914837366135486228215922892267158188946353938784473111587229588834350033096085521647141911564676150034733301187219397569540450958473369898070664342124669801886491435684648579656198763090666437001388558045610006068590383406091751048583087330263742151522083150398551455100816189903824672475301276193317513289141799731428696098359278348666248567308459500123158771301325052171492005471533118831461519183223083760034833434410740197074631724599202113313614666694015984477162544233633365739759633800830509423575411829548893526426208983804485829228443685177042088989013635235040862121269963573728634476707645607179212176390205060126685770955423898162169562600391460367508667515630772235597848782663831570465762904520035510210056142841669452218899931071503967097279623225554530388141170362600921649231451361321626306746977818773081610865034235391262914839622103124778489713657089166331778506454845914611205045773982027260847341453282452560661288698378748295968247749340687086925827905765501068107075927814059590335118033867060397273501707142921377623686178534806655456894435287805859388589560411940306957167061581758864649963694139662995446676583548312037995637655708440468296448916142814832568341911993602729945748876239015678966824144886074198896420438903235171989651902512511345889765870929185284847051505167202529014984347099215131569677849580202224577768349296007171120894016808457403933898285698051223616239671400839295722529963317870976074566820415386836874279544061305229053383097917368705152401687422778812999043035288359357928087046578371679504448611340107510569295410061717472507919938308158302834525711496816361224453801160804162931322981911586134161858168519313556354008653229189964327683686518579731752570599396156105140815690614949995950309093484009240065932976301781905541624486851001407414516813518532913303777544031932398594470996151381915756570752663111496581995056903155180730772539665157055750556267389409114245036626774907438581548986616565139531425283871049058876708849191861493664810463469347704823094922189610447884747335972453086688958260492377925138440615002814496261569881677342492979988244958857832854782206362005710662816580586489366223681258812005669318660613384753480146865498881475577265293790201999816859218580848084632731949895214767049509652115999961798769674750210041358036416797010547758429429709875289611437963513791498307195393242546175111374270524518600644355035060194050160386768144879891007483389643202568667942882417514012188393865577204465498401658294816787425045892246526804452136617821840014981047731407097376591533303240526633707714612130281406271028066800249649275497724575924681440636098730382107489495501626463595306056721922402598572577133670638432424378155699291381337570029171500067305416053990816472906611433400143401222408014640129487640056687204546560383426189191565347460481747909772975007915950197507749313611802846698566635674804344887104652008223992395866881559564010022222554278502379110332796275199837829628431496636930168003039691196296323437059332518837946483916516861860179930322944623242179749675102041512155908198919901667114549993394572647681689652653091908538278539781682131083962942844673594294799652524885967489715022462253262584737620389872405274246795762686179107562318708741248844525287536282309114888466210095910355362302770159273127364914578291797211873195727539179001549618084773101685456373956076623693131308505979733332603617580175686132174099091397624024175654483024572551658456066412844301520516017125067961745286820585598199859692116567324602712806354386857509484756772002290718536015416661269686664241958820451410969237870261668220922072755256268425152843231955945076828548377348622254642356144691574974986570923493897391132993839394548893222720635667805508959363273414920088478002356619894833371526026269703000633115283932333369508285845130531741670697575575952111902474219986098321683553091675347210068318054758624061903047798670495950028862501346025796740755941904554227657982621777579697544740412437024885282905684963657350195478810107812672576884755904355953514971684106345073081315619129680591943986971283770375662844074087267377198512195031182577615661992156046444171178669696773856782490603384430030466821123110193339109470610375784347017165696540852093729846810498366271284126112572433817444384543026533544771279885513589055614603128518184126156430879137419642172700550090392742708544760081829364155465357486960535810761445501545588057489739420546220864429445978596091739105849223232928838975908837340578433188862121826973543423497096619141045474334271865264348976678601789650814949305356193186297325396773015645052102725929124400680950836488614106103016787839373584992918958067763205371404617455922460995667179762346429581580456175125827304910375486941244748287767249633505862118707769536060547300522731638495329990004363883303066844843478495155567568596641267824144061484717234727338281966785671282819860871296368696851161452521228198797802561375617138545725447922775969315230440042504778689758145749933060357093169599676496917966725903492868288301179237853594810154317743216622126723520110888015631037080965111714513562387904873032662942875177883294053279663252769006118477351949076883646577120110841619667281268242103011263422941806340936358715085677429455714353069151364907322470553574754474170457844342817928361057979254068933963057343113979487531063262988827665607401154301309659620425871739274483676636690057554417313640854222818735709448901569249201852389083834901587221051977510146277822786271880053968308996822793913689119773526273114901913059401038810783621001348302386295501447895497360432981975855149534353439704408377865762633107661472957211036500746730946266811404086832154220571199801265303393746276615359500666521505694341602132482647307154135552154205718173316348307672082983902587439198024991994624271434145799152910340362834431141451427754430928760699943333297842220232207119441786451024793391901281157684285141141613122832081066444714323673412466796798763401660840759530029449706277408089077218681674726173104159037642128066090995429826845464781839660534802912416971227683656053851539074134395837480674251505072330881914733293710227697411338109342103205889549844767016329287033436468544196438368538680451143761823311251105921382497277900217852849590670974188333483412672769402706873966051076270387281710590789840425156606079299621840652291838110646833352650561548694780682819707895955084904610237492652001709869245536049431224353991816246992740326681830653500185118214371421584112399955197667105655156983742151088956156368894057375379039336566115483203663347324254006824113176411664133039680648399895141459171008523164651191255959416134077776005619244978882135657872202027158429850241868194560331042484592371233747707332610933358758341120544028611384524925999121235947894210698714841203886097170414880240286809162714356092120567036814164916636291990861016529637457901122727146346457770537904625921179383115067285748234567714873216373662935229340607182379841657453195311591680423046677554978034650802401439280357217905483917061280893290609922080625400320634325078076828381807555099700809920936475026840976759344130160686950206646848497706370868595016067232392046756812642329999661022907899215634537030843838336771652236979712844509701537841952994272110900367122853963253442743269094223226943517050008889384290832057165080411674093942052268197851062719713730287137044221759826991045057746272392235298620159629831763560366726863339021598349346971049994620392103640276867384269463177298182660492795520238339665543523265089073497885110849324227125087511326017893789065325286784137188430256010851021117707530602778761900711154859244567119555502267620120882381540953360797952182742879168385285036270133193623861090316437479718544866314082772066575123496735910481480372754210479476325674479160998387429795954098288851331992721252624624069466117491818472885861448437073514600028976939194240857818268199100610209139111102686678204716454876142967926705436630350180388552986618518913421292736531424945267668905515633566071602284501083020938313969864795130698584888999585986162724904749306326639517823200371273537347962280828707776128309772727385839196186644355871908465738877142285901289346703133542602457567856474596620164451635484969148638957986933277172356201336566047562539633019894413492688341680473076690880468523421684061853107748017670603085103376393911262646539033971801790635180174824904129408247442869365899948479202303120904879640003087531348047597962285217720108065294316798114438859687590301622728511258152020550054122580878734158814708521511222026947421066256458488632963669382506690368195474265541575987502225725617546910865050251002292856583716163837472882875625077522488052764638004810020295101060646994797767432458510217018476285529263680923509264843702081121620404865512891150916717987653689910708495020738578680139228652508316164291754134191884440560634166829777274636334430489273556611059362584596787320206473232006582103282178111170649646989831082590466124122822902637492439120398601215900579398393914715703328450004542169640475670096205929480984369032542670502081447756866785439206083654725303715914750543228364596478714378146841346964149344227675620036150951050087679668227521261220776595464950790620497554912303155351049981059777586875776617635694358374826771399227570321169498911941545392905831967393048992618446110784110730619017190829561131588787109282622386893031367504006856588127752746064904865897598930208519120513602441161576280747123456552355737527875568040855415769667225770031209854010748519675269982330468858314218421474539251502941431402130841374293317070333874931557101158126651518576791490752449806888384857896679006117763594940929921548956247346758864833735436978916750591704916758034340610940264963759607831318410683010224718687568433963562676887179450663915783377899931715215472590906396018409761861418179081400718307102876312964242365260809035388884131286528154341208257222572480035922454214174139816016890650939238924887763432968936461112806218971551010174017037202695613753350441924932947124559065778713621791770086085204833582156400824702124187677383342250413298781787393636169107242279136291957654644507238545830893497681153025871237501811938568469601595986116431899931476474666846955863164685573573455790755449931703316199529847917868519875940375611947633395895557394720915292417358135374415843488776540595622836826287348835361332254529003587579274914133826865861841656186846067538617421162188513938804342136842319108402411836466027362390358989743545035548686665030587491301412293072911467736576753018484866019692898656072872343256741560461216404402701911690406708632919676813291613895669904931194563104343387099168552779719011499829217767870983327655088535348432588629451913597808023762067465768796919453659611681575848759867934544737613894107275377796939529899320295527406396650402257045907988941800420516031045911682734297569250861596886293742578958610831811695619799973901493786046625531871631030899268632046400540471722248225810776594562036137485129123811950682812890366690591913956800461321584936868386463142985112644887265542442148243136269691486957913094936624357538456837148595690814083654569768648230308168369631061268921779099453728628015166534119574437949300467490432765152533843136828328662452883658813174632695042121705133382630116163458434860528582733897357181339715401956384654700679117362245230631187415335180219265175069583640682657251722760445394026334148003214945974457118366061734716881000978228891378306022011920754483631286029304727704695830349480549736244370597336393735460982471627706587607266331739304934454380555476022702505470939259732858390883162124550612303070893122226170266921116832881333962132363521411373680797075253740844120052583827570368501803069755865238776986843656727679418866117498723124766028341515339066313042504655530676550939524784775709761908225319670729751245409899305335956890551477775748653296139161737414140153820520977114091945237061607993675855924712997653176049911809199413180991466268142903438359447231270138875323092617357634580175318922926784390876695300119469239381161672405610713137983458322711651428065128460358036384608199704275639195352823044348759966572055164941945278894616282872673296316253545074522500975010485115854686522430768785051810044123617962014821099703553327354435165399632316037969080808631236273639374968554064965453978852594106496607400746961972398757079350757779297260474394424367576426485503953386380812011542706965568954474813435450701872157443466025848151295110682237466192590647150898161255674991391890533776485180309681766941899984475695288477251869465174521525584361799948698431759371231509769314542345940170537018105153382107768972063652946286829684889568898663711374635174196189668665937296507243467467679859149538003945455967141568378132411596354846714548703245893548715840212288518076750043586046456266215414649110177270186908645510040737406330476126069186804745374536493100186746657510999806681358856544589371959190473254252775823577818041396541865186200906656884394691943065594516843022139888192598833104132971328456863691873785660602304624730136708868184452320839282734991180906665481180770816051109788631272807316950128438010680215510401365789955105698167318427156134867606945400040087808912821827813662073555217151164846609731401662083624021482562990745678790060580662771515871746221799440726687867619343460364904183873137722972212733751918157661832077462910183955372919070972175902095741046831064897924074998506468981216039038194618615853178055267911444454867211983161890530939388840865460424151117704985359321413749604512772053615384070538750265529762488451650621692973093757420139257933765166683018828521468836833394466928403608510599260508163495294511772245299170916626297708896622995572064741760501195264490435890888466354300691224742980239171881415574599762390055649285302747193414835986512436339613065478786132898428906096427799002376001845009335999481394624912973930019719899236383555328544132651253300288634093743499930023888871794599127934331496185009501504507658509686736746396483219752479081569336060722646267349723953999540843941797751546964024192778249291421544059425749775246447147274485733584838952190857410309610713842356275272808524074670881735293740606472606009436043204805046501116569254604323755854629673869106291142196029147128454491213430056685457088393496265742801288273952440370999661358546213654691421363880282082611340291511437761397598820443281180912150358424325054214352813460948044240647427711906302421246472238190426152903273166081620886771557189811527274378884867405948241878521192930740823640118709087693599801162219677658129151982176210334902701647208932739159019410727826381771355882096367602633424395346630416845275101477248090585710430225144261239184261919034998008039177650149313025890161095128593553696095970590697321891265511240976523115113127936857177352531714245898043452092888811055891379012060560567779798551490269524306646447080575395057540225744734401490315665258052184109112073448447508921414098032713525087731858252080640964265467031189881301307453757434473365458226599046203128030225241044284632275707700302273884569008215646691188502169446275091827143746313198393699652312389613787682874233203015995252103722012005845249664793594446474851495410245407631551717056330148763967384332282234121850129748275646015216908040786275208174921152972876555060560168758540600836063788061390829892224783036135009891376131463310975398330633507515948818508814838270313517552719369124793369001225150897234823384670888455121149177945610696020087452782736488438641870204025597476447959617728643787769677402966778180533926415033875761820604383097301307383881759949088988451320120187799619313502063666798169894453093633831362176350447004861410013841499946260215302749064119815180583510890699574358397072209639693526866640149181812562525548594116817752947812438821974535127859163755494831751046742638433096956352342880426459243321464823357722366281769658043740298180146996020139934500964336360315762957463077968780061759692542212872919099194216301909218257150153708261452193736845158445967467827187322375863086780033839520066938637938291880726860635621443536123519530927092845553502389291098552985074289351432333021656835732385383968490529612127374579868927286336742173375236370778077275069187823966208496887868256941362611441148058451606044449791145509802912769054342434370361977439823770173902675576689532470287454348370527325055098337392824332506292712711136796415509445998744606424686766700715786821581507844560437416212661889787014354490322654287712750506170509839148776745767358419632315874131377026334341160321932225841984708611857391720899816165825738233912628854479015123918768218433295159049615083295406910576142736316510039828568951808823028129314636438560755139251869822334023788389414067951760793732325280225565731645703203129191675436436850530064128556616726739799551318128362622515714167375869349819426178756276304012466072873961849012839420837612624080067176688175312332748585401247176897115841879258542239270323863676570744405831640736948953863451354503403418806518702110174515058381605880280181887193310252831550987283613731098898863317659929320814571997830919889516233285828814174724907441271181551902461165393295525073326107067070585416136218591354307322264119632122709561788913733249185782061525535851355271418781358959439342471120936846956946013418846182293989307409774852828954473587216587392433855960035312537139599147439624600533716234290676313557385495825653563935801948238287589635981435109335545957892728433921145932142036475880935561434188416801525712510714100975557834309214391933294437890338487875460197218280040828135350486045979887375779355021837176953422472434042227842972010845325771914294563234048941973529456687024663683906322465498432901895556175363454333577874079634622855162544885316244690059412982453938203726094863529378035273840143829047746033543942003328992788165511046730801445521939965788195132687603620523795404042166450145775592293301394477454382054337452939887204218535582960784062192428202533395948354965218293740098197444893508589204315157333139240857493016233858084959099242211160721437432551576814310815164320998275453009009597281402905523428233676818644895751407782352769358357512754240728282849010540160428447831456620540960615379339043695047574593664756123876179638240406945868023129040959716321584826611087755603949609110914644403634592890803308711238846801081147724907309159124908147676105244959156760643361675753991637197249424763728237417785655350791908317403322090516084729228666084969551732413766457017579860790110099708514016418824402477259023593256205913648623918104608402118011371927665193507047175748284999692812454675548889822010531709731160603576090817260851150542283125681760553514379529973873279139943503768402513105410618673806372696462000603175071932238928164732478148425581123386393744162351528017209280041399779671351595440778347392140815390506625388265702844285709630012649687567402940129413513755955290088917710471906596946231384698261758096538361505111396390143820916823469311535772662521364858316327302190362045323943113631500621136275118367825394458938107173901693914393931636019597924554382887091333473159587793589649443305949358555156234041401108308259477586838947688214608427733168023272389670059197436049049243375780434738237066849686963145251155418825564849158531045376488181869039354598696915070253881902418528545220762229338484389048561144704331399956839525427471458189140057649471125196499910160186154149719780302868948699148325963479401426710018388545928044120114194665396387577526563694541346189161360202971321346776588003132816276329236806570608214093109745690271832929253631846117275519999968112089418326680163645362642982210114224925110136666779394535803107494161907048210377145839020432922068312301905480660632711345333028625470111324713305211924366896074762753979777570230205614181191266264191551645860576948709440196281183167271134506752259778098114664363704331446766897157985828513896321722605188331141549007608624623677007018684655251411237161034649978924150450265535538422427541393048158418197942759516264396706042647580538443733814551214893182182366279646940433016667999827746350181373851752000720935107276639203896774434775057413193041781242823964465290745072577827300646548058333926234024929395973363816595841569396985170504500591914417089346307134095080174852634958255510948104783308092280734310061654168072248105846284634421905851457954496395441861557386109337255126995521210210747753167461646360807653966843417900312789802846108971287398788716809938266544386022391034558748050389021207452976650707815419201353152690330734409994832232048309160011788023322560458832571997440745110216631053836128256613098311996552959597452140257720926039092104397725967225469946263176968889715842207637582887198214403124658516073196906006628565667262169545630425219137739900001633043954357376168758325154081732037164739964923692596536630295339116860211233492811761412871275699189200140173599961103373262641457581394798685086090316197120858702203503916213199835068988896337737392186970466543219416193161301665694982399895194914063519748294678368207236902439452827189049093806437267887057608143373701239340063941051391167934187481209644231826371402501132138684942310755197828977067067641205076972977865019699437667753860473942973871004001813982192925930472484675408684247856749739013450864806721036993639855373974196890253783665584202684419494416122032087644135866405884320249373281147707105495197084676852608481799408501505597600412561206859795829058543066386758198674846422097300300299759288893489383048788937289298302156245453713858531112389173139500556095310338408973747012673626181514243610443001434141644306576302032163161202185619415840231052073793228888906910975019935128924982695019107943238717567098495245490927542278362429237098228762950888532946051361759418022410166072042563107829944306372109025082668801929097964448768406878471001023884953551366038621315152907426755800885890888902998527101006327006788110639931037140495407060166905783380803702137552150864600992085534948673400310969693839250491901821103204182067753674655367697994351302228077890979592955108639796886806598474192796651103678285386294624030681721260259281445980992341178618867295244755793014981269114805040548258885404698906120952047563697126551146622166778954077191405179971433760365966401937076304995351581614592682789861666751877523290564379389591706506869742981867274391924830061192956984923361882614845575348722000969853584388635854086548618524488081541230146580012993954286523091284452884593027350649061046588328977613948701777790550345217403778172625328768125572256457144823582373064936714327001246873959282053269003052293565476099633880177241568255841829901759857251962064494090359614182285523057876540413326392149052364351267535383448495601657269306735175321048965693032940429162748547280703308092862678452093314277233480146586083200191966991707962114560676319014102954882996671576033026991674311208572033345483771256271413716561762320768347724892289734840327433324188051179042686247802263185511375512819144731395116287926531269493046375507522593225432017601563686128973224135737331010465919200155206568526938818419814411967430196172096320018203624024230929143334223567532447724069870792578000816755714965106761338931406583063796384989575745362194517383243286304047185961933824521300645434382165314759471484432521337585719439374593306304919102782447600754160197365604161914147455896723381336774459829657567559499301751456282795633629858200675296066771358549474683140111544827857184575728983823965635370078892287732343798330833514663056465429058443336190527704294866626668433048062338368576981861264191924756594686711032725488253476286394215835782104151089640521515171890872424647558463881893506382174911711172582058484347105749971515345239165111113376280583147428384580783947095575346812892433662719029363661187185880097178790553312278390338406773702963099255358684818859066349650003036289777266020732770568794254571455574546994853036494612135798151540378042274680826951762073058812770064304499451339593287525804968292093204318761828595633839987150094629033491395293094110538975775914672269792160351625712690300489307260429402423603280231077949425435973053669805311892199399057259183967502582654558634998886961329718566186142585427273740293942519497376388477585227635511612508542096082248679834198416955335751913899087195987753379395929965671692772194451834119057569190449693579600730037248172002007819885739671647805123326950647061573794386450286106009695736676397665794276786872390280485321956409317346210686490781664325760964376628660286627489832613595874462959183483638851398557100259191165049796026271185949836719996245038167174634392517623732148170423916489363536644787133295297472897263620311695196767242997169767105397807817007795839201413086425787496013946978336832172856506200152769164676830514123160552601649264965395597801677027176193600507404617026464854789215114558620638499997591578308311459399114128932824838484957286512365150628993525461446909607879713468616585890445291147179870756486395754081677778616170600510589051980943898219315333927144237311155002130775949960633281605058581774773521137601680432802728870908225409584596912191362979756655862773236132063328975864252674701447381885193872079637626045659046670543427356164502991668389209672461932353373848232482400502438975459266930907172968428988089535229565440971094740655429013786241055812780470571971120482005610448869808584128480778964349901991952275577050759156498994801564370399765493709104131163795762445261269497724504148434371745139867670348935654228491411906482366966622274927315958491191065842227060728526149745238266880231215921702453985583292933507238265125883570481713341832796539851779001990139796225662909906231549477827394776961974890943789335846419082860035607768769809734741344458923371719621135767155189817755568353533654099005943987255332106398118692930794855199813910966861407285420279077573891675755687539696226757307009479031562803727269884532008211452141242324020385250205538253528815235029341985272084609433337208990040147898435442768758464906836779639785170596179472097755974349403670374137951219020132632892942431323796400093376136627875086140891596356317340018932795048496958520478728212260656753886680510825071444824381190107201411887112666400160440268651238980151817757883658309205712589717880938246339893450632711071845593824834504934792605712011774582528753179276950248382260798191222050674304239862648681785188683243328405438761067461382309925149482297806561475891278727949330431723940169624806244048095355165103865336568319936048152766439403871604570485001204184444629279959235946372300768284824878039733540735708460733976887359216794443847626103203354108100475554806608553346202286080873544852059086035601931476623906079298625305490595833489340542630986789565235169663209294517134013096678514882025474879487221413844863244936175871913197357141816901068305589624383301931086538422905905292666990604401463928462645850185595979104476275028488894773648322973267528342574629466330868137107645936539986370339634953168106396513175480853354217330524245462803524545091949401004019782812016169469174994978180919527831079300844594439908017921300787510033165441096044630142666456460027633254681777316989595669807168492069679429795254017159240835469326608803538738890196739434442978735201930215109389798593413094040111973308373222762203030508991068149075782912248282888371052356997827400551690896709776105785820967863732353279406461766584867711183523773948282780168194339469574480561422845684204525171289894869029477613545659548034627370036472156491419718469553588968472972018754548585050464116581535914039163493160419321745097826599867016279334052358495619216936582849068926392228973414271612910433985486634762014317082186978269546270564036336443231214222606771493139573909581011754609000269858005065017087547207878775571096096277545836245217198705780966846016129433669268286629674278903389935722193837754087106060159807877879664506053702511528548133372937069889851762946274497099071600349860948526536145087258492180024299580656499678149152196691723961983863359238446059029836995878821289152630991028752172170589787731907108419385080181274310924321246798173678157306292284697637552406591051642697643605647163516938477161180551706797267677868131201053601396642656875149614899989665225653158050966833190984429825519757711208650535449793479309325516182075727080169378710815755887904546090962509123807972533090557743928050748839194436182524906295642873310287888595164175968753835309107006860574030507432966114715226400592288497047215269359108698821363508442330936263023434727517413091784809664281201540817451320408509696274018641693287402486483422163920428981118790656542091210189317324388561285483979318322157366143128573802562844585573922695851371229369083711803409741310336224364507741722892627551579879275916895200260645487996821762856239198691643530455854681724163197362967665465323076096103410177771219334519193819565338948010491212624553746526386686500793891783905614573868882650826798480125556960527986978372381550945693249236607278280420819104141162906681120541554318326444439997095629530584404090547361940940447146086771683116195775895450128558266009175663153835227202587427181313571302832904198766372881420844753394735333982154927361958710152579371493515423250460167649452428572425403668641185568673600683972729600834131939469922432837283792636648174538660549541621242505642622856058088939920582923921852356033968684915062509774213519138809875760231666377304867178060882671031357285686472388886566077986576831504484036320060331339416090983406515526889664912374003272141453857335389689647909697661601858444431916020006500115070211717284368522565136498176533681414620295741276186449993276522086817134983559316842964737497533290497206788655670366818027579566157331434675065653509502161965454285982729564241282540097902266443886386223852065536537660145216213106938547395232346061423355712216282657062939405393830533738859845800144819076470485057724248664029662866007620443115087457025357083070849802113646051385736307998847675878281643637148509189041775165897546642387256749414685189562509971011707875805699158224420286673153846046747086089235461072406894642352101637911103216520687756913080230584938261672492394953169713136232157322154667907997907993150106249498536862139889152147748209110077655744113378609530570626074124539692292413412949880574105990184951204752441180157145158804271821274894139072264879152158783567818006733993678788242639946304481398087468490451184581764255811223805240394518773938019992947392776676589429498551276207436793463108793421728728297196967962323985617266217959238674222061152223348051207255728706125979496612257765173935318647312263894615965499428544907804747207199281950363559025250476770414226927546048685483143337304834080670165799323805663899319307733736878372297002865330603140416076180805323425089031172299188763842834991385499010280157897276894390019896629863571972609395718799944781615231334797653724546012742429932863348897354615067917741624586316025471873380043231489977829657749978691158800389778614791393134889878736410640168051589992573647504526399614586705414991666749658969924296782697732555956153730827322490074315304621795052085948226071897225037194146397788843409000995441601188680097161268161429437622020287737284690336207459544400001070307190329322918126021068620410259889485589859288929446878244940411288342066897270851424257076329453581151604364155825488426486468250757043787034314594858863080124294057403364606813535336597834324905057672125826315667876957873956408688658426039661561543484212832837780088336667981786929912041851657664572480469651726124071306639256476326808942783398160354916239800992239241860146117210413205836091583055845987938219716534946004905863983210170052972350509042006761176159001980170195937589903296249071006619834515030460339396845707057668928945692632189631683272616663346562408512924029461620240040526418048336743818574157240642611644221374440582929353766128094871769337635914205075526085359950064833142227336374324056240116891115539924334379643360971585823714644686317180345176466275771884974587158536858836959644030179687670797696537347272137763421473469179614571880922286107271800092768240151746114869076244455369258847589664032630279281402996453957497250854302616406266056025074933705129534300870990054794306858797629612090730251931377683643762481658185475248188361035821681165268043362767897188611083249033015099275078495562926700080563655686898464305107681926585365290204615346141465513764018685147996108775527174877944203223583463236300917547564515963515962836207554996628639557865830007849210037440303523585766275594958992953961255148157006019971907564970723752640286209541627167320626593398899987726258138934925092140092089487706872627207610204569456644061352362097691624628191153562925437965061550539134432253261462598175022919034757847954500275595313767701304740383673911348139217525294035408904625799877079104695732040310817232122645982573483657895789948661657053940968367161955351743123947601307345468299163577201474392887560955469886119543080673984337418737207612899966760987437350163239544130248302955805893760210453638648255493363405181872600171409242318355384054235193422254526998811421961743524306941216951717371904815759065140190355328913684053741936535727873688074948679685111305676370148650819662167034112909117724604970333715325423750378029067302915243876499841296817607807184483820382408510502711972649964165844291323452906668476360666094843217821532725455104462237904654035185215280194101999074523296459114133963930045434364894802411154140443150341468033967336164458526708047314460004071556517779366098332732842979750860246821059377560510872909284927090114167990309106146611378895221439409927479028810858594998560451731881060367676512844661452469280080306683579528370287637295372379422204725274639637597039051100964159891094444401402481313608595044189227862905644907920744073944824285737115685960419655716133766090935158926930384465015705739316158140066012246901876536088656734362194555332173903416069421314111467094983639556944559301860021467916643858292277474271946971747878802336707226791869130114880506851939111235221258232511846115108820176579508772408663158347996425661154373740057769534468279512380867322710115932172066138097375743401008091139044012824880872265757867913543792654146204395193180081054079873741903636933457611010219337916697769709154504196801607960267264090892980738924092745234882512128539480099634364455265392059784371585997495387902600897620279415582183119866136732510956917756639721661348574841090908739272210562731362099516768391767717835698533247128020055943854824063437185631081372770036899747816104133715601909391970709704523537572918355148669278566622355855154569516877053517624762036931770669410424143741368506972150995901156024005062887690054217557149173619610373395098194656285101403871811107569623477062922123600750407687374761477992600486605569925776938286104377824000355052014369484922832575961742788432483365967408020803822546359711429585934065926847314811371600638322036898651329853165783109234270431779571402639005965132323472586041325665631417127564418235087123269699906767128437502870588383325443796900657356070423106193941078073325691578069161132353226725017029708641993257936575173022279030472499371399170439349744407434332081555616593311047615025597148073569243114659818531176297118986241433026350771692701528162694902816845830756326030940431954504974609779436044654372812220559608290103836206007370727434262446574464100794139265802519806926202067867772155675668324103930534055820892895138897890283191741888529679611701059486339627624992925202747475885269731428331220565912854365049032227474550893015056965613950606001994039259786620101737848294503513060872493403415828421323940058151501568313600687348499264831803751246133418289898539788171300979657722954095567021561403887053408178143806869905659322267016940953846085656319188449703553337312050048180606081675304345396054467136193353313267896664511515295627266648005061625658505616048170814927917549309167532051645904312967991323056800128392988369611096667850763441141661032894571482851421674442190765030956703852174719474725511448656349856214929476475393999992102538947954089880617303818753473895910034116169465688510596219556630532439055215959597056112944442787136610105992273622176572819732656319376952285351115055049329465038813212081042806160485057897768717566855912423251526085621769004790899419362177926493465595969958454455350850152718321455071213619138838641961885236845040035049462819855287289969024035981949127443650081770460206237071861481047729554723409167059682733101923887722935899495719461153085178002862518706932858084741091698980305261262206152739066708039432524038062888007072477226014139127849781636505364635221320139828643896257066781283644860823097393801399606804413712499479786951511609115130006920249207163131919296143683400438893499475929996406971840836017088209286302966596678186869385608443743450470439579364094463087937963889496547308119830128256186696691864667639847267915637466014679793132406821384123534365606425646421769545950106812281713154838948392803003859823136750101057198389155480691597034901705562773624445240140879385401356423043681947951029011362712709246522694306870281457939448191947246298708610250008353470260657832492737266299819976622387594673784900774149470811495924825906851283218080122862967425459541969040229858687052077348334741549097400600435556888132967384726076461641590969845409186096356570889565474833400493152909365842880714470594687167207190833476219059827097238183105596499328241635768198758245714410702496146956469922405731434948476005539069602388255133770490030724947656220703711205723847489547195019760706835894946575708189055060470784294000845275632967035037733662264971948401345331590209336827931284690799105394142168827094214743094769616116907324990644777576089543515364667519537889774453658913254433652245306071033313495191161808058417737671717305356987972712200154536293162308525358902810313763191526037421574657221545738627469594299880556337177404851095650557777337149841220547223456855708188854516517078619342552371783737479972780739840809636965949419932405975024262004806591337478681962809281202184179288978357222894502659327403073616398560513014736036816046518534546062172123971323582010540517837039825793932416386567982420287068636673131101343932368768574811802480992939776058234286301843173586261840046914937486278036604745532596971948610928341339161875108098367314393136346292924596776188190752532863365679188378601679189205003354204355426933409081218900392360576337337049405945131395354175506169896654881496071360416683673200856870086172297037106703976824050344198801451112575385964270046713530322923835428167112831616545201447125994750963543807238550770136866096772649182868383834098538701158286978043345262513445645555513640596737790920486034513889048974015433370084950032602094315418423049117091274914261602901163131078544561022574007499288886483003238609615601427450537558689329668163273101840844984922094370974736984331173502900271180126453093538250019213935320558675348920858855442147599975950396099508229147634927562747577027443839270717882186357779883555821121763511966038560208680958809097055143523822923609744939070898718179562862377534412284897617882606022347830329336913029185716643635912479819632885924683123041910980989368895532250906668410106269659535855883446856057729668523412920125707028026291666090063482784736448603347863001982199042104984762505688280413246695175137026198989826251828106899949411805759885639063736571395592257886982111475924819839737839167492910620262696030154785736368130950048811672937794578008972532896954095398263516790752486856488676153576288668968253473091404545555557660443553815989146593131197181708529606169995199369869431431929721544992594587120180190394812091233859241931050425865554280339435310547240380650946223799234753940085778344020966423451723811510366540356892556671527352191489585400330737737337482501109755169839546672802813459145565007414069729413437642428153645148330295681438419715322538973862233083978734588736999456202260305505496854775399000933748640197875809545710464742435699039974321890837014475988542529822395602984811037260355519141014766442865082865877716819800661476252677055367039226396196950859339667733527686381623604191292924860618085736705176037498836748584254395953625173199812828499673050507120454688048686646564291311537368515146722231923909286911193332220103004222599979858184080007010934108610498963229170119497336628385641455008787110382860535516870950272173588362585200250866867023828649527190082648325579548997378580027835045481983077993855607354279189917522264949889648200375949414834887497893692841250406635808286844521000384300512445759758747886769004657309142750007460913226697686791697903127120199047854270992801516670328222825948758202138218318504582552661920967424400398407353339567846467194376535867538467040672706939576665373761431872816076025919400532240154351945196484929930892058401970712101500494383436416810986434203774784184141864164365683641261995369754114045933982953292077109600289994299305319799084659815925073764578313084117044520377317568550506456974497706223801175398210770997917649700033104920111757235188804637873463733097364736161465902350808608511748066297955218184108846502111086624511266967253961044581478564953897917024939368202352096417054206321721508561788776431784936894419632073398557079304012558598108859109252345946292749337550524755438361910332577304519620585854787798559868988758904596811001261278400035171045377915495651116663637901850348222083050450747276514705683718591095033904228986916754702328318903484358806750693395841097988731111809809554473063611398972396463196838743059972254998376762621860374617774229881219295072453498201003612813586078868329477701742327990191160832879254667533096821218160440392734983587086343076881978848836987570500845261626863114444642787341703041575783268041140572481118315900297596169339363425702912848397085017068493180912908990813390775958156591075553179586487276705151280945236748909993557981400642935188070189219933778941002416726765143339162522956626444609564669076912303326050873765986262920347950677066019529215068889457143662222980603405557107441851534289687479651483701684023214839800473382313361867609949677429701278824379455484386581257281081353723976878409703553679773004866372081726969971880421466231672439329566874441875040477564297200043144011546496858532339431512734733508871550802664630938582019718897894330952177653565759136990934039684055848869266754377696528916756414013275806523775845361310626959974862528646919577364570597751919820874608066197171742833333610749851932905710552808978752718475797805471444657375656679682027923390368058799214160654013475006573032544174992717166298063201478080870363957708931699437515945186715361816082615190295740503459112764876498187971754738324814722103002915729877545825216431287332844408528365560966890875118091405860112824428386536235179431543557755488440358809533434806394503703141065256623021846651320522975324906145023475902464023169862124061076209057113353456257893142897585360791172050204307783308869075670349959620911766122555395101040982620528000360680328416916854331422623954266010761501951080447418899751715098177244411245581316429846214834120796957633108417859598123052434759994419642540026675932656311342635006964371714103367663273900443169461527441776757357339633690851760574622392063375087276182498178445521891029919738142171861266869464661283085858303958851999732605834550746938897974728937970983350998703489633583736337767155930307917936805395192046185040258168892232925175360805415698149758567855607950544349714057016758731639852177470901403426770956414313618827209177763890224501481301070554893596938886656735278704645291141370257082123899525342198504919403815502299227835070957067748555170706054796506087474234135556566835508347220282453839517686357281184574494136440771350865330162214897761257791340315085030896247654071433201828994137956596524523871268734636954786653156841352984191493297346582740782547572059709629190501058060523598040801984302276130685190232684366606023523276817364273526826257286178956817703609008416370977005630410079053088408901381264401266490513531634007009889514362980946618371589038724182780766467169612167671095436118263319974515649769930109857929389101154767240646759997493282090636199775455921404584711662477378984670527119192477032189342876222685195163568082800428454836987425644745284475994276310257639297581131299981116917935415303734092143548156125232175965425950072273290981162045827030536421006024189252141861595950890600105689546988908055018537115674449495680893907388216782172912656367250663575789906739066724224268193765124499349885362985139991350506076410585816923005537005292473683546564597952683551932593436726120185675967006911072240563859313925709940554152535754684328466481776534420097171603623609995041877406400493372219128402989429215831439681643086722746149070600525517323787326272058370250675477163681752022057674852826359259302008546993218702533872149965435607495984320178951306842492138286459396080355682084257008418173212190237637070399212790298497772973672000406977742496485236109235598120631100270788715189977927162960736517294394074954469690616827485344796539548058530008014677920877702875422478441301269539901464620019216926740036855480209240241035966405957077183596070683196939255337516741246771057787164443650907988505684031867638467231222338136666281484945560437070176437897316536474300388589202601631810420834720567889602228604675690492774942987544864652579927501097811260825826259330765398412983387221563191659211195897097805711357939246833244473756668550605455985458642753300181276817891281328884541293785762868176199092069902189282057575573600060195271078288422537158300901910340085437856510566649280760618101202797997160105969397408960918057776628562815976480327378639023720558456794097017175444531198599182798018310225327011175490416635198171881058271151791355059079687498376639099094544932497629790203597755271212728109372868170627807113292091169007041300072672555149994715641592136881817330783542388671891181350759083830074053463577940699761571724414181959458976889882326223572582266995561242692819918338226562271652034416971859771729690544231957271676127071031038880219936710586863252322097221246185475364660529342460475121355521115207850063796791145940683160389088621085624134884773495473887735688958942141706556105193644561848791214920543435297886980810196619647252001598305804629962726565839511989385278671133837234975746898338313478380975402741030270240342308533896692701134581281841433120386791950720600623424444687259970684948354493757040348253022252419100556365632822438645711312290516416939234308415518142595268655106643225109149007490209642119581111557945270032985662217152762296290481153280832441674533839116375733937538232317452438738219460572634279044489028392783060369630220877041546700955492346729348319492568936690173645595396935930167958287125036663123433017689722620102700893414488608929937092968723853912372419218583906806226644855233837473998194828772282920168501700245275565628855418544717731712452463478408515483923059107219307011590951049238916278022820876351009207319105752975681117766949070264432262747152780718696231987528843548577256941129036640617524009237358480699860188617773386728707280918471297565482357933117148485446538814532481219108729546778362494218023324031666360187511655687085840559038986068328951618410465547599022788534132008808041628969456916884229982526448315568545572407697829170849787508004546170293797846979038945049602161087212284689976107371492788500757095885598552336798191415623789998122906195003487629541996594500072185073365834620083823802493043054845008560653445854840283697471981065976964182638681831084278398938435169130465162664319113691533412665959302228384305668817817437286733509782302063035283625036252719908009914602442088578318301370192821751812933494367175801812721344894019520610716625861546297287583520619741641534448593278612159010123599718021657029378422994804563087980172063481751051731852356003806262759051942608026957908993745205958882947834514448276909320228961950336698145173944929790614353700501392705389432771389994496292689708786021979623739408405415136978908344599096328089330657171900980700409857618537090915251928416153401162695872351513466859741362489602786604957825416646083966589724134290769210095246358244498644682734712290753811154387451563395008916483195243827679480921032194934381468742743975821056361914094225216699040164560682002187037388498356553335924520729768891458356936519151454972519107940297188433478059565046325987005239165285598734532446189196186769678784687139577127140768529352942847637237641280954987485408279884105513258953579336853714308289097336664807261323798668317644453238050517569724677816707525854489369949379471110338670214523613448911927665897543240588594356582208566351973530800881735958472423948396185199302277276396789973186528135197896141010117836390842557186441010046359081991184562326965085187267162677920463703816973678623726683749004390547597088967334053157482282198353053847907400703303904893925229550227349963768967635540951969690162178454539736705002048604643322524051960984866598270704346097821505122547058762250107376610349480336729494420093315103594138676968607479877230583534560716479087867574717234269262747252071674708765562503938406540081963140506765853031293586266946044347596196045326691729684630870760943678841059522176620945203814042113326362925804723134434757175413240131699494661820080322458576982159151344746631597091819610330804814601890243001732072199804146525419686242200335407313426899588163540264839645726331037437884372936013716533064440007682448970772175616032571329310199400772200482616164818195282633500899614141428051392122895507120974570120487686659355106867035630854507823576165605587899387384034631380364590278058503021731898696747805923099064719237045429464288835972773698108066826899741091319354830390525351139086868722728006302587191002602815476647541789213032558233563286460704688827247837015765974793460460657452352264334269679183602065717148013045024586018265045935134826588876433181894308133094444010468405659934094487310812672800978684158563134229460661198315699522465001166617492285584398114141079308227139355870514129562307989897230490924250955533573688486244722524265278450891091860185660311640357737633822196105489327052867063185452415978093016751175163013249714210556306781184829269118115245718459487326617506996932993831496007002855605436123875298723618511750150661969378904879779986333900021334282069425744340569694855464824706900667112481898803587475988961204681341850574354422642455634854825648569447128050821037935709145205832008002017089564097237992911879292016638754266845246973270288875276685591802585995641368890687802959134582500195110473339783216102548009515057807363178087087172981827185948611333723787414603795553801350685641516129654270979924302250409654749680859806282352721659357947628547558313399476575183587486171220149560971566473150989061966341581789121891296378888205904457498859194213119997529066262821523404093636446352467334661596604567242035719544163297260739140188697616909531088611497462710571488517069982703576891975446086143840501287800309670948691242334227091747306612109435360219869921492437732317214984728637340334872239836952620906444704808397606733037688847538717838832212307517471148789238861743347816344839841385256303615006690208965999252935551081755888523553336911873897600633433587231294826485004919088714047692608244018627412947212462286131283774352751754700422656679521705443617065666983014907960861633980504640144940531616889342493175530351076883193716609965517989200704153362036523284962702687652010024716019552245410188958629449492602435032785321404092128116644266570469195159015219208760603078246696215578567200529632603778958013844496960022494864236674150650021504818692136398632395883771336035955661755514658380004703000736475883830981225308919856798447281821607293652797386280222045274631410685186044281067167036099255407282801509164551480805117798712530163270906921547847728651119280300729579487682955788665324068108200661237277530277879504116217722336189510456772911666346559532393968041328994909858786204723967940059121417392404723602803568170903664880678694359667241592831125885429699430355668934181996048427746659382351179790634323451018263780851675507881501538054636610578305961746051039813946984943389558329150868875706366796429827504109338517495467416666307324305605094103021051678957483665988825607347000026504409889857871281580333364273677572066302438850501539039705552735870139230139318647915019451032288688136217565417606064162551215112135486903911920068138956926694709429335754149892042443108273841091763965901178993734247141917468113348643962516240627296560096631473048376735422630520525407422896377468250265107445226110626266141079908158397877981691847564374596848630137272317170472979019373791473150430344667606001781503751644404423011114296322831412629311031566564893535570231954587614594123568671336044754768377771840727104266766387974524807047154398854952482688928328043702661260402469154245558352658489653815203256409600247403397993278611214337023285161222232990987159443016151682355213879551685153961368689013632915398062246451693377630875494746388195267523542799780886155475009351784138081834177061377100461743152073280899974543998374030123866121452998739534554003841113008588490598549219447818526973866061533155536980147215560671098238396115512769401086836189984411817909883674051617310608201595832143481053334631059550048388286042107748632370264836519735469951300753154167112596619461019599297135829116518200792760357463193172526888622141471294069425967135070914540303786429716245474042107582527331916386217037513607243074318228610103232595523959576910013939058600179866019911959327972551031131271757464852897020519405333337855278226934482730849081411386802345803119192578094176775179906753459320895471022016937895085350443059430137804423121428399139661772730082377830678413570621761295702564446687906255107094254778066158885196496781242792509743003589482583614878560469017106163262481256178418025338764608572529169950605355891921403289880756642646089852053653938610247511686563874927460205172975628051524901037830783097850025541943149792311581947071613077976259096426783201839345315608553924755405258575938905043509932788811795459575149814293758923060744543878642352434098568354287829158361848802562019868299777107113974720969822695492741546554122239217424520966040098885053764907943449238676914414852097556335759223513256865856593234074694208794655896957905580989553161611635787427244946024927077456951142534039955340139414792184995317756410252364642768401120092272213910350744940743207579709157387613100066028527569627461847224385900462100560873485371256658208782960594395853774251237441237669714669954994732568834679227773089752145119876271336400630701251510818923416871023338942693796397084098219322650317734886544049835961011501235509188345777104600431134061801912906697861842668596344341211687089589125928923327536918055370698068108144944007395707867966878072317524556330084431212488831783422018075211876098161945369210219166481995678727218060149010032388358528580561454661393561241871996486746140584344330268929724078916932350193343742445368504949727885125222778343000767847958559481574135089160352448241857923464403147722511478391840169242185528088569112167923582556854994157111296176202648457072923593307372281209863989641122918119936589093156010734540302577092217044070727838535762519196856070529142257880517923671772370308653413223656634305019365975431395176087445352718584089365903707503082493298961923865055727656919953454126152039464261161210176959710944967105782670451930285269142222038889150946129238853619295851866902286841248473407431464128292997262798069261788519963585846102538772158507251790143940911847554204095028575077837245460461218346792751684848998784510605316006112740203870850411749125162931886012452466468452904678148130975785148193052914676202288146429104573871102904066621769600894929072682917757563773176320966905247534822200812028594136693763015762263276608046178569131340551205156868792621788193552455057644120327908906935955876566762688961658598762344787297422798885008649910534528775258916048924499885866017389105473119663239531701571387974635439013719632935944763365246001758473123791559668623113120935717763214466659532756327185943400847348512217882601813320485719249522149682260115800040310797675317816394830298465987692312164952388543705832807967483042731243297450745593047979564305776004681939142419694339393189241844240536570087971650773374429572198629261475083133116011532547849949808951156458801993474940669452855384128508748536099517330253381961460728673599242185762110505759595972108252541958295638863999323156847400216123445564076898941263418083078990558588385228047795551019110258827703667514477346118064170375083319741968306195720815594517813679818183108981745279663995358298998561126757739849174767918889659409809030104029233282758974588480233669771165129825924629944583832053294885940767341384746593265120410646332525390320605629674770419116257177657267594414216414481200144381987364933821530087801160120218095958049425628404745613200026199109226613318660277905377094189738388269354358509737880600073234027496270333765973339725513524793855259910309456851248302999289051446518794996363373813405357653023483647458503107935960637204978056480885990650638396426101474443100151086617449254907803664611760450179396211563890530453570461351723189333729425567168015772234653544979461873012091706088997433584595439538291157317630974153188521523226628659758974402743000545630191226229070109763854549056075458298146825576864869505609128860326378862005784876674722744963767719806859866115947023530374912315524863702968311427092682829601193168995810613019888827742429732349647830542640753652327175259210335296665181523102269617094037455736674437676302635943519569419019476923102281947227173219595276802716461247590748471800990988545569882528172177225246502142912021528555885588464529994853385365724157644823134814053751829000195419110791301986885304130972944063680216257433465504055183784112747853384927491248829414601860091253700556859625325177100480453774230567436932261320644507525470659721523069680030344231555585474058953284064430386312815549354246796978457904333252964134916852798515950429455641422320889350236343170672152511702440253810867208835673072168102015859752083174696331292812502483909839554115475815780269989669885540406726237732573719796288171919380098122908392661774436675166375327778981198212774134523317084315990773532939414667854840052241973998099311661814269754926401196216032137888857973117097104794160431619038741575641164932002579003186368985914999936302651961156846625745332579350803606867065856040077857225744488191420039883332663115209654661852496433260654803407945403566742849081915147436588233863439549613055166483383909443586311619397165985208139426620584135691282413974650292205008839335398795223994396784507855202763445697594189769521881664291885348436503307746394242260288020762912291515497756758895262521402019388383314671435640189034031301722651165786688827099839774554515406879559884503774380005598035650362282750758104099983087702146018426776804977634886854460700251923163052136501452886764137886007061441155079488650426506372272389619023510883099469139046082278041269420047595839973055886852007123783507337584886156677596473024708124422643784618023837429248339085433885384111759300925321915937424597738450455354885915544478431720011233055031069899110486123196253216062791764012217408959227862224171371276952050213030069798247208711647969550743493901388244131113201465236336693103753697972765839075987741866311649555650777194650915999120332907753845161985658563966200474685490320328613446630688683964371146031562163931041670526761625331957070594561321220640224609368597753950469043023469662316070396751293277585416066253785729408048189363703806789704001341917549663449263118728225878982177179945697961988121674411434717626928365277966692850334743384467701771639079771179009129036750838684964075307803505926997594840542360367790982606774666442487085661994082831666620013295426357299301819626595210020793134452531914727702413563698386593600582171894721606967394972485430243770976585334981289937438201406649493397827846247047973225429475583196355064633945574261557849108152547647572870835197696626950363261249244585608202076824093388975709691518443234766685844951659670212709377365049266089425022744310877258057129113163184881780759379709053512797893939165756308804905016447076655780149897848128750074861277309752932852497457098239833697934714187191939187346249448941362298979429604491016585162732471679875065021971153036268817488344619077662700479312045226843793433964087634003836047634623286220150008055617520366524173017541989592190774554630746169801377132976567838560097656853474675492599702812845661232993547850558175827183355568625025117809295809154127523899367267631226889582266631461485941213068538631937465925296213160933973051981342661209777473858550327157695668639958805988225384659476046145571631720861153408869331636971363870870791543928528218069212387096780791900577512410026807976875611243304580582110347289095923533033453880930249182426640323442014925796641612200777697935110363746886623091491934127977844247758835600157439201623646939255504135563067955344992398726255895078943416261301387437554986164012355573952729963270511198038210449383062143266149728061984307517648960503602758058197150802024798254637172895230860114112837976374998982650967845987805169354938737928008690299626126928263705067137784826094774487428410058035289048776038891182462662764730232472079065097530535078086179196523657212208838129611309705229651088215543704373798855456180990836323216882139059038662839383784701273054496979153913320351604382292421641935635425496973362088517520731551434904925612270640839297506759666128409371285214953742902720487941067370321997400201069205204040766841616789040854099220758859157988893679189984908943917223225557257487049816097266198744668097460765093779193016972596254993614703717487830232657418253314005494615787626990007301847719662393127686298187006821157757451890463953083533437535532677442929259194603664363544368186449219844662212750843387797760954352273595472343654042773374932335302155396171098413136383030471625095959273331119441757038695695076856174400163132571501128034147744802972255500017769146395693129401754233669848016252072953964585001253021096279687226083845633094249479085156832160907715769078709325227050984107343836767999530837045776579027661672206599958726125485043868956392780960198633128571696431425768064183453652547115396098042041469753364495278028449870369816285622614857963419056933572232205752797215086102602454778632362103320118662961801049346846262304786615689178199198927771060753116790182408847569377833853590145864857477428396470507880662110350835948903360689348228503123651402071212238827038683139282651059005417859512468775183578534090514128864383128714519217822353229785993590098343024825767426892452441331943018531912824869923598084159331180203489808269616902164110692547972595955946500725448320188196230645543851098492996568932405454944764265840718551298502341102905944619101596789371501713765901981140471130546188764428159674003578088217550731564107036886063116838126465007702894052288824634746463642749088631274046507707171798052620526256850209695494319559782995175160816561424569958737962527748954996710223200685941716013953787519126910081653077106541078213500910263889237934725026280189108909311039297256964913490967451368675670051695616876368196299877239362358552748559468498485323846217949341629287966972333796011299053896702990971685251417870971565759432474136874464574232164493959851464660058033071203148710360371731317057151518501222979153095976695360110026050463067139307572611182786725720903849226191021025568170369019989916732600599112015496369763321794624724933965843919700453451331827750264854662211322091923080241804437611949863754585500866752071883743810386157781567387187386282944008000357726779614543579689015372481828725142427006392635453063912705174463725820459622190478992415868731250843414044995263829543068727411791411018569879530815316030090675328670187072493130153342054520311235240779621616191364084949667921313066603687443415931521390841686146841093875677721603524419291609333362668565918596523040353401454551585012597098303933624649671494972487418008118158073087400854445470100397442885947806119110652693941413489013473242656402756973677623178163848546088881754087288959053952215388785399074728482175689334074271256527961729510375714784510590216926631292326482432451135079233107083570653400399168525717026738555799178422292901774790214811017985865233349054623612862276167510070685307372834803515903220273235993788887084433121713928774449734654217568603858076109926275689817790260561073310088362545932578160324730879546274154044268777487328228121791837626188493531146732063622896451103767522813140340349132575318044794038100483570795866061446407586399456798035942654828592428460835146519756532752551750422737626738062162289657907293143553419050973687478263201686486219349427556492789992056100332805174145996097486071872332027541576110892254448932322702677364215395872431137388271871259519173485085537103468312961434547398335131918333419005512352100525200601271130411747441188659118061475284510250676575788413134338087577665164326517300955044070402687582380243373285923328746859589124105267892958007526171140696184874929615456277670234127428088706570345011931900947777990257815832268681404526764425967931525253897366653843463061702999876105893437447658176337480006362883624897194836390835655055403242083920649514191672864962749071068717280844799219678200343679184630546260532571768576521810976139057505751701639220860605677847459745239090557303985351451633848137974246061160236845762761272314314621233833186842086495984799804241716369641921687324874395757618886776307286841604060179074035415853803179469226672284553842361556578932793974558743407154254311162468909250237154578080929281472942877484337457777522526164533794899722628085488539961217784486890243622557683096541364093096534946808079176619647818549409144055860779978658236361077750419360645349604130245542157774064744919223668108535742431013159717273653523864709656799661987527822239822992770086046301485702270846123699537974858893363378450870475309858148255289997144433385633553088241151233571345272792128820119249803735121832306918708535825828518563719066425402950084992994967480554685867389598785485209754541050069435536780322262267817118270599344207241004940901477146535663761997402376845648175113386655680843768864351021719162465966315260368166760429292076646089818932735764388064062411721511491920574823285605997180869043298568671572150373216958643993517524081844333211236290739107877997497616972865532216530931228546793411565665070188559291932548851219301951917872717157822865296022938971132879181425233989858427041599169087805845791751459306715863028075157088414762739297423061659703681709384053738712808673375498923146409971933423511254617547354203191797183794020903266118223773773206362102886824222610451586244530648570616494975951543720747498297202476849980620731128875113236203640855681680472113599418653399118612000420029885160388003557657685823235553553073791788619607618569151807229754005666250052067546731539062209216975361498554405604617605685697332035995556468867834093154615704064159146113786052943354431541878528280283872261206345408007355676582338003910842425818277245440010614288487415463581490406421637704135521604418827989309475576615627897727266936203247431376414788785004651554551671009422292455138800779873646726589630860021825115281238020818687567119586704861062578428872798677578555643240367776735649737169863536538408502854015825889870203738683864959370393226070591460560799640908741202582787516413155825663616259239944528297156043681253390847031349875499026452897571641990945648785976953602820711575386758761723508889649108868106879055724749360875156827869174319225074856192328564415824302661884430417756888510822140051337894042181240647806434171588949645185764735773590699839686190279833530980916250102431174272713411289178384446308140809306840660120095910617508951871444348536690936727257607159322511896700210802637117051747624190734568290981659322675560055012321055748403327554548343780872593351643170103978917160776067609261520632708158778945329736402488640898496806851623206891626613863556341225292036336401603597395925907206150514424593411633425028324790337364835278320126410773661926021445071885747604513064926977630430723430201444509791763532276116597617804701828741826286573537930015376767337720068057705415420899355858224108060158996341130346873774730089983489094835880337965881812042443761710606054096573218562029447162857867727256604931417461665022068257141232695019099450848137088635622011856320163185237121749896146557841950897004261166274404153983503006328438932788018911521562814419201509964686896681955274328723106175938441808300890505653041701067702887887016568668958937220838644996456825530168097682409021829712499300010478481844111688595789418884028554807329970844312261070757799742384768567126367955594736474714451497513521028183502049293951546960522606862115263174666419186972584919557036009366574299281204438595669957424173074116527312441711872985486988066737813312114165238017187449186487253471629951439794698239565928458328713379858867893537626351981672943810121958214535475345788356320493821413305629039155441188556989296680371600617354486371142660428702286400644206139119753311014718804905693538112229429889345902288236746372411299485967141761860505690223645251380180793460847898550188560613242553087549142975437389301114559576039813933770480605284519531895630369490097341502404242780770018216142047147258474541787121725054375031408385119574453820627374312371084791196638362011824352175977507415091698144014128453187317366078490659714628136895323078852170630928721677853782949169810979153321223773981864067981605625659164984343977114870354624024739814387067738545823138972646034868752790233993697736394843300700505778448038943913761143489638157069577966673085783855234632758557032325236399478014300655251720189266944943210225634747564506822487310917732055086409137904857203877079315303593509488642331921229648651731017829905484988520487675491672143877553628932215710511832393361403962202826277723101202488202232575311021582471076120635372294021635885504158339950771079607711092130845314542890259551188848518054266403564616709809432012441813926962668462149697505850423298573919566785571619391592266034023582154249290814398719803020270668142313814729327808388029203950062448082401364316334514294140183851866741154155197185371910475592298147462473137571479540221350548881692503501370136144569402054725159324089606170709608477697613519704994424043760851055630314321205165498399984241423183547129847530149806443152156378506765581374445593745762220521312231442706774958259536339282790499960747788954863681733472790931759893676619316731627477170341685681005331678176190518659194888686726682124809472808757875078875067834990338890420909882815845881693524933076260706512097472075476614848999110982162530910217228537954407887233817142591017233605281839065625115886999671016097311806089544351972123456169063075405811495706544064059808692594400072342708279495906410592687570978775122251864560808602197472882290800023388522409488980946009377480433803230164289746553187112284428212581270725264160244466142175655499842094275698140421416971336949893718980563291025603907964590218835217675994070771057673236670998387606273357073114693736440823003694404986334896081541504366334624525572206488476011686834650131526875162421965155210837781715180913248382493657790358435496363130712213176210090044971437405465235088357425582128851294175086444323108285177426217089535484566358730714553915358117905215522691510807755229626148681906115136504687106234129536019862712775792597611500065308930456664943898675273703271493578164043099879788731458858921896603432664373170019700263754172007876556965032766817580029152220868644637385577433042306832079304109911884339083698135800086593350247530775667719249679710436671306763437323472827546476422879794791294681969347640517492981224214761083919003097769964916565195706375808939233217465581496486518889512268640721844766590196724484496016520265676255658429285511778013369600586463932839093778960938687348325188280357129607115862588632594536230749745117138387576310183070711094142422431737406853890799785870185923488390299433092126256149158264717823727157445184819817013732680283013453061931840569767127009257033192180275619949334783974642074297807718454154413270285627129120355381114150181479129995028787780335255455770029725961034953116702872817841651213416901809485582771107842105017805367260746268090240073575339385817674301303658847767620901116154699872750961064490086913537776117699536845201291826548622814371340304629674912054491340902380564671105783426436922999527894109899141156584479062490158441326483224717111189277283682440666750725911064301430619905009876277651336372636747529497701389098142634273130309639160752501542841789679091189509061016470573543918818709904438052424465473658966819604541440105295536536346788838417253682246914364624129097936880905428373027206525844692726885813331966213449299611793306325146201755478073301983640816265269285677782918913935704893507569248521581412868763903687836293573705172529831807135194942678664431177460990530090530140403534163864390490287036485976133904898769835264482453447552181295904578499119965115136870501292219576549118049153336338189780291151674292179661254307101890328808248770839486741814807269472864781036278917508092330623280990484330275957946856852180518847033606170934683588931961788010800922524991525685442282028006852616046247729514484959143817475096034794232649413062510655265357070782399311721075422796478528138797405829002360291692481959107790810928159473592183921003274433594234888818754842120378163114334500976959778621731306049431508871343898379845934040661243133055961614097771736013371329237214599186515525969105779003621587430440809145176588038625605512911054460948258120394869042315689358013262489311951166685693226467338648987473509847254166208093476898433983900832021667497794301805212241096274399591523989422477450544234596583487461926224322648062956289895942195649076195986068961794273857768494521969565100499223872689911586971215299177955779535932830992262670564784774386484851721346808352296916612112226767651907342758412958825704253306896857076372272134285481645673971199828262804141712738893909180291497026103525929247756123291510302551895372401172544435945304758002679441039554985274312631991155404725691142387393892861228290612633053409257322539373663234778139256951018476286259336511975276372397524251908997795102697616318759505230340190722520713015209422968722852185453563195893677970125318201057725735108467316096129515306252417111034281008535242619886620585337340711239026763155196881784405925397632881305348094476837733640593235184036225989838321258408158573554168956320175343915197888245725607003354571605330364764925218301943255618511335685584084085221386528643558710364874091181622374973529955276904793706042425220660872295960355066675397422901636411808826144816891503444696580444091783337689408202059636538792348059251922889164284596780806870741702949655221353271341617484282366817141804511741643140161677709410569033102331386051146223373921425545060453707255039412989875729027093286393420902720805741424549858451712668292714485101132002374188148993458501929876749924902173973043861699862630691954090251909115981858146342382440352212541084972260144602800629197000009024347405553187868047192138751091515281468307899514865605517668347171956309883454310781423489250965452150703855931168444303610997759489167336617814387473412246992780937003194450654770173355590529115332945865918585566014049721585445356498977917057268032032583368836706317126388762490226627435940211545067860856486575743170721008350709344309792017666906045797479983086693163467055713629170146382964031598193726808039394873185591113352308997367383675921126545574847139445968094929479245518923959394233582910101711458542833909384318873924806848710568493314540660412823812645670267591804182261072460239127274293538682928155170087335097058664295694981987653273866285959343649559172615661943644864843614656417435566133011561567791272026306564039757744022745360198523537093097560066262171618484837194619578989660889191543718925880166390111542404457937462145919783148694124548305273615773076498085714867447937992351524321780152490871909616500038699420519605668107887076290141711155553640360826155027511311950321676955319200177068598692009668352642704350751797934582521998649662395921092256393280610293045100887881682832887252769439832837063800675393924408616171707202848907645852228075542989197728794697480335415009558272643896394982840408948562361650082244884419914102365304533294147349804168549795997631558507839007670046602392348462436193163779883053364531244564627034953432923623670634660693167987651164200009624665095517789642567769954241961749687188223641254548806642767174435279616925118004732868387441260172301013980471206908283408513838574383405701462213600225329947047692223170634960461596250003670701476272370102513155684461425025887510703358720062371479141815913514277998737118029552275593812535474068272607026817023822939194757762489948135099866874197788535891848898424592914495761236163368094898697655053352394097858641627011093517760076768901797932174927828495269837706063004598462009212789415467207062956161309348539109786365715437577429165923944834193594444926325629632564315169005125770961765792044445230718719794407767886938895401594201735050106651813602006865633432798593054303078904832601598167786040925455382646771341682235279374218529810177047244558141245672073573690260223853565623362480904390070302804421532217512203006364864109468802470555398174370682708941894557371107042042993118538560168401558959619985011456215702588207802458762220390373712215369754595307745841223290893792697786436302128069798452607496117040765477632475294522685717276375199159527456707325947374339545704481338672204053075254012428422075094430539609677505826200942738522091991919624023253467668895995772051605958596758069081595827996231091161678319196302069986071067264898369469309734098254540286124472942473766129800520727964069605554149114070482816988804221010557684314787121525429103493804947182745275032831256343288620758507623943870588632737823886549317079081242417929601515887647912625522476515955884275632268081297204634467321703069471327361949523644965071250311329339534500465570838441725829826440137344904597603004690890768929096625758782779133745221223831474347270701523972742861430402338028560077290920288216344553088687082300761558994820883455456466234641963216602272584624280241994532114432066076927601698719546777186324163490806334070681956824957679905130852968569401371917767139748844108599256680765430678934797672995529440619515400623575319609982057491894986953816163890244895124819670171209102619469591904758853931568468502109428790386332853187729811506296552211035391695284645404290986368448504736004044442158180681832441204893440535853918076241794784425963981165079611717404825933921904432098985184301727405211861023528254978710579492734115742137498445276333526252031372131254392880180440387096507353974485603833892718376372495769577370965035167318255294501805547192942216709904540765142928638077025004951690188225438792754858387857049028823022346513286587563651958613355068357991731740092149296319206783624103358117661587748259368593904256298828595494586425824398219696843488762527887232685438351729963714926426067840834424810919001457909826176358874968785726325342912311994183825291565669016024208261708720322485155404048470072308799608559160473478811607061214800842518316359089522941252171133446754894519238946470276008758890297587695628574478033540780331206861688992673058031007744512238697097125819006584140940010075178129479642032150835158444198888188345737932854639827747060777070072764260922686552880926035722654277119163798980811005223810335399241838022061930127111198852191278851763822290580876279563738261319580038764156229409049332546570208288328227944283230739452164674326585321417753497174124204653238020742160937133293704390987463343664177363259430756118876169241266884320049422145139891451272909910926239162954099492573520343793282053417600582650786430197626283559641149374382211550959797887694807799866237941551739522779109620009500235410798105538449140479508719374036651204712697261277471285777420320854013817855260333472474611123338533408519182099902476173201975292531405113628717998034677305801641108962225500928388593558272426655234383952158752790503712459350404745781910021418887061769612456367132598318446671975908607418496637911203305621335855464543701990928140709007073087336385104293273019602097019049314877246874756930782588536633843245021545868457393703190638989392937667676199554099098232357161220421227731078901469944538732171246888583925313244521470557784124751915599073346070434337428301193229300574656425684065562444923652326640388462998272635147294169020708806927138867425924800970185561922474660522334339175557006825984194890914922300919366124504166591701065596804652852868341482046620753402524224470331033085641477321742903055687994975359837890238451482156670291045796186293923030986964972983317566108820333706177326570599322769396838469431596965890991890060938316128178592478109740289049987200870551754374008930910208821503077232530484587327341348467000845797860056435965205763703239053663597426822931715099223961422746789097329897188878120572925271997858586343010007269221720957801600359056374529763478233655865401236601772647706811672698729788633629599111864438863632370436540959011601859774304319492528406749903986990456171709599903636002073548301687863947308984946260863149366061103016874042728636133017317724990724540930427240750776773045783188621781539917356422872099127126201274074541077641377773749657110570633386273749628264856605399387980624515602498211466131120094335536906715564066013757610978642769099083306078303644955722729092516439409221101585924428975744512130644149405991902629139423854325534674195196181127671045887079165951239101873128660823251099451709635684607393842514787111942822083706753661269307669258965681501033153794427005512108475601991493893785120661333983741910509257485523318687013678015629798577002350037398222689725645069980704977193141190198650491610117394453917446658835296204869739056592333221647583479978193293962107110645250009150121671099326539509114523473435305783652823871787926482397263046561143735944679248096815251250568560737096953253558355253695412101217449581002300519687754396976057821977295674332050840559029399748378299859406970385773683975780381317863887264195296854127010222118682325385988359867729150640543417419471568203120461612793671288443727861486131007281675103082241207216400951390987257974030524395510898989187955697808835915491691576319857628134137431151794738676241607641946157867599651077409859879985487826410993053432191747635141606934495115764428577962508207558143620159606074405895832432191559395544211048411934939772679962644550402884417373405130150877146974851686977150412929109121876909890275241117152532989477247864803148363737150410742905170525675339375407051790373485092484145956240242802954466609999670088564817342798067201175773140246830881810928683902218227778265733585958764364078712683682356116582859052199058770752640529468660330388556468276040229320402675330998549150198298799057511916980021931119713453430042797031128119270221743959823374846756170410811910592166457385960755340484699310016493698245140119457269366091738813092095939469919692192273013612464151952201299616370824134893657282036958916075730713383283616102907158670134333235484546064742453087751578791543893093363970547016020256018863583922487578172761246922396003698270975618194498999773245419354187725276223634600257349328635785671530818107899472670835304617092922912181016419162537494796655311171950507853012087975170548760474454658458466395806306520302001929990717658684319034177580629671019240617268928386688375537634030226591593415492540274700479986264100547818242449157704724080008536239683675610496120147275851601437775880133741111145496678373250343753867309857587923052532831587434483215074481615744982534669071693321372109267236452007957361739225937814313430164969156894477544691810030551471722062169390201025492921389103734981421231907075022607445182174178037339105669565163861229056647713827317342894061521438666740721195077672387520218754848673579875142233742743311613279001083720450273123384354280804630810463217150925963143876118515729696326901934236906266174231375590198378823747234313541236955147924379445433379322439899607512644516323612339442063923180827819227601870923965580376465076115343304787756330041178032153096308141706881100924383294775955420984220890950979408133881864468761162662539631040456984486352280794398742260831679226917257087038185305347173367491583284739434671540253716157653337982544747085001228833503027678512361953854343027591463036255112809662359209894668540764162139693734505624958969394391221702085698708679231140866706002452929013475668251328975108573792790349295697956161462826034859311093905638218858498035322939333570185931638181769347444262631671728984870744193812344892494679905040602457753661579038295058418819206397891442918788974592785481890085091834553031562405063674522584155533514538167325536795282448212132318781155742073151686482789540959697823499156745353640950802168321591709800952846160383499738898101444441665170645978144745323388118285482101373140551503451313628443167227335994589755884414437805939210387938080663841295553275574330385985951639388520701005670481724119016761564973804953944955479742591887938235505990073424528056711606843675346339617695373493861268773244248885166525490735511189093203782553480288115247149455725431519357638075937200701684571387291617616871938469510931328904580847677870008325515352815051679108675451930522404964306794290294727075729545972110142912844863134949708924833014246250827622837905129996792471954831208366773725921059247608248108271437839611858421643485456603502576835550238795923108793705593930484620886194022646311103766425734773155868790858167544207780905261523552794917348044391963555581222620430819286515359176971646331035934745474519055170791815751378317021141007481343392315687544671545702723723462776361598262155417864091587707173120499415649883050600419561030295145498999406724001964909525928092022597481484528147125161370390871718833623605507603670108902001923232310215635003490264956698106617573143447397428154663967953355569442109406235726657683899958030833864299010683859714807283540817860628521492404959961146186061455808800798742782931593415389169989505205358262441609284957180279578236324791456904120836495590983246938005496540360950209428991502020804539720156286580970575506773361515689551540769482499545450127755620683824743232056887680660808418225318788189113014440203967929116618819179481635868924854787944294138476327984959442629331775833849996710012807290267510927964337652760929279505386098560537052673075070871242913316212420076171177576693847808128603531063441637110041613782574309773279008958300561651191491510563145844468207359630668240516025058415960381146834166855839542994756827842766550581688577817825372053018171555582896007819288611951987907916132796086247164454948627817358728588872898732105869704261009867478503451123810188885578721932095712077510631744259641625404458363532559006646982197191053115022727248860975017839808986971296634410980697940552727944171752080215941215931435064564892536590722054809096084720564612505439946504013427230131999293862517249115351198100025463472526707232483846859304361288199682879207232294235437692362730195326279360451115203022087480959571822901607976844381727010084457008298599001193354818914637307983479172595039390088852358653210965857082765693546065208927351143753203885932834536322597667278923048838764409765019478482099108268473169500144450604380212817792304786246129829090647813197770784805345832024538088551058821566576903168010471809234932409186502261436214912159115961639744378532948925189889851317962841171852901787138287839280190750549242589940478129337665671465348012747241021161950699380657469622702001555866235785148847137953258042681861186724836325300194551317541893520195374585584196270776806726678221917741833639651659427801299794458439253551717091884585261161711281833116629310084748536441044158152708618815641335431850251650815620242638152312902147716259402578220220212653182819226290297948000881529655801986805923801342933505194829850674563506986581566368763030364134043069218137203464601960546533055502441532908816791794367701506787552284192316640220998218081863549730923472960911015996952649374147973074599050566353095254364288888470384340223002788431404314117161911674192331495701017536448815824687398668335696612654268810460725628205939368736791884303470278830998071142403795576736128030408082762048411309477903200674400410591624593493157980612367157635593232483759918051732514994459232830129808877262016397748623721220126996310510197219780919124149206768264263158813859096502719534473097850830658781976449683501752632339541912701073861614918443951057620007911604254245743817436287140493848630044222682632317921052493340837722268053274717073854041897291744795232290770500546401401393372358506087055219685903835758357847174385776449342167054392838322847063791901106968034373124649414967564539181684963020646410733998805670214131867460131445459977487454080222073207416716404729627930172287678982249817957362993517825728739384956916259307040830914846922750672405397177786545024270127563704786021520961284102926084150283762421668517953340603690282812497866937238474544467152643655248007931584502011973221093719004907217123726739207960294680585765236918966065676505871319834381674807839228588257812702773985263908731808041193065721090863671817927612416496014347786026185922983004829058155554289948223918301000668439069998234639851343438287821641913029299741898381424988692425746352075320603940207484716216869536720924686763239261854954074978413505558062935522092215797084645096077145146460156500063422341010843755912648156648002239299981021900388303258443088122928928520775923777613500750383818503329438749288939742533620936367513046090678584523786107980218036960945329081376563553726659147342656839959890169290172823334100449292150915192801390874608358533245785070338209679590411136847159454747492621801310376129138446791258627851409527591275165820964335936769799268018677892073504094438679552337853618719328278399468057332606830828930271783862727632391924737688823941324261369048457418200639471932962596114151919769707027025985172693910901424178951274496282046568162032268115707273788575896918632132560407157787200358185784211590562420207870477565462071726098033889972853138132431377942100429925860548738949388490286115002149809330298474589767432555323316521388386312318233165428806668641540738710115403809638461120016052344202797467504255669266022122793228235006141555827767427664888132357361889124348104473800421599961881130685918958371993318433453904124182585857895219353809505594949460325433032961734962189175198365758462867527709840893935519360935848667524472183927495218738463479340331126679143126699048123085691186788046983038197349242986598988143286926084582382069728536951018188211834184555820230252103476484183977320802470474357929482729431528350431738385169803013452017713156384653746185035048697067066678621734230360855277642318275628986829358524994696488576667999081854142510135735202032631507594878486651833699745197120477114459561699667264000949442655679645413027816531950027289606713174780167224373262715601041951849221903119585375343371952147463401219051555959756788214560952460463304618558481835404367045208181323017651901997044112614044330724365551449465411873611988460413181547705655929872015362905448900699440972471034604016616502085830654615151962378040725742046457466723922956489058183313710687299025469088257727027867703121956921834943875472681555755444456459315195436353217350709444003806989814147504096527289302933957671195563603638586230441536198312881093756576671584453451578016633477680130152068796385336490942588191636107478531926407160815939071133891680248817444353616067897259480306888647800852554957527584780337960028122717747432119797238359821767455705115973722394405107693420489182967871216507250945292901925508968441300768392654751229845829297911734160418614052796482805376584198443979802079326511300080772445480247133765330350444061558325242504101189592586034052577261715495621754029648044468988081629250842895106171435344107730207830988238170485901182481274459489404196741926893582470428908485851051158140098137763853511198310279492452928770634887614562316187030352563305684233213857117900913127039532634769622523723653559093706218679589003920875967896731426732297701444748597314623019432430792369542742285577458278353159586368782275694237867965256102085531077920972191274099746140652594003623130618044943827109999419734963031247663725551570116733675114998741491440747486088276179606415234778770220670699159467435900810517412815211628902889464275136588063678054231793288336558857394289989915704990807802904748527716392730129862597886870912925092118576280610827276940407270995481832043418509331231431227377720562263116288258436326574497114005038168085873598505614598646515811317975462869206112772222332962901350751452871339921891124329516426677497126756059323241696108996901872182287219403325125632839551663249334146227421359210769991877742454475300554322989521767345448258548101016064801270538866166123807203349858835283766285475151908426476418803138407917025074653446932194522465300542988182564001009758767921877844177632649316667362853880293346444089131606000539726819187318317435960742807655994273172458898328102207530885824121381399769886636163367022759872406618570881081168001253104981692909968388171928369008406500524878627249326666756162730280166028127740967012322740174263117847264037080005607055044238514065399598251912419688769205503150000106945988126290261000015774082077633765052118573347938378428460886925730532452425110744432828344124897740458310366853704634699110144149902459925368697635409748601903974737063602921088111886460698373750706728391303540057639368637734500276761908881629517738553872476468964310098648637183239067498624879528539696732759156667769269045182780699537806005400296691301338305298014028264801596813077168261677945023719864091374916226831348398341833048803417999561396068756629819857206183097533247272510418884509549434169100863620934662362187340962461284790143422535941199175504992273960360760858999629184588232778014777161602003647904942352626422332383992378599164048995656692834851846835859233972968379796367690931427427986794048244608290725010493782733664324326545391147376105759986153894544494786930983181567608727425712566763144824204688636055315516189115049771920841017477200189389699733171549359041029943173109888147238760077469161648245195327850783903818747198084579044698484567932199313013943788553240352738426193351786029371821158626199545316156948735684114005524253715064563664029892848699233833512170862403045136514058635294021776633378596971736834126179676766521528639032608296564736722085127013323702966809906479381865556713806276706861809780309402388650151485049946217651348980890721106617838560280249362814265347800306383864929996607017715154647367650367944455354599342352958496068300003814739187417635152931870719795572802406850949107325301588643940118270149642092392196404933181030105308694502795605628476054095831381874051432986149971402441691987603620461266625403579263833892266178782993443184731055977273387420135055791919632988875794616288059354082392706809153309485123186264631636950037577928719293057496634721352118852511722432666072942368339169776732303044723495405729744113841102478498392898202679854992896034880993148307503985463203324900433548137803867526655396016364897399015907306354093663063805763786135887514277735375185642212670660339757942872356555442144289954065370753179903526939293849709753150406215234373579293019283452670754418775814804746246130424300093786450676965754697993718741874779979064553704595758432018487966849604368189448491335537041879641438905191450160760193405911120429255119991522086375422943882443637446154862063920612304596306894340496484463845543444356493881944835704775127754491657927534618690264481712074629873205780240984590738825458566999432822770958026452971197532700597710953179650543113338428388879120560861196930034983647907596832208822206870148152559985421749116795279639648778932736097007759929664495093019531418540819204430581884998338211428278173331427773564758988257847871926269066510979324745153896999441328540118804107870349543913452666866085247732742351658553851454653670931168416939356082171714948935252327632644435212684017625480497105830015683142864409261245963600363318789598356192343991668947503633774877862097718527876988739960475786346245926976788945144272456095899151696460943921935644992787712853698526727231459990775559710975173498169277290420895473918665937587224085999872427422808282874717725570842445755125525747867699149819375760108995541318501073157767820941142858974059328098429830069722523858737720280721456689602357792216991472012618367050056109652347273620711861891552712385959608136249251228696501040162407735700661203573219367496219398739605086662347496397202433377905664581404703862749431715964904269605749517174601126378764889642608144575017164648112146961190743222395262864111662145853129200743453550082368384193076625743293869760203481225034709148530531125983289627800363522040353588776219103217597062704802463979651246417071223918788766986607329181060231336420225088276494212622565994210048081460250433119800004753621372662692699701749209525621949283016620901711787118299842000576526728332065999630959363941371835393509322992747812986179018242878346357456373596352499699816074255548780519057954832781467161910300880885557367347250477488375633410412910708572842488018939046741399800762123828781499903815984125092343365129749538395842169060019759373022522706079725074804070688992418313508739438114961182114586896382497710943707637757231059851131854869346305641459103991972692892494375432207444525886370549949177219168174913293164325165211678490558925038193003309625912465881879751976675325324504608262452360627979491152574948717449611365184041214437181310734350089876465852281119433924261019557503888483494097521005255145268148214385837147696360246372278870031694809793407305517954717215727680550162565191078516353143923740409984014943187171319583012602824013613340967702881704609733120063748132054968784037400838597743336912973616204975730829723095055046789036110321605117406682458540979184592261058323549501447488402969319523996065168665947680966350394321175555122666684538966222566124140575073897037706427032096293198624555486864188212357408138270442938142382647282499634017958598911746447600436279769504255479389378930545877233076327830871819990088895116942712516769755525765275609915480833444078527061471028863837429860036706020747043927871519686709055517208903793700902634765045907072396804374557682066957548976245181987001515063378205989721023301517031143743483933126646528680848817555392596944517259437742162507867424670097082377554710259136267628935669269647249605773736986854094729405762443107443452598521517659487576228417486598195651370547632645916350766917473448136565305111807284499899312849391946192428302785853194468925768068640531503035913860837600855415363138634194122064260720648642780694739369588048505152154446440744216300696158424990855289675455567423790039938643397677815219422957222257090368916631404893760424353990382835152735683737580307412978021466939943107272788393622295251175532962104779424705742793669507570104713537929396883907415336036570634921210234116320995198666209283837148666403795434100707918325143334973252900922429386060897345338763438900433958025986740197719590029089145276081373052590979801255857928076290068815198942805915299717454551008620866254156371560976625749850588218226495553712166612369444650459426888124102606932346276493769951205521458233426994298593004303963131515706474991142186560933145516291252987263261499989496245312627421471839688628113055859911171484468506361182690440907699805460676657418977914559445976848629486830502639793332092513874125533992301593282782376737717438718887245912483946171585673531445358615072203350994727073571049131621258681936518953128445829662768286380727909262033842764228728788240719184657682623922328742505769481395561943446958878518221413699546971138036356017666670099788313163586510964400341889154430416340173037508898233941828468952435875879782879442844458710012833337149798677963303619040520909521304477040588952978000046230420070870961140898495081673889567935938415550630409399955308692691908874911964651444930483973564694331999740423269692985071471439113414311096706365381463802818715997317342560275367974606047155387279149747487668733760034786313371800418033328117607033498313807358540445283339113366113345285272987389858438778694020556129805308992017926255008419613709139096500909691822250858007660228117016133719463580391879994573468088611552844483994557812109385825597726259165277419818811570667731573971770166047385046839580230621723432732422276931476103345137289133322659587105735920729162420548752321508444108310199196076697646120829472087353784195388053008126259080738153193474391314117394978960566082435432041114596344005661535793065626675653477423572536158019319330394513599781150196091894387329322995144992761942369783097859247550940873739186692913578023249597816830965247532875569541539609674900278125348677746707731160712202715604003761727961174419228545353053482492991153746079986046642778478453157919883095759608390080290663219118120547837778763783154824558789420752997195118808998584789561380431640072522446382140097709719059237445717373427294947836355091405655011597716544948751826175111776368547071869534247918566986612779038328403278882347872655478488749985489805041327456972910365118510249196580955222271663257954526444477735973978035857294505926033899626912797347198220313762721560275586192671705321927646755961408721131644528216534547206747769442244700558932389339335000037216149785714368275509986516249434671708140696165297252612736329491571456532509000518890620120494691708424256557038816718013029599745621117938797795170877745549253363447219779729445061324648068863507374201419093449366338992017513729149642966321745490715502713303065610525316503363353557705412583881529066303292858795562851847534389047510214087715115844910036282055906599268598495766534226376802116722251367458396374555753065823991822243534131783145953485310509065652057239504216537228831502615954242265953446362955360730350937084563664415443082191478490675451025648542710936271964003466400492353182610461296458538170968448106522954264649098906948284740298530381465368187726428085303135514548275164943330857865916320684091504629347302108192204022833449944237457723177933182689543976211950714949352353896028244854084426263687698686694260868430279116373786003870123774160576945990517637761282363334538471680304079543146505695981490231889154620586558988600494158281069921390845791743851419775332921621795497152465132318596379677018970988075555434458107876534164590926997899007051068733959034529660362037863679539274425669774735542722759882837686277641371853094964780838967396895076201598891928773796059000867652150564124720945507160419088203869803483067675229360629670107666995118087307287819629448393035461999946696848693304333347148038955031834837395177161571093866793706869354270007664380747778310106059008942693947809901602346185395928128633996096657243188651488410118307377855619137964888992585175203516999446993089818561912930524612863401959407223537646212441539368002326613898072713562522043355570539599979972493785763939052508861906142893378415528460460969968044062014305677057512229263901934913970745927944431194176395305742541769042797364413071534580818510018946291665619346005069081851782432522616002450947482975236028911178086284094038170696945138457397057868108161907630166673946626621477786877181663211518569697691470526576392613621017035488971001968719209871679007415781782797635538711537749796095874909653937993306728327619946630698524552729120209843816902684448306823333624483495918655273715223800722062280326535825385485903780136035738745534585138636070967774557561421386071359869559079777832075100277925795023400451936910574076705468750204822499686979541000582333507620561211864268833732380786301120373792716800496256454130914674446838334517295929776380929483095022677597636682216208647330995195515808814810203047305662765592952050885464012584710164278114514183936723953902414194200947691307159183999203107365120129605939266421995671385146924758687915364485931241241453126924208706822344332340010739801180378952556672339989040601456680508022925321299466671897069848831959175691290330388409476058045514243586677838435933517620848728209203486731886982154116897196683140523542880547344786774201403920091237700023562073408603611647207205289399430754443310084427018265692473014782031052104254507235022986508060630597158068952484644453123604324511760558910546317010581932125068353480521964630241840930408246756020228073228511846275295968974258785194117485010174123494510688694847794054495429222639499614138222087372539270908597325559548882979710985779074176347806150749553575780694122274612944466783308609180017077641968354189562829284190263376821309353501359356773542216978586097489377754577783378956226805334020854229694326869562510429609952507144162683357082527396699426426491488037213433360188981555241685281656375705386454458208336390146148822994926576081526906357464315007326143569712372237415510328734279201883414436074972816359623897520954523785085510215412689411702312523741450846787847294139546804928285358615905423324432448975340284895093705102061068590162906221721442074086038782125566511707313508448717721271912379534369889267995550933697444986034124792855498911114319000721868873395662296761501371411772450387859586019013747030600069869611361694333856578308509252118240109990162523339400812094463333015331233777114999927867517989768633035948826692445574078906042155439298303814617777682693146564231669524591858910369890761275159923272648120714270738239307719667034235904167840785501582510498412053230152173832387880106275649892053612781336307854415597763550164301991260119303711791311544184576764725279433961937046552912512204452379818554608155188272430547507943878009483180617903349169492562584772123701988301533866161374009293558730034867013299774046381429691428574443603156199171761384508659615712087513613348249242984968301119296903627672991290640354937277747286059502397676946231748403738286609923016327100420244848364721820082445739574638455924182371402757319616267103994816594915293420989494656862413899811714658233666079220522335408489028971957840969465308888098867651623548861941958397038118862712345612022784945990104758902302095868147773183198244236409703395148477930093552862297013857521279089475443776330274198277584589125179541128573202511486974547672886960082797525111760480669471157583016053062347011901106812216939894740973107164198731067197942925251272513068177166048987445961010614258988504268381164697590023272721977179520326566597522736744358190991787687502695853274708840934283950791990203491274454748365663025055645562319379298437556148861374717792712177268675336651091068732826849264874018944245727548443174605558257744498274516405764355372718290016390401652994986528150057568202019483409659434988641165103118212150100971137538607383521904290834412223093551763953059285657366413851901430452339675661871106355300628107904879424531378842178783503516962621379670476014123099609072015045714391539420926299161755547480195386534842824775100831908717081215120333371390263806956005032154477391419365530766537032622486741196138849826383223249553583064858861397186781032708484558918975155590046168064044771028639164245442837317878102773090960032719445529697127377571498551532405735357506900694449161499273031111783143743717325228730234819484858832381000559480137111009149148212664241636465818001763888973220156863602095842849378635020275459092644485274618380720175864726654717106876399817675970994719526543047693652353140411611031777494486975535118491776056864413159417076941957837550501071279502307258371048666006143543957804787678247895323394189506972160853231574782044832547827858295287849052755251128191569800173533704883860926307054693987897532757637132537832866738273201682365993825828424339710491321655509676887536280590159541032335044858350458105942458988243488238459684497004267015478131939434083847672073671770308029196874395833248639439383182144594612791699423824365803668343701784026289917185393175542263883032545237742008528111403442912120841229908956815382569331688953215085844377845085440806106005829529720554367974137653094829510533046047987158250015495791220691121779398752601671825676953153979791576267553536592911951822315298406800385354326829438017614646887323944421716439043739091995184071140936521039594556650364631220172964079629449832028968416924285955067219929613733474613890561980593587620037086328976182506048201789843977512422338367414139310667976312483660675067192061934817460209755594911348045204065549725679246113194150283144738115213008829989373252635786988350855941172243250112775332398171995626087744854619566418003032946951178422031666899403134131404948137838548973420351136433768936665932060733386117427541133251234500538545737515300905973976167492279703813222106375815028756051981923793192077995992571641685422521069309788084955478105473297213862842276769994941250327843568646920767945470703504244679362687819418946017914956854499336365050074688855109903862536376585390816320748617886446895895426172823680378247210839893672291583913307151546115987943429315174543932921566166086071544151475875606911140237505116139174593640956407819132907465519584702663827363771620781770442364760089375659871447295403533671631046120047646320130876106532046863791160832308557753046836713121373611127762959894376154386446888118422257460952357325176192985673757483440698548989074073414003827370770973027315685550261976674413466853095822983023361459222664913184856934643549278113430384232275850006023310026812494524238069456118770944238772390725918999301743907550602970162533858181669360950851542040497279371862889596197202217353046595855805548221915490535340143316152397352758819090519758659896927046035099455033694297172300480700351814969510821189643556763896392793526531293348849170214846615121072919522862760344373607338059307153674147206434908270166472759305231510735202883059920897286958293538127973977969586319097656007310195389993999666081906158419796887832863486234462663784485974436054700552965383133024598300504445813073360177406046623882705106993825179024473420349949416586229504641106177918099915164249444452303339287855220101949030500287497765442287582819356454968615011785247498825176815285101728462039370360708055007663100349413209139445830437133664353337449652109791316694599534054918549363478617460532070872458849885929719613290912052399898461551950419784248064348409753285172893562779144511768013950622942824245478753662158799395979176672274620882298370781481437033620947520982110395095168046732986503442446010217253065731726908770463205196090629030682750847551530512983862336548497646039799383740400191405895887061306832299936271813567822933417153694200439176383677219718352650544856559678244664247279424736112760871571433757565007169008885557333762450244571220361693674035227071878133180228883028303580528878032075792550620054991699635393111508092008124057947413587204000503963912958896833432095285491229748047767444940934268029011700652184968312558052984574246282290240936553156009131346488930260123028509903381314901839579991699643564588632922082016533424920329592926832903593419863734661972006405958190100259926663647494187307899289564061995314436537337208343633290726953624192757078932010066141822146602486716071819423916215076535152433431095082645683964313092720469341775534131414199348478144395954743891779070263680897581566845853379073605087579419171412915816738811930227600095954411643152944713762802042345578715095567377910829213321536143779076155758964034373831129460312821044617717398887745104941267383025497037506446770518202047638884899885277866650474029427082300242297070036157887725587165163942272796937259156812540705841059784869084596454042810685439687642696367143177580915300960595162918995681089338736048550313418823752830923640343675600896763862735197152433256113000851224040296016894139721883812745855141194346270957446026076729189260596485719425455247817274037225431679879867268435921789502888429087586781098618168459843285627040260501294502572052218686826853473004212943227283746923009029549849315152744536302071922223548381551320689258140571759390749780660571660578365593726198891203903016537255592613705125147396211093061908791130071556330234755585089771842461492942913063559914030091514995153279228603066241747746988970732585823886144768126398382730071909507727502694579680672073432278698130208459306087553583173519747513279214760553668388247897007339259784373529689177863822277573870292512548659219559737014868042708594295062911985006034107876062235587623992213280895691620869195514499443385509955265189048178263881838157449639451844125142330046525372091155831744457085733342744730070400778210399846149200496764180775233960730830366020060641210835915796864761045491356000605033823985092001580852202323500101744011931935197650760783422472511256095003112044359976079324094218125683306380593686891457341310905937133221966024107643855880991286058053949822005353671902277228476903541573249698587924587451251347206268453110189685539616091777622452246604718562800818969906523384357823447272659639818373945435072351110398040287715897465702951530761075330068658782037305698325788212356564231251830280269885967695860529869999128032389450633039794972348007248702384585070934898256693499822771259211529189645477079284376061322939792167355504338318851398799516635164832154274763576111987718211385456114788850445151629788104289690488969401396521678041123628423456809051717902875110999340794381368120707178242439099972052990500629029039039481662016099671068935780581696636597974118073986875091201793265503753767213481455641666458086260465384429987430475885378460803931265633556523238733218030073158301165199960232209926931828635600698222562121178410108388889837120047661775689057375401683442574571466835566233475044682163522994748241143483216086817099138785577329816126117951602193986019778612160665175967502805020932527973835228564696682926780760351394489963139964099460046982548505965168649232827916785158951330665810462776174315397659101306802133451000317104336227614995911550527939228961893862290952490805740945988415130886196720908589122716373575927996232732768351880206397281894368248265151059980885644224390864496119319785170975527049834788299208047114740210825002519046486513905332539369078989531961850873484447178954551132257126247514551767763285213710203423719563599171057492403790242266991801271487068496121858513938778389476382143859709582415505092025596258568019942832887102146579942797727391550749905235532555879359657266167829596838357059791081963339764042619765692115654940741897030945426439214448658822459081897291243749382183687916516067699980582600133033768103113494052931530965320271782332084838874445693486161993189377269317856151270328416844250306572748572226268363415503007908580255493680902820315787895884450638300384493932691820395954970210088490155690858768344054253292512625034325346781814258721512084052251338406325613717452425721282990968365948577946674691059570179386597325515067054635712464581597156033875304092546714477464332886443791400410205452627263561538241005187482327136715508397975984154959660320070371225735609658506260326594410926445827513037171047315967299262135356473189569097098759104831930443428931080431552131596912130816492066607096304712122588190074679844387362126937854025942178493232006692829616834136979112102910668094770250658496765964673727291757457882076291473241363193446681464720969299291828156371625211604400031056470910216476025302931772195372634039093585430642179432908237320100256694475848340179670285188211822892400567123703550174673269707733521327622229722414374777280959655417628266692251856628996820660427406252242962058653701320207852891504426552591954841762742523246114125105626475041673359774289671348704199439415815145730448517938642045629024485491838926574502838848772110214556876045302276222930628750378218119140866073809212976241168911684453832167675373382073189612983903963162872796830798649841381735390990150757570620842118707084756203710110752420143809428781740907237720226132613209212092361750222668496452986746657994138144692391573920221071559899164619937024054989506877691346338238042398980969209985698666320198907197253740006831904021754046616024313103288799182133918067872014032149037482822370380523469540149806612219040946937896381319659573633350872600958027079257853074090732419948448969702474856858036080485829457291366967244083599639916551881973842355876811087683713167735710865948866633083141686674703442821323591647142708666000652365571978327235057621063109128033443874188370090818652000558437954617882411472018880534759229409865272654857822102585752807149458880789619589792320117393337848016167368374928209037848600067387147819891616115407037333277099426635544410611975576542805465215785135573104311409175653982804924334562894355701420660284608866799885088400230093897364192647996997893335118779263265988290821623323789523886144895283401791925359865408741917308048950567532137799830592898405494150231025418540365068068142038502371820973148067615759743881727374885228175511520267338558403134949267295465872121290836196367916501198917405826043040021136968899416861437423030908068127065825719881455210149368272930492517919547927738240188860764063909196055024679304631679061006548971314809485336575205543126584595341013860527565708251565197370693120124445745396403157509325859263348435078552102384871821018503635642845761163761492871401947317636375146752991744307575063628919877655153472349329067195242988559541382873401444353367830247508661635357720589199418092620254062040883027211285981738958792236242601322330338727412123636069917455274520080237817306075460199159807492624691809874044070253972167778362533656574786085519153340250354365281486304848587124577468042134144869207566885486590475347090422447069098876003814270559256501515634375548868220457902418558716818874666465730529225637521060299500009916947979221870454722995765644869265579528789724403765360513854131185227046942604043236331859340638761077426575107233002477638885320835626761458398810833243421519058822098861959916646313448792463799945026956496231001319086891933936436760526351850452323356375271650845621635062044641242282058487426482896757377428491484492313487038326842187773241343105342615189029825192998078771444033729427043761846816674021769787195606154761403821768638623577429082638114949022999376349456839488786969042178618725467214182030500864782291288220126518765915801461731300391630776166093426178363848435581686437435268800117384366495129289931412665815388505468458253444709226076093518971150159643011115567702244300500400105898612703227118026890738926475451211858042536728072248508335802385193037819852056235503013968964784936921344685595392443146059405421300050208616293879600631720711786012197325160587858160441477198887517256479232945350417901872423889869364582475309256479632956312332085442153097986688531921217523226130280278762800826917935035296167727870491073561601860103800594247420627114325374896970508344276015536149917508876022127640107548406936037644188674698192891470308223359863222770494820351954662485935283614528374800364985517132430295303109186179487216163163399618895350295662178880963739467696922703592649741488853216219126357978773110887929259405168507808713388670645343580327045301859216827481923714259785450120027619340712476743615706710858655348756384962529303894899393544932481768538055248207183619481048431882633012563051873559109678671014009181879811035104093627377248395550827123889131373951964202778626522603879196407122697324387207201257059607250411127604487586135593647086821516539973922251943248456773325161633902387124853474466077415237442096242279791304947567540189400652482798980272280500645663358135729873364422941126378808358086249158270688881551721300732889733184696149590855751265186921706576787137229518189681000896518189985400901054724978640166180222305167999559552611882191435991136032974664426947927133077012005190965400383465748153602472814034369985932959090212665436471915075920079868936864233292639968159648148100054695475482550001996057813651375114874534011093155206473588377652843362089036732908526529043893279139537278076492559053396436829392711756948077328221233657501893626221746584041971605267364676284648999258020827886430800539058909919030999320008572669643209360855260539781886789918898939441276115102359333118675795774006736099173849324382117178541922895993981170217118093986077693469875898214124744033710042534749158472191448618693423315394912179383904392854405132659726740745446809171037607858072533372811429927518566935237211862768383956964232029894110328362318360077755252172925211497029533114711170368588118528398941135413214835436580221914914197815086255935602224066745962295868559285200780372144704012883381819141523862176793026173029629688018712988660385209495820042840275459095003094525192519488874747483838936134258716604909846164721892861618248386661611002412933012799520842792968778289748950441647016396581921303245112355800350296357666105974652816256415157635518556124314811967941828642122563236764892922350237959358085595023397449418741540267699617683760288223241848543364722334417102012906285176455236010735036692966577989547834253323843359038357109985621164945195737622792625447621717906999473225247834688916988468591556461007787898990858718262981548695763175906178230770080124506827124561791912889797061169678452275698169608334805005315204173590175434732433147251399430602434110364719704761245478747879656734325432534854117479587296564003115301033725275088574623327778672723483946922718753324273368878537530103987681544987481654413660467317827038669964696906025995352152053506367000677350234334087773544767896342776609934411956478605852597715115094676857466984412819267392243606003903690070740038241107233015830902218114970721805985035828555034988720414513094178559088278540428451345098931158957143144619608869643122114269505752965235008957986675292431476941136893416976698519325356336473842050363070949425025607257179875058055885211600706645045238262883832454486195019222274131986638250178695872899812904052854256593655461492744908809561500032064581599590932757658598746022133159235447945045298736081000588953576365399527973981362981412991447165733632568962463426383456543390944293415650585394517324719081728853660197464987708036557705506720665493830217441985932410142044156212857943290929741162709073445142663366012320169017338581879909754551447419159225065016292715569819444565997606736790074071781235664051570979750927148666643548063772659536016810367004081245566508372368307884808711762712680541181137188188691688775135581462801433192005487684193993449873137416924666619229233356562553668531588036813319212870789443149812571661090703733678064152850370309450514485455502347700241867192440820965802892242230825406376499109656440309727416043827329642435879205663722976402555574151707332575865955247319458746922820404112102031563155926339203213949317826345344700551998685617032099103732250740328462066807149175657750798902988558983103317047949689441341447017915903704551292734082745106922155136626188886722204010111111309906528050123408768177089135722723300998437665044313015187718872710961106075488235169338766992324213440155665930237632682795446653311255010467381375126877051000463605037709960527497603416249197398393820033085378287879403676940880140609264123714059493478605910900942414323956461191379129694084503192617290868271275947899678373145957130176625385345479982907868449515222778675196819192924393404117756556669729279531296538006090172501954996727221048105256220139556422499887651418655527549142700238252895269704954559986189669925302158130388509682345817317842364403890323756944340105080236173260125933856248788382762730270303293538912678297331173586509679346760872882674725558175525308750439682929252296369401212012278762641159383798386898237225038059729849823285393760139377651888119218973974323596549031932488245285439408611840277030188537583317617633180694502804774137635687189115050060473811770398502565459831817661047278044143267296597601593538565668493663022646588221785897682638628361287745767710488637956687757165905703676662909280590980705053078114063746570104415034818270024521653104793867594403716330743724091684161511435759006251723310638975981651081610601429763763598948375332173015435591428729072306262699428700779166958791058258816822965481187803575114916268224663853229144308772113091420815241133427670947805365307981351916665787385293340850826968964630448435150935466498539571916910957066199456861183662230140740711655021919204605025236858600059833559545531793613616532552474096267977893071535550003471560793779062883397804191747942438699628716963872756387939137198099989774820675259590989417030067431327421853965462898585623617049923690022834101755582309663760407131194118993112122847416879161370767205509253804096454026401741372703732173751890459251537495946424028514789771015842129411961183750990694544742631375492561821884346716344747325004182458753979372434777341392111860697417675694810391186945757421847169809771751395895775539418573835802458824487062239304292181606255657799348175869560571191949291561831304007549865507654347246536661697124586064039705007489355928764576539616480165164022668136767378530382829915467543255520497957875715580550815183170838566884413837676872408484376607695585368645831563819737839341493380416085040201075039777908230291504105815043851463465311899037911333410059116397569764520612672154423822861140960654961292700003062266628595115929638778005651599114863576070154588906638229325015971458954252699545894091971973491188815482803822611566491333245975466019816991399001934775812058596249879747141983233240863225304683363511909226093571528898271802208886491321394406723219637426075191916236669177107963216872566411876499567715971489341202295068091240289595206852030748889923022230925661478522969801870485160368883656759197683447639829645228940890347994359350961043026068668765383908325778137264482705600157575235200506560285434050270742301755783486390988462779273720291987810256120477536580779067275341872377116799202153171508292221529669593580267950276081919174494427456129390274472404835397159236263227150575368518231163207580015101086286862514327814377998695355881723869913401149049287807565532457840526042785179532074883649279418444061829044107515297596149989380221586147247828758593845808382932300144863895795588246920666059132287683031234932825641844640704224186030119270909583456323827049025755464039712002795536545078427121406521120420724402471444592133858187523425228794796347315684120520101205743850589544780130372796068270557359624724939850857839879796030986649083041663366569655352076178668633139346255321235668546902347639321205004230624164931626615311684993749921258916273634635973200183590564343592408918114502544511895605561566734485691696942930049400488300363020667796091169637401664288692513137368109654177128006133073125597238171553954053197164189727451654885713376195213325290157099123309399329013846271587833965233945542232599757026562805108164821000729163932320480818004759866632451836328075931323387408075004788261828558682366799757689878799266970769728888195215131144347635636132107640107382582914281527714735017814622295344441421446669900726836398800413449345832036675474286580433032589785439695086803719546505540595042567022789560843699922862723252039816047864476614081577180832566822134156820275079063199963024445241220970948968840008545057983803597284123266609579524872335029898857899536446485485635957613370503821957789550644827488582826842755888857358158374326911779697155331272180834370451467745827224497083408853280878909164014019592147047739203398966882925942367162283675974097844990017075988744341685464718616601193553351051592813537708385367108079912938359842189841618211972293917745118567113394192416784939085686610504345194377328028226450990071137245774354362322179875662711208291406598436695663713094537068931912681425416118599663816751720503655051315972908215704501353096115500170335025864961720550156525132233740904117075161996336051395541122488230255190274648198325185408107514735964458893747808163866658184957205353289176647447679643466816214697429533511620414176321041344900308964223801469368995161771841703858563507564908347274573361226454220574041698457178544958065041415579655443071048498800760953228672569347345124680018773320561429408685090875362691266030543801321241892681071257776809717357652134179379241203729481205713958878115892445316528940840571580304559966490984527808662879030698605992237433529761204694477205812162380924780001497696978327748063057300892280192309276880774371596764656359077924246106712202832197932342085721277932178720907367821489504831181097059654371982570873615157061019280821197099565361081414654203736041881350345552548961721929148396133677987950910204282676859609238852094291084590229443615523995515835554227359645224401237174150291188095347162925534395802982516439440987784324989291819328521587434694662793986317199607892725200673687296980203790976030076560651302529369245766441462232944412090425802608336536880145393329839285523223009751862551561424974467379812273501609358895026519045317466075055045294412513461224066565950175832589200774908082110626167749459202918977854440889766754716506486347368979119773377003700300862195641983181474774535709251970667923155362998974685822102895565765242604652376915331268245572967050068290233845417677140493267574065819868354143168542020304494196698118135568642914825873379462735838279334156577659907940917925165342962033519468107934786685869273587579883545889293743538715659785096504206579374723789186891625365188028004648738312481164882608637484636930643987041909820189921332779725371697448176698417967776762728811441507478587717612351762733741578250228301069042806364591010282287972890565942004817307054040057562495477358981609632234994341038622700592822117525678691713655271908575005860344838335597227398766102487164698173055181003709591977259005385869236264369743964507931381914140880069251862501713064360051223369859282122100895465795176166566278513418756502845204054845809397254603717142473756579442752003065408510273758465002200067626117160027546599924969806245530438446571754201041849669388501757529790283122310355445069271629914485259532198228274521591834266810985620880281387989787135702758650420656818767368783260193690198702905560610630762050901311549138188145472682241325716572959503682116157598865353486734015655831594023466768222381938123065974812842994849279209379211390355913321147571588759948149163476121750788777023390359760556487576338784861701380623384954607833760095172249420620098751027728951317110236602630415303976044321624868973204829015938838293228313472828641706997900184139711882006242049364630372302837399946217884991265635101302438154723647212915261761683159520196459632262286507592295634593722522497960692000947756187423191034139562568195398944239942801132680052619201231984877103579887244763389554574719676854740377367837534110496754533727713989789527870899225973030190513111243199430669330438650124402027470267454548292198338561554371402774875301122649558643067192450662223040983634704558063652398249266770459755097107751390397919737071454392271382417779375791791924186381957804757273925471160690822737132986533726881616685015494815259407184664616390466438069000330090085921883661086206753955519955015710760049409970146388141164276071066647727608046201777775479522784522694626303291426256414880682689380103881770548140754060884294923460459178960083487333134430702389058972768658352535626852572199920035421062497861294139166179856098145640038165464754813904780921496735268209022353041718721687839835512952393797535901094582454304661498225959993791837039864055945724839971520149682540761542715131027191101229645719586061689728521506227400406809735592720342272540960366859249473078112592531198464926315201645147552137090772515703352513104314981153919488900921363221265361150422005902440744299476082204727884903531225889501297784834151671394315516727650078918205056331192813809805991105820365004105124333240133243862667863286335001053614287913128158173886913756191440609572915271447389605176219929299613330203950963536187671999322226315989105830135310919298967922638676430603165818706927534435544702881085187760553755468864038034304721645078342293595770014099374757860845908779346651566842484953541909222224910224256827537505155141272219829076490774908539059827864547420900120197714598973884126736942931630281334485703645721501434903648670112519251620176553399491131151263217321801895843201933819441374676728543521248491424113647752146645370665248323638875644022784387861656307985799224070617481181879660977745595839184032946402531218710211790960424429358780370408420519489870588453361018763292456495378328796376734540562534205576717874458223809125881784372968541870111258613162044513601450122778963335706383356661459651331742118428656546824219575746964387573879164637102886345827334675892455062324503190205958528205207682528436228604702633402735940624252179601543774356070560569483078722928208274077659334016044575246322361502152610781908535803326871832440689230169386290406053391919624881985608345179964385996426395709751163583891470060754086469809628751878381712264911866439801893574405092348116278703334167633436781633069896569854939489557977258777359837933872353349711610462429487247080045255316131996236325575676570238878503359168036915939199646637848100411921384860760220733060811648063301300984644312788620822371095024438291966549724450275562439117485547323187870951365104039164114645328050475687012707926601705127188520031256008643007403325782600952783081631617645055624431778420423201207057102372859523259383307674448645200286706976133970952194189238781605873828227202108984195549157556633336309392498283720146754888196216061042663700910580639612065508235513337067607977131969856280163874323315200306968870227537603931566598774965469966082533600254969563401183767962888691748561023072013063402937952950468584378212918242089923613073063679167814272460906237227115204428924209377525611710867881196668769428997189141069349594529971379238131125090983301973936430052721509187334401625473206212516980012648317061574609903528407196798633439779457123570257175336976712638778180884354734022978994373248203667886946469439239765516904378731329450040212353488468887981717431355097128736987347657216461652524852637418869150606257021992506994871705225300773615434766873184983390508038646993422380057483064343612791247082848814301030241424585370406902979419222038685313090214175033909295246604250532812672534951386565465095249481675287625812582437688382049913277867706559497042970208921649286580852489042202015794369208285368753952210266016301149964008839970605176353133338678974141334914608516838544780437128245390510845338078148257319868559784789773212911335291340103771734148615111024702235838137502858489688457206900969699604153684164897600625990048542979892856268244910819793368283961513377264224364542540491943502061966073691667896253517975575369131662529007193602247725112726351464140891175125902937027426654662000013161582640928709118245044008743282610104148230203453331951275036793964068422722919118164984353604430418095016259172320455258845388295193055800274026267621385190472441448385871030819209466572350148228866259060311607601869406716847464958849205333410730078241164829500628171539880582214926226171023199273811882006814958735972073195551534323046984658512816875614344551232909291885911928909319733792226142330279539050958463796400064540021568884684657205394011025757273468342033664570395471541915326858760851452558115120883552929461618743572800239351946734745525082566636721476264446211600173415072267042725202561233653497517542458975360105539288398946656886681085462324940383867863477304932482230740189753044853359799650047776309771466482463644033320244907608546672272180448554872052263825802826088025503803559387635165772208311527785153383485395991326261079220104565160158882232501157405619073571118739919972951733268216496900707789641476144377040629403177964068985125763936807852173652098212069848038121107356068893468213011152488317467401695797889970044121895921295879699772804143646416700921358950661379645645702241189230661121518344722683326226528527247525642246054147490145877252738653057732204802791181518093906166939643930892630052937960449811315538998591920408193162879563112632389301263782529716345062225660831544535061397287841023180016288766558233454849148319204979244470857313905477919993975652280769993813603630121619454219752433715147219302861551935566180721251395661287558554299586120277172504309408933261546414466416073673391531761652112291622252142038281968860283759707907760104629084211457406070276372052594189439535237101733528173159730096797675630127505822199713648269541570654363149301183417196507808400871594786529288589591238112849009981076010388376369518687152253934483090120984185128409392397349270537436579599984455707385668599981450876961630530190210672399842941045813089072199648189863845190570518894214889875895944388479512829818733695195195598496218901899101074409755979066604231638350806493227140994173256739584852297116144564460430306509459768656662680711187690951465307805123287713328736075066253222283152113125040449910681078321139606091262151553681378858521246638174139466992296890597350625248451722277118890938298923518551090492495031298090154985549939042420741859825780770643581121806735494478582389432699485235598866709780815152283590850677630200841087877235341473801504452137954277817255828522823401926607909684487948060139101034770698689075641043544888240602182668287135513866088089148057921344056563498374066997013738527344496154283815723239985554683989032649105173580120507750729247322715568933965432632633348315193270944106898262902215235015034467786230875418720543482959914857762992172527272455070671051539140125815557468490884607813257236851178741070122873055519267233766063921703877024558993741385656235587206201101026258132970172985217722807835597355600008779485883152739683858047164104327656972279463173020268023005583105157282789961204871777365895360229817818390217896667657208955727789958657482297739919347161592572320404446841762832415726263545974137237403868674666851910278599806027707101113262202894773913182267559176761171910106077152766842761639553272639174715621556054272805840845332645294202425967383768586706435376315560240282678411905810342779473583287411148011781560717803609482511472006237083927546805262194231175961465523221836497413127693253808770722853100390846165246612735666152739974268957154740897876830128713052337752994715940973280763852708353818192631239706949760626659115941894206982142097557141150293223744765495183884169610828765246207758119316183602759345284542806351189810070706098356862315583154549157511942690051691633635322475294928993223850907601964372607296455299355782721995302525857075434955176813043929721439776109280973320059911050544273827547475640194547456827181197736664776590315073785574031287636883441245022065417829552885689567194294330458023962491706908533891709211750729099072380213633932556371545083681818982844469391464939459989331876584734109472049159030529825094027834082187679985789952410693986286260937080839546421296010230471694296703616643981123334391778658812673283381914701552987768406129418917609002865003510105067295671530413703934287657105137071314242785490581339188468430234869963923362544967387384231379628233793028374555698703520592260940443988430209051405380707922359245441633171402549346460727598003112675295985445648685117793382411247604504372219271666614232321667578539643553389141483910949020652866278194076624141779219107510407656894606016233384079275841939699957293925181437516105478476963463980198696981507298217749928960415062667794726517999109510374143873941266392110722702350521287230015304350736956616536131525833126261946236570108318459677879708186678443978104327876546803332831182946929924082070246773955279503632996366372329765399077117769964878398269233121959401151517245423423833399015417588860254129515977090291684483862419358202719197272258291112024344050998809741750231113996661463517372388691101387989874990645469083652365309403755994066071555052920197374686500570193920989097473239944011421098482915365373544763501290055951086053557962565216308520126885481866446989860873004727654934253532509968608905280704918335445440633728652885093717298207212544625139831729052707264319927027308109346591123292562929919421430118810094729870856317220213047051140577798818245862116901082522676514526135125038233966392027665103425382113231148974387150141783963084296578561882435912068751532505676062459827498019798913579755689082012462135367890947263603070871029326271876983579105481619072541056804700552609094693871587131262675205445486503863782765569993149622320166484355815912985101544672006297480249682361326498829356632623122820185470114033760150454556653861302506585929452326009254799557284885948349380629996925680489966256516718008991185301487341614518643607157635590067578487644693330882319311734921390277111590159598352244751746809222769417018416089560928945934055689289362926317582491043593561283001820402923505700555795032651368279054594804232471639336355304912234724353688172506470235127764249944583785453544629018861917158939075624041210641437509764063921394051995299937281027995759756045069390972513828482716252127390019546093505163210841611836609274370300103068181151182890836109595794147913956090703986315649684755227355820998078961477772431866158748046613128852840067671528885441547765052728892191398180172331586256430886185221417975310480812342148910491211788859601138117987951293510954196436083529305214218543333180107474393861286195820129495258921344706617956866981462393461458103487569739929500494776140456498195216682246526527770957455463981654107999642779444477459285027135794244296862940914063508000827718760745594189753641563561927399683775106122608964931716339328363611348305238363688919220854590279013516738851286668850565114401803626961657309655608000943461698699123527532405862211655460693267146938116239555270635808400655915100697840159806979572408533957726703465809039299120777239121151642890978684651776145675292596547264683284269748349129161155588893484312789370622450396272664234784727795663339365887452008499554218466898758917166462265088038074925695949763195377600303980440843394892759106415118625616493871901685914451087372324565341472822496109606030818600196610472927239984846302217469204239979409849550595542697290959664161358148868879254805470860642902912303403466930133977494178116775878446858945459587985194716410080146856523713690955607636478430020910216466117852626422724997708003096622394305418340739009143748481557887951142274694951908008094501804892203568915745926947997611228900907957278285808954936409337687826089683352966322316100229286273973861130968241327295610445902889850298694691305139028385749001218660264537108695573431822192873337351273698272674338194179200764446593362266421942541003798681817392984606924530458745591504348799330305252937883839643341300546865714132054367874846079200261240141687302117647978812209965504693012981531948779719349095522381858152082955378152416779778512110046915976729341288944940819047481198275259872497388837746735961624448412322262708554993614691552460646428313959306320281667521445638146304040732015136329042912409367957612598549350926461510791792542813242021255168525457123372434686276837135685774367133068896038733157692644816054836874996900056496080535444219292961367275427273741842946244127491260790427193092987713847821472641604752055138117744227752785530481227836148153009898138879598233931865412841896655841622135870917321261660947469027068406256450657457668386732574014438378749787637825428696992010798375898967949626629015480566172215063804931722290151557452303036577456113049982035548723057163205985435639405501293742945538349273483728700471165238879746539858742718639550732394067043403255675720697396757315767729900911253656042901846211052457004111956316866592651088705905917277562101495271405973655270515993369023168512816939262658989868436259898463898773282380988092485519080568278460993014494655105252249313616540983510404418340172913968573095809260389215600378444289419196447409738884000065503324126020445283845143577792389426348588294218354040228344782259410897673674126476860802350824591537388849670748340345285268879035620227209703658565715790223860504483519162683344927904267490137216190063063803755521657354632641680897869471793748790627840765243668191324098227737404424537288664334373659506814269754581563366252750408336332596511217634443642570758489582857771159275284040184325253577752347034600296597870158038860848011857847257822296636525130099352065512986067167104539884694893272091610209714926571536064281991783635238608744309393337690326861484265378789467418068072247438937650872515043322563810191373368120272667316185261865181318023084698231538005032287210921083617444075002393728019788544182121360321074513623924266619303898445541642454995694807487071693971806843611566056821327264095089327002582527698980138609176160007837736760279797740262998304121958387987981168117956388542561289996358237666061590601588846366708141795205752654397735865134445563213588965290807625187279656139705865223840850057798052289936029910851946050963942559082507193125747253958093496713275262542468846505415644967842909232429866152791481073640763483205899879867028679030482016107135986336116400609654829128820942894745933319066295723654306612944566985912813672183206389891975604392351455183284723390464250911084887464896046626243887290565346653381681453706227708421243007069180372444863786726495007382849665637301844744567522178551771908404899079586364443070793570183595816084893906983946934595608337557463814680995859112303914805936555309999693188396913129994488805284162108169550325219568197842388949351072566322810896983288853406565533695048195350620173457048794764057738735890687045342698580341158319428396457897604020619341174878489254323548046368416219786511517277980238425209373439631491063383588696895609222020283702111547191304618638308147806680169311456072093007312213006742500054544102347681835418606531504190254018564953156281005243447579868884272817251748134784537460824764132780580373122883469973634105605683078503735518435336664123642609548031344889973761400254767069364528607174009435249889520253750908272829379074358845437153709666922468233350512501704518968221170602364113213326864533054438024074956022535363963749939108457522976689926655373698282418861199569696316464516869688076962011863753025881035517373555445863490559774631368294857130937364589047151796574287071728336281365729979232684655894132717583178103931126294103814145022020544175603307622228557917130079873109832311471733218741661338635664371349255548728497544948992915816377180781977130263863308910718288797698545021428477021793358659537096055880661767710286429856261430294953680911543114266300804488874709082289914017430442900196897543775883131568650124174153039066091386119538066039286436470542791861086552748491396456080996736613835502357063887277950689620465049227780582384654383167429147812491077691309034737408481584312588130409832874632941246609902870037202276192136079933019319121855455554215119172604136621789169670812393732298853806694416072179233456375710376459461504842353495924057867684506297316856543967237450216110659931675614519434979177823635520937403989469934318660795482017980089762075388619859934735797527265553236073192845725446764224988374328770053192665197619247827577461136206553163405952814691215409356901256297325900478521525155846888032887282121998872941894817096546435881302826425153528506076394548587336806451609175938340376126332938990664193104381997720064769953293669163468180023433424270189348589158917182681958761364805527900661398317412105604198674413862866459843977603241681098678225211359891917571698457094041363005410852234931597202314012516023971582652073264877066827780301518374920302912999425526359353434107661826882245756406995049328434139051428107241028711178295307022611180996885036878289616150366971870627091916683538443657235407653824160950899518771618828195943584481576703417753124923364708709607726009749708012339438988918316309058081075328633634481961274724088556800486971094345282722721661141270563662513652612476654418480390517388804389166234631766182718794856003415017027868936701779560313170442261131242019115349000306727425215240016194391896263502882240913812467215428798176510458533517410021405078711716884613119977433989796632461607255091775268145074894241721919043965091464874130263257280633560842476220708791539262612458373347665549312893201216553595145371042249445729509818442971486691721689371839484434575970948170475768080328652707909627361938176769304378194822029076882173914861144202520932260588550276948095945675030147026200139519574063951993385679150849221516594971373380640816813583725521914494873491569419341810341734322333118113479521307959228331947907427871660879030381409772471331324078324212931883876127420718022263480298345302086353267123912920054800378021168005889150354610603881484910962515554373933652371525358211088098277001300682836607368431465693584239099852118927038991235290219396472743897666490274614317612806032898536099720867740320343896917513185748094223974522310948648743297018388889359333264992722280000455612287769109266690358569373697588373921782492036349570230514244629147129371101662741907547141841220321967665058916098034377522172931767227400687797493502781846085993848421580942824568354523244535516302330897498131078712761467798362316884937115828661050274367432022589123908551775642419709898269125981018000593212061322207967198622815160116983761126708231257654957740567517103938132807139249544188232204916507067190033138491565800452609555188736873628174958835696547002127738407198782171118308668475272705554174902829660116584657421155651816038394360325491700529490627547860377502052302424815238084360460894502884439114360465386224346773630434638086708866224883472456959743054502761477033821290502881083523465678449977518989281754736662898819987334592501293128449771019773437494978331071934354339517643836476908884684390720121932129032467875552155937731047839681409368846407691173919015350566115307700778233996840747847362362500516589161754347644708379032996271799467712074715816052905816068108144350268828180626627588567899560690217427771345348661698747083025959898879010062384047481116537663400529809986473253282337230648421080770410802418573204052751573788077279713913714137911864687335525440553161570909253835089920658777742089695386889546253295651779657743962042720175118037943440035220821179456187154554290454481980583239184345455491923157187398180857296034218722548591820236902830390633215301416168836034849090449059098248158065124660498287252549544732490441858147459593227742682056739470236610396239658522067766701603221923167173543269228083386941960399236827940457968424251551499917900382677358503419490105374376259092419978519300672839889114056367876495429103839186872703490481613610916740118937678376600510091582564670138841013758573488372852142388064616388873465678353737588123926422706493455460750964460836864412669218162584689833914991022971139707049092152422628287527830627538493177133722934573900119265068416883925647594142626697674591306405998561537005889097743522885829942702891895512709698681817555536506812973272941332906811505831307402027779796344482826592044127488886588614321428246587385063381214140369924178277792732628005362848322009319810647783329418413662710048209928890054931515147402021755342107323725794412168017161784142821626623641082411919380246294334745702622914927399584580131952918411676247688671155661477936562578924799795398330081852318062711792936632173531852020199863789353443617770256021355601025340932035765571146368218803731975713400512378518863900250362904145512913801816342121753024336697890919715927831402287733487069614057863744052452397688416157519778194075224634106378717629832350059559698164894610698569987160665570086488370280002349095581597601621502356043599658053023976121413997028641160065001389686301803670017952473555841823878414608477129562747208297027882593781198731109247689934531184983389448578679736172778419376499582287575278316999721374837259742601178072811754366954506607469493820015240108817840560853333750084074764017000661054084500566353717428677128688192598569870898564561056487146338242119027415300023872571660611156124337545517752659821053004242368842867016124464600181121114147476037556411710350885167870564348698006127486386556058776755709725360616736756572198971777167996787481008199136938563084704955603154682422065394252508424921214730745328456189274845146543202285071413773553724890392228382577552621275581306798843472770090283693936399045826455884786560895643808117566466475310645102047456194319033463369822962564644439551552625878462011991598465438184038480282351518453364582454484130654082084521043448614802171646192001459526202338051581089818596452214309732486739646365560947934267555601027961805285697953348732351001541403998421292919227991101689729170271299261804583362088016594320565649914763783986869772061443774255306555947483104974684560791628421222099784266914969602757101228248083777169100462886918386205541376585336745100842614972664902967788609749178776348827141960718820715878488930943988450009778955543516701230360420126340127538027868300497418927714603837181851862667960832780142997404408084819940910377280304897705552663482403100210226185774849248833352729224107040681833377697041141766751797517646742838547335364791053369168453193493124168942285052131417064065609996637863007599049369505953978524487124018456738629155681842141507210741811064988559314929324954084240203331395441090334752292678252104903188024413399878327191765084976574179512926358427639025785371734633038188756240167593288739582737888748285929139016249797844285151587366181363391991848769378671934339520497681133569345802561078855491163548501729885481677518929041776576961861361052340762957718643211916052502184387743452995661661154923276441118259782863574652241185717268979988909201786825846973966457719792648003511719406483766105615085233826168309399448482853511047549907446674999121821180532257959678092993980210781702484934641914992499197913218025774820345852355880521638519950128111089724299707352285124141427159768583781708996804628556754407338206570379422766704198464424880875069089610884556478522379782484929505812929995836312899620176017727527988777838502567158357401090009867577288848795678943659759449397056630183826361167977622591993019887793869297636672710440347761130576419705093192726345932653527725074989170201616275753458157526890154615658687479412577030892199627825467360248013615303212871778373799299325992943483633677649527091756579117820374385010395282693224279389097505419859129296929624856292230439290010339547305926227238742570127482286168318658970173760366746952058742918023586885970286035529213892138837986732220539257472370645760043155288751235666080613051043070317668519105627828220594155003285459982134106838774821450088973686077938223353259037524422429975538128759904465031912828303768722839048750498361351596159755480279195765316549582816641580955860358063977055546988718830047626236136872460444557317450859705559012794969901823369907645292138301608658669780297558119816062903070482655152141068460483511140989215281360224047079023942505711003270439206540201797321272423507101843493035870631962981848383798731147170849966442785084569095432133502446323148830454320220687949066495920756161276395655813678398075821194775292926124153271576949249669027656453030352410355722830761988906407642130871526877164895308069580261410713609472945149515842837789969825328780246202341201455802688288340424575438378491431840229480372781013535053541234585660706561271908522342023130634554236201731652011612844517232604767649501219808105080604498929963029034220327281325357850489001072783273553859275876052459479772960775044457362449411294086072940162067761505752993981621078508684232765510375007517543026862705499324966668386775014962738805707266542582551186482506872716690283023103984678233840666727342162344641681782372086189096828822436819097618612851199631076237894356966572133940864288601031083201118565958752658741540719852162911772638234245951900303670614631782274710562965725112365269393062555691581505169603426129821985964148145648236125985251523129365180965303081597396713329117344096613961273420605216303447018946727040711486746838127162125891455628719689669713776099003422958478753357485833055999333267250667141550863717886441824415844767100476128677177413353095360506002734449864328236017544603637800423586667810766330600507479064915212760099857256821218175633201936454896832791191191212448403315271044179489796313324730120311408915596009155329395320886587927312460392221845301674983782017917857990230448260024483615348712388242942115881252903911306634074269157662605104916129692559377565026051615178543760217870228448423001418188975763500150193956708202485802833008283333386062041800045259085318116770809855519362569534565262462130791634400412950274810817584433910287006218798948247538046876660527016016450753948259916135179905702723098848467485087477287966712316663884157347387134578840107231247096796419256425342541283171470982709044404181056638574800099248698180066109221398331575603124336598408462061188526179142946729060112183966880690964023054043255159538874111690351014034204797985196763076976002968414937629962935366626419737435145376094264415086169750029134949044644914476858297124132066334855679691405043338878493723720150638337274543503440996461666620287097978603767399997627739532050620074882231404281145846914063164912999474838106811336836819262292962390339913101283016460823510317976363662361197639582224698296337290100951137732518067318408747858774703497979357215025306725159436189857918782557233537538745976871706482820798909705426901733842069963951061121918707772110751136840123205573372691857244219793781796161070589040895665960234278633144586328683963565752488690449709367193656127605343959169647756503962639896466510590750764747203904405066775526795727773670389746297240004947520004107081129924226326142485035532655821756427983740292543673990388091914409851873316726169909438364267903337691495610974069069543262963798632647723089859560273452835638457570457764435185570544045995484740716940650421320855180554157846734194849006831025806809112383792343195584507327530094897214126031964298042598565591845343753579938580770564314717517360186631746370728224263782143591573429446921644784457289229355436752053423786132119998181559177384025155293373261976911476700092098789236923691131934986083526291471699090190815249356100893394615367586930830000755779424802916537496875204072413384812754348610011854185295091557518031176940110555413793084302386483593846817344093780185927860315552130185341211470273342038834850365273027668447436123812056389086437354829299493471568382264576116344645900107426885961828206781528064864431098377157500437791890224036183361418591488945780983312423756766496232195169748376247088903978052145781241233692861971414262043735030821424186430821644566884161519713212919226938777060208615766820547362354465962496741181928247908956778351719212129912258933136996005370680046650699857400610343894102328997012026506345841275243780575992321628634122445358549626903376284845324891091484451907776974037890820383503563782473381654406384879932526540029957451179589749915115687271039999738489343257652024641885907469663755525665585228510416060309805034910012947524618458538129709383563011404682684207026588201269856935889583522840074169624129286875696752713899417196209417063889696970852699417684256120654339241885847765668034371389292821825049979841204090510187699269386721189798610058209059265305172064269100064039380599764590520410742172666585298771930690617676532771475232572558205054268881495327814501058056920811235245148642714289936282998443374584305221581732368695895813150791395728369864768679325558727959181405178237203091878415944830713578505086741166754479829448794876474434763914060830485588811802710181935957295044937420314004310608581104739956551651125906053317009709741666873447555188277630489200963258609287165476551890089223469899934173169022840368623022419119537308788114451961880276257143075930410097039033506911278759537286582472074830731458097312116966480965658318067832613392969320590004186410222142973374916997878405839059230173388058427414642533753257737818952145649876571466967670328250805572044454166383414069599305162867903497394592002410225064001391493765423544365590064378191816229987103926703807482078343545533204285804864680936869151487485230511880962962776093377313084667803732846482985101944575761255291940713809323498396619735185558637904553580826669912021560440340498365565134187158576168639459276003025975748835214944446325801957750899416747711715366719222017212698826536455174176005010281930056960976799917522983859824255329446823179176176848890192864035758418523363737971790204952115366111577739449973406921189753407655128903013065765545766672060217120416375419268127389609543828727456057465165768899552607244411438459393331113168725019730080450158947901933799305581467443508669988262972992940583346961169477981193692719899332863407117602321829394597752089463825537493570563905580023339537066575541292396832845709632124773159749312651382698999605847347038915870966686686554300429639859691668392805571554568102609011856455497607881476362380666596307225102257604348396629174888735829274111024528915214184798366590846523830022900547575531091619452434418362437010708689704489955392952443736983567798343082433488278933016543438357613900759746695685728147760963021407574132374724506481895633505294456201774960825041188162314191676477710282194841231344304416112445793038836238830344454651313539942591452507839109664078635861095718194592174324966032515835704001402969227287549344302133982842610895183895277105692393058633539469315347907732682355912965450666793018596333594386721755713319887426215004741239770503856667780871559903095768383093129077421666140718794635241867730375552537929829085044259385596663352930215060325710361671223028318795528320437884847645948396163484648827809734139506306119403490514703791976666228437946344556267160192653543743088131227014093305535414159430365990344047925507776799200225948016168756811688387195983807805214479436764166289880509230017216713553984809772875990766982072486849777885346508512170187726772951098329911989747004576605768753689667454809831869476844420910731403866071341507656776430287568344123951480704847967261561591639626469990495747876569219294069599062005496059457742234040612854316687544863241373150870562404137983077504095614668408029148569526680616643855259670197781403276720445725034493266937864476792439660777417655924841679902597795907200264560635691634243138114696913439321388456723510131585747116180708841126477276241542125919900843052319666449082003107240506307244477212998849187896209030244987811150997840722864527524117372599939302628575831389257176470685089200107046493013178049579864793007560080070947671970810173377824233538425610952114100640629020005351659321377833860894957227170858032814744041397506727530007014930790450893789492831991096556862053799059113247458267184301009122304857517919258745800787157525282807883370873901142371413081048566076921752267292538027836237522187084449663688351494927867699129230635049698010018537037756759759253121743056581680697513338214397029119500975931221034386224147710935244038585786594750477197551455147526740027720862612834136385439827489553037754137300288405696886272875921980584425179923547441216568257209506056713396080551637162151141090536762988360431005121594480867349315695968000244940785834112319514983288057473522359167328186422197561437411509457151898610757082260622941654166871974562157345568475156907568029979423675584960438144947884824858395727178818098439598694153578453720550855085941996505642370379117476079848271705618309559674538800880407134321781210173082383979833151980549475574999684378160324993734335660851701671467247198426930646595800148887241663834564879324137052916437449702336401194935184129931995677510610180443403950454629694926496294247225556223871027218850694636355647263442141239301283486674594571757654384227420926190393559040900688425105525669815181379289450376047324177275845810862836188696017340368952258263145752539047757286986400627535408085812906477752803536230082988658355228550102637366854096963231511501636299196046518504179869272832886359260597677378294427953227019742163258312989285277393646750076527700495181868733647954619581316251970325496925256785581663656197970923301630010951867163112011808948030984332860897653545054963950333829719460552638443273190222810656383937087604541748512570024130348947388752960636719620972843228743048378998687312143864784784599506847294841749953488754155986458149162138075867298168246783211215348937733876686413131144121236561698344503847583720498867681919858097545857314924738609305777213245157567869636425631854370688805537606252494257438887561193937030328735203961641764337049365986770895769216829011998271919006427563608167917273133199045153232481320469461198468650151801071898068951300547040864330572676476028133290497570555154357250401829008670519543399505626158141150224524794415122120073056437002801289529098316460194222388443420454277549018963176590800335690656607754818117967976179888594262269585831944843891299651720587295290985445982757440948028419950794335246478742177566668645372125368867132762092122460723097545775969495168551078976686183798986916153507210744829005854647475357941346601272713425828982336199964752818349444314844403888529228308557791752858914598928709902959910155341336937820937880111228576585383048925598532657013894084452909749844762050533353170610539036361478700982624101613377002669668440222299015150913946829150961378837102741685781225636126338119958856987185474565287691527863816741896908503336601706758265211411065855027345704225870096922494803993721546178198643056966736850440736440490113205477521285496760696114796915182062940594442201209796275528257898046510425384827775802028090377687097317188964942607652151450454531831681390203386629135595915585845119100719925697909373833752402154312433161958616854979832219425711876118425418116757617034413334961199561704180230807419391292096584317117831749361330106166565640545311395837574236032348055909372953589728167858374830932248956866947190382380817513011629340905681040024999972674762639694143534341214808283481024934763266599726561853544035457381650392999048914723698731396044987985163969029807145866319091756355559983529562431248715168771073236259730964178193726645821138348486665931094559038169529647848930518893285588997980976092176405359991842555796545506225746113748519384411287895990272060464819602433616289250677675806967184700997120877909903608944623634072036315053766273983938913234750910751460585478993886184120087531056712180729329042570673062126922408827434321446029874874759255916177432692153378620796285777293996572137097227751613144316010318201960907401314994390497505539432357296599071407050848350987223807565884890475649799064839747519266125442510217847993390692472159402214375368615981319982665128689626947986813304524698867856950932198303441798701010552131317067484100912545671430932718575520460967044549790792407133023027954701135802793333933460382929715753089260544267426644524839636433891629955855686097221875883980064070808720879908210973733227802706907961067744231055700104774487581727491107162202866497640597706147152167160846958015125658012807250214528747713632308034283816837835679792541015725884610721957647523571030811091542507211554590378004630802555922892008019870386276128147121104995010960605350585763748125354644435477549149973110394479304607213775512264789161151787999907243446122613886052252187219322711459873237730758071045612470894054566223145331622958855464120829252561544543736496295180453153828793666020058704959594190179477464474110145257864163992300014422885515827650894069045488232431257159719345490050011144101180376159245767644044284853039202532564488754038311934561945351472703689152397768410364892031952775390934132304950242351128441357661448839588063709152246073885283023249689761889333437575614784952918517240502752558206557722459506205424284038799548172891452651872305517779849354766544917340256469403864965574290277835220220384487524180914079575101749322479449876690692506061781745231179270991640892279229295874339550477721183784736785543467669907279837380974052196339131069418857736070368450782982554297335220530668343343878682863083451260226995973244039188020803995316264841307327351125377389814905445122638024706754448774716348838722489388352899608550091496439145114737693685441032304021454855478830561414785860077119087230609999023868847752185878014331895335250483913982458362248365713068739681851874331094878354248405735329725404798729735334875294087576888710648031373214232274145409157141934063616009622262601192212509874675333044271520652261365628027174100524149467258096491482668471331549430698534283740649186392644636925982937801958959083252453501105186368979846991735346033616203773205675349672278360855924196394688755695567185397023718806678714037430061966965567718782842193390652726797486168407326039422749253381835798209511178199834798416745791790312728496809068041497859865552492492412888784195097961761379570282176937621448966754403323202900718644187462927318422975069589169918748497419797870078032374295407589296093533967525518697182867625072930459283256640787834761335999232501991119910071457687445779862632340489092815096618367639378887334212712413826533694133131426603105840465252693047427776627261289446740504132164976549567310369152086326936962856942283025333170886548274673585342091663022719468150796752078064275270176078887726990462713783279419784441416175744888800700536498307028282046681898469679311064209348142671940506059337461234451798084832746989871310128621015980436959610318223803913184614254193112787676592983946831515025858317177067561826573343567273020325776612836923461770703599610997773669912752717740332456551879475706472909846087456487240282917492172739136382917433674100792694996752699550849702906224207429176465786354691172176794633288740500906793765158377390906986452095592543938008083091354150796210220418699240916908596546610856264811402657068879027282216407563097176695429289473443074895644763590495950409903132845504807654429037368442665655474258159762343899891393874739967785075927906855525739301279569311093303175935405137129948415105050706225842152628697719999586078734948849301582209847691740311160742732873039788359210733253275999369879253430734581697184276857641850911732497076608470338333598476776526037497313153918178728115608962932183451645028873619525260541727032912671846073095455435908592214045489842017178422897757415722188132251881814610573904220011612449823558350748850184019426045369512690772039926824497560192043339905414110365011216692810885094468872612668513395113598353754506173724448205207882129587309291136991365839015323111999761041037082662890172938993342782569732225936138670793317536593595324732862753730566141618020585781370241185974585548827182742920990126505507841552125670779686657002627868214729403476660241927127152181054284475475237076885307230821605204931939922953553428629306572690801962266940098957223547196133474468933171156126164251754201785122989344670280963835628149764710722034094375314245240101780349621850573696139920811288727579264080234173921424396955222556321735097139815636146223014287622259204614173585128534137243368031294261770534537677504922771935002546021700012055130332494340014599668733677407405959806068133208808356285157757029263886380816479151038920680194061256106124867883515699712573968015400223581475283596195928767202406527945248539409399806157927320823399433667073200343009610500233570873448938041490763767308039221469483157561388250285589865388079609378785562212046105849750861522843565218267919875835275436968944612656838411622644958515067297280781585904075408727979071742519006747961417575208375860971874871914302782850456383943117900670330166944928868696960580060828570896357060594591174151457890665178966374730507306537374200532460829968094219909334524018747000262954034193287654532323086994677361691988678243089699047223402179845953173200550987121006670049128792109207840056692113768086483505733650137541513490667254404887178918357006925917725787857598859957764356049912695709157944643009912552674036136293180421800791755288478441158731649784359378388195314341345039222340457600457960337037456791534262906146038865067165916782843947446332599393364043121695049647238294941424270386845589820186758370114855143670664863500427021910137231405227897442914475233223453025986356992622230422629126304509522358979809945636296553054442122048772992418204831955403608148228399149849659768773892472216706359198595358790892520838449991851178510133722984524904923256999713676796682156027622746487517305653690909835251079887440268417362014002715022384217109188235302199939423752716446033422198834836260393919657285791482495099829754484800987516163569593009769496046738766616384654504579911967201229013641239674169465438381778452863203294247612877176095779881533063434807969326449321495838443462306235844729849936157577234492319032690186568802227785588772466039060474594990787707303651954532401604918001205436552187503465864360124109746596190864097031052768099815210106869875666437329940542642227934523530612600498598055724538647056647901261706975464498171320577049870711837456789845972942657668339306419552385295093784910014846728333257819302097366711685443463112123115069578235830600547286592829808867897610967974549591234278214367830703716993819505316031128968398975909764913819817862925004992203459837206764780220683333298163565234155376479485543781723405452668314201531495643414333001390588704864539116925577402856946601896318435332880635072671023307206170984142455937522931904562252318684109790089200722966835089899709697581778496820694684277042922788716036336008625751733649345437781989225657098701100515169409248219772623341501657583554046433047529821361895457273677753878183906782688507693307148369848145931047904493908646424469637599197571142872517719913912662283436272250478622368727243273947691578139184562585886353704729934942095460717865294281753497212529919056914374540567220928721937576119854247817022932152712380130797676016623549999951385044082752318968779192906420259121112438594486774501693553057806158289187679976796823976078518210955307131850747491358300183350259961722846766149120465218851703162276384887745283424124372283430133153230313707904395904666377992967316246243240021865585516199509698837344445832502410183044775142682972792543227632951222856796708094994992628099707820097166936686732782772643711529923431175989192375602499098871157976639507771678584984487039342535309961543916531029331382053784570800887628907602441077622875803091785538178828011869873740921070294904727193932832610394484520567791976871636136242432281975273999753982334967457747975586832991294033710737553454856911899864972105343751785543634675081023840647084181457088086875691805876929065473471281633628466664453669167240234878993993075996354908864913134777679121439939106686723315237905723601475564957018286438212882615447967743598820421006621156796001827228544025087617305197508430561734619532805466230316107334606383747345752021661840634041907626842555687654439321353414629719319791207595078193820426032216613610181596025933362962027447299211050338955879690062471755738619986635388396015823141305217624404184896182335289823838944743464538817871015416392348283816513504200243374931960225300373608441014735605521172723033932180707597513127025503371121264983187674687528933659881510633144753020634641378416994420504076629678495270847981586023878085705153978256262801127090083827600019607544556320637603842683966315372218039788122210075115025672102887263839229979069418196390919494406763714589255266879051922512369897003072746384609760999337229837533842884687833237978787600688079246587451561557541349137598990392394030973837905027313879400455069577867914697924546783328129284815480052831089778457245772000736322116524574314304749363623977090308396666344484570484059097878280677591739812817819529211143588757053915138426661513593760760688164299255535083818721426425888279523864865186659339308789127503402124645601822576464219729950011461805065838984046180308185971648288597615672173245778255003526062466500864439172423739100054186724145671469060425589436563506942768228439733300490717416273576719410079291577736397844240274286263500076779979417225260811312723460307025500157321973998041833708219962167938144807172893986285962255708916526669558912744930115228847534439825342787102975754682878246282974699945490074913533885127395821825616019313536519488075312202830932952489649690764590517705635297255831492701093244884099557350389547055155802300734038032897786846723097699944988284898274510960945917462415686066079644187928098305849929952945556186776938522807891221915052632599626213490114338593823426527701890546537710353781838660397045325605341498173559273937476569906163655140039330126545282485487208508294061160196602280779573975634931879336854255979904277138506634042495434771946222118026905835183372420128872624819726556401478810495816166440798465790846781288020858525081226718414317795352909956615435264950181616562518733734589834361150918673755465669946886109789325815810626821036547436968899740744884290342759606194264490051715544428208543973078663499629364127623788933152531334203267501996469552778880288548804945745481182984718746166719307547020821760005982487224093068288718932365858691732020132144114399353089225900734991564107700218971929284538788425287163975599237242760106547937582495637674821683473807314610913077995307720714216352983440362323659015110821007261710621995804848474579254388479702131603003931645711412212736918003041957942274389185749278594453257096114659962323039617989527907862271031635610167455582221894724232645720789083350190431037213406098626873731161240602358634270958804981220402994112065683788654555142605246239497271964773076018670437652430411518036280171940041107544364689553741348385085301341186734394099944681462999839873536020578021720369211273986778253176707249068982291486957082902485694061676887172905736378278863887673642285993991095550970345789060467691606785287637529460102729582671946266710817312580140741185259477727279679601378656261639270571595886860851936786243589360772831112189729078918160137292995025416458322242672305695852272245643259018206713440366340066833398111710365726895584531852595908679999125600534762527882285549081287529811041437161100371985273266683711211247098211962801544079475919718159367673161637678209751418494999246026244551780864472581057762759202795963085567119592416758546986382593325252765952740222536008175506950503291211596543927170780351537666626233381301337250831552075977968185250448135614463362727174139489471839130075458398155717925145757659325959573062926263856339976159059128441870870537994589886831521218586434918875855298124168581472776747531180723595022689722623478474579441990717291822507638122917377178167312592051576808018200939704782900608513605176534693896893310249418732556096418606250622107880931471677681968272952040438929496016071004408181282257200629283930821984868141185354456017619497640671962741790390366279659985112031252217895815784551302153016532131062076138207617011748185455224138561346377668441301321090603530079065144471194356267599069148154391202106000622486548765120986068992668054437256624395113415741891916658366139799663481875770253525949069626732203887444108825666313016604026843627239506521208920154092352203055874774251662273638569472564535792846723247240053291318879289129220418509595394869641044637705172518068517090287105950499933088564274495667759497873231464759254271909032980731875570986183629798133593672933065241146497977192512030631998560083176388339042203963636194067642519005300789218709924778937951691087525268008609300423082693984639290310936150225567979140469339656023337814672354089583347473594493637363321272537731606252954594126732704708562109177254595466802787814923035802343156674587824171116588461945426817748956613663118510398090877313119964554234029879325795416488621426750370721828238207970760651783935352664223680438895634176691361305771175527469184974067169928896376653439562688213884047922531701861016345096804500458154239468607333530274057688939323376212341159969585460555213230456789306736468071889576496427418474735706980261367551664678495605163909547011300919528203506710110033955532722846878557914315589229016344030620015466807673528919360659680205308260435501865767508969786425015288508115045084542451898611606801561966719237714913271525132739192786267517805664239338556450348432437599890706945183657736437383204445397407321146258590150648628920925077001213732661278937200130789109778515264330619040631953883140945940295516062869451103097996034860346346908558310882164516450166370148902049070641613860715645007765883403448028799422037877629906724149891747852466901946201057177603246723050127191126917617293748725128859704812771624568333687424153668035539873668061890622812478678156428302205913047975107826899548332596775234922636021025343595990211016180547602639698980599484057599839268774259009403807358626867622776563644020536848068402046810706218798335500655689394032205302079718578857655463334781007042127383120005834940876047701236158944364668176129596126171819704679536813679558003214440127499159180906298541126989554205110144919471969599537643267033886330320736687727730768266253683409819721683722961283831472086499150493480973843051375353367495274479240208504394120102027218232022504833059045822508273529977845666847345347592515296932178745779164062732625295991310044677230989163946157841229037775868656597983148962737836820389596992288316953156831888760161343438497216925698532149493146696209693942674546725459735255944685233628963874070891755786766653232252056675508029289575878072085532817966513704966891648113299610603466686586707035021542064877256107451193595960355994201629354081494268353493727095387669839587024206761863450331426642062142017220728326081350907627116552525035655632872288412131364178728184301261999236811375434756225860207008708859633985253323217965883113041130578620738952882163504420921340361726754100716657734944698131768753745682065693723276236321729032446916948961594259643093837000998503218075929272296923033871269586318404603645382343460569984963118345552030272762235763130131668506400023792333701729344629167762014985031929206577521717831513966665004810512273861470783333997118564017920089829458277091823978107555095058199435858941051426661311900320867872227468561821373189526245234167619735538885207230000149778628536569835178032433163294250671758535595256216889816312945529500670793154811522772230391379297954412498634211609169628308384312755927016283503695646340975540544094480570667920455707747391515654986810419688998777112813125801697385103705158588920586183357539483369106517492369597804869332256543634937251640259186264905288318697802911747293366634581614174056150276223012029013918420934645296937784744041704278135368679706334133896428918930093016215926013283679218265752760681048341611506509065654995279805880836994497699412869525178287687481768047371082904855332636942746981333613817901065954204451441224568750896934678323077328962626927813777957923013496246303528676472117392972363174367412998687340327173906895009554901438484974698932975606837997757577036777634459206409149367638870814808009425902235196721073125810630366946829843375649740200167739977981468578134573571288997176701096863866106993892050997158779532524108787044413851435507637472392715862071212884583660613092022538243228118207388623095944284430380266467710353481671334404948393793715622958117527486673463336221717142483060472060291523114402103226702507407820012039817378263341109409708449345023336366489301438844727845044034699825445047276557830692869615495030236798010767257050089719777703467789831265282070133187060993034847838176176995246903267984147576889388358313744748600707705312816010565591128159731432974632018403838481335034175301592486499689864132904972601140298865419857045673944843976573962363422983345537083503319928345313361957433571615598664801457666650942957283118581342349948017270173211722211446336451708775139300800080651922169842249989718026910008644067929591328990705646154503774576623939296741081258034956879098576897082349199096947002180099908366692649550022427454101916754826501853722133970849862235067573851533629841330600164374444344330857760552661058860713218153711663380368189004088876410680302434451465276945793032879166931573276844145741345658231785343156235077927501762566352347907380267629626092829738710313527334915830043306322819102149282952056312992474219547106644624766423433715479214545494136413330955980274245614056488340750286351902458998026135077504667888037268134612273307368652670943895802152959502680713948065878687137884468859946235286133748492148108632758330816200397691984747243281379690702494816184470150300595171948825467508382044240092290932232042573450287532125797356346854109332930963426438360915008643107707510235350484810462117173202850361358981667714693296705105537883401635045532527176672205515307804069411199768466033217441764440750699240612044680635647784963559246428005462019516711636148042936142405368751121070992353659202069357063651926849733880720298243360355735749130395602396569282188269793484526875366164652404691398599134001659216187772885774761700624836204924890740347706517787520814671520393845718606635827386185390721793093114921217538415734633352726048910742980296373389805758534338178614734689435612721653798481305827238051010995979672636826776726145184686546066058136880286543659332426570661822316894010719435016558552334403213722279242584805193794029863650347300359915764596147177249623252197915744449787003491737509770560234211775419239060789295429416249119786949982816211032488109946392585526718527109777687243934302865040071780787908136183754953845398734757269932419725032653809486687168488564100006795633999394607860293400670714043289509313055926320505883228914950626772076186795445966625141398409012198026796299955250937324376041513841074174933125796089680165058887358045504439504167411277701081415162266166414467314801121690608166740838114681556214115121498324800374206225586908959826383185729465844175680374690097176486590778494738010646812017428461662039851136505171358725337557070816725856987940957331463293711463423587814012705280556568263903281445421822084205738353664733139723146624353044109218608000638638670729335709445274256766240912867932105592940186168410122282540029437340382268498523414641763147636251200690547337757379959010806170315958223400858025125218541450800352162038474991601519234604186063025844485945302354182730902377708804936775217415664163436145154557447839792318510019337805120184509547957903818452778391194182865679862750954872612006149783810778532889231910477474482494264996736843359007097498513532823847531216908325124281762859151854430045106022131715730180786469767093863326625026153773188760480967264013734347402240089555224425704510763427659616173429556772003492403239712281139184309270185834983076425570241606181977992530622168625742648979907938805642906585180879238844110927809191488166812213814231373479314561658961805311341191825554088105055290016593705792793893776820028870717756924156104450594654640236160824427641544992029151031658367515498019603605452394057645364771714622964889092259963991470869216541937965212864138625159054688345076214374976939832056104449069036204740513626401320860734106459376515708861636495168353826124804398523601923428693291725395766691028505300488833159568874056206382110761728474734750028407343932332898284150744038309762559708344034494614300085426486630010025603565283871468810308566322742085847857255010166976817760284513506603501124245525912737010873118393557489094766865550741247876253359150325285081536514897385944082051200238802303490188686323966948130888620664116447170988522202237722969018338048494651924061298808132148567524355601225284670677106024955864554469039175032937984722293598049912642997144591584275212999212397061377972659070062822847443893742471691627380967877213397388611745591184540362152904698560431002065645309953655565201988063014996397489592080051482678307697983657015884611267775884065446026775332120078775372006108898232685100670376267518537111115912008314020700904011807650147480781276749812712187010647641089686537872419139356836401634126779768868684571419119911933494711490154836134631280856296077963874715171157993778820197662742465304539658420801293389514210478803678159770978347564477441064889127265423951563345136408665257768246371792244832246744340064082857867921807244223426235419536997629203657401322836559805089350692366635411216459357504165606000308322945250399329885808161416030234406555187748571848011665192902550020815131155808050240382558041556507040887775666012169904913017505127677551132664973718355600626627061707830972958144333953699214482203852116265563416408521247059483876217555528851038171893625611057595020711956596476557417555195936692233742533327420199568590090320644837451823364148431589204138591109112732944228458781055198983297343456234166981722764279185035720989058352152875397402134576188370694637670202235682059075190681531975254730587662281947830149293870123589086625044063136875522563521212947622662364456266454682891596919283291746619872019986498648668528896364776871175476741075759698028968080914893244783441968067068091595905467066191791392040135512453878780408039294992047356317167571893013125668984975075592966660320886171806496234633522733348101257388077168283808912956308607457039904306275619840320308585781822057041239774343102719322973222419181182604384798352083975729186502729927413086131684162838281096151687180280294351991586598286610391517707365011286205186744112058729834837435947222042599091766634127096962837598618261652281749592654525029549984993150768923240086757838757048793492866831897029993436696771712258714368154448478832363416367263637406624168903132711561182525254494755239865650940148816978239717729541893041489753205551811079417990813410719096329348502456413641699243625259835913966769989176691017317815325435338407764195654704704474178805129767825441482497066396066082666963847733100065474689889576335832255690499081375484565775856742119211217662728360001932056099431843651406982975227178182882984737586465038083827507823606435593766468746798731987446137907916650976509184212789536085917104234250736408071737435467420722421404072587464611314584395555688548613667466098068566783695938990656664009451939821899203882692073873509472658649456979320027488552137930744676028822532601944524624363576049188625287864038374522611251934749833685935288987377992755314609849926110626580213753543718503339240785891913191609485293988345617011646162978555185590948471751232409698486653218644019235854921058343137525795063180013288153464432996987752864684358747847005342988532937682734235615195469304856607390305127270677147823790447816822851786979666986940938017683021922399419582492810429901888537594830575472408901323619066338025095319941928970249303059854147079059840658873028260896893989695352562324849027461149252566215395194785814405577166004275940118990133763094103107741803337127041291292282755871618073698544292210616499190394316507433634255079851831827612984694929745150987722581391894140040806783465177049267197417593359070162900987968628196649342616669569414946398554062239433836088985591642524577768457300700518372883553490727007818647699841488337827813891973882097874359293482196477033688606865010018239033541784956409517831592237073526593067358144969566180783490151063768579782771756750916936074276298805368996880370793519012383514630975464870749132697850827088068104491560591739044390118189732159493945989377653271264141720401337142254724178047283344714416608462721838832352677182297413999427972033975792409873796077345609821011663173488626511308272998749720321245812706920860650005823275822639889074871413590669305768555345155871657146024988017147759832011152425181300064903938326930712328805159661816690591317549360772368613891952076678386115263787835653413591384476595536640444668726845668972338103187616289091385488202906706822387057733306174969438388506985868619530987994809153802933165308227672646685834747282304184867290261626815844260504231868079978893238077791204077699673180187458617152383489890471746074993129732431718954329669059558189578476619092765766300213351544957417048789033940532810567816456249036070372931179093357264054947703137826097072629825872165845041781021162646611486077157093186198121728112631672492347035073155853712933344970150683819757973126492015942279386125566857144918707263576045770940810901414014903328519935829947325079923613955629778117482014662865750964443657952226712746713753724793381617979151042072803933492117786144439672379417847720038996925222365767396899894516860109387577383380195087011581920186014790508773786785258950974154931345975290459923250621153086321900003377899211800538271422447697498438018016785353915016257838760742360140543608609915030903495879461769240333276772784371615800466183826983597641204389318808950035775913279856117173910016205587051752637757360464700299927858136686908570118492005659000121024482034217182499183465895334097499996951705459104111503067001325592248304065717598700861964809898907491539666042619277762823495112280934641871095090847749707104100513615057224792481593734078562739544579308273011435499717912501720864846623475325544424692763910854322775351575463476191330700810318318575852854185647506047184984671697815119818235496662468137473715749209851939608893230050122304892799505260065373401105501633078529696682043291174602097093004015929282749572792015438978433842077144809523507500147945196181856007518603283477934026370395541488558691978741175050945320042024906757035931249883076442540030926382713170340418113999907004934596880942832522684250906196842520324435221853632865493556688569690229714301418278564864105753875044660210807495394799635034534673621221856363457614945454522655827432357795046128455801674077093330197566673786994734896460200002271646666940053250890416914817944504366469379268792081927243704450292067692578318708626739116093426033281858156221473927557186214873907269158448280970299701635868881931217758520088962323306951776093508767616438463987266043093271542739931682818860658255508673771118782535974972722473157269392558748840872052305294115568426686225435648708816955749199092546355966357786012568873777541558094708979257950243226579955902827270092715992262093383257698580334515905420560734791503126708761028001547734178893813514352352452109076841017962303274640524101123536713531635891398852645382158901276072758565659757696224786336565513122179984218664088611757130239080421714449705050256924916670014053807937170996022281100944217987836623267272397252957934003657551432120324225888872669098508332738360839844995810837307526128769748853881257823684211660618410614472233256811886108251249215136425755506692279375314992340845998960270459993173248229720540036781579844791354828129817612992722100163787601292231444401944441942961277744850835371949877752927085392274511976759658306412490932347959518665637472436186864485922193374484885663254550104757159741637617804487437607448416622555255954556390583363632404975331258948056266293331191927641361475942372888556796401992702034711737458620333493310974858928253461919602835839773461923871844193543724705938961258840259908150452787389937293439499104831462379957965366773923998448524196152283068354025924361835233110477975593309484851048839116164769736542567806860228097823504263790850999884151644918602294558629706136952248589627043701101961081409782629604083761995532934516433821403663034581899032477882891544295827774996470498194067914073366541671416719052117105583418228970675992086841119603702249379073209877073799162091832609426478920413772965665467793863966182298083317407673492161266803647919342567870541426224435050444948735520291107543909750540203307999755847217824312670483140218870497974256368098480576695858047921147393766763886925028057889672768538515019665521999570124926049595589632019354984153583111689552162992772696044450752586423473193991451682291744965306235769046311833517607232785207223782093755608415052892690681322669390026991795310226817100618342992053985579937500992992710175925799225572599641522177253151350541889548858562464020437648753783938606825374381082067339580022504828253875666879245281953054322465839950236800851741003595028320354470807647443478734178750220116116769781439611160673839911459446738661726871271454311581333498328503774350802713501990298893039915505077964847971606007551703280851091377895354637040521033593777147012890716078094161437770669294251303157947290591235597106185989635135876667410105062587290087139906979241479615276034748103038258578811760609208110673962716774119843611389833624918846541913150923217254489647005627224056116124920203666439044404640318853749174618019532321014519339154928199893516854990227456575673659460396143584685769681154191903933771142665111608939640222993354183314827897126051776146185187307986774131083084207989195127454084755789570219335481744747351790000291514522329732288601078955843942397696015144319273541581467506551187924557969683860903033778178361107042781352850116984290630484755812560007171598394830022958481051779696416210344231162861414815898606274028342964257324651214171355014118699286350537452686534628570969240408618863223160454041558751066856989229344576999574606290834239307370743104236749396316631534967874985584992823078504599475059638536320286855173529312783935799436867775330341200875694005610157651249689092741331723585992873893467415816226646039162534971871306843730258952850778778735725047856368018063272134125564766188614532118871128205256160676462425026468823075204097843281337883571600701138254054786625786045365602187119354040930305188724119844911065135077143918415498553546142924322600650369401572442572813405318925343066770599785038664515182262331344732501014138833486386972715966968132516891725675104855898546538145546789900944602782473904284679655707747942744751150763425344475107382870628492961181718525296618792338748321856643712820623158532211301353782923377078253305526207532208396170061595744960577888039326088776899045351926557821005338115780667620900714132416608836315489737338158943870349062358018870630677506132394765273285405148233379621941545114449877954297012207331137783853320606654635272795978525582185459805192080295468191795857403821383365816768844267168869174858352915746149946190312157577603639358552217593144611233039535081332377884597375737502820378230080301197715239217242918289204572224685417955668666205107033698152964189683255473676933371467835894696006943874463647942699518393550905658721395915885388543887752504056486116801656427909232735719978063242261582673043468224191003507668109715830217743806376628897214322472984798861523375301690431992469974930404848532528525757348989760131840007013439488553159332438630510465397255130266083593585274546745783545327095014165726312453847674835611639737385283198261707966793911201529662038103885607194789759253631136527926730091871846369670540999105951387990105423415999836312840275519966939302984517620918648219093607686804824137957094574502292849210204382503893580072342578495580568873506687575779809533266361449676056666507854663921202920104585522492236181388231115566010047125136511864819239225092845224796447019628818883813242066856399245688713413302559212795283822959650183612240633495215613882447723101359670087797444349456904389693119034820487495862841445715501302632508481798698478886304057190493833071410876976373645061593959871231352222789349827986904643788896026925014717115458008890514137272615668659595903820372745087301907426940999991793713201714639618951686653635703573753677417867687132570984609415445980313269932436821394357248502248076350537909238607124335254686322582274851163258329693454210630831155332952228684073041059424864543222059594982942054044414339469984793473508682374425096788720975590478663805299415042837754400742497902784742735867595892865379961865310465280439723131867710883261222180642947590420415394347370995399700751950935084492071124270509861808239859680825252820895881328420359831610932697410104910291813943538005446101721338094642797859948243088091622321911116724452879577560846915998041935411763494523889082289469147465505300318669632302068938881633242041553976026572782986171675308652291526075401096164750129267726027767668458302890840051192058286684074199683258643397470236508759955550474037241141144366994288068734633527005221642294925885619931511705096839581913824394028498258859041607589808165967588108769929868541151055552335578206251909779021531909590663589411035716872009691466896449888169839814618719145418338210701006802390761331668089410797355521587761557581111114572309051299021257940640795667384353613085467696809106397813997182345318285963263483181315330580173326454762033995849946631587042251107901890365631310603055096461055286473072115463172598785149888140853910332820596547238326068009933266946658420880825694614121335701312523306374594819346945519357980131501614711669410986894465615494003847670192911067980129830027694601402333941959564396348144217816842597915552679356535193148098531483599726960015903387311186078791716471446063845645913323844004686653340874386696032929647379943195703052240933793930281459816035383263809341213802422614735405099691468597493580585683217651371859251397387138039336966591567823282827840308334986154944819765432207441481399983496212370344303615741614964702759301565222436052888461577932775485420610018751395844258720684582080833989943778292041569394053821728666355230949624317146423312629279838254998189307372467619171806836053414678911296176918023299615544484472603403793725107173992566557041337097986771439253088529409147141317852899970271324375271875411108766622546269882177732309347341966872651728157023682220146575393946587312744079987700807366253981810856518451610058482623540391142248593814015597463569531610566648548455605732433152942650289344715650613256303745895620237878725941868683211513453436609909014629555056003922215395469475016954403739753303697897697215625982637229606679596634082335964598851852095854083190235689620421781066762971265300841538287838134804520095808990147647407116815641987577777521312926837010813227818854274572430258053612399319684954129324868468667037704267975648827330947512856266658565735647243081554318688843687829988980457244376649530167230693480964417757155023391328569108121458500936653075849787297878016940271903996224796739901686500794140557804586170483854556054317830374264109533237582759312751482638831150086919831718678068527499910751683753155399558747301886054133513129133742685468932239287606756254184689543173312160418432356182325995880943079682019836502158073497522278071534305681885176885091915470358268414403555051733840628642502375581064665642983202739214313851282706345690465075203779626752345779693604018782859049336906482366549047965533674815217462495558283589183815058176277751525315973682932170952956376303597190095419814083071474929766441279468168590568082276678158526881021390779352897967316135695576889276077559868036159151982130806358104326349306501252129262769571595153841354760343151002983102344974746987861866674494501925148307048523450780856553947933807128304084423423318077315926721805949575717769107110305264478911063115868922254389278374031129567017451180535413417841936119064643410657275850714640882275652393840609603685715633199253927056324379716484175726496525337439814413838246384002952465254248376457757329767370858100667198339575879998575145054690270630449313030291461310111441044124279439157110399790202871017942762862030604344994074508434513145692117250373365664168828518104654305368242752396820890899098160576832741169139048236136868640537066675025236530990809993561455332823580654426597830905032327015529934141977175654471908006038572743955414004250080189521390089015578471335230845736842510974637909546942677269780719816195473030876556198222571418589826008895543877842737544787440902486392973410873850269312745913777330392601597258376142959311928043109640313548431122624055678165169056887100036175898032360033143939437187400689549113805280005326980859457875143255185906111038850412696966356742567764114531133404587307620612285777669511020032348780143620219754178676420532677760933826686106209426911043894622747804050019328928168537765522950044644351175105170744119181696316840176760441676120024754409252308215183120924900981653420587694053627650731669339032928644458622774246498075509265718035592961431395230522891718067574190836890520595728620335902820883038643224752761073467311811138044725435566129905159181711079769906182712616128384682648880685646632857422484687931666269232812256468082592313900913581489735569381640763657365605871527763577284910649842772796628982991279323351417062193356673304796368971320226515708626647514577657662167881443388573099458367210532300844447249785607676390339611412117025511174564724081246569938758063006935809688738792884135044748667205827908605717839314662500871025320810395165844811741463271863226114377194472534694923693333548597178271996274965474321923812375098289815348100069954687698490475011201917764528225882716168465326609449926873375262778590400204627205628819679360446419447259394303665620787109821448744677625643481769774158582869775583642694267382071087641859583229758718793647781994924923433469155602639593407766487765738789281350681454760046720098332524414213324054270754392396286377957477143735589271305167616544595513465458868967971016060529241517626408929146641173938571751935436314430116855281363960426019818480414607903747003807056728327450930132268443613682539539717690386068021212723967690101775240811798940799143508180372915649786688882782300102415105473807895732047963918789409572665696114304705489314598051521576922111435890794485117954537651861181819304921044578840584210575608173800059759138875399279095430103168811979141691387963798149089709530731356954521528607380962603871601617039000571655430562293309440038647615123413569311905803641246496275611537919038130453889965775344469538836659714378417196373734139534777662837752362349863259307955788571641664620804604397590777535531892170151760133002932061085547892413041078890228755882900270823208656316408027571668879425265333355204083037134959873006106907545021722070450844681013934918543853154931166653506302742144227803194154356525968654758375783633832809818776709846266850231788406234202086158785249343452932991795311194338033763189006942437215043660860003464622092437508641190009407764199802912473730472256090018485923902355877308588154243328330931082869981414759292281392735176013364516340499658292005504250552817973500041557026446484022606660349248279181418375557824185836976057082570891455772984336532384012545492325811080962368534432031309363885568981713146623091926378093198121430204233057316947231916166419759376045855546408004923880554900227594997556311716047903784071814794987411381034533686725660826895441976319754108598050224446315238852569769306132843509765783549707481473500407074975026442015046517497601532488147844189823118508465654280509640968182557995145481427202048056956274825124364173258053377101392832333112664730053780557136257113128109129045083652642859230326762827412833680072355345013809406900241450020389405376116078339459342690713549597407133979200707072107012790447900460704579134288839197792197796538887428405246996632744708435847891988552759415370114569377125452404175652274835147308663656404685800959815096203640169934779863341021028907256534763451618325750272076637981506114608825035933154118753769753406251787439760436457345301804678968974904267468918651936357943056093039437615437434396592115068535788179563040312210366282224424519680136372626856278471773063894657682445841774985269965624257609608061912428926585984066922387810874347823377127969418669214009762877898185460646379898713305574260372335841690996517661122269365105683475581071342028976030461739080844679459449945271200649407264235306673398310349055129153727775365857945608675360135201014167868229969855538068882579199008473846695697954841300849754669561405979074679596681205284294292774494295375408774321588446191326658028195164380591072244460698324481040638676650512901402726927818454010901988217884038229600137568775531279698866217197642153779954553841899725474427902471107333289185099013326776930042455348493575543772343452779166657879843528478384116296771596901173298330197377657600509102914496908754585687839840533595911699523663786594022697914373974434523464824541868878345172491381974595396812927649773627053810752444701965211962625046334980294424548274910939778741518413511343898587295830611581415061919182899722317425597863543825542637313253339231654816560065456395014863405893962067796524693128906861652849258201451298865813759108795615692044157273468573765675819538874989449004497690463991080782286249947987219524089236682692044033305688669082414001361769156343567734234789244927464823016363541942832310521652175767602658770410012398265771786896376112776149450172383775216193913761302402320176006534492547979480140916068693733493481542362549947145699700688418041659035941586934192839087418092693012583504476365671554789379718021177356584363585162698178330648741752974717325466123648164538374045641448455864134366026906928411422465974436725473123891408649432096815738572427509164932848299789493324981671003156255539406215055143305378303796032681903807871379866759851338557740081053492519486178159284934495169202212703454350180786720659262006675514075326735431048769123967540859448836485775855952017232297191338576090449724932486562132218626454618589246294280664351165942007930883360309750399775749586601691987749325748888012404362773054423165844375886114935131914480586405922615170764357419181081078816613733123954764901425810406237374170242453689957753813414266719782686705015062981314875924064525294481824304353852297236749069979593842814458130224384502943170644726798632422345357761379081679522466488361415185807456711162622689753456045594236652457265637427137025092067810287905646566776423093574960560055962061692620367609213483410896558962392603680571551098665966715293087760728222509521393328674364726927752339409315740692893566359295175346696370946873390904708342630767811215328831757316305966375834301353343786987055556612610498837999779722552442862516546857950853591796172848817821468642699730401551845273323890623602102886107171635504656060942867467744297791582188623116817905049480677135326537765491433931387520299345726761636205575089479242930852345228858315194537313287110012443145485901123463294147246643864720711982570559374369341998675242081479485122870532770507341021273890070814283047510042071265732377549255355132955927742367042605020512498281264135003764641083097442150120231456218390519344783618278567869417100075642500656801536449919330167980469133964108141892390010681530017149268423583280576215465888647036242284018033902201197678796373293842383039001172730036365246417495692631674514545437519259121192979088746593794224106567504917267239937122981299422100307220002119783747849636721307229042515224488362579028825644180056635182826063045776767037911729530317567367575888666227806939875417564413108796754336754724779738640756876634417967418194765155272628476468607709694231310199356967861744820422965521502072731824453046322937111989474954058677567845837920623297412037291316415989144534986944553257381116471017676560833096316946403813417739671394025611363173273095710543143216119208651552092356729997510147520641942474915844222184280750873977561780463103416063543772977836942613969877126856794749204306544663718651451850030060489175777413651963261910615316199856130619919377428851412690570490242122364503681811632936569379884528802036826342798983784496862920732883142664955433650413492008609201743509065417729788418627624768248764244010048375577580252426812745102341887139831608051845239888448828194154972416206625078245673346329174486318645783444652953689960330752566451306793738410588532225452453548636644385617908153869331484790252214636405883043100429816770606955722815564857796627406109089435884753611352729575126080621631501499752114324546371118543603562976871201781246327702348036292501566357536207717206157141806274012558744953141501602290410766830446946300413996242725850450948966142108220688624455558577486079575411633987986809634962212294179907876388691407363612813255189829791070336036293012860737458376992527242934123774635678505237576267417172231388368575171273010716268437102777476812915592658143988333768021716565753491187089038099305104145584474800484643291326466669689659120401659284066641649657913084504793253704146774135438845355602936335034310761947290866965458492621783261204497477733919057025799918804862410894638787238007111572659405843302116298308716175260794592244134127703207347051113023775011931744753417900694477154108007871699625807940177577482491688640671188481285273918210636894407474513715224851485177095128286161004522023795768190625837135817328547495487544404106270345835608194065908941892389292751102636776224363106142071797879326565937311121236551917356374786807823683705070954323758101492351025829246719793890888159919321815487944433138781835061873908819705611367605524431679887622699315059562748803758999097281755384462438598707361267258669272088549540637592429733458754166685482791679791408238708772997780365984346061600893645294915119274742483746840556336180210340847239855131772415740972617577624812272356158593187598793630555855532817302500129898173213722205928553294739763994672648132749492492958670966914678241482728109998461861527683837602095394354085275032464518001935325525792484448180006997057307918329295341029744996435097647893332213502050573954022488245915843412630828401010000103540298778271728195729744108683227650291065198089758464111119823534609606474980968731694191237290106646452971689109525951310372715704404635851746277005803837633514853963374344185108318760150480318589312098899972475949107223317231839143607588204928207565700326463953808922213633506424732202813111928117947487637984857981667503615659898919055982066265825629088477813122958840078221973941193567141177964600413435511690791992609703211907873271224828907331761396725512176331545764394319004201440242077945155263056137786580181376395864579935653632857858724951940308234973953270758351487893537389329848222708208051723867369397361011285369974952650530427301708245540169100903765032961142645189200272427814425317723716211012411241721251164906507118028852610460705707609577028844391837281954147723569428502314133969883519535765980325674863157620332588625243372745259236318272324625732517191734952992804958963556261449211965746591384766436892727525551430070574983711453682853049993988939895250995204764708833176492601651445367573626339103912639061816933348873851242754151806460319134545020910821841046001152647312311237426241346910449641780688479197568221459562054023699344478328089727418235386892225359953112136100410250694208648034006521861058138765993063379726543678533967465982944374508435802766246112615484945767733373507191489133236166956801380293253810768512425637429405461963147830663492583763027395679628343289227693099792498266786344430157040229485912908495002853563354325730050947805514105073606981137296402985824867201778759623232410783655041918097925415911051721991337964881341336689346074083444056324254014007192265609785550035083226403126790021295867128899530628319379938005055055991244986666957660162018072088981770274109916164384053470544247175194787141739706898000597838631261591372199029154559929519966263022821041032554512839677806852140060218615358048725150180065895749980383710345678535999190957154032074197858077969354575385313458709191836666224342536841934005648733481813289539070949046061517062269465871869576041249374284748232662205532602064834345196575001556537800822647002603618447395047480623915701771655305877774018803375178653381258524239155144658123169446139490864345055282490287026181981297409447601969059892323973649266741586980612443910174945049159018352102832661188911482664877585725818224647939208488184995900021996543009241468019979712380150088460120793958328329191362885981796260713354606999067360776788522120644371740574483051056861442404049174879901317912586651734485759484411566467269012526770530632540380267415919702241870469471339043541156052032360739604975262140161160791209931255460473777058996237288553470771932178943501610526957920245863261756284725398617945477229820345801746489714237064020560585934204078012389166705501802168148978335995684288605788699261314384461805962969725926514865863859061395559298601344527011114216837719991145054251383036143743250767249709350784467457434050979422882340885965153689019966892848058082450975861686486582463358629215387760019896155612566149500970868796592737846202560945846251916181488035265472172849151307235659099003851605773318564346640593322603036636997514935615010895004998298484031895946707895903435653476152724540955744152860408478121890053037640425617618306759113834805215372746810145805720333765835717535359912023590267959231099130350927843318107964456767373102335518799890541444247126682018430531743716197721889117259171868929770375463128747687258137761336849865247335437450711024593748565943393798383113364454462883071039594166018363971655221829260627426737272673972324417078524511032410597310803491930514662427744064874867662939511893485097330969412090743742007943624204178169370788051280225549328171300695044466163867016155336105614204298568236609818318154645671661048673394052697013476687558793901230110066815370564700210364080262774163104630396273327533852576493591865592377605403740833859446006820792561311306764718683471169270185496920220268385886146339042187552059871164346829496159724544479615378501570373867753780899617948735207451193595406451265263477472416935813601376270885026613860598101367828104991183179119020209044561654480768420549454417404599417553877031588545330318991154849990072066245874327999607603762986910741386900528749579062827786351622090898285398077925749501833981957023686557530124920174137711604445871927364626553519918712989299606597622822286606378942257058285134718489631148297494277307121909178720025683743100560712147244068006484346976772046239881207115478899100969012182395533418732032022272041918468863796732085755943289989245185503319653033675297326375580749714344512334333326260199871282601249577756966663426861310460726313912502532806294891298199453052683075768582443111474418254219865457440444381749980717636095367664389039623497245671685934982581912979366362093520640215226770803221930695989606405347921988639275987090679445096364161996830712664052794984520011888558779625099817140141777303804459954947927817250873757728054186961339745853840090559312514773711494576042789890213597384352505596335823738112705818978739651898032252655614273914717167728930948819988075086765171072298156781295019185901696798953864004877626528854906671897599542433672593346376141620638158424541582742250253027739203338037872863292746579203932134719388460514045468653026470902538838431491851944358760176017159518532913233772518950651492107941160575704904561371734006111080908846820278588601195093289168121299182230237398959540307691964476515019439167539355342088561230232968379093339584707731563723952012820162386012091285058346620732721071731619710378418688092436602332200911573709550119386796184730516590755015246781867552499465454872677649830412475713791339896048480407139531281467752150536790837033334143228909978375479558899683656543415377752016105269862835328696852856980512581048429360312465809550208703584371230998549501607498953910958266225985542658215074679011935041516506703313080279937225705078093354110888286572213799601224525987179729467434904368604238120931208226296945451107438886608072372271625046773971110114826444523074655855177854418415958166465336454426772097746876807066400245361432015480313207396435489367339340503998661272879092530785188097333889928822374227916548104375554094504498683238686572924278544202139430804132228711224152092079538267023452743363670447539230900403814085804279463536212453017368049064938363992702052277269131896709424367074223771363264914608762250080109232878062505016469081779573033875281152020319308870678637516010021899920154968938739685489722250882511384962407688853357611121236116470387538265265406120120130663739326584672228617166238933700916394493698068345312125085161996345336143025163553908947538800130863683810581005917659119813086475545432281286929472829280612190742465399298973570070736214515902978144132583573562961964390306238634097924385529683422806172557461511377414283624293394211303362672636514407816244051695677610403308973026014887627772797874971173753503741218853783454843466894476875953615843611394472833474138776050306623137940316338268302900756283255700529630828986907668961663468939808861227669417560640568460593125236294534997216551867479150630161926715553739172538390204196148335042488411165612155679730772342466697155065793102829848250798546475599874817035063642287405026335206081146332331562426867268026297547480059996782537565341162819334682052065853590913164007425536015484195699915580849648856057959460640990193844099529568267267619947096602820735106806751389506505741233384849264475153692975799399354903887635696775410902775686721890661364444292339342113009488979676448945665895598256565335182789766251979049361956287559676596339793898037996716744788695782934278303781885329080591933266275396634109087430375576634118267541987951770295439574428513130502971782064425404471846795721438621240555788060351302660092762304316780913525775896275798814945649255589448758836815895407703648221975215003023192601166359597855319336416354810139593504913305097172784505961487966449873461129904875225959530170400122938436514595663575704903973159977397311381064756876519976254059873701468996918803790224442391431986352344391969663869780211483055860653103940658564630551080591219914493880545019373908093535649231650628631287021597418559903905568200469810864168623472501281281230662338965781730089920726094652446727982553001511395804254489039833949938664118362742681959339733535554149899515643193795003153056612423895870551562441123436464292283542585277616375363319859089767879202381655388443972712750501891424476977639824945913427261729474240851559914506838018470825371251721112297993814231006071936502273814155896824525571369591822864779797695566787360133667723144302138882224047732133018236696865155286253482236218339607399165761765463666223685547699803169738868342356487208481800957501108892827224958205348652518368046488209521351674004495145420874215419301942072170701333589173054125685199985917161496585695627255610817740227833562384692479899450732232790274418116502509740175849860715698454999930829722217862609594125942122711271317081072735434175421129164297662945848640641793088382553432560690429236053489740712757689593038349168730725756109562966848322246999161465024761644734638291065274094976147241453907012443773817742595349757999447579836139701481201994025090798169247515395376768158772568299288607085842635313652379799647526544653130575876781490427830207371946496044313999159905867746496666400281622445243203152105464363814447884945945876599247789387565783796026928753934301402023868179811625363403358107418271690331030015451409604917477590050832421772865947460089795173003719434574696572885239983224495634195757837442063265591790863588050414801566536341519866783276734252345370536842362222179040994584269638719378561383325688502648761843675000556320640182147906065485065213631286632012916892246250762663099701273916472707957546629443303352454330758073749526827235027616965052492508398843208910283324837371699867420956070667369118104489132507718725777810347528502216182195422524721701763366301938784146358811775873127819921192490759998544981700212829687133377702617045624326171173458083497202445997255939355181197056773867190511932306509363206492727943629073903786166285567695532704453390170631043808637450505883550734412509356823103786911086356124257599506716092251150031015699644107610337277196280975888265816211552148544388246376082359797821261021679980098613358528679781872661924802570310812045047426779088267299687545628545919137394698741863477620369390267048797062557228990026729441671309995252452002502025834466169664152991630406100535122816265972231771750373605874072969938544006024181364120541974330079049629541248398443497041086242643557489666309285541671017686620177228832057295742651716645094421554885065363535070412677368258382377397094067563357010451327868827294553779465726579951375230675178543541428840701617398098725331556443066960349660806319995954273067295509644871768564471208110730591986939618587880445492072112054405043331209140934139106972452122766777854138575397641988635597198806593834913506417377860188519041442291843506388502403066132499575842890536056880904350081962911651563657589583908968327269091880257637427103427429445324904080375010369368587320036923731208478806600043995775302793077774479320176020594901989223303404589476333300488149795224407967029687889810965389904614832099718781382721505437257111419746954124125724718579523253240296014494380955310065517436042921565540784801825658575072377746663209437380124924811432109973602697419001222678877509219746805916657766503629399147583440247929997880867637165243364227797426852391880376929654039744107917546485077819882434907122581796134317413490403015102017941359519223124257344209844266357737255293551345866123793215221980498626235768461332207589169550302546335033601769461995169220540485447414556744304332971985177631766647190228467999918946508764137393115944707316147638954605297028737792577552461591238812869978044842744616318382426319682554142408877601606102935660259132567701681663507725433154035177424602765818591025851299448033220243057068907287185361755441884033467062702184784590385257123430473513954673739555129957795136780134212851212538364077299934678530072561382768523311593281249212413273385867054314130110308108234278401250978823817469323696790967262340001717410657826001983899705933758513295854020622308612078867711613405433704122646213241326123859449597586187170346106172657354160407982588756735988909215702424441667427152025821859801789439331061191769309845859146055884219279758085866490862554072881631551201086838840486793936938618882162299516494040613113206071676119538718760744615364920410889079032010128760709961694048006029658018636619113064482602502445287909690420308665761493890462871271313863597852182955585148871894737829091521820534661740294133639673657865351015479787242082454126385664626129482541958412722536850429648293216860924429240748647392358010497543074142942713325185321300852735672203410832307650952365614791637609340034875943900476598808065101027764527891784720632591017580959557932988664219026087420014459565079392273483578061018249570485532632281933479636972857105377494171812880562029708510113026394686304886562023691538372123179033701848999098542054207545486463878060559082505896653169498586091111656648255255793190658031082696917653202922851722178440981148262499090226041404693184870862764943337545470370489141468426738225789536598377079757821894512931800193880738733232991837053787166767768384354984295044339459917217441054075566945936915241380495455817164341382143142057506141843526190712756478714845849954690997359534219187208268866840506646522575000564190139085002404306823479697142634041268122163117254583460549024364398462380905544775688131002398729346717426784443760338355023282103671245596205993108163184158525962662255882854832017383468887060736240570835264045776370981766867527192382192001273950935805125073636062998387876936566668565694929446493998211233581320229908567489733960412784276620850099499410692602084134857121672379876814979095942019210267193418824823756935538081354556612690468760738382239784791938401806180299705997396969402019209892080057364774530193551563412400998500065136703806703912324723272470425474911429416083076076272974244425732637400407197808251425301642317059149399971925665285268820332182654356206211462962432162112399513805319053450856521820603632240736295512415766699079880839772749568236554183940923430362199724653774205476374562007268482312006275680231128565993503707518325255908502124225609520640736265565741284581455358574269234813475558059645005811548138451044700774744760494645007361069299694276188616531110257710863321475906070776508421565928221310334243007866723520903219722752923128923307148654600107981276809960660765692734425440380726357426561527734508700773289287195800403783893235741795449516564933281287165601503864823796250730759534605868421393009999124191901480551552449767604151942224550408392186568574688295715689569867451380778030368348158342096040210390140688938049651092330608633850474433198302499112530401988109261277341730555135862316094999067994323090336766221814650579874922193207114821541703415049028983295019804202810342112527760172359355402151597996523299272914700588174540942194139245988106571861743651527521342548653797728399161777603802767914902887730355997131362714791131243295241265900066014444755087518233093300353817084430659204228928304919365630965167067677700817893673840417027935739582444731094417493687632326282609437245056640863279755212742081397439974789680990606528412353119815195573143852238912596057817185209962032378119576556994366303464701791051395031044216145764663278813402436576998658606863260756526681160412363208811527938240527834932842826246513758670809066673753771770050360866543794573760061880398225466056539336355277490869563949567007366633308784212004184766507250061079183122489167187555649275496089575178916343961473093173482514538181866727567793025468750540494166232791043871437591432952992602432312009308276857713151093600267295584532529048358738430348037348202784075211935420260961565472486251867467306814766234722687044258913672489581254520811594979194447740500459692860610099565582148756129659576771500473319513267774571053560711359432104916536596437130863167612985353404067922053557027971857374428421251678762615796863094083109633015923623624469142281512483909877965829859486723697408943221546770047278686897298610985555319730617846106073713285480161162704882583559997979703449122098207747379010436983322361690953920366944985777571090469578607018094058592217519523488624778642551466744046074880087560067697425636698021134374994789816279539205311006797355106551231998623077865719870713035357010013339951126888751534668856535370438985986732936641042876360509465317349122276578457721588896303337306468527398263371794188033228848056904311321654203207485312570216866956402059778623028125344027875610006540451353578459431379876751900923088573847542056769370304239260774534486548203135503057801601437600947488558791750685588164512179636268305373259154182213137859013005096027817033043813110622650860876100339740098054574408616953132581634073123936997909153491459445276834337105669242022930840903130725684859857213567291511267304864077481940308407491066063530519298226065101792671833250674388380960187483953869441223769905255958787866088484316101069533760714251018766630275312332937577830275270141039489967556633748300739086920957035587672907966961285567590223695291689520888851376429173098920484819882739535420176902331272772208950816705956460705958982932161631133584319230992342927273945827097310417758087930571582348589102546024502289596509164869649236831020831157883019269845102076231103528360783942140459113154133293468505362164708856338528593666380838920795290852165076337541622229817954917420377643381675344814721259607118401099818940488386338136271487808879793826515047930437064444831733386295637029697879171291051293895763405978185794295150446088228688907852454486725724338498192475291197066394537647825976141889782979598111446621984773876664563909316443812479916742356498780658116836759178413652623073477924150406319027443902239508014472301919526974267425067644014230889556285877176708669473933500918528070611533294404320163319683153049737148773933323918995284546104706790223715484288098698173553509298568936314570148930353590963177973389947458613953475720477978751125411196881549290381869835364420344539894153577342433314168164211194901472984033352671736679381312610188796305031937988795626688120781886381685874728179971731096158759317233795145928199921972350184059218343616750502643993525053029136027600225406720189731120344263559269961954693413031905001651199265061767161993283927212313053897195786970611278971218877630081046018629153714902808965900183917616363547216266599603351402929363169936723530649629342118267346112093563023073833750593685725784003422945695571470910452070351955789071823166520869556937362593254337865183197296132977620262515016281314267686939039980225120619288518281255120538750383737147522961594613134095117432204647254224880277783518099575554581485087671518858280221214565254322932224508935866584310982942115077765506669223606882744032361435960866588846474900421496376794538865469021085689252282585538504845719943771527200212339017683453028977245462460851309700571958465865065899625684370350846251880128618054477957308806360663875403991267627049649498883413939788710744336847940677840314651496748536911621055765696481681084643446021118628091922749054689972985799892861376716388592156262224627147182635642198522967428135108564774529762507565637244548407460860072268211493350892194453769540439891984171873775652209562464795958809184534616856074751790297472521699641918557245041283536139103030314433974554297560220576657782083972750394269803923752214751518954082454497272999163202882401668510578552502755740264583115047300456158146447026806930492681433672080899074589651915074681928594160980737113244558507019824021431053144642549919484411383646737895330990520110974083852486882445689129826172451277789502505803914644310050172392357931192751307515177113655290631297986552788954614942128418440108823213283105935657982755215157210071527923674180549439767845536134385164245699646778560028637172785548790630773408699164739742626025419300788287465842662481369842795864662841023703400854019249431406456492084076614065158697621363823758209407692554311089807722469559677548903794928561108723682017046086127157006214420201073162375385918111444305615504329909700180299676918987783663281405152280584208259215081569492868040970648542578579447232868908393615450019204242882906373663937975878694355762059675497937007311632404818489128709709934580118979673243448573657876972018161716960834351410284164014393022653293717137645161844924917252433474109741934837399176511746191177259546540615458894532501660012211130391099029623184276035306314584349047538347736391132863692258271639491045522195702936858972800341818266952905924532229605698808352097345974609721652358501117586140299957274936344922921940078495756703422163060207354337848219827930863125919864405989701054106110026090856446860119924635210314170408704034523397963309231136424373783306040876258238122645099646998214578405682838794964608284240179643621575445633142898525546230392451699782301111022415939828937441398677761926014587896377737962970492870105872666560153447528539460789971477829533173436864829332550958198904008583546046131547605965425198775476401163441493079777952975583342024712533486565453414479351477908210181947862190380141401572668632433299241390618080207579203914981130162000002576427384687836774233056460875602581659968028508406791740034774718203805981083975294692952523721051755669759019047361902555182658759432132646920962059567934084349274407101565455255616020151714591130891856263715252232506158339486970480700354183355244133517725200083271971879708454657939000622797749839295534209299951713659308027849968457536851349019162281099505246393528399608362575205908922908485532522752214296992829930747268250499383421116963943357704303574415257882542983798257862552634332214960259349261783295099771801587697534996134297015174536466631560231573656354185968191563293453731536384861858983989051916916015400415126608442974855384582572596748516309435114605465968651251275141789833426675679195581182558762938132610120058480496053199288720461670711337750229256282286993934295469322749804486351063077048025563916021662904149152650463137819201868983583256849407270185394050045322182055787738342697115441776322731862174039942506929249029279762894368222560033508765821955175258981003265246517293373151151620427504430501436209621979098247579377496961666831351272069955001902135741184846590438109332971972430330786111798292885390834430620087876891180967760120899709897987558860614075950891742568885685875603033430566282471907844189784808895083056748296350859050248134297762519311124839948352643326807265515435909644031271425130227277784537223377739463688584689938985705998375963797029460653589749462983492429627410599056367442749845788707409271252700100456347094233963237355268437119240835960364791203089538632416518543443191771983166896013213675957988216117626949997209751897369718899886668071646826076913581546774826034569615879366345899337072256533427165100564201073763753679911187460965703182488106343424447837350777833552856631608042531429903989870983353558852898647381661885231809170101587267368331372433242518459857299201840308365054030947187742915854274931953285246033196674957620162364346120920047988645835699428181662809432354684994394841168579621245781383171478173565154249852857136425163007628904830201844551530340415692682039852842938535887691983145057638887257815871727489628809996038692306303583370841965529445393315716322958508365384875707451571175289526481715981332984739486292447014244853596839281040869223128875068701875697958511851172762763986241653966133738808264310646539360993430157537874826794640129400705592789862680115487937122581696244485258037405314947081019199111760953469188037405387620324340099193686409732870673423162858590133513976065257118759083412625887003372666029981917907604483961554848707382351969601386959999583464213157281288813171836902444657498489525202388333458585935959130318578814730319127188626728022955203276501244436898318133476008418712349057573719346323875250250708612665389630045865305513576870792391137111930965894536123573981592747032273208913694353280621276973148350887956688018931197069441607640491258241149696832121701179664338811853912770247497425101945801057761153570444912844088125080728942229066290899179652499442371046444841811123636427411899981375587746597574674227464168719147787518077931463271404764104791357721026738935545313723238074840583324936118141035672014693202210968473368897089362423888510139090937268296581679147777907356773234211567969462541453546374710254779714226026879195657900245460686811944259295970679716227154075864094280309807487849380727758902056247062117321903978933362148007448992555035573752305097309921762578520176078183398636442474007204907720904958696074811847849848023225283774215328322699640629263375926773936649953867008479537340828280675468552917281762666113999417597881890455286696163431218709197872648520825636405197804560910628715134677596664635750972681886286928763978155899777013572733977127206407780264316817843424849305818774650222394124145269313146249085412785417705404471201404379024737718295054050655725818368167481220157078917720515376547951877079592622934528652797983770627182759650263818342912588982771024938998935526935985568859725131007062773216988343348144868893288246244150382240468290739227501739312526283623294775210716966083950338262401524999533727898924575743003869621918810008046015318417927003613394339778188154951965699251027370595442635439159338127093509258408194189416900774577475985771978677047888602476404917684152079872797984910917134623020139763693214059379133755555208627364878777753353548036524138653270587591860477078503987575159754851762089706947958912445337989303286905517665222735689109223106235017381982683245025824468842752418174066502058549013204019847020220788159123808737087559580447833146134729495914907532412906075756137194181050002515192417835044566022729638644073842382605967300541130454679973184683055296905886957343628096488933146794479381228503731523300393158468447465114785901531096515088586665591567470411183710640884391614695212171295405035321363595434261942535126157247616108456454922885791386107893863418601783927778888594009891731669845681223275867920852245950466536614079465079475244521439199342962803909949685320730048387467627633881628482843198533801170033333600023531928045744405246094652021229838274442124883233880811182965400837757027742796941307017838878606972391082723151289139875953176364696840998467441495885077563023931418094168789786791793811590496246660336643022955497147820334285086387783832468977237903173175889979582311692566517122621179427870891696463934051262188555494328870810818432632973828019783737083029850381766528731520080073745161723590670145611213484809470641053528857864326470999643691850769041458219855449355625967763631304135933365932006734422385489817653188122656361391481907419314513496077768764197425213204476508956405177789640009536713202638093006008209233048622884363184481100861105630016784853382431826514014509186695639453799534594101195779206436885454475756283617931092143468045365544313589984494235411852830465536776187353109886485537923751397232743423475358980901245299687208789594209657547396244346214049705882551082359886473130319740610717814190410099743789065942946622285837994665022918091502653237263713490593567431557423234914836882716638634842976946191263913870978067613376685384002256211236583201950191608541102420636710133547510197654666398308199596127647887335127125456930116731223382841380309273465658093860576852930356993418567844971997549095355497014936525731848828236479659967676656583094645376925809354106396133111210948846849645497099328764321361557518608942418283108918495671227722961562076343347272097288321506627218539706538660888966992305330466243735455967008636260447020956374575063550087326018795387024188408846364508053147648201391917190387396014447979636885546490256791518198663257198456705333963965101793382163750791933783250367517634965289584320743394034166987666538912017854666740928436141050959014448848863519654752984639926862181076639217134296213021553636880193732333540491051520578401048065560675728090653583597417196367957144233301012840679497755233298108404239434965133471487763996128116076551242338817974716772264517868121590404544565586329129560921695021315522409309382464540218320998030667002268890199526815497094415168016704907000188618688962706756244475367184896846151188144080193415205617269528033427429216126304666245775124831612874290401202230430677171061399500779719230392801234335342480819308114462854871598961026587550956958975971919405505725810661901182120297232955198141431494525827587549555797399174908048807429403321001069241668697418967203279202925887337855327615957611508667299371923763535942798906723966377906151542073239494366128406576167466728161737585944594197198006685832246097248738070243576078003922638725259586941445090327090471929109899864750165092943060203491204108514565508625753112698774444788518812633894806250347826060493957888790618180324139645347851490226506631511233847479680121675228865762360289876551609844252982681024751428024994308740117876515163350349543815556255621465854848682467849584085926114433889435135107794836752371288197070898822483019271203399406744315475693567864274016143410018638427007696971818458853596055907506926359776695041068256892163311940882535727065165215648842157781650761501864964924193273436894057433043213284699470940796815437308372010981497698498021593106162371559304939049088731429548538739251082723472412227257014476236192035238400638182005162278939044001052507005083038496419049063334340344515897148684303996289906762093027481468608990541616697132885224484939696833361808248841945245970415038337648495029257657077819655829936902669136626962221573040792013945410367907678691768356732338832962749138463334894939326300455688907827451215345193521820606973423117471433201090964735938061177738092673206986545850915508877190784930227278869385324030641701518811492879834100071308259245378296701290750218641464679946861702078858119578271455416852737132428232835595576197977984321115627788390506786553785079801273900374158847852722027680926293904200423109959834927333893696700826504192388191251639573388988744996033093438649718695089788704414388406902426427302295904577441298764501174496249020176780061053065659581615383826115199438486378139897671248285905475186041176377557090632083943880083104045365378179001503717452813095264681242625661690627978202496286648223054842792527112117487144435957684386919946237469151046950434595770670215042847008570357443094489024488270174680866372785064782031983566430200909578273007076668776030179662640051891792013794679803866308389870057611624287533623312406706945181746861116500957145246711234232974660410897750313423893526642911628777626585676651314189307828155886661750265294280752201715425783038663282212510959391225861147129994732385482284877557544815669261973994564264325367197437112565334854544762951436808291739433082469252936157010258060160071247187555172729497619426751564274554615569209930266521102429186560193409316016966130265591622071339540227677522139475235977247808354569173290413310647716831679033355999258717765253168701978278981104974405119427150889183085075532045021488443925869561361009395796217822539972864501398641963095340256850655433831791389094761462802609794880793069323770344065810477948620943675854862450708002708464956710385879400490553406113331158237490785443498847188406551616097921389598254296894890410720382886038266345230613202838286604471393898023814680239611201472855848942591142097072421572405111172300249470488819350894587020233196813315552170422713497521134594678173004911506962438370580217811895916352448897723412424277071719013875953478086947872467955753049071641771889791932912513813223198378998942429559680138674050126548989246426862184352004633211444510059206802289892148949152953531056828940838668973955448397221843282333710485226848100434083177237886654379411211686058639057401898687626387304762415725736292000804885335447344387064816741363900640575253227952732232694401839688931241206909561382865743168859070689581160466205995224082423437902291262841410972736004340397356079261581093698045944588394782476104592311045070297799866795710623885450118902449522628526158235773357546485985076136134918069970482965872319811076219575483816964416642011299858875590385792984073207150788530627678502611715718755046385505795249924459289985420350649666009090054498001053429971077002412842470456282725044870520459173843559576924907094410618354965869545003035288770791834564316665177500813107132259425564951761475522045768652647990358477013280286964385466584980519438199816747053133251963439147034111402705336932773288604444238190671270912310841427327084881480101165243471131400873628550517575473372602894416093228813026668478671064203654315339493818113374265125719792990723835052121708785530426749643361202833276229332555010030613378258444327763097722904745279587655173366569273625288375797585793165714079437318838179926959350423720703836928874443954838287152102408817152021770729775239860261999093760822759585031011253448455393621549251206896548839187926666455235535413642245813309353090139737031310934422612337165080001148953823318143897284789183434569686720997493473238564222147252641200218412479024663412364014406751379045177239153162025920662449733084721751605914093942510090965778791476418076373277742736477819303075691343042393278321832798929284473152538461099060686209938673486528425896767058206400712715829492616156748416088568619404378267920005945630542970218681644423557069951280059335976848084505312840957095533362751351009180015072591938755488376805936119179503996487863688973029947032530022879612111675331459407937103578794265229880809003977192001641930183098801053869267473869518445887328538926806825491611080009677661352150470164103644705313630329843494437868746285383426711044271941434964371566357537442118344911449370055361769171760685913453424688010710199557311598383308498444615269227512623793198741974497909622994154237595274755985967151539216125096062966594419872876076438816418177829729247405619252961794236607898600476859116515316790586610636900193817924695482495998075772389730050538122591652351914217782778472943347211769837317881037035509086327980381076015546662730938211157964742971733236825003279468474577245488514266700297953427018327255679743215801618441361779227845976240745523490049890442339743728837862147699409622449970107695482817709771499786153098166199559650849450642668623983929730698779992779018542024809833082592320788900308641588635828928890231929344301138895608256867091551732444633160364818421638882806047785367502589118667013006446466796272884147889626249960825875608410431334451667732097798394339338521739584687732258734997045919405835637688140558940566777575761552195176186753650066533585339217321333486217581677717369154202261632325811477137600503674663774381209540441410560120007104782660390101793472099255645755686540681251329425013007256535967852413904559204014903001549208300596574600229935204472776781411038419734429381301802229296669007739005235483578055156619755918443175890877309100936306297560927262525374732110650903013201083364369492712922957205323395166175628539088267007055869153533500398712140187951972570388379009840953244874276962584880446364567307102187602140306703687105399803375771298818701685730416941748513629364804271673693145223857014977912619115224817376964852614635051357613347047082378980027921397551428459171472803322723571051351326224502149232717155930810796490574127328327501153425989967706818432377715748021650428498566560107723592293828215255493521015319174014868352259911141607715317691979817060993340931184059120578742971783531291882897099240405333742177462105665828582666849796491870847966183028982865601185159951482816617582208794837433135244259532857593480175979234686952423640671452180254491556725934432801409769546512574627736947408858402521473909250107977861838485261034909765451431676957154785510425151970134283378237248245790221171155142707318739478439112134735206112531302910575915008063885810991345442167463557815815359961904468796608963280599706482182200424073651175962561302505506179960233600562159957727190658631059480161408717840484639080442083806070417154611987997137302472436691790607928231897007732041604795031111180310510291841354526327781453681313170341581580313927971161217776280826740050239063282015038406668184899617696977868939239367303001553066719773683833355721529609286039112618295079310034544931953459588274970092148895192881118354647072240208832784277384877472508368827400654223285141724908870704369251646130554319485080146662694942843650804421724849847814071685262368158745647437801174406710566472419985652340873698280033150864490471745254706798797940800244842631565345229240782821199534535346683691998402903341475293846614248723007948239545207615729969298563021303583043729044474299924308005374599056651330825823464736734554908744373168767579483817099198448416014572517557235608961940945932101139968425974026222754287734092380158033817830187424226378023409486728566609190401272439325705777763523144201016619751194725945262200817457192621390780968583070738288516180410759540897698087835276156996258614559666289697201103467337013048824718033740161289812665133476339395343786742402551351665345898440962371732859779896258512146150201765673029424080160524725289620304893654158005555857362124711612003824662757094229249785081767891988054097517650335528565961843295822229991570860684696312489422982105853190596722270297408649054478980525564915577700164855509323905928360819142032095637668866550566810876774399191289712967561309642450002238626374536538701631182632645522831010966785824563717046733679752461775985016830251110795904654415606989251202081446378527992387896108807974888848597115164496595408822566151709227913435910463882956112865419252483988039374330551085431677184266767489681037760520481049174509549152679295693213377248528538337300384774349420360624145992140674224874234796739216190596818862706557857828909288388410796586692835703655402609165729628399255972031970621318540622949191741500180498472909076831060787956138579819596982634618293524741438404022566716531789209065985504439383457223186288055133198480339438699687002573253526591495495302780819964712344934053670758546433096341677136603350368769568570353380127602311110617792230819092365940704079703368620347958725764490031520119148194068378185003160935621075885274949312142534904156343885561730457125352514731774693967448912424438857834591604496492207497434423869655966553503355276477830773064707601031028915815287762451390359471479673466837759993903212089702045432454810938229339491886586552700087848508875329039674670557869064463979253120576658822878807313882615970914621595017566721014323016511409565855830235414910687757506674972053117211501601191703351668676292809092116709220603900764556145659071223499933377563780409101725387430834875786465406129222988846394582852885592807800704444356959607110895217927799109159434693230708610210515034845738812948646238398581436022252293964537814492132937795302223988762031518139817660742135883031846295097737796025237459783616532745818398547775670595157845418363736304826656810131934080245858883145280520585526507270229579708033500155916213246219361647926626790878497313439885557236767463000657916787104703205732972481561252252088439691710801349467426491301207729148848340795781245534828731315668617092178012456875014094749015022889090835581916420747447548155371696683675347463826456558039759678470370975490212449806389708372490860958631970741544246415106894936092704769493449724849528393251908710894222765624001742890458283103855210832410578051823563378965459247504376845684701645157012877492456758494201303560096622980811007979521343655367457829406741223513509336097413690823601678742923511850676669345627406508668447208308882892172011289439568688014617566070283726648501971432614583868724655777592792028996799767182222501267959926345846720116962718625768308310714031463373491826238246384769407047828191606674582429140415063174540114965837016216596040616136670717735498284547946701005205120939890555430733161209167957814567224024677085211532922541920098465926388966495382329347624507243621984289383723916092807215956837029687610365963647165332333706417102370671774295056145079760552940062945471005952355962816056359347910742750330646614790052579246724239050777935204547706261298674174064038263401525252638973708213327214650322137066164302055320802625218810351753530807556285714453113824794833507022180876075684558728527948033640938875748054804039611803974581907910622247295024944328582776871606528596749969642501531421820693699827297511910842916012780592476252494522079913563839182228495477991022809961017321199785541494237732042788544921999786959964163743393014436421356381342066879850999763873825378160869228036259483039506495241228961893782705524710328675627376418920917023261715858414171700977523206251256091661872144613927208968729295797968953742174683419117060689125801005294259729190854014815724698728585144270744885055559771131410267566300265322359793550243389807015401659884171918103858061232804412399108181848631602469662950851590811475243243466449461893239660228942516104657541631601940266781562472112227586198264206752300382492558526719341137775936720765730717687114369928045430098993128492520399399419468561571121866740289941591634900891432362777368884763764125862838758055524076607738242539807860693673021018136468402958670885385243118405871175952228879802562016536444097741525945977355748615473157969190728810974533801347181584321809792999763723777326572406777417895669158560758478503002333685032186681368369033789251918838123333799191506229165932548121543318340813151760680692787919241527837815833450163896362713367670018556738116698962321594191243766713810536521443879841539767501812188336580790993926992497759708884161994226328624449983242056099212790219186498929707724993288960544310031414238817019938707981608604717817238918905936263841491812646909323225065473981013306802615493411421136889824889447207515365442521164176236255090930016543485598682868738419194684212706832734382366449036090494720089267305978594614731796975068115478773586192951938847080889625618372378288455915821664885712120543555029109172192650689199376075040111618653388134342011022187166266347129162641431267355722373336123642913612338473875844741616914754341644720213953526282130384393772687172987595612678363149600248597384992898252865567276371021547976079655565494794627863340951260212908791155533332798477596685816482219776281537394838216763523686870795922386119687766842246572720407750895692256270187310287186694566024832437115671776649598237627505626591608744612385979521992714993058489375987394132501895194066018304485823069117832458884328329633910092584954385804540674917213591092180495141230015087717187152062182623537671286595001372544308408919860637363737613306769524890790482701173348488443962391469374970845920941701558644832047918630651208078605392341557566767622240248429231754817325487122002751462000968731918987496568834588074861554408781346586501877609225174970329144520935855260363004551209324745180007484709045024254643160384747707254795748141562847565572727469886858730434210282394979478316579034392180077557020366497920613077481885004397654529771768212271030175086662460688484300395612261485143991366996643002893658521430583215712958572518298699587804598685847538263705429773583463167561056182628146917284616263384962735583983859942353981600305034581265543436910962930291620370942894230598193369741741359189923059381857921183036445455956563173145845816578855233462276182476209115853914302462282502163576647219770029761241253759213379890363480460949669618931171811897800700079550392288559360103328266886411678028755618531254302362450341513664649502552998825942274954734047687701414450658292746243650651489913653647857516743528377771082522898929313018990985817110159745850087929206802315282495465705620400493928272457842965243892571725487349660179692466102049328428280476416104980607887559064468645597148123927626230657470991088168063127614058103247673198189254329890211600459147902769670140580272777777189110989416378023544402927477913486787774369446091148885076045666938586635213955789790848367160743671167154113606900932197617339395005261093544327784988964183404828187006064907999475135534972408090219109185604484996890207810780794712199388346478071687981235815656315873943243640810962455391977046954165186902303197935733621536593778673841896132408966817985007631577901436201347620014710974176758827586436169869148302696643183842857515479009758803029530806094679611848457824574014133737414425689355868999244019154687088011153223415287230578937075578739460851151294304971771170006503039998115687574605198404702269231833363248778753843181290257079227527364532154528292924338724829349488827246750608083783577656174042142945732370572592995771669186564326778435066539798592374855013659198455299755917127387222783908160027333070946628080389489877381337657055221794305569028653714950267805406899351302021903146064262256889592401238529129107816404444925590826748909194059843108288926145739432678769458038956358667452076811441375159300614466461464465068852281174955771690612280939264413518189033779796658139037814968570673506659382168354677713667823184042669461698685685539193399999238615267721265005175445398118837611475800618119413346593989368913898585967708058399070614585790745848801030161712095736163761987869174211150448560818168213149956168856175071802624091534927623473894452028916537640016497059202887926450545505721094530957445162598367918297477208229946373811768170420785235123656138916661238296400141075570125545512623039928974123907835621675762769356417418880341542182714092387181873686409333480238986155615160363852765654948826149969904007204088047963212794539349872450423377899690558217784866770659244558411893394823893044756229637448144291475658870982255743480326252377558162810842798532276962382967249544401667837066603381151514511194718520811102973303389891468396119217906388841824379231287053426313781457102497524918772581345598277451876494075484774627596553148795105194513982831283760828082488238822226754757331038094173934805363217314890023140815382685972334649445146687878993708633643995726848437730726122241200976360631887747767499828512202257290643614446187255625384875738217890564701142584534260041144790229233647235952619347198344456629070183018006038748290596115341444556508753139969988971473291310064936393430460532970733284377672759966696823328280207870336886353974861103806917314490323038043308462069926125153212611661302632654220911261207036365441566718520264285370168431629307648273705190188886931038827868901737330607089678185640706921743282807736642473249810794454896718034990187052583776994085923232962550835463177651471486440717803296266383708533182941638847421391392160816543953623916691866393804943301992536241438331368717345306382485129511143431203372085220980418078341395584945859160460815955780737517253498725322888471122197748145491464282117932365374683845236037353770166597223925162035760845655252766197971581652952447722428161847168929087578580628838273268646029756601004459290513082195838150119677928062289433269370419478754398400652896555653270567698481587186066236588914940119604850469047056086624753236799632248018571408164452110414709648642168312592351739831447863221872347313347593142670080662206021419758259287681367271903344783771337290956036647201060940023649726728156899362836967326504629849454151127630839044108226248588868492170853898231450959837829442574853560853342306846644081664177904580069780446803486834856030094125115458651443067092793853110218760663333671918528043521516625715861896088054121243327921157128517657263960063101377475689996950984653836148146273716534415629367706989116092715585764335877889417431722020480877982409447671196766061914967327986071466622646542715634741213486792311641491819398143358904084808691386685684376046149366901242132735553844123327854493324814359935608490085829856903010867881810312071407760773961020735799440907399947172429077424296758962907935938832042584920481762943876109188943587458120286005599963552649355236160744778343571818673710938558550274864688443964410332682887225638530416947621885988656420725474753264964309660410818619952027198479722142566377842420599394432891598455606345477875717758518041108297344281905523927219523966836615483335261605940056202952534340179050720974104167859092687838735533108941391273681593909863200241094494426269835318694496140431936875309072564629721658625029972367905351132928992849237928356153706524267397717401465586226766816097852930839694627458824671147920737606396499920522738243518795648590709033506754580710598121324801969050864431560959227232007478111601271752821904264704424903697068960219999781007853596991583366617732899050959344673438974109129077101729251406174110896490397666797746633061513598452239725044915046764509345995574959112108194380175509796769245040232406990651824791000220811590140546693172355840542264122174896027117443401905706180724563027291725666334223728873126945437564982214306409516506554059975531817329618662952461137133853575407677339675478196328916769212898257065742834897296763134679439416185224767485267507426209756398486277941818707894720798684189557475399865816278477307176999578433029898133193207952269942476284901978766970443211761251403132379153768666625376602251470302326031599131035613167471191404200376421635944693369777564102655863600922876479043811430822192366538975712772259187493268512570955960411948711940971740707291463152189364741148452896973952467702769889852194603593795486802350616862685389432861886269282947967243873199481160232857606614357965642825113683626483553347634681742025473597586221341759774667083552760380990806057833491392651758459320185496003444983180276266629298002050270236253244419206644044239489866110112526628048198089961246984896982969739920626162371660298836654744763431530172653498366727868764248068486104516508282571604127365572785188828736402545427927025755956549284899060557638510868782824704930897082726371011639668009109299316476349625636478897867218657726210762665488334091231616860918963318879975079291204739833801296936702167756711777603060085203642940358749206560401662367111291854560412111230337852171965374148526144528048270503780120304557163010069280434496605258575417359844352304039057226600727015054246451818429301633624422069845101222313854133818408425248269633776247367062486361531596576069532993986706600489774582751405988827270339656195713362675054900552492195804441106320879814311947284101399775006994603418784891265039017170411809851968703123074968570438102157628401052071607369986889608476935528782230647783319516442416939472991414342158164703525232194345183754557854999961133893952026869579721450271833412796992388363751884049101962207850557782835816054269740682306105702007615338970136211476867274783184754215588940626847973257984324216086882001573504024173567540912171675643897784956236103327671521200264267615870145659215495987699014162681738352699080954011644582418680579220462608230460135701420919960625006659849124112230364255343674661068716659019110931410733647182211819622992324372291301372003684270254663883270432381504920931574595025286077303296957074687975220888943625937844629669801912165256632018950457418959590914653118832831656383452398375547992939737819877886336988196703865643586002536898749251832780773200877480764295429064315205361778486017798971488078109310251146916635960770104634112648002504458906679909668252241918508942248341485333756844944488740676895235634409675633783962235045252837447395485293127821197258929418378763088432887865610855000818630224014020506968981162733449624387015069594687193296426238660345706052483712954599046051754922977303142700125402651474024675105085058174672747987100698465427672063945191728918205188163363581824829790076977978187031350560829383304325147121993962188547137101712475035774467660486858822593786179514158611723219772001228476550428057120086878819343293304374095773321956510841058238559850287050575168679259779739038658107158771338517022584361701584642452281343558876352742320410894512562374392114194298717924504518707132367671409058769545915058986340176956224520169710573186751178784940005418151686048071544410373054328088380108558391028828837384225953657964578166921053142469122581480864341105126852564934452397484119344592179227995221697729199484756439590502719446951978560130763461354186242186203135786004266684209961591830231088336483241484274085775672452817506680561339867781457541559817491514551731876373010466563335832908281395401682470803942502539156996509136596605570973915552379081936128962343092763082230037092353617134359555513481560816183712918413565340024098290142076837584446571102948081144676605511915664122497590819860611987627918062655128143736239457595013197679130886159080883283953020262186969429835836103236738939385045310923360102124065218851330242333410617377308859270693029155553049003322447322744245299565428729976202325901332249848223051678936983899803901350389352327827392707102398653661071809910826487466464575000843060596098464086735705902191971600479372464978357527238488147210634314336932605127987284361654272585928269000152577024733367181359544949422835345784190218483384185641659550742464531683274827840762446278856373770200603528797311041466033011694457168638532525843589626724042112269457852248283346331210168819641457088591470908922509892115555550917649438731848840113783453670496446597164991419651868040362597873334400640484138541794399536810821234900024208495787810750147697629224653902576220064091392313523769428557901953073529761160804404473407567315916118054946806434059498499710980787765640558015195851113359201018119913505103137715816095755901035710035839401964753075746769433757431953338816418920874452662406384657057890434325648043421986728073676815602866983865272157409334882454959773272140511126512155858776984266259092729047128853003051790274554932309131813484706977627733017441634748899039203373893201567861021459406962884893351217535453198482028198106555015317546609135579110613592254488719795098337768292104506154249431224106119925878389453677121737906653426790540407148183292783643618467296372361243966913391811319456994824133927634827429231316168564996622484967613126865594271673630198951018988816745726435246676147824847741671310891483406329294285839271903379427880048862655230055096919543975145111785707120672874483854848335445084277343667025298691132164466727499624073959467503995529619735193567328811333376397840104294446373482148331086805494352192570146251406406977210207483483560015437762422866627410745671600138681191262473276506485029701028264000807028860236233507719842495949551713826282031774217504897079475884389528263160110297178744402175257004243165306025293406025912214446347095079625661135869892526612646243611571674073091345209248419326329168425119299805133776586805762172190509981601577124430579522992974966415459947282519750505519696343329436625342294492220322127022943799738363918345737707381112340738006657531834969701806238917172677331718853228458535812248545232842364064755940842173873837068096386648804127227169697387541343528625919476464424289938755735436293446683204274845499545231882839524136885173497232439031687611976491532661494360111835341962124537976433457140378469794915484892427283981806313311766303307997488560972193818321869126833585428073748044358229717769076214961072694475290484883013733862709051650151901856018078462642928219222037576533206907045777961108170629511198429192022053266350018567120424259049294854291663141052000191398849213309841299380883999837972741977513235576877688119702115919599491438482237300977372556804069915815512389826642904925295372772860680008549485047669240606879623137265696733082079423751529473685515573413864466176944555100393318895793868476415936855124438937288144386987306183643833753365133157881532647715793892947816940331981512625558402013012651572343238804335201484154432447799935917129751418665000250361052604891027008060020228019516633342577810216276225880986814224818178649099789109965170355689514619658761042279725146428673873706035185244769554353288251415562338605223897419035482284758108896775695680401925927183549322133682682668778294987767067550916616481354865264324402153476850509938437178788894189943347081296415449715734795777965732273785794089310903589173950322132219260259932503571744433572014432972854490295683410773135676688762313339623295150919625839418762347329199186738857066380370650935932385238189162455343393294189427817338173172498268787964816334271829715525227558511819737897936124134604997717856504365075424304244949897989311606214203627837950092830890043395279560009236191887778242172045627721110132049707160286724639680731877002003516954073061016105961245023776337507110065061537433397075538169116983663271867771673831100597532210311018334757927923515298733043419024177019934438443476877986422146818467630582524056232452903794645819425592598459557618294626354442390802619668803453796664270942006579909106903845042079930016422176820062812173848090435683478163240278302490772238442236170995840565472170239629761912052040529067839117066850663434751403202107078069060215109820511245319480423016434272074518036068355231707623624674443454531776729210320986524486221266257531736305729911181672912515988680061857281852741361955974247686165963403598384183287484784780072340203006262253169968349833845146394128700024086129978908991492508090013962583132316661630107664046045464634086843770078848522468528913274797979299037979410565945657050556828251390719647186084443292183639193510068637388384320406627230975919429720390488192679537040583803963987075626155654058928045954467828081621807919192432681060086099561640538823787075727933716048160262331216534820365991361229152286321863930644749618282032585647180257647344438800448865460599984335758973741788030926131376191231989784260022864452585570789233289940670518796816518278679301036470560904848162997871427081199699157851961087379309390981857637783399914279699485435665820161436653122587139765145285862135627724545625552641690511186770340819350126799789216107541848366939503658513578269237817374968816636417279540064413878787092216479094312217521687384663053766039874351560032457964954249281308428525088449852858425754647796693133124668250124281729352741137042883696764132564569024342309929302403945398683375795496920640720171375283301452899488732849535316095906999749601390911655873748604347697264044793621708681493672008543265376879076139487233786077112767947004063889006686046540099532716697862386714600494824155969855810923035290973836204505813831762295622184062082992994150648510458922655625226413958911465466723795168241171156491692204721622211908092811866204691251646421361570272711641643620983262552118009974497113660785645571024652225383824621896425031851355609061035144397759371507263981252550108052301190177624612889109145930616094175873755396129321059743187416510575503774483085338186405869502917364309198068090057762005789426111522241320673827200357867737520418428541912738503602045650081789125983949812537221740363087754390706811728023333849523878960052003109132150037096321256540854593415088494064848899945173326930398741616367852595043252737460836474664872115496834926674648742763004523020259751422286416055562684698204598596799441712640323348167897029040858384907063454879735981334119794438091522002847989836761499105702465882534929611636437348405962967526365949074702984491544444830224351864183212944665431179999387724362205703399558218917400251519516873972601562346190504029824730456013452191477512219178086389685347317669214330847558035901797323630496074150069508440856482271839300783738669308754065327968024747777808709284096797902663228862159809439751585708948978418269998610470121444055439996622503128131658854736193507701305686008472458387575016324551049055104414538269735649418776821553333851946184284690931203825768755694468237975807339273409971093721430889868114536136068943567148278128015663417763827548625322267893199303624542159657177087464006273795920804274153312600384690603612703634854288074886397099712799998277731994924481136071682382843559886463608496590889511552758493838319329835598754418084198153496406421042309612768898514077770383304322077747075373635762238670285397757848207152791070526329543278256232012137087155128467949701712959341054625609859190826647288897762893611487547346084374141599807822083336034488224728504209168564254255136943677824057194784705969665219099259058307679981878015445195314715393744875873432508032106605666448947198991262048270456652078998855357173618049286088704121361680640476086481403825911704104991481939976036057726010263177345884488136531900123993763859686797492562595417275553954010082524165629899537290114006663253438437122127139447605029816866204596535193287035645726675690597344455297319111501545688227007509171904515350511033061487226572254949128287698191301083230116587556759911502198118403510821458504757859372870171865161264309775576190527377422446325099643073728393550274284455628733209568180112425165482209309643529246086683557911169778807554567880751138364595534579972088285863565751556675481939706118171043824078267045353958544348904891384719011645986582909085081306198008616124410834654761685795808624339082503663015746041690566318410640602804839822873987425295279264926713745006447391916886989596881187967440996308419767124108136299775755157963085494348962639859712199608462862985312749324878424574822280229430440614567792419849684198273406234086743346463460575725346009007334128391386402391436945713310812547248114383896819367866044385387186177950047556886653561398856785027934163891663125136493411424520049803303272902207219256790982901925419418432101066733410902739358909292360122634091099122546920658633907975922772530304623722144250005173986806612525403682302056806635760988360742768203942038272114737510057089586741314241054870591494259217522901283061090451200154057145517478297419541170510012363363573663082246703259476250502667365069418841804824632310425899227468272617716159468686067257623177519705689488105490322667787614825159094109732906805605422406632397786286208824879544013001896257016044642119370330382247676986683870753437608260031590192487576531259116205334757914042325710407150764148276940504254685671086079714741595927303534125495422678018350237926533067097505542837971547887307997229081230173203474553564698099599968720649744132110581285758916473208431910717866593830919339324722670141594288845854020054597720404281370962387759647046666707630850495921448942458966075215325104264068928905577279138085498318330208104754622585810262947437305494220247565443741316685944368628768128355162735489207558318497984407840263714747308288068873395454652981017555467947312679035864155689246254704439710557326863527289782074704591624418925120837130388071337219604901622799986083211873562435615498138668720936264668056419101925031654150712934640409888903651616026227671609576924808823707119250781557249440301232838446338004156348660040468529974009949074302296592334209135565297989070835514172543734331935981762794529705350519793325297510411732615588807643869094122866155507944641588691509172238559790093275731462357754634012718041064799917672361208734140030174562515749816047412089937973621498902456128157822716073987147244817914215860866163202394556087948369056809102444405542257998528929877565868770695415922999260834645777713050858721823638657587765538823410224965483208851547777106349809906896142124427019934378840145571353413532588577156579311157738744254168530248633287952440066518572644552807061460169666549664380600096686573897937106580385648655390984036423584010557115628259994337505432282987924949409930725062570167198459331843341756220025087805756792885831236740956240653311385475605794872068499937230883883146334406682137962431310645464322195100375985803447206430281802886703941128066947632828110663359622420171546591710506240087632948175947230342036706796366011743862316857530068932208533634929504406614021486966198403105588990016006493268813188882192552066045189435870882280470678668901315845956554748722785246927489794201309662008283316816815966366456748151467950345730964513952314795018647658905293444227004076616383951467714821559134854321402696324395161026149680454775049589494516003206012028312463538345677720536040705200229943814677110056659224422618749351467306413792865949431642643194912624373433269004679515534617702027282017088624455856423397361598739157081170979401954627185462028927825706311671424159974507163996329730855588512445125054678087544093317457841317863035636257778985319018342483251057354387762244073887167487621890280155147379780446031730909611903606126431126245580448908760037332702950191143802899334710584053009399741029598785849981060968480855526765706378933235540205722553312409852390718315878056247081001532967212300186063762825908373311785783628171988490639533056415468205165205297576319941781157424436618877368179581453273767391632445178307273283270757258639996939104283039478901426589944840299836297098093871644580058820760113278242117601956176066304275385868486478463385468101520425134816431303243918671458760604816351163329057686130832987640752255205309635867720074795933969586782810820467020512010420383599553349911008293261798578658455972913264026408401250089160511703134846990774722549328380887314932698511103869920954504542814417625778254953329452426020737178411506673520620174198590668564781768270192443474235849768556005263000738493099382453603461700755278235337304228296177783043828902293780637770904550969082080290439323575061721270694911159252012043680786600707233019845180005413699674402794331477817983218741004573816069753311408818156468545607491095876706151232330489522118353115636998775791233214954126659494028666213841803201162270041624437598255055560595376633540000171258311397788247628869603863010148573818725975770891275678921780935906258938518422645050893540294475925857682843255978496579775207143305041553331055683228422798041923919780010111776987181807520470128620415058909280418534120276511340615234263940461173325047751040695451809553723288485474172005338567569160001362711007867486125049263278339998227074670855980984919145348333455044733365615658105925427305070604894934729721773825928294273960332476159267063547252453083911523572315666286442322790428450890050349401455751720658383893472687271375570961245550831404518313808538435943048422210461803707121032066881262898278067277905308610707704966119194204718717858413869883874046163743569585697810526737059614068229954222739204972616796035739736296753954936769898673355992361181887795921884118174817749218489386345996902170829861207029554514472636885955509312630222412490451148460653343931304878514709363015975638922638034591454636440092474934750731038671193295196364609573420531124873934213286273169870985227656715720945571887360848731500603428810775336906771365595823432278851412929814042777663644575737963637017255759672091150801949621637974193133649789227312111853633293381402966925779515596001532618171693068374516743773241479820300556617229345156588417326681504832915464234659268555553743649591512979229120521314955378495568910721286840287141655321737133518086792755950801987714819355054210008939464143253517922482232389796699458747073933777138538375150450354490989889155132228191894706105204724215176653379519810414819441798955598659612418197550232178587256831315491230694655497279431127775373942462613132097629513235654997664892386671386518989234876930817678495063941422480735395227584702267647250196645473239018741469261973954714002961532642645108950033511393301600491222988832661352024968551823546294452551357881551691602407279710377336256840762698429512148901888939611759172938347040259037123269989517048101807512019156769634164540004265398338510309676685992106518929819046838463691394893310296374363597220116442305717202147973634258800853535212595880193067725542871272507945336529148556894611823085889246559825133076885324045946190753133114599321118872081130159979737335736108078012075671770598957385487065111461301500939099404826705942223425140790051359864641074964383529353611188931561919584583835478948602902921322692548267476179895141031862606290135680106899389626261106190456683529742055382519658145551954156255068948622296369946652625882401075034916024152996301953240987091332995982653186348917074862177865402153795956369391446788916236647485873228306483096616260036060206348783666702318667219149805310882768990607129488803352812354611408470133299054197956454528799625987497685688645980561388643708743780577214214445752241846523717589582569037150631626512040349205846794230194183880672902140613949418962499528606779789581257017682159188771871002303909537591858822691240854256082925705635627857951895964492850479595878520379932166952226612204916553591165930076982565491547162701640603651488662945128768581455836505339392163709676150203980802942268263757945692937725604825873464057093771851727800656440545777032767301843873264013466292853510981830084347756853628021973917838150650289301387192334155535803223261284769092549647785055266292142854620526041943305302950492035037976292453388915712801840547904101060675592413000576122753028018052059471380459081307664899277327489619570359033481154464614115221989801276216404470099592806533726181190221918438483481117202231776520676416338786837679924351492086148038639924146908464306763101344593227589511802465263974215848215484285887812438392990743899758211600831336763329178898280037000303664914481043834042611085042500527298797532208761678762623699304742628538454339337408805820653721475279965438415286025841522196959940632146797530397987795120140867094588513550996428501567929382613690584745160067781420745352910031862958591130447291583983320222978592869055903158377100355222104645538881465682966926412715880144444675579639688669055017204637407172850716413368169041225271310934275932497688610321838557057190670673987101020047213853638145574893590990384705038963901741512156631400149853505760998431847323012361277358274926822981721376202610324626838781130818197500268968958153179244424525770524002623520191941776393820229257038066754787055417897914885975032289827292991244585612451675040582767311446686280353290494607664288791360166086896254670160237220851338182180636345691665894293747544046856883258003000406190785249876876506958429021383007292136134017963665112972061252776417276198269789360246497907606581908585782390908743823801922301617394114818484145287149284629039204615034440680419395076451026127024281470228475846509147796182364364713608043772939037729946776911047668881708481715192860525623362274547818246148128310693715865285419163285649399283104218726528961342614228513333293619724826332732650580803044515659382339937949954982297955699033419559053413147609087383624979033043463080343088795033075668242132905802409366597444264248632349699243774492785162866884661453607651852381043181932042798470294830751660940157544583663267727299384715239118666331005890740272928836237267061379910644862580794055817031316225348795997200902269431255301657278386379413846551124952558456917854410106780211113909477220868600118441497328956852171714766483854462483132882791894972991043695015208043346634394250690452363453556129841526725350327032793346793896875572442282119179424256830372190014315972354275192920450653894757231362989885039479442535490495935526764140018134147309289344494369662842535233099769010705042266825672228310260667356119490512570859116838983912520931713358185005931958446640275179460484639621342778844022780251603071023818721083857088346991361228964068803988499893935723864184356663330960408209422453906701273254245543136167529027636912765105459690338206270361622624055822781632298849370246520241257698456809397001097872031601308066587107101721455524499769858824154106715948680217970778885953329570533723122947101469807550459786308904179135595015031389335492480065514362874431695776134201914518817086188678445769754246945482084145363910280407408018292709050764012209091024041573498256103007263618724490831353983881653626161039591689328615923661684444142582465985987933051467791521095630219356119235972712159972621798329961250889223970554962431356539251247989855858468680784641924292051122540286238007728452355222236772356815438856949331459238770959771441180334243957158052210877197934609732875316213230466337382695265992874032532221499562106247378835026451216657884207452577661727819524662005002751425929878479619908731582321512732170605360197915385345493214980862948679478837915058255589500934219573983254752846168971509751717203978364221013868091288159347967314310162898936702343137986892128788532119594984316861046733945023089146819592892951245658305564338691322475523294859946713579790001207470832129051113213525535429918024943810710728396229877818824342211828651820666410444613604497938490019776182829888407292367999388880971738753973888595294052648145205966807212937824791576018791741124368557775695257810244088469244329582321411466796532881309194596738890611073984307990096134824706385384372658296356084834298449262862559672694982694573016882107708878852442761114300061713681098282539114526932684068033024595860505136215036507746168347335501034358759119026020746610869761718268724218248336429159197411320796786202249824930242383732483230107271384192409877870253196635753155670910998062799653196871743869093171752904645782815669184444326059212179515360305709616877631992041442203361016335022690557747410550836717398297402180149168308768822239312041621112968988936801036108902101317692836496914923945971018277352209674296360302524104954921109265826717838369673164965223166013504345824786617409858222054223111123062181218493725075818148903452209867646032011843702020707474165141512866655555842286651036011168127423956941440082586667420186693180627033464139863251974643646741733397785562938385352954224395671336784679054947104384518254379967963511330413677947128106855454395308364455414390856636005767810285415076430441068488154666775325671046670014771010652058984228733293716117728156459212348788430527511514501891309040145890583288944576506281484815455455071920963988157920143058841709039321552566902344764396568322464945226917799646964635339455746809671404286982937929196193701774319020391269718526015366300755721757379366732661879629254489014632294686850492316084731195589957623920077472846129121826000380655908531174568316816499041377235796399537302684317295708626730823835228327572801538426897627770615109768323774555024957436090391447603153065457949944294910279222939376692558158904733350390178527492881194820422862005607180602878221892660802365052194811336798713977856154221352249729048572612527598702760741765691849319259597437574256400623626608175561848851662922843821373395936436564941959743908833945754136579457121724032163610115812256418460127727369840121399896933658486422461458932216610587815763908248026682968507690684044122851998571010074608459257861391819173354397064013754276457681648999755395341032066410129983182026161361129353834129079074340220373895870436406231350552424473924184982747714870402470005619340163192815532161144116393779281228380147127042365000701029228432753349770491226262033325675647636000877683017790213236484521686819937504934424888362966461632523425498688217221394858402627198087380872631986052758137636646178326637488885368571912700143308701152159077399343313062497043836635614081722868243858196433891771213888449011168038541800164765699306128060575656421770489516898505338602561958660751869258440861420679194551428769290063550684486402890238360984979234997387986483964174209160996591302576938167554229950935345877303315216322329867511422008301951928970127003722774878667539429348753848445063006624043491518090049046881190105323216735925935540258927968168567510130454054079247305859905438399868189030056222278455309494835888867578981463276557706521126106610155399288059188978113931509910381741919511701065719793464309175567394498060990094505935249361216390602367465024169173296197346133512198113043104338826733932072426989732029495778830113528317021724123422520393630137489671822976179034077680906589867893850853288573387296929309500290432955563543780845689173241167869332258910296808378945337515830986628304205451420322343603255419351923515987728726430655358999455734366384009435326153142810208121004542002712742402490680638290199183819539850093511541620649332563846044295774051547752683551416312755778176121761784030122425746953727936221118276744974963183936447153158313809381159820338683445722225351744528670856167324605936183631757308053604715965664956312149514840581332515560249034228420603956543768294345332155750634635278810723638003824892704768246036750053635878946168852477126406987143373704114059395313387825990688522916309461827796806757087627924364788961405943913755511897890331027166723489155476365280658034421860498868942873939880940102254525035397497106750266355077155956528424826475382312714022413251350777846924668473143576971261404032121380814808594667888385476518476881859843926909745771077839307370873144386206586491215393687850102580768398681336437486856273394362709895223668198766245810958040263749034108182441925058868169061558587857979558838443652207679903517900785099818600852537108316271160421910419376389391565866271293483815069207611268732395520894464765736667522059905759520992584180648005638899033002501573093275083073955571080733803136433047794623419806889780407907807290588376818641322925808093621535982123757563049868915478758542138142309478205719142127408632072629470471920401935767176393091317356712293226802193242876850959628913811743013938936740225932345639466772623953182742015490130034601460160224400615584350909687434288140871150991871135103334244515838478633242675975405599335946102394982603261168867076062455492559397161018742573970005440410334232891459056911711462958291314617062082700287141573650426503418111700121786699442129610770852360845723681125565208145703085035374365615741506426087493247679672236911917668233394455674524196672835789717963739032484636612805839185717104066298967446448214339397707536602210910184675072778466239518212078181852325625689818190600782961077178013399650777720416383489384739837824994003124133125485305463186700423581919514850482287046335215904540795514196536441666631613942652651441842318289123298905597172592853979788029314236402201043014878720835400127268349151862827133854640163653016958311994123246115907803744580898430512771633042271543506756576354536464839501054391647411218048344355045059647955116495417435308138880704997583759674011492699506570720432046743678909544802702659023973030227923467556593708433244934181341444473252559364960894806536403191910260419232127740904653550552272950321439934704022559811143249521064927758384786327345303792778738962602101139696073504378866878490242873718982796523787110806885827723796538679330178687964886574273773440848024303964060103140075206169703972032486802222467270521837511986678566741605121720674690128286595847691369927774385815799333539919706948917673936453034244430007020056303931833094719219580640207947291561345681241689618165944756055196030863099829666794046077586321089057947524561179663939280628934951433801342549989485311567637906179734437581440260997157190925731922741353713166357887327335611662965831935932550584701457971175886799731575370042485028886697017026202728284607984557155818798401178593006894955388792746314486514672478587588956705981202197328609346545229564300335953150020018446660681516329282752961213072288227563555300307897712851831296240967913363855088497296434316339226407265450262270283452111319641881284001606282011322516736157179976073727084680112957266867644519658459603417885171270702354923020563014554072084193553161369608962359976361546503402004373045051824603002996086981128044961088860344804448158948421840275765143657847660852796962384241547830944448388708754322145063613187344483985353966822185807133261130907519225114737346006496679801088128348879166785592895453992317655854722848541189829299847534941743069166228922844028011322221150034023932555918840916755475813285708549699176969923997513839886867573084431287886913481577289269745037113932822051084826663703049580773764169222854649241699639762785152329202278902212268313606126426329641180234522849652291141738732200959062368091335185029696370528757471209258520862968939629182911485476874516270388262586068106201554741753148186453268763395105531810448328464558723055981735534331050952495057023451468020404734050824263829634997019767941825811890122211620789862629547608914379003172215613304483462275239384412332447092309125334155479095522355010109064581026370057371181484547990795675152511572662139522491615020963737172071267223055548226823604673374834443456142126881500154698785981849379910187939613764551791983555845596731953487718706257326046048473180197610586951451418390169912103262860082479625215535784439113994971744433380964101131498765133477152984062521415191428748536866566680616755064438588551599269283067865992392391432860101186411960615306236363956957107569762710232942255642396915476496252947202525122070711302985343474158070396378149063574471557644718964391886139029070621772838414479538180645158584980683820190568324518847448254999846119749207070206905502540261722487948164815878186762219104128380428293941295769313626304164196250490036650979713133184532683975428180319661902411986831345215582759141002873210578359698355335918882989567571305616315815731113943651439664690653224758837430262206435222945237431744194003515983925964722366022634745631157728079433104056819046127236079511622405311547055133010197741611274748507700966521504924062243230944470347460489541387381407339327316456514903133721141138811013827362051796472975631532424235483212882627983824224063943298563195935610880644927242042021497161492395106566057514148592110856105950372653402108500481202034168005246205975375431380279477358017182004157860519331143624382309495873074713672797840218986987931607103371689006683364393397266065509162536426031023391455834768294391434391159877000965922815537073793333557615669073833383443895109999106151023151021376234334619804028651070495828437808990241832837105054796143931247687528199039677815957492440149930483316087949244361952160642620248766339295370668723085453635015444519013356787151072720135410600605189935574665698169009156902644325521832373506262282025606611762442948383291045491501028188960668333453527925672026851317577074331378007932091493316841032343282250651329150385780880084960714504932065750559489365129866492046755135875419370447032569041319831836675194807643628445375289008419137487539027913567362971764395710403760272196836214039302476917023922532322322154601425218440072783134892545155852428512759387743936024378846316589831498296465633390521590614894894287944050970474187014803223264186239548910019420431411075004231664830731166184172840989774981688450181312233493096884485340318964587622244463206639468503379030692868554138655065354611410315110955917906227012382092021054607576325813356259309799731714202468237312171028769383600730348182426693049719256968290740359367556175828765736564053771881097603157340297769530067719788501905619781286981746760428644740001772636258346614247093598230260675226222807574335916127670750686540465215959275499822771415711330211231647004151656131246160431225033166306699065497301362267656999769061623658799693547256884240865388131180148321983542311294787796858924918487699550262489446627502202956146590297564813366952713826510858635971948588945826448409844884621525197628195183680124706325748126480711467323069183248906583913066842950918389208356926216061760254057091002313407801054432440375483708700215329633010470530445386016315390355369538686297511266191317353239455702349816717532997068244153028977530435530613415948146783080276658837889115248183160332823542826006759421133887579627700377696640548722170759523702029428941951097274829441403731552023108330315136603665747444839933567584841157509319903426509707939336826721224277522040667986129862182709835303928961399076696802644304813146018163646073642657026184133579095905648756363273158945615136196308308011539925250707865645166727005581564604126040386189794828975339317370908957240258190355175921642242441472303621206415127927820562763759219589675277735511672106878880572969130568942965089151759957701276810997820648826301036572443515927639540194798849771605233759517026690373453866029042042871194617716267829124629180132148683000417147901863666210337361942997028057712372021832362858679767162318926364530839510310657345265070874747528509571954558755480876029975385077024069192133397617317032719951023829911645254988670194449066647087170384796846018218334762253746135153228886280835018548480554855566506341794078492109469641619681508586418000686358031163063082484097664862275618476226021265401626030503143103936977529021465983163865402737050134323935675674318555134190883775219570550633577445862893675585980061009825136666726416619900446844602911134446309822562594273480484636009475459245236808969820272988946690798716135337394149508814275044156400590142917066875481368433285015594603926416012231390442502654314346808990022253003963041758386771666891309429097125007442579720392502601012700321695476654443784473826776790269764464373626109002056376292254646191795680580764667685742649379134363699244902948348829510713985735048267014779397658535488018566570180700050712278946730009125574837060143757737746191309889410752241611536498482456985531678430434804499742911041826513215743596606050506260292774642771174093466602936723211152055500063229081623513159607233168104010233033904442350375164000240551452693443325571579953332049255317907176347118949792590803523839149682463926385424375549935467128228490830985733287064084943025988386803123736036701645634213416575468824436083195330193487083734035970189264172471961427189956407859061639390134195341707003631550209807759748531771616458782202028801712830321020893937080412018089444251283100629991440534059090393239133565585149510777276156088320523162432790881529945042183293936709151329381217682760729264193382807505962056700492689607734644677954746503407018420466225857421512018269159935552196895590500052479148342998822414897023144019655325870282485125419042889960015275488415833554205475142205150864041763080855008539355907571740152329634480290261943982711305431140298010476815791838794414592285198832460463132075382437831853335441021233559125526152981191665131410420643550461706746589396908434339139534407031971562713529599798532093983698126719949218702582614279047590118536285627327354861191450391428717558695314372571345922972026741570148158137861205008718745719492125937171205918775772574135134657779393795348655509953056615986638524082662625628128726142413942385666556910915113973678998307276858052996871303861502175846994711673317145356585654201685180962430107700107780679542095511746099240915319451304852137442973561817446229138018080108875217835282608234134481212771691210801996918678183928693871129975971144748548523756701056377289527809338182895552237319555887033980428052900388565703833351711698559880415285595461187918408532967469005227930050646265448985781670213143857557384033401970130460142795233347622066907848960786595635892939423011217914559228168268372985923417533776537663226078968247156825542830014117978583871754604044956124138677556282123019697806245692275088100411076256879111490953721503896336103138996466379406094564039960301394739934497681182237232800475478083707318267213669948109310709809178141969640700965265046237667704407360493283303386821512665638591394321264018138680907102366746817437774981932994005007889299424221502616501023489322984280337512452357060931031159300567368709289483250979832843289338287472428908418308723214814168412542103809522255564363397380429075171306710377714195766291699678888474341960190256310083613185578748846554681405815747291974911403956233324539391634279940006203523976278328353871643093984927178737041860495906058011097089965713776006148651091035054270449270135232183708559343163314515839977167299088701934612394024922005919498598223387979335838084622056725611351376255121989536636985993067645402331572327074606185218501797092809559578143328566939545563442902698668438682538644942736570745511902889300536194174841538204284238079299167835849027415961016490086528113845641380525652760442753885168183645002955262862489762391774263815369344277783877370059026655954712968895427840992668043511346412651922899413199871498686068896546438486122511774111185826719894927454260014481098971291177745342376194878982219352648194583311574748052460064836346142908681827449112641276838435730422671665480131785614347221567022635991584415321970401674846562540201726567582924445258555948319919184767073784452117645890119531457508171668627081699025472369325513758025095889772900480036872352257994847826103920202298867011099571610578128024416405629522474842950470916749742678584399254918686558248663662897820611156923277709966551699371976833905400529805604665763385778088201487420975829040880553154433213940135035466640620662672992803777660105264933400056407564267634963334153911719980307974119495688301088508776552242956514494409217797252857750114063196182519379279603833361940429035258717206259409907188157352493909147559569996959871312337720805485451660392423124361888880027729225207222779202534154211657947479102569820558288637838792789340768370978818339769757031433938736114813674950430519798181624330030751968029229059560225621402195788829214437416781076556189240860733321003632703962114359031325316427404211904654849982897713052776047217460186984650398343311512975211929529674164787100318224030991794528274938987661017537778594892425046008510100611062886888879964484169889504805048629890570354830450274229150813447514457601796978456172534977251031360621218055595865781696276821008614429561113111245049506744510380018532847883242954214850101469573348883560809667994241566405920563537623745086592825515482378098345219750036317707113581545368597058407493133947902974027981083818573991620819266314480643570916163510114558725944603348292554922810152644248612916743749615013789961870663020229087804978002988962730583232021897033362069391594682087627749318225756723511285735620576593311858232698017840634521531385151352083179085875551861334611135917874885503405724525834063842507272336615136873484496603906355347135203162460186173636696820466283150406752376827189730393550189992845487195348130191087790990263802265137042380719388573765954709907239190550656076057072794376184492905041312931140377043536716672309074081395299566121280648167046848139617558452703026919335050308195605042323133793179736633164147275498522099154925096954633560601603666958240577016600922682179182249372412359384104202303406395666916094212031478307711115103849182947257047701513468432732775206465417154312616738699232961027984660841865744061453994783105465631722921353820484118380015442223383777373646869721470983056328630880598636952411373031924149335924767280722175137873338527460874447366077535976256015629711080162336001691673610298471156754840239884308341359811826600398857552725492818599300061211739038389493145823098703296697063300137209432614068580653681376658484215028543301392729108950816816797360819537411796012132552062232156655598932373857530765055596400825055244941782482212306567757563304641860472267410770189022801902025766745425348396809756915284305704602495446960739513714008582760441246442916952023412884397675320107234020004038024865946365098039620580882205861977461741779725052155758322208843807195191816464310148541623915641450060479544318133858685707471783174204395536578583740255268849945389402268478076734267112517179626604727035112556731297619795735766595237430333264839480224149875107883334320152252117877963774242098075008383495029293073636060820891734527003385569480021460952696348259073876765872978552970364480708697039168846267494252640872237872009864283053777863599426034821676336441199680045738140195210711733727914509500315220620034533063877028442588870139817901978163947603941381831362600425770780996611268525635316239077848876778338224904969836433864394574730543698740760165091756423518522618759367050239230782812857250285308114383799372663134194475718608697773170504889680938849764726107708135932747339320277534675816778747948426694373803056927802451170436906672093261698199436681698950688817856942155669354834473943459950267163591881752655030764051692440886780297298606832167939375527842248644695873077091782556569732810331327964729767854976878585654811307698395445932349175464235351382690206146723005865781485973306476235799811663899427375552034757960700278471101591651905761887868661534807606565039782179933339406069906089110111828399336345617095571714968407164121939590445259275376395875093190490648480949138530381794572887159819212434110182972162070400288124815066705094219087451397895370123177828054336213510024539720516918982315850250940154363229669397887867351244105624691205060387128257300123901377815762885444274065417626392781053983964615108540519331566041097778955159071893268289367366399731487339048870104323580656342868295526186814615859867509062794689794363046429270990897618425749291058516236659655072061867732774875739417966134325978937438697578567193999804489972713408999522686250103216746362668739599533506237985440262478508228548114610499126030814641257696830397051155284789649731781471879429143460347672922960758216337683063750174862860065288592601713117970992890252065162643396910924097692703037009146764558246197929570556277214634326033457148958021469318026790764183503235009563708077837182184564803566575805397408814730360420456532132715939695994412553592103683986535215101273020762773697567187113964013162594983202106999823030990767418170674823901638455377827817804500561187930910271845050997429097994354008024759250185915876123719515076384698620708014604370565526077773183598092828464518496667729177118970188620479840828844385126141898385794554133400714291983774543412870828446776748721876704863642244671637836236820796428877100984411960481237842292450826250813986869373502690046354621902345093447661666602269330348343974733942175541772563910456902895689808582146253518283506512152125717498250178167452461819068116261871747393847360548551090753622172054123292875073387050596757592555010617838751860518111987809624136906867425368948452830095659900895590942939689777236507918110811109572813372588890736706960299795905774005423585925590019937567552881667608179060642682075246662148674172154390155144996729189312442368878872067176039938941564832603881775770333594195576112280869471608624368939031432194844692578074123281854460552246889999701512198206497868853817867785710821114352224361102236517555853880041949623775133606636279913492908970815820196719145895926988566488792150576387708648757107518653279987236339962872651846263203660155349126019265334957085694794277034038811571003263139193969287566899759273181049151121588091127132314495371525580215353782869151944454071146913769392749949771332097585316706032294358187310313898729769498921844229766984102243702246894656119810208856148425722599978989655007827519245119616599718120047176276404882299038561350566496860004680745282674792971481755921467700428099305898476492540670137566568411102262167603587959416586950956871200761773829472917469755920630775417018904577741149734316569259713820780135311494826878631297930643146164151665097164162459216360529981739472127199766071898099404013304700969596652066301628348055924887795424795398834618981417002422251407691587724206509097906510321712459138189317864364519638873413071001476309671083339482175747842691123849090334835795104639990952212206598176310996737728748424802224552493142745085373527322782899380947361289272103935240579960495289391850236086743492494125199880827748647846399688203286924005269878456699204459601945790113240906942638787321977194734809363363057665628603867751942938370685905183029651530971745484481117504990711334791053050044506050441909444149787815060818626781984039685220451001955555247907783993931779174310551488833175090373882969266305741247817789720242695257012402765885087543535180954884236110389222765030161659176036678666207505779367975941700609390993186567693087054569733492700953200977424254571500654182620585946237130690419436475151773077966097761264161761170469301388219268126591677973343194284858099645375965345942775220251278141931449256920511479401435706474948156967129288667091732986315115550614927650621874296739495616920317822576785375714186043628438169273896089776502741269133844546621972760094135724730271157609316448726772803873296226658538453473416200177535927375370515600528150531096928936009340410815867971842333902176477476936577535004360471835139266441334621913375705156166364359361286668042023847119307197685767518039098828740335135509904715444710532057817304963524101955903061421302718129643435522170128366331142431879534950487164875676038515596052184463135996602442702051419049503238810451141884150426901794005809961627927604316410679376683026523599278327932000376221807094713244635460030987976830468026954561909731991930843106894556257853488616267718580228403516403401578545770952159911038897200852430777165441001511977291905432446620836052949973660345546298870842982447856284733438080427359006871836670983947077672112179735865194326202556466379942033960004793064331580969687142689914465184496275675844555019066057284685591965701478958474996268370615907355109516154006569270312848317677260022193248137657934781223687204569875812870466799602554171870461184157820601005738818394120306978626323649384856957903074135481047110849651363867985878379835696732499643086209885261600684583436862516569220726088760518807066268464354186896184574874258320618133242612709479667215633791016072348510014025188850302679419827665348071150173441128393480234223763353132933897032445941277474126348707270855397830322934903849633503934915104099009407564470851328868624003000456665999665908267140769224137353060577202713421114862450232627288349533946334115626416850810692214498708912495028090890455854718004755288475088600061575478889410562451633017088313913126944098402838506622404015413774484296218958045882375298058917841705800951306198083355255035132155928065545117809729401711101165497923863864892676987178266608894438441283673665444483770861196677139019821271562156963712460554234111748447089165964331566245904333181733164791444877091578529263354666460554159898916265258626327846454707870147789979214349028551449576943271937359792813057872882519131173731077764783583353701610038503151970325578507355895015869256554718381628414527583928935949392688208111045041395727283303015129300723832388422445588908820184559932107336674742867879041301201023241356496547982755933544426833444311604429546883664595092903421255378192147613728486440861774781596569559954669631830646187630812175234410102419522982945448997805754448931739455504424239656835323480018139128586628603725966164051923074754619090582355454749563168684327495820875703600672426303728267810767967991856730754834030937072168714943714303562767253131443035015851324216347794456762329493160116505889778657849802380394373917023031594550220959303094572650938302680998100926155933965255774614580473938433413196625164338842972755304412933023921553009888074641571368874760307330392377190704332214043959285043497233443711480730638627011341864420849900532510137972608496478729182835501315377104245061079505241907096074894279075716706000256975595558790852322641952696908213196239747256163867070008339352643898657607451976477287161025018412174315630748789640796756410119201542304283037967875403667614856323958082260302536034371796298928984030956311622489641102684443461579834641865389411778632322696382190849469574256510854499242462001534513217982272171853014083690275035303330492462295531665786829775648748407381930224798472192335878957904851388131864960791824605511578037019735692230864812958691321384276135939642019682784195879016599895991687330615846025911816492453733270100808027235156147507849645095629323007160186673604651709707894260680463584080843736138432926505082893823656983679994431966327923085003920578601693918833460164325158880580877083411423383255692073676339946568493899897386609088003024668637538049359210015763511748104513563961686280226316355795444530369027953552406969459030459364989324370198921447544171578705053553662013376145936787386485114471391243833905101645557868552730469490995207056413029826229484282772425467306475995582366190795341414700176815807918807337201005983351473209156547156418016625123494394560119828638961162013564569528247403429046264934595001624452552553140273219456362480585126761676133316396625220353634880470689801637199173858976391066878132471807434548122104460810764440975645150642737547912754442272897601731887327361384956703942807696922612192267770543552775263875548269462728049763668853910496574622953071464580195596643759189085552916200809856779288914928777293096422774368646481299727133613314172945745772336406960088043774223327291569924589515222101278171619618814097719650519589315003199017040508268879978849130150346207472857253082255336753318556520781238485867331713426029921001836834058039485242711536154623125705555350998812806960427938825488263808287332495744607986152273170057381812717021418053013266603318217094958318198458289966333427348429532690826083377805976334781467100946995789638821951558956256103240127116088270514149471920855196548915970346819783560378849624330969133770615392987969038557972973593659014497766668017436043569407595801224444796630418267905662822367208153296523979943359408544939356422325289993912580501451531977411427712386893050078104815393282189761346357198395882780399178831280564449416817344294162739636958900700810116624360550914933556422286667073276745667433136964677849026936957037477457230538425079275441919987052195202079133707166063818084700335877795430960879792055908578714075792142126571521227981140626206152300457801613814420792105093246665844101083598706436486276678712917825537594655804877733035173395953119229061839791783238555055306812677116754652097569902516366626225930110137731882251250215150328904342356880548251426059296950914824344126328946715145577657692669756772598083910945858192784642662695970254191397826977365394698006295774828829980704098860737518203826828523512293494765633945254025788840965863342706706521946563122630286422606115513007592148277104996634120372212823975329068469481220259287359250690528817838193797473886653420590397101451447507782638319723833926073780194547117245913219555227707294290868887779406216703520041947761618425652282162122043147111488566265804939360937542432019367314332758150251999611018234459503029233320666926970225288892452416554363612497998935069761161346347276361299302151881409484575178757512661005946153647605230037710887452587833978075890284088701434687406879604190310381127838303426431961026729456456306173898635860005085131983009296015313488540969307018638502408702044528412388317117344799722323788165208812864968171049892883491329524022941654339999068501826323654377107868464746074098940706575820840703641410604110692937633264498899588122687933926747748152289193168920569029788305504870691164623021119719402538290830502778743479688974946413199707152264423457649398425640059479299866183046843003948331981711281018920262263127645313049138237523365561327502623543448803314367312877891211096717043256927973745256419223826697901903710087119243376713030943393920816525589506977883325524487960687691243970139798388311057126889968114591917216202323660091135001362938095773738701442982074769754500528144189383663445517327271271856726222623658519777289095444130698070590851264275190215300043125939565196058452234471032635617553654716586222399318846726930684542694838987126012004386686500340592181190880799790091555056093508066559702239210740714343651638115064601622496615116176915736427271028152290981583925481830199140490158846393527390395860834734202711315793742452544466860774969498359841352927088667563028612508532274254227613777032435533688086776868208305820338440071732952490126811862200571403138987772712674448083179601666949647800008811775396801177656255826047359140290976210053805587120124418327656832863614746432939893568086757926521640765953483256592784779070206626186548803907242947636751586496350873800651907986437103543975314137388051983078844779880546197041305838521600624704268837033359983937827153663375189426283240737546207734979574465380854034771461813985752770066826537038699581581478645657996019582162774205991409393557496020613999035442084419300447810355410068681260154704498241903437113078863096376694782820524548013178669583716803146983565505200389115043867320287007457920028392859556341091257386804242217595469308149489187013850832727035995689572696127013561768766989890795231840308802457739840402199320095757655814038111639390578391521149104146265618707414104321941574234877437249668380565127936280727319316146374320613460457014687105941916343836784768246187480727959085653066464372220541553054113784089423215569109077396914534368667728069147797244261857631538883884221270817043198037297131736517546238970424861607387816518026549699361222123678958055529966600021421971231974972209808592192539888902747786974928227734506845477437382413515104421241713622230742187798307290047483072509542035028105111117865444746547505210466475585222357828625916113898136228967166404842288237483621936050732607861960296675233984409758622337546596644697660390828797961817794396239065997490688873745225884694299228619428238242990067560404183837084852038979907581312491872733742362128083213082543256800017003415418723082334254908554680915054356321196699106225781365062983168834018807276559389718280802956123812932484827580655045279191549457873601365252344490943248669156893441748211663099675695071560204627914017603290042482584873637580703120517350042669964091519223679332798021202571796297303372342048361355683521943847650886802146567313848515324848604141551479758218970088607807065234067084517972648785993826874606935195061613192984413754245689946963469017976640347175059625749046738104510399267506826688273058242605181647615929431505119211034693941203673859202201144625700389242869679155874915517436004858821255764449310737388788512809081914722302296637308760639789722988801389766344838974104396721669945500736001283829010474902848512017479257427756472676672091859917368800258375681107249253109332204868834685999275372249626002643129424024192918894878821995921874996974885530753584849110407039908253904924628606133304133707995995896141819774755638467595653370116751899801202685269145662744398275679033996426231181926576654802346710079629797671312412362294785646906310645924927720673230692645138009849106712320451376333993823366488526359364815368279766938754137461364414652659526183040456322550868155488040799581070159699357703675040725201617943754841969083411921026164164940130880207427868089937723905412802260970833414066613928421422350508962105823578852805945519025285104068826616051541374015848396585065501196356788157723475425640686687679725277261813160821539094513623659380937363985364650534295194586023399693142428033823285432685358500879981500054885684453685377809980835959604331021103954685043143676278655460560013550372103010257990541714267510093339472837046914030452376850449616486902775641216892086885027148759157860203252425068078214718806351653366403373846071826906534088918434429084432159868934376733581226645844708571606150985297680067061233604293582718637618350858840990949710995314494273469635856228427521350928223550655236432299164322449307523234234398485581089002797231657933929513654969269883738035528220533590781714080433324300652307502827505866489940433823484201962456229630872777093468833419539838657002207337508220230127275902485445199269671963585307373183603779436259444385738901029918819712106967821959304149150078524647474746975886569549366815215419896451733104466908909862240642585511950004395338259715988175192475075945164743986746455160107166784900242415695771977560919494128369409516924445427638014118356999545933252610577639016394813993391178830725565237973379269862639337545115487088808503541832116921705525447771016486652247263246997010265429385301112896870238503265415672687432108046541171477728110678137104993225470039823225456751167734509559189096543708169503042407746179081202828518158378519068663125017509924756295504081336657423023465899027578970679077289328540578785751129134095449452932060792158618692949353881155117080786124799520068191186448406384912074832098931427784672528848752590626146546187665702820366546475327260048375186856174984977001704600372830439245263788627341059141207669818718292774707694790145256986626514644897908713612023305773987607481165839205546464886229839117816958712908188464444390215511521302399822157608443140048062438722027973970850415463648489352456347313292523117991518360317641354318759726856115059390730275270196304692140654444040968297477554021838278874950236874105151416206858714075740737093820112937075898677211140555282777747106537173233329719011806828291233424832229345034591644325928377929780071932539622470591966846925027702900347060384617851821226730705324762182764748717677919432380352621465839443291241364453642929318828731954507711940849268755407865791994661876312928604238749127464292667376712873724527648789852884185290036305469366061744975998639552070499989581379181412658037927086215194138085216670295340527624397441642393225958247674389008173750053379027659937784839583583141623454374216570104440213087500037570238166074726987390046524227887271211558996381333534885410705453422115738369590488791017050296223813711377078378864309691516159120354411763895323310750867389788727336006151734101878155020807950441241438940612265784166055934126172479705638537443265657109765872323165535540826917364294599705689591957262539054274773020908017976217471815717207862734947583084385209783220273209749283656232045912867468303775102134658507632762060192776638916481879703830628647500860056060739427011355746034454934293587360294941829864280859327843340500250563640749562481734893883272238259641211214757608099970166817969731619545627084622622424261730636465083553547499184548092841472947121152410441750701953136877231167686393666181214817611230871220714704431751571001700099834363723965289342906855025992452057290386447361410324533544454905635358002247291053401636524314397052340026903672744145942630351304554019106492356915914895829343234644508404563774241210715330688178875099817496364546472541782516274154700957927177413505841218995952313186998017679804001878719058833657988163447141017364749095208116772231963689571579615291690339682551555665913420991333587411971309435333663774985985496739565013270771543774086824162103460908745700705774083214194833630787707588686210196697721267243748942656711146272060893626804708884395312411623317799039392247717930237667074985846362887389373572447155677428477498726519099724150798470892920635846593877211145365096966959897469161352501142967125023401627580230513794976090873342563285988402812688161555399016845772875836810865466984875125154979923914686609932417209955975296780713394445584395244005970788939213324728282483277048474583734811423196199494424485553468566257729855558441598360884289824012341513207864777361367670713215601450261753136226933616176422989780954909453171665234947394510725017498705588662033924053805436638430339364746361267280182425082272812063981650644557054186813966378478754918871342905603630776639451974272182731792795281617131002729580497561404633420038277053020156305530560156813887854877660104060818489932382091139194469609188142269859093744125307358757956592704546201442254600240246478383734549353308527935913367261950784896743808437116082651821904885589477842904886334498096257802185659746988086468787953744943994502973868175987977838981914518564482560435860035265708300159129708579481884619595303325694240425884256888063139847120309466109847272531023404267686966199042875654103099910382771592841740247386248383668739264794579303142936721517905180768879000444432332237452244998163339328818900736599389141309512813846232386004709018233091690423808001347070754398781150050748189505757753935505696718067567669613353469679539392216256229869192879273871486936482922388474088001659860266907711555677058802787296499023552926317352972335898467519366263408239623311121961735311677483011626359021605874627340395041538469800594181288910851340954207333937936614971212226105708276215653626825473952955261186132347239278610600689737630592190715999206849126586045949433119905069550916773896693068769459453533330572219967295093904141512671923586412821852179594851265998345767381382483774967162857847753886099127415597970305231158616797292049009886739026509967830401819519672983132031510428501780501477089076389752038357589587345619226073497689844650202165140399445028515428871648622698632091354479901395921608750074206944678082065944669804805825511924490931757592950579049270557880871954838685809935579444188994732673197062127143215602218664566735774234811946180984531864707942678174620035504365073400286162322682135938133035593495243508462985221414225700831240828126209563485783282609483560231079819068318694007009837195851250262841444403480807738552712952880487605046780016486880832970798183356972371620120460518118886530001282276513463556435803001930540301637169000395507545158548907807912268630730276617284040920890935359547369546137166395306400495373588217306368722936842170885423225030687348743345494441925933679131014003093199752888440892027518134801669033890509678031788780850299280531888477223466623436665832140706879521914883634391996061581108772893975060013897127795244227554287925265976277058795028516674722482769104738120850668686054506234074210277767958565330940214702463963759071909752821328741332070154928582369030349277929306374204161964386637487947036115130557151724193531620814537401953075510516520896598987844374002307902975272133504169502301334918738397254890322082111738670564003409506410803647900356673176825251237705809054702078791196346631427725970938623248476480850686412896244442648623995021139902080995444046985152674988530733158299700359563949457013781439877082688551654517994975430577179741177069373280982909881684161300584262369994601662917912645056230764285769658719334705874801616342057961056070368761599822759665010422762725788616188762975868696115580211100448190559317546543228393619964221381626849613669325227522077601406653302165758833368744271315693459267520402633789250785931269228009792831194329461692633591348498126616297213393943023685209121532040462806563375696545328835842496304447418180702839562127392686704862312316859556202428478122545733438388442200517746291347755894638594169350540645128447298115375244528509926962852785756768505205181959096939678780906048144206858132612999691584474213851029235000146591911309497730580680965665269874779451330295638868116396732290693511065104076590749404321331743750473174255407287223654421203271841596826051568345064897890388450871140919019320603359161606819515884099178745193807057622555557882238612430022159546378069519035042470748123377596851767449261319928878414695806141420004323459597286903713098371053766297082732025635546210177522501277483808643897084886394255452042395603061902896479431742246593201019736126641015345571716934211889046623120145229556102570513231649855339531022916287140891986090957454340392567925379819073703986419695275863815263788383957659405395421512153991868645692029202059647939464896699797558911790881864934878817363660642305113437403559812813167512957262010191655736526779612185394065726621337069193189365781121249295285983444441622454615582301139936498840851851302310550091916774048754419845988195973166793670495534575545002076495421716091444401518290564539587882183096421103987413368821091904561515924247155418856059331519616791246057981205321536716564852551516273051072992439013873360183830310586713229459472790317323708225752359980463202876119903441384943289614902174966892124499282711356278152683517036136417942227316613288257997894196380301834444706567110403462146192028198444449127660560338357307042318376938511940804177416321789744124985263279044546602122377923824877467610731330984828256303351537108149734542170697447523001216604195723901087077683420692549722170153679183598536264180459835575171697953939326037824467709002467865905285982947729193989837608633088363699860308615704222924024296959336269188775857658731325884274299439736513453213153158797595503854117331547265723142856074318214608606642960661418122384008268263194010835238294490478554236136978610887258921837804292213791302149402045264433878639918942508027967578625008605700631185743146195269365274823882256617493234454735209643637424413620966821568672491969701427345112011352338901896862330906241791753506544346730201609021363117664196440519005786240234182424220122681848344934976911554348083539817158306192640068989517185444037914717534140467423017294823847232677428571825530863966255229335093844495122939196556068282443711331627259819818979685771132606202979949493534582453247203455247109544093165062151460061945173706902359991389951037566144848843039496227684347019021991294647119168074808047625051523296252285583348547884006976815608060439824077824370992932435900478523021447045967191949796371386465352672694997900423878609194590312784641414841008902808917517691612651973702656552769862782835559994960967563182056353718849475714095453170485361520665866713508550335341264676522868925602794509837255174310620588123304802360794547057193496119168591718423440571695773758465753990804510283677295338740570802054330076740312957136745900973402628942204126954284095542292253760195279842152096804547987003744981582464725679286837021371038443074076889371436955496226216848062654953938322932209557801771385319841483085853970196613559242995705987765442946640049934919195016289927216710026771767301155610804453410267328680476602752336906574650000651749039658278946798675106923539459815864926384958726020097014865540702025319505832665609505480261994174945629077863159148369713904933030907286338597345297217557446766283856492077188282160971891853703780347573275552402788423689399892689790750536116293057826942911932818946598795492692538278419761510751630556800471969455801478709898008064646223778580745285844201231091599303232585339400381946357318794215791889400079866641309955611376804933712818880272185909838290820161254480266856805396550814411171617198705097530179326756944222947464521262248237355067263937716958676324429639086752635040897213808103586282947305619104074769662933990917597113677057427697019175420309126970738649958605037916396357584813343815934342412027960092693084842806537107638968064724098995746037451717507298526614063033016756580724790643996408197365713925652086164021206822030972150282683760833498964641477014392902783352886070538252549361019794736495050037599747031629958462845616030661617558748479986430386797471237081825639134724935980499972949751356316411101121252944960953284858238450385983575195447709500073363048604198833059226484289859840694684505815757222029134469525241299095846463808851869874982454084777867803959327832921520410337453765620647159319426169206686729913588977807709235756973999686676678274031315985542899238226395293519113834723020885407506262520036990728238147092990700126574880463591843850885223822249181625872628955931446357465292614564873285584323473713231324674422339778700407913890090366742457537154232421529630078143123541163946731644374476663738606616780008690360809416124421498500106640210885970536820515329126001649015111377496628856270685900028220771176282151659276798960793184339998749647300811118652356888022599466708926909932883522096624165427205541957946079391104563217150358974905881609914741824325461225500856049477636052691566382616700969500672633544745350206912810740817932009335797550868947617216502341385403009285143411810018408342940592847668760815739298645105575833726802267606385896673105273159711052676682636447591785748418731297785193200625792991351520967442790523538764406614842168818816569073157110098598577256192370096309010518461463463245563350417471359981368149073542602344532341081071599535564301406424957493426752730915149620806086496320406703396924195380655256676532429996596431035364487153546355775038501880577188405997008567429103138809978077535266890384750694506320596400761949838060190087425269736622758042634107026080813266096822073961913417968226265999119825493579540763508931276273917028825067107065223952491748816628062605528329640593340810577659826422471699006898099317350825133985232392786951390911616472928051345355753234116207317869064811693855508664175268563716262216480721940070413692326233635830865778192456005292861956550426506079598007099631162785456497219464247179510456475207615192286698255087457147289795856815918294734189980259951160387404235877443687589123744702868485009741075307612244263017257947925699997876583322815476382137418315935417172923236988469383008123694040332270602725275632428415876918734354172074634760893978642829364975775440819050752615807717367740894861203265590868625173555493146982611739043779722527209761666877673111417481479885687188543040222555250956604321046672476921214841786100409925155415555288327810773184771037101177115610097416382092913350974600353699909502924414422057976113768188118130326224769191555476740525747610337863197522796501946066152234518743652822972111438740776308783473150160651753777994230387026019484377329918142113519728178714602908962520795675667558245530069628603702065974526890497513932204413667184404379508937367697938746144691774453298891907126636840649521256805209772621274789871609931168531344919597741177114592706825305719083736448105804440748304669108921394591307227605681779676035016786035902946186969919024633238770603958359320364441176100325824510542733598712608078823557708412075934263427571510465008542125626919164769530598452678743249950389133894022376454993691753595027091564043331500747468728567713803070420159658123227044648632233259986028656773288983720567312439143832442490725139674746072786935951858958772555847421526493678808113809261523509745251686699895923445587979939361646027730904509699699274587084406670068534919867820217636470389250773069932442357298234827258519576151733511207622280729707705126075272403789704126987540668887525534881257648659537842862327839750864093769115232425435421849557179553031351210631358916133653130601217991854925607603468925271855309261736268897022685859270036444482307105845496932736208755218172009537203193043731847795255171875020800683316812250375976902217635219087763428718557490586140827027111623768619323217180643532455730820264552153037716830634384277326073636173504842810545232115252482083324608462553804514607349016990179923147875315668932255420583002124341902996463037696008765258534332129563460191163950443371025910010664057719297515901014502838539614426150579035210620061586047500211170858396884085075571312458345805153179484069948628463198413732280407014584611289068757540718222011724953598473300959692127384938698748718018781886310568645138410086231637189113991825486591402946379327054311058258587200456890124243828831074320589443254520135070393736162442279089320094300654058059815150636999505951446317437036869241263518906385132702909190545058487123912288446837569405806058942266500006086775489300230831805596912164958042636814974273315480358406912750727485054895391672096288081976132023241060207473513371569054425040483390478757814990931786401316008533574215945442021597428224284594506416958404777159791553629171611844548124021075108362688547004775273651561459649273442483590923464501205357832827514957908894131045872641868173997687009739593692544701286642011516132231568860615801757475058628403651482537569139449969819689120345204425675403548883268891784870326468417449521378273060480394976000513655190137048839933067573442649040433884430481583559383967908454788044437717837463385214720307951995721659600862186615390100664079646004427949398418048497938575533433714153524561760458154772159513004284967703145049414090955095121355923460761613793528028676680539160994932624059973392115349879839315488668189655184015198308767413079680941193504462674038902593492917575322380456305766980453669511263837134561063593068553608593124887631026632633856266874297485323554626423047343861464147750403224503854412366599439742273092988568939308615053901787764310183642966823845231376734444686477218721424101932013836225773365335093910753304587388594850256826348446260988571978297261167397985103961933076447864323203504648563568747640263824735079451578571563965341910720155201096675344690593335342954747824721766202392669236045870383968491096861717313828578345391863337195119723988960054175847219437485359576532643759646765681007557293002716068233785108075761855833192238225847234365264177157339123900901757090449658571532537507272366972367136071270026819805278992217090991315044738957896923058619589331891242277999535909905479051330394230494666559776642562558144675680149545518098256187886618900235224729805362660198206782413157450374343236460911991192024826575371310027205215437477393408757054368301851935581997293939993609555265215121536719009814643848702233644613988657176739624460728300357004191246125840368556905266858851084058677383110709180936829850782250671537737976451230834985253676413910675820485124557644069213798957695300977850449062649735794762436732798177071230886715972900533271368381900714193735144466236780812813177073286284929117741684734687652605505209124591049553784150644770986564063707652056372762607610982189396509961869974333344590226433179642458312975184270875658775745329670615892194519944210890957876556325129592141586449647639217629535762671007745391488747045390607774510245316392047417262617614590054478644439747324071691081010951651396384768890744763103545916433305026277517750269150413203158409929235611202044275136976703578900518831585036607207607698223136364564784303175926491341974108478793959959310231876629870805581817701989434854144676303963502561678407418650193414919667196237854012061970437134282051535694296594452210175212335786024475341279955071571439645206880913071164351418133528810025983598261380754412346856840092325776748646829823637764475700412524989260566022238387568407815469314131609856760922849052104071930014980759758712151442856360304970419105494187982670298581142289278536911456966437892813611398657843104057801740655885787199189042148037498362361056940690573633742059847169354164397357951280092756108135149613246602037330200582645670205342379252372836928092197694722968777882928476831453438499209810387333657217882273785878428754452134686982365086661744029071305322935151048617651537471687725203783843415185310146198559824663398782011687269624464161808262984503389018959018868124814442375031655682541679795089591843648669989853426580460872144256653451893501945490279524249968541582273852852211349698432141866451810498119028999123977236724683155589469008782505342156775778542570341320235159614166528524543606632497399026385404735278182402823199187013627881175062326259353986967465508964555710780565037699512722754053106962280470389607292472922107556152716288812675140722099858139380934654348888877319220099289880749600786647732070487241364702391317412080745746531293916450002300225506592608239754205262067851870659323759253955720930114727634410070209087651051824186778411059996995349216748238940993744502176994303720362976540509360686471060579396854202252556554123638089958307026414440776430492261783571995178885789904241426475724986262022794556621878637742025799272245177932137002638035447536409096487282810171593312849088359133284429172800320167549810819910114886311223989219098918132450378932407789770151688805768798653834746012392491354934078913309189193890349311139574431278036548702449586002671490569554930206790104115260342814344538015806550906237730327296903703229881896256199821548778282492587462746857328500611082219812163770207819034671273078111415427105577802359127801528378724058700364962861470572124134799258751892657688272569284237915708625540622244697471824782751208299101783254759569630926820608233079299979289649553371557629999252571400838139677093161875006672084814128692852550716847923495519980918113827911800308427438978444344401642221880978418648089235728962735682460219824611491887790220567951696138248404180558235167850023250693369100882564759190772479501071398996259448883099806151237993752041789749778771488865122360679115558779962150656848860613616128155856185826991193692042978893158954236190881984658881904778611014686153572179519662400210457767861029017060940739587508873471785457435421807472291825456119998908323251393979153218406646252020845314178959457114493807609069636282769422987556499132277150583688067299505866327676618028824657188719216662710684478061640497601623425595538269197626420217142648808619026452087256850546080784595809894773112770739754254531798361454765423778841424351615897875568092854679737649958253486681219870603563280281942953056995892328138448938136095669045162101088405866039572976860111791964453553726915988436478678083717095875508392124503831354856946807425488384851454557258603777402037024771931828405222184913830885445373959782827504219739534841932447266861519944983562610574582685054489862677722186144138772942875432254592654063159612860001653186367237875660986285938486850657551433897706226072667166223393158653524460225301178872726644886505412404502437229948708925330457394656482993631908079295067068841908731267497881392320747746488411752547022900541634298448558081440462972953778487969223200963240250695802153040892515218274446662472126961418006102438029655159452468227618894038528990785072632234220352453556012641071247261790730957162390232323874683039601676307350446930134996290464994261504007195512865387820943304104993473145418611800525190293643967448294032138685816513670892118713029659572770669146430362142200994062404496135392689831683803202940442858887646138648666991831333311471799805286574560122730977053991552395528204554614849149376231145043602604249851778921542947107101554138663074042361859866332075767039941437804266735616094814708009762966245360154398770905913539690763807971184484735510396831899626357842910765542620101237655958211538687831946023177245598840092052704189805275619802599869118108966485720327518857037904380871352638170313736975373996510465834375699891483106184585730808648647399776461110520560483292956132204904003667543247191115735127232160567091320736604942943474955164531460662375517075287469579649823363854127686013235418886140345708750734195792893107051200032250001884342517927203132077496651179905489239343627040970885933512011766784254364501739094826637090318438299202926583500992971445748277991691242965910713162873489411353994638097667693262489502305042484317075010157384327601521139601520584699587206358479523362995856975385281611990949977831037006786774843804791245853201518302274005271500768381421205261813672343255642484823387330933292986772063053416743655099350727556199023653879972096999449718796463077039499244131755966022400181747173601392974345849360709994042098384238472882695536789768900691676401017804125754892464026337675329899061619887203019506550330222529869265526381223488885744683995290973791328577250777512377570599510069915237962117948069858085310531302540397184000775915775628511406281935814048320425342950208935400914068893839147136843617633414855318851471732756035484349000731943071689326406350760527652097425859566929562457136664027027195944708330094232045940640481068968727907115853350863178836371754624747819433135198146557145496479153894755010660268874870633036704260287334014751282043545898887902112493608266056286324980131591695107393744740962162162947276347995873953978417481126897920109143809977935147793074474010940557728427256929102878740047989106593636572095671939199377748255853056020422673549658817428105550044446801925345741969464654629605306237763672347028177547159583800760038962788050869091716814606499634600174945393294045581509970433920236406161671505364346118006509666652410294116414485175398163301447342723770142550607346694464153542333855757671573521882694260045388883250247065480180327852888911574816521855526304211001385189283340486770494424041012486717381634783904645554479585560055640491673406504395324728465397889543889140795675451840184666804981233463438725976270497754683040991587442629317839528324843107105871856791589690303826677149297945027290454683015964044402598223292801512171376700658700567739191948845511995398532479154580996514337610279969541273259159806600598635904006496707320261579551836457255398030365947049880010795879115018150193307507004686024590065023069900396119116879614596163317094803582879728456338221729983857438922653881047606477358144614637152334272905907237338343625024349887326358556446107606747303868855019218782575568058771134687258625101064025474891286197365486318230513300526543821825519259718732173317688338087974059572569762592876484663705991244873012994731739771689418018337053247714470568116420094239454898594333290214977234536719307512103190731583615553243477040308870655049106737574122413680005917846144151491608640303485967870285623152758582434746302864980399157961955135773132169141715892645432448409107912808875503412619458551899592213458702977583274352540172906900546236740114374968148611759987704287590775119591847586657745435838004912230934891943272543804835942306546493769165079501890976959054461297981807752297331705981833648973907475825448432806089701054514697807089085676344100338787682928443750182493215103602959274214846000365703986961662884110990957218422576992477100770318060778287560841287854534248224327880580096768579862945035413565289268857884406495339317070261286828815010395199079600283865885612555217932580245180359928481982151688322666552025686741587298747548356190133786791707747791539939339205399605902132970136131311809734635509951114398298731995954295394198755600326091110619189720063672775235409946166281219090638773280969352798984401091179414144116750822803743517727267963366824659487209428693304429863557791693488253584085459584648395657178257832326387864177627170233666323548832025072720713903616505742104900715837965213538581159985543613278716035712612612195789346850808797019516853209146460358511906524684216919554560570485040061022899506568788390588076834057592444009405572236151037683655385020823582853929630171234245376526794776625902660115609730417704948599068534637897945612174896067916827410356210399428874248430796965288338295766226424434872152004056499851812548970714520597800290536348914152288861595055325716545775769715333485679501580218792315012678870316033267098082381765383308310563088559500204089513076333293237304250746012959181713927435963844396927156203219693403368277918054696680893993133178193028058866896089549278826225080142238753477711178969027553355516039530088520255272791661311116779275720463451726196999193342842787026777239757997064471655541838847018281187477414357386626189281000714543574611225714001588620310009759585539258645839108339873766786711183779465925312906240877919236246455051931509839813520515271186951222856699396785710415731060750120246539510667264495946524234100983286778604881920502872138536879041991752213926754403705883513211556731016710187759260776625407349263401511901452151732260708174188433390910372841488624642211225816468332381068307727165691458516542284419693654080645358588587641279751841984949803210099644196420582544401790906172078923800604036071204703472625771728024615113262328678222536658756023626833900122111408283651076197841940880063024684550682270835482035045747955935377155322477826644874003652736678853832683647481641094310928299172122955379502766760289007880729797890011387684469231982433809968912850567276731110605869294584060344229570779548468597369456610910363550178450511733281352828524385329195781109885675799166000973244138402704257043094273586598926702789086979870168427520678846829039909632648353526501350227092033002380373872198837822832825573230186369539377926530960910410428502319016162327927107725743223598538652418564879970468997877885887420169096853643155713034139569894657345248627386890309863246960305491094997251786011759313300528416761568335716317418360741682206429463185487320166200845049116193555794547181804183422847055769919510984323724243032117425185779151442167997923259174501008483988904474568802781121983464260286329219680568569178310721754768470530622825507601515874467049824075328066654377309690451263837657023445785851152114846215347537890982188520228887059995616756668943813756421940711855973992428921060746813865612376463252156066241935700378933274703595036979653414997163886690120886725608252293360890727350816699407640506071464542695542624935190759720825752038984165442616852341494233487843685412486899557014976954865033548873462546547059290624266539075582686811732447954254157768814156902892222186222410048752005921852795525273456330256137471545935182487672475180677583047817804121658791022753654212917533513609206218393024862456265571130189030828305134393032830229081952973680891975928134544882430343172470656111195021706605959772602461651344046750542780244954923578821467808880725396620413422430241781822177799428736077508492773034869584056926037272623445124785660123827482029080065252581516767697754175962843594447635506138234388059605030689479331295069993400945867144052646763059930865359379058695467129876254375539288671699405866279338782291656178723589987313795988444674754232879403657512069993639359607943846911407216858198725717889822659514009434201071306894449147365123528978682422294782326262409651852479303545896235536049892782463882182971031823702661838245856901111323980331283155197325564769056326940926714469535572247402722122939896741170942464422127855728976131829665878528707900290850979812946005080436188904720205769429948101288779549503506960925604811878420660853663768716878394428515313823065609609423138210397227876701266454523071190634463504605069360480218529697465408711812074421032505101324055717108953015166731686664192610389381913131272206302479670562814562835560493608253527115634186945618766844848811705678032471055982655396657902922753694425902555371397681324866179932571169813718358699077616675780041513112634949150108595902054230667308439592317992896003006825987828714741498828544695596813080262051148693495742490578132629068127766219536763392775933196708227054401407389261282486976417193753190704952893655842221168476021457740261689131611919004803938852711982457673599850095363880693768334361449883601372182702638749550037642407603705036060825349308628377159473154630116991385920289844480241024436206491877686953015788529441509290344477611208010050718659775083745841044841490454454012165259533349083987414623577352674797347062614158373800439268553125402935689985548347369366931363529690541548823496696936472306233993745964223233914186032863214410223193485940409643031191732022082400685501620430590444667962833687100096490512189464603219843998152059344895390093977603113840709853063883428791616376039540225778649959952463898628014120814527609083645411073817568898772763633028089590049960537875955340210199052956718892681370498081923981403725300551549856778037574523870211831271227890608117521313974837359569452519878390895307987254101118139064268033091437930164346363463436363611469615675709220327601634536216839879914755582156708848931347244191538870935745204513728277793506048371826731655993251187355960846957444690743373843421028130361462064793812551163701736616457836370892965608405873378201552390958961976387348111763941551603924432263671792456560680622897099978430802137411908762057926274140187911789911194087061314291815672281476525778126030968299824967841212495768366213545247941587391157982210412950038457837999831506861582969776605337419853557712753168311213095682844317677750283775738805458476648303866801525192194799318324131821898223358928762270154119247724634470754452185708796127107899980296517403604079812872325188391123913971991901901822125491816530963318866367639425732696484116071342854684955172828748730655956177782339971027410522192123781832881228282404590201319641237390221433339069611355747952250776601175576607726455067561461695316777013208100390206071465206297683703368245743064743383671230280850692685453129284931798297844184836364818465359586837904012982935368115415266055931358109247185098492519088711452062484050991807477046942949226949268861782781606293332992577132195132070610478243118506113692267586543948471207024072318862026552041309618370336773404251222874422188627073129888003332582714836264496654825050204522527286662374656843957487115673601475899571113319371607062065879087011574484716869263750279843274294908751981557950915600283301579992256987456259529670266927204113198859791940905746663044163337379213267562727861542690665989648748481963857860517795501801058498183428111400186714379345289597251784040953191294067882038442586972611658135775960503234252883361383402952473577255197577400766880123522976971279225192980477253470834387981541504489879003467894298944731803731781016008118131629431059776239061901758232440139958233098267771733785228848154651848879034073875339091305619591297291696085466945561740884014143066240367251924979648914749296990109287412820422133589663416950834407733250524105763735013953166957066849268119780239472872974247584191831315117755615320124592365707723476942368854283797796491690605908097861953579331630097941448747477071714033275368989264287875349691169269071838063390819823855594581423921633405900630876330146604259169289804763797312012886126518423905457715609988196184864345876425910550106457742235200687027810649448717652827028427955956130985277569770875193656522608589230243830964158328245261224907880569798220746255816752750292255871152067980369335392734989668036646330459054359267181228986070928651848071451603025889539259775913930585459156356292087258004304088165063041941807674685222183560798507258526068520818728526327895571310165383163770241893809127745358367751255903715537002727670563582082670920708124492794975169187976315966473481088482374697779329626811565470314899275442240727250722084873102717410141837249936463737481966401935794130826403296271975971028571245970415302208035266636132553349651044284629413055409335333513448541346084140768502913628759167427499101901599724037782894092778038823332214924679827241855243215907198520502868008310707916201336714251635928533702430392545326890148954425985854466384631654720392234754103898680738196128719161801570114386917154931345946661277288159952208695221432575969397384438819067887550109968794934705779906598048914544811107664357481797930964561792313691041011768648964565355083617999939583256810208797257544846385856468625574754406592279536438714849757199696897907760860480698142096588791317230739136945374152878400601877371487553457992233508065770034049101753130782794463341796167792052448938593144365402773110116247125266837723133087127828105584903618212322726237537182736292840631891926064015512264437219127905798057062862944142334957670522229679028732700902428254864721306572660901657445046913953758192298846605981465566007507422568962578756936219801664125001029809159453853141921322866574008587906713306124968690408168822975378017763876880180327189321991427162440266587551921840986739340958642984325620268159431706761565323255748476288273076165155104945403997196616842289000364183928754304343203714981601462927272281983875325671002785914262806292104886976978391091954443616163230942688643825908105968053554669176491252602015928217457168586675872442995464828297613564692587406410758688432738097670515658104436132446252915631799618651085043675985435436007598556878515627605150194261486586617444573917943962344301204037192989115125160231302065190662836072630218083268065495548464252119613883749910612504484842660008773570552362791909916601304329014712428061425255911078221582584507446962607840329175248239003424230924889106221771235213509774068969129676006408202768935950320417717975564604230532795031445445596964491408384678945523282100277604731099358729538965378452134053870484998698498038953304381708558621442788359471415911385312720171601664544323119446365089938601100566547207216710707354912215699171380018562935020522025559851248634835612509572402258010591781487436093553026599661899588367315993426819731180704736497743922305968227379033140091144812085105644564856641752687144670985102526874670296313879270910917414105033441844556630679677876353815298738918729809154481087956359573239993455358274962119195949146378092331556624687573022494211052598387961192708798626831200814825921948229580915279699497138379489850157279839335925177230398811070953861476500615188224417698567647507170525752336363153902203219435541632231763294260849596775245308820047139386217584295061805403887328018948824585700354698303680140174775705965172245693429027641911019566865568424409436359723308879015313821065435971188600430211658053633441555426851353743971101312024314627013090254090373994649630375443358862243654317483170434861786855702063598749551164964406238936081320546058170294951733527607217955422448413237288872705716619180564417132035028008228999444143141281982907169909139297673012596672752229600687245835890061083316483055901138400088608930748653237964308004099106140448307678876613397542188524384935810947127169743024474799299724199128492748266293492541062558453687266174616194193401570869633380334858405992177307655887274747654259446010282670767880882332767554780004066252279936643781903479189346142316083536041572499705309500313420324829228250894008559886328356095224437415837794575169351290242330543931593272241357804386210442631958130089343064985742835498781521502170511967886160548677352968163644336585779776608016945290454982697706603867430218728639343483123432589975329187563044618622897753039906359017005972106871539645955611134335762753876703383155140020960242070472826714266333559252467276451190402713053887879185019426449685586392737136371299294260374579670889079468419500135210324320615233754182831364732331901420434647294400573211233248132025093493142339698512924102148592793592879870091125008651597492432492654192907359263023710061169820068707623605229803775060801078781607559247704490925894793331293211467689954884780072115074745114617239163058074986042584297969880256107577308731504696053362269575303139772658559013217746995143129295480770586123287022278308061017955271379121655311883906083203824472151968866021839889477983252093802523779837087109928394618925718892164370671456920852966840067401627020691950726187380919039366247367176558260371120694470226499806105593208475548173497494739095563407718482712875363725415421943030289040877513281945908640921505989057866206842820324287685849577550925527449678831629852391791238412032372456186189319676167041210939352735770170186470029951646093586252546491613589283043618487611515959204472869687949842326547668597430151289703125603927683722233326942855948063226263676712609890516762243482936055513558632212483399269858199336181734908830087109415401459562666911562991939176598558874738732452555956755447270032521152801581237215316969105963919536334539729128380362324471502989481381407147882345260637383368599142754419149055278497921999258310083955612450563850139531877867437640331253142124688697767302455481972806052229466430957374895954202727716475070337856337377103640574308927369027713720638475862281334848231839703484670224136772099914533182021652122814419449351553624009568655299997489097914181177204601992380131671486495768053175359770077949065266278773538532269723866723926520349278146775895196590182684847303841082822879681285290070943191442570686533820743554667470127483951956461700862083824112828629080856484826523282685976735894566781657343775562635548342875228213342066132267452693983478857258759422269619131185250840167773791903942262321278014923362044714856719801402296978974895644231914155591949702306163371255413057702387386837135214686940668104333752407993538332007498921147056296409779912377031115879947968660733157514196640053287508865189372273331170358960952927073270364687065841918706895823311772675007384901284453522084800995519401774476468115182011416193395069642200119390947859778970147732405484915108096864142632512017069627170169024912743055819046923055714344472239751013935317742054860005185563905734246796384346205017979149740126624780268842028509442084260048356804580672245994759520497999438420479354091500164525197492322861883512907140853315835746137227074958859519252812235787178102088963225942666400407362188277471501695712619461238942329935696743526335486188106479744474863081438141494090190724984730425214496217706756941632694195644445433273339110332275132139101708753438204620111479130292965132418824746942882884034455233949147614211056535099879337922131919055759249062978099260813912396338433765454743714286764735076672301981251278652238883322518162348831745212726581913866461616040310468618691243943604881766262789389273055171268151193313493280207535329028150585041943700934995872250311568136081999080935017556253021543416186895564161232977608711252735780410427018877561300487986906199802763377513014140652248906018677167195425448375394479942333634279993627766370624973623827477981047863443600886822053051173134180391903010569789646931918783877067001790562681167330237194447849468440268849396657773467819520117841663808507675210899337003104418897067728492711052303476694005705976872975865910750549658498073904419927830300736773711393382178907966002417201669775596679803751028260388336304883956455937135253765357875466436032177763860396103109835525466566545848986418921684676480292193917388451603070115655089205420363679794458123246243659879363343686631014847227091328347675277494776625217251786543743600424700511509052444488105286839038735360598091282922410102444680947385998486240740841262566597664481843660213901051905126572953824987203321006695213668447235852534519414194578781024707261247924982989495661807651437365099620318830482104973730707178269188636781469156994217190731908068984709995980839807952093857563425762524241334668751614617454229929078743302309941128229689914777901395231988358046678512430052930698604517457568234683551684382562258650964733746130027015736669292299871729789701904135528141687863885342499122582039971194033955892503781350469286896670280135325874713299149443488801937801011338641047531177384775119192055066744377358922311784030079997440117874044139540335813367782539149803332495064434892544679928269754559392060568663626771028013906560918918514138809173655898602845480002052592966457792217035471815969463871840091521997848218338123511112411800807216598058330183450122065412175215095307761575038263107005254693494317957717236654129751779945948608402960950072255415088181715767963541332463607303467228850783575982747154660741628124550410700618526067986442639384473153894157881108413976675476150898852085792757985930188264688150644529514794056312945283456596360378599251273855316289234983084988336820927670337912178604784640555462992541664798285122222098642454475725871850207993757196543306865047858986132176834656986432926395301191033661987478927040675421995828089064652488702094239701566768090409735988102424913348101933321816610693673824910671621261536474004859483515826128181177165239932269963004846839284911940246039321078854285478470232364492457697484286518547639444832925650314010614575105195706258827325323918825121824917770529590714657999628138898433854403261984918637737563676584056552336865371098027478446178686825547316003831109975454031588818284478666073324844307988261919464435474400807942895505403632845886171746093468307223301097705129515828101322512701631956365161627990438951906177813115469103033905198027948968955746207749247263435646023705517013067675362534027229886927944923345123953707587654181084734596091592233173264776182705138444410204629058122444849870665937057611934236951957962984500077562364386971630718587939669346198527138934128886862164107868289005809157477741008033004108233075430737867960550905666599961942265002098332420320034755466043389328141539186927408812450974142736650925673300985067162987408162184467062859086611178619917527168821326230430193393353285819086062036345155368701024315005071663716363162457298534557961496179912737518791468193258472249715259704395084146913124398555037350047578305443208677777219898080145700155666179414011000166148726672234910646386103020037526247135983655254990860580146354427495649327799222605354017839853034692064013938970295104116309222841381611126798220313521098204184189533196489391557476916988089240748919983067879431512122815998044811058996176895441223454299469308471433159302631455954784649114957485434083940618660623016207302034323121595879482779865423004496559624884785005872764946874461305894314700912816074587854408672105861202098124810445068215510740381472586171430114290247760544594124137393069678303270019944267132526249668895000280195659709944568304494175581082466204161305115700392253529376677966551464061709136842548737727106929251875544846937892198551746033271840671795475095979647224147345147099628431748332611035931280361215789753865007858549766355850405401578559107943864348957692011992872415419298733119501025727796750213062246584780718788796801141016618923864537885727496994699799628398048769268380188244147613218795135225462023537650712983901697266267780153752222403839606026027065864732150794543610156512315486079523974902329153979454699232525840262748905038100734493177835926362317197104785418875946190806439711192911540242449970483960794909145487231432915572599378371360654662491971941633538100942422188324568193149640400817237757642250905166237853974547492272223599380202599229641124445367956699966109380388114284618242155746093301716014375823822048119298282428567448792222399026166029865936975333390669826131858467496937050763154569786111815036462870016174745321242611564007388829373845873876482967928636287915439943856050400960669715967809041249140826638159214006512549684219149812342432874149580811989425436171578916275995078091340517634332200194704710039120909550621995871889651172216035320006164895587235416616583322253715359110674204962946547654990760109936369363864492027503802711233187468068783063612030840767008977682530903712642274915736368051419184786471708941105893855494011892090078445348197649207256706012254444729579285193686492186597594797953662880803558030171626314175950033910628726250424375271040674185861214529370028622989585173879568844925553020992370167757916841506661270662278351825157838342646649688686517081244208962350491977732258516195640238066025696337292911766847685047044958726317440303705273792041986500709616437828586657328602862661073198899985931313809149713760726190290719062378193187676306003538952047085173273709349009280439142299025529150498807342326733121123902135197983210520934335652537002178275593532858020924967493757878529368011785588995406805647254221018042551283914416420250619491107200441174758262710730091021122585562666791968079544909196940442754061646498818987208723732075606355245277324380737382781649101652123101327520452509310252983175247722309443052543596270720753980927742093094147222133143536464763902875296869667129740815686118534733449731025523731297325072934142725464129206140657435699488711691820410875873439439081150455113531681834676426078502694072107139146276517940410971670269113959514588207848521268703393979941577593855973552325650104772940910770789375777876595422344775094208285495505063732627693154876118082996989939373454027426593444385172640393820161439650764972464611326246683066119955538696404256811730371109700891892492725508039758017199603220917766581031206023387760723025214973801271547981218737992645130188690150823914248592916645817469597166903683744122766428262692764439432823235578938368562006401804807017215592297576226573746196134639809006025623216052552057410103657116110299523335273596540281161313000002248909199824902380799848998983921327843011138124995798793915017642521168981660348743887562530016544815624209516760739517816472280543702622944568500252823248417934766771139503235377675437680877248511695052210797770112119533824577365304146037947424446713215606017189469780695111340811499925034253344963831387278224673651108407633292534912732796955262912431302946384720147189528753677410997281173667107872268157473993081721594921606745775378812791127060329796537591367304527721864954490796695770656610318837445530404310057670369320348478748058154081666008217011256772606962331016925061061799337641822884281906950302948318049012165314331861141634853433965390510496500265217302534386316077396485861340524077466577510377237367339140551682061722847899725626109867315943100824580495414198221200158619515923862516594518007702632254719233432411586768775301074328167592558860343916122253995076602418305126819878683875451247830296733187568750305864022386217591908559460349773626658283717519933195067292661795319244536227389355765300043127231573431263952392745951639308254516878466667139209687676882440064981221863806076672722911607472319030035935609924903648463435014343407174566679942751795428726641376925915905106013442734312408513521330764638834327663732232749159779877161463974173695521440972097267015391802640760026546496329915161152565325780735178420215116184679739087900739974204900350537807306437270952061097730975219022452552274221903932560843476315685728623908611668237771492742758726081043397365380671488427461502573701266596501468789052405198556263065333292757057820872807409479478129220040651351472057127648863858656760301123714155326530497248952379113699526053279080539814303195751531281055368454052760752737338077872738859731838956890477432464474528696213134165937040723530568388268813619700726306837531139589315087881695844501809150525993185974522264997453328945361157370697280801773667582967939093070632671793049343358820777513594148272167004377159466349871896957061777693038837387161343884081303726160249477796230369020894176717753256097632023250837202809729231618891269154411353851935002347488639843189994893151284567744049824146647974845982529323364432189282850249263253492176864763806095483874255647369412040285915215841356018241731944072530479322006497795718975522275025032443435251134774315335518036569625984714551476116384617383413747462530518861425261915134119575217650441902843793037770204048568845257548979551510152613530276913162287699651224033467276372181773218628986264438711224448535285599441594110264811835029436502685070597513933699886266913608355590457568274841573404527549717170190367828624198341610298304310045232223438337109795898536904778003366751463316204797668033811160726077744345868604432045145787939685718683648589592148762340524643887475200936477337233543432932165107190151494585344712931214238918988976388909089993247696466875157448832272172024481225532747813705228652644391000732585917056789939699277058453220305871802087148956725142018806118583565991876547366112637359518629923988010597465231437970932295172627197653973313479125149347275021678810797073169535089681313130172883781541363532772056657932889675929804214035943414863201106180651906405534744683358737426250203328465498941064273151375615098941658204736191032973893793233892883039419792878045412227389673533036670179006919001423392901031323822735521934634134808632325183599710489346206546102342478495135556258455953337758585711436305929942758143227511127035373978569306855213020313150646296197363261068478486331796896956641169131979197680252961704529481256903250249625917430055657967688658233957720082764070863657368103422668114304726210740365142160348823994092941307090299565196672195761570704182563792483618928248689354819121791970474107284174551780313992837637461472622260886560253683910242429013864839463069693297899919792110811886889312355802295198785357799943062633945000179544593476387220451281621619953521791404876081587508701647959799622026612003758807630970664462021783673834245565814759208464948049466047804590969986106552605814797359963471598087325273598775386051107988147578450522460516749525084814896681300761384630703819455215408587184417477877984427161737976212999861679400219916469514731819841013458549063135001617721744898812614091097414975895883343955842879314439670493210387485790361868968073233638544096053338579589609888790058642595606559439677847105965759191477459018222219501041349465681716022089905877340549843009193016690426551076351309146652991387892928040534298613928489051007505051763259791778233954370573804046010626591851108783386506680603219218216277383765009746921215484875750724001432062007520636350500743660842042891926075878499944016525000776069146174451816565122005396920436086152654438105114589667753024331056756856075639552534241299472027955890099839221761011175954003945371502440959792570677580229660536462962102524120758419759064899954070502820994672199843343594815950381115942042688391442167600500098908516597852196787200020496601903389621403890112742909776567470029195866867737149033027604591103005191009555905669107310192979511942029923052864187810848127671531898843366139654106497493103292906825135652471833747961109876279251738450323963368222818085469419756608631016700366818951344573554137467249730381529194544621036323553128144406174888891849660341122567447879985108559710652102016863276796446385529785112164785829657180183735009421139956032182270812798466127345986979361292155294601055503245552545489608643962471327256410346921186263314897071850963691418097609038950547821526194329841890586343127639116842965391745325251176400015616569150001604205125335877075471171841552470323829496879538251164262883482485166076082262566178956619658194980775068305689829707289670141591371883514011052580209488618262098868753687248066078146342586294174031960234533013614065373303299905250545860685765972913757558789745225642085144629338077689958194455036847789149924974459354432669140996233942842184859111326016336376521270519611250174586833564754081021247090788763135900063126103269113091570960900366955872101211565768969490504110670334032205952053320059994048039605264964376271186574050653993056246717248768003279315659332662739201025085219602586182838732027965661790728566662357882501805932947545025095180733328860865723035721061166369731361231308098354113630408354891965623202167047391468096446439500943735338340795470418084593387239317157080491601364642909103970868399332161551836264313461142102237729620146339681802935371053466482721069607942261516433050778476447428651438879812233671813604727864090418968325573727064094813350042488296218419278596326009009395300230831508719894922222290934337386906526611412637884590974053610663602674636238302790569501509127996507947830271962932150750438077799633111328567115168408725375290781193218127105337789480006424725069710793771122220164377240089797273982970754852302713901474887333084127171715108887164878741868506465884393048716321589834288842890849170071372180946800673484299419355290532752009776023297182738522585527262542905901171256428303539830272441661217983110385213357563762166406034317831099144146630248684349560886341531366204412219064151478134029704591960205854090175396837232799315390587174817969452183188156798849454659380865129089029267073235094891429157606440773685531632646919912179315492465490682606945568047471603908894827322072327148685465515446354123252535076093793814712479279692021823444844807571094864099244041543029422192569859984750829756206420442431698227706621867099226513175063467228413387100730677616397751832911266055240887806571918731326583614507190234947283770567447356572174299494691384161115010863243213890429743872442079569456953611502477627689804103321720480026033159152894921629759043115455842119631576821815875077625176069698173536198054513186779030447702313162979514266120515170792074823099704381832240769510128491289396851482841869488255220574421972943700970048798738565243963422942017376276881074242889259104493103729836644762366095394262710539373260855257388784254698247140244999243481174159683610142088820599145639276622412961848073333952735124260581314370625368653890156719773152374183997889694642066541837878444171735826875372596373375076681335162890793411488178447534787144330376170035644995976261011748091920821977927387858849775003294394213889843322587063577149046682370918301055340426407456044838345231825970808698823364306067150721633512713244101614639194295416798161589882476124150272559182652076798315647786906675558770444989892340693078606140721280719335274236533763498358921405934753238707315329315996945314903575861121211445784695920502035513059591130183569203138851443371529425216293320350058670121633752129558597312152570036526197999122526315121633974511172540262818903452537443103023467602688697970996081073434587524499786335120504671085519240879739701247241851014263225612542732000524367583692953256263570282886420441535426929711341052610585580182862750395669417203962679576298176510591762416527091778727831623981508127894692974742819136671752439566247274055813901734991303069526570982447976574549983280789178823760380346304128346355834292461559769701725875897874725484322161806714170794686230643735772650076724161397912248463747752881060430355169382436859681188845699523062129838069031536593458819442365349656300939799065005782737967087930985675017499154259356043218997290804519595504844379183554137922766706092799431207990077489844339628430370855099591212692295894297963908846550059521245835315405234530678967778470759241120616160773832175405600710042992721529103557334634653995573508030931593432913786807630588593154520105046325897442308770319842943589080557334925241352071202630047807320515712203257934800619179547925954276384012481872857003936491455325321999000618105717481411786394234280291511575316730176759941263681446996794174637502662849595358651210049555485608716579807301313386370029746559807454648917057518568818772169728023267180064528632006164473793417790631391527620383053258531271207785004070011609165509940618747290310458723547393753789615453461786554280901524483984924113864442125105938817922539950119934664515566479066488912892063662062097410506852609475155435911052139700069977006382219739194131114152157904622497990288503531410921336477312511852541342293134535724086511021990313701434218261791751525638486032898465080421935334700868925951150789712062065554476437757691796993798956922304365834106563476392532098372615445501890537346201500854844162193103615322608542290545465040268525181461785395430172760017283307607989949818401136426287147632693738454768953542306235582166118633390700443522716712613996408904034924699543733586755416439510520829537442835812259503810999228720203520614351743185190693763316521617972886776542180234011564762312676556210401416757633874437811125631178338210872571126039320607328349699149599846982824997668731594475263156698592938217881985630050334574333143381467193633447087850713916569203821396961208065886636195067792688053498574153754442893374950423830123798212702856713966400792630916787379539916090793146528737601239414528505720058562232947149669950939591838430313806334032405867997886505862192918893208404908279203776562489356087115501454744395718043378270094552363135966043126554692707076417220504093975215578499386324681769284990507491011032325989721105525020546580589987218169765336842885919835209402097052489012012809463303679303902710487933034113693941897987608879063384030196990690413531345981542920973872845414656502136864715357494330741705757829926378204945586968404963688980625469141031667105564799659213279554492591308867207510282506657423621985989561284484818273480961593541864785485872948879525566087225617763678153402364771394671654930076702959035175498455931635735404453293141857234198488679944232514749631213209484186967770672070587457591059021855029579014509673953405866346284908006821545933891208403993374717434818141698902860296327078028856482835925313870836903676711112091949511054706907520394594325750354821973559984264900041866113487066944573329975916867739042787219632383789595669074936136650561106635863313593121442901207698441031867317608867805557331756787256217434029769093172733819531756423559306831828157882436043697790896661541444606072620867414484627676285535006129698502103620247389453722995675678424885520368559550240146126328221507736255892873449802527739709000894894337395773107747776927401448193547707607063159865475097455696922131597300419209957083064738610064122782877820398529699263444997613182017828807057688423822372484629667109219794999335394967301551375494819144107725004684072022092121437332484889315978736741793036353155634912951793566086280133816651125962385617493915025021612397566704867663126525074046548275910579796406474965439577194791361342775540034009517268507419783638816701372057028627867954777032725822550372381565643596740531742773186758521128856826822725171744088625428122342311505640628851712858545854178232327304332198870834552622469987617674519462341729187782889133081362272493765703502974057044901643010706186452376837187288063491414546423266397771930098903645167107127526477659810283438264053275770348613156870846298323025298532950164998517184250821726433885321180476872574751092803233458645168506363702027034295883018806828056649983813827079084509344001591494980842880931130237249395305173374860323334907711326872772736949316470747046415868714361694622968206669112037469496904965717303620222268037741104623637265186505182345051837291107481464981596187021530763504122080761116189630705301134962009002935173500297932869817741822674095863778785465372501874784027913876667058177689327592485797463879919171875640826629640013121833881249897748428755089264217518316318519666194099790878771656717735231094320439875932311731575881435871339724169149577909848457519027885205450666594881707212007297225365601823672858280654774234130753261360671429998661458664401632506470086144324303807274855395625364317918389793460279632050073222334065202448094065034255499067469461284833864819438205333807076895824298484706823099674351284913335641200801835160674638541677845423391943537428745216558651614736140610832147419153260705614848475862245375390612843781723633871424273723052629718596747294942529509470808465712681244271579579281619128177908272961948515417040837464146866414452655896275164630898726850851679648818655260869257918021915605524543246015192364373241474007589217551836182107135877402435210195507012314702537246043124009316220353158556810366073578838603150446454201922661336498375505154085341559608579938486603664793893587976454244415491568396245992697273313037499568169488782197379044579241555397601315084517665229271721194923646732298863143136469372902445959092973282951175077170379325230563260276478402341187789669780823496499541084754117316769265816346587211636871363017267266008743076688288115684473321987604953262999920567114715572221196473659340503518338988883611813426246801042304104621370424782565221237615458014825211337480965484504191821490718703866493521566954357459124205402310777732348127991793921142538095941628418076671731337188290295307757209091888974690807722877335555624317653011142176612971456899137072245036586234701926674326740871153924309279836212282977480931242113959401392263469414598313100140027899329410533227485947969382184904969323223604650294539335694665608656368446418771677259996692203927198805505672771007767581447613679396560351424133543669264301119072993282898608245389130206718909073167660473210057942764099299879046867156943697961771351477621933004802325130238760308127750588122465284751366386708394224442168770547981449481783142230227221673908791644280137626926812817886071234639430556063709071946659194533909854909066328208258960135927226624103409982259935822848078153556905360534287993322333438701929524740415461449600481465714026122689635560329283113442686978144034389363752248176888313605139294352370234645261495130102720053297961009029043766503393802926859109667071839417485236757736862296492838712968628559524536989463961886086319129009989779288891037846583522532756589840297669295431665439515674735481606618553129259742702303346844176373157658545491790585997789649692856085164011403173186383932966401007310603101846501181317829520475089687036758660989351905186167952908307136534861192244514435341626670706460206202061287577911237455736540827433453617532747899322945346136612746496218371100034706149646068559748593347804529856518947379366262982789546753563767680517678689511765836643992478702106092417187623038825915178313330030549358233024099214531467571598510647611565012754554378236650745464517629414455202545064723197465306804187724726371221438061181267358998126660466685994160148017573415899528624777550752892946236910276323126817726741241824482185700327249288387326150852439382855968767386831816940252688633715479260106069272732444850410577435703303470412797800365195291749714970093235969677661174348773713720164324189373455681898159367822187693294036397105925376306879313049940834132048806003920787151078072408615323450797880320445213198632760835920513818339911806835493071444700048815847224534560087912791869613758596266202351135767589399292143278090101131253274296507246713032941214985776104634089375315456853270321250496530535418384836870574930644402222491907468862069606661892464364803686357266130632693024558484819216780836735930353396379034869059053108341113930302358946882258373361077131387922623902625704343765012941203980346270626706056847461916705445830389631895917535627782352326279960330690273439934579628000539417205866239709889398685107727559425286353604922033637682598123777903314214484743292241496063771212607241176663806523062796433776662129897960712985673694907313203189600888656856333157860922727223200136506437546061366177964983357729367904661913432648753931040871857875571359289907595252296229615508115644466041716248380638479268795930218263617705115502813356190653155532761411339996041962358759409526072252045895139235594722631707297809876930022556847589877139684371088805490717047324252335934479366534896924982719254719135964807646291756059808998332978629550027256755915179936541738450116855957006231380479580779171378249459185186635341853582789856617189293646701425330000824105716401867498477676192242744841289758561791920442853215770723350599088781729946529270072568936131296567353625321658138537443812157841993246344422708839979107913176014403380475864218033819368202218446848025285550888959592057286322218395839256028205413153404186531240016679341201631266185940481769266515449258058172157386268516511970701448365937209377578578267728184467854430760855188313723515064139129322677330604671640697346433180914277971218903984237678162677366781893536168377048296356979665474535092811726946345838259512564475162451666556082315551314072655753724224248938669695011173910149813938372061454105400486702573797966858652293671810171137584014923971765270840567846223909960406679778011591710911462344207656721446368220097281803722107730618364334785668602094054497078908955007125641705232716855394244848610625533498873819889975285879239647823011034603405538954124676153261673085280584393175834046045959943468891558386142515970598217249596519874902686583123156386666328403030142252288342786907731564734751455451997234718485686802361710102254079457336319936560971615890591581963535326927892487242962036999646522051035525284337963891519503705763035026175349064066804282587487743228977591081846531906848096809376574161757356004213668794096267451589726689288512490560868395083972320262310563157668651105812202764522664543502381153623502505430225336206153912169991706767305255354988886746251064158888629701623857924777029341120602782177197103192183552793775069010087914104511482133572217924579885656244314795175767172921826717511392428055995846430474924186741263390139437318263874209358166587557743623035504629082587167972145629946946635669874986134980822635491471203995218518607264780615984791350458705011097094386649711608982001342175579644808996947090398590690519551658594561049642746825019094803601754890534169929657140040488499304523959909013673322001121057746773532667698968882123666545672363590335271636905636834610746218240431909502665325601968416867518609348967329498840680786025267050163739127466192027351957127897218021089151679226077668581962045852641261835631421561119418337465228479266379245630141044818127469027455252001863108864223169725244583644999779617413098500537764030630462679642561840288277024218892639197325952071260726640025861068619941181245639162496255388781418939526355655043295585884619608276610766723920041638179278853785802556376069550412715664528971697772789178761243787974371306484411140526433814940337841984389024309922906991963292198120694506857606904816856615636792906923021251357436759144091735431872584754729055971149169530461129545793697322482943870385380977862966317576895291025338709275834440407952631528011542507143375822848634451538501663995640792272656839446413037027719515817000356844052810924732949366866714031242086084052821889224167632559394721343202513599406971293171082079237011849942932241912725745997711586699244342584954401295709547311119968012036559823727610833734253562022500208313272312153206893401547128439568716447257329577231308557434846255776952091301398238453947482645822300113334429596087865234025954174764601172343044268949965530911856872430494927443447885310472579599309607020407592226420526430336504161286906665145980085127489645921992530919172827295545869539984240134712845882381097237137733717214166010030469014328547303321117181113003368904796133960112521655262565088433870888971850439897750529738696783117662666173492706346081212454842320414882129955062093241853856127696987767993639880940156370267226482929240237549878374855497074793977998109064995903093735865426182402980498579053890667871442876635518239509443869689561255734431779359382792099441837058680361833736195327431831616175614937610852294288323490456464558953612754003304359600657233506125130112661219918387120346285389530710388143890509744507853717229460487306832361678099561107731213521897240854614578370217648373486233404025879709252484126942619475491873178088512776487267411991593817824287424155881233713844133450671783620732097993191524241347684168949214584435268912684814743272514109348776658642437006624800520345273090994528688976093141793512458077464320178773352035201753613843157893190761937420386147908059761365407380903804147002702120515284230731486297666212325900454614851341087897684648057208360890665466730671392388848594762347813601391426569445718092062050250739786917814223828186916577944377880555417890885643696236236758256148760064127572347865020018566659262945090191605529852887013890500745632647840843739478362017771936349740064689612653522620037818150277633360935070405958324600008445634639404958102525433643730956455875373373013855428677549970266545502341760687529801018471032367312070064142152362939313143989348042345751656310007786288270992363241658076531994997550582595864560944929359858004702387035898646852074406047657158668765096517950929668479435667834690825437660424795986700285275193427868836323902389586604115891875692891273299538436945387624172924339956279709973799391650373155538203250934381142652693385523088897047132943173155069301746681838650982442802909648925018187031369144421837688107212270760752294087361385517408181699791473829143015814376492523748360774417061235353281649961140722980120194986845752430968943373957188786323908943074071376335997303418645450353690860576475672985659470841625149064589813978680642994262824662082915602374625713654755693870238983645057199892143178486366178074355444245622262487964347938655091803199482707646218887994213047208044790955754502033617141241447365403644328897160192019473768073334731665453670875255038680540994120850280781777717163871908726479993279092283715505962753942911465644806796113549267608479005132962753908848085366035703206867412309838675409217511090706564229499628645764490268495941666106400100080146403919387034777010153939524261102428264850717770829637984112448767901638421686822026185459618679649201071021716550902508264759594844462222664905398351455164857345437554031617720557329462625728501167897819091456984802054493076469786963439455087144152316387096075371778363573777632368556153908054078134928288478021430376702156283210721168368292201178216807597264736969326625458860332022403739544402722257794522792924060354557664574762040161690590457864232557218073472284728778984365211236580324067964307326871772550384449667678635797040769283605263820593961844199291208830089690627553536633548512777205899609677624328041960856821821523236102870442247733575041283415772906174115162633280183323517183762848902066180897738861948365324490229754079388082195812174494846547341937939703887671356837492271671728634835226673438570236192200991989847667423802265023258014690037083153736475078530994722146443659993894892051655795839064639962836386081518267200297187563455165473264796380420002180534256062806697397207295022710157310566775579244812384059339763895112629542636076625330528785400918927590825926817147636286691534681692279238631130663040824004065400025749964606646376031022272340777820558883247368302229634377076222657710337804381486919072935575619515724656573853992888940849672517737967266228676105162917113003645264754059899994820369215777381891279695734605750455989503965894762667688865865601680612708267796985227208395937133733800677923103451651481491483587893508702349002876378181330989210084321351874302349861999395965945442114705843730808363558317042925470522510344757706818707578690780670398711906148540779749979773438142186891046493574590638569993084988320213674016599899821697107517901751098896441767548178595941964357241146766365835923915697990390492466956365728436182822217689732624958458216977855780814397443326255328168400377240700278318832109310226718638913572354786021471134670767212494092229997380947990631430712046963355121459431681769590297963154461831173596757221229651430694012531718585902621765719103187546936307278701464734143005281646255709160428705717294249560212737383158462158893377676840345781324975884916989979779585281055620539615459364999113367893621466502064348536050623711245073221247752723908375820251147440148574539682061143125149372295298106477155779182295032517092297928827039398835168426289548784563878632206936675944308985803825053650593958101124266508051758063265962236351534693830753235215200303686588097909019964306362584202138676739035668659600750594876724527654641861484765688597376171617700392577053515877414081372933698194004149650415356514422475527077305472165925162834566067304659976787113398273521740965099454019905600191598365389738969710577971828132737923132896054994970057733833494090912091221569991814268520421651062382971778729868874163555088200395137655873407016647547448709362654718781101539512408912271785048264376337724633562277708967379429890744482975675744845641325802299359622680948116566128265806284520624127858578368765344245226550373401651618076450733711926513343362294391017578892480746608075427116023917005528169654319878998009048463926733637013429024374114779687272120790587939332499535683009258735893177644908814687504922587626865773831064428350781503836652332685000961907671423555722414600368528061173891756091299364312484744426764345623540301823429707824906888185502402859335693135495102656664035835134473238317107403553068348489286373564977347333535330636944351102146113693400605403008916148116096521427821734415205808528758534556246391934400172632839593110522068013536303321409187807811576999010633734650156068582610673832841739936924485212566930416650970674030675891314336956164171404629826399057500516330531915632452507985601531638231734246207758313259183494602071384750949709805757954382670089513654472704582128013923786752175133405059016800825671912168728660458846788882941437292960598220873440438387844392809129810416258357244895086521189765872205331004140992987439787262986076283477929043006850039452483114599354819901056716332945401126126324098393978412863732247750717454780020352903084866703097826093670647044113175662839803195648398272792398838375750286121173621867051724277691110163753147845862267326311400810647873178684544197842959282594219034624735994500469297564943763470322236032877492557763841762403562792937278653836073264842711657435931300343884107987929561552553462953434996704325297061823338338255801181147954467069931651591586221444464451065933782529821398059970532373554204919240725365862215149269228348272212471740984537443672804544154799037039646713099924826157276221879636496531353185890687543942040817431135162105455280401880088415815521175329571302632286170838471696478693848172944429791833450260936792859876681530240831976509434314325886698810894033170464140107977176606718149020549611343774644019148239599828367770885483513435842930643050997177274113754288019378557886839685802196367238282397315517785475654432823436447046973557070391966819825182060043362791999100796134521926690193982172877424019636944265632027977228366689888405320773010620283710973227581916373708319419507383886753827354198869705025341226998565757206716803485148435524898363888068711881626936584013837052867436413307020301477224148563416277988706676666663626150449526113637475693545117102691773367541710587277209606808963570059440074903542109914715352614981384864846684538508173241763617432827140242155117516618004545419156920982364489914426548605442036345465689173634222209057671666855197555211661790350565683023045746066409442140340457067230664107985240515851973230324972934210787606002438643660290441246952986061897462026671159954485605814777170898579842577848088072490425800863922459650464725918656544876819352121239932146585161058419860464510435015502337368623168071276059658130935593419458989475013008288152180578809660855694674478523133277323208569187425077979492365978385173829181711962036448937799462162820904704436460424279149908162858588497448392027284171728767809080719718101619015509453806792112155424954956569684544086107576457067423817293893041495567880573494492031563780628391444806622535220083424312327473650141542019006110290729377692278292842108048069556804931099888334292153035280109840758606785235116085754345106314169539510862159187587445892819429219567306274281302112550864462828259342313888949933401344075555579206255966120021576311123978303109446089934048316663787278924770070095399339681513883745764122801990226913310300604948538604771220001839374776000966216727005870219341017004500322192623197632103669349928604355222947067970373333109486424306478946177124804451171626705955473418731027252045385949972710848258636426377573532669281413021248029826974338451403290172397518667524809847823005671992563269930054186514677471682297988398214492395548657952475193793813559629513888365969029894752010210572433099552930164707112616782509030032948653208618035285496966684212088903760337615732188717423221909085930437554816645808704479384229041870695590200671107363398514862721608156044729150688753366365927294041160134548002553744866266191562494714190690386282225571093295835542980373809363905037998622395156394698772154977493934645728512727557233400002889484388412267766169619923619479625657746933103586633156530355590226562923550262289090128452437430524769743156300643045056981569587037642340510784286766328102800620610483018346249537347492179775960783862581750352145139723942312524368602560583414033976341720911601223766428444374076035812061444458949705079251646616877615956294719792258733136499212694451089576013792219593113744878291423442269134136562792893221313033844892887586495428258982899667935322367395790183277740965003203708574688379708107360796635952863445718418394069962368156857880897861292271380349994261457239718027188413368378114988368830169997005332099901629936771596034016462336880394967999628219906737386152376202380562372686782587897589647501525495683419917102512125637073147465979823903413408998876267467424634309743140015422737512000888720785681006983914560621816064415920682177285245728236317555131077063652771550978633405381575471293655283329912346523244869015733203404252179377555384288776782279284418696596667860095788578520248793995849356004432742423112276889679375903292366051290253599674434233969167873753325668971959958641711036685005548593876228694268321961506075206805065819144821215267743953337815517949104989340344075116462780159980998007758591292428179777724033687012653063708238127632099419832649761917585463283940147593617976970889229759429749963761417558147047268767524782514675270007337322680262298313659726607616358076391623480914448393366972916227819421509819757726799876074299218718629983139640522345402972335824863420563919440459577998488517328450721184228704686550592139687937826631719022301722275459596246486302142097066287613515910344467325843868474082594088396463348096576443042514915280873150913729934466298107285972587720535957745732221463451492285184252307741599218253109643958784593899461188809337275148950241443573267597531502751477793186310140159388376876366516683749806525642569908115909524029769264993431223075612476277472202707230424447517729225460948239434114344926913699818990117979779335961521944667204982097863431052377232117176337009455911826629199507209581470232359386514423690372995605715073927391996876500489485154125175724302517484232036634098955316675541900152898627100714571243020009866367363687542239360786320017942920799508783927876838738520148586682236457268899438974396838592930166481819235937149340173795495309703915515782052709770528959752142356307296780452772222727574215400821089406547124007845562916421347732755914738088022015784612487583460817352410453269297035244519137601305501802309005848389686721365742222299214443480360467373601364459619075064839337663280263541928243567053342106273535433916671013505552663610644959579804616578262493889541091266778261922982732747396152223708513712935031585843182275892178052737451723985213224860547572790125987418459203425811854414027274392221336078094478172456500303302049294266859732715224047639269744413447952556602274401963978997469729537885431172608996283483969452446925974025163384320099022816299592498615393634128858111840259325911548905973307996164027302788917943276804589400607937931880174112112631212940954389104451874717214027452263749239903528747062274460270903665321364518803031880944411065589592982605941146763448397627745456375140996148332394381376845864419632531547715389208978686384230152328445449486172226885473012491540131090020143789942365510328996373139958945806100968248897619560936045578960262927582711644403448681253217429220426486437597419165715714988924161683806014251456198000382386998112428562175874669045987377092156714913776528036701636777493937513180543399748306783315544843557970583326729294629203572424612777326802000965651100327336658632769104026618746899640519908890027091101083444772309342071203433879445705258756802988627157366703236905667431012623153868087448722218015201718168291853229385078897929059655036799246462036990101569720226288557252927443669927380367199068935622674563826527486865268715039977612309929484205293996463003487288565391009500666506441294424965588507499871531976447631177762402574309419275728204431439417749890287820884379275474982196407625864475550126886491727821171008309675670823634112114292365914801772279329805839895047153324237460027758278267173140476222073858021301882730202558879678583872997932606215806318197816866166221648837589608979831572648731678124217358073611891282552643291433001621152720803177559867441238957928619463028686376105125656052773675224380650715375685721148450355418976049681933327396747586408166676663701376414107369671096995426225858647501159571137580226740480180655437458886061327326104018466667016329982511266730287713525614367881140730409740469087071006383219185259896410250033908341249270831949854776916085797333493653232581373515017487781679410378982388084823314073954574813912362441183703248437245787356680135316474292097041841069978040763928576168899846104498064829302697754438843709658043395878863391953505309646503372849496292670936983339886614515907658189525576905430434069167777526842907374062284125228648065247660593009311635781571482936219410493022624537823448964843506529901340003054159808108289006515716654553986524909579523916512744965160345782645550601087072334464192436049555578956945423804706654680821994895277578860981584779541272450577329399794270279806694921456992934467052947543968856620938548910036198344775235868432216926857189115231878185957431310930896492843896802979470797031922321596249224448830609225110095128436543155454008025301884204181135092133101349860481571461697045346840300911669682196931396696414188587110941816745570221233191545205133144937850288612357966948428168898420017404162003842067895670685454700186962791131321812288222854463263782122023305038573031054553261278645722814596864987177723091961612811910923149446875285745099577137102576080914877084355179776153212039474872776763820871315948951511738719788181599148827269398529722580501884009491864171986019169292106600478098083088445866907478926459681243109187132832264904567690049486081113112895135190294580901252878164531421102405505634270305663109660277523965777289624948133598636593250855970859573807603651882884720436972922313992326925104683652506620635732899983430217017448548473791598807789591492206085479052706546269002084053287396423485484683497047668635021732294222226238722309624883415466400230155637022879883398529243103415364286330872647830688748057190971267999972885745876007332487154745300624422878599271250457373770716984713272270965855422113787836058437802234598739376539825669136894664832529296699854289457077048471548320864809085508293106219134310237646457496484122410369038258703354259255974743837661972732613500207749830547396633644566057827859425425951510504631976776651181216892880255345993442037978250727925907080915829474495847772730347061926019152422312392913329156861826531108196955674370180312672816454329243049843497389797116033790568353605117198471715960677245167500142253039383104320629538675667969077714327017441410795017662199990553675054405070517002528753300599767462500413357223313747338360994869469933146199169389003704145811927084987967852757233572561661421829299069015792514322313485599427645184272811141243840064102748155579558848390577407911429935399216535657989988794814530357599928702765206352040489792811576024371504163970466127463376066728098733359550077617426823044491849860074996750952220498317671876700289615349720636717621595890692102603561877383576417576023376908901000592007911160364541686176268545186474658347541213357455008653295788156624593235909767026295481091290010462354461048333091019219281199352812136985255805028145153092127946007141495961880301275977222762712933871272871519865084759591810618203771839167430433566704856599336407562416438745034336053470011330414459872869571284841587631469968536977940970074229224513449412441038146414539753271852763586741516423965514625915172955600822722595869827705923723833039847014189912203451165640684998801553185335719359336870048294109566018030987865540529928837483972176400657208803005668847368822997152057197669153247180168954299334089644328754873121954222146137530662675692438476709312785046851449354174345014986789774087151146374631360840621602552179860251473782541343359845669672787597248439327193432543665447755958413907395878347789820942477485041179370541241461213314047678192034821937417415025125725903863197547947781544730703099579792496806241920962929881220314629207038860361910172478445246558531845482446253249371634439438815788911136149304271417556100765582918137831420197442515381579687201242349528547790918936037924455378600649852190201913643752810500042161474080462142917946836667668964344639814215400107058626842235283191498373955794142610027881210870481613919739257158831961974414706421158029734350312135575946741349586928418897561645133508933721893982600982334496673763930101408024504220027224586329141483731490969590197669591277746049667133774933048343576575040329969262887695081391521516184476736831482061496794171062474242112369734591612042625205977732997628273106702627625521582337105150363378423295785211484184286275529276108030710565993109304986317311073189381910835965740143951641463939887131140308325832956395795386394166474008611366614357425766050183013445844609211556973866529614990742451366729911882650776380635225319813697361618116089981498331156175314147626730981721081443196159277889177983763010277427358980658970321769562689561924909772908104789288806927636098363693082058215475785443343447434537842537306519564839173133071053884595073844046209320249070407660429599717310985753763205837212796401772941231279164621960387187561273350472386635950397601112020123294896865752749207924227432408809006802722573834679242669404863254708487679479459330523962037743019947190223532479074750542560395705200991810434732025160865766638862058576912794673864574452104937905100016850598638534587860395364771359093798151430606967162400790022498112748396517644379375552565980608088330527600557961474878204193278166143718818324447945852196895989834541366467447186571717636168822567625688357267776603338053989422618263987334719958796869232391009424061795565398899930950957637273093062226246583278082815634073531671050953361817413186270928339748024008227595731762157398369950779778492674647245615253887770720840990946975404361775610899877354570075497715969161022755134146597607019450047881963104883075724580151585972647438829303124834658396015313950107002336516117883456011988049402956217124762858069941720172537890351032044741725695493771143568969164564603679515998318944148173632711614227529427686041902703325433164143726434172676109787550760743757173430055043045938702775698958683092595092437158341434719470579781857879520328237288880382537372802061070459218616332569983405143759166072352993716495418482171859028615956683874826281116616540290622157405901497556071641006167940826367093044702151507014015524627081642144650644737611878513104735196061696676183643636919645831560706823618669693048534647165196599462423176862793001901588767944962402088009419992742691105133029156279995071969028663297563207061904379185860575804273635741818469141848277734052437363301525353807777546136481447131474973295009737394215755837348454314947711980500536288547881519309909520901712545610218106647626125634228722876017330554546901235886151721783202749316906238184745174993217579910689137763989349494345534451010152607504766298974724686986749369687629689127946539588947727248018394524780046276427766461040135392335901311057981521283470229944815315659900957720845701672060265354795337809461697239315236978367908963047528998572904291699687908722364840085067103772009723410193287286427842488603342570085627244957899993846877557305104920525611933784757273124555619752595977282203490481216637754235847034170732692527840694007601510261195955742500992778901004348322779648942455043761702220776159875478017324276590523121036572323341255578904209180217548432454377385728174184272408791978847524934377981544159708987616466802371336655839916058556221612457045334740132426289222275425067793267305547212551178275547141076298655117252201761078994892430399498079818255271114925929608324879936760958707438636255509112659377219298302309065475186300888112761103882878121900496132171938293286538131554963177905955970586590428675359300118167947116608655879777969367322509404324091197934089331089727151032599650144142004709388375664853989185275562926688164164524097667472210585005466428436368134058391818975577502767161402463907665325893749619037656625494708041710277281918663340811780656078123551856639372926984861327545096719253167006652857287394782356190526631061787662634060882931497404059151117884452658962707580362839877537330375624421815509449112283512584886189542817136251745442891289067924249391283151869282617001265943109445408665327058995220568030091250228808805354563360973147681424096346811851685456169245717767983766646359036810176375390329768817239899063450400448087985027582361836271865005089507610413181941944669666590363951007965535050081190058206647533478036260975346054235514230740833626050950920393930125853896396184070087077510169507868844406863135068632077768096135871396828098569595188477100227874346667499628436179655571789457560637166968530022438191082651896307651080584861130753776814884297550435691746754522915020520203322903820992781119996601724594690313028047172163873013276567096154260216859556034618268195949283983950185675022586298385432741215618474542957897610275385628234805229106855550937806783839328086171610969852294318038176375680640382677979331093751045260184341460754532933480747226953741404964178275430332024276038955284772242331942934309450461672990061779560752795406539799931046667517109598232697765360981856882794378889380308268166624653786382314439391510945116569101184875291913517494795593633381504125697765664742890517988942133510216771598113815464572576346534845902655810332212295722262050305645116551763494709998936978618153204084587721971480783255741993447423716751580504277819400896287714278527936350325814121912481460609787331516449410449833531045804425564829854757469358329149046441204855404038869049678241141541731012190807147732081947987572840208222417168834235304640783190929897581050020284739488254289281952395783838178900885521260561287270765075902416309334125428266686076363336958708060730801273313421799968418568397485300155977180921412813785565975783996074978030642327916725917363173358300772095770426426172690662429575134729917096918758596724204067440755575364713553961952862635839484939846139713585236836103451356553368768408108214689905311255447567412339792637599261971332740580895829803189823351143088257843327473366929080691475827160146714792593116977975145740879221733732860530827354456396718166765328254180581822294315024569864087870365822330632969893730905852277586398912978684568604561471190908470829610548846780075930036519906295082752898570001263561141022511763426046582321470328685521176794566766892603960385815244995765345979201316970650818879384132037611079722663655568683411016262010299672650249643263075793806147631674468064550529031880971763855887985874397659200097810321982588557914267318835041225074127687053820003100850619357205268385805556610318197206406445925620973944644116206929914210936873278095864495195221867398230728230234444118441546100947296991484414687787393290340334722518041189604295143901754182895758353878784303845423004568505660821899294066603481317389242723660660071955886285208304252815772747375237234329969450566552310375462081470224309681883920247914528943549506172327273159947573967015133781743757177848696155703791597630105551656364780120968391870340804958563971300612468418475745348679933640129982748173290505267671686863959745751004989275945402973059612988220494056224669712262221548710834484557714617416164020691855286441251279476345102586944795918823201736145313498194419822191596938422605396541730036475299233540567255949222403342370125805565068459381517143736382810055318394738326931137084305346092594525027173234320097167416356374856300107894797402446995928585901854012215358762900333459121892603678974457798994185909845474268589956878982880125781464404590509656275294373330689617677908591387182234534523545790140300446911062852328184262322311705293215555005557753827507163865372863199241645050569232351813548107878801337762555417225227045622788990130583256309076731351828180682235365535276303336290292162057485020071418470662269596771327704616189288288921683375736989549362772770474589594688916464479511401296301435201536906028306868094838704415754472548280949967542328693672905838525576353177660073775341338821019542960211450524109263979781636860132984969886343828223386180746430400476873892605591328454271982818843585735522403192058732536935949447635125835572277919346257605248336020301239360899672862539114732508612437659383186312649002585028430758981026033609140947626595586443513351663836259530609012020456108457598683025742538368861957584908135046372423438067248144800611314948984472319649652277282440728933978521199710142172932762612230121161500506243206375228012290872589969038959961546025181314709234047968304459961288772316008026492471832000383351126604950367732977418401767452961785819741066272458906483633743056078479260429728981821785395050672806683475945574003685602382924000701626733931707690254794752615488966546178688196348028428255155202143843960928139370929323217216177324396411477530058378895818538736347262231259143899160607169104147229734649389843770731566155546395254643947230216942456585945485255889926986091418361055558363913356008724048815675814038409177990035781793277375382232930278949860507424229227802496677030250776396596132376472755834514168434247618916584354012118418989391732986499503481425924509056388084759324325783847396690048236038644563488253880963768122210199919283496818856441919410029224556716860690290872111784772869093963660280919549874138588899802333871987135777194452823844798529166170791822468935701799981871085763119866433089561950691216950889477372013395573920031664118139418006474070992021949844344980716371978195378945501015419709664395942336807204312612632345229883303116884725336254039271831244397132455741055844305342400808894043190805666294551921277294922884776891784301596109764399739323426034148545983565693670152201982531872737722074258162712254133461330466837054567700728343006147943468055488697895156746605956931661063271669713441847123693433351948147011713540373292676191276465865075882910475923624204892162316084673944472646731045982373422884231709891761759547437920371798252342460776950483495781029791679416344481097849710912614225232474756591760830567454116510375268606414786513501031952292701317144100792984066503151214270908240771527988761702453050651115949834288642992221191259238062347273862707665167028724001117939008764048027753606191186098148833338444691609181681506017327207921757911974123350004264312622402627661412423848378854594913610711004490571679906856237481077681603472757194256815854476617897362306811045801200213677321440893812840044779511718408223437203881781181851168960102844553791211191116899641225199388742024548173938025540437461177822271662383854202140351427541808619521151889823596923500672416826746318339532504539466740555010267044357883854516806475905892468362052003814981355858665174841429898957518939176606589974709322939387095656581491206667620724692467881570103233499430192001504826078700902382694985685374698461945698964486150742309187090973912070921370328984496589250810091209453245431470720608465342365746538002124720983356345934602647765069037257955655067062545376358297655562565246350404223938361491049631936648818305020082792007293224154057807762627641440419004131591149068649995653547692438009783786810979710386634814732112095597474218950596308058925581242781354738132199707882589275191576067552370930530452617551899166942728803251784407813755088126378362736712735834677504966352283875127480588025957448028293481380322264996370773139065486661847423000807946477442736799332697060904442049359192005374853353567877618446242945259770445047661995708357578900062782444382671959968514484807243023988999055338465566831435342849196302444340381257766336575692939962798167675756667180731466401271253764000406790175286681552391434571439328550140166044627818353512771073911523822466289011021309989832797201969523951527841806855410340707298737936165863649125738372099828468140969001489549358133642288936628395709915636117953381571581544711831646212410850613134785322612551644120368294667714330178467318178379736915118894943842174107515902914978697041834397613452292513613608509227641958167000454127658175831658103814915432085133291309168786653610570886151230595927549911166006032311773265035035188535862003681186438818803063691266347971467176555750840721509610730121686984395897181171907302143790856315475629364863458448249376154015674467900263375852340081637561170935712627565887592577183989245013660141900616342808422942576017931158023030783963708472389848789069894477012568810666527527650265305994020882131793426152408325963514443481284924349368457899166493053387457336824129178134979193387038580545676321479212983782323509656941766503161466752005975147681658972560768881789338407198079811000756424344570302924346303592584402559197959553532541733641271840070135528101356437755952349000533002505453106901389861443995842021059969931815372343846878157194756362535047182208327030945707131837842530834135138331608501750823540890643515262357502688809061956475122860547724743856436065326874560494304464300018052302404126042883247733701740683058484713566529519990862965766690959104473499183984127661708525620656520862677775920626321322355295802952268485097641048354085896636451928659830579256194922567453499322569728798393260337286974564590181371293306600146214430604179655913412954847816654350294149132601028318012849667439505527929781046466130970907424781925570953455723300371597539211470419813717121692993629337428482645433064980028695963799487392363746039081937980967656556445804726002794375112096783608405786284543057135640591230222852248164988953479126573059794374079215139574362560415825549619021407611322890446420615682462085002424611860899222717564694255611171256534663914546293981012867511817611819371988647602600500267114807915204870240619700515267209086487360868527608450075622838780588101912592513505686627310914861279896191252668240967198862714522887028266769366827345946233833643477206719520223028293818038672249632628940933125688983078408891246693665244896462718106738934666380599830561814824037598288413444406217874223959330286953073305791548309862726974810390637261972764907690967225063106842625082692443252941652886271341388091882530504411817526450325556623931047134388195542310141173941190731582655770520773781111488972633943174708648554127333547417246217618014718338362628372921043865694619643247443413646430979280323452947207690662142092411098834567222315085633944798131997939363592538049030425951235634883447377247436293328235205640245988994115089977157106581190722678568378728569841656988768023189190709576980918885903385120122438129775309976173217320656757827695124446183801330914881366807173753315410714547430698600241703818617950581537344617733092912211464893413333960181262239620658138830145335196783958570099202933225180027175956839245989113048797392747940449608616013259124614553377299709066201205444864510765407660816455498581067253582920265135995804066095018124944746552414272460851495148602004338411605231849982351911656475648065345719924846829638323148561660580500150809247994493822924190332521098904610997252072069604881910873793188455083317224965956930158208086685471763099831701074235639028812596985456492121227475140929260892994444765684632193464491457389347289275846983604522530289667265843920826455733405980355606031370248768883507367114532750646608869422350613980185567937734325231146608568096495787086586304986222696748159583658628888793104165263022576354868526444865818284056313530205968418688506343475895048502983034572995639934657010109486080550045885135518383757774963023650202794318955025984385896359804457178379477886418354899378565228603248454287356132022340601944515465341959317713347685168156567695680873667343548645229851910117113300149063715699528963896873407476651261653126739181691872611267883724216624171394083155036777007648940965873334489301688696289257023824413137367997592264210062058058251899450970349532555405494691797620558244577579730893287236299158624216452021311662130594110180785509653570929253629081611697716822449605517414001218444251454298862304829407394643433673819333957205759610814508390249753541642528709589172845057215881345303606371043151105297157230929129936183969072929653871997319804507860167341385204211565939436873573721621491040030529906176861687194486605047961005073624074730189597423750844813484931551692575832617447950093231393989900134678068636715803879969932442789569101755260726295759325479516040096748111952994675506364456362524033572772284830948286567875804710870536851217172187023709882236508420603632261006057260479824256973327305950471327763215563755622049606523527785935387594296297356166577713041772611226369992624252039118682667954938679766963672279798255922546836812063895339812229259969703480082769915494839125185044089878354912750656612193140012339879949288941834498181925346960204659081206645470314443210398054800108350849959412892561396753394739680893601466017000260942370813881154352778870266985782637438453492965484714993736551862305357682584005342719548889673362438864714507190174637585330064670218350435962200010876318886629203320253179975976182588337893875461256232703815405054270748668260383659919913363137376178092160107832927927363680776830252167145241547782580635770553971064322377270411071534989271369188790441673363712050401111344180325697388918179356245652224865774141530989268689406773357405324739736035865648565632745345183815884486679721694065968503168659007155348633721507867175816531070282393262551222029393371470921662162967877550680021669098673947578017991902138467287544600118872593917613582627638071296408606919307037527157076030372624816984491815251671196678503487114315509958494020683331791748163101474025158655246929887083786452712064807943732459196698658756780798309511704631614039857261535077750994241559770890279844146894577375850259634493272416355694004701343877282741588123657783817741593323437378210815448566520683925423053256108991190038455899322337043299121027109617556022968046353120023794860824925747727776193828172289732693200835521354577026526838857192506197134199173431447601950140016757900463529566418251134080718724738838099589369242501576844280919866100829618278559787849030529525843716425645994871868491932346586600729151561671399611138606730918885372372523012790382182738246547884474701138844561191205716202681924734968537003464733695276486746691001053671764815202085055079159647854243904876965490651405719043378479695927528693013434004216221320981077181054799070295463559906608559377841031964888596975599875815588120323672422031139362444939606148157264292831582402147801077571322945155818607228150750765306396577709265964127206035601298822554271381136533960482233993422784599828166068104123214311777793754402506248042656845410484488264218568116809556245134403961490866169859834367564759050266925973509191073030481410518404559516752987111212403974497532565366299208726595053695520596771159115990343979707871205084175887200014679432531363998226954046777764409722376875385731118804614886940245265801085444766811790244692590691830605255699284882880994609133558229769359266479626551453845273488014275854820161974653391307605543358897586024090815348935334435865505513046153733923604020686331050534656142534141155564127555779515562612296951151606395517495480289286608283215056488787080248856989991086411478444082966549666523679943160873661088690137661598104851806987841083481020945896546356118938283737954176714902885813509764448006516223684022460695174212363712483611515758218151127881836148558087686199358250610718801784167019184852542071770689696731731966964616643623793303710904074695821661347051745091871555303900911460248352732490081312976126240178801825715946034932554654456304245503340573073610568233069517417744133042996769133527417538290558556117003613578957227713473701627128919402026170917761233483148361497522458765512480381142957565096656442511099411016010857646464630368350930310223059133784669493087002107712290461990709565929083904056349492360390968121824593337454507947105888182949350009514052049685564354396697287442441819279344172912406476091769264921298807357971904991327947771963244434571032578181886651074915366475104700081536973588561985878175706865191396586381821388906977758000881674565869285356222638497578978570184079990273225865023385980303638291633394170044493718531717768050382768177528056058898666392991865076091402293022618644203322539623941107523425296851722720922194004236960037237852466331697351493728393471907944555338725780099901366989942542103791574984919307797840152570561157791992036222853923937367696687275725789345811924116976282797184664430200866021949023658040609500392428288885431130351119745714040297614241924684434694198492314849891497524664253953999920094063334905159071800457530209334289530350966836200021439749749730726009983488901155600104969178329303577350217170543769608364748355463295598489147959162793655152726528892390810178556383639563219275345981895532697829516868221217659419473787772003098023952097493697686802599014791621799030776628442574561441165287367671643968111278016066118978283319773788529738320231613736470149378244670022223299264374949817270063325230799222471840178430577275116921745311260463897354400251142746722704964163492566330966174334874244638451613729435224644545960745279160071123056398618389524454478824110357062441624274119384771048999887476944386839246235487844415217905590667019468184535127533941330273151875134626478831842459292763527460244977854627665756633995223660872222047787884559976876538669894757186253248291643862118710686386431399821253834734788686328898080306799127311851030001571763730061636518369719528073935606778406621585856712485505243218321897972620854154181773440742404194373335229997886314141807689509125453952343321190584081170582260205425194071064490904647476407712779858070158457858971048282737935661389649407695549259206451841148367605335128628293788920456661656683831354593743490842745271087155646000566801275270733258795393637619876224846728289742596167496709227794708971608764241651734858560411814504201634113053483736836472085298397081559507777855776519684097366995058354559231994209766362152546445119779702815445863334935622241331588333752942857806661218144389817100546649216676709004829209804315922578019410749222637448518204776246678784716774473762505069413927312353463366911309375127580575810091009676407397749523184170579842215341355039675089673273009082361187458231829692161253764000644716020105076919835308040755640436826097737508904867565084061110746996575353568081571589274706561036714841787580956633569884516366579204945462529317769791583136516661917248826409721311176227715417616062484891587287283523898170812575583509816908541415499718150196041143288814414579696785599670807413501311208402629296946818529755935173218351734783726862656367148558165221850238559288131364826196894569541851341950488051993916245233605286615655294860977937422421276018792825124902436585481113449022228901002679994372633954955974460743333232557813875420275351521191446792293182888806560331025963309502438661452478223119870703830693183250003854808780769696240319384763426561364517244564091421059340747724307221540635293654768856253091027215421976439218596648597625871396764859935184326701378813429812217350368583000324074495391391985040853473656000997792326430917458541685580739429662839103105427324318417507718164484146811549514139574272436369924309133352065019284501188866368501973329157748281125626306343673897417669165730662438610918127544444880171358044991173168104496235433966171449436301545948003062034376463943484798048640523405619490258197852568709047962839239128586769620133333898072224191951255445893553838101261614392861832922931786653396424060039894667558944890057534850225864061899233784679192818859479462620910032744462868320901594050542605665264334033273735221487196159304003443213221603157657448821223375113319568860689963562938987185649663351472230731421546869719528522334488022744611336341507508892877059354014220701794591288766571293486153776304216877917322162564114275576555275169006879812996880401000502899789798419493976690970624108378127595240171977810138201277732450424730999488091335489591593657037454580129353236219198989587247564819024235251455201377495455909428784026319023255574263442827065273379472110650121809981540208804792349215627609831628475479302810851743106731992759129811052065584135335971137217307357080473957564165242976234262757180248682294098324073432276668449431869846734379100824984791654714132823756193058720657074478094579911603719891509600425761582336935452842857461001090960166190107860467827286950346700989912385921179482462045195691039595887659280367207034625783600243073271609652891714193555507294370519599382940302930929338368591873127274719396255096904845898347016795263832895848397889942590264061038802648695367005843332210776405497537412049996980441843667470253992777113508091108153409663655082319559056028085485267773495193197789922688071763846814892580648108325887475669898940130661361092155785886302671929921193736433185370662177765756918536292194014828845053564613081223204055716830116316097138873514203589829858145925641963603199878852119334818397242760383789500274094398426285185552065154581049448610200934847650230815721256477819449404866251541546648692108070475095915626489809107257892037608193947788921481738842952228386080191476317414665035426311811000058393150246979897407186211096376461396129809098693816412185019113525237568834389291571562057493726013894791768148914185884911855507388617087435610939752600438174940939067847908587045124199501759025952767178350230064331318279111588886179683631400136913070187786319318154577832477535054926634401672991662523822147585423545688700938311020903153343957174231309119538185585914127752369110773222714380455878813466076372077038289038576486497590009303702084961629783356470060238592192682567867147952418696411811639341230120643952360776559075932897434636297292768302755719201376514674175810930752565254296766311012531870007560422164660122468598844518067092581035510311820995036889951772553420981726268227664324765581586709211177353132996389295462854971799114405949676409204445855500579257252182480840674008438396714098334658248618733038390533243488942574054479300740676031971583287795988312603271481580897664026499215205981573163638344529538310358466923263345286747045445777544703288723674593540271218581171657819279037234393651537820999206890914978703775898599706803426970065168984820906151861474635210351532196152023028948834305503979963359554587584083516805815711914452482865549807335117481058183467918596545964064123747515186713732507471996840811948378921541294142520293380389604786595799746146473179104453167959571044148757712381826759542786373921855124734354254747122562761489691377159407807885478539488732877511082086082907070797930536665354875015685486855586006018829644674379676258302161867100786890847071837795016962585365485299973776102171762325064810473307553606449792687125535887273368271146605823801210783622043665349706177185856209875044224485683638354536349568553693240974300021234602623144645566429475919299154110851391431659236763885332382556287418811217279665678345914040980909129711912388531474435530531641228694197878718410376026432663298729521417026905468477115588990315870195057279025165833470040024129386589690333654281071049088339158076318045737655074093869408933878954787640829252250160400201422324474076466651453061434109310376848006774048515128272778992189202783099809923170810874749724412985582737380012066141196016382535465431423905972859484736996052122243408755449966414305384496590628161115546769463727121285402293573761107683277619199855208900666697774404493924005054919326535848120656841652052367915286199657191266662585025627825805878069327874172376396114709844866542086815580575763180996389602969130581885574082409971636452414065335742020271712605576276957749392778030269471234023008103702456823412366314073011470633476026401597618907058150292933439589831241840537278069207640087203471351595707330402527080995868396602274287851639278387681357024325142048090110642926110823283926341370149293209991345633779435809700034206992776718066881862429699466060370282677077339504867864109910441678819812003536023957941301690701495275737685196393645049728577332998484006853658413184345428315753260412498875221455873128293979473516080296051106158197199089701953752486041722207727933488416120612286736838175314354645443477631516056052616605208779908037638899655110663847359973687968803174358652520002249388604781220994010179449459476678633678673353642203771699537324380771693969793307329881977179497645526234502050090314088536591269143336717175937711016567500194446424059215144886519158162696219285114110296281445897221622026547822342709720190546174431236316059573037292781193789397832335557792369272503813364295919439145954483234680957034215518615053110199237963655539246641534735280237861681233098060535646803049051642827783158890832478601247418464756444462092932746236958143023374555620085168474609670023050481843063746608018093752543882780244793103316860572301460823160943374394480137838958810053602126973753871407740880968902838086565553957967168985413040521029808340765999739347945837692983265771487092181194064998676430373655265838184013164218988987613566048733800565700345855779861323250360204465511882282745130323175562594955400746482295584446699869627988496995856844047351777869858359633237374483653050911788866024083704635339643976270733540358672317276228478967390298171731153450770998114459074798069795254830660631589594379801425089654281165855626503307166240045540501859331442410681582315138168801044670300927295095101187393851268445803187912088227849159690056358969609329815470332874523844417551565577369826331773158211913611899763132740465029988201393347320146977804619225444954337707536645094739160256560527065924288952079368721243974023021797287803880198436966935151913158713941748119763192526406423402902297081684993098532713614647331254330940507857067653447971886097253723669042601646038883313396642657145528062516929746174489718057494259605087609284658380436059451429589481542203082757425997807702816274366773410267636648253854188521676074288902832060450928933432905504332308868559104646712836441801596763420362638284410479717900555185098037796822342727355731171346923390457062463437995088463886097665150379363616986914294055565273192777225899485611737238097472596585097014256841856041657823579663158757517774089231108075256288547327260731134689506880117753221775278277883504683767096367142530305613458962540940635752240911855827347176377663925984473106955856087996808891711733250852366652736537646655647488060779793578590344507443386923340271693941156834769758877452337390940695040516203007888234201107272711250446268348314629086982038391300129903133715368650985907110326010457636622598343423224224433551303662197495015683815506916946531574979691921959687118829677457322942386879602975918919813767109961401371619776621775512362576460496205569422333172394427202730936489657187407001678855010499000659611627383118024194387272690210785922296609993093017067692961197835506752592229214265375823502074628932715115739848332687630549451043299157231427097851366908742564341772609227377758100480878413707045027955656329860569153835034619662548822322347489936342706738131573580488457585460369857134044795276233196085272832776049296316892675901957719113847827710225221193461275525591173521921575115633304649885616347064258576704718502342582633346988227766043901932298247384486527560014436376936251517787134407881623700578299941807751318034225036465437792328538331356584935066613630481566315364606705232393803552223955320764661999304142585335244830631904907932051315047937928955177057146323736179534578526571583049588531840544172169826655988268736093987227451004044004828451727916057178044558658153423958724292216626065042171349778874415135877018121230819062002254014022160092349771636234601039609472799285822504105777419828086796946795746392967101367109603650536423123825656514388931901609354191428828091898103735555573697333695397910302591893711230008710584628898378549313123820427431059950656285222895626143725621817447510824787771711637657330727051621016889347310327376914282409415174484892018428611855879931225778845181085273590266954980777754859889287487062870307350711906518752159766733243943180531455150131029050665190768808017489432176918160432479952104050083719618300460312985060860299172441935727951002582362415702316680928952788253598089198967794361781490820359959888559150350789170709966978293093874940443725316992754106330798989621014092966405883412996457271197291698441028802962739386899712229462916083280302978233672801384530388631296735787499461714530372075328862837141717029370831864825507836781161654530246634196586974202490127793433190096791485413107506922828204521793363209613779145153923171879340779183618048643721797743720853860377866484337337741271533787296854867366088480919837693618409322110424171518783597309288870500155668576107712618575955407859574511054139278291586263941624138505442128478289304616291061734991823359338161647132349137126031166974385881699720721351990243881615207680837973430533717059094981251517265515364460218387417409531696265236386861443787700103638216637999773668399552759718111739050353767407275555833199580310178899280844338654772277468019887092208865201262887644750354412875584805162949735318520473274916593713600557783018678260070195062200440001336695580777345193553732620011628029201779984915545161184302675342634254674330255945579056963064170510525571274666772405503666319187872578349979155938319995475354458826594665426053066691760539969933858891336683447649137033409188496458785354671185051682615173261941538673360769400246161662848262966138444588658867949398725796979470992192902530073795210766387710128352930112379300851319935170594995075400567159729946321659900753533133153104664608723163263125709940503778705779246266458473939066998180676756558416645060878085744845064165367031095597004266796858520673809732744218974254026385632029837964474010285594069994293223246830712863822433235724268558400384384657594421276111990422283226159305891393181831530532795252846100315023834237766978192099825810684580809885630266901063834737446126294908144479706092275543806502753205388383739878993472105071496983789751253478387579456894168532988906226458966945963294618972805597986275260636488797838359981334749007470579400207300452882424167739912740426830917547789601055912654510829371578161801414709922477498809818037423055436281869573629038297542898991472965542562227300090867416831010639904121128252173781337153432686577655887310004198529060014802553479681772244540411586681052866847591114898092197284358580938168342864875866197382864327980482605092514977303322619837885089862637519196145358125957948397004754098203644308950521952318332597774399863961190005625468893465516905047701271097124047894717660147442251181552019378237965839782613058052870866554361596716386009457610007382900570432800407007194852898917255570412959929538863313945245685976610860450862651361755822605080319333751200758241096600161400819450509781849983208448435955300780023110097700924298853721868022220765411525886010214361849741832849712235331221774019196634450887842180393445357029263485957045365629210237353056586466717359161575196948842514467981972865552134369402673107308488984116007900939579999507906312628287326061403985226613984055135356794197972644237489309229516757171004604947757113074306424963998601364416505318046826711823591751889610518555130949366769224688245434302301222386812063313816958377789168896570547834008288492252973526494184121428188492488185698603135987592650235776651345047264401122503506098274415439198562595501988264855599223194361420243539493294138617514247910400495092613150914316574127320675081839740009529254785488227461015829347176055837289557304065299523376304066647161530071851255244234013135672817360608720843851077628950553121484984492447672566998078972964178642843947173786805050232021407432428946135427853654888770151353704104876738476413800229237153093468106623928676377560854236183358264765590986238030385534599670122401763089178767239045458027065452352019046948220237186243286110739545984757245760019956173246131257463441429034903454866241869329229410892226241741517996134469621571148211112637330857860174713557891734130413066275131732590722269501618694870120559338018684246100153466446937370034245854268512445803827182739761430315230443818717390435302898223483324166836832524468395176334624809528232722171273628628826694412712318830379693351436709383104520462683679396536543536540366424732446414865970897541974145175282300840460434997001347980753249010895283341107148226863736787574651938218920073487805466370806660157328738222741980501912889829334086647429594906343306723899890639811167015252599607115144768576576120731307510557712080781269412839172077500499699195128476832068575684068260321376295193450183214801050748917195178447445150365843433269533534132961969335055004661775216507286890851475380247420686675797861277790266398316421019467055125273356671268556451964464098019443557237317928840701355637513888800706423369541669540464377744814547262069495949647207900726128457480664507405779239600959873286238993061001378838119531521746907169764686367974684072674730430750832625384948219026068455807769693599033137635027317942855217766353059232254277289211618735644426976597895804396303491554265953192742967418484719838946124000605544209638065897680619942406985901316906684518448818281755984593673335437861545175360373759763009340083509049430109466430582794508104022693131082233198253151308579740404777473625535893369772505842612326661574743487512484929400872795039521292872982797110226754560689670385635679225963051375495966851459737834727085517876937370493463937961510649586907353179291650410270507550130664208874256151546556182808855414014910556178512119091303078711380303749771438447603531313130744430077866136158424018968823646342420963192678757062362607451192425511415061799005582965137241032560361814370017885869133870981493827634876765325478532800922063328664243364197045582095138873694910959081448656397837311126555254702575475964188507838437100935110404970099564813328829146220267455698167268336769660605198642842672666069659883139311893556433638814444442610890395232976339174048013624105316006336797570166811515517844427859758472443265046046267087545244978135397880367116184443361831010712241513241790483520060746625988033646416105458328130330295864777174012716322597179636704700843826608106526135421941706436663278605789820685130293291725807617450581976318889434824627356990452706846858542990709926694175008993964109607349183014499006212809956134896051155037827581579954106654296286541093321260286955617566334468306741971834244232526013571394675638383884710571629229869630920028562628823125590705824507291078288271732004038972289295954719867793580694946100907341134431805920040142246388037867463819276589562061899263849961156165931626966394337540140642273729870558455817451764343409777730674800380038505937558060423346734935180814534116377273145065930270578633572233067914437543137480157751435460906873625597993454451102353575901881721141739105066597088187938791805506892955919095460230161262553611212787939069517986236412212550916757764845389480764746698333374676756283894300745181079436848785095171933891463475327912024493889763219485096451008723752589701222506141449974046452543819966857586722124401381816622664047833918935401852964033805567620352701695009935700894281032436756990949379217746770893070949800890078068142506059471807454642426084536421203518531768304280491497900408401235968931267367633384474404283985112024637434187333535842073871524150988967725942939013097979525044028738254945150348968103115321666013797191790093610578720717839258185440771738940687806654958334389256929684745485913627890744027635597075758400894660249491118108746757946152380174046300637401708687566469827372489583866267300604223513258466364635772132340726237206838374276403529443367689332117941994314272236118810045504453554228091491826929021285076812144732737348924947373673041157805013154074632472621734052181556592443844676175087637300140760037290751013725805578084190735175041069686781219843835096540927827222423439995005407936522504073169276897333724167661220501594104403966115014344699616430735852070480983601608146504656985987875567684098828956637722293063584132790968588354702419199918068147903372814699833873469058550903858150472107192908299811566140621303850971825390723832412259776171790847961403513005190845593150758143168820093451486692624029549978924494996094732383033128488531157047899946922060726651326501139733915320550144166033630810830703840432526902775158711134073636110589287062749978517606210009925796937589659615989989273881792992286106320557185911707425758671655738342606691043244403977197192201666448773568024328761409235643557925809985510762475157619358051591231805937351432414722195790107833586793381087956950464606072528561366827358268865396504413083896277516245845976283094713284814955126412803418299176715742113884936524693207690661951165739842547723123192732052574805138761439945170625603731668558208664003575237808342479016962479579680031742043153022176702859208606938787468848328291922044699613665550020866396201724301544200918026702634414556215551662435507750754141589877854322307655697871542670013830358453304495705161283962344273817610360036961750852666929057086828778937314504104743782133492462224628907694944893435720328640786990272783194528607339557426381363878339461837296863755842825968817231705523917551721480077110114141432575060526732136415297489982080542714612692078201747807748939552196222221319423471030089856643409498524800930809102094359401238976191335529040441739526914485500053141195250450316049709593693004533657078539771979567941509500669621629690535323420477544653554173020285851355222449197736941267446652260642332697245204065248374549905023957187030016356490594522375492645372413416643054940052658015265411495123631221088811409922313877662415505644211050962308852364198435771814619992002309761495327508679144190312913233938101818490114272519581651448733947194911966142991495120587030695381236789794227673987731855192201015133202558150554976923477974992614774032039000882619740336351751071003865907361218632638530066779078983824912090204282165448901214730467599666920229230211895562792829524932766792466661517985704478330807228228235311153860144674847780900703710289592457507218838922630066517960721255532284386370055245007302869264399474196819578256498369168309514774768550568685727188464752864863039393062534212176823766250860208630428911876598417794319869777170500510030176915349528462666681244493925273461807653371514402682090586761851626738015671059850405588565632210536188044623714996137841129220215249997867744594731124752385503249291016736525202219931481414495285282868015459149097155491296058079276487017691593885861392211575792262567172089978560038536442507428745592253240416125288603272858549718603197646252939004524761249095381225346438874525493020665332268340192675402904647463066618593619915962641110088699383797748975426292040993579443906351002449538562149374780674725157501631915594542017839099977245765076037680501902626032635527308066522613262945721237164078621462316175637924371073212745932365547053139722875880887644370582900477052109134580569233953539661331370983113888874046668805404585330486299874606104014630309809936193022153466849178514093127108575050460537177597595449715938558074049434384319150927103802285125079241253794016756804578712950206314134654140068155730767187121456270358013716159016670232065526146341936694572207344053942966085430714402591036102692845243041503399414520836786048436959208134442172125055907555379287584508639584708493318727419993319239416531640921731443829658494488604528614862529697937060256801426209337237025225041715380246642199256292630852582168900405816579553639233407283746784931660667640080943175951173189052751533122720817312994482385129184051534067838996147413948278552774214902542579797549140489416494062988388846379080679945233390874472730379972693600308126939817278318878915482949653384321697130834545640417575973350506741553839531759419060605381966512848409675603746874472443779265266409075529095591765911010926169373845180899541666957529492594695659442000539452895895462735409403833568408149704558113269324222430827215754692971246451609597842973840392725383106856075674688699190097404807296740706703083644581863773748944097171658581059318174448321642320897805811798685129516519171584654292484005556066741574768822524164825588666956239396216696957779854579572523431046173780494601850066613991728673448758184309696693910241113454716025615569656289049066063681967705580837816455550140418674412146604134157714762315737731059353680499415554066435549813476751721244454810343982159625306011811279412826217420204248917518389404235354240525024422433980485614434167703483631292751486767375430977409591982837815505065525782275916421568355530775367023496663542128401323484233352084601066425923102165931459671502442879142563973967647138565879783766302252778211237088025524485741056483811412983669316561397979431460802924036901518212679306534921314158289732475418292300129403562114992227605201247985024327312771315516203753621473477599121920332176204675850965064939859922039026816261044588553222081852235713507187741736960715469382597630586993449434941979066996635621136722990200406214215263612691074864985983545183234349722329375767467686624210711953685212744094687321430987015761844415347416084046984363867161103777530415902083949571233394711986376589577907808909207841359253785715413939989896194019142006716120560033758221681717016465644870624434206321871614645465284280720715659294469586248805835423619884904750587944383669698091508814370381953544821810938521612744586440419345707328195268848827924603058462461759989615987358765841421175426420766024479585694218508682894345882132961056389482811929481285946874141055224383557392780379414183615576456010973419794863021007519125126435273020789271983891624048133063569585317238623738931461571859487088191393799304689318469814187022771486099325225363555328230239158910544007701188490468085848171102742376619343746489014219972830943975434757651027149173869654475360081433258321610490033547212343086734101258046563104603134114415535252374582876944511063938809629567471925882569553557314311076150740856595275474212543957225647329843677693956051918120265195422429339784133947765831151292981753170578662408348665102063462625366616446195451922643257099965530007165981275634602930083390355433554218731717035849684076418650406427725191459045269176448922113390891292220266545661208257137441002053762578662078565536985059571930727141453243735062504675284606121691560570082924737767854917121752566673311032848224690726589560853979864184003897514658135340446410526097332221509377322087072231893180375325140336818860792822864999947774421940583750534782832854851173812433399103930078395216909756848705189719743719621238649649517823969100654803096165698864856946438976123526947419268108910182337732006304589756404508433949385147846156514769823990327787563755212195765103291906105758118857258374532548809289306155702013939224662049552209808880169653756977260432420218445700591120166461971217715371595538439588291960241012662283025697471269258212875285912327255431564392183461155928457090395096059363324575578655021682055409671322647657904223723303914949248210520207731307674432218129437027253923185550542653561782152317174619631013100647307934998209276330994399682785611877174289807350578544151353441134674505775464457989258943391224481988721664087114078803613227856935358461029757190945959377847494892964675149576801515338893873594941359610840187012304376014548384503471257325045967506968470736324066208334902053335077450819925580793894236623791592925931677100229465388643371812407569085955695325762228412971340428709484452887974488467432501514473321856193425602169066989517647547541212409897275981805819633042885589406214042217845381530468498484611394490303569627598542633916927603623486791288489489122450157553344419962677372870349664150720789562924546176607421804136791312043232727678378788967890017853810467287266587260506056881001025394211744390539862083726136480570531737393605440465087639578606127007036095515812939994014403798135631229981016210926075541927176030393451040634497631353013676131066633496949146707161373965953108586215887409219471646299494304905894932535295357557437693370502386085263625753853570454492323837853673022678207088349103858686034721072268127145226192814211440034579414881526235809634439270987595165622039876435777557682653759375925747343852703597630424865024170657317837628060432989711526169984454977482915125654470408156902412975091103643055370006858160386640982529700218168738469156288301785182646009158315654393175319022296278768922198872694318299867691327988642857383401578189862659826187654985103470524041483242041566534183822461291711951560581172795904082691562209034622002350426688892025599393874770164371090112759037318280325767160056460209552800963262375583824041549389141862496491127377404936825678887588634321269013417621017780432091856186738273904161497490520728127210272085938316137564921382659109398879277258486257314302196378687239052904355726041462518015294788825133960489428807695983653350788091170216094509724563140463283725255833466173588622194100638138118709360393956226977433063316218127066016107323519097236092921004376014591903958302710424709066640039543506305228570881506281144946006875198803468128971140939860766631984126887855417307668293890828632650105692400980803516809552057405276221158005230551644558774174113540004536744308738471890441030297873863487383051021437952972279115704398940269731304661090326917406707392016391698077032012268480849877865191012940186515280613939584893845045880491151841813567357846745450048960375056794165330448587141301463092057132007553743532918208885590400890609257635747103993438916899071850578793839008493921314589560279515987087905520555865925595376427438660749520151140779852957472419771108367184476915150803381212501207552767607420621915878830039823828840062663826296326127546793614645218206360299309037970691915135935670551119362589017963613837975961275614345948462774041723550785326797077935839924067943062848137899537647167208980909577062658307343127278922663492913929377159167226054471484964363300154096925590284601043183588636106636296439770360454158810227911953324716038990436840617166676327850016597123853421048628264728756918878402302481782633896963427503686204696140897194536717835309323662751688883284017506943688694727939419768057033134337125466763862795700080006230234689848636833983092371337918790405286421027246804473497052930561401761732874428820026262512908800341492985765791899039545771871491161337786041477431728282774193948578460627314983163998724611476127942063781050776792210898694446264675810166553971288494388162139739107494051689278278056735407386650320744246836175366084491280358611417656047717119199147340614266293382676608696102445254220262214275213337743484547493490418053108112865782534851969064490425064954986615364130973131710952771327384548251537902648152621346235679133782115874584176686624401224153249760181822388693742700163132818042194801174338494266888938500174788926342767476196218175995338535933416391083134042329622442449151036089271491284008692014262619960855234851640594405481568267578650603462510613204827355900065882734950762336999919686056227435747492061685353031877588235300372901095663339621009287500386558004660368337268618266186668726721136599797750012022968883598251984282362403941509480432477034689512647677941250250898727289480886717637482665255271618687419726914419441780674135819510301863824121095285269841804433671045130563700574932574009639574778402503372463271007576261799606187554232814152337198068082471877541758111793474639322130629197923603259585885989104688398417223838447820078763476860848509580594655910938294438751058800089068891311372352433718092957108873995782077778630263379600299561443299268243843210763178614435685665151785836996098490939635767630857690002349377965579728262551436672047596841028600665708505880306917613071621334710192213717503126802459268271822047800866406252445276284101213678029223973340233159813511248748640282994288559836076711249315743516191034890941591897097120931533975289773355879876940787763463252455549487394661351397286713629148528000498212497760186564882383583323570990385351989393474130551618230142536916243369325899712123616731713145874246873872721883449073685896030033669587039074530902675764174929736088122918258382212608319717325980479397433546391362079119957703264735779222305173621373529977772922366524180960493584234855406258371041115886282779020496031160073116300052102080914635410789047183712999574102851174238850149140709292727686754489764025888941906197798056575419435223610535397417906854468853884920795776168395844423586319082236806638369426532213852871585945511391181184706298292192946609594169493774164455815913151584798199982836203221283419271539277863268781815892867624477393993208388958563066297871268860777085976587915278472019337906308427258145760954517303911032324129429965861840691819212690415988322366346527943980733667798362791702217591324856974342040220839946181539841825358698959848457817869891697549908275007773420992059465552521778446688240840299504323626822460427692852967837081595269048798524908379465957876751669695364903119622059191370939043850537560642536196783492340791277689240394734185665379420538041711038608111108695364325207972447965752865990449089886819170538356574911244140052784125587631490824915538919171328426992475537514133831206487993437285679575869839086890368358830639644379141233806043366071533076763096480480498341379263366095933416056890844985674281227659348385432955030389095424948397248258939089447146302025281172248244593332389731600836653356313513842185481537418180464432684430969562276603006748912457661995172069634152628849931030764304923551125727432241790385466862054897611801147925632010277562485758257199954912752246111365257059062497129353485000746823607342579085254333200589185019894950241124488194140513839418478742312301461645975393643511416850981049103710361973462050955835968672247583798814419938312236975515888592063532298257094862872141587708337119419179093510583632258733342589657506083457850170708893296411322845489011946445295303265450931079728836051823834573651300724816784125634696096329967764921604572149374718300495456252360793134898952877874249255723757316458992957311323960101018291861473514907918420023503714358528261113899017476545872421195495457819311372066569352285046907582374102101270232220046089726777444447231241094583287632460778501159932016642909975713434997415964515832325767201706285907581918971336281188867622628469703423693460787625655654976356096980124088089314828363695131755964423468693786891659957395879272406141476089586311314345140807734312532476366251463570540838755853173656972884785656271219434699546746803671940416028443003760925734027518277431221512087929264455525589721913175138451168215039302780044123158011298588984441145623882626787339709113300877625405620732336439950059153767152161220178517240062320966884574050664668627263194619240374067418868018923014696621681098772936250010079725828491805684400971772785828182656590322019216101506533610007469708528750942717353062813055595138712950682533228947996836603482639076453447508852675518658524303729912727255713695638642790145637423778342928979524376417624550076913516903118224230323044059160540845127121923435517611988228175851004644716578489521764934041188243977960197657827877802286559661005251976000406386989237093501488666876387085598332105405429650543121994113957023318433198046035042484973651742047160412680143410124799606581255752530098856512213587684471792737746795514620405865061572893610060923665450759268591502958820994911400737203700492558191576306211220684037238575644145800307558547635461265077250669093848614258883851071244069153781677047129776309638686971734007509392782999773001604155650379160206874032042183327511822744783562273854296765642674251532479541928111781479795255993308718176675588664064139857181100534963776973580393268293205632591208030537903607001990458675112104046614183649697090644327396347006243758324098263578517745552321301904507519885869068798856567134506367612499908045410967807255757391821090846654238067879971575656047830903802939241389223677501002507573819010985710182676496445357376100422203982508317399582691885548101858823491896508920382039868733074497827022941137013923923553891910215424638730864797475840509032515065068592784150182392858973319657946900838267188207180687425943920499211511176314831482143728546305573649437221310033277331066448910933730082107476159404425553995107926095494936822007264105777761256919000113044742366245532057195677976562843345465602667284004362809543031965946380411972573698859132123062533224292340062006531868133491575029658289785382300123741573681474849624869616973792174282721616874563687932270324010249747293836503645204273486866158839640758530613994721485306038365229122349009290855315690445547784679390782285843113769387327311852874524652182072207192666242469186124078241642809091175992347829397500733203174884994166490615772219186083431156223126422712595722109569495323863438878450201481404551489225183048101065864119077302801014176767041331669775584823891627983668350281105973639315214317799869866574671812064343899255782154965056029720645001235430200763315705234782751725064522640055026880513875750111254527477818911751297193017213980586672032216542821929779798740765564842780763740454416529573997618428755312999516608631456514203270470775576326388972074855564881665665492125404471232618549857119391356652204742654263156780637454410732866467042488171711846300869873371083622677183288519817018405941176772994666777497993747434311304946115125228690189136548236023490368938743774307659484141000414715048698055450530180205194292701255983697346831569589503316386734105693266584953219783303981856896817055211173466514345619759503680927461536740593921910720345959649542513638504650085423776651154380318375822477341450188154281848014935401249500134255611097948628286332415012439416305705308544893464837079841818623742050208045200443451868973809393464959992100242712990173995857588605805830534526633994141089234432987646455851737885462513610756417775964133474012649699769550396526676416743624623117775902433956759914621454400933311168400943432687351439260459216981050899923351457149525308470425644358137409746608070032400021652158274312094889770634527030479634323242254333697152978210976144961175995094664890961744644817482520715174807806010907849126343914139371811527928412236473844526836041108616587179207462989557810054739753442631198035157004760875670903979433071420740614109757139506619159055889298263865749041325521708110701935623840232256578028628705672094501777267089595516965182902542498047822008612725549705577690550646095734192512891917923990174589710682553795337902606139165978099827948232593526564862045620843585914432534718490618208299784839999052333943713610462778309108160949498078978810589642986418819973645148656196394453352360422181274679776073874802638469508205833243161146094724609199027207460883187884874101825739980175970934749409261640914827548014672465177592744303847990255862178379259907226470729878066669380567199538225384563415439618217061985644359975274762763396993342952440098596058525905860995120485880492020019090788683270993966147698797701069791442177345974091644542616352205721770244569299142449638813020913768097678946075007165021597918094201674870322729114361770768544756857709538368255153422673758234070918900405126101329097497313810159489773180272278479660484815984099037608233120650237936556549781800825399564188392718280138831940545724142985039988198488743229016641409516777766972410588156060285169978103247413416333585794008315091261642749689106093244272474719523666546621366647003955837824620796291294072073759482310624619813142431120088836320016292256051683656544221183500677526963517454927010879606113485944427371568110357237538199760939605030289871081262099596407700670291630197802625159896286940421199439313000648714040394494952091132952375888298720379507169989323192107527755037084289019564428343441769379647373023085748150602685458359801666775743198499688885094600584591945920189910638578024510408874338470674716560517923980202291491455701763151481655306879808664087224613732524445768494914196645985529712327820541362255786807762430733089172682661557165895898270422153897800664558214752637820251169140273684458985701313372427923941774256403984017346091416122615744535640794538762450475319209706266403282948599859565604517932100960644046255286764488671626147424811844435958386179503018706379033667783919940853974958594388185321447382338481449178355727590923472046457369164829019594317540094792948307550529295374817640670269212221170387640235601185920395362741336015921879887544817738013152519123845353695024688299794876703998117242475393744277825517592896668666481429077702629401524689815905079063365878449697434743855620345242064041927554750282037057736977677638357230087541610123092280980963999022978456705087066043064397296295203443346751914192824658102163762517841317416779072775852242395883173623790533328768812895702832969032431821358046741631341892125163306320277501275935199004214924238342008274492845025637616774521567800796015679057124263154869591967236175980044407376613457216749466086645148520891973931185128098200359615515391021201942641497568951374769463107370157274281356783593812881992406818414835495861524617289974169758634484371736066736733642337078411214325349421130403160478017257005998587123434479113403474418432907079790691847269523329719620345700011302550490536252674321546917281519919240248229511483530605084748417497623621884550480073102325524267776959159952397613241626614957149949433422495567919647717711263516559632225758954467307156954348055907326824483581612085739757856988504194501643200588933612929328619746385337781314562513822469123466351019910589197401249926208748518234461454365166959888667339594642529495007390562806126218872359034482164092859252358625681743774866671354475913477946754767704058425627639392316733143719193718330727693083251825856885854673974455457215649857004442518365493838395764129098511741126273781095594064270917424155425193344125602832018704774152248027209558008997498257920921481535958769329659099031767224420925859446832354564555542011343113809725644637108225336306009517421922696276283015534241687552532188291962010880131847357619113238620477755154955392589326367545453551379734560630220996930534925225260787122136389748645633356382174267048846519851401729785722704532131489672148617059686789434141549028921315689084813094997327349872555786488816351609724649912898778186973437293192887053703309022221647599033434175979655239918199515858016197011833463769721764882978968301820523140960084410168274584123580342129598827307065657239337689682228563249297873036698848708266432453480750895277198616994536876518875880903008829610250155582173507542188809815358527323606023538994540994099884187144291756332857461685858266219890723375541969321311652434538552139228296807092993201465576520814639892450362791522417775196430080358764224141519150816573113353388782158372404308368587506809780847225443553568161286332091955656053540362910665192657122852462475436746495684443617388398840602919253387551053608600341951143528965565062551474218704817571199884472409224134293626727579944945403766106711689715375548532281874168861546723495916963457297059362161077565108264016967342182651744350520402926804248510466564890555861494933283900800287435469701488175684794157709614344010481386190849342477852026767084077112463657073435432217668057856840567237316324390478465822162849632262112146609833057170910185122180814667657877422926864412811168317804638236975251034488143443914941068602120040480852787715953039306307543579199701077753265213717595615043034651705987727515264805203765941354887100626158193829928924261819912868215075377298731310865199697849350874001155050017958163703883865850489362392441004897585298877087887152874454210831760896047258120965494849359540021412803906900788009018771321963635752519003774129412223841242325532875142417254608508786751715560237536488820446891684976597287496440420796372048228101084628209668671287201368608072423242274038837801869750129697219135719665376231842078239641377531616061151998850365186180938406655044475436309236819777228550949348866434983868439610927743725008909848243157521381635814640760838549900896685643928592666117409681686997453022942428341347112436436201546555425649488331434954328325407417281627741175382891388394333673299951298619342089875291618780372115125635671445891061301272048682804433419732731154362538099337149599755915223212628379044846589702377506811932484337043621234239672205913988355442111607152446370639967147436863644452590171506231379981708521153629495658647060890483266826042496940045839012231944861648179305705570615824599621005378003475402082137597421367389305266406727325703160265085950325232739614333046774003013558230759672669270684995012982164261469583858034883199068578455349531097876194915466584666974124841318635634729786417045854594607437709186451294582378850643830539259382993630639605547733836304086636762702948014017196479588120499891847196302332897232959918209455238122965747454036782298166426730629212954172001863360339382311187606659191926263323759255951146742123417116808722251032703349433506824238595507152940978497189432337583694497942537228518565602216414074493148669928036558165201052619134260455650996148718963403498562332089206896647009961076504738141119560329568612590258046063365100020524955033328085049806414899415665369619254710546576199817863243160222745000463506847958978681396350109282923557671846265077171706608221812492727841741552954104354758142349161998980857485733011374826314922396344950901062583334623972707045005915771019246754463440339401120710370581514094686892107813117570507028435902192239074100161064997228116289495406824526996004440420108295650717846926747345175197412101275099036227849425995120152709399020959871980773383385186676692490873703716082647555394097259563393662316457028218536351852588750046284221976928206834997241199644338693050760555265315995358364939145228804466475531162317645460904295370758344958081238138553841918066748292757902022175852279706103362611102869431933803635055742947319014201383943337229077280517466062817646363943182375801003987305606063977925100909020176512980182333044339681709329346832869225230502367507553695861244436830533469069741187795708217006884442689488935605894825053789226076475608508189605372928370254295904246916973041856563331635134097427221853835924225231287397461896652685887937751285876442958987511701254434155849967449333235039937555251024255031052836407510628261830713204208625198368512835532366946939671803845144596217873637304124823258103289204135689816637194951348320970784260315470044638993315182759055010039106747878858756097905546536039785157847078336215743399880384602572376890354567285179352595984905116233977794878986229332106826688922299839901397540639723028993776114585277470879246350364153413561120552483326432588268471818130826033583708787630382049743605331307993292866217497334461173077171296986886058858024103303478109584429058565587562672873074890623834676675441777864590533487373885656069113103022378095120473964678626014638890547638357327641569311388312552466989584686777059187349941998953615300150817065371966139871428719524902904634937586018737967873081323071332289759953266774884670404232620981044307537233001847575748090055167600489747648552081100957963402075589052394600738969465968971504289588668898871459814688264355375508848009990911388041393757480971385545294782498026135181495810965915558251424175524812459212316560246154290995851537688545934529631934491932720667043848121107036810779156280656917682604242618791273743501975729188150739521884914588049278538381271687292023118480230187473391152570078639274894119857037152000832409980868695078704543618145066039931248545742896818568282037900072827813902328224822140157781213789650387689749124124947413459804127794846343212543211109360165896175850745125147930909503207239237231829757350038498674129429219915276528490678346624522323963790890049689765601711392265145998883396300769374662093669569869966661941286687338970533593252765479066986365272081386974553410983845233840782834385140184452905193993356189871128570821236597841604782359438319038299034580609665816659681512206237537591052566641834403904405006021034948937775321034778828304459916702734328459530357385382876681715127281173517244164959685886586270049266237566292781442348154619757436987995596733177296267382347683505418406713953685560910779860813268197988546545170211154341240801322382914058349140840329876339292096262747389901274663940488467891855018701234016558710013439071141511422398374706069314198082027804759413769397735863098630383436006674189204195470560843083273483759331544663906356446982565416334001342496390154413143234333380256552470898852882107539150394011978764518542974235641821332189346614785127365008103639325151436131640496632138220374339334657067296194650481847282871303830323836356313441352345059722084941060092082955358355024363048527435876036430833149470953995268304168616037642137623857339907238512691657318035983085601612570839774826296259488449997426251375060242858391683300020508920925842498239808589184473312502402646497421482597049260293722286763096393425726357427060250272462403938908429323163291375207870365437801362111484082854337579623905678566606667534389113640256304730740563774126557693850579282160592686359275461784872489337661548441413960623785452367298053289769399576846347139975048708229211485005085652195670158424573498997970353914142488996409667784125087955769643580178295128945095701099938591738199808077122960067132026056286696809177888616658240506220476318674912337717793292823533209253643533904750071502369049081011937238535705265547938492177103291566620320635670167777084369875898834704541507960626076990637566291265728390930657399660993217107767345079148407661142689680082526742952418011886419070431883384489500175122314063291870470928009568109070617853389540287083381449174404732244127928387687010934357900677393108708738258966883825733605236896325014860927755392206445965858225345142965618665591364639900646261660030770439420964754241553161102219145746129286887457624562303239330122856409190763873263035179127029141633836121963113507690495704126039065671389791538053182552711772130438406028916995944002462519590035723292621237403550927641100902361085105297112024914797511645770652277674768779742519901123871267324571543514663387321739331745354222776214087889882485409083473608745372408501285334279559246578249866337390157028080263290120784308357693254173001584725961805089472756129461122092680618148933749227815541614206919114332839481285201844991769794070008981449111078029157485427649225596488063486915073037794052410506836214511751645750554231756777624361599826978475526876044245800916811081342910990346812844882361387099553504710592707167552076556401215217381439243113229433386854514509566814158701038679303738981468492863155066464820056085950219067468700457947721127642578865058367905126521745176993340533993490736998830971080946241980391554457458636423914869917384175064451419556359392705022097998811612815845173541856346451599844006225722973192395208019017233393839635401652914271230127676423298515369887469282360007962190185191042598650286805586253636349195837602135903670768782092539270634646097267724501852443390490085250502142750048844469599146913616729441846107067030805646982115726695391312725396265824996329523045216094709521336177962264003524522648982436589396248167120641411448903267227122303177339997881203089247238325025290046756706379856736131148533256117048082088577849773139406513658744792045396661754408351812355102785054176232054877017414588665335664578991652427768109915971876120820119434071685145936948403528152900940994815484378324516513179197179681561177067273384436762440371190041340682507333206749634094548850305991743864900991969242873638739816500473459577750030784813443682880461083299700204494599134527269149713495482770636015602727972479041564326920001468862169876460399119326387519582132501678819194335642817001693941573983401791410025559508524853313961220514654171235900166012990009979080608476402013036674404759924240578699594303954064806989963420415111315163351153791877077839480956968498981276749018495393468383113618505689707345981742098131732749882062840964123380637229718547470665559158777676356222580461662137153154848988659955646815633967346111767549218775154250354659225118582267291366680885902364334684772020795080047273657065631102814518863747009640553867861019720593615222132377266685524863163482158656024607601841190454139721442030845502810182064355968876170423490178599100134142865006599642260432173882927336668765077773885544907865542675760357245165561588380332089779458894591854365547292544016523918110298034947098363178643498046996901262722862846755492986330857604285739603509442589845232633908345006072889550209138036070863510544913114080860869656249737065217082399953129183797228950877999338281854218794082932370313942752484836811858484061671826007318306028832551744674725623396898042055344123886638338859690827357181053048509705021252435598372710075633808835885409475310237760496352506140195935751613402160483196251184382370214267264486112639765219247157765595924203986030996010746132021860451431275221427689251276213702735669640353727363284621305861318258457345637843307648541267523318684082365035309110706926474617123584068994905190212617664355492169732318699664560329342887125282828381230501787387115038725471819663528786766422089522602198938727037559279150469565259891308346339558220543721587267806214119379565152675745552162076475912419300024000739650478310733760390737272926343746366861254954580455843988614839538000833332604906454904288337528597409810948378022483842768504761479801591519438058811392400792830159518540209060723546045001821853941655981295783764530195249245504737722828547745866244132962913612037253547269542721398488793074664621321744546205289728604463598304004715285729229180650589585898165446750846942627959566318503061140402607169907478670699714905068251847663939794104618443292058489636864987341048697027955107063017187159139379778253074846509582569550600728867246994097032456072430274850156924822054197872449468409571380380285908718441375780114051707562813208306439159693801650181728898082514911235967072383940402351370909586199973236386639415588262267088168297223026184225123387546407284465806214587618512539725000817326304473749215259749416091203593623886616990648157447575727296765274621260602492887821258715539745393561979260243351361666179548431863454037230451751699002421336891276609458009384220313629409627282410725067083064650861208577826365960344277077496300981191196153424702524589868531996396515163187548543857551107778866316693157685806567079832128613776559146861723572574015412099055234764002341966108046700090864188320656803572180610039810723047377750506045262959606014820950338751582181009641881341002140805364506458520775135181881062493833973359149047381760465087672204868458889098915381667195570055793650289186910729339009491381783304977693943701345869923439059399199278883871500001430623930743404625765969204482522401808170973975032699801309183664025436301337066777881627371434644247202053685637589694675176791914961497315405728949181848681524826542110616047472500071639860749230145967640747917447345815962405260235908377173535945834988202723611078054888031578001367668837949562030617393220675573264588399044922992665685817066514265925126045484084176453270633480937140771401328564583047772505877190517856524970017782258680757402690363328654721268486278712264719128578091347661259339879423260755124829516419750681732550535350050626651274287304627784998448858623139246109136883484971837725242137597895874786297165273241214481646870831017489704736531243290219485800439900968012633347609464526601009283078833886368274770455997644653081772311581004482331319830021265210090971904227989568770053419864654231336533992208984282988679132577374426882084393596291002842404814188281836563745163192098135217816649949205697024165541434083178368472322343739581988976210356098491938382486671086035435170664202459335715215554747558522085685675934818388385621905080672301543209381669888851915136842602254706697297564385366945581902017372627929185120557048230820119629866847997723632955245893768633612413440195337973631868026259558203186399406294977990574724319166937928515563463105153903874046620773761348184065099784014681518458475914622304500633607591829713298458145623014787681862717112417504477935670514847785383017267567548224357870073018643845168587209980981838378014476095170925122303894170970580842086688976410844303191987387304048560870351672369226148094690239594265065779341291451223418922595533021026420343444563828900867961762572710426091478470694519319252247835157563727961270409631351621562371322793694738041431622562610405530666625677854300597724683933531249337235170987382307087958245693744445114247513464201398964436905461931486607362764571608447800112103755714950102430587555748813946641640381644947418081109067567610685319038768326698683308379708126651558968152935159534796332233503819438310809326229215332999181210774291248812435872136184505070812228504180738574632696266800715978792324564372602972382556089047004023252799034619543617476699717223361338488491913941342233912866171571443622665817044201405768200341540691381871744577680796279734355752883109374552987637838429896327717336334892124790361018410436521205565492398411717512686610894659170534433581019209165311838117773352753389960456758237059073840099930847146644039866294482531526553757765136510251159345508300418117719821523459264304387948737329996771186572902736728878857473839210264742288884945443730563645126428943175796951648701412634746393016368313246679030383724292330471430266648032241036874485233084828443376799034118443447648232252778813214886607231392906019651020183236884323137206957122202852868102099697569357330281360232240587866400832942053097755534281762133899886250974076869186107562689144432075237346880175547962919283225371195393933512509703217721702178595456429006279529228745970142506931584985931509844272573585802735874648448886848874570218992150084643998973039506970433827251652066037456625673911092324639716642136091975745363163779072936312404279422836250163938893376986986028498598213490770442122528853657716680586786123127116884786039556566290705071594164189484540321418636663850929941025716201852204208495678522583484195931673482878907412616270138244167557276785753438857584444310176246591723746114125600745389051451625154920985204305134983801011114382660963487464206526876442429012461347223825629621915885281828765510010829020125163287276720271538577902727973124402082846149512432922545256837959720043939291891027184705137045789603366267193297835539248354304475865946576289001209200979771396869845200245052857501533489454207946803011465746549541981082341363580049897429115634756992360381988954722944271453465911503004637342637203678103286774037946996354575195484109844277592452656883700137479780542458098505065357549382063536022343893384089590017674547458344009959686506731256057335979597897822229435272177542064558961595837122415255984273006104564307156166228007950561575096287197201219104350686689878441221723731834959911154994302163293543179115621304967967967817962042019919318074341672653127276967212362253204986546275695299517203579834971517778202332070480747114047086290423946914370078925017614537105664572772617580376940114592658551928727491326735356181125053662276076266743481235835028730559946160960868863336766053674047305331023597435814689254837108837865679283129076158840341803638461993137692413809286859157464784577609586188169321084290401514138384073986435532657227788444786263191247818093428663386929518812186203298296538682646218964219177550002842584005731288457419643022693983669607532682144669046990290382689915530337287638466437420877734669367345563555361631647755680862716684479669783235995535344101969140177599770415391366305852416160212921586491150173266637276470945776639924812508090375983612719895470572921281881274090114107058444122608108139291843212117078356032858949774843506585316995358039183170662597676637084742084421298426099049044942786981183305443617922571212443228150028981678058391804936514899892137311615810979189081188981997488598172947503993234868418919957028131033385280063187784260320838599240664225435276653282276611521183952183202487426571388715360825239550878354356010938311183912624740883968892636209785552628251861883014187749181438654597806331741256099793529589185750022539766576656061913319971571394951923549654657690275407669248529908948997162600605206217606552752114356488455848805881050980500846624229558915914070231018727946796902418999420526002117128256885458794755811611898690819699775125112452950876579498088747811524627917763687919780283482605748890121817640613312739081232228226282202589746763401205977264989429714220813648750188619500463660366947786158346606177201656435483484155021302087304562328200894543558386406541614798121615270505887231895626789057389958860908732153334532358087240046585056230151565032548441113701034610163986022422407969971119650326021950598207505732767605341232251766094713480820108073274872309385223303373933702425945012501724204979802174263209125383894660755156075461773927878557612695237411450496203918621697215173184049534451475899906023256683696402016797766142145939086103329371703922840463435346033956240607023265439419456222445046033736148412903161870482007934614673527140774217911018856651740957422359872886100984065361824356020044946960923850640201169487054001159064824809738591544587239535060239610117299729990428249274667485716327666192200987933694119527577714939666991398892190484976810662721688895020321156885624434477433819423278674796428404229763316310896770872096933485979609245636486137580713078512565275641787348774651167802665893763900043968224298571969919926662055632805739671048790637901094843026259044578406104003267592610822613434058693124669532206894560704169672810265527299041674867605176548472804451327145471497769630199621269551955171153235338469031510204190250650432058887318469497035147556830872025449152882058959745584165309381160778701678693057582304412534729372450203466845668092452944831607740853972350751277839597124930833360529088428527425757873506531376738256079839473200308582138179620134160803645398558697410407854705520224580004132803809925132191400649221437197746415810448314886183843988730957962339479257781787313526395326863638887665349377175953278804755316985196226337653050292376477315433428838493706474199702090892219905377936043194215845417860310791420782350077571505545472066235019972714187056388689496052379155034706490361287275338948792865044064395825036287463087261949266875235124706969511926706103420266724685335180027367622199354009219769913554403036164474261775841623221130642887569571189611497236900411481097878368759485646914408085209844516538727577784752151138595400601870374138346775513291079988670223845969264880033153747474544962520895362237744694919753342712771122737847770435965986019556348983765606851244770447383505331822955073455681650598327784971019690582746670415539307713067492780949860674183491762644092469477399556994214369575845900041298161655264787131842999923518422407934757133562563838206857775067860674727059423567446022181658857218137895325427875541523527011651478211121036113436386425266008534783050098901654238097844206108072115212339422314017292357637515853708319586301235710891231813496470923632402237706875995407169442935441402270282209228088509308646915197024922875943025676418309242816345180005041486335498106967082941649276185127088519405798668718725250826974133678977095870690748852937911751548207747641536904820411156437829002643416771723755576842463798087000977497300836553431359891788199701399814848379348644014181832926196968271529129478539661254683628412580539480497766668464939376319394296038915436513129246343510371729633838192093385807814188305286679167187113372727741203824472031585289590747875382881520957806923643333701031496480000455736931322575795395855455733934158300072496820896174130422678250723734250020000844447923780353385616890885148452955509952320758166468308624751497505145552090595751686114158430484380536635069672221759620342579720268100781182894250380277294545005825718090308332585801122002398808606894518538560763184330564228123515082686008387854921978365545580564490803938330823419194770719466412529445324488582765141924333980183002186269261124182842126341248744405030293178046682444244705109122094756999961452545652512231222394786057962551561433279354495053226803227704198598215310135758726003592205502941842928617766452811584008247500187460316058828019771873121511006351506239430902351238202653153175528527593436060009100353921535031821302953994781322572389472202760912355823589723274881445074429389824512837276125541816283491621118108568784486423406559235569962096355081499238322055383090703482381328524687146706201227490556574524061630349842165669010605957181353420692745011946583076373850168847096350899423249286518861874969249685754629743398876809953045002785852430187700501314754017001284900401633414469547707925437096858391816332740162894488286796211493439328660755730951796738962796513973444777153520045947475822972922256861444160894266653970242118660593698153662880946145037060499234945962888828074000938692557789697842516013538169017937264968961616977710955461598322012169897580933613398247261400825316877201416810623862675870208708473593034896992513614624901939112064932857680213812687288951028267708640852964794890762569556100228365632639407328671742923205999478007669675719066868598791645944102967427743614427871126730527480206980352948027380356599553433054654736358530962317181491830443056423034270250763145971339564927687972602032911641781565609624835714332151634607795664746932586035947493772077358794820228741844078454782121727262212900211157813788952166345331947339767518106092451052185164374951494311003027731351842359850385900260659960201559536735754982129027507904457903789474078948331323087441163451881213615108990331308676891760528806718175881067750548037670580055318858280447551012427910300109915654285095338421888551830416150002762685043955326154593858725773416864325669706010052357773143274620491382595844470553904020290622893775551687639369343488556249600615523118964797348234546814008229514556429683890214558325637457284921534027468752630999427387491432944342265153650294313630190019073412871749670541720051425226088428656458008101060114434332817479597652537428419545880535031656863877024624506703043150060658698643459745439415959451822488962719885670607082153446229511438223112403987720039434615276394243537814256179150844531519668082029300654601452756961740828676420072857402580184244065575668464384946472193186519195518755585354890941053779066117642129952254169290246512602159386916021058787289915384553134217643935742626342650077277786196551487894956274633821890125256018350552455910971728983499879406297668277871485997910330019371572874915982703081180278290069490682789990210387369843195836000371080467194017237911813098784191281953851881719423840917036262665968023622159809624098283232406032630347380699239922633064596462360443434157772262058741680885621163119646673844783364068959310939557225167473529903515138916341981531458962371970293777664666352560822069076318095920983365025705411927332641510274509013525214294861407053449743847878693363091149600162174214656786214771010970881924898204375020034447420250526981899628895743198939552464046545342566989930695576751756851645344075741804970364247937469810065718689767222260306243718581682536941210685020101273068982554162082289666061171424180223571963938785774906423831399589730866478385608048275042607418608849783175269697378602967339327167359980291873609342683995570812330528279106438349234020897169201918959208827646845438682386818408186803342186129634009990949122201567865352075842492402675894379669109379100071593581646272625572106514337149172954228814050596348421027902351763621458619350645558167142308375478388542845656247122641836706383609601416975035223597290621725913328739529107489831620711117061243789559820121995672802965861202116941704777448589675472363893798601650269713491043988414798226200970760691919783884499606751584706931719918225313587172200631138082887717663559122738748412164278975197959563529139455137452362428401346510225700035912527787010066758093088430966161768614645085909849095959997836923571894588487604852128476836171411012982227387300758729652280753974184163557479664889840495705092506744590774781688386621693244414081678642535838064413412439167558925150155076022511349804493801664727222327709404495878065081085129135957630956107430076531195537900406917939655654206445017771097446362083042443091079827260688362158746044491375274305180401971481345405167730542837011461465047072147337642156660503737266597296689562919562772265772321392741766416436439671324241280555972164561619769799926934334073382370173606362314766441753179082208533958481101109690615796666765034816275996944602512154538618433366522760609830838731083293353901931331983934115236789044742766364332600992916534071982481047376807464139874216341502264389432458261839589003208271116814344224358400008234189956429479500300936921201310210613057870565087229241952236611611192045872586389504285044659209677896094264344886093418333490368281521928413851025986450288422294472492205733369383113457414789894557105026816533398860902986075105912108886963345211901359530354061002288060034425061292084524990231161810413816360648746857333693483069211829253346272990556935718552135944488438929341937753923852096647514234484613304408664279030259878991385960340155907095793190057504876973683585404829600760537317507341956602956652938174002572954421605790624731031576081967804588307180691543769105500029980403098373732664682385461589590095755763456164905419384833861828257911246462061180687684913649830658892943467163635848578736237783955278711624624961561570603273918510391770012530299702995392712738947108428189660438009355878553055142201922571942522645538206298471893410840926742536069041379614263914295697826019650941144674647758058059214371142023706486476559416718945485061315090154838597378421180755562366570070431310886894122692006063792830774194403415165027614696075219846398715448048677116639454316647134871365807807592271538117970690685968810203685132765435940268198238181771652007382467712108489320520516210008308911447071344175096987337231831594262615566674668888509909481853033238120413366115537895455083648189113760424505193751508041818303285982090557482406734367234846587059224510686705476694198820175569232005384435738889140357548723642604579016703315481496757616679208110795605309771478479044058654015979645492304490996981076187760286234962403531986616356804656967155704230433927207129916177756105718607351330071679529733547259096724057841184343724967593737017245973515598569211802329559057487992802031619453563288370136967593475984061968894519055170111523292004053629072981466403912292248357154940629911854669664841913212285681141471931666538574047026625297240329618878390861418750339423053915845995908687145633470402189004229328630999843964479465019997108906009439329469976690771691983365326080747433742353056948844272110381332652444032363150472605633042157248104451444316775636380151719188956081520249944276467975440112556987972972052290678034082949461337781279921899281814469776960492283698347440628103188618924596606259032494927173849063033007192207608789207719077695294317686438043754495571045071320659679811268175484813199130349891051808160716025372797367260443394606592368478564254588041754606366703442188529045203514058089121790827208855976190647617057584746703619633982908069396624561700385483267289988037294317637056674525308742960817702765476962738638615299357935981148651201001446321586620267694341456393033368555627883214111800128745590263890743845799477931293455430332527837176305579897708642908637715156023706184811792276204354937777896028627506772687507706317916983849519847521207759422240160671270873753932633523537674634709210805519318633708485782108453864555605147736696525805889921010018406737222856446251531777159118116582861255318942726952143819622590145464882413214595749066451442547485717305276478368186390470821172835665845327376041834794326886358404167799117909456289951498567054458881779309916178670007238137174517863942035140956134255904982596476715830731418982949022503867014824568945945990836894015129426810148832313138278652324490629678159524612957253668530167244807195488004593736136383134424828629211912486209882603683967304036016050562782934855406684438451299745061936295486703553899768446080803374477118931381985804902450449071035742968090869569778186686166796972443325099049550127397601626387491080837446345350978876804129589470812331187416146909361310128858360858414312803429271755254477757863754668172741006956445301969226620822197981548822821503301377813738803405347161579050064178888186537996195413198120648395636651394222019621578047384928405303690066448443809482197193929224091350829132594861386100439315697554588318875991356647256641865642451056774875099246956708432251913160622732900735805668638017539576838682709142585229202250715822471607861115606289385523407431172810269354847114137581988665369256459993185241035835593182171921942628455720246928499902644430343890922297822815178529131024137189747589094776716778752283666261557112228736874985277229544252839842615742914926954752566386177926880705971444644138814664961564851249581364393185163230744980371679915946321481773509646045106784433826166029112326432586351312243109225564113898377427324971738208078256560544662937344794687495046227006272497792265215599057950413158591771730684448571822458065134522043936267415742411700307139392386133869032250380816266222030052560256951627106665152547533540137800228717816764250270169791896001214450721713041316720789420430473063304133064135669962346701800831175363124852247832494421999063583193417079114890139586201349137722268421281469759299413106147992855250332949248969852196135818838875827370440238581981667531004530291264342611298957291423511792808368481026443926958465306280433876410215112302216800528720785406978369568410707522170647123127241018202940980147739169394753547377078131686680271189366072239131870566297987258776615866088016242114263676327765664673752943701779024731851395253734135067681411610261090716442213183925547819909215072525333760496189813984052300429481295834628839809546991990551963622781168787532106595914249964461725744468574747128857631858821617123573290806956146273069050028402618694410337781248848062327434607574800870335313126020299064474972724816715348327782526649590298424511924289315188534103297467564053070162202970357692503260804227415646764610563536149589543066969821999087299411670538386398125055040219511873538639537798629440043544527334283301565605904558527677724675685410533943270454666681555594548915723200107959568313985075870202894496488071500597010177751306111614391235573528193436228925199842561301636332693728610156760135436881630777497508162449775641422317303853082472557630754879433284695342947453725133849873957678046810462725821096636158285021939391298128282267729360474989456940610135231779078065724636085065006348748142386771990117080043708431217142146750168251710602064508500523689943884192240639521356688720838476947348022385066781100188905593062539436689970006625949694939324437298414322305217622010483589150305053876981819257705645509334037378877845515467904895150096163646067382016736682473160335405169484243554946260465810406149133164869934145549380568751961721033805480286460106021777207323190555571393505706008176759631027577253428383950457547814376366493428530071872927988705345205318360765881177780480281104753653827627919027546075584957943606526559182733964687086478098956721445941886666566873101398262355178891516128276074734491195063010568456747743763582776283757967121437819596652912862615280721213513206562596826540719577171082256955169727239905494960986214131685649402309484246537755679992233900275453354952039094212176401777766394559928346721835294053207850951783724927642090644254368608815103018290333798093743102691121900839506024772578825459841288859894184110198231013712169022815086997461086504026643739775007010137886789622537972644553233577998213621396058842697863136285715851825709270780540718439997247032164308558258263564071969218396453600858096347841111887932639196556455219473883019137854258034000236876951517807674003497399254694216441939956973030737146424551590064925022112557936973658438926389251510884196465973066648174919636823255045620399094631664225845308893205624682152473048481789623557305934149318906476667357936270717338736749417949240402116944927966569451413099132443739904249544991520743896947842566662936997098608920174930887444566306190372780452259279835340781954866354612663341098908992301000114970635445815979095659561356869087880222370584998290470967000529249235955249930447572035518646518725515020009475769394720412924122991083102866068011458765502744867420169960438702810543741207320614811268783444474818156899030142773824364747641115281244666475400895893046140190030905815483978637623036265715848322407332833927115014600810709863001236236791683584614428643091129280621016208541329513106668298655757354567748306838469865733541010633752019078646920263006352564126660047829223654529151150301435066267246138350892156731901846689483183695303790057530031628772795405274604403201871711178681754207184745537835996839021964073688547900347663619779023960594036230218122026615797806794358508216992563789038076227795298219071317585438849209990882216747115363062502389792962532339184580020841927698256023985106679929408161506058942966311284610523600257672788999006791308080880454082089398422412646746801629862239179038146242497656580106054981602169158067005886063364181545568263656256655209384961104136807673831862283581137334134508277841884978112232640721371090411661230201037769808378100835069302207666158593341697813650198838618105006733010236988915698887658295516052080629549770126786868776948484829863963807013650147534321424315489007185993213507331467530469876853392796386639375513392537613175130750986217215837718976524949426665379926656920882127795196154069410252375777663127362005196745369945499022703159983799469674926911737679815365880086950942883408300843114379336137938613703585816612802877753454999384523721335800065931296168876370414503271685465401447806028656576032681629109010846004286722376721382378727655507826965887596050516716136000752117317425576680874736693211181247094387753036429086825831674747678787007526514032974853674664525323686485623958865866452426882071375392817574396013616586733986441512500548994300940790833839343461395025256118998693174820588450440742887687095305581682110431102880388204631980933283607799300569286128034948279820890740541852905418944503096286546826817049598042684174079930623969205703510219413922742458283173473124024129553974712578798693049919763894659640230481432720596457211542688335193975056244520258671025198255603012582242895777476639345887844120862144003050843669120096000633387907071470404946499276016125876180830653822418698867498861995997375309793677554604187189069392997628632169014845094681913049427929608345914822216428793144665119226680061529751114419557892842494010057301595605809314161823161465133131952407889751872339988438953551674627076294823158550314886933359615419704381801986193274251551460487318064443568793371793046074917694167535319943160555787477396289572426405700019868520817245904871405725253636328493439996902436033603129838007559514022480025739386180770565619997008819406157252610217229320817997251355232884971515163488693347474208860349506891285105646138842185487052806047586694114474879926096312882174704906541809271263655699403599188858830121906033120713725551847737909662085323651600240238853728075335509507235544897444269399709811529361281218403033765705202153100753232354298019060712000149564214385723825511794331958484229987530387958108709288367836782587168079534018704474306109687688251011836845966061873211179168185192112843243315381827282354801715101783312580020138889532659083459600632567943288553585200732835056121839402317049803588498510420439726987773333197591737337390304741314832342112073140569135553525052832968638083941505895584867820333214612363052277462254625331230684977533618886409027024586697562785370389187832216210331195667968779201251838396294193466910781772117254433845684023531483969646542726996039808073833619150800875334553441423883084855914498957759214199693303800705376004512612914706759030344830512564149778373760274904648532532924554750435439916503886940800058351109181859462439287516846966353147901975932680426890502615714189454861896810198464968875642567686565598270919507625761981654724514905523053512574555162126555369894394899048101945652961887243022064256769208784315944356593340190022735517420184368405933810768124847142764501099527811793439284405579880558834635263717323635841000907410027510152115208031952660809585434509100364212127515777246619867247587008351031883532025024724826853824219599537790804949933289085795285639884893298755693172236327112898604384712279201930295114226750786075719693342307475405847662278712598449469186631611864122770782843568070072660893422130314841357987331614996864927365492218921598063217655465109792152432910550337048457258504103469115962677571598846152981678275644094026961934953702278028991500249107780738475121637187302941631138083844294230437136018569907600878885160032212900226953887660562677212589649439488551880532529107898229592842436581021416522266927352579945899982494634829613274026293673840785530640341410561756294723133441088940221587142959395333234346040704179708748311513081622162174783514072273831501878275226673249095669114826254186817224698394075479497336911479820464992348626626136946275740444946698029773440103604410421874448728317450703303191702446281938479352717569213976514153356831067991305750621836706908718510670935203432776611463423687258830301164710722102183718904236366941972511045129060371756656812806792033541056957322675587303763621976728193940699088863692892366790806127995019273360289102550760804183531883723027528501359704433035356710102196119792345305657486895534780878421971299005995535967326024883660179084631061142315564681207681914574330538878008580785555166449852898608948786092200915509982436693834604281432873186503277617116006627539790914620732974563560990812414188666277934050305092546285879213235484709522755975732304517488290260571763274996854067438312854178281817388615996002113410321193260347013378058537117794352411824407935975990326793453852534891172589453215419063490698627832018821179775595672884701631510614091756790238706471371403387059350805869694590703102442315663821266399855638562412077163183579057894913387873648900051794522926132937273959530533240576505166397032932988845148537079450397837260596382554067598147888306336201575932761752767837864535318287792908797983973265121957094221040652403794619028389338916574703138675861487070074612289199967192730760976168462866958980429571923668994952371611131287190829759142827497972479099405007578392647400938093073239822349281284137963819936285176326023773311523063056407214743984270689316456810241339401134934243447215240537942527538007675373748443342538275414482201103104958687340350656009268276429493851675886895123657478210928427567750594284837633103541703172061982091119058255560368266827948775057196328522327970688469116363021184796113364648806586780180176128190494984133131516974079081531269426930135434223495536256708985134959625196729666208242202435718510869486169275480045682126480076214645206590630607572844445854661976388160588404038368349114604861881642701549764610142666725308313283970604255204066100762308557316795063557497705063431182452292742936695795130364192827568411512270801306808493433133261733484531232868821681339266835199654993371735263468265044025721532454662595239476233051344183177820622792877769493595214399341778390332614139214981548992869046274368625546012333833490888062505844210179225234048400712531847205628955119551128005106920172579264444816708698470746822805044459050056404378203632329734824168112855791624782433252894744338144278170413884535175283422058790149794229508519163568953801891840516973744213941674777767791386766826778801619518755179457701180105301891159795726499195981464441418637833296279781167048093145891127794393108378285634478428569763460200341236774262221431684111445414231313248233096771022747638713716152177614019387964925196663082155284402618912925443359136944990294500466476651971807120808029013878417015971853230006847607139268257724847534011296630549760708713262366807883039432121287818850281952311453134980093248876580244980832663004258152558264886810108956175439381182757712444444000117434654568264926694285950838820795415968381094815639314693507706474485903513734433574745034509806769560104369285600435604404490299271474360299590507515720383081815457838310205119896885668703350450013567959344280400902200933871592220870533801500429767206230006090289744087245096719940515902261206111027317215149243581530174492406234645833266115038529820402513534788854694731852327272576773319524268439806717873749774958616647345246405652131364814411363922106714112849874505191353238314685876067805067615077934872610346951026428818920053726713775568618367535992357398883575363230120149066649467280201630309395812627167540183998620088061540915560901641835427019386022880578825410487618118526413366637187301048395101281752482055499324604193238242708914156164057387588202251787795282693609658392450839014033615586943296529408800712053509995538962319011052672248207877193102347714885496347259778904357003810837273432102138718976028545642622371127954999101515643281567333157729020261216973110639402526037842562525816849644916087797796630505909916530948789185417391382010531989888220285292114849580500041921709956105712469892297394283560404911624494313486359329114763355093418929079104554133261909743856843037766757230981506826109206455992317616088742905884670440624356125330834280213838967169660709763097143588467432499536174005196911532187566565167628811268634946710318162927750725463145928948044751887069030135771409529953236421409905051456539011325529089700599130034385772624927315416812222824147727577818846436781373049094947509214930272445720689172735097328880798249228898492602817352831966676227180081272451620287277679708359271719902186173422085983147121708480271533035121291723970124137045699778184749631630573493743014187155917836966911896275785551667134000444715518885034912572495784642066455690192889784988743849047281296166255640615374262539225616300623060906483377488631972045424818916582397612996719771454552662254372874628603969792474042190059087718181136451403886700769290182995516783102621251438013145080634470076796817363860361808168565384507958712183015738723935711741035215583448881735459547317589696056563031536762596970205605939901134870065418274823918759058405800722220815470990478117711463429063539806386906425576933320127160854395725260522716571965754730336428734291507136217774846795407752818306128177261070388757004585239637721096877403171169146558044848441637454949701951945834786473816533653174649574868198326245912415501311806105092263988714475042847103481057789452567706077691658514622503281630311418288387884223543330077810733329982775159662287488164098910965502142410820550672317473360431058449491058075866665790683387022323627922751037822510352750827195850353400715851909566674247197018701990961526184159659410891758714156053092316512764658859163286378606708806128925709485818449877297868920708329916790444177277113542315506949924674407771300999713173324193119178340636409352537215535783524359676323192755752707948103209853240750283946000068839815096641718071330305259602479831610569977090848153377908019635296584277359004983039447205796748264501324583911678661305154939994599163325557599375070687528698140295308411484277251463106111942037315778391601347875999168885674737661765223435968195603895219701043896691288144535958262854480827545325713815898716322424950383629222079419737950244471956802440626766430027591419990845572282347845643654165773926046461868915994074057052913771990042567135027202258488401684619890166149367534915794967227759931719717411196757401469078955939710510738441591338826045414022245593534062670563056052791875437580626451743011038563376699602652760370360772253795615139724124191409515126869522347180340479661668591322818301668785570799962205253327540433932009662332253223170052949206472547301451156199937210036895170200498097106810948854849254708618826053443022069385924139119441739666497421450351189328727743578783269352504702716285710578103579500714166776594863625326879988870054534061096455031568466681144526681347423048455049476447713856844440620722811592341581152686694848082749554165053685964906332944274370693429425921927516210945884750874095456069014963056889472467767770368278485166122086956909314560867545412917034060378919336209626524156188399009370039399038478271003598143692156068478607275726978362673106444405128554222399678170928355642332129580427002639211943120313366476938271431441722104032805478873888465600329336729585963432796954009188560989161610753790614376567772366986290018072735391703023935259805720825467633477253171771367102425074215558070406079139967013322712361415710886615277666694932799682688918786803117354141945612897692600368282877091285666910130313575686192622141261774726570320005759440594689672712665826486496966250501249869852706306120005625293274994971619545539228854302053542563967243007123203063905651182054386057190177067444636381748499584365573493566063933248618939180803967752100596484884471672975632374695076184541715582282129274009265654782450007841284032630719603128962646216843015755244313546782383965834285755743683212494408351952204324685624375159524214608152620930170366010291882818179843299726366427246854886441687299420481017615897781231915170954644812972340417835271508848423373828767230988326652654912060633877923430660374325484273010347775907682113851191727070927409067088477052997501288702308218647578985390311503343042624475885279674318187272141683919565902318811003641674587886876672791457922839626593620949199049397003587408992255981210686413911057715287402713920711789401939481997270828603706078425623024150806361914531899059268582214523078239036741027137692061498241244337687763514841106685593017571174467210880472420220876505594629872502971812575001718964772069645496131157013351404680989927254894733686669484833021972930488353513011951451439149188273415471443460386265165378541504343223834101698066678180643680877468171133562045357447463452815133307777142913148323431045879224732469573897499411974337562210421003562138793480195844928680803757960690282332134065422984559812204858455690045278884966383263767635526990999934907922365825011788452846383202551878563542423030879598662474936124195100968114672043789096661334324037385909064895987676482075366409871697052724298632168641760757650728753387970691722603156756055151666622326084674354890528671304837793514735255946169409547916736038254611423176782988267288412535629411167433690985519382181681017013689430404566228747362674246240379543990398777821040682902738339590405979535142604480401539389427192884740849840542860096473580019396365657497471987117647537333554969301991311077309140151032541309259147229375510604707314460302287078392940054891829208263570277465467627388725826174663511791310499649006651909114348629920115635488973076485538071349004454092498861576647332969858954748094551840732156327947628703701394585304218039303522061034924910465476359339308335220238847685756426097074317758180351370367509772137488735824728768685910360968571190084330014777890602176271831334212720143265327214555079420162031076983572579514523970700000652782462863036679781865207832037125574039305510670523370463863480086452474954283017009835200003790882751618352132526652796671386680346991452712088065904587480603359626209744708055335294728785073085978832679811805180201142943799852718284374903208137441656319956584675732045753858289156306382137169179887960394078390369071697264427935955851139354727028320898717223301943262469195969391243317550109390047385934355725523842840013535858852693884979296816423953694191618505300432861167206010461858385501774718583677532905921969179292266214243389307279096934386128930716509453780941850493726404536870816278767378001237835208002284003433454188136634515762296957702747400261589172271985668949131062460976920580804797183540490752246946910354892521313841091897684798496473797627095403948467504476061716587136948879357075450920506993868639029475533276627883110179605742546290711955380349054662426990062778232426361521231860848476450346059045553734987953238935314874820839829923148094953587089016364395933520654908187672896544748078498507060745612916891893890378103954673280148070684990078042333980532502020211894756063414065513726241160177128146630296020479273898939561576677782120446656347437676485580467776691650985947961958342728501272126570979333229663247024091742699639063288978047312424904580181593000191761706625379431234251456514863919819878124209836903424482809275100119682456123393304182217103616253012798574596305988476534850337150573133960721193268608677626973926880182907454194745300643536414913905095577998396500191536821380038534905083464775945903646488392875518649782611341132592162324584343426499529366696080030648669346657875604464121706101207526726416820701191543360553754993829937169322759508968784150738919548447000336890501927972175368483098201288445608191839448522684579147795501216997845017261498789727669383017666178404672752397683773608243340530599099306796814774741833329284343024998270659809062291650805269098892519558387995885785804141146504294947109567621297525912614962574659414953450192844841900339665282773403166851030640922463786739360713844134104622318791474584301886262570979925220456810957457204234469717040805697176738939355508772010796617183305926602165403130315440008764901217803213260854348457645219835704808540820338841250324662581470835115405583330503068886420756083128154519929442380942384652079748241831210138506445504378313765748898244793582384186723255723413212320502623973803691844367848946046816210506856562909059124688464290020646765400202547508163860359427068216875551420650770289152852689487621409333974730906947555944919942707417071366101768789885234643894062761306603905738281205587964898898005438484650719234310853681416543736977953394992043055745191097758958281330738556350959644124599896974754802090524667564418750237425837236131968995524632377646747733395711152388723774914270834307034856446488473519956153967461522091608035985126138727231864756635798955605112835146522134609599691602856302380736916757813949613274360977834828419654051267511874975345553962032534455909494075912838550084599550710891284354799856403627958560061856246333579848708553078724840114540328640144512210955123609172524763206409413497468133784405349298644644191282767040127619923805661194785211407746109921162160250522122035916274895767824841713285710021239097307861179834819044616716736216702636831900092474582394981334321358118915215297707897879175040756577119203796832667058586724811082635872314971005018380473492333101488497145380924161919203249508628727567126250053135979039944376235639530438714319757772191401538091473803297891084608873642696452753391735763823529770360105318090671039997889795484235308975003242203920947895257546188927821267915871521296901732394096614117692966228571987375707682017465309722962347883019194405829074719601830029991278856548637310101596072955466790981407611801616573283660432907352792400234687919811039087340034700062438088266235864398676701652147828372083186850494789556920585696808611977464066645082121844905992794448026003927179645614232127071158648227455739999106485722517717149725136072891977140590785279547545292591015436988342297958206188553266893463239481385991777242901861574505063622695017531906610209197259029343664427239918726848453933447433747862709970509496250147447185865316844705356988756651227429336462605361842460906159591055694921632727444369637039463040642870152424389713468186755166387706781020522216555329190535185649935520096455070366834615275062697043904023077051522617168332042258749019182475166885307843715085826427242474625445682755294767126277261677161163552777757399197907631798929567181306454939766162971779573232795263327468383973886352769281949273181958259808447997497457759863387120744470103518698306699261919460698508870737355923920950263425646635095551992092623524482414890217907084502600459828053342448479383868539230665223815294550245670279255856884184177912702462694356837181892144277116260383978796297844653765340596840342609160081784065694060686196330088920842436200598589442884830647760608114894223076242155604573478371513611411346942857237412977575338112956618409084952362805351198067965349071136450843044135661659781943018571363207965989741641865302890042956792958374673272479815055659058449947117794988519852504283324905779068404994349462788329419889906067936162308736993223030706354232566906565088211655920957155613605065649736309854799961986022663494715909166743177508404309038215656070615151427170935430725390766286224167932478085272605222765896018890769574132274056576177413071757972221480347589942517603268105922913931922322367533306270690360085084626710152813059705543086413873228248328020390076920246501119189275798003191851397969867014965537101953665999489405950111900653619866926519795176005627312909060647933019700401216503148905949054281573298723377200743353048839333181172055409842019597932921153025747040707870454139676583995932280235050395148707954847207285109958442345459461962777809591567697495179884219233298692195321508453094115625211679963236962457862767135339616465986238835281825633026988589544142323088104964405419690220642170871365342518076079368791314981177241024316098123110291428336238226325579175395051840740051281533353822861769545386035624876644442353001778992849331132629412654477025651391563252864568811756668111272523114450622621102207737953990273088951182470937619367691086922961851931997040050346807519231383156649985406939012597834165552032877497346724447111923394014637199863858793418232995208141465603658332019267499757464028227571278113865043412885793896663027704564261547389258495302061426515225063852081597117947891189929790078975870804022602972200548905284084681758152633861989576952724919921847332570056203828542462767854818979742388126814464912284202670106845842907342146933463262768273574672556892049155836679744146701231892280924242716297155291021407360469019865282791432885721523470424451829759861096311791322317696654766124308983986255407606461944418371848014329953675651821996343619980760503164057223471048607752067284400795191679164270600432414085299229603886492854151008538177842880505368231789481695639085840124083228170553435991913783501836862859535924968554326375546376426119442371761139476215127632802659166364140437890689011211988916472666729349984489110385192856547212881069246497970964925990068581413666918903450124459032072635986033786065022307503756795317996454210991027551415660694299910434618480862846431702994480467225981331374789962715498995847406457565973264185118857181320950567997387543341250747524667764614152748276433758213978892232591611262203920435594213828222950508465458904557489233359027912720343554631654342605952870917762191850004211430409964673152105597365904279021558478754312123399039815899483829755961463024867389558923650970229173891591083289340290918621869076822101446961383887833206306782190540898525973718979930520179262217285695484708994239738376054927562430149950987584407641969276685786984973781860154699473119481728016507998897623202629314754455470893365174040255310382430126384996867171966663293436002854493047570706770194127304279180944547847919402417945722564016030103007444232255971682432956249670270912007423094466872188569697476330398300192742410415706283960646162445575787891722834409963639569504638825681755454196517953789730036671222626515223647734810406015078673051406668480837469077136807752545631532919494353813973141645101981085202291035992989502398682623232019159240858673953317102524324454962740259753235528793577473382782298655330192431771189304577835249058398543633323333385612732857879567571156180528212543049328968576066803473691804022721211007174754339700057254877844885641261409728245576440242354635752806825572279743899780368927344902901402121683825744415573849578607387681982440861425571786890335037248599583753448344961519976824211911673292883266364922869042989777268949759922119182162681630052553980155024155314122977945762674950432613900170211802885423582021234574444204137400314660428248931853255668316625725366983306279654544502479270752100435922860216915099082403702877007368186369278819124386747998897135312769907810870951554781640762809967424917099692308977557421414652923964105625755834586831921523427711031197500234911409927654588634899661062840056795660368647142209052496797916553914373531196837207897131638767392961202635578092093194396367551905332574179246441832500599501323331515888868043862339633392345956750723216360651869034123946238103436526794699067000479544422312036495497091287516980649305590050094858501146255630030245454439181053839395443899156651085814026108035029835073313129458092107045044319170748333860186232153360904137738884721372934375611783277678388689468954192082528873095172729544423986435742523428890403597713358684890700343785277079357303318066959586634593373609915920232061183944271978975631859468237240608044618020036491148270054959019668131651215250094897578475240544026913805275683677860093197628237663179715113377627245276340458047761700084267109893905157779968985914817365588471465121060649488582420108769945969995477326252346699701027215415314011483988783495892782754770616839738435159850130199046435357724614606924188285615470874619535295933589326715218131078925262039631896007995205633590555971636822968765815105336566547828398505713919817796517854473034509272071516238190704578439831481497186062787591252369494353460833677105196693999491347993446932176004792825451515974935569089014541689300159855946206008492679817164337846494415960225437096235443823514351160960562988773004759946172965950390653846035211223528949885850043466622608659516313544718062914154578810288999683570191058960010306587255110691203050334610539573919019110641594007882152660705402339314418792768599438194227885944846930688516758132026430471323130203366520555386219068225144573202765441128649744177608028876416036720584032663113021755671851875232145824036156864184919168192926169893788732367999761100407039867115059925001308503686321321471130598402800150679374894485695526174984649725172643727311978597702182664643276027983066138767146764444810494339667370434144523162231364478126146835201754829348803966486226542622991237216470839413915977415176697841190654484843653755412037351924199510578904247471303369627985770491044218193692808314044051785084680719778737217517712001741336115524274406598153607121718184447979634732098519066253391901490016240197977071095362125771863105284808181389912515567092927040967019860761133702951090061350881817531536462742761248374394197902258043821795724829093431357054146552809960855961276079793822543634418808565440088705236478773172330919031150728538100414924442231201434804508577250577625448714141498189718701035699377056464023316131011209590161607911637825527857664654769597447455622757704065465625568214820442663471003649131334327402675066411497951968875521994651706092586736508582928459174932922361725913380498394334043741912056470963753079620738977627946780381054428616535600839750647345764456632775353222448809605414536531711871608881984237718265708927534362644472173543572944332684286389484523453519269654811146453001965158338138037911505965861760640453924558582321943423634573170251742980302034970006853809766666502920748191256205845885492137999923820569196025371781669203485073700205234569099027660998139232184927273814951356684317626476361245090048971707588741199133186258937977707210769800606379039871269975753437360091211229179438866039287033332448130616789492425956570271044327003480354922116740039082375533534024961467502285060718360286132881111596934030037021597665512254279450206368397054680923547427462940949071188664313897395818001877068883882382190049407529600892726710662105051493528207524231933398375150910783953047997733372160560209059235818551771012289542612984222609351564614366415123431287804981200569705535276452040912056441025780123281575618199459167097237100635000770834682683038251251420698853780887356089120991998387749929482289353003913179485939781622086813775244139957560680003448541297577359990314323046489912003737193297378177030014530527243751909145721777073753395443142557859194941485654861266484665755422950303950403981793183990149582204960882312882121078625168869330910062821937423208019306711427206943525630968105642442959187829646270842024976080831479804457757511163272908134601808987347751075042423347891515312506435729451182329894799769694900204070710761198044630293448705302017758180690718300019107850183063998389455950989258033022356342617034608044111579517256646112485175820974167395750739649900796303738497057811135753344763300274093174116349227328872064681805343439477452898022361732120775774735714995360319385093115431968026783911101875065144610287344533587807056011793867164776477047023574684609771920722135534408067795122518101743653715962272086503219053142773297087297982352294806591736166795540452795476291489270339435178371067114562872772806065272295886186947407706392252891393598050152735342808531343554031136260632443918068103074369621647452401994959360123275517907742315017689639595050832997833782010494159997647796142632466379065826296733752922135363071202765446954978308275337086367816796150104377724852610719099117683171891955513026627238339305389701705625920565880335004377880921417435034205029457443444423379306833278874839124466432004289196510464705459013264885587777858739589993724694816155221815462396931602104544742152262035634483554074706608518651270777285959926398523491830694849509573511113945556041294444024614556596629687158213053588582830292411496673289813214071080719962352469703654664612311994660954639587892222621880017931228410657999986044064534684239775706690656727427373536905755154882979480407062992548561121363509492032108434772501646810950016529598744059898333111879159227291178288290778515214410605220294382472641983741108226059816984663237196324795851815773197239940425335889480117116660262744347031859960977705067567487687095548184734104003434919674447095232014612415839014796096150331836676191602538599551171991702713508044770086910003284072236100169598141272286119785764778275820450620321040079044904704301131368061414342136658373394480350859694580989162828957254941506152920199367879504571233772188410283357926406252144071215294660706620340909580454538452861958441230469551280964055142061198179443552071197283211568699889418834765535565026083566870927677595331829440754593750938088286478387449262360205565676482455878429887166889478697222008909239467189858903364963421004737357454593658008473731034483639374272000738225899697685459366450603738588323573800466418357059145794153899385701889652065998427009068842554399480818075036945540457829364628570595105463501922687329176384557821584246188188948862697514256393675218232466356137631278003329709471142301302051026406697488505492967530602977541882048809972566485741628649995812555608274474570085823578575125124090522954291978113525697672663657071674818517335695961518091655083246275444524323731625056974567607078095437555196144684308281402285506454861502709850336869709831562262640615239140313105565991569674340014855775995870239467158001409442247814871795460052355760834381280706908011289112913736750023818870593013805222157847064601650631283271505957363146901244205686921335656917703889196914543826388487076154913726994999269798608448748454921957108111411146782964341245069172774929843514587080845559352021992352634203775471451009512815212789365982406912778839436993587482608321805896113453472788497338771238029639608478779739849196866633051862928515811849706592463920112931274226160070419126666152272597540036770391704654154405003733958899715089547380984319644373821565320012187743704052188545773310806194278419803018686984345329423247750923812616532681776704428609624838841140140446369333411562865694564573202195554291529559482119008480536990050438970086768340499046667671687403262897255283803055143790153582342616567434016578056988696611305025160735560990087951780187310221502702185416158073378142952126461090380303780024958688469130966185829286145884917006609495288480058351428946101517077979736181005118729652421662409629496999928987723029914870507561906170197371850457085903556939301593032232267754411158442903967201441833357468474529867070557250484574347741733132707499098896325605255251262750979666120992077912284003509279700528414188373901442938941252645930730345677388866418585973510067910976456082285883247550112962582311055255072293931430931653059454114398704533116836291996568922797597656100596124973462760181593211996929282249573957068770982451209587424159011971851243634513975937501772614677462009621954769506083907398885681315468160505570421474492846518359339202942498505297660208061983636794520991358654478053430166575080212425579973214135092845341175662323204853910295578397447030411670747337676609795143816304257695491696233750273056816742601508699664995003686974616610787595933529665538387878501194335575149158159796713710953734018970095425642844654533975926584418248656059088125085939654652592083837544270588424614743476763158270790796977371526054148915869433943229127899778331286649857625885050438073049195438899706844747954942756553132505929531058026833010248348676500558252199278261382535411560710355038585766967170443989135536213294005228970344024723905081924982365652634713787849431784800187259488851371403218060366957819338446433814016263969759070863115590588046029838897645233860325050866065639276464501157670884438703519414720419712723568268768379959003337719651481190904850664183680924624778084544847424768155946909724863331631085841485466272322453435102001776275431545498153539320408727910551583012957208450253712827390811604702614908557837108802074779987104430870188185210317557808415558606009627551592116534957764116825173509928430009625060512613844802695688549671421318895553296756688551471596898365540290066806836187542076194715028943675135870303815896097057762076051702639389492851296716579371903781931498775385297532124523727745184312697258216834002863800463979111506043313984079089783841063723558747644290950676682180542979834659249729985790676100147734376751571239195218703133622485951311321951981304851008835820750284716521601955500812901043432931446154483796216171435326595217820799365135940756681444693942965932453591862509742351696600193466700338539584917911295787891543968571669216827724181249929869269963993097819189467579979933079457605770468264083411879029166725763070336375123962296160612932142397051191398063089020706787107141627270274771133451367952772460231667530324035774824473944026309115447337545738656886538650942809962636071908265264226665139676886146578249636588011104440960061512054510959845520094928754150371802215681378236892718087187071083539697855005985820141731954297252808337832958459086096642444770562314424582659729262194715846805196918772229683794955301174166612348589300095777040424951310925434277296039910912265062575454718866072931311615867824106180078223018466932954215975880973898832211606486978269330441155209104790530181901788790377066319004569575277037194962069411985155462287391853497367007217744588464018222214171203763070007502767635026749827060802848324533135659589029839912670641419150073194339390873619687427791391793571390892592744702750746516689718902610272895333235939660731625119598325046885539007764411043094028067951216216600362772264016302281788038317341808038812882284146061678320059851186080700092539681147170265871826928179296414066178384428759964491808872196278695667442817050884935617777534117505222510893949536793108962164714434556976525672770653302742264060349993067466829386500687026565952494112262465463132237296960657815244303262213236142607593146044291363432559112700773384629538831579271558481001405803430235247455410395050674665494918014273768850910034940182352625397974584319404101106903692638485784536844070095198917737468207885576277820383438920306209054289830271513606877174267774096359486221225478267599159303768396458028746045415543643890857346946776416722485366025863532604133550284840631465889310153743803618582369643354097071167082629088290081117406226001398058840954618974372856859764260052912193858800146413695011551712235694998709261683909704415651798553156152121904410411502763669070434061689302836940953507935089538138813325058365933321880830027301701905849605458086388624363770173571047161990974226891897241469881285123322560473536995689797741183026249376783005287687455721272494004354665882709770193606494278458402490370228982028958584024365796222448585582470622008052558545467831516671635176199122893390284195407680178997703034593179156432213555186465828945488351069076035942915954083685706742307762957650701489029508434918060177172437210970900246669721352277227719652561042512129818731767677535317628789046280850126590204382859918899180056025786207857457883429773644575070089712058164913990838268837627521320923584798425710726391556492832865671200726648721308757506338347609623139652023754102397745632954990738248944340984979955187008935732079586808763093103634015086197014772224490211134203027391802751187240984596148985199636951765518525079441264289256901282391447891926151785931288825533049388959502262484825035839268913573225405436043341393426517680292693265416726835933960186990296063763760981925394370611387440839282802137971380650523426659128042013629161284638436718402623627517186659473253049172393584541401541267178481262267029992446628847004836219446781670836095264487091378620609659136187575150671965661637452529946378944168035175217974022583673049383628341571650217121787588644236036947042428568169214493444208421691257139682836285747369144849393279517411734189593564560617660526661164224878862373286984242278572417583662851231517002459811903099130644659226878896834128174518450734439533118750148125650802586730122570582802100700645146646746452704608142407596069692774098444502316103318555530335252131629859690419055686680255211359647525425906931664308267478634935768793476619660244242484270346256380530445954586767224511046128974114589056695259653399099457153209971814725260470697185957426925673127228133472647718142641942704508197711940023265615035009209159315094954894895026255767418990134914389544788392899605389739702327304419550889794571613133671387113401690467160343309434331195080771395542373224554469107237915008074785618714861815317592770523598038894780893446573657221077536529073863165142706663018810479898273131344816989313462482914701065402747857014859307295028851104025748211909043103508222783029894733242445362022030932244916427115388858560429931432639079298050005237760245084500064321238154933279761438541355346230417683182407309836363719517965165883053699891079370791240133925066581845642998133695465855860041472325194442135252823349703876338802431647430627895891077967778681737736092072707046188961784020597904271136394243407324935863049542087333342990621859173611199282161859162893285977062141033424436877979051563935610932318341881188501781744450116452519771332929307714720401152989206777609854135494243842154077712047774804291767495710676352890733503968065239681985591151563748200565662480636454027326332307843320632470497259502120120994905209911518455066822302270657918886526832520397863816194400055487503258239394416422035737877984703334060145990703538565709374065752988448298642019686417326537728673979736904748311858323243630836859487293915674586672753716632184993898957914634958718187917899427259967587370529678224966250625114842645643104887812294550288264053523261298502514159712599461285746474224257747889750916075667518535825021617340345766887264363159688775437620568817230644095477838851219735144235407767228458507331340931783867336260119177943404125315688517833024202926394983918618194742809446503216552239534067826667336631625610248719361823452611535973827291892438966893003475306139098097264728628061414352389240170330963396296049328082982759946840317703266475043820732747118170390613575391356471959766504640241481515997770395091388757114524361209373552277412434228185683903107775546667501741324334778659940536542662216784420779815794108004526892748286709266837334499275915566280081761645790128463603111697898831815233249155194368190806425923912167439850200027246942283645274235373256062590422958643272012922126816694327371472257850362746383485349973572534563705056437489097833452301918916756644538263785287725850983090107248262713407783848060482195789457180956639340657603189943166990961944127249218236633048083066765014099417762116429110579016017345505862516613545473857083021621318299086874612466245804928688003347819520173926616249247286520695089490615334311680951049168012837214845032248094758036882779226449839598081925998435151945482723824897728889297159157073623360643617462930615747515533934763448687633796592744520545873047755174482794786655871909571844906770774718986026835561830325639523245157828029107823054715151882071884799451308211003794782543889305605100596208586691486867444759568733260020651881705941905136981071152423490987408970662646701403406089070828964491322777857859157095620530707725527717107497558290845404180174548429453502216849389717663078146490866386868303642121574485379193130404358233893563275905066703771983399035077205454274803048277872131491533434351591025015907314832267924726005929712473517277763738194069170919448922096378310686394850324140989182255489878580681242845742418569365501785400489729946154085559413940076233609221695659598338877296480981222337109129899177241141420296098524135212378555749847256338989418801758347636101700557268421015018692218706381826075698370337989608479158157984648232607777163011527915197332041544831893488433859678309212806774530643790974122691033189724756963093453554541486865808428164300107793747323412869510759863211155143342385831782715150506770850050107329118264966124524458180014768120995774739602916643104272090430389995478719993243535733687987572186520385056864468976002869286930199590679233311351264391684775145608493710913697412757520671688026309633951389844120113664138883865281305826481187736018430085830184019076231466356956376530689562630271198339071241235734976751884679417116320003158035432787136957886257653006944470295142496671954237893670220110870377620260551042236571015554101909891164682825591151057115940170479083298402736142450116783257410474179077615814952805289523907501878726197809527935475619609533268051918511628819235149221569776831353452143362592251149202535456312635793417713195475400255455629952633735028851655334714753591208837646649485939259559502071857205638274063972152438594994791703791905302263483692337213261675003241847110654061241933720771254010827462794975450244688504944336730988098151950657947334384939518695162257516179831284688265950646035079556597021777402240994469521984353452505394224080295861682394881601929856590994849541226222748390088709196024389573257788974786098797334364559207239996753887212591932920630079023079245919566472104629058383683612807465398204836430761918278051901568738457658694777679969127605864804303929669071641495707696679758358588272790568104394145703579531862489111663856567597767327812915634363391227726952493471540402862290038985862671501754607260796080034874107668608249914804416625525807020780447144517799864514064213856479560505338973057029260745110347588083109697477353631084742144922686338720444259756942425229323978289665800057274385211347965815685696274557912160387332010415240827822299332179754819989576733620945343524882523582700340794730665596930588218840373918782904818113914236880679519647095739811175251648970448642473708626382369110540533304728908048532953326491559429394324236052397193037613643068181183552421561817404397261774877365470472149606210941104955250507575266012220720931158989048910175050518257573950584865311133042672690675985891706740626030161995667284256828608283248174101220666109946799228588692194532577223245646412768145563488904677074238001828091065897249208159392321427378332055228957272104963737526484723219994792960042886016204983453716899171641496481617486201122735636445056834252041021235844105349501998544109663783156340676458730217985498554597668673477727545156359008205566936478744469660791437457892579683091455368952582727201519741386796458037712258975982801393396402915158044303105430433142934591985709420448168126187034475418641683902747486870082645535049142182678009095382494844040548573294522795435348048315720543288530934826364162866509563106114717190274110569968844671709674042475972055520473259248130068143566158049522151445013954458273340411783575033216101895479100399317365646544848936971500965923822246939752227560776597000832279541096120282782297512163174055607894719031173061680897539151533705443412451950392228652857043385428001564424136803307513041310390649120404582349499819512103666586968801917718124255568309721582803657650870587736013450141287830192807914406691752018114501372230874708110924366280928123225949905788320138373997434751349546251139265664928189176698300036641933678553088667932789565800898701747327617931962012958986263767782568682968666374038528594035171219851940905893397589919864271213413163300562501631043232661477064464515423144338990251927142614936576239034814868285135171150796785388758924871488989978434003344587633062060485595320247199340733011093816420528817456580404166394119105891601552562561392544352576826522703048056861171211803591668831520598185147662278840514554982232121430104455130421124768853658349751396888924714740174040739721815973310670974581719311870618481136858492004657845326161740041386559902105742934526354860167348307193379686216048797392598846528415708403024872167671942043942761010198687351633991603550788648948544521872043225408591663583104287400165332667591697355699063919033965788979344608131633545223779913297468240476638811380303085617845668872392496838171779496158424652566863735936838069049446842686632110742086849170156991204319114440135667370971849683688025109195913358681084579052603578591993707919727730874432753174307905336795096878064293891628121745441223282691292410147098749306126944486939317907175766277434537834985363959255328242686594975781843960990871840524808736659512591425728678317569504700346191858292020793615583167306203571299667584017691160736794208560908360197177779346027389216321208870183395180535832950880826142961679644371521392592086325006496650481281092975414807499135478366268250279622794625979224056010938546219668069585925299354904762438748370589728188786214897774108368800521955117491389952622911976426481511789013880022212005719906507136480168617481968856265235777266714278054109992533368578142414689690974412677065250300408935874044225315073886491401439147071239306869692854445504184215174962413363404408911054104321087939229121428085556328067002871791194494144682741857311491591697982658138753152359410778419019966036755090455796874247172526206483339906851437415321820897766846298001965806934165617760219281043123029515568011515693336037479424757742486598916358021291798994255246542025960317945886581414654718080769110303178303518475819124335399831462086595185022227226362146068439799756817847530887278958920996715653079776364709796504400506843741541414860407985839440303019644977276424938784288446801209668163715835562108101006375476738253331067777112340876971276665032068186267330770621479000190527419121560132288163048306265942117378741142411625828435080032237898572261373868184392918065515320880136880112944154863914826846452498440353277392719610728472154788700703324358862846617220632312272930222013059653803870173657768322433098510857015404383318183536638622305392835038650122693992667735581064226819428419443511555802089837053854513534527100964314356323652794974854845802064740893678864906047456930652224113365794631497931964362578682388559594993893253972585827080035401422790018389846480731089322090001262262290631254674846497547830708060722139106939597507686647071701167437091549943648237913909704201002560734867219331205343194282262868085950312643473062788291373783581182440422424291493681288692399994503135240225717824885430105302251301055880274094520763150007715849815757622527199915029501638418077768535217593683127875797221881545669527169394020186421457865857035783971870975650195155863890629823638487218715914678217827813512283398742831943214439111968980225932382577443213726473078615672379276166934477284928287816361770761234740582326505943568136390154410855262926698185127672102043125046668318094652543957928410547004215862926772431854648790781179498500528925828041993117287372095407341591076516107144974723833965485871985888183860905922994831951001285592391878685728210865642214293173802717128539933245087012266500734115308838916420232165137785363335292712423512021229761454871430151413957925056353712538993224364546565537814741092457319562221913894214892964192641365352970508362994253757976057805468188629934682286035636242145371174727097756798863568855604882910196822823331773226735220152563820651988356928780896170916130224460139183258643389052850472860536680503340479625971948256794651377832310067148044726765443394682807775489836723563987670351711552498077077645541757563269096890040128938317835606112912371797805818155260544663481324836661263139193366279739900260363038301716492109411354562040150837722954658305791811950736455321012754480410633656305674768644152552693716482175636026942753554423202914597856152763158925659060813702815683417378899514715613367715674089489276637888041540105552718286786750383063216564298779645563491919035545233906500702640275701048410598194595596971778485366964658610448664111095828206964421866798389078748030069581555384883354040985758833884315504847735711461173855534648646977823727353058735843091349260469341298131374349814736352382322861246386913241552240697038742092767920773569545548870008177910284550378878772108202926717112027831853069776676664182884745348324852710259911679302289560626439980931255675775801188721142136054214473572784650049871142074879483603853966107457378924461668155041807292760855084926500485459588162288186212020344032081190259315891674809075877834615882561877655059346985809823669962959368879033713639638956158982107481412930979228697249164933088809214070821304708740984154807760697881771105418362407399366063811972015715306367392385081968454744382906002879624019929215510731109251098664006637406982360546354397735700469029458442148848371926747419495713973375047781983587606685263390003229686039783632439665264116466225141108560001056630403128204622344799132735291996323570535385602735783358445470969186497482680411596515583453108997799757117735750155651910725681639100691925124296217342413358671647064629701093058706674312012301862631877921546474127722125399440959235860426916847233436499429722559587184334674971249429136100822847487843659521702464381785884198360440508373056475621734816331242179052020312065248072506599073523719971297062496420626624771766873783972320240938395580432542629389914738124706485930101245171358405266108901086713263111775953031401619709489865297725414388891456270389789945356100076838548011807195101993698138368735034238959634434744081973211642738375733486593730050610507492336240632647169768619727967492211441678166869083114837909449343255919954741008339374969987874249557502138605744946954593375058894266342861233700189182771085506869865480055974841503129092268733909177056385733018611344815517999528052608798751697305678945558878896771440257023960293313689217695206179255640301280207807617884733907528161387868028788970338474131405665548106157510327174493328672358602701081549404325156116403195911986302999618243841880421708483973801029061215437663060184864269018878733739517786921374993745899606032564465249808197568713837789127472913980229592271045120664001242694305674258488529148514103958036020074217560020560628305959167948198979216787011430570355694046399932798807610645299143685632918949611412946183265472343910520689068399627285920883951634122485540899892018869929084796216465594227104124325968291712659913345750604209580097508129817463104281123154086794570080184411136054276958844426195546795388415473084025844213428679094617162090486332419002176524838208634462048836284288474485514597950318621596832891163372509061380395975013696913495845457540920648137868868114238358788319893575574491242219824302711076735877255490906664318111983703490564201339297000617965371408812871285363909143816462991369754193423702842655976407649523683574774711481026398792638780416095196919722429504334609353474010711053779098091161558614648349876770157145326844166159368798498305915436933784581103670969245095902705524447780090220794542865847145975482447684952966409484699588894448172574665204913144310186059314188821019088280636129273466539333803275085155110960442462627723015838178737153239153202656675257245302654969749770887753953911938493706170957580683284807183554642690158601600771487068070333266209651688863253490472065979234434568675937487585904054856582703873418424711228783417162766820913465979124651597502694518973340550058185542821113838773326230950355831721529296318849087491272447281240682654807070080003324301704666350416849523156152317692692230243530283619724280886568207664997787740549287382672084676361332170554871990980666585709988715420397628713063048723484801445040748775290742578522431566920332981796728896693828028888095073921017255982233304604512069134351794253564523513055958747240236921234478958759060983239617121920282548704606901503582783164455281529833692938254127030293773291916764621937222328910293330892413697149130126687591060926778148121971583735050056947254078430673059740807845749595064771088950049130161741638535404541821107337321752466882320272833769782995625795626176754900807744401574654384027451729254177601623447702592678259575798179876198007255050391193397864757500721219130195107530798754286998430923379533897300707117997769606289827554403890749888731457855009076625289405790114824499873842363893275593524257850813489213353776777276968818060086236935350269185635319349923240579459377510593219722770330650167010139950489625597479151512412476698700276768371320255177130756834797405854815633675479885383766698754026029302773829501606437165202294555465043933694512655170625315296841132770756634966576568308260455543349256109184513431586612722271901783573344444037826670666684948222870742025556683191222329404554491708707305707818168143043277676750692318702419279225290429350810758336555105313123618726708544766433962161211182659858022903602164396618790915612949844942984065089952069929961174692149612231692737269855214877873178761348611546480677804315985546867356280315898099759710662821465946938281701922838527512255468484603531043697382885715758937393164587987051663639081296745753779726774171881872860657148513994253100367832980221908807485075058437066291264916495390835865644182712285725642143001497347360168127654308778159524379633191770118199541441932645612049006304395829935415869435641594235365801804231184051798639458445841982833610387827101339651828006327142671155317070005654568923972756771714049206267760464243686367916378760523161694959722235227293375989000043134364493946865585636165360979540270718818272809370037055289254690158303638530458195399583099724865884644957220895677763045912949472750156380614918034806222346016643954334988840755779678000461160060419719689080722598846174084495283948766667393732888894606846443445265001635969506042575193562287130989574100206275000685599860002765674774080619140731994150316708695592110643733552361520466266904405807356223694750907682344424001567656140595039960199478774184655414292081637550979845791659112695014204031381894110190005205806281318883733816632931226610549094849585372520311741025026967585583734215122148027560296025393434896206979818250103511058184783418459865164475401209958882324559279089837756696460051108090779089870000750464695902415325109839153857945459000634770663385809883109682778507233135441287405492903882032224919888732269413000391710385933191331814769906022605960406544734899169171200822558120298016607707714116791002410841676480278544269948011416062051983154828639674085980888961103130127030564946543079565182408715195927824514405518207642220763014474310982777989917040055077420492900321459230672854084021349230972488024682868480537304032146026928081407423287695152021406405734305092104640975776259941621452354837142103442042432444548364947494654998814044137414436931222887976796204478226548166552318507680120782890637213808262518673971759665516956941426606197577543251128019591809930729694331472894383276361463732648905169743335248367714715034023222029196243674545707390548357171531863842809545648706364856757633344140658571699642788643674627599002896571762050100846576381528959338003255973626022301959196532411928228042871296517708405681629596649544275394956796377992571560559384725215609838883908417990536751657587710843502183011536830306457116984901187431705755294506739495562696120452684144256689817258307786971636996865821134050852129642418360974538265771558800420880005962833265068591478625199849967004362570272213071664964067484924527679830973415016972826117864549888907786050456104275811850622344020747092299772660522220276810590452245884802937883063769104178603524678470444646458154786612373688979578195601701506933974018314681935401710211224939329857245536443800375949863557820825516033272672509978959461763496905346305822113145876498944047141628144067736037255640271134101333158524744245749244496873241927600369124624983723589304390185678658184778590279255096641205603778969988068469153496241518462081707332371895412084124864420699008518182384508392823064898752282057317924096341574479593631312187624798274472432343702849530268836860705232189006475352973773230913607199624365831325194926049619731331497004270406231635998577889932611738102669642544130404063040836783195869896729486410750485436619477062692620712111739792093825162382680316558102342581575285390275662620355083287207282583531674765360073222732831582327126841522146280935668673205687257701536972470763117587504151441103508396790296946879121850841543573368592992960884061126295437317680378208067955194588410276433472712824247173868513091775906057392922120375203150965284412538205351886972532938519605963827566836612246401310258583322398076063465778886174077565097213542976413633118003336391958105880225779765847738589425110608827830705123950890450629784076203759560786086944785871907839905647678825256493972468985401524033961328265266329451435608931770724832120905547772603879003516222828617807231337084792373615871861926812599009156131279429125204513975880751931568401147051138608872151370032072879507919907876487275227911043089795509061370817215765198829882235082574859007446773056380215222771818804002375197986855898121095935810401075938517873977023718346048270186903653801722991423868213985166172078266314644438675926327347779729528284860347332254238244251325934651446380138314867524206099168186890633210522401181108460172571916335401602360501468527320676709485038307411979926346593802901765763283667820465175849450947813429601037665845227265949854927054890958582043688963427974084000586346535546819208069516431192955517991215857535796699379264479572417183482764891084604194664987807569525620388413526709304044033764128291175188608846861023845471387952115426177173714928333875273514799067980147011352977020070036692073985642516218247250960995342606241860130306201398891365180414127372437240297467793823545138084318532543188045992424599842286079712903212528345342781361516762510114059736093250728741789345803727967227091324489240923564631593865373539528846423274383612538556116050757675232197846746493000178062308976859075092405990736948453097968080739564523183484033268108504621168122188286405921163502921660688143701501745179602691393450440196327135700289780990017173505537546996362417412350255521779245395422861631725678179692669356075519122905311089868174997467695078987241553921261419454719040561513264951552204490138594477350535229937688115074971875959867602936199692327515362531978260380253002606742912962634962645816098010295062543983067179457289917319636545577668117243857493695377027469486685565357247348562132900538004846868186170249344813154371696937108240379021853795408237951911600936529663405245238737099420266741995856920754960027398939792215396252685126284630811905383634124272698871501713105825921938649051841332803840136276275620202637923130568577235764217018343353228336096688830068332550735670695346549531170723912010775229937153889888157042947837572990665211875883606488527446769212461400637488433182632195907699931156683577470006747658129947808067146182439860908145389599944874863698110903292979712355444430743310520051001953430477726687201006664240799475081951444866156349360892362819362174100077478001241885380281337358007012192540986147348964723858142723965584659249137167755702165011029571044856057020037452395072781911860830940329846243557036730732364062444617679991131398410891032219902101799446801450683249704400165200612049022731929534223718841331645855835639972214245146065776596402475103814221693772437358385098182526314573621665820207031336220060988834634656232337824762063655412694333038693863300712323269368358759974895295386140163309207301814000528285767509557344606653995898121094135998205897643004048959503194568107968335972646173796223432676872016287362806261230092746103225952642547193951131399480102970676491456125495864722372484159188388430901587362132416872351542541489835350079745887127323437041420488341882030859164347457836800780727586344679201236993414828242554051690199040329688187707528122443951883207315163134639229761287054663674826986323599982392025417335926853546190685246437372065427085777886704705845048969544259637711299046966424224090823323196042733973960058044736435996948564499252764336612523921512111416540074544731418420717042502070281883684805674378387342443473821838349318206079831639670192532057729955429827962093626074508624470982926945663179401459777953174376368066508062176677530148603143088515170706969029435905340552835744308557333487577608143300965019092944497024950788950416089236468619815271783037725903382181010882259192609524505398653230194535893905527352412376073889373424463506723195852717689267626621506630543723868708766780465290083098339316162067807213783706242452971294622749588039423899585069404000492864401920032708461087081990815113146638178943459768768864883915158582628191624393446824337862306754412064542844664518548658911133826449054220936408778801005772798917204061791538387382140540100343325594340314584697274545209124665929164259444241563355571974164619739208077586183736153772377296817974699782374500269813122966227877748188685970236416436614916374483389652624661848940008732712202397750715947064042542804583619917956965223431116934444413178916461250677002799061769207735298292121139600763614698649681135483246511513078792070788348505448720250310007510941274056814025185107085770047817153583533061347289209149296312688113266633819565258365067183640843460994589896144079824127089435982770449338722644980502073248924522199787760962095121678832869204578804552357666970906003699622492466858353793789129694401398238657939219109732137527213250941241615632756069015611065622623040075353006827116761972087696692480765258831758211376485828372049106406264852404787682597252604066341770286591842208976698512193839655638180035889120738138157719198683327931407968952005282822440517827070456790389770134147358802146178708416121326670023212269537538066259932425741737261324389118086305987177975976708474124950570498480798829603663446395172613859604084394481098233889536985622867879480320231646621545761684567354969056243769123194422596760568923324838169419033434995461794779735455800572182249799691446224132105195424358415795708431146287063736488203246209001876758100556643012981972733455865917564864815019038251622022910735650217149499249331951759831418718346944936272782356255573223572527227687141957388861755572364985879879682944487603584717244958838285083213357188634695230726879251031895410321093585525539852841338623049642229632454212097191415015699100557670470001707438215700921057394314739334793192328418920451005301489798242464134755859089531224095837070810815057789928903435960127136870385198665053373408075856643399379918110293837817435002272889774167535390142973681627367014655451809924766846885805583704178692097842084860551086475089415355328558639474255486835095842881540731582360744415217562558281966867327353028916496443296379801550906615508620758173642858855300892132710914232000482059211969913173403300987421880284409272192274176811717720944803931279502367008962329354134058135425973518434512616082174523395462191386350025642254429071443561578518945989913496519458234656600927133552211562014812355967287147207915578595486422782438283892598345461097757316015836530799030032925649777538536586396024807585924649354526056106598861700558730750268116803950230874770507588011581940669216703209320451520783290734654255794911147350230999834186665402849714617925782987419614690053493590614010955145178034249077326332301504698031302307088451911322264633334998518409180314713195166570907881448950115481977508726889420600345857168856018154562734046862137762111032752371881792332521346190467393139402858257524004977711869213730194759635513964293134152740076272048747606990195283423214662890077504822318807139690143930854445654002985526490232623952465716306946808350954540048613614336886147441404425316264420520146113439925283417428649984714681573073746288628735125473821942926894065367680728034295381554143181819259728981699170317676520374433648616703140530431051780068293349156538800758852752084288124617586696369351388659839000509455762070702696582405117444874755167226866355515151091942305329523770365122210370584305010384788196982375358394379613771687990048912107208086320780181252461989920636711039374245228223448710764579690107823073297664379413113101437518507546991136407273942373450265648095088903663089101868645048012804085523568528498849854341500410261454982705792733781736576117647397118960945216665101311773901475655263988532265057578372701306656601342953055642420099633143314290312676032410196199139861324027425784098480263626657674688658856110539843831414188744235037364076545991537590573350511264572891780025100118734503975579998848011911610657510066172066787597939122331320853514599816066126915021267412711588176039107993551121121033352230551027572565263535766015801576933918441819074667190381595090738661968115556977640659674551250578840678175769198652640652827979102782081038144089147181914458393151306602522736949300452998742017209645634964007764196811027125673292377749652136670441248186083294510006042951924756199373877977818032327296822847767939559769622975988429002321874172943535437277078971173707719242914235031047032372164366134906716080372368998620960917758248942101097199752184053140631774356605256498685829614279154446554572033550363051154592951991483009714496048843781692598382887006752849209940022390077972397751817300412731027131570954559910136641354014806559181390607829973511898112643668553696619525049898400176804868756430085576599168870796455903306066624813553783568783544765400552199707597976122657613777786344409313012070197979198261497317359068066515520029220830961305287404200586513051725538289744710281699550027566621169113653679921934385518291909601272977252630255413173103504592728582837628136526736899677211171182388254463797959237849640176218265424516814631424350436113639576320462496935180947142852813835812462985075677928584525538233875300933458290223173814862206590422743613583980360542988924081177715142619516531950992017287165576447420378247231254116027791053345270637470735400215751131013647262473356658116321439951590602594773584819111323253621757199026972472333936169108147809044136782922751024399547556261095112527872823484982626725073483319667204577421738446662255076302302293295744191183660490218432501496335835195690038580044737558420395017365821325068576394172740915843684582925629996331823245861620166696126198570246046602928934107443994643040125797402737824581419885706722402148583314972927621205428505639903697895007696021976028209516552579194734943167052798816296019029645219399096210482860049901531092313005005805739642589897169487066662668112723579206224149126687785970895928074110720250764020116729205220855099462930409134811697681796791916217289832534637129394093916107068914907692338028788204956198396985843472888276922873697131132913270460328003627593439700979940365422017531505584524024173492969840831714353394379550028937382453625334954901293779043964718164394311670082361161512321788940978188092363013365469524876196168993433427228827848266073964249221650743171664338511220551569722131611480852861214442832507352073738985535197339995534542419095356946422487660834542757073151207110351040289852188552831914325398361264058085348252361333603628659864580818603302838573566853970793975819807977453077496431753873450068172684258968187107876202393620471317599870792880748153924831014837416880266825527579493417795521575525835076702064334676784108698915605215392463298212019481125851308372067458241165413747103388363559750014584143674390510684580542281527026987819042671613642994645146558686391354916702283737374786667031332380096058307610186212687107288856405274708152765341341857072035695183659851118000700640195478822932522352057495226437360836939035739395195875642060144769630928211514867396018566090497664093234318890073096634809978233500172230932739691870581339939480409383611936869882802929930389234839797341593510834764747535057592709041787343959745876361289564663048542131724111743248536802767385722785062296918787437580155928432300415923632511414689022111502081395597566996094408365047515710238002581391269148473015105904117698621191616514794355197258030709837378161746064833794642467295490688333608869527849208686898143528972727192519335885547258671472741309549143675735957898726065358194447057820534978432023924336471407848012167011664164157811487108945245197933578304684225669239422656093359785343107309627239125905202025818340407159333273713565943340772456137583671387727819903902662546002067958313885387208500260657642266984124943480563740993338800628212006755821637816519550316518696283978856731753563099587582529452636701324417227791463492527644776074659855994556214707451927537213058927500689284637538771837731459025102878399586350967526279072696733470530222647188388886316312827023162471155479333468826123925285431598420697079059166232690544011085474903339168754830786236702528552019568705551126186549444252710201398608154459654248539512997250056684703462166289111689754448607179906376608125448357056465601690542733901296825494132410448928215878547055654950774125991172425528894875143422670763062292052257766724826491828252703172162274671265065660599428625932445313281995044589866718526629450414324459614356059670860361784770488486770506663390792383420889421067471992008685759353339618424220289771673473127622573971191770470393510781365748848726765078727413382396094711329682718247287062401378631752119821432626268631113504078406450932014643026579051066421079864687439377540064970154746649809371718007215325973323821709724235038953542700283452989351448073511343450688932094953991841455069230267609571501213438874937088917764868455269225018387357590563182575462884747332838334647664453596730910130930700631647355794684670639041001716600904073346119402093363728392176698421336492365367961110456284531015039236495037133055686565506128356185241543768832537107709488083420703926348923259935102692454368227617394984136294358666239548722457100019714545935484321256037590444162787123488266647561218809571994142192191590323680479742322709141612205807528114972001305772487986389662121127544891567211647049601742586031888697548999181605649849005559261269967627465764916378166482572012805396510193843572978787109778143918438349162211417510707385884598446005461504447112533383010597748349341966961834466922820676978890254006195813313970838801953206773967032048543818101891608864085792186771253125312989921135138993874310089421414147892071317263798487535739729682551754253156100730876188534010795260973238032545220430188258090705035710274102255390462123656004756138970650249457585792265690053835199331244272671824772871157200179769829993004494951582035609581128449139608447799530700704530986292979822392873556398526540698192583994511791104097469964064432488899278886299489407125802272331133584413747046344731568193140784614585487377399417112011125480837893161436891062377005668608042361321147606797726366926284968129439264482718329704392389246337890788934831594125398179254629631006148941814431601368527792447083366632941572515904126277420657932244135477989761691703260155580867451371640209588101789597396238500811519504877477453885724307248849429260801622925610417148781898881806452772512101498325985444326638720062893997506294597833929801324985512248222232397466871936642160965176939851065677208053182515288536812834304483401245682822057996308048163214634269290761513591291577530005676840571908577816661976764170628475228801664831367323912387930261698786893495197016604670263654078478165546535356397344295575400218396820124122302974508114986239674006464771860406773714618827198257638425041265941115724469985641254960910216386850736688574188801840146376875049437906744020274461542706535731168985896341229917019267362087434237311065378084147913131503590544266297344209801140293414749255546979827841594690745598579579174620787745340689379461243271467871815458362119267680197786595590474690152093604705938290879084110725193083859235396448772261595727560854135774929879896407180068157953961927642802947601084247052362483330420239251136041883104484705439161841989570266898243839310755073006117857619039978363296505427784471515982224996853694955082784305723140141682188026936113183911182381406778139219006524596864031580607283176853749890624917222758023976448857980507013386650660524175401249012709874459599243758173432287370415008971440282456148960000020629210353073327073245161465463372703705236184133475124106073014455794763322129539945727031525261887516104381441477869127415585733995357022320447342965476180088875979041660735683707138385670914485074260029078651468659239225785461177753673100380936625363192747847534972430533261844060154872571323498435180110841621620571659150940851161414902861109753438355409563998301233197636688902971231073270088376458143120755359310175319832826286504925845360952997685467144560890037418688478097736144337829335610032691443247592859961892405353411348894926829132247971083567641541248077655770816271422316218148084346746490551454151753265180295145633348497860481085238100104242569944531131840105033982280148941126269745072123055407080722386555810000500250945332478408973288389539779425411126549952498531068238514396772302728294179275629770183546389033938376944205597903967402004811144536181363582825351713085110120369336089387988346496082665296313531972947708748862590030880654939155477335130239434547834885868345494993620511990163057870150170272908485215214960177332799447906077485247724290568429040500271193185723473288681927521219393505324077186935560068111478461780315398095866823930375919097495418550336641749846045722655640981448947274969996206893495202050592828862214256679981104002927751495918281807624509902895882040187725926354421400168300466821942867247575813670413482833651797947342621692988406019924570374354746304186585750370281664659662734390811114214892964077959822254391226982618402173465431319112487275615861043674627842336619518548656102816803016148058059770791541609955934742235599652113407925016412474230124930785960550383367364292401188453382139649783972288466076239219156609730022226060891536621440721693023199416205721081236725970458179083080624183477945848758091710702926847988128679429753514271998227212093373276075042626583584145689609389778817307388704322708083610858605966281929170329193250309751524343612257939124214234042661096706790773626368452007855680448938651860390331200402928875748577086132636380972074391681845062690520124547861953015182469168741315749079374729556848300773091708820973696372312143245318163828697317186873111623769040608054070811177118531014149283886644568449113064229352868976557550381209201806819622212995521957145311535870626053763501454250687549223738472040523932812983537810181822354227905964390726547189070574315029305102181915121184594303830398259612733213169644325429365887245495343948522266004154870819972686889975915529491871235919036946513820822539958257172875887595827865409235816163478297535572313198993095960718745840752475805820874778154627297906983511333173495444182788271118859394164569164542550040927913737673611897125641930226502483342536509067568492668583869929655832558665448532527162553767730514417325345309634907661126667111719213297275350034011997962466637683025748388799906078781054082686483484179921345369158748718158600783718468397734285695970452881833659102400722164551456802196361497416188368821264596591597887682891742526202732719583642377076210961147656713831452449539005620332749135874810896762104408572037664823867713386805322722907028971285654133594232560949410711368633463432471213652754119479793898220497803924693732539732253805876571747980224466977798936783586770451723216851703535321827728693485254950239840520365526467704170287233678034987097423454618285082647258086697386151013940837315188907429309601838025261537078162681021777681285475120319974907884607177373197336123282404422718354056146469713761570186437012540873775002434185119347496965998404625028263345468646914990113732167846139118048840015357030022926450813584774488884332434994638325399525573587644225040234474293954828436585201287755604060004981722036550339426431613872980783838851613882227651392532680011303387024328003275905101534042317592030088829745673319135606336803809619851121383926494192819845302032993676031656337880127845104994936259300906422067628191455270268132211562043550124011973503443618255340639445184653050803594980202006998756457260195501960448163122210443451183772016410280893663168390093605893468039111053224117944053744235128870560143793783747790792038167947022576986057783374178675319509303256408104331365240764609510944046270322946017613594457081375841677306259289435617875215192211719798533430915513080146504974715436487813375127050352977427398075775289240790701410262492239683383442187266463795971000514151035889648739365103644313827646667892603617462845278457619777173597181988680551655909194066095992702172003243589842150386400205944618786947129723874535213276427724677504845564815040764995003086133592609436414718418205932624455414482804112404424564751720046440059606211095822909694099075016680789599438801115871255598840335838680596186000226853416402778619586526076784009571879970706996091282444855934891168870313222118890854108589542904720111285127159292269865710276308611689372457951339508996822377455368234280912641625559075648662148879998567523779228216079362835771196029514262778437542379068764781012917159147132372917507041791607483126310045462712952384426657880819826478422241705781192368728295133292023663371591265599185522685680802818989504811085506023531032896825367269704731565296837407120625939806014115712295597141852389589317333904358588581216272495950417020403199932301501210535688683046246329490704842894941405111315303966366700849626983350040998453569928106074603365748021737199240496913445652316209821721452966235963990964646893082657660742872720007062236748216973486699192021012437644765224023643991504134293212771752270923733968283934175635407079756143238577533817414307274730992559744383452712930890232971415182486705715836137018661628314964953609923582985080466195741761592897579185254543028213726397918492716296567145266449215377492862498006677767074348502964992959748871584119724551822384925219074217635674136933982771774031001730678129267797004083065011126984831960739009772565651328137454342744750676408188647209920404058456735107437964909553375433096286411220244197049821937903361099220106914725963097570945782596485934525412675500411033442291364171983954155288729752278729878643142164967498037300429794281971464854286015025773425845633308010902843440092064745255578207140667088058700904127040901399014279361805355163638658585663237709526575679480336968642094538413336760533303674549373535309216793753360358382123001888605683980712111783109497128694035307981049520835952667991273993522090140465458475529518598097374807776525110725546817162842818560498407462731568181097217119601598362976823332136761086591701642735162784678404123470991955875338558455106841412350487867136792594606588833346709282921804150723074074397457211957562843028983233799783915258588023649059056524945424325828243749515538485633083747045483536959517290371218109578904713047794498887800595970461639975143727104863988436962936443178096214021949442665374492361115564092329266026091759819124173742283603804539613194650462663245970427812356780242652972959593206216586951987909843862256045469273008550228401988382143535840344132390665304677481457165038650609541608294008126646845422981869044063841179932707884359829796598682806222965818297788391321996235192488940171982554014006782426614907307243689014532164202181854115921250424952422292454831582143656189880068385987464759497849024701076303680931598779483214320161890294110104672312072614729072683867348155622331023963486047473037798661005235147368712223736563253827309491952426222769396089018388937900719427992968259661353546460956314119121212439410350502021253125900790540620020385711112187759447866809053977131941968881093542540564990769999526258594431739534748599935257506202667521580828818620504573431641070098127219805689660268971124494392159947601921920379809589242711902678209541354099593486026391387588941452506097951174688595573586580559053347288639996575859209277781153925849191873584058572722626638362594414421730232867428565670792930599750174772757632795488781971220941141098742469641770828894050486089309629025419948247265870398197978754027788401138391638309580223802490690950973806234231874996296759085995773282407910898519880258311961771415608247587550668508140697281756125041505772248130226208177449791938100551409911108722632009125693086559919184076197429820888620903012834096389144759945463051919744535332392873491620939122868161510909031710030645356128616821478414611037522715963836919798402300904480437903413635091387001391566658872422356373296571680089861976178211906940334279727148508391297844691975122571873716239398679925241352006371868927618128260800039171076988728837076153965991820049405458770485015682296404618345289842113802164466613456996009005665083553426380421447503916092052274265694376151896078045154758842720457257540974686930321881910794438370717869284193343931717097706268637285828854915440591928592713705327299935035380982127912363481653719232283110918782303052316308412406315658956234797297965972981985886429580395782868414961393125307251223352147393097220965609153596035339470139527699557916816730028356546994780402977386848795583244953009469377110407751067968154647473277177708785681683397118606174599832017656005978081035345732511568207552913684616350273679703820841215787106076255510287684896101419307110524048511933992055501290108231475593547106601964885714057644156818236512713409682224357987370439253485363574331638655740200952593140439607168575714926216295332964241850494483113029948446064465401638963697931457654477680887433800382144337491224538502844306307004572953575694122356860194682783807615683790084333105227004286648436578664913965221746745421722765714557664406165344506049846373533177334286824740772613223794120129775794434149423495434293337976109997092401099052005743291940283791469808580405390510353946783043679608970662752047291664237135802560279283788937200345887814826602281987266396321443239978565903819762237222701286867471473266319311412436278318361187745466910110648787803897514997355708839034674985791435912887416971808114675088150966537703292559028220233778798824512622291255934801593408846993013068384529777295236798311559767986351722725079099724828141184467320693885868870442999766665551144134083406047937215957111389684470475892791904877982620033399682015978609603032105553614585817602960436801656482534481688648383644343562760296290184043385425087027144618017712664931615887658378911963983021500272856584012715201925738775696728763927603491221060197983399953647598930839372499039010624035676111646750299782682199380266621493209636186261954544333828605605209498646219138519342483823106243632427941714172183378451752566136389504972773592793291307778734495991604285105410193250118397419832795516209768869467041113376412172258084112346977414234600936976568617489665726848765092730777662230287870276214622071495741971593965990249880565397200673333275797732607290238861318360419693077575494127455436347832310884803356814677493733780753792204417687311554020635783099637623306586100073004027427797817055876086966149060688965723986051567133063772049988245181246528869717906378094992186477200348939145397188272292533767172142693038236714508311712575843128507056206986070008138103013814305614115694569706884262432407458944734999114414376366698026811549694499404081346916041423200069180770716126729473965618019889957772392540503140198847223730767916078827000789061625774889107143114956924922696313938426510697283522566156006528633800991205469838828150866043361707088733901330522898191901921241348775784013198081930177125713075766755344856053942225574863987065753554114587050802746245836105809339510406731028568055222134015854571824665136245485454794867605888290580294778666924919748082929024298667339794427436303822550352078705869439211444030052070104196721706950926935684732626731979461678696544702604603739503798545412952623190149478727710411248997233960806405216784659999672368056148078004686009414597841202862057230731847893605442797016045583128459426229929609683771800184268120087746030755163605491750449357324929510338656574532420060022195556132453023415692689471961296695817537345453750688195067317280174705617763204089921328906054377478844929511966637988214888076851186791745346284589242764107803268804364787200765250808539436617948380600125183842887276118300066003537286168236603728390082219099216146681679388332576722824026481829076786469507120573193675908859792234108919524884853050881345180994918670194227320040200044164027001276662699119888432158469332957041149960097252946768281895731870930079276890088184031034025253025429116821502199552145656184160449429753073555960563193763670344830721569386972220868202482241565214520385039964986781191959509396021070267307244319531482693718796071463445110921910637541050402975370348495371905759190250054333453874294401544743729009456735674988698504408206637791531244705710169273548357379695818163432199243361973416915518624619028808354291004801018648593215272495312252868929769248715075175309875098162882448795682451896091758300549452948971675739518050145351655271823649102609617522028157296929771007843853295549672580990654060196097761761656185179685737450395656247385262808657881983993899867881624597354222834960265519894162989324064461068105004148259256576498209411233728164581906126485386378705477693167895074714929784221521330967084934052060948857243163962127712438314889414304436519199129923917881342962728456421176554891182905541344478643622467922290028086880528949639650084897449656251591541162069057937413821376044995959424122734350263053904044666131897380951277680503924223935293294867512227477914129268377955652094849061272465999231004679912808310612866797374012013886180479189593351115076773793248508707081933553921061014653941511009371860921146856225871512528224845524850765676892486152123502769530744956699754361876133664399308862826814528786060412017428168716966172969013808384941249131297399081065064765239612850430775230284073117667460568833497512327597415096972001928951022923267125334200068357077633863950392847649169692793653144608136538206977149211614625799258191834777306290686224441469767583694186642852177592845528116866420348435909790445258643702417928305575281755539571964071641784333204827615958190178068598059611914409134831138444797451879062239970613666904305207188941418779145210616187642442813962545082419268325487685310671658215063345907074411952189331809718166076158499608064512970701228087293575385836242826091138697826244555217910038918106826754155950878625745675298412504855423748303534391884004008421148086210988099499582347657649668084092824453346928640411052113460109432169106009882236210912716805703822007217381560637536821314501831129034820341709087104413666332006905984367880284328098371359327413687881269166699674312758623454381368082545702998453185893264731605728382627234529331982230087147919678167957365502924529499904714104224097352848350058618449853581604082668040588205174673398768831291292086613695651240868362855856672855535060485894958298127022087999512677060173562942350135271062313920551612812884831598291159539641625884288057636239379018873291691578101914987598711770841816949349366149483752099399556954551105861473553623813798754694101219004028661234967885715722737782517168894982273305720199284787354686150968074021625927058177164735920525791022977958631720656284335181009343132161902782253526801278407162817245946447343255912883529373377223524001097172894664877447330135045460502371079509112264344293837708619186951111133937529348720556840041189385021761707488596846084135222145228075206355871927144786217990513579934373726094817344250486573403638839545931723441625822309875277131825783848293732157391365631009765158455001698783821299493793138368888300983372869499649102297881697676903745654206760136146749871147975859891899628234906026115102010559176559004582102560956981751663897156761755943155015269688532974088347418908520774144661872357779435125018179846061339563696542873949640306149175431381050081160436522307159033903503430100898852878957622777337296704921298747820441985749428674394600829710956233927551537007643760782286383695105374676244883592365019647645265822788993148222546915365670345954135188498507458512149915119564180599679558445383035675135033646530443773957318271137247501793570155698334627009424257976562387527412543947962154188132501187237622616581681102763670130264057235588940432128171660232212768619097420572012010298387418085926254436685319688445076046444463477068679639386944012561733997693172568831845398180775346396978388171558569680883044293611220532136955237345988439253898022300127496097567756298537585146594377153661323703055874572408651493398281076521454102587190803644532745374727675086943275513940217969983275207149371015522633197735230752575879070157532295248117863864858807555582037237610476623734114016848470575649509115541155687077833199944604651171836018777610312541091384716723926925230788656139565779989705947512164094490350712855273750317027216699475044879052331877656179414817332606689073600219017990293335411750067472291204597045760984906682629333294813147762308906614844547844806478633050334939762847666344566096318955984208482684729054485152423780369333343691842148492097177304173912992424973367749575315247803366006017966321842796630159499950587873938390316839952178804671941261607619859918237400378415776345680456899378944291437134244214384753069763261108893675026853509932637181486547875613332105540716580236559380421309562139653612146174012769458292248935467025733889963476019393216156822608273084414783645370312834377763130734902127450815148013564054212591591343629628501663832401466843089640384502030277866128585195643012998612263851013765687201752553325188853508381462635283494564664201856817928749166275242359858388994376506111927210698097643743157706215650951397454289453108229793394146601340187088222844003400432029480011463814157597284204442652583680313950153441291165648762397233003140940548765039219849165166815708342273430379089783857863676289738845751076231575680393811482747487784886749486561379249937532480212714610896308224702362863556851115377906053546661680761324038753986422893460152797550273420475157478823718812769490695564753338325051751179931404268041215492602227032255629549098914527386458813984433678189986548511909849955259418976117371679652066917861875740877806774778061977330793040517839092113661639121021105145497527911240910235537852996755913106609775586557060125836204404231324611408674335217246886289596762050836814103250608499565264736871350307570742517405958847212007182876625564001380365512129145506290855409998731163154844815722075391467246408810078854994415493024106758372071964893810203751334728422934066110325440591388372877859091571129671543037596275124804987782443458751757125138628624017830431537781141746564711094775858195823830335838046151990595417670171108695330088627168481086009927808424283865822708945293587617296121057688185009669475809226719329892153916980228988809474637088633241643805363427558143862077293977678997082332081104803076014309686991764016069859462537704871721115708373863223541699951573553987349560354554766915601464847352770082113200801699840748514855397519613902833508398836108684391994741983014673234523642989832189597501882033409293478293059779804600360285406898295968453627645962494658256824592032359522180691334871902798914651225375197768942608941859494254190498983394127913240260825423004543408108917446656449822228579768357105109795886879733759857129793666288714336391571060270301370352453753484842722358142581283050445981858892421629516432681898693060663357429970082647252679265143750406833965024534151050738088117872463928235010295782047805626538833175456224882752140735451511757102026645804181074700156565716360860862070448498334577265018596645881250763770337598370884192775617406452216447554895327028223699166341480270992488427317134597490170613187962961385262359230131413188500742220162898627655749231928368755466679039018650599278164865488314988186050334827612157637780677841798579229710565961982723790455928984030144181758095011140425415724356724108597386845241051338746307750431979771692253561196166956469410984205985995087949914133501978175193408589429145666122921161531564608669420934097111094694189706974189868575403172293175452441921872981521663503386774740994037609293263633750527186475538591691020091247252604002353578004677555054627248999092486847887507006260727673487771612793334660937396290770127297024877974150738901156912232484150895836464903413303636555202137566779312648924766038239042079144065357184346336391021602519577277297342985903540238118162552583358847747733755946108856974696713887095898252198206561949722829543001823370534274978202745143942495791924330523338612693169604286731123773325763718106715503283988230820589692051330548223381539608170669285052282186829429246155253350417876338489322697387648878868956555134509625633162074629768677150755536230523610191721637064461163430524526266763240947047929136346406581364607338791558276060489266493595335330627741115348015359939675010739142126230259962246657346506132723098611503427795350381067444860851065776642082328464862840339437149986986735288367597140189988336722984628525919545796621485016058913380247167633392631714683275416276500646024348704683919702002590576888385937595729189212286246264288097022283296866580241879269004511805565598556651626685980238891072899497183629924378180594657253290163631883642702041432099461031500784232278054340641967554007686304216570190849928630115795171325130164666168695149196505551286454826811505478108038057686549142753460703080340103481783744488257935365027356436334457491189238163793124612035261631683552203169644967314063714215154039275747261896631599677320082545896449777615431744801086789157926751391109647473554162870605429823170048071311489256388177799897164472061385830040142599553707494327897781148670254045929633025965750512112340813010071126756058772021725004409307025894641360623974901202311519097912629530469526053485715653381264564555125385042325592838655669661227627441607777431036462965118841277993632554118885319150446282897453813353402809596726173375454818918050634049250652475987362387404016987472523575893741844752564627297350898134696113552555422210137602992074752552314660185146539930715243141092043070929996259673237713481943406047807038742914600159122911971816045974908690051776756908635892731077724068792212549124756269895426005524942027822478311224842635131050263578750377230381594743290445112828489773481508223161833539756701126706114975883599965945776083389961185955482327791772611609220608969864640231215729184489420439340427219238626454424534112651072064020695782423596689338269163770215554782292948133653925367540630571373724006594047163493312042567126075801253826257955864673409628535869672258226567542132017231120067263630355268883463977161073585657359874189358850638040380896829441337660027933237694022211608385617576344841437079438273027262728910730125273635422918229746292109922750063259176228400081834475253446179536282093804785603168216223878442704963488515070704338117084531239669834379704696963778431854554990710812165639474967732962901829503723944048340058787488850853917918382692328464370698134166677059004722320928542502981229216110072677733452675673366691822664276241120851122648642827005388106396384086378395288774951747869447405574005496282254827691018551366989342168316121955994790918957779920612974095588610299278147530768765571079645436438458271155662599056557977163045387132550530544552135642547314874354497530067711945482194656779261790492399093570046358432226878636101066274186933241410619821762689794697334236085861194381506636191154373647886987543868573269300987998245452671396047524899821363657740153374899040133285010281879194029893008784264904976980445200443854424612576159041703345689652796803415419105458827960442732183803087989448850158316008221791589111903067010956942918995350555949670232348048363816502586162633455056809730844596552421889006962375198915985797416088662588293800259772926126724698557339405449498323155656944176155723856837995002715729519123236388667430680952796097425908275556522791781241795871567723341585108263622796138715134266117877268101916715304902657119362474361121145503287019107609093710623992623327441905159587257000102748802745399784635182373496914939280105113367597597987967209362186385237202366746956602986840363779713351802832451626248057971821109311761651670307606050685980039015174394897022497496143593208794121774339258076081094090163561649252857645345227188866891158958205377356739571713019478336650022001646463443006482365039992998790469257907459264074546826491050699661690641078502197137762143607809800009643809336302981577301726487480371571790659090062914235919163276136543194326925814919213360682012796923121047342245948457087494238570935777059691648001626787266894473569249655263539810026789116717650979028911256257414021192799892020439423411824891700922098244408552716490753208716340690286242716777574719082573660070225116834005713048398006985781276713858204435170163771694477960963107558911365221303591926984903948742737894959945170732939698084512419549630103609613021221280065234002773060562237976569210166608531227201416074950314551986564213956002920993074138215931670440898578761043093909066235162129302702137698452678829580996255582827201182440145746709396113311863263757919714889082411101660615787375721610128258844222623730206327039505117591983527816947106387237682200949907122137292827491869342966696577852448154627277840363378384978208946597316224375833832600749556939455599616781744725210935942179624741102192418495597124556731477879017039227060248993524881438924745332391733284889914505114057450964690097806506077673807950428677546289619695270849290433690791829491488174215393870210467993713500331286485309216865226441716214331093133337886318662986949108377501570900260582859708747988830492686203343864717959789195253826108342065528704858836714894649914895016559851400506701822981399813562978826569635252788884634787407367801994467693802634062724690867287888850621514307792293849413349094041017565540399786720222942282609723019835702423398426619920670517124278386829718101655088048144188627729344221585667181282075893962963521166087290224873790591746914864578988454534888080879685188312192978739720598152053390037402570311873747615041736431272497563106001084275606936552576302667380278811202629601370540472048712364808912981573620891362368751637799336531674693438384735442435784251134700092505932477079342419349030949998156154157632956181485287865930965861309280814327301688521664234948285971105806408000613927903049499586123189209730812220923164961656255507781600446172186048126633356877233496481622589738558052772734568862538276469804122007529604068079760408004573361585793274908307943261322625152066736267768784265803530539442854000201782941015992712441069314220473951821044328425053342702362735711743907622733071911911204229085587186263065529207247186703389556881023679116373087367013312544955452577403730400665136982843119809331372660318804957484193448048812850754526468115306231060736024198619047137752550506762801901921258743733005029152217689396959410079420428895362672573800562581061448569121972471012617691410165474128972171356884297437835369728000536157366397816100068659270917087658277115626544496392710635984989461322350193647141008883513068561388462443750036302912849260788907281303244085550913029548163243411071566235253884776870862785198686199221591193855172844360868216072128271747156447899461724330071090156207862064383683847099576334332336436798659240970803328071808609928144738385344751848619104483817528046178111217099058583112631015961979096007538421686173381718108975922490807823105399295136701202082612892629524417817997122816011663142641553397028466204898288537395133460693529804280742707993855214436137504459357175957582090203246560283816092951387790421348615332927706622044819262490928829823209768765430642232618972254327140541463799002912458071929884224149135551685478366089941484386747402999232408508815585811669311945351330932638276351253501157044850884352434600812168360409215138271538143328376622280797740770796853040011047097033365345485049324273954442190015613055177441620042529713279447114585392244913708222559009327249941677279335578656997002920028141515735209399042922666842455181055020376104471095594212321930725278089830535337057066130675054382837056762782212569788067179172209877900312233133861081629692287310643008375297564240530015470450430588139994572344083022856967165835305106682585903728804582558960968937854863696938704914386639134881877978392843169959550308887852835260279628717581948118753789640069638658611754646202832871518504166360649801091421360368089766473205007500510765364855167766745784955128165201423781705357643353357191820270077076601642456958322816651710687992396833785168093069912178469648251100620549434688600583812488565752734257446723212012004892894308655160133960542452015275064755453884762123116914695057445083232193982582246545102776929252900435687109555994538435771003991500124368683914675666108066496153785931309313332039594574668392380985845216402253593439697381365105053738618292343237441685412495581544022460289097579351612861249749529217744457395440113881409098767619607445599296254162104036088060395217411986120382826735339782938591623001527877182990822656204021674855982060020887957892541982948189990529332439717835978293448771656492320305816376040976969003952858631359931954118590903723948659580003177450879892429865600578221595886238356663403019195263550645037849990974371171424123047033181327008819936890569174026597610036652112920261780814744847916816070217417406565111712073457643371609837881914101293817465414504845193619488760900598238547778292121152561498335687654441944464310537813771493700649538549115872027634143636887609712670001034651981291209960752684641286145177735066787716114407160819386350923714877936370916695097443295209165763980671409363126461888775542382400525369923587898605555470064930337894264865364456283366295986847096935555358719582757620022042472133151636912888899376400761974325126376759542234748274832458211387480520404775045771651420766568386242961029778808752610922180369725949479183891060316186317066521435055891789685475870620396104014040526120823864776109951347603984099343180127671781295611186034397453438428020644262519478188183895751261486286345272524179378533063159946843976732651539716464290155878986036474771512722911590331296106746445643811481731323639182593988693037422355666903192749332728409554117921391645886819155954909547003982257057632882252812727690040131473807191176484946949394559659893024985568203507025642062087398901799104855156178959952710260259784851851784277671339209364731401797164701943179519782742133201757356475505732835718124933296831607740990553018497588435209676101603203913884109060998560014748304898261641085997263400440036572295181283459468273559628498620963118695184607788356335614916445616648771433594140892485297005775947800271982145250326531435359364118089903893798779034150039671178454172503101427213625827953302963720867480356154125771447045518304607961442903541493307097635508459557582335768460912069875153733479905060410426040212650077975777826069158656831583534927297239967241733631769549909893689137051657864623067482373357382186976468946341375164492475570050675994575094158720947494481046517496384256513294193772477607188561895035114730399149280409225163017713817062094934225417970405813507969544022905314537438154726205532810167380889310591088287005436128889437842645538701055585991722220895329838287706628638391981941310509331192949841462858112530271491319477734010119416547449772538763512336738634136339431889148428071508475501888046564953640607960921147344452360617072539841441038260545610564996487070045648924012845541980822836331164414697775408501514914635920050203470210328534483930232409607421348333743401286929525966396155434724331882973954505796668401020764272550350829709388435175602907870086909761891275458175306660903849695056047994162693154518944825730446360120173514056330880570918338525399671522847355400285138839086810661972178157001070262373964953308381447493595231287093203301616095072916336011927674469347481664704650814158851399763454514295272068861094444487968299137515023779409119827718750890876445348172115946755110020306082653324851325558550384718667284412465702352314419500668610341300471708974179143989202468270285356014201295590144160110098484116953787859510803560994902580298112765673234145321202020697040313794273055649258520282894756785470561762468513318310103545266488317366514813614286398490969494711394728506581948790112590349830348211279007923191837002300728992798782107782166679073283781196911893468942454482090530647442710617430786050149141586849804337480964669137314769838271061793670792831108246638002939949638248475422166033230446020462442857322587706129101294981755054587015317446767442045186227254492353334563538271434528657065309379285791580360465236586751901085908470894447715338674951161624540995686658799059151311414435607726326708167575897405358970764485619909077250414664535846556719683446552702282837804703740667281328998311381707612659718289243397152403964726909534170331260309910544974047134799270686519502635201305059257434986167815511737367407280341257685749308050802709158747489614677894431863820100198347195121751550801894992204525248838437109572056841809040067132683578342660119277990048889576495154867537202458792118171986673723202011864734697396629394309391534390786549822869046811978528107804608984094351567512496976969701230680296357461301471782741680500927561118514261765495027576577987766247732303181855688024295663548108865282301539998468821236992996082136841683842821381090639079834410227690089986516407904775070780415785330750262031756802893745931589329564259817686388168039386603592874407685170314555108810624607256995556889270951687391394072756520754822024864956061393302662274218744235264221851582668114741203971267288964826409249822279264076575118892718990886476124443092650219081541291533722241344917194319112623920800701539423674796006556219532393429602945322751603214664189890953796246420470170056269595853076067738251973543468552674847224150118689317666967329294822766459809428617039239877344653853556441144246148448201471856713786700864957341406918103087676994429870594656378664253596919115901647164432446749324879042401177539580317315087815117524576636037943672231220261958327278749868827381977911084188043661465214232846616998034136181297541689410104980093055667025988386247391326317023670006728664978314413794082007550205717375082380403845643357350689014457414681291492284344041145663244194775035838290526659576254319713025107213064901256082268660440513378966075558472771203803349146972572045869650102084572225007158540350966324773739857797664619645927273750190048576933607249063760005426892085942363553443979284409222266022604246772500480110724326307122774825032157883458489854670044169365706337580520620122542167647362632299482131232896816108401647078082795257826891104304857718707932592377046737622829873223623473898821087801387733179347659053594812685610118017786472348781407476772635364006171579863366302886775827884524939399470725365678151064612571793556348406681456776499086822947157278981237182683615361302996944980093534748937642506732666795678661591264515407716782165203125612018883370664419858960077504560911898498840848084241270769361135755331177613248640634281420122298599079471360003787837233648456622794254581125383061044364970960584196437670588496945033751779578904971027222984962570196922687255133629603178791333350202518940521592249793749223277439607887886183719280756682027440628197319099251937942878389666500610322095000940564299288207185770115326785811952073934402131891192779125373249101786169576946645829066766018472287507378950809510032397547423409788094216208922679000712706789602697561262366230026360027354733472734967584968260314394710565070822373063026642633727865748479907297907732449313908084790232635748639050778060618440302273344478729800747581180858297594070670831585605507661339107295187046302642033814015173546131697074391688835342528823943985426247679133980147632784037569948030957725873750401945583403570767035700715878955680832491172143249010174406217462940281936374514184957491249403708638324274416407464725706165714507873781987811019461608587426478054822969730108229763417354036824906297328395711616074493409023995684064048163868877855187472479271943529329305562609516985800804237505024621966263488158715085979743948596930503962774371305837458314325469825558823893380996759894751921899970778166807248048766381391119105802265433784979537278607131642282909250664582531328678903973068074117182804750189358285549896774625653870451008196298235709944018882446614452615220157867482471007339399263117656433141117417748542410812867198962437690235316710882407589705579742880997195499374880437163739150068989863696550268779068193733153667003364802582498030549113128225725034475924291739214121371834619042658280081085672560716229130673452010768424185033986358850162776724820180189887381917820263164612453950515572401304272440850434446122178776633133369986277937871407873216683401315255334075843792757807979990669034953009813712588026603613679505848841356472077311015867349128467266399802682158224673686022027787601843602152745080205054842738104880396951428967249266531818843966745636198584727960648535109416639556214395691360674328018295833644762717129855623590311589359798279335678946843043198318413857741400565407755137041204855640370235707714959218977338047356270542423945090842436136075357507325078564543847933970161709776947357383148491435192834897213161049188639578049002917635592661956494733274009264073929927201135530497755454700536244550697393995852188638331037300677324760116383132404034874978762540760145720669671926744966010678349019310335790940230304889914511799819613663621431151085384646371762997409434507386023149648824032688704041839133338449566195911691721992237380641971843652206784051624782570256348126677717777632172463951832669069949457911425992172764485295120688927223476135993114431018925948779961755546404543839642086699574384306816104904677274002025474967526595207309949311497447959591590051716173210454735895230777709763063161008188413262375689568085360348988012752691672467643324939121792860796158084652459864826092886912584510314710914257750435910242145232826395098302600077475828638055595784041151588566689896921009611392005482182659217608679190371759817813143061831501320070333398589666966175157283669611748653214905559435629141039718402039447515845094734862861517633108102345070720921179244047877071849937520675546472624524217613653183725363360786355846786653252036545334031914661480657398291005697212329430247673571127147613647325937567014556971719426827640134076121239641330573266985775257685064361947650157410154916531199240170920651742790347571584639566236552805496645555607006162627589409833257043594378315917575760320984464757487428039687413457048517006647303915516369709339438256701580175198409026641829758855201348380472743180270439423491889493443333101429117579429115748945276787687716032771949877293753971948314961725341159253701851036555930392116400648660565223068813136446316726418848325274608590640401431199466746583184102776593377182506882054170675569187273207461645320110368847489365772295789838303163146658504277327484158162457489518176934881151349986321844333645970892182329423577407831884435798444223514349450572916612338570005897060722412485804148170305057367758065898856223278258554488193974056354237973260897784542350494482293366355865399647597418353719017322848188252492265119248658306074200669335848005082529863664954464154698528677366192036065566930647887627875836723386464195840871223607667366249633986296685047018116870064536064281704823882227023622314957841518728951215599086091260470179383030770742608554108941510157530127145040771138894726561461912063110888743553396312061947685249441096014949136511117478304712078380776517905979615827947901903509476837686622114045298123580739677335004772116070943844815856729110598744205324096836321014934583726004960213961928489384986078322708972923836503968535209348410986209897587925173134739086478496889681250781673481417109305159085752215067761218548126233029561622564238786565394287725100515872885940058193265113091978096089772142819329765565795725645278120466674944112929226967618269710827153921939353217066917475324974854382642309800243464201264170315930306370921793872814191695960410659569026537061765766831015990195432214039873722074521868984954625456274543837043828209509124417954415336252656901616636181805254595656841142543529911811617214531237014293640618952013715788821140411735029540804284285381971897773011967679305235317116699639943421088883562479706722453215892800907533848560495345126842368186777733673971776115378145761751345249206275968546976034953085266170012433205197209811084682093549060268340192830882538589199504237034022978018509244293210053059572786736023256675293028859067985327545500392998945980982060980953230327389257307904062660657769064776673175528088220196693692222456485027036881454937934660985409290948535294259850020118384749099594082949431626860573792398207092725953020707212631329495956580216928270794850316511247432002177046512598684351290148512121318005834501225312318044336202562384937703693671503021861068407065103974384543485858094271184488046946112506038891278873210978103842308192550782920917098298622847739884325604852239839902276911998389723002577930900866271448682478567120290010010564020015426515967187419809395714842483018158899085654302571758038454611628287298783385932765469680501246855639296951520944835252360574373143956378870822699676304396585709238439531009465944296593089361554009394747249992600469948196803308086533874451514659620709106897634241854506425131811727220279918299787956835178462249472933199587005128883075682908252001395520077731128636364751125321780487913551957266045566568467263586323512753764399434176439912731453154083568580552057276587748163167105764213378606999362179890426964948007709734589045037078076693984200900336537382589038420635574027979988554593181407675140359923830302090102671989781389059751140505907927438822951828367518863713948047486202157716133967261523046733987975542121900998075231878367680725925710050220659325863602913207457197864985312376973367668776684475045658239278808493502148719637041995068604977542421019642540598094286116094369361865930752546179151408094777954011077245641843652689825873974277208084663794749721109116969303122532997301263247055502633759583470217117292895231747261180155560927899457611946832947611761126272637938827626048981835283337407841340196975558100763650179461400326038034744780043418551839063890549415722910785992151505207192056674833053063738808830481369455769824462408074082421653166186889582253143497569287476098489722160693157838172438797916361815918008143290322356453356594143569702680392536336475377952825981454907427805921812188955463563549449898182655676274482239833505292431321077260894966261655469280145055503777040632227095737863747051688007817428748924287805408280287438060103971844256053510825918631759785446169532262003220037348962204997552707641514490520966803892266846240212347766848564500578432021973295408375734709531757343582443542244384833705659423335307017378342051974454793020827431996611790672970267480586617512830651126217530891022609878894350586287669742182173922424218558939729297661888348619902444965319155194176170497356671063490615030338116225587749212147894820049544324500943049665145987216787498388774868811368128435707130481406308085377567342344982946284680675388863527300411239571625599161515583092474041098190376524146666629304825198992239834837558777164307043034512843893090779077826060328177837877911324142671108923593604171393835502830479427707190903900926063182042959981101542239496443481380036524378117391248834898619550566569811909658163831755822277454664895068940784734957574992132191610094773536691890349641558641141135613905172567045730785971374866847114004741283750728797535291074838434827432974479861089181960712136244897219710322672899500623054118691441239899983539095130237425680052998320807022222468409679485305495131205626220719912276564961085307441304340224502034863383765516242540748671556331605704999423897678778545891330459163072950875451954214780605144287047977791758895096605766184857370172773106713529558842160249045349265526497011905221013304634245943273514405936707265721936821432806118132489025752521875971847712690749072806268293037603647531256879808506514528367585049598071495850778508376513814719393099300737175215597428986930320658942347792233595655146322234917563558475790943183116766345985379375774485361920969540434094915130851675279508909758648143587994613907810554940839097191749972076836709178004496885466506180140061585905577034551506392380503501531749922470957601346007080224748987301022748788070692410246826466092056314728953416492066571116166610404162076049486194075788481753917904457450937821856459209892018969729500544473452307492802886967672995932192697345236872190228896441951450258096679677101765010188462681776958983637900612449107289351436769643429518026859207319241215761089799940501459824801170423751345869286677148544763939755586546166113947081392281786564245949558708189425440768010672893453041106744209560518416515312968404908927481623158218796304249877482788146695580642594403880564595357852746515100823476883180694027107764210897247732056760582115258435570005515031609779185233150459133767122022092790339578493078868130120632199603545886187581590976889118835090981464572661994240878430241872939984835096725927658885064258368624493245617954534505471329309462406712075822828381258866072682841006510102516870073929052761259558857969465190605420280072311102028437766208180124226931274307217629768658001368682752892119488450635247540603470178472410166291950959179468786932590457412457789554710995343508139862089921662532730271743766595576838498486798152568806544174404678792073343380627190883879509446989672371363239997436470258803517642827042453203820420075821381426231447304003645843782998160325518195536817137799121382198830390003047228478781568233871688553777624210309776892173629949283183406671155326701038281756409752480077571906380226015794459676345572433432484643517000910394257607447370464696982704461307901284638883476866721408104036249304666640636201179345701140276522277826482911310680510126470505244976392547510974029934182339460922441322673135937396926516130677168433531258517931002555007523982228961556968367603802547794295008175620897944108457520910790322511922155481877416570033062967913100819342858690360429659554793779510563685887140014630722398017203784715549817420014757731267313584406565114899118895574038690805153915181756265819559878062732857448144503211363970089266595335735480657478254015850089365366377339287934935892922027298186205244419883273834413062648706910813038514872644865348468533755449551216839852381285955183586096060547672379677526479505218895495745124024771073571321579277526959849313550000083951862155000383363677027715393486747924790382554186840065781319772749368908480675170672286949825101767766756367364966488422386652677013224512563437908723856107014374712323425884729278589215634365911048838243769671352732768293928695680347807839433214908747271070268500493888873101595683145574006394771714382307427724453163922475936716490630423040410539005755690679096539243360769623497321638825636990038207094361588755347532362235231930107462614392834982936931077780853442317013182333830924787849854602252392804329570515366399961000591999076436627607443698395320340141240783855940449118689007160824810277115939216688635429334112870949798932715698347574585619310057023521357683247229932555454606289728305734934277086336715775943510805161390635774290763616441573318375022912804485531378821680625510972320382258304797473766215532521259445781816624449856594558437107086562586713158265076503903299537430902179066577596085851102955493437330028226804385188773034858906210433872585599877720190760722060202835366585002557167346385506031571701027458610371919597625689677179918199090769544642854269946065132024292785767279447142353833512856673095984360760560773388236320571720324608729368373862726189034575932894826374023993829192628552350214909337604644218444189731919126301711874365484038309088744494003333289251134745065211108560267121189469154260767104802554307264164611713213222112197676984870644399716795982686472413847770908099406796694358388708282300556481940600359184415990622850919347386048265752071168934614859972166563510024606374884892023741659048165528758628195364512755231357121512416440550861505523046302434546519028175632620606142921206940111562506703687434060003054727671714813536455044815578203461819713603054258139204203234547039438395844319602093252803530880358923433467025741570495672779414124992119259026351861165196543952232311532498441463173503954533389798466010168381831697201662135833209196018624150546592283772039288129999294791865748938470580926089949358778465217028154333747985388140119424774330478007179275906841788830988644181192701183316709218854171640561459364458629003658465184274988655435501003767729148862544214985815809216357515287146138147032473155186081204104270026201897289986773554364793607359447215424783103075879398285371429952542336826550027916481386709555029683567436392078353168770593261042766625798929916712246226519864889746518853659926695461468399223354284774188433582425113842358168401951023529258154002563069209818967573024616157876485408052009844163123536440118998117682355936341099251886853075250998245344576604577859739313349766586616656008770622292050970401620459705044667243609207783232868845638260752781403076752673144331684503887157906788384853691539747119669822682245180247329157401682424962773353817966081621573715086000801697270569787123382003448547459159226891523330260936563294624823393612404447249961946334760361747695242885175527055261712323336931817571670437259196503473250411395766850542273576573479475839478292610753634643587665074151858476677612726072216292967259127610613828037437661837207964080162045467042287397471193642258044404355190766145518665261378875451608761106801330794666626542384683219364087615771645070775760264413317973907837526929711076146883653117720117134467047852317566019914825675530721917960944148647029331938797736479390590289612704556937650498925565630180721227173944197616939146007404866591689376649664432384492137619323444821037470457687022607772675457307949395233704978454847672702127695121186281005569690422923129568890879384947020156465498686301488805279793525036084606196666676435177280139035122434441353829649839004937586932179370478576530527866553365816745714995988514014673280983735273100044189356856811024139279432068683613500229509721517049383476752239802850008673089213460664702134413030853005679961260203026885377366213337243301711385703150834872050004421523335235206592898253119750637657829700598438735313834318871874529266959869494982566200388011711463884974941289941324489895146582669202514235997612228472530138367326959536604255046141720796076737283046680294236135244779281152144772156667775015973150609841508199369583434909888886362393663955991059112719449680848752918939261562079653530423234940428158091920059539723297080460061253549958688168187804522209947858707332279673086238848810695903868066097425560894826907654843147836264401750259532665765002619493415599598940508201338895030071658580428895922735917841612595990535381655793107674442295356009936649538053758080747653198803283891984751372167708562632585358617361868694931066720473791892432800710395778792434521286382655703957072324253718282813769024323625979980522016960121290834964496539427416196918042684097364727637289979402529612390468615143908961593432515516261843403628165103126447184042471892991847277383892798406986614922335087247094766242884358453835008237252178419896054943356742166732636848132644512043446917902079655610368082931353868947689356419308293976790216717689430666733328437014483504065230102017115515418950242393307773378682667499577758110736919606416775177041440377902129344764877035961296499612432697105039082484859672196478572140232327525159620092589828248121295715042642851576990963208326132616995127873114156170761001186360305317783330252224550352105888326979322468252883512623200263432414706218509512587241693268757029943163178735370815596860326229242159326931410927228584785330424711706035014082696130546790510647486129558127165036794014429719914403106597874583392194386356081251991876373680948067127884228018888558373941908310855509156234411383193552929833241457863663612199111123309614452174427184300129417637509642876905687614890426758802257923771412199539009331272998539696293911434716268772289946288469494121828851366366273256633645169591095364573037354362790223133238344086509311089244022642872242632030479174807342609599191318438675506992923890124326650279297100471921779008553031650257099499115524871747904298292958454302537876907543831608111395313550752405594309281411002408953839643782939668789691333659116438951417420880448019122391908115827820780607799286650994792365031629307119477926679987765158237479415377606844102202875601532716964373089229152387078033463533968734248170004544920712980209834727373835127152605900559426497768255453168437526115738279652768021443364861939229498292533675296807808982470039398306744900042461670864711763089750448870555397991323835547229522607095695179626504671629101745650693461152086060548163097564466895146312098304468874918705214931620116087355154824160904824295621116483922208272309437714408514392044090980446581850037997513559592161429216306977438878499209057563496009991933165076991696175758956976194304296505213666871111437891751396223399726429912681385071810522248349013795668356520263125310499945010524264079839810809085764580964720830251635130916537185608907705935014105062670520342964159532812737785837903187333658903975388930081029448083771850705975993398636063003520813284706231475013262177193538057472823717243286136562276801631681156869049015175993703597036597437432090699237987194399984289913046918936382779595521087771956954204258670592246136137658941669034154172680387101045625775729917322352138546856379510973451775467983870259903327660857805802756612266810337788969730588340708108022626587445789608547733629504415451539962358780804764347598990900329993429225412495741594806541541654682436180200058329246411425232014623283941751053454171510184251478107115389852745737991645567977713362251927394374700305725549598998830533596516946931509563862814202822342802897323759590323643923172617597806993943445246181988055090208431870494802943217100522322557086595204034227998993764687276164980995807310321379291821510316006320589461986076113261169423734725227142339948798599270679859012431719661255510123781287270927864805157931787036627075232187460364586205739869170045193193828863619013202275876714841250213040414055292960144126107924082295742494931525139370276072552251242318047381901500110810521850178573649349352527498840202664569257281368237077682292513230415842431531875157364223714984912041812570449130989076351899670842848944175401143899956508124561854507834624424506094593118076133075046296966878824442444187396821448915095228196993167794420702686151787700621856833704999758120635793039672966846935093217539899852416290508414512239351492594892747090065637950539149265792353620740539543905702388364509183083322170609752826461243298770739522456170490968326180557914491273746802605031995851080755816239360284303280858423887772502634195091582022787588403431721903814689464585076575215268729939720498038818244523009407174323932007431087340119650102436016430391011569654369460143152624304023412098794390680223587384878839332564216197702266179696994591374218428990123656738127642959757355839044660311270721928134497348994040850689725071446902853875280751495076031705043633441525484557551411642173013414555397810923520976365799923342522627888762618998184362171769491667153134946602344206817909114883288811778305757050595315943569997600784171118209975358112425049115682533948008273569989952106528720864820394455343853325119290675348896684013398270654292181503123275017497424517564045848112885224957673302141457906635812390419382583450271726406163761606903742213280552309874290806780688496511154267803026728824250991581996316434245998012889399286120027400103730233910774272370966210193806562526917346609989367558625568647007014946473570060889212627607229605523442190860054028681637277502911761852829836427103741715707320316153608708751237020051919815240150845364181109152644948894744905955783563628411199382331153343527176185860447017890167766701181888125257177480499529771455898466113064877576115053203882935642185967659700857837321165548989160880470278896339711064891085831097739338022476621025127065433531840208954054786736233150632304920073892579764226149502653460005221072805516227810368241192571239336759702351051164134910188554683963605977232194294956476086470970523051932101872638769023455798070322997274908233354707925767826236989464164247332611275351150368121254028263837360816678949537545654263433185449819164035233566513155971603494708805097084443010105570860138831467193545615707329712823269962618036844225059914800307439591201062639783417898075914816196687329000076921568182626996752583723478241148725743543529301873105712796228501676866508734698227717253056329452871218904586433842446229250166452078950156762567708931665609769266279543448664010877908165702435283712264096699929970886341599015793191984759915304182992067956542390403758712602178874408574227121124941927516505505573913921835199590744809697294561816448226244427722541318723179751256744783904076795687249866295337185823561169259768337276568484767223635660338840352668630954261972563848018904153939545273061095221887518634797214884896544406028788299359011812882198127938183352741082696610682641723331149519162721814612437925929607187099619368819671578383403142604892027596445172113582820417698657959950176232531874720234665139036806559536267986062403535857098990990063648350728655877124276852941355586356641797357666942500376618297574046286895380047255738090334870335232110472894807250146282908498288601787908482661298589621793446186142250408888760103653660997701442579849574800760359100632808142279384696966686714605439064040702150341450228104511338674971111342320130358630393948108615433485102259723540871479074712222258971215918991044452670246483411964504401084905962328975464970717383576776105276460651590861820326186035113779675206341382599625033550846076403849654228991683708410510852717057773141654093816833972113823505086129442364428292495246413451507456991317564075923080209683502064722821965291035691017567924600839167785719547709437098393892371154213476499805386263926961994571413841505243130941997757368229983679421247410111291245714969548590849042013176233699018733401262368264306390456179506888136117049094256372945000375626590208278950507328957174575189555994365107100175803016898491634993581922519188107898861568360167635886551575182222801208617351246725019480515905409347917305865097957801590551174976083115665382322390554024503759299808316133220973814096459397685012577560069803590598241916412770247038168348077692736878376171821372687519884308574490044633454359409269050969087271381443583690003276200146590729532198041516763048931058957499149025233772734251335446614913310294771098113070935782891991944210546354595537546005529315597659640233969983312982411039245383138371406446667125271219324604977255178708811063519636324587827428592749710342750703274488859698798104954521013044279340866718273936164046035011724940860157127095177696231796661428001373930454725539308094035025851914527734636002025333504259521466768539270210530798867684166123769733349711471209609092019386857285456598945549236192662435758530683186186273251947768580154743343090197432701246040789007551678253503408277151865070455946446286557012953023229665727557510693098928874741088837459897605059159751342550672729891810028026178285530286721167184428497448632093487436949028470275434312542876362985429330168235741407718953875275264614090722720327340859086857103040982954182121762882843716251254926817352611127350133630842589482677472143864838688801785431304537720291740227697657484467678719262746929163144557684430459561039617782269674275029868637085966967150591424465759022436701046918621445346348840217122748628415565400163114802642514808079617015475217527606316671777729387251013023743700775972085909330988893901632291520206592613797276551617034945269669941459517226800255818490941159512713492806627358484507199507989061590779527763867287535301356134773986175687946926585406497963201984625725571961934047172690480842365040156251968530323147683927654645490874123289473369938865469429242669174129953074979354861655957544118788766575136482376981299172795860514730154612976593685029756216625813978028931706057385063154164116234356818197101164344643264089651263732578400568356310538523150872149482397571075169414660418280433864556291777893053426158824882843711757273840048247814308319814928935954482609389283414176014515796862025449036846940525013165192616737642960647184749751924121605918115152003613431653514993551920985070350731076055522272764933353132825703939259759766644742097492932997796859937330389509135560691188931883205002870991072991751108815049862985381529378986372718815653430594663945872957855523546289015020819295717843693691169243716541548133187167512555053127570562243599180179853139077173290585481889585931668141986987454369294197858292319865477068959942244450452493386125116627470530758844460907589743197670048750418639829097158106921744302006426515446777304431933840437247028147031341267980543311935766547933162572910014307101097099927595774658648789867322411961849690620331619185886345735477793806767851573224655387992492078192397842938421051303053113413069903746160422664304303180284915425271594708563745825528008817262154227037482653044356054892934927361983430096900698459648496248517294755369715114295438281127216090322742139223433813757500407155061255969940517910542131715147393245491158235008092468474531495482602138710711978075051875166993602827265629964773973724933411437106688733945560995459054385241901491883939215937759607418901327534440481614811818369370500431767112396026172281671625674473532575599713578112303531222414596288420249222715564406103139967845827277649295506194754401249246600494644695634464579092720099916575240345228191210810566751984635375325533815739987298848041726830775430613798482198991571659733476686430763304694954231445995012957265987038909471013216566105105890922317649982329783932924601322152199839920260116517727241199070483741550889050950913905103636219291755182750185532267276326899513966576761496981940056042264190652076632711769027896412619415306343137675433616484146919724291184429718284758379202886293106195334491116749654862949785534661842548766888909018870276221050794526794799872998130582550148806922255029792943990317491062850568541436781307336170971974434391400890731884657357588063174841894910021451852169224572827395222671358156245484117660105825951663152023267194906585914831675650173268496189499478101340672139545980152110629804461712942399110188448126723279591276455346998307283117213768177485661272874182978418541437772024161567471803421704429151367702541500247591055543099179945690423140931604636243863506049138507434195817029820630147961643340665936379006688926820186476990286156129520161662037614905657199273665181167040612823656351645374764782551515906546216322603829632153970165690563018374220253823052636757289239134820713139846569325752252221417096534619424470331123474302217667801537109489436375562105160130248830781500120641450134474675549086763257402932402828808473447815911973915330958490956693689475715637030867618652937297256848891813130960134748714818774333154283001714905593005061069551304833124115294633294351230969167719499918952006462944185673176967405229201983222972992702421790447182849592823402329858946489872480697540453350361275279532409835737296350363925674013948489351735797129928466921899722858357742577948304368380672641460864971915279710056742868342359257351196131909898005260492993153374662311238640926230417334988301138101779607428640200744348206881957517374025479883682269122648580174711187207696602652433718501067944452550212600898407025546839473103305676048252206063153315384668312098792074602436384588403349659523175913692662371435497129226680240644472497669168240320947708408831242250625151369841383858487934314985969598397743023477379320355936933651668076333036555448493754559667658671121675858367914338199431242869903217113844337042585067191823238979246913816595204911951813900608052066200590942037809875897897096406544116427530646261593088775479806734653537826186044105893436449622686686416643524867869841455667333484600384807368600684839722787968097010337908470439777671539728101601569074032914318744697215500320685285020636197526247998551322566356916602028073668965257536141816155638833865334863457722883350933579633557487372831712159590902769025216830646339730905380020008287072476080045098629524512960728700717034250525099779105327612363601049224940822159041725627457042313529610143813299463220115225222827624744225088786449367172791718297060009030237931874773983510715796577444074760108857046053394201280719521979062839120697742017498839354040718427568387911099525468081356243448787278592469343809262930485371584489235251202309318152616073586445838692939257974719525760744788020906631436461455628707318004433293813888147459374727155818275465244625420051680260926021433229808852467242080798042105449315540267639773674765095951542290194424453305140859862818398997324142558359574995889762148495845254540958606157727696725541863301349293805762579807876098866292794834647397425176605000650821245096023473072166083905985073259345186537075002993333107891468521966041455443879736593627750357474710684267050690229723910687438462410170355618457181535310942576974174416489293593421180232497949501806759840115231931475066645473552485524443970960043877630260065563142294365959520567243872687914469385999090978282012046587473813242395057151040281400825526662341674364547758507516324194478943812408796505872123228928977735467647219393340578792050681506529243419053942245956187827139863724417637782462613305798069337532874670814111181338967602804736492524785166525923837132920701506862075264525208863798483112219824984314383783500852772983183541592216792997492507403385716830426594014054616037547096334379330746695566055749751305282899434295897896797703550797965030011337043993182881488113791854356501731094533821154241150887966110231961811825001657020617013153032711947265189714685909776457861542815609086738035306888623516141451442668032106762305502959534423869974161629342900548840364346762304399815067598787121678860859795176252529850628003893566872227384090250914538635364246165290717620004640713299305854946968704218317579344975455695826477843423862167444599393052043894061740469260650062371591244214122803447051683717549032194335505843155345095093295480947145416465875920812874727839129127048568738858282281061140903645792426105370358591744225171901941384515362188296235737809535567786797602139007162735198646320552908183221705900232320353087864430851274131489762959044997412569885063008541758057507947118103019565963006122240722927763482652019489738509788692655596996615988046431139990982171303282324289592716658539618933715196081134255591669995677878798064903228381798184906331321645804267424308187352677357115682359979621168554154508686969710796289214276411106499190228545748930290436378024250949782371821078549058134055809474618073092682626925117614774915369238237272303518519816530969776878979327063159672189478737552139184072568886247318910007995869165577403934679787925675348047819382606402246602746788066206088383895846344955725097333345925002268721394429999707725628266937422807787529794625070253174627571131339140978549347551664692883297769462661752378950402712470897396052150110837209244603164394270068297636591199961389983115269918650806772801149338291702701633435993025982992657144007915099050491439655350808193584569681338771293261857359418074144541204072604170958136022717176648686319593224143129315727714349400493133277173264305019182886175076630799171796037419819757728105009556885385129806909902495284224322712945567786582472489077220990554263481590942909854742581072654974586869917286691175287932473119612420623514766358689124536189876250093200715676191526502978341546052358827314412389697836446369924890786383104209846014029252135684130012506686524600085471406066557340014451846084955728148246915430422630276710674264174797203683082907552328279380545558602669974596574404759357238413860824886852912931812145947236840955023077306477641650967940404320330568178301982043642732880145667238305821202544478480308969402304812960361858388892066438388456919271212993923139613726904135174100578719060225167731152050554884444988440934848466964008909048780117094751238973511290190929330802908564598037155361855260217557357530337913237999577954552971622669887330173439400824125442586511964153881903716551203232764603431714941699156377157328968785212028968997132902585886249617435253057007250274047900626632101805179768848442090828006446998882867488411948081884282229698540969902806289215210542888665161444704002384638028510793208878421459008601345216956442929120621870768614894649612810709796700797188670138949289241277258948560530099712242884416502748405478108891631473711154112862348643066213132692254313678892495433925625463911033083063668167619475499276195254198296925287626442721669773907419363072120901928161657268400447033065684071731979553602550761054485470681838483727245203134539087860447096896401601581802678530698646525577429131342534487885393387106985658663073436890240494686852452216172958404781971105502063330998037947444413807967120868616264985758631377660587337821829997022034614190449554982299479293546433965014854271612759658851523520171971386264016080321588888403695969419562033673354012344809707852979522588527536121951208672511417243991033418532154656953857105312078014019732316578871763209370790547369310628549193303837659884534292033439795568557316602014953763110756724744337246117275655201083382881840554667471728219016112296859328745484587793492300204363895865855516071027224731828186100962399111628992276502596290322556569066966319520769056777822079524208059199794250218301752946397236310656147705158961598982461028314734828519837251698971489401264076420189128476740607566664311142243883946561602779641482090456520036047734183842932088555136066987450585860422028241216069382092057573310068256513235113253518379568036565179586379280301475082481987355933046574824910802621946236308935981576020477821319478104649611450985447015716772549584323362629817644757665184047602033306619860224179505944298372613663625961707216168445919041427562209439867934487269965885652641944779429951822307622096720867538652722202485949666968937828861821723605632720973845549506030054066552518988125483950491686745182935773061918099882494658769787978126390154149703842896453735302600428938714597199949131275621786066413472228336025418552010459136025039276450827096601928604432481952618793641676000578740677855967523763039328378510316960714744356497503796004319798777211438802688154850426641063273084099768922663342129871327403491941340351747707954213797465227493653406526522160137041067747432885889084674181377067505753122915777865069688653592311233198582254139718852618891829892823468740792904924503332931138981172549753409895674723479385575523833571273046946076411113800235952775295870987406970637271836232027322703186052689123745822137566101338422629935555068713678262007136153240171657631110894107799079797143746309930236198671008523034353678918748045087246773147144190746214535219542542949324149586032359906541175043626133879307192852432557098903407301996426195596657152174008789820632431274803454846573805661911126027992825028880163418080655510024004696060628748185079587272204832655733263881449100884386821864256382946626020262998987820269972936038314778854889155711247345471674562461910566245814227743106527820131973022999838769797923804547685695374986382774447616463403733585748578311537428342628289937756565088401720818383543879285662122941814731795667998673321091541001339039228872746476711337951203067921490307617563342170368226676978180003366433814445123540850500056181657360286581184842111823460741665195730330996837843402545929761837004090174186519255542660146028269406124562497745868987581376909010806205927784610957708605637499914186558015378515152703930517731565224885320747444315780780125813379980472841187058126466352822770041827543548539597434158316474282540870896133519872100376328568643184408098857298996654835278419264964307132511301966781496474765873925622838035561540730524551515504356315898515311150225123628004100700213004873976187898794978621941699253215023366330364873950955645853676214060225605199638686778945960289318702906551465305997996438713191551223019976402315532415218669497228018821482942509251661941130080991649743741065635072100867544854483065477249109941873598803350741065816727641406745737019618951995010230911088982900905504848739331922692548315320152454515095490452581851057648440472031011337617297821468529810719448307072081475664709557813305586494884126204216759792375652510897183093459846374331022625561120335242019230089769546717282573431634864907345904965310017956076001739925778610928982657090526348194871541729430380809054058299984767213464997352229119061678139412248771920491190093315550094435583621887886507407573920953157134136046272705462535466923786655573809309908625435935738542354277935531477728236201151469406583138033194061257155178540793236480810623062125333711282330818974852975506653492588798649175682122665760080324228077695885128751168739241587773819250694768751457743712098875519791396121176153454163413776539587124526628430105541636242774135858483087980095554247996389945656845714749604823720078131987306891140882959570227849857994253840380571539977511404975796590213136635371197133857861702008807451341682311425617551892624726052813964134368926253999008170011971425603498643057133858111628125485971371164573375408556623713067031443978091248811645081432382732709580520521454624393041287397054318587153668855105226048023017651463903660735072588596703797022410278639931759778430189557151903790172058405974147588275501389555813088238630737572867124820928685407868214716918108719989576806944297312380683388350445279685568054663737684813778658651914512140903459783497292045745250943209602273864029840106598462875707985904798927896588887984507621813899854601362896458916772211736747453616565474763192837178607292749797783576647031876087876800824432476412878020927203505480197328645046692442501553593688494240300746438723079067257128958093415811653679487452502308925020255362949828139486177849434302403020829834716233414658523700386849791753490413413289978521136747547284660465214074253180160148164971651688579382777651957182923388088803677737835520364585317772007454367144041377470581098523355161920746652730626905152675007535502343304813237424647963812399314759296149901637860624327778256016369570405669207199759089541526342439184516997574953567150380947863522140704922626840157240138260637970835009163277572529602850612347307818805264451138638174162008951704489317789233466659674814608788864526516432016017883592452870066202899998149567710113256294614099156249952616190274841286895182389999617682188642551607308886313644923147674781881645027204264950937936572103895479172256889042981331323057093940947491188983129552198679499887795530922356961115002693253130263795290138391784116612311813468839702798113576953592495376706289300045112718876363402981995860859710883395865191725112520812085528199405157710280655815038197707626102808730667973764314208194738494816065848118871937614250525347996363558707482018623145835821270235724944314595538990631227772016409497654563377093812014679269826588180144258172617555507111515221298072682638584918956516061378432992847914291280240057537950921461179280661227542465076208817211450073824098828494396465499332373352298448326028163220774703706757166968990203084025757039426738161284958526109850607128701435487415863549392268305291692910645412370811543496602254806624086489467584774874046978561065283522613008535063522653964508692419272198503143701421018292330102008879251756353002689215025474646712418914912915691982313419755863261497889695298661373293932648274554725082982639875136311040579459767230473691673161773759516976387725519359388063667057896123805888375318453497151978313059176033047176140574637521932454539039368753986056063730779525940019852971270427493131973883527766320167229498740732702626385859351703554168840710663270655065192766653460863010098265059620773371252670547451959862197251606853549762956708508388696025700106479114560057832466565576903060512631699925618308587863264356476435840785617996166733502205279083040054295357529760618101811958235936928755622886060131339081208257145517815108694999593915423699880252417578747556740848696531669113730319321964128730251167706754156340853136721058494704854458078567599817033452989036928923462302546868147318969384680616471792529331708015096922078358967889145393317124606802533371405366436703864193674662956091664589893173580866162111421975915891353180859406202311506948284191451985860758839777964657602194341067322937631749410501484889434374326115760360769223901506843238363912648818917278535156340781059023853347571251043477555832168532964749809669249212930346747080343057169670762655179514165855978767885532474128858643508264800335366374587795017651947250659913740527820716863062096629590708122731901990130739434822441537306301423616487268115053521573954034932804491286107748838937287395806823377055020489153945104939516938935301744035431931741959305062700589766262568302706416215877921466492431522500821597564825796890899583011529113257755422680157451547422314701408781554639291564336014795565067010312202625773802148782915866802336677176418830796701172164222276347181203481020576786968252857333396609551955361507621935798981472993314434520452488600550647695397477907884276165011001060801231123681386340309349179275230550991037957009977281027122448354151803270754459247866606673485692453624129790693925550038810393304654612373716653426595627153275412686493055290597614353837263314311661744590387188114178384978645380482534676022904338227962492410820230944485185291190973008855356302330841560061020200777406121504270340662198443806678467731152156695283033318706367263797992917908954579233386781936982753823454050843530875302477292994398328065172358777896827949509128616532295856901306818329359677722256152805564417850626733857197460708206313837976045160549118219188969950000383425723640864083671526794686825901974448321920107357929955198864990603168204304017856644877865903898294222954144835107440923245163339519798391303501975159989460840906711233804344009277885936736607426514803024784299630342595566834908080688371549741053275161006763831179326391039486159304221727788271327441051865329706440027750074623675411790107420563974664650533784242114181441544573964834815552848675024290812757019459489369931651664920679809860831681551111564029002064322618626747751265937726724491483873444726099914096479093035147848466968649301635834747530666593507034136713864563962748819481576656374782230119866302873190992187554124723501472541674433176871348928402485291490709980900408222594037560360073542660183439929619673209637847873213252129779389433686336678209684291001550801884826498711743171759377054426851391470141193186142865269789528924347348569486789963740472727284494142688102456765304021177563662195531069299073486820246714602947820446620391799259480590681626237716379743136598989212905668907599109274747778423946965940441878999865478196580747829040471109724782001403561760564902308572461108996287251004594295373379008576885614954398709097417294981950974734785564124903791306992649660805061682202374544339057868579908475724068927676070524161883298164972236686357884478988636580411265612755696261111048413298052965356247790668472603271116830565672140846831353126691375920014872937493424204921170662362417176226817244929406003945792093170433151934116573557712007005307210628972986012972328368818577984248222266030715081294556038269433346799267406125864859132446367318728431474367513475956382254679859693874379187991209052537727666554706206451672094624896451709118290975101654891509492388384333930554911991659849863317586565828811878214151524255384484205271450845898617345571547726236663893648673700449809278730236904592213697204576112182983939302548600094035110224890529334549421238688569818096249209198524784064259352362575268993426904207823335235157908026657443357652867144644646829126128458343921455853819654971407303704516728221231217343235730027246736722307939834837152294902421991958266062832958869382184103185205923574786239525307616287225029894538093434377128382570208510142904660506488142569387618760696966261130252675202468277010490747958918835207981994992226210642329742567307194567099045604914961180911747257500777856543183395321883718968345597550691463338444586472282246253831093102382097613932086840304366583862627867533753970446609341724706625533470956528419377166028415156854258959904439486059660052566122106777151877627837585361704788713990786108248947320707736379760990026268766147617469959461198859364783584546534969703959478018808017330463423522804032684017554522141981468426645698660544539709729156732122919996017890644660265565835716841627356213170936759427357456722024450416131989605073266274590987950179119186018761312313569927886633621781575487613205550810355521994396629438994540007256786945007627440235996386886177697878504831697603870141730387212120736946498105686768299936722582224792481049781958244548888125876356692913325235723278557837664595773408346788927842604800933942949543610084581872615982538661467739754708692886290237620214048571330952719365140134253243202691876585486655924910572599304423935841430215585980565180215680828608063965026783244242297407561249767042364986788211070231032126937033685078395303471978022936223175015485730469047342804906135545239551168977569506520891376503323202196633801722050996026271774319604680322727191056559318313904749886576486639633001294186713452155904970661182409569125741893440775890305051602667774211238859029863430153902132019385756860631297585849250847346227617083247761099517296465760177824984271337735855034017573167269849017922544533599537083577696588184521025790999813501418572333584488796007551674206793021621907764657744752118876212064043733670609129475199464969259231252158896635607512544703529693553379059814114401683585448770017039765869938817073436296561230107933862282426647980463447708149694734435082298961240220113766563520013368137753786299878947828329437898886195254110765056644134023434801199488554790413517330455347972052992360911963895229879646651894059070386292050467801139839215984959735695583008760498426698685030358234000558417528218854798875379645031954244740868128444420487998742101748557589091606632027770083926096933338400356836438631800261627620906220612181011813177484132474477465292984031870383219767361769150009767266604334724843670212151797687752816343070535754374740067122499610600119940471051137972993147781895605751649569265248378753642037662782272727647303608746218055962622101931007664792080322828477019949982864347119891776912820071953417445803236374515748717844291675392501958356472572451214321516215559880962791039998970117272027487260497192733647194160386417531545360858084963441792050349917361290284389289897504416460012271779581665902042478703294307341854498308730671173968163469063495539424612744715082053218885034414030305843823599868892680655157976665876207898175751380278897245150440502490570418053236517929578191757528300232461423116110118051775923619013800810833419381807258300387076511705416527753911528200511650901405799877554978317329290481397412633522506074115368736271106599393609866725391555562669746038249368634668879376386338443308651488156119819027486799397087538306401283626012047735942483326911307743291083877618515546351261256993238614387408010078437708984147853843694567689476467159044806568691091772883398570498685006472151860289463938291775103001671923959775894525123435502720986935183873659145254934807422445799000703738373674463155522807432267354072841411968223773771431767193302621449988386416869498323450649291026207119747567145326984514779600602159092142633162472518977436199626104025614966930466865540003335214630439453800269106560397086041045410678934637419578461291417473783136745014903336963239247446404101645949854655002933515594910056247826936258937432726687583560383278990557178861859185528706111459296809330693767580347611831410146326208554884161381610218275290419156219466498287491965132710637228713239612831543243520317992978466662853541407151387696649241020808797660790777507595859391956994554765123124620744243432008030981346223043052904524165482892372602412646428776974406373270950563179916344804381164498650044242939938951267230280753598649952319219437514114193609973426495838819045521460613675165918220591045803278676394336310032314320497094595988287456899468335196857151784990082345067546444166169644191560514974768832683530805219390781232288268383545267415640495554042288042443001610877752656664578645733263634359581256473790166237554029270689680235749439627230706926963484814003699945138352371134131087767711749717981035795552086929905493977395136300393005903887528854261075419987427405497135348974698635548127454043873210497995875328111329648746516639848346065821155047357774637175249316648670525333722852326044655763551418448332171142186550937948518738423643183869261490437450146790635395736116532322138092972925773984400382595480651892424844169290955749927966155292423195060849888336716059426602392639913183782987398463223015913021409147264357888007231426271719856622765069939320619106974021877833306346768732539284022776420785415246675117378738987860098688183660561014253762831683377566627850974330875126321141871956935457054394300004141447303546887429749688131485494136382532245123803407443214959717528819779494783182145963027660855629297518783148334788359811463686846650601260978338441158680288405804062512806464763541160970695003215748396583087048404481671483341089260876658828215669092733480547742355414392487698041351041422439719291673411868426843390961633145385008521621925794271987950020302020964074290979891002219671007031762614096343450282011852429041985671388677657011013457978118356330710887564578342297576167778623551708734425866746161477772952237656728714561790594336404929437411126825629825757517055093888793044058026423201497040193945884490537374058987343086664180893518296454788974230996355734376484300275779768963529042782729951796647722454756287755667525116304253139156576732528281884024600844937791805208555514204050833758430391432357557238237810102479550641565024379362957313964202311122066512978596353951487788737696457707857088595532096292413302598057492680118748958630003710776166437209857964546596460171615902407090056510880388576991579606454485711866420898608340803985373634647417557121520371705629312516498911934845825371980379835445002134210639286429252667633506568926189780282942287773594500201852047285726598753274093786882055586012995875492728782877476859135591603970574885233446989822990816134662565685927441394087847551048820990227622180652922029674124962677369233608106773647407922807627080730466904626285823410176412265152166204229354037411597302662607966084249992287409927340065747205149329023517721448701944451195402015854672676776992000657840132832367837006381357349101349525129800202350054176906722658921978859970514096084009800731508340267520329590254861166572347920355268119660183259304680142722789341458162327892616106508179124631799628999766289186089935416296235365365504583397544463275685418875550668041397783616778747051096099701602157449731247005512747016490524118179735599658614223905730225291335338567005798220620476732554743793284175389186280424532188555983163740001937053869263131046849635541988003791178060922661572495265135215004661622133271705079219889179175435173478731755237784388252414729339653635231758859468688401695492094944443495989986057547556784474841323685908823823948525801625007534028370075251515105093269974389759804750738846049598107635729793520143547250374392467745866622859416658631404428623020588450569650484816079088046283116988205300547000320938954874278118246747294156318313074858393590172255333372273515953414827568106389960538214649292371651815601896548411019629157429209613129739569095770538215608296193147773311747363828494000004339669917953985842840625532146789903595578936773005287295104235899617682214670287625685666721293598469803416381698262710660019392530086431798917148985477259379412269917844527751259895160348639946840740645672769844660800978566163861369691213052920380505775586549517860914821305488741880935007607620180018813700838468948711048052451238219825700383621617134996070944630688155537059987290003018060371455449670138872835700863285219516524152064970014129303940398746318967240639155625726496568415382962557764907605078031157718090240640629180562667168088214287930087859258651710722034982139880662268007399971097625655381229124161844005658613345221766556274537582242282782934431164974690783807290297708433087772948027451378556499966491735503900637506727305538292481555339225244876992839937591728361021818729701250033512797113084075719827473813543621743325947659323248504330212384060678100500818131043917271808152617573843034672446226491923198779270092766423693636892691474455099616361142900138909338398192265523188429233116242786214440009875701163214231265043521247106066203945660712834694540794796960972089381494794027751758229270630188900435210869336025580472491870324568842852754084666594438165192594691304322583852823594238369361667847457114314649012857119415796510835293951383982901318428493517220884798501188321567541929560449641957870264801516267729994394508345308952787430380909694675261377022490558271197629845245086061721699509643263000316209357141056126084989656267368209868144430029945448975909771786672523729596956570702520996965946319453504711843233166970051521786895799922134764413638537031873139713527219761341892126369159552009248807531621273786359987207606823895395014310857792076363546028435838422784603765954529215923236010366233074367781904510345084220174540225863073937302975484378431658999076349176747805366475779200671438798615496037697873042645209251115174777868304622271592192671288134431304287637200395860383152824495112394465630970322079849766368467792987083578199474108913775595694071597288279647104116105781719657741516045672891831412985220483807922292077360143581606784512939250570661722998338405418653046724563732261616868254159837936064303115449865929443594694351587789992371151851087969041445742612458862521441816916884148322114997983297640061567421065507303511760007112681507779284349535710300510336916289992757286642381133230067056366343987964527953951278981502517067156629695392872595694828059734162593437352762513745786449035074009244332414734630542852322488488623576424434781953363013779705680489753366752861192397061980361902909459885544461786216646987025533514736734717735659384423175531413705259328777026496349699218209838618395547688637497780989297017150918971285537652541441683643573136502850869648001906877399344423357074287641997264128808750435526668830649857242612262041498148787310122813585912266983739153817887126173710904794709651308766446481261097374852840727381831095295750935492577719040122063086513144514127174362931936853932568770287096642045315152315021388526808109708105729507285480527883745428451567061196316135319218899881634308569415061073768149280491619101273435937553017303489780352448351219470421460138845371779961490677305157407634616503967248967573506879232646189597876221463448406810975630482614314548241741588800643383163194434093496832770757988933560752281399067360174308288482221277416099456406989935668732033881842618820547360217686058132166377153709997834195575430346439493710001311489878980429228840849354502321523466471625364137835836971483813513979018102164097291550641044273619807022612389895774466769248213197992402900277459702994659833655098944743705052310378100736329749020884267475391122817546018174048730519949004457701273050439886011623703930921338004137264341371046281574356233783536968562774609118455975665441536444963694242109995861387745590280373918849491007351237618297447293360148013146403770717578606630898281641605423100538190785736058350811384355730061427689476853944729159651436562799946349338661957790392881754860547895300992639595507082949917643972867203315199433185055480967889085766720820883996295186148422305177729268780438834125217178756333139267604755760029672865441365019085246734953885350754075419853030572319425991996863129254975030573817463487344007089094690947592703199456553224145246490973228979649673701251883961307221774814435221529091545157265968204282681881576850961275677721572794293055868856189716619793844542295856708922026565125622549711539248626259878041983157856523423422624556171805302456116485874525734935487324209541879479510908881763746244801474750082169243041713949670985127103285568883712039761566886650097835445529276757056015148603387015884066071182863751940673860216450955746786932294071397158875435589537727754358496395058531579960961884077412863064944658313920214426008868914232117543246591571293827242023896363672879270437826615020458539664398435787882778652507642054732951354188532494385079270731414045161774523023825880389820545918561064367233464859568968492869882326338843386000358116748304997385718872203919856675911605996022524620926970841473899813935748816144536347849153080406559966894614941252133057707114931188952609172905429320388107498263116347663737404908702811878401097920307177671278413975598196443217918602604251933030389541570728827093145043674880482343375043323396519250277960311480043064065152704427703441831820649045745446054681452490100733690195929393968302043364813212659519734144120825336395612302584063947308919932979800157761029936660782965911794786290082401629503214389696032595542435887092787548451562153469258015495659585295604043444955944619775919941024956485774862935945601956018583362825412083208167022111798430765583664774647999941782076560207996815745762816935211229001692745612704130400084308275608731373754744944127676096436365117955323175141697850861200185575422129387307493501454042808431043399066317890045077816430340272472554223713611133946990875811835900132852321947475913215949621023782043624649159127377033943900974946784866403139715812644886852222765301486814361404348631027044545898047076404078484238503689586008169401948091095168626355652246918288659935751497847843311058298587404557208597151160005326984957382984146460746379049130417276801182639443141384024767535375831693050808253029565232035016338368854114435444662008940844356225579181835470869760134098899740634938448190651539276554139416083903148094567415520144105114500003116220151239482653341449896835872283933102646175619873124927079863868106159389162015952840673539710559614374242034749638020780681343888424343989251362210586640847832174692513128207935866104958886551817280406255222177451669998855509589168771102052821996234064927895384479451329871998454076877363924064182889049533119398801308704282813385825051742488686816561242894086935831001669133256273773972316217437967641499920834127659072866363286759454605406045144326546440343154257745799329857851454684693172827923488146503394395284892305345423141456034407754746868523521072944705878152912030916910958592591532673026229203888207935690376267778596419027801627731044179682856527909878850870470254909089501736197669371160403393783066656576377733388100500940946058834638532149454208783605739252816437274608597139960215988769571571282066924520581098231965754814199570755854938589297723516462884448643676179342834608142880226957785846625155904694445812375889449721753863728761299341720605554982311048350121711702275981159405614413283266403364861450485265577473056756976406257655010926799702746642417296673251732054885221409315388857564990652146134711804108176786179751651326464518119111292607446433927938957385126180124514267885835640853430223481374711119738678596643087627820797485979351963407995295349246820367514498764554179348487975073655089701177715836886696762327396891669170392500643201756352027675655697964183130530261114786270791543883152972725245941010099605753856473036268841940721475082545514047186289344414107186611295577169336071536095967014201081309634221114023857029500200556614650752559262174719072559842047688937934573753417005003686404961873386899439863541019082330692544555661410401820765775385882177879343176882714383350056271536890548715831590416654696528914011467074502078285821812784183523701512707116695754123193194123403101574179509328963493714894102057625634473543865540619098138921332125947787582106489333639886785443156368347227785875796007381895100084446618798300985240579764659246930888421112406071162044694598047211432499722151059453401050456475273317987384781054672972238332861549048946341700238319507152784798252465939801879356267626010071641583822683813286338404551671312506898358986704718668834685034457943811672855250445118736105842450879373541609418692873944719042253455847120428863054736249139038155316063880886903587434490176979054868477289299472155282293368133569735814175588677867595994048963875377026023346925379539644714440013826326519189045906916929596629505158561617092600090263132259084000603961996995683141544459482252391548457688662081343601403188613546858774605844596886466728755995117366091061526860593743526008319725849552357742313748947766468327907730106779362776851959950761445839122742471050170104852633700413104344660955520648394687108129151374720175378136975519544173292781657108782609743596123532559394830266619618229383648141954940179442786845919458190379301514580357332188167607404544387571618177498338520211614914077480858640605244045019607263797081699401344874615703727370834918320965795231343950472695599527088998287554163784733677079400220744602095846122103116119552002104413666118489591983719298445880948397403817861118658189605580239724562405702155504054450168087173973609539288129898252207532613117116392514131389134846726113587733534873499397682594089596886991724061148403622488375359067020810723415942109442431368602490130896940645212840335116778549594398096656527943931412757101656509506741655660486454713831732133486543444713467657556334310803088328189112448550509756117565859165779356181639594279149728040040396813137145625378398883846034507147340215152491723357809291028378700706657313718860490121625595759950881421313753372728574629677513374632223027290361480526552256733654436378779823743190298426019686805429553669242381648831034231468512903374721722837464530547976233954563835399214784231015849410372276825970824682971918551583530048530273879224203313608994621382843543410970291037873833338598676292498917678243818394720952566683680665225669752901752318322635300145520566748237196633793789038794898867924871776684471663412998974521924972750761015982159141191595069101725755583074097923219306938469970423353319766620787315543821241268536517154024146140216273508110382401985166897831763725784839471993307850772259383864902524896385278950614658082040959549569684932083307105174528162515587261153848561222705336670501096787490607468476367527482887661810441799979752540984083681596815978937214458891088690987990228034631605296536701365579940945714760997045622157577125916985353890970589578961948297754873517958434688167960118537156098313506931985092738017158219335252329363870061690087820451333288888709548206120288509792212568494862266114801354327817334159988896353426179292205098097577671942076516091507317300834509831268727616014324493399776183350433138195210255091423033297315168325306235511168420040683990476519632550611772089110207021311029094792701181729452211203168720115747821992478108431580244271871358483281915793326015949735252016034902269605198749533534746150319976111058065315162495832479422296306601998720556717135148265047796485220024433892238527221686581480115221530748457337567959685945887800290754642111450655704312773983847907908231072750655320430360462458553111680126374053820111054730658605754061143451963520765677646198260869339494800307254780345003979922528831579117882934002359901010466008942817808427640524776501484483417124348225512881467166641264391842885392259021219597679810442792918734888101621821464414928685805645638059178095552501320630193976205786163632050003697480019228570516381266162613798295727929095105187825396892932929548358514332560210157639269466183894552248842800574216328693127673620981220544641865227250916436064430087161341790135986168371200993220757892143162779102518171315703616147964233091787103606061955114295747808055694102240474095415195790245641257167998278491661820335773554843420227760531894795141231818838768261721287440282991688922359261749997600268655701945540779914176780428171642829735572252605279220254663710276398073200463090830086007829288975780206125843877392106434101214449593528436343455048316526439578840424822716097179468005448950007819498276962686250679200381552035042628314008633095009322993193185354386459322934330986938306186812597292561921705719138097475476971716382849374430177486348172294017777926102209248831694412739459803635616232577248841234972286203350710754610684285238609921742706743712107999486057339541395336470135783101149860154550677899748186032653426690980415314448112198751472723642899929230073774435256544491950135741048072008845435945335159462417062616490606289142835416888106497201890740225029295457247931485354184320082039213091985156040446141259927045441586442025448604258358397011425961382159736032471933709793194014872261823609598267764066024847917263599665789963644729185417620435479655972353271417468371763308964481531856300379668937745472597937702791963852674932709345905625354487211199964881083639098568503559815050274325050794330331784662113535888820618347929556585278024906358543811052291625725704978715395109221004354713213044526720734716481883838709468237887584659872016178176675059665020641020114883939513931404044094845574032944942495289549437406827285698767945876919853307163021422187958293362588035516096496427729718238989555821836258526873124296671857524208168519104117068182641632367141448292143871791360963068202314684791144684869888638654337953872761427863976929687912664319468521997425742212191591840894010866391063680734366217307048154165017414905157534209403646838752924453756886982452570830180240772921298984725572715050017253538121538359998146201180445143239692505357794815112050862928746075589512741736884640771190643467710323849766461821419807551754448278606973256296944280149289262772408407545450804921212924452531174426976382443482184586205227218163558236848477699865812987589319367066718921133840514686362510812272744118935190750127674399078583040519470545877639065025866969693239467460986186762435668151479478254023786141737803168744800229449218777912586092932277617246841508275436245295006306691354309637370554738810290132995075432578002080848020540512828982130498303276313693297764669898703002916873912905361216087346190986173846209047411366450375551811190750727873200897524694145699924023569885964589243982080388557216027117638319751453807271857426612959680413458591642454282109014947945704743279863622618169170162882192271379616438608982447484976700352324726021277130798849982597904224627824703859160979436707017237169427228072145314914226980570004511482811582031121564407601246197272922450240657605004961363713166896979101701507479587275554838816844955940995376988581140052814127966865741958183259437709266830698525978031404037421208040942278173268543350434433296354629130406527709727285392390215280271265680593621170435950448085374824217152362359791053208558697539914512673756096794247710369084384412037300541747503596297583364588367609373950704618892986877297909200820179623590311951227425451368852894862244099152561641913355346355775603394818621732428353839352522432988657366731265854942135353690841078243240856913006832845204863038388940742629443143168236367964866736441100525678669381633670972413993456261110364270324759050052353264257014617105076951704171169641083063628667667728227796374749650070528621529467535254364116767864048837254339950227966001425411361885605735203991546698887551928746651060150155782233565200670422837420107066837801210091184973285186696904983222147577918469315679809724520912512795131063579484014595498895145463165433496763459657176104407425438907604853245299277069769585220034641145019855501680153796962702392723554504644815020690184849439511744957357854939971793127694131353022877155436238639094913851897922303869327003418681110113875923583969122804701157370542778472007522161657295466684312306824831985434321316082366122718470205912238117936405725765015737067094583754378088835970746075246806724121234222908177596195732583285004223393586136443570174580928192137773504492265791428990357845385445142487668479548177297941605937938651591636420774715467818761279593126564636027901546759379876968707841958116887441277956255613560658999701776360579243242452376440777860810512722077991575962602852171136104006310991427862111566665838897727666205002865962112171953733830891737181500393728732490672459029102984180216063936293059898517438999319336973154789229163902777951084856859155624195948949472777540340299540961499308237571471938325222783888715583386125481284365628600168768056287274296596747314165653008401218005391112030544541718234795431100382046167821560516076165454548100269069536756249275810855295811048341494802033804448664452331056932956897180202316458107614091337866691255394470596194441723321168722744852785447715496274786567646249064561090558489186810399489653227004567104926902833434845126643137416841032001679765844486512912688112502997376639689963072130816308135282473829453727774359191098557316743585138686472756590733373759299723910491582142845532908028976678112595394987002678957305174055456761941883265309065011687273860452312842440092263100904698808092430239542052513320972105906612740582304357924134150832066739345053927889313128991006625810582009445485123648109233452296086221448678790031638972899978334738765487337414708998954994206433191904358767153279330387345655481721055929472230285117223549771283784939654796017484720895754890012891021964717673011024844592774955841454676017699544607448019207699318405653074645008807819926332006691775779356644407479604722568829063034213765516503654462078022677922105141302642331377620831976529420137733151784401996203361782378418829692127592608230981929883479229364540412277081992248667322051813990180251431142657044476159472642924499882135424351780997609733568651845638732109584480296635252917594015940382864934014250068474503626600409450027068124750322315544093919988722079000557331075566189633951732863183669667852156030876923932030327537993170817191770732040196823376675146173383386273048938902809880007216232263701805314656915156033046348226093321462608372249202909322925550678862336629244871231018041111247964397906467509122958568664362057256245729817083295460239907517030034236793694962208873444882905009069698202959070986133332768289092099044443280619613663842074552170498602755855193262056453391059558858647478104598152297930609186722241465391832397701818089353315395980977726536177019607341652281773846208261284304335028093142481906291812316405450464332300600508547454565647127714952287860717062727122536919102500705601628169362981704677186018336650324030246660510827805508970514072708417552316817336530587011844605230854504760471399711498584853732221319623626275263531377866368645626624827754782967041208057231499204064733726407794705070698980496009226430368690034164445130334334738660482100286397146709622595774906599195697767492023554284640547521753706934355887215873388396079603894688203941626853275501668732929767035549893338676129352835730440157584173863536939722004086437921921980776240384496322008533427886748289232032640085413469797999152383163144603322667934665980369180936319631345201361913726774933717508768778121217144979324015642656885694670485413446864937393190935747902875703242095380493267564582598200052473521003712369726525644516781438349659838150272982860989849843365409937987643045333571092266732449258032151157488693870098034067493367955647104824384395976436496985086924754550605587422117153947113762834374898357992076613747893512184881862854834925025385252709651357832447221604389848677532053693755546724935531232841208583027369338510104887545935797314338739109475085238514553781792453813363700520700123042162484399186172502501573862777723251194596470969202643368101321016478158065859116926094852158590739446060437326354410498071555347827610056749833388772739241795940297601678279997174482595727528912478517075828437993248608020917191176979393732249089326691748283912275703197127827639428716113923351522760332428503703209542454723371587684696076976141470704409414702226353475279411815640042963050801016136856657353708909364932082036783928604904171905837204888979155075994946133491057496328377513146054316157533162134760261250192974343312084050121261705982369519655440597556000649608852354399147534747736813113030578716586595877214877583132578025455149461983182810757344354795110469841922396701850664517775173079996862764418292701169378313798343365474174077631149625876988515235369666748920040059469099185223265117227210087833239034444126295589705751275823983749667590374549432957266371139598313674355804161982838765190028890899195105256072921200145438105000821694288147993838174369681478793470539170461475401840773210596317636921264904804661966448564298497054117420577389477143863244709762144631407834069445473773048811484776595600858031268864765226119810403729650085639650093518503796169525267565163322901527524382282300621032783063319420851313810638502512065976143756385386738655856194442026781015800298318763612672691642214197301128978365885227595819342728712641643336853289553052905043189346538787493340785378983353481301075350325840277448142700636829770877360003358654071959863192799112857199691959892345387767895035016948977666286316679914442645679490784393047781992337081886407276754704368223411518439335082930421099983279029249009732297027292743629900959083348626188768850426749515970096149676661486267183411563201036743327403928665961142092866654280750886371379918292566191615774465383601960208344454958327519537761447079287491055438637642416396954033211807428838012170479229024755722628129038736213680226309197551083345323726057442655857413783989053906107923960494572806403430017027846683052084945522152019591003364149005245757177581891750251523082164118816508336115595170465742243070881633731861078377547671678529393649706628141441669130744664103490371646867496089741717839777809068147070177565023299454115859739630834748304973663924798923264946660210672018561189390643569102672551288312163082330301159048284020572050567750124674986874847554192469723312190240589235391010568438925526303580683059186210544854527000996471342255525300522085992349221817027651195574171860297126024985086690372889829878031386068310801728875798339920696790116325933085325091108947344836223342609717928850668857623848219767585655563653172910236641363630573580969993806178048173150693889120629398306557107018033839874580861293008407604989291500919051098629949904133715144513777029000940612698640306086943866211428064591887158305101855046017465415224267260889702347060351477567534136271424713614810776712109646971149450486031756845229866678566038494464806318127599530908805540195797397114351048510415659715489089799189080220921365351588340657817286091642416521894561949223585832649071923216206975999237717686008959475747740389532548872549742477875337978610859848706812276453127271385473742073415014983420944178212134733879944942583597068123159027650881965939974511956777756552469499759074916995210760844837242808253798300684761750309675844669624122128052155299286628888230698720268173024473215436110352153649022325387802125620815456755698569124847645891899279551036676044655624544571034664318263811747275869283063952157868186926924724560308471827652468162257621966010362084325859608831958038130518308424496565695389790812280995791719190803871972522554042739719401505974891088904982954668799161169558228682410383157270589129203747917133743154637703107026636737297039780384887577295357505998731019238949836910649123849652370887284200214495547051926783247679121149836259232317400358178643339407955319097734305722087998806511405056203329460872252901052085206980451205388111799105839648877353985741440958479545281833627546979606995151831786222644586253327915523731798321554838844350534031578586700689431642598349727135380653348673950852873557378102405568202991836056557150105484936516016967479863314808792074020331429841192190340028937281498037481447705364292126447554355480014262067210833047815135321376632741283383706238039411767305534144666582186225206015036373994346649672662420736396934954177457541729462840838212393459704934346851515121936083119092307690679454588202232980988907362855923134955289062375610394476361459896913540321193328121570282773584892416015869733007629564770725861291121454770566942482560093193927563067305966849174086982122342197419704680870822647929351880864149502435949350444745670516447518034804628124612925653226470436032692959404466330418267899245575626632806983801656855561659366011691343824017512439125041458344542062716635746918522850565036121650796067195131520756358583294104061776723085758196045930068357623817464583189386405656358337312037333331411596425251784396457517995929029066158061113729568636356498406694115525718897989283826884556901558313474425663827396904877158502941950670466633989954467713587991074736373299001904859613890877058204067664358524383459949906469079239614896944017007266342995229316395238254122812773782369583213991015524019772405370088504268325396751310119826982530185397244316268610667385719166659277536280837059097178791921544889332488570984407137804183081794874059253957019688309574521897215576627380670812537396717525263479880897490827665704258004067129310783353838971424909253456934800895427247501910580439500193356917972883513445739984761573361604970721719310424318507118382189251899230047826561000687889844340132200712275654376218174398269861398140971044137019378208225618936833925976454408992764492785918637292043278085697342277255728709189832176008569910686848343353305439349437433375918485113098006465762536840945909662227804978998286579867226239470886651512601804279233021827780610750667066621070531068535559907017933407124775456320996438772657027680428327879656543550433715505749953054245661067873827955162661579875597070685739406242860954511152320854936192672027663375851621963592182710892803140211665821264076701129593623518636373390798480451644500042887882011043681759766711979168995133200577047218000062301172384983263993752781404079707711325378140134824827952961520634335933084190620028153952507415458460258434259824904764805216881973641038342311193375489267675037532263492991586066509200814472065996555705626289967744219632715609299085089779622310496993150560990985351391653378996858498548929268067907125752427640614711758991506900022760253596827548928509812803038966657825988815542632115708785861517145494049273792187630791093345037158052104429493078957968074206375627083631071850150551421733166256608771826501148897892996585983248253211350314320922208017685622807935325458043941807066341353893793023602071518117173594018072598005364124452245787726366573749100657536825632372594897869444357243250475040228264016338305832531151304915518260259152533392198717882157808973673754334681353375742478932309311318658211250633716225713574986303237398835815759329095008556007942466222515589873066964180830158209023458985753336591145703476121352374838517653518502332227441421530632414440833656672143917871126595274482567283432935053323094501391696325893912828780159362714091453552941461568519938844846640275702537514555758041294439949938593996599137430852372737985654696766279202931844495167837916221888877524828854977638707621175727279996559154369260081877634265101192337049603871015296023757537465743602667079722589286019129340922626865304892216032951917377715483335304208101765129375056550282308285604302506049364723401366536367371166805999691252221388201394986295836695375741834507201714812522809598969806304590732997065866778639715283880613508158754590300037505334902979594745797968987080440379986597131316654058059436876290810288922738199689788027736848020333790337810510415747553801628023717673547010775037651586649373487324134271164154497549321183107981267816105729446504553567050512598528253085986912773625758181277968971606071827821347747323499724387918285474778682401422399006041958275307541574716894309578473651932530983845552273550298332118774639556579682528775639374879319394448731992796601510328200965953069824232923342465328030065999962197932183450753561962633840441472166018755983166104212745855763130971871279596773260218968149629114139544275173720865686513545704338640424974495982703132178748310816419866846732472308074606547140319694892335606538981184699761311103265602232913469537063894463272512097620388694887059130315959167004228189505179483353344333965250207323825879850075432523015324621357610496590044759876278693109289810772199155028151234197591942349508915486362266041814123366467340181107011876052995784200444098920216638733272445490545540060604404730480847562823132013191540207034477026085356613513064418731320213014040814409596266860467592714623022512771197533012457601152348592131684223742883709759998395541624246821834794448539054944341239778608162769471299624210726777716033547961985386087658510723216308441789108802441205578871265059770081321054223160953669388323424225752509008180283282600279498056278482482102382667645119629548008024590708768815982475699615760868422727612598149184650391989146006980947091927892924000195110205745053518687301485283802506763364420336090684990430039172805505672332082333053163554353523350888447006104996319001554074040499924828183453169104526840370918678404956988334043488156802434697543787445252642169069274588478144358900563039891921676942094140567747789914630596783429310364366618706876540961676213108127106718416375746107707707019223788423995871722346089990711449465613839601406090498318283892253882446194375694278131955578082160424359106377527900164327448255888021853162541434432120690224151108833774293536679734461694300094159476353805341708367722081332979996823540355054454985889440414802779448375108604484132875518828085380680759348964168571255663900423545727923202690229752085469760943045634652324660071644461798383153117361326877571487872953855036656918529247200917034313452302333503857296405216210626491169477358313954964125732126758426204400880087445664272711957610347980132035660247437612169007642317230417658497760786114509776199962115821405989853200637494735716372983755893276294840788221083412862693534324412280466119415377058557140899753221202389830017995143951707060670564524508842155524749884565324026558520777480388799321188826159763446642143675946367953832486515194191107573391096212310829947820058885801360228533438183081099432155616939664922344958641205050647071535079060982366745700842038887388777074640952692336065598826066646406048657450140324594314110987523323223712170696433782212462698819056114209527200124463753085184352957366395076853809963339515181205320109321274722093203239491415281979791022279652639162392759252866040138686223268905599884208667651644819375231677711449677789486446845740836823730381182383862399794068758613977805392836239070714064309923685099658948805057061049307628993529814255192301993794237084359415589812671679098930319333628202170727982880954322091975933705018660537608008158055092874763988607477153048227189365115462126657453432553853685124707831403334382889130803243301928733030069046339304213937066690838399764791227427942251936788959708664246087273848510149202886765996929700551123036018138558848665663876552204261322988853330951770969792196354761375143924838319243599584052664649940184283557007405327013716179865931561566013589031714088919808075606565698403266095336042154633677274373826829407529556350604805836868148346766937356734227671878476013422232298684165570721339188908700578022272537113664726430050710346682440485892138797581365210234481048068567802527191563006074954342389174645514019757473609660815178432329823433269858793083644080132096485062591694473885258258745971244262749928673037650097824744940098107774462922941058817659784043155964767130679121665150092607920975549130882258567721423264212011539451132951776594797391377594653363271168515413409876146846847672077753925976415171549865396380581346337758124783749303241334734854490146717860559522604146203898874918789263352633727203311451670517223309803920978437285475187965348825404430808272437664557310722282095969193788174369193914510569072671462845609151084707178017603414637959143511043863210181298949883517586678688496620729676161302749623954115207787294836490009248391471822459818460892821071756505875501961288988197535897659585497626211831666248975496688725858520251351546190666704542943773844233951956704268558011049739042936672314796075121027000224268748808384774604454935983064897087000245907845645984034686812183419390605003135094798487256962057207083845076600639718247925153206182630403887030078436087205253070973590869131819952501483932574387835010134072947365794107637843579089870088835043911553408922586629919666778552750337928666658169443059989922338820042491691517327362742825640260858247398232193352596292120419192298494315885697523101493434228205786055525291468018412372978469047606003223623099625263402965451529896112815105265841184714900145540878057368064857727225555452226962780289256233589866564853345578012770828909447356284755591497197135228384813494677886552616047584029386117184380970133100859130613578934711475022851689437670379593840476270844134106036769530883046124534620434222760357724623577520423030737240030598509544977732036656211427138981368401174131139833945030289906502153827002569887333446785746502976731074714921845382585509557651736757399244576995510769982027445965639250760648841022299942710488368487880084232394431687499228870913923058368580409466098817674584666793758590632775085781538767590250296192734290432492483006774834503195820018401419917247404099289010408673925675260792954939331160786357418771462966147559014090575808561326463259859971239921189088327234744639910160299387968959786292046266779467262009966329307939661607911183597702926314264091569228535084973900461308998937236561046406443376670643698058663309802705491487667928853084032854421165668413712751334444572071978798932774226547453874631756395366487385764450444129698039485241041298184534293223564624082254934125155916437020070149361601345192071067650499736339823878883279691458905840591698062159063257201399529661676423335554090281277252845930641291714970317708077586365256670360092723031066767288157446394110861883710910834851594987136503894344404935844476466552571487955230121867329040291873217113138573833471287609688876712413022549736709175772361989377425532078732138573951562113140439932712481394060683473291361198954907412541761614062026184510398448941983902419948192896042393689263219211587903153955394491507010205539506293708933428574364012239551298704725984923225790774341224950212663800655394450241486867624900712462726298161925723578860495082562720162832265183676113958573048025392159875190282159278994606412803712076686746162429626794995644471979959697622840603582923016677983816090662359225196842167014220846145872846121471391163577314721004262317831202122334315409198534124952991178186168934849232739391239480847480975038816465903217410795137158706313174579626358316191989941805397661015291954583336796181219619362034350451410574491782851322591474076170169410581982486558497601146494768884761786587362920487756404955316559866097976503996265111823328208752167587505720251857907357376808857510595484579990575034511695928531916324838259525625918900968552323030196273225685289972698050528292477331957286925816393894253897574504418599096697338822526635607674680858111961825258281333829559538355670527136197856938273815432138674731889594354364985607127875995834495105738926145594736830143496673145969906222157791063754932551741953291261978099232979378577447615090468522408858003637202286236375284310259532250868947251120047721565808972004711764448525212014314042979370032509777935824057613404111134287088927030303319713055497687539614552176973908058008113907648221637994526921549741423012618276975907410306824000564428703821426767281945704082337084680515638918421380455320736778427116452959283430289128931881085519533919958476374592999583038171113689619685086420691442969185050108377072172646375586156066978241321862336256466149928387510353229588301736344484857054697137180091810567630512718110692386962722245961505458305851192315591498676873381696279996683935763129067478103048118808048056137494740096980659189580257493667049824449703707122328211648317930421102530698477318853335787024079652202664496330848211031935394371564375189283027556861069896369026242074693571298192690039056136840623955271932926055643626738138278519345538748798998456438155924432702553352097588213727333435115494818243902088490879579122227085232258599151367956033265717222372602672648258744382388347038742900025822686789706448314442314753661375085590102934004001333735299671890192533935731130819298940044594171256931540271495169033712303605074807011338003813013308499399224716667376819109217020458418987886516378831086570391741600511723863929313520823648221040566090411066311903900185745369822227785762904565070763176249664462395446523354391221299966666205320608093377070165905318572120024104180597986750627809525659168888011026615318627642255423023199047026917915919676228861656534464517069441369366916967954952281727869257488723160611133948762567975730766194803828668007553410077244146385398667397553572724515748377293196288651067235497231588981190027070713342068329930430459204115705553690025945189612828660138875278528587985952436517842206145660361705984061263313069914682659730256981363265752931375924173930887121552251768157825001106661416822522800053220247705217692029653289698927617916111665376951188211607826628381457501101235543748923935044147987473693086821610292001313500519214484677248368917661151266371736561304771124114282126146850851725864953033210341850877856276929004869108834592996987478255105428023440695025819966935978963546418193053628009080824313375099542881447229440824721769454398922860113799772075550917583413342968605066526677215752724018748454960846917699260653059064363653207897033446105025234293496349029583062425111241628881393911862858373653193047550975361997168291739749923516649735504843243972260118280780109590540889815983827314071894868940846894176558383342467710861522463161190514376328097186287634190820550662958735926917606256973090214931465326240768103756736139317223697517425875851610648533640875232982136557604931790164096440788003281011396489831517924894446167885575948492129198566189608009802102922728346592669526244746605409243347830933367925271629231750120418645429314163690957547613079600845139989814408505604953540105518385254068255956265924277038186791274373762010192423173031059572129997844105839816373297784856821964775174650667507054177937737354437163878114912145316029736146016752958409680003137598074245527050566277624204994236039079043019561909368653649364217436577642432986790233753421538904184007417602874174274031249510247034393790986584317172975534013439392145145033730445339553008469780018511267283843863381127056123290121226030297880014392017877062409293283327670679109798971976045596847689116791561283544164445487496825472877915103356515403613851489227160177836099788367144685563369633302972668000234308239488777887579186835863390243295817703719726935480060138445135688305731567841282794915668335915839862051521516705777855141244328318590534706320358806254918574843095976835053415701592609012113816672418252879939704850434515864455481133309447870252189875142077077638418370332752928248413853814185096436897423461219038840363483723319463947597617315058147559070804742258574837154823656743805533748442137379112140161253103019748221548938177915105383639504189806489124860604320805597504002513038442322961280156174755096847182241161119395696369018765330938001651616816050731083719819366547537118059407081270136102470849300529977979219737955628265735399560404928720149003573600897548306692115249132372399847742553323332321757227240108055336894070966474986727317578064988255051427241592039751134469483068409173988686226496280916830105014500137761842462837153964618263386423592513645079169241610163029562237627610986911628866907391390571207521148038192784139775909273312144035890746286297269143282324026007843891385553536361327604576490776330806557133611267484998524059363879532694566826480907973199407441515063813977042745419513042318397973053462702133404728606125836825565059329894475731466789132709947315196920629550305898071842894487842754056973166731168707232525559781621271099250388594863116440706777474673792405000664548054172943601955717912435432203500634032866243872007425455964444021374614699984970916388649561368287205514057773700117181312004689190824615119835709962854767424057331742924621305564419384918333489024692645714581107446625275832770072374378749257597750879183505634810406515909539224404069454185060846250966813898256553920375686171273526482286673992151714670757033096147903820929094472627373660547690599286886118322699876392188196839429964075588932395567796218164811526486071517606417616434657612419538820911357526869452115333881922217419746815985754471820495793713295355782416621610542254372996529233523852766570444935824195382531436430356457025146254496312253412346003227523777726788700262831071206683771018248125219781755426890918509288714383168103800147472541905182637498446517391437499804066200514645339091614764063744240217110087786137599847186536510424849435163900448439574093244580489124441441130460614007276130739417347381403044862534901606333741667694495538948027234248440604236483192535621331845310660165960143460903670537100549007766769165294315913323661037891194707148382162502132545451091477869848393168074345719013421110277731927436680239394248468754720409147827503175591959083341174843334368689068480266146329114770998113199487266105761286711221958782479731237985866752894915714113930101814153686089274449421832300659690418504260602379186761192617745299279339790066166298122997284460259787127623803399567993306317197856743566962438682312107106658529265942467184818135648751482722296908494594345808331200852663425867559790722199958796036860338097809228057420995765028862140797539805887625975745747590101212075537455837471382196904033768813241905105387320275092797678589602334948010299066391614717603490842277988895248168750975805382332217444381493475815060202836549104023001389904066390327206985425662729324454432189328268760785776224976018635752967365873822334866487684380066939685563477146901199688298649739850660406890834384554110232717661760724605121054837572421468509647165128441848881592716102164886941584367535139996169516601682363567213753701566256345265003348371478795244333990528861112190470719554149949839018195968227273935001784051801438281058171619432742489070465005375618726489679087123516722170440120753378486400714935363990551743459414543442402319694858762280918940518919541654819314903884474407905777611876130481948498069174256985651971544237921076544675437011692659689213052872676263589822589791053909506390090500190264211572312548740897302156568301161949011802201562327196750836671341770340534899480986824378991914614076313414419070264632587394723569673008689723477711143458942330372702532435495590135457886047509360666499521155368767993583457869631756648768697920217002227572676169410896445006385443886996691780636069058482518893580255113778824548323939412118417388215523772034969145327846775972570560903486493144428850968626632456442062004709403410862219131111792326078212296396924908888928287358956621906306550836271083735028722979609292924581768304494812771367794338221888990478830371525701296988682151511420336516564771693988542746712851847562498658090137398739428517145204106188766590875717586060135376499239072945523281168160787070389901783587670165651727653999740941214456898429722585745291037242475401282555275055990055146775615503823527763551459758758114709161600589911092765942214349633769740833436022174419804532201476378929208054968377532290087558412418276555084936317265105581220417955279772662551927939619906407809473046514214376835466059277881385035417200463733670066660530318810215821861743380021619952821177740609771332337973445726453731310114690172233256502872396453593201916367048876264066417704201189487621498822009078945302877143645407580628621177563322629554362250433507712471632814786961134885507171054076593772454437948635187742533648237119779393503002685026115817369459463732778411691164226666636869051945706587664538588643075648636930012199027576876036000390030401483599328284634459194915164957480951742176935638253067889534873552943716884998927010519596883530367534380848327982029033866842059029760129856522475809520417632252828433919536166892972871456940555099939653188680694391033860498289632819707279219488804380030913015270984614065972571970478635800772964520170083634996079550835920332382691508772840143875656320083628836701510137026977049415058899440420063355126886981133246806374126372551005184737107795405178169558889915700930046882581361237983792657974797772497425338829588240720004012903649842084409613276723624119818906149703093956652083684269234700966657038422044308579556357954601101805347545445070682978121027407961080341213695616709586608386395163920142082797477371234552657071042700227145056307193987693827072986796317229958864277264104974546225666078505305732899047188763591870933133520703363179267289773577446578746162564916387050013281772122215513039217342724868521126954736923502487455818697813601262711908924930051249313352325804369845572468761254982436630839958870311558299556833086702777506243429695689983484383849879766867096107201804279145975918445903960641126377552812757653773319610571351906500648266852384214985575191815398742506288163852598671304886375333412506539610454024804572699896174656333558823643549002562839621510023715908000834611035296120091578060377835379434448856227092332646922812749521386565395264082501104212240379803963598739153765115567115233490335486491894497319818823377834136202022212176319139916673208950332039680253183990622925494475752032481813403343319234571298008949481860526944142988571098722884181839200896104216552276148924688724327170869813236421577691752971130209943898625279101844739047017813356675041993968364921689851378300997767660810587269875317397454965532176533614090802193337517594078953019316848594228755849882657371527318570247552166259575976306150004663031496146479852965974101529238548789351489906417830359481972199461010605490032175563534278009033843194105363432739878981084981025590498557977963693413702075727856292574192711251868069842420822545891889215842632517521360611741634465705381279166913332823590219477735489515523883478670729764616433956490964862992788092614158217641035448010635754807204758416613071178000377411775313149581223524217689788984300962418672776191588998557814283814544109700307941853916934682406807179882240939066630256160469846671627398046410790667555089920296190809051310086034485814860446478347083063571300321788501085604486405768569471354654953013910095825133442805552157398287564233741240570796491302893300663250325568688749323454271200857601445339297466409293287683666160982520373612906604205181180029976853146971600730674864744839760413209290914735751781503597404508472699109173221237912430324441316480781184309799162908898008584031417800737007929373982855334932840118557001918251188302250095483129141119459955795024307146386031004116629378992788907658006213982660069259417607037052734684338909878925460286214449148017289810136627125784273237611605530071231856491529098664238159787879624028988347478546368506301969793380289145686222928742706343526479601648524404909245166959951610571962918670267414926643926137207962108274813903184533921721150212323543617128701541955060088890237129106547983917896838013068967402716723510657109472725289029847948330186161791357324656869925572414959691359942467224636951073330420496257407192116437584302473986826768168965877534792725487310815301864446293167248066887755211090328831067175008458822254684142982691193820918654211296188844639595791892875963574218311127973387212062804843416621838352402638166419956483828948002349793030956918640985048708195480230776508763302010491213648585592605079352334482820209479451925078578328654934098702429195673277350814845047950089169692223930980611686617296443927156177743312653725282713212030877010686560240036122485135640922446528308209160046395112121393106900947572622093659517838871326238187474151622800052062331726934248141137083724227140743282104390871849514400459564123086866435715821286693789669177469492424611113508114200310034153311126320556404381322370054565330768511289382086386124697029320033170311762022658716172760861622483496095380622734379196781583640102885120933181335101515758573924402688247996929835873901916004305904723884242366131847357107434475603980316764289184331487863025137428527808633788159215411371208626994546263232927106289027412965775073592492544742173062664686704257854050722366186389117462495494837896857912812099694217965343467203637188964198904654948473534460890034738682948428031229188768650607203314482784454378530134843790786103467997454509465802999286490116918002811014747593056045589727430390326081239084210593596983403563845597054244658799586304916736183675871340286468403768056175193784409742729693736103158039999941560752346621277491991243109048418297692695573017646179736651210191176183660412339753182070946516802054247222794257693611258991276914514389768246443001565184295136433185897274287961504070742842912587015732339637731960344863666229036269350574613701058902645714786296572895808737039393371016983451283042759514251652544822341872926036704499817563666536210108672828470130964967781271238164021698311071135565693935311150819931672786656813721634999736743504671406274595901331107632641412984628244084934842436748916623718170344917467831005414179375760572202265196248320636837592756287811751349841103499582545176227253228033678202804177514777106372501814185654674185661486675262815563892052229213964276488537173667217971721616579793917557087982124133274138059374313139411092657550151331694069624595056648375076499396202781683256359102519548057372672537006797723991802441578088078297125037515780727785807195566219252013460285458398648108893873781601264791403717499585939647158217859687299535064112133168126853459632230883912050796507024038186327051201380246953754876026952676233679185776710572350580479678038168745631065414435430609707800290393771730749883830895423137880716890459061257677682540709929017253826094514862762388801172793209686485668974549917021859926694349297460975784826810896405450721025711296164966707104664183376558225160149951084259008640828348486651596408687307817194169722013952301524263898529171723044500522396034435616103810307563899158994434452762898433852321435435753474212836870517062045537259224941298502263431690726691342422547917240788071702146227967383152498845199328532816173490354325636797361168637948806192310130384348858218363809143816335790953080234037478275782729940644953378635575022623053396018717127400582893169820350039963357208589420402148624096373914862400833459040057688760786598828422290977240734158980234625964451588376511361669208516987807802386864669885363493567038495691492092555101622031844765794384971617938235468737466014237318335333293764190810295462190075136871326867661852822385161070771014512380689370075391206432261657571885010454536495071381593786719581136125873146567117554757278752538201791576154236414362099173929461297386076140639267410082284811552802161873500191060926639828996333578444676205413399268207606444865684747505058494534246689074052529585917993090395996710927197239301716030444822571091097936626612796780528046393297287112878097366787528370855616961089449026572322022075297579759010188649776662311420075449192479918877408654635285425720917980767344611422791688714635611245961989359543677191600730521044744014775861070567133415913034375861954229194519550107212916318802521363367880784094010559858218551314167869108625123572689983921285785501051604950612733902908346785188846809407024478611562911327213056783782772098149539606397559431425569336704583284838113275752868688584856053674092687280093995308955999806155333692718109850292207384818318556137675252947367152655670556182258837037041984031711727231723115277907428540381220255846514520963138962273632884916854270477010378535084707070673414416996850369885952530018949428959022332045535704062108004922647284562474962637725191844353874527830283893008637421685784898296285990150783003876657225965064660527382514891674085505083620126550635042802220367171270946092317208576009630898921768631740350637294070987094134140425005971623011144294092951192903599919293653673089577331934317179348893661273727790239738634368008025954390528361748943823455607430410599134402375123935717545429481324545441992752736385243503101070028597020012290549347057748597431225369652291437972046105988449167055938340166035714567608585325719239507614152479588933593507342605021222185957754994898793941065994296014750496843767978474754311113536560174751512998417209410047481337935947681324505686780681399897103114865197631744873445234312125752231240204588422367925215644280804321413173683625874806197415929526171567846352527246653440394203481141667336429721614473878685923376656925967441935258000675072010255581383088241441127441385587335464807045490804422365150953809333859372144366858050865045206029701254340106097310639868606634173309995191626348931046701270580380041370718165350682447298452950633013308575485961003916405532794245402062617582348881106101469882379565096361029355088454427796525047667151283615591093751645281601167779180750511314135058528792653208695068018741199386862803343807355072543261901144855368628632481867177225542677452010272394428549365231619632442171630057346744728766837948025866039638125606319449929515875436317326703688886123494997878405231479798568109598773198385547339073989735808128203481041379235427293944884571124773170934189624565148199592625182995931483462155627981280677944244307804301954017013335762772244231705867285348736841524867245904690357363753055640183308082788365697869732836936827447244273592139969471888458609771188488923579411426458759069439607865505284939213945174161927939285972051325499582823391384135022933616195677577697916283387019369166736219075068589787182904882413544348443776292799992726766343478297624280062878019900332347158100446439017891504814263471520775687737935992635207519068545962755453087499238647729238338407329293758647582265662528902796143514014369156752629140756929251961282931498716428852164900035457484405516870452377918187704790309602975121643386173764582156064206180224026358285330180629800751709297267235106828146937160057687292259853188471920191067929285988867056792268242286112198889801242483436242065071265112923696140135907042894370615542100712159249827062820043668659553673171966056932953543066320908211284884771827816052761240913500513876424307020047809486383477436522347741640476230651513374114622996140285489424729556611807930152341024112139876054425619562286538012197304814707076734946376809387305284229060423252151301332839917359066900767790724154177040386183843722127678526081322468124727649004015182612974985077096803006573519535611639180279561935707827968931999201120999713154195781489379917351610533692658512823847844540073510987660978733576767311333105500790841818209232797442261473342924004955208799963091133935062064065771020974206300282395959159723475238174895602613612148102503711985273291008799204184485875603272889463665181226152203577949285200709221148358917023849142184035472345307538272392457884934970666382156353160949219770944233878286344873110368083996853475608653294235125485622167887605686503364637474464563331962989494739215862814627958959374649901686246058469123615991812436637806311882668376903538710607967599187210691578957275322124541086184601631984263513027348781032391325473402917661834846404359979396045640723722117532009274105318684841944879382989805293522125240376962387768329898073649009718700167058891702549359997188257724743962413597327901728989277300153058147507264718012887128258124014117760104270932166451127452546953365502901305325381888131307151802421060443732585752400310274700440258340093859819288673624601158073056207580816355026714524270478258327867717489307973320259030778845024428221614214231578757888809464706169754340189645746489035314167436364693191007328273776364187818710502907474702149977125997946772776483038456747761829895051402690667757657849575212262857362256362943948512624421354181688662412505223576195850680782067287744713545880601250230465410639151151154735593257326552310713322789692660995084188320156445832997589426665605754202017751717703125129344962097318185857138595594935914436006462572864293474697688592661712228647807513075649935353009800137320464848312274320126114816039531446283985372212839971426076656133543162064171851621304672631705861849489548491933143982718779631381199950286834426543381112241327765347192011769724705155776957109271906230173794905089313036288155886891134316426266429048736988592161121490059871931278702903832691949939716223643776253432329174260689073859968119333612250897107475587357065707095894347399087144798264788925637380357167735624773838845405316105130138436327032896743117835918593241560757719628078080805128323337078428146584154323928685660837991890207577838073977201813416461869743229065157609864343530682412398409064932374127384627257358321983753063717997846829652015748558250887297282799264262285275591255335202125453507389699812530787092481495335386548043941438724850023276667846529607620151188116726085137608978721071730509196728238936716472630134659341661462603613963041060781287443863121480077116418998985321383157118704583014220628387120242919388633151168903998834023758526132928742481931772982743844404413976773154187412794818881780390876310251370205625022577056502275052720158919472125144736587778611745170817574714718912071549296371746104572308683615972704397003295273912386970416237626033997280553308881599402695536586560067164432142626457912991961300649093124042646896751412017700260062925650324232582518507101030952612599203166036770312169077651003454389108692664148849791925100662476654638375096660679454940961908081641984401909419931420964864765775795424466704755378889968011359312780698916423885868042912843144607049464043826630717998679673412307436368020810396912786909195001327897497453957173212482480823210426311657477967946306258103507035480158631558368666545208046446116889093247202773622511702906193613141140653274940183877896337653046797238556769077444154278422420558152691019838769183479695735969504608983061170216031191200159787219418656868901029616537016912719820483818441277551340600156820914552429531104003692164104961111803606657961219288238342853613551283001163464030827709257645245255257619406683594564353221900621904614893025565234302478614522837188460654283298269652164541879759973602013225156278107919689294492050162891567129977854161656999254403696509692216092675732684497568707876500444976996935439140941107234574723891745925998157196805424894103107761921931478400385470290540952173477507903799642847981080882281059219609345764739795433911261436681322238339530217876276798484865822053220287162049929639389384800517366637994768687574335205270050337736100896035880121698863186691349904541653328752290588520885881671905903609564463552508398287983460635003598588484229554384915427622700243002391771760145923824939733097087026906912257076133150163047554348198501798768376064796656663911863532754719282583821569659216356442783529428734993275699299398638545459663829671301929878948466742646617001109844512783481976586459506467149502932773529958772631241992332391764758174835897985233944959156520687703027294282058176147951616015633885793820246072188161138808366915681209328961410433141725598701509407114479265567072255161749483370201618346694346642342494228833481518470440494663659851054533327621474310743389004758222721316159512259462871739942328583530900576582309829764705711544696659510133889559034227733568231442194838258884857242106470874393811223912553794167322851276069842611809426914462858125324833930347522915647639701176000019055561824154963998625369198793386623273192142655154753379685214655677757061160621765508109344990563904222778708015041236309257416178749723241011261968538633001519429240519312889869028363886201603320473292832436795671533490989637722424019523076722721711477839639627052144266450757439434323960497206284670875542436492019071321573211372030070250039808234399575612564698346642800147256233591057135844562064721126620654184000321919467352538489761678480679928242672061902288408634735498031023747928329488928458128147337815440290953636762028986028960800136959273138044712966420351891215408820623733800235245644368627121876667091780878610762534551472863780033117768493568177697809197428848006293475809613893323417764421792050026736684649260857315758304322758646753299161763076998264392352024148110408305103071519522244423628593205723816843367692081998991036039783972628560769596576117929323969363192429261096384655998572794274334374779236516063679059880244845589356977872694567179333718046651496569164630443233639655352495280970577123131660545021143592577201392657496523893337371768910485314078769344872677750843195716363921918350166662361863987848504134378745093093382409964466608310290497782902049228734612815627746965446478691471666177125643665171221754360524185246445757971982302219186081463391818320027537603748263754652502709896319421347655910895072854573148807195034103921239859844721308554243840163102008772254047914609501293075305020883159108543018866248126253953132830676083831581486575371193544945078993530331421156078814382989541155872788320910740677567667076197951797572993181550137372498554972107346960698165559801611991816288333799815007361103976500765870530022418847966591290611514667163741996980250578897747903940018985262932428131433905031203039501349872506933101861199041115924067007997315731425785820480506457155068235366997250672436293609417064339126534937087279497882297509731270612077830297499403081923289545033436262135016637352294018887429792550848202995565585550533474779935111138810354614460256983649735940047541730140914413775400039951161399064267779319698910566099668221421148076927538325775557841467230045962437615052451163299847209450160953698063701866860472481767129336504312252141428933536363362805815441820672731596926620455413612265451407107226534660852270984995002553291764428501186842122577519484571298193728609151305067424388327305776052670858736775633227535456098695504704920548655479338431731393018062741322483590552411145431157587072726667348257403725679979195613156771854440363753170043690055588262677861477367347172266723233848754346516159040850904393797070709889344531414196513233521908195515939905064320333917833030935037801892423335175931512435887995515620215854430465098249354305524530436840045255674128964796533172469265478791006138250555035446043349830738289599012158184488748793800755654732067241689155172688918134080196009352203579495028318411855122859255107542893925585559261212530542886219520871111249194010051137812050951997562797868145330788738660576343055117423672317151877783455970926566902658530931390682173487227278793639786730877910950695136080964193180079285333430960284240100289206396937409846293871781469927862215800499270248185969452180876039179245559119396709343620912139137334095992292444706144287973955392269444057127998319300802985243859668308819165098922802892029028380503891626631401843610095014060301202697876101154592525817698271151283880795729740295212118698600110662897212632001580677104383671479034462071950916566052631266063893003150028343479335451883622541429685679216786834666846723015119868590313529449298883849828806233421775851048490895950018472111606377213854033664937988587063021395516371592875956859730664944384395243233697514070941261754045497326541636563340820709357503354525151966228450999004830652297457363930156556150528607656280299685266331313063899776465388107055717672695794526911254630561587671020287243009246794768762465586261174748683733027174671941597066584551282691015925063640747290622759778776614995927048187377431855597389779736612723884923235288914216702729416527825700119868909796299514741356636737443311343118627895504128480195538425217602816838389743239339405306285116130123031479221521525088404268146154142051947322352067938996637224618272178355925754416939181726363480188285350099470767258187884961737950672736607795359322456701273158546198009754749943151141311750421506057505193563773162938500329192761575045475325357757383362524950615417387411066981264518533456601295442393185256061298513671825259286412380561540076038766807660627074233417246377283483282250989935897708353667083854797051721177337383859877898402617789207515985729649236633891269435517014168829748863716442638242237123397046259429873270293398605563712936105163991289651545382867219770548353093411304786887813563004418852798958634102809000385882158773987010499332144761251778402546119697312266618556456021022883358940834222321052748906535803314248828397732485770206568759529731683535082954259780614045170463252942143189807063574033585427575824484007942324758188367413895305328855865037298081779010991726668393513741192492173195461986493277165740200649206482071932997276551658082420680205551751534421005377838060071467016206815258302239835903461740588216289282712725873964878744774884114779102755177266521581375627306880381073144654193103023800003140717869352489311591770632171071704752583372023097112077143322704978955598921674454647494816228659452675634903723370129394914248794056946254427515286440140949647868342098229042922648508124242508406755056760350718743931856185512998046549084517115443694725643180116157274844959516453907640611034320407172011125275544589841606812828104878813018501001874215561357872914131717134519354663248278103355155039237676803452166708208374955021668719844043055497227773918808499708826048369842183242544972541997017750312691989939531366741320454224769238683895892427088733540035156496438463922185503405450782017177650931466148477409857148637585475991298354597892484455886173354536595210417973564438232823365651569060413080181954335601515267509450439840463423302650926012807491773509082473227855219406822103826637435501948260458314603833577513033408971895552229394746349096923457217597912557437478110851972131146425159293055583589316653697467148263190811145313700233627921537165058371812744089740749368275319595305191945843256550565031067633700135022672809531064124121684468085977462638428709801320676962192513469282797243266903022244285368485291562254129836284542532462882914191152429446667015836957638610516015703360093333557495975339293755799902926584213973088507188442746128046818455265436351330405714802789238343770167251848462209678551779216198008726973450099301923319453269019169834101606352029253165865002125157227426411135614588940436700550090952713020577631668477278276706638670182952177709254878608079085018325057091566098401467489665378204775419903537755507422432439090768696760676747528833493978102059170164943708003307519705655711591464487928928888903191648474896979678122415023588838905389951726861902369692408454777338749962755627894330017239072463707879877473248591019229315853340175621982272549774474394284837312723303818216444285637447623141355961280791707628068534608024239016302047831579372477636660414652388209978224386911770062552903311763663605092829267116803553847954041074972850142187511230078754380984633332825307955196073172158722706323785246606291451351765338499265552599089665141872411932445030817297494522355547188445789656944194239881589182354735682942352897241933491192744345664064469662444825067609390656211071852084549024082220463559930289188346079921195172818206183367743470830137727856708167840011295221733380772556592023283701221778198290936946107396643062328586266625273430364965057261665366697206790193399487447535576188524839788505948876995054817782856763843706723614613348840690438541668604765472658687327315424918684950404857057283938427096475217065734289325281001954048915741915399906358274467761590475063931052798769140024304249297892673488245029587778178322343500202392798809145876237065484271221118401282769826260414415071492356239081584996532140579412877937301528795121511127232113706884770107799430540031133416146280325334118011189987631590838414950894646048823204335385856065575661846869052482433944497649078279155334781646732030508199075371882592482408292619588182282062366627606648046556240295120799840635473307493371507425603626991902803954613473279495738496310150296193080264747455217140894689052141297682137623059578532292060480517886182845922467823346138349245443774616880947479050525312594620059012104032752658778378204912694898360461619215098598696709349167113330753167962589263644769611579866130861707800823560820851505713463046630507661749739434904931692876849180193668403780250160932970563489276784606630273652733559279184442866933640357189946089958926579880499020820883525442853203867009485703349305258433779030977213114971199143159940651082966197619417045358266108463805260692787676752846838524574378155781862902259097700064177020335479384503192379446232858553965853013262561798999009628026298634469886143227559492433396901471267305336714058179598215816874400069492850679289252529261878179188548062658962519424928088876987763628426291868227067487292952166455403283108880853900165662531786222530096107796338099708207587200558411447308952217002794375959735749356021575862368565387294060263203415887589708293875388843168594760957579883825539060975267360801718096490459942700216151461830485904163632922926970953452301967838106034385251590897837375768606728328975534698242640219311902664862755091441815764979745778531793806524257775101857261374384196742918589798733165564494633683253397765377468885772860600414442732382846527668586424910588145210351313848755097723607287619268719933930541831711916751176088686462156434764794014819324269964128280686465491345119775125614485718867931089842756336522419215689047865126810732861661966064107260577195928216310031361832859732929803695051514065893271023188308866977116867821056970273489585518722439062407868503188458313182175457029578219161823669634173857416426200420524910393577315311055045211520230039557173892213044016964642692953214144890680212179166586343041099261572093735676956250562311559391839515075080431919085421432682031871721789058210386942741026981090662752079815325774798801925886810166218039482262939873791273626400244802298337437332673540052405729267772299571353906939409741493096544393110157545806475312176430626188095290691270078626179590228494750536880638411085207819522823433390048722630268391827642699703114938256211851553420487619643239697431092213254697972400989633801468416007705974561041512080934775659653509047478490072064881082137970006876692494348155168735905220141674822444815060184943691237600652810286554915148923145115226142192346284464624450393821112958034592547175048443028452392519472271812015729033496035297372624791227513999562092777142665307555414061783495570548800414141407916244685063905413698352786435867034636417406377057709625014041072248008930346350649074388494042999532011286914814299876587903446828187587858413913583885283785261270688201896690637362619635261628842476489133017394538718797513093029166784886459439378139512415843546703373882898727082265207919882248586014026543763413399258668255344694931235873906429674057427268157064669584808511029992419300274925029754350410031142000304618799488663892984308668754168334251173980261622771112440940430539349380755772784582839513007903586194715027658408266111920520067853104360636366392055989221468114593525228588276369009170506596890366551808037973935629781148852532467930952226885559008316122328019898694945178190004158774743843445837071618794177066314419772775067001636527216181668782102021082556364663810156031521246271284053655209037042001034834114910402258685606725130775941561546281812508184569233658081422802756130257196092304153467519814863522183033895731728474887673044968809635165537057041561559288827626425872483690096611848238475295888236586215468957990294146489196379914055972307620709674934839674962044113809844527776956886298696806357665125022190879578896706355406758478070302555455680822288758831286244376672286957461699009824282027685853840179408581270315614614322424314611567186083924391721179010635972483436662725199934251008180083351866064199798699869812825703607810556615726832099164774607178729705602456666322240573254824123743556884865657848212828241033398279854931622016802827254146619900400367707941152951778408968335146166147086311063754655212562750317934148463790842880005277482561100743593403634803520627665010035239068392914130594787257760009862198018922714557992869851179250319021617033281187298240594485407327140068065132895335419646340376281309531811137998025674129007204823330852471168732634915271365644420097018767483859206130061515083902843867551560687384384140139971277184860801894253388014244022414814250892536830681750018977477564681425921285478329961737464077052207310429736212063110619137847309725007458869991999433426590142996764381652788925601539411843390519491486290618469956175203706319904501663039882578093214291002830316083491629528894737602538723582992445548857758920836847604757965187960195381797071146950346423239301783791459778174930642649826156841586431422632644812018508992499667420789230862657854817720232398454901626081181327228881769664804054814015149608655672395708383268105329230666904622742522411229094535810380216825314916723019431837318356031923367081507826586979189407903525004931911903801558459134787207373839563560204848075844054648385654303829984659275853005646544400995970113691531960585620446089671334282963112337680705952584822733017038224034088595054697045306078047198940395429144045479479002693847771916815494196580638697105805590588385763234433898448436535484747098190583776377237177433038254963081483982389911646021074607035312351995933676192182782965179784889348081515536603497906525813225709413888283691498224967538449534543736948293308391978070209396670507523079796083281464589450681058890920610866474664394962929497612316032566909170110413525727067809708286680637274715497886282019520625093684567740524397991439594403392569067847871880702123645464653895180112462255320678272360888828103217849880475389597628018036510692778741132543109524772113989667456431436682312275943715296506717373544827906470880874784758821545387359262215313626853662466231630547201135670353505353707100293204070271743874699889728137266432993736600076381648099505446006026722841202181109756318652243212390819162874901366991139731204758881846648785842057328499003475088419805225854158279624617526498089345068640274490873159800333790833637459151759983306296899747442695847592691147750898158245492677877534429980277661943240481457006609412919016383232237148349694499670488567787724158368148705513734699274282499135277178075912587991279104849669342568918633316906875450723141134748702857602542946467784104939201583580426471334293479608026082973677462424783075767510020066180719549004837313216149654856750956552496761399490012632123168988411830447672211725003115718680886170613484362167305258659113517466538011528895567327526066376281255564893547258461546169753881650438430938617242497454959795282633352026109507152177666757277956864912755938924665498484789296266680737637744675130660194444047569461088278958094903152427359767634475772342517836606900862888545682869779593090227914008152971943555955159535853373363232571135766193681596984444319820342957087039996659948758883782721879196362531110850881754857747038484714961515061224550159785855488023103324577203276341809571243077854909937798484884264474147177741932866185495631322501255749438239853640600475145625294116134195786077398696753836074309042016222862578400011930829335928687987986967616864712857102902731318743889953864235674259527118808889286821824703529545493847257522521835737983301365756641077484950618194795512993602999107578300950830480859197725052053384527489681130570324242262028977459040518075665613033393251075220271003372619102820356872777066224881727046531267562172930070594813470858132568288114223204328256549397042825772247330112422294952346244283705684550060566104183071767352459053636561848128579581881213649732059522807324063025051028486937969212145135422029691894098016110163660927904191549016411986092934482693182388037965876705902370035106495606107301683629567445039140131448032297596580229167941717538878697216467590736710169853854632059549247547256516905573051850294313443966225300466038192595612714813090654559605054958546417523102668696250809644819519002914549314309026162051975607648005721272142534316358093469963778433037775169998971167932135234882996336109491940709271427616331109612228512903340820941838536884260293460444508566421106993389227659240971485523624779549230668427631008953235160387983105170847697655795103183707247160085214269698755609451155555296945434462486268378068962779871513280029364703269945389062994732941216813014564190817493797846403194016881379333830193365502004527342934191159367245188337302139258385213580447405175925864965589451722392548299013749721545842226240043388065445425129134270879246513429387912794531292746447582760286172819286748687091659519615168721384831505437230302141684612764946621937855549994172307271039667963501718405036901503509117896575109218139889336106779785008511792092747904156857275192211099425475106116620250800261318462275581108699321858965536930687049346870664926935311557905287046488560858367614097026622231447431993856923324429245590148253881508242017184930249844688048986700482649358985124061299587176834113310909928340043997101806976391548313279423473940992795488408737529513932520172391907151080483286834978676020739635038663246855536736326228141503060206305293802340698889255289474811867141294522623516335002976420445860242102671110581541991696693916931217509648673578099744417342766149965268482250157736603833185491756738471942556812315242887880603718199565188456671407513268969840881893403406484897234946586824417190776745988943208927211333381554576522469358506591537039241326307797087592683708296473943140630148649724940614922879202537846569355765659092701663012899291046937677010787972569102328729679545731613801620715219699823238998043703805668952019366016988667778778033893439803358695468378220430744103029395794764474931864251419869046990465227642805675829892620437364975938742963519494922459823659254066349332480602247671902764196075004243600419788405106282077452729379714765198270776312376099678014305513019290292023681657003016358822847154614095884812949474222441659910565402486624632731048168584657809835935983151673964206317105752492757862796126848920104245648256504216667290926183672933003040465965422261078022931389127392298107421120108567953513299436346928120295691157687928738775534118574166637804299031389515642592827302316228015654997521955554504221283561998532847537045316100378906750359020835632680141549362166483210117156579485515417780638608130563151020955136619057630065102190482228385675831394986728332661229490667206907517245235311777513713217476357688860614778419382232822635592174768828487333088739281400572753595713738560328461215180076190216560530498422015810695718840908260994263451237497451076743760597452580124906040273100420065337907535501879541295238046830618956347466143794952526897868337484431752231469660398746516508155175900948452680107539977696384753408920279804481854081365292412829099622204907343272905235691180144009997449360971996024460007019990169711521245158431644408712391365988445116766574494935976734249032629145438849947945448639852965826152512035199902899615411777909996762022397691360150899720110054207124282832095625056485863820501738573590437562377686033687839802353509622076789331920899559428337100015754886990427730657112059792173011394671096816508230724664430054380108574884336503203636743972976180171490542331738327882671821194854657259412555885076474329825360379343942102934777849470553252476461942823513727094145191465183065083009781597952552952074827523648967358565377388241558351063810358669168256137981844363898190069115430797857564733994647101066689668889142347772481953374841908485494692139459602366078258887639092752934514979341559271184461976183996945228045950010004105444384110825966233925744862180725099542358694498495910627510321090899407186885006634932500115325661202476669678591560545851122869969730477496271682031336499068158674484530453607620570457340564034510156458097118052490656410314461137652869626232908570190017267375638420032965704237314240924380061476066701577958429142802410605828402750621082732463547446750572016316546661001053324570862331111666046193795640152419148142240635381537245187121208175109615537516716882825393449055651556365806241740892560265896872820949869536727595717660511282781293375123855901982624826517076200050930809775944939330279763759867974573774161478653567954350772727320556411307360309680556949270452822880951859848893142315862090713971719550950074834683280921290925601568950083347180994678928598616015395139271295333937602096571491223761020424964111579921783091993042158134271203697072132163260773668980703095346983864332076123913094381031309847019759152347604101512846917087518796400648253586693662471879344011002907919401847039134238210283529904719220792181316981986174881012039259342944361543219081148143969037058001355375438628362786965511579852640591421414069864079777239956138689814845899566241493281599359802209048511488852284816589636790017484762796653442726542728539963357202695226942079371840330541438642338121185291574088241439316952277108567336212533342369299083517067971366528544088389169199557750794735130418992403570355515402335345125384758366788079105050145132647463478851991721345347670778974420369546494418366747244767055423752744479715615911128729035042501686045320126926405246818603486984700175493997573790401501099142832727951538254181426366185528318563719467712602725578884175313782749504631909369731647411660398316583859608667071192603790812424846648209706945910779057444734204139062461746288919993412850220499540288100739840979388565850890766765938091328577688586836849821423755091101986935862517887735849474442800563917780805996558520616814821037690091220131579766283068957730759694257384548627271289175766333333663261041930551041954524601873312420623200004604054870751449832856068749582508890495901875688323496353518846718152898572031927134309406278565649263558232742126125536963519044756555098412776770266506496271773840913518802691020318608447419582505671941450373947774006448616092579041457258900012294957481687960235216348113510717600678859741258393995709433476155428494713879633944359185975390395848092242914751690010172168053511659454466881039180077296166841075112658748083312691116285657289767876953731741369766788308584052566739444658433866754092106558955552255663016533215210576023491391406805100165113888647394271704398632342513040117522849833775269172524535991383008729748204099261847348570818607448177565514647840822262057951938175693337640919176308567586886240807346666705047771973442273853304154583616455937937454905731641472324172149550084419854507233673170716398201159124700885818845650322863996768051595144510374666632462837339489130749467140393303840420427425508499193354480805870051588349626646825316651129392511007800012959106272251955599070181233705706270557816787515540803609911094345933770683124795110630103361817455201596350223334792324129532462338310743959892197368966666727391160188614395812679134208659980159429011472690063347590612504499387478398782456006674261566452567893553148951529466408410063363756132472845708884962494546960321055368610798995078065368238344204043899814737925982692268808183187567145375185912014009018937962095755253348825207345390772254142991416192400138843620825510692786920525214604160995501742529476773254486866531623344375296925905796047605098697435596417188338695976623308812703380040177877435438560931658770471051674379284384036403542525194626593119189217498777462064315164298048811809283081450657755377714698203532171016682714176270509235881348306152667335221455044427247385235219119938728185827871577322090540549648724305282793798053049797903217150500236789173390771732530414073138032237910238648603937413308438495563171664665602800066677809095776630143173473706671941978353885068066514478781900607691909583683148900428184126906240239307485020738320647714703879897534245368192310662674354915947931039713259641798454856699423889207105293965638223702294552633583189673768551010442531483123524843327588907845085010111868243861992635710050652790549731499651942215030138334682332146623872816222167679203634718035645757578794201442868529392535307010172022598248888620570882189750160046490983314166892661641760506306061576156782457441619434582888972990593207219043340417611580238603496358956990056796839394606406189444999571965315403946886634301113696037280197929235889398134387513400823347835406086645033645694626472031483372664810902700287704202414311096038658019128493748679521121550452783782637007786633555025415791880660539687398445697636364856821930889593100302272478532870868344659901894151617725735205933332184537996577182053964094029838470746120722447287910498060712522484062933208030288318400722090441314623424321985844000151672560611493099236674335343665598003911195836874275624816187352051327747269279332921724346155448147015916613554124619416921672080657648624026471888079707942512946295400546853540262338982899524059420348257075285697461882935408884510933278202680203601700710850895739026398935365713558708447593777145397503080237843416625680375990517231448236605847313887383922838701102053899113788890812937150653014538237641442651843951006856483756102713075206177484543878250359371859070486075115001857150068018483307534919981659657966442298375050030817993063960401626955978936643917140448934830972746695777879177330769542486048035327089588633369906173405053776084728967884515054925459714382546301345823731235872865852460371047538009336272731649873142345472698353714049183714286213771399721308186585398202050080987095617856459761200228971678560526366383006306964242090278132214589535133381951356585927858677573869870144491035741825870124438860140233196134571491006944372841895260338293948726252985938765670804232098133738551930493523934870760944811776928432262254183300498140912743830416657840321609815644110842397067952929237875600077599361071508962036370336070706593262307240130911906271426743448275792240437466174850253417547455215430898946127665868782241485801146127571893451813835452758331070737078546627829066062124936501084856739891511835350483998217046945956754934865603648177687941350814187628432797666049411700392021490176691078227660260859773353263825598219838752976636600250366793878831071672122877578646726781287951198318659245279747606915160753128576362782799860918797500878594044613053239322092322801417222870985328853605071252134394936122700823022027349583605406197697565270229494310160807481714900678340232193302441433384102913075554654062983335316203914821378686379408990607793639552602266187966585802636834253605813169179204365751147114109069607308477641698543923326829216071399229951747166110434245009774928437622224717338512558020106588057840030959696416967094372090957955992277336147600409193738016904371775516698736989590737116435903039428757857645917169897423687445277425854889063521702233013722711974603742019856378099941835531932664994993015394212957529606011232636378062112303224839607862876657845696163687784173689041762428570846494062023804676155516863846571535196901638659375437594295786347592725428864879293458285038821363246390167463484187738163627165072430086715526228115988579467014470878826714714736820249985163617581036181822207683242011842472856813250877917549807873781280431577877123954209444628769108836673021675563406303664625349279588679210434195236367973799772806263486575699722451059201865180657848407054508749123852040188138561509958165248992213843883016295115515775279720302223948525750240596084584345507166044075066528427116971731992338244272436956966420934176957954843100266559111882869702523365800229399145026895389884955988181260386538781816362649893085838382227915827376320940715521630017734810849136952134745982256034768837912094142224639493834363615372815068585280307145323640631063426603183440843369215004141850421670508675185375420444635852079297519094915880119538962665460743828852435446778894954614146296900985250478273194875326449274684306848246001119591628522880873567152009505624072316958734108228935419565425712137199474416023368471344806560008253603550799918434524415458339155314558582447774063645393883831863327413948492228917158740521455090985219756341030346242178392709425794554301885791004339301019789092816760389556101871646512936474560135329877697991739117967378441061380836344176177641311598124993218086066132320627694406815606536522087318966641266179654734948263625088255089027167944747812723054760244441962987620038100995338604975638455922082124001004050749528169107639228182699944363109332044033647753515226415444181810472445980548648028965228775881620931028011122848779804751811561240380610815371031920573619576049719784765394390003155627229347863613049794029797321036298376490937566059850531059074736601042709899779902630614899971154039162947822564339797188911939736617453244050892481081994233097821720183303645188540637868115327376255014948637640963550760966162568960395742760653431932245950351834875745813414840817174749172952252669409559558924066493334339577831800393916199676749910940596468933395954922700004164186990956860538369716181998468200380948607315010275275651423343985338583870160598443180398313931733701905424091096377095175484209260877909470885399312302603540482030898365150623458872716556238262311125778291194202981697805134390588847270914527800879974701969329816569281096496005306566026528577992849592370950350022126194448925539525970258537372156580489965909667534840460644170907689619400577974127699182708097785106752305458736187664054827138936361857159377635075823420108119204990410204987624147572848110163054608295914806663199075537086572165472531241499398500011657726205168345950153772514205978772911457230164011505500674585388394983379208543602816372174975137679274981220552544259373554721093970663803395866685161011728378189774180857360818650223153942757476307941036305089096134578220518603899147042072111408329053328937791295170073689190445565873170987252243510165000780750896561546220633336221337783792414489868400511632657413699578673468063655560316693233843704682159676918519912033659085086890614082903216833777902214636314026446239343126951688475910093110872856963219520675531796305227905406737318237886041477398943282113590392985412595540574288857359120467817496192117011107550849946870022464597382171886646279589469513035871661772772866202246946313198926374004574807349928022880938948784594431885232658872915091408535347186076648135350618660157388265210096923765138878454707642035267723090682954296932577001009059226104496981303877067582892229881477355859352317690945434981393365577343813774522368404013075052217089196490763868369484450870050179740088528128741290146032892809875355611010775896599376396327385608045594833612698961127233886189943778060860016374674483349274152988682787006386690114091129688777118926305752151951145945937987051304281748723049500598109911078276593144627069246251123666345061551977406067839204689788975333536678522639706402630695799550552608086832031551238292123203744232759788441157615762224947469667020651651631405141816825506032334189875173888162724538012157558233234322251334792389425051947289072890350201944224633217453118756723506951385391258450190307663332604282214660615381374830363696537833400811093043081397003295397630776160666918605416875314861800242967032597483738743923305604798300948499270672212741876198621253552413012052326775298362962877775055541462782575386043424520722430557932293801745763511069110767500573629088574837544841109194578153685936028726333404535427802954764637361364447416089457726679901394167441036606456297699529412904670058148581186853702050954823312666148482152246712008394406738918598011052140266741893711523257450352751895653631656445418762089750407133088887829244062434118821893179143224056312491837319769887991723197828128716359013099650227328702770409597180500846094692697700968863920042784228196907882157925031966965154546365956234456380128841323923444903862303798510535362063443990538041140213124146056525697411056148924078389842298941757781778165996332795837875839197446798687154568591325305209255374777045777042310632897004730760871336968313859176640651563343454923785523624584550785662217267749169325387735364111886434363423286339985457529843925927987893015070044801644499411332411095038393864847749760274891772665861777463921380022167162969744867236317006664916246207780168723946153636346146591664028997897928286106908711706345697207992379565058988519173580864813535694444633820475402569554946509977360088760217256410579360139576981309425594401309135708070010589700312172884229767341315460124924975623177028888617745469405306869509265156318290252368152541892941281749360677189644420242579262161182332176834315896111343710532505641958352754087311169352504577965384895477002445374082586722202350753813038720706941616479282656040109192220810578109433808249581703860508149976454563949134974108549689684022524094552764916425955320823999617695198590489140180724871473818336907913472255880424279976785744524763384823141537672967518844335551713025349627112370988261014739762729328334448001765974162844436042642478059923077838101604914644033003942494145058765155526577933567175228481753032589328477377539065912931067389522740056920073286333059329717091804378618201767777843293641026693364342776467759908112768694989710897808289357937537560037374466308294325058849428479095896926232381794437758277019666250644043861823659425834473735250450564831792901580102900327280242877893545262877675044830461974131303199514767399386181576810826150891806933383742997896564201457687150671703258013849122155593918484435283847823546265307314117554284704244662452049509838377650699625515878503554638496936578490350406771962052269213280655864836020500027452711757728560701811939544752952079394828030647128705174933297888885967516491521515221476036256897540851714933950996716582631721557671166716697452599823169482320408594953721491219260820372286855758394946531853033755662860462057634022305617537405287582958072919853339269864378413252475143534194729746444572961442272155902758954620301320652165054410455307943967832475743214510672451856745094687870170381724777235394010335013843889643594357681565747822790915401119519697910115531260328502569554329828358959749503204101302052853490441169813739921752949125292762117678199092294283077819000083829716303994892434097039240191437453063085471409218738448879571650842467481492750330652178902431958856070237101144888823650473849366798669535510376662306470764926659577202927974415924864711815026748116271853635775960629208901090861681245797345561939118089023921609865632433538637604290115316878806964013126991538988818275335206847141740060530667811451134823926800704389925721364380602770345084441825705910954326877837592503317246188987778290304517659883184548539150928619472676355263660709308054344928965851298409134689369557458400238456791659674502912324267735191510607587306271676737932123696174852591872312857773545417634344082111862955766312375610574685315295976165008600255737765163171856436409541480452073135406025251863244217153183988402946643999402286285940571067834388708034753199085167615952392582356471819295871538258421619158583857176968999396537162173844989948615411140356904373841473386779064241498058408609189742777356548602603979377017251844688167785896617587062349546921029897571534998867687990712359303240440838308378700676335290635646662985825393517691175119321080805301148719118747420108541961826610583674659973993578519081822043468639862859914025515507383660362652141232821349350979065849039758476721915185456211200841792184351260489714422696085684272550118721841119524492790248281671694944232875949062799005707045013322735345472048918724004037649256442072186044216067631344890773916724094391420756970523485689042408693281293319949713713835841865437188573842365070640653669876299890604057046430322981963451168917315989723870293574910942078810222871297607664942054680798941822614002964690930306697674377639566171906334755317890549041783359980157690683994178843831381375068273067441039434765666132194253325196554621627695208051650589037634884821403203404174683075994571115362593736356717685653709254093914422239313317622309343749307901401532793702893472340183943018395214972554426505874014108806288037845650332060549196274490318219355651734946358224576233341344257075455776178025180545203035523037955695752375236320548151794444181296143506550641172443817609154831121753797751557512828156518774657732019343303618155072267472637988039626468019808211933869269207095477479714092661522168589532676725607563362684499626811080621323479551288329911724135627358317035612554040374255996705131371398923576724730877310585847580634361680860973274015612536155436240448784685575398359256167320382878912219476572871955842311242112561749699951114806414150903793323245865267550063731200692091679594695434275094698460346241093150232291184086768571000839091838563282853224904192410605297343291657997889008061949112243819553961101656967262639364890882606564159328427902038579225900487719944345408760145522312843111937629431479587914293048425905669556454019946540304823396628792806097703942033394769810114051317475434731446769480088667423950570951567030111532926664968551672265665639874600225951258447771118049538334743140279293332008273658438008916661998902249357593187912648895421531400942277225946550668944181641407317591716251231337847435001701144667908453896185349069332720816363193282702567368383552415556479683879652718941200847663026579822094899051010614445100924853546557645130016449801867630665600253111368997173511251012927903751382933135684327535531961263021501990952964398211826310764275509018794683273376508801753323783358312499670242340525572937521614150388983129085749620019325314626428778611273584527448257991388508792539306377092145503083075743764427920186321190065350593271160866649500614974226923006976612772670425492290368357203112316418706719283339279981590898615178721502946696422912457371107095903387999659835703082654568634632212549758800504422176719324013091949160850170659048307003469037324803169641279732620211594010497733064937595299739300098439522757516568247560076045777623942979717105658217360000561553959768855393120681641961197684520483095834559039637527199086774564709038932258454349075859619872829826238659131031315006824445284118437483820788151766210942586798055298060292346436910329066808902608740832239857760973430717315470095581899685110555278136389365797579091134700874155021975396658854994089955084073127111620859287283545912735393730472026123413666982501213038217747191257171312163704776250628600718985915884253477608193263826638438683874006880505090990071262513925518020830839745651067817197163333839987746913713589440449134675716740814759516892557665470792187280027955873169856098768996573323858212815042824288507962276832348974765554864967209585062628374004820958022886288813068547760932018082127882416739675130113043850807018688885414744705313835644595110044287861400870989764242728948984747516016280945695029378645465869439186721397658995986964120681305872665006187381890204150876441968770520886469696668547979761098382940156051277292718815963904532927425870476899688788561339618077576893862822396013469503701086705612667206090892484835336607636193991813441669024391096481052723621322694388698877383879327744341511025384936353216861403415418775626170153386699350547621572864682649564038199454787611666420663044983182836026705036621950183981584222753729753606890006586436999476674153545693794192810762035940790234370282720805144812403867846188927594481819610983231763778938088936812509775462044602707950482587275554188001264831618823789662424553160578760487532820472198510859112344769246770019964128679011101876229102144598291418616179379047974510873442886778527852468864252150900584717621623141733305768888723782660984027976088366223214084540492068704431456817316473563472186844341180413998775389120181943626914934897932165909536835870290592684428820184519613872932655379409304718807396646881919927803860999403784183359657787301174047331802699170702938880535551029085623715638866400483141845373849232668897055686642181850517288832083408111436304176391879309187716828457016811139650184333568865084893027502900287748481208594437089842534597544990523124841434962951232331387421198052477645142641606911748399382378229641435826893803300864827677509435948456919946512740850885018164169568847252101266374427596163923799288018651657000638659169636817604546895054257158618020948740950999345304771623572343435865755291110393433682268595334881620020747247326988772640921094326275641869654932745195192102537121075182804950523388050134139608729346829981678935797135570332687426896035513492470800878489059557556297680382095888479465032274572068520997203429015693730672564877193294046266322050276067059216743503754220607851286863510499483442768249827063399595656784010058756472832487663570010471224111997454610780984206443806096444604457700245394980286389665963726546217020184969085829170890479519503644638963714637706348868542330126988335484061873577820149179446582808082277367408334094829516455835895383042740697016962939790447925994348076826312316316553296412728266252141809806290636281333524958340441730591239726538922067625586816169640991619373275669200283347343948968928441627228595261989097434556453496018091947028479092121472950197863203563197404488778062590666336840836646877704490589063543393017454107074433235849726703972493862207288520847947864000022841623780201844873021615246581620335538139713980700225177807626715596251347653460711671703814010369366264869310680225166230108126330234299593416140808318503544530310424547051489837522756359601068719939275575172576903389982977417517402227790800082550450131277009347291030484570302399188318011909080054572409842303456405688692380457299395843494233857342756414861864543189980463759917918368454182305260282582993098463923393663901851408301532520744810344137963685374899895666024544013635986410021364376058628434524437894524684094251731886204831398514924802808639932990025258728467763828551263652746644357185068884722761348808552786673649993084019931962036853544574775819503969913021911926065136577281671090281986890721902650636862899646408102316938274316897724709378568296508222116829267475651483960442819631553547916277026725036317884199298059602530964144992823816210280943207231213284361132226304055751684292589493890743634761659347402657772807942699973473736871198250890011774476168245466986121311514619458240447767772366207732553853529251040186263900988038260394819528697441847383529376517305075409551007846091789069496746384869441891275047967788070100300892102796387369100064654244159796957974325769348283468461282748867502798951264629761989191840941481593426922310210354402446863972992212735376862062965726474755909716351524326181624021250060716043244485414344881204186064580096863727413854028153147373310487513803983268580534227811564465013464881062338645983692006254821441855808081780011144472709370869856565347456694303643650924631465245275732451759743774919265514401299955400535683444512101222561281050685653081858843389464543633467218126033740639960520311607624239694229492777394653304432707387294827236801761920028152551817813650902708622028352773485085562765536061230932438991002646179763316750341380757737003992839755021665858072208665099751092360514682171324112409026815418379211866095225447747382681182017110447587015833556560044346822262927887489669259841493529368167053632396853046760552399840322686267855100104595174272527298529730102559660020921527130090294987960852795597067775822994036874089405188385759946749707462858352934061511279142874446808442259840822260292140870435449609590598587590348909289394148378636988818079409087136464942844945350090555115993953491134745944474561530087666267592614689889533770268058216114312081775315323949690303614015465090730846232742062918851088569601585479345621621764009710213814568028201552927055916917732752862287395451077079429998924269863606830307106458666395770732264263239364351610897295328351332397699106546780739989725795069114418553959241694925836273455835918385283745275598719033757002856385246179152560164799861881281441699260878156714269006543399257615623425781571484949450424905067928793627452000389570540669715396215258436150328379759257787365969165466818592006865036725100140682794993578182946455151098486054076893850174909668309642783738973971144968422754190275761047938259760095678022587111387966668766412587649923808372061374650305002070771388902910856640515011607082067610777742544534585989743524664143141727990042112506525304149943425431635227847798029185404111327271364697744488691045813835506838187358725239770204693720042826414409221848823768998449180429399808571347368658873192495012618346600621889242286124792314601114798966976147531186873803746855351697336688490696865351799899953255781377202872760376784065596177445576132885925364721912319994631181992515887100964493332598888985361405374654877393674813365658737356895652130727761059845653631633076879891365048561790875872000708062851195830777819910088890311969826599062733426977185256714193131185806756220832441961630681420275844731674349133359823065445591970691394473938374045637402197956644665767158654842847355912930769356926692532084166389132288047198948864870555409746050789123343243765271263271973857420582712259949113963280096583129139096166977585545506796310906790058463316858489422783069519625381905191774615580752188748070176547546369463427463832199394027280853419858326401298896806730147132383318755834691704057463851638610158889770654108986435707327912544617689468242979072154568048071550519296415976981209383876854772275064676356979891309594071528978350679091980301432988013579927694718102719091629021416580520388192028152731545240334219884239326960219329753045735176761372686092845780526011397715925451713012479781534180073045744393495576138799291662800285403157694297626443248616903477390817526598923346880500289106596938974266101589669485355995106344764299527429668611586245414739617427330493503999605763522907560833784410395661722769813194657942251030791477233722126359298023355549890376210247629623171227174069962017491195987207479122624634543037488723649131125317444504340293387827923970274223475971005420958159358716011973974351679699681807519503279585828239386835041124067791422500295671907251123541578300343260928255634662337531989313372273536688808522164794925757795146165643637069634879389867450840772895040469386278657277306597893754712403804494539994621618622963948437056242674666192818465556499827130986074558594480958101895083632112858136169196501155822345712494784064174346335846714013683502870337456253752464846111591059700804405469976094346913820990767065674361091302000674877087446475573167563032243999444430334283326681798612031999801370129280095880780057156527767937554473062344086389969310815635529821478978027913497251997819827478380644686147669256066937998266098865325818019993196501025876251330330027435586366337682656514889960754962586733886300622219884216679034326899025780409393673426134294148182767462785994708256543260742462740826104469654209637629065356501712269500465772845542229497893131666095773517752863272257695114667074911565055156160411105136640696817258202608757188924384713114416708047667795312145789966500590203508121043587677685261030256328784235032376748552539148699926034267351355373123323568892934416865536423589282812564659898019158858963366347239252140768818727118152292033767808307675884216920365205274399210505860946493764133701927038716043377406910701075678335026437530560120538258030793472917419358439053232203726542159525482417234488942952376958054378884847112535725268132231779576452084735473199988199190735119419145144752636622010887122165401876429021142285587692454489155267749720122602130810351131831734566640199139554012431443297450732434173080958228685646558041069534371097438705050558732884716543047573312268230043203285514206896699845154681931026116506912324446149307885985649800408563349320238930199646716388125258453714954036300740030928695767031344290505664311529621079669560662655472629091197824919365308931159563628327720612068171208316784812396480724229658894301038436400001954071777889569410708187263751325833136928009136542160918935724999045682073957165204036639678966220985337717988918377506512323437316065183769740254316072642722813722374391371141895528848426786367218337965011841458257708258453448620455823199763355128871503314537166363142019549539576695850038663879668727810403783666514663823073329098287330500190057324138477539812109094343557001821296644762721328615575785038549927092457492405755651321367268261429408832784770241373124705430534380331431619006377484866954012402630378419966550824552356829459585988027572250836020496298006029501170425706867377392743138938334481551997130877814585161091311984762288502418392187495270231649745457465601006041377402410612295970295726809847703833067265216281575491594331328984336644461072093588515483985042196285928706437323144883864632714954672359477072282815491974947376367674275275368778899582157682968243681840412678622307544923904168981589863873945576748826563987654447976463638458526169401011893363591860971914278684701664394623438229203585543342044391518933106473716683559744717374100280934431211073283784228090366623530830636737736208688249793537410642837446502897117979829845905746378680653386569110396129132885224588036295508169959554803076394070635345705568343949066912133515724613858000615194079595125577120249323542093990759710831904315999335330320947246427346264070686411399889691659615097091295047794735746292991088435827069263397818821317804626854491443055546717426527355045706146052817285028125938715371264574917875289688332876145084248206956733160901554749647766589277205058767145656760881770743607300188022906490069283412018204583845717983908790903241085085550435288955030700969965729593996710520527860665003250835673991765564688859114641670903975500550250699621731995792706738984089284024568601471797485244332474310313663267926741393738824310285451986997557049776515817559548305098603095044887403446801057711876657332774769404268361103115391159479831147121711418279211701546061250615742389444075842027611135776901966879391560792649907346063381728678658718677992120968488435154002625783614542375060141520166572388917555444176687566442443182096993125338087058387048301060035254211769337226059846006401118230478171954085872713619712300634397135439293424316697594661313700732826169353558254608686016990408637279791037633120492861516854685216401979784869531448692350020292780261859251127836040522497740121248601278298126488689625744486937157510490734013664274919389583381639770489785630563654684598551723293314110322990260677390004909454288443012891452611687837903595822807106487391616235934388473706017516479661187423831315454871945475734019490655280013321610817494460990031622418554902305963645933224721970648878238700301180124619190248345068835226509773222608810556861284960677059453543656876649923377341165216504970251180817968182490644244335345113458715793109928914156654866250244174456740562852668068258506311788297526667074169425186068039845301576625586121387341246860322903135767449402572806617062463766536769165970522859037617904024688609518365909976606184617321184067482497942437970102198260088176185232876764886126058327359432170054726941259445395639135734637894472892697833104767740001116282412512661848159267496793698292526847241869839061709627882264012598422324061521172522158506284851609904868932361763516478876681929253108045643838257909809032056647823458444439172928694203259926774123896910206151353360043714553179801054461553776206222025881297549245478566466026445252851339827909816730128519811835446052931578713322904473846021312427408638957287704362041768668997678247320240261529664403289029291248049631882363279209528763426052705808717137449197054455523437502878262322666015995353726595855379013407120009959146311964759178711456602834693026833691406938686419744468247242776299748293923929833165003111016730057297655108985232797684327386872427592884416937908695173149486408533874551974763198935771254492241080266226409404138455993377935498134125979496849693399386950315203435688657006846040226218542211075668188299854097922375712806465110741166977936176212556974896338322045934146671181398275463085208885098652509593439830289557572561804759747150759802633512973004382646504669768849736399635168824546156935516194291537867241814277641790244650440698971745852761370504473749592516401867613281821545497095953067867455988164731271501061367271383951491496019095841017110700094708374935823514195706192249968762925320167351583253350228376467752802609877781611064213130610305602151444094456603525634785105664275587617875643762940873984711304199306111035156102647235449703604162759973535918567121108923129928596301441146062120271476039572186048665834654160233642364164454263788424149913373309677767317560688248805706007066152669066252840795928392163408074631320350091369592838825176144714536685982252814882967457794978557421349298146634295057404889039766455140316594512735205818660039312181902747117867009904944722565548415208846583847655363654459425382233232227114112573500518578835974132729263002327657722112230588373581172817469800334310649677185143540515617724762282266571145371644528531358299749830670239825600452361257395277861408051193625344251182691951550099133279428506073718667354001110507571433126417753332931665788172725101153891907600850468971541381268584378524980300689678105974940729799579633867355546386220478365423177057570714136264981652679980389784126121776709191455581842709967781557504616415314002087156847056785572123738097100544734863717714195528510720798592621603188763091838381366100913738733729430230835825063345558185841556762268950641124192715438183945460988316790863384077041579865701862915887941548885893662525570317993111666092630714058801661023979411030465969702530532201421910765669462052386484525899599453003369969824599168526407557034740269798334622669343971786340152426986297763328986180145723715924469012343301310608600759932956524216225292763149370810443733331791160026603202720955162831097465228570904641888729126824655271538494930474884937123566054637616609523265793475930238202090145005281294339345083118433985815133252658208265110978891899845518517898900429712556746537019952692323981212458768156925151309544205537598043777409001216366912078574619147068237860205029809316732325272030564929091331652447621673938902983130999759116619401811056751686997362977955327926583612360637829853166811513367531086300668914447378201937273257133985407788719112820164961842405286562893504721103774827637364379863927998269331023674641608889153429650188133804472706618559646745838842415786982786702883597305449093435122936615587411894076556401123057831197582183943261440367057698304001206896095966735093926382370296701162073262558653657757614078421739968861264404269902278469437457087655827668162555108869687029787566871374581996616274552088183703305332507863268023697922547763966211637182763012269725466294369991475084933355518770330491887964530722129462865576274713974585177118613998694953199264324727996934141767057613592350717768952640168753307019277733333268361423375302792969418801891457261268933548474002545352200175398115481500880830788658286199405761776997484474486240815553183140748412149270294817783789133539173726662106812489574245774133506997932707095525142442772563528117456139239158519198633201170444593637185636664735595577172867496345780487663460098150979973206534150935939672582572049941224436788516732754015627820212231541164031388701408823837685653791327724210734403570439581180275404906273879138337240314789826944637813897790461812079019098600935382560589621415371364494926819114016818664995544344871696342223576131486902824502914290484257527862935933962100087324098973971436871770474322354688421202544146703986531975074575734680735069954861733035689755681534332955580459060682692595855128517733163557703366342114407055113132940982314043600152484955517051744945612927369902069814074286568741956447406607031647040214071088680801493450572278117886153565130594700532133741440014772457297927826934705044119294569121999188632186484165750564634414439140307153173699664268808492150368222073247050623207002749150779545865606019331475805115141685878402040722245688069949666619988821648460935086946959015422216038491365889975997543967475552558896734843051971340528051253917278481575853745342698799968316240572466741280017210760309501801410914998472695618594841257634714464930610771978669573315458904996763877288053814327603504034277966197335320505093500474819376350116949392815268353546854693358608917586912852081406311444107544275095660442517650444579783175537332577044059046274809416929178631547126334904365078893308817548780656127455248817632156736368288990344682186354296518330420757845904338002350327922862188789843885078029824184696444298235435956326328524591263274960769133834979373134325722312351816057685450946812014414498635071094649890106000387681598078594952907773041550100547618963713111050337185925498727560759697212822104255354307085578321201721824353354296497724436858669991981036479270027670658712324381140014075928579443974213486117566162076420970070377451661597600860726366798780956727529269018347278078302842550356584007387128674290109703722728347727837473562698810866499754821874937081619604852957400888783577752607850319724007951848900475740241299822600534406036659319979287505554394586532393796100902780480897108940347032059004041226549400249820388421116302048610936008085251525467631566460253080870378686572004658837411386867419260870611377390307117958279776683778947273577581873138819595635850502571708970010678220434346502069341516244686355040414324329149635931960918675748387343960112156456075667619411166476581424080281800947606304433695588745557653966511048533621523256809220036304862820614309565064871794267643402555656620423989088442112380286772298829276190124704412643050832718384221321615167426517279440417820266918075317032572339984527233894572500983696555591819186295629510573298062836454261781967489009093790434024787461494556676960332830001704435047631401666971587067825582558262071574153250568770535586371904879299542448756562719214979254799628156962318353671580409498532668696172809558703235228891021681694705633497549710020094834040053737232981785649078146151866535751556709524341402330042778582445429433734621979135032204038924045476424762024781293089225651296387633268454782085888434081885055748717563073116291254111123010875742235757572154210913848235359408158105270877972387193222542105086314990610241464489622959514388426789697778522402303092051549490824640296643550097864777655889988359974291117981007362305076699182408447889626809739894480275969395902595606117834813963594694121677591802923380611354307420272207521496843685534473263425195302271454952266677962156126333462433834385271433082981770986399419530855539435830814377019454315207186137459078425516119347580803282689332762499708824915293306422170069319802289171772707378607965874556425646991925726871765851998555045069987366652844366897711055732366298069411534579501819429663617586300712276694836430786083714131373897028645753222565659403753011984855371233288220835362881182090871124230654188869507233487337982142184859492992206506947605206250623447686265650068860804491203247650571959209207731451424587413221248612790552308152222634081148904916063059861437047525346522444196405989742003993730519300221054593676191346827180517565883551664303778201818211212120039442260633087326964379520260909745538981074090115516769723667573362274551519019850660703638803836866507719673409052285743640992016781048224594844810138248237154178093730465695519601158211434324326155876658581307312085664895581895340117652705315740988073817537581254108768505026942288828446098989473137466934598279025221192888073767016853269845581410785560234474480153294916903966662324208786926465944101117450790842728576625754900064260507094084731115118599711025473963476736524080061966826985677655439683525022065572180358219448941260712877236860976313879088226044681805280175021610705878155414759440517800283115408381648063548391237028652468249563664937992310757559410516464527003051188836035174081254930337847065205449323901607851306476911644037691184187437555535411399417481765399272942826827021979548802956042560742775495737579765918277939967226984635004803708327217287158647472226280628287321098363559869140491090795695525728581938931531752959924589461259262262452892658692038556953938863840802762977988781007167695962109298111229895529709943849841063717925755502943616096928924557424818671754911128669902274196276820734846354078761995008586319507923567117274864383954745994532778072284637544336442152351869516853013059314267669662082357973410898074113483575032265527516738520138508452053969601114943049219255456988845741333601615160255051165193641899690078443655772648804369259660709956415070075554747884492968559529373491964841749571531133082366740317017048251220682751101755514974355038424519093969312839872193457460079926868989852325577774496613799893267015268223536793649288301389839313072315285648695263343041723182228310462047490667787078377319152308316170826366057493764135228795279397050592444041086237269340287292200354963491849087063186805980213256471593863577447833931986184312717782098242587067252516328929937454703995561916768863391576511640302744678825816672960521996332137219191317389413699930828331302194157390237207494826367714174237978827022033650002534992959516604857627341976162211879048721638620474801622541387875893329034020145500289770294559440161727004850576345830278055189140774380955051318459973097190952829673122222295518254289997868748506378005227459756895062475159794591461061766091706028046352277419489166000472603272011718173056764854927084095847383560176539300797378915030992111707900534574530778995843249002429541973055932790551920240757568147958758481174825735963382790408728062442413522792284768308883340869859519284403295518017091273137841770768206879408795286553361070551247600787871416705066786726054355751138466091569860412463663040530368417177799567781288222912792305285127843618078028872153797939067567014074898348498450848588316638814253051849606786569045676846778224091942763912577692191120658287714418276739608104134970824126698024113146630885774456523516942421218736132760794236571610364655555279266143098333837826748274056309483179213196956073664042592762716284776168090582296594663031257160790733568717829215357052987745450991967968008350527531464763854082863882082482757938539160511628063986643954403105963987430329665459173797866818252772782964936001347163147356536811505184621791865640303780944520058386328872486350580911879828021480155463154588012975505977311902253832062053697942365390344792211867291877698863607680234870056268143257126743473578635452198135087738992124979494242619101784505580096959019679173323322722346173049968578236578750068170678460790302992079273595061425607731570721258073017114655787124775376950578099475169927280234584253682265982938338850104550459833013261704088553634099512402659112162340744591506215815676392841259515320725046812870322281909143767931372094183098199922449991676766270417775755756415939089468841178043470282930292466699765140813184924073254269185267997803310400617755574071762423496896127335989284318840422109222576448633540597729525825094968964171132826987183605983831846412630661726631153343769081390181109543508797312301648183196404838320559338130866019077508582475415913668228261826132828063503198207901523574234411991166133475466765018137591107430854952005155655782160265606705320534801372581956170343138803072075408991357628756109482555556058542898855935287226164860290932639606105302216410006618827581025598786081945665431739616427712659165414889389510641228252666098311106378351958147676022638181732324877085717670161691516841529062642208488947192961932076576819996091639233751059959296580757671159471613066815087035349971898120681487613952425536708899211144053668463927906677025291802443799403526458119511109852155057303742736884635856623501392919603456772257636966900847560666030722806843807041178621964440351640993882904600767216289873584159002366318695526435990901316905402862495139146456291348368582874050823134123632404162000821907404837084988231354018210409527686853031618354099183120401906455901787841661890573304500221062442256791861829278349544690881873926028210618774161799649603829910025546542223363687548969627009829562282380161470532049507555818949680363986300830852228607100669106313532928137362197940604123518169804457442914939155594051011749520541508018160161506942088514875087846147101611932046911565197046994470236094995901448472165080531881468399030619029331236522648797533196166004328473384718118063458139653734992119828483513393961337395148504564559734419791301993336609072274051114228615922360029820200990364521539320026354409120785028499732160245833029341542369202039696356681372252815896832535761158722546442438247121747460717511688703520310258703451445439004246219507281251016094546230890523660047882830599538128821479485993432091972853008351691581391547505233239657869389517388736214141671028539087639768670470041202805995802407907619112005879848901625477458892525289324125500770531083288894009321105367369110514416900212806657361092103223186661505012330611681898672634020176381624523229500995451290417644673471915628273203390830736099272918584209730784169179298771654589108814331140892861661992731477115666160064275307381211619874888211290933341439456580522053603144444228039928042778512136583878085983593833808465242171221345295344694425598342425149153388985238466039430875834426127249646045122589206226046073038343147265122817076992483835943867172124681502352926314973017094545102683044488263503526779229760356836336428662445031198895771255312948589936194419074103529420471462388008604778366501732238265628154322816803884109394074569310141912064926562135590195557856277464795835933823498985838354380751989477056255921491966355425588832901041425326367779434722399951198655512907844620375586479825454391339481835414606302821226507842699040451329501548490346015992241287308537970480530221978895539461425466251552405974632882230522406157663126262599007388154426011932238004392129105502567024732342589225511804596565547699312981356300811629770143742493825436765383215248126641815478688646899453355138437416241883518528444057293820390361975063565985147132458027061709862237703251302450825020124823606532314902283064685147300662137148457996352541468208181688815761780931794784085638869655226535615250339443111387807701672826387970128652046268777912819616374320351976807544650258725908460789692869828482701010277605541347098165505154339622109026875810309187389299631619334402888506790466914159577361317022955538414059328955886525972103764121020540361023164136880434488985091166317244498923095097243785794526086262167101402072468545658117478325138406972208327880058854880041282190623418287646248410457141730465163858788638144247001420568033712039968811716809253868458068480167103946424059332582184043529162758945202311749143860489555987471427891401005577242829089915820898713384524035744905926266040161924482925440620862442025824573646203717095965903386676863618926640390071789659883444039268300276865104626626807163341034618556522132260472209326912706408474289528205713473202064155513757184005537464504696751920683241235684952594411241224469126921818622792305277908251311053258930618269863353182730640595288436675408418812752477876479443643503129788127802808329378198564678826615995665805892312608990907517367022661887611730655022875867970981799546075574040359681706353129367505495394819644665547482001792677320043136132021881464273791604889629211054327932186173697346913032150085720294587279595812449314891381427684710627110890156169812060358715715331130509956925128605753414708242601960522149948210935461200613332308050901665764762657709567553215791231633769539543001841276101081247472168498427711449498509421811594249228398372895616758122018737652597433683593074368916855801395173456876810346861844371150695077716870171330621684249897767686257802775050973810861201516290686934204147364954337829804748327490695727335117770753326281398760091533630857617412256440477628205751251309894979677632234204049725356212342205578995632859738097195831707093631004705052079185607191929529222765954504718472350596197046006485510046253479632751231749133044935232684242633130804349257158958468145534402674917230061385932321323169584940870736337717139186229225245375300377725044320459478692336120965243511946385186004061619936181794811291969541036986115349829811290853300735430014375277627052994870887935204395083533728904123114010979929776849365967691878045541742452707666020124029945064671088080356111482640999680250625408673368926187428342895247107586975533807734127160154183586652203317257188244992569632934739662597501227125917105302101423682210717167871351355004698250988699504735659580174517256123469468242010367704287002087862396860636330300476849183159897847183204064997320772508360051964921542548940214822419150082561775150721495104808109096412577496875263101090593795737755091981413587190498186119893487608788169896309846710259940506806443001939878871565681284226837290190903570477216308992488418901086272517345014472310232355821299102439765694266192206279524536108657143048651440690357262543210542731455056121082841089251589034967120821981922277362516482966419487347284102975473419185654797163491676212827453845035856902030017385983043310001178280289144777157228982744169220921759037073104855533965620606557506663598805048162502878712130101600361995562511422167035152240148019170627650962158076853242939169818541724061463902980982684279561334900497081845672040496937383565723310428628631286748462761148692811195477263193332721871136796082272036152121886762405094856882367649948732061214132577026004787024077315557363787325224426277461923143934727243568547440254347915213789378686315384227854407503410876583801852327168059577859260500350277063992657297639071171799423627358390162607187028073277823843576985676123591941143730243293915257488975383757852221689137913176800632552039074997797151917015048565230959666343025504007850014230756674882618841451972108192454138449536713884896627924412211097272359760563831237654422748056542276498922752582368385619271089458270786829279285252635088335344287738698370978912661119266842518116794829323097939286009130388370142247516637711631363378242476916574122372105481157341695545727753442393191358690430406142370289323636233772742455046720856557799304457144266940818053251657114403128836103390016494388767778990911400040591931307751010880151920635714020830206235194385124282561565673399725577645017165374133536250001457603976604024388811471816764073132670427463840374259393004237780775014467300266029041533472150394273234147967513817479888474100158488164709368924188127180097548495581653272259939076833730180283045355654977444109398950084949088070249235087715531636172577121251377538411801109984894303031502778636857241566945223981329853342927227970854023712447279990652310604370808762357737723594837690146507539920111175429642580313553220480757413565981309332262356201329815968955248774217721110277386857463065410654494194400714389240215261378115955635704086130345179879361085169662314207912217093607059127786199469972441361630737048886871009526490001442082828430369722864477289070158663530272196833100902309556607011740553236969316791034643812910020019442698932350032179972246851903472601878120837156638469135596823814064071554976486667558706000406065684256268515675353754132422617234938900001769156376794897873936342959045966859027421243338291523324611595299376223676897879542224419799956851235485216815351540308859006702240640184135552106211848431537209659922631013442997974189736687964522957734810330016791952168637692997475767959778753869120509461960826784633385310879298475569801214254314906993077014817795317081539992640289520933987006118690709396964395717550855622547213287121542286863297939382066698051587922349051397652096857707689941936025346612172235597630705229035947571792819610104369569820361065383421241846577147227301437642660772775275098710230888088131898834315816258730287075265051287163014764286042850294673340088130368614299556288351175850499509097889579427662117938033867529435750550918555857933551218783806752153774730879869515822203589797383909820641362920024950116871662687974581041403061096137783829901415542301407410324870674546001053328587303057266907803572913411065205731040534081948477098010744338773051363677254779163000150812408616902254990980395406247681293344502772515981415307904878609484521824869920878435903697505027207272540761242632486714035582213808992432525489011025403753782187867961002879625407858482616564607269503294260543032107021862378253825813291358837227622154198830364146356471141347308039844248762035706774260551188866261502829391157281099688448975369320434003409035409254079999173712508436825878163542291178251329334142985952143834990759755241220289120120091235670360107682441572028529594826473807004867095418839477495287244786913251653444339315183700521546136868136003468916748171173438226727278520364166522119190390791788404838317296184713573264097515185514150394448531918547931902680613337469718880116772099760404596654322369330972054331317505679615939904533352650073082433512283369397689249232712592131311215124648542032916131264100209027132568550908185619666855643927407048582784049241280138553469358585351852369698996867365477644127113890088461261436365737371762717703570098317861863605857018160009196186066085972406288709310147059492284475220567325355260367297521322786154015637323608432766327659634620047458765961619883446392184133993240891786198165615896143886334284639180175966904951464492458407400051193114990789498598794315675976850879722817945918190760652517550432564812108979988128946042267784036220703543896631626265227481151483373620608267977602414188127953905444093590813749128919091656846494343051583225124538956014048012298548622075215300242773734702253291370891336857880061163387665162993848008237792981025422124769913691718361192691113077257325633201476822441577307185338852518539750923904801837547310009753986660975280308122693919883897502757129820368547256390995601856894194410930488791044417246136673712221663291633877841802225507032455153945362528219649468638037913782365129975542268885578706607556184174029852532713504991621035707716606844970594140194625232412454537311871657087124635238661523103716733060714878226987248005362237333923438589328102397560649813283424207359805146167444557498235273089147008754059396958895938145084629327565839167829348323485811038281224774961613133657025443744328267850208241365171205650137297724843193650281869962334148273064854329715285939467498605740959501956447682261395386060812324810825537621248243426821632760198589532739734509832329044929037312582422994882908304090186961046591674232169243187179063844147537903973696703258602266545316682662101778879382539892163465858150562250945104752413857609345724498922520989947682247502916855663298543599058016436903573197086673025423444729762352346224163896652371446053401867907441143012229648536597357038427748542759504343631488931666380831219578504220977293524283817534774472593372501736979836747594606290256509644858887091218694798801240650589810279694190015514323078825777631316433296667416755115999012087486571699598074441079803421454312115566927370559398960280743576347924871480362490196745348394211885715911643744639028967418648370074898735171049979893427674209582818473994393204577389670559461061644271238109669196634421922756220972051307266558842374357418848795281524416219014751834102657086102619144121997588951309093053776860558604375472146699059330847977686044480629318876874859199023512225321713254693053723095378401193472976694177207268509250763718308860480654101948220334077532891544067133986180983329334356802474549402242339392750949777153314714776363279085239206554505847484513122739412605878803907808392800134156498202706480782539136475678269960339851686934224935230194655658003903567710902721208947761860463567802537754231069216644577801037400224133787183734060951922381760283502457368710188357511317159599915584094115726677025498721811991159351098027146305846993523665485512272938923629122036503827746174219673634757143276205761457393613228851147792412676028887764747486945655045118797847986832893978129148503233399491558666254057134729537235935000968309401838522177722703529459389782946177511131224276430371415595202054543306713284021864337932243527299731976394400150485747159167266714467568495764694693015398162610822363052693070076890124570092674535639857394948349881074723246933968865307108597228226599602183936927633950460700833534008343497620379762066498805288909740726430983569167467465594481213783463105483944216472172402446878969216642769409594415144130471527367589981626116454638488675502530735495976777469438152013642134153901862324133516335557059978217130908414336413559521047881330883717863250676896572574382707959102971418756323744465205811593863447010356829484513189393866490858962704187180349650003094254795833458115638611368046618165626331133230757719093669516303027711677946807099697328963647527191508746533886041177488376927310258191543672509484143403300926784828742211714309307724368188632227165650716609154474322583823239910870964426818316927883326542425403778666782512768464187463396273494883887236450558902321908183082874139425929007834526615754037564526946105376749491348842537439201132056423267283168171611770782928577802393182081307272164141226019410602858428780497411880082842993720287187520480463036307935483004468891438318563920141916554019277565894488172356627016995440086379883966452699999826641222544682235510761487096645692859940234551667828830638588459898742981920751661194595997716796039316929925310351695819177264566236371505603391336480733901706780018124005737784159391416386374456400873536455594858423606735032236478495172658595584066333088039375157140381304027085464425806842212902212882944320127741570718969801915245927604637588874025177748588571804009215078539371799134780693870693331443229547630826736188855634761371039911571458864166323943916619808405961756871031238559365142366215583519801560015444400806054317892816430609823412372717765527279829513906547314211498357965291024542576650350816510952709182877557216342450258970376769569769606631397629061586258176147387110954908523602405465692943793841096041690761355122722131260405088820212778599198348018012701812452573857153018478840949694440146919886783692834515026118796445306055843514938803080229451017785751962780767129049503081167600190029222506729737929484982129022771219119364933863703638630167932591599023028821091051277239803537746940418734395789501551601284946194723215694567585897611379503497415808553335591872024276384038089160836402573155664408596491223942360195271059931390190896112735703914645546490488429696877637443792482572568463078498085192266032011370607595188978862844281631505567715679257872260792663256833453793112233039178721195694609679102726035297759386041865402688601635399553118430398745258759144983718737936562636645681943816022796186564724640773917257850741344587911002685316376548423041529087562066155663693626358416172212501879061739402496833028612966749321752405609101660018501044057075049426241536187285559000814486545086861394668207004598416370391855175137099654888935049716861918109123189622396001138835008726279020771661340808240264861296957987731936737484966848540113435302402733720118874583790162626434504633491525821704191545318948965440231913240943756612027101461796999939135512558432263369410365166553301888154832097941203173277632601532434732222557813237267769541493038947208996971426014001897513751765007093734875921745949729170180355482811015850896860308311314606075608931811001143062773202156615666796240767230227677824703692437941653674469517962430702228577485027043301369009373933384968674877822662969747560410905266545676897771255527602858489936060304616574291841619920840708646424465790236894216501698531641237976201188843151608942778119645778509373761025094601486366821486186788356617784732989319277924839036970750622800581288943010077148805223308609770475986582696933064335842131115794323148497690478871035752175357359761285831517152825183816985685127246838251642028630120506109365541719443596502612910734923136791335026978838603515758047304652601247097920458618895696138259224543621393024982915280637791480487164947653103195330846906389530801173931822108603347249656712291180049573463570714602347354347891195301683730182132980451742524614932584755529885754080483732003720915911926391270075374434975436791552091130084674683166843209608662328724068673226540581038570088368300072802878409529409422218374524826408265732992388486149449630593891228529407242802354483636437350931218996831195794431429621341835324491609185513350298864404087704431670186811659845742340294630605331077398233959488847019240771502701130793203309843449303155715704041552636871573128494591214936983177261272708903753661478789275174686347038077692507409954562747096845891755288037797158441151950959232388820239581132304236853797886668681486808262754444921944025376609159641814836130332734876300994510283774991186236946485074583478269595018200108320372821229439761152147456355241551573344578933894446701351820745403746145478767505665701845562268991863322750631662836823641849591221871556020266462315948566122427794761943771928109072452675646213578078585180984311179361259315506424400671725778117045718929828576557508610746414525191169413406633260583849566151676513185594626712922470558344906207173946092992600700471084413079439281983369681153186503991284111654433065023141214228740069494450364567826383186807623351664403417263849702659189886668333949248128295218070051827101491888634064218048361865800061506971869676481524783569594632494203890478638188917085443554938614994335609739745263527554774576369973938636133035479529082603114482334205287658817019075390667327344680267509491390219518134144915054790508599052086584632667740718839570121477173275149977702385172869983665942959083516958642015293715323098525790041757933593617460334306498023286572629004267400630056163968880623461597641302031977047126348840340690546471886362040385273923302093176738152424625250814442804243270483222662888478291324391713934058368333481700785935224532156427715050085849858405363046438335011989082841235138489277259074875608751810989019802081243943435171106236708703244987803333938015939134903935009843741202777291725345843713163588291080517278492709152771972787614833376414903285539349791100930928947426550539978485309497396978494011612422620979108943970718509986229784180105865741074605997315294569652565943706497743229395211301741226661718539027528945602464569019858228905296755729727175596966105730987172163467928485507291695490346589532668479111961897777277690934618619535800464858227413341376031582974338759394158557841485881496930432638934874999663094490211230370124135438774294672644795995712334981650476980399568997546480242936482646279151823813126935322862723052666995477345740285113084280095274461861258673904490157579722610642655155660285079820699336031265996477651214296101046031731643897553801441063094259434127104646046560879840631027717468260572124465449847903346450873692437343867805066655340124210675798031661677166618982691620442852345061412820706875739582803143428362003808226509327567466593651594947081754222400665701907612488141115597905498948595718487345981735715186751923200310970545550232400168482164215988055718035853372524802693361482421371855539323331877716296664275410996371150767898358190588536144652854716763429755561706563584259504788769581324323187317294294889073811672357511618999732754815590731133828733742888682293236775886013857352026195821381844309056174702905834830440382193445024020199364740883859604215596792185747848461693979729951249665518440827877858492662781813151371509653405950979595215606179988316936829486184111257215983236705477171058454999567300040933518454248972430097743190897995353678255548827684589109842825858441322443245820797839570079840899147482124561024821583084048236173560425531060904617795412909140549352539853805907200166078040673455676493761351785272565986242683311771634058886893525845634699093898971467955212076491227612655626300122993887595427592874533773053638716256007594011027700073871787016830909682887686310044052282531548037444743025520981371615743232523137357631805651359087133528143824040016866795575581799688624870606304882378939608665759623066631995332853184193477629761301711313073848285434000617298223350609565847206903234069792661330122743248088753843950046337738229860378833280882288390863574315340068284227973362348656946700734249328951402829647096792349102024601695338150246334119987680250541594435709592166430459042563205428860732527332700114707095193194886078174925682573567909622194566819787778570136009277275889062103054092858752129953069409566084823817790858281368376872774812453017181382623620110521572894175844006949296023186342099879847236467093323335811554189490377897189081777744098465873988616500406707763368616557726439845958987230974589619729692418383243184746352869910562691831072336980972220306396061852878406103078978893314296442522261114228355306122744234473173895388078481727027546436869060178424475312409762842100591386160877814166413474203299589602024178961309360558593628859672891198955092091968841569714321946127608617448176941299561985443989056929990208548077549883320683214480739928409527837433914104890845079917889510816144534149447319719515845683686335576727531119832974888674949545620902564194579329317723139455752828807097484701728498463600417674303078971647586491879059091170548880357747526062013439378588394014960425222652909973207885745493546895107792990001658730001203568652027716157679517013142692863720847137366231164796154189217798919159567195706682732866543573928143895423874863137124831413177605638653185825467903858304036912340814843035436290729459799198352156544912474613111135806852976944129023139228270359999523757698951519927408885213260941077972649845877470604256114617816797198191000720474596201342883583879722246270765510904486221026647737689538123445694364722729737668013094041434017326650874182398067472273789676896480843807456488315814325240772570414670649912681806292655997034598777915055656607620480842799069452638350699295334827656599247518543148271752892014194070457455870384666219721087648573242208186152734488190792219381735156446708892505687059401188860051178776794882451821381065899262686168179440317591710597452054054326156991953743093472699795249490742034657569097749669548430515946862936761474349694699348375424826165013954220834775923664476072397815090915645264422529459680560291885039697189697489486788766801894662529898078879765658541755505603566400309850236379523335233065697936383451639214103217721753640621384106380885573111734683005590207095228400158587157572522594222584142512987918606983518031467353780130237975219167794229343569661623289089429256121134332477416347992944710806067546761659726631984281349873186659185654687392365176956303234849344739980512831118908626341841586353625151535488699683241292099169181492376620966440291778206798997910420821365963428399358245904778386107699223849641215686040134696659970871185740163876962692193104640798905425967546162917133276562907322408311698292465086066876161775603452792399840469517243028314152108729836389326145719583609783625799240460094249710761871737182209621141388963422725600137489796314192778560120269195949287268812902071236045800249447505815576809325061987474044435206778046044177473025700557421465580148471618123369811792805717416050764826719807958200550096972473067241243373714437896569301807864691232222462285934736388161831734254429880345380902148415772616512978411011437190380653094361675494048932748702160741019924175705413693833615596555148985050889183284317727632705264896955173429466125021127205036985831570289443033832391348229854329003997948798751648162301790790738889145423250372777364919413418474280415157518183987149018836858417773604001007292471254838654384415411972051839041328443003192612429732784502616220182786630252911668593281859972306679625044695866438774344753197421034786873064529934262258977831256163294649724242855060701579190110295295132669246963329280663653690060247139569503827012871404284156885334083210894231651484790625959760406685178020148160293072375059181930756734698891538127037607765936149064071321597030517409118433184742244145873687742983779484066843861003438631240749249775121893872733514270105827488186857029398439565184435554701328414633473226139022497371016944125371807759160478230982703772078169527696865814514330308271064728625394022302069638538875527531863993350557391108745424508056341970299681113777896558232125031343222941324480104141560808056112646305112862457685043626805147985685099008659072361961690528964627672812960095411324584104884291928209244780487180700934321775643149023893988959796594643926013960604405386714938991498788290349542385197471815670219203124758821200927047885036417219809480751809429147495643941614919543331285405343217351927321617554738368608156530066544448874436200185762995601484547677498152775645157019670843330764081595404587352248995223218957660579003071535785260301017549853216736952622364068365348420543550714013926989409739273319498023640947427215877858663882474157013497704269493573253238781411064658205202445607526103184131596069396845671319062988666588336376218781327137938236320446736312044613526641131024551355203446276349618699771431943607362796000060794123561710625988719305212507580892869863712541811740472725166076347101839747111608125423409769151795128351901915721256496358710538411943617916184606395618478490624356273582887289806279014341324662554686979071287024458855886573852039910751100613872030698300483568232755523724370884687500792869639228921940984986686131001734328586453394545446129106307317973668559419189326646387193304325434948348817310977638284757878737368573700343486171832258982555439698695995410853774960220030129976364342456280121331348052905339640495011561049636414078163910318719276510851108063665606646901803390439343614125303657509460750466977797777957997688782852194844386530007854768863680650758384043060467824107651927507612947543497566287313727758674991969941423110839599441204636420097594012070418700873656452622567713325311057429542488136301842888505107195435821413752255764373181984809043964723342599585872725121158457639322114361339148992998783822832036800531016043417297439479190198102610217208520001652572040219589238688696447976600643235150489647579202544608280788796952413933840250342486876061700893318804296814559605953263083978960376082436367741630330222196467075246390440751045915311469974259933688143291679047925750025592047999469023572186999417581876097502837200863965443128848631797260010752877878727715328725074454953875159247755685513457687276852776315857365563271377424745354819801750413035159822252226103695998243323431740742567926969413776660182867404917220749063705376864848408903933606342878579031569094945301328275306019018972579950237265938403243727491153773272648399594479858774625596921420274081688064816115234502209418173080917686434863621838135233309022350179789367704724564247230080170331262589675039846303401890231247247207132708034680607333202042906436899689077572402878962344587102958614700604002521753718354797256675341676922397079455575266241949614280042468084675286121766494553234725432461615932906963486409626997033022179478366451678707567534058481404874692893728919416056306752354521708080989293058833967496142464003915053789001143761329029265574709346468846963998797953356380463680031823601964576611948499231899117511267390486019472184517887545111911620935116177398489136358206633169332116906588135858444884153596280038828730947446494237231853130742221578933287448016013883863368159659100209329214341066943876687219071447350073779872863869791645029654790759138385768346591466286842404796550786454033186292722197412896798853418744778287510834103329580933863635382602638032025012660168589521551135837440996806473215580494900444947106907048706770997343796278344764524993216091284041602189443030282527564804153856369708965115714166437272844587788175704939262959612316169234367126864379261702635643229763848293505196478514490382580728526170544445268496469844381296090254283897779055598931575802901213090814190644355260861412803868603700499084889057187331668577780814187267106164765758277300334277380536420565991721831369077282689431925999775352217398121779319187003128834443738201821141504554652395412475371677913354324492046642722527342180723608614690340216705899969458982740337770157785385419110449503349935323158132034413790458740352486187406126111164741117284230452048902760408447191650995856819852715640008021789353686531659518421930782477171834221905231664250454148472544318177651784949891304047188805507564642193647944448702748270879569473684807353249179262944027785619383752301378352678740361064923424182903753775117751457564284412278097145607495245819886845879937802168365484402116311434256245694766523544684534458218252314633743115394288184602780537596107929878273666721255566708205712477474374697596481613853854441928660968365368801333230894807051827458201825667909355907920056657432703659116448657053472680804489112497690631240699755674344916878444126759829734384522739956658628169771812636516525793139941762160004697398719865126020645761710696463463909929535359561342175706994410412357674893124579486552789800878404057216807616356272213849486995804349049873373078123544203701319134754803448026784985117466233103809841756772538526692629932176772283267660210386860202643289238116413759110050314851557877433742829011345849433504683573557829792775507155455439795759991623209837173839421740081928981937385411315971643236050759546618041273189617790662967596755155938688078408912943140772921609762786669221364473275227007017708168948554480436561287211135010280674568356643232878299165703301471731446018376709461900466708586845500472224658984667554009864769602894654958930732511845242250805746526669677369715294703947115873687497255358528055702393665180692361030466116394657592748009830101107226143635408413232513523756117627769389937851559630730258849112900647198357469327900958347179316561926215637523495813607336620707143905773393422714361594036226187857624233628359296350045213826066494070441131658311296506452614767958267604181841191950348144064724217191530069291512437730438933216371959464886678276165049412699806203070125021367739077937296332590121396332121665205775293648676150620085947413439898963248112158603132774641358277605861265083101468247449588517913142944847913542828865058054873292474165354540600670650833670082263636294239314104211821388614399435219168214268795103100082273784979783619063278516622968395151070019860724892790599911179201472739054215759171395144999803363969428634127634648368132624124713374792041662313952802759971975501546610331802457327850194002196170558949541574657835354646168326157449356089015989365630578438178711431719535394701572452865143499659400614104469566388038023986836367796576015048186271148436687679175664031866756633852539770350044395113067912040867031864288059687465016745532869775227209656069752344720589724291258046462752488390809560330614356576056841297947242791277509941548290453188715222682277978129185988725620305123890056099970729105421918341557112117613739605202579594515412799086431431530425904912700563831609123095968299472812424765960677827488629592143368543729829048951455777451273586606114045240728736155639207727424552117862826944141091664072697987808647799341068421564903064953202475526095334734440166646088768622773571962113174408095701870989215408371129815975318546882527925001572823571795790712959869869054074770407635226081881858733411271752122178717697855148587181413548789252617820114144172651828525686891485499551957878897388592928694266969840392604302580400604683697197400036342291118411375637447217514004545895844041077518219119737159124739449170203092568355136070368046010171155875198809891242881488945590622889108492737650463932331815949577616277615759164280754171522529530403408909981209083928020988925230383695303376133819053212773916127138796464765162748293030900616863499550233707692382217827367380028798645669377032720163952564224072555972620972152552239217728983396445844397019796227776121003569862668031731321051759666170845730343806219800382875709157390001661902091896683855828149244140198946390791820617128325747447284945558706170518339196128131642481063232415183192513891213832866148888450235145957629647707388003069397919418658863315675918399136217040369760100893444659680233656445220988831732803961910885493869161420748505689063334879165290764030199871696187511909152351886935263198216780918865837134680766559501048471954819899174902226808096313898601718845918439319743445725139852153153818765029292824124083924756083142912496300108833372685551968095258834046180113133300200607791173145119829745274041708625046364776233155067043116218544079339633348983351215170293912666678942632405431274257818387098566292516823967951676894292549175935959601523491742289817590202659583044427603487596075951447837371079262488197266939466298461718594301259773894375596716849874283303015139851627348977774449805444344301286689231203875339937079777796330494446176213778928629621972943731317418658989578602456310841107870218529677778098826401173965842012689662816572540345349416437749540894599242429192322975887719532931695686125541904176712526095811059535714643909967082128990420051134029166770403189956934844608776276954224026688849713585574044746141749502444808087378317535726047968894379012593829855772841170551993218872007283219688483970953580596061743237856269813283034657085110875994537992092866579607308834969230644393357620774111605054401918763107834568325657133503228898108553143793790469200194981853606624425894306848442945063180862112052416677318177044489121263768755726690034170450004691685257455332648349009678490225760251844854744878115691485441145429689940694747938574322015508948352655678008104009510998373235332593541848338803355206124140390563270892769322271580187462356865779382395427573553290332590182882281020452534284425233088240696820078379475872269820523749384901671544529056264701558999787311735445491216940658661264019020797451538330272114012659804594785948163090554652807808906484530682334352390513262612170809317973513654588336604492335692196514738152461896450172740492552280870061463089117109588369098817430980505659350834905278360955042306514422524073022273384698594287784448994112785995476136688437369067362376044898800894242362331512552344853434452019220147875549318404297761110695981032800621090650914336786722107495258804483953303207065780967483904545639579866311928139472363803552518559196773173263598790723231480886852362721593563784935032810443015230215982643450636095856276458756245624019782747797765299905386847135954170643289647180261347536437499622567938185391670269685820128504553649303263658053745264073334435129011669167237689386998818373185718493108747045495756686443886278993200845417319658264136087764918680923700252004695437750680166030331172845656243896289761693375219032510047330812280314487552838450533882509710930887636865799178535613793746920664181158657972469737678732422795909402244515108916502466476833807396768883621205763563251767551393674971967647329645699811378331711036566249593900283434289593316021971022475106301102462761418611922869121317515143509472663418124205555902966361656515476951866761219839736101364404215786805029290840565213316094982192484613486594273528210281712931005821823272493678464731910347747545897607247071140493999759568279062864442160492337618075657410107994531476734366454294890875239203051081805187875042475933944424548708467303464726357573081641316236257943661510463854256629970985880471590169364820162819796426296661569621733272931873742156508104618083065187681896866577534452270882234286323151977440633113854374984688277304044802948097051463790092652910339092931235723555612970913776204095119849473144320752951478684566253522714779881008495080013400083830107970818844760945646747718849795150910528040242875696558950373042765800000600663269492252191354485307428253113888998601738005777147693301932340772739233264573129914017908575869031245164620341561557790479445813920949366106475924195210139242758497747586781207118355789018136591516641598223976964110746393651847999521126727745277796668013203499217517195024644134675718622553506683121967166616085786270403168960159899428383401689793396936724337073525763348855392448652441501772968547163916132270802735860787458927450698882495744261720558589339575485572303894776250993959562832841956112178257465684771443601520350605699902914760894194864032644786586904593447022810563958950856335477926276516943276046633136007845248522810972753502586141222432329476710327171402937510457147518213245060775970292470828992133773014373194423674252136694251291085662000688755949017582002451468922961767026359347771731806816151535223524917031421368561531938811258624383433458202273892013472871918962252874638324440922620959970582428573271671025570525175176300585139947343510111934062244266883642917611052474081212615614232458857563913836355458917892692242216775537995478518098840315322586574756850993403946462723826340061286631903603151689289592860053433204880211244585589859420921364851693899994863049613691550243225938379844281674568031018972890762513886350030332179300618744742656733076232376657345510286433169135509043056328370867620081608376625239584668247299538042707712374032674670389710234776256873183119957848448404143702418229408818061058335810609929771912208052163952718781264274080996467913612190572861423536674835526964840230337282638028193537217980600198735566326562646436156822950883553819846992027239415334694020077872943074963524728746254782250236018041091520962432066426320208716827915762048364543331824564900020920045095924476246733437988605790724392741077307750708216194077230722280863216333529683482016928424991074262420451031321763277148794402983401928690533178928053849815792064110599160648978743768872810997633603833517531631860752482237510970769958327133195897030083892532724026002085805765977207233292652570620776640011467850096654082164254073414661192394725834678550020099157015597664603169456401579228271341234937257760867087192624435897071543580524173142858261093759432664182871471520903237838092856530242957493797867601699546146235335684643516943392569923971758999791854893570220415103116370430202332357283038118495983324287781878286438669826531695221615027414612048218122859128495598215656258276573708184314164044118098587315192462106985655164701682502655596444053224649311405532513729643546044008843384591018155814171587223924686751328956219644577718557528915437886236141789441709207258799922185775190100213707453401434677905538934611692096392257479952338332565428503114125679057785525502700470205130106644097539021152200862080037256321248783111351227704805711342224843145184507348522299476933164317594851872373021783917834339971617715913286746178589781634421536485072281067181342428633660281553891178795963419140210310192943691892698678462968760986826709764301644410844051913847170602888853726626492588487159406711463076413282756897877743301287256397534331925381645389990299532632825780622656977887728941057047535116544695946106960693504714881149550103453490468196764650877253746071524616255192705013950802816812507249078300097154324600445393914864681337215894841952368578633174433938480389453607456947821119429938052747217041895529220756703861951048053253888346038397009120992994835467888675370164510503374817979412167488322918290797477724359268401088078575662643288077559671384283164188769555861559003791981704429179226063328629286902251672473592479345472560993072673584507930738576016163023862040588408574841296239985302477928998609384410869893652660993009421669361456895756478891019458983985013344567195199121161519146570366165197629238550458687131865049291551989973050253342769477497768694994301843828294396369082087956433646611222737019827131872620176639052211107075875502189275092950547508513066607043302798064261798641266994385054166612629903320340357513165517214782421815238271255042215523210186834327368763859361010709106845845218216085961637128101542939023022459825147036151691340619379091954896575864064429195081307071482110196354378122390599202499827830705650491746729082494614149068493439576082831766930384813442705022859395136561113382523201080733618806034040861726595755732950571874512601174792658812228140690463097639446189607459446865586896133659899537827587529349821087120737125494937356214423142189863964151718469072358318789597072878705649510699481185941067348573011636750969445939147491015890331447079843384146035005065249710153268587407850128004694486619685855686055551263475945871298561594565322812258012218587034645619693658846929518907600264492957552156532551256944611683213987611206224946370975212229685680468882914978791904384250112528024384187413634335517375833917677283035859298096759196594162063086375593353334367098521702180451692270455601623323695297856121114135940429398544508786420713653717126455859668615811464788349694401622538058965528238160555255186856395500476382524848287089791772294843143055660721703830949631923620955988541715700551072931931731065303920504527464227005705242026332697281291400777342660355330822740826702027473968346589944312311127870345431661496182260946572201525471233867988088881294766444410606708849576637567155715845850601780853592293653032081432913970333393745594984415438873168411598483248763018099666579908368429380087850391622211763086423002999913566893910546362157570004722898175479765935290989232969429846429985574612964968332910701998384794610475098799204418650241248197892079263947995286399693747976515480628661173139258047060653534644112109063785473183198273849737585914289806021496538914358718721580513939775720498915878919574294491424833398971547751845021946532399573261146567757010236335859356717759541458378177820524442298608520896802623321131050607639492023921308229367922626070784590487095328294736844647902488070539486127236039383444683941736171388167536796453899086452879742595751078310628594579734458547321798153948441149173653438625826038332792603121039279941150951514756262831671854938348453942220092954225467011559494280292380279080453817936398101162836877223493790963305574193404354987920509474501547015027146727143200836264356735147484818977538677097209140388799987190853263499593477193752268798924068651946377389767254874993719698327186133590352204454576973007237281003577187209064413798037581614590259052416319944383813769193120424401595862469978267969359675763115894709726208956246799324292256845545745630599143147053223148128938134338643042874782604105593189553067586247226101188921349165086078425825336099013123498866494582696545082397253123938221663939614451141211273181766969011512735506890994047226119212127145845359294765309956115251836261110028387745026691845321544637284390149613975170659485726528388525133208145572027016037685477857580849721141674257407496221798145339971956416728467498121028179176193984149361199426304116273291031892015566291321400215274320833075726839564223165814092767131752361018774711924868720837822950806249810003048008832330366033221372586781087415301595888594018205587956389623618098603954615365797098353470703577524608842177518309559979054330067819620927266168451135248541571776333358878489026418441753353570874135924590233274351747005147564318877418179726416690132458204589568285624555042043493811561443189741565636627272243762175357865551623509009508937398138046866007986450622295334195242249051535694182158357148883904121302829526731395764283405477731832238491264501599088256634493997619510342144778743060910546644166701642277078379186683494334193722439409694885487039215611255723436499839415117240499603973328413872090460517038412720090138229031616255909837489890762980489470807920813773604098801211090665442596781501061232333015546114380813166763194913711529626429207769535588380736536603030000035472296187057830381295499517051593387500492706023586243598287648319235498361649973965341507931031601293673208744978764821102032306948921999392537238522621187018618549388684198757801583888629809772745265134946132588186544161265332216388132779097771351751122702144964862683137326545592708794164626632476472592620392578876172010923801330498355179402650982212455612591023717932305961278105987764118593400352761445468039007114964066006241823699050848881320438522295053110296087935247087094831089170165585630716705337295562378699454258735886374392860801554683679836581182437273484214151381407523763493579078173621382457361181084190685864370733203242465854615325716770449970204408981616461872835072174669284530288005609450995793806384690804691321042146309103807640190281369767815142955802173975091414259606690492819461764703108910676668082265403651920814055540289681735389782835007087013365305203233278522806706190681961505540870900948864033323650888751172238683917836964185467108704786569825626951335710912203527045228546623207001783516287676101952123899949952194213089299121954427858166285683068146013354258395571292934226182598269791291981125086530892849974407723705552593771817106317264904321589140777109551028278510331050626414302415081451530023267543874986347362213964837427759003585343755756200142648375773044779988332395599798075970166345680390684230599268660203047595214962869936855643599525485154942379239557772596821031243874368885264668673232892591449651858385270915592587019463891806936838012923897727574551014881248968439417696073181734713208870730913246482542231457387225347076338310932802092779922882487487857756108382389755578469042465119350037050430059180461556337411101519788516731012040364049398599767996119476562405947215310967867867059418126151001777176240379066633758231323445082138687253591570257776971222930801345419992662219044584782107105681233691240093589508707033096430961303749253231160468179655780553933078477467449816744056119913720345942615837961816164681124017526268617430722533544262249331369346734564874322002315287658996363272877316855908830789991901012850160055056170131611489991087649045321034048583061833694928137499565772949839116711791835459339849253207650160530444367920849807874607595529458751414220435052843506690438906582942077486224343227593299934406980873143720385630911266726814782816942577049873875847923267032630610109905931433322421341851003689815912301342453626496847736211949534735052842420370219828327754564690573603131268861089448530790094706598756667284815755238635454793631703172462023212648216731992197261656306155122513141866866784010767870605757791983465365412393861669433666566860748983453235604312242641271443033307432350417717622960641403549622468293951273754331282000315473138502869087261368777097937455959362895249600498752900296561853961279100779017762751747175193097310942473225549351018585569842945775427816796087925383572078441180578716374107221886600154288758278729204092890329733429409681522208073254279437848254606331863747943998158036263324617353434833948478004422990863161992776719712858986965279208266713440329277651611063495748376185816401832518619357976680725328749718107686301815784103844762323254543578655169482304638524584222936503220872827597964038828213889290642786541049939894707588877875183602389935665589548849841523877022255946302597648687820844783008487086455823692375370296110534269101373514047733041675434142363904777863642320926063406004683226807783386494505004070608711866095524350063581278609908888033406172287417691887457008318283477720379749428714299312938314990346302530828213903132608653124009207680131837400764884876202650737392055162701117781981013833642382272385647082933587332654955862354345798579133689539323031191206501053855329925429183055438526191735933828964910826807696005939522943845105090109630672470292867884216299718738855903787668155480732273788817988487728246723717755979883323746243293449085719372467898407057820121156990098449397745643474185460326932521016683875096415512450689818746689787537613571534052115544138389956917728692308147260786315419105256312410474585304724829416002832996737076753755260560784825346591807590032745769091913418132510324625278762682418923094072619361549191847397486242759677439018305676523847490111513550504237531110143715458792698016968204893539841481882725379674617683086748958393884041465329241721266105188125152217076796059150876952597718098086010490389173748433881368555646338233442186283582940264753191679691179734860786128266167187289857072524864584582248545630376608550429387949673901534753556089060894566229391977070995341577378142743124573395507262095852545589549408439676595652430156137157153661049863747930090531722649529401397511392877067271130798182807442313155816358527700906142224988045567230128170561255734684756629913628518759070948941169895288280714707385566893442503090697345697336646695299527272265106259605845270912651107811423788034402246391024008066452511183698721415616907355100703815789044744030384371094749801462686360424211067609329945474892552426716943648244658975924070234744123744270628496934408889494300108050962403322369305944346389488756900842791228531132375798068158425224709296697319163267166160184454387002411507790960479016525520538646186892068685341050428771952005412931023088923704452719454799733485126937186565972505008502967911547994700521672962874026718834229147242280482763466466407881443995288937323823231592510784115581538599080923575040276929102121128273496981009571919606757265837570250388829236492058689438330525519633138119680915340071696767067563335999175310960740514739903942993892575212011612172902619789327695770674238269051882877162089137317458449728469292826920783493542789170465881209308772749145712782850296176736701709740384102829629438965250183796244110531196418014212058418266395986206461586889455923301804009902855764756403155749167321836782043284329488295325488511131717820582791173957849091122933359514508626807133271916893061469366217590337368689582416748832197233546320473918178027254984569566075186620031861566350703963514967060760621854770908475006174024641907633620521064852324614640424623378354837133413586827048369887985586073153620381078212426010639254959954613805917821653380985454472050662638659429309173972943083183873770300843737893512962332192201593266741411143207064582538429493183765222559597375986169859882438263647296624759881165414804006417137993517293002176856466027149487599954547869322957015474827524061985709979765720736592119456101255420522760736319121038443998286906793797402333612344278008456004590159802005966458528604600602350164710040591052103634079596321213827150197313862494312338404274835579584949465812863114726367211696768165047331201804021974503169040177652765138586098182984609624893348178928885136589809491729269096275942605961223600752996461632381107645020594073510149976663307341423527481033584629667080478932473582110833316877515457747765903809166002677797869664037948882555356413746811103694349283352422086173520320591517990419204814254378335005146815693966449528261712510766054653849227200760026127194277000853845743849620054736428294156782813306658321617289130912754749957435866780592193258450061005313610951857858976383915803141112739374882705437074785861239451221791390166618880555777525497767869860925080303485243564330865307207521947342488086815403539183891419118869617633533270076969387070008414769482417936772976124772748060071943379742245699941170195906273465596371572187755564656697144087043196240301369948649873713953185729440895794219202159220457000379442238191006847285181721153813525532321299683722165867980920864035684596492500900357393954979169712108212043065677491184704539040380979641500326161868797688532643610094666453409583454808774663668078692190812365423334497330736114969265412784224418337590346417698176269811159303058842933574617076126570651765496560054088957338556089132072249583646685912213419710871439244623741023611501638247914387385854285598693544843836997494294132880759531214229095417843732122556412338515910674213926725286445117691905894829565728326474186040202191727207063956789829165332782533540352227870493436795160870457757031363991905270370097905817046392942873084386170152748606156962979954524705640734887182649311934524867817114602611591392934378346021497959182283640764826571674612855225243045120936311538944849437179445060028688609023738492520380736023694360231541356833262847028375405168855520761603243498176423859501724229620313806319882692115658602546905153181728717579195790362094284465203130152983746175346154158258481832405153677304028030253713720710845497338861508872674100545047692424894128525828009328543868753115669887886367193353987438327487403181432120501813639555901022917222142157898157014933370679236542467674115397330309628688643804925418616407599342438950792878291911914334306262245533279382258029558239692043869909328934103129068739089802150183559669655879345778357394410008509716160558444488631911599541279727278890043901428585500964446619836286559640190755553836033624700385778533267568505822524264021993650633111095206908096377560357316791984743824968773574878607651373912498167623847588497552218111976808945128167864413682418953045503138561461273525414229103610277483438037477012429731075465435375540434727147792453474975452703113402669043830865474563403274905299081381910911091986603037885553080720272336753677433477969806662681001751690687446234351817949300557495186709322450428031554484697096818616905442331866356859397938045517431971198346278369357406905568013498040761166339045801828127176013678794680974220226941499864395588512536995963177219507389103024984006430941590557756406730492588842333360809013623663752160533796514691953306014985144076971352678765354641597464446325549325138459779596683031620102378437444397419147574166779069296284407437988588486876587651993461139497126765481910756452272278784263267378646277175144343151357083482073743924871571659881691137662486955421641979323023141029387520128112227080501573700098102758629921430023830868811053417584965753497572439837293991829153269494499963839653000890328139949978956134569027835599794027085445460629181187467591460699113083468634214425159219971528325054751584484325709821767906035692042188871654980368462541617816186283671822395523560242624728594978930118872989222312886075159980561036774950986750067264338881157674957193364253442965436091163564523821084941139934156340564561181949820208427616958116166781799169502629349703521018588984938657093885652522995325281052197387897165777794958880682874055281853812756803665561588415280659135092315833621161345410391544937021996196668729705029452271231737945359836462578626517410052047770090102971479598288216234010151625029383514625550621751122911455859757793523964165856553907407496861843698486981033918767032073490431379099758823205303469864998496381933645044271622194753446797163979098873044555206810611121309273641377709725929754070807033812386070341520518613861957801501842651674311837850350358337970587714608777980718962186653132691276364498775639042358266077330392858219516163401612578906061022008726908489255452273035934107328337745284361902950351270533816403295294473373040801932460518127441158230636096614058098267236713884475913203858725645572394486631659491110168796356499402342262282902091485938000148095337454141606670484210434508299485524679250930475119345438544809588371571760016023283253036704715665453226270607867720445089998449899086290051919009593428742005817333808841058291162527898959222463196755684192214878293262262433804174908682827594232476878960057228325226144871362017042360005470714357768636045419295464134444965582519116110094046345297324059060419228331845626651605209737393297527598168066443780478901142536288685033698319310554307967608067145131910317341864422575474770594717051081769923457064838465618115036603441543934555764277283143842986349555882807333461488368261645971173479036901506107323338692374109182208775687613364886851479728108435368105371402782181839160032074044460834360754559551888025955285227669695925531326604018725741931426616871078158399348708224078513875073110496124907874085986267158749974282455245348244896789776552023584727412756375058548554296266809518675297471538140252203945012962812600227248615369480927948879787454531672648336614914491356961963538500211735163747933686836547782061876146263886501912564864205675700468152719266894659082233478319952601225473196822458045055025336500798957704996937235220615513479088425969914895097144266056843439075170213478854438695365847056664279364838660013606027545487938861653973006760329832722449764038790177245720864174456082425377931348303878968596314907807765540173681454846560658029790182416403132137197539511412797827210341405591100041866637180027897293720448564872214358579611656103219447445368628406448753297882421420424328469212803673179099713462008316578004917979108395201406066078781806495508800561937274146685365243802610151449740290944989098086956063562294474884174509536284131453217959078976857984277596852191513417176413472249179504434919912488625949660758233044646707514167632636032992711030646875526047111729999574920352711113915018353751226938646650296912821355328765301598442243928076819677985247286503431349220647661311073637220992745706449084678414846567298106419540703373017907500427686227354315779034309406000708526452164798439982805492470942676380101434746373942383864072713878585815215431984782283041205634263006539268927993324462835635001710779123034755945922508077608252944266173541596919532251317333242912729578345916117460847518398029564040297546688062009467839112800916660835793602980989238013383191904616676188613648009348354223598565460137879753682067064618354763417798689979731007829963728792912604576323773447635000492056217566748085081723719220377192235880873502288909349061978376984667396425622315754792772644908814143123496711159987958402374428865244489049462295913186610177047294712971987657198982114325243168823805802221073887725245338939708927878250098921179879443506011761569604774225873891275710773598770929657372720030368401627904806983717985979182220161375975119052710182978510396571826827533164177005648124447212822430411987239832943074811063670656929694988386843754611359378818872011571135295582401245652983158368104455172103370120793982963063829510989230078684101913620924837670417129951215734371634330357883046034272243460051194312199184179442020450882951770168653095733205341950363260460999581079775782358249531586479412707082736914485529558821585184030614618360122815384280128992006538827774811631565196871178813039195919284300740481979278102222884007720039607245835235920085192711494999440411356134767396961496875553487012024904011670518025846670173588114689574260200167357282923656357993816435366340267298480356541621699901441724178649481553186480762299125033575756074897729402626805757181019500807221401572469990790862323035656413643130549459704937596936231761601809977450283314010626892285526930929996082400146651157097035761548919366600055484696027237585752447772814589189644047819510766597820045553582447456766603583648653748493406006784393496383979251007184655896161487190366421164528245804128469243883941422001954766148383165236335927261527720989953512413640774987145977287350216728059597238733053413682600009100509208736814111610135951006780216613305034992384278710341737278519239383447197633230276346245253030589589645218353836712834360200993558558944903010218820365682600813670242211237830676806883537137822799664799314399079156162223073312056352363251157993042927992594642550138664925727966976384269345184746986612534742984866349097447723618207985764608820364657471990144352857788598715580816989764386906227797970582333480549541285796620646640707994015622597053709481145358766518831448101409063346759567602502770932257178769901097358533630870884035343160480946828635304621694141337087107464002902767063514055724047306970467895726922369914596531683571147394861176847740524575799727971913869528716752954121981928123479353561385279297738733509423902077650849260357568021999906018622421756119724748929214948320294119690635359565669233367103008299492207255236221522117172726492370512983269750434701469667319254665206832342616737143284641482926858482330136801937362824663761985539841002762575102272940564719154809741489087190417779230098955782911743394140217622794156074577421636386823111625356365529671257161917530295841362870911677093154018868928967516066716808672234792938013988107220147033197246253108674993123098978230378313588772326561682045522730564111976846441017230306115909148755576096789730150574233439807795412485639488311300530738604423375913016870439598790933468935768853279819986508426587284008734810238164732567712145633945968781896565085041278388982029172438769182012061320143295476850025594647392368187793857772495139389828045164379907048426805041250574933459835353154501829618309627544070904119118344104927341179488233668030892048360349964313514347692476177445079724977568290107334609285573423339848769707312703708081839860952848757164001346521151163661064562608594331033494697964219761590893819708771264684023119318453543888501861551942049691813797994391450540804300276891159083566010978966338626436146914727562451188605779178822140677992089229630761759349764738857473972784724607485240171824645612573560345331708497727887192464606248108806806680609041877285212720797964207726022830245058146302768375860417556165181042044023695333982973743827873810733814236932286052393944852325480511527240440053274562658800114531987609915692274220356429786643324685251158846852415228725466969989004575392122934526033223116038251284568599108828664075254596287908915714077429198241555551255672086692234369646446792107637377493428505579112204483811378289068291273825880084451965524282636003409800042808112369898988143145373629991926540762033929994284162993947967412052666385324831557437062479382713461108690227073881189401795708012376974748888864096197554404984184379629010007624410302358575854439247310783277738234572253751559285009232357580906804126868982050919460195920694900997254053060035517523309284712708551724634140440601998001754793333963339630336807288732470371296557302304935390326474092014783307133646629466562922400413250329345447637184093077011072383202010715078068676537653857667284149993182487741734386888129619688423670951875761714224790782724925154913917126873775239820791412192005027298593521865686851840093328709533138279975161669533161024179979411938400524961316192884422025059015887675967697257478326220433021118247676346454072960593822885791284216981713687713091913496214205161078998643150726163149911674185741588399532592902570503507401845015216231030181512408002418820464795270031428763195882577717721356514000424918122898708598578611740594911924552788330625261039105585442573981324053005472523688933990098734794087528668543867026513489001583953874355889196516653229934176540894272379372586192893949833399604802365856897767027141324717563610357728723610487552413734404562582313893599434510910510017485685436172308478341734084763382983040367965736753312485679361878714274131983789488941285307825007017448331926042645815416455495970137275683813045597650362339019848726221344364590798041529794846322924775715998983674993452157584271145853406118742325893780327624332112406267168106428919939277466680991060222858029468741251419333012712333093913045282924825267317962731165954362030919069863009938652547241447505888112667786507188473156779061013078103461614800850404219116766050687528310908848765765253663762750402379077352445502593964504558310986239409565191000410338603472312934504861962463853870602851895694328573389484599240866271727026258048738713183979423949448086106015870149108320872439047485605337805610499675740096122400452004287211498710117707851161481646976998547723559169390262071705525035795304182444183377188908403471308658496788760947111438955129368676884361781961829409418292806230553261574468450737701909971249291462577079500770863010023253734226427442501724793022793632610834043190556901087838743102773379270310759576735596873996127907970415489080286425515206371391027054330917557280417042599991833296779603358304678041024874687939711914236521809651805382549868053140802338647598608855336766561078163547056430920489124961031464798074508846112695604587142474492144621917247974431920740522370605569881951175659980529502484769110609601277910239428047296265049349410549191419323991165544309569951753181755611796520055979010661523640806436028438563637021851089480007807358710904572140834386228120218813432977368813542785245845018918565425566491006233897322658199138478792907231247268148311844104057409449481149166250583754979397544291508442577613549608574754034582072187132090975865570731929306616365721723277232127643553863141735420968711786077011039466806610998291694828933669502092465221118710330748338386417861461116476672434974483427454570972726189496287541399171694953328827927508417112514485067849015829845835903735470843287272861693758716484440856565925703144661759105719522326144644750913700981705378725634971722438681851584545620352982540624178896390072701664392322078476346821518292425987985372993794575264700162987877774532690220586879389618881859730161948208813085476600706585002165148886968748458023243789020528074298778443813901609703261904138958899178180135639312356348613430277568269500345627435680710517208388888220991689069082926036651176280656624412721960591426664147718010535045506638472713832745222468978965649614099207419763246083613684311884762461703648736539847618511257073790757325653620810367128883903941160060930995010106932206152522861488416542508055852120428383584811851716837220576764995327382791441979851379954156343098123120736809585678145572662501962233149959462439425115051100055629350410379538152544952351829564526091493647361271656899641327915327303183201663283834281221608251994857073000374464252019502851564473799963211402853052636317066252396234584417895414956555559255447251840718033875867409871170665595834020828283123786510333126783700146869767982310160440095313491008154275400148554746719894091433270037135320068067542661669085237084676201253088461484268735674579053150929139955119246503531812119056236249258840197713849277049772134497896095807730108572126282172373639421796946461814241089718041508718332163376418256101834560393259960794271154175619316291770248301236184069011547974580262219096840843649120706779923420952337124872679253922370464307719972355102686259384153342433650232037408411762884272642112122606272779088915661399431160784207568179718954197035873730438729444300625371741207478144042014120226340329833548714390505305821574351472677641043808886709949722814367035946163076738774906932566589561768715389572184729140937513625737281104051092996317480289600888750958878159991032715739511406195588882138520985507104856802649068342363799452903777428643552988846755980702469533555797863331607017759620537716202441880778552528794703856623706434592512862306052709462525557424256240242176374477420208812555164994959047934711299824993365878442444546743217325967541984419544103697562304692685853658288514062476825891991119827878124496343875517119279396876393172088622594195199977123733245069626675615531376973546790432477722513462266904472960901399699378171337546886927015683517396557328660866216102183650714040605490752973543659097538148523671112768813343385993593433453621667454608438177242896239466005130180879377020612714676931657671631037459975089446466388709947926538798025916142557076908708602318258119877175329068293530914838193880436025200268365895759338850859838406201291264330951684562609286712351798807717755870274435111479036701029791961105099384854972856297160416194553128707977851250045805544084725514257073179448643229246052472512922819850493566600693472085865549160634732678455240243578050973189200468717679403127975419059384459939087103041981110647193220765212902758568603201395390653382143972449515701790353852658839466648724251897410362919933835102305977513798666991041458749172079588415114244210145740353694180513866073880953639077894006927299498438458707392461739001942821736246131854269051628738648568514363706351847525836930359359377021575218211720354153074071711578104539323895684422265229432869199039110107501667640356822814837003107267922508928957340540823618819779648709477900738619858090212296824817462350296356306869285752234443516658905117454609396952688010525112433495157132003201327257589240859914211783518313218323592308959713241433548199231744754953082978452525680869046261182585318913917427337566437159961460479599738844561458697283792561346558261888163139826190471859796824199307153468597907941617600844644888735191705821086647375395435845251874205719257215241480307319633405185492188691211174579838776713227667299630278918310950862342774829502476515352478933276633105755938979057813808719380729904692453439636659155995017929438830413118322810313391086471351200873946397473423741786388446237371361609189423156753001327479654427549323583755353818467526011531716098215221256839957579112371950237581931795569075849130938914539021024953930420888423748208644766142367265510529772048151872832874153919044451094616259231485198850866433208993338185841326368578972652659154950650861350637636880945617768309036952253106172747798605835082016384698229240543080439777840994004244109061805326403703414400901259411463561077180325416077603051987911074990784513097836189141234434988006943967949172497971468521688525637533636309967977184317979648371733671484142076759450195357013248751655263734849592875640056076161148660766575684304524272812915205245984619045008433152783043272916047124692790642885568154744030337685617093512194712662291542715267302529200875098802697708502717439753253960718332066193752144810396877431619023234364101229783229467499317845575347292074276926216200008105363426353425349561360564169830367686798424454344598654241190434776025479509346328753167644210937801807227111491476158718794552334826778499975646293375677378362511328707507769003089819840651289324496213796093482607824306561382969898505171901393464055364864080758829570332918953421474786222176473884952932070419103528137505950729517799512919703755828075392073608668788970525432722985196038267956722029315363405960032338504763347087783084953007962492593386885565866832959517332639770718399338610955590830047830158205793117274688479847010882918811273146042910275529093535362520129172972988187574002305978568406618619906000609685055719481651305211254409506346661126912418987614579980965611891367491661661027721117302398682377879216180086012321481089352054711459921711473549657927649845073405854026810064533219111180086260695033211933110068768213859568908629199065968588140002352829874673589332279691436064928628710217601655404507769425853448618693675274009780228957667003926365939916373721164414479480025175146781838774524762351073166283785798311341268618116632610725257457757855203584065846168667632901174120047875206399537852599241018271139046328486503765305724572500257750733716033051613923320790067805027429879780467657131612713415144209874189480138311942747922718794461528718071228826715779643631672456604373841288364424895110606118807333565211106123702422654073641198780201606298823102526935846530084326105916584320588500385080713862677724870854827178644845539248778681573876798622564401173861778149174661678879935926395066398293875162172265426495017450777907288211221408017894769677991595357375930591887273172724026415713819788159342795891606278549520472299277540679497227016955153495624737203589668101761770009120815590604525517364793171917523126942812427879334405665184190697446932495701729877000404227127503671168656706519146700178701873117390871416862077500045233652236024161830265761376489616465120057959122855338668847666639672067014237485994334324917924854258033213455442468123513814130201500523921374110203888693113464779425937602223711648873972561065108929682079954325460431451189039106729205896601371805051039039069171036099324702630055226070870869503240267712582536056089789349235332848787074793159086943055610307980464699059719083693785908316397404193730402663698524480617852690532944708875060106148644344727826573754636980177630610688255049065993913521844605711904269317956345246711151572552894453632442445469147454294676072212813142806137685647244788958993768715563724074705045236060336220287169825260205537961029183930181686124467362854810242673653588539064405971000941932066163722462083514391420148314028607070499977123677704101722471676244532341719696796523762830827104490299009140118096525941076935635462826970121958734668895292899450647925023706244080958438281697962590803029505356286034280122345029720614067769700649805912866336323866841451780734523886476545036401305865589483948379561486997272513727985311686463551408901112756654212425354962312614589681770265254136166211877055215312056094045910181790010664220663158266530443894530635457657504834493991189230793130183696842475144466468904476613550162382372608749117021261179377991672166788628872717287326283972422707598106462198263541808353059172809508667653890160609203933917293683550542911022894011999334375309120555404655741558593580922040214341280989932546789386354076573430137051370631858664065999363726349194426033213124475427590465085426592164622255235778561480455111316769407116680310883025490719475199572988266014190020811468545967121704269623000940810898973231447947864409874095488631079069203109371439968059588092659978284094131193279983474630622752477418234236437225218946740276742240169525048094886073389156110002893549311426186790668902681415578542881682759761463966147534345006026573398701489277074928226772899570977107062150651717901054327266701573114064560648553957354123890050790086476411779112146512901768051541480184312396142213932516419516469332408419703729467267517215466019777219205812259945233126118423764381212439022715314593460336401394365767860958417115219098048813617440260626752668045052388823883726993623983019856607751423419091058873016906520061240547707968355589860142633279449159126672720114962561800012023326022555271645576852349856938253697786795663304298639046698608083264755632142926774052158634169380474757957499043773558104531069274046754231172666535648477006884243016166647758315106206090854289262594192208565837966557501046911239390540075837983851678896361107421058616290326994470865667867524388421874928661670941511030704686458731219989331279103330109833387417231787163349659504437050266353603198553193333361487366516895096016776071402225272456056979666317652179761172839409148999169805023582127075313604329687433362676242402641459355459669505015365039893451919306804405834206648307505044000955282234918711276119392703000744483252782162199083067824530226027328562727894130417356357146360616015913745379326327824861004341901922449053624861462076253823370938635827872098471601675185908033182995892858824326705662981362295254659088171277319422782500423043576493126582462143769888974803097924040346228178542392887323859025629007766819454207393433774254477586692878194783420819195487965058638128000817653551046007478994255928142568174560731440040242135952824597310432633187338999891213279316345491773131028853794706113307264915548518141732187550490927613783802255914187069191931898253961104759955680814760417334263835335309721425660524905079135483309292069341479931703289314704332762288279327815033167994191900697680725800464438859975595729458494329057444315131100801101339402619610679309811956019721058220966108116875653174161833184059705673729957521575577608289772144567375419692386234666635966151564255908225400008075698505803223519710638558656937897477847713449740794219977503742205995372899454786933796655194281165253708865160860578349805710459821069899175671435835675823232225933348778782725612420458582132922458470962005160607560910088787112198386579050541655028963460722572312137774069918256506547934249907743525056805604597123553210359305677426766846949255309494125546536089238054274926476064188867749471588182844930118106255303418031420977484021494225141791845251172564762941615110557125664756575540464542475141244458072679769161058155981339036281398819435094745444153129573064851342032261500072112256382692237923160024500484341472778305271228373348200052844140539295342190372460083725311532630997854868950771780572586901682321121995355306701886051262257052193382854631050742465801424165000884048757064623906138291132479228057485411663964367343349077257118948611268263200126438334824803014335348744925476599203189709391512046954298487541281388442812916777029421924599248030225162622431468164169766435837093770294993850650933980899908340694149541260287379322598305496199649529396992360460702770851692213733300025499456313006976549838667916388626340724862247087359745693206958251686776538434475324844377192298758025015116558990856564805367376551655182091608419229718720624363236068896399815396775640133318260987306162656207619102976374905678228276810209445888878298559428454829097968824909119191832605451996578566644147082158529157173253539377605602398679008280644461813557817638074490788231137885092288077956383424960504843276494985045281192510689862144422699213910733340416607344990166686895164082455109700564250821434759999641458317620801259774826990352907721219997190704528156912618039877865114221842869252609282073147437642840073124707965128261625924891642829375321582224339312403811137252406628463396547026862336840963237744344995285526647803681472724916078265658313445661070695808215212994516585107213761777325172480478507575044255178245373961896495095882492571161918596582295556818460028794209020198535494915600438607878459670961763798348474665636161109923996767640202216752186085706182011294528327827233691143904287636181629587016776791165019791719206483894396795335314952346220940944028722583746494320372378984349671262689726457350113572902019762442276982681082371949952719556190761564732576799527358249652242911624867444839510035644860138235832985510150497579868470363683087029632411344406991635309185925753719813775729673834778517417657379608830361566995780412285161858257886787654771962543445291645733723152118419916520304884207428765951284850637379004810937747812790968272570810600050937834062120052193459808462900612487026078560037769377371181530725870681695981260355906068991355311639373248806173622137634189285050030936820278031449371793508132276530896098948706080592926437294124613690732877071060382554141041196782326644397872451564226513945200245040643042361248078807720085479446712602354123723812151819358759452902352925778902705018875768987362019370497714647899816340514418241786446322337934921726276004442549278252087397262943790804978473749311622383510167158711702399572495795105211274357966499363884891910400376438396647410829787951486709017376483840406158974351249739215640375720349523073392901299869554433803887191244624638903752470382661428565701940726104602319288400700552064800818359226930797798454032133236894895325435463146652551022721010898034031547394509456819131733478627282715866463808514120698754981762725063212013700378592660620812882990898681288210499513305886410915745858334952446179451297945867078898098767526318339185834890102012600303458470496706205808326951010073844782052223381340231938951864164984421644914999742531740180463676781323375929062298819500024747643353074805469179337550677332213388378995428988868868607970948799920536466943948747830973907510219888195443189232032642452087194850957940249698610859836336503236397165123647208909671696381817275077344502120841065685867021447701076806320675069464430812433103505702452646647189184253025682421792564052013926204703135420141509530983460990382157111828776293255374135256905469221277515177164625785009764452710339489533855474702125140197794124817163817343572498963245456603036024460692922940358863577458926482250669158364308281549302210449436121882442909314196711808796050977260308512493184133769913685081773983567852246252503439462742079844499916375734166600323624317423618016727555651970504693220861966254252561357576490536742887064971662561566928823535509727782864855607322352984067046493465781811783478955158496992640527276378334310913091673360317307161830246994118211423673892021923781969208887520588753290195232631618655803285359815855844218760774330403751078444110501315774904693905525312526128991608292917190866110027619193927691272750129367708817577200997982888017600198204958429991543161070814412211981277431188270028820585264325756571452569501184803618153540417853727447204918336735043931553915193293346938924594162710744463372344684241785441805723889061816260192070971667574708428852059358654075036541773391284705854522914277893930094265382917713822030955913129093262513372871284518758869599462069324272613544782324048647953972231935709426384758110843573458466334907108129155413962121407398986853513804951355229242252663284846558136641373980220454682740563111124646358981246262825618052194543049194316082718247571358717109152902375157920225594841161920963303609943666796783221758634623259167027828155245629085052845302469504419785525745406625848878624464331902062699260465522829547390801179443266046341940662032405223352784581967472382857860981231885441366729373042041887737754325241052640919359010527996322798819019220714723441304249496300149049726581362903974052127212956103236391320663891792721037821657006598960246315810390890950741189776521606678198356632135698722487625335784208511596696416063023196939377618820561727871730618011894035874883885159649906711342681716498630932500499876450378099776863458573022940562768479223722790230950410374897919528944924257258335298306347532959334470791149694288949935301880174042992566198332970869594126476106954280249777138248948600089940277492678504363504075095223117522774552018849480099109093538544547624086173802147438938187389623422385506099195547180504231133979182922915546265779823279218479694576437245486458778454800471900106318534574242817824789413572994677543870698887932218658064779265776828095536858337197037773394246087646292629633144354779567575192779410922466797085026111901269110484236967589647249256130287707953416066044713362034992815463812544415591199524714523618811044995140859259626193316690314373992160176974784666844346239822318043151859688822256541275615163847363783882269206255959596718154903511060132659527367284769277884999717766316446197790267011372351661020285121152236474736992357249820588945253131225119003232420560139701122834023478838739763745911799317253301160868692537576063488370599030076202021125707588644087643450107079511839529740261507763851380570700008848290057627081286793067050149378326032922891209908580396646489582867111368700507895790242728130182070477503622020831753308373861496433547958609415035985369375937273807487437229566029735437529182555799171393303635898019092330921556772962065004642933401049360484074542236948381359606642157507008468601440153833836063860474478587415339404377646693647189643245779710737303507961310407940634952754454133713692891339193166373340181586466243531858905137400488812984349993256164593152759433828469200803491571779034832038651964591329484888974709882717155111349957630181367164125677384370217906297596762799656878571766146930332556604564768059773160334283954077016210147170523487547533726083980226539776869524929450173203256610825258199097273312539140570034266434980236640322097296991581948514765949634357485520954947462709456476389067406818250687487087721841719571501829715383954232553198425420458080782059722308023400380524348636854078731078625171678439103865840743998068218722608402527891026966859209771913072861559732179198407384997321769752178919081147112407150372501871959803760639124320134037573327355899778344487870716194530813360426751203594442330944127116292529118821612780679673650356240013859347370512750311641665552921692910274866464587124901624975447823939653503049258177863468658974964380713940410337406123961799222091861620002361481772508111883920321264013775457779963055101247976901044015127237971409752215168052038817111865816421794729695830922142055572509382523243182563841570962264698059352198169534745940954264108240856350940758135322690959010581490838750724246519352573834735886935092403377050528829320666800280516695810372522914884746965023875010776132678991789099079184340592443126945628770376264695704483626917354190016093657132359118557255445738101994499001462989362600445413037121457297070107817537168915593381579647642936302822815549377599429710115602188341900645294035684060117017437822599097544500455199896375032038934781327348669406201107711948513962028913130767744997788785187132752206783773897108772828117810809756985029586223807110587156103341409777499765873237715026244349992034312888686654849481405305061165079223780782282472292304224035388010717390846807699986173817765820362483722418764721659977077937041397979715622757486939814050900722479430514519698412525583459318377497160343424012924661010396727604604058836037755828437784498946949053388001140003131285433168583030505647431360964162560602960484173181566957296368317049288566954674136084372091720405786918020954286189570085472258782439658618136045671046464663383833795423142841730751651693085865069821934710389078722462253768474807436279526384567762178929845417953562100751830648326693042525617976332305856655221206389823159897482954185340265085330347268163428109542481376798968785432282928034324018198483339692209313863465757799741682649277978329542865165749420792857181649392835750017598186357309516857248038672514138641624246950785128999531121357112637131230515155221501950627231402116815953053992276425890852921758509914919617552288162744861009854078914035511193480267709615886433748330911579606960254793224403223743764390442250888281831464192461387746425918808914553815249232829468606060079039307283670631978501612576471988029949397687578967084916125149511445053759724716029625762266348372083545773236433657208584572931227907832382199480263100162819112940257008876744625459124091945268199628572296002708216114610392893782629171648967997251992820519904168116897238585826423874499981920781982728097415704353260720079266221234033380990765719775511663557913731284767121224669991945722218717686139022685519002312924635513220319817594888215488779440986386319521174860729514817426545788863300808886126944719701881255118283556134031111864923147660113652481510306801665802891997314684450507824806587475711490988682859194850164116414122137971778277388392545202496243414320021257604736847788192478889721645407542432517051745927290247861238001133497911208303362201297691370813263942648790008705536437716506652589535042363201367695991149468992145452298008976142589121716764021158552153168894715067554973016986964582012122298191750376743824033008531744651161314101417252785356506846840986691787498337860034037821052167034221287017491952826720481681884882583922175509826888289145759947699854563822269289686177333669367176365756959216946199478573869050671578256845089660199043430128141317398273502207058874215503689305661291610099848304026669394678161601143375302075297780126388168700597537878935183938677174752453932477577808169560421967768764148512796875545649573358005804077214636465000248088871035910723568254302941659982167707580591782459739683924395866775568611341908047837451901518362046656114956874075161005508030821170406157819717377958491928649407108083235754781856926317574454334065549821337707661742635613259975965400021428244759403830144903123929032389974506279876293496699190513464955728102807603582526672024180585336532034779146245214107201851090017266386861032026156294091554945900644401385033781150565657349873272534838109877598112170415782897672718809179904551889457309953874570353275610125916254045645875094059914354922670780232199386618020111659828516527496429723034610571395448924152777850351428322555559371762149680599903515974394431219836521027976884226334937087538499873423419998677926414642654595023358717215177041653193521424142705604533868922242570782551812423979571137922060778617486793682894820522925831033652479835910367095138270972704444017662930049000819569910475159934883580366405136154605183715255817974714516285516591165135809349196500751915483774348536398665585125858981968043005364065637812870844716833959258355125844943491237179085877475129762881972612585416833987454307901691774037682637324412217274335444978542295551209317831065352463489718619189184898668132425800206289810978651725171701714613320397099121744642684214689967038715944280795606051697856831356611838493067054674203668243935533062716309734568150340395612812588755294448191599633013039082980462062684869053260004695003264794167022969412626635174258597951409178522386319473049371695642237298723718312050934303933480678528454744676912846404611386977887032828509811210284954385163149895703408547014241354735169221508826427000054340715002853660901120114040294566823156828750039472758010332929351838619960177521438876903878764461547307856498910275864477638352014821302313074810629332310900293071871591142642560266294713369479889801361316300544059789811092870215972429235110909397011427601876664734906780037139617415882783810615701069151465893906951328901391743671875590760213019068957037065337192131224137248745867878006275147495583572956320790984823126755884208497448430365400155025022708556678957184534074110909228988968376645355171400735789337536643240945349002928394566369041449050734246698922870822122441006127036227979139840777310381353311765453257006775369058022273109216380866344486667202770836069655327887001831257323072804064437664453729743487196461425561742629258406233876973591196727036219888609739773848077074679917032063585359250442646951969463649514021872643644528767422576833184486594783593880161398069428036865409146355544497893250405379607881386851901727958300641706754808940794556791772159623516356679765785206743218634807736913170157065810341471662574350841328957814061938845265943567734376766236405579818485507518581818221515165774672877759326650074448724946256600333163541253411680933489513122840830483669655100554761511359307072004169294000664427772456680945410177216971056515333044422928149586531241239605080691772891758246349168007901408801063441621036054273267360126993093833553269449115306432271535796786120508762304179947597546052198196954858894731101409293704398903878929242681787057027955243684492584372358911248821021159977261232963557233135540333120860328835980847200103289372267801330818780973149313023290129074300342694879653634615850321018310386086502605933437621278034721221477610161266337113087064386491611628430854534354238655234280066458619275740483731340876072916168277840534258511807425319426091959623134462694994777976823004909733457187217069252638243231353678034779609309758394285979197415417357189890241554650319976777761658596902048553216920319333011268514766581260262243720100902923853731713517858448862033380770694627551452008233194597776087512323408158224159784114590114519531271972166244573324536639320550179864117588566641258067934470488344918356542252840880718387169507961493053751278719534693498429539349648142540333797141721816590187103607401141233849611467803232356225550085466531193281023532014133923146403117239267544749472566699634558708462289713252074637445598254774302265320567725337140133172718108100417260042951059214253639932401997017317667112737080854719924099939255759787173311206070481589792469950548788179184927200864968382887639016219013600288319601400391348298250406519885343566493958837218066372954988701544949220602680623038490807856695877102873956993754558663645871490762720871501719518032946260568405359840444040009273062866051612437865940089910745883455342793217800278890659580247076417692064285663974056751187794676871744412372276490234483955210127797219102754705601740898573560508499108547134754347265555452241435294831817825352972905272420680687368629214647658892582074365562344617821577301419755322716644437147789215579407028829290034790895709137077414112894402023518382728787980779448903996652933586016150955717075746113514863562762149576410531797494634872367597375986314577549929805254237956522481462740532374845691293422107389706954147944360462674527409359295801573125595982955757861841611776220155027829058139427090802922178518740388972587277736850463914861528416416455606152499192872022956637478745895909886472365499595414380747877098661273000228403944713950288140166146915445535987129084304225662822044392721370987637977257390233345510555053365718119679951741781717193482588748587744071611426441414916526297668519611201260274006936779740376037874456620230812183860402303602797063097452131353256869062239510046815541161263120003783918905664080979704248931257136953256906228591010954942868801819687033221900342413516489490882731456610538518083891431458249377902313627870139886215199682257328194723035851727057463521053765254404917661860141680099830613252678450641149740422956422049090062693661023023170972768687713355938224304981151631650600641946373027020143827783066159704512005473102144886177456768089199836296076612363775368266882683231708368271477680299597814137524332096976307506155949613394457352543151315875014444808112991813755900471454999854168191349234054679687189427026719798512509980632469841786510020223365889798594670408328091206326361551937041328143875566359554176986979941317384254363916776699105034449399815478328787636719663344370416890306341492055352133760809731461033118011408670777926261692706838037333169284914545005995793791896977163327718572937544962464568441816910297519604031862802588811863897017787642065843469136956895797061203578947512393424260082101394254524304463982887621683193628027004342611024345596379949225266750454484086098384366748182724312113102925703046973117013280519205218409275545944014247312743931211362451359622945843830222687173140770146958679893299441774871940646166097135951906994940683958418036502564042391828771651828347329462492143752345862990940514083641479427764116623822603130976360130517942202291054166826468216324144812840982916282364160392507554328061892652565467895241636498958484070254285668054661424877697620029964534684807448459394836351845517159244117999101554491837857902832364441918500752760522688182628777549906109601682768250690240974377035840210747699265765467841880094399333856089733372907248882275674712139988755345016646083238439166079993396572668476741458821577931187356823675700754052950965545604417006547013664646671741918513880614623406525787211692365635316759746858346206915266206359063147670078190947659029187765550421032906316959776761262344224841853484033928959677916043951109442190513117752951249105022222581506348858271429795265426344383084838450890674384109762934245052949896283152721397888466976230586737187367921873441319449333085005004848483294710287066927251803646687838620207355158840818182115926949624014871235715221304715068781139443155036465414752038174234719127863326404922691207839407958794486652230962560850945599569653542375163600557983438058407401295411767134277420865305368838129675145533499103178656489555438094953042792468371693542200969911393710110726616626153993988896415909029862027065388834038859256777778086000889331350969598052135881586671945888337893949917169582783587603318345785235593472987686652126693704072799554450931930999035921744421794504499446548430352006445733555294685467627071025605317921337328996660203858090446026029838287887737722800112924090873659038577562349846299029188683682722532698961197274957952330239921808399139421660966387229193634245664763205864200442543836270102274296710837583160445017156840921176125880970087870084272722838387570949508779448513411623164033941302612202195158047959463504574111191067517097533536860261278475536314307439876894420038191447480937362366905201676422089862512631885513438776208828815040127792628749931987015657679821389097643823408472445923719132358877498023747511928312066898420469908088988491078063507097961645400256360039871281577030600679771469267621782058424478618037236148213588418511913259673617281918103462963133722670680880682062475664099629725856320425039987954356097029400395805625957497129209514585695792495258629193879635954689270327915890671524378027156847047677200893161698062896450130632850160995128084792646331105953659197011783227228209470436278067876719237252464999103863179555488363240706908856306623030485954067929254646344460744627413897145389465488148647872505956824386797079770536813940992598415220638389644520366933667638495699260045336417467849605781928731159593525368052823790816462161083386516007958971499029881622419628922939597214538431056244481346118911650902407259504191795973793632854408625888112455275073881254074936058792615793227272122106982045186630535070357352256015330733511122438987646658079195695209653497986550584858665455711296894238700182705853495718173647876818908690038297966167143066504368435194658204035281930594375374511711249496055243977572072328739067331348097163706810828676172722605334605304874188058086846327803208590335276790487204809401185331220526771726922193730887272696963365885916385992721469347882888016577386749021568796393638514421111065737147286552834723424847095846658368614812917680766021060511890970359611637108893090418175991791268275826833272398363367011112870237089179245789205884060534600564122656698663457739508263314014683501356268777831778520422801617058139062493394716786552940747139696566965231899705845386050638042745301435888600151648936522390670748021428224822181344250460621845536388549716465416117573791861864277694702806593079183409815734614852780023327859169827321051386183465061456673506711719301729664229318487352082135395891251862685282634844040379802125820664283576789161342434591515028138167539551042932303842963759132407139506466099142580459631593235113764037505984176671071692022617057863692070166472604574041955719806276926038230431418598035929477697832218218195204746783570460881217449673995449008973877828568959734464996830194546880871972181065597980224895905420230033646400111432128816796997765193217297249001516044994882741272292792257055197851166852534933258602254033942651392804758832598515282111334256718983820963229909082754306085569019265897495888629855530321836248776937806459959998976644304879650121434011604548979736274037656205522099941194140159757289557340157076275505926293052970639805935743180139255448367419412882610468089664278300575675300431822190169761706612606266206911478362652784047285900006856459404322418571422643977310774440767734723342220551607489572408450267255189207635139546192903952785517042237033977408719912303498093377697855567589493022348856061374369059783634960535796722478633985474569661069729569861485673457285419797614986066875034706977989364294771205230204503480722107114645395829268369018586197041720382781276474466967854007798900404010367144762581098107247155124447879633774756486877619470617461157883514833135550322537025841031925554898353759047474057864080721838146941652757646188207512447906805407154719733588610971087454600038120860219680491630778990290746550820706234886838233231514273656713001551772758178811101836460469549949084843219893568330401426756566357871947841036097135984032140403163134339003720202524822862556290819275428354401594006263025450539132699711187416839784281713090623511005160450164443381069477753079407089562984565794587985823877722559068034104200507260853136612109603384905242242799716080951266893175977435477169378063811810633990593108581949960402024798347459778192117257831715088551291087829176453655621860225423492467107291653004348583622080822225896536094743399541145032138672359559857980801281818259029410639852556613505352331837902540728625779502327724969322558678429698770820627212967288291797724076862526938902242902238044111440958503726990964162337606545292577236106113190274784859659977606802835602568440052996232732074874326288082979064625937937100611010503655593465050515378829672892519791373095691629654225203840518632745992780837679064724403005951516251342593876210946659323047756043079721942162595039824949400261440594720272337704040430721251457845371463687638256452933021165244738416446366816578871255234088856769750283744413337918290995415463209819640092681997528016653269213772372694693564767393979954036625925119665619621604362526552237709265670310644850651357269932572157466508565493926758932051368974676369858943234392003018833003507576423113643788649300825458783992558442589189933551407087585238474494735368250149027209210495273955717436149041285840516946223287636751889239283683352757282588555511132749802235033365532507749867764193519417069121556045558179540895632543112891971751765734865653213549808098306858728332594451879805941979579272898687106434908028388645838071918623511538511499579741794101502795315576323353371216096708355247144706222231222545252945542804642636066433953665145270523887103360725249622901084636931401609778300670353719699060303572070145004783840169277828738529367273464173953095490828576402987398489523085494339568126681516212710309830865601687139018053676466460960486299269754766919992460853384733778068794388930570963783393586907572704914086997125564627077195754823094175341006370561258150521604227392442207212138633655386356935913771107068303913036176428756581959826787868180777064453471533481820799324048857273920148816543460533668291268654992010171648624513576403614507703628770530488569181938184687783469642875175015774686501617113796599476635234709373805789420051898229807292216468404580715092265553212591059747599820214242881012669152871818322110650133074774125842047572784258055548288220244604510631708069215074332892525383968750575585777424877595403021489648910770956466239776688047948734850066546592960093014708828296227296866048521580366089097356757382712165002000436508730350214720251270193640014131266818086988247155600982934509454917051381009297817055323867581060234833937745693186088055548334323043190588824846396670043077939761704188139145722147844194469181862369473627789856858154927792129460971924004613842923224989437250458549904713433284141823275445715581615332780368403513385587377812769669346639077804591149435534946844958125609103820496025627539615690629278291156071940131863438462339690127768963592765292453631561963708809020299477979023263413039517615760317783114544903239327428570498447613925386727363629305697167716724651255676768079668578721684254351364065793840341194093731507748221922028868579815958451699994136352127165794424000674395862598438068650329231051689546790866297582030050534278674870297405873222415689149293076531526873960507932135260661747981771406448896927358570976575472220792305459324342889324499351020926731341359358808321353340950973005274687418476888909869423973234068078199823800741570651339346988315641045158159462616183111691702736192370841441831174361456747832595402598777970131714016250573596668189309603401027247516767717822070132624893390958357559911175119468978998206004906110400186083810965054308811936892199530039736719545253678138256056939231153528359406024339985814370812080389066194549969153325933065023664527237215094227682730005002297111489963890167062595882965605959943548530749641185131979794810776895186663280273267260506886646935460219602093575539686139878804317407417398805692572724078568691377712144963388175389327142585929952094379304020074962604661074637944880450339640990234986639283547395728290882186833848454154927236624710026628946723142260412329711226556542440121104169273037933329041229901627201905377060354029033103591100799584232572822629799300103522141144462312436617139438261556174360718767341533653896340271400776249576647120032427992985770030337709220934765924391302659043507638869171071807187294742473684646131314227350307339910944559821649887033046076937538798779959385556858711071278524393458355402484236931095042701857575137199706970743576889518646542762649452939942676388069035893029189364239624963831058933687369323251792170459440175450445587999990013701511630754906889973677324042567588026547039719044712895161335686966139917945605885049454180102783790102813820148139750937472660656775563762959963086690039193971674755010692251258544041528385675425128273579321533587030917212427919247584441764148311644407616504091174145187963099651058845497469176874627677668244276862428345749317357494677412381003515707168429646684637613503786569725845722947989513649476005847419718834373064602201168055100338173796857892359793967519372782430634433327508613203994729990315444347123348137604693867798827599232679305892354685830428692359565790627862832147324831212052554301059073859652327356233229675336363982147712968243290434808234662034414183024535436792724383618536452250829417596247495906778200430074492904281671455773746126007689156057104754606454447314804350316731357348128003222239685175262046597045499989334458075720747762118563022754285823549444371518518437600637499434073747313683756061812006880743615984956578684354444552965423280300525865199691761802458012835262262345845643143356158501933538494522632295423627741659512462537114504802895087710586587015807953030567963605568521053921773717105602047309292039408787694087089561509384958703990447070172938091444737049960535992441483524623815191376893682793093826269008665354329972744567890683371403214891617060230348767753317598988827163776640825972001182244671236777865462659396189582128496805419161183940827592409818474245109242767993265280603161779281115266919861829345045515464990929740951478753676892219829648924029621590088763817820867242222715986326212651931808217049019032094056720622736422736382153621558284872322162214075909289024421940906206025039664073004641992421685430374519390012969372154677434917387533036766386299498698831786930804715292686108252973407542379371098095443311966006818459409526298516182385411059386816472239324772512509739468851197120609522147921590273136424988779124564975016238997557100272255654209390177958474244070811748552585738541744415214704831116289539707478800157892909938874707268175998758332883736789449022861477681494944719932736082373079559854396964198097494073513357679386717205945979101898166496166977308892870914948470819316858770624083429264083517354114568574128126088001118812708037606277406008706190876060771918995176545211166856243304347383732286207275659820816787961381036691676786465549116301066051400714481266904136165334270280477765360575706109812078674508306613202382261227570732142693380649558959184238162901120650706128245764806721541433862307707422308790282394996148402954287331691501516282420594010745196074880904014618024626650447050958026790526911511222584336276133213265848696057880035670945696542245705534081480795477705563443135683313556529936660359225365744645624835653440022062986250330957512732307843517169350160770277564894493079053063758369097890727218383844650666355920381951217870291680927027540559783549678722299455887652517966106007701210639365716343777420071273504497065163243920256041938129403914416223213147985144819226037948697881004373085981280706034633330194997753762726913762840092354661167666163616463569322094592704504718774001530055639863318691462418100638018972277562864216158783789967757937482413430319889276164774117282654504035584087508598434541179301973960933375582147667056679381697466757191754303876939166472529959038917015670051679312260328197642209729202541983938604711181339123500112635862586655991211528329997712199063400136556437697284893683423840956845432180969394646683363645650129737175431233164645603364944021721745638086889633964179922041617380731512801422425919699535201494061909522050338388236029157652391912359740948310656281964221835713546624953695588733486484500727371451130345825588034343410640530113431578882153335434239109102478545852250298667901320759304329278713442515048510368161235116603739937769841265209055942537473189025953726617276252001888108694730728630200656001900148645235394096653671660265929240467096262505022306272723751678275048788167073796956495201046073395493169569195128642057810867214328012297062278752825241782618907528895542745903835219602146340759399793464996945438441675237814734632119742100134938246973705699596592842204866013796991786188328094511583442642514056889110908964930676355971106399963963128199987468707784516695104352772087482735462809369024006328329130750860018510771233390528584394572488041731996696875192685328411361913842232515590073750066864279141886085001029579847892094567922069902230668186905961809172740489744275731867734434993058815678451237303538986131729355534709484587640603612257237658121809432950546535139359450998218062229085959551895005173501342781866399289060294222562569601274444017200607660378220185284486500421148174469589539549263862421368046878167377821517675447165863841929135436961638573993721212686007542234055098898173592177914517616795519015787556209275537847010122959152616862863082780796465696659203528986800495528835890994757930558783886937814575625927199100633499589661898283985344892071800426089118209758582464114336918503188937719129790810507306410145560403352666452401502576349142250109784537491497384790385768776883536193512116656294310597801757073873786372318085820342260192253092264223609329083399643590119953427619067994796203839292712271339611558304167274001412499032253782146509445064293476114524455545049867366882365210993069386018100221438450970899342060756387302349809888398242993632705830835127703288784738432621556211030379961409922853080187371753445387507620363342039125944397347482646691624265231452194512167723019631382059933267111885835405039745439601601844171074645246653816870603252445193779288292552671134434810564386619440969345998180211809086848123254498388037949892105361543535813781393609768187399737870845808391359299938861691866821535391252986390924781487828180889238730104233491799425132384414666299149528738155332641162913094117378317028887059218207809703719087599275400742331323490513892854902435102931389013835298654865610508542714259068031316361162179617564263994563840394767538532922481230390249962776669717642248137103542910971199144496653762620629329612269444539603462306101676647112597260499298913008416270969001815983448565650472654223466178969550427450360977740449166554055989394346688182964061256186100802464989005244138123512219237290281885493500812954481886234772561882088279239179636289070940670057421361745042787382606332558395025807753826270272500258004086335994473036610058086771492783665824655311792853300447036366109678646809733503502776236349302178240544305901104962076800486427411967535591189169837037248503845680734103837101805240397143554286974975279328718057515453583219830445302961255004292252658628247378843354151039110637833765982001766798221718209166024987203879592878401140871807117486095673578203616842874992929205267763956526789624188273974350238113714887235096255906575537215641902892125199342112999785474958931084956775986022872707997389069487631640400354005437653143156590343957365291623836872771289943495600893118337066639199356393772620601273021345459109378520254547645740030614457408489886442960707149683469327056747517441710254184347307744910807701971580139898823869865830461853276691504682842340143235299590326930822805054704776981835950688870739773598946462891220025535229921423048796573704469893559629851684613186930087381653270788060813644541811567481632588982887628429384918767553106498924046330015116421670086722286410109722955927805582753462179249710975666956519257837923359442367981502206115759040632336259407511665049173128628863860735293668345863548691953416926699683586292980249182634568672983277187201077957822990732748971962455729387629421903629048599600635016484302056099600972839202034159449718657154438652011229117896555920478423715038811173348570104045509633427088758151289897316269678395085263868930600763775217728724029296101391268753655352973940226482055693611735109231713087725482924804486691321254602577531810046246523415477502489654715434686437919354252734497224037256139519774007027188892016232654533859911250087177091301297848629697288774627633430783687961863777050501509229291646749703482229603106231008416050197371378329895775415834280258479484041187345424468627357574315348778332835298887330785396510199541448620531436612781035347174354486374151806661676232414538921774842259081733542432395819855577227396942645686035918165773905468675094280893366060858626537983352354028775370929787152686800554831187354217246266726231510890281764906486344248472338909834039188301231666545901929516151932177088013425967192331807640508580970916676315881564534671555232183573976088280380913247585638250041592691568751626757851689178708620552889695836353344579939510105348747633929931134859007423020014161893420697175067375889455951908393600086389369636746577374670094207003403017248539311387468044292377038033393513702186978728513650061409392433340749657378124512980319543380818759358712523297910786826365650206852394390929907266155704422594209842200310896557434912882584054667147870202769447223630936585605727742449675698268733572010974550676502434328479667078718954043049134108959087025753301701246862868538256979497876407912304135730675730738305821040617468016996163519935393587766073834599781768786874869251658557844420295604244314199221362462235856591671380869810863786519820156326086522646338443278356519192909691936842843162031948155497347657061204100666709566486094618623264150938184919708666512454409160649097089538315991334488183937797152178965934094319354918875716551891281518468663509630861242687921258897692486420230297141153384851382129336490616368359673450251481059786423836129965599621011772011033314046044678299589078504405473199708000714851870213128735164750778680214574780957237920784547305353490182366175283151343715511741926823136279414413787597100563633127717807467090498298387440971111552703056813597770986996724071913115491820408482001759123274306529404502443910142572395805703376595122774684510235926896799604391129941093207955218082877916360679925518384923014244609713027185888116583750136821869941230481605183459818349164192075423698673964037637166053736812966143465978249610027537236024229988621875029821084874988862221084280426674855203402888040980619777125049585402352929186371569162192665998732946445702445993619467712024020847001937185026474944196027229265824150923547398755600905249448118984817318483997429308210631378079705384552985418734653248314062360604030295963964395692633370229488500691396109928355768463734578173108390468932366205500778487898956279693069702348430238378806735293336024404193995298530180788976917034731672321551026663415055553576413822274083325912739504094581596258551995050200939810585831256597975767200536556424594963200146315983912942555470449132793680871776964334291189613525549443017034111781948044162944117165322059506807759066386718089195197510873683955767050928500051674672701668055687914340752825481433332941598649391231397392472228875482163593625813305068544623249469321687121515876864056806174839702514451605830702622286788083832644970562790956678882732349938667262635505448119451858276853781102268553832742208142394731664441752833939805192240587119761406759661775191152109620343338178444691231194775942177926641117928771459322617614602186635688779716612647965299197493215113306769048622243029959476920235640136872201579678542552065560456609924756581912430082358124364245308012161463864651856166883441975230312254389289484709156314887629657790679148695799298931141889716123834006684472698944447098322266051670188530176620277521643513916657104651699333215727578289108797367754057618027800685512990694190505403314060951586355408921399138700895146488961383320069756436319896248178681151953735516020841642843013656197375601933219525019839276561264888310408428068004605155243402361805850237881642147239906560651940342726175436035544786740252007955376978667026127025146198360401716458548594863966980980030869727827594807750334582363562299852940919200672224094543599616375464441622216498008024963220808076971090869460628586704423477984172060191889996082730491186658127496971902615946845914680353076756147167731037470055130315508349929376384756705112422751928283859644268153677358130183913150472868370587206447337612897844308704384343684655045471656170706829586054537406688740078116487961855121909566142079013696286599082948424028691392168100754184110186335298138171298527359138467091543205356812641725864079964061814013237353206482232320318703814752011368898116148220541513488207384142843632417227244107213521051323438470747769357870185808816326128565497961720243552560452759560953102040328682462959375219813588909454578871886630360251476502520977010691281734805663654645208231024904220309903542835760389765565941297461923698494125491169356692324902649002894125652616138025854280330938569055262172613896148819256516454533788724897297319787765842008540786565909087757373709647555687487688163671065743974927145166727599767150064681101728545447898547819926103121597703341661433644557692885599469531977604833126000150877944003723536703156856348672782678707466487677784810385025527689182531758037313888959163153041843554626380388505008738310017898742093486301792975510875962642728607718381745149499842640396432258206961175695820956691723097912730811847861264259624505728072252984852613454048212265585310393791046947704120219566414671235424226064958965198159928932231367052842699960085043964710495481720360856149102791202941210960062938395659023674181003606701919939731634360151842924602714141279489570368212868351933702290360509671684559544682538346697354026342337687437632415280903762561635005556483616163736424088249404446799912572863350010297418556995953667378705669727727851983938086910447686354102628748153213670321871574563364086159381461395253467038233950616485024942040648169390172410586601606208325399909414275346644456602777500591977480044866173893355364585220383645922424405108456553457947605965837399407633233131263593268219519977684051409634152245891393603780955693000978736798725483175993230991556844759879970189678049317117364821287555433543082999869925523413188407770946112759036573210304300767229475523402274603627429029712931650504578507084517659974292166622782807593063786408969528807428048419154230442612183693880945790440716119377590152489362149146504625507995147245304636914146605884406527336216094496702434928533000969700997294779386898657374516410848826615217643872695716628794474075546148271314450438212835348116981654458822001188013596999390392821082313017524833439425204192709949842955369079593912321138103142155987667801722586973826448289264186087134991072583601028347860310962466200437499853128175551359142767097200589946901570743579764596439989202184182906618084285618691772113187069578816610203645885923011550706919943957914378219576201627788227440030397996242901490506781636409374887445917586853632119177029428572828689093040824961692633350809100563575468394304109570734904684839073645127843723517946614460251005096971905316614135070604123706116862804872061804206137820894458282762928065868855992349574440922564645406094541945411276117437128801297403499897567476741342298696643731457627891950491368197795133989732446847916777215182224147301415901405545143344999450439007181173672283439423272698050430660498952557433393434137336289727526633224532461765152556278560659007261887178138539023356298683860726605055218042025257916518948698710841634735160745900783868347846988488121387471043757044968175932599033452448369007591064797862225125313471149934821846582911049981460159508967702828937014545243366324886899959993845289126063580249579740797015423794228024638828856857343043771127872891368351716443505453904008328272288615799795405322561709823783090199367282351438412364766265639579176882654148853630962140758461972782583914957307805544480694330522177577974776890375191954368671891237271121923433354234365584697942123530799773237088486521582261155773086666035604378025464010750999161972337815094320696782032819149640679878666886522966021545271435460934163095121655565548263213375764012096048289961681491679536862959183636832436913296816225032264645842865160895017646632522186155745059991852704964505675627778988276208790428378386892696298281199620668405490897907435854366015790228290898414069939690392698580479967896281348183009076868283311960018376657928585380676429910800877899798640061173563066507105842202891425955382614906395054108051025594722261046546858519728783081644872088438965378166899060634869665807302571761448997477450676437065557984788220821011350071064262651417412807435684726493059850934038266158416611210077160705294557327232771894946301800239256098661390468672369779506229796998547863493182134230653755979285666908145791006617712659583795293014657146555083579986611873271297513612661987711149454534205474423609244274191506434330051729004534448684432932847280654055911263870512461143630978507560421215042086585905609417810591986409666888187821018472207313405799800342534531659672726790682005496866992433073825554165160612210918356812479526454061158878661163244533691709776335667505326525113414195127192529330623984837259794167358989568617670805587854077912329255533828086991007288486558286598395085505741492459130934388953261803832682456626576159605022111664858434261351705894367526671779113621089285280873527803761434522516850445725087667678364704795741152256139881251425350304919162605250286006740887427136735975852425656902115337682738642564029488145276902472049015547009973593335562972004563259394032794364771465795723024807970071216690287891277865146371534511007988038984807097660371974848972939807520488886955468149652107118359277828995407194702914201948187409066729592626008893059673116589221194269110358097296169211783416004293385295323844799994044166204871227857192706426519550913631662964379267802050398758034048254809003033786510575661536135958311130056256234295874030586302552884027888149188617108583679986288793338994025974852109317546253559657116389331534898935578441058501591088471734113708164655611866916548139374399371876903894472838111441552155684190944883327801593495294963791667112880363934788387548141746105685878933219967571620049798919282110505487314476174905993106640107770413151781360328073630653559796748172271001573977137751355643131446924519360542727761453582799217159346948944178876423350820002474673978490920217488056447641642465521584954511076375146492041060339790184078884109506917648903386846508911020784676553798195262565383707118721764193389585432595041460692673263568485742014125013677296280679536796939170422685503832135590765365177510388626272909966005862774903533508386949587969172348149974011641181324095410135671408929497990599242938656877712083390980941515697662425329244983077846331925398651388439622304751333485533052348222277176621225424361019053216924024265377379706081289613677289668676842087275837155668437371449784525000407168448972242776631735734775817831408277244967152481137124784718076605686345620830967580889273421180287522298441627009165352302678322575603530127978259030944523622756888675264861675660536383151859178281409620974757821391675613944941057797916840217551068076344094185467160886021405491164264044532498468924369025416613766197905338292202641939016043713868248564248680533888165559296744574263110626136245452149657871542209344910811766580754148513738282634245152673128491686647954242990872931881099453978967693191690096547129556092564579812441358541784778289359979021441230419391295081149938656569969740831947819805557546397088732637616311372967243327245650480667223916487344436718115980930323090071550597181653878404285853963161067765451808702744395157953393212754059953995057107160736385051971616316570212837958558108041362134759714144021459132457316427639387248821092893152813680743106392160346175744560890643547246524089826924491707269441899183872527839818790020230769028726487636476384733453392925153947893605673058700568279512030619601380670896860521145514098801767257186271058699336318246465544612905509277847445989902308936955675049383408917623777577374990763980954749456552736616365358678286104109856750457538065861986411269204056655555002905949078958466267893123523843392481407750158434633650584858966503365485626296961662110110547332815217684324304846219435595066792961443577394774749200800956398186549853659761718160344951077090028275408061513698835730683650232997042657406485403053419297262865182115416198226268485865610493366915980170979196060750241148292567262749445055908886239186800542917314976153620936388284953983034714268095947748797478904057658622086333722401096466584943233856810677313443605606813107445274507417226513547705514333528761396248627921419989097846530958019941773379581959214599298502143095771538336942514959394084176561181042565571231823881661043167683111239132444441936405009027157227023878439251612350798469384731276275860790110092163008790681858318254081651220143653992983390481542508424013048665748615505490480168881706120343418029214482995783142205591355947421377654792833474656985026360456702020890256714916766573126893380755425294117111347214255508736581130079912523954056827991575748558976752055171959917323384123961482066772472443942322665440165850213053330743968256255060273434880859484699995854597766114702179869829985589296950968239026884129489862517393575766293443329108773629817559972374831092228829583554340732617672655554399603998834417686690688786052518641805520549201443420098433001041234928820106286749529640425425469878046221836325254590220133874816417325007456881825358593074124874912646251335737177996071621019288623063315684749972545956125440588912889801266193412418675805079889159714870738539718096159239937618845579099718634951840806775286479093453958754884805849090525818364717495968759326478257258489738110619898473725072631976249071349240097240422766734310199088798860569719898649864610072326399029141206735920639889259478070691781212609521815684761133401312019437023260281509927704094910971900423421451074602026414666383686987956456372450557991684931917233939829713028240992327443254977450551363150890614693960369661331407108587689531160970666750236300574780221687482861433368206311454860227821627019918709778735547117555717131001990693088208412151622105926974689412994254928698180086201581938897063098822335835203378828192284943588210429034593725846169130869900840809071963260919417157649496861896830825386048543973284534062090590456178424522995439775346778224786558801017637551935635214079928634247106664531713368131618419801642861492920395106672487152419978019428328595643203397820208618072377705783511216994318003506584451516955116591466495988690346990315801748189230404470457241873260323942731253118684556760535755044984339509093343601976537956776760486811078314748896712561666259771719516757297014462597861036781920518525204685371698329880331029522365681713155144010538878002784287712830291298895211230427943840707828401064542615375155604386920721403545650312607178699720020684254230000884667880428929047465865301366794484315342859456916418430674119956831782106697341131246363044742451236049537085014634235207958008872439591772540830295958419244134818777814999355776642734143442163438157964436418354110231213445485573510789273021359600741350771331514397848743309289866911126943376010342793713405516371632758180806725944877655142083601494938230440174461477719797649692535479613041305961579874841055854623378207644302824086960599541078651869627046912139935179118517510156545284325019987033429778584293997812778466420140575593113863507978499183003965220473767709223305478187552975866649269323996247188477133526896922865967437201443605652948146594110238634643743414214414707791392094532601475975814667553675451709319079707384151449942355938621714903934598405693538306123741548610590115055460836600272229851610299716482176047970202087889048517131404457874440589618267313820245850891772932481072631042749838113860961825912695726576235860416133449999396498594640432536583118970794348618565938113698601635022421528659323764724354357587509139568532645759138630010509137648407600139491624373215728076134156741632439864534376806095318648841012184330846017977118778186160274049378259189433644508245196370561778920043644276111286613103465011805720237485720793654463645335082700259774636201509051397480630454440264941828693833594708747091113189463701704354997526418168811241283700836895940819332968745703279676732839881466884321743114339692167133384419075416620727775031847141210433166372185426005968580946559798370785517129250796207665448215019750997630616621654607952005929232922385403363317269482232989510048260312835174850316634183142711927959869943782205997482502700154717697221191413071355747568290021692056775837818151271481151370815070240889402762839056314713219133172138201946601297255157687844221667293588761267948612827782991167920392182566495586629706264334003180600444491230014743744382007727847250151711761111337965639613860470914573759299317366082802295366554492464600934665237415252417575078555494618181378179929959393385357006522496334809407485979327599862795068550083577674311050576850831732179896153156313879398398043945477516778423258785275260356034056010650405205926090696556961470462372058302865185050845690359222275662049693331394196212446206375357042313178879489267357991001417484701090804513398632962474002538576906895357745832199618878156674355611862823241615452876477094078926451218512563502094512016815192198410666720981382095701096374751092033526976810871851720966088381306290068538571669071060069497106477653530263300589310487951593537917151172348117084547981247073417117809301888973154933156572894572969191933866789839514753368567397688002485171053117152160122867044005213491042277985120292974251866983379571173886099393955541867946489996965753135263342154500029150729939328781353012639458314677636316017422406114498827750625845533182358088849851550498234821190512053159555253252656372837850598255839502036120753760720627464205776716005146793799279791725343762604803530412826090237591829037400972884573805191849897488372558370551253375889291677243709508123317844784062885801235316190572785987626277316310088162180898120235656961390926849082813544328265974640979026633604424725743196400797620191910237663082232182258698703441027132595010636109447256711493936782318183770501298396521523300981711225179909768043794384346111710855652953156937954278289837488942614550908883435946242343294180293989447714499154681780818537887472622313470218923566319770138747073165725484163804186058167344663902592027898392222522158716204125080275627203509079543482133332979304313260775725189947018519667091079337286728050273849701976598151688769066025499676680633065420965541879368719766113332980499316668015755760406333386916589841182880388978855955635609096680462001417758178888203624640024150444899471945042896959240442770506005395078492149302563189555378475095562745353352465992106112887516679703373568547540837017605635366322782168952659803046847877969816533051318121435075057297297021037090520673427164045441556996171656221030863120018747601556051153128973648674226430390729984379669876300960877060565341008057823942902714789606892564039405328295344331811516656997655622178982760111518159270270903710674914494391727770235477284016878442849014248538976755339126411518951906873409652092001651653701018763131361858563579338280265016575576941551390196972800122998995495362581957865747802499896894253803848000666470256881015287766207084724884452129780197037525641830301764994556692836380640130983682078352011869632879429577272047124034046795893120696714536430040171744809724824190121883110068582394039189928136856540845243078950657994969855957338635088081586816565374279901112861629379353613384804512171725560450219397119278641095452194339782117333708324827962309330380124872306750184867197483037146669285973297750373663245039067760624164602060468463808995690585587271995588816274188827810311065882745320328732988639099912035627304151144473274134496275967535386550154266456848976005288413355185668730987137706997950390101212219453809162587922834324940075173944710318764010798029661826281196760272167135390115323640717904737140783065726881939252182330502749079148317315536510886428966989281649633799997376956884054125215559285735526044368614486520137011440482613574789258579563843127871422416034245412955405093061203957930893649791555773090981997525608589409723153648685203304622505820901405613974940490461350495810308784529316317902023152605965464534980774732580136665710539942409953795316062708372769903392192957215274698601773190834818540107126031829359898448518942142511604119449631683074948666795750730737549061479070180946323766991396187540966396288002864875410270827718848299665401752498520860397192551497983434061018172775636059158378816306423238155967459044362712347158042690803739385789505740239926098294850667319720036594587923206845263236416200416915638281478746615276144532480199130625176106893742845080849660119534802384487478536318952806262885286113937234433804746127200330242083125763059099300793062015044183504649123838322534322496311190646027799178535136620242568083765955731692099816940281144971111395206346556527006308865853073341030008286444154639990369422492257004366158845917393315131706811152363279263585449407863903111662079740944100615448686278892535876764183707080167515054877633959780877870698000857545081876231866838244232647115497689788516066986377251186956100513611225430826068242151025831703097421475745538230132103651182156335323141602560728330741667942205672197236883023951777331248373963918740459843446860617367562215713580284929390727470712654667879948150149323027350131286817126441021731524999329503324394245174314871521402307103165456279053007941998208919782950840096013496917717617971969630593357989083514305662756394406400553756702261858213099667703925686424920611123126879791871412155016934752500238155013259126652804943336787807050721277109300078394115897999911255757043220291090298542372660999755652725402745902798588296948875212042206342452853405229353241763449711384475652945538067246275557230694653183732838925157564653284400377764892185130998012532269100624223815950657632152580930783046865367107848979112319725370210729132601071108590168286243868248275917146439579758364877663971989529934118935003685968548703534627628269767973896181216981244227655986001638760777369854261377746127486957163537751174772980271824775982875950991641240618725085081967255521004353089561473375933672704654423544284302169099545736227064330008508086570575308107131092535711099357543491099049111457232752634660900179592227172481984956463920189458953237434490461510200808856396650629768478954819859172581084031595786673516590903403073632742795465530936665040075987499793307920882690507133316733546471564257349030071794826038051786935500748533659232202633227026386166720917961949024293083989274282404467664854452633552856672275385392691442199800738923105533563489723676107312073197900476139878408170570190053013824356279135386785593350350440730371249161873572342350658817762309303134842143861280765047532439996497807449041018717688400736396177256044937963624367477918129193293037677680419516828850594159837399372761041048882380117419505492765730267894711455992305605351981702334358101272741974673871203237471971445159847869258323343607101460804705393908735435119302520936135120064125232519877382399679325967599186355342201883785521764995625547670830264712728203896643668273880607288932788609297563302475403326415430766378675103340042256670939124087558620752113308112848285026618619720398580529739161164785570454499362707114586751751307816665062269277790013703053399020592762920273010742053940714429716237677486745917959029477390175929057613616568511518139444799724421121356102128049422910105216205823764262077455914760662127544715393563227508473719466740180504584189338904423853748822703335407122380327293237216513301251060589826355017469868263525007872877299284368439694481736838393345480068767708308273359507175777042145166576757192771902006946297922595598164414879506728019992525336151222468464073537884173062430621156815722805924264884923255866637490894952598184351137299759405915824459994693693905793884107494160510710369778552357633482676659127747021023323359996629616036595725156291652372872940262362503642063206352350884738514221806106617182125058328728579823675391805762994223427153179492974480525188877791415831962236963819185666054344464553302644007631450207711463460590666820853303678864416319023160932088359237984778731938485024267219659226438962807314834697019280221203325081137243414575971739424979963836619479656058988125648968963358693210965731334093213918448471326283597442322312042474181563920982027769059315597003740055983000497419178133049009286918964262747098816415559033050313292529153471959847863236566657777298473464838292702221078410630347037035650030323737695815547143566141472928442990526154923018809142917912108070699716757350223562557540596537965418786644124415284995648579910343825199555821311148389588409915833758662207937129440349788507234595893642398959785642716388692146164570821849405871991951726796692106961480551232512569078403762081292131031008232012227584202742647582381837043938734882568057807335134227446526272673402470003269525052673808334003360661703045714676781956891368755685085741042895615614129555590249829223851747086400697990344350516502475710225457097311835908378638669476080278579368414620748193802761513059936004097648443257183717990809625694461404146769462034503385565371687657162080179122010656540578710149359323014752534088968077148824076210192409735428529720480529981490543565504950487213078323820907306458090300174921192243584300964871679187087086292738587574500849590378889499176710762328654264596747624046400247423291528258580766611697043172069631764361726693897647370417221613205989195682455682622102574337714927945094612706979156290393573476481087310859281464245658983676581536053718224070092782817695852973067880417618834403063833486527422959901264550224798656058171943826035498703270718923351913195466395644363504124697086231423924494387184392331035180237408043679116501898320883485940374125871284304320048366794285221503103227260301203397146312067653126560535759743611515399162838439519585821488682591069296472685745888220828728414808565345429899321980832245570621713180483140879603605860504958846861236735356359798776560008747080097358282208367649517646485750398932376001699631414657943068300423772504235247692821549151374581770343251515323409531241263351026052283536561383813163168301248118884188993598392558995036742570940920008548407715046790221774318052529454620223364618622654216101612959908744469603521838822220566809426575047584071109628567799410403237949808647537720457285971132620861822651880074209203956659199581277732050431064891360166969340307113597507491022220096816216313325784356414841843891716365275655211648881325243807121418155405493510656751873904532548946599905278423689749024254351432701623898345578725547121233170466857433630504741339521113308975397544830908656471191119813953590713669492046408650089871593402495821530564251804850079236330231968981776536790658302780594213349902210856711127444909053317778639602661277586961777117073123989984714977953835704556654225106940185066675078593522042093715049741828542969312903218328182887910046531873616218423844290444760635381594238641622131776646279182984215873815301499673012444338198119644370643002339162533617733765343327603933197271995458875086152043898601782738545131494189849270368317709183765268255815196102521420247172186527191105765562870408379103266901155477932956871404029191366471140033311784284307055153475392212819002163407545663492579597237104053568177708444782636294479689308254481978636973260394106732337756450370524034042688428043118523026985666251540851367857364759848406916630824912669793043789354896341019992385931386681296998528129688506450994676306548434630288314266427840703684308545894675720215783123805319969762713596332238166538914783191776584925048107706952366519734155781393719441388355392332750576218644577203677644064959842343377001417533144018134155107621512781016192539373920352693432929941201629939810211648038178355705529519620607017546685673771186354812849797631868994084475356357832832937671481061636096320784947248142270326212632910759037106673429090232204946727765068815944427898701022953647712232454796060161064549050856114851953407233895835371528203468465275945898798901829031651422885885472635714064637205239191175901522008658094564327964478042217387799691396113234340014492221790615065811206373446756581773582119151062386105647417673906137299529756324479874657411818665882233675338852078427200897884464451322121338979126783491863807440057642755513630005219992516723623945176358390815155126124357402292486762197428829108650658508025716194317469893191443643540140108574219058503293956702947803191427921116872503324619631739545854598657074674934912612596596622440432201321989957440320507748777178919252607306395874404259901960170427882362600078895115854233828772642955322255789794812501817253566543485825403103875267371594823056264567764837838889880752329507242369585698110861148487085479227300524046234804955415412274305792743669286654302183690349586250642966161849970636467950945754747640089646090904952691409884771738773476427028756514921189541012587676193265858376891064902598039689789623865259226771420356347342610517741451246301599194616785140556781939915553413585621600456615871009334690709880844598069973697092334026473929643643120702971142812709058094727929027577580690286312405856710224941777936337321799628066727013353565833538946346419150291514903251590361660375609995257541968845484794985242182138461395151472634756453165909308955892124086504986029874786729032061808300341317133644771333504621584144812158587250448125839924911228014131970833682565220054191570192860802793838628743773063074136417290567630349085094193627767298169505269336057779466291505780021407354298351460168436811566044094092735485085618988420731237849196256397852080800889343528902349078117147782964499723611602681703956245732414996331374444788224152229063426043447832648161314524897586364905652148878825512193305078374132265654517373464131194043616253241880949965571160447865644980086506282869519885758444792574991389029996739468634093632859152320710822967989910523900001195636577330009567485557842698614178015197435516318233146380278886296005712362953123401363743074655763435599746910842932134121294788950515366566967390490327440560210862048210510013047691922503928656686669710295849668605790852128527892626754878677810105842768562680303829948739314513299588961620919588539863374572747068559046221453875210563929934774370683119723101626424195593012560534208147518843659406643891606217706176335971161159910213393855285718080679429224159559785688781007944043398214078578984779554757487155412880924799784405756148458674733173586983025710595711211525057023492272271788669194552855109866061315856525604879659171324144243807155609125339364407942922731136975178072298052433956124226220086562853477543418109159923470105837359922219840410036672245280176895391700535236277627979118700886276318851350566579813972059657231401153508925633520011967158074172138799057925673070645551146653788870405878050591581631578414135330919917847542053062526789412359048047633506597039521070217449940109688921131810892694681743943740743185808658434098603546022395665144804391771610532073234810670280853540467199938713881719590064218949721148716194240203076337866025932493653790414800600529932343780272365977249361122945763936056079901990168204173206024349054797222977428558628552127540895151555538121779934603529582348856805421160144409048972178548768568157070171799014360361005991434745322196832423845473810106658405196959240407434639915297339702822205330661694762775365267147655922732406725754987952956486858716095969067053661913502094508978723278866189658011223557403688659614662872890654360248766853086756939669457684312860337328861745198212305312092930446988001390342487134643282561342450391037057561129314648458428691990769764653754237352271796989636626475132669962402707429213244568143143455098970556040351074922498510848541764494129749479548794692126641911813385118885664029034352673382841721625427270387271316026736363981443358449290823636480503938621285629957841213952931898975892823999755090645330048116847563751909569239223490639460505883223338127817094291557490697138858755930681557366539013490002763726043096878772770154639205900368179930056643930212242810277609951351028046877000255712988376523443072936727181003624288402546992400007470791536519344665097940177148211840387372870943949559006221064091068756439407550981936251644461151975243138695292732318843167119676181891107139549948609615661385647360780208702375979677637436926642456674788188565107489332391648080819667540255117607089023555341295534612887940468055829575574757149725831459603029527834942206479968956434209806167326896823705642089563113459877589119263010849685659398737665524253239482538426062541806728901741005211233723446127233168873565890555811387629808183727730007539408536048400776131803824808859051961544100827454555134504980255821749853961069347529431867157239510448930574175305176743923423423922293810887784773920545971643281968145598838402464408909532188534989261521090537271034272949498222456584900506344398847041112045274871717461487637544398852513563042171043651656600015836617418110558740239842428274344706129718799528450241253549914909392244231028408085041491804680174750804615872471383830894905009964618912866512894212484710332917354279925624221940580369983240337705419157427244426314498010256194196321980409899619207115915801569422055602803709893036928541004609308196892125606962427474046757289075354705233992492366253541597870676593465803223149176142484965946539675563029868792379482657653342216185591096870270922984507182607489419533541523868770436466674959204913691919815384808652828927845185191846230891229646614163059093596173631150182006876782085334912299507760798507751943352124934331016820436942240792672720705536035412176729154434189419417840179619675128052720493173705605687473871539209240466979122305822900504583500749221834171052570912878620866075514766327284524140048478544223950938243779583666872076185312957860853124467324530700939539486760758236130601875665244199389200859081734604280996828938877098810012903383240211524500280513074617735543362241792152358355436679809916679800262856452929424192368267690672919679831733222993984828722827033200989236390097545492242250485375637868241000987273929988795400263632599590108192829057471518904587846868940500927435267788789638367326125987447102322289290313960016062780421309734266375773840045850760981490782511238318972231040218486717403071440193008449690162981319098442493013590723555047707689754123316259034647347704821440243696129846561226871580489605045010202567932766124458387907892896771641340931474552279521024837487558830424454704063406139925206083458332662356541289594845624117971956562494947443022688182995994690175469277360567369261994330247288879802491716286205382241622683143682015439640902085965586222066723335590275193302776989617013937531910803199894078424816567106517598913237957597572152891965250062051764665251573940870369755746342535612845464932333152290793340546179400668064732097336264581486802255756116282934993156635616639800019781526905237345452258743327231443687749931938557658006066969196663607599948697034024421932932046656521786577252935080680179681147152879444199756635192588130830825833327974290742666409434443870428852646625531123487622187113047735643444412202723895430645841032414631161757013114985069680860530878895553910456512171235898749699379317255375757295724185751136721810784287868797465842954628108573339874747101435559689271492199444431103112991638612986762660801829271795645804786821214002247595940786767285576585498146953882457758118745481085324841349941000771773956837176361610226783496465140440485934408953408400324373641377671743947073499223760065193513306292242705855635669015789150601896874017849170326173493997931551694591713852196808644504844485149038472318512780326775930751861136213734609655365998778289969128166854338565515964200640613250485369717593542550855046294991236280091095731815094333642912055143415593892647714404594808437374985374944851715760927947645382939487639704501691636684781416708844943327957675558670673137874885282164761088328374841937685613556386786263954721771879481677232833487747845599588107836025551785548429014115438320778687151758812550411077457981533598210282798781799452803232720849410791450320931674021282934553047232496382463528349066779799007751548835483050022087125930532199613891927462511115635510855242373214156675564585676116597879446589850338967068179261218727032449686047876274038465633621757756814161980482332578635310649597706300938983456288561512375070400443218264107396416650736078530728734672918891837062721712494211665218848161693896101356912670472761230929762301304702368166979704974436625941297496995179877481920671230996659354945779722890495059756429553653203553704730775001366894898024104247868079715945046046391858046156871964840281645544429204524785728605017728881816057954522967461155706272380141667922825859320894231860995167788894931964594007959837084702528570629112177273568055337676289178180390022306771291786103668863463906409902006872652527916754157783744337690484861381765672438604818039447334490257697624856786075690376747137603823967627229178829724302120404617528052677460460538236566306519594721273165284773575511086943043996624395011891328208994373758651405296638869678154398436779087282079882790124090582744276846902574604992019005775477628764572508164830112823639286812617708484011502407883695288145952773916719900963852506037252504993718386655772594634708516106393452216584669623925295015489230365919446522115945155908788004905564418906434988350662516912498075054341640309527220482794755738510150327590573081357791933027720108165401527372896308948553398726268474081851372191827896642379998679372149577389152326172834767191010595515734101318241983739712827430706486988392494367924962736822495996407865527020224817277074739659314395131162612419405773758361152368914051523959531338345844730837239695870062246049045378579347729599392117904034760844202474970972347332695228657868344689109560230153739183566293879973666460823001370363920322602690529030253803070650968965044884699965971893555075048323358239201895874538793995779113781590594306439529051781146037320785987422433758077539644505471483715153370858734150759189438770021704425989194497828123487030910197495841171526234321471794165814580807038325307372876160484985211112098930491279206027266414326240419920705739779485325060075689492409936579322191079094120323231339972731679068962623815316799413943028428733037935197689733764957751784294980071634210802445681330344350532868259227473632932615840861122216213724419808484527044772616017758312943577901485361194133344690209501469018109941683337241911067576620264215120232183094256055896078758630066901637430635618988553974725422753217483427418696122417530419435488596667949564524736292162382453603365042928159113095744366585525717270527808797051509917636993962955772960101922944404378321280563950393061790894842120484883785247121703840323531929452304528615659556908975911759975572580457925794483041302608709589346566909626408121064860120055679633565364811264837984138607238003192613629288487925584589639592508954312614646421727077912070939288127149029976282974783936665002023748901625876652890800147025541198488615543569198691486731647629555332812427202970818572117487716613879386962121779188852352676419873858168390154838612244018194919064282042088670033248858959751872812049105585481968994929591415583596215356413634530722953247121769357950045042305879460722564090108701822516020713973857314240200458493905504464734454136099416661397745748493579121804109028038806717075565769366799059923075838425857284003368007621452215987821397829302170419224998799469819631708775914609707510509508322437653604480894874468194781236228243106341994698047050063736387164931152543014433642062163645479013009412322453857938462117315477134128339484786760016186379002645066548437170341150164624222987052044934097865739687277846993292857858103970572866962202865458552678988798150109391816240476573401966466388334668014547348298811359541443319440898548536883953809980702220143701324774631790433561327688607338246567449842685261681312455681099483012763316739181416867774628560242482865398193131334246055907263186355047892394177169435652496668044254119066243844095285200836712859284760494034593292188561606075817416362706556604828981226081266089745958758375284162479033594736092628136554216171053586830705602891733588863850118916212016329755128690892043330624723164797969881342981911340783035299085293651459632442226251243372933751142229071849502484172843848273880971593162311569581790937462251921207296973432336644672524242588269140750899889294804041272984239952487762708554274260042273658652220699469554310716010693564339330942489325618900970634805200782282132336526726480929276942771122325645652565786788042571553568301366502339958767100894159032053521514632083008359367673296550493575931362512771001766614483280691790561789420908566170337040046247113699942955779206033043799079131222560459431647406816220002600498748624853291407314324294804715960888638726009758974166399043659393273295309654628894137223540429111231113458565506464229315814330123531256435523859984313171419702168612844112930177514029407875207976295126887539750697070299693698812274022108899316262322879172201905728734933581771834257745330816226012215612413493114715010046925053571447542937288896100420067302618772678285358340622859626720526878756673948836440547168451592259537512916972892982201760968421825799150316538002477481888028227957209782113176905506608314678593672245442605924976440930799346210332873050268013588846894304680338575858418629471432655918005587492470949768982199672190960045699832966189828338082164220595157980044098172717103518086339860308853994386027998751672428445383874676040285067277183988426740439687763193497443038721035898841925670902287705560816430756988487139954450646900968752604293088120479267512459495494050681149696944800329098886294326242290864939610916004620457545836927454976987668557359382332003687022134321820374015923876020026219192656955085462886198912514105610491337800241255371528332973709946180591882701783608167530904801908507438804973274374034401502974778848394658538489988833032085726129546490768685718000089851060574556410243660312265430330107079858052753312846655352504352007727735159389002499945373120545031259251121460311790159220913028082370508940778218064294386582834103644440946096236922464612942707773360897624642668948196806286329519749461147848122573745580853011369398121336036026662214746818460699343974730770068223155720494938922323787269263721662633543223290699199278822366504029399025780386522372297935446007491070189897922015694249525307726899676605882866412370043947651967790345160097063390958420981188088751437537626278497709060552207804137964708690110835289936513038629588337910810333793712954977722542873979153284589645935209351051330949903707883420932764317888124515250697476007613364206008533212759469457506426525301898398513890170498651510000904127634645651109035410016339162107020385202474379778042098045108162860303222122647966855687542732400058313111708343526119697438309609736937337668811334134975542228680378749317638285849850404731913191998420238025541173960140859138373108829819731131916900248897905995736002915703879565980739980156576106895774138985172720061300609090105717788870415089856475556893631982081396290922121749851505604495634014906944542579299255002527045334177435938996518265020791604661260630942379761939288429281401427162003936918713882435576282116954457158227792195724528903879992958480105063249628335149812079661472714150806322942090114013651408035088033877165480926184459966429529013336586447817849072972073550001194625451429366279712586798303897690795099069800696721455909705863555742968663050501729357530156143274055472863109945513519187080501493225544264760376926703829313803664194404465756171578428475832384343946885191842465378663306044671231573495512224255934733947446357590012833341739445709591052669798763878738039567228572117084216927359217537252291701742150588318670741557825277236956946992770739829401272873728282513214423698989521687732310748219113184771640849039259648882601207123526971403753498562443254475413790916264538168077014207922848137722907427591103512879705687821802844370708936955676440216327665906167991110656316294878196015114521943386010004719479270945073194363674734043115202422647062971971695917306283691575948400896437004325732507353706643521389084946752367718862190762319604767740816901847968129066458531193747754190754133541739880591332133383668237479082013727240812914073493729961155480129070670090771231999682446820611536103684399682347120653863316835323436041387637208870978866849846474126441373261052997819143658750602757588267740336723793067711427191293153768094737308042010480632601948041177335838732347007283137281841746782344423404749168092984230330283633598672224483214057710531470497888143213832708924635407472370520938762744296166245703320099094225567733137312623994824261876001400497427004491225530711562943737055740216650238232592650155496171543913737742352139316719675754669650158256271424277649837754367206461461139241385552706670241969060812731222755925722641987955199590244271915886295840027232629930300042967232900575169513747935479523595242007306272397392227573857741667198010181203238298628762287580393917037499398073250050685517154679071256429685877339733714439343673898010589332109392099466425268793902706176927705738855531462697147012729556568499430658747163722290162489176844918971149860272966061881498270594721538123064969532443769112298559394569999520072709776563031799270801439454557407482889019386344895063214392953179995474784680372820619709998285670861404022962136869982468815035600867622527585256624255081618983048127546900071198304953682107339655027250228238526798077120037896663027466418443489256974108093243470175639803622074748365077493607408736866254383870066491053726856683235468522342665807810740660345573113536967888068830954363214324001146288473722171944564257288712275579245835775535709947658657432353376608047841730264998648287173251148363623071566726189506627354977097353037142111300246542794954168640251906644629426808381581494412057439984718364924499609592314968213232677910941719946866826334362089476800995981885613340994721000223357173274228867448243758692717651597512797561495734576065103914302768459848346471382157624567593712975396356566392261520103127000362214897432533713666592158464350967206514885311310685944874123367982538030092916162484141039102904915464389772040244781258248939003699987012057065160840620487604201673114839765022424610155787135563577059193580640676195472504317840478016459522471820718140121206005330765871481545056328049064278780598110834676516539517621206412560696351929447237538350725010572336977871942118255746291833983012052006375146890284948383594424138147588420373201088854103671806620650130775602436424312900366495137103194593591064796792312498368326269603133345699195567783998528053598782839360037433989161658789653707424213221106540685872454758229065202687259751760085496791230726963826474582951729829557003966823927095448901564364987086782964876605960676443866852571136207455731260647820695098412800382585488591400355927199250939251153961971770395187520971498384702166990948386863563569886072427300509751632994709130292862364120541902385900533121555422176338754966525239814074332986326664568027853768823558707569199564800095182703454470631234605407475110729435803758629798890246818855376241551610263267846202794766723777934726091488903576814148390846320133915172150135218489616822158899557808617488735772428671886534374597251922257666314060512741864858701468381601489304915694756072212509970191275790009872996860531788661455823552663531659242592301954031608542786758448739150214926244144375429732488066132680576924628652769161066481800437945050003690115248049135008139269016021564823635230008868530667534684968420582118440822504007091646660339772015482178782388582715248100031629832327445737409362597457705461595037295011801984995375895763270059469695379465676969028497108801013029691396124326276782298025184742403125785751212226845584851475601665622715860065973656242333662020327877120540766280864166369453324374956767474587704327715853738858872632189987808199508898325419915425510981918504273799314967663200624337991091897408947597299210381019031807579153293821443809658917860593708434901023730197216887049555491951570218770281630187144194332304683010577204884735306185544736373137332379909686463622332999482487739193855897327315740193201212454151278974119329468236297687598038196869650567301683972337699723982149212384252193592131373796414127611703634112899122180622644010582028782214199335819878331721415046397560687870901455493658921023402812809486397568818233181200369442481551482640939663284009530075442561862915806859571826097130749813937828010490718086590918021676582231572471005448025094994759964174100864734676363017908884513373705525010395549263123326950019175042132404227345917897783815097067074673198991557811486306754797865759706162286394813644409799037247336954242519890238357685613159504847545562755131445063064148245324429014181139942941526814493444549306662716020673255531445781896101830858342947268704736998235951846549400119021616971852721729117359277044857375561667198470979467787003343909010692180118024126795801692038364215706353269368351830174806609271165426998144387175093850081575011438786845313467314701694843360033316504837151438346996751481022298499516296775405906221313654098883325213146513233935103022488459938428120138785964417206733025345635384969334105378836958003015646774920615304670888141748024024836990792848170074042327834012175132738165683184815363318452526605321474422599543700269531644897325316071631929098107032008192680456620937842998565424315493016764058042515301377995414734344883335967305057881114589112842679218962614249582137337683857330490925237629432221179868213706076699058068833837450612039275133760507880078045671907950714614431804508596408913738578099959374287281483251176977834078369411154188148290020998656280136179531632508796740730470517214408483414079982848914059957999221485745292358966143564802458956000140436185055620874467339706989328779107728774509496526550184903912252271330020561049420879032833075407367296683793983050604274260478688006238592933835110465710395732509529876841307274995665209794379529332242394641247921278784424977235739963253570519274374879968045817692254763427359492771636007133442640653299376829618511312320836603092723903756448865324866139791233351695048241036325259562310566521491240067461334585868762134121704260515681366916776291024376269161383747526374979413956860891740937973194369809881231626091188433937478658949627043650350595021978086526393796777247223480292317663930357712443681894720897214346881156045310841143447665069885994679200652874936926455452927746519751690741707275154083266859255352931981789100798600876195453233338022673863081638527563783039160344008234161743323054302341109101972691778370881574537202378229146985085849867341286211613683220516382576032292812755534310478217857148503801494336981464357626054077936133867573750331542840192401236449805668123010143158020058559822686649963406982514558645149166806848029296269853199075998611092175926249515113872667243895918023579793427697022054444654232376649188659739602000781305185979262316619068679879669249498412122537929693559689979697316526837653062364244120826117266771880263273504575013615204642502532872572644034693356938953263867590597898842890803403338088636514910846142327684214767245192997699563722281008557417763033776600334099464161863615372556182663414813720474654183952076817329286692716747919369019265961667134483403662685204343940045784417896650305695224067840805053718696356009719984611175243434839406042578690673792303707195932922054517598140203926236195887265958322642905139856913490247574765694400666181457055887941680403673636779653821306024271865034437889036513335385705198907712165629766751541395714180120856291418188829458391971292699688580944272998401903564514224185696550471638678319325212923643686790754328029969831735441333463349484078929090689095447432647989415773206304682492991109807006518916395838781142925344108477845558016658703398912751000760887168075794754092826438700828846623714537542318908508647897306096589597696339848474099107423945378208658085411235814093438963949949988136596181665601007650675052275646001690099010329254599884595820294098164465733516486929055586481936197568804518448132862522709945957360583827858586286569006701684429765386883841659216964555134892734338047127704632934671635286514382813431157573377177857253082828518891914962542205049381338945525032044318050535184073932945367387607739102415672923182074839260773851892508899005078395162344075888087444386111583405043169067888369467343109367010105282179398717292505749247041747105182974035935633477578870291650272676064423338844182454852401834152653243821567722737387882630977162443028130542015586191640979239467030219054545606229226446815449227452759139483724294066451615700719485990941047823192880016787435905587581352872989307138699076131892085466515738004365166618611994025102798287827465303061178114755548152651389472827828780217399923836162892565116938822137723443032534658468631702319087036840415282452748554283533426210005322607664978749557192862617072547509514282702475287939567322171515792145674908319966858892257906292306696835949194675011694248518738726002572567567364476462334432123182443853723126849762815316154558519217406925829276286310309556091337728365393834937520741471888429397072839367984904580948854844299433521558385662466336058572973849900940014258712714870524007608934932587756450414300959968740734335417149624771189956370841220945150617791517972274836754393721096650343990838014513502763083843727288371603910327941175281779836772083882472993164102886356648655866761842521955361523023183599804648713055608719849667183500549944833404218300401644002214384599953679555477906190101839470793201371203539389603652806906648104332521204986629412862466847906235403094720968667115191016556594883250322117727065527329035211686667490425560947234474755684644590324342937306954311057528975804962118794872410098822372319120331883002909750462245127372291590387341441055318075750229921063393193933236322321364282089671223279570764753441968466317002613646168389277522845747086649911294194502167344494870954798935078161515515395920879398846955160007380774513150809208833791014525498519466155901387331513532861142013782104359664652433393074911528588909532241110698894965519746855569667762306374274577387155448395358590630073945261090071428042421898149908348197311131937179011220797617566138008038531598180853081841188334928195589754019161680434116556973769222652112538874833254194537714061186688329552657681379778392479138033681878746550013063506847611448923368599444550578364353946124048251564292637541661157664988944193484932986322636082224229385951475560509091951197535498951023785920562990242209948067154814116541954552393089495025964260914833305660530046558641947182194850758285862934802347555740733595795416699623739685433058561898398175315707026147835334136518885920102888694463689240623329345562943632956602237220714241849247684527066086829058419236834603704198766819956437833160233346228151394391200998133839758414361224336405880942192568319363337013381030366848500574181228187561285768589043061883265811147721345965798795446965604798241877206174131193552490491644168767867632257509920857885441605717302099188529688226453777873811712487911330904928421629019087702452538300061057948095578597970699586394508751298429875905958301233026925727485904933921849708972562222386754114555562171618546002875146242571569578621473896485177348239298814919108532080178947031986305115093201202040435261779864455500500663524737759262628550200969194323376233617544349765390620738738217152507301235302341536067938562404515299081125712949243571626339763955950206536846285791667290610934142967255319196781184718872032727667895552884504589405800432212900907372129222762289225286333529248510245457213311311183325433868718328564801770653541696725713395110790482321013680265048430824833873541792124628347050183910897391540927252421654003110918456707106864669110860506687058095764910422391632916746032618955442609029083016381820980396432564606459249676399416956981338660987728176082747003377042793820976274547307158574540124255807559252509605330277059332290825042506019932650016413713109715635589425892531021684343305690407843791466487400426523265899499091270445915249275663631782724186426147958791637703484330754123795229346807725544516239811349470308584122430909543762960564169423833661703851393012001893354221718195584328184625852866046727482005516219676524218482998957918222826948923867477175889761876250142775282995618003187742872581201980222135934980746789833498717842719776495540793538116430540939429295721497183783991768889110517272475050609469720899144845761816555229737451711575479672594026037515745294187514860698338722408600976923892431099228100392890750491729939242657233042323627754822740684784346599387325992636607496064605587597562304054849532825380581848120599149353006504626727153642911792320824491804165940997018287622846545026331700179218626310087774846243732896595356667408296100271908749050695614575495915536657894988360240377351831961513284812436446836338343723572297538702118540187813740188760149889019649924928155091479733381560874129182156691467573521727152333476097008936251469202889630448048390544778054629234225707175133369179691656182396974015045151715260022697461338679901370489170794193729276337318389217200392199859929954525834331631317800553452300863331397559693594860110912797013068270772803030256545381999997828274694056084527893895074103870528234808371836955833350126799449793298083075927558409344723260212632066720860690240776065411347198123219381485252246400412298510097554055977040321463377185578050198116463520852519335300473658340140434548196699819462380493147246278939002019176312045770307419367648914593505254520761151630595376298587139627907362826101256926420506836607100725081197238260224148620671937674675738823349265863741011545454445580208290641355031707571942911652845751222473943921342998284204169524029650539279174587730225164641963724906943330107737905435569417406820296393905391691880743841734270616242771596098822136574828086308280638729568994488887544210478581395447300582695363539885699857059807956293551458195770260213997333296924611991665461707891633288950763188816223512417737342570176349947441948441088156981306023731567569378494053878644954634220948742679849829329387864177473529486103067550428497968839671414483209954051020606455730178727151584452841796356862599576702473465302882186516992422523135364823102136747506636352043790505982832923704764665488656085645410195554943967238463326559715501567204756512108264131044503128876261043299667601464846250379471990720507334346524369640162975899448659240481849573714411004718012467201424641656367037858817008733804410909216899312292523838935251873529697005467651422110245213556840566407853723016296239511030097949175003048132498190341157879637112480145276962354970565804689711957777252590200038729425364479728362625615972177533565461230084761363933611970478860577642314463126768348761459657168196745007246440573690519197795228178444633531746494046675840311464546335392413180696492072840131942519018894369072294889003194857665924297196084480943190965010701565646963775575035158923470599889363808291963118522495578033770290222510638236134457750718427801662766624255641410467471105523898918085610085346399897227963119704883797016107848066841341897866018971369425495264948729698113347650585768841597316474100373358745286897667482862979848000515386628920024334638882094798976556481373495497744273862420346636170633601367414063828326706479490353476598129799037824596398461393561511227909024478543813216656646470108453781288654131378327238234278163028505383638327040479483484051845149479798246759941708555581413436134130899300296626551923178478831762979327442073229412684057832230716493988942473729966865181238468822246766795222891949670792224583683033766598974083877640676335897091048399024267359345555195660232424773269054350781159737356488384924320906218166613662446584644419030701816879979852293624885973764427677900372732488185884461304040633510431132506261588463335039024434771500522888693770906204513334031420539443353008303242336900977584505863061098833933855488358138911543255672900073906472047393595054908921133942422176852334675160321272752941323148336981562988132753802595392610091754431535463709593089639338509967450066202288921553753944644254160709951674314860993154234316392748429154062547658854952771483208505867673843575086091395185734477931684997852204877119212633368542174025248946242075953728107116903467606736002296800998328856201311951393112512573075264281535188041170400453372940040108392965915328471734653811211653698463625453695883804190175132288737065855350258022941080641910682932321295354101961513530171593686483409914528928945584810027296796004387478879770553302689982379840429169542696607445782868262578365133919046171693340852190936614641080267549833244637661450672014891193686131504059864013445572079817643797193159048837262482701647192019752814246046225473100125223563823535047558495762275656411297816724110982080606670571387661796427151827674554914394212119271629410160528385232082050101666592282469542286028030526907970473163456730636705618638352851485381543712500018793519435473717433207010815070482463791689992264480462922582082655239741686082883035107947866760770375447053257302206813451870577043945575307453014925285974304948026270967345935671993793612610484433899467927939827460074796380096178550840017192911866995401651778454101951749922593078327267935334591221262222908211760769010989394606580038312414315999112162563320434972470240940378818129660792298614585901675061679500625802265303235394212804846950359656505247517561880206500806289003870662987966749560596422883217030891061744869433708948846208817891124552647690201389272791410115543216719428721150163703988789657272991252764814012616467239813146177724553508072260859790345377690381226083325184798924640702762335239725175914588216256822405587269188093731010909233574919983943225095615150471792884094121587360246306876270501150227326626685964975569616783128582546471755542015249692505982745961697684938324809346654855167904854770816451493087780814071166153130421416386822112845959993359685387229987103425414847525414441929626150727380868213061645590594765086311919566614457520020180005863396826192999012380312452260777695107966398712529466535524033304662039394955728626947515985885963290111475445877693793637654129944535949361121393267151566541971436103903171508300025558501848436098820822012422770676708559900128556245656002887853325875869669501503456750427206463406405109697189546717212032881856191323061365580849544890898214128820930584363682314019535081148465355496520227357176920152457357493576677291604557194014609372434200422963140617761586044211861439801118582837858103048512734560890433941235957224956076689428781431955665212388996338005907805288987035438880527397096768718694669920256115410477970092883623486357237378459965124313980843787300942073128446738161655787114360259703360345021874536402283945869480773736709427754155702363310529781149059740863385598020404324337966097827065571966575351799328344408432384552652653583871313599634091978171700349760384262343097040135339168914052813173483506964356853779696432219742800143817340949523899652287008287257468098218734920251841782965532100383921993650292484877870310281566112751436171185319726441794548746709591526344065695501422187606282449755606858272585964143503546208505862552873911976539425690721639607504842220534519876496859584262915188225124821595307780768158804296712713602159097142248985601730734412754759945277678096402618825410909545542006372750602142845768282263239847477734187631446998082782303831796743076430465077251346355367849695593264617686858298564035965870736527718855637217876583017872118190718578263789162359627098763814713087639642854104111258233889636517576622670527700235994520967736118834242734651884785214842952231591536115439465323674652979162928565523780227328158594363314834796049899449221326874265150486867274891817670081136302184881115775283085441371208288374540411115821024471714451874612294255232129556675113483499304014368292058985603069540387008447448030977095567516521408945978348459979036711129887658290857112657804831469765353643671089986940832108007586549317708060884080123820725393165105105256958238932792717165397860312312834686077860948438195863402663338075693170709299749146014482757127764958198759486691490220257632240406205136565914585178626380924871107238296880418078090302961766584781812457451281146688744534479195141822660286688456956279450783773134740115281453168580762171092059048524863812631326957354811800867767029678544482518859184822151161332069436971352819031205643162359547774775992962147494044745553990656536535789086935169220674510908304964268039377016716291010789116402986836439685372859415388219759930069910514677910990217446756544495737206590956421062281688252799604279586973953908262287546299083366149174912369377347505512387688872957681221909500745402042908937439026310814315774086533599536357393114568948216360914023963324877468142053122518168098535441414118719131372645028343214970871004281361399244711611680870146709373808671383360333643997342856319878318132620222209019475090065165426325069629760578538222231328156455193048591031973104553663844767911174274839062330030373343967308464018583519890250230553698130795076259719445315899545680829384903578344351850919873921648136112635748815454488163646124807118004330208678283848611021415099338113039817385469375965242610465161656386304707534856288236287737958820169224250017065217546824726988143326138192477921995421138851819082713344246068004761123918189778273088765559577500577198324260365703709862680227761961075035506512880288863890059787078089337891628328353600136953451290054144066297905511215766784538900984274769718947045743506645487422325354375096999796173838617896718494418788790136020299617330899967103452755671631122081155910281382951253450003367528606118514968140452723007935267919862903614056449336642318419629597264761688744157552867811305530693621435774491168710206311238450214918581777868934083428387553402010614334539823811105800672310435316591896356435140514219364793029624928523434396372049809549301495275857633274072760712317966712537448752986779159100036548603233317931005967437113552120646487063852968157373575623213830629989869849074040155928959635543468797655719496062183327650046932777354250102695941429185110565121905910180393120525424336128073959650779197532692935343009845063802731193533676414637483575872221807657037346758956516146545454290428703670770794285221113620655803163451339847608559873825109173749166293953206135228028862314764799520623208869999867982122754932484593216413503320709604864246860104414085843212698585381608439725580522453571570049547487326878758060050273939494526407356100128109811656993392087520342625562351508345567093781058866851430357037988145575763888893787491783028864937081423150158222712374202857129892329444178379763801303912655660680337913326168822829097777693528083541911089206900747171024575210463077496879682692724188371747097095979475145018713658801899043823637328192561893857302416292020093706092810313486294239367859073789366069092430875405814652170581009180927257673075575997976713348530966849821593590203903272627487141100603694277057013646698091882869411856440361805514144081545093567232155644657317035305741230338517520775917205337035124128889775689159659212614547286827009451354988457205029982129904444659016338564110678673779952722165209324181227717964087091042447104489059924567818257032498793667952260460125279229316583146612325608771960465345561000336169434143313735526516886217242784581699338944409031292880171007177448442243829021369074912886437719983621317195576642995657861951169400194457012091174461061329061889913367189676331761672802394976092597257975651856033585476572283795854288767547653713130263029361724405580688882959719170620240593462707165768927636531899195924665384186610145458325292402293107340896850627691059332364669958374052479599221238309015709930598963322710650500614019145019197933833602126581132355782651273962357586195222679592070475906705851021804426853057376714711947602080851631066308564871170474105848619968498110519654264971143941130388340250152193379643735955355446779028550602868333180990060078032652445039400041311382232705655574267861964069350621232485001712136533680767699363934754944960251061861646050393402201434476854927044979454375555873379393502464941904728702555079670067164042043528518483758491205490189939644602771998960248284844837280497291449301663903115796400008779321268170705993300612765082041022038488704759173028485209225040955233664780868222410751003628914655338114758886072098906439199875017434904513282821059535307937919362920936174609607197195996735376598943206183326085344988530557380343827570134231711611394335721252767239042056935478793669308461590357713697968815646345737549686497454497698884708991171611699868851849245787729900920807033095507863657665214628818323094666403413035952745792544545115580489288174527231255561632053024844846672285540382308259363057196595889749841077478088417506138280906003826016631204443660692570856146288309167104810912759455234804101848472748598033711460835536323225074824457424888854197043804860004594056045290653889837764570059977216244496899334199895358315090786196215349136955913335038634968034969800292806997302334869821443907766127158544062107052458697112366558310898136426562789799368594513113865613318468757412090760849314924226144893588889664283480064628052716348348132072154498485529491581252239669790986308794239759085281330542118623352942770649638313796108258437767494217016759289499902250477974337253289008592900446742409665327307921478238069030728556124298190682257781829246730878785136193887619751773707163517175305610495213101856207791123787860329160270175037990171314980742670277346591645487804964192108901494382115143601047804002008985642931244198127982013789256641332007089606522273743678541388722233613064619223944931394542517963822902774410130821072026483110402945545446063855590224298107437383472467501576182159857895023376078031527421019133954028022708628181688547050262518990779591689614055829568981281518878756108608771094994595918269793860167929420093721719510729574922512314740961833909631642203567704779934549650098637925479757223708081727549479928667272644658960278988629619942569373271854528436586032700289919090891279859074330977798247147127725929266033379589056737568083646929364182730276123353388458428776320306760476698808637760882417837434712080568994893119302519994184345306161468120412144115856659570010100528328824184190475907306007814152968538572323915962283557019348137160192774747194122034570612492623166478085132485515170145201657650270799343274332751100111654469651660121751223760366473374805495294464261482497274972123265489669329970471796620622681860057845591005242096585215822217279646981058180866754902574964470576615935103251562055378760524374272539539069020449140770324184802542340152379207953508860805938525581294138638995624715892092487329378156046545842732004240541942951160090475592548108845474616283355142233004612711754255001381174206429179474104666261382802904540149572327920356280056446409246207718477687990994880621002404744656351507054770930955369408497061869926339415769698866916060561720651834582650815849922652567365190229886240288992917752245069011417512666475723658505100159245824500347225040942570582827623239139869100617079635418562330198465742803017631246038928405912340120222109242153355945728886572563699689300399456951029196231511616393378749803837673749284266768066822315081161065421801232590877434812835874869260087696810030658562875545928586550015043083998768995175603060534896115539855615222196769259824943751672579822251356143297476931759678498467081317564904416291705173894772862563238328315189487844155963673410220423105198492862585001650889431964093821950943770488412144865927487444892543868548539023072769545546212884856337218900732738488690958084270696065190158156917994434043237860148291050227223113086093851347766730425514817221334376343293309100286474449745914031747987170151279824776071651243194133495774086352347034104656804610070503698678885778242811415979631589128768627146578897858634571217669210355832954473877336528988138763093440062512571451552789996804329976332670208738338768023340377798284616577251758090446789051812318611380968223152816802877099505177575362310003981180384807079830293668629986744639447430442788384829938205166785174213796086625525188195239359987501323340029696562854812239964733977207554062442882472712545565383846948976582323741252998355558708061321252406931224417867752977309836949861997709666288617225338767787860997725389381340540216980921482377926589071411636478614607771891034938859760615814000347831614117680046930037172695473491591176366495017850194741673750781564960716208698957878765149341957678488812589734257199799154664679353513502144724039142262377596736443383554072219998739283730765904506150324615290605230423546745951464221296202377549015596611154439420198076178232640983832690976458040806602084274171778233479358088461501006251914197357161463014175994178429236197174787217982106953404963949452488877376110605159611326597107371451001928237849183836058082148391668166806181816702212985106773775677783492902660536106243610882699554152398588295061787858231105602855103120443248151925058286831830103263415870330850505090030930966901549071740257787321335925660514331497615244088785577145362850670148856918643463541172279068816739192142476921684917274293511859170849299945377252829348374189812909350374079392808597815209191377517811289442071702320826872630282056385080282824436647876512721234798923633849618097384827257588501692618558023682786951195165857605842898443160974810797213317845244745814553616889850907897729007653755196574294550410002144771965767255687804442431335022160350705856650421770643578552325943817465974961641260396850521414569773047922423976425551599246901106871039695979537871697773187364790433984150969495611492052529953826195669846121548353955007153126223204592490921453241480613671746118131762857662714853866579724594950166813087774000643590998571884843913379024343661589927872225536403728410398513600181028147323414351569480218550941921830105964724083656717588980850301314765975186320532123920664877029426836199331437857960405502599942503225497677445040792773235643516020025349536395107091895592881692102321501979369139439281448280355183500418234969212305874254903085758801875022520667326344225694178702333732373121695685572005001718221944266109147885051893155319263709777808256643787197057728709326491841315252118904050137413635818855000368095763682721312865726394714726048600531896310872293908206680541334596481541539965447864829319376450580294461608004984103698330618567099050500202270473618233974393772563846110042812555151174003151268997207868714813841198736348927235410063529311235580896922647008412209507814635696838515979824668334867392344324038269207609791794328611378373816894725654847687210336764359164286646503823882398485823861394634475391684539169851219586170249032547036344673215959123951262904300430990971644219629687974903301191090535750616790912619057973737938856834043766212020230728678179073038469122851134525989147007118350033508228800192521196958945944574975573902866480877680729870449767801915888899392118793768991133086820757446478305234533605639131912417599239593720850380095372596165194053010209733090901138248398619150817493207066966288059021551358306779918073502659574120678540596927894236277819073571891910673835365887886937390222422032171839871893319257072982119582776071247012061252916003979582886199026464964187197368319196091791599445094777196932649953633422989807227015594120074164607185956017670493061025040709648356954932259833077407077908706695470122397387871029501130677789783091366056892191856887217796785334802850805576591154662828248626047494045051406523886976835420009495245904071678649718753143366097520132344808180855569842027214496790510403380303218114576942902728393412465092073688276011339608978441604950970687405418434832761863469824234722352632036965975099927195959245914993746566817332880788192664776154556808109691392494272328597736767956137075163031944160322099726223163436384314840051231398841855342239826045358872060995003125458519050748171761296664653490555666508734918923698838761663334297389146009409354060961909696382156910963882419046876601249263368315733737280478268280576618563884510076933474117732696920543036762274737853681872924959266368580571892182333919415052225391733522591499826587290079173294024861225359496191376273307017834130458143244279150074198834327314296964463215200357840501215008331218212397236241100757490013532269910386170657671127771625734081180499140812714409699031158111852326409538995057822076664139514477160732853660409674892304821429528749669741598836009047929148713929149897665589450706153816614670706198578008026005824435839254352328700715455824194969269777507414310211615812824555438893649652555819684749336316892053538289772201149129312318301545408867064055657648153092155742593680864482083583036095117639642939785760257179262873927938525859337840881800550577876053126327222204536950495401789937139805801617916389209881419165290464409808646936095568696989728934033435848211143342974376077900131305520754331323688034376969862963932235766884088301368084517630500964412777608348269528762325461706116670035553421899963897978398512506757007547452094107873634412346155611055471072847155419110751428593570763482001478791954844791473569073998691443740922472672564142644170388859105151982248051070727746948369685391375556632198979848670961318472241901422037537368051734705561001893950574142702220838060804488506858098592553864658327196284494098508875378112856333232925887633790168183869125844372278296506683458638731807784379875818245112170861762593391547040257964073893876032278794530300354287685046283996002478948946225387468279474933931433263040484060021964307425395615286189108983053256420824400880012286212485805377790508310589317385812028077441712266815279701686622070775248235353650591321102467624148518312570000814031608169473166976647923386396776538238492548121717496372801137261456628590844879541185071079396650645151242247725157810390256251204122400609390761586721857870838013166176289092635869898877127344028303903791868488053123832770260630745197378845727604559381357282179814048468959510395381477050033827136767304816555352698608588260039073707674684160245597049150972724044175144935908785576789406334501821817935329014068120205141326862533845097923368268345747272881585921244247111344229538497997279539575073684096934323169194992559341855007624521845353610790467009140707570659354124392207101099364539766026008191340309523700920346842994559188437204710750480404108589741724056739864356063146495779326902584769127986507308483782955086312665750111260407276621315134381474989938371887824903710718422787142669007451282644654513795717498181906339791829850225379623234475897041025034709361322444197319304132640582742533512872580820655774881539439288147006090744377646320047373499277960330603505522443431256185669394667643888767324457455789604048925612743893071974339510481299447136201752069475313714735667168191823281523349345559343536054319151155126751306069405454557398878540502016126376980371623058880848701385568727202870238134676626978282068951498317645386886328950564292261111086601545917834247361814587130773777866805403262170284054196947505389795048114448735011671936256012337600630950651594125288068311211948984906763461493440697993249456132109482718802136754112699241675245378037882271474446341410518776023671829061009575010565316812285641246904947648483923058393357822962854851612026245718461964842386944319114809041774416216624179650581240212441161384177682166164396332411265773169696265683274645052941855313122525740052195668562806502538276284434717165835466181887063496966178498745204853698899684550224481726345854130733407410029374681701825619106194066604392421624264488049410994117975759200908156894076519570928612693994829637520077217125276477707515499565803996451874601321683200998796147210667313787316723481373560685046750679850018083708543206959409478031459556108930792833597972657888645052514280383974239543673623785718938468012630038018764897893119811189558152831407743770358118304276444486524389607926535276994583662438858679953904170084284859387027808960680898292145429192172566615098515194514395250645971644665352384031849128306501050571346656890156818743026365097377631106182986414777684024868468590516208835562703286309729933612514233784396123321500051312886336425089116706920063140782982779658152184124727900537410197444239876372285135787530120912525190431323457100660133304046739758939187542201572113026143387976318498662451508575088692377097159635599046627495234775710144090972741745415271210407654397818125611977580209774926080278011555898898193636234916091758732101043264772028729673913037971085204011894654214132601208058606742533661550217946785342478829667787625926925837937268708420739594091225243689926270955253944126073601202144345862913754731511040012723901886239935209471723742744871534336790056810699602467413394538571923942017314343240337344252542044277798581745017145753896479951757936383597045115979456350264950869327134557977593203153445233457401967438043565035973167305781090584733531597348580295641064495469137179784773878764018922840678596051822330236403710717946939271349652168003000455496702754509242551949390730260752443099953272759474845997204225190046285716767709342770361884770067758349280134772250866495621035985476634912704596893839500652584699059993542406019216264191194359289635844066863116015255991482529267627261086149032501162150543689815860166876328517610609408102150556559568585758758670969047628132575008640540267458687190348232699566470606298432047636014439173603958156790260883203671212350514123475149581297095994466161147347217687849045728020657623308423284238701485755433300154441075556733557938776690030946204155463246451829440561834920561802730702445727920108016020257105475986413600437797504164225569159695140549033568095623547300621405074739040286539265071662443257329741540840961505204443378748774477142866050437713938802403209250016279890627098539020067991992833360762585308721580470133051816264414608583155343650509035548806581420526565665540759056156172355320285558033580439823263801642893786155771059448024044477911325256909151842127561056456380188005040656200563781167870299897028304932721936241244448799460925284862665777932660564358746655606065367919774215152193711913017395871188019914199519452412473238507346214803976940867125416284576463359286955974352928604125688687159571510884966763982994422712028577605167883204567885966280292230665662247862137381354636649841379130688041620368038390722316461953191981120063958644225900850347137289364008044437222740240177755460544825424795818965765647101222585432181798378838418275987738369934357030134200601556240318336108039741482092233243428783167208160801546586745742128436850697482458961848022854521038205504740974770194925851267609193128348699560568694044434962802433223541200526943715570625999630046453296658895736073304570695275062482329882104951991383511866361907208908481449546365271066144875164100638895325854489684356036295035496977839103257328804885588499904412031417819255682142051629526129333799673389584933788589197432105265985991921293931025203726833071316705509609591813917653018104969906975338014639470421259611467822042098010145851335325002896163786523836250945221337215319584068780182431136537580312353547320978552172251606266813979058860636857595968758052431207798105677818327283386560191974351288962667770176200432275729762539040417437254131817727602228777613923998513328813448046561549929927709465344028517708514589930207791031418793361143251859269172856596850059014879591714002085531972477636679184158788123277303492211509576737984548660328573363439582202005016486048290477412381675182827173145308396965080406405636612757325613939821471676303269714327069943286374813962323976887927390854933355410317781402217262274859813414881556387260952080092821990211594182700873445405872069425393483005305516342686501853714324669778843701083789503072505500158220925498613205573186458811150126229947306258551950510881137709079370678138235339594624819247127323748379752707567007268857797285529558449366595945119400616601216578738617551457900906126411660566327010805809537774031297369141930872377702044146991647063587653311815947693514965354658550838404613013028102386161857552565810651076034620574684997470663885864973775615833683643977069169639921602943295685503797390560431878072687442053283243001639595889444627727062644842980367619143558213047925362460335316751653427389156074211581050218823746348179545161236338707659400355708261958831109514966387366012926825738637927113395869083722073693360443043389933011196533316209745060856265972241550453028042559252654298166146733614745743692921662428777650670058361484832523102269459392261771440204556815994641753571167513620583587092858191371370654269564763519494184823586699634214040776531804678271279427047394872364258676536041017741145577007964657207460171077317163822566628623059337238663457900984991855963352393245720158116482388872061657361107795097487913675630656632461102185541390698141872003942130377518034616900026092498583802849797306719808819526171380632008859627336251539962479937861186485421837603978848526703194521221532748509730816083825711209436217777925603863784589948264287977984229914557640991285786739634438147874114245551615959838405133361458428008299263654854929607259487949115580107876205114334302908290400367175619331452848211125580709516857568067640997106513663804239481697849587458077248022442235228438267309462516704611806827717753556094506523666525411282246019373213645583925183896354282055791105648260418913214995005578955048759919668209028138541372352875821634382983195809360895461947529963914610558318547187257022852874446149218678951763757340655566684211360536056925078261091273445362894811718220107375528443724061177182008658136113416292912113393020736398183559088541600710882301490838322228872461581131889851367975737255114212594047113395178971797706831817687847284587058667022191451752931840222010457363545037241293079600597132041922060855507578974312921133639184902048282328424462324013523508138794802880445632416046036276336522757332312044545921095306805888705784823855176294002613980654777225198348489735873957704538539758005530890845375550624354991171389558433406005714809643026165925633368749919084953824854239608493802503766312785862616430185449351467960864485188329530717372566814765119939983167524904112098686779729236749947846335786221991927399130882191349594474844490359321463128424468948974659315471915030257875188074143124357073249662840541543369031988470242725032544320508287930159540596484393784727524957403107570555416726238005437227357837531904373637220604253270646730369475599287512639371471701193556579063264314809735807108576992865144103701817308639227961867370644194934058990493494394652637916965105905119975538980371269503713165414402140534449872441876322256241241519000613865727079599206620699577457942237970912803195896661121899522748555409160743179336571617572458171505643973557980884831815534975094045111651594577376054243289632119000561216777509256072220299631134379870048041968402530662611832851130752105074365776648883921590402737808826259265415260959399825597888250207030893293560438138104631705230014820217079077227209320083057783895696275036252482730246727145552639421466351603523788635550956751303666403836047327066930146224878947982405179976912620636787958395857296889346808035941849637325843942928471010649656076890060502099902381556397251595808637300524767004327728241489933889816367465466297768924155192368717856119868982057420871085164672854597182149522238676962934322704143322871120892539142745933206520383522858287535958946556075749398742439614311447576141584500030919591899984974032467851001882190585067401636463918508258786387408310052468826953821715287849776131707996286969502134617018671540762914434613579627765503578720145447430801857825688947243915451867611932133937996904117308086659852737082578449526579556911674968594470176791050793371991941171432135013829741037977791026639738952363613193778955851518147162490153251584552227950700971791365006255040249613522528176159264213277715154632482149692457089834815553027970386439746292621071431167118875167359339078481936337317309896094965534985069747831052293679840259763502315678254672353084721234495602171574286878103544172349154279878450834528943663977991300191258894232783009243681167872414051908325512411277934919254192602569850925691714527854244660511585468034526652476508986845575095480312190485758783612208593942171767259181785723117066299442961043392310679976201504938276238021757778146741896436325856643898176400675266021718438891068922228880962747527428736463981864577118249509774845163568084467397718815710415488878577459160149928772561086167147644778870485125474766412447672123201212546856923371502305041680993110234412151199170042937098830500191028491575078389129096215150630541794138201367291333650840044582463625217550865684527487492378350657965103543304373048745244801441986310679435181258781101133171563108461971436146133448916084657104108917317883896190161575812145542499146337518503310507339391949199847712047899149014670930384446054108361668322359550984789944545989873491304724043356916858826323675543498361714583091841742541958334878903202354793150001066948893509144751136732425266340176305653485721954979094354247130383591027443122669963157747871725713788367356299116940969720892168784158597274769289717844930419436883129180040330934241125865885869854339719547382383812120474135245245770366903936965397116970344271750679628969528130944716737783848782478400347107896127752723722215298799391179366666672281457615262517571086114979148318588327565397796193761230516895708798136205804807055628120085440411472680483756498678219726603848886033618297815539665225114906405317396541429375622913561838721671282405187275462821698875472657485997100325972344690423960222866206194888427675360287684190751482087837116403817537719511152461547247167287228043110151279500319481448037427890354192313515575543267409684674177284799849904051869233861138725236807616761455918768986381162406642352592460202696369244871286831069276339852757294709470630120417415853713885825833835219609175188783839659765505551245856592587492571422595427584677440164245927648097466286185260246878143732639120603916530783936480975779608722499318923512807023274077460838308157147402164009405863891544139192415652341341207198440065192811629645761853239153173309185530732230263295458795123656744149513303122806637980150194548301879565559656916181114510002756756282292261948317544302582838724631515670847189170411636690145009803808494783490869554169024511576116592705882955276049635206835941293502173701503428445645213912575306378080460429056904984905515255793651043703486016832752032127866709666799162000222581712017352307325145353934341476621500632057130398942510928760872663226565345643667671460626719997445765039331852448940011072987265384665392462782305791486478345445668317936601130599354059329064383167774830279832075722787279099820696324389776875695115688646228099792515305249292470773566370165054772885584144179239290903886081253991256477749463126528324440319271735715690444436487247272244517519394071001768899854572634122539495566776944700757660352794834790441458246835790143448892704399190855496681754621571862069221412916006931354882355366798167082016619921725044867566003061945060355664214168298242137507961622955549252663334932383059123494175210615993165218861596527695787442008594443396684422590039132461961773477990797519670501762133694456179667428685421414865134480063259359017095535518937573620729439084020477530763214295502774341637153378290613959346284835778406005959901377042893183679871569925256188365013575125049116409365157442061397165666211508193528268119218990078207943696775192876661077751918767077221421182351374139783105875067879455719763293384393252815451444793440846988566337459976302439637506396990012862044232192005159308033947670098045343131525640814115801422726698689102694707263602211831349577505422663863425698951128601299807678805645582497832847016358058077939889773671161156257695549918069361809872375185609648864013098489020853697873214009666053053430352903029195930411535213620090982161798577273518541123875878873231105950006786758040606189899551361957812161833682542652295695866284178778625215805279445951982808702633380136000883483029479627116458224111917770438384633037691001965333696995938383463865535192168995673786108337114849806968065456659050387937234543512494290400143054576656395673455260375633036229016183922881859072622906939123444266168659386115207575474623932204641102028264307719434431614065323189638829126120933484764789816936673568880153613421719604360899094681836696045465594291541261198318315500763040541375982739865433738426017181905341972208951875630471460076663958048208053970824824041516554795082749991627864715713484077228224375724797939821973580437404757708779958143216064470917261743335752936305525233679149999003465509725037249155502920762409541441298930348072992328912738264895505754642869555913558936963990352644558101149058348084315242840865533751385158734398315899719853872398372824399817184834451371781429302645681977285889657175981596313868022372534716633760884109244869648090654833006757129526207565054553039879990764496499624944343161922070274195183216921006370895035782303549251366161980254581540148836300077162795720214980876444632652013576861642024810191650096747906819712772699852285950581087181234136145109673903397788090597756480566484585198353055777716038121457854675851044040270321331480846774205864017804865731024672961758712518470405804233390492036105162219842283256130653328190296575177858202459176873930817532878975015662125519072917433184261193181451077158161090544627555506673533535465520880402719639295050177732209129624682719581123879981410537258690781362016033226869518131965769482289323005292721122914382948228553393468534012233668697979531827935227855950263214109625526447462654459265332982720985291546779603662771209905910299391660070764340062947025750085691970898713117099809857321672280366916387390074894471951588276758724717763389805261856774055103240607660905237203736743698774235753772881235559540143655350769207957060611066055385777737182590119912709205890885794009938809622426840955358280725671409617352703596378699207937834989765033855425208130610229914336873371602135529120128612378812868600386903400177619668534966082287776592349253643840663919036780412326269980283571877314124336882517437755601810980092388291028509579858141575840128330719116331643398414456375511705920147559191168850430073060890024739070850603452157804306651976717722996036161393554722704400338886437487877167744589209770781016907644254939962027068489403488047838569150357966112082590807906257241775831402826969483418675093120700812702701771398485421277881886261434319515753545365920488590335871832448161269913164973479404195908595370998524288695485690307802603944270253484484118811177194650870209498420393734001540965163787124858153058318840306937317022665800850978982743324710776474482377819162938785057221035710009134140755058610222471522434979440256794488634748765205904037074349145391781537555070477087125275415371801647260293762040817812076651495845505349413194111572821882981660274998460782617636545842002739653581658117195345725898806179184408194564380550748237501713271868313054215581195545491687205650350001442113028566147054037248232991099114811039582077384384057749004002796101179690169414582625848076437139037418030558213861233505040713516619315595181502783299800247720637512753237128403163898668895185427574671864467413977970772685645564190192418954669499977370735956105069589314399057221874874200258522129338813124090825941432912515717835914267791349235610364337242773460344580326098388836519410911507702652567155889899033621271206309168973596008498785358009260911151242337146300467123036602910240214381851055951852682624758231078903033217245571469025221198446405644727885607467054800803371337535267401914882169933478196428946149747219594001992112423694075199487406358213065200847505118822922854739478646298540154830024682453397886505493141511961732178836383599188076471510445204687248788998994992596084446995680848190171475494849820205401672937350283224725156525637561553279911292301713278838985380504297524580138077623180430483776427525572010202551632108022883672709360144158961982479963935815274252449103386404926745788596533389969169914428077709815130967564819270291215520054549339821158196874278890722834212923352104232035236799448648023143383237691264911862005895415863227973357091270546699925331946226728572156063264675384687950606877669178065504827916657908908392117171165673003991472048129825328087461201035299138992809767456925253050240624557319761623760658948155919967687602433435420341392417588769848180223704130137878144766480545079942514847438666024766382147632904219736630069726004959519714860193514042930116251078685974684745400540735825048196627517418727340727049461122228726177667911504320016063906709781858564494032320911839002770935291319814034999013741458037886849071180252224205976369753133604106894895287200738514366393023681097068564659632382888857671405430632332104050930163562354255168895688611105037838500281545022720980697100462029940595405345588504289968354323764221709160971396905835790615895998977344702437624276343122058465886351112241611331530049363363707346104557379662361625717605481683226698521240637325455470617038890419312274646867262966725908860128740376079093909366324919519804761407845554381773865107370006448818686130002865159682181472974777900199782830965806248239771652278735701385205176003598634293208803735953578589143980056883541162026510824755414813308094576718604092700646939405916530572753195425796055823785543614948411339182797092138940023858335753262777764139498694282503315654640529030601952260317797601741571200910518383787359343413278263328547441206967030755211947839678278924310993856498737029435069487578681055624131689278499237297224894716907532636881917548346513300556806828053445909987731798814865635087904656072761042144102222243902638559052217920832795054210726999155441022216303142483766053289270031816105855717471540022775687567237301521322412718003090081570542318212481897011400940804248148784193646396353513157794560209464338071832120893555451565246173113661496536803619124747441258928728113417122083347497136164381961616601203052227587299200009205169674555936597762129099265185795225700295141384082142004492741563805860461960931944421512515943219647367371080568976331818259672306403391184090976429892519005761311436024299331410932130610119202823869868029380336999733724917960288514152954284697075186016175522704319508994022974284175580374034995008903458675080981405937728868885918749708222061293593209861436406543720717841193703993393560962223682019863201218022828650017453277969126034463975638829651002389926238095897654310084031621277640762567433286119946914135152369961044718969190754258984459451868545980039741042827965863755355300074468442043019370594919256516729596652727785089265551952987630413898405633846974085614768380141018834802132602914001507331539657188048855107596341718718846481200232682876745505997656714057090507717286498641909590845787045248862305538947450474893336078901474212005374501873055319521339569566561608065993585372524772362184382185776201677136486757901473303608511266507693408734159665171402239566648801181995481539887832575881509243598611558770151342191510993265980063180844047238982831158025551808135684829067415365941282571161700831090393505486048055451811451463560990336710871727991749297393310682432651816293053783057092451545664336626541845556142768808573136891559120871392408337394720871655265303580017079788781304143840520802854788485418819327016048545447659963339954257629493070491302485924038458018379192060157473791034257752041481570685357356294841157359812393266060180055380921818512179067212701842858872708304091368135692433235893084722086306437999991314524271823668889205023162935492624841425552772151531432896816384649758948193280195917123628978703039118571064158742510470990461438709037530583769215917408160816034102831811968625662749073957544133671068919178021096472729062283198416232889444305302349439679752019350350503209130263048650764800499333208824684652344970678500485279409558381375922763671818773015134892958698108674779669292586449049129757643557780949271111369891897755355348796124562084825081323983047542742280239406734165686909731568843623129374978991966039102467495696608412286818178540184152891999504211400468427138799786931755322951031859648352339512132087706607134461767681300372864239345827721863107575152417793893977692801888743545030559727908328602468595742775184644950921032536317491426867968803686780179129057807669322774782593656257250427177923725686955094554999011813331809976524588326670230850875014605290969836357983009815059256402636144557583493462154989582937511274564967047038970824025853974150217554500296161447366859965537699788518908490791464855923331704145314539954819680829373530767046905304526046681384086924141078137844472139403650161911982966874765244928225007139411744850278670436509303345567194795961127029143443126158700792710029576781567557960574905997437324300749387202509379614273386077384689863632622039897619092127366405853282514393434006603317265649241119556332241472539719859677415524609130360331453008251407564545646095060312343498746321139973637348538114629111600563216847812281410914400922735525442112134518399138347214318953838222813359423943876653229186719572748559618714370872074788211307538844878625692155401383671411640052846460642559886766007279565838166834400601320860379016488266458715921985118375862327241349588792656920229514202843364306485078327377544331269658115997882679732498582377815329302075819434399795901992872924130729002068190425578969275177391114042334065163511681979370060239635539484826417969036079978343933933338306686437806362231059198495446375867226985550189352238014772270943270437466377879975503059256312417917531205384232809501286289749271435489863885933191265130695399732500112733270546716003659516522909096652080448966869828508463429656298457122702296283486664656410150121171231821390198162235344551057678616418161907254795336139078421345539774486776553159983833353030715004002094746852276833874230780169014926502648119449415039502236282856131759460431256567300898220623972002232431910546725894719997466929242210453745014199414300266520635486576089139715975405784686836393294115908392300121785566134079765527812600519806887649599565296061294107746567691322090759358720082885949101060384747867232970855868735432212335707321599843447243044245853587035259550039493972647600148605900066866098096727938290993998196806332471985028759463281876313936535002723500214362452634763131273544306751221702585725678534761321098855848124366863611435505071082077467398027716615905958894763908421671926450236062969761489042583808476966948097480028872898041969330938192311595179254491932622129740448022077382138091360272536392999109044650295706438793200110429322366001296985434616410817473439194623582996347525482028513855262647790281877206031553868147906769473021012320797392110343920328632305572587007100472129368597590341692893074180608578932763578384935203016414077515090021178901933263629792661702228025193238749301687699111951182901556948002814629308133412529382623032341784381539948715100565132845069541701997224884535376360269497267121101661790253537116523337585856026837499619470856857384313850705815643131519807010814102989133457535977671704261166467536924631768916370577470814566592764948980583009587518280363344968271660694237489598694465775001177629015669744191531257215592590814785518512252792713426810829391470812318054459280138249850911588176871582927790043300501842755367195034869755609105453433742918703866597453332152318062284042832154313639930057751544975580330849501989065217643924582616425119786960776154311514884512630846149461293978907377672472659633665387201256755141151440330045169417812846120286480545690102568434730694982575664303718239684395319616564768720457594440677609785291841337704954003890569046259144130191126572130581477105578639103058020687623659105218592156254077113638681799928507519661770835344417730480350912461760678159164482660142816763084774978015923883445677258025826130118277146287087717271131663366512459319935411754013033833321818171529166510082946442991152277576559899524635757327691388634073115197967813627411508001862991292509722216337221501679095459136814138853300447698976020332766517491032315780312648349791506657768780176142432280313947814615534694841090338352039055442161107742683509551784719273253620269496436960170349347090773839190688934336807425776080827497958219571871672259406497025809153072610598647628280548431790136263690061730208450117219092572174208900710157041969668629189979730723223326549007451492507227402251906134209426722388255726238212595787919881344704125279984682961454695159369332873413467057170915220439066745385010009078525623959626322397654703941432763135967260398194418318977818356008841948288056041074794264987563609095047200680671157173029361341102793678012353356380614335107150941217537005419139559130774221513115896717732065161592519306387717850830514216826075502706892762544008200841250377432275480060433953581716496045437163180832508099155463844853808462782033484355545886903308928753124899108913896963467323430404123205801390583166702533814271100949438545876935654350860475670107233870633633928332969319414557803497448011007836376715242369349265225430813575403049925937690385070853026597177014061184303474246799154073441777608406466485679199074605779153583431802562280796141174102053204882329880274053214772120625360444053117653335204754040139202257132759640209654439301878238478350006927872446124266127256705277253157910091252686439616132045798602506203098945390102408191465200180429813449110519369879543427247493062165075446874590629167610721496387788366017084659916832871831504860498573136391264970928016874076238034750523385426540954297470117761604963398460278998583237251883362601797757347672010293212533489606892886785582644999409888540422759217781056918338159766503159523714792115359773965846134087726778739381505676797497886993835087512002090804548038874629956476745920078103994242974058839688590570888890076664421403952544757262176734718045953700132761376831844544820653269011679580299011607153436487554165022228940728592461729655918088559722784940385742140673445135200935410786990281657546886650948047576619354925933735040009220132424516511467073999082701141106777251602236574035201399979456262187608795634365094422709018506537314587028223411675834052571681204534068480610753326099043984774745860979793420931269546095969120148602997866299995425050844119388849202899616941631427973361213207029095605796096921249488089211184660284832349713648795405666438092787843497756505277584778041944129109882496910651614038204124321218470382978170526152517950143374951502698968590465130633758593870049335770308975744731142306168596754602705166615886615892021039152704922831371929603408931727948049069716487290370505494611124128309763247801021978129261015962332698252770801452324708428248409168023672106932826316650591915165689514017228529630926632103401177769215186132504667495038318572157211565644794253899885763845877528255533152073967636670209862640709853185494461847125617565315779062655323930733489876487832975627739743207089068328227553842821837366745964561410207797623163819954041603225283229035702204015605081640600537411477936285113800865280405455805141207575613517144012650691937264336255601480046047261168284922593165259886870684798279906433112827968722220299214341177794638991080804176373132712268947659258646965164259341736355975768182325764306478305414570697072508061452963246603065792368162299557215800860383300113555882186419970392479824257997418973119309647128557129390467012139336621096511510302573357997347444632298157945293050894948871158384830573331863717651814574775444833688047570173641609802925874892432887678568196482225305332333736052198992036914410183845408846596940439794068644609396045761180832875394210900083095222290131812665390911847328898341331321877669485706760941048319009829623959066088728549143080201849493474635777155852289528045647945619883600056758346936933564452233902823197179125903478336554201161920944638293251275857683801251897624211423458566143481365198688670066783870133645654609788687353770023728001704047733477481677459376406164790477824411495824163491638501345705200494584407123450306946756162308405578287771868334216254130807541817346600424716840891448459506556159269310729167086744568593031039831202360271393863830496534095619141595167038272327004213136055769123626876145850759537562349738202533255790358935632434133213560016603105855118283577021938599138320009539190980460035021383749547139701577209343880011249208666843849292756461966032546013273309461725774500798299030221908329811865175769244729613176855192739035996093195771948975049337198998118529013016292220407324589953698927871102787600056303894671844101712386434781961863631761341711325218084782259810326392318127970785215122621801444597159155338876699596845946743339665815671432019199197429441009837848376629679115001872286513908728875829773786753002649304252388660630681736498956172806686988576427678624340773536215937421978914475458084301854521794087710921257245935362111253040777188557768008305603719061998320557436869395693310736398464442326918877736045492967103846854494201683278420156553843912238165409486454314010986502202387269775319779607777174344678997920263514415802086879132880847106344357676538628462653447937283044122395252874393508675860003387104494986711370446551061370984191207819369907074682708535781893975192303735188863550556207615721881077860348317085235808465663703890556167979580442749201731440392163802106762368453157914591174884975966979842088523186304464205879245858247416460801290534647665804314818163154213498995439409703428607052220403296164113806299726250067050735316194047871784947954156479014681035621222892940009169260325893087600120355889851603430170692470460915291151569679877844187520077603653081492190838973296909523437848237008765801034949930146797277427474502272784971249653442482989733762934079956446251893499683357446001301774885225206345572143280397988856763579186929332076291579894216756846071740500492634784947844495814159192653765190082505954562970669325713103440077360295290817613555999365831974361555369999712811195028592173916014401946872454377793593058017375137326767811731953487338703846671289745688145380839451568666990221239829566917062604205122307946714445438545092934988542595144516672590574154211991063987242410173347163810737307593463216804861288559820269223537010977736105492669115063660087664194837408869203486785770180576402041613917141316646550763172833222287107520426897669565281132261675516391933555732772257422054091409578176033458541896957426099454112679236673963996265776748601899184540352824612556876965158733284238978975633723691908474465749190111736496215432015955822113695082140508221259330022136756725357262018658387853889859204076677079119100193787538671528326083290905431049858378581681970323680849653687561044679242479716921504182055023023744238205110565148370735312476387238035834258349230003374457708443738501523533526837520957086442260850916009768132531402966058895133489792769019784370404456788400928238564439494116785476243273539812318157849215846009497545007245798925937881373518829100044641702182815896632851209827693294400396404370812819044190845981602291389624037816628568331601587099027777522645431324389977787550353263205473161993958779900558024328009829891809871126744168499887166963295861433485829613607105539609252860661499685176180319334653314971219713541028544856256781513888016644654977939593418701653115749009231391246183112288191502265610320108772173603287858675236336037799284976532651118091297988505958548331267755629607196470394135905809910567822257519743759972163589744231872798545624779872013061922763680629652072697403422443234172784355049360606188482789719141814335518746596746145337427458609009890175499314869643183416206779026295591053490256114138836577166992501173077837091420125262982088436471724613175100645056392179643280109517217130288375373786193025647666307145806115525217651388909961051078844574041952774740410128419930070028544801463638021336505831634844513478305947709306453939649374947299003837610316656753920823470308123446054284228815849312078144901225426766424774547529902121540685838042594612588596908782171385102345637934292860100381981864144015227236851935463325707300369799389694737690906238589754853178013311147703995803068569476185939696662381469839995070013771536944856255414719749635881486183960695139338942622322634705973990066133228009839119890890641285501421725150048768602011316445268556012006072168418585462210934958317007852432951000971807901363203918387195575245039589822222816119068414648935233917236893398075551781642771545812124774042640408703069819557719869543443321998167772396102079992759819262535884991746041622978030848892784663510082893106045583648262314832565580008735401496773548403324241375715494334184237993257642409916953388161668254610514124734700857380243699769493149528971455860449662654604045793824976915496143518115484251910100799822429220249031701806528057821466003977625431913418258732097954807542060141771902286495550527815897939697052602687768452747809032747374576792464182568324402217816510508779887629153917775996691515536607400846086465173200653069191284341033920770250399118315154535562744636299903632101490042201003897486276082655162045830809623020387568317841847555131390964608807035496283841651171102388076000315257366927463797642002149595113369648788129434659366672304577989364924988257182726132881551203409152413586306372460677736042800190098837023524984744388870867783743714798092391804519811383855496443611314166311977373562823415281890105094611676308949340005000612997841602247133878649032099104273318540490015943529025166644142691976552838680786439790296291897817121416227162329546741443765879689798712739876644291453130594082036421317416912814400624098607477348075994932462033497048782166837463530461686004242413591931913980576389852910173409900252861575713816938645281465961102936005490634041611632004892642720801283202513956418555578800867860412621753212541176428320012061649397837925772495088975886853854380543169947406538803573923800330128390561114090222074390936760151817028144381737092951830762200826597444865567315223056876249841502890648108063936723519213836446424094443921330136363665951458911915985138353347539097252946133934203118652142742110199816415571848152979520931663651090690449708601475584870572811265418669008549881187860294750477089137013266130405543133759140212537136652830424928293664357256828934997910754932827980920629825104303878472628030177448527426742552896751766510876422661313746565054087744589198487962581483815522400383683631745520542648428671734121767399348623517404435703948347524953411364006350576852722527145504230450459192475130452441998588198866083532723333248250615923714538756478439815631082402010659392241997121976338803896667443952545559253576930469680209555902819142954276373797356029825877418727843715191024746051080003366452095036342429397154668355167957419399985092158552118424740831371065448187974114861480310963571637731711878115754439669348516649646887747815531199512007815188496207175614696542126478391555821478082886804539123773123351030451258092806077230911312026819164469997983541126059392510209904723862527727938403802989401745672260155843715642776028832029840283418855553643976671246683022166582771140431878439335236059272398502729403263117556883758047118939626114921586846288081061034243614038520843785219417042293815461075608465849768477784610987235841268966123931455948337887209620988307957799610829183276752520643285311299232190563815700965729366383939759577680664465100492836574224904617839893344265332082934510171513443891637538285101158859061338714648118298481233105169082473084756550504077960996237216718743432558277976357974094096502424751927127792577642384896777102053040129740046449531940341543471085040546725414337443802800177495018522553313082622746048927041607286879627838173327404180410990791352009814565992363000907086026493163593209878764084296977608843589379149294603796537875514359148387159752673335610566610242781988010376645192175160317923810203329311108946269354316012193210438347423457414702416230592365182230014735764034249554892155065433482770666602366921026186848283054055122626524107541254714252847976924787473495388253097091453172793333152602606311316386820206004597060457894426929619473510628569434668756486187311758905910232061840412961382729845495057507863348092231320378463889546330964581029983454636723460083648282461751780458665438770583813421134136182986948640136012003712243680136487874444989706703862466553491212665917996455356676150898456223496883466806682326667020149819619887302251614089041179776747909272239957605430608532218090817005579029368761459652765106885600043415689281949896333262123850089909287091231633054184114387455052541534012589376047775998862813866945032257128777721956750265346920060607850747864974983865179680308987214034762884070461661629591225725006396738778862305581980284278997612555769643238916287729863077828769028201447342302290018786754102790174124584918679322468843500881928960460681768111081530223922805144320973571587485686302261636469547071977212244787426475297563327619913059912417967616733646195976038598780519250052033543458161904317236415361992577747543966421818013614148831361192635495884364112834780257126582864501296056166622993953979257844076843505965973034328431145613499810923971601776726667508916521491653442073292815584383557739481449444692668615953119044740855180278248768881148779699242616703245378104912394511855666671145711048052268710231314051482723800452524280147078222200297031545122648014676912689720624467609191003074032939609534941469689890292156247605131750950498452725791899470187809801829607410296830594019920497830084413720034874745905466602588367361392566495736045396102807448807707939305205384033694361740984832952740662517473119716222358966656937725472732232805548943948890340791045851104652153107974332247149272856219221738005990506298682133199413315688438744647803931972494341440252239710237555636432978555017291569618565380934166330116702301645967765043589850152218263132645387928698558505196544937471382312962868055363758021632954056107420871158116679770210875905890194166103473003636208401973615722905591526759951321078539809360440669090512353577985673547856462454339768146521465469025893275291376453609198295268513833000616070455585089201820866114246506111085773733723936489283927919118296728072882798012816659314752262768452719330340899616629213110867914933729616409154256400755905805609842204855049396606007552452192035825451780859630288486319395227545859148050443391976724396139486561551380820456840455220498480169077467930195703654404521311161546317845641654481403368301247986464672795466031116611387044504644146582242347818196645049307682269802828177186901360441705966118802022040297525551225025178005353630922886570310553775818737363483677378799492755080207929490719575985914884202081071767141627399832711775394148333349716189481897845764896486306910346731780577183423895711360138417203239767739513069047582712950299604666432637034590052231351888981503996647371324955468821104391481292662837190800204783463734257789647403237074907902343338462513189448336650939547359695589792172466047676845123360498873390341833736548487734383999482289702703088095117351691090920869835781323716219353012357847314212584585025353338154384097061984635288931422375974947703442057470200008960839358662552348468758457267301339363322664971019909311408984776388175806139070193712826745208742462804055588961258584558928841916051417432488654369889693614766669289006828790725416584027039872003263252136432537159165396905142304763395421034111557938291978678263462338375356269739094389946701086560983171949090570531474328820749061285363507695450774169204527207393067529652489181446936086941973709123785688962201697409191815467015195984474311356116141597667032185268068367851357251724643761541096692354711042819024630595798043576042520735785346970166634429546732565511309398855203893599259472333822877179325775121576581281686034977896299349930935469872607528381854936336449790459088799304845430272067206832608615405589666734298891318030951646316826286186357359488906842726131124572135171642208572675098702353236634380490670747164498215196991811896452253077004611570489584517480187126990487988436464921207083369156752757819677555457007451814881665412368872963520279625942127660253833210357544066265531422199207024834401865136348940923433634956389090681676532114983910855683746716756855109955809967251968734741720861964059783532026210738896070846668590203877256946956697195525902258960391147702617497576134852909831477756041969802768242992768047018124709159770301092141199215941200711329760583618527362321024047610476474529523806811581970265964699875127622286769845013204249144890757101846914274517457578817045022983827781406205583908167120322099321268238193465975960699903898272909082969092721709741628563667971679290686346471549309592781461514982456463002526693710431982362602385856184149898318259481443848460901232299854434565675428101128480124848643458537956843773916627620153033155532790873265085308508211666788153807287622311325723537435233064937368111932841065992027467349440337510497777849358949882185784318251017608565055726222265162499687268799407761376088176745611820142071496361764838117583299454534026895355189467458596316049397250802344041669755337603147909533224569140397918152290882928055908681270478053084339842655866711069978656343258994995215401773624634156398618190458577516907710579705025614346622436203724677849537839929805560224876477439540923502653550489463582063671933082234056328538144847885931416215537886598235723700387569644795092640159656282398395069288481193370179997156879796725800653483496070670300472229024458021630840755264219732603256174907100986520865703835856561388603072603091488377616414475352712380821890866111858425408019090910138101025799432552989593415449933746176532587679804178426457362778313168773158293549497412664626882177279379490671337464616902331975917586271854370465718085977371268314352526538159545242343690474185562516398395447334350556417488198624120640858293760685916139575493606327525364752220560348613794362342652787670074214812972681269213367515997883236351903210386742834614416159687561728800573470069299849139153475307269384547701000195871441792144313256999247545157190790583361680914037757533837060465371625784773890106178447053267035380659114675037279786091975420137620079485556226895372755443149683102186291554520846954686332306296628105774573403466155783224415330056979517044834843916373412798701806216661306855764227718658025368714406127549057832833696777550762687124892373688978125252017702662314717075850358589736339954140837542193525596062671275399396490467305351746093449354813043676242939320728867319048120010420458540656527085058262848304566045936628703174549822120117618509366540491803345653061713096874946465446991832676411164951550047201665021515536400473003531476152517871170146040953796797119635132620046561949351265311480359353414098835256390281118632059697647209180831803732533942920786043197428525788439718969657206937882182147222947215287782310555590588313334254451410989137470234427852884696164804183642246110669503340131200357448912065784567049201271251113369405102947807276784201005733904288559822110646390095540332507701720704531844362943132320766860272781206893181474258256081378712615014830088411709511841604667817865973413665756121570609638514664545442301225398721011410237282239556544692883960847710894978021459870553163759516940391737266684266817979272316911566618398345955918430043791358615526689340260351778155502113225179994045080707948928041826755858830023831648378247915402779833979989596865571067941418152037740908830382162317407065536808755775877041333866535117240045060781846040654955433470774658685326359610371723548269899071420507141067543401064798317864536400085999647954425746744368284043981901397137485492550392567738140352681539747802655232704279380054216877579863760367329543097058622552515726478826232639570191954504797737573176705870627365901829978567481835754586280572504934558552445358284233201649481364321533879694112901016837272379198532068347604664261672983435572432608062575553550402021167638522578335548235049950794857818084345121152581294657878384941676414795369738688858847042777551264758742187509403754902810985195602620270509558283700336558987472932681888003187869805345806696510903355860174103748218843786474487572681560993585328086051190020702454711433369191230053518324402759647825058275636945285528773021327840834025402881042552166201765048148535373860507649468148672317893223399645803730429722278112008364403927013695135217888919131652813521146628082450430372920484916558332531779526503360664853369448964361364401544819770860688902577813489191230050084389858085594225122466728364788955974599209446312473253088176658959932271639684502558382344344198812591595798058273167057160452872495839195979435603732942646282501771690896771808216705293643216672721352802475307641810155559907416420109450519044876717795559856951045911215869862985076804366798085758647063527477684272264533815442034306126999890034671421886581471573491568141496226793417568838036186896683570387999902477270605698313019893720733642738515550167142993585893869857031710308257492969523059199550343335494934973446555962497853727964530892272516453115172849580324290676945418083968075024618899271209012696265339529290288102316653611732063254129779906860268500377835901622273855741427025698889419390435629412473670619859236736249566615284967826756721280120058067643828372728338660230682545463251145997968873153978134893200697319956754124737722489198221887569606431054436435411415008871408961822321016825087169803420635239331219555970780165348396077819253351803014668870518495495215275329848253424834654669209722772372127800781118020332615840980633392763544384252381641362244033670093412941075227490616601111298354581540439943866809449374794517240062038336925736497001312104080633021296103810098666946992413034282300323218569726897815823686411072995595819663878760319990089729321722741126233494162279482138147106714250425507053405796917590392207302118545831535086853160331740740825691510871559891540595023861815689266874134703897015001745175757808245885004440455611696084993602780861477294682521936235661604668411358256285759464399051451682535629962996915733889390102318419162179983959396519133552558321327429198627736158265092281110818212690149951291988378299571793795311841754706740031521148383775112270771467077504330029770353266819767761660825464236859088876603981967611642512141873371872910486274803424496554366006381045126959730447161416502062962233451348695478193470347093950588573936105643901060131697767254219948633803936043806337533482566878903258003162579225567062784806012566543085615597426865589171811096432201789254113343971816047108992124307559231636666169536143188307670117035825683765970790704653873604624844288458248777690295449768534826829623214264948420314015732797652481829682567609853703820334710220631737022230900503227116120850832191694377887657214658340751512829546566508871341694282402492099236305876407891486932739863204037894116187860297571761535294366967624846596309891105746808382819892785132083750920129227675316044712887282378474886492615801417092354545468945903294982576081318778796577613310843668190952156496340466866195378822818475774549079853727232560150765182253996656906208353079078187132483045100978893987107111297695704160112353820623987284270602256455154395397374004134264073577954857118765088318230305376717209434008188610360714015975034891943094039822502466361168342182378413537351349994914336554677760122927110022035580191975947756287609121531237532542395703986676654393958259145015922196129713309035729722538151146942851336021672952208788483840394833480004338472664746395574157800681869916940929975289627324284657646483787618346050548058767982511162478171179096905292333157924738619583093824501812375554214388381591898420499169862337888465665550924913778349791730733546022440588213960991417308983479322338954561966204006167956865149276166365584829027829687330729042827358730696067779778715097682971641738337128195961094318491617248179398209305774084590376901561347026809744107681060279170398924784840352414423955992775565121419019033484013504356819585162701734351795142355403680030252364352784651920495664558380771671041428067840899560591724554503786656460855503094373193543584733322141138545945621325875500783087339889394449590046105662779858486900348853157688644580858732704243575786771759651492127017573984924397844043373778189390119125378402599527591001083715433176268812981545991098634681549750592117642089319500982023848029349197104464418584104658116587456283594076072157896744282211962323478668121023839071800287613038972793510718761797362805898247050682489061176870326751116139892778337890821747433483276557536601169887755345865014991296831132953496409344747620869115342244972664311156353083091112605569985460996301499401135524353873981334682136661687129632110048210971469897485779443637627203003266042593044740068081089333594059067461465305261985913509642436396854435386464946489551506849569931960945223219343107442181746997416514410174418317127763666308110448302010704731385122038975462176173246548066626019667185643155384133108486615562575133006423373844827761115841542289201779002401576989609962073261570845488659482269462623111969212896643535992114442436498652971451690273679727640923673046631829646405609018780860509189142483482517368228843222334455966978222353991213019290288596555452568744241547810341864009411939322199164655792582742025908861241963383987521829821996972728370668774427056351215873028286161040811060432751687865593535069722745723346377673113347706625637311002615758251564226643499747039633123534858603192793017737463885857482928265523786047567457507361983712664968093997755081153465654174060642224012560473259545178914026226818325281665448261683736641549513765671775710543286404481148967080711589838102901435356336540400612064141526215653501597702193882997974894414913712272181067241198668766232620334313513815022573257570119653369100969486383301004690533565882465874387792910531807688630436393552931286615526165115627188284153620460548923964036471869720395565650142111417387720741534914021412345595591732156174317699968668077830714179887305506016045145906845348434543180039744794878092268141990228904655050106859908280013237035079372534137547026293007418064115562286037383946141919820095869848645778600019875839156223718425635688491540961993506999479289826409057529399433954144634737778749878096685535734800871179342459259765339022506247373541315048185199861355098655506453388696414143802214561958365285619795840842991541918260552062616163789194705123590890569555951567379761491620503628471713045807252881558843006553446908652023527303605241161972838657303920446204911879629151864759713301892401246788321777872085549663850264371090837593781844435318560570679534536129620243714536258512576804195054974085637482833021350768337099429332368916683742172520593608426197364936455815178033693861051506874958038197323848362730670339009191809211128731955835779369621418361140889528335248498199452752043761676345758293885615738971921342448707375949966612890269746720689760222706276347481543392464299223134953841317935834591577151300289702534659618050011497826227753276704735646166249261224972051263574013704014560417096200037142040161430326322661610716347235558182690139975068612149213814908369757700565008822406207408722189025162004389464598763518754389596849674328139234520857487763482373562747503378209982986814453804898916716404269686882623213750918509006254993050545803383995185044253141766101315031998684198534751882142328345604621193871475200546600510564308047143396809966108043888374773861045644905257888431427538293671687655547792478220498885103795141167206206205610084788584979027399589669624053912748334241184328259460773379194056785649069224598203470334169664293996563449142125733520723220289324118977630105044763755814085834122262701149209183407718927029017991330927115307401809624102661464341117714200173194740841744930591763317957573078393371015783578882080900265191427187740236545477849490395413211612913583917841754741708196914594493082549699181316014378713855152321935745723008180370905179787556555598833334745465719283732986350344496190118358663844554176678048315100611447861020646963279759996136526682807877916088497287551256356803078023294819608641935296029685609990638977200775466011882469609218467544226789201869728014203295498432941824945813614301178125799552484215789083740016822642782306643886369915328342581896469758981187326350875683864044356456409489036796433354602534841010241743817471501652169958121875066406537207468295331546838865198539592540408146291155168874832899352106768402715467457149399036072296051269239284182124992440325126224580984312689632460573661478969995958195552847960213646949997989710867879917702459544891555371252141656365128400324069073264327892697150317697398809975506610630940397831825828483504947244749084768777931666386514039696135128279225994114887355615616208824923214434081147363440104105986390217968941192793410597702834582187333879932916435040864639756416673572301245135361193047314830808882449771833647858302624269336879935772532867695286139420836328805322308156432792355913463299777358759836639004475251891016394940757378464909176265524125987633847100709820425211030298409869473518994431147820778163130927980486569333141554340693557398309830678916588167771078325736032037069879614344679821773658863023524765008244949807522525462123541509579705976732885500148929750109056894136868235518327381590644824038633916421827140395263989200727867863835412398384038087334270290764157222522612243242200988944437369742230342351734589621051308408418797260767703276267678796395023737315994676266394894966597358140150937961025525105393929419638274013628392095737996440540750885493075542861240457483528924964859505767336275116035836831191752173408419833190595729390235613922309555407703297444123324063506369130819484680965825338946449892725299913709717738124244929834573331916402237449493825955877658104855811019916159078374338560258794939302865099997640275448783782881875020282358205299798236935775082696372882902889320541443688253833800395062537048674964589747433720999886610600456596735627437065963838010984624139625347347216869968920171591819926685389294321006005732312163106971007483907257560940647766643367412347839438122192297690133321419927294711711050794815643865618421374178453966054071006192513322496240848677214198466393422152476618733379261129751210055967509315715995106509445257755031727475291914758836554004899608299707642009662818168087076818019712775797843054940267468022863096537631346549824301134398591029374659843060891549448394111228641296934051022177364629905687705082084701746065269110715576407286741405653420458130233494410266009391047742931383210784826293529505565176234036434504124351453364351704617251657437078042148264729138551578486480147701043657769194799192298460218623327237524611901767833767033526106904829722721262035521415924005508468190629027344457633864852566468730695035861432943746569316009654412314422025553874063592410936751936857906489957012144771715133275179042063639093233040524400508829941438098660544425310372542688319429371614331856209817351851765028931191321265353244531639547405519804284430997122169116676865862797047817587956623980614178293371961890073938310877653215698374397314325402611012093045542731320577664411233718936687532384074362315847791846397878150794645457777774238652206367058029733434036875541890639277219730183570567113217509590475407614662684229263430991557941577527532638444023713222603373191831992905321913949951953678330127640915563357720531586397660984161673388738820668118282649159339544263285083230716808867464052962263862364407492529352270740711624689877257373057355969019774593567702919295845570200281889499943983178631904072865812625325033232118938435931885217178442423240631469564211717215569333366515141138248542816952902233629754424507684715924580905647381767497035705432060124272166900278535996514252178634601003911238767576210876801566044112977779189439746124162509387027356200396625239255750125477799526901000658665817442330649086458202692727480668431037088200958983561868913501120357882396716185609031227606474447660048850346456577581467346967716403317726973452861021699066150608234042855619479419617675972578759220429435606062452355136640091870895553912638311362859492680807912443480325124724552587835702001898481866423734018694382138867196731456635684857431951990985994236657544071673097092455210898641525602456245256351661670475013642169065454207450878740043566481448158421740754798312647696029687838802231337062756298664263735599238940882124363634781063673014647878774207109564744309424256660427577409727038492951420697375447181024159758109517133598277563856444416724647300808511490756275071685177844722849905129346592504953181359452668253753615633705297476187008417708690765570084743289851000865003011648007119765173077034630739514764598567525255325354330015206807255501929088897772563580155078250280305738161072115958607043565513361581252862150089997983290446401343030374035918967795604063671637135418348656360210833477223417881525394791911861895384028734895591442874266976051412178493802814109296149216097261550531269581355486495681491625651244897367248116147684177671459620648194681709892657892699523668531504803879851130044591926661639656897362231527672878618622656712361961365649176189350546787033471580200390300880106463251974129799054436855982726367753949764053784013167343744590785792174424099603563615895410644033996583732769594180748894388139360543268408946464928861677214876162376566905281975048074778512095092306109237198655948908678662754702587111423659740322067901838036121084832650153391421076877732905030268580151504349195027316906024447969914708824164615420971403257909775361424132507638008664967544444642343426736198265445602535708495723705597279933803348777959960359150702016082272391646174071154687375853920694429668439567391920216136649000356681938869847149536921885695295401128638693135843398270150215246295874208864313924277432090391995583787026718247796665957388105944727247819848343937042614251535984117121392216887732356016570816186820973606799012676538454662529456207552138914566831013369168485148803365768810673696515280002771765454974299359337262522741667626081529050551964557603129033407092625205742424674997696277248228432958999420407552881501844034444112435476359353333453045437422020768226318287372144070709402286359685181722549086444089374804872354666298982123788854727222260221309774680571103372348796355681908415589966936038496676610309736698974139037928810828916275842276072375136640990182008614621381308963298561995269367494804246926928259966755439756818173311535310939068399517123342391931985787439821346853698173750657832160335834750275423356618004925899157487747720258376266521322071359589255760728801448397062270079106117424355027444313418197293023947168134207457587672709136267379269503152131249054328116531711574752752802856769456451328715549693910800853353222803484235467141829242951172416301985562789114111886836676632294214369609171778134786300301453412145258152853367453459207555308128437157881173240738771092858718428775119611676825504082899404140753445496367440807017434959338411248018079761527622467566949547373274389264494163293439004350716928033798849042759668586726032973814875951796351241685998902822309936913539701570399495836970711435431095738872457620977165038171730074918400824792702503939683118391888594759183882883685275988510620214346800566178974173268093947689973979847322588315456421214877556283556209479773104399824654273187542436719320982967171253216668236636617456345545402753343913090312088650433579154507055117800009982648450555959684190047434803814199565655548518191187212873502071692203018878592298937404889547969480278939964471547331724114630778917092826874412983109266166407185049728320493404589131740950566672836661207635923727864456810104498975199184086647359260057833249597709279415900094585430272051612309609605765255507293218719860073977694211868033632417102252710121350344654771322359607279492209038598784128067326388743497458772301650594296044907177168966472173719788053374159702733645566423952261640679845514644190781335157462965265973986444613527095121708770067586840767535082237413922715598096230917303418600037579823802028804876904185706477100461396540967449069822292942138831127728506888920147735468225898697202423195634743082379758549959219378941022679584421020289159959981449378039937025530073287442585901588894981757544681113520302849845151561565394952099335575999566916252023673622992751722398778162484977753722086995516157775855690858828790006462719770830746552029364428387476667937450620499806570910487000095865835352658723499929254075444250639028561263592723222638153712681369632038348670059547465404867789933301640599956150169657323917285705852585059720447279397946118089621762326375816091383369572953857264461586313546755960383990348544182693060923396343392986687231100422729521808954484169850459612303992980605964109760385821096184046450028117625287274178009120751030344851179435476808303466815481797353817558859837265305090837145060863200143460800423351188401197026107174023456281139608598073088764690687127180342535060362737468959865942130845170853623589641982089501997422548713165959257540934509890996188498033246978903712882048373821064034874469411099566962068678252409353895075813649789709714063908426763684308001449283464004173143148628903588993944751777838375814486259025913822797840313782097987765748941866917595730092269074027466846195869603037445795345638265327231355207480391786395673480296690217542050401440500958331557537309513758917788249999058831247849546290249038510172728809056485556244866796655202846141113804374189938547392557152240291988155427407905213663635446642655803970731571191314984296373929500783133874204962275350612904854384547245540017703012056971340507397880162866106913556107411517483079939687013117019535109955828895678085647423468129691942969449441362574565730516190119666780807566362530149651545431898286576664775024874720244313925665024994164151725414083064711433770431228285945133889808720315815931676137945888433397805067770588070206452533505972751198813984869098272132427186243907406094031118548367656386718787611819265177859236932004135632324923378088673725156236156138360038176259387497629796017622919472110992174369014437786867186872527120612883426455065359508379331369124291133184428835108279093512951160664534363521249168119652907957825226518987465871988068620579459183303115684076018771604518062044737508601087527545272093637546193863955897306883868336249497820209495518582362140086185635007970660400051825751412473168177165300154869121200126188220385952123369402651783639845133141036242545942962983779791095165571516264517650056518588579129735233654091067838657299438351758417611104372058530872026272410524097989103539572439304320659273500772792253402174752610990630621197501639678750293731020303933047496770158673495202268564225771484341867414516440611182756445957592531152812569403425314285346526389233511028424631166092726388974797831405498670516003178864816227245234033098799480713327321580485669235039206692659299394051661580994106328464013885111170282361698940039153588055932864970733238641443066790777952135500733839069007425241652094357531293991092439130858593578826310691129729312985580378967427666979509317179414499099911135768125494649801673423270944092443648002752749909368737390509294405652159619222949270150541804746541926225628833249749548420516701895124325846820199730044783422297832813320625713327528288299954843435217660529997200499352504013682883282885640601456545422444529509514212937168663393192493874657078966289885812473453756583208652272239282047616157496628868671264915349727123410315851133861288437130690169092079247162321273608526428280638287151161140764468916592552745604165959175104612398701903545711401020095985861654599816416340217786961691078836869907424153032206556471664686209471291287976020190983368089438440978673086047689922440379253053345161069197139277254639930038235623695124095484745044108252984485827250202438486944470097965037406262347513014586953333378466895898787781129142147710088806170689924798808946587279119134441765518450056813211863189860577085844336084254889015765995973185258256925898326658158269430882916415419528796819426193115336669852329912214068303435386313348241768204634487090587373097602885459166645347381374284069202964337939237609436626794832617876005945386246239444191204175844984918130771493748757035302136625976125679392972641606634275004343402443485167668053215573107016977305175363837112750575066682336780931942992879992881920480420717677354427289885699221555939954028839986047934312765546782960389054023943168556648119828018671021049341383207834539471482575944102527942829600030386851541834145840755178978220358380519019789782940212599090893062044586643655708922116338050109163421976204409728531719679631266540286838239946900797266059308656740696019881115449315718824750699221325193343343586648053853742205496709517378725804082907282838173071371390782226530995474775092035999578419813166177177377046521406953847308211054546432312744219704263131595723285252056428259439988864688492767966826782311513294806356118359146230323568251665358531170015333468908487555425784106844061335001731422879016141945654662103890093660034224927607985409392230924453988576214467387918209286810633956299680581521185220519085992521675372513228159719577244104954672278482983532099986534504436285811591073238177685351544384882623237680253748116080797045501207683160858792636054716003662550050280567085286269264805620726147312629678795854547703158161882897170867259989320855421348508103542881570940069070679377044717955522416593513971334937538098757807227156653603727016457677331546678001826567659055906705305571046940709169794463084555284462072796915388889222049705631227842906507072480256078028292468275824968939498343271559801923060997523927605394268653061931875041987330995319356477136969287837162382180597741550683585477995930326618967473723154621282752121634928798364905195229525569645978967704962963197050594207054408679480941514275425442195369014753945457189251425154706970427417094395980687241786010831868047443777814124451469153086507112230057336372457410337877265554730447607326582512999749418187785851297813128779212655904734394555677333873998214916912658686679351316163195592888704588668069438263338651350923710279739868462321379219099144118207198384386997516585971935314748632154238756875593795265005180747435486600896033068365598180568673738478943094099047331054422970206162463935798696443885566566243143164876936459327640554488320718573231473618106663264793975985933015145527151608188491255094760032380385012542588810927621321169950221194470844812186897000449642637383530784766541543781537155011855849468759431810429760195831586733707659233843007278589735427860110388535701907629425235774592733258304745939921683218987789089871301436630769534897905362694428601803194130136097148850663007372521401005423760271227423551466264838912960480859356387090015491179601941332208747664037866814022263365629600819415872828725752550536395335041310059560611421837508385974606258885144758401217736873809057351361440659318655671578631700507613054799025239467686849657009164728650436049708571196397088427206468569659432747701892742053901830887197589891559884193422358960216837836179176373740572316618456832326281353121260847978996440673956212914733945780373594616409353348371728221156062053837671460632122974568414383986437333401343202377519534320416458771832315750754684830886692150444977219636681959818163411807520587386818155626769063174609363566332488420709124551842339235338348522277081906279781719009321711389469307427524892480311350280662077871308545645332406288299946561994585520187521049487761300757054250705356133223161969292332742725145070792373683574783497274890479700212826909018558659657809881370513219031757396380788540698117226013473848202121902710405528798019578198859314207028285580320411021976014627154734744198741477274970828276911015198484989608590223642055195028414813119179358602502762216517734430373735278665023519831116141748631629535663544891786298182965874560502920376919845043290567103032663011380499690304501559487731794693348987977201783183952832694660147338993197345553510828837547588504110339807324264773723290135136286694818449927613511283459159259421263353604149075248472673390286948985881852685548657996019664540010553581111219052108380575052004884184097100433766996756663910194936299473867211526324191831341925614319659329192652154024825986739925641873346685578337724631959834181033669991161122975739612550122366006078489644820598061971956239547456810817000138643462516729927463631140830554458022206729541519999702028491968859627375870119938333647294723363190227292811266710271133957703966290497838952990116191230004894204225884937776669899280143632272037772447154282420918098244752760333907693674686601196719192018710157460385898180505133360880894396376638213610312006096060913963624310012712587474756600387145028537447939853682424531536332371243431618092040627907726246159180148578353163321128998096606687473079656351797319997026250764179441456840564782199472799263155659888742216502972086898925531534416776200276116244987038618924214753209636558406121454068573783937913123354688657093692451537832955323479643531536444173140816520048364198349098032318953488144563596362400336767001427380849409379595023404482295890642110209878710216307887903239772060645497629890608316502928921499792262234744380802940266186109951237811180007543210040752268658315417713330666554579014608504017390462722650728933627115620647447727103028736580565757818982089701342228825024925935336295315730309866380346757387842338438003163135389140908838319899857909272296460119720547272766238689743765453433874032196258988626532847153729716780334195439096005774787588284699751651147874950218835799121256139817561351797646746031343012914289319778342076305647951406322326861296515487149020211199159426843155020068009774341216690649084954672578790175932858201985301498443055571557733028095986532855482782124486936953106940354744835920888411900135208427427024811990901799107703733505041568481491343962458791790831695496395520773641722871555447096952810794519229702796662258777515163839215985325955246075490052798666227219699569168113776146554508314111148489100662188899526692594569379609260690580217042116003160353808180535702434324612495900804725125792295817200987943953259716045341639506555350928973408565340252467936921843508880935092464975733498167126117038466951232201986596579114608699799467044083173310429940905474340660221339156620749566299027768374461315285416332994800687964632868196930105473519352567020987389966977500438007790940027665953970430444487647765843309766604457958077451743551994163236219381046450739400694758365971333722044025734304285619371531221289901551707253874141235139486963796069940003620528846155604611070771293984720368782118317074677992712602950095762884921530749989346861048181039090781754531038952451667500159938874850141529321470860910668713857662223803882403218434338951279885421719473977207760453261689247416359233552992869466240926916152765135607413850765053545132357286615339243867303044223720885064254789715625971217993082515316892250344445934330832518224777467467886671250529485676565099256299820645355455236471565779648918483192252216324888453901962883406766542437109670599985483757533579469118495634485929528577029415064779061575991597280566774946847983993078931692271334784610569931711707064877685079972073891197776678756934231342866521042038640890484413407072145032745760242118270099982028742524567313689106292843674222345244186285583641400855956812946471858729782695123841182773283686935312839051212313721470487807640893236762827513024073122670289904052462083732973569022668222987745074695719027830157889455049863159809128901677237319745086811111469644006138330564865547189543558521912685815065513092425444624309111606254813775098274444949490402887896754275883455641631457371711841838562591809882035958671797744235978059598573810426698518331073969912541817906484735236366900394533716877111598025912279545064312624731967721060914404380345806069882258512625150409950108295864937771397834877945390138037069460751207286108213993795024981708115690416384233848486798124742124914653895034045415235831364058696305093825120531911046562681125396430372328837115064154134439732693580495234282798696962429823406153389539378132268839403664436246564468172310975839434196474672597596786739591978081105623491874466979593017955858932743928038973007791766837086275418325385325315343780292975757150221396623453368077964633893166642182044046346513337621295272529547015089574579214542121415153400829347087531933362587852080342387271339123904321495332486034972398852463949402107980903629198957697324552713565934922940937208655003983989483560681748255693867255591834342260635516965548275160949149234991874036216120412565530159227445900596791299180156121620028473432429216854004418888358507417399154251790268795729530305310506789728576890023283683066487904013613383063161450426740326101215169356428908905196621244673336614997711554991362758570245696206873433892267210180232282798331548953572252323104804723989936710543175522222402344018764835608823295566271003134862572008965097322212869121283655158777810417060731645696284131983832779859169435175388900774524522003643160285364035567440976861935451853631791890113990488354598670787876031088185539046106662148221862321559861506548387404151384381575010673401259361926305401181810486825269136372491163512718968662022976494954857390588793067453717033787441580721767134692556907970269756642149064627689679545784662264882685292741401987065915853427419368537253202668676026498123111010099830391968524986960755451484979146477041851683360882592622974746428633918701002003867900718262837361253385948234615092410568216996501385349012594957607371108621020980861164988787823637979426520152172686565409988156226848211742213888532770385617739499811866506338259881360543733461275399881593638999771281321176936564542612424172277160363366746404906857276492333650740227724507416659246998268926336148286362958148120046755833556391318631537020822983921831051462147493189355172026142192469983058205797536015733857357893669099681462700272257158228511991192335508231918796395845921218838514708840944781728242052021628043902686755408904901239841534140199177124629169151748698297421640757159778622633558316858036595211233029288797113152104129956414602803173763326960724065728685668804435573487570955477891371231768036760807928354367591849920205134072761419108112788105544324599611161599878025796155825338788749990887633796448073745382708399496720210769102805022748308705233140752745530334465861447619176235942911954303640478150817635497197130555579519218268441551085749640576477995970982220052838291939728224835018828961032848925191825752756155965805362119347457845623790352912046864797096614653025707301053608805350447450502559591776416540607408486032017256599758017712393564544329228826046363482073860507498656266502026363533355564634859077568840912296158859450834828387684053384288590576514940341546659342713003359351355911820375863436431691912027416282382612169114145081436204677986925593050989609591150936930223799344122017114210778868503799843163061963885405301509108307871518109756086790999060933240763707890138314426031431867106530445162763632231496275235794467001655346333212356582956771083509341939687856638792908391671233488776010502172407612481082544182671423713521289432648342181387050033605049677488943207411571726689778618251049044003581732629404727177245825853533511803502960034699084581713592990794550851043056161386688504245576800477402880416083194185426015585833478589471998146378713946844199968539163562015653571365154820756319849244733263832406183673044505957787848286225231190962274246537273976499217005295438204981135328712585785119357191967669795794744298427485317405390644547198628154737002859965087753438273916538693837000661330279840032562871737154416875342057269892555706409898829961945380673224637606019736837605393343949014162794869471072502495319222243098965587271892235019306774012558961943484032091788972007040281000078106064235573781803076859021010117217720981527691437459310065640445109760803084417151881747129172375717544828372570431204458708396313951086499464123742023977605955513007983075592560854739727219450957465970754540278133318762953974409444513186595736635472933555830589768939745679257069545316697820339185211578760231783893423437343572071772637113364791950336165437734088357705151773087602730475248064899721658539089085633909665355083582661443742064418480827394117394699723097145986198377687435432760023161473823461479294513112758321579237800936443531949404807916686260512612603816281014955604199940614915349829676388035650959525580781397074310213436370906982480544618865169359427387770219970914117216294600014686041741634240171160685683377036013489337213888319237573656527876142538176170469496211839276914531270015209929290499537615365356399142682519519646274549187988561780914100212685055072739905066988914440519395527138875863099791715841934357227870257077978251246970069392708570635776034129865027290689945406519318285671093491252235065291375913163492112756353925509765166494398251495384568959184178889246685439597424153184997087347170689102755951816261153090560133453849363335910001885226909971211830980783314031825613261085949538565532336353811180021882002611363071794750535293694137431609092759816354011757380455886643821111059524705284976861860982984029105088060966752846396509474760386239104666162391286136539211886112776203219385472918549927892063894571722197572892388019339523982777392419635632789518672755042595150540007659571761278470691518125806481334325951900216586711477072523520274041870152635885375771283477794324858692236565592196643372447912049609445564938069361788646713899973082597786835525413200394352194815975848196844485761431254913117380855780355060905161733723483807906345325178551295152120227723256853224176928842669483265894655000892483854611634188678273953776928553700808579709783872230401820126608085237141279927253210151236833088821991421867562281839799918891665614496858661372017070861578703341190871094619744440200138612975293103394206660068876668261047325121061304252398276888669854617845527006583840204920442741702585220348970231109760973466826672656891238718200458072385490034561330302538767213522442229904023560593143768478795298401057984005462498439385689584387055768115764406178667419291609667633634459041559358574856841594798000173253781374357235671817750856696277573857744082397000149600029283927334612300168675840298377347073260446305618089384078136251562143110596102887256774725969867041571782422226607689400314554259865346795162689356944647854105685552276024070095797542591453414973602457160097112001640032689758947409335790940815465049000495996381740203104906870238014637153921129469119936926208546325249014283212056643551872020567642415494936725591935248880923638940054299583892717047518306954532933387390489630754890837357121912760256597458467035576333453279208140891513173284627985713769562447283012316133262920508930384315747728751808745966084376620424337838348713554704542898331290822659954438743636863532524543190991326933978259977285079310541691287252435334573647409552302763720160577847242814840833056813474456081273995220491129795526339634259518699464526089269660848030978845405695336592282511085540001427082189138840062140098062481498438527119342763781551241482564189915604974127758066179007930396563526597518067273799374523475093498876561949900987700081412371368168033324993390504620203156883207245691564157801208944748018138689259244182792418409724253283838148552905299511190678412430853686751623992588454581542047817487637305317029596196846331345966121567883896843603556700103885120292957429167899635018837825270248939341185102038019993656548275253224302393293431191237270319856145979744820285450903739414290658805674084050870845320146225082812673819118995246163055076773312768446198434289264248139943076224211493725136842369482289487868467148022595144695916341835350901631297016604338043290832964187281768472897474293582504188266030468662604271444094159521355472460976377495053665407632547433750958420172917738775753076624834120227013749295923169178136579019061565812378403318277813064751007476035531297333399905260284853846096781185141632174144735227188887055947030597105305381195964680356305593286709761917181379940741373943220860614778945504532672654552362406507579405730459928068809674690271877479711680431234685718696170670562659814340911615691595554857036769485145615720324078968003128620795154687557743784082290668880881410074255243819957482064398751955782687948003406987562209656956299768173290244935309971757061922015129847891256335191078045130279446213287315737547000828229254052473304569571635337300240741409805803837934559827474535393125669219744388041166961267433361555165119242889296390675183600979773683139067925166177572136435235207377257407232669705261887267630842230235801319506468136012487298996368922588204996460779910483774746344520110587252976835269095689299733156224984693290728361912410641797673794867403321336799739984516497105465882522334546835020553253604366709054797877718411601119599021752294381227120627201473628262332791909415228009105930411808295090305472130662709281657810262610804052074183800066355836524223360213793981891160013811232626142033294293586369683078017174819940175357129473213810603102033637360157833849137629587246631630262925873758880416333955076851837458469441487239588462636012161629161886980019141171927421876352093970832397449462742807860889337411655576291670087238282121388347994813037266957026679853108127453750693646237523449585875049665590237974152647768678403431235746816610867461633626614432167647526420394425498809118411981033014736567624875354313859802731935939288417252717373203306207362070667931512754711885768692000228439819394137461699556162800375850267290094009043001875104202385536654044626789503788849825933937188464261977958258166229707723495430781139916346084220235627107970510556381527805157836750718019978863107639570793976408688239264572998462790560979747258545942117439503354937102758455210674529039584738260102610006341610967283959731443499365942114654933502453269813319528470992727170368915121527047185319692778072970100979317016213727988857344957526045622845325744507892596184220580844615543200159123770028613968651772885784309879115703680548128444908470113190058437072087260781179597527452081691178871333231270030669173217670725645652853154658069111089833148885867454833514198685874531359483265319460350587638912131032165142171445101518896919717968381233575549279076976309270636960639227631123302921806610224324041536280186661007718158646677552883888525750634346747067845498979768043726286450879817718432725867682950006675163226636962331312780599532305992794780610318244392018861947140198341180632950316356314895736486873913767694208604315351675497356528360997783655143684742399203744730579719517716256805012870218299250648154392700584669880764760286151676631219305685459474845515241710127435831370033608595045676479987208974084531730607064183587282730585070503146337456136092853279123416251021647624663024125017984318716922657000898293996651369021071625767279588280848514438672445776621785156904160237013656503703550563135739134592393283230456734767937068385304023276142422467338655961536747102381854673520552032818774243597870481894335232142928964043950231403751567263879227773552579078308618894018361701997003516928742793167040254366248955721708908594371216282709993671907224297342905160478044205216498079069732017851772419774773738546480140229462588377169295581432185622447040929166805035299462178947432506352578495842971746663615273402532439960650592745088992101607302748641776602210957579657246438103552081281214302657164045991348993864014166420150342408817817921477530943950104893133650119913679941821602902624679793721989428308360961634073808130609240800627218103066726726554421362487482384776274533559562144359698967719204361836010772481041046962626210595392606469371429343299830538733694230515605442119414347479909657403768745859265287584034914611085087183522084284117728184123192129021882722773140901357881029168660306724865685513058108027948487219512524058187906980380044478691473415531493827331148557331799134026544339595262203169669347619588943571244893694304450964095559938291079823747907204957179233559468063959975654371124629257901748755431071080764010697008466814757855491285192532297173059257945528799678504899458843753527406841554964414864246294242337475829185734955584688532116691337896585359376796419064954394021012795628346707366342947013287410356888026959125536698966815996242158353367476529373968434855678963008665637524610898676493305933583416514886095375368325050917846432818402594151318590193214781641397668565606179293510828839694826946164256764012488573144438653131705478352432052244462711706896948175801921716701054610374931423287277830865278627465869771691111860655478125482002067803032654974715830151644607703196102042858076185264239280732995695058268148376709437745223302100868414427388214717148460623034329585144549689504645420980785793890100068659336755467690433347131225208454858405759514707300094673510220189507010850299249332361557265975432859948199809237319432304487557964051131290183496681542187506253285707644684480261275492108986789916473293637816833353598916756738230193453413294014626700550525875242362939499041647796076281577665853219410690506742461530706239048054186875363359199409966227898710694263112583709186479424871694807600399043575719065726921878337107742216570530218386470681467707060340574185864877079731839413593425229595822185102120390750320013064824458014232440045656132089380870033658894301065522164019793197149407487832382812539477474851486934577861428143922149818278917544629063316669218556901327247260661467193746141747587424003045887748435600910177433760320233572952760784963368146768168323420867592127574777431074543990663971253015292295231058973326281427144091757383630823589429250752170586006283350237618786179843221787690892500130144982235150395248896538232875999520676563251621001665185411684741116321446002034396238678847530467655457865030852208859792915902849823012570104198331061442414996934440997881683626701531093208145128028666103390416998594299487758981142843852786641739654833092144085484868876735336352331962851730981282691757346230533135736661809376566409029795782057069284362226581950726340463868011779908389789648642150229874175629044649787534656387088247335330835535686172798077743246598905352918658648055829294063752459893952319548935879547606822103141734296648312651143913892307407486778743962555600602781117949601953537602593516619269433986927689601438194459419056533166468996513871050670745517268869718271760353009559324747191669301613123175786627487547349179578285216548870219083604150362503333832676996149799695069923918795030173846419058677893856228323352334869725386022852279577943437445060547514585947375356856631235795722205141158832880756519233724656827206551797466701556682358757166066863356635041366012640841944704423575862529850296689669769355289124453805648157817616271815068762276578626328033070609572021249145666266209565175986508512208811903634599145356467486794298029598270395034090322058688077312411275972297915770003692306032900638712365908791665801038026671691884765215406299252960453873588223058650020032793377442102976368665425981371516153102170288711933334261752625960532064778003901692667673028156732354239925127979261202904164719576121484115586285673206034817405214857692203893121602682642570433678563659131400819456948015375607124087259363928794904691924617945097610783076829864432429963903236292552381032768930292618301275479305825799073764005711885623000496500407377495027829798163046618794371328870296523246882322248698635172677831227635597896112710359929992692810487546414786424847783701636260685122576095238322913798790247919513064204578793263589356088047723581590771312746758631860063981772742093222187119716177503025699087872057843489907332598162998821255109166622211217807585273254378288778351517414929067008019745309852612520635028722697589466924456839133010928268701540546122574098773603393071434926002183212162081223435541814644497081803753666745672946602668639697027655953912984635421525565107709230231116038425922648731256963238257457125537397381706995314212517994483369747675261907773664163094280192504086531385719229434912887281828893853391024351859930239513367414766950372287128829846225711230406879905847635403045275482082568312532471772145867307282353708817674513823102186593452589297734915538486664002002491093371738260297848823067986803386327162781557621929712119851582675944446543898904736468772114614967129624982713160837452884779739396242888337765691013813191871417253309904376541422246807972950484380446624965576587472514066486288583527650593282917999454939213726272875706520170164231651372954598167580397228384652305000318087380993148013946572508679612441985305095834689542800574027116348006437745670804757467538978047417077789428410426304692579966292729058342198143118349486371411310811417852220749331559270224129698472473556011730803054677052369215653965878381670793877765839859902534660080121797071154177140321331901119766310206686809791776442139857128096251712787427741954905880020945556758317955349930694150035782286632770431032174762115407056716535976470424899301881597526370808567078947419770060108253529342690588150028830153790028954305585526937905793663012104341102630031410431864731020797307117223971859966468883958176746893502356994181702315832578567129290309070877661437954569034513956520081430190547914516333082796208603717226802050077215011458199047380639395788832550340562671101747150393399122089819412636419109081816020260619216760069187294226626372193369670546301843950625325537536458103509482719097439630905698496898360978100994747493197503593736138021045144197081128644776968802826122985021915482008271730530132396789953270711527785493426221676591802648611180277995907822932791248479426611856917520993215917936391204411785400721964743021817483600791377901655208941622277113554324590983156045964764988287094276592911669305281398583692804406074517655987609843312993378732565282507771766682714007643472369438965156501291475347587817661005874208098341324565173234679882117723248199092301191904486008908573167709901744151228181125202434793233186884920345287801771661337810546652945487687074880377939516635599752302173381292450309033779379114857702992245755238648577256081687085949880718828319711058037764315181821994217673204799762339547880252652961572391514621464165753948977254275288983628493158946920390484115413794349716277261184357583449280828953801006613758339860717178528427767826977107551930521489641646902025512635951522869479336780969204263680876279682223987013776719545690540944079285103761450891034147642356154716361066215048017161438838169876857217757219607691509426111775776355942113956716736247501993859984876990482988388643014303875761344646552398851504336180787635097045276638490084346307048392341257319273454245682432859004160804857217168171773007661826163698299454545984274844489880419134720487945142336246519877954554537556021688053809852029139452064859939684159715524186515608257450466993449751640314305502787155341046581469434706117727320677992981242783065858848923542618126412147973390456285305823341064806336905114394977230319862510318520894401715556383349484179693372566162331122667158428145736924322042565986106500365178948279759109163646186900214099151628167297850831750884700896162667548583317764057142200663654072133883534416990760175514350373809549369571648445573229054420227202507552893373324393068062529022038363031988168431875968606364952218569791920618909344579225992837389887577389792339114860798449383303960967445629721588602343848104501933269454632447064878342144740370753999409412281395273532694253482555944997835352958711558099870308879227378942693465599848643235888730751479911394457187171699118915073316587806104826676554338983532517293866340526932881723613366100256177135097731525740727717553691368161889495766333154967824294903998588620393976991330945962448584446096722064897738177725473574157845224749800641405222164367268118668546561758254840745260013181870045962877060075001754321407025433819996957771044454433628184843084639978868981413233765508690195101274030250806723103529571589714342697613830594117499680912189032524796575733937935387145753163423087683500708297463187359927482448542807006200082493801841225203559814946106998666823487343261129527621990763630634966987670237663892583584733493221704204790384592504621087670037388310734469590910563980976436095598948693050482747838013352130540100460309143168013097220916404671017730606071329623107648294040454686655013229016169958950400430366586678899503060746261898151585282817417501587579548832636846774275262666742157445836071486997447117028495752581091777987585592987125902645450037123261978400606586016514740255324630858388397127023207467232462061840737705515694940246542651259476445986462853326091782513117406709225421440780480879034461293449170209465199000260302358302618707328922148541150381705997204924855073247681392646899247370795621490351646798325281957179965042790603555364921198543987895204368691142943339248034763574022312194763273192862619118514410775069925536600636911980276304419093868640955999335403321593294990028254529254140956134460386831572456935831780465370971612493403311758564756300412171309006320517407402024303063701100603554364923255619078915314705287203935959996368054456283237987504058334892514752429162336403324034838027403566970491396661480110477277672438548687470247719291676118234282519713013811708457985162087615535539815889661008208879811808386308188535363968346962527563366815259481631959986144224370293011465928495558160799495076802470558688773021451741292580737740708371532700458480375791218850646806087025908197643625427847639170425364931956147043003942561994149972170630638359152970671167757390431599556734028236404451714334558750755520005361624636944593163956537631095019309236573099511298086888204502207156158724065820049705248491260303290906705678888682646780367889053675034616825562951018718615244080118206715220786504121718472441017010398864454032285097706074928091910745219731156593307434456712951679829429926820659792527723501676746900415810925242297917918680654102234355329939277382119125467813710061571529241482515122139348990850832728036527976930025614729400473405444547318353580845963686452429299079205463551737428575637564224047779828949043450294502412278864759081512578659234745876224066730463142643335544039991053871649571168110243131402949406024777390669916999691592464340563653474058349412886202605789975630096582754852379150831541222071735672199523806338401419613815254953344636455736891642935928425351774886173894014714405625138348960737346879408310756034481337285526338031848607555878180051682303627352813041221738595546499526569120449615515379165128093895859054229672304001207884194758314634697279888901613142180103946091813321343390572560183298283290392456664007879014669501118051629054262850410839410249778583668533388381256842018367180485020281167727971833858266916312502574338043358588045128078976566575497747142459892057057081158339687914432972529187635336313552113315868555035756153946102717776008102194398159501412675439027811218743404111477034893988570409132529847180969678244493516859059680253028413558386412745607077472149363885996725496764010320292402765403238328777107288126266975504751539129151263378137835150586609645859588873737819982214918857993586987626224373432864774912533690817112068623074601523491084481312205957233137562489243780126664703473503761637326091014487342894511103470781127609604261872402818699766763481279270617306485779374793595086999830158603265461498426983925755811291898733300294707411347380831902181420373994997858874008196655390589557386042778642425047309538022557959028639894628675919643054910568888717885615879033177763908316298311825248292711901571899487291384714284182575764784832200011338042097469321736133927656385865354395492288521812635244087468685607350529702605969350857369427147396105248293039571740689807535353670895471864548703032737063273733774681834995174716166281858642072982210643013507229491387124788079448967544463819072595541763502698496541020890872124321406612285168791763384045101110453266203271339787741144727484895424570095070551360505937244772428527109623282959530736360126946164877476738456588482554488220263961010667726153177410275344136988731476014839294490884895702633178305655381263405923462096110984195785211486595856685574860384287130791352451514452601980113376147742455071912780781448631977920784810815214223830662173423418927803625028852783255732100533805034083136531457681572664297670982541254437276337340094954466045061355397211476067868269813101165889439071048000333294317560624282445461351958811650866905736973192854866732666387079936119675961438119885282450686978866877233232009807595497310161009506495774583265307249011027835722796044048768708326224822170318963083886560549659697085355531514020681187134904217834944172867411549392825566813557780556855001661724878127932981650977976491698175192684059867136672479251128951039812768332069589908408419425615715721124021280592260279143570650029119750586481397460800587704581882767899422269457547740699123479203397307734511829397992910865148319799239548254712641604150791190967778427854748915368172430477889640878003951704281928874424958864526867667976797243232690888772292868794329761009833385550615105091161272430214720005554563569870271111462595027936767508371787501454135959508653117729199672675905542532212783249002900465857130853554782537657843909801523259619714797574273477264584826036442304626818519813007281312236191705755051278695395380051260661910562933202931748249483993282105561639879032863045086574526346651942963057010073025588902657827141962305655806007317757449554022483006476385842654979080148967925474396105901292322108148163364537806322769917978306338514441036626962118461018679726651396200687547664633043017625216503214010524900524124600450892520813982347652290498360653704778976502502747241232065256360592813724095653794659509897455981534430832844352231903967521926863679770873064552877412161893316129541492250022921986634863459447500899354380633634360791292379665591777715611300015147481386078382770958046605232092175454263028788550951944959327340153421499632500411176808159696402878153638636099722445485882215953783419166330355939653328927751490361619932903352587351190648682573673385667909488135937166921217305893399349627442498019841399290461252424057680293443531521862087500728320909086168679318412613623541772465366860147974684317840049564922488206500733033981049470666804496232171643035190020754552212155602522415542374880911080425657894223231095370559291194579223327110468177502969039321126932925356403551918027887829082500502126918305605810399553375879212748728904186765071886242970012019740012374317702111713124506442636362924260118463942259482062500654392719362390709172621989207930733133058407239129216670505540533458951947208536024359582704943757672840766389779038765804714574990023285161586078830593262641188130425557855853537078588554548858383012707705952627669187903768031202920482605594298452530767000768660224072553328625520703358360546054406435773592789876362108931672216221057039547020185659943890891114259192669139599438118677777232811909024764480819036367094311603873668011858579856913108382750540151925542800135916941331062760317168944562533923605848286373072811383866229321590012058804015214618052936371316580277782861013391376352441886593668580413700488474639213408301573780757216968641271051902519021772772616280748290603989746212179519771797372822613375824596320205975469668345223303161549612857270897910897133431312720588645033793980332039621385476789319968986401125784567704065400287050168449530693681601560674035458212572624632361615867654996590289448782694659904246441618018779727299111724946596665679003841539194532572572724543346102273666694100405055286837192968412691631651427723820002387313094058135171096031340187413524090763550389559523207639394700325348937081456361276155945867600412607755754061368055880735460327444980213194938225229794048971312569037906734285868794582744780346045218241463630353263142578290334143979323171801568153349747948068946849925155858373123442123270123324653459155915586823463334772202472346983535978370276672774962172045847855766671296177958666282156729266841505038505014682610671069767894144473616115766727317509865390498794762296463405251106468430903686743730262439407660230277980756879029600064092845694635535297673303800847950619164999796315585994148045478549464138670313068475038669716693200953564505777990466246744485044433864692455093633263531762839256623529118914991872809201989066424078023344763158337541963387929607253351368947772922905462451157113333385618418932161752991803202232174715205334404234398838003739856970661056779062431098042555768530575121057231458277001347728820177908002866688070068525955569142493998859900651707392277689133162422099300428432992608466626533526920993381000053693276051036498633413729723087876386334070237598220056523969065530457029995510697132398785144456373579372985553938426473956688609010649358091635278909152194287082161851112954724224369665104967036697259786329143790001749955172860361556907669857796697140101863957564165620922893196586905603587065198165059364980144374693300384017401334904727622115252015057527505770675771843711213095306329540804031023465387592566545801154753994415860184946796778969069719574986568862347824991380749357397312349678034609319892166349047131779231096526706544561712831661311745767317933389937352841307800422971822772856562562708049355844783521976242128306876235099920134985955249764495396050327013340927779328513317695334584276292603196833141284194241592193600961002933017668529208499646291696475648627251868910566806568519983421797768261677106672484482953655876411651972300645315784047682432651763340032293153938462783988183036427357191953867444233552284810254948601236033911269019986324225372153812035740141178965326954451658510768487655500021599112149866917675602919070879787761164495363998925596189856018349926042739765258584140730076966915890791014864356361683145411471903356462668297485171820409270034351924171339468493820618893396849107089397285515197085542393636432652758583759684335025026187269400480980781730003923885075673304030572125618572845816221704316037352744796216064415642083970062037719176177229002317500633785042776412745016713188744032680180725369526016773223293735130134712378699775973017142233827747112891994162175051362906164496000276987282335828518040132433195335697566158734022526678300564216424625434005063210174451888422108114571835304727033194499461481452420706749218149919944861455211086949407723733604069841375956490327029837458446337908725325809503482950723929637942087107223871274200157104875729353899022081059641785181771883440142299375682749054741173181207180942653900023913663410856183557247482880519441826079102920025884844584372481865132557808609347543751688070542286655654142416306597972553426132549139511151115248312456438037166913906575028477591355682945409028734189993646286280200500127111116548113915713676511381294208095179531950699710814073237305605870488615548241093883671881304902004892753900463154547464215678134610972303896901422505812133878233239347864251165673736750737815862960711013299311642540427707291791414818103032872575293956047512915796175321453087318412239255996114747020551251414889723862922591784818175040620471364778713989066915723636669697649764896295309792710968797844232952841141547155597409984337537822697956653489050154193749346904402671540527031501915946428904676937969467711722405010713574862831784605947966442958039472042774968321685768524541775230452535244116166988164132393107960328272559791608814290090234859558497585344748419228614935304877183520316888433767489835835961146736413874181347798325423271143946336564892272962771789306465944022239368003589267035515523231404405216414315769655379707932894307316287351124927616909122497431745151594697816410116645430069644378184150796352111680241924801944505830588581871488865239621668266625313845944492177826299548380188045105959158691748367434718510673051956637167801132136623395968018700000066709894197710692827511852083188181032418353757053334201223485854218131015297683261378288068456683510456816406576429830768613278934607818977039232215230017659276038468297981905416743471589562518737812045352412791935678235346602892485304247033497415361082753574578399482608277737529217265411706064822523908164472392517660548237508310445622086440929996715505123332866875917665650195547860825440520633037825629908460586695675863610340381289144964058146460326792371330607614276069777485269155290098116938462798423896717417951587049197584719989746295225071582049344610472628657945423963533805769753733133913620647408274553051733758462303859371335100843906852994689901608861820777328472641766723951167219067426748881372122388666260166753458620706540275848713828450170922767094069089633877496312084069757090425689520558993023734659329102942837866424368416330490573421478945847649490343103516164219305428244806307296435376119182522399267409900481333348321876266505864173937180527434078545098042348166978211774003618531664127706701373119074678439498807758815812356979403642874268144213468458477064492144291595048724746691145252242919581931188576179451056816670368559409413957525569093283520562841705514514435272901665867547757422099972074119227229071393501757366136634184991168409367563245871261628745064207889306151838972522121231800388244474067330416496293835214763429943159423830079061027769561955376424530043806391066748525343377442389847985273363786181893605997974142222473035101500834970349020668692291804667385014338827090033300251335785013533697003357706339376309262776980310924797326184634360204794074584714724568542675608572630584281632933680709819995201287144644518825088097775568497542293860010147244141580413004196182419327431689351113993553035160999780332881890723508752251801865413341301844767332381843416742790074577224044140878903461095361844958001163915576998485711828961470995853311053631507670033407053103073383999026415323553656843780186519237075029504981428018738307868894040454930286199602759804642903792145421067679419809036586888672801989192469298678974496026306393179885517024629777559136983877522311653537936656066507635980408884672872657840389842731943666576587427416344274892165328120147540767308595947091687488514093289338616522378342598926228027624901375317213925328829905088095264965790231000317938205330904123595016438119087825495621134680507124839855253431872037497603333228309866136777920569937206000981032373542531495890992312471644857363201991008056112191745398472862784608840599815242358290254243573926089546158493127647608743191503041533915182081459162704806426626781430357388160816825500147331467427150463306050427423514760030831321770689063638437307133319326080882576913325488054718177860655665946748389309162717908357202267768299399145491636526768970533715878362971294769013922937831909503834676810635884331053906071351354288327648541101208594969543742712362181129566206730870939454777143310646368405874039549268915735064375400792487239888788297583074789460768148494024304314414022075180755129435306008772806445257258345104994023174578127894911262141674639599010355405661499915117512817402932668080555445598249227472528750885793468184022012597933498982735987371653359203303994023898734395137198604143653654275155971425318049854590008761438871454201432541310755544832979983005718798707781364950667097493027179687770940925091598141271043023118335781436217156200383304042717748962637921190887501519116442720006664116112388222534882728124959431547071925527568868697438744942422811096788581938890638285832871323649294595191157492267745504451650182164827376758941104907224087697564606266624390776311456006329797731172988515033399786657786605862301792116724866506716416637035767048608282334941470687847597629393683638146091470463618692172206244799061873146609568012144539659751426944287764427915186901815998157570055464121577503919997788095268077929606064772797704209101819419763242243654419376141854628215587521437311653788121876564291249009982061046483052611559945276671205542824803518106796617253877061744457412976020346160700573977658955152293188752831546854006278362529580879722393927378308814179172601637779806918806799709187243591307575155188190151325881474586716235973342361654958474867832393647550986327318923707662188676591496402760656083114967470007036738467438939008553895456829391754358430355160141816220676336380343907329147049616860639792059768521631653797888979002678321605360658786084815434228686474580636440601036649996004790079282795941224517441975750344686015352014894487509666802676465018646941284904962471058204753668725074647573641652548399445048872764247617359504058056792935372180288083825253864228872544150294071293926741635520159729527941418973979128480331164449762671219442301597862569208092321567601287861759302731308774987775850464926151117447325057886433633489846339295326399231177912941229519440564904358559407563638610927950438260462208131289293774387265517670149578848446481391481061481435175579378973977041545379251117716900792420614693585609400035406502665118706183934589400438121704257595380181357861184297701483578312336527827281426269400106247306009506847939692403462548429162551638002744058520513938113996858369434942571882126883213380298143074974444776938825093016174717605735182778370035328336302251876712912710022876842088787279222653614301761589346595146457686738801126153293854519984842458114485131392976855009685239032720189133581634433367589611404213585112724076713744620050841051067423604827775004215728165047061952047178995847755604559885663824825695497941925050009037770292491602575476637516671039698029119518017523171535028592716259371259586473726079143442877275660994686776305323952479805798263892387423384916581163605858525190796479688589826112249017893252765472653586891062807415309671824768387865723029350942735714069998475869410590944770076816754379022861275735687247245068137788346134078926137888919919684376111959162833442018853537995341089281956701258593055464528815968350720400786550574971015188793204794477080843688066510977845801139587269658042109514662792311084738865370712105044426703339273158335743291020137165107371046727983488911534018341855331142641555089686395172297254799723339163749382010889733506410365255112491390107288639212772055377408673952165358074386690837864972437890742443210517558897975318335048571887433342185925027052431482730620299027814643369736997413371455392321469986170066805956469203440077846495593963353290858372449158564718492547378596242237576819562646530195510061817054149439781870628201349424574942272206175701672954399804684188446058585403464641847477927529129394272909746743866338426951777696941581706176487874228280844882863408316702313832760729508663460106581458814472061866986343595617024161630061313153814048520532203149785087242759125883615506210128331600389088671645045047941702102036049867582859414188414776538040072253363483313527653628530463143551679441235298393839269057131693348105470510682453615740073550912138549995710071121901298028849975597428534282522113987938352024967687463942769473739321410515976360314487406852306275933592271630519176786995963459137176426810932592257230222327569447219424141559179439848702710296525626391462509949128908148395866827041939139183097178749402220273940779502312909922795017993177581799291340104471433766538780751795308264583799015667638571487181812032971280674236846956966658500783411992875893554092580375175651763746432580358440513135782271871412866572897276751064776807527206969916925821381911828785890676111528833083576262123747549689266021317762222651736551939205282205357117372193855762114464243979450694590513673854473167534982201884473494251063396625469904849395474610744048552431518535867092138101163681219720073207106196418282188404656680188914223282925611818011692135513867742741220534172231626488720394654177827910603573292739014585287518956719275438613786011883877294445981690018750257373342413902352227971682085651428010252775263040273447416538921556922729249569422351914965606403500353611996207170066585526937251840620278853713384952076438610304379124590192885294778582150611476132856091627198397806441783577893426011025301408060713664506444296301915624658973684751161486701547099324170624470730812738360269589738627458446488400691065507026546907254833467590993665955242996632350757650304275728159010893984745519401989198928002102911551835256947521744980584162022056779631097897221577933937756856934796247564714645391818720124425782505961282153073437416991930138029418784100750665031044694657838632024154079572201949825044594137888532713889758501885582841550885006822718195232095139816704631074462110901400214880221039979408893342653728987047035597528595726510968402875912613035393873596224486768445931779393775743001323336387421857924401483798224548786865904719764809576502386603097669908613289505104029992552287365670273069148481208188089743379823103325586559451918187231694947619441035067492007813252650437400255184946548346568290006211427938173290785854355003539768754774014659998302919397532532409097339632625596811264082673531888986747746821272992032921656663957087943284893575554360796248297163403212662590267729124624660466877272071897601844109333314294099035654669370173176733927973869762928703073641303979988744707446141059868171368218891327172708402657815777506686202180755899033019763396899214798122302873640868535987447755664123607310295459189320359405484255437707128239029405126562871279646900204726734429718247848245281321148893964867161882003941575741064591073313658301469588737665611267654651907031373572171405451963909049721331994514547654076438067920893151744129126471387971931499554682206234159344726382667421661119655227353077406329333901262579678936920413822016454805496901095755992509254642184917206736105588314009055631936967562475101812530329885847131005585655827576987889663998037667227648069888091420953942925560408504561243343020852738264818503677982855226468993663374018675299473004410547474418206456203837075167936933280535908841933947638613448603857153250046900851317097694584163115085088811197783738417953550440227782220137093243094022204958975746766105081865056339280660436691941715254658428407668332132691008625474497271347900492542216170775031822384486808568261495264404348224374220091115947365598795193602434378425749770851834215831808515233741584977448643558445012292445000453540845993479702619286791050770946144450980422804111273082383081902493527553736486235324156803478173726996170105585362395247023320430392869308710351997081830961188888027016153585386362322263680187501132382337873154979448636250611231734857457880167830720148055358071219413147887413599532632082497943176394656025410955966565424575439946374916416200507746982584766426082155358444653376943966969852357865940422794138510863485260650250135400909483081984986686458979557338203032974378520039792929758824289926172806617967610284835222613638712160381072055395140516587675628419648953334101035800718914993321552670788750578430274706288886549390093612578062521317627554232485901822294852459032289905637928317160324034978109932113404172014725661608656160450012233270009986651031796848436816640170556603536231586083612334445710188045336916268336477524899780625859526056398533312312705950477959284861572770354186722738696367184558328501502232152968314232125789061167167890398347582477185870147301139870233029507548418550506766022235146893281835885576889163310053619778304401022112618122244764826413267209465190073360273700417838197169521341267375773068594192354295683275544174192898104248983094991552280414120725091345150307040252693026960550899486545576613760932210781060880263791737353822878552763724992199623374477611738382753921215585342004253185180417020491054057285073099242034397573559179882138925070704811861633146819170202114370172297341093650763891677153847789988922031851604364457517677530172666644719927603610039815155089075240398289539528501890644090935536289749410557882080427258803524134636260721890849758852354838160555238179276626993273464942303956965499675235614332996772817254215194334648199564019260557270991001180832727135601783380627343885210858906762118696092575578757864629548900083827161476983680156437523265130222365392572848113404031216918244207127813479611905475609982384177396070321394461521841080567639546620496761089075947709076522287692037219422281039801951427235821332478072300229770825416066714591636010448309555102331320314189471157679800476409677939924220246032232590953460838471068126456126508464900204968221491249382238889628208415410634349819977117727940162868222675313670472428858355032941938244386498174249304645081585290109815385156547072973652827499093973965217095440651908558074116000028402337110512790621971589993929336479973400084863824995491093673473825965323090005960500159420365314472597840816518413440446698250649412079105663110261099779191927480616977549279677762725128412557878022507458754663322898929100677542354730750570027568099333496301118619437165022062398557531594425219280203911636131418208466221918074805178566513379258935910072955071510215111953579263445082212315468503272843505148850960874374034191994864710191381409878726157387303900287816260967929561720504085018151261598334309647502538567409114873572449246911508296437283080123916355587248518657818941069830353554027380986866525599945324424467518258578306540613062689262029777026339764446292767612969688516750499357566174755993796681333137690075326567560570578910774895126182181417277625818620231221464021628660748756719270166914046421004552186031120575846520878726221764848682780781599877728230435767435239235983272651350795886884348319622157978762444410809208529621914399699152921915006020847218099667093265760462201322064643691040523816419785015963562429143851988518513618477849489544031541777543144607038860886657548288531174481997541447813868838363574326779709009913240481887372442078693170159312009095639617592276249315121601661948862829696749389647336523567983704802335526291754305001288195326220871540005714104789238047887741164464193292884546753740516516113217131588586985237918971241488100527222222994030904178468541360639150974013340329625089201164315631534650650174999470316515627499145889098448713885565029350167604244414420964949210021298717135840092515498391804128509992507008520887955013756505643204885591922180645278027090492813544890300241965152418435530987612208720589066505632018710039574301937533993974769054014579455266124971857225983378661549071886655730640337717148950460174236192420381286282982930332421300384862016216709389619734749615017376130288146583054499911878859345025494199394007320530886221897280277555520226383836940578548591487102863054678729743091927001861942695874548754194528841729161966308357113173836000955265695103755895166543130571581009528855671512011917639047238545998958357607221908460136935565161090562730741740329106607387518289327396228926172550368072173355709814267166861015039682070389367152810226583645954861472896932443095127506953795076413075502719842500659389131724476017462341810709760295227675401817986843800115775315923809629188071105903981057350807889401687207218266465589718758901951271801251331981064686218284917757725466621276799190793599771609815148213839525355876883305639366695615752989150609937255490160438357367206346368484645591558241825836933044923612689078496709808994998584962007191831610912491549302093024218039845589786576380904659712844131850174224409139167011414565025436873700033917075631749065503116579756932303236856452773217008252086503504448734998799452234098124981281592351417232089112392651813099177308277899361412063095468054811925404031165009847878006250544678226016202325592631344748617259872639555204931961213187403022143854641730309510809118112878345733555001078985741323578546116000583103022110990786208638564304828808782365394730460651693086113055719057346162641857989243675219066993034113078311013247694612111519885776478152458366349899918214206479169750575982861417071456616907977331835498931972842675614445742478279037427497277221796179349012269858759587895137477339194032427851992580062700704898116750294322932436252705192866421902866543357529650615239476452812112678515752922011001094286097476564572622614292263451296144647113782991234200975054128734966087095709324678172197907083149894284435117604903228841723354071283338532153595082516976092959179970109324104787869314429211151208658828797666609724864904501871788531120999349496773953876606681149070835221736434924990704268911114452123480071166923224769174725984539342335489565594263847906150732202959943165330578809654018169903047397962943724978707330796545531201796098477061436842487407727414915227319215948324914680541982195196517385877607862100427835521883816988286840571361588297636080237019744725145278130814363707689425541274212783626713248398220796985395540486909819129923079367529184768546888280964941351127805512577924365911561724007203037442090131565897571804828918753852559924842777313346190510560567176940879471375575363076177609885258302677432303167764573585109010291193657305112480015636674122514141554177012097712552104780695323215057122352414280828536155924361830749632849939557372529352756147479243299163395957324771063896956503349783407427052583855689947019199501591747861784803865637767201824247249576914817210779487771909260517335948549182976706044809138383940949685930417750957022719908939014851350258246779162134003237788839067533033642916607443045088175921079736606074220672411131953777537770442064629886158261885168362878141821749042961777285014013724391484739464101711768516883486845412842967662834052958960893764176628303956007936000151355790886096223950910027131448642312566949793215083883088098543033522768574892278282153483372408884018425068328099168889449203467517338565719115020511978002471253659158650168211698895021401265430840787006283731137463197284573838144660744037972067435246008081624890816186320661106054723951379144844708269755822467181168077564207932158954833942248758149709223779416825418102368143917483356683117693181080442446115049291351026950344731228415402365548991220891407527503829419480593497149195057690527053952278293222321551050505239319974363700631338818480803630504696133067020654313072931561933263070210941994878959592524071520930606862896650453918622066372795521982407322956905336716406003155858439609757652208603854061711232248516438912738820137964417303277006147371422662223835742819187605441134917992041627563558252969047536852344916208555637282219581590002920796506448330005413841986283957548687757691390499445204202339833300140433753529913951576389551380187447558235089114111256715287315140418687875049597416829994996564055175409862862068574903347398756334504391306631613427145987369749707507719923638067146715051534666881220497573265662810951044212726236573115913011349612317259284489440958534825082855826591357446875455137515540289695065110006366950584123384396079804560483694275868587132404923642552655275695531839677465585009274960442587492083419860618720489981028451063813415625889606976313190158159815249356497417057758406595394200938966348049280235631930255278450920164899318615677791218404605609200190841169663058963687068238360165674075219719462819309857958196413803937324972336940088164922320920138475365836236297596099746759753063194085599774516029534558176359233624754839052600239352843525033666897520512949657526063932176315930629001949701181204232233693227209873791822526917931014059607256374585159347594799725294539165903094338305333958701687695829425910392154312706087926750953723946026173365206700289374146515133347628992010244887775729138170667972962964242803374750449323144326639264774548598238496899868516740956116913823409065916824624548559316684538202293298456124730546910934311584404913045742716772990846280379807216358906647809546127679675501714879889743277648252445760457192925760110274887104000506798393158362746732330577278755586771831436597024201164264486477377658482647277249096324358587613476041183614997282898320711792939996550827607247046617245890911110133604697842024831704715081036871354678653174510572291514085834603800829324628557865018030898479009526031305804151592765040990906939482871451327046542826552784302209869107186366350549840118876543615788732874608469675121241612359892337926963104298506555681210984656817523628316037843057756374829478912636584364066819616453519724389851767911459263163317044980570066414091964739210894373175136966580025578239968853301844754320032635503202588420634906049741229135526431119025823314087199724667640588395198612340109016500079615201409258079459853534130132154744042407378333698550038449623029250923823589785911102810994975197800835489531836268363541980956071634090377314539045899302712704001035408202716769632627715330941301958763867618993296780267717743311481274117530585215040357854690116473883067521318496178722413973787700556666541061108119327913332513683745261816930796543787443255352253686641085225379204261479854101494370664056082199132069314416184704043001356775945681469682062254959567302376064043004152539954395492205688763824266083382940090602568615205874648661865073597581913609721714420391658060225087110860263657077102015922955674242507520301685859588849677076256762776296150786469685742366997496468938826512804922166378821998844861428228359565947840591726576752553266818392678776768396545600032332908036280119135349840333887707223776404281456625310403997358764506931384377359444000863456135568186962024407005829906535604103861741172137545700507116221639558842429790045668260108349036387274609979362111724242053938162330214946139798416866835272329700422150630531461941410852680869677070552820499062323070024780110478994947808436465074209744405599525250819893225422653637895010115216420644379194800784452522971829704073962761217277060586254997212335551386454885910796611755409981439226146190069134412781573805092343100689381626613077227425390477559615676645253489459095131545422330446611101784921462380761136906972327386983491195480925124620236728339982958500549878215949922943805336878242621818732441585540304836503281283676065207602293466844172429021416526116828148989034726620937607183053745684820097399993500942925359343020258602702826654203701953836127580513938948891864777441331179452597621609101003162363801336838832744948010207551250476999545529523162647712720388894745559785544731550979510806074926151212146726039892611825558218577190502209561819814674876199765092709023546522160920862377063639320205623584224630822567612412826588222234401621940734655008700738334084247377580925596566446472344157212480810072679571346460064149145219350396003103166866316937595393881531595322427608433520806399227364585643900326747357817799336633860673914435202431194194818563996197437604976650268580787646168775139281137241310674485151232956839602171306604413827776177584679714346199545271369742458379343566895945424034164972535137599017842935433464358577124329648035802507636014774675757441104218325431749011766146396232523955382245943113726529947522992863351565870906774431629691058446387502471113101688740719245851571518202679717326998639371428016908453261081091254770447731346736856517617256488963731533642743379018947082125373044433228511370304158026164987701276702371633651748834863320462516958014754937229893822250829878961934263202122201151240905821913908172806846787537653204675305311535094138334665564432465201492604994256622607200681908355607641026780103048179872114020916580936577662265909312623572918809425524228661369002466100622829217855259790952214365074553549562874096008325261110023331756152084339471090065358909766129282177548933951662366761731630098071204991869995076395069278860286232079339142438405187587403036093922079686407414539045343049815279681670450156307137940226903391954294327635473714988288204814368449783893135665638381753860713904708565307826405953182060904181263448508898922764544712450961414070607800437049124030887367387223407804447198225003888045023474576511568791610259010945360062298061777017908108334529125643265328627280266359399425094802478307149718388717834871750699652958931895312954343818048687543989354989161006866980163862065018734732674637073436550683996080511881780844288462745726435877936900785511278562261508287744646195246922195277408506424573972217057877538297126972593462484138922855331024539090757550717229700783603729901999072055218861065521754974687002515160384785805336904376763876515624480469896667360769601349026349978229889074673608712694214927025926031042579771149854407562825449070024706589956777862757051408181137136206336956817204916687042043989839529764127848097651759021974850766723776288890629678652258147402039326677717100156675704887509349787719195250428814586392557520633330882426192396042216341152967060494578282391026161320079453589751966065229347510365598023198322092352385773357053062800037182655692617207852151486069215461132283451221805267549539074081064798832490040562816430049936103351884253770905662186475406231940002371636745842564419667586637905766518209263559459779568529263608608723531558795494507791111369141185781073580221881764695633076192739743213350264527744885517039677818964802682109088023104768377276445662318935475124172605454616823716817304931432564646293915080974476296676184286361746905231539378577498370997116579950462863107178857398008826394986350741345312395150719414275358967435740641041413046521844982217162492307240800535709922289532506731127972443649388675469815458550211358671366533059572596802376060968409730898438848905977763406670681624237883638329641280070132283983683506059743677600272413713143731311389617243448301343522284100530984272584779684359492615653688715446857107459538961166492814413196467916996703671239993923886399185085865898984324814575757994713961153944375682981140543833789210812882238683013109177912851674048694531873723708491744642480924588477051343411416867598468342007762572790583608491354876069935333308269948285340305649385720218774223248685266373903607998971075300729046978862781482262528828392067847590528455251400844273662556846292958723547683622899583218365069436448504489007957263156002281127590629155723028557507010021599554095569525386721588331536869623227396473791101447682510715733389636163378132968970330406331305032363978683331328758535699802519466885198335016155997346684233707484381333937480802033539129923605530600911535746100006507824099199237037862538390512731101836177209824652791205207097940887415819390168682675388160676974220774488894825019914733816029303524407370388406110136961290996509693538770846316598989433348934511110624954608302596601902254407073172703290460228877107965589413969757360693550674610030220495776400367490009238985691502358665241657074513410258743686313469203750898926906843659794409834867737086640288057034543339506506909080780509509118731731078668551157851186015053547554196052065199465373717915286052204255308665841559044160807325186558688384870262601693329421829147165195778016253764715020444533715573018391926396181360322039635116225431485955497399721407539600208877891320442685377175061908116103328454706283367595829529502155792535699303973748089172210592291800898327627484091198510661693973325068637754416931239990982651035078948056418170210426858282391149703385320009694690007594969025540224029180428872442914085230373116559482717911304528007178145824710435878897972970058865127745783993775813873614385665381017817924545906939182840004622671380767469821693607506641175183120341931078205924456603683559019364812806139829821379390612951298933314707234191505739950331081591859725320752918590763495891409590916557150118744732054674782357755483845482737646735724497523289737798469433158189942059118017972409001839125821902570635275524014143032296408664314869672357569096588483104234842070428283152868468889861782532658014156269305088291803213904330743688314093952383024854864272163451158196143237464253250584155007544807612089877700784562528990034762962333555301838686107346039313951581894036237094739967433769788739225949015313282975371174308935179005937146496923991533379395540387934151305372393213622928765749295661928349853387699962935809657565256567594042671337590758320322979952038725934670366344012050882607463750619810801577736887775456152232255466098576961589758608140941895744896686249557866335268719864189891460275768935090605709698140783710205047005506020660319994303951485598990331841350786848320111748897803203613467789392039015836422156398420103290403062111311876107067025980219112617078929035949438895351735177097423392372868887662710959612816745587539712554231595979027199554724309440777834543503000411292687166420116937998913423188032225585164092604895868491939827142484206531407850043314368334610141573087923036437797033891906425371912437990939728294384885150697749787221282723717642857387185424610957612877139941830002604285972956742975225100105719580058339538923890706870729324292586109963928136941203514803544381843310178982424303915966951755681249018586660253578827350898637133607322450425359035781761893130922712472124165294791207520617197733744439454948862246137909497487983080166544401469459161931456283364511291379438470780454027611995522306617020259670180994286959902149733042662755061513917312837329159115418205186426712669255202234366925339899343593138388328170867033553334333300471161140968726464304888483610157021291702284460184835665237429558928695519511660071089677188271070802681693117932350569605076194725985429621440642389978087074408506631853529075009951369565150095097875620039975247181196366533938029409451545784560603130985659219822737863044649254831711305849824980454735449192587398737298067024224304936948012110730934505975858834535416495774343760723888766421315112850027764259362795613185944493911258910378297599795681993660682123337029012081000514014015709237183853880510210063838303862867082782870669534055455597437191672149871544740783617796849895195361221461840843508003118044757973680269508533593821777081210589320118648366898772965151243845774663600197020239777862953490478052623803332610047738695238052055530698642918733349567855052585510586381767752258248137324678696500774364911713494581162871371356461989952196577870574296717770498784744435634725064692445740979531998457672871455357849057337714944919617404458624190101568994775680367529619977396202483875004700560222718933030563473381493190481564616524594146092004650816339778047662907852422757024182422656177467883946917925739822838676364092561610627661392268902277079424587443648877246998098628189167491400950241777819470183743833099805926282319257757814527874737243903762894796525858678530925845051741726248328228905207847873184138389284521319624480671552233010926998878078077445120249543523718884166334798561252338740050761518172170759811573667693428076480410871646246747280606061457632919090334098177513799281146630716192394924656555732287334015374262809183971392849918173931290813150166078232561297251403860970336575925980344806118660852212696849532780603267714084029175981623428031393036210810073118232725287648913884370748408366670939208983102755565898946772150701721882315779336069340716723310538576030231159366906572489039164049776910439156531335438486124606913632527450419353980935369908314372706184066926142867473688394392501455505796872211533048926892709563528423479076212045479166887787605192123798646570223908901260615191756142774682721410725136834435735263232931329464989597763171058170518650481902495277562660888167114986217887384976416282061036795892376995582828558566486071285559742951449750884815112475375765416550414865014715637380685569437342748890292099199190176873852894232343923212123869041457374128171263988843345183257653019877375610027268359783096755719111040322931662609604721416605091329298868365118966981462099291920197229133474570525448576981644943547748894747451600146096776444066994806929808378248975044953134833710876781109661305705366013822320766240054013769575004802732074411756774352492906433779601629768121564382604886968242367347461212211451987982706143417418392798765191607050630469206551246024330784163433824257398155994473936442000275271495938643563625345729318006457889882473681405255344606770156204016345463340684760395454967039156431951944123506108271809926975175714301674049121227589428448700267309199171060943414330554570064445245469861983212982668006244127905331908821538725121337390328530747024879211209711203696334675262477338050057681330918143381358098031097730402726770923899865256258178509393907440100001845032082818194437631713930642548538862977921963863465525532414942766813376360838619777521342573694256722136476025454855412877774549613777712654842792323217398390841968764698420003515519720368286219436663089552408296992659399089637749764028837399780244895696650199698582161921657186851819952654360820249806257279933227775817968882849176553024006516771041707972621329896293773165275277837992612861526832757374338580647424712954013286519544472026853622031345414052031608913585070071509221431568504404814632751381564000155046049845739230695823044696930681456098744502623982699025119816539260840829332542757035626042197426072292849321314391204058738608844277577818726879703495277010336735661393387803731123932294554835811626594740435934067160461251380424769818752995994437690460949564406146492374560702547425683236075115102536300541038071417614112681597587934773653206362989244750826480298244306155805093756117467779938639868013353969330498480364756445180357937014875128733936269563189300325446860785586173733137546500617672496821574389687259376061209292793890748475508607211261323714533666722292781105538623901590944977617220161909878614719660771041265917749618621767467926974187741489937299418694653901895206102295308558043559572189364296500010285648808331009940475442963554814118692218947016086590132291090035926330333600172286192425342425005535915969165491582303735463678581098928637555590131287339262778069284998938000702641024646541254818115503454036719351369994831465422201579921945194615432115684922784472002190689776347288877318951895276312441412812725697026434562679113215960488064616599972948939994653944079044587484431087321672657657844681591083055798404614123931360522867847189575215452677390063672201433560048764237913733813573923379655549284003385544697555032964339836777953796523222890026607602522182360604130234371274167096960776904624239993804956081413652068809468481229523314501442199093648989492867813300099733249538685363292865849024054754996002589906010514930882258698593631658255205718043228047112944636360766863748993744568159617669178813028054814828379974472297778655678721658257949532102323107838299341489821820772830293054140925458294864159869629537576068182020483411262750794050744210748335699570006025554963962983234845023386527327740033913130802358189426906911590553354493321351859889775366810300590490730404325525420318380674665215444714462409528936400515098697536400914861749115866520347398498490349801117695423684975009610585978890521579560502818174721754025317434320222957901115629516602533508665666015265354774067985573370485991662533326077931955940645585593773291953205933328289988372888042785970805328755676324222784110838290719762227873208544806363944172694518791360536173871557088814834282283693371604324466353943700994635725702080772579197005537626310154865158520325271778325938683184320954749427533234659171741639481351261493196678629801549136613287453966806941441415082636564157443343491866590843038365788745151882059675668095885910530349269419946191344075391706928612135387165252309102586415596189785633936433518991095131014275480486514375277347931249316815457293490572284277107046198009564213143482980898421553910312168552875825661707768028470220365806927447916704462207388214057192100132768489079593774162081932856976127048462264730197470141621658837026853055500532495241348849564312088318145119272428972288542974545879401123095703727119615902306567320614530364675339420803860400882960040930122980855138066796909553562017535051863222279469569200174154136493592570067281343423819914732099133230829474333685613058295720090653574766235412084275884958556167539941133691193079776049922807603961157742263683561046443223320772919441094205543381499547018427616319944632841760070451869879881649407650025372614678546510326782327477196326415103911403879428244934259883329105039936440808656962592204116332059232062997057136645847451545415492448741847746576264870394553861225638631381590792375106878419158149253124940034512202963020897466263893214919931322463468245554674617224008556206064666418824504234643550568998708335159669299708580709045935715955094052618412548971863319301639455042320009520260294831438324044801301001327968859325003874247274730708759021180434878746355290236480139700261468654313618239155727131308666658518196481667974590129766591598516429776827734306903484500733222793516629017171982560036551495389408897272833788874634254825260405603409170435382570014622632516125543624444828599711841796883638804286459376917650783849703182233813264720624248728089477973729757275889245435620873116095953693129191023175589125478343007943019387307227096088639441834469101542827124035048673304090178977283178732538589602353685845066216858633796503199582517017247318207670705574820991286074097850939515020355060587037992523013156589309875717264605095432878680887460129116984028412846326818931012423185016318621582044351799380676026398897948403668193883877476749368896632299035061054211877959881774858564297615525763715213612898455373073704599198642565330255799117760030056307091712615342689936788876535212906971304401128094201064904485942476166175779226158055499879070357430471722749068910376569816774631671550287147289151364222926112295474887789670231954130415373432140825126774388087497161092936860351149856285790049094809585393804451429216286662191388326396747198622094482927031084236679897220165117025076280509506467709661106829362014700495936620435314355657136407647217550142593701951427402173661678640027534824645986148038225577760566503524401801622432837430202392459973533205464653357900469139437243317011341766819593339428735959434787218387021962989553013568134112542380123957163445436597852160274010151510836861378909969140869995390433794850787713988068986643602689951532051978471916062121389163688063426410351984278915285267093023251896401180187621764605039570040780338367338375046112612540574263287244279417766422107349968001349331877570087712198576702692200715428993699084344062230729680437307744051640775271930758898976702684818792790761885131252631743241944400853102261052218687491062759809010724050241236137886701280846229632243788283430019076254515041713104708149645562075635571599217595225882301038139608949611903126186648120336265692906910702585770042495536082307149765891188187722804082844990322642260141641279652493734499568489571774633259273923806548944953369231812776028938124433249557533403558101097587084418280291002537031348209046677455074054221263747189193137221499370444530658839876953558595800646518624518157691083134729297049061442436693484280143841869605959137621446287414225876672876505731968661171730587717503334235684819425203407550336265535540159064034536737243379023677027319892178376010668814547220662651921088918738199655872227825916119467591202905375130921425974436259229391205837975478562798805298022176154708590882654364478608115077803597037253832182388977871418007340446420221563054718626059701938279375441046995274566972346485280827038729630491290119773054247246489551459991632256428229967481892577825080549756164639256520945446849935012427099737267598798741559258413033805018843779457755737355504491660697969810929797153256237722430646774727568721844577648548644295666238051692308971237567645179093804060289255992586531143351964927258055687499169751542678978974376385125538922331561275968162085645499624695313827589739244410956123985803438990995622010354606543334063619132509300892343926117714061789328672222009071908242771963480729427249415211387462298919656867638301022534166652378515862074322094980266833535612807177800123279084166565864869038559373610885388012884996687830783331531704036432196288838744190810325724684420286968433367820832477291714154000456841354441360513490692345297872912819869867386018700367161020444359422970474403010271278476271322271397802831619318446834712636658734184653305244104680072254943732819364403614098640992091233734314141249032335739964784047592534909173096992625881476816660410414486040781691990325921376104614576857193844988770008269532453074589190845306293113796704860641527946824907747943781022440746595240650171386673964143307921105003207513289338598132491081522950657266919290766597154750481690850741555773563900275669876547213253394932939341203915231894115556284287029515144759587742250079059144827896225502264112908340077223975159920599096377760108457197255291563634657764338768744959971063206811654137070637513790306908513050909146650913340740294826244000237158205023762044264950663733933022948490759474618798571730947361419803794158506039273582327248753884940663426080422123044112448465827973265902756742433174723794946859784770721451683036720040022783898603810137998025799975451979382362631741478579988273742032361102873356488170671993623351778781327250517865976331124678052197006884146351480971481356232957150916811341411469077417720272884265893134714542452281810597953146575758077610815669630304629004401857707190525279546663835251682322776829122851816119596858083639046158623215368894602664772215774779689337448876867284686550191382653353422049590699229783135438912508728550539415165208364775192017963085742428209875169278413991844797835632949023086398567485135782221101063032493761744708094908825219937568773976972443517691047857245835869415869811007871526963587355603790422524755374044659884354795780325747057489525515940026985214112148387967990831009827802428352081478032244804693319833507472353600513660142855041009115375890708837777845616489481648847630284879773390194584664584800957582303702783513263321087542388872911503672589505547103428292011264363855491220326444977217237802684547068129002981644013630103928924566342326293977910091929944182892713148748007221692933736884118296679381897113614315592782644533250163335384306318973366312608443601713470739119478171325632160333945075776023210177000013551710069720649046868169340884555395221164164413519593357589335874304179755541118803685386019135901250903725885288933616777029007388353000209815129078908951752394628835427542223976582779233976710673372703763613967174547386666154744253689317823629621418800701186445652329182026050832273123588664274913238448573555808977298207209910661002237894738372135602193881298204040190220893315805013944674366955925285400673340457119463840554201002405138867674835148990304927844125524802069520979614757360971823642980717590360096533390908764356533692817294776698788088115300894202055177747533241732765230604632528454816626346898046853249504520920325621920284340593301896440757902515661049332373265413900294567724735674524296293962541521840586191805351233222400678774113303212906605052752782852937700641503555328174826227748371849400592972217180892698434178964987844654385618457799273708687253808148441190780637469907536640361910131280198936211424867249746202141234348874243461605431833372336311261768764776888372690666821796442640204151139667355610134177793986317250462561490653736819902817532936738288443189551838506410536044772516210968721256682116902145038513471248583859871324086376300791167364100020844584784612132882017902271385246971014479256170188863053501860106717842874658900535518476237500468728811925275679449909362747913826758432654734797742350401089418718606499176194397148588752569677621186041517151470545103184020766254934781630566101461172736235224405248207574558483630376344452068280715764244438279079616919265059843298542652218329863873526123973653931206980383556438066490371407561973618711341441080966113275305564855279424692745128029501377942619691039391584550127139092453452304572102455744879721786761935352864030752437274852205081186306969227409523480517276276530884409661423923194727131270584108343654511680168105434943124580137790034122313280741190113459340778864509504089980489258989105056482585887229826804855114325321664066088528984159088209983690434675796170591047238968058645096713665655275744648271758412179885075885258500905354995666312317956903617709093717623287981190788618083928372156119454564571908859569391424067761421975615576040535056082746003341755193718429565262122458664202061376143563974117848083033935349637417817761497929312618171625411873238476006700646919362232052444902470683493537155660869467597277462852159392894722035231512429638757858976387714764730811117032444428537175104591656037748228204664000031838104654844816608389845001851386591997013504802420020625091003992984424822529153403012825603072168623432212960572612944592154809520233354490867482254622053045376189269206477269176150977056969669099507973266953454039619310087337739488658070817492134255308933362715145648153981066211761620956734912352437883279401341056567532103087168579861055719413217660732560921518883953120483037124132719725421746759714657387050153327055621588423552158296942990642558823738569346572382690059050170109888100309557135872924924935987168054893377041844541066837377235451548492095774458471241536389341802634603733823639225804455696827703028688804829400053100835329038328901167154136610136776526391017471070242899078442947605200327241642973920354613607315875718080643519561995859490220728373602868524816471754905304084011181869899723786913301092947880770211146049756455336064127787265697941472741968099065363020199223701469066075184220668792909677086950888708968641498731603129390091102242968737432342489223522237004349938921033330592251843918454894456466328727438853878099202896323694588485967538247854408622116793382765045818383206776138037408646898856505220013051217635595018475961964460945967766933045617755555369233366345696823871631467462951297078813957128008841880780608763008640889131966203910883049677737141255112743665882962159378559649892072186088884367241833736218327287599255625803114914563004092936385082602816325874872718452541710504070022844285264969497818226260342715919410005067085752953089575224042802764246688516332129216005055115004196946785854951605307441486268788735077358744978342078375041863874765360401997365466862992154125142087289383628529325404333391889396311580569483765268651522502976225922106764079349550303915947680417828399859832277707100812514759125817906789911867587654885579492745199519656999346037660840292832766609385013861538301599688589256084811236218529995471331550512046064483805879825823255681198665409592410795884930969102191943927307047053227623936998672133167342538039179648716842706528519951688078858555530067310667696879727802218997479281216787555293018511065602636046944723825284979838110061270624311631233320597263387400677503482109767559899516792274840087607970808136884600145674922695362256935309551774767779496535970511246534932764879079556310480780442567843954213503695585396933235250732737792751790742201884142171884344844286005577529510474535581134771621915919901584874586269204138855440467800377020312888639435782392373022649865563234407099570455224753663814823573860106402373309252935400911120343827504154143709645592014422655433857682461930116508804486875689181663741677287050255234345008876562648805501530848399721719066819071427213273248949140004640822018825519844575081740804094593673953668542384596316285728393015213333839052187319621931339084147926325385645666133246894308164233902788317823743823044820277684449488452380003097528841844163403581502529215513753492631936242893022927208744674250594378986446112061859802771365993011876419099878262502610377661484172089766276632678364085039831057329853863515795986701940283757931135981642045011522170224232932771565716337985691357695340185049189555386138735325195065208739199385303830727794250843516317222759735917995932845003583116934224943624559564800677058706738257932782879934953971161369280899845344150623612253674407555156288842109042524553509095591034313711709321429117342500444343870664488226188430394020658361776241624386878072959713085832764032209444783440429267190175302072806936600566935002615031731747014166542473660632037406173173938978703164241371952219218375170800844271064885898634295811520259723599832519447516104530582502013518118340051249484518239994914592724639300029536439012562970207523826859800240944631204259661524969902304855545814169053981986511384511038835211889468676327220894792763178575194410100264885357298471651528356524336533461943956725532109317549204764056983145864535071539125379622573479162126657651674004847789194852407148878507274114974102633484764745515772410500186498263034885132363486989838588062399667279874362661795524729494820997948445171278556925312340150835199446127361153906557408774755178328317404705258131589628432929561247069507346952352538120054482310433753594938470886380512846422740676739424130891578935479898895757233484970987877182261610636263729696584939125426472239751295102484695473795119694937572372533058093892196900355065019692099100171535653899519685309893565689397551290842885809113476108526225867353571929134763171412922648531582142760619956907126213648704755570519726632493483907389412256296082891285209268007782152674852795637601425216412593274027219930486633966771967633445757553358938890139922128985551546901798089829351791066978815174184235476227031066498288425334192642730307420592257451637234883278358186261186163832864538328429064704987028946287878181112977825226807810445065364931549820616124681096898535506765858565762805106106390996880677096947708478681473982012038683382818283591338054324415737520873273769106826044882849946419951421994161885087856337564190913687681810989696889460126520096564669182966901737578260785592227328624017376563106201866586965086813923811667101808517704362147816046644288132108285622004080195751728749139934048199039164341331234083496628750791760234292279701993931086122901257515330367382593513944136535091984322968470458635893598919392289542364107591347383695148984953560371236762230299256000248526577679762194878697724574652503309866708267746640431861427297610865140847253911030161354585908858726039152570409048326529132077855863167611794664970442603049567662687423972682288915620924989226576715435202462390256694584416768845573363669109041383326652821431744172519631293765201357458018519251799839163062835725850915660588484913970336804181913752734857143907315256170124946620230827571492233543151030726290994506183267385584525029248347362203006218537303045554033627891783339200467082844406552763520172368023588256692080792553517682866036945647058607352870399287393937721165420943356905558584185128250892268004380583260500813629080158898198526123435471960121644825546471033063684436506370140853685058560892317589063168411789649909581034392375043800689103371788424569292323734728352505151461041842820019411552082306950450935102232385497548811097689700294679519555326753175222014767107029123356218533482887301843771351275891423502976485876970016062552761711762172346812571777275690935834381389077708333780448670386409631577169299422273020432985593178194655341351927590531705096144372076129327679268148405369291326275797495545425494276657693923526166759974360496131367585054564647623923248258584910433125676083806231708079803544168386000232784348572678311434629487286534023001343091862848429993664475201575199002751861774639867184104055649292229061554695580863555991607602788015663737126807103509401268364509145685444197548349258352310802387074446903141264725230410743959159073643983948652781451385182159850716471206682139256665257627288723334315679262101567162152665045539213765786350599417839599598572566088082472839770959059367662773697901462555407941045230964781562385273363559487439453036500217814698952912391870887638915419532869274978090028794346790158759002136727627841224626614682601253844810899131560626144562090454853021292620687087280655485583261768573611317027735549623162504927926465744176929794495182175390371321251130874140134270929950435711049036589958273345878058779927705287608392501146103880247106376586965648511125055132392157481936277965668345561127934759287530025234243915714935611370774377918235849023443759039836503531659611948093815944733517254472119294059627164798245088639059988954413451818499019087205473052993813995598635088772931870342217881583785067184968414919135329656511644065064163896483587463787348964511040506123212141589443144792366999064847007950609493928974937369769820775152586131999727909787001707269120801355162731737574586846182704044931744742860927218649454028135798474377987765762706368684996327919570737518351771819336063164730721341689663535268944778248349676938251416951295491198238750081155941522766899568765099433532487158945047564520948529645123027925961445062530633509390826017750239215055708894828593675043041006490335881672688743719635271169061930178771249287580430734772375843008294949205668565283351622444947026895171170416205247934070879644429715719601297229664624040624606723124801006733819410597069102238535631941791785371180521187370222130237654864205829820354895041565261942323223688118853593067882862338680730423327647644255468328268975671586952920746922652999363884411184981812970450411091768889312205344792657809867399909281610656521021697327268241725307483971546127115226865192404582042556830545030166364378624375703143086042002476097547629603642534823275568589500289277179064037691858335410223252865213716457968472105017764890344909125546190675606219425601228901023364309462523337966446127319812181026321302758928706447447768829471378019311368377565804351034508973579140728768860616770437119674515245113387383207265879968496237424334676143471923608541358716766807966974630615967659451976756027880679316609863451320982889220980711550811611039295069257053956199298196937943644272274060619902074756972016800417982506219543947142060065779650865596305881800487517287695311468947325651685609462199767548353527849849427613922702634092670809366370726465863293597054688125165790126398158595591931518573933629856069026580430945894941066376432651252573547273681749207429402789478920151082530468383701295704154557475070198666695173364949014807692769316218288304597805351787541900509204135137843472934175758646428545348812874714865729667372701556142203257812488915539712585887210962626626650763731425101069484859130454013334500068231161328481790956027972343032387064080474111859544351635229290932084269667976860281204117411391643906150373343300127690439342082507702878346569005430333259394124114370261152363963286955318646545280284412523559942009866728830284516101700408761386680236697701732094323312143129541879919255919869993750562568671183482312104767056249214805331612800532343688936466708830979533916345509338056259898852575146671216433956438329157641261175234791209656462750179678806814080506860001947909650458663034227174055626485783656312587237957183560925998544024091963384748058767451955457876133988947902889681312860478043412963900455395294419137953639556873235613951996091084101720951993254409732683542325885357968139487708021253640706751976850592541718176683693688234723352534770195973929351610463253903551473176468169234077916990079959901295839345026785500802927350426156723960613322811612565008691094456205388488314356321618935445409644200611377891966523542101529343975575771491664285353455670848718011295284743299322504803262261563548384210161580448670830100149289400379022209083431408805803533809285282061783319609353410161448785597539656469813069609157168928526232123162506738608649753436091110343663608318186031848773521469747508503944549796052304639679116888224126004787997476795586809120046129681021677993657094630352978192716626914638783555611131122988498110436154117888998324385578195731092473191846636077510089725642082360212457445325037919906036687385091133083389477228970772404745381835793207162091818874014814846286511704969317751322870052293021997389191204308642852892644037724071498815874984655923253173664635051391375696597436906608142344215590555486094690071218106164152742226788986230579475306142656466776699744657948032837435997393549347331915690260968802654177956344660125458504785713316074874011616640669915088775398428403346987315647647046721606723866282548299896773562832342606205744774349224369968299731917660712605281674784761530857655798674078592366332650922117124150622170533717509123172528482682140497522934157634698073608353975912753998109724080830117291574310935072736802851948867685579910244821104967232645279574388290401747128680346123919769201317474119196265580844056425489714666031456267633115395703347956226083094770906846113322925785757840485206409745996498588920651881791992301391419417282955849425674770749929984256318337694247540615557234169608695095422099541094205890275249339534906058708862657773328845157312912172341969958559736677084241558901657506756509901457898065453465308153365832959998935257902582707899716747207104058993678597969882490743288888946734137681342424091426613644243308033901131110001293639082391738408854756194904349751353464003289045137238828713925390762058484166993389218959762979514490989598873542245776785574454165529121922047334107835896985405642477540790155700192566217606546229214986630706989602997647389800015425492478909309182174701121543108069405646940758780234578401020626300312972494665061827220812318410273412809870617300176527680832098357983243165173627063560675513321950034258204841644750117853223835102892292181963984609758127867426625312649122328483809815038993149897190052094064248612304513504841156137157627330959400905724617510338137446249444939273847119535709886051509937587076925339090273791152044839483010303615160234026424257636781837517574138075133226694436398019800825437563030040152543177415508814395399332891463024060493061205821623993661507959171259684103918378302280384369101559670504382718437672688264798103782246176207719278364879542670725422248525354978650586519573081554119512694157934909546112134136656098273375420206739710412585697970399166629837374244099984881033284935116718244873969811812813599055407485622436214580739782075965660645909491481686305957773222211153199511861772759836530722398674567771158522364170465521117478697481639498357793387735701476537396727080882879229499222691729196067171948579932701916914466277521919536294814322407297578184418142205628901136781379841055893571708778644611511353390492329297488428230541533872256922586114333835201495616241264225219650068824006758303004299163680815636537547513757924070504095536357914686000922293782706657113701528268819453270070502784139020456154330441197660958330503544739277365917116304718159535349049623810684385003901324871271993097210058801936193880885423262602322924946455619944041120785586971984363562574209128387031464564831854088175322361827255211354525179390364393747367994019961713652212630057395542038131291400454716882209832087489301103916107774033297053465745595195448689543968813072542036836279835737428810772166266597918401589259955298115245717880241868701957252416475469875449082100334161749129821607350924585931754000773548642827248733735707788963961628628466992689409392615812472753927701411265096810958457364635221055388078882676189731432933415903657341288592702906957270424566466607143008553822922252633225407833599903649751212094598000443587839957762151985453944424974744014760158425290759853100449314889685617285763154602811628582663214683321529272848437619385882689639116686702021919064249087862020755518656778996046651568525764574113058697632907670552574733088708388424333871320331777729279572141719356911939915289244510653583489761593985897130690366125285003156523711546994915723205378429227996583534967551417893621000649649549786982440512507316796011075234424796169527259407802871682720919067325387689399549108371165174820790869193705363971417245800000063650312457644424604842024547525192355209782431269947462476092133419739167337544881425403871116960405581908618385880772968166066329325908892373354647895483912175046245871179253334196312951103060973454171325154464729697676683721443792636473518527002399060307145908263353664835296347609375383542028668441404506663408886648897121977861906362349868699231316537964154346919047439619427259936185074503858907759079244229042755291769808655505740276076384387001831548675228857127389505042698079429044514183680664172901605239915709641119725550926310706719242945308145088080612696493688148833262023503598980303884484047549599022247254572136273068512405387862308853260131235377364426520547647411451531594060316737227841919635668725524891753160026061945871393711690045804159995798797502343059338779109237368307896135277816197862806823681332785705311067290072564799173661816059636463962969527042639069128684231429644106883860874129505037338890823897020735873803361947303120980444584343237081408620211967945777571644210892263760427527341155620319501035650889539720498840443385867229357187886939520103756507385697434181689623551490457292042216925974442282202515246169243736073257342610497063552297267788520662648036933645402179630493670315606659172750766494420556196560218211981785774781112305224196976196057327914879185741798376793891536242988461994097194195920156761455063033068558708115770893175927770246221611816881464050594918210506105218661511171557315175388955321002344493658231083141069602553646555043119474379932239105521580861075178098875984147969668841251716979222398837847258354479359808310395917435956546326130053718190306619660217950550532511612937801179438054833079405632168948591874452371033195081348656657405979245295647769419433669572516620175016094106134875012344754833248184653077545649232979522641451382866735763109911782067230839009943987481707509177160654661545300424925865057906411620566694413056886435637547887594575454591939624750117566899085535256184075055943846845082693981008944828809888544387951300243773173453431891906182300582509116936129198693976750123957269075251256086186150521275438389167335428349363562639522582384256001772206376987984042410229927733594883289382461496516493455836532258048256988356723836464676519382870999274681709074223167215380302433852510287829971540324052098673175865875075959092682229688874891297018265845693511175148822196536512250428505782109036979012202448481913643396494238957499627745543489462453311942206426859603617464745496724231759379938558231519918112293727832662824660967869027107910505593641558439989607983383546782247617460810125446115136773442367981237764374978861648170525606102444940961602749698470136250660113258495222487512608240753304242348081647984088634536387415254133192554176448043546995871539429881437857579385352586771835941741244219017705316940871113906289564737109947603748657347967848555524328340422126148257959798859963535889346009945682419640233495042295419568829725871760483735797114034184402810291924235137577816796774785443407064585287362387882963948450502053180679906689128888601156366899626454418816572595511086425354805803746761084484601054909522760647670620878373653983991251007219462587141087804370679844739853341536768136530144323003707362875594737777154650654197223495688446318877935470277399332606775188712410880495161717711987503394530042467943007992388604439387234668109247975126619434616050970105829308083898506356694491935575530412874898967592400830265773414331352403015116598641341308202905592648701557710806933984717602674175865844339099685099472731559285676360992835970021743804217814413566145043971288783011084683923273082000210515760856888622889109964414478973916516422730309757565350299814531302389235171711502641941005579699363074273556394367194897412321847270798296349941092894805312211985218014874026179144849826582942218424569049963289216861264131328211089055427247330856047318876748168706968420511306137140654951107231947121969024612522647999809786251083994685997231946674753830611147437411019144667649973138724810860093663679084588441129515878283702099831189393348789913848622838634591460146887853456900291097410127163015145641625509669807651441168836704455950349810968306711971672350625426775350778205123096501388310216805568028580170780079612561811626158032751198220663077577322084135524869036899755696927856715654069931691580120156815563493977325869168726247802923823789103385534226431438757670499964528180173272638646945621219444717013991842457395153338621341671004796228000031631188682615855146003001840260619755952296657511066468210041636287078028694068301939544164188978190243723237737664255935788729741341746256663590382250476990784624938858889434976917195741257444262420140922345169731247178066977453596405697665346717117945858130386587237379885770839629861283616996183200748124688964058274961488746225164190771292152835186876596416909656407696616427570759631418100152873540738477087406319039068301053949395209098453829176297132268447942703179194078364841802677471528305043132636125736678734894314012803367992266523869693930338286169502899833268689074072442743146300884915173306330080756716930617284715072704204961502562770609323596385828956567464155879746168771112732726616696284576113183025570271786215269076233076683497055132495878213006800727376956220238847155869808638684754864956057577034544419601087791354400781994547788364128047797159553114593616751385098727674784161534862784074587299134489428805564560387608279617787176895459234788407352984504269566207432291239666535237270395350243623921802021599385856057026905117055918052952258130886136785083587313727103382152597576246884461263585298737695037430085354819788540595096995698045464409549110964584220953580498667133046649976436453781459459886300051291986931306162387959236347145923035844789932598934096986539033942504238419555770068118344580552027540339157600884159772367863498726371827746959343346268377518208347577473601885106817949710632034995004204428846482882132784761801077190009858316653635705394430541561771117053925945597320528198359723813014924503268200046217920214232851376047087477791402217907359852954973520970466137040394964905393173090919228266214355785277273735382588441601391817149630901506513162259064727078641171727145480831193282512972301725837090527542714300675698313476642517147297828786837223233590010135979186049234311292913418417182981361491772480189628125562865262013913133403955707944058731288868593534780840715026476885990219030042115596312849965983587685412776490163163372217281336284253377721414322401589790112909034540152312686798785735413085119216166097963845936561583838373255789677857410755501198060267327233705821156455474279854434651115124865848910538488717673042791505565319432221546542115784056395344235644663839153612786021699121224043426203414826204358357146619672294605525160626182148400933845963259580943413084751866299929925505664334983808687393869562901500005939396325085705881099056547074408194711737807178154946962989324751152717814166323861168559388841062694263058268728732185443106686474071577202032857375724417765742591172613818333811718076694704247840459308692761243915582071201630445722556444038138894009362787541576151079936730176936119446302409195325093171485493112135898979187856659048138884073498878993391374585755745942249433974764707136138330810029511843863146028403169952261044221221251886551485932305949920449317793204392354979507392646047217007992241502169068146665611211374623929828455014250570083180132695530559203525442298735387233929338203378799548801530200499811277384181178396094662891074326097909681434700879980766759047475632639216331274370568221618877949424967139795502720768321729397772910746491371764419223957196195053231933992013676409992973907800950856277189637520422999046925006208907072404259783227191299823250886510712956989036976833467907363000583043702088326084908216598611973545639226661985281896070812040447522403664980041019367423058466737585237741844583865688443650051873043073610597239915041530955206722216356478246229464171226187350522883224368249298418206223956094426608775521932429374632003947353283511709137066818550015978775022305245529117613037359207958093526440617932970175168217432788833934771774976957754433647518149199313228626685075286972939852441292075320565934136467301683552713740078233371759432137434143963782870658597742852008676415444608299138442922631445293402201904356941988622581675892438872837119459919568960341884052680614437457523580913559770048573523332400795674033576591636049763775024175034553630244124055626688617628494499824268060345457032661683168995396204797981029039326801104546993969713540761357941205411605270530047287699698618319181361340777548838213530343071321730718878031659857581483927047943249949547789978993635744382279674131859194870229917972097156009745661780579149031116140402033207645445406399800482732838396353712182809490993434606531320498600204441927277283611730357465649546687654972903015592791180651409552340249854945202805838493672607011560582771472295536681062319302153928201674315200386489130733267685418753133954103526638706619923118532436874652901758620412091544748108073863606942220176666085110281732918578264380815429294269260804124834424134381400133029919909233559869138359697123709232043948965587090312285430729339276619218030538714213297259367524654856813847839154531274573413067766792937032480668483797154680568648652429715959706278614468245546216006151750132428070475747078261653234742589604363142165048399084824956364436813680897494598573087760521307940970101292041075225537044121224302823975562808627474853317717612303042527727371958198523956278175220039684669665745540047221019771819195264342014484873304920445065674363484948176999520824128992372187017584161109871100220116154446267172276403167343192458292354781104330244062501747092285365245252213670245363352968191854722384158913239507688082360194407083495789245627505377229037959866944420025814204226457817553195935019256062580284446255164637807644000161837944547827481630629585782664794595519780791619263177526126796202368798678379280084015618499809733760354850805694814259501906474215718332253422622525340206843962145838756609212283688879878422712792900052837940383595223331361456399407207882022215573505572478073308391100758630454343972599901708621973654745585472105943599205737121685064387111635908421867408329919290123016913097520510090122804780916392297529690374312532256778810903442008194302107014247867495282437237694382186407437535860068392390191184980001591834521007698591402205727156861075678173077435495471617460389238279544629634396734367422504130406336273669576256822560003370180637963634890027090510119029690256894634550615561511511011041817594554505540873945995325154774494208960522824876077560265930162210788905016984475899935290182084866864314667931116002349557600618071681285055743396271579855016481399825328079657875232687892448850435193247413361737410415046601238326378006956457317288270193245054299161326707522765585715649306538939157796219557089909218099024176198581808822489008637599469730561669436754538879925395290984173914864888780601340296425051990038411806093616127051040011127141755399976665876293391418821636922202793885256876403651335447307596816328659168785824251388274213085451955530542999676861089838553014543713304248776863433617068451314346091201980519795836716721830395620140619055331798385906526649654820119137085558606729338605565459203405559323322251417172320331843774360092239171499437495145955905558081527829094151889318975080173828327680467349232943746410744706308841100782278737830214687798303844175322367373271482536737006162184507531930684047422824712129166364339558789258020510720397793544399422297476334023333425022169806918969376267994198195962613164340507875751685645462832414990002334363010214009384240701897861490907254953231799939045897118265294147203996672321040232864871667884609887636914184354913287098603625389601074218945612354507849315667062356150442602788396680092211950728911385034946982889097922898565034956453985349557444786748797237420769713601320639442737208670657783146638254506072312535762515633980081595605823203772075593194515117861083634215137630184679024666057980059706835291008107545071908371712039569643008008480384191536838413796031058582349177881540314868590949370599155609299286903029386440677050406025420656127512589807553445513349638283818444180545736809659719238859377957279262562242209947634489302601171159058770037215122153264952852942682475252083410569418282384153488742846082394147985536492480147526313743545080098548123969299122399644519649559647593723591276254935604040257155880662183681576894176019333376568915349256065451504560115947238231861789069343048494451820199747500827482553044196970491084182519178324596581655334960844817205283764560003132825122576062178355341202622762532618962703440500030409083562376252322015521402276178016938901657674891763124234985359937078310099776952792006801864848471376377970647514047299017408106779075790191026959704546859575767797691220821733814221082101170284598916998880025200850096124176552147164842598755293546716217714349239530169778973380161561991707425653731121766439354902236921252624757972253738554037961685695640975778814248654426220434403421419033578189092824519279733161732809239673437464846250323004689097688981244344148384250846422738038707997887130625400838584830382851619248712048655121047691229490082952890915217401380437690183872684787330214455548816296444867427822500521751819467611773704103664077929480363419312465338647655457745769172384105801896315032283993810322223775652654871363437964091821598426100306146208495793030814220997630372286113877794898551032687220653318483244961255371540398200182218022308161767608587007369553314502593093717504887802619164656957894541581995605528321611008781868272465676586131692257941433748135652501475146330589929306845649124357332583809991295196765922862916509712318981504383630341773937424278060898098977372548630757477563621597758542905155982823784783439359687729732096586909817335172807673600691651520969628740514972383941968996264599960420596256015718537053284730109985068158936616593197475356874001626005355752431593544361324086771431922680837906885521133737388587288045247698030538867757909493113553720643020856401715112923003317753293035248990912136834293352278271882448317537893825635853732562134856230279114533430636356108843172768522972583936952156125291141020259947680232047466384324399135480293209865017067490417554881305287110397366140836797173225894076099373838657873052454177537735778484280173297214665953005023910593612987268566787838310938682912705637724575710351924089280843261684209319231541908779950578943474404509406604810340263709263891901510327836237118167286141585283928199659267996547906256423716217443724462884717553720755086216219266094511089986820476523253928467384853618193387596755643411457112206540604147087068741386337686164354679394830030316553309338931674713777955184049026850818186483835475489739989960147443716908792118540567605843992071323451845156967717429729349706911292390851977833606381998757233983198660337622760228559015917533444750265641767340919292473010757720758051281135113820816512628484093449618533420412208999206072331928708994029050854975254396147096417536260447652316697481895296132816707703127633604499489731890028657789001421665794603833308310166779669803502645750605739857102244582972827153381965750839566659633725882627875288431799447890500038589715880517536338413006316421350192242513292069946272598601454372274250672781753477315135088209494732928865337271375296726289473961753828111739106058266900275366907430572854790899455618535833591448711466308142882899927410665239051302503671861265819227475120486070863478380690060058665015751980704715659445378395497849454438417220016047040941750566294524788481686305264982758619275832583501782660132024262776270549609247070678968755841500495513577153247689581291275376242311893411270024207357270772984685235275565279491086519607322085679134644479675548726140929011741024942477242005192780377943154936807134120647358185359493685846011066532843996143233978061712136105232012858774075395362774928168226324923097878987848510793022069406254468369938940444408011712350491854997973823861168000128786064859856682430513211853456230782121935679641667263582246815475787476715855042802744497447962319441827827072880814772274604435454547348896192130402674588870209848202715294752803412340649671410303414328480559913498483892958088033232859828117276411168471280248424147403994639936173362743305842421240373161902239999809655999397611314620620715924046691172309269058294082061008558677006764136469401300819249957643411508593164454559501041821585978523389662120513494128777096816689707000259443032765346011183150039984437646235906187699741202591495504509494792149373420168249617155146007419447559499633812397560290046750364228859389262460468078944999178516636043857811870807875491983615259882855596543741892725867307330197845734603738990732236048699692254269303328034741510703619740761393402944813359060145605913376097563362105388081931176285715788675499383823689334425891180690479799899765473616005854010482314382151573532756147570624452258756601707304170933447552731493224998720093918618432472843576439642853855987849227926896953103884489731458560766128817158494488471068651813124083839377439898884241267606647680338600195650398846102198961223321838021038853392471637493406445819869118452293303263630329490102752515385204947678868638339300715276737748068569259775122702920005054208067982145217624916601367515689043928445395562636159058535103437798392513518879141117365714128819015879186177925841655720220986109667210350843835882799212776621577120647614351795085883319807250509570122333910302676974106694410810764489848924144695539639902245602742786509137501226047551895115378137162318898255618148009580968027369425381786957671525704424846421042868813672939012204972168728096059822481089508832985499956965859527814214196861304716940327497684483522965474420962796696414088413502246668311125871265812244119044519558211199926001636564001323871227681097890738132906617530791579654179210415569482187718061656076505174322722247699034892322815672051336380991309665878501642384894787102935247555215886787214130216699013706686639024648864305861377614874331350766983803781277005656686604777444704941988872207947737972802341309895302171821886656030966289709476542511457183714311900803936758551054156650662059758131323489145185993053070606767572272409996288872907410048187109154832062218962607944657850572135961958532984038532143118847482866306877574490856385472217161685362688202818592513361956302724112117139048926566672067158241736748706743856718932929012021496165060815870506323083714824807398639037748178462211021935525167525183324658872246375564898308989546715697894120406807505630522265313539869572055763136988751131517270620090929287473666469715397795047959675557682122173074318896005463165488367267761492193642745266109707692089702272029180086960987364041149322968305283775956046985017546943323339060526127147297663741762609859595026221120538162375820270855996725385989337533680080787667328686988874487537872237407837918030359626687831486808221664411353382662531107684705079968435679323122267253437289742576331976397075149718214459673063671525398693840126548341341796338287095786055139265235705611994808223337485513589380223400520208426903896660937363825381004512585334829794417380352085583202001988350064205644139954497621360717561315760548901481030958434101391141392572189101409836501734489092453075314245561254716868416410813539668449320271886495798373641518072433622731568622664927861822999541455538998681080346563619086712348620870400612686081113197151001459931460802114814815740267366081385001293631187519203868539051487126983048675802111904046389020900649066488891538356076294354620135340602198927304459682800731966407461009689102121175343497274807443745605907389235763084926540293715958285224520192964216105707755025852813719663445743953684268368769442591806608756924866213205551547142650733524643555176048844966467669941067306813497998656452250870121174679214585684322357158828206005357096406541055552278298563499894639927100834434196429921436575126229504383833075233134026668893849611361699208567587859893016032301546270823111341656823700116311841066437998374236605412662808484737538614014717712152991890817374654282867675513259906692769380210658719115247103924135478792211152905098757174896085773017938771355874081047483476090911463407864483614937462530454021046795385273309718978431771463232304064655255714082495171388091268364527630378693337698050312817295126852560747750646641193956034291446310659686617306364143278704371184625797638238612840164550252102210788453893113774971409775890587267000828540177914324751426446857328545672814652403711310776425706507896158825161118145101193369527907561198411438847690523709334772198865843842649313751285147537942766139907429299532453033859879926756211625206495818664927695746935314148628157148132930421467506916111340714431924135201495195592423454409044673141058322816661637715587642657844782183662948293836547356985947477724818516575027821579819115499542938204428847752579254745115064730985870224283864918438638227479507169339498007694939819687364558521496783367057587451893913732021238866679984964967314170343988498830404739875388148123149587504554389020431584362675760651680292117464067847221692250359861209525675807131839425606980506425879770660933832903983417938238053233914487116055268679658435933633585858772556033416670909448162477209038745878750668935546312624959130836390487446222978702682029423643455086691219830111225855317328839225569921057833417454815966369412873137215061238691322538174398230507861889658337008190196573344785310136401268738457111833304015876311269479782358512857565215046285491400171737626009477174962798537677954826013903403894735519869421772788789454078568224810564919049460722291008841494812908789828796889658980455628075537329256931990287660929544005063473427527390805139477781849369493981233422226647701813162230695116236966411577415661687806398502072107809818602801883439854027160063170859662074527615404500741332441251005833354427987784545481441060721382702015596315301247056721365003088865492227725900603916614343003614376077050240083034392217274623872678915600490126765707997943410324170500813214463014081711924951443144168770939922019198444233159176429314024424147487267412604816022523684624149558534604428287897909025251603819195889088323322089278274682142118994373862098065860458245559086266033388243602138595862288875123083121539554178226311885821075933206051029232346028711904758817623185337748217683870412147034366123944806502047460404116575153910194533778838403981379463550178517897133235416943038343809768050292272970206421482428449435604295613967325216605859294808680013451809286799453938423053823854084959096867079091421363903487772434786356876821713825691915568815486897915388779080114632281445459776195726559842865757375730307156835708655308852448468197245193845734557194071902699625883040521606797689104419422405373320669455509184726736536591832091521643247432755656094116621521387729543592519540372696563218600012764209300265602582607816925073984376631668900421076529740898360606355939807087357091055537893370542153619182987193915566753212591414104740073067628102964527975242989928937731365754935482879387546095465761004878242073160409730627658035158004014211238989839220350278186581953258981926295367034979834243582821525907867683214550579070401511353681937918148132136993592533508231245099709107942421165332500142416107348339682615147986315650665173219228757403343264396695997493584741980970732935490267253563454502692419426689872677515753839070886015730761787507319870758350371872823384885257472032557130612592855005952532569545671557569638971215527704276274756395815542024042941215367610255006471373369790562600087177959781636823461260606879428659092050733706780406959074673469428045945334132325754707035335113990898384069449372377170627001596997260522849791744595181466840207869339050943679260019008964612196220520128720630451275087101812502629478185443599272186744423881393812071896689573852286648687054751518758758549428151886566603620564006211971758270618267021386607088512508517569901721369164196136746667484807134372258943694159972516537280881449103011245732716630624748075855688585048268299097760442371465143020539938806233331570803083032746893997796972371059280188968912464629450614000337770756752373991362918208132665925378973904726387273027779132569772864677885892682708098742402406426029399925516563278446124219357824853804067204097602601615001953258246317824867057236732816977650170224659297953532818233189520093629914665936370413248692999367697824633162981985595017639169254769550856500960187840135479808644821816137823509210677432184676402386976882953782003427755537908744750621163415158039959593628188748843210780654012860302365802408437497392384402128022933108622354377587064091135995203080346522711726118703417855214475897749005502308269224591857340073119563434246397527283831531148024576066852280083776800296654491498003012537384325155579541402524898337472232293046880416234209646679256071868803177111542340524618546900889697258553737993965333864525179950270027848999341966623045043429035006739965314863874169674708035580771077489624064472564583422325820005138986006363428697115541600068406279086320359555702038662517234475546287624749700925349056704388590110518909026522298483822612044571975849928983622391142473219917681402289039740618456232560730536495233771239506278187265068900733400516371335190138218060271667264836578456504434644394110640874950066430775999857383874887688997239540716023310904361428415659808670410137214102457865673581563579335135502319275823755314186159664275795993568577698450419244081863211444412645388178851775851473645276722001156763645146879385018931579696851914399045548049936769215728328035628012941572281874583514504944119779931367751515929332289705549888686859144634624582447644505997457295206911454884202596707150172360327369860379342488042346408924327866161864947741414336709931207285294942778112903688109792395727000711045799866479707579337269649412672524225124078379758553161002446225683069514216454514917426814175091776560478914877241442685652928021902278288456187765570064252489669010287109835492205246626732058485808919796582678151825579884746393590949141803343847631174145884140638501340604543453435043868793523473053938857448950209604301690264582315092158416373185750709140226689723787667647271544564860614644118207391586122630715786428350171154260626079025914721431485780508080679841478084584351786507213751988391019540845725551679862499812273218608700104491521827779334322774663438646832541957333542541589383429780501198193338305266724773124559549528225651113999645998901722775851981126953758255751534720071710162892514738194851824036633925553527554559565541974141768030511594396926442583612514709796066175338055690609436565603893111863808669239963164998512473325737426763548582733172615826409959212643883784023884335352240299792353834574817407533688162805564779708863360202930358892267590466633326635682453458893690299586211860613322608305540181677422043873166221505766961061578781965191750150796106646919497072108008191364201018473722168198952250426433501445816960546054244475287360179822866531960138398279705263405389089688744963829173742152264710532595732322413347284396520628442592229675333585166180438044484151494736259781185689326634801664917606956057481614059774423493191002492985385261701073067117101045568652653959262199909056046300966855226952848413349838999710236224473212760811954651807290331230860018944435403449511714185324193489204596161147464501316651118334049911789505949769065961205158629009331461932735944201584617263915393323803690975407779539970324208376291364903285597770301070422598050193932267744561100196719872872758427611705434298307476473947550076172056639938891070405890024423545533444742577707571587117528036236843758143412174228073870818364569961657103137241742936086070672636229799822066009153145710399925713471378747151056517367920171124816723210987414782225701181141878133394579884568826905250086271913488340010374630738456761197958959548519653924338649552880395552292346696258610858746168657129654400513662818443073850469111383523510013270094443246055569750851679390221539477909435605139787865882677472854124888618771035047383612470638680207496456036399009079562248724979321521157061375098980726928238832454572019555836909894602481684537107593540711452758006789676023812223733724487378951106651969092802811122248937020968775290335238965857463065354348312631731612952265421241780638453320325266811089888218989472972799665905998774072864985172006707414958755322020727534297053021978377790159492761012845302390451214175165675996431088382430856398917977421279897488984978089156968477894606754612711046860381765650607844567359041149879541862875682630195825090971216336365772625124090020478814122747369107368243029850757693845276213652514117820901698099056437200288269959879062641868843095192665738939565218402961827448544976857236272220642574181127645478707819499779304236344814866087227163405234616770024072752370051656107294186531743727801409775206066227882410580128037972289288706913704647307655201645831179228571547749775746873447043766996503868814609737542766483754720483496954361041559364079483469536518455131167617058145811872843815132236709669559331179496933549293706767540358119371457174506996044907975519504122181616598530242727296817817632432838640708686715708460781491060145545027257814844099039196201630703482195319121410018207379530358337111899808298935088100176734747345977597589510451084509928462047442829390140514375014579550805773663152573086377804141372319687436388899504855907434196747931914221268966720528423056170363437961830303417224477912105951729980309380016426216720505143444527386047427683480129268875616655184104197642756047193433657250859063988898785288972605849782437996461753575632425918689915551780382163300388410836152574835433134241962286470152444004528403047560705383198497109382009413080293381137819869795068585842798655203065223477298629537363133937257127695908568994252095410192012384816960951475673519452343082344354061728198191956476512956411765135253822400170567428627480254658337292747334521070695414010796626513373099981806164330082927859349687317860856043608417296240499566005253695991450743670274680192442944154858681541009774694803652449530159532061494154233168626616198940968591899606945997958542355524630272498174985886574247621404777128447628456806502397356540383027064705784771689255960109563050918997118888067830204110977041328264233848887748844529401697560620812739052353935471931469776812650919327573866306519794597326974736907636581616295346061989661361792432450810296617754705457822581464167049077203858214668081694769375083993823714551233850790029648414466779998906307454749147806147420411044919191716913496109515666703345021673026989731323375939266982228705628626726730338934691361174637991601066547724613885269859300306358569326516184450856383767903920954347218802877902450010612485657607617000113205157345025115340415182268581269684527634302942023643800775266191205271196775363436489793759268751567115615040717884165467884647509048769943149715745887299544084939068803915978328846344685340991417571049648879172481789957372631615373491193494401445190154073646277154301344145823598750067617625557720840929623998637864838124070636565702560780884577373964999266835239790698343076955317614246227026902310882368865317126380533778235396026174363531616049487200548285658592949333786530224911999698038812555417952352500991161629288953637149147615899500703726052089587701795777343706678564292488243483472970838744099951304010131177000262178323046073408790330446189966926244948660203234213902844491826763438551662174485227945772984748662851323326269048566892475636344610039978659656698010020763043957167751635322231700696962236968383864810072790870866467808524256432269633933928630860996424738089329336385013689327408837754353706766587630012510527552710235918364629509616565679891296099385173693839616733403923235051884060554399157975058061087681841170346156305011228675406843478086610821972643322936811712046780108578139300788061604916014082091875648556598114199602868908270421285566990910190418266390603530924668020990617892467186874036984241000798076874313069823425696402823247699398849477348669949458194383582664569567836972514269473699017515309820889953478667559219528596475500225279014090466228502308681047964715213302048362153163476125371596340018996593134919476010213131331464258512050284289205468821636378523658866381089990992854066083054626117820458434796519108289574742048396049739442303913811447005390992384177172025569017471668770489743470012864457561021137275632048518222262579500978611636018674590587863198478878182614699692310764082106585608501302124735272300878070950135463349544285058095454710510193738862149939937075614415171692352209656325026961875250978348417494768188651420352953235226159864821951638895557170055990443708305152406882507655557514895078212954004230245869224204485604103981610359140261959753813427272477181603603425478647590155069099246039998474657317654210136691522606919358286619798776723694812480627443018618484176975374339005044811055721279036267414300559452425624833137424621979906440878524758296624653171970297662878643192781986262025525898536659433359993245283213728039305826386126398134395616049383256981003347728131969016188280393631258357861382974315990307897097167810360260230971122993793219996992907455493328361424511728022632282572475725700605932329476267902512201419281532592111136581837054031203562807536970045848902329582013409945604881817898514031535928278221080152370519973251083640122523973447782202226788519851252592473823231904183893207203208982403243825722469854674859304071170858125545309854955054103117596050084348863687558597655131974471718901585150105437002456656398650869780757995169178602808979329337782302291347341033109558761466425928362125520786539364804461105376854548177882419723158107552946864834267765074911301390298299505885879807350536618700182472642753125634448926509851080940041946783117078725876777385542362654623457280544113505104061417762629249607928976892079781467020231506707590465900767586568485356739358103981996457160482039878233269772226166311400550108857764878162315468406260896074973837261930256798976313863468805015888880421278285841504104982349328012894177193869379142876877189970299166760994493860379786840791738567354902768167054089442530669565433906311690288223189203346226203014654438949722018090118995414186966829366770413797876528392375621772464690009720353880252672919466933887122979219039519687073748652522999231630673852140816810711505258949353528327101182820613708071023740871704998762643219980163921510959315846593190179884991380355095499252677382340204266792932961352976204659324676912883051258237657941825174839362259675413074699748510651702686984451587303856172531660122300445574019282560401176453740763671564365780569519918611999091801815634493774124306707595585468022349242911737522177388529004066838950024741374352696500435383803100257457200695711939231224007972356025519773695360590421561434191039249020159506639749738522699880151197513523812721949404823457197893240065147574484963840739499031992762424226023417177823699753923256499234124302160794096157160645949673827017577313515171681108741610249663601977313343586596362267567350719243708955318603519926872092793850396066061431286650101234036829370083627104061936093543306083474383294438448927562315750048399681580037580749963847081755425833099849797616605393641252357914690007262864736458230915068515802344736689467252857594760573745424362030532304390292200179788175868192390843449732667146328750279701296023699857296388081056940770253233106740570232326266907560429631084660980893506078991145204531549681235708684085205558386625419002768547033589206980798505911962060615242930454343852780436767027397539450860030741364501234658435456561492766977566993522913114642338483639971112983037432227918692044582608975328921541851390655837200021689811607180457122955229263180194814283409135320614995011885187250801895778732590299986613225282216322572489061895965767586652060133811430300120449172289447660344126970544890376574826535236832169057230650441876459322658213518976463528311651367919258548708136406647388834973403326616207788072458165909474430455636689467431352629334587546115648101735979326310143996056592376934935793664809724788756324017497807829707128258141541312429738178875315076823112124714140437237291090621419616268413470718010147742080904743343154317591789756354504432176483687867855793591508330257313324759356824246584061692387150387131224079002421226406961663538963329314870149233420914170464892304332857193800380651762641684024885189740734293513436255942755310209277185734497747933152280735660651021068708687118905399532423712506461581831338649173501242824841303796952516600215035789218401984697491795144304168939943789082433394739449634983214917607963860720268416433117919965094186395182835284153510156564402839240877475257186159665623046062119015468980645665258159366606361776195931181692271461938195531327337820817167546868364524473881196308709410038661033713864430082094939418484869024288405055743032116568253289138603700902483736126294424947564621469828610928595794153221156516498468190815224374066359737113565465291970673587257163628654193236963462981670006302669751414983065200576278931857648847544537069212481493552393540904911343843326020228702951688714321994301417404520618632243654701257676242760515596973518135570477037339914225957110147870002439055159137272634965056319603944721502741100458035390088507340069415210672008365946059994486782964112596910180547882203922294347308861056822190150895320708012799091730614803865959498063316211097297838524470427400833974866060552767308302210462756159298270469279495879252779316454730458996492966825858393266165329691005194360239839050406800113524057908918366479050322988184447623322668540060148512950501422530721354963249891984539636539994114635697940989639559072306841650276020841073028501424768222804196062373920844732268976231547477994121448556200781607447554186443829304025947808070708913819333156161754402105949024323985513371381748184690308699413534972042607413473570191759309792197477024875306874907936930592110200559972291048819924429656913264574230140170093397034968133761484123610945307930243913052056090525560717337124549454972557294603920788133526458700672303107658782323772072661611683081568322262168952300281459285761710447235487898499728970993963182356991704062516418264807349396567360320390036216839061279762141970245838246070818422635229426148298718252484007054146409630342229839184929388750326409459899308815156626213167445606312746615324254057767834923164282065891910103840102368116137362744965414836850564540564890295010129431537203993533500070317854127618335925650164071957813442684440670217574113749657654232522832033209043145953897950844019346977627624315364009490360007454120428743383986000817817964729248330163089153491816498747521656179943350694123492766559025199362932530973734032114336705823093805453729164486131835990557419808787732193818243829078972984106669546500652815288743878195289948654829046617913969610931423989752825057380214312074112987495647570191329397923369308358873136714561411496017877733662838645284386208660540888364111074519518977915035447191087261196305041989532806254269473162728030396499574365215308192270158142726366552475149444697976344400620930576852534598477109991071870572052568688441580882826229088122658207180014448871155600567336918786474882936283897403502602427382615747276653486858380521804428783810405880661757993524783418190047933361425507406341140677936604248885068681202586515629128589341704815857004561158240774362379712082886837067779586022798774059120218191191804542999066199900242254175843494215283867579363456073389029873884789095532966278850226686767014176735116889133360736482431251123892742718199151191366462060545338596451151433369891409872498334568237248756510773172091910452887249494542113448182377470437698534131067480702355953085209317209554184490957168665046962299473582397126985906178728080707176077995883482161799111716346756122786237509848591705528575355239329758509673023194134326014586459379576490830506390090694662151447372351132222013898765714824694375577345876820213099711255326008051200694298245215496522550546993912186202651666919362305977980340250506968490111158731564469654966539161973232530423436444010152984813786941591263967746187471270155445497596079673420660996928889897532872936672085285304440605126723776011985075043729363166582656355539867707196125782749410174900610127927321968736261085657317305335907963201011099084610864192803076702613053495191250782563792373120173279982041415651978565435324871911811694428220222775460089871773899806191008210559705232650034748139490621636766431254677347114645087929431646006188101413075942556471078541424152443406961338260868997227903730307274345008580710556050554919991162678720387088088543220786961020053329025747837036106832492422744659757737467548962112059609821727507907291721866155607130348578100439882487944881750148639974313414481902555084305293107662105886542008922033904692234019079213321238320167187139697211816032800088114016337011030298217004432353147433028152474280144324026339948961813194430297944617673680923463022080696059703746970130278411861436912281531917979669076613663120544141106255803692695904526035478384826856126735244528967347569629223465209213212440079812887657479860944513817210853757206429154755536437309173793248246304169724430967275031986555708040151117201598914984592710552989307267396712317439336679103056828677030277664106674937748128895591266630498944080748292091028903937378878934020431623463786612580210907244745021184698029221254183473855952026455969344009370232628240092390872614400591369560658051027300214137115147021670847878434182435521548706457017845403092757697316586289115849560047792751671733240967523730800827596398479562692329170155388730375793602015066232608577389798095815841555858063819375042712045571328944123760898782167084879656259422758682140123018426618533977636010470862374232842426617249392267364364645117350026860922170913836864694695582682602876956664481144297242580173616067377520638440021071743611847703758506043699480699919565085327193528753155784495297593265917973147677760867742818581198362767243552598747203718363054920479801021280628410862572839722598922946147314029775531172596160863427764193681742076860781336274398472102328295917680948615171557440785043117617264349196572311433436783674695055850689118220198648086221803107768584126231839085617463360987693609266177011921342827362839715685966712653552408125895222464624925911508706811285407886261970676315870659626270981894647299969417386033430060151838152200037697269113625480246323387382137778027697262249786043701833319402408905685564716797715438408820641938973735283838442414188916352387030950146861178359540747234807409555312435482827541394268098562652945882035258603328103406718920829601314482081168773839929929471256832765849836826509633057372920687923223262512186613582720226177249823595773383224712815628033021729553842027605258070553027887936143948945692275838255972293433199986198986387914642888915725841923841366504387195807746206693825321676636429424833092369993433643711686297496865501452078333366838274903615898523582882343979655087108306950772596391447065594934719985419457380354522733316883428869805971812730474319586168970771007560633438208976523296560838979964489866092460686043784760957662995032229000452199675094278609329385194057073301178704045686512153203065398926427655049815688044748947646838997675686210814515202518123197538937183914993605054750321976407420365696217222016486961351800751940857529417297321553724900576981080744286403790844681738477516419584190496217392004024307209825323692205306962232258748133418435637653231741994066675233469052399970085821855224508883127803875463698964972021313261423731548320718869450703100751454660670257570336945551515032516855685083008325023345354145794937473167614352383391278277596037292864169736947097189329555609329685092599301499831924908758922765559137879211655286295141250890137943813048910822481640428084989195865353162970234487954939327446430692749334255251462845216102477929324257684865046550455913244324380926884384045588750806583521508590580260374227623978517748583864592141271872639753393852673580065947235588654469919725785728255640702366427452332382503452976681902011932187136076421178737189476412531609105204408346606682113220985562934065480322675364203353314892679602844391575479853459850411898873091528550601992136843168051809239094398441160706746164326669849769661734892793189143328685623354477450383827962146675817955806000410864705141804912952342925350904134450836124304248896690253133742049203861070695001757565294422131640680641338999065827764719627678973257978637564471362204319152429356297267446525972453416549250473030187636777602642301052387452812658507384710120195263347763031135387045302508725404987779955486138066337203246623860754730807235421424331246826902121733109202517879602926872746600668610931056450429206850690434747031069548138911127799601865101846766102117226034786627454227753435811984151247364821910792273903815090583067843836856760948035849902270374155393267827123494716522291389384752916350544708772163195098455078527424701137303687751793715162225325133432971407800815173342775020860564815209077382626935500895603671980501852990511085746371345654827932676049246034830185641344210253796314517975652985978858546398837067710011371247237407828750238283774392128907051644222368265551296169001389077682663647236213535604806101797068845322769296865767719328751860129172078097530640956328238997410270378567712256623926684694321194769972021342839306381948955293308513651715733798997138210857729676628567733212114488211838913481761701999304679294106792825687309849865304750700502567036662018333268773238554252857855069616851392443545420385059160740961609552614689818448042998594246758630624640354061841509080820091188342698986466651172271210707898637307853294078577141846818722954905741913436378308172642853629269902094266967491904013531349825466906659660272296395399798694470412073644285177876695186471353561332452362520117160475577020631579774072582830957549430506793919447932689572459269999735115756608988335795947165066766224445849758717833119787435359737941098820579657304142205322044246421858591783095149247238294450492538641235062369361527036540556655859199655699569202750047977604830074792299241231406888794455817459907905362899182753511163453035572201937934924208905743108124810504651825394952568124470727473667779515894151789879598114134386226917717990807957087753906011049969709076536258598722310632750939780188134814862520710970384880282421147028592958189397418116142850848368226998700712965167577771721702861210527507125256077221386244389821820328718898129540136441651501259459972158828331062853991188666996120442744448415056160104986238105676137891011673010916310871756047268489167754008655305694512957525379887268328462618894292839451615113929077325496845137006408518658069892235551011882201707027069044344304417487806420317188875497525521192062468141373421829642792988160896089364989504156575242349700984947911875703957396196981813738738448869090578613144029089966411215144927398693286817592308254527418451278459142522002703551571029196158680959950200981656775613098247034325983365968554787979665139713661929476903075229576779681176810213050549171394506622671439583222417784493048255380510023578375868881317397062104433128245475593808039040119600380079962196521381184379031611773243751638045380347834186516529084073702361479629651665288820735459428212277121538387775733902523438139933031615565347108495511063858448754496949328014396638805021147066201075600866275212819688309812070845539616663059502364274273824897205946575444573205359561579062658780623155705133366753239154414289695158171184223805191519810542136600050945982111887776867139876661940729777582706248083724027495623937573508255567642423998279215511996630956425194230399547600252002469148835960890441372967106322430962292139374459807647007085962135426178362386925826278793564410965820404614695219726453886073547874644263513124420475329198791486486332004942156290751485053497763448635947211592257858073213665875049722179203207639862453731284767387648202356172451436425048674607113877472677026650679662249899075466843062087377501926601968680734358268005503332444246613971375753410509822804383014834122232062988485912404194249752000577510179701943800823248491756018014763831395099703605930302886088140035337317152197812358088609179291263952504097614769895900755538480251762987408035183213252034753185769154183067992242108438726576595120738482478469636317406667306968015155378878087291005792792163302595487464187868766115165073097918529888834283524317315353607611518192507834264036112071556206289571866172079391370817964277394144651959725714111327258645172859338633868806270437038182857806343103797615942897075252085977357670949675230632204437289398812975074519475127998212351011021324785269601516740023954448541205821492140377643374263265905250388291063410747286683916305081391569072238796008488990137603201693247734477716215985896248134942698826079247837054732393667424025548724455044887404155977725919791219209209854103018843647230812703927681066981288723261228463889550182870682444856311403334155362215996122354298260298921784749354628456086360971649726005775416881567491737470554418650545898044061281973058623021164789894633615764967157102215761934743758967533122257677366367049829289012101151199899772645111436701677182367099350031434683672824498577072629667633022480950150549385920072142092153937237595604539048123936352885193340290175654340028461931278898182322312921006506250566716185273756164366442859695752868991521149405085972003096944162537694895554612065074234579171021116519536200759211104358706112874702640775966427332372500112569090054753698771037980541730391189968017213830630601239519059276408009020662963353354101127764633844404120069852888203711740688340522300615542720960475450040391359204093754409632858437063709124186116742762979967364729748598074357832407898561597132016013956110232104037976575151305743576578165878973994439355055158827358542469489311613640492756114710501667369074998897172286007473580593509994496882177902861418169172361937064376080664182442326764948852285839085837858022325533871313484177141130158343642809771315220670168976753758720994565171832735729049213831947596051750653078205574348898757047539479325402368490251806105262786123282216422593426444722317478793056229417560756581010461981012144937495164929237960220910112230807313118795490444473842739271803672224725198761387826072246810586344713384114351675765599091881902647658403868263385593576344560620931117490626137210199726213991746038013045465450541666175937304318608896728650221357478100489371356295185049655295628036027913179150269272405536111539848262352296824264314578673789803141072199293122878443972447557590814265566679954665683521322697340151326510435674013119719750049860966588828840388604614721762917705836817470362301532941251546851634081763539046826481325313004608527803515669674702356135201623265802120528495049899598228756008131780869867056068083373649338674387118732202037020442110019935670354373899608745575118482079499011995919464365632749624587883193198722904826463239968138779581117592189082963809987215347126829322262758974831468736210708736453522871839368244762515375906777464071992397825813850105101667033029266338544502671938903947843418987801104743953291003234186298769144618874248648233349872617007892850895691352238937503103572073854463986282614146261885833043868495041726895631519312380281185420294352971671327776247616238766328421881917283462575319594549754841685917120051234940251104768085152899278582491118637614207706239595506400888859746491251521975438046756909088037389907817855609753916254799104361891570823409575970492371344293577184966352288969080213983476310102076662370245561888500934289149806680284910335196034655639539448929740863313813259925349554030515761941762732646840315051054818083153747418315455504311060448517504179428298215364377026291689450206558291413943144055208685856285643118599617786531225499507347753114028514797146080564188417453187976974297923948029744928761093481147349351497487018429854677220440593931902726303609041969742517373929939486219108996068452135343149756363040180880303223261174257159751718753999914217637532725416059518304107808283798651403660041237633245702081267620132980203248130063182867645193518237960630701403463232950115982408886698838878930566924194433084279433748992941521276863117563173596198149600357345253626606248941868568983657429060918743879796627222527342633478619921324178547216139953590382348118557718073439486984890325646051808773146514900206551358259486611342429894073277964132729771290736918981853440083713505048927705588733114442483106904886287786258177675735508529938817634769752792132211040193576299909103173682058225928319566928686935527787226917529898741884838123320751217277276881550826021673165742142983425311454813551772770621374331943111372443026019372521026758327917847565934281198965419137933849558396959086093224357987333888022157322648487019714439098069208402850359587719273159764054640308680655914944984545223579029895165559619070104941600017319417570598511555296372668668410651701162158514168448336145665354639019691511314641831143646236974466098571643118225909941073872659386495323202732903883523491096028969134742296114745122444454753302417934959272989016389189255039980846026527811665007411536494242475924149022163379827188738640050429267483147956032458849991670044636433290327288462330876318698291200480585356601402349922109066761474418266898616027580245846446470138926204123109846503128073726124579637692210689613154547589522405281813337141215996314422084532287247935838254182984491750654544648662803761276542353133757712084685755917955564620681432702876213890062366176009414147942569213845390207615657004574169765110625418111772004314277200972304983980979077362839352564416122382619872914106396490771150792517481340605476421164537690774324635142177990273477484607519092791946660896391183196789629426369735452388347363593384891087075007917260480730820902748539477776413286696431764198093013774336521903431091231129933453769434152685056123416382264726673966224038296163040869787435922251500942337002681751657711982928638781621703360513388487811960237116427457760388545297245192860659823045595514416703654035938815512753698969323775648117230373845598295361523884178417921122703509555231757257843695816540689566135224343836516913676140164311990175425961947246725607366757299239307504102771067808313336177582635817298662099406764304678260527190740197379747323051678157068478954779390298518996275454990426469625709054748139604016050944382589121406925634611769864526012136886558619788941250534020360802324445627272780813863823786869341546450650612314739726401740119705643768984935815001794136495794067568653528847557593524821980494481208900778338189789848442034183893583408903561187234374978123638314653987905505147301792830561773834094994169369514865708619041261892360329080246070104678859841550613090606628107803744579579334877826676113679870992792615099796611720152327276841966086420944826748321449469078124288480154664946362889729062422774499061134341825692770162380397099906424034050133444402322307621863141418059710188936295919825875214356121412249870559613861635910379839605592848859252236155236531530196801537030642694094200671180723448925510597259470181847410572187848913047370559372797394967108637180325057457507620404670362109084065679164543642374673791447565426531840247304008585268736918213868501177824623613938009205899166103168120953321082554953889466564995163183579211361474166479308764256039614246256617366191019450813295632881867206693368414500452991337647357338703295413570499698384587914297807501547489534550664457879656049212296249440630677647137842770402909020448861076530362701901770990288521623171755187268771629082961472116056958198520161832574872504686922482035280598634203521003482954462794158549005508978469067520450247323738854127270251913812084829095569965214786891002794863291868021055162857981412097089373056317552225670935480826350313077187713578293343200573889171796140992468505691325062969251013327959630212327398394344372617921475323985715500029175911444192670685540669487730888457280372809558648605213507340956165134244592963217911011086569484805483685825930532618988276840661127553669200233497694768498958375696858532996577976784882574011780019806917754075596637794971461865221462215727969222847593986897360841606792673224129900305031368766004751341232555476618839395781460665326167298850628358127183110991703937869306655037296597561605490733480442543095976614909375981440826870163438182341080147543026385608048354488803974477835023174743098439602074663683726832990022312923278561156658809260682928524800048032552417805110931702290791008038214182760921836185404094782193537256627943500296333522573172431670745487690354593244134457462436206911489234372982703073310115797623054417508348744228522936861215414079893093699034173148384231688392045769731441721917463700395181727666097644740129434951460139354006963101407200980412228011644377132851161472027552367084252657217397744343820187477950910494336284604715545077151830601900435296296051371229226584680014507938519675447702339508201943208253067290803273032668687488888542409911857048250559746225599387731995014264446501191334894300705760603673725450024458919585994971520896092209626293866573931965792434584166897978638842826841607175354681109941077501612795632909206949082096621619779978092652061771519585104486696083962995748797204210321445973707231354356873336883145941997296110467550619256618332544647753908072750837344335624357774580227019469977428294093746157273847031864344721670315954769382624507749039594043525139388540172864856826796490304283601783267492964344603509237517654365333720798447288375000909467327275799850275514120347283047052721534242380348910082222345038487418433886377351063989749526074364994447260566273078362206897002757785050321981917087455263596514811576516145775962762600461050534793777517692377410891186743915087562456078884269783663558402777259672284415100066074008173297734730220707875274211656133859864112168894737202049313697477704234385861190286241690667823920523582809405781065374192125603141903517463180049206427438825865807351798205257086563942801781439626260503447835678759130974793211439955833160091712640155791470445490389264442221554515901698936187017362993602152156670502297588567723917774744027483872875475414973882629519780591164585076553338388899702824913547628014814001499284976275302137208794634274375955749235198362238098995599686372144128861556595562237353169347592380526571397730546167414341386321041384357474586186009553344951551580134309566160819475709252069974805991143619418354857203227381694396465155589408987388308214857301197877996167135755574402323614345599814284144412442811029348895875055313696401987899638202940001053555666624431135396733981119676808126978562531167229138241485958259889567102839343060708612127302866113689669491222715090615302404733924266523016226447680981700713606359318988452575371034564912406752227201573522583871421899600412178579253624404582623788520653188402587447955273587091423084074388339140632289911019388184530935876151736423216798214937524930611601905049132852173065977059227615386909772493888924193161104956240187939542413308865746566333567281235111821514074795596875515731026360581844248784283098080651098699698806351456358740296350294549416292538197949078894409774532568144419986785973709513062696789244323572262696982116802400327920918680589376735375335416466737764206041115955583957706538653469221750997705175942863837246443747764680518838735405086118978285637515843922480611035554329013091176371796366811721156827533017929957229226611000670165057309993729550406169230855919648547064423859681221849309917847637334169636615450421111236287930390364675294816835634897492913447014907972132794656659426591563138030815049770282031942530481971021772067724873778127195745576210617118465383051679267351030926618533076512118781213557157206331015772868474145295570537171416418413175721881793778281482604770686574937807086919428852884814534217443421537176329265265487085972179121444582164679912940645815657043721860242543115369064697651664926526687494571236489758568215168346595124949948603684388425106048356533995793793237895450772368842326081353006425629542045026962048830456967085326700922392026381230967052092356289156541703581127097165497330619780025321810884719379163701797921602575621256114220054388999949695816330966875301125859845388686562714639164874169002095345078609127838244832308064591975608729671359830791909407155724963418286173653241177489177772043714177573520595549330819261882248763788434716357037653800609907317526775990361922051754618881340985700239822247583644406065541928080968489725962055192835271702427182574496906370143824506535722313682433891773539678405202066702573425022799672639589401214169139065565665147962362579206377641361976824949552248368707056011603871091896407172002973419075813724356415049231735435164621341323762555044510454510930605589944840037727113897413478875808137746711716490962399566834128050483816231804711291331338400859084427086979269322799655294799219221769206614700511465361334157511123035920526959592449293077590561491252067085854875513889129505370642475669654591905965362380252030543937955719394575250675445672949020334699745961733950084179920049930088386194423507668000520728849969291119310454125209648764642905665853286619101420266998032641079863028153116591518109569559802432023813611276185030655021201825967106577552964435190829931387570370955938653848962745439128628786569558546026159141895922566199919767027624461708385421211700033428463441771908807336523012717019375399908170599237495459228953493525276725554009077176357431555142757415665356605460217087509733329818166008329664546086078283211715809158300640179476948083610513120451781229406830794988508846423997993895043601005575423077662566209308828758480904134602014601993241342150542378983077275613641471250453195889546948853885055191186513427679827296753962029675745620189783876356955911652921755674672098747177563207434849624455326792036802851643199892149045604075534112062964029202391212237143920672670854924677488536468848508783675935866517275500714148658794332413446583467781519064763382932774144160475304388131782923247751863778647516796546679237609078226349328294801220502276391447555672892383133182824879455323685066941292487637780178180744137978337877216298711974690492374538678570263393363593719910853255079574904137310725195314697874584950947634861611176328482165561756730374360104419217815521489623222527602755491910922144106610643582821991733598615706045194730851757274016807896873872875276929810913009769591068020036285564971715981093830561342302995832775136033549227891423712997244441553998362607316979265273338325930194508890180921040697204362209910651241600480729982281484218213382691604695212985910900346310578131439532665212710127523617412585232423959015913571806090785147699072830574725033709682152155649579996677810965145040401458119184026157631093780790649426347595418775515439887759902234831356320501462759632221445064760709584568175600552778470598459877699771543025873614160545041238717745432911670940258531283242954050274518583394300397114001299419478681192337409795222845715972036009653214280060956637992136117495363733716343074533044165494232627806491192335797828638123145646109017505287260910723074438509449255285017952592262886379672929736174509734247663678268019575373626927601216860980273354071693129686903025291809505465676168459366399372140894943078067561857393490210735500872601323814198072295113983723870252333189065996046614712043687705943826681944035381802925199104534495994515155131736010620615987774217642330851977041877360573065106530424218373396136576214857524460366223020203057966679091001110374522884796583432124620150434459618999305545892338714741334268227422394753750423672377219071146294245177978020499100061882304255895119269402279115335162237237392007799297884252604861010019333244157468269811513137029951222623335850093629234896312735996700765194005168699798101116816787181206512447389486153964041686181798439748551170028667487601700671544191081650499244853526611560594256208487127482425240265141431771546240537742850700831401619644478185322257180614257296605827774618330136799682382725253119151062008295995354114614269012306204957295692365636132913781248938264554288139960496980871229305375617810980012193866974748812121764416994102279763767407656282845091344436208372352536248802641774461087625975652667287447303177738945555539261874165483696058192212871251642690723446247341576174556354816082640309565562799211286350377383300701026684472783961479745267399128465317682297656571313338586407127074173108908800942828391799411551694790511552140571610265743236650184796499643095244138297863881406311791642355227933064672985392978062523803464045624996080840003648850901270358035542177732483841206108689481699088815136127716233494040241873819935947135806796585452415667988937892646606523938262578421248884134252339315761205730224951123770893353156822593282708188291669178058211210182997936466979989005268032131568599711103807943007611312251322536182427643095062595459951667114124269224987619089430522408581575622988788775540632214622978410419386659875685445099338176794929706676559456796200962989099332425617146991517222153687255271789281999149156990221251878486208297637756413487922680716321330405931603167457306870054493905246700464131222463810213512913660555613515295268259576926648041721284648579970307250126747060513685631700879356340951330107629559779795341546778145179059055748629122359021561359975626314786061987724893827374684277125139433890326095661578760863054230926280890551411757039308908064791088160185915675384446820075682790832956273359462589252169449454433410226099856291066218123332357478959635691147565943395474493037303868746268619080161449214234991286376784888490885601769849700558836540412066574327608240278714274370946639442078085423911222913117238475842845574942758411948822714354931181073404584357704402894641595584902548582013193624190916307074716332651764653164695594388986833863023147170852615267192033252303723156527183739498478106466709977385535300223195919737609523874890657149727039061820720448293152082468814039021170967740511944323309396961598209079579360147465203539778087189581107829750365043013107793266337963015593142528613574647762283884580134470333276282134735094897206318056628661304786972440707605311914526071913603474515046344566776263225259703804513126677777708474830732583980170423884025276349283548784749306316621743746952637132676455693381480940967542548801277773744850335924360555042657132186596256704976250023806587515947732117125366292252028455721258453034741039521473568065725209319604888927401636143953427518815537949819242446116245653251706222618777428007616217821639500933278747603707722792398871772570353028741805705162938522064021114089698852109974620481738636171374745247830333338344124151052227502214106414091436786239068495228252511331768772207556859740868365325657768093093850961956039733290071699752219012212345959187486025900423518394224290508154994340851389475354308372428010486259095003183929534382201178055628051919093132366691959003968568259838850332337580137141412445902192046484044874694769474541820805933212602868344773195424860923611042764921108747677845148021254534525039446241892157923939882790977986150247238552037632183079647729821377115126608115155122381221726992270136492913825141220111622466777189745985899439560343049014292034203028982914123338096190137753501060991772942038740662829158139882706662837188432201102164704836943513483663504430717535284992430701230854446639922669991407080640522088761333452269473466772226373638796041992591803137567115387472782625232505344658761732396053590388892398912273002740133678919673270448795108963867819761585284740836286865007238631448462230502495723114732927349583014084915245544980453691850157871117731952413678956752137653988400624124331746992485276007248855397714297773023439909888708456722989248171519715449515210216891158944738900258494305505516436623635551375000859135330874236508259973472694812189396222795661362897084584204943874596615404970013885285664562561692383039648566079491132229300486870454112315773625389911421435846938364439253122679378346296662648452363673667251230252952716870097638979549117078747454218031910097438389936412843826633632626299886667313290748074940286663000221090614896931086359047913149012644982099913789564949260262979589183747998276175124943477421388618103932802689057150559347982121122634953551337161352043784674681909560501877353357245874995346336959074042379867895921925893052091394144969915387836716645352049010940151577745929797707216578514627074026483633782032714769369322647057508243489476503847689012977025613336065080081451423428293073984640743675753630781894658036963277300675223635706030059160009389690947237529450672874906461028902455543088870443324071537490693639306589126310888378037497594142203831391355678314551882828007939249952379431677716581940964318591938628477848308773228453421132797590912050408595201298257353949670307936137817045426920120385603127543121054652992983768272296073512442578942096372339985873414609453460327185901259454086238773782649640953922570717690343592345524852498974134525005233608993796804506432765611703019482526812240602345163886687308593931674383357908218732762467398470582411449968249290461816840612176784778090776057767795018167311859845953862146196601731814684290093780620290180672423908306072409823484863443146218330810219940691541213503515437578449478048969359028561327483552769608124573940297278383362326993186869954488857600986377327108855439564250008744739385386732657157715183127100128748056087786178864451843908331621883073492951601858144337539250415333925679727999749698640080309840012716350691210263483801823509396534448070925451593807079119206347548165058226852265913300898454681492827383806645379954482537331742878687145206922312555171903970738563554812541788863248557834436176976303034986215185729484422797267927967691046820095785625985024635593102983135757220522463046646510680436115335456037930701812619791612846435658667614864243946260695443673857642403868765412090038364275332368672220602224691747144581847393740965314600270227571039409234603766807435259816754177183305816679763921911252464060721182753560495158948955339510907571254234966048729559329163767920286381558417287430294595691965648671555554723606247940789584481339981080422957273077724605958763193367116081310366510957587995013664108454024974231633517901758695898161762215021988792725210387120851822048531815413215737161255423317934262534787106575119268433410964892962665514327956064323930083285553655588920306926583519617475603972372717115927547817362639363300980356089400677743464111893190120015888029521419168620658363339061315621815893037697013397310939776276234212108728596299367030160078371034265425117291627164902181058022548510807096670545016965021151415517184636959666372407079584264461685791420579993111453171409634773483731332762827664156902420425993323811215385923549844202333194892651535062127833335421608570857126134403553358332999853106511342951709812029511129582888503162121602807674380875975064433347254951637606544056948369376926290893929054970720496766488113141716868978557501655999840993675038840760400128407459761641494950237235583532049054920829248879965158416025260297100362105733932733515934933099398897220337259938844852476467385823886742910616123329898931286213096290108627094981053778542702878544645212224825464000553707385930705742352956939045659924453789550494368121357101361064543694057241759847166134877811890963611812693973440597453105705891578567919587462456058726475238654813535231146289692954594691632578368622074723869932219270799003092449951991433299099330579097048515190732876630998040380166712651897367983394770486428498014213773978714557297357478647142215158907596674954301698532467471146873047182665637740093714528563084992625406760928209747836101062767544856288719359473023656008807770966221590383380289181852144519402602413803709116845019346002312309156868950164015337145117378556618768219539227342477245535821883698195932366196727711356525513208749069333408013823729572817700008325081002577706873265039967242126050660328374118046897379799688396632056897834777783329285682637622647585123879069836817271305688388384833874394785155158918243301113147921392485736621469200459800347391051755185889425956614744963736072166753972360733444223853609628828615903661899981410773208972599248981249523143976229234113918290325607296815487700691840798308970712699514581334549393155233170763494131996612341020281524015073986797784413235727415325702032759855528502684963925925009758733768960128245783509997041507663613987139450301750142445543970646539143025838881194150499575461989141915502587676567058546595267960045542945888230464977824092469894476478201040220947819534535531972079637523837738441362739831263241885980530567399814797912638714075883752267303646986982192809077037158798131474812815407600322263824819264039675855041638303444231798761944293198348672543479162186980369013661547529301751224056493159278623755594339441899294672380390133713722599936043271487085355591521152446723791002039797717565265165880678325638216695875523357887420786120016237553099911797837714739426355743699124198395881194751583758779202249957910923726184726451981885550931870504856289185191790648340895460133353077951928419793030934556190990316414472193496542832013337188618683725170736706054706802326650939881147321923212128111717353694035850020416693697056168097181493875335633619994996423895192669468544951070229301650086615138309069548201312783219683534088295479990420359339954390720880208744185153354684881477111931742436100968909568736226979461387352540875685903908045673570909375273307543448270706207674171677870860863806354178062310290083247159364070178966291177140933935691556351404062671009181194190081066619704095867283244148678499907449042591322538030540325404851026261255835126441116036411962862888401729068751077767558582978050961024589233203551108885546605150997258219880061966764852914997015829505970736580789946709473784662678766252841976479720215160813200665187661983271187321928552677028871216886932247731651827329703924762720982701107455508903682729227782409063566004142493725769282597276303505406630859661512633637910636337706371025903220035756468834208588512421827594471782785326817462455294849785967611495266946922651800375731550046664552056989403183427899774666796542662226444305320479188508180886137282090400392923925467999821231123466730186464959569182577067745787098894861176636661276077908678311647680095438647642859609592825831519746274376733926025219181848604507184733110303517299612462124392915745923149539019087351004184281605159609187197237229951215383694915450389453841411397748653249482462300076371996119414766011441551149442731085127604302257415363408784932932610709997879976465041385243924311820207700464020915782348453302587956773449117784001831887455119531309047602633653785143129825302431259933208742387822409437961283424987318874449481536328699816469094874686271613330458081641900276167078307933263558449009033458463675831330964282669846792795068415726817883599060864384769741741426062560910330418537299697016158797536855377575288578777329057976709348972944874962153003764858033168688605623837463344722953812307190231257908931735003027164861871331351447114562048854864569297491427728838043266908856561907320612073711257910950445503303869632559239308968689454972114187451069247800426485107087296712049102358661965297720088881304717923039904930230076760235093006562392760293803784796474926321265101525092293227139497585861911222958988771564496521492637182446117315210851915864156752778681024391061826630331862811764365809854062461765832051815157608647709859347002224848404983267061162320151116594341387885272711597813865712655911241937056467170751683676631258668939155506567404786325226034454454486841413528900067262817782327254555459650037173660819945418947387734649613296399595816936862013975693034239513152096307954702083242291018999098054254785329562744531230591002391315615232882984611223796132017407752228240523831399723190269876081877701548771024777579430450321460127979733456035961984206670723678797838886525082903343511350201318156054023898688839293218766666504253325678359754027325812042680083362169941234969946006942368624715412837339481504343076994509218349915374766644184943484135676747706057309580212723284461403531871290471823339672959049249497705641204980642386090441377181890772117743566114508619433433482893839970430985192903956621597910562384327379131998798619136190757934018738201990474510677643378791037872663631521229140568336923994417208917448955175829970432203588556470429579868330716736309497544321599863247590719823842990490737001213599326635468519561790565813601081003044387725561939613966038709384165061804094284828234833159693244113890720001108521855467044752355545188939306517831922294882716210828454041231943029143740562097095211355943516873091580032249317186481169851583495419173357566692546237823057121156316742498552728492051762124572389431042397488905773383232428387466281250668719807148250594081574272646852929439450678031874038859173629234203562257234741628758354321819719418353027924057107711551621009981003214636579430292823355521053233429360867797455306082176794161094849025623401957745295780143251251287677284650346925777171207439878473809298999175473105685135635480377696152278152473694337747018276724814179510209292670739487698349645136163144812574130762639028438276862741348075022104991554045892834670793555124852117224307737460900303469633459011511328032068827310187307887299040234860635913928195684556736394413834486486460709923125689033125508269763497961832722609423930553411048011956425535165794237541793356352712140564121281178648516241035036554077024900973458934996074203622751360200689735655225115388757442839705282807517050586697800779202142591176640023690525737773099539175851770450391126531804749417884673895150008192998284838865053387510020550927718791868873203851180714316708188226710683980067791805522257466328576078485766784456616356882698841913817447491891002538557913221633831551889128198319302129034470689908932417879167795788586308055150727646236103306197159766542712380817000473415811594606873958319896880462719207748176767481145848670776458719080084817776951501271288183607009844447209720258914202558954707405604144763439204150996584064299877102272999036986180079198241423277252829905786905243790596971264254904659674888946634687331560457781652769636488753495147031725495379009248569157577805402859799311922397462439521428435505067297950423406842274520686301922566607028147810285659150903156811737219553790726173321431294871724530474133698800912289164371956497640012039092776747399775926934349379287418895347387383251323886870168801898317597340218032204495885674256488841184336282072356432213163758720982370193817562468238851827876600759572136786749285543311310242281828742677616627736378549799417851948622748912793037351999497000635490271561769502379123398343252530737317819261495851096161921713388082684481700990166986998773812387186120456146010486313799300890786387039932013351836737435671935589891555405393514595976853481400390205891830867524835382545742243113873381027669697979009425462389872191617294305518439622372703692189203170655944201569431946057264060970272396593111310359151828538598806450787838981451071268973622865942224725260053620149749071007571445281972084243418556966705423393758771803332027132372760309751002147697852081454994252691299380933618743137329734957531996681601738317619377302215259195122723112224911365779081551327497481446017452402720317384931721220884834892755788036260102161984297854978941101677923679362444196513394864798182521889113217530112983422156232460230343849996161856171057211798194594871007429916173918153258398304025296227834704362552520823500868464541128452816368624812199916636977032447666793534385494471635311473266744047758865748152257069800139406686745419700497988452534709548293030658058222944624952100245539952622109420958614483657053134189044756873884015898054395243408846950304693978493819659520743522954424222347262766507027484947739871734842167346606360791507802602968213694544509272390805323343284227331807765765014852864737904498043551515681871144945778493119186908178479776174701814116749878478528961467435135204737034466274495545078257517910782333737751731446306436708654737287933977599119581656819855459918068345236076065681454076244124199238568325661950678879199858464804889967665891349713633733975020410830159351666693065572298297356813356254929787423700196386938055340750854774564460299400292872545372905995961010851720663232028119254847167299635992988702154848308477882624138607990765087173751125836441742697017574488460174975799453460957309330612481783168815168580039255270989145836982511384012179235137752102623989906826385722759822226116947875256815454986296233064082209146081633443670054387312866093401603306004093833239651316445096770568010722752245304919154102115805965753862203282858992834662093508935618096308810045316873845726659101053878421396731270726909644466349886825813557029471086702187671078118887982554899764316367786031171045159372190239677122667396459746471883818335439043502560745893745274990387350920755840543716641267997204074334665701958961462012428286191036202258026136304566773643236026670331438689350188129751436672049978324212512759441750607485649707402945431356028897628024411641498921180029815013177303961570179502094708133110994753933391847908932676369746281899085869575479008029991591259558228242718077505610792091434700566671138537463543966875015238097749701887747376044050541057403632554940179900940968118242148567324773056512288787379558586643716438082643105835666773215245618454460780177369414892417738996050395687870125036260299283076122083968590042532009860884947203943229721016319127161542591431284654707906105834167130263949631726029008460544266120955807304996151156503565704282390081802162360889014537321778563293845081416684413854435080398757144752408924678114338200647701159050044090578520155158830755190614385111006357254711600887617234520688081399616777930984171935206738916663702728858451311454277777590467594751146902412447031077209267420077439607650309002032900534312387085783854628750747542940182642063897899597585706574816068052955252627015230288377463203228579369689671935991744850577969683997122146698094574216891552683692699400419034788477386445024883369237005305294420285429384280519685787200997823882403412142052048968244127074827660594785276124917630157560835308056414241640004877872463736815400424697861952454426469141102341185030495715232881269844679520677269211897639747971195585091897507062239956713973397006378544345785855369084508062419899428659659824450133347469111820502192859723132091408545905386067073945202814005904775393609662991278315895860398711755586364158930622327462680411256356751475481569906547727408584474274726102440689899946692233843352557397088617473743967615459672545851430591037990117918016857797912395982815247261335297366701551811027762440218641987960746557463648162423371784898158503668355701735634077720483897543689948789780680197876729987055157449085818876475325949267967172640438008980941554360193199975860524636006594050361855331446554469136741006019485205340128901419875093839370059441904511739585999939843504910074928358815721943394001107950906546750308307046312990507091280297899189652898438208478293938027006852730179271333369391163725598571409753437341962528039770998750060410031363395041730240669229029964919804524387315933819500131387215970801078119907980892138980870898995885178421206542135535306801533681148315417898346409515220736817121259611817312214602857386945870819457450849154939913996672675837152549177066858316673926511274359874773260339766238900261309634716533463156263945642386125154926738687066730116995247256210315126146341085168336394377434005090881286279662256795300971834840789562940256333485509996886366533225024271035559976041734431420780728304590172639426791315362747220998002426665195267185643958046068301005510800316988163607315504727220147382379102565638377257737260112069152957000672332403200841081030558038101479924322677611822655480078354492686196697028774017944121369531954170672093831920133866916098528179851467808391095431802376790794412876234691151913895507673834049594099393426205606986934364955629884476160482691851508034186896207290791763272104471332243298858159716458161331242647947978381641532087691951474444360662380578098915512955647457618782826489375921186183604746439222734107679830994737751842152806696710901065624546513528098700651104170839908537863349265836937951991535502700398215519460742955123745018357393168221156986431736035246268880171187620944017340886318269525002570683423180746425507033583507422430385914489640489450157552675072226492553828663710523103784606755322832552071853168124477832681939447925515851158679497236497967643113173060799410612338181696632733588127811093787987062327967582487794191221170059971531005264191733076188885065657483114947821376320009394837684251841620062034615470400193129286802293708916176772843418004089801325500092084869867360612033489640570155305924959222338298006469599444619063860332361761211574806150356745158299508824575102640970665883966209451039788859149789311237709350815989531072300516086906052676520138444609035854400340826784142807271991726971051254035861888485613513801157267700652704487275355212511890163141497236174916609898317446109554614641582083364090791065074111869420084928787900898753653196071737634058703488865719792359794137077482678296515708843418681716137244226788266616810160054361653980854429471318927441733169842189408260620964080399020152179463130189329359121733154158473755657728511148527526792629118024134237306770596755647567388095776156235187953776781643909867076030872718204441087367161103462657595784036696014784050530225810413066981001062532778197251289345699429855720878586040342513089327514504235844485310685693314837859840652057253544506055664462165956888629579948586031623165281749581537986958450788043452554006918671307958731890278110247188593947096607180928301741651368553369186057464833271567154591169950209236860073394497835888549506613439227142703946591852978749534830622151275634967707482662403948093649349980829302030908245323169103995115102112372056318315204451793742350276536986677291543687951827832380853950874206344399827914832308516993226475983085981101705248263096492413962154127279884569918218949861477041061962403799376583445760979523798780756846426218277022941684233712163297811763940355973143869220387687462201268091100981456858749585833633094228642873824167398990914957658584045921050046545561650858540822270508125490362257555840453157949806678183001245222226862983533395873626824605635937838573032959791022115429985263007436963477518031459312339125822984038631655757462555875773787992770281654269176581204917403799882851272240949559291822502375727261414026948569781575795201180221947191938234291202034875889919600179687450070681681671910582429318912697875031350612046933484339125794124464836720216684730951339766375459675068631628310094473777557055246143390255240437226581076072367278903675924831602927632414032376575414486721436608374876690448502723126499467246843379013598005385291998421556099693901417855191634754280038088128172369935739122583486973869459633469052576349273404439689964182720486871216334806307240154399124124823686678136741565468662494662493335628828945516431888069032051299733021508018334716754253437522425115970623253051111331467776747092454836220207490706646646425527867623687116884143114047345829056956756883954148071043776478734220841803276480482742112994760579415246069835292096515304492186409103939783757966892241299273922369616092928131103369520138894345547304027508335432979945800708721527394944644086997778413058499887855265335473292878264250978260898527365085695876749545284931598157054272347101167645070937343926751338140037301242371917372370229052533784381461496215960327806327012382078919625085658268439842685675862443314185554428114466084472435607471531051924538995104355347270878568067571721687234741569568397503865506891737189340818940738391756518769398937839495414975932142515091546525590052931016524023595720712479898064484797786203513943437248055598581053430917867840970419784853099268636590228314997237432770577502522904840912889352590478104310990297593690387694311053514114790908725729390334690321161988358784393937117148994866827998347288560152342547925245393860074283267495324536009613504696017638875730538582284657524853882351096191389420111264185266121662242158055054651984905417037515654176505760575360919393802747808133935087503454465052154403728445457136049782927646464401794290426265480533332226519861899270426200298517831413237703283786174224678503496463262735280989880645485286794244016187424967804072188898845967147105410719484507579447283236044375722042303647400370595548880419816203725053393950882963903030196386132644920807588182420828607945040260041828636958468426044258951750700864842542267728239049568723703552160415187106776607531654875358994510595935054559749556049653517097117482663631557730588855729546163737115401172141086742337575987824760991510268885473078739705791870750938229812488812924596751831004630540322258150628434017915028280080854725173865285766402310137382830863043708028210118986025937162913444323439871227124157370281871754522947349082870787449131517622598563546924674461671446878773955303407897380527143462930894283308409435795585778067919954989048420569222742979348161103134600145818709345849461074217519996696506942928141939068055170183877783651887106456734069924909682594857892208034026939767734045748159469223737705980219721850078457933205049634878007312793491815060275905875543735696404901257834427083298061518080256831784293713090696710887368544707533293972827797985911748175237517336375886438533913654143159978849338303914811248949100643668961377283697924808390926509849030658183214158090727256450643390823741853338286685439453677023110704967879999095474466825543154050119255936067515504392581077673778766248616068122667498897602014675018916649333526256351452709055582866443568725312452341879027422468734516151674134474896262894525576912028029666708415219091240260762566669092131931918550457501682794406662972831157044203664775796454887592312703738502499193206062615108285811973528803559982475973951853442386829397591889599251781955032314729253000983189367842069683978418621809106207625515904746784749173696353935317436879262786742251108690387486337794515649973875663113738421698213751479869548487178724761726492194434356318902376527941010808992935514125583621853119958224812376497776278371118374067761398078284018786744306278313597924139788288898370123949265310782779472357901551776856164859767006546065768165193107045972679879500226357027979951601215093435762970919913000991136653225466225339051096991317172846991804238493272631375998974033644367164587301637433914231681517302679286200571682804897675903253418369783578456443841770144120539083144250750116449351268578765247876811116763935707392058966880811746497961699757330370071083847808640756146047197186147246568492088883307394171192013717284477210404893633298048399373819418904284836135041516540230391493581951443608607473626180348391930357352161176973291603780678276630788623017917315189372591313867603916604178466164873050845387869816297127048401096574969810490536098468675719073101456909393849612611206968945996074568826908385527772018275956362488400964721909434217249670305864862641789584870145900201810718664077866957218653433691422201227234215321903483242784371024782162550200576534190498348614073899343760727775206186731067594884334927218623477365648738199642515077463105605590296837838001440481040953390039200594455898241773196350409244250103531766713158363976944532069264806183554699251596657204682364203432929216548491711293856145106545581814858611868791996721696122040625886143636881105474332565801415387449818445248829809578882152760735241180614442006985927867974643638860196412840638426091499776726688484661209421941436851967000648302520217146050307712176848048244326679731551681805744285762902281015379115599560877164686139227453741006526096618997823137050825071632506157612406710662828562409529024533757861253905059849027730994375768922870581128092796266942373788932975932060569358492615252827601275023320178715953483990784020766796249375738064619739269683737513909821080689338848716717827500502967140721215074588081130930909125421323695449858892015025273601262234640152513274750471146144375876538167058578950966762430818130143600690468149198158110210525231019859074344821314451090784076881751629043434963284409312080788750965500686099628334065131116667303534857096404505951041541046681623176454428574557562593896857799304296683135220070023264548757110198556831661867013842645071812143122321590713715221227497746764399184884800838071816275168317599998163398060515415884828537751139776041395475095369810635749671722965182029534028492654080959019040259268391647020127345063109909250656040339272291492350896477603486562986234810912256730423013256110374174985911402194073406492583278969779468345097774723501381731217244764177323728038296978037753312677931389521214339176781121210828833712902891641921106735705043826233314097151801254477733886360388104058386800730681990746220006127685078925464392771935672517130581299484993611187822290126140168151334603928795273725820733152692901693172407723778025312904655958735461156437100421449503813832246599838364872046294154016089456849748339608667538161521568143473118207740055311948199773372897838071485712475620481127232745856063342744918569168094102643993229504967136121408120857278577120227626981030824328093490634098819721173550962461731009159092535860370428215388812802053883439384112390845891037935742392857954437983188407322120657895017551706307457737705821175585564551918930991162270136575154071460870056750719047530739847735153554347754610045694895020006679353435320743418898505406826654156286753434798251766004582435560947828604936788040775317739043840431586582471556460039905606080496851030363674192760808922259098386234186596395176310427644730747029183068248233555700864183237099353159473073620578976061192000446360864028233719466010205477240395602245942035568222315389536974505323219400597636055132708315223938783467759508393092023142366580907941080610202328188165450988526110552132526044758009451488645927832435835123734425746873590645942676740204807650713414623711745085758603489947133691614555114195912735450476028644037641291011597313029609998833657985726461764292112851912793323147355369948968191999292670506873604140811396166603407197409231017864488991843798985537790832751736876587656971727053623675134960079241566834106689733307344539534427009433257308831707813751324136703194222553463614002811441974576617809747043166551701189955681076128708599048342445999231057605907928223052512477203924911907136861397898852622061829818789799707876101312646511206872172821859491125537385540136375764978089899664446086153361466950433085813850891567335095078495058304206694705496326759726929341607150608314853398974105241463542550533402436024909645461699676535165642204527772855404508772204340508100260809222052709485625995318693794853501004377182656521655007066653519731284693335973730403922406493879122426449243474938729071554799038103536049947760498912205347170892157310794023421253489416915485135495834299827409674616765229184904072395212937307246468315958786945455414226935015902325763313983593317847719430593859401767556438271807508405594541164485544272741142384478892803653284765884605728510130077318582767863179781915961252018692591442617023896120845801833940823426504772490473197270757336458441212680539867240938208253827744346339526910459163189732726914208174549360835760821272128025679093453786003959485730942157414696071126415907084503130701504513637741941031782961423466729623020747377971341521249239631315033091489916932238453087497790358693734402017883750261101428022944847460317281403366332140391799775135294519657808915581608636471498098154418405004893641700926058300372567785606482396756933172889128045300665798287889351790668759475852499274648676933337047094838770656357842526505013593545383322275303477795023343969890734610524179726667003146627874930302161664092562077829617469073665844580501577782214220059457306092936022369825102015887293774102964692180901888441169149150015277841598693869215814241515897731332633604805694546993838388561747826201171279389946009432765631263194967023865616716850486313218333122850594152385261465924811655814553530537329291071037694147046907285537732696832670604191600429853022997949330682689284297893856551475162605655770702946230762325465547972393295385543494819200976088812468382029107099887776297405565792635624588500545366231640822485964192146231118857675319434099049209754712827699025511911974168752980762549930349802830386320037760491225011813235572902215740750509206024197511965897335865118083417202266581299514382094496980381851109859508048247962761590132059275780941123755053098348097372670437321160608732043532556137540413587530739921831132077106704137427773768025685581079385214984405895599751180698999752487662483349415757141803297801685765912753339926098751699592062619116999076079472994869044643629294719247995448447440475048722385479190918188255526750710247482669807867132071920329142205575653290292248436719682112955953456892652076032618244185960051753477852577170111222389680369115482483099201542439755514485940416083156439145418772726970604950984702561077426980091461500079143638226840314017851391511520172190045324616743783421482837909751387671764240243202658142056462615028821226213337422610875597291132677599095716507917502528272473577858077675713792149168969110703688187289747960118241006930868348008709550118723940914630964568050933650831029209758356105313806159529391901577648718793823886902580403640796201966010836126997425342318732918795025576573097907491915510994577528569669864362359722753351985671173494401572882720761501260927285577971040925014548053995631910635235091166787621632605326660372123940150235533316205589320979437747568346031717988431446205150915174907407215198672422706380729607982364281018830211554794376808204402009133064034638329802976304781419414413047350416052510116500381506916017436207883680990967785772774629945930236137227519953251287892425596697230540676780317530305196984737429173899280972867643939245639768525129505790943168106151662929040934557647746294208436628356268476572104482577229452761549065978417636179704889314956825250832144988996469221554509539688271071597961299130922171906134353182953033964059999076263380919627796415090046195028636443630766820193921358260159169066458057612914669685176157365631228120576877775127185832059477990452208205332101521520826740432745195738533112828616292780413418539835407080460832125615353309776301432585911422753861625577576215543695200107344671662666408677095181218499080360053179102099977479825086530151448765780114067224136774320624795386337340766041273477844956759809961080279522413165050755998059613638872933714974912877078748580196801618338509103657134682103330636442824073611890445483425771924008503042553694563560214071352931020720171111636846832968495064953060706172073280396213242245529783098468599208452746235664663698368244055286082588584434880653748945047454163727291179385045216530142004313821205418673558859796689118097104670368288565713311916180180257809873657486111293372062291421176394285153996745826886169079206341828040628544684168266368091583394637996498524111452229892874539219486435093316721496211738706604820736496157729962454604500527495782161271819644730882845443444108473597441733578077811052468569164526000020844102076858574039598824006846762181858932855184893505863192377595530109864322254496543534084886599563292916477531688026655476170354581978757098037402788899305219775986694608025622863292265377633880295392633259675766643008909474790691124052485735206499273018443204251601983483823345088497642010189208238727478537762191806349303601190642553675746299861707571083054814534337351845339525881832388672909993136459343412570052651455056994822781519576019727079434675003822738740684291317204045590294152915005000281229519762216667971918976367054057790277130353424054752075147917009618119766899566440857112977255052188426647469217670059987227003588679883556333136022423589413201287732340320950594747073748329474060115695797412531138993690770788217993760647112192840740165931491224977232092585886184558910227670934932653222158361608636879690721204838205308601917469127511552631840570775017160104620419396691651508507062938466686791924997147390125944945415144813836169575245615144846547976457056163526988753972715754238754045001594150335597887888136533395087808546235497957007588143348095107757135349275526068735060773415175126029735930511762126921187379859199181004992168988020664114676805558461949154900739393784451426312132961765428087506475284277711432889216144323777594746655944111613816893788778659788636890094479131280414524990461208428473357448593272843674893096127002830079804583328962365333120551236939219036102652745685159520825188347401320074255279647094627381579961834911916708488534259663715308793255887605405968334194657786649938204990406824870079431501968241358913919195133371907995294002432488857542297189067949970742789235329021507965537164232488318147754637945551449469972691251409211958974697533991113932267258453206362334673572137707135190245496102378846022551162376772234609201884106817339370984207843736089625067350651305611966658555823379244289540443486173490029895762132235284709692620615685371226256223454335111988374882370082111416778227276749644163381414734779957495672171766464528432402741769080923932585900870993688888122938428751791700481259887940985696316172255873840475200244266062593891849230301807043397566646890761474625465366084372172738769249303445447286414527301340567292372667881519629486675257744559866062629015999033355253081017720855061113944665191221961104897390777624511790991973088338710703263815829173206693323772908934626843928812859944414052561982734895422403186058550840936041855490066712820570463284204128915440306967962131104419301309153501737128378714844349585441472692855770192884944611729618036795571858049702786663337346657468609199210002616412135256017502975852811480184684299024150166113290097190596816266811200881220716521187214050181129805087148843439660005857603586231044178158955984611148091026545857209606475120877114035646994406427508659302791929126190971216240460836764785677468946608652992991489260863623919697352713250493060660522709810195501268215709421407496009958172301280133278441494027315047425786823382713744053376504903083660921113671073561451067049628169073219364583016299794035107271103355279899325565707551123491392604807253154275816687555062358825261434776267265249905635443571046941264725851507266013025346722365080344554057945703932998546509057788238387377893699725497302878986350176662519165613091358274121199660516367235926872151935044605458146386064472824830886561600160805794144282588478346480581004583775644682203106395970799737202047500124641197915416507098676001689499249074088197217516363755721080961318620292238999772757291921175178598843349329030019411950359896688132042203197290578190528591836556933414456369963141890626134513390698028798062406493127926085229651398696005027536644461322490504152907524798830812482030099888668114700015981028226743734190283425434293164240202879335770259974887731749897873032455363440572632068676163400934796539826569080753004558689771841360394097959922675514096367839535481978681740407584447364302838994415905236595688654496527086271282765399381437745343535967329328637985911928728943319077820060856376633262878572496435947597057230972423143718036931289498675355999289438958334482282809051477938908509680599163784550795740144024563361719995459066847590568990700508043658833333516581109154687174282111996193094138960609825277892796061313839399226865908048511425278205169251093574538655197602968324033071494299014149420634765858807398783887020067742954480578363533483559094331220998120618305370322195108661546112854534222470672242968337768318433510801313619291657828292646503593780200325340288419512875573647678247796629120986815791349640551966840489425119397240738016587980366325743243906216992228357264003332287214416920742331641587809668257026496123810509976935119068403131731198364543193144028662881489530115496494227397751401073072621612518288864847248938755195212791864745450329918632554848353250636136592815091281357447990698601589729785387244925713615158373474112654622244158989878018178082059053453935977519962272102947863501313077203355622840947882265044426570873321532242460182059488963231352152958930648361055759615726789249178164066392984618806586422191962637568872398928622214884293020652144242027621503880054727412423140263600645123066642361111576588132746665325342613093272936389206203983072513300458005714117169336282199006450353074314531204844614905995169139281012164231242076989779630612939341752620442904893707324723619080194964369347446425980989281122915548415880486894581328273695758986742819595313733232590202640719672813728802514806584527088186340907186766247558933472574414012936632929223152340576826956671415773678197648868972557377875209719530918928133150500515122999955004320208964277612057243933378908953220456086439745527976688544051351370405810373291042738774455113293568428813876216841430904401572834426095910208559611558594697826803806508442678000508362326304071182982673556110491283068343729953320153894181695983317670523135361644668907814535826023634426462524182743554255765204550772016071377005628423832785315335723004630969051220034802983491682449511685960466621944264556244279963787515294799338529120150677521184075750167495520963871810389678764753098074857520435874874789333599120802273887266110996051913077715770064389363894211776470439222303958234125283992973329075628907754354933291631204261911089877136802903323948115097837296583256944497211916470950901155980305576861482380468386423420008400695625983773213742913737783676720345733940889196632161527837417901103598262444944699442620977936882432402982697132250609623620512273935844717018387442872219040696074653617954932487053058820798952157203590625666441832402252422551534640102244259640943716387912059239759338484723263157640341741984015053263832727294948069686721074394360184717894375314935489037045912240003467087747214058019767281706439304876634953583518552422609726911188995903296826802124232481250682256596856226540233940722059820050178427122856838661223439912123455311687318725926393037959913479777278366015349422309625166998782039993908640296197014654079732340728670875919759143841642117534542557170591912116095741457081890575521197483279027649160104410393250331313615454480939280588241494746021703976107500290959442117410076260237490586697547693496228642942634077298516767246865808843175609258427844077946638986051166698202786542565436544767342224519618721189306605672603323990904425563685067117907995252207583773794600878444114261740097369432078592758756770594132623895922097534525548305002911221431048631375084396283533790058638446782641285295309890996475940615932655409833513007213489819106172653127225114412099404722984664734437726364963441412045042877848275673028635494248694595000271992090571024271230240255034711371492702511230263452861219165802212274673889215605816194297519601216630523423511315960345841060564304119687395755773577004632887212079755312487493812712304063537133573624579084980005652791213845895995993854369099551106936470515765291710788783846541895504821014402865365729722092091734051568600241375346725725994009948940496483838626372020392045349041067131150759219439485043245778517129567670789743215277837393273788555906478526774628259251022027682626014111604897401822307413647307909470284109194860289458056604020675655903272403917875994877707496234301223795099002772927681147053544717348627600918312794664345871722603615949607765794562442163885863604080583904878397923154255396319659900802372150136960456685664085188588585354368684975747228796472243134750293504390089523670714905716647901358666071544535378315674198604956329199422594139252947946401535126810883091735355939344593346828556755279327822194856017225457754734968385915165243279913556473284397116008326513738466104488902744337728572236190331128857984899415378803159366514707470941235809040634553022855252786555323572942420693664859001724774701637542189790285025262307137454713031985107110600227414402293415046862084282726293028490938885261352504403685719640281318697581384186514931019246809357261106548397521968108832906000375252618352088583823508757263432934542018242042569068539711147697095449938011375889308778881837512933083138734561113711882841909940545960204565353392481717911210780609278211851051975612427777077074974456445131806365787460642642346468015806822523614830949453716968187002853448208538018901540755261416161009329665599583049920769861958790347931351563691415774063107664483537269254331243739476708664917615451949957623528751012454887547602886807365030834274380833522278723544578534825374396486244833178796914191064920184743614590987541847952988734198771324870237676055579607630476585421955560228906434647022629482498556478634553166804760029987972369604373142622194006000331024572435545929614801258839791626628526828838668506536318034425503660381408707806903714807858169824105023064811248978060177148188354040127143651610309926905778447669070310381139331637645024186453942296462219562879596334025476873052227833460487462483552580003791539981603615281330924743765837455600812570645360369625784442701565243739831636318733059644399046072628425690887296395013814116758165851884511368729742864862135946285086250437129111293376985230596470369931647249875166935571957687420607417430408538320086917716994395619648115155706588072442105684951627391494716215328948155485471281033462776626031240020088790386563899298562942547110105467972874167863015477162585939909994400077217418702565377663794963010663453384971859856732432535859755654117135001904783045378233395755678446794243333189853801024617559483102920951178271488837337699277786072416065139857268629371494635397745515962160492918920128108203794034533777694210837168138350356948149303669015139792013267366340911388158076344377852422450237519580996779874538932454545878104818224379285837407805041858852655814531442426537818583929999992672433669986559558060641446713471330813945927927126907223752540081014330117979218455513870346974435124691312227255962054183020510022541495610854155027391318287363947319301844583629470457109567658187841600251675516745771904944142305973550156734695366469213361259958170373302038758451403793551873014820664590997041369153391899441593616305682503056330264021601310894483003811050910029939406207217544434872091800427659754952034632865991279195544828480628598081002251798946804398342227666154569810571997312283495803276702339821297248315515993611725600557158232105440549071529709410872086063310682260217611465326712868171270882448320515643316415019475182832322731885881008994348425161569710688403329378254007814415136449751201717553238877421991192732283146931850432684964076948882634845764043730547675801506801142857645114220117293594918703782551251220539908287813269063152218414792689661845636723960819503785811190756242839548729538203681741766962603472325560539275599345050148422521076973846082742552912383853219439981919178295952806321886584097472232548412796028418329037811080676680711789496170069938736515340335938324469222434282365930690983462829645053115679024924532618327283568244800690418487132248160491965529337989823672735240569643668339319906035534373329337602607794637238421306282119983416119661998005046349864251940804639780428410922903887401412667261580187739517641468984764599463199361772799992982982992325768331917082324017533444290718811368885023257416995152340979086302351386119709998438556567162259899017036406231666434569121197799569389830765962906023452836425582542370852809744324302549528703307923653140697145141554030694693049627084016443171527447621455786725530852612214753735210632990612413957667045532246358512816796686728247905729132947367054862753425804481213887308781801895448840777362669049156001079779281586411584365453857889666838768531133459231921645285938377512810075558300451815450768444835236485010599560325340606103761777457770325714766168202625101443742470373047201462169160264803090700905178532869935277915162743688119281411284690909478946603762218565039849584986730933148720356266274450837917569881788189969032059812446554489808885030638335968316131679771395345717423870206382176150832106903673933991932455024367219280613722222736594880238901994494579173021601921802895376138947406758857600132967329528610145979664597482535156526443597077545826772435185844819144095093997267851944121883131313748638636018867091800289755250431730706880564288765467471168657311180292201945617414558749008885694570526897506567142750874448060128433543383836422318248811076050172764273496819375734459778216807463023676636137947895208042941595691399802726322491455244898893542089117617898943100743819345861392342654649481743829747337812146579249196418661104185131292198701326854656575331013779623412990617841652772045086437550816825244007758136206778802198202446654287030923445978073157675746785302248851485127982170035412789727890645288695365530695743414998582965239820612449399333126905500268271965928570856022175868244464721337148888447015151513282916001158048127753694518196641961668033462866479062488017250794100791264787676048204165496687137567262132489343275145825265328520091216750527583724305860064004277459838463682356929518615007888004560206159022588594451671793363951541574214227240315284523357055305452060679132590229241020604671271732485001485114479193568474092944275435498021703271109775647400281535074246013365880892169938905918013013872230499903479785130325268161820219294898788926847122225048533695134280027715158535020168561465854155673116207962997450467842860029368848943446325991212905624440709263468049700387810857604089947551247262415765467556905581326094163886488560699679161224383380507861383868609451303245600894063761243455561938580790311974867836448273010992792400030500700777905216606711144235998971919216379046686489280235831696263091194909805550309773172349750736102468793978377943889425052676835418255354846233685202219396415209067946448746216638277555456950188814303142258622139065379758224658565316775928312013290026362520302004720279668667830208640878999752485944451123328481328759743788549426426453352780043473481380070293028439472842478607350170021740168005978037463303102281951333836696113125123667091657597138230134499510753792369194820837237085703286264024395689325935425182898978965413667625644969184225575135616061835632114452827809442941489327591722477946541075620054873948203542462071035812013032813717977242060402702791796091913857022013385314661050358756518929528092688177498450006920194877760737005353386963558614895776225459263132956343586807400717462844262420394095134042371371449607374661033664213891793733967682403526826528293623747873534079032426068916010519980408493474457957782917391916231890545298837364691621778538920702226850797971461004316519313995058408786812614677035906193564078376501006331216298984453342539068054086793340478734929195211998200745473170132519387130489421291631621810933126612056220218408254108839091290565933730237340919029218161100704007004240611995267504796191012783219403871920303982229779201218090083868051325534143719510216359683973739491532775313746190874862205606232703396044307121982491460854314720752566801547044248700908015879746348376994815463560357028932940113099003665581255990179991238868457721417423627909356790112874118985104609591843090099049202773141942623361083447007394889890891958987736112419874933899687133212967577887312699404683313127594252805417858174757813954217158524389875680571765459104824577191288689355814626783499435519002803817077281557667188578384566804051676307312884869711977294713788927210807389355484637452618803367327338987617071447837317432911448090208656467471429255160513348737454068695214678260348795692365770961112816168372793299350279751059502048950219282195898825054566402915019907417885688704628125901204589340553156458738846277471988290088097408146995920179200403569422985745334513765818876339604710249117255615006194995368252495272632973354235714340013952541147185327553975380513239999825934343500189329605436893095329736186219844458094453011228705884698458392093193971673551411260808192326121587746011228775628020628437358314068271024768211814056511440879605505242378662458875040433093206805633045173152686568416400322992305822547896407668133227519883490078826081808606258431134640634040724002105274791023191218976450416269609312404003686749230412529750436368712472510001398892880981493387089953657736987087553048075242073137234693748596767179887805864463394578077595748945589203989986152491638036285522670818689326778082495486962974248807111930231894836187359998604304286099388096871936990627938263879557044307593171651089292542217928256705891158974508786654017010064998261518804912763808873853562506904228751634631275760514283652242100675353127842662081862494696023450635637648173742430211723443200235978591732879306942669045522761001599871585518115621112282422414271767166087120830391790758605422851092842932045174688950873052322410673840158106502112811952537814747918132833527014422046177755731793980708624081423349875558206762729682642273653528750669137534248751840951806440619174391519252076714412244466339086951640806311598544607300581394705166771028802672297595369145279331559818679199915747547930141326237853217920276254480315202659823917179536448584375342260189036316827951180370907990623802290684555016420855691920195567649405995277303308263867825881432423992270245600133282183653681893313522623931409257818367133478286456116702501505197511081088074120129295757147727642619545022597614855887380316908660176556464812498883227069687845018040594908923478767036863682097097087411118249030061620386209694675399853824882363811248175249276889130347204601584790884933214567590421160600412373747580704011808713477840266305773084739124596617201698650959377787506710707048499093067496557720893963317737408190712985204426367700810966333791479977736445642102830906497684190140426608106442965598295114083796482418427737317383143540601579685010877619224929080867898366100823384628224317898982915310163513046136571466364354151814034814385011311623392877960663058802824558989358290474794935723230209946643658719743748194137536614815218743259255423405478999986795511271297840053173429476034330657243776339078896707478190200097171156619621683501005348241862725727371445280255657289066827492546754885375271619228096387767964372402269306434502762163777445676831401478635661363049812169860723711917524708947471568102265724254612697821423094965235294419330986647608331529689418594706539015459608660091399230794089873390730349960839465077411453914563869506283305776641588537006717802267096772911333724198321073140881080006663171048335991917827016957828548458071174668559349399020065355187825109284844126886390978160634979548029575245989785999658902051353546940657816788820709611694682679803715437536815841586718578330537569224744876658155083523193897725991439001051705928778478360408119461816818269224466891368451270067563453812943166658102548506577092280732498484460891410684327557945390451125448051472573033436793952066605894700346796173595162067876780550905281627631540465720564263370516586392311661336372183063687023449881061832722734566109457380864592259827619445382064457289615045665111309792770574959247147831850484501471132968127215603949106359107456468990799699343744597161780110179846362215100618432965625212923320333795480343523672055845313752609453992364721102197416336809640790314520975753266164530975735595001737948072149093584464396151385258262477774174458969772227222127594904498087840567973027854113564864503802128856070891826203314565819956810195681570327876486061059219471605173723346782154729209494203221430788382792558812107636447651697995465431373471954931890995532620055955285254462293833940026235585888013031454897153389901074641081171102212619670750674330359482603801402768787908894340821580287798089799054806574419071557163054568675437997785894196902942190199045194454892194614894671273634403886984801960751920079773743975063659230468855031874819934433877917544826049024370446515978588164127119118116132283098396402780533060300154055471738767481978788593979818636384484156531772445634296826733204933775412465294309882707211083286134013703133830847645687975709576729025028723554538775139889878828740491853292590973196792204825910084965009131428198949831903151220579299248547107966430305174468310929829542513793103778774123641242667216844006480770450867382062635585337031100961178830234179624898600076353020688086486768918376352132042674605671810145221034015862367067919668847024824638057082148794751848814783203018861622308671058894673065605417301718950145796342726914711935569914046028129053283442673018256248425968760319974442358396341843450325722960957230033555884904130882158861563320306870319386189746427666329666378760791338888782407785052158273849429694319585668465348152804861491371788283895875611392699499162129702872417125297935015111145209355770897423562350566625805415109661728936265051469956162956971999289754457077588887817307233360976643194863840424476449559137167702663351924283365431849744160512025519102561989515614019929773521991168186853404295819324812545634777986814855547315909861042139275362995079996881820436470975792328710101101325785604255914908059132125291379270402185149089057928408726671591009428211338684238676264985805243005447550412842267268854419651484639087253304800341362793594160694288038939790013842654652888242019426285292341669871803951291403253030256202102735906818229626017389453134986987605364045894981342630554212173383224611517626994710795913948618845785212851444423057378284044950723187807149348757370342228020793626136686475440428396798985117078681850650848046128082533667805466730728549968139885950542167849454827252967911796706784133921950163124384752194617850027297434693739197595873567555446524996920596526757554694746312489043178751795158984259569230759973788597116324731151772518030929134714171547959181811718706570816606565470630281838081312059095482089731539502148515272306899742420061068082644641578663810333651203279576187709340557361808362536772210072465490997893467909796330771197806364667640873371071877270126177528136568815840663916396236509133808171189664895593342698182572163577143510641495630695652025084559738937446734863351375703290941741700790277242838140751276472522770586949765932252332721411115285116198665453650924043060782220167025124095796982323451984287196981226701440483844836824633691585241400614791718352148884344556981862249287111434602977821989138386644801531458164773626528841645204927997675777191810997334784696366139727711947031957248320056885443814182789356923482307568145955586737736571831738920840721575670218415079120622217955465649671568922472340982478722258208503920115533003558605982122008670915376150465297148381794504976793389736361323274964379047275316443469718623745838961012943191641907394867938794544036937798482006595769413733098874869464069991316181350908523160287876268037215071001230915127083311104671030084541992952640030854888146276519108146469503929728822946468050838724093206814193743800181354326503811400243113073977675450732140210492585137811169017637603953868615560810073775012314251479391061482797842844057590643452743673687536923037742060187618263869564465336252699095459365519399574115319757014289052793698708590243793610552790364072902772221254982853659368009047954473115898283710612229961973854315194385265006935306385872747218276487596325385597931659137252150590668138647435517196831314628830059993614637457874314381815118114965383790548384636323849314065330601918440550934677688785036497566955541272364880763449067787891481670643512352374561816722189202330152145062332914058028300066578656082482263508090332793092827858418171255355234647986098626137907714021542147446956313950564748728697330186275519785574520061488642852993373592382262771863891468322631829140550746689506812184712139158230627116082737033925798637284775686691819802446808525837552190714146343740495643203640955127506771192092063819868770836323510045903535523351364456455782813085233332653272493316261747611278551116913725138817244199007122563575148847421381208965846345994623949941239215050729842271922391706021548750178370818238635572866019436304166037418188926747766766588637652539343964922947016620102456989723943032320631432964052585715677864728717756357150744748812858190380743228563185312056806556706842377475911888496998225344980781824113176887000048960326121524311667154450464303598527155257794110629777443250867242372283760856559065095419581616343026147332016061338780363451657671168921450549297912805861000991307230573959806916526538553962222035468188168862444729151196690860654579857458260205797359550929523295569400133258837606421679352394510641822627854938228231727292636321350011567094465661123273536035487811258880919259576239937913294847297688622757969808175814319169834475591419909504352526254508856738768881897177307975218449045183506952175081186251657890391118521859450968933335038629576133700462467584215359642609523901618056040454007112393006504811089225664761575833220444756099395956830127374781067054353874754607540449750338362331692677889134928495062626246177771062377709644134464703999681411403315871188002776759151227947458010030830731353053611521310298507599031779570462790488370922582603134946036080403716274119711837081496277258725893030567614354255216178634732507337660141639827337403030639506080417544279949676087153501152369312131027180759093875876830349132598704248807648617603375449781996262924933927017272532620364619397753229241763498684146939160825096670792613935457812555351151159759630671295138734101006993472819311972357668474810659452108196190955166045015737470827132499164077573160940614838913704764719339972135635990490426723296221828731131864841427228684518934245252010612574703585328687246179825945353293541669897624846937108667272161871878737135097993409488520736594610698887780462188572406117825026997756881022274755503954306310405222696466600876066697512184997734151235204389790661389966237983487394676137788829230047529154524464902271035913768809915406196328543207860538333316480810026342980169412849652624003587950428219097768387838413095237684222710642721640861722163253428947869633668652726367382618564486627093327983500948890127917530990982810530359262720727161442580019494995407361502550272169180523638551900355040720208600006172583708268938074590713731935955053545338412434626485943328656190127927253357072192737687564218477689418896100495801838897050315089216415053054630908974158495555972320979908118831170653736773447086085804534969669653145229886242804986653872465716724658472969198700438425280707477199083268940068440089599259141869850548281255007163108531407172477315891515069735819421430447428254079196720857409653683470792805568968108153817850599321767922926680291386028852246305476041762641011621301468781805963617362068323913199978435860786915280590003607573841886631427862704537836808066668030301988543034497065569147969302584360221941278869590093610471429013481534434563897727072942674157114849874880611346790151561726687344972346190546635661860279030180027807700412277571107491547109006654649848187070569117210738881766724385720290615316488347149357579204131306995230612200294682834377543725085695258371791237551464237690163706184245098564987285426223613780997761482117145733623769834183663708435149990687323665809887030937978648125996743906748564949198066913843214140386678834611168657255885176769030375208937541881620114828660077194927210712656468796147208208103327823357377305934659634832154960678585934790432980973106387811607946267761830932944279885385553918708936213712787980183659332365740239269462289995717559538920581764014863009817253066383462975960690962724432280279374601856298579162081334041864433913441959900473120267786916163948385860211686094691099490287900474976149832712866610621751301931895914933109980044999500612682549646196944195189196022007103619633844154346505598799001171595799460831078604856363051725522171611439326115188284424335446804607421882738911286167482948256654964388020006438329701296321701234593800389479116510119607783363740527158133771227115072684306305564074154507523521446913827416764834548149976000403902319504426839699346944712149207957105424413263482121748439183842147750178177061464621455967984543534990281398033416395767386189758807127016668703351976100010701299075690182169503140140394741226244113407172812516790795794092528054694278868676309212142805782990110489127842206851946824493411512641220786592649849838600259092909815418496598612475334695209483555595823492278848182701338488272601316855629618412124706414304996693011595307803170393103489495419968977505243837950210039738322353379480641656310972547365587861376933937778920097592575313307085078932933856605292610257426297713389988536794756163241245356167788929991918087241142608635876033884165040732156603652713294773551659211801927652302666640009609920397193285519057552773131731978756782606565551520930889292528628641458185750778262932685210752277110228441438704019416651524591788628221882273404699970817437724993387398505526980731655308534006814370902761259040661901737453518106188651706030923979926415125682817739384613186030841503379792543583089781483454870439774071745358615353204506775243941184371332154207051887666340526031366783357249496248367255556510099755563998925877173175079486958928956403255234557105958019242390516667206613968047004704056466886728533029675060144037136006338919819526878383191132755970553926526711006845746400384704957389481855669958617420329699532062529072555554840940874157142671092398635064067180012870062840556428621923522830694979598896810254773465539138465336027130798758927050995542088956911821297795327962403298233463214997670005057038798901007279448665495107408373984665463391091553612500309551520905703820876157581303190560456733577253028273084375119777026795921366619820469807110336642751368625271165101427532374251380739935286622460439523862084061495760698511203156661716095522643071678080436363283104830769345796858081028363088485723486357058555123438795216561309097849856260632791198027224019667552951991696599402697957981525372296381612174256302517461496275739971645748905846462722754095802409784973391878251406094730089781503719496671583635694393348064071964838856810843574730600513072126645070656570013172045446564308052561224813788086146530217348820922964315903657403275862633932424599567954600791527157702659080328040694745035323163766992558232549385342910408984117239104549854828799379744533460242417738609842231709222606517157972694228638724177550126458329249173289857998680428021875110352332523534064344043426104960408197501567653742819213266795806284321321235808403958296799677644838595348158611773652749882553542553433140032077549873617528019013386863385605245690448819629766495940291066304245895122052820408747019651119570044345421838543973036982510121765441213313257728654438515525405061493612745232718679505673860557967410113420133440680133577346266092223870010464071507755390579535327794719834487996268632528697411275892798002368922166414262865051467609381272613092722207991532300181013342798453359569871164151198162925239032811910647570671737065753007557139971247648671172549208885343222061599663443402771058003442733681862481804142518511393208188371272219554844421386495022332064200025462173040425925824811038524472694103376553080052987303494289742681144290052592216520736285980587608532931874721309421730149509458472108106014261405843271646086549533391627783397974123053847314830917915053177736732194305491872590154515469175623458680055815042885088405834889655961984789317696387573563494533605311636707587859037188119979139154287228705221706282591266883256215754569740379346814466313116465503175904646235215854247388897960719443963442449102887343001613933821381281749583971923205111015139821646723679601547580674476851157694034704106283196003184407045462353732362310741078934808431841013666778084032892099062948744968483250709077337362539192559352681244610238206594967540137981100707744055582431731019506932472360881453492556186573959724712300332300415508622670186643376364747620928329862712123319227048388464128486446163148985700455065927997932467122052284361231172628716022984185968434329686966129963227938508057277479173018211396451381254203717012714623706865709974030079875687888428816557916764989334798829706512928145653922752220426098786325987704448107878022748347886482118096562830447436345179621150548222717575809421833339622827151744877769900230665787393656677573521825093007347980346667708507194844959944469399101369214880594362202074985615740800340825499723317256756765449889918572820222413413440489021465624157060594196275408662785950002223671915126406243066820629314312822652895489018259026429932842940716896475968688100041737567158824208642325778724314589640866922480557002446742559424398633919162616222494527759468058153571807483549415732626082471349730459971036524385910246945353106249366101736187145830609538501837973536845816945829592687861451319971171576033980228392872502565770182051669420747003904066243899771921229601027139312876834720014637757202536163373393992244067760782673522389846055138379045810736290553006068170643353404196834083806833958289209308209088875021704269743394538967335260678675681929948796190308586198397742717731434843937267614477997860272364281617702875523363062837454524373769781343073235473320115708343317108919731822601092531803418330624129351029112028948719010444233432793992384008136977079859932619574238228305852850144983068378273785041857344580265044540548924986605497984519742019380892831087564475223247257194245547478759861793263931542825072621785955025925735291921020147890429691368383688262047814805637801320370853931702190104819661661061583541984432944347082394141391679529064487626919081666993584844657370875340212252136460380831699796154697557585689547619095645549656844422767626305962862270493727082930359689002474098566796511811629699284557479614212363987027403720603841444893558257839808092148115231099731382697031307051400609187417832559993242994921277023299494535240627672907440893203747844128401871046001376153760512451199145772805727964778912271705279347507051836185313217238295872712878942350812645162978138162231649181743960262051646037796134926993478066529719299840767628245335373433205937675176020059511732986296394842869114596036898203570264905626473158733635162201570019130649855996838841938157841035012691433722137723484992084345438967110748263815422592013976983160570513330921090619886295809763533528348333874000795773715465415912141911772305141393394139506791386287750924113858043321250767910676436072552408707498093239683097536035952110641906543192474956626750396978253793857741479694220138920500445639034932646520298150816841219786674394767746514175714194898050838174009799981354792659990698492743635753460617411537027933104395550247180766901760696705175785103676252574692486074445861045040069706555005336612241023243423317286177981148703711025084820049374874837949259855825476604981694394373467854258436339127167831695170005208133038469185554574345324780822551619415541353068037907323164049508787226444286726987605425479151260883303417742229800703203496581857977609258941417901241170901274613297558049687666268530288254530762546352220796673704715143348852534123214883785819953651395836118167413252531193112287462984730437038953997443827697159402102787382656290287355719665069581075146816233557702455926361521972508596293679734373494954378619424380637875975201616998991061500895684444029063804146046031538973133010913689664973395884416932824223114123945450693141200363078992919838607894425208796622928962930761204301026516262570551447765355828252935107458772628955427598340807214360857081367744096762610702181398390946709928363990712814460091074263091207738058143798356637642719276188500680208040001897703881090742858260677398350543272419143858733830231037247641777985089106130421496427829059138664102156432302168516901542486379516948627314376685653437939339590999266618213165959135432019945130846864677597210095352109141764451754250915442765525260446026209181818651999230579493441158907762722861099006187338665152885529394394147090281405738441361366481158120711225754774391060862818699962928618214705494625345901438737968212082100136509869926787432106925772092454120220240514729449352463180568100241504368175861429451596437783982417361771548698931450737449426662106378554028764689683255533720886952286269615348826093594041306476194742932239210988888292750041047259139917484187265649541702568715093571281373828397273306284527557176935021976044254476364743787385702971485957120800267096648035587028622502224462642957339309615287053837905625535440674355544979857629626110574207288154102874030015725332147750534791657566395410353784322629679665064186462122519375051619548782384946622445212025275717070604400419428070620759984580195847494210786361688727719834628684830610147218250116739690366300976496331888111857607659126834024232994900027798598823354665528955313729513340305468394317310617559330693860731106152854583509071894987064174193112720774823018804150737563953128683035031681995926772856341132948616799007034986954630105503707351009705796211104765377645936026080338575336013545790862526725902978025890959659211485808280548492783907799946020586090619096425103858580187132594220574097771720229822426127843300871723050570407950260973897645616638623137604217566202536348512325526022046930738387074510236634476001091064128338666600807051302508299580705604388598530682326623277664054786019817769612750404289538087970247382395726350387934211431896177380451695695584517281152232316821932477886976422781332345438389850650100696364298763102699190965805263056651711791333024531697579686752494093926358025274944273400388182876110616987051951739471823471481568364991104961343036083502423991741126058082859645849896922558726968301253079682659731850073413923817902948079520857289017631107080271508791703559255651340514854959517641422934456152523874192371571916656040164988320006080909752006502681619820602926538942093417206822017571895377926851694710470356956393172388731796320398673082388837965407448463319888978539141694086738314399423107577304582897001971772906991589152095220368084138557044342332571835619735164868080222859664310044434161680970739293704537932588958426601151457755539912336754189112418093903403222892375789650389973250132972346731489774001632984840914423612835587902070044698780326445665781413575192421324559554922156346114647953422566838571900992325753324845053337137882821894973960545618482102213563409229727273460407300787857881077666476885068635882639401692686354579152559244051421306163906057469613459541973588314288682898750588691063983811185804500629059653696680419393305010096329030244450139726777187903633891641921445989632795036511096946937535215870587057709994802264983668197411017953023964513355959621214944924477878660209043592018182283287293086302027364905018525780823464611665894826262095317128385235513050502000182492517372903448414645172475826233742575102047661453477602139583476547654388998807993506293110741845732858256471468029085158742425005702973746733761405193192296722933800058271286266931576329692714804802039540421728295047527130380994579990108570418892060318302345320650031819136349392965363314002090108704118000758681521928782361946519056847422609317786563127271407555252308401320354949589290377020065556734692308875789015812319190574571581600215905867803451222991902735104543291386827003335205733520091590294279018052174737441650107643216369364596513451865747152449033397117406391490785214212491587262415741678102833576548018176550383195312760027298475356595661090930764593796349375554918732626502274030439785703218998922733026852242544749209287951787561701811750627613520634486838661094783164203310176497280344125434136718255312262799677672271330384713655341994796161457572109078232903334099992038891597085655905460226364079620957128358462938062111250465634885906974493818333151260493201050757257838292839108669056831433071706231211907738504287431335389152311973294037103911436355104642190158640397021047813947460911810433120008665039607949122319373130733158650629880550476722097013472029527798223470976009547713624094117998003921524852067144075073417234660448838181343063959541359855513872844006143420224897159126383565471464274271467830574559817269669208116646280787538254805531922786433804504730007781575541778092455291482973086000443599263253190922085360325417982523106471735268851603888475234609044345416238315183407184436344057313855166875616255448490013366302074982742506482578054276723260970218438381777278924327413579186547565061978109159976241797870168728729592657507469954113934403037711348905164010094047913559975584040177482770504507113012034625460558188893828750823937104036216835654652459753984001737529832248492774628704489738318246657446608107901663939867135462135739077665004374082569661099473869345015130652120280041631524211985254475133935818755234332070609797524613083186167886051861379251756759299723801145507932290876437076371948939146581658710840901316532805996422189601287427291741506756940565985394691301759618511643831043243605191137922297836822933545165615875814646099969403917509056570643404764542093134758449596336684212271151290902695722002973229888043061343908294353748385902998256082145188496546079627918129919335883026875357663340706127008956741353218989946854443294298823558573806365919558976363176607531641952705790245513672975429789286776380281227113825048671145004927505680914312420669420791416412878102037623086430466579458193882183458472141042196190272305424262933246003469953917562316727697755573114046538939943879537248721932364679396381359249186312867495374159824678376109350674656090307812628260669005106358629207094798559773426769298546818815393176802926276620186830961316615697119367073410360833065375645632862387616816748867856616963966974633374950187104953564744965656770598478209828098970457800089400185099258177643605924354549642728103102904379113674560507665884353670243955246834303564679329669938812441774378806215306652147158034751629010431633192305355855717060943674697417868744908027580459697972395986183966844238671307664127923538587925980129433008411105401822526624466812510799799850129757739721744074307331018868432853514102039498028995329581894987307611706078752565115263856805536156791557230347867053621277665357611735991615826980506919330676242190608123882748196756986225063032929340240882028766638007381026316170125911015952857862250812909066130653352638259891399986592034383502397237711239158382981891336695796848166834176591737844153912352623070327594048818209988592535043418790039883544155626534352140133289721428850889613696811663831933210302297536829295735227336281568857492891512756394522928635717846028076423930912497665872530272181952636246290145632381873084008016491369007225919201543929955833901355703000594111599447939548175611411855603532016277683761806185629351389482140625877666207424632760969625232676210662104317062676294913460300392227122406981775137966137389177596869006057867961101056804303128454773030831872745615839445487376664118323213071061467091244472261487119983571899631280407330477098603661343334708699602194332200566719985812129206327938436985883135974181116555749082932084792072002482361089899788381421142727241320019856688798692403100581904373009151765935337595527226427068321073296626734733769799960646111759310950066491762857279096773003500524215206565988666527072650430717044848088841729559829955087514704871288568989195118743562285545872607853562733504714473008510025017692001711316988784233268959452937363238302960131616005843678244575268718792436673771452575691941357164350255465319926743942936654035295774151922288285996765607429115726037833331794187125169351743809711967516306451638222125199310104188208267507123012683811303079655610124185561535934989528714589272996388825012149662289797692644062161058974610952246998470010658289071202418538812083281267595076884245237524993646743626784339138981679695921633132823500676819039851833771865742862122056676500482782148459184441928854774047413741249733280126023831805829581532665013052866805876312356995926145730961748027868426349462132811853846979375424976859832405469711632016499462119642365759595667304343875070888252391188708071220312902893567203173330670074526697764740652832420977894331025132184988740515408870436156813627638395612283389290380841011774445905584522265434601512098670202703768350169951208377023919006242084936174612295052117975435236290520639555068080717157646504949575065719328518100570971639983320673955137478643698920242659766265404087784975039932983325784813098832297208420119169265753135234318134230946432487086804530653358246904220027915578563239685865498572014405571119162436545112186311569520729945036469422383911107198027887824394067044558701982902631826115811828912417298587436913992344163204971269106138339845096275363440647803908766568819504498354732580223604638294407460311187200514882168300470814898811317622019106884422193241989177175701306399371617414811437156924427062162073911181915257532935123181243152164432520488946313239389265084498025148779635455581991824085593413128621603487722428060677868068979644941006599007214551424902430688707837841053823019751572175735295055719187758602607631884008377580559024262267666778386529359595716935016745965970248025258028455547466189607688381080302482995086295670672579924084664283150208302197782148064342789335225951094711613457762290973210963505909502920921162023366693146076178758762202862467043557135249244949360680678141465001971968163047455993785251069491276817371041578315139903223579907717809741275985514150515529493959006504940709735657165209088401903525952706494800996198885278530470351037093964387002681462343418298489353762992478235309205351432450197651553933483998908387484920801476810276448849692058185655337861567675071686226224943777049296085197966427576318035636051730893528969257312210316427912373940174170716887621922177630605148768287229799541492051511197233610713238360653577698833828409861005216905296850470323251862225712655040778374265755085090645239829296890574510531499316322828802090654551980240328657373328054347526582198507926309364316753955822000717405391446348399060559224698114753272988551070515020458995756172568543548984657946014610249095436419380598691299044273923177200526336106461852323022719548993143238211467073936536503671653874543751169953778558407977129681253698258633465010879204627206904696198172032663247423718681354418493068039297093298470399802679877479911620097121219081849043192798299947488309123017160535908917257750916679156237999143665618021338839302085791255531511889914251201976982536333972116455202966086677272448554224252813012081364055763737305021446304038599094127399495466349658596127402333649881054166204257296400124903762911701446972540683807679381887302181090293312685485046892304851856419576572608417896684096351945744676255858568653355706143608348636567156281652401886074500548253418347534365651276031308211827350086588471780193361892157343564915639267318066379130980589382305329629596507362686707422150542794550387002576638870199337113049573843805683268804944821559115701787195906800721728987591554801519636413293498701189793067074930842876032133148894559461053807450514393704368183635037495450919628811675607643609923356913506863677003364435596308195005953632657806558727214181049435277901681912246854922272523454796632393638804654391463209365226494438375564226071699586868294368073065016807509767109176869204137337352163622351835643488547465599059305927891732777680521336706938099445662789270320750973584656132300825718231563732845863684222273306055007515508107451117589296906314266737688187797913353745731172204484395310963082835871335322866849201719084312559230029951238895633621843763074889800666982195087356901935384948652288564657103960241607874772346495709666025201898864964689445942792112153611256349059277040533754756332633580390586782688179854941269794068945940680928739014235418988150966283253244200469771301455957684887324925597115125113433976793894668778114571644296078193689762354445108333162598162841876960678459832970329012872963918801317555394454940379839543585532654544769372995599503406126743018779886478986049137580471063877814604884108688571108069020363758071857967571378796826387578325215253999617369086779687905163747264131809082639991010523626518079595370449106376755860831790622082573556364102897945721056861896398346543196372191046235488828927783288905782434888001242361658825949584912985177690657566901711503127236740488594239561533176209932015634039275323315191062662181332724698086814998525303217192263232627994267868605278024398434936623192039174978608362048212725899866541179284777703457825319765412174331760882294581584230044711687375939591584074822038266692430323619723185071267403117944141332688075832917068799531414468184057178646505441014960384010859331424728661453684154743832304762038549227952066122994610276474006505813395783983804254346946143385495426761620820513082594978024459949099846195932735445972021952986065830632180105323418982649680727125978283579854649781401086278732089725682847738657436333246406139240633729118459965733511457995610977888623452521682639524291810940206142906352017067937919713094773349460132963228832736498541059700757892215604575765213675593920967165787244677286091752387722622632091312766544066742445884702641073476372365398413234469784309272544312222483191182835940570055101983915166274374381483367130804318292590466466635546353667775078172090564520277616025690389660655966395073206929746116545548893149587412540032272843102429276876046490995993621289083126672673522346915860758239086591354245809504403396653825162125303748078729972697190275623541567087436893445251639804909008217566091520076834015205507452532108367039430702536381525662898213500462826827779676119525045980108523279728131118084647092569029213174302864012718505248995307297172805229359249937552688097733490746704695956187421004076249856248299027437632310663476093728413640001830201082061468954236486349749907722339485035235758310183326345870150068457919089583649469188767316255986894791336323626292545053525842986623796959315756569871613606433163002765776235428700797887763521063257057242103861291510650735833773861898789133517511404333438786775449356614202914323943354612084861498655529993245717625456501297418627717796557565217910725019989874161168367841253702702586232562379947699362000637377663607012720675083827910942584273383233542861504584422382106949181986746909794042112284065143724692159985573265878214680376895261799800641628112305413724723433375274449255974259034951176711072474535365023573528153497587178242205220119868524753571893148944722643942131537740438725857898672877739022806079858151386143228566361246131472271680390255215723911969730745074523151144202052017189465694302787735101787687248297906342684473888582966782578530444910394195796237309015735506488678595105464642325081358516153643444260754427835351191408639040364884550559202727984433854276199000731956817921707582466081068665148344990482456675280884964231813885041846680905052140877727695181445890711185573764039145628491963162562042296474147839684643929765320803459795785766446163500057817055637649470225377395468960929280979898975719220695034525640735920833755809591902320834414220048348190061669454650220947195274854200645564688992287721738341310939981212907823066241334025203647856892610475588964804361559091818762483602612137679603947592023410789107078439887385411831730388339302215347650989968130146734358232947811396076747533533230894295928641332197667370205557027676594546076604569161720007004364174348876416066893520904477076393242465472573040320187798094813527633106648382464236105023280801458328545923125527071034609669165701458379141445688661529477608135715970159865229495780876524178149495189484739070302438869991148126786975306994085561984626896700516331490855857114280390552102924475668196554616521690241465252707072105300664219419459571500157761776372356988075397326550047550162104006795076361492319463732901697160535219715554920625524365390648998695673901942239692334898220609435730509264001256898697114932308042725535363578431971424144129368634754321770109698797679310499374276419107414887532583655881809477718914370993762007822921114053763036686459631848238809998015155847817260285430498640445956959777760034112928905876433267539220059617962767968274732293425330340391252047272104963382850141955778845669661146610759616683766370396297045209051237346197576232836287234330607053797579533521759875376604057754294594559949102839795183014781844183913041908802305850862492644545944725660996398224419861035773314191120133444278352331864055931984307579386288096132116297167655596340797165733757256712631316656850008823204939916291957741293543001694695380517255720604391875506121330988768033896179228745788767614752625280483058272287627982898657041730625074734826014371415415546706801475022213368313460287317528551786755898439967539619916208304215916207962821195786008944039247270343387834039540030698046663542860808758019451427074037504926887301478357290919794233419704774551976423990520217931211102976706561577092436101982541940210150612615012247349954746011859280402560717837287640282824692639280121772657629582720634070087050477350347966970104043756396523325111432099053388604670780359585042845017130018160167950327896308419252776147226774494595742220054980459590007398039418127583974293081230855413591924561774589474335293918569973344321620703527377160776326812918657308043257209455714688609626714813201318288624703371673273704075900210594766865797845929151828984642619482130864684523906999242456523954915995045885477972639513039466779450044315983656813616846955744458517085094417323017141388640658415927359635570830696929501917301708505010659353904222969321705951032140610763268562330220385773327729387656525457019971663223731386958775527683767441308312553607028407005570824036209814739039653653709276803243599986711558048821020021617277365201921527768646462168288120815056737137070942676607679187961133764333931733051808337933930206815556568265944496429352057035768247546508857747295585823309104707905302608580347188601430779252534255524093262627450975795608616451787896376118566796868923511373415388340699878203934230291046634949718830433616221355023498343688512101173173185194729270121556158836672730280491373601777710595691643165782228370623197712530050116071415008139938250188780366343153976888606778768037052310468085624442225713054087232787654771353323092477008647357957538234505867941519272103542066760354408581379416739145858109352765528817745641668974434164849550229892965294956214851327949517843889311054940881919506555872361952714965370524152092024598739336685661826695554436232433859674322267672850629830987603285071068767276479959330871824812934234009484974310407620896682504716458721182258568757618547475318284586893813154318282988131170007727625098751819523456703140754500519472144599131934553869167830040308537889471075221707162691075124452091991550610661587588717425053086606694174628877124793784797586744034427564061337326189449516313060364616894553452494449657449972442306492467367134691345143504280800738073626435847982518392909109790074559996408654588647857333646563255500825577291744803937733999714794919556794330950791386760616763583667093615754335067962044124103359377781406117774225104980872123013055888675990235079201091856958173911943917815326245212641824427623714357198012292621039902336426536748508873020446255462685720910864324698394552605797609566639583386003643312252100782411483552963322569044632045616941507093182744669128961819820513600544161622236381747922487569304275775199157562775985129918699802853881646886556152997021710623443452334699812531272722329493483910186485597482086947840302272427948411296638325547495652161496595612546151938708822466883110671675722934367554109824331352192941431642173870191964607496712780667806734471984802669316273786051900336661655434363586353201837919545980476228932411842818903471635863863202113271599943791108019250959247624997916449394671158853781802171371874735610192524502444714460986103748931048610028972120732635559082512816488080357570489473501388557154993129460954500317520059076600101208972963976493192015680135076391303376132290190950059073636123913206519293434354414972648303624577219149350460995206442180143133430211485469766189101641945719179896382942391855748275393226046661232380880567810995849473944329466345231762216742900919496272386768504859174160283405120828391964125851722712383184126838020987428780354267292117729736263654593461673518469538068177526678334497456694544172621960159860741137372324342543548968114008523775163844546112443993827415233347273171961308885346636598377990948465317919344352455166348828762121408773082706040794903361403072772001334958422401658259228146665231891472503754403884552803240922593006740009799987058284838284269088217109317269284306575263063682874354176043980822407970169639057485263832659498049517820925019974322671789747320389624437111183917396514773243545286952037631459447671043794628970222414257845642246230982129233873687919117311205794659866732013474390729164335966578233027019025762975132878265398656722101173610275269997502874762367366931048125190890543778225750789778809924223922137357834066614900908908244697685633978239070652083651137978505236461831714601163159767443659751647791706806929856817374694695093115388287263944693494034705338253554084635470653993911153874534194650721556397438836432995819708687064434619145905746646849790882405637239516115583820262504265935925743966074985601714169217629557472276212632422887957045589456691125809940359122289324210052568022276273212829713161647950014977459172981748721659059628365676921459245336100167477324121886304505214322751254187910124126801479418019975946559820566294474021645685085858627519215999510839431998372656883938689958967174583019449373048286262404859319328339358944138589380313874641589430007273304476456262334266949711231287758978216143092953118415975848201309228127918844378655191765042382860429555739156115405943545285659938692509127487038193020099238593309812622037589057977327716781691083568696991789923464423119635183309127605134313324519340899649757284975442369272516316410005886443085716856876389676705630282802154442933120230504054489562722042284066428342938769660593137623965078389556035994767578672414124833948038629703626134780840963164858741959376511961103844417980900535135556424874007125279041299860794603524806648318869518727235065823006861458238151932001066880756895159787422688017585975637466829332549733338789471307996938172085902424522681538454539660202902578472105168586102482240953144109639039034741020416346666910920125771480763751990140197931095709721288675791655064085026212070028830964619869342629045918258656303474161100461003642725887350948276966154625206502168584322557468148487315119695615490133577135353607273606259686154526375049412137187589535879238844309643608309402161772647748434122490544672420595135783033570040180545198898295449690838603446457931957377755721796181635707963162560461121306232446362504984405266705111266531627357082728507788849318719285436108537313407284054479006316032309697248099983903779691073929473498861409649526284470049774300412561626444720607442625586539203202314691955902009606318190159166773443841401617188301767365761410787086588324604639374664475907922965013842649996726810727054138286284228600246001581386447866955048018743182097898744361811814563209912509721434351974087254652116460221986310123108423075938749234462089986489173775401636666467021621830538165301184762562422809973317277068228233612769291098730315958031986038959043207241111032696649389573140099303174586564758608471991572195679095240419995048897729260966519823123018441500403849792990415571540660408785881560127702954211994159611378824574769051257655919864352889878183505085573088714076268844031773134517516220235124845651860129332838242652505528992661118142981786411789078605728432740270613799696559316794089831443078729963929753874700327402434089704664692039619066605525319412343675690535038628619387115626745392646784237119991505591589049234566744144685082042205808923212788558394485050456399195027212514709045526877415526747503003597063272282057701152941719595740696838705838996188587230384526950661068534454101307531917211372993044670670513981961392914394056242713157486719511690525149040670773302710036056214718542562567974134508718621735538359749694324761942140561710643181861248625098106979583261884680150819269617184234390750063261513832020883490670157401540291024331522464914804944215317495626522417336462177581933260335381900188906057814902570478313358729084247622232887079106430565097278980574489137157520243352319761340110401495986664802779245276005385167170709653158116491978276988018495955165209008799313287830071636079932567388817007561229022448218402761589295216576008259447177257128435892447303812446432788280985533681487946191868322462857024846777411349471952102877059503631551127987073536259732499051480449056780801514090505773855175512319705597484498112408440435974761230071747059900054013158639205447753381166669696414061396001842045719163519023504813400241760144507850508196467690000971189178724843463309016036808002806777896334407420017807534008420944019489190265458940944640365490938837323617895886276812633871020944074945988731289282603802534121034263857969908239698794751623169695970996789810855612703529795288904818603774867085070830008813255042498646935933650888312315899989507054406475119054044662152057450070884096731945877614995613459876915138065705118243392807875998740959676530297706248808529580056114544818272818749799286976078797084702631622318290908443124847599890523703366058489551425966722725165220615724024725440800756222138333120464329670588433830056772571046843994763870741303059893195955397741243082105699100787458054890367792632124583274290760102220020609825817833399613431085784474056837150694232500940141919076361309587617538084824848142131229944277857018689663652232294320959610008222124475007050190583352639646215095265416451511573116565976454631767249023424993554238835863183883824880663569190361110801967691011976203060956899543785845973780086414759757871959092619776422725474921119389821785492460129026848699230102830548323980671124349033588148640896090489944829095793155779522382778638291143892969720949905075399728927519922375735590480452843752342151204693050932499845441035355650974134835280272066332858852366540813801058053903218998910410850413573468408958954170902042424228484879872145577657185773783982662454957690942504652620409185304795434350944834194145545558237992118784522559822295535069014888808818585394043836006961186946212598301574323825711068115843814533713324409510728852019390633630604667504698367620152136805592059239495573598431193702378275507012973554231743200272283738402725165378764771498829936069109532406613343540882416745271562869642473015543627744936698382568926217052467672740898470555913004980982551296965163058810909537688105117764531465342592375881766057962602934227552406786400707285322719849438858129676529783199706959164152051717496759571760974415532318394789118969595626112171968538482221243254626871531426710191363339501435468811985931026919197261099012375120291717687265597620328323474829943321517896628104375736454085150929880869054194963616163069403269957221828822671998332354628319389948808543861391741794383611069570689394895727877816728480755055172392063475420641201501274887845189763387773742149970626677786330986778870899810331343862849203152568552047126949305992349791832070895104272299956745699185626681895669458915854422019174984365798239008048335425515750069019060934200105467091882549203960774872819310426710403478105774044631509969332085621330405831732424538707951762907902048008794026350496740864158951615409382569800098947174321394861506701380807581356707986223236142587351383236577519686901797576585985983075405332537702062528888430285305915298435434989403808450923724757938405627378191884209495187182627717947782692098270753376293556056862229272970259066094552835301302158430950990701531385156000768400480742129642646053644073504593416362251878933843170533922928257337616254221003546035896117659066388546080738069085187086257968864905870544344784258562010917958109468940154268173087750714316493673975874888365708913549907974160565024496828835316016339520286294732580518863197671680486583278320890064814115576349224331416697508010746593661564803986768714288665091712254584140384248797025290036956088289874937021415272427985758574930304351140850612053051131385769836555133106893853343707409315064455825119051183944893615028793195993030898077376201044595289430562879413037210012695646724503969706699541061925831146915193169020828308154861434771315375150037408280830757021511084130173320099809165015262441627962985069454159232281280609239665273072834009022927064642473798454540026702530785334183861553042978177432179495417946894964590246825628588798014032893898554048391162150298818782960851729750615023874705064950706626812702515859050447030320050046689005854620677243022776192800377388044265943401718409139125310449662632845022353550758332009532936756722754206366796712498937228071985115317445029360112032791596872070195174949131374442458081818200341966778562172927617264244166064596352294493210014943726760977660325450420961248900440537683515697013639167094455651076438773410179657081568071435491759549532498451677622252501666425363800241459009857728168160564943585418085103939768285904301922250954010936830396469598951573383089022293023631633671474177669144014827439199727539011466401283126332090507366623515313376708761917626490102005212212132907508010198463050607131216699920648284481000822191315868210978596619066729023124631631575132078785653814131795176385970539638467182144478547767730884488958504102225773483114403921893802862679768110791354978599527397537585686010575884648339072994971800811177118714653004200007527179295098491290398480556342678058107955978656465445314439244771719423737660775788014374857726206206928864626916390918157964109686430153661297524742522603034255536336729461170529562124818381781789152638229338272552973577296561405173462877165867531985377237163281327836371343159088758277362945671409578063673718576394339427971423024770329104128620509115381029626489135860192366472547004384670408679460008572880676385010212121181674373316695468951791342677441502483497446941328722991955334492460813453624453310378503258337446087531827573382376805520757710407722478278105276831202301145444606745949100859252973240913220456592994601641851414717351435478183663974528179154439640552562441060358877393138284427376504329174340243632557480815777869587947388797429156934214444346682205614651470381267656763284094327603003689615634539684845007819632376348630295111083964063173441037966226645985751325663820558040653274965521458566373976103929131205542763086517173866773375257708936952471587299509807851668679685226052271297317326912793034992368708885140224876826492320921996440722978330078921643650821022478784699128537919026030315524430526302308382687894168220559305221572705271253714609577906451553606781529197163561371280803743540287409553713403791240899576431237156815402660760264894312156533349880583124386590926761231133855554052933811879493674845563989455573166815653685113630044571091143124347741110105186574257482772079674381838969876136342471167166176202258802271909923558357197337448464276910289915819892578945127416405599172967523021975196230476446331829605970504951789306876985739993588785411073000596668587731898616587372738674307010130677984083652541321099360844326669696643246808982623791824998614099559268343489422998328734935988377058465033225677756429310185318414521374385599130804103437433596954748836517864867579296123310548363389433808868142123606775666710070153609707967722348067446671801769164910647398748661136137593845486165352352579203033220467789360274078295306118754524693428015256817201040241649629868853779919877886034944443526103391225493914100045396957318487659578090508624093607345561902977107365141964050935730894130971559125193440472514980186654061095580846493140271426925157223181939801027773563281626860275377779440151436302123681832816380252210809800238936451688536198175664496029539479862568201243185410806493024875994800040844518454459776522389980556589098983459853750699012329531564673001434686861225317190971855546332552270036231809701871987251645809314903267405185854174211770433329241563631366596664032066412175357123168155413936126457227914916916976339919832109436843481852917338527859057320076606297008579259495672400371050128385260273076290595788627204268508632182131574502232368027170179556040419524763723278726923760340023470436084315968640091034614573857397998985713919566375069550424582588245132370288222507679101317967341451177983213013673021682789854133459326915285049827533003006505864853338754965690429866824119754922332821941767189457889830088870462660888726804254140450857607076822706980202313895043696712667265857047348179159856475715873006422509491677838675406926133512234965890244394242479420891673967979609627866981245367877285013568722256416281542767868336250395599558232261278619754839931310174756185031078664458819361235690739893157736767902056231433786927695461474878345639398364309428981069081464888258677918817645712875595197529820859539772828699961555224434129762251435458645716784195991079058106446218845675297458296433631066156262488193523882354517435374323661800713240252401556301374446579665732857027376474260973580189769094056604292992331754332934103219979761915326062195769278389742797316375230593006554558879465148500466342803573746613845609878057994067714756344514116261029076038649424476341201858274356516682848986030118241660437735490843139205011725689848044597697636315426118014763685825235889496801179755321551102372267775093050625131052264661629767752472034451640280282995113355769017510743158408766420732818168833026963337079892411998116915509965809606551675264732919799506234038589353104590656075217596015945822261658211217799558440830585340404913375614615772996938403043078171829989961959377812872600530466190075979167945676863070116274557893489147060013568338951969279891959772486839896698665936219226508190660488165335574360350176217415499922033970242871168710897248864285968988053682912489304146535638575122807174175712780605158378939600983342745986154389962178014672169622825182368719335080440974849993307444268195374468340029507057857269944040276143766545043806037128531587759701325823585912921725794523542453620876410037323504515733076055337145022514611833797138125764145984450699351735319194865024416222831410221760832863665848999267176536556471230116741131034682425913008909721734342246140818618789404306120574509779077948256825042156319737840570031563348743756139730879485842145898226644348147402310802168723698714916101368892064661585790023085935827841226997933813869407974350969668026879728674447200674865345203732228623929922859687101601173202746732889918285872962106490077738810855702777552586596733595744424555402543863237124118247496874100874342572011419744640245621512557710196710148031059182549262636951333551595186838299394522218964134566466866342213832547059304945935792359192692856200352783576975386146265399588714608807052595610803892216172883989442299740017861739282937598337380666211049541359692766378298738982837714426797596711290081619470908480641550172431068812858406402554365546018696081378019934293403227136577301552382359316173228383923302221987589546549040469381489741651448010778063331103945665432617662389168477748476290233873207046159147244789406839459524798967567609836000431118573446427850051678598550014538971111621821239581939593478317597415975143084518518528397688343142729932884972882941651671790118431655218768637430679258845974005680800058017456228644807494640864215930429865139762615456823538678038366408575153920140499800401944834345273681785867607734209112318096125484480942960322042059595092458966413410144196245292249361585744458139720847313705224870080406501146336301154994204731688468390034775881796691994384389010733810271648895379487398579296355578871336858496454644359343702814743297935484860116347219795663031434159056371088120434666459264059577328598180526289269652939390420709541104898117440974899018282305588824000185916551273594026604731232482117097815862168503221436808943078788545632557205874902569048290866370886665758877348594553369334694275318706718592098201625927737130105528710279523065302683800226222488445901703868396514422187847046166750569606045205896295535125234812417799563344268425949836566449614107728770396771081830535064157965117259313291881294775767201954369716633701120072125302140187331100881487272278574608919307951843548546627391670557881770351866231597319739221240753550382859920423954805879149740273806091662038931079681037591561397526372795312612749119404586545647629538008427082256268836806215755599501821707775409725651518142981727729559308336105314538725955066575367282895567946836458949425518045091694163484928983163990265299193669506837351220411930955823798258680799640381985167238539929283183807503931470099714578829086076051782781108668209847721549966431814162144152664426371705252379574573531368411293466031803360803217634178577612737226451586721759242288923453801271622240086729190945440401682979491813282890542393497920219062936147256672399891453841996953203745552372515511260576128377733448576159877882636945200332247235702159050282121022099608598442144278116080814774403630198937133081401833871854950225751053438517760289465991479601416925135294441060063168429293599199215659252992548139903070395142168273226867451812999824291529762247352345119225462543069605864893302921481855508241929963230332480967371834716692520610482028010699472757666682670801895942618917731707143057993096592646064485583888336849236520203538288665291671098884519560053881668963033543181024994180423793445628713461411895572387945645115582584594998072140051835805275779102042215836129676948911323235058015052792872966027496082142512502043691119511715555509102340508135746064139904582709972744317287049601725281515120153584118863468756176236006075387101158205802522673047929567180187987151704253611111377697911745372704085543138939530648580269311666001079395908159142346925888515126509505764927434934717835087822017774615351510647582473619412628355663101438224039703765637715237524038000323546580163922096141283010822413161811638180375347512491577681728171657781730969521825251365205658237308467853192491409670933427971947557731015694600198569098360082615554833260814855868557783032350981498417421977993898293291214023701451330025903232133026742327722879330276169127743150740729367714031982482946036575878732347822161680128623393615924705825655581967920936937443083361937687570919267555194488534200256737968566367674475553195770140723785300389103097669947435369388238123935093900816231222994212980882677528333965566807819387157160447855010134830201635941350025367222800172312588772861718946668605592185741452357436206741873118867688402613321452027555542115196641575942757203848479053335903565597684542914407097200245646316440392942072795919848107284197949033899252597916429659540842534175973009073635915798505102370493025297953890086372196151942301421628114405668244114889580546611612915780134059632487411202704850286029983800488923037503004315181600029585134542202685222617533586832722486802211642788004673498797824370908765887009289362305085380601921550683723116324141848458543170029708795762012409765649779559293841350720210302293277798329500341608878759636433592455890773231909512952107884129999723525723888080958787789686260001156986193839285848442468179630574672589280001897235342287352644790277890798554075601264138046091037535730336108882844107242674599436520263578549867803329824385723415204954678361738132303426404939754664720809817372655921516930842888850629973894431404765125538167468691442020757071494897269998288146031172025492348413545606323730615158328635548489886076034225613226742164924329484153766006133954719845636613196112420380427488103308363194478277884128696859444194674470990998964947356401574782981669886643025083253254539364544051431838878338989649592187492761061880808898123089546374765398096124318197638147998085471912589358953187918803409127104210255381920089646594176457888501376759833016274461523623466938873453878192515492347016065854973453509710282434618572294579760159223007013792801795974130535069653322179455077850582436553448269970623344598723024093736002953143070294754528693697200201546406396704155427043682201861123197207085830196501915060835776066449791972985227756824658116551999093096525717759405419853546890192144649906746930323114865450366708857909669890089467785118878150609788616129080316276439414267474153635387973817456664267897902111178442930046819886884074486280284135610232717755894181732157911440813727537851622236577361123511487096930391220187525875302873080109120090961768748180571082689174989948040067641753066417148922333439288311885214382952665511210749843248772102381227585568631053993514091296324908336932485208713178689940780695210919309905418341029107303878967905539965503307436108434912967016042813524512702312105097996839656723853216606746571937508316842942474097294605465505373746830862734272569812611519937967753974228569190435475563510562766324721338082673196402379288885124320374229809316607339036691388422720814095718894016837684938128575013466048079058143625638962502666827708782184574656253836161203357868583434473792285739831923389818288801868367919861215416895484452383391695546344970314119577488906954779999822396055985633822274758123330216014332046584698867249236774535641356365846478196926991335184324354495985201039016640756772540373050839700263915564934923082749188822658433280186452619635639144658698474368253078990772788744031775007262313075925438457841782839802632763526040270645998186656680574564175899742268747332255330239311455512811217675038231043588419985653039366393296609861014048257112887842850622727539352670954137530980602261236622053997946413206133644292852058954159987508232972452537140966722622937614214259330438513900518203966715755375514734382251523316554121153833830132185015767927028008155240038124183219132919629785057103078510249131451999022022613779390131886661682274951926176463579122414956074927742726328511373231233229816968932309964144692488970475499082668159960552667662332167454148878548967216210317041207807704395858552736867677701835311734125478758629298082338632547864973427108904282885788432923797849239504287470124122236124252456143249455178745127208080934050850469887184324324714050241849958674199280969152325715956460661783435184611325439924503493834638353963608598293138353101710037665732476111416654759667753337363981479223145918096293980842343721875014544293463184828094102141960149002141703372378057209268502221223105675897835998808339271504588445265194468183204149294688547781731261485291917781087365469913493963821970621602671227793961759182822385060652058236075804303858280274616146344217349292536776924007891307485639797950831234761626629711654279665997534826227154689943742671939916346445820837271187286818117497566490135341794144854517400524205884370157108037537686971887434617862175176007023081126321572468414904868796521668841283539871272405440080166728861058289790206503478000225981548434683049159969212575425891637930094694617325132387286302481505089429593449705073222762095419919240164041294744667775139414877300864119824632764912214149172674418244729865148185699414728638243042442970276379638627768207998741428172341920426122275938667140953290077309399094649786531593996229659744642223261720997555714154896388216733219854799046415681130263292624071781698677469173665346708748661933939520610095481021550260745495970989298278800151302393413133989313088112989241070067160879210784254994684850843613275671202243594036656167143401176795213302294175245969102036172767169524836286629887361612155546055869942729659223791194562760976699658783298836707522259718281350727209443838615738803876314765938562851883448513364946725167827503911090298874554762710920044557281744171577257294114369255427090684391652567376218816763319776569029872062454130998443755152882637321883416357034978143793129686631159487795670713223192757582233866203489159273807084474507329621546114218417139070191173761073537472576935864475402715259394770237608537380431529034889390481472114355742190761612194536080307375638138127611387760528480088300061321874197016369067054823011964145050588649879011830366595124283614609887049910429591209529723855049112336212905782423878094865267187363775186149711805626477582851080795412436864846683942733452992638971014257470321476699115370038349689848524940496338647778096604828417406188335788009137393483490342584654188500002755782027210484270927358648684756651122498285002396864310463479773981045521870054367592878068222008850609466403055934527461445577894537977212202159134957600121994232785821541343519733994106687821282189324772185868706773148591322025672966385944841646734903093572227078679349037120072998515806173877558098454152607167468458943022681054651304389784510546404571919869867098626805849848395674332591370897154530463563947759094023090988585102282231231368340491950435963623095492981893744549412910611411452941814693896762011872516428124167710119064916237202993815927819010306530776316843975041230973630494772298950760325433936177000444503009560049762478679578717745892123403808684322490869291196474387488774181901146050968376278841806131535670914845893267431384235179861542480668824146048299446783351172037062903723145075932648774097593458534299846138922650760317274420083906309092199746846540211156700452038195995668333989984608581512612171416633704252538900506941724342772769752556529559778646745535196851036656469656620939875012823643956551379116548055972666740438629041141841003093012173624353817624063517196428872511739048604570671410795285826213861679931802984605609978952915749697098989892202652753441503776033858125524842122887256673801229028036743531761182426767333315698495981185456533350043721405870548805626171916265764700756105616823279473792758643474768630735437819160685836519222195976997841921033879558378337825130463291263093562581519842850534005824871433943111325495056841142317801699669507954140560940385734537152969371599877563016350337324133503635732584468372194365963636140462265997827370029563897467912812566333264890538444577893334065569334170079785014051249785591775811396818476961896027524779774149913048994063976347107866071176040280542733061469183329829970139958320620702601782823243511339695621492537489621441342468513037302022136766849813014413317410896145549998518693046419089521764744913185634900004442695688224363465676476977178565555759391658543233424548637901149642627921752949978901604285132379416075892061564298034241150208621424567088523189322474838850649880112504945011917081342602470065119326476708570569298559674957865389847360555340858341468698213704255020945130538706040673611407064676098820311393508170775174763621347157227437588850370714919141942390473772263984212514848406753943295807614313248288561994512704206114158055490247082456007129209282792852307833801164171891512304417646365619369763063519264393038866504997149931979647497566124085036502399103264356691012137991551815144565265387244675126054645924940970645350454394005385926516547735678550140761201930596957091543670165763043479641379604376906567904949258807627090237053625237326658419447610685504803085208411123079936787724540526971173330926202436607613263172832910703700756471820179788257048037415592606388970732885866644728611792417085853473585691883469612404594261867921062832858845269100617311017591556919115581077940387719771880046747360703444539334154517931935715981853823661080607497185622333546004315696685563368465294436262900036230252263074175759092453309200086698588168473799317890380753742569661774156189549604077938016212359124147717530817499875142767536669553409884660184390462638152150864014445834244972195037723847919148703786747171821735738689518521956519245975544184486402000657326832502671844301298846740223361049424295898779678724318853195418680242664130171685990005147287427007528734429194612752572316651149637219009811114340558970734804492147450686717599018907684858541280229725718622202885399150351746740659217097450500696685659902399765487495149291763764105548204990047665003497041499768411499110848771065624218520058876277412015283801920777006189146158027864582811771114938125369840377287599375341487147876017570902568159182334632393364550263142837665846700450494047436813827422101839149248926026652768310448538608575602790698101554853600221166810857188226496356659714129038105355755347774678093608658999633532566320814759667997934881855281227896019132224055088871859183867990459001306262960597201286553582342369180322764663765000265391854516385207787538368393960729743166103545867393224012054232590779786017290632919335525127675691150421973357795602688632247831326684032131754996878068725831280605808027596371180804537191603555615883089360159068571326212066480763425790265252846304875521896115849147896106058648340268856328345656483594922192736339385781946692568518346372132841421967103420239100589330501289280432710297150251786365590901177055058482893572551334079517155710044047241045823090927081313237163544433590480680731247572109513289804761672873701013081237368004404887569581561085163459710683740364457388158489109142110031181575250511325824309269900250942416474892506131012175565126070710502602366038371133607112711286970497373296549561312678082848359870279879260859846426758692688147078115337503888016521011383131039911804796020114020520743419327917008975840458331174373034187210153350469440723847635332214782991051120612761727606499517394034712567031801622222110088939574727853465120228643312444859282229316438720484542255799578739067658814474483250603706717704502892403892807917812248004425019531583199928992242238502724205213317501734113234705647235303318761661366290220752061172244270155384286585686195496282248911211338332735814823340179426996983143631515499545099245200357070313464077862692477357939319710282755335014002792110164711861925085940229136607588497998815334660428336226226963702409344658179469210954795229064989662656478759573943872849315654734318019153792210840114404628584869488544278278814546810051508163469017861027339138930517773656697327434623575791853458373447793872638017703264055517229204346115529391990404246643962239390874728258628369232842309562609830654102381118015601557585307688015946731035057516687332778114066042447933404675569896305244227611904663258134208747010062409522526648307615270629640789674940125649813283742995262485379708580985022621835438498728807354170342201595696368011645191400050776019074279156666254546964521234608773698486145149698797158393542179342534395029549915381432884526382039393613749727569136633116555581818749646281280009366180353701396873152837301610500819150130834607368618517690026999406978471201436321961356954669490271210264947736362421678036206300308490659866591146008823988042062572087408445202944774578103482613866621986011690560592083208138779300502798007587566697853339973692071414753126610260782785169207024390344883305281894366338935736860342680307826582818483490327076313374713017833051617279153748840929824094005789212392477284548171802017145600668212741070137752746450465390925801159432520195399338052129736721518505588731090844054480040225054227097663005920673880302095706018769936687338462309246206567937996877219414591585247088699172773192606362856222930524799713337226905437467134422275889017926003998403267766027534359951573855673928770224524961353506958759268101987961867332507719744775133544062922362729107039941286117119773834987509080980498336984853735714029039637448729268831573050543038887354346414378912025493687693718400742483288056954313301802336591838094159397621953770190237560955161001448431060292825377077003960678385973360813275478989050031710428145711086256453325231776403474828987755734101961956698161183038441097985634982121768004496842427506904579470582017719410553468754580337593947114365804004447071499040828799940592694583047832628198872790632123962754268073277737244267248606808355925896453880723105548375168854131006254109774565307230459193336143994484227277488841861399129699478310249531400896426764562360411884582650183311486046992941994469571402724381638830525850466571358151202531249961070577209239981736384671507379916024181774648816063574785769567700592269896412322075396936067149925379196578417481309757868767654980466954233592100114603709427805515458818859405897290194348420389134453170129325835180031596788397243325629657816522596719124502996703055015036029033504139523754152100418674151343365330894419074213951098217642824614689614168095558014533964378389967449979658921930384063394928916157513112670545550445621223323738268369444720420024517640357322064472140742712316188772136266796952357417190471950775261420487937235297276750851553240317935161980280112870504172743121759237766239981347348662921435929803198377335037467259595061561817876162460165938988610059434870023049159798610680534806712710672328053057075490683039354475119864790488979943006156198667790339284711007102137971636436098178343091251507381168417163528094949261180822036270397269331444661047265928121884321063008312877042144019901198067296562659253241547289001951075106804270799799876803927188515907738014219148299054391210075965510011579793683154918297628927435842759930521750222278775450244101102964070804047544958117744825634631427280804913879087998518647303683098572748924177814523647665158419197105409137617931033632770628457664058717382664355640405045960654871044569493980369756288727156664981287858726671927903211923152144648216546230003432560350115059225210352036410362428230376780844063427229674235060399559139447328675014461838941103186533049203489169121228390744401814498363314918880571801281583474433377333977332575293455685511895941963660598739504400238381205651511107140077976879259365602398025465298376521450194865070343022730592310733864999431970422309809961574296037242901459809866635200763253956447066910942597280416420189148254566408384038534318685642152034935004107963694676177605534731000409979598353602135338434519217939301789951035740923633726626370605019894663591173222547844253377400961526733503409885296995771695361296750747008712923229407624271329379771854966213147346754332040944371120995643770963794148313446688582090552916902976767221378230658878934557147779814899667722918909387417142254449478458300568133851621590289968213726244932453387324704010133809265217844932463068960071899375075286946227725424055021373051894489643837469231731112995590054770785830299130788143389486363072776502891841911787674406273744601168326667969525063523517746036995862098789747827008552040675061450898500502107967637684227027103726007848349718140455199316423909405067883224941921398597017232585045856718037129364701303523846311976960954935976542141431335445080810348607712015729489525943067175742916928129807999672933635904544873196811799066290288728898168191347962332317292140726824270306773404834495180677174202009178311652367340570628924859945404297871921790953954334817236943809950533965993109002615289701186456626997835820126308459468028387963283376867067789011838703765293269154644751972796486364718948933652956502587997293982691216744281149416620158448178996083668195925811689277174823658048303135280374433474824322127684938855263914158164161329599317182353577857063384433024298098555280881669551000610624634280250627189818524972989949976357239439397411405046775039185178451078443981909917985635241171000977374376021073849941203102306114992159372802605446147491782099942439006959960965709634927404780579128155118052413089220947947179983650523475619061949731744632090301919244484335922188749484893319816979292446489591076840499441373732433534685000809881334219390158559849232633575659592503903993155694725538249050556068267521928775650006148776123570914887797620337328084051543727587292510145178207740433404025065534743216398268226342472583308375957512218907519061062982959707669814588312673963889185611108478256228148713755237437835788067701081886054529647580673678064770683881878227177205366648431454955750486551962453376903832024163652464962176387455406098231116563513508811977518938869805475142173339381656753685204882154280299538437427823406118436241714787759015643564352165427742968908826935309895874273758778979928883635151124126856648591992366128107670337035261742799535029153221626557885775381008128534608810405203418452575014652232756637142808874319467460092467337784077405004552097976957810221681852686921552835222081833078034035401150741117772984706289334676360961383933188843777281658994990975882397882069250465087155657905842811724842055200430592888365877236608870309469064625168860256269642949235196461183059607170273049075919397471976802184560464575891579186654938084441880045146435948602605345315069198433318999851470218695027439288145697961756164304511100696984056165204095179505569792978481341088854057738300610409218280150930320395655912306300613321430011705659193724417571471573985703245965483553801085998440172956337443378434229830200303388534520850602665049452868119548351166876885177108229170127444933829657255052909638214978363954203789255600663211685805513392315330459047522283559409360388755426716029337902081680333449194931149146684166836622509571913135949995956117182794112117019888905731055681413453706623826657882939503822641367573454656574199962156241272141634743540611748121273517789700374744149414194387310181240601182147272761593030672386428951651729942382851174215087166512132750051741559919091254607673630311542104472048104802485399771298912638606306387952118713922601951095303778541133442687706278150797077972039851925869867992052046061392892071443208300695615793403440005799563982640035124428325387264173524968791531728610060695554324748285826718999707301548258165412491619320730452977880249457840206405676661500703384178424090377794789496506036591937320287094048796395459260034045498737538529766371768994179222691054629274937878954303787751564105710626564868733133632781057131029846467994972962446356971134033617946768158718974716513178434438019996257520985111614443801333407106991266943629055406839084845060832131617305727002196946676726009124917199905346016086509454373056358624106492968169832367851635131953136782072617576602391437622498031402290785532949242092282993301104489921861180352373076922900194022618021829654570269428032005879049324043588748792476512683972505636405873744842906013769023854179136019101891930378516504879383805663621957688495079858547394442577973727189270557135271115104616863786281884851472870048794917274354703608791062185051294774462270171880340593236639253222353929227008012261530890222868220899151816070246409758684645323788839688383429312203608152728636546823462605735002690077057336991685022804362192835571732066638586765221724457016745477041427818329523513856780333324083723705836846860614733646617677658464938396767999693797491516407837137441128983172165492516754641508041091676963881652781884572784707963030707399496853880321805070863173679233193566248309490485651535625417890613721249131620976409630523458002505996366025746678905208144550690481926112514137519329858494878718190246398846454107796041628707106823045180993730706450533498461322086365628786959273176434066482565396466680481670807157390006337198752570597058691062090595376318024975645875234528989495249224107114198279227792607115812422397698374076735305882129841273841492339320860048764098515539077730606161381153006923780079111389352337547893257553649591875367448658359927017655843587313881585581245787423168608959046459221041946170441159028827013323174932676814029981987214070288892669871554667327330532779493201293776471256491028264211800104177628732346109475296663092394770164367837874307440683800872095012963849126783769460124983905230268646244930132464360603303150522436561858440568487478482973631564711658573489447292508651852911263791724986481854208996664849452899184868295193982682497594885806769952118712274260180560596934934578958174793075533066834085311218118975645938019745992603522522055050256048171461613653805627063769741940673506534766056985194187864255106575811835073706033849847180363673888899859148197566868706386741972352672319352134443788971420404124256417058114732534800649960021067830052382111979894893499475819615021248910207942225079733248646292648445321327719389504417365839092351484878125855323188630733134844063403353268785931014602310726717967912786218954273071710150883995801840099807882438319098418100712322435324543273004550032623421827921002475293422735076595145586691924523248707749776220930973044489979916159443301500584265585985739362573078263891733507891123991816213412315104817338545922164926439877783759115759393697052809372122219837409220610357435550749434238428443434154477421705348686051052020979713034823227372324860720323715370780381012264598223144515602442288561523007019639255765689634159201224557996832531706204888556911217474116393891534797407261439472241321539424193156360562775129994124171578844831015098852413657589852585606841693753645783066034782162312844994928868764463955275180160652335798083686969326949929998391901231687115008249633001854459399339922158040831994316840633209028226904411038073401048651629264591945504403157140520392800965086334542396692671879147664006930684471926934391039347869610624389682973438426795121552805252961050287963591851337924922175972620264604249626976872436140688070377048694363026699281137916402774014112735506076869228477543567194298251943339640932279713202712500447890296149575462039044952625271829854156761248512683804602754348881871122452487448641562465292008797599880868847053887598247575952995940795664535397916985574046981390444345213006342526312453128426051011783545426974523818254822367616900317704823500575963572704172431437252465709004922476990856459904316817269821670163076817278183338092425721255738553441416198417305868126604102720060778953529036692284082187415725940069445637260079427177889850940385463481422021721279656881942663414552126152709952028727703259653505615728634513886347971560874323699157250149562167737089162373845319738265929560416930843612876178620657519279152188100082854901797795535230129071629719311580703778443285813798357674368069917223766351057074260822842103125571382267212566194480793227641213610537292404084345662011998071738022629045032456996920231297202486763991313402889365921098570767451580598262743682728314711898032688624856151661361923451812318794999064626907396693789189068637277495982488581174815582386533372474517733514091009199022828295649715242626937739621658494107295612016696154023840537896867584458155352480373998997808072953651532063579119682193440315566257372879541354245629232624436853204860507038868064789666166187392744930634106706928137189170409793401647527930742592149351911839687805439576990742317638547792235200117711191279828643903671976768106080585702047612764598568996029344216424206090458187461108587392613324438222161856891148488631133890893002864465699789536865975617949060021969751681648442080433711594054896299950228059230066294728739057689930401346926149593613033615839587356610717983274962041511014853096560404269699536092189632104236059529296351624625300817146063318005657486694053339398007878776110245214999943873898350269907933240258268748476033214095954010651866022391473477800091950950539330883989240635475417117592223731489548151682982438907336082495500122695402284655804826808624448830527400026545289146663094165301286163700903658814327890884196408984897819183314012738669360131818487521111832082228313625859521527251532109322581169191563257614385436307410323521343878169641468925320829901726050109816130181847788601937249542423259098866081085587839239841672567984874565066059106717459714132058505523096032033506159915583542585639273299907953331556259578349679262119926751314369052480980647001495168768840659414586914942200304295739455152129078858402742943369126186602035104018149903566029889602697980069625804109877299129952262584086802610806039058301463524796665710199955941924516576247631555948965179769946196227708644261305583250532344737328423440940131490058747781459006739152192526447532706349220456785445835540140991890675102732372073159599459597746150796421642312954538437476947240211620611677306056772250652147451999320068224493122902121439388042900164144754055386184980321578463665328874030804462115352221277969717192197617450450857704580685749903677144795062992425238815519575820503507543545317309900794214423688957533999282422154762005159023263937362405065024289598159371034875858064289521894038315825798894815579765826860470250401682862059275304579798734310243178518318810029794350245546595474863605804376386203821698251010917021300841163363412491019298469984814977806566433058165433309426651653752091342975551931415806761034278492892209999922797458610565785132393193464347843090098125032773554562268361346267134834254064839737514560105901361484364046714958262486536926944321798069169405171141728234608913883757020114745933125636335881920310165250548075508030432744819222746776768756280753670898522412043702446478240615863547911643337736888420882745006009401999500365001009971117343269536721150659393052295383941091462903852739158416679200923567687175664577068643343107306908963497708304906493806014092405953184036844241860102459701828877328335838891528782545757661068323136520057961241402968530336411316362837143480199165634777275993681824320329470585217064810809530264756361300912625301202203677636376402351288869228842963871763132997984239030710395261471772756526785963879819423440745750160233534044963026727620915051010851421069958446508352935722250750309819256679060513560930267736445631847849035046058674374834623718959245911289991549847806417996663959986493943085596732150246243061637655201050601983793674551520482096432241251844659425148893258524282937860965687143980101068642906145704782869879910916869487915601144347048527796041177399176696646443871980670773790174783527867166579033270942076155630804007967362161920918512694254390216895992405819924122721339951288461515314828470020063363899234601519872942429696865974868322724265313378299397398352214024413540918413253894075414158144521478751225700754217351929238416824765019018200226690609638668325459817213241702504854136037603124181793004035064992182705712388986308887582260957807249645669836872496476649126008054704912704561228554452703932378966760429353757058278368983602660685591735899346953574484350469265488828769075638459333158898838142626936445611958473892603016810055982863586648832781091782683943753050373875951765052670229165346797194954363797850827064465419430433540157893179299636042412702884740672597354353224481255905098418969852644052231104014006379209765149490994215784492934098159646478820909445577726818676382346918778629741167314198165492127537191675122810399852062005843781143516128282682722524492901198649944879465547735808668933510777484363600040943564726768277525698095832190384418664802849654062482096581935842729443808951756711044190622496871201568653064654764277850325880802003499587397881483634048189840449991022983745481785108704319480712348494995699573465256689229368521037376639197700726455810141280157199521703509532277658155756574866349566446634871359964990847964547317306524800332301510287441923719957853910656203941407651208414532812448436305131380451929099704372488569494543002264960443327364724255805963163447153005537161744869266060275679138554039868672720402306355528855758822824431340361478312653771444830755585246731889683109400333001231992833107669898528721539144374258357957399817032337931706562808647884920143564181203574009486575744705293725098252348146361265512481170384228802893700717310769031763344950399221884109791054025197469794067074178093829341029100689310386540819623300047985142336397419677050279637501983286553782045122616352747870193069845302485109317926448639766074680259775622814228637420916349526752456215408844018605579865716023000915767771850339968120965571319128675975052975956553763777428476926372429688479017226544171253814960526959846676394525819863798291839751560371541961285702863786909747503090410499554145318954801989901581159060985595279736988676537863620854700732702049695376615132955719022536380611625453298922495530611425376643865777532165571222605622227946778252199225180407455665265888311749861055256959338401411235171782309409848188818213605226490081203610874868576845710844365210083940843730415508928379425586417848019298051538358618484358221890242682190024113582867673171248092468594790801420433605487497814279171745411847818009012814738246199280866235647050209000334068328424019972614523102681800782468816020756374594435940676956568655005925928167077747181864921099042410629485365574926079840217221504579811067172420413769092294113738657437842167114393384166468505391756084510836932721129903092251656793863699370627354676561182283438614362568188685547430375586261893581780269474533849120473269731733044954587835139372732639008329943203443477890840731349525137374063551889147583436416223215049632915052556778404266685661702152414504189512332498005087131365564422401241857429424115138714893468463363158613541834534234808971844935401263652422191128745477448876341038978968172512707852912258514361901581697777653619103135481809856726421793147799194340307075124967190909851118198140630451965599845333444958041797087233982391189009175257418141612097080596641435392447490656634645105333913252179035314762524089220992323587431121188658356299701963937175899832366536275189507235882135778015586502348331784161787849002919238225741802708493675540106132370051798847453501540687937944706126351751430677887726385171759731037196192676496399479653470687485816565754585280101094237643442979346487470083387528948586493167248820873236025332333153179026743782131070472078863128591934392553367629650409613412668498127710494698790947846773403272190702019559310227509086464507246108493998679463027541120330004350927997103607182427514970526989760777242845820677619659269668059268608570887121988113008136835266587040277025813517430088189168759741315289628342549438118780357680838186808902047118918729305300672443976898719243014433836239240161299454230054446006330025597972142336683050478020825668103965541234717443797600829133532382687375290603753932394992986994011209554659070609872882461575235297563271733584187488270279175195252194498054369150252113888966624553792400094695209006243698889025240279627868978219026133067682840485242079215132483333429703721145308395977036832523335296324605515431471425241744292496760411166101537715696510552466072330209810098867837708795369046876044539814303599755201557130450513140725458689109503538120098167436572726564926162265568551082087376535306447825499128368447436898881509027391691907783160507690658036875315561961598774870465123704623746769446152355266713073027168867357683779248934118119196905991050846035580319996690842237723780690640170479657237294960591104254225469199090629377735096884650365349935310258988666782192062710464665248152396767948023799254017338734310760480726448444248870367097537964086426589685383458351820036068839188000742760964995254616995509732589873069251262228944198319522271428908909683481896016818451766707507690501227061628434845921651821223971836365922437550811672844725172999256402163176543231010754825478953777155427760762442921121454522060874634378002921909874174752130757837483022485583282968865536327989744801623106508187785534204583797841135062542819895469991072300352097936959060873703061943536246912085122455154886261088660943632092100596924910235821351500090081964887961833154435264979259073520608091584740491426268074446315846319588830759758256557697165570170838369489198292211035897525933048701060075178116081341058859502460325531270995059221820138421242279342017804070870423019166835408387902001400844629605196169832742691180029685375424189564126095527166141066772555154955740193724331183426570249450935316703108399234946239556812383338208252623624746977071247196077460899126075667429364061684456243268040928794926422777045811933589006138897221428131157044095349311750047863422494231430386252353289011220426585747738419843988081459104368011860035071958826112196254503053358651889925256925091231109711369552262594517409090149798742778082654840705308859450904083317188052768137078187307660107950162982471755727259112673252299155499776945805708507864490803808063644310276023971175182013779837887869263797625081983426043694537749315023596236132404431689797133636096824134386352486923850706957385826230745850508190815898378773897890676118162184351914467602971643106059084746405868198780631572231805764029223650942375965905136601840285859414421534395359807109152763641262404412692395309744796549849022037108542059190217585593525262654356272489807103271238393774684989913912317054525723479496605266941364176156257590645364547751523302238460126467635978651202780695111287453247553960536466673872194005362505964636624738717923256081004406530571158963638055509694131253879961620715783204725897458070326629840892181113856480926390627526322194845527676537520218264311664678074991277952876846734867608513667644650721579771678181437226007072164189954750522475932997617206050901023433990137710696881500939559696648309832799476805813225966137680042123127757406051073680205437554163938602892231608697862872418005280273711043219745810210080763706590086375881272177092037418772175971604284247164739339314580693935962377747425170957700953646263613344228916116155303292279161464464229382491935094464423043135153248727718353051799394522258534723436858452272157500672506317074112121474024660448914651327136564001213304859236893606462677942903718732440265161972519123336255193988710411565201582092760888499465845608716492719674289317936023336046652841863894658939372918867014267339392972638762598728044435792779856760452549874956033145888505636981930579272705015971086979975028065978358133037198287558020224319847476918488294046043336269899981021204763162771432629172500438534178473164209759719034495082043351649856967635683575031064690961912554642475532597568722123356951912392587117996480518604284450506087923110262462933864475693418989744683156612928129965843291469649550632127167772989085976405781356411711603086187539363817303029384805096225999985636322384170956307963176334490934297586895886690334895977691506124696221623396790759805952382190356607489033526217360685412637878281964898619307970688008657490249014705783393728349387167214374020022136257590150154029621754565808976917840809529863935974134821699726665792953492010855876789463027347651618543319902738365271207748468154938428065405506479002256183130108998827873370970672926840423731009207394213015864143570742916017701300998632120808555623519340826020601391016211450915620205721751566605381395880017394333051229611467429311217316826010152776298794582126679548776068790315570167296493991106952623053120290579504385858884029142099611348694744531562332103027875108124603859124649588188653858535469159926974694708265329714993157723408172357862419053190844922456270589972941458066550077027613456286917451339383446014721221560814504389167109508116853073368853871231169613871723938148915778504063086089497695596353940608919842086816494086634915590847143075295135129643584040142702808768088782950557389407368068208841910037871656940865633149385201420296913729486230455780270181585366101171428605137565823915215113414037675746645055151613450015354053487671665450424372953527913031465708715397533205280146234718761558807339409633648144146790713493644082997225321691242019391615591026060627495211151386258570032363702297713971563359851744748948262411056125910325003281973109038549812890046459167225208920326175624843537494673026214579218451967038449938682237014499355315059263991746620521263508091670514815735261255559358046409906935899988940386655581936584229060010097542998410242671823750355950420802360576759209261534549083466786778308522005562592442582781106171514148557851044378729691503960316069313824876966277560444194555488995987942423516016121619862867327133827014788289757811874385065670118362608757789444988792987092369313183089901695302715891840689865952248078919852285694590297969007143943062455002083619021589104356748160088720493435141769628522947258852464852043009138189764714912413488485367160261742454417535095949531032717664819310276851605199197612258434842815669867488203454906805000716237963013706807143876028547057300716505601735906591332878269139484313850769969281644601007353010209217654447483451663460389451797198354735488729622958627351892958475309767100876485102714661537310751722441199924053594127333579811933562286931655626997674303747052686489711030991460306154623650672491307121041578994712547856897807681646065030863863222981452664653527058777235168656099483164541761606966832401020567221449718239125060481732921278138649292729371887765921852281867342671800759248366729337721317007033605407375298758683420419179855032862384853086937855499717844973409925422504190843504455128202047554109117233152463601537831803095873532578706178474622571928564943142709024478223224634170710583523423210275814216526038470401566741589370389795710889097914465726410401919293361236941265373791466513880865951441212629512856243919133490121444242200657161966771480390627596311005783444757036308404399707675693363786249230428196825123191609484039579417150652987365634809365689654834994156384199412785019189058399073860131293185830806502048450739555823909113486014736881015252837250652496754099944810666519285864690721300684007476440608736392550434390389802411654091647912592723651533958410543592358035645258351714472075923061079509274384615691343185133679507892456363177112127028696974067718830376634083317389041572685828580239803089964102484345512483085462518942537228653590781169309674083838447843932688950675387932494219503104083442044090684874752015121241175050037558704961581385911336064515308053504716694464320635957504637046548545324136259185498043021097747810284750493364757231855707666754283134983436086329775950629371263023979383586298959838256198140499069528478716927224344486653933916090843657452662740537576403225122626999099369608675462149936092666267863839333021491151057975015800724892101238893490824852916670021477948197437528094324678441844859214279077993312847569358784325891934365987160289501935020750173786014279567972794378808557662184913699359991587711599004400410185073394161194369614917958725912563831888655729468739048358140423998870843349919408314764156017496020030801266248295952517566352064535129469865027048989337642219149038140372565648985187076073983785208977339553695707622869580005437304810463637718757958500044534885039927687069855024521192391799645199308305433513518681520962645093396477211803164807149375314467217920601177950370253489105638544996347971828372816696639131836118978568080302610789643103898101905786241356201757989944309071816462898539829732911215261151901431925876550456190754887932693448431605340297033999440411033837796227405213474828466863446459756203631713194957273199244158389212814833691024629606564123405221999588780752753492188236201973262595389708531578354327757010346107513164031900752358168169541226987442853163405520930039676455299227332863589283396041701937329149710649379276357680101581013507626695289179923036720375294127799658310245790533448046820287341628704364237744849406185218220945268566621842495615177755951273194255510193648137141297489233960329440332172142404597666056289539258366652998141154413685879369902753312522576347714404252737562332264673638621745876251837245831252811901740761778172588911445091579997744438740505002208238689355129856448890814861879011853071261593864960922611717321932373958760460714482755167573020610880035568139986797633843116808980107421241439894676653791638974848951208234576941118472542304683116622935134964068549484432710245838447463713860035914774326397187785080106390082537553241501754408562381112928917225493597751800217292623839351090352705273185021759178006979348539685842945013507306704548045200353558520420862567488281526594478222993232101351464755864747715307810720977928226260001334939617492076200307604821025964769105259030432183608653502254529561949817223140002331460067965760004843800613417574542734054832462728118024225913060368243835629873673226795991926567056727914503514999236508327818231084455852448819749089623120911626969354929726191318352871045483001882739990938174542837077431957072376774148755366900909590395933341181771831587064581592106429677040588571464879655493473369824942126462889830646694166383676369110415687123723132041876087687219577102798819425798845515825869176155973975007037266944233081356301454499742897872913326733784983562540146374602410791436204899499024743704654605058498539845054318511570929730956897770467446055327934110094985747604546814424845397731223253591401963659022972692661661009759731751339145513319247828566558592251322898716034420039777095626295274644485916434116556722755470166745624651880632208469494557274419925799428296563359365958072465844734138483998540761362279425325973829435898913262336668095586142048101483839767688846890202903754914009742703641433521200748339284860782629614434714300063304423902827558904390660103229473519671680129684846874426744158022413853594214815252539499133609269487798347514028280631782206095207544480351261301340932986592977487024076057829699721627372527315180061970493431479328404982054301045211537549563928001022356407317053272526706148920872922104083534007979774349410963971225755010177684509095597517391376869986468260973845586256434038218957984195940902638042517502185739911253055553974281161431044499265238804104351626847600811658390719242623836155606914867770781739493773892411344782382841120559819836252867192794269470353890186135423770889043471271280646372209501130962496692054196982460827050305508584947444896057284866112446945627264330283491753372584193680359299605269531194363040377047470509703138682990699642117279564162369536053964094993174948097579788142939009781127100487351061234144839082209735280847461405146437240710252562925573355298387359253234077976330096214388850169194711962917261731912783057251619661149988121886064469056637418426782320817264779580677048467328488037267033118624997721369950471210976736841516936080943959884130108400864485357951660129504288661801386003438671001052224777215601232056982041234854196620857903363374501841310963673615585370817350165209113933104396068974186804960818664247820848201342257089071408228214893480620135484901673297400282721106307928680269572545161014160122819639836125507392731012510784807405153950203627344161806210389610465953550981630911313623190766849238882795251953672591283297502043499018491215683235641615110627731817299928995900166459563181934299888403034706641250539828350238832510409727132245675619352251688112769277910218256500196832527313461733248277891554276926915609644068521444045558394362194072284114751089437243436634493658706423086444394316847818217309194387939566181061089510656813898189300935847080778923117937793745725595140305987017657419939547809057450266303044915472532727567538552268311671414695175997288221160290976350693697175068317299673644434424870404759199088701413500641380257857284345076716111991885896322684455304961764634553204558003869560537286258292590594493301585442519374424461867069838075840087291061543488522739625662551629765149306651969418971006032939947437307002921249539231766320631582916530747258903498122060656676868786239746569283047339569948864495686635908127088053104644714822664231088730251391239973354791953563785197785406937672985848600854121956632322387517844578974862293740495869699008626122310422648153149264417336491774457219697574747172914790671694639598400113365639316033491824530676698959944423359186911927454267982741417089693804306759688695716375852290869992677437388017445020417710614286232467689736749430777498704401297645570437538345328263486308797093861847513534923022562001447063822288034172929861945405574601784215027750729853481020748460696866114739464456121087233840855209131600784617163142142242958206058891300737512983419379395066726132111419013096414729319172585798029615725981376608860690870950256274282606502075078940223191549137288293705908003139271764478278073322577170400769989533905232732255762251135438525906088630597776780097452390084182199129761938647726664239697666866853361542170400522170255280578243061211794151484322016569072699955476353226361058556010991084186199208437152226716935457735293187330727740039461288979211531057495284988741214829809554202113611272590647270785982017332647436091705055975028445034600458675683723242856664760908028172610432111593723153587018369221458848024043228813087249914609037974970109082858502285912513974590849320507459988165716013899091365845577434422263702624381657683346239726139610694382657888627050268062299841550304589731872729814933215527405535743329956054296569481309496356924406017206524870897115836058107075007171486740575609064636437305900089259846559315320578555778177437710842870391476499043632379267283136395208297289747266920787002676821090472585985483802524286955748045070371281752757351740037576343998094955401210604616349365061020964048131854594058253267622887981293987936738850195602822436979565818589501506340110945969525642078747549172191149173553310596875413654214255942179203885700799449056588072255680604450871754470859353000957130577589036429856356388247583143221127804244472749896768803959605863446843498542934103622637644371236725892947297707576503401211588537559693946503995749933654696412291771782515661238115234759060108153299920028225986455610974269468732678448035001816207092568440725294505984646448238252228094733275729729680352082627953885737198292320179481772663875515576215193078815010334901959743883508748285221489925819494782463004222640165719568961643832262460437063181109129747305167149859671967830650452299171480302287875911894073892086212406701547010858434850284175499427670866338797676443728688807453023307845609767307522879894046811959139050458385509647458008478449227521198244235246034851865536516956838595115976427692819090360178417044025001092090334523402643310511998115354299160695197439852136493480923975799463153436972597234453778983709472640385908261353749053867761946815300855080925913679799014808227164038757760631534514106661441141555105474698220049769988500291860683855685201878361236806468843505710404353733455327474401170355711652130882640958472751790984510508695682429285945052596122946208411213855992570106873745006401105057084037343619335729296071762404022112634979510297199322047533945718294602284415434421030922238546910700978235202998383361580856416081049759216419683150050935898477731021800911280141512855946452902633987055703366632138691956100101336696063918826105853820646902283181880289542904967120992420063974802378157429432185303942517539991068164431437075693129864827386335738579501911718999745047619991422305533434236621466316676893378455118925105040202037747822124706179498253995262432731899046422184378112558185846882513897581640096816673053250854778203325741338088442856424550495666135390974896574248221057609383288724434577922316672963521648016417502676907254440985536994584147447513328248374140327427416607096446323353720312392215191878187998623290478475287221390905319990681274837044833315353939083915137493657731555109167444417107554602851859142244330806607540586808526401281660217042952528691096024787302482536586895596294740448854229554118930471608072044929943445317431929569602543760442562046066020501525141621450610338642855614925853399215818931504220227016645243569555144668382689823010047331681447656019056747425642608685043534185733016233331810103914670453357154875832024479654845265873734905187444075994072218877526362837940535354616734370527081667644889767325302007460760275029509528616646265269554059954943456508130533693756367270936368002501157482737570277397106895131758657074400433450548678121941062502607194697610996146157318460847029321062016610163726766598894192152463602252485766975814647343950234794576860548413895915460307893418863374202295141605042897281089105857226968101781293681873757691949154114391727583970624706904712042426432532627308791822515492027340706456280118896943033287019734782482301356798041374787239145968960109734159855436723809423267480226323684111237697220102653012998124683541797098000792119681826370015749964491212563877071128942263146620988774489831021627097955462968516247971881727072198787840495303259877879987199605491969200914868634965108001396847940189721722319472029920512925167677577781595856651728658181014096503386903729062633847743894685911307248792236916246138470574877057899936606057602725915885591732793779951688595632084002889310177315695970593007140800394205566039965657477922753154600667112510852850925896660844670305757200369374804546386528204253415203077957560002428769191228341772217732734189790572981609868629248718966246782614154059986970085957100975841876841382254537265111896666078481753436188362338432799412370861864717748978102969647279432625249854070258113971203151189094558198464583973098731230344153648269270870289811457380427491900741121067270362865990068176057925357749336003593414249008218840366070262926032751864434407968008133074175701459524590235631690945282688465463312896359530788076610319071480059220627319635829298812125167118848164806494180978508307553765709515189405004271318814957200769918069635204734493268649131374585826861875756697683693965085157452128323598023904260206946992044856026371058763660468445667994274652436696380309658200738941737867176267913459561365712305536465074659059724085869556181237964566317113018687851115304215519216462030971233718064705449510009670419468743641535025619501495353028011564814348416675224252957172758689133494538950674962900027469045676652924792822028361896152580791436804471509310093911677107520133125603058829991564004093946809342611037234378532471078946615540229631309264268489962189880758059979161103266706607621197000006384565009478596324959971306740745656616853371064334491183173983376546185150072551685831163320413619089824716094766742399867157222709476769749618345911361200327557384716599253991563801222021604874956619131304089243937234394495410645862336639542547720334278207763287575697995179164144177792226005840571562051646209255608685710401087890646135874548869348338260285924230418417143828641126701721872206349225729963456968613753203659627334919060800323655492593608999458447600838802194201200662631304800780506590666396884701965062412646532592921399027733835439210168918410987021599436461722050609693109463346449997005983590885280043072301666374117901685871586895999618810326049395632119587070408405971685074746952444527087008386988804250451957521573288359182257691782844551441050575106070104277142441691731583112949687732474742109239981124774958685415580622784447366095433644481992806221894749260123608636667594446513532973921876418849154425415359472514273963243343495719338886800528660669304751850895631634105599541071143969821348005262583874925502017070601687302177912068609398641536383336565868303774413268589685597721106728584570229923463231180344527348650089029525664805725325335363596557094254288687821584950035974224109137281097572284413310385354774661326852312311194260356967134640631535949231666005443313751448741959585522677364829417761693152544102170824968187202122370361065998271928882240966037215487311031588483643438994023713824616368261120616404203413205161235466371530463846862861496370058497826552904453331523055746905901217348731605631471679124948911737197792475371113533246592347952251422401654128039816058082558366572415616414168653960818203309570895409810588104775186251199552121710753773499456881559094644683985632343836979666446929688703859580785961350492181913635122091870602038406424737981001233769265060967177812418747147718613337825773475207560851068463439361297680617707953465828138010843412103965456540793778089175349376224204275839528789933885849015783315448893538347588419307751912870029937795665568455524072317665866450108912028466476278337117429888527087522799554978806447569360334701362112181912051054793284662087923803286253264151738749485338094415324267819421408406058721918454086379940312862104664124660344531317397328919609699132861026773784541367313629581919155251063304688739344834492062848110025555807036039096558194791980744752735407089680292741986140490505277979695343056977158718786945250454304375660005064210243130081301638690794183353433035144921939226773941388326934208976639476398438305131850989446900684280449559139566509715706836413268189600048714076764424351902742993985116766298400995980404107152610517908953568532456233024217410274762989579035107868315229146195806865159948343891966600153175766411602785209387456863904955429685592838894942678359725351696733550203600697121760678978026971716889307728364035423658968358533044732577497493161077110543405742177952368042585089084630982098256308396159932891638760809655258371168612836469954820229016663052022602698261855422482721412540915439310650715673038217495852884866350822110845367138122663622695299151207338991633957965994428214828382381730935212963549367582725008274027474289395240033857818152941708257795708587568539211117621485063827520748601868664874512930139065980387546433935282726574558118692047208582135703920373650145451940898107871671174934646070563238949610110705402810310338708386847465686205401228175422960033329989699175338144116227335372866987660443940780061503907320331070635530756733247880168721485459382718663253622677338288919181592626599163986109026849921370704253552697601114199616950440166183561470206697516615662218645380978165545328032102471969288512815406491297090829112387448817435767828015606236358060617438513152188475325159493517362146739627766739937960636326012324893163467368258620536979110936687742861697657138962522346753848221305126284590734446557745786104893221791048817543833373553529530293408317810721904321333964642194978675529995036479483606396914400627233887490890937750727855633786191015326476180237846085000765609125401828033110181033306171494584244349406572260898980273482284730706944289017831095660499476762563646440546799894891818818403019998640380314540739496820094176330391526349962294938503729816435726477526192760557363146176590015376728697274106658834523194742150752656325317730638780681986167108708767048601111260236679494745147361423351159542621538327567330438480006342214731790641166796208806463029657100968899965100198215579653674877907563048391652035624140010671469644239076190349476573493005134476391181291607557125047548045558580883445573908060475750841610362415635288304874239120004784578425136920793994736045100349561047846028603059290680530180626720483004335752861813652005536988834475761172759816210238238096346817878583760674390974330684434084229550395896413218148193948756653732822804652092340581672947997694721013293486008285259508663264300707949113149075253511893956032340255959178302359284416400835349822816728467655831436897568556867849836100175776986211963581800435538115585710979482202569046894155284503467406175571021106028571222070652354332806363393509945962780359162328002834894295235537478418459204121364888425169786885433597862345294866309608606567601328306543707077069988858377102811859116841147413430176340746832503243170169486496207103037988287734379395998738608843085626324716647273220163547347513848811778240379244337817963620071551710443101156358187262809728471853997349668662087682001098447363280114887611805300553360410021081043966793775369397881774679991181623164289625307059364697801025532800720900659273653655308868241727180523942022598516673940441459213914448321902599965729376588120433987414671147784054789321722321440691164302009736885268980070402518926799059998699085119333885117861349247636547735568263692804538700314437316308792763352126090538653988407390080468821296956878062122261310995114737186274848567242654690627681182899219340001853362708867898922993427392295902761004246392383732560696779545763621837935632187038945642543757508277926582086513503400133811621706798886909474200784304058813400849302284473370736526069394309915731143644851469221284565936027910183269787103767138086887620468019485578954027180478974823018693382981655587178209243153851246492639189815400225504196082424143833030925362617424496025686923652135273577962562208648307587521037557577567724575877958907573731386245487545741105361033493867093312574402637059967412625038247510760591478537084244820298780166273428630439969849170984405595712057042340738093090728812467751776198714832496129698258524639624144822777211999291093322751881289873075224967600320732270045524227188918849617048399648010890722092616954664906443887083276099535965563069035638325422756253287803501929001440555066865884539022181495789941163412745355345378033361003275131777002891274464626280965192551926522359248103444343119868197156972858846642842754295124163062188193014656886144901955785275021424711015006609409502565398235279075248483996222696045483523251969697351494892865938164627830380302202651088080565712502491059419065710626835183576966521788853564015273101296864343676847313123838611325870972358692747627833125640824354218740134023750210474162561104559746904972913547853498239564293804592277177807855784499322016457916073107591666548079615882423790582203051536156665026493222545162609358760109114334633091989979281818574116860710210127020768847681272650486602367090052101999107130556697673921881796499993071883383176648040256270132136557203151303357960355240901373116813116684506464187588202184114872649366302681621992992274199985064379350416825230381651929925903608202623260741553765465214929948572732949625991109164475018809585019348761595823203836862814053152708105909059464808503812172899840492511576527846637023750078028059785269539731250751217682091875861013259925566975286960695305494114722848174261675658838191474075753014877416952062302034282389099711209557767970421348062120248250461777141378423775947323159267963200415018327812584309718644882319525601781628730635765954734091744170530493255604484628539177909112114676450772289453680693848808625759052454648125499668976644369317195093057080510264859616547096164326194892218271596808407399061424966147056967352269163339440361213813392482140234575570837543172283875864377096453305639040998190975768457932560499314524249059577968516615152388074019018821356014214872795359342805030783976636182161214132406523597686172202407865847100871187892377293164896962421189043914838019124174089196249105264463354820259829131111973247326953501252243231076360330481622032254460593572848615886788330131026100148707819243112734610565924307386659648465005022107433859037419352441951523831147321983068044028292717072596304934912745047796177735538349802408012287033362940338127317933895047346280835008680024540336949970271283762306515852973550618675239612765850996551318651667235044358099393143996163873990970839216133305822763171347908613278304331176251018302410718130139004361689677772551154642279954873432888953875327418753053963985953128169830355120322348966011774735261353416507603473863864471090938120111741163087583008301015564527749047723730558116396976921093715550786586444588603087450784940881685433002246403897547472952464960186984952484607494932062025177189925659479015773950605714108753929980881745981132014458420637960782711582122677398209594921449115909716879475973650946372857027004157836120273090776638721261591824126462924416261765527814272791297801474091121162118502172191206377425842548749948673031611241527062334333146983280929560940822233393500649955220826281026167789664764429465269845495698476082836891890587075420774987240776019502043082260989335765397346325134630345002611966802140645946980504305806361993994343684482366662939834017993551115058865416028449089779512852822261298315212388979035786698353336068348183861961930609634777469605570361359882973613368157531701869967732535713485832636351167953070296493947711438436414978056794349283105870884575365449314583357689835489676091346125140595981418635741963276386171574791245362048926736078360631882251596562961383861296756185501181601283645209615512650689582923558136764790564660768559908604452976145468742535927462925190804796759328609219273092797133191828477939732071495827577227259646661898761101953928113661795725861528764300870536136539647431353434894200812024048767279249177204828902241029302703705946570408702120227041839685231643184171446948027037190828867608894469457402749083786432275744866478518280409616467047858847379522580732514523350432110915785510625173620874634202134326716624675923836622371840636147903283732790452131568534217504296865439136703188838016030535985841451330496676008638211616657979444582628707294527808150395619857858273096813306485703152605736068993470548815626997490826518191577824167835736731321081689517571894451006878533923215647985561396141080950053137544002572157154745436540191835749185148201684970588701501285507241877943962250515798639230495578137271759112121071295358114778091667827627005543056526310361771217912525212159738762085205927640031066044845860818348833313627123001978542369687806817774010414040895434986369911868954108726046519662407772480828865195729450368579074984767894974435107982141913409782180338538110508009044402031661899842414314148366537642037567192030261505886666955248132908105062184150723060036111302309708937492793801145501370390338497282855245214974332037986948943174979991814815789815641104021316876024965785580234957352602131227194342754006733873433601071148635337142092477393777595889455619551926071552112008329125820622803019377464969072375034167164585508106416749770892432699968870197098215619808220711361928072438442315211491764252239510728811639811158713614454694902437424751094587716725961649507857141412880396962320879553633655252166617276980580100843790934749837890490474736652511960778646391482186916845351305462303264563954042405879828096561790283011889824741784749512911415737434591780467100845034616064721114736568016668526012572984280291436581380795912159480279360969868000334290484002351314529994622549588954294816246780869955471439524651973907963641781605175618839998917504897545263047724124650508559746844037698944853783640238774525107372181529325861358687847432138043543961219824699508235646911205920924768502690340366443558479859135062130749500404638105760371017172731131685069106795557111114805244910312226057144805574930996437508395935569268381917608334768943862956915042991627312064519929525862990526769834845367581922128298532664366760231832651557023627206558453631452990293546193005695422712146270830640671745356443811100402550128272944630052259833236720958449349459788388172381778324694745048084042586256371737299738677830307194476688871127303574414298217242628643245758026707858930329803299142279352922449899384510587702198533574971981759578737544727204615749124387018195699759515504920107600227481149374683285462658274646779784500275001052213634492181072161544381129865598967456089337004904399032642365608063452822856874405443543969922185900909828196424313437372936204723077076120179555925925011271368718812767706695920309611046200614985172061823132925144485597914719416127545778599345986306911831272463102207886729524441555255974876717357390925662282271000866410388183193089461092002738234603013620015858583426287430717507545614281251126877855477585181971056880716240530430116853188293980794778897288283460244033282120618182966408889256279317465118022189250957221928895993959910410429874673033492431039453246438977873241764390897804587156594897553913870515812826007900448283468757850236647790290019930243773851393307588562926693883210766191820778131970679851262808579149911567473125365694074959391635824805140989581469916613762471069043185401862564751469493186003629441732920002704990610637619903155905818318707339743117312545899898237701487073003576532027354167263861688894977388831273536156388116846679295304726612773195066558636746176194516777318372603543039227024930787532915427109731916877015722393015682228072738413287711467148745151681519844416997819462226152173657242736715463483919406764648136326462621527329471711453430821543988314073034001947875809500923180405225311575874121909811067129217968440803809653327899687276231870059145500442797272056028792009038530231278810363833909726261304154563052228913007509808656094959516709609491676779612689109436481642365861119238505874477714902689176263643691241575105754501809192890235699140681814932503997819471402473471071759948470525312910477997503111392302577185716604021102624986689797869789921344792497972885352274941244562353663861707203030137825839119277024690441594400948027838683395025208386508823054480243760500641188199100362851121921442643596129292132754963667502823993178068092228911466514162788619700264004911317581768537726715704773750330382979438609381486031667271648310176990930380702827030658920154166514248339986634901847516305823759322750155327668381872804671796092893512920090338751273461368184637480207747266446263988810945894663880068693421648138711726626454454414708978453136225949650072090744571695277111337682313249058292067209177155200876044378435776642795021587145175177152463365234128207080275891714608551854113705697645376338656166828879169225353142478197111604893902267789394199587954953439706947072935474638013528143092527208380386886334913963008362326794457436016644786234758002604500280764359203570899783985529601422432466762784344091843738411744809286315551879532662538443864934421323810423434287084410350811694621149026604830384302384197991134549803257525041233204711894595290408697721414144843901841250965225923203572520133236396589572412120564236973991398089422520768590671279924539842700183489671528045278610208142990576396852408601480142642163735741036595158940723855041100011959258049688880476339518530835947980947832352170464883101286173110723798218344365973917711175149586094971887004947628062244446873258288253558953419068769683059953496299809376217053133910601285748139736407080680281269329726188938038574420464468228936900167206582994117766594610599242420751696266480266756481440925732231262122205270564554200381438104486002901502132113657321339099219010125912488632836751519331291123936664611704916630717242525203289140195519056932689675874689464058927090903975767361741562329161720811956296150464842602602916640859894123796628936997284372210401827995976833146417845114845776095316121785773115875247240111551663962569544771954271298026024234664732052830215836094842787910705065238784230850058899043671993747807452920795994068561623715262245452353925365980276106205933452966785706861064225263593062741089287126589274068759214318657176488331505086026879970550459148960781480763859059226714588269874467617251889415006815009529447769406453192509727254116730974972375432428428447387192457977172626917110900464420926075445068949832835018747637152365157372626363727705519901508412101347841788596943936400899672057019149327452309672419357727369174341641662274081763758039419665777591233255970108131930792803305504110607962633087078054625518218499703364643782966750139658029646746607488613920260794196049002245347615404473692888856937403494526978665906123451505720547012179130435416351073621410348828621522150184439735640565169716883954793822330967598247798730202278686265194135920318417471184248431159357716847371222718173193193424366677760451415367895338964450232481784552014569339025946383667051607076141255344825588167804300602562437415126414987848352463815875378645343894626841588565042280398423439837053825339489269381185059658983734244433199567342321622772001776035003340302631890554204470748179855834689204973878329458419563641069663237154863851277286321254911040021719510859500071855119123215089879263763325209427747192788297330709705691985481282620501275717505928597543919847805012636437460744250652033900900612353782904937008782021448737752095243454214093076735044058461290429113267194789919951764586894104383272607121347662099164347185968920212852841664650558837879174761741354701470445145904545278114562846108050790926518339175319264601982421370185783769105174908907049936091234799008249023875477052453813766636150857981896247254154631787627143551981284133926233107920651509110567857643779715421827509276111920889844225315507489468141727084705854261772041260073813903396754525567678048718719253879186764295679150537401902744125440736979903941714472697917046573429124595502108138144442550109670731565885777089091719122425046453092318919431262361318143680654293583678931637214698475412971847411983444674920725176308990809476230432800197002514760154036217979385986379419587132715098059994178804221760524634533699196495260505353258724750361669777544654821511714233771610446330883087489806821396631559055323731189988911962090463119846562890305516796393181162008957983058817404352232538172161282960554729873462978039472403566682308563415877094037884163356155863270019214460286196536290250854381597613991572336677895192015991211824009708383125634533447930539284492793210721896321019731098691232816441809037831752312213472343797248203254553392309734279695506789680590333251377968437857648964880237217659946071293751467379797908973447091154872550874834990511981145613667325843009584092892334537448505134666304978779796179515089892705240298215276533676792728839537546949006135609003271008550081204075556404307459146891694292054950688353400140353623165199538155372125873446440046948520423962807989717490714476092700634535233177659610886467262556081216049687775527148173039123949417825741034366860497009954621793695973769690276295916524547250762276677625054391718191612650480389365840108379137464522056568130641791504196868704008237243771898512404568786496817505043762978445960614893574280855057274389720065341742195485363855662094126253708382591844461805922283916061614234995301061288453090435491207732851940818222468786690698963134236385417259561515007781511542808269743913696831628356523387525369606891837376873075530952697106765487969197121623191854043260180637738785101176160624682929673136625742275365371395828704978031518124513445360628558718087682896182635198473450354731156568840091390777082360110650483644501554936989387889387114131726021200806675095155296868896849464413675963954901612409027038024738037878003253125706086029615190477364754406543307939533789369322516844574404273994343912736429767192927704392350598917532753806928918172262756481279952280037999461140337771190805223515787954590161707227545295302842901741249428381396991488577819131596586564874328842007807832538259043210923760662041376835512018200975924987787385381133551333349914487546734198925774592730693359141250892132722394755294689722488553880371145930517824321370769828199642874368433583433073153708972016929196364108053566728424886098170950606447607384085675963987786902560692087037583419542715734238135458887991392758662249247666710050237778301349438760137541775579748677993978034833990298583049934199522128936150184081912117070817087366212664486688468592539459635158926417391035770110523426823057081981961298958095342427801982529289733807455097340052444497142858662781004136522841270203454020392045897068809530111484135636291940254919965758253937153372460367453584460193544321518303672775256767776559370663123251821418722022126815985443527025080110294905887225325793265369147524582638419697880607882189609157549908667251742319275934590070470995065814924799550621646321926647597699480425774068965558535632405460488534354916739646205630995143399925690007328778634711427256482859906986234932823579772505109877847452333328613993124472028438354238116366607415137842228416206068371065828942799723313064300936627078411149596751570639477946960320232865975412615015583344040677604099497255460933080117699982749502805424417344515077962197708786799170203982134534855317661538663826986640808486996775931706554251971075751729447125081806231855403282842316170087905558116218435517438466148786127835745811291493967478787368844230100883189909953410913718989118528118684347148045669102280549485481453780717901226356430912623336180645171658836472843746041600599295133955806606336025972000096039245600251696931129656968008976445730148890334627765703267422426780421607107435021858042065189477558596705329476536564200433791534863856252934897356174106098122334531415699068525091886087907358759558935818953120969267875614679184356402717790241053164050971160869262910928678957761833532216737286948007084943095651234785532430410366929973943656953077640325302406658680904690371224078097975494501203748037643666853338028080065949724881768884552549177930563615442582779021638629397608986318975760019214124774346965900453464988574243330936736794037595393871701708897213898807374555260318692487761723829778289363686160760123491247095193716248322090560716848973634808309744848548114746443689048261441243969248296502323411617890266533560430447869273834730440451554910695489401090654241868758312094856062090617975171153379516369392521346222617462654713341777315702968476201423544573355643416213123503644261509527726024062705303623320283432748523049915123782796724131614153756169866348134741495314840884714718990298021672932403401534222308087158302780873575433412262444570505398914570496021782669576665298782598307635157741136082062209340684928375866671506704385661098786428159174701087559331898928032584798142494394651565453785672271815186571903737524484245847165040188864693853860494363633544832797871437650960182019803082772642337499094088763446672176200380970494185811716327177705516108602410794854091160913213546135826335639906135206454387894842977219782803036696368253249157398335988136488437530102434283083946490379343408141939661337389124640576855556053276973880878610675166075227536254829147305315343763514382467140183803047907773663915627927797305698619228689534266337313024252569628295618961912087940720186150597423775766417846739497797990169947202729584408923841823971741812043020655374602953194855846050518609434205178236475343550469806730047985113288675241333764183708882860807610939871811630139662375233016557711820902171039520924585747722016296565548294766060475825581838425678316880941359094647524470864062285924581630799485947440300584987556290291154032570924450959519822536817703591390282451496142685198247789186861380327809295252759137969719391336971633495731123313959451217777124518316110814764376567314815170962602198355250104468761336112102817831621711902106603505348054992306523418779930141559203618565134022374885986491224690073386834337486036705311789179360859168554289294902192632987889269829052026952192877867258718184025102534945627114213136527658274477259723913516214856403081695576978871290118841142707967501209475545391767145044032926778983332756698649858216475193791400406898054957774230517383821534807963696048076799763546391552949133961061897826435906138971237091268319774738029996985525246601654336162742110084388831760071038229552625019794053548227554632705133306856529075618403782924179158325411874138238685436617369781001819056514025861530589025253612641930003032162105924041556465817912255172532662307104181709420638869098286167189414197942684004857582751619430745501481047237961964039610499935037114981384681277159688486524749715715252127474294691555858011277020070832845939445622033257660905512507912201850108518951161784224677290685591169021487631388417840297725552206686017898099477390689466865006231344894365966508451206593169754499253256922554227039964604806333405277578283858083572263904490149304280449871951625230297741644398545084616211324118862078381128152485535001933875447051782411629042810645596139723771460213951776761112422783634383475765024446399788436955346761001833573629338123008947791888995685874779042541739837693823437218054587024304715201764326831017715401809497707301285477223205436642502538562567421467570792131988540663566763137493947661617067577195992395146802649850073905243791122229492789981325842367925085756985447250869136411691267946573399470086652034538723265240374659991473401343648577339387900165177692419273056320290273767532964284637049457498051674993768535673068507126666739618444290208884561528416576957879691084459838672266529800354475849554629436151304526552725166883083637572401674358072976918747209514230982261996150804995662720833268135422621522121379419762306068641854611545492079343188854020628415675047035292946473035153915816702952980293427984573874277133732450476837522385192205925512890215680144768551842757534415873013247664498472977932085587756162302171323494576853907938493494258849456503043234035990378626625512952144620346781393058870947866602947347040510749195438866539924705934086605431661366327803635988128474645482169040758211166785819369874926005421267715651237837508467784944985810935724139178182680109900132254829881268562539269869482054363435385424030514285469860801882072563283127679156521076469969407125078282678759894409188202180371746055067196952712497744711944741161126879395080293138925187656334570205220073944619701070708005508199100264767872079989949207873503174971340609446979568757607380062236978227331094377347188064295406623939989288571627497509395931468553995940190348076347330078013840975511023667917495035282431340105282354842919241187790691009205036670578676471485008621102010942822213287744215544436541266336229166600599828880059064398993695205250226984015246660621371533206657746602733688840090628026988831340357965058246708810736662540706119278439928398811238065670140879086931269120352423736471500213786942265661897534843514321492749262012976646072318658491763488697066082113802873106259277727851869498085393144229297304729184268390765590343338100732161840133012131205337155065661941792134428661139462654478176395369501102090551514665289028531815792619756079667592650643061522432700231399163069930137110264915147838147963631760719413237430956957234671061875533668427573782934963592568328873462655954092968653791385482261137174309294024101482409078258022295455532107950804769420916287939824048423707939840976270571768298695331967054857257498467985881435527837478238180010193102292575569169509898414834681391466318423523746723029676834633937635612750792863476597786128414424878759333851668038371670429004076672723807403064619089435030333250013528892767733610842501432616590550588725632341534791059017620725899533662032370587626246141694113981685337020328771459504144838628054356010409921921112202940303724258850931675276995253834126649678558168223316914692894268735536402208938540603716791873439615516269696495169280680043710656444738106531526037536821142795759897512572443392311503542888800645059169492178979223347834157518004345551178823548085869010054315859341842668500109720455333618534000216369458741051027855278585944577254034299109729399208832910436632588097385028598879306552507381485643230219565999862344175741916660158360254877074003761317915312358884731718198250084080647159587725221734581874069543584592289311041118511452476753322433939958577876636148630194095377577122309929579026141515383355350972017786160258473697281885483486310470970005864054238991982603243523989147045816984071431350128178000839128386194997578964291267474538855833135707563903666852302356529891233567828847025644257016952047479651500352050992235798139884569318155333865745129893947368287717746924871783016348138351289947169663860531635881707112970652346190444712442035469448825187526528965333375641079993471927261849613976119329225583543478923497465708716062636580193109210910357064286608334073834190004907189153731035149140525333012384366969419223478833400625105891045037632433066383384089645042230350276468751734805215445271695582237751224521993398165782362053577179472455028852924114600623775927590302620931944389338910179957762860444432945645595001249852396106832666547677575172449452651390153609933612443208765414676341322842535830788004752687611837142449470547682527948735314309788065239389091704139111212335045019502661107784365986957131826198675285515614568270011589385507034275978722731435053315163329062069404028211366830080369719627268842189907145475047359759548814629941551823597266381615699695644264120353016164804585882311849816506952749688941203822776066128494332533011252468730078549443373334893305242880824846351842663724775870673038970995463477539264840451522049764351887871060131214651001390147226202945452561549027226738765352385728634028406017341135138164753894796080224083832050766823227117763820103052962391312058462256060777115509348821780110275827628107537995141261919006972376161092194332477530767473890152143630018694833585781401099160309788033793676793038090893354107119486490246128626319134805211309828360792187503716736572959408686960416581771241066283052011378289375791152552108253177452517229295885875392656907717649984270364997368442745619092427484564036888376681599677344659919476383394103881129657995764792261603969641834189569399793272946068987772897975756283990644448640503081862237066216291920783160565932203946294935606157348831432098942905935004693123905282557575289705573390597771012081465438068501819272380883267123660212472470290664166916087491247750212756627052165310323339533311327505828246817000175757509999621800001497937785294653566190452817968512084207000646683901432977429386768294573799725533206604171447446816843184843313005708114960780820687231326681680396853528982175182680919463499243670355731478803832584443675780244257867473987979572079294416879401909731956172848929924974092369470137102363009250356835880916381129260680079324022357974329822657158904659435012546984875836201099283258501714981913113849880192128071773878695442422934389582047954903959475542114038033535295690132220988925072739590956193749399107235677884578972861603610849007317869312513951830059425230575224235605249118418118457161655857566606075653413690232524056321324842007366856034241574765465907964312338058028803472658406370607310952694645012596498084615488389337766491777662875690295772541530643106473660042388509134208548149866663695787621693069147082015632927737009008097775548561623213228790323075480292475470198278278737384829877144601526158184556073617362973613051770629686062822968002563220384590971939043256237899983620065280033697153092583162983204950679123682409273826774568785073016105233656871938449989202920717352512356190484277927902788913210452702766864879346803527732702824063316548619828553060712523865485287590106429162811721897208413155884886490495895236430841815649536066902406558102288607743288610790321845667580706288374016856132680518072408509730151435130392328124328559707800219909237577266672010742260855446424494097210009680178378556790829627250142654642660690993984027770300979728338179719132376340843001978056364477260783329878537941997093085532913615889121727658678187113643136730784739107409080972532317268098353307464741442850105464482026289523513658032385534781326006884162588926200002529536876137419896801868270274484262805501052295831683985773221558566770301198470297009602932149849883662404286622338357477356216002342386178076707556201355294919822071828648424849518319164872214124504650556163947929462117633044872004793219918990988193695354110198247553371637934971810870050250399273543817669219513137381427828921505697984719780817777763266992142238446958634842011316375374871322901191486174949866880370773137148364941236145159191279399622955454876243578572358505823230745425702224040894015538040419630445355601032017213708684907182422888914780803604658378647097154939178745777316412634325595939903010400381036526208376317470072653879595389321464259184911807375582617678173530743134687483494644757592462573088945873301521966326787416729330642418197670197319861102749480373730662166256313452811765226812685962430285298374777242812356660326396861320376442804837289831361385520459504973471984531354861115757807734244084147689559714004112383318202757827811779214998608673061548889024151829749042623833841129471410649020990312754640909258492856528788457775889659970262847441918363071399749818859061901955868167612290460856674975476914025306888887361474348580811945178405834838614485957501301136135710741444587489513311778610879669413211728875774053315794791897763959529864239495392354492768180798589139671347143520910043243648816936097823717616643058705454463979802234825385484360267410765640049098864051758825255056813924397065206662755176948359252776810890835296319908999641873575139624768530892487461720365685986543283968542917932363975680160288374227443011393599222786166478529516776382610262167899201300810165715416930080742352829086911789591941534323831235940575711287011854693497524313806315599421368793455168281781135034808774621998673721750130134021805950663676380942367667488382265940486873940298531999720909544438109595713358737817199039501649533874648714595972697071206804477446455315207826162543747059381465946368572682145907745796399301867134807553235567975506697938891632145091594907659882607777823571005534847543896017590157039432294326759774171036613268003353032387357044755942853684141609354792406828880781946840621155323747165825231902142509615497320698746982751968295534478768401095320254806070552286875840375387179093784430300048580109353601728285774455491989470014179327341999406193436574661148598588707479964914838487716715998586227182378455427095970976860096371759862131610966804844605409989662986496356395588036129244865967361779545257501815099720813654265327799179713315467293536721921676007522973089741057178983206832776069477914870798342844077575387734433377704602830073191552788803775985637307418049832137584876812362200714259887591678334096785746756014667652894449424385543503062289199308474604401023536822289390306477248074787848781656505876051907358477342790227831740090579605396896188308222836712980651923977619063785391147998595768005119731711042690972492550220431797923411040069748106971124138279509801809230823850557054867950654057460113104151221063888198986526465563280301145571139916583037045087218322718842035821388025442659987559980454858238464026356081969956659657492555346533076506786496185882549283597771521925538296359236355091309081634862721811411644029752132178532578721540444558918342273580835260432753787566913143250611249788282920901604471521045695220754170671773868426713102776172242867708020349768009204807950679431607141533455039149878659622372408076346142621196237427306714305109121468946279772130278015481141120380374751409528440716922220302000222894084981752231010881291934351272671152624196887886611954561096553942825016330298577130416532312582901022532204609847792417363050320423086834268358628150615473484748569510916657231816354594562909891499383979697099049872362650110203381516724178274164700062373480874559878294034570226093989127066692618630938415862484453226324101549995600296759997792417716389068729442003216293187447897767965638177507828158282991567218323414317675741941892991744476473351893875699618412272674253629695913565026736600843760366722907279249465966287416554079327847684841286407722356795954350863469383860645088255683674069171275820049179546019123275625001265459236216213281162885225356307472670278867941349128309538456809822484873964815198249073443221370492860963918523964063891413597858491775316864371237440236504605443908087264658137179135877260028785141889938743424447910139204535825980466419176969598987296373430937782307957636283216696030016014605116764065632470571522290698735654517867297743575060104292269078767394006018317734735937222839256067188835716091899247991682363935046898639709698981789928261295904018538092027562406405449895485960476086636359381357234333711660773698407973601057278109408897980162106798840301416020858643101042425813860370508554522407579718376357327923276211380925263381467043559126654263464624992926105733987826177190505332160893252766371599174610160171704697209613420776480229047616765010764833727968668080193683039169247938918501101266280472368851365637186585028758153851614222424331962092159047049730115917743221089001292008566532322271038953022283585889221615164274495417327697082670602163359319643353749120994899259458687462454409294029307581931654345824510911791416680611788364715788383601435186409963401139670056690903444804520182968359486241491345293675132057417962748208488623887148933434201376500072317588686962347203543564069908332367818819721210701361687121635076614200987604187489100324515321254237824320464944637774274977527887392900268932494923123021804873049438188767639658210116716897057888540256699685679886970925889570339990149813217707212889475681286044824265664321835293268032130119699222002235318155623275710721932098091666450514994417834944993647738161707168066861793507752457143472535242303082703599211402679937321653045554419376264818554326729512824531851201009139001334150182245553089884450317559168969527809716634993828850907953364729306646229673245054274862478861999418749956527569817705530529320415925338833143296119119245771859657442073754883581138546038844963550065066850478879626451958404145329752244637405876173804359690875658178975259851251175152386984795572442525941623566592609410896288869691825893082948802944708223992222222978057676622913690182299380949611989363838869329342552606475876924248290567157404499037705712104737844607608878488457781218933592736581791123427406123769944133673295325328522612862058014702338528518385325519142526052327968657249517228066261391632590861911861118583410896514862484721478982223432623966029458970598858917378992990148954281537408272749841187429502536791829739539622664423262762049340188844939929522949024327079133030351495945450283892454089975328217259705841840729019148250628004180793201193409666581883252173139597699659332322020106998552408930479418506618606849497398425847353266401726311935808112833006881605816562600922574480517762640287424225926482063392627317512690858822822533784723530396667993159978442713769861878452375415916889266753500652571231104408678411342655340457730780305203466723032769837263791021744197525657481898920301128208027706428700687643902446549822405068798817217708295387476721369514830243043486853237959975704588437161792478406244168439862668828644443682899384690660856889331856033574385186412893699869359146779482177456599634843311305652513242271680351247475666405097060339500915558950515500558876830044418096670023165959097406795141853525966797472420751750142762734743383638055788681888207778703053516296409385287330267888775827435919272857139579723917938850121589704077702551606434827648925403016363083688271098613208788021214879303408528436516427585810817347059102765473149353984571041871825696093714203320201624214933026314578499533398247006735100712741551295913204215017011041784425166252377587487498211289844730181336651767080183471377074529369987931930733008783912291062292474869800623479792960750222090505131547964512242046725058707492402028594588228197495397807023546777483784641355004460265072729827354665579460673945554775120827088031450528087682953238358020394906232123155940853577343652091684428955033033091747686029831701797771229715749187857248827834747023121656337673761902641474675548187359459694794298606396856316007801723967220051317725966808899351494483493468715964814283365330155616949733979564003538802870269807561031204575625475118084964841505769523826918151672117362768649269561542190936416816491410157284670047620884476172341041846360968702733642146634631403997516267639257822565820174763205966302536153895635819958128996987315024375894068207699970583524011783154495888128155740055204838138877250388089941928065299193361739821731259344061635658737628339785730328510818977526052939445062683164629276186560229320719094770961341379892450590139238919432698819911683414898053101787776925936938297796564583414383843200976491848284403915130361140896193096400897023666445076687342052174905907573976414464604164149035040547322901480245117006921787735645882538524194837158384367344649086401529618997065166194141029477738254770105488361524131019360816952792375635375234568414441938179013143930547595254562789626747268762373732889105865120600003508035157568750172592031527190291013567814036633559008799817456248105262383975650388252242003630132036281256566006511014119569761572858283668589169378284015179523015859664820621949917015076863147079342501234348457588269529802588059780265313144743172966039972743324647445790210688392756382828223093317360524544838930596125345079976890396047261602257311218297904135323461198217837975883713810339844459366929976620752859879293509233016270710572433488941734823308635213494168394785726969269550964703568404019479884712999709187943362752142590450545451474421121315648798528748493097832340292570699386373390299492091671569911313620942609865036215305430198456338833997507381337829319669134380760559207403749783055592207778243701367868765062071037722650597932049962533907250432430450915942259817336525755961901473713842614438279951480969627156061708088604919118192664677005808796188162556753442468315063283027215666537775027527498606756708370796439864093719755691297075831823885622628347758814226074740849014350162863285463540854881500305446557789327947766989306905579009455155067778705861811485618777939395286120055347889187436500903779740495734388895482019326650250505268042257496105469091738163584368982451380869977802465668180194104649092354688298829042868435655851964803208177752610831878686916267924362849060717528330853415414410361354560468019520582957040401281185103679724553147043641440113682780721528651591241257207572426749303892462361255389231554734823103909345584935361058184936882182616689515079774006771159080490676487668296552446930522212970989998111764006812282313323122168997067257950456299621335751903402957849378253955563395311357333801218002475008130344264798651202043713266295481652074423626627834485234198857732929337920657426515615139710711344659700682042817051622451249276427852083980757605169789446867152540392046065085818669180137470919134340068240590314914177471824975457926532716439383687452491841039856906332352850719689990628830015271178278754809143984858797056296827420203304835537667805839081119154052644225102933725934681111966683424513233699662598317506968118754050568386142302064664213690792244870188119629727142648247958521241739410332006728904328250787214943382836986588480331615434172855289990355113821473361004532861506334715293627257709544829210494013251863177978603768370351937018111593587361679379179011477175987426603991010487411905282764261514367222979935995745352597599417243377557118256878735177065026832598237302012306971497348293577891295703215452867207358879214508578931171243223718989664755024892344811564750873586050883652279297328718497249081458572401402267901708788764242218442390909160477736828236388658662061457515856785676440288748924457986360206782795767029726120973823966670839749900250982103051151304449338540571374502218808683400342263934242480115315568952027889771971843705322288719473333678732587720627785101643888650850765176305666260194234626149288547300986742093055522255961091460518454213491942000680627711986319578603380641509483304204853189674176434869812552144330925103074726126876301166680943778453121681078925355093462055891414159266844305748774850780399880171796786752834711293734369380114899672050311858490811610429393363876941853232741868768850495260874838133252101719906815340036605158162105448947588275361869211271024737303960442192118047843650554918400487037140892936304223509373390798373628125787896234979346702003645658695287802990147431262431098919987046127646747194989392175462595741055568172121403394908536021724056995605832919021220869988341901218226916524422385090826998000428396516501352921414745953180611286678498149100518833530230816818249456351045125865871975178033886728928699989398980639490609920370069916613752737690940662090972221527101707345967350014888612812493558341694677620526074693284847334145189150555030427391972715768071727366564557419294283820897492402352015763927999351521567413784429411712480548231206485872493435521968464362067064081861398182316887764007834551836292667567241110694237657557713860572135459051428898178531407052590977610848093475810125666284523396542764805003411558428061404547477226707828951185738113933308139052033739372783400478830854119783615756188286713586665290555291856827206432256674915409482318941366341890665033783666984703922786339787565837591062977767524669080946568219004113395437160801332769892045357867186033608166486626874547538850200768258992780537389112424872714515952031295127506513888227116473580082032649633728083824438934579530978046311111159854391032916573736646699177083014389728713066102867466177872345038368039940180068910238742307914576104885216926856428720463917321752933508845085691704337006859593631403540871257697392075688902640801654962067088310580213539908650419684668441818377243963934556362072303264631261795723362780843636204125743566455869900019835421846284611071480735327274478473844237083620756169627470421989076594793946640746085346902612083382130588565649036490437303499149228753916882496504509279877879827254240602986310702771277160459577597185296813151506096727726075003723065334000689887796654500825338306306535100596663008163255168239097333286195987828876470632697893239381244575910951362712358329205864766101148782874049472486305263450046638868928948816367941448883603152250772288498567842474180456276992529468803957421429588616614406615947033310506174614673325337730177841758284918517860878028064894156527598622276173580715103705565004135914262892334146211493559560914715517203712141739231611497218086954389137659495722177782469094360760903833509086410047253014216431357304577502093522700074951128342314858479054170917694891093957519430205045544932337516251102564773537373730783586023716998526907049395469948710783437494686902089312391069674059609183981704868564627612261602553578850622157418776052225938417371685578233909885037348784053742642101657964722075569665939262983933543368549278159976808430576327162073019317920368063317096993993153982329547596065162217698263590700096127282247694652430596710034637648143714679295601470103749113067030760979205033662504115537842475313504435486758050178101801652695351622204374631235332212346181985723267587009043447707155947370643267962925935507424905871768226508468978214034408098337782809291563776123120861530315157506668142114120426123790707019957143323597803069341711637297290263709459781962360346555346561239593943267759309255742661520878541242521761488146260852413104164757761358388310905953548840520308810299441822477623325306594936844815758657253606681619078804999133957553732977995670250017074448558275046288687148506247657685320723455344887038274321104747186943644303672433380048749493207185548504012680684556261660459120566948887729432454557472387217708903730971302153912872189110760521128696902652344859918974118410805824087919301612820941086047607496536124434280994574745489625785981744929443778739377458899042796245303397262296667869716053223162701544225678929497292274815396969196767541993295270975928211439388062417086834910400987863131312225841346035827606487668886727015498198068965110068543628677894818447907282242918746874560609323100725787126855345911445026615131039324669936495205521619373902300162638643354500962096842776032034263261204800143811625546888711182939485071085060309476314442433725148089302214082245543428590609917925057584744374091757423465884975707792305081987017016698124406254502339635669844045266398563904214431146289220258099734919267828592653734881475056062790613114006958761691046888999529670604150175921803142306811265694961138869476297627469025189891024451435338832407812149639096950572059484773464025870839653832129366648364470136721986575924485937842854962925126526395705229255990142848031982570555900666969836675150930287600746022576799954349042619732661624903198358459817858443828886916212404626647382763077931078252884067663491273624939173475772460951654901512410146419171507222179536707500356483376795500997576457116807437444154899137864719411401040684670550068943854527712964643354352669734084311973230231454404900563843216938068411294156534438023996479988644590176240077548966846002457511512389570393406297314747497892902341715704188731308316592065584956846785488481841907534732742981507687752355562689624815104715347327568735921355143202214208610060900208204111816724033771560483995388781006060381111735987204094894432641278672445064866624412956212696396920968964035349748792323750811744140595602466885326079277402516199573790909173313585159905553007379668547144748742904049651201825422018633356247759719931402025141518363216187160083343676017578214171121569878642515287825873764947039726249933416238511632795282005227632915680064783418469758464095147077914688146311999636647883772426439520018157993941488032480559702233696555442289663296051547086219001362148065309728942187328483204520568239661750450156236286729717925114381440241070948498298202904299999077577230986118345903304669028721384300455481242069487334300653048802373248119982375935031219915579955808661572347242535893450863453495968282500764120865972759284287142831659768701298669185991407232862379090983509236547288771841442969506791912024654654107187570191704468318379146573837454912800500854867454733022289011588749289039834159955382435816254955620630843061194986732333161946140225326621872901768610517253430562679877411328200197455996809140695855708928444663554550310163380668746709836252644971506955803970519798205061692169493529877152764320826594314865027235902634410295547744090753664946028505501191874072450076184001738463471597375777170983934111459503010161639050956250231444880337514761159223745412257277304402466086633774286606828885005720066549118808361398041219076461165137484046428459293272454493581639156292970504670711389884748679985854956459387043224343050398857204640665266341361646294201898916370240201799847455923633351757715075723733430498942858986692279063225906585580707350944466956069966277502390017150964460460225009510348214448634706549057508757615098801335592008054386639839637760637972035849477922693260522983161486106079735311522825244298537575471757750872509286903015259098518814537925693455023282336403213578684793647091280759716972425756201848643716417048675554601135978200347045966677853632932324963460606686038480037467236832374797478263872963353647095304317286848741567860282576665081856926382852816368835406765442655594399071699492843311657343407601162364457334503246449461831588557105352348142905644060553681932466352344119503914205497435200265225114509021297210535661546153006948981278391568186374038565524944763390165946742884583723337192663782569875839087207227137166524668524063003194711397104028799759726112447886530205201710642925000858157488757540720396359190843686281475292000211527363702825980714260977545583588751492200239526698381281387401523020552732727374693097913987078313734533704093327975471936232011600214526609022979422215610602546465231846769434711744743012890231610389708688211929774717248764282596664285806581100833521150580146318637548476083195432078067699085051423728224203480923853379348703921000067457721620355023694726962384690367855920726153743487756536538195366428337846046865563873653924170433930162539080603506565968612354077051832077555909404275225775220594027947289617002291663015108821034577794897972382329446535646849272853445843348963092717004286843961571302651388723592273920732600974958906491070521780271131973877936856414325447892416633614698951092966912519979780339680107467547077224915808422436330184464974092116802161617773370991674478684139781248256253585879539007171414954023635145918245004976489149286068959977119781994414821518046795091548937130703809502999708654903258851040911944996467943948178680536892297840371631047364990933506734397452601767445929811220256592140485026423357239130203300343653295997216413263915023275186127760749371475416455577547286447768101955427322563240372049930539971112299262489670494769263289329033479475307830807800644396588530923315580577604293481749639882203824679796799947110472501877803738040884543795071800967824777168410538657498068200968414142002542510228412570859092395875764722241821507377604912931323270299536426946085444901599623785451534125191254244497732932524498106592216778075050557316761660457578404840567464419896735411004022943346283170765617268618145938893878819722450106780771437926567305228125812676431320174305946519361840366134044861438449903719725851985498035456596831821363114770312706024704850693359352188106028936834440375859258899508227826133866058748209996250951386297657558768008245411504074845489361768672551054665252185395582129914711748620504950126012832743975784760786892180365948860374956472765303515144733430031059813297266967414217781133726836173142551814541820382050345777015008871492575744070778514996165795569379019942802604757572053529577649197400362830743687669539522594530407310464380554829258206131957945379230865370249908776544413675222732867166470675719483292414637531215026945714802709075941028954924196434879525290856426824381748431473851811160802445372503763865770197283367153975623434877934259732121644696682021966892315253113642478093533883328214060832844093759988551880546339726122973377070998764002530293908596225119106295790595897820730980920043332854996091256642726376603670013976876725032100520762347799725422117380375729310328790740942684810361397088908649263407146426669253153856048704068248037060358514307207780251739475843692513478971040793746970356949788443373462492984271057515430710407023526122757161038980596765326868808273299428133383846538587060490417622677132417207800168449913115414237914644535855629563913232118050972060621627998242330811666734656003208494273011909690689972095408954281956736248575385628891094331182257495124170605896126166022630526165421126571490086959301928861840548196845325173386330683178655590736597644392021555770659265209470204989882938194100482702819550422289914786610426587405514574932454487488488969212872627403496916449998681262199306974750078902432395198222400153264817275494262811009309061885584351848567830325875659045122220616171224008581799261394279776607448774573579393731791149124608836621761154177865820261794872141497769132570825699191523005341706465027049827899326151643596271515739991430937355743031926131667502337943626326720489657271953445116414105664937817851881887102819238966201890441564721138634736929627633138414476793925408662829031011515511052383440790059522602763434580904448154282441770355498501070461370199501126084199543826682123769349023155932336846233808520249597791291294145827962003086707688458174611896400465292257843986774042756896133904799996273744524162247859758164129941341610666076206181784109004911592017374709317909131262030493896895942439208463747814675696257930719015647857984136281450337285220397444240132258292028229616461462019010428790666831419445483794533627285875875334611791558271878226917360404583389443705850397780810855702412923013110581163181069271122957484415653921257245113235557919311873109169802784607983919032283597025591533339410328779961592607295439852944402736652039194784954602213250138447335582698333861001484679496125939347222085890219332337892773858741845589974125518851143600878384333068292486743251743916576049428364619080888536519774440818932671729875119235266002340656216895791665921632855448890714603284515042391859641766791053689701568331669563260649348868019679451217799761132038885471322871347074890747841040974186637408062963562481266240035425323013934186638973548595556025085250500778307190030885003366824928075501873748154187030445312423721350262954818344465637261021068953464085134630971691817612743449294158511978960901829679700696678786172206572531638659719883093348875583560500911487815090876715575296270990903181427754576942847508565299161298158581088064846469941741501141804170156082144363235240332884204659842029729927805709237981804009421901727208369897669067246007470838938657423695236746141857178293002437940363176773735680446603668275154653341307990511876848083187128814300265157236984302884117798885343117677125911187588619250151214908638732655543438268569156959685806283704758975814535513992925374022352515328675165558512524304957330590194655579598611143795030570574428605891918030440279176199098188923873319626648082778205555526119131715262150965991523131895940309591186340335612174587335464284103952316856650989294797347752432275653057284587383147558490404297540657895318114206582014977916411402740609144047706673382055596446858503950588250607267084470800824295191156941034049702480076113190104774999246955444073464294953967455490000202390562114488287365059690408912540098364870443373671960903802334322469405878577307408127252541622412124734019704695174857131828289457242090369767381155517880902501218127972616545537499299711168122823853645465560911233349243915493796117184448319983801337394500816527172949185749044082263101812321112265037454964683824991413021695064364362919176143722833272583912717538080997093584072822186734475793278277337126464423032288662455704343891784851657344674956372649322596761305461426164821442691579464976937467448325370806146179021351358518368695620938954266168645167435961622121722225192589949200044984473481066691047662575294406000707523894374988125131286449076485461074607848966055281816255929481116713827848699301198128198143530617368566480778294177216182382823793514316227933849081588472181788090887910880384474345367181019816994848164750361521787310856977819042936967328945005319032889205669960067346452044451728075697384016844402142974262270902181973557768573373778412810139328690125587331746548653507070513993039682194492763462534754202469688534865367160627074677733825982191779393423657117220197561675491524934048167967908846966747638946402643068153462520728707044718876164412283580593401956400642280508192496046689879293954481200265449030375143945325633786213991170833103780751186783644303334902028556766471186036648557334791672672699458510342752480551355444292501216646521667735559132437289173939878193610420606961141509807877354306799027066625653945767758648356249355981463566821322851735423946942187780911927544847045144170039755704978076046294383367253467361054808276137658750909487160635416749739411801845688123660407975891859563343875490224572136998746176969240131631800878329986314414533676337407546038502905100103225230536063876534265916087161541996811134645055122792429168652992356497061241426246216608602865590451370628607016203592376477889493674735925835522128841912533723815802979972613104694679058018982747613294538913704307565211314147310571149781681111527667333211263095033441484870419902742422363070933529837845463711935220770664306203638338011438055620185861746251502978970522555272927579804644480147796018505217561324143221023383107911331049683596682269048746802290559014318360696862736331424882911807448967926368426159567962111437929485914098749486815351198285366148287468433036454307121199328993625217556039685628689094320804874412788339565282689920619274545202300413791511565317293258331936489228254572667305216848569856374816626211933475082794293299527936272621092163104849806950625218190219345159444398492741924987547950772730395491461974033898599757082636570080363823245076641522560997220491486783420167600611134849472413183835277251251568838471132494541670839320180903550085242949156813997226275949501585370230971734011809919161255708518398282531092895357608798162694303011441423008567440399419457448633356989614258197839404523156092050734933550442554526731739830874454258145080948445989314854312931872823262286173493758734970871250893481243091545546093762694125691832945634933481092454632438602803928092761025331398733171303659280277144499725908387436631952096018349087827566531362503744251764568034762955232497437824066114059300425825582313010078010450414092091215111880726797541419880518759470465337408980639015746721624018657691259060832907568756018699918925332449078830195841216828567541220841395248572512763121524143454801264771432327805708816181743366569942316467330183027361048169731503318500856382155655747894620586076726947764416771952750115359543573466060395642984935076636213120876610260101379249463455673992419163033925918655201386640086803502403540271585481938631863235135667049619459983057471607504398816160696184529783673855530778212053987145627541883728096646745014654326704156768814063936206957539085164864851518658946812845198952907884958491461794955855701469728672173349577393141764552108785715174685297181089349143907664408952641218567221989930384401740751201364591259728100843167363331652399860984971563114858281004404966199666669654198674097802365112868305357996618806461435679247112499785737892219377437194855678089338516535007496094689622785908634512181215634571312090432089272190672843292921331123376675006411653957343723093044169371255951005820973603788306833139177768005258858835664290767744507382462171204076042794713599826628486077191713475477182903872180798200088036297654909592314667618807864620241529313239445403451650238353454852183076223659994217639384036616422040398277406211411486348089534553188623701695946900762782878959302436862323417694491943099887340398375043644658161373807498613111744808199864906388693502554177775672244515719166688959185449839132604066105889372066231992694157808888396087189034774297448116538313479992328847936916320761012739630162526913512062415138648093023390037691050600829994050743137574725463509263502901008091836491941506327402753834790234770637899546100961610985783206654901432713923677728694701538164933411963777827864545922188359309481042232871191569671897925853851121971220531820849095489292911173002559032772674357313528779217883144566336487725658404112299032647767641257318372996141461753149940065934625226873473818814284093296565679348197691816307731512001096564954175720021555625874850534759591308187162685288332340458746075704152488555107210969443270066634068736011116793740384081765043171822098075419147266572162071323276250405763654041702811715425656145041378762785319018652848301979693048130213376593685771606895763627869100606162477913102865392810258434529968466945520704477343539967765699552159348582807711730328951741110809942029947094094312569674277549267852759823406057025621859792760298411249082058124330709983147983510893652500406657783143210821281337411265811236471590336447684838261989716015934560668717220650306534203420575248151314219404353830508596970661889252190389450331416485121906260535910905624331361582304596958806745374335745340782788159472877490474215928638006647197451191189311384520501247062445763267134641043880260654092843778173741709427997456104683103348192516484610709113383716427669413899808674189292885944097469495471438855481316229942247273463387345310436663536284932990521088859676970739120614050661703871711507227730085947726283875686223775631653867229190945439196491203701181451817243841862642428930251165588433535708648511904624445788265153541212361783743045412566843534022738591849407742063110592194730278006022931591234836415227378765894012125190121387163485116948120488462343977336818473691082448278453329051114408201499664768681658734846941488338280775359218584792411823878280937065361376513782371492314317442513442934415084455243863020549164107004239340198750517994658665694598167883410702930927531690174096031815113214731048238012498961980165344225503150133058815765037512375637555238870787896661756772546719071718668250492331842767608889197775641354547045418243981504084470653697680113770244607713576858171030528838378804216093488525585477559549751602401275766168707746037369755634023393070087426709335068583219364379992659325783692744572732188801748958587909465120538072862552878389527784233827477599393007662839409741034602692792890377366364172126890849657395904188320726934441612682413661242392347055980640799396812819577756072950592042486744380404198521987359522033240504181763594077825905794759599183456205785004808915893208264808759492955026403224697189874154831937747893277134174674175764755587994721274836214997678206050549530192693109428109228292693727042696869716306094907910543060512094678185769484890555450963933614434538858533282900364377170536099466142382343789649966153211548799085577072243434737034148582985459877493239534141898579942744344783645000282896889298899735463146774347326320690676683639676310928911218309248944285290922752371020281966134137160333266547815163130224195775402267384952696944387060730301427972281190475895440094165488037937722821892867860031038403283762048307483661515269122062283808644905572235026013090534957452060280067225454259091531989289696195930078706850007693260606036654540805421338973775685652356892832696978431847548627778374481252631505264813240273650156976855152743418831771006382113633337678238461885607104537108248681964722047115010327187453983369191376599461808964576970443039659635316620165935480598185076243150485261385533610586877661603718123353358760572862626995408482365051699100919039550760267798326131639981945942509146288116485889057046665463870035276206672268447057240931130991547184756629558345712074876091369204147545459853980206653898359056783668781247686727705622850945707077130262683813066397395502966401690517086047756431743652313295848443570058154062011333164761537616350390854404147233139654127088784287631119034093479733825203392236893189183817525181270651726215642057063162286597802324912909575516150630712274568480269632817149483588462811803520197313902272896748605295138673363000816249973087155601349477956704126313810737015169906092188152719311699599681278735325255622739262995638010513468098756670130304633426956220160474258707068603982358137457513059569394548799412868296999896299824399520610340258057921537475344488621991264646361634861390291085047357242516309887344681019911122060448616398566524053290999072659957999449183065534466287586782848566143721517738268473200953027106502609709214341923211456492301011832377840098240211166331387052322953493234817362616537270512788368508764040887868426233760661466538434216823474448110064303181365272017832766416573796869777768263649917560396959480008825423459659231974466781943803634343684816117045091256321824610317626430352121708023854870008085717020950476992243599984896522477153610042273428562433093554464471510873040384935914288127731036367509264021592084821146640481907806692498610459988000978092191088306663027371139816113681356007343208507857113318818046102306211331533949973127605038729224713069883037185156377663039062800742152364052265406386850819903712785247092526583065327951085493494193027374072667592660079259319951739050311842370295270956671709975611130035480139516673193739056560671097468945374419666817497890936985093623184229618832102363228250597898226753909730135615146684054267506309048175577730117343493357278777614640175695930447397331574743301909588331134867240110031770082394763391772776703562699605131407129875420642001772363009036598506406917572865404262536578057985476684728548402820823563840467737109535817228920094673550487163770958039012431363279541076663166025877011191621114034247157857994095865101627363179619150375604709306879122541684617897312665639499372741004161534023285776103665681276922397261550087851245401352478767297607524178020670190036971202331919353211105020849004910595376511398728109336980150454219355248398870171267997373739491673583877212442499753522195783892497669393612427913908847120287156823136149996552183535185865465683349577970321013932433030032889781532008019275868120451102024487259881764457042499421658632397026523235165922480212160220872766607988256481288753503065255409841019867362769822088954479320325901028363908730175642956219295220076622887360761643039173021208296671092007705035003692341374180496302686966885984536210744445165712621529020544753858282838252618497653988094681012838773153018077226948215033441551239819279581307679247686696507292830260339621701743837862616483972250178056554389359492318950252255767671215801295663314867123236950320203625842348631166962631361957460368656298076155250284135214836964075921906281818432246662427459960729698666765324590998088994307233240387869139896175698139888789765980089180053668725379293088316542385566034164025895288964800285950999130451189907197914283931758353840764519490042392446016586005031928651647716185770385008717740399678049909254969664252116149487785887763783081227260787462868673255330502486516205122959280530116801675646550530816868358267987126794356279171165502533391131358559037640578955213850279909577558019475906914692855940495428703811199252700831833914890364525537014884629058481248768502022594901324331902489636223415731519923759488391304159302610195543681898717622840970095529601068583242279986941065399210288581141182161561666628017731332397739907036679990950749569672439985084576986446712884425450878065605311502473097170263295766034115628115312064714531973804453476854501777453691579687238290351292082454453900135022930342389481823698178037225370863524091068960312155554255888672585521324308452125294745073395011113401364037434729135560290705978273933188377764728442271424741077117540764834338689724547174895199736677201914670698856408693527398186106950403042429602666035735328148934246047947676434323626573221527075486903605918563694247281252525429797246484886771960943250669777381906672466495695992123364680911134033651828568421887039105017483632679448964411902516298510929819718146662118920954688945297381029489994972943725649142417647306458938999976122382637003802519335740946176867340053218020217258738834549315988816514986872174843892234736694997820740070264549388349387564290190250112953456037969897752714832230827178045469815540098200765756490604016583140150120409932242474459781515386908652918143621969384059313059915150240323910786988534115433970044326955045963981952712683627550559781090528987908859401919645550441298883059088996221159939601553610929914188370414939371363993740363390771329119596571663388064836224703629082689803230000723178852012556604392183814376850371746537623960393809514525966551146518691726733272253455863067465579724939433259534096370261188988632636260271005592263766524951302748481262100874631836606419302777871839326971100457197085116564654213531981158189724413345216497222861937518877178852864085204742014364271429510457115462000058005404049462671152784895338442411524072177514973474359329633297828471902944048521836119795549773220320481326987167280459478679941746107521988388190431310021131225132691240811718164035051830067733250770554355772625644274209688794652499958639993267251265113620582164609560378384948372313019707752556845268216820838591616025459180406410008518019219565664310872512285933740139084086830875919230101325876148893608694335514052127364790673634160781367817711527242240488605888275078976487650201052108067542698666467282100597009385006766376722352144284439142100197394636474483978089827288511061772971652980938643884109458112325133097554176937527167803726486949990528646161707670053032089318392082576177428110813445074505462848806372331852049177427556512234821312484059972788215110609322006541187322480894436658312308661059917075918584899815279704963947395270086258899344909609662922430813489275500179761303970256614694419785467535575278043337747944227459065546199128094011624622161290750587782079642522515504870698495652196490450466719373458567920827340269158555615063284379726880028065387265009453382182228957244660424090661018657240643467037400615959246052651842995834821595185935811770149166443857534795913793146990610427890595982785149098065945286465311268076341201178973873762301741044409378853348253894467090970458109033420278581992783944510199619173284598922227772925435131384477262795602673146660048281813482853733941993065291445336084224613971465444965080347228326368271989506246809438147024278601733059296204905406746981929864152690782612782762962131296101929894382814852094610646545814489811232124448997953712529067035339703368528763137240091930845837627925306791630818939882685630773406359197101069242223858513366532642727624655734131667363740557302937529810012619839619436817981366308585592485867414493809874034315667513831566257974033495813872696441732307848755137865916987123542586470044600898204803692247876555925910180902968465960754885233365442988684195982865431996494685118586260553329057932321242682587650954679603219542973882230658242735014323472314722796912750780337662604929423547579416942956203085458430592086121211102943633150273874947413412765282121973739659584310721856478257804037210015590228242549142009021782209831298241785415849745862960956004189685609489781452723529726595424706112583243042554053461262204151523471027643260484434046849191836340812084781498875650177602892466194332996989725792597739767568010047491491474214291257706195664933104192967906282467015630793652276383845463198743772959264780208699248350031588037453827889466156264287510481569583836328283750621508034712876744136397767413535357768012950088185359593595244148289437735872039642730250623434324351010185348014427540828420989592870880748808245693916198437684132765606523234397752267452299888090079274177312387371609845705027548770267371651574244922122130452282024128240472733572504924854448998355290312010488615342642310295371945435310983882989612326829168306088792384290744522230809912240869720123992484541828470721230889064929365318678821179665112502301945400729954633712608407280916540676301917139059443377839614942616282983733238488985370854988926394140788676464948103282248310150722907856850617685159210654996882551988109088476315885177185695123786476798187329462281828703641337677440592745198173165096362082680282199324105757066240580220793228110599189292532708678878256573617509727136513531133439588942745665471206879885693025382209604222364536472321918849231602384958727154189240246287869391483815314035227121652099726962942086216032443644597863785199022360856238055331485925084510171216009531880836295507433887965341397304881428912187829083525231456006713552818723956225854541883073373460113426587864801837311298785582311514855837254200005057216706249133919258195017475782762573942554643865930164369096198059461566862383504718074467788478827307403448661392200752411036748919614221236486497332076616865322888601200252004568711884330390632221247490644685623690797212143296877075014902691657234203089101663999420667364819789494038163128945545522702522667849697363534995949132174247773607005276895311890041631715522966811591919358504756720521762579544807953365057504187245976357180174224281132710568285184375902728441557388097309451982159472995267318130755843578812997446296812359929437244963140231544729175347151716532532027342224399656074392346884915064624883158680215420431730640858706474275916523513143452968507229930246822877369169615364243297914343669413112103845378147204575791387504301250672008856850035914068247256704116189032258512979099495133228849240740376034255349271968165022689470803152078248726187357051605333518040774653242424331262865091396323555145672071006074726106369527551518222197746116055938292506590941859217377469339698692874911541174281208514502268575381090275765330492111204866495038959709566146980415147938054310952131876881796309850817818362331457602529733133665465611550986403127836190334023137607358753696717980758420140209380796765541174986194332534221024431190566379418938917317034177671885263538140210530175071543774041198154797612467613733755647666538407237928499958050157487675719360242277978565258066121370958415634707424094426891802606713318600158789978720592476586854350367386725185862195114843344079475454093273608986371520850800153853464308368276082555960977138852388209019744451474521132253387935761240644041327181265310873440658499333203587540381130864753187454988640018947282345373720168075502869677063092916292950011112922188049883471537398462306536220553828897238408918588229841369835326653547199985794326159700606470120628030628157626995616092702068282210761529513955760446996681241852379987171227736712362587563555133325102738375697071815115955120985578675062047454458812365558417801290443273251264114448999945092415649934717911706906850378642213482634700417452095439277689494877922448706089917592314920532260521000064139255393744362098108507828588414624221701043580883513271366674564381734592979888330740626181754397185506929881162364379899134920955183275179632920613578378465774981490964854794869896720464893889524553226899138335548392096855356278332616142759598294561600270673015995134210814549066660785636712548938956349127486378859212296511342226894946048578112680460550314911098547234028373271267995526125305987993943527201262950533745966808785862548988789377122137823966608271354471239932694641365855919316701426224079118499002703436431634551100298709045442522891972999779690936059170848463442748332077461257442407564183823828779139381015445713489154819223179421520036626139380552030531868715932028666032330471105190559803493036491534853490614305128792347452231666702653401367816965966464511211887042892053094399378603625055018964363332877491247034579727614932330667378399470508021438335417005241082092405149228008755238580305433236515755353456104953533880164602449512591548702795969155153333608053841959786441222775992565550926816169353272333597074767325112013374623020448342297500769424338049443069221910422509123131186576974401597179501091163094935162724683534811770774125298941014168907855897650481709546155749005188311777649826337417009331356635588110718776160545581096656260853320605263686240124044587863461104124521484705421499272493535379433918027153599437779259425017494553695517279104389262792729151173415683506958039049444931940553776914263754683636278979351580096666094313565585338153487791468757530585866498383612891221674006455988721798230753271493448669488433892578055921884459529173860963234738737753138267941159106901061591455897751015803961498985585857309285467166425394660821249181094245455394994109240624534920045487571636668975768683040532762683132543547887889273026902912165617693022792395987974482871489689785623564877718491277682303518645142154886602654167537016254701084614000977555313275543602781785446733699106363610719821021455317285609495719352524179776519857434406910343823947047068197942024985814349840139627552455955561075342087602357221937261678018068018234835006799389944795427438283602702252454527853603959619607087619543930513231528575337432211952341818222615293306801540615569018749794561322217274855184527320710104551329169799768159656822083238877064357959627804710512827085360303865806398051131577087660285554525751723970339009016085436104305906638273170593943151020543058313268793250661496698106635321608103972792188343399594390865489833208470985026956354381272578121597377805108806293484641433723963009998176509027275299880112233592701960166415795074576847154636711677329846994195701237448730467369184836054027099611610186620731668928632979676448058112811066297163635591466469991879632209202056390044429122050158688985749641628869845242117005060587939848091680259921612877034092310953686337063015675271381306785690249259466778436599898076978845153257515884367347768046624602355955003105662429736424306885266247043996419962994513681421416073304703074166389075226549768048952445111049849854203254469290627662287673741753703176069252871727930105506440050934730820339806866358820550140127922269156999948696597678365285708064424324837114161286172880677277881982085724034514459173682375619593686240570258129058935131294272408794082384569613321748297114048564352424377363612506058071298605717770779509480766027382764548048493197563030712187188186935779030227311217088624396555670341339157424086718162049605640205040157431612943583358504700499649658343125126766811450113099023129504310016125699324273974742676638008627384842315420844761607309416311503689944347609002512368362734598601567444888441090794600507765720080947507994518513672085245074585132915414911372465557411321643000325181604253528423931583276145972047136727058778661796366461455909942746074644917621708232538321424334731216566145604790394841114246342620563417438403353165173677573374851420846663845906232984693606497112162226666504838925261405167229095119437127221202141855261758819303438890651831876170246490548925166446581062395421858492101941106824794025227930892348344581699060504904045271671906289245719036393561154340926750331012452996643980012699953196303925761172727914264169661762030588851929291687405060445812849602433569638263579115579631962227060043003383575353564759194677361555455294461973296580893988417908440995364107960771744315563419182863091508502730736615550418141560376153032853933419349996414844845117999655965373894717256122571770100536768464617734979758123859552243255352739719063709399321673363093452276690210974040167761081176686681537345771517964242869258889070362457816389314444541321787507048674854240330223786748436315545801102080732274768276753549685994730699244517865884417735359706273471687218288150976495924497291350015799834952169400765917409205383011674595175541529348423722255486125984600339627834142911083909793745393373112632354985498091964300759502134348634024979968555014573092870316234104769749380662114798523706424659719187880655997528571901796187766102575702751807822521607821202764676325450339525807742059263657739752338122015720397383472008067027746381904261960711439942572896485448380259307620992474573968806963330768961504123009584908091528442770470348498372898686890586256524899018202295622167116430107477194746480017037000371755713719855169793889593864883231477517347499596923170473687602710597096122060030661068246391967207269863248002613934995387187220355835636656345583232438642901952502684544073886277075904008219582612214187573980454284683974173695313493038467254830341647405367230631411811349864056258830446254991603947993589042443901241506770934614937658616552142788422007953781072950423374152599659908217819135912312677456159596424192853061001776134321399900131246334034298194943046387017888258105807330154758947569988210952835142460354507112976405056386175251065030621682803057565237454855266629288067859913475267716160866262775013253468340295374626604711994057742556735704191254084318431635723881511685685087045464517652256121804395181599512051906611411012082887811783261190982491278243727806052787257511100378745174346791099450537795502160708389330077235705056560825530775924918137243155966208877054331948571226645180487482580904464612088669508418341931330010776566710549011032732655429914129582366315740330570512679782967150313262740728172027868509240633051965374684437081399444782946139674840716928726544506360223324768956409994945686271593397622937711035605036751594834760670313383922133191004163489708902623976129344306670994200432673429987336252044648010731457200233399477071761150022290322484592178464156311950667011963599511604522016337847020810922823284893594051507378830486961786432994854588430077675329777637974303319294592239356845737628771161773030251792549096993288178790068758144642707907055445497814655286768626955829480534443642217136788225891478473439965722901433375854967971991696509929545057480564117295484375595429580398083745341756486530491207450451660795412276619916882319983933648090874212082970616140381307746309989891551495615098784611005958921681163465434119302733419886348928272734583580462690217452723808640712996067094456880912022785266637842288723979587109793692703846535130439910459077600678232104550617035656022953027478136481163549357062558747651164489068543463744432684642101310240879727101723640612676703541164456566671608508570560631504093899675322645608512697930025179369637885567907879333334009077452125085160398267087014751645677827141105577810504234666270167002137704948756727854385749635670456131568762671807550563791550738839668984990227308704496024241720045192394411924571897472163613256619920051680905203563618692992369323478264953912183203338613454344455634153894721263416673567296006748263809800310862220466406079772241752818977589902179836179510985710678230652019003508645804915712868613767731191050624070124847535723135190753890613128165645044584214324874250273870397615812862775110219993257639341057297724687860294335855724632768087446709159159722803643761259812740688209564847628126599973534503817105597717020445372349304472232376029996134345020486592343082210904210510589885508141533893159011271888936317416303150211302364114330536412270823859639223295020203354268933700915849543644342165147455130772841711355685807645903442821396326920213885489369397210982296580338466891916909075798207474341682273068807057662009326995476922212999395879776887949294982643614630077688651713807937119880295497995361463776469837223131481618318411249516296705840163652739954018622544608462916666017226194630818596292609751125501451057977824529185889319084727414593751428050079654601548789971660287302472166620793952244000716870499575499323458877223622232675500553620023728093104892434470537714957835335103670615138402765508612960042002281218645426608107670549165517885033380788599308390469540304311672582424023654342416619374547872949724661739622971426770869111238410263349740641754250378626805114399478426115158554947176331501324162958102195215746618411476476077623348310033200099888528271955471608944613586782471492354396747960126124178796141514212274500857913358100488692035691434374157732290348702164216411831268490421158989125286518633116943165947991489456271897406853779755280961616351339921433663832486398458475129454189007216269983083288328214605753517350273354105737643658967583030934686188326760418808700380710773292897028042862782303112959920061529793595437220279474809220481118472842227815222436281663817493410210188007448161951084509206495249704585932356611009874518089248417768095874673288673265330067190359715614189954904431772923658109612333099395156136039388986138126793424884486599809166733925949700033789144096208059956989265041469717877844009142035221652835231205879747075118325686517033824494201000656391788830818001425981346048521995339820085177464595213312532853076019244761614485641218668402858350459786734534998435682210972119700476101362922175859638911311986254458748972651654772522069325603551526003410025622511307452973379178944944860944797713813077068635667102813031743623948886096170375485133736465752225913339335439877409524269437139383645691703423636467346182232537436366763982008701583838524763761367962392642120766091893454186395874829869165254310264419047463221674090554301201533030905837086596227243727984444982969405733451217170276353774294632131994098966890859507414490635049389793043769136492479977195861532865567835581150243849364610420352318705399232503712539406586358720681320083911968264841989932383563247928781767496909302344628340168707721211688652504560868422399160724151492516822765750081839677303429389173155563498817390647805962940755100146215026511740317004676653979965309333337774075186748886688490268580986105168689501742299618948004086777611646481456622283574556326989495505178587758341094146297814949634019339935549949806485829583166718362115711768070511624480133565556867585927960059146786284481558313530710258669087122333218509943249467395354203286868143389263000396192277088539175553534039808892637762618206700074013440412361932499794976893384839576635626512206198271248879966718437545661491498029158227752710870617268079534036630906697179000309692901995683276373489614486697230135453848881303049213066504793177459541474685014888336839937647434347093636008915777216086333302158342658664865742911273232467204330562954211852813470305836669102991711426829155046227625783358436138274500623176411151874282630906646377745576294515386054877917775569508406469773014362628128453497737382225200259018157583188486013902907013973917592482825486147103949034341018373588859613387260078386202281909586664155967227633395351964159561689622387378117932561041785797658163355012808841623389690153058219341083265262977272343172485875155983979697010296935893418811717824728974488155734541660065348869034860155815621277452155023090534333895767749332161341392493571047076099920423382803615122046077700994714687810089583711794242441319295649630278063357986887661175414731898053867438245835673235383890873472566617407765527217011446339020804762772576162874625243490764155877800617261237728050499850784045738313809380953741718370009741036485875178985068867277781881075319719297696467184297598945251818611264800218794443312642944971642759779845129146532851537985673961843422009927338965804362921292689791546628811275011954847282347695975178986872528291260406418403543711616245043843808680175753535443313261943310903858793607554280207992863924056734391894890111802421574711091558927243383249501242127726976851494855133546870946874004534691898075644493541017575783459687488093548570457103061206209220191550465991907688260264867956207165245017079414481629214894629702447443964927117357084328107228504670495976091762273490644311739914888630714109171856528699362402033717098436805688382118551719095936426591263609248149424608102400552358732017233046594426682592528919881860556824915727862772482336021120813431945846227405138854659123005262427565068756042925245918809853183309064284820490568676652922262470597537915926433778666147397838776067699164106951192499186048532407922434679937431027819696181235369018745491793746684010919072391669541488184496702504414851409209946294786337889481234938374837407184125260538504343473403549362833888053826081717633263067130275064542908026410028378618004296083882948485364070563205725716009219821093483137967388363402994465652864769803019685456036470627586754334719353261309679223695367180474834165805696149124742937333675223164953881610492502098029587347914443227689384730603052861682666863867637747390206517668566282610416056847518093720760516229100107597811041694229192290548163549311687671476967420496221164110159270784221493291584696814579811400801619368278695784834949412658649135950042673598437987850270072458960340064872731242097547146227394796881521706071765932629882061327928076407660579804780689329676795560048317843868292405819379480231050695910184941473170639966091230601582359939656086882784132700936714211983268056693942614447381971649557809477418369535935088837264070010978556215420506449954841450573920576835848687122062846315118588182089512333906278146467299676785855909126154873212887837547052035891144153601797985566045657217139329486713686804439190095487948989781958675909958464886497539148600836526871366037333131682546776002918471734150137846151261328679575527753912937055625779747123177391480524332786727009225806926114882206930614699246567654435859882442292916427967896342850134159109196991074745146380092741051406403012751114662903418647283436824520039826662753562011658830393733385149116518249763566151368158968309469134598971583000298836666212309305920866929418297131491177658842952720619805599623445854982496588955712056755032387226870547249387628522498525576158262861802738748286343113022667116137980768360273945773382603131227455864514735707438741576561634350483752520679221889141956316656043860338719131782555488991777949958294393496485484996160934399821684059353019128707388043171914653711172321490375964661928512539613524380593544908628010882949990559253396688803095519017602958206136284434350932827466629069581399779226649360806889469116972204681789868826840542111474682453442489959666038378307181596928801051217313197626764808973138182630015175892947292992860824365579438086918528675600824132018917742726694275678659697925746824910368914886950969193800582400198235359011993336268540162224740917767545815770807927578675463716334367502138011659243164556070702646540940442042958822927096022230591891456411896170709214862655420225616101738970966896297921562456025411946793916945119128366399935249969781635414026670173761952047817272506519795116874980609610783328083475956572546562294142012680816882521656238815702080304787133134161965171293288050012077740126645877116836012136196633460486792408881573182081898164299199832695245897014598665201649268457332638253852664658251986473195001803000579163490826230959492353053293218213397727398206199845085548737010224204492934350591688607085659015947757025326242723198186827521669521964754066277057411279494433902157415249442390064421013704328134532703037746722695199827192156883301796786103364093093949824096517467817196536923345181542792455928959467115482149350288485986921885756000248222498763735104203660384904874235492464405376656794649848440411305674253605869612959983891509777520576122301348693466668177911025974140422960345726337094867306759688311563693226566705167574899840913394518595787987375968165186370334172038600893605858501844532163976592671191352592120567693156211519723312096717017539382579945062481535279865578304445173984651396039014101797949917448975701638704992164354612419287077841038381327073480306890563547648413399631943764964487978649041725068472081959684499610367727353750095778375354506994513566444374392370917883699157457357908732971204589053076932889758438863563134693696355414778535263401059427771103544936320883529806904762969941821270119026461381748433128338625787335832332033837274222120047527407062684126451748345043749942615130214638517747207670258480772946887137831852166683681661836426422128323306054877340009716406666094251133939500215918053528626599102011702281134468955977914963261688415060122582331717668030901661228060178421807129527386093454977103378256154001562660739878355626690019488652895041614962881034172682806776395897534518547211646578289182717667871189908695837169678253644077072618696712435634284100328278564502466202917640556026254614605404885004191456154551436110648258420667185233888996741211894497511542715684909658117235053151339525896098322528382659192681526455374703285392873046710340673656297797322107980225514778462000238511449713916046798705493490655597508738629570568794945744325867470976500260988314751853805292497386510772801151256027611442988367386419613160090419203973201673059853888555468261018884121587725476416733550564162824830914543212590132575578864064050440363246165660050166704204003618791718947487363966013971653615097770981011604980317476999100842524918291909547869198937247698188837288875749722345036816877567068916560452637115070468559716632713461765933885277193067455800707603727479964654952308624872157297219120344114690251368409608118689962151950666856881595931689027019976723331445465010480326718234588182875805998224076850413723513296607238241120265288725622158952808451041284980321886644119621957228353552993441694397050248436948240347378145654187108362891180456087282007980323412854690464239417574436982001480410993598327803093374487076043657611538351710896855477477241338278769354323558459798095612505782166729862544369728750279251387249227167731630199314081818411619702471200541316808741809722959519536778988499716960764636688141669610839640885651055845785556451651119022329103074466487592175110835332228656463699683496646582212108940384690928063257609590333253194891760061905461048717304071969041518600315739152738691489011967223576580782868399877374814599894569748054561326387732183811659655572867034964984466988881675289646928664841757378736806316909349002200807467698376683710562564326285609953955473947403873344029841090611361782694447699483400729397294802606532226022065961034995696985592042366647562002552098585714679973567888065559611034407079509155915015807685484716161978704674931514355179554764418842210442069173040283170108332638115346225226972585381292357293638878547921264745862135828026336338020502323132911101268062202271998703096237081437591925677852792749648706115890082468471985705732007035147066494117877389465543714565657357649891464781223799358255598984818883727984884295694296693088814004343988757758982966946300766379875234648178588574833149142794124961502996422624070745794611769189451304648941265597879773985430553923178381874121205818752944625563588502741585327932320832205516440682661839388174693486444051988569003983373592245731638330451253849108558080553411538990482951553492061816465499218203490308964096048881409705270119466056501866317097029777253322098845166957219055627373239829832999254299839354547328695110237261391980558565839611374171542592461458330166542497690853397104956551345160419884788234251279433435283275693086765743915419578629505980037296396565059163413609525620520767469532929156525621016933684967910003359233409347524951918077426019950030597426903255676167380204205834426124382746777834121503689793588973155807524159643085438038409377950968656389828701279516857652622805188328253136952341973715293698479643132277082346407733915738183929582130437065918499084763175833848325738543475781181133343478521924462217378032538846273424084705988660447764911144284278038781825389700374460151595485137243846770416142250979164083833629121058848388961828147982882344929877910929197065967915729742712025018901197780571623997666557372863324024277300915672913860966797590900410897150922652052145076407130432737705059622656400128892982273710698485655045831548053494817022988843504506192517899290320133503685996799737555602828083055890945630108713461125472122254700191853968292495824153824547795087776983515003805733523162253369666590445326350573085231659555619270260275272486668207242310979983292928499565651513491091479139648795879642849602770109718813756777597329004294459337359511705308917770723425011448368271189862668132136469420678672966690505603183804838776658050319261226955530955738078849471292730165751309163783144553075687579316539171899350409073966054826980176614906313438719870610487405366242143185416818943173083294258136031271831263778113025648635689760056469186346635535384757679327781881613417515722325442961474401198489777458659908994235964957239264188905864111279638495222884581386348434465635383363403250916045471160682546460477447326206345390266264760090278751242055984374565359055189767964511058711279737486243474405379815710004948284066889554225967359989291711307881054488503895470673165572983631403229618023010393863831871160566914128187381560668057422189528155344856136551445492452891738915105435151078585887696621429356946948480895195611742291111441178134596273191250745371634858570623326104519590871806550172030859282649320526248189338207921563854412638321474057696218515792518018962427134581413474819999194969193651743609087245719867110700193707883988712966671792953306219897716700563161190795350252509043781594657384337618883056235151053521257581491856796789116727590150172190911579977719600177532208531728398976004151845659825878734016892633061741376994294783860121191105753623079273153093183830989640744177263974588424079982020550057483056675493574973815742285559440242889452190895888174481539216620480202347011753988256352625692125580501867363918098830206759467383844257546279044550775576366386446999141200267653048604521538719871107885383866347247613459921668077431970955991674606680196623261992584428410151224495537598113811183453952671437196732491487796575676157613991121337320217850877302870648818979380780446778421389653219154968916748497548706531945865981423454930091000998856048189431761288795671824670218962911805395230292508998065810943807824042807799440327589470292578647738227261559063486469021020542250519609185013003207192516006196784077897608984405600982187034932407672363910395582530055437447559962546968086639619798982579522467292339051063109367990858201019933313790417758453804279740857874785977401057353468842382960249939418819969704048691394364073488282896431272104103124151574407646564434157489673773936311465358509059352911173898831731226653020432587472091354993421885246073684632145109417311747715724720630330323844164989615578289724654519509939850393419486863763401775182669950678240355896911072948648287667291495517047301193938042024014072781595611659151351403242796018035459998172484399166156821300724056097264267160477306902864508890221085278739979481068246977538414925369973435350868450037655675438598259436717134274236108079709596375149299920074922227115932817266818413366622805886922542044655413761095869755885171747541791714101513393273323894884919018323951857741745969691284721970682476307607265322532057677932726510577180187581352101274986618412135872596918415430219930164743733923239163320380809337497445316144387078301134115175988598612528234644121769642096434362004360236080149516490026263015032121972603572805815133525982603966692137840859243084672985955806594941875051938410183287788352556032330033174866775261195716320100711594479957999017962313324607895374056946707371471936304342828263969843934745317766541788091106399063106674429251324966989826975882815899053935633413978827347858819979878550387984528718471251936743476550424274165779082742710240250446632995880626816884262505282835570025914881117039042842199200531532327318725606708148456147302704050361940427685088614353208711477192141242202916936815030576463287779970766271254252418350632021231639325026787686212641997866944077350079525135438900400725453076278341523024047924759783098666883242018179541688451211079703891374437151098819719926237287435370917333511906294969861166226289371723987199668620960991348879801142706084031159863219044587773120722208969103506555623897802647488227189978458692792346490539805853192017800206026461570363798262640543275251976404303397161118017267856013160461320083787064103124547809346274087906549334208810728076130014187589438037198406449079625927459846475509925891722329978983387787227295452766846812006539627068224588720583871827389251694029665868485276528237109183219942038074562191398650696894145363792578193010698508460404742610279252492187220178221128316382773779525770193579202537262999307416145168329971688582566399925459551549228472898980140783509308411653759916452176864008805819552739029855560859857407092175206281478527998675393033813315263476191228011550370606910769937926983039950350621616186983825654119099871302115681809010649874842486596743047533895547485293887724939489638477821853474588117645136275982922725949367042753219837850703538538912667320956517057082326943399918855789124740264581906877617909629197512193499130557953969765364690983987734168951488729641263948228246303124515248791410380409715597860779588482199084583190235707418115936918900130100081099922572905460195056771766462601748513887083735771277989242774465664271568882393283156620868093740234106481144337434912110186132743681698947359913991292688513900597382351028847829891315347981871703588786506679711863830155302354869471528472736031675506367102283523840881154011687575692160606366902553321857485099087254655904750970936865153905136505875800869015327435170726565714575154447550598864290003115744949814351823986832472886481252518170492063811480336683984108137299224860505407648161498882845540463865762498904668954273282746938504365986261697537348884620574876863474023493177555655291859043492099241323084067071132463909267667774248828703189154874116688839880061541103740507111943661455057543789078110156620053363753637974478674980176637124399445977051978369516972647389511354745955755156554314383699186141669271186920315751435720250022104173576647866831802736531909059298533573799721075766070203929711758516982689948610084542638885216799843307702111467519837026332369112748322975091127793529106321705407345335803954454310023191109168074832235798260740441784635114961226490123292390673546923461706802260299277240825596539161391753312403657925426590523939727360681211831223210382226724512984956876498179002125560986520853893380186234140413614475141328784337774113252899531718327953123970305938503746120709008785774167452447636623812712042925991596749161648013335091118012782676277092456028399043061289971920515569354438091857492295477150277916141522692687220168544890183674785865351617724486980384939180732308305417406220215702830981175677091247347784627439789698692213241698293947922243433199313022779347215670404477920616505273553029796527304173010446659181968202770566362115256081608788320725688752561561920390585413822123547233662590394096972495985744757336397208768059315273777388705331625133572685365803157816769156738387148319706621945240426494854615090342523066292117379790186088790535650912521524883411334665815977938056384573482115722661942397847218766992314124162318718783501646318157979894096601420410247620887165137399399200706788924414548639795535498544897820562339616208436695591746862700905083301873862378848423942579636612934546356595916801992903609878822805050535530286860237084811788926070484465315886510406300681910552865515404939579306824231467775967723498400386867393475073899155760036625721838569840099887766946114805644625859052609624158436904875515904311166362764141968374127910506129233636710132512753992668474551064118327126085048494758558100452282346272322699785359978207354709662628801797595385698629799423812688794168406281117641038459882605088787074670519661782421245335223471736653405773207443135826803372063212595280119520428477080425770273765357153395372472177037251715662305006452226915482536845636335616658448438641500581498748709568887342691051544847346146149810406339224755617192213932333945663656070526360973637903463741087673271924721659982939311661751927849986003567828227284044619263984180019764243696852642311671401879390333594733458905987273958207589522546882670705786583727856352923900017067491038278399516871431095632490456948768869159936007958663772653086045921222615163831178847515455552202537342416957725770212378531149394229377304576083477219000141461546067563255522545922245809255114150675923371395996722334328041245904144979846353480887736854903773559237760554225211823622104013377368878014378278526381110804997617861565607088547417932775606245343731206757728256494839240838951936889062831053475126813858794658539716064337513068980485284477640499585883451200286027473879064433630838566960636819635765199816020791748402439535558750235303185329734675576059864411837285466940320956535746539449248091990409114879983641703282342493734655587261689605768725403956818731060847410859794293518555868195076304378969863160513825816245771974113335783080887717441300362900106423210400140869060165724705673855705687346100756986722881979554886244017100252204503708501989863243379453842211692097288073070686080510670109247773647295186591317787988694358185379008560924764184524725475501679553629389332219862955184157772750008493438152820714823961332749803948063625691113503916403173984464203092164262625257367780070067624801689660469627939395302160602216361103358687671868611410589432367479330777349065771233314683450323943103182955241669899015700813065385936635341418245795536936088522798011717154193367776332280761641201595824772027478960981228233451664330866949996843667290638814752530775745975128976849151813065748653912784635935355245686797452005733791059427820794346028224301546825069497669273204964995419872816869933899901131987804703335835819123738508806839011374336723733720238731067974990455988826370602198090418496207537249366926957037386456900234229801882563070250712152158075546795014347808500405052547820614901111195340731723961980005850339453553984135416025384533401150791123526626608632164634464774070697601431327729585805481343062282610838963692864466104416847174208932242043724434323182304897210098448214533604825258505966924028980294455157416033172192837438535995205183794762412525627109454237972496501432849133889750340524851587046988808462296417712509754173908424796060664536641534806953482507605564846021581385815277015858724869538117323398720963951797599430457400173140586905233607609852438237285822675079632773098903127756354619717549607837852568405526787197466368687330933121716545468497889127785421442680841089861437816935974484470134144389914097056817588091194600980335636774431963203846406472272049517545937258599416805544450979032298104007890295596141672729642715490334852954437005197167150713121746101152334314817847996230660441773021281384066508586768479117274248537866968986951776825614085994055735016537576293251259797060812587761620267243663770643643148615587241152510564459883041364071323241261475527535306152790107273214171575267528125925482696902455398837208010484873454703430927786180160097516925316058922474836086494740020667897481314821489603107751567230027852347388145154401238401127751740252781887060994544070984325308845314640700370699117855830215486714110490651275426777604688144319844004687313147743011881959781498652548689543379384063990206975064229896307299444207997711303568869620397706441091749805239482312615654929846832704968483294784234698269185409681695711633759470403475590527396559900201918881180848377690387581647439777110657205849302648022595476401975018922328546946456983245569812883720812187842241280838036354589192137865952043924447415084378836454722999340479568424511158728280162135309591931926327724547017874861459985431187831016857322891630865541517735190402117311752458797178923840544249699257535361874346702560695631868578284493601458870574525315294434178640122193395011374805902687944160338370931298837949669000725043443155802033778883130032247523546876521371625007039228013683503936600316965106049467644858000099608025551038224995638918405803580369304890562033105747374397345394539548138930219862079840451704061530502292833733548948005733884052058562068068828157095746150631707169399114670855902221276137918564839654567219953031850450821969287526643129104011868566519938203138987430402901412027850248896898631433250608015455340798940537765193099623655568539118846490125425566474400321105584844848573799135287365287343061951869877845378043506478930190149182288389493212780752319971626993956464203272137713151955433732691118507494333870663763293225617664368996170178515104798286403840627088453856752363701342139372219849603812589139891078287341402241917474701425359703950961302151627080180984594394030340128450604423167984411705475400467432994866089323740750847876638527361589230981765862480463720529629941152397939447500506209271499712029355942603444651730539542992114474682809370476459122666116852494534894487300150653405890185504242599724596819481168344825192329394499228514552769065305133815720787820271492536347997010964401905817370574246795293954278182798509863046490999306467973959895584529424855497237824290223340100723237008099200615783036134203188669124909071477554378864776862251132507495446692556947681923214202124527595026244957468281088377239301145513762649620670954931817459782375084999251979507480885060458200633013622990933197169356661464326667184120304472619313413067198055210637226737221789119670611129559816501325650622917685108650168788546790199345954250756986406095556326940385693199878553777725601612145507421300334738224570907741937660244088524161843719683712217440522789647217252476622221763977126846689041289353638219027798530402633463654533740367854506591585506010094113033955137053396055412860209375914043414808496575482718114335814789402666577792908405332877576055559576215881487668546714650486956340000692329915825510626830980234803327661550318389039166757227988595959095054460383825433149149690117633708006320157380085679045999770415171674775316035956006494963108871508194376850880003504150080225883381314747765376577493486403435323014385892943612838954219679818461020742630877303061642787735902106620642667378725905758076992330608637828351457121818484854916909087803008613437199620922506874622874228983083707612519569506862974678373540461513290888075315121603751503907268538748885220447133163916953909400245015218590899611625704862460853904762906607535006155518952057562594321655869563123169490976417006376572234393069184504674520628408268409829947327437369106203433876426000896451068995760601787540126286829131282419737606902636681008653842340053122246954527745351709443689797501494245407113971981870498892998103249192889010028095772282696694033142476971431011183131415685548087303928842812574317428767587507925838383128991742664247297800217194145342372793888236487371576082930970810882165379791482464676016261037182498714510077315979560019320211090050342366051677110842804042434497888315650424974771876402963956975758705594632020591218862375558044906978437840277409900046684106497357341543074468780482554730355899086692604493487964826603072246690359093498371056413403048183093096696171585673988200331242232895777206787378064302273480255884949257445561669696851083479757107782519424311773765009510028642040932143671327178239852091312513203950946564115522876606337167642213355774720685513022132501747331059376628215997662055233088164210611564616356243174536760615031340520541881259051278245058883517995483189937217809220486293463617913403532451067722809615489775144293733585730054733790775810820340855377233798051181238431098687234779329404088745601252097402791139395519242165712631158034742570458947176530837309006530886620597396328420235367643467376111659840212091475906271498155246434822027681653026032081166931619715623400029022328029118357515768497442285633873746909498258980054769631691543154756700456623433641278143800039226032253490488151043713223241468083378401521514467493650126197025260732439639105837018341960741087536619648197243230476391728113378890610587755629437755632284197282215000931011586715461924531830678576542919795078177001084705925476994991389160715844736194483971136825025896951759426817999546523518553871124772224909015215013495990330193812634990887698136319900353252146328165347278053959135654710504550725779823624843851025242003392044374906941354034193217152513756967025449113774667741265643294524317208488171004984619803442132422339371793112526866102189496977908277497363799413448592897645448104596269989137111306068737053179462797394883948264720214141464733158966353027001500408841748066208452786365238152631941070363919582101930960834455580111912445348204933869752496920581132113135588841601472352253177593220363418228899218334681670845551253434549502049584915921937020371560167641492334910893945031755145617060789590444507472088925363641205766013558110068090387720021606456419706652381352116620713082255767436102318584609106640263566415402677491830023878932098435142326841176724547198348141471436674081935660152515524474950108914130836543289288152507974897963939896525269723004474203280089643592460546208388258836718070261725752232591554654940874499219833469575367250322521811669855579055982863933494137819686657247149950118630680960690102425976842229610194353945485965283763928697640759790026200384396623174342145280696678240839942617898498056138417014126621766855663566168521414907957327752138587680596014959713614783433625023102245949894208216073987013022163135024317846987704053915512371389602170600978750225921550030332324410759326019975018983201808713167210620826954815898117865091213670233128071992949996365510992569776667461105287096166485724575524213717818678373697430409390637352931660411758658834089672940296217933277109159972981964264362912407186310695850574862449883378886472705793792543440829738486285174221888660360029895566314193562267966531709826668802789793657864576448597814935904946498948879604098034124394712477920628497195324201381858823531734272775043869423964899336196185584530601067897267806471215878039610138104123885874774445207758256571082148440401026588696984100306597538631076910495435842179039375886317463763511918614090930690387768482829507058446607967349900772582596955314613028573919622418901116273163437472487805214567461550861092887756511336887193230827870070754087150382051433691828537553170550192719791528227040398743267190416830992617949723520675952480151489258987270279207420121199119768292780798940383107055737477548222415771526423710914242565363604557244715939934107981027258107408018158554997770194234715055912592522983442829581199162787408267099467302616474756452491684315318284251161681922744398683022075647937633455707566665628255852198459553985619131055131591902718900497992172935494046451286069863572901182705820527599076109279587879936025720902253367592274745115096645561381217596772658712931824620612815911563537697039650019537772875545114864794659819989111063166668299140446604938758025057201732561262048060818681023246777434952428615559848609772684157316373044190384742368755346765291834785793480420357736791560032036559111958133895850685797463480621097269871409485208749146898034518148506988072681186349645067312341271395662105544069418414726161831668179523743467457856116581041894822542064864654521495659267357520970355363055532775955922270178594723761832450126012822108247837305885443585800908546200238033868705105943422584682154989012445655904269040918837156675751113995056257089885507662735875824060503639531673488079856365244894916245324836634463914358859435881346703125190377820680726494071566882297570733882972274031982468913320479940972109951440247829691584180037471258226073172880408761826265987648246650474078156342056651052218639653783273653956192044594952401607390653257990334007371693335621042698120060110980452772818602755789656397593156661737580930127356107621837521914785715642627435991402877378506771881164079789924419505024556636351095741301637075195833238513898933587459516563210733238387597615316247309351952680609252300813051744309328201399165787071085051092887484631351242791751628552229341424402634218563225244201047210969832333124701554875340819230632466301832019986383982241987309091805838542493829202587274094480003808105319829268004165666572589812248629271942961288247746290584049995688692240350449527465804105997309474055911400505525327790889306427475794022396922465646170110070193615534293292537716244439751245015710107024127128911007868111556345339530142037943711674442229437596311943507288121765417813616366537078541529155191381178162420270687307414890017745712052372911343192244734040575862515886250725430657424522872528114867801708027385135384180388491616927111790017885808824107871685212523057902547393157018434510592234400896889635516105262773694794830262724243550102650419426501727762946321496180156142674568713724159941555817516869328818682480155508932291086661995671070234432754250612166753397276774651894722053296452786782395696057599030724029116289940521128589173773254912148524052956574518061563108880479597808901310905363425008012755620448215472916529107392834650153850553506926231551094615992528254554346321243941931011645380593750401420989927518213385819211474134288800898872898524969288496023998850082616981588328435126486599222255430868056097005499295640710482351954127951376912476668470863779216878878720545636906698270528038587999002148027529103662846538509949676757202731005078070562376054515060673982411325795918052468714901365182605269803783044389923373720796011998180619392187457640029673478208846661360946339006538053098497671903951902445780507881551545957195583101040392309164366121996153625568597642653025995170642940080549942954273352979579603208307055203725114361850005735853419434283012088092717914697197271458766696939061393780414431356888132500598240136660864815414989429054891555995574563730627440208815009154532263137503205437696935365030358684461449678730331360927481210822011219492238902993261403336257829606002731920753740866921788939803494812707662532540960213191993866023968041759410258341987394330706849787214333477011008317346557539699508510364593264382738922799283123885549456799985632176102801030232006832412944605190478532278038186113728454892390240937235856387583518912977233229176497258666281525009519622894018764554730029632587901111203788623406404351317176900044069666634890169671467981825657731704825453545257258863807581398560529639349323213432429972820036797469148734362549081408455519530130754112063615639070453639167353316614763385511262422962865506988356646848508652950781728513749120919444247922365949557837338190504441756933449573920739878690879961003769067981675300486969823123995067767753543334951490647081799452039061133418753894242138001778546313539472831815879338666957988334967052391088968704038378101490431410179642549632697122218384699770880549766169596052653852987501176694399839676595732529624607920516574444088303003676220491697120295271778459373761410467009648328901970501131552748999687944038610110174316592190605830176471393944483349847997674230178519889017454812703096663221739674949776184007182887032863130579118619953582459499027513686560182514149507099162609924806662426495285977231835048512335176979503738987322422283105482414193205774627241823951763870085794727558708321229135190004544702788162985287632423409026803066181005294819521286632615743536567639373305988974084700160273999747415224389290251774877300656334233796471604302874602113651484104610463340967279239422472585868306995403984564744126526298567194810538764872273505399307656439590470040884982309134034392100647701174481174860034006426316706881128881142462586548646239817823016962077827531735906003172455661674499546903990236322619346009362100820407028306817775703103338878638727204392060974056990320444971956071477215909375666506897559743650477062006636961002986673356367822379045187332522402023614505102110388851983238400534533463344203241585563781072401181455572940460822944126106328537142984357308480469357924988318893969293621247282144705033679189512454612582150325204657412076079241467191850233800809639008412229043567869092296507365610614936682002655920641604117032201780350669062922160329605939710724346026658320716254272418296777273517457523407634124971600338042561591583327533728039772296442902598005063047858871691754825685062664163140477131964824439488305664506790164602414704416632094318059076085264768656664420614944226566132688825786991282132876669986772826515722018298216893662552718014998018537137060377638488448558629277670011452617611290666454258994986107014520702805487699141135690210244382681862522684774585871707299970031804297703012163328257297379861998710771878548600046301516347054871538939764200465273734772489978741181193766986696357530372627200366207057826262878899704002989178848348829653956929945657034604681780768866085937088944970875822941171589392883374781795225394670126569279547406337437300226922285297824083551892329303886896916401447961454805191849101435082931501231381746331823810352635438321972657774603152250406082083769427701227730887414392996538862451292400300626483292093899791338749042360918931541151471789356129815781838044339199011657504665282039888252551423374495025399512736591654521040961997187649083924732554344385300820977707262731079926871237391129056846502888172607047744726660884535666375943489836063521993266604468168787251855392417549352748694040874634437071083676752687707761202255309360410282249955131350095887560899622069993216411773939605896618968224356507019895825871980731388731136450508206841764981912015303880114118349692437416351822562433098717343809276243725850271381245153633209390930607250673566578547610562439462108644691036001378768747467918945000539664995732386302634317536322948993112869746110342700029478171757089336604882970127118959064402966219685667346682780045777859665879007104625196346418827417100616700181284102798607393552796290305464749646663634951813729793178649109230984996418410183886133551168877399816744332910792623265373036626116215512205464114838523035298852125277603780867474180857657220895939008827951113308176339111941371534045393951290141140479236097259102662405502030387538763819966984769093814739222775564283585071473160090451397702370603752920544919768332747038216319696462098971367978684070758046520191881245487821251056461165110249075161844965598484770365562740581888141030071935135576415877813349405632637617171623248335848497045564098402994502339722897128168670736543102951446704721108632399063601491637054871191462451152652824655862966931968174935214507724517294314250994715132253507033397065932938966722561718024936805115631408766291047268539562860124161032712252290548562451015300284316117896949047078984343038047165532001162093946044011461491724114085852715727083013184537368649746640107758532187465879876445145732263560916972838264579631220794781464653864772616227912811674781615241970189833037890566006947535277194574481817069881279622616208273304191659435243519634304739910807476295548533299803885527537534432356528484349160110900751873021291906865312582418567690218090872318741716060997096291639195427159009318052279804545074626823395028953128854369783210669395887919468127335462203982588794582862544135757538347075072202401055206600193609933072255021702385569160011299950813861005453969619619877759005019448542913986459641330408302006476895679213944288145321763821969344163587424754326838902959756421244258584847448988380657651205815741382110010230858502856780572285279256720651401518202404458319930107747807993713527365240479300493560155610669518497146527621679910108290172292504513429900859149336735838621573859517265642631910660046390420564345289463590001451560101660049428689643104092961497058839483739687683195844377383032074611882330696004522520904157908742398155604034509885835365572556643161833156485987270388112464413576801779722059553407370681524553486200315680487552209508689386934271987880620825949432369334670109575516979622544294338848982248924765157014734058719294810218203255927035165215271223951955220725937299200868829887772195422017103216734672378436007802407160538511922946984523114513770267788360717868198990016204385000714255550113337782658577203824174870632505357260735489284292007976881139908538237666256454953709982464943323211228253892358479348011662679942190870863124848682933518890343561917411437562463964935792740477540222333487386334332785845487990402183643963952344349887770952121902580265188340099101599246789196832366673160451047784250293193356946163633706999347364405173069539335745224228188204421449012153508155813092856026903570593089908173519686319514276119423264521586833041913815086965278300969472301045942439949066253484979935255227187340974034534380961244947159808585321886718446821941711911291176272319128478179412711495558839924691055462567296732634806826575967417061461617977534763711028609604715531551980816623977140792771392505832674587746698550006112940526083464467023086884461741226430166771425086214572575875296670240674786370627203420610947504930143338137223505732275472164170678352201372436210599017787608271864318521371658688094957511922049618760298038635758889135329529634257203256822766329477379691005542444249500523316371809530727372383475267516151951169894839979504468126540668849006539782442514005642397960857885871279393233734446613375958043977944147341596537768746529881875115609833613821431975543877349359338702080016751154796537252951988302528299587441162074061424702732465354872845161941119680746770504837074996009801608765507673361541532582708541793684879599237920530193444969963697676291964172425662050494862190291893981110763323585487284746521059215895336800665928014716727612279588373716621403799195206888044065258882372828217196570414333581199956191229035180395081706629555750616660402418077132587224454871292236903463479241436145368658400286114576500099958411214740075289990957222467144895645521293449042021023251916185581078260612364635570181505920819476106989816485597715243698331236289234916686231569590448027060628520955878506049220395147596518125099390923898281102258570710750169276781750037025920036221080379912991106892232119222712599887636755532977347363079583545647849435714497019490381256994545721356291357359492563225331182365226461043248852181560281028259040423425082520702569587013005607254595882753053700033377333688825856492252495645603929987886959409684211553431719382792576282905646133030141003388438842680656237782982365132931171132798186338844801985770560431779041692276904214722212945709318901509184522666313024306182635816187301433156071528102275651075249900665215142174502594799168907883965569772166890385957976568676869833350115900150070320367620946695934815830637129682174669935929438030770011325740522380793528099041031923165224042290814500358152620457474922522416808193127504491479844028310076934151257487510440561869952268607323821206895680385695424054419693793835224115058655250210454081521839178174666716724788631725101119130119842203899153868886560769480207396341363394173152200106043034863278810541339668571594512409783229125367437736513914219817062506732899772015415874303323244630144033840080979846043891276667462034320650105100048326138492158298046256949957567471553463243472533973621125334761664050955137347102695901616554593539559805401310057309399545661155111505282395490292748445722420573770482787742514766508321529541767117300730479776244253440835482927863473037344293750743980663789815884354920971623285889020279989543683339565303383492950696288752797516316430567230768547830123160964616222566135593221968481285049528840083093004061043244096211092852393844392422741599189903593893419759216454276742909660607181273529927970639436310401403231181496745512334611406912939604934275791396422774827738247316017187355294581574979984721581288808560366309834134134497126496217350700911339419376845667193375698901796374557910812718663478913515061395454431078411805727356892257708297010746232174443007143012367855455468594937245425574558182847003895605120569592785978120802081227506451406992848157570310332473161375977412659222486581773543846756640817810477527855589053425009717074260244299717552427369106693747464491098223862173832716351605182296167970408920658741991414279597000802222250411773810029675570117048468008074445225298526578933733013936890816213379947895846328272717369307695543494602299612756859961657239975110848211094043323744920889704284717138231930499269177993452606672584308424576172615318391941588061179148395705579456123009215872809911824358400179446665819174569087836398879177436304959726761753893605816875695772635609027612823217986065525796563070423744938213953147711750266592902107447663519223218690697286637828603002101942606308489806207561940873539483677272063496042905030045887694846820781181978237558384251985525646900544355256333926532913236720354955045153053629499154105574914993716717567381223460043105122656490851109432944194842924438146234368013184051747843448007928122719899745574789319951512035800150382802483564066963930517367310362142228127865113985890508970653928287711318624363046597668720123835766974893217989736759861526885146985157153314528986830953483525692113315411148621976634742080487588562832632755143556595323628012114085162932111032708626246653433029027202535934125970919053947645669252938765002353076438644622166843768884778450398577967970658891723282365577732738132996330632131628571996007471244832678358869330443376993316533618235733386549787998907291399033179500684279609198488857092512574778974629398368964119737928130800837047300273882764606999178529575718278536802955113889862776832958103550964443457407323381296510539751949749810889616222407091959730620611186470023615037390377526960042562197609422025997351896044941790221520862435667864209143283461804388928611787631296434773450590831655657477473796901376457745331473338346109331646515682050027657304008693166363067761455312676413350805259295316862484511520895420786753989119640149858706042911611651371396707224090704807988831591760530707837046381621332023328185575706384824405688511296329040659660532231727429062136785417202885431807985073825144366225167313521205416988599415771951440523229164796196431414698242868328869746054867007002987956943068294792200888432796584310234239743776716791203696095246070117241863791943530060919743290348011069668506408263044741980490126939825576970484022952162655211091547986928315004066550056275692087741095640826991455603273594824462886834414318331079944032788114247106190168802316277851810508966204724860148097460691834587404424536760903368883025854233465183412467078080912294814124173278241807433396606429321731778948599219733265864568267409814014132314130258168006831197581404036774176754505722830983515357421896805530089473507457372391094952274215672086476965048301378506676705469555172446600872703219959504327623842588030010162707498030904955592379283102092283056099963057675720081429560930403589761968228292188051221328885163103178408453614984693914811806032653266601542919865255400973168998844784094029056802912622020541279863107173685999838397861792847654133290851554046989773163001539065393189288799670147180522215689610434631755978585851197307968190384093556887835099294664405221639442743075647726598653218539687699049174139892144516384101978485633883109772228832833905363024526326768231328995538146775098752305511110776141248454544262814284549197530116726740301803934206459420683389437620822167283873450448025470077708016650016298394931576640288969766712147502147187194868852379922315369590106461146600420141275505469289482572283881692347839943062124189187070547829044672960081938332812624385247744894881885769555874961865142502996840198035996007167671456894639880317217114376004829090912435544300672181485075975463432921462602580732462072989593100828032020725481272907944796218394128481616735750803836318088347251141243730196736289771798822138658153985604736072549619899948335050977108689263597038801375354104507843554354628194180745832562439065975995797194740991053632010418071290937418537101889248007730476103339023614836001158115150802957962226011004594670767445860095348526095234646464881487585633485211372101782254062644524816848619969183049546344198030968771928673613335157006503319281915563133846871396987945438553747015827412522330919389780151404087320761610812489681986584325468254487334205280901369521579651949593094287291346469458577698819706271210857298718350017706214404941887368208240042491493486069891868592003292481663317246275277387936486889255249522867207837665332201390382950286017184133039684050511467337658078573087792518658130563800607250175582365679910889580147709945664465275363743389376880751938019419812244538118502653263274854415756258631460793549119347567427979944983943961863003976832612106796814244178214674628711475123482068832534097092905309525876845510011192557197029883812137476211077492961513711508679524886902154273227602192759937188096531949351215934301323553428452102161017416123375509664071144303335588229701618699374562058823402919094531329587742380314778380919651948029864707875193660568931621865234788269782871421492614996694307689781208533736468480375997709509374856066686122315069856600403246340200198117001235484741605775222948918404039864162542926953291042651675844669364225537100066108790836674312696173431773201028197633717156365245740869626072936337429777877933031397720827345996227321749578159843904470277133215101935784474477623744962243006723083145305822504585840930833372433777790043127404155518082660130265709037824035621786618881186341416763881005684291868620813428363575602052398110122175310976881886649191955010400819218463910424045427928713753404490440074794675320979599572142298687372410104205170001589101358581250307661507169235203573507205073516703801509865177800518713229799897581343286162605774618153612602797619330936130134663515810288321831413836755344464597631382316622819168207599621353555474535985516899378669025691757511986024278211630825175408330329624414849563372565267917858489792186871025829328109446413517031843983792436213460533268361705345251440185645429555997809961300052549767183316327892032786097412744253943336036397772119964632142510726517857963618407541311616779216671228399893530791190910152369337273954625221546884188873880838114531594345045982141382550068214583531799131995964096560151844454019085211557616903889998430411282283462318217900095341100037501466724432347672446105196246975978840903778614122373642671927736224969253871400171171655393069751034392322481068572493109120997789250804346515721728188762136158436884189919422941744479858748412323350928927787910118469713816627117700146403290357739020930381746416689662086982870247884614263326109254844705891079260752469252462482990252317016227145822870648532208641021073956136640832306172920986039821472455259760615277048291093472709822784038396926986703018145348820082656079695399673168485483827593419738459783820448703369389007876685734305926395779146193139593214797188225791953336184330716244586286250476540826674640948054117559524326302242124941430515132212809000605555021208073560933751211753405348552999800893394956978482800586943461336728031131838969300294136818353487337161099439517570258344253794687303734842671794573170754393178226843792997219913556297350481527375626424212210423327801021808450110652892907752365533951546490068256347013307951758274093804215889125318053800103820270367514485965188612634062827463819751005093382088304104428307211701965932839021407099059766767313740636061273695467540345130533797724721387710594629248605104486301762542246788405002301490055611714223953197572361927439390454434409439698298996257410865537140060306354307629553275928521420769816199674289032470718675586806469124773512554259524304994228541048172885352856843047370446657329279950548084727432040640629977660779186950027238005574665291372291042940717184760437720503284635024951590129472210921431030752669239250921976406108828532325400174786277455607953569822868693561497919351891302915766940386908219533419475856881675809165998232508879907781234482342222567745075852592161098519644565656424952072857825898111752062712224360876247221281424756441645219535074582755516373066663189060681744260984944898602166565306052163934016436068894656857506602311975885782878795980097567137578464418521553963673659130609504195900479562529027649107090100777607937958752575416657476981975064929278421358331824842236752221030101188972733081721922317925405599286882363338125334004885908062081997574232464971313899226365254103197340535558736794605252831126258311625828821049243070696862428275825393248698998031562273549074151367078228270312353884699128016790956878236035759500558579067566882031934047563459430719838459505633874430263933163709331980309858591702008490531053804212881494769905997687275334348102761068258769191890563738002985058288749071191174698813970283753814718412104405026123494575091606058755485485000964059295958308162530823989339886250290576196987664421545974193657510704660743453216260901566146641020631813963594094723399159581513311765995292481543518869518821328031137023238173895849270849070284597559721200979077615866986067871884460774157628155059749330681425534124297984741408604587278652249579318511547438255036583161893264348248678108836478872150455917606296228604755868223944042712122878935489366186318386930269699600843550838587247593391711860115978800493193550247636175469369703762327347131898812256865971591120295001479413941684062660658533506179522275938048404977361590759289233153407890147092568968459093706929773938982803823305852859427195138416071105389939657038496611045697619118221692606456394458583818483406491751729854383827713418919207394492934875601115443510228108247952075511548797690073696701493137022470378981657112198747872392106797208900132231463695159507355539103566940207014306702357606092601225425562941869630652995961991606597664469226741934419376410611629051436586647228252587996345112280150523170889658376899945413137081785743100203535251765019350319420264348408761357385379097324402266129537556454097195181928915943695523868301142751194755324775776655652266969202909972127309725129446890184021132930373366657875895453614952462391611894254447775487078946629390068748436244728605681844730753471962920048288215909965076334771975002018653716386835868465313633634981030049865320066002943601738840884685678632133750007014731870363487274466166111865842137384578944293069747045448908717606554627728175089831862433983917682408464090459065908941818780089854018815725858010310127019524567911702578783215796594555887363464617654602633019375076641514185062296577851488829139635729359520803326262356635423714610942022959720604678209943947246861232643695673404315930927696876406831878102915813085867052434654504555925232546589249660328961700817655433597369882637656032928669583831749793440404428920456219172617046826358036282624607014833253933847982364877143339123752712682578956672310853242890757048104862614181919014440569330370566684848046134619749920166769731455500545584688120822171870242961342174959417393585613266918753895274416269998515413307690683544883256405007917634099414808924113969940177352017254707745732226706275721888465877604581953680206913000775504577558105743240200712321761440607649940408440939556807615389503950213791038641281172160376399265925875358089565370358528411393883655318043115418182843158981059107785881170903780386901866043818711556075704686637631000206742918820009720603788479314704478077454781945588342231209644174541563305482786297019640795624962581412400276756950135612669818079260726818925236740773985521402881294374404406879388964602361350377577982336064465002046247534417067973116344996468410780054130969431784653873084655218960654467333545953249333922608649042404221566497992010932065787176745902936780583296694231382596378502381079053010300228529450897080791475772330696744247287339835544746564641023215267064391516419939532929715780684984535490997167026367004840692214187488861987451966838697666546343261640818741807162197371460951810892157182695401027733889174336066097053961092056069190389445048619643163764551485661978048431886124741953476709612564398733189762698497282104925291674799592455158513230835391413529494639259151111965940501592734446217239287659024745150043527591806161354740794594751551023741138025320760437394894827510270754868010119344835954185580934168643451431153023014130403498063750449418211387162315035518520402485348652643565617721936312335357078289919594602964594118229889724927723797343489307311683136764441849064053770858352699227629797226911202352710889422663458790700700674934795900471341380216034161707368801093342984292241256128609322327505365009423071980544344806660575223362084595129534737958143268633868427339374971384779799129005871764594911246851094813273557356376179370657556489760709814561131976774018231710360409140847220376465190070156609361726950395445721270870029304900531028712355572514786010676695622770299994161139650957144589670958366573611808932774526627091454101584918571709295729040566654388787566431008586093850829262577357799299745501326006510789676644667221421549131981566960473153509881708933909600320095091927442004233093633934933006835866015488150212540566994323710601467038691180336274319157324913947250889780769721709458252964187934864383482957446871241808742425213203712260335244233601833342511944472482704281443518300374092271748571408913896118722474747344532826432283034977362613953953909093615096749047737312959981776693260666745863082308977482376549067667374604768386299963863247304803227805127722594859807910102516392406070342528887835002634445312721487650363019008760457546952115671895830083380515027146029918608874904368036644593119104875916751250253194234685663366298426107338145071967302510567830113319575984405893082103169083343335038711720313872961165508263556047774872395214374940459700343395897227867078130815790915598840587540592237898655060210454484830680063836417125547885576066156170494380887218429584391753253267863219715713369090809305810162975167180905002464169224257176443801053492480042254164874933155226739229547226267143973434576965297595850655687366841295184611631107291431145330049455431692762367932151669995355321839570447038357016591196236551165586185780243120027269614776863794831633094884965581948337078122949007303895218799108480701164787694065318402759400556403522174098157953076362077560532680096963212830146129502680996738552560155056659562340879404478694286048410371197781306682155606977553907737631839165203021765195318223758832302220868387889660584192392251447487529418209748070218277443517132609120338399571437438239733027779176000009363200158449125372113636715613920990821383670254869836218734729214257471406001759260999637760433820094706182317543294037771723749124327616264558905248464541868372487584258828718792744006107521146727104453884254316289180275264104035621031743420989937569797359776565143346621124646273590579669796691141862729558873097559255321229373876502037320868134529789189978204008722827853416594932193003515452195116336359377383317512221045302839822691503053320956508299387662879659736734176394680635580625912306493777409475321186149162440959657630029302169909437519186414100084520590002390510429126246104611016846642013881251110774110205295253402655253614500355910564944786616852205351524542258239330075383962473218359859074409392614178395604828814115320612803058232156729606935161684680007339953859210202418986412302362196328384935731279165029576974900239152348747363951210817476082332826090108546677236121439258372626095513668671460798635116865487856170418514215712300462549478039878870617530883924858839600377987612681367974324300055682396165926968129924773380273472793789181313603767803028386928985006504520280330623352995060529776950333498640641598116523560218925258758177378429568512055878477850441151433407202693711186440193195985396241547239531192525728472511098073830619147148846705586596303499858739732599736650980586086823793444458488029288611369031587641913861480425070007881951913901546539780298353733765373749353872807772006352480257342128163108566661509470963639805265716799103916583871516810099956526334235760244261956830269198488699645238458183638548304437634670641001304980917400018127040669074915473786285028393458158710083044227412738327481523086334163378793971800911574130972981659304433722420221701339509903106592397156516186923754073721442126335012049449354525967141463409072284698242193956069908059057323615957582086136649964057373783527590839542678484656116037101459490572851968577550538618621555689885665179997129908931370032323438403866231577247270648451715563921755979274974419451353729867757821988406560215716243392649061453280651950619342136945457395541915992280255711492446423680745545259230344801166700870156279726734165342712614167494858046037566601809314115148529523929066279311952700363975297527952348726888642167156392808929678197289694852019494217593072750406412738853686273085418079339890349099368100428178493395493720699151245983224761488811785386542671671935569554331019966837834155792385205044055331218875203634872383994408020613330834630372218892411227375093598853901347883401359544522561803382665086226500852333594725149465981479310611373646461525738837052621212266356771338594720449525038612182032225062555202589000295739844808818566589558941935148022521966403264213636219259235350340614705498379447739329335529129460258584190751948961099242917134059271087746158314926010885267938689635195711041508844268826482203579597876497433831643714671396060481515434715397551729920932057295943319454642426026690571296801828782480525297807563966835034231979426195732770952250627646171235795398383418263549321222087046139222148075116160590170318688102286922999811552031676075344497949681496663333026124943348162461404481948538529610503446023946277955774930364105027179884603217850411001471377581700147893592872525305700771862204055594335845235342146315290325886565588422725087589184825988928329317882171291570052631251862104136188702168913440910559821144347089360023514376357636281904826976387992924574826675966730953856832125056078979749489138736950817683519613199155088566990378870422120171956977571140267750260452275255394714918166845316899794705874798189206017508588904805193896914632883995375849439040339382021172825252365211989925361962887742830153457805963156704645469107611793915051293575438198480277468434643293238512528994172827253098614218748394759499436222092486953644916202207604208242164893051531524802461210191980097609130607899841816394792252769955232438994977805073143277315776184413627626522606356545901928383097599989046103428465985740501095928721398332040938315108291669740400254533023342284947164672287294187382727474871750992355594002400496921905574376268334164629008753682135122299043352983742899077866291458820655072196818964992083598668913458826407729706578815690315437550821587939974428894161146099710867881886628176668699085444476556985314702345678654856611952713579837283941921731792612428155160905571211470667926308689523395099318095409960648477186752371985249154853683125367458486711194023659037029465366872082420334990967329352382441962025246420748005529385254935368381025153362068864090556531121411971669169828498795555015741019145874733566535489089180790332856979942658067434833052533638683436292633262734004195127322674236922880995778999060809931597891562717835745616749120441747071521301370305722554636472537812963211600895337614617787182822372875021348646478573457814750882521853732706423004091340540335173090780667161940954552791827533415398377710241950933705317391476319124502186712555026899181606330934515076562863171593538426399149048739597832696287525347114167720292607437782353763446984832802699981287829779897692428241742328942466454794649456963166193229874581093405400263997029869570201324170533028743340474962287140639930043920626233730744828930489631099864344881909731694347814342529468107354586914994523055560074103806833108524161432359095741334078228104402861810393092167131657131346300813740350652080571124540614806209767747246412745085210330469458622148464286707632807513235483675374774659316057799713781464634034372103377563090642512263171613989272885497985061741251197127663902611325930266494988384323233711996510248216060477814474584833665884145763946482852385643079278777106064156116798832870087901067545522252908862331582989519415165399970154161560906138197842877299568530733193919924674383968163945527901241908280797799952178751878996253854902190595374874419092699558582728925536733619981815289854663825839565575612340659897642291433366871939937162152844317158027123399158410622518296176565179342339986808199815623009866506595526889051052777347165101076980288951197933579599950807495358933769103095604097002436564725973144552564742593142664462467299485948303567370424571157639499698660292709534716517995851132497804067180199142563380593856349298715405543690065633913777772849903534915142637509824065096776340822812161676566476573138406184030116515281710475488435518588820522446477699739657302880884003291389711002684742953043832040149322398113658690567519784925985218148466447788322986975403192778414169982455025611475351123681222985616833065670853678427577043894857334672438488652187822085973508516941525991279499805516211995841668253739811713958498179043459732126925530210227093052809301649450700264073765283018705311059394359461723878624543337577193920788240237593008344653560250264614637347942177227500446684898279457340524537899408629138747630122240621294291028085080783938081037996225470630817988418486766302078541179324175628559373995713705781366372539931968610219299232803601932947638107918047650893665667007133719279292398739968840957096723871889355144972680485046053513375550526241176318741811283044198411926032467702952045423085437430027353792128557967389300939070455979663055923463489115456560189373768766191665367593131718785827906760112760633106985247584449323269806565151185079951244117130230020494787346081092638481039188364624519948008737792325546753870414809953911040633454245058696381054402140177542248289382733939761202162001512438642885824334847551972139001883633732413414034609175744844928542084787324487592080268420239981446725567802958312373102480865713334880944462344163023435623749733666469573304521512598274605738389504663922273246070912144507021167513011891233161375219876297582025386853237475365885573789418863777844991873054174832007301875498386910397481262616061986044403277584074633772912785648887174521713268144955140110795663555170122074871213599782087655084310992755439563624068298296467697577579912754242460034853774252842297362736647828629058051783771534830314558529180164600535625954934044986359792867425903947047615805227065484411774664421451266598179949863509280748874045287978293536384137859656653053313172082435817286352356119523460799553377529824729527840733968992374200261796542658174276223572804102015093583714887079783274131386253619991888021969412002857494397995633726286962591433137653312746795639206009503685567188508348179301180639616454758175614062474279934485299889149933927131632593741726942130131182724139079045873565570284301410716477771182354375737060566507418748232249951288672172290642078726606901517221580174758958082432180879177166177931421394811773968262325939795053473519662122184912139262645600841148238309703713643889344190637125002226872488270256501418263772825823230997244888522039481178353547851302887303830377917084825686151827280841219498803074672044981615313893096722397934146226356057762641436019252456961320253970225171174542329400179666687586654541536554503694614230765058677492956982399221676414297958856828686000813995656866010480554275446676252058159392643008482691763611970457561404199909074249750412548287662830450052374668320619525522654840801805400778349408145806109385927143915979233469094981076024342193489213974756136103909215912830074950106712678434891449264967062766576998587086652759758822726515416755944260942012502261704189017810181252442284507583405713675612243913761985354207282513215454419598661844163948708877445162889183724974880714017701814547442009657301316541490150886579990233672849212264109744017789792319653120961797070835421352799701006240255887984580815502159867388129457342782663964802318229652835887617616621795107588991760466905889332271572929342787119900424832760231611144294508574788357142356611890943673386143940045276537026319935938576917712144523365495768079951798415739967855805975937511913292148762143629384113936006087287151466226609434116433036588352109222046379652424557671396263097393913385220001538863253273500868843654239428610050588726588802589770127309587235257686479343525151254002921875818394878811276797335494023581597215248218861127541836119732804787405264075083185487759678921782029524508575759001681216060581987641449800356800931849131572696172017056139164264858281139107139607531237578680724420066322194635050201183168678588921354741230618455543897962654518908362351971256813469279979006305414193052486372532752520779647932687812784603756113447949377270406926007581834059334947534811561283590816201357352956687478370395862316585825195692584188907007910818704576777907261810251340136124048187340776333526925750369659457659623456045348325065731360642162606049210623432562471176225103672934702820166605763216512965763304014715113912837694178843545705116477852564734464612211026448535122697669626303825206329013093308235431619682293168995285298848125132685930339018963887720097995523532801194574273862773814785241036567488022349824046183990633352336861778456314128287791538096652451522051383861288276447052118875913729982003975240115202055567086455963315039938506821545233777138299902501899876348161178124920647404348474056224551069794142838614902485757773959900805053287514655720174284473889651854149413650754007070232816227698612203254220683847563725090402288075449813583004203512568476699663446212068526204743322644212973632962805192508730624703913376197433522263337041096576675459299474236543625500350055721183937164968744554536230765641342960357624577168500944432950548418657061488992894513302351774429729147075530070497000536512001065526846871821537751454330957470652618615070966317797032865140475926690074703301553632800570103583712798692583805797495351141489052813330698191573133023424284904150597558820092941985928712039356544820970075095788327819475587685635956863392062986739444350496931674752326359789661412042429496621285467150477698820790323196557487823598324035356026693642504321267539612960494850196962838484284930163668997216004454576771193545309386196548971932692491729332356251891790922309105508582322824016390958091175221924077697937984208962647599016048465537263805476356771795189581214083995439699555524152729556530469669332152791179544832698614127432732248366794848528349814030388754785044624958685362839031126497508638113558824380957896774532004204132333122797092331238899958466315746544526893350339735211467241276641815215773943443601401776319302315087765789379385670680049438426151849498008068247169599125607080735999176208145684503176110094218326179982672079198567630145271484512102986256623376570710169500838246644816252864733080684660478597397757611180552887380259028403355788717193297844947539653847586854063603932103870326678371743523829051252591919150071943104513314214642665857852051084730696354487409280368361728025165404839683220430714124643080515432138647462852095700750119193707522822938180677246667703535259633428159450794327887695898430252708459072784544961459059042751440858147730888568403340742142997190918492507295110899437847187547729702137714906936109073672349476347635143498560171559484121863812230135486038724547829838667878556502754135325069853355570737803039091296838694946724116665225411164841101942552021800706200426037507335832440933849095788395030751686221213768890619853402208458572940751300198260145590666298620229530145017916338140451509739250050800890350173894964772812757490790269970332789935757050494581789209888238230407521405192169341566408299110768914825893935791710398897510368519478869048539459673834799599770867403809112688745575390479112529944100275399571665842369869543672071185684503179049565610192059085025066624744554343280598757753041954678270290590879513193993894391173799585659810868001444912762725757166200532997411575828230951511866147476408234620800032986786052775946780681540636571891916582460279682223936653107194609239755154363535386709948775524028196922882561850685386116295478261691487340638135428538692293527068960414684083020231831080841730173644216798140706861067210224854290955990414754367236290702249518750536947675270033806228120313747920057913206817255074743119814307751684838026563746195076701876331046472365112231722484398507455949519743668633161066383916574956134052408401305708603770705489148472985988078364627221064787225190879910102761861075854810140739826970662466047714074669372734704782843450716380408812047279086320357725764165314996429625644557920181870500398284267493803733035469471423668754767117456295975189117830318532896147544173999875961246506422023258539497033036343045182070609737105171075392721327029620422102198929481986522586269253308381533348296613301715116800066850827254998668102996248839420698084852237094040266163726418301181338641646658721774492302577286433106000563990878295591532098380865999288686750891075908195586861396534841973897977229388288948756360848622280305410461926025134010955304795287253039436588684750259869996924931286082968770408407810164237388739740510295439949668803375835635437109449409302488552903007752150412090133641521007342381731102359740343121824166294566801023242812916996121655096900444973748247959221076762438113605304712353275532674675041944088873053641529979768562205777873258574762204053971821027982495418065749387214472135492624527852161417371412477347592203665521459910767557972782159042570016743404273171794239737701355188237615964330287443386746969810597276831672491603432863649348462081106566480497994161526564446010926261833877419222416274427641653774776008189905868247495966696089609976243990506719141202536118452748197497866409442711873757168332360380408613410994454872613578320798655430049523498079014691812751802186410482193807961567503698165871295837079092521923643289888943939340144893098418243257930922686845216947472245419603087406750903669266727087903246868628197206600638367350921611675092333450864464930883818763132676253427068211658594899860551731187565497756552063075654078937765219410280246606184248988301309731934559434717791219461413668663828345475810756879122325457928466205284316164418842460466187347905896240342676551601631686157784453302279831307283082282458083295999134379523776008194312646419743326591142753899987641739316645162195655886686095621084776523691346900724920481357586994408637035814817424445701346077464657563212416666558320525005396373656638208884992461324774389269916768400184779522758837615942686263861525236980360452028459862836691591212347649633122607337825424983563436707646381865923666970937604648930942863616085339367016077201081263305005837079776895690488814429918381139940416090688753499487780712032562235074079268729353418328562432974734524072408732830248425945798859158387378139313270539116362656735776464765298576531415070827163424869889755273836625646367584113233256810766282306375823463417460072044427286828805121896334293006414644574038468430962999600883118383424601874534929440167899025580488661122545713252730306799960669419875664780075875463416761881703970940890324567892261466492678558392413504500866031808685475130255990210573939639820394276184332047977904908082842444579895429213431876520606362582002752286385516031428359712466033759123487240076549253297518879955470306209504890630849230954495493647310917783865222148343694465746879050731222764829408803758659702302239668130532770915482839774982339257857821111033279866178916527691257707768212375702043406829321611843890993882148809415410882883357558615346175230861593661524472421920206515033806409069113597530543322675419401966717935743043954651114725776439922657687530768527911868767571094291760164979346427572529874581252850933237759058456802197553472737793584501015661946110852057633873691649133878878645284847409341878869445519538297712151523951602677156816541024602743392824623150623872046087605985096060660924950923402809062673150494522224548609837785421045337294116308916311989509309714932113302159964025416382291636095072281547239780442597047318015549844323803413930914907819443981838698438895746339861986268229502550535003559990931153687036282008269720542299844790907997852669752602768023981047356462966130074507086250657633991746467221221447547103873601995636916423706879899544770438977271708357217859731440196107326827183441986620391114759356609019055858674144040010608859703649544441032813996577272550825344994814173827042369462717791095522958710817910092432958658018471654261227849049280311034237372076664157169303129182775446300405137243072720863248889690982108417807917507648828712728726684538680935998309466280614125192544749918245900192831491986277986324648456165147073228600796643623231832503767448663577114905175276132092527938065204386510572695621186508984760139891424521087374694924361584420255458734795955255398461673440473811592326943133378538095946244967290014333949392250213313967753591327281673902330188492889450714594652585516515940813196417519028232976272584034739127377287342010193030101220488523199556258932075344240067930648984021876123818654074156810111605376612214791597878098980868151906301185541595185801677264214614798396301726857801995138573225914296144804227840587906704381807032100975577145875503491708912248954927025850626396972884120505853444166659043599415932991589312974904882686518092909006639928336579376040178991235905394414684596884595521772619970163575048207529809221301948362407540112448296854084148180990059940871915271224660822768955948628684558061662092342526146439967078043805708802039437264445889048603329887263884147905665460951508629451801911363462895826651185789330264542689404522721735905114267639619982990472635215296845936947406293028375718144791968184333425396033498348338633040177010029579287225876060961473560454781075778885591941830362111278290433756810305794368304164880048142493534315092419218053671907563729340864293412205615026417020325609064790969481354748704024897788696546178598257704893414763445457637699083010230947779357214564099180491811782197732305879091134346609259306026024193216565525371063894047803962526979187790484373410518750591340143465234052432812100121042838871643911142399751098218028398718040077380550823456254153123870360343089813314639199364274184409420716227563728646319737521652616018406093705479109214765543358743668538277989272966684420172989555860390146774228871700351709140020570861744253032224260679813342090530662919659989945073162766704080904341091202761260987829828163425650796112404193252580260587585329269811652298293110189804748244474791902164006404072908528145618729395067210617927199040401184697111766483971088282035744589175252413375081092036212569460440753317524936139111922599739274384414300178423361858095488816060228399347005379535379248526124267413431518767687794259486277434609157110508290191892203304286741587000788025932206116809149211237665160687326799126901054576200386291091643209203359936493612435861863473488275243752508664704224963594025735726144741162563278582845561391597632460994905220674026048381773004355853240258126820265848780213672902087722365309083537670471795717863493826544454281943234634388550952425724276615014955313755287722092258706317416108866250851217438880722035564762864091871671040843181817877067367657104745086900778487182193926507646973267697922223680181401644186622550273497417709565834070244000170759244916369962975244835752076103454377062821255220019076341685110936136206369417150036364083741522600387912299452774971886450452731129083072449101793977250087272099225407858244508211022394475990553653703665522797637752476692971407001758751362028250459926686855046940510029634828915326053190370473801943170271944350570298671967959439682728786988683496171967214025133747588134957725163564450483011198249046939840145407880900884702438098706690478510945724350970874687371833625433245619897446739713483412148512451263926639362973579529530311730016824560578130291264423809355472794649321109328278526812831260975862645655024961592363186749043443772590246114192249634679849346188098230247569319401527272238631504970710120039797261022647216386110064595267942467208042168009781759772729766691726235652163911364398632229105112014751244996746290292809998434504775813520820669252679595267644529312433609990511809700252973280950376068865971710022449943982346773069539536968476095789566746033531654396792860860673970573859079210976886565831298377843491648174990805624562782500328469541878045495390838425856130960367229896581780033035358762354725864848160996048936997333849701399157882482343679746761961949901615868082142380810883974237877314798528637440384352528412365425209578815870299039367147787702754463024004050855506189334376801740048711181679378368574894630854117286086276420180538203069359222493127062236709017203518141610307744999666199236597380684031495704317320109621003337319406325600854145063904448144799496419352577054398278915669761878811157882110129946369534168865207893142793872726441548136114823783384015887627850074357902909111799420151539975161429065944917282056926445033275100134414430433684828532436200733121560806618161672949493927295943776332336853479974869232671887175806775952441856314369050734775543733701379776264122941407501831868480021099374705157252367288086063759280051668237484807246811347388535932933538381088827333250079293590934721401998071193331590886365649633059333768601617153084015026420068413011468646136989023975323309922330461909197747950436092426995124576850657737699434645275145278859821882520408932643254176215820483788722861198434365613158135697882439614050914159708722925501332075927866601214096286864362039710407852338622685549359471361893371125071392827581040157690085102329016342435485625331163871563875050745324158626880507718115694248573553849735283968182353307536016601988937430891576062230871245968039655364747567459339816137290638447229597664823216692526229949196730831463816269228670455655579261325793005367425699218523147777564215751850263286132921573766787035080196964924590225133713260425082052747035625765537877411483314377727024260492272970615408551479518489421612275432717882217321380016103785288362515705121467286103537347066283893677814399704802987732284473209830577590256707646002141530306515450746108702438654000186384736014155831618635469738830481448613211485977814579256046764328971854213663279720105571438299331326717774787422503136107782222344323246778815245495829495553780193093770421373364871817647116451985705009702256182762677067312720234249848596918750016026823267513504177087046718505950243295528744016412923393659372553955507678453607934222602070256961952463025158968508580995426669181975361206732737368195992119498324602830085775413787084512336310206464138160641130037599047970056307652961094477406249691620323501486578449780172639498134849796046087133295344695695472536108016777818625545586409251282735045255314710869822527207104973086412103214332577834641483935518734901772618113070960576788102007313859037891769987165197288734237794941093373790601143530690466520564231132809109042538864038207288538161578208323366607725496563791593417872684020007277593427783662810083060255754534770007793328088344665874388949995085439066931613594508544109717472835486381880562519655801159437317533753903407787229790001621817104993616070937228189905261166568975944841055381335081248278345709827052883792682985567328681920131788678857018689025915085789313349926697611213084454614210113778140771827832946630586159848465410953010534509777197484881636725673961178574801526776194265817321078832751101700015053324566350544497582718407182840097261585362214411437904795480650823201422425375076616571438958100141125870109463572082311359742697407550175485233296705417608212748029708700381942252440887168529817810301216203467995124662103884324318484550527028361883327230392395207468767494432696961235293019756126605305091309459242067667290199580301867733891175081367381398233404385445702422501218873597805515599335209069232164196919076415504068035949933786620279031796302763152448300918470603953723469267206461645010224893953178203716669688881172467078223289337802028327905752704744077327875282371889621995358538636982920445543379508748922568753579479985122249993945199659044512744968508357620969951623530852352099831428528719522989586413880582764862202068562824357372631163869038538638589652466996126283706348321157649091299725003881186621434062932320847224741096144040282809940009621337951537926017092829481485345448155901600522347384734015314652161839137890651551765149345282973608209431595308162722635464070483247196243016468961664771482712608145538849367203413713918728353272938738406124243513671397685233339830572009836675968856682775209598307212188866908394135386549253663706274430095717189143553376030575667254489036740441837284177562054225045822743507780902530822114267894429168859762855794871535414953205454216567356326970251239976583667938132774660587076872693737405081050763749517829755264400400574300098418661611833530471484734805304400736010213732889559850756989175167618472421695112359839095762290063395200763873436384379077537312216628112878757254323090002078283645331005876384279565718987193672508419730367517977344965545579646069655904031865986697828093411068390058392509286516266095521926626117822636257967535751801613297913586014125611356242091223449620312518199938248659078262197024303804957052588807739672143154903432364816274926394099708629885270254970868962238716926833438827629912123131533672947832724077447235556387062702803058219605305445085449149765700217305780538357728672144662424445985664824304466441237933828898040903729270364432605378816946567250936952366680486597429074405536836962783398749751998581222878010932676120165482555867896817263814650136820806096324585239852828212022175189108618616159149308818529982030304568332754878503382628042666860475284029405968620423855178622634211965571514932699948511719773514829131086868216031955627346050435757423785368301117606575136602326456013943659497701464690825633114620604419120268316701402187860682246290210783650876151363885105651717637885641289042150137747203976208885172918749176147232832063730736761636843411286386332536418000817254400555877621752234071391466621535419274231538095164107835196644085577030290186834695313781205800582316563174024753524901149090092262934164634698096307477128840770938309736731520140375494802058672967247248879306284293610403767123670073658975433725960328726107748862216103305118465983730562570646488074852085993705509995421912195072857397379687528719637694961369711380203732503633186919878422442363485702807027197618869847266899661926592067071570463318261425487523978121939561541390348185223472540241220085605044776440417311365930109317085530865644987292214126066676055979423865078176349340389401355322588904365868741890166733452917743727928217891782058253662824085457401262725934946609702521556087628303133092438228123379844876498874120542894395451514528859151075325413879189512773016184187523892329915345767492593382763665710869056436557006273837123512114842319170082287171304179586139093444819306920030926949246780574827369058821106820126385552802325253436610219727367898157930409227710561669916168269115031464085400663770226901822012215574427872899335597084802713629860000182521022263438702268444906590579932329451942292921974530156070206094438419368105366576922192522171834211969803947816343118922734995223632969736773537576148339800253844819640321952566477710042946571410851504531581235318641167330387964592519600796960701000513066850925521411894545810225650296980272080452555047802132000550736536001449058120810890961533022531009491284309288561547437211241999138892980872096980602978841966202840933663049102817055868748799393037412964027403390902241519208710525836051143067136534715034444461145634996668383455525301389426756082542649110392622804515893275012882719974733056869328086048908406563927002354996730462951932160130684026451165726690212830394266186597773826915658516887756128967825316357121068849792209303362105968261306785005171604871765028243164369962659821222537473016086712307204763321766869651218498383787365681547469109145648173968631581290671866341140348076682587327901164579919393879202178748099828586818075113314832725376491424902010437334566232788334052331490934272357001814553719957437516034168671795047747156699724578049896821794256072688931494242668072115380894102786441171734079885484448325225387208727983296612647965684001964993877581486321496983623034402823441041208983736934109108825290175743699521818322385482223412357548227482458403316448044491667996002791933493797630356715872482518482022377593915856239136542895010035493892434924566049110266927551213628053330839792184817033486146464383170050846074789913341140384831408200767001999001852871396630489877157054398707551763771023793306835187286248984704128323557391348917304395568597655005433521664763186689248743401832034156720738627319736646101043148520494982098841761607018778311420173120062270734977565854061862833970759324277522446920143820011197693969213701739213527311588838966211141769770076347948321352115763296334791658559774212066854337989210171485871878415239626325610394681443664311425725335638051501910706526374466031986559218082987866315560078761981329942348348625812080772382351591998436070507255762853579761774247233639711214198768477026287021938296045834870338082694620043459158752059517689372772239398642771334545950197710131040824031720462622785519780706857272991029265389439170141572827654491240231426301233598081724620103612040420748417622295025099492535464658750079812374278862925418750710955949996416195479743480182224568190359760970479775100926058463799155162224322132345336284290111852904282745261631850944702474980713225654281734126641672879336912309055651560579847555988615925041325815634826981318417020797124294702787667441239230970622297502133313549741158619882901610686600890284991104827820999233174010033691592512882973524994758572341064493165019262946942683644639323850235225520718412161009726812454534765574484615658887261142114797336967044103329937312907464337223789549144394232479499442622481436265169188390977123071314522635794500855761689263602337500402132798064776882501197243918499326740656064074458323515960260227294634316182614051179092693225638878743502416393810054298126351147230539226570632144364591432525789099664228914303319722237695392390964568688765932015403191237763769675335877417947803646097476805253668367457467989868308201543533190606575453463942051909107238695738477041833532050731678179028186471018350292856221770013612333197350665364352393108500251521143915916047582741344117165248159691046163171293055350014387000198644033439927619779858819472926853956264921899939187951872449345401577721871422014479037993034261929677635263328255211221692721754117119881319532817844412003102717923258923506705654806952919571740495716080788994583168090528994731801759332390620096735636941141056407588887293238665971854775991219581532646832040803067760421354648171080557836881275205342409394562925474060745167121501418995203806742958046731722321655354050587155069604018158179164286200586412239728031344843142006371677020102712174835944969558750186165807734697885405370087208546118978441932940782481823039941799961215601479651981071219244990449064404557287561903518895681011189674975857933176877722148178037879667068808162733192336517455578703876071783461382813017821003578995014661434447245365297506282587560870739457805650765252736619626612980193216739293103944190386880525819426348746670164254855590124940042910540860759550757693137335473326045151870106911611356196481608802704244202435605843811229045649864868305230302749445193178816041898210594415245962528763510267463091770874714150743506771892569387381245783880179032179375358751788693001484544108200565687000035561551904121545314383776943066871486492017102025467587113451498570753846903590881224669044218966444754474939663373324579606701473196381931659297938909149222753109476067513044060677261371386727837047190377331036927104204014988302786840054586920489933918102127513202395700357397858578100002275163898251198064163825399358259743764960865669196230918637637172781361957564033879557039310910974897957780578716608271102406113770571272533763028149350059352283277623551706713133370848689976426620498644440830570892365231640137103497361140875278334281943984902509462082830302900203322363051369745485022504044381164240768069165486524905758788355222899239286361757956338281966864140978903566468951043070015425617630675080693974798341909054661488298217575121273149285913451412893421837261402205033892015044395757138846008118988296926899568592497599175520647273207738906018579730232729004588183561404967457649453550787928984098399521680233550408227863448742163772231635165510292873037961246937421891317597588083993785708655839099319306592716424816976842405299560509730957415400697564190868654060316424709452527298237548638695502312030221516025928674922201211876039507889328584083597352499334314152283662851781180276971968437355834674390213847594494289857065644106810579302038688089631613647120382990225547052359297892912634550789088419548675408111350011480557330264661902035425155618202970335955923198840208329709953481622899618461474741696338358956016372998151630970911422651900332585489287993088746184003664754049402385849475985795277819656517722811252008570863615056718247400088725844018836275496607430041941463061292737575146656469960804475366040260659338585403791288297330823742418448958885615572858009595416513173674092439576935999102879220084172383617891315437460233143272344849251725770337346189866727193352897759515914026154566467021222610129869857395960146924827581401920675769794145647213579032151946089239183222367415191591293247757072247948413704649317894708435736893046155101589669950506615112529381927632674802365513122271063706714134800630568896331607154754519651516563057755729151151493938581950853074760677326730849394066227022739430169831925464025437208123226345182159885713281697215944380897895857422387511124808397749083849800175505948884014177231978562249525968117436888082430792043506628844390697369709891219025551703903015712927340938921620330207196995041341067090611944927277951961892939032130140815939186600479813261369400444914946380701960365222498885769419343281542167143257807020591852068898770363978917689924096874740131955365942163312017796051740978362217358818697398572121213327695438701520271873826571152438954745881956924279337892557108741011820197973401193934043256703829397705191354068737477513589969575617427228153613144669991610151990548216020513879461402693982424192296342691591936999572820237781170568984408630759386540875432621592172453730182367608971666718135002276475313628539011124756447153168562445950109904292679312204845272401041944343838005228379060059964682294488009275056460829029875500115988075691524684890077801120921027835677111664170981421449071085634094708619912710518500415518133767346256857189874699997359567420344416811244169875240281174499570792729131850142195439729465410832592685150096812689116355659974618074037199764574899343066915880792204179094263033613998723989544815865560487064299464796326645747589247600651065576774104039567228384092958934857611011520848113404813650212512802762512674377831045936899754805998370845941508931600835974416470445204573575711379420412053321395122065968605481012143442873706224501000535084760534953474153603371981475207686671836273744735399214565601257955075215490464673396418196863293657591153867397398987620760054723463441560635262351417834548163691268540016902793005380736033446261253188506440222458213236425909716214125642088645185640313909044591226745485830382825593660322107273468543469347762923240528439015399011089443876794556649360340689368826168049315920872590078259399148726981883391439274630977278941501667083607558882345078133533756442895988520059510222955127143230100842523539007991058882187554301369650238462834032530081911227963725628594419373850953452568489213414182913882091657908733174526374317484444641634948784189228700505407351315752070202231577226645323778466930375691021783505464424363684709142213477210522401420425326331669503587282160280726804199871893875918448367851849820116914444148360364868365669120691897234537124478402578586696935499148464131960771269749370467616348712564594904638678554968931293735987602877189352393088871322371956218257991805320203189959747986775467025981510460102906545813516592539962321371547734332065510851097359273096043224742176600505818371055491920635605678507140659936832512336245648228033640826900657026377890562941571277323483915833527801551721520121819022370210540551618836498673222369588507849497117641644894631548161603928882211076019233812205459446176272416293667063928772793472887222868733899846047485112236930240950026695803520976706137283784132496163900436432871438178303086077892510248151353089379856009964705518279014154796095409313363315900561746194105346767077228269137317358532073808035719300135796936125706074628892006511256810361298748767875128907677894822352061822667934746724121997182598115827907398108307720267246077226078399853903620639526119023233250133710002292964916458234054146360831941835092818381734379341837484778598209983070050550235422447091675988536912609067899105177006382495751485350055873059327988868162221203950171644344221288870923158780936229835687469933096079214292402369221851816791499222509851491825565579990077975540700307332093389013545256579760212024061079163393821419076068933091049396486844676145580791487610606536045726277794842214623649500191786814104278598279114079848968372281998578793534721549567957869916191050037509485347641417394977479162550697088364849422874752478510863405295651301600283791024307813871686365860298522882854528989249917363700074600547266613055051954711838537327249384463101541481495153258627159109830198985784156771767298916476775503224239373422999193961201778652055906517989987254108581521384324273560158855620801850758092797248329923754705448941255523584430911428230555710281144236360950905571635056486922906704564309918719588778438491581213679026986956360262208508963569122588855876451736929603582838648903427287978219118800030460233471367727746687564598839936738815371558610650922258117586745335491737424991592872290236511569912112607156054534559466384710073001058271221003261205421337307659432067121747787004368745167198068976813659205596634448327575994666273687154910175332232536381959279381389859800476539194440239795197345363646640582473196109856928641366314594778849400729607661913455646497361208511575742677751298178390751028710668404672109206207258308522003777568587898680984010728494326914317352627599867808333714023434453267672340078972775371692728984175807974255777220702798726223379603680902012338192256215298212466839056725675312009110115068530707705332753242152750431459600172935376499862457820147683990679205537994566431428619582763025065515959827639734747320836697227184330540670437659918366989530199257589261075779170361142239401002482315124715380402578805128729143093114634891884253951364600616993855553819828807739306540600528622296387025168040742010834124936278855456378496512791117564216818262873974062289882730116203966510954695656908575178968966272490841865840496835645892839566078536188529241510062862470090634052810684886108992802708049654666071809229387100663350512961024370866840088299727674230006022727891650940414344113454905810565313804005835584888239912602237950451822801887385391591777084935103959501411040716985706740297175867972121553581246819500052443235525750790406834083612382841548941458923959152785538636153663533094203107998167145971559210631612520461820386270979317379476226256451775303635423590432697128325807731053412733944411913556219623376260665475109157111531641594564205937519292498852089694423491283170614291834764760638114647975699130047377456020090796930594903946286655475209058773761154930882350677912698092006569013005579981464106894365145631293281389887277430533001533976645546181284234664865978674648470172482866102771685996894108146290800603171387963047691423022476041885730772760657020571760760529045405468346131011547301651457172315881539052613409881313908061240910799423377293735705228732716353383403226256326138764285352379311144807711154022855261306592080992400723502434133232116612743256731625251736778126086857730153220650047684341066267680246876227503278740246148829429417050725959995683261106011590449080529926001504519172458229680618505033122263342475237739343099728649766463341489349493686003968287602360516002766942317932620026679398426126009669964329019379934250133025439259870122990743546500712379788978258877965867812431948932281574551465716215733186055371850279917091470693797443304322211345375467872593380066524329447104544456033753319145458961431269356741879829568995219586765628202502847821959212828078693664303304945494538291633800480880154690568089452188620298678319238189163482941792451527885336427172479650542345599353532139110752603075717639856858960712405746645794287937321744791742755281342016124121376766271180109111588496653809034668686028335453628555012823919105761360510525603297582609733920989099914679737625585882010924203621440817223356377899523588281812119635326438855762431074556648596538898477523671394990697323631063161458173541558141088983892993292883508598408698606883774625399879334667567650563074951921935128710545683471038379450916852560426829323819736408235750053243458415591285743210830367943066148635156174015339009433609029014361617098794766567515312778544365888285350129158648188577522863284103039007879489901267644187859761605608756618303055880550832634782428465917663584019950773297932701376131229631901685980233909838065432624074618917343321062591534920238260297898034595002661727676759976624919339830269447266216403648088950618182809399352803257022002486059127733464486478772829295592057024841795052319425581901747099504747544904029656568182047448439817842386364077177921720206328377759746841263040764080325661058723932571493322249528306190667432690750839171434018256214355970685927646008505732632305153527992576260056944321030938929582156334929703617564873827453597546268127669711600816425846264763796567673686127819429401284509644629925978266476219940567414787156993575940250784765663463100122872600185449236110067712611304078624766630686224888420056768359980063344390113347271653037917508289214358758852305785898926839056019654551403060558099646972449955189916100761631466755062375493606831091018283506640327996571055059732152787571000998450989603302442652392592932432617831610971554335413644556129027994642366042270557764268992717228238612611251839456019927993206276502430008350355073409451222336975588067626878637540870943678093558114254841692335547701639260746544080000512773854807043916862106817100627620346425737953700694768227674408366756452656254339642352450369039404255795199824284491318935987225755208500824576594968110176943938651700755927488467298755221473211231887030966411459983548170476114404371681539559616595673030497733471293815444738420987520940120001497741384319551834922980186502525429979119864692843828299311471716088970813559500321494699753878601674167616372923212836115935714793555640675543220290974179268905134197239632179346940210911361796069454282671873027912622976107755229145360546574291450142194508542763037339999102649272604210323198786061721719345168533753388402896283159335986502373732154091386941903536188148208488003705853428018625258303230394882578469899354367062718519756870509009168708785318489575435677592687131030921888185692306731229104972177160089251403757537630595353194154477841471767522187504773290875302971697268492275287882372354919152548239877868224774591191307714135033196824489586367148316562820648805121666548244525726286763730551779713750519031290615514115507123384006969355200353073588366659875110340843607837944779801205297010188037011879009266445878483736570351469524460618979447671785843597902610206653477945688173988706019974981270199945460605770131452051563972194675382474184217506591212742924914552290201601602252954003452533066432577459577925840252564857180812522272074841596730569100911194073548804226644405901672629306075729188946822507503961264377503581457697817450524793354721772669283336396713014687158904557421495648104170507210423290089079332743563925657220734931472900473173377397077572977398160665842968925331343485895191289319246929868390770501159462162723848446447141345119027088226665345702986637600873740859579867023010665413279278093409007438234020055794914869631694762501272496512702023595981607622112041351987400717251074321773835080534799633166238026542079267746305510768180258230552527225642440876922232416365121016840681562918867957818908087857124973489720416428026008770581891107255932721343269469070334037587309624734479531389064298677888509669295262802889646501442031220433580021501471536511463443800847212629133773171306110553379282497110801962605614463361299228686411211676471289523670385053489464688692430972802305369772312191934410383297384267558359209095708368647620610718966690604275236392356550335370064374002258961388070554145974169889801319198310330361513612301355624906527797135083276737903375588667226906231308323563778438291729644218431091495390714118895874852470690658570354042038974760798934749485425224368082870686307685887678463574592737759511025030273451615849068278702440025859262235078324081955654546612987723822822351809240785348751384420084756172014710994702911078986048256528108272070557845200274998171458582523601949920875412432184207641515218395456496572316933063330757567080576344759834571696702087105800111736412255352127429550132217310698238639526743770284643355752085792790221614107011493287581237668008419170394420980132787295279380720144350756318809838001659943410994921581253808928871515985902289503474039650914886540750831599756559262922510460091011292226558587280766884628337591172565992543323044922765591891737863318196371072442874044303878131492256441969341515874063141440801363909959740349894625456146548553832342690332799026968127472360052431189220876837306346391264362105183940523820262222521283824492685910249531921566030357861848421857256899615102006500442496299167659312975099621537688379070348256440573242987005102840906610859923963724712442228156840917622308267864819668177118431742578306323034555872875368628605484025691059392482938609151538386439635430682082466623228982881852813901013931788062432401954672178073521874261927303664065170846735341615351728221835702128968885428969886055885324096260543302279462325537060472701541004792659128408203288431372500746562827784321033863126847188220824106191114859030518848544024364469180710423791874804202249504429753490558687915938322249331612363684566684739634475723856219396359762761240338313172635516639917631948446403869956142289236540966780913693841542209140371949684441628937518014556840769292172333249002551704920182043590434540223118335330743725356295952669140740990740920858821535779478687189292545714037192002512606631131136262143085698583110862531763032131223767533582211633196977852550867818346961116918523969593323791954603164705993637895685456699969196322474992564452901279918266638225738088106111254703372651652880962044540335744346863979781100026430914649351657980022481968621673513415810051423978667191779797316969753108781287456186994320375690442751479198305892286972717995052201523421945325291201395474516483610431389545195555089945460317105315807712956774518457824102366555482298789420038688191136800695544603216802136413524936485775632197231275448524681425703377459422932029738000100843926864163757968292135357803924598313150678935579034248789931141694308332256992657465625340847923033427512100621785198202897663526042719826064291071896005121101117185295673786210247322301509513771650602852877776752590066608789549977095402954482460354597156096085788633322171075777074986304458052446965152901113434688439721913577896929476366346342283657628246559058654163779628471127265438337834011360471184209720458636831394172063626079887824080940715303659449587450900146197287795773264629578675931364913227099519584922551828937420955861418443579914133598865387017424799283609378664842235330091865948438660273243248392842232680179008472223731114227860253522580831828578700635953127430224299471751309908909789287504199557165739489898025188208801637082854706647803988290652271834491232558528397258881774741695965791385203163005613996334860804682749886194810786512623004674883198086905004423436083503370435492265925240925992002923252128715373637676644807747340107796564740874161813485858083662572397792734167278871507300776863769705677195359125869120323405176303060354575282293841803711099835319284216796371300509317584417993962723757995451708783849682031348983144434090231034573135460531366918075855295952381146617472704797772983488355359871386126107106737271395758434076000854896456352146768029180182469273723827866858970802819609067243453244928865272835073099656466743524011097507916602950295130485551026864146989338979650387639734192345238041698944059143981185426350552960475748241751570242955137340816369128536043214620433209255259720539834654720323799287327658968605846290219142232752568236655423571236631100678895768840407736210606960845581945292543158738571341805672281720651265049776355389294947461602794276275567367629037243187910312195427331424930889108393914941685937473087165782453486069205625679078648759943148278572252962867219565566741199704662614455520058102754499349499428976093688691995995476601701549115635071175511991066675638242519138377196469232522335959527433736102938338486096363698621433245454588782476017312317083056063130150092219935448485212294918111543314646291047274830562423051940522631408390411800438529457349067026437681050628861739229996738847958672867069402293213370104193845295276946660482949699783363156437725541965806106823274447433658668631823035353377923294484794017717136938993968453364731832925505830884384666570139004712603284120918481853647963835832100581509995169406133490808609374469782066763593672957589407589057949927892181772737719573641556410498629022058844808907261908149229034078056056760008321908309794269643145048072034223254915377656554667872418723916132592346327353956449226352286028254323020684112806659146233870068448275371414423141116955577268122580482614088797546953840583057761001128576737934156048323711028810134547196798246898501107156342084243190090573180331699388564860854921759037831618552089784789896894729594122104847101118949720235877394235276205562565449051526446894736562764904789249411448467097863717448947262161521909388260273758540610313425847095800411038078764571352822663452690325278339676555035765142873907988149518820448910693467457163137549567665250599346521281444736491329112107244482498182412431134096246626513914815337508110020487207142191558276988546489041172798176416952057094915620227091401521151534787999354213137133191623847909602489130802954458776164803911141628518976077859505893794928703959893389010392243545332905878857278615471664799570553085546733509709139798345197525412127181792868606052456814452144749524978526901760375519203046201666129057469127927072584191105480767174455672720004917992443491050491998590655472449625466786799559021998068543223669555118981416619911024098234195878524327856250390746250441960551401064152403888902696843596657607863527430845109114727622200651751316139451855139820775284262992548987269871859288971781244534939068726683042580679239088074176004261028108512918529669164090311232911297242307676811298310904016806129922359303281532182991419879292697897111787721129559329155773981086707334026682281901014455450879602493978574225086252861826235389317233263322255398432735667541490678489778308841615880036900078143252219496235141834344175028723249063857548269877091145282355701881606051549618002130093932339684695598300479447804421289284299679503021539788187545939022015610497878110099780488386357978778014792061379012592328606208596273555684030285861059144979610719768893832479464105857667202281799045085183892957900271785654143930080028359827838896497920065717360108622813459323774211818371276420568291991953266706309147716976573245103471782492961736812569103441581936649012535684610858834771185588920548041377097825319746508922484550005199274061534129615311503349705854212090836383080438133252055663732245893845907152212492163026410669167360611069395250344730181773147867769563781086191490615395834417300704982825518268346284981635529444666907732423829705062859729125719785171811323827995922752219308009000375606052072254518992518639724567458057110695743122732171460446380321593643478224336930027631727810336446568642736078294606411969313723091436192619231436595980053551162194104340958856171761766958024202241861632156602200071152484915491538732396110442399022757091181600918592937377495104921079989498553336261107836966793638480047152690862963224523113147982543755918901734953031440921544862635397941392967260689308242381860588434916257347989932368113260599777248944593177909532031448935885076692185612804479558036758215406852710200743083602522312056738109843587180955775196426043536936886803589356785887836464509998069056750978074722005494993765178567721071378784073115592218531870328875978476886957329535247433045797533882679585951265289138501585708426409679000456396156798785331139853738317532630598783889702750550631091479515203034030140261055844006824648853424056578712984163900893689390137837838377356582379996130572505930617005187135961200005565297505816792534870017124703211879536569465830177719766939050266211646066128588248561276636516064642754746770649932712639379452350767461836246744945449846095047300392305635155089955233319262966994515874758319368436846604884901278627249397941593842717371483483931502753951396032962540715525869836080514521886299411840015352931010268490322686443762875690918359177598739971602330073123683865739232878496059060048979707663719780287311022717280998623776422977373489055598043304580431477440288290987391610664321850877414620578224199824446264706021936826980133847280912390147128972118465359140821288848550755391136356876309155355625685146589217404501185187582128356366578278700493235398479266114833451986222501490862347713078525928387208241783850331106770421067982158829321271086184908679379084393438796708812198802709178629218707451141755467513827142227400367654565125343530289536213878647990385079733423586389906628350198787156955686307426605845370565339652322657980336111525958685469074056687617185793944746318461531861473520381653684150179919906344941629815585509621480111827061500210038204713219368514712825451173530732526807250407221280344064530339223882157429313574619175045900236443996995382379311713822101101156075710316195570146247732985277351877181518614133530626861812683718132884785494433910149907571114585242106891452248018691091280165936741658226240916665777145941547503357624256365254551214058244045500588714090462816139564371885705412213811079123404107670272745911368459957814033983907524086761343007289952152560864848652237263625671770987348205595393520921559952676712037875498932485173699137822146092173673575797648599947168537609542067032529371659474011293220360821252682106853249868322590207553430239131942967967664507654688499768260476947709988849454532991268588758528272472666052462269278690291686948381935958295318041958813796449480330800602874048497611973032206713978343169858573823507689534290318210085594751481641824512318302326734751748001059298675379098290849931309630684325291882776468985086066984030779605267996897048926550187055609692554073712780428433664510741106381995182292115941589044838517422386974832507881162919763285398824630062263527935664736848726163155850683468649202744726408472508913833694754002457052346997873247713183091904080275928856055002724415615098520170566323824462289478950444747334462233046744328351904250370309053821076138903824283601955090069824664390567670440522588589626617453613441030771184036417768787759357606758836605408164140395843447810185237923864936961738029124176636538175535032862096703934665741690648162374660472424107910412611174454147489315989443564365080648179600746355262165161801836358582684791135689467397514540169834482310999516791652716025731783322507155370014209619198976760909034462288321214462498355523846928261191506944468047884811153769455405592721715637181238645545781430656721426879309106269197972149495152760648549677126286424113315820797899867331517122376738488832350671446508747216615664038612433484713857157381450969653430659144650311205708901269945226009463558724558611824846660637008487660757954993646121083287157823450387371101813720553193957416532292169479479913649913077007572522927073051017310115495130756511854734133967295055670265397611964920225254503832237710101924875709434018558311950541299188004352637634269704145219974851611689806063806078465137730720293220170433330221243617950057929546259844982090893122586235401711537992013046197119409250580426277787775520288113041482100751916420977680773352597231275966141343474276308053415439538833178751233591646219363380209395222345016425962983473068168152264420505779169679621985544922028246003683456086684835867650948486982993716292023689013477154115105658604890630002063358228143451761713363706946804021210887660981645412792283439762287141060620537420060352848978403531031734222133069182591896247971500968344266381479926150918367031983993607846989777646010834610710928358152077560640520134415159676948030160142516764272473842036463410431990555718595125434489070304512899848138537485574393207122246313990217809505816357282070116454451839911003967866898103281125150861389220102235592767714324494502865664212128970125787627831909998682181797043870292437565681292352804975120514844753147393250658082498283132465114346675844334893567338555164379260200302145093810218758320047761736301203756921338463205257767656514265471368187573800136924935686719611879985253809744202882839321329458935878939869457114843819322035447824601507267339109593338783446004894712613662230889003564223030271891022224186952426794439624839932711328221029657940109788330518718262971479178317232577720518462137284123719636282037217562172701805343378983847479880941799858948372939426602934130382470707974481004954618170369389159244882866576349909776605297492126066333655179106663969728243301074329689683802881778354724971898725846233836433316903812012310821115843472920246810895296850987055566085826168306047568076164120958542386160537035038807480516337273860399979013728509489445055346625541788098949643743059461691781060104990155999848521476207594130871780397302351498141719536421480000898114358585206898472498065470741734761783922028324080959566062752119069150145511738937160381075255714912739603687324776263979878726258427218681780642934578894890391546725582340983199222340511061726480603828856824647260211733915122607357071795243730426526913422669545882569272352834258860407196556629462140865013129179982834276324292165480271851868290663410624598355152307818293762200072288609668340466312265361172108974069530054431990027755177438435870785412217465405783523216011899864679973395931225156150079194492776377776624764927526928636490438114281214146958646062463822455505373580999982835369186938089129200509704720353033909092487048136925121694476195230952994765890321702492704671180281784153706605483960841841158729997818374487981914215746802934413024057199975830778255072312791045188677142817987812308250462339497798750070380664532846431371001474480185543966096374486488857385061927900925444175109578387576155646314321311959279554188098726152415755493643749424124247054533873899480878841266916521234887703107330374794684510757929445468832633822398733811773076109554778389357935011250377096526162909202023521797341318623233796271312632318733639047385926565615744198227780438061520030142434988981575602669375054114358444634900252231786104167873455129501301473849811011549129514471521027287309085706932834863127431136259099953607372259515656697760580572545934969920652958574214866235629987942626059309462380834430391478173010005276508055927552756203542252396845066054820837332571401475490650539198085532049031738360736193615486485955910606571327006970868154359635571342653967169041132976244131605836739541452976479777760092265840531703472239347603932659582335180962304586971047885113058665969550301854944947212096340293311195666056437180479163202976898691297301140212606837056645531734107311954738275043994486380919943682622233506961977403556011118597679536359943290595107773527912166386909573571984373232951973669732273216974074123368000299694952044952787265525869670021462174305660581363270566362898664924136679076537764837105197123432820077858664754132823567573969178971252728317885795564411932221358977114180957270255547418913913316480679006868282019659077521362134932093095341255177687008618740577384253758605344338178416663602273491998764068148340201732905291802135018375410803165637349359632288309436361001294950635415603480253842570483291981425254156068790671979084475260546354856782130993141820457769961680278158681418328987262689477689202822312105617404468600101394934486806820870370897548005137143567515534653602088219522694412058638527820388274921720158682428803730617614591203635060282180691197456433997694112965067343208982384027214169726463382331179595494991408368289093095127731833465306230241398479045435107382734139514498907065364254570126231467325861569063714451545435566220072756528957436097886823845338321454883297451786638170487926793289816969026698910640090586010131370450173136125008143209832378209113313498807564495436051238628176880033355436817185954952424464564768143118729177190486622789271820124518478237785794398941429453571863317667005453910691771751007147375466556578019281684168810563798559148474195008259813010744582033358341872608065984374774086582230274255192190825316314315095170785610445964482314924213305468059392143733555662551052822615112264902656017440971536996093321820594569238604756926415525777573785855276918159424088339353295428846183005225380176622408715256457163934108005364938986431882937518107435231758541341203675529536460079713609845846427136603951710576084137980320561337782373255573608735263017927905760194647184380821104103282906737013364050544956594109220826762762638914119974844300028171081434986411021506969369799907235186332022328435532689472549320452476883650870126219557630854207619695892443675595257010727780375109019482930429315409154517692170921371348807212043016823623277638600076238486165046354558146716882602908631130768034249439259554745289866189938455131811798164539737365883565993610346121806561095514869830510507563729753950289054368111739339008446561358293840471568748544426055375860611504819002610044991067436426771813170398246187771709498019184323074806453013904103135100027917931371441994147440931542434519651239443714956158519769263389646285883059278009261135693365297659013013922446523837739800105232170223174304203542414180753976828995802913603760941472575036905284908076699333440121918782926119362577553771322177745380859380707065561059034581279582383782083120598756301254062539003454109110288089233016962478869139066044939008432771825524513511667881692038190756183863589015657699828158170090851926262363629887541879824181136780324794668873743008252663982022336370640862656518177206352539793351868834537764471575533811187421351587319383350141123352575679478567118340321999412613173975306504793237867848909937054813296347969792352314803498463624095790672483798400491409094975551841970123451967105441163564520871058242224949289458203975202776500543998349788936979924083921083912459693675541939636515275745433876402402104009141656456930591786419857352033019236571004848440475757582616597817671850500705229878456663006379861829820228299148544411284781080768073516039414388702493784042468345733870718515543654898873607843450649285937438877201734980789612039443521687235925659117285703997747462364561638553642418962599884668497428179817793522926083581721057964326333621939516611577183053379833526581225905138536067088156269956829938914635205430587734395763224641016985819965277304238809378232950566719840874245571808341425056617787606501671846268575827250141876821914682146835813937613747896320614440064654457135657547744379020463413503963564910451933954512740739994341409070913990852289610943994508925663734038459273850793899995708845737040521451948846465857896484062353664650829404414410475956666615654889083800586350971340307499423367118740279585580739455713563177420344088200502829930682612214568139588115242939406934217590135585578050858434412205537103485442345194412954745769831137298434069612484811913646987971119290898028271928194149580697665802925666990325453129808667638666119323839362007036194677874096992612692647737631957244282721298810019183361898602251371939968259416338808217313845062759084072229068065981587780042008774617508788476034493091849301819691905848611357560302985855822362903464132599476618232405984896798678505839237828602759088107882585785855658131925707708393807275576264869720320536232562624539527972345481690486941086874990748535155679098698831173872547345953696633310747779732738130148073315082475209167085504425424204600109994017457014438144690643425073194641734429309398083591409365487000451912767844357283018418862995704189255889593364500012783888690225051020732793775510692045346504978465456156328078289561288785381488855709441947517567527039069903872630721868615411176970148590932633564422335768200614750295368430947757988523327256850633085991687207848502553176963151431625054871919240702990816873488188000478546814126813609636504810057662880037651738126273684017794699822342851806751712843955197041532208130696545909326328652139398030062024867551563390926643032178352383292869591495748690437096664728960268431888849203986926624341055935935745252447510382876997739449661968709194553593756747204588552464729483757947668496280952412387712709198333407669240889207262968855470803774001120478409533337982028613403981576987526218259748829133709255829184374927313237847350213529585469666557747432717735962852613367192102277040361146992293967428207005814006156750706009358700212271956684514045448042046727937299224667718093032849612011156462468969485608378687889452019276067902912237481217214305723284064021647523045167990523231623891228686078455107641535113953454664255431756711241780206444738015120875803190094115636319369149081261874543186381113198000085431606252554558663178524317096740879047557705839389218086196078120261359023550272937678746798723533613604736179375238114925415511115740086239952314549031742984467339393683912177401501369317034747696358548351076914770271312842617569152167020892103354762965586057431134024579627520945156972221269223354381619420598970077351933958586913188743123564972715730338498330857111737135896219981095107410611961360711090023387884216108647774809791198638837035612237724903031737573981739755783848493892890568169545526675703225246794667876923281697878180739879587740086252657323121729757972856440437196662687602769210594213082076696106138676368413978367697226925312462568949861178117173053941151897693396358230090746005468474769189970534821365055059243636881316630975859348218439685559163241886234383838842212641689327949537255132054414023928167502228273193519734127431160504184497591566701749462516591945441780528994452339323907950963642633566713455357699612603268003214674692081466272272254885118186960019727744097533619771036055119574062025854024223469009085708865751076736894236488235707688286342050230526501357303500641859018688014440736514840672818966472062491058913258245103879561621162435484163622658586209323030960280443191378200342171620122438793592882083678993640794923860316603092762305078297242848654333831238923021145792439256053038385029545393728923088904325066802903216562937366796909550394912682106260411121988896226346663605622262067510614138806431343371088347044113984991220318473795615725162890810228431511330246909415885090607670296231629389936550214204279930509348416764157293089803273884710058007639069802325068935615715346256533683414261411562047470278809682075219345961078780679935603026439784486462749358913789116482270525232571015371149200271760094824973113299810481126481280541682768208912059258978049991476872074014985261788307665304154950961176678862822384584645682196448136431642535291028192794818219408212153900828617740561146554613388325426137283106810553698663919650322327819971790993359787887748773355271051092072048431088216680001856535489727097151576151409425809449597500812783375128356936547472043541438335377678415826707424365666914224455159764043676979602385322620279660701184871143248558465776078051800622843146448259974512811687990237672743100595082189447750670141401135954046254234780656848380078429168209902528733976274515188402492936666550645307392069065520943963051290979916626000400522849391704676491413703663946710735745301571496510068154108900303283998849873732708054668300505976008924611480704736684286504925594409582933001916321002281083806494750921771515097620779014668035712878526967790630759117440296218788867110148539040814673264654647299643103714264404084705647053878549678277996173984998217326138025558592123409201058644015264522904730715896433572891734120863937032903761129000214098823553798990807322413591097911231132492112722916936100546853568318152741082133731574443807021950051042429756351357301952557356009712272678025287626640208445810786913917310186483797854923826476444126652131905951230479091924167061502552389748806066777041069022761835068109643186142432841061892813782801988326698353448551138484429814714157986441557319700536055071820723983326988513060890757539960194933948291273643272772865821829395302766493961367794188090975488645504277965435409506733396591081770334807163418656913726829275899400340468491878943898054640254022945339399802797762146707956848423999265141909493793778689166569575087233441615476394624317541072014112938870385669137119232495307410521284011482130023310374826328260587532740614953514165042875811714433322944390744342825323745947887372697587979064124204287605399758334361724610038500681922641443516691149687238238884393216903882819530029009224847256253027628110678848215205594403954763410591049747019769580486307040545979624846186213322126400039630321869019695874368982247878332216609680787236287623848413965186169480200849282212930646327708762733974232091387499856784282731569501051416082683543054942774100916468594269741408436086120451080932420281508209119430220619126914405590086119019879170680353142165574094882556188919524463397133169870259189777595701221967860004939247609837207280922080719810556479178009634400865904680076996852473976848373854242961023520232827690967314482538452206517926445149008728076799135614568996895011798013253209349334143563873486899993106974132288072213330265025835336204388972774111640910391358118641969941643535208315489355745049576382906131721488570356457615861208102416810969023898699404507411566441861326092897412010738018518625447168914645805822509557817955688652099217579324837468746909838652188270229255257022746469110806340908756208386861633131066160536224170654144808640377577169528108021504695783996477437366924346051605622511741375565767130598749201125234486796842749234668413893516116058202239052231629479916709846185529959306894309267643476040817840029127901570027745482644101796350857589472485044407492683838013669715339190314318202689811931664805226850300042219998374285374162464970227577308711277075993660697648901723824229562008564471234004094689197614415566090331995583889863060609720033911826847086813983899307205482357257440999034199632503115660936452158219179452196629503523992145876222073981267288233334191265795452816072880581800146845580525691343159613980965684330676317301447949917656159482766876232680992087941445094709687018022678932004720665931498379932281025449207344217583322146574522479444223527973146298216963846881485759779835709455428405747250899684942814901868298660469931039679177072099249856827147224683998464269600328851829910276627058569825580833697029038818966493302567342885791888358335046473962888974639522109148939815930744014496359424208731042620572738563335982952366057793939917901977672227492568770526807613518606431567459233031240806189099585215567275530523336343125951571319111498632706488047665043364965348385428448256223952222353966437518830857491838706623709197793205037768959361471174393779269753699181626472259904603436370163533245624626148209350873287581029062125752761219033894570485626705783894445844406454742385686840121914107450796087201075559207849872163014014101780593091978762180142757472738673553327720599425892884330135077539010299016186751766830738077556153492256774730370875648714978404900358808097290191199341757690758844754287980280593447958495074376853496876443140315560618874158466438360917643485569593469802962005774651921208889856643476415995889401799435089275429031279753514574703088148275104290033971392666562268303537493818168658748637369823651959939107060013597196331416973085735503662351905321147146082215941051101661242107906909726298618287997170647371169529417877853494854027111740268576932359905859726219127564716535130651087898743085579259387751840368965653329309299469682041555912165338137157029092970627818564948694318460313842625403039073140993955155009240004736356485001630652801901240255071974130203856316148838487943515392355086654295459223581894286707888435632568774916687399951386714191648148219751147801702771806813218226015053707617889760944462205734428555094161633852888023239140187210475745638848846633120346057945850782616355147562196766102773441405941411952954422143033433427603187108367186370121217948020178974558521160191294383604003860850524485902430782897671214281155922084738089601186772995612509802344209645117918540994058669558825022603770468618289680795675469539148883843308694537296995161022594334470942644870629968596254272365057158858389801830696614146240100096704916422503522283604366520765580266573576590268519061135426423332475331266344598432413766564910853804451283239874916174821222153119395722606732663069579524927855371285090524440117700228419815598095650265221002319561741685320609502317789583702883342473435560405627843679240038665833318653912624127151888540071995780910795320224936523360838770797067898030930603532464998149451412006913622604355991839067415449900266611456234106842469176338652989265020267594434661107757738352808762205465309279251187408235393290346315708970839585545576921809978923603236322981698952236650647187721726810944329810580296051400462244525180136900235042633910228065816686896483335519427570243074243496634410927810682908661144639936968580416642925398977494005915353073546245534979985818604956181234296178374994609089427115671242636536675610645779972519355818206495669710317654628963537671190515916856535341139513170071738188005994700395661247070429968302402871875358881725787692259332134799410007250274045324448059964489107598348461793338047120470056565717231774255560870996558498529012663756259609838305503175695453974351190929500213572376380664847553750794424145388165253161794037969377421314814341730138593212802039691374420564689506897242826984139937678529498517959476468959779135620119014773887040917569501552188888507919160809314970684221480084254342747791580372498315887196576206780269812896778658695568578601464950531718903600179380728064807957678364880149902380809350102332379782286518064791744334339349339602937578070345925035301444599763287890449420125391524528163113583390674788904479214089457738749259079806124776245208095510782538997727532212277172670188426852810640467818891022827247552913633000149489064845898314553651478039073568116100408014699798841179750853689076708465297210906177027137770349442851937027274841448990810747340591388608820961776269006617202853232995735524582578036962355632658559186042315846463155610785798224614594338311518548971087473565670582387225470679085657283934349285799403711863274329569962225322944164033794258111313504053976339644756906506000195748909505276711213036149994345586322039549644735576595221523993751550229848568448911122626423061363037968441939916671834000047944325870735462136808127886662088736526332338039271764962673408293704502374310564698477353918099904554018300084404982633296648682696629428741878621307490575787528042875173074874413573240248160227920797187378207531079348865212125015235452521864262481332264334558182982292408379952880728351906102362150292796515558034312054001740883288535010672599452821721729370100517050839443021187160210912372096589926171950729913839584219741783391574055843231475507215414655021286514098233265825709910900025124459148712129520330273220951477309795146665575625402131392540845951311630451678505731174897126875762906505580581018704797855882236212990508309773878735693958852115084889610336846152581357681361131892253923455860105379627921994951631359972091916848487102354733916682468863847130910264548368938940416761217269683279892199688261145141689711299729986450061930023619586315646396385693959462575542987293985998834311162163055174845239175644698883094711318487864161537815598359410533222311450544219955359834743309575926907855238273549766464704160446903342844603237474963497370637810089209140403445148422371568077038737630667837673489020817579671919113736216207378814552702386667322301053177944754119039222146934520170115689519465847951819068868343604826516696882332991485649034049559706859521208541210899470197635027270453308374244275632911866651692655316460002287747670293369623240172033230555892206901371629734543085423533901078605958398927304685942941696292208060792303690107780442186003078561632703842751246174823182708406325096330400664072661761959275113333965059395663868791256876526157372317865830033223746403465405148066709425343596138407959628217126264022310724404746904825436831953004212928834876704381783550112382336483664386557461313860037192697647919538611564032150072066070307273209454762234029692636572890130801819932185357389102633563318158124358905723393069312914633258079064034422040826977785121884454153909897165006464574040336503430654487488087918233045029925509919457827339636468427264030240674427610978354453583805670054453820989648417127609413648922941098170100482637615173824344538535500353431190427852233072700235785750896484605322537991659985568840963655083924570617149811082876687899993482070947296327185362462369132495414044668585698741811735314887093902605452872040927045822782634674098717982272846341552897122639447611819755393929851136964516404098018276322975158538069090050052745678119441356272841382844478318644714232999464188766060191337355647884508233796752213976382061663798020701489170523370276382039240717388468636543816350153149389641384224326674294296987853260013320820323420547855087747906116727307684777166167314927718124761161044903767585049679387172485096755053808163877304823941522698912513043350295946627954858257419856243010988749457652572279622859082429795757494585624118871359855806314079562496628740016755524403832685518240667246269581947785451415556129994258454584027482358267542394188228814939105256042002672601439872574436318458517254366232739595101897944764079022646745475884699292688978197969388048500495696642743007821916178506536730688390975491525018786959385015813498054317605497580517076810459421930762360987222066402890555606923832914250958101697701498096051945847464666922822999970646980282915285919932285519917000539943247363343195693674152997054514218957086090109466541695252454029720487950170326374287612076306257956416826460673174273103900830848412522991529081351433289385312879890279303941854509413147198218524563003232971881595751320362367590506299266129203006724825431865195248251595661335826128463989746634173512223914704122280453998573066862813494409422085369545080252478138379228666764030403786928754774647757763800751980011822318564443164958383602808217838763153679757870915417767858507781814223071674160858252898972008247051695721453926483101984229455207773020916652815052489945434728536274020871836507201084494957340096125878792295049733575752778422534248535235018494143067026115829755465143250233314862867341149957609346958236825964436589021981313276530429212714523055974410072683322475102939185110869703888101697012781380982680517319154176485854829866867275586863448456276589082368804175477731366206834141252888764976741806309593799806282684491944877261630343201480413059156049511077378442071434987362619220352928806771915652581148594169649730263707390389748930345791259469531241425426172800707520615781660185690555545077661836223650128451722799242234268411290645752872659499402500844661612121418255044491307860930043252810187048795600523449773073246429757892073387091784396656495277774302551577832239064476260389586643147883218225853843683417204320104683207309602358821497931959101072585212965842543652099579006792774886253600692201936615930793137087334227560545738297312082345674922682578445523158007675791715084119104953102932353919909483600698419243457155594224109476763889944338544526030536103819048084647841849157563284151466647962376297772620100568919584050701087282465808598376797734890684300476564217377424180125253568976078373929915393645646570048653356900807158765747489148287583338520383587388037860510225696930922939323995070726695451860078394256399777366799452422912179673912780868018826285331103647661307238315070648997954080002648995220319529074429715010167595980625490479533329339426042134701023696435371571100601362138103230116991992698254872489922987350394282038655839727558905417893968455900014187441031905492594513889565827024371606947996680961729176826369696868555112665842347994960797743753262440879500315836363050350520316769938681928754015652976361799146226411664343959958128073645924361065882069681523080417138504170734277927417853590023412681208167981561622024949885766674729203946214374707872104771524835490416563020873798171235558911036350801337866869195571766425385775188172011384822434860028223998974829118834853226194378964750360687614982964567549014350201087111599659947312020433977879884698492077747660028390525477514739620433942842625894434013361399378401202239691436037617936081275182793804597150462077685182446138238023780560980112880293644386575826382795980004962283439144473462932428270759110730870792422734268717273863150018596673458186153025147226199922470609400765358785567626792811386316826966067954365043979818430439409885137069787504898911860783232120162998356548289371367351195475004261210955922508922386102332638395214045206336059206129721477979005605695951087140527023562070770420162205968089623563561218848651462617837962792945840561787528077175467621174780046469254709914449348432080638058925563292925560201107294719604690086572611703395385915478634050358230930696679828806437364220961032361662313789992535173559360787885727792583034732196376578736449035726146264191642882259324763731073688964707713399214427252156028560793741009862462930122573819183372539515445337372321231150237126604609397653947798719757083316924083012998244262754624724292109587446202135878570183491030801637329559116479819869552436690696032268782718474369301525691114462465472724572968474632164425095441522130549325844965147405942321365776154586829383823673483177907005094407135480497240195045295103149122983274009728879623185375756130465449859013100632939897791437295875370779987442288350515159632854720333393252089160905589350727262465480694103469524892005156319382504381693559292455128369925006779116476799680324709482832876790466029433315215042342856794588663423559872661630490535956776752425938296787803771768578119186213741897129326570846906325649372284749606426919319079611739575746062067905525577242134256137606198512618470667832691170924154917132871703015399111305000089835674789241757264144123841467830898073864730098176665762842523747267378627472360271592637681719989930565564170898875247554541706338581059349020672630376555759487859186132061863647925596151483565029393623275531562999286344533301244886564692386384913960032471268763976102458556500353319237490467495367898868297754522794557151903343262765488827837995984760834007121930117900334685818369230531127655620035371819569937105824271554157318512663871515054050275238087137875790855848312635322825385106817958986235091543285754515465862045304734419186545180219808860076221624289785302560963208053245952995112530121369543956583291378126419839912357847649177912410735106617058755685529960247970866972918002432867329126086902077671342643989849353853918217231036200289540760364913004816580144003631894282358933152724752999138287421748251797584643934989313633754913806524023110864569782239044061433810780911019739284719197758174621849068402233467077896389857978307803812467250473939510592002988553142983878271970276514111944544165573481090004164284916445708676541894507659336944653892473727643937663136158015456799831227376639892670578645076233854288725833994143444002202621694134244563664048197524448917458357168532240701601607334084699290646289782220458392161512782882585728770044694050389909071453047604320090898742491547660934291957872595741689893287332389753450597172339296655592603670556824172930651085518010270775337435267721751074050825923193280504530961176428398478372444455971994288170299360494023669452694637075011322193254880175881102379255871090687938043395115528320812857125724060574951160686190856553217102267376649303296407647028943150864943120766911193571943699574734697418438119043615594181031732548921238880211079241019580879498932728641105593059483834660066511119936826270785042173484333713605651304245461838388349618222961934890596801793215886644946298348925173847759153564793818377362130700517535319625910112115676359191169097675367870280778352995961185166820214946671018176504748235487351894494593727036297678098647671714953551480018714205699131989869418873109865831254023467569544805733312253982133312865457222371283995481555750985285497855492838224371709941958738684588531299005759912412703199006307575148221316315379563285738949145116620689653406833841426633081960233729804772127093016672772097392093570232522057095592770200691312680667767248455132269110381547392760504669849855455241713075410384877083780456543377816963797198390037242633477058220331264881445519621477816382587890279110383015023330013362546470615152600458744252695772632080958451070749003821581905398410359411659566101353637474476639006288279019781520799469767904182185086730825414863156340849814408135787636232249018884929819474374225106299487688696418178389240265771001440756551767092018757300561061403372688242153148645560848801286330296674262974092308393747414158425796345075842121620676709767455011565814340104984292202218316973392233799368448839897812244501244217211465652290205949431470530076365182895685226296357575943920516763367837290544427040268154019457267044320999425727860428694895101407098519956149374999792607371631756183378380474917978468882134582380345078741803931209923793290437370722103936194673649122856626773432702159428651190322322530544475973794183064816877470704632865184059294866318680631412163019093587278185475277003122791823710373637729410235934501739615552637939193814274340325317613891636261877354430504175272642588058438611021642481724693036711238100958633569423096127429331724758344995859023052355164760218179961621945415442404557213697578831441817665929514134491369900738051066898375084911695176252571311089002261638674387647586064782830842518506979145758602982721617808434416616200753255078806217628760191290778210897553703842924559495855778274537990824131045209796362904085306365214173635778244751977462015851587225497644951888095462801708923868731738768032038108067033040283296650611167102978295406296082246820298397166052359205319476309373126594332745510323426879710956206755710942488401678192815210635131679372510580886948100457172110818736160675891193555480660354812355577142013270348553965992076711796500252836475954644130192279469766233431457233002195071338595627711907883567653659359502450483321918439295301378556353164175478349990897016722848325699921694018409875218113253022758461998124466727930210670577691798413476679542313135232448400696810796781522891606063099145266744803428036376265249644618243844344697504663786035990715895726730459936690221150366337837460403543679043474088086097194203317808581991188256539866639676365845262191568239503784117398634681218094144901907085415584822671858768763147936257753503550530689939842448741538107643596982080422625168399751969715225377119772515342517193123300843247143491439951538764656708423755046536130992698928043368347016034957315466959587833040906265797992895404158198963096797171632665436951143082844814323232750026960778297104344377173501850176426746252197053211492846070606343073856917437659472042936073453569606471349460905338136185270833145546433511665354769756551292690088627656571252247074399420996814675276327895851432474646235931632821659691809151930064778184209081850393496058869719347883292903210710838245910432227332540399954420211110656626291272728690060838028247080984173674531650154789216446363624044076507115907533547974120226339273510626955756616885575121961724141933709224886640619235128294050253803843750439687399980523064615266530804867472248134258286541658402877715681034521779847501180735904699689066459223822314348715920594492009624710968696185111320682038572493810816130346315698332668112745427363921573513469407435894364595297655853527635039128693741134731281058467004306802836207214004262361127634967297466706468135866312340556603939268542181946606578691484681056621704318792332132194283620707716282185138803471688319861608180279943039877814177028589953665401282180992646105955406199211525746903379924435510715756011562371709050718952217215213455868576913052413042367097928404419558411695038683869875733344922939499525374165574444062152596668337636270131336927662767816848520914018329081133443065095121236280081211995680216011244466421541302477540613921509305606867333651102343863437052085511464369233071061671997757550664220601442772540498763335666058633353092287857100536138975608165151510370394152623919326598571336042376131702368936761090454469822665840841000000962554084176984273057625267270976626237241409592540848357051365597671406363693162242849246760264217772676847603290012892333352815383242827180676209089746600896731140555747707644460400304338689561534079403920972267143283614727423692975536204490436505043723209870989638456160972948311786768241521546951953243581402431330524771143795552493669196163209306543893339153936814282321222316546265553922712308619984449572050300598413070096422936096221375545220361225827623969464589470273179270235307430262314313479534199817602013908713017390514037083658102906004631579749407331966492558840097148834690545575191974219204968037113342416825180760979837451120009613648447319940655011647210044297969598049272709715162683539357785092378521874262229980435092342146190423818459074071878036687256629604746506815836712744888839338556809904735742010058963045529122971862045559230976296475906164345395881671798813829681688668671729733952876161507715155944137428848566398761248797051017294238639051320911223293631325034867887282268573658063895571159200233022767989945273771910978120203728244438264146409666466389096959676759416897145760566943028369830882304300803010321800347667978019585858514872636060519980922089279662476872256136888890568187758684159599530887581933781756150166637992592664454389053904217459353002725631107003877248120939113472186355206395927822307785199626442375650497189894592151509748337558554806772603075782855498296032666967890549585167610740137791087855432283550718152062329091345993807670047488901576358642396344679442951562792301226602654389660186414510640022064684906379613810193517944366750269979945073268051890242313541676116458312280595562341821013559575356342846581190020679190594972279597578784555492638592347966547237485282141329631752957319481248011382948069240731046236009010795975493916791879795754932649935353396346552005325296270306820825729816540865393391216675997378412690097950557280871033866637013260216637059916565846737487868052917190184669473692093466866237176559765750010967036387024557756607846785668778447347409816261983042504034423758528279483489432032095795640750614337901690593307505518345251430377146986851526211853242168599477197152472811157566363765666535156672764648617773104406725454432864929684638586391319216480903751956403496105345977692108045973943204995932007376678962363648656806766126573700848594378103682803046401326878458353498174692739494838378930097309182596483300117738686142740550285099404499070548078109260113961121339173439774991409196438648477084770158746880970352520129488115658128709717025532567914462939376188529631090409323324332885863634276652992299860627245113240097529613082376616134901253306948593798332391030301718882269685488746902046643293669217757255680478124467299517466451538019258155757746162460846465267825909769369158235414665448107448551161632779331965080032484136176631775302714695183091072836248868556959464131783993669579225340214078156881663793435611039934421185631070590064370071040939297899623761581445512887284942205792090986929729855183651445847869316737032161867439197646476974645209850823973760299487182037731637656828403645566875499443436379608052838977760623580922501140269396358568985742183674460284983019278730591832062879584182496154658163337727934961644473146188612704304010182512377303789220499409080461018949198182422592578467992880845681341926166459360451000369487633010049808569491584375598822481861801828947489310063270401942435244052194129371163892819099342643399230723398305136220137195282195505858842681013774425854841687524259505215242411557096648699082744590312821031327835800430575438621829041952162482565684867069682490960898422245420619665046232778154270722246838329151480519411295186331511239115639403859590861610881997121385292189819690658935147078158398896455220021798263581893284178126832868195060442774306574141287586839979657710481836285675445392738260825669906473118067183371431753705422137330860959199415579456887958317271812129640985901110042796110564273252885863152323279202810406327777530747008715012670841960184621660358474540554152070912359234774745240305291588055493406538851216855672593684137418801681664584224853894362612488869508766416747557572274257939861117131400514125322042746658087433643006462109165152096846727663574228373006151004485132355024596083372843953450667498922024069466458709497412460458417759287063564783262274726304889952485465421994758826639482525246454984412509586630512917941956772294401543722889947671472456806838822346666375641696978246753530875071449158245474886558785411356711534750547772251578166673202143148427813149993471151370200937246033568756270003200341131550655179586679756111378959068539447036233390978906904707945173256827003863265691704898866365588889103810461595188404619218169705192164622943794151477573092349839880977964697978735517184275728832307437724457715277545364040498422683674999448207100800929565370406457880889632944595955849418083279124249570737336992914172501181505711584674471879613153268771148741495057325666899723838034342018963715639189208948405061415522322326637408423970521191001140425596613909606094788324497980031812154439823818145609234241968566442613742241288292245105440638237281598549805848166047716648100316877925533105622154246737550614633565498984981306600166639118109346681685775338647882276197004069286212428718731416508767992548712193447485835511131656745405437270896210824359222847235086590495234874849011852302692685369331133494845649666021918801587776354016806101502423311171733778958249923708278528926774595374486239871452214423123248911049228388981688339378759449758486409820231112464282987091071880681213628473103579212730434046672484587160454660339689338282416943466532703971042453781861598660967929106237489445091080415112066281542963186388751269128615111151342290498763069544381710349255066174304419629795798861759645137064380302924873773987203568341434423066510774509398649221350592860775895338520485959649520819469651078312787524996962557171520660491769854242324373924299640908380399563172379443461036004671389411409871319704809466645211714987972785513111501741089590656141543305144458020905897880900309524073258404988695240960777720492032779414565553967621197201764691607453358533955131768903460024434910456602392518788582817714555590973745832014641566219561705798950788017941922035621306527030817026332326473007474032287779403760454646428962716717491756066296797445917336326779938275388799693763024571414178596172748132709328475562640334513774708157807488347221762104174480472227821012866765671889930853193499991915305990769301980600289977669924387254467343829053567604465568597397578723511006536868990204001674405978043216057847027389558274087444141794775296890774952579808000184087052324663393030343250443716896409921705909918961091872210273445834979625852256771344425732906992354564643716172349801368812175773441920121483901544428948270300471209737898029410526741216530971131280353187261719225456301151754880654712817129379019128231318290290494761105912696094426676671597086769184394403566304033219352444718364817939596758534072446962714811374433275981678035779465152151076135273687785948856135016970685761944035448822811931556115741787250889399342096369444576794230294108562988152335521896025104120725706050073464258373274150005693869630022086924020299874993480036579073768598204125538567806939851398555182311562782853683105267649573558941113380910922615913738732977871306204087928761365514275567489555049814813676376114998503879754850369745765452003646725141795384245792684660753394405239622050391984180958373023143377445904012832959182004312385331629295873791296749990065225090669516512367096023539066451678617666337917002689719324399584608053316579624268509748994408629642710299531411959348424375562082870568155818011156062404806354009473980175440092284057434603527494722627509149195702586578421591282383258637143700116895837417885047355021333183476776666426496402218312794379813907228307163072312543028915007990554309194612533557812126018297269622888261744068915394809481412091554340026210090046694035291987766830708404623086706291177221156869892193684457555495139881276284256634817406098392817900156433022680513708187090521438682254478326432248368691323876394541907270241505196186878054210483006539618957234393324382373461707997342085075135666890128274144522749864814604995908886550738459943466689308093177651878684703580785056687332819718812059060499458296762728679864236264709413372175632851602460569244771998184175622978347275430986687535354161838728694850859259832252456484982227448630141821836705824001915518683054002744357451650088402978644520327641657010422472404062366541391026876965239102166093411108082476185495423599240330585697510454278088134161705466072514340435130161777659947175501593688475499433973940494154753200957155992921611462119927125580897154921526237125808593988472453171881989419888960627116802543278195234301301956490673278774851339533973304805195456222020732702504848592329885295907793117561618987735149320107226932748099739922576870885229796829564441503004694315491023481302851318419030154856443002862086199220775597663889282905901446186167428942213851485600813608965784534741414702958326260451807558957221121324931411176832323553307205456557543157656826037427730220894568798999870366140401714999245208181683872373128390650482077397507767938684077060951837341865178777833432399708427150344615871789177680691964257903799660560088567994237543921056081341345746332317524393299666390517100267376845022712504564644935512836162935995437010085509644800583395000549714422600110927772167879860009834896203077770107007908104424054164257615513115327476009775357432047603085777483696918990505550266980194755321064512574021137324005179189196193405812288210479655943052749163618406193478954534698369656973996298806435146236065406025580168363971399506994010369519535007319461515973171118008367271976419670889791247807417130290892054556228326967076577485687397397977965267358734343569042025386585999568175814204686394706879729179494852035719981961371464783656411733570036343937956270308283208360409163898695556268854933753578805248593295404062546195399332558399958392527263362666736484513828624342283293449609566460307220511394702637783714913016743752658839372859704624269702042418512290665998249676717131759003413701748027177383799606897462966486741603640033000802709471494733722481066133853086482541023856382387161898677283346453586344200249616333305286965526282086097551091368102182751535843063771792816046994418280035515453813240308592432820526883048046340399430472863051467828329900790528675356735620945961921292890527729988060815771160700964319312822828295631616359880343712698569553754137480707443770097088809264289086785574133161240858878942119817974067230968310194945488343349708166200463911143249135798600608328534010883353084897043050531530197034778446477740062135690800758517973929113228553432726539230911556677526905488858361541307507995413990469331891213197351824830134047107779823764922122776263936179873922032342926820746953726612536716784719607011626381868612225450831706944565336484372303445000880941057926317778372057358114358046108822546399430207832199722488292965303776711481750742100190735964748580679721285345748269362984354321383090218469198763331956031098959157011658223986065763619316089164613490214789601691816815633551100836448133651851789421127324599838827879199617328450950986695940298803521621746007318520764430662135835349928200323201461962613507615317346725674074374141739269564095373574370956020723873707080129181522215482820284586984991233657580295569444771138359658000417982432340298135173032324692895618146274195775101505733828296504610064842315428463795498249708084229068519705877751471069324223802261085090261138265701297505160974738662179539789267047413889304967915668323327826313378846459920464249208357618048737838706212261818768060607150168175318895612097977487549517806096427521319052981109006396109991389029087853901040087422739069663159513534902635175763157376088546245844689418602208093465342070120564133293099613928414958683488772352611880985113778962512987740344282353416574132447536233640706482731039688028319279692905468786025781186560065570660064629079540083641879561651533671725148264940904685881772991035668105431919898730344085033425391837603328534529206873486254838940700624644232180991358628403843768151499057457900110731098608024449858667032204887952679719413511718594183879212945539319501270650355352058299757199397619269742374490999682978732891312406682105263984031733340774269656687752206312596689737677133320705862762988544151569843330782514972664803513375977141665035262219146683759875981432597791879327381259514438688665904295859808698092596830835086767964985709279663766305892490040713614616920035814313363705693667857318752340466861486631815453011026033784235129488095324984322600087509521897334446452358752103256409266285250337477789761355428955235874455189475758177486184598490028986748394216478882411417094926212996039549275743398002182276907342470662914350085189474836234771054229423025930591644342793725389334312989330480833713943995934778955414066096860515390198356788620404819526037021764185676200108536655036301885323705229510126852324928206752392408605669237577375159662464280542365094352344993953096669309869465919671568965540323662785010022210661061984303311723337683449561416228554785174976293497237697500537007591802056577214414494602230185622720987509359808509062255283756267753556920387781998429273078751552386707016303231418652416273547226741875827559914910104166786535978366846547920600456222038820463396895932664043193106234226368388006908490316488544173333879317015132859213994880682592782492882677836295613554557514548969530997060099561200882552335591733937732851449955257682806863332568196211115831567983747420878124704099657920131286789007003055582466576498872493057821035386250462118708739948509496146610600771277852651070577782846658851965656199697078505134296498165949565961117178707073079329790218608720493858259720152937710793317578435445663393977385092152587064623003281829648380894334225411778097941573846618136121328838192305047836634391695358859462732196320239894598722119208086954304102538280880582517293602542113528904234082923006946414381029145970518617653622888642495025668019227299731252493119469747925283439279812205857287193878180011519122798254152974996253275211975076166413067104653623715802058002238472723427299249704853699059349640925058121739587890685048126346118160685152598097461721030563279258769954790739947465227394707735473531667242613553275421829386321985329401921537194022072697873063576959741235109671862306431479674410080590399382232320303595203245425923578142402144841423419379678877140246215997777669553972922713407214834214730501566944365088251426955048182785186482914645381813592872723165277497861769290239516697723894328152565708052663064921387810844528040621908590396714677423600545256130105633277698816422073326630630395292302633798730111367222327320216017943329392435823874277773450333518074197914164006500386905123331400144120149062321884105729008636873568227836128129213976383261081157967663751101289318441023491966065328890941748982069535424127546517877764904870173110545193732459233546913653418372833800061053489209707031385696831649226547171011619047665996503277398753111100107060103593302451116845940150176620850081793266137600102521913704371525796246593391634696567297116897608962741167403943414523873281997208888998720348322337303146674329259709030702245559884632563228137030794009886401111651714836236006858689720647900157536272271809494171607145288833963904209166428637721452292740905809602892282698327537971470332535092722292647618437628589515341407288209873992032928117884062770733417004820878773104918596750327116100746476767952945877273436909304123037594745863865576141031329312290897153087733105229502405972026761608683777563459803173559825258103101200508109532640637927363125009275744590823509038373744494384220685911749304744974336501050664611505491556062554457337398101906999160566714587785451701342877176735188168345085831508771191968931423222024691065714683573849161656772614550783382769645105800885293697195821668381783622973517202013757506136612522866811288493055572461291975479431839600266278959920508060699337080082946824990915876257330953167045619473487191646583174657540677999530273200808979152157312656763910443937148128042283889566924180927596036863972461380571564109018354332559183728321487205521745502416378398267450007136080354835420365950723093642878684747535547068781309797276506199677973310736299762623755677970547317871874476879423460283094994576420808689645290183584077572226388984544984044080930060792547338140779143772567440950195853854514822486193978644077534637028130125412048566098538979944826841791525280465188701328689523919829137890329023619356515814791316153877121380076496742896935432545679822262866308716050555827598156026626377824907001029458202084625532022676355281899882537240492325764604843957258829922941843686004031133242074073753482302867197927834863144200920006760449979115840917443659808893636362709144232854726285095522046556587851737628248266066122444632135413839486323355260670278952872140479532430886574848999157112019788314008419506179293439161628228286922079155140358582393434554195662528391848073660132389374296340561312839933708594605049255102907609168678273571481979064465941159656869984498134594626344273452070932659845304473027816262619859747101065780863261962612242353978040776093432219877325070100628752511850799651989068637514982133950171741831568158938339945590222911948358450062941460566645323699412557408767353356234661524785363871649891067939996860198955496587411876656800233661313535813449619555917056402001022874573710553970010277184641502326853029066314815854050853712591931243837703930070176841619077274537183985597079247643773672228019148500237563091592751554388887575724766726554607247264243007968628546768286221086946688417869825548391868956404990750773023661194307088422476236539174685494977805677567228690062866935028991857573270871620741209440565263346600486589541877172185701009577656791264905055242227009638185805084075022498324374089378413739560272787071421443210058007586968485066422598329041319488502880705886178761067302314352782048849284220964289645407517231057369302413312161598427158223077277891624565452684383521687279683278585042716059578867941939342954117730603938481166105587507764708823406546832892392009411630016731175628492294899220607755924329947354019349271075200946887015626663944092506659032812663773284396322440924052971523296152449345509304640203372121303184357838671709714661933184388506527091502513773285124423154760021835093060959400312159842913047801419182603550734230176890285538199393497575032305996437687141491329701990294492566944462593775261167064458574537849830765525257705953486251679961971132238813825684475556756401547930936744960688065307524859217886328943478655708950007147777235090779261991491902947690704331236360893584801390380317255943654465849739210538853871980245650332814550866938481591965718105761514051717022482890903470404492376477309502072426404498027465341233149280068199404051299903030411198079816106050757822885169964477237411455256882141450889952093585808545129562819077523070626154358669128954455333771329099698975477101079767090807065363722574795832318292619787582981918658924985322390581391746196696227849142343667504057377642018035621630618983273843314374827415128431266788726484731279221738390280809463493454001572046731269981152585882498319140749126350574640357945763967895917258362692980753075797317232485947804250334565814710648449471714797262907879220516359353621280426814946342574161695007707496704068991933398637958411697925598031360982496495536571647265934756991140201744217080103582980817448690132293784150667691479075429375416473958827552015030632450852810250043217001524358612622696119581745596879507195848628533282950978245715445913430003132903779714816264739391967527982163702522049145045382210261534510356123928723206047736719726935913282311550444370550103007879530700551386681386386628836214390222641059549317375350461235889708220209527961928261799249908089253316074777025254847348202294386822162343880737029030227909672391649505557448349411861344452161731152074152350209326156809084518510317837418045771562440309510375032324396408508986793717814915579163649132087274790628182222554776966751522634880314212693757581669102058763914108502338779766112579881020451960369553150616327263629091593684657110619964146312405610646633065760858727327709955614090836962479242453868828918580585432261214990055875907019770645766313138387765480187753671083240334416673928019254882332800278864477188234343353421390971950432495831153571408917337509256132672182481336911030935114654359648245786395943800189695748123581401843113778935149970748921660553568338921134480377076313277676940126701817002093207667655759559263682397262245726708598976488426311266745078952981753589904785706631533537100088110154456825238254549202035471210153450524905944395103806647330765296745913370864186938284017414352637034097403315584792635589363723563886097886324538029406452649081208141097370246402708809195088515202773031028693417055464509686532546330131953140538449257799712439049736552464263059695850314630113331710764768296529797407820868915099678206858155576979684266378125597464569950410081600366666576185100390591433064436447492947247635024118658565061105994992204416153772183793657817695389217547406043612270377033890637097689606740664036001483036823186799622817891822965297025210081031472901938534308171925684174405026943690740974578241122358069480915275741217867580786811547112493405134256339702882648418085042142536689678373120561632129561259066197667576163125489755278635750560943304910602999380902178227053356646263781783597152002803946127663726479707231027616551918130209315053574673106463733242004704883915421504603965862416082457511517401424922270981041661749511135879994694124120238054322849711949374482740634660761034624658791980887196442922034769956917508933482085640218999490859211873907800598472885141896055477481736772092357609584939411932746456280859224470894870285302334981300664415894452729570141352628442664978251794802959179361257712126066565733633564899076870886309967159618091156843193708063249884660971446137200615324201610969671228802590204351661742889401696125488800581401755838253792896939487985244341452051544271667699947785286576031317592787209601426364341499878549417429672632439836178459692944586882207735174606763306877209522254273667029570989503775325344717831977634428879809261080973072751854470533017587897597837969219279022319452383158630484935866980064361953632255603867770262363906443848483304538248034180398948551163754213881329761601302699971126502839234573289301036667480683472444368557754855687454906092995455612233484809516648241858686971757490083980846633090489636084292377871315637700551421989123721715385065576633234270640343241947555527510376290618629269941020314766747483069686205225330841088527365171019546967557785879027101761276804616910432774394355377448071173231740034761171653098131312382230199589457324158049857840060052261069494433857973329185921312535254948378492637686059312637092607832716265255627574969804623958193432425918943831275449014819918081207529594290418093334101417868782310269020045402469227687317546464988922028968763383264128886043395354102439681759857299507969908826808835226368611766534969013453875487153130314965386781360785248298630554323498088620435926746184447271089616405963362384041092938409576987097073498863216215531169084731167145523404021376662852901398000542914135100129370631076087534180933091882904017913085833488919577803784813491843044695125038404393043015380608266604520630530351777743338718134566735052703316844910750331177538140506304262907333574565779162776592674277702344152869775348711534150623569840950575803730975927423676047174888872717581261051984818011847513734726777195924243612378923688178756445689517731705590691598684343564873146591549950347422601934470505996275259724957153635269261242717548746833294587989655434167781134991190376003850323024492732285271552127068429891472732868553316261319720548592406468043910329592366991423008669576061759148339136387190590950840667316015162072648429210167371216682668158273669150182037879254951125976626545356029420394366486965723032808092431682901385666072850649691985541731545785426697982209988002087195428164313476813588091076355417257019063436946979570493854109999556448297952728393728887189768395661419707858084767028061773296235910271868032330102153465723357575025609243484021248416403998835931121522654049594482167157932576848970185510365093453758901052841845199040325888519656141072280125540158025391535997891007951005873384075045462298963077767100656006817159868779010436712081042287032527799452597380910267216870893768778323319599998567016336566555511993520773779688353509830472910398720724486571948930792222549341489198130760982781456963976350689931679638964739127558649300778128406433752778652127651156050902738319363441431943770011216392615485690619130550572822777511277936118280301111257164003236455845524732356605232472772578909996597577594112927572040780195609340456299320130734819085408290586774654513430009212774433145527762311364935812273089364237314428581708322522812261111263109922877065260855421378039180519031536092608015103376554661275946629265788304520928895339283790551349643196947472778473458433458981660940578605973694981561324739730573086277866233175464011781899441841444732608544009541207457336493880990217831405059336415656670528838161257577219684008014312709809140053104575265603345914562117732499448814687537896284951430780556917476612873519619595096273881327375085961673172754594141861175364859203147293116603913956238694030428502170984004343990022532637888700616073921404216950989020022518619217669497929912967040547236171979469146781820456948074122498081783965644098553746947178487117517686949966547936813815750481460011366876574141345736307008532261646968218107709891973791795762400864890681918771617910110679164728851358260471669329465453608405143918288887799165787331442687693349998743254704655325150989748115574420358429665024049004605385122081026927511126441302539685666664587077027449817625171874921007900331682112695705846905325217584561847195010163484981176174203587497483918802453214556667380549438342092791178043432462852211235895799313931122268763139349983764522457850180209306618468601105184756104975426199271506300050613051452203596296915672544699796308156795364424121392250696735441380885519555926576081154449948143271178400950956467612262597199548313659187440378853425700158274446802546230577038347431909604901089798152574923776679990967489906803034951517758720616758433311295034928156198229851659824795827393185243243741709998177341109352223654932291572719707485760989968702362765633203279876519575452735343640501025337238226396430007247606830818140228780461229121168530609354724117447355481817740462973643498543547140610063792355027898597938881440422827194656456302181146494381701096204136642493462418443651209981867568023025179425144673640334005465528297016671639459265316037036274301693901997075540082135280232012760248724225674070583424843768921326906282914057118736439329525376659311913451027072607565746978177043294227583819329641163766079457298142602973015069647003628149163784602539661770506361453705885502798377492672725143374986880151036554830103807339087745526844678451596206882770802411634613555592821310132025060030265400166245858669113896398044076921092502996009564436507819788747158856265640694453716561714958627688318084103182889648996539016026708542726329832607259063205659422088004646169362150627053722215577156012891309870811620902379556959914612603294415127075481457728912214918402221661453794368228207880980771084511047727582822044280776063393518481974071737275555608971694977811704665479503313876596930941095909334617809445412532840398877002041664548842584296881045530204756075185605632158860021182600790423172723730724610554419481967291143119848338832481821518408062266731447368288233845409558150739718492127673379451249737362076562135845182951711242233061517686108457325172123330554387689720831089122027905791540398355084726996393186716866510578714351084805413301555996515074975175225229757788214787323271079222566293898713317230485017116866626818983852012110885180348208028153818439293709067519452731187043011012233710485405963789548796202904096496175749647789810628042209418214257669519734426612010099032779979789649296544616647957381107364027881130995902412177614475426051165865620987526117369032747563035235916420830759514380679468260228402717173748249976815311269357666037457827211852596770611880971901716067422340603481583425028507012895697723151010414455791126134166684682455114440080644448905211915499141949606476098897352882524484326487194034291938066820407949867998262717131264401465293965204632401061317950086072615203682468643468857963527539584755442685664391624657163686482947584650193941752197557915139819247822316414615993066448943010999416672607235067510544110399379557011181229014965203518892772838006063979995673874583589251869716692311854162037656619806281436595645347285332225735321559411188203504456960542511035812738985657367012382710884497634460423200859160551784329531171838268212083461784961510389366029139028707686975670927405874030086746996488408822009898880745859915427359195243283649692872919940703518579409291241905421994762298635787928706451942781147485116934722745917315002902362991077680087266960610798911299195895923324150599831682135857810309842293225942039177547856654079146497625643076290939694126482531354999076979229508898162250840134078353643173809568847745406472327850342620149718180415898705762125531481938046617010527255820502240556056615368171440213475636994071069728015511823265155774777143973750062894659167865362148272802887142849530916320105740993129450629334793836114400882081368388770660871812512650221033412690434367480605078404943327903070957707455261602198182731011967998423735562075176442463778879252890542642728024645674103104273194842737436236821154813966526857507598884600374145439628701213227993069301825739451033180068984416514927238369216996763660665197785640466033377797247599137380898250757967425933093704552239326136936169567171700446909664182784361213557468070103499014467398543617470613535829066241363524769824377348104804985010677191321871109687585523251007208129047443341093041721717388082094967574648327657239610330217761080984654964508621720056509847298687882075752319898842466351950952192350563285346760614521884369229329345028329111149067720084958663714821868464420833898421468460696958731797344551100765616800253078352324078842273768783102366982641039211824672195351038882735879570887265470330904764769227066382032350667993444397659445639123130406968235145749603571553203185192731908599278942362461854066061716349448269532888802526292613543510944244835992220792968268906440433527089316323482371410792010890957325341286070458406971054515795106542395162535353915072236086877187802606897673886246650733999181149762559694843576643958053401613740180439406433319466120089791932725538493256647212927151163327363399617983360043305704350351320074181001284650307575840468742740898807252116671626890840482558682722244306296858963696834788584986200136115921614443382916899686404673070599104394687966825230695114295603142047344272119831826948040746808508393023761576149901160392421290235689842651538532514052182581278048391633247928735149658049843454523804050290890417957747504572644062048259636095634200197642561004018662499439401611009398554457112489476468371358227211068132808679903122360209005797223402961959304118168681277156928136729120194823649889544100811118902795993082674811859189186781263227228525719703795302155487114214946014176078011988060546082616703157774002821400494439338830527864031330677090533212100729321184670109982057055561694588943773320101249746752541729579988592809974362979939732532097210870815994867289536834368685582431933192588641355312752986049709405726911450999951148462670728149394497395461501085787105408852576567278371610526677177257841510351596646724551758263324080214551947655241877078440223462435610609653682170118811517301957322255031329925137915393413721043480379600846286978029382481025578387194853464561445876870878687413247489662562937128419974947636168119413939087201149444045760233636899887244241580541195503571578209927631723092262312834472034407260649713301634945473868222503502734216799995388251454547110474135614796932643386078200225819731699930585712800517670095573213587827942425551027816623615458711145947621708472874761913302472673829647245554053248285267681032648138348342956635493336776008876103565962485929901984988060109634084049642486298391109053120337684135861962628072764684568092992603597024915868040868711435727214690654569593595314117263482219239849659187740751508043405440937818700857777754986710474974936332943091916163576522467556885158720094939013825275715542534813088371646949012079977995050372433943605699307745705110670581491625370643146536083018080444224707604366602357825932756126011443989967530520217400273890165738242841680652446669204247109041178201619871533485079576409214871367174461713420397302149875758069577792206386962164761920979575215265701653582670647372867745174586702605965202490039006935152702925488801427343240590494202251179932540482820581864717775440285073191017665703786848221251614839078320535897728652269032854851916244117722781863393130404506440793855428540817872406068270944270817704725914365920140007256471815593890842246811046821651873811346192198512507589221544629458386498752601738082311044280365455175163660748163281327190802382344634101289662225943785758549745611614677953839129711536230934200958412362969073139706799745101076361318347389582148229110449650495022951165875861838025869832102854330536145644114268295296151487879674394397317086122768648539541230532712657649347025275883721703399987302752710151488322190556007402410118273711812764074186387777308716340740049916989378379115856613971264143919826813679524213420772505677407838648753075806713903789048588390572203909527342117665674257367297320778294596077668333221743208660302370082940906964571920424672038012128936715756277014977923389799786969427661869174656277771807090047945225097366879517592052006813306482076437502673599679988358593386606450018562963225106897024036656740992375163328905400548192765595166315911365142285022600416716366824038331141094199624251867825526858257151036051313812304628884958132122273087683424037984813106706170624820558431483071832852869492772771492970428808443917447574722225631826280886501163327781041996821174779707404192332387636757117866300926434420313154517701281931114177427466782188073189395746253191363099008041257629265316830862108995506281111601746675700582653492260438981226676482812693743700784511258504760522313458295473983054162716027975741563208489400549054116641166417945110299170014051905081614295232139923707134154033059529670746381449891756546192897542435696172497343211223480219274985319659148247140406565246562177606598864036820644083331317708024593166661760613241959754042463846668175211028646114577490195175132011042942249232463039176089962307326637676437714037092672106888574336540883725337935193402775086562893261520488941672111449008984946678071098832883294137735798518428807134431651843932399606263525084590780553042341942055023853403130913406405495732770099247005102474696266740954603598068333298722804161155531859522097048925035756002152753948969111990224066469801311051235203250769164205357499275368717316804303487250436986168276455456578376227083283831034884163577811301891748968183437904960325983866893572239516687452860761503971573289754978039655483057542616490800882875049791525312768570020185268378926351720417418627419444313356168344456536255526969294632298048216731259757482704877188700776750049964491999396556131301468147101962814069462292932640383429322275573978582670472428915334908388466529412736495714964057884619733598445695689588596751947763500725091819703192476113873942594719015603753971826442767897534076630904249974865069030210101694552895497828861231427849243273742167313032840041421492171703335487376354342803651433087121089420938955097257556537559362602875922308324906013379953813450026490650486598956449221738049457392717471811247417749912927583764221779142149652279098440226586855579842834865725175741517267513103860848782515706397114303654015108173558939760211872496724728000639692297662491170395601186402056733882210876953277542824112205174617723622102044635441262367827602382993978755126928810154790720328168745715536589525397859970944662700006596636825389867347514416471229872294959700351158837131011004246796014235985294183158554723278272131129561384276071152517428969686254113751726566542810428541127188751227287851025796347428820234178770150329982950620229127404173413379686195647266235714562725600983189448069990375106938817539767752141831740875561498706442189691809731129260868145185750463806970408405096502536636593216347510222595756973071924487735626498482780451152459141868327059147072545536016150899828654389366852498740784232121201235609646507788241663206358076194421891174701988904625516554102035321441980319197631707112919573393719964295663443626915113483853380492206805246456255341161859787663860171970480100261845261771812041071229420707448605246656218939457799530925295109075236674943114465007972000216661355256226325930361668911202441572541540110393680029483325305479700186804851984080585794857771164988781562744988999319382177126612484103070524241271362185401040942098812198448419112989833465701550262820488584411238436546446717486167861471465547619282747101432379379141553755084246325960219520352699388188149703358414173787100820815247288024909220650959090564582899809688861739676102858228312854250914184841490303371454229751032547712188592799017380448111248671566353087931275391536055904642659586263348900600532809759255572573718841107502556980901855171619201339389174417869371850505678714359830725521294437472127513105272643816878945832875885042099093625607412890756175469819992011473047717142744442911886874986786665819190837764848391851666222763407730578025407935437041783161630580618599013672508992093357897619665744229860115013694580718577351934721531813920900552538711377656608688021343618839896064363825919167170385222903556710192807686020984368925889172739029719217229759806825280967138773391192684416278341387497376472122010749352215379777940576984125798996176145506281354933613883958920383985414754264210683202945226477668041773194659722016914874804906668326604292969387158421107186142368261862649068905218009304040327345209114103870591470972126468384606038316454938895650040253850758133728307177582956750642279054368522018057949311999226344322944687144916917323285041533461443513192053117826113654377835401156464547187047117615387470539064613980851506564259836444598151440948364366981513902511503129992579609397815662158522188237160572667405793810411746738897256944350329663030498655636326490856147928160862613633953553190337461979953725534717514797166695902745671950758668579481715197431247924018550472147749874338922816095318494039442224968069223239550887266605940846690159119724129328885886252585519030341393778021020558246948117320754062430139268511346073371233885554064051778180449147637494489854034191118239703580939874101558322419390084112365263148667243607232618579451184500602512621108322560288419818748968781890157486912987067849219678148844965650071949239065288724899983989714077570496371436857409308000430775651359058596418833400136613701841369111520256881596240016214329023631584839671673401970078608076553761164596686402128993010981497293777313073872915976775301042332825461662610336871716772622948853450231560271946758077064274793717335453168644368350632075164418297444637470071109060571399619819753204021963567872207102126492501046158418011557629926381538017104037295379347355705373058976750516084352180713421444321638492152593576852969645349798462396288089749649365523426252755745499996403515709550359499317287428018338133784969961796956388777761061665886361068093838969701266161333207739800991556336017790619999908023932547350553933872456562235908834345976799285635737564896799283193938485917233623407160190937101580825862998730530305264347344458876646851270975252434990476833247365509383555863137285718526701648400947621188950759893891201239424882905104143397176305498001915155643073697473041677209833311396390007707604009622928029262084539376326672368464243784404411695868036130647990751401369180205414952002092152515257837562291262002177196376819235017807269509414407591480279755840075357834437431313858138741079378715989172781544397802067456639188257037737710094101201479099586709719299604596418483330979410598383132343014922374731158632358909132148687757472770964863458475953796533352725489438363386520979327179738204112113107215172513789211884522993838216393547793621785645123439665894418916980784403461900701601227133254649670739517757785206019945969378657542765974563494629768191331761794588606182769971366284747229954252645391368623228575120406258208811973338719857496950184550467012826588965373898077397003254446573858248960909549989118193045919264734478878957077763688189211506451464238964939151131968746139297977686375432674276204281266552555611964639512787908075728932957677659354095956578503701624510037856820429351813933756417511281072741867856557730479807557042242305997503002325967946158678687833157517674056242855276521297531953733954338636543739784747932870054503901837718509643015804089550268285988653294262326845310067332718087355985205293244235316379704784396118024250891432299212151718123528674781171474852362181886082805573850447077176271298616749120979314644136892731050358781277426302870667274745788958324784377277158534390794860981980118738026106142797201923906559528516421403047559943822868755069796689274160615011819356082074937745761057953798905097097099000191819663840995597557931489002345557598086963325884175940774277030206286980143749689756103020881742861710237686757741213829813452622734211462462934756733008446354764908993086460769750361256503895712312529850091785298643922828453676501908813945583669360172435614436973556157597841930883865005546212770318289186566088304216538805130041059219332367363412236685840325859195098538898971423495838169344708102195866799518538002889332359778560361409781554517995595283487115350484961888012191085055567968072843855445590292381542430223207425209466774740446750610616341551316431311984666243085129579685655730414676509696025137470460480179921562796900808012543697160400768715372733398608305204607822906594772544804935457925196085408740484117402154498840030992908428965867679007358882526416659172210216720665548608596778880344894122880340102110471489603329821248324564721080415867122486034113763431563011466362461504824006174571295355430141488878511722035559842249192434179346078135125066467703784781354389947054776632358159072243937622348602423562854755726715484720891592025362409069990227724318229296354091730264551431175582667735236180932581853214821079015245751278967964292816244598005366060072669100233821581034262668858394140809199196959154542827410499038902202844955246042977872082703564245356535508959746539101431661439705601694829784484311773191986668054848915548957724496408658441095673805577075439759920797242851560390108187543396564078143059028652294656335447493019355451771148710070547378982019912993425574223614994151173857518837031245652050151673612618717678797416252513509452797671048844931565143842335194532699070638110306291476103911379541812051077119455765750677494292261394995576419330076101367634297613223646116378574449454542928375536696402959544186529549696514389151218358660218370073240174656643813682889348585260207703341608021589319455433550480836067490874758857496778863236280029704484569890054459708957064708016602277607634314302061056599929003129184444597788519076793827423693465229453386507888703595805999460952675908434095089960014704143954569643403422309211928356583715097259077825784041554306363698706197530870333083802447918652512471404158049532167623750986122791875282059006969643622361510634972725679170852347532152352026067920382285184691211270402940734204251154513606894728166311249752966196612283267870964656258891375769191067982134740698685610273230248335092954115853438637044176669129643352349795926389577083106019433918092699140797564205191725261973227662056880535800568276565208074338924799612962311990252134348104015056358980777754277266248837322206172558158290659923818549900571632745093518015576462439365755390676658953378709502666582248363104030510887859889338432405255978296566888960834954151077520836842676999409522616803630483951486703271752472846452240211844548372127882287592985984744221572792661827521946742281629985058166619299214327303987144772804314454876488119141216502395372914209547843866700369653778674627003675328372882156396442343806359771202168539564538610790227509006400690463828194436524294327583228742568188011220294975618287777071713043638467116671806115117111720814380598728128501221880956039398631517484248745925835092960686046569997148419844053603255619120307926717682849166137578257643412266378494663335356224450857160299788462512587329305790082920026753070171522718511401021237814087204190837467086942895655158417161610543412397657660693528698371844275315307668765574399795725068070683207196137472389836379151718615594573494256350631357861271944457855944183213169463969409258890882438384605945991051703262522870824584959671769773773660957936632740898704079133831939195870233554592219034723277394296514900607615693303676172424241346464611719180958361236766405434162252645250673661030686530856780581865136687111318929945638596091999619918895166710852858798933159073327496515324957183854954109170653775919645884081880949906301216547954148702488428342928954467645418840712915859205379355225919902898535423356211855719177268490287706053164220085310123539481660926247989156198387091288865344288510073987233262095091599688253004934692356814095016294716886187887933687138671755575989478589916064741206840788491614128130104190368003555647125534232127270872878459522720984300066348168765256987756008646913138601388301990878924633044481825510819917522947767316985671337437979510959558496213257544131560615860909649172851462639034689400876206802313719106046738158395538532342571554716545102188049419791364636893549332081104237847249628244429861889365328208783836291097177677640843486801413144586987469081480223125397206572019118762105229586301704883004834588374329884204056886233037616499334629124622269457541258206750194308666952303503193463009937811456383058166060430659132765668881625622932150822358260006666382288554228689019940373477999449982032944384131468702837034477014214694056529179112842589610350085704665203809426548624589431113668072341477499818805147061316242288002042190525726887880886549654385989621825900850464397142245988994079353035200876814162759166370002415237129477852872779321891473935827521680130649840801080118981060186360228478002611281721546532443601821467481355960824521968141771542048616202660604456671779605624796018572136442840089291818383810581668703300408289198899979653722633144903447420447843159239385544626838538618850928197496502018272856922521797735854280022684397046071664773937911858695139011597524762466028377181894733408092634669168248976890945677832862709561062030966460629868469315286231188775235014065310506851691728631229728078887471115250885320485776298267494224829754581047320507799501428585363535871733275373577205238390496086492278996272914121189826047484936296559584325145756482173532549230076860929442553480555606744564395644054347789079350199938847703759290182333740559710517031026129761462266630439065707373532548537683702374075645324908030777133636378761197824851365762246558089407792102953059238047916038976226346409012648196062593181972975608228865268582957468242327685731250219925202821136781919591206486831317455042878952782884745071290713421224868556995858712880890990873666871349572113112716881236921210879751800499767730446721440073584269747313205363296088441321068415712802999323303544749932435976246998950137498967731746327218934688778827688694468422614101172162927903735951393060407043630846667280242076211707257147493160985760809099348416117664168362591928753205772712756773675454631245366547420379653851984401009256387157300301869822490965534544365695430759235254622883660473351436042047759357315998892805645602422660836176019530756953621889864837291215926801269915859743994826712862815136740552962412949911451418555962183591825959177193028805451022751195447455181176121633220159540707600401179502095166490118725686428037972849070539708759233296444390777147972513635524940858539536525469834486450566619958843969609386753457921631358651178514293004791422229288185765611229832689154323358583807533365353135628059217246686675533721868234787644283373273012245650950454869006620597804171823274622187610139083852148449886747394386634814078740084923698550957448606163843878829186035211037613420266588908887983770105078099394254507718803110060661048971064834612387441576629552416912551721206225250258365872570944465171576402949483789816202941895799219344337469035206936681702440073056601065353327730534530891791571725433490019542061235441348908778053562931094952699726627988899079805422014591543200976331223135813801993549092310537663847474785624021229435881567952543901530434340837656476840976445447498839098147247150611965064915722798213328525086364095746291258452121420105392196852176783587968169581788069835249578045436176584938835249825309864758100047233911716963535977646050716446273657371344272394358548577933963866963223171732601209382432105349154661846476655571261539069442328270535867957935093597535483359033527346907207138519745245882230309409157711755318738525833114385674406958155395098256419457196044950153312931409208797848107624614625575959640320497868439702982924995342038555636674009190018131550232107408632965376363253997390132456261220845088499572542594040974679501067880669324138127168879070506188485215514588626241501824664148752081915616627060535007976099898147985761619963944678434644172328200432111555782898274128057621571570001746342301414247947354423339679287135700673986142595558732434689176841061719754907477054759676169680576171741024798934032811865602778581969120712557915856244284461334245368212174132709983906248581060535230304456665517260581296876173349456044770614654238912176089211365088097378624472396430209918311524754622305353774381958628230450426741257577092439861066258000148504808298434836229660136205997999267587985780716014290798272835313485971001247990102272489340029083316834058341285476241867925693677456655871278681320884504893779136425031277334815522228814974804152389704607943905386315642515656334854364195698864377477945489350561805969600710039694121330730167968429732080764286288853106391894613000763892697185778219049752803310151708205868863615443914431913476512535246203604441871441159721226597860930731166880413840366543307375507568468387991306528078964346223418743118443821759015252627546358793328298871063692860479422735700018037146611980523384504945108294129483211637066718223781652403007410861834959154050390350112192952487360720700947222653126764636459363373915252813147431336543930280966845076942412402462295529531060210696063863053919349595862101662224299260356066383818472072308209750407790386393239681351181035368397329424341074266392180132029962829326236613325374524415040566714894437828507041555253608778777507568391956331556308470393985090894698136325062332428301385427741486779270012342222740734546772104485057312725005204348477843704740196003041282201443247081252857572688410248567078060574772071315722654442808099696724477146390650542426654470479135852468711101858857462615324419778968039910364109430655692304028877054159759380912877301594264828795612034408443850272655282845661266790355975707983176896584602090569283209552829411315999042514946604384277968249076623036067015851307820269870484339042917780301346386970659313795851793369167503021921976982003534156535543063821058772868449613407087955190788190894663752631884213741469999899296761637017231947189776985281356794144787454463440184562285329684084966004293887948870952978141016995364345065739356583980598576384211686641095005028877633769036188299350532173095276785234706024534828528750383454546202139601051524421696974928143797220797403403918649107291167907050109304094371299992145415496383230984828122704145794858231353364603074363575827002020069925810489611339859417328211999182898839924181626665840317707935802315358026359304444496285075973932221001714698531465675172389119760237384010300888695106513916031186738413956108936346190691585552377875228445401952843679779023759404356776390321329845071723242536635090389184560747706398477799453615967319705364490391916814167336159480494654355009370847986711507948988315689611850064121547814303092472480595749704371708804758817746951097240085340359087620710100017600013397676520299664458621103970819874829971702372531226726027187403713017809834150329266221393348899099082605224255553387969806799690118268994173556389125991279572669484092543576820007038759367709304150698475759970909494864801503779789398801692265790457488488467697023092291899394248433150304286232956582707159079605770361130073722550005725382777075711730789717382263298674689353643101911910531050032468011470885928759856954526193313365159634500765260601181117518209662489510684606229099887647955643318008963198376803572242256657037522063613431932971800583574599634394795536737703640995449403526159173409990534767379444392892376901013475588604471117518478115652086939901294328139702049352429516586185998655542958039263656217793280831280062743607050282002657908571586414189003831846467895957584372749543577808866276161168340270651462774704346819799010114834844226264761743500923798600638103502461646013481362049916087303970406221893056005096885447450536849298277133224031066042393976277409406442167958589806974371148823247616568143384661676586472532317209238500080078651707530577320161455849855845044397131835528611605440946182841424264585927148262362708233721601100584485049234945912982658569723210951874958432771060327079841673749450801235250915441364527435914356880041116210335401936312915827949374846315589453218175986129442030511055210494246825775350914081796250285022064925109156673188437044232963152178873568172520899107648109534880725688718522520786725366164317218168713387981625223208350742566387376185316112431662309990127994772573722832243103299315208790346106442871294174035192650481921878332444286557360205624353235377562964485483887039188576048538181222050588510943790349130527273565313972807365511172700846672645659483104849316157883799992018230261788026692928475749271999654422427311754943544657775633010309895737816288740515974155045221313759434563138103255733802070303010569692289507229453551054085512422039493523761765682878658202154086941868336685214646791379599665617764153479548366769193315092908657590668865193058458974640229070214632369451498342108278919458186713898249437663382003858923018009862100024455630337252530828861505170814528150081220462748265160513464018286854522164935149517652933317265785039786180672552496028035682181594225373961846711517249216388072278894606198726979326270953963949062172042558755601943125050333187906775783355887291901570639062009436816529164783778358259856089867426241934210477493235291905858913216208328328929312321046779879993563132873735955613798975833308033377762569070593732069517874050092841359309999924367393495662910778449996464968190919769818502812498731131434053360182715797585504253264829006684023615671460724531764376847617882271703797900329723611410174566296010078389051881413130621783637042904974201663405943141002579427417607868819625177351393327164445824340609273415784915281267275726859498335875520106003090162545747900905797413716486945635993619462440425334954256093346778385510529217267944386582177829721881019359281981421997345528678908400659819174185015242548612960697158587594179404884365014438239546903715498630457535112184458116250685460120667208021793532254595317655358889735788195584387104999910967533735481982664769893814297638100835863879048461311366204794862332221312831379027209733193373697005327612773638757687379401034983116020222644868079802177977248855971919666967633610619901073128756598562208102115116939399738635111231461764359783931383285917032342926333890775373543098891597708676793261946048963143525083507985342879103401589085732603629890088960221800765323916351467618161033067586973712078004197143412720649552879401245510745444526713158336432379506334079564030758346170518792257730575380213567551854502749685337660326152135481519245129176178459911129145795180671712147428003517065772852639823441318499996470936545043249206131013285997657370103155102594152447888275664889213990664520565764070079928855526833928781522461911059609085701878115818411689504698012769020663725234251386033198578231148548881709333770625528568736760785218660717843620024684999806553916960329831306634195631884474812830458993250515884177865070485654751630468170690430856827328121150250543341041033672336641548096072750182105224310054217960742056461056013951226971562697109413575392424650673144311335625454602543388972760933631985589841845855456981317826565053295594296077102492532452047197774408110213850305486694826232690971216453813641055642739354188940116653431006556973367288980082724293490390571578861807223413764539316489654608974547944939109303635554078479867900655820528071415798142809526584505941998627605859491376605604948923498034785848376406939735353531118830902839155950811415131446548327857431413806366850270532200859845057316770959019040718025418044310358627379579832115051760985831661364943285547625882836821817028946679135445710430602683096850647307807055821783739303441536915799000062857728712103961222356257978295516767417269044610805225296760097067671517084060149440695989956857354547282781543607465891436075414032865754173023489907545449547066479148810827520950302155076348773766630038985572046706758961712896756012845392187099008273026867014390712203409663247174942173877677355783292385868816788884542968988599274575754112689350645188884433493824110451626723165868944522434296327087959274070389870458053017912656575208366002303916858378918099368243416074444106228535751838958571597993792555768815987657894805065239465461631543171955286960428959444142381326826152247651639919891018724825065114354639637318780069408648297009254733657566467181837377248412704277588783941097497502024702569319135613077294517869961287987572504795946846183917524491777541902152364089390502769516882109914985218353519170976952169578069664603892708880918642001069295862727086181836240065897031081842431102713335613519639208878161819425889651902548688714245848715833073716238734626457057093318416351495608856644343687022060313933527522167671363670146851170535159482921190408463752971824104448861159978356568447157598352965360947104469663468636139433633523827052748409743768870726108735685380742081576691285532454065656475621066588335469211774302688026230134867176680443340746343091569747780255222330858329371346766592208045030140529929727757547975440263480492067057095072812828579801115817692818070085763725071056052456639845740729133680409727576804542291001724611682400543501270917545362276035333815040690202241701537123275161829698740367853444386574986150299663618229212123001740654710427621214157589652637180286923760423971449862497117278923686724968098773847578698685035459848609297387192167600787321121969341434797200294548104928362046609009360452874314504901710756622116758576323352907451755798558788617890270388546602914983923828913525538962684685736344148577788046206048047574378606258034991637920933534085816480217934402964693448301745712586957108311961377881155491139408259230647422237431633600034236386566010814447800960909008459453386214417109872509717223088672389632761826737537706080923111376329186267256680684062366714286072990778224387244319169463720824822520963027757721661618508804262732356608019388263516796036958959795418363172954899854793597222887112305318322639918677862839056216286302569101559372913378127754764234954655120439549399202432420318272217971621980998924712750844057632563984685417981601027308913107396807755241309912127030085841692802781111729470118447870579869636439254686484472612877329824029447249954675382781533490594442389444198157922995608624368876809962648885862785281474439651889199607488306116358285022002604588639065898210034684378665113603651626096630660929453754849192201038653377905152183735686688010955477489842283348704218943006464704275389695924514319398391636207512113065386569051991492915676194742141604209531155206582021000466784296564043377672747761726082038628454720164376538914328492528369604186192122047079015518482395736177982065564729689020410130710163576961169669681790428370778923987444902217471660013779956227806099977692635015972474026863440932455161376764559568229718936884212994716669037061491341843694157656617998205643974460807421577343420568573774048570828374177708853715472093126406745972560080375115888326649743644795712068189037319020725401968301003445932458477162758406266036094316824418862981045595208919402450731068931016658268003787006511753412879634405624113028119121653194003322742910025130427768494207337108157392847616600080112140848781328952259338503821488976771962140930634552802365726821717190812526903714720522128564044137176813851830153750379965255788525782588236119526575116946575939847637475236238627878375114817771505764381083348856903453482971443727608435317418630403978050176604755585003822736695914377926874563388935097189577224397798731505835344713954210442166241238389480254919814219894932936981010077288062782282155969466868404916418727543458056500027937369104327616699289776067565878350003110464485687152386413933179390827341479756549606912689240290390527807091516205168515317978425807707099352214687310165616240245937312151031166654217860614001996035176279430378511435771750792295392296835979469659856913319247989047006954119709276598018525146147240194582383783696598034352306797744574280655902268129632492142481574810014702857082852649238402867904960541432823565149517791349188310182662313656978351155459192082410719335649575685713844925436783550948405869631025728503480441332308470769993608771696693400855486849650939814823869381909170929114314365156586055475388871923009969360904690178462292216410311584074699043599784382811582927347881857502032435616815917067481472304635306691305220770970921315515917929991705533878367020357696460197084184320340209040375015286950905065226728926516519081579634003384242049363280202032621859891294920239723061383710887638411478374675947450670524866876685052934016490419502491992230276424861270677429660457559504526343594419790259809055571115919922411889920314721267544893729819885048909037321616886451097326497081654715852641747961825219775728099948774583844436034636503153312712177740636821477510438578741397263684807436948939737961894917936710915804301571508825494182439284760164365180627998206796773635184045186661754697636185706491254819498742583397188131596074870788972886902063057665376130493307809354258673400837176099732578637880517481110748869812640227799552049971504234211616858400800237917623695443562620507301010419176820072507347625433705073623026609823212030458127051847548562635323951715788390849676043480591246583390052048799356414425049982706540322504659293911633116902325408203952964298939419959837718579325772676310020838837773147147312234807414606442180158110728947157723693215243208875416621359596023673796875777522825483335687655567977459007508281532043042637284740729570796745298019138152117994067233552929986381203624949228154225480306257923313289413403099213371277682646162960139713111531042661436681130998978863393427043132322045632664892727197955825285042352688553831512024302210222048254731407576371813321334739030641139447253901944534171868684902770986843338830383983881719725453313828534512707656470819282082102768740844975430567809799214561192016658495932937930770185677480983089099952351807494263303469108961089736538250875741333901735123345634769353196764982988189537371542170100651296748003974272457180479590696908700279007334020354185157418322237773890320329579532953313519819622165518345748029300212044206512222792280131075046276710412730735065918017098721623518961888459542710579123611154801560137467394927979009202892320942271249137888460113874470031795283480459429022635270845523628384843249182426624153063661403458207363253741176849136640584739843883099468740933913594393130899178743703566575444389534713059513573631297806461956903985999994300924595933943426892267431392876282850406970026670136607807821773040727737321176074864237631209935882804880949510843102894430982820465959996053272125407282369062232384421635612987367207051834656314104470100004452304616349652524834532696146179888529732142010445041006460873950461292348784725260447994899313268828272927486403992221098012420047173518911560579071051497950923145545760544548515869842815481455744506375738101026536086945023795829682019313615878909501854497899298143646419862952953244340016859570244399111912489406695698575679399980151950962452969787917925189727573052592693948922095708997176753270586343320840797471886429844904630497591106052305576792120172435297483269131620563031617627772009541589232740036962120813216660130768527998854393480008392009155234107413323789543091671072804559937173113796145306109905288015771437991869272487676707677410194381650781067999026284390841148848968235041170443036959691627523022274576912115869840509026668289099751675423486773386945124352427510842478485380214067953036189006584940250089490177265232974488541067205484059924032630755378237806484259014667744548185947597737654161409695262132267874458882927926556571950445597172809949529735837381203176966695258604091527988211238198156885565180240444490492742474986296738287121956975332476012970822596758613041721079620736980773610595531800751726115279078621996145917930156053974880449723983285846002875937040691213664764767760123632467967521587157277411210695065374563508264867797068711382526077854910573482520337349266229471420191744485212441154054796533943855222405634045977449164277416299847292751748601485050447636397679235988573492166971337602892846503480275411234178963438240938727254259992399579991811985932788616942449100558313942052503971660741737655878108769879981904801880803986381759044476003656116497638390600096969359808666333175547174569243640537198016358328836363561517520336040075475565119143852061595759504682320789736165013619935306904374382354058062307262975853590542660437530167514139032476316058540132784834363202482717794090869794472106278391865892985400621092681266244424560517046682457788005226356764417249703075238430730064092821344986549130424979410175473121917075261792482689051870438114250017398216461458160745321410536142619799610629261646130867168305240632241644781987464271561860795221190524673732680507199008171521512785593029991755800538731799061510165656875281006947577754650093336662205190927493957778270082334814448163464047146276545067068356196437462829786525917678919580021322035754070812197530180252982461727680417129633506239571290467870255666154567978655075776759934830031897699006216718499473871779246388785125181042485937992194861843634190663964452297937898107357429558881118600798396281623714880271777641985827496102599977145361940503063673220650639653590606352731872469411494316210181318540319372359438706026296775473743620181543273503108821825364502209355851031951090725423360826738018001675225529564272057495791037199271278170256771744889281144932510484337556735243887194351432210381370872130133659959382537041914567727005583758643365354188180011106379177753590520914071539030024229412211567451434469170812527560318217436546347440324886538671759068492385690730280019001883240311546642802500299035683054009324061380555198311459798494724040572415750242836105029990334550067572189075989811325684357850648561797589598831757127383222664484185282420335774081827399280074426375129263667854690391404794852818748986314394509708338222010644556026289531255308263950088914223140705565452469871356577431712574001760000178939026495293729525758350358080786383681588779180790759768850191379662731256943470220078730133873047755647427554241398924813915923083579177084672630495347281683150512485997096047795641697384420790225756711766221703703526910069937571736372387377678465869345346248087654476203017395452990306327368558784549680068630328112028831068587735409404327267430151505238554092801416557928227500504188891468475255188343547024493405502254487813227282808949073847050016824739995925154892403088184166767133431717840076102846264795801689413436393803798426123392262052875005428716448286238565117894958579791051619783151716166235219219023140193790345893059939186772521219955170786179635283459978137528914311671250416849042846676812054423954292577946387517555010864951296585258704297074987673164955586311494881696381343353445830786506772516303442546429971003600826043502914607595914613296595465584951164116683081032360743547495072836726722271033469476315602929757781375043077795176329409637807707067692395235107923208057978423147941347178861990194271759904527397790107461041673291819281428886904747762869108272758803747487937724897506404689459965122433671540068757461010727766146151658496400725958691443341844100654598960490746465538356791599926736606192862217199957787828049243336959693667784808722848849431194143933663071102667741177653304845460355064419113399064306203709843609893034273057043212708690999760350770648853220466422816795339140172948960948031009325321732655145176227479581389478648281997460953059547344431490234194813490047838316286474943278547146632912593985508225579903951004671686502949811168516928406298987407160525757576824644305691500665076384524024900148314418584748626880437960189676279384774978673991794199063065784279900546388652649150412058771586082665101747595652469574742434414716733424203074147622152790400029727676243787603862788600372187235456140134830752553083762492363829916774735206667060008854817861904747122289803283001439513666998670128002454068626781554383987535877579086044642283211983643624108877568361105703966619117970743816746841994471969313545900361708997601135067451159611175519322155303841268800369365495114975908573942028713768877183720918630800678676477273506376874910483459933252491204212289645974878965490285886622223775995930245867981185105810062527035696403421122214239161273732718651042967369215666107556635223996488550591649465809560328359843496572281021468508390564277311793775430087315713272901592050700579439039927490662975765408496351805823428094903396933181184949943675432785660066273050172877624682357108804570796014241851911994381952994137278371317899554444680963121250930870079182281612761201672374282590493515807318361918455358346710170244547743687521971923959716281295979082836012051806170238177819300352075025600021480375687285756604716112716451038123064396386189043301922932121401413879381250305421260258565984401925597373238828052296548471829346743751503814865515001180529280507685400934192739331983427610466765595690301259987786207816636627603063508564385063318731852975235961594670293812239188191592674583744261736585656716836741877234624917589847172747048453808712281800274208432703207509242180099289233390805652329856900244853711331637302674714639681668486893593434993707034796371494820506907573137905605395826646460111922688431985907141237256520811944416049149482046740459413666850393054884015977233293380016101068666439523992858638519849319132177063401309119656733445415730216282651443649785517743810801179637224148310567891831284068394687569626013904415672193080704459184717561748229529837071572313842155303553786262797430549766454678686685117299960071672933147499649398779151070852790409700388381665402981767284437367988763457443651273460418556414452564932915154160896204169528939474963874572012160592023754654720710359472182168964937419862110213986541963699648470110269607781355807144784806378408791621211075441088351802957849174586722712045095769648850162400022327081926992954449002027606678960186352373653998467385119362796981448900983972760826949717058981005955408559724611816426783074270328971640501857966032512857735613222137997022355250093090123577814386370770360780008333751271002154082364965060914342109177580892122060158137737787472872714239305297733311418698486297401281436642381370316669903116403103363720056265560766552826848925082694058131461612463340155432239064828741352046439175649191033694567184233421085998788114149027017751490104547301033368242257075425135120112277886745844075288366009160582270736066245764530148315950148105668757254701978548389524535807214325050189577369004820974540035460717433315296975368183732302367658884268808188444428795825881142902365145732591533615544999348858603512844758922928454759689470221311641657086322444942365214808934118401036861097469689296273628077397097602839205985360475171722352643759728742318245247087751127652222397680345474150814677201542339372347834567240559084170024136521667246313075508786655821736633086263307556689524809647750095673879167931271370835615036497037910962295935351596398784385115262217201555858889066855525500413307313538563542644320095067276262424385606253206904941753175370709152305114375281122638617574625971642241106402220970396960309442624299279518267565682235643783864106737455314946404756118421770716056283711538389543554746242140986597126564987679776706603834489657050387261235403521789815126845578371615932575204768486594312874264977710794253006228630035650729015652783242755049058176623179464888791048258296271766467660468540061352692553159262457084028986446342804649145207651872634908696518227699993478154115442764075366947073156540988818980165815995175546337831809813479444110731153037471780219020958578655159527305990925249728245956795382582820435308265722956358426272033258260339546961148152615336930968319388368612169899376316674899854407817517628221580764593612772621012088811969927873772094024450106954766127821803243195890596163293803134462583393197888069838989987456994987662527310912351471277771132957517648899989889151979525128205356734942199196369830080638897646775559446706577418411309852165249960865695061491063389427125475883430207138805425368004311903910470082100643011856354837104879184612106668743095087022133081868494041094075266435597343545165429826795494210538278604050634678507111291698125870171471838508037695673889232593967945172307877689196304458035064310285656835941814712705411438418838828120378198715522379908485889936392776601357363673894211779362340987994083525528505466599360813160407660719220868315691591999291244979657962438875948229308963364509244195631091135539152349762496304942019024085325037050856850513250725331743328393608571483829626412004247806326472023955487737694967620954952698906590814692639534279918456900212825162199784278954634936715137389599444598418082075943420420191334583696366088386906468647281505206667299826853588053863135632808977750555474389566188515276422208951000895589275934322958504903502890361482255162351855281157609104726534100167102719408012820192409837285889051165237253110968280482245010045413223547909638045556832215338087505969445444029087056068716676997494709804652501909499456624139272887766458887057032168680245628883006291674475896729964863939367067153183093554386349367414040994366604212700437378484371632612854840007409735811938873101834210493559563829838782589365566048512369233393698007034865189799307087711319898117881362724093972435544377269261357872999202554700209400455513152833402062616631540138683360390425040184488616363397670571375210344012915846552789042305274748530033022272610247149711161516847441025394129302189377219435813397385451465125535381329483963463902678432344620329550031636879225169997049501503470837605991953033533359990013800913688478027160126513367504886262054855881822509033916744507172766323729334701434274463562274735358217537647584316277939332832973084400032548200781376282624026405843564972441250372344189329750100247376733155508202698090273704951523520850657826717050798215122604998969731520113199464745870128079911049475796775318219701793338238409535705060599787780530121697612059176754276671823354884640839694549807236124875177344811531904081493749326201457293938009104178294618787806065563197619934397861082123800679299639119091575048902410883873906643457556559691616493737746867709099201218224634844849615550996272570068552684573596197847561229333425240401476034819497209729403183900745802324621283865944146800479933855640782814564674385241281571522488092216054733833602669866701359935407182292898131215045298276112580316644592590188733929957513235609500401462542692667508391800752047104737869911935102330434662974256216961026876952119411333197121491756377729161861472932917919358315872813862155481036565372499879375869100642853789743107706401747373516657790222606131381364183355178265799573695243244415732782690148849355438031451437532138754574226852634900306799995098514373537400610945422014657754704156085217326407267615585591134060911640108449116724824945911644050831616248397918684246534043400638679791284007077603404636030434721403159005559938183103797115880231313176498521399126052602968316293629325233624395100606704891463294232972405789986713455564354734260631091752800652976644973425584618952213322251438643754187685683365270549497562039112910550888252675969354367117296396266959132025959830458095865617962980013336680727818202737434891796632286126552446997269804932097703149584040262272719059528570356396452882429259691515575216014805943797550927337850847860277945152098938760146356876155711271402313533238466028843818176236620373124904584009168027025759701067640078006288049951538511952513092697214644724836394575263763051065030854918190135210762418812280966997385908117764767322303510056979147244243735813427774142435204713388172360989542023430075289660689416348405212811951179729352919099010727996960226482128229385789688507881367091185415961924740116869200655492271716821264745749804036022144782704599755118981807001370413383616580687034124119441331243846993335873507135800376933587343170931545059213224359522104673453516924682309067995322121388222328822738879305438442007995161701103422365410240506456009278856730525763490665884564395094323394468139479365933960275103525822436850291734373004858663628263947464958097849055492035024261319535306611936149101099824338299225214260640346350113165959073644212211183553008208990290306652592015584550442886650192369664682559351390613833416764947277981287813278337870483017133236930779665606460053740542482876772168233729957306787322688387600572198993841284437068782561093475323703677989071847378204363246584208815062708568561153523206763484732807085121535596941444119385878336572140759631172453746766573723204096767345136658137774337513977899407189963423194107863772267784950687897281226558857719804448235925069497069610956075192045262933958199084387747208194184729097832126744379818489945971183613398281860762995952492179153207240384094533469127344519939214550955343230747645013739473962279323642765566062489648689561451189160215877322460809204151157349340640123819100760270990218837938048078040500182101920234539913797338447440472981461033042929738799088602484978434929707118959042187536417061871240026051373594992778316572244917682361556289695375219851905973284068984391977216993860203979252861538719188364882380911401709740887535296990548987756920753040267787511560449505723807807573887047563045532284275367094581914650136052957706791487385101780819902252279619485330151403340736004385671757849254527535837169535674616308658815683356415050309075302371141208562478433304701009225518291055979284618161120278351706145671590457693363514881995424845728148678622621922825564660288851231591836561463083156392198508206604024314075794396623923401975272641204640955361361513910352426837282211062155042824231540388642654423498719894780172232748326399711920424337375576612786536770061744082211070906877775143654410391514545652147476480743332437578739212718297235028584414098270147242821636887104326968851486897412194892509698881175492760576358258144889152428737757684357363248777273597294044367829453785089151813639674392793828723655898226548917413498501902627971419858195176068066495678475294905965554492917294009878505625218018255556711224136677310696942661815635425502844437000448274273425552391346435551586728589082934097562827684527365078167733009326789096492845549929950885778187159605039944388987406194814421772750154546011809335513191134839191765638929394795001810515862088556893493234456638342586076939534535682599842114271396653372756200338509922207511804458129357410287963620841119798622187310188063992443677870937222172838718333882182479053085939867169850310295886946873896740672949966503089908506596644929413727991019798273549138268441423987486414006674417690671483363169255308611017070482233367636244964519545849082090660304093615022339193090169977932860044270621230657476246388409871231525888617202493827760726174029651437463773424896086133432088575032619129879714217076382695456477062659093105182260589739081918142789817433405912852640718797393637007384039851358081406128635783536158494542268306682801025138146206542370025198894822010968261372999868916400122306297847136451199457482124136586120210205113205220963805342002607395654959876339311150616734860260280811662179294014170829352918439400388803725111700778121779333139365405131442134309806995104689480620314526533192226327374909776778211053744577168409342418676750762684443824088692887553666089860340501181157120325961918191104116008351588168771047763656511378014445088806641389569469704776277767959467802575163274645055528940121965503400066685868061814417857578515573908918239387406098233928641114378132486085258337977881293651800742933571914921336548421053040618701530291669184916554769039856805530984290104636458990558953618403719983087410135370930774228273666442027256114720311864370616724983349768118433263793175403024624573566212722698456763178794251011449113034605540627309200853084127990735482179755873921394936606435098351492804146339194206392995350780389216438541799101853913351992729537899384703013110894066414912157174542921796583038031241765905781405980806102122420639072470557710348849304825214923022894452798376645883187033892045325729245668017079336310213515389001488924081681130574572079372953469112937121191938117610070491092898650031732443479314321583797247290143480902903364851629620585909228848108028281386302602104838798959596403945580308133196498634755262932323289165523318047149776850675215912729360795462043300254434560415766557947582777351360280888880148751540592020118235035138354259498367382825680491049672729014848867017617252487962326548962023059203941278180813510857441984649507117434933779224638561164288073974106570783824947034020897865760673171518812596776446095388098273607816128983167821632179883755456650556133397805317176848743880561770300822863803883718582035426465588445149274789813915307984950060265542877276494389474498636965415071781033174579070512003641522503284296566048688378660540616520931367519354993073422588952723022029712275475193839203129939359735789849579067658625081870818842855122139653726422300304172885462754489967807174357213510591546526259115016493934386259286995477989401077772477293185465438235904295684320565295651947105147400259893784289054917415132825220292550283129825310037196317927684108920993657303769845461279246638679205093803689554717031332544016267055722825911724768028396775104587894297583593808617834274566492062565343470863699216968904593504744388710464664344510242568304800665349145334984028856542276269701129164584579839141132166476557850179638782362170550302247948559703289317643409374326715909307347534008418388348419353662056416247317459250592244427309054263041226120992426716169214266957137292901905836993710342411933196896026569331343745018278621094918944951014920278857094541043101076933780602108577698252750779434242461286402215158357972579223059644637534201573349460077704343699600712174211410874685300526035745906009772439286230723779656133916583651666927133714559604978851255516099730782342320869818095667861263345133914193976799189492614920252755818226957218691366437130332305359903955473389380771668608608905587075259461543335667131392866712375097189586125006146532693508061993711012633885205169539121392338742722419507651934712431743072688750159901721850970122806570695378738962538563418744638430998096043300263033625353254661963201288409291595974377567004568615507656430645498337886484172005790967135078570190962412507472712681142206002552529496778075170348645662818827277225776859664578235670742858691775591292061501836953573481374958922100940788491434591191265901406521054730001804149705976034981627061778868740575715554420018536066497703195723371235879546723343575988798428027716707039623942377379546527825248735575224179473938726797953161920907766622227410838440542206533664645194332558362324723103171640903680501145091591654335589192042037926124957723647169695234086790739126458280425031961322924225379970353574924526015092234829669301930340281293169396804182763608134132886701547845869583499573570772417781718973317707330886143126925323887546120955160779746406113420588638824332245688988739585464490082273848476451540259570433258045841736718820567521570545642288965017907387079630039579556248038447949508737123350816571188533836923772854128090811342908258574265119484011493388237670027579382274261528037469188890547442337384567682115163563809324444517572057625958780782674986156803498874325479623303479892810057279300553622401912472894912184947891864349617450956054821372590796434472458673384362443832664513769903794413386908507980401731083322526180271895664081471448001225759744051684110580143310667171964504421806895716022836294330775876805413913021928494631747314876844624018105960914817362005330442278603412564555206598604151495397976158747065403979773810256595580397989934056873259983499332178849888712454921631775967363938746007664688169673677169090727232410103371285115722169475517755130173438051006038947311112658811005986113432816803044944136406880946753086927469909729759798641683856917592312879852334704162481320988933586507689765401225989997826413334370855311206486442060590632228013475018104765051533561653524545915454165235050836491481046458971434975836049742422638660274344762683802395761990085578758786018408702110663641627367896523270992966555740270086594937758479765175462295003642483504166312289976298378461678820954235738558417157841457012703451095889192352633381117334917626191367684907498518056957118585480948278280740127937421437247321169227904256270405276687771970572200509804583441357123601531340999270859401272892461804676480590624864829047805802893374792258727311683152899082916736893492242156801460967044925060859336098182075595451691630093723368507045736215532289733079186057991065173553137050523039539582953621235984955705867306159001099252618078051590492937378831097824971789419979562787126882677824077560401987723166327985993228422010102887934239048454326555116514076172995826588275985869249117141039734128990909727429819564393423143912570108400718465362683171229823390495994174257928554697800760982003710324855203096192881237335972879390785566067715362213109004390431702350760397567597484502343964237791678181701590046514119062249376983357056173557416672219726566901931931338728514981586620138959318343871589886179061243322574169649553050984088164895519402652284683739771349958818891648657158373913935628474293381098340301364400713491386191728491184314827887647841543220442442822687647930502079401421163986128718048691927167000009532657030919741866326926419099685688960032051364082010407344044984668298145584277327485658785957874116357076866403382236992590520180632676240402344013970598552615471662344486373855980933862782789573471733223209665402078709359305376759565111298040303746989509425587952891989787762995665215215422601334911282795975926005710054744505806300323687984186464146767207271579991578509243503465268224589459880862359787503642511561239207598552531474420935114936898801785388660563492129883467483421616512197338134166586049207615668134277499681552903371670271966000619215952685697232046891247682601137339127327842293596108411579024697980775797270281532782814874354385924540833817613378031360771258915318508658482718968088450830507117952737001810901302100676168999047593886171572868105290817896849769860379236716947971551404865282854557208626388370668012282570179181712572044299793955773845883012683834078416157913717478923327908107807066648761598993644718560789766216639330423005156912873403032883456840833090809998827238465974078923874288451978007616381289208005327007171623940040544318153373961972540500663308634992482728513143558073102009769258250522843041687638584223380229322338415994189302060992011704303811528089207890029694722965944620404554740053511410939760954696704593254652755985113868601556490285276852591239494777644979396354821898471294242468099132824577183078037357439054157574066338332603275500154629362884482613951540424818775696063170666821352933427915419820968890064923672080781462011772830735908959490440743653279147103606687969045275076532456247706080133343159175140636337220704594543717582909763938085837177540383217829280970450874440776478222006833216523243654438543750737763348135560395363706945881042441288876050919412314692543229309305864910769451908634704455596840184670978882531525875363615032269186430227975184942372450751913851851481220188662657325225191805354376708829957194699860592958891521163415145544759283314867613619958569066423302006415416968206927666648351332169404652873218256974739438351918528654784701791979671390419881059882227336406221053345647322495347749195173355112589762674818788600958699664121134402336159630540760225508388290706841992605019455481759287072114274931220667926079041262954873251719367075968105533833065687477125809611272587027990608293639623310387273979921190706424690580734222937273907444360238053020071825086468908177559153026923808217308210668276507847207493658316987425840911515564249115306250007493606158973715287086698417305613252304865416671549605337155185981801658314930498370824112335829385898775360688080577134002205310366720244465101053589919240959249259364210414619394983141517196800000891071079613791047893014751135753841959244871226603296405096060801443193388499228011585526345349794766153870013764130697378353897817213865133316748395366793722875173394517078089169591357073399372003780034500841902060782697411178032593896721225876676449611556361962971538642268881256251297457845885189528558756677286377567174601844614462472837693805871712196187490258143104861840306029122003712566229350666968600374942102875286614077379204963078599692689635380336653313192947042568286402115250203829996924009973430732762206962596538096482305896929485877512872196958673315709419480235783962483742317949512465420451499910434276844721497660344312603345883743880549347535940314428282538772728885490428922903265275155976850446230642283399508446216041308497740796738001204938193295787506732996681714625681535900327106871014893636631153631874038881199277418949352353058273030137678709051003746748439306369669845372440218185606317526003398428607895657617695152652277033580488387507954847182766971851959852039347954871019447534784245336733352776978539979150952012262050825561043830125922960002977543565553293512891808791542210761482123671248182581714094487142331994319983726365406528453699574335104758370072301162883564415080259008094977733928306620654910676869343869911031525134954076266682602478078496664602767006184084546884626797231897309318106528541253192024954615193668700343358091547314507193711764207744251144211396773882254610768471112012319059269802379613395885222508232924047359521099420177644194525192395434909881909869777620886788315039410923984802785855448784191931231804543072373317313340530241051287429973944988919361725605620972604782563053724490718009729931109509288594291594667824520978344369642248197522406738951192588402635418818166262034279090854169662170457072728940767406541054872482451091958126879117079585053610959213819379466431338163041366206867664888720531235762740608709673408953727312310355110863948296744583929632914172908237535119998452918803972845274983964328829346254431407152813482767527880826178588399848488500449871779172286151334909716203467239928066730524236030136112082185894067524980852865074926932232259475994937534378479364014931491509414018125627704061134538159064612051140411259312034437779576724629490312425380844530044886008422226606620154648590723860225249942111783436529731176048423201356542691307428293540531684087929195343015437365749277495124088633721300868650634073265509670562313034164178216137688806538030158830502603751338651974674453257862030862396322024566396111310316004568989958925950242695810005340012882168798275035535516422794181718588905605877942044553614907280755009459168723716925064524196687935330069794108286736499637983231362395868841804091334201680834782876344803626207894315633045425193529511603600498407907976862879237885417754437997673251545364976412494263413599706851391350816998463322968025818087110131243751409826670539363320679292906297999452207759389236513902536911550856872884173715531171712323767848454826224598353409307093186854036958513141826972174781690581513099466927977583871037776153180194329892387137191900363440636581921130741640800554865330371020818014750489465044821643837830161149176966303038886362333358754451209261711027827314696467205912624842009537693712635428358628710181440057883989445397209864120860752430898277507149750219276704461920928504057328597792721726637379283643728735011222095066585316326307673747389070271386142703447566644611002262373819535611544574815641647274991627408779131933574542183843890864058275569993072836841583565202161599479121364027748535568748502794531137925089148321949875089886681254262973596713584434924206326071327406730433478749751300666618594432611924241844605585052677724912955441029008720040770085436227423088677040930751333784835687043212961318913133384130802835912637419216820275512148629834780050251871001910734704869020152197858999289515926505639354153781309048609335801665578004005062320619515369965477386923680998234721096319843796449191079775607294742388330458485460269491291490128091956002790652364015307459878173499936253197346583220247403004112604730969405498902050819829932494458777590627936130972592831469381467602847499160331552319806078427129043019865819533323892139204633542080529611068302854075466157173769331725584673819163952685851247938500448033252020284611251548198352046996805836746867726006364556749455221085813045261468994461246363964723589730547849227665945653642361841891631078396674409873698023953259224006222146156412263101333426943516427712344332178120856488717254175532777824352896333845815992308622567402975850896133444671250768220161899705448837649338849669349182675504790657492068433118554383742085986085361109444235852699032561911132351013917124199742111044400229345266467963520044887374432489309909538840245569163680222769917865694688424599332396958229480258535656716071073156982718866775742461624374131867649580148598853093406145893185614671772413641416506305499682219796333245036399065885330978868864716204603524397696925114524621624425163068921080182243556390236493431074337813008477644037244556771730467565595619525196780215136092781228129630472277019553806281157325013968292555098665336220316761230858057179947853075848848712261977907732041192711317286755216774574819152713762817946783353371893648223504111978579247083282512164849433338626903647908579839983229873609605815341759743005597675315859237111950671096688397501044159114124459691807329185356415012362604214539043352217210762710297796082044735683869326948564284224293332232895718922483148098937373104490323630332914025512617720002572756877883385495768164390251649334908458411504929994375414724054203919038471045297547123963045763501152231436411861216421205563112610423099895627389290136625682885204391915715953093257788958378623660072920056786329277737868559622263756231967502210945574540291437829203194425447054527570086579535886488246746230681953281001382844125707112676503254101800274522476574056063174269093091384623538992324343627116491035420701135994982409954795117356555049000716410268881935344701141332204683267645939375160919526142409803482694894950872328343489322934484741944327024633649434866384118633985777623081744812385025541193568936907993382205446077025368273723519678042907869567713939889423919129152796081108785082570973449108795218582229949548778421100173208774363724932257417063557416620733276271680005613294257119100377789792079012643170871757777362673724244011302055789437350614567745769306795864154731591389015425876275488021762398436253596652330878452153455146500284905815412072488358196584015555692863263718577899252185344834189437261278779877611941539646427951023222146482802149573981860455041041784418463608252592887873507422998533072219972596413121935221184131648043756659015858220659457646407784434799098061682756564689204055497361987707588952572466094594518050119753834200380082234335692996646082592466322005478014875836219080195369563974825600004669702046048191217247879238606118021386793745086888410115667662463309942337099071743583566654461847038863381967187671556306941842487738665606225930305271126541826448710082560080753503209139824469101328050966889339612122291980442364902707735256108367141631724108047771353669766880081992921714196157988284447696937733111053359010288061812101294616813939078742078576315481333261552876211762681117040389607064015465667452963336352077817890129447601096948306492692020496182939965420675527785367449265932129485567139612488867493395303581205333837031355343244097108586255147842360061777817247427238486871378807208720174168022481300978086484225535423150037059961443588226605597218233714052689818784092465305809415493166176002440538953984504019351352318884174601956011743418895758951627362562866489851013317572356047599514862569406139288565963662392753609963564867981330027023592061403417228478714871637163753045681863227828322692746580194320653871161189865027464337155852100207527249478284318387483581650590056650608696026247563363008550994533118229790229372342268222732891978849589831041968267298797523677501699147319487012897385709895541031888057848009224078219760065684027839182788397513850196594142697801218101704402491334380046132513320058952521509653280268606148555699793944481768685213388187755269995604691413778513479761165006953684044081266111428775594570663907958841404380731559306814067856972395205033817433475244535649572419248132374651456524538676669483396389767249052913123832751592149970356983669846085858406139821861730618052176140416001579414720365534079847493798763396446061784689258826497668090342794778377614299796615535199983023673274366434351506908803460015915058619795639258570217107560273118578333527759496853333442392785950359814387275843186367755559799589635193946090186883201435065825470647503075588054028876465653524810335993519764866346110030878206552203177343504362708880620405272190678194057742441603979955241180375313828253076588556461828985012931147483533231535794615216470086260560305830623793570629104008627048424358939021720608319015109540976262136632927022163931015883675887097683529450421725122969625419894890086092644461039733090126090795250620217326081891450933920302430388869150845931251473104073026269172312636480750502596079685481613177350106568326840561535292152097783105118773803138783968655020245115609755371387242080711017695015562358587697513834795762856337783178937750215309464345307392592325429024364951820084259718215696237653466661684172020050985167708986174347067652760077053998467671822396456256424420487098693437689524137156740591995497298466723958554816070885802811325823990789303418113831170616636978656865141173150887783582179972605176564746869435832907692143617101898123248766745272682605950364937083236046348187526779936847183852788447316255929134800941027928860409974084375101151640446123998972103341762459014768513505111681476939358620562594227327007363460171938895477645740934337510078041031739257326442936963770796040861911445646685961202882516478170464667600101462135264000083993094483344942648948353728092389194477776172414663986093416960014173209085975161678513310979268420824392614525332284841185547581490345614987712377587839243052188897021640223679876467397491050436680646273171225722898645143878717205974185150212707636998089390117715656790011694747163134062689840814697304739810226393617288033478308386337407939698941184127960737891256883006560501501182612639389815835970683256098701209742792655122851997234043181064071291138624324754799896581604157153436431538343377516768244799196676630328564266989705885176074717608754451845062870284130127315404601652893378081585683726915955361137628288319246544183335106155696665051579527979629282781417076641473339828944336809883066945954549972254580662064673561780834743423578875413478160809953113261637044960568287531305045965791730486372936646297249063994679019652136949487539600921449531348544899800750455014440059568009916279458820918868760388054651732345621902099253858737131056050151214453789601883858296658868103003209332097720729656770644111564677232451546573942609470167908533516873938175634801850755366268594588733444692759797173292437559102318741859656004290719111158878662574203622307134293145037059291504596117308302819166724721702475751830574864037876222357033401739901240188624862605509740870913408353801836574529207726985841838093803697945217540456391425222093339785082390698574556752331875578405588240302981623182374951371439144815818321275104831785068295127163859075291331925107035716438243311937576726900939710911448963131471226997481812383363488851405572747489836461594458490581400580604769096122646766835835921734177963569481867106057578341329351666895992297671802694720619463119021449959173698194089874363293365990631627623103562634749037905647273028051310747142875983338852178972557757082027246290206050918112875591798053589000984745883514762353566594521146821753577551771508825973115156694815193290959870559846323494177647389215990902835136676675292364265507056451703413999407601529613163978656254815691108794388288303569145197398268747531710066177903321991860078908601928868727372819715759236221437558955095661193054386744577198504569201261226627947579166173443510945473383631362770825620004838558441108895390207072458945960266592164797374470274793278453397723921093637339273208120852841666520395677434888811885358931570486369894101092755384745521078042127464483909123489079672618455486890535614179054470377874290540599982041801808338276922425447435693682744069101824696279757875091546060943384329267556287273372331189488320249932471393611080840016332793328008814936580591428829571257691376704395863900944715147681764662515643803540020183552963849651496248035026967340683351434720648696583847966654363947817029782186610192822095480137000075213721830202670080440379234763135228331156833308728931285560418730285159104757957146780130579917215528761705766659765366126152162512538017683801298587436387207861869384853848904243854722633944497993117944481465787665983362691000161548589266920734872195548802098517197878518235820951562471400501966911614948371611342807373426454035842927467485808240999255886730168364430603181581477145646521251112615947166665091450747628107987078600215158893606152550061494579755282961565763556940165546445742522459178613231964465288524385560772592180652680660607846065455652158993336543331544815820897535673319279448720788278708232323175364986844295198661695113370758767111796340260706819580312070035577684189868696184257528885632010731294961540431522001197508044898804645232944246777410798394979691882754762688061463404518634841779303365276417607851630667261968054335678187200535788205930914862491517549381015503596029360268119205619118699142812188941383992442553981253268532711475651400201968820921918565974578096461548972686341476067157853162489280220118897226789599443628270660373825656120094422036980428590710448584624751513561969608754754684015209698339499374082731759861352617426698573292621158769047082607872382198841109110100430243464139779395931371109203871919381774098355103043100124496838338634014192203527651382467061224000660555243247751670723219203974273675453553740124294208941732603544026250200671803386066783606948073890211897633876191547226988631855521145462590279703014759949120848201399206855862102172091065257771268091210865957790080811806801583727959792142354702530349296011136261060632641578870497102669181895153139111119114666356495314021863586987353250419600881017985413308418608743969061774568942849578608847988697362955161816124288028580861922529553241985628395951451797615153473678087701732367540988277275576622171274483244100623274290708417157404768413835964564657016882025546915831317831762594849548576962820661970706511357831323979582485397737941102612517113161986414364351776625083729960696376501432355461233114321207100735345039550753145439641042983592277678989122822165105731831201168095744927619904890407827056563365525328159959994312080711378593907374055793294109719554153194134446975278488103033558342275882074766544246807091588616206578162656217750154497342048278805174739290004186404654138258656316833534031921944177230474992282258367813967722199269249334238464504314607918692895574750940517986000247752273319373267753060687181548651390721013836643470884046255184167908255766251793535391600117956151869664567424567327855586540363772320295593148201847097748957916732141441907612034557075496864009372451095299943469219149373373313884148238931183223443678078234105717765649886528182895212583837374922867890182234931628032205967503378219770131431050222222417823298762544399185823891044210165907542640094161794495312884462660510316390030028361179648092196122935104573571667206191400720240448032249820768971778576915936760276078630361636954075143122557556090615909258026846737726125230738916056355233315503943338816944247681896577113694221860155070732932075032341571269638351863522017175585062255756870163692810537972342358277896027995328657420764574283934918394999589939197999226010062450937000086659833896177975180925055177721983641026816587327967712022350311451260835727850773760162244384124584426812485197100267232066113890613439496873023957764474699667431374413281437626445895530403746183687034545520222772339975187370450874687548371307918289563781499284393295051420240571544977794896214197692063995122046569152480071922202847049222310891677878006843676334334261984760063577957821587291218648936188520498504847561120328912191863641422765804853529919612381037665081034698765369171787228168035386837078809441768396409410429361694084499057202393479045239207410535000629262655057790871856948693883977694221985273740752655667090976044326221475922138998167389448663721581724356424663406057708401803793432112265799817366234459736898759278949901213317770188411930460483518047683683972824121371827731916637515630134257731332462920849465646877681484162723284466909405041872183028147972379380341037504913368534845210685193236863094689673187768121658789817466851291668187500633613862482725207675525551709338048654461162506460024421895706187469332571820986887007936601864728237799483758236164915723870041197215372883195183693677051767003712501924458178470454576979697901487255390166201143763575838439794590289894305733689641181665448423932925354170260349411125721954052715011476586252573617478033601259420432799370421763626908099209704904494001658864372321192770818879072158610549198579673147621455370407460958428822903267802882630973058727748217361323141390275947986909683648500481934305388222046861002770257974274969569264517597493124803266926141132691052637303892592356538473304985086770784862808681841424823417803967139673799589130834430474614330067981618460273332954593353639264885618152210671025505093204349888256807468723805422214392456040734809569108472089218282523409295363450101892337892242459003224304424895806045173422913908466903883165045017975235978223075298789812077924380364340949426623999471958460639077633309192231001884724365047475477769754898883506997934238187496152418227808194260146643482831378336607423881734175920822859207275886920566323561374602411839596704463537663828142899414764747724914785111453086908575207154246104935904993162006501809366188108311254747989603754194767418946901664578356606079931336940836431526635240193239135510652238241715029735020248739100639657706228202936929516276218722240747550580046060793978379704148364782958478976323990920091103286570980289791732625780853281606194594035165351335659339821297256221462129070926667145110610740624702927940391473672672312757665513369702663742583317196738477807207558235572797890869643932057219052206140684920981472724073924637058892108897618811701329315899926949129786677576250317026881880017306560024462767583022330675571474257484389685994949504267689651113225819280975550628850721068408605508088441110848861425420927388584098536705630286350661539980963941505077766636253610289769836968874462424642370401790519179155030943442981523791395517143435433984068947788474092065713284423900867376024125221517799347763770718282417290330631300384067287340052491538654131483040339368374714203733178774798851275392466654761207274306107074631142533962177037746718189179126820667971588392200524891677427191848489575602906297987133552737705535527271683454305649959087934743141856466855920260426530777473358521757780491694739283893330562685621023575677199652718847680361022404985935561564273885043874365112533111889877497534950163037637834130937993584433992142924130595036632795927284531525346525661118437597812439016975385707990917070226018354009257423155253986946282538886323374964946191273551800160640561789621683140816427253647334153108463993635145461121851401584797235169014206960266884015991418564620598608631951431671239755419526791480108671714226178778193607571291266778717292775819697892582993259407446344204171984172656923879288422304952093282840175891819258619005246170358420876282162574586719361208828347840418100469777411461205310872404895777223666563199149990059874079260435594506527687331081087029727238457043923077298226892643352571228572361277691631793565199453892565978755991715577628920173943679799578489233473703570012944102200589854150762970830355954165223573301737554168721070563022631071809063213419587106672052816124965985180431749428470643594105721656318100723203125732522472232433866022825893581161823119192987428136927505086400051425670945521937653831892053587607481905828819973786290766652393747562718875425156790158863347061605870663562937210926029744784160191688323867842833928256338126535565903448422271408415704832539934712050966318268931377021605734339153643465950942096537155690221270901820033170432006286794732665817185310818944618219271554352227894460728170736715792102359705686424431760800049206244432421120562173980495384690215357328649684129217421017281010656348359241830822744629171654446039557177689310078035876956249326258162806000304694614651786401251756847635194522265680338313762187295179256920838350304025890818538531783179419425075390643669563661734234605839175297892680655236670094179588564583836721271955551870617067332789067443506981838816675437233678737728746455860236413177953707529367239500105168992956315616821087404722474793490593776081357766012896025601727271412124177642129250251949776247041432015740487813636944660766213573316009788311882538175875178656717933940757535122123419471069936910200280457999665442868970127276993459741407133521746482453833468663297425591897627224847533370205665142325469290597414151942855862828262850718294382881705870445382741367198708510275731085090750770007087362460870626196785948995634000488235558434720007647761240900606515063140218260917305166860445026722699828456286747846972049363828598131019689187659208723421392964147882664238109863376802023662212014206860225604260704452932006380143689231235782789706898404036983171896475831253877929742385027918067214387004923347172473703000045357606158145419338938668288659661792835492138951698938810707686465059745649028191931244479933737801428244092361534119984940018952839301321270371444623142518849663186884388636015125220510173569723331207731388996416675572399432597278027906568449290503078438580813212045913030131253027837532748478599572893549164815031177221884411878742870147289624101368422635540497160747599167749138029258279035559000080882567455093653362686471269507127601237718091392013329729563498998265100322578778751407408155834523943191285413749319585402216949372581543420702169153530157093783522018904511791717930030526873609496276792538300165688371898416915433730716388034629284816176150205828821027975893520845341505823894504149935908976784763430322804273018970600240781030238697641264752703685229637314561193675021591141932866971142388702356005117645609824502637104744641681646335782321791555166605583052826464667641880362773162204499847055757754523962770910408349613475185636561885758203745374437124316515613628803424252517042213500888525781712907877876115353620372334486047568401500811271561241028062855904323471407375049314627213046642411079050725414844465210487238664015813572294355885101016343585845287367613053249897811192174247870963601696256145319458202866676374513582602551584829982402330961332196109610239746130867926094518288540138481705039442428592821942763293405168185497579641600468658345682477350716073332701234305436286046122435442101173109406098244647834133092483096474532341723930277073599314670189203685327265231318438241959120775267740854870032927209794836507659824773786374125380699479719060971137198346389478455996600618558503094843003321834060363875739731311009281810623419451129337240487179439236374191686885979515481002525915550937421001457980403877180411708869335960343409620877825397254117299827837133778590557007861227251700370377053144804065328638578950046791058189659256886045557712885432308183036370456622408992296807569999083354968262032166754853650435666823256892520217700511783553939233626111665628679414846901405457628927847227317629473731587537058644874919063392765449204015647567979610026416497009955049429728268189298518522579170896960170856237486490779549604533450126665740924421602143894075806263930837309135716962062021017321382386265591824967675423146105439006210751292792104554414181514025251840086183979280519977486968851791688746795011171170101213719972976666058379751892193099197828177755285294030994622300066591687585106154155182883748079009471295047109965483783321585018959276431982097933615153536802691227654883404995199561846591338487338813985858194696287930659658412616809198609867244543223766859336474725172471083444012109832878895807542229776332812118710712610773041489012625851041573499476716970710508800402246852212350072063211341160841675881799280777057880295076396438030391862562854270554042855617451411355871900543673775440046493387177106842618585695352128062351790521895302371056223734037312292216724474330126554911258024647940644693801270599106264793645532672587595807430893523573858082104336463073995882332104976034450597003934854677348828034663291939460810689198163691160051084428905110054785063356539962356458109246284772835139794708449296503405423469989841913288994250372286149906317725317137073022576179240342810840160240245011496244642510376637556425966760499703361965433208410064807472301705477737557761158056359358867883495580426912569868139308386407940177924254887256792731689898229136978092927068036138262373833282380914983105406629983895887289397119947534485658764478704796834747566984373311775347551467200630108571604635659455988790072561546596294143693334704445219945266460233028407122406404067560428346900274962456976867558717350571645509565847495243953836823635521873952050869523721575908167743614626864493161687262919362598306446889228255830032960967075503936097724338371817425747215019175341208639369603106099499638038809891301633180359149927057446910105672979829763054087440604547795298773281133890164288799727584923080732578976646027347928670598019687306827669434290984747628572618806114055886269598068132290865327472303569842726018807262938194088785603501791707654867177485887356998890439475856900441515256167769233878458436447738044557178188754931482756328281121180975231516226617768194861422138258599842826931272159449597527659865379551191529535309620164938796466914766092924767912738943754430531086184377131386889467302947641754596280884462248156448324107886068014287906865765073714982258621418366717118483995658562941532731407216002135018490890861734892769456893583735504773964751919898913339286273654789135158385814090672405989513034459726661262934901125024094961293807911680767785933206039355810093401064533489250161458319372770811794441950155386568090317829082789558501371774386116727145663308691647811121661522036050625321982509662567650076229036934995971363329700520830218736032085615353545995841680896520660116310640456330913146357964209829198278970794594501814252864921980426499817543904724456879752928319915670662463951670700434884792611282469624017164859250522600122749519141008900645258602676148500458700457498326812288608997127906409479462400645559381173427834728976988208861900375534654031873774912946600849872378854230502329742513259571124923033666718488889704908177583848563124960952966800092141132995792697534129266193463218370770139928011873504504219066521244044938283947505538057506683509924353706723883505056020012273107360275850583845581185832353173177944874023529366159957919017054512259975159322529009740160482517343065718808649761854036621247137358425394006676738245702254428023373023369354399464608618529064184568646700462018881944522090734005880195683138795113062703168653373958806994780673442777818933264443820821430498173785255939100336926737534791789566050766867407748070754956660475027166970509018299995017753592210654570836246217519709043790213969141715143014315080583594879391859655915012705425728434879360401620492212276088202070197386764053182066412608483083860293441230311634118632613676491556607042065311617021327238370869760051432227104236110870232505091238349663759786972921502009552094385397199158324521167951885583141305688267615283443906007522520712294855470449061603357792456036078390916082307460747317362994786575915516646686431408112437506308466283919035383103322624013665738598674553118077416907717586213144913699165620789963516808931048356248707069603509548196120442719180143147512195759609929957218977790504490713143272327080684904847208471563560758109107945594643410426100462652035476781843852644325770908648901330164997936989237992663301975127232759437173285845514291188285722401396149550917210187220785609371164870336168542656813352210741378873527850129389973246341425610025755168121155686057159855054777100488233715515043116429742452432630919316399363024143905211228138295866120585665097451511572613760394009469786231773000439203156308532845172423946546214809875437902625188251389578796545832090826606072729026870807225011840830495350362045522000446052400705885447756312602303468642378652818994169092919237241141371206970679483955770005166644286199351599913013010961401212618538757016125814663268046131006018396040617012625008017726091670192519014020158134799625329326088455161159518449234830240783968181219589706395795336308872773316428365710337889586991564427645080811940009232788813778941226863181087735122739109230475782220200884527137812986103054856152741835979170502580101518672776187653634192010072186709224537408373648919356707306127800442756491052093866764495445089446190832857529981783056054871431534084075132554355146267057780057805624787708060925598623504639925835095216128112677542912380380634314068702723152128197680856917099693076793252248266485300522471161038938146738974754691276528576079871672777148313360463998468716074719822918571981513537168895947325780801121918627300663251076587250564910975790437300982572516984080128158500073163224696942736767549923443002953856849304289913840394133147658057023386240364389502020023331853674356555537162673809211424894579634111956326558559501930082389639160940236798353984884009890188834924522875446150524383559039912679594189566480029868460381086172735635710223555249669353908432712089415780922453965963920611254592154583067493590656712833863600571059241069350116043446034321483073596731364848581779718996039073997093424900880769882310232055573661144093094941114222704446363697380668153935274311181663202434514956745070701711203436291279800515283629149452117655287263167717183649116726394562359029583534402027645046261145115946398359006639664445015207033869796399864066380409488371761282401618080382260399592867817148493947734466870457612936517560816676109529138023290273596117846063721392909082525551428599855568639167046199141561822338452460346281981492269624323297990584376415057986067954837897228981137003252677557799082685275146652182412923722372254629794664666368594057286188010581719756559057876866458434453402617285574795197316908618380469303692103806186902398907472045993415893150510288891591639409212168819003558976876311657832031528143692224630257814996053381234010289874319623301661180581800648318077964150986520284084726407998033743506073834550381815015755777766016740376433318285975557746430507088865397832825237146511667457326794409563619623930885439253889696269362390505328691280217892737425743126008291020351737098674420634984528398326118326207817814293709037961063598240585958443166086798676824595717605619023898627051013810449458170413740106789400891701272252856103876760119771178779738465185627165961339305506384536716169678098262452478514840297966440248514719020986811120100529994924362927723194094322653529195618550422036629688922818925988079427735078171445941457341741360221937399256250219199694657007947064485504305647612962091901161092237977117952403412875163130716765768698566016843647584743537914158851351485090279566577972706598560468592297402208505806025599837872937518807724424244306993018205604438205004477989409313823281467462592644614457890907076335649297878196741809262772705131856717237645927717748742125875333385111415234018165085385879833857525304628461619987701729072652252446704614497716667323045468456029500514999251965525628105995434635513044946557774803766580982522273367949035479002612291410543578102707794501061531722076220864677761423100341334653913251895256917372005399335332055224931725061357030305299877264432474940990190533212280763303154031266985304663306081322434757440641357982364345112238500122262330168712545310168835463803480703169194576650958947039909029396746011666552697472068326274082704808302501627662675908273192997533637465660344811393770431835280242227008165329338199809009883891513576225195890010220442030113405971711231741696620349430753667010074128439907069554809945724864340343262883245238030306285542356283627639934280748304204859179788554442634898019336472059703709969582517463394671427247664585740418927599674782650043461807924444912809099043128157891953881805619972499500832704691340459815728951193792620669936170673715251613895928604695475959976456974441261384412996987852945655389059819328092983324821683553047818715054629016797936256029370648526138995447378453652643086324785008032215977485626893288628588158502725996027796284478863287419243911610741654285856747710607225745611046124848061989663852366271345855172383122118123471592703939780218602968176107986235829948355834904066541431396110941830101577650431726102028936560222011355376538082157728936610557793982785044750733142777772588408923407153820285485799544280818861339030196849971999363230306969598315468738066265722263177191169049038554532805998496976259120862665584129888779965563656184500587923958765719413792622893856991037459320728992146365342480814777587561661360771977932897794865127117791090239349748809179786678151598979988420768235440226011944155175167318861719495449021557168312563823437597614277003096590028040257498665978150161312172241200278508687524234364575831875853208617101093001165532139003227465884799172798864693928296988701992789737343334975826277150234816242260043750397323463264715110817891075318780572610332448750566847444136002183275320063461443603157051571701023145751106704577644378302172092569724863977377549524485641119732781804298336707286336659341717225500176342371359423361699945175154856474881284494300137377094987048957252086595218770453084267486917664010239799417066877920231699141487061507801119038782722842020861800363285320528095543913905493111632017233141521821763064337473193701708612891889309889880595365424766368096668768590756670837793758700114725480389303833684358703426804715788925571162692258159635519295298790030644892631188491039848473436032578170577460699887115582768594119280993092347920523348263155255416018051268346812108697507018233046960788016031381805523329236716722156927352436487433615087892155888448638903670518668722212275849589197574086961347002640912317418641770245364040660536900795444929420621645765689335312126809512661120456919901077307384570189828411755791391120453220102819264611359812120211465680094906488521532992006525360101541582161707829909359554281566301724129034887219114922130414214743451943676634345493367539697701033719384626081621061049188659516957673828230277662881144599242038558469706179253015759464095041796114725465656417806379794533471295300533079314100656167933107434998140485716362382981705526632785637549798638515404887080013014158193344360041089080365305115562629030604361198358906380469678479612259925638951724328651476358087301656182763139242635497770698348672141607172045808590251060766170154244606456609838101545322042292089294698842429358264134818794628528227855828056711986257353953328816576464579646661870924881386913672021954341682646018545049852734494467681453976910554529197114434838606004614342403966238406805176206791044385591773320610156125832403772574563830959590730478258066003486260643022557377528339158714889707320649736834665351178060338137968175242903440850225659027057619164980006538421126292455818044783830365078587070617761820937528628165060248872559027818619615310609253967643596628463145406753822045362607618390306225957367291087618259511686302899422325611430966358708206177827478776328467741278991954334363452730128219151435080118541609888931336968214006618076735153375000568789068203785607812609391752109067818642591113276992230535315672285798783646135042403847213785612544638493872760588925072509449308359272121116611309691475069514960138740285921884308811430603161021677342070871188735376002382940507386006746183499776001567373394908725413215887080743227474186156187630195824891270505916736605898636718348831881052955325650060115331885468171560979240872171550001197428242561510888766022774018274210179896077447757203688101359218627343531294378260616818278547169361967166374134490690652141234066861415475764720557233485390434267360841807505906596530578471620972347317186478749972433350069280218429497705745397893086608038081976262562637180333101781334479286926726377236571691503338642860502716558248582194468479729437225051879179293783637265830213957002583880421527772112792556584296828286035559588400779003536932132982630735254883130479954859618207573279100344119117374800128675535325860278313357122416333962744312327196831117818336960829002981000768421056605286503544368702845661688534102535459475989220949181934492173255932513454368897113307304775611710979678712441035038905667264001562557283958752180188215931566515920723117414512096850694152874963125067388549347608663615383056448761196970097445308608598246926853684245115177439097232725688020041426277277203265981435243360995708849143215835511073539218357306511255409781144948138433075958230627696651829209409173478375736167797153140410588561093386246871484449532803901544501592470904971701935540169230516696154124871074796837139456154258872337455797814994882766125765359181145029511186703098476573873861035563275697580886507875331323033948618904457307948184225625633089354359603786101216878532260652232993448616876683048420613663977581623896766417084160417607474479942653677556290731092375633349482178096628602449869856362609297728142425901112024014719120048358802199222553231223127098555762240174915907862115199680161065518218205771681948616462100617334470622853176434372163548209836217866027614132356664032046334472002383180920889395452631931383444152123316786948529475965478766118149410919915545252462976814224191168431047729627963242507099474318354500652135949590728371110322347519226889671666560289670178147183745979514249611445539629407014692925550069634883175849606190574073606426011322606971812677532928088498462781946015678175365681418391634382815087091751675626701307083497448074031259679184098488530697938812183328458281102270213280766574523044631607333893163447027593150894906678538763452780818698162641750059836416091329027525646507258489108826586578299580444209420774348551248535775529759599870465522549800563732889236531618727631907599016933895043132015733747037135323457612573181960317447413119466340843394108811654971533582149403670191582928808056550245756840311167479169833356497146443763693660509941893622863840992606640004581811959511874845693084313191229600794768701601836519458927179856255427266591898134231961393282083730297337000610231303105903690133565465592199081538355755490114902970508629569458616323734450862581180933965162528893581023089078466889720867047786828579157704286585316645467184913106889122115189067555487307610621465066980025042816413012961805605883041071058827412986785706889585834894314716924428139597271376375482140880075109616009447082484630192179685371709286457705627651495705695691634456699180124126727275957797320483929868617791800544371756759056189869790009879929838882208113627128335784128764543964641671563648766524103231449374548053498540482066964419599679167496897472009513169035513222129015406788576351044936163597571234687123727768753058551886168518694147289587340526587287774956611782541159992609624265213896397706331604968821089941559299090360226603376643816237344349094446350177568058193099663569602797802012765681515104008386708860456671422440105929917983736775967884072601773099822923300651066409933273700474035273591875449400893350203616133733618510890597025953751825391623125754370632276649840307326510364735124198423533172950893127340297937043303876876179767184135710435461573708127982311488767395620372943129817944963733239532984776911489118909719405415530737105772332139658870423913901087924619952761657410364080674509003910012203899217922101155665132720644872182614502192401792507030831230995825997676257582721187064118308429034290496868140795330706960371676288519668111756258178919678912031429451405039071918205082732279581542057910494523541845309163365988984218005148172345599347018521496460804536015989635903131645740253436304575544414341036799149821559127393250014738677675904566272730059268207374825607542937938411589505543141151309263035419130996030427371157064206078622577439681285077878862246600199028317685497197064593885410562124036591243161902196675497285690600207053519711423152109436265880491412103344620913217435937055897378782171547804871471182056883026972658171875780195954647956636066408484889778130127540389692640777649290737518562042497379746319450234725021892757955200727949588197063201748890435751162223098978253237227680411181396239536138703215593363317248665145768878841727837997688823372562240509132522068695898145075536312415909491853779050859994962790792067625043162555579048639639242052996541843098382367597741346335820613421859571537301644474109615971276450410019530306210964271360601224703698404629051353295568177925826674842891380069552214897297695059748474381375053856598586952703680238139632507347211429191674036440176269551978590400630851272847101945646313888510477431366930409140700392227214307023051170226462348331240622347214080390067389049282919207348358082331289194263280155803031776006133854655537655779298353602273786834068468549192924257757335796515763472561712967929052409541373283481245098598068321746284250496614921502694091083403826646422985838719222860853323375291244150651460122642512053607590785332311708060168592531244396973149261384918556777745797234860770263676052278344966625194699232755104116912724735478549957511384636566093497949331528038164139305817413040828164222172703811754744598636640908223268829345506428220515402838379309265373528479550953656471526648177081191943989631451753096593670329833461904444172459688205856845566583212035375446310517427232308524840230498903443688846811033073326554120076934955383695661868356567593934945022108264870531360384437049608706957843668973679265755515900737018608803695679509828734355575715765090692981538621149573933254935649815695040777788352212157884820991770076579245792448871899714979174250781913655498972788703999389426103258453099101126678955569813627250141949655338547305114433431189028652601922343333327312701638809203558442346551015102759211477212683581984293484711764610779827103706371881187013929321430542140386423555100929998099737318888824672734623898529899946352054545114467393572709353072378746514834896076726990727801703314592955115428631952528744777863115890294325978838202882222994679980491790452209107054102920888710909707817945678314870302300568445933793033282481381496336602682240645732404417058639511715096384247582003134879563775603535144705390520493336162055455894917645332271320230285369383928721878616833589770261773700361156430607805542758312925678957602204671833811067956721386199020173308020734693555906663042292271992513762450569565512287697649858220154850886520941189583185891213104158476080651361974976524023942534219216472909000189905717286615293110300574841750617268186799587525246659877581222124465619082705184764272401437616074597207581102298684085404393352385767195626375203947191052723673290560298559962986157538312785705358049590011168161660745825634383016801094973291529551097344451869344450010239425368216726519161267804680734344195307431455229054225198693833649624255927115707326881384283121706288409743305965661167807454105371198390698805440991315913982991998948150945667746678041730080772716777326527006985772884348093951260969699396578211613092745760531742106661113646584205133708547973279475338562041868654122812054819979941503966700384118378397578763114702745586835861495931751150564872388971543871909002874837200183626351063099308494716193054594918580253212622724495531587145721661885851613430146740833493905197483516557060288430981729767020676002531346158975255774820236220932838385093251179156426300603638976863496034260195594849864224892810328596482558583381597272202252892861924726862594706174455949575428260633952588140060111863804970106307122827754311941438675286209545213376673792949495879006242180365763140229044866559255676743295303172717697621814899417729768280408162836931521525679346965735664938870701634180270877355383797778916127916146020788079004631823622078908765118393024075315933045297205998451302749504037236757200167764404203859077202270322484660294507871808268548510261018665209876286426258034458687062941680284388784860976767978382719336009245063625387358183121039914290928875499611388271402926881239520265762368023373719074005720420704978838736648017059945617962994238491745111768754047015454987251402690600352727591148593367663415701424544405893621373344625100479802261907159959096824274850328463058877904497606338323666425939135749213275358563262648951844979100240077115563257436726762993248619070886640817171811480084039731126336245306306603966136682264558870590586142125145684632579703054226906308032853932757123833205310790835720569830066864309337145138952355644205108795569234522446420322308432256343913347061238561388156060042893364664769594025789723426656429557510071106731163530847271283440912004668587822979929475568231498180164733439793758409018210210359983723834446111513312577129530479580888992965862991074690581572866115765480266651618799135546039624728734962696930264735717731796642958230258504377906414610884592325308342200502975821611621126546850023461033754450806343792797224003370621467194459579372275047984706184717472797723426450026567549726537495329535683629433298628944669094539387661291886935810389081394814566251783135225190374103423232388484436502536261449305220259056093898829776787110183089543149483095031384423529814470505569062973760760487271186570436878853779388466178023001007771287361925646397023709624076167056857569234349454828247666868129258728118149938094869309802346948512927127935284483773449976577545862291425031505626030111559583838871754842402867622210907739877045019970578477879338591606474157655683995635443600841711617180800900377196951637606320928471682123198430666405267251516403411496138145139787624134979289399885214242626943234282410200811006319957381984024184929323550688456640692359114786703245503649743878263965792972441262900215629807070557655284074644262232323355859041295545666628694758524829918802345188913458215184901218356228560525843259211207680975060373623814638863601817081161185236162944502885187142136347225824258334760109048870002704060083971291682169401080209776336048313045379548563623145123747548750028225897190471003970825443806340557043059986984604390219999939482739708560718365991391568534075312990513302812554840638807236276279525376914846824686680517825898803598514029050171140235948692851570500717159821595106821607307840351467068820798237084264047756181937638582835540165914064555298775597541120412758019843927098690318737639196792396804661437382201918531958004915654481726028552637633892038329582637171091132502578841479680576854112331480664734851540499543421459369564752652361912060255006710450295409424519618523912545953744213657163429640410794587094646694553155191712336039268589571826315951063273401473533527604119881961223314966206021454438676734061008170060789939384372358966430640105132020119870376061971314509036456901044306020444041341490730551211521521441291615359645555614991451586565198527412637694936600094536350724829527308338900916848037381125235605137887200805358550439992906942542155414305182058480260478108015653531921865684329557916248823223146037114207011170310463362942982878018331742672787216264065609779324928786890049934473079370512180638624440533548240637660998840768288225215463246248355037781842305715249660936768304982901330796303191131811102632767125982310468159567224227366027979861129808064023993977505537411588475529837495569478442448888960043136167488700970079492616907193699582736334042126734829683107983936209831486174540073014091488069729557318165490164082120967704944736227018277243373051121338590340261948773503714008368123900283933545208733499306287204621709505391569175617709697277211985779770400854476257874562630569189659326877241916818542125487764114375637310684584489067445833584051729835934133924957194824968125256868868423656745151344480980211306472665858939093779525383249924361051016756957300312758295736543328233793421044604740641818826519104450586142422628698451107731822834332401689505575430080958392460201562406819677672128310173563206639217835507882574011537678651270309182553680354768020926332397900568282735062097622226260930733140037391771400966249713812750280072676152152912964881463182600773520163107809297228859714453846951575744363518149556567057009531048252451376269697345266185895809884730682167930490462425569660275277131142796570776876314165094115373714835399070625528868115709527789341340966723685087528330485578702431489116959092780504352341501429079281791211420551110944301237626910172292587817335490798183526922384133083609275581062568624734747329395960814419962271858475626281329351570681864505260589208072823680757150360728139957409513529435082062072842471150431702223955016945220796213040129350463507062718100054774259776613419658095882801126998522998140604966224296389427269776632306179614098087347192719209056566949203066987281787206994589852358827042409513851219104833628195824980677649542825222045376637390244257166264651389784577296707957479085788086881941077941146315897414575173225429141807433794314232009986231038969715280124610753331422774616145632176887337884734571400840885233624818317203610770149022253998176425154056068758503377957774562963997969091231322463901291209609336954298349767262929086665574223123147131267831284048876377891831034914009608585141852324501840330361088123641902073707031315147948952409353728185376559147829045903048118830662707543362084254667451818629507302898097586852136498784342103513979036722081349958412827013775633032445821603908914898456437972969670490924901083329139425841206072429031898334709167364085397283434706687767660956437210535794343335209575213158186058303280717514983288753372113187702244631595982895004726822143600697771850506882493648062112670500012252430642302614451076366471675790731965397943170168159701052904464622821669234257811419102694640861472137045924000263162906509387962340633578295907398476268577229837153112988070044023464743829935079537296510418801797962525811521175274757716166749432045845479732560883035249135102366082120799598016974184183613734703961509771264321938888113034398553118169207383686741126715666414184457321559499246359514177568311224420349046309983688541168021959828194434881860798038108855199969665714893586400598179071634043616887329270738803674765558234288272566306927364611159362986055704843285364861695836018434437756290216884958386160538252151641177502937237894727069944959337930592619387335171324412938031779765313107786583154365758123784983102654443825146535702350860585895891374014985657366484257658421119410365818235064291284801697977813982689864443370346666676747033266851685666463464808650670306836096243409455331753117018014332301964071881825774516272486898183897363194880971313868644723234982947445967392924740335707643595668381133121135445544755773364628853292445293999995246530940067507724719776728374340700784370743829819413225477220054868526610792202163968734942113256900282404900812865168612852924655539866789591775164392077580968608448485420158350777210368376787812374559480216894894288818143305400547796486836618215969459801890287997223629646055990012691397156786069896100847855246101387346124813143927245928854749615968409110193329132992085933525824052927809798991574643467314847134408435480695637661036078990858100405990761521238418562988817780018936600662592211094288133135023848670435206347444227753640269086304610976590640388759106220112602427934349416006136501855359428239722028972416331762830719199947039970875116775663655605938067724708079968856869894334672897645647321785263653500654755872745675987899495778663230079963025336691982746761011065134981190348023341171886585358565232830862083985490066346815880048982862040170429582013671174601050654967575950938419999459677675364928783690473212254695536505650790620795539467159208635472940829330051217101371345647126625788406295403150034077871346550645408822114013118563948080245204018843511007285216561597536272379331512164830455971323848060694178377889865480765414398519718433010750758013172559065530287193342985223145569067274667696822842515986383227195250974482856979861441916626880673774735557692755432470649015978219081722175022109890944922828372514075545501285707230973398664355055534142485330393488220108999117506631152997850761275758080246198844523764714161386157595506620192123089912240006331700140077382911771358440810193513947591221364120472626450448446645731235222230987864545022623780920166757464685818135614844307031679792488148821357226953709841642067527716833841667597819305030173871546473151282157595326968301633948474331153686901637573754981894130818285319957222194419648428420028606112304261345382971953729489884079097268793145080772387608762064521816544506408664103228793432746506969384815916591027595793438200005060370604182265701651827337025023963797662324472412883671880593691304560903914121460353280074779487575631493418098427351780251795659221198844721225314298269537308070979858432281122992315236986656769762836958530286824777821929980161085396939025465681679340216069399734253752711674955615006782164702509832846560856155910063884392340465164500595112474955520963939335475174033829434541362792453505338153430060625342298050854992766561892777699557844673860369785148026249729013996557452482004486368509944666354692107023353291546737189101690761465782499699232027916452214999777129875539164137248883043202362869231842964357349779793824887281530769354350671788056992527015363394737058449738162199435376686300069133326370103574214624772131306617917858554048899124069948076704814344243766036455505584279169046147397953038571366656288889895172579173329497795804988579730542042295465927449177613173029697686131846847102116795528364598615405028421310112589760415910655230752778775588919746549486065275021241393985399298753294951409031291911347365457297211499079860248435032390614270081223532592641309824053839918190794980335048840987627158369271646387359320815886680735769635617678592463143637421824352048541177040630713677439789893239073846092029154879810435937408581136663862248485240295472878885864773303679311205308987027432844008016672875215682002538222312968244019794580232646342994055558957951373350004652413619310845877599625455235531346223107091020662701799612192698064223820930679685133516890890945339778717622727814374130132870686977662581326015051497813209964006493366405990180334802023819644879139148644236062716603879061481988652675088914277248453342878502592813768957051686605928060626807307750031901849069108609646731826008207600761720323678106331609326039928670395108604414915061747211983992250168322992706741852707913328855194655170930483112944697639820952770560130636492477866851319889423580088566939313008440420344405208788782919887746487295406528108293841667396554651937349842941848638923555237131926530785780810259886533465839241013322663895195246558182313205204004889670232399938406665859399165813160059562762843905777231202659797595195399501406570370040665993766363928828795543814004458773664000044401158692498916053184962581157460291201941769385351127098244000996885462910182481141138122414474046280478968725333643117700617910474265740594233768897348364279925135418770591121709083690061181924063945258062017911323110979051713094868519648827544331963272565552581820485513663435501421346372087245191522293223048362669637409472155105313375583543965460368522207659611348681574268811334367031765250279319886047352382481201920233618308286239790943066309640225340950302392640729873784502635384796065372583299151494894986352566045585986844327043897026812106198414942505688657038094601702492927291879990780064950705104866392162333811757955411027812246077926291183433894536427882336469318163926743382466238706170382300700456955333501828643866281500728024892190201530096665197212481705556949350117158098516660152217006937983913470231557968140011874706866517227688515653145640233493389288569452656827857144040019521511001102349312200635002311306793037165829381414934776754018971544722948934643752390916059524933880338690069307666974814709942923011279049853287244826909463524364253717613421301390170793161365057063830453997846513918847979175986328828948957818945216511310003059703575971778705844729891849198244296685307959207437791654538457089553284515923520122756794103030005596966694608442488686540183069796972513138093073268892390960125806563458223790262120237841492216846422006946416412713020396280629237758720632460884451283130845172023895510330824967208879178374677049985757096499099370424604980268709495707913489417545644651795467654637114894768659722678722316085445528458618979824253237280490859600570825140313630039536466348224460508433894668316270598744849232418710111680772903255236143717444034758073733095324392595626338871349253753616554268903602313038017638985744046650073958095085636309779075750188665126168416456419132642277184731947569206550092248908185080716348304474423854743537366846020786475485007902610273378821570024534893947968922276990908292042846052697238294512522106718932706468180554074270466409298955940592061526149549655996144200587374313212242830500337687002797988719596738050949406551857076443677751391736904460084378654355435618421971147823542358143332552959470136141574426218577833173383313742232973103321672932980839240881719981068184394184403475188992120217804828670665053736231620666015852440318151338242305987810269393443303800285145894713386798815272115954625856385007181814925792438950655310309785079454972678666579784352073072534563096789232078695153143734731009103081486941391709321013244792244988207184443904129319968387254505831255054201517120282381185811576646526413350905912745448165811276777891520010325077054877144363335850219780061866005420382152634521268724175238393454395199740252562264875653791524146926296815723260038089478541810650347221070693121672221011165696212764277919376922399258325136033544034279415429461291269815169347307335722063642305598623120123532576649038506467955054341843503672068570327946824957154792188113361560987930448140592099037500746014587839432638774482380869727612404658096610187226487703860256908042836273112170917586949743475707535209500645336562759021727008987104976520024580209660829046017985571972988413762736872803317422109731362652745148544181114702368630505084493240995329407738549146167921861960954705185462099092503635838167038790407136412313227084098408279822497251273484651057371112054131516284907536321330141203130396854396929138864035976580137692821265984851071862138395432035097411483188058787848894037753187307938968377128967950363663078894163024696775623794376080630629725075658202744142159626359266653126290293379276735295548762955075261228848359671364916408297885803199710844539126820943145485491215156284949288986011659993339817813732320376078204393089274657751534966483487503296745483023541704857542361059170993725988601769718887852425901657152158244106454514055255524028746529455304200467658644424514934848646179819378659072057487922532451739085067392509594728299762141554238597039766976722757479890873425040509269519277406684013274933798715470372601862619754748634030110359218826633305335402722633011448081955688533490245846840523885303825262621321058586154703390718044478875832151952750737574325917127483576471780140357094863967532841275260129591595762599627837226118104079640299729887121935074900540727004392922537846407511208849771628911939459009718119305720898280510525217668466192220846934575172182919642311122822650387186666961341161064074614140068113627199824016529505126151935443433942020742146795147260329755102504794178667917459335595662177135471601950279993040357640385637238066674361114542329273567723160843411944449375545554543620476570769251811708797946807390436711584780401150046084007800750440129818393876889058077130681132259937564731083898944762169911799202564419464728394411050956698687480881431012179389962965784145161069272812671276816031059754251969459222449628104161461815811703802908296128080630016754119515098670426209715669378198462567553367809335593855323470830171514719561507666004055607019051811019307335143040271400174541785192947684809719729611509181345224535461640401085928213238565101765073822595097225410146848412974084057218720154204200808345151464955272893599670315047319521200347983418354674304165221663519314597390309018630763924898315621547331446290259744745734032662459709695977077459044659587576250031780928241030173696235286068807885175271506587642547682629477114347096735084113484091775415934672643651954816653049812179669636796327509354208533656237613193537760351686685763082196877608454550389966664832081210274291421535240688232772187084800902499076480021202561458345957986744091390736999403922329132352868651624963147534585508149476780432846701365351438815946487141253050123628438989100662187030184025930177616680022595680918635329528166020446322012898909205930251761761926550215529699784761928951871356123546155693197928682756448147176521238203712562142540003768238466030790821870485619336551619618483110207353888066090537106942589673573205828665202864867989706801516481129384775529432467503579887878245309157045255009393633482678381903894571015201162635256641711646675315636605136281089434770954196296705387632052711289068799368384117622419656151689752671990141801688280233800901997113005116502384958651340986992225616391318660933931220987427443238280584775694894128532465368497015433633290353790970197715050819413520410479848185662930968196067700952644717972919486632844120259425853333650881193148439106078355861631784789070938229030621095445622161447816911472373928121095471037905634668224313617286867570869956408084504983182233979731021990320221791458524391052795960842079386226030547298893275408313371154477973297876272784578709937574486470042237550477401239047735544188850427412710207522799782274226120916808551107910590823153203054683117354173617283955494385276689619135507243512813852861690459415679522504800970932393196174433375498512495475248817983237533621695461075875771790661009663324233926988051216444434470564295127718812817708120786734431231865811300599106770113797731878790924976392904464001221069873109915505513125387288270974237416914844925877297063156021482422089732603829908104460566083200513743781097141644365801563450814173770374532981184862775929117429359005844829248693996322688259658275939791075246850885387440415085099613526567263722930126845358888884393131913064825128683425789783214216945899840251029338696298425390311463413361644625253713140169673813838971524160409101781799522486195779666856347416675618245690184485905098330593613336906501503393382878670586115775616609589678385326493547719481736049915289741492812352314003352258051765718874706598094940500386257565285277168210248565457844181511537612902929835365538401088964214351119299435893185851584489135139270215056320026195312080096688870347664167560050135633103085704312882301526921328142878327774341556532649530842033157150078952760095582029534406721510476084872068787740395090545982338938352348935484940922034462114218844976040211906553804873331034083344537877210042239017306051840552320971392215027202376920677847546270160725234510388577866361056148387285613930557054418866627940513697329681355251369529758447598583181914425395401801820006499142490036953745177693899122230526528141142879799797816972754678519938398470314222150134525689371544578005967404731642072852831184870351295635069629566089374796724113775852370969065687702486064088150500524876617139338503093883004724375787468395552211998129985713200359238475089724183165966922845124631654730940159946908831950572942516193553717305244773834141390500466850411338171865830823797972812816732403369346471886229855074818547151168900636434040613595586853003938196394800404412233897515407267652055169824193311376577864061428371703489850572400488561951693393293479538970746205796159235329049206869392071942519795081316277372908144366607952795872067815695710976410064503837552229537991992275269218087053416906583909384749417734912415547427769312825087531857443346405366015545055756417856234677154561331551720216953173399472255291305547212896330276648077194173180380678346213879348637280972241244034157503174400361909307372549604878916412648151868273570307794003242113425471483903861516367065178287301143019842242328828203131575979800513920746015500018477012392073761467465610002306896843249167052145362508835345149439296029392080444350958642817369469650829698933715813956708509090396165733060668988408321382663595271091273611014597728345080639174678269430970700249886901774005729852662032198932313739435668798472956328404254925260620597044714052433877982663326226189792574738312175004069203888508495504936088786687777572002098684340487026896655735148858168181488767596917635480007439364274298238448075541201956025253452728894628159423721340272590795972598441188435104764140781575905082878045649948528644324141033571567542688352588869279307936989333521087087016660415241324316325494759167479407201512356372800411306070160223808860835141282065520862597791325539816139363884091514110127375005523534243425840806864761700572725885084581608287163230649783959133439809355035440136306069413053683359171244784897037839980583971684188251339207543388868710369282146257498378269570296211675775403387286687393463955277934407444485176184338146069442234912535275501520168449538479163797223049718351392237912490640866467745946909339510245760889608443195703948806400842260048622381127913637761525603841838565621775043178411404220826251232342466570472411514450025141467231313464259037784521219358895750963053007830389082055411719208665024584739632334466744365536394208495898763904603762873314398387425906028753481851433472391279398040974808238713346516697882824324954216203814520600633358061766441790250688006582592565542351077181115805678760586253304944518326465847058976144365521490481298629190998211797150616932350922789852858517940416362416942565447159002438333702189038698188034267467517138627495026395916259548370880791935154289489655809382598439113759556937713800468449328796997824328615629715216743651511294270440882546071304509072984198777817855186101446781679556405298124821062702908798358578925052347594411585400662458984451112547488417247421345730398725251181187578502640131020013457907530631984720709433849836004015347934085705778148466998160646531757192784860490948268446850206173724127204528988393704694080206447913658976940335756543358816070060719880133821387258730859763047678613258978441983508830179970966882868294547910300967756235755296017502134334051945739751950009206117470528338477758165049756435459644498646511964665937597430234714108426512268865493301964874524883299179926218127396673910336566400164554942275829698826592031439977646390139072776605061281169351806336911445874428236160946247484250400844937268908575957150879412402558770887921978430319633178074267318732431566895219108100159973456258180416379008272243372307404681205875990632178315127287060308468141208783565369727288488806764218196142330600984262061637493586102577548577592016664338718520734940637322512744850832381312806710279844133910548025677383890129176534598369272081645398035984672648210710360563387484654782672187203413276310557425520962845964441703944642497218896118941818744960325270345771782780271033814336308599569382218924206777696553474721703614649417757048250786510864785822759546543539871993661072899798762677962927543957339346314420123369828560656041591341370155549497472059078038962835945427428519234832416706706034355588931572127392239219251855541560259668551131611159035199801555807294183582539923247757860294943456362275002821390116973103752219101247392407783030291515579877737804424604821806746291288098180461231773970169530045766248752943109013008619862426967577828854817229625811430566762203210205287119767324618852995738701751158591201382152420927172250684126204233516465203712953274930352135384489161330319168039341456759632728002023978779797336665440998983452279677655733486850314694363286857391809586174834689150347490601357571870423589826439286055025529425675179335235011863171904069652016271034856014901861454609767133142865854826677176076055398138854067958393555454451823226674516122471059068380734418265181501934011505699426969042381711345740353723469589593845657759272159098131780301006154387538961874616048625080490684489394967777778016095013893545608644534954286564725902947939867682847405791689839429328603401249074699491137312325309473189725866182241577877844640264643693033833624169500011452085161850156391723047914171384970777542961204361474224040194504884649007235269815930291783367838731903669144122479471717913859595548669702847591581046817425908256022155027257359837088631595172933717705419726991257536011665360996629757643031053999261417461837951039653397882946502382913411783204354825322334169792295468966527836207075813400199132741014243402375622807969703506869372857825558930439961297702196878118569939631868684813787923679255289273464382555611798794435674210680497920726216848821232795656454572243367753774585052887712177666894589486380090866440432659717637345513706896383101664245325436871653007448353848183581266765661628880127001487949129322635278334426234561920005657574990798351940699928964715930837034245624435048478617702052397271781615510146319845213022012838791693327265193737618798708669639028331880932915447436983415789313512725033890802559515148595796924862817779346904657246258067079802539376982750239750208233847187847907687156335469627711830678354489272770867815302924458854763100654346193372557144802056919693372551036254342541274299022020801458000770463875596788974739471787891974993657150462787709372599580942017272118983494834635142909049172268642860785064965946509108526084620709665760731742038065693099248597315152549397754400717392994844485612376051230153073928942870599735261925244226178871678052681236929693578025591518066292932775088038325494320629857279971475397492330158438136110120958338337465005025818758522010581458237475848527091969016543972795074249242583413931722287792340229875795602704987073100062145219788433150212091956122158596184136131464937866617986333228819438561040308807288371722812910388688172521948591835801130612326661118773747559893368629565218983983455402392112905887090069491738576643135844667592495646737412518962437164432166738925677272061987116962905340568596775483282400798632509457332026453867599263829121217146889784818785665951298026585183428452730498932163079900090055082714869371681452095843399888114217071003106802557744030039171584222644778856215131030983278953152018002361922602261822348078478911071707836218528852905751534478778235268866993858419188136918126313930265491119924626111150807839788177171897588522046399662303768413208459407598534791512112999640720117342427077236223315075304269960728064029856802980128031286233284542394797235065151624041237402619665501552001327451472209590389485047300159772280592940602075215020281849974502939193890257960602426758141632975316797948620182540172410013637551026693817355507973692717494796917423395252642637237912464695203515159271364414972004205743221895903432636095858349649662428631147337175463270494016021981073515300300239175151487065565158432147285307525158150224419538542057850513911009032300951442470873857678936231114857438533026383958033228511080993408323560727409842702790312236644519693674592472380925220646224361773449906954483395764069002514130725453500352061016294940805857955712291094411306256620737908653642334533985458913712912691957928236603560953723488789629374481818731083380572620734568546618878474469833903812656150717952873056455439679786383394549383978808610606635424305851391848797990757114378666111740663012299363421529268396129348882518725258518675392805193221775648289464216308104635168758591747806338304877429268945993136126385588925811324293101606421212165241660637365831626615143021647572106101710568351798877507737731434770789650368291327733854684548643550979264409141899662019752087095017123825570457567913883828095044647204857421963272850876722258409089679489115966735717470890720162059746491104427096155526168583154196376616657461549346048533059220618620124791183665350496011155035754508532255736118759547443451503351968296895339660050931122047612301108647273997961694030943196283653621474838709392809183673286865323653953339042037575815037627508631805110618267679429784902693278573319340606171200764575768992377647450904240482814793303337430945628940446434301261532379241960718923535542610284446006277793798372213096725031151288266692713549483586643331320098273418501265762004233221710622799587730379545367845555819510201934649100186396224663009884393943786582213332569487234847535641290231313972438374989600093840403371364852459332598961547787553215621108226339782533300809974246607885485492696490034453842864216820733137433305698785984199452200478175056677449518038569711579541052493439767563536157802967955853754876589232730780533747861194726095867261543972529190473040268494908031776854524688880861097162472645406372472990199761224474404896388393145553844588645951445642104940744480613423077435892670690045856286164467064412177259654634949188077560047036832767665102760766412594489516214508471085352678023285263565995192789408923847707499316247570391044731440744223287973740834467842532645113481675212279296155693760047844475992963190636466087010260016193686307674316925433850097206077366277744803774701064274328035750664162102310448995672223676201825645081519397370896865554944290006459962859086179763579545957997381528416661423392727917235329354092890341549516286338403601255748905092501962056551614175955996647898490662369634923377726446797726286218653489142617003032298999494456441404766367882207215085746123795050486665284221479384390858315936156636026820058263344711994771996552780235165339911456955864797801427090089147327623133432304629308916039893093973485903557246889389943901038992839259783889828657260387172566526555072361912122484538624299032717692615486705196679176197306389917105571838830603332521765590920301077390335754301732222293519931508492907143033154171848507646821298405016051471430820876614708658320315832064957772058971882525250740085905772724116601520546941669562226492519707797807929309946569986772352360313698881670208983958887770529365512935089974137563754823102589580758664500240358047473092811132123955526451344261976539626064426288764529797717468796804301423264790269666912723514972308631112347130649780468443465880427857435941391948292843401031139090368151159206236049012729728873871549074509811483057070858781826903359563874690262928658723089635284332040235139242222389557576319865153377196026172953193364149400591454459744499334217535284482785936319678000906727527019888882761432506118025144642299458578602138105983442572315496027575017020892872633862981585093741744419378888650093386357624866377066480201443539465321656459540158378728386049200957570968514168762679178260096535093441202960990080792287247820048440872341528220238290705819071318325382009579468108746142068728249704018982411245556087985754957202709805579228837242804447646297151425791307948966212558607435397766960522198693415438318728436239675278158255515562587662098113252628040677268098709758544770417494276315943261170256286998833989550970213296015189823003237967659375116116520724089207480074138395788152822655046216938690228410066609744414862232401933180193548110308650619973122049314342766613320292449081283254272394596068665090004028128765930411939164398045697411936647062730078105464136654042992067381448760765117085656711689854657264645156991231463676955629561719173464849426580629714571822610670572612054345547750243369477154962791079579924127865482374289699033662534049755182348832853506318248725761827842962110086413426780701189045587273394725883572814994486568862144820605485083339735638376369199507530695738362630425558090819338281384939705623587697635478727388288984133328975595243468424554532084611828581327662107062874110887987392402144649925694349884964544174575197841018969260515341113231148393145493284606083746213404150874306157131633278887434162832295316373515534122589008011367826292684377671785078528929026468940534368119513504808673125907553197357585897436155159187435217769241974766637126301359200961583983191192263934739145103143230676498691713460245529974174522096244941668631818221780770951550755497692305295385367537882904793373620092903448751133698609878387456154269507277701334438981401578764173584703610453137218406539190161142832844018755083915879129813767778129456183558556165813561810803116100848001437279921475736093991361407412481990403686110409773560642454672269503812497322492104695505640474331286192545914599041576436831880229343914721171715531593109027317966689646403186632889133206435899713468571918787649756293994919097576489988937277734485189748989344828930325026426070833726042615328911155222161853171570392578551911213148296403346989254526856629067573622861436179990153463953651598295844023575244351356967428556596432237501299047385566550397393004841046973374191920155806062597064462246526404062676139158753188132706382022574635775768505117098980289774275741984909732662473517342212575806379115836890435966650030993652307935057033877555718115771567575301855908142115763913780818209417267940207455455619273102099204933726874098194183945344068885943844207681520890002296883465034908125346193136717986048866018819448415603114228603238363460686676668052999566889097731016269595892596990002794955037785643794026878951288418590897706971315322848223893644659480438779641085246974400656832228883392613369405294158047030697293895874707985542885561797051742284946472044579364393719262348931456250724212190163334455297688306617859770184852524744618473712046582304488878750566171973127850157189036267788503456906486375596344981013461950936548199838410171735070115135845193690918162702942710578843749470951039042100414457925257152531446737231481241737384664108804995678595867277500166943800289399296485406190803864938022408458312075259084992889316085764232810790947919467579244588794251132750436598615624790761164977748398792990086261083266918498608678065750652751044827492057702065153495372250194089039819141189934457675292775033878918735554495441120803872762751667906177999238707906896084317916210436652313520678708642993462546590807002987506266679014036474800345382066495019680780239351162202928486069168268765562565248786946078554999670399562450876177345534071129530287781617390776180281524379934645041452177470621708611638247738469214778461077052299618487243565375776304029618393397313727908760637182874808791683397945548146243797930946335597078089287382572925106326075478296999095502922201722565668357266718336963318923213058346300829631601892869138641477181355380863258272230712661600586195026980524248587357552091704020990837964112771341859719800943000909374308822111539894207979235655389898030882532785120349177020369601649369121919561901937683111938513590717537152014388547691469177947953783869715213776569819509994991208557843653896352214504982996563976962495752961565760517714181665574154280528683737286366876990795691523918883523531564215433049050771061620979676160685270759897533848215122585496007543967159702043723699531768154862627697148360698456756325310433805741461860274119172040985670885530186715951630367507063832694948110292262708614490087144443944652992473227614216242614293026843741927738265639039560408363001469438626125087686200400736273453575287917001220729343275945779551326055465225623530520880094114227415067394459912383663228537183569608134776122798844744010528160579025783325823263546206600685350642264005172282258037411767658262317823354236200338276630779670320818344691329851683493431498674817098934196867921464461739580586509267168456913819910974564665034502271196625206515699347958315198266356061516852497902737155599247895051910177346854784007405843265770787473748359471624755235752394668337640919496237570607122831477478589791441729243984875590758142459796357568438180086806141065005307060793181241829413435130081690230514315034987769262058595332950591408969034435840322030107703349668644119691302575669579788343013737948911999229827690776275912654886061384027922863644069331438686306977823378770291554167193516618782256911840096316869260738193671231289957298791871432362717197682473630027202603537496664497177945358192683195344852731333780487327220535435144742259037899658244948167188518706357854075256711031506645880034588144079733625328606918150946320624061393049110384759217613413357607682457247763878106113134972041765974819320662749320865223742299846703741232665301465809760315940418180071244069931599345240206332869219077265519976192405545840139002870781747216167534280240618670281035452063876688742265811240668651648696218382466975910260406884179175703349492628805873386691403125596683862891829708540774037671638124061554875569015481423636314020233036769465771024236100281991827958536177144486467850178962989117352038676943050229309245789785667327532022000238692877785636282203450745082610802111329108620691596065640480672752917426565812399554439109829847868599611878030871712364528468667307877701199500749044966759353975908754266620831611306000565620212924975191774843663627103117438272308358750275718999080757411355488951473014234716944038886818278621657791109942845936164369889393178705246540911893522606127460846445722843958294958141604382099242038327634575569728331974916543870646756267019736720551539540362717089313290122276061969117700400748818770559939790599559850278128185505894448947491843727592144185828571751215877042530521746767679457202544951507040100314994182869289876252262031113404039271515836384442757719785601093564545978719169173497201509820232244433804708416360553817858953230767278093966241582516463937445614361037225603237708371595791966821384985006207661554401579203052260296651995897842651606665996593133564064705996411453358447295274095255672233250271785749310982223127135284092302994222264725468359965115381210937566892319411204146093059640861573270812460415363464964757838842210465694199375655855078346731127648044671652879534265156628147869849781403392259737195035424144471245407998551111152896138126674879673856223326886110094978653093072989926206145540085793963552958666390822071538704012502975102780968664863222558925178841483454294269393809333536928404244736436335811782405484587553167382341225683454914052721792288596854204549590517575209886186960961327665421108938109547838148674000020665640037195487057097557734394024490763047438009965625410792757248603462215930734395580430154172557566975125898593002585741085260660812874766536865333444089325776163682513245796890836718909572448207839677207635362649120336390808422338832677826401608949275972211807526272917914304658922249561185959821029884349871536489022184348766235931916030083494370701400506014629011847358542108032155669159880500239685762634807165297562511585718947674601984152281828374429170433086712931181749138104831309596440085886768991158854234721636887626420763662681611594775586699422061062100353917596613039443064889491227333288212083146804882750143551472624866907575719047261719509082820327877344466130687440461425398934750093428297054271685029227906297590278130785018173355778726082786614105125378138070513012135239068569646681440926608198400748962499935024340994813026393121477610307560774140543955433899424391099356243345277380095105442268834472754243375525297101716938809971269012911650505058812566943969598583337503669672203247785344853418840548233875544367954847400181144150895140868435103642335081875261977595364737200016405771635860350386826898234582829427309250065687393970898850534994587946658412982922937881406059454558330247113962973048026539721657818866627202950687606717996440417958843389215172926143702433521428374767095925102134443897467734053953457422053542261030699695294631098667502436850045954319339513074598312680436212166794952147131689931362366741843002067660811353888182821853228869478944452820689464105308136143136197789570405133019447072749801933761348713057882977702390716490216668535479199980699085487929584971151458768368383780976626183452430633300703665515995480719831254438220739870240952606487298126741565113465542448510493342347073701486919626844250466674178961854066748096559101451337666868120789421826421586355825318696049566489783399953347848641186168666813617270780675044226079426968958290699433698470259600207558620513753646747319891865786485926951274609502418055260269266633423288324035342433566034321471781091244455817896871567770027374023696069737499583351917276270572658177880231429782740407554093772273208685998824930605892789592631390257642947378001446770841351678932996802016253844706751413400217876991679421505030594214219788610065585477282883624824272886345820855756267913269541364738347460241578784506285295061618537158583620841912695033731820407594408415738775767322240994344240145525264565252744458532876866988809538438057998678006359019252310938244181890198729736797609471265725491977620581472605141332255558964073209625286281503445285662236352320768453837393958860716549534041124909992570246259468759941901097407819883074164928327539856644681025545599699199031308366419770207027975930303191179352865880162083995377805191595383518256761038698069519670631997575943202305993854605562050427187347079248476774806949394951097155989192403256151444641275575548369015626920945310355148854780669305705399306834467579002628419062853773696597766028535863562648798483007896453690406012887867567088119721030474721095000104497766158580463883370699558995794936542709291066261565149945962436363402651521943353316518513443629474521806994752153243977251914301467818305069577443970066591990662394547911707722188035290902970026590168767632918926075277126454433527107771309461699688373721242472327810357099952046249750390719761658012390431649913321636780058079711463661914865449380760194679827946582462754957607728056806505851020380845396432465089740901720193111423619091600838845497533064082519937658020755261460673322831122569295571460514534436928337912629933863714527877082816945304085993991758706978566824009312431295045485356361118152569898009702600258774786529936799310172517378434565249418922727681805959632408851925796179935709823817161387386738918746975322489961133913223703530424006884074998036428231528474235625080889987450998190379515994722445830593792292644231672522512936421748596990157141853954108883266679631416366121062055912562075169867400841097002399196844062301591786044811677289437284949069380287982331481325848811924497780899972939006081165390378495727088486326204220137415000625581231359657634830191976055741409230180985295413423513984839331643170849104283761629630002602915248524340898941306634185519247484293216556217617591404614193029659875283656823200711489355179149268043926314736838755853418765733224565455239684209515759801294587259407226644304017088909886299477575567052738623792976360638953808787135457094161979832076213415720830033358522898682822248405572099017728625225468631845976964724840639092959725989378749409369337642195705261953201124672713079671032253084548287771740312903387413105611385704524890124786636099925825231235607874082214301480012898617350270243057262008387321498497261933451659036617549643306404873025203374026453716377156205814256937321613255145481550654527502920205120845544960320344928236045524489649283603164140987061676150607163378777002387819889847308717897059631254193619801602442560685770479130256718255601080077174666757041933086989461774706042860888051805818818689190334121632984552109920554210764534303129281904994585938873634485480233647492285347044347285331088918877728637194072696480949018428670198809755209544053740791225551422908083597119164157936765208833241248558608027045920539262205274554353950539683886193690044940049885905399257401656056420577848254851792819847652015211428566883673698313944000104103268185233454313129918159433660400156865801858045583798352433398850019046010925697814505846212515713343953976757013257444080254201728221526066627333285429517226592389105177327591767929756292705398637308965415819267731846780286457309732243344547085994723305272735102469459543110505091051154882907510091465984836138036584994469050358675319549573164565633368613916079379935807636784702433173283017885638416154930857933253917800127455273188852006360461494139068980906499808860751581256930521421629168453949232326034123711549517463984968949162993555372510293055739213017003650660588590011420741144331058766496085353637716862730303377006323312598608535150811748004770905899928587181957316645356962865399270956626188135556104921479651011033537076208989329049094452880690729830740071561646798503423212002494578521283148124566141687678649742663676611920759106883552567342348853073548213093761684983568108319378477237168925850256953959159915594073630279769680597692473491016487581644236088934668816193477659631125194247892569022454792490969117658746347070544984639810885753040984355817239892563098098202436829969106554335132280814130401618373605776198240312732606613996489764414912966969071410135748521079835089002166122895560858805519571117381381886471607147299404379582362758103753362407091683747818471335240609881403530734553613559496539371162088501331819704517321557464713229239792877893199731149686803806979800811648698600896267162469544271744063141275536975679921869954025850337442625659307548354284969976780077824978999525450623920304782812000636140068660213433920461179015355087240066189398690234039919458405027236564962789460531520871238081342002942937487077124046852037899235393232233873063064959928747302895720816331834123521444618780630157253962595443194124080535828534425367051658855400023652197682019850090618953801574504910655255050539387524518850937832336405482124470814775986031579165145803531473630629190079015858761370799470528814189883462700693624360058953474000194974666653273640134969348037089398272249611407872715128814514155951811945148051634197784419262725971280682113549031269983704881214047710414830095325801593961609734481024227299617816361932304727328978585075781326038851758557309779678534293157032778924427886083530135735563705866276596194852806867791904436266335320106099228422009039023310071587337653643842188932607236968500696504145457576353601620745770177417688387425220113487635372701552104312613176613084411302250466751594400886778150396566103493764709827761470723836598395366707773779646515672391622637443795977909157481456717067922314368324538674182210262708633838115918724859541498175434337078686767719261270290755123938266875203723309969756121112479707712160938010225245253672171620000000057228944779216540466986659870128735428097872750324928452390051438596146210194515470351660085066242069381954899463473915071673095996190378444008381371495952716913454588504159831671200921725342880918739983041117634812960051747236171791083954259617241944795547323261350092042539366681831017537476444842147420707685904554355823126647643678689175060149271679562843532088402634330819604288852640617816979731822683424612492325559488203477797081379159069271203751037870877145184235744213475362857344974719986792782260871484866058166550528710883920191221101987792972299435113292296570008395497720434729181128542565849060947758443028192874842771459513920095044174731135235345512056659389167180615847650233840018494604206619859756101943798289398193095913322069782382351872547921325968251020741093765141762214292762677224969154979132648171289450912855600377025922960537730322672591103300762938475173120977753603391989615114546616714968839256322741962558853348380556353760485749388960519184413821846542988200625041445832356174536399383312288808687904478248050573982956416292478143984612157673970726698361925460201728424283977727171027358424989462863004495869009752173464138083603245728993151194912514755209869619776229259273052111926104073138080968599752336142002415395606641938489145246896057700964936172182257779070393342632880843264662177225841217265572803056003835011163917570645984309450304679472382837269780820698594585297859949506535610073809297103708548635687872200180949904739297050420238170870543986574114662232870994694229934308132242365147906898227738605383242549153789503256895340482056915431414032254531154071406083821398239635365137398709586081265670267786020797872925319630983034037545281729451832780172148634615781511413162381002138132920502210406382073550149731283757201686943458191061606674928502046060346216330944392218804674185217368896757609127822192527522871831609399067962596238028540715226514657256833457736737060267104834323047797016669729408040890494914304895003552499663863715340745809566332528123708372825886018593827140535459687966901704460500156842987336766263454457118304207395447763920894226900673483034458034372895832912746935350259319195481544815721700850761588410478092813777693319283440471651865465575176640260946593970447632541211109667644075013370503910934761814378188240725068766649424977665203769028365873322988696344674448645447105361877792813645736063402384693726465020377679178810380830745770140006993465681009319030319605631207024193665939598967686400815356293427718870499134834669261869950323436830741065669425569976461862717562696777935280209432090424605134641084011026030093386572586362794976412126101942412107641773889519453276460782368433283724292139130488634637317090109848620284468778439186193354055742296761382395524076576826891078370145924213620372474426166461294365223289021051920063327576376840046032583909175489729154900543740781315607751694799590131117611728517257884793203716192100518530374969409671984220645055450910366813188892079779681215991192599722795983511307264021724517933366454763018737823957193678885121513801935874803393687156893407969063980865519580760533909045921528662498434388680228979234489823300341266241046131605136295373202654607518435784782556372273753956148722613579885830495885918888323416129364669434352216990140633083891890800489155154984070005160885649392257872367903745991741137401597001787157527609996722175292619651049464235013351283163831751666091860517152258440512912924065605656106218788567394500082940300326090646484599555558348181648823479159968824285615037074045151184059931592971775432352530858189508809986387332456259427665463835662224857459826966269170450532549759255847557496901566302189125837713383838820282978666885565658271587556562596754292568242255674879910891201696874119048366097176685153731160683621060537673005038784056743121139756909961360814260229829163064827362792177859942092296418453594600170829755039785371647730641940454079769537093469654449279817067286325654655160219214421245449776570596980220474701868018007443848803080852700181220182891370830396582032338020852728252960375122838896495816904521584000937402927535416459635117400989913547301036719815406385123674086912503921377992920250923808787734784847997137067236305787868866115028431891391805110345468313146715551494245504313668434267083496241746129224089770056021371315557942162997524744154186745726183678399028985213424023121503037307694083960529664373300890884566571518277872875570271610399941794742097274768510656740825572387322588318619875805595474402746487824395225985042283318454463329484950879451380539637683900611530211777213289550519331841276659662222586008027919449874272326588469084611226929744168848574677241885862283561363179064750231197778508054850310449774243490103140805371496526666128568816997016060763077270419446594188633377758447148917555934788664857777592340697236860374501884010033206766723167316176927918899212069688283641938695556143343248630738663760108295106235305710206916659859304014900502281983965351742152162710377544157986060226536186614016050944669814218759541001200373943243478823949120259073677459567243973232573629080165371438474850416073247325867354958077033296492659136768812474629756234798724072180781775501499052873078392990593113465318825285734148825477098131195779343191354481619905517204015283548352639133406681430615239780885569163630646711395644021748539474074068941107295682865694112922867315759067517087175772137244482399309214883664366419454383201708458355379260736094119477712047780346542380867011680101488633882136529604759078560932821015343389361487058642267422780507242945284455270203701187894701552504173702403109259347182889730883966247213316431615122931336723205550326646906779076700385343118839465232393319320150767170959360959315211459869041932786302852439661325751482269148063747066392481755015815214918717648875235793461875884938193908816282908516431555994723754127081922443849653716698193665890535379504108144896358904202421054073209028778806553539192738043535505691003019652334020464816503610981504416987229696916289547739296896690050286321308683239849606958439833881613475367796682423018546015474993396077440264360145956329252193298103994602679879624621353474929058323331478525698031828259738638687245415401970380011467872115840396794606906591192127277305401733486025495606785448990614020775358286585351165404250731673100248145144415889896693213452117774733874430330479427355468505538406091337102803502445587383507400108757716707075129046112681955940147794009212421360580871265782967832557043438573721558741432205347065022034685508284254850851124441364544007762995940675764473013592976742284184567966637511363873542119444925357628765362860304006869854025435275005652144633315543018537381402140917629194323383079887193723285885228873923805170022391055437070329479310753400296685530815908882750146800923684995084673052174466849185602675528189488158354724579433229453763678311240396733635532876579192715682119989122654837598879537907944003161886568104119038908104057088830960238493241074408795344575451835708378185567453181387922626577004047974715970650060117495670963163823337403400669593773532623991904975711645128919716676542428856031591193111512095382024190857906559632499252017084854174769961637478517479818487859961605849032025776730101095094536667555813665270785630362963267335179232833895523302390120807086399013572264326682866852824258219395366888354785216270327747444150914528809185303756023176930282469187428183855714965751803616158314529518554181811860184865710678073963443752566100415511668631092704171181312053446073866545584369817181484761546984812590738802569949429191738587084535271839368305077028890597210934692730630428881618645494852660260910156520762713627213219208882092671373931075358514917435682024179607215783146770796209266603629513428633579982186776753930861782643928772635661659558006308319741005596208272009365896246879130811303197088865152550963174690111093048049658972583805904754004439056455234461314197965304539168650766592569781202151535205413306377171662600080470381125869780730909512684465286164012849814907470264303412062828273711589917513955882613900773432266184398163333435756688937973668572940953171477116454598670131361862046024357340918568905385803597784845191577475080815127260682667899720854844770996982498715156663055671109439286386600545968045744326681868648885598822984016538111426969814792015026534182209436315618946319213551079231678068071490092141157468623366763076781032029020555300889603856463479967208840133941425534055903277085046846024016408181675129812050570413802921642879638952844222864118341137338729252879190464451036680525667066212142153392905398369317009045644998519032892327068329744663849906173451059874587866555332467211844175507689266058620731891847461988477893616469322799187072970452311506250389405765124114878617229284843375956177738874714966644523437199404895392207010790529653196340541929702875509651903713320385652064586605634528601806368035383988103516351810794808154516898446487141908243164415543274450609289975031908877902262845227868580429787703468497706592749201540539770499159598361594495666110717603624819631794007421172966107053755848300057403614964624680645738519912183419941671171519139357248472329503726193332661551133060443413663985508901105677392174414538820795998055518808974053647515235548840628164016827167561043283072133427973457591510050650044940140970992898026126779061690254362766249320740157183120632281011175808208471501168023209360833943809557860301314663162539389017082909924271320247501278116830916146235592930479559554628881909484155491873701161597668846711300732187686513980038201133971758596370860144284115481005567147239218854999772799074727588469535221240814877076310238848043047618684030955498659619262997975965436259588688300063876602665672616800220143568589536099697227614484197456839784618945869607748035122195727023980413155311630867833018017489576248056111862127519614811894647669582982811621003156280158223982989490153499716896795566134918017054588392384728318454103776901010147876521416023318480628573405470788073486757312446079140521769278193839150253932014067832643634416049153736525618805674466047695866591506692663398087683028167881827278273834061839640596028674248102004251108817026859542210706408710199909255851743092347517502843951496246596788820931790535158917164438219587524923198664563227210156148651620991792847617156787394858648522225639882531333199545688776376349439998872514776127315041941551431120777509198639022948106421184273348307705845595853322381629181931957457528514969841298726497117383247632819996542750900222360330477739653929506555939108737216982699489392797894568736775150305665558648298573904834457998132752790186322656312725291278089368017696602858396328072787098868783934302742903159517114641578919538032191204469448655226999051377722365652785160547265857169147093639424381428414372034167893518558320585053125765206875901873339907527406028756532500253012671035068936972013743438074747095542980973336734046265857395247930060549926268420421893040947070584400225768132198247150221905693721670617735005390398665408858950770840491906305536244333085599626110300466009711438856056824218689774351312451967773708479688076471281187670591063184360647901800668449207692242895319303969562911215828387016333817516035049540513475717238421879102797802315293396708271407222003219491519852954846752952504530454608946688134429518862747174609389239031075763750693416116323080983500818555736462285953454165067475808346507834673871860480795393134665499179029598959683624117906537274093798507584623180827779023380319299058213389482151586747991694771793012846674979909357393766134551759567672192313444059669135979525935786907478194999798314025335839568277637172511534728625452622852527306648844146703642420735622057634595828745455579349632895054969732790713953037450398760139513563566860305803537308327793783224273563436745318077323057919187206785870410006777628624360483983525590206655904653829092982903646375390553834527087209975710627715924426951993779968607899217383622827686968239753575790679535577122680572610888544815741300300509212584296203098388318736519194613255938094381638108974745034458158455988272032623090798690265606480835976948372947480139986193125049395951618427087885483392622278696656847621125652313199091494926880516446335167821518476429474793069637337527391212483190054046945882929856120538375847012124135736536097006518067364705660417445868709699987500198289665578973390383452653181815096492658231328040704102428175468459310060678569049462039165349113083754778585525587746685495732796679020270003570190988881160473930936011912923306184474066533818614301670410332200644691715189916219274373016628032021569184756770343168618845321492264090736930976665408171948254561149643010328645364133598203328325492696607388038984688317951841714535619812765532181255260652665639033835854801244141158164597597351346505550222818785173330777861481512759736036269455650549095232885176838276258936485938545621642091179412545042954203934710179212878751018561777168109359380961735464937841451113688984767029598664398003439166866985530736492461858893067321419054817921733652607047123065812814545143658029788630489403398437111789435587012085965309873633984776334445944499289815204939401446867462654289252530471749053159317637484607348555829026936080219391925983978123878238507473703767965240258959779952092759933031194702413604606088742786340789515440706798630061834388031031697819589949374637595012355566691565347671928713717114547313936116823900079208099523217857545870286106485416882347032972218927875523532242115685971105507353069749932844597440791654926218737660039189608361126609782164784053898879789141582994123513813837935245563623218426104294728033486948715914581596508692924461953056333529975430383176627950209775102254526342462712958459440303320363450540062629070199290633069259713783757378951394901858094125214799126121182599105221303539305856546688329704582670446836573459455865451016459273978982973955160144507995153566540372708988750845320857057790617781829563262357158580957034877072454149583086642924379398356359132043706472004530271212515576235758529277882477677345026908957246965663578487652651769121137985703054317616309922989007242183749983661402535628951468761835014542280824840776744416969872746224651874942016417722234528295660099113117588614790672077462446109622716788445505110269213401718352941601491651825291268272547199742697220897009116278263581480931706770785494108374962398230613230134772770647068968040114527869852143019006037801577581055544101870248283297295273028497049204526694017405891164473741081175736271767904835397188584487130147547285760390175007775963791715852214352298792185628369264268999555896467673336545463424378908648949854811864023284651459408227647023265870454481018218578048640117979236631123784608559668058423500766324103422724587203236494543824018557683312644060469787725534902127881030662817379907865027973685771031476827058695154692068126113927603146338006276577543436861164690324444307607411920972188321836377585928095733788981679634020762506639868235352056849248315876059681678276668221051414620501656638124614423541460242990370610952566868137126568812851922849474678174661507538191748592992089099456772665074249392025107723662020730865706696573084673508992382161778533649119227375224516785385209413369543901530179927830111814326677986154309729386238030771745906452980430103036930846648769177427385005508408776051310753547784527007598600070331325077069883694238941132254125384270338829906647656989749400600622460259913128214339627087018062627627632723012815565529998700193572100282165257061026815927003768299666191059343591437921565580441940775720569591664045150620444256698714419914905165055952912896698520250851625151945334528563866048207994046429351135803393255508214988399384544628608345692312512038380058280172183586769164588578651958404334229433031684252879098693930672104028236615898978888197997862932945789531077831729507316290041507864373530554665453009647553658918815837632027197061646263139602177045705582005048295064241608627711082148966504342633746732605103898834373291825922218612287282692185641140265844318533947635455661690947129650690270330265327396201052684860707928443166246122261920662025490183804304147822122834281582771296473037839964053407136119054324650059200448207977682893337958490219044928498920168767696124682357714526564125492624220985038385568104603324888598456039033203875219829114502580281525516925894631214529311374047991790925993129091038367659362990839338221201451259511190625865626797606621538783525455435136334725619766482269818735654437470793674919347904011951185144650343929783488077070210796652885331635153551676586137977224192609753931981901251709676820376316501447998048342495417730237136272440493429000478576241526781420194645383794465473812241598851561791350948043563671292044940920617300861010803476547729624945693409198697801688087385334232220681002283687961565914278365338560790365017085957640828833370524539519382361459408902913056004796926520073205499956949660629542285740833705324329852827343811221891402974031314217197190975967045599561421710293263063108705403528266740021165828539145402751840213761134610851711593955140249057071890877030244897532872489427717673727638586539711479988505275438860917437580861657493746169751582508243542072488942834400862995387361281893504608506730775138094519376243172494369108483718024656955824282569552788231645885616619512352839962530170399237500086637432210348062802175780832998636339407129853745102410162481299538198228682341250238390442326468986817098378994746309783155996452352521718579329487761698943804510013642450284267426778406838611796258755339197309317130978162456360625755994504874212092375141603547155192167133065980229927922492156741065589737972079994250578748916685856469153218236767916145343143129675431811012755298874511536674168463567596386933429819743673395153515475948537540587077801391628432751801352908100378237452349020382793886421709226381639782432446476161083666784172331429356800725663913841217235680330514802315845699767232172884205258581959775922543439856578996002703068371509892148485495600378747922596748019612563348647026208112184344875359576024192314711364266849343982452654751303051115256559672680448835464476609992342748936385428497666540976646024424316574881633062824944973724346779376843385944661413968278460824494997235833710606336452443151856987084006442341985637751245126516874447129355825919346030138429492823472266955875877208837450768304667423350804662908570208503441109320699902083965677933327488945618517318598836535355490854628214106539040062036271292570099557079800134514059789554476852454944289475020337358003623860176671887958051011743333833849211214167677866664281079678203359194092625884542422990677581490015199279926003636558442765428808653606305929087007410457500546047118041428068567842385607309933366972989434862473687163877534056846569615929961821046958454548702675684229318189372654675681289138780439096044540397218934633790722806341900472926460589099969099283760447622884999015503944130736145305820804057722786803289131208644315605641440128151563436387560071544284660609095815297663632004529067425412672273147464404669852240714361316189310813021094365418735871176558968899397980935992475668212530353354089039302005592611643003251046377220364877934799047500355659622303983076707996591584423723953207595259750525395522695750280081173115797280256721184826570267479372097393545839622390301439899900112336384114467223418451341656883916269392357411409309247035520211803073697878424459452771476238324587500995239679123759962330128477377378120438566341904045991775830598039689952204682902645518718994989922798925874769557956850049070636420679047823118872622879994758937976721274508128538455629057553295073868713385622393551520586624181780353182590713013682468655191619912163056700166783319569718143324258568137529949115341573955012500371847909732270358660163846517061245058121407436649132756308197611180887085573945341310221480282038956414871770489221094868964083161655625286397009525512658957006525192362589139078571884086841769009795811684608920512763283585686392218758492293310145675685158758019141484431803030087949341809970602054151063706522051138471950540610787699569004692561241141898811815118127725298483320711613758348335532054735954065657038857557698240558617673834308126018858717426544133087911220508914963197708958922564702679122346979856726759809641679806877849337534688567024706789961427781699959069880810187527396527621745967916232655444430015405031278074539976833041847205207494689557292039936703588503760836567517930982288530447060414319219240903587277822610963185172438320142786024576934904592602964147640571657130065110447100767334907245865204326954225183040000615533835402927831712808629008848863722115231032556200296995857973112930394050935499519835008810417189749665425823696513818767902448115203326859200302613390778113805382498880527476102096165600619718607817960431368250361345610446475961789622840129110243622027447606912550227797309442268337292631327870584457673804218785882411987779108198453436556724193602582753424313198568488029917002761540304735656784792615876118567392463574607128826563383784692456986850751824110545113044720137091346342347790582465825409515617899279158831466726143974195970993271064970042223065850351156800616181266009983664991168104549267880335709210759433009870919433667432529225531452929206438450953010432721795975732161825309516485261838159843457430010913602150997311001515364757888627508999834661283398915396129858045654459656130023218897552845145171474632207808789556176826700941726579515881275961106763199037589273585546254322402208797463267085968210860386146405925780761520647312113394850659812388118877805888624276662434278524507734667502231288289510211447145254698666167274906713968304734731336698380491233540612197657310598887193527774064352630238866323872160910019435583372159931449646168705078514839899144499246395484073824947771611732425591338455829609434290891892291042276157248308961133899663149901824399580769769187353158286037637725941689324566152129430516846904180260627218052502440845277369599861238004616059736198758692316271628512189908101485715859321085742031124609112960425289741623701358991868425496766074319477050508438621506852263349072514256563780518528878061858369705629503392967493121331019045926985312172670781257145914726923682530648013523394664451462992073187113350217986509752338267395660476395984304607575779799338650896444121181323038398306737751575086449405941578745014192198867485761964907804066044466321726802988190787805798079983200549599144143437266705682079984221999359685765856709822998848593283519250949572159846176015087281828398139863037565659287257333793676206051920126671532975369066637414986447483299588816048470404231000078918154943302444488840950917993415058780226108686373326243228320967021109569544882873088154617979252289885296933363511826335098138286312528013246875860504694649860930971761850907446055256855821130670539045245842961549572499675744359581911956331486435374371660861406838702070419949355847007170837730152644895939384518657472337647918574199578457015026103205092053784158658442424001288408096714606092647866404371087692223298958635883828803892289917535189495152170188753932451782719566092948810882635751522102128776109807446802549583731305474929039264246830515435823751153106139301160647549128501208083953233727069976667348310220366943883288482335722462366891390815898080156052596942270573870248663315069911258499685965374028334492146776236859664106309168228461155765089566863943187089534460884150396654842663639704710089162304526851143375274181246479990501849232621233972898056725858292167814909988626171404951300158898894151926848154143084472857841637375154414657833132732059860950499880388552695049961194777657734748481997539730887206273272720964001343146882193002086725674877927414985417391553881341539883028935541681768804151027770584317560604845954808626226826197232697689450758037752545882905159104265726300638526886323919967088775380575566129089676524801206711930781518151988072269918745557372924721618651257553421703492112531191258765965871554332377303383695896216878560714910010374387953645760431619403379824718032983805686410835101665797276383487705508628309867916095634467154368215811873383737913039688880616940323418976772446800139313670005541377107326414616908341208630129675269489998608994300248267049192905919532277151294449188843205182590152385008864191422464524691381375247144832503303741870012011581243204140485596238684747928390775922827542697362069553159671477219087154001294558404363936379988993798070203059722537624380484674953167616961205773540054333793085394062770944306134982244059604501001253272065102536854757520510083981048967638855577761121557345893591531442306590415099129131104317756306691604666859886523690966585166831200612505755769018298659727297586962355308046593700043994217492058347145173390249210708891985596151915740211364465135151914321003607535136757610229810271499086317854640815158423354385081302669415621489519007195682446680000695158141161635608805622437614693349903799561698810326493522722080664919685674073071736809065856672871483273713933420589383367140051827874928750204712888040092601384571830068531867907912899072988425611148551137858722522370316414536763999827071659713740193441282020666094953552036821737519956257787672952772781179789967757186703218089208052893918526012304364055704872671837724539377288041023495372961708149655783615899422390161908093488298023856876101630626796371700131017895545054520215241471417268351713787114149680531294850680429511789454415981002052927104963198406944939296992851379363658988711098906492854537935352509256041028746847158213363909979371950015100146864318827330116800391474785720421991971463218723687363496863058266271922752553355490418775089141091679249833846363379170670392122165696795288941273000353295413434842947957295355296208444332143847511835952347181403217681562466943558889369366346744070683484625919899889250627864837099233733668509336218466525708822263156865227981965241232286249564572210499691544705388202281528689436434546592598590032918476997848864215352191786238571003989131537542739946277984817892430990467496062037030370270857366545837103752036733350175799464304444086549718932512632484544650072943970579418203872342016841488633456671582896233870632337867346594282351445219187073695233017636376537889620612482219289100313902575561607023711171143601846140914654780282649207827420276068298994047141533388676785182173067057642075201597915476416052196465481110674324268327465529613918725024273876201228566352182992994890791167731534254554232105661841606608368876887729375476179728239317496082257210730115732385505840173804114256028645429904611032054545615235053853147190521862439962424202885923003429746841858549253558502368880741041218598458737385610631397557736200678917949335674765997960207293290462429970867409675152538368801977657565426812314198219586724050735843073137485028282231602204570498095501584588827498646452061394173249755180545243148139326953729762445164477504604381036778847115687076411063425154477539861746718435831625198498772068994605771569828797503119130905556999031723561021609437795013242338751968376319529631521027878853463475157984178225235063131403812890225175336784015828736195706832371625821679726786967300713208686888370057917260687239428613519741680935920050498346227743002242902655010214712523222596578224233561023144560422258159480184335454711742811114420422055075200087250217998740467303321526993095085971691834804259590374544932259804656316937635860115751764139988883922277461260805347772968117028656870631334688243791911046686351714793058748062439845865820871160588760385346951581372137096114103967639051817187012555032207095363807394258671711002897455356418325171110374938757786917658455926285533195127404879847727256010889456216389292143634456852559248480363940080094759614041266175644920987661536391916505371335348349870625459163809885686433915519988562685493733771659832701935732688774265194395455168289970473097931674579404857400477397277527079977059480527486560699113006988367939120270170805181162735303563100457657626695826220650930591046720009121855849489010333567885360786117261232061432930991349507956214531321417456356971995273912192530836662505086592660553277029626951379140295690540680658577685049801216298089213403031788898767592108053955475521090255936606540414692503050057731084297003007473632433473984932027943189612898878793019050595227996100382776334523780929562612623674640318027253269469094027650924874925996081703741841501253658565880447835970490743144582987552886773091630048047697673481344203414589827513949474187897774129831803959603209472324606337144702986007082574515360502367690214713186048520588831278360208441719817123549688829068387194993939628322807790396167716653597069427235378462468381315631925637809775434062879267930406217903056971192611624277802524087193051245541951989368604201342627140224118945355857054534789838349491539199669861138395317823896560911415023748250531119859747797866597273542882401528666899697098856445489142271230328666540386119743587315270396221693235395555733599023380282391262137436816913747683401531269865535705070278944388941351953856642312372656035668365913884926266363495055691635190238051673911109754008669789228413358693234474885207304956933165587326284208108546070347323311451404721251480116385939205464735891177784447676188337137347530447114541833396862286901695108374594223364383839694259987379573453654519862709906114096608616808553915728849998647183981384500121250409729475426997546447891777151707327895672954215451162938835160545774929394548886627362415309109761705992311831122065255016792036263984112794637755871488674732133713129339516141011896587528787409690535705009759869694791073458009374828954099014110870506334244687368114407889426185373077177863983491164038964593000213790613061878260413732344773033614855275599097650178512708019804864733625188216353418400552839720904105219962394424183097049007888481410752997961919201068707749083041001009985724961259001361309839988135703223399670918329364191509825158145629823207201821333394996367729302172626833533171796833381381482581520742705458515871348481322383245871511343331016243652961970695712996152451001826405526988205776014790028167736549158017200486598296172269927548733096551439591921315958873411182437537364704937065530294645518838880247871350974558863003848891699319425299350699142098326644905994276024757950000149047112903843567703962364801181389150450789953149161807519759101231787315964841450381654485982758869390051219294305408536346159859249354298647422916464709544641275749278758410920834170308367026088457090073057489529344047750171290557185152580521352932633109575311527480155929174757726828848976704126885008450997430367877364966343189816628602968782277601745767318078610385977104181078161339460593467466215799435365163813177988940632487022928176605971441089872704314755126909467387966995248430708336963907914380866620721968082708886126231592028371347645954034754224228228497936497098788800210007106896343184943032293198534865659854378921289164464342802576460549135487746438737493874222013667790654165970073064866150565587589955255104834181368407617720088308565149979990295679394057232299148156698908967704996733885244530613598121777350839847073157982498450488538280454306674561519698089249314074840678463934276722741148020152445759209145389771209677715944748055254354209524027086202145706532895979530256553996627301340352533646127043078045676291789509698916017994133710861909169832060198462967531149133176997351026242341812021025628233488565796803278595900034466083497193399182215834285914913789766613273186472553430550018049811317797035067249540037727411718143862836367722217789859758975439079012284476564794579036358750454571227081474857662593939295692203172791716062202084141857505848725412488585066071280578082879918694661779659262292819339134451286115662186513737880705459384775636740497427738347636032559969996617457641095522177096625419260110664506321883769437635031838609025698872735498856562419252690315689207535593417246843763697623759607042516865930890933781715238798423163752058507557596849620624219233743623615224507672551549934378077314295756760200544956723945082509773382272918659239315888278792037174321140088142837884621409167506667176351595072924597498006334931268837900124211043082578573920026831885217592758223668823733305979663797178815742207435644352063804538558010640619157829765650672592759384425436310537780212208527831638384922315004282188240673168096146422839565916726880261762609060188637164356203332797724125753856351150885858346756628123541727323554593711759283379205781844830140739833776846534132289400161079186666590897357013679938994409409150764556249053455792076055070190934209473139227115448121772905498274936238728212459800874927311142659929291792927233338575320379041144339161256790432391109296087910113448242365083496264350123149892612334247387322705071723483128069134894104586691982727223684141152411396417670855020790071985388829855596350067509810380253908338296964045666366957001235222047943033582140443362436653746012232168235821752686025633228342047158948458580903878071203758292779587129605479549693069006254285819352859149716332437843234732005653676873289709885041113238600583322975647533510441530464287827920955046388153254101753794069098100174243168401009034959155314455351408338029356217541095659311903432282064160458753913791552430976847661284146223437325538093105133396226924526495523719682917048607793013124817777297432074948980741457412547152036774096959953371110764027418296149966148100695106906499951372274027708499950156545812400925014010441545335571119960430463015060076873283147981744005031016302784504299597223155998658623311974908433189637432013978679732616435515340268932466738177231258864339445563403154436294717271933853746860707497906088961437240465101749493871199651372005876483010995707413452589127567677591381200498180324030463127038882313849144004658852774057707160737225233551247316966386375383064806696445246949914287041373262424479333450929857749043687149899587570263533751379313183406312486384002736973461363749055585120852582074520355176064619441261473201731864397189863862535241497590706123807288064870105184906506939938230023032940633541020744120623438157677341504911602329294073372823474104970513834691819775825122945538698453750786060151266925058347858863764204691983955717834396131364911539158683909640290872368716218707715448417230269645218523251371707201083456065275885842075347767144417698206631230452099477220578139092840614175037142651929037188075353400289291905384299679699547198359342164848793863054677215556215652916072419327883477074943970027914035702179977721660798415706883283349504544919343896133458245593806941721013713226520012706640275619049519681232397476718231540156097349582135638051296570176535692130355369460265694207269855348939262318176816998132393237199157101513769628501499553438076241764621796616486956947581674147676358036873910035045487471278022890512901169322135062468459875776811636673653467581697421337204354942075317442965584612316591038000038180696544802494092955564605799260120921280870712293754703083466947250657496286622606689575559657130421410327879575182844144890843990215516897279205145853357877792100699593353202042443267325736110650688003147394098304010423314616719488662981272905740130029212293378723466251593278769723111401312606401538091144841133261397153847270958212282992555086805445716711743435934068822007928605468566157414359273394212245358293617282113543487186661698007165352914009645520127592456061306243508670086675922994937103108838297936157727451073127321703620476027707698014156404634567968361240105133974001490902842081463290221703874619838965899138995101126041876178933362412428321646315872550691026715919025700530688639241856047402251083171425727362455684414548609599761992041711996182586178530520575099233251491260243918493733605081053901107688678276680712967607743876834306391195628152651623698697322023228876335562455736764034001765249050591732548454087389168336889640734560635883162972298556805603160708325906727190507857426724651938847483386886942807049313487720717909523552227302881800619864007481250233434736641638355553854164464435584752207796144128970596107593879809762720837872292648962014614577991370665979655035625869474526419947550852307646618512711624087999424499513714781503796755774397055643697495988823026616375328258536892154822471377439834823777015698905554406351665712113884299774631219405572886047045795520675017755624778757230019921935032203007341634875394840023446876915990182981437971532848035668854786470310694019845633990379645865620178066917982967161169788305389955521884761461728077131758564091871345079106912486921429127864188523222746522965119423855499798171596535093061732257771520649165992636470939637844258460981518749318021650609013129152401202411230932666881482802922250928231676315298095939591980281401562896906330661556329155823488945227110581055178168012451163227847580725400743659548112704562516491859762829005385268963396932449505864420808957251228108432446865041672550010650227596863744590501241637282115327592584054610537190477823130964121237152971161178651545216844926881700159716119862500046035555354218550570775382864237135488392774225711210070842633776870368636032640606525615095325827830581909719692841912126861508927165278877266281965663960461025723272100178012217641292739915500335524112579874949929664394204448266381818370913339075020731186426869644179684061464812778206575221776405201797967242652495972980499572567370657333884528703997160786580514574218846637305553554164161007839075020915252259832235187119237759669219939941946354437762843802112737733062489231701657616580493311340740185746908271724268296521378694941487957328802072373360005721764926514827426437015403163257675982406145967972487764986815949010067796920181069540075552202560337737149336708694132779327620335611116511712295029627903011119821339789547132482264900101721847739780570729636257176056092384966600061817243844350561473370663042938137076755089308227617309153651425397520455542149284191109333017261388335463145581501513225422161292062908462342908223055595503174720460950475379815578490816642691030951639948645233416316499396489481668236745705876431770320371131889756219632784029836567492246027697037501536992189597648428880199275340186722001188396639824787801540547160412633850814534518665595968741989151975410848558240991679080713708844067758398897665070477398195886325842751843971647312541999357133864990120354470222454609367354317829877266478719085848665521399188831708547717139070066507996377997379708859765027818616036779373941699965405799855047599227378032465281814978016275239238039644237447666063244371668293810421558494854635747359016709986157997101753791433303359398221525934781268112564353621328138732007091115577332966004245003166305930383809990448435204661330479686643679260408836054610512457666827514876695802994762823752876426114807642920329726695855606872723461674650202193711818599771106662442597490638685439477428287898050369288735992259132761711561465556726147816916860541753826333782127676068078703344976687777719462865461834161277205156082560306411271054991422523669620163839039975923261360396111211381080543122617222340783565366504243147728614693841530439137465028466532960187917506983394983121235968463217860914384644229438144167946646277195275180563613833250115457502678942996548279807557928941682078796932832942448953607371667869027186153095993999572589790423103935480724625895116851599157621985220100583175816115857288053656862037585685205290301547200100982781085899495415163215275995529042359006859946104928010389972239807570949596300844519296682852134413890290223235204622796308254476593815271582288940589058084686084989988367941792366798493296262680355647055906664791008706542237321527635008638821974052878377032297829013281995103777117829551557934993364460219115386217998448280650224073172398449389475080518580490728675899684983567062016134778533678771576481819665662756897386177834053089665999886764461579984752129788975083526817515772806454295212600520225439308480098424747733401925842220997201633239532755723632896201425926747126670425625011196683997713544059858082082631409394995535266560753082735922233260344949381119536568741587296672451636092922407565252188727183090602648886935334766297089274188909709203246275981925827779162555497707878243850936874555839534777789527923420070282912598389157100963621427995684892107712169639560147217788183028780207899448308030509885379890873214855111710814978614823562912597669141853907386985759404624565918560926863342099614103726339755219485446700253626792386099467412968700280052818666352931869745411345151238507807837767945998179654788871507647266124216645126475713915990887053951883394188362487279033836056933573723009401608057803140496983862557858657684185700628587547419794819395007034179008281706012610298176114854831208734863502316130351643505652816462921288385308798165723557097575334201476004257080877605872653434289199600057508338140240198061463358544941566747658299186573270594499387598276495528878451084029177908547723708389241632881935127394967657452056015754392784176612010398881892612590733662256108369082652873477300134822472617067091549016972166253986194268727933293098835003214987909274801321089615035169246170948329007989123666073420721017013748508984264539164358468633654254668612436722050323769673750199217881745487532792262040409889328489864113599175956508064044248241754027247678127629326941003116743127482089046812913384907858899583174943307262375570654104934925309200300323764703779695666191984248078751462097418680706528833413167270644293403923879457201094021300485550673054241748785443673904774249024238017313154897573473599671304014769623428516299646067414368274888052598897750894120831823388165327472664965059481216625083839734891095486203012537758651161866055324281515049713936043244670678535880240679386280413748518101857700785600808164188901600842028454350488725309936277058077271129736738282552027666065787175944142230918500071240652930784600460210112988053853692847317912860151458368275973862120748610997220104638968382427576904787073773106336495141053941750472696757671655948025398777081858070394034613095379019908332563328933506462851123825114656764175957949858782047857856278829797514584464738745236674475381759775111110174172773726893791540027743492771609054781608036482743541851281130117425492064718919168098041516139034808590919946511678367555173848546560973072651944767140192095391400323969670859044646426894113156415150349583976067416455742100585758265523120863059905182313969279765301023161149375117045753447572918811485718870327452535860388113924548632837549475174198231040652827567790137765190060876679943282710911347832570413219974426038825424873742694614335026980406191374096134275349278881592533522072395535328613165154517680766322849533727048505680568179748644264074903530079343869814774463985200589299477622621083426982516620312094864868093792751101519008968541995502896357956508195594515503131620444348258376573905944036079296401947180486461685945105918009994509864999593785191964797174030095217332765717561108571117616935918723938329474087105205091018419807905870502838353713909821385728132289915824162537646330645249969589905055065204633903458950584554850338941430391751339859697630399084695402527638616027562870206427794740569891893294164596350065567925934821770520194747761652392363780530263873503042163628082171650492841947292384929323206369343475624018842039667213931563562836490513409153717180041428097452749795244419395925640192105515310117847991955117557518700310938558435003087111432516436252985516131480984790296959885239519500386160911061023776968827153156684876312640947748372097119954384648206034493363201723116727831509029265265733824310167662082792356421556241441902474565762001758082114518317999017889703972917536176608517898018287976774358423656825605375363789036362295280433124977043168624739104330619234828688071804916810873246177509421965394415113361209289575527947774292742891723453986217765378070359104811000548211223045777735196870500038922665700480638666956035919471618638548466123297296033899701812745513709769725711840266216653556290508131454252254770363891342562700206682509557660876395538518294207659529003577145113236539719952966678672295356529927233274313106111306473703635679936447783132326813442438342656584904255664074745753515068693393511074468261625463783731563323279854791760403350465800390844297535610697155419199408643852482123899266003604483478120005652120874128399253558122513892150617463240530584538947890815756905012209452418817184395190115094417574691788807810007122942215720296680531800135780716511934378353095871076002783320344669271956435780601148043712121911474499623214973856330991615775014661442981732376412191603931015162098853158289596263820841378059763777177691594468684047663980791846725062782202052506214583712612083695304674298849473239774997745878545392517877359048934946157828976351849329782059255406537426703919933913786477295997994434775433214394313929534703345861436319607859480292620843936777564809234517342737118961604238937348757392119068230322335690208381630304348381880263531067042950702620121674914728156855451958057706646350724843303446526988961431499082700216104635639652469140934058651854142545866480648719006231458518055312646777640984543969899806505715755121487607853846134573576121193759246375300069537545643417307578368964050310750963473348387984295061499366178043996661882322061726285471287997118839446850090380387629314550124548466649384132711688636515507521906334747376194293468215392195938842489311201861141050874359200079991897969256595715879944394533955833415482059837104238859906182671749949721755622719835807983958357143607123761126669868572745424837560612372261954845418999597586395131978017434245784676819265253544837568096597483009123893614347759175500141389526649487734294890944628823919629622424568170033565619938397531202904915875887392156997383777525117948388464899516671836370165975839066993820727482103333267015747970223695375638792044246507837833057709497268225068357131772719553401379242193366528039271380778270410472278176743927018804427054104680999632862644075640277454591520121659746417651075394504958393186604513144215704527303767144712925994486021430062887572976977705917824048011355530930904712364027222338158172943951930070317150962542504031758707579495009063161632972167021479826622669498286675780877180103474433699331128417882399158000708203284310906826700652850086556758539838976955779893281441482364455007028425577657243147120117269427216147500463070590972805812127949015968876850457654415373535009223635555539484104265625615223450069902955761760884959151013353428603803540830585644472715888645748712679754216182222553144262541124538004755291563453146640126657343715869769458942740080598024340860805429150924575564906925673982576286569035633309663680140502717671963761237846955656153527672491225226830600785968994510914697592227559905012977790066584790949763850819836153512535911646672061261461705295974996157720517252001882405381926581418440102063330489302352162454072146497276838178820789095827880925630565282213389263228038514971210348073297427520503788023742245824415958088779652711070551873488348518648409562527557912354471392617567996309962980970298703375645774737826876386631841280960533679347559676581123183210388277844113006185712169000362219523501467175430092870729557558297508538445950218121092007856315201151824943672557633265974100427882808157726618139498713828874550047565513208072150454463400535299093139778701911661287554643430983388544587070601120423548451846657556521424358793217769262838866884292446834445719640817873401455999470926952717802739686587449591294751751121025732175091812728833049493423522322328975439169154606131790219554274167643214206116051540448496323831096838622680474192810900484062297639488118139851558340599032824486066705600389808931670506243898670006406399995767114851179126639899494932501392464812645901496500645755596482474869669467680370984440718619478522515889266979909976385780743513169963451339198232934661874669708083477093999692550125048127926951638244369494550729371621436032993415854116413935729206616704038486822061597944871528463600092308111868727243463341409012131822111183471436128209895082076514436366737102585477734219182262204134742737272621515178677927694102121721302153419732378909675513076070720901628917742289235753379283423768105628044100753351693830182760524801595744208583367156353729568248308334171170801600604430845564297576336964724818752263342319658782432702178574823031744945774141036391626321351569442212802981092417386731330951151610027935951984460037574689763663535017641475499607462744750912088393344636820450781165388490243831830894614899795279687086344310925237353934982766763093427643445794315393674403972321393642997527290247270207519456568045900337604744985692983540851807643185374626919400742998131744943692831379186139411380042268189593650353983875413036616477106116181845209970838118873655851547918195363842516846782641409597775467998397877122471788491640873102340875459262220490709985504440131959168493205107787283991656948809014330194432548202239851117321360560727877403102883283192733266500226536279592379803462336893054179610694763848332344804148210836367709391211911672424973258486882513635310466787631748752439396899650264141578565895908873119174780627708041062217019021249087727590056751915067816487333843199995866536305660461544825175682849473962783922480966598085912887115203775955551932081047220012687693156654696965935439699314172634631205661018640335581913768116495783468066013986256090835046954071172204322784730483834799868082555961312030733438677520812201273149732139388796429237633553626451923497163818811714294241659900831823638888083982927820999393301562309808846944049697779072090132129959180790162221766832399325479227216347251984061158423756230824752459667468271460101445955296960209346993638736834969689317002306579894781720412818258375565294218145397706059456827129525928548244086249744727354870525368824644162030274858108334214078596206675870674684709180997793313117410086653638763748274261290437551615633216874127345076681143272250529607365384422758399574020199536552841267163839213849907616547360473108342564013599946898498915905269507767729319808647244719659887313171532328493436398376947539044430529173569199906701918018241989879834588536337529990170701758919089098972267121496385462575989138087292298567625870012571670903949570004662972268583871897595144571600970451745578690108200020287999650791896680943315527386212536757630007174443911710535001872862495442079309044569824830212196027602228977624397424294491579040854162573892017202528975737668805028663589875276699153992349691096996571827015014968403364010152828702177003220253962449089014599542135616055238792119107771868389318028570068314232124823964188010558248122946703345608597950957526833150823140266014628905951568693102942108954722207613268955407724761811565671912334275536770351573026061621085363814277518902065562276299484037104361787630899148588296483560691002377772230530313585701467488833338364049886343511931120929177565666932103459003600373953627818686278362728832084856727398906218433735538629102341076311591187168117258866362261890029824530161531953186345478593559127196058744341933918991662004736202943474395669204680749131420360565611370545797011190568873145936579821456735238013744157614567440701489957168610882958150657551906775002015836431171845746478502230004762223560677866314655467317188679323337904190961740719544376011156792752560132162828477089996587038137407215269619300604266805370138987344054581260855745725165749509792305863949120213762452338049861333684492189744499965889581876461252666458962567330556767686896013303676386497869761948463155980410997192567148551454571758345952965135086013825748991263824815579580648687534332444092089148715245435999918056333466060075479215922242097150901163658886133208502406736901401325323806792322541361401528573930237382622007570410566673331851293873320896259033861206461593856252632308933724463250035968961385863837299311171065113233301884098530473578975214865244160219432423727641194300105961413188047393792694483931753474278931122769666474212866973002914736550098493643179626040123684499224479224540248742865240218085816803982780349935083322579690785873930186159546207494310437404731704989307712788980748598828437575810221775224307019615242822796846456820893128153691565157330565380435409119160934235993724990551412185298558821090471755381960065301589021257541539166128609282858259862880528455568405439566826127885957260143049973064029734840102135110633108271015631149708854055167010645152473174472219566073135928559339211081009313496200641551008012260519241627609043886265643079567910551198160122006316979752435180054522251435561086619755848318901931637285116455485716222696561711320401383394714011842655913933259231310958634712237594673225768386135030103543494642724672509685243378728871811220790149838093415989758774642707122636966006584995984827887439754962728527647885543358827581269261015669647778464672696107742229120343037681425124551968909121238260052897195419493270137891825259585593870304938031078547664364443164944977752771641229549746046058304413569852008068431938129385960075047550577839621104510265627171936727743951568789548010020534483912117887928470801785104034833293185727252779247061218123609442482631003527806834153633272370603866176409204303482765787718411978583022147032267277710509367370194827562136572102225655404603700730197171036307466455886046790158026084973984083884567727101600207996536803131182219710439281928811032816204083345489658568042057004349897162159795310243209062335947612645856036048187534409476030027682499111837387474706469158317804962770237060245758768077490535496802654840195437171591413956118318864850336711235107479104566622178505078217979515361268980266503326623862655694821819329458783692490260903490493591262261234794709769879781638263933832646530802708769558388774336501944029819586499513172423839094992456092492927737564155506209678772897426062907511225419228714339676270176657561614364987363940635938950639974814298848554327545456759991723559931518278743876836165455129720295772952864946618415359655975128945466174702717288171516842819509308470543974297415955031504338512039233170774920083436372367230623457122468561825327271340335761892365461395678344251077760778381077202433159391376728815592332885057546747923643498103168340101628066661180008406848432092137837661024903856883005846546285978428369286382206552922621762885045409370307195133422782920112886098540910848058596707246966083544750568460339110659355268180699666842251606316236855046584965151547286079815655812236944375985916709233198973971302724657119651954464392844922531585368612471970043013919379972726768000042506481645474705163505436614347915608945255367412472103292903396802266640414744334848022655257906853642881500171211884396822366288050190638402985772146352279366529121642181042829763443457431057786592275716821753455836833689159627570086215831339585322270632140062081308340441312453455677671082696523330915551610092082088256751903733902146688115082343461818512128612049665670456555305243639848161165203780220224065975830289781617613817350670812851966806250903802818102531741124370046802201859382794023744009315706435269914367631047458924173678887998410293374359625496758222955347436802873797038747814149400370703468147183994918370562547131088256958191157741979504983888305240442119783014794855658392842896537344915516162011418976567197565640451243272753501514521519202436810389080085718947430263018413500543004327597918216798899756849376479696442561829181383264549611952008957774326541076717449479368602519611806057282819626702797449474711600580110959672159949540404153995298737339789474773898081497418386384302970575219113429661581176529151393995800348908970625106047321203997882377101952095036632737219803703225008432882214189986676384111412786863146804019398949317287845947610904366436030549672310951072922439064850493145863549341572631167594695998658519312504000036994594313842189428773625124742023083859023034424169698061968385824071538453339967381908139344296984143003665035552258230629911107620219636367344143070452479988487195381677764461225821064245043747479380512501998255550981122454485773485357884718200538952987602513628673547093038698002006546446783808780642188031115607198549110551598733076631212434293249394858250853082991199120575494413442309169268677452154876610378968417590059179031753931319451959198137297694555959115757261634456700859000927607543250163403771899301368352358337419034645415800864122268134752066761501766985229652591775770463397244779437831971238920923225233429280853202245554787797822687271141990271563297552794295045428453338897047728770051181225565314146070405214981256093923004149765111082821828351249053573933587292877475516351065492529794738396914971641462908459388202053762357329943472783551727319345451643534198588976428895322030506505219589450215013813534585617174491416006908443335746047365458473835660874138429792129628005441618830531684820897431257164939382169635408596131540777016750878125066054372131734557238955628826709895616840900271687012488093228434731788400927365874428327962967173468656470477831946965439827038845344618240044886585858283954975763943029265891087007174522381481456260072155553954035308901573975976617619471842357004364381148176114470988629803325448615834156276259268757892462245730049094553744078675148447545965881952905843553260169916968472445441721478994340735764773493760635829346329594800812301701265164848473241533401012626441656864570484301639488431928157410645614923291011134166138920539619094733367023470838668980246919479872376858955517986338752846630716436034913333696919881255123179163427731452580830738724069616622061269956751273812379446037830203773864199605612783400077577208068805833572430164991623240865015396899575446660763283327991143546130066134218131082675105532993766541964671677518817400149994668278740598606795562650897489612717078584341740862511044009161045403810548062454063266002416623027089668959780536881521237720311571831387760767380257719767994235091411518949315783913750575462266351324001005371563016267447177786693999060280746169298315924267136761329651038483927412059321444323068971765360376823255699450959151477356744481627302516909299587630856823193684409691889328929234291346403819179338961121221053404488246666758339551718506385747358837415480774864846745548422973520850771227543356856589954866216146284207516738149206296736817408952689042625161215737006102524039741224628558559495065079747765010177126574564516511590715708518950930714246174352135894763026875919894966123704121054091227596694045578839668537127338578527166140109675128787361592456108000503308925354365268411878962413014428347626223474249001799012894822608517489557011002486362186199532887954469884987552790507275047754639387525894495096631982727885463940957293690848053143363523260615662427650346718680783995910503567150745965121721974431100021788716606291013650128310743324616755474501633158233888781903249050328475767047027835571919198347690258924376584243454475736868435231319285358046520270723542410268714980152751068873576354884110026048164498463434607842893274260029955870100965141507574976034963139345590095052046320438083180529108304160965994210874851976643318167602312940020020246661482076834118670414497734063303508338467819755998453919436592289717945883283548799052106061050695438521654821268050921447616086579802649084010846508127952848148157932089050471257391305926282455602545292329269755307426648459769977688621943825672302229135406621362049313583965123746235578118446108364278099239834284955158895146477540790203580285417831573094248798603539995795059077276357557623731543937678465545996561269441902306433805703591019743688284907669768654044495867794110533984889286497325145150830553225485116070113291523620665796249933867402469846818631810673050172099814685820323377569412105693373593881046275922975525082293932101792152587351267681888512813852825764097844222433040191736587139777957687351930319142358662996941814571203965557777047845050397726459336388174529962012911856292180509859614877032455800726983155989714793678479218677777156714750363411627377804880420055917917726059549889694840856158468270137363460943054348815103361709713193635488727489032243953401822024875221788712727228007897775728310315031463463581247122266313851144400075110155359078914879319378931431106814137246790194155629210724138493144626907565592256968175361300468987646460709189043974947346277267534178463927418372875064518576214520407275163738089319495432602874407161564541001077046324414643298322994302148310772842601342499147862906004143531708223978332532629579575364580230235310732918276152072695472581018267327770366163178580549044445996619439814388394648355016613180716951039787121414698351359637394623128471542196019675114426599372556378309494766573291682609582688965819332487173511074850592780599525524746599955030430732284693526461253915114598399942269897974059957943297039010716289286711710271377715020416225565826905537369438869577902503488191801773978589118140062488178409333492905011734172353489299841205468218731438282983364261864494828256974325705361012431458476971679763884932696834973624206501020935626551607698792519777824348213729776314960788311344675959669029790494137033347406611435907226796780436610249124221596247505309745987451424209981973809320222577682732806631954927762075341448478995784294886781915636867547917078166271985857024920147235586282251055372087143047193403685282396182425820643040623773689200037892257714711899351648052420538376805030273977973977343893407000901971126211236194769779242785691226100149380451348813418642791912992928516415162127103042587821005847719529333580918522203251956492966343696238711385093474057208657491330582987341246904943800406132073138109852635113900337966614913253256074016807211258931760975376767999495767242913399019130618637866863779234341915136725090824489842610624192375321003311885756540309999468923427734741547898256451577692786549879642281030184277498046162070399421107109002517732979486529609805316098303826025926413349522676400264179298481631852832452407079911681675760800534563796251674781886145519064050238135897857417157860513375595851334371489790573494494723338191295281960024747232915738366282719504184432710487227001384822840244110353628461534649984100189068588502498761450446147306214614891727732231431399157953002630755507951053098853700093753236593810395560762361579438194202011217007938344475740993056662886121113271928441629438736901056967595692563162363264902989361699441338770344515764145855435444741677597917482226654173377379147441057305532195296900387969707123050405045183492922861361949618513331337917221689529553705331579427894296974977258924172306948417160915489770734118080469947825706137525401758018141732495209061730772173139371082731185643931377853072411740857998374493061473877243542974240463557556833193958453120465327920515258622536339873397281195378360443172642586577511080582939454059808036086128855704974024388678408194966317417303160609608333457481239262700727064568272235170489052118792337594836786883082669767173240599557943933172098476770204768686545347242134065268124810381106010955496071215231675763190838752015620793408544376975043414572981778740498575565580169841325868907977177774175682298351628657648634867565810728461567601975090108831228806199142145947651223140614746817981042048726244829081465919202879315002540813705156023228424388933213680356843549157930079400160928685487225109362907217694223625551504166623232662576790367517187777900914046512594309630206646677865769627501967227968682667752265886818250497634391473212817504130206995251176823289059557224819195544452460624957740578793338909499703168323026772079437100442822302302194984988817277944465379512959409724460888598570975381502282687990781737616594167989575777075769189568907983313545992938368704302136550854948049222704710417137298997023965525895358286305456836372422358732711546976909434460899857892609263514755439819894153422508494900582871594386262111514537681489909877771365624655110067965271725296066877425106064989663320680361472854985690244303841759935721467492680591141715246749220417867028116488030913459773250335726905327035858919148337822160732578663062477146716733625908380217672214599569587189165856584789682196978836689045659753183374180812963109513405264531114645542246498544202138839666816644525719503882556186389530945888614763821886660721013931713427523117912993942543570929599407067979462204818296342730498335504664180942546118462260098693646149764905985114352205362529458711166036736461838294954484154747683188511495139921922713171131637429668630936568726012234139066213819474911698008684543631563705603467878654367498566974676673432753432538687014597774076086673706565787088099068738938806034392645698022022005147488877562399836901330408629054629056934127505136256504004407224326114926529720401404586098542894405643538231165174222423626827049672116832210652858744062877871198047256480161772955872322292769381988336845650020324858439005788766938695993875029135050301566706820425073718033836554739337544542288835866006771092114023086878406402132784621482868441352836695332778826585504378633816904932621775220089020280523801612129956675144389514740645167392201448773567035779241763762653486078573280848371142533526523891519762499103899782670404959160348382534315552196950953307801266256429666258071804857150780642222341370560495954129474864387307303711126322242494549933699482221441922809245167971558735337034334660584543630927860755542209764927785546275190570337751564879882148688356790638682463790736940928885909552706072521572186254637376383563171596406310724032100886977488609996361628506094667866232662035837647646226815735731802885902825056071896993959749851182102109688676724075650667232134712793529979585541278985012981558925496561548635342668982541191364866713694592213118233415464650589479059229222492744211306486497122301698458503642280676029384953879421788599396346595522228600105438977257311191340962619942326740715486339590807556271219695712898869270479971281919770073524009956873683836818191717067868508125601327411169165744039047557434189003801999850544382827497333116570561444216366229043095722543800711273427359068567602662488141664235436706529319385212437778580484266395367170934332155469593461735938576315606572457512389064023520755717958746655570376400851379584799437102047030823552883262767188761779384764403216023640079806148117157502644948824061309682974220556667031847410151832462455797983727806316374082840613825065317154430675545430328195095123182479078062777709596727720652487582110426121680295895330428703979277089259419153746212399623773296488177698886533317455003235157297109115029893617291548417631108428308167296851082798107669062152775210691130329187121741834409329803360478680628984428868173268251582931653399378893527203565138980292268594808226680764377176729407989422897115123567397005492966555673833705985307338671570554545834158205280863798061252414149372876835515778304488055198114558340641786629793471734250559846359217786025063163017734908628270902546661988559782145334458666169667595440111825053095567311468968194514979263877189086867442352232488761513501169091013739717928476472010388080960134857929916780347453719326814823316494767143159228445361223325982665162799623173047614490301647999925043149234147103757656959764532684173070408064432165232472805016200975699550726912576202826159477663794476102196546256503285527636112558852755608433540964779386422481261887915145350437168292841853921182092125290056481898230450577329164173440689446211336374441870406084668214892262440753039967995361084918852172411550228527362728481729579906479973667149756928099707576729259979356356739039680058049198578328377796032846279653884829149463199487998080987057219071536477014521443052896676777810247532403176920494610591740546686537348482578078831062803511688438669068768220037294196995385895787330412052450767439322111977553131231521597533710260225001061069713314768211991484912909611173787677340778612712141067268509348679959509424200823870852779262404405435920631608861952460665736506957770211045960615431520927542290525765764433952694546456921422278014604080561588549755246330136311897230289704760584523603887118189266373869897707764995634138576203157223334915461765444506432076969939814206641960682797830793057181788078447829422446604810771855579263566831290818226350477205131062618565327553494313019521239499069265330805196654399282275872922011366341839212387907306353078161210434619736592868504281401613234412024340166827160721796903290694080902006524359898483071396757571700358536968194970331051164886567642042358320192715637162573951493466513668319724058245670845086334664682631725005550234769570773159349503343531111739095401634142563960257669168604895134968975850532467069806941027888288433328444216492701339193862615851004207700168857819408616222758210268903303055415517817578381504218185275993836202692569136279193404659279976883339467114590602531271468828660725047447987919597362206645858720561025871170784824358578365609381399496227173994548071043587131819682795184727811434129055718193575743649600372378706382327778075711095690770046065369930860679806898880432928747216865765474487155655250563374658935985985459519232496978327127931863953078497796865290698682021373550060083471293477673548609229360803846855803112757924334956055590969738565928236075470288655190175801057881519512337762644211759186525726512940548082654943084045408342450918707253985816109990319827860185773362143844035966132613767252711025787361680304474848033674554234862831994700362458688926627559311226913468768790325353866100081037564196889990114479348140420700969428322624679265412511642919122604747811023435326820235489713246701015662492161754722354518746931631127616702012239328104027165645871870245396735678786511722425869026551397770372664399166885218722601138108236075147623346133953896713668193133604365159833880960179588488286662803169576380214411233454737311365665219836560404746743002658767575873103823346430946057924716843661141226124116279094796537244591464913470560497907143147595014042231896087767465489240263883707348968256346003865355095897900816195727948515783701695592321400533310137188764548147079473580053663354351743503641296230081363344079829599806029289706639168000662508721654203872390199616636673979290452265082508473420021357753422288833018166348535331637245630532211088803276999496726453154654105291885874316846871784119131689777424123255646935471805455129484956679975144204024400181934964417470190630198391185797754275311162616702499965036202957667935490121436970015331931576380951260812684327082789990526858677403243579404712802587917336904875466548607604499696339594179021252206082202050066936456714992599718199981592248123290006262303912531467911337855077348716406234464643950577155347910744145548058181437533567918804868279681950785487071940725766919311700414742368410764197520063768722407561664253158159014136817615787492551096285136654306766356722045385693149598487062967984686157305265520770443866076998454755804749300162308901705797742874467017096749181205995676068579960222360604974685161284427953604846452795069203764155537931507162700273240760244371086778791301058998518350410494158484207392933189956665868098019014526627025078975404162689072719541313975115458534358690291685489443181760732778253810447378244685627088019650827683128683338985692526774016043443087030694663051986149576932938313149723848138327070803155671870406153620088053972301351317531238380386626448668077741963911146679191056699802873449599800791246274551977311021572075165201824166946309184723220657900014066257075798926466714083391943041342584844443655470237619389419983364075024331036753743153179102970994070158553581120917014596641049518794460627417870102548374999227205202275626379374352083630462752242305201247946637894022844619876126929215744470417311781065977985750228794919121759982043036034124892053696259811918017994425784631877296016019376043427214385042858180277389298962588469896218580536385591529802529140038893393073282401669352094295255795152781129364250437588665856959267993315059253198598436665286781138880560538113998847920072728031376062870983047208467095061940020228314376984068705751651362836559512588485920699356986878680566967061808704538189807467949215841925387038586685929094190125471966664441458610179054167087930439903958635801326084395122659105242109258304393079880563888416517858268866149843235832390374933435734573162761024672566568356603117747166709847963121780733473364534911814260364435231120297057742316789027081570010633345980797043465294099560317228300054033486001190999380075388670783504951044689566017995609741365434544311828079549259192283444098546888176602339578591583772284779574378967581215529087249563855743059248510742164972020463130675117250475731577761942616562242095824332895107184024456808554456004345692307372422631339765433343137475633851697018718175863754966683305390806933993386481908819010783068103258751210832341190760021318534269994183819254517907512956911238811079203386178929843699654485760192689644985063076085872048114260014709239235613047250945587992933090405025878474561762570531315772438233177128320138328603819690138069942603345408245941941736592603530864854267045379415789894859853997670774709192237428755622844139628729519677920358541765755283154960467982553953263246886121220560047270426568075192321069937796303524565360610551225867951618194916088628535586408581002558777703413224321511222237864968596625211800236394928759292702338342044459512868487168520889931010866404593337476931910934532005663995089185977377719668877734717990078381146755709024959272624409349341105558053635483949227612231867253111113421377756838442132863053122898066320540484416332149933506771486557948157103418947027124844540111943722855840590056832808354591948990798599346243282514727441744595118047703464086892920229050588957773285736756891094599531005693716805665580196578536776939762828401698002722475534670255955963722522320472562369096789983249980964847659973575466109668011043178724919333891496510879274076538175971102526348970947698211729684914766166994550044391834463877453990062800057836639520515573734803422820088949421237820298974103706444862369423229282046031212663667774721343039440070163852087403147504903662933330198282973789722615133544753180049010412859899212395025105285983827598007015377059549382869236577913898184005834994654530293271771254403624992573181314701636136590973055406147674811852737876728847707924266796397879989038591184074151051817540566164784932709028292180035598652370301747653658296795090639095064827615869397413094347524109880533973863741608059241718495541599592088092568928461737354832106605570796217689720757901144372521567686790752106312657788120380858660284480004350777943480649814912017049373325776620958633477618136088479700617692016250407327878077589250892929222869965739168684795518724464536578161134471784772280298695504625559693272440858833464100179611581052879866267469179035115355456677684228384625402385385412190175671687012938227187991115997852363522283389236505659042580720414826561309819407956398868478112970451196809087608609161663058432348541916446495600480979349211086802019943719457777727006831096466472980896532793226386959466491124240652307955693209218116507490190181424412180806153626508777985485432011220595955804051791320452582767302729960828035812828139441691697111742176955785226342777109772951881118255497045518886757695494299824866361233225629085376175800359605523392433602047159614106449303579503999219930876492294707749496264170821612493800039221715101912205029076256033502927957368778617132777414333571121302498821188045568104329839458874948054517183212492826153219147269302682090527115092680772908489130022503301616538377061924355143238292396057897716118843618254471959210321067285677036894954695373786986249683061336323905876912372935789559628684251181951720403707846539615845065182789576444132328439898880701751664055822443566696063922284629826147196863735509667425801207820238496938988334341424564085320759505352353147498937629235590906486878211082766505247802747831681819176155457752939923988086397504270542222724585224763886986548665550375632641395447644662858255791919709402852549992545075056870060070594320022808330219356135657518797303677533622802737643052845708989052926993463768740340262474430137587266054711104775852312901135426670643433846946906989787296991243584498594324051564378011930766789278828520703958430913471237082676705848966284655043993180254971257059741866479255652268007976596958698504001203631200950533401239698095434561651187695190090326435478971883519063629466743892303683088301497663890259744882958433553230573935141286361909863323466640947697459597064316243357945950368126378004937673193118038973975503199515408573123771687331698712996998704677112427115366320769369278389183366356598721512777858361862169486860038936900106289505766056635464332254403477636282451490473953324851696627190779305857589269223391247720909227437481121240710094540694364538178833514350758790409927618621535813525031420630114788225161384299814370770035377318590914223460553812051751877279489311859850754619703775328317494549536754701921907080357238638413090760672010050982461575029724903744541940463805114476196100486506943705653039935102812183717727553887253401543266670268541692609945855476852331164407685203785839126614871128819805984645709984132056533627751311893228633165614972767360447786471174041596590795537593957363779476304552800437296866480778800439371906995265958278206317963799330796150698519490009274847432236172172068017325108999241007602041695369320909045791357592716080660172872355934091562107685199651656454081282252498071963040376810958530800519303046316267220831989996304467128952093749700614805215378717094217433248547061507815954858557840600680110459493687306827430932313511299433506429820097296345652484910729882928315473069864883264567534788384306964665100852336285660077666550275902957284163734496278895030787066745374337499565886781750521442399728178864747151540683494384935806098893130297390632131835018782341956258180072878873293823122120901225354145581828569684761087529148579434402898520301706324748776163641703912330778188573729382748915275901584131668154656113593933189436274039859674266747427120576070188083634875998361766979336650761363222549496900901570117251674482170004821768286387937446822505258056225647917618739330465115996441742162663534190784957406224745406794864597460703827351400481569212552531016740010182048534760115932082467287906220318206219808775165957357102121216221063182717120398908207670691788651637843706738972713743082772568607525227986392339108943048280713478752083929531515491537287154120132613326622329329258829091684763371675920041113391982439852306595440592816407821890163096467544328484178249039887028192273031265601467985784152584171260987715923608460519580323971246129311296498956678956978791482738962388166180092222009569662870782600994471145201022553012616404784144577234327900753166408339416674181423786439754897809674928628129896095499770185672879822217020015704438327550259201840285578204048846623506871752077447692451293258215920025985375446985482442226503687923778544112911654464298748490614286438052541727266474765131718197812847406896427747713319362812131863720984046301171550647064480532419178077994898837317978354526767780445082723581102948810764837356844218512692344400624335378882782278655999355669290200937306544532169145993289962248311593975475630009161307377647552535713964696749660424386130677983343339696814247201859289147112440016608540849527687937635163311797261694826248319247294093604256598421073012253430507514758298406515791226730644479986867828183038628354740827885465857657605714223762339487396340133048725527179348522754625015961714579061285231688657848358857116409700432153650079093203119632049386393146649279844385298858830800945084748133334644310026243739469784047800792104458665832814501473603571829100557063786450863816285726112328651973621308883868446827186240320480737281914258398608492623587516102282579228784108500601225688500793530090486229706737986434013931949888244978572706000700916130025836777618751330682076522640408750974116780164485130643281938535004379215293215334968327647056462877182257509404522927042239193096796352758099584856158332608731237685106748086076944612851897781650779582301741498061798303139897023610561177281970227373139559691749342195960118458600759052179209455157551008180957785668104389993722669013843511008865353145157967163516798230888773171952806166610545037407548986796114423390367937129592706879251248294694782319620574481679696312599147711081242544880509116491099670101647036377944460258633769761937527979600773258794168970745026142594302800557133900892559355156412831945221935399957486928941537549452388738836653122696911336814734935913808951863073441121982534659310858639920907958490639906504269820064573312020436693296583584867220674740803048671140125182320121400550191334804387565862145303920173055534363924363658014774413121826865646245699113329820566784192151627207637880236472058041951473555891854729825804494835486832964342300980650761561328797647661856751757439006517531998525940540726351407213238474449728693142773494543103665223763073369303474017136024060452245089182986729076220830692492469396829917367583207129887186477472850262345568764226685225695642506976824925245110543576409831172894363565261578980180517339330896040942600937386021387181241880318558330747512414680503173789773585618549464979058717728964667015917237035469810987943223794426099387284107278387279731220893514848536843472244692805470218759339130996795980614344396437565277974931139673477674593301038913352153661178156068001535263424671257301689887706465355333003954556051036855723714095539520544011059585987723559697622950808250972206765101314323317395853129162238017702435159714059958976645068913743138217767785925918793989840210466393888170630124884663742265374315970013496776169529105706183197799951746685439687075039176842008132571277903286441995189403475016774985096929514107097536909781122291286939034400386938694185451142732699551383585030600686944316167508046598107075437771198022041600827415242934036391463936681513091448598554028069594959725403270410745520216139698776648541974872157056036640530411299343766319805088082237508417781547953646733852318210071573038024945689602464960168767969801082663684586484882636294131536678214893663540652706029836775276786464155442763804820930205957576838990420278534224513021271842166633243160446380451802976435942741953688676153554351437727929863404184603744529085132250526898688106063881024919653364356836910693329787168867203032535894491061034175617683922180532415744494741686296048939871770902021089618356243747337253390576719080550314948334215888730192245807691929714959135485824195302436403341705647473429624362046794622259108157304270198939800639800117119129901923544810959785676724460699559807628992390514628808504649503151730543055471521320476262984079622935783405856979511288654299095019726208918194676091590037288486071658581400852024902559385579209440243026420417725984295113715370199362971580653248193341632801831526966350068210275254682267702416621141277042255050716970632497785458932543129677041467228316144813161789477720406638495942984782520518591720332177546825275133205054967651181734883550524189094481988443955243662268676791860467613607301222922299394787512731681636059028284159251984019998217440067878263680240946877746266023976816984023873882914787155266191158883993208182918091196572171950550207356167140753730650793772708579190441459407800349993122677480163412775144374915677341219202820635111515323970743559616356225612950172068512915058025757172127532974825562804274227981678449060762924461437311127898628538984842949774148196224276812156643325325757339856437307081114171393003538904343217686010541810643511468329549888443460253750416406804231110972166207922888650442087729266608983219120077090228924371310676719099307891566443692197216021673165728702692202907561840275236961957649439000605860814161972956601878107275744634950700936522954699725332500741463546207963521931110630388633014121474538048466780193657201561128674907840414530518021268352215603745431989783123326039727205633338097626190247254673432875895729581552048527271594549521384899465422957820976874516326019460045939752942968122448466404847307571283845978040980833350794162490245052743058694527151635587261974227640523199655719469293656023121386887410742024529379500470055127316988988926268219124142476052601597899570219829399255883383221890109661193881475066572710867246367647683207732655252049200682902017469404809133450366825295419480505748396623412592169766540534004708619125715031101001120039378464805441277653840740445182853447828575673920040203054597403653714843228285121835852398831498811216035890451057711301422571763649557303462961371995492955335711571721659184866694579103206783514252807331752509283175002646501357264864170110610865789606905160166450288979545116470165848870865329475304320779876883042465932963603115058291972391895764494534640953656457772986796965025341987651798653436179829807308545398260530912765206430427776534365571126779665157700406392467689828447687949116609919963326843301183516921435724206366761366309463380777385456564429001783249505938413934472184349380381459551053911533734109895649845728238141596788830861049852883189880804206780249078450421916282949992824700478278117464589421629439055529087558657373912025590031393213799407920952696891365199817084070867703834702714851341387382811850147344709839978553883559006960458687764271899444686037444922039046227483683057975252018443485378006105071742622064754310950048239627914340357059811859103578335231680940741418842681688034399704736948103470206072334188691327248080134739648280291183270421393814928257529470052810210720856739509918958132016129063326814310192156897456764858458896626725081475273261601339200705524138225693906712959972103563416671338154273823153408839829574267189726024749214876387889330134758350050093290200363405151139814985342484070574007812266113721013580809082916743644040112887527176523132552003644231450646687223093877199125990851438636931064908708618694265672458005414512682711964549849695381109217925722464814875930655083555878616666285289933030534417265959205423647743815585622405417953397887354571576450660729632972045150177798816566610357027713855954083852444185994051540634448481605310576565007297653970824572849427945014838255907141032307930778082526767492242082046270226475398955947080583157915963340188648491870873500552856606754840946372452101859580557224627676485195889010425966283502085178977853889337740930468076828672289016018126077814685032957421993688416446162603829888420945922038649679247689052935499961307996295960994187518078712260739659977741892222428759649103785364027523480910475664271653389547958222401343766101771861446072707940738980267159285612498606929809993720235882576961615493996933988492740838744531682100809234919983038595208850123308732350129336731209558869619991482847607379013753594519849416914114806029468133131868139154401082712026732680298404683134602236624432557167843608913569087107792016856834307279181170081408110176739500938050098166119367340702747951966049026064829906224745521605298697622992732784900188325103563684367376465318967477971219787447316118144841783474140842031044106396688519203954729956624351110040844769368714196954247181439041715952228044122253704256968789409460701520497900212816937652179480392265981585322439432653895399123628745245238323512882430187901906421117234567759576777024058113427504945792294738048656993736874485045663772480386290890526070914887580411341767633806938025760065426102553180875318467344246331994543659010834900345710998408142063657426010103708733306966874966901755022193074172501888388260845161124730149975963484326326815925796933843544763163431348440266337150065255790349175135369130642926132334854804092330999684628694962986359991565391494311774429533963719559041519858857746762705765086929844693734925563333629252567527017960710699086375893767140914282841584664542748980722289952572230557838017027361235617736329602369887739165634298086411121117611084183168695250473006547561583960172560970830701658278859287112209268458131328563785117475995190148809920472591565433460901293605254238351551376379497694230869391756478453972283718572584345986591200278459937234827550326350082492014857934781896661060598732359810487626183278583009115166737679260373151965855780784320085019646210073534070813877152544016042388112398927032555056947991706953979261207350199158097035866500574786371952842265663637495503984094447846794551907140537020149365636448372976161306213372309504137386251947374876773659271109343768232158357456751704219436960228659741258252845146963540989265786648701324264193589757342770145161112601305451920515896976233690918890559749251245120918982306243549941158587914949093541043490047090885561412576225070139439740556529890578729590395327981901350669101041304021274979751401925129514444988163742763576188235463220482238627734992721142259042688816927396270925798193998631487660036412667610768723089132892148239112010173380033869830813659744479592234409557146977501698037446220539269874232825644195010234921811759803847070075720695609492464815988706319256364477373211583991908121126790066192986200606953482107816276810833246246576853302303171068033258186234522889763592234646573874323807008707150198843623883251816318184802907372329663733958887821739229669738067059396584968466301759894510294403139781665472783514880568627326801540479096398825878370450353162314939914062545614458147188756464931460839742212410785950180468373103277065704417471311838662036854505953335973393218601737611164860198163204008233713138122787172280825061162490747896206490351787008654568066394992390033704570553307553016030936541400526560258872559778711768601633171051531957939561715689084971305928329509314830057710287933973117919748968104883646938601588945957174897581884229743532635401854198487919690897786034676890294339355758231136499163226979462287736009955647435918311339973719362643852982092082625703524070552136535224640558019896520219667768946622978193115670015449694441759838877639701757916026756707357915848101581756858191844007933004912888566881640137272131274324940147591730399962450434920113912479483810824842622687766144615669111391670863334988477919465602498407356452339573672103849517325667578370890485868018792957893308065047572832085517583040425409440054688271181684240127275967197162876874174453905043551856536767511627197709919248953706495360050759804790795436738113478606168939710550670935671399040703055938630709882656209502967106509391614427542566327839270085188786548742461617026200938008497846986737515060753004606100322790942931899798066771870728595069733809429953902475204248841387121492709443151171997068117840914891784374786094590581222349222433468307218804966281805410576095066394859812753965216774514630366267575979759200342282828242604275267663319338298242120419188786996615698078152647543843699587500831167613794045205807893559684194930371520570213136950074428387785449524020956609234707333562185242022457307110667500027512919844893195103831546759718041260441037010377400406002632588962423530370265795999016603863668784951954386951678407472072585085024328483961504084865944872165381806925209453656779651260283274803541798254087834555091680998801185429494867506952347967332681520376678728170848948462617454504125122297991680885831447621065722569628788926210480552447109931758846477730314438532988520272288178353314302707767887952329708407297932544994759025662732036933181898887647426586449406626100605240957941189352014640513871836696108270094798900945245114684492827417161276016851852250738699701423330624615627402130291314765109125551652578154381091075834716598297119805311006679449021160273738797198016070369584652888598264028280691971263851652476785797784458644564916155913537002592719261510659671853291854041351619486394513813256391581807951946375257667654254218247501587275526369718399496540845080316544162225912204182738960062547016786614297881601457466240642868618473331378766063127220805821767223081147246259092084543196603403714555628363110737056546025306311598009395349302451843491536635866620085822881835993938601819634353668423045044075528232615173460704914094912947070086421258960942643689656703031583414539275035353761714427957888458980128768269235307821628506981041965273708135725661552172161339143774378846504835076604612225895973039668072920921364614969101937925746576381894506156376076882733008160140947646329944728180636591440208395243271772587178285240618625889266992492176805862274345733133721617224312921305557289211312558360405712231281495453525069564033402330120560028549839014951942226310869452045678162423578733445131322868359669848565177950270984463314384751296042778435961022702005403979150419214884856135462432704162219897809047523790159431473736576062166593372633878399222306690062513842999728645330982587126329106552942966822326726524210894672940463897162760995422756753297416389807613910959558385425520900239870608051723187822333470386268097838536529456426557531295775490209767976877510396245922769981989941053808427542904104059125691426032701960878346372643856938388102043351460330130821737099572563330810046354730670049178573654990543984897764571133146149017356627301691248165482218876519541519236400768285228109891566875443668166043776888045851690348060773836183837522605155385817611672205495109642490679602465865754729766567164096801466724331758591197096757676771638234515654045943024315328362451743860998382844555705272270944312577449770161418803398975436554773112204600600527858831168471357979479633263281494194541450896687295752007357620549966173248499551888442710977283966317596583494484685020677102507377567562082822667697703298800557401717168121762132692748598461050923321486465431246412566824769995889420338653502897137332153936166728274751291683083301236084552651743829012239352453184272518148616741927024290049926567397996901578158926465828173940807012329985687341623592925766863199984763800115346596249341337610539494010850026293614660475920691121468406255400281382347012332890189069558558530391351566982407000448723870864491945602754855100130156447801727226309894211554703983163068491076306754917548575344695715727673622920032156890929328412059076757111261956401808868869460523458443336874021334930645028142253237943188729585546783737095535600261804671896432408174461146119251522808862607800012147229281906122882394801288012647260017907443533912808930373145995169247662099671674863073775295284857535130029258265707511700215143776870716967669839481461929251044649483902803345124493248832314482599844310845948879007308349749929737752387843711355732630566846126156377197766911950267876070020546294228571682079812135560043901580111188330372500688725532274776900908879448508802618285333714736539200609144899366976022783411820230310424520518048585049679379475663821326681629515698800968417192267360167683280586000314909524607310807428931719066626469786205841221964448494049884871314270646249721358084349086282642858542410470939754790243156220702509274863269050083249400257702767293057760411311994475636483325228041712406530371002894076061149877526184741191577276163329027894435660365633871357499877967548932547449535752517323946248378503200884659951691872130998972927623147062697074151634102557538639920383830392631471892820753666567156352288628473095563392638548230010197201701975129895020243498264170454801967288936050005804513254747401239896657459837294603417429243228533976190609651743285034476849627762986518279936901767393220970977953168171087169390493734265491353983604048719725780037862985247060850186263412907561072848807954807138685317374933753730889022578439842229383275221528745576282102733703079426154254793317018309756561178376252049856008622915625357282763010224046942354812337100648301823734495528614618121550369044868781826872648510849053532217632582902389262222287993327555417394728861153394884081238981602893728161928101250895828928449870631320875404755528555797163259956106761829628843292550575789023170692360552940800257269642114526600029828131687179498585614112397407860993998264055642182869890274176611028252756750256469270572456591241871842971611661066513500999141312006345420266580875544486622255065964198726445237214663948072292459540883444420152941553592546389148960672080022941087318395135684367878882004148175131523835936422672430334670831270675856730699101017994663554328385914415824963374659957689628880826028174082670585354249977185206259736990579640481110102558416881205266720613864001887349966862131220140047506578731487944870566997056099297510480651075152431729823616881231814395073315463761453953947825671826536514211098555555825187587710535389886851566681162432719357317606270088262092669719682531736889326623788344813497825969986899690121840766703858437085990577670692390884312775937351913078713684466296561045806020729679383681280143601538337360219090482524528539111532686216976630784175258914824135890234903668774607976445220916109417309277064307541049974135921520143411697927778564010501981953471363540615619756509490786520339955709406041611238987784221271771671329309857009859653721788753038750517816688287686197383026251720040575398671911843406626093477266839884836839185680760443346682496514270489146907020041319484201460986456073724777931371564922398367319349161313987074044831541638019689097771512526757114201034589377481749250002107282184938516178948611546288785204777698625951118471116437966256932580102128515108369572836096120080452841969137731677877133069582407198488398196176006024361553226133547656312583198114839175987002916514750501984695620243350584557118416380044146984462471058874219940892701105926789585716964765182998132423437851630356931198117745148857891494216520458389601755380088608296267846084257329482183460859388741853801309273132326080642108367133422474388870670547366839336882814160002400625136809891389249532258642807742586106368130838257429548132559649361326385281199114651770072472705173516302673925105780562028756891742618541860234694683339072130031531889309124073918369319581042958941364141019549936458401873597735750954218777957688206697222414164038272047209544888657761596129781258531411484637836366251511223734490075206784545891416013762415902611603697536493138868483059746276663091154395899257171215341297389789462259412369293226727487308245427686595721507128674061501049719916196394362214027765124249019451208994808339775599251485430718428930476122888933731251443658843093098728789216780833965723463688970868648148158326126006724751783711579435285700564929900656978594815811720668222005321251594811101069312535893692682916181492149840162119540113070477745919198782841686342577709354739361060852585488751587012298397326200811155599950943092625053510279455689576363564121048378388662590072315896554801210958664807433584364534380323896705269807158820753112178943851805159878576135100282770569584766432071436318271666959512474071363934282107086890317365842940579868324284585022495405891257031859400743345540667870574122532873376173935475686159505629387970119631268317215151639044713572706872674440905203613789642772800157966677792876874984039820461500976582599753104494046835397556090966819442545783412961257111842146531607428285671773459526804042987568151783194044459530779525930017594845859086829508996142347976408699658541365628967339510347743839100283525571705519990418519878179431471819362769778579151339410289087529855347618933106375110675205361529000463416568213249978483435457784744910814655596102264785518243002627396870467530031732435449493619412864472471288527773711831831637083479310029962041489167916586234537786783992273959897907820293544722182352949409656334185118515439114184148827236085938704640323187062535089955021361418449082814254049224903868672248282851770281018495195301907925933561149692482275627610677541942275263036935791370250203877112626552727719017041229406205386213303315710455483050812735180167872181189388610963772827202914738800261126663221232886926771743828552811003750017243517964752010503525439243838660004877974673602522546040971037683723567905945917270232633459723443168145100685351390274937440671093967448602032989172405884708109245612073097269718627806283870014239037335179003791709887308596232161987946248719059516200665565859815248410339821228486212965075181314149740845801039150295497113129076479612564970048644517628593789261313237100961054392700406264730645654503182111281552990919309769610866085127115420179110096460569780146235825133022439052773918728468692030488147744243454932597890421151449730577499491418529276708959474050682567547466409711321692692836702556906004045272024965756784933227964191100305146972799756534175807358459266589049108286399891019781276966514383401632757468904125087694047439089857019609911257259155044316689883668397550259648001429799091128087198127673877359854109515851593168371753351023104330377722378034025515922586429422541276508398265266922085394203815306401969760489656886823164054561321511371017434115956997191229630565562769765784516300412567851292276671909155407401267748651787463695087733355805059461589006918354246089769736666585168290436181712554359366444165243326247905396471340382380699046077781236624781332164805969962819895132249781524269810124096723460457296243216856928838035685274728509856868103067200998125983693746333282607259349007462419402973895517294799582315258123491536869050876068953935190182985847075670101077162409320281514213836565868881593151929337357022844746289354168700203151938212737735893950633031427774873134749420487888043549150215394436715896352964412609615392690955628358893975459490488829112730016669223121116374372022325663437399411574807905677832879710334381249249202227463791748256659114169114393212876964926563580960678687625906337899299187927721770010800299392646904762144664487885684655015203948471374858324412064308446395502099914185719485312314641505639304047804748454975831532461197245413203011346438543165127472166356538886934360143375639424771032612913498555057912480568741578670524002251733894398290631729980766635980790558614616449114053784712310499882113860901319596232298374964991926655227331013220775041923287266167831803427352144661703764905103662105982884667467736205292376632753234975531355702369238499269883594421314094756188115136834586333099422144432636205183985540050869655391465075591474194846666671845776755120888322741482732032809559733203610982034234546463904266972070059352357330672518788306223834397386941305874724478985479111105872729245534713741236609368762725514579445687219102455689220612248140190945125742882901131833926842734435753614721755495254452340714255677802538601462810308327700579089362234536724900054382080555868522403953384726432192367526573403936311109692743547416963575669055791538137771975211322235416519428937884154270552820683377340493814260378342568756187571417740630634665877178183585966811090452948577514806371801569188100183220150808735531654228210574724761261472261208919597913004957930886760406380025256684299549313777372431054520303161038628090624461378917944063965481711199695372148264021406002223383897717790474950061437278997146285056024078657370244587476784814368513696722511835890683602247749844617670598312019009215330595355698285260623287900320252742095965850214645709766591182121448698740396779168150635865588004024084572976844866684323080477331603139116814274781148001648900542410116516592519414337555299276301952972106583519660437380462416000081087598855802066602062965521538568982041192283530186060497040330718317350112367669119357181474399075138876524426852211905177442676308286531168970211873155104808639836986607171035807920569303716817398325809544818830669473900310563427316117776568491377494772652366680969560384714904535593535541118968342845850207746502238888268990293484919051647720919664595539702074032809671269245642607075831211379870368356157844844373452398394906962446243783299731918930311924641828320808595084118797148919612339371632338575538112320929168558078913593969438002706192821498573734872994716275452423720391927224101585659507768316800810152022606757595029409087118702744342279113224870479892678692745138989263845905444292603023631786732895157166380728916028417756905868990768113069465233297863208375339656943849613373575855714315938816236928276621014370758302319151167948745612802216567645659587525603330672776892365001041266875636677069635612247749054968703580923547552400365584624423798745710319145556875270994247152419913042592589980832824359411883448246213336490125273753359587842761429550546676341897065430035708958531539196540336444932246728543699126377342592557276561860220844023435609472167135904627603764028206613403848768654786435955711292996317713068558555383746363108620888115830486630578773077940962362424651075117751217987802106953207867463232853510599064653060327859901829502146429172978775019749499427363102979145992362464399633508780466058693450921097117931349898587544571480669623922807413910522129883221832264877321556585242378989966332373456094471382209271212417177683207446288933761653940084543952431828476128384501667097479316392492671924342220978379617391106700932307598568165578511860178971348688841776774863182901288776462138982732381710796319069252797372626577966582849523815859847038000525186586983285988649347928628968738013302765652697217332688011995969328293859602820012969099394919627225376350809080654075789151102343850852747856651382974395740335509777097005959264346302477547094897738166355843805977719829433496030362143624935287272076346839638616500468176193554281627823359711521614508135235900207009394898318519293192084931875682090824051421473859383334615520558601886676383525204188783533332432175630567473937787829442127867340142820713904605221594542138698393535285144540793393492956736728059878167811715973123115286853762893423407637920521301126273373865197108725734988518156332556571933038040193515824692130722522229766875777347949386053473501345939685572073034918869004260440510360137166653527344235124457978973723900826403206266307819019859112191180693084390163431390985954185608527467451293595249579245806687807778428613970119492310221470619487815198326895886314152369317713356366711192739754681948050718920207012979593991019939008473019421990410175234872904140118771684893977627352595632547015740077712373787184971627106708241599011447097907650992970387106914166427664607240259909437992279381576957504989982600028992152101915008521285193412799468207645509750748011108580936225119698302709259761263955149245083588386594168154197372090071528600713756363492227960805594552985993770099431369179432695059745080332907211527075887825428149484446755810530458672543814771864195836557953808135005313686565963445891547358018183261445442905225541501813330198456746732551019328948591394457497161150250223310300465423530469541380769583011160617092580280632213446065391760248991424405760916997813642457392568746043218789685861501586972972417414622578008938871806177023490470131455814419024614299181835845713811928629778246790053392010961474100514162234746980543006570045060689494684023971056376970763379098050272874203607393800742435861262549484766272083955586819164448239374874873602432356224420510000400009738485370113399967660397436122173231505666088448054319083451965463564721659320377558217717494425908454328225097834286901509691376723942907856924277290949878990069878630867538511035757594324019338098891338905967052365382049042446560304568944376435249969946216942007439688959822610183507015439858551121396472600115073962082151397725869343654604912634279724283945476477825072587409950590684234191826225167640214405489648040559333111023191476139774173460900727012342527213279144057588469555877810460331574226955114587881462489939624354095885603520079184424884574438361580351506447938679746131858819400329970001909764599407509371413833062875035230158309771026320838556410423989610258089473499910597986127334732423959519492238946915670796612535513964878125667543892153437074889780223060695964110765108861680774191620247893061570837500042798246767646110107121693589419771407044244965097658072082338559799439278440242916623398833219722093543308111277266798422106382652897051076217717566004161917752021241397636868582862391482026597114544352515307044394889412114691744627655747030175251410118940268271721244880393410893327832988169057728622170201825843473279252082443948993488435508712170901525326793122807995609502403400435401300367726411450874343662086253278157499593331239518047534734082945394620623403221074537515485244200935563187126177991200378594445155056351662799308402142760888456997839708577139797957593877235352771108142423286721549568645741287259540593038279152859385935315196501945385166784263024831860564827787094489283396411232636102832939545409038831550568541547558946045000132093718690047756402563002467573183149286777085245178502774285309571786179381707011420313772735078924825000970541945844902451146150820198553441623382188365083655962588835013901164099490896299651430839530681905969333582751400700267833604102186043675033098807484030937871640771866887183299773655850554032528161257465982839305785592300587776553861763041977250758688520212852468681623618499793121663685604493814301970070479915140742682991682273723743596705294672591112041891897982086225627986650950831857793330758477175082721938168274331762737578801471601802114336259042775345251913422455006858958515646469259038065196032281080727828440817114195024422202700388227393006159966202804942095337522884831801400728027417126000063190318964562173988031368852608291736776735757061206354186042155026496297598597072279989780954945974553916847419198528464681381539282298905932828849693876589844351836187445619854435679160485438668297708374691698284811443713208875663357624653681098565460995087824770768182937872564601519889114666318087769737183996092779734220582472688227160226716421570238769781803100137772916925213252551406690920065928860745054070164146110794519676305223295215006037783260612299657180269992251596111034181539413646086095580782121657767925421453481277911492972812545296316572772541357529556653550463623178498051652645777828077227034967278586534288933488401532750169865505696853835255016444285949479451342316333396161395704911963213213734863327417473785504569875145951427383010256904820043727009938665448693277655497426519349728431796596566928801374833951644477688948243298982100128784195285271851418991904852226378793380468212320651327952115922843262959164968464744392832959261647783803348439238397851284942458095307159979504438399943536465068582236015792793344250923399405508877759134380780555978943104134747623762008884016716077658492860787290820806309739334131212754468700573402636242369912941168817422331218071341084740096328111676196828511142909183132231144047434965728034404215783453473550495707287638102201406579747835110228521382943604841738727788472144454013516527896278810101752780291587230077525356894646565741272081811802842063396026580376367113728105635993304956026681905988346116572357740753036542847610246067554878047315945332155280912026645281344594072334861712513648942283225302378630009497710122118658530689655706438851345773191161460538022885219748440133264921461028014549646116705929150987405724453531578074211401525228366799277614414024384247125429201963835732538392768796986781483995202229984734646417237168160637063943152425734168488905162907770603312613055823541645915675443078902472387659882313989458265766812208067031411805995286284785325531632935221164774420797390140598173523933644365075401265361700824520227450351266271224399889999517675828749392951954194786928249745418511083208869888025745253313105495802163143077279742194456186633533512013651122194577828131570824340288436349423403985037016885463167687641545891236495190939013456569161361624101926046166960011559630730524367957475984482186943051962335697578490038087968848997796131536535395364560169624322947684762085125529537501787739922262694203308903540080666796715353395794453292815172890737770233852331863219614061591674086806748483472809020348821692860540387368300743608680097699054126134638984158838363971056810298093478233809478661001496168299547706961266833299360405954685778535740330837059453851998281659231969633523416735490680041875950613618659175717229988600913454632044234381717788747869475185403313002460421911314373994410017673626250477415321296775029682384512248013086214257687685525393461708826830837972783042968582621231964839770940114647413866780019431493277234986250857692804581785486964336427486670475218170305072194536142313682754627240303329622201950314824200431256978749576142418447989417892994459420088889152375458258711208845542408711138493303297020011346110722329118751541931001222572826372044012327166397087002967637975978030644054195143268379062288480908078928322319931395839054358930127314759816502572255826583298461472274392948226937530884470046497019514419822288874925121798041745696229159869112391866215644542506417457399744425512337565315098173596221230274631328513983168919396066768100821091113562066586800259064233104161953158922905867795699985525660247132575406691724152039944899400528174767560689563913236978610163119998773576398649413130446292443501233589912287356885558691974944442567987380572862651422193315067157010054216961180723540691540428393331717473072220239219031758999266929509278268992984232955531509689451629745932145626845452330472696870092825975324238754291865668801549666690031285201236697868156207218310591986395471195354890655416748619717870620907366847085411434971653177829764821222564641015323361046062387528388874368398552465489889171439856783908499476593344627495636575456653213416253302374247767111226307332736050508109690822849382001760622346306228761016039171868030994534025462794358955150488770801377751425276250887853718107398945031094798050281425844907665233505912504120462260359093569597150474492655229108738871715101687943644956243842346105978233690591816996581500642510020960559149616786878134493729907588866274837889428546329695908315889973672807553471002065658139440671753167079920597517711166921370246884679189276564455323799982255204036635523225432538569590922830176707429046619602223130456524542432012257016401821285950222994383478979837093740840595183852006923648551395821611984088423500124104663283788766141059934894643691318619992425413881944388988983593412933749313155694331934734679077896740600625504967920435994297667646885243723987590919254831436772238014884019112676305535649907788293611729842924310956353212869799561152877173773154745306810849764324680469039484048677654698945511182857126565371345857915459266794696476450211990637131660164479998805757920439265359091551663788510289492632110502607396279932032794883753871155674532034083564127477264686804729542330007905964956385194468473922686533219825990395517368991621156852369567937767870809411242678254934996303483064199254471752760527468869079766155952086040187075330074539597400335825298989343368587913015170598737324825723810252319542248605822682347166338064345927424115167266399203336025967092047450335595190350856883443281771200149864073221423053955960744439343425428037457913182405349776594570302182130235153637479088871541064661772162607751330929431409322687560211840621775495593306125462329608481941617443413030505950313018871471055259664842668893596432558552407006035392553809773928527034470365269778289184062116936370566291161658134746514018675125766347280227134115392412541722731019256700530764819839033856152600337008002623206738866332521895504611901407217746512028660927511980959309590688001486766957577427918041439747448001802270690933478144743063647973743607589090741630927693870199048295160060141902486437481616827776984169975214582639909195075082143442197171160661579324477955831699521974841177720630617970329714443394772828720694369233161787310672811698581952201015141359477286177248774921087189072232078283042657298545800337917314461181021597570225629277739868533285853596438357877046739322113828664593217445207342452364203195690076532671556189789019080085980224650635524194874207337689364878267465964833543608199361332398127061949269932282242692885596690423692927733560874634392093985318909130394367384231169735702642394197492271229575313463280075422093751083982552162055160330294130969922738054360565107762526665416534559962446213218635560294304196613242333804517521023685983014281432084775198096946590435846445120935019613498769724545429414192509488416105531072772876272830842910689294546436551368145669270194363543150764369900767145616042254058283791127089520463219065526767282966034364343435073050397696266746776653149949931688999284146968761978509507385029847578353327624045547710050135940752459309466597709545299603825626473528655652296326500914546246661724974374377741979101805732200073123795947795633493063528911906590915133390106755246389021553519607026835716041651900506047127860563025286215440839149334114745547261680964083932049979866301134363051357853945353579558677990800561231043099102443578432554610071973614592739036932892777351659685008392253887414571990995535931304451226586450419483052751713905237987006452941569418145636190767134945972510873014455343488960821407831470708076739817525731229174455798299831849829661051551693745847830651820108932904676757766454928769858138379430754894208341622004267616389908741420420030827949406729897814507391691303512439980068739049906295828520671201986606807080642700762748856793339194186460966477061237176406943098299029441431150185246259812024760929355090033263142005169091712466196798722008517745167886305994422086522246056838113217097539866382527192129557847717994715963225070649624474939190771107055788208203089467139747290949179896070231403593462712593654223570258599499261125931076321025252293431507574255285201552693283021319950164264387929307161296485881299670548524220391325845580199422611329746904006314582366466258689835888302236092438229317891056255864322405126486656614280985607360779378755780072095206466187089861492859289080539329730763589680250535143873653907473570003736697355910634839692314264719329000897817185526335302028553461124924142824865763691422503754157431380369366961071061507159935779056733839944189070828574710263400392461046690433680570360399842412065465740999355951038218537649980366484082979357819627106387823193279424279659189195722491722173302910551586950522563229533380668177686212571814375633482300547790196043356853065212957015343810649612713804947768880809135776156655391230830429614308946180569103638461858400232064637013417356398863802362833182390175097784436328959504280058246703409649826880158511025911573440770868633345020707437442379594714077221804359623557321440746237395967990152171432381794526310093374692005717963844547698712569634321066946170724465255404543677186458820891583038910653875390379572667429732582294409447615813128521284413495751150563454525640904031621795616908336609208672059553111441830943732267120399691371836749950170432873935027212189688291001392592142418037414521842689118292924154764292855764776668700562221148241083986785200457983708923923594490891378384465665562790841539839576611715399422265964278548031023380748462961590315555268729260124624885411424483345369343185361620679077161535104765163307312828691243866382419434708802964489033376967092553192411851047451746321158600621643706534048448184816375227572044487339695232080810177372043843322220630326272555101401593687264236414748999880725547268314129556234851347006414416126992605931741309931486066615256743977827637349519099625255661995387426492261380957854641175477705166962817028048298777113286177882608998763298809157117634103293965733947045788532105583338697974383847237063731716844999760472920820560029011363123227960715539933164060539112873206326522449559241590469234880563454705853859836154549560579736577997123780107607852938805304463569767284253188258403881736471721638129281750540585898491557922715856853590565452365174835375371430729232963717675462589103019579959213013709558182693662475335407065826905027483955567168502920586335320375423511047842847642158149606217742264100977620841572524591663929583336755638369709052066762802435550067829205191106963821582958806664871152136832129270118361184988921380788716443113325065914482407400069026382750177567510208623451375769953040563261239151527182067348558399106458316088740808906701352649207534559549525104425011328869148420408122358816414710890436442700677045385603705045256440659526227952497451377800569548704674386494710179076537351401406763128935714352532622781693461895101471391208231264476365744831530944340198928295587535275795842780656707347925787985973110447160869862084442945169001756809464139181851803522527238991590008550786851958586434775953893254382933232056911828014166650065682912318820881158066884638603249994327879827783774882797563989549450049139059967865977738930012958518620107042197075736838983613525099650802776566409115819100452071276059458413853780553405496778376250322394769104960703012065199777078990618529883389171502249957131012150644573476708786068684890200284898920297773724629876146756010801518466636679293976681163646965677899411246679769773828139736658972198180917614342986365514981929132609556333737450383195416358842537658499925155732606208840671484766684270559893762332493000359320297030197002780204439739403327193843615409750701513949463079565857735189685971795827295988022774662707757667860485681685048953928564152226774203119815379231619684750005967759961183481258761945285572429612688273823683269905508656388934209610666387457555992121691017220397509439573491922384579408309858894169729435912699121045770627577577790850134830840939844655721028856129835249789821681272015310309380917499281974211064837078117189380116099568686697312864824732089089476284487574608347036544285002258544215201671087915789793317515589216040254908874546484116489594316614510769239247732603224404487871937955347448647790276538013751517168620749429111129007985016037273804128642618184874443165541479025317170053587184459645055781403156640556609537262132657221573925923929906161044547640067832903216968385869734217922287265755032694520273062702720507367081722071900916663422058654131996792092965210813582729481646481420659719288667279404275439679620546480262071983186354913697323891565236834224856576551479670792428339074299341613191615210688562849856010132654944407752466761126803420861299370668984981116288611575753711548803787861574573909772680989922160695425037052177911795136215382841126795480521038376692199259424464326721642658729275883801274600030248624414553386399814865515783653552686049315340507486622664422476088280929926086937173095092389669383045325907324973113578146048935291958581307403678517007770656647821533328676753337687974428142462211669311725981217571661081510047364365980921277567058601805506219287910390770308834614828704681817648045033710035156455706791357216529442660198905995048244265154639789978282001414917597255764873684232166845322974289508943470942744383479746894054218587384077739280589240085365885329791541709463659715145642852965796997925552366907345012037515739810921039899501271127931534263215640446492807835013798115445313123903583500724995416666399212723637699199404418870743029087506447328166905879972876553565805657443294708163673352151958458669948558566587514126801121170620022385967295202670470900130116105884831720197039247479606795991632242666031657293306974972508586946184235203338981646503640298144212199234380019771016135503869763956635747152999847826682539723591188963587031031361682276796297616205289568946360189800751275728899841159905630141962770085421892620899351521023452459227496473159311382078828011471691934371598037906670025709692898599961403732353861070987787706137323800031182668158123141100899390164082885357917832740759507105508073120459900671000126524567038595645197090067104361048942175762430037680514082469888067578445329144857544584040869020839629595857947913369909630085499313929285003606510838148037227532383336505450199885373076082846957162163433501832150808661247412034262243653615965059752033332501335533622784167719495000183667517157338546729954515030579413338625289225997647813230211014945357780301782950750236066125579469450460778023032613804924456848972952642875588949872758402899447973010668816179246632930439497636029852847533621050308522945697423684478921394461721883158644542107678369157371512983849110835656709110715342211605390251534199373824401634097625681972390633907442667551492166174707040460936579010255092449250431794920870693451830258041000341148662361386514605266413785095593389659740647506016132338751932001325073466820405143713167368306904804780221413484618682740034229437312626491650845010270503555855871240415418033401230385048346961580037005390813273335557939009905145647351288638331770010290925816632448734796999080511136788986392235347386365207679416202605447007335130141431019018945384914883440239571809898356239860423575290786589695319259942063378831449085375510307263302488637278734072481581382953322272298162194725478373708696602745942587606201006197731074113458557799411683730715381269591200379668007914983205580367747304816014426240004588224634827044365640512874993164170262511987857011029715098719260294166698271828663425513561261881705953813413891453430802635031277646883244881523673646242701625139425281095303700346408590874116302400248048562884136757348466918207471143807780116355599574374093947263476358224092736380656898357678571360913661710664559034433859370592269888268950160784992845850563029951427842685691480280712525811179294920269588257489120225232452642170981087783775624241204674857303882107734787374630984061730089759725676364883149848304605363032208991687943705756462924264081570590057553219304317974297833138619147148191645994130024003536419449805379370479819252122243175199458550194955113584803922471619107807275043616514543498880865817453265655674811782087255715904192417396195145351436408256727807271940222544744807011917121197680720579885463538696980985714044120355289500671389307189919581705490894626742797024304142484751013877973691646130025239399820104747310479824799651889943768628165237086138270949863578923737728919007116614440189727593091949112296303238159602128730145228992615323492398849582973734029726563232196781186517650921688519159095360744517928894495823983710170266253310028190990742120312766081928311467652493053755541363498988411655198183141998956436969091672755614101459751731229945777306031719852677769948315674561503017230386681139377614368978394746054422094723612791681477854583644745481513605323650517698430992376679103456356534256747920666203846050930890517576214137389619502950834859431477412517184670068159078139640816755733094400896761665309108020459005634880860041091173411872436200410278628712261124311225890082306730704096658302050245824782526469157349719280637495338619085007189712726941997688313628520849522300079871492966751173327902114995794481389350189484625139599263751537145234810649547737749724527966145195306759958385431091164542751609855146083562646288891335689608186963932998235410740179412840506581567406494936665451731036658951901937907296113490537626708225594312803587797335832712321981110529022563664166087718337278279603146620978814396160244562807256912584734425145036722248830163938336168817288127016839456223901191847869580510473559777825778263956510986404519021764139863427220736247207886630386491010958839628795450868361186532891718111390171058630194355794226017648397270759057285347762476626903080737981796860505168915669243491683568300987945179245020282196661994972570167549226956952725068360377353576291098728943600893773039679335079457897284189701418559756064193571002408122532206337472635004073133087412313654461036848820600748617638729027633654353293216133862600086047458298276174164558903437708438896702639669843260461985227592970852217644787964096029987233653052666523792990583052108693309387012242377676348259359175448808385562326248474061117393000046780831338898057143307674806812433493890140374034301223055459612839706232549829316273312898071654084186093892930055126704855849395664195349214781340542224628408034434391135483351565352739665532823082799217684297548731122591085146168199970290510436674061767444358639436314466549673906501354563907063911317998780758186945328393123019067211313156272617731143089483646574455584356809706011724671886324983767417899741581030709892988738280170028295898931483447111029908865666241044593243304986511476255413985748850973704299366818163980400773339706598193729320268284569293042107328654835054766821939644991339006275809736634876210508947557230327924362403649521158103571671188178781250357802008133660105936436687349955649343354225077052372877849683451960125319563036828045083848140024456162005268729520833913497227099415702057877537794726475955265880621884108980083690730279710560577194582935026246950038061206673613301231017572317567145462580696048651796443161168137393883727148780850426901756644261752359998190775667656505716777215950804528128390524746911272072024645212211918487281908676548206738202663938558619286812689322771220747599283982276984721201525412041115627935012199837212442943179089739144136665130602926329932663099407776868939581995832833712300565754149798641721955790869078091237015892013110862885438033654930793216011922852033803743033159656842681801563029570580105638427108577431223060221541504915897652334492492415303838543626078647824771794942810554405309395401158477287774672211003361134451516993095065640042010243900695483752311909578592173293006501015450368917122350121850959552972307061965143410215336954270884388768676490289900248392102705217129703838346428169807749391745782256882644544694172973772323631845319440454108231048681571970764840879528442050350302519635504958397283330458023330118705821574033866373809810282648927290113311239325143787110512013295686959479084650549411200540489496251134192794938313187750414350432708481379893341864031109332361883327306620198512055140206562421368443498609886826350666400701967203660549776306091057959371905113884067933387434730288119390593431569584470457452907387236699933823316456351784527168537214869529792049223038578848208881671644379610620829593526507725374349079673891054455675865275618600989269853536062693535847969754353353489048763420773708198880435760737804558513816418788314804085318356661906012434797707830906276520035459662256957456113244514631686640324013085846688565751730273693843750674746483206355435653043955773615393455742120582528930925034175087032856594358285749433633218709245729456705644588916168470118753663609617576816826296572384249587660369031091695116604306072089152166835295610148133369765944625466837408202256331752306978180126907054904006120960400417560245664648171684647739549347068462270878433872243455741285187702150250166589281455385807996199522554036609315277791921620741097142362092027951995597762231407818845996519649337005608204087654626252493694193307947322972214135052741267373866109704570042075587653048028027708411554965664428187478681937071253201399054743230281683042284348261544965089681316521031600754871478295808207167442680705585412442231602675292427534903750431350079800612104097320218386791058049263170386355798375169878835007865673084527907204620690212792963740649288230295910656177249270648933572656363962742796199725272569357158326013510986894211393295687017593728049615855965463431038891378290710115946123257291846042467439352375519554622256511071536351340889534749654238179160791530062544665204395985703182325908293350175951082250492664178442162779303536877698178435832274332875812518137118241792365572265575077787957369285102435270685524308213551156889370745626623755750891974341951034774318190113813529745070302599209633556501869850768218498323061495589500466893696013582300179555452293342750502833311298526316021624024711786344218202386457312045286139620914259710847671337421676780072315954836286581152901644921694025172843304937645854305633640808276393291175327058514878394347967517949530679120883949512896404978613391311402840008705819011051952160775436464737774898207855688993892119566213254430634060103188356955592201462258033036588921451373557314424508692037610337598232306869805548632605120874792467087895675953758822824713718874857502231167314728910649790045638861840401288109754351929495652192051176755567538756715858519971698565910830256963845608846519172295397982770547979576802459968487335080872577809294387940851097776105002192781303723609026792010743739990873662057070790365966953020379392049801505981383988124376067214741340358890644533220140184141500019348974437519873770754981222869240808360876921148453286167555298507438601673210146937004995934470438998507816660156666769007340492552670369208778025317213067026280782363419325085267006109607907636172810503661097800635273132432124957284330423745966436222289376351127019480888983224694651596108630444579792044895757999527704150400651344958776319286171731071473420578114587663899472268888935095791753758263280435729811837008040692239415410276195718228974135701024942619473177378059233596089979640236246002765154021219974476121712725301202577131507520020693467211459679330754190695506731135437928199042910816521975118924977806414750737878587605071551825166066332961460614243978606186769617939117342809990794045057088302849354958735730356671778087736096089606625601572926784053548272814222337615282853808657226113751666405163586341397745053621725748391752809982636056316818872312933267369037137848139004045800876936173607378960256515607219918404601766769534925782641614494606472000964722139112309873758443002467674016102555194873341083402688246721379251279486921092724216268822431651999185544361207955836858272379379240810342073486245034873056661188772491036481129168856318805384014432447088072547057465449157960985958585249827861133568318466710987988705978371160156989080058120848269346754149442720619024990042117065205193181301263673372016536471225684796195945368362549469531720806899675610665611516062331636878079360454701878372967834728258977780206748632823442233086728501039402238842337700900359903266521713345059939580761808816458158074599367958193696569636310112423067582329389926308076279195965317597267225658546108330884409579861700395803628785194381652772135109303670889600515811736595437192373130964311157259351682306442319408066332175395462843349424356269577871212994015917866479204099691174901127249512435369146906908708457759146957596357130433157453819440542681863596029064251124315104421047334233779569885353034146092782880448081271061001121741907541738037381393315520092170008871106225248595010079461607716192093159540293979668954179951686121631034174990049630179463244263363062380179052175873495446647537877347194291224224638507881964742055173770303910189134570716024016813267566194379306061240480162264412743375636488475547969928350916999963508215766003001783496930869681823122002088713864828533840929459008885271334834282708494421759924958988988958331873675898527780462268385235597971002053035337979509654025049179718244062031970069914729354289931207306934163114542637644604256907108288918139111465021780132560055999737081654610770729476221768154045297376708278498168672755426656977728999980606340293095793616026248050927407819566777770839938120251504687835173820023799235347029132725519971230268028375581206412991124070904053344693497640541667467626295873776369876078357765986208369413438034661557296481869301199402879039654134181811233287797073251544659698987563003309685079454716049122047042945287069998336828811777959021734294283877538130711583307842299217452144101545005737937395124360044846147782762913535374716598416749424646424615826877877976774652806544839048439767228171501902969176055825776998596792566282058470325837230386770259255456084343661275218725533877328352099005831465052561262458116798040152419355021167225072897202261042299867911691799907885008954864494517584542636347454486236343203877586989339946451577991145400715415169999341192501921435132872459095875646191015912680342904955791913104434786302496014738002385920545182733262401406054793860398137592733761504759345675322562708515297197161230950048878859296048250527658567416413733392875521189509779454597781482392345078849874446842809740679368805816047728849200190215022740515393931514672237235996900056740097243982654570456598629083242583725178119879343327474644516142329223192682879217747504062602272166893661145446052773001993013007699600733595853357506174936852584906820631488717466148750304615729880051618480022271146420117970030435260494625883002323655882064994883218646451908493231414868697637667570774629933283225343491710060831914497105449316236366771832476677855630821806722422072862935501013403682546248901881999911404881460640361836194184616255363847667207052067013480764982724241541712642420033985280610683682032263011576145753705685768120372903009094771373367605609804372885324180261193266847020269550084133969191971434717968825508376644835529406558446038606278334424849735433500869292756375938917187370418189703628096189968527653401746286761033668564535199225970835123887020109984837348642560191296800928472136774603261203654659004142762273288277242062289975358777394116082506463784641277909461062883818871135986582942712116415797082654937657784884344612197403962180959024056984708532431862067781145047458975795419124820891702831871418834571003754254613259551550013322776412662293911757979309938078984865086975409007376996779616225065934783904155095558777568484979195921120486418029631982255652369022463634511942377159780450186181556050682093613092356482602253912218573480315496228400319825832044443715106138285581424885532416541924998523046409137424466160706166720727874062572111407142757257779435098404401455270608953010118074775881869534154069861984302904021138885449742547149216285543792233972406105918351622241584486718807613301519199055060553053812411164094869114656434757705967064819035954487790843061699843180296248103445920375861978466426565843561798638172769357998494655951973335097887285061862683996613152902517838633935761756555891289644889996718301209344829883318803342127085686455114512528596266318591507380018687348791522918614534792999880042614835590375692293777986382325855772287416481855066784327711159246216147012328476148684219298184973710985626993060846899026139126840391887559538994108222386548816760005394482459595244054049122693225966657262472293608258777157529555879506933771661682801046618626306390841514095972232710269772681288843480080695104251286586877940788020676361357165644789204752487429261165921435203553669843119827273813822967859442723959461031380886603734217269792359468954415935142648300382432587005690957915549320668575842735534939124941516218621823380477070652433909116871352344415537568690471358346465894375200961183992006478869790379053461491461857553407503976479823387847829931863527695034654154312946434466752305800847238220995476768293439158914482118085466123958852212830947215416312285687548174243352072356555065805192277552822303265395203151765485361104237578830562075661183051005392567956961957775499773534385882546801055540305249308666636253095392365866185048746545622503497801771019968659362963897479039293809518104980868589488168059837455484232068501500971744103051306362006543005356322470962077214754653325646834245420439733384078950697223786258795615783903345174490769090412834814680192608419748154143358380547718349000467812370972377569434694399055139181980206549422391349109090517025953793537179482193834657396024101530844374268025505126133958829607938725889656697771637694801574812716311008545792062922306531277790757103277963368234844521573351985502181322736868593512493059555832987171343400075778723005673620085135774580844995658901341096364722757338676045261993834247239649075406728698840129713670000025000104658629584222517970158092416930644606232000716072203037280742401563459312742351723035106596445519862285610764094286995068641801287085371975319121177033147697006580062231427811077214154341665318399509566934962174161789148562005305021821582482714704083638807865489264373330015417878172578663074229763443174783663967567892951601433101172881710854932453048409494341541891607608617937041899413941270320094021173901327280753344980714926117314021936979180369366173836841621176713636474395348425775803628471512779563676988450808286294818887512762603288248712501670075041654164021829970383421367554235958484373481817195271044036222208355993743261255331412957849089851664380559976041749273694937301311823185768204905294205868778081689920226066092763942304499860605686698774279892571426126345642578806608042873101744122210181504412182036031140421177485892489100613427476945372026491953722096196358907896502162456049140117609242661127021720064708220644861245087386600916349202575338202606497588611141893479815457731707435285434951415051179939717046441926234815824115207394022412693865355573610808216204865529598709140773447550214118069999809858765997726935378586683600514239753280005383618910666090715207092979119905724366739631257993584782242365519170914292004712952892907717553629362552628817463254916374913988226724720981284617630345309803166965878240575353061504281194932337799256502852197543327925225417988100284246762333752247938336938241177201332678811497115702813699453650272405802943867326695745658909974099281905774400968428136199036975712419226877068835095249439062805245619481558429910435683255000103895305217881170130409477033770399833381321566898494917086314109647759356331679987572148760142583966164210412034729516150490992113104586412190764724367026449299162474621183750956782465340492532790202135461265097609786079308110052556429252922565605326061529720185970639752878856539199019503893637270022504097775311914103221351683996545300273724137021582651042421636922004223392055151741194069551436524338563640940598519440486956429548461974508244707334351060065707683463123850926797062813472119087122463825927525328563426222226487918880434219893558520308779009715530686947821402703286338852773340422767748517219455123455013696558446931713978269712178484407764093168226337163039294284564048909451360032743986255631342930175047945697604437435739364959122480112284912761154701381959678174541580618608916956653012073178490151784651479784028785028915330047479753413395521384626112892571143312501176521209423863850526510512169335622827073907791559097348890198650219880217565974716643511647357408965360871563227368992573057413458158146094249836106635175605302600890105671015330895800623154325530305233841820681108455485952144921383568980562186570067554059831373175577843677543947456630532070571487948286273666418742956515558112152690475076168738517588715436827893634435482627871267782110692528810911160890756659903768526689439488721403575213009510688798560141695232059625969642739292931419504348430813057207604508148826059722656564392176489806079303548715427486968934557790880798440823948101684859151948832609826607473342562173242553213058833678214089401930092693784398482014189500406439229739610052476013762892303972308839799200245313951545200758794713210300354622722173150318446606164702699735717227739068450923460452863169698416753689739347992097535231411615633460947484762757907442000325945236178475240198238643918019926208687980121496213483664239465800126361243152282795500531093486641230907244144560987767889565167046503408729374869639657433254263279629514249879034328234792837238688945165887366986573028190205857385711467551821163709976448200546026446159151249115944060493136609141164874877675594736594247010434446834208724372508863664625711657542750341154665067165243204740252528901843084458889317223396556904880199869526322264306665196919720899950472978273659980914554808673182939675196908022606661110419641662831228623410213560782962065677420509329102221330179045207507273862466103232448541309553871652991045518431172201920684745282364176783420222394781507637965835096129007815877548951844745394331562617047765026669826192373107324158569134037507558932960305141218787509229261061797423459408896613956204715371768317247614736139613913195140007315378356091200799430702385530059399729861639289391629671525261790920819705407516599092189948451668863367934034485451782316254317996055523577505156491072239692200713753597624505594977852730671189496152666074197732098615866870050963694274204140324064200240444052935936400811143169419735049062999624272735489428799768057360343295857162498110758263261350770683780226278374586373118562906148462598944312890587145020959316068606001211635795223761381130435500921390394442012115424906128070086680138317291895678568927073264886236951671160262655029349624782586802381989623744141988067877211208306485184912003128511427928123278643189832246615642898491610538000479705404751562342857479440425243169558888321612796297164061284241040006608597809484948090612010437199317262955345217473963450311650293143253250243293137074867906680152205321825972764581830254170573826274662671252186802554013910524994608765158228920892850302554044309945806131173181068350033486892766691483824829032365598084718067798263719275346649244589801430111188836304708807671642457636189412343323264806345081435356379491915787316564599773591525388431943910772216527384172961616706073180039807050137357096668815605069221629028708969462454252103810658361439547817819161037576165683280025956602367367724892409912395275559646517458244049027349252981300525118729136800854348843519649549847809439797505185339160512517372303595235476975703536006942437423281207570464740868517060186293399776069338617257006322407520019679189976684862367712811661806359961106667339416045683252928296363230879250358120695521286500399845903960631073479032462269206148819988284229146880204876505817828894689188364435177041202677081403773659257636512372134922446167229974482292235807675060710970335530929599919912452201194118577438627371036154911621033704123649466855748496135935430298511273856958752483355707190764633456317035732971865789817599271150091888217375167911713467897946110126831941836120979722381820958084540109442642100532819132994958368811466392589399687360933129904505710026181064932847956253846059915472512613571050896766520199369599456933524641477955052760398849518762289239288179868327946315909229150695876998821096519531989263149170558878482421637728799830654282207322595863586595075408510217358176862290057986654075740169576191161080747372621873741643886284159405847054099425064939599114645669422370288857709690284019980274298117243785012496659682167124228373214190373631940923993250482825142631187564914921413663477448256666597777722698648969910553194599231456978684879997421200005728894214314561534985749027656196265889110650304434758654943352734294550643050841132585224628147730913310436255452098293084316326796589205727431135786575788220639168063059034398364791739685114715704312864175765232907920695791782338742877724215309316889608982889262872435566022374597670721645485562512393183285493496443596311881923375485506580106506422134276776862727619161801640811141877692146832875615070699823464867876239398995258908827156895139118719246595940135201057016810934745860597335279419209678098699280502446844366562060944627723373717153702826532428812454895188808655691656015779765827824393270607749895298589596544955449115678894158095462568721839922973523657179994236069536506359608152695647447112550549035889161972818198325102930644276477413586433924766890236314382807484522878128518819151670176517944068012572480401123975638776520953351247349341276857598200551644719510153677849981098245593235896463296561561738255677248247859890400177147069377641338718766008026977311295381990281638102159818235740111985250911334061624575522001633354290706499294651818157651210081487408441818518495719875326020355749129973377701509530750738274921188014352099122540455112075508043838347973905676639957550294471260777594940704424608846282311491270040976010988143998018997812216702379350184179010450391422501110693621344233271158909649324461546471874735483439422036815576034813395519007506650167941543985224611317278775176010040952564290131758705099543232047423042119017825126777892505498613127746324941697266849339331509817661609930034547630691883824510592866383157563229344168537614391607269001649053356746294526875840045027029911077157241362204564393621564149334164641252403010865377320670802568561383048648551854502559293856663641191557364618501829763879414162899775346890109886369915640089574148544538527344129450582318339270417311165164842016698445059025270179417756559364312045771804298645500238766477059039117260472521120510333789206429974040025861056484622389893565019402618473605889815684405826940112836232634668208255834652450884322451149095668393657110173894563229644415872890539222910681843260545073046082687255749217316531938777202463083692308773511137804638109347536272844837968367417799844353235675404699237238536751311617138594558394505770489875397341206642824067953331753074249062522771176695564767401393929513006742901517720778238386037600282024653509458839273556583647209832842847977480711505478726133428464795842949665293273415355099480358250685248775402839969556127228784954955700230659447640993350740660353070987732684310099731909353857188985906233992387525444827796018340071820567870157843821342323159883430834112179116931107372188800023551920445368786678389513178064366149705013652431452156818475021664026621687320041645040264382293701159455821134784664818769927364995168728605610462826696910704879277488221488793290119590093899729303048061179515743067883860464432105051939007892681646164879889174911230682189657812413544826775231652147962529530935030211192873262328680746004902327919066680611378359237202277166400096302215281030174503501892298375234221609998014358046896875524942916922337037893716548200735461042540716586445503834901651725324231161764188596371829734950569052084217153486813880890427775061504245912305367883446926078906672381284462003400132799248080944340018331469454036953895765797725073223873447591080448523346086053270682784875794376085029026543642579631076904660462013683690348234001562327526677000158224796821141463152754099970736608905770819280408497471451952932562505235784295145695297984575252743994113766507970438684804986264590957148068811659269030959289471396414382243262579693955807118561707802378874740938727222458374741221552966472654946986830122976442509097081748700169177981967747926865713633397089455117958364505245570964595723833588255183003951285621272906546080707927628347762418697725169863005856020149758451986532491151939159667746589247918808753629975479062044343429625638069075979164185896234123332535329877450239062830815423833114610821907766168679632732381204820392051619918248755174226587957933549844942176035001557737425863298476474572137099660854964437102556025079169822718815722823506565449832792931886083678181036295108039266617497814992768774521084338138853098475120194045917427159606374950388510784696851726658609117696808848091145016570396809058628549060175688144068557265937886186812581990634758978718970350578486295347432156040546708337441179095244378377140293376085971677982741850721789507407162218737198466658084770052461334549916611149417305261998264906436233053327095966690490097154564846771738998349741211425447526023444715385414332212562492721811448695645418941902708139901885912359199562656051222267512912648909992322562725677024993684472972831351050027633240426857780138669986057163374305473829880271828440043782724397147824542336528763082803138840224143858774332236485362324908349641736170844384094257884215014762814191649369729331898602887751222786004898335783828801162890096017506576580717566174763839739367626595109820486218980531498747472985008861412628052189861976547359179233601784292825579260072311201194960730160410389873080479771685614429984931518501570021183413220379565695112374188960219923362715572246733554099556480656528944527552347244877180154167140878634709420129873483695176538952296565816885863611696111567489838431089000963889859820337303292326643644293784852518256118152411516311598320539364728212784068494261356971002170945715158923403191629756567082694338847289274431860170998738771316830061167850183953373759211161909004708024904161441919585268073769015510315528678418117071393653345568882730300455886689399434587827940600162998753720422227985350410257709914998644183086939165312627331357650927819562507918305125142993065516759988225204104407429627677922507799219146499347034447148800214960845503903521386491168592167690664345783036522589492911375856185575326576538178109150210265892653908796681855174479200743388348020768216256144918209302611389814890040472574071968264422027242365365862293100727137894168815095640048131191415346390454037478380410181106221350642481771493508446987681543770285763165163060612621895323468424811363522124984662284691356908119338264088233165727543840023328986835659736495461614255191814860221209745305529895994110624320801297574056013611772615664983979793111500023855084003215842215335255482405851574713957575665884221390207759336277415525911663790583614193755935237924352233129290343858954588327866037859255835539672438389863737597449028805895043502632695468130964533920488112831571655835277614899092185878016924064082686392292023727644135087575268991897858396852062379603423889331341294398172283616016165121491295291728489452199617193459599028081187968041132498842329801964573067442243179135915362962370867899057105074158200810354977513414531262028066228789230296363093956395489513992362728872205492206082674431646498220557535060257860626097515302717035514384726914424156382667044624220668071461156227315741662065954104451897115950661737962071870916748213462924224620378111709769536648606929641021482434080068567118419790636940060259787399448320760757460875657903471940113972568975936545348830295712101701498923779593435383393943984102949036130995653214621849546800676652085780988771520202309395086487124127040675352212161392599917183620413227901963702205254994109747811515039358842518496796824915495371995175784350789360375102205699705047331157039211717254082957210379804285370925471784701220868926828943085604792202506210538976199973336821866422803626061634218163205249811629634728172485190728336320393503449642790326308393636346496797124099906721045548906492345921495554026550814607530163427077739230322701418959371479518638973008489661929803563171089977666143794243528360641727908513809427267396153361230924370361855470339593948472914030031319709143575261403364360908128475227032449387213174303652268628965821133686226828801831551728313165377654141000159023862173619849686245204425242195771941372288471803485033340307477432354357440421288698932838626076934031534528179843263729212627295243066098354188521386913599057061070459243668730038798923352749454203519925371904895236946221581114865008359721504028209417668984020190203489623511454438690604140982004415873701041340323031909165062506440539736272928683801010639426295904498338235518898250086131541879701900510337625220547668821416889501294020705253932303982716961481472290415891318321105386823398198667911274422050135959508906791217609112904426629725712142791653689031732399532496495447205014394675152247603244567666397807232137788315978903381753894621909000281138842486873061731941135549632355137465712052391945003185667428136943316857998050659848647515615786261493693012366709981879475877035306626462447891256899480996670107118881383675661797331410234442993870877180501939657802163633899643855967145786607140188159861440311583618828274499262615652238448675205212394911848898473085348627572279086658739779038955095439699551443063400989443716262806835693247033240935316073369452771605162482857773904445429145512645088919993473599555175137136530204863373605059402232967332429935003998192498184933338996966695077670889988175740161119909329692342807213934108188202302081025321370293617013076768037525134006401538515711535801555113676186852671786353657705039026514512085450089354034184193745070587616643466306513501104213119980744013947530902788654536851081272779031115029680623737831024735379357236401658067084370154766564179850489221877938192028492664542827315125698399954182721877301027556598047020385473280593081877106094640806776154689609790366831107304683915481300732666356415540752851095739370598964710694827728552382946996154717757081808799363397545089175899162615714822683839919206865958908632905258435691035358727603017713631860036296176372295040362385033023479081201597231832735206431738841722703019110510088032170830948130709000238506611069513162501361741935727750181962072552152867992950465433737747496401161130225552386200899050345940428037388709479092450481263113519499753499926715110205570631323832783912473498694817727862562267199536062757930428400823872081463909616284730384580533481045813153980642487124556765806763537722147743289352915651983663234065219643490446205454886887182495019965378504888851390290938676656276997242026058162121637980659161723625452010596520108154161776525547796952529458737624248967450338444773350301184868129321261015888039596687763688476241860913298260871808053943056982637660796672707123595386011046963571721743127250900174571935510859629465898824736812083127930040466353754269524657398016120652633972504491104649098383830045917828328247427944837987438804804486266424232383503293708789304202590352600586804009829386541130536351088472100890262742492434379152724162073920657557765151401298855326737479298606064093993556213859823102007017420096023561284442236213631010762174649343437923895665482692179844688093704466043334517648989331382096170530010966705910617912151725397457527184857198913651664473427133858541011694415449012978037390902965119215154344017032841641599967949950106474881002740563059845041302720510449703507725170470648139032762299111868037862402216164703198567311869116078006004992969302615181012158552000417936093409827463053824370347408310229978005848694752041151020276727792087499381811139056712892176961961666513900613597789983662160118514830463847744559549513419270801039386504586355947827792694153382711055693582514301727816742992878762038296153741780431295979314955216578307040698824882899691817719506953511879097893856044260666890670442525870091871558465224316299332383280855556048625551692706375507679771181986545752720230439127100829302810061304535734540065975992360750826429630038992487349237623220790309852985864749719040179380975306114900329188258636010868343143151773680519197653237803851078950664386227030869753297718716972815550918030424380630948592065032288123094880014938874356175977177820314443190358439017790110244436856541206109909850514372922961185690460102603981127483111189897542573088587713396747068243058922938890517965912426005205746020016090820868250780542924193623132477419188500563658140067645728912444582011096575592945002366726555132952517334353019164048443635695511641631861727688375614770201917464381239627335561863959266070546479204406735792937805099625439896214788890974038448038830989991405367348702584047141551747053785918505354599485878271345029266390325834529973041080104954114087984791617892025885242267293749271681602605078428588797121826475491738914196369227312203327766018617247616397283989770674542689698752362006089797319896274418879183063058013863747377168548601987652332168035138589878827314383377855937170967745682367449177775488867566654557561498646683904416429175694462677974229819152575404497159344456834052041749337992746209089912384430649209548287513403582183632297438641657843378913501570232722015805336743264254821355688681886079617907519747036308063422775519288024491727207957119972104698529308019861620144972468968461504222651106583207313317839082337168328880810392104640120936095906929421810662014018846610729310211011037443488744265688432607570044578795613455160435168323642845811818291205727113980377109809250422169421787455706012856081280229221644943314242839208791250692385186556364105689961068059654229908185915963456456908507987215051479198256852091472096429908290522785198779246528380139386741293317625993940945439249667024757601296837061475193489540360588472339796035854258649948062725762274312168502130415270227439142284169046469865046484057805923596942088591970804314647875648295479897793815510687011425738579408679523900453435031705085279972274743271375552461000150104461683319436925843505172084498002743881668365344226951929605311859288800918594450463496070678518715525374837215371352658344311855191035291692942804982711192931366264837421034621015026735655483342408671572834048690013162083354943893414931388574459858671118765108200303482311424759733927288083304998235003149564619669003619765843274698763218524186793683059817964370630756957492658153078078495002691542074543596850238848487331504490794235981849768045687918033632584748956592461852308971264806499017190706124954824742816557726969901435040070902816733841046817834335433771321428624712667489081012501799233582484762845806305954189063313264504709160145910967191458999714075428598767499185783114264584218612973961447546908700903291587164305040808273832688867721196477125222507591410450632752184757105234666111076831385013585851316440762516335716583295381970782178162611307140049425275875597305713664394767157792719926465159730896113357552066746542331068727434236255371156679607271818734884014975475256609493807132982062673420212247787877382582000968651296719456735309920903273049104808654385805341714118280205169833611721411155184353922871042544224431576257316431831890682324785838099617780661247238297063638654820456865325491460755471728889682297527175771881640285083083570235647344200369250874543900603979271818563948736846186206353517034818022915625282508650024527626577389148131591909868091881596964963426726699209206152657123674977016093157218001341481705259498907227290390546613077589155387329343204465213568731910981513114137064915815536951552703574983398426722656856447169568233937933036530824324536857219682613350529282336284686847976708451741235316920832904031981435710196564286770206931243578423690414923337273222446793720490296124996411226026943267337734529642880544790259095049631904805932705421280977648639589313711820081194709564527462416631573868863372598069930205179159201646164382074553894358740605656653768648712132261586533792314259505065415171752559525676574757334319404685116228267553561599121620192356648600993033628421685597552102140041794830609503435819490533980682249774955997091657909944684771813345663991265689396356933328536371445508476507155029797125530910350179369263107777690305019860295210556450212696792071411535031792026499337177150703519375350917576447502162151907763845164010420541290366241797082281454199464844220628116485007642023723800037617547731394536168360979737065734979267954263182081058644274935815264412162459198342508907282678362504236686640613583789182979072722818417214959100506256766752327709080996524678882133377278617315468449414773780879037038206227216410975546617961613576341823583671660748874959215534334378213214212038261258388254903913397570101556408139706369704301760387253978759885890325552431718860215469642038905980083720477173097890403673248378959859695755814691958981499235334180053498393580878830466857790764772510025635238814220981155201295840539203004906042236137445554165230845883617408597953747321779947225130354594078518500568815076590621447569177222460458498628642113929170450089583799375579766344306594729645673983124377161976351537362982993625486743044689659701710247227928892567631834196806634765215410686875095508525626997966558572420872014925116107437600341662737197533512286945207734265343513252668625257425724862115798347519003811372067653126914940639858622760777184974778670464633682662426739087254933034163288355700136341506164597669417690027483103617374383141899344490847155347542302678719103465696498282778041812084986034231106854999744388250839113007191382132345710304351545585780654953172881850659150760272876262127599415512129077170495632042328495602173040087574517596417980828589061737504517889534208740465289736493137594441792926814851328469701811340104807168390807428822316846823724878007449942524747562384828193448781315449049630708919894474436575058990028313136979000452198359771379426572097955281552905752519586402148521904365381276585419597565702054871216554642595977855436132691561409405911800504731467792225399685338205174991752204501415492045921323002718497957168824777362835422091247604709711648995554154081902446504567824586453332730020542288705144656817645354440873907451057825102211380520551355934725020296774229856802358387163604581544597768807794105199597919132370824639533124188103778661535143903470407437866070150929827548203176233515556580127518590439556495862662487920650699814354912890557276663169842704624440163509721216666705122551738975739039088601509224617185158936661727961050107430844624958925245469130712214806919143620090623075689258724063134194282139006411016896848368418899906961108561090643983509176116460087232473925120481685375365292128010721591099454836582573535612922092233722472389693258090578250742359851733101339679439592472333278474117292220622105720486332076552531456619229022954219393632349441348787563010394276185227580915200426370325637060506510711201261913105353914945382724926620465591620944055559184490463111620419036635757851990055949915876432124808564695606767082349389721236999365768898043276984019531047678075296640600063272851550745605276452222197634714265763387951244649677611253129897912574100200001155120580241710444710577058989231792979445087473322963994380450296462473745379853771519625830272378153724305782331187259569500753391190098072889377364833371757671392848861575507602930571794346408124335549077378461638720440363039989036901425065315250941902670960994666663182229099874191175417631028646155745102017705086264186454040966711660246819996769332392148399653297835957458960437195715193443490513597105329003681201804153670393958208170414449503854360241644196552259271433597632877838283304335568120431649484763471503440098331209840237850838076833191348692272840760915953636274372363152549845894529967594984277001776120355001128710146340197507918957364493786633745488969862803845342291788549527054124502508050648788969194665279476066200378267129295621936144577818259435758294552419176969714734629025031235823115585035545960631943091681255217761576446397510309568907769591384700897989535821570786939089152184252037855075217420212862871674156795265041480750940707280723311998953801558423885005573452309849136022704446383763959056795073502087066297068368978248338853974986836743097933441175554652604865027471065328770685106154950243707676186713914148037985568469205519016504793084807848569528791505239025994186041496974222722192138514401546773280333074086047796906399417900793789985024762932555241913493796548870237437594926221794215292008047375375285705301086507394549755873717315548526545633879473204210081872171046180185488790634148909276137327014980238770599101189178114531243016441486300592528684570395630170227164142303515618248421505989196201350343872529997465932016680016566629095170582113113731916657229776977884226817095604866888557150980686190842420150878515964253212047020070601639488345823646407786632725053558223402292321727595183522214741556200488272439583275978716459294335498608722993080288412660758982322725161007961398993417742863749796942234314292279898716336619674482254390156080279904546359290705156281638373451200021897640342720449419326855324625623597348329255589575593064381299679551654706182931523586497869182824781233065891821172006016578677528051041877853485338197320601162392824014743412611276649404517914763559884261902472092744176252219903746001054905954423265133756777121723117087122278303278428989456806943515186388516883081357339722700122063889303189086554936181408974040438246584919177269952473542214687640464146675526803758770495731909542593191758882686179051008528656647686889411137901788319545459555551675100712003479156565017624845015925855077786898828952274785392780010507535821251288358360731190366433908060560257980293977111711713886397303495320463093317997271804004549652317350509639040852374738416770966720712044159718755067225051215924957110695071185378957269719954176560082880644904733453115534854252732173288663838216897652773831878686639287416396335005549487329063778588581243467469723645290125932720720772572908377086249577215663300437991525416756488070668989927080660106117763886765959289229184148441950142161235715122065663240495803851750790973517240628455905385473867370797031833016437747488912354617030894315131258300117897860873933250759675026148535423719872414598341046758832665548257982430318037878527927657343361290666519338671558738563495948004869835834522522112882926702415170931437789324734361605664664546287043571204749712112277017064181926696676285304329702548492233769795202312534175566249651372171472237023216542341572320383485372359832952245512765562502328378501297640609080969336004746319764685262516239088021720825134193469064240950890377857994528098905418549403463136678057396001967733072722623076210222382850373450709967415730879997137270105347188484267012007472319838519184254769138350056974307039048379735730127768136210903071970997287243049612058957484734569298229211784490713225943977217801878574908106825244879634550539737675416898476596637250036360659479571685273776586043856074292885220126473583913433682015285276261054509477774086237399475166875654262345007431120430002279624746695814227349644549031109446373508759027405867996021079927474634179314457544559631252539540592500933401981992346361445037342752425820658560781436499000505701596325665067878231537312345212483643812510020479535471519522157880096634133062280632431803703306418102276930051147112176700108303728122702544230518572250835632116344041581243714967646671493137672833362578717488795948685527027065828398391162140705548195670952060135184579527079336183718586318595213166810336384007573419658829550830594097130626963038655955706754644818562371109961661662696294728737814325493020340152661675661582019025415318690698297810447676868706309461112956157144646807318549273547473521848741502080185142421831951630893501900304093478124027909346395079183064574225541768514983782667521987354098134199162778768832763051306518563685206834846217854558739658237355255483255736640190941407466301705053674635573153026763453617379519170008888871638372379415560123893735794842123760490023050460804419974834145305572152944465160500345040574496057016730236424312464137771619706209569440057827776249842360882899617573772340071199036849730388512431361823093011809079003355705789710808623998846502155755002750549512070281853455634911554574519673966378720260758796867550029211232008518222558534876578231918105186883142673073250598178704123335927994564680756556763117687422715008853260089680433622166697090877602250639413593442756532020241428702671395652978603172991605249557393957667785723083253023938224255511465847827243144092449650080229252867217562928721160645941656245080421964209921486019543884252965787235148942474689124335199638487403729676233199533425912137541469284306951908822728300735711652623940705454057768843171546409003000259127390345529634284431994150727024065783018340105982608386471044497533866763012037438822384036058756757430396146970086778710503955497020734455839729589012383157208085949748133106629695579839819145526820887446982419039459027269215939684903966762530802632457186809717684010927003797290872408982404731162827454096155578904014502611583110875614572564597502573860796543872039474503388213496850931961957222092330271986942060029073336072079181126150159094803045623763061497683739899059975099187901566847689706530235424557932697122248094343964246528403395921396878822540518734144097529007181340338297719288284132010503311444474408296366401663295701809037090795843382757313283203116145944632599990683914925545379258684493455230152870541068172641415648775929511733790212042207848848329584451093137443650557466403980104443178375450565150088840001508244134946013818425549044520221174924978702295349776891820637687730032769656779896750258533875669079289431245763470561438275112818692443595475247228626394604275249810989385159577324693165966887445415364086180315406677993349511759115157406304301613643336593047772146009075515591892046251527570086495226786688254456033794088531633963917533990904569430151892270027299031407799390875121468348137314966743815638027744897058222967031466553257184434100303500419550810766344444942956189373572656913591141029097469922206737131399810176702684961936416426654901556268757389542057111678398609233999050828422683746234032965402419069773449526085035071426402060157775558346791751934501722187319574618279900531887527754344310909030002940472294876244989256064548455835637466027433375620686544066720628713775356116832819362146617288374438912726903895548279561814833008711075079393781908458619124909491273715014214931646761552157760794909464162504106882761916809733083408652646351125243618232768714403571692389882962766610618007525525108611198345563597018330767459992250146214450019075062342203667649752858177451109963732087579843897744642448826594307689619883479527662160934498116452455424637222102864981306784092609558872688695694703005900673065955698009799661579249404348350212530978092860197437365066187474063571587142800599637318030386561296368449228679903076758331686876086570981983925622371162815232344372796033162255227405849635748834232999105930527004568151328346411563027765046360509764529674940548106882011874817743549060519455183780105374988841917878396623484402557617121402195822991126907359622751524002589541228719562113156132560042038956118331245485320736876814342777609276360567785166508984950583518342889378214182408764203599923774504140897707244675473593196898097244875919700125593152847667672969411226142856950124260401727899490161269772105951420177102726275793106065727114216992999607448742538706761261884807535554359586723063946208553631878050755312130714528098223791320255117414524543189644540006477722818617085243445063718448475868066786920866561751238921605622593973661723833337597831728158756585968119867902188759526244653200358661982022912446403899579283603326978970373628358138436228510969539798670618512059245915328487475313350993399389740405427556573950927505510760483987837689894082703430982369385970218386336411223194548396590925467669728049768206821620456602233939094723711423630946669378880479025804164886945757879441800045518773926596257068175097578173700473384210246877878507478942851755627025685422616617026653886731716949983118407886617088067759689174571467413697219977921826976064726106753263729491218691757178104506485341467606122698897631461198068853257657222663075488583180609170148882234232756721478468453878809545822174752997224686553250909769534493070159813326949606509028698679729335662583601886366447947341069544178175888294310350743565817403117197875806988706910618318289993602344422572984949600699560796370867381765122575671151053793008993272214577346522553968768341568581137566734971828617596939185623689178309754335254247965017195835475824324851030776631722830828435630284693703250061234493779049084590750149136349411323334914167002979033118499325635943559923667143163086482467644684058507184882497041000554032394577455809486348643675541935436460706452494598912182003261898059696175055040008797069903620274057860471717654567445725181056215944978077217000818174076471148734946587973958195606322992186321742753150716356779795083182779825168390525996389151310127681303845527697441033608881955726767228352248040373502840410367637835296682444695101211816705577475369995584500609684686045199842135380917225618214238409679710832522540703934714128536705689568783796253212145601677954401646428842268745871835583016394284244763998888306083086588765085096433329214623577502212705319109342205206478197274709063404852107069603520574602661933289074709013765300310332320907711242937603199484530244685206540044145826425792200894840805594598258739620905884732620967377994829312288557621070539489685121183261403767217456611624805713045625022293565147562086073590840383590288223503879131898660083270124855601632349313879004820962460460164798487312207098271067850182785319558240424711849482588696715117489536179530324975611632190045124781115952604263495313406067637287762736049846450912048783092774991457691474598579048409313862452311001239017359104764591116916890161393599748887478902911071887283858209708714864294224816901307381992815306530979821546580012933918185986526745076873594051235229044049953280779078025008713208876578585546177203505916058966108287599773644124254845382021516051012952636953433307400774941111103049983559072874531064572737895218782911741702086663435758987906029767906866761446821781363741818398263824587541418168341161985649240680337404751766923271795492126121213416693912171898490613283642028428364972077599343291824171866803976748673275390497443392548457803825290367199763717244639761887852237291021827182627276654643949088745030586691347902492158440234580687172255698476519937017205628993015841916797001497308862972487022300054050939624933378988855925096836474156585813434918971962469620628727642656141863060191464519033979170889152144905806085110427563053060446774822090997285030174507644438885266580738032820624841588602494317571284690421240470958829793189781408484314612526270504669227915348683137196996089446060721296291085368526861946554734340953667151922430073067044504726161910518272026406219931245443192489895588248912798977257259237015578896099044982034423953883933280392568787196632537197230802119019508791785909374384312415651699672495902673723399451424380617597315962340814623682713662755334956333089196364975438295008719429643296445128984305541430322145624929530530765636321826481061749515731122876954471964493583983540918598950421034252758863011357492288510232902978906690262985946506402123744213394558876319506523209350212351894454281113492110951138232810538944991535180785596661804418679928908156706741103952496947923254089927174989961613709131929012508476244120355776184128824043962512096274502171350773075456880515160954850024905504698551316023461044397263383494501842101768408132118873099485377161272587020689417861057796980781111807713631907469063806009766754674022189020729149370308995768067882708040991051527246653708090500237175244666832036283475413421253663706108869416052406147957793819031977970861118910192742766532687358079027031812065822411233034805743542248289073654107139866346799493316765905572465425905374360306093100805264072521973482655285637762839488431748459838845585851004502433633525960428754662262901812319641702470314844265871843572752255533527701897502625735113523522951412064126977295749514020141598201070869432064469766977075332449833925767222407371941235910093732466677713060816968425044435811018034323352679151681112484380098195678520677785095028725683621919679405970677682748452231187656896275335334033095579899364857738725579507233690830400979623855501152735638484524305118409401957607679906515374279151722797970735185279104089780935563079140749297114356009930113917248564103489601049907611219343324143901510132594815380448168922928135308611287732278284064719409462429132849132168812566234493076635372747186640384452888553696274073643746537633312808036339701851768976729748467526973095459924337597187831402521099484840007025995972911151124887258391508105409760081518188958832854065575327780636050479701991019716017604701545766887393102148464520101313759494005596590326028208778192069633426745550629732450265516884183386831777201730834735837916376038908723561319544880323452223442677476449173396885968483121756618725586242591779330280302471635383780082688839057615666410750352482124247030827345705418650618547295893255906561023368140247454348986029594111489981817197934210950642844554285432130402877196981976185829976439654383343518082467049214411481732509205471723945771598715041186671661920060036242344028936322137557795280410150073675573885448034120876747016563840518030957456970228580924764091359814352297401554230943113080715804193637924608244555116654859263012657462005393553815466881285254971137511544307154552665671799655365091840493597587011891033283027634414976011918436945429660622388833883224459075138467461940287380633718565094878855016341964473687449516561017451439974874220574580696748853368728115798491826087578591434340923319180613599247599642974462100605530934392937568474223740919894104959595508738934752824300906984080791951098707714976553220953677931501801439948958967944506996235007174026779653560528330478482123008084182179744965552758144129803830800551734373733021522786151761158804259532636062724753704574746844147956785665979546327390776685023717561528951510119302909055533549730098087115128415568590745897390643934766347495171701698530590762861323929346831516974792071587645843396342840808349181966459090109401738449649678114286991825281521845048605719582799551767352505264283735550057982638718608701857602708231770871162964851298348062696174297500997987002013978533905698725701663663697501594661651816435728571681201940629051070351643605850377359854335206785828882947970713640837797924370803438014413234046668678371383920715555317427423183046582503874303203582449501553131738406863426911334087868444885539387716469683801024992201038743451540250478341195592751052741656357054075558682825276893125905323709932993632291091613032786712657823952280563583340028427500813118200308842678129501383042069961609026838678758904287256688094319426512929549973507773342387142919307372444532169664516728067493759599076642514157826825597255350029058470885732567186956145042407262290619043686368203857210226523095951844536115274566373689714175983255439887470191715902915224444824730818642419889126661303084254620676260337445301671633527251652195234751511041235015677317673979771331572073337087375397383866249482338494210106634844615988297128185705142172701218703119950329673660603639989053630497100863138756375619652258577713357418137585631199795604966588506389734967159592020399542793164165194218392469399399237518034467789883120320250726340411774862104363052154889230879511701698755558797169205246167440779344753138772108753494427948037569357016532457201148199234772878685600870920088633666056275240275577714330741632670038882472122453712660488720107667003445138712820642274970600070705087345714100062319758162598628137759555829727323999830327243329413480522639942679016452382766810088008439235593143347761793042791181204956884903742714778603873356341693062815383315507204566834566369251050443628203370699024475562604647292855612257893579505412510674492325656012453210849758988880363214405286904887307687505951739099840051106495057982013196156360309970284335740537886009092314477830445392369568661692513561765601920914852223966601559257664928081155131788602091803441123217432813489275461173979147656250390780554807478585853657802895837520862477094067266260976252347555193553528944613857949714145413212063130639517190721681240282307583620012277019616933661863677969702763351584166114149503791298239584926373863511644753373690751527989410750806902711937944099859573608744898329647380507080715476766393218431985943208763619839853272924168152239191387874124694203554277328267089976965129484683606776671043900724119217052929487884661079689567996835083346894224155059131496134799490678819413054819005437526426718427170576264034789776799157105712020226318139850148611326342442424602419757270654334584613668031312572637192217624623556931116805619016992458014255198612108658171449704159180174448124683691405592108822906135023025699466196188742471087048175916069495509563799620057565187502560830059570066927797286083164800541682691859524251073848138157563349200380934242703503396221691682583069928796716152160809146891811477381512920132426042925871839149088632196894695050754623431938556916761538140085336059602899644512019250408280641916180948503221041257766143850557552348112500635053717435020540391877972676898936173675784038954560735795027577998621698462104987151240983744114597722318102538377981486513842239668236028199464936423047495200171970908814275158719349048354476930873326799878218945308215561115033671146580589092858053665350372523281498528052896682363943730554424873515457507569191537285222317094525695706255297203845235102934871836401590153887625933245631877295213883606099139198721220412734286584726765308802426068268628551116886582684221891206559992915312215129308711273377680224907340773785022014867186980241282412240945210527232924411775597972976922215882572291290200017930918210592289466920453454963403378602247031487398834918553605725406997608440633170468761787190783376123997105420713791573794865600788325530566276353698287027349474088960169559782988217613989801847142193915525402558806116767884840736554000363510425320293409572422317200750821124184149437778931312273248272871286821640781395506467875808643427746697260236292558727258700086971774346329302260895498819006689683525477586384134505298811747279430124537074525614775425257166700280808178573077239485017333571996087611950997072819876197308859739153504998359175325511629110470437682025904339994454968087443168747458921052850978439699434054473627504044622112373430972512945924687788270152058120734940562540593906643844458998361093319572979476886436540647191718296443103531366126867822127475950943137624223985573238328485829398550995117677154569840296009587702143390473307423623653300970937084319706714008936208099861231482431938961722848929982363866728409954726991859846656623404503800953518360283713247574664165964003284293789387392061163472999549168630556955506657546739685582223776302788777142171761864599110498116514220638770947591756664325853156301476597891659028717553931877820314453794706169475999826879664713098914747242364671171787778117523469856675569492236887839174547556160001170804686203289656528320470538605836952194422560161136772344776905808857374657765077224053065309647942949040885153837653179440050937448726147703733110464696667495422912168262300649609754103206658697360317886428908109740804615291795474260078470716671106093492933468486616291905364370172142268618821959174940629875289345719138815003542742006007729648413744560996059211364193358737167458209491572561627076386901192553129395065553018758992710705479470537822069371905669648068927835749858267749276101574671115414525650723649267759586621680196089541160595822165744353448701138325037726123373619220357017375423657436973260701814059215639287033010790986076421538562785847867859947301258327263144471200008794568790402973891218361402336905172688826573349084932693985345272747525957548036184480587595886867779024479664012393926221868816017023181463081583289373201223869292905202352875419102102876583730019778538621785302288995554041797772210596168247300482404426825738387700772377933895711036687323649734749974915183894742821604077874177505437316739979592503728519826319108373257234909324281823761977633102286181250633685818634331309716814444362618425881736085861736635998992240955881055572337751109997366848643832009825085670389414938112429147219362251853034453767074101902204632952048321216219145946328455046745686750773563436090069212137586594309597584687602326092853289563352092598038460456021581334362482607948329653433763036341596987127026441467563366650832584746408756736271596550752184410216072920658784083621650390539535932939829015091846822762857190417602077421628277682886645317229325231485525514333276378962693879037666873736855792907745302882715699291329230248780227877189143440323571134164914207749555718195331209847982602611367070939581664204647054860514840401778695224917729744194824985371569261746901245274379313122009308817375921525103285208129689325877072352325986985018162864316182804356371671950777962392762423488063180021158808635900130388636896601605922608355815481226955363864438612594136778348867696499693092480529591247420761359263078736158713229118133373100714240830895401492996599201686675844153168062988102646101750723359552556806505240834144888718419745029174751923806026489971652958275903016262048967369792574015152627291141759260764641191256023336167484934235624721967680089199709345854341410994013194246401069373753476657678591050536048283292956657955632977354243766306828000295090815032129745986334282089181402909451719148597287309348065635880662781178162280616807406588560945045347138992585114089927584134558610343151996218864599575136053558161044722931813578817547127422153328999977483375899423742209179356511101844382246521030880478085479453002332485638669198605899923630466540372567895095346572641371690465800424329333393706157769109082007716230641787054284257044975779175750868519763760483231286040654982076479254027636191193860162740769566999690112338746027548929700058931739227983034867548202009882705955282752879627879016426107962155836660778984149203643509803703167132010366848633956618613247133372095162808781336630097935627961616655952599228680382843818197514848795002889169191496361338508112761195646720606092040047874590220748492267719329104292971845568201496971519377150428175102503322533910438410988640750984591630759910409520205183774171242794753952766756987347418149977029319722360639180416996893581784524267953485340347887757432659542044314559473289631051785399902246147511686365737288265301158179665825878979319368899558842371043068846115316411686804240462725597256538492342912098151727355627476807573636857403809445890671899823127236133237474313523705573977587214758811299410951001272553599180406364636669149197909425797252762466780279915140076823717747227319832290974476566263670240414077905361142599434724143831089813885361996280444303485621271681562406225946844242990604668077278035754353930853324699151184930364060678150314093853465572475273930203258856170021162362329146526481750436575843279868335667533591126380132703804087754748020591467208494819520497647532859330966875067762850399290000853491839477067301503653926788664009828853587684027660112665442758536608809523442191061693419055671973218051757631851132817512189094860270256345768995769379140824655055378275713827631778759423169828438952274416937957531267402600843047812807483980805882404708447012863231187178400089691975885988959366470099922168935783568800148036340926914121777479893364374151269889752449966570660669122787031717729170481543633160107194728727512442147151002573088786290021388498450614417180565744885974940996702748725514239718713125830987631887505921717711961859282185087136685613378842822501043214111014704789639776350794911271457079833520252479014839444608915251224840020648400727272771454227591323318149138298013049914366961801987952045250521897027196276768247636393936657081268866884859373097371569139920178957742321235654905727446891942357011756430519888571725594547772853022850905390569026724869985400584330594243492232390656026229932744978836784366356607925140686755889580844677242373681746998327472228960998693114952334612184038376102042375689466600565646591687089401343660260356329327573041106618079199608740634602763613670829858539230919865068845867365129935761153398509611600770328862278125725343751702925254474557168861167540783268202591442730984082970117944274349183802879431651975019653506400092937478615736782519083664512030915717941189431525613231413508922848238928877116064996956707978376879343681040927549578724303771313714169215774577894320328955326414464847058116242554996841174253441637735786310743111330798935855297612372883075441226886033727351289383338441924061342332628968387547375034556095381072730148065858280524705562584892615302397173343860790159592280765311073200580386741569909885441749508133526588041070498288309605763898595866039430609024161784331193668661742697763697742603479812392178539094684527969742233006309303967442553695802604613870125150782182245129429363058920246681259652163642198610442860908556838790430589492486265534868299572607119257484217008942874031038532247720199225470673405723171046080642447155015599294072828779862452401278806453788779412230859072472401768621248867462739794148494344492116714196923381420502573350066335635779174599951901624931076191280789857386278082837392452302415468626594087939656646040585035786993374212673575189937618750477580018795897679994327948411710959094535539529962830769873708189399541643195389361025409254028187275591608313815915196149072943691501267000460201160723811591980218476969985773184719981645839357457714542405664050025186413197486250750277991163752892348108508007916684575552554127407632722410289029628865566317263173054866508939458630290774807850139754510632291950860704949906047624090717066264471191403739501240003176864447340708004391185436539774440373493573257683456499533791323874303058921471074838498079210021159897531477633593388567305007823128820341889943780909740419832818588819086229070273153275616052272558921439894943715473165545709880021373768143020102198230960547373068303430245635504830939728442911572916917504766221571418998911912490369670176546979640005461908638211912235354616338325000307990166207584623947809874226112920367638924473039331028577455650340416065035551941051819903350145468909598792076226636769073792104447682250653853783533357564688341630303973252857724171372981759589378296187253771063504429240875098992618701434945858137175613846807768193604917519362634871335492063593060221658596105281444707027951288989925242944482437153015150927868675726462037091891080054504573508677038428269469237484890626687430714790400192935940186121707190967299061034443374141713557094864417456396124152361839776919236158797938852477720218606352668050920320723073155927271633717121680185591286930151922800298036812341218807288610012830318682785616013859819682238050486794518301933407263950372491169079809543509643074094156073267538946873990367622989559845086113338547156767108312203865326859650088825757075327079415157639201270262246958948757507683405876151051230359102931029888677021168202970560194558212811057354546493407800122179102353599776228282941813382347289828332729810683708694560071142931573990959468037790148563867232046007167977314325748109741001439732822165931981798817955914328733672094277135404869091298136056582464967965548644462889433752947534589622333909129384922524449511129901935826495353580026458327299162313687414623120720481138502207311034981675193624300642066676174085219497779284738018285324738187709244760541892104472477224497872682590483609338582339668852495615006490609057125797138057171966350049108584402219635225890852518172798328775366500726407406500046743249632349426197899108120874733744163378190411873336085932983176537636335761490633317929327574739357084744667893775264094570970438852963435188841871708815205933201915439639391412157167380994083411849642377529770250669869049775449249023371512270072085969462040188577121534288830844436394541716926833275188065994070202212634506930158173494876358614271688205745755403618085323099422247302693390730929894677854595845953765294411251138610680286575346856758168531198757623541657109990630571808289252550339737433360413739592833509642836863886006780160753442245352949143105008196123366016774788355287387466786042635509497528012742712958430406164280599566296153217544320382662810556811703688549554564703016447125982868095273277445147281987017028296709822160558713425962947011367899360886120950171241662535907007349967259820623093238504880600863898161577510519044010678778654577754240447720814234003173752376946221751782984225275971856632079875497120237262059494851959646101624568846091400962100330993107240490113702017688719621379341657000186663740576284295155411711361465176424867655890849071929035128382431529439818151718593375463774417597365235745150336914869753455969053452141390309439639030041471227400064030752721589285825434842758506542737790525048931320721098684125606074842458395435874850353663295763290603029913797532686390638273142453242889874286238454036866738289731694032513832957688390327985619987959946526754890593675115911224650683622170503752472800916480866775679914246901210942960516510515173666293631059318141379289013591051991681274615893816996543570969520249165348534570130752540010544753293793233387745903996223070193139049481549426715372080021031365999641387844965854504743196523259133384336498191814534373817524511112862182859707661703490479032299948468589658271079024160365645834552652237173690445095330992425257443879268401327768774680141313994483494007056733418213240864707881519410417375231741278383200484521283540781174346032352606900685032100903114910235979567633495592258104199873238530361739549859884997183598688483663462819499517787361866847480775964635975030827934206788996498705082256675670351355627375210734107127523969591140786784345171720415291271717395151691085758746674299798474622153888038984159352448913327138169650578629987360180851038358209532312472281486668465629395406706034383572902855369011402605877006996710098792628782100710687558606316509105426230522625605348298232648135192707905284838210520694934895355188313370323273956010986140941874428020272212942721128577210134413557100613924071985167008646667517404508547584888890284360443647028828477609115993629532908108311638175006209609709145959141102854209893311235573664778450007911023216876873862629665863134141094035247881550010529447814840375644127369274247400630262750667094351777262079938938813733232403114822369744491115774459396097923805374282641427572301750056687575983207628782820806550934254816278143276404473577534314446983822909669396913774095774017494256637164505285316420332177937050753106334272935000151467278576952635910773708491478570752145163251392578795921046157194357287708421466306212643950565674624248034390028352100408397580485117970202045079140204631831953666556268844503401104041591901723874597605220138673437282941863163774285820888955839980177249455363210953907468379020744866908000673805796131366300391995251652760520192108598026457298005688730795318202009450102797282628477872590780035641199098371071158211788946303782016821960845089520349717361859892217797900669841648089315704045912772345142977212212145774617554738135574305073798658472349005239350114701521595751806107678437853321066393201031799961573386698989790038188622935592478142895986912934679344923512500427091115554660631746540319942368259214581385110222214824128415851751664473367483003345044447122491337206082033432567743462275225913141542288293807138253033941920321885948440318614188760062322048640013907846016140040094410523742523955067359318194660278385720900121454007579852389705707014040060131461044051700415940236268017440631595666634641181564102784895252499320049152392324690798790384625699165610944403332122111439436108314101069314026901657269274940027220671974287026577975398259173741650407342376687752088679886850367087644867085057686168070680821280327311321974005922765703084994216396910710252928355403544585529024449592344822663201160693713544895944097668366138088867110610220702693599447076180292498861975155010657247635483897643061285614102788509307178244974571590535187576686534053606903752838760922020239063231089043691426739815045646862038972685468283363893600445962790287293643933387733986188153001247436118278500719997408736502907848326527607112412165719090017616605443582791378835629267363356145306962858114697594404736425310156711377991640219464317740724985162209410628564460368916561142355955366903379936663628470020955804558452223968722977727009236090101666523314328398384038819572885142546149943863724062368405544575795984218822339181424070311671453231183574318546908939069064706187222594965263347157002074311393652836326275661504255332134813833916455985648894577816382041094397534773099157547250479015885678786200459155802115296035702723854724277210846838316876797554381623606143148349806634806705184234800361901859304062922553376712692974101860740606289062912846334424548026646128981949192599088150717775035410862013740843916722315240587826996993277054727581887500073322881637659391630521079901326083692754197663527991191982639094414712759867370292648755970501912255900495354083263093542249520589149386306284177497055528751112415521989227395216202086242136509045690878892858510722051901782500693207380044561228908231579144011304375378914381348993590052368457366936164017334543036082839232558363190870915426959825926802223728422814646496214663548654186782190521235127906826432258922309258715904950037028255034522709168771790765941355415072808606851086250864222732770206405036781544975806237154188234392648069827580267163131930739555247135676699724817602776360101465920085791232300741318465784034527181046346266350363326197003516764642366148480518061551071189708452438303178939856268461239075787488611211841322974709470234970938027060799707884368756947215651791267486629748278263104922031118928758527502773108369942996830519869285205627808867859765014006320418825861279961105236650203170937770521838535137357958976275756636270856169127858134897421877694995337143779930450503275808166193017491495581569878951859249949377162764408895627552167970556280017373533183583351226711806215199956461364121302775547789959532085434205476543302348919088900443588965554957088480851837830801998538952032492378656481629393755582449491164898987071156047758651288207185696098212993129683490968408005826453346163766359551214309505923476044529503228308341652629569758331133041920428284160235955504658559099783444837063195786078368459947893953268581370863339480573485150902722638357957197528702747493020428797139149805113326406036330823013075461300309608790992039149300756086346583541505345959616564298948323963733475845031357734689384944196069831237197293977187431755520009003064787052553490354661846988427775520620236732769107479446676635941615979987182249503724695725808749314216594139198309017401662349433845659776090600831164401262339326123545193613252818396533180300604804616590891802348528952404691238812406237411380386043870636014207576675634303668750357662339022927048465454900914405395876568121369482386446298210341999179627967017760828492385869261849562952723668729983646500859926661443778283814534648711676363184080656221727098504359314055302498599216134561999130199685205607855214648066099852182361183390913685285230404773884588198375545726063533801050499277573632025310476997308439597158588774709466939103781569204902067773513198927072059024437703063494609059771206698761173930407611763454047067817954372468927370520569772391658009105466778631463616286776919736061449086745205828426902613643305145545442974251186921711002456622743640046274147245712143073274157911324368505608058562128740249910653211539044480253013478454693964078236065024382915264639824502188921592998164775869381738323235334024406390030658538061728092453901049032104676973230216366895483856928377314822695213815261002712479490505065613184885060025215014723903472956978664605563757482719702603534009752628680594744323756646329038028095044770471004760603369653381246054767370466770137554517587444850583716175537959572727258791993243411284328317044039850637378272801513625078991096826938968929130584211132805627178390166362554062244907147339592781595346339184268784515485803701628631464952931033128945543526396199282914310369415364154328768838807769244193783179480434498855292741697728468848259101085245751736113350175499923703124930163979356081582351416028225182718909584442311261012635043198889558135924251812275016195035279736745093256578099870784043546494403553280500797558413788996305055982461955484986274688822053835894020561589104972864173753509885095161855474920344497935601122063306688168201367750126721961866324141878950910289029977812718974285523192389012426980640958692988730165871524602848923123162781820846031922943571750729672438516497467792268199404578903229964812230619621962500033709942654712867416055340434026329441891278171820871610230731588655387265125146227714772284580812031995366784189044696771255244847003231205380578814258091905925373884076042552127032222615311646466284054252679725491511124669174946467661085762372433317751199029489496463824873434144517293096284752242442317131208952544763359985458377748756802204478839459486772293828851768204781211205004340868553265012021372116310095034855703222096272683522276074843982986683934382789926512271582030441408592473253504022760635337039982958906681699473598509140262590672542286664681248438490109483009830281402160404810190002871186296405147888765286863241122446612728745054521932204614535674628906871013140993037327226598339521781219268832437080157922543258605542408939692604228565937932925117294027161456866856045250431751444360282532564215215199106530761817348969301055521556942873088692587353299766449188165429826332175758061175344226906546046855207015622139833457557504067347922592766820583596034642210559155352534592002407751917799875221851521232038755500261485976546983340701152205831673003633369769269628560137828149754977813653671151480192977489065087435914074200767980798658946959990375497703590692983901042813779328000670367627014297046966330391690858320751907881619529624275253672068625203975129619658010211661187439132902330230410410541121258174682575810943188036740594021614104828477736272534844589614764293727854709691574322188805048888038804049169426863097753897210527448028044803744757315495322061907265804703000748760630328787840804073983274177470694576877329206736934631049002204106963033479255976531315990202722822450540090978470289587013937094465780160801819563769703117244769452431542148907708034538997262946500125818549680182859976190332136023547541361413274046815903864435648092868047028613289245096781151338306185317270180843473657376990805749424236224196582808573516282961678167458805030371301565934183377341462724811625836060987464727012158820362051684340989637561402028218710051092556218021355512000551918403176036825877417550893642057015978957337429029677837896140772205231546115944877802019142876643588639381397761738458561540995507822206439648719033653053604140038834019331578097130843170875409360752552587671664600845337989429913054693201547794337252957759325568948412048765703990236745986798007011547072166482661757999618080830924433602951571412867632854998296907610409795623732457712530974191093532170984374184022510077889172712026164944869237488701637275184192813503084921266203482724775883686794595028876163821705304933299210862930046823879125196445386415147995215796298850882197621400077014927721337252748560474878933526822580387586774957059612693946737597083639815892623696789909938154793142021688762561765298449152363073187165837019428598934144997548939614744353254764690684650294989582321603042020657294164424968020075769666379601520209707203695489783798855204249034692417976272194009939700804712828564586840686621875007193259788174304777151749641314723186880570799906454001778889493009330793134110262492509350294135854759362449487156313915073983450596315996798582410213549842666960831106963151153814579916306174824659226042403993588772109684362808708328467128238375453944378036800061608724590674285056471491263889356654964962955298721262105409587746531533417747016865069290068638331448998495974310322283275010767660741248700430206534316881817891381729870279939489653554546893705883112393096043772660787218372729208732784902156045596143247670124567031305051777269743997991593602616389562489221374457310590409084399041711065058348724299509005706279734126931038149802619742178630411703913923550654736652046953219609822588925426744396104309471515080111828467426884972922179728967002748760237789524427381211550229896068194101336950746475984157827076485220840725225791836406245509994587929790245237916606972633981733283461897361816360591470515575137812830467244916791535171260913777088031058092035733446007364178317138952060990794969119253302513997549641834200197114582242361855630924670283931480169596704714413856766488231979943016839324968814968678756539132949404266399311669022291338450447107479600345107161252578517998999559839169731647655316459626913060063902455344455965790436175672525251031180074664666098176568645188808036704446774040692089097745455256979895592291947396198098508751325471570430719275406131583673939321283925013258138806127416065260261472959129662415690745958497746622106201122560791473308820765504208738288219932763902955832780904133812446180172889523572997714535843200436257036592402738854235361010795335562345368393319203754782265501691791394024953537858529665796635043846293995371847337483851959820367930686550966172712691983967417993721515381503794677966454429174806082515084933194331044100972588739422924321686959194298560497517996043742848407733402320824764346583930543569425726279791575869425710821142892940277824979742771304746099737649796310363077897599160137199385483754398635025480629378879122505114621189008205023515692660131902189580120346425132836659437437525579354836938641248836001079193273721356360550618661656750316753517346189042245445228890494746682866528524715988784172387828209955704510297668616323023957093335214943500002660560303801990110441132540337582066326023790355275247400765780893748590455209556023812291358772694438823114544962250142662737438551800684326189120732399092155057682864107118253917842196732538611276141873482800942056308326444898387675966416045870816109830761293771168985453168489119519686949036360396321910866067276110903278131713344901186806612437436864703714951305790532073804100094905355882693394840314741084884377159282430583745994934118479754242780700810783191366477586825051327361930760006405411416616470271996606937188954131732370261158777190107013271209774586067754904679293469007977019108381723582513258244588896481709639501432415918395583825784803215286867056238132067645812454011945653831437813552426315104653134723257225319718594418138541050084632868285713026287521534473004305423389307598024769861859640456097825510214400415909384274668899824376301648080684735963782188246779297140810438731750312374223362045483242487179248832332281879842387837080547286131175497053707213881697562668031317512064998517481153050327906484734045250927941470334729070120142729759014095855789413236067061505839036824746323030542753809898371005668941592398838799425988320716435218213426593194384945631136997821047337174735109503270531280734621316765494016341027283487015921063721059827208398872205588086587481509595708847252251781592653392431984459247986462216372188611569523497801008025033489669123208117895707773905736400402454950518884223897981153807367883142204263753029140372207893396710478300222547247726035814932713870861697506427131081738122705932762105322046031123189181336515526144592337851956046290552275127011215566314082291574262798062393541683108845111697615397563261580704798178958281584184789588558395810776478880604177930488961909645173881338606688693666007520627964992617127193609150331233989662253504043518263510251601067652907857598690160387360198013205526580374705517615890581685043043840204090760147756545940771209719555677685749095433678940503709755428857584050911849899748664546475647246444512536272258459619732971682095999407338174508145308600141477852198972818495771617533790254207437061678348378735818356171454245641091012042385141724701556454312919063643287038304254540384204856793221443264861419474549352015964224028014340535705025707437410113338965772462277673011066274186969577164061049435972461445272080859820974519028215047335934302425518576603037512644072269209121322591442010981505789138127576341436103375279668208292048773049007089127817239185657086068541337776388994123543672616158638901502518319756040541097174421249337243948443784540974979405102539554744231703409182742118518426569354070173976827026803161750669962366802937536257365985792574499818423743399087333086003332555370359990886858832344237303934168965537502387453961099208240643187376873400571338561760443959253665320399804102800720556691799108805716752890036242119724356788149146447291382520630326467048094185987891558883620678134981243023970002606328079694575192722005467932657912453160454468069718259771987168013599753268425649242861013175353972326222219808005489798199627712609088854221421635872503794126733201767448310341090307539438700074829304258585950772567655212703025781947889516096927449341523210766081690568122025664762998459402854093957413310664679046909423827558727295896448230369732457619648891851462080351903402269306185584398840284379218172749296990800603530256467348703282214885630510551608968548670046850661163444631256473206562178589615594551721067682859369910266645215285225806534387640230273581703350440804695716889956471514367210544461557746321074144773680560696754819955234628582928531582321666193404848026032915873652232092556600186116162696172874516929347184933106250979130651244194089907853169321741853851337595886942394031762754246793045656432968410896940268820065963041893558511682685690532695565848223512837631797730944577288360539800837116692575132817122168177526494178921162065470442346546766669592224632716453004631192449339847453213902759687314973926445841524754708452709175150447318341031700376303326710117966472049528989201814277034453092456267768800317761978814525200284609569060871383395486903100698614223902142240557561404116135405192828023785775116825763777880030578625804118587858974224593656680360280813844173622093507736659916631671743981371567978977048832039600591643583768890857607179122888218344488644660017557236155488813475981462585672626072624120133605098201819282697168876597301796098532188005019767018918985867159950094028204516570266312004284896496200789844219635666093847233461811967189800997237386548316639039033747086004426849477859352648173409408142910920619734521441489131163389077269636328614662978245488231765824268870735058492269218802104014292429357869990252521051735062854082407747612831749453103385959064686757284288272808213113846035820313841494063623696941981972015735988367004956220701174597081286265497580301910942213005077554772242948900330790271172871454792453527971816237292184153799709144337290078356287846668620992017378993314894551343261909090718167577661679530627622739739833448718844099924223298347021217307543356125534074905266561644057874795171796114872944701576825893080366188389730567910320719825778300397128958475827431349487005883472636722783473217171060632562207430803751540518287794606363496200393508294624356512761926173701258887134571272082681892957907995191730168331986190764551389610613353189072594946810953360276651783296875017866409874478103905647959900394241649158398806436863759626905627466571651315259329345650682769674727090530058759793370623010980960508624667438143636373044769169499412005829423113155673440606160982349662236696805837438743498252975238950396560033213216358179621129617360874568886844320863994818477432398578029303144182909366068019577166566597717432532566557883078638600021847452879981837520812629227129600637956242474477746660103076342481057347206047334287896466574205989130431058203770679087310127076416565793163900579352271957082915091877808344300391040080695748819142112819924461459390071588934245556184343780766782529772331543006799930236538317264433776709443382014278503868840300911658765683194643330592780498017935161259775602621766852916330256060909913823668097330006100442479652691088350921332139031027247282121858244352908791723396890127626786531942868814446087638022165254878984510226617924739331396604064721560718301965331276107468384478551573974062492622024864416470897835479204141094118689523046462766264279743810514732701834820236926784762133381030225542115843647222376516363798911321280088921087888961372739912470284055482191324188578327896668102117570345224336794797880404126216141172590938993004566489729747849502206041636143467168673223249927088396007885847639753770848113434192308203401223199106073396250325926990978956264901463746460292384779898924240542724784508753211561674332351928650807181821986446693356231544987686378619095168967382925265537603696273068654364824161469790218433139209476532787782880819319400177088298380424494668616845773782575266547650164880497484817698562003399443137250247332516128303169138530378877332385982347037037650045276756442269915283613509677451063936810077036182462998531671754824469632391506162763730648219198183811541843239256692912540072644654848792513818807720587123236916474281205941176086804937009691230157786271036808227953553811066737031078190133954483704417555890139790947111887431699205878106616308429956380926234565142421351198536142754799199603365250967379765901604438041787170378350137971183997809393740367185863781394329678714258094411314795087343520187856349924744127031807990066174294033242415859362744900243249415837849765531761927668122133947657879641971174933879616492032315420402386922775583314547047476866189460677702470999341174641272572421199302737030095040379747839438135455080585550167051401922348224237107599758128069777370967433871316467966137173687283750606361355774121559112096847173780726346031698806759215536364803802195836228251287051650415661376145011084005492004505801030074824135181706735270897969317378073992320556692218020339070962780827763047746630462163068227535123227380682070907526734104505852015857614508279717871793255111630725575099304684863823340279889112524235057561956419970467066670830610595484784905506941355949488410315014232590850573514247553146729976462099898502756181015545696734201895191052309171958363255801759938624802625601998670646940043932832667794127412002814808492988215660910733570648573945802078330330266427028581105918204738371331818477050884829724989579736682388846996620854842435089088231240942853512452153462714935788732431290031125114295830166022407427199850974322191353291752217537442835244808607649272176526824692175159296578952823196724332663303770041694678856378422218702879607939258288564932520494826079050324411227232294529002926277555133172578483140505279641961006854515232157398147061180170671133094133767737404141120679200822057671274864853570424917434751270860227517786682954709796973440362133952437307190745265530356501859313459539733244007783061995382952453710043511347908493955789365178192020982373809143583323652342651947330952793613467023135575886339649832253336220719474004935890724044165221277366341876438877546481928907313624531202876600284845176426307094334315835224759165730749994835692043837181014899860936707096615287777864999581769151362064359895314667220481816934730901073614774118309548364835098420418182176374595006812912229931952505507362443565253868897531735740276947409725895339311125450221329613124885965925739030154104160931446425221818342045831382222092652075696589287673019079787798257340701967494594440437943217509020517182126795889697828349991203115846874947399194386621415376802308748240656057926683296493047289630976793503231375396760846884953993416503663140138242090062965026534661589364587569521926467319672735100489376346918146325709616997986867007134630345272245286611830692927777605851875901484078497005175967273975981471186531987957659448818707066548753823408085355143495238976669783137762723011011800809197957336949377031034063898007261093350665597044153719565182567187718879177071442737364271473974342994672759132686287436545939607825178469192620314458488255571286209014717001302098127872450045547950688029474989544157456321111237335374751399155181508931307605616600689325364064672080054899033509204565959263504305841727596804625240741049519192697870290668293284320818562096299350307549332498866910040794448354301807749043614378994178438385572838758069242088599483848037390948854097325041870537980290716749697528756333500485386557741046212113834329445605974317626966378562091398552603237955945800595668868655857713805290182342713823624825727318777763848730693862497994476724741479924673051833299129846238959458162090729608997058572183421006983156657018216083379222544766994298860404905555129352614605682263579821315481960699799497924388637769174201361000717885051311802865881234922867036474863410025288577595827130301200775114230437777424067954530767105359852421826387208593398088002378930819679403972245196662356627471069642505096051238411262397705921446714501852269324175651644838730579038818172251604395993702951160052243929725280409834329099645949680369965677194525441732580749830927462983229556973477132304384452691837914718892515188316933487471044249521749976957798186743722849991346541500215341023967040341489765425311042496570348682861273443599755085209432379312523514317955540139876804032447025135947784670214603024007107000995502407272748903413276246766111476168365097790027869012018427515848482822811117728767483476409472992899128724520959673933251990901214447819773230219925201363433207081151285717907107973295579474427454064052537121581061797887671351000725199172548628860014009112134184326880352814224996861611579570520491722548030851947057725580684160030012296622290351203498716020877080837667550577179719334588188082940824593699139176525505396734648887905403212288441257656141798645278912034769513693752614348028310686678331488706087047602324657614233117868577659956173972034838201355221559375177427333031129883945231124487032483968226664941954601923999775721644505188500909823676429598704841148130057942628908104779523753959850963764894406016037677365809850229334122845314521653904169140504462383903980383253460838191050629595266367893070827444417408841586976923706056472411975637654802638044775783359781718697904625348050544371242101509301103729022975015732508130879148769836929024103565640035950265828383995590123003420080677860736513000943610923846058093146346300343847887194390867206442060853257585263618092667365492082176710404853392120424385358662334859162452379120788658862349859994576259247894639002602958686659283191688592544322970547926780220741614580775330022223907863768953519405995298364760052740359297247908791073882671519363884038536389094232296748166517816209510715993459274580239629772448151449210711394323035225841479980817764190108307563462983786398095081531838481420387792823276437515158164392231352164644584597905961686934358519069884377309681162540191828487896434304758947174344572922886463600318310645243177554968346098821365430942841650891075782081330155030953883360640279160095570336480587340162550159577613754696167364117670658256110684352039969322541784190879209462530761491011485390758598197688987047187505168230765932096186206973556392295909262084891367875586342967896564688278354678174233998183840817456921898115417262692722359263385338851032524276538915762028315778902826526989439985014127738614156327453543600492087184040613973709902269515012696215525906959751640007644124204773781543730473634187497919579223030654832105675276386573493566882611074688456341947100813025429311496314762752219894756417012241258578377601705446572072392324962949947180915694087102704009553121830938662519374304777632663942540632428127959264931824962376082559318666524372157402235286306771283372579264266213071885574485163152792247487161330157430018207298840582646587517383514031244887969424542655267944964511100947295739651619295810101396669733600708367915595332080757792839471670634499615938338938936007627810268702313193714593460596082734994968920587474070403824071709074956515904349768862157850267024198754236121238429625902039390843471463651489251022009928707793375660672695356135887860589658642260881432047958820124714673915890168687334529563682815706539193569785269266527716993523168911047970083053058985411288368938808457301019769177708402796334707464935247558127693813774815495301530648433346748520156420032429569229989182942317855763468122047999551607908647998883676628786999415453459687612526520367015587866123808440294515961397713319340515426771665420676836907870647161898918453618370439417454592709709483709394614246493795103932617406531935917108384994745356773662234730028831793385952950705184435038045574092044610379092891762104112549985017387843238161015146460874543276371471314755645757524622774942989271116976064322331187299374929819021647665497714536313717511372015939333525365032954346413284652890712742113103113784127009265999051290566318514378385340803909413981998105706165469295762843900969367390190973502363537473638165318859016937817436453738940679526130853497471052499462643981992379499939952582964615296809417940661770884047361507084947331354272269359317442700571604556417426158657766586866231745153980489649388627430151587004457286312487867326932183052828710138700250931601600957981690350492958986678095861375938216483587779617629687463763436706645347441046476963803260193822317487182472480068421649414624904658799144333588357457334006397376405602684229820082022045084673093326578972169765225842370443445627396059656878028368811631607484699589982661831748955677957019568411758072119917758069095633904714151612402483761639086376198331154941398703325003547893174068334840890388836735591771103001570211480779997427509215601797584999338694142978718028303135701789673008217307750582308701776137847315890130954578317029483338614637437738085331982397223236432912900685251650979850885510199912685108578564507022436941612955627028383411790960118886906586967877530997627029218405796099042266539113864438159250209673393659893913544942821849825230136213888561417291890769885565861387294940279099512684070110357689501425528365032569699824065886142278706165926153965605413169630244068499835770413602927680644203577282649774992240228270267779257529719043361031700454992287347573196960891411840879712285535951792618152258246156906067858519584933575129855638499982277929739876927678111597813084909725192719585228583439830865999557146703253619775266235692056254860996844222950488055401995868471386808390762345170737904731844731034825814121446276608345057671566746993651153709793351152263678655682596182058661243966226430310737839667750933595948968565546490212970525803869465550323757787960577870261314514350455389510845606691266827211570705904919319332727692553873440179551709892970110603772439603727788170140054674653720309432750395097399786364622377428709140845955454851076459919269490778437702017584654899693894374625630171017506630651206888066242774666453681074937672709707562262995564006384867747107677701333682779220776860522232189711095522272241837817333694466272343780317784188894030118117864023065240050997244440671383038345738574208051074112328604511374930794979690351734313532966544284068257441299709488855271900318018005739841401105914004067018953214749401138860092119567975959618211510960582474766961061635007747277690113529044021482396402517430433336747113367175801899950198016526765471241523576875758468774852102498241758942863389633243146523187831254725011086006058940103430345474641052075343056064976488894135919545632347876007561225101685688196061333282314857853136156202690859725148579561016266652001254462499859154247831180339381550304041090457235902007713662179303072985739176941461695338108725809653061600631436739111497397310870545790088820310811404139362201054025413303394989233570043214136757063883048560299139535594440944037874813098664898152069684485752010805979263146747951533900520720666756438129770388882729003126124623835091932680524516658033996208805461174424926244413389861522342895526745837237682881668414701037980772967661534659896771824522917514778163600083747360233450351256249579511426303336685120176379110706503652835680715718509679691890337067531218677132733166833207762802625350354968311207701068771395162432093007582896215955043507199293540196222679570954950320903335203063776884028838819339369384523873557133008348006738554663130401174470036603977927181950499687420407575394457685386810304230841183271149176823503377790539827439023594051760897818838572301479032126968734797610933997679760419915996892497984836806183175358786983840536435327776424237028993345553982096497730557162670043529919559079025601911068234074430863874296651424182463724770899148174595563446179743650701134277072267919640460167361008281348235461795654830315537997533456261505222081262140398231726398427084674768636170274482120088873761998511169781197222127872896099857381239177056036909156233817623881934223568410252311416445003114019675044222261512880893503764780174038443686890105237376549643308881039648288916954650428393899452624060878061427990880060430494623708175874270597942100353882154499098709819792792732908070068423225729436028669920908055005320489192797969870538327528888328850819473681592788718212783369780535918778098802588743530985582977586076065483644496319505866446620402234167201061855256260741886975895934934612215455287509790349026801648498637475578725408798000785178550844093467571947532331370247304685368252040971965933139798636599329314669474670270783797504657585546611793718668578287670671754017316721703420082358140322635709114073912349797640224902761107061867474986448286609670663920096649638738713448636316522490220883442842416881148154042705412674125500277949464674376827406432536086129412875755068433022833275267421492377153690009060271184776317749752774724071595730333671859247199312521922965200645940665575246531595959278332304523295170088942727331517505531498195193884491608881349659454343647375640998861219177029886483859600008497232125112152286595874810376362454571828751432849277641629015978412077606760610377444222900777157192433810099063467897755764572153677020687896462169678652386028492923729067368270597312209666987768348030989524099847161175021433928251211097077336834187808438074358405621128743957946456512715244031082510439623339106304992599620476191736658037948561926053727538633940377308104426872431632179916331724738373961616220720854042210947336149040067554020013685882298596218993099639384682749416359877767782821730591624679481305399201581162176817250212596827017297688198643269459278918031124463210969545084971590409715993701850112365776357991230480175000317763433043064108987220244030250071879349542279816103116825297934915405096527025622503879690563499635946315509826651649268219316327493781081928214590240549907378249341372373476263271886460075666695838609202381103603557091458968543070348638001001606512767314042797440653137173491242077349082439843328366803741699839506916050532755793396582533411483640184605732155005834557061533216971066159862224679819183054882558429519658382818122457843251103124661102181984056025946486696791308432544240012385771805818191150548838949551508556975561146723559421430929897062411201531451832239713603197347509772906289774137901091063113457163327568135657735501026495239602864388484632919266412803260547382943657937453057182344551232531651677954069936107737811351231892692397646239421036551008756024623831676520551996835178737092033716343283114583642693630453215614204147158283713881373387572040053344250132386189614686339444391205163560429569145955779817743221082047258325933432636757651342947289159330534734338839922587856907442248678607287448403192981949069467849032472316884792193979318566467013200614226769878117036199566321747247888175108478553761060209686543940222990450129993617007584242982734526001084483837139347899029877423516264592699699958991930270617737786020220709314912832898228119425332635417094993060479783460212994581454932849151633782244181800253956438070778126771532226780891095348223730360567397008119827225140538816286092973289154022241534651422499295604695692844903675629248880753279903430298783817548903475117971395163911503681611442719102397111199966184112004165460280368495607143376397274533976529927433585498410638194116791715277684496791066196907099541314549022778187858534933047485657493423578979454325540745397951410748575396748606693245525983936860028036799087454495078007315382563835055835859667904169355839761084088350048855710596059398560889446090197805969281862685263128774217226945884686353056454995976177848725032654989634517539317495692306299108374969306237674851277977418405855222632828958257826412406919339879400119917270955776289572936523410169808544453506672408981800612977327947641640221196030015202520166550633489235900605682528864335648377455707552666530950664995522222350342682307047028728107802174379335803784561528109005719557439897547596672411325128196846663519581550518650021252781527972425739811334504124978581916273111632084986966822139201287829095666367235772353905276362962860754158332513328407370026155076166059111076301449075609443887400993025350122581061841527046513925645720346769183672838811246358393603342148153137400737438160659160667636733015479236975214992105279204102486693407527321045792625304088948035811115926748235741189168189336630692326934792228341960673703688194333507448563769001055188276468046753483788798370197902503146428035657112507399128770368565934052484678415843070518836524969089281977459693445912906368497935065908624363820754795925007207186273849650065833990651933612675553282615554164671991541334094063952027902348028110828560153846634805707760943289897763983724017424808347419897800213266898674266123594177796390400936552175587186842858589959835021371844543296903751586009302005261627745948171425385053749651930372078710614874958993184499184167712865332057708195798114516770604052508133348068752592856982265331356023332102505280549838554650616232367297455782600857199946272443045355038933529964778166791235169064922356349324311124511215090014020902150676395564871658687790384733054775286787833870525120734646586835263438921061320809810894651400515331377579402452529640942313409690649548252472167450753371387659860582701922175916013668923386799429560409557938747452800529914757300050632392019219001455484805216387501022727606715905456544288061343585325617512552244310105702409529531213616290868521099485738663836808743253700992739307823667075810029830651801766564266965202684738862409209861374104649535295466707159124079823158369937986838817739774168707678359040913671859772207654772141832814167766949868112231127485286905380980249264427019291600079568932814408646379206581547503518318288254083202889470132895276507009534585288606612710564460360665737458430608341672787810848248972775236812134793539227896534853572487329995740143356258611127913677852901288527700635384014761967027370350240657844098864230370393038990797679723753736411271513509724957668217890236975488368092085097897914280896206309237056011852592434221139054569699982957990314937513548487163441672209577615399676071452261259074257481378917213332256415505164158292787969308689448021696796508914261172899324348890062877070809695965410369085071024321737928176675298191308518000586598014850943468459896887897073568826486994610153082995369997540380126747564599138500700231062224889554024845705021791286231217277701228360042847604572467178292826756131734000396917176003959933706524266872895647511809407492634023135326123936125336515034985627695283322544367000425854484764071827376622304020911392596711761961007956118415766958787889478935662401576514415947379297988361949025360478083541436341280348532391272265885803485359952889071827893468405112479289558648059373746222154491426629987795972273726157127756955890739433515472231524644048745694493210662607903752344344512880780986848352963561314126417688354356957268014449713870848572176161277884846764362975617770550593712212517495987955117287007338728610307525128840398162369483512455823015250707238874476196715285451672211100697298021558117545000646223376088175591933607050646777452864644259620494089266994537683820802604061770593680349388484161241413062898808772730020972898627226730763064428232990388791485581691435586690032894272013341561747788366019401107820913091947779147375536370865250937564909803160858337439105042703797784377277507853965747154151839742881974230984617292967431329926765463789444161094900789657016980801790620488533907208208127959145892939472798525166702865736436236123258972468923807397125059169044457267146669182852309399453754042848896199160835746798859451306568018342932729527618224817053933096325136442478670483814027020168503209209802969479435680214167509900053994019902010579670172915781626568197497161724640138359037539358092344114037105455063933976751327356854325153376312329524782743678335011886390992547908330147112948852073507270002320341068785035762201615813407290474582493153682175120398878097773140122387758448102360535402350561843520973398899230839166335263014779977566860884318631840788042901638505775094468926821838782056046046897430828616529194587138730381741807064471950310218220847726338104785334869606624835439091013036401689986455340136320375832980801359736664942655812874892674862255394535296314821808458834591930365667161645482901527426654120913920863702842764219884577363524542479867529631160328172616886071524090337633721465575245880362555613939736562007335704380984128734915891737929090254024128162241047440787221304493064931921624062199691602483285723130452967492210566103948062649490882354373426316485391972616572483133132243026838152223391880369538273386843222682388087772582984523684523663208165108135110158975609005423039267456618605188156876585786175445745287706468896907408234801103886153562380155044699164892506042354553399301322079698480161337502691831792647363542844943853788178246028013952178526523361483386984575697275314297250222525198926123432779830393217062049860744602241983373879417422125080535802822141447331912675173541317653698792275149161887039742133225947891996743213161666529270085565975431316514610654960333330250087032889598096213779759040859151662514854931830614833373116541593370875512099895743019398561492278916322397732180760998052521478176259208655983823264792143935034949069686314955766475553663270473157210236013376628172079283007731542673951045830265640596668839910905034368007444617185319554656670861002472911099363936515117549242917885217811624356142585715906969285926103056686075870769394476352964211262282156925022016898461390696232946413456858887695301056296652783597115016045116165439148725977609651507151028897150297329054272112169417855525038006270017691396881328001474814793794992357336353075019306719495583257329411562144934727708599377479278007572980867024476728148347842045916215519620734494113285801488894109960780813008697738290487749895756464493149875081201042641066833302217160026118415906167341828098200131563913237143636917496156530040858745544287666400220981251887729710497716971546470056572698640786976038026216372157997480002323088110303895191066480168476483002421902988595870499327178575003628300200970645317969763573443662893918656507673023714595853772267032206701240205405268884411232460360887032273070698427245845602065521397506496866370544665396135617963428963730245266585209395972487920650331924247163147499670450382130316860851613227233132903247659718595752144459684842840968847868942332554570325014367678545304236493933691589900185348733200611528237186125925385039964131493220032562542661050136930417678631424302422554826401364254488359421891517215063741855075927750154537785642770179903496364191056737860257718991494451795167838787349215946968471526937739739266713740639924084303111793345250609142638109073038665879092249307124097304184961988427953499889992632556625397579108990774054064929343507754799605209267381179252434379119605425945964024679287332157369504403361293170175773414013812817427458315713127411745138457041716057530620140971884755089261202298738610596444630482866871282586926959411074753979133808171055470916582255679573299584678645702554155343997498979057822913272288278173136164018026425276194657927156790828213870841864369171654575872927180670040088920371588740945707158491342694771067704415868700635067951576896431299744141936218497755059616694420987648153271852332165517222531967145804377186808202109862862693762757063890131437853132543735694310077423138511417000873634736563816362209766990777622920744699761104579804620384335814858325573888238330891872361409995255309665261110237331981558767187368074113157390192427549763870959410884566486617331551952385746140258729161056207479276406544439518801785775780344158405662871481456705125745779092079537956118504767377318107805256073001366555112481817931759604330754361302420983459360204552021966961399176988132874537909418881662850573814903814006122571376477112214164857610609222149707655237925370109819884170304214138094084416056524275054390108082498110175128969305149898680800601378642281851862062180139673869614866294469584896395952646908598472249153346803453445605273913973240707849661989011476016375474710834631609445290858657530241784814040116601184309032657373972211324968943450118026096678799768049004276645992406465441575410551908187088610504944374164698786984507989352944602443023983165885935249618990161626456054478398440319202759103470748663776510207341550975411920181107057613019849105761814848280136943300098010854015277359978055785469949443773514224298398933172552044864520675022044326051098149285373785098515499601806860958698176715745849631601836782089225408227523503258165089004030957392279070904648999292426552612969486851837307959076679476890040906917396993082448974246509292452120392836949175588734715259734281077466330132080262508797877605221545799544278670274076853471884740292474243109234807040583345759787822664614653977231904047307175764688189480218815410116552955347350536842568903662695159279338789814412583219489049927744432310705210213692018631699092633329852656841690684410633521600462468776302429188214146146527271952789424334262393264257884756338004941104758842831495683889094679477639488088873914140632567961267400426306754919569807319847566761860634988647066459865344068041790253588464920023637981436811782265228476015208431052008371988252072575360715568342160062770238740477876590741762301289981921951767470163288926879311431955772155781348540433273712389279577376004872006336157020770248042514993820747618569293979933694061353911195711183471904698326319368365357983800090022276117156254522550935815497763554251995489104587506303843249782748137684812931059982818785829743619889683593743827270782392637283521605545825685166193796933888344774612850214491931537564236841371789409625529857410398677458128467929316214884035880275708241897852757695583234600690298521818187840190458403982461574452865970587068148230256387649945625142471303403632195144812994660857622343674353315575088044770798922814569147430879930524945829114293271498918014197877850443143659691443529052144629323579190144731369567554758042750969861699865040858555152650652191696259893613480578039249299005518105989585865002449141104384468017139048621780772601279888282581284522369337001800939966325221436281185394403532599225143066318197765916170957523099165338690279621449163620590791492636339990749799064084402127507641315754941041517610436619076514017884060872576949736100614703204444354419247654693288436863378624448571830755134675668104398884708749225842517386056451524115131548208357897454360001894196078926485876038832157517992284397220786656904926794774154245219309132089306902715593399468014299774632075537279358447880576403072658302608072676846558575186722699617853347734018636418147254217846532615048614589088653375940450996463540577412352418091828336665944777265196788820371073906451635829532876219442628906420873046375832780201890955143774948061890946611827599020838166797627022780269976854181917364663761989175807742930680980759555318323800641643073482296645703101807385013806373408321210337786159478689078895763723068773426341623416326475976238302604370742892035957807257377483074582255408846477268163932519397630298384548500916974756469407102351393350673481385721550350627047944538338092122035593198373992462766274993414785514565409970448014049626604479401782606316486725256812571969616756473142252965894457893662780697092186031467010325742929981767996112579107540131643606295703004204688775687046935303465039046968024913005949192131666811613029333432921385693478312358205594181202963674549795676130862644965791956242979013586642878447376416738207762030192702148035613804383119633922982748293353662976937732714859440495160025023385172209785527773530710396143002328135228105741038210825896574994066990381679838461482767902407411653755203678939470245257653071585436323148501235441322381053461453974695275226251185847852576749718652229333305437983054827649736415765652724072189643543901312906439387357259987887849232493608355039545910614734260931650719126909637738779545771414402204532427078483833639359957060617576162943367782658448704232639832658220443237562056953952397216710203981296540838644780463648904542717889609042294085003687479769222094411362583400594368168909564985311185202742239767105666916098751050760303505054125794003843090700428385691356280890688627676382034273504367729102141094077308223196072095467592728552957419187291794088316130769957597418188798124679400540909777052061206082778442393807610903378574923065886856022510325462564070310345550995496906557908090881390387985753843114192847279052495947716833911678799624562305906077312811683875545326750663302988425269763735881601063156949899136234962242631293617115992012424565258512282791099339049722737296958054970869159669310780144678182580723667338258401986656820097872421981007415462416142808424996337782380487010996268050132878603347233155402962765975417109576819145995880166910520080483001056847015144335208680577655324495019808477092962204776525081205190688562390900816910927630703785305654617737541479451517876224891974847278988459997331190446607525657816684829111473817733686078417402323426697014668171288494459560580310992797845456630075075569824132186305272932984027177922562018650844020861309052995679491197176118718556096023170683595575981667356415285819653378313272896514282075770143019457515578302787825539471800020115764957123681422559022659477369799668392804111752200463258791715115467194899256960442080559837061067665375607116413165138455280918927218039131314053951631579355997375266783508477653590359010858252893283545867859491829993733932615844603690603630696955960660934939909273602953168240461988398463813964150892940935949650518916628727841205793461082840063035292463274746938093419615292838924572423664249119752637955828797756503997432151862672221128468056674862483257321956828829845106297270767168157194030722320082507550657542783245299263299939105659134464205719399066425268907848491787968839655891773235000211893009056417630432924482610263142500205704807745873337264905185769777778975055684029603468048836846630618898641802830625019539628363353497285023803119794566326563540501345051406140490289587220821177430254671593026606065209064758052687864947925965684831891939652760943713936758408071144555102303470842751712203097717126969835415659133741832142939882099809347339282552762414590363836127899443288823027361353863747934974452746212081171449601837838994483281525178805820674441026802903550299316994502936674721625400663988180555641326943423985560938553086276314340584555305686765709117250621926330086895548347537717649741975877247546451417025540349254948019097412320493450064972027146309217151701741600048885672561466973006934122839659160335322681037069155739881398275592641664067478427980470125224402598833262692505396437670973329489039671690546236304508042165251469992120259046802025227804410143475939679091012328148273103807438811211158199646912402081476395518714267626907351757486039224228884629651940238611955178523979182803804312596971466946412839015103382900145498606348232297263924786196795725524393490358158072768137048716663953142600121786587115065679171770214484789609680143698473816261145745415659061009050443595942442962170016644583546957036315519453210153638144410801841436940290963294098696922829152973638532093605777089229836217456270816091935833500044520017406093855152689486734037250115977634850788896683610364291110410088803810030013503234053124369025414837881045891992217434616121794674624878958020890993182423528301491566386812490266754892186976867460297074734913808284167971541026654592713194869595934109565348623015529395911263372433762349148842323621440196925049562774010744813572975580376788868060025590409165473805946861317999471960716425931253665005655559441892965919879448256112642143713204175792498421507660329186692133394689801577249795782855793906049280944673621642801392073446226485832173640520109198207369789788927537777430466109682375778200250059635101226388009936326155672788759086487343848385199951664226123784496133557233156316669078125888578305985099630655854740439909805407560943505093536268612325245784612868007639174784189425102032188115430984228719938655259730729085152757424595117467332320155517767201132115670288805775312119907154002986081806742590400616035709569361710891458215156729438623404233811700132013876126487543744084858604970248033298387947679785796478776118305608477556240587074290054716781285706724970042198492670081395927275186092202551445267020237509731717559720942159945786611745536508469301914039543418624376000090783786270890352925271801555517198978801781456147769061623246721908891035427799319131061928202531856963776094217447524332685278163082058753269668936905104742831736859060460334628094891079986633123254392672632273136871351974442727476872073304977599368952169847393260477096768047944875192579854895748038592678863428555820932363431899359502842489787611840037374685661751623723959114392650098242530489491184965895128639886138045084809319301104482598095001559649269381001851222768619667021847823276785062277615343632017970674422641304796964545114467284468469721411143990726414674265610621191217564688956920254815214853985358194594235458786637772167585431382133094133098479581704983454848227019736106494620172315004719235035863273307214164703490083597207923502633892143696959021743842952400985615095106002029510498486542263841150396927060604176421127598184980806399954303689932909862774295598833026294161673815847432259933833985600016133985778386596990166644386659769895109803649669367049629444252732926405246843378841849534355550246575847127264183872377420778115421380130139190698974054769171919742440938641803833702428424335946758162237259329182079845883257191231302152009812281031380070518292172076571253466206980168708553714198670101859260239636667632783458777690570906557674852690680521482016333669396243100123191048320541734720536735723759921243945474009278373202491475594970217055003941181033457515296694259384298745895280781131792569865495286658648057501354699122268462339455928538572503040181700214919604268307918443990357623419174924660170926438368327432914882584191389740504286124666210428035794257138135433699071454896475003733541476805395368396817326803755370033766864549124488551275831893246594602807593626255325205523292026635967817717358085860223252472971809844906928032273652106218642818272382160429599424022456477147214625064281223048218215977060916907074942574096621180683528752881673495140233528985254680960535773380958723318365044194986434985919819492038150029411128047496081408940718324612000137025773708339353319622959461787987052529668842699822333467678043729828853341602139103606408460990872003369252257364014716500376280251243045495204015605521494227198140403558550641467045603149172281894255365824976213797986140821619110620436881750550069321142688234075764528116508056969317311220439427912185732559111451262061551811623062233140838728413221289526073570457399635713902744915843544662919645267468151087852383782972332094762550345400570225896025649082353507507009395521865615967992334913141660910450186755942177996665784463229131416952106604896984074442785464695643340759304687105753636833817709909756290304122590868914745424043332067840777906922852495997566964930026679346557304849121696991158885364591975815821683263755802428636583349853849855853392884704632330307800587729329929761314193842955092033492113618778064479599133194057201887311702499371842145934906094256440520185441469057148556041350183025325866404107307830137445754733312166896814384552220282355991375681580710109909567793048448602763047036665927471680287242095764533927281620629187825122691952127570402980982068071641494094394771191419426490838508688952043219521471173969964894648449517728537613766468066670812294173967357547199993838759008320611073790834840147172172124728706067423914872546460902910850902345066047237303851833221255831709798124061263739523458125146268446606794967247973558081395101040950269485388982369196472384475397525730505154663969902837658309175518802496538875569987043564495555521427645621776785424660936907782619408816383669874609843529254430874192347174246922312124680736179093455310879852544089225336106580784163603118809386330652556784789659114473186043422342403883715990263018903564365928266915158838856633656826228707940004045865984529727290172525594377849525553303897062235056884183220155308780911400152286598435889449625668791652909720979982224546747807907337326954305636735082730316966056534580289654821262165621261456774510716858172082418791522708116548754839596040775714347608701421070225230388485734050131316518319564044965634711788082115825956540192444792517211268205378297888014111653317757753379225522232700662055790974219457835554105272763308739709009168961383231448812450669412521282661008893604867714683513245183236146833602539731703911004335191850126370287250451131341522853001997448983583226779545720969759729779684527947936353390101150832761653124497906959212293205494990148667693558290040361908917036424094722915847786334914443583424961686545396787026433407404641756748499449565827974701458011865258434200665852736936228989635325498221688899555339010701866519461396279227224923933152051577393657285748603434928924261238345568652788470836268903219730979923510690738492738964035562354718451416029888383697121281047486961717709930515077742160502377525184679393990966602473941988796248138367270311386712409172404855148502011272217077660936076593030879598938935725574839125048663224080189600052018967869323410905203177162722989176140905754765948930067992623568269882306783645806180407400991185348189248418297119786462196891834322940017274547472203149418867062331491163560452950406588992135975086650208099436467242410891966457449892120770138783957333659956114669177342722878394002072946977820188036321624128154801856988601259814212072004967333609428340848721246008675406967418110620879621034921722378806182054207039569922084081734345858796050688056353606101299265684670929677950104799805459738821279307210485943763105551892930882203084192593378265414443735525919298340699100576131738473864042827220913557167617646299741369871917911912602312950136845836431014018391889871023424705338395892825066035977657312236208591359159880985603015888380904346947445118746302506636954621857215809363092635059485196846881259311381605528683829158733669671797995748809681177528514829309090608448654736018726018109882092386417317671064007998593660173035947957559349524550186060500348063216822732376200719431726195284699939667733874628849664382676640842348780910416624399120461867236399710457091391822449245775576535515880568344608447605293271230186973409835961628295347135040875156725705524629586167328710124204299244164297802198548879241285292527629959077964359697369695647172694644270821457363169321572407909135123508609374586850712147249322996946961754513267741261021419028642086470527437576295581358307934128596472342083767971438844222353060302342634004147440525463542542709033984867478925950896343700217230567022689063237533874577853900926440058874435502382694764756832336521241509991089541966945025779622715131516789754300049336176600769910280348640688491215260645438965363652297193809003644062599710663033431063158674363087607459141830700518107990776901151089667386928727039040255434694405427734712184405859859672189849650197399043782567948913942115821782727419109471631889149472627535782437198973222046716530875886927865849044257125539184996852039722178945871779298468896651039360824470980215135002789299534754932667720274141641185852744363174424044848458746672277766942670534958972844317346569154472050079029775499668573324350860392713912979581720914207133961472107331348444225185083521396575462060558766361813186960058149342356730095909774798337557881807924113720487680364840113628297235657666491943802685392537973279866372049013631813670194589447254900934571405900064888876453138189801591603352400571945001732260360788268744984248811400969398873410476412598499112524181627990492456225500216961223320759848091943403660853576058352409840798959041716011082983552132876203877497870932830230600141404198296074853231377719235977907713720931090068697328012686374596277601308552956564080090190880410424680958378962022215925402173425697770023793959040686483976150201713480167634818960772343276667540554325379370184761777481853794143003031625457696062057026298488984325314679553859598549605513185453695806057074338994358135005296632272441470500408743013447392190126670834651279109569625259498287840429053177502380292625178811144707700338983179958248625887964113919246587187864307986468179978327645907283573348638668899217835279084866145698270483891040849639152806847861652150824614922830354293228475723331391102279810975605315071188688163496001123788186151156400963112923041575543692434773274715337302546830816150551473036935733926164073644410990020486879012672666327620062401620753362899226921831536211096222383713878500449920688329577843384064789451239387556061013234125214150444051853166563355385080902473992360067863039235485581910627219549626004456791169739932693615119712254817160902841967506796962784313072345910279191058086202446996924679775311279535414761914073043183039904724909020441688091782565614396156612414723721202227911724956787182180979515763760116423774034830025535695260567729116511011728483563167863296765741402454596179893676184344209840174238670108863802844761787786002241394622845554916854278042412606421153674169190403312406094616009995319074270931253065536045663460295760513255894122620649922607000756358483097652808493128776470899586616383318999086771198560835150098005398588104028836334033770268403191912682852550648778498308172401647150027250143849803293001045099906851186674517074819367888338431452421513338298348174316871589992973909496753849359711977684707178411849053926219377947956513809390787693846346914336277167924300662482894560983411855362948950165256976364199203101477936452359907244543025729553781504547838522715627048687601762596373206282881359617499321046690155740077871368018863598000708504830500093701197700854218665086775829580664729404997211381544490243713129923662563646488695013530169891090521497498750152959428696785382862749417124529499154441653476380208244003137461990906380861566241567568577390580791543108636416136471243037582346128370367490857754098166996022219504436245375892866487484766140051196864666561326612102111477127250575512640406137928642991481544467361054628222135962849659383284725952097376653125163906346742569148446960625514610296424336056275253007571914425569533324239116533184277627776951077810781282256677272083881190475847756348058797195099817851834598688490296419337418835477247840966136820886335695963398797493293623154588954044578307940799710058965261881215010565786187595989234408262970686268119564782621206066697549631003357627234557175459353417003345186511713064670018168575251890811286608337621551590096112678327854320057208576184954097380086890138696805258326346893437964512354391831783955140307347750885716780370353929851294300674866449492905879381487989960626689429840499632143055568051858609141125167180758304923647733229979592424921499955328060593738414875442492505900874314363731487442747387941335061690144321727169185292774346425730481901802829760611701485552631956040841627586292149538395620708252684712570513182313612395008805755999191769098023173041707767743308577637753309467859768887323477159552749570038878616383035284221572937473740858066367403213715475128060866731661605367252884879272191400471302062943951681199300736204032221695292577613256269137440125067326399023522401964092807531012053752164522888525800342380889612919150495726427337547181250092969855028139591499592847310494341934676869442033033801371170155659494156196102838682655249027769146073465771793220903385634654803817952923836012753283365181070026467248658112403678112519877561348454714893921268472025555325866295061465297122258079183854793761766094514540638013549676395223259947708442559059266352479187256266174448168324582314784392352941019949272920837421090041895457392026103160484377740022169037081703225985737845467143095064801306820989294031165437899398939598768552315850720108633602490461569489122785000952667742069333497331501909666149185906453804560076936882190446624189934469758713454850163022520357107827145575954236427911128915780378025063148503786982303824831839213464399539757257977146366466661480248850550612091371263017384684811933500713008598278572289270784455260110848210426327078679525899801976147860005042391976013402497901142942413478040582635373395822845097279182928596029783963660749909147390695203599168867694923974925369032299223086747169323636579387789056879518627206780965307077284550731988861575841530391482671202249608114322449280922564653235882878380297682499905280378244654923195856216869389609571187847081260457947835181435319694138047353291131062029223024702263453068676962457661229497633972251666778562708609379482305420842481584395889618119295787517284768018890140257203428447824717408022971164007313008629439826210114739179483371471851890992726443143502369678881899482228611752039131685775879192912960661875803232583990409885362425078583370850403836248827592371430480672222184945430449568977948120850391031346677980850294283496000315147966969901640747395598495575899878865273197888605584993314812905858987595517473006676380117334800191043167938460040208006095904475886276579720787457012194849078991689640607815259460098411924552745751426126953071775198092526891301825727450103733101859985916489152401012507227658548499353716469768321199646977609910811150432574322699017720359104893673787502249695486696349946287625004449728997708765701023832695346751941124509159253217390507861617483558114889360406508434884132216712568970437339564686422185771471503205317087255026651308182593617941244924878336171814742939850845415778917271267114550545277142057294566453059111481856905630366172837151346903651487853694328667083523937218666247770474832257645316345231069671508194647185193373412496592255887734639497166234047908261020685156678281391715620856968839641348579539776642153936126218142191334405494885152698521580863040186241764714396516802325487079682286190795727254822288759888240587494193437049056657978864004329136146484918200161300461655153640124752941256805916523022095464846037698329238714118583030017980920139551826830479724878112658846268343524204452792100651158573448792620611334368024461892498050741133685316576510024679063531402264337631161780753484812379989469804394216884472973737938043646646071958238749267006962883750199551649501508265991649260251933578221725732735831448164773741766002835310068002734634511711675440592191460133232015229691401282035731882917502416219226858655374605379248183440516685719257136839241333400632001358997564487433142786598884234951997812145813069340628514791730259767618939595370836776813947369128396975537952929591648466405021707015936159536268598313740926419304791278151219304157919213692772870922790570964509190113276943491354562618576776372963813476821167419060383587892689436838301130918070162344283574596814959195106216691162807759295455457859962175078146649260511188715114049820467528215992918648401707829971002453503025933191064251902772216114435240045531874441574874554677385290830307922326244889243395180136932277054199759336562487240224568970109196739948575116091121793992611212613927699950256569275041916465969078247161722168347653672285003386442413170560131038359952556796022060574650522916588549752611608532810707334653026801662023044458650583035531479096723310180198511365368826050657885613261382265059785543817634984720195165010558715234330109084911089372568355457635151990136811583944458901752854713315490633228641808971842999034627375520612225636404800172497183690216056060716756080156477029432009274039427138854656797776299393218312477584989832318771607895128761378179695835027486815416479064516440469014834568980411031872073419690769367764032348133868958575645133072625044470003168006426977336346368925593347419383123106835994827279590092993042109107828414459662227123601612710291556340368352639926896576804885239053928692770663355019048705460898034418327371909826683473051638982071939043462952214266573102376481963462980045212146857116069592831249384467347202183079879379750742998333370123212720539038314275289941289638479083114994504276583881993822942526213777617485528541480711799450432467886012104983828415982438114000876875915390368595504706287123882206582481327802855188751768954818396416852388494986915831392948740578380916366102207595086846496804803392538236351398166281033606841898603295874534579241080533026111595884314280952678159754226850136892533497041535561345732565672692115925543168701359226884365393681580376033900836110886638975204206762684983526739234806572553767658574625482826392251815583001459721599767023542296427994897151696297189987530976260596925470459532814568568851944284445965056512272911099172182079088631332125286239208675740556701673449310809014971168426176241581327249391030378803716268996575736727456950030703309454907444611712193130778997045280797597578155523748862802144023060177361706785930237156870913334273315811921305642934731014512936514175094740631605431505849003831354751126027382772937904904354829313681357372010269572994089109058145994784927500710999824493468232923185083988097280613342449645022161702130053371926321343043024170541702412429763393783485227130919492330241480624702608456697438898050504102863061241098421199948021759092474000541738257731688235202191774206406108158516247617154173243525264571383810679952812685178317297123314291689274716266094836511728884516760722724544846557533573162213235849845346699777966455833518667833551668505072781232733005582881539684006294965752608355459082280297016183117855186923853637221518637445920500004412974441412197197883105367797797824028344728440043986800090013186540038115865703314638260617256057432375543843882733298163851868881969961843591322665030381189867752573050517941646027710109697974473372789972918678587262262159340845734809044605054204221372004660202672078563381098757965612373614391674755072491288662523303606699992971389574878788550871472060071427856545956172378085990026081845457247971707287574101375472316971439328350280040944730486815068719132493140994432583153218705496775971576955797014034387490563304614576405974720155069726107360549813899990071600169118234800304851683887097749168151568775208124563930284768180566933978425029121839093664570947069353697028554432874198622757669631564106911210419468782078605372037778194457479131667064347177098294911068562599343544167537108122393301563168772720297477860263337219289943050445682439004767151740090306295167183439230847661708661131011047831556880003079759660022420219241373914490341857775637429013054476801109478027613178812153530223037617758427745951812141281516787946903451075538101966427568125586342153727638191653309931315305917849897783047378333009497577765873876731108227496737261877844768399102013422631270972559510496143046313220835404883647544550162850222444761304670248391342985837382274546135190824868887559195794291229782330902053861353587243436145666717717090752139611849428325976101401436649355393493748704575888029181692137671180844801852250997454297573710903152525878564265357893360972581478669665335969079358412824306042323124262453044536345112389386478365440712437565838712797184812513219379685500697006568106991973531188055209276624210269919872004109159753691491062462876228793156933524795684161007982283354811702922201911025090549045525670376240294460810351038374398560371685254212240180866298546243416788837381968603121910422842543868062940315633070814654783975956171219227749697302674186010567478426600914984133745901019763271227755496466443611535068953562433585591641072208015918981335291982977541510272982575057099311067592518921396143282452169590078921918863126045311967259736856684760763086061263610601510741208114489767284848367046293356511830960068101175164899404932993755721046221978270049105893606538263988097117165941067004116969039825643430852275981584201255305954699253940904741144486626968694789258092288384030999948173698374966223001497066081209735746798930598627027335751033969113440291473219849959618527017242147777458310419960415732292140761294565764053063353358801756785435565099464673673238747969682196968876344542945203578315586718735728151924123829945860963969736319673444779540194485575679290686443439614918735525265256340024743286813194733842826555327050804948301448706560877860448234922025152138268017417955628602229014737876790210539194511709423757325766656053795064118225958976719520663847745395449517564208180484018234990641684085803941545604747556774333303810396426230627262252518524718922167627328527918749359246646549001440359195082565929648468409965902600284405332757869660659707077099026815084603439340138532771425915123719316473381277142398350965171023482396258331196538660469151878589551076309182909888315637433746869256799152458248684221528423452770434544898535660188157214064725993247759281226028216676809495341485200136812920618633860443551795960622266799120244196830411764402963560057900557542440265403921328072792596415743363784386135575477605911548092584341121954349530617872830231307955874032938605556131873340894690261095721130217658921126408321422027632262050356245462042144712669390410037704423069302859316584293338262779996927840900579531604937770258583153839977029520725952666253351469241711795237780757803182620367054027967850250907050077609357972408356065547932026678342634828928309686163906707862524468385402213412399170262169505652960826439970278350824947003919866044004975111445655169328611663268858265121862696722946347760204112424577874596721592538636198246362861483948452074083374661176996870161948280133655550581720630209861168071297851441570048917764540808784625183356033125113977630595473228934410027174253218336504977944093658249122558253237972543448088462497421696327782717873231093442021655689104910999773686218684717262849201114238290645508634337348457086739108516224604415320451169172894671668195684530925246684332424732142512902636575075160648337283525922696235241992301842479425063058516733376428710040661825362057275989554409961697393861550066540850684513026873206354769239881702267139265428603002301985579983863385565551714762879020378065506457689365166208100049295412037676772640342177915586014010581219610601335921843962989011643014141186465632372357414420890366460041500980016156342032294823675241338672910303379281365055728824159182424429955228032058491808520137759133691658536932197493738049842865858797865566564449411401471709017219862892291298933702233451931485164237614530415826881948333878140109117605644612012810404436095708274001960743483789598138550860316819052259273816121312672800025001424677702355609058950225266423124500494224584222282047851998363457935644162447229540912561943302042401392325681710251820538616405240550468612264955550596909453783043488146682402322617022933447974236254369749030079932626475858981833910727282498385689667670783234349683231775195844392140880256453396875117577370300090779513721007392741487305214541434812504330551117586293232205990600988334396924067928456532258964672175483101959400526678066668116686195905657723089974640343832298622309934219856013753188150186153860443626968115898079562808626998182495367447098487525609847539658991498124855761571788460518038471092502005692272837646628397047814455314803804485519566214778937484069226382591076165038382074127682377341759098275346225398362234155104884415704893073872102245500679497012243386742162351729442318304973106349687544829757665307812661749372070010616479049498759111541120889437545767786305798958612062675897325231592179584490978817936705575571071992511189075108183579969104678021485212392756255045708109796864572752752147171860889942054784175898989645961363584433529863549098091358405215677463780485400040513928127552383721492874890872055954233632806187275565221932822501073623146366150716003472074688420650288188080146271000239725959624929774192167476357745924930924407788466187437765482825702406569657835956322394617415172832959204342292114099339987810429452158048490689578257116408331366672332044228972784550775598072580325896417737128046980102599684215749045701337761996202066117102998954755126551113475677108125161437282324938748405803306501619538565563875918203478512559893508040789566527800734015142238151065889622291722880396765319838339208796320458322151698316310878179075689935286734079406774321323037754982362529807358809591368904875228479226712950647761311752274550022726650309220322597146220380034882950730777626228662886828609573413230950038557434235037766875815284453914909839236565860641040546355470000325860522578533992922493433930954817861956878900908622146602673195609103622303996231094427322995822657146469225314589579324725420915178653042329582123934499514017770986506295167858436692213762039811735124976578744035667094969184096758856809216105958000159790535176082458684217632714046564402114266992996697663275832710663411417999246355406137429258891920326407739071214005377966351884388645323057588531195223478173805373275423644403287923947771326697640993136133150762083437953819343198886406505654748176167717411497062993283180567766204721100704864457502162846745267680857662003029980878651188787708722573456979702250662467957298862849806477706731097414958881999438092800282070366654180247846761639128173659618231740901821609634211175045432137565323296299912036932885533840888691704753876055264512261068309872077704014948767410539355225447321092682267321842834957918852549598365242826993210196369773926456328398317089099562007534319408094690304773941953331318860767316946160464491690506088967609910679878107576871791992166042278817552968752218967752219796976190100940511935118207606977132786178249797326126612908658881032602498868240742571964771658281718455366098189767515161069315890606007830279368823409956046104407521477451741100474649356479358364922644301941632364131356978721506696905023883147670242380333628118160914822507677628981983975537547805873256538098996428928343864493505370182753567950898267607585147681787166225112230774976014872943664763196840766509824019358173726355332132331358336489543293696482156092336609787045908744912533640712060446775083274350098790149903742466069582399051030632819830496789774935124679975470393117127560411806661334824361560882505926381585123389377895701509716338330881928840184693959008798441231743145607096861098556610185580662035860382680238674908819187913437855882322930421509314563820184980791209784771791186828200885403059249199756480606419950520479195385317186773332117662339415011648529272870892476551789410967495262844226094360797595206893798750090721703802734375432572856190185734118357677363720118443072577496245181223537016149380645959915156033715980226480133322850272304077110960293001614685753906118375538350265993755758125057748718340056689109399947203624740582829753350524713410999890647415870387058370617596132910370398569848921413290675018752483240725472625406223781555412790571443104395067499899353497652005323961174555628587607087313047086856534737144319449474810498612858914288373811100065006696569982274809465218938701298933689404946078648571298578499085032154524588448349099224341588619595779804163863232191297482619944244500209285133335141664398576689983192577541621677328140083946334009494120163606504321801065373183016663989313057846439350259169457954863783837155088599924044690830149593083189597397157616268771297300429567839820545776941064957005939758236190830817733545581810810137308995217569825311003101239051441323832880551053347601263391538954961504217191459223293951299082967327634505994861671862441544153852420530132818063285758172315617770311479301213251879035683525168056291653507198929048738120045417615246879168096768568456479469251712133547307193977257043540905995823725744746468007249584414178219748958390529894986344285260558216811205326425969167684896534862560969562822899258563349585618780229641559155421318652820542156725136633525808449359779215008415110243201171041856903749663195401780143431699169644118247231784568613544576950555338922500456820420291420807540614488827897981018948128648431810354338162342858758263874343641890820085637444380034641450922867195812823839311433590407752955233238180265424775676871376111369470980129219978763584638857883778481399307396083879289719053767055168532415356461801322707106501983268009461375917639296271719285907222367508020105690391445195077598134398228219980901447979707691793158306905602021254711516908757825157980552172811721283136471270817508003088020246786506842616749599920897491328833955503197971178333390160049109485699213706992675637972356060329726046354114979734952089305274019973858503661775537856322430498435398110567190149971576425186617972890346429229656984920975567960686385201089727360718075286800040087055980829823809801528788436800265774092959210431169487367795544047073221587607059409564111254892204348434888356634230144120047418185776075329327489599981519597842971612047548778564283615269943344645638559591940339635646780696727829362045961234278549556534868884730362910023744519976049976983517783423069338500182729332856886500101755911944495286624721544440852583035510312845569486733652616550110632735473374387067728535855792521254346254704274015899945861986738828416627935680847739827564402927476665659000840623612951244074814310390462183119315756915908458669610191351859887143411858320999801101293524803963953906005398273689768049953725989765886287604203640386594714098461863098564958102236939166617755637618197631982549239019687985247363559692573770831575611148510563763663693272525294529453829834798151012086026562088400549241278224077654111456274189294391944076322032529160104311389035456028450546300765777287943865933586272775403546576258808026927454836847944749440646578400484555277100308772910755289048450180671347124989420366030544518517353500480899839031230436484952345194583052739991276763188141251672647637247869144084284975940430351179831336252529735783496112244374587249056076842112994264713288989904199118848011127845708112315184271025657916079593109930443336823545733390511464881852299019079042810154505102439990407171110942043309166876007249120020138610262351985049985138867014562129372696928875497956768812993774381895610163111140488838967427609581393289428915303151839509450945852995882043526598102897005857408556490915724249053589096806631905654344920992720904153753450856130470904101703738061429915061498285289882086492994782121452231811966720659732074815210099539719285362932153648188015346428814870460791876994076076427733266820703922423302476393795408666376998797918136602518607750477977535450424675744025094534984049897015016329123013553509576488480853837377960120443118494936765875290508489369437375694785615087341178416520769938567399101104746975991704057635380926617192801550740353438359066356355587006380693545993571866071957417235643359902594863717109329249444219185007625998011062889618867258894329444534428869247352657025508589748871417136743094208428654558830959210766838807682336358786494629101272768787050428440345838847552524135331478751994087840718557703478725588694662644956766474684510958498349332074800553277531757263454054752765187631390394670507629260461295641200106599206848451721584905750804917653705294984764155097873476409163020951741821838636341908511979819932988011267138509002744710772461597918428591575583352801144856477171246626975951020024043944058786249289762054999365736517956104574325503366832675631187708411996744567950013377190278212111188423961095173538082395194804934824562525175332156926290370368657679439057082549878352158454796815484705373034580197975738980552094471129083156377142465291095032683436132066358427606402575173321973122167608334484185002093873097954642627376885703886966123895822549293384242956238786958754220066290763714848491914295082968610138204689350198118143257980806389156411859820374448939295896537147060450667642359738054465085886386475314602934082855639311981523481184444390696208809564158149978745932174927882914690208298958003140361621863653816523506053155955612766638944713183934870362493714063312396230016973046560690091530383143512240943328082262364382855158275166272492149294649344024950032468520243572724021020744351161799740175627842300038669745576840312977746471149671681677301694705345966112151131153117271489967578987458024031038843975453869927019011607721611672903996676907020687529193556139054972396391514395470366634885083202854491571515646807817486755374219550015772104836531842801059992961572385879768590458793387373408943741380774984666974195664672300786194919344283983674313230211218968657233586950170892237483783960393169357978762801536720687233416262216246701155206896184809998119269876004077836043533936121472247968536999069504855002239093012541379502719800628015816504217014557025245760471118199524838267379388002819296530969661287330971874379972315003159477081365453711408210327384678765449561010458000306053812849310996344563947240619945259251056567093734194464496330584190978357649605100506060407741054776535330906810356883567269252881126878785450594245236586999879062605783433644404726166994622948301189944292730745314052097131778208974463909586421087534733484173460271535307566394049591781635563217191668575570136867621263127133949461032830237592942678406751827461061950821021279203917673584974371214931011393001896994138627127535725437940214169047916557352426718763954264277298920904854533313971878573248139119959961676673528518788966435062037630055335336998601230027013919117719278349443226232568350319290585056228865537309541864963385957146948661067531791214294249678031566200680049377462854469290569180877734363557807304237460283426881758278293780715546589694361405623904263951945901552212655469964485059087649714913952136858876916913474781655210285869475953067445937561018532726746992444877575998389386816711865381981703802428342427369232589677298725173249676120506557381053504292543183031959673683707106106441871574458154810891513685585257112083229070706164118057341671516569139367473815557447793428222073936390751521491824920860593591140394563517903495116074500097422240933885846110677262656112879337318130812644150133555440235935518306307693451673650098820097169918878826166241309257723062922721661867943528177517333023089053810162062064420262769180963970576003175893136246079925609832683386596747010061946412149540265837894528486440664008957373347874242849274018717166427736119357901942501212713873268762552434903736699547093996562022030649835258498794024521667075075636798868201128865570757118624967164472506667566154000399411659751382605912036705907768420879223116808348030686322267462851121434490815007362164792823184305320488662531470675473445186819702049872769990266146743260727178209512098954422289865306033589280388456007034704235893106730574254136555764396506998677595774190996048984137628664601479950308122325572165991955082716854051461403921137871569339100052081120099289950220578878269963952580760922701996760089610952545479554843773860871976436730118527955224217131843716361837619823910355762032994121859086506716116357363731598502999033829212221978434584377609736566485613370978341908472955024025042211681894069422285741940965877268521878491912195775572911260430467364600750139575142368205163521900067215974234264277230823736669884267137850814750713970886389382150663446444068227209300787348573938597616390108509557031457868685826804316608768496010506052024994243953471195080858069316482657362477964476422849734137965045990393249952364052642431793702141380580199290380967517397636518433360343547534672904503758502797415829443985367358459204588497252395155889838737993885871173618940861754856377164247089197700729657443803569778442199655607140548863151725061239884191697090723028772769882638298465073886404709752401697142121906096328628316781740535706866723541007894610715577421127772425838818806117985938834067572172304624950821898714335646152270224472814769965948853873744762897196734918318106054885351033135418042223678337825200581928440870072497886619984839972100391154042889819829913722277358247995179951000902275000563627851673237511086373504401285394280905037216547285771454948265035774094614655215365996350421915342382041451600852776799915526348593215348349249208793911197890230130674058411641820879548846331564661012082326971854459823242372605080319549522318487653686818771612843975347249400861097862432675140945859186067350696352605030775762308293059371524371257541449868642321422025640755588512398416634919706350177911566410009073281517084449176865533864735208286240585089150641486194478608462559581469356361717678981916171278347805022040599977103197050449458704093985927729367976543638422195180239361134490868265601255343335678825433583508143545513761567355314683193201904738707258198633166409058929843037074449426213657090948192678414234565664920491892629968744792689353685541118788814896414641670524416749174500507464147080696140504165892114332332794518077347051986391257073354875214935810970985997595738870911047225082535668220964163074831028364780350553885245177742274498737916685404538839400075445916377485101128995023078727536368540778592685324656310773142375030129946296954143309162990849599197502448725318718129913160485688776525024075283298799620850969399268046263510885388359371309750111727168757565700900787619896362606825085589089288502389589999628902965898870229162434258630972049181332984507300759947412623905952513881411636992218312749950751900923061432970301134016502524824658363095720345944875850121080546589514926548940910306848407848493521001016211326760000868542593565262071308454142409992909203592760190158739009106606338026329160161965621103336780795506112755042359437990901416356931280887675024140729785515203430155519603502348787301416161840663526231729130224454332167815858475277239787252181392833571762142918953495868631622492167731550919729303428188361395616521700799925971895990454475927345173160948753983085565089898749422151789209177557996523373740021817919982033126474706547428567071854317178730821233704106954776585177908083142598419772354482586670499773564413329887260651313492333553363413651069620015698319077935671304672773173700068781308230715409354713933295118905643173597257631280933931442632985663153813009528804398709175995095698357596540408743912564842108480524569555006741538739939358592189812470689466561696951424153757888902582964409872849067118385282677997167198198385979520621347273154535279428172096793730218866840866622153029480563691526999022734412995684948118757768950639363762650457451326685954667923264335534149686956071967450344101495082628941625087756662462626986722430979882632447101937187833527987491805335070337076433788559704892078510056411720830587366296624547586549756439555575599429456856840817486972206862812240047539222289818458854409237792356202958455287472439475664792568945915467826102445955521466534379188482108651689680319148561173389441250903743560863544147733745835909898804448649816447354577503614351824443099671527175625983890588743074992142144619366037618714965229156139216261952353251672285666720282560833990183277904542580483667252994131548424582054373597793888661832599179318585770776137249847845487520920607413873638519354574485283148413248605410783204624213638994450456281728437289864299894459649673475928746531670669996729161862832400017704781776239430304163637950727104940057198445254762287179013224037946856338509368855623961482516453676539631184242818850169466137917131107663629621810280910921287514912721667881800223354990081744489358186814709075905460738112636908751409994841631113216981866643414232193924668676290603689561748953341718445395394961496381624130173310935307170752971169466038724047847258824867324933124628657601535776992481070844558880174422131652638397425548179442484456737811229081033103749528376465013467856611181582312612348530926877666020678593943044584745192771618527911734818765841215911690572268141530290972898987283847427471945375677769403416636645279643800114499870035022513817242653800766860884871591839925490550650709066247247897711541452316953790076746204790091890866696276145439763639798044495841525707332190377574184205403582324522052076627576620085952212935871486144739980334978613785355318617829522574950592296096436390589801644321335274921546249284288302607439436489542847676523851619338439621418124280072715528597708218416117116998449118779511297581895489243244464283176241361906578075471980175960746662359746553635611484547388744732765589095045763667853804764200087374074361492186202331771965496856674917926833443344079727569689373522310155185537723234753657291143900872244617479319807208550105082499048506693397781807481737776834392803527437346389097294142994819305040530779669233358279832905354297769907121051092416727783560564802221067608112810613066210107202105739012846338532912688200469893453042235441012767220268697482644351402625087484973431545833909995930113702631157793170658276375620705347436484044254633653834825745301254124328137458348941859942949867103210936876503867611600750520107485330812595396308714527161879358500174194668300725009412571672573679615101524589081485436275739311071664109743113244509134400323657191427365379328088456239573115709521196422426791280495132951821128640874580149319296866540281388543808856472088531549739463035326466677732435570117528749439405585507637660508326383880579636181694019309465704288234989098669290083502513063992976307404170887273772998237986569322292613079583590958438796904655989878555070066604792286238107735342151836051794531406783331682305853334568816158641111316645305465248252324245198200798100507806630291236816307775998497163935202184537936962330073135517625285962949256873901243108775051616124900874797915823954413888042185996474857751263868244155639731687183858404560867078745484250022739309447461825959182650919261648822352639635361065040118043496816511374196337048254837680176906291093690490465107527920510034915606536709651708259694592069593761227870339746031317230325312009745444136186262018303138776420318006034574543558852153043513994284776132648765908690146112155718819888913174848750430487831942213302061022026423216070416490796785017173527232217781506291740667065384205498293010813930116265798342418388923614385294645200497117128521847628303757116381444499288846038623885603844424666340962868582947422326707375090921533036997981662731708634839989656042046223786110668909447100867179200476811464587779648534174509285335335086213987825450260650411712175150247293982241641421953802164509506348113433304624330642078343090277323475822132571813894356920717389834852302609194684388833885709227289666477524582456367566399798857348460050754951346155821776795017052563695490872248673627795364646645625813315546108302526595078762323655129447230437963439025346026055612865112303156709073808710738638212112638433308379769069196262884934334698508918638870026453122638794867233580205620406502151827632980465754446957969293104737847456535430426517180913190816350059487451114291591089418298865556601010910063256353209625400973461747655724737447500520871038088391775019721247763665652104071197023487341562378984545196140890794251747922353343763439282778721919935883414282813383256288840132516622512834526660022207194439789048898622610020602145859611923445154691670188643368967038833877934949400348010726087696101001170779528468370675683978184981227460289419234811973801906982109642274275554717825710543151155356338962102373182237343260821268319885796930128282072052966579302230506084245603194797959656320673141854563268993946143736247454840905704943731354563172770510703523840090485977657144984609974990559930344097530090823602396457571871939052109302256038346266186737702772521167632039814257775431299549968635794248046362102051542224101481250851328770760874564117615238280137785062311112381446878106658878180513669872265087549672650123833922301120905811006752213599109714088184138744845044522626417078974634877774242428521399548780707625118326968481445903408499575730893758835647116361351172085940130974369945624704403707798596918082408062971377493277193035925198236715197337189039411377627186285307537447247677573656952524668293687471136021025558562395907206532910473256079141235176206759129361191217537634731458606837829318121807290276660813390402348929333594790336146484957539340992253583741858323237904485569337132922516598779496392980349482549233872520750611749364917470321299279312817435175247228077982186824987006960344921262091822870057990901655869348297615641296259657977872637409796175219939366111435958505366098302312930281751993599006930039563834027375627322661016844080645543087452743299057400571417010844974690521401353619986941950545184680044269890436400441076882954286692294803073794900359121840188695962984762521487506156877678402197306142498089281437176653849069092713264128767711359860865829407039239282422136302104823315869017696585855210940788035849381872688361005680309854226524303634519301910735390646207885049137982165635069212432220110185268191131608447130647323686632634533343773334066159860705318614299499070142262479713187153120593680503352267552316334897624494262575381585674690882789116827382413129852615157698205783284924145901443893929394909716170032158425587761089708545715665171392715372977055617346451096902014140580673485342806042244355019165755945626131573982334885147262117485139565951078660471354369076425288456043734518873435928255447894143322460123445133776814853539833198856334896109639781153774090386909417890374069857508720068432473941994941560206058080256374317667565241003329572770900470355283788341920417819685673043170637440322623329568209929340564176509504347897596247517190739871386914176692714800735697399714379284747561625489292110664950335100612523265012043933938700765627536694851955142381011407095049935895288108188545964358895646533437757978559683875447876561735528951380398294146482216735810724013357124946150518411780419665158979298794307918242066743110378036603815295910703269809989517897261191590121097354976835000345199889907710971726883445059278350308346128763623364143934290977557846410768379770454263414689190942268411816328232284271868344027515964739198273796915548869056679582495869516636359769759997931767639389109396560132222440356676962720212574708056736714723246388055414770174502243284826268320752497168527604111116706679018884161378845800147237890685971639946444731153179664772485086392146868980756301491913661736313142825501819380538569413612601311648180406266669904660401892511928801850277351479801149366487718533238975719460853845070999176792794552567746577543966790222520236435913322572406490583054804024488403503126046516918447842294258604097841835663674809383195542395014893239229078766287677300339960012807591327958839195710678366860939303618515365551628792102994778364476575435091698355238507340724615944026700444052511999859938979299378840695217417586786521968090920544799975240100702729545247447495848271796884043661787513397330319621350419734451193884808744313801432581708123036433272465647803568990563079883202928443068855928683247547788589251364854665612227520512980514427758941543651820642774598252640901681779413986885067098319185264417671415272313036117316721938264907635757317655464862218505910572199309939456527241681929759908796553314464959582538701679999676582175341926685758526834851530062972644177531600737093227927822424513961809770204423267110305766094359078959125782101227163344009392333612879084800136107535688291633249133301071768151240489173381209906984529951110426663474924987801039470798466644155287718803215053510100868858846915723208789092541950548091461922511766606693595794276344140147149818941545343097333185662925067024839753261676094403713935595319174800987711744969636018901537096056977190588931561851113739198396827667169295456858758141607057775275007025253635297062047844120167843832871665780836734338363903496141758191412453631058064528553375768907178813820266740807445398575564834169989350283896527022440858588017853375691589513967988560446302285477290745997246104618576475082737728729799057787921898927719788957943543390328323709290204622415938885957356365975805490646510920016781679433115984997941893734623734494744140681720470220160053737052764236096004311216037447308848118363329225904768580704053730791877244652388284257662833527458559487249303494008852214349987438026472059232538613062981169239378423966556895153305508790616653246743204653692126762880215001474129686305758992195017818698957775686931089868774219610853607220621341065921613541693985130612630268074295232098593251354314596465748464309896066524029780916235739200507203274869306255113157363686785195543425597530383738117844455300938083626971206088655652901175743918367759115250923924955415994824202799960531041571551569710233255813179530845124476433696991094126063486503647003315531325103999948407137903382190419355093204923254510993343972093319523945742259388786959310786495396062209880166004944449820537020045325468372878869115396265365342751646644330167643586745466104458253674093008470437538018060132831694691706073546790213297013937972873107646062185304385853972906273309973190227861855304214039829579113277605468605710382838622686962035705913355458524472190821853723104347331792076090050411464128306789666547440139696653290617974561828438144306321810638057970082016600760537480061006100748031569182207089333892373686612731359625284034547054318850856049536975177257380426708906411467862554226123485188503286924130016862143200768025543501791361322626700897182820059327618400283140699474791303675493073172804614147829118929860636332994778980852848350960097779349562474431024126435911047408966051701744619704857837524688414965657069440964396315140759476135935505544450901563961323524894789173734644082855866979671767790569020084020741801340635448305561365612792692734270615254409744401879682078352080907438540642467173255904501973490054741485371163834429170653820973008627435305407939578196098705973813550880725064135796799884175534199794134080493701070159303259564734276324505093099741499118793700555961917877376109589097153362622915249122730715401447652027952892221389201262450241414536929199231064343466729223889410782421573018125942877290487241053870519888470777402189548815193306087538582975099857154814025062158499662262752184503308690244670621520207652837605794367367728145325581707861522010244983878729608615480677267893218785240700909632335544992723697478838077300365832602596292186667955405424406980396014531526438824466064086201139520978799092814350503235553122037146548269732873365789144148923393716928708652002811268743124008027796074674386360311877801216513000375852168111813774432677846788626210857260380072011287872689633108319673562301913317502568769152211594195705773787945595046733559731695558883592485753492545324509015789042252778208244151804397394181478974484330512471089293913490570987800097717839839552636244103226697537558298178577435492631268913254232197064331676437690348374925645039058698328903808129801923116242120024501353813962427122433701952927465974194161769410204512837785759387997663726549368521351323892240797211238788520763761996880349951492376431027318560353416755339745858469992723476124894955162136213836366240658914644989838165325273587850190891598766892153577277730849962395831525109543068355636219931259635614690635098290639649043649742369269503860250455409565544536853973142514108564718726558658109101696393505889560152324910623049549752770975666438763423985923185305850393998858160721131080372951437138821099160225583360977130201000921767253024680840567739772574756091760624097415543822953755542988891297591939135057286549003042360131094336347600245206890835574986911945363909753032371913082217093360513883911752589195291812446590817177060470172242209611392305245219848112690549317143579122791905148288521315676461369685525914943482236224374594960690396690961159984496510672926621464709400711547744620464670626458660209775729182122362004704419680688561317743486486400793877438246598539556558653697193727180740516498287801389562233680952742204290285417349479271832858570469013495981054778053603098516735628352696257343245192220417308376326950713399920123844383601077060056404904809949581250134771326272010273593762805871750635479635652962338577429704730266575037852536292856378620894278797907147439779606514596812148161613238048271015673415426857742361183236437658477488407373555097080514069513813636573226836969140061978240729288799340451955742519213968481863780195080350209097670649654728911888479694055021783254278280395632957246326317900538555938082810504151616735067216121569014338074952239197552136116647070625902413563126189342975264036486255036445902432807989206545596413891599823086154312241146065792083611369038227826120476288691239572380962850099346427634670693630593048181607172235950086980863396390127170656827719527239386093598119966081320785256518534218873027817884042910808553317587582954911192623612902926622953118515980857462881881034993227430236888655785027315604937487713866199890253615304077534055912093215211247363829144905332425006767800869784480166041621003614654654171546327775920686174036629735496372643993373950588335296513891318103049866183447419129450718972632928984309410287465102669484091789583743870109615697296994948096738003101831434706881428920890333796262450587894756955274684241646858950397972298150681799638435856806417330429913426890799941937932935491373322227376454891074727816534976527893710345208896847305241483012196881253396289476956754244844481537431026179953606708263797234054534551703904403069373344315839670120763668214182456401004124848812590305401371419351485845585935498556659303137627139979854004003839105377569128143293969067902115197285477780453548403267284689056145040151134276503652569258525290524852427051451184164379389035298374870939724245046310618547832857414204390819018520831501438889513054557313731155115250161754936778297757527052170807939302736580011306308755669142096679278896013890629383529422818837483657947772649964060361306702912899858254863086853839704539072764795559330867646440102539869610827805349696256060587337611702371862093034437096877405123768266341174292008590453986208709349634693426148290301097406665242825381251460990574492456998297804407290464309651330295266865057066824924298691792000881466082678664946605409611044742188185390010808804565757974742924207288042826326008695496968202499467130715453346347188651141919687669243168743802687732568186644725898932296051049550951164008959076731978336125701605924973749598155493158796247112635690129223568583150429368109676463672831606614577162742640733489974259971015083410543058961426465096687224012810052610050552321216608382471479182602383706533556068109015847442895368864672730247126165583388880801588933451929321410165546673043397460357873559079156837301363812558668884117724501927610082559506844958753665913080197972985187145540316232457861596864634393889470133592941609392817183718844063880793170762262740475281168522243657527905231852466212619714257597138360769592239040767717099676900802760925170714269349187553631558968888446631742518235301627812935944634087546334569893366592841804681380433613418997659157972719124233919477301032406476088830793256118036347742428138093575376591723899334568555882246360583270196942235362302101050078049529063140591436813399244676790442454306018373301799803100424785868224263941440062038044115967376934105870548468980851392741291952661238572259215114434689616616480088847924716184112659553258468252271255610242372679016392796660172021453379116833119583050079576827602708634236437209315870618055156988020171692820885227807838795574239280034443461954245884656698305899916857996111069813464399434873400645443258060714229941613706114369785978410258910416547005938216371744760366215280192010839686657274435111351981428469735680986435144289490571484277374857742470431884216218839253580585027100946382516506218559162889473088231325636956534003248274739211546416148633469356672961057362926181805412484680742217731720748318458365837824077311138696272776101867344104315223935832022527120532203857516575451517121857712595513693717887005206063524428245132861384880407846132810424665331706583661119333505467656340985936402457299874540515972454343795827037305517997707413247641298521664361383258489155017289701062256993269268509173149838551675667191848508577903141732048101191671361742804024389848519742390465641554917827062810861989258667712252245729230306663222264169121026223712209854061021423001226889488395010867413006803764707925458396724334961751888811269920799487665544870645361290602855335775723273101635912621655245546149893688654907862188550788124094986304755846889961695438937769371001597010761304802806677451320277167698260802570639128435976422531825013704621091325110975395338649145177175953869308420493769586071750273113805053682789632118814453118539783861108365125558602355445480847735135261289095962686507590297018649350503512920738504518160927186298348705128813751272157251824309325943969824494313893000684398789273347033027524494343992025160222223304007913237216726254113082459975302599533906024056067110660350009587492439819865231132082082107665957904685321413694114282311274309538786069576300638908368277248216249152728778373747545177503494015617039279838708198335546226940048494124745093920961353912264820878375014323177980517385836394050595300829115644543991372158314372733410141884487800685950969400433013370707867467716654576190718095049818965280302641081094331798426042047909448187672714241623054297577145961543511137668630573023054930447697068464719296704531598418782286287465745052184168487840566633977353421547434676789182007711015996550316394159527994499404191727873948259801102750362298781925362753315008176497569343891635876337223804498882732317211592162350481672533486460355602267102667244370518058828081382599287225970201296659130973906662985161949385323054659594958319284665394699057939570340678808080139763502596752967456915684225622482016199545780120260623437544187903664766532583939814835522931920621948651603709912661378539575046951862064798718506782980569848616691956503199799961078896043639804634414500776955808426069077015184388358490516013500063738638395176155731249678734724019723064306462474610341811531385804446084518028253101611272652461106454772009197862341688808633097364649883317043682663819648947987770414213132002523448685975351385143759570096862705823268502892515642168556248391425976751240957338172219297411400826426222699814446090058093341882235614371990822669062175960794837573471766488014066971297677780863151611084939983714526415180365104768357822121347482833374156969457151813166229635214402307360434021852976979085332800126655022907863878739774021216393462209945129924723475965190233585245447009989766241821607719707323667424014451570344162936547920560313430967006666616119435619626074955130238024251699238721266975100961126289243494917223794384588665341564217321013204702051717421531940078360552844943713958342994645179817890254109284551115948741074887467849237126631222524548357013950069252970899330278407066796043559409229634735346549288215043086499529314655834111069322366933278446648007981832618665566641719528681821224811799067229351125738853427725494322884617412962312814849471686505262344969637718876916909189046065238350835953399717816075017997505098957744940128272934302145598055690457962466486571816927776433305480380583113221420964753627572778883962163164969770003529958266074941193282358690804863077824287156492204668831144262097066070441699857210834837575212626664829524133842135736009864528015937760772619165048747240378150071358602749690569825728778562530757554976758761055526420439433376764013351538201168600353541191168073098374016234443762058861256359456302851047887238775835413105492628420120079717994862023005478983584733802431241976069156302321456859941141147103785192505931837369074201722267115236344259228418254494731391820829902545982093889080136709239598607023913777134379080082558021539530076205770171450402743606164447467307746964211057324422195971024205954844239357146575699761553149620598912765771205076382326898093060834473846082822332421265595905218992835429310479919816041745676751158894341532979296390118145798860849775403483136032970340778263771684297424170453468384604095346779034052257053852812242673391620102679346089183339071339180485728713444320112834429061559624307838555529621323964282846500024916209503931780262622683195202738146960587683373216092916598485565560191280208789400614926119703594577728482931226955394500135581501164067260271559049366770420135131426959600852925183451471839526631422370200199409147418965067030778567744687938892928477084381729186588809223317111386329881627457019492409707472301741377437864924316477291897346659247327410040860685217144345354130302474547120647029147257205333818603800478722391250876134796557341541790075028141479728810758600655660610339431846631740909021149221170708977316679782515980024773888401613866959295296637351625801402479903581263337223431697266453700643979943816216516895713976391721427671503055157246493873541665745183904685977703347939563963404190928982191531041561564368404138741291158374652383080515983953964302776297669091440894544861039901565527812773541451672246498912163177222819918177109050604960191169763529842933980980345739001311923791750838744516633081121558181360024292017863602864485405954392799701342585937371805551074361227012624905470199838954070580974497646197264689011757178062883727838045010463549516766781064389755057785204227309351653603619399871029091731320023243809288624305223334640945968116305610916961712143962349652322842170422036485919677795031885077739603045370059089965400694881516384100056513050783853986842923506039245811513565552901458366616744445979377279735436675897525645143604930764052523674908524336395017624390426490796278815397047165128447752433793898036375592456616313404204719534264528265447948939367298623787228833553802450515166968235310359374271834325005984887106458190514671907263547089875117126637007172393295719687025571196095150828523084825091376255952149166247861292783341016562501858675087015590919613219967401939779218543611851984278649250759060048061545874515729671432953786131074331704648490260296038423474155174045773486494063125979397220968701983633908129292965563946492522784023178804115490506099711003204887863743708339768533015069648406734372566331426949801036879725284911380321410581381779952242626086061390379145115259867862201238585335399354584513155665806591337646015155160503616042432095964636144277632478770853112310603123501507803360183216882616134293764704017609640077936735639708813894697879213936994751775130044627715357771286012303970243408858447090209657582211298479294173502874664000443331955587852450909295540827495749159894574411993089809385189784005200665195242117030553676448698520447591841680294598972555638546130137999904598408673631411257816845809444163955594222538250078639102802782507119163924738025488693924557178751471313925041470628831253391815485726224727685027460715206781517276607880266916588424104957655039601697526495248009912427985435142476554614628639936995133426216417658057132117959954387883230662087765658642403194263006665711860225342466743301219457000256252168013032135210780485855399130280931594204735182487069723962473390846410064175014400630471775974755877777154327752544095484374647561956616363792377284627951625874789879974408606985577456622590462147096285756691436974032051519786246946535654461816485060657440982304397017841399745393412956475536561917892904492998198810906859950158929044384748747661241678170341300486963334394947531216808966231770260117157878767916610738626195431632344285951008868724685852523904009846284006179654917808387654244617323591032202448689660520419066797830152870631037103053115475330875000982310175424725137269155554264116800100444576254477589890705513111027684606898041133840160584813434613384276992047623660080680961319722917474165260940823022185974802092451205927238292297212970708333091521344463079810685850151465589427816779104560942712629100096262070103582551393237859110736813811846565140822031262149748715013126153823553833998554967021964584185789491536727513631988596325763971627132874035386830478915526578518327318771523588821008283801607691462939602209856731461163697164101828104374897655013283405956734531428313349499343992050654079811024503218650286564201897213329244279590896413518741795944103526181550957423166714416370588199983280737881143112722213351367855876278937580826668492886400040870566841453957547426419936003116270896867928466782759620302849501412424475782489390504159396533150993658687569911102596460826495517543625559284818101445704111229907122851371891837936636170908147068193128481906526902870606434166021969115080668918840353286655896863400639027399185771774268173860332623279397373272445617510020835438590785023673761147133923947697934327266607189708692812098977392855301162163173230079587970487679346351640602489754769114506690358423882842849800256592294044403983467597690022261772422837946537860124390826097307365453891088288717961558283238256490682356274354320665442595708170567806783563706547961762810943213894178983785084080077919703053427618125088738910592430093163914043853662211541985728058046734591252914152618347715103488123407010481527184716332234731105881010827088918146478207386340555939712886306845879886368394617441445743076835182030383703200472564240034430622949725641682197662249100079880213367157246972821191143051688586883434400348737311820841037809790039466582530173745917321125097391341704868584103152166394248676432183821938641231076763485815116871200717679011503538980036238653924838343090252865130278637539629832037980352044775794345887555538018224888638242328353610939939175703556020967776615372206019739030480132613449573114863525677166633914869512577668450115810081060631830458544230960158859650830981621667915828800274182527199257015404496456148562474514989754271968847665419578103426263153994271510846718544712151196476755016603818639373224110975493242774597836331498809701058941902807358806579363009760513707234126028005349467806573076564901656829657406035915755199008929081579264801847571916500482398428969113339884672036217461894724554906816563334915301013563091842361446513758690332141496371816211278406472457138145423526493341460529502611426037223194662385653791710241791902896420435497725080668046577294311871309651277894531434509132063611658676652718314481834788647164264263422541950742143730466786949532932062041022306190093395841172631601972247104406482770524476722292939779055388312271648439687087752956292284265907170050475768054066188648778738388481035466643674459677168841463835925791763058676901116344205142722953977462965231388099299736682639317438037880898245334889441878107437655461096503366481699987120448987283701210541429118940490320017054318169403288451526617078806750192364381542909703228603093484214003354138750681063729450544302703881970577183451893990515868964282054430148533370299206901861648941793773405537659957267299525511669549479404315967802826761937132262196535298781953208986222516894837147769716718593480367619585604498766719699901997199493246806213739774063621114939938706040885965907156990207438912593970074496292824715504648070371267539227019968870783507980824501488679752997465344107036202900141525869184452551517241492137587232644056829996927652144369281554559272516211509215200482655157187761254599356060660262003005664644293516213089970188358528990125734205841273102886878179315237308239239827045811465845116119240186311916245057380141000593814729294691624378477567767127972535383520644772877298549142839640255101109942025701601280748788970998078277364925681459986193920944253072040311326584653169625541657070499760071716853621528941857486039830286226466341844529916196198198480267579007125059117077775419371202834084605933123917316987485142177535948335635161156346988815177940301462585475711950725395069811411845871546978571403216986409544359916377967394964454264005092779382223827808673079005693827649084361901177409040298599364299774563606341096692050594216619466485708500996055479701541842410431590682298457760902111987159772792098095506835679779185952833288608928856709111501313551664407544158519707985567441520255629838072847177841127874974387198229796064649889696292053203815121800025647120277726838965240567120956427451309481315714436976290405217287490235371322446045373791654800402176328280815480978314999547105933716770368825242281385224736782767883287764102492630713943758030708083159030821685877798349946456255732911229162599742125673011880980382473127073438656229915502594218754803121614713603846710863940329770228875345479057469175588581000441032591139503009497987774559752503258785554489788108347895416249536387229559931397957863747944364217964813669622214598294382881523981860624439248570174806876413575762710777546257947060212910879588975778141140979070800523931967708332262033625732723936706358977166042388508407442070975778736746103015250046875278422296393325338199466983542504421326963234805404151876096379362241500925672145418651488857459408664752249560362868475116850121293674386111691644535338259562452912854617751379171966751078409195980880865313528944273360236653080049670357207890309110752533922543781987060624555061831212641125300574139780421167362825939385642727168680838304693828312863978646323781998669963031840854861574235708035724887695143685489363039749633599904652715425727548212060441719471178465031897839344163622427160013035300642994370387327703031850325438297709902432644268499908355848727378922697109883048924360292968249090978399201710362088679053838717575756657152613347084856998334559614287918116228663589897721191299240661924802818829585883284857260906724681016478484366867219745941035896306129842961786968569169001739840949144209489088410293119894532561130549358518425192129506541526713383516891927768683911924446920536846102619470455528953760345531298067270753927969639942572922250606845229503409883998875393971357335835799260607655678017693585294003851391704507480564113398629588876366770306405295565912112395314932364329586937722417489810867417313276348967287223498598672895630949521539534805802423126523813364271545368044733071429551320511498337755360036490387465012176878025740253345520256143136762491010276458449564103974512565073527205822204960719163145596506622316481356460594862441718719973159832461006853453113712286867999451860348053405666516600905695455616263214337434244776291974367916185568385724967606803282138058610913158389981791106090576368293007465973310837895998808263897848235605240245563676896109774065925461873318066786804011835126210531386873435771458109542990832461435170395376358497955289188584159300433796289826436134878513824435759602343204131508911216982667207240310732126355876733005232064850920816315582395315207742175461648717223705535830568287399344133593910432179973686208607222914440065600262269305207162919262195732003284962028132762906182650616077946390263885724196844639203026640435092359362331468316011323728757499361641074415293806504606896210519675969355162378719153392418319232695722141236135218730994329654543331149208037947107150395529245278633861858571882129982245311320019750697599590475431191710418152801569502119092617784026655257047528923173472291599600285646977049372096687062650370362956941798376444721876764257534094235695834870434963307632765497864513421262675022660001430309519488192092195062831129560419749548008064336946959031279811574689213306412189873957506817089019382889448365260376488534436451161845619399972456149785774325991736580020653008796452493190663513799850928664105577582107266760155248595759070334794215036669558137397932488145540227717005048699335433187522901638278670374101317837803505233337718274789719946325114982513383668194936537177509990135494242961087972379422034952328605604830330982216004159771480057071552829018768881533320887401884680787677467975208899269955482719752683840449537489690810165198357998590836410165805244335542029923606870023680114348945188430396446115223830470747153167507457932695173915420215924887490950745299544962133253342767002643070748349052429902358388980937014843058275440807615918222278438071767078407140734665584162476190579574328456049881832380877749704641509118128844470768110111766676303513944196713743660544909159866641570649860325757493557108263956225047617820756985190560053145661827128076428788765353718315421269094957382697911551890038510207360054948803804321795884422877672485291006356466927468429469483905531138613492828899181543992818500487473326373627711364764813397863105048019839342240479300725724686162145214780595090065363409924590141625114587244584061788242373143928418983632764335566423521475921620156042703199313690452197421044817324147358705843084883750550605671569595910451994679565934636907701287567227606592897168901102194967858902529672453792401733619185276651697401739157642639256149478273088856591559164755004448240172124359738432736587757261364682915575240714915362754711067578860675895564030251849412958483489978342802155751084362515959967587817739249503189181538320980301706882262541554754215922328254717106125510524185840617806219783016185612572434766474457818581066918179792311149335815370280909649327435639378613353231886932584048781297822542046703258916297625543106959898450432753587132158256510715791629193461176422506861284243393299195912909396084511322497419406524497397561401170574923241919918489456376322918729366311352151836107435724663970729773457379376584586496016519614821074174929200755058593578735465383976303919409856316063624356838367067462129375097707590401493774830769003011558273452799470363052127546736938799724206734843983017066402585856728432229298392947291423472160065166968971339003468552524351903732236274451583119113852251582942887027568764452667868592383563915916139450478342725380076212245849897759695780087790321837676969938380760082783171636013883763366995457605652826356962434030372263749384756309548040021345184403053729900517281864996281702509229850890333079550802363626456579419973236302590737314739607006258401987648201098139015778786185563962949203277570071615105356837437749668987377794315688880311284806842724823770609916218490852127463815925417841390430970412857518080614644607716852949208780205198427729049795812851040489533253320241413666535026483558342101998333567474868097722122236823025508999653908670595590037532546696365915945033202599123541208844389327720630517985539762243212638479146191728721571759151409891049987341208747714403778288877620822992888225895521874963970740817097231173922022833279459170615755897080064801574242761823180623240766837347007098235995409721443618965450402036674736390391683747548806447325725624769841699265450404408015065496989642432133595197084520356511536381705706935418319144737426574367111344069732367401405588302926488152301534905467179172721970481743845953984405302314975217816978701155767129493201440171367912442660877090971205009917246014937086576661407497987005377923239107522239267905972894875084125011851324782945502157730785296144213712966724357936474727358735902777468857150237715553047690338751339849463781205969997838381820105582532544071775192552858051402855886139442267537528749994696649930577208014423805824450450047337095303987429316523238677043290638377367887601031357617451928901696352219714450390312654639500387720651720539554919288511404495307768472983508442876046678327250603493260452734032936449891931999350218648495865441930668668077957410941671519488424726798451362690777387744360717505752393018095460797297550916587389293865111466864756770816075656018685071510517706646352812570558745375190491138772480473159408711160622392672149582163332772698048200279127158752505575869941843840315736716364760157941973512932579902904095840306527200352937417840771437300485082703889853193061323828811530303656152076256538463551505115255857644487355292358070272488962380995918541491828648116979146721052929279299677096492045151169696379706707695682178228980003089418720647806249649335778741143916595233022689734543805460622666468279704049710993295673145057508375040022888484139928318329511881999239989805243797627108651205434460864330055547378510348600793632421891326779475085480507324086331331987865287627255717756088333708570614942318373531295051304166853644328830728359634750063685337379454715838040634219895573263406127103270462679784174861537144416814032917018183867553666133460211942052502526327691543967780231376880006594739561521438556673362199703543042933373362625654450481716341127805644163684595531380194096700903215278936634971936165208335685101342018013642653507313246157101078558553248109448241903673481529928760870020946776339974711522143907361983442198991111563921300876098481737285175026778471051032260231091623235071773048309394614670485050816415322587493368979200488903621445388074458351812324256191217811173039821895448384282566069051882846867360610080948999505997443447713610305383622298304359518438141051528350208961527831516204233534108982369310222919582771032292131754791115594869860194796953178313965899799226239099931886930956321824361975978081632880276661103231246382331800701850643744819967926066100844330512077125866540936736979304810536651758548858843627561665714856589443973497845831916518266076699887364776189990983145633328178092085016920918591479775357518305767279690756971988426649193816996859633860883983181599102744504370611523382575171606892553136390582051990694343295139501900373343976903232902125077232427035178929946314248832052902264459647990419665739563668323780790314614391507804797633732919005290653847181470194645714009568117519182932087411838845488025211479178260804002448683611227016869201457682036713639202380958270045155939474083106971227944853773068181439414927037159413666469327231226602180854062179790810901083887484334254379934304864036581428771216470597097571197001362307930328705298674951540691055355641082653277994184084628914644860822308411966261743391125955017200015780912349016535083369789035304812309862067788009942255157085540638308122657206676272607888289888117196756922084198801107350195223370157413537761948292828739200168426204922714107531795735791815206084803435509471602060476614613822483796702270946526448550565072505857662616477026814553338947223738741236278399251224966597426797160425616248466061044762368437792816165930674773962159544684416033534118397829433322757280019087668575218407178278437215566728879698707096828135406261691206856964422290345821791479855793259903655585516004786437681155843756448227375649795787217350695957877180282241139679602819171438205537650782709711865892744306041571630621747236474245878831984409706198757243276134723674408848781981452425383243839149503179469869588187862532117465755056607864259772420486177332069088358059026391638921174446984470468548672008742124000703103030365089771920333481505324720708211214483968760848872892728998921484146300858998546135072026672953503924370057058735292032830094455513812826506093017415512181102138643799591262305791858503441073746401332526808379848433721326719790547231756560787886394032945237596469306879448552167264759650990272784036813693579522529197637493046102495873580294566762400527948652830641534321897194039642404229834265419338321956751991297749387226383669228861859433473655359186541767785297354434712114895710100190272637721286438041520829676698070173110525746272651198918960747029721476713845781979303857004442242365781300831046290422259200017824742166203841887370631033001732033711225792043181319903437758769414197297000873682736467139532522326720922398375500947004447445844684183086926597377692325523708397971511779176127993602470929208195620550448692618761754163325450879219426255409791081305028869442256429792184921988595178775043483423560807824598829748483365700130658948800182890957398641206706514408165969399272358650292885987620410472680848009059711617490346663392448370826714663081775031830564655643570947164865266357721197757511980677035087894686747651496724568834066019862902465910126588918832003408365576262726270992074215309485876805768433212728172205944997955018122748290894275231783582599072875197504925462466846753979492182547811606116850003283938105365386916060923308103257026212799124948310838595344878459199625209047585903179886165266194041547792075373606128675005484988082565882608216793848935205839650522304348858432056097388871593611102198662752333275017155270272865947285565372718272941397014000711305654377404097356615792250285800682086191172823780414363385172445647293368547930445129192372279797741939708760543192004733793750090256304652814303553137817426456905023878633261813923824482984349349142110966452788594832850331865527056937641291095738074064106401710622566254607817495909717195581031611318016836691829318180654011729159713466004943710612761205322730000291176548862451569403653586276812207407253611602904467342183435754285062840155052251574002768936490892597857051104755475497810209455694208078246860304976576271208374554925272395738341674544236815496803646665654375907497656421650285342434494800696501099404463309041549322799051831669484986237975693639767451004615191974172391398175601505363654736697680674884305572330478436656133424925145038203135852799076291998550155221086020398559944012548882913000054127567460372295065520269178312350475251675101319170509322906349005005124340685492393389861586568703537764844785673720045145105831955315126326632716053960070286899701913016571525283339527141170928144946973737822948802215455526669908016229521961675893467069490732527004006896342617884589377141838919753455991463644633076437931428827376485608446762057518508449891673680349702908326854939185203869488892034615311705746818943625191744977741637288668493796029013384801465745715673776322036026159703834315485288730785865470991626631216714271202275598272602271508671732526135634412507110826343800949751430505002293657951497975971179179810972981937192765135824310479899197450529730538118508323297382739241786721877916273903013511114708074492222917410733980953985925476505687329826020837310112538235344216239748925261829793442243943804899208451664769443509628735982022645841101493857829633911376372468024882159957920868385989844039804319125187198084135638841215558294194125103033033538691370572057595907385069387643837636100578094277157285062767368168514163808693165798874883367493979768277255289510713587409134317999964610924242855346887281977562584984498412666281972075627135868565646353162322076386572007260832477496285891359719236990444389996263181137870140747695919737344295110368971288675466708408154236081790942051388277622327237328420154215454595457210140543320301408639253556516166328750336807413004047153160798060617566793224028864229359502207655372371122396267457281956552829459933495874251682080509053725999629787733445169100353595380119766965729725556966890549241964203777245096053937721626631896818589024214045359864507384617141406934063587059099253832193018061779200483710889283320481309207263879492261441309701064650394880422112744288552354252379014033991908510979203779939430854470463815008486440866687805444891875914923250753146180605868022054937783252191109878864460205440779130071422508852108710362028445158805510920157473178325877911554883419903074514475890469414733248982784953102407272892077549959500996821491875746219544250788455116005771714264003191209392691566522944067417843652791637963937990894478427244891663474357823791371677384838652178692019378159298885449588464114931012961634470036366789186423883471749716980232483156479709670247068366472796114383080675308235336865119682403114130905696500817928244749172509643550977747275116175676238607962755904270894817378939023422445995518402977486737010511691212238347948310585220602790488939202894233848519594977575477950802278263864187457764871953519010915944725652465323995225109024608195203651354355258106489693587501570484551113834368322804508650521066478583899531816490321553348331605692266910943605320069473336984013091426624501257959953230334171286159826274328589294158170659808014536323119840483577742479063773453572618768674013070486155617781540745359486858416494905176729633329070722807443891300581630071996598625942171716293602364373407944343712110047816837541896966957691077039511263160831294067478887359046549048231906839897942211193523183435327395946097873443859492280589355339068076245794514748367462084318789777359018102858443271513912022923867629520868062821231064788396188363080387230425001428953734043610703223780020526784766391701696908028339666030037137641268488833460178444485481953818724091843028388932076377508014298180685193025964274506890768779494752274917344668522992957275821796255751069271654057110701364338018326107194124111120913889481002507009313252387697417436980067410694171295735472002853329170810078481739787723052399569784915024191542529399057821435076050926971853109503167035337676797245548135624307840259629736661159625259590310059585523237577472036803830445739726740240045012225352584520409940156137655905925749222704993052331161315126601052657256920801077987056453278604314685585211473506566210220060226139577937289149244250088903896604441414657796940211259044745263792364747362324676191810466599814975290495315141555265006277942013852165843294892827533780046049627109313755894109530382110676646281226826915016442377703892844069609172048126954105158523059962663117206906269778676116335892897316420244420191938612492160892330946931909613353942842681946448589809740253151468864892138784591811692804545095918997345455600046796021778175670419762790483079843847096603559619046288037372771822981272950428530110199541006809522664714259199380247948464755841783531774313681178633409118996064692815573180804831596325852690593564862689326570548944262283221122959621781464795038766509597815623828345673619423736869209780316762951477836822029723452908874331315296375035258442929574788335376806576270295215419652490106250799513559048197003934860469407474942839975053934845121370794759110863600261648958332299335659906762133964475832085239248791360348773565273165227796519810575892108557613653376624285560872378373510832425764249768829420558086085029078718448814735169124675275055234006396174448654927959188238005092711560943579760104803762992019399569852101353461429840659765773872966846953564155787026927609973928981167789441000294102120404819769866781336559248435265628796137354110865426553787985599099944972369776569907032490405747965765457443883548074005903844148933452440131044787847301264026301187529231740847231199596356833690195574316122817544727394089094933015048257500539400393915070029683435309761433945268101155262949354606716348037296595511649074876814675766900162418925458339948729840761391034975528768238499150783513514118384348634562260349906725119871348098855647554828608286863938044442556383712225166719895108863141035018002962387761458956754143197192974546174419762084832463822908142887181339028912480381547122514538055778432649487961840610043073736237748768623693599361638838604088361239116296275858849514973463252926506020615357114606637387692346259721837676832796036865418278414921372420954432050566083189916966106863119812415771972674622481343762296403384093776126611145799918699369871953919961908034646733753297796021971520171274024853751530208906260070837221227545420184593624577525548163413402141697444629057466889196362968476264146489654197343264559776209642868860864634914323308273624163127486442477782730299136787419729073643218897428699554456760824831842608487263593536246845787950247062999917847198491743079715881211603149889800087318415122018416571759129359270550955087941439766645771937533489882096330246922271115705274113820068425743903267534271147984400560397903792755842114799469036773687938015668281911161260438806924336719076877028069072142168424135145409488835793722163246239559284538214763724791180089933915615729527231081579534229399808046266365770598136090250495960426674873764811011076494667624304626322856415464074094008964774026297090165633771342312179002975343849872982487526754143795765719543404956331739282723837560189647925082886061091962904523783349478112199865110000044722495807201175103009703300847576827708179336896197831913063337421472400746380822147717482656162361395503548045194703857462833072174050239243731164180999974050682747195314562560830692949057720245469436222747691978209168371650747592740801649126786856846076392768932019834557946438091543255250376460493209370050459173876390954175585612097412171459319270627866867763451930620064149019238297674077044275666019320959316015794650204011427078310999795946263755810579791800465042830197779867493933317637738349663964553304921216502733882395751621974123246635980245528465803105505609639201080347674424925124207121446454938292992467610359508270858790547899320819319646843220714578256685289695519101213101376029830887913403368891322997715194045821332517007725868068815552085535005858254787554855605107392204098253406156696783412788113881149573184489151996323407851035949048158440837150378251461133200969320284238479570222978633237458063162140765947336208593099573261053777804395156770254453860208695332616336144252661766981733165165032442120501451682081461467710296260790344482366008892316642966787323693478474550008396836425601380365433723699665005872779307332576568525681834797660924481653448288058719730898655346223964941138698370813872377263054786595637165392173155507115900254662754331944354551356956783075400030203972045758359633435470599643845155793047298783951246358451560680747082529007830491956957796908008039431227293253180454004306688041091442800131682500506285547611877524854452038077095304228460530929334440615458018204543735932663868696598540965105756915986353376694260650653242291993612913990646260996865152849700803006463346528162623297373122095703051365279250420457224711509650715251186469430298583064666928294013850843944208410706942733592454800907945278054889602016955349682023285958505753450088949787878044375914761039342903954011318972090988071929625201603113112603202003165523889776414679662843861715926021311164322637742584600595587223171498006650400998587775579495421507331074205041434862486069868120967762620900122957836788773051666831350451427136100572499645616425731113502544820698136242816075990283185194983057653639198839963204754606968582292181981497681792375045530218382482024801912766932301364988057662886113805922657502195212079928934891929055975827965573844054808043012064911904408380492520926911709598472973702794186312283795572373762690413170223903394547621458755166798066857582464765364984622368228492555337995638410608851323026228916113451199017086219515218701957533149804470766400934396716113766121627863493961417155586751968940850655668836764362398156949955902176171484817740945306450343616345629954560555768082130923420915795886460587590180360567335131079314731327687321915217742483145045328174218679881005243656486378659775600928820211020568904194422435560568000908644824517339601938509903159193903157744311360648765774682067536340068626167391637615554354578773272959915821005540614447334561870002399671203169815902171577103580114311879733322554081265066206682233105635731734591389193875980060114751552760670478857781805859654316770232556802876057622042798666002802209723292206247625706934537375375284567127371790564448669012486605022325813403218396136001584146440661250411416041012378086152716276434137052309853708157346470612567561940917859371874966193313589536833797204671260854867075347839081045325348343520594822331393672029555060366346010924242467173017145654539779386257617438435728100152780471304456286443038079780263662668269729936266668420732823069928961727078840292280562888857067853797594579880573873246646811109905464136311770766417843738073368961906076504983761210871781460815258458176241450328120808699612661712753361518143854371634477738636296542538760363081622188096682496654661635810262165531663593780461288620429374009358399124591431523364245639061451246180508586421633644515921103839682149199241648077938056842086845946274888589706658833759981892254723388305401429405374469194901823863140775342121359316818771617597368509638551852827588718531870238540630338102016910901830037745789567489909720656141984784906771290170022366363600138241962746430675738171641191534358596213091132262833204123450908131652700827208684229336148703489118781083116618887292543017909027266241471975575084903462321178244344358120763271073176151340469969969830743249790577281569637374968211098301663477192695740522750317910745533269752935192529185637053610837589463118473011794522378828841622502165591145143448566210371406381180016078124825750344580440568190290116088166349423197589823670141861695518884150122534351906591546555924348788695022503091310267202824225873927551930167962794824118725314205298817715866265864856979765342133176004005551005308155143476356821024928566596666755839510265439145148546337660068991669502036661721788030446753260567278767970536141909987274312430758303822553705620652592357638338984346647112696244200249157033850008017574563227544169087269162508099641165855626593491659777847767887649596457279510242116954809528589296883404803819946125968527932144140250722050180568111646058090149348696703555112743641830994561985137718845737808070752186729502507519506880804416059584318243217478868839132805241316421780131447459988474331725054515979450740809190704992170249318744334449096619984019378930600621824994752041243482679297311621353865975504367537020918698530812191546203217893137263599458897106611101986573255318010090831193110043914020161480978887711836408657538191433980689422836999457385202629837259523480534162799764889833490024965059815007605199065207209299512777750176251914953640559726453195179229597762641773959204160865937215922085433815169664302440993565967376688856910114427641557077182554033477740177030583176123113241803970271089199825706338565315332458815433033893739127838096556163752866757508240831775655157918135242932935090673250115615547412004176388477553556416793484113756589803764381724257764286558972253091605476265157421245925094578235439539503887262995576226853933686322479713130401593209336837704423159055858289617799130731769865407724777789403785895778416522809200830927918320010738742225370691938151994794217393379067151505606261600141505822461358404002210348038818677911736069588407272341212317174046330434386844751512642085395181812234651005568466957288735495485730961323431789468769709209161077656994156934812785932238002248179092793915702655334868797269321520479270641632559063706231997661809334140095606929015719572565774373848264943473959882789944981527723642442303955515402925231335431229222687302126298963166797001132277216737995497907422246842351411979604761462630171365713121752764748708237046375751820720949827599532106586647524717462552513500055498741312458260429022950595250798618587298849146467872012663592750052533359491478657628538347183000051070238048928306049139326466610583482439230582668894374951638122803914367371479220329418403873306849691579883695151567787787389238199032973774723084675327619203839530930365626350102121174768121225186999302133915372092691737143620777308250460275316346712554461386184527083999330141741247683672611331617649400420920225782912669644258292015365366107479202213889404305528002942241438329989570567702413679098516427592134080192065722407688175704547806147093340672217366027121407528652561650088096936821481312105695224659490834712015678887647784161214352257396982710645745988508673167823519755208843953644206630588130935160089379109788063890047852656990167192189218153355491907279178641419005569873164535195471695159385814559001647911873157540256977060729903459509739655195789775166092391097633972125019808096092110860580700395445343455476153140095486338359957903228614693307594448691159681045226208125116585566602863313698597718318771981509560078632588507334905853737035592745462989389342155349117275565473854709313440483428146172639290420360198219654707399391589769267432887468854057889392217581015837176507576534361330402368734576104146861462002042594416777887267778147086100051344182212676685621168077978480141983900305011960893276879166315068127267337211911829177771506114034692413769781591733308835428853982197631675122069439765658084144984933210019506789521101520495063985040916580146836655425304875772156436355768084473540826199229798999265984100528332618350175394116936931095965429106416823081487963967901682816499912443852155222567424582842772416599796672364396191406666106992660868034059094005379117993219228777133756164735092153034984085149292964934787597653521671869986168046488781269081847063287494542752207175847314793210694733910773438140361413661978905424820021409193515363217479108546033643329622079646538961900824716759473163456879896818699014499729250967595493090148516878781014770845094501385981387366613323635753869681515628631616283497487555607413111770079049511944839685310363309176950146675343795704181844295926244692126267351996088613790528684000601261553000719418721443300431161204243553203166430957415923646600080292895778905811760401534147853163965253042566114504597058803789743443826868037636299318934636001723095780727044351528849616637249192510725649388064358562947653651761849072522851534359806084398783667575523636546567858338602144198359507733304083731224527139769118034027037179732219330870784849297423825089807395423784833195644600356225384886287097290577854024848733635416151979731538998465165539091089843797545298776869431431676198795583348001248206657403913411756746663679787137752047560847969394458977852942933067039893188478730934383698295699413306022378467023532672002649104176685395562802436023107388321512658804217357260969212985413198636094272524126118762059592202600461007171039146452568947567148604414921674816826579628586557232100114636745867308963847885837285177595113318141268819485179197810736356473036056613779379708596427065393230412922495006924018090575529618598592038885979762957773417931482447812431546528915639569594312687518422369271162241815502153477126775323165900006614197315577527856220531261508166352134724976430134230347838787841462511163428235353055553264867337008945490499477350694825365269767651963520933280898610420531742446321668610345297296599974603953834720674594722000491487290554028577645662662657834663459377329268877968626100796511232571752761678234852725915809243608013197482578657878359448541003523648063843769280575217053352085229640380566173774687177162237724314443894040466536744806972638199150999311803904386887890544710372751811767980012195635785889968662198132924401104195746482822161635009942225298140639775734132473945888138130115395878032364514569833203806685299814744634832222512396616338178048915611239371811767469792880929865147387531969622230895542973186483137692269313500619499003819234665404822137282752101036109369062155263844465175395478314600121497549264343782640416651461873271385359154343948387505716882241161264758717493179856136327784426715071210081404098443515005530166694339133155157904493669313153478564784729542818592909447362584159995281866304077463235633137877161348804250708346987564807865371987689121205523691187451064790960702531680222979988727660269734882590013372099630500442185790366208084170257640188209378167631962023221055282535245375928136267581675974406393864954218228022488379539761911230535346599256594606132070610360656511144254840554717793516272808476006130276267842500823006546692999211924872776800616952852597994890690140893774309720568835257806595743680131810062698801455773112568817717313360778266081058114742267420016431912215328776278223465892780181317736493169440650007158715465193054477805183516649928887693616647129606155867456636430141539802997931841972774557591986274957076982212778732857121351479028403721485442623521963567166299334859651007281886006946127653785939610747924004851488937801824928083638864735429383842828574022939725177312850584119243333165193074628543593630834521465772373904951328152637615897250796043751828885871102059849710488534058380696396146046827846621471250911056176578896907938373313472935919410070214670143888726542126717167020964433371783563841306567917771553687236118457610040658434476846388144211354073666284563684191239517438498043054923977356969436033528090478547568713417656644776349387270972898315234593979527075391165368231979750433333783520650681357547171241165317101427881476255865636344366574881629288421593446501938112672936606240344588814060127807614891970054577258977587147254180053493134600177223380635509004700500882007052896834700289885717285502256755245192758244954396296308454209285387097093740839570163465724966692588059672616908177853422376553245947809897359221374387616556297619387541923834883351238864928334458946993366952004402145759395738688088269739682854459409962135286788497080513587436049053309758893760410351559215819641709409883174997955335487094699961587263256832590861626080533073646303953062337556331135766826709258800737450810591651662281107644137239569677825208794351285925869130098152393768373852960300675143214647529859563680975227781099547806428263394682411367173232793870020487707184514447573853891314770427957703034289900565496679706630478930219471439273672967036675673321273853231512198881431972611490204420506728137159214782774466197822000654947915664151810638467703416150443167265160321059881048141734805200220478373301522721869931536920097629242129851547392527875329290248443850444618581699503315529239240128564150359060678950536403312261242156668350654178022896291106968826849350366918225370919971603114438183036568910540632640651464109167370722356049620243516085218205018880287853480829226515485371999147582172480912793660148407941893347160302436846178720363055873703671848257153491514003414825930129898160899205453030770861795054228146169016925799947435832029220673706940992824557814074730442954504202140436798517150046152999832903309685010099326811455806947676294573542900126520427974869475581873584707106551593221214676508686783119221384558429827748717286847776320960558356382804314875108827198983006414446213237660667656988009297146621659393693177800041956178248690166512359277603588949122066395863551312951268362016346161051495944211398594556057564484538225253464911208775273772588113876943726393616873569953582740009801489041406429721604520634660330379526264490830234900645634493515841025570397662507350789787764617618714592151574037384890890881812330941840309558171092996974085816239529534901206268657353535492973823139148414545930603754681496571304007114618521437649880909736698973984813139132244658789846268823892992643401528233879975279468575409876020303553041040956897406149124700498833453141681079128727621421580085038393056512355426359780604951367946665840239084387866481803724994125706795989813396204837570103689504320719801987383213483366005762178877423529475230763369062594099553090810114875670477460636551136589489140302852861231510092306443759443778039113052884862417692212199977983950691387866061357241577054949235686681836027568999829695843978984885852200110629709520508713372747124862021450750262337429660758167440089007256207707136675176192247036351830021637554462458082190624593825335226856302891555925740063885023400245424816053107455831444069574299026408389262985053150946066895684163469813296185968103769078916247014039969917788670345797623436812573677296560989926574255713519599179222514201984581370279903262245689435408747963002103601179681674934661347306039585936493012803822664905770225027619007335864959227735660218846631166038737313195401593426171839989711977174936299951067323209438591471028367384145739211910776684346468200241393542511433219514775793864921092702293678891186740415938945616135605920239935395013116591726566427153511638548796627483371865198018518373488098510471426298939262870608016504045412339722903543700795840053984956406709007692309373395519283971395064294904075994090579195909272443074706954457413054906722152456317770314376659606348589921265807206583135244850719974258671807834885121725128980109849741923552703784175863687310076984260608578402250745941601393387561187885915024339096850069447628527321164818183907461845329104287659454874827776699827316575286708319159083837523028004695203282823676768891597650621124646256876647108268316919016409696484315721869390485802707229020942564764794226220158733605056859987982850049315011750153558242073989458548168542981519016505838721054617729302073190864026561055844542863643935343985176191279892143218372699316329725109600852593859786436865694920547953251113042053604697150173732866557903601337217887566150207824284395177792560665963813356641734420742954888560811590621861772286680123415183733358100108956883830467488073929273748179904653702870588471729470090591513369288652888315280673142326456111171429225611534889992991852960918206725808881634107293665707603375231324464405202207967098957117616423748605167953926161618395168802643203184731420242785859293044360878589353532190654860751272593375741715791388603910783871920515160125310786083486846072514130125324050384950545659892565269578497975840744278694026678394067491161278607757498191178412770070297457345235443186223269233590100273962349784575642916183402874815373062102472014010933607783928693741009245077361835752814701639482428025560547177115763582661827458002700138151902226888952127273867129979524228137970884081394541137204265482417551750372398297461673281685013506105772998138521785354197072387786190164723884942488975456464479710982510080592393934926540683780984968696078319156059105557809890151457178595189753413469480785988986878224777643382076955276087965819122874462878131840759146502767111053350299592582615944169952142321886023208235641395209643861046204719856181408880170069669154577007226193825706674521356801503697029729937353170161083404034856557965650774732597860797445286928795722658420741646188421029647743317758734645402886816957121063004313801951536698989724180055024638991544391452123792155800627625304133638075049373352387101976789035271472263491721060946998322706705679705355217401413883546011824946018805535873836670566489909501237203659708690188811263670425157902890458246474186958075432421585365991538452368848264809303762537732278782415741356864837957053295337627559226258956213238564783404067311327217613518299843227208713341506704991362073710878464952738018574946207345526030382474103776459383604721574715427943672561147803697257323252903824702687375587417830696729806668472829999618794629016397716009683244622514185918873300363064518933839650134228224539409527601978920180135473278499098674165630919024708403085623653270454296773760964718992336728252374775720069453898565885282022309491381739874319661778194752547421057380529183033989697601120497602897677230767082674638915848951905579226459083214750459214995420603281693816926908409780891057755750186612837000350190729141978143182984994589316670166511665542063084619227843962737265018784343102411332674494735347977711926560820616725764394995751437357865826092110055777123653358421312342388781607447299164706205951128122604095846079981969315074578696232670594455623982664119315798421607024543473749111519808239992603302610778742216025840598794495840320938021036074252549934170451764684249963635767624454058760603784003850440587182143867160299193402019920001200405403785407457015533077990100329026671781468903222279208392341907902713871496274743553010610144957815584183967274809596901915848518863159093946427706898153993791998705165287998728783107395321593520839487267632214878604717019696615669465416176108273804930336758546352367660031302794670892670455527342236542613832416704293651377871955664534769947131481343632792632122077920847861038774914909164660765471382605191154112343762458141814374746001241303550092190827772812700315186715955496490208988076632620665538323653070889552078710641903383328920177399376234957946567243821128756625238027588400873510861461461032298609417135303861685912322533011339178537374559235724585157192937189041878107695623276836513995029854102507928355020110918889289912633070618706765812457095891427073899602762524584999784810883785894736773822409008368587442342212594074960700690188776300739690602068460177087128537135153928070063336529433516300435798278950203962588728599895228657188340065750534105847583131493707152167435974904861677142171967725536210779572101702212209052613430567547280700153449098158184529010927481521633625373768862451225864340185133518716110973258836432359777821265476614427106049074398410269010904427115177646875427612442625396212513393768977758560270404978336306073462327358307590017550738763467489842538340122705185852218955527951503170759210210739568973165506355214265803346161858532653667605012092499920480279840686163456923022498217383576643427075030053372444260498586968551976680775354230474355266903092129806914919634204818771507659994340724596747756210796157061324556715318126535279638520723216492629177281453141604768988982851358493053262558405271147605920049327080168875972768863258645765548813654772258160075115444078148808682535270870609960260593076115878034309569222739672792876753061307661897100153709031294155774326857834834330905954202659509665168852837899233940816774631215258047452479460748417464777639748558666815810099937270882929066978409885386547688808229081878449950082136430665770270492767637965693200897914844590660583015162517670015449663703980848847758615393815808740251391673073526427756171328181987886102272303758635080289559135526745885484386589258314506225715870766733217031741973298196628922120752948822061369480639763885270035015527117909334169043453037302029745529010746803518313630632578332987473080812178818995560200398263863595229952572918868817006264152171822924456314400705150677755729272430993840774231343652031626845545006342860287105675327037247867808751580099069646442392485599510659435797017140158341957617180831806418475420493459805054091438393338454478428724026364335842413054102943484648756841123558921482400478665829465350359485219044639199561840381605826141355760767385261088782425650580732401273319271390100890999486464229265315242747821952653606376741279385333298123558578799426712127986427468416857283177682773847002803830719394850296993638318921590912699521084532903014266444698095082600602278321145984647165318439695826613973791525553476438820598809851315555298170532247568316624763496032415521045446689107988525087204323093809338166970892335527531105870598959217595276017741439835825322189559796643397947928219648658158503647930789176304222848607620207836592426926811042088322605111091700759142185527655070748104182262940137009949722341186850086782082587151040707690240682479799685788187931692117238371228844368400052106656150027808652176419316791318962218723946875112804082524525710264394614268006028003813682675037491485526634261409269226893817369508151169568493506978944689113309943867325481457522709384744396408770561851078159877294205288817177951485727796776428496660148984457450641354472985142113839676064725907360310019570973817190664613362410202438168411567467422527462080267561425335749040274567973577763317079991496179285905355104301359792652225427926276525905464853225833276831897787256018984450062669925551567510556398320583487344915753710244058772917342182096057482126110179522881462358681668095216522257244799928379388001828502996250511231156851669483606811188608768263913948384797868278853600564070250093178348644045410148179444460603165380537909030288182168139520352767204677086015868978103841945179806904665571568791377424757397881163866442451736762636880156078986194809989502023962633581884909178013160494412794965381517091961783932232495023656257977682768855025013557860923287509680903600066419514105080267348904703670503469891215958283950774484781498403850102564015017054716933031485822683743797635896888294384179585135846898457889533932365439542891100155308548076341842989528498457477435713690110069621268798463347982281902271294740115966599866181870287091901881221078764172118638935655370563719661559846090183678658724345133271329971571949203066869655153258372695033085281294131343484598895893881762997104790610993806023638528742379958038572063331609294040760754650755052388267449026977213064550943066111245521402515597290402484774797787850793177320324842633184752708443983175127704261068286931898708747630324125912233650080352887713323510862541751907935170912733148455330351711350716648666470142271279293521865772071115439243458253500361561077994961344248610975442296331698693633155632415030699344569573955526777625573590935041588837296377978226651934290722554482878082259687698572698461972079038125677799496524216840135286321840804523132012194715623065460293692139404159463972931666052576231535613202507236780722636674383658450418715490287883054052500714877598924116991346376501949068336105776256921117374408592341448788703648582076079167147889314112991551933313014342569034881936709117605813162555775178591618314713603191838773210859142863210865528628530242645194658556643657607166805469164860023218516015103717741062082313160438325130041959280935757965465575365637186008467429247755200930399242570910462535845637629648419189430188862181425753161748424973585919994895239314176775378923406867576950295863442814150843291619464736855763582556351266092670492075285482183026067448624186050438749867384352598594070093388732990597414015677647670832778013502801251770000400328461958314683132917861426956105364074977540049650101924356884374656237922730139485645683682836311752458170717103443060289429503989181913363732689087168306515423840078583999707903828500002285325257257130868286680955205111511468218685000810071776654751775730529117501559808364916220659212341155366508673924534926133445077620965303870452560264791885605827528295994721623373746057110942691466771023205038116217846164795319650306622154467600209541235659911130556433810468394457462779690918098509137461858479561252866231583980224765245816322801249423166843554183901696883918958709874813703394542337071638533465102030015501805588395947417778557670490977731506752592947485694311811048865460527192457462865024881697917830063927413950683285906940324296716266823077245267600957112396483244753112622633275205550782214948508445138772742966807359982581536253103946158233233228291040137423435301709002330144486328115242191994728169593682369063086168044807650971248429521155391223861429210519383850145867316747576503192646904805218076193643204043973571052097064778137034349565386591796275448611618842150885089226986767050476191360325206215517113057687036629361659010260291775098067456423571403336561195942544221618098995338643944419560759364239925437201224263163687572782315451985784887864703248560268310771138923649453759099764228916293442431219863208152125639508261341394948519849000674676144736827064202783040752198926582040402101774238082870607021408099253560730862759125931367182589452304759798632303538768602961860968208988750678256438382515477618811086487688039257795469572661540960708212696390960159595837703108008477735301948535864042041937872898771372310405920575275440291528352492778956835624229050014019014716229092101071771045549111640465549155851956447091171170856082501625555022936287509516458313852590425806134640834426634146658994526849117781116748084678648170224422313597024381227314244347293552271212481649827367880703833505852876044439247600289321653723853561950064251409810465170855141940545967030248223171668968469255559143243845402052474804393191466426191803984482289427452989157445494374786089061377260723281651124863819966742030608398450829869129040063920018738389241528230238182010994696382415907559126281715970893615665173424149451154446320433338266360155272966277401810356876004304591961411583746296817607144512484251576096105266701962163783125145052799506030934005298324316432217040044362572846863167101162102536970366422481039857643671594194014805408718465576528921540374406478070631577973026011604513155981030583426246114649221936314658757709422450417685649243623935495120728302144138727414981193438822719190424451986106501262186041077365464863442271216680025268145947932321214754231373465658702396918125731624464854786161563795650973168082128536883857537021143888185898772535732998698038345265958053888690373105951956336482911333642208689519671249585819239219688761104529663144021777203690469205114963771422407448762439975493087018784075126686910812163373649794597965781364355631132036890662372161922783647737833168637810289434859943374523371456657959993965294306574226928021915173206592955698272296369980426770802582358438291104665052079478825353567791461515893499820610819749288989909228900922317820012798679125418562044963457460767707847832574272613443798071686559719200503804668035692522858880105225339609509739576337526612319144440410595434382872964703993042071528249141062343650928286561529392826875113152597710935078402167934451247312897134007205134181010990873091272672760929404728221430136116764751610282172474279685400121226098791898780123749718127069307226983633605887759039944273651980242026388673312592452677239647737607952091633754210451977893279005242953003977047995510460929498187884226992816807480983079713992374932322685790304451971011252516804641290579719757432310362808333377752473439283563139767255849994380117765867594693551769561103424636949521069272466438570073052906593006744858302133328139343605858304751674617547826981027749798981410025595226086894841477869417403478806091008581083903686034193095568625853366606444823915033555381732947069184008309796542603484809471124036336683230441582940543724766117383878987209046007597819579428733157495207001771920647743547086778674923439902656710487493672661470680566476385080465749457677541329179506540412682187700522471439007224268738297507718204046996857615046858678058043596108472703818150020710225473802172129232985228095910243920966442841135639845049943778988159696351118064799711040553629595892907900683957318329474744941966502502402993310955108747501454062790661909680981308194299407773386876602281585895142928737178886734128257737663958435630615072736134268048658485307254893702104111300729090512537991572963439164093507801380435794628838867705976086361855211682009596772816567472960524146953212830000485061697302281759711841735204465598563820080782493407494380543518182359939168263542760102006170409737643981886764746546388043857501087842820997229874334213035047784361462824765273793521250830354783840545071440420359613704032498021745120192475424829588945687537394981408625047750810782811011493477771547540641032478145097454837829123533917307655610402107085531665139767466610341792825243722323652887838085194022780222244749297547401770116262226111007964093422439294887620744388257254332317011094101842529909171491156568736275069341629077226336808716348901350602778618898765398010650724628738354986562641301260727085197709357328529271568635415020473861834046436253181814087956720487603103928781923033929541340347267501415645539650316747438236874322729066351298043347285633418956584921997567279450538202169252122408310808617444325461145531071417505457098527624574784705596987411938254905378553012950117882496875205507543635178886891897451032453350209269860507643134573110882847538212662545496825578259074640141839234204632611052355682401349329632588310972946114272683841887366921084327103324213749082911345550638082615860748819144388976914834496491050754347213890952665286838580554004602591599787920086352812821740528326888380228531722509289160489737285278380650498842071074147077705241426489315159786172014029953167564545074164847804621839339954098942845896416340084266543280081163072387538452605985442397555024196064981289702435435348009377343228910555027014751643872475430365163234237798024673963474312046296617499890591007408955907230823055900397638459424420956526864042984811472886858202306610984818957252048222648891969924882454467788650971576867605583761345169270897204161453750612137996746888910408544249060541749701067134464945366500005630770837722640527662436640266265748772529449470186886700698781576002528939196111796943527791135645855983020132999144700048657835728645526852389715602879850347872650661454638487518508731603559169710272010061487745345964714689506842704399937557187420208337563983422377394458703781066583788452730333059274507733959016883153469430517579089406283898067215140175104438046616534868668712358282017470902005283151492736139151891474660056445958422683608095922298010994251744600542395767742035383483709099693985380709900694612295776723892287846505468295394324104752372291721235373646547165393927846872045453491315507796592474435366788294804539632687880005516803234287428639509093195342528619835307310132762435301170314592609792045428357962205167473278819437544472426207475286710130674366453616639454786718125834530962065991212969155386476100470690815169754888839426269891945920817704423732589067596406782680933904040592311062708776789608345432284135916189814817749745216814833706298027465689943999836213486348666379253809144875500694245234775279489721733307454359796520182947555201341506715453793955510002776643933155856550698798191313489198818810063872214989053198919293030092066339030487835498144105596657701781236166868944066141858082595675530735200357743169555361803506392573762607384425569055624953636483791859365038780579453907184653733670618234491878671464534411421437123064841222835561364086808347527420348398609225421743310458907503445776885454105467602042949494284134807304981228919610663409075701524624866328796163469770802774141783183090456883008671394739984846356475959754584628112178267952689497044895067736291340301227923586215208013748752323640718489776539241248450878976467950857137198209025663591054832024354356479888444222117485075503169143711585727568901941783833091469162837065508618616699137085326164503202666079024280952857953280804810079210942860308127489592122707503728286949883392147024373947484197759785074498646805768110359296790971665638112816206173185017786184226024528804263590618383386729181937620499201203345297418217571905233137308393572521341286832866431570311127560084124021658741848153512588857484670572961573393239127031222379303699459483490392508874080824032283275683034775859241415016856968350804405179508461580694160145342053231055153176813230501269256366263047638740135152954107935524311474648245038371374294475487248382882538603566322618248820286403589817516215362200319871047551584850712302657364237443565297092928606974074820678873949137484400403858721594924110794055560244754310030868006806986228351048678001872003702065505928685713425163137313517078534284192186598495198865802577445377070909029810163095735784049659695194054414917425297319229199741487448780897116846139687747801407438009764760479712077518008976373159880979991218101155122611604259158897784448207599841661945165676580129752922656444047887281171019534127306218546360152226441712510871309426274647872828166634816702897760494597444911075585757472976014473382822961288564315686383773058934692298387961585446896165869101054198285427191702411256419164871976710069678215916501404418818279013773500002406434875209309516804435677360791591259299089400163734827511267422116936481711368389085872269516776733960729538846364065256626689473440279505710411116150666976418933018011950328778705373349257058765433298103508484883160553001575130582704316270506814488356010656413141569581491125887969353605213293436606956033174012477778599211485672632442776395753198893122016101759436182174600971389931529490802478046826515778895848473531510281356777923158717071969088328816745503558145999661966236868675140195852705689779074375403044507563369310574849337626786531679036074293366172215289917884699761076322630419033919520310994720744090620994400444895886826737522734086183639673081182763701316264608869742651053045283638148721516966510540857691940149768186268706854852939660107632122121325909688835265285776860973604074289764913255983492271954227603189094078987676721239209216537254943468317839516286899443835097106277793986291980889795782471763504636594681014874766635032739289593816241286361064867218549156555045567345107891323706440092267606071270799024823867751428649544569577181374373338422534616052714827846180189437070700369592495691297082307037607452529911435507252180611607249530048091303376455079813451921591914526701102393852911506302176831418138871736346373714010310931652764722807565080683434358957504934876909073587375826983729273897470762940664985840463432355485059456334633446081527079476549332413753978099115146490720250574339789438838768482620306709530347457246888763789150589638757007444802339639454369040750336915062659388163689735160658058294094012104061278506187691417437704146839490578507487645117888229335188639375440154579620142785979991988346506433722171762317791542280600433614949789962522012093700804156490179005709438512254617073384085345884514442410772329916030173842714461400800712303617752912782861509679115748372635973246556181174796569545545304735158601643835440661695916539598907150157232387205204699570879059539248052872666768630746893230239786442927462005513271719015764684798054552299510383705825305092016573163033495186744488753222730120951195293804989514063011230433171105206353413265954611681383556709284495997020623303441849026107370182714762813337576184151438895330830357211950955846651238135979219870003759092151407848304657207410791782413613410784029847779141640367187222361460733809896778323586016394969528552460833293516641455690655209338835912477962001469887273410517258688964405947128264308705013885419583330145478299329659253855655648999806804841294776159580439148701347341077536364219436275261944513290640163029585397834890800486669470090049606332030618817956341496463655134666633169520048992680749437291385747831943651828132749380972204175269922844897917089218204969039778369885432259787706185801398477472200451909501170659882420843516106145350438775707216762892542225265324132332357913828566456155877097731143179625233057875502008902816666734207523408680626276128960144941086160861765372604986373031691526438671676506490013223903555517478160925636053655577816797674645803322151958848844149920570863275068975791638765711595878314464850992659513515843350249948419889202195522176428962602880489779739284761263620914706968863893208276839290375682353384993188663762677089776609819714909644583171036732260071798857659184579634410901830648339433174502070271203760884878521956424499081183918932836937686555990753395977261974346567783173196340624321784285178844677867318270781766822663696710349959042197227274235056738067245150731911140226824623547855235474205571677516748965650653610409082556365974128784946875105002100364318691104659836163781842811527160248299174821512538057023911837811553781103784828130247634013288850669110295536725516343303538239054009619760043090178774701534227685982488427707077886618000417260436725243804253822149185453644983246087245386060392102239214993677243483700727509032179918775830754318415936020127057608965925909627208467918887421039408403170116737408933589546681086148380462337893410850663017250591099482594456334589910026067234123749698370339018353895356131550868207563132070676151805295147171274060164140460962393441877094911147730356674799742812611765313029624756894859999035834744730401751140425270520660437595906832235477797309210620734050955117250860898489414637103811106915858327913831095366526151847298884315310910528498475632033162455797235792054541745429063987712542405687118331872035376363754727512359780297338892674925455530204283708244038485765103091212806400449038076910401341523030151127014361975611124697705537332314658865489881173577095226125488558799888923131465322290823646725002958744130134004837388710030559814757161165846011161961083200136319516045596752759602554849823694802034643267662049988729059701692398026812964472794360212042003620869234142279190565685373576005417819772245433219626793452669890495961044923529601278554960859625117849017702212067603075960400600364764816301830878955403944458967131901747300146943579207414585734434596685993506804549922825462667232968414374393384470009513874358711877828445547557560055638737089630992145267360354419145798728790870948604202660561500626604204959028851121938214494582829311447853500209994509713070658251793023741658031234797555670265581532248020146936442039255445081143957872437684512313626901004118067797054267725260962979463602051694008843740609933960918167284056299081350349217227568515988407549855238814349308440304005197407476566916535568974246269736965684719652201011926275523078933436742011402858235363445086025930277901426408293944437866830847036004514515406350221305364307882295659656054953824833404048437256458936203097852282083944332667787297356764312474879374472444474403723764950574626245825862550826176398951637940399918692359605554413503569628927973620249294538389934348724528995902046866018733792288963104977263782303831730711169536541286889555410809690912568104327250299118217411594695940920283847502875203281249823349392727938586963834325770356670622246354307783853338488619654773717584624103230740127622464228850681174613820781459237552877943576641610992002718791707491960968344709846503471651714991925320036965634393491423604019350461976512005075005149252763180274959108132068658826919451656239106142819878263128438741281023895306104391855957365303806105236757716366535062246678401779085268677989447257454127723487045746883258248474627738890407375008289784980943769047211506794848119720935242039402222306793299766914038789574338167571577018678028907662833309629545702032538305621510169590752186319510771630860288306032038590529165577427205216798166693198208655083210709814721597032516554754333715462373565857135144972167309175826054328306958016922586573513860566266288843924644650699552272104770811408900845156875567155115361861535423871603599007368123041473593311925485928047468863527270828610979699846783736913461654574267138419323412172705275820525177033532646601440178473464623613391498274397667839655657865734321762190161827325152154687882708612067185086547582221434203876612713452751348544363709398084533072498559303198130890986397434017007940480144539645266095007430855809914653342462335210126276751890957919938580255310942466772027379944042804041608749570898120927631128347546117028415495023317576237926574931757156138473364045128701368429866540574646557313166706662239282016642207925601329025018361492737606646907297220928270893238249170091766892211948592591595023417218608564294371178292353499675143252837198191371794855658816224092002828345259924050088079143124391978439989491683373300474096651886653354863969055382011677565908691983439967629161830038597024258980320558872177303046094680860534850056578627237571045884137331582012456123003201847674581414408272303641259176402024393516811498571964408786901595359942664181643901262791554635515229138713582871289785697859336293154730522661225120710962694001185156251379736691151370836479292330411290441353986006814094357707717881626502539728899697306289348588405828716567769969438557875545243037626204384712063631816356908217883059450996183806246826825931999033934263923411741390571082335192779308263799423455249253738045146256460838667393700706339550728770838743739184439654068014615686329332201594616722541794959361481930533808380929634365803437592936414209121272641097403152652990971336778538140177958304307291751977069465888901818132685178730122656450571256255470684632045248219704643882619557178332879262651677179952682225668124000143497347340384452406470933752834083555421927418155809534500558578217614457355953991037895715236074148600236617082000147486227931760194669678292505390660189724148092955749897281493135072146950648273079424663759258262035120571500748654755408871798809725441425863411855410122206567033695158116435025329167426753333539974236608249905378520275124074142100789169786519888164016308628816062359646779855426069667644898863710078954465470309216058910111118384648375387015388949418513996758686778957914685058294760161562742556109077834877999575789615295818953352026956152525421808275340887284719123047798409760944138324646108649739702198027000880352074809608186642830491082980242309513587182047652234121808994125736365411282545198111611475052290885276298177801113892300586194700326380437456589157097229020908236094627536081512515662903364233133894678258600433570253234296900333527636467993392174488126033101361648948560379607437144239550616437507837400586684633844511888283160355259009853602981402641422340390821556020567134826210202242279531697216513157612798267236642277417980510421776278605528153950435318194215748467519414752083944620858426610103615771525363469704710215778881114043678880824422775361983712338246401103253602099131819699173441732026872863418398958060186562613326758724428193326296164888646677437954781503564092487472993929594572874701850394389047591861634397359343602272242367269932277661170786079122328545846746130189154615865507236024713001823592258952689661363276665772643293971830535819977790132621329477567610216563570196274223775678460801790904030399071151448199799910555853724395657534864373042702358744661900092679760112515815270409314790971642110171928889372590762165120634933037486636185741280089573374418214413337697313048011859038451176731634760898321071730922876885879900455545423235243087787196325491056506794936161446397374969484761780513860161375903002458418402916680175782460897678264365152401487677396644624938651106026509443641530504644648289015177308592750866741807838258156925187020180462381202468717333425885946886638282554829046579492922316979653895655374313158306089579632302787984453882532266733013049756050771424262547388206131423657735071884777223888039162281125858083420875559347061919884737088998604357717791096460313949909953330794903428956718967231565015781540258357274640417109547827777913855614822187995008993208205057583483090204173287998498481213341085561915959773139925571245067289423187621689810785789208401818368489456011659145262728189778110220216913079103664066933782582671210535484536217058504702201605788934191495738169971780771720877751860682226439747822406550579754547409953053272594115647165498604593452390005909836773028706764521662254804112154866639852274021281099106216914136562093883781383615332720523998168993977804906778100023887693015076780823636814310835690721385974916431308831771154121922054111681994619839366864069395315097528490114357146145290640240233037086127749499165622633243026645456530103729174995851885645416156497783210110737863890277541916612742109847770049741366816890709879835538245737502808057984976862527968412197393636295324324491745976489379518982730175846172614936718457751152771476098509064391583078572751646400786762786884676564714108519794923636797087149068100635658102598770625044329003612582222913402367730536944725428107208330430604260458358890980432153944271079823282551826270360933038481274776696480259118502721073396184184757914134277159534096892499608770352624507716553395420203307158466714376766981326510290952454966000528780014622755560425301063823693389528555011907685865568827329862452803322578420487473693473220784480718776123295089121990865078378699742594776266267575603466876583930522538494239168291656613615536634907397901230834453438961497180333732360209306802335712706618506951261458491563383462488631117244840467518618158264177582780118569875756637975544405985296614037883601794425567486581204556652928886721354331745912229152626996574158283050671101427689041200133395931468916006740155490133816040483210291824995717790694143714676572641588821043396918995365230836415037489064114841550763591434307301632862899341551268282201590556398166566704515057302495279135377954604130756168556736838793894753331278744945190785239693828151620453049091642811485899386093535633741302499327443855265851895327470589642875422189521802947435017728254116122547409735980793674734621885749986620274138549702164454477191351054204283333211549627994454563110134011594480064412186404317285200609323433471951872313993923068631322637563188168811151035878662624610382579745248421336996437827078361670708226740946759319173708285973673264717901437569506675979873460720635629934850478250677952489153621999882678875210939866153772273307167986594533544415489702791437322273249709755152011563295413380173112475213405049334143708435999698881181279393695555186296713701059099504863760856971213806315054713054564215542960676675832266970505929656721127340502202821954005138639101484655127809422948284533974904475177030209368509649457236121985500343448326489632058387479528802533769998953015282408487248980081051257991726663887990482651273413535301465085310919592247344842938205117650714045025827855180947311905977643462541285574037381315556497619261555494638845870608028322601003438563325696839832986695566821121038824271674067326338959312208712889665652085420325437166992770223532045459960246008094838924637088284890650486545023767594532259275010046339456467605449795039531107270593582645211457755059037230313112927693211095563760805723070816297751618105904634852652746438744623228311907566140998579089814643607259060905075490296710417084013164590510787806489194701794942645955368400782129188057205480886985777252254046117935301818086553978843694475744454591529984329490861173644965868178620494107213518160411520169726829374932317194618273253574936568840677140727869185939027646956981808738292559635164740660262214895084362575374902955170007869559041738214315316120631836982719182096662370321473196785006879864871752905382560109412934667039106523387941508597099696908627824485673895372951199046301354979792670257978428914945616552058800071574544551501633552067064738035463317378748872536216647277851400488145360322890910771782707960576570177783290880762151800652105029998126405783582605391525961131474413942200569546678774791690800551369443722611045147213599268295211599167330513436526536740714012960745197717593529730571391733853238074530687579426924822800779986493736942967705689316948375612426586061510922792897647665947469754022483998491909847312291730228931655957484566461458396250687283712626764286964019276425542171328243183413804822268006081263010599996785788327932973320361577571445782039248818609128344476614435155529531640323654717064269123635714756756859038166791686172758581783601845778296655302151250991478547347553315014740458058628726101051871028136390776327433276282136323035536246631008528996328586365631897901311967397873985647705060482914223491934310812913967915086177421708255865186881837090707005353796280066052865978134709144902579470205173889414979529567823113566409820719467466927909565264723128994811561670200072648092433113502333693960336651415253805564646978254873169173039937587049269371960180430657802947254015145667389961761851875896057709708837310542627198367512794051113992611637170577466641447117254396379265429184536964685517581976440222952464715282270123080579681160972792364542458243559194146281161734816868953444017865024407910855695424963027249125690479606992368124375130441964845976999662553780549220946160897155610008310288602169702280095742706654337726807558201439440546279276311319945242365112985750317319084520411319180837219187917452636329551804466732908629746491598009111962429941269012427769085861219810438297512594774791966393122925544389370014999127700226445204849030165205795203071203614864641914579320655126969463580618657814017483220494611795291133598115033378551469362060299462340934825221505597167955109236255869998091434688308802191466511164169934714601831929070235208772594960668077937637523665452077134127591428349914054610928541036645027323607050868140579662694862572987770270328804061879950776559571916259503169439448035754339989204209261282960268547117008477255104438503256796562070881637521310584745910150124289121880024524842660362638059140720269690706863046163700270415177577759279297507034707517636926354787292612274878348580272936272136373872404263039913686796932581189275879823482013380406295388356176053360658380481321240363387284503104688550307468398239386957763510976831799173611020040958593499971822389377757085250255822242156479415702791032683676781563950252772143736948952389321182029678541712635573773557068600468198746658006049933416316627813664354364845719683052258925735456717975713071827152912212875099179625469347146723511223302604517433720756086817957212628155464546240144784202713557447393606886507230721430040201785381863075856944142380352062962555447479921971714849918219422988627246191067412584178489014245278192600530853047032802209312540865277394286857186269346853758032410033604671226653134846941761716257620560290423635225163952890020214422141669487227859709392783688393767655548931754830779625563614763245646631500237178403374930174469581219447372313127271132804127343476911183792066428143276582253479964098134611305004431571740392537216387679003007125134939886496259545020722998300292157019991101957586542712648496657350211394194637936087393308367724844458277595585538411391727407330566139174546428487787608074820193870260382370305046309649715395901995828885631303043897597392194562388057539766396463582182449890221403258535570333473844985530976614900718596015555227469484558127755354092769878347727370223466304204796389516789394255886098430782602276429174288705984960396756000997146071089008838764068808709791949689020259932733197269372646896949428715900626529900504503011634868073267989650732158719469867863792185360264583707694231901122341649162187216348630494084357976575715498106139675627456685628967750120090673413666736426995219680415342138405149429219673176415026616289177579973683193176022924565340654493979107427033861652728186782908467550673785263116833499038555179177923222570822753893423374318088877381174705554031414664465914790266819703468767274003426891079089912278873055336763529492016800138877106944802895962981243949262859454260315403959895294640876713322366099835421344306990839240279064054139690279909773249827120684690169120480013490062141940177703863785341261525969831065870605786573395944105135343634351895657027502398589002582498536174794828903947935874132413510962041400348737548686364992644342604692802535272576974330964655427610881798312224438782049039487059032172492287858928299411492073933779026006498508547827863856209441588320111368117236845791087592995100690052365369186487098503046110887928635595296629892128554821975970990489689659331136756867364472541211936087286323893296843864592771320172020508728757820201110091547032740926123215464147136820445370672244314119505299110217044785661939297882119187410274517794849969741447772906031465294155297204483463832469095135440324433962673519151005678811084726338342817177545163819147145328377351232693087774963001001152073310338031536705809184957571748032160834384293273864777726216845486303966252605302651663244258944231699724090329546833099429800633811321283630650264768240326360834338469885478982344737883394992520115224662837089747431449122319393329094310851012483060743079145288741124926382274480950674048930120621881680691444375041216727990794042733487363153584909287481265838150050335851149999113297017877600273978215900130813242015342645199337975579314897702537157661551080512706567562948685275974593274378379978094232901255458912623296150466528237317387487194428252072410121066858765062151362517703512881652695407610337287717732253824959453890647380647887275952966239596146228376342846994107823528260279514508810475834982405725431482719918667286404001399291874584389025393647633550112851589540474823508977929170583920679171675031941407657624305504468004579607943697384788526499199599260711183375478084426141476873901287283089125963602021894618838147655944961805290497767768748702602912607453569808566435335548593976272926668469584648045339030545333533157650372565283929842296056069156049332853297071203593104014148860730564863520013433977281432725256710616321260957504784346663796133362146528827086145821693914321110080253348775117107966425524835987203697517621763167974655675467735857091034479981239890150172815373706650196578257335820882033959309752328464270048126541025881524240124675651693862650244182199121943640315297460723667840461126116468130304105529599993101809372889434913533194102755741984112134765459053794601749036284958691107241527092059115905347343314771809092539942966162267980664262794967060098071205149674707254588711829432610607453407947946008468395311303166040352017662108522086680736798140800288833321373687755100360937185387395362640450488018232331214321471926073014368660356635427920090691498217772893090262426230413045983755222999351609843740382906753560419870340071982698830462860779800449985283734963782425053507928671138976416687885635640043385549696138561849623393245450415940692651103337093304727666275956094123190441108068715493828295995249357915674018601769770811028239603404296079684641615380028675971879144719872126171826726786116735036820133949418117695116415671239695134751450615368914768686153234295962247540485277133280248018206223002161812303604996378344790837815357226442171254775109702005392594147982738878638157343263034946909727031468472223956938811703487214689876950890026418352114156225278621124992553596015036810696101927423129755135953221311659103230012561098476597078028027647406688256678152789648503790042514968147118410359888426206279606819427700912007485399813713162196063895191534225521226810641982837065907094806188226071240597998828533406360403934021513486006260712918410655576376205227119881950622505016090608214896450724315685189206057922243178101192626220220227895040164416860634025747043956976374567911664534160740254028973214275798135404004152354686671620825226527638375058366173977126767592918972922313252481472146564869694641084675130468604745144794965053370770893032222765139741270002241033991452985756867772722552523624858804201507090107295551640548997445236433886816158155150722689398141291614466834795724389957760241644729897654824731110771372329771406809430139216886469846769385045258349789616631962821393565300083637312285713525446471248108188509719769938238523513391257009627983147881971003223591957890314517073480660070682802657533350153740144026664979716397662939329556361240702179018938321447111052108319390229979918786193198597581950627493995555225428228876769280121746262066679279971453028434758122912046175607109151855172946927834138949375666398135910775325713637834133448965877318932313895945863865303920451971661030619006142984170756365102456377286866013315209905224798827306305712569195294288987528649831065577714299520219512513622437160918320810810710162251372327453963559367241506619326388413280161994467362185148701824585290213266959634759447244452707896013840682683784578019660508429856751749561501200042985873280566864988590711083256266604930621245517542009749900949623711042386777735248771002594249294723144195126069265180812303245990540877360002647843931639608513927512398920329746728332726938413607884796576057712541473880260993255007929798268806233373285367202157420259601438148756099646087852683772259820261270282493834017496024952377185883893277766518191964140266702421797810957665273909768739753894684301282496395845711918024374755034656374173336065852668875752826906709531706979298887812721463462169889537888468148158344976201998831614494983026609074215221105700500886838337571588301954376159922276680499493204194847516134456222857046846043726049186080480436794946047324818024845778318900879583085599611844886207652253459858772375819109336620561094060219799615251896467310124641420424828010201650160992737742781887428966674051384019379049454836898771812676964268257295687204567601301924255639987321948383644732375780826106087202911812715639808502056038006826052117535977816888026774454094039741138967233113947904025630651435219245850872633026528426591732128159998965438389584567983791114715233583472650086135038863082976662857362829323478701114130571826566997537944711652836876679818321878991058806799505658834177101414457067080354966810201139208663230604647794195344029708746514964278943003145398589713860059024811516085588888077403491472270821925411636064865147591267866363392237347788559930722816347521070398115924546230890169461814676161538245818056107445617613641075807662285621863796182644548724853772376289391324295866010382226906527296300181579430407746223927469311854568213028473187757785947889762921016764113018439044876089812907868597830541692118163054310472902158133993946621048656299954479894765326433989649680363927884961449518603203008960253238957772693309489230727670947709898359687880428036307382486696882343832287851857044215208351625103520011698026992970107962753620938095369750974262361547462449918979005870805866094747359499810470557806505091608081719085752069950260863171662543074572772982424127637639217179824770902570314146547998918382380899207314423726994743777669213332153390450823187062740029326815250167345073808353635672314338845928750112491790354621454537963995621750294809550925826807162930791694757424722284182304952867933789828769189273693486759445087138688392613664423767310492271388576658092576112717642712444211414804869338907382626224588021715157411752766962551956061015424918542130427241243475274619676024832194431157740698808491804854094084107754178803068618463402160597302772313710717319852062486028726358290098300920033607388501396557877332562734682779745259517363958026522288409947636229895201017685551729135260526972635563656055506168126353456690461528409622459461592621667241794275865304867237901447156081515095093738398931959595444508757068492925389560175249222501535705898299239989764789585452912318476402827593248394051241114805266161163942065274476618851660443970183913831099137974157968988689151047651716249519946670882509186849637632934589010214189202627461875313634948631632214873400987710309579825472249593403636584132413533089784211920764812040285693068839620341426782926883952466640697684230251629690453856674699946091551997292324798818096224201440387718590089387895589619691580846468167937322460904179439963262913208199253075599226552334397837351312368459430981760030938917392290663324834357275379428045359922615612964688576332397894893114331482265738711648985548093259831177185019498557468151591675279532330535413610617613923806640172669233896546781938926605155781685333785062836319417431001124717303381966723641854558388013456750625861285220586262721820648328881278625722180300319446869814481730258326456355676614377757722563700980191479266913925050357382195754043724523888696442083174953943510724718905300890337872730333272075116248911247774404674433975661834124144342543250290809273373718372864367728125826239624604003492700266406553491113763009459505120353342720923226540738983522903567512385986565934670573993353973827688749039163710939132154126937543166903418710289624346022811020927756093225329560702827067103314741111846975123134257561594986115266742021629251426741421488377770851771484245715011297639636803572633438385747011396640858040939725148288532084427604031788822075304643413048911000115467252582643172121226751021222993594242532883522026656264744500158976575542510411561748203171372573374802724525192474520825634746913601444360896750823766426395954691909051295899014911130568695126365059334180815112115106619008625445390831929881876972080527116449000865152395208609451768146263272632028014176713121502005395269747496152596648965265876224329747638525669572389383634292993589687021743872540731988607391661844011050704358539388188615633628421630043326609813182707025309130989634618761315875684360802851122755435744682728904935561733968143431200743738047189504535038406030297072677706403024916681489167421725482901197910636123830846333705299226705600618481030492839410451509572478832038561866234092223575059371356480447907020144928138943236216636001591880127872316737414215073451699734950181442025648432582267542528307632663989535913030477889199373889399427296117301194143761222136684716868927914721414375681118292655652769036494013518728647831416666033695839368514984811475129722377307102993685304282673650848634466164005213886281469634156681624842032926588566422432637647419205320260761724416675327412431658101408255503386777015310440019645089954757997878312621233053987031095662384041302164797921298036983614741277034501964802924979297403821384178381652899071052186872866208256997496842819285048962381483310374473254436174724492622875262351544417242666691735794206463708702766839383717093931851621704128435751192552839736470029358798106101520213757005722837265107782164351610794895938466529844307197672846369474172482286861445226633884942216405840236077868705470196752827503699147667684943328692997590585567750287160099845778123815605315984530300734628877162924699982938789585909266912972302136793978681954280982317441962479321062631557540310624405795621182003138795748689761728434357246891736328489252655622750997657398180275178454678613221416585438704465890575101320168495624254377711360433982063316449989382859074486658251731487700467063888658546950972101802108584025183965917648295991820104617680217761423435730020779187249480785509145508242855147764943188194032172455810497189004788972616961143104926702978324606838335637167407870123141849001468630355617123382606227369961073126676560332521665289734163206074816425273422632213589259948637945605908526422600809033028639898731226396537805924832085190677866570259531472802663506584815275945722250316765647374246949577275809016375397482547431919464985449235598835019900267397097146332105460072855927426932706848296501791425952069265252727985320791205665717391572770502253000876217816655360587904123395937911834134352075182723165396499080330937916363057188822733476620728088406294284897829475007810138371796118138955219320346847584898575040281463202286674479879451641771082979571272677482004377073814401484208750967347643851516823607913703352646883669728283312895601852679155976858130262372359166865801131920259320321479488515035177929126614587664307069020581367778965697619313838755116143918898762336849768533970040290783309198763490925272295083275191949540706180949982969150643068325006803349446095455820034467543423926041400977678230611766625404769954539307007229909255818953517070317102053480120054387094530419742131464527832072406017507253072005897868501503379826257055174011390638414486080256253729489772299348589724907030061634682658149212461421213288118739151919566329775054373519869652873743317948258955569668054178613541606741292306324616315734981188620947078838414091327148833413500686486018030218548245006624611642461206008377739090134378255931555966479885579046785595582948781724192066626804446501261370586737107660245944202184251738446758851184923509348794684442699666494556759059266774629766364496742890823644781214668778447480123447042840875472204073376901942257748567129157740555114994371455860892792204840785896904737908580648651426832412726618746853730002325089852246464191800274501073792163906379972325984373939927184404600171138980554895009232125607480389297082857479227324032057300460167334453774838298315657246064781323853085646672244462193607197549412465609226995436287051985121317402072867287437454936997689976032269065727370481141577750735792615439506096409802965645633314798901037161913517178317722921654217794463119133723739632067091113104774540356573503761726760077251837739258043151017718610698315735711471156019764848033163890343566568275645162050088409760645786489172937551585743319649307836725200730583717398530707500978932988535668731976929568948770711005299459754072669433538774500476292284652967579333665476038291236897988003825192082556330724320854773576085876177814991482697442858543403025752185614989338665920570171449401815144125418362164099367929701709196508909243635558836257300407758587238275172668581992558479786693564745471243447516195976249255381388541877858790970628335151149579199652611676372141547502731053350199257574765567965899415708907321869716161886328827093176586348262350113099212944792946157393035962778606844145498029751798765100697537838446236199080807837560955516011177631561011154085009476569554457211147067186036154760107989883365320119036509073038148855154243416430811715686331813155247257057718976129044118590814015586401383179304067676873239119677893497983202611705907031766480890373081336505599883851643830269074375660035329943812758172309743665090982972310839768504410222740931413409944029781784179935313416156604097559349606972214718731252155654079374117529976112752517782297186526155343732394673449406247541254694115382376066697169682041589781354363479865313079038631936463280075703892807874040811848931322977888909171647969040924340698474667494768986262098495337404227289254125331553220622302590853564293232194347153651497768803203953983623531397779369579182142672968693400202880268331681120526466814773353332533450624760446365696587965531097954761596423244877806363835159509895924910479904254921908050792645326277087804312990628219310694425952982934514579413312653057268900289126849615267877297476426928295412994600344209807397564941908043236998751021170284505767239681448927261615785252404177406152396892545434022052110553867865921994664251946978550149207772737408274704114936100821383374620063675702236680962226292014115054769705881276264248283966450681346517021973719131269877501447046257064810710401706429170572091333155202932983159150357221943085663790108842891449391786641879041600335467118537021823029322767110471924777460706687201180972882626493174072468982266615001201738659794724701816330544060204345410120968459490726665328826919418107206868093359217118919684215009731873777437299369596359184446409575951072530930404503667889103817708437375961530215232928702635422000607207648199634628262681539011340522058615922321386490551297504284598720663877949569540345768386649618510043650140295657560803232609608570319611229724014295768605848043896279435611914583987273469924888468535279128092738108817567517750345055538483469425156838148867447127128052337095458006605993756636079261380506841906050339427851283446716223242214895530842912691483650781752218783386690720605975582983150608974253017775145152995020740180646919717646345056059409401013511187088258976442632059033212900543228310809345309859534812859214052447291429682502545360818625799959591965717204183187304994721421187106462799482865639536967196775229634913720119625049305750130159907522560202626205976196275844587837250755742024889101836695276302066820130738172874821375649892717287533634487196061267047857914251394192183487807492471592668832612755993068498222835213711215601641765687009200590537332795631634263819496332976161894393631781929659931316831884058627872506145338537654184352978311994069921441555404552992497638497362775476125968707318239671818722102984041964279138099427328197694025301540619057172337326569394749382526616806483048818802769869576784018440827503166924152369142185738560468946071022019478512961383627077686794885059879781265604783873246757160537119581388736735714220154215954242326988130246372448455063909803096730418828180437236206373937021197270103960526854176607604150116081681870785635589061926299038109308297247726014594297242345414134519816245417966513610673520621891672109673403413728442739381449323954819993371346832430390663777054892008926334799580860641843220305623004358206557174423337588914239773909947310376408403593413779345576250680614272819752415709510024793749695014583345396883216499612947216183158663954967333781188903748100256131806433179982534583240877469218856133278165797844252222956994102844752977256309264188588359383251867872564434897273608772343312333102370823802930017546291545897250916900754035361748020829716249422519512418026026360869196520328441280253421199373414514582532389966325725414305342550160925906449375055691824147124373818973464837831876223601934546752666097872483328047899710165157226512495950898783642407537240599220074055792255435795261821254455541572404902175911426023877518047300128949244466674595459752116534473594448795856503948008779224691041632385641472098232694226011227865925822629971366830694938146919448205602532217620717694013315832609104314974980438722148917467844594594433121556720112864474665942235455117829813693057165260501715187713030592864467892911773529539958584202718946384666044885808689957995743348317259604183236096050600325364870757634253162966078490365107985411830265834291331557711837599412751190431838322042412664182215160946045178667903425961486405624080661692867462538417643477924221146172482204174078898531030649673540211499121384596562748929535032195836644034112940795137722279503582877199712059106863054685535885742392565733013808554759927846733732654974504174679419233557796435577641389036104811712147509129287130022532631903291580112346147554476160092005252604190694888439953367733908391075247655373597942512366751460512315821499745437309544481931980913148089671844707555126153281059266511262654608343139906005533453616425824924171897707291058557833028003835538877072555919747828497755320860330401803556509849443717565961567036532547670372977664248312704100340950788008225870327356944433987952033161684812163549824779270314012418962094808345578870170569200710849102420388908486249454028995927398443931380457688231649010904887281101455052217346242828334334482260146102013128687748808028806686542659007433146272484823379823021315517750433110853417316552409452932208119149972392314820807136421705335551695608513046079679529904304157073865251609023449433645301800893506771817164058657594506046904547239376652868574788985129342218637406371981103860881876401542226013301918292921002807504810602562498312287988272665350727482207334710073320429136486247091925859895360810628188523168349474257059980856367782461845951929728119297981402577464651630214665291041567689180532706651418869010547837411877154893193731857828626807155410722392212967571780923638344690282856147106863904830189308291357343056337648676935465640925122060073400572063974662441735532956252723001552050675408900558818456622878842781232060574561885499007748152402105171119662709192643852327748680271731288706439084131288092626362578047742092443524946482858387826141557897452315024058703491369790715229309866911823902656269628322672991583105981643244720193939870072098412357264106444341340115369882586101941953453203702707884166180483387527929591086463225980250904441713098627932497027935511526305605852055090572105115356227282000801049220718814452733729180745124225781683429348585631634658502961935161233341993978697397499750218182422430949152603292816240178925848507491564734331849680887166440193512852306810641751859963248241992260289888319073767035017981004310396299369596355828918996460784886925117164577797566558125203146381294378397109533719438212627699427991488678719746220619555271520792839445620643376280346593881493734662518354461074502167951175137978976935525170395521557304329810186420789891852672941372785644940110021261235096100987899435383924856128352288580304403395767423092432182529030106221997350936678053614435618916579781246856151766931944706462987134235341301939241742855263674867809172376737621615284830842530530423634029077662752471275912427672814296056560534193202201248998223852502585974439585730899486323167143874075168625000690978873635209563262453085057585966235842638059780811152694761750521234360567407756383659301245806046774242493272922816660808850623250850133896039168830527663631374651673913649874127319653281599348123077552193433164369173834815391465208530196637229249691811694752696518871289632340878840592340037765811924567854228703890679164728457275533519533893422537704304187660373350787518224553723584865334739112441459758327483426292486284827330128098670341710974829141473966992621117504257978356249535835121719584144276117092955613957775595645066272718779988876742443584640736107668306558699310705724831468603045670805656244240849814235784700352267173359462012219303827965067481279206242653361070967222271000963286494036104693134755943399756289448042167844451377831236121671616025043194433786465338194900368419929523449754055560567460220426238635274027738167518043665129729948279864654324041680146681331211085211434140365047472084767162452026873585912459957418532994345184306052180369939015959344367538559912938019512976755489339531730424266714112738154246902964372828422774191200348839244431860490804828968359528522813782675184634955261886142719573935264467993655572475161618115987999299036888413162981751587048793924556769079441468771053267084932211878499114835207308222957597613335946207799237726838657830835817550285476105238993209215153717208092500410537545042882368498018329182917316749635244827858656962279475888550443100053553602573301189177729194917529826464355397956275184777135614990916420082904151685764087044467613225549156703913179260785477293145285632179318614028871271238916018492205664698864582829130959979349861157527822054912472360308646046815948068553519462032065897664259464192460781299050721746572134246937389464357043534552750577689905913588273267199780840766210978171270972231489114738177825577913084514361804926551212667000975705089654233755615196239002160781889469724611719138607677857147382335330214284750817587053077147214647198396818854397001587327319053322139094567915244771983398763919347412426829399881019876527848723352325056223481021484636891075947515217083109665192573563446509172354922770573275980399952309992083515889274064783059541411845386248465893634633757945959215325651419999695261666517489572752440540136792662458303766840466030312651241110920444263036734914669640872827412367478907896764898610594954291417016932725383568153352841289978510788156986783246546535235504201946365822992253314941394360668429147516087589202605933329923407650840523927065554945598710659139316595195130250953298352353892521517348760968501316383219113991725846286699863125667509864045335626200080518276984665334279032606615702789630622533153413004357066572624485906459404473283440211527962738510706798788618158399098850661362941159432758932156959143352335574271821324418874305830738539057871859209140257376027290960260683581274180165595321123663589026912835256472238171821133710183372730526618574032835945152839787197838804383230190078571883355060338317473536919051445621593478783914383861453184736240325115195575538983042051121453085640532232816844888348943052244101517706073071864861448320471347874750594547325834233754726211383968723993364922495677301352834531310890834245902633670546979383346716298550557577561431072469618964968050334824019144351619425064954937002485376370089376856190253364218856499901951635027796081687743399623541017125866142637262957936807800358735609237322983917642498584001229340521044726250973063376505253700215166955026820462443657197736308380901733919186606295278231377763789013230655258197958985329854875193903909727851232171252669173300921000133016596677106312917183317839532573448939603432202140413902944383379656309753570821144049849314593051497056088638184182978291504904198408906715511097619695548765119907040664976250475386963172231387504526413369454689115536669127557005479217942876830304492184177662490116325082589617935455311801947957922738256879368751883967605455599334045893166289649133964217172635520352393164911193493690293756859740619020841093963279311857114968148446915821174603548688094389567734399314561818248055521901707148145776416987216495794628246478930582557551833686082705139472879871418127820111894983064243914231757806939330430032961712225473499077276144388882422274063417792599929970140039379075707687597913905646515769234547148885610811847651842246053216592467703200562258055659722633413475151673016520172647000163927815087910411484915887456158173704798875574637360749117226852185633827736157406663701526241214106119977549284258069125183446258223086958856634626297188990667233332228538854815267907589965822899752476733060398956095374902927969704364297760519995681893048873927090220083144806232141694901799584763419464036596172885459203506974973090907656702754771078688465502575676494103305087297856161545900037571847590520019650721775174614861895790992657723299646727717986589196093834034000824660807596445553262332678666979982717568736548263905371756815401056048226017836653045676910427278625942521143321588317443921209205447464240327450518126797296650273173307891707310291041020176527159867171200333968530847106316271251897870423475143000035701715657642546066548064623295118337630551255763209645901365816325226584794776346975263729520843783756627825056116354048617336457565314416099278156587480889819723076901363451550886300398399992788017678634382363889198372983216102641735301968735464474190842975969154937121735597698739349695722562461917686500244455067087494324817589747986406938405507742988680747870168998253869374609765896675290169793775691607609552662479383931324053081765225752714862939036765284841432496053055666671264512052318450983953729364146319312068801198337653002552936874261315797438708461081241501376308367489539136902549631080578716581438677527583873232062685955871437669632808448675704070749994311285502543387972372624752751085552883220318575671951012744518916700633960846104821479109667295323617863512699929666425637450918304681583781199432813944264671453247932677669823283524215045231051240334312612081075184152619248362742198387613322916459709948721970755807855557948922552945240355912835127229165392948943470029634839614256068519797094358287155213135721202507388686326064949162341581092348920351564414221078247635875737845454754881517436534357705348021399785317481773662517397858155446779073460829563639961548260203158464951007504153040279541142439619692333171771072237510478860473118530163017570881966100123939767638607224638497615324037272114049523917662048546411170892691791024364738700757242545715515799127861065023306214583820377559501466964199028375865016480872506595445489825834700031935993964176903631238132160544867478834070172294728583283071455623619853379555633205544959872408482679009996904881241311879286272588499033815229393756063918259196118882431358961398025541131907495889870052695509198787563458936888051843071533901859792088773721787864220082540787667186593467078709900699976993373339243512745145889112526315683157189600064192588793072981600401354172656762039704251483813910438779571706284571218362995275233472645147403431991099846272823268214000986839804506960268989525861663995815447958578677795419854935296181562055700258849288603881909427625590695283218548042418631168199978518887279462827569293788968053590346255415875222323278375181851876327371261620776971192760495742797443303944769567841912633270253927739792110594173134622688470137243463597036889986515675786584578067070620188495354682524954998111221877987882358468194830889938579168916281445835310986014064548185536800124454645108968741566524416993041234448354915410310853101858583744488873402486823139401612412199519370360654738233090199553618418192697669898316536077980439008136861889868786332281022313857333476484184183849879740376722777947034007295134051961209295289241165836062228364850804460576701038779176141677375733867667432481776833907505087687007614549918845211115100206015602403113623247019569351291966405655360103000574337936727795224759851305357365904005015430790269621011098657517181277284687444769530180173617344178021804052618439409376501097750832782295924714933911529598353955096057544881683128799984218651085455731232213234095695439761947012546695566069262563805411255900014512475304781608168492894229914873042527271895070010711238898743581128463110750787207955310815242105228358540223788847643076383679705200273421133805895128491410257354304197127569329065809340933191982811363953609591102401824269348638092317097818141415679949805706249644445194776189342665767949059425323997459023011330493235422674736014650716537813823815636205453720441889885994957270436132103865932836929315006245479953787852276792053836924774466853339796222535843187598002160252604435255366288816774304197813090435826257563185864998217530796488730538182020402381861917456809854639773463092531824240589771068499221381938964163637191815380075126827224008710561501506401752042314297991117159981167343777724047957208537351552376842837870179886733610026169011057003595625830847570006911922652186204409259401409896084750957925310988999764734285750128548275266788867581436048040848914637803893528429342685749176035034904032783350768456119087027094661233838125321218398774300058638382141748677183281470249217785472680407548511372551215549187647525751186754490149057105385944173465524067798041614210072428541548308041330339893875349233399139933269330882719575921697700315038322596944028151174672715587122283212070212458789017275314286715832380023011650297586028111089187103229017213027602910929892608252704424140759060402938778625429754101349957665945218575743101085137984945151433938284654845783171989839702587298750296149622139067357471073786827866923057912841894947030549530309577736182998216575561377151144606714292204564779965138167179537845531908854268718771674879553200607571585995431331869605293816520602502608424980665340386668774760356923936096250608665094819183515213376999032330466071333758303079578233813511141441168176795226904743783692430648538393901424904379363297063615064675782271636585161821079325777573574145744346872563974490906853316289357473502453388268877950171325251969579102421786808221064213225424493752335649389475435398954302166960999661128964881317554365501750556332120371896602931791490332760856159716496477367654293095860979667029399786223971357169315489486223730457070539327574365946337994831257199644158853708294743177057639777702499896391580181929548688353001243386014447159365703900019901565382688043248408154638102210694034236394630549829936186581169597409495604721472497575181557853350989867026014891147890357747221152740882781258058275642190709083909774774822233206945168123519747942756420606261924768607471283305647996393301241276608957319249607764348947018618948056907732574706577036117580889632338839384806258271605737120275126993334259050652257637970099396754232927073307987668876281115319507139020771551847509388835049368998315980761060808710892234152215370043112291188894084876364570835493703525212539855085411837272779542490583894030568847839023540156559368380527090863858900590271597921328204224372458938203910414975850678338077877600071392853243578429430046273564078606947215292877750076910613348626933431569125822294261071843790081586927527076281728714039759416922580632724099639650300683789869193139783076341209819403599065361596551342552017161825657116039522406504483467204183452421968199596199083476429664377965387595204878383110741332610867395969015045706131364332233734492687316682899113167792684239893020437783775210940349909875169568856021068694134518333749963392747022962142926233304205318289200519162406798887230830618370441636090850648355742434108814238560313603899705315871620227474709353670147235974199945598179282499893782957380011638413985596933207987854053332265910451903731739883166301615270577502263755556851027009625957555571287468224118479996918367122610907489304037944609228426459451906685777604686609184264584925453901439251699409760963289591228507985190089272980890488096749078337257964674393487964203761243125368359132696102890762715173992615103902625976713985824220164282142915565337928274618454498033904638819012651790485615701337169170841287506827582188044686128826492815446248602913753087153014468862042179920264888955796059308013070652809676688678822052999356519231904761615797605995487524923949648299718832964382158043743823722113583110255802267056050044225028349883763812302834435100608864928431930917314098550375224379836569749310800047815756426849968639803626371812666117922088847513029765908331554654567936570446365865015410202942162520591155871569194053414236098426531752271586304819222032297762723847280534198968638428928724109466090234044511119980251268895894518187051797169929402012881101376619971539613530235792229265611998166346461894483570953829956793476657388573815178900365301328506644288006220126201652573358300160516713029917766309564828330276258814258317796458614696433381833989941141896071241900579795917215476620589100327842868291610386237628080463125822692143353151370027396254622751637700094896858008087502277838614648154279493804424790998738738226643859650572342669980233619398156185269627769738993944129918519948648559738662122565360874522269532638542010002954099506115815294405975499462220328361283007116214957107797323126094908096320392414758584756535614084339911442455750212624565427424003943943232718703112522903135824904074611470358961368667771171943329625867716198906616141087201864126043442767704534572103852757120106697010966646723570848484517791387328764988554277054367325938969432231243430997086302258431952223859570580113689438554865393719219991828657524098447086453418183889885495912019413632093126803628307786256588831172719735414464900838328358398019867290612456050663045032159398957250237107177777474585882809007072559674472450510751940943090923698445371473347511989245061288587781505086252020757942510028680406577256970102076541278852033801734830492849294659807316317727212794530195082163998695886042733152504631449919045352992569875499060465145992821413776488890812792169257008332127770445144275745730479901238920368140080419653618679849123911522115600395415128622413327658848914471036088713138994589229835851531417933774763967796211752313267670910193897778452851620758976244431836400773195367418386289856095217078008444953322049316034835213136064339809595968610444529890314479129408126680611477923239264155019809116216883768866716992419545335751196444741614277039412766479682238222607329100922362586483446389024278020153525840398053071756836238774126131180812419481547953990826988712010305416652471775147327903254712267884437138537315732933438083793414651758054901869801089928979109150981230864759062920262960855623242757795408175295048817721626599150212161150039411452704609788279444108984278389853533279312544540198324820519110848312986901714365660297095256545356602973490428072162857678552110771142595932911079111128644130198182267268044358539734836133989817130366823269504558106945615109529219639308470094508320676681040864570410259835134733014774487183428237410892718276157431029731632526576151239091897304593147345544108525249256863452442388033292462648368037020859164798032274124951146294104738880371575791454510973570979219401180698927655630936722770729642388306829217169754359432794839560194711478669762679549811312735783427917893182521015154763497295376203088140983190998256572785487424808375364728084226914696777367311167020291393996038111140844688109100049477961647895688327531979419197863340708283223302100213048468006255704219238711861827010793672166989420637150206582123396192175297978473387560542411638726070396643761930602447300427906737751705587118410283316601480606203922815476333164823694663441391761491857168806099316064116016991794789072471420595781044104287338444879723657403835942971725943381760104562021857690933643790461615776648899792059751376299797349118582281404662308155832264801417968894897896394200795436798951579299419470983369041932474285274320043901713657071264039805078295954314949435323866536420317586227298777697601022965832799209161411678045980824019033275909995942468660988099172296402236315380959299825924384368661970159678678137842158753115651698905090937979645422607206046101712833707143857270674637003427379526861515874133538975038675910774321259008331985907149498615536110488141101587435055740602217934298577989764708484927331772157935334587680177880947822950196002477416610631203962609429375261138914376654375937341703698966379877542023088543673710516403205552545686474120527523419941934133278547702002329684965469142968292311193310592673204662484950479761431304223671451041583466914537378987399560424973606403435891185127039097030767009731227050012133506427127113289597889032451193458495492904312523039648496817987977868603090037999561991299938379980128712492674088463021818059504720454015259125323234365226974030779913915042598821096355320038666713412740067168182348702356642319154544558095968465130357629001432455351622289156299509954428794456758030184924502587609216648256116039925750094302395485752169302845795599343152257220653683396935701613349923747844319191227611468884921360492180587428806892629175832048896350451508728515399014322908482852768975905779184905234586204469016942420082803185662682601780448221514453828112006697095273808715362224365231614225320747006957469290526155239295507901354894246861439726002363223926927609987182883654076519649288698750236770428200712198569288059236915164946024193649543409692954434536891936784989880092691088658357703977853385824400609879605518746099556564734598552101828671916725673638985804503067280849652224702865992042730269076086661304132789754647743016647321205927664325779321632237932591673528556052280887617012464211416834751287310200769853949988433815501894199171487228569347269630974685582575264541653389425206238521571854278103544487637397816833661085086722675392853984962882683216166889449222638552377556584619312825033124217779984037520407505234753569277987293084766552614574866736223221311893386439326457976483539996229300599817076055726763093328800822627027862042685564454447034395147500938109485023848319933715071093884638455982927841257216202208211175093883524444676575347515886905345369083738513951300302505483142873547198726342040055344064612440056215975105830048230259410044363970216008461298033436076852124098373241012201276417693673021901852743145980010042648486250079170388917742095887436156514672544791297359538696602186311481379828000045593896508830617898540742060981409321444239570165714494038386908159714252861432593224331322273915222781090640688906367478525520912666063008755769232921189962410173402111899758487208156693315060366287422872571469691962086841530400931653079767310641457282310856278354526771247798993568528110711666653928591658167878778485054971710077558252963907367604174621293186939506007603409833471969460081293839444179868519028790424762504378492646548266662547178693012546786581898793148839078349188549368427408320138666855387165999298379118556077500587631560498851154549876763426793985344749241888118503810481869798398185513431830883327798998213197191823909878674342944323017835277259030336565724853839601571515756461619923143099711851783800588850446310290543858563254445367698960015508768235351407828397341786506545562979214768525959884571159883960540855243630647616693176300565170025485578871422433554480334354156131537899627745068274254778493777623897146516419188596109903907554029979864143193181879010839626467289757768847064506524312956186399466632264734466234990025410869018196046033888114713325786228151852101508466260084308375023961383118106892712013494817224551589711421697627717455202161986399061920490996892838408274209030398312779915904095375733503316440872904836790537452845924379121635208719943859572940940268319711706012789748999297283119797514769128520817916572827832774747596259295445382451695703576008098251335890437203878454148177073954141315315163591104682546909073748370747359169088746192097841347101662685510090547970171281032592862966890218052399905359632925871189773546392707439555916526528825496167768909955789029232694985194958207381059619306114529950245843943728462494226462300768145791275806038478258440951888513082107879834811217613881001176521720729185796198428017672710991112410449289466917463691596010102048632015549463257581675612126723362704401597371415652073702896484325932294270335858467810386790492905116348175219361540027480778117256009646447968554864559187248556581472164154199243906254234157585524401325512929471023330196555761712453996289641493987025686251710961435437661970972908324507376927826962846798636107933589803714183597204522052302270466482543754931403638566656839931330429181004417373767548645268052935209069211468437956388665848637277000697877184045126470480044427260097313186066059065367757430373614106292020051293231381616363717065875488071043341660457580429740592952303864674649997590128373971521761736518888899285570150718953931766022868562590042026007791437081144874163184301333283672944543794773636102027618965251753941612579231995553048029311748175251161273574305782223998432916221835008888609041561632046856973347961669944184866310500427504071968730898162409012878995367567590837005775405764021629373368254311365741362324432856536822470509127490601470632127994279315242664913906035497156289655283577744977619558725167996715157076961111691629932208439600556230277461188601175692282135999920338290772940863910116360522543861719118203711272411228309751903337595074168559801373547543702799684591242743389183155598447223735013122058001172379948682218610918417274919401299097457474774966355217155636029085379362377924053770226004824887100479394650239687997396905645529627800838064465216459550211150976704034082406142715003412238550007923127898080106917364678241580253861349684567603820916400819127543432025456647542045248828190740609096562486467561765362218781502340120655795556448764419445258094451537431225849639395468462870150048610809607676200533058500679713742216598281018461975279611040658705377195407797523896486045841723152607783522044218580373237308124109596823243227015639747207337398361426706020631364401593808832627808468058563535918006647508011019620374085775083178643225377915078683476797007176217613721002686719526548401427362017488230337603682296246030564335565626281096473254470984179783493981133110519868678585688453921802552783755081238955173784731103635993661928355519053715526599265998905209441119915156402025972018513531922338552488983254938214647388374653589795289907527773446152849876974274433565252633594535905507522308550756515495770116208442939013034648418816646363841241437995189626556634163265276797573604030341972890135153587011585566613184441301568848528905769052855981530006438918213041301965941821781450623213520813351430937845726237913360710615119541588707326445589579224394820327742588528274082364941844795427002684095290348612365573586009080106253635265529896611560919389151662058261510758552137562654407991670877636569460136148418160698357540534076546266212711400259052622230616317060527389089666508311879402276601633222803424714487511628948043717322459628909360897178032501475933075716835924134757429616094002147189946997891229756446770679331321554007343278511720743593301575822372299917877370899194462187171518365185141821543637616456745183252592280470473378150702057573707209422547893500734458059623564595494363941201779703099808553127909517577793712004030893887512354747277228435360950606784222732282077722759729732689166982619548421678659376892144747140616833450395195696397319037848047242307471161741890649903123478495715660626664406212436121475065366047137698845851843082780466753989093756371816280928499007504884058080930030250500997383830068030656313086457675056197319680122611546420928925381802516883371448612914051997331920140226498575320292729499046413471981068789111140716539357039245346803483623866981157466808754729471195809045455285645615308621197033327791358626457594079970399729544828676421389416887402549565714293580960787267472112937113255633061230638839868075911878831993369326066490851086066919845939529259816051250862740772524910213502133624569772380674073526258005558761225829140101216726027862231757129252967479668274681990341947199632767336691286890076772621737159652897384246496197289559822750265170387041914341153589640832276266352136691228218193979447922670005535798004386604218952136219159442441018044910709634653831218795276640089338124134217418140653823581026733278199155212758437505890403472612086687093648186079525200144238771994111289461851655286956666803807388134818928775678213726661893177574708805195728680383060822381277568683430369518550268269901940927591724416032486057961872763582361998753402636125715883793633273480041718357372587758964236944276593404231175646750870354323352032344648746298289205399590065903973236327599460325142417372255562927574883234152829311659602097888263978271196933433173847852603143708731543982613907342600408570896137719403430700840094680218310747987632764839315267083306197329614615537982365705353657953371020286633380063430387825464494305320545527360637843313044897291373567312709627829240434622833589974630597713148712784553272255462351546089021414300139509969242135230566985747998220260388750229711275799828240086992147219236274874884904807890749153809656741894100138647812206648011429210675510167134645408629508284442456339997276196213172918749923499883439987134868695136895637087046362780948441550271119075282497440870726343808802073667457816190899818201854953423381063271743584046252133477551309372287152488388968577418479531195146347739236016263199363434623485266497503457672120288715666073675281019477767234924098729248813013155575000530584077656202543803967779616732429874152571222409794968739153733317229306185020533329197806700127273927527298012325667934970454607393481276986242589874951961014944865206876062018709249887077670597118222337500676632834912030673333704118371028107249135279089466024674874533097841846824580988907580012756817168544514168257883389926705231797534520798804506963222255919156811047186716114419223648138621834689138380962761920945523629294124684408488833329541662773997012099554853920976894610826255475669984143272478571752092437754453823159945185892240261305603809187370758882826034982479291917877451272560886740342093852364120957158666455854959902620642028290910146350401543674123328611864095022990349615462433315916369415089315103866819895541924003596249640814578925914202117765862704846053633821099350095592407796709757768442504025909862118107721956787701668610595054389267898895460452393961442769988071373860506191648448236764939006186250860522943236960030300582739825348983393280348410790882286545491225519284044522626949315707288702926528845884563596234451579190058678800968809226964687935369662272588536733441273377765110831093201592403311386816431228634189310350433829313858326739672993012420691658376760485127505442965723529623477496064651956446373177291169026651178264470495900369982050279217236943620144554220245420422477968022885676807911119659831186357830063747706752766682759466632030102117268335553806307510726607967142055645654170979268812740584504198449548562555209052298875057820641348333307676027345682366217218241397244080160786294084255338673725359385459289793636008858276952260873424660403148050134226584177142405999943889825307845189256411342542154385604914021873146838422081537208887184854373240161235065562024691324742017088059950464481319229433193783506764346050896150284374047135359858200264447568396632775212199439735183819164330510499540179804614741059086308716634744194352099910344182517060247771479705122830265141821119597165845067423206573282001750251617271693831075404690207945587015948847684097451153513989478942580850483110102153094977374720597845847001108550639972455554153167687390663400643392862837663076227884829380094915282175386301163722376761409577157924884291340217859661100433384622921544464225805815176103637722897206594993320680544902271206942080994502108198593777678628866543581922560416754285706000898280633569402600609752315661345282354510378185696603574258070507903003755819005070313884773598029483599511779573794727669693867622117449512332040221189112552867414612776496967918055218423142857320250554759785707770130256207882292877280190378160244012460072970437686459828232146354332579569269693113052627860543237724589479149508350690161006560618037685295504023335515696777263999111787797535233874832964688068993947738415312781471599232352268459532981812921785790906144623444492718229205913036160012323022810664898962511710164514828511119052872504306667809080503550858017862397279725117925164085594412266266294692131317273479354334756162293266833600152021103459724433423792250017918202264511263155790738805987495057594077223108575566965155040447080459422481811274872487543953758076561023591618958766276654048105226844323230585987726476275710078645771035699198705633556347381316960668286240857981640894457504265037060367748809541083904081599311587980266186067794731249837905760332071626954593748699455928380514472094195585830904683859377687361746069356493599361345103267950643833376897464860526738107936766127517063566416185469236241767410547433322954851096550026345342404260167679111765794732111642710221603188643151464158310548178673925372160434684330155646737534332309156684487796813742590891564370311801177432479555986802058931394844251370894808488909771134957323374773920525388273667170476869625397660861597881762545808776962838726878802633504982621145632038299078007387802616233306363179313540148276204868183153314120649237722567263258484931543720410516860499226139219482646506137083119358084210225729200197187110954877249885098693559668158689933848200027824729031509569317558832449723643786403887844249873404962840486603230576923452966001108077825054775918149658307351437402495137619971076849826423818374237298295785292484290105998201176740944333097031740438415589575537998807754647488783361854662070573744229464686192811289999816810345764511526317635298679159523274596752320673983977701641822437499980151733657256188361069809542507326416269084303782944036307528719541240590185468588509097014084483971996371289821517239071596474832592416589114643558276650458576772954732095721394248550063178587110544494992225160982826980047839990021782964747753975591077667000608390905262505996725043830007911340198547525795245149919070455182774714474497277572656839644203335505562379375079586968814940692787269712836757611930978411099591746515316040538833565923092474890638829088283030776467308414201857545373321790769202996946586184677099934233126422118329548337506413980332153919029200717558448165208375316422354333246668796348824891473618724203585620344216854933674677872614752685650870697524773484987978738647383345004143360447548093048364962839602044649968588734161962952543412899410222458404855933539506383290096163311946728177166195106493061998447338360386585346705822372325818997456135108589215171691192314011378846731239759299038545404339815406961569039889176415947540383347721704750370867807511683669181342012224573021928072829227394089509711718903010332116098069227680912586927742440843958723724700423167359989936163380503560599505513752857588077418354826632975159681586583058479316963719332615527334396712760816385567372453379608888352951696222633005938218668843774998095902694465835252844030001450706064259247121303225037662121150225457703848089635917889645949302064143186999582095971128695115452975444376364517034741808540063590527855716763568461464053663852215237490251198395109701516763598062222817587894698593968090868121861257140328438277350486340352369143255938145630644075151312158522415271671117070521258591012246792421026190212226168345200592140489555602840668715095393178049015654220816806923079046494157272353190864057237011301457916776986750173307283985017694890956084998107446260579642467662827644548666672324088556685488310780717599038967178685676366847636307507580576417483259835835273786248689027457318039905577006640349299862541918166392958103454239556350936849435815999858462645805161452082618456944011492778848154538481123658593872731986460598306632896953530821774022988347113366729060647976929452210995225937491000986058623689311140675497371638074092047208337713136915181953407281453335865492249799526523955273796381959713909691093163147948869714029998116363229409652035950319480118757292380602898017692157821938908990496356859354082667506840628606934347433029704264873109681390027406126075948133296424610283007769677693874794248484942149284344202894017627334395227117355250556923871873791443131543476793171940360756601110419719382759687939342346214914641291014864986706420698935929895914789450971908035537209653201710528521208303144390139104404396804608496289420417664774552200480117765048452959356743297558911008697715027983563292098979312608164331424198377277396607796501650324501188922989819096213363971997146458083149728161281393897142070542827675024810050675220768693505175740539457051920071236864237518283159927351204791004796052072637708382240139445546496933761221777090194478895008756306183638813679224903822743674999827517353122360405216087879174331742747827345559104560107812169294065124699756640669605986569263693462380477156494716193998394423157127808780707952263037331967759689407484406897441177463389011528427139425779548566642217410940295441610387024141066664029992678666490310948162176712768021764723117761722588071171168554240856535328292840348540562074293473209448342226441754649269088751370486526066521338466016458658359222159770942611696501474376730878841291883253958569797798873240985523868908436997636444551790940963479902719993196990541953670124541990032440281984121867568198372940207860917764980656660818594376692905724594708774845226851168042867586133007513320457893811573654429170982700095227898452970386532258125279477969035972906948757475210223973622431244358435669359859294924131371120505709327493199135951835150634418583611800625525853831511144866755424869746075700128167033617634766591178741204503819778737620472730024796471252705466399744546400099798598206246776126405958200272041392909683569528065510465390662979693699893842340993446957526813547641134424052022868383743969966592911094155545664500649501944016851467683809734618410262636432939273304012299998476341827846488558427176573802500819878973827508902042197531738634406783577527423358207533655077988261158560396814957120169629435680229815277239543450450618566516248066009631312201881199954624004729128394775657075602155107493843940992471024487796714265565054414228372558176720322804282971746636902233583912815852755780518740119956130902812417849043463261312724444256414051653264783412654342774260879050620750734358334170386640902134421175451630544596370776871871615854848322991708578277209860939453804795660350950684856446165476548484127508653242966524106954191099789529454988719419352161283795895303240364300298978158520960799802256781792319777264854437669237787210035242622308362170198156601298134608708888802636202337128511597852618242702023607032781766234057811099618867392623715290224365121011241148534718024542394395773296297614340791672327135593830395740413812218970455975086908443162773073588371869264510705091904569861058712524896640938778010853198799031054393858460554831750153388000026806235500901340353571068531287998598051091248465954477617291991822431766544929645148153784069049711466705142389885654792392846724415922077271662762260872905752700288650745409918185863955707267524294486168231208232812605580693461877382451613377081450939216562879896568481999070044036804853944019782332308236468917969664127570473402117615499257859809798991023047255000681953502283359761455326440033389188140256568681408341297125809165144403072352392968231970010540506715968231384277794430368927298435126855280705117427484109210181823946850788878218923862957534498146824464254851934886874055278134383043057091569380493241046289055729184205111699540409475089267016468164079151194250451584424111871893586962758152050292689330359130099752770508551160150779757509542901143967489415853297073330677113171987704246590323659721495590653649952198897428501376588530809553469562086407271788752115260027974922583326824624237113656382213128751217480369228665409534685759854386784550324650853461782376030722416609144646503597607817423767924484995630343984944157692185767370782098211745637209217284396503550623577509039641561512880752961859698934403709110453090813174213919366975629931831392229295128491346903911295651827229091597506660348348559839915212133889639608866969407610016122191025851383121199240509656525671530349590141813548022312238693409659795080269438571274920424300246265479336784194752165394063412979921184617633285113086136688229528495188719016508578383315977406408042222880832789413415989662755671324984233508427130441962339133949725077169544386774882349638136327306416255362326430485739204206751338761702475452849402268403567659542770052862661431856460352996861072558615257854041909909934812648834969759015503684531953950532490754805642103527930918353091205236854514287903354793167941465993782551170225133025843371675987937321619928909707193199985305829706660478277567125016645820400104560489983295233334689100229728874890568137068850044861873392558689758236162415058745204316106860262687568868582346202819792160930551208523019013993769818485826967332600634586874761353513526043787660115414475241947075165151176025359597142031390902411689213722405982486853120440531956095538384829810126096539810379902248625651231927808464780321118300757754047113453099644374509206855167049239567389792799517659006227789678452845912442631540322079900625292041153651672925156034401994268673852109838531499095889617468531165562536604179607746646395671279554938888656814693412612888751945298498129468540369290593223914164276867303640737873558607424665826524458666628055566126601336688601643463847068777807044742170602160625136326886093487968725533456576666670474666920958111855883583893359373659875055278566693671068757576946012551919753955475413657548117503408384594112952426780073989323684207030153067769659377060983644864632624964224792655940084863104096428968178077767789304284157553569109842144627759823242900070198035791438781392902755644143039966499291943157164555883246022379538640460855121303179419465198774819272351410307467600409270571741914758298523872227181031626095597693567627429352622245385864478517727971159529575839810220286551540195955086433619947799554243554199066050750652309494863810900758086021366770836515505917178290264799975004574225137604395652884452631532129848205783645458374095042028274012056907112806635591560029704910534572086231647888464034331494310413330970660781030450972769754788714868612811177368694642861642306634359357856561634201653862489268630147686020561955980122034240699057179907779848802426046596447666817285913857901170206217120535443596889013303127083570334967736793077392727883332221738469203530055636761466305835274037263193697407185017847669141808635492405170894517959442857721288373186737070390091519184149120868729537332937481946706555032932711107789402780676910771227746514393004691292593608965532278140297263406229403250578115275097876277934466179754249027882879374083241553960418904515987945863037581034144479549753127606206826030667028842787044499371173954123150428067498218569952934722547733099192283248267520765591430271449526167853705949405433007057012816595039205970966050921358353424992237320273382402008397126893610104293572943985948154015723986867558150368769483195947795221232373116919957399886869702584492297323160734068265422621127029922957729595723101145417595269689582646106645946149993187455075186492833575312866433227685412704660632760248108976100475513489978760762909859244630940497180571688760467936197588916095819263858076065479844269037530750298551066172628851434606578417956641317932583000883644918648380448056052376199996033909151216798472744731713596765348265664407093078640903526508375862225680790892643861339633352163393802287014446083468688672876647800531015749097742026308923934266595187336731325294568480881061237453971397418585484308253777523938334388816493104022393384395053373721994016718572140893079973493119228305571858605607587148874312739225886016699217967711517309992553963380630204859669134098457245694412980834606701478113557198950178042598817985447412292322547633577006149781507648874567600292782376466276865944563603070647214995168873403869405253311327219883438638379715408829783672480145699774788218458263960583881126445545130209326186155212171672513535151657038461726297451445075586289299757866837912217520489344990995929375883163694369487962487299682342187720159331829796946379548672841805611231866179711128811527405257116806442906255680767582078797767854341292100748571630294694885139984006169688416719115139202418449682287006190226288220974863610566959967953782843451641964047313832474350102363669002398858991418370602694865839781282518497003655352326229113163981617280667189877373707307166460625407676340027476746203093068435957272128842923641390010126426531280938834330311586792734707322130940249191586057304761706803806343711156477646485982606032838662184673891099019538848965326113516347652135219344915345959351469562767202859794653927847096287772796118424931572252165690329309424890077859198202002025924586681928884979418955789087775073639005925160412643418481515940908928544007834041790013275355295320199304434549237700955554743815863925021057479653447309511196775341844679888760494729559106959624590069590656975755908428787260717335857997970249213072795456120128876138073334058757245663855733846019780619421355656640752928570037816891670161737648248905506991107880978943342558553292476678894401541897465633860436527081319309626959447394966143840221605064327652563921688183624092434585080690001854382502096332066258071523059452412918083544263571165947299203673600969545302318719544196437597599762191927042794792715433242279042983896451069411680407822034484298685524664873018877452725535658860469170800066977992061792777456959044833484298328638581426071803043200038674512199878589704093842758436601988887341640566163282108769829667035498527870336631541846912643441470310439052940344249313172655804379541629989029916206709662279314249218429975773353725015681242184623895146837301472518894897486374264787934424299637919535228584120903036239219749747321707248747688327338521845949906210097873394955322273496327547957595361583468642505400942867805916171136055535926701799827796464508632478729315422126827345366629562894196081227838984321380172550110023515684604902978937418766831516870558544600066359666282939590675003213387077731835327584935278528319750781521408818708495688584986308303782460456736195084135705369487566006143819247709573203723560731495401740299978600307500467745347675407008937169318924852388708399130076878953513199628741142705751469754386887531613159427114718602742668818634125541048758465406395783924057551830001119504878392750965940996308489036799811151552179957501646690983457803503075131178093939392476341593530422344168132269964869191066443306744518415700646472511133953563785322525212275927076869256129739420487713112963377188102170478491622246869344581399085124547142492106757555000937250644532695295163708541763922886745889459414400371754306229328448123214439595386318111195697196639195460395055167512104270050348229226109017953757571061591955012369033939816453723128875772179919654953869030830850953260622840432429493000441679509218610991895068748375421655071739626122495103711483630388334933900148692502128109854193327208945941267320808968860657266707098259501288632168807123845611876631241523543849114103347239965666832890130749673816855063542630094225783553703830750958186579912785631213062338783827730895051629109212493293750482123751649791640187108884111402521300933045202445972742610525070329780983097927447126029773143896501905253814357601564989180072167824075586231603791942233344361506917637629161120163963822852024779535543651469724209152885438974371576339054683224537747841457533270276864349529563303100809475076234497400304330998295073989320189740110962743836163935138415495635928389690835931090271639953634841102688176483072485967948684389367182430020482955482494553323756638546858813688760743810092966314412479739518353166632198640975919079709153803044848727209260140323060835033609957786065393567133348211730259297464232934078869654644513051013578943775204424103210754058302673672378105384727776149569837033604457135172674577038122124727650082401828824835227432199141312078642643715603115484436855509991773026548964484333868598006434595226057861621768912541947529569247728439809868710957172837012124441519741426352169543538133579417991356999890337424449135244705081598374780039742098788615340115871483497956927584458651596922664173042570279530426313517192066398171405080346337838715768542398732718868019465601355371741170150825806193451221816648048143428925173218158016436631208757774731558215688369360880093617312237777854153762558311361988172878104263338506342608551309413109130499126699380205029662315060532825870148227598523727413555122697130376154857455854844626838047745529958674953644928828625656984444772693362761056998126074227152928922031425575695618919128814905121391354514818406739083711929296683846235472818473417027294020608522217116658738795861612588002377527010936675785122508228727340861959090055491119224732816721951883738575054460835133633032971995775882606495361005544694670029636579045756640576646135720179107021529815679870740073311476384186004035189099397202911988774777974343159173509742962427037056087344988011468363848462615265072818231614502004629258648766588095696370755811934379243480834353960009874531278203718773952242157857747022073200051770310705493854837844393710237198239158739809877693778154152387250161657849870560804650383587926682406208819040474459728301153840396986667457895398279612984399107195837677164793654202429029045774037770836602982566818861640200885922665124303972738575047375464383430088132659458474584473263205558842601551466810346336392704429358627800702170508206262143176046030025947291915076713030804352886041168511016259781119593126199883113922379941289685743839478116815211832169430337145192406588990020775895979684190668196676322660105051411671950127895839842806930404240672774020356559293193966857187868170945768249716893473171936548502333564954239433819462040105377499946533107285328771069902446282828097630878482504637192111401412614554149568113083077418127832588205988633908453267544099036311553025721072116204735096754598226849600507166206826338144711669542386534995469451302459996823473024311245627688434344337951974944171169365579897088292295191967824039544382282320156729058127430278139047077530642200715753662359124691325597850647344322343975538348791086744793805013846609277132532378766955493235819570681059525126093169301022190377511208143731445614159127151419013289806031326364391714000662157864232213192568391203921899916694879639346909261460177472795766167677642400775087390431643868295609776359647383550598758963012082795224442403168357188461260555566052699217782662303714353775653679116318746226638536028517546110380809586850943788267632383076791464052178554563040430437294846445634985797435704538473863863895283488951532705963492026130241047704763278989308000168541734526863302439365482983283534663181166069605566011607153865585638138569076599022133100662353956147209788464925987197152439771510097055337033709890556799819985375359373074902629867682005477641602572854956897296327854060651563561385513688620690544291799685465453969056393407515403084769466229765309384337721893048955342708953744255687846452728935673583659053667265626388877714536200937085122558302629069008415328638690974151377200499403852841585854715612011398539492494107400586844561860934619198734131733043705032371531634538415564132585387031907092165189403602419454020649859777514618054924944976071844974442923336234213482660839093665746899471494853769600691301118937904524810971864442126786008927724387181789097007964488099974937979879172540831277701225061482618813837617044060296283549284252934999776158126446824661744867156268969573408109982194284349272394957663822381411729184833479685775871609339188892416908779346524988488185657634899377674282535325989699147629263590930426332118620519877242375504234897606661941600620076083443807354853983588800265149993748077986196150841102532274142508616851532160071719552689560698189977679028121319347286837964228984224924147902040263292632501488772249440794154761762902692291095803633148476065229948452155305470509976541022903870461385582482316388961804204489993280877175802415971683943692340629515945443579926514783394572129042318321189463042424022474452315067371799314587827375693299213214348026001779700193375885721079317343576255903914900438542650122996786542083208892373696561998980436665634254614282281194936027309052076556439145172052567487016076281390200347681152591357003752024382351849310634495373144220878213499963564657710202031359850556004709332998109875609881862201709819989646738011095884769880964420114795724478573318038027701040542461190202775821088120322853714648725694838665010225942317691835550586202904046433120587728261482883556770313744777559317949277707218789920810910138569408527258091070266219862493383119183890850323845310936838665134778281882122970214293110458420823671875993080868134591620950436211147372708739204800630360782576714951575189059462094592725099707649125419203293288099768906869593899076362186765422023822854343523743956891749994656382164604020162173696062102224128088455191208275694135862154069080579801909378378796292599482209330914422627989981413558188252095610334538958619010406795009009833520314165963930530482090424324164283993388173667450923338526212456587319820972664824652027009960569382317570373992147138721303093361421310677014601361215135572475497013496680868733494319586762019932037046545956342097307651071559044960734736787656654065652315610267675239764393552317314846368969961636529374694907218115407386209590671431985936410314956819652510967365676087940673815373637104699024738867608020525973311686813650371941279433571503440596165817665741443247473640183823279132936587817452073193013868754576926452245583707338605825261852768707312733748178770379259683001455041371814543867255761889217602331319671899526511948568775305155003366797491503121806175393355105951870031382589614525354818632169412478942702415921746722596275019800046116526335016275709079472467820104835010717646188254867276871815710349880016281570286868717632406988514147476568435039508254076744311193086049748670216549489629480235986434390923204485966481411932180957020759162754630642732229586548079245976042998717850580449802485954294631104801671018694340678335264954514742449464607046737911039866285943271626940792232809193317935435150151786615642979723713553480045643923610673404912937257995888663550857129005532274417782780717916713907394397137326249125491051260482473291299744167830371445254592598477854967284495881482059270707162959021646191271247039568903924648093338161686923863333244076942444981146194502002267373117112653066930386555904184231004191940505742656952534126013644977410980635592125961046018076778098960113896490482689460115777093277119469991660071365940455882268316043902120003874566949571125037863110645283936983922992830623482774703809589284524776169541809010456291578756384335217346970220945961499973705968190151472582335988208767431317217092321338075321468451232092785348666262737512995043063968113084739503413250509522132462356174273938604084795051154446620713776744534994944725412012129373653778937336552967962989572933191982397617182055336396422173458866536238637946759890275270567496531413717742666061507533055880266483022504280322543759134041940323829878426688369454535964693885863055864836400265403534758492340267127071425316635461090831340678851419303155166825503681634119520948471230541290764394712930804352842956125556239795854472088718759115562440507980182728827105870440775414064743469447006472996038117279882608730517675355187070337870270988096094027890213166581099782160485460861157286540855111377857990518182671636287570356481160902427292235595387393957998378283522467915897080596733282848018488982155827422023790953149037842841473983467729423329014112463366351368695947702917612368897904016500603522335313604965849322863884528191686385881949309166334221525320228010161238146684869161164653477172833097178140709670872218615022296265193232275145100289472078454319402031854629581537937568695166536939744679830774431500077786878237552329364264132260168688899797769393125387815141538021217699487642276896365476433536819400945545642422801219307587436882596627808520560621745583028658942259449295988057659763241028967948815245873739638418127115745361911223819792513388971909127374705146055851103396338980224340736650096807513325444909136601917485602491046838571003570747014774050467905926881782232510703225608182818573852864689746149470801350872793425366184818421396463910179162324005585874225384401472224078134246652116358887210920172838373582948317091320874070037839292064975224527139556518727506369198289703214092918858911276192061461935582974216719155767194820147490592223482373257013245128403198942039576475047413948946645826869095833794510498720710594696241667781837108982760839152620571127128320474496849711053802760739894131140331831038199628328164445233233996827758279034489659059179649962644516547171170932943493267398149921340309833571546661939613268219453697990111706024011133015189732083440455510079187331167386476420241438302986614918648488852329603540513585962983225018541567118452493568684711980306295949818506554963877926206768289530445718759345126538012451070944688220159888223642707934667045670901523023540768854988549752437552453662807758002043381095917437774194870042390032101524548088557027699279539591148775973667805490469365045318806027090395567604535658790297436696706268031790895199102329783466436039737012351401745022187999023459013343305941433611517152857948515849476337082382295759250987446536787183633324436115423904710347587878548246651638883198619222004013399401984316275927956805768335418753236081115468189356105561764337511750295963146535975907274594824200633673960452531007927640027582748361411507145442386398070174650887015725592417899003949101991761838392717032450230379292955837343903647323706333156068512027243729618232963247137095895757747578752281712145627427659351552460032610925387590587079958760282788007344350525559057091800019440818538433918354099571316937725228160113080810218332534613945447493367690431043084382705665810660124407543092761686851813334552049898838273783584982199750035925185415109809599635491021492878208606385275635256790953599455956370266658076848759387326138441455634941365862376716603487099902218088229653014054900350657007929299459378126901183710024541043414966988285449433103035175250193432764561468654265004663031495068765898906584275457570494427661238549402037602594853933829905359569519017081759947355450667223864077059850953567531002959912363116434405418753584300762446730752512538058064429528944391739012746991226635385147394361281585109484596588843492307001970403709134414555376854381732945327302884572015210889040018983434489347166561822256203222866169257758247133909246611670629104443517962545072998940542838955162453567563175128103217205435802169625307183295247912964475320371691400637545382358733861351005054316103350748389469177235665392845958257803107967379988125846968624093110721363831329103120439192428351007029645318890473143994468942450218469179582198456344045353026224619561467306079166122350384711066071116389464906277644814252842076637472550900054803036860956256956487833361953658814050337809396800370841675708422969622401357816100663210361346126562615866826279747369200386109500160830725466587562874551723768662569213678299317285234332034768622913317127238040299703844786229461446633905577927427971417650307436748479840512327362637088086728605786636773193344399766608495125191316232779434380800005181861313034577933361159323465970880061114435203088085511672513975407091071939236629348706142835720816853585777866777519773937663662453168831662774264941870270220281441288032095224638720355389530754209455566776671479159263424578451674312584323463821198808792081550532310100366279769818839010952912343341565541202927103934479320714319938204180717826712328696521200917220467243380452268682114631276124064546059394454801157401255667898522271251359055504667965830387924994149479038560166974909488770250426393974496599702818593643645467690593156202159463201040991936513461374056241042212428874178048442465609100842391989672191922459916390673044476657151296444446751205711150615514688795332894058708268529290613457107085983209781532616672535543282665338054130752818911486926914717189536021074579023040523555179583734039621316789472334728592666487158105942002112135787776382262421590283459791715220419053250826822286414779005179549847003987225016539346242898095697564629191191799904459903796599439132803825362054413686328538280437424939687708123169436886348525960842823974063734623559406430475135088642600745337654460048474439155721850453265680320805030015262025665389839580399616458291282655030107294703457433409482427093904013036334760353031378182691819110124497646174633014212664690271154717886893488930919518788821392774219190433809574480799006050755191101731118490047621537206731621296738226530472898253660099555122117087972382311400630420494506602652005012061979337043478763903277551722704900766135155484593388030389794900574257309839070854017118488648358549848618267249796672839877666769020110954970223918582616462040765056821866193545810083443369309993647215441962216431179962295163766587385336732879491671417456174020890558395730710650657014030428996645798917370460202315196981013021904802714087349836606555424339742039464906797998026506917365655873108840781227112925738776292464409557557108343298428009030667119824387746143549007449872890273861381725057283570356988819017681391107606915059603478271983909245626534300453669292437333603443146697986116026948473256377666184930525501009590749187194235047139578396379296583076020838992473425215033750165367224984561568109732588362204366575398297903896614928794266738529423336684209590702953722602509566525626617976252939365920612169311456696806226725129678495877490508137692617359533240383847221219313411365126394346423238492411425660648656114892015633224711766808978489206871291572912359931881490144026592965186877201993067808799840095596914147991790609473538680032310461483000776215855304896401157303587486599374112146968992445352092396005312564868103103413476215848301217989779935139814120625719928368952277129944909287740563646471911464185490532510190082594459815987040122251738749053587259853129276328143774033029204001627198769307393048989065251064173651804286170872118692737195836787523202640688784187528992415155347847793220873318745421492269315995230390032774434328126669992751950008632338907731607332494354873196386262992347345265142689356370632693437449907071941067308353505228478582573015929991664662674450464958487682747014811604530984071745062902505779595708953293192341402681847200238971157303379623977513927713475924213219883802449689809904555794221420894799515779306412310536278172889505710585775681656542731702643196061559787373478066670747422263983269528045556805959204690189104901684176916470628487572826456317181926587139519327432531407265271047747831586873922130777500132218449788042156664329624176181176737610260101446978412805177796263786548162793094124859142469732671906420139648138873915880751728852398924248293298133272514059053025393707564816079710839772196569371245307811706014794245111642265500875769204654705060756734020701729933111289406321460590095623337414394602789916898829957754378605297255789191708022109422146460439238806459396836953059630070222075013431861714940661919169887772313325578248144320423063149271350428753441667203573010057588618498005066717591847436398137521328592997486099537473865131813418539407936903600730212374882431518722145326190413407551616994774098613868995047343250324993879839689797451182166875785133539552311097905830101438722180153146040468270120051328739190299731926925621233966251115906299111000814093771351314212538444486548757020950183703680283562320159192577771588623343090521565431425049532706321629100399222827828414641326586910249733025342447197109631965702179834469379292457208389807022002652608722345696343362389922032165860572078346149159100333700358515485148956812228705539613627244814379493715823500531458529873953403471180959102628448689029544735204909871293406342175459434957736610859512167123326954944235854812658284579134530497204009579071831464832349469397889844138412878863954907457796997422655095209667922745648522910622883044314550601720405930563620220584001797662519521182128902285055013706583430827603801106638203945841677251359404208020818522386703798276035339018332075943894000221946530245197948676096939206911950170043962528859869226347913777711118937606002366933865360110783170050424637260017735235442616841040876863130775595160127820575061338922882482554561271921030035805928103056220413696394760885902609102041418425075521231732018592123286730655624523298235806779970687527817805703243489449934041313745058827895582003944931814074896988173436822577185430835353042646616028110954071007640618196227344802697912477140083049519363098181772975694690089602034278765271414519387496325715530019409242475556613985351580626020593556139638274158063540455048121946536686334052132676690074624789165041856373147911502290709762842894325072514480602399146388624197306840115170511909967375504454422922906930282932214810258922703650345124117335017370769226162630983510641199222386843481001676721144955217429489837018290330080029801793165743253953577128195194466899079984912347769124838146252135907765771715598190002064867020171023848097567856983231704614351059458870337789307605377180228218825076376424850532028836427530651109649513704330004110541970479951343419958966982550570259327043692473460414213110656222703383987031390530319530257139260792315802364727525840948301459162374449687683822252694172486940792414234518281936255277157455448024405071597484385027015004883252498109556790004738175998576197640475918108440446561787590674701241302630558936363929832185728578357028889078310181309981558760632606385506380091364490302763540529718497092331788852405637898307811534097297895624176853167506323841369363609145894725441557763328393414403192803969889342529261234566762307577061791740967280344378454272121855385177253857695556159675873846586272684651830970288882327055730003340970129255852768114131301984475951207169623426735513563883396067645260745931927073684688041544145126197487585980085423601414916503330332065469676718734475656440522171193588586858323131399450266203915176675115295687638497004487164466063111607514098313084284932274433806266490141526558538119917950198545833765792870940103629490300061533242762094314682647338895921410230178264629402337027858087579302181634555728059323411520457636393380411252269775041049387119630834708368567593300207857446130509193279650748308742212826816778285082457634984836369748045342614217235945166148158323001604613504050821915600644528448217247865726267626393428590073855191942410249907791244770356970707899158768088946604857716888140631173063108940680499759662153102168878628093157774576378791171947720002722859731108573377916928823469268552980028059102550042600231460229577222766241352136449527248871124786166264976391289223458514083246527303984022299291526614041009984259891517739503706223040439861034304081148099498393109342788898291312746229602495823487131625939718072320013943899995287306173026728025167757041972420072400673881676652561419725946373635892271378161721804778737705715249746423003305161966682451665495682171640477569925190765109187816216569963665036522931783225574526541007722825515840067509137389399268285172168596144406448165094522837956270906727643356311700933725243388445519409626458116541694252381166431263472064241895750374258393262616705765214411934743905149762323582684398868525741775442099842931698564361196035663393919261375550892136984905617172021418571503804749891709086330713905150932705187435008614942159068757326082965935353686793188521220981834621154755831899787756083464188691223089067188512595345716354068313461318338289356862494630097289257760333026572186858049098819203254326540468226163824072889294149982219634253008229170426104007604855022057007689600886510765541589320488926551622722858953584259614541898700684557993622511102020517997694146523326523876633075885245837033588717728212109624378177600514650256410762881136541222182813622552162432461975550222541866320572802427248341280340210725369811684789656177309526502358427442828070356818859167404577497278856283569992951775534275584662385387468533872466695977157111650870909994436982925073973387773762453190860441621794891180898872584489034256070502947466260150371865084415984742220779353152023586598227561181743834178827086159314931214137448052023061264157600787595681002139316837940879464103233733154172732289588390221522814830886188776645482806277467796470550047589715188073218042519224000372063885496407501535640470042526047690297343953215057100255791518433368564911748989733672636207918881067106492761042812714287321588802166060055299170055693553330257937429362983684546884921241712733052738798982480313908101052424290409321636917648833415693031313263018411784920817641623514456572436232070065623349491737315931562729953449640176916529553223677212316303897684773910005398540199225319226703559922972984150406859194393192866762683774967235447283788006288141795262222518918322248702586449270377379673157334650459428243799843584065711126537030015230872226405676575761010602351140719981431441579286226844798112125757880609028178574799473902810075770171872338589152546952691453838011267832226778188421724537512984707516467076526326749504054286156707033296554577600394485103844618859158403349254350384798402913695045779165348980255133714867968669549009891124542126103506572285672844683774525447748151901563580104263750699102428444259342490199278740263485584232783019513234870922461895609871238078939276165293132943329098808040470481361100189902941616644254851230633494985086072928969145772381422889562598640313769570408356890990598467524990913747419010092274595240350552550266106003307120122394275086529066529273611245721625316649389756453071884816916127366228416461011120384015392404685626824323904618741049374077563814033976462004580785321673181383492235958819258551701135113908055693200775259523081386180599133636944452816577975885419549741776617544318906243271970836733195856117527233666283708326207939876965081671546631391830499639760065092595912444106475899828728280540964608505985524720230637981158527749492143867650415810236424289220255726898969557263653922972492686861971293717797639066240476695305695489714998342037536658754028827796137390715235487377569423534450185589338827779561293808087960154110427816634864933296138817567112897095632547009315476683721671049321714766701533218000554878792937976558819119118751208544040275302484409885590584074325706079052332776858557398985701267904222811222621684138697266368443268513458442275099070421770144487194598653324720440519925911805268332850778163629733251766870435117135989994495513881583096238267493767207798963383546458073582126192610840858980860578783114208940999546182549902250916230367584544568591482148070858333452310149452346021724545228029562713309739356302691828179069447737841272823760309963587782271148377772990972457438599012552824693160766036105044717564672230671234382621780842620071772755899305130246867029665116462227617821897475281201684045037025675304843767538391245186929747413005098759788076426645221705267959365784576476496070930254007536055742046976524757862292135193466272981155760124717658507665096836946622754202860660750522912645207506250053019720765842243259989246599385972706457533471084998590234172792405233365252160275061557344593878637589969321609366638484375549273556234382392575542642237253810562382855208348011546873121273162787730609172932443663197200249194457215002376328158321754476545726793689390662123267541612361922926977905604370524358072665259011205000553801011396331996302408399195685712096747821544058740714875166676292792747210876439017571112257619506312996184871603243101546417601357249186739424526140336242535423693691475314737872989152886521285424855750025756846044753219528317111094390782805522828584845779874063527498350957759561402693374446349678342549301576868819176914331897230660093451366937960458654992562267584546126675183227928278216485068916299680713756117944359668900711312115342112974814478629313293522625525846498853378866761019015187921716022481351809362894362945791555888030893482776980938310045867549153570648377874848241096288784797925481374378283879332222124323994850028361733439414002669653820080390274011628037087385944150224737054622604119819072428550505234446063950887050903833062774374570965502167022304120167122015644651134308275289000194654928932796190976261119316303423974615515234199850708075110005878298941394419369679925291822485328608399400706543995162286415158481402254799883151893236537778988210487074409896968035685226657394416610071698821825115242102412749361542068014810660193140074600548385959674130453659557083381740417549832299534668862248175937530298299822722840394298277835134321368600646969885375218867647283727435241281447415268467701246111432236004707378352603889839711327390026923868860614819712535688716231525945165590574292662074056318339515899055533263039007951003270076884076158162085596578031179543773610011360558229690757277625171804914044871418201845843137633778978237648331088228295667895365724769297298175544394208953292241748305588837083161094773335802373464118592315362600495169991473684673376469231652667026671902590052056936034344739734690216258555335762282025572231026515638231061226155399201246956084827538438604440978753291687056191690937973031253728902168492427838958448200034207825595329626746070346900375692828730043060949179811520803502873017111181408242279955106920555332490917318549837485595926372409427793639902673095656551859160746745439970293855953366835355803250979127590625675027616793239219031327914324408409991946750447922724634612759415262442132129661556183961331264706305772082691667869106067489177228267551169358937283619958311957838803808954944002226916330159041476141958719704162799489488077885676115145601232856220508549153089224178610831570952938946560621714690798835391239927840387445917428861141769511150648105327219371538412282583917171449649234864226436758399953536823672311455374096322790356812111470946430507652717841270574860468714999109809085894843766589251442042390533436765152006151307571031690050754947653241924447891796196694827784544490226527990790736176047215207936918662320359111842432103115575333669924036231247117985361952536505160886193446264951183500065269798641465203082474452950434419951164363861361232567122854941091937495034689798672136901580374403328227818531328216389002992286187218466555369969498143169517776561379039240192868732094669194634644003704699660298992825562071720686993592202055242142156962981835365151630847067587620537348258768290629467748536540403397404746180055543925258713150706744949725865680469485084548377543829787151820289958418581022399084732384100351707925583955857180979121873748074814019745944959380726947181820215417785990929171740404976851272231233670534658662529482876205399425207526484709110866709056525197399792593752287563259463938027351062046802595200258909684396534277340256869138849089164137666831345603910272917755697920259397339201324043245597879090691855362245255305035431834792506827767801457502589279424051447362103200962764322480412645042912514277670939363354794283648001599754657333380231154684423759224509078374454471722884496294048173680519865814522769256317413553603011853070158093273006138936649075481850661461243666306241132129958594582019344910328662106420925735546562150757124925393929619328923152129987019862769057852403331640261634258154177420226618572229207249479997157653684812274789715822615092874242032218921819202844950101959040716657553994566450299473887674767701788393174354479441273566160655414439046194088282059488579050637272159686835359079048236215509932790770912764825891364523084865391491808116386256562284631251062271019173717460446260456351950082870606972627850424126127268250195772983939185169087027416308024978561962940825630400308453971783512853815129564601967031140527395255370961992029611410624751946248983914819682219074202203189444403700977567103765474580830395171999164478338173025548580723882398862136034492073227017084833847435492425280922690063775460630093178455383128961978214072306264075146278460708007104352858311634512949933996189891119882045667956023585810835865942616558699042168080586829570928471848755402073677016898808708519206298965550148194935853113907164996214286628151531059551987757540862235894744820716697387385859970548029151707958408835686177417992441661520546410629911756245562633148847458055244467423518957692653649504019494876175149007130891524912779604674675766279716876501426929904920950615005039010466855293813935597904519903937640952257317131918410681064608898415177467317440173645348458267381161104269156178265631209208323754516120517339341632701652995850268202270214643720782334281225097022929009022330544163996901989314067617069437017331385507167224541848441778030989816570400740333788437467735278098897607984085568096606358622072748551191500925930242930640295702960915317829132433769206470709310830079690754223885099168737429978305418029086524244646119161899918817162059620259637259666633122162415224067406931427054256928353823837247153467169921907006779153936649032124255481232603088555605080828305232035577470452424423989911961725920731387575977697170808381455677228498815320811123523631485864567962404126932006030711322435946322385422487662903763876062694834964242374833160770468230145404312953620168320394203190550917011435016730063914181489148704290430583059753365312033331869705614660151581946255415562732431207348021522591424059564021292459221400162220182089991111913822958785845241699187772263841457753765615576849577692539488055027241057245308130175510540325027486112438951299991224861914818711085720761470621957578436669516899729804085978153625079911648526601172966423866544727902141476996627338245144629323008687411901844527118824095597071781877411127888454951299083631023068395150552243493135523507629779941625774198695576842041203428459443649926374733912065679281868492330634944067049964083643084940555060459273006756221033862241120442450541453113432757287452174055769992554050375424844883754765489479566445192104939608783455134174315408173890132875286944994741926070915143691805989171895788643393835318929939578952887500605953309676890893318950743459323167373034795138694933315047874820185471960527713900730136632571667058972650149323378764762110661483065329730078494034714878010269167740351149218081104460739562084359090792183707914249801038864599034951881461093441735088658425178993733883530654747241667059738598609713205592442792750441480486004958077184013965626442716952223515469645845162295109992566549754671895677077875517020243285797976016629929861376498161973493418946639203883604917694141405106449813303135450379324698481236836756979545893865642009388351594291722653249616625507900076228747253005518496695388122986876386202937901393177208229667142842681852384587073592658123227047673357909834405531035096889128200745909187410809675284073571683895951118365354002824519539325870560369446475107924664098279596153266059402880075380372609165947047325717475817755285544103343603899801188372138740380241077682652906196887347900993635495746544692840694001611785776454209041888144864281519089489469182056554679702600391318271522405826861236542138221333978053070860774611498189052337492406401967447177505686042373864142887049146979577207071241180386669186596912741021985456530959909198248524162849218550338830961149007270101226641941934975293906550542216128961796982190197361952477050320333491375334172652109681894195569974949045571986528214027912891295839709511762614405659753538751239869934215957422533246740958055047933975764461849234072353132717398917147801479691429099529877500478474953896168931634808553522640156362609799871258149518346260968287997322758333016770238584965561375652382233841431941703251230213926121965749943506273460461336923534601220376285133085536062657161320145952947221258513337443929964523114244171487149329884356507031371857099203014794530765485995429702516961558469111669931698392343297187200582909856101590437041220745534886068263522535350882494062442546427251599123853835898602474233273698380271151453971671451177401854812116299217431164825088609447172215151765178798007874605930813642537862398320991267531141449203314828995472284340385157258066786950012078563789186777740520042828885473928305109159003933688683261743390920962866133379568383716509473301004890504609211297858762232384249160225433081074334352574713501122834225772431444742093882126544184963897949305202648514700266084534637558336460248094112522748333401906533522286513723939941721170637022249970089274195008662079207557110848408685673266202785361450877951424973322729402728665341682012540109843841230478518591701396719263533202740380303356428728089693270033488376604184265220346795752350329293283159824013118196803270095418992074142920214525090848960757480340641112454176024450851817685857624304003979743804698925706328776374775356257466891403549296448488214972285406975349274785199975307175045468467723688561793057358156612258862565864214495378352759553951894021355964956557421079694616850363950441489693413796278919758841857469859835599351943030707158472490032544667681308283698874904410055312563035581291984076372392214856699370572588091138656247298037687924785007913291992893089925870301318177216425349094117259807911874262518911009611932261971995664741865526514236063141942982333015584688382920129188770523437383259577483164153744266333582851254423836509195555038560038123237866741554381560302680410492732157881719848613973014938967555848029835166421750204763601525891681038812042690238258821475546798517920425954444759376673765605053515516849293716012421120389095621161191431955437082442099683391179248036666331288009070347551134144546884065652757810666388106094922025361255347847975964970847708656436906513138501353494661968864954080784359146118614380101197655029033801363451701355532926858336517241258544958447271606344097221249010533317965308964990010486126459317336854553701207843534673229510487612532229906717407264721063393647624148012738822410416355645317117699126749873913958008888043858127076846911236483244106093809010063822052402915893149260977249248567721904331424895180607565812970986281112362036238659458486277975456712063903409862770881421736667294490253518132411875377862940936951184129890637859657666816037392447611075918302498729322698829214370209687690071431960174755165096925409105751191416882219676246920618870302766064397187865475100752986927441024908234830945501543283606172098891301794655334741794472259445793065634829394062024315383940753176408665978605786777680827243112936917920713040803147785205786989607605579747781123259468244626984448881034776756695575595059828584318324311196804545119432428249093763698691155984036094703319664001082634397869665971453664646057648593681495177352037410130021526197100104318387255845884960313814082650445151757258922061410833139204125853429724519443451268360628737152063302029713455927047698097938389549916526296359300442683813399357058925742322214082909666197224069170602088186111093390051244493592858760955952188998230617128403860485368313775078669320895933521603980909358851316591092446663959487076038971735105038293713399389526660491837282440572610507221189817741273803878790768748711911726456327617105032369101345480284506823099990506456615046203624794850369533847571181994923389129506030890033800805842546197122914258573522580038760815935659610625703580259416748215685141194612330078082071161630901271467331401977858367216519886149040845188789622407698966988041478803156059785719073449737256533777692580836742556782805298144237651300654601703872879709567285043504819510095716085221732813516709357475892248956286658436742112734912451540534045261434775019137762679731943704292471267364420223632990022424638333749083601926351775214601675951375820317699619053061720682681513762868546824176594550184104522052526936664715515343121638772128732519054258112960628329544536256124311017225110972632511062415376624440321691998981586952097643486854238765860900982559620327747024849012313105872763060566301348405967414113553961581259887617548684925816121995643689337409325654241656547045573070700842781546432999406932932641603404869899596287623486720047134712388126805474348924926957704661925657219449151606537434788954289378005823213191928555745842413885206511034190731335882455397418495916471223015952629487959932111092681506408925485828636930645302624885975434107246780436860992040208900873407052821073904994032185239639920881329603369877569432602314362873697097137235270613181676707796686970329780390096295792405275939788006044477507250134815026444987748904585081997633494988818100256176098563528262162364274557749308528980241864427842658530124209331682304629193496523489453030561118365566947119350114524628730601843252279496135870780525271001759982640763158536355662498351690837164074030987557026094178711578868735163961141892354345550324587370200993496916208025441725594775488404152661322674194342406438744293414400195726264249225650965771903867249382309811066687671062002971363866995066030343729018257709006348126911183997122521619417305123767562505413443970006385042259295977092759235727135324548790322544312211549046597888297297968724925314584340407486048726637928707835542318676031978968212695314774460001521931816898289471260445071862032088913177940050935269943023353240695803819739593798718799870167325460731248062965734029073471350764566356605030458944694390221103366887527577692219262713891439728061305057456224918042524914285977476283953092796540634929045334251852692088368852964094437454026945540542951733907402754437939980926233644947058348226976040462124873975278824320112932589126582157026451864948686974927714873855837349087503969541135037580839896607974444809281024690042079626524209631680822913546601450458870609821186141038712293957982875966463214030138668192880917766770717520341778065328062474033320535590375767350611118478234027520073547002550706941774441667813170678552900391876443977172695096229288254884833550501210200616830715849438709997528455640856545665038296167755201074543182937913201374211726998781978417713141664295749609457026671772719071142304038703077868198622002933574447446322214766417871648189940896422092456224353077388185154674290605949616584223920585446861172103754993906777835266412975591488222434123384160088524141307517327316534434438209445803414060687938808552069488038717435579025941835894975327711483393400966499573705216082748636585833167037629105032057699356484778865684288702212725786368499164956028088614203538400609096080397679216608174528596524130970908436268591590607968742352076360234164412271706709069255649501590175291882133142219367040562503765441530359409168284789345036923306563855361147906783558053333930819274905440357200959904927933599938650940469462572035483929293362883803935548382522611231570840540080189101302699749899936214782228279285531140398081679733360500845748129067811845766758290143662399535640661821548217184268883088354314492940257135077815248783854523185368312026286762428817045266282111763611459477382505268248825669881760990149970310519988027414228693983974057043564503063042886121463295754802263568902822411831279041780129921211599097295535847489740517276890635029534872326215963979123853779868135781098243257316090364272506362194680102309634927829213568500409059852235369459174648869475957316294010244941610659487701098573026025298214272644771644204235204258377070040598288558970453104702653798018021198682342077499153316150949063764652866841904103828111736267341765226979827092206484945569470996462067890124030503804130830844995763414255292037706749574519841784451205966166528845048921740959991122550284885900390581172557545513572043956799884436019946770229285098136317713339888496594895708343133317665876953826400222734059853269883061286723045608860793175074746811852128400501133001727571217533748897430157478044359995469440892454493975945210013467677702223549430652912189270689374334822603118870486650735011783397780669129019787995660903471517227675180220787961823319698129033001902567111378603388776698050774034718510830907435591933765066625483199133418607023189955273582964325310717324449383174699215816588905179627677866267886128528742683570545929458213214457285500789614176414559056909003089370629776818428863539533249165909094096504298898547013043394339846871101941509626621673491091341910392252965654506312854825608771362680239846090258107766003391195605705282094472805724273742996242234898556366626167979724771256161552408317324049807439582825383160075176372959422743885962011556034899731473012184063030057240138429722920690202484824297353237225963077876597924023928090781418365086320214056638481126167410354414953582443114492138074675595425662463282208912169377249940678936447481284299159587039189724364534269949442102989973977181019297916039719677053000559031046274610085441333865332171168407800254550272198708328543998602209808681793573335742874993933686465174688237846150065800706471115662592903696231387298188104087261469776477150747918727892378616719932979522034450184009163225426436795304029266115008922559434381823530756935286231066821983212473543589891975251434161698548543329661282704814555403411500065603508004329440548911854046401386081771067264950087077823561799886986185545105084239016721923378788345895414918797267925866122751968408936999647149735870526180633781542060025913250767203907012676654835933986850469157644092030838186253688037951667372754912386592448485578425345492234386424138918706362082143318551816748125673696140103922582432573386098388330267442569563680444290764711634896221943606713831052647931666845099965725653242722302338997175058483716079555630096777519978725445101495577781897352978878910783698901835517604054288063907568940113518612746173605015345533343337059137307177413060408276181349268383081120690154192571377881153362679957917777005356431623404730364725797044341533331732103149551296824227187580107646911529267664980126848016561110126204186201198560511404256522144798618881541034902283163465662073405216432229232411436689790651265631330577282178816960294543014722058724834665387097729731347081598903720007556429141002166124264168496601277738206865282505451585446382729907174322431092366556933900539922661863842345057632238115457364750350883047065042173349902835134672764169257233035445414104500319441232820452745875107144476152456424725806472908803565731764132944903856883738280289877793196205692999747677500701766931753995800714313367553917711974126426745127290819205392554855286572637181416558129424891846274769689541828039764836329082413799038636584794233951178146683824147405525060929709386249174464164942069802309232826728497226711047409482326645364927532145867056110311610955179080758747737251833049583273941463046248867959588616131874645217622325860397600105909781296505575392438971357592143816523143593690066708035086121396187165414040151536949228188086603988634511343156618562137603333188227212052958841312474597293799991726416453467605336047290882500262983287061011991433757179432874267100137515341514871629177566753742858388195124805881573823538388203782973402198972835854657226702516736578869951700034573786906270718346234885597605688802545043851122297485160288457259641867253578998995469781969376426767177160817455256601306129293454580896494504415378557513587756448140191545227900080825381901869049793429556013467203397756833497900833893419134457860613164773344429811345586654516264246961177974561880050203371887787950411144817253338611035737396393122042857689083546807934760129740533202219352060289001271465716384211721173243686589756540688553580452381276444538093923292584775697604681403595594691123820848869550380009062137227159718061693400496173680497259732602165630614381784467925704374524366296978311204846405922687241962149260284302064931688341586386517655811861478846184193728598017077774666917464158828696041653909928736004623829794969025943821712823419070091342155026063204862467909435874504461174544745893849321868870598405063608970732084655242995338859952554710958457407562873744995116933328884948576292468695378081540937996618592560729167234139141069308207248533452803831853637671677249933605571269127031620800149457117936211564935433966152219556725275597136461608615490718481956161551878735859733501374861484268435758948346043511378561336004130395775996842088185381316748147787763572469778622809423565779436038525301997824011607131226511746797847023094114450193158565834499493737851409746229385366388751300530894712649816701027040257193430604910602104991898735411913797154234412984758817173508347622646291757224772461695268438926966180937854732592159102170952393563918989839574927511837444532759392035653121767240205267221553787631621840078295904611175965418241997902432769003346611605424857081249646541147883629249044722156331980349202383142157685013041605662017911032109048809220818373669265917399922174333385757824741460003603103711575455983816244648657738554431792775329495261010711243422484844026200328584172175441554178114853488788171952007862511040504035422258018161986283670721156790480064918133403222144030478849177502805054166638888262644334322792988050663758484560441518356141917894943878038240725931313078654282332886716709741383751406831359773358248792018019922370313932545909695425013512282766825404890655747096327706821406358108655005297109047817375988622560638493006615373569973968405688453033439573701629941187301273577932477391062183741110469594206242262190726622701995941261172514865015571671976173848473046041248147856599449975362964202676552165229165243954221717175547452021162705370817151691436251722927992500100544463480514382113033159356714494718506124364258773981641388556587098818304127519775898810581621256269034285930765188417975965894144961607396930601118918072999619719718863237138541732319491289581358596876868280306851467989027904227737166598045794253775106759097989850944735121999878629788067615029713186773287785440084373580285087183611599436174353840964718026932041611183658596638572852241919543336142916791273397002841703213887366546236831041647935231547861236483819897168495950157114387805278726003287127033075956221143587406278207543463226222303471703986199425282101548785915293540408303372175295681199665453983248710492254091147527991392575188368254894597397961206325701589982977615588428374240680053056015440043890207327614159285572746280827197781923804490572619733294388299248930269023054623697937085581534428345189269974355456125610937292060521296323534564501129736510300181601842440965533801626197013680406768060121030550669253506772780015969775739219036346912647691538105972796782945645909399661588779361730460456473518741076555949653525360807189380985809326289184892787282584003912072002928644732060025535729441728605205678624933237740171075514781096865393575172090850622184385554250931597535752694419892160088440944648719662373992850436926703559708237542043277445782713006935105669008367523748902443529508911774761836102063382925200308432844858692517124459364724524484270157834946993464768978583847697258543681315597540864494666363834989126992714070205732242185145296489771227502233860446648645106804855299550168679514203584644640160902406706754758851347338350102834629091443024604043489707112528441461528871412215674179796318639954419353709787908815155668726783910416527258467747818954417735259095224394154283120232662999964913638564353420554912194374507023865799559025145315386079870142766451091366645703949248894923541204296091595004389189961503732297947707913055681067890116082524682133540144296155771799561405017900853324406951188258933616673808352331259219982692501534160547905600968168379228599919916591776718357721959282792195112170932233139539213959075022221430624315080742199734900496057726622688765414819757847049585285712916716295650697707778366491665483538946658421955028955690933659677934000513334067704206869469086598451479769485218895828878014935952506323280756529293192430014535560345342035245008019493520819636070368530332683125795416916549269729166613327377745306262611378340729589543485613528005950700335334236851948284180648828344092722521175952818696299367820030643183479931945059401020878628598793715886706619494073886160287273231398849688198912386000787539254140534506427606353879164247836232402412615383243101354533739336045248473619892671855333676742490120032583446987019282967895422686806694678476616178703972075699646986616925317379994953449841845281576192428715042144694952553828101840223996260136961489066478989793590749472713451449434971266129077267913740750566625659650107883408932646498814736785536403960502310342005949682813931708263625257067733017138534126019039578029240135480376302900742576151413814127090047481121232140892521706198251255500382506642940390429614372497822139623104755246037994330261458891835108760589818949023484765315213735781158533662664344177852074550962509557302218581391031751538462254911899061826134062009836886984047960530871206237626006666340924864233007198956077863059198048914733734361782236931041562498552195109466385611734621838356567246326088596231082203619218737816167510253524137878156156097075463734806454160375666308633143175278560656320158209286238008378599391363114634112233573954297564913953743909353167015758907491828597793702758252963258764259609947879394755903282208689121055710360464161277881772010147528155161685018851998600055203945701889700681462257523829310543128431449806180700641625286392328856233989025183806335282846925755801251491901905227462601638971692753460203037957341819835013068613655231873371662139801554527086333618867095059439879441135268980039023351169599825997782023001795402642796608386192962252977601801819367615454738418941436225109109306206749265868919593479769527920304572947954647756230290449346572189694088505814537448693756104886797977342303015816448973774413463783893284188762758341658867669289898031504690448022876374416493286544633281179192294699861163786619404094008808478501475016513324725834567967195840898422379685176747308247462503664084525163173186799671489824077313445080403074570647399613723470329570812944195492540095063690463462363812493263071574853172894820629852555553003693182057581216990506274371130492506348872005323777860111485679312965034703508811910219239163087571836161668342780637156887826528516438776060940843403392225306604805201963861638564658281062411416473328914530688977878831839285911005738985735538864988980446358320153748263166290245132040026668451897471114834746850010943314257830351768158460040888212361101547311839899514307783213524291084714877596281715468526988639284351720859448798721480823318799537788639372234764398502865960193269765512136357101342830515325173057515969387008855649482347330927477100261105241258758407583012895729950852747784513021278373547595273877483812769657096526243716575649342316352467927737671096597384049836548863868897925192986145155187552469801584087244317472586764168775262007247894449752581608986190177802249164952742087271483347714263373786312146237837247470049252725686200451591481491723661803095466576197616289107955725955641369419549994984082079506278843019690642173897009454197870356541149680491517751998549273383792685351542947332077220210362966022391206078039964104660675328249246377905382569498426169942481895313476675961827794656257314435103958829558632335810539578087265698596432035740462228696194170028734474822055180935110298410330255123460701446538586186768932241799295463408959737255430593207702571587628897124297869438960930899268043350342685681162723717344044682015510353869937316304788710079351700894912486733976342245291700078173257025777769123814970810513466300227090032771257842391577501424252291947890655963968378333955565868084902073729551421961625961863618490537849034280300599361780693423159543893224303792761817336711140639877345360419727878826635319490390691623734201419893676394337505998952143113811918351863641521578064426450880080231691980257795893445847329718616056007758593755365357543694978980144434119953073301239557368766038098478911100283510488061532968871262114073274201897018110019038162066751580606859323864309487769729795589604816271600580417137223557655084985749234848019382160918507931105643837626327587862130144011099852484033303059313196938439854521438684584662791106744982006519358917698468852777585287554124745554648181414659094913429899621485212653520236311371991690112404492063847612508638700727054190085700379390848614837758494512851624083450212448538884342515769797351689992179392890621959006843787346742668904093380075828654453568619548907136370507639656648574818439705506333738506094032789652198344854195880570594905390904605320406920887903505906268986943340228743497252750694382711538929206299743572048023380588552368103748055677523237444681527642473096467711565044565962938385080619506617344341688937673642196822409933531182034953166167028456374634333621888230238785781805063499378229492379931353511630798857058180255411733745594423600587419057767299921012515841074373110034334337667067506076045480274197592524580937223110178179466976472748146296877046913777753323112812657413071075631072626038254587483568775068751961298354782971049720776020109190156202018316457325738075069896017988845595331158983029164074931131643250890459737004092393420890125621474195625604200621518620847128947017742002120266966933287641782158680716984821299689972703746173523266916565538853020517086555506588004225723796902182663654769219237890088192605511131209892632552756244862990583540596569966046017580578390343632012349931040325830891208391703073622548475031172898331090463711711319122015979153145093639569216929848674742366165005046611060150193942221162241766982593024604517241742785331052703876887825702196451468004334936290493847468974345044242194903993302965471929205887238596547157350986550299476613338689397186455657768072528646754672048097398065097906565728599669154528956458632888810086366981137361564442548971888030586267578294288257206012608850073511271935101490794231263935720404722206228337716253737665848111475056171894831419063827722613068997136132743558637525161939746432924987924197471007614671045475591853874276710428383439503800298470628292051502619815035277730545126695991802958611293229132352600216563377789661221909057659664294503415517613527897138624302217915330822492583168793543586943199813936394016439294022252569293901545271620711013367409815878733114063908790070038344936598063542195724723920650092292828751331306399941705926751355547579500447563625289124359162083151271655731615665661299184127486312032257223241367095452641437135881948113840089869992327403013244243351546945296234908784530359401270937545951007166919976588655493442877157625058584760744337250160933885275935696253117580440755380442923460403824261880715394631844268205375525951129877508515640646095406207118508543590754355111913341761624182021517121442885258718905687591717138962013665621595925640424302420750393952721053934601276834336374701553330725453739848683963482224253433302212394599315578323165673562856275350250535503497286641756774686191398631617527128190586488703980337163105696862130363804910470543012620583207868469302279061346213061594886892375814003486827644971788513939663772167134159690475680463972569353399435665413082267521010329701766921395700110271189156909849375041338248062093754167929976007325967411918153922701250979163879958878083990665938078817552362148020487377122051644948101040657299152395302606147545844616054711303363382836771818634821901594599154503864467302931975456865867793016773066011875448288874493438950961572420255682503135900981435892248528507458605528129447598771474382131509377002249310830177103569743609929243648142566440331991493917335302743816166432056250593840629186703751607339391925913342595262955759067964359287529056545324534586416186317665616493986420728972246272730658823113220799855889230793731095727868991204728609732334537385310877043919756047439477816372527855020429403270029200397386026317394019356850894952369846415882924355300803570620591021214894411283777855852171285888560305662057118462126603636694551979124655796506404935191008083025802589092348444344012895707607582618975760507955118838687887557879255714901715431015244769972390333902207681908024658386904811710548910511886386209697783244664261271129105547641938418038611934773779223121030488827704994201178672788641159020850559810970761095864097823721183729692102241539992560458987488453330346442918459756278273702136537458004965284872779995605206284048842869157747848459837672524449454457603303206333422220926950431166630621304626405135129323399626240568481956595856973274220756677849599905135042055811712782519303642179099977865043303878135623834330711797111994358426417276324825753833000604988032605940280076217570232107075144945938255823402119261953373379883123818495036097743331881637932316524381622953555149633306142180139733317031368829628515276484299503902695197704345590565746896929979070574851375876286162845857034929361737776296874120408873284865257223990455423815087292844810770458578305513583620582199958747976247728347281496024179979728890097223415514278181208140450614809885601882236672743590787915644415780172266329458570068218506998852787774053129118035899311865263428452066909841868541613310295790569778321223888368046331416805241280913941242351128479407586206450098477455470713852958394231318981321882049670664829244770530759665873351198048348230215948803686226864913949336839121788569584048473649693890331536689576682535409971386520675216112469721614035094732945166400254714190362934719664925609359653664297614201572903869277461696137946065686567735308968135329560763032963118093830324525573483087526339038026399535501992864031590507125284896660443196191474168805218654288763169847215709503585934545494073229740510949140207273592418973078620940215914606414837106025038582077179196370396191652076703357789085503531938060060060201093293568411864530218893463385829592968938641686651692741929967068216880929722541974517533161456459746923606719746094520701939753115087795295735447226352620787302773647766081401351990712797224159167811606985234945814817350687061769574422509758260454746054590167478333272410109950536405875989921349556514259030095869080289155050436489430297534469828553074262402203244248900923075795321420159218254458111499591031172756034707414654109429769932807139980568419396598139974062744253842483617733195868274571681520462741493671295557681203254923975393087985150681510478124659315915541270244638962123826175292105786552775232251515798210215239923402806192390165183568737876612681833584386705014221373657154447106027358571895184963463525486970629481276741339742224579034021430373957017428614340803392617630014921194576361488516496121349235146394467919292499275335373553480909545332975712757778605461525175462759654200786512964083950937993715470810121439763470380676159686706838244747001227257741478592265702571677208426159483454859556137584776036154431983013011706205206284675495055335326167872704953477953929308828748058984207737128461681965489653645540548592324563794196021823814719449324536407799968285333072029400162326239414181267826881307525836280370213177989912839005734556991176706628950722708493340378389049021705742676081171275405879563251098286830914096754864374541636431880810552346378355338563558155502331714529920295450957965191245673800544782688847354473210565934800044578664866737260801113790548823627147750932693805634394545448872455639977876254082618981577807419261036651968454207781996375040032588927818186591587815335401249421462511809142693067388648243088493359955082505170411522949796349607336547730020850748804630315916332520248630599574410040089116413664380135584953131715299541438634165057003567424615716028599066815742145412378863692671782979467888487191286536958016752127312237376744284719639012284379015879021366644563713222453629885807116885309525896492484418984807918939449128728567323109739438500088497298183330397074809157048711109041392324598485803336609833843905788878350197078012875784001491223224317656191126378296286709407618674284429074625154019571964426677071339575955699764294835559017841349102592929589530221354932594727007360615026036728651889010124610890828964071727464336313518724083734734989164103075205558554693543172971350045930726181007092304291926879216198030050429604345949686496542073839947446109001132837638935410758332693061886859318150028480351108026440646909741429462058966030677303979609976087925182440238240670899153332980247234051869973393972151290504377718253064131400780428028768569615537841017525836907593996029499574524542409561926722406260703942614819850097145636368384453110911408674720640893647837263653978467907007358172837603620307153191465020799630938934890641916338359030661331348626319274659443649648938004240634011034558934543285380690547156982918445081175255058138189881987437214547764036876668971752561096418969753240398016070350857803348649270934465376328871449679517450068478445003800178041354986703525146056731410808588751901334790168922299138816450196608885208624053741409988492774156665433997490795700521288380519310984731435405049060546666451903799589033363073445094074736812295476485764473619759272815808492647281283148573474805312887910356404296303942815508834810294763593265003523091846543798248096850132415690409155676523667032437479729633369377609348957795432052367606810465794429190811054293893771781647980580764219883862515957412510964150574615805758989846505665008964935084036237776932703036434848177784013206931848025932443145732285545091099574761887102457122695585783093138669988189283211161010261247379369725653942721859976076491559989129929457242406277236488096902936437670714413907786101291968109448692429730613979295843214824141068978484102316039064554974586917940814393217381294958386517760436975183757336084846979457402365954709483904969872074013549519984951406652102273999647424777626367285702157997674474171835376194056879628118134245134277604784144267964230594170160990111983655280431260006115902573489026480913856354204976076092875192291695104018407360278721115478405850049623262261393490323268513572230300399872695390926216852226810938986455505076802235081657077269728272256679990719718102712733911497160505411136166043991251058549194021776115030551650140980130322964248768250021100646886250114426912995283035336493353334563100107784979548627204258393322378968983895634394564602190501845251887476522614481268692962492240127381756370686062075321487110852267928696220112551698406345526410889091871710209359764501109670387811378045103780541170469626364638235280031797105833068834048093742499729026161645530653287817051035536041904144939660929598891987602894566562899337049103874699020707794059147659041840236046353306941718213962251670985940480851240309440460974135573647858057690336438296502588045354309473903359419999524188597748629825249430951482605285086575261260809801319356546898693042107364789790366406405867131779960364972398744949022008021471397296011301478536163472565489985338900510695705761629554667006906813157007990347244330309383235190571943976324732497720677869314891141590616324873312471857223648191979702674022473625214625968675043734930550029098913471163234165536045115427924468715889575132823239613390755946611342698847510197739912001355012439934349304108653183240827471380094556031250215252064737768061705490727322870812434267498368597685686676251191164412958997591278337139832943363482147780533421690205057359847224970397144467952002203192250036077760790321826403608456867207800200644519161590336422504759267370728021455180662836790944321188683929584558767761081464967394219985384020058125812065001946890134206435540351241185976800443742770543097298026461210661256975237644602604490623549543816944737161421828642499146826314898344243957327591895403819824261412933813114371759315064516756357707448776346407194262334400792534693546978613257167881457869197407617863839591782728399895342557481182740918640899996881525412203529005643960722817992498291567643588336952156330754826073819392389539633913574686450894481886444780554635780296354462121776933446692643808993634446710051381046558564598414657114486134090240033392203026548240630009977409764884662773810986460064520445081284329092408923069542844280134778903725645665346830266277042509952968822573350507513827567428476188722027749515842836363513664036219086863959675078890604705713789105669030466654092453295120169259449393823720784506066459229936330058171499894510194367862705561356459738191418769902948909149349560160795494445170539123282107965769738978778565263978733850493402990367252001017546180164782543514639422426868987087652943497564058817283125610878602200589351111953050556883450801454161097784565825259324298881480280159549903870522323359974507199163720002558731360737807918589864304936422541870928133306850156973820467133293689433773978092432531088133272326686704176058692529516556266411621501617429272794464960352319328318151984295649564055521553237731891802660946294030923644963085315709617201900021196028889123748551685692381699626143237501469137609960792814098176182052179216383598398432800150873055690517136700631053176054785566809344912219458531299271009244200910207879787291567483964995101276650020888253486144585664837323737550908934796029151799843003431657704088820812158891367855544951585494810451502350472301599776205210084516768762301582592700887363340888828580597493868220725905627935286968766224532143438270567374937360125285272350730511750994316227178524215058223158563041727628405372177973698450033959749006572575156003865987302879200451082880876194581416547924920674952778479615446977860032745404089130175681738649917819300174712182600928354624986503438461854885501658492588363615984122415271426322221692973930501158392555492548417706463728125714644880453174811315131144302899557702513066697057372251309678109800999419825486762244651612056172495990290090897431023304204384178310916181131154692177462015903884391044699253344483038513652368537313069396455791251604291035036339321070957914132406638684981673802204788307336148258754393983285921880710973011678521492174371826665097705355901370123053561449312755953464325874984178625569970407148806368104340506176682320448154025115718860553521887107447420282639414856310577660210050619101043199329352857732414915593118168179991879232674284860577788668691058203320915082621762756015988201282315781332983301708336679522984039290762560133320013548402435456807397163084279795221970319706610930977473653571825662630089479513910937283607553564655814423014178466998193283623853134785889279931740984761726697722284023909727519841083056366535535697236697720789514327902033709113980403923884439093593726615922677380159582924826096005948963928830235466335150766511855903840279668358366665650345425546015843174004379802440952076416547902757954589845006426381100957973396883306848758805431218074697990576603974596176211551682809048932132545075728673520228539560813817992241906250702451130746015524730728180235108579109525910431165738586205908799427193908050950253652968033564655999944820191756931601492186757659521595513609481822524521929422243443463654867139878530648409907630125267548327716113530225100010118924650870569794325269731146860670296787540242994696220710326331178033445437648683986714465358216945710860031820171102820202330316367852257324404767900323097868888364407566800290935458802892261832216419983938439392878550974166523853668743475015390293821792902367535855887694606661486372592372284845492977822004161850303088650846591662091164635220988732470738414320875181401360979777489431482216493691142964021310560400722962612945862031609760411197568673256191334042316215308287733293830312644649360671557786600459035649728557897156137431884872101567896359340397149072901871343377227875882219746830442049820595452180014306336368214748895940251479051278602319653571032018375665454719277704845657166325128760103899413649905924534461088014672717856047697709101581817218111198335656419263427513453805071819343783336486451120000939921236990173419549118176126501382872796070666911816237676353723053371287436023692234613148545748019866531604020475784731258728809192663211111952467846788387525125773291380772442819367343341773453334834013876021227208296333510216458740016831911552389713043144568022587919257855371813582311482279795805368993135583692049664310912652620049114713367136848566738434376430874767635008193790151226741294973520757279251313943388239598999915657094863944200490627009627934583535837155439329428428421090637290655514564434693475144587786816115433996002605682012628770290030540365068398585470821481782720061516746172097697153561914814167441269572232839749247296811164058773772215983903076960782605058725336672187700553901052801141190811691331682985700951118425212645745636539709819143565530436012882354264196214439118220749823098114807120129492978567221928736004545894446921169860611203097773483162987683458535073722074008335266519765577957062608632296740255256965544499118207930493347504730753581516855457805143335933183152650727369742759990432324309585021083698242811186742075032454904649090591219473110254204779125884775467419816116871601739379454496397281838527624371736440370343423514097608957452429765265449011528976400584001716520922313176568245331037352470913779985848124900641068369704764800115615638244594741133189154222735234643684021821863820554327815408071753311756553288021145881874543424239814298613266392455459406182670396582321534602946220730894831074625320356546603148466562599883537854125809720348417240947503954684999139033177082866962067540167709733459728084649015161563759707535112395740301728462710315811377154493263156156412878131629433431414587164682923467984769832175397759477839439944742106194442019245922921455462603330101688952168411061909562451671477759529786761749967665403418297007657045379419584425066324468470154465650540944055337444944355237757345319761281183881182424898051373024646890044293677882461938782955738336697088909487953573318781982536048584757153111711348355998496505475486541315886308277673338450618332663849299064528328946238969319814003796207486280221582544047064695307131104452181351821074091465762933887240783206181884576608034690912970005832927662849711183718699303202658403478289327111731858910692457344217826018264984004119473391802606635414519412156022330241680734526322197969405189095924551898712972447176279214786431126080854513669897570242330290855104918330576960719524769228192947730305150142201519170978554027262456183052803171884147508614672203117061277949084927203137277150634523839842716222250969966315307887112955636015703799658420118210931705646040967511925680679688293988839344872492706493063065241479624378947494441590979698664605556253907773630353263619672699788015993459874018250462830262579591401287210499530714446539583677700978153085595767140420796261389720195282621724929323290167984455436031986649485106568116296621985200776564281452979205348546408545692695705403739290530681844588620050584527183692145518056588219768116052525099152035722609432116254083737295486593899604463451459358916787929449430508057289011300599622770702993941556801420517044803986026157664199916100398863918565418741680049926210231835608264567758978021576690523285079965485504134930161866161295801066843327730358245234001468608651820267079515555432044944906143554414919762782973600927404601924863279736513441153160205812998712587273319272512653664951253379350405129005888851176292382213536115207796150910713155145033655448777988138421739246572248973826985744201034095898362002949296350840470828433320243754199575582248771921465446724764715851704959220736022942908663694701361589528759487389447517298910171050978430495971988928481495933408715485337639753772715162079875590995739441491539486772275706927519241740198888250275426681110033725231823771576274582420814557982120031651192851188528488117853126658588088500664731836294882878536929319274784761474389707717520149549318815600533705548817538944546425280382449460705489937387224331252460949903429804916507937340925783546869765286376605995960264500454331843703377680537642297467514636707104339996688373517014618166037816136406917743527387044105445777019892648530005774047641573978412362814925546475964330960414316239733658417608070467205847360014836641158896506716288625439456848104770991961394620815576859829194520986654188890937048622408655441245819716870386266588553895112555755929826049098638828630366691963546799101911519658379466861230898282104742227629624939341271666314857347310255756819512971597867398650662048409733631914402673260694635395180407298670832571574891028389656064292301204173634832588382192233390175697907992567217831533999433768136242612393637014549194529832920485051672555573942087455933852476254393774271883196695710825795144854844858667325980471754556803916632191477357711038091001026022853859584386312492471521411094440624345394099614174285849711673516607816086131792226431104228788633091351860920232026309210895455957182164554550821863202266362720522687320484475642401182605308289586804791234868057227247255469628725939437355426383841275812362001669996510038946787872123248363920372739966181465462078013780517629797266495919712411812035935640005611156991454659442428834151993950721373843725807579581384213398270485727124039170339572346090278202262788223001349404032857588348812489348474146266272186906713866700795567198790047900514575126150438143279457987149142981085603457144269138869326509443619812089994257942938438404801426210028929257569239638325464242208476785714959392568356705950156488704830724622567103181321487517698005434167909930060917708685438495843598647809725908481622015879484658940253411910627697689480871313467705178754692733863862509300745628374999668674518103660870557562287802116908882147629740857669633489203681399261330840889605102872014967138958042522875095607981445194975813473466106236180901542441873328847558612889838650875158622881357420147676630008551816228993541400894034812804535683919620798374739666976153026905034707206446368437711105013411809446702974551690620754119669173501510953190864171757616373623147644851370962204279497051050858074475767046617748059065808701096313287530395321473322966109460784208749998407122503711067884361184098370437780275733110453625495274533402873234798893936207423901329192591508111202834443268504427382872897624524664783560287155745490419222923143392371831460802246450299031416233938690031347617370142819545967608701446557156756969255845225023655856792080008981947464331098318480746615493883417311549291645157920707986813234009183562293678427825775794456174069464414176896805311350799519377181542891100993609021850267148413425331221121385751143762519184503395802544758764216383230592878369375158459978202502110097694127601729655957584335465137442135137299360722121825796642206727571523377416136436071004093026260214442925517580925773235598240537036223219763161076074214121613980486828687391227379402191784358194205671382087985160885180456966028491306123517349651342343154211316882256180904812556347468743706790735328181049092606166622472819185247725821256331999464059655082164562104948020987795167323159356405145274501041321206633162860153737947723948463261002340903915061616055891164933565361977335971499846957190402876996853014672195832958211962434870928225143497468430800558209531115193269446212656901883990379420425251201909769957775314824250985361659251284217044116127999718566467200805510915188542381927135922393249870125244989604558692116132890188369995473028195917165864473420458553933802814199087653393767304569305669033412242787081595648734152753452153447727870035112653818188916255634192963375379407280376472464861524690237688652715158073968016057348878996242028887191951121239808737054697117395102784176822605234317704681866361973665463889694359656712681980355883319316250547264070086983761078490972241999642779797995806025807637029562571265754066797094354507469759250632716437685835464660308177368225684948865614376759984810006500417975819257918230561433676442569657532578333936987301704503697118461393661314256352059057714935107577583925747524593289038417137610474060802931032605390129985910482496631840321816488032564432092638684472646687330824901834909308519466173803853441831674039447177764364370923870915059505399368727455152261077361166722269035541586483305521824250946488818475198222542037106790596679526815828589095761712871916674991449325363964476321639000513881272667610229403628557956996520982232836331304013663006515528219491983335659428782943952509570492257288206770847320486470950962455536190278079111736283489423404083086637340989493036242863508294890793414118673400059435507766711246599803924744953480321352513014257225128450685249113088741846454101756487693173768975382834627085763868009719630265570311120691092643781652753346014791837697806271417490884792225150309171573590636010564799306647572002996974731016205248152244879486635797409794347275562326943745397303049749153436590759118941528496000613755949339536536213065625951165338169691185604705927524124270662128235383235083064299245515977508303382306140561632382497510671190422944314465447933109541978619161631728118184701271440933885823387241411460096469478083422937391799708574815170032685112093443228672996407487050767710595796240560932140444083815283244756436318305701530770228161940444119032637941374542480438061385954130485662868543855259089848448012255031453646696132802063071579827285314551113806574606827303838378726355026111463893082102800378386220222498153842633025691780190456604866177133931187487420807136573509438207676507916316692546925275742177908769626326148701503467953814545820419957262971369066173306817168871818200355548160875401149731492033028061516478353663036339181956900795158448907018788299166676429720367259918993686332754539226103964368370495499724277553818625818925535285228830561283501569642774932810139890092500863619853274854545087084502232980935229509298727459091403462571089790924303506790338160490981654087351410685810676134755060731646864603181287102428714460455207011853366883334559928432757714236331524375966058082408453238941210814889491685388082790564566616958668573754478306576648587294039957093064370981517379449006749440464667960401802616747740556487306795573413048976903952850503255455846236183828214757273172748282891588316743151249451025404150615061395573106718025039168588796178838155208300016198967341057841985210201992223801684818512271232617929395925953273000637205483855469579267510038438436163074727013894591501276461308772970718245539545237506889576678156283969303805073026848029896968774739746263976444942425999488994588162742342970204995594155703751580776027535464833655852317234408657043878957538635694229556247880513703901151179675464714678608393621356894004600765029424736510396535449081569778929301893314626421912331142201886849032286957007625258839450997191271289988334221916601193152600223712339523868501677494232215165270088335309820728141399405355452807719707415848577988928284383713449353358693687747018599519928025762585022889485951111072957846136868270992956641049653236493982037525557565737133739998596675148373990361283127891732645613515992572689786804004994084936773288510854749029310965440701635470012989491121664966514709650352166152373063777934658814422712685833961342173881388698374900743069896766057403350759015813315475656462654138621435979806003302255950807842159276833592284770591469493304109872438223429082881080997201857193255085005021748483104300202135312740456318009741620308900712036273723182920475290324601391692737778745180715135328091705713046291190643322867366208602523271392097493033884677499958594270708879958294362934245099535636516336971229988161978659667224308925045685102390519526442698073183529395095417378892947945268568759027039670896024717676675373021118128442303230060283871431977558809900214348459286249664249585661675930272972467914990313568909084166983717610196809871783716407616127975127379575591256656592550689136322555524081010345983052368089271985278723301371904160105106877135915131823370499719610677188510663426850973675157493639030795810010905542837990863943056771830617363548283679602217283161030444296297557165286940707398323877154691444098570689054083139841416115948178145611302250010757490260995571449851859202787358419312193221708061245061809347174286347269390424343169780245147028637018103862924638631233537804610244593138556611862896473106629395124350618163254724373432334354821765447503204152579212545797617532677222358074163262403003701092961588021197118909904850983237706044023737426774578705521028346355681991982485419267370894992849096034692315127760204784855688098000731557430415028868131149830333283940143304756453546208536120640019632990570671280116067403339684949249818152811186128873039281878670693213219668374758469616112567143840955775094096682404767199217792678275752988724613213598194462236252836161628958264553660274925758526273382553244410620605113204405093232588262997413562242133538405638648655184831416212453381709900414020580440787603296074402067260969609920935709119773333093800779814946691488454715182639620429301317000431033472694049790778716064175073147977858077240987898936089027514810177353710358591499678706643307143864950689277200523495571301351530956898346530135834403998574261018349908802197126063577367995615463266812630279020230720501881385786830021677886753757426110742614968721042693281990887208170525477402988651537801294857426112258109907710906032383969201753355150393268235465818589974209963173318292483053503938469015813620112640229111721812232299255381227686010621867364342345274345150683863913694676294360798740671732046200485209583382036580746021912557610261834637627075112059213271092201512697389718747437529958927113175530568923688664262709114409578295159922848674078112337772294742498315883835642486199082766283187893736500569251480491820761595427249983028366641770198649413699653207413054806457801849011391449953992416922686217780332757627082166117383655042671189142140588762230474978055153158847679806479852174977424639081615357419697091742121841454470831915741908496102365873033123393387752896571117570445773370626076238764242082216456793007101829660265094125677726260629858382787604602155054868575017381474597458145374641486294194038627361242833076099642267334496953282455757868480267277031298128456158343874034108676408995280362869613918941024661984176815673245652359448708663831375754972051560906609161335484636942607915499452591085233789714653720132958355328183022808205182804558307796518044577813496046815887983400049356678773628245131795298923522870434875087061869019401548983703468388701095824260258908308281687727746565158687008219721142409630014759833420996904380877031632170323814979818399742661354163440792265215547728336745424618964026240692674481052461582736212287074112448692747446206953101108038286130973424435333315283171963992898291783063791319564347175049579743344883198352671531862232265733168661531749159640580761927398527253403380066016964619048345504455208168892412940088696164763374799536194617573100413654310461660746186584265475377567107454908920336574809216391063367352984194690089201037848497213322038904425864223985923941265673971974478655767374110969937970254811492099753039272164000302737291537510385951059875865849728841757399756294098592843539563079303360910923751026525972232618619194254152329873459475907848380923184994228909302500900342124938301379807774627865500359477300817287415930668456445118243317846125697994172273127172113343580442008351942660795524912490919703049419914091239491482000974526173962748262670273032833096493122505800253359008161549683609285015179377643833785621833027876737002024845045781605536819122408443588873464958063825787832427959272507320639648028839951776903588368052762214280612451423401086205076961544123884885214441165284058483297304436091060251030247620111348713467453881431534505613605527705736747332475133669576468381737683971684188964740949889882011514607941856374646592819239999807781973968258745786799926468588603497630414441944818544594831800089936820923048566671192148552466347875345447812020175586394306289925881853803768676966851929126412450688198698639575622601217106448560485135551145539182066430368686445627874280740580580564078118661709247959456587030441094171595509614783038946449308526668962349120352295630942554296158940642168063233397984384336101220043406902362315083330182945157185135404652345554369764565655666898422618224216779861845776380478868304486352146681375400475994848125845792875353667375154502159281970713146344264172565435132854285207782307128666331976798481283898010842039207362954832708365849684338203896217415705489529241719921446759657864423567591331380086641887949585739855392358474307050370985694442377201061420170816929494853381207280985420313071769364967313393850331965310754839928170358810683582284109495349412963660100562903532295936543096559830675226325388411852638191169466631170116741464403253066431848971290554548310802567759012161666498717952993077662309302021318887348603470343452576350473602393016174917322452311392119868520221988685585702012390387055708954255854020392265303839951874189149679329548215638159061669526051878269872492819035714510880411591337519926840488619809439113066356147240664532223372689382381237441020129645290878795833266205870034386370166337766643332905323095954394876161226618045188869658743831277586376752409279666987117543794200017109525291205639688266489056575753735102865936973239321161997564578018996928539984397043300138678473472239850122842419925888528767802875146849779366031175357465404881532238075071871449556337382223160283226146955447187797199322326646996073643432892866169079651377832668113665514983276315938532943306965466774947744930606552492871673280572430334957687212899021828315625624376603508735432682259312363483156424164219781310419398307892152874338538416230020659638397236265220556678413881094217506898939087524568410621274379785853965528125748353087481031842661271741920617619635192498301000169913257728256493248303128684170598961770874899608573009053091513929682093279674115523569997449181826808602191413744129887020315567078270875304487306472678146404335712358705728586697506609054325240262271772806497178055881584650107576198703269076734305220505940809629076637581017226061776503776174827263707789964725974509074809826604990945303822763346383597147946448634187186810869490203886273397585110077010644248991752850082026717355459563009398442716908038504070880755718903387946139445743604680051193328375536628688040030843770559540968857503706551779632656493452756478840291473358885016792186010487365512706674486906822311933522886903742560264643426198906493354848419581983361412342795826468827592155161583588800801414979583183351904309185452201935130902424206244210601898007918739621626265284051758786198969501599713827469610112189516700434853763052324809208124622094974900846002940393942388249846313259115216945939040380220742996133119681178516365177194996005295268068700697632711497121776512488019244732287962251154176331751618663294948255052950649312081421012297125865280886372309319128897332511264032415219540671355146934294586587454015747881359222200977513854474028936772309003883008700248667136825884453950515592135295898413911736777223971294549227905289674532010938481897679219315460031456747001124120794526795646346342097997538848491908935041423089115073717202524484830732182269155783195767026898785526445606435429171632668342443375754084343429717747127772297364478345609359895088954293782771761288491244294241445755010768975797183128607706421914671213393195275258090535638308650513104718475726391754722896877394514062153773686050393678203883783520442580160113409715333191692819673873998389071481747018501611356804331471559232892366981288166757077629794596184475004858567022713222633629724770071328657842454555514622978065950449681692581283585884107693583066252785589845825857762416357098155688194913273407299962531229705740217825974661184546429448039589629381653503607308574003340842736536281145326326138865788635195455426630228359610362006199175708846274954823571574858737230605029916076031768100504515831664588076608657728211339993546872281271762009413420201984790687646258908343647604331823313351407474113974743225900509984919946975996748665239357806314497203476722127505449293598918554284531213800579161797592450380458957544494262593952774771946544989066911066420664487756314002822045952011755349420044193743576355325450474842085170227195470320926369892934533694364933037048271859777758436614806498282157034979551346553700042021825557609965192391273825508559511896772803735070377339014288534451637238037372853684672234223481217637025636524325771562361393388227678756766838264256751033384279694273425331612719849594043288972263545778411492920032580490079414357902314040483187770166771342366064318825245309077119785576728637156187073291278459594387197810747083846182693220018733929507423351277288304018267405346538837594762781943713445901273719403789858663322721779642036541535413569055638535720560016684192808879576172301987112956472728062068269140429138121707842172326993777980078581321007980557846725332918643211526378023438885127553540963582643961843634688372028019758427275979654973899653820844153399911805695540506457864205842862526582976224281298310938350179000523905694963431693466672906191958026046593882967387047507406396332521371145994594659140728499968551133583889218306999777194296895526315104401494979937517141689605501844325904224157671897947458150443366945554320145834483589650958489674606059105320126028463185595394099245188196847698355589351192869707101289358860423618394444206028727429774357760739601844928965868098940137353187734001040986530482731639840489864746485759387734794283035317188336316244380155654486390791271127902645571423120842281058752983115736552725347805812298949377611941259521534844786237502989651325964075721304357577351843694038545306791047615218556977747314537386873427404156717441305985092578553697095169650930919154634979364314753921486897554473007597645981834347935216776586982761867323729966781890059209411110314039635913476151944453717266005137770992959622046462877174607457865624512944783633489300817863866948994554331929991999179440281554625449654650255442679249328290073124787117927283449806171413301309432369708887608987403356411932452217655392058777665840489432204741221463658255265593175124628108794286150272111241936380915387650466584344057338234656924756319487416402645912711353840057378986998205314591583152527354171401837355866063514922658305237908021589146823831275910766957963041849305002545709530584368173717298500526107120912169446065926456360594377499023320326276875510165771675881983869005249054813988556313062754994461466595622260543575742535759228959916194243321837373156011247749473172140521110632220074032278521583591084799614591434252113027143292729294086277962762157907814705789669789261473987874792756922987734697884939488165052827223044104659969122972642822641158581427553410381160657999806971975879063644297726492244267946447709361651131638118954729720251855698086530682101313973052888903863218817629202696606216808317610844577449823029120803074301563344985689375152826745045388807495191736759886175847051488152347361379238332490483761974078099547249707794604974676213062501689634122509310041200477624622644089177835332310900024341985886911522285024102828415316369727794582129491100065351345419667630476740903966074786736988169590945261476038501873424428233712783243232732998879115792014571934966144476300349032846299179646641013577760692113737569727044617444199816289052809565047934365066217478621146426651870158577927275637493308781518936070511464372953509123230202936557825667983234405341752925239145641948367101484737412090663848941995223852217600917158770392422630950245067483428140727619010302129273694285129087971325210052738770962395325630624842667421675175098630997720511963615681359738132382168074673250127911762583497589136336209335901955529744350041780384518666350163950235448778646610420220063923624461456267293170685132592140801043271878023096180672011419587486652811245746049628323148808478917944704150799150436333627441475450141030933914159836441779861613732340311230733448582068674354265151529379533509887574912512630026990430759761969404957196491011622111005670986475722102189801995166177185238926967816884825963673153434424974306380582913225381354457341850899865527671514014989035798283303027505779214107888493088337101374486438072820975776632304694627260450059788074978638956140320913513089512382084186970856974831891529617110068828464223583265163753608471175020473788696790555496702805532772954365574558244494218375273369769947383473087203176683730618521432221763768409069253175559588497608935674806316619454718142782998316213018154763788474144083113727703416294251319836211113592795452511371597659380387354224120853837947391848712386001922199335461542483069729489564128189519846736189463742274078861628112896736568304327207459156052342875006798889684062491114575080497286007896975340831366998492284754820169773568223027743597261674810265475825670321105476359378619111397009879971539625085776928129264877089807661546480863928734125880926260622310926257640892606437657060534546229779873265458853750780761237696705524477295778498575304109829999830043635532881821444731740948728197982199639022043762864456868100024763425555340843166433103896274622410096251619394585726909876415039753167083605460305925326677241122663020394674329365030535701844760458437301819854945137793266429268126345258630406108266366352432489865148493013786348488675547055599111483577464156389120595155336150484242873135595420514491265207583068033622158265876299483971358257014042344625279676602212607060046108744165183540943622815269960925531708617282878292715593875098822464978847323927569826887914603712129492399334378177558151336454853103821111012914663301528804043885054954267757000590036505222347083170123837793179492539970181836617867332007825022106791529326018701286219455065561752525686602301308815066763637667518342149957243239491888435160271452057201545548766048318454302466958132283600444605509241554888453622095098779138323935918293657583635200889834048321845514378821799329395286665205239557699292846424337900485262260163518025096397111885053194997819941311490895770853795717290870662435348588092937288235900826810649177971025484994007503002249096399735656790648544977784025972653912945208663778898514015374315023656631000603213162596654194202880432190831379998594534466396422706802626861685125102039512800994091758962355634135518673981982050610126214766822602706801333413429079307623050610410265960158996977258243710993378975413303118951663844562684618796182676827990787004065478873861014906367592176216299902786151361999706333571857418329332959535362789359470465578650030975944507365570799813429075424166488875664836565549093804604303880942523907417336598375007088081828451604772741551767960019651858545401202046155011480241509197169928860875583487342769323723785017358649856007210768309266864677442610879228244651191234123395658165083593275662160372153414484957486457874300439913506518979434499293029900471443912833787661472366666088892412287290458247363795195348469921385675877295946897424414563283354310055185615272074888289502756171613588824696863111986924641819801717286416123860650913910760788353000570236138531319026084193971184661692533731553680051451592861225545128572736718114593110226333832392517911408478794535126663618491332389787982130855460692449975035815129389351516395080568654136046175822383496149444557404550959048450972701174324524747437127634538848026474058912262180261468562924440207734884061960543466184509106388509714046121560374198621309722658506346766490881585087732238495385376955063973514156664772116229377310008295864402606504235255680740681948238458975138955166969774397521274466543668997094046440393729257587835714702455918383505437270634056369225961685052523438291585466247128504533291458278894873455663559186938518011931353581194490974822002476167083073094845283058903331368958796761544952423942741030978157494439210771932153229360146516877366918423528984752082275355184801261994215396125296498180795872487659906140469250998331904509002434551273487158357336038799483088756728800917961145876223913101623672895511559729172190895741132197901612413301548423304625310745933937390522477747915617989102976271043363319185746544186769387098420516017261843524177719553240936173634445214640670303935737748575847203885554820831750246234291556550502344183428626014968933845796631254843415606965022629687815330066818667072214804589320233927719086939732102646933009100446341183041275056232007974186825940829381287345677096351085190093822313990212872395005344039565580921889022529818581621814058812009505955488459162360896490899367549630443253145104045616245722277090062858033502043296638772420772659259779366239311713343879665501420015645521267247652279082360842562674920591552634249507838214396821246609329532845073521581110108757198739386450483664155841020078219669148591134017785560906856804848380604764242388423860094687148827669503563919353988224906086456015656550986540155818499859211703863725735023846724361508755789004715666669421011297366156253653386620419423216248369888588496276780967404349042308002914201305245658283773997449528322469899227034627146442576126915530112044845722347458710878848917155862723430033903553007815370816145298936190340253986554510581269524488501005928260958034919105636424644302136054980472533448557358414337216667456147641999218033520607699437855638555379270119965067135689693115885103901618588822039213001425844426060605819220960507731112288653679679253382480437091249763760851937329182058754743089757991484701913436010179895091896123979532231114664861362371724918662694151122539036488690922071770073314547539227392234032641004645983329471252444101901779944026033920544879571325055530756194976708503196657877178193085879470268469776515575782257994764124167594177813318766055736298674807406021322202084095879942649385477989612683183925333274324115095127068523891088918789857167527738222239385391205512709822361855830774969271183959441134686374729836414572005446067857992777095221946925446000360992011691522681250618897974362872250700333172686755737021651103692269356134582444522576508819063487532667952371016294908733755980592439644980368659699824307665695437583487227595371438770621698551279838355409585069805283881593707996728684963118445244412115106261023800159762791573136655991343085550935803835382782253940049572178091267002924143968803148000168638494253820998706547817389319541632537699497703124135206606937339135197536770131641240249979281729106293246827829720530962613897813815695028433486305641896158352547460791745824065285512082132045548004584501201897023645105912732837556211282363828434401122445646265575616043723700292433908595206965437729973790039930139502888163496811862981201929407001364645254065090139196561947765490914478920927060595462015220374682911177731141926141249497921591989490621230887757304573209614192143393527159039154693608328922318894079857600247059194864360606545078388099162560649878337296104169036252709904609628485446201545511506541780665256667874577412105515039529366168624699502747359655658378140662803752298667836792594454176899897273234650685079688431196913832289133836217695401027216900849259563739586599031646268183252094373092953291874500657183052271372802787641384976711950312762714272303843864130683666666030413777388082752037398765035456364879226203177557368902191387598660675573066864877754502248903481640743737406115582847324358483897694446330753635526608616203782107365060249960399479903390753263601970968245403424454949601925471874140349267904334781232957269649897724068466799639695790037529762171565427030652870665234241124400269721549730282864148385881996645312329890534091056012295163227543694681476071685324186883425264519289453386621006004278911779663105782461032341734801530983814176690551484464923580885366697312003999514415229374589600532033018790081388589034406851820033115395561435252121530973552525663575714407071719132815835038127560726096141528988701145640973519795781535925420196372842103228230871835426156216191672286573385604265807509046139384869014259199560362215242402180215093410812012489825596482536012193984506013418093400183092929916496761473974412606980297005390119050239589879882574583339685505197780223808964702563536746737660625523583598734941558756097748376211275331995607656746959574132726664544086557291151445984032713646499931008569357520036606150156516900599576525733511130472078615713888540515848721134046740754894737197176905019762785062697923823956508511631272802332019870891559618973085092808823230767906431769696257320776093504512241943262040437384023848497995180431814016962250080196022993407591762224306748642022372805930467909985715492482116570897663937381989689774560825974125138812395744947662797362936634057219841611702801005984668243273912452507781939830252877868325626496997380225720671971471624344874562413363427952511394768095473972316898510080886847588269168715679302119321020958300829706581202516037618919106024238268607605780313469060752600050155032284770988790008743318898827001332514161721522247259318312428974331800589046903891365533938493467301342718678687116623308203250173941808645513317085873746347927164931627031444471971292689980206488092674012899938626516684418895032953810353104332313268500785008424697557931973428094056096499522535037905648794252058251793684229598798294337061246201147246095242276256207731524967410290374081840251032222330372374720389037673119153424005486665674635009358468749001848504005240428697371681514742792618196807185983867998059155155748916573343432265840110926770787263166277025664258693701709833700927644822319690175072833044394088492049811515052986797761364676646285292934197042816785908857117659532416531421289987452627638376268223041990706638876933902258582175737317191242943743077543354134057732221449568181389011920825318980074430331201246536932993681440762539110080498964691992186789672729282532490113105986396563004946063638922321241116157385975850589389292629793377785782862857260827826092494575169748723349172564532341076393255598331377165476262877557558027859901027507852577219592052326709400743653327228842821841642008803942670715962917024886930134017910592014708763535896285017862141918541584074567236516609917939405209610110029830771869642144504156596738983305017179362699358763053718240870311988773003030243350921914254366280460806968659080553689461046196001917352403951073475215520113463991044387155502647388425341659424528231639992685425362832430358172881872587728074831321239610410945203068322205578161893999015669090126490849982842477147398273531184338403089160741592077516810188450405041498903742058108201372692169269842642262118535772562263484795211905644501485406064311371109787795347825589112165474930388631971467537763754004856283688245152886983468923680302363707606884122413980718007701072220812755434385124964723941141010727628330087671866153086351485122494318450856902955648017180786494641117528259745159715214408713143055479471405454328540304928231330047662802962795505675807833418035768796537760453271210759262962519688010703204745761809644287611135633462648613769010260414457220751098424870841418197424063666537825843346113031192758748885111190600116219475785382184261124408612766978017865447708933144582104428095796637600252157934513215000230800015613519490313909022441344751401375875380910656304459386239189934057285999947121248177637636665225104429820525525094244500449172795121331632660148691320346969556060853258528210192068411225155355167542610581955957961650921466554907459167168763123964875754773152533916200779542510889806645127928468158493438899064180008342212003686460738102570326850657566492802065301785823725952929143880973298134876379311461299691639634137772248111498152799717776645915943353772891321939320215695420581638709477837144183935983049382813962812347778092313332533451795972238069995949879331929612296179889470734750830272639053720321643510601402843681199394160433287961534303633864842674691821357532579110541364530885329228758232038750077560814151766318036568888368431354113327577062049245562305128790541396480572922362933427748293922366341922532344955325780762033124760715495397356576633130315533432833974107908663410627656012776356299157277797189868823296065284796322588074457391629303383654965059222137255425696364565545855569201697931146576189560718534066111458565952256512257310748937644925943994262273787593742690892498579195770828334777133772784188215330887242818486033729887080525503824351869920387096658116513875418908043598718802992061685457989765351285840265659335583609960341676631585465136747313703522951999486004639154933072990037053281797628346250994649602221840215814469468527293724820063400456467230016184988015401215299499821596896492872231959139173590787386823406836481577624376000854310832553008281230819992877827001616207225284127827755070633294230583998274563241169306081180775971050265634451765913528471885580340884562219411660918281078898613866060429395479083496861508451916954362058377828617261598656394102502408650263553672678057248418178003173379493793788128241136806596816626793714540938415818279008459179432827588439419105994638447587252723580147147464600535018127781028373020744073622665111019548972088399998492042641422256394752120034612050271079855411760370536619502604388123587501123872560008879506424814588158567474036873351913605399155005204839927874906500583425306320729967919520036261838471185312482695877611146708738995685247786734283978036302978462066256234922307250081750703588073179468359069615292613185733610644929930726518175473314932726391627037591337764617726415202603591255973417014833499714231457387695845322881730561384929628215227301883388774999428781860037522347077766824660269725311900006688682649023287362819180533238124530308242652989668640337652237134680335934655966352784165851867972375237509784398208648553551179060987354947183512825062587375213602494552049305336002376752252425648876386691832900936479404570560408819238203920210159099010777331215694783640279030139684167456513971950683793219419850156381826710271103876780701339947725246771743787613776516478382967999974728103842088389063794159750458209168930861981045869164927769059297964674040677564699840111746418585905546857871780802199736222157928762053128871065539931065292418603237665227813377118704898671751209917665789542565150997772661824048558681562153426908365126090859848218728778137749293166700909515841566349089066729426981255982960094906226252553695253496625951909049543161240728499489580368428256978980686678541297152438060736519880720449519385835566354440539802232041870047406047944600097042473699611097839653467534773338691786085157603783400129463413479337552184834721021148561302936545496742800393553148723972802347980547398215364264284493652274012411565595362757467505062601925559950851706625950377700697055512960576861838008591459256649564804410517518873260641914080065995187088963774246918366435144565124222835689264159206952633849614229126317650418067456264070135915546206083984198871200950396933163800726305380000821372563990328312794375977438090562126266649817160576904883970797054793022072262527106853439423324799687228661887887881863337804658964519594988603190560922353394742489300548888224067303701473315834396644063311109027462470827649143151018085655190958684886420792738862798804664295126422507731264389032904206119768158933233159973082445843609765761511401253652005663190999236603335396810167906094613052442495453186507750922809595119466116889073061791708612015419557478145255644677552941671741071002899120562071612120952840849827386029380545497028528022353023962133462419097272539063101674170478938831456824680732489373068211733005970863325533022695443672943011704672283227586725943534369633834960345392075827954343781589890051338005860415502579388149424072711384676271656856506665114706525460074369560964247982161427282902738663803000789631904877768414161579917281346452151924772030627859958944608895949774016020629749431213917327738428745867327621860672895995059076082278357293684015852366673736682562058922108950635842530676860279721976533475898135989447150663649535237455735774895946795750420832640311067672439420281826762879266368629415399372763111245322256226165286055334281868928206489255056032565407212676341876828179312157321139215182520822488909830498802221790881728769830227952639218320943152540333443706315564120678307611272418143274727104723659346068358358008304768093294328551834058527392336526164427009397546856021692056310744063519302384961016574540104311402588619196569836243515105418145633723861225664921073386333653081727680032784155516331319566281074891791386345877916727572293059845881521752204985975294383613380633986204922877827472697663687526491655828152492941627936506760010555919330335275894915047970004560139473328421530972165955979225720422792818878064866108684522180509707232068984725909608962321633972116883591070470163537612361354916397828305896887178249788359942523133257397685189727274876012119816337010397758167996849320706461660998439917705558248859832905074862192009094080828603852062837072954033254422099871559038318087351449831073848371149224675771859215652531904672138212519281899319772489025298099415429114439258789414594987461666265307063333465670324258985214919252696067695361603468247312237473150787627531381486636324569733442030685671732982943724123091960448223192133022197069732132386461952638337134757960000502915663368841240485821018558397280670728669706482179709023836859386573754646687830362164817133663385641807956639904768679218862396530764192298804675203972913434538059561686024445086263727644110968877436669336256993683787878920738973362627280115879170528031107510935949975704216783376053241287146771607645603262251924631040127784505332119152186520795963982703683760106487892669450198417742066732117732498941223675959010029123404713462750362937669519376113203432593380972436460580263496513695575517628260813848348192680348347563430786395631276206163502725408300765470197253202586406316694247402095603149285509944955628144002003062888866617848619506023601033891368252421508115041249187233569595133185888839286301987376366546240575384449126424957864595186900025144860844144069357512758424538273746137485759621604428598481514279442730355796154026274382307881719152987389585617232951199880711460328557682512655484072968434109216865266028824534489206822948688702969975264564643523261519032608196321507919634098786354564953955378141396173284711570961030581479028153384611751366092384542562010026167832150323225751216947416478507702583910265315084943182914785444896760710061046421416802686797238644048224126265833365017366557101101451356075683809969734966424215764266988875559144292994620736615414905512287036589284609448755710349494355001824626740239891207824275351343176873892737663429013584570940639603911645195380011688219632435568211756308333085900983052932654834180904530873228206440556857343596233501165447154324490138531255834009452547060425851030146087740949872322980020630283982577615131300991871092016547006158507871438519484360400232896467870028362351597807856155521422529610897331594434384723163509171912399523633276727625633603247990462946982048417576709250108423040664386910459109083774688715980198807000353765640942469388579706474370137816018339311283940116360302124832527004023247509483615345188901034150734513557557919972688790060310928259612316255960099146781886672516468443178419633485150828234291901681518798574918800517029355826166524339177942316017231617833203650913479835045640339895241209209084129830055952947152521674849013454120900304138651363535380153567690019784212355839791587457511447238003800207578472823943790216476077101268473120859970267577779663277914961608688616243543225639383367953552424552237751933970973423442976158375334949714643979860649158516567381584797279735886553582570988263307878073558754100517758573357396788645653055994327609806631616446927212387282906608386995371460154346260357867426803538104171019299662226187863431544179316492327779949975787245675911023938930915811223973680197743187714436524162423486840000671606642368520977383293369086903037621323270480897368052180743063397900793637344285544319834344884642763516378062976684266940923422818569999848275988404347265818864437344286285745908861848609998745171818308106990167014936609620033866772790974525168897095448358818245155748006984967652277998954668138356443941447480086009488183515898926174032733478682149975422843880372000605762044710867146542492640093977830311464514949626871704369230136083655933919543661599769664864479043049787640967793773017242358860263002819817895189514993311009494340063339974824288788537817444364732660043368567726457507843116465695188078115016865983721748698643118381132790334028742276782683724835009621760334078381976976802642871628741364374636059947948028545879338277809049431985582903226945415410843165905923918310244757455473004109385615517594275676842593758981144265286192285458588510139476251936576598351190600449679999444690319319591435264949961505989567644288804432435629774969718587574528685949559958887479138791015692002928965721235642863156049609251705597911313325042465079809408718296106693089479422341510473923804986686096323312997847713951269726012284270483274604459422078033779583836773630496932944051760539479857440914693900345832435904010685510777607524989296732404739586398454320780924965879986357608480777300213423538105159229298921615791635915211571382358047804896108770395706335959291308925026987562246567903149523029546899721595584074595252567360736078209461352087215262797520350370391484661460972354457426812886378751587944600580514972193162823444952664303458565867290275778789836648424079073503457166671505690955494641666481380627209975381640767923235600072591090405522427908113655406811417923896072178246394677525663440944941284595427903733483991147817828667277277988795737355000675094255131098951555525916712199026020171406889321086414819398171705824380007104372765429426410277370620542884508262659207366053582809586379389990273170450493843067773786177518040659050181754091342954991217590473240870875934918485107669788565391254488780450876708409872717539822300791483634112795748363981975751443844890738656525844632310169808287723673185449626327733379059615176499226960972497590066435807883912213416842437076015098924685373774125325637354206509102459818154205633511792695692495295418688004575103079919768604717705281115739743492908892222360700689278763341312075238807894020810195740472262678972188549990909298797245787068098596888082807617390753317683374573057203078721186942677680212213201381603389621946261703623011627758548099364167462682288220315798035035367910710404936338913327248345165746343745959402103601980484423151472673332710974524699625991127567557682049692360004399318272154564308724999775057780996486837347779356875351755022342893880625761558274613029537422822090605395532691603907013350677569628267846115100130782161383439863919619551677311715936224403075793237908123764060744040528463250192204853940064610685257761259470660835492022329478965413184734852715061776828118772709861624189812231717996084406869882337963346182705596785700032653992217309420309808163100304806875372032170477489954063218870388637187921030730123995164362812311110174144232112167258487452568169356458204319504067609286740032370323899707451491014971839018010638243477386008861248034885655847864472234235989746633998014981292346685686618829861095708694128208802222474983996365916491728065624918915050719808573385677192647549770444735134486489582437852599422273398862443713314994790509022821744495415960777420354529635537464444124977229737575557737595934625723567046652764053058918785829074850008329715227726447675490126530355753304893527418475737750768700682731024573733098792135882102063023780337892701089546332077894674229628062427685501396090514903103700508288337819951527943750147396396030015462908490240164509335517297245462502998688512496474894480903680048891166884744058086732966164606501613406570065038996783807255053115645571028915204995117671495393700347695083953557818595895385155452993435828577386099668167796724754590905066261210296939084543049113811175785415824476325647077042665899820881909853430057528927652721118881746415944859879672909530674458174092183616184576175136417714670601421819193440329925421247655497619471298309051249518774774713747282824456773390465838264845785091745167776612321908337216342869786301434765855216104705596411799895797716226254072021625721538629489487604684436723771493170156192412310726964242415657764447564117798030408428061747201090217735356775385657303961541100604642122729195089152223538326625860977660708593151001845798010493713582198940710834334266367359549590385592130366337318481074598625680958131614355743800440505480801321698728391463631824944443526003134461592126358095900913670044421365772836780520269581314789955425122809190517806821217431948549653583789478171305555450187246092844122228978893110309711183953643056220146170415116786408111162063763847646253441552329818218558966531906687105077881743599061634746809974446642258027385213781482060916595654087689622586016134190051922665770301626315412977335041412444655202414053625157959990660529532714735800059403962183525313848804994284232588966554879960154541185765464950016102583085786079172907717926917744140222034512183586254786139853730667899857574760280584864088532988515698107628917390765327399260359572755350312138461491509152912820940998340987746516712872865725327264024620087139431020679837753321264802325776228441934802876718748031555887093123069081048706864700326006022965989832074287359567663729615051072085803501351607295918974716316618746041790851582146546815524228226173162177570202859725135481960667322922546067423514714921866075441798998299972806306794332451401715705274789644001386901921349863104714104286495025518094465029093908338079435103351835852485365052057845935726095246803661574309449395711228809291789104154222780671480771607154643835440149348784133564864389415839906419519538655659756120998870134693516036374893598880367309306070396704471555375217239649635335296757439355060395602884042855654010919533792060217775826036788238631436727530940900585955343500697258387010524169346907727370962325217517354592337687894332371459872290365247964965108295210519102182349185472193678447589076733496068019914584939860701558149677559125966046280423823821196543925470825038437766626311501491262340553524811928299284554827769366806551748803267808045310596518690969310675525036422428431478536573828862461518448838024311779364404255384362930400642334706616226956613719057738902753960658560386090893325541628093037173084898505327383611782141048319651678311078933627416188605346398607918244853385319251897188649155115879295922576864159029924453300034860800056836676077539509214214919099251536242287322657594143909143258999641346235153291367162788004937674377723306775862591587038667766604707659497237085079629302301180991553229105210228329865936513810168227985735924291730158705295673198288128797231936586278880962443681099980749915392696298345997796079918590870285718227622257710259460249384052933567035133904099481001329063121029724387871107115029159599553647497613320207778521618183680583713697956444339769527123020085800271642682525090252405129450018753557781300496508903407026576227393374654670645067569076201277313983572642737945516257371721067444271325661270853038226713030804351755429432663366365454958544474748517275331092543258120784086936807766010569556921466500237575839811988235055968447205770431504481806596429416276332108385153446671535127740160114139688437763669094077893196621022324550019797747840910808293224298562556981509628242841042242308351549631756147385114703158589342824821611177146282432674511647669011682063691023127923790792517160128235921586201561996610589019379721226685775438503952315015839035516711904072443785096324405109047900093359729195576114149205970751550160347122317572941826649102252684730671935231519510723957995006957100710555871424963118674396737808862863804332329964843435955523372098802887193231555280609961878859319207302821822289819807049999767146595969354495440027826503413253931731299670987844991075145216133451396683313595957740118072268030082640995618572429301574519892990017317893211043778715601589179742113105392852830678323661265560893656918231679559404006389013364834949341340074337893448039419534522484179591951556291311884235466336309514807797720819223652486049074045105703711692149336677929965537802951601426431079838179193279181613837692388291343186789105348438249870148160705177301458005740780784820563697567512951045941680979292491348667954604137365457587677870908127477489811462271638679394732401957349367435063541710057724649827260722283165801671412025674667061096288782529550048738575198512950030372647596846308280777399752345673847297839401265245154160892297821236753169802560308325949039084070283424825864870063001098869651174671627282989936418199824467162571769745283206261507222611521012959567471882942857329241412988385710412447122017580717660608017158240067588505740558098575027993645028378363386166580467956493400833815590697258571260917776223576604401216399320427062118932529735399071572323735873409243523653305220089229546216363958720299385990251480367132310120468019990402679949516819529454126479798550179747630015091488548812629562880626747256480830072041680098742058919461734541522195289139790293298551593972802405024877081116382345975141383173022952099225033484571778883524089687518405246791065654500397537624171276855264241104992856019097828426086811120623604827417843279256302339470823460613498794820775914614826939579336512620304005568979793883011725287762579800516680483716207199676949370407483930274313015577693119297887499620487568713074941265888159166703359341410982998654651682384796730051037486400862079939424190464516199592910731876944063455061898125294378914801257497208277977678754887240912240787155773564093116567781744603311018046030445805438179185950667873808352101548684958329614073093969584969093660998708020805377075075605759582239890941473511816692822059379104705303867100277888609425538572602648522868486023144497320079610426963893404588818880919971954528605148560023948116944625789194883904736921747518036745264396804368870370758948778499114231996426686329714911272101881240747755524201926435219295744471263790761026929943117663638585305170390278542957405606244298709529383251780682159384767733216902629992821625199713487715063816800648591484712615587188691343723271799379812207952227982807106246316346304691467752076165630296203310789914473200351305802244672934199589972007981918487063621815464543513875968912429860040493980306574476528833506100553888955727477197411555988266901566470626262605481370902809482698556889340679708187268408832469595012821832666859752367163306481654155445173991385833213214893997954120807850724531264347774535380475653119453439718109496633776134867790838832025257651502706818648068108076969546111437504021968587809925871671646118803098995988357420447000432429519605886372371683265858188519972212055497257490310343048850009385029785267628181310105139122417791357670660882844690930145052836614841852202547887067382411828605253098791857875951895619541138758188585307932580184782409942737866487038136081615722340336046503526400936955977653546312022273928357781034333036938450624489707127895149090244721481012517971210727718128459571620071273802609140311762119032408819505175028330838697115505959180706156583475795680070126443967303777493527977681712543009492222340921518380640157129359932542749740544449090314400634114467157043638381556367823295374219808474960133023178528742212560511568754708487046201615119873942341711741829634252433070365125384426239514271948538883379154694829426914891000534381053290730924877423735767846919450084020647731383173675164406237128210421373794220278384748966948497181639908105275569292028672898766968149068347252000060010042963814919956279358433305850490257659109360363157605288817329013335999667813434223612943437377949834259387653547815616108137333016780144834005194175874353245735295821074175555268072437150284582004322099546882162807776769448778711917293465610324149958278810857036522218520983110242218900472148004949452205840980631446763012383379240884425751613571929441396190239287332493690934004154725284830719423573869713933328652629600860901138565314962555622559342245925933289919288006753305579693862049951948479193040732622939583126407382164378812437167881517798241243049889581150614428986785464540413990517312447942152175713111289506115800564151221202132300036737821252040498743955084417108440674159029640861911928600725835365007685732891858950076719615432167617820117308523014998826321113381907240622399001363253929371129745037717355652884468426151048691916930249100020474934713977209333077931995054182714710377422077152941916335339564907413776166950250956696374596091230377181881265961932214312942365030731769241215088061282253564018023894559965585412519909604636492814005364541157992728046911981257895910530531652490187981133424954253028033363758288392462952956358294061850340181508038810798091877308190677219348865477715984044594065354432936273216118437751120733630765425021900512032550983865032855721334648171595986251638458539133756842237652362994282759501609787257745386392262023563826998699954451659881193730050703711907006279920478850570605829357742105663598094223917368059293562490628956300603645485924625082896083385953532648258625909838013487987902918664723269347384165879318071599595674864381068560955723016143574829971159957829495576735301441160768191367152229944892538576307643075409498186581778017148369256768251259027416235910818498902826253114443259734552380895042465772565976768391361583100332999495956819220023393441742229417309925145638902853985964441126910103623868382737544817493781046241782549434596571495775104968182878171963320416624350717596381194261669098596984747676913697154684849617869661389783081049625596253544415737268297000232077531802622038774903183073584684316197948167405891491304433422183456007382237685931972010030737726094967292025492692899842172657761313112470005538441634937176906159895957080704003552594497909839053100227586163517991632065087144993082144451082970908484203415589020634693527042867929018631322658586316362671381121672157667905882151141739198960943191568045420905844866774342973033886025914595184173802801794591559711477687572991518983615804397986817513557854367506464360332925720047928282498711955990535777585870170512895239196204276339996866660979122176271405968816725787626720588937036798750301914265548820492810726773537315236887585169234352319819686640609682941516327230269181543174338111109074869976370773918968835672427151666353970216715605429254154144239119954651988563694577228818913045951116206306197648621381411448508314844022296160488485553401667035019295118667351617283431128112914380849962318877139345785467189814482314139440463691888929072374425153691800459858102936342282926771752599132817444360106240467855937469130086308066393124885846338873277643092831215224703082577652733621931050528272291150624048188618980932292869461238209387047460953291596532567154214539465949673179946820864619911752934945335758543971171849902437431927712423365915934032080035264437227255683818410087110986689854124215556695776094958535386449239459292859177984916950514525290534421129912342148963930063711517194686920348795553415205086830095232391760003746293028698854464454137422007458751445888446248749978764676333853340803365764586577259785955132249452064270328426744134112939750181724574169519174169359885618479297452610116394258773165072538728910045021844470088401517195930814968677688383485888568727981764434324988855946246058900222053487461350433677680699084069936306338507963076374911557285317097392612238284277288584102492116348504580250069517231182784060800849133062428980349741899511776952890895200006440808848630799859898626090060408797534962500086104368289421887688809984190621074726258149495986806858750289810952556164325162105725300319953749200348557471172967195384205483927306806008251529290145195412000102487299221788794683425099753831476514995833856684556646014400322008105505859927572112744509998760315443223934648748030990463471679430777678665321842136258044215715504725515179242654804968484692063835144049011477386709552600714601818223425753508336347616477364626935367120924801009806823558302773956117338086589706933116741635046039936084816236907707348631753708970183814621439294402284093709363562206789597843224457375147821038375419017005061770884012545170066356205050442777473574775052806806632237959158713965628349171485757988499234893920836479523340714237836887433375988530237275192006831624350497287249900510856469999444148594515247644705504118460057061697992523532224276766762924754468062092865259630531812381851911821599314177742305788859587154861526453049859555728450671652482189469641386142911048243481490930011880772247457199704677032902058328523854072743097471462936168574950022329453194242427009452800824459257690464644654765170483665016823135491787320610570907810067062793288178866345401885798507437215134827296893938789512087170370315251487923449003635836965618527242004256144906067899222037496281915879078162706502921391826667313296688190195370346991999908230139781240614490322472194430649616991757791406560231208499568120889887933017777686849397438539663064689961273605825273868751151323408319622241274667225202210379211296644116723005072267842955089617498014632118094315214804378268614461683379266373540774546569065229719867545035437905668661823891402175216701713015901658023796523916839714627739019263623174830363970262024434673265238500067499400437607632711462335415041066139027634272751903919647226872082369596356476993560415986290631687080353886599483204985655673306152029339145195040073622453265898232341588774972175574753663268059114288261016099297010965129798920335943763605505478727141067233185993661131318992459311457238236922565384180696599762413396970302307484033769630402534782536835675509444641774806102367559409749546876371165332580504196861340942249950226327007010101038901306249325288261873152446744488775379787897441191584208308830072684964113979937423357610703353613965908781838056106921608580102682474502077236641342614669316948201196218304631910099810165837441095367869129646765813786938713798336999341174061929107956973608890530214241365921826093328549910639229487153502836727180441395428443159028266184156187747920920523727895653270563365468854555810767107106750164656891288760911678309676978350168094804290671936383118656702932385025256107775766617982239817543680249193609383435932351168619424432565275472054657418694688389143838498183195061727604214176058357983652761485360135053001453885698400588993638623540861957195795017246104703957287745722442281709855522944735974025768175046645251431108804463651192603380964535394017480557179449972599169641445498602412712880644542637121958681638653231592629121821729504708009143525173738870269776308214453254383912849623840311838514244793236417193298022154535518403808623446598918438413557370462713383217958875368387872718762524805952195406173238974319947615103734435972483640696264490910550135092431271863523064772029477854883562603716951801016604039815626545827836346812878093636393296384468887244644945890264552164669838807026289706284755249471224452994172898419119449833251475510580602381768214662557616654418867064356961716442914159136338045375144519387465775110460591701198976741417137031605782718917428910862485215272212590366225376467100790041514707604819169648558324147493765899300088915104477922203710546003555433403536956631844411166435663205390937477414382549743600137300424741620281311009771631886093674326218799241503044542753868184151238994958252471273932056801675085889178285965562705467144387357758929941585329024167688724390332274762456018270407492864874119245141485896719224822372697194892900102715259994466656519703833706115649301288764385508187693787127573695975745487944454118617687987676740585267379071159227075343246921653048286584862872899022818720459429913000374842358959112259510490968987763538950296389568754099556121840418102409970681481135419707608628246883600928166911675221799455786506784561716233401036638981606665433059298599030143835266010417593374428467229911584492189904078975759761602005773819460133612539620309415955007280707297057002572682820364111968622881489513859334379077773670611992579071009566303385001850833255773967034233504430828045119238331728469449867187826942914643467122213477595671498353310481662083212764053001543334502779460785247478323954393905152132717517214324613517248975416632917976707347327949780945979651163168737787164660704274638115452058399018204998961040661766157266757974114769630699455407509359217313415039670560801468329040499856286932473563526697119091627073283373305813222226738241716560203339080753929163051335510167464653691359164265270585120259899812461307699158101547682454473787081691206497925116337192717237637515966757909219387126537601931022721461255634041407973279618902294983168305879372106084024181185766675937533485787961541063756017154000661977996352814943572548714154169689860467077265940736125782978044317659231466879196391632207747208647839095789673956660172502714291911855643437076930864815982149666396952142749254927607673920039796080345405772151373185063967641446972535768297006567566244036711691418145965721127454226788669022948344177921002089479669463887101638975459450599345842638294189869303269008697484591715461444399898744927808153754423869618563761735812954629512725915262506403201260368025923944306827476539011314924972490986892877188465368896624275120921271463397484657938503349264693357265889822943247417328569486398490360808540076989384409347552128597868302811973046659305396417836049865322776978095244043595930196697642942681753216816214917431804561570419872141765793766326551864083804664139704788198649374287099248237292460475576582874971846591556879906874910839591953694587954431768756234086927804283072079142966699707874138805014566304505716810767852799674175242532868846224776762707259697067422297268161086872384260929842959065560472780302611743217682034457791497798900257814076632664554187982311366041715146590601182509452009407898050066115387190035413985468761203831861087166942164007474960621272822253196817826564364046163908634882189397734690138417345893868893294426493152541371810868835115884787448512397590498333721950464794947227358542829156027689942195750132105591879534875197247041764644576399688450139090797343235827474406012322327776806635507113035201283637995612087083582482779480356605449505299534219922048117888061950392814803098045884809296862580304340367574240561595425511411801565099497771482269927278916218867106033764772578191754117663501866296009620659002360419566105704552803186174791737145258424744826424609054890320321116671693972486664387285761919030346560971567875079685408782889991458279285443282767683758246068839335237104764072119889621696467533013611647835301069916939671782700264083152507254732184885562085887428799068989012275311895704481428453693985393345980988379934120823830822674982673121697567084380776729735900756964523473925225752058679676144903585494322563671675565243200156878747485502232046368206096495080763613130123087327170239046192643170323243071460765247075544552032655057653208801548439617910628501180712338246963537237780745845024126704282752426408456374493474662331019923433659125466233359030211923828055482317668539986966751924287007191323113421250157863455312418319152342791781100430082139973750084504804321832683726495546276466860760125594849493361950709791712089477835088309802073099592498532127813932325257766954028251200027865630330271922383808158945874101399968681047326580451660046428123694139287028954798410093145348298281391536384385301012372859890823804011090010553922777125831211845221727967937260823571970131856476212580860180312122946120605436472600979211327235720132241773691290403802392728009333163897357809885238351799223247816836267739669171331383649844914208461000586270673797187116661222353177793654778587897892159874907369555740007616252315136875731992839317672222496730390351513750518580345262584953215848512515057549696459538248219328493681387651903871107127480709036334825415565485422154166782322637037619219393182674297286785189212916373469611432750240754097844349856301376144767941694596323625361369316589717465490504738720743126356583461793370831662110717984932385969070499560129355742974765344934779574843689115252765619044962608386210944867139984414661464937771689943004419790082675124596556209465684603316967811911342690859648026715050699405743554473871269454575119185742963894354638786801981331886918073527800729970135525450475315269747328458188314431871418552679917074371149879344720115949138101473629129170030021682480572574112179692579448116287832021113133375443313615372876114831304312859038682655762766232000140485743312303306529249896692198666021331319157918647639195471641913974332753050643859342336917694884979785480883383036430956975388652744535912422591127161664613268291579525853093349096166153736325395846906208735962247091429639656885476644302935175920843259973274022429021859029833344903742852828408800660389433534819105166521454926472703928650584418656214621592317639003556707910627023697970931375053143347345854440864909644597427091269089055553726700834325805124882291856438986790220601338438258639523515815272378341996341477911415000818126087686958549147315274987129525606846460377991749515385485188748732069671998556871377382748952621095533362800643679185823608505466429476742432373128189469797081821203961367872551050385099375516930279896790952345725678010950947216985227973086010117870722598261364136789686844142869912303707282576356678702875003465595925035232089670717612815734550697866825062862797109653261442156588813577478094426334339471476818473748927841912582829495340048089423899975015755690939095681909503541780821765437006993105250818539617823274301466910055991880318057123612399793566261123188629523402558918851860563914100094310423048294267412179774690590435844690376748713517534152043536923091162381227477893941998737432397914786730325846784717946830189004816556132150131620859001832387723473372823328183058819981305844277469690872757808262721224495828089221682125783651779694559002538062345358380313230646771802676261228205280876676964076697605095657833392851004176041539342725310824900850873333230964222720300184692205371202293064858680659984299460603699244186104551057978069412119537724277276414726677923878961850383135863913620506017475095388338384230896539035173628195282050087649794529144545389665951062127712261300695341343229748909236250489739915810800525833199080118110643772441536908479941809821414012190973274511797269087928881747598488342618909885151980944526906375066140090759561894772519413691806021999911932076000598042901905277714405134856819585445287564836242159943643865629430004480361934280406273761752362229672652426402030318652710705583403941115209780134730675782447234687379059800227075642938858287776927784975645298619383616791872338257191020235909813535627822179692209615224390623568431638597982010687312147884101061657946017836813214939129724878964961050716625891741907278464547839448335546654796505791526275753472302768644125899959562999720548125023726268796620829400712633759064198628089188807688674576706987057819545153792083916749600191039852318799784468240109994408569407204024730833170506482863853957916220330156617059041089050685845051802200941874081055736627568509719615696330728086906656864898560802422240666505023429970733431609889919941341786337579604299864979021244008043317155238294126835799864631887300966774506652459000491176962816677852070093824097431818650517908591538305967510088932380674733100354183424814977845315082487748494764411717677628196938544553386191398018543750610991251976297841589896167675998198218122329853427949405875679764139387505759608615036304085664385391437789714669849305422719390139027825222647442877280141651656562142875811531310256832983274997364906265877316638292312660620936520582917051769605730482281018430573047566122314358293623094445490327386833253492099237655649048886522174895266989079222811834129421713816051752525466269827421147703245149973300213744767533299240576792692383850633903300407470547245384654173589165358400995232947240171692587178613428631122216654994480129441899626220224795431790054703503892981949915884623720147400117987955648381301847138607596914228633046833793963075428004379497227391300137803727253205219112355303906690819800486909299368527579621988386728000318694598932073141126106614534421804524438073232605084864157111023327237422152475361736531205629836389896055545794688475977324128698628483898873511930571894058197921483392425474977851842618370069934731218150377602894768206727528719368926865525285190431063532237297700346986366286271617413477008777777823314162448563798962758343032649489193682780408833006592962575862753759116339207392168618253553722629802729485367013514638242828618239234619600624665956852918086307195626105918186012388194793710874934918893362284876074914334185471773609658015841297031974975795208513458430448008977782708256409632143731004757503142632055190025257552420429106188884056094992971147676972395806115853055119226021115729214129460107952691943582371106125598025941957308399846361991645688674184112640302103947787560346212127381449085584688141693592344078784258037932580199624068727031764410823715707398571278588983708119374019665396351999199418458673575262807407879787374945252909981850977613085840681090720657406754734918016203227661109817503268669354142262365291383683625762917595331924606287383619930557427651750598411922536939002716726717203476043550009404596892512187697543704821003760662277780864403536859085114812845019915802308627546119257999869100692533505771795401191039559073828989842920511007746262427493510511884465882121838363627975885636523358347884666671577663758996408204744642250942638919977893708284833435443305452537043116834940402203054647083624942176696242125840124557077402211335152360462446824617898586570923006338827744593574370285918442246186170859130857492396368528361759340362518392227600785341889918788722110811457300254126943477016219911626813128210236933985430443762719882403922372836245454829953635647854067021005866015558756707702605041326082567062632163327558537647160938766414217194252639432812813547507034265875267839419084168341976556409190100647336644433462919314173087346805297553613417831144350560055586234004146550423639453190123356023481515452854709946693794520623912760387893725007476740458095709517204192737434060209499278896811476079095438216501393501882398589924574801232881328755823415898509372606006565966819059737323719378982435708313229103816295595465819842198677990417573523942412617654754404629594727137253361841720527433754541946204042690420076151879659553132569131886990228021831056587685254994206178987810287114945888417484978545471292125403710209483709887137972622398401425437989254923105435458171365742415659922922511050858612591386786207784200515422925380311014369029367207621672152855120659180093674749706820464789241227264274105430752923820246601111620073650081878268300635560282932379553018044550187651473241074826738875445570911535615874264690843773032685581242543901868467307639370940945432293775478284486949414303912905728534839235168603029909659963082228759458557213547567880822504869707043992525486473749974438415572931231581065260325248360663087860172630938396598818532756648560711359012823272441067597478633116179159682282899985787008042084424202882103187625351518559910716722823019208407850817444815016922819723024480096509174309009909409428618868423533331818303896421686600203305681001174149595414293387631086314733451237526564826721612320263337711272746906101097436637838592908886070371980056143383205517070415512490562380713776967232326891506258692572825095711633022882922651372744089331651106602435684110597055149979965832534317843163506543326354598003660323756580905262935749236406875378185950860059912478136860101872895295791892396194943337320977074564907917216559537416267563874316539369529767128991361221467652356880492591854707368034097583423625390870161402959430007266617276493313619606656524348627615322986033177470099040780367724891792644057420388175367307808379281858129593872928986331284257887914324949531100473428504076761564229657334367898683771664999628226536342170211939042942957281539214569571547627862927546299019616087750134151641640022690064012272616204948878890385171224861321928941917164177515705172779160726276485002029239442625502321048748663195804106089192394639244988083755272823411774295086856625342434544627918839672779989343748594275261453710135656073819575915151924629126224309330456606531104717967765625506338501460657312688785604552158636644757683951886511452736706613730332137870585699856123471606816142892119112355549367804849371105169340074840392552852167990345089271101553068065004846541070873382770748722293880829934542020789280981278821763164115454889412222586107199770769562265709171839794089574199061541880875080909550677734983877220127487075365636332991433276881000369479480879036069195297121142150168293744581520965570709628930576614761401761738137468184494034800415899946051553314157203418249619496149510356576307676239886541844476617003069286313549665727493473255586554517036779194416221594619253701162887369755074658700122065152328332130923932060759290378766245889807721885859393436735498674662215647287533785026438532588373330065079620834918107043915174924756849497097599516068521378167868716709496321538999768961024502893750595789708430770803947164635640061965551692100175941251213460445763602500416824743207991605224418977003988359278779686085822891743618864890493697938963453409420146387210130472555170994709170730368951477858135531857895240015615086092886955712725243294037481427446729052301927205395109311483880981904785731827310102384326613375243733843858419339681106372705998790211831107644613407421203351732599142375107775942106655660055042919491575095685740037984889554965105082765762872028994279281259300452900656800768434569993495110680356617276062922761542286207966632214216911888077910528018682687906515415671981227390767127155871533577425680980328909820061768052065633953554934371441876133467366564132450703127850691657181018451013787436838159424338470103363085974408912006496977956285539843918767599218248145356074756176843037523911666822894579202281702113966023702789461957040744697258506292158540670948737148328304103285495685452753860416024485857719684641914767937412669618688445749964838310307041077925512614281848303511073395497476501388084587472599018729845451869593492638351689313421084402228192160942571875882423126791435103038842519023035385407166512901443977163386221701449845485691005061417188316192766587184967675803653529191752875038849464822727282120241013643937160582977960309565411239131252917516177857078749132618264965175104724630516138300618451431173199872247487617033491680022079353569853369954585659093545939652165938331753635791301180859781022218333959730559348046451978349241736151822068911197886356471312267347169773314208580030363858828105472197831610341091925530116683850537921374435087227839874154209795536689986333709205526574392527201909730402802775892135679716813172044932019891244681178811560703556321486243132560679862263667553639748984643114227439776144347052202535823074097686002209263348206334520463388211000542167661221310940201883186466203591269099425838751592822567182599122925701317779109601675696051134450843804869698050303921132157002758035299673821104748446967948486687927259210523206566455246646533238968478376663636754529928522040516988128358233870973395963899964665177424078906821345812849892780306148592025026564530335746715690320292236934712036478459731125751530628225026448853852936672705041862527426237451855175258848003218430080804230134208110416959144292930639059544501337832183284329919790757743349774183920237104310220899536310926531596572744038695064427648451567800390648774723244115400748754012644610270935299159476483708744021534962126234081204263140589447928486224815957872811933191346769133286677893381317830903243462656738956594591365721997895468628273973625396635248455931772813207684624273710272188380192704750377529918046563328262770545358733634168379152762334071768470274091439526134234373892330964385223394046532020781007505740472985099673757411414353234343473715765211491814906534025661336566484523284742577578467962612767844045625047138833116707065415678589641786485736209687636900804244815745683743268671547491221672087374984357401170469742882402011310802150376193436665779166420160993335795287641392587751101300436413312509705709950079528699131537602587952097878800475879801766205499923483248243483572187917816273492854650127255328043951638028807483365841376098530464544814037035622052064316507632747506612555695465423211649247635397047297928505465320082627013786171266773117255168924722984880075229038695746544957511483960847532941904530863480055383367242188254408650681495192946975464275400532018394383140895131063165418122159308682924658105767233002383827263443559880524795129184719208654903977722512826945303634767089221730588230276687065501145289735804270995923135029078219795163565045710041282156928930028724543914814070923258370373128191443335193308224541048308224893411509164695650929177554481702787848030463618416754000561148716130892262379732705544404956429593482352969556124143237978491623265221373538958506341619164156829871809788911105437294739972637551917710280573214770464087530358421184784598633838593480650799249258029246263423734331424547530186796924018545967077511435485481451395726553872961433855356222844381992326325606311705410467630510263953735643192918748302741322896090243177831024994523115961834973814637063160206431148740685473100605225058345802675654684294197724385546007488512628220307768642766502406893741415580549742726612677193063894534408099315067325004853379289655672531357531391514664665683278638661701630289299153288608597078569493217608854778035848646488798835754983247691873230703953488157915089797915505390478636726773071535612674582421546153198451561462300987325123358325787315177012240096817455018804257172302713409850867257199916739110510498587648554920588145525831852341692443772411456229331302384961250322512541948573535812133250410499301971732380230574161862703480005300560244332086551694120045060192544996013692981494537515982009879330416192470991787231454412033892090150149799209198610708708902479352478857856542091879217679515579804369358018812486105247353988080335145748136125473099084162624393066606576936192319347011319810120433373440651165652233033384609517540407382073573535177951422671887256370202383375091186557614033110938194854161654089361416410287220931703797962678528416364569300776223500408818223463085140459188038301608264005735140362569254995782768370644050196100157323891460989464961748438283079191019079643026929591995204576043949268679434535615630605467314104040160506818918850820228300578374145922236448555485250341758768593119048622804949692647942709230599407818982407675462543012824237503152040996885102808892906592493996917163963776639511076368396687901554315117109766940309540986354974572624150953142368296786852498438341371081396705138724818394729744030250069900955009770782845714922503691968467506411938669268972157721415784106173528003610848783007703179112653219416540759958322517381551589783515488970817899833577098731580639684764722927820442192202716608102883800738613670147715171484047592472609555109248105802018298633596559151075596500581511463746057490320294042799276211962256702077329211288874949717609474329684306388556268340031228570959248435702429735438612511955367418737085516522949383580631673879063064797660923189918466565668126998173047459327059850947494889974438251640651801177221733430335661095613268834596469123774138754200952470330328153968651847314857176967985219690129596576773361444596701750044571361649668407915889349542608799516593870253544286560896746972006230422656030816634610421171600867087480271198147517903166084816320050027327199461769122795701255230791710297607243255268267096409071758374488850245876511912271760175002984096356540945811731105228490486648928495953241228726812575402739823165061620364275085053357180251936251200939029085043863993515744272469638571162310331785605345640385578834418268648560185145820714452154985573982527856340216206148017033173145539039445680327378360831728781321867944889030408027239599820555969263695811395388684229191252147951599991686668778627606054469523418594589770163557242872971878769476850408017872249781113544826727244846801051544010038052534501255008441469038992758057378511395486996094278756157583788618459458400626337080632650187943583003363373258115569028651916511386842440485002557338009060874250488090709113512859442120230222082175990669560111576615863603678762050753035702350539040825778437674636218711820348991011115266176346622667459738535493474494965810763490970811902544058848319827737892896309420376747838249323508502678407776421918709767331776552463808254034125579705274773613061224623494307281735210244372828366755138753744580317456041252546939226328479642627643838854326372019599547679929265747452639163330626872518933009976760186911107320292003676216769623851491466540409158262985845429000733932774865563596751984936066558262329217781481710340385604417835495739425396903308669009240384826376197074908550787221838524439816818433012853995714158245019430038214799026899539019426497633472888370619744953013539478741850732657104327113798483094245773108570358174527218764435441914418413999917259406026835312405651213903032667896483948414045535659087420873822978822268239635480171609062444793385274205584586306044443310620001538211146836049136625030784169044396240854906917743846264411152485980128705299615336849558591715162865473080170050360179016493104640057628859856086180920148276259763406503087442368997615814029756549426682619661412938068318707445999253682705592955535516576913309730281790644016177403626777068194933208761286331604845887512236424993085228270239264143702106768773714005050342453418038595782132426093703827223844463927199641933983731952185974878428458452504476314399081852462998306403440319192538859785253445421970770493431056368796007158161527031276453722396672842299655799418764793628707775781523970001161361185540113872678902398524715543933909022265194309110442472458419010803454112525829708932843344237707031387546001493673973273252311356491645906244922088936450271995543395673322743807325012294529573746291393507888275616364544708402447751727383813735361678091491879554603359266703435962367632193252316388956354112494658567406738400123262867234613539274129132116264762575959659214985313275021407476345636750264799128857150073841368221045293676731211508582284472445025193198758764043940090129439496543143412776872145306611357309078025814574512468143096224441115840459852779238767731114980590553148020051049290038719831057594116347251612905196197674374181884045942008913049216973562043295116422195590649658881752687682194311833382269344008312075188554422288083811489764758179213517925425473282365727146164618428075826452068591638775256885456942040855090816688001410830128227262953275848983854496114091692728196196171673525664123971702954652296308182608927925449254429807738795507684823243604534071037664639290855762279780698431323807226719575112528788785392686986588602192123462591313689194175954720759739654315903015254116993133182274941895324261331896942761406428659240276954345944498552134083191189361821711360545651821368172472141550828068817781068297678930759813249756953351149980247060604471766554285728562182046873716570768806820153886964455995607672884364673900445278513030528309939610471648834249153280567049214181890069502523389686890806687454998690689455720397417070276529511804444250319799611785406984368495289710147569703232324398604328503853968638845670000342300136337737842031525365772663887704065624697964407154740371582593192472950479196915567945320734887243906894269156445077946878110473200145354626370615920574695070220699947179387146275566256186711189410385523921644940662469202650744107439498289067932233080828375008055512604711259297021574132892405389060715182996752610760817006930866381570363971970359230362334427201813138178760910885601795361553566242941102064619413953435864286452620249694813593677688110859989331833581467136232013970206563503730185402240373126954223642251274781025505758851208710028126227885418154826953709290107773628509944990760196280718440454295688660677544418698985488581226451168009824389967384572836053177301163642121543967570861839876462403610367435604077309936974403382746332263633592310870641691333929143433341266656606558449674806383880932884489906230028667476195844504631587088529341860711982546592497852528631415569720326291333241039983721206943417842263782132772209142322463941069973845205187777529688213007818691044102443630185501608540124773695909979068280596286092114717191587400213103008882847942465644802141139142692650208366912463600761669690644576630217366652065712013724315919810695763243185662180415962999951091434222967742707342906042737806527482979598681292683200728701286702682592601934762597970778647795785399380769756713387490636426227983078412089318987007699631059934888433016974254953077315277334944267119809461924416357934434363399346049804834485179756552329296520663632518179910490383481084594224744667267605545035172972114936447749205439003264451131216383362403167748810465701562237126627349182296385166147373737294662588802939470336556710831426830329785990062800580644316444909861784770638391318678121411474951665601259103674062424882416241525922166520627601796068257620312346930735978797555737261849759703577381749293129226051428303474566926577881782786594442118041208050181612410195465926639960382957604453794888219657450750551781568349860726464757963308909792947339122546155909528521808110282220035838242157160036439426794210434543817160928244257538222193581783418477546902481699551348112911252117673137734807827519426501639120028569343444238508685285929874224321859029887560012007296542887775257678346024250591907800716895875993667515499808691744866860898120751097557400832447640581117940648331955626859569070490133886129213327337819053921307179247369089212490737997029271873757739687110008308937582839309285192434392914300621400352482187411113036050141332406785990243590416016153595011598020644231420066639912485053319189350365715126137958836249431798525486014660149123179438527546624410244533101893365283556480172815341585654696709771545853812213645920712007565457320713932983294869952287324699435252814074518999433161632247485398199190263056774311940137123091278273578751071624497450309803315932296858942753730862431062401423786144844721131651834798848846288140091820417083614024174374472817523466956428322662619231578062155164042593362076341493150522665863567677905630878181558561596874985571600334386408692874160600813260828559197982032954261286562423457271960893269082745943279880261514146797936575313711488310747443760626273813745371208693858795393145152894802557868466724825031652302798768135671814054907070092244586558806691159461391254897015936140827142610510698001081764631597309872590637656050970316370143932527373694951136562289980300895923041184728602657558656882675957280581779457233795729786960189859279842099247444009122816661934742505844397733307854988781204533411280175711750772899828472079444630141755361311695155723716848846461871243237478931142248230616136199328001640644059243439034822830597964443474394058105424747746627548738125023292368081700715942189794350539964373449335140890026153143177244012143406916487921925018135171297096738807484104150983960918608483580701357909105635387888006032224231716491019386414770225729077959909435939364428583405255171878586341065394701448509466058575670828793084947030453781118631186477019135943696471605143711829093269084164302378461241489837787896480535216360223711834668199870851043805614140816431039471362452941524475258353258953150199731667401839552807843537359412871644780950720987497858894714126020849104390583344879537914581916973987594315813734767700011376567500163574754601561144283157316973805048232728895875993513961443888796407818309734365488811742578239894197357984841035417639816966768044740015128003694859480997311076986048938421055948270393693620303946835635923959564196744101392893278855124378761459008541215159796211681590619369766230244341502849881278323553575776654710054205777167048944621062743473950565518908902236845395463115656627575399438626556642891750733933878239117960195374871628645043982107110540154433635323240879368602283473668440567342945476079476587338120369832477463689721886618178439663778479402366293411213097684720436032051036654051817334535460887179479133244227865297251399572876796467911345234416426505930443854333340550788824312302402020671300093117917655878557038606586006974624170847554078715250287203575275396213876582332372916819304281405310378215297724819171579799051271586018448442658757437560034269961314867893739616169026224655777928067949289143465675349042706550707094057624125461850437625900307745210608731516516161296580794287942563347666689028426055777977520871634024874716165676803735943888196754194674165690968018609030156213999985525724962341400448593502963655871426819383791348791542678242465602270069664149987450615788657825937039925354921952659530617919169325331931547976438446694385554950582486916566115412093490708732121598191351347935208740899027395872969977319696878852393011801233225374015779869266494214285932982043055596139633588780523698037221597956063879397203777230472395010443448270087703271957375011547217894552474427180678587420664006150990282905070119336680681968477721122393757338023159852561262229138653831236979726929517221586908511660540818540786842061539352433859982255315125901243026625275444177103905426196599230686351195148649065675189298086705712991845446668168681826670904159253544665195567240601406470787775562357672241597228523738920320443936552983243544208495882278384549637299234181852222536058832433479041325960741828061178723707727930116620079801610895201097460955976570648011605831068651138562081093839025976140385623215468068466778412242406089820774821333454212012348524020111464914845587369617302262801088510777820385281429818896755250607387200282008543741354620620561074804379822057644516207778023267576023350107949817007524739501041731917879431496240615053028318722785362141939499015890032701745627892581631777555724677883812826607926015088660126661089046313339386601656503640250060836868909729260207688720503457232272063212192040666313835014890695828699702800034785118683314565889301726357155058301933189611028530332502987802596635110633999221648623264940817431280393198680220145112629108498859544117920885799083244875664838706154312991166024747148602413918397169291659199207191516192800729969110613907270462029056219809987020114182736125375207575545448969573309977295409711006309658138614139794751954005541526359036087138513820469106815533700046510806219826461711043255131523371503408665197047036520432976178316556107318620198655786004598308612683041311906628623785599170293077095714898138631586999802363482254481052803350352124810546666529819741900236256197753869363751538988084034148344608402187427718402973979838426938131820284429007945899446311179374638648344765544841162552153096952541144914156248486722318077143650354023115898402492691060472715814909950143328694526285803193370621200351083547011078547879353300234279356904675622266152556045932551835215998455127870838328686413159449081402713215581911474144863270755275454357139393638074454707497028999760288219341501335422686539559469827281248072749942842770131439340020155616905076666673429812795360429443688395819515104860851933827741410327525056570970301405007387663834232754756402806205032026221552696250565616245813680335527961786267803859182977912058606876662690290215874285653638651446791019581245969418645070375056761400404331694184469439278984535872716929544931695671428315696734704662058395570571508019607648487564650404360960192907485532404028926385215556021305637944355170242029509134379498180150800953764579565388058757704718332591909264179045195145623861844857133524939188859115755896120486473241541018366587139095890607011403683461497356947714096943266365126954125042411974346866918959901053834377622468039100788657675137856302889304523232348572418786854052968482393200255033108823820338130538402541591723908691518036282558818954106536005390311785745731442127069250801397835731795540868933805553347042004886140906976803152681581395879504950459551064275065942988482624881457498531030964657439662533033801127620124490279750389939652215403142630068573987363805108719856110065476322892623136578671333981188086981383048803944484997942449622044463045409364882359934334766379294279361858840630223062507744471699897615601183637911367885987693845116171176434904522398898463711669704185830838616078446683721481771739127233666338314897261509227236003087710517958211207476873880546168932945422423510889270033462385049469158269079703274764087108443701848930591826760579340747640509449733860375930808866949253258137967300142118095889724860932581087613082653073395490444646052509460861936548718666039074975235548473182198086349125174145585170421529885850909447189860015579828471970608798511047344476375605950238820773168476174321279992058659041986946102235167020307856640213775486798703935715815330698273399016506044862043327909855935347534634721210694615321207892103021804722604888441710541832188073055254620217005560414940158201655382040994635418408670438316501834965773566818141109454717787272647110706127052891515546904320567582987392134481033270259243109980052643432857084310944301128825873215555705095261320008756191833686922427947480856822206023893766830588307250318426086234891855606476155171647798604401512590714308406918373983503690932377989587997305484964984640145136308511170373360313882943614664130627721168277392008909440578567570641034745689631645433715721957996328905915146720656724386387600990738021282998454656448040242403082946077135637812340187429650197558393537014857441742428528889738795137415643846528336084007979432152312071729981383311309199976559253148945547701747819581615133483400358089231896342079807452405360721737035641266969353009756780174819919511745288213546064342704507579674099915528197692517560955942971240620821795733828402018837185664875179230481318630348543752493790021748792756011134906153977078431570217232607185842237062556738335780814778090220181030980397863959685661700951287322287269808449423144673716595425509104266951429972497965311741497708777286190081610337653984707316717585442686385371534639293479729696780631254017694000722927090697343153383596602652406008625024439973679435276819806154990284745592195874249825304745424063129133221713146739624561072150188868211072524760339339707184965362440924750253212285471336512504019691465693384935797667448088304695326711524005131547201683300058324523380322828899464133495550418644917258706800938069172557035914698887443558171917734408746037214127681273001011967029912637643616715953202322411255485616835781218273914221116977105215827266494939558801814088002592830417589696269894552659904258537603360426211841680620614850106007219142988578782576204870280192326623922234246730627660151385116583219717462437545138922186182847859119376312724077213421900642722236486256547909786881120369833583637016032859234594561433115338240526960654778352801296836830759972793962025721240491966510587911725930612465237530717772628043299355760385115027018922491040981097173165186359413356525903825715843497100537673035131314778783252048421430138827857528714874579917129753654129034135692960224983661143577289988170578056087375185883580091543819825274194454740263004848200921188622508064849462738090934996208965826727005146223315253471014942966061760269410530235822186452422864997897264359666766402299054679319071883453296769949642806016685305625955125139209185391346152902966236983930760181374337249313263379570009955922543036180640388876701349286212193828949853461201970438013694334244385402292974387148125300714536846574417165325851501666594526629987566658226392695878062450324893157982691404555840499541127515047451291423508673160198741920541583019705114085013814212325362832175356493759261681996650716556201632426203226078417668462283029356776867828406885247651521038049670488878261589223901264964525043628783583649785068834169643603562202705926488434442574652332136070205324671559265778476182638844279347276899824508443951276406597047869368536224086392622928072347161616783163407615860312028838579452054509327544031709440092318720444684728602964786900331041921624811023026989392818468861958253511533372399501642116174774812114367722345858351030221156168507169050643996475699009448132664839930041440548109613279270870392718164173797142979139287623733448654786935505749426740969153610724942379012907562220285312763907561121517962888887141134161385371727127840553015591716218844594529435042137372864748546589483063676514831584857386011299959278169158757457230220115601995411965241829135999754681358346700212011777847699434145148243431278979318811485893943947219083866466768990137931385208131591577642090025241540241377240131688235344382345827206256278571037153565549741145587674892196715587496852152413207420908969368154865096478451020074490956031482674096747187590151477624077763114558420234585647252445225597714840266224970300222806561511124294523283813847811342391045990834740742100572561680192674235644471008606333384941214539365070297330608200792049438289082782382063705682828164685192731938767253705792053656727284177000037012982130841621769968383050775998498847612027802467768743187274932019954692085629272972875621927747286644478027886649479238387591181378721270149224878667885720879249919357642852298967252132450592322582024122348066665983395347201108956971071673810792261788819670123944515823001262786062112603425252950881705870228552377313705976080685777618380949362641433621914781057298332971136618655311465470011509803725888774751625106786717076557685834410459107651998869765059622956902701118501042708216168945901768981034603330861095688833154141341015039499599825830711797807044045718983299931501896062614854532882493306923767269280865923815424708694546088905543439472295600700624424490663523123950227527570826816244426373525672657046181099661456230918116142311322191104052982186141718534263589080934744205605623944621134630453534952388313449129417445684555020580148280152618667345854887940149231804890342368460035809090168895238336116453065187366118604350187921615354931621620196045020737181003785702776783056170810623420004114447738109561815875962127054248443160260542077513437279670361566828007810544198708218271196910634111581005512896105744151852043647782146368813688189568178888337362001928843432042931810605458700891063247123813176303138184172605426448446592938773076906029214786508286614125345049112702321417932296942323898268320889217781715284873272238682067815737361927728808567384042695824759693515845422967473794425664934208940045076043879354414774632539472416207038706167604850287151620226557266006170406107068102825557491449721803930675301957102471861860351220362391698568793772175337914987237610599707069907924648317068490880833817110657876898633314389378825057750213960818612113890983654441688125486346150992198680593579736003270426221346184569712160779287500333230020537565483830781923633851553905671171287835618166867935443937559203783722260153865143353738967069209795052700412677555639072228511835319381176515801031033457200605071549751640989475963099885863207476782304112986814754468930702461486062989408534961320802843800842023347459657936398357174068133653264004370866708162229165433931814839727234928504502666461674413529881938392090241169171756703072394673365755303562350496648481535694212538772248097464286061053928502099724871479176029354816948065118497033946454242866186101598602216352905987845503375131851244500732937400444942326226675695930865724505589250640434163230645239784516287607824375409598282546343599433144316720014441377359674226833575904208697392720547574695175804180065795634088773951063903541601911858553720847405231915830117748142201064295841233177401422923349547254583979839461216433100932528802223286786161043702802017951657571584660307198317423257194743705170352478521296728975633013259353286015392995376161689452829284913163052113512444659733382073739598459131283928309718941504871015194644084299431706374011290285535638922161099881374277481865549504601546574590119260162580696156693060486346616203915307385788569198399324953584870404385290012318578031039884739158115087818610963773959658231776374446031341529900658753063746711947845813597475622768590238491375837599513219311082079005505227660577092911037543238061028009225211806411000744817476545418404868898384319234592779611141259397105043025496693418956652251552313164531879225585600106681981146102155771153353577629017092953077127902004448359888019970106738556963141050101853039904241247573431967951577916997512017198041411066614605582499863909162281777693297912972975647429187641565192280332466472933875084506149645385501163428542002297883676177911499830967916279538278650552198304273786958315817996787346282903548431066842158916063445518725771525181913930218939632886863282875944024977870697972864540623279633221228325093697475092336226090907113820731251898227167230015077995850389524095725701137000964260637353600148611725625363894411337230894225177605357077466527607411539280500993526564484816925411888063141209072658013183615476301041822857178672791450259835885900792075953878655163576926345161029948744730270384899891693941607804971197893625646263247070856032168853965757425456182737711967744583830469536651373300802229817223910611656295995086593185536706645779233641002634146437319866558165850921074825424935218409263769189366434834913690176670295968863707454381246347099742706208361984749847565648874829152923644740290652441056754165132797838658591784081513386074437488025543494718906444343477077892802672841375119027752533850650082639328777060296780225588325738706092939347000354691770108022341735422043600185579054210532003697923891415016601554149660767277428721478517544495950495612218453636283794294422183789504253608947686162529560155499028331413206928620669789907089026507698159897004623190547951969531430208766417840872560465364013197839654581436071508377275382279619733362920644056966367638364264186289546638647963591637695590939989035779225976590598376071768268686813753192027299131759402439117088645492700047023996407858353572241693230483117695489662981814031223569953203466843999806050982104795602446703728915574790939253978640270831273222932412514590387858623675152986492752780150241648370018854437662644617906212312476377915323386509999441633431246800196888691973228549749445674549093569274289095540749539353911273720018582283829005033286361458895040409232039962406517647695608751627305920174052711883471323316031021363567566991431345999129598424871485514236763710983772973704804708944128383111575662324089911877334454962763822453350634892553636978476717963350803605700216234820030259323548191756421350228021744152706742532868065061031857056025995096557923779122603831269229536132863082347619204210585974310582053817845535962263018349456198051920624049136787967489274490109060212855212457748277231566323883369890420282783589422164610766815094126225811950882542464084494639022285636805183404494392108783493039425294557467957196603809156737586551307146023626654985726611733250662428582131550115685845617414171612121198616915296923539931768952114022792363904072020043590148696600776282885150536585197965379769409457922493701149015054443692252649157677139388487916530536527918908381860148893602312888513489915589437844152542224021045158511874999397996183626353475196467743787296332471798109788915538127272679933654244400267109439059510645678277240093456067757164634123055370010394205118086419555044139084073940820035421557851665218302288063191148246759091066954730565139563126167016857624353829610381391206604774144041146558947700700391179610216412690292421911854497821205323162839941000958161746731415285182255227142472745462253285440488107348582350035653552747395432378928412560363430447654867733047089690431680955661522895793221847747560023119240137640920525009444051715585908804372317820820692527879974957826258327225520541453887429541150210887044676768965896687334435004812209042204712529383875295787557641387538061590186519674999185612376886338809808683999906578159241649212988512854131429749483372133313490356009279468727649196788677016658050953286599932824954804220361373066894935025445328795751947381599537657427666821174417361196466995226385647582511183392388198133586515081164949484220330534077733541032065944310732948146963829554671642513940590865106056938941661362260745812236733931085491160635087681213182587769549313359316208356076138912050186412273280763516631167399961166690613429061760134852245598667171565682974026796696895881627959641129669021283476183547333338903953360263265903373655697269113218592103227551660710087394287971338523567103374520276109700111180969678440240902661214696131258347136040262077878804493118058956979700172711739691306817485902535188852611488887959474837859758792261748872911628800387486070337056897569040560506864721849538833207346034419553572206889905459817270715497526666032242387618549248715072219171187310230203745623939963996675990393836521295770904852423598398195683249861330138900440657807610540843668975485677330080223677641204341400615127715531627451214055124702180044066061426936425918209521831441673927880876319633826464635513631786678656015050031618141357308605500883115191372248139032428606151219992088559155799260965918948050119606159180826772719901342561808843017733172239503549525352765749139821875905301749135995324194472297651173361871623859681400822319789258071867108743402019750686647953440966053799151479293969859332317657436236170449054687661282752135201002251374157990361505568955296450070907644282640496420639253679994243459728051764602899795997364791264797851415967892113047449202459178435662235323107110173633743191358649899202715222400810933272509823468420310996781120197167229787021902832802487010953148873638451736166862817851355254764922762709833633984431215661432885984964806439632914393385505039926610282523689303379461270701472855096696097398563104837887016512035716754585837917952189303890154034504586209591239604038714096947444848317905085011696402689435023495150073689646016999102055121857533589806947440110363191177556736243454099229509891579792427789615086047440827368396009594707115886638782569657657184364218139506682716915363725099142047342829955531740243173033451759248246554350229518872771405204270656992880651176156240524984500502593342236339104825803961632588475371866921503067567833629771031513511831404425788287861830389892626685926720987856747183845100976745252159752690686743680496739567431459034892498107607447064507829677010653657529060680523097698299769144553834464314975233504755652887368786835289482011778915495742832440620201262101030673288092582131809342107834720766105542351357933070019390048430708396512707542496254359239466409246281519169725163442672249178359983567722307445396084187916694625454896193887530862958515280366112108851389589526313928849553993400946879562758372513037109303899071554230187641277976277829022556351266919524672531530403987773390561782311721169695257408597183383569137469578128652681565948913867962461922093544967855755718065090888872437046523980710720769646007944727442358682598430991484560176647908876938156088863386671015650885548945378150411875724564540672466262935011888281979912486150088656486049807047496353238666479622920407741733594951133000136016126458049082239445579196312692252974870074339798205563505115552199237297035698777524342603971107333002321005556122721292457874831574773879953350428832090719464983041680367596439695651950693914447827503334570431594616128978935191632315193062877227780369663696804960477349219259929723991232297550698401217336475933383788048500260256183234150507996239751845554122533959164302292315314328360080351393558274888212820685430667624916623867178248731644164566198518877161002642536475894089993405562219195329586925948453068070782723607621605023495227118038187750030366338264429322830330072045218047314867766095239945041347647487105218376549905393554453336437173740200834256303215660856135976155537467414697891188984930786319203013879521288639105498716493978816859211260641000978980525589979072274661645782006862199678941677455810549098245936841324702405929173770184085981224980198908793562569135212155211751354996064363597048860058619545137405577585994214958393954364946972670191040327779848528599983705956462402427332899811369897446860051290986696712997145412397978893401115703630371889742106287380736268647564041293107624195645293205888419421065227699067833378484598864979663479926955398966589591434877842505724823569476881401067382204854549241825925298558659987407996262678834495957493878819768851951903038787274047348327128971388844436019319316115479015654580511934960579290519158138602470683587545587672553262427876209283397761709344173341509400373265176837471570114487211501447661122790534333503237398503032542026276157075774215032497711295368129020367304201841628848980139179926955374482654722763632171279525637742652738495398724853017809160281647374946401529044787090850240577000828598337405095249229235727957979595544472343353369984645815845937680847542256714679362902597857694358082328644381520197980081744516227429571798543507761186578880516702209529737792657522349321365716554568225169885651980614526662566170369872253553610012444454205421909092796095145358744040574481218011523656908389247235359870742171719061930065623013027005469992289314886078556109456087867123481358675296335114479547842301020645064717731652395899571564758335948253308831190399201732319530192467089025811396766571528856508509925205921894625715626572063771340020450767370858386904836908188792749791544111384910848019491422241749986531526793629839336728516627662993825642145585569270638159127086732222512415959852369136182208685676531908283718653918233748725708307521467203084462936646187201845060809192676353629092648387647899014062196827988515814080388640897643283055776481563579139396587578155484292472179528850209918359579235256405132014438659921943240831222635138563927779608351644546494410233164172263243322245774026427365573125520365508458799205911607667027879542735244437609454983652625291017253402258169052537523581691797635694604380367790527083687181878275515745218556686511706911579721957238491859515238940448015315712223889112471334774814717874748005314031482863871955058667934886238532658624100314860315848223710740485226626852273145293515428738931424321120914812917982495342477837335956554061498838603702045295519175795540033319984241207163151619023479074822045558049438307071046816884584523309474138892830255505562172926514787041963050862219105428815205056239374541734913420201115125049887478622000564026424226567618137556795928656352893068962873041164718180226883410033300841788289477082481806841057877585708327156061087782102695355016829817091954020015487851005004080705569874553039125479501499335975842596047609958594035605585354084942853609102041718603700083562695499470065745827614295618327636758049558625358170321945864701081967490279406473853073245207341027279162418365760682318499966349068989921167619916638767639133333737449840407531946023869357757216243391014474059854671362866463879916194491955359802102895273072194498612995022194814687465142116813618380312718657612022860763048718879414681007530890731868018065084574356537918980807294232690902058904405482126167867735916045775601201789078081037109849524090283094092621137909381620089836146345612786562416746890494769753468360277485206228333590146848464359642889575900935759892023333454560793307470800752277931007594241727177744335315798397316129465091327804782673193888912308340440043189161597651084135738265574788072412178374007768507124818599544453267226422898557301798461507452688217978998983690890552471155858978043421031651410992618054621218903738360304796237670569837460598700050770583517118098208244257605131196341814026168748182333936355047425189820187428943031325611197557041390297999057293427484055217316649708956075907842823966457996345725598709093163787876914911898099023076743978389692809897813940059144996720472161996469730720056528178770814568427368823215529381229282704864576084856747025697091015315031691969869841693070512972561399528406211627223965602805261250932222083933960615996719531460168407417940468504591723204030532295114732559470152937282482444553353283644557777340083435126341526674678021017981280534075175766941366317419175313900502630540210372163029600439117027922288692466817391110064191153926502928229111641277146927928209446914508772296871582555802771705827549804267098819960808876200153119384420780356033481800270188958865974646566389225736801270831883430576735979619634485877519522750918618483819211622365651696247782330738309749850718252876826717426320456382121217367326271070926456778144959110320210932132026108823584519700476304957054900880228083659804790638506286242359578458206157319361929600227736608340633870116638564029820694752427875487693100761391159747712745019397410192803929336332921889806508852183356000710604525065941119808938125342714135073919000884047343534112291575045940556029528195760565274516285704085237290302536636057390858543291432965977979049144460727485140290498382345509010460737670651675594133204647772207283622758559935563822490793247549759091626453376345188346262022756970621359068909428597396453482687354128475013767155721034557507760213579895440384173831870613315330593722748539615044479002839182583402078323223817724390858714792818234981065610473443080135324427297527764421940574677015794629036740387342833507602214493947445619426827121342584274467735652782995399091829327706826281956100009867971327134888191690931362499886699979169457504919492473079228134108011982853333151713081633831250329540103585646359092112231227153091513977755550866732975704202467097863636347294205813427953076038992201688331114289998343938788104100899875456752766418159334365098625544443477565921831866433592854294759364307733074647259225008851073582310706238081662561836850946343501674701748134628300351138136084454646301974657533455834097033696009570069670651982209178825629597126429279562439447490583924476087523706537471393279218524574821465186941140061197597356022733395306643721511594886037141828870225767815150376371898190806765300696438164680800481448595705189691471838409435953469175939121832684438869052943349265606072864685637576840719245577487252630974065546676238212105952183296404450539037260607888702394966925794860261058949038343528993788774245572965839749248762131794085354456536942657825022419911142398692991318398462792701151005231437383476551342094370671210929126437051334240828008878153480829278915220429377894531434972241446769592923708806760870702081524868661113500509671512213004582883379436077427341290375206419126485355810587368062289400220878639080376008873325486739827620218798997566748890527442649080109568545641672120401645355091659314146205130108994247204718996367171321420785661840031360148017583121629730907712018576901316862512473139626735150674972578023487249584087541244848012837457787204992423711645582916592413078968140170159922658912744499676160258751046417070852760825825434285088631468783526216465270408599760868663687115955363960541425562573471192877709770949685633237820948181643107235647680166923378992798610262057588007578683175111410479788132401098055128009188690071384080518606633208265493121991934914569969240410557418742057453840622654492600131449050777365536154451311719133680961836303579282031668846735172523264136985553506888829401628055598120208614440575852750354310342372718563950863779037092615755761320941480697873165035817594913588500600853906112855485600853970660829018648408088174920354956217472643663534985240091180394557700749973395788359863546172193501727704199633490634939655148471151106533559057446870682642399546624233380321139934822715259014823712991512721664182512129208703654361979787407996237936739274431822994507020937619270249760980714657933474201994845870945901621639847361591273110949000047151488290397913904938482550425686376234984527993256486844794656593218365529125648781922370748311826657974294075919708250843672374178605180545584866227142290182598798809801862953128017488048437868567451859947238526149173468532994996054541611740467599902676599727003511874420025743971585517687354593990605178701003792351744240492476697318057693013558620077310245303590265884771840098158180158051355803840611983997757442742963230385519609448042436599790676644583996445433023276124580510054169068144211533920674725967920771563952267589308341974797143424595578804936879627748490988136132771376141842158192504544820565116975935513389592301207789605018094257550360581067058085162934942778537356052976245872653755804501640175216702154255183661783177078983259869093532831634133039149087725940921663828625486740589245109915671586694998016575419358650521591662172768069733672451538149691947554020723008139924363009377278831778408701740064280996314631007634616636670228486920865159352910270362623845006192763907307708343645220545884782271937899660368704594993529333208395846181496710431851349131709633167654289865758560964415971771662687667210774854619526592249469687549685177969939719829305771084879634327886153306407757450806383155951405659582344554721867828802880234843519590921044596947024380074506167321695857713065288773140166623105431145917556090127101857344877318947486572240084801218139005669127990761549766910477650455314821209350587121879109210986819093459462390646492140104271613862406517033776280993887738181500134317334798510526430765405422861291221116267030824803970223273923465819734183853739509001391354454913593106864625030879863922686050752983343412953499644671016379967605075808314466989092715681102821780454931002405128434196123375429015419606418554362839549168857002032371541145173064637681707146220794592837614844520110798287302369388222521543725926330877599368620827302697699252361505866675521335019321321628699931143675266038390590974738063848642905822066664961183928043883731995358782263569452920711089698431216943970614984594242863488832680572705002872332466087412797715702446418518470033377983000235126474953249766447273486634184369370567663929178491047652480988690475228585963771362101350956347139757651553048706739347763028393779602927918862310484784510591194544738737712554612089765754908073068257388632073612852504376045009338538470220050616730990106529861660261664605743845180096931270356097484521477182951661375413455259771501768912975091535952294651073267176541917260654176764882727486275986783387327305586963990449727767771725097343565368391658583029729924257572200512345451476226394997890592885107253508845247585598789414352280977327392520281122298111589309103770621412721459331575828939447042229314549349043964195873693774805780498152613988079821805172668621380038018251860414305520515103893589697051506765779932743484667055867522715727679063533400211237864305932230475656515007602128023170442136989892369490866394767866409374836003153661481254944426099827919276754483464701510706545262892515017086020976547119747057924424015556133474746668737733361376550066351064988036782271927872839327899134783846128736851789506540428470881809042028801335387024119781619966377666360927154719325545845437896266272730606095269419159412466069021803094597344373017496128014453346865883170065944128799710424865456742735049088063320615084464922371801118408132950453444073649478985994280826709552311555681884437087909828705020653757763656026486710059586506166582110995548768671255260623187994772300409916963130208634897492406032421463558657847842308600006335630385146223432535200017654907509838156048171163777774331280613683290976428611023409594233033282718745389945156747918376641808681410092157205758912669168386761833149034144901762111749968077565277032125344722126119410271223576086575981651468631100124827900426220238764142004879047163206549010967791469945142704552989206997030981225256118652007845535490267153792381828497505492476493388384309412422732412640842635507548934207259983451853856919770451589596688223927672441049794344791543899297807542969279537447441368078084445247145401867394683760020976178856348113438863593867233761140164655635003253783152453801052392159298383305549659704499074375674406596108643655338992633910903722721074834006873619801327162361200628967502996829779255463311439149353645635049524583157704105544218726086044108436321296567282511983541519166374119235321649250432909234364613728011791423394815928231187318715352903166900239905490234195634144102634501921794837123251156530195695638127121875211734292362012870773374883006239746907131297662551102598995518728249652352696825276385568797929171250573191677829140321659505165133617127868273249890128328573037373594804394563801686568544731581474328648816419788312192366840743343256002848091161916998648120711586083577030291673980925383137552261524147354937938031997455272645397613421911322497730482226067668909414413171624793404677604808321227656716030429952394512555560904911629536270410495008336054943754830226809585996164171327267292772946615748977078287900131403644247908137149911854686072899133208174182219681778500681958898761164711020666063985039214213056483177002503979776978288772284714706094448513689240352628183940041062772446651096355468209707396603619605034786465293362973828785270378370141256123358249478849861960155797811158106247102510011641389089731524727351683730055348432486543243054262161662475672104800359387030460846627173410047221857823119913628301180102659554571132705188353995841697484303411550200183789950646915095362433764941899350801723504354786542065070397044037092969172828780964388235988910866509839462613845971525853822849637755749283904612812383141275961934989666599942315125028200349705880524737856903547290871292792322062120622077829743464463913143626844121261087414058179815314098767642106356186757380419378492366426941661613753497569051106958788733028510716825029995150845457301917235159801900688565736772107552830205213526167430865927090943355271362485634519126767979759315897689574404845229895157429789393346748171912119320622233262184233523496472279629389571448584837989887975145319000606004574778855666878904338788076368673223329131262180054585447496352106513397625850545170879367955343936665124756951015303614881507671745110819677176055245100597288404921192336775036943066614828653533967721403269998766346208438412637853825360550845802365130367624927003103836929183500447536382102627359623459769330333814485865794771542297985488918019917041205936584404919373804303818269351393185925924219294335302705611164890339711742493619087429232591595602041612788618396817754895509770190328547015811146848040552436532530133587368469993553488630665944226160082122545264878475510527725618834291556958024908304173567819573771553266673181633380143975264575347019195566960110512447560510156828936539000488545908087439442559373100269315053196955319278013492637129303292418248338877730955606216792656542541791391058203145966852029583929216519092317341735177292894425677659743666356594362145886940680499894851507613276839471183275457141454683308896723285661094706783428875603141338160767182198986601450502837210185256014215025406265257667192021458594614307051076079936283416816740230519219088883598764986826075425486036388629211018747046391242190465806151933312638329174981538553072110624062846713629438642365161896879049150932555863603935815294096445792941262644895409258194815734851912633905587843640891212066485527058836746882765999047840791810152264275916158420896963621030250150045488054568690528901380806214551675904148648488011346717104627331964567751090514356491709469971972315920480199883813736511264845644732466862785494572629495956994621128230698356772539005148679347199630656240674050413731329685067044723092615382711938814849011521463075965406285797552782103921852502961585771248845220794959730040449336309954602650240856425453848245075668692209220279293872293759910933149843053888168202753587962656714356558152114669761135413450579764102705535939325286018065073978396117012810166508421756979213120745316734562306822892811551255138574563189636366204506307621315279524745541764585731035575955991079466934966193741155155379364270995008060443359875417626150326285765078590880197095012230083501398481087383222673649364659298059962406045926584883414499936832830975180993728952069650342660491121237504029676327653914968739578567346949923106916417253535055306918177902453630647420676385601805720845864579781588088051390545208551767785352824992037405437469046258075620027585162820313289766466057360518135484940647144711625817430960112830467412258896841921531577702104155693142834107438837170280046576424246088037871665283918304467541509953899440858118287859082749407835731388828902738897510736996926235172759726450016492161881900285615813683615744607804898304422304356640302983049000985223676690910169507436274450781006599565819537222128059510478854913828844018629014255760956177751124935190623035639659484872257094929537371867352881250871806161702499845302838495665078931290011733173975540740784914201334435780154761514909031869137236606421327234221054272204510427334402627066495299074878441979721833545654656228717156052438460777784177012833400308202757798309299548218057524509278932987802319867899330216458193670854260188121794726783465066403060829270797914090587742143616771152257997107160078512930351820856660382561798921490243795980105621680826918842568365486391254144875583786355351874563495703150946990191142501954949275311734077130627666145947244685730863303506591045958962490892708088652567701001422488734149410883776014443021047834166893692462133727095049957567862837560253059233692970438340762826539633326199111194209816287310781427545166388919669575621647157846631354945425247217133808519367473006542204400352503033980610383971562491173426012516029519072555860077987648046310900875040421775834659639890849107037432123987329405039573195527681243816101930262018298873689661648467178049009357341197015648957951879648602447719117469347426213352169792853033753670305198816649736927127601911710898802438568834032597511685544262762476709846711899514558969350361074825966104607075090663124222253726007210038378116445098605623720496308253804560418040265478070250795905262603127717489336391773009424469070814777648790690520112294013336688372973757026897316055260127634094751081829396939263786155918613520214997300417622150778673930802576479656309735349236717902473275843288599503580994140593811969262923600886735196452187119591077316567786063262281272222503548078565623843449473304748463039800799196485669376646255187424149727701880035079077032844300025311837511911365638742931608865150173951740724737940251438261446659342830923840241502122305941831534477721315044295673219289141406419126789766718778849613324445108183468735702148013431717178245837743282776826118371615156912780909697744991639275506737201862980932655748032968707089070752913382417646258764570715900807559121358290363745475518224082793874633210920944291508656559261161502028000011574661926693979219672662204908307829187023443951086896785850864157588104140759488242285238664431519453957182275138881857498299612911929653348420970716734258475877727128534272949195258859707932899987599282641997877646875328259933019706673893496062376432271417536721280134182215265273740102013847304681496141088155834999003890356934511678213904643335236035135929439488090869036548724897920217530464723447855372471455173043455526688570941023095734086303633223733207982444160712381024404494026226100806610535395713382586885133772746311906484686822823755790014609832295878690259049710094821180616559585758967991896601439254299036837856500649238409583385191029130867764230943065417018864469801528524978215273311402488160058079950609934631921859695732667883689188907913075913608684777750111395755586452813510902983229274066436805070202069548282577425108167074845055308743597849971887691817006353130938743244072604291465097928621767948760459840637349025023192929370741312193013632370737928285712347355495785342851158717732311213724235227162665629330734138927087802518832464216614824874803298593139361281812390161797686785187943190737541567249511929509690992261365539928169386651510216980950929787224445920061778641376007729153273108487374703354357895703644095860116659691725895912187988567303784183353218259395755733193308630297278316649080771173707252484855313402023820285289183618999335465892936163618280840942685987452889694867816094134193682040184784287143785792411299457568058517157801490130284753238545089075195475971824643173176126275828852875934406996307885585399378406836176441980537206998651237372917487125166310712745468949298130498109200675139227835270505082066699686749801751306363455590604868091166179792090335274608939933788109256843304585631243859739838314915297388835412957598651448800999142614733399879101034887281639726222029301444620892933395963635242391875677892637970097268473276223158710550076387676748031705486921847095433915992380506340350766404852852178605631636185611550332437690323773970975260874850743409754270743548632085955995296065247723484138077439705048506174068696554090909371527625683648677768952365495488286710964714061853023737823858896765211844289966130928173026695592244552975166084719867565551553411881281177410597129827065004108307167421412843823855023882765132199679081689032323802733218751091209238522753892213882310027115484538805368839844000869077391143920941329498761478545833381838793835715275695645385610955477225571915424865253400245565946063246893370270387313090125058662743633216720555360069052391627302857486383389355660775290696479946065063128200253080335430189365234000654670275429040188545198557298283451827049518511834409144578218916597381916723665593432950415782783888647104437251223494418664278179764384785334361770918171408231992175242895091361077707891294381645979324183701723437363794736090886814037851886778032324796982863803648561837589451482529474119113958660975316933393431737143246610900100852482050061591933680162751161139877271771227032013340440874405040886173195766701840983203115218147290395327240578325355840270848771577182976803488722977681100448894728632967653002737218834575232772365385371014887915170951363580079122024417913714467664740851178619336630961495908016874770798927926905231993351473594823275818737451903717941075636139529842155577599780341851271083662431224050209112450725662433136326277907151475291070862141355658063143656650170429050580657987206517626696839792330736331142017601131635063178185717341905734251791502915860243778059549044102588237712587536694113529555136221293145229916302578274263975214896295539065258285075883330195724652893334904738856982967968540205640308620571763305403484983375131847646605022651496745377120793890492481576428693662757335565151815253951285253273284888673549909380570757377011164443916154551845372473316682107465229174761710946878270795430793363274710744222230681158019372045607098854303095476449838962869304497220003562642186813025131860161915336817584407348510081943571461593782553547552464695182646400193697281248102395033588075926814963770449627966298681093542720583844073531534942217549778336227291367040168369317133104270946090439742814146534500381410884614914024497126450119499192883467058174304817994518662559796087687611608143877724914776249796687164621908634331815594947203597421039797549198233727345950203057772492746795715502065158152343755799985935894922505478257960940525028070242693128436307876116605985267020974601267511353473682819315174852222038701555595343049109628554201978868507138383326108193601992199332111112262200599582813495830103985553197837571235470632577002538624894400770471812519989829027709103471172032583269235685982316450708491100836342740763492914465655721740857338142235844964158574519880672453406775005588070548776404882992082345063577600335184092932296138231192689263145597004196046098309175217789163101293861979233054053667430633665721433588763012255140046585519743239592490718923264864793074856868153873163212508090568738101293101621454082943401127698804193810360385172322448131074762490338044230528460952973551064377920528086575356118959168934205427349457146562549919213071143735347224220146479371249058741781300363659068504611664784860654473320002033631484722876591730513231079407087613798468501187849325536417980340368304350730333242578199215832927975304374450719340659724394995646713300062400534668915027191826132720349532725858690884472961241247019757126228321967903531816111566948800632727718735327426712449636532769077938603091078563110247130808233412531908549855927117469550731984824239549261655065190601704053918986589954764018096819486054068343746354233211376697952268075835732447952818301458513121619931804434779745892287607075387324171954077929757876928355587765658644132314687347575841663076557264689630482434534644491122539312504029318134143918135336266558131103591697117683178512203829165224835789778390785192493225532201993362418309932850348918478585140122189485344338088869171625119472629328621135922773199242404091340464448199722973015654657190340361979859035523871440121910974123687294283913448195592187398314355282492831943040887131011638511618759336908358087750565654888783534870277152476984960405285019182484132742694663691190034551406778557729780702981053489017771269345899654660958260541484781757334582935797939959451261604379532401250544762369916228233040471926018764091069213999360696016752814117219162254516285257622266187973857233444138728943821097685608897948656449354096619841099749059365579939771978577193585317625915049359386416227819356836473935286365584174191432359165850849379699277786728045734416517003690105686560314706269755090506423236747691564607737475354032909377098388296607151773692877387693090912712929024801301129902613491425508104913967308274733687282464820847246470153202837687304918724279470382069784584453541572381961833783807270725155956849566652929893303633127730130431609816362969277168767188013834462552395716742842080925786528947947726962638878088535491017404280917571625381524651491629469308324118470075096399587847019365317263561548783191845351441111907560252225875857878643134125143951023970072550251578362779471914689140991435209175898405092768719802399023670561454905044647032100154297900987204992215766695683468772756296985739066456190117354520641558117401538566238269376198686649025454514385752521821418218837041228636328630539842280320106245421599002786263593136216043564420940137905581703342612091380856806203317126297741080314664535344174612712709989008981899331919287823575443238885273357624536115917621103842278917138640724452858680399219592484679178649454813322810709680426097264394030869118795033569599384231405721164029869836812088808331419319962052781452328032564054898730080562564776417149697683409384421618313432318261617876950913112392066099998599036434028452811661052995389370158275450808768768674570468107276119833163941328460471370783239301904137564153261368589662093441167351514757107502831975979252242069775532730803345113334472258416571385343954753655970348284044113153500329897358741659011584153552044698275161468129393231898714409442428120315216919910921695555660865468874782151295753216916174467000972412435390904825282943890508545749711077499078791529535746135902442498144361637673817334408014557792383652998513337099074937917916013816493627898315120864663746057814331253861866916664626027788015265818785927083136813459471538728732828008495352803885133223624690318325995462726079037449584386305584826902134481378018975409555052354646033465903768200078997882067298162047584628121458416379831171930628682009866879198975195895126494531817076042925451781318039621047032672049329305003659689547518709675965934169635423582392172959000695758777885049957327693515219305767621974676612170755471736309826660562508607652706360253617972312052781134550386989278684635391938550850388027227114249462222655960729707852138575847509385351892946622760525126550855753923671165186468418145441188634204983078449520795877532392770031633032521273270768122951760175057055332741436381747646052131870212918285810990470355676144570954442855969970713805160950663411176972418501639458308824991401107436525451518855311925863376014855589663046099976331125233035713197735144294436853436230719766317772974555262148345989223942183180336746288098124773215324663103979544003912879826092336408337721352966678935569775365237263863830588311527479778783857922122937658016479942139675234701874967224630344328349358477991242535152917444689735618326253530905246072128975177953771966237194847238850208875690580420314991592172958343903727308199764580302823158356529762125067780770867606501625910916028316958854131576250440781517244993411292058704722111983789723235407795294305635543638020855793194087551482471818713909889682804973484650216861497118633923498468309877613709360822179340760641071804020421555774583766753478830227276065093123433443825315001293376938108341443898653473932851076904282023196531236591228379315158115197533610191108896534123203964129145888199529096019649746770171789556347573124129023952171680998345893661751103310971688631975372427544560645434837031732454442589275696429238351589651164090457567055528895824469650689441933273145705611096749447816991615606697570795529635806835868943828309102445481178491305442593346534357251922649778389917103532836713362150935333415580160185975103083984441521512172738326061516286694152664848812406114753337649361226695712678373836518346995819709291984624820380127107883984272098418119780289369233379993968913771533175361683447719230441765822723679686217984437462844384828849469673811744380407618804173951407295700561169607904396027815346725893786950739646394414278286887457092016871608361608507871475176701323414474620358909469136083538122426085887195302189911967414286775059765260993387671523038366153468019030155776379276652182964624698808472045772929230022387755331506448395790284665297241895364251417915403661798056392898359646288800156342949477644027373848887718858210247455746681004153529986963077089552705563231755864943817728981548546444949553383122045534363069395431798651345274995373001031171025475063357734272263007559777204186586329279458226731733244226836195736370336094772715577484813040509779928541725888855170016853805233462700060064887792278917051212761246971665632602448903718988611096776024982597898621415543642727091927376000654583775958185604765430478089845694660749870207910903811563740177107729938336772933775337274399028782194463314659003887739555306468908322972910914578099560848109072960433190314625750583179244546459207764398172914728225185858122276840939799451630077972346138989920217514288989693998369105782545993093547019987907387207889592853774528370895128471604350590300079655074537546289267745410557634305003380093194728508040529639183959461422590883722564444570349386654123795352858233468970200627421801605267320568284617987041675320608493345541015266594014207107852141873616377945540145542405757712975502471661459059439763279512630216173709876491189106069883887881407955093174637899069855530888681149914988283583368995528664820251905013150092812937702075973052059627770340312937524246711518735497010929870984461561521697200114050227142334964059636168127298145476693306396949253870957961092863755391509620792439533669686634732120992969695948150583424313228271285699687896663295561461364041362727495695111138948268208672299261311536604279541426600158501785386302140288149676677412240015708470874035624420005860856281674566859582891590814139867847943175969886466326643540097671630203246822899392401062901438676085867536173770479374240179664263912722716456931914885344334311626881051949797836511144224955370333609974722836919863336525654069040880344986489917261926442005644161944626530484799284860735052549850726632766899149985364000848621777777449637389714529981223221386487206033310347064882040151725392731279813869423358531442241994716433370019996975584621794095862272052421619703173738747290423305337506908572664157944192242207753276264687031662596610575034058031534781262357837155064665666565897966135012881377598187536653150811887764996084440933312615271927348074712488342889620496814730851002654671291038227471156886660839881975415995113999559434033335907675411895281440045489289383366796030902027684428067985718656082915476464031779276127703211770012944634642119989220703482417234544772308799796737188948760988142904510083538135553734132369432330192173007181414876782057724994479378478441324465077982187328958133509990234503680107490204567139809713955822312130242328841714947070549655934846662875553672755522682690981052603055090391931166793448364309188980332715040427765326497589598056057097152927944501608907603321731311866097606676265505850654168654386746211983707075158116268875915396708489322058359517314476034851250683367053067910905554863652574210140903521801159974446482871734875454928259332777603266314046714359186749352443384831068889373066002876811332537504447982435879586217146277022981167696916820076796483563982402311520985236453146013767854917994630464297448750907042107314225788107258481788782017573891084842260516812122804261776293267678750551623873897612377175785428492607632125182884144641506082341270269328773159411478111505033799021002964733750671278953929572101826547723078623385002408618954309753839144502523762679089132696252366054847646333944966688574094816364537179861469443394189076680284525489634213237117039809858819297024912760088269064254475202934846508595591045854525629077719992286132154817518682219863494521233494475562750809315669872793962516414089567861056467899604726425331617688960237078972127766866315167569727304125094145466785445320424085707132107595168189137682610310895997307744104608234790314354063143037807934418492856121501379642674059128010444546890389365000064250499003833587194979464643431458186419161579214721099127676754684206470913130935441225685014169092048243197226874637442503797629744341339083726249948930928795185897218066825857401077681046317285331902198447146210832429303907393807435017433831029103019725201334717609603010230089249930371356654280363059285434273980563566716797021581719125340336327944915943345607002793052182406323954536505440534040438567690140635072000287443608779955427798570413362533685028946665813175784283294850019615319192768869271967289297352709168824108455778777372388342234684170478503361250886688709917508198799974791017904180249668233592152130868479993573966992927409043619162302527812301590694490744218555736006477211403359996016811028112232654342311558504306380695859738198485567043651659865230077490183463608106200192282027236058457754468060268845638003020328326387173186575174225682517973939672764759613437196461311549335388203499435622097536701108721298880189971817729799402706285341984028238666324459198873545623215422179786156556999608247607716527196820168255868653571557648921517531181910493370999695782890334432067808313896416438455223240757360385478628418455266993228879142567456593358717990323255511931893566169268911314416891176560423577892263159167313689750307094006418501829418739221946189269605174533752596683509310125767528228761317662379615855696628420619292646414840609239091503446080771891721036031205128813890313069740603365030373989784801278525707880867933943476903553416746181413158964325694307304624860947923573293880680207075050051537534001699531386876831758380520095034275916788168266910297387901295242552912131789507254777788199731914264897607302854791789518138982873657642735248423557234896428759229573077878582840178841704871821826464985276045728059324594360491506515817163009091550663754125925368737839793496972501619491846372610221230645044321728672137023673317008048588444134789432593741168108043247158377082768788096950004450438325984467352437275131472051436581768616484794098122017926213535885777232710829111257118850924038647858769499164291972439861010967756842874925814746138160415666833740627508123056072488809036347804432917838188891459037437988294407305659703929048594548160732607441865358285669544865819760827660423432449653938909577114420713486618918480847791890095949136652695417950547798049295372342151312914113305379673384191333099670546884814827613456511986247683099730352085713219322240387611961664190906461056224337285810899943033012645669008213151747605784020020945857794893263903168692778539578312343080667695554494243781032690794576797995691276955175063142866517890820132129988708665705959743201050421203308181801559170509804818071391226630736900614210671431608569097322685067498303786447377225010130693171142873436364441951730321235894260817546195546755731234776130652445758046013785167070355821863344407289403353160880358571018678296520970322950479589143917327234883103160866334531195035990083007636993781912068838511039486483294608461665147157134794067153060447498277556490389581986169235433082580287731803218569382724098466862845130374299103626955664029298748866428423477633305635538943205953300743871832076809338977191487620677571689918709640117364179784294469074521117773959584566695118028476171502533715833560141931818787293133418664501479553686717851306867099153847459540886963203031808907719031132451170415259121169652665523462465911266885523486771180200925360730907517922392619425381841199884266419901578291322505111764897508184659141355763284307058915682230347495472197321380311725111448268785292030812420636205031029766701778699548981413336030129747777224618432705690431768555038563838167709506488296970911659715795086804777277520222618991499916403435070796363607643070433082713567741778311250995586872235330343516406790534710778318677164002812802980404635367896875517400135439433068954536286853740940951795489450133538695073930419523685377138764156168222236439593041724513533191549493207241364061368125159145778277135947298310566355270766528539029939184145110174277811185378922142202733594034858553804833484426984915296956055809743673290544573711890036012289509178598294684316391721999009945543121686043781373340130271610185370148964267224702755322822270385042176013788610520115213394555551831176475524255642377265793645063483605016397298985016586903642969653234902426866466762058350744031210142463312859923864010177074500558031529713715497544499677085910193737310895912250256320910345148817700235780492229852313893373231104660148023035771211318379171982677746044487556707502031220556062988422061023649694504696448467019790645759528596658475277534075012614397270909364348439293755173114364414002366216255441680113598371408794425842404519769818147222476431666150069843540874448547037391914084118591862172872141992214151502701651160975459432149279366907105589916935840266616245256320757786203240404231661783959959695158427636018673499747972034052929169772428911809119770775805712683778140676885458013311166247018994662001411263008248100228105269895012014431043170899661750365864465117816507670422720061211277013501216829917506086208581384275131338396840646541269003615397921767211432697460931350453833098554115338523492345689309680516280245885490737140541591430169985276558085147680078436245736174539089530636851038059461622214208821006567098145318591324746514153605246478737512847696442995671832983685505040657367126229395526724614955804133083938770446158004125027137667147281454433091151802879151046708857489175301275634701805632279785944800459114732249482328169283952991780185464468014968269916756762118332089182907454394276534535630124691468286979764739565845834092666184047295749843409857368240785305880669309539817734077376274810432309911196482910102156003073679719196669472259018883097279816372450881432559194338399375586896086151118297480294535259149620732938754837725352957713835903752522687176486290697690050978992571367801123670384221677621170686965764907050653772678289935612545183641201936633389323587639443262478091996771211486930765668808362777531367036293384032222186310887280899469643898361439050488345591615996143083386732277740360411614647460051600346316398777627488598015700210671799804542911028380159523908957742248650689946221963106714196971503161456854885397300242768081848031605552291725997069586305035195676388766535182980389433789163645604918533587052751756743244526574151062717567471178925136160764704378340538905728563012179496484294639264940405365947674979736745563459504687639421283678283244952169447526999625873889538209456879786856827640667173975929557924248391779491754675129125666166756636741836108051332793591360577451530133217135892924257601130015263986785958353750663113938188964112137565710357903222795547825714340361134138452643982261794851526422856403322282899748608021559638418820667976588415923467867644817052240964571445576927160176551918749457332752596434338642813154631128300726766578437032489524803176632883702723213960697541834210450509964995102188843332028412997995042812458930021829164105275113567252694664024599529144709786529837576040858305559556875183810921693135715342200118408141813146172877615976714891224051271450718424185506224913793010767704053275464809715034174933117635234004384230038583370807149289984516431015548470943495604248954387501760468801190533566571641534031893593156920211224885024865013151224510412109963963369150918694408082409922286008015494611281449791789972867584174853032222716668976675584391666549132293675197189729218971567336891855972836752148593752805333126208538537325587305200876316247066167593609729510255044045986145895125242303188614437229869846811373285780505979563708055284421879538010255868742238873424341435390563867913679641502903235687545932406182438572653478831088799378716260797969755898152616863604735272229075441397691033143543285964242220124499641490713794494116552218758976703349801435005377866615202129749410136261129119858451832676612526631707268013764324103377790346170742529399730019965763170267848017609074878529168405184429003524355532394137518537930581378049535191405644840936694449514438929928507755474081082035169887728352235879096797685848786993143411962902626315436133509977504412337673141241668614571060508553830814229553704099305749141462047672487013546732904009162577497543386845709852096397771408086014367136569254796741942140211421653680779172095050384072275824151396852944239171435782849945199684993840553034804460655947327101975143613160177361579621342476331952730589340498298808410723236301721103135841484586970235232788361294816751490550161334733904640880367569125312155247244026967881556761672858990343962720152543770333087363218364912841319434680460839396939454981535927023204094015662993673087749562789810553757888861803441196810104962069876385238787856780455756057458812634052237481389342705674698712358148597871371043852000578871118595638357837555818789678475590741465318699251247099878491399422201178415530857773878075825068347814572955626708601331685077944625268715815330482298245232008210238079188971332129228519750567791504572363708338357091844966826492045946443477708152098987853768461468012897963573715194216593120542072929831799742197113706279013208379519927953486620475045396799510264130805711708398637215060618396808077392822545691909856432737735476321361657356506697781339405228747673328877341680121921464373006383437079769138901403752350682367889632221240882792165817624771362280384707034482339280861586375394987297561887845125261319539350889044929850865461474133161763208016567582281349127237008387199724626048593392016069133113184690171307672914867894764961739409475944564109926202399308069543996224334128105187455625508231926357514403116823097144201895305484899784361062305311937763883857934467272105804968046322376667541317478940503544964121583885988140173514292498862971249799139483682696344839063015320612532784958822424347080117738645989316668329590105582220405177605223865212029788935603155859953890112808150643686668390765907172879184389330879058455978613338078019513058650891818866173911596047483214597422293811500968355316306694945331670478088195255667962050774793121411200165941125999282050479405591677679127812411900621349493506101251646918461196056887278749392017267293346619886242910651292717711013544131294939904725135304299933164668700567310067691171677851199207664744899129896079816366096819334583793889473897033591533197848164296805932195939670562838188406814031458205454053900810847132944249189896143674924452744519894370493756202064977860261526068297821267585596121212545478832374608517723910914708041268800714982960717938901678439734825501843362807179750716157980595973817927613424378793227350705494445537018422400727268801522024085242527888762198513192673595009234222808463866757019105527596359783817798478923396207889058515471868926321643202834828430766682984644240045926164643682432134346062162233916182485042418754415383399038018149991151418333037294748951975542432467319874646286985189463856660656624904714538037212043971185072531919941569402154568932006429695241290792676307690075908496180004520276589154459641283174534145908233902068867375035997407071505832916757882074966795693109775851873174574243623953282995828284163477422243121299092245691226530930665507026573317798839797050300833957955937258504141890087916778495924264627561823237965940723176641488155213565807083479098174065822519277420735616266420267670885338829633057417461721773040119519299167682355372728136894862308860348737700757642352425617378489207517632686141192444839451824491665848821468615034174655914453430992285506922320171792516862279854405626638449707155609214552496591204294266340330039967407855686627537894588866424876941412535717535753371155318661164376106548686624029733317756936961358745773035528977978557622790308986366816514419718631630208856574537206145966265749773633295870926530948559385459298464597791514551981787782407333376336140828875570241670403529648910751585232435639074710408080029299461446521412279941762660044629004098202503602121498396225654347988536634687429984351089239600600006971041792290690661657490523806724336539127582267683631855178679080825280347469475076221363256361392124370051984386458628043351491035078408767648701459852189023528972151003839468346013612910565166843424185055074690315653831502613735879416948967523117435441808634467428721474695294409631083978666658713312741313064994032544520140908742759210932397162789698725286789170377336534076220978527854982996771621444601139927236852969938013408588047546022061272642061150456443833852660749277685688762491853697580660345971551968971197889583693649429812626339978396830952463237444549156417353243580502624451487150203563596525811105418107467961755304584804228935662073588417364865543710945134490519810227626233495923442589549682969562488847583837185577605777438215670850878905081165336653338673568769734828664045265030165136491668425541001029787719146582593280178442231173041663750828242425369427135203485514085350111914611819871701428846638161796122941785047407837778564392262611979372879063121693404458034593293676887956953043977714739858669207364230408953669210468854042955682113605209258109486771327613456703868923598409589594885005629752915502797835358013894407118086336162677230098119904172333742445144618956622601643992262908710734381051116590516085601888904999054317639275750881214965881230024428002367754414682492452623219631581502193720511557263537906282217857951747680959152307904568436286034530557212035548038065534698162419639935755227876899430744213439924785193189763324022850721865407400854060000120872203242474283293922097007051284988731750796245036844551031120616805167432803296580732170170882957024008975047042651295913488188007000150453482473205522552029646408133063899775018110471667873258897872946595293238554608675644422571035174121766685474590783603987838163530419958661127980306342778000129387674259907268000073973235515546315985827528951974740886253289643314752840124059570584176057958742927368849631311646888524104197311976867507859990407690986862476299291884749212689814602454181335517778843393598299460668501703657526298418480853365671879728615951834106067082302823703372740311995757516727018020738101484986851347849005023618388845004060994446088055131155669319477982705855158800156169245238915758256497708877579749061481396891320785147970346051706419122418086376945039435924176200735738882078966700660565771683608653160727461541453464055782505456148123500663833401820487365558643962215093692370214384120463764967996523422495991844716693686050272267637314530821572091091401808718741906075384252956376718506812761452783748545121484834477122465528223772601447777253248006729797791586104340276650463731453408817169333463409776940475728334614476505289397502032534801240176771923465883229453379356107291443220920932335601469396716072732173876636022575704478661327333030851125011372616135584859713983820008978999103912514999792673580460243177606844072640712988920668942327267749792831732715811752336817839313350880670350880451067038364457732960671382829715819447843850733742597586527676479236247632332740829646116296717764176697535289303640795066165029883108458609467642172896257398435626994802091736200298653803666357583989959604326321082727451938439157895385547416477497099489931272833640634120199639911262106493132643349268190381556689449765428132643359190498871849791784372319884891781041509033876936622034788383628847892457119764746187066330506329930562041888385983007936715076714654870834979924079084585034501351255317897796505036126528131458081352448612687118124890664425325239565612977762217353180914698858183592913210333382153604767025233882570351257929509940297124286995416881361121159400589457008695968457722681355929949758875500820107847782650780228989716534456076617920608014684545040604202000935251043121139085552979119602738143340396337208321852153719960150805167403559310543564701140752567188157238228030924061571314017351006841190275521992335520328223593215292258942601572151585118428898685096646383633375868172558871175516618383148440184081969583436857671296956253523616356125206339847607691496081815752120528666940339920591179680243024166130246838567010170290640558067017629888360903934251218516860920333367929910177660342243386301404066394491710131340824916221524918996160590906551616624755303387006908973783014571905618735858865799393221042798991460972508740213468642274534192838223994905670340308207709782969501178499868724361076825835771082619865856549046126304831722653425808598643564777466313697549310087736424120334809586588443168173687495498584306536667184995022744370359611384465964429400097626598977323815020137257296358499733303569561631200964226148262836906284557965944854352943828633408561850113804302467604209958710068128993178586759107350229108477883701858865938423859604465948895910284365437726014023925806376848615711990168469145505857843230810332304213474324021985102053104453662412311778105535584857501593763258416419999730972677937204198779851983023198222765326976971970987486940870365574441899780096766888667410142953533279443856042017740061360323478677531928721528463816985807316587123356179984739802670362258112364766056974858497025708421231448236587419023552378726349175272301752130726943748134060287200950709674267797607269738916388896344686819147477479602093847446659137436670002365393437967931177696141513003229809145502991201523976926065058303404716279201330803502807601297763508919923186707767683952017698261903688281817452551484321436147495155296184056789728102820568453325777104285570763262698725997797294584386680651576363356049733150230809306491096361038470921342876051449053492023973460655528352377440991346411747627426762071095251995879049631733733739661109024038844720080210438607806866085288066898645609159503067612013560510591296740675990515963302521983479900309648254110441431095945184257869418284874323252591791382766655158630988392732363582318558877688206392332745727739488752886808052669286384627858841202196306024783041981704329114981112225578254327252477452448300505846820540242370904479238293324511853461135997420126612937667247788662350502901328068533984234418672741628283975684210222204396367374006398844203654880410880167359999883100094159351361540008144039260254904538348119509048818125513152457289406574364038869417698207852731968834832408870042881446931855058526688188012607183158501903118173482736062251489100233842395906573106316195942478315608595712752317426454984081754807187110295037012864449738310335182752881035635963426501406645414530258737275700644295725598127415309352505587306263031927428494763275245939047684997824429256262495415771948703119663452864025522470761027606141039410459097366909709393562407943816144337422992591209456553389920570352703602271821946283704052579362743216577439626551039139501764903082871967165050450090191008605436322653630553975266465961486622399076678366226311262502674471006396221235421991495237942210938368554790434644604210306537787735583771408330045857019423032644534559333826941803700784039160012623281416473477032965447276863328827234422196329034206723134664254011069743117541059369962140944165358740410094251453929852392486335729791598467310107347442001290698537735711466696846573087553100595016840460149456190069122389434022425490970400021748995630969847197151292726776336093071651736391576203235433235287868284782424814898845372531637826340440589840315660606580227169369158839332433713592950526187776119353195447854346529184135086715471792075925625882924962011418898892120664313058445594287601527916424569927494002483006565610488057937921967794259036536051470838838712040769274849113936081340736678123139336801658881779943041614825870701984520608630753544753516724701292492478756176530155368392987016767911375389888713379567053819054398552618141761123421514101924518356659351918814514718357276158716169562634258699746946371452044356691187262195228293598490110206903127625040120393476256709358733789415848437196685604511044077466681940678828574777029838126464557966981703927999471800645345606954125650581018249348798626799404589307489892879640428475783661793340907864910771911162944864335433904423378231278437261704982791627578170916414423274527121926804994517159689215822257829652811891424280004935389526324989271484725009372432136650099461856616502784442612149012400529695427878414542020380017480272829362281675586366302990068583274342364439618027850900204072070593151439785844289431773349715306177206067792499964085537593362486308264632627377385736641561666714259688384077645489239354705472722262058093088881140308116647638057246193590272600947053783213947129557095286211182424565786030450394416923047787558944030900884190285068573459895980560538963583036121823643314601007873541912306168664309304913674624815020873060223515915345968280513338584400239912108078779144436360973587434818611420321311209072006269676432469301602442270644147574762525162975728975475775401900275425557160027906598201756398619704917921208507341592981557976640503017276986382514140574392911737476258054533327355215600766002299123803992380985544760351766462397587571505592211271396069544082227363862141964974211336129052991443388418222489174587015901152732743458496079901441308072740963549251410716877473102349432465407674992835455793414945758812918770299309221263725823896020385429334698238189038490031367974946004105808302907003226561335220437099668610008369944996031331918098541022892979409019484882841538980508949202160987532706690256203781851043604230055518952835641462154252615180224438295512985995936247151010614168114857207391269220029374089145495549527741101397090871022430924100235503957908413969071993023556166479970392095407545882843164556568129386083221112856888160719957909375447450062325992554347318590928924478882866397321828259315179345352147836701005196410774987427237346358813869313164452611113945548706709736821307822729984223932221539902664085498603870435569840673362258713140193293895251792409832057843542693011722458508555057207027418530471973103032530085516354414841329339713112344045004224195950013337812500314132342417315591957575120596325786581301582503761240629439212771478725659190664646635973549065670319061284710488301326432122668889749973976277066043867150495183304352736788562218340754345341293445369990057871157306595849582543326188617195372113334819339875353530540608504686606114849589334298303863098559513647662343691916411944055667512759160221430977788409582710877217871910438200817017426213893855885458988638883587613474508352152485683612132139717859681819447919739956277802430380669241907820379892050376543809158087943551422423647709237909547663825858089463036684094627395723916065546177991992776209503830853110753878330118235483510094182954213768630555075781968044315474951908894227697079941899547025079427528421423706952133614964545719758816266624071430641586558487384684163034396558725278671284681265631010536863890691086717136186806005356501195205303466094828790114918014215708645677744913158733292361762114468425864348771156465181520488885148011933096142493169524880688669160683250396610214274465277399140107477808674578249186996676917223388562542995863702213862952728695614198979066232893238594064394454841400904329025953542533606188278613321493580383921616124593730049180270065233450225014762755848272184758780179749738889409874206259564960227158313064673197878696675269316596198143035369280131867372125106220765474575108766742341572766070954315690945408401874483146645202474513349972710869620133978174094451867906564848584542174340510129484453860069535417239753557106733599438364922150379523853169224286663335758891357985280793392313813177905592271915360483255235782032888715904908097581738055944771834251961603527188415826531902173535639844946462388264103329941916949144625736418690922509649385834183573525179101465603989937459017142627720301762574849440643270016315469590149439418931349841128595483355932262661729295602563213835381338117628102986626946716300162806662657555099910911062874566348336356692781809499408979380969924124143141599651768017051440715052983435485970020258885532047231133735813197344736856516753056643059237806190157543325901610574087502090936871204639893877631815762374227438445714647934192228012301029647240813864116852345933022946143564140803356316225558172778612663647067608594537749948441624990345473618063993751152112113057379650971483856043658117865849754686395025939822241961936426293099899630752866406499100479338845639135607047944651871840081273562558920639265350851769951584494110563105534091349622291236637418597348410979594454783624277585355739126549364083294434261127320283528871313049624794190324069967179321450267615319955773599897245159620309572870850378377160202296877001739159414861007992335386957877185559704490715147483835118773490672394256517275782105890799786902865656289525455011495187339214202890783968973467250312329976908190567165004761146497986058134257292990424379985561835070762275124077244874177198690502408756888943648028382564328248341903361498477425605614644459286477117521895382851440561276483666415566047845156678543837266974604867750468160445225275906762407036328420294242988479006920774022182372133910098718692700823609258868908573294145341078285334890031233719835067465652077565510809550221052055500666831309980112947382328057672034826072578660232502041358420553864847599901505744353854221464575996765118344914102461193183146906709287372192355992916686524143855488403365561695383633875910092207479751580323739895881465307477580880447873389835012769945008796992883101307594730943831486915554871397682908496324753561639922972502804827788620979325597661616296094898113994377883513333020931442036307432141361453545426791904779206908603478931872849494919098746569161721852040798178576158939150259712476073611823394429147256211006580920191169558512509880377256494378921443441260968426050125623687134988651559815300575580266572026464927447861025587476895863204401312128148048760761521282029513227892821131688375711174511713369576568405513984963529652923963494209922811592116406816038494058333391804043905014826502990381195779191357695797550346596548061797313657020582250098879911109357308149653333540209814376924939728300163380338515726448825256833638327261979802387865271427382904804284607839092272731188236496154385548181576140400337866101945698456379098728015073073413702893266372511765095560684429709249181806126768959979992443672549183654493483262322300993334014256715460250249105665692189320555623453663095131262313872378954256303843535876197111157897360332546204239831780463249919496046353118908582755268949338374042071259656160616059979775853275916736552214379418338199760171481267042805005625871050787091566285607885495536766823448310620786779734527161315583955715695077901008772697426911869633603609456505782001000704987908092178409184252421087285381725774044846350528381158149308469329463157678004508858365966280643757355900918363300628170519298086335770260146255330549727070621742526634002647659756485781472214461376309922116434353273117244287895506871321568677131519738942986041768632200677937850129942433187816026774630971206937246922718874220657451244857714146648113013794807969319878863763734831423000927568844518848498024207557107248957304362292497544386271161188845763856159789177592829178880522311934044988532440550309412900431426082378130032730744824844499781163542000621205061560669634847573950243681357717921022713005715438744693555004539279312020331763734270623680650888972887992077665180492054475077185502322693296796966653717688562343992104544594320880118022878297271948830848399807053638897931078160538866791852848151464042179726857112318127184118264812075715733449213440519322221711750864233494985803775869761085728560205020674093101051431826533859974858383475086057561504614602339955230717901580603752250162036619162635071094921334254629973827432280972897560882006784252475656247873645338183610908069631465786348307728488728291896515230688725129888242585237284729866246459574141821534673706519689919404389550442772660660416837151278705498893680080955285599131623676926616759184369478630867004640039150403014757400265744493878635125783605425589421316251768679913151767124379792840435462932305393809845269442586855649291133293390293890871386492672724077433416766237999133122640088434173618210702066977652311225219635523836166842835595025383481224415571676724162624760255136533294315619791350490527302018623003888668851770267948925017098685334594108535021203215826927463769454868717877594508251929948981480521519185535923122816261763883021917916543875766552452261537027235359084742224510199216247677689350058431463395688405294983372125418922521596402478129383471889314332557729892043034030762859251577014649325893410057846605707890748476100846796049791636786360023524801076920615321695668178212407358362835828821264111973616487679084121328197925322965788337470970664757309448183394178076487780936902317951660717799738533374665247842205528461165685112421880386481071244784863651667704536714013282517790324864380670513118106252330902348423867542482637723740394205229931374490965058907760843385933372115120074405106102076960618185560037008977557145571577471902557700572893925965545908153541673865947615795141806387812490483089497574951637355387471709977575127340670379450573830489037368027580329670753555241368314311189285642386603394849845070893255486304115244431016261165655173288348608863265110837744140103115380003123834631195598600343509565831843676426089929233829193442923009399138428760029401764863882990879346349461124493624023862610544291239615021063360930348076592590929981122968207511740748301772294264106968883323413718073687818316567934577626641204820436191223602052932805012815339185287255500178029011724124792874886820829704660626421442888342328770094221302569833863333802871460147016327070932485392388472109279235180581404158608460509492064581394974866088887511860266510176388062380410422651769967813163041243623902270920345811625877558712653481772518099204762300669361636073882281153164454225252980470371885202733305076984348339728673321925228843383621480344377841564762370965933214636172984301236813131660470627800997218596819354279183778548092108707968152707839054816962262272658491644353457101142618165511574048395195737020535903202841408603247844735895810932128631646470697881309190226519088714958314350041324204943042564672321940919352737735408100767041114443967890211966331816826520388163113929101859301930817180295497495128179364066526758233058750231308707063661162289164541633703455475977373772098881292308593145499218488722104083947242076188755246868274832014539200428362001131323418792112844947360587152219191608478998610090370645423869694179298706546850353632772443233852028897776647702912689513852918527336042880644143748590064920427757581880873437502007321846041431450289213502244371808760390832577339895713128680589443731470363502346727580389030896105280665007189453381864152410667678066779786256696176636645088571278850813778382423734532021912642895012221717616276324343910055529603404765546144320280084241199976184314637300804445185004890132257936349913271033763788471916304873278919288741577898910792522999104288098837412274837840841309283186884703383635849538028583126258943813145706151763383978088689171764298884106725321924910934039884127192520253018706670847262911964053006537607928892948555416186652015062429047336378850656422438278991046808037728763892246710037756257229349992632193805449519684038667782042245170926779035397971185240096532910019108825155850648166168956529938894602952416673178762773107922863854443349335068214638948313836700841558577046754386489441449614490723088554681411195273150752446316885268613346192327928025117345185818169371063068613395951909881225626410285620681498810794565363874303997608369939312316200949182949788203000019665616419075380811446025157369911126439978347979721126894276083081758274558573525152712917099449563217570761251634719291307171993290752632510056375538968366105117812262047644159476512941495776850516664743968536430577242758064416357742372527089871122599901287842845520563501798064869254722615023957118283322757684332862892758797123193294647874105991161125492203248742524726935736699349107476991059425342885161228546742172890740024190662339120022828627493909125131448119425154071681279400677542989361737878001076827933805164906135238844230797221569166683378347213411181743313477157224323876901968778177891383304030729582506376361990268349842032978825529428978846409635715203249394225317075355880250104227718495624516018504433488737208877397360629372365321676717008516455129705653399295353834988308012420184895045633298333273966099320910819616176795252070593775660897253443042846569341729141710734151853958644854651015530580435304330104239060916501081829752021266676002460591193575564780470864870131740626634782737984552518795540324484784545033948152680690307624939760755937176491744619217137842046339314763494238211014734626016150293424584170182619833395167544807373560856321880255288072436519638263124803986979005413042623291408731981355524975025693067154088003581333830870951268416470364817464288078264101535410210542052733193087129466859355475128211132524582532943900383875585672647324068508698899174686512666369426765084093075396148814171024873739118508809186832492036806998400076645531432987527364380214463767349857990038873401411631893639535604141457394726133956737212809916168156699240587168328669845294719362849298446775668482671457889591592264909577028354198447149027816137745261104571590835478563875850174806011052064264139032914504284806694470778866044514553858984847866793857357584813658457365288297215845037285822677355649422958460173948042619026798977295919248029828086571922698494666027176292442147543825400390753650810189452592937806085067896157486816958366330092011683564223571705431693621638685013090843061467872582893559797197979520083989519842749810963752981230376750846567365618372849050954723845958534611906787881894156725213813515585310482215071819058962853566471495254370052297887078198868407213829529992366278157147141594701498425689212317700333176423073933501663322688857766375649778105824347081457699891635681336138607382345588970710796599578779398701289293376394761673270059293645801646252780415112724308424032072629722342836319755263634826060266958970118061725414025311987943860979913796678852492977660482742952591207159677450212222315510369889554185653184271593009094713598275520677116391180212618552868670135866642773037380809052232355852994832607971496779276098359995131279364451051884224790536553299085267659176624118328605336631534250984522933746239754479787142123621640212546377369715553006861476709988369247340097684160280305217013891979086539847106059732245696613426548336817367012819385691137302319939655717262426311696533488416814821876577793277025663161972739320217681417695932503753109364163990946544408357851125950631547261762228963281975880537760159907253539073701232092390157007380228987968507773133676343319585729053461804354771757448891045666504882173215190363879660093190855677583645485670431939751823977005384642117766356096390457026707035060901583192313050042041561371861334649263064924769074025832395155614637653346828498837850127912976013357198047194035941847052450457585239378385327181562677506289228864311983578247641160735879784549361464542378999215166931259247628518674073919030576060669647874880835449718343180425898140922755497423926169992998496920567924530160697864952023700883709777581799753838907948341722694438264110604884765443682460741047248106461206531903807762223032386551152985264962372571900396753209136568049790147444377246896214725234713228991423784186079379433964602585045817033516252940521810002508783481282649276476658722467157324794898716174772543275832969916876310640350315879609371741263012126806139081531975694709862103300893867989451752774391955351525122523253019504235727223037809464825204075394733961887016400248398974954594515278742046803099554595396369356102461126631330962341019838916232619501058143588134762606342157775662799610831563732668734161760731269713968166485714700024068798545355460401778289000107979835532030863924695476808667015808629183474551162944955225902217447996663392836418162574665488404890547565079013256516953596105229719425388482532621515997767918042859640208437066861830638122155513176263727293765225726116013169407408070463457245978434534813210386389850254814552569217180308406071682002685365619074208717355616465122742844957957666172775019178623805935734411413123889499181699990810810191841091568397357849228296904575949994525486153738894223529486170966791082478521249260388423624337563698045917175947955164614615442351021657532602085103688071579726525418315024747379948811976971711907051298481886312500178154383045712848713958960689859752430535294922055309937519060088316936369605789115259978550217879174208548346603725729737861822002643800005693994586126935239412310247881530156173605868530962979521063673157460089996730462518722488971652455065060877062464855900907830669449202001156794232023346344176866268392763431340740731300087358872016604275705895885683787612733513282610077994559433348056265640262784251491111218429107286519941966685481307038643246528532200535193218097220640021784106734047965186586029759136569540104913499171618383457075067882428348155561446568791371717446799410295001630536686373155721105144643085750201415266797058781664148927020118677625532871764530422077083282781817957716323687013974422615476531485213458472778726615460923409627498010143762269178706715670729113552034309952081842178153657794048029354198625316408734142304961027848406128459918884675979100699206393618492654600644207979638202562512900142973286180157004943192383762264615372753724891949773177659198819285007824128709633082148312389684276039140867846566591048632502678562246604955757360165949225046304920668511627984291590766498055846871300917075800275726092121030754628984125265576529168443482718555876693332633076807524219859571279550371471339567599924583624118215661590841413925713095854773835186378773584476828467552904104179115632350816441906780713247360418434665123466419123628087401572026637501756146671635361483586259734461999633475120947021507464649241322568065797127598419366871961794227670826485642845117174202042500797909019819615715845749159517651290960480938846252188037633478401269447326864811912024295695075825180783016702885684162818290145097530708072198567517541516488692521524939006747999216940502688689700376318049823572932372453112659619443622035938289964408340069329137162803738518689876825400212478624507589682926923140187158387219847129483102349573148328471480616618416369386503859890322750028981296139219655293539418528895145193196163133054924304490049126787621610633739663356409953683157340970511636897091572275616092895001492203048073715088863986538648134319068829577344499091023532041218027307343106979797784586733855199005641029304065485689767037215028111285835466114826862094283303389247107957622487669151267021391925188864687490892049601400348810660507837867004513149858670467535721240103102774412074590185510535462720981407072784427205934174835534577484691722720026896297195326404899475327979242717982475344639494477295459336062132580584459397523401007399826710587521354093828778459319868580297829771907104528641436386682928842523901987387454187344133542400141573041434183926728984407468971359945496395122549332118441041257960169181815530833723734016119167917965156765849219838356189987143880562288809954534853983048551238790589398930510553079399675321088179020767982601474547392954601704235957531904110072631137004615597064418007457998424123047700844223333478517062360733791177807699872074511566433741205676698718037498262857885877240499293257319027601998502698244388505997670881347003539146703495361063957629504821538696133353637058976841812015268367725011521480712496404463475111747853357522423525160920054029356360736438441748941984791927874921070110644789345500981533352861759557366475822583140549368642710313462299946140553567367747811753355401626971125176863266136847778743660187451969794515563263556162623510132701219007188548203356780419774158228639807395664617669066626688783307892372438001615694886167560163905261285444273564155581418379540974136270350623159049733545995818393577999405744926735935769421316223908346501947659203110143468397892301186372991186314279640731234314599235885160465791784637116992224753922732688201870227404652140729117911870618452486247806026579381918612336486943550892510933590636749989208555257145340543091972835451382828730153601963245168409883060619297628530492764304004444006460479918471870712418250639209712199325329867408221905512694288813834503546388220149411047215068492555370908342459722226510731609291060827496848628576068750420921158420386891664509992334277734357600916792015860508421734449049198842889190905889994570763502491427163935555334976287386725451003158118656543221871291911811584960331541849339473212134660505734446287850605708164612086850287970156961761499841980701701846208996692481197876745007157276987417268561713718432194004309334066402975698840655067806453386241548586895402526307442015631487019949100143965613922566827173884957047449702159363153480287364095008151000974225184610695148867478635836259119157287429295193208647527837347131769416702119116062727565338736105626361193774137639201136728947571908870251780124720749758405644393680046026223321884377836313272455874136097312441842405804423361016781827202508411300370220799666830910587626942011776941938132066532050624486650902404417335443892490191581393779853838581796811791879444946527226171982480722595645996735901242692921420870575941375735380386697888325062903851613744773697666046980875078690664231452475085694634625070171606435319279640994318049990066999471098792222921831882363323519494988505277365174608016364969931304851787497575863848429373295930305943787032782791432343491789388150568856410703522490409471245612271709152345757690788718436034509089778412030679904735954465345225297170511232194482190496717669433292565647024394060414319613557821659936035069120956565666699806052830780643762059343435653889186006603566423500835440676698143969423372977447088393739628985195530377105291898822262260823467278618487734918055729681862885954983642109795105153808677535785346714278822472948904066001167451259866265638705307898076061420282190462252276003162684759830598813255809806445145984726193835255897238445080249113575871909003050875338452670860587726618195851314537184090245446161919396001146539919000102589124811470000446983103866388992124751140602701142345437251957687356313615719986465437822904019627672289492803401301948294324215858366924717161490226300238420874028708251632792712047562157100615062788359735672619042133435215690766537010845680098833148569421705222603834096779473826693668167852381542109172757819878673185618031107855896318622850461235560281820813839650037318484125256780958472283644119271874986495321977094609060998139913741299630519313707328269763504865717494039053728303464005938891496204998512738038429694790318334533580805381976272729240179728923860522904994681645248346539209533826602409714693874810439050946043834019850325596722785433550797881605249246067698511508846698672222449910562408111660436904262257851078974492021225598805149948360938019706082372675209384613133323302309868186602646951531164595335110408974906636702484205533904529792038539641710314113410836538179326675874966039897384287851114319422105479572680477344014174010799283541847160325990524974920323488919587421787025458077594207681562827419087272447922923453835675489312092225896110959787969917465697327165358069229960218649679251393987267580334554426051915362364939880619343607003578248699930400443214249177482310532125598347041025410941211103811297471574619129523158458023822800832143576535243764277972028543205788405921814902342372884622057223059473454152664249693538847339503939344165012647676809879216883102666588991520697636213242758597721587063510824082043948392206552849449643953439825705657615417915407843521057000456602475685796528273414989553212820832980427791457095213907005162165890105517488405181679326885516987897832986550043336913733845244829826165076522986088631180590027297329863168922886935032397395160481724731041403808053850766283107189875136251939163052613974783187599440472019824641074563194557807057052493998970029285020529541605444342441720995837829440084762190616843394517357918137395096031912492982864456775571311816917131184071476928937391773136160489574029229641258545137559087691731338228434888102734840232289297249157884554406127344393653285532093075418565343492238242675582263937664220150852055944705745378803574693473383171832025425838316062767451638101344931162339827590865069788267957191541280950406206374904544757462214548466970725466324578348782800246917604011959883610256761247932726290399731848826797352015227359208865221782468568837872368561754570873923533928687183904445120559035358931829580419115726210888165269024787452527438489269188518489750107961350101773421424298691671045630716286752291463810949496696948914702959200545712744745987843896238400424264322485788929746862127698403220664281139883620359704533130704216547027218056209989583343444648558936825630039427118174695546327986475179217944898426109562529615070161551396178223894427532913285829347145746204468343339916467126032798977478973603978555314261500673181985420396747857296262051747920567495692321924555400166403097741759650199938871027776946744688401343781340577298043178386733519905368349478308459158288233538220527651981996438857139884851144326474762509758424235623114193171444205818541858032138215795290340748293599028472490554777677543066394822730756023970985784660885129037429997692988118544584076758730023526741511788505517003350973617036742003100507061281404609304748025520620880245909156692969071701895166656632018916471161812433437371200107795145634726421454237858417461383037417793335684062818146720315245571098462986334643764839825885419661982024351638562918926158984100343810846044648181412778758846056573178056794587752835137403671551563149280937196228375110108286054184778776903901926030834607748111214531214396815747412450457174245007723155883269646159792660445102872859958018330039011245671026321135235445691587571537243483641324049597519975341563798394725024104838989626648622644842902762949511990278229399398523095554525657412301116933713175173310993394711151492834740696029717467420318433210301010150301955994153597964288257777597325194805604222185913950290300156692807017362208607763855718371425862386084432166374810763392605559292304641046263627461228951986579022592054089851372188591789372835629481373392132983345158124647531109006760275285046787250218460207647033760896401387542832006805529311378418973189551682768136504904613400558903518329152412040820938125194292330207081003847349792910982328462441422393834095909131156938668669825757876544122486189099291507193579741489623026283497374326648996045972463779893489969010490423625086341778442657836915964429800183155158377877702167417590409895454090668554562879369512234929006895588936005406979054628666262773378814516996817638805114280927360565654063755472519690419323535625748841076888082122886823198487521770719088635196272856762806624092573073546250155346825557767573511537830698697274834091779657312719162142369448870649432442310288584147950756008089097072597225493722856131078045475192898062855341708918408603107406286621769752500791998160669526641520200490250570340297231817744249925250787118306789828876419583745079494752383834919934678596891196458858797439137632009457489686312193887115129982822185672506314177545031395902958461271195253342923239318977134481093794404188733612056435102456699149622238486212921033035160864281920270908339770316314278764640280143939174006878099613202408528312054562979860687911447334720019549040886140806198603947812336534536897833939572935580218664377671596129767525604193458117188524862622559576201566677239393544912693955018200937831117557811501019102449342717854088695625738494016154478223337653153010388743492018512975060051685249089050182172780687903397271804139223687369594373330078587955752986273484305053753269218499328542003424642147556727518210164182728033615626765257824258703128082065943344607629910259132076046285896266491386628228165967979599273946645734370285593538243350273549958281173064643414799561552816347029420106525334598328186289062490308126904695121886704706959888168838247051753907467837397395095860945735031090724050043360251484205339074809371247919002165599387845769877943409775934445631588433878570449886930601980566216894640196313093486233116053664902599336852136733169993028181505739548680081446092849441240729071998263907647773161983346798022072807809931540761373644369226502869469506819658011341862516495484272626697926188314070325771369527263002604755018871153662285494451490926095857234043983548626178573683731063538070651400401100072051665239968893347863610527906104849402509822311046804847575368181392653705819248503938011669144902820715011096091347810440553431148353323213854644256203410475515283208325583009865323068566264399562679059493701814878028131711155115329589683806229670780302176995846247358234006966519800594504128418915460822075660098521368802409671907383231497582034372413638984340267268648573332015332985682864079205748401867347704240401428642593724973512581476966208165786243867251266170419156903987519868151896354850554434153365408969027698538393791776335373173202292617733288908071951024570720277932015033300752161364286661279548015501589323702360035176599970475930592376837509407657528106118506436537053596597826611011950903194785557065909839642132272066781152577384738468832924260726310374285616227619318210447614273365617263574432881366893713551704470010956167252465733904483898606045808860292846270180564146379536613302520252981338916237789970082743536860416222260587746797451393211700383184568864549864161406420721155583956744487321647686421361729503674889882481961630141545973984131536684104412466992027686304234636596676589060091531389544626237626221527305993063941492063136527721848057870622009125192682781806435329817450431639920948506846768923524037253180042098152264015927075903433206262710556873854867410633304990867605305323301195933660272531755859069491853487559114706639425614386631226607352434669542519248218677972616484546663718989973302498760963429999416727480865951393434760989115615132599936858518895829651132413622670240007643238134533327168184226514286472386124146661143471187879399316563663340749843130546965466878278173575477811902424456886887389338744560051332308592498029118521655295012280731445675819121801186874303094428776221601571369819277893345963122702938642668279550238178141531923892118370632373867576901084177661173009695235832029980961372089784664037210509999453811207643989341221966005205850412141238052483583761217169801517712582068635951427900965844227152731727162260891945602674393860010969204937374155130145897064807383671509752165616028907433216447092887487717713397209438384238417384314081986025011278768237014239072975384834241354754417070661258466057064940515304386839986327986808740656504971164088082519207415835440663926438787705784998279996762058437695751315711842818364963288838978854373600204909443778891762030932572295470661626084850988463794227870515976387880473445515888714426121420747954661506436275876489662337058109651496793742318128533358355752044999854836003546078801249968217068584397184406135609236596367555329016579208496383806784338325150088975787524577835673657665259112420095008156075426987202843581190554185779817230364936772051113939593882740795648816928204637421679890621204662990237717377310428539332251373805414561035662492231842011186769016734386763074602665663227145743848328539728174253097222467098681707212662599945746150807695107355855168912681616624861398470636968513038638321243892246405051101225815537131242146124437510502762344171197030073167389810388858598225690300675188979625603517258610280945684555204226125057664318320061372872016838590254604992183876052331229056836703248525165311606548375076162060131957649549549292539167972448609379275050680949357810307683609078874289695370783415466362499251649767822195299568498799198704287075673239028719665621752994013588838292507184418372247961782759360135689003874493227699498317478041550519700653380474947667655665898178270195967311972441707333324571517732249901021191084088339089066918974507688659699207581797473358907090422933299015386230672556776588706018128714833527683770419332376579122069557084275742047668881560930812331407263407721426258608751076030648215082535119709050099450245874538325756254648216746521264897337510855024959859306842000246212637810504737473945417268337001943168105951045149778391926001375128290211012551052295189713999187578185138004290020975199281020382700319861001499014826622306004129063012184100292371956561449871103978091589480662337138706981273609892552410894265815764543903774409496393640237420961987542742360654479641584224579788813760140701675586365056120569324618101834206160125670290981461385606219094889133636623058869545435983200709807092053379374371726997879399542392950579588588455683083203524221720369475204320926264034756695896823115054199978786173405036760100779452106402391663496945674493309224433928480035359119313183806256616803967602141167161509085520433546631040945149348868258359184976933824577829079396660153274940952158361518207499916354623501754670016805715822262317505845108645531651878657106222571123805277543787302734244392009599454725134812113470873563744706547726223575627940097290973483138282805036722094258260268998797983982058575508763410238438306786749617399539092134191783916977169335304019488284507867596389346853203606808228676443446507899049394423727078413822496702584917313662233655372536370491147031248468700087588056142676312626291321413518079460885476636105561103927207987715959141129714222981654986637017606508032843400038155615016960072035709404198445131455848846020318167590555780725859927430949084668596739250260174104023519930955690250010386853863863770761138102011094600223378817180342034533610924430358247507084047627427988082838162426830703631168232068987566171594319742084274063818131149178792781652963886577325067802990577784668013833490868200689779338114760920160050670715163562091572460557859044266701043439970854405822602251003535717384744828227714591054962533517507397039309759895017311554988236642813593850428123781429243290998318941610095757356582190691890500858281561368407460756484575053526608474122449892367654126256307621205105007551134739558080632303210244369420752310952945607894154388983600677633833242793028034054525563395758866347274871908022341806411174799028156409352015557527777049396319189650136791220392315312185862516311742246357311483088339511872551747336788579950066450677765306558491634195461173576513897971228706490078636231270481906156977393470315063764177889128677174742370642748705151257245697707783276599044432883281795679753973735066497692307009801099804832293437400907824645875748753159129234939458276974309718840498270495920383232632586084579123853004719789781277648015439143218245863500825852930100183447389344405866021270515721744040238353273798762903620944639002820200328557949128648840150846116232791118350883089532979356255610377946256556657506071534116874893454675723118013916350755389251577093072155155006320257162976950190590968019790140203263748506954983539067396565010391189420597568803209218739262268153511647869680334870117882869568453018276914749814246376880337939851455836368214841347256710413908149509453057506180317625906925138635482241207095847179914751462776167301520497610922974078638890958410754465340933939477052556259109704551578106712712200762564763482596265435746894798335872535801478799176926191174258221832232050715711737550696009564691121097235175516826552828567274559330378396200103052616417774422931910038286074424740569931149731667588039104298942098651489742036685780847818199111021404716630328235733149144367374122430274387604426918837616036239419551236620527770970740126563565329116666772275552922084030943563049295243460840230590444675553350837535758020034170899576868099203730572474800916797800983455694969846652455689293462288714128335034622943105891625371709400134787432068514251239981060718838593304444865413895933961748187676554748784927838787952831960383474882228904623476467043036897736206009661098411409703185823721916055076646635275687516042061957982598175583968238222784233833652893811002764653426887484872036890485184008751170877871477406181516848149612319308638858225208743288477078851221235562437013165832651998343409998030517618850487371035826140511950364912190619261768803800130594504445481925478267292282351948875030490721614639024597247558082755442266366164608407600803644614188601407094184347863497638914562664391978642456593481118620242350288757590351719411334417139195809467960113024346251267985516133817372902539215972338424599483371055302798254250474169093416642334699547033210053114463078224314295953297777244538726651716839412441178533404478058565049497145950033849307969216219686054984154262505717728282032135004406949041836836641185118447484847842422800462744144265161347984111154496616547906445788068321966830455280233150913955975128944365156642866258379433286245040063535986664691147934751164309487747185410182489097681883883201471787639775622306270074001689528688403684200813107673735015292929905634034055200533621122934275958785044284440632918425197796837166615724907519251514245114633252049800915360119847794387360554409354580377581352454111772766583142521195854490360982671906608698403001039660647913346108676845762614846125013615548369617381785723910659512400422694755596811435432505430052372435687540282798517100154927537958729079012391744103408783892319866802134247143934013125805577387383755154276931559521852114725964293210718206419767235376595837329225039237056461905371277379507076678633701832236877248025747144859308912264472666311960413621602524164537696115925467318591000331297231057837619040094183030470621836356310322511952048369968677135292191189844468459791528955275099557347723253564466641777651176871436302179361574827597250528689354378606176902431527159475339221231685710613820651061250378930717676022736221538836122129394392557370677566697015685655271374185305687140698790761524652527448996151334527597353000747882587527547029728752313262866212085730397241702080968773708704474150620010143760335906554060142726562335462878782043025849151779968876264961334532665112685362464016747529825552783903708619779308851556580580927162652909077016719367246679202241586461641566152070203113693597700206336639017492449679594019822205272175708215499238433008368825854947832070686797712846868490374064654723444187345246643933103167422360396732043839577101440815470531945643016897323271200903488617065878706205938497286689390730295220859196753210815460780621120648958870285333679337121696821081229615375727345909161750405333662521414311300142123898441272017148559008108397821398603598931188573465584391360365067425461019801217413281559982939840107866755685898435661443551490355863719214110054726725466620114149561298137917434861769997609907173634102837001806558567086934881029810203599352524911944520069575772002530797935118820328760385705900420825053657513211945198299830554611569394509625156258300539884885547669002259691704098494181423349771718303308646227978859761688078687150878884570546175329499859182886956633405495863728680070603240751429406886486055144036933650100042423052425160527400486123449564255806490250101882050212191890231048218466694071974386683613501669733316379016007582231670997010843764810662407454147608701271550702657585553075662357619592308456398483414304715261650080973609023665060796729642392494345568914797639048392612414932906798518113175415104638624951109797008704988718784597458922824296108929084086479524691013484661654662865071488040953355967469485635290338222005428726840688028032707178562978150591968003964484393169558136132723952285041289450889110782076113341887774439257740471406387138981200919277063513775757866346680027722541343995578062649054106001010472450744206631605655306932554520962447517673532585640171221805455308295312756056440835388489030492115010879663651704637909139012094592161932921903861352230118543875494020129798655268284896026677598783943238321631322807030436599107921336708437219155488233662052566484121153134881738594341390521654795217362423299104269352616306770677042074399782299843560225122538496517389154839479707688691850939155734827828653022662623534579216635572587993718665106243291449130401442880957398677733504922220023972862683801050982070469087370442510969574056150167546785867171051014234537379639889473408248532101355881873554910234610439453047896178683351741682034980862090858412079694457801109244973140069068045064264723375632586888820944105658927815567498876152950688832288649919481540189643194584678667989217500296166299459489570153941718300493705072774959985784144226861597110769363359421616122815867818092287382203066071739372640821778632354983683349039558399619280771839818361043462075723405906985412712435301383186438378215066036175390720033927902313817799273649138587666458664465214588431474857763515231365299416769680561482362461207665650876807814685167808645760199415295924819819858002003979941792934789749319041526539295754371902318664998993603650466787791966194724456330752551490407313399745900548069624119109572272740952673071688994176992267138645189226632037098958432582220105618041344614763950092637715827025121500939697653085289316775493579657918752619871038901632849008662440014962427959562370532997047958449603187529216525930392733937964395148134379179715626311666468653512134423066761846634117365154418861747194720859768396187358822548020760820370023557330436761165432261907008572999104444767280083202245014866638357042023100406067901034397870300082853918670813477972669379834383728540424673586173502756157903698065033378215307508812225955760848922070024348325117101388208562968601045270402010761882767303537943729480820685483602439380300193708909155263684096510089175145825896428988588859905831746262589248941209727310467637789730388643025852208075604050113025770665264244909631445701422731988496666987916879174002877893053585704369943913233446477582710717385292442596300014249364548065649975185420825763261414194161194712467337887632927844031636161173250695726147849759751530368572008487555897847792763962125396550067281168063736141219193822511006383464632377822297316849799641066222658457776801606757214672704733863336242320184524764365502159164829668221248162806000831328671053786413227622123991819759030728561262845758536552722897096183668305649812419943669523464829249820443543486266598266597695341214872584122744287638018843942471985544602117267730092635972037779193919956441320029866214297131102275806005303131841528595030832413668418581869938359869882863939865901613117958156275876251808360205979854756881053381964311282316606724597900603128490550122285102137926886012122928005185104178387592124567489897940220586489106058329106828292602018532092649077006716965370799664329495028452316420705592644523317705424810965488996559020318452338600294772078213544622595526512950293789005218558750578062988814293909056837108864266482248667527408257719777527008733927456096334823883904944337450840126894078074064087133452226368013977614938589267844645004960781209286693634418217931916978235981720632105076046216630077700479742772509715657989809037341449456044940715297932466071116987942424858910233944565658898179079758907840099805821095608825341786996027127301627134971361778209346765602823666786594192482534688737083928110609887005016523204197460139082697193379808482812462532513420345962468052946673776978920217215935322166556929116355651282820200311411892255018548050571962235677131939525496098887153568267948641642806722289801929042957752546826293566207895180646826766142637145387869534590884161360451081483517094838774086623386362928310333300197325738354935880604661026288957097871273077216162807362699923973685673680720055917760689725328921081533607772791533056052797539731774341215988251167917121008092975469446953951314447871549792129772391972671206117796085057918494047141553292642883964932740663277944101454958994872339956231176403839150748186901513347805164936739926629468953792511644969824002419847744691548510328714767229378124070437745148917842795402625744153149535548594453890951869369584457591532555843862374878375126650158275923291645987967189306712870281503519208598595703848471219489847448729180728924951524221122328055717138621927178307986510578790726564912555355616988317376011971821330592889765707913921966796148331237556057424138420605504309360109594268701104121771926509759330256320801754878733652356547426562237832044923216748930941143700778214527139063612640589315598999846377046568250075944874192652247769008979751038499761371797753503057532429351547186396013744174332592848509828668460221170753769253022875827854542610393457861423883942806394382573890452201981491207545761402644965612073515575325572602750147769450336438253655941662791696358536386677114327335132271420594725357620482007272681222150895223301232841423341151392303724560506736321174833317403058971481999446902730924726961063809395589950754522386852085620178091016107385238578446411588726807794658213642596655767476575260813893959984241339035631042563470208040105390426981847938210818699597835908161831504516102516796707309493742218137906983921026039948442228670873218596139933707484452759439231879251786924523998754674818755208218433011338483635655686087370447575657897974654805105000546741350306178816257044237324935801569982149815915594188760773463864071687059393868515309746631167126444066978596964727590739610049210110042737199483190208914721668173452739778028563777228815440514922933596956470190623442169663479630071975834488740125931921947701624972351672865364780422411083919563725169603028929536375680587715753491963470795916090550985447050640255018147172847126454466373317848661181790234494846083372528220028913443226949264465343194369813647592753660624553169679518877282332068190087736803988406300069995369793069944692726890861665701039726563442637779160654499628161131579729003194173447408715063237248430894712665731048054817678330038525018326811248325474687453024035573990214458426888075216767050304680779262300736679620586142821308932032358161802078395695586656946705022428014853204232660673548952150616920111203866060701995975431367438707301327537695328043110385003754970581362109650774773687757740279684176890637163684593872882393319634135560699767713965775602644549614324966893522755985350897600988946057768705384333866105081337667513419720279720218276073283018424287940987449667099736138936244622633258627996708734666364882541548685866196467122259493586370697941755976394696469626455479701872117335069656990103805767665229727559990683684184781861858110632975925958210326664084492774828183609220366018055950956183661845412039543831417196058467623973470396696461985672334095684739634049009463404595954874912992975428176261682309516880621250866568653563369582798532803265778395049702181973568719201831354227775033430414366396721381137095525814936751639249220817726702355185098397890488308626721769076043582086291614401365831159502476080982266723402515774183583855751572646258780500641266522608858809806913889773310734163337614208142612326517525226524343834882442587725637485035266766479066521834823213736340058369071461102832840185504224872132294173771713590067907227171570032374534139134002794666383327848431975527147660812923470587770857763842696472332611334591659349611718278411368815569005861654582505410059825823891599059973115888684418698624608250851213732127449325720472096625474543633819682007614969406607021674942773299131861565618580499637397824755237075419030394119430413965665834530111869973755810907648823892009573468966111772873453574213427560053298185735604227267193997764853824061311581621929928891248414039738739709604598410727934281860129227792575363063281091646564404273344291792288336383721329706112651098229996087775472530268136922296555629700921461911299277043213635795807361533597723888341486997482540992545236490330902585003524866225724249397424859855989054898152694109583482874675486359600477409442016341376111569885185615066698181007878934729592979169875311777576155672337831156300768300624634943080520087383945186896590829442751548312992364950207814524029836241120149948689047510065203189869505581893636931157655663143003991896839049867371620678659646503318865565252343584431224708895934393678317048924455799764963633809314356962380396336962244664163827182580189252078825818509291521010292934642319324651388496036054589495269821283370727591917755152919198081307669834113173782124772779656484005940906764393559510789806807258911358487433224150634203052247672948364365074421262856371183517298553721005210980877768870960467570455595632107739830070867752141764084568958154729171552105925910796620613135293046406853080259283087946960037103585151872327124914304418472256376454424934213023596369530712711533738479578483014225582631433407181063299743904212350108806520017177679845415713588187492082464219549736954861835824230257306137486443558914699312322303358110137289209307626942405492760752535718243606822388200290235021286154458415711130580018211304369494785066929997404746535253391391257672339033191050745191286064943332591135072280716837986395774849214006885117903788129010005681222614022258511406580773825382252559223704371942495829007094663828928228851276093968435721977126283976668622212149592667911801303154073407194844193607318771152206102448929940926580836973780093152953165829826672252403260404895855292343221944198187205319274145454593578803763805743638611518361632010366795710348482229461139778937668434860787268994857819488026252459441784977293289859099105084567142853471667977893909773387215140829472435596965092703590474214585755452223230310776403382915414281307533324079333935317945044751133429583933902484547650894428576648008956225468974501911439128165324308513592940250184560344807513300725163199081520744779789983579554535130149693059676789878303413080643332913556642766831527292202486126620262179945886242189955381240630274414286064650009507370727548091921523345264853798207025675294989434759662034645345368634096092960637771466444312682661912675900358962018267280025014520552764413904101512691956721251940024692796817825109652297442127388502660498878293659712247295794963059201208806465251490428421044432121115877819512792452992793693379068647896738179694111159079915723189304955426321186618754776635654525770726614137048786780254583025626949849327653509271496643282573764049389728076237020494904909683953659553742133222149307672174868626919925991357578980634971243675690123742355569486767189625082191286018381664972135404779450507537067505832811271482326595063726559908847485257303321864735800033425151811850306133807479853326877887376750750325032523891195209967277933947083497968005419571991555794904984828925352108316963795538994611357818374022651237557823390557750674220941445198200220596305296482182453184885506366078497434211215466606547397995312170739422071001493731876436857552698810700314689942879518077872156300526111435287835250161144109118279962408716851619169898542348755023432559540744402262518317841868348921719611004430051269931144137778964702308268668202772389665133513607016529620961484445906719951592431769437207696189984634620953263066417401364020442996820750927163955972891829843058579185986231664594167283167287700736401681417608152805045055220795793828802441554217260159295582559047246005933068714048315839654944528628698663701199385262468022000233539289375530261552464257193214305974002946417549302502896427080688831500188043879268619066159448753762051521246072778827786685296890523207465189933694186825829936354724666819730041575068101023752702512107588922095751283120585168685275253249941839309463756938855983285375885875857762199119505674347416815450530104637394009723142855914985796929206806093661747182222819034723092876647114112114657569898006184906016738931732201874231271315233688315008295342151292545257332212363397801892424876673826904836515972246360025802582887163638878826941525599999193420109553368637285328377347017798060144137285450128488868422995520427403263887470269359212686309662081244800727728992551659945528812564950859985513165403587518032259317659113270024994602905371357008927418032467137739921678777034968799504127244764227375544634931678956263243585409107781357172049981808526857335219918229978305998612572625933735739366830377021033973336385654947424988381527356356667614009507215412453953556702040401818576763227734055736651213094474141658565550410597119459787851306209180781837287124437309625459725394652173171952077866728068960992966121728667521659773242785608591258374149003114243030054862815297105270853122337034594218637354178353348729732798763504669294204185715182408871886967913920174425180099287503054834097518136760437221645100805915266321912747459551948203452564704440533586771689999334721402780652179675107403002298402552604205595367157499282904590387081457052833113851987070877887215835135411630161535324412983429848020655076798201397369744589865699789995159762252897045301849002473840620232544141875949910243736685777171366838646526723706454494780418514701603410357938774594521500725710354064601555850736175409070939319724061424625968195802752568708223317627951202036516953282620350439432346036784168807010519067793691598235841105899965596191667695059643966462231311982506402556402655981320768501567272208023304303400355376656266111276651649518374181558738844474682235058308853985002797762980641210165291256158147039764764268606059080456044982381442426611275747310250972542288560798268036852136355481472204948637281857125487262399208713845134833623281135060287151947088535790467186268933752151445391503765036951937277003216985736197163815386511927180244159364098969270466876419869400331099460094020014498415467812966246046992600540388732099554298836104785182318816964410484519187740788563811074922588850740934457750013307186028812058989968676087703382492898520817044779797022368848854383292878619104562590703231704273813214202314654361904479174545069471622212456659309664709402805342489327043617125614679007099118422172459919002119853301271653988560858715897266532966161451087710035322177431936810621756961014724179443754365825575231490019215536440301080885325891584855601126513015649998811072289255756157056064827752089586111398621662834899147807832881794118265422906996523696009046575363634865158705199582039046839400733185056824309496122226439324180378356629504868606841847472917643119164876552957717143516711826376678600704949251303607974074869092233227309573896324141458274446254316841363108538458946960304781490863677896505961662435637937078431489756444720225676138406015425040170602996455741772711707753804998912477939928928028122071379547809702033453728999324232936004434745479395292596621856991468127789983321244811007111734314275025316799363684904048548390406781079426904667417979508193265412878145409834951647481413301611857232171321250685606187443325021439584078489463943114881945887009184145731017579344977062916774376066081515133444750272576437886955291611982151425700368704905608440908477243550352583000878065231851962939293029915596117292978610985122368376888658620175134451514694671975688524459340341910665820562944166769147103996467204011240183633678366975223834171115007353485341730917623449304840404119030989015335101305782046780251975497517457734468076149486718848659697906489637504243915250218688598538811478348389152161907441860429481288396382853436946849928817024524455970792506268754771300199657698474807404492869807226689016790013749693988963999715706947736780464208013434782098376562516955107429596976370261518934939146715114795257081323856226740253169810374701209978802853940708283753881474709486305469577141447778464636276034130344197926292529767516650986250199998997512761705253190833986207052635794350184669655869884347054877194790634113650250003039000070586953579970951275175628804394074333221185758170495461702033622909543664004972950113275278138223739599940578813115237386269181065942154869076066108950808705885416586541699715625547644882991226547348376631311582715428884469892987345049815594506625341367548134273342737584181564701959237066695940459152302962517498748841262208950647787925940321626381721584914579890383457549766150131254123974049933879852382763013770602110182330849579924014358252076090558400195598062474971079230865235754631751372963369282679629588172666508869905076584909073302122884525386020482501797268990913136933074645267354551145036702112853556589636040866607237202086188222231069573404686667672662031312566130995770436591577050330250219913392387155722323701708523580053793721129610410217363230618002830221874159507902211178609183604179083552050827027520054589368268084230084661642272889442900640484281806683597747151371443066686110778933501963760157137733512429067365159364785657930845562853402726902912659683319374959421018137256127677395780068338351947612728825259612422809032214570427134556926114464892709785098120516300732112520968040868539732731975177829985043791037940432098515498009370863636106719274901065700265056049012973198812585541432964477466555205988342462525199188614338766179638517245338475998772189974360016219064159826124447981542774893051180643722856710702082311014451712772020959076052563798247365074715090210775506154990744055091582317419236502216792583506598417029241350539806968747594094789857848895547447346768789273262035178688582311261269418190383066456628892609372581022044361662818684266965743649020083022954456766086650835640981872953981994190342500433317992162309046219351244013809174658476755802403556210441022622828803980067978575002238424520892124477885598365227137625534527318682695122410208879694008157120696527024287099193211839530735865409694496899758449375853442617161040622055366397298272711336691690144162406990411415094049635523958335504290086600704369507775500628747295189427908954782681972106053027372109868479503253599275062453197562404972223114316078387633653282548753298617266000688304913392827201538308554544921156045000361425960422508742563145471428269275749778493391070223800419099610751110106805383014921840990419665009405871567163551061627035047874904731623786871436330294542252369431183801331827658694332096705570422570863377061625733305953409219435033021472355785671693258907578396075417359200303536928439999931456496673479268573224624872419954500897012416592645260793066272543304042670795032481464963170961949411530535478199969836532138618760630530742285183542239744805689755161563971904912992796191405980821105451819354433149540363727176283018791462573031350547959281600262214376253177913053673196265544317435332118087756962966514346902039385443471156959664820088312488766990825482889072777219212724368590188879510146114146938304999135531779068710732006021566428888707484338645494862168912821566765919622658575781470120476515569026409186656293494378397748363845241563622560648816688859629559541191541812827873183821225082446043903799283411621423762465997421703478808630788408413103353989062784895587455626128951517470242197977676225988978124912512361362376730843255154799868254551302763863830706584714732987001086484144789337645249115878756291202324759532159362721966642049039293996005148670538014017250597440092661633769835500379162230227978846119991371518905702445766631534376117929129100260994197387315983334176492726218612353848030913490306088978775201462800286539227562077173650604313175579264032368862792574968241487579212545378626009627924493607063125613751694353601862194554372274553823827067897358341820248196808204123916124293349385749823162698225883955159997432458810952843454194664748932912177218802099155681829212195088105424718297925860850120739445156164201688602747511132640247287652372932460444693857692915923778620023767940517172741539461613910831622513223444936664069580325773006615673520965894145702327331403625224967224706097990281952093303442480928417665229391719409842105621139572295362426290148691288729115655452856307256881185341847197567622956704483544830573959283345865829461390094855332049085755474137562650409289239925449303961007170301728403809803072303038464061733304002726201626492455277244286733717626513998324090824948127063837784488957947780353821943818109381010536820235302325179082364527357949292366705975366706945560341646022943833875552586971470235097373896754701129457999005826800064974823546088840090392693859630747700191403818228682703039209534486727279030552047760149097078257070323591095024178724535729347274272282549856212177452076878478144669764404845937664284186781926003421350023246161565353523713922792970224222256641447639706557415885405928612458859529577292186854446681888016755466694857177839792949791185942224221373355783061819006943969058615066921028263166356252969100911014094369501836175520637647521439037656544941213322652409385315984648536299637970813336431051113691382355018171200289098200713989825681942621352475932300562188431958429821163968632728532309939886568804330762157595710194323003321750638381852469821430491878548815083822611003183315023551213281176429772182868821459178413124546266468680486493216543245524323581738608401411009710619395080100862533575219336434383106513841107992024225506104597597795234433313935371319456378938638390355938348540603481154303782510387349865676129624877744023129200089527511632393081402351442666468805255615611665997303805903008992512037437031436312338303555355405230462237996119581296828692180093034409314207245314744229561738706517938506323293457697847676024591622564942704424070094526001915042971187254486371079316128595619723463792540433061371565126135360067791002307455823410029062139867770918177606946326691820197901072138043423829532780069740064716059093418815253742250803919072368984620133899657976363549823503435052989726389151545015165452745540670841546336473394843228873319873600938527711796917944191692022404007549369898086118953373463981333976234681960001447966564950585257628317572103072588121670243914530451061209636204281863276274317090244292011063768670092749696152626216390007323477720994460086330228468725882100569632770940117710318832293602006090820313555802425649670555677781742197974549571579764526797038504758515952295184537281873480259194628304346213804138421215451999849340459613114883784593341641870855096161000783343657075878097058633063021308305015479316823389247511706035919911111283421773346561540021536303034303914794098257813010853811315652807051249171597296736402222916380145588788508379739699344373098780470939017237503654094348965483228407277892807007808378724636728794717889177134420375232567109741406768593465690253946553173782903837215316227019324841457311407330806914398474383891006914753575914991538680251003896045630552525102001962644564198326155506161370224899735607348708664391469691998919341279953354986446870671106198890780802453124747207376949421113498639386587523106976475176380353355746918126532599065163629298107101391960057517042813507388803698892859774998459168995715455346296196163873284391585917107179129680764686867244800874753005189986585992313235189445298885551015586420129577158112050223302654133316195533226343311510642584408262518789946606784846789289591115062298335300765022982901591304448883934804248348262191312197234139565306939617960924750182846764525104802481843489135193125699426840472376525559093508459071878262532500698299698333359025327304033601810236737740965372456715124003495358283688693540452947692720503877294725454091432933403760588363781421187211720104748662105261785101965003657625577155592732111039475490630750750938237909598290827737247009940332997472918464967448598120121848880025310875161310516509027622468377900073252151876494446369096939879378922487994089187138347809265034964842117298224881810697120452192684994501326102501124454598288206917481372679612511002728988845319273699288270140895052674966757573196284344397788817593039116749501638629641146886452627496712589632168370162484396018985747180219224256984350859899567169716995866796215015162756215778081392450853245690088557665835441615176575557624584208768490689230867937986357421183520736366980324508489513301553958791838629646568963716108846767953092107172629859760968755794637030586942865196003690564095215856937540632811988937592432412417709722574137812263131516593407081233465757912140508620023383250762576464310791789552582193522428857810778174920925389339639679748124033090432996783850549193203218213868735983095830017296202141511420497105473231051683216631859304624471015883937569816625070331706830571400464511911745826949820086735015235853485212498944581067582401033635050291813573215611931637955916844238664034917054582411983608470834952239392544891157925057261955257468335564990513225895437750047597501368738914045875836707010143829773979946719091151036630888103467728194969814151669807737018970035937933318560553120893988671655160128510171683904360474002315230889755924313479115221907204333259320316171466156531036830148404535244320472745340288077446177211594285856416995801475087579204322540878400641341940759184617324589039297242961284502800149947387177639123734771267864208604741058705677371342807731906865035709857170742406515975930471483255358608624107419055875735746696589760833144618313496016035290584605272265734446759236773253527421220187005345869837226553364950391248366589555062526056408785886176378612054707817875232754886144677595498063503731186319304425042511215776004131439567781664007460446918763476938350416001568313571338219647340432237706542640642643011034605339264131844125011379580550847010707520263649038610224839711805192979519849645271096541174446342400938901559259474576984548972249910420188671153301729570810261283579048785363844198819073821716603002933461653644604603431936055879861897499082477259936514187593312095547215084951905638579487041727110006639734431493120244356924887808524554262110177242575646997460618399715508225663432688035279407444778869693345533677438894655563198955763914702760603683709461768966755669655315659166394409412936615685421167751834369064113203221477884147950347895216291330022373987341286141326564732732065193815123918499578990268341221118449759546093862174477336766091283230688202668742081882293557625511277442405232577885470183913459549735116117150818583242645229402312164725494044173449429324342904018203483757298418387337287684297212385397638733875814585295421923687286054526812179878613225398516655473269394383207112660033183746070093252494658426101452740552756992477425354861014342883480404993609681191100534689574336707165220900998640076245208035273392080905223523445239341813424341525259767231721791908481514427591657967413162654177977997115546533165890089491642659980579637242253627114743657805309613427226332877972357675052585991028940017148868370415140470489384038547828111093377349415804040185275491243851467934498244030643963982894999757593993320986533098978016386415454224358794844606189683266453043356380909525297345789533996678040594465237807996870808854906130222404250113164286622682923921093635823679073520000094836738627600474411283606045462875700994066760243138123858409370806669302305508353568265644018101012191549537633868526512027358587243563206148322775264853096316234286758012776694129564603214488178969213023064175010693728778255395460028008935718742019860901031115358166804441044857931785161541847563246618179977302150737294434086786040693188377510480737679101951787378776939273386955374621497063281858175067753599382108109176786940874370033704306998573443763116592461664050875139884428841853549004239120178511121109937305811308161282203379475389583919085328107556539061214385753715981727285218433975264255538607716446979828292679395366539700474287510128799663089217267881908272260283864558393583300504220035550466339471312525333615045279596020542006345327814476765060700516595343389770398449880669394512962996540892530258164492385495112217797336641236119406470623980914448576600568495309440622074232274335612044337086672530002358709213922642065587699904936939085008469743894442379503607850931392606635425812681263544627853885934779387645462324322279054109303357225558550452574487442213719583521196886663448723399500418714222221114731473519166400734665630470595840524013377738573699246520078733299546989466961211771607624544660954655322700927220099291569729680092150281486054117592821886713695306873842752715780796108687938567532589611346719447871609028273091240307593189877430167661201648976127176240790534293556627250864366533294149181035742640298273827489817561462710826540181794137585155746775907488480564610544163199423457925587600644009724195608054793819694179619865882654797869223363567694482165692619633323804685535080628000754700881008825937192407507292914098653817942282954271100869230787089534693556724839251688945625279777443673498230339861132407817380172519968468426442460069030193540943750949329414539190770229457774631377961087332318433087136088784377899388544423566560961026528963848026001062021009656270859202270392914991311184552857070140851119737548099847072678488115380375631551647520990240732533469375721716104559646892855093817017947987833171867605981229520306068899151866487352794232521055647370332292153718160896345785099373804297408209018680418847108845343755469079646073465642848280421430796402642355162428172707699299817012314563894240720548457346676952083905844585113896210146595748946739353019843929983880747723202071894090174189699998659733152869096407709677338043829784467836304639359052081903067895540122185184379076992800140123028253634842475130204708370732027983564715632842727405484651732550575900935174555314570132930281344365222608189094457118497893080479440213001869419534448227732963448542278431381029554953119690758783813802809996214061213992285457599353996164894519444454381793647502337646175790376160117436121345179157970279495353618882905309346706482410334208292963442316352689634130060352423813735943892219013108483288174873266056331661204804805001969826906700309727833984437781550631722375993928913065413206941071769461670239842202156677387665784509022209188649116738883090124037859121627225792197558578490853364724252131224737171029250346712059542632069922698957090652510642798385820165639106942230877362495514776605538310056192360693592793460344594231556272917131336186126867236010898056948000155634403151042034879124891970196931270479185570023463740515356716252685713560373384469647314220821438509019165607958421047816033473101326706313767341439938383775318441376365436115186857118387303152091642723647902668601067951006003089944485869762074265894017029687886939470372381926779852274741723767134597786237355410615727148157209154501634106231743775893984624521073899885737802948754661160912078669902351114408244038417111551985885645475041284705964588746762430187835970450327297429860801188345369234199689633560493788631007493873237933940160917510181115875226635153463201992663541978606015778310558913355257177108980426817347554366583332409200644512761397548407859773467490521492785139732450520024559120641405956038785592102120928945727199991866627807815031417998097108309165845421515100828018672204599643307473993321842181587573960980698089459693399019650030185578460506825884361588201418371464428308288797034641638818151930476986508723559347149909088011354959927038617553036861002224942299677992031545087177789587051789945125793977665582772343085896614931300320462213929249889993498435054833600663960923470856236198909710962356425665735703440955536034474503017869851963259933523098040077954647590438100499814132998055222741338059787491030387126878629661791972423751159407187950423678591234219601374100470212566297688747492891212408318544099057591947667746566007181712692553155353703245184459543664811521473804296266024458145194040059846982589183820153855391826063278046433396046252547452442831201011012912635882206375831725260164435058854625534936525891019778693575797903967021531001870541308617584482651034730562075795387198411258496498406031092640963797312401306798738659046542883361026645626439133517510399475488663079681614359983977923763370862620837772012396729818900224764538162145398089136413191847343587621843664713385833919558130927252129083530650629419235655379069701002417431715775156176055541602425644188488137830701543092669526429878245603131015694037638481455516668743230804704727730877479858005275818415142797086060693481296479641532517866390234273907896813338003710799310329017694781593922120443337118664756662542285277920458373344202030783946907714820092941268801619807589731690012186665691037953368363343343729296078607626459971633687160142597653909062494080679437209309376652934972782823518737656940383691167600514240577867094547416554616786768430908541529764833492714137803247307322881665496878100013660834234396098438583526662196197454443995500699895045015548207851200017911933115926475332510127879175079076623155287719405345728896954443027203471803767428824520320261551859694663063323522151889586232430161698747224737928733516159295534899914458464153014587768890367917698676593638469471455591637349579189307080985866438416874797765872923823670240083471992451728278634939319360947896069391909476384197344014779852279180555401300181753858776331289783062810038747428342423884301355426982309098605261064221537778022561967739862020269278551024380943767483925243556575060405706352790192146986811956077013564438482726352703687664112666318490521106788606080471720148351049614145024102667626508520617967767535686713897659831245588392774314141307675589761742418875123562870680424880010519983611383412230369559164921851536215114538037293911720753324801424328891466863164559235630343639923349474827611615676380099019747116256983810444328361176551730401098084995526164186750239791346050059079335031655407959393980721760619278275798881996536469894030346345604710446474268703889233971090085320781333065620487344375626654037173659285006756920068178362496047512841922839368943487646912450084519600424976686076315040482527980004078929749582565139039068101781762441886128018097434127847893056335651229819165612426203760804943516306757870566048492770819927537741473948302016847138061981463338327297891377782462410335523423754624449198718360002696007395234757307062479849533781238434114646444911686502830638251668877485024347930680903310024780102241837760449838085348432371975353376234461691095319780547569900470714495572103671438071328787765693519011893597736786050025018151312077943496113446392847010352022730712991442755149833172950162630428731370631004157929938270951489827062653080240802251490746974280689582287647642136125328568087365419827007982836177884401437920352083711247541301747706878314316784772564990506585982547155727251029186003091402090761250250773283204776242484247426896205213442971137761273419305440985551167272330439709375945906251920384290288688768662253533086201361729652310446710410054598577979002747883243685333346711581912840036011731928782348215068727105044795645312114181989608770397387024458153032024705136605024079372114802032547806658695383826355308030790141071745864614465936369159382956266001255202396351404850375218927829719166853137394405581507387540229516249135928611521046980261034630523907840485259912401013763048546672065996688345127824991633763832516942225251101094388446531678253398184823072434124274629760450574412328595122602731730081394967132394829081005355339160192423838357279368996696143399877749350815304496577112844487290612861387936314657380256348137714741142911309807516966899091550489992745483889688190539036430420620252063231423015276195879316723483031911392129603115450332704433423214846895111360277499291940359449426846373712937485679980859741894125917194397252654918535237915787875399988628236528854743341568651395837275223854927270416523461189310809458047355843034364948775542009658149845212520864484196602065667452606424128125635789676469390640907342362725329669898350873282375884253049834588234795925221608430132165879451467218475765925115354108721899614290101647162402555483827689155909441604202566267421659131108788960738404830960358546229669109581488439034550495230832471844738024888284536944088231039765425611882786683812122695511238392126129256083075355754255629377979706099932850667407666694666096322841306145424579884745625184122125748306263663850667198022783914635444336264036094931136590412773682393783456258046593978804676125869712500399877900819647545454498888365001028325987281571309807225591359316941501029114280922275532991080091171424216947333562726224643906089164166438224632499575952231881212690784824871161806044737713915770158948748591533690634048966424334205459993703782783415688282417815960031594586195866254110323194378069037625147626535451262598525234460512658675896757228282950257397878437809023972213578274845762165125612775084301736350675699155544272120921974667874438380866182803188358774853568613176319090491474147920216685187295410199888686551580183615946616482885111401773277442727534762218775059262619703240744697699839319758329043481983212258817864142557069559361260729806353160674017634393457401113029307111162701738280533372825775221400752177297105506216293639451886890696846742704651671179856708055531232892146362643123534580104910275024643475312837347937692924385611643207618513001737734332010301263421467331200086666337730486614480883789701882008441871966303001873406669690089409909871962302817143104267842753125174324313214532253638854478800247298867534743684160974247059535825796736590715749570200540680424994159302072922331524985909984031423535927250305246907093650105740886424840843176044246255622749048314398254014419377495560036183535154243554266935686195903001939571808716082657123842553542767555011265547024521157190227856193775935284585463490581986615820775904088706937046463641523860166715885939343540755117015139957953473116357678353761180710495533261971592198993851559597983863167102614298689774576188682332257761641816905290071013793237612638947839390730936657170185097417267361173753168170095678050138798738591279442648555786400329389282741643134364408319146488680030305659775055620591442228337864003202938918586527564342380456949448795100544428159965495061899126569450166155322241399867647665919911350548301801073946825398093359680242835229569572103223382847344903987746426906235833247442980072921209646829177799023000175612385428438847315158184929994805530699618194920063167600591404084182261918773835728206036941588280569029812099328231771720074660402598124339762733891763835572095849181666326391982358407523558256708618665927549258412029344457575483919788062785605700393745154695302470452273516190345706686248156407624692594464930983434972905688109371372919303275742417538841368474028810958630378798293785189968527274088391347343233717417622324893068030711988706763130775850375335948041947947784248259871576659246663557588724546604986037633852843387905411540727817320462279125427848257446607274917511609038304370717897829056710529514349038476404455610078278925315633410956746024388787996985589294159289984611444487518034632737316907021779611085489632224331766952666626305040962320170585418591014880937527237104589333361228146986073541329733628004059392725923033015946863520241075958013801984477334241428991026174757245245681286043902902415939157126919141779136449200893536188799368875378898961039202926492241547721106906468615700731360220734505332641698748586593194107303814328657720012773422008329503359472513678138605106598094278622961102237809417893122536557545862663755676704872706327105693582733476296942423226077465516813232680479079052487508087120616638263593143306153365263942703706111632454818597400090955232971123551414029279434603439639448576318369162770117757290378161829646715311365767420650226440255658219661035639437751953895326942483209703800885795929153029228512675309255144999698511115331506266102579421872091287352622580298717199315481651212416120616551571617695755733838897191984505839130365301666211217627992193804989409347252225716497379373815285523276254347066851651281078804086946650260946951493518695950673903379120085794933238589090805790098431303720894700917340557051133900612634400318392478484664164525932578616431973381361877678681717702351758691601451033826718182376244702352980304181920157331804932461019236494583214910400299766559604661476692658649747742138307355143794865816418798980270947967209635920287188955747789759266295687719626044294817353781413201378087030751547772800682066228976951153940861845870041719198301917245236049123997296270462376740589033026951889574057953718504581328792269171314972856835217240027307829664570547142400160424128188288327258582136838936829189233226561992765609767103441179593786109497976999673482627678012899865187085563837278726793959611076699736033982848076156066355513243969838401987288522194156231815600011934878761818975792160381183237493050944905588354828012781808457824912612003617384696601977428302959321824665871616150278277037432516255826473909983964022195569569891871025306092659839573542774164466236384941256075511537619700875889203511995102578312866167346500603691907497305899489391131395036158121633724598736013341642147450458887847805324272227595677676480151301405870418751545674549297668820023797834445257905685026834611623438966854144979055335661168894911280689140601415029340287582059337019552815907670530465860654188332003592412586481086821017166091712154261564352666919782796259177032165652976451534778058516704345413516379623781105466412729321253816042054366399240217062108109608635279997637300686248605441984596079363464943920678200508581826619273168461295460942357148771892965648415065181253604236528536872029751049008598372061827537045208649992956628331527775183277305920579312958930179831219032394274864851947656116609110922313692563701429909305074446007754157078683204493957929044658242792015984855147475185564405026983540429973467933017535216413252572155845303586131092070658084161861228897200087585323066593459451375044799578379717844810197963376881283604630968996878385733590573568233081212332392108536063806509651774974630334873841250248304261012926808443328422596983545013489217531026910652282203364009016107210155179673790066768877043062923455952053884202936648373233265185084818287645815030340289023615727962739705777582606811497157218643562960710467633224989787606408157763762669681195305317336705204844070902495391664224694950413464657207245006067657324806648318867845797048388467412406913988218911758588093603461898526024471886566698627137401605298496404238439131221363282930749465999606732490992748553110014732503967089026801395533041505532682985365863682138978147863939006729411220296886796425305751414708183881459220090996551795506582083820251105892774958085413533365649751223105026201137437553753706856257904677131580805411506636020194217767139048798959913977288302336031179691157302658859783076798400878680287284132982817630406563305220299020500395398261593871668656072020673319184572249481082068845779490907782856659849891501145780921424930777534185863892727550575859872096144070186518370295470952633566412611192499657164251693261189398193405460556057625057745427175111720754139668434281914335104018406550070504888961472582281662259237279094594556181486669265937154391901399923536807074171318644346988415361778578394451256810480302651175420572485639316446587685260070778628938744562588847503092515691240141017611065404943815207752406253447862313277989616288017289226695471037219188769824791575156739699267510264195471763071897928460479246414304114962678883106369912135908454560306397042007093457813940175453899889992133277918133868033505701284050084968829862546472775915307435553222441782006218742004884506644330329005820072556860585739034633875215437678550970899973803198256817659907335834101545367743134732966656675089668794154577614812637713355047923870162724373417364694828416785684442747036408831402479821597697420599141975974647797188940738942505709747861278517337941058836136114102142145481263272076091394094104743017612874845849494491905819405339773820005884646054286808712291320194817188825156153314162289211034138148695762599543237318032895230571248382875114688927338249084595626017224872930828568282910315499013157018997800811775797403758781716500772567427619792918437272871559928618039202914570279479847369310546385538665264360027789539706352869775819341626790135884384118133412243637561036029683324309712904671448107725618542750206628406427446867453151029995846874220271165463858106918793791379407707103868915444515506716878899109903614009975187805999076057773352297463393940350105937221757836109813386575633960915909647290924749113190274385421603055286551072641483890426182166218567531083782669846950943668717558729955425659724223419405310173554409853941836369548239839985536276569475878407649203101705099276451676017441427067395182642356976858172169584929045126867025986388426789792040907023013186296686281857333109927374533604835672912300280573948485826887040876900636073457409926829092180830357346209928220748452111669310903655770942482615797109830043728428433566886699549110983792542190032880992242891213988166761683699008296721156465294614938215512820408436639050880848690327579864518013613112913005045784805982423586009404919141592678982713227668096378820909439849849811429843702058298222344085564391959924625955838905701597620132077649675086121505702208740794575431677029243060223506079057744866586713748636231685215874027059108236343075692894219423393648995171519401917544141897599372535119771355586750419829697546667852477314778845773157659116447918098283253947967796275829570741509339080980012729481568903533395022484624872058076548082299925203111057981712656677199681627426389395682715360690503964709590073374272698248152414931943360896031254101534269339185227257891178489620440357365069368595088677455241438840862889372779571991047559500153700730603191421756832690770330442944912657165668191102890830289129294885395048938697878283435002366388347906857460779823644191962840036148525720161816620046021167960945266877658959196383151528976116402618770031693162593238018401466141877755592254872095764479051339731787091672520466996686838673471657399535033678126454016923090080174912142671267254686004855456518125719040720817527160146014140296966485042971772568507145940738931627947334972637680245847756889994932062696038627198611390990060556301661867426747234009562873617840699329553893984824757892848304921579586211308332839878993253376303365151041483777561009708122765261314628255342962825399321715464339803764659204726471829312625462490221405835199698457160236015683606172364805726669008818474173885143866090085242348436407826297915298099006965307704712741890142740818129483989524447648131027634237318506489152938291263566019904865345558950713862225343948346878730026293052453199989023413505703194236163444084934796362442922849723801123544802777143603407418025308065657842149309120793768698112049646018206924751676014471609144154041363192510823071525994411957281841594729768433821202832434135829301383198584324005599300192362845006600913861757930241275088162397661124714572210145618129373756661521398036264899648707477848838528732111181268021664153274810159075180093120124873664689943507038542090146864957869860314943180845150329117844053227092063239436598727124624643572121896953824800909924477946021831744325284946708222347963155049899689929974288639785919984460340780518339648422808396488696165836897102618312045248909560933776198487784182523281789931331607678743134477467218870089251765965981291256520231759162335221066705297290135448436648465287168883573006916190455184731206557269790933518138531881803146632601861625725932198554334512091910609712942185898270979265710328923784142186483556160200911301982276369157967021970867042690370184238556679354671916488875026550921995840166998097083971568900369282602184623994625266694572766300517472948724983708566486690152635768174022302183725186199034024243795531557347851424902916929568972501715054345973983630899581999320091711588632358476224328968022528474568390664831651590979305485675604472542873958124923620616433758172013211060183005270710234912244895259239242316334301538048955798384658633458924879179239470418904400129687623584403554908454044902429688866416501511815256456691609125484998207741395227227473836797681689396174621822064006196231786556499653141272482817886078367442928626994766358954663405340937749812421844557855605788091428340734828302656742362230113829051557196829017475690872320363115797358306954492474916134522375223803348636764435097007730800082281708446555870902917635919793111204560321928685928268752760141505437659213627081400090009266012782808573000486968002156734842299890062103942138901901606522994678190512208412646826007581661072568119040066632133354583949161672368360007413546902734280856534460047867598497295367072301372615353809012049722811180175315643901864283633498613324178595071236716237928994595029322102458004128206697860166411633600961487942826573210992870134521837713547974216031308550456205083059360253787490467633653699464535904200969182509141355977014255174959739198380766125252150024062675127494394661348601408292282909365671460913425010075930316220942363742858305992377371469993708222819572958786934920763239933869628902447846923927847875720310357890449060749547708712830062977052845678435184964775165846016346602965603390682795100853642283098789948570482062399006952967093378362709083713063441309777790662061903253888509377974225768321180078312520045591594685374714832057202432524059895012773838432244057431864777646883637571800704299573804829472881369360862845002687869500718984327423710846506897102288079952768615167738837210982109166156643222094946444339535066488257755212220857818073212843634294965604844697566035902507344715284947086699766529801277915213598668943123803920155501996904732398671203876197600559501520805526894598418840701675810413466434681950498060893820980751523987004082968078543794730133024572425606332099824872553696046391795583011707850087957060400690653124882796293074263134587161810946978606647112940917862485798916840320720087608805933000969761976991101420882152019040883299306484897629113752233020609909006937883895730145204666461711333848569784984939684620109219339623682204623960330581254176696697429313576614033925040891308917744635899883796035230518582464853376430808512259388057028138528977448495742807888766731303102010975668345643698908512159327124700018244316432817904690134942392278597888742645244554861552384897589415297490570502693831504052150084665541339541582549663914997417174235265409626894050622812272296334623878202344001661541614323965946376774609700939733744786613154964171161610354806027934525447622518588042426976481623417853789797390483874791470002691612907826484230687108912135063672459221633508472962691323772228820933400350272096428037948370512016324533381633390994920055199483480661348144014404095015619763037204351669801255282658245559696836939925022500657472703406992841540041590031433483660632091992745048159202122960548754290664988443225124995616443514738775016835865720117067746386572632378399142109206894091796664850375991374742261095380633466542909434071886130791717203367082370371618086063338367881799911728709539096427667844681644877101273795323472456109012219149097083515713070130202714237208268383116022225470533600751251599035632233716028933518452597980320260749485147885464553732483009256082358416501548312017806952005214289405597814891882330302010803865015779598583212769846861230257587710828185620047116734495837542062555267311836105000246617351094642219112559662387456723849704026840381146154503199762459957449548837496814195567440845199708613657889890658204291853383022099501448835994153936905246415315299111248633113368677049557148289735470051583679336350661189116716427893254370545847614529581903699834174691771984205342397366257472307832815494351719210120526660952204492803748775203900367418564924372508763810896961827539729401713642986715457484459539350425205791186502269786650989599077059187633593464954575590824809947294815631264457149845632403439111349171968626128707603307835742368212825990660798272349928470272876145867292181377946405935842682439310757072608812424203315001807375730297525256349328946852962028882567635175886518050765635363065602895328486749174153178548872030930794692608780594382574329177571303596125126283555477960787177218800549062771803910284868829417522521634034406958939477655862969260221772006734420388966087954313082066010079594427778103569440202056518782286801304842031707754018910552259808677867161996741185510731208782086488981893136105294835264774777355914204212463371239761825368560883901817830009902291376867310100780840911021835741902033503527658668702206562866971159479678127121197343085426187601222256666116666611468848758378988897285289748484390190228646164985489178543969773653161352005171871114501648204720152299236206432554231542406921250724754700995336669586453966342795473674722151849887848663597816320348523652544071769028809521839294860238409958332925896057018947675785248631268219953236160863191810802438893228090419268089479300796509062113343325791402985143596313176448348524449114852566106265726238710186704532693455957851146999679661578447737446353959096049304628011720040658067817781624301547847270040220633784638012327977911997032762768611853875354304451411614660175320546652902105204479573233859348091299362637457912129844288901338262585184642389438566917346458185580429979011406340831446114259695604827593730829504769698354734249070012642523164330718904756870581805930310436173612556493315399268301829999848072717494147109415796439302229949511343379929645662539021758071273011973809983089281430317582898292134991474720365251536034166576556524393844126697465461706270977080880016062452671878747473289771188492086201036843992064662700165289329432369941481071000613131219420495925952333257602255924206140815891854958874822842053617486539147521601113276784173757974553222910149772004587446466000603232876114832930533594240601001444954441547934256121207659212797111430883148417113025028315888129699088838574730625093458614101536810744618186693421667623658770508761819008351527671637880771835162983251013748056806520946331400129877803029964456285659033248118785746652217756793960149560951050115014866686951539005547518992882163203723921877927770502421098448639064554801089071526965508011999777165788280785666260744332947480319930114397522518838318929734647722732549950195963627019397693716010461599574400312898366728573082385308961689027136137056984088222016056442076255190971961982764263355453845090037037360518968969654000548098255214924663813032638543494799168164713951454812815510312603785966386215384394125130687722897047996348118865509177302008967991070266108767654825562607650636490095143201490257104967326705715799580926462450478336432072130251467317470015497906666900721153290595929952515271390205268240430909009282108153051688380843455050484503299075114531289596774125191251470463895372273408718488813405542258008563256786031590006272026527739016070771517468051944421514997720344150010279850193327736678847557452001542957155519943391953485881210506783406946619724680488482132035067890199551960582448786418750855867319956299311769346482585130542402719625184491272824208576861150327982254848715044507328825632190761230919037473405958379553815966281964154682810808927835867842100937764148200679388089863137135260330461140515800191827651188310263277488617105407968623330726117925423088226188563826806618582207064081730029222421270146979582545855802606350307518582582892882482346224790889827651331116290579913309512579062105974863365539743416309259802569716701562138972222930110494599373239809168514583322767438282211959878851790345662560373504446161796618761831225335078821070168002163916932079602353280346767289510623793714411243813090346436459593977873729191026352519090279805212234177413108775371796670515909698610572481848344000197223415320327962078366245470461536529924809577935958619355201543782896708606623929045305565819577793669413988371104014953825982326107406859356798444817492912859660852830384232562304253254132245816988466616934549844036289110740300151812937542496371604217941545093978043849500291494002839753992868848194563633341804715482307211374029298597943420157233735100296512604695720848695864298607095269328739456652534624939475052830091751036015315427087039294456093713361030447757896044017533639315919137670882427421540834983746294094509080801996360382044524277678367134438737190400531779566040704861166879819775772070467373781260059999503646251598851419201373214581509793007478173961582428462428667587436079448993741405950758629388616691343810577715938699579196657804280337379625158290026746116575788381808895814098435938059991343254128320010396230021001382709489332329248997479073644688170960115177420438238166158938673848265330986665268693838856950291064826202403733910819649218980764875747108706111171520717287945998536512807837729889434145820160208210489566929115262942351154355714127003006641526544435363881309062574143281700391090544085995542453881384134797892998239954055250658528343079112840123777295503794151671747897499259331177800483242525355864706931327556366525390983509323614973544785497475056647698441684334882436433821581444285654519235059602910931721135172366562352283806447059313859672597861274190816345092756017361763700151331572918441910766783078896732603621465586330467713414786016064169485772010072987900861217430517610168175521378163426721172423273546489105948279038094113735456449847864866704530388066674861767220697886898236926798456947049843073826785598954222123838754744794878757291619710339507629892327279943797927376957454904848646375568858842974751548470335823787943931805758450218150258714922432879956501521426867853905996126527628578308700425417196537495855526402879224808846856038362526373155596075006810979787482211520568917389544541509415173112275020660244068889909368611747303744938276513856941869626289755460654351333758390936156137024606496181539065833020963558343357745518579932377621337627044966378694334786957472668905985243878427004036312262479637012531745664259739241604549523745250146381178113385079480246114537851373662166608717744297231333795494198096574664390837127174842860562406003816862761769642582525704266100187483861273292147081532161277657961504263787033957160664983543268064914112193907320191999824514234519402519685449520447508354414938971495448431231717542053011298205114019600501667803737971847787743464023928149396613250115233578372953484722860743446878480142178518164418040795446209216781300137436327036164191671128689560116131499873588776679179591431964148246665025322140136836926823354126342245462862025470368973032194671540404478977135439281480719647733028185652933803606444502212754717139528008203181695602495910732799033195672517251162923717332378252177109684599987907141203009938549957573817085268033321634575594561463014644066863607543500599040844216938499085236761218834804028643142058989691918639320960278887260617379600306321019528505403276323432860277315711269799731539327989294263824129794794985240242922531895958236287569997202832451909900383359696867915859420054186952962910262848032480575401694763310138511676543279388271503190812822876028508194062714748067919334825814720125826244232355568351963833487587293958759536814746068638413429735946094785169002580074420577232277282184586388043340736161867561891095762389872548426649831428566193935779640301936560999990306225918437138850305254362528108092310150184206528389526358125522559412031027218031948397666769342173604276005187015490101025358216988018033725512045052863712687837711496138174076372734726198613616779415217888862037220040010354552967033050528950387268095852431124347652519312150068487015446859451445422582377504521478754726125275253114540821132325380055870637685082364935432134721217256061209129991352322289357579594358252745452330586053141609346179894252284982398176384683655371251084216736934726983746674400252520983107404195865806683376791791118062037610484591490669584235090220359300914364677249979681396993844480044540738225741439393828915188386009802900998988251666007282209906451572176291934636078124936272184229540771940952372323731773222494050106727857085527545375661074759845350271971990167034273387168619509220355236513234206954041823271827044368696614984480108331453593988738167080174535346050374727539532732814071957661615876419141992849275283006631550266144240181506909218750344492063911046379003467834054689163318243568338721657708299392580666066467399577705289903095034992241443762276917290458714472694688144415865946681859836192677417388797823665823166280840823386185592522527829300998669275528538834680801388049591278299873216647271078092290636353394547661546811694212736262898643267794394226632921081646824351896760561228005217386245973456639572665541745652370960167514213873555406583940419061008207052830792747900911180296335825936622576294863668922709065569687806075809963598944802084287109467519355775016393077054437756083663035662554534925750690197222255021172753959392386200755006303064256250738857399464703518213751097191081772604637924832659608847368879670472829396608125328992892573655627031256301996808391390481984166302929170713872128953429451659137790156962039768260616693857059585197043431606118276404601590342273419880959689267230411721272373371704550374115965043296965676644707148552164933545072806397576277335986675352041886383752823140509824198596969085996074020913576852635690765345585568481518234816734015835339184827992628288464561267796916784294878452466874468073367289712725195228453706392340099270652920513826563595906312769040089679582066309304347249520080524750062476214837293149617752408851243841099893149908745166700495074228497105394850818537051461374626548993293510826129582187497596177282667548463155231788719485671953801179309760140042153808625047153034416876234239076757160069146389111007431081305748701141665960024527569145223625939802337618213345829200532698869630169096929161755659249892406553757542143896931371028919915210376265431663638995005777372962112990112183516864465017157282117587129126235878820560628287449592597335808486608170279113216286667828429558432117716875996286250119810306717866022895476197720779099375260922408469288417384504314470500808229488714437064631465186327522656003840867310836356490702372252262547684102474468626341467474477867334760551965631480844678642493804509849978726995001153124915175258215535847617300832951588956347804321107596779529542987463487030696917510601383192230494034949962289443181642461640466284462916317079086724992080709777080581904689614218673372991065820880872248923891712062200471581571051883440159194941752619267290804488417796758046961015342288721150034448277992884472432376517539844124769284165445947459842840328553677267522224305141614411319848618133004087424109304466387454536312344191272779533689942091745558730629143082627813103808384244218129138967417675216291644253131554044953939322521145151582157590134385758847755220752517859181066126401936843921467382237737991630851834988471774933365336728097862135450900691269186767505472192382986774399003388673762278114983610043186972066744133939737438776786892287000205049701487391662031859768841700775750942095712137349683704946685910820095188676434546230233843038613143251100269158931986645473434634056387430300085441114639157785554200695150071680227758359070914339996780931703329765108206454702660524234963298196258627504658187938212368719717332140349003159614801549053447882020978408912573213701146195501434330607781141343754171844262778225462001979038649790628054207899518254951606728591672251927833058754151304924879576412027017721078838826829153674355078968930459314022976157882091770275328618116358062691347567426197014081381307952339333614746098958192148291813477862425489982530448126778970048197948581545588884789001484200209351486055389802852696762309588976515729221295282599431332352583546406235384362344324773369539953314919501994719048514412239137494710778321652979547540481627422111856785145088691625676250788489508998421590564185923516532149549960885670356279046886139812126512915947752607157450970744639144082168586809372130480319182202873763555768589768489912793561842551065271266919879148663127341703044231861012202623269725854665567285995296102269740449035359014808470034567342501057426525994921379203058578232298246222343693157824809912297468604963350779591481776687335052629888432233223707173087529723433359533760153052384520390387582363595096060935586910551227408141580709013381492484648959498299451594951430701406153254429145889363235199099022194124605345091623514563587512994163575060528353989403827462718980971641757801309413869658473483374643175819673164016359671659482885403832489675992104937818854227482223018098877560292953759715241064383164909770864336985094096345483995502723604903573058868447858731490272636971605240338889857013077388601171556914878142170782348401871376628676713668815667884276555693511985442584983179747836897085468409862340429186032175579918835437660249573414565618747902905378232103978358967287811374293634215531509132702942346808840391510128212439556369156192947289518237824539710239858988244705805376553148623245321660989242214234879597672078381055954025741326333435726069242892275314759837990498142691984871025264970723819319748634989590578740457395024218925802534282629150102550563996892285123678047439848969188640961194431533840376852090240199914976095637955183832212367283642118669207100753470875392684621735475639986471360457366947357292256611155386780330503856819874418699798414315544183503451601116648457615991852755480412992384883245761987442892586891073965926784166419595169734401537592111395141578480779458628748985981087619709119476240859878825999366060556367229814803145617825661451929429519528601095975965341481780867812384170847305969588224236738217058531588327410539207889445957356020025591499983093040558911141093341569521435488290991856739000500218859011632879625602936944016022443736692689472182444908404804568333880274373047445939166830896810575234653639571054707907477754285430069510576114212135112294861901066537051337745602431650173634485090713921412719185733694765366736571313998372802875916141992755441443291324497387823838676871163547531630761209835230505489219254048604604900473868819176137535191565461552156980253972034156481556550983051934793306984305408949157845065240693024394013594889235731821360650978448585370711140178752973786299833432190287495447522584932793231222099501783884727981154996252758205569164451451748825029632846881320927246992541999603769445030435538176138957728360398378400142532418226276726094830830056721371852210034543891683547527240848967665154239689124418438497039597873531025449662751385901224219169566058873009328261314846340562923514268967141329656222777605023822213548234662199733511532774889889599426775329212100487070385388191724649313346276961686401191596855206872215760488394853962218596828073802557680894258951797339359312997630004797788918432005516687372528365342190103516677084833310814379881370855716996816440107617242017960932694797072660221345566507863289682637237807681631875039570414633942178925117135110641196387508550054942190432562609225359625358112655477476117331197531132154382232735989082450839633369357056961225688663777709209288210584136053146070853543769372245019383898051149323304499028508720906993362712301135728560164088547144723804274822608531786298258769582562162224567618324040885466622447746025992664661205069065024327129961952269277787516429064275095652306081340256935623442726407450402961700333319577695249617645320596162231271257013027357066831658711845679786370062602843307238225139752195371203656892183107341918380917442138965193818336906687891922717760676190128353564043619956707998961110889139387266950892079835430062933238555801742680091911921212800166531186417768347535612811533683660937295963840187518142361857194348205316634483250668986980075999453459392880603520272997285598795062268067661753267938271760094986311091740615926621024693192786523511812396435610804330174776691738994758537981604556303791479159582258475544173481619442477647271151012315066435869180956443839518105664505378237350411500450107186512662674756670078049145847108393818636268040183877371149622858358314385718476856268762504994829916898337439846738741499796678018092971629844485012442711554913353495092124876721695045027226395373933672156333642404946136611383699771632117479428296982844202601392704162595074297265119484284181995748557741992085533862343330810872268756484753896512647992114597140799415248687297759361860237129405591359776384458794568026688849651420082717106401704262856281317954360567646061613616657479655563363487839183931592078406628639797922315319435325553778152810251400322156475949265228895632116905651818446345565173607393758240139047892110870402253873579033494975251623321445891558930479602420958702601478806246241500364343138533516789209342053773772642840469693581288900438373062425011943126605997200870095536573491147604082935392334902169098032761860207116296002499065974095092234867370631514318347932042759371695080303940952776759218128511998936975175313497573776950358727255201160041819132795032505178296453343284018352102445749461188125498411762415953142048496044545973876808186859984303597691585626393377188198127796742191632422559614263992220852124709450553822090803499208021975522511997130283296578662052713249100507510096252839795334853970901247545933909982757582195543062378141347796648686267754229105132008508559720534780354639191306847255420186170982417771949241996122618469382540171052339742745192021534971393177906388759078625429986738765619778964027045335431968870614116727188054357573142242872038830488793276519597624173284738880063604101810349960356671055776200808551412298634468181614495626683235582079614044840693009176389739448297057796622174724765261728568251330284365388221424702970790804311506534015100232900099462353018237929641044714016617611115431960990626508994253835388313328581770762562685679669123784233083319716437661385885924111522227198404278163138764652688209676126667904898578173082399811328720290112409977260079638875663140631730493695826091947343662494084719506850687740089842414876872002614589715302856923642494391888774103492365019414784104406032712785850795223156619525704418745714138990643283069610346516476051145343058608359846506317974684264400438283311051420607002619554407918913967214219055465021648363554285844447963960597734390805692551137885694334287944951821850476945183657683681034152358942617495469141053174593004240445805316582783618867774960191362755365857448008806209555498222163509363992160585591563985383774194446739289755453108718212679241828158150389566742435015634702033185754766319113862274766565738608711671814204409405666986034050711610521527440414071394770775482950058316705120429320653976313171409297092271320231180302903508484301892957243891059949704403624968650420582590765815423352431726702844981898375610818402777728462194464976454507878915774674110024378205751264274919633932784902417888499292077898557423724651937138402237690146718955909311630550924616822349533365725803667944716251998901917627242238083339972366198839294050163040852287178370945795291047021623311173109137934528289079448048594416174009160688180753739631276785119101094815181656882360924447841801867223758827242862851829972220292398787607976783777548983306373880170982021218264608291423404983970342782845300884885536008490784058304364107293298854485350071565923346815903132493141051300449343199336896254393924870051250462042352885715479580510274008604745380912705216726567462580216772234335116594378613776021694514671938569987688118151375756400579733716649467212820195864656519842799764029335096102595613975351920172216276679404957294377204377510772430090050131963895843729189120201849100312375164637504669984982246595487558735682614201541173353420248358116660914495661546638941805895037745248249837748415773430638861238956015717630323618048084375722177640787516289962596446033089363820745034982952576623281635764209094785447768459712009949462814675231258719511200949432935523945772976611552140222897308258943388250514910078595391153117938076893532594716061049355231213231757044130613255910746432871876994283014223082862844325192068966900996601601307322677942418218159908278093848153858402984836525521540683223279921378610052282601417152515510804250854244236357138566866353044185123185885111679903662933638124229726625023811155437319292553265065063518424293701907790051020060521283461246583868791034647179881557411147258444578410266395561549317616524759680435438613354579593932565891006880454370297318419754890367751350912046784414412272639058174716085846270926589832973861784074301761284962795687834332016006859269650522269351035999293890391905608966604000067216815760459063770956164977068255406673668409636888151180468660905984031687275808135630764431713531676147384683450311611749035177227536056603328724022925230297841531038687284086935533422479463632441863422537680669600010771681130999784046405782808677776053624477673695668654016618019094821736726542588748838788515710004789325649309126404508599745194816950511671366601701812640845941848977390869031068122358159792688020699854093201662121533182050016018608097958549006794493595731120121727415463265563222738301083778420785808200882089744870816251535800611587968536170359777677766546141234433070699254162439556459982936989656721240034517679046942073628481999904058076729240171354491530171157344689094193592625706908696791809354783838381625539856606837665064048998453970999125699129307901993873490389887975352200962483571717489928998343653583295664814421852078866873291825831026072406057014130737932107556746160204868076501206909087073952050754496201463310629208295722014722145383743575611955536201376236829012475375535340651942715089962695275546278758975950553143713915977987618043351915630705280139075390097571322777290399187223909249778397181089839340172470335859831091190709799210967214060180294657348265700543136196430716038845530521850296936505395423734705756804232724579002004078058391688958190448457522161937486870538495745955663618275982250978831966965272889416065204411952401289533514422995502176271915260709063761742757980350618345033510192455742651452312302549223911726995979073934989044235201886149824994660290989605136648636626595760806999553040644520192452569139458879386766188527742685735975074897880899872686498123711533509890713421399720850601210668763044618867813443607602202789520960197318896571583528153901260401049654031868892646620794071897949410038728530163638148478100953808574910322220760726149103351719972702558506916741089469044436058489372293776157366202476210934889853559379238525765332068001422504791506254514766368973363072696838775222561807026254820137832652997724995879394432805343947092782558801292282718669143741945454168028852101534129843338300881343887708868349726652858490380141630610367040394294540717572339343133367180388670245494813852080778404669548971417327233083869448379665967782899310905865310188244322835685322209113595925645944613739997051985540744288099274821472844262012108754950373301747247937545916578881078853042791199418728423569437245099970419206080496319809672968352937206219450455346356658375253916283840887216416334174433220635494821243714870339779565798976887719286042609948399963600876971114612277699463387365998174567991278984841755023300691820246698903281447535780963851502441218371521745433837089213822291431553006367974668310865867896380882580802241583969271823938341032831279351768614184296936758342468969450758475365599901660552044089684690499254681567553124854860792866675525176679299439407630852810545602934657334976678682389460099740372917108170248941057213533244234744016555583069257847826970648407284130736601300125777839514672997181248917183630778255085360776266536395457653382871191434041276947845850882559152503810754380372529638851973164257705853067423249262574445804920350093101968115118664283458248216302097501030887187423996836777119870298252412286122505491337617141063436910125887644957792718472012078524963369768502036439222332404094860993415931038343212459683466192825792562852385288480891796781559008741556618574602329315819206785894891876506855170269535182223880469910032546302817974746141457926547465034795365892355802641316061903093398421115431974888893592593114013186493377709584903664409863046915299836102488650173143550312382240670513265582057322839604771146432238611669127204363048118337165484451621629455209627532296467001233369100024764035797132652066098542192805405756664061602933299079302194541049706395804575602392746921727065318164338254220993789087933538529954728636257576254251463872062079361134111770665870175769666068686379524587252497695920183959496046632618072045774139230595579016958110197512230074688241101068113244043560744729891425726873923830886286208255076603789656600760461055012913951233121238221870225789007259145299196512890733211081043893362779864458038421662512029044148897050533540951817079977687270195324441676234591428523712772527005686269678965567804193504593074557769436794736648613491279917410447254253801685850889531524662131833451827835715287938725451525022912886028495867789138685100824655600182468255198593020693332960403589807721270785096763255180757192560056386262670093658059974824479172602979621383602110900036049774258961254990035382254999804957756866797822590577268732762215649402943481831042627786213394475401969073504898767852168836251530360155770988044257331524414717420627034197439217912403179029781203697016180578072257650698598105369147870641183721765124283881451826939773605912524627798609044655975247721339689707517956634556726508094413014510985473770299609998981000974966722772991714346868833141985230611090874758141090444722774149835223122179108373575440431223893043387137585815906592967784855562574862909681538316426552284609165133237008977572418297852176301868026806218246728132448209527776854531083740614303454527760791412237382698237520400255572693953388256659033887096552654610693055549268826460682528656409998078434058780497715985067680097814773416079393548615018081058606624479966948236450787651250174449172099610058487580549326861552760664749801613574001963068774753437301526473578463270278758753263069438437793987603880974439667910513420475388482816164585377169876461237035277035094796683774399338017468895864075691664731236485701714369218785298870169775517917894369510653804733014493212951432756600278372589809817685408666863400728619224030388923807592850341602019069022599350287891107666115432172532915516944373208061410934376544547680177332501902036883540712506274555481116158238671288665551756027339088967779730736752113832833150914813385220559079580868257089638060286650163480935700061342783003540716503736517732726702104707090378674195762819106252191115344280536139385404064207884020743447471269931730807455112388024957446351743880446454776728059377907657725884290534831577198445329238073615089899449619760335578901217909893647341254084699286489665318440912153986706784660793925050030656590523141305845942074672795427690346891505321630524431163458777197282337634196194724114279245909269223347438365343351735553944419563228818486902951203433785035975874945454168845676345823770864675505841028258464485735339531218643836686394914807576307818720573363862509902314136965311753227758978806288853579060927609082794753483129610312707664715215029260485853921399830520531569080612553314994143570425233127271925058735342592749693216217782584040958504082753230171507746098759547610776693273278147933008327630438580651740564753860790272328450032998281885010865030153741979516415063186874059563908040803914650066323796688302921775896494717545356450814154075416833586797125377364795944476009965182731296910895539686578755713623283538399368265734990891860099531739425987104649355166876905969343414015099841370436721161418502980305033546141843690681131741799921602018496899378021885289581104089079858721389709223704026374936779604413347779769445757224806892205380613106775574279416596208764913603029792743521846819580212361403621056282271680701814745700414743962907157687364899339911803502550007206686106395994508980321007898265585619247841249434361724350659687615912223124877278604208138646230394632447421924281987371045669967008658944835942216754256310152706801349971543360773176662929209009721475787839360085730331870129339668603336437626714011167566036550570636495448212554556785213059343624257223505849451675759771737599030518657725599237112232540119583734830142705335685362936368575954497932249645567832385562587095140345710922949528196300226004457877089221267001851234709884426250658876181193494503954359692083387833944993992757884953126259964498807773229294284561408099007458887616144187461823378001391506642099974730768308605354333821516576899957436967899277733158918009975482477844090793029057873555855320387808393469681171715050434424898540754628749094419942251208828907953634732173044188775163689707007380294640730128205700874364362029127773487156678504597980646089861119911524651398138049018669089271227157491152967965125131283786488978600836907195189485938134761034470346183884532305843158096072165040570269360116056368730644938493004036363068203776628653941646907750136781162535483058606401076802815560053934809918599095498133100289461838555120356973087055136372472024140621322876870101200740865634819712416830054724525889937283203682096370334598724897324648328942603579197509599829462576346065818669004383144757823927920019109712342891487660890045924727253228253758054029338275383647053238927370462942390731746303847382285571048044313931637418593922458605893875190872343410901028866110931529363947766988123488719020716207120157907910991976656135161971357180125641408671544804658657411909471580697074808949265473580026469301935758727063879166286917412618133936782724797626990423839123222080206142942024020192643881181579318511268236081841610867319786971767141842484678010500960589708271766666845252617867113945061851149444277482982959607952310841762608523586510450615183329628703113888638390426396496432502368005482158423825440125831843198750685247145589873242439498066359535581686273778037702357571170702105367465776460999057806412549099432006954143431194880820887008266038990096032424048353852555143164471802841600714543188873693494185374147101895818656054564669004078792075487381145638180531730168846394079024843917569244146419707933261645435846130292285118120825883276710827680674819384160956385347682425628951837387692811846511100938046138510125768803932562162587979021815989799939196837880077511326319198226129904774639178695511366923958015503548339306945993501509721701310023624975216868338376008591397392857106678906550758743433189030613971158470061239437949426593008864659613822818284651578177159096540518488886296386141206568080147667829358707864573863228037733127719293935765300233842852225707764419900493105347766641420349924327772607183739434399647294353557525101928573366874257428814175893172977827495032618598716126578066117954330327272761668510015968455875466672753429304453664523530761706263759436190448917042057982010933916537396921108249609824579603182286031094340149140834370653766746503404828049134620187491504370155837791038722424273849974211506812049263133255443306739255099153298215807182884177787341802067780350465887506592918401353275361775861280190503413287526422104019055623427205840248152414352527680306169738381375742478695253888487332381931383414571071356043286441916714117405179969368755934191145052095784024284619126283356234291405884841101233451864703164333690801821662853312910590063350465664519198833268792192093800778036094432151384636959729047777501090239608597071153789234553273959162922049233718727460561802215720289946691844931485209147119330952945958104682794131246434724615892376433970600460987933531032896620546982019803615484729336012431270741099857138651950735410398841584795778872208887081844074289157200792921145772675999034533494021489558458629555693549973121738611926979513272568011738767031274582034931107315850785748299714663934762723070379602752998303955675268868344652339375754990530274470104041236155748198640764525713961161877494770316208664669883354126791726964603335203465137959749615391819360298359244350451304602673401172761163810078129988105049080893367695723884188757492218757033638751465901211344967945971808559206877593923637110993766826804934297881797590906931670352343030651782101270353705329760096252054910257950181058446942701905156330432408228523336595922952864188528500761532627428673448693605373257641850919402897999876155163406928100361549519090307643138655976899640267066966072566574297154062306276751151614933504009950112353978445930936104552155828371393405386232140565649661918058319581029554904723065175650073049145899680886160294089355184866053121820697509307647669205120906701995231644040284372376623077437709194778734273877023553548741049867213594786249320067443509988659564100522575836661056464446497227638910591553129556260153193197318112590568467317768902910065224091255820098769518908550245845114697551746905510631007233239132455831925982615627227057368702762873124325102959581206243634870464705982328034977595518119320690325639404154051523082845777256961396216163205217527241905111680482632322615892894380517593609612061367469448761666306456214444927653118196233205464632901365609194918314010627354637532573639684042829656428859716703512487155706322962163968162562964910154269846141772945805571521718421961889429680464721178508670510254437484157089259866699375984790618087960505876371628123449648305016220762868479735956748715384864654499004811417117057439449824883097184914315040072427297173331878706303985641284003961011306940778779541817541177236727928759682911770126140944259296687402301611336590400178978382417049002368772867333720796099069795354592477157567917509741322831566288520942745320047660838532532826091372050065867041106236221807895311387734092609040251270900009336254102275019569187801586245373192007516658859751726505011693466038442312235773761266001532010900846780364973958651245095932039171823127147626679492113438560009123063327527637480472169986204875401972807423889302168645684461875270079362423578471642979977366159438720322210457479745019580347731203787969742418070862177945272561122105235680323138347348528327245624829811200209795562181609004493912930717489237176138569819596465277362155240880397875591024492550999864755325603544219441429695154520464185809372525923836834210131899733344335980289882301151191717834178819611093539462421576188979900022072716354677075519561589904595721118921400510744647673520088523147596955018343431293636305294724197241582222641672536961413864924440592331481797138189795157541702294542592635196824857810625922266077511815251242212021980512006556403280287477308031774166135395578393846958935884942496059631140269136470842012850787799562473846936004749081392434563583634227804959501432043479661721869484536796755362335329095210764861377946614740282585010002484734850018486259178537370892083483571830123645640484430234043341260458395171193780180236386696728887341181424415494942846170555236706073616154442864446990642257737632447884063263400137375775364927872267719150485830853310279131111926583259802362321451828477748991326835367218742289595985380828993860856191060530394921244396702872392248806061051803014776099394782816107258116157033860651214454608933453132684248753199322477759730578392687690476193195317357449666671182737081473436956616849966546209002632985460787599204157654563394815192490806315633503147853127199904088081899224007705756089018871248812464014982847710547209676524217197522107292258917251945595970242742148273081502174965919074236166527610327868826285027053248635123794119406862045649406730865785398520898142657982577892361179322041452822557709479046652687442296569536088328882702937225416191236233750241341612127619982408704857154278654707731346654356094847542568716868273571291000633714487681436568233639940477901393328680245392655837773724190691415919385313584142611919556531821270650250168227807513766462940872252948204036327163637060565917300968466209399004798800874816125988448300202200897050101550671130328629784416365841199408442333848469985440549507646570644994264152605383196714606342531990111429229949356985183416922576537681128162682387488836790960216808222559208415606244403871387580165298120895455814556648237543226931040692629296973532031208081324556451262741268121368124627441553321646956366554206156123663842205455025141188455248793916431711209060014074523060651627233936807130156217848110109196486740320068119208377641001035048103037337940112267084607562001601632572818060298729476137775683898401741469600370261273538058184638308396985706181254768898095692232323413242644426814753346696673072535688969336802084581896722150124172420986733771062083036151434385197570108214550163474021819949538972448131460137370920740394712300637736809247157094114811725968949690022733783183452616103988395874258771416253324151902990508819182533687336402969520987884339466995986162775165823680087288761621791878664972083377134135022561552097901542737029130015071654219531328296559115370768223750338751399148481007170149069046442500381716572228576230089688613709998217101971683600830842682832374534656634025349869563443010406138454115615209636471771241945443049381684605186733536478931310626321616730712471840319320220755061655523651518345040175070631296974365065841765223737461127377325643995078591616820040394626376069998095330917882107907684588630128522169721094337183365448278163424011059661483413218886001282218505410703449976369050804561620135915941230721980238128799371829270336627566898414980131372522682777239224241699958797072056639096790944338257477055326567307717395379341028241263158237119178628922302399138994905268911492844787392308319221379847629609011607198672589732847166609506490308410885713117461283418448249168744944219047104920829537423900809684950837997029554960389624634652476065105778517969063154827092671117674348462062032543704281418827943224902271776449343221862392980866133503654194154188472583382656256029695321734769710579601785410419958199381497523678543446634463429807554276212673935567279157114469663577824555015446328086891058523452651530738332609025265547704542561151318534199960682124360223601340297590441421904145187841641185749401589074916187251280356984044692719492961796691034010922434240734422618227122456653206022233801098667781200759036807148179751381586421643088593218204999528070991498970136193273445382304505493399798619897054705231880067842731336372228449912992278206436427593145621954771501545837245868260152365536735596630110965690873643188109378686841427812304627479244662915198945815521635069228834605493921002188009370262090932950481158578761094714104069989996992167448291737063695396342678282641349990093318481314517393198271883575259947846925735740252107407783228055252714998287461764779456402764068397830025052359753433102045423139516033533993999427196460216882312765305225820414379749983825043108208231670686332472094340966948446225548072030753883272289058864611776659469130114436754225599283916664822486516832712221906332912548000070940686631641598743380297690185584372279942193221887189831182257523383798807883863823132507805281864208522536513501689000300479314555152335002157404056395488124278643929712805909823547803970936003712357862738755453645561413398624251669866638985147235592082530214132294430073285346430772683552196821261413731626571167933082225231870664364040685366611063575303380124652832494091626468586341235288733494371815380882880316893414214260992881492219843192112754280937895803557186558877440802794319720319228390603320502136729273125212089675159065945349444299585039524840053937497133969845883546343921419576892195695729050253214925412970356464225765447724777595987840095315614372700025246864983994660424884755875797161331958380298719211060817021015774116255542494306466149168627577375607687547820130451960231341304574953084555600501465899083274349466786148018954030579801433479109585557404389848881921535950473476358230343135384421472405137335933923263178969740304987488145533410219676590427078533253003162788812160657432669365774850828901775432777384521398130953821688432372456705937406128337537139299392242667004631693590318346448614326077316543291615436894775769608508162916822274165333171874564645967034112799587809597741525041412933096077352498533054150040698779416303818172227458102135860194687728551006176225405019574934615280139292170898152869266194692793255950175540641859594025341355655745699571753065500083757601262831001981622826768607306067101020513778338570756439600966042344476801250239747422814516219745370041105579617100023112897577534719080997457464634228181854797192292726424743396480093131484633703700681364241296030695333347660059195931336856957553661546097701876523075808387417388233825240223522923704341538727826892282585962101616877074914535640623868986142018429788133001762300163488926597583441653382837722081242886235904813617956932954833647769262810189389035996640996565676951037020134266675276395693686709140270762860610848561230160520634870656838702633577683729623235152465997916192187161188458352796148719769924428917950849356061331488200424357339284686328580158961255633539582225923440008374004719515486794864125758896905639187199172956125464825259013241464232218632175453755209565945337406303980699566614549332466065725304833630367238794959139172616722820371862365511355323115953989253643865210559163518249653044853674449240754712757321631253140142774650920309210667818971322366225330478648602517641680898003954478022625146371233729330080431678571673919898294800737904863617072919683949630716421652237912593663559397834810358374994290722248900387366899286990421611521701538597729468253811984998939840000501201575180443798221300658167996761773095373839629084378265614519112285885576597082692591454023147906200220752683449115421912584703231724047196526818618062034832183862343499111537129016453421669402652309312838040837422219761733185813401659645887581831859938854359763892713698466593455622803334907667100235929962446721075293400533233817525787997079177206533781258558801258984385075631786555570594530967955951457095020817359765426767359807133686347320985425641187876399469471491647020144442602421395180981079165337102910981004379726797120003085036596487896375787935589678462595082035192272175122763428014611735166184894800314394948561089480896137002008940100232581487743590833007508448716704243556185437479779713096298665084560361650565590633545063632022709578655618155736899480111602742648266266349094102000739767063012346479759724234544819828546327695892546480567717401384513545606069556134164604528423690011939912688713064980136007419534021740784716005103812915363448851374863991709337480987384857057968586063914595066515853675080068231596970981958863074979975442543475010763985281543666629015619408169384338114251489405246047482953784674277700204471439324979551591806309917358290780941297292885748937104929592385355979296253465057381818908169012588745121557913466140432386284452199540292506018008581006630345073461336902964232390056702053734090240012837237467777596582787065379922234504687738087095149402258369278221751800578304262680200687847700488781796090209676478431875625516560227944983627903370058265593476835788824444589477871640506010225675017806258124148139344616710041250991793492683824505034692495914089620847085211815359343872077345609553268513133886226277534474695430890043767852917559835039779507418533256724335093275472815736199048202883765907643523972572457283441919582500287013576296911933152927238853285567395962560557327847178512626667779553573685240622707725430048670496168412175499527437860370994669035941320051841873180920765910584418185938939836387046046002611217830548818358041930079569444269616048651141741598735411342413076262278890664323582248748913852171232996383754379863745091270984677286402184107678575338629744547534980823674349857655391059642350432528775170185980413571408647961859629969845239790046644487121057409747702607583285756268056530273075410853017245874452416617032533246991004931543699450152329458699144205881271704760364924246547656219502645383042971328627572402157848016787245628934055128842018196398238623889857466906086805897514079026088776613156759542177210543906830397202504541985501687636092210917876261845187135223306760263818402138501427897899650421612795143754060516255405017364139506622229887933682549878776276665900781510307260849241032419437110833357514403187595659396401231208116419431270866434232427642441947461436303505742142499681157887379320383452123417173460673291338493409322654088749395506982529460576424390523167980829477475360949877801876139036613202332126630431972431192384708582371594054414705403071601005179658777205523055468434165789190112095625510722734803467466485485362037027424813164804152789364290393297647195874942709374929051496283714143269614387903134070823002188301859430935990622173615492525239223767201869728579820605708718200884110715739007401821212318482277887590407167276417449596579495763340378777242225781332911901183293094567752970452863823623491244519488551872589922061678797242541740444920028128863180585676869467216023142203885976305284364734530403663875862086480366168726566875957138204545090278906632146929142753771394172224878267557041410595730761792498719064805222856174787299804600220830175292192930989518021708856430084852322278412921560864072471480870406285615003727760280240389137850970784113452310033691316467348152759609907365354709716668848372993707012410758257011772191599509503329075603193501695918461328982076780530410224239208332647751939213573300336494008689202823028500266784040196585160046485686783789392583646047621938780646357279901825305478700750552384752178912260008582729073736934667578811582237644123895659857323469336930820201230604691031449919449139966211819273895210351339251123911162930640603946995826267033182709656845234136419098012998311251304407702106299359017176895153407065794063635761527303617464628395529954565158190814075089338917266797399277141231310890622215873844358257354365713735582646973303966877529889160931208393357899286030483274609453753093528257129011987538928179887566530543924299092215946434789154054087415859988592876634126046891420302941482311873388659275214861008983660510089374673666561103056449483138295673782149951962850336758417520927237819353212437162869558338335195111653937759100223456167423065073954183634413707213599572242134957713134507400462632771969292123876175568647900992884147911424673531531972693418403602321555209292831081470295984256585272204940757162425260672742384940358787133863894316240884692675907811296332492730183903511560844487509684729642409061293437725257624145358873797503005402902027648165167480459009184195548553412166463809853722216303251981642169041639729097538274604512651994273890952155343541837966718963921854334696130589584548955386484545956024899266024995878969393491150144409427821553838419086845387046419803479368339099225857353453353549409428186671484991362340823096107487285645831191611406344125462640290250730736095006028625573670160445490330044523153774486638184198211514422118894071174794791586673228354538809181790365715306852657023505100345993320715084895608444799674769166287266517831356895746112561064062742640220156938197837896757204339563875167688963200682287849070405395305247490622014431672873985540379370565681734665264102459186340765757918839207197498311537075835181963406537166885838735667906488809524348062751706648741150302877136346112086189022877276280723112772736311197740153523638108299013921303593019325108910312643001437435340932696667477601675258970441465671393808622067474112376660540557885285378783340022425332875588600182083906766048172093786479752781976617824371860399960705833309499531898735505973950071653365447052607223116465041793990773100099893486248132566800225324596969319654849738949740442549664742717704176135345439936510022635577902488029332535175559508462177454447830044609596798576677213903723343534951435115206301321916092741729062333617984148840082288111351258440364780540174579782304694156860090410664367516540881849015380992512653347648324363070364504318456332559151653645822309823611799733834152118698534030473691720123945491134016446187607152165018744657939786958299106745687075071839047073426789362146028154583648446430223554891474110713821156669810989754550217526807836910292032281046537668627053660743435291868279404913753235038389449052514089013531821542809298329167625683630730827699119789737235419864472103846863882090093927612319219676031709756944874580570876040462427390081951406358045293641729422214714233327519120001404617083600727695634064246797691763264197258978406303363857099546744104496567632979323345629208352764970053606157832652822853889579533219161574971920647401727533299903411542616507840065118035974980349288600809580055895985579741888604651031067673979259900033616080224409743333118096731181712094058019006212169682153673701533085958864077777170732415147161678550739839849193429702451635504792801175471426515158481137142218059357528986159395427846236893967317313375564220835509436036560709552329964491377620635878540393100153446646636095426914013882644456917930517802660843076899920685557072823820057726345770913535452358427134457939037588457028004323573933377813094011072331247361627478701291130881139878844233663194112269488799224289576543890140364790704334496946150900074944818175515817122871914301169038935636065057078580345791754448966288417248417018923588259837149670979487593392016647488307929152029669265829165844102199090594287363276882503383145155603378653214835869644972363068041972229359454883916783384270530934727142334421760307600279825394331742868836404480181909046407092166900911996773805173729472389847594199752415338069525773968571554758455637919560389039590860531873751915460325751735607731998138126133997156187035154106245561166304375465112048237857242056600869807998156952350046789628514659136702492461795928666665137571664015740033811518395570274879517179370995876312206345572172314574504056958927565058108558023872814469953630604161516312717155554081740496849125623107829053776083129190933632792910219219611516925374333697205928732576374857109788273700944972100754376834816307858060064605184472174791234547887557564191167550082989385174975301205779585437527710481381573333636594951635132380471236365473887592258461901434186693011950274435253397786391589547212540216053537937524930352962315638122108439269375978324069522844656642622652724437515440723454450032145737141575378243226428839814091158725658672740552528512733281623991788722694742573445157192824246822696971575859533699771046187585477471338713616241867925882485289867067506491229214673851650643835414185186057982871593448304669460000241043191985200129019712067544799052914492032242267801583299429114300463095784282456381710162688450837084724620852294959512535300473828853572562968230327110713497862687045588129961316520462849914280631446049639710016616034973653251038289937840932104799731994338507161519903260034666895206472212773746154346983487029341288788317053673131787687400297807047264623719099566601708536205387215539035563667490224304847486755482298031512386252542863445480348997267318855281032199980592207346009729701278547314406442473595431896663639591828336416481421960087342478108453913312475806606577547146764866635120695697209960235081253770695064078579277435875009391865267353066606101368774213739812529099474156859892004742097047287324842952098949299691825969066130153392277038383678556893878033726382596103734977129066298306317822958967992651897854299912930265700007777026504180412212146663302028705327362830673742543974236638579376809579995253793984692076576633676820193735268641285992224474326645115803984340217825462460038764890008555734587718822750851037502329019724504352005720650335061618505420658816726341586037502852995972068405059507694861261102999266928515125115268162558977561355819560261560517132521013034379357118929830423169530683446760994640947052315685602498917406904235358074841381225881428733689493622022309795001453257791620535712250159688413560391161859120823953582274798773420881532667657358790092619362557061151249340536346760873537756820562190558648401816159802544429510188001211475656656612821394640403971675292266013596128381976565845806331457111992440668707978290338674636778812776707758826883436579545119667275260333179531737401343567727972053486592706762021079999274598531731697351172170260894983792288478828420940727554049593328629454307894461693823034735348682460308240818111904231002880316637777856595248905882178343757171847708899324607293109065031311718675587566311366828051475475933279566408329961490705045793526224487544698384714174624327445897555738304841042910078475606726047466092123253782688263289909968109463498921758713482737126767625114659215961591374230762002565662034756631971477608597162286031473726739860023091232992923539631963933106281992670092001880740478865376048493756953806552647614444610399585539819040637046103902520309632891971710632625449777667606998734210797413130570413981211534687551584075942042764582287327984432537190992142071308019844538005125469404639582485860334839513300323345648748793836685769884932429781258838706352928855005603392251239658764884559320927302547220135137328258326825511792558235455179992150430088105577634374790210702724529604581380288818582713678046771219697022909357670071808134297700217991226678395278527033148823106350605317535014576744206408482519581007935669079105114617004903415299226966379293182604242934388599092813612127954779707300829629528966966676335285595997918632232168400019625655645538375381494351240531960035612847403686985416691361972774847687085226982610669351373054369663919660783546872151155827400312841412173962281945950871992887850463246192566966019997923107298435806083908366195963994577500262734387161991620409165655616906217377000011230146086709471728058817877256302331311850635834680617102448474688122119664054680845256103101296279631290063898882261089739886801450716711093455784649527418527926424687279834320018950828823457058771586250577271054342204993198180778617208663437057782810963627381935691739334056454069166982289251254164592753508889649959431451816217364411449932365314639467124945036460430323305153756285037653348731135533059073684031883541233133375153127840352827970962908713236237535012902020202964474182352950031806088163207898643604071677291300565931518017066240024675161697565137134497039000047445825245649276581265287495115388337036936542516999849921548218463326659323705109960105700845689291790008790074294965247186244368674108456857239979901866772052744542680803816789844578716994186085757410738728915124761209141054688121315050034860757363207589065936213401673161090744505987464754154229319832124130124697763237139960247366207626296819777979271342883631551447013944460330478050381433034592800678982472802277122771343322929831172094144288092022930619202497315970157121837901825120351139453371075058611468108856351763118624214138190793034545120615640387731527177736137281038607490850809988028544315272050049816845429971396419126086939979085220214428824499085564484165611704434926177923238085749231485591307278961388736719621643531757563393344934562244921348549610356317187922504619091908786498105018495170313207532538107887689535612064793708554502215751782138123378535291523823839851071815970239532653893239440701668499176948149133293172196960059327829648611118767798206860493504876771943493422072320665151699985167059434024272514329324207520475165777431035021322920236222328394574987551774839342114734348415530628476154410039931261228722398627408789859032537235671244348567294947517930830731860705744707555079167005726666000533766578845546678507018099525671216897087044669887016602765768942138326842857659239881417856407385999671448496946067449423451883817336882039781765859986185785450985626033117466410408971230246965676736947273221893551960244881012828022978804328283807653494530319066937095198540073108148228695940149532493929616548438289481845819467136348545323704556948759631131961152423009237283515245152780745626314871406133612378324683915664099295619802991663463667354276693405679833969013261532148640965573404056112950169997709919658593705037846951471427781518863856885443008389314638644614351414083894964459678121627591082994836856703501685131303445454182282915560399526963502307736178666105328016344299711905743503367407939786099729228754542801037627881163779136494153900412092913391469880606798084228987990723917053911913163179550622644584361385919422780926557862605645051800513759038752809701241566593750980755298863076503223026994351833023129670984283713336238743197506897226083231966480712218488138055584376872414025880073362620645077246371485428101599614066360928182358803338414863227019794278921127875646873900506610109221949889875455022579244000494459779115461775809428317912603014428455529732484936856663961834791053771961962354906080731275104141870306126253371399046682049082942530811459915440409901947371723341120578367382875553344595126292719415482389956717967532448870010092617015514538022936840783869876603075287435860492940335288518260916770069098821527673507158827489262214632140514732102985000857111496806444775292369419835497540434630212710638680138957680149560278361208209582654461395736703502926951977707378456508677853831711826688978226520305554969181844429282981173333643463205153256120500734195623408832464301941617256742289653691626212384561529703299556573704463761124798978090740375149733527338547876624635991244490843767425701883910272648802550861443386240684562484414114547484218771803160767716647184157407829331197744663028457001114290508698879681507640940446826033510947788513094618925404317568290301687534747590964540928815670541437827432515333800274697055699437936416531073887487852993032646267465256887024584313306776938987575352055935917260819840776890948846053543203960739865460244673995405448390452358055626783645620460129261329785116988286720860483163040515870238663876762360761795193809403875317253983395088720512818036374758329195957829099056712579529105948290725961489891642536461718112603168368686544463821093999813299148498839426088360502493373995074301844303510164732340475747021533886574343990047798675614303158473182643753121839790264672517087521829706854183210588222915142174376397089223419251953596451553592124769435868072899981019755423064292210689378890043459116540489339554843520140022442430131313175568656600218495956538974926063585653545764464466698435934435790319188104546206880790831764738401015638342486385272985613654291889633340885654206881000571457788659395800819992252953208811917976261492142405709891027957335756220212910268065502734158435208192990639944739030486498659258270616706892743872831324571123035258049133778270236016982553886692170812182716664702750466769480698267368322035988243985391054609995778760705168312998252321775884247499215764519077699952739662426085867587399821201549755284508913560751235908387221255199854135649931372118405286266020693494784685649370529826197354303866102235076620877492009998036217911268398485485312733249153430226825184943099363078345731157021351449855767873490171901428391663805579595890552153421793665800000690771585921049981115968214010494125716603202614352276515452667663932293049924476753711178696432909846169622681477120426201012491718841956474581795652489095516865392428028624660214418982890252191006088162184174122255909624755568026209244397073933375294720091628355410192903716436691623279264317331424566111546389599898384314392690239243427129960848876476165965482590988380420122283528397903868636326275113904465768852862940072471739168291362784071779389031376934116450652128464619168231974614843184321997331086540329110251732726662598208681424563909553457327713720184558331419233223800392205024167115726824002502938766203469579154738786039121324875505209891807474032852718720761499205558284829969405864449758228040160794632982167299716027561019016046768005328506677240422243123010832960164099548421181259745500493749261730671867445746484841759462208684933567039364638101888570890420237401888678122602688372566582452646916701125722300000242855466971442548595828982278915913464332038548730831576542272895886341145403614950514831242311885060119749739575825027456573721207567580198058961235213218895048700209858210639453985813534951893296901573494017789707725814231887990421718522917948199573409123953995335529321731143726660171990142164054753953548813681409903960724103994601206290648347806452521301304072177184546077903296530883817963126576420975792724678679079214267242297010878033310314967884731389059200112491601123686528307895677786495395075531413356245356057589797486036288066214987278019097908576331762871425268476015655539280841772569865016762589616954625076128242727524942967969054092476876946890507461475922802272152280434453833083273147388168699414652454797287135835133514212608782949584757053396222546073316639952301139545900134769355884602576162576238569060960722989830803555408412123574528954694808319680913729969039640851780250781086546548790100331610148588824920233522301815963170004744409229450410111137458322860110422556707818105131518201725577952118545160829060824360395760010525340886067055108670261369010727599131912843880555299065240596722472900396469035753627321023720104529241888713579517288602377963635583056436973434589784735077283868194116070520038693721685200039725575998759336254470368423880456523312696888553156005388679124825772000947827252854819776141001787434083436299885375110889760609546370058391134284736311240144988512942879239869215223353681632692552355659259889629885101584461215814810986557064235728333971206994904764581436380861304653715641115421403575197053622058194657083948794346313356294502240154149801293762499410632816283484708535589065846770581817159735347322618429863791321395936449831715695099736809208886908904231812645403325379345102297311617694096375918872298955404880806879096340397975608034343161133321236740015578531792765457100680439638398292163255038803628235130782402442793214613757357951272468545760635684054003924677473226963095982643683209661728307983476311228278028340233068648849982960039445702878752282226735200810044593921628162935915613692218304447942940472092783284278183943031707731169942518882559282802996188661707679703941546243882534937572585242142222969321515816456716971036520841565547056514991637605260606670326421768865586675940570591869112423906060068685815040084688471706313897685099541103223082014964693612661311719619502218978283702066790949822517273552968295196760269600468646869034943114580711998621920860922075659156476022359167834073328348762731928802284534413669211069443154509742738655361563354863525477865035799149122078363158035130767800545975804238883993956265112609558170164024674878612416560377646068761352562389634075401337560883447233274153217173580957764774885058131883652741439862722042337860796873994968965918816585026274610429660175614354627387557584436170026888727050521097786652350239976984860542865477555386258525796337083836540373973153429991347542985095177994171300143462689850240841190911929103584735925572121105928024394886426081130564499416107471763103500530232624884916538973040638568669361293921299380300332609681383205789524321141533490027257167650017733774446849328254552095806842132031277405538519482192407879222175616082246539276478220495136491228520734325846207275426711478366060518408681090702564622603756980150843303462114151474840261092815348762778298413163317822942826129358765407202931986730817821903159704368228569534619007003371621062956272288761166830408124472407117877720721869586206515997065119029711371397704682730584371119364703760761129628762088186208648156554727118883176752301546613110948511922134250017238543852256349379243176357293428796650743781868329028827364238844745973759763949544506788671568137016752295385734986840820909439465773351531068571077320172816771617500046119799046964748919449639427578906895033745668968562833732834775062840152616661339156835385882395853846074217035173704611087530774197998192371509970002236532163188442560773467169763958201219205704139833256617017821250395965138567042303304604831549774824015110056662010135148494338416329936622130587652484792387027723444512642694235889350228734936027798535305448935668113510895503050127539745364536281936575756526855571164605635053863087590840989858626041915418486504986757847777667799501367549385118975701386882770362482986886474418005701672052696364691726169306963583901992928543992879670174572915097179582970964959252892063470553482340227404691726272471302535737022230833668779124453165975738713971011213457034797344949896166323069747371065716236243396645852362647847007550825747241808433607686373668332556890993581009406376740412616251567529009757854118914910013593581892313022277948342301155885306051893805384393772630064002241476533704972384924156880579010264576871893462540497091954964721030280523814846955724715174957428338454740397088882153892373993100334463927448847829721850594910706428198541237953327088087709192715824454364242240784640074217350621174873083206455813466660049822116180608387934786546250438531433665310918772162687250534234789465958599352599550740875739599948679618176793346062418420433149227008231932404521006341363964246436468476136403632441285380998840153466429463470396448440448277050003250449628937509151123631166292818569645453718785093417267175022602503219740827602537864941331520447368038020355048561197240603971731097195344950865519318886984620804715517861521186964930515458647856245778810077013750238508336185359217616432193361691803876740725179614162164144462377912958239966114023636236802018106203258530856553575859144473688262034585404523051364584076252198264068235449313062102719570651073615513436379809047264925069276039561630399239832992128832539815367106539057407217583019503479483012980113272909135136093528056363212718766784219471970275833494709160503606629783690638551705556383288373919979978579753744257535054241753485935013246744015794741975655168319415233483533698371467756126732993340947904717694440984692471970203100042493015532390513607214448087598568459654929979633550715441056308652306943700097824155984023239712554639080964439586971049613276783861749207078551965251231588930484427332256658462371471102846426367308526240505262709930894855584640118256386096591531772232645332544604298929554747027057996174177037215724844181285108235342538432631789693867325954034482576355788507037446189803892199493643770762801784316597792162924164193230952294999319976337490142634802037388158959193400010802246011809993287261164626996471019333982287373072751019658430397184230707887764784243823615228603604134073818039158869443173169197610564761108889073532463189714270939083708144112674598026076954320864062046780556562520472892256974413104630942591125262669425935027584154170887849488657645777367658062697957467446060507417309101840617944379980024392421166116329976829701481175239936674730547258268175010592848633171046765716274635748055094425139297623745838416157577160005478409152348645142102962303218380150934457272194533792540667030953994303147306535702473339068750381290374663606577098316090474259986224579586689910888773185749705748093790483754288717736258701885998174384047429232866287697040983689127543336056687349771644632573578239145151912508099943476320581435773934353465656871491575597446763023139992243766197521511211340706324753344038054562013562739801714723959533009417793746532075957757962688565087890267837057879577554317641228255001068115820632481045864484352547644657947736043019706954269878264229075154139805176481383872973813580220398804875767998302525642893802176652323231154227872571281804899934017473390856799374574521342220517015408329995263000130617545515173824122442436067034565633218427338314300863395500907811948526071947996624184605289710253992602029056708228784075740197017725953770389700838502903970711673037948986614351824264460429834307597631155370887166053673313904465492311917097769003865075154956073476326967137359845563842340957685610817947481892966904616793660192776761432097342524904804789163054507045747503016729580101989882467399866927638989913014407547558043576514923940575589764356678322139770006150196084939583102375784833041105598179241022377431462184933435591408105458171907010900989846991875139627604796352994918223150374080863532637032551041584518726889139340776530186868860895249092913712127802545455504291602867885181550379465844466449287368369645483547464887291190375316373263070339653074776617919614587315254924768419977863524624396263124213515086675518938469646427260192399747569905833464779954791524222688146340610226342066539380799199428341011450713432415735026658332125281566503192166478000792506496009726187677047405737470510914883562975990989970703745120246734634024387662976529602142956138030250059915106763889957489983118932246444569458587937132690590175515513539472527951398549568457338475017089139706406315802449734141633076061553084431716662299639973939457372197274243545466660713400881249960927809056559660813567903016678712455719302780548034525280097967314142885369499741999245625217669388473761229050322023636696217122016761022026158463984953947476050753744533595226494124008837641790915236607812714040049144643059984201626827530074496651244347934461892292993764178835375934234592203454231314336001571845977289507352726982900701315351442160532101369541068321652765813343485431160236011023282681898974260805166286016033037334173943468425907094483556857244704102860928792764407243743953743462511190888350242536933621046399637555621354165657701409837076360552892661236151280107342280927869009375567434327991509328562837715483875924261586547218227332968093952526865844223406216234914707141210954195757610764891040638863658327334455882703266951136763820102798358043311771283265886892025089882477931048270938351286899549614656725485940251704003160209813467155248625103872591592852046403717899377146087463720548551989473797391520358081139276851719527393151464960540230965473646561487273686590890811740494287606033064672704469844433036721934922624980203617260446647776178778935868230465801412311848631946086014324471500405989005255723039504824195620002622946652012564557617704491071252444076428479181496064453680063766195839009933683717907090386285218309038263195905207556499606885243805933371489964070120421347460801031906832493597374230463745206245746362681131777502574213014941415116479421195919318145355750450314021095830756871024873383063899496935560890906572473995393826743273470414790979306355458204651205292995955719923580789945385115907218866584323414523250866420361430259590487085803606374653517860975232904787002790198707829400384998620222638465971838618197588285806938737330951172244745182893870926505721511654867236071761202105224947767046586202295510867455082275141257084634517930306177159972141416599590239531114400990829458891206863527068535664045071450796671767407832536853607712414023908881213499655456497263604877648670795557319154805559897593803787763026629302605249626018444878192075113454498740761146035362910393930148930994203886829139954133393283124470256908115660556962290558569427700477008430992426681832516648315865095011290867898189076830024199857660379141404074300279873754287207168523090122916640013577748331445312998145607366446332740477817471642270018982176676979492052290816230943254695818675132523595435413321727835593856092595968214482121463243268928932313832210110060110255359589765556678600757032316024070694424781309075766654553390494845322319961610315285405571688849373132914462805788420197357935976428774117706371579635169432471411468580625352264002219957646702143181831208031252173181838744964522750736043211872205961034827234560723038013803114477318251310471297708019569164553003530184752941545233121197858407744619708892930365508603518125077092641014308124794138288560069892102053057489327568956545060502673013107529823177543203355810770928242439803274412887974705767222092641481298664585794783760265302707191581607476918476201370150869377096997366508619051465616547797458194705605581301686995886918050332143201459941552915783970621694031073580527829027635084305565826639712301128459080513936726594551963453512004412847538830554149063001610994896102790338672574690178954405629458086459066360221664469030278700444917768602256593463855290356005676844593487901363409336473476835090038685156476765429167667879910456429653550639300654083759465086958194743052258582680456049823787536899806456479983460735196672113777767987060696076057364685354797686291602787530976781291618442219217760586989627968698215489792745403850627058370706971637627061917773558934343978655483022975498021934524535211388747405494970180538557914342865863801291849792971218819851344191832548017587508478934816822909970770176966754412255229230696178117865066652935935009038713415872660321799260035642814363416172747835143749060124097440671304418979772578850497519362844685602249627036326905455912476028299743972526073028868791165122009432262374629503387979423714997399508741290655416077495342058470753052779847982676774884809862896725645393120812012517826095554788391258037294835270937801987923043796112255739157734906201176877891018003272531027258817364967013524722178753257682701222294694907666736122891144193122101743268197288419435881668641052416651405318245927778283303446054102330261924380571714030824168280800816123798812522270496223701054182764160335399310331433249776327967187841491330820969030021582480311622021301152150351479399051417055203937765565797796105667140811320573914710667812522883710667936404075467746504895224669417978469068133264218782594143501248329233748031100780810303097148403593391689752532067048089152573683031428388339761892708547166989740542821052410396232170367744974542862393658310788603845402481408506619912362010510101378057313074027289461502334862519808546019794497591753501861411031610714856247128189118349920211366825363792775583993906285568965285313346817208214012435978646125734403704935399684503525663586221646362069074485491880166019854458410660213807655983324841328417625998391650010518607723619880310876705542638922371799066162126944407866189747822378772802649340696601763216686700916335570344890466345196297148232639908997467890203130924615053104201687215745211895665661506928470619115300295296332144614614206624181604039214329535206155156301079024514171455333007004173537248210827898558266048442822134045777719643749899843741272259877874002575364802034198292238199403107124786278285235963820821253861817136091999446245923999633452623351650844275725865993833677695684645563134505322050424589962783709835464210361386404832171380366720591712985971997851302109152969444083712946399146609071733387347765503054760861819541139136992190090074191337013637995756783134549858992270818097151800021630646155883614538331114499231448466546993356419859194213008462036498792702083162664404027512464879872513458984537917241716434592857867033014372177279992870837739120730307257117302765907693553828900502227125789183674826409157939601034451221926164858376135506708698455584016369982683491940250334368613044151340783467524963637021343244834591205645921474179914497151284255775647879117215985695284578900439605986193304917170832455644571647808867495145862474560455678240112760931727241711242319406077213722660008806050723680929981970105259692789217719119505374676203886847283816804377101448156390493782500747616873598678608371421223890067056932257303465414115084300624115692728074789394412021341455965339826731165551574253012294494067044403514690146709716715570392575240888495962446032931607078641448801709043325364666555546152755261909949974053537034105721320691886339397429047155540336547305878149447748486605651366718868831882051294577887469514037885197317419470657072713559608354596914588731312918622652770894325458787798109663669905852978673064670858817916365148221213462956768792038635262186748606249730227294315407412018930313079531134821670390464713248258744273872015427546053262297543212309429067004020512066124889604118848082723651708705096732406435851055018628928378690313102575501141155602297560119879218182160404055567923166552809117698626396865148669859900566829547625156058785476031488491175470639329624615526700805679918104762786003141384872306627518942674650135213254699483575058736828377744067276650568338242888004240945394254102747116159504905483496222451895831464637268955836638465750760749724708336912093816525464196243107919878697135711954170615452357014232000694869672460217972004019547040532437887102243326448047106982928418383385670944217555689953536616639719297442373582227636649360261666874104032572877024466903069535008198540457374224582995102776133043931375348077415320316580331309608258339437782147909617775517448690593654025912850937916319826653585355649968448045283657881295035949810774631599861543012809038883700707296754260444980484015684415779284080270059395487981060737906794144754751457569272688932852006751426898215728929203525055289441927825001708957318750370833225982690519490157873396543894355936780882743587131904364442704769113790244359198618181377565761077344937942527315029852050802769913639772296959484481653333721496974495402179810119649752732962122703528360066175521207742783456488604535605694180191788646078972702083276721596896851199628887725304941562462296040549988375250646067554210032288447811044425086478416245463070156463265962105585248350801485407893833850883773688032826926758183125293927724455546772540303851285580969903016600628379497960154644204393900325744501864542260460027920931631717920253558308449764324478105753256449210856278752233902916833294378372666476543709093145494253257858956860472428893311231676407522451967596500643386280560120620294264912926333908056758739143404841740292384171727944096414102317620289307254882592747563926638760198632936262600279766988987465476911265941479718215386524261840064241433462610428676599947034720879425857757248927786301302297818306284768421054500970725096767649927919157772691949179997165278042369307210285852370534347690277396232644953735269306722978289547153373141152377651989654236169506396599084819781786049954438452897070008358582462733460791899841149346009653143058718019406612382132024660744407106691740421567351975394719664808442647470146321908777423394442813428178187280951399867759361144727361424733227631977944779485315991503798083336309468866464604043158872300589032840969935877243749352377199735380623629328744733326171630066415863994710100145281879673491280992451854069912778924767148961392599592092195093013587786274869473244395224694609582336093510520997362180874399242004415164952408582057985464584399185580012512971294682654740428174165692992216775260275135521957434205116818671382131978783286994898582675986814867765702040287663678028965665841162619634605179583876927919272286887420833903566614489311523476593870961348343739738101906031610489851969805420373179386171313079648050558165577704101634178945569400145995397671403767837950241494439019314763163059427474146067461696568481140644363814869007674209568872152938669538269299094070874303183814181413555325267738875844411805639335392520421621029681870956282261160777466024309697029692213935563179547764344814748965648033144181166548774108566542564264016371981156879021413594286583390819263728456566693916647017986644118138824979592135208663868913560402206518934595875163683232858462757849232079488554715807164428877020588463323943572128714418435959312215654331732689862902665473117204433804909881105076383271958463565943060486408752730518038197967064733776933292420765915800277478961033869142184300359768391236503567693878961611412707300554213187082263029266365125264661161117696973029059060995892231760284630973578981891292704025854517029037033042789754526094400230306720898219146890844254128928392728866863997911715955065261373241565439753110467844529340584239254115274097827934992642341514673310690004471165815960567250610606967180793183752316877564203850570247522018955038622495334713114677162332354157807931237313762783047800259990150444907242091243166336571555154170175396117024068111083261366279266659626344118035916199214933479039476483770134730586554137230142383015023388539997370159655888733881188766308662015536344710307883675980867917579884047451858893124403846687547109411679730307362165160717674654180954916729247618994770535852033046012966126703266360294964207190853980381475129905984351569577937775632641025360463766672361049180418163560415954531305634545648926128971949529868955251216481147766818845729416059788365356318806866742145446365303427746780182328611543694936555085404242740062820249173576268829696741496798020664686997199808872728777697581121604957063776412862526564622365342388309068704880974452511954518104249914599811792329874613562231719887218126473663057748682831961268419887535911978163252032471252243188837033084370413239037438172451787069770037166911966468348211949390823895752769466418707422299131479618006025982802053016030298626601471414775302270146887765271996320597016590085913427773062444016768134432950452702771796821328269824519893076577216941093082734091611529110866074353898085932843468750344646301966169598992900597073197892395982548502310167649626440451566479969373963353656911170008645898955366333689496419533564060991298459065020856887198397755146738258009113234363645206279438439935763793868292884594011607082244464211112600504145453845282543839018115852581930003219657205401165663730171661573891715566785976775186337391288581541599312081137286202515397753080148421398834245822382725916221192434186524000002660317082609024419993635746646715759665165716765679332983212847756047542032510974337145092534323604203512521237731070443652596032925991549225963150001284610357244054145179827800944921165995572499712824762066745782025977439541415738475702374357368557136222973492908185659535559406998058348049859851566797299208850814161352821555039467821761272812573515214774326340702193117005276429524492799300955829851586956651118119933737496047119947712794575437945149277031792256831373281888492027092296871762255732412761800792998830134663582341338740843923709526530783889593486991644660382508726783315040456137425151428693286462700437722996898844521548696334517407336513824443768790942085842284318287409099528429245372087901012211882555255349280043387439997514533286483511351464737962141120544709017669562274703182504617543226978951125953381000220051707664676633044159181812513444435601901439936266343109698983459694103966504296798408216603887515066428999750714071251688853031144865334543779423007088054829222598158155448332231738785654045564026186317670526722945571616756544567304374211002931661806342019780209962694276065977757027879817015042956098470589577758708481461299957838249514922126172655539523891237329843442556504858376695825092958360235729829640583086553244274480883266943092160563782757813694584339397607776620944185100170688851958070554455424550130628981157509768888254509848298854109222858485709400189879050867005652994875947779248487392498919572683164510913961321710094983428276621151036178489201712469242836098183372144469776427604173332347500286778218821230000592180067664320906589542843131997232130123950248988681087124135955609101911135615570927382632954782383666981680877796498442153173372245584962225578309075611785068835827249096826787966908170327219640057039514160641333677572241030483401951510721550277177270781022508834650942656978327734538619875179613723394128474350552845374535289322848641113433019332101965188210512660508028296500653300077318745608364923337865561277693116439649825552759096805652916569089413915410896956560648207756495646539188099688993617181716973700600810043100530407999806171608315883420655095437738930940392702599630278340025244270711956959131080708638454902520424101403366945962770172050179412262265706704614466795006194521376120178789736821256905363595557559446178920061553275356919463423143373637313960969080781610691078841169296173126932762581573410312473281021295825923320209564137466572678054897640860773885088404929639676034258329582853527413608136467173262372153032085354893214343080328074254850100352747826488930858693276445723910925498457212974597066384372779333137713923672557899419230822752433256043640217501836244288254081548342746370523342215419249926528779178147808476529823215817102471978137629454956568647773648382616403145133736084792649077774823362457457760997170972026839587541382569264803123146999520292870898062119004480436743307125532872876355163542283125186040285811461160564132777362182726235712274676489811109154734671866333171651665352315718424609360503010518879127015893477460551653283312845257311841990306058332543914335921656957695102139168979580375550019578723803328142240694300728645602413593804195450420061321591350134065424940612163551810457706513176555484801365691505992827106664303576132221914432676764354734345604468297524666534373226222486597150612956739243312598348692014141058319800593294224143618886824040858069280756011334065426894917307341637742892336254292414336561981360242021894437136491957770205631475642181049148891670750169480569703719380347515191900673122587841440652050559148492596400555906883953548611668351714434075962735505934055176359668203296366355339492376595839666709991984458176885958133229566278727157251503593791840372053395021417269173677833396702848378618669825284540321415107486147305862138485246815946303955081892327604362920165286218422398131003923498871214623312701299214502142773803356966290893861534859275712713378835070773421428356268975260885607216074226634724046923624234952612654684031330836800706572340243634385054445390476129629467259596842421493931614492086972261874762439146352155263928013980822976134031524046676565632337880629773919319342951668698140131320708203143629861598133336612022178025153879011853312728614241369821578008646810124658040272738091312827819980316689891433754863806064618226767095828646654251845477593409726041980398360796243583606819651670858298657651754061892773903088193728429395509448785860221675264704285515717261641340033711747933027659699243180754844141222237453057722430950884926671741685185096617372380289561768373525027161349925491043015294333745247681575384093777763419746358551092268899413844791246830819585387647021383227485657350182970086824447586603819975577416779318889741832919460747878549721367655419232842930402809051765205622763893012302146373025029202534643273823543966465018550134778376375133262118912348418024293742652967193517092675368964245963000792757256538517699537591896493634481327893483407521480217665160288233506384199687825681351108369031821233423178954311300598987601690178941045490751748389637246232985769322818318026462069153495867171908287335743335587118564297060275887412419677774691284030880500893284374562558310062994345090223613135252179646859703041502938427977061688023267708868856129159694496146768750288055385534087388916682798467494344458402122053738433767455376654974494984135817025673440698724114778377908150915145937351553170596004279362847529164138694743799218795097495429894095307133757408754996565161271949946442827762459685340236865460570367331301408563817232210277732327894532610118946166504028142084921922139952875622672356891173221286677209985984599950999743631339130307035392544835970911700579696582458304833046074605154105444378932662777925456602021042167923936232662492132955047187982299852898208092826162431283509743899647037286467276010390076850674123574004930350684397527621959071140432587743210622173854731316934664319057175689581035397025136338412243139739984441042785534135747514416820812325584437747168258785961892946731211529001118154211050461325890585933319503432559269945074651874953696388463204792668675822647614536118544676468931265560633352598539764096882443241670940042811293450038500179176490136011151734185160374343413140709510039398678093545361362174263064068891941334702491296417892919796407825511436037230707678759216794453241094320285832245903249147359338591310613644438067901221402552108324795701791420493399750055391498233335248935696031593434818718595298603187619657966132664511611350125695836751953844154240253486902499036336998157793717454872927736294326619327336986825541360209376585039024455703829551027568845975907331404952433547143188953615036845019419107593450765048856401355756938755655412627968590563090230273351172185003018641921339251962814313683603124619767180447854195644155868500366035681834615926289563906179992085068913467699207555968125224373432637357576849333882564266242059829483716531648702815314379180936053886000249555389254809369583385488603126937766204309658693574729301755968163772277237451417288256219176887677960972422311485340519186846235962258967683778676877016109397793000107327059281197489514195441369947122294164706654437288026030702132062479797102443965094596645381754584831075728099503175522199456406596831731906306317964759330594463384415049257913066659404512196017953591341174050645721874755313960485038991752443727815441987056116481224894997058027504842849995995766554407445379260916338510038376755170088796316334282578185135088867974095128954892010135751484456615719407496708796939545846528207920336122176963724254306079727391194031228725762061169378623236466488142428186615731973045643192341704322712861105245081578182274825018216875615036999036845100081614698531648155856858690432548264480941863149640127225538138199809757462160257989837958823455330971103509863334941350579616314457730877293895782021019504041468666397250453168932229391701627577558708628626845460260627656462627076442103046691221810730352052176875654806211316983030686105851998002373644941565696743231173096666855428832798561850251495241510655316815297160004209161904936361357122965753894837621160506488387537518634405043888321336302210728527119374904495063187721258732551002776304090227859362180471751606696923753930795094200783124543770775210643714505611800339088160168185908234333009802327170784504343857699300448990736789324200079887506107577769333090274339150891622540281863629771406429067183062379558586583751982928229561752074640426257007691036355535230776939980533859258068876563607231421887679712656433586381385396475927320658564396303244420595383357641905254047303357013392743850805547840600425302567962290398431870257886163873927351347145337709429875126286246384393641297048753805305739410675164815248456001290066031703905654486759186000364384107576457403162485086226497934948549613140877650641501079966657457722399656263283899863754356041404395287076391047810830404302863398927040313121029833670723347924728233066612254448033001867257758006318019169983905694143609288456738399937555134803650979498183533448858715397034308660073397705685626542799974137066640219649348358616672225089318901722868947527354753382091251749810689269299389820230009276119731446046562015610314112394567609246137716802162494140477842556754364602710716866137979497520390852665039722958202736694309108993864072395389982568217145090457573658852626391781201735197965017409544327504676994283103908864917911029952761831937410705765658698523927980819271041288054933397465116679242877174321635514036222788830438129891491149104670860415844338156548044631876557932904538795872339901006612225713027295927091025145256722646864752450039555529605532894312120125583592762566627491462768676786618274943159062105120286275317879321778368165024679201137229964151626791642690763859812631524756677448200985600296433890990365595266946092589025124350445788179303519608484386909680686714416944557201476227070020104667528263705469847365725036810473503020342566868678369522578091757817413473156344461946400099332866841555083553521508157901901649463723093748335426326703475695008138956754031897129138694866245425631903599886883403827505536021099503627204560561777405317904162839574540068301161770757747790141637311024284975608910058722033391016056713369472102971059951618946637459875280411927605261324983002267306918552070414486204238501595800299116832128218836123910797592801443918456394280213080059860248180770765768063855340524416881592457366433819492323921091593639395778602685149077123977095779312267455610132539752777764193714445376271989955351702308236227408692883957084435998857684494057426666308755281568796152922995613337848794745290099955528256091573251850019348569758297575667863823602631185887578136551171818824910576443696733826537548168299543642027920858401436265094530877496404476741534422135145002299480295527828871258136927377566621287541655875673468786236629597373916554375891739826807720328946156869544241404064105001197049656952034322851929958559891307336197168752482068379539521352145702831573442154191563677341918902949576182409391463177309678871976326356662131986398079638608019797401835590598455343842743304056542374604236406132372832530996327076201857620333936370892265362519203481665728225921502717718723927079591619073357032126228735197683095660650758592943294791125384047624594647160315193062164930540426660556237547450333838045121495693334155549234236825305793363580895924400860795052428433413680637373504435231037622786078195158728952594933535333987587055103860030184115571845291353654595314310023838854663009493487065784780100955200762040431360643186979080457897288284597026060127099099808859376912144565928305146081124090252487820749916017432110100480965849274434937850447351930325375438495353269531025004174611196316461361637044734022334489038170528758804065340784052295984341877589096688128374649869246803921087757366777310970866719296963198834316783977227399097915091836229827830988460748118881954328482567847318782575545027565878408956022730910324955573124034002915272599896238238229524552491192775215597017405213156399110996952031424828997606589405745032631066794941081512197276969471773544186596291500413773248234058130924517346527237138945612286235036609778010496348785931825018209551808128568296405193944977675303737655200856155941227235575478677047449802320647926755575438344164861349930799001886994629949802732945748594150401855933969569594452485276039791716707710260841005558331081942466666017836866903882542187818781306964703133802626034370259980158352581877697810580118490844643534088614870763773378392692039255560862187694281236572099627666436595017960861163853704481988245931189445994882154423151595793982980750399740294328931529355862351990545305888289312179279738078692846774089905963628097937370911930256512821298846290896804595773392314930662847900693907732433786643951657860220856587987597467483176942243513225288792437533000576271885749136265843289046738212650965745696770105279396813979225347108024261216744931420183392518711792328724083649894183968580053747492681360791801285272633083852048642910082266508900065300185526908672657310729140395653351927295149705323614648473376593963427778466947415673516898019497218449083768160792954136502530059361056328305535277277631783965937780088174838907124406742431615301327831427418571350998900529394094518421195381135332289483084026892822077670309419038139136295104464496635793588189570729317783391421470159215334401438653807956705972440439380920822869282452529638707897359640460818782263543493940728032612870890539461709630444383176223626735682066534639903256390728761078459498046384686119656438953357276645514709744419771234793267147183599722742073631191971507613088723305042947862079036460003798848576959663165153340205762023227248179827939157083400946941480655418974389481055673562181045219164659676854036804801023605896631647104087922541898816542039599022141388983550870238770921907759450712953882497368672779878618601631909667742156986437838257147453038691375434225011994337768437986388596576588331257623888641393186077208618934396295934298853232138310581172405340094303684992289394969618647329641196871239864573820980407356846176412016688560897925490959163180775131335968279074192952425207803388584517133770592260047397879237068444747860634982282808388386801596429676025393235632593205542058079973086890887184710131125521890707345614262458430292189879431998658361766763870597361490097144124613156533465721085224168395471419876960619011676768255754270010888213899027682033366649161224304142221289068626439878371920178503826116058504979539353343059051327890977556221788821472063948544359654902274992154339997513594355320940056462411424021582823797936228493638143581465415303550239053482634714171912489204682669937440739326007670549677329189557266165111384504670734591777889576876812242843374708222696111672464678763040915005992267809178176678465802221435568248005429116864659269189991336409630994814340378786974761843341423858801740722751523715698691387512107336913355207376462353924371394082168480129935589042312049286921333492869122428767463808628827106741572759566940942398314965019365836528150589854096475137554233621608730750556330364707078374861811123172250278942272208425391196513210775062337872712519414258192571495630199096548030425161469738326547890104742088923395047485998429178260669917781776992926286292576683121913800695321036372991087412131098985457152763721911920781420598774668871481300682735565723821073768008908097590260906992626426736400954151445501182424500765410400177587920897086967471115522036949700344584789901958571113128294598029073836722497628797374568228892279698518892944588961375443245788631070368373705720609875143598780707364250906756151644534884963404659513330936766859791985241647342361930587535622459643087694013175214623916090806931175664227890385975913213211754125833975386730060829107528206771868623065334433087810558214848457382934765797478334551845026815920543895809338744897165792249960004810652832067921672983942561635151727609353438301194244333085432028010874034877910078204890673055133403896660391372764950968737571749039035273178423839906146228750889020260046130253544277575745019520848133120045643638981522163164380389531402758183741947993878708641078640060440064121186442081790742928682118032439735329155095414929412162493901079469467195505038746816408340399911898568403578484642786378407963787349305425006529771909484902892715475929490783651248303081974968331898057696935517286834432860458966810792137893955402425427599308636979524438574504749189416882072042933544672182265663449028858332570976537367373307673551094727648800759886927999138591637270813049168405017554228538898492913555566276555599620028180569590445534903898375099339014181311034443310232863427419756570355094393473291096355737901772426596316937127978332768028577036845487228579217451983483651192965657538012684195460159497635276993212049635628513908008124835843415008446930417515213851840518952951368863088693948325975322098396162931748527561154953800002412864224023367179606118294678368706964642754914785199211828985442177136774054743189575419571410615956528415339070424758964938847521599839914867499611793481439875552836698554737152368550359072713810115465710777398678116325180898901800463457495661510717846337267445344975898001627614393717070969757726845644803754411273356441491028426756918318982099566583409019890204569318887589137179210973215614888877709214649608239570145777278730335782770202781293477447817356162902846365910435098916237911176260139477044277553484689422326135893833964974484732197809997331756613107648839106449291727279579782766510917456290736962333207266570879940569000789321474626661741438631681226913196897669876476525613264418749973678471918507993877936414574686951171015756400141338401398050844611348362244178075674101662248030034152056053825766242523491540937739478559086792923677672244072461948086899607130532364396795371900883861444807316606161095728163169648802053598548139404691742754868771613297219651151941966654902903564379537775968120107588351707197704772598045729820982006973717711022539490046603704599095522800362358365811858632873489597619532707280174761490652822599482817359190120582943055383912271179581761331727989838068714256145084684032729711299294387686600688917059580293587434405334269850084158649464104760082220927215043419173380351890747257271333926472741216375935132881395701517672489014695427984552352609857009794645603035805087378862671577948251710345712112699823374415368552331436595049447611837298368316421766379157852212843095829657282750700314906912009134245711600329310080930161613817074264357018441096469760485202503401537382035678749421840431628211598087296023795290943066659806801263616576115298859688199215153046296836128311641483412184339238238738494585998293028408790525565960221104634707376357922670432037013207211139270015497519423830387658138960416195420070563008746798792985199029259241590169843819111007249834655052023819910742490227948304441103466691057012632579683664065197879883455809999289812514643423002929319771298892159985812693764383988683000611264540299499802456205080647941372917928764910684737843932714954397120525150300370910552296015144772368056949275437437067791444674851937050783128632966647007197352060807644390925293669066737274633770889593345727584425748651339323940188224331655496649655735435965395436810071023921817570163045645186647782827189658615261810242440203004550477407608495789281101274386240342057187883716731043317726693881963684670011749896484434703322198929422219941044286215377050904942342811573194856027965145791037853907457719012392377028082098993012800267901073869949078892148894390370985169339820717550644140898820936795380552006014126054715777736071442783666851402355845527998086503658325864228054075872007308841586932495123376361978317933591338516353935844213443552557260904137142823050771954651668406354924725913499990903868899709531277903509903700344064359792604433077146119218687122659294569604449508509152250226716973622655474081670221663266125373027862327354687758042135322469151035937390583921004395073011652891889442662187133577043995312765363858783570088656809210723128695995861707794003181506478212745357128708767471931865258793421647639396051871958251398587380495342133875160905039206705762534768580775716183418400003856411019404302943460810142230710924682576038428792485822021686552754007961857643672280196875594004679815977591910296139124259433898934152241081733612834189337346835116085941618515932847526598591982339748259002808969555186231067038305782313431348756818695745320145137713966244739360563974710049195635770837147892739099191537928542174527330275809681743717243937898264512157935714218479367305439128647108029974345411010030001583623088041169944151126480275049335776458108706217897776472864628716981474798241871127600043535695970117001942040561765273413042797733667974656348136410704484596214387159341949162670870449028626129183507121537400597187553882457375821994918443420091478164944783626901727455348717844653773919054493985429956168039443241944379496963878752759715031521602202749031000501688391115374617420688277644390790746954435956185429219699249899457889068442843045123838853053350653295928360778211658203694128804764257811762079868567311415695522039970753269584629599424090517876665013674277928923943773983726785412871787588871336778689695469908266409201153885155280358509628649195752914570842724565060845363276927263370782530604609315730909499094282985079422948487837092349146215896898028600281496258747603652422059854969683344740350594388061521496832329908276392883466711515506256322523181782755481374630876243853554208300245910886080882871510409715149554605988239730406011436677779229138449316101835414652378591619767243618852940678369286645001931400448685903524367008655824527859445704249283930559342600893040610404510848519904283307134205573178809742416099267077028670685439173584186273135185415740242424377996333649922343560907074315377635702967913242617266656351530888323181382894782551370399255740872729574555291443267724771319476246464918923278852471152359262503204273049051925643167172596449626402579379870269625221906103327147308587279471349617647104575756619064069745485965315618546669425953209900716327739808721945109222834720650684530876088599897289105269006693981060681265184011260597769973696455797223706891203509062488483498686623589649933339663608779302580264146982016671559274877217270953527932312682751277179751865223052881759734853758490552124853651508963735682834157360917051291411981915584137455894842042887148928631626747098245068652576724126906069268661765302352568129531950194159488721657118277120362771989952207455234108757402459082022297523975051326934212909149015168854934374787991821700516948543541367984028452958632952411799426986831061494221205139185122178584673244385004985835671199336372011866939312611356325033952791363609998569366687297836045742518642431832683195607668848942416069037927342864250129981809469989141408511513977591394289056762971060379095760658005050580539589739099927087440842033864424037387947940601784990158946697013703676390682719362184179671178090537722097336286675026190781300106733262999083290668113054838065496434434886208360364711311975584948093232970363919515065941137248050788800583916359591381428320625843603182717928665641353767380456669251203662828029584242285783339117763407748920094687206206541300162844565900600405588340475306504754736487956995078286682670246453466320392599189718051867881687795263337305993843794309822261723359810331877585626519938894933668118242351539922432161226397858536621850716122268828953853932367363543061683297742848541674849486175624374806367484391989231776664780833653488818508265310000254509310152411556658625243978449476202708957207425399565257026990326446725347510584193433127940856010993378488873118816467690453606329374101467910881081390373617743825365740488962473357288934802910222618135069043853362211478342409205227236893676829633103262653302780477330650631094747811410285800894264206621523577016307656187058386129580170650113391318803419702326668154386952590749832511546642789934593450334636088551461428368944928958181241112284987187425697727640550861118563614315246526583480006102284818817833296241737875281220832507588592799136845866680183292100053687653184009038332010186559409628896582242860079608967932014071194316964191352294941230391577473457080149375215092295964995838859633444777587503198643544104125129531520393831979437699929578285239550028676798687952856224028701868110209727526803901498535081434928253968541397081368090420119338222068138693143933174433650753573207284130959769235549256188554841569854608966720535583971415771490334358808911358784804887665442244917568506295918487549699030217086117775778235744497512595640041349605105685873286344336005712872554009180197490733632575076347745405926284978783328826085018151853930047730429199862466077006514002100300964191811014268935154913272896999213889270082878099567015542743987870059951989483343478525728298854765523080330051215653904510452218633760691469956223715297134470478353311491263311105627186886526854949281308941695673081266724779232446697017268190544093992370229924556855312015008601514259722449596786587550409210895020562062098542345677403523994684325484008756670033386072843866952902505683396946483138875705988412541523948513232471935996416037752633747631238329956989513364835258143002658216675595729739639405008372331406729488567108715879597249519593809519737577707029768977654800887137246401632076079977565327805543794681914422261979460616257108689231576439408520942642597876627245017705083999778928771146609309787967248916870555435641031031393439595819034257099251203757242208515593500391102579190694055594748158582569143831245069195496400701747721361243834798275872112728689838434285624024948050357178083858556095189079633874700236502335749538719000386153320759613147641131114341391238535197711464039013475554603811767275169982971480774124569331812108663950677623172188258914196171844645073985539037834412428898518475515536929334932819785072451661645504747963363456437245689871566340340149707615406406503565294105722722876891016483772713388255384451963860353624919335485767065218902800737054643749618052605357903549084069287619282687802524270386541561289620060288789649660333676258575544794191534127160078172367611645281777041784063210631843482520372835885893794096945002175502454579953750632791545299726377403273269227684064267673360026600135957331609353777375280467948394682083215359620228044448454492074224681996331032965683049749824507039118725023837265285035725517893588731291641166559191544713645916444598140786009026674619817503425160282267117159143192285601412943134448978506928892543722043370609766379989912212206508612695007864607852627568496603311984601236206150143693460803007980655283140468853685250612829103906090619416699287210886809095801845528862808373054843737730350739027089642183666237109702523161616587721132849450306938595818506414185987522196616707385390556434788659288035548281829216247714445157483157024953297844718192186234006897698216328895774449889848659695510587605499591516688223411045500107756378832448531000564192726947598110149201015516801092543258240707575965312118692187479004080460313885864570236158033320091177109737502447559508193057720952252467945284504643536106693226214375069226919545064984159474723408485152996227344717774565062287752208018050216318143300366224575525779959721133579199166290676230371683633379825019008736846331568044597521571418752539011318256809528993846790302243949207674595853337148069132125105988889594588752519948994800188731559432346471813781588332787343883559071979151410607524333052626964196941900287914775288972256145398450247173022772615066312607041766354059205076212041211186769173920335391442798179650967671629254599177077312711502499771557460837604011954117509462544411997634155381228945000147956038325150587203253338001023598029434250836034713484391926319238415147599900632024502404035843750787971109554457931422273866067860862930801845322048173368053338559481057502566859210822580640664544050798060056477893485182030300900282405955674886460152377035953574107680184240579694028376770117565820429498289661175296281763874571158710281571139054993870994271622694234951045239541157412420733646132441131732698907994757712621342359554115850703949010460755676925614270224670004713975106442144838983392486227239203586330898388486776156092405610603723726926102945872752767673408405115968988273820475401608375792736699103001653525469117448805178851357491336977394761711467115756757442379534997093636180131913331676292489930812688531619917311382114295304948579735820473678807441653932093554540707997091456637149417025726431385500478139321198657970243920660435659297524171208001129577202892569284117997561094923733329556580355067585331803161014361652945508900308260970130756965832036103665586287524069100201857893435236477126182532054291064486786359905099989305545272642468844410461672631707822083358502021293955318348129402649587024587238110520658790220336597856841573634940858291037916307484580772316645036917881985138841149862328939517443180360500507770239276315943695920019019233185829855013536957040127711223036655362148937862429287222852362956862652041469586827510272648267203312785779889624440454515995792579435886129418795655423879553225783115414527320330564884927677343857383916723951759547902632795425314386278183122340888400908677245279807220335747933898099795621032621886988363075045318114038893852489253081418023938088742631577017819345268869654818622502332429378331239126387660055246286810979125208837778378599411327250177607105638545415870724660530031925786325511582279145069218014776623906629306975576976235111072452266405770892524696630423068041119708818555800760954556742324763932895214103393851863504106776421914640893478415709636369003995474241939444293321188017645330191560848818623264699863507274880492081953175271290424183172588175327976495559966039645005866307162678500376854283226297933739261427166744918659487447403804069275987937453919484201305073517952311215084775417268610882799615514643045483052201687587169230838279926009891443278738810497954737180687703193112665756479853022855529176692631315719602172793567271327581890946936554210339531770212364127252954034235651082316617285281387997700982019860506677805444444377241643645856258017076790469703701243859714969761915784620173602247322270203119695172613469799004608828719492061665846213046601880083464855698929406984423174201580915151459150040035697154587637486736731199813433411575996022627020733129137895940455669541268450889281818021724481866229723264670177198098818036335758081150214861291994704933999001944275261965824467694806823872960750874991986069376607574262595500275398267029193670987256342753355796522465503889163750848424112185432081555056231168634569912448956516126076029517154924349155603394358398976581363961667771476384421860432411793224585197002886491196507431814877894407798805080154701144468690828090387953796240321521776269799088593326068113826167476608304232226752274816308921804536065215708020137311644927732961945256949232240537255540969659552313102877767021864551593195703669369627709531529296530689511411778288772919079701617541837542240712163359577025134756330774791724929756432113279834249048672653849203625543842595072158963420171738596246898953015899283926500294785167992343450312577541226470184396017239426337861323927159617380972579768641743081004925011559596552418294486885332763363654631653550142712995389117372151797132394263760432917309164823037497829312207757438857256438125764386704692598647603794295643275972091754754439512835781073484159834072903591692358504409221093086697205225680909004152203403226354500951958489111340321258468606576380980542185962322430690724298410390338246530285943679389843848774708460441990517418224375831692170081180869124448095310396610807804303444405881991261306531868522686681866169982761111510472688985151674943366707908662016245723601553677105016223662867048562622961376688974366487357297451433596738731258971796572493338563287760045503872120568195167466229518385992789990208650440768163892658206355127403614446775994981501730173503924812139308281596470393603888290008533816903410972948493551773584103912183111113369963322250657009320867277697893289137838687359876229876277804911801930391447157660811899902420176446684930806807378767794296033530004234139983154094479426007901298160416327505998930718510292059752842612125392074036291464062681707780499319281850568860651292056887071903203331474985365453477507868123426468804620730704179856295848868618003992894982445022451331189344099521661719497748958770444264034720464329444474141103168994198689999961053386622790898214183318795203718259945716167925152052752302803223028963400735662852003833482261361601987603419724978504157579159916064427334875513454575153891434379486302374265325117932578769768244591274866873823095253975977682565926052127505268973412660547423953405796185711994011355583691293233207145155900911125453416569343628180598636216295333553329103120454706174452245687746480446564061251666308591160146842486139961387265363052543302066228733059658010462968843209270478756502007410688054352113274449208280362039037897562494267397547790569957720714960441841000679750196636922305708374071150213297538293810054299552462394203215288847870875709660887583287373213522716715346517035674100757803893789516388484891454336544042627694201726851687464829611776094386890938020683938110799262367430829171347707690273486488075364110434580472431167645890113092980568979583358844075588654761125042752968880311999736527977239618748223190684091427279351566706362623236991579931583204354942194749645709558903395638821069763326710891446040904161025352319448683585422074942224672548573247144554903461428279816450200855144009913430073137888983295564066922018966745912481954826327141807381558819295630443640404931082134355012051877471165627154364088268439337348587722264576605487319811352632171129809489306761561278402635361495265051647599229626061378500107605630202715649549889362568957824517654955947351253611167074716375250612302380729785403657829798918331868412714906352829986619393794424684220518115294824365311715880914838422946967847165646547909367991260488288453624060391718847246356211360642987634243813946087258524961899245152407770804036510740759856108872507060338009552113587827850473717646964428616137779043183369319578138156385014788522671397725806992784796552556396214859263893438274889078371324294749612550814659276666918487938407103985034922134677758243282050966832292504937534505778751772019320148542839885096163895668918512867019697906886007802911152321883173530821365638631542511916149405142478265930266503886885554619412095735186041868921398811244363466022243150251732957999541080679772311160491461586330012227391449046214744691179283929237717841106126102918525254119903819096127018690763591678303312455388293710507026464346893176862431989566886673348640784136058128416623997414976155209295113633689530994144583855272219422101047482855573320128886051326436635170212416756960107721901575399741717591267628478914374521755784465440676138092009653744352503436655743084321196764121927346177939523514373089330566698308796309376909252593907471113749256226717939394597592457633790657426997518301885353530432828686440163628632257094822364238247460243031045411433963977003639570902642554809644972232613064737338984866552946387581807332190304369674355108478498071055988685862643886803886994601366472623778106717248515849097244873349091892056089383385447534426642630203153323278656766748620385446217539928069941137283086937558562366545757376250986376033708244731777734425727755422901966672992218650716598912177178488608344781975933669435246659294097272095650626342733832772394556953891285769516248570588768976349257548422429691889429256541621946836081308972587954672283546143460069025519187443955287413524290725573871508417402780968303544147297584219499226214382597303757321374808190629469551029988957562377415530076702547425848515745440508597736814716561664820516099107998695323703401053847406167732562456329416363431812922217233623255987808891422218216201832387000264968532985212770835963601365334508677249456890978188352634983554037793939406198743747635046736260726136803275423823561293543896398139358331969810465245136708721423439528614221905420672737220854047108833017814523087587818399341337431935861516222792580046940898619617538921391663815873386677311462417318013278317672958482173413721976317684372855864066356407933487960386895772969448268047807206396169022740817536905566230784616205432095230647477758803724437868754082391172438344388621899473055247630283716628768054001937788171265054785761161917423943626818670883686884737292683997577021791096085726509218546868675311791403527406512554146098062233251377285085197889950597451667394692835263410010656402559033974922860220436937713172908288205377651342550835100410950535904977380213464837849019255473675590256409762461050893053298709333714823803418357882723770893373734579292766695732112173688828421658636904352115717206856353663937514667977339263896723082160307020086127536131863134515407551961474174083505015803667215132612090782092346716232712423538985197927485831007532510563120781147016572956298900789010814864216155863226692582092471500929547730325979446217244440170660466442266431130239149151618194875919132865601364169205312395983697522568115767952596016445171485300130152794014115597525512485237850649971790077378772823921451831464082799935586760835899237473653989342807804823212890029067008092244347689225274330618553894561298165716901330311904496329834213397953965653031761515604944888086192485888745938328110770116794868552552519827377875645773026357997591046197104006163830521753345729772425864716490291457667509514084217076128522615125112447125208336709172594658510563209707972106047840656442441085159729211640766387959035367077191606818136386231733998664023113955317299828329021933299431719269223820529229688524250607819295920467462702691108864138768146083452323080137884715715521553252803049551531653233843269960322504598772392359871432913524406722271411290398789084617067957844595495571442338182995280135791763155929495740026157449345377662236908887332044176679766415214624532030312369651793217703590323878897173880551692477268726209940680324582358436166228440973763127122154932865357354285479605156008089743441417445264381916493287484959095686010681868300274679345658242707096297541443361283333833955622481877697147817915920481322335576661080384743378619252040599530695565925690469181611173391236773885915828519334217589883310267806361200772517849267461689447491728521488931257588662323639675415611727040339775498272885798756436836338131638499787775344879277274352370667980630160806522472530503868226533003146727505036592419226529028675872409085746191765825892875722891260750328941662278462254831406596855711377736028008638541405278875855931466823276550514124555089445935436949906813111052502957063701975612382177892458193240478544141953813193121352363247291758860501540509900001382876655183931513460836271848901756316030793155338287364585065733153293032795466701759028924821465647802572091963349661576511089021573231607850547647015578879960312684877641556828863478851354679861213621640258548138830820677939185306533331716739218588558500922651233225279691408365677145638476002482103319536374796066852325490354956902357881177593115548952789969106833440241046388139376401528412150212529012587483456438446943321094887624366614152169746222608946300534891848707009642104122452794563657008803817573210355460749813554200592788478074598772351954353509040888873416520936615857029115697642633908624224725315965835368288062676527248971798097017854927464725403165173723984757480070764386656043329633409341711467354580123213530238930149634009643782389950205932484343235668129939078695227122004320461427041950586668567971793346172892075426027620674788199604731106032605549562155639966368238174051443136529537712373665917475462415691642003187353535745519946390456861277146961741246271255633043715113196257936467350191136947012529829981856539384596374364401229950046089733513656728018904689875201358678224983516115594312681360993331058153928380005191953079828647676011414429328023608938910618837336439473601614651334598353121634246747365933529281943257922403525221698601662495557777586861976134279503623706412492312697631182527658867781064816614829838614553375967158338785760295754526020924964765663048685358771817307417922067554951723399275994898536106525858060930384750068106539518153291098522599840906973180769322687736652852622789698739937879643243459351271719242292010621165316732829160064216152995214408183530782639044731233888722928225724790118397706504622481244743046732143582518146916453979716722665268820098727119839061723133879666818528513850777755861493389425812601457379717106433774572893956049181939530155923047353671156274719571235690318990901024242929119407454521229546774264360858850368824559456330951097064618740096102752877319663355408591110327290509293996347830673487477908214910079268273932218362542546926670545717919535880579334350725150906615846839051456471649957020774193480532394785753141956981669559396244869313269024622345440571566944525339371189863808195257488038679299505856992009632348364377645906676898247807854125018218320119638887461438762837627266837092439351749220366675847510827348025149409282544617680769159294795319120727294385200546956460739640868598239059762101500562601466969082245210842071047141159668315567163400928163535650189326030472613860573127643583689070128407667166733575265169208933702219485305616586099410341064388162576280142323448040504244431850518167741775040448090618717599351216162724859537887883228840866751901590399949906044540500146718545925956492604466464104733819214734549545638731698627149252406678118423962195788899160724182727964247335085274728143002453830465204243909522935602729992511869680160485406152240855735765040323373879641635897662396062720357565750884690551948816538518748026921659836890264716408594620282439079835342567995343084033784749704063155028108734998082561503147077929339491334733106532657172133770262830549735876446944479678743622822592303680254125666401198708210788156077791784382649073272416722105414389229295353838068534011371757893237204675931664315080764791635902411471273611455672400187351555324798927259652429655395467512938497386354331408596363451174927734935484027689163493891831987287257784321612124485876236591817166700722251144695712264279503982070328836236710346075216175615753987283451328606314790083023276079889588694755950701981720679931735467976968682923481762891294864925210229142714846325274320799266123614528346176311719846659841753445691692341026346285950874040931810810354256062314471622566636297710906649770372386890205440292932972259448188060753577361806410660474321999803118321652568463345897714230365250307588299329643352993668954043682163973508777293084928393843124042915184544800743350096637103566695389621203330882168243418096943039677806266325762717605944943671248294949053266320491223976991198622003737942961055238379856762805882500037659961881646050811449738998730202615354369479157089109286289605132877325665343052140654504561932559327759553157502948759566925503203778260967235301433460819222575820609062894455891915117760197177280608494377670043356178161916159822086916848762125903272358234840462846041845645126595979978270688138350634879661832145952406832457919709729464289867069709602153342706017014257120886232336037462998573741464223726832238149857780560211593503942881227936890117022664698007447135655056875550317501313199096993536526249368751957718108473753283435717165531347339057788256092896628442625600751840601139436871293896745046392340846797545417771502259151845741192413882784153667790248969743590532069706814056606336241937617806046838329098879965116861404313920119099901867508645490442559540612790695973448539233898870509932711039988218841964708348383616960586272234673995153407222753793309698460751686479269004471447903598294943196472133702716312939689014293575571743265043380593526492625362540354356975654771921518414272380345629342959581130025925975282354008383988102363069213131380894954235309498448936574432822213148227626734849339133212437954391519582583029160013295488307559995886762102459980103173249811529750562379494211249833722254643588988069648824310235210567935957586182389596658050672623191814001290067612084617926117104085163382421507696841811577533540148639628522900560571105417143077036593379490648689699943603449789301135840298165872340277224501176767690245292501257111324751294043492320147754628012150269081016907168725833689399917897716623188727006172492692809115269779451984977014656004671442172827320745280091482905076842927755837375422733344926296136945210769855380282439366039040626128199960164801276313254265470201994967645914220704939220082273327402979580449697440734557786405770796999673786303939705338098147688028554616030322635155472812022914192167991717536258556344319829679440035776956474952302877280289203362917747673214824317958282177465141745789144144959374397020583734332125989627046403895285341366559282884291887554737450618762597258866501609553274120392833925393569507569704590690256397498444049494955005206614799533689904703726691119278341784333903499894347901069902934815169361957255595461375983440056966985111254018323766781582739282376752724718675724716132348393683850098206028844241091512477164152887754853332084381733150818137898749378365167879435308831418102546203668735347656181958581678398458908783722837771162349368728103021980960113518597543454114500459767020252081562256782502713918385670098581357219623337700236120967321230369597117782496862493525476047326281061939758710776947118856841205913357884688504202763341672221958891277497112593973821874507850969463916837883863851998986170143850093645117123304934068186525108648001581204496327338796589876498390180231870657012250083386049326118468072404781183169632138867012069502559125368609425437788357761053363007913152773362385512823885064147674948172132864165041493297150785402660445626220372847987713895737762099879273493996898296450506317527850644374319955411656625165765792247418574055742508820815693186194137594708164301272974210725687501251734711781515103864055945012469419744055228223968278463378171246928717539300225398568375547849933604018749228496235266109665808529873512702433891401476066504737921668428305769750346956308689970910808522051841224017551348634928758717349537558380603116499186074704739916372637050907941927453147586323162122616751788410098746348347117210040745399665432516749684462045878271901267326039941174960968912754501053306566256200827886797325082458673016742164522047890633624372043819863615158111700459059345349891303851529785092456135397537084801636981657882016494570956766249839149854259458773658390181847907988094983580093823490328204016092638706528151940995942535568406929309429907384268814067804000735052042221958630266621347118388200649786119487715723972996421187595289667349099124941233972032727968012442681031656632853653505673698662003053623826288705617720727706982190520978777054394890827271958616275624684439435250264062614712881167483258318058337721971295158599669450697877290459096154403777993812301058021986550937253719696404364278489189042582580240217964420410318961880109572280680783244884311305260463109555022044719816805851807141529036671649769014928459550014737449287853675230044823278933273751277322170385558333666444847392546518089902730189764199992069200415606768205661893684645351014317356589034723670716006806754326886605538084834278302868671822663819130072256635659373460362086823464453492532353016785570537209717779122908987207645683751946725503492651516210276751376490203616234813282800416594702159099750928449655334387572654180459409368202218621763513564528839905885739646740474120250277748779813937488199237014898805201795468077168033388398031088105482533015518891290867848708776947668628155637670236297986500541998572220200498427854298514082700784766945654456819699344396727808446728041024796306657420087240614413005186245632740875006273448308001413060618139716626101858105916609048243113384689889597346411284867699471515546001786279531719894866959751592586066741813816650686255456250242689108576037257474907692851215894380874559733873920436153942931079856552151343257613329473140181553173577383217996930669068189272002371723145584235695338985199965025827541480394255768096056902396863655800693968081599474077684031663495421105029785253665643479503651287843291151779616169761538618339232330461189985487599326600364914971550040604658627725338701598206112931106218844923011641325079035247413165573814838107551507258017839584368640734401247715493814479173611513969044645126790181149379716610283897508244380190727894549049968093612174320031511971649147106107760021771847498682597384419987383183976483756677850869165874093337808151204534892168787784258802951660328952056675035421393069852562668235157899837357121286930876735047994133314500375589739966318457434618254548692535753231462068175811642453303945717384760273926493555618665196017977336646332270254772781203129820250357422023247315328094014770921956848390511804720864984429823532034981674323255088412058814279386301844526248666363310264106604955130172485155838233531268511316405580969442788274960625734387843858694350308470974019392991868522589983250421341822004638291983074660091761534718860374008016447542242089696379407081524800194046449661715553424383972897217184266077333452889543655730310917630100897959536766785873335833223792166705399995538499878300557128945362787102058930712908465479712813088217689331383798762534458286672264711091127115185089153713364599402034391802294193897029538169733584065628402955284648177001880729996009090846197459684506188712699209824096734981320459397791230093977149031645646448033935866563159392712286753970649325735409492196846161726184884671384335199553028909834799582644879490539209627420788377253195306788042351593834698003850419418203174278016559779283608234355684655034764764179826334581380739404823701901302592404589784129698144076201597630908692312433388842030217777622180602210595853359171792345025013602137764088442911934384997442449382565999497001613685660890466437651471958476189777620115442348991772135267255923767514972033925600604277028031628138930799765075949871535787459920172887542013953946739052597137722190600227949621088609316740917168423181524530475449362333303564356838806351163625433702696485053358038026759721898763631617240484529590375401317447232611543393726359529187168210339734115513495724239369024129385599779594229577285200330888473125237402865191593762659795547592573384352665824491292431972733162064315098203472918810153388864530681792573294460703970296970592187098539426931631988404077123841921752693306872315700135850404518972026605872685357333623563447819819450208529153852332276615038681560905264893555910992589415724830452639103522606884346839494679956023580343550490190286816899787698683986032082471849383945648769777591060542610861364055817586033612526374868400262620566541414637410570532339087998354231104234080198847426560711137683205898793259035462023089228233365297521443208740268036359119428453812379167807635392358031357228540998970809519000281503384375655400884534577752026478246985700803539021884872427452802835242909680414696615034193718752357280843160370210343865004475412504298514911267771328115448554193928862968009766838637143564371508229608863773838570366447740357341204584609910289289887435120150461333289941963682888745770984992339633567389353510793191852989839150133309858663251874645931320863439714751382771806743027964959165745551639048536976660301591570447269321673452034771713101290277434485556756163931131536141283721507381329577602785698113125610229757576264833430449239903188467803154198247349083930542127623164204725600799155520348892764633022699104723149133679689645829839847753140207256047610120952263736855845571786948107857244885495083437256543929798013570637052034332805276256685111457059525123268508467641176401381150254407652725729800955207096085444379665081467538816195443499325855659029705696681448527917904849371564846928757358506080766931242104691341821325658261259190248924316784808849214079336384585700270314474589419705150207774615081392129652012908443596899480269037851442510806920203894214028531929297922653729250462046751370078401375914724249153830154661187436271860804183353269217928927886991537326210124013449145907176894064972029315623746630700070745229146976305983281110694607433008427310955062280593612498757297125104160149067101458038728928568900763494452752578684497722826207789264956060246997893583490235805322905508265819456023294923455536969935077284458856094123536793115176090840164461612853534434609140345993999693631373134160409883722566090608619250459223554043367497011673176536063397825236135163299353887711089093995473721855766519943982700087469769932325278029891783076407375527428049440831641742221820438813865163673206399747317398952431063719527015503256364147824924783826615826100104060274144705276518146110727297753412050241848110804809740936032531247656119481469550035457676330261963008848466974969505875943772559557797669868148164275003763730430645466063637898750848286581072514624829079787003231916655382786369856875334665578061883445785541578393828595280460131256655235588437239198341180598706215433875154101385123302333418318594784758477054255939197963133518955307171537430809815434965235555281878829154240214841536830708409856920796997426592191161565154894635683096148989455843184355413557363288252730284009667626653555374819888044562414816221520140180517650439365083033486138077787215103797654289516449040143323198708736443933400305498883587678516986696205223973050892339540527098632185126042280427825182610431181086262407513376684948162460365628024078285109699882138861991965044862017102525253534033058520788752019195012594048407787088282170743062607217563161222581576495235918429497359756013684094177638432806693235893936180964681742189130685272785518137736093707698907837489997023238666481134361616556658618898975343334291704769296607438202518592698379582170828899726443732649008675833067260169843163047086111776273778701064141568471530461636517420977111247712777733483745590305931726144610801293103867078558550633098876290658072069323948621205928629837380084648824624505778958628809121999396625827808279645166655301514475251746925177565886531637290736088841352462931455505005684323503166020713695289037764575972262584284295898928773222350285002304815518974755087233573995606068059949098300554262129578719105109848670457870319307879745337759172719893227035211932235073348290157619083406078050446026911556096015423142740874900562331168502179288474957766992110894090704566250866422810294857541763471020790425158547388702351693154568236591990365983245799534943387040781729425647780997132346399825300995579329711355138007412490795856167325896716102678099210880707696595970947013879072930802372164975528018332548286766301924292417189026299863689950426037012697965185131676201454868257171814864092213661730831282878290041939218837731130500391055619222397237427294231000227094685028684196201815161329724087340100621803402010501147977407359038117647427579771820025346255860720683551308143393779488389057058586449773365050676788580499304055731567721999637098307864049511034397388630710385273226759102263201484456803241077375348047647077018240936882439763218394888135099374965658745077212279947923456229922294759138898274150579514956156532839190730432467614715867039595644362576345359482993028293564233767326181326572084184783634399293184989255889864147868811899834832339282078369116873212539456849348584039734494016228252041100730787082427970082265508496069233155977649345764710589160578558979798868777457559255570165673342735805422021621912352216660406394704808824312222563800960955698545722174795028144857914075942960810042576297951557229910540714348847599947285172842618025110570881717014718480057328238527612088801660591270355592915392834033061043145243912417067305218494688296623399488941942039639473904450109002310991738639951804945029260731794847365175766509679047042885734839474799074757934477406116959126399011191603134452373265345704572963930591360643548059621479765446413372632251248611673085711923495099401827663545308146687515295606596864800115765952445106587392742255240241340201030715438606181264075586157173469255615371634110744369530315583798135490451312576565328965402562544967370405750115408953094904928314097613020078883112911981908468406020500663957082323735178347739456842527216848199927493035971553424684945328686116528494267582708367478576254820984471841525599980199836887869272544866279453339791815993908956740430580037466181801387164170701538875103398864660700894885426601410816400369142363605445288882272823307413452712368639313754947337774332292240682404264883543628714945795517164268409111710898278255411352414343216811785239028333249068030776705636281826358517710249944097924641379418812941150633671219048667713007957543599668644088256212096915337251154200044905227746656831339831813924400782287372482805350843083656525264829680023277744824208160249681340682356789520864556627717117914781861451609891875213854258818429681923012891335543820383394123671880289432943919699720111409833540712840736237216149702752345692685071865907420730036545488358743052362169162332611178687638384921886763347398938826417190884568080517261082522581013571112676093072349407240362381747724730343111691949491166761782052944208004228986274591389290998150005534508934008111748242364258079060213395410270832282972132738442848908465436121217876036545724031368787055557738798870334299968166999376550983627205588005734857986521127538956403025188587430188584076789331632070555343205921023313066860138522967413586545475479438493471393272477559368498796227739613914544508576846301642893587200923602465013958728347729531211581869440775333160847322286237036058253046989432280794932967036816515009741206944607939490075925455579942326153235902286645077086260065806571238871108579207677161559387916353302697111200544015249147478468210011541881590062254972349107045124769995833012836823790998016078128862029833704297797580010656833467959025558013055421075313842010677104411324672014736868698121500553343938378003665097509055753174805774139627955106781450358296537370169840408246943819394768874406893858409344322214330786107260199726336458971868440605557551963998969901001687714575527574678164608480366253801521827690478969594672325906400669286545140955636257267191511094132156699663353086539428806709868472362895120346215192279677737276671458825117176621127940538658661361248724771283996630505624327774884175974452665678584148017440871678141558658867184481185435271374206830894986664048088361078149952099543226611770372975628817726392218647571724206702164230026865270669302804217444621300653832908736595443336077479437357368181713371317643518178228359846435016647078527896585441199350689466584824025710878900819915358142112712486029706232459869689657663660507421205820100455890482309144834386725472978367075772020956504460843444808255355108414487205583707105483644749910847658309840644269888503556329830357924814519129889862554346810220122480447934464804596497488769864919428494063061421883259331520397831504614482402903569453032872788427835285752284477675013851383949172044318001346087015319384217966968628831946988672724804678641846226926405586215997697594931508521061433795300675622361568645319465071368359197188252599132328539167640386494020272767138864643835967006287962716279894816285048961816342491280539418438963283538883331394474298220536068490203920021470026337543395275226771918558064077342115509815930289411527613132201363631815585193594455385756561586931000341098324018963144537414643718748717700620517324953519277135591912868503686931160252361846122155517927482462771354104002159026052764407502059232586111041102273285141594902874157974482813264843196257592031381905572698979571662773206464595380736956162238258864993809636197679753303130905836156711499809352928076141869822253326729623225742438271108932563367528167062618787635588965238158290974807831390127930994246369504296045954093099026043879361264697829876136810665603635037760392986967114655110059936018780985439479655815574348051432537645636063117513144837447634653302489237982139835952498412060937994933857737845711666862980863983717805892812654460499359480751065555137214317778261046981789761352596289917507031203381287638697020732127546725308880911281139201405610476668128860147328519642805475933746110695575329212549458389464789430471006172190956654063629351120640367974790757487263995245415571431799611621217466753603128471732036763874551494082441221137821221661967707174613978669651414417711397202250933350163524777722804454588372349517330693932363451922875367388899348503532872318021986914546229839171349336617584700987459884380999074439035743421794789373270026234993204400005276260075426929120650052732773509686272957002802028029387515934639501532774505454911782476941126991296088704996533694553840167075413364974767612341697183595666920234341053986166654165243508061572332742267505772860207557087394759635206826473147798046800679591979601791193129482316417424309292394145341914528378380697125653732204384688904009269529425143369291023345045233966726622394663376424703455888514130251065378912466100891406115197456071757122733272522138664245685802142522970770817383470621901938577027551075729715277161596312350046932695344944766541996740243150182184517374268798724495781870428914623316499251194384884977864886082940262586377381596955930467156425482005617006434613169305851025185966604918751429941932579262950479043689285248778993060878461962790471498636883580574469575322436217984372800302180664500188050321740284706993221478180342607283520543302813526080335127383671811536212783888352661634194806202013006854773750962717468293102818443440586927991852118066055009001029073775403995146121034719875021531174788574464608672324166842080715317503534219928592000298848229488951223789501205903161690819075714368042733387382244533294189566149908409894440489154773322952986542890262337466550247075329005468174333548687534285527277356818374053906974395364705613639412543170969475897726433232421976734437888072029021238109964112924245793719571512514542107909715336831182736751130727986355920559622224751154854139344258854293614238841936305979192329674688351415373070872723347054091256729227814436025554311823666746274320240489416937535681113539214766510618941709770080760427216345967074593594403614491935767314983185511149043604919733037105994883855217189000588055320885690398095836287271761913773684707521123753059710650120191805421932272559110286228512495707576148771870014500267680277230908920012030465356194672104368373858176847793847289633569439009826437438404852966701210521495624269171941629213212397341539823482197888193081584214990803531858836141226244703050657078235564319028116313832275312639804581799737190178082506302525307372310806879945755836857050873779470078008995954747111547270884047709724749041405321773128568075418660235459496430136665842880374854465773491225157318500530926463104480313247049853564913185028741996868934491244644379131141188703067135478478174245452887628911344977483656855759249672699730629660945315641464735487392460249027568456248120523480832479913009533654523871206256724177726353529988761073172702433322379968587076860385877204910126928675030221796784592245942668079218057436924569612352896433127362555245006854254480826170161597333895075678986613063281451844270848976623675206012880159122942543744889367496936711383503121707293965516443970655453719369674592532768303099640479878002953317583384023338409668542020172541472201221942726029284157587209819135115800594946969733184387388434961062701629465408929320821725638039269433428277188718901436650694481692616942088537521246064870238421700520425465828252953632227714238070806111179159332246071830558131303152303732356689720896412000823554648953547297718723944701585309222488488457957858853691215791506779150739437231848088584115196604640182965601854932220262888921714351716720873565379103531024252902716819719560197420413393843375967913156422179362970603535881730569200737683793140206204126777709491035714723133421612177115362987213793696356462152089993273855712577899739554658954209338296304366456439963753220233880901167030901767809863385685321820971667698690963809307244228486994783139074195719228474370151527335302176796478459308943663285669211582292907950000449178049752699116016062092501983319343230093867839554768053266103973286573184384178108770622542970990353520928795078665623770254471815826332627267477600605389412405047899273494635424671855736458837067071002969639183229893691487565115826602650068921052225432645643522263455925513855236976211723789868015107704372444685723662747498760915962707394497183776857381154415154760257445609287987792930525974257455257222631046279421070315121391748170735649579025979919950721414000076065131033287909981909670811987814441216980829277029256105526988130639962384682613307604819870000775002192271904603853677281327785725567836627887318566135197826711112684367901725415209070544682646610661575178819478388472227137125013557759522560901251255706946556733481894854543061507213849853539017858481815614476360486354720777412678379283064029360309489673297501898375189857726013733673292508815836399296283444522820640570904961811745430008491365434345051076599203242915236012028751562265250263200032448548793058100210414691511504715042037617738609275566389520358805914540184743435264091603344962530337720590234478408215304164277661519366022480152982171687730716124137611962973673123513709170287349648802509272029325762086089713664021373218469253574954525521045092565664122302766955053435964187376818907377455449565314409441816618108470027669520033390662345375287647617402844981285745597763448758357501861911617698752453129589929828846560428562839286264538279819027815922610898819637245818181299000113572965722171425630130915504502176718420130819643480246515645081935643919508208521817919324724669453181687482427912617385441509490945748786052415726993917019416081688542491671416323248400266721898764960328989815259306017635020859010555712396039219319382515016182484367890734718710880495563958625654165838289436896826571944418148176578719813531898315371412718822707879869977649694030318497736883093046811803742591490698022558379721992649520431489517799338827253992946790059036155293988214093953500294670650202914047225564138595053489186022116976527529771430045432798957368030592953132770481439194772784281423379984403973768819047574281368355727157061552904668494610730226207016916333850932355692270643971195559966579688624699322233264033896761373986503120403408881951685512967753990829871172401363093678098757632398813521253656876981127862353925984074610910891875285468496823438434555168987921032589425338445161004535281980450024303586788791177903817590540551654265350093290171050400845799835383936386539467848156660451626954060848452532796790435806647268062369774948853986493604976782872233036691837572512778190352342965373310507552541873894247730966142688260189327238910161019052113092385346152171795486908239371385183493036680529274852983066562626713928449011834891938840211340470647099195003207182360521877415284851258792456435635542884070729724643968260871572890387863661794964288069392265313707230462875309673042789350718400600900104895248179331937471714687637840139887646804370937968761373435916494425214836487706145066003019911707846365856269513129761692869684962952796891156603148222563170146269466658422564129254515987008419797272129655787760608781372119090251548339160277859935706863589227951628854887652937954747833046279233243652814252553246120502062414125559638183883113120643686425569454222135207862096424465331382231571487739553767499754985520477336243474244915940777588628543233152940016540624971670221594316427410320844755521807177651667789916312672590996009892364675565904835474889986214935120881044006869026402585670416949541319029041359647766042815487767058595417928511842651607332472268598228177924428576671543632566107792130300754242832623166584416805259904021569137107603674949569539791363529858036615408219198266666389762547531597076232330630181177221129498997883483783431134205473939952939066287907977147951694369779756506326582151227879643587099352611308500327496965608960605338649700604325459575651585776927014350117668257458168886335238698836760693409951457864637266554706191810806325739174254527721839997608001421584596432516216416036960817402695712170712668528857868782404849471820168818050381974653460493852051597486239833824126814751921646608163594984456500953918090788327828453311625660605599404479320455620652777034335295188296946009197321981311506709018942130100217333620116356442881606309541527652777422623447366447016248955241355021960435865026239976390432845093512372727180448203500387311174521234635130745198196644153057962204562062900758934254683140578736264606749517281328942429198111350779738084962480926935660984060917790899354573813100783146939913482370840244162187965621437409876329817909143061198487877441278701518044042438680652851896952899152596632653722392646358025542808505248240476611555080859306061151888519104216424383701456138958208903117512850774823110751445467867063609487879564841239953601604556956446457582367954747381144055368302225452343140919840098871213867228368009176100655462829493545791586817152234385049781009346438145682844158531089235876905379033741237151360813376979600484239709104357907090744314116739213381060328154664595750856642569804088458922874152076366383204046458577845148655518877261692300951305458459014417999045850420565824529593501336553638744745385843945223512053767466457041959047770412748863874427715780154842974619226094281925465015465671487861550833948845753571901003564472946926986435708145548128116107008558168186286446370753154819272950174809620198516253938607609272668085389862872217876526033514652659715061876583221564545284986235553266229145295218463977459994717258644937111666445793019159815542429619242280501178779670251256646517089807408507062569461696553495992010282182395584348384719160782020867571747284172549256389505301688816853284780490661999932023885575015596646428363755492035244565121263246624427136225197628676137072904608204728704676862127462342980716750427789893882342614038429761040731329437927591266399899107276646009613478886054829000885117355711691139950458555076315419698041765061324837992513331444606168599609148318592087473651084618260199131292374564804374297390030073186218557731763507906420223774849433646521514921926417569468261828621214604223507010980494017498563715926756694948769114426950560910978857712336692482938690192440352238462593788120848143002704037515459766268479925410150581550126375735061652568791436822138697383292599988161103177178584765861167112558402320755513371255901639575844960791457868724303036735373695024631013090508662330168679770164893005778493058352954446415736217440210167770655533572639876109859157172458885576777875305587694571937816914490429714210207635557753997617984745766122625837844271370119136237232682661081953135435736633867390677784670393066243599746435008824106961293296577600855874915317103501426471784905212671461525776859339482578182450892875237734978455228174400458552206195651144785302285739766105107558155027766681070757874473379041656125485579948246005398107390863245545549865504123511451277249466238413265463120989419424622047384178838818879301492088534067773033505591901389620858609962186280522221105771756122703462878893306322155510267220125734058972785108912911650382639800496875931538810857866230795344421947418827751591018666688753889610728365856942913457638793829813205788420506755818326080974725368478008120436854079572794527760705773459515228299076288652852753910613354398325066676686630088577051681718561532235119060272610434883273164579875647293401072728925842783177345112906549641126198271992209629253316543487909336349891848427558731382067919791388724885723745830117846445879536812774647608118574373271811505284058941441924998384975549615558933357156606296690157997065556862634114606101233878712608665597733629531912431845942014065499286269245055298710609081692814939013025924995753122289879700297397272663112748566514889256035814600771531252827749112825369692404509112723379378898119231795800718976029567502533964540601927727861091905940972606929494067473419242784984488292123768283064355998311056686523260005996383188473515924034113608694887914754552447193283133934427625696127058695118456724544929190267897596092675833072453396429649016543388450768105551936289580091374538025867285252396635838024418674901307035994366535569848464373935487273198212177561538367003666086482156569398920280953841819716538275654529399262263996003124592817544509041555936283116594831646417621722102698209570727186204662225544581436264949422502985675549850432591593685239824121640758564561959203123974026211809682897220621499244263935577034175734860531033700389334346810495996649528007556534747568573812148175820812875794029969902531359625868587752414726312578794185375332088123786946319930115959100901542206405031409304130038609182831722056335034149960783672353160769531227492179953763595474800268724562270037431752201569748519429623444759400556061113437163887555877374864498820006591136805779292239559266628399483796704197363748012713735431488013017018239702973619816069592870256316478381265159120112751648646828313171209986011281346827879252397904962476843814959694425522107446672539194799851626444322438402699597595139076678384368732485266017840839809907151859529717076231607047808176564419617717060812281822155599924110278005865578744932432450805893267844047954626072278714917917875164195899444413364764520831824007392770142573377843324682287579589199931650137192898459513544826400450561807904300815525384515279627596794619042450012119033018316799166307172620199762307377247187455643727357351631949269069178855044832635346188060736161606145315695127444962966939356686221174123576830107108393132261575556633995366116789977470327492704617593040370043395492074726857777024925875087880567795406641664094920321140073834369816256238876695725878611956108599454300846318708496766685772203666723469590371359859356855193481389792650374716002753299921537569774879626104241100966693953250833828054200792922593882640344219422992303879527016616926234194217191014162910971165719098008583755041000955432971088410235998259336803882542411270102529111233459850926930961503555651910014940490429655382939700580381065107185794417446422990988012220974494753382066427973214372748451378567268123353792544537050273127774106326495944502759889010740197709920603402503419927871974290585510225318791003927544833031025339368830896633358072741818877673752023651060552141697465847031836332187000349373036013380362318894575208275522461941761724936822718841747747424960069372756729848725863636194739369226388124205220797505741075309311353729051040396183242481934636553232155401584878823108359310085552072131176407647367261517817576394881155659494950453504313320522078744447669779049882390020951844897406919403651579716850932735847466081884950792621873616620022961637021801054494006919011207580059200460973416355993964730408718618076786035384842436496292724310666161777600677632981363413508393841715516828488175511333289056534235238680957673026431835427029004894901674807961315473804310882279481712705329227203400352385007526158503958613008174332775112225117111590538943662030242626676613000513813661105427646720845645813542451932590670624292309852080958399498019476920430845427080398340022512090518746477764179943158876047982397626414212627722456403165126718797644299432558708983755887575930829019791598839849208604194687234058160603751527346910059425759043951147948362778305845257210194970884549844568213575681424418306120217621846818969524169172015749873269588008964757186981618508330945925199415502873766340251597478416756718941417449592579697501297082217327095327753499315722394823044272499995692468950326687874560295255479196737379154396132123888824055577860341797188674816864174454702374893780435347087324969624401543667617602291546783088225286877433341529221794265718107861183086564202083710903564640772817195467065058346364121513219437511208403569844337324531768570040588829133834950822324030765592546794454972708285752579249790053978161612841601559589120512789714602842312741997857220067363247784719338798268431425238620046241191424866089758773967981146434990282923460202584816661164431101052641499462691959000686627277118967946039959849809911473168504340647044795246223974901579559994070228166101332857957450615800394720048952078043224889441542165655115274130138918741119792788247113928174368177183040550976176168724586891416257033941344622911492957245825803425605436989326720739250774030025407050636193355265676433733833697721605778538967323700547782476164677142571224733515332473678465003030582583908304438043989321173497450420922780507666745205001252463237474076162583943798221296458951619299091948034185345910647085762908655671505428808936829886632411060165166635947406170625917406033151591675687864333941223086755791387449790117309944450758869618927731194046537369254436911292851232027217231499035005676249815640098320717865346549975356850319032128814665479615530301230399839916726661667349715444872934775983718819712667631198280877142541230328514790197115181578109970170532067298755013075376212287722752046840957648630907132871661798179038577968512809749841734753520110661189542213177649246326424627460196398687148327350012716115566534197166866755522139187930752548823137129420241101184120398158220412438670553828854240070047855684016339465049773768867620788022497610435919642938945198629203828317429717852031214297953678194467988418641202701128083902101272258798884528292460404991629181816902865854421531518425650419354682817855214521584985709625126754845673484490587026776773100172374445985702807459167077206401499924403364551664867567905682946876864287705839932212400519074023416515704274560346521185294608671706434245146923144133625147345814666253478502442227191204542246009295747294787509950874352650176041620597301693009399065177429679383643715865855494790567550194870231777395670247202291470668851657262114158149057631470908351935193962223827291674376939930476624054050631319349901486945685020717762854824197759054101007630657384101891166395704647110112754512828054926593092411243637186387305016672755692685624480285101172724916350768559789706130991094768798200468299313136492321190564369532048415428605124646403595448773811313725067848641500844128232920178117561527901797024003865741055640844759098031673978780364500092445016072280723905697184967313977582560674241882671435827487718683132657270535361092775114149540152588367120491162719946294506394923498869067313448905771793885436506129218587582024828535205267478197284647991169620714351348364823542983537456818563317749320800998657950538380445248485930124654546041564561451236747251185005428923334953519360769435741073996889001348380210579316970088873421947422505196504763300125376204609639372609077877432206200806181253086278609385746200950218140687648274806326607194269322442517992990152564747665960859463130764749322302984176624887699967796354431460539960604372142814343094987468188366037644542072581472134363809512498988599712474103452726187253665422327215612765343672379201093860962063740993068641118679837648861350266856783036968670236982105056466438697729148876530841615770806380862117965376856951342507762744798648911742235629978778723926256960198592776750360450359791793887546720995971974041670223263467447120815901328653130761143009382774553342989581024645290841586125083682570098856709613614622897180845908878977334562394804060823036747522735656756846288567906693252432085131596469015805170745832842958498677579282680349125944678655139173309049385705571154564233219210555311764456912360790470766180599795497683133894550645682190763212031254593865609887822416451666247667002883644873026356435084540284467139301593807291509136183091721799380401592927019097795840911734717730735941595645188905019936482857411642593609723224526882562967670819310880361630187030970398526760196398402823319022844811869842653412778013740776661100596264145232666258181026524751473670169451122976048886473786896644525908143822035877019121247963345361954743228281543240553480030359742152552133842042062106191187071555543303839206662225319899135812704861290804316021666077234714497440771450069420001614934118570339802386464190826464050989715505917174265131931203863103733073392812059039736413513277247958033165768830663845775142817241870420746858587873684649003681782761352817441214658762451349984151154458306162194419716332409324969279443775927521643293086957523083412501447225059343335354178480477670311218191649701891689389995273256228941286389331573583929283413320135563712299798801991412044171264461270208316630601473817479709910380575777766938074689838947998998380623868103527852892565924801268230857473068732824704145506944928045010939184651909387459407098122898939969214369421466391709010611397000512493075410073144627593505367349601595504136868709260286044336811868196666548871823854242810531310839115940708739036714131581675088790828970523450672307525953190048152552725850321661545022361121243273502507176431450524615242001774491959419624228435707676927355220602861041948315765268459676863665230642352336013519946290454346811961126327741935494386521311449155275429893747614739159265004557243268113008903685286117058317573070810615989588565733750502498096100944018861403372294825085189475855716316555377909008544760836982521120601094819559437322615518142468302330998254629398255338142311425772909459465058301303333765651067469625072307579388075422844704818251352267952812942704098767200984157454818193288258136928222079469401152432067524912694635367107017901303669013276009940424399825743678356884549603421689018715909750945817072648518503906560291245151414062873413282625282409703908571007964134042229558062021674387018093137519355796489579517859153643297347547491645854133350280408012559259155634393065576440310868779559094015964734911093234404275269253289072265486617787706621848795563274391886301963403612352194832926529586491913374443885733290489905459696297804913693224191306348626976369473642073473175542339316211816384303924881078505572154674540366730432477495233101479470505558522852854697672533385062790962823428249479807155975560264995712179282591419027256983169526491001727808208168907048583125798033716653034883387689022004900532356657004545822409789560024796639234049322614418778198940659391016219127487266754511802776953547706918439991755690756735171374588903742449419324729847575978119786391291689668045964770286962211929722746422370093615182451484128766470904631905691761076908555266845083638792370506001449175002950371814956997105103361156098025574499330494406408399252581485971929492503026859021604784697210691596565486375727011923067074236517312711684820049701226303418819702039564304876688236678432593228510691976326821452789028876227840150764281656127805005788470588895645873252726339605046304080376677735945074000833909045159027367445749992801298909277587059600413310254462859578270372891737504977085900361358949819455677444005892935254160396061679627570833937001328188439908382770582251629612287571309311173735867463271894799183849882925339050985492396658369233338797662682698778259824416347971747490631983677539362216032489328744678549977330913191856782018162634149110370455842156853744358513211022521011845076450082026464383473527344258531336329688113901880581991302351442508670992437678604839768652574027426664842457831089241895190823016836663384454187051415936694587252801238882276771409655404569785198604360163575825253162884692318504777630274891419534090459517507352246328980452155964680663837461447721003970189978761914757416176810326825633548414136092354538481819313893102485664904856850853784332299429196045368946278412591053098662101439915163788345947606888725863454788123158362821016191152223756904437005615835160205090801683896890429715073062766135149372813890843576770069347780243883075810974878785655475717684434319738559938282493631726539901031569090235295048372607730809065758218072378557765348280790617597508776225502880262604228768092988993803603487055050903155732106558245537751308838803901641163367297073347433067310525194258125269161125367432273311747860106279296433816192496886252870645568814462932672596045650721161676764091770114312504548657086929260872502581589881392009555922843285708567358621939305965437903678204715417135540196610613389816794337357361772929663561073566122098992884437613172736179362832356908672337229709563807750790599225987617990741659442453250422433530043442002677207345014252657799797991576429382086350517008260059725703186198348049066039360802120032896691207344526287787205559734999635222491331150375212947360352267447919932411667174878201273859094666594514701691228116294104571296283413734195649544692820474274882058154353412906196823091365315523519249157764445245450810618096869975016796867718690017534364126675282717779770345378469554559682606620524096022108797092701288722508147806360983918187854767210820464364941045428572555790902413702271324669197506333642230241314384421308854359224418351872734587958865367309558891482789988542360579209505259277683635601806786924053291965703513443397628631548229796739925359188451977375845976140224638834693883820167888527128758506374296894349691803143287046584988141653713006757637216988235089551668943750820428310324089460873732145269269395517300428158951034839489187171996184262268362223921096052539858826499334507946785890826052954171460333228176095751785061157881195875288815553649997435477838882566975023222718836273035521518826593679128197530327788730924249163289694306371899961433773281377712539486380360874222334689270791295837105036717010688673983701356198020681794816295942842064181745604561125530817791552235376550265629797865628529435238723795633157154417806670318012858276570278736557089437183154924722494381201843939390567940625551171554246707133207652937257775710574500385786685158746685091656731123825187623841635660065942920511040657104572598509170283356558529155496315915371952791821357832775973632295092312326124289513087411333479993817006259740791801409935073498993411697299013874255920583657237152468686019066353857290058498896999785107694428802420380312498354584065413418463481210090617550954014956416701185263289539043412567778590492048009807754124835351723241277758566727218913191037414850355732520148529070491425710546665890900163121600029198174986600993607202863902877269802597498304052464087370147068027657393133271898437831692346125728906587281095592133333447619880906572279961053104057390216070948268830469358817435371648476376656703468729607868981779126696904406385118694276581860863660722164720141474104201743693117450004999042195956310558122789175354357919228800431724666687791123785826954764673724094685948583384167252198008843123928991097908401449598867431707012701367913855386720546413656898193000918197369786915338441130446454042005663952123945272757665935003104042214719660160808837282092221117929417849371543587097936152537147836863529972537612277465804413949106258898667701617784480976745098491237684069140793701802276887236238100887200080880122085290595925967061514077674313172190594163520879201657518214979627926830411233549872918845563693629753452602064884895271740813817741520015797338690637753151028611141230625385021163171465825996936411480264249773863376712193143907108669899342503545257921092500623565794224647354541062149546481885932806464549762985518885969780352769699730570874599519583515939934870037546841639802566292460864089396232535244204317097076842788582031152621881928789836252407976938858967454919314518385494983188216363363582634124869167298900737537481540367156799278200270701267896928439414776034826829662120810736485238755465779765341815387686415872276341817254763923983363201460854577746555870859325782641648344722043613604682033061383381878237412730392241347985989584241170368938650560804516014355380840016142892900793698648096776497813540851192488734580088429497112527798858760882204837191761792325258662474362348749357428368802882732445685083834478557682979429091886265169390824444511706515597179367259665496916143246318252465659373440031575431001888979911524034287954866844044852692097966056105301010772144564503550320653153467280218262395251137304236893132430017426172688418049517465385769883396118149596552643080901419382126341793511296167185214963566389144357127244272809794646235307886306384093313046372697874215181471049493691598683640832442292845313267977142254347018780438982625744941543802701659224650131228324380808296127050788487329579729525765815420297144472348968226383521248600907766389029146630240899254336526381575257024642732309681050823433604368518320461202397640940064465240956471005481958484307008648165517183955765084621600956973610473870600224276300698652559140984965048445923662089982592382446227473672276416762210225591193785845265378647826909183435098219900298278630935315703505546393528833154193974586476895343528033958023306879400236909744950277290556915604368245995786877533502153849141099723813783781327353270639809258854784125867556498975221050545584348038327057326823811189485849812210183971831269830961628408544779737475664683541419581969687062464796446047850999349430881233431507512006761473985047176010444255337439182029672070512666452338911567909916314212710880649881837024981489741696639065849764971071080842029366328387538845480420706240896471200778578887132745734711222900045157676441598129391427580135717531773924952393462127798743629683366714943210430023328554452395808960906357429743838824418135318649817853105153986099495478594242750783182029091658776880679668598341121087796315158110670586015091573001598378974046379803559637285407293622828694121311522081150500834718274509326411376636574108830974803330637616635515984938301650967275462021390212273648525929743629968331919227843307433237019693670216408155353499760210392615717587876838036171142901298749984236652643889421649994316937402847723772550692147710944721934216117453531495759641133557083353022781263172870541370112384082338481514300605037059865552943378023692021696981445061269236825303434939001647506720168085201504783043187052541939804180970785571747917314112375118238885433323947963854744005922886314392725114757204740523334245201912505840417496001003697295819804990273484810357852273113195038436807562561275421043644035031996569072753446125217387459236206531065672241270392664210785602982448611339916516433430968194267773361590762023634416791463949794067022529586484580633507880542350020527389500174566564494044872053963187057761599361801955437330623006698494693311364017701948708238058282204273279142182984529295180123720796278579908054817699149953449750238793351764774629128735160627718776158084601676841602513391252614076704047483667498067418516755784921465142212501116797383956072793253903249082890832859586125386570449281202012361685271111751360280581932214616962809846121923358297076616433914367556177846642017616059048953874589812133096431490823932915532471685736252140364529750444914621575600854259137639269450461780147005867012253995617832514880435260856180877476532768349712785057694697715603817612249018585470003618545028952576076156006630904601843921222181494372361806186248719832441687569160716726808301430748182132436199476431994119664873914704285894206449234435382343189682979318072440764671859270811330555640497278022042171057405631600550394300629069614996682622039782509241427676791479241544313899399901194458535021596495609930296552679732426305111423389178966847452028283273025248824669913828996111804465337063085686813714000283313006496053707640857324087712505082251774079124142390195955952484123648543884139271527874597674781834660730291713041245719741567926821996013941160287493196397668875331166656952124722820927260733387404809533592212772865195304169722246304112078933600574511504620881376766972384286434157188932257525117586888377086665452531516069000487209528183880097916371452979102796119738404953433846534034285817692804323968396810214920464699100966238465458376444209059565105085952811667959047362487330628964224518412196324228187563316509996094873416168890294851580656200471271261274074898687232939607623476446470340515456793551565692451121224337251861932183206694850949371199798399892431216148215865199841396405342237292517503384542875085919744158693225632647003039050961613331827292136267176385666800370215443543010341422031607191061489744113753470080985684362321812503982487165483486620682959169846647703846941318463025921515891959285287559910313079366556960403958628333492197276087200357623696529960586271233006323992356821064580274377718977593721929180818809253253355294566649482765914856974360071949404491263502141021896705573833174137097978696178316590796402391402912189038359829426935310043425132500393597603570018166123251950762305552036860415164335853580002107215425494647124893879254979536838043572950985216098302824032450016906594894049081731168318049172927020912439530958210988161838851366353953452403066789236866999005602146868560478114907327088982909723136481099720808564344542396738439430593394212442375287751681422386202236728442470792136196877066129005589118797181998209694276550175343856934724111533274638800112254184201567386741477416811905433243205395939626220644439872557275049970897883460212721362885267925173749796221804292966932376527755486811341744116999880524175049610433525015406102009249621935224411295865150424016115723133078032341828416648912231528554136395815361657024387894377082907941620959587872698146063033022477033890174383452227448988065913620808955716874191537354463607609905131456213875366553963006975373232918656255106003893726302401210968526555922685675718776253786063301402071016892733469378216607172403470388284278585543364801501297740122931259277902055129558140118190259942994135802854076406204073044541984904888014888915535253091419766552542262510209961932086836050814605434778101503651490778126013493154902071721153325826693142999729274063384423188888667050104410212339551342337406673278136946777247650924721166554604824218537526753243237951279187372474580136554738501592963174190481363009657716237540002404567767943826397841702671651626407643541460498770283374462813350930986009000372715572045167955758788467679219482597620422674660320775542486548552394594171396085100195183767299615345867121271648072285923288403934666089617110137688696833160175233158891902005126528634021740626936274035669241862822562258699617571739119765337208285704072696920354630105010373650435171106363603376105282603281273773419221283788695138161896598597668865250381859630542645739500430113527676341400680162294225331893363380064687622987194059219875902799462162724862981471374762065438512367384503901484154931937894471708790359336690998525942906435892085487095045011460623607791500125400322828678165396924347523035696389831214590089615324029826318974141344349901858200876914672192379812467442554094035612164529255768735979336091923167092078143465233486528996533078908868818922741353761670598753583272741455928519953306035124094722982908337687759610516934100308252012534725774169958234620151484090757596768928441040852229528480242261384575965786722009029372545802191065168984767891503300302767685817575980248291473038832521342853848534838514808002320336741288919947281123379969130063666507861397838274484201798011342680840148172259111749878305636925210858605083595427713784705268455545436610727001999114033855856512867035531504579786190798080625822995241354865122677587757053651156909199648027682299919922714225492602438781568138454134853313308414613050863317414910922637002923616359985812486086117767293150921237181356316953360998833938497571261363378801483897300376447459986257290755234242239897661280385168100907615903903840788419728512309460690798119839826776839897578032967268672689775336271484580316446707653944124150814342187563164337637567513367202393065248852497141403697597445043660982802233460882321956143667578150703388825961188862002830493763716749030121322547254019866624751598309976669887289237209920992334645766549837015201912220151432853482970952483546567813299054160741028212660011745923241683860891244159775267417833990958974783729593494261205829639352041517047402363314303784860974475303992506519095409616457393569565845487819979614433614344313565679592375084682130030280381212796060346154382793434841824900874315885499892965431999045940300960509957350885218517444458366868425020079598273563168673247063367910145866803221160811884869210306860740821164903096639580672509116416802594747233931120284359541984398519181032145422099106029038828516172868273609967044558184151515435418275895457026987300439473007386377319943285084072077960145574718935335431367469235984270861200898516353191618429223418289284866599191928340714027652255523271072080472260759899108374671819895919050476007303152460967934622378593456841697014962272137133912450205491737630474533470803188609871156969751687901588689340376080061503132602666061605034491231741012843827870501833118345949902704851264016897747875547036457126110142710874751220574448084032156211013071370506108386272114666188102159829151585443143557888328891345996281027913986728946438375495760007529533829970462743606733535787273480299936940747707379798766931640319329239920799003850800337533592286826346278862386551769244207635400217032945759139124972267211552331095691421068139947731519784864327115642011004627939040846078965278872533789909241897853036606352216493660038713913516078834318718446426647848664566817090589510703468504361835534484583410838567084999839907782245743083219757628511436849180037621664796398269820860765077841477119807294443484245166154849615191942313557504818458672602065780455890032230652722301146108187018623236356025480398938018509262468330097608334679468639538598073040961430734861324978602539876691186043688587804424583256487716662853760369790734310731589908356951821778257283729081039986349493572528451493970614494809409902456214494788618494686619022627589712469748502257413990697107276897120288209704853818283394400127630771406871973559548316875240294537872668749680936470515019185137691060320130528840080527494663019742533382627383796067232630918291845255217568772249418751166114712620177178265460857267758964645343270631315507205355027211543481880765438750581034789639071090900771023850808475046116722968275719792178647180767664755782445781128275224498594435070763445864287274319000714280789470188242993409004623982416719335837982590542232217828094665982870618076664220029306936016703716670251236815871818082914826239977573642693855090259568760457208448144010400544964274616400789188732101927536441013653738570239806094188969442443839556848233009240794451130130921429735810254020722526293436412906481876101076114515550810976446187981308714549556417001216872463503667192926919119534968835244636480125254600655217701365770519103747729341565466605560186309989056027132812948007195352235086148194164384982173603897453710908734082940556701293730451805928659878843054055990828359472456503710491367027998839995648809293028407132107736838666703653153381164497154378236915689624499313709660952953877711271378311168554753868910794165792861459624910498915862299637501880382409142213606463836681108283480182708380232087951248674183007028147006875627346589798993603830335291555586121012901837708513935176825633934609359255720211313215371796088861044086922320718261937254442725776318365967373882405974042326285868169872644497217201044744629621443345600820953249899139621447650914562345295565963392841433989048695923002661456388731234415889725807239183843011203935508768885267987888762383774773606680694991161295221262721643954694423234925167178011342572954287029344096103844875234848510175661311655772904830797350137382837682055408656771757289754098128169559899809211928242087964518869482584245118979903954419832758223376228113302707696061755511313183507945067029891829246048199139446055465337411311624017183289423782116588675870466618251350905488273811001134946244794397161929817005529509989527193340951749659134375553271982340592305457543772325569616772609256648750423188032141094329540034558455675270410973509247534191814648666766625645211193049670908999385444027536658729285393652219537224318285806374873724142322599487992103842640585638727103248147412061409201116820655493088732459059032409196911067964241116180540676203483375036820326338212336792898491305514412920930411981397426675256245611597731491853785790660994938254497553083718164348564827271038099550543267880739972060745072397808634300469210811946909249097682030833450710521486696367481283610568220422357080155018586731928591494973412165140792059234571049224877018285833626527065695238720636577266795430915921454180238456602711953063181254842110721261944919048195599519797329459936263943427341458893165397800464140263695532590216486601795034866914726368271895299444239696610734002983086911426982496063840673019903990428461951356904262688109466107867279315405352995866669318141360444146840646434361602540328875689099380026803695615263360814835420445374732771147406122794136490793169987048478666150591583141293554271245201899798672729686678264028742711842029961113161866285284163153116936527320768483623804840398728714749358786355075055296128832566899024946335037724385808406038065385930840331387092522561307225810006853227702285693735267779098610720590319471309875921506254575701514728233603366021029643759899708728637357853732752281974338482228031284287499569350700580246655321329993198797657449275554696502035400183141315286326546836978764191800339231885472523444111519892567763260189819416185124089845598589618747792460620119767258947588606801070249665478564566779195758201997211284788148627754155333344040137074383185392787460525288928363979641881332589929543541665118648697198482138367672861559902069064662402450859462832112280108664070675630698104807205977839416079518904141953424834724059822003726013864689463567743229608519006831667389854225310473526357533442032140418415242197657884728772359753506076715768940126201114586446565257531379091415750850724758246452910924869364124196897571391380442062626373670184949571943267773473194945488083079278258468059747364286009898322249090672030087136893802382155982579038935983073624313790244089796388941959956365139737965402729548141316510118573739274577590392087970439162515688904908724449065958314674131754465479898205679677723720460458535864843871954925438313490089408750206282109442022494977616756079376266692292119376914701820003022651306969353245586150784826986599267161187268858149232668636824341909788605559116447787284722315969641220932386329841511526759324964324944281571080933651351609330516877394591618281308658216092108974238694229715186688352920840105730831109617111846803517509540205198236661457593654656227889922919671662613932115779602778847141699922778321068821192395365337044871286982439613292245282576990043368626336151552487378229521440508860581599426604553659154792794541594156831148565476442973394367727267547996316536584190515229311128278406757150563232144574240217808373261423411335527051503974004230818256534203280860184562003057083141698766394127812863927049224862546244693129611602528422836844556209313053056347388812052190103923808101366804804715092820756161912855674940249637979406904478322058068400703747213775696535951174333605546325462068296911202805755133017197961912179856998804051874007080392587387371417730438153771188011629157117402228199330362562738086636230820091525111414766309832608408400209363792917205856768926742931265887511728468822102444244046968279251460430813024161464083139132776720956366104644174520948707499852122869154875161761964969733477242176006869145403831913109519008804042293283812758682207509312775035951203399041942354728232409300791286197588115209490636196412712414280421859894301975799085926484330440090718913863494911341948722734903790588106321621139804246033017233984797671761914594977710766222157950735189683848163098866513442121802836484576092511389723960398921554699597561106713264518859828445924382780655430044031605264290048821369996621609277776914508046004628630931094392938102589986986516884432699377672861054472089446675059651405685162404557803476956515122268870284025618584487921066514893992795381847425144217347680963750547828722832209164230387944662891448942389197580655513342938947452403238274943557084233401656814893957155387615473466528705849504162715638298234828140722947400458551103834046369345264048592988701407777675169192282478838432401331408854586332671317008299901636586892428795855476525551726792336941377320030680712964195771432408299554717331469882199316245067009754852778804105123606826209271202134306376772240104801061265700413421846188539287399332764693230680934056238766535084168880426281588699476571111397826104918111891271134347480147546848166460750358930608405168427007426315149633906595085007684289469158670834847541229451719068367631061615043245283516776422259119249397524527562723672861123410470201797231769965802230271051403274348510028235729405445826553247789614332250131036841904770772005374598062460891905583499203441019292989883330300262901302747160896162638482200681398138946773921979986256684805246846984313939723329514023491851901475632434291000916154642554046786355929667336809121617019429836175197008540711849157914676459954069407446946526363674036424377208275342423592927299978172053848415950185220178428673469543513237404412117574705913686849555726935560898015935338835394144617320443410156823801428250906415227996787637333883269365741060396259062308139824122010310158292942079757008507742201755966802746023838987437708704223214705704282865582528004809243615141449132311718187356755939315346258968389661039287978329304766192066248538459356169561153149982373715830656068929942051932427310060973394749960359839213187956325919320693679096367956126480767368584749425588566636243177940577820090332604572374446130468346405764236603022284253630409340824408835768268301327437902014354134577083555550699111429519804054787976314349112173844320762399194147512080244982013863639994049280784353230067885775980730817789646106668878142311486888723723278922555181017195095099460203595069133459548888765870247960695886098245096573123030318238507362990890064833203751709702222285845874373300604602718846393749421780118375899451776857375919576027323379302476995790666446409978888353949133168524844936868446887010286208921729675971374061858253462531755935568023249583828503577823589220277314965744540799053977221295376651575691102789115437518539265148795847066304746469632006365518989771913376864368954113032972175252822910733260434300402738638788574125489802979617569630351387018170626057647133303346173778377168642981924895048438666271071154409697271269083198779763960362275917101913285851085736526170057312564749328907796779766532409867229671966510304362156585375191868579343287725254047467932909908191531533271473103148338175243784468446719090056626461643291682229396566266328180457214503784127940465351415220758345583724228116792066969345817259931125754308441518007923144720926576605192667502771990986642588236943404035603795668350755899618607622057236861442223540473775681500129436820922097581407905561497819960898969154260098679558532101078378230718561333148321978114387880710334168046704937318344171426809976492382632119547507868493209456106898434103361986194686950656796898940897609910554192912513682365009061928156562645801591562685127301955101554817633748635201169819978611941568888501310992955516764875861975127107680631797964828650408213366949546992309463964190320636057316182188140553726833842554382553545429981753120130199920949420647621119871416525095156024927902599050542003779161589985365381321363725349400679191776475003302016744749864208579752922994512301799187059838454350389231794801048813957591143174231066238969012920755818330161582684505584095802544249711002197854318109592480704656293887928382631333812381131149741063598406662557519013248932187844106056801754538994100511190722774827250828674389600890427743597660142531444563321029183802183631395283216174409893023240365103764676724828088887494142881818115954341814360658950756893045886384231324879010588047039118958558843874741374098107273439936663668954565987563749672465031897317166688356065417823397717224088886523367086322745066886514025846607808510184404339490375381382016578312717542203010265382629138489144472963030414546261698911553815317164851740295944379623841893797477965226581386319070698950091907420891402192401804506946653562845349496012558755909801117106657554050541599099584606371821350397704524001868874225454363139035248977831394646976946612803856968866056037679437697610088716823050432763379415029441575412340820243537794875898766477089550617872907842605519905313413555098532830481175300070520459450238937985852442608556973288236573621805041716669993828184052027278916236175056113691131237327777954366216683720532824887968308996822035602706504973198877864822914808998571725987454407082982853343106090914477484891663716289850293200858103751872014820082115352308242754003379445900433266175556421092647861537719998219487818626390736497794105282360812909683174555271418306380181139092156339823569339988713391838402530632459838504013846101144791706094828319309270109495110027535828310513759316178972597311461926485345273747744821833696524890076675290231752301513275311883764894553817091731538937083764858550019874168074158490759295823418994464882465201238366549586796205732759077550515045802276715123265998432219632866965773928245396643034329402597988599293579689844794501652812955857570800431567801853183781896657072711474485443430742872464168335804426371336458799379995095799525648785547420937183440153532623823557411760119153610940496878527603434417041572292543244537033109319349754790531642887880850753236089982896734164656614214005472433697579116764255500984965996643428816243387729662662403016842734615488901211949862503055639412813327050946958060531069699202514962845933280174523184131413345702751944609166339432876787274210666942901739167702835373369772975259891283717273983231503978395263072998911228961611062969006991418024496430725785086116130648624842923909952554187803704007381704305198733203126418951749023293052446517477183551320191881705441327857456984173497740774179874254423130877482279038735083462842263295518873489303815061855376327009946750364260075556428373572382355569751001435932983440772627505900046870353565877566029261206772465526552875537445819443228882439751301018679193896726877624756256729837107489929386316151204252329844070524663103539617797789826078114825820471571286908008190297534832364350674306505920688193087146388624862121445155977256219226771533294680335480261567543604828013034355713100801086836727946293629500447469882185194679814717107960169362945357953179336457516827750857457293627490013344796356806169720691688511142214144332448023401057159903426819069618608784998998120050097571419071175229633325985655672529613151929088048216495463006944724018899691403796873794010589765695686197806788610004284382825692713630647530010370496685510215104671443283153247619999269205544210881536222083036143669629339398558511281190917757578817669046172707502115087637864382443335349635348629717770166421895144115934310853675030951439043418184971899485100638935406207921973253477155847993434932033564503492779320167554215366919960153078624055116429407722525934048701116591861312763201009754338480924046648858463844563562572372459235947440479489305980246773680160545767872519594581668621356289708947674226858473189177957838566415514315000286777773905975678919618994547947801920661459548629680898559158495421763213996729110389196610758967273415944362611979506270189387149379972601846047052137825885924865355238679510790510081258458325564677287478774476924016854672177061891136186462310367482572487921955185975000151330616492037737827881259916882872130843472545451200268966688519501294519591512085380612996666677238806945719604990102799548919304248775884948132061920591508993303161990309074982738142547924711629964008872800778303162325133620153071466694983060156806848268853058297872621546053145686237179421363347800612068775311453808464803235029054051632451402187163177153338052970113137949019332221513018468651539951361419084280467052386958790450596354816493922910608760108610731395216583443600985744507390604538297579047498156148553643184040905763633411890329358780326623852093688123772662894905903527237009260013633547338071225713424523373521592634480527219686295131566654805370431617426971228088635616740896941699888477768392642144008204523427588430271368912395889434994263406122990690215723075755086836792715955788285087111015756274063823921546102822654120313451753552655353606504253426877129387746663643559160158403681680351139021115987314890910364806151518588321944992042917498451128120904123655059955758718916685707622121945070946971410452872111998255920519333593075184277024073112030253475124542269233328903363533578834684118874424967647290410035396662483502463675892670922189393076218946815643969497153577192674109548084997198688247812751826005982671445196732982800539585077608200796510912566914870061945381817342976206317919005822085858858430612446927046190104027512086359110883191537801206650178792155371207857933547319289049416630949524568326855994474140357457885163615279286631655265965400787730339083686785332932225359398314206717812270658325284688314783932083253308807497453052909822303113886207418547536794578532361976439512937708938518153406643405126867767088333166534143253256933623770576283303733896868362061264715442766729497004030748620072838862767720442791013624722747870456693638539052614088299957973720118172545417146045090871257907778848074212193044974453801351932893442876301232146997286651124822307042224781602289784163982476621650203147062478142162297808300033417405156780263132006919104383059413046651296231187363533727990409901608640933447922847554106717458254272040277369069843169827931605755357635813797692678802654932030345378015111039746591411760955563189851270207954616401850828377895571455940381640162618778605400891181191079713899017834735656612988421676034722715858772986761635546671536247798321187715690208961534691239987548448754306720445149688990473081637993218584043033811145197351834040584104760480922096724057871106344373162727638605232521969445054520120022456714135009760709530018588012609448188982783708887295359348361846494427049467049173820870823946143987054744685901310152297397248688112232905322437909688379184371827420830229377166150546674173906106884522495846201399252193760584381477064290483572051869607033025273076167854048298144502210752009876261634388426925840419532115866871652169648048421036861855560108309589200981293799114470284735854266504029627515451748340326495759525457307503365972203550175385977961413766912103122955576882489552626143172814620415205699546498231843254274254641229266594602550629085620546856278117784543983946855556967520202599328931112242772449473012641994474736969005136381966816315822459025652600406509119706195184258858416293004071271845167854300312573701850189134004606231444247092299128706407170371835101183726364846113246214614344005943928309487169509533732873382572389488318052268547534368072731389052293210652057915486041697605334098549548718889308934468957218976909312336439215201205978376104907332850542511026251400703411567297660375584437051468168270287595190332503971795977881202864067609588814928694180974816391981049682885513873941376264378429114394502335358657519808344618790212303141464066501096385221834900884147363332985950584018281717378653104929185699868420124061901910222440627510431432375224657749216212869298014492978672822548767889704754000876430534461227826451297388153155317921577268815490344954844269107570818550630942619408658622486595011716248376665846942838961464270701882065141076417919914377129591053854472638077314211884136496622413537364517469179130814849472938347906855537919512329824833142127812990139464350361575752387127392818954309375959515364685469041684843333192318622442626462059115463665977799696623716947865906012162628769150112639524287362878994396799830834982942250328893362953359596317387662787038809417656041699397021354923469369766215247661383151158509436767907917333188098821479770023201024160635001966179070149618906492130840981495482676704846798070458038064168346669787150322157820732899337020727586051213484305745596557437998223853714321306261311348435863153401791634392872535095550347424362494494710018303618474828345141667077400329182750370241786095762878881511315040280349016237943259571360175273787200693229860261682272298516098893337542701852606298693215115969618385082865677009629929779338536870371021724582899911336011902697972805781506138386684760655850556352154685728714779079395903928040515988470702470201371784206152989017943636542520618545565945997437057939267362034278430187856791743741523200248543719766568225744037186205080061329255294554065422287918285563177861801280955515622938792124228503407559314282224411746921414313704189221709587513828176879745591674385396053168288112940667340202146833770179430316166401964333572112171018398628462017864683970241951502715745899499739461058950032212309418877137661035381826860488556104325034569737119916626372192458987663682949950601117513335592037984417314200552250176256927192219395130961900601311438134353680049982510795555722219179866353022269652086360536510380069412475887105593359944550728047020093916995296821379922746326033060575656681422414344871996113022341258159052907987613200611811339098164741993181552317355912634651675137178922383267347861048562708391540818362468436496620205202579699289994016560847931877096003431586325968649883508960412426001855358064321787082762808393426253758334861116919619285769110886073814722384748065416601908118067226779837762116633707508866894614547697859111224164134282472716374343975537725370919882244954182075575600704223205741811268663559388296905637674153352350245720465157416057589774267523154449571215430754766760958294967980880709629714190490298719700612756442205878406152291350576066423081724085346612458004210519639041102886160185316051230028564909683524353053882443532574689317825060027283671145578577697240239541636121384395200506320378069117762653077656566764936621596773743475605076230474797752879847783211867071375534636462552715614939410058620726935638734403840234628238807410235185151230273428534094070267634785702327368639727074373496182398076703932657921184600193845227913110549982399618461992707075527190508118791217572251522820454324761060737003546113031616691816636309959028910222750783735405926330356936876651265137905223517332048486775605526004037562926117374505446064387101057346798218837300070480625732199060792784942471319404285764732031000598786017890922227845806436511610690834805664822413613540405878948101692330234594996413990006611878047756349817831507293206822944766359860267979987113838630164267866906866485466368180650584160367228064278934539077525084216489425320409106918646238808633811574973472062071142958268133293598977837664833024688977192881426987646202668031234765547386713989994695044879130454988479836615781735074414808170355198421167682813043122160821991752470653595873767005377027513576552775486570865071950754026257246284822450891078374712822311601170760439108660273192982805871921631701474975123427056917007979794490357341818739323765463385413601059560344126861804370381086482857109911982876520737458253963312863098974050216536383095823474255864535697132495100352823684802544891919799810049448613598843928039384185986966801240918635146040948816070097909133059774502203380303333316111309099277273356057526110725307279301370299849942566423626445664048491631438260851704387787459780199432894149305551797930363114313233518538750315561892229559597325599006377398147623936012836666712509866826510018597766341208519142624636894939177363107078089193620525910360835937537623862387081763446458558512470356321611560473747301994017094943217908384245649965344676317312182077809602848761647011049898973274773504520144607314738173232434897044661401370497508699798092966092248986240588895915344355969871862523230487756263534791460550647207218402892644538011215081614643737258311048853020052314789283230257867340135448724494984032196522539316131335364225629840521636217873172290417287955388806434773980257550918747304863972186287580928250239484854953866219202348794488467003463110135906921575320836667994388213344435869032433310631802510550468366628334479217212816374205180657892086289437434164717821667422220168064393672485621487853922379690485015832015200877021239409015771912152019286433816995920727110343476382793413968344364188697262489007903670874987006878960136322846348597284920334696908398371201529179106706186983567078482465063373336120563263720068972410438659786888023451120248013953815638029007177131989315694373644494085063845156517121923611263800778563579723608911119562352470308149181818384084896670855784133082310319957459141272349944645788735309351211114486505773883433822976923036352506884705501160648580866135061598836790081921110469439135262398086054046645311699040933910971584495136830391461392449986662644062615144579571720863834249395223938654129915435407134108062484644563928047346272236083390035401060552779180614271911106210242670260307617150293399194446271521780373320573471351184261359757076489852672445734079454007114110898117952347100571768772401027831793577846925812870980606156945654985361669433869612569997712664639336065439991879171928466877009948353946355293597379483046590121968188775568532306722858372427362264341709960289628122594915390042330885823086723777170474562488333498964947653563233673174084828453041581485693073178588161566504587276929415865282779483635862233676422840672280091579086008619434610684401753946886572550253800661044888645202393696700498160510433717454511578830056468165920508355148465844615755197002790751459218460070518333314103966856997683762830124401022643236031857120000671380592820909479293382674175428407883645766407269492597344978761296597816211325153783061825087725145489406385295898212570767752942458130133209093250851844433153163035328015196236322084149912223155988245868383714136182222027957100784341056827511681224538419901827200306134080132323096922208788110119840471539096503974941388514801521869521016938495272737667089786255457406736050996069126402439423642226883775777356524850542570868354714541264606814888873279281435048504791386281383708336259256583423680939078412966031999532833317975899061240884793637914531834444401244421230542172283234016848704783136708686559126076206910840309416351087433150237904036981454499942595249639397510653284434434631055114646585463809799346119087420821261598850612926510127968593289938661481415166220461441837014070926103076961794441813982185131343160834507912372749041559935228983033197568067700094022090390312183078956550130289478493386851448842903265872013193414266525545706065700387002862255963722615546293155268316943081117608997098614017153170339158689727945888906342487696756374890034145383352333989753858567667980817846043320830442675096348596665529465363910586419670711813010131272025661302345437558387200046859986082612454969641611990302353221016732221690101345683427214619018641278687993416564185309560453718619685926568565693555614272365619569849270452802999857438446705798215190505994772049385240585304257830071412693384285364868424584226679020593884702809883712770114251200730221388314642326020514947622990203917114132198908588516234928027073734801272377047203236099387919559717725929410428305470255504065686610634157913113020779378340165020763318707752660648154512883606368302752728810535246871258297699004432788517889533304115967476455843136219286229735540312001125668052305226920494151838059744099412857972487857232727155665192888544598781738301990883043282202698002157640028116344291963598235430099252685120087878432270749041200784473147993414884639952760116325602500843803006475386140240864426177606100386515064754672909345013903365603420860279727419655466692121683022177911128552790141148384355591534914177060765569972405425707222684903798644904800094469137710771687935414123246880108352934749290266969065071501295621295298953997803747543986349479625813067102683829500894245788988809516092880670537306564463166129414947954039146694521961273796350450785035708190524402471108221337227236724276418482060089038269796070372095408916159290328781051467819013834191006741014385932990576643612170835294786462182070885532819022530123640356400805969437376125285975237202878777965222857082965705323968172775413613149946916559555322900162614600087411341004783524694420089237420216005353811178321089734910772340399799287321664930054299915911376155453013579943898758392829027523720791138287867505823480974148147042107338763658592410317321103401788173878948135511110856849270264430471877352486508574430312129240033278172578064321841312467939233380157065309022802135469763202516201414202511999585717155103856379915292401075066678711384154278208824137383239902458442456201198891334617773550473173948381134594921786524330802399773555953496598058475154042901518735240289966711880385460108403135536819088415750690155110264812355681538508852097598866783652798279922716753006238397084371524252301295226461812595562197951143701300681081296885680593769977850639921041488837643367895197370932474002300742428615950783518814228885827364962506411854047957860915149170502690489145256221030447450429444553478760498989891398500744130168132640367693505296277937429807548488165031358209356298481811973195221937447664513993326506034787307597042011139780546605321018767206748338655435036022051237274085782637259551110179897118439406410637547727607418986214155766854331960563285488095811266841975060888173273948376203270844314649575069091975031975829931768141874906797808890369240763755162919853461491594944339090737649994831954469104684056703503338281135591660051079925794184640358254788625477605643688797158928247949940482004013493550608614633263247272779486480261639751401411808570363230537573075114583249043332692969310194986750504046834756955948568222371922449119997144951956653569115390998255424570077462133391152432562302098260985090294365452892128440191888147529086285354250005476720605967065673309880910494744671909186940294434112160168208510483765263358765053658402129869282336781234909519181507782708719681157671040439571802461318364503658986843762683185581353157876502634773945524204405115830206636993848598841656691762595658304459683065348042211742651682754636857795732551971850629087117634962268820979603951801444523999924593831361716045958069762950923739886244725705899822134432998802323553869410767882872223927490039292971545719087886339766339300986896895917966909930904337936205408357504031226861368340002776767868244286849064273580607276883758686862203564965617756555164559324159398417179766304557679513809113417698601655697588282588313322334479758810350199739052434691630582312379634546006775851976819486573272831823450157598884351526790819374619699679454859516186880032356437467997072241817565606746601346351273341784186228406385273294395443500497907582219450956877185956800082817854738067851605721129207478755614778653342129754085018306557216650560142435462788741216571172004599365832753340797509137993678950727034059781792712367186891857475338240630528348888525397825511876710820133964078671707356335750508499632665706982791998582201527640147239687690774033381108673741181907957965428587166115893116605993496287112246845877511358915245823750939978925334875100584071469741114577355588554527924266869776118902357626644476699860197375811763810568013451405030145660990789725464719828752950885719284390527378192525241133020362865870029895611998680581620847700012576954836918324582356013337822285911073878001898784252954772206541739353080934023527467927938998824767949022617265061172089942915691552703917380117269166427034890976719280801651364084644412857495400717922361513011345636939508639848714867533987744017387142620305896987313155610592020275448984162528226817623915286880423967502538793679044014355768894194831869704583207922125972408594521837340682382957611833166996563937736038171315553748965611103798899133676258741904368269566214653434463312005036077471840464242424934327661179818315642246975956615241424642716487431292212655286553605411197910781602588529000172519175185759520892494005709220601627934996562212380793287795907700423091518103186061653999304592919245863973643125556068730717098438815777859891487456106070202788317352709263145330104290182286194994753180385138383815942974114846568816146969080064419659082341199029551610561775125768802498696844175660969306834392527120602054570370736886137166213942115519395536449719634148224621350374180099892761487712693267459635401168515159009725814966189081701529512150188736468218981280492886596722849763385707379200348590906912660639469651223158162760209730322383874056720313348954598150166774229700000230912122235968372304341309431857831955506564269242118911156637354647111265101415251362942895157641102238738600339565959343977426459452979349844489264338042527501237492185579281689763537732202466508561549729380989330555264451379008869130324232926017293794383925383619913268472952343507690640704478546618815870906822594158828104511841951772235151966733639204008160124000588415946839359741010655821618024622058407067133067399783882012859574778128700580703322175681739915006944765267032882985566981603019170563303512682119753610883332473145918189588710763639640832758539518306622829860922703153661351697851024111467370347318145184264868359675629449113211096291489031240569637935446490597272776736654865583987033053247345203397420224500830732110157393537135718991443838028105576353024040946616188306385640624651216512116924259682247656302666022402779717950885144903152696726498821673502575725614935678817170311354913433081626879278795384740222909228263781743717448206636518829561926004490727967592160303436427144962311744632191481468280231798476448818412001115110084679414929984733220713381411469361718836469602957064161413902668205956773217444838768071721155527421986035544109523062561824446241412263512816907024406143421668934254911708949849286350173005251507815020998054755941180112832273818770054439877067234594440731517955436511576319441773240753852326394784958122270714065999689986086110407694439297505029621456608858677634527684864523567325472364590897819989621745166276346007983365224409438062992163885180785943211849629562121537828445476307598010868815596374682224565232744319012888606509515404077734244735263848732916637027841066382242824775851063152287615137106804599255907384120028925483905002912706872585653513019109628101663613915053805600092483834688314372951716586939076220270597797744847326019771683282965514239837546194943549221195112022682215181342902560344421815943134351304885715013790915532414994797060606228842857787715296472525306111622461959501165098438031296997650204943035086883852063293529187175176108461200285242304521318550632440768871598166996908088065863710754184329361736856191711138399646624988869560137016747421001140905202608068552861723008998019134203785938939582032728153149509647056320658973253899474596339111002172305717478567809267090588162804170159388887659083585485863476400829158266330079427264514928765559581152285712127923747432361551175715950456018335950827761545741907565342531510120602263384317190140156704543331789026825359682604106725059001953062895985102510994235965103235347037876851578858373818583985990829455578293334862036532196886357068351913194776471534771427592164343733803080321547097890754566379806144723592451506837189735609023354380915019110682072985193763430214628935432028592535636591756325254552021235014458798518392094709387901033353995165565283456585436369851838108017466550282880934713479682895916614427735609392064000572163984080379262362393124359862653905685598970544494281323584498953174597928424246315014030768220904633862117514319838282714001351595470219721491999300666656263176535942683250149254261871529239088699925052378660128539657193383376131905986731735235163689913018522142224901076366604809879768453330827936146000340511549897820801224032089121813655274225457710244873422970584709580641194712416994561552299969499005603429348566302640545119107462488566744158292856961462527900789290533844518065938079490135988367668331475004484862804381387391023200962748576107911614947704747107570740224308765633825418148257608853251493338825723512840628809030683697074667733405775669138498880166211858430319765909357565863012751933550592316110638314606899173555999831008720088491200141493211541738933946651914810299288378614511518300951888350141065083955908948537828969800573423420625927435833494283157893256250009133463011525000671544750740122029515721928155583191257577799851796965165387773806305911109836877211226360984982195786151634885972467445357395666884151584907452146960442023005801950847062593441705479790133197945281405107941999981406987282121563080337282057425675817742897842563444973703964081053935795478663184670947421351399024245004177755160044260896981031762009514341948962242890079452792214793302453736864557827373288313851876191011403703638535603113801510575813813786965005381812259503986678252535905066024122276485466208785580213567917434443453931425119294647522706320401553759734432037901972554118509490421569383763142535643987921866666847496578450883015278138023914143407837088686968319314984997419762907378076491999557809752659296912429014443257620477942427729830709868615752076243361658800744809554583701065081491642818604555749124180329423036319412635591520288675487730664497304831000640524149332852647947239969301831904195218893381031557563249632331174533877278168954339846560013062517108164650698119085860439630323103736139813555006203643374226754394366516332761929778498927566518165224190583975497027221662437476757599724332583813925218040645625529246010681963644417230913360762243050196690281096968393641148980713208206758887626654776666946280705264077915704185673689570182442356501643692201915524113219743963815252830850972171243933185486356319433654698834503750847297749634247123139191180115404540474637805482319901773616250273037795397020387287759791611168556866777332269644689619104748494951993476543350250170801879399313382724922926848650342507110673542689512510241039347268880015337686827301035128276587294281404318381825171459004170370709928334174733463521318678539853535096378041858637377832193955932162149524656065322798139640699395959496407101587284595722710943371600093878283816598542619316847780187234889505714290800442389510663238517910374973823993176013047489605643582220804575541153780932770311705473823968475636181047471454882102518989369875396317138670299735852960668676056851114863810741511518613621825764312144878802805354439380605208306140578055228144533629223903480585418581485637080943372104396297781950857693867510482371235292443494265261656184223830675826161482970560669935065937341880324594767748769087697499259003484407664612942881037869768435498036899412940659049008120464593728906126508956002728398838168019307237013577815332440426970135404843823350931143053288187078359340129764954367554549456756318828646524102950776072687302603501747374836985581675527483503025419615242839253553657300090139040804813362584665721412099872443175870876439680199128364148803689836623014430241190002630928717641921476802549685319004256268551041730998580338657597867413954789551079417974111393665952640658057198913606832224448942610410831873573272542501792185143696703395100478817377338802401221180499638013425972612129657532717882018312897194116285260689146808179089680996567739420872421555157237845399569510660443869801125098633872363983828702142042818505767195767792125200764031915099468456149212163651256474649582024852214788538355825390103009250361399616475228140418862710101218221588228452371293269843702968926024121566181301486853592200986199798469137367358495245074030577035125053845955483103373708869458235612028485001267580250706095962711607269265764831259309476682028621128860206212875331100332895662573783041804392724820746519381328703971851015954452543840297804240898433708688458426785160306255429774428664538418249648953967432646219418672501575037596546936323008760944274624479267860612132751964213446150499372075315570005721250228461453997543158015044377530741240248390482476982366804041558746314389810145067029047441127516214417177494458814926625283884906989557199106263933213010793631557172782261758296674133389922453751239156876091670240303828779111531472617108072497780077361976714769026038560930453599088952080639028054768590199643375693355243375622481012255788382672700232627644369997519335415741907608942774704777308518970946665449571449509195280142464886293396998158545668983867636138175176035592119493175686097208432603030605408208359535765243832445434802299100825648029804111965533056022257575430332819361794461442764305730782155516413504131744660266026671015102902846254405578153128426259708308451820510452557438318598727497284638891740400400753531297619537292589279394585249130348047618834079924599331737313026148511957091713130649726617047619950684801080815890662005938679840580857891226066984134440539830615510366263862915673368224151985012777364287072909070118887307394293692433110085292134720498825007547090475877338721045071257538498077381431721913388169151500867204681749644667199558646641816565298232111574375951167251754683801970996551955891158620765442203802865380243259250993758217208746896273674724806680475608009155457933336793398734674694642800959978000152014758862232856451031352298413991020324313018481494678923870855152694238916852386163067243974506574454082516238836827665613334245926560957020080846481412011889111714482766442074951172135665315542719315341409379357744730645188008598258983330448438806119981556966119329225475527342683362813490076823899289154153465634885000048619237499888094007749488863956249117664656108219719625186163213332754171363015357453668716937471158632716758003443238161834444890218643372506155194671701295653668742412761065405449926175647900411230707996887282548498683471916128073985012848129606935833746673933387765346053951156876136940091728211513243711216187413378718427594002028252402944691000044254519265874291333143131909408432742114956388993004925481573327762586305741002029731262825495205177117472797276800414668005311326277189567341660276228793266273327787203077375539249558618807989869454631338221805946128267981953870101071168034131186976868048461562155844202679497489677356314039434130843029821733110162992026217883332164145277347404048945799595301121668288916167419620491113285921026511734249287205831519180638183830009628496292981319077164295610216437466194996058595400263104317516865244834286972495532234815246879832755123914402765397610217135660266547389760726596664546320617659971190392703539713732360033665252273334030151737558133679254116983823753690908291031376281326754492504234489108533298881166955992219649037899775691976907780627351104120807535434635919861866231215531555243390513563649071973763336866111934189361102170650485502839137614759183191757284833441239489395683259742224308847574702880644111413948170799739626166158212681748449754454768916870953335991232206157974300137159936980499105808388804791981749632171212525052650325163472305852364338046875663814064670789536261611095218526717200440634715656105632867345586085116037347186344369624327742583484789747067715854878259282952599385964348584259970438178185524991159381027675525760949199802405443543199132466429644624840781923242573631172205256391009035567935676413555926249452649761020713423927929023489332143984321348287009974119652641916725474121991973292768391606469293881667860500153951249406276047437790332628906275881901480086078809860045527819701230606865632754476136789347687988227061473542518156592848916650517732057971793354944515267384028426378705233140916225631879778263060065160189582164135081261506763675675853866302512024086620627769359358378468707337568316321396938727134658647273465296451417199640356901943044988366700923639330141363085097487636649988447528822141189527508123423636583334326136002722818509414238535260320262485843755432543872407045413963151983528690304405037560068006343783914816300473120726355594927482660752785482248295624846826838529139334827347071648501079470106703365632157380460522611204866801048001852432337739269140852767259798273967221054537407849933313474527187311173747822884195726277321180200091629796191661599135682771383724699738414625459769493688768894024272915041978026576235572728717113056813333634533638545083972951927086204655135643653475962333385485377414454745131460359288834217871655836727935947053929868769164184392537317223805720254490322388436911124400680348681474027068561005906923952645964570236266131526949904068159219587822501682289361214308557424635712526778500599753092816492614481609097114934823851486749289954916800557550881382482318745235281108818232611307706528344863080590914885659598628218594746780150687441897831048590107927741557492033418891325840849215467798594864757009376920502245963430250636517698649726249120564025016955427891341663350240078301112482629843368457012002558730676186585533571484935847321696474734522326789000867650399424433481121461676684166176067951251781609104972379709865810663593071474767633160453345350904313498006465125187835088831334042650964818470918034064943401223453421748108618795562490784230990885919379010420014493965609745539744252045465285145196646848931781542226379104005447403338864347728556367261765943048057405640035889723190965361177620934992834473982294136097406030471177028741412843488735608155185005865338655777357704686624652757267934242111803795189426922322223592403147175085197793806337752888457170376343459197450680723400284295710834682134608970933674629644460046861399650740965340353281745672338122300645554904030411683152799569793917627876503846283216463614990912889001584644694527560956694521481644513464055711577145015540810615547575163838794717525529415774631722212632966038765919302008684783444814700489752841283574938982353186148372720877805600864421078760389828010327778304252961008214156260006862668288979971713321566239066205711791000673619581570026296309601480522001479497270737358136856389846183689198215366188607384936801412488142964903465560545080614778933554882767421035884085701736725869064336763028149794242159069870772279795511549826160555713340741163346549717006562682918748748823242969120698519686085343860964664628016339424663023873721853883097704649695572818063169330027927319239958800013035836433184414745699403397426333438056893187531387168539958529715750866849464229737685710986204305596084060070708578349127041441418779382806805667063939458935291164968229565976117603990683187626163907237941931033868107105124861658933485351274930013415120697580927055167378185856249116606436202057895836168123372596695832955530296038796041359906436006418957915435137867432409766042736987910597305171516480989381730309799588495212014823511910905630058810296953527063396527130803365747625619692861781266932484451074723346302879768256297607620556614060097432241177957317505153576190948405901594527293029574609119055221336107993209623882434293584542405926885016943375385093017654552178237460961574377560343964216331417506051337721268402643589357785078919831196324138119280092152173927738907892216916056625642790330621771691175318038384037750019823045656887598602924811997953288204767586225528852899759849741792594925978177331778340016140478351594550310502416406730965228392651893396857992127417911955773267707075104920206968236941901493848371083786909746842086337559649549085814958188287910068421847934579738296243134714584007025778530829140603822561456827492033736621381151095036866211386616361887651278008170655120813675552176507733532154518648349611159704124076323811402862216901791440666502140721014373218982219280800641070165668332506894032037922445422526046680817011848100700915084707700440612418969102473924710579086999299557228538409752167016474858911670275026277859674948039316043778763432452050469011715429947732260102655961926883520466772527165396255418808345693634948097000235163067809218754594468278880992454454526121368626770488673133117711314443657189707891719225646012642505963109073022458065696921953092256802268186456743149507081818364041425967088420536292800824067779895482699523699599608993822231779762716037630380962060724224549662720767324999519273131745606133970849930830398032816853376345032800448967342266841027541350692160997273231313159688969216718089889792064832029424320437119540519659418845817027009306796691315071325615722996424439314321404120976718807367548125924480944065088551518319361836755618755310317000564908455140733112547268225260792403956872062364102505512113859288429170260996562728403227043198027098577862821222844697182179402096013472298248527148027741642165378388083889721431779777854926764894007628404097687137405890247371531417847280039362558880917869265435177681912176664062290602464406798298784205962110469217800803296547831101028777468624305969475942278472116685851728626160826986306586856679555849464527799333088838814671126476670669531989641636038417566132995728640850111516257695224461881934976867396349334260661516905073449474626063367313698765690654653033733960195938024513536610179927109083161426128155508621569190496096864757525448626005782899673605204652025375843721388623512044329430644827132864361388434624398169720310238557893710589765626851497528122425696103407324574009124144623864235591980298649793457597773903582446441208527076975613900347237244808001087369692312091929789544763042514296402950407733327424018538315660929543509588650208799385985903571173571946288314659146340782511869502166365176852992476462724378654802260046798094095936834255837935796892519677158180260237617906794828099652038954694537561434133911663077417428735692267988246910137354350276160537812551607508573796190579037547778582351092113034011836093099744817121317798755953349490721477157320129458985811068989338248099557474658402859421592021802493424967066319125948875815700012371309845729861494603170291410689886918044005623547644821795923156138230799261240959180779129606253193323717313927995179412873898888022043653810394045848229496045318625356035885714935271377957132680152605336138361745788348053670482531567428613643575807979678653149529914638534870355292490018540301634484631337203321843992628586410938553485744155938311732899307170978665095391997083748098630988107318347559666132631947923732754522210599602590807464298086462050567978224865315936612926965484042990290968272285756926801140174618575924703554157981624913714374333703361695950222927507328020538024002344108446262289888944792626969794753040618253833761651150860389764016202680492264547365019828037322215491421367044132746153148617028654764844756076630586084745590422573740430767283155460077783990076617861290374225620653880774920291722824486363103282630620380307036315197770321803921935242201465437150085656660591002212737903508603454498182457300635286260666772889948186128030529296685864891554850313173891667743068176960091694522637582607624210195784981961929979094918363885147187733346159637031981888684823123500554393385830728142601363352555285037577046473737799746247130486169500723180133848859513128269223803260545967616297242502161658508083609943795993797205303753294191148043222183365604773120549754827187893948705380499179049935041978522260197356934164404019864662604455851052946870554341620997249242291729800966853858690651299968737120815618803746874599465397482717284028715568911146599458243975968890883973220059499247130934903754454686712229402630105531311268017131011522000205452706035800900343344886482705649097104036706063937794424057152417571721899967349072922719108530337110496951575479451325999426583908803441509811167397032578197819865448052600053561975457662619484685350055964126047344277471292296874089919052657486320433086502795698930589806382211614761476743437717487844718678333474955252539813274228967001022856168234685221029056692550891386744297004855726355012583423767220368546662788455484576732454951970104202257780175187367484999186872559107798921889958222480385080005064047412909725776885613944682840084339612294404251336491159604203562638706783292406571105880743705373967559742023709178038347178807283875611570785873823122740605343248295920187285496391356884172627182359919508124423565302667791237351873969713255091502459417474934722200994870285522079356131472984671065089287006528973633597069823324641587098208423803461078212445175540298886988142315614859466760861171676090350330819270408531342060715000290619538890563197794770117762497087998675571243302617137698481699325798357956909832008938693621562527948863550628932503637997112684549377146507286865798570321819253586560207133122018384978111926453963221202433512376274212511970034301997959800646407093107533219666066879023398454543868540154568898408600931893309759424839117708899922790888089038195794064672465992237980180656417815062599546521276645614841247054111238975488992900444223597595360149572792299589823496294868772786129072057766007148340141433265718001013170248261882147099106348012682973805941421899302607299262219442883792750340935428604890468703431902767011085159323235002991399345964065765155386010735013330025097164702310198735129707635995422859189641610936916814351414141764549431582227779854040196022677284889580550029161514521151476199617838490627026294064588669456054531646243168269043996714389310651466431692133902600964501281312025836734187831533250400582396641418850492982266395566076806861546931261475476675436675410058923447554203198265089182588432727142116632302201548400832311742988899026559972940052061690385036924346377785368200603819220228994699279233085351010076456564828061838435792718695836348585838527890731093964578229517653715419827823224130609783850148491148797076908159447112073567020833819462336898269402955612981367821474301689818462725506973622968423213450737234533551937039751703727148220706622352334111922454103230766340109463527374619258429233909875421727504135514517418322113347424860765561222317741236140031051508539182723046522601957336531710273602343916398574984775208687625863990949290504432240466209879477527591531797150774382201939100819830178220111220660483782408219031422142151942481977975384053982084025497881907647720875260434547713621774670892888765790284167063158104585445430869339698346173074873770182644565176633776077057486916182452162419714173776900494655896563128037476130413595738523165826146663733984520082760687462120920697080457144766901443957124068170103564135021149540926908454549939326616690303494902205553309053735882667901552667957743174080700254691231758440476953223665729294858810967319228065518419431139042734864314528542230947277087710190547800502671655523365197782373997562101825592538450856143032602528052052602015126340582854330345388007021575133215662952660405247261083475097406530899872894484635309779827441179726290961313129949977235350013946252033529514785168305789254895692528381933732642441918164258380299386922204938296306555556632139626132976028389135976599756072244115632446999526777878878870405774891041394549250124135468952242325098760310482373394046290497719883381138974408706710243582719937861926316549124357097604916141065140183571293208339387278968944600566626731379331555986746192656464664279595255931677632084000542995146244700652336431921870453589420275748805381124990290132907338761507920464995865383645162329995262274669255592060256884608819362245727843586037052600615848277936105288014273560649304950035348513617439826009970004130726360975866143392782734495989255886512441651467099753220781763996118800410587569380970816442872186023471873788216316024068717791373828049930829107282389511079412998452691679200497693849944607450131449852186980405816726973711249164192258464220251233381104781679838905957969860655446425671165462781681572367962840208801130441255565328633939247661308818909080300055515959447988573024029379821614206650393116070402016050887434840979142227059935562431344046924656936627718493725610951564048970219704663502862233162988071593504616639658837624781792642795609939862507263403258500671176846262078541949554937178558126253088112197690710548662992056372255523371277898458928463998230787859434085371263571361090191470021730244870494410856786634424803580409149807051762173382098739669726025824330384686399265841372159606012729299877912394745563771653556898111389552610482986034372537737039582089052331860784960920195659137017007292390928383418902197906112627958789954435071393257156536905906262013450675717635015949688069320167668529666511668427529832529509803478113328759677795717598479761033337258598753716295397279012695281735703637766995751447071313241862798412551267986920929171696099149915061087434963329434060003144253821156692187983053144354699362455133642729511711949516308294547648127063125216428019855475228112222747879666804213567445150164564672309257386610826802223532702323226228888195690721969413451296654820165029480933891564562388525696177190486448966652140649150711635254290374415888917814487610915444677877010086122538805574850964408175248450129285636505561487739386071610378838520945073309436120598640023539485243975721545828510753331628703043090624985785420691824109842875518709854379262208965074426119358917840728191995837074680929555294389015472196785241204276579679052122183906675500922727940116152390847428361444574506676458867424665816704385697865335256637987832769152696811631755266565943423096748306594189720986214214823323751812514895583036196720932411940762326339553351605734970098023833369054093917184056635859502313975798331773756276884490836084895205047279394533741499773509440905029116728095200982560530313542225741555035291565290780771237533850883714964762693019430650877259126688959096974222290863154795318228420089807533471637519784654908879565771682906617361432253354954690283009963183870825063403157821372424463543681487446004198890051998432898297934002859670485002668849222859919113321429247451069000866373428586434920738219164728230432602254934521031921569313205405434531751257653268065067630049630739671260809783663396172985897587009159020630646190842882335885673542029441865647607368281688227440754571145981616827452066949806558925927313788165735844577317469979441684725982587423720748966779426029650862398167397343232970678760963315557458671607220769778907060198327524321795888774900282125926130485260060828343833537910955094607151353671963330504546562110140118786723590432043187511591111364981379945661827766779663541459713849099459838174699115632152879336297325214292593877298432184648849464856167125058501246903819299112318703069579874832658469610207838595444212986748660593900842378318158915642657975785052498670914643094225632663361279455769020472724628078852640816094847852178142349494741515473292742562298811554464559015234559345863989111136858701029266368159875714845364963020439030662424757730155045318686291298728384628028839342637034614348493010130252297225931007203821327956241612641860226200428899702514322010011648362182431717130705207534470366107602225639781169850791828713025574951465918570007645281399868371155855724993775584463859182573278939452206588418095123768647344705037726127052951731340719476278398624970033787473448645281757789978311501234340259280232731966491441560446013818926122906823204875456867050428369695812409496595125076156467823106765927879014176315531867254207212525625499629912595823092249993507170116835020542730955666486798806922182353369097745401104530208972516873488798265636474959684991688088321560101900452390568249375671430247078624758985132124710604916355810690038369650152595838463046354286310768764442398359737627188860351293226913500046783933727818732629951111089730675554267879028293169366900117450363395334584460430506313775266803752254815231470797069179864029050804738326159699601109627577297531899510593475951700736824009918528132416380147683464202365323376645623800531710921438235644859955668808946945606627237695472594719922965460754239092111433158156179205223298677983599313133864799375270231134012364827405583199980631466096180741692253380603804800204081458834954022844498489998694321615716909259114198377669224232775832475850111465305158201491080072589343012240808228004665291815861861822120757989181024576431780451802515541840827007684383991153046950664286017855523922177124592222674978779363527413774660790585385415423977663476173681438834268702658362185348452343097280172922881607485850441389936524515169020412140760248366120776882803507071423953546422037404985818360221369406771109570307493085794782392590198243005574624316294276017965368797362833953838217692671035203333612221767257383389931686440143820006994399872457025586336274172273372515899088285137915065996732382057805330834915619759275994409091673626371542981348253321491825957245861975940806260858116844436346094306363888259636478504407263236089317733005065290029561858162703750065318077112913053556698075000177155268146431509916969179251373982925266964456967354490495692483424199982047153775894541328748735634359993783496173512809267494382469746709817895496581346261333801323083004534362154042223633051613373206907952495800822943544123701374606844896970995217671026416075102799089405230281997718610387948801438455767786588567597876465065849640776636396801749116567598333378063190272692095852080673114365492828599713507727991531384860192561578259051779019097762914685534704761458185777438409010999971354521418219418945802745704603347031368058193818949905948047010668058866857365516348228920304378835821666738071801778773417197372586561242628217623448937020699944951167151312423203136084844118570193391008051763572974555679482307708794432104213320295494701246327283658780420691131589997287743962154017152891017731048109888087479060914337417434918703554768764404873816314185464335144887515043955120134224531568609908020159721833408123106583398673565141955757860608726646271716047065596626148065233754847264763092014454404982121063236352662983035701025090783539310549794213512861400750587109342623770111606390455920932764674850606654500139553495022004345342272052886085971532020090864730740275356039762187108389178437253809208789658897772371625048400444707904319808710516101805756895890194054369053487198227676613614795135988142828430606834512631054191198434132504975734484139249924608643134324271318261440470162120646137226750943762237091068495933671410108924056024814518588437283097559170627318123193860911443456751660576317093570601631874524913459190125683606940077297204961755899474293952642897298090398672368463373717142655678793360387495828710395428365392507718602744996975204604398600525675052869405046582501776657897692293504262536996052604233618822131086517261513878503686223546925457329757737783674774670534536858689359573336262952147148679333298257075510556462113678191463703640735624958120955770553009706350965273705365647140248512959246811945478599264551814804053371400874082090606724060644360946701689016434959049928896748281747017198542114767637753470409853246580857412011767452501282678499119096762078295632845035015331017638445167213601016377285176774466623489308003507224482915932003940192139975030934263649824648473500510406894854460397397765802930411251661210024244446108307685728053513327683076533829921905380328892548398480926851420969233025204538586256479302468979555101965923767276728625172205842013821034936536637635941634186029569988077586888781463097040711701973791102067876651518952584785291379431063058651641466911244880782027308040044248446405758297118468151267702856735090068693182012036453394642632811783764409772771554007874710280865478777240071858058776146959521212912123325925924765945124309680453902228702006556620934486982185613608664578770521949704852793194181635513459366355678549667358596502155802234850409972900894850339713916530269892895950827378843673774146507751501659756933899635858713071276751529491098071362291388640218488654738486155469940280744006403715854694128801020348037834246552976991388656436960541631206705621072987104039011175014396708971556956607613686699240565232867445223091735382089880088287906197103388399778726678023357417931913708753177167926991408290636727790833338805767538230735135068960655721809401389203580525559392420599909207806003786478704348903309699623888252212793651042568370982772415734312782430746217595219784580205596483798376153913624408099555245779973280444003077864683449364641483469523339290422366056082528486990145012664846433766162323064861229830919052165661974095087595669239754176242724126321952580563460405466328432811325106313760111477259950763695048765687455504793083016748593201904953014769790609992483525389013380524192415663883549569182919440385944466396081081299056870763306635455685363847139537546452226290879194983074879757644414227338675042916771501252403784517470874999766305530757290157757156278982790819278835107403466434798386426497886195997915480428736250163536627481739823911405539516671636502872575039832408029656747075496723477804912238355463095240193538211860918813013884587182824523107267215429620101315815485032821474689365312331633254325812164133397125143613643980735935166158707740926581985460529772509877391954484411371737777510835044070309962700380322203164270610338253920685990315870445868990823786811176660878289051784944093954668523466570947268127951206131056510150467413541968591031234455815918770826072361776985203588115994360612863775920488841539924761043202251168464379475749224240297991267108245344685140450928231960538596428671638670407635063838277882838297403402547517752313515395662238186492154122154371967078757040067985339087600661234607242730995255889833578284719166129721692419555549885886495407942288544878010592238311679221194633400451898644930672490700852149752813233614662107243642440864190050677952177997199068328934942092987261998366108985006202374976651284240527076197179348593624869345114297778643880880907926189067077643290480210850270118456900928559945716783297020287509954047598337960273861785057836680309281215924714072539326708616540322933252126840484026409129657969419659935977962116442595471259938783496675456494921251108114384357632305623869515330137279916162769546736662994518037557441863898156222094287589037763287158448183459462001876648707317261219940846954070551621755971876228850308002523390253943964896397839546569553082815666339989659708529669710608915142414316652551283333521605112897469518841315983441912210159935622438899290164930194365967262232869771948206849134970434232129995639154548748675445674551459604958457511493908830726626205257516739754186380031487202501672567979874718915407219654483032878358348002071420618228949557154938653322012494674103171232286576660892693946565402415628893347730446915206891864039293639328148239570229074770586870301869690186894082889217439225314809351454377626962715615759028026755287596406193496952662388666033359394115417870583889165787357060057614066020805939097444480664051806572357559138320077186152092829852019162605002536382816653553611415157636808945040039386413926489024275744946097168839980944496962647661920931914340612086260864963163417318803698483501716628571208301920221770584782442206300628313474421997830990309524715995982608200414561072909353911998502559316170460280522115717763751567697459772822896025522123329842861502793253975789535333025098113109464888925607802436999332388562821693798384209161603078204393476201811342270009760136542407539005033418923686855611071407544266062123874869706574644345874093725094745212329711126938866104709372572382258716407698246685368769482894560211372099052836222142465691729245322252336322223430491182751127035373379637878536149284670843418630666117914734825722081153320105766034024593991376623271284079754758589926585884348629466785166126404721544250831783209872022291861936697633241242882818176437785369366889896997450996996063769924083921161409733888582456097348514899908466945257686641751019012329365610883695691538439305234805404664126577477842437178931302793860311758666080773780673951136352647454385221057369182464474939975393115149758061359261259873538235662892759594199477455911140145848681862975026255365808059486595238241675911380534232566696097244375287652467415549963314798853823658011846784474079445904252392674461782047256778162760340737012531007447248627247821031299116935198550571713839281312757846627942215786582888614599749130209045082465510882725191366910200413463583691005307115979132711974816131470786334252844712508367447931805258293552920877392281988930022863590022385554629484871442399911782828137459403340622089137703028590420939374093490597187608234519410862447082531891859539435424976844664747073230918513557568788158465348303876096698217616611627851159035155457652165049759103515825524623907822785462015615710076555047370002385200157114062060483656336695590565761418627434524798064599980755513932479489657928947551587001745036152545705565624320407392102212699655101917245959236289392383120686184726788026697743890704111678138031900293795165072222582289499379554764629701888792318529175485082626497657297921197356967537287485590727248404317745247154953408397933015572112454651847198167610032918047052276158066596557531480358529874976995852195567409176574066175341226683026522618112128717972497746096188096265739057972230333045182973792872601881946016718967263349074283481187765519167144774230832402068122391683544434387209328592533961677749892195825420020836817851921932870803908611110644360094025892487229275229674315460381054160922084487118662372212058004081333786932835216850107556685643334578377970227331242738255604608732076327691837897080797992370993297153070232839499950356113595650853520691552522848975526939941967122217378038003025465754199227781021534947188756369188774150629626908279834389083046373394042040914789756991020180966556556937175757495955418666040064863963168209000475533243728186925080424806706024926300843207092904596531525308172729666117556006511427643145566026516456690899729122072780030420457912972475712835832242921876513477277679491806421312860367008848599495028069798587505768673936507464749706327447412189514759926974535372779050853547507727038834933722757014882287619478608336355016506792278649241003823475619995252585730476344028629863381991191743394588231228307739423713207223217187593104852281763004780355456628803896294120281115543996376937141665972764084035390159112097869825722490655963173000080500486882056444090005553435528162346864243168279115197931302232546595662306192001642608000099504618222786541790114846477909086852989483353171777454532939952316684469028933256068442627488292944987490547781821791546439908934890647301849023487746316801543948622603054139641091706726440109485802186296773432278400014429618753220246686700343589262312399516548841674952411466165177410385357570128026286411563799874675153314215358126091168811166311399905043793104270875988479146048198584888546266344056962344652357667473097549624520893957756542347830981564770825721722893441442484023803139878917838875503664411488805676350532463221631283048875737379302933230294659729963342468532786540869512305583706788153788813905589394227419186944316394616206626279887244712536861652553382905877753355117498453273996356840192693305458815561627322885879926408784463652466692676569226171560009844484380453671972769500118947760154721903807660170545724684612121273068638912724585391109540950075397081860833897807271826695551541307683824441010323516024400574878603835207198569082015228773641810940117063148089360407415984585867691404959027468840060808048938182879309737946731539340071164162957646979403082504870608678078068101986623871241995252118408103670454771246515945853051534894941371623037598998630228966402996149048736142706530164333337816418360585938371918639939503126659542106551968547848321633828766220349177899177780331130523408195852663774484811633500705580862860684089019722989009708997702101817564194433402005618115491769695740522194069700433379706480474017494775711257330450983902399140776447326747135887517791008367514679421989761305699159641248875600172115813217785641796729401796160554721310236317825788080653360429105882966774969292202909228898670515994024459470955017403653700867716168521477803975738369601554530944407433335440167646036064634981255194850483749929570137271523318375264905131297628152292212818880186350460592775288170012580559543772954512751266002069084902780235287100296568266938718242687221729998808825615013125360067769316004792014397070936837862291606371580223030151285366999318457856623648751826647520173456622462928335720714997824710381892516359135869033982372666760476123037419572824104486174110558219304011678237802848305142225583080803044331052774267492706827869657094655006382333496131637979443935047496727416521720824180497157255292529097397477678435609124503127027467526034060138490855485081067943832207525593294384606824645200164382609330063471204967407389708719207772264431311252221665288498739405227891675930674062001349725099815814156159429616240791256858833788380369970195217862994138456681468149421131347963500024003495844102272212359598569175579894127019887388981059050460479711707004660096843603262736655322260536204351103690083811318884290178173710954273200299206515710541232483166354077421639306605932002728434972311412489019492227857936102172830272724557049027107063630884882997662891811635586266528059199449905282956376105056927989717456614257762646167907507022211152419225345011651436888051012853713179687886401261371750494113758041787055348467905349908022619125209154046289610354165782438783401342695609985217053050048062597827628694585833761153240378955124245973798926318732010265301872257766174234726577149885532174596471267217878999911451045580638719516742470144390785463132556689204047079360456590898220318481091921227209776310278711584714592711141058679452925162289879003767990058506154596647292383428705969426480016035056063988192825437898993263163287796464625118412518595446374347016265600309934378327901817953298581845241186040131999002966023253294878558554921697620737730444903497563960252138348052713910106665341783217898896377064355384309022649619496312867531025029868389043675661023709050839853092841328759494228454013115456317442140875990789740758174528762527627227283047090891160733837457608308325790672717231190758437307013027543722317470479739939651639479949224754422740684816369820636198649867245659898960294993493009066073159366261782595431459361935294028767548868765970325951262257713485102129628554750241940656433673370518363428894581173717408825560774496915977134279944252143706484137604222993775232673212333224831425128236026944596084738837422985974080665010197539538188432219644866662671676612508672112672440512128664623283433055844941127457304855859505585417575740365293959509670526892150400786137461399633605239430363793792154392663305114771764815450984542905678137124996723042247028937350380187304612380447871315372704971663521473241292877795556537836033228822508111416551679321343230456467704376373676356862786416296706406167023365336170263662653079657987523721553085423539953938041047793867779077953805547913325565262461365013713991297268507802481219659090068964869164133269778851996025835220825659562775733170261924320396202615508981208595413189042819384894410863029947684810833910227649687663805673841183921362921382863935226083624916194770698313978881321162892697744375668331387347954532518588753656278891511167059533652069034681469232864354261005868741895536120129390047351556687126606366931086221747087525377663941490761163083341941095346315019259601469604123371863797057801567890605727324822434569144512960033188042104626704600021440897613152123932350526065395436447619060961760796269012059051656577084518750399964201132601045917911020307322929899673251909053630841638534074440075910419892937963252261892722263391300162376839078250029219134279665035739260188171233486665060236089636418861425275155801445087712877957638909327748738235003039047852418221005718141206352663242633327891257541218411010666247625011772785670092266213610759237754070232531800652391154464617886809519743633698340147341557659339873688496519013817954181416697538499584619815900836538793985749524687452864504150205797929414036830743958993232491490029002665639099789124839973870605545907808929884694246818283146476775978956754001478733836817288437378616581109648124712560816242807849839806702141775678271998583699802086087122567563108679758495329481490430973722775510638801131674155636007301687852232497528688979683935563084733477006211388432717890691278587289090490723064310822983305865976367532968001749354547245039668149398086213409866922076458659216257729098417793623040417099047045768120004181715067593802212022173331158633796443000518172886638297220256888902500169347524502553009976473550483320715692056302289223740485356929807916149262657021820118129968779494171294013233978025633843267204844004771753882381680425835425983614097984413540779289676346307344518537985722992987702964901152963916581143334813954557497204694088062496013862004751316393815671121949053598545201463766746932462307220909341710965783120503120737397550591086221321943468157573210634012236220482049695971241183753082177836267221671115042907267611605191273936218100604623564448310734859118108856886730311790610499631123173902384024926280655274100091874101827411712420805880415685029224577147958689833553331314712090628970558374747368185763616205897437509190566981840105031546505084200842249649159004341557188472807566459313905327869535225551937119468530592918174541419578417069436872672914882350547558839217779485772974403923698202700757376502661595806628252130570014245962963245485844447676799984710069087952268923573227820598373746145736489337385709277229911942669338689679197851249534338751701488027441658399913377338417561057018949085381123633573193859608509052947109596613511808672066141523301954423291787831607461091920140772141169769906082422163288094512722087491335126676366802636660102674666862758705191452544427680532648890513070448326800946955325655127666586894092670546539850417680239901399106219656667581261743488392169052915710071748764313663836540338073032218922652173276805372536344430232189405649386411959356227406373840921435180463655813901314972672179212687422889536794170671249763730789088346798420062003240539615491050355939324625040752205624157198967117530373681070834406928269872167959300368500597870231048959091933339320892935797245405974015775628165674949533398643616541499630663340855225874131305595952406742000028606366712714726878293483394944936752842001610438975294685879362318519643937006670999651540122295654799753601496347731848239951820693858672989976234636854215219575966119185739066604263388196819612812865352131631100117546466393556528474512054860968552309837402259096217443668069237569213829412158161783549996104020199809748582755978657962681742304033660835497391650417467764983317986792963378547886331985281532111764484886625030894725513202750360983569738412737809262727459936345957922387182110244589132782119790365630038467003875493313081435059156383128816664582626803197826687161510029933369173084654851268921710881091971128096443798276413475531516690551908155332909706289944454654478023666660075187658808738573221091946974136709711601362643369927698437303920433419261591530088306171568749711229279267902653682621406499451950930151104483259439585367413661810383197053854178321515361346581726563061605766869399731779306949549568295312577104234665538153465298921746261353766831643387916502380387826842563173349775196199798133547853146043216012599841633308808074153076199339825254280719724531488590021153000001012614200164097581454355675961043923813438957307466210158087907898741801616321111498349894020267979122157237464416317597364952408866922655219261974988267079051392905596027597610033123414086011973545209809232343696998106460138659443967405779414573403705352816702146656180005352179594474355980883309675951687519505026036656119966658639440322483203191490130027682406197848207507165705874598059852910753722431503268162757938853789640454979101301828518651727184088479003706124325817237469615864763676324036451224072108790285468020346161868408265664421123704430513481336051636111974202294719820615213221627338500906765941626464282984112788675390088233272262486104842704466341167166049187361469046697692620508873093663298747199276014042598191184860677829046695959952621395132179567449005327880053483386932767221288370939744015618171343315879149642328640726780440725010354454367590288616510807265121796741126769357546192693689128391629184251780836096040824217151041344875298719831671189013394489754470247668398659591460298521653186224887905262032170613275003437220144263547361951628443708949281188279229902114344771729497062923051388279859828336253288909173298898566683761721181120052833261538034410069091143433804061681214624651203904062774812246745692380187360462717781171757605576384243848106760360126962023437869680460272281475276148993523827050650975585788451113445178283264471893789637419600278418750416715817349913322641272035307909949378057937028848003050493436145253765027866122039838585390555518932047895139626514831032842448082499663453287644352121555546021098235904690139419561615049353228664219955659560486153420941404744967200635600703342378809241593086792843878773639414996920520353101684594406880858006746372751828901944652677341489891195674845893885029813856857860523735834501062504133627507201313385938564169378085057223811837715453135900221226591868718588727754702610985263335506666436284934154602209171561954098445336613815458029164055569253188831804882158302114825455073036468050662994057479062572781461030515907191073836495108294560696612480671487037423881948851413191594922496572749941692176083913519186993069449182597074908886852379189492134902446828617232580584350771740077635319989046111957039790198421592029155778643380185980333828361962800362947734233494808860976474082823668295156249000608191083703193846496883258409361285381454218509240379056520755187257857219619779511490057591964232171079587938165714171723997518340177971657603379350921280095935287710391049643695154938769132450985390590706332546375068181037091281482322925278604488255393227370266165558482594755015018489637326574176708497751732319250799526111460593028891011370907356856355936097577373868637485848603382899602602649232080083916933006666974354747948306584110878986524290326751796543540388020515800741653861482923825098715961326659874081078518661811700624757355021128952400511500087798475058911316393987724579595767683985053880898225823131549854590067361360041270091003420904106119333930238136855941278208006351755088240669483190705212988845901873116121588851417134846358257386968364213922642976372598354575463560986653230195303923501623627837008801586096005623894735066081292456814650938259555891189727837297356959097982740222243736982588224926620428910097513470943996264197332142196546835148116293106073418213661485365081858914249032062352158238897360063299733566406503722413475780514970284915749249392173811507879201614002235120110354751570027288376979546451700708986848783756567206083188325452435831435951502725661458612055718969754091535736169225298222023692339668244641195581180471082628426062252696770541645351587119500989303542421059370816885349553472829710880839971595430269208158631957499821604918881274569591110343950427234215433032284423265565290353454851064191734862564606540079487929976794707201685845208420631698149956803238395952262261785655600128523445677643353853549517166494762090036176792795856637508595989757814106920716808691519644222268059495696993191581807479002286584575775905231459684814046572212526114729743399317401264340686386651099533615670433092323306367417102819022993809061492210445765515993785222476374207302547322796688044012636176405971788474299673933011728868758234542533539753237622311162785074723847909384337421480486949829165070504270099546116961293428761277156815278048735680163857543626869422378392521597461234318510822517870372529006832040659236431034393514473830696671689394345785378341975606936380049061077444293086878971039606086871017431612963008411708261393160843257129147086756700974328943927142229849673721457828308349358936991599742880585526707879344028160961021708834070940283664585868767927967426379479713420932069344959776191338423261560759388578537825258060176890231478277035994668528262583103201553501386956073670918788222291656466949467597079244449828481876503511867334097658657145480358466970408173147958846649413946151033979170204175473228923821044722966811641497261947045985075429649016591610872015323882054814630979725617579762246425394008566948492927613404420991223020754647739992957206263212566700380392178391148272398870743101589146377633348038378619360020163709494427410020130058411902838331740024981381040075468680904733448554080587202196663743824007001061977170464869973266766518591334599130746265986353330946250181562090465045636564967805310216524559814144315120117268533082469686346437734275856076096144421547832840712513452530584026756916926417115143741222601979425246202461588948751201024307094000844168730543690534080854385548527209429726906443389799496399406081217140224985594827966586030946031882850635634475015266586489630674299357461378258293801194390017767165755753298782188391380792123200470393407302249320776909132458138311573049203475350552523298020496523767656662333431877323713810443121151148243684544325362304248134377977592297736713819728235923149530632597428565286475615080657579873803201254699338497461151920248099855236460940437879150937455902549063703525891372080684802300875552698697708386141216208802436225839862367804265228372089418709412382201722704869816545056659922395061616492486160298296342100733729517967999800581425807662770922065912557115899314600953047898770899105089795686434888227653283251715962440597504297010799763427604301807349576819204029756552585464444389388492993746156188526042252300196492387761203771368678342284399313461584804667030279680356584295489568739604721567007320518079433620015036258871774632687274923029692271998188237637843010317923986966752251173599317736922097774901495695940494847302938780665317072982489132591256785879197447321011899959451910774782540442154947110206026065725355072053540907112594895967688932552135271215839057500780863802573337049582912456634368098179297202025604709884237269213535562640416805272616252518765267723354248784585857536695494436281371292460918303312685820697444230088676803525748809471356866300905957596172126073484709458145820296983199318451131784987567970445745705994512516496665860711217929139660351449373409200299991697525727024456500948858005827457219986176410986068953274327411905013992000363961728075378016370601233446209423683058279479543450459162260960821188258862643859529415874864917096717310273513049371273672659816011888045587532968116173861756462215188470537719806293050986610934479977265766002656204733207587968734743237086169465307144410334900031960768683140815764628257540258493704929634735611997309688635261657972771873768934028025543178624508445384741341093440729513771225883340587380628712726592063226867160171152367565348336542213141520035611432033960539752073062966115196291646357556012533271112633373401032983302711185060767022967445527567813619113850072863932984861139973871892856957031595179438235924006254970925591038947820077408376733085214880860714775099630648126956708147047975364544791604507621957192161533885444879076571196680591473636030218288193680966141566711904782017364426207963500390933801476282706445607496344786592439290964485430096187126814910474436523648229895523104847082250747677790869314930943813472243439311959591511399903219713975662093293454896234035806461714757990446134107053343756081589119866253517163275190010994584015370416443255489506866149164929431435044721158286005368436925400116455718120485906396902429290983634218844204975984036433289561755343185812493191617004798987754904393530857067283419318064606608903671199394838731194699142202702535466226452802367146201410107643401421618260475649183242077778685155611843236853074683951188495255862598325594049103257180023453865477818516490762939324982931028997344517512859968806605599131125657699882692592012451979315541541744371776953668839990936638023425616816988801494727202261652508701033028954220238577679815585291291213251323844923281245210970401731527015712742497928574512138314560759146359103391554625498475986081020119672802863957998118702087654643146164085679027731900283458507783535265729996733270832455248317448089608406340240485215176010982459830237600609806887889349421143859047106580472765410253494792949972336036282430854502720231617020904473346345120625092696313538316096224739809898875702441408810673023812021145356850637765515956895991363321194281010801243866326361800336294393196656040582853971689171845408630214048964580723064610552424917289562624021388019657842477177389038794034434878877302329346418209029221558475478676397852952255833972559457951115943861038096518294400381567475021308297991889432647374377059508355338287481266714703098805688144673383217550906389439034448613565093982323380821230615881935340605650169262184610682858542546054485896019106071799861076421466633302240832453581098191149042220222744129679160681873565864913426311397738410889547608875265961554769026540946855936977305492537424750067634140277445933479326636239340098400880814285446179778102367809045669800021389072063871002852095273041555366792485637076074849817535557525869183139569945567600726164458733434460890469948199355124013675108407259583981886182849582090264867795706781082987999946353878648201847670001326046269396055011435375988479984935854381051557333898008668058507289388202986879391652343332419562754649683149787899954079406759584063530646204502790183576443919349147546936104494325353625301159727316117727286815692697306255123259971288312427742216003387176769752212303902739609689389657968896449306747867744353117510731595902767047531856951795482306413460499807390571894886571987558742963301433413228733992399924402320172571484428485222314499881362830782741548266128715961887840377242050298181427639841455334525950724318836142226763291593902912587017700050281415188731661343778592651623586833808147451066572908377223281567744012806522755167469362983426163008358685965116338998473205103350404195437308739993674021985961950527159967506992609030593973097509528366700227779059302460495103055890809033001031964220788800117183072317018186940165032434099085251785738396393803120162732789924048642644535600805555759193767345906997653911392999726153484327057955232524551990381352910512546473392089919843616347659424455125051109643836505379899522395883401048439368850211170209072212868146924213982389803502511398257866836155047277892543299585089820610468788137149038309730676991774981072208051684478450832793293227361761165834078751615499239416200128074102326383270725785904299688775565980270196763977818943485826350950708075642954591858153634579639890663271579878424159589046236316720127079223737949777594133274050822461717990439947828323468082558398409586565497337120391152977937025439923620839137226518055007429576768290549485522449682222908490495817043132201007035992251516850460539530142327589978017311340809593293538290341796377527478085134561389922095293261984995358204357258265848855741472864894480622740583153938780130826150869159764188258566651592677704404807093294657964507221619810355534573081706653458810640186902339986354093495537505625019553406992305312129450064781385206218947877808622347617238441039748880003624069913966338639998217868742332833009874948816693861494430369695574766822678418981068230574667343701750310177393861186134091269498846005427270503851692282729484268088478844702383798715354693378638465156051233220499643486409037361813757167731005786773416663260651565680487256099444208077312094086113532523664434811323233093479328475199356378209407468901558825889993207538287012823928675282992468878923323401227005667690087696772051211533040675120978358410265560652691033746249394375675716054531836665908250095957548209605406005328688782319245287816895616056969294864325295193846610621457833757052280570432433947744608947590707999530004517410447466232232717547371290542579316147215154865083217343123439369159275371608987865006378767638177331299012907036300750933868013134829227117120770424098262577499408256538594519529561012412395535730105921579818944450094356984446181667394748791474781626418542894387541686974189308291275647854531825184216970516727136917748755257636596757108429640600698185044526897295337335833934846940034684079223622108364444386704744880397377691847840992162028779513339122386103511744195382005687332205602942718890064759383373913016299869961421004806672729149287264281233949726599592818120874492197627288869062132049266874033670801967968661163406368795444604015616838880490121119875628916116582448803805319907622497314230108177822489690405475353095249863591193535006036613189843176606417333807579493287741763153954743277587525340889426887130523138618919416147434884011227944708227486043715410516794008673888137073728656437250411763106502047237070806584703687194108610887848291529293846287054783525593412960097749092571071376682738247520951345926272254552289839064726307530859300915774422841268070789027573034642344312972022166351480308154069678930451346041084152875832844267834774347211645296219983991141701763022078553342989386540298953065589209292531841255731891483809904553757760993920361578143629589976135336199660399834770463879687727570711039088687212634723090767348885289506439790485758483633301806671222182337358354258750401081295317892777519531110515156180541042195638671643321626878779885164313272432271655120506394070429855447466280603477725426391619940667053392344172839600549788568251927177845516131272592745624051668361686609768279252781611518449862461168902767178702060233849227989486810733107043353602214916708323369333081059540190377116654476646791265207114566803035732540185812228219867080145137014045989548614204628929451296702410861529379791068257493303677451862833347574829694018268802652147892609991164141954814273568519548775801067155809417515150231368869387131409038469726833435182013443556420326700570569380631854058969716493425922322357328493327955597435148648034445326215879614919729236470051800751509901581804844068180042559947310420088173844391650573150968303841003886540903796577180920380596255746617245530556528133919157032373303711409133789477366251009350031262932418159672591648062398388499445199880405347730553349316231968866085362343944238402787327495017883922651212334877171180744141798214969192591438823287704885390001987976866350350929782217124905347862132235335205791511844446788933016277741662026115541388234428762473851131132000687266039143756849564098608984440537231635904645041634734748401384710249743474593133934176165806915782391442271218637439043507651276618388297724465042548959585777431559204325770262937023417146858315354718346360988063182980230967227477835879937744552205181197216165114421246249967198614335933532715672931456849638701681427316308295078006107601394605579375281741157312902833400688241695835753787622976929288175101983607394095584642051357530590720240303014714101024437289368342869245545561473020736174285416720153245835260189031776739181513104979365548485882572902297146420925793273270925707492003432484260066847165919003370184700121096422726250549878359593775826764049035912166553549817658143852325990444658800916568858055226057767696468511807257771267797639520618917989573802833043968458770112002200401439014370903745281019822828854753572381290918554514714863528094705069945243621767506298263224135059117132525022974374854016305099604236444405977430929968179936453888003179547374589089776622752830805671852953656926340260851371785886497884599472912330019399029463694194195955447250481140735695483522893451164510352391797717492844629970008058023571768007429522766311789044321473658525147227443390165305423093823050475706927540377169418706637101913268114933434252810018030462020300012424298266945089638416340784887927151730912145991745682067257874525833456918746278879236662230289750142307129252053117505327166144275498885181719576437789056595129304618344412185954950107466554192182828745546918638946793977621297844500830842075472098265704994010819474960208483438396120797033187877742275858710969472210481696432069537614903383813984047799618089860949812928819891357557292426633986556054584694032174998810044696565971156976804710777045118266612498651627323182676864781268114452834356505605550190106500063768159943080104782705066119398111823648290494057856294265513269452042923696993054783244103873557462022585159170311674827397736686093077759203284706738642391418850577434433518132188755988016147298948441065389468477543264968606290775142179503961943989893658711089258663023865893474500541297286518708034197160209967558706393055592018683398237479506349037888600443013166249072300665665079436225423022756536913422737654336301270392620806146014290431418994183726607143842509090212050431708320703212014034274526907519534952562944023721675750497880398240207542967056254030174749115722453201103029563948898023534977549860371940657882057901287210687095344547848854492336392948949889600902612812925712135187094635913999114170756149758427029349699551855056548366959639989354546336620295967258179373422276269766870534014604693828608450156186067225611734005309025653727114894241394227336085296986988052013665024534567462696498073529514372864810205269386220649023617512618679629398830169675916119611171590170633889514408043077302585062055174393049016406954409336937729348063992920913617961199356101143923622215999750683250551885203831379568960847016600402801987257883713611447436190402364313885413436265195750015331983951528636772537939107230661045524238599092381212315160840076001345035024866443630484766572587721399500134160208940439840029483961405640581747303931652149449456771015712553503769121190337037840455750967683891357626566175417959523371628388790626092623436797290034415407285109767390779905681599014647917867955075533776683271628609525505961610065243656388761717549976144699806861142601350542503937009837339854340669957296163459585989595612206793751861233985051905462165209437972664406905462629579778326575728040756449457794781477471977378210915939429018622471012882142448011974073203048092733226082088948453403990232756703496225672112055536432203303465068528574661217364461872441035713577534975052130912126868346613613396333966954283672604608418060479904886799058536708354215302662523507283572415593600517418659728147301871965215704341477974478814989412069776055670797443119204539541319275723271431751736077038185119717124197907888308338865432889886519302931622884355461736988098047077354776596765976702734783635170402012074281981588042676828289989985193967765451812764674116245927466699948733679388880169034042654306942591957367417388239718392365435156372060154424496239493881294145754511843891541781787785688911275283495708370413544056513565049850456700050333143142796200490846555132453699130682872146426180836569021994179958877550850385961574531915575147281141155688163530665134077111656741445626319209812116627075498756117300710211668862057667088216741753800512175953485826967110998257497542150930777644997475721903499899292755035367592440425998041984730829173649043635593458314560823579100908636843922648131267736236746562862471867419793156568348201454793356935026502635936883404150523821437486089736680820130715611684758225143538021131669595771510975059871856179767079516473026727815297175910315338314105461339879904698038084750503128150836516294945710222779660305183253048633487654598673638678750910465546529649882038135623850619862166945598806783011837042214434748035526647565261831052892095136595729916925797932309159617733875816575246621253727510696962567776099062161044366032089905424788407927429188589478545534289552365924414648613508299367462958574390315799893932575675206447281013592275386501281003780487172380357038899393051407343310993451285826571693135934869674882585258674229762743997175719722710140637857267957967921029129637358738384258585779495387308122755053439677540481854479314654670769243674586770551173482533888394687823518285673016683813935287743835892049085459835418737638909931158904719743345321712023720945337623064700915245605205810172670699675998381656279299787626091329653272496795124165224547600706369856159482357005567663007293846580271294327711762374704329540202612755682465061499174582014096838327994763994297448038012331343949857851364316321461278689895092411552494449675787779065354523007721980954877935359918662804368370051488486100338527625557151593725407634209623319063303142156502096875055173690052085067331810773647983604477398383460447314958395874750072826832020418840624306101695893211855473440534856021308604887990219501845281194479550322954921196722093578856735087557378328427065430463445940261334009789505949177851358847775919531505043545847871345234399591698597680201299065273708707629640680264391453363141785257946556243378908801549182085940193808443165869718979728997488542494525354071868797301083565891222790844451386026945403385265882136501803387128017339525679535478956353899703328052445327794079188093086206934380236144470922559000078902582739874526987175999211248715792360095562967967596823820289997452483783084745381412093576580454514965304157742961510440692226655385049137817305246950052930972701167057670207065792254727712696049907333052979902378822238945443219571247735673098638077146925032197033022060422871435621204909970857226188324532961712056479904450184415925846991417435837273726048451847405957727886722740769150746824814507753987204403412672265164812874912951874926908110565573954816933472236531776281286905434751504365300174241967566735015263757721408306142752771620244998790806211255422021082633834272500742373507537482968349707246025603554681783450108271772738158316637196694004175797025222538493884348802147170495304337194982919443912653024208716234456280760313561935210672263096106471717988490515115291498336662869986259393271690322197353477629925503388407292512228059745324193429545780715049535907379498347557726584031579124451838602352747105109471470739195574493878656431863468244196247561305395697281084137602515961907986682869670723169838118883560003121164645506313092596320826921711904508686849372343687878390134448816896896700701026646277248762930578371797094693350354536126853509190386554537841249042521741535160534055302103141144439954701248647356775143475502489186072856314035639943280020740230048466889211058825303172195204463190774291154019740973674640891941506938927348565002892582885450970836752065489965204968394453862068016384472736578877447659840913887429767820211539633690142902979142779446952116544136363666600780998328014949641004895200408522704139970176356300135686109360485664745394067932436724143228389734561265805340939718663870327393441126830027581938909704126168697771397199233554680184211122182087759069755349138673621498216451528742394159092178867786344289103891030799537977570584148304858381022984120657103157869685280360475977639043027432668469987141283899926475279311540101278970132433401668176636472669996152857966100586980193884917329024203224761726083365095662208566568511623205920831777612504425242084603377619193558859691370327330341090534664713592891838954612134060708279131714764962096221696924720959382983782929851016149254791696934217510412893433348503146200847978758903731720277856964141020506374943284915992895131371704047353770556326835499777449564332979650971778100003456263510620352888331850581335228152489410310335762759628760499556922131155279187045207012934139450234349697909775520112037585376092653672037194742782568291630408889923215409782960527386805217060526102970735003884684788109129706158095688788011795180556487596015211022847186967512871167349664289828213495827525791299188032144735954206979786881975587394533144858084863757590529676287366109037168186756562803050613147349610676477404422546480625792372861608582284207296439534486594092209656418965712960127557320344983778298351155947539614113247733291316018324433628185900444060074784994516840569638811595373764987287547661437910029223383372210731733904522102081278177739368552534160300917810486606966253020793126574970377694046307176597366803651844805960491487512243188640753246726244183391075316416521319838370729379423771412557576013484012572041442802416024250903686867403621690657730422326583860129027140709199653904052208715291894189993982971201580065957444934162547559576627149364886871217850049529981545363947311071090067091464430557061916707328650808759409498616224455576944863226607639301529123909976057431714749319990356362410452299090407659972369391858097016833746748542301711943601497866632651060328154250617425393425157339643189450197827698956046354467884766964755284684988869563516918823117181609230062919173742041722591803904514284836080211123308817953690324970813680601341888585148814819960093517209784438276234844276157050003804355851007053358762493792982654504194922086861531470119154054671589134507328272329665411831538010940272587347899728295164457253177207764068279732874951705046171817096726483751157298180724882816767672059989989349463061755951322021092037485470078715319359724648448763184490270420686197907850961616679315638660775658565406213128744204937671230758195194411212035274474983192046859487043470408029986196222616984011338259934038945536267404226161480784990161332234793960791790811915442034070143093312025454891694545379977365570009579175919058904150509983527883998044991635998943764926208577818917489942422248586698487221668941543659732022346490296990382995726525778651821362830216428974132714864425629079463889901007990152080182831961040741806816009212659454547423030214568812206848294875020378953709542890280828609221761956069267123500101384508332157348930425501014960593259951828805593316096145906660290303510257596621618301307575286475836164764862475132351724195971095355193933569245796167314672602913921746268417518251467042919005574799787606155057118877037687850619768145825551124305943747629107478303212278519173406205820992654512555659929402050439949519675727164694825803311450124728959923084585848954710446984553546932741911662884789140294385532704452198425889218667272695374590835993298058433158494283847061840544375175699077241730277175046628480088527868271521779549654522988868466700208929409912087879494648855867855209872192563574574315674261930885141764781992462262921456437022467118060883718851545974710626833851122258913899028368850411898665896543508894500134353401624722591934570256588289517196106117752909687517502521159712690426308454345850486983287950468200322756962274514692561543442722022510500410849516675063007561140583780205088272855950987556127773744643095353697396093633724037335738756944209687788264101118160627642858250584245677757107503610681244498856957125983210857044984209961048037726601046973881014793545403016143443626272675775170872298676815824206096357529764719628775600052375055163631556773507442392914156876571095652573544133125785922796514064474862479137244634989170921988225436733649879476332518688287127070493760269942998098006608085329975521803599908194963525705883849446843968009831700905564888211932313619011367402274225726373027542497983214425742729804500470570845932102005982460002363303748608430768132042317410744921816323333558173189561054618125424175559360365076719141298580351690201258823659021750087441985387044267995799706305077829332777562036858633804093111236263961172756574797477163899471743831075072095654189720329568435643954198979683121449387410466048505225044779326812326508747710511871227324202649346136596722965401044311154783107369583082388306639321509157227657904931907604834267610729260355270404456221933307877875836767943480112700388737929733356565616398826989776881143673842179134934011862783056129103326802666057874823433252757049260309960995543915707333812344573574979653366109606234097534943080317460080797796352117874483996012170808941048323125069862699776005809355496370913014429711542195675668752173074176269386123686539886447138004204485921460736169580315852122084803664980596942870380941083776986374145970759111757758505899576880437843979211744464898242880749247426048591436916705767269552838384312680642859869644018715714686803072611153630117969784098471139298855948132385868408699421167818574914887051210707636858897032170677100174019668030735068983730523598086657701879311098084386036639674452157421320651262995892945789435586497471099935786209793751502430443968382253408993776256923202390909286482072555787668974491552679079675076404266506220449654814245362940538104279635634585519441460420507211007324754897704885694099440162750004271568111367293853953287725500245780565416648460736310957288087155016575622195201146157945685980363810800004330766028180269100177579417528215991300267317731100113882274864187250128942347293705534894397342129387101423531994878491644428242137673213099878197528244298554080374626560962950935902599087939548937095346096960997306697520019065629557000125354068243900926619745425634383477229456022181554922234391692862761269674995257941228292040061704108220427943213864957594353349808784608845319079069834781603705911441797055386987675373164318790947325162104365092056151512186004894204976729177169918779628379267233468797872581490935704217430384073329425957367539747911747912648942232141364041886583449259842942440737433403118429020485388949162820205503813637464409511405355812229723195365440254557032481527525326473926642178975449074607524803423162168952639246372216040985135268175972952021154676521496100990045508892123971150966956047683496955648891329293076376846289307931000645353518525897409579535888026130849489404620180281936708726293075089336987063689936233428910232950920698775349839145956524191053225904120187076751291351326227421483454499347131912001893742329582023099462340838510968460236433229563048087870526741012308021090610382237210283552045028154513130852847924467743651404575593982547889937487718986189973261311092894870591117139957321516037688302025672676246311823825262859774349307455432364665329686591020272090238467325096347033555747573433577487038514182618720732722632614926797208394743101687896758239430148957776264087098767245646383050738012420265377559057952898376417917888259719565265340782493776712738377016083241756235608932938724217391228014500407110356500324959294638665245013205957330588791063119435229986611364179545053686760948858774210547892934694712993208386500992818044418790691342297577347153025882503596749882227565562446121118427212454242808457018454884039306138237829489518094786673899857100742198933671713182117270335606770156489489033421346260816563172543983239394149780290228094559109553658893680504624128506013405201040082054672427978715620442616350482175727523113766810392657514996506366920498761873885553729303398777662647637418990326732161305878144947201654292522653849070391468312894136931390184334584101082676233841598312849238747841931067815887640063933330168779124549265088089357952885227707326463503762988699168067671498801577598943249475848116744235057579092108025914055299364219923212817037973602144807003800140671962772857803601505383725526485512324946430221354815119436187427649657130390787820354293197373280557507101870854476098709418782614079468915882997111164959937509805554238661985878270200250993485348648571684976289325443176346110256896915006201868971200631956626015459039669700357124489471379510344076316804144284827154670342548229582093404503716152331527709220642618896710914769729105625859418368961732762084874627386865873355260217913409222901929718670835041621072267788717478965936620508664604611971733618924176282339410244585623163803556050189671353349475881455501125653475236929020836706509159036507506704452258440935533265038732252385316032537135267215537832168895341983120049392604132106904815082297505014610890836061909861229689297778321845201685044950217433374397910374331885667763788316954981974576178708619903112965726588773012715453320204291811706023490821875792577561065334163388016490698782982349615452242725397183970371756488877869787525514901487993158984316695335510090201793054474620750677670989623588738419635766852641977314400201359901712112734472939086119383463461042287741411535918785824517197634358136016743589894670644276423736739239580117163830779449117191081816505889927557941619437448318047796898867515361679384360275636642788456895004545463771460881673959370012776137583470638969991054090218073673685408950221110887751192860390622049907654770694157946064680768580011947754237482589379662828700593525213727030072304248173616645467696217178861656625310486121715848944900556227204090618122961404796142577798977506016282385358408942816609194457951558616573066470373672412900284644607073119352044129094308212082857246719846921854913549493305633068898109073114428455656969737278405899627861115649958443070137257335450009933849642248701431051204980938350332905730864095356058061296280679807005539343397095351074239580893431180594269596856565741159301634433992210385481481495948236711429053499721824345520138571938761398251150129675574130011485653535756438188421361250039540386759782006159541502316756051439755194158771603040497165787617194687251301419324960048635924836796321869507372598735932724283493264164366122300007347237840870603351560394761467993711085306525124221740394061801230932834268509203041484520746738845357084373845597125227321443587090211811037823225454622185706181444671338835917035106933672131104107053047319607621720545883684682089951972077670112656368765876236550492306231152765292864500809569982930858545620782199740240777207757785367744025506332860541624140485970770611242087192368922653720419228786662466969075203487697943263502217581431229170433468134385173141473196327674280384928005136183640290887129679083749776996579543511175802532611108966032454462275230954956988190184770634787855691050335412413294086138084590792547376365601914344978704505425129345676009518273391722874082665671499164428993439065398450822592528803336991756631102491776177075935113255505207154413222821510240731162437648434769268165039287855743214956485329071825220703054508561451727548814767403135176738672632962170454806815148405693947868143300895231695160956488174878317363431925887100557316430551346986943402742685268491115820614495613252777192834413932121893324262488920778764138869865293842435188739330825621240369725311283722585976293518969733416895485977031493154041505048332985937258008987966294404510671940921054541801519043779958690726703265085597959705007293515531937601266950190430380196461782233956474732639528862721935682171285164005021850997255395940950503706340863851070836359549282371626096335057159130179123126286514351076470687445634380721353885384732239872845874129767981020068081569701685708087181414075570057055421542639897354185707065225182086519549165617211518284212850570858852291235760282242864405133205633988430510879537161387073050570372051946976866341153359156847353459750367801509161412784128331703464685069851720237960872395628832547969437200923600329977643017793900211491622800016776205673842365584801550646655073648833205133552515449996513770641175351487169932581473321703409520037077081226350376500340713091494369144497479281288899924209472829294947814714319526381111369246954009923392144095684208000654429757641533927688974605938038362039514267420437901423586300023853280997031613902791359456822083651862937945465516710096728943290378144443871436611380548308032201089414254035230067043353862913188241078888121362950706254113770574373025607740994698593986454888801527471755836380275352236911841956986605925280000121790952066179272236320169332919153793857437751056129190439605708245564558262395119304628244442732137376176635425197180338882810024081076769102401007744067940630199270546667986928233018404120687077252978871703205088843927137195129018023703450673862393773000616378705456905988452921871930565521225458724151082327669091826275551850770147798179525937521517794995121633281589718066031239748955983569733845022301755893805595044902384545795191977326748615535233442755598065572371358814544515718603664534374191695942556640180017382549277871508135454291006988372812259612242778131057428118001464653971014859532146970805866319958376738640394094956342877296942110011383135220758971156934249302670316760706116936699277377978367436860332551346348547670164915758559665374882173724649499845292175230409949955897466271017967587964242674290867733663391264973718968417842524700750975184766161961842354730272508006502587940582865503985420031282520974756955579177222555118750259293906828874875591218654185410804823956039371765063924174507176253944691636332336224256802627733376092968187565723858469216857907263108355999602362428505642496478534229890280375722581647971412558245383702983921794761535562936820445923977579877485141150674051485234619892034825232314889640458720581511808759093058644204720836858477592345088613512565190103015866941887678412588483779465055649167435116220164594116407522636435428296283704918962832547710921974581624529618885460796222723363140902430962935277777150352988834406186040578764632317172600022963499585482617102879753044455664805840627880329676005134367415957510428465006979368831055907591276625138746855322499476279954302890786358298327029163845600393204858437821321923011512924346368756920145599257340611385124182492924141996430628611005615408486903036205853465944005536735532118890500206497714816594037322878066383537718487217908582064550285273130759856863687356296265621977328541251931481126563241128322625080230287876394210860230597937084085793424671615386177491271420857507075234006737342775012607866099655863390837306118583949576215145168093977468403724383852601240621354414037756860206878373980392410724011883464494812048359632493160792072184854799769567565435020041782328262388092655851183098143999993898399086021872466596140407079056173722498576929993864114032488512916799753350190081857462672667882693269414330881640309677007538364668697844045683002652719942448214668695288456171361132083557222327793368088019893208759677692740042599329515177230442346437528430287529776015468884389895398659344262647431425353895449567447816579962017691389046117132599060469624177948779448589207284379416342516081844930574792430990424015787926563140410961610447895305134312852113959395401778338121805618752867257782071896880092035520869240634094982083412161836174209450247085319036939531790176734442751139674055290648626166913823786439851495330165479948252903680179792048264960977952669091652716599192085891317866788725613037992755612725675709199050070239626963445805169862032160329109046511924870906778372275255175274078013328454119608248085857931114920712406061152787598431685204906303256078203588451687695996430320515526154526867861069775387734156893479563102666854004494664704897333137452894376130378279003459407455790151810211711256478530394468464024417045053831628112794874244299067784614837243945540926892874332100307701698450860214295974859300758198056925647345861625353136641268427143446422297477503405798653237751636726085178779470516313859399254876212401271305871905210479790545975248278076082935364131412408857608961981654994733119296464676622549048184176756665810271377309236861039883401469494706356060997374864487496440462541206055264027173063491642269838233181303881527289824551486902139108368738175872659722487082808013017267968824976933478777473286967071597630206620231060265623316093136582206383019976261083623852869604775364071726617324503992557123364862858256149442880055835001249142931926302869999376233611416392197249350715061482631602916216860248894064654068154863489605902280065665918121179076417375509987712184059560173086808012436919926672798027470341764996988652126520918408774882910124106447886053829828309487475940452409748781889235948391711363408656487442059206125783517945290603711516494916613904317746209170613033867295731440671139641302977687382546179513291059422216599284210803659881053447187361740174617432555158127559455835274039896239057835446460631786875530443622144986595532315419677809693401180155176389543731395638737324375218547170302205063894341377419440907448583610330082816001881234637884634312927542013774630579942809468907677094296214180410725723258615647070262685237111322636448819213727232976664341886962168040727288573238360032077988972076294706669760850196141770559192734461924034487822189711697287391187127098878108284028676663006440294266510002817241111633571565295686383804490145132414047549546178166829149915604893278604498619980842568882534293476612383587362472217701203229453012144248685254887247156577156714463344156861041663716076880820440516068380909440289750008046504091846738357594904423773030729423615607689303870159978805314839029114550897969239610044975111220756677473949631935275449903567226351718531380818076383472961585175809224505909341012805548095714798353546469001946869653501487636979208056395839825621099255420882762586844483268161468498376603831496080132416644803936155439018915320838688042737073424482586596067425781021794434763569808027138554305410276299922091520553390819816319344616995291119215493344615747425631530481523663736870808593069448699767153400193000118865979107842564414789870089119538866588403305345675059761018023747282143767070662087709964931436430272709116122853959264877370129060651969675473277649574324523092598549064752726579672426201005919742839501456546171567513463455976649328708678561760039494689155299084345239946331846727464922059605727762019170019326690708229022997851832576802480099882719740742370418891576213637978100504219835553011485130660384744326795835690378939438494863326760414274751663796942056653582725886947762238651422576009120790840062137177201977274255791725785537985065101633440865777144462837537220174797933365905778505801188772772344665277801837852332728974456583688147545323886613145395871153305533555570949570327828138582000698464934309556176316564284315570066771827766268414424711657783283934625961368446688364634209650723321190959799794286080723712157412294227459157074886523637546819587306585822642596419383138105351610632041837960593700813117929541809257985433417581967241720655840937804282290441247485493899792155853591487548595973432484977286945411622728648220757682528996007560338745991410028258633521060977570302701380293592975233147010977231988595138404492658460074091066296992503802735906685230189543025303962734250925480477533821266731529769651313453120597248081539613505201733443772172774785848311600904956451402727981832169810402176797708909892769177291210831857630921096201425846278409045923113188806226147827573382613651544202297026057887549397003647357075030780960711149912917049002671048419062080249685345526324443425877191692987559064201908302984006110157159648834827350487976341366416090397722801731789151216116290521087773591297359345497616389947068138014048019271879449651802742531927422082558113198577598322540175889019594251398445867401687945172514307893326836941627644209589649696601861876045255540303494494644705447272534602105479396519494993810572269449698259937022940519112163196636699239557831860931503195712074231826158257793919944971382314196507376871753990675105798479466153024068963926384335816887746366923168713287834528927676825750108737790151433585605919026402406201844618578116942006167237040158666866556198614731957419499059283930509195041771380958226377732260837901021941991837003021464120478655686011171837378460506146590554964431185314336411445120802948316345949501574266128731032017203196837346837648946714349428196877142853730691505437955209026878110309486888829927187049613601522940115686813804049777785954753473760685002680875815138609307000219256405014039944263165345992164754729908984745535481892134869599674926223920897047723145144994086777210935261668596771443790420583700810132843984584789889380369170493580286400662775077613163057757252418431920426285139720854652761478271957726370277778528036659775392777537800100140348010292881611860069799545634234318132717830977568162490016525095289514844848880401698633446720932017713011018735572946968871272186986736461240324203563248374678684410013750549519065099302674903237750382374850849709862658781890241433848950706424543559877638272728845286504014779993301651004785800905826054662793468053967037999928747425244469029314251468506084046148754949147496653785681699570277333645995482027820740538996867622100778069891819677141078931010056348798984458179943075077132852710099566295151226303653223597880365989397833365801472649915224124257122634252036003584654493179231283292617810443237722018789917169110337755675324031285112889333012767968380093709050950944291900406460951170617392977984669939951076072455859921067730176183926162609309855801863929417677476169185525824956397817861704537165787861149821866496967090289974553326470653670515597747557497709948631649595090003461936835835513262001139016263908200594759748045759835093545076927008721815335269535155149947673399648415706256024580821244895938725816766695373884395749777479569428522190373303684016824558265566514189124942682991525621132974465748158145674175337065263672092204507031803144584418480878547305648878395144530389370016222231608878178869771849274083002579265470200756676276072402480298047264263082671271414707260701344940371820728722099697709231865580664361696361173815141827198443550225091561680769209851546756615293713030835827588970447835121521120321287780493870081095609886614144623783325572322780901620772294533027964152108724787851582370487420882603636699595531410673044444719487340931723812237656347970230941982741514879295751390471011625427398048057414892852554956322146822935636876984387276085805861711144075685471711954964632003049704610355290546736651319916116885760069237806391695309344268734362431135360848750477288471546776080895635986305168887125744738630662754460555474163541784189541133126728522652795743708788547365826203187449643996512496934459600996320051434757453998808237454688161955604100078962939930567137663864521341121384534466620613026033749846255207761172781587949968444982099068634811158434289841020120134210587267348661161773380379013937174982335395708611576884848055384859759999482613698610179070218388949906383307203066123981606029012869206826822753517838735754328692409865576960203594096772478473315320819452004432533152430973157108988666490771702283731624742271361431745455409734009536400116372118502294428078164547138193232048961165796061638162609195886530079117787775855593177458406381853251316142259753207265665649247717408001841022524474610930604706369746849648446129351841346347541863930630203202886801358425924860390786583200031972206966318005688861857187332584823606355045809498264623471615062277767383991515465119667094886248549509796760811511265897752810081371095945160088715825731085716026144380657613310803838518291831308723286969700481497340458053568103226923467413074724514431252111005176884041710960579826069150950746900540118364214928168150437375319106963526918798553306340070912732198793251045283447760675251591133017660146959449687251954117783150687371680606641654182710267576603453434652808711141724704002590516398773282838177435436662832378254207140006090690239600586550854815316991201989393188107754469113883911738279219642749785092108489647558081088331998916068812896504150455046935074475699702686910698162014931581427029667172677530421713688451870752734832247945695825413458313255396926381043687035945371336991467432622831354918560062922170023956223322186927582487881961408993380534531020110664156194820036554167187197076098909412541489700348007192832077288399886418573844731693169124888918168882718227241976670645301449762749934518311398502903833723194784973262344506149588500241460812873031707396682107483570810865123128840791081058136305407748038226580357187125646372604393987246613040786788215978002138626311019330944440330370669884843158354146071280754377973703618533568255619570611319265570820635136937118692309078340703389932235959320466881727542859662163817451561241633183146070918634605949551182846429841307648646470095850719941256239325924520439968758005384980049936164355994840198407019646591647922214684381706210829771307049867240952282219218155668634638303180120791302189470925423687371031824870540073600743920692480814474101576238704433360783465829419277819984457591585268469118907553710187381720030509136682527440126986744172728045193046270823258978733761384304649031847422648039761646750882493068909440383624335093885016893362922524972392579355355176436056199324921918370117624334302979679905602721957389622862591407599554725408894927848680102100675447135837195298370557718574180910069482420256900520058570686038442507564259800956156934541791959051635151962980054802934882332481076932291317780878990684825348517340164306778003620263803636530355795771717198928928493297196028014848215766053577210796538835952278902100089107080038482372001583553292865645651963388592074444451053897880783844442794223820370536240133712504554054884457551622216030378269808429806287041016402803042750485983595694074887206814904178510002103226864283708888776359321503237626778914663674630254809286974608943196710734180372115496768771709441511525191573478692756980584516196448720979249813020837535859200566731878868268984500180205795256042843979673436601724816930491360323451210946195055631643788934278705031526322518606629866120845132326124755269880188985174106830434826955509182943986804623204950874840982878280848576505268528369592099509161520515341945541722148093213579982972305927418950377062795382027990549873341557258165581955948445342615257219094558657876422807807086384881545836343804839397645823562956418807376117294969750523686051647598463652243411449144496785550486339115822703732390878212205460797618949416254121376145024933937619351049421725370196592164753952053714315579502116678396284472094471598477529431571718963653465341183163358366134307390457226051563736318491622723962838502082217623494057450799356834446330977436998701003863073466089517719194725639179173367427542574057934497450071714105371020216878861834722715311696728431144690329095368832113236264888305815820826937374915835154894795687125183956601859108729919981324744777154165170171365057810193956311976788902862778448707089532310929558312464874939503510454999412176100658541105598133337409584803152799126759358216079026635165542491232239076739296569034244346718418086148337955250950803120420650782450717104468218490168186432724743202890963518100127605510194330708851654274429744413722366526588370223070196525580646435168295410307036968488108427045783917215150207173269037115842391821459723454119043710522384875940166919857806971957583140085408296143593516681155141700652379762541908520252109002541052301585296504033549891338966495185925739963201204407574392966280079052905516074899530610400153021819896101937914585287631538440095751058237421871509207081868382636299968786207445508800946308239578914918959533294110610321795251848500363511083155888436549805547895066718927985025663031773610914488773887448515106764800582450288114275805528447271196607711700604828790903013633865095545754062730310047775223910435979958587238091118074190011834692286774247491519647254086574458694910643840113948923952130207428734822185282109602778485903294369056713094057461069065637738280949417134689753079684143070818389325316493742490677582952078410430440082114628319251979069093723434197491688812173367216821239215743681373319555062295063209657049706103855875902686259289934656810019659696674798445661258692627862001606037439782619757520828148232539374549591444434125297980157169666252250770367142731138464707467573867360562323704776448261125745590698208583913435354412210993349054864944397455131434881622530500602901477841202416824538716509804127322907542900007689665271653868522129579606654517374170010964028518164779105193223146418069575855102721144365247772664133385896994265381771343393253171192359153958828121607343768708829778159844583184009201527701392700533943996508408484876650864548962722652696815456863079857212354399228860686481591618670048402505961026330403968515209394356240491440762318603609054334555077957135656605480667392908854954970926657738138423569974451528062096667452229349044811769169213628037717171390417958866031296082619154730383728425877783872802652558071002477226341831977734285681343974847457119501238859841088852393417550353012645330924919596719461716170473031049785238302619656204419725082913174822338571134716006502746994361722468946929495040493873752984243940966126974757430067681652676431004625046111919211958212014417954308273579294937084455674816498834701588185842139971689432140223255580206719902999147851251109004083411522489418667612694604230526503599003380047470191759142405269309103911747187759634882520379747890229760403784164190029071204495977446071463602602696696606328300430389736415666309333072967374116410506237194200629250584897464186440597347441230113923469245181998057519405498351352826451405828542362162677624630984800927985505378610911499527154748804821331936276502800956799348566085681151419232828630336636239698674253019868195752168243269040898039994909627963833474162511862642342057948176479556490478621151524987031440165733471640496699370337868166784753040203828939858575812836512159614834755735265181991305761595363200647395275727114129400225886932963032240709580503762353996461212529476080759753641068147646867120216879828732691835997924306215182580014585268139559725346909121763424000360202198060280847440376184435624412302079023340337588039167828765123905401430838159302672173023778949282153086685951881323692489779595426346155986173345036500424811580989686638601611070290373842848187107036057085584012799786235242813627037029548723728741485393762695966115717936079524868233684327406863207797197748171250700140083123327602699042591151590890252846976925772742477170399481832272557946945534920894348900328292376030187736028968739961154569183207741952956217241417897549950224182291799607881216999889826802698904573329497804525455256750878262324287904801426994225765112211535346001582143365005326869629977015992321052916243785517052277263569591249196321924090648121380205168314494188182866733345156173114620759016827833664322628033347680081416021972894193089555693908252550385083410785942488527464209286547987023155331892103978965435192683229274918801924671283962170662667980240520566690911607580929470704741270105528160240814954162159323501748530921638163426982550939682195842553506996747163383213037926151231901761606094584918307989859126632652927005270558948351889250117196898537803512812432018602838535881462691358333497736337508103562270062089018005131689465543859952761413465595136137822041589024436611946565989830327152173841462234003554673564083966987049031199615021096104046975427290330299541696441674118314623597576784850768442198933177430051192555785566060552881325445854499925339599593598871602129805222894899695930203370425514235858707911308061768167692759888294656152251661742343548622060182264431266591803674399031424908824434609268854848172627502924798972704632228615057539982574007960377468088862798331591369264669862638365571537205027900049187196020107435742397661407210193386735432871194778107774165306337324744026409987977560012189824683564029550424147308182049761242338104062820145534719244059725357796078028369933838793914387710866559976237445517406456560957497762109249535714870424730002575685469890659784136435274852952911168374700422769658743659504595364266745025027217537838240433161511818411091106603006549892252375975163285222488938944017579757137652615992629432586822968071368706806144128925660931018448615199363055008619488227462547768727715182826756867668747768864442910604343941915175841729227181825681464926646824142672688828270422742564794708304179485055880490157322519894441748872902337806416126013874038528539238426854841265035658270985152819987508088478510292526609287550852767247150984332528382226223853693603001834050382845799861995986809887892828590943618205831270482237360749915369719721323510703732657094287571460971961496676989247667750109494388207042180633339490100579792555749732130241930636289344669478230167889472653237973460628262032541523901165488927885024970680085568284751253836475078010207241147201223528549971994105195069354705847698046479158291381061474412934195799349120145868088298850682854026598935445942055666788805460082954556335854690485884199265976871681512104402813851870128562265178832026871465411374076236863796222147131709032633111823552645052611318802986585484533514710984308283649976884824115253059892860234317024586472757990007538640482850091221127924431253129562870061144917328396563001633165244131975515019030353127706860133454761872360309357178643084649525129983040980333634392935928482394579624289697204433096254483084460290869337545969644713901746525213401080326540368167496030083375881356864246082055781748674910107365616786055557089096955298129704252501603869886688302067258343403938321292738367915421040925974761880655810329910082395440996763537076946875607312133653297817954779559970757005897830840035472783205954709083931480832066408639817556184270795334464134068232451023948656687244624846981582413808138582145144083279962760676727662016132640874060524019064448864708096905119571269790613275424225704126063869982746491766377305707817184670242902816093614389408235196062115005133127292267849084302116396899744858872449719271880477337340734211337215016372046318266603101392668641127981930478027581243684460986097349486754693416925173113126782750167283717957405392281894269314811480675124754473547822519767894457645306900790849242457770037209415980415695896353308607329816005098119512255087154590640940542996423678285681702063693509668797717502788606662172811018179066049724480275056238950212290940821215513282363216110542585855578687042703071660855044327715232133056474732100493935841260687647258072792872370114815400825947268901790650474707850838353416096155250098253714849947000674010986484653233290731052549681058591359408865718708885005430366177522748350838092651798722486395174409580586603723036669242912374066730197970766551268616221367071346992709738211197613128416531229201639654414289340067400990722846861130300128138952821566521599118588913026140541167983890114455379288278630194405883236905043264505435236092632857559678760437898497331412677524306941907111783097677774073741385518712502831344268468720944965307013225075841096875443253004599904663334347480734935795226784774957539816575185558284689750864204171850556819893877448039277964866189760651253695183191962283070900026121694850917994620113779173033027715193579670404651068423904473041773941457808578248871688225666974468407416087371916303297925656031198326260653873218452766101791713537405010713120387912241726355659090166094949738796519719441569299398509859241503127567219833185914580498051390387039537174873974261699891375886592751400917181929398052784501298290397489197676765553447586883071663751725715803886881806573129720011070824861417577126671552805067795456642587949019254615962182679993791956330570998642236067940068138584955918539013790530719022075472116481982751140765395404813240326156564675991115137778447314759733008957307792238373985158241663276030219719286257046842486357135140641797874740385990710079276605609665376118066512952037736810846269689677566344289959088629024928148573133769279901539023125597493176042350540680179256582737645967772514080169243556779738732694845439982285207283985076086024221483015488379538466346116655318380709408814794971544612188078403070183113851382306582556234949142370678664033253535162766360330959917632257319719393763853628377159098238397057865360787152876317086378142179183504468221775823393238757731668979525355709695996928474486681355704343375817033579162396044117305762733391285253061244577332441671197628122595002510220061060435953114116070049647915606333103438316361698316449112265020665120932335847530802852953928718049348646436701327916317000143593755523969703695346336418157781069497394969599873038446765196632110301080144621761175852985103224267435666109331661558958673098845139157216115755722744651714913671310359678037140334807125451617851524198955657046926669788807660618172236843210013245153847055842846016015885715860660417665175487126324018391792608025294386617685070214118778670418896643558668506682065771750354590278867729995408028607084615906428550117034616012443003338691712112348724078108324039275718683457272586915439925545740709998082232915636865240017626301302940563525332953839083634636354188846491407350115672409370916848679834083606070589292190461977219237986577146856982115183472299952521221070344278035461755890723948527690149135366201714557119760105807894062741227288493735821898316343138520408193935204574677565823027222243582610462975462454000020129661409362946759902312934002387563955593316241826227961503144470947397712901244042692324155329121724942467729494420125067082528307059033682710500032357355016028588634368923875119134791730123805868704560762685896456828311228925474971560479065641042226486594736354359616716361974603442773940404901493670941480799645634321142472552008155331093311461948773733148184790698858623581761442554043368074229804627533615386904594305186645860063374570931982225537551915437221721098376483300440340502819529469649465211698359058509005432058678790631461682519224395496700263066124493780224809457432657497775107582804440920342381066743130173900620241841271630473301580288594655939070659658810245613472079529366480861922700251187312130609374794756449140429894533806836826144042896707724840088223682681435421563948842407233516693447340309646248695628816811678443982438143122629055524336833927765859295492952656603097218388025798919837134154308924779910445132737048960675703198078163024656954573120382285184472879649873542340240497270796358832534293486206621585385355717127570426032896966036827342508356818454291752078448816171625781406969542702429728340395961568463408298450150213818692095131188548067408061827199502120269668396497134049831936706547047103367900700741277236677649221126350327740180963982148457778877489241635868302227705254227620076845364397219341550886113306097763302413341836000311924234408790039579055687568174607141098668072281505532711866977987842064921867704523318805871408152049687597161238522109966439273804223726070350275560961953501614792702947104160557048675603179608737950807376863842775303585356463417230680980785710685154621816622903020425672295648524648818588424840015861363871842658536062633280778060032422133511356256183296467657266521178896794022844195365850785645774301825249746442613399311867420910461418469463811456762351561666040260815985378703369816680779482113495946944038353406136530805684156654632458119363721679618744442113264013632927641901078081804419705920549727598679638625403768442739788534979380919990114830464932700867648821446581621707329423447999076079499248812705694638675827352139279510382350891672740799760178296072051747259825488319615578945737748125221418367234468535820744519624019943761639208173984768552625285915687307476266030768750508283276260426541115438588274623168039602240755713506759819286973582589769785846958814709452609414796883814924099687003366604280680213023903261814817309973253338111776595236702155155724697890574611391239399554583446168088866512348811368589235616855470737245211348875920453807241006408137820760797917112230928428045233583345685742434916945693524513747809556296057443411747102853161258102084492336589855621832621453411698033022564443351813288730945081474162914949145948893294531006651334488513938800617091849141834424594863949200433914061884037352453542113734337615382616537695529089091216346640570756304015747380663312353138321130064880507985764627239718876280211733874610258526737132507168427672635871862068120900847731207161174445232912589138764544423191417669050638798671094426317592666333981549970525795506553744104487730282348783049212370460889116403886344291315135851904647785330569820610752550165883881999965663147854392093274664857546360850033433417357256108755355623064184579084029862555508964346970705369280323039809423587031320818256016123576923759602136101750297692466084244879342080797481607998002228665607241295217381991500846859290566777249449256134464508993223299698747992480098260597217291518177052971839788000161127402737186628499743473225690084329320573789362181759819659976541221506724001797246941924998921633857883902876087011789935842800730844629708708765017285293793734821951013108874368825581590257428525769213131422413298681749652860331177046749221011750332445712439901503409176786887867874611553325256950400887913176229155126192064626756787609085750008801390116452560238761684212321429639804678905129682778712443094042583603720661541871806981630795693120292796484261746638403578007352005158122670876721496124496459717835825952455506656044169166762946864150059791125675834475987880173904859450860103213533235662221092978333644507335302956107279588360481618210971121619711292732149927804877328999335310280951804963734069150983961916377895913349626685372443673866652783646107392630022460616087777426355530694351991132646766261879746115502235922231152349485277936389622951734434524639125801532279788193287059422380404785669734515089700081538136027140192489102335964763339392464339934020628707749296463065752780552708524056151841145644848590442006927962301860391370821102062152354453963778278264707013252471067627098712365390462907058766800985177435654076397129024825218682469398576042259198855150677071613700584248509076272750221685297456976841527097305727973949866411209625408290681374477757584779600287290417978505291389965990954912838198852579694075606906206631473073054860226968448619254177608384643039538227857216094085808665069545676014907572530114602612106458810822856875139793823234603747200600613663146620481212099668282761076156930601341760754902679336363837332869074221150922351774115559894721641594496855448145600193275205397080310276562195924339183395653603070088560222009125581210715851636430944227577200984968563849807898775767713685964726673228160795129627622063789406260423770104674016901661288169239559832696257700649434626256567035909318528983270669939649517972035723595502877162933498247440296328777692571798463984705110420626453241054103947186529497896084980937301046497678996943492248149438769210865888364589489434462459318405135143672498970728046992754371559712168744316652785888358528862534439399064516127455053925570095979305847493555878661437093476553924420423855867792241936948404667823438023202006812933197957201256037459805312850118731882700403829974082464161383876777404891922195474787773637671069934365804218778800117808929978561260882157617490884830272225944111739854273656938541887121244613373354522259281289783131773167524606399580720731445603807179302284213108882659003917299916043897815203040242586849576817577520513369508653046896572239341354069452917742374974027331535316700700257550264981119863004237111746433324595971650582728772865733946099126420207947477696619518637154914946728505641769064208606327995894322209137832413937508443130093658794834964697190995234473766413382083034819488075798551647565838215269250615304009492198551310868902879578781295132973580367017580876819961211352118490615072448912381261894644781332619412232163860155831446165842702499438193903434229897235973550878237497068963259020773604558977218696376191085200496151251580918529088825360118078428541030032053191835738823864591623060039580794381405726846513280573184879422922632209359797619288583298466799681510592877751179445911404479352663085147144226533777634844528397518988109579992320066075809947133390009329653418245991542202976834446702900613197946031019221481693964909933026743476073111502873655299402283242016781454479089161397858608543570345728053955850776892782538844336380294135515835481121941066433540091924954001772916484020009270160257177770529018109009784650097578245552961570853247387939239933872707083278627495338695620171867801441620649205111937638035567553689612202593454520155815167969989595645315662740147870495809767775628629300957518273422133989872210249659122148595534888932910051653344516822759571783977767989460281746566208911945000968872525930965665116250031437786735570478535175080530325467756101247545971818994045318876981903296238113432666478546249382603164111639032987011689931012284065467127558626239271833655288479597924537775759825185060178731441739562062971277945891644524675955885592039759300225322729213012195897931854211263241838986062812159842342772808836938294212248895235899309070054464976950311215803549406450547596444147064356115375495904139749539641222114539313272248164965294001607107645932285910757041933970710230877567750077225107827201616326199071247185134191602620568152778424879528164374293768789379795069811019218311861522634931068265125417992910898466220330191844135078611074753316072712755920770620928452443676959335254180728548762696480620996173693194471731377087798400566215332436143523089600318887960539396928430829984306322514109292244317201530952719105080615280605726976307428966890972843068174544379651821551387557633399144083258226436501993218747964888178837414944942460585550774883326696343528369744217983888082515130633799503240992703121928136623272000321281500196982725626547260281571779638237039753202346727018932332909030252946235731523812815600261768032296841745743560456150932696173196624898391241432578647729975287563236740605135235575096585225729125407747727416396021361991440897460868048791989308094351102850474813987981862066552067444117900832660246203118595462881189113989999397317602282731655734899126194624357125283567796504907928909371240567538928884886785173455527266612120251106060677584172913470496345807213871364868332000571774680752073375242173197370566318790870616674154884009153431045220083733856201596089980317903358655672694893978471201368842701193455403047292597277503037615980835562234814484327478572340165074798419871628951527951691853264079353588875361261883969935961212455222321743737238754325852098824677558158927357700426198794761955728945895559710932759686409040416752796669987068841130667351086632851071310902762198562830280821699187042297812987792290015919149204803689259212313795845016310234118762570185589440950060673775950936007266233790791784020738736126692355971335299215711713787291627501302081592083923866537894723833925266166943027766804609570863179722276979065395215109590424188618184541502566661655613513553295016292627483221450315058570652588501436150319385506013674972617367204783741331377573590103646575206220123382050503322196899428639062597536749168543791083108490158829987316723699881229995133975751119514933133234119453669557577655253938878937307043076815466790176034493837211631611637599572908051969481290696607388252980327181364694940794548399435768121293927628187455274937240606735307337727702612263410352080306896705819705270497786891063875987663851021164429129124359639415759962545884853427377000417706003578704334595597731006888818560394415934614050895936082932921062596214563070328256156269407539848479050327842091569422220937304148650585151732700898125313296635871320865291378733520026528434203959975118739211302141040029740113958042319570953241002065219000662387885015408192778398775850601683436447973337510534828004640830158547060778177020189924333161521727387581214817506126447415129450674670312260057711181985400649869362095562794528422215230859732735419086226876311819389649289347800161930684192065157459345250972269515728882709217451159121900100418139644741825539943507028028457588025717840851907406535403263896529530579834267481944851274797475323582368239159205973550457910896782853094871447510292995632477069299143478311066157958582314350331028113292800203106826984748162709816516886856489599799966120994220981577264588735052578019356839967707397197685049204857518553938800483441760069238835666162342208676683661829342810474140383158254705624174740299829715680800346903402902844283301024911734564220127274904648654827794205640988335682472262967912786050644524896264945467645014843144917469435474809029177462768957500231460511110648131726567349548114471429792349442674746026591103766319532746122983614460159141586056704358038636418429875635482797305519055380850119345129526661942393788812457486550853373859191650384278046768827564049211155727748004547722031855022590676548699667962376443223499549915753175398198306360625489349481157007106401857103567291886998749554448878536863977902419657750884001850129498757150238219402465713026328365384135178370479027562596135879983542704924065532909006337382068167545566918822994645540764088352415199642714685725705105407250937662854795177044413738545197955466838628584546179923790493615224877503242713944340223021764370963718807877661383969797218704245766081032261899473378861928526001224065428410255671779662592199986642787291608178008878236485236117544458583326126628101827560623426265575078923361061025169927898839478142568141296322592032427219837172922278327380424827459823488595046307612047868885689361070001235052856809140043851283061166674553019236324881255103121615838228160601258178864049452086900136676764489353836377564636885774303075859717827039127349795916325933436034608076644891556130515088926461638072487057435470644778655926353721202073309007548951029087880468071590312775702315693315484094588727051989762409231473804382829749113049699838301858047146691796607189936701466203649720382052276642194137766899122411208142780739541103041597170669957644220161593998988392104154844922300514138026638304242370125637253341618380888451322700921071824235029605193105812812631834539055173908288303120649797047631159694275334952312760858408376268061417885317382572954925773702271708016438687923108062386478087756707332590879120730156971168889481284177263391127594161383893510364925368704233932915872417019277362965130572598888717913521472497890949560505502515241658731509086391121877084327711975454232320025310295669329060979816363078620453407076193702186309857165791876034381922771036338126591121121777400356890062817025875478568736278130689482099278328266373428714451762695140387092707590905369787271540140352380584628854851219010534207671728637235640567035038768064767578568569706654251204053751066889931911174421128795447211571214794586312725941402895729949153935911060202996254659365994448155336504642547618668715138944473097467767893716841529737904787934656719441553123539305408124601977853595707450532218559750772429522755671451141631688131873131860701143657945623809645863869408994457721556813124820739933778110953480241055455072233771516244112592627439123357970346649751644489545767581132752781419219908023098436692693603616964015977504107971419260646580385692683825693377634116285615774104861629699237806100169461641882060007155851662097840017014838579483277396972891437831755303307267340435737546567683392336823591361445189238935577184370268837980045573436338186206834990984278913992016453654451250003520934249040323747732619884565382895681245591367591209237964727336291828896208231879730165361522800658023949894592434230100091897556568241587007215520726022217349208557753049759113430988564822087673840418467854910505436658255218594441418884008401934893408512921334184514332951978570174801695107560373080515953074886669807237494731183581142387661465603920771251555338576785978524225416751947709502504403297413859772043156699668414638833556553022783140331181748691185625985701594508747188273395800852676710977863389368196944067697377164819306999688149899000191772938308701783122220944824843544477592228967299870834896274027390957520886465795349450619634005299267528267726221523356730811458113805820918615597703863287147596532606335296083567998111189471991201827935241400229684796009529261171790851479581347809309142849072449139003577803687064726204520412746319147868109621453073813878810189923023980407049611382375870130368749796849636258282697016345212820964275399398134439695946719317026603270207324824601246782537208274253995836811758454530998530149163105153845979907131696913589708779906707480613325575727925616894407151604217127564157268963876809137514137877598341705816474259404787292250554663173362034513220222427180208364582382672933022240674327682184562061972764053017831825988726111394573368074799458137171455274301979771996211295652307258784465799134199660251798367262879858869912950464695046758266998568529595384834152864903833574261336617540098831039252771917150868184259928593623888765113149624472852568674627694140532696874667617452258832170003005890507782372430242068014232500733359297772219655169766081699489902115946750010588386729082135966626943999879765105222322449602141905600425831952453205250310637520309464364125467236379661644147557628578788071996815852440643736608470529431487861558958459369767413146588447137103242986198963012458429469084898553941586751582228809923631635424355216826046144267130989974894415954305319235442565727214561134518046419532103378881131603258760384018622879675135107879322787263313575016726750820247288442256581087850089264656525556991289806725538471475352256134945164647401379324505328243990207797792332164204387235451507563668318808560400472917244930402307563738456628381565929799099082590611592927107062585832800626530877878300532945599423038036148495107706536445460813002673720273437798009229836006978762013069280842332291970604775030477888537552105517316266955006994429399914810189749283202587566128973238990257997878533942470119382588691024897844531592211005519709785136519286352740226994699575498064770782727609352720783774494193466164952843258654121349471401886196094876534291496070111027085941642625491835302948596766508591608246078376068644506529025936798963612383697690103122234592981001224217417055644620944870011077938242287631675773401126984620744475186156243128724411689514331643785802026474897239928646428348033041657284989656821260198319501389282556769187521589822219181512140033611431127901555629376074018368056205874739942224977439404690731037140597924940216075790937374623806831336569503206337641060185503261747401881509847683970242291215662656587006947586323745143175732622147137050066314778672822922527966545752124169950256345957907554269980145763474007164215223811519083383940085495896279072732842983146923450003929708483099137535680249962329077882966485207760993490400999208497832684581661358496835003062555737813508054948111895352522721057151153446941898885100445310453444239157160628026527876002947231310676325482304235424591048261350071302942102969320032561667354243728317615182830987243822465447992000397678964837644664796979315529061582736470389877840631928554648743550924984446095048030986175594672673064546697516183788985400135654734654412733527285743486682855681074359478511050119885730812419906246177814067000789408124694229235964993188806210215404180023141694160689510636785334638947564786671674937943768502463787748768121548887087928706710125693551314054122746360142761921054056344858773987504016660870411034654492314520093393534612763172354895875128209762404517494324590444107603712236754858900454486672919763034108143518061664589935960735945820272928689152734295243778969227188706076668249769816413965068726783993245975857467673109345017739072157602000768044166936640804236369773782392021092529919940380127718370109654184143739934193965273352992196965468864285048201413253780157568360798111220896017135064822645916155743114656130626002781654926253207665680747363712315733206060633884619738316711486890103081611530292531999943064289687447539456845312710446667341349667693492000165179479448296672469847634391487540550483556217898927882478389649370014426304316463694445733255896870182768687324693786986728768343451182417598218783875926427216966327865149994036728110730259119924145625513174702688795338192833828816652496752356597903706165244406109335029777629012925399289718117367953408224022775523253142085685415912375968395238717402768891791253269052910629237093304127806205556982790947310875782994528782404415250146203065129876808079193932371595994354916471664173724715808383723588910259354800393562874302489889121518438474353327269710935419617341345759874366194762505504511099459322020404202266338326805895664350439051359686679905143855213116866129943942360492310658083064510685779954240563690564862480741916810412267989893338366091559300105030693949204026936885028955716890372942981071859717928000251968355852422843364077650055550582726776523809589734121885307269882873638435861334277774565182647017753416903016020800671041612412368671683014424939950093907532848022743789971061138431656044092819017337613091203563911083905258907382155429647440693789055882760247447259261098655180674423303710488709786984874153234935990813324531809017115061569193649084920674168556776105916754502054429019802945830153889126837393840273904269876137077313591731713379456203462358653915790378309785437613040839122196572433994226633426853887732196099913925016792862060584109865458209564310300567876045892594888134956604213523421867270931744961945609868708671291523162674202770214957026480356230423448333263575813100701118873450034970876828994748351296936246097088424571658025052366702769071550019009493392155382870349712906004765178462587124427349680359400067329192128329940785536147671070254505956113853261472028534507110841647054989178192456869359345614402704035687818441846478113284065907514755075337636221443931041677003020745869509772923011351303702241963340055106156392253576387841082113656049438504850579620158057517750859210201254858415487722705394256253210692526746102882690847394306679767360496228604579029240321570883083738845752226011321585345169891470331200689628422346047360816657784793807823722445511039787467851670589071810789923916264878167256353094052083392033451524854165291158263475845094421288589499044446848811498616274627363142242927830141535323625200821953291713708945768890845833633444946166772026216099413003176390245826334892287464081709105548404814290143650378211511826849426397164762304113655171369804596243123564569678861191558976804044582036518617915773768317304355232580821479932335449307251110912462832602963555460532354508516785904145076308889965625005416791259596472290515662229499220550682968812611456634479238095270609239252371623458542480707627581183706138855901760475235155193453198631391969994247761574253347953137059022309545119656277949215021455101942148514018741444651320631805031861590193221488503928979351118775781326649582295158591222311055393375380697374222889849619994475671692659809654107759016721915923308149242746566267035463742851300150462106956190821002829844339155298039904643117334197701226059227640267734284158300670762987931651776958642195330952306460192193405481515598091667613192245294179754702614867883625225743673464068627158542195589997385044090501300991358933185361697404116482696392201111638165694201656378726536108206338793246757750483365274470897903676348801428136422227760925802707707474005423550128501704166753582839950044002163034835186474931579864169673046616015280858618164456007061863885492473110179816236481928629055168810050422141770952866891902408803796135283300255789804661545819065951298878296781060533582001516390282662920452337977148717707306633005162850494151727690515609234510205885697656541126368987841047136902859023275777003978870155561549675354105293483462435827611153594424405750070277290922248961895975416290474303609663016166766859344851755757566344171263289192159465649379353484218729254552710350440844031477810265524785756971338521433248394162770616598616166233121376776672600287273853778001054389487990617674156261047729029051745356856481105902918758057687255728750713591534769612689242454397810808467498267554361638213375668251966207563448586516591968041546313034260372661296427563870118555644987282358833420661466523471481415805623849079698047655566060055161662441782009728143191532981450436637590307976995031845851410963681865736929344923123917170920364263257918334764920328942179024442173209786973083122042890638282787267642089128326489959115852894773605429548520734864620125486892549064490359482678721802526263458090117535288704203873308207930736175482859167951710571338692149472746117111651330472274003164680451449751327546312727782070594303556616248506924160815040148717204386649736618189434871759343803243077863744740232131697514704133633112016085224326902504179956778195659839594242252781537692638717009909497921191929799660100493509951133574605868540409989626973806278915890332167017347321572447031976677846047141275252650026361198611329305208894569404906332112600456460535837688378063388826168217950162939662732743641029810888301793584643102048108616036846740485387196462417972864123193074138360788495036781046917093019988052399867154926616392116844727999810330404930168232768349611227861628573618708239202371808145437508182522549344586351676700877835719475855359705077695747081401531657158648528234992349593689345183401903863972289357395471949525830408538650010316719062213858561375782699760003969913285928829451420061220139175074212581490758637710166237461997718150866116084496713983834923227865023438919224446204552664401948682207373752884409798359856527977801859974985430959885891135153816229960842279204487278105036820611889899486503163479625350443519346939501284001667543625783488533727632898049731231244250700886299922760935124463139089797475883166806814444111849924867857212428303175751483654679586541756772923966583630099867605953343978544325218287442820818810921814246654859519974562308804973063054880310538882558104433002630342486137196500161797700214260040272810063709262111470434437921122160385905732970146368501389813174455468797238398726331638159672410514218919196956417179204522472399102552896974083799976160325496190711650047827018407748872374774012719967715847646954253460247605151130997242566410918876243128477127990204004542356380832285041539515214820010299723783604781126937085734679305007442062652402634336276241726022468475593324865894679384644052975510689025197581904919752989209807698000037003819434302091210155940679354357158180999671231970379218417449572577197655544393820949270614582496088110424521005012766541732629569935386010856064377428553699040529211880627338038786272648934698258765176740663112253501434654514124289958263826921970533825895688584287447935216917151690457804093622796827343604655313924308920354084095290080426518251035036862666960913099872721480285433884744977350404228827326506752565370853431076344264989081963458240076884258171754152547216692288415285027851680464070185280778741718254026728473247842011926558189554989856944874415424841778255854594956513548380565125813287455948921538254987475612322104561661220594954545223193527242811813721898991000172663623180910795432645652640318068722833891506921921449394513532550414297994579301564289350425513663322051083329456084673923512236278286773893137709778460099215573773177832966395583286930621300068133890782343256908871270496665820441670528661663833866237066343286180548930242653536044155413519063700338889089812458375230355305909971189881400338271001109798457325529458607048462063406568873812386107027923480839199719139184376258143098506182038145184375936626941959925374357997169944674682921696087508333473358309569619000353629776569121195982689920599897881289795237210283844668393631409120037882652520076894971003934157782225811548194775947279275590230266756710747842531763538055584017724073277047805737589472845555922780584904278963870623053355072506013249090766283259992478049632142879086577475092088244502136625457835404133577175922775257000275416599266517480677208210695363061056423256130305686562399175367143338416717169574305763893485501821813496130729824710982342829388347289572992965799630796912233962867481332055369061933778888882777380647855458390566651685651007771246542913241775453993895669928465412292836691192534785862412117735616949525539354046691989216029810028590686125698778686216198447280234676952534921644378078154392105437484410122296051611741725574086458554119329331347278778256020084553972615760675946625172651713887260324244509706282837173463338275236187642261394161238725539440650308191256994205586117834589302082823482437104424858884741573531308028389911355225879440937142449393243662539235332670595582807024955732821224811533846607715552280578975537968295617845632197295002675610690302355899197077610757214048007311108309263844728133774446067167762795673443597963744839593689743940583436253490300137891498511818416724918452923728178867867080771455865123090475679674826746131498462752809143181746521185556201026900528329963294380814197206078200605819572783949992972410449940351758914498251309132179354474885497127401143420878902179065936623175265403529495891614854121767785873664134641054914873763059650839322258047015922647973160082773154184069786562388172037420076562359458164888791988311579593372740681560664144234873501108666233057221548940325910376944268516480206652409711802648390979359530351864335624409956966396741137891400627439121539936973243099470382933820748933489787178596256435953115205132507334848790713560930277822326657560624047982018281115653217690916071990747363330792160281439610382878934786663029724340720827824759886509351489514064467601800049411276867768383879955915798151418020854458248974511103524629178534682720026765177710883554313637053978305632577282229581274821977975368052942540163178870307025303058889065154471500739648981617342895181739544447386038863752063755890747185949410824041074390498057809650627774777942941319270033483191371836466812861465694683407568475364590726635151884666351247476614908095725760737621143995102239306215127795867381597743231148222386514546701550849374385901616719281288489699785321343713923654408729564323422627976489376406678603519191679510542917045100047852625318129829597131563263470995757309011483151433641357071587512225893895616899171098440408478907657461067557407597615728820423372522283691490393821200752262187756112768124991148500035019532433155024168150795359430075011572694007166748312623807319185358745592577324462461207645165394522432503392645028849443940096576512986156117861271865428218331924793439786612825918194954473345495065658509307633964743822706152578566705396568412220573748831015576582531681634932196172886839815414777320383678783718779180216900887895645239339730233634815389143171676533155122967147331323935166676181863094519360514306726630474929515276221784104402529776183232834680153141487435755530193320834403182661373657449015329743994568733544576603553466568614287718299276576653448111315928800821494306156737402859214581269982813034459011808293220535123206390215431090724404658475381431299488884603790212405162290782698162290857095447852858795919344938061006174656267152226050038449607437785986330885242236988069749694523196960662836721138936502983746051481027883424686811495249337405904881111815151804837701093348339553832838831354104108584515767802267539493839219959191953532284155758497640262221870298527862865757769737721080214328679615061850973784849747949240124128742609227302628809729405053821841088436963594483202632582228483667456627305473112074719306172266787738127506440149557617095427561613471269566574950599669193691769292452423622003558588740619294047841079421579998413269173430716375148221386827246622738034229790633044555004100492202241914658876562810921307772439245053001015279036685348567105466774471372666616338898352494607923038752356451987668239517724124484758278426899705733101527035412372956343517393211637185311186667473877477630197127793084307092244651924123528407723337788591000392029648821117370108984897816674567618039394976284588534928547665189886646744062338636609332347861951117807262822965110906062415167058542523136521115531790487771419866911954589157898919042956828096375396571325671061009026505775766778685284312252237562091679796419433811425057878451043018265803771223920037785319801922716144698312835857398284727078071880272752255451196033026103083539190107565329372343009119670454998763613857123441271299733048344961183047820716387515449417627648674728234809852323276786303614184963648086161656217512261038754980673391322038618027250972352904988819386037607613975758204304330264455822050066336816651244828446267537091229069251226749980223328292387327339874308487825498253671675942397136548482937952325399078917217653107804155686723884139751307434565152240284812975094390272084942277546004705766529440627933060435358124946738875533388155785643740594829782715131141973144469513785465168219938200081393685419094952114868513541098250252253829372097451122314705859497224646988936436648614743717162970305349996215707987644284693003921268415088931999951922574844446846647360632089980065367045332159470804607841326866343687496236180465475333620978550604811732800303161177931836349670097746466242454582324022577864564752260631103610235850959055660572997875704050299392531410921951897458865642887409295271443014598872385372833033261162186753942757959747764601899530173795113525291800834986939732810581266819715564156701953632681778210366859757095503789075181461897804787779114989215094323842134403099976211766608795194517435166194437562536935927245166868847523742860044220881240038784702044354801913526516059826149853171680469087126292034599036053614078450592580162571305172702509046565885238196145592482884748317850567937497682569853423404028927139742923014758142971733581926486289081797879869978850812673046423080244889735171505317884671982453036760135446654879635268320892525980066566525703584866552817985806579093055040837355681780311918396227159687734619052607647908894185679872426148161530166028233844033349379769292749414584140912009459167467775121967470112520076720832425099890715668902116189639285671967081736254830304998153974827441751658357361337421910529445719393005150547858170132223235462154061446006295195301005395818739740606361786127685671680976374849178830789457263354898032506041985058458141134844257294759470471441449102559522628726225636762706749179534683125019601352974990358799565864611173405271567294918121357699954096706948504322709701589653954008650756236281264306939532702185334758346385255925628969360969246618416855798999432934881904918795560341343057503856083847876787339513450388886517917849676166904732412399312637355413860045369377135578643522488704869048388117253446203136859420698359762176504242137898306067320346207877186044938142903074153201795056066401585697989742809871809100930244562338894891799856265485511327660398069190125007479523301003110285925597225246735065476597949958911518231611862373261233918277040043769830757249568748346731238609154155075804606030964705944902271259066125440840322543627674305967176724246888327799052523676967464480517953766507505117529765727521788539401923469172720796950834475617391131182927267832888254885774290019786425304028062661810633563160301509974671482946364537340648996757716521460333752155343619378421279178251138294167558261146296512904786024001148574488723491630025692676510508425324314191052584152371125717857028672361114602322268040393845445718461778617791782438211920422947256995321682847770765172034681087671549216692109282547008829075455131323012688207402051177820274033458658652854921813300012284575583267434270011595174518027733232929906945618384769578897264353925662259525085973932819779602921702738752661341292040918061485152508728584212383273558871238623960105180613627679483278100720836377260957524166206759235138254257507459612495991853072114800058008591247714207960707796013768386657279370431412750583985753694486343293480692781366818199175021360474401140774688481195410130886440767546975540438505562226017926145986529537544918149222637283160670910485668670066486931647522121916961273597255362431937815029918499921805176116327669429554079641832036664411301558100014165775854491724648962802048056118354311447700721459117267956734921765290314803639194775238662596241925827093995204097108709601223026575021370503431349803351829894477327778848545458509560648005929577147019579671471984665459336474369057158389266912168361652441627413366596167662918795491336111454992945096940287020496406892029541971452280328767989401877180451202299253074386767558107527313987547551993557928216841401456376254316371869577686646541865534124609422081532699011460594541689473103244097085654057427040787527082992123986089762718595476497438463789770222822592560314358725054569211539084038944360467273815291213154934035006479502238217103545432007470888771078248014819218997246484049440186349833328872680604182999450580805239328161952296621701953402003350049364589914024225707754389735049962278150939756653941341265001764175392199899071856584952079713793631980435461031479724626345620619794191905064360229228477606856734623570735942476816619921234502463565959562685487388018663299293384260327780436391257263340716620469728660521691203191043046237983517307752641680358046951422406701873598344051902425448873771628215944016630263761581686235173776750677105013436289392569221534132168244668146924891075784390307532483560442558791813156097605050801456710122684166815905493693445733536782395040612479893620039979939575171432478195311736428080949819436023796784387487505476412316390130150048159108737188109176256256959169819927478367213964114194892304509808461240920321347081111373526857672528225343049313190908845364407834089604596952731829177658097879394897971004412134953607526891121216866925742073877822167187635952391364230377156902264108595001289982101361540676573847747366328949827101433374144931361577521927463376468383140758624234570100244597951081055326091697223293196409560913860758209086628091318136854926307869074699234905684943342638470790316572551918672969276617038249712398135833483914986622404390511804991446780363396785769258939150284317979944781786858027351758612144159288855115574502634698356600199850656927318892522834546873829298079380369170398361068998795996684959968321787476910766704278656339000498847555497488734037771679896669554481489824422391460299164632871689953792534652374433603991425523554820878370915487936344837098639032304154302078400301207618464290272347204324982924175864106240142857775045669219284454628216519346479357016004030372224509775157755375352167985590570770302290718013273238925864728109406240124023490337635751791758735384154152909607561225882527389369416548704107111536781632711218001383377457759187794262293036316205955233166821317239221747985050348292781245539497543062482264772626993414431416626808566385486624722137401442860932217536568027346259917706233775102511059145797929285029417214663771785089786141691946671334953564046318033385048363654929117449817937503873731664320228960998277224966547086617418845892184409395896275075367817064510474867259411911134026983894619900715177836196060774992549313367921180517582471015870615621427916870434198348073387468868055067405150456372346491023070817078513620245661100908640968350627737197985347972724443117310626016667700617379564150109463624856209528949220521570954563777442307544356715258964064557741339579939694129363887278150548937837250194583201634939466064689153858411909430066181045043997845826967100388599838076783917279704529627056914636527934925475682185719520948667262436050722740735506380582137533206069397778052186219732163363756125890543228316828358861699753887031921805550438085182099247067913741304816652374516944643505808282875179311555318762241521493178752489097909156564076744339679064186905037801481112305537055501463568532626732340010900141412187100214961849740238424779644768510094510183840721988463947382603456577864510621270164338162584343634435747769624401512231251525653454229683860381333033162498195894561371706807777082020642928017151135980084604504721673618521963617039033660406051711535722497641032697247105446949814272526300924240278851730638325126433679449515387493114530181717583992160152888293614479708616007449708009480837013179726123269114084366020799257211514722646627420170629466176072403513000555529135517410603014787575261143748584091812199603557688035282516516356031785445615090428157630390996635988669184555554399161614459451829670238924605675905905289995489206669352654064721791297339943100112029696398500303090082758421444211434380546362099044832484350166543089480666040540234069063581333763931325832071584205092828668981348792723453121108244804609756759427152433495032269047995570598964874613418437156470346049654759981562083065549027883748687160758885393887229134428135407395301552542925111292526233564142183409472129077120009096277005423528214629846482183092564901526416705776311337602826532752545045770444428021366101861651739346885746567016437856801324056098605435892948070313736273699997471832066670121204267378441862308589416718881428015670342613461596633063234348945387828198595094780403128942893282794442878660263182402956843124077631093308968339600315297548803263710923314908312841537945172056061566262832765412044708727046065405497258805275024700464501141919738494650230018752710611682284720115867009200159333353836714229187049142107035852791772279453411136767019543422661756945467187154363039903566096914365884152775163523918047502234027092237803768143183490328281251194140758677902355721731421184597235735110994432661380258168670528686425335584472569406748101951388833300150414802217393595571984483854239166141357722835167370576629385453969974804099371246550281518205449598659856642711857884250073009065873961389706501649534520676686403584008320494782934889780622181958605708281620459212626731886440827951666867554470906318007583634329175457871448192337751420695634195091851858543908607842807141907696842746260575977083069048877716533607924813592535576965633343271801202720197226123000443966091262972794615013353228561197182979431719423594533449919320212476079280987910411679221805191241202281298522685260012208903175106935211572271900146291955214865125310329798289768219412940778708159134192250167411580630613895586573920222064030120116180841912445296740121646955942488382713889297236270352466988629827970485383013682318928053026460651751822086421398385942589158092312034014794307392775105958401396228512595972506829564608720727653708947165759437230700747366343430976479683456188039011369201247734687403815677948329052708744815920329441282122023812451035562886275612519016348346522464423746272613428214026187467682232015111562555369802054811937725806008141582161434446213288762510211247047316717158195160727726093570041144108428837810925071301635245033028773365532390931674260471547814966243887507370173031618322570780229979981297040371730497968951378759689762126598581276172687041803578018039917844980771832097780845001942862808277277784573042836366689173967634037539960444742566876834425027338528854894595944215069536067050192745942830031146103321981587463138796052074316962169182720150908487828097477893335750584100860581865721249563266534542012882022546198453878805837411717429886613700416186316813866618124802021553184995741898147253584127200448202347671661262058040604671151370078958001414809025433044600200238478616918718627467435530691862339254316558905659189002213973597732518068855449159575857337699641753455373226453137442453821966542400504563751061286821650659769114426664760120728221768990168360948588721522893625268578936192894936973471238211891169073683429578372265247352983183755281358879631787826554681539157383421679174499179030524216945741557991775461739889427894708464983943055783748814736376515674364845697926437293891071888533293809564249385666175730866186305627717007698113502494894303612931302148336975869401103588321486053437859521481764264291086392057287861929064177101272292429493265646604040953888561647059290055630250097857077138498538654366856069521206835701637589283653551100327087939213130753577005061152219970022221870651865898193857214879016896353178919670492998127774921851806292685963361609244658375903519782373945255540042604768630155408908396076779234337748318552550122598010417232348931547006595876654461861774732914973263783346046102318439678221418926421538551702003303928610753565381538850273142479795075225448329224272419596857527666931813132135981104533982223679439960320492578249734320707443689008402344196791094291856174584341253206699687823371664377205307385370403033396402776246830786473606657690523952485387673528006478049266741040440865847021116495263046965565607251804716788885130632675212010889640619937557547804477222407909251917853540315037157759138355014086147709227709498852356465497161955500202324316245987251333084352409849403803035926856724175080654265600713154626200052695944631817245839985747789450540047033165994014570851063596361591330628322817087325518346780126118368556987247677492065861173712149219733454467042041808903955982440766930702627491905712753116059522387078286012123958138302450118691995068995642839544253738610458112132893053108806777568938789546499861949462898164068603323628367215848542346596224819618800752091591123815922791098790056889802600924938623945450614191016479208250696363132919882573079648208740196710816206886705961845675760141557956177886700441517955848185193943812918518801801216690186664197789038488544256213467586626564238894816107737010956411059753872547162088017324557394619090703204304497479531011860097840421318515140750494116430167380692417814914109943924563203082126361979763841084694342534588328292698318733537258592479573781362892625565212309796152950073028470577469927296655919192666695914217980259425605264769123470410247726379886326295237372677072761523754524675397523461826477161730291568892477111922034102958375250097046223089575491109292153429752446122136128722823745789705712899684502249476664820033460673464308878052512652820290299864637003299145351376494065424978930233769546911128246336852497193919896157669325590377735154174444187210080778165523718383340605264724128357503609599284254705686020815659444626331193843107257379197144468490882088013012607997834799533006523478619324566595815533764986829942682283631022560505294822568382369809085172311830837262892641000671239737728811814792750164368757361421760033869221894760869739090420292792536161528983893502595821343760030151887985504196255131082950445463214455471994360844776365052293192270613475126650430771315709044135002167533383486522343440012945615436862333484235806240384513026198008644741931554846645357281016054332405243482692839895471407129484633243944772646116940080671409543589026783176988517794859638716457694535445697273415677544886131818249726455172082609544832407373161634088546146709143670662637238255227019375448515823367362119398830557760280022913887667496954670463967728591122056598058176506380925999769744131202795541406810958890709851690183486248742746992016275085502630934732074225764445430002262483596497857031758737804347247701459629442343478787789090361198557740373358287286167409130598459646924753278864929113447627885221504160787649951512594696792085382009049195859410500040651189298789047928719805198975091937541591990453237264236325180926131001404863242516569982777887620934939314419022118532276076962052641063872071697890385386320816826969200393171612411520355484438567493480204949971302260536723345492076014707030371514600143333458966151190608548751899878139361394557600987318808265240531336902310692916909011808275673847282276151140981445231238602225333079974424526010150736589614717638182596161298980157764250485169089021314940291431977243281885281304767715768731810459620871933009601956013754250940107956219020361622191908155831376510737460957193475414690355272222520922590650073838272909215251439236879271811268576835803195627160567198520109069105327668111030186151126329595577743221690720351670444575420864778253225308151865176083384244791698114095371831246310345290104982863382759631592371354565570815969901881545493717435336278513933900060495595066146583637422723025895051975785152150961796697643174931739649668423359331669005852063268523762997978560320422272687143462762447467112666352594666115430047278920604514419792085192258812618168902764113729027574119352265377149948071332048149216644683025523538338861393046971182641346989954379484153119354686804537196906272635797605471602273563652292357529299166487347543508704523808072957199081312836557722397976608480381527735395579028245256195250247986943383039802110348413628745894895524632371304473090370581853382499308549646728743219981414134771352805600334772652922218443713369277104241527550777449844774721858248068485848846841206449512311693451342308841022169994849241440652245774475900821979404896887587990272603692392542336647377659148591429809816086907142498774828159627846658785455196801410212314783399693148302174328212193134179883156706573176040926097624046050163958932172657247576351074828509675257466939861600448531692295828627202255190318938544339537522935383185158615787497265220656262980832541329870405401359306189928434424012976048646006923832404013951492662129945460740443223541391794473389493299985115518196996334496717947309533886775594710399994430727324171490782650796147757876270401954212460709500592181342855536258949652419847649773117928063415924944721140573026012192933996541021373797481304923389881321637106334195708975364803618991292133387566377863478120154753705338615650784180821677691594361340268197068335404882430865503709927712712642456169177043328201261320505327433772271460339147264859080771893715124627821263311200071877349186964995800358830531779091950649673826342631055365567849873818966239254179879973205090212028752652619077678437406381312072968168877634242217385250699470865601076634690755830217894498045338222976559688041954202434130361756435659430221614332788597031590758553754250206181033629593938291409285508165555838563569718093009365703338195087655841849603688352922765077664267802418156611187147115266052811940381271696203077723028693821149503757197618094119980277597327770927875921842016204559746758414779604699774989180871480765124710367795345583542064885050128565940343907244826210182844379647539410829082747418362293435061768679041541629477976312974173505810793368411543913636122465559864529408894718531592065953937752986677762415861921631302624702012661386438603640317221964044676240530150044178135294105589516664456318509203182984657582931413503437909243608208342288731595087562231490861894913936750580212205575155744676215467902736402342958488029671020588523992096728140581856086114231529701033283258412807454698486345176221563091966202447007038169557754896050463742008276822316631394404553750525589849965154347182269391814430270315001236027526975728257740195536265143140434844875770813628895361304867955789380789387767484449729544022861447075406785977268310013981413071044061325656315287607498754231725749631919155043985243225108418649892764767055864983231565962626069743702874065369785453750832552302873408674905942254396290701576910164739265045006492749222469982012250994112489465660371485517135305742424993727256910738760960740397444988919088868015951399582801786869186185385173970834257118726869097237834367676765885004065484932327773368223132051493516244196032429039179348723091866629417970211658659133629604593439391903213595750608408703563540349165923466051605252149055257628938989405859931143461072508528427358094013137146984979270279716886895358536113502105538581269481404036869890661385886277456547783308949508958596127971197119113233973728622697711095986562855502535693746119815125812632969170632385557590853227722852639636352901665169774711559188940999690730006314927955715526882273306330320450104095644322129166143183078214753434367647163230593406104709739601275661580667104109480865730201664883559171402070510282271589235287549932899064126469302845672137313832880176046736591894541371177438335329012660895186865756352323570555631250255541147317846526962072930284999407768685341099998057043621543643112216527684374723751736748662782469530096115775565146456552466984058320702796483978012922074859804890466466335192032989962242456970850142901011067294558676186748865250052531279147665218006290699437415614208958293050524139401994434016725628687421256911530668975322904213623070096416352319304011440171515709638795893355719272007768575046607090158365310013152371305560329454287813846411849120644174681900537379007687486889773969898247412784773369637865681310030657670849273330372445905005923443257581717924119503913731490200731649725810914953271975261012507109755910616686693789828498003635782828844768229365232560598207266670351652846465169590999215688733211011195331181019360965520540202415632019906804041143711167370753682871107548975843311887026358061563834686238362279206428052583110025248400468619976326446209723365880965593136851980971292326518672171655118026459785621888549111971862020613083777844204306511841963631936385998268644186957568376939885283887103723855653631342944190205071342091517104752311271037546182937919842393478046857861563212739039932681350895847246354289510886392770943070724215583946607186112762154273402394824641533146094305838245812779653171358232620793721152552923996933078644611935340506850923298416214876902615156328786608009691871115984217028105052656138531152252633531111622111434429525922902319504203593202077289472358936978243838017921546194548729594512292481672960618275441356268307136276038511462961266391804310044119698208800805062031633674734834889249009901103176470879931593933099731799544774595896085363910199041377251769848733959704794685988828950123513054454100527866444580229630051543926491053423562019535993552987548970676194585017616069011013618173178405191140197425846465568757809778307250166322068044149233886507603762415920094012934117091462056840607877090596391385402470221511820997887471034936669344914202604542074565916492825512698149543215821591751629930116054721564539100746281636236120135956211411471390836307135985223166081041267281292452744102270821579647472712897684737105074543512827580343279953497452414002394197694166511764300919964031503700596322423620576310610153570766318339931102318158775013759129268048281599064060504068534695450414511635008321689430855168066085206596100741005759305137341901647800089313846859074809293905967435277419198566116752462853544530217363404723976866945136120027710968331273950415356976196063068602927600906472199185790591853681271141239644570724419296491414996289046876546921771114103565762529129805018968478533427630260710041019406513686711846760008580281221269028664866024833113338709104548495580344583441213502983228365390480370217209039720391035207882141642253056985927036865746432766142359633478017920965546669497946213570061253350510069182161368175156894254163023579668698302945024324364871011000465979827562247604334178606327392081175728030028548313155357576402361122943200473771688167626814471847263010753582950813574107387502376647940034808914429410027030693351260326913303285668141499217437165710869758373765510916002057003720164593509577404289388595952956233349433590008829457049542749970067752789435769401479200326771979566843380410887854942361594920832028136613974511116232153309114887142255524291715596954449194153017123866121084125597151894418245327355387743847795463065576839305827739421017519929213170780188461312935198032882977705982783776410048136185577841638544408506366190434240186986259682641002364160537577751028596825712974504308479534567987779149283042756732869781682166172726500795120763335471021267759512322519125019529437048274953946094117072122612189632197125999915594105804399136640902057658627272013542853417058005339351327155915958925399526839910383237506979495125191758065754473125571317788340216326577586048229661569785821491613322138880215904390661980947553666342423025732650582898695008856219725122651848343419377470145837747702136334610138206620818629965734753302992929064380040120727209999438630163557138892192338205187503338834313055529671494713885994945443075875646136668850429746016120107985649348430154145526189378976335715028243758069766919202402982131835467396116351351014620646855459125845703647147602776813013731483967710275854399594550206396292948854732505610877228617486946313682172673810747638509414938258956299397688792984110135912754171417603438441120212070133586686738202553456593225078738735121155498944921711692001069823131703874336910376557729547143261082541704804196223309837148112274935072142178073144992955187071257631421422683420982648510027753541756216361548413498742337946884750178641361725136652353498757849490116507408604587798287659210169448048042503775917434035630275188562280850814564712516772921996495157370620485993783352207216220517389851142303453379508492307266028912643338531590623843039391271554538943289399356096732195882707815312236073230944889735635947885470765774612586640876991365858478004124355134108196638163605936204001298610582928146621279487917555472546266215323407840919811719237040428554481586645031623851286558951411395569920540046635860935153951816402949678690645511060490708009240261314239779443824036252981964712493594265926983729320922463209439484418883174884416195947336324393268259068055613065583569632436936521053509094059960963460922460082846035661638961715741196740087260188676695388058686682426375423618577869395091925607119006738908332072335472237041381438727975602695592940653490750189187107997439662419294218292701159032997341932519126525500731075625997101146871863482086562319242818005176362957932258205618318087011981580646472320127764649436400723251304973045240357882356060141933035876797489357188045158750653239437238759363655594340415467996106149255809310520448714929711164889583153208920281669568733628088044668133887090961494741421022843511290902207304399163190215884719170574508529620209506664374014241782459960796848431559369961812813902957683202521217573146970542764480598349372225960264247442786062937804859903584891823257836803319947828533143637126678043214838246530052037811780486321124645658997844577630208505100780821077624602883854959582652815988929813684330245181511452587682221353918214310273057478498713523864308440486876076269818215049421615144796752142229437863678086333003594985087020704108882536180189657443239311150884218833323294693248962428613196856014040672197266873157799447147527040007828554736797926173107120142827020072123794955144295710876023329255796721244857098249568636590290945284481794971529222571688518901924985524433540055513148757549374554311080715838591147234920721011237323062102173087835421863405280214484201326171285670689545701023077459467753330788566683624195538729819121386211082367946134503794517163882633566125603202627362387723962240976141155770449592455185877614410462816299169512329524180801697162161609233338863264737123954763399901392059389587852185231323744751160812371179474757972010022981851044079823203662369992044493131167873449975722324319590885529711416550194280759037399421808830559465092458510881514969600535650970365947570251559855157987771502441009277692379254815736007676832448275730138623586076140735674560601269470036437761868770356330685219596334024886791453230328320032877726194806675017101331705840921044828639943720367450634360092716627582366878058064470823024543210248590676306132070198484903247352831474610698409430720380499378141097533637315498321831506826523162127403510442733875502017996036805601983959697804043645794290851800509609348684443629657372010133797977280694170047427717978902255204312469916864114490399830110573746370741756372812543404313624282147406759294856210474827537222146899694489388883800648624454125065306066241010999987856942702575928506722764776221898060094149703380468691886068209453010308618538263337726232468874311347857817763458041177708919629569216305935230963817856066669297438150080100338111827598040884885699595948022626858412779581467368087346446584952008121853782985060986585305797068028638994864829021220859843939020140348907865510934590225916364470891893920829792132684999679220821263935302469825907917049827333399991396168081095531514033401018802268323254626507040376481883625744783779327908903245865693508452879533594395315387276647943662302859692874944066428899998392143649809780983588563943088417271301717108984216114583814494541924574761609543376087998602832998026348258778414187272885903801275513341279395908023173953577557563915160704514748915875486850602313931983918250770300238657439988946161506250282556652244153259656927670188405100382947955968398342368966638243060534867567670858175097315813553262187314730869826585123994448845165726514914732521765696015319825873078852503245823409061396799499647936116048638773071264768183241034333727565058454611824785702671041167642139773826959283296129174860953309848390684246640464575681905321302302092491365841243009291745692043761959651633394870800030270809053561569220022595718147908171697512985046070023523517679477928975335354515925522220281533911465388870799626621276478346607915064033248336833274001346982790571971175462142119124225465345522666385688495512743804924979574593307278820951066638217650046969214203335579177901850386331548870932125524911105547334746353764032899191973778878809686599670532621176133994915947738857396541530957055429605398253582880647592030071282575931210323721304659490140774395310157025806861288955246740492277589782559238759284338321056307899486582103871109243057559493524976517498872719373705596348955476698524305292040204489209199874142285665731698774835627272310626927729597258098695411022849876541600265613245446683757188423956010878097244092298314502683616516052942957116605225325821996660204322645248683642064196108113657080212775991366712801693659657684792807614183480350105289047015488992126859808909426224302674733716357934288340472912741410419305012017166555255921790208489309472714038367052638710273246429697489585314981131157691011375304067136040233618383859400413522565521257506693364106149162615675362098494974528429113941688456892097180824645982454818016292296035711315082199231771053766934962942871383617266505294678509731073301242741869630581367272007082120457584705549130174807027955092149025199997596994529416103598910271054083294198456945168544054228727429467888338009763137515789838861765806053077556462206342869895057743884895505889764200036728547102905201427214137749506763113603085979512117313844302024991035379275695562120354966732145034490037487400687395284083526677632362537767997172716494563622378952137204275427412475743544382826472798365178878783203116556349872562526275288818693452296939832605388152427763472006204057326388318556747612700542862249478878974502678507870769180688588052264408614077181563730111282984511054591871616420281195920262780554175924771524534909673336942473211798369265386711691184954256999635684789001066214069118212583516185353014046533992100012143203144000991479486147174096347829950669623875503167650340883460484844086182967927606077940641404132537321902388905332289504583122862166922821624748751550986730533860711934187037722212148343411855799153801059902558137931222917982111483909431846398922452010726504112996399941852189376038432459014260414788682972612884971381321376311382899956098641208586594251933094284554469883840500363972890945307029902184010849549183863320799895484790461685989571819824836491845690142294395422311304244450697250869752180197261502042096869405221486953022111225951801624523249330681266606276578471034276740764354234205026662961287215778482944788649057660853299319034359753744077798023090483522229127260127765788084313466019040501736793704957506807101245346502397939557111959011530585361615138546548021855281649135793591655628397183437556149686570255972850158067655706688557788872987469085498396280255828869469105601395111510748452596460281187066232656306214457511058310487750557927001222770998007864102243060696439578803471420890958579051029470456988218837918690614746563434501302264234296947809513502497955047996557366395211652532259881922143692103939040999656254398253363392533772094218578623527490807125054233034248775535040238639434592859384198932202770190772889440035802634027774057725259397418019414456860313402690288524301817312378462351173595044423263653789661826668451621938221752927161159624776420726590871235859427477838870579666762750108740146703426594679757137679517275506368400102497822176724838761080757640574186959614092344404785205440651710145201031143263181790757101371601480108317008430558352803512419609312482299228074232846267001434653880012451309250152880427485745764555111060593659774290182983503580916985706517478184234362091612911600637854680278338512902117738045704476280290287951223338695596248199071676575076175237075000847234803228561898299956549711197989851384536174748934053205176065241183090760815004999120978170295391556760634575557599344488888558814810393095145367737036851444496003588198483858903108789174418595954876333726045320252720438124750327082189058652249308788885736041123466525916323833179663660828450514721198698036429156447123059168582379054060188678224224250141174744760790200413495994245856010997508908913167576272401005624390706780041753287811002694208804229700489899469999177530527233635909200914343499185654598272372515422007169146701630435887337319224451561166011986014813116318162691020318363775381012902531360657220339809381556508153137354531736745251978434568217977372291605048289535081478236199237256434439013657100474113009791393715202254831854711922840714009128248281906631979955382851653853828908329210995307448685844759681180002757600392168797248520877009319553206687488609797068363928581926389916305637879193751800735607097814109654119205967880989720043331495625550911570134311494503287705745974006481053061361232556193187180201670849155479407801262757014601481658649996937323827137765967194511340163964641564119821186004828105273383675905471204412928179188835414876350408444298367989230991287980333349629199268595386764477420542812284082902964222445504705478397427293538936484188970641046630523640661159336818969663515013992553742432572329729023758292896603945865952397195981695496087796324265993211950630065650341747762587068456717671662233056093106460214038641273637115972758107294808066941801520073610009737553099867078327267759104073530642127996240295436543793173838675622098508349433286738369496578550779772695894039090670512995724114400046557589083401104544449786814314565335272729999740224652524640003614539219514645981621838870528284626041403975790018561869705986034312265284514272222484160228318220334282881281256846983041272374464179513884191408273218675840320581809948727541778217527710866668293066922759639255817051180575466638428387190648125253305962457554030336191288584448523486767365895230976543813827680725216505547240617137064142651715501487213865327096722270473013837547547131187350028266338537189338659794537554604672397928469263367082336735380080854591047550907822498987254610103531899018105839941233473349846695821379998458015631443429748015505508868959652217020146976595994667268877382138204090041445827567402121278203830700223103454102895452384442433388691506884635887076128599751643262867152179397740347973125672657008350985539984535223762605978992017804655307803926295372844675568859032236489340860559789122700575400485187969462369832170777116655722454390562746797430695663798994687027837502371369601433679336361488296198948278763566496646991260999658237294841085498414672745213170850001678909384225487888254665592509210407188653712825696739237816233073245634834171450731382793634453906597629538108447693189621452113352546986597551711452812252690288198401117971559981453024383745185509033611681555283750391170167678453565778909994249469125174958944163547953374436467022706091140633692801183423604058235830896291620980373548410140961030946637881385462149154713017117815536223333482736745168887883125223712714788791170406659213155910664130155692408516071556670868028890358667196955560305788807891266506873164405110119195387469301223084217449222154654240945679410147125576122047693114148660109214712656141934271608707157136843472130470276607496242214750148301870082154087751633295044934780299536092381339283343898670923211543186903502800949513228777382498645378839307114641264621082312635262490137393962052371107444703084285310969899647508363516794263463232854468952009349298373310734830639128745126993080481019252531016516918642158929516371914397270353127548103219004812864718095185779707919643128320292688547493053374227260133218550192882850599451971684562747040412627169586574477790951193406545320082526771347026555659355748519195187819965214546342668050204834812009946543002993489773380646696136247430135814733619354752227355093917324501987526387068788670543873486084477324706914624468225484997997198884314038912690994569214805197617242168842800400355711770736082861117741872212545298121323275048648610354933242534301437855586904219538154214511630561994579370176097594475681947365234745716258316966823421237073091655354218077264009740231599771309659714368791635061639276596773079878905773195590446103832723370178916962855522264018553175059517898808318552715678777678137164982265769329304343960607896001295666716747480254715843916081312581020333760407775746015530174611958173040198010286703914005212966062749174774097853955193553173262221462307727377929702699746602712530506607987715396102415060866597907152600011977617904422665276041543190128829218029739364107334549978066188433760066225999653942606504622051829338046099312624404845917981521735431555440623973571660813736001244051944984423859310710420712748830318449576442948678984620301116468070993016182177882872188913204723630286023859200775583663364046725540075155490704004173024295599810875911160937748779236007983389071585451075938000972570516670552206111633898785425998249535738605797530770338276720958072042455895441937137594407500588634830823391715190905896168547790614890315918478388481344945116633012706866993187545716533619658559678566568927813732145804640511480116311669171790041910933572114462214156847696538904979285824414872268491614075886994273582450260917335440869802847564227673108248892800430893360242560386514173789146479192164118634982570624443611720812793465171640699646131554867670094940467978162806906891028529189410609841506621149239157945120992170176288776135986304794487687790140584184867370149380218305149753207719191716646345901717461817073059128964463258236282367299767435959611148323055862563837875480410198581330241528403771758355813575519604486248294389777070477599600103116269146343396229887915148716891574364781331497641734203029976067126787563331270607104719815612673174919444673457591053634383001222065001216145804216672983856114304220294415422953173369258525214219202010968723462155245024829793062584770848327098039655755396919970674046322208305630450176121415320162674238235898106419879974985120778799555532130417153946839764129509422056446681345527437649032582325749445743924629035273264236268836269994217573278573929309019393646541878455290622996392385402139333876333904512144494278281584635869743512697503938317153672620445636679886689158537250215585608035996396512023545775372639845963081560288280920852094506909434342167845743154792600500129514371495088007905685420793755212004739722368796111152062789737100139556155510463206674221697714207558877970630038544118826174342224694088027772606706442749397695367227921512353597876471223916565427920122047220341733060642624669915920318714879393182794419399645547142868263436911386928276167242847893150914328043021736486744717620314207257674911309263860743434371979236427563813781766040061408207640484186410962638748056187770960850664531665884348352476968822464149276568548813091445506222668790662743171700528806235566086148637352259328337984839446001807570674791631816748641515800042255140707916566462550749120457925336270954502440939235961544147457562872524937216871048235686073009484433128446021192916851731879366977573167688532814580574656022867157439492218707923098640286072706151877538499972568090471182932475726208175900519281715928265327251538132730622353085120769954070812656344722982754687182957876940112615794687796146936148286077453062552377721594219401321640940465740753363171124626426985268457752821043372700776335238465856532004416813120882773179782541059366908972351922343203401093404744836520468963819040857317114205149058477365438557800865572267566552399132002022133385639433413513545879577839973362897869608100089813749555766212951823562988774396997897488710125556150730315500310059181344866476410540463046219952733457451021833978579238692339718531839396840164692999297912163975266966426913577622630394284296060150598295517167644324607466664834497930062700202051200873692104263603892663247910554980217704013995197756215838102376543308530673585837928033939360441023216444615334943161649084914019182799934577962946912094893985794518816993471665103735485417360387463314604381847606834457432947511115654861173823393364993819625651873451678984183883419212435315023452696132151945092459558039333689160160818529839102016872198932526766749971349591457674931801037418069430805374910920161542528498616755303689019438161534515375859290756088701731487555740256223474332835930312365117555525481204782859489566809214891649975549773689379816799031018886807811961144583472556574675301155626866205611792022601687528981939023090205637419647063469559799787284518763173203487237235323719986035830884432395486187605266373759462287580785962697062110858411428479643492074391230884265336730222808345257797663556169612650468681025645752938396238275220275880741526415843311114916969639980515453195330337415256955767281637436367679436420589220485130656551105557527489808035493127816977563628670678301081311088255123936046102402131446141203256705131731669890045676639789091994227251030845685629231089648910941598293810225919985745230098917240085232276238367397390036670790875199980301355415416275685376932512258933677366664675225033038899585024814833784642485325016682466313913884521029228444102629175177460911026568068496751944487888212727588376965925591427061518848839470171145391171201807590778510846498654387043141642670095682795197832574140596579375030284775653516635522383613025615623041614425541435004872360861671294268656512696402263626903338362694836210951071204797163225348175581088128865538092573398861247652592984099777680265759393385672232014132607582613848479066783602464418994937083155479288035131774912047301733621447563971757169281753089738079420602555171385249891055034733621006833227043630968942726621679308649367152394086236740730670319108324423608156319275873118539441322325504041404236114726241701239809872451738781928973553279573960027458456856271817035715596204696736352999749920847088235013544154071829538525761536259736592055049338084345094910039885701689048258378103211663673969810347556283847686009359795128971781288015201624760798063328252289996824576486618254732310408688528515966415067232007399628492361049307667595796927247974181095685672687641532669577860078685763918533881975404840053825281946164524231285329386040065709079827850232513073319345929919654044009480012966949864776242644150845865740088046356238156100810817719223183221553987091187166679910668260420577282527971114106390137049709689317635023884462413709721134558367250278891077577360552487984058858348477816160083867469757298087450971464463874217223863070860943117436400964421883848574935000515048695774643044389691748490008455261968266350715487425518744916292369513250082235911949845193077145538378102440762915327948384931184882739181099112225274507358304822611782272472122106462215781379565641438620013792425950201922962847408878624636758638205268876950803925680334779434885169648143564716450735198779913883191989331380771108720544645016092129833852324649821809868543373524208566295571639704651589828597694567729481048492597019417646825223729248812194071603018118189008612351816836671824231544053113340175730306473941336809685226201302994854380302506526908813964672228114346108571329702910954759420437035223273535386039951274883729086814952972413963649967789556089387092496140576305535816509019896316493616096642575340831686927364017385946449915870063465881183246289618038370242298130873366587527293230665669316176728906716503555193279727858910363336889152874239642331021773135216301654148512516151932227057257766162304810364426936567071868529548985697490290347002117485693013618290060908666569577800498158444557869266909096824600219020396208845787175493982113680880052806861181778603712193129057458448712790285172367745047212664148558502227342620447235007346276489576576887444602987309963594186719678567635461046842775456834827839818270946404273467179684752473851720259455084437107087676855371622126067393295760570785781071169680082930514977161107476144525623521704757817687139304893238476333304299593305005891551245375909268822161266689671097610496597267601746440425050521491280975297569165215561918915382504574380619325162506002279671881146741249204656789977804557735629930743573541468474768586380243590948096339585489499337942157952058545123024983493706482689033602872441636172906602037460638054999680735151644044341740511360472515999559679180489273948505411800050970721771485504371231989236464021300350950500148175154016095762181756048720335191366539596155276501476058431191498356876776287648972479441902224189527434741729365444350186559526389776885502293211704097622937287582887625655560700000756404624885098779060195547854963691038382357731140860533774264543531248327765322008672921821684015632198400053024607980956817940962278353830929886089085298623976606868104757582102019523347981017203263956550066859408827097253777811517205153369362266647441363473204032682641301497044204817148054161713739175247012991393861898413539604450780575613977425779325597238010318808083933948357772029741063435968596214683435723581027054195239136576033755731079620453501360734422724388687801385169407518036699656508295414733172897028745896858419818205136114681127153121954960937465905709902025814512519630815631772764736840717899707719535039982995927259722841248331550700433538871393846622689255131654609734999516642395209858310120440502949503830255097193758475039470943613878224787390181811214634188598358204622682122643648174839711596135121492575207030857265228663272850389118046968939273086092935455099136841472406385339297742299722937480000643654743535817723622307426928198436962356548153853968733756926814277362099380769097604956525567823503886886125175715594253392862598830625117522152772451039413159514805621835165087999534677131791113335510518221433647242691905516503626834162519480452634409779762811647729379997648103478498027733118799932656938443921100644726336861218261671462168838273569768631464596664329546841541582352107134596954603872996514425406187505627725813590473307061092325768125745577376206294969996270590276239686974842286416402267246917416295323124645843030191667252431255533479166818664957690167283953235621907480351084130366484630239215175844641603414776462869328437267036980322945614340835345385366670698921498220114552793709902950654355575789306123002848586345437955570266577392670459856789956703722872444942325267688321134570899554498749007879129910081080844183811788568989910541006316696852439652444530222044332658711242047367195040946749879529149266321681150977158139719905168940802100155758513328678767689991001940287768246408535713376154512144607190197245833983825464226143090832791643038239815083922739484413851587124652086789753659199361378835832202441228848657685228267064403442047956247474591836444416720693553829038731285394435098550097293787626633116082719042485432881242224421954851803308646181292925204860157344211812322768679333291646918202311091493914718211853517268228743528280087590431899563469054605638492770672071406577403903692119664606185694504138516702237346994206920228234372915362714441627238123135359829312513142909698599987652116254688400284633941627419480129908034458712359621657718802959672779164671705197430046263950130153522182536665416358349404457586157148411259033513100315458555853838902011464309299894642882311117109206719758219821618288631259769616611856099570637320896384498862824919624971889152962100106251891400720786936088729812717170621494609780257692570847505005241745651214404795710700146409779101485234484825126080948726160827560345344238609044930753477379602543092782745506212322544239992855362059541096820427202257539696060568225281067820727094088945585127708257818206643166974950795294969724664646839252552147758750006988770878014364677345267772397320941231089120269417038549462160204262400782164862382117430139427367108248202721223217337580018477480294624883237166939109640998551674216488086556160696418342167107792391541868685085474350543695275903719065641425166390266501679764196854310268060542267482819164070946905131929329310984679498442073099816133887225346444219019612491472042792255042877188823710119461342870005544429596719770900487607220982056463968585918734247780587355671383779314507576924528661865146388728561644350649004024587582397567304349966772465109297802418869308654623845340187311563216617751006823270540058829254784521790335249875166443267920321661560872027444384607676537728082516619342929204833962026701750043731365989962761469843203141341107293618863874580463763181699125879223516499976702774650621629300134151895117149088550195735755357555025621773556761122948304609669386744102925923589746185916922445287496103058517263304376671231080829165637524566041860069095569832978486684053386284722177356351080927669387728520855402904453474432108203559948993267189796171839886438406720510795882853595680277069423808423276509197590032152268031265982042113916132361570551039625672699077620210303901112214255523394370556558968425304094406386646306132238704195374732701223866749912440492068249090637912815170557677375551212981013766337179480663719890002803057793217492611746990351143431042832369477789515623158149903704138413735941159271546273949104392354611539064655111943017063909143592626463387096981009740312973679824272842494223769872264379911280528954246223269335788002482026989628785045126151296410769834811234260915718323973903904037811482912627507206457534282638591591940282200563126619124141645959151721904617025668874705473833136799041268009439825100012318902873600260991670101315204458943249483426143490780561286745338927717574660238266147470733899839992885286382208780790790463494014698385461917208695076009271519551134655139897516781014820751320792744567174392791210447152892911382576677071247637125904354363005136926048034779589158779979927253814785558969465462695018196922828654556157565160214807463468197976582238032297195398239030118384538204833149503168783761529069848589029499190726637329500598418490587336289519380636953482594004503584856911187542095676394871854072177895284742134755847370211875729381813097064767911258609616732855427069330660242070577521829775163292747158890967027637052133346580517768556450855133471989547691192936128093754571647509234905147218944078698057999002084753340802371688832353173097941631483324965091122684948298823790315905351939046681942798975943707328986906416239480382621041362663638962210187750012844856922637044366209355638796515321309523546654061715686219438721408265881181896355090885065487520702772860873537453339423309735833530920518198565375980500590883906732461013361130369698624338284797231678453801473396467640015238708847106003545235732681456787646854506053359893904630742397284787285996445187976399211512500569545886025760196163795131680525879121378292300315784710346520909724516277283846018837305822244040779139118193948156336378821616369867787139442478916239007315212319455916081573303986084037470784532211060542493729365959335243447833437238958884338553083695107478274297704096417474210960596329524313721833215816883419478789287682381452410817150063749063222792973085387442840877688547495285676038403884895497675227703125040466945049287808652226417879830481460202532184728862379762111397438743175145969741039575579030447142028644566323544441018272370011212648923196351599782545227828538869182329092524629459988195886992839389149083024532533189812223562056947643206471231534932996037445888749664217088224899470827371904209967600770446968844832754090111623542446877498544385878170942815602756179217242549090031463400798276520711934526636452493334864887131633819130722776369818044589374368079830309916693906562677351515796189174799456564915556910616699007669316304781122175121714082313925303772858105748848879690764660913746253301289685811443418333661677166320465845789016378191455314880667618254519494035371524061449924366044060074021144064238415965092714301263475911639731040881288612586066231438710293094697131468901611474757060329006174729643806153610063676114450550804658795125883989690831724732520084661232110456986792229077886935118990942888741771558234694326407741316002003410186994954958442507309200396459802721720600624882755093400416308389720941800478128136735384195601046457914444657558844264369342606712968199294631599167278887911519914108274762587960025874619977746081404499331084454912692398705152619290273992102914211599547932129972870441396219887296455991582395447925200046523889103571594763796837097046409641028918482513712577995571049156346578874443698470334324914692571470451510040600688710617734909053528255843421147804711227416823593708956490289858084857727285925937757754530219711090418039495057727163103000955779572021949637499014446835037983592205623271951203197963870672102129663654389671653945309824956315091714871646855429730194756588601409282978965959127753251207700855892259696933239446346294898711291497727951654188516186555402810829410415667131491577600920074466464825093634036476939293862926626558808212472152415263101867352854671136636232204720376571756894695549060893350273694038304591126461613956286753958977099865290339681635893062602558377840959816639925499482713614086846861503252670295882094228947022827713129824219922279724354890531643097622241174658863945757103299014145511750338106219046116338226442525109922888053269642859853505480121279294191122953286159425906227758353058307820679047329535378139546840058837469748316759591700054712397171995347146588166000128295484714704354271943095674382146680254482719531262281404269090929159416786736265021414133069236120702613385651802954547390732172313561097354726843891295462093937769782153219269275326282802552784949107017247767484130994445889579936298196464280703714252936565148837287035940802159514652030830371669686715797882194244189592306150230139763393329979814057179533891000380061218491356934804962298035968898171955518230644918670267728006414376997483506469773725966813887619789782746893593811465011186162340906140254495013007395885575431137896511856577597567368734377429101577884814821881555878704654782364725426473392227051663211750919054715083310492203600088446081445024593421860653786278553282093533891361456018791802846575915576664592675235701239358714336116440395966757241819982992272753167354928013090366072343145937996914943865769492626339914960661736835669894390753003067534174074407144690134900734361526823259809484608736434206157356455424227243748119284585760560077113508939897957333443389972992573126673721164154928319613514030503239589287821726091375509920136879533579931894137838489295257615263234246653269878517703506651311347082716014749757489270028078683805212182373075577395674382070849108842192486103909644494370745855608080277036971013873543815172332887333694212793423370102419675253660863469115558758935806810229124864807703592752333719519992705513003471157422810857292200793639420867158150915810599974362599885304266000772858573415816487889173368952526229046167992861756724230531086666488220159692764358475334631521575730628369164227872538100698087594981630600717331439725282841640108257125813705525528021085333886517014689976152203456355471372930362952728935360287185668048703148943271606185926049649294631054662874978677459865353401833635300561177560752762506801346490665284127580678254925518000517122062240558361299920616293856255457748656004834644172631861282277863166787322446393768592352153595050779852621854801200472942075600131781777700216414217429819660625969071251256162215114561850569182851430794467909589937285553444962214432022329803795925029621223615061194372022924232252588835320490347576998769550056136475457613687031404768257059274818278127691389301191332056748980783929921503502461881594290234126046213400786551246422699887830791185820156638885297536909589155311220428820878337495240525038508177148415590257538577188718346788600922521593943672673042057517427379875426536261642337912308187590390561543108424692429888753695301145381678847671356864746050587231318598666179848556764464864573496663841578071053287404845423814283632119894825813029438376925306453896846697040029823233002483135190879904860242843184246921687787574427066707676199215550205895438398904089210169114659959740495149504006011996547364673741253310223197049363923924715948613071853691231642290732731900831831926495321650215006276775549512228308023890245304201548477582732733494095433090783759857936282565323965686367011086861787976272592014941574189923267968097278329857537991816477274660384227270365880098931782104344750171451844805600883389839961945994160282521830027802752556717905457334682551996697778119844251645826819276136937219768956391463191230438624590562419058752387346299907565110643492657239968230639237415598117726997400509453996821921278054636626153947134349195495632294872358447058534525469045576216736954412614493845616047196701007353266791880364207846770858795925200426566533733595021788760278370493000993420320404192476766577884076719224140586504695530265752567659754016147079253712146293100055176072379588672538177373645896271272486950639938358263033106653070644161944869584629706692811252046338447263394090514372334666005924598636912192020177342516186599785068131433217092275654170849574564493670095497459289734035191147353416061196754797361641334190367257717035514621245759776762185481731487361238427748600180426820338380346915966527057305937077294689509021468367953970189364932265222530993558314050078298298139186699663771026854862887647154274965761216830808084979554078984421718067329897337031139134644403393453835423446453912300719235457499801613074300995417943695743536473590375293751575796466666953337872972115467088229672648327031704304612511583550747935189088672924044767025166626193092459081402416888115844786195078178968231418293646885759135639079266802371138856179286943433628616619389959654176284194715585581875302451529444202145941053062375720021001374993537088640436077596185461848569514600033457268159171088940981226187586332899618536364554429675694585239317189670226242926000489151930715958669336208188663749393608910263869408832286079878898726085437851377258296151390621272686591932834031610882152438910377393984525243316896030461142638034627623783960689919243287769790780548623124617488729652635152018457084076476607887777283739511356712169351556286812463485701052544841473103713088675009667903659388327664293096281367062688849620629330558153675109572951093794726499136449270324291458029806631955703760334784880312477073179734969942477379526461022448845895001281258838087069703597628986181081247784026436045173203786946012305584109771963121106243031080716627018459746031863821826728219883724179789259181916879104364081625153009077405307533976255101197068803009732659699143362788935729698324556745520048775947557442111010719607727548416772449683571322258916207005789211699109267996464342672731766715321871400695136652227823268512964620416180059700584056461236799258079497265849075327577483253299259946431640731735269298468606712576260150286121118685974636203480524455176981833226744835025415886894831095751136626220952618765622041972430806311411734928977980981670630452464978454162385145896949802434791852898714422137360465273164995245867400306656242869621603802648329560479423977298826082940607851223884454046213721753224829262194133609452957470498610572556586069422092178910550858113236849189341481076368600146014511177330880989800773295673559368691647954899419619192412884707840766492631093233097286748106998435056404565154231987002145828953306650184861286199552326885661374899059462855458568124605617901186583825462616841770118226299527376351582706261797990812115469858915588861198217832373432162122301723966770151822134937500015168253001458900963170975579328549421204932166984371211754014955104676714253451261238403286880015802440411462696005951617942618902523597559467247266157114255864766604398724956347202418459308821832790731184513984481165322873448661436774821989576173153148721844818691772381481290564950727191323023844892309590064774467397612516705072598922840483465602410478065788041340844145654950314762125321069777473611191545983932073014005608218575063349712587769938264724855762595363919063097693920777116542058328918987325852164570472932465519530567069067746018997956774444778456653682013907495670520244487975175498369215199805586219685557820126086062556478583537467070146265353963511161281529549972424916740287845990086588457518093741367016100612639411976135334142031209879120357606338134997220406433219065715633874596220449350240880783097140920780072354991815783753125366963997910678091979100581769774831506722850627864604220670437594555880342789921445284145677077873370779765356715778069166990358165444394469775570708850408882591056444511025366221488502620812039207513285693375591504395915915671068684497144415033370192686373191554603225146616513553592454451984516527752093657986745191632082708559637126297074738529054227887547149652808967816676065093602320320170664094841676788388893832370391238985280621948954794694748668579020477808626918879844974280321518193259146482197202657481555765240315954419051265214089706261715242609159278689341888160461174980945433915017396969633667554615285068992490713608639388117956183546041352040315532905032513225874997654186581086190348077163983422983494018569322049317045772178582418384081377686086798556892911901399664070452138534495896954395950093359906987968188127280716851179936273444596861977437938564727196341053131477689403817950491702941438948891463454969168321440961828971134289602463705285213457054310921828965116755062659434225645570385586341218499033894526338838670283091002955527065300377492839055819172256404248930241539055442043325098990292632009752753755718071388490877001964773408794775899283104024743205546282977965477286444231477809111574259193716782497504894142793685602949112610107405728189411640808677683765733631689470674111112847833731717185381193888991754793880362162324607612299442455741736755070882987154112225081865640790950863020129840910394259588993538373356784294022232038977198666505307882632257376381144434380113549853819621706321274404159788532098474969447341487977891851350477008284797034411900100371816062827013630042682404188415349612757685952822605054137913968159519019687382943120565262824594995950981543627550956309806505637598773195201061836946822481758542652283167416074429558529012208628929518647785930937878903259019854985208870435512338239156448126564371334391967753135742361487410314297640057962751261827546542635321336360439306516712859662448974828502655953864753967192336653229817262785056082526043697423187070376170037854746227926935163063141727039748291280186898367050475614224255151800136653096815666150262786496571391999485420999601779392063757613040263922116200360111633925627555271838916240810618130294626792050859570690717130006988910567548809399648102151320294594939613809017852455761531116966355680582051063798773816290370607045216017548957690831042575682733603211042968051857643416389606414591636069738288753796507318875166899437094555615277048061106755902368810794952304575004166344738191610089068319453194848138261118482799424745298807251006095370365450794258285635230871895113853057303618010036487447653867244769271342841772291293270903438230706201199915113282976810152410067522395357880897965825839012319132534448554444094976692718426168296469234453086178665248756267805596019964834385721984493578123466791419452368607129250067728893833669099847934682686348714403370792074293554263734614710608109874837344535288540793029463166071598938752706096369236979940878483979503664565432869570057858719392996612178887472825417510036365861883265220636793235045110605384319210048629410912832719517825236072747892531321534987808403383838747752963010515568396202078567741337811974603143937283180900154420954090163741181433146116129040326487601822281715939660916683181480124075886137703785920609181936800878293492153769430277870751578473190185321142520562885159133139115260575974416422471141993441080855077420583237215836361292572607266892604530533303485273946226552085223146616055933262595855945332534798746924893684024905130657557715707416655123736349529149742122683890181446720605354221550390247099937124227634400215191994830097764584734224624860711844830993846308140816731904162877808710093813805864080007658338624075999021157951781974726383279877592381586639232754241549956250088863536977201824121068699581525829993892723378890005802009553425632050948270957559335363201483133950974527805534997559757074116210613311694522677514652414944754544681419200731975379188415795673974476711901500079912762728646004715777211156993908103350231950419753439453759959533664382407176179433534584067667805840471835565017493144890830073142486136144032223851308743339619156340034231523340593321097014154188198096760853494744925413526556824948789297795474625831157465572612907527883102690430905569146450139543174405289612789729867999548343734430058196921836700054711656532664535195503919704905826001955983069195172152114344747056504052878655267603701281118913392875595535076641498087512910965926983490867025487062534351580422399104413131381394252416967465265471717639052579656550106638016295449447095395901555043120675620714123674563940536570500574449298509135679573014249998862012911019254312252242063978366106788819918092006574978488641999981128399330145216812397517036872514583812136579137057144423024187438144199098552662337904426990614783171494252713886681188499601839274667613863966154737383707251132669705938497439503016272598316565569333716383610481680610539780237541386452829539206158757391955814906527493733025981852020534464708300370378848217368941483702648953073482647189806966031167162231945350686158668795860347161851431595418487311260576831767044489599887603394387786834386434924307312952284962777284045308795209324083089493165869440330260673674202071569790590770410091331775718466197917746259548324492831216146574761772689061559593605806009432558903361684762139234383056864261696800754209083594238153432781146108234718420713434976445596411346126730893578341849021061811158712380610259164271916263451916517379901707154865671026896409437331337292127631180526267634434088914997915894931915787743424771152367868629984056015196224494057532657079168096609353774978287844174435487683611797395922260805624160941438986348525656467600295291923086475653798540843040886272105373995825104038351073699024244093846152800962694197577500735247905696584426609511085755979002227418551967380802977689753915778932231885442640259360243915915683965022423689345727741105145461758456906861477360574789880825400494317267654494264562209783333997556844844043723705699704102043223770008123195789728639186718435135175649673984904273980879862152586077825965701723694837533643490929729411979657791966195826086796990662173455725751550014113692821638384115793419541229467610591759474018482284724915288659345801277035723417245441695284784166305704145624882601149924346780611044399617877472287136627314455000947597863474512927597271794867749146030671199371244443632095594100209001623361985517384014036182377076888650117827345983375354424013800240914087214367678297691703497971837894105076863405564961787382308260615140132069336667060266804472234672743780191369624935917997010790661403029022022741320910855974744312065611561221932281581056163752797526888543464786607760511013263328757234732316301569713410633975613208263544822751141818875337107140293896748034835295760596643906104677016019322815747989110137318112630103505342450129422185178770328001705276169089089292425652130185054484701692371955273449602708121419708930435418150907522925093075590268630742252397756608144656508866414142324393646291238439102034838235620241935083854897870441769584501419616758058362967307706632971279452087168120161343841329923630667004095950557528686589495033163555301600476932449011112696578447725469356879638649214299384265154470386124446812993159482932582336654806770818594985857439681741555601241632019423505005860268531474982459774560885737202961281873774891761075916268254707930626207005681346808513208407678210817773621618904336590415019817143636055054967828649435366626660107274015644760219006679128240426770531713075317181119498976385315326803692810941090864576344748608302793784518233209159578774999648695153549344273624178001906009963595738846093623718572212588903257120370852257983377635160520493477903379536832800440837307799295618666160044158591781982984548064530065623949921075534855182659243050687059601883214792691728979744630514161894687132772521674975189152887028076034983690754044792789249102372986597009680996280034876439504845070819605353683707593449699482075207657117367046922468428700767065591701110304095518623607466637966736620674533853695275875517905588817452008609959974986933233838028585195379759215422923742002480080490815879728740777335106476574755470540424860452503270668527382989548920611635763552433894433489329667626395637067863829127662483893905242790450803997942805508198349391335426451500886075609152206543516188374005930182582373616940859476370077741642498585124059251775437073405449691156653276720230361234569837100107476310886861343672296349802973167653715270665330727056250247840632327941462700974675871114989230762176659385146828418145826364986263723857768871258690594805424220382508355156302544906035484709547515718595288313968934780190222082713742639687825517664315685135392035167804151468655784066430706789254858753275521784451353343134568030935779681766398293563617776000371964289196371286304542560736672278693026233654309574765156186008249214011717617230564942455395228189297634820731949394600702021461506403284433434936118990299200153084307407746734437638583416891802225604111380179800083841590763481397528041588996778602540384059685511135729908018578345273490664139880931204340431838850432438128233815305914444873611084916387355928993884472487278996334541156658987222336649790136361866711258762985241835891292417674334851808187297447707715060861776498110808247142491899545770788774836704093717492483399192146642556123269180733068148475134377868106763038100113858736714246282544321335842006450406386930810560173101532427055659362872687875850130051161423871375429497704537541651221019333168415863542942827390977843168364370546765558764814030259951500706552763120342077466864803853902329303104382751505599879195800798536621787003049293673264824142574787892357050632420074467537475033827893017460077996506215926141338211030721797559487135189667731607292835935438026091208933809007631286748981202929404245949562317963150428802369914432450661897690221642600766107887635273743898326280661026822364753752746801818899118757548515170161820063763785476484424591857845758915412751250331146718914778703498738883601628150535486472504958994980393555438886105446748361438928973784758074524873216855897152501004070377265829655188561845547744624017481636594061118432374231715708061818540412832898389845401936216796151175906856014353709395504335784862839218815687221997034712637186423067010060734604387440678330949942399147550343539944459442271195920393318175597166378034680621421444563882018035253462608357570769760899797710588642163172614181524034707947946526077434979234440145334801902941128091061272923707952017602889478570077955422096166258870757387834476824397258474776946448740960058381661295154015029440768281958665067702101256816557863931155804824106663821205202957386970712578292745121272005541904256791290166553259371458612197407977279573588886246948828836016777179192924894092045245586310213549644408458047840153145478730186103055688556365158514757488497812299567798115475148864161440705134523915381228430789608220640398309846819958014078962904397231660688855193211228278990670634322277061790491024411245402145752265120744803253790261496893280868662756891970223556078359139230962114896970332763895174949306104170136979251617370022221902563613172827193592348979740132846152724687431259406725051086360346202411272789840803886105759512975906821618650103027182864848976108699287909623875501077294533320815905192783410474031229663246798812161037499585195461696305312049096422850657075517340129386400547730171699677479517209767443891310544225138863648989886961421518984428788482812544544094895283268866628512770025765074888927195980910416839925948730649633882308194768671730027355266277912543935370252808289779157601261755797277290593857518453626536481251125795165964257003512014657383257261709350966564141036337226895571894561652828139827107220457857331320035633718854831279447464941789158465505366584554087131456390117198052779917089191965660367269657383415562640784693144790078371524138957682393642574668721364110788545522121899422644950095405016657211486783606775380090560639811705676244340786273571092441199546443084603560231053480077638616575037200912645506736858364697072150905920276063793004508569853033410263086190497954555353800427355017240826677025182812010503713295767289945149851903436785634564600442674694898011060218007523802649009785158379109809890799772491871834613099030857955932266653376091433888382268262266787752865616123376394674282746048159889686969864461674124588650945090144724453006511224302594759237111818500131254931464600805324231191672100053038492001273249230552258183963705970197707748312328444513870393751460702334704112960748128298912078577896148883769927096563182444927544267854865312192519205120796881262296136373789417740410050801100451058515761391384500618367264346618123624399856588729685768738017233621272082549491799117952227953725978577287079670386006139480885718694738106108636173839516206888198852811803923661300897865257694861058640480550339367274705375107142403426375116285372580309893388415953405620728579501745350518142751204083149016892145391772791711383134139231253796325939145288793760079330313945043184404899977846196984629604827882238959254723332308176064576216439582024722524942175106206032167241560635829951904328632093662003113091374050294710870395744611722945006823716417636874298047996858033854761858155934649693082637643928428351789912721896667970771902198752484694084138650712167601336293376578291562667018473799583739292658392415858438322779563957738547641823279662870269984816425986290986592241935803481170213017366736318870339480447597225031547941044939466157243980118029857058349651124890242099123003696782771863693630448695086340469626442066133567620164173206212245239566421983434163957327617124305999185951714614451389430972380244844788650593132497593001447941406686907545064679005787547287409285123331236573130712345459207581648977538006168044136338926999027997354815099681703793476752901079943061027704633374784217525693124284580213640995112848376552657644238323254854271816481400255915457969106622497236379909851685709995692949893406249158475197469993829914162136801235875191173269791661651175944751694457383183402771938942272413106525778755082110687453747432427932822378743941550030655732093297846223102382354078788209019468627446530519127035215313261884840725049482848533625504113283144776885061270156526738002733798671301377570272945823185607794212631401475247650591459513857821802361257041390991799148694878047829946415973171564145003785920842703644904190036286553978894106740595000032757725725753060853774514058901091701328957629871522654408620421822072881773026409959765188303753364280207187990976366210654421279666307641637737490765014827726954523388311185160335043440698022110932412104130216427552956788389338335534103225665303144747128151338375901755871610916972261844983628610387880943742827926504077091051034390754988708841291336915389116494706579580674656596454156851314762891487423281112701378076011836916975320817006924678381633717926785884349685526487997924020559383000905510216409024602268699740111241079449292919535669829419097520998740985318579680713592365290651527560783508862544063590126591079676580584680894359005295538133711851321357811879318190180722314366298287150834654698111960391138788195252182686557789304933467422906676184942688180042239881597359013926816575421190129687690269520764354506694967776057899342321448273502190962400346736424651223593631105169650258789937297418159051551401025686129437566496786431245543981911852457647098091581404983465126381837999753856451599545805507413395328668465624100859967528332576127383038852021850291609278892804131083938927744098462486831966111708246982466933661673140583854318858309692528232367791187554670988511948004608408726031799953948812580783097287406324038710981505125240593951819181260066960384039169020446999177031533044509918449794257406245852353455473359537867932900805852296283434624437042255263992884705757349210494272488109729473008137079162138272496951667618767156953677471227114844937796446085588803147007957458281974850623645838806806668908810013714262689583312531046644715126941166572233668230830639791467731351701469035519520995551402524140063118320904170234551725670126856508860717982856025676685245955945561618978097841993094215784379058518283985668215920314515612217201264382071006594760930958540896237919606790676224028494372698207459625559230807553589058163181981272554142174766258252283891136832579773323901816509417393616491078418348213191655119669413115965326409123119007313677892762743629935029163703911227738155789465384663280264900594633846341924009994329165209312164266801485168322714077038616857019480755376802440428266437183746794749652585232047392495642273664349934334514475388252003586618148197174175157935643417402353142702134570349612518221180319692466946538772876837559502324820265028907183193865051793135047865173073571358821615729115137534166978275301937999538307526582913831684275062623333295254549715412720437184909190457181977878707088797338173894555326239019198484308049089672261777601807064111261997392389344290617889503997914294021952576932043347320675114044611944490378209280121747155727841914191889329025092010104548877412282142361141484443750574429945279433033628939096994530396823273657486983172588533154524017907048511942886296617243922443871932342457353652135690865573019566802545742451682436775103930577181067704586379725114529899170253467853702412427039394889818315192121599850042889116893147783954769628955299874816444027337415486361278025162389056987419969855069982363993071183499010190251164574358897585810664488247887188198308708294880826967181314344576747532185872376253678999289366736947050052309771481919280134287024770828497769827756033481567893507915073012160034545304232084012686394525118756323167120961922091305325880418662478034355714784728507427749265036323770167472567051359006203782754479856072629612789140329724951265534188011894851257507597464999434603442864578377865867685823242029998223435650830964383892850710155895219613530823487194480794288165036925293015014070316464475068442535666555928559017122517123670392225600514709046479063398730576411957388913235467079296935909126888409318269992795742964192606837293006579935976993263360490247491055435111106265072538781014860397171677006849925233305579574817564963338545170065076905041826898508042999467077564944829659495044481493865578205166589119713848200632680875606043006514338501297971409053599158938432838853292860201141998735992008409685532547435337761404352366448296339530255759454110149741037435987364904724436611516432228572876459031453663581661626779854387344893252436672489095407337436355214334600803870147309593565408443909963807605733743845779945306905766093708076083752139357511810110044397545671417163017184065394417218664054629944652181120566330345626034324477185300169661569749032409750423539668802310038283363540619814397277168230699703764146904238237002854013083295151909384491460131161219266591274910683508617321586247997300594105375223185905640562318666646213198280807288711537453875174239524260034963874603104874099629410322552629173877965274494037215193830905396500889174488418803789085922021454692154903270587930329785091152125931916234121803740412413089047454171883895322788749021119762073466858849106999479071673581757615481213352099777814600219194479625730563362279447413490491038326782914959814481510346606259765326013208027262570756828124562257159122082370063324151666418096998086758734604919551821770812381885683851218121023177041408290185938477213017733755643987460198684036262802427687794217307084102948148819721699586791219117513693088383029578517391824983857571842053921193841955255147081418317184415777321942589532219673300221611322658389960543953052806906426955357253952593625922647024434047189177297275593822238468245810954394325423458380657823821865955192471721510976056009662792526833288805733064090513683787719711573502036532363349035421986318986456906524752454243376215688258283321943119665738174623855105982917822725797603201171990967146995344610341100064412873115719028813930612455880446289205096746366786795280047289536562244668576639144961526893140437466865015808013593910424362997850916356731256232322479576203785953638627873752805876496253965041934717412691211869583492732245735404397481977915541387674944719116000228841060570074190359126301889079973145865132272329572463471950038755799527376946398514103735683413439940671030696939049283879859047046821697113462669855836178670334179173831466182218663511553219705849463294774000990307291129311644723478590927783581435945580417071386446695129959992597041434196014425769053506762121781595690233028961107653543251970896756147433490140670697656182673534073513206252785075080405176782210433973464457187986007652046582608496377925351115141424470331211059241830568615634747696686223003582890333750234737490060414647430575106608838162223978818799114765409691777707421283512442211673415386262589334540197153359080380286534527526774498247748974448829770524204487421819229913167279972859483985647314254868852837973033760845151761447558475017774543680642358807895078907322616626956429160953462858648383269269737164141554206769129308174751899340921321145815255873043910611973877476586064530411056891851432814416194246635639742603884496506324432062514498373030507718046458988142963352883731276878917170128630529642071236264146992492256057222558428045968350505438556990334035527375258244130987152208775715690269986268059401808514717342274880931230431638167066689368469957803608535664427087682351558332730878953773264487743849695259116687607624503520457153157806227279933112570699585172995031247641367090687738913160244306444689388928637401209803679849492167588204017947329713555682152246784566224586656513650369035709658998344490404546409918622877594199725234207934466039852393113595637831553679117741246279918210525400495843860472571346149321550624187447785068261635020519462467045277947018874704569989344251953492157707070228497047347726684517562856129438139504178813416781108473400612663309902626560610383823798581245977270165905000180884656973782387805100911418050908206461716863176488931026102475400508432358252707939045626286830662500553725694499790532881985153308130190836536319665641694346943786683766690897676545308507980435145313065663821736933957191490408592534618302832671681828804364632163354810132833189784761227790111270163692002929065932695873560776109054063896252360204648102246985960912863266836614926597362412540006081047067683240811573190572003697104643758033913204118374951421610046297092674519862976511394169313701681324277490644242790240029379051649647314454203699344013509392217021701246405494604517494833239055196573407757280498439197623756822765637512250023714191439407222487316873466745724274798181736051391572965761435942920419464015046636843134057659716689160717446659589617894092752749766096320605637569396905620034839988717421421103917280700607013060086078046590195842610139603652937274970978345305431817576013746079832506017637633316529926628865151922975324911526107844792735368490287419042049444070350780790094286099589757043003816492339204504527192579413023197187698236507476737910697008185983164100082480973318373055137725766213650440442907748759520218464699681123038775052358104147334950800499635450097162517727066376418403929940936997887160066851247942828415262733018320343424785507178228499577143763080990813878799699253997195850755007847937270131501673942690655889020446839333072714155446212972179363355696780923967249059710243028487937607159280294688800722083331692224071646732860498161112761322963111635219749954315736768749265392756966580269740029540866263287765064681125927008254435428304983931095319780598039254002997031556631075524764588501314337619716823970582175082212890661017475878780292516745070774261013300258043515146714627194972235488839867869385485977942363054518341559135515512019033530722642861087905865708614934616899549743490563474692731970514758231616216873644121667141756128632198511185817571044026550477761595955149821310137281778029366373670155798266641979893057123853062848834680269846388589986460976278099899950686676515301130019088143343473690958069431473706871106301326510678933928266750803417585520478729135986185445439099059945118210237134384870567205361976585641175772633908278346838161960129519936418321893188186630437343906466791428611491737052932335502645595481613488878550280401599305548950529541285518702398082367847591963071201181424795026967531909500913583624761174357913676464434264753698727153922006091205338286410944860482541503182459290636860215141581035888570403974477905100855137415202813112282488468845992922326111107999737872680544524647537671432710515980104212527388023575240203832217453862083896429018337651357110030960398778707341882137784747639594248919373764191365053746594763306324281240016679438820312170859882911948570851942761709004153823258143202187191487394828025152647236446275118571760417339196746865557612856514995887068442625784373988323309124473883081204452318372439698664223400121177305605131229768733455597943996301639594342868758831381145127748167935273681919725035513989268713663155301050141559241289112434520685796368759318695908547806727002056211166507196022704074938554319836494786326657076757880418504580452413555247109071472117190954067341738580585018772747046446662362323305736305216329822435484192902817626935041803317292602436392659720661141563396627274064759861920490666108929067277026462099014230782071373386916202673904503743779420266911677763636368148192392498116340418398506008140901811511288108230533508939070395296590894477791204976672269040818781081021706728520299586217925770335603852845566848525398060813779213591054197908129181167833432707150447800785812672031280286414744085230093676047737779013231705952105185177769960711303398418594079741763095410304708353897719533404300467055570184005781149050611553463628795221753246176964960161302254712048554041843291132310794325473775834992641180037645034034850348883035930892163636174231638768117175220689156882349302980162374864092608156122069694357398089119052035600601322063321983006068185817017967511724100115128035826016566087388145591885647205011607167476216093564434416725774633197050340917209984472817105749555108120307444917667601826628187878679719290872457503405744803832814915322746946054642581775061324146800310145617644978167683830796194934340950283087255571789598473926438155271974747994470411443228082013565710724386121663663698166143941739545091553324797126790921217475171831517306596625367430106135086558384305985820084133062076469588504842658284332897545283695865592578596117109019760902707601028569793183511140494838217373967620818147054346047251469624974614159782324267296578718595522482711708575215486191047858815927863583310155999129028341530349344070834751402656520650948857662171169533636671737335251882471729394714014515087223799006228488973417921008366080240667591557052548602949004157833602954749373597754046886479508775755290990639096449676676018780814324759151763618120873883560190362531389578551645291265464182593557682417648695911050177944249151036938450850950829954227862422473434433735755555249229803787596036250350540746539376965617849730546452516969690191099141364455733403772221365248367003620597399163927859154754016358188977319170598997984116513087168713845047374685985544786956182362373217864799328085853206804363493417742805536079553543966923180421278977934431704147203651126808091232967733343172302842639645608425215074955628897940619846241584642997542934529799279384336074358180513571113742931512934279137334721464659394515445955296057719842476783158035585154007734957132705420333293911487513220134906395259671707584338694630117920579653836064962645453611840131280139725166846699385488123707242422121028164515004018394333052118299085967853012648324708752976382956075631906862543861009522742081448656684809984973887918133750315044885874423349044303227850950551413503311172914156524110686968836608572184311331975802090885296164093867990463535719080935492726705753909074023836355263722091048163189747798417231354355544702483934682098051542613392471568536310627584016011300075754795943737669076159233712498914109509021129242264895234110507903961235101808225256102220717858953971529708887856594902189023453037652401056681475056642406586798967444041156298565719446440644234667551910747050846058944329637966127703819415020870617240354856587515427726236908014227912900565301043223980714877848215469347867670689599491390592621762497723055774615088061158577736592447274010727356871806216413644122590168202841375401989022738436625479245495137425921501150550960044402488419099686605681180437311134500703646108020339764330306705114636837248867287260097844403187772692622003290486027182784575297859877992547543599218552938151176561919798128696634413247941012950088829885064513929179182547502293778210154494654718224637917800411386220472516086702485871324898039528197422778806908586114816991972935284228412652737920362233232317305388283853420004150405790066332158644501709391333524368748307635511834585692186636416753626204332366304227108359779229390239109261727536014208940223552319724434182087277007873667636919939921626445324360594161638614800724723887951198298323750961568635781064407299386427197518043275315267251594109244956458079101755602652734391681476971152899409551952037525222876786807003006089323966915350851078946510488151939309480410980743180037922397522371141647485725798226331136779430477416436526987325307102883940763658371797542842264746232630940469999341701375996896341432972093769367401752241527950062808351879309121253792585239331612472297417796177386271549800880995349835715222457355752146996296663938808480519664973514308690236354063515191178524495421174700351060062576690377066154069091504797274829953658998399122736746567447603839695368891705053794700126670197184800397577665824897512424228091642949507895725128038845493247984496158470333653314405168240943146186899874783102231272072639840679057641260572646433159272024552077085876968952109281582850635245971877664071498747208704920849563264186417181566261132787298459441224059689120001512451876398803011617637611546081375926086942470665478080233457017181804541845636803174988655419004466518579880400806219485313073819819395952328413260363376771533594746709353147972697074731512066011408201919232544557783035388804469978501200282936621438928820566906368720338942777288706860253433127871410152355847701984443890157012540348652764254450331427227757876955167256712278364606327064543248975903605040251138371086144881153635147342148500842244321782762190605476450446154057976225692713994475764738658007205322064064498403442514193674473947505603655522852250170560766970710877914379023660724125854066355916139991369469094159855149135961432782049942006966708199451914175095797249465582279678011732771881298155502337298669201134404262283856388469399532008380583557459465378600953096655703995490368587395775834590845059544329087559826686622511677127319246589247826488693784751893855868211782367922309519690125644280427360848617760543948735569792743787319148158029680214325441560339985820623208233473811142345359658750832431165007536449205558675967172456901557082585925131994722536721209395328652897262659128487674526489984046467593988903400444190172709122930123863865867933371748844041633742885174142154783961609563249859488325117788758583963699345098584011027352528588877723773155567649065539406931275454108605941328480208184362755425278587148267799531414444851701517299995895371159926579438542689331990839253938250617210609935943357838215638246243262936619534928585264038241342272625499647766218953095776123839073774283509358686859956081555385304019573018968964449214351948488217359379351009795351142693560560379951751696894562386779613580137770847356304903254325977200523089793724956946366928080070789772988825037310926877466506267700461036479253445471988573309087441879362495667893108420459210097424022113457586279217200088291638615179359101758876709628420958102926306238492098632494144192850891108005300381808041403111998046156910906006509044524280235800918651741246785185922103679408264237758285541123979823383968070365015442879196222205858115674197461080883930958422668611379100372995727460241943841752009321370026345585330795220316537401100943315413868192571086900431306200122821161424728185505943165646538776497490741608745901133804691447718472163795328851351926330078628608340436291637774489789995668897972168211984179330519968692624144885352354913783847106637973363471285621374518418525854325238699147071275888632437906630866107471028492160559383738846347676121103665807826149205675520131818690173338823881765658311025121859472088889942313730564317934427945043762431690576301916623830974789263605157009970492414145259961963660038820577903802294858626983889113036795298272425034371427831327699946985933327150089319278713758367003915965551880029053238731733413756083726752547296726932730387759316709630213689699666251841452540998590737160944356015058260636894936319225475732299477642295263112348958852623341824868594250594154976385563513727080535500753523276597136197781139233333475740824751401607759118162162383036869344898865414184190179010097052171018053695129160439049189483672585875205910148983020804266367763094267946160698310216003736955177559789474609304263131060670417925616569141238888856261135525395850150647122875538846122285906552045633275872686159616716414204956813381859437366914734493960240636168190372207036899198532295824942618824633387278235068988896247237257377730468607526496125313382344262272730368234356654658394113997079761224224761810614809715987873248840196684522345237859074035926735008690165522273803039004981148908938444347651511484907467289269014370323687256362397899653063311877864360387283439012904393105931080594438793723661878676533836848203531429795153582379516687246590045626625983605127728421271314067838764318837996705885322389484184176941890097794878019500461336267944419619266194498791439171944712556472090856572034266537468436144845892522487087246942538448273942227842775149238976615408699255080297172007324850339906083175585695256479192809264896162954548203534979467533234770267193932581542272764675127856453055397488395872302394509054054794903158620834045227117438424749583091020670268040544851065745420135862649616574648805864771257952767542847818797926645708184397076426031904984593824818760625207929239493716294672207877281347363197849980650823602959819880620094594857632648715854452489525558293218795517238167081765553283757055325530879585479228907243885908507463123275774837951040987684394252328938028012004476503452962669661304677727730085172287499405370561224197220703493139255500314937819750108689050729842030545103089722394738221634742216999421489262496528545209831268975399928525043157105385978719574972114656516776793881991383572943919586632242525075977462221785515354934126088390853407300983131670390014195938107564720689425467977564786395609411884549907743569440092589539676024132633150566854668420620067152804023831076418907591059096956179630204015638594588985644842177428672241181479778603971221073004686575654670675923252936201109979517439139421111237602005101286115406465500178728152944362654052218542351057416125384350184969882819225056852640922495633169948711340821014135614950004272093815772840026931974546823055522455044649507381761240360129589395862336409324224764476074749434351811432050150744032021756526060240603158891161148870340727528190880640656315653905363029820348723630383439364606860508610025475774968962744985221038142783149163889507130070580106277405667381534686860854461994242620299854418932267021866068428660368492959479924169300875286286511738134720920325964329399495486965031754398174412508500292841580723443756185033341654744178110457558457749513821781148998355925653121603429533408585203704696614227703166856738647475253937929147235730542567544238093313848121408912566645343288469232737318704780912314304453014712185345649600372249440626233476276685641696749078393887037404349099435057901881835919709954261362049793587695766966620031201342479265347098843270160730312680520809179898288842754679589159647793585075196198649525839560487001909504085825819600742483006604104725090827985574621297524578653572219967906138648558476448766457986096884948878090748745583265292766695834427377444381361830038600322816877016382609807682347180108547835463419253160363859333385645417361533900726477743041743358029802644327664403274800245075070886323007853348101819215027231892045981709163292906288048579575909195413079845557762093058499030800967293364954144497918951657353966875860638780360187189867068712246176908779730392595221708655218978438738850356678570550259604882570518716934461130296711652423771816746003943862875621686166186566836216062837861128401154335676675680376469367050420179019789209027099914591413899116795600482458684196984889403390055989922252219423422932236590650336924989527792860804820980870727366915791242215387017870202921480383778959408019373572578932210523049723449077499693438128852442682186812642678657896136959160226811944579964353403699457348812027194052629068080274540965563185316917764246277454267926214769340487542788558200751046826523598871009837328750208905112737264330968697238740035383493475905611288181940843803565553290857169205290309395163485563300887420986350298056932863392587327283031235366889753223316099156000166070843812444629151898337475283953540400390750056330959160910693051935391799395647024745812124776975814606229880351910691162711072711586540780672117380268451551572154598231721298463635193732848773330340871369308690304399819393829095261405584896555523864341127794809666640427348499617978867187420397172285261009415904145443816638578500176016206881782426470083826620001892487243022356181876379364205046720037010429121612235562874436407185502049525843618907115783764499126098842834328756894248200780662018695572149957397144555125943427129658389716664129456104158185872970537635389117392808186036325539433250319908123650200972015069911866869328601439557764772532109279677455419457896366823642943328089320936207089097462858496645116622325109749662308569024382642570782102640982504630665891662451693042491598119173617808118804704902272058827767075314174255988215797128243023290789612484214621843034461337215052836379371830570094415729958772418098528775732823227540624360010294891085276090588248905045852146766655129461727604120187573761962801790136328293743408555496297356127706767261747372849793623555122736245828551790475652819755029677433413369673459681284626564667550175892488857570568783893143237960414032276815026720461492007478496532701412142342239109578655118660753158375918939653177112640001500203263502429549875743554903389909260238666524588641753489781938765499101593213669248668735860639142819243320861746217083734586824591343064891178182659925673384696277835604080919526049975762430279625531656031434527248042238550496547071288765841772384057611233495480342380730178856697744521438362019392073940718047097201891799385741994259029094907434449875149104376602286444007567777993102539149926339238293859103893564657211745944037095380299533050864150337255694105032031410076119981418090676014359446507340811840452691613322413960072363535160268548188039710848177239392962175906146027459868093282742544058758174406054352439448275049476002714680832585039661020903748792668920148493036486957254599638413466780602335614491542094701038476172488325771385892251923464944281271082945587130295516724271838855468922933355424686440340288734127367491601505535409770580900906431036960016934259848906102516876919847635455345561294380139726923488537398922051073179937383363516872557712317744420646529660350097357638047861631925331790402166783846079428373125212209301979967910664758173699655398016481401905223011647779119864900164476380715941985491813078736345012156847569868425186334748981449679212370646019705601318094324892921745841757501714904299945657308377829900031540041552806147804567811944949734296881045110312403026922317495496616440575228950462795072005318834876798648185828145332303959280735503380552700199285974748456079029726861549275045487795176626460063595705468388556678665824976209426958307666746771581143871204817803137426794006385269954042415367038663790990306204798782252156016110971842034112486668525151169147540305507657881803958549044700270015444212079665446329183873615187959822885058535446717009413217910235648015753169049925572772459926030671742903158938301780507195460620991164080862791363246887434970244860250590948944879110010074224178971192824669715190405757761053063739585022010300176269996921379781817900639098458825602950104544251021764190567560884946492328521721643571389037613981583261727745471409859572706275981800168515782835452202441796370939429102172373329774092766041151390702984447574327516276809092115940005168554266033100556236529447603446584129588029418845828253627337682883791192097117008141778155944035851933178219118591050099930127590968853280871214978541965786141384542523034681995177654034702197556949976595483584283165485708143410356443252375577089354810302979459387874743107074855629782870556773078083651278469042156469600601354713192908138806234904543089253072916615500030772087742963060433022809114480125560192521823656743547257114789641401218433358233435255425955551100675368393353647821407775848569244517101341409423233668041024035879224105362634564021868669547298864734623605662919148086971081090337120882637474810511575306555839222193462471696329943261150025673732930345102309170544548247262911279660838499208258683719193745519036414797360906799814530951890900135000807906809734319981006923036706542169594157159189698578212803983653133826929736312023180817820316120692376057804794528743186545418946935872458480341657759655891605517827422027967243883458739458403837320383621898855274077555544935389931370584014602248196621658526526547298347837250680532399923085827825895356842372275643842080139536307805845987614553590667468052202818787474657310691024071569745856817425923641014735423467406225244675673953429194030945314535874120188370733254774359402615634884235103618390626705052768390526072340689175403804573023836143131002688771938361386922339295792097878583090260025971680920057094664528894114128393868799669870075941378330182656311609292461748019935201315784787008322129069431384893058101961582271774515352608579414997189537618328925190592522136339199287161532599768085994017762801331997335699330595187392211831489328566499370394952528532662663373284013250529908945670348357667403840679986442906639631608586063123273400070175755759825166839079229155075014292233063593079939072378262976486107719454503683245986879228223963818353511579809520393390966196053885142009592335902471125567272058706391150809273189125879045681840508322295738871414761404945930087098080893212735828202885309389163628282886294454900891783730433546130261766943833543950869770908147839418490927087526356514578515814865550087598591855423106740577826260530932918881408734522487635424843741828558713176241623592382150297591655801572473250671637889851106961341829432116439261755252944744063077080821051168958296558657570921160291867275034087547030727388112119107137884571052520137646952340852448062943750233822833940453965380269196589037422398186686256182481201991641251187438469422340406016348397094613190767513125951006001014955180429416462726857062362737678561235756356659524259386348023968712900593208915582669589492824756246224270543857812739440588989090230389170141649858560842166508575650344453259158958962275644049215742066960483827173464409990396243645816386693550706038302183985348663192427253692112677244811605541699050355421480854389101727125145362440968889590264300311504794161727958835795007781481314525039608341726535612477207055043694946280355436155631086659045250062108717229116897331425952257984211037781589986249515337029019076872953593750117339745567459190557021150055355665939187386555375228367809012660073836178457755145354674860111963060331747407301861010441219503363916528251268901248582242613857462975553793214303613837282639522426303942081173063166554015644679692884142465559898782029435232042978550514904685214751390917339033583764341155008327171030600210891808863106683104287175439158257527832331926047639063950967705352874939349420795400838222446887613527845397166254410144961886723021974346603674191448223198382699344982880693463172977570683649232713582256319152245948687343235460061742444709468877216482050463422114486601952777085650140323038980088289437037529358648631243042661541054209035642556528190222394314685318065668661378859050270173810581437922153106589300957688146482931379425523117015912411644493753810418622969814723970877227309060255799632519375916649980339379237198257297801137330561059781922577143799582719251787666220869348059770225128507586905766144791557293306120659731858623307279854952797099580745491868975741416805002365244428393904404075435718185116617147067241976365695129163854489705319892599436209808713585095835290813447786287173874640161262005877898590535933847707115775476680651462203427257522494178244722851226874258057935899692295043406342792121160343708732129312953246760121076556760056433037481862593445908389132976880867799883721262964182773200207189100920584084510335410407294117211774693502834255761914564590208404185692337325962416127439948094848476018720064009014499163028655462760847602639479205102007680247738982418005812087108425317011755423873783645411434969176004333423025583235240800833169577259199380910294732342965467250212915037262389688297518615638849472061078233883149481159475523994058023438691125982320365363302016993279140097010051641599493031532384655000791907566001143771875465582761313356359556422268026282034159310851722944841880149683888389466317433590726274983061040989653647000657378131634463891034084080518033012483183843640449253060561751392543074645171057668206840591178875171811636971374772093772619423722207749558042752733199892447030591682592919961211616540818287462723397152262292167672601154032507568865036716775081495084484184311788993781820531632248616808917197643952850265683955867833489579624587107150516577720384982261279083306212278891555082026331819952082773503217422605778428712195604956429641149519717158667349777912898764366966312446552077129830520297126656941493754552097969716865015422749134411073804263132573710913155496840440808731732632903874164087770963793410557632529997851620001533711271791129205109806020580141169869780737576230530668070327518667169502643750079597778720270347817740246854670373773737173497747130018474900532592866638625252702177586998922261358145642755041623211285054739522277959174322890176565304169805336569009381912804701802154392793378073468082790564739115781536823214454276421496613530435804694657383441065389106584206028252914258832705652785160321934088331143962918194331555970638722368513004116408256648582330865658514347323348203946606952578276754578176520025704373777645426102761660282535718759382595948514185172454923147791024566640757389697676802462635124853233462714005237065102483328582675736428671128525501824387945640993243391183128648158946187271563975559332989075797492053808547728612885155392016498197208405647707164391974482336252269767827550412582546166963031461835793668281476829210740846312971747592548531835377673119261356788955952974913297076243627916469589664442003937338980347100330195941625368625605820133321980183516495103210840026975029767588664366988749894002582896821921088288179243716062105511329199407661290734283640998335257683997480594196875060242783356168631057097927672174337883509242444216279549299298410036621885325971215434477855659151222867702103395385625694199121913009484780721484461975003712667149460262860075964197578277769194250184668644866335532388110403002114634681242964320168404292104651044081997176698941911724723612874154714316269235750136950760421057806475748065029119964177720706036937774065664110264341473082802367009166659000958225346032789088177788261453838026181092581509485086101614354154730364436677846061350325889537561947717659539139613247299077841640736993641484559344282874938248708958337473485432579793933075920943734750103740427433075123578260427153032531989962082482013512133904837657723931259171216531206619909083555524959082284417738053090737839075382661672130988062908774512039720557419114657310486153610547256768631928172369270462990972324801038484379163288356201434410211218245819014734897131634989701617375818980077138319062997091860021076708221530651634522167312016658622581989580845018799226684755841585768647361949270163135489918850290555769851432186042403020096048310711367083822936428384661567561200123272357970173578175652003993860282215862073308119582985592756302549081341994735354617580508405282612717046178284960231633042451332815479183127471295740048184218783946582691664220373095688758592879573143679089740498528991205000110262755694958962475042786785625968949958709955160143409930944976585787438453741351574857031758358652050813048884427958335404008502183959545440297171665690287727671183985983065655975148086396085893500091129445170668857446823497431134942297803686750843987608767123829516397860343980921015748423806621790745627682530329185486611731989739229367809778398444929671674740834190254062482233096446273198656804637112090921805426678550318896973155120393102221783437091876580739744719539791006454413494071994756635550096911073439136340396831293753790812770263118303674914266440907206420144397028933960774440808959567830542122434664534658022865507278650945699846160489510234922028329114254724696892277396005623632479419640520603221625357544821008618251657129609708112597835727623566170548005212761982301301296694680924989576880349693601951430475758347076700965795488588543692281861528128619255617103385592877074034995359096678168726859109588741486265493535916962874639013282378658651725614733139844578804102114804090434949170885118322708456234690563205684085326173752813413054449040891099521398557763318682873023288448332367526827742861512865367217728467530878456827625111552963289635664205874060552944378657840367382254349656708490385681139508768505104363607669368074227711900810932218451320266959889067048910042987025298674761414029751166161515429042838104415592753135689810534546298003112017099746783005621901122691285319863901742114022213982355751586407226640023185789868943393558781180385858185347734321674312330046686006528495009947956919440806086047913370215921959426462617655212252441490295271271068134078239176877962251775538139163372081904706913167404302957746319264027488669162039654541531366736992979349252202238215531484140175543328221798794705342256185919194993945190247217240427400480582058424959064203058892340150896157730654783871372539105121108198311859455954873769971341379225627105113943947375052796852479964243289065574511996471988401203823522716424119871946341779087096626397926336306561650588781513151073935553517645846436040646895113488018055475870259960043467753084725480220820505456968352708458239908277188618409464304931825444910762632290899593257543646787551380688768158618431702431513576180527970286639338248174071503739121657828505595823637730064997456035712274480955685601925019316784122814195336755283342993345309639513234039348831340457534803496993626930517558681869671139585465334448904713249562363953646677472188764108486266694782223011120766973666411496548854086192162874221344411646565989231202611991262978850692974656527486909975966230073350236586278073629932262745879080508084143289133572700684929441789327538043536322357076763766847185110686347565520353439656152732422503174282854412111215294249422733697263716700363372033713359353941763008565790190249639700696221421082028265027258530930385098356277388216760961901480933362002475846479436415969715143566477722626488079783874471596676542980216746727093562299891878978558563565584429882872817416849556158516110262257548097942123890883022603702364316026183630341641049312423556496577132796880352322133710998098145296373693504625807299490537068966393298086009231311363512139725082668665998729856268024598875137113225904893119345956747293694439907180539137840364989277732229886295377285263823853753662868650557458701902808976086918161002245059367445079804447165147433841731664151916873464706172135467858922819819672654937621538543919029030587231978031730168901474785085267921113405041922034859502988252839844568460116801583124059534861825130034324131579531641506834429875026272363769254653338736091915546385250434106508679685512448351023488980075123062044384375741570417322976244393310365652138743883995089455081554406272183213604040647606596069639822443708656585301912360449262171350767577120253274837538131671089643447293341776985368328711542568219123427512693714784845293758105801105032499076825630642987831238939718966059584795510463093514291242490453379318760425477770855553191966834376392144412140072229142865179872339022764685141583547168814142825844118827237055770362808999413661235013085585639959732637812164125381348950783227194373778434733300150590817524543954100680983391689126718700283457352628004168094812464103308410998688346105890438267554213045923628484715601389965569776788145734807777513977413174790946801724977659422274913752272894116489219108946802369469693053986416444309242734388333519338212983670441197052462183725764291338573242340046330782518433402137191902590273544494341640394593358412739507624485893699616096135844312564744372206973756068704760321517718649823324819760156357616637332274708307725180294577198706855845609977161425578059759178028719136300219568163526843851814040916352657954569571524768332164733276364915222671018085779157704468383768523040220325606318895180915121593754184068227022078887638934159936051364800611553266789064417730141984458394013402942403325908353133024763519122480418768950398413110123369409061236611688874951920565657101933920034834333599054763693765998653262967586851697937449412421563421759834187937221538056255424699980168391775099298450129557430610966835774291663798448752501157828197314043717705932895299476831610384138085127820415843298664346654106788146254972524138587378630362279526316679138761684240659228978370599494868027604872188431446905142811737052131362159760236559908222106924824261824982108432768627218637138446595046022171346652703734286319934697706518632457420345976098482612968294179090148499733366114029457993331852489722678628428311635873353752882073158334792783530468192356416919383266211639813987475393554637368477327006376233693959330972191521011423793660484527697013133402458333940971094568540415886369334971771877326311644784346563727459562453655281308918786774232939859816018046495733684224562231538656199307697577654476403621300484850676780893595109923699034327787194723658316265010418954597074114804208085297820783896880644733023728706176603122650519242306406615662657194063683594865981620334504613859907080861133192706554246108348267121429559298937608925909436165361512510241860198162871286933892639231386219610355945819068454209895915159877429994441429876091133799604019573950219629448949179372769964440047080757705196756979228127919513137332660954484185552566017289289442692517597346931560671992086705098993867029327618862901554118105936133043685395554838839047472978066640025836705821779109930814074332928082128844998961090815776454980059668821817208866420388728308668810084802452684878844438113560203914204293170371467449576055515314784278292746428755336015369759924876027280305484941261597791945230572454507000612032437273589810210706425515010795899534257012088466592754761359853749497844863035680908803616697918895213942540405790670075151627891681279630538311666774230084726945297814191366028990222670493784243050845555608095691402853657735613164342116251520760746030125303676766251676831397906062621500815390640257506326925029452187171682893646792180514826901723336012955841204646689282430120175155513190280107536371000676944470556909298861334937568326683973034931551842011473843957368583397378771338572900861679965672345244807095430414044743435579198416449500258572951012309911421349926144845201319166411254789804158110066568515719963250218420363719239630370139474379771792177199050736408862184804789461529363695662009118071236983817964025608422902744845694935017058499869981570801486074013895564626838488972026444719753345943574563949635725592564225030027527908412700003054909196296499054663601825851847755141973418898903667408913788018607611761522600558440902622569540716361242051090411482029968431880108370708319649553128144719230375215094370191125449621078134709667182298153328978441562074969464824079764884975234551946315921425363680351232792192032277001935124338645764128696830812729220097777100685657727384839548719120668093662951235200803493903004450138203103648503043339328009583792655573351203907647649150919599788887583506746108200802289618978588598756423634987552099888473883070289543340396218995801559043743572510667433313180543668625302448597331510367071805059838095036795575113600263532401398565606816534727210235966356239664589759557600108933956050199473251461155477927950540454477373471798088306385388969877934284655822762862073519478437070943775180494286819179568641002697420515795260418200965805105586532030946981742555885983028595581884968728498967960805986820362331384311698714361807225587071998092960708020734964078140203361844868782380953319618754536684286237624803347257378982327542141401004770273783934277613494819293646224386706778838551380732626746352955885852401515385830459412000867590111336837632197869289120522949900985779210250232416585844063340470972742510515582229601982154264884978894329308110493904353514161148390050640096413367099184269556842145838295433542812982109963932487552258516327824773207788414458154759263352617846524391096937209569944096567615415103215416198179040705711577706144090449441817580222263644907002781392380412400032870026667652076908966750096859015773088611606667050529226168520597454559644028708698030850115626283784226801618984395056683777458172306732668334210540925851898096335573255195951530212881134673168821587943384735808470935764700548359751384730193007887001726063408017200121520313668845770834110651502805614930693675290234480849707572398152139145937407787855295153534110512354687314032972335740192571499245534566998983857954880858472705249520506066271990069473327827637400510006409824954751582146946474924288036127048276206720246034702624621168664540236988278822197102008435013211182328900082233510718807257803887435682322464508975848676178828364502013299496964236915555124661009601649882179977082335627092510665304950453751532353432536907110383958032165288547057493060579286483344194720473331157125220294289886811387725948681988714872444682865908597503033840766608697395931190147492871808953944011569516506175519858505476712562428081339579116103661429572557399716609317070870666051606819298173785883747816957516093016172846845054289037939185305337193778895041083716621939645987522188016879738308373077542218950575079679015096333145382949434263234542363336478337141885742212637245799166245201150690299743245831579614580795116998052809253374966662606969614779437912757500761425064071928207779209970624517745904902296909275043831809059726395613887378708323081601103839448423639795509221328225683618995184853940907860855697081209608405111718669924298595739271904348468179461529113770848392815482197097598005645895210048670492889227134542140615565381734808548139415628804158246187993056276562784462982982501638571570139609404721718506838445389647896619161276946320006535555292492877981765740219380412256821053014578884189264805425408479151381046971036763057994131580264069562638276811954236829606509699908523017569708341186963272626191369174527193016510257146418721779449536068387652436755148898038660426874346664496671109756247785792721567653745942058628363058775754306831518129830643071840568332243508257450451942067511583693090003987750550544213397802716002053052816011455348680439904378623237653412929956776591045853388316288051450285030049598156230051413073143698572873455176742736411424679758005930878020041241120527838577652589762323254529039504088943439596749058529904982870371176007584600899416994922363641361402265399530865937419588311169642714293030920563620238155902963552756761288219034807200986909516894021656580114219184951429341165960062521016433217595327343995555799118102937543112186932169029170483779359865759099279067942960333350257240661508179541399619106895390427367763160839221455401887242469038918614981718008409475352569210782595473105524510453506909823199196902884897952705343701669377208285333955672025079397646577897133294354274299074226969273045361864074192207497694240015522291212882149726225853958792885215505066029494471033145949588614549001395495247465268706686206768495322313021868893480038038929510551239643362509016425927668890874118583670815994082890623209689757523224478957055930881591328320207000362191548448923932327111467423900400013198675847108455292866684886897693813595259188028844720361973071124445206510316287615081462397214803050819530232166068354842953988629379279539628657580854207259590942637490171962584372449139328044606747944172827231686994196860555985074215743390890364490913182973406337815289636477370492348380239413752466736756724118978054588985191974082572356253429265258368980139936155433723251969164035636904146784849416995585716508227803002306832189833638141286776077805119959395436135916683204960314721890765939363374370614215867463394656869833761239028412869668839757386285981005031072503648210050678671556049586743598475436169231398955014002184401546300464421824691778105898027009783594482988047855410789090476604940157864939444756806699605637715305332284348098725799858269512347926494711317996042854221940095018853124067799756971770162283034743903463090806702283304891450661141690695516052330305334261357856009540904363401460018810828523389687572434572654067747773227438748131456680364372821905484207160590842273709925219782977917038173602568532090236627064319234847601191567091042551805414942532033469103942850635509842846908407827253370992523745868736967372022949709386839066646343059527801828273522611712290512313045329520020955898119862024888246388072477885851686178996755190932863557553039044435854576186507339023612115450402914531249913131015673414144197090471746414048409667790518460543008000351661158317260148702921462349352766324132631954799843299698140929223083204767743122515906736049577410399934295610799363098847376165123626064827893248500453470028858090168317488826230479225958236355529670257042992130860470375213178988701621178457666694223293602916073223127117376746841373148851475336786213828577131887215880111924504104071820315271828171658532090299056699911102251539068506124740363695847466967939046472493828045652576239018854596066606989002796687497617617740779736531505409939178648547175858899538958794260298045142606189584355074435033309026026903029370655661569164339187053301033193491353265987674468899756970910749240352681976374468731035101463489010384358042932986167270478220460265583742135005660963385389520030660195110567135916941365332724262864680832653626708474744411210571739158827249634522115803387239450335482017211083626027084595781036988155273850432079876280185249908340703856224706184923480401778326991904061740935203362787330564870488705575451915158982235344820978771100989582022490526280295915973025070102359230555213197095905855133567826361071751199953885988778889390456539249025434208278738133344102196485043399125263099292718560106868448143347278059079590232549569019675893563483853698052698550075133205195395882402818097813188525690135905112856468673733638543761634122356379266244907292857691967739762533596219467894266968031253787616849964652230938338027786588509273700453989403774274708866393905542233765338943253318887126898588393610915917917224900569628514504212826471772340573314169820213918561180239373362111201604194721627099528926573215947361369755876139371136944654001773240849139281348660313273008890089847415458399821904107575303387358613833596507377479914515748903776073417894050567609165673015715828399896097902670901757343311030306317802686934013574135501133905147036997572210779193959835199754961541852252389306643655122774593289892838383832561366576421535747385094245206079116347660166050434207120745652863281502383063714091237166210896868816337442726866877125271113294340277196510727321083176011780718763093030089116635372053828036808671164477742001790602367367886294656000701562240634017559993686262934789069067551862673911238841858916562796090582842661521964969777058844990797070774080973694651408373480012552916167657424242278794066275693347216187522965632806852389858745421792340272472614008080512620999935017633076019990860688799791972543743023582615080246443090704562399580332171443341684484982768783613062603441987322380368947278968686295271206066925250444220591808475594355307073879565107134609672309174336117532648346550514256871746089185580478186090771821681451933177548949708811579569042535341171268174484408207965595766870343705105181929011623677159824946627999425409055632140903953336931914857343194636114590769494640412466244313325468964030423431982158871993672022835669956967578815870323484682410588863026026156068643785254928666093229512957965420604221839329077395454524476925989953450340116507274144927342286511795178252347794003036468872160833872333357560198481266505959258419403508047427229064110212919012126298416416977070059874423408572382914650140535602888426046667885412413206289455400264173002922931203949581029652798405574790709011446823124155293544880614596957566397909266875071445038919300182155441990586320178179596555061567525533372633493852405254329224285094162881652772290393935740202033368362244456892528117246413092625172279828074196033120246831209610893112537857821293346799269788256133021957491846656567458023701305218713196518344659485792708845326706580385681678134738208380355641814767305019535122003713792634368004172846724289580448645034012202869039328614907272283451897275700909795157013244264267488070101334202370079112656663591152613875106833145544969085495138806571743552112835081259589619489332394246619913299832368800380914534010418928486315842194514156611660589587945010290396715538780279552367192168203847962540323508756331816709035595373060041722442170550548693243063860269717113208768968824969579114712037807900342948571843615569014119489635999049982751498481351131784413068710964945635990966069572148323188522083909890479704452523907453545028439258990468903179802515695235027763759810058444064095962363559120824910593606978230309049235109935465824463337272640835542705498926669855858637659207303494564701231890235606098201256274800012763485309370245251977984216158991528878952867395796768538192961177841096631138626469286028485391481340315448409811341603928101345840444692268627104397694905995071969284475580597099045006455298135454783788362465540763230716210468453749961580199667869977148562492937549957392676432319388418783911189581060411205031459450201081076009327730651561985993202594933412204406352582264870163505415509426438177047821035529350266534953515764200720364282716118855250148357849772825253981199022370320217475207639965989962488531220708659937994035607600522207756108531109517028559272204258777742796171778720224049628870462292032080921588885980315631237318832336379588042672005223680067016085923877900443719850444466822525963790558832451847437520279088881968717191553645527815885184820024661078715030072626333528558691395890777082036881700810110483659849938126752627659810218159797622088166607281242478798378766366254888227176342178546448101242840949094953298124313648109235086002542696073268026838296412130814807614736504200722328771181852867534024433410246958186887033429410322381722335443540532879707624245910453684367851169940823125109578764123739288494874334508585125325311339128444665982061370963991579000181959194430249409168252170353011778472936745955103165901847648983805791033927436401514921719114198798367967831461447756221918190430977362614367849114832015326588811722174189464268180861709625328495012293038037092810375738547301251335772769296917221895500850423811171860020451216750057978316432939573571336581341962315660906516544347237094086054312380817260932150546629926105375432682957688072248770336024384252753388321921984946740874588263596711488936718448547717398593505030722567278560660338702798903451201079949734979300125832599179522821697577098520460053631373340939024388835451460252002744761280075385482198771043935266588735657614826736756532639205962570797055785579915807301022175433548141030439712469160846098503598529218510445426065156286409756592431485699510941879960590418996833420761793919122692727601221831953691900697570904478141853974958295709455384634185717245385458272178486808988937887841659467663841770425202081850890776126973974183287270401407189931577794634202902112145093839586087099621406532862490213345401426078828622213434377846397010148861903506414360962560002305249339786457874818928156657042241920965801462799663029603982642323730789793413858146873069515483322716091759531537944802023536239884653045600602216335583901331290068855841568820618664730974045726366132764744247205123205678554607621468869153041883578039594029616606808861386833019937005414095339285617070736082917353515345227139162609498580186840635323789218528253185026212355856154992628397018545550874614546646808134782077837382198727490589702260454791410355323286021669824888233738850339171871418636701943332812545459388992022204459047704950998885283876641151675857855198299996659609916320017435228873215116722426852763540888606279476169811008173390369454845875868075096813084701999382277710271480595189427009581951407023247173448584469219691266467902360678013525843886133475222172627003290212063442079305437826900798337231735195278306469854051307707436451024464884383520951437569628797889497989830019180485584227330451774605179787486224898403208063356682359107744633979997619353379889253830655663210558359965198306966450435544094387075874590616242174525522479965127822649678252488567146679071841994172009838624785504490162974859777821608584432190858023366332662649057574865917804195762062725664781713313079508114274147095330308838875500073206440516395010754180732678659723485487316131715556752000053298453413744015496848960535887402124229659900696806083422638282362141577151995369656038717940221538558586808500000548822221026350329887917852307090577101563116614468623937318121474672226860742814064598778225827346789321975281748334284651236554331168139501438545542817586423818913860307478508628495402878679847769562499506038570828953171193230396149713967911870886971518318920193801315696740888168538715310351182027205548844730068107372633281217829882094562538245928446136301117633270949741998089327028306255169313175881753136260820572371264329943612210136726727487744626221549319752536851725961990311505989184990265878973161938402926856387875442681839812580167146741962058661683715627340759976475828749613499900923924666070275524630529618923332670599068819231725671415622938053882928436477498439767773971188606711298700106889199366214374954366665257977108938768194042346401665715477890222106425739464948647365985757903489043674236298054639309803748687999516522672141378975291570428300801981835309061163912061072022868271046139290875444793227281085516015573098144930919178395878369251853186926884096531763430465822898209025318308154920840138304598587793720763045996859413837102228386316255044766496251891928476677589525927185949551441912608905568270093250404987303588538953463086247863797191883361969651771348549250265562061099356622883948889593378533527323481148293142411707422949565140980208966461234670306527961338127084344453285254476008182570585747989264052044658710293660592720710117718694843559656147519400101347886193763656767990781443590713753425798569315726141951168006963770205484703380172991383118585805230823812324775968677423513836699199547793067874913598667042480688465262679834292725686435805987717811882351223693246198288401867300450836687518205760014146021241382491774352398692230962546444642475412177981991669647760101190764862963177186484394589242689126116416909240410537344789703774464983787838189653628470627051019438879421616368791511005035088001790441626757974649358359206911342010987195771155095003026911270931338071632098608504830310972796408656684994275441071232696751775394773038382472645127760524220756498973945481345512462602575146001247535179837434350677982790778342887776320531276995596120418433763460268650183506159374023986483508374666046680945435391489180320077218449778598418759698904107285906327866062416844601195434252549807135467175792187944986336082977566271271258856756082839178388771497070479268499462850636185443637081269809144568256203647893232680605536263076910546487294786467358922020413502397788213742523822759328549304331902522543060026578072335213420394452465141901241359846450825770648088781990743307976208243698354346877538307793589778255477241729741688758833066332376846452551286141394109182096590278121911440388634393928710540109948929791679299643365264243972854367705295659112352709493025638508432661290034812544959075665152657320775278611414484139389441449251025262530166561931862353303406859130765316072432808073342634728560986762112192049621682665019065332377540155843157670037419213987630427956648785604890392740822575104830601436788652858798352884233161823107189507071564016163502317726464716076614605307794037770000038468770581460134531863349984506756091887199111772031194195691185182415539025699992841110407404889909098463600604131524114523240905614342987917717907130173773366558268738206461356460035896054542200484487542466754422141396042558662235255905984158589615146315028809513736082433626353697811995610759872258620603133767208032509775375467315457573880433061543477208954992857905474520961248513465656681311259476635253060921177575874528688593833034732684083421015111779006141837011952693265298506517366126165560381980478929030385068033360847661589793468538753173685100558578529803821124446966830771540661165111309579129596077816155594131756510435715981174121091681899826601063670122228703344774371676469526133672553064079133522587161004425300758242791374867405915918427346702845561981692265299817177674275179539234254291734133489355998217035230375324462324086773611694370563600579613685983910253801051928060277778085985989058993870571905547542280164140136384873715597895264110830972052369258486834871537216783413959347809300978817138670965771035304719121890973241796236394177748344923437914247687320553551334663269242516091627291803276427498093412538851240594845923972483708623250945819075969313956630235462745651651950875993508865915923207609124806106551386591575814625330683899827618036278186316151353994898604416207479104883007980128723217758047406216417685632860491666751583864331988056724764905790148847918651514181461224680919830855278418665013320310705533668760596377724433418751864888550604181440721970751429617621641777563327929041549033022063217167842218508528539222596288598250443721320540042825358275800366212251340228419091587273715566415445592174390884310364640088979962485089866428098468705060469488560377794770756847183957558003734568120685656611340350192009421408786415677563758159399410649646110237661136787380306465754700338889504806464629103570072629374819447465191130780536157092013648684692819202704872711778996200259491960088298211633418222897051904852197390100241260957447541007467800929870451846777927072553736106686570693821409756790249085890907137465953306218853398443492853731691088367940306384982031161157968845564464664998878632003778288604835113952219750963907340487636378974657599578030107097676796925879944239225235366719483091056536451884965510104255965590622244938057190683824071565273000665186837821136343378227976235996445611784180481396195007691814101230069170330610751093001433053627017800965767579178386526023591894875764266665695016515687827878863894234617494319775301167798843459124824172218477936920039865310757746061352823946003688467334358479331767182333405858160317537459321181699485883777242230701368908563651279931765783891455102817765814922340933008857603838214265979163844225531452240084712810050497404669124247409271931529734325765334691687932852685318203283574411036123831720802434175510965188195041285160403917036031598699233728143819321084277225425373728537443285047015600147770893361438469713552875513326760116923462679015633257753533134977785807321655098874492812467742497323984181613966592077537496703127775167923998485595918268960768297311900201199103201493566210608428283209497159187424348968014761996837539198761939601685448941890330989071511075689932367414526158509420521557996251704598372335052980800960438879914914932166816287780501294364446347756272291525270386613775381011205374838141292137623660421805055348244037863542693338901965107531105511311251472180041589474435725050815321231690297830812074227814589574295831267711493532240422087923009360492327269944771675852966816772995351782433945367755455121668579922521538838372809918817737675573622618699900227472219306576001257337547803658463238829085541876418682173608954428125973701479466394114001606905442419769886009713126799178723436846550701141167753475605430291260917555819094714530769509925932717950363229176267800511184766132809423372051629416010988670819602023626236234742456251241097745781056502576908844514548675778777353282236139396464404341908158855622072370521815533171605381512480645660694236527682938032288811763727336653487281801941624687237539218825341318051037584366544774190434221162246251481280596308014690350011871248785846284839154867224182291099974584811360044353526562338833622752404567504580877279478979379604135857110956729672783745531149873099423811273566479049376701259356396425851975847689747856555636984280263758768110849546746937198567997419092303276852216307340725651266175337004779326139261631130938011033793331193099190656056287631510283999741430314367979041859489648861647253197268979169015244737319030118359374038606720282969069883764129528500807073728978135813923173112114498182404682862919638546626889002929163951353156637526183977407567150370573074926373747792534892345541926715154737208775223038158343538380351833457491991459118080396880796606460841481389152566234659117719223408502492987572427115543978607402772377151373098284820433925284520781405782689107799275296702202652694124783031384698201696564806897539778930130110590262940730152192164409260901999822565964569464491819821320853204140681831246224882121753331145826086334603133514067793142816994521490978580396810303150910101921950942922148833323610130368738627286662614508266639187084717759595022809179871640355772277883740563764980221090630306342163912250738734292196623904452028764864891744548796435573463000125277844797503649674201172054251168658763952985576596329570921615762582399540957387194215072739405436448399375160713711879686831973180560976250163378857989272369485973270921882445275419126813184332154945449774856554589745453618730530492978755925609750791874331666195241829612412690501595847543182030095554917711985200934446478173633727357111098667728234648405034997976582009654277022753191293618033697448055469614217483443107822044429117330529848154148764315357062943423772029865652764119522227523488670106419286059672330821212638535818991541279018419097689732236305316264717898942092496960245006689332998986167434922197349098342275478154281731320512562254308716992416995047759918801222629764125135325710138872766268491179625669497151361804415213888829424560094874019312422672567563036419409731074330146077431238604691694910693795100466319353986968188100061045138011562878203839610064300925587753290822450814725903161590961782179912800400431883126556489966277931634317016845533627416966807593849123367253210207206880755133412508979087849108886220552986909243572553261716909267209604368884628567877788901589192159067777443842170670473579227060873509863234057378782312183638847054139378723534157581787840179261360770414065866534140645256819468339454428336029620739063791177789651114173091920373090671705488730857574348721908829831423018529243238949368347243119753443546460120730665409853055558230483857537158608757970628215343855960510014902910195494969008090232545051303221567445510305149630742294660191692269913341958882003677092141279194909754631313815849714178966386258801774561862681865169651317199520958662579238393448066049668089364002260670517770180137833060282418640122618041207244945307776186952722836899734282927360088490942112651116353113389945476969387594289904015782326459983416532557019563553534831507050072234661516833817571612237811885003072308717597932105134612303809784783262482163191436415945035859907568305907693433177867225463183392539680512264552004709111903961181195975288906675627316758087307014104709278021627744796656122181459059899995154674369268724683285819529950733074643157920118285499347321535204895706875837727237276561277380124340389689400613516981124770688550518283673691065966547167120297954910440557048307184499959298879352074152472446707891424093257818762016576304746170188284965112808923052404693893079597570645451175825699416709964260194011473021306513852665765350111756666866489874934820385300823050136850992379308682602197038105181917034850370029468336051556233638692345792377755889024555276799503022381236268390269591672947532552040682105913232043445633256782926993634759915737111282971767362269629511853817396723617063170070572094121638786313140304809552164408704781583569553242710261738197617801650423749083254810946768831430532613232129992663588031414874486885860060945552858312681819999742915929066845220676875558902510094582250693593004900549071074508104736470122056071342360081583829336516529216586266088588340124477928524235191994538986052879110759095539922649921820174557705188871358412896177115814857159874009440027777053384013677778968399553981813901878888291291965122139080716175205586940193785733077091053402350839878298823111501781745439205116158247242328278087093787940672548892533635304877611238511596991881996216490195976416410979499664162893579847398066398684524466917267249764345275103463408474634517867463003299844469661014517840435434021754861333280814736928687991234898902511179763979644537797166525875820156837057045282954702485562395655232118205616872604927364960851126755090140944726046108477695517438348279222756958816554501526053497639719377292540120125166967363980945205889061478143981774434269655327880560858891629581018482034294076582106593448330789063274073142360469449242223603598838973425521111771194130668540484790531090643290991177404663139062199181183182822380978942421386519155971865129174575272860028197909697091132091030122230167092061929467202021964473026887236056851805659507389911080474009903854448627888084980002301617441389026017921084687390883518787925199575320515090664867960307420499948919866657678670872795675626334062781741114505199630297647711521234359509371297699563121902788456271178145984907725119048779190330779462510639151125306680650569186551226139403594544813877135758027963185649822282010030602147923805967002992873579020161047637535161200686961003081215305800698869413438620225326781412758567974422132519331295390059937394821675243220311420073328723943963098076949855641506719048678639274238681609471738455148436428074321633553503065196424676658522914976762888277541801730334239300033201023209816727521284701589601147659983214572274980618533271914187185017794192569167103194196387575722533480883955975933908945077879568281256889892456895652557015007433418086840382080058105171967878959563928250027190923477596769090707788765564819613515900987206173143402973582616426295190649400702002755090231124787023417187412899728557685513263929353181353942383207949364760936381119689901972971447375480569664691894413274666919281679101105278017195700090727959271351822625506104131053402880165126139784625780187409383227871281064782516968708552060383369360871991678356234271327282273887133768081674849215345310234879307042220085829850184472259639513033637989212218648996677557683353021427605192724805317372373327091856906309921460841401658318175944063036142292437102326675648981483422247092254108366989588017574556359479193414730700520258733708954031301031527684296269609189444817363851686776623534780000854859266694175192846038329169452502332464558718392995929993205756959281179176353372631323255871895173147500372628416056303147651475566477727205236090887393377300225740057776613648031647418990892290556082993564948126948071034248775426462911597216069698827229071191176740886845161442702537990948351633201942587794294446654682567587782355559801180917088830867363748897029882489562263728775311049832915992713908678546044764986853308559156047491026880646782703845521657493894994461042165524432177492195778573701536237209189498662942145975023620893059422373069179784480457136580686451048645393445533028679792226673069561486455198945188300917241878976578384879614099425951319703279448745857188325106685723298860843000663414655539494942829941154152316128856386601240286956217066368628836670502408849518990329469887571998112246516747587600035185966826920814091469601994792734397808823109481335351957033758567217438281447494785726533154167012483132005577580341785811342765282082281043655524511696816095455702306932475837563605187775749571942962795868681082427888087862577854044488225373399086194159155592180731001299540654252338761793926696074697068574135267287423446951472931830310572269776521209624386413111337368836511750386734329065468669330496144554202556912869900086694301664250644112542385014157923569435248353413638544016736272771077050991342768067524194208417104737123791890409814314893537764635906874280779280092935681174187892129551694468304335691873911573128971670739420267881437978279299691583295806411228587073506819082225992289501571916082067205929035571022796056625603629873856744507083651709375349935861832964055523905118102142708113685124719524758026486518835838605480516333408423034054543340744218148889165969141000663495853940252060918082750416136285958084245631566931755162790624404309780971623682298652319559703621543428843569711145660631647326150064376967583988751428841182209288058106045866031306418994958218167026521980067287638424525921835290774973239548622575065632869466610977985381481411069790526812283240760401250781664171095609118305637679870454962578573973240410236501232252992732367352345606134795664435875991339373090225169594310888400134120461063264994206836856714163285844517860006575629391649797442097896385792196759913957581651922251071236841294389066875608083500775009883058210879539969612035392378343470105024865200710158506557438606551443265552199246334013303735163889346900956527598459006234313840757391972179801574241235385417467355265083860274625568764727694525647934831124024629134704628477143171971258057889221450959555962972494101458224428048104458292454129133257234098595085148007396967859321994990482788295398378259677023791108741799092144480024731372566308475699439028742412194695485227911801287678397536746134210498599442072700560824636930311184272229507095644164333819389830369780551786461051729108000981609948113561482058012880651460626429911482966108699064975443471872844116140467933595115648160194240821624678965819858803358486382622753565667132497979060120496635848188605946584671425273794117756274210220977972648651971689360556536954576926059653813180635103172866190213051852602260205426262542138146018788129198928442272139478608609432388006714232057019141761305419439263587401835787465246665483509737197105713632065651023045294347767506388183885968984513483099004788162942552127315878167644625608148185524153140552598089705770223109386412116513415130706418595980492130647026417289411338844747150777377469690893608629774726980354338093623100128276554555345591544970600477288524602898205082097663371130914965806821554770111654627069717152286601003438028941721855249136081069766456459136649644119774822405301851964508896307676394674890101768720878233769785479722736411596229704696238750215705981629210145599090404568664428785085000963967028903469551897820645345681332959619260972205053011340904795341508407975453036906382492947434635474560733107687450494017821763863862874946791086876084845967733614165222415495303682209541250578825046035120496236208252401425700077308231932423822338551054906378503858543687987936938866209541499084839271980914305433135833301354903912535586836724685027055495322337284475563802493714193455382325144446714650253119191964852226330472020521176875918406401313018691059403745394224459248115800807097214376901294930247735686891213975326541446025012637185618296726584274962265337208143607862329934306195472075656698588163410463374572290041101236125714624691404847923217145880828827295234038445271368527629801138052139984895643389911750726882123129774712218036542642013572470685824059576479152060920923333215984837728523743512423483373701865950561523555346976607863278441611896108320335922454024824395340934996540434309417461216875213063173867432962038017999731292248880103966405704984552104779478895867320607547538489541572037969063404888857844817375796093384977113118524595465082433139350276003020127921848605566607121932787357668952589417487787960832390845643840372543478755666095027254619749680321594484041730991488878808341490687476538312178534450620837163107627375571853821245229163155474357896812881053577939585102389951266656497504989705990747124121620079059102152259389012357287678713451493915550443528243853379308821785452632080696558896757048644343732430661924844331910969124749003599649807811905949312366621093270522136230502346927607017417655611924929814395967511303757433591112533144368479632448061256581250586543800788848177086682969206693455094624618438259951080203633901959579599508180651572892919050101367473785837574122510912207543181904253005198266750911078748120249220411887477063475128280914540316774108127702590681895251205111479454578670822859646058057456325119861189054521473912377653443133314279302898542843313070601514979660617128644269864473070089400085155823151735415433576855203136103481034773510334915463436127485526283055388830249367795513410773173293668798053272037943830141074390254048582356539816403071554369660795851684758260838532747583889978981926158772838030912303243231011530266062387452922294659579527190563762832117812412242830525474849027733870397506655808382533078141790841051621934938624072947513736430536179447187444583674881528370322619196201691857006055299182411139373922857875105519340673156675438654178308296540042844668511370185672225029719213953795290348940432611650704613817303816399353980048282552413446622491954053306975805387503466980449020298112772742896984026216765446448364701897189958815444811044486742954125499751373187197356600081886507028963290804626846878289087959648934475720863734433796126561068409020668253394938580541077830605447271303512864553635616099374674779852941018814115886905792078920779568790742956332164330045255185034625655623397201171822320215036805856208753789324031875216984487982303071538693538537322840345200670291434535360446120985329958215124775122500293662232460208215587494789295057815623183609054288850678478948342198172390425763516652881398591641434833386475115939651240410548102945609630679618154207624176279065356643094820112699658036985177934352461049383721699058553920316632078311609369343063230829618679344324986652505119182324999608086503028260285041443344094858795681221739592962211673300611812895078142815593268813223991268858361121434692152909627367918845139844500652807865329357991663294653528830765730961898233015961814471053418876061730683639630285035236399110695922495384166190984697474241318886828959750158802317064007809967784590776815448124652882761280378519684025485879504096395289970607554223979715293695444035834361938299427891273775396934605034625628724944384779285844309740615278572733228794112707658795170862985866898407146332636159383307616733732185800498135310103678460013350923983071007931309613488698939882230212886152937521051484993702354007166432360358334494636943155610334887190252007619421978418257246859089496770872102088028320826527751239276355186836169855291680194129376408838012464301403655736766804026162751357648297701087021743400970664415921615325381319881006812693550276895587689309611176660971063117601417368820074195708779415099464889261148567771988139762629939852059176439606735363512051140127152261265166808234928353060689963446174989385347365374939630137138379645599765895787892762056244709820552211629042886827982184418524307858465836723367286320701019478019823813154871819803926677224474574664525163364535550230741924305957239014181636592198879356502197283014921494130150201633955797390277577067005715186577122418992212206442854954223171028442539961287793031617044347167999448593735790195501846166241948597073026296652135948167636216393132440413152999275158088713294626111785940105621785485568550956766268985157025314033136652540805223303876405683603665653178776924351362713920069134330266926666052268145235252420845884839126465347332554712118360718246420350395799762551142052082123998307524906802093014285864374797375654933379988274921302933710215314039316874207501981153691570168206843793119994274049710563617336407698478348007440558656995493235836926719776614292435015343223266391095203174241584815999737184240985123218621481023249546168176439011813724433538591426792378018410898509751949858573011165493691645331507676477831833026275533470871491992480958591815350803088349234290830521228887615449786598048748299347508778692354142812233091596979005447702093104010472013624445976555322340188493344583575075653881330277805477573594096820336333431241268865067134995426191048927368360387933096103654767667766186211882309551556315364450652238675913906852051580074040637331165237113223274896030769705812565276992670649049286525232146675463122359637843352338088522352453169127231692063076746173572753411788054918552560357367262297694129687328808155547807422678931801702997748851758686314074981783084761313747470020760637178120835149395540293868623401475855854769468380400965297673707389734677335267039819239629665230907296221383202039071029363413938066802018350959702032897219676386299024894753472160774696503965437198345814495676237292822599082013924393324948072585015358059692078100516744960665211506748870412403736445517474935460312953286775016692342297661282061713511881697114744614200714790185004029022139035477673676917141271181244544774050465160870042460673789666067543155936900808017769579852044576893179172971897953793328792851720056995087550906472827125063114492994626596021436782024673862860999118147515882611125589904469473151839481088995694524482464148324789628534329302989135134594894063734838671550028616756094319111022062684637303709114601001853234786442072224607189679925307002924366261267153742633702184218508200987662354431634872104658967895284029402214001977907427053576622632999778807878769407538459034201798555173442949016713918741755008594074020341086582315341872255149490560444058819768422879549006832270560826521266434516075459780928740777456875761657861467124355628099720321871506617684541940434011471471852183354786397572271243513797532103533603320155237444666373398115669878430524027878143996278037013316678359517073495757432420466339634938011770112445531103054900203096119521647186489517295567087855353355459128795392836003070310605623730186119464888180212915233380077004324696950118861832789973868976371736753146455196215006425513153441312241052916820391923721070138897800540860761770963069736317595072396929413563523175128025692590695105651523249027355879897222107288422258457183747938923283142433964019276052516003140410687506241748693705644546308012334650022524968724351093274526709315830099731483271136620042682042991072394413926922539567188906897980445071722052475464357202718987864067773305180113472297078520887041201065270684746314757807333747118735227138971940279091707896074220978396892749206841145827021168127052462878878989014816691122592351161844763194127271912816331142769121541493547604225866129932961021333850643703801985334793854972336423480116269942003759711804889812905685289803638454519097389072043590189332281983593273477191582564281260329577515949081372596424337296324753474763486842371840749853242697739051705046767721466589829671888805480629191247231813133487909137845712291221964359195844971045350639045635725035074806203574473898465035526475496640038090154665697432522911829235333392962484145390955581954932156010711774571046840790795116150535002149908406929145056748339705137733191673758090939988672940701064856162526592677219932501033192954339459330549054170336711022469654611991276595260282749759551919860946828037046119115624503006662231219153465669279865011643994696504789014835259260930294380302293919983025307825321531687569953586927531027912581712244074615885519614193069661683037823861208426719584166126022194484049489584535965866633683225721580975915066629640717785644632735225194046071306355567649338260891459025846809849954152674329379656849841955241138817191728183552877508181070359914456857557374861169555447920910329255407523814752865986275194255178135369206790480362540328253703305250987762162760128473317947196367991502418145215844557865119393848105163188827402812041375327636241238531876426339978224951865486186432237232635850763034499933056502207346988284587573845355777271773826337126658450246401988417091329525597045838617655178029050404311777360573547358691057309505725682464095077691807808372807646425645351669359813734622706346765100458425641527550676816505116620588207863067389546627938221538766178281274026564790146209068964426269982979300829775290515259122687366653276608305732216216741498779867558872520293459715803884680886095262666669220407331817890875164975102836354340607758209375356749858826285351786169171445232253245543200950080157334799197791977268534774746886927585753508565566415007760765638336011763175352108813969322064333653221729330602996025098387165606369455045665723402439802801657888029592391356405057080415077521341470109212725308100738213172039028947093314677039291185217447954636607604440313299621906217421994381705519583663337453199411203761217051215344868508619502514375902367688806487032689980771432350078342887740687838286963193640952011111722568904128240694861364968646603745594174457134912332001467150504185187127552161071287852415744820293475579885608900005883719230517128374002305379586510850182604901651574026600889630384619069682909003586119058345329724236126800514081292290149873494392393564994325047541511228424230178662019649023095537566750726913679805153367412453184422667016939521253951028288279594387898890056385847887228537071869214972409161433783982787386197188362985892287541289946122712492162502033032402937036166185401447754056889091200900559179154776634973701965129098658497985465309045909756296766092464202924333905928413881504899905186553164539642835034202028689005492929203273024305638649775199884250275773162316443329477393068788428726753865842769205341092792055126702841271743353235655376806083153710886721467263807654367739805090598109395162597861559389092762332837837862987482352232265965994671174982213463839473007439859079442913186486334607826037359866366129610289990810704442988226008097460626286470147401894842581595267156781163461798211018719206356033934462461699845841695498123582894599260871649792670548684292248985779146908612295057106314966207475938587000519299329113068020930168623441532433086626441273200928227066487860808778696693870641871580410580453521833642673952058435522690051855354694971288930061431197192255509043342467118915539175122560088622227900870058302570621014466405495124622732280219864861571272282303158028447991612611115737071970844070096884298517678582252593739535133416786580990239697758697247685413444904180282980977712678033168327231637656768285682174213042856076900080786532734902230428932588610283024130152613403361394851345333733607992053489623853600254241304772558408447871076926298121942220208817175515556632628004081721614454611921850141879593555202979596075546835791806584356849621484896394753339051415842871133378568734164376189451863435814408593659730608826945992635491367281625223469308787475302020595335040710225583765747867164317229312818265210555723416530542232631614666311954759451083069734450056413471216581542123182663558597120926032345889602257656374070818709388371590930979438756994032479717969181669420620481002763897550143730171089225114736107847185305134322157879905612157588108811744376466435581977568118687803389169429301199789592125754214270278621018551107040724899262694664302730337661303235258670045355069074970082868161628278953392546025563035256588063666883379905628046854798736542431346298594898375822003343567444708542527725505440234284345702846171525147178061753057495052626214852136801559013243889476847936562085809658997820821304841591375042738969782107956886232850833519244050769854928751722414633271998892098373279134105334387467263325115895969402910055089752274315998970810404908631109562430339119140774326909394581086350521667797159026705396079448250793955443176913439403808050928712374013525690877112521994385547822009158647997231197014451497280261550973632700431834926522329797707516137713123522596252084432621100327831562688034140464385914446621045817168527433093677068230975947901598959194996364358740490385247675518450411423426467003894580640981031956235356820258516142712009187025572542445431281676442898703653546650164896711663807657365566058159548566267671042222029085394099769529780865187311064085189833887095138429913130139895620895962434135362913595724923544789372026412172906635552339598161660646558222000486923494597603110782503927957851451767901343866028314370507247465407300176840612491947034507005976150269691853485263769018511511264959576523233173110783591015083630379894481319598006612819062465318956074390695464387187415007268322398562817071133548714953428703307441325546745716072975753048166806501469622109978669338039593191419390228241082580246221252338798261698319108561684559626168533699846631562176825984980922966274679483196413173068654351452812162512454719696156034015098384520843578395588681037395597001755582795043629580151489365159616018915100760119182776200026229275478976353572661671526433157826572129174910930813897665769262619056307334310223362116552866158122448295551984244668213019861660887474514753394615553596321668658366079384796911605044188515763174238360745543554756313753735361941131846037688250068739775543079731290218096225047332163108664082192847332871539394889359398197492112409905930697884406255760121692259242923760699596423540491832750117322988388706637520529521849148060019397986771307427091440741687814510856042531102693528211851703236270179556037274144956094188941862161586715139504275026198878604188125266941234736037950433568678367213835436221873890676979408360004254733817561811821533165999046159221588453192227910213021906344256529168698056308611168944195249301485691336883764476983914813833577351435565727422625084454508282179260920280973193766409403490324850660918130702012016041912828572481971140216382104002376582467333900499899652064276231923897408295155453977908227315197849065340479284621841929729745824816860247314938165256122405609870306187684692716190900750195437149244469864716306860193851499610177714796025538394267032422487526892148899330395090722673944283978954530649162627712371644846546958039751135197534125418376223485015454406156933388084122475698896905318741522888311637621619211113341601604036447349798012769941767456735806417080484028722952990220485130517122823312729745715129642565310159877234643860688716516138025002038018260324575182742869343453781317390784341664402051029862728445960371733977442122988572987181273779390413103949419923229204664483775635937967779129056944551947009700563288403700927006723448713716936703781377818742919494929630422733841026352001339314262418245040781195247345587441825009293037833310340218475753841265552684998048981139533774864793702219770322325165584412467649578917839875092780886627320933430230148984155607420029962776741779074154744968892621937411020146463053860364048052518581807633637712583558987788003017680868432911241743613122481545132800384680132168605057103024402162356442141966046595997037899991031558866120953483534119434903194668771865616693324690926895513231511821486533823604067068307369115789240975907248387172089126807394159186302038933900386499726939789079618897189743848260611353550726731373469346894861228760661303936840017019256270645967013869734379623192650101893194964770811810906344913977985949450238423825179295298908467875846715037301594751753683393818321363028552539808115725783045824797282147326900078668711715870633703801885762569327842791687009891009375190090236236889792720441719984343757728340279949237486817053912742257286135741600283526365612591347414383803269003195406166318678728816733448935183996315557205802044485210779425344612100253930169845763799982870862297391543109528113904613772518642753992136161759809113583829596029526715799633251672362942089351616309985271197256159064395978794636941197240801843786357474990167587548150377873867469971764266168033474737448187931230851945233540304734310067318798278611922747971194985703066549799223029235757420819081592060945702507959296584034111302483848916237559002496120282652028122851990350208249553008512969093605469506743854920030689422363444759111522621164884402912513683012199020997187609058248468298134628372666634488957665331613656994382231487711686734758551582746681514894943653250651790574327157279937739873974627985120537935865503940023083213064783862635953777986813543904516948650479265407901485436314989893460882996797966676971868037060721496406839009589201027711106541983074247676528801279143337863358602539909276196147271813915740945105845721090549237142593601652091295286083911953238634227615335576123040325708778780790304799316465954383892876579330081667338572918096230087117984771234692221858736067922624406506877322290759098691314856646439901768975395247192705079730509125037802731340839430097858279321919841952463811885844932751388988109827795591208624437638004826729955378830935038173340304153490249614908155498914629439769518600289928904722254514605610257884745360318334116437570840626266849984119520320777183554996108407831779074367577675769975844505429900570505543774747969852928840640005209667801055142012389695078283117392324023010450560249770737007592806967947612969291061637694243734991682562997979324337463580811893521840470721334545983261473652352326291366919630762768207723761969011493388623279531855164410425365333583541487220864616936450475858301647752515458519382732115639490644875002696217224200990524909112920976392859578708506513444049965929837654824281779553231530054278885171061139122642519972398054106472913935614070002991886497761008634670207272998036476635003081790049888837550775560799474755607935051446096088174927882589608982023641962974580991268442793506268674743840793914058206902992041842889287955373915450434675413370823075410902184295945328224946543419780812727425007649576892394714879441495581176480604901663778936579389003100280628422564755385164815366630260630340930040875930144543859018101664174638914522068500360250314693238303343104467137032002110934886044991386185983566292159197835064675110015565640493859592388760494863741466679935243867578662638138909915559049832081984973841384497005997277391131523033903550756407761690729762740453214974693489805494752130464009288846149897492477500975094653592928912976626349924237055597873594431613667772740242581915088659700018481731401138435155064730887557035669710488748856033265402168203304434640075860837449424828384844133367966317353270460380813187776335222762123111322608218714798045530157178713352058811694535063322986165996141033262142014529483527811967019120739549214992379070841907753508943801100516133437988630114644326741256042383845184378234934489612441391756419348116659479430695226603677681902610143575093847190153365747082215047769697672803292557824871018245532840937169284863817816588504232454653298332708670713468600266989631983238354458843517377137642765245120620273993130444997684240586288559653824135092887083613968749568539250249652060889003651985352491826323836708322677981578504961519757607628506606579175001341670565917295174110892810573633087166304964899292355062171048548151492585873292409389153459707568013590279074134312185532491366679515239577755982180867073286721631985340782720366033943286974751813690477950592653284048699924796403528943052503574507693432290853989965619818077764636097738461706231310689369967755190273369099234945131216103903331946416565531021102762496962490049783917374625407949532016541615811524155795892976048066182210810089340569831391098496755520273874803306815760319480612490178269851216551913723918306155118076575351359872977738101345515164810096207817736266346798563775823450551840362361640980632123842632794085563682997995769552351021299308577750011856636030170980337167214108297752382532587350597446790592533974912140442286404035073844434538107027529154598542847588780591990929382558430183079564028841950117631260175841968762088895272588353826901977498005632726212417593844148615992137798659952202609492452884877825519500480782492083426237019379233664389042834008014314627891064618134036331514006501468458847048138449011161482662943312942991041182515241447652591186399351363933939305277065345986436289050800301355964185361841066967203650966619668718866966524080138624942718324790016128195688870459550534046162388669717987236564990458385340769639352392382155124574829212081878720264696161300674935488665988089682468859269562731901463142038168667827576745727112220924688633715330887552715672850344871649425084336171708685921219060016018082258312536146421914026569519020612066874807522001758204306031508826643245091485071735871408547002954556818854382112080364717502148532789883938190789762913030020715554067734090631038368340542790444418383522257585794405894651973298745747859642535987319330509656924383961420832837489073576955030155974963328337274134038753308455082389961755917733787096795701225477383867877800783553038291304753555559013959274996328141751479130369722917706369304229086792487158889611620508327027316174782478079956767650943006701342644727763153351703540650727817735304587300085072000106560828325277123656203475552284428704739016451480250531609244904626602553526560197607490707764643982532419250169766135082333212999992883542869206534179247503053261098467884550660726437755552426499604141083092570502140587202834077267367563066456434067486286465375753580373152389205723345910865755059676715499729535391044272951762443079067260398717647857324436431550439048197810356898697895653058086497847564240590011805166481650531142940162211092359203753665819952923483896491997185462143723533028485601751469466347539946173870845578699983190767533371989927642174574015860293210782621437438667839185501621887953717562482315986859410695067315039687907537884503193319600801154639498192596203027686498254156305434496864592537500081269951388313745201508042393492757088321213057189326281682457892624654627131100292269958481943605197955157127988810233202335752013969483879404886696877818824724603431132318770411869650434557561030232534926224917525020740446067588281842249607069184518686312389885266748474186066379251547613265613412690333356923282193333627243009360368449484905435564659693049575024331656319750680086804845270338095809744876064719480751495991556919972468640605171006769245082848458921521748531913508756303710013767274269193366411467509360318356331011949583555408957796574782246259289618575194522399671509175546151689825583743861683600776076575115413466211628342070973892173872135037022251886489017268670265514968474317245866797426413528536797716311884226866893977635552252357897986612025888799876512525662681836296693098012480553741442147286945393377946170329858146451800548968710751788572239158896696660250549587734655813892092907713106657849908995827642694381135935908825927170053815467637273264039000601617789232696149056078277560213214084446707539293994215808276562046977537680625103351911820791300555363194080838505259444645210874580582622317886926390308880924188816183749982241680042930787902916499468929246525566137398275127622705307128516818405761320516789533707443866823281905342415832574490652252009722649011695928463361957395165602210961544683985919684431908952959633136568872883710683303091217074265221544857333751183304776094999351802441487316369874079009029781973575113791540765329002984843759496761601528825078039921361093116019842302210477479960761976246802049783514915761270360095837989566247477306375115977520695943796707690286469475697071280138494923295674851788570286898324924420607721576994427798369586296950668287144422129386107026409384595700873188893127349283011561024032915528423787906787806504366084053831764411668057681560929012281033650630718609456068898674922041747305224764808751440601669514521995017450544344302380131746033066548842426879938811298117188578280567637555303225368805624503907749467864861131085651807785100008901386260398290036783849783496892909501119848061714570719940543524120964971772635136677792494544727195069095190559640462509551384138520471899402752483648902530512068285114765745532413604622532920396148901218862935400629909026705851525887684295647031371699528524421890056707601774456497770198996437487441684256476068846420110258286691202979334997865329364499383288572220192408730446919340025720311750003814917775051271717985410203516252809630631952261547235113438527061353530029530899632182698959125059727413197098742228875938739329485995938033621174306075109043544472916978736621134283936083368043608437802937574096306416327309431246709882517830019730734875886322929076482236213626563188891541517241932840843640844992629883400741822051036763237166088910076270604339658114655193484858882328836173563389215234141114974142155667314342151708815056506974191412642280446047672693895604798227412431395236190391147207774746024038315547325353259462564827234358939043230216870904284158272618622734395193459996530437711928176328290513750350207920647888860283964181805596614643666339721581393991789641150780477490062458619567336055806323643351821382501007444707142428975526821258693803176998009808148458414845878251404044760365586874388245028369622189396721642319970864141410836125712717879865976370606104575823272518457586245996381186103006857830776963294103591747955816771339000353748960319458767392915301357292410725195438667857704370878255910560121374987668640286156232602806595927603392651781155595687898621428119753269846917244086146476314777107089812510605503920210330181785197469229046840381705008490176262433071089188182370946995431161008578734484797907973958671946112800476382989788349566333481750086051385142155675480748372497810131849227064050013021366387113566810333777649426819261457686133737298964035984780918487754418829059869524384470200370897073100787301349439755894806304170281168251996273509940798013536121708183006166649756806377168730806011103481207781634395987212349139012576126001000604982713075443144218896521989079737866766878466391249735802811176979381017482694050250548797898840564518406331335252652348679744972100819731934369518966644004862595595671725500477928204900495238459301218921780313692882753339048282126867618602136325945026627302025517774346615454282864340775691704174261380909483778204332178962721267459231026692834378265164381579317047955668955833163191704268878763923878697989412374373901760633831699532402629673498379520151137256579451782813556279688477433085348151385511550370060965760333673464097743448858795546990551360935083188025091312537285638671117557319738046231811037250666738035548186816439937276041399036953224798151662584071832385426339729447682902510288018679586551486382084714569039512306390080124467019055662267516026276949982534876030311007319038967542503638906716705773299970238055131263575176478307276196237993645857539947210474157589675253668133934786553817978151994198369590187464220943378921443923242042640995716316610326952057212999596688982779801823652456036094624681852758137139179397479447890028565518090030396111028681173880851790072646503642051517182681809624695686815528480243390136396904518042024690818118020997140739710448097541085450140525787223707847833269258807862373855720022444737704610542406692223210422950310371164097083619080595011768624103636252368789364921801389354614665299399194829133152989236383303184676454830776314622352479079181176145278913810226642968720522279651159986199471284141892424753131628609798007296439487708099630875575852000688287406702783538835446852503042110595984288465095182032390882676764678641258028143106251052877891509125643120626524924509889675684518289272604854407766168655558796217747948754522331840709634121487210642254404486397671962135594709329271561802330406813415298542670793635765989848159946549466706972485256803602455241047012221868797356176249083072905202311796276365031985036442945284835378860322731682486539807697441668668221238921136354315780079955882553805451491574282071935672765494131535659633976649825277408835074123959016377326146719009777850461968272812563325754103256587194547601782361789081096509950253281994984984137985798520464182509144239831442657076178499036934916003939253700829197708615975780527979237549315623545060038549582635115288265578092375029739351102794708753094404361334295613320947879556454522547595710457926177756754929863289162851683181614114516866561419437040999695129822288567219890098265323102358760990280654029816140842241658212660640365539167212003970678976799642821884656648429298148432208317184670606280780083546245716099359593470840621710881252467212772064723690407186467039308576841323941884532602130739070056269511931008054459563041920414085635785978917514864892070933690374807872499923724579540188647905495400039618830278286636840135538794273839695548142030330736968531011277325848601299194695160534894359499786181247335331399009090928470570706235493680499055935171124585186275485296107269578485490722996683572609573805740847116701335580621134705971795284999752416005682926961476924086221937930569801525174782338321792493152981813300796526021978646430543409115460774636500030416774391584959938590549232856638958749336867542892973269030285109038884335641790414832612102694333247600872238867121887893879241174210406948696022730726321507550623704096171693382037490207822342094381321799879126305169557948891993422837809884237668745197876783171189947960443776806948752193614686024723883383502596751333819734461305019963430274423249800620979873435613423362357436351143143267148948423513099557227380521101615535680634492849441558045754536775034300461909563327957581936876700493000637183434256439339276319930758991129251696020651237352569222700811982519623982924242599047950810355553349739489827465630711304463293293031079122813478682747563664706297277325085992580434656170561824586455022812023283537092429403217517665202827917431344371794623275709029634958925195110912187143266729571987478892541257027636336327507440535921460420142320363558315282467578339026137793578383499316822649814789515175190191415172767693864660975895717082528540197989197992615280744757245818339210084984875597481217144193811433523376685772249585172081635336108847821290843962910568851836597142255176519204779612783253331431010487981526913177074060014179042409101235425990970049499357040358527123793554527168142819613383443338551880981625969043421828938545566201490528721706884103875009268660938005719035397168543366610908860103232730276931281328585737495197714923692423131417469635199419939380973051901446981121556858434747300377644515735089306754800773464706880895434540814616296558727432863123307141734394909264563639590885076418060971261994562917028480358598917964699773342214913553467522731985003449052499358879565602833744128561893587638210278031487473357885135314228172033794169487686185724953971467535498730408295722536267197462110190579183783183278382121134046027504348084475621838897240818772172508906543764171595691907086250281768106409467690626090668240387669195408021708236417238970361866992501661093796834151068049387082763297603215957634099942547770051349272481909299613585009855405317505714055312700539325709957395983098286929006035735774518292481309499544963329852802469727618017312483147469646245926287548979998608203728495426941108294442749246324277914142825219657188476625506437741394132560337083168682448721913701807256599527250958907019706683944959203403482520290324843616275833560916000245820674992947052443922146681290754967124884184366177019685282565423233801088066862837813796320334528831809904432096865092467675166881675561281639804216764384455577064824410112969220954172710244664315841120018461186190979561236258128533780191731153135025710741706180142670497624815730752320692160213776257824620098835831216729796486016661840330079795594724593074730316188767660653026426424117415801558676460873783782921730351023980186653076838841483484906385470853234419557329671495959465726754530443926253111768718490216194826494373500524139922637083253942766254186247844151714863090619103518463000499470763133993857702790773956497342578494815785024414885878588016532812135140722189032051725575552034411408513856189647893032107003101645481120800556427632041981097815098531949979967440000212332433464159867766502021260312779442160185229682996199409881710989698372208245035693508356328100261766827202391063378180293034358094122168259052527916788691603418093907568860020132200144726239348978230190132004189040593344636790517146194775457868438012842960215290790144081774923639271131098925127792100318221442750166172171964469663806667511743417126606714037698849140021100797250433906918004976442793786687537924700007764271056155211287562237789362385283210285305415360903939391646629725545453255485956907672875233909440355678498127853841930244597927798691313693990914467667235791882143183027486740275340917696832898543211568010755506752447434011700173964522188534517046254311795147052384333631912983995379790997505262712001477950919755780027730956800919782581535545195083685981189583183540889593193812860303287847951369982266801777634895628834400245325314222735933972335640326285655420971139592604662334134017888750242623423739968999582152873903238890617793634633262246398097467145118487956459100393338729191445697466080776043982317939208109537049193341475966312516905394028067166478445510321369437829255951978568270387068188143718500750449164588277641053608989161155042691488490829096117841782960053411161278400132786078284314334833310388672300684236987565361814867421448633800231431417870171869937806526297448636305910366650069618022682779031154848998742342434514604386313996021090084060225370742778022153612279439557194701117049060679091072411792869481479165282318645792150421468740570462394755046183967116578903287105587844126828768088765052600929140807343408501748190585090802251064977250951683657905850128623931393241209032894371717726521526723941917320182809655167366988918078653169585977317505436814664367902712193145561719871711370637143814831591948196418191586150756210524665140904241802752085800395170146063656639317599829287031700185997877990757848666613762949037475617920631165124251052040075329606447425219446703208641021023457176048999107116427685223166722310393715908741139652786034906506974580826211069821564487590935488260460675778551771401658010677058144590953845773703755152325764410346698057829433987315741631574419162770347751175278639249583540695111509790798225137720440609495880759651700611329223648085979844674074560351101322225028581240252649131764797584826640874212023634770332925423933619395548054787385197237116988648649815216660795296132968195678365375035225884189777499050385202966927072382986159025611762086838980086147938612655316378909747652145674242182009472750326790751485934954492029684169814649865629681581467206290265786262574361307664471024705593681320748911105369354573954168781329574246633627427594158095926949796783753525074589399347541127392988985738104066318238979900336950736892930586525826374428478513931248438929213229661603929158387592138141357190926895889013483434273763179406282671634275544910406890200653516230184824561027723535034237862108907081968848604818159443575388425922033779718834284751172994955774666609337407025543842964734488369090152879966943101328655374231693787211157158536958947465219238342488784263506678387328345568825039205181441716973446058117580604659264757896475534596942926255942728549463168930974487900416566543998921097636088397371616233221636128777177444849497008426000529615462557547213434458179516689907203577043600498995997030161901465167013668251876348460140950586072424471694969195905801856675612525104773560615332528319340543628644407834542113595094115047143711426725516675298189360564440483686297322400828082200109671857759379100879757309262485226946217820242827009294406524571780754919055702638655562812327204515529649628859729298681101898302145450350837387938229649274312498451549137477655013121332735331723616324751041404154985189220578459728155989376660612589286102417360376657817885697531866709231118315161490397152989218091623744483273183221939644480615961332842171878069732877171934318070986118342224253815444284923282616826222079188584924279651518186972508651096148002572227141797557467646560793315958158988137585718515338508307983372265922252254171013240974393195825713778024659581241845378510341683306959534804959315850094904179150457820125363906675350474863695044174546305430280061409372435881275323735170104221440191181848343325975023276277071959497174662655152996380946360392532764663788414826275179810502554937399948262000057858742258535396923332805548116203828742639562642081582462832214391991660310531948818893810566914224294753285681745551967619101462271269981569086070023418755698276985209897859120971014210946049667416021839875297730058324558165131429852915264590736371317016072814826345699653352203780913476147461607403053558712190821196773210440967296609665331564281818457171464158562295144934776120782505254385101003601581788735254179593077238378479388278440149339417135469540452054414096940615819965302318546193666650463391586809034574235417603611713495435626901170276246524706138687914097994418259068479285909651653213738144407364156386782204301263861132978583481204832232560125683884948036484766213149203016983173951744984671742427971085143377801354533570970078735606009226926978764546840342847653026130275787321571586884806976361032910956155718960930297877938111335408899379551586281940536581799576938263236421436319679361008692767816420484546841587803951566506936201242638903497353680600079687161261596819430601017738361199069168333766029607148022594013298398814088703460337470872942210071241978041263771648789489125334732505703861842119421561783294840027236112198254966793065862299170576881628512358027347154891631499397591300275614057886003554211841372519128749955164653222426260722901909017680995936869553940422172568195607816914420317868618316169323441897772783373902856452417880226409338390997347554963534643435898750448908410257050847788539129083669006363486651573687588640643747234241890284398619832517186940440040889060553531922844390328736708785667044524488376917701493609312724092066004885572158869185717671233246366786776404305159420198268519303031432637527078257906182632895743544989829713331941899908715031757253740766689799799381741770547594367758552366097278798811577122939962374800606918275545967516566121439956343648349844321197042923541419071578176647489525127214591148361561479650348282523250182618551475709219607795937232322023603006583208958936558946134850750241703711074144589697054441856498888712933663468624635205597789383420141932220750766334055224863112925928516360808253900545389925902004988411378216518148363392263029831146372871946344542899480226833634253835910699707707621097402010849652992527833106659833777606070241602177285275691913515119411240652025047358497013931882293426733968135073393464881410197935322026162461129962173465873323840933513801859106959968329215562087140454583104608311804890668208977847657131632393145036283286508669761690273824279616823812152442831364165834915440542345184809826000908348442529694303234941661074910568523834224735490687731494824568256988494096096956913387994473718978946176906801891295745941252289010333032317077221408585690838723708076111573668299709064348701765500699988529488803887266018348399512641392213554685839807039987387526028085791314754831192447135420946941947181747112220573556659486882890427298078407888172808347584940177336458070903250457394818188378421694299937548309969835701725522234001634670684794658291773382624437152944669074090220454149089545026601234204768774302620634539001372179087908144501723271378798763376718485410994244676559612453320801317473008806883986398239819406818010352511162205735568090534043277461638458437369178533556198660030588164972460304994413542011397440623477092695886330683548387094062448483343007266843036905179679571090020759987415433427102358590566427079768104949415086096259532122789428977695787137388140721927913636423028933571141770515227014812418611746753619825733954997942927334471224765830602622265650859017286507070183503055095594726335394323886331175108603868089507011444360092294476727422888398102304217490020390045479512815877657927957849216072634549479098338000851063071687545873515210270782297208058147119786334873594927399983931189743348563231940044874150458001134393203040688683693746962501310922609942561952086449870735691148997830964364097410253175736240832732315507757035519309747701747987827296475723459369282085856686993456695136544243552251472446988511187255621698881026120437605713218829613374682733368302548313140961119221263329044365132277606600385578203652309826985207814507392041129605080323522372458436499136068671207096241216779273420118016408419928281085892288980084522266463612180899000677838518823407060125248546656926403586254790724403931161816554860087308580268171972495646411849420577309901150731764787289027968072642412016112302086506096030892409696690910636797931821055949688724029054825272636460395473462541347411347164971540880934485561064176820885573245083827552815835206855076957592281034727327012150670580493355954372520278940070487309986554761225582070333045021653121584017624203381403799450798194018362494540229407226526669537168017228401748587466726292163635044899899227192580717150681202701877076451624246958525463291012207493627811378004266909769214040914312080445311448270908707497890947105958307550887968012964952699274393496704926718903548700040521347001213449210250078284830949652959663903023243242913814675275736275174521033419824552438593296998088997605695907717185952077547754666888372150539893848235657419805895645023006857155014575421005340992339077993485159836863205815499159412767433928398526052591518827210680005161629290034593157312831833506520767961324735742003162696862708070389300494512698158217614598646623155795091058036235945091992020995434342766288535892602694177351173877938342295824030043083747091112184661216550298239640748239351167238777381047603483924724957280936517036429259265336523217668938619763666398267073649459678645158261834012314974389470609523207272211616744444797705127074090128656723402448146084597255280651260404455841315012674567623214144077171300510500628253422983403666756210640163592290581940385491975897119523487802193021304583022399298048476925057291941416702925585044121847719828597090376911884788525563203055309482389851275438264943559580550683082661182692004858939509922163537890799312570325137519171840561548148129132205169140346666373598115348172299748221939518088223467567172885386965288127087696548691723548108208208518475320550176841257990598375324678378751122908739743849979966274054027828788883507312217416969495362722207747384614465990687854637222236208721914401831600809410162996681034170066059999124270881537858123375260540362826204546439895086029436541950641947561782524167960913096352276168766626729517744497694306439856220868834670923105054420668151268538781094981605432234415321040733517091464404937231871380947189445573948521407336251389177043945887584283407377077462485097800330782245224277833827144661610506533619379153234000802398681697565273295125627333982434594049826010244876638747985531005695248772285116893994072705530154240715540253290152623071912239420837078241286455379585144199563470704601508983498291882437671978734052016019018996119709116928167910132128838302407497466506081972002025469138026096719673428334455682281413084968615529251540525006480979332566511575516619780608748402578585480175476480007081172186113763126598036646618258699526476116138539041515489269978184141327681345091365819318134245774341159774892352578634501784761787127795185956786187595173986680557039448463490000701454009641372262005394122676746605720193772634421620244792645689176543938476501986328734563014581160576209340734527053890096170894538357654506043137599723872134238464994743871734204013395452156709796369813248167142035293315541026338783535953292036812917659768114248705818578163813459892472295139538531336902714389500040523541331838907319546818582096857830107883473503152348481640604033014628347410461266188313228390699149858773205036763656221162372365158528518310793822971491375035972369687171553639619261076830880772616978669817725330349128247830717370721870885005037452918622131663105143427407123698404387552472731791263659458707098305917584174883646190469857910894402825902930683375227382943478893865251122513621946134088624995117935303714816688702803851266661437156060583877983128692842597374885333074016708126698497329198817040599757288673030339800010437620458503866491625315091091842263717553656924144407558163094034133766396043052909894089080040636648533731149158963927577974858989176079475133360581802877371725011025587419451274001903218264426592358696150420313619044480689367680643086984442448041291801684285709472228466548185582384143370782566391063950778126847701989710982241038174387708421712671182868359879803440173712672872814192374405580216008938047740515942428167295407880186308764858821140807508166410153441811743971325007088513009378549507925789622161666967109253921938302278157083150380082359847359605220855111652860356182949075833106245967633788609739114516654317773887705722709248088919324115805548989947582528871409208145339412183715130157528817479581823499133923128092270347609019531191936360876389629124718126452492143473912902775101554237267136821129492077223206573691228740329416764766956071668044568018734513037939450537792776003143780222765708337305486751085651991184485051765341919012586302848830486105485530816403038335221589836251156331393896568105566134225713468530175969073950222363925540750714397774620485300979449812823890159267660287506600959867209156173244567281631207096324672983011631256763922981641640233377605182976905387707847194468672683012691381542573033687008852324266494778609127377762412812404834897711663239141906266308003022949927088671808567234744030986511700447249541580299225039103899935414577051394009853341907664247142533128150121581354094231675272461157930371753390085743188069468039720381395970984989127991335863973160950330352698698014654683326077187103264635234962653080452409374629588292988727753906489921532574711955931559444250641149872337120499374300073722827798672074141472318776272820992970646779202080312021604624827972661381657754543021787116890466977933604131212283485039971433418795893129442173115119123691812012598032307376644611994231653027300304650189244115788502316876682215656104392050636540734776862503296078737515766279885752186246193235459539806646581648647119065002104076526370795274599532160364328426785589852611028555172863867137246126708258387551721942341525541740467987677222320918413834993284619621769939582469034604816051388457625985701596615055806717578708364636548182235280580259387678287594907813068762243601844810074951990044903367755263162840411102625795785758497962691932285990493650389869574176327309058680460746328449918293785429582986278067205941864716974901266456143837231959052463629295468720991200622037660208397852659554324323232249868734998813906708575342030228800642099421455762594428513078824714760980028764498963633086846871618941202296855613417210436438777293911520337924389413787596031860789368271423531784595944129993092277042897312834370253503885541063953075393102755046990033085126855252964914162054038245178994611831414683140538350869559084986823814220099141648710129022765224523669473101233813501322101109833069880845467882389669144168650580024137533796776738550960189591391310213761385047756657544564255345238100450121045218780473233752627756944225141437543246166912252684062606440100090997486270838242122941865061230717541228548412725773437516833967927767322414425651493656915345977937496174483768403702095620887632109631850772838756746029276961387226098790638726835667542733933017915032985885280936027206216064613751428799309020840288477413340851843078154442154126083412556895064309208061623176236853397646205168221640413267579834724699710911272233939420460500691188300050833197515745005516523242453160087461055875960646903353654547074500965507901939573026394287043889813783553176177755759655464491611793627247573613483717111827373322984868265771783417628186280448191658903980145392205077774082005753933612095945650151631092768382800168013771761626844415324354282113374745891351492786147919399689376017371305349186457807900063894193530735420168601813515083932819363017135008006989216349699645219835687400006285290017981516213343230142384255300250114958174458888737112966453713249151856886362521312068748107962333372820803225982681178855044841455698784961217258442723943257886073703888266008217974525514357107973631801796901869695525408770829720833842435920548943462104812731609876882627553176344789042119498495362624231758798366370121787904054055289053714779272398597884419439687420506776608624012571799739699361661189470175830105979622872839214727457896704455425383845405154110520797171657606702957142318594622611131246423194868863765175675789064944154612345503217176387277830773168709142276890223637882806367119243021369161617666095285790959926936641627357671194036044353626965489798171947310945267565500886273091959860733422120181179288055634677204957291146543812801141948357247970569336838626234400355517203089376474677613009096946735609676551179820149551824748722170860273939243404055448230652233183903424520106721235196007653009124750205739897877016388399339413884988648008631896496682360226833627212731886410579791119161398497240895547146601546281638079318324300914082069851222034849269065294811073044830101172030296914915763688727206460589226921718163876947987191744502503602812051345249442437760394359365848124335744600309155181194348820489226304577619310825438616107651017624682724173512304751258600893911708650505522331722246124116145856316172290168527669322844166658061362430296703397203349237672519605318912272107564739890084057890267777629144897464498810451836278637256567878163761677180475285591091121034292498727196037679565499201303983958337585787787008106853141929020623084071791540606221183443567523024097236096079060736043988331262173525244441179466299413085257583996633272055740190536206207444131494454635012429449714730090298944349863933007416564500371906052791267807260941658414026771318469913867455080478962473288384443610691564637058656786885359062167566924946304398340510538964850985304019371917012950608891065184799885944753258207488479162815387357787524696236944769279745851471824847369613652363228446951403223853684387346558625405930200932846580009258924731154596399673048468928365948574890974135254020881240968346230854748911312468869964558949480070089490558223169268709544422206222539780269888163455701825778937850916033851322911531592766470094231338299122597552434064881960973268379563982751244401832910495151499810444077030800076537555445044231081436294352328100742435885213688000179711707074031328540701709881885819070883676463266488400170186694913913847956184178067105893868106575711955349392262129889338512629050326251657563979169722854362864636114374832431556739862481241825961004040147948078171960170924464501574955870103996086151487812964342960604933919012278183202434459582056371547241694331607945754515060752950679100271110833569223147440325817768765033528890694877761495310857920042047725664168526335308297224814507188446816596074560258308486738568926760952819800758872103723470800351787021674754358568205652589466453978297315652372149721285270184035859720040284309461024432783894859290372006694595200067488476138157422913489840878513632354033476590524627950438973611922379877107858307985477273344251230672731772196108834131318328800986533760326624746548599481705860109505322445317479580330413755144660005727199393932596565861313302124657579667496035543951553504554183308772529987305648732974367026359004912104890537017948139981569223020166354014355326252902420613844218866280885106024518561736240935859110801769364280113175684940171039097614358211017867717586669805324025251790282158283538676590038130831164907929666815010744687784885999262926070331763331664503768116673626027232854903064183483632866944632404903313163125212199721990811781737863857379009792191061506645885995646094303272771516308510157603850919865350715277608468801571903433976578204676938748552367893849259101312006441881330418111099838327580105026793042486889244338821036249968426246670289173478204861185351503853727642936108155796806724436581139243030822746945813843599317447220244753174122008661442566717978836622759670704074773025312583393117155044314167548088588966519176968313397563642704072986851704480320483430320192669295623056877526049419960679806885392690945659800249875899418295585690658820475106921149363026499364679447785618189014027927617994207121542710767723740334796275268748947205587102077116739961726548318537683034440702928658489119226693645100300510057654743312898644742611869731848978460951262257711221884897732041307329244837365223251668149423270696617187312066073579747511536377719306065090031375456442686937114648065095549652893265436089293723553925813320283346866600829604352345147014556435491293790083147427586400561364846076705782861420684052396407777109657443113006320975108735093571300241272358924163515585698387984143495667291372180431109836193729769258031772278767576803047489381672073101388255890825381695124555404608227895056449694588566519462102277584404428127024980934096318401895465161784003388904559336785031550491296989764521879261318329760829726836792640321134564346762907158237363745488553151202157194896787958768020413889263656031128394177999224490014898157669440140234376716037203304335398875628558024171136736423498742599103987886548286672356418935491023603163797420279380637207637740839743384299510738573148798160605570467145057206282602986252236748042480113597087804472760717948537769692254944190960007474176556709347088965991813321345023424450664078513199341008342727947403557047755624752469598514744460208277451507044413219831009683600527880592789126102098954777755682359722219433060996765178590139159426337652629108766045471623559562786673124688339772332899756780534878995441612300007732753962198411541387729837729094059648559655213050238398812610491144242965949822904621468780626454717645765857686592180999220275499629595145766135902642609214263736102299365609999189575802400842972204303448743448639507664003444411337453198517788725985600613945455214602673731747108547126355667614598692265998988209888195220688632893755895647872395353878875740764477779430136129400811063667634522512900096803413933610777755838524183987028594322687592704416385731235499552204896127061603185311955078994698634496314025223864278390584876549343900825548443284681754270120521090561198578551846733168012397470947192081635650370235872118176761684940272446606419904134955308065532544760036862566101314888050176492606296857061800844952345317916147898315126090067138840971017665173112573077289309813417339167048929236977234073549611793124443356712114695184423303572525731732611782871205444254864544081297671474010037331688670644923215929726522753975423022417906281936984366693741037351554670485532848610945583315882442362068499126094228221992043342490262535313569266497017631662815787606669605043377803271071860196348627933375949912066018296316884489371392381068088406054524691813567132227703212328757036784826017962654330573881901448103488543491194385366704957312141571766081436940137321224405432018351859250032828378308042275662214697530386200280518609763369313475188070696271347028111615093713693860611232069558257716082725732715805650430259333088821199474230807149110619481746954429455075959260420193206129696047582504409651192729192849055351778993714374250293659281887804030217746203329610661449497357155170138577250685866679039493090223571046243085360583387084392579761589801459320394708424779698342694701219731586421703174175594213213808020924740231049760903962526922738507364837937683779362924496188289857787780822281503614285430484586770740981997116782914130191579930784663187506974902817537454019048849173950968972369173979996353103400033630425875749600790861106938818689212453952498763254466209683372616742122251058483450117296574479416163515394827800097133262431791532042257196884603921878576201624234951124379973176065101488168920575949187850468115750330573887356806753918198505123012114927733528517205072940332685260327297266475598510695631219034872354007815735082499886001909875910464539728741036391487474984852515110764461757501982101184876382023174680711487589600538849024564509392173649777993001301972795006123932197272644412274498709614794310254279029476835676256460473088779928201434178190143056131154135501749466894561104615858098438746879572827367084037834506405653065308905378696769459266883229761253032682062077599146167400070186920226281297523688050185278151378484786655131068199190335905069618175414516131983439965051716005977659720471349043451699565045147399116885184928595826743044188308826422138837984617737938134811786995124496993206744108817640816596013539250825785755507512558389795142414323313010576243679974195939341042078464845655039920519481185144202195752650085511264382880226883466463351297332889299889136226708780213100778159921527653653122137110582017132164274436792162109821060870783985659102791623994839829616980001180861308603691764200748077547064976702023555508563974908988675847115463767785154005825921838024467699652745931319514388943115067967196153167070301441322447802245692940113822139215000915455920326301171930796543073854696421612172500041315169443216121062584243057195338395175899992988831576208346004785536506985567289459697218344060948189295817120364642205895807972280957230831609466509966394725806768600687153712379943260799148778001635981801888336110860324152054351875684911665757377771262879932105786553192956375855453139735625356264996695668373184904474634721555797623043509348594303560132271265479643172145497349134669793406368049499004357023143056709432503799185103656186581742536564639317880440932573053798910623569505050578116253298527677756162869099615535275457564569429696239660948268412714564531464160558815783852970808455061066768048734684486180809649975103843492402967646750405421871909889041299960937305735502929460295768529085975774128753416454608835456855531633247597875662528304179018876857702133162123097289323867572719862796026108466154556505557869471678446852187582052577310053225600326649890655343833967301425030408606606901275025772762277287994422352145252644964115616386663783040993110472275730415870331295441869970446138261286757443791731110510192930065736195025064331003009677046594853798574605633579266984101754585285834059066322851005781567270790841409255104465124598534035878476487905777703807553340789639259273957172613998618140137661362474967195132051145217401590676516544778683053863109583972381463773544178924341525609361850922481147114993878265235672573187861322740709287430605695856078320373222502912683593067284573209744364196690215832986677254426188228337713438097154920428996856648607558868977180507732957477184409471044208952436810503875928660985188820725632192461752397069002939358540588223903683504555191170135602022269152306432234597101113173053267618647655723553946206646389133813178660260323213940700785973092870878988146751699386496549210939639085933072596666125421961047892367026324675647195162952295794550405269624151867242901208156359158282660969020185262197427335271521126416370870496804763956119576989283892843339883959410142471116412331503772291306855893716061426497456856972562570945611570627078194193857725105277864014941765229804391723720553313322010112620090648810665931213429448370672348626161284178615321839317383808324592845430082895357480834755578032194407766863276163913632775675537646709018173470974300426788261220035415761997880830374355086924624661021701477352665628352519676054149612838379515689422053133845181300766835947553243372202668048854987338154576980571361379957439845480432135812672877497666155978248135513178143649155912570185186988182197783275133632084501396307070475505248619042998836781657577578268126288585364377085249326410300044788709408497073644735712535735936385108083467265732394984100471420001912622759990091761488981047089479254981846414995173951456149378684896808103364581314824267149530738504454289033405389095241579155310584480232976116727807788003660212131985883697914424009298849226376863143510177966907287555608423351203483635426734798903028538899260854689972332630000526674948987557668971752382192727588465067884315041963279949395505722270399159760403216607515284604173185564050848139538793642699966301138249865912644968417447706735417879490459352450686450867181794396648518292438829853160123391905889808652545036965093068579121186326982037461998763736281506129243123290496933189245911150564384139633435678039624468503278425000788057946500414971691156627998260038009306767790349139013688048033073229096449888272441558141594788589948482546446570551115197627849030537723127356563847450927528348828747186920275708893406079482064882523179157768779794329971592403233066640513980864863251462676062142883322621842582281983131897012584314434410889178760897283976528286716671217589906729554450915780753282196875069036960930462136577420598823763650981950380646598620253622642466058386099087896164198042837013414360339607497069086406426990341859829289783167968502462893989342783582283757255768567655867474024506858345179800081482288949951898500737361162098681299014895124967871408498164281150584208749915469639491581676150283329426160160560765260279336804208510445093740361375609005639456972918435934191543813356216976533120459632016639110004218993973792309646068961708123865840042689170475089385808177212134660899685318805867338676650666827055110211401683169294579256469025855588292326864599893144011430050335264663700476935769154448651049603892111564793614052625600161599761194573652173970187501815142459805161493611594206658182126850784422371119446106052138695428842145014105401995610130201897683252542885288437431998417976712954682016260764402910310971283660481742711432093166440368468622927548923318246669086721455412685946888131533305070799489020664009872808593703573222432675635899578814025504481034800049126020900934167489093684774658423512753069836773212100536449272784973076421805471401680495734514579955706990592895750032408561401357027547263274877345768979096729182488063868808233115357600996253806025566957088956702654587293465523386104629204037602444162666806734193762039812885009690849881142360809116470949871399904777506985911162689895646930679797771312458824757025927846137327309035007373505163014672469951111172326837681619740860762992519746755589896296325915253294214972879585225087938430912945748311989559758200322132616057108508219529851447925278359912393844927336816278267403246649400270393865192727830638126603463009852660661805908162715841746949873054500755519539464091432281689077590227803146457067465908864643841195616743400911506044924457132807938573396824075820228592888636037941406239316132926142270052548148497520263812685127265343691776253330274938811610989460181814540987988701148035851523122605055771739422891329832581932615814644194356725945714864122187245776041475143359076512032139235543275250821008870144733152199371020916282853155682318028564357963741637554034491350126623698074752077094495116335203125577700913024823171299722690268669441815458278861538045087778493280355602222940857006718152280177354209614920917249858500410029214465273819564221845141177941979846228215352016883188125017106177693415988433033030015265398943164060535352553778340364172667197437204281255056699748078221006098714609100426436387510167014289777901633906339221772234071088703502194324775252305481523519919961679420477539470169960795939677444076215551499787167251401653668954937445217099191453279611637599700014503589761317092496540145769026111332967676477537178449641504787375106553402884041264199652640853374588315728478364878305441904522929983954699851689110501248335175868258990372764691218414405393457169845229683125423175711179941771096431975363247843831131065561011440363790065611012561149351470503254911379221878594355522627219555475461115068350933457471762444045798831490439704853254889067605824187697231766138202163156830191123115919011070139925616057700959626979408875086031851313900476497284416401549331181341270810179913629996326782272500336645005170081417321997795195348937095615761804213296565698501892268949294241289467293991271171902634070734971508328571965453023289117157868473751538589089622187853998858105290915976315084138495495567196062194347894192665886576018246227364219667897640679221274684168590492135585068777795878183617501058345675151287899398272013228145632060966120455532681767642680751383833476137328520801391216802323160361431066493656287645720717738711930903673611754705170436864337705242685281320488140174364038036879680054592270544773537462693134018582151626102747344496057295251039326003668891990448490017572669605367226196058176814109010871659023764625916817076861249639500445000724743073948038902661393601316476693181362204029294248746799100386470641161300394618949317115997267361389055507080774557704954949584918200751185970062394279119132963960153298524051965382613689717400260799634950255034057644032686951257283561795966906837724266386998202463148217809241442871003254027316676127337515188980229234032611568061335033234670615568932231378846434114834348722197738826767491157289016469725720883206286865036822820935912758518345512819592405558262498650402548330335180412035136439796268959465064242382030336378264959091196970969090986858564575190567414767050501339688394814839617099180638446330692155097721300375302397930845011163694568187184300823969270409029575481361319634700641345404247273293942757637072866838372169714906951258130402492499362889987852420160163790266229871673300354358398256425347960178744914546697224039942499742386939331076630169547992275281139864154881813488232765333563123363021659712810861384126998416847555621429745032658657173952641537976399482921194373503198597480163794938226789693865327387397214180892485262755140248555826408583245352451603496461757583239649719577557074739408305574139383794048206748975108729075821816753198712160171365317356191226141315547945216656619648666676421578729492715227216177838629299764841332546577285018253156690490577477163886683977822213505868866855468231090120343659323810199914455165804751484490734042232138409028578970824993294677899543417201587141176462662414540181854606414616944363400034817621334093741489149926697746110671410398790711028773214074551723459511118616646011802595776940569946820446326384713567648956228604947416738474196246646908651813780226592709818610670999562540333833720203743442676202133489308725928188305518317172890630708574898154119609221664421820151145134066880161897450801881651004720374019181315362837267858897874807925287317945497407442306802052122151183951149768900989225484493015135645618002582292108968192212287234403533262926330236725695696509620190063227276574448805278490447787578224573528771334556276411402573017561764292646935534801047957908944975332469383347443780678629356095066664220510225404018665863022005826143208768114559250847654465718669501124542738392318955629939029137904509329223157820519378178270455765728704292691590958144447747700350377493971821859103052948926282053373937180941471720581123707483778219758182917259038208737513551351218595323941816497021079457631258656949645380691125137741033906841632257537083210512871104168187772105454926208149750792744013224526500977988638442076858627452460804606264459790127228464462509379323552088834969516179971440973081786304112158911193790752699954088225643091678270349097818805278139516436482797620548299383532917156321789234217408769666342623441101323153915086816959372675818772481464759260516445504112344863789431322526213886817754263906647109720007359005748195935850386924342285020550252214792777407659182061878919088061464870121336213613840753219995065705315784747242511386018359326807567362998320080291767913932379931646969095871138540617183355249631313874898647906455613974187204900545440794545548301891139172606509290244450105715927080062824927630708770153889729248909091317921359734923374078542798624209468902486279289573219985787329251823364218938535974700080467176163351551465955478679311530348563668118137780329343589147579828680455784211501276728170193648250325137389301837238045312178577657862895108408025675870841691568735104329305145179974338545873627625286943973196410685849172186333913719374442811138591234100008212978273072663215738594902424811362285253627016717352493623889305717189286885974768103429366263484854587656267773410251169060063137982264499931455539252919812863364795274708609959587645862604159104860942052568444942527191882959165755378149712246274145685643893899382438841361088988272222670893151513142666226127197758101007617962607421877593294407806923766138307944691238367437291709270756357291369812361516461711150510852076214192645939773875229746333105924153685401402212077963309209063416729508168378452782154762944421483650475452495503576250327267158803015366981438118361172651410415349739243307077139979932533357802379546564102643374737318093818966840923833822269173759224776094536971722123933569430585128780557112366031026178716287568697806969904889581671579501990450544145219890835012288125254449830049182432994006611904953814380947952477830632381869424506012072409188920553949525730246629531337577896952714628504197523150471232275965870150196807654256004220298079017689829935074445429975710191546407655035144663485768955327983153396516660033275069760243715956960186689933152903469397351261902770423734190605912462762390571596838030603208722801700481854285116217372330204931200414485268545989920415252021374145608487975221068624820656328300767566896604360382348215238089118937378146649158677569278559331416899607453496746820258213726614993733857883916029365082812173044542222176371731083774397884951184327695189021932333967924991381718532352349572419230943744907103125286127457819042908047653059897826943210466798741069419679597857455866017306816709168201811054151650957612326840771937105202768526882950783584213333193740168834235587995057128685237786019817966505553789908128976882962785913761533158246215734621890106817638288573518367849839568770697246606072235734901628210676268824762360158011865375402253889527143140055667387650002078560323263481369812643544745738296616955244648700353918038601067274248433952032707089719343077704129188473904572099947547148015225289454483945747620422393509125477303411824199958182907748952331305278775413092935648877016785469527630654690267295363722866964418426909141335635851482352545827904545565194159343394271322957211765812249672108967906679690616743024445279355171743410956473526225373331232563146301673865344833564485314066663436162984134136340328924402640568195360853805335051382022026405662004526918968437823305061979985800089348650857318783944254135136920658984132665918416871814677850739925786480917046615026104741070338319400185124323019254590572136976712084915904373628021778195567631106080845114145498217442917593374005080745663617393649310224426791275096987521190902619963016619947286776347229770621091715384209790194193301536033708627820269678609560319110335270551569820932190646622436665040464266948164282374701831564410228056069803418341590672793123165872737866132785269170966127173222012411574459450067570403887858965189089572584844337843842031638211668915889453773289794451443432717283920426134125561169376325023165220306240966711055743068621800758984156882778139962485379595744539770297431171369774231520593612257177453566997126266682487408867463517982804584202512930079987837878593446979009820597777908686465239405488208390538974199522913204633707988858013493930842697340309026142104035304387760405595665539802350906538554339598867414905350860008839102092404377817487685426912674131234618446352889056865553835879761838655635673369246388754915886082924301150928283869623849294799051032794741630221498869271565150044686721527514838398658062956887863178653413856927297448317207196875967865752220627952735202483352222641924795137093961264035979524978146524380319712444240054935283079936658319079622116728507974508796044534924690468467237681908942379407843725878423886367166172906079890145179028984538815782494414948303911155663113074166145895626484136884998249968326727966465106475623471509689717815305977801983905721070392933721879015034765595890133302716248173489076372626973701179542981329307341255137673151909641239103946735266107927897161488500638511112481730138861118157680672671370912763794076418655067622970443519323193967726377904530062256042088242933274231816527115796118185718700750644676818531750253803988023021803397763278833375082741590579492340166036242853564913062831919311982919952337478466013132445229590092068289216968521849054012887146047167380068112483868978494039720194753926508290998946459207070964727524873994283106601731482860981989588795326239523609898429147543755200510168740492502994474469568603819967840589368732135655345535711904478825422322711099083616043875760308892434428733058555178424657041626993374107330371906744381016612458300168079301572810268033321086731278644863917819520752198837060427951378253560408041717953247217853789291128016800138975961321332000195027476302037808543082850317166058682323840597389375882500019936602041601004182233575039878702393423434037171746579044389176316345785697012525250013562528703066267753194126330486843876848290973290596583869249361466523636158341331170625904861919663577743154438635590828972428595799294420958286308536343853365423461129375853733879546213950410412737156215422151118907949114078803781216455532325132812081538513754664937318961989442589060927875865344914274428152970128265430904078388992892676037723368426390822403857658527637832076552688353345225583827217830780681868411564827481717313889338565740305676893821609525686600358224225732765594914893336728456571131569884743348280583360220417073695083592124752196295017652219932201144946871728537285685833993045490088487053826565441178327017032291409642648672751814613889359883134989968878073316704444942513800467066236519578268590103979883606361780750695833517828802166964584368875899372934779843375795549480232156518714594467113082856689585845497085235837878164409131894791486729375028378354893300238155617026709504846620712329717846815414307567877725178511679620773808902915820059198912091689518433639478825162364184640556745444797656049082963881932627137146555111372544546550857649345685434372323562693579813070535349294248125039170068767927473826740365014452551055008410487710280606365963767572721984259104791497348955659332367398687641748393628382309583691593719958206390284635662292138445053121937068507162650455113994126657159832616959957338719250908752302401118096261093282529105740255340359070849946728263130353737622733415902935973214977749433014876330480772532233204432082764582678337499508857867150223793118521909743183411141182801726023365856332901058011674363387374122818161701989959742497054526910800908800847848746442703844230181654094095978774224763347442118572551760568773656064696212310434890837750637597662718186530157369467276167370806577743099264507949861411889457391519596256803394382620467466255448470253663932245254808662465183500569970958675854613672241891501438303796124679958886011511532451203950072489723273183242088334898443080641847160993434685654407041915361561075058703016675871752742632966749594502863295674668165863436622389026784535513202021679189890645834275026869571897612368463708759798317524835497935133852623220477454201233409403447182467513184410297765877453494561419768111823665504426575153745868847748432320249091145025599563872061236798266790469018298244593222258582829658969097243683085255287325598342731868076952571350744782161120844777908298695623549325596303817225617097119043697118705034497425431347547491259785426606774688497047055001937786016485144235660998198281589596318708022107867653234463620794019366754935885310892927505366899334574996453266310412991520271331235275132447677189263718652816014223087434663042956403318605687200469528535777327105349686422650633079601945710954699831081222699723807787484352038944949790771475173982225884216638267698628519861102461938746668157850307560244175288515967776524971734390342432276411988402459385169349020201249909940437629292542396987673237214241638687083288587184041165099995478550131892577117365885278117206432491157565548662858288297897292171308644139968963299475506865715788900363886522097347395810275705886908583853266552842140892606340235442793440095399554244865195320781153775166549709735489749989799035139605474204279723177607337821118218092784026422697255459774179149943293079257616552331013137200103659481768190872066699618003267252779438233550822306559892947233996943061025152275998005242786356376360885333846663797347918311524085805686725468911435171404363850968389805008511230301702587979868114073083888956627353787108604512410133664106959113191646294610123739764008042804033415174100476600060753364338892144470343485186503635621133323931909443111709994308420285378696225835541937399208414861417949580646921725782389277129142325904933442421600486399463954394622741287460241939979163715179450208186618570450448852376789947137394061021238782848105705136902716630511681187990089678668217620563686065738324638913889471901627394858752883073259584669877267461105758908719776299583474812031636205250279173811703327251061426618188081109199892624232281108316395215347155180675338937312783444818038112609121567213613716724014744598460865790653392263489589373269729234523376453346854681117375105689905327199624426139924874070160403268643728647850290441696792258382826831498820897870926708802049522112967117737242140314524187579559759568413364625953203229267862790547354037145311682849698859007705496463653186991361880797143956095037048871601505202452940715255891107390215431938311401762480192172912780285101378724780084928314193732297224450169472990961336969380701398367650132520200951102922577484440198625771512580709378653681448374275733458960360411884601690169106829450993894177013929952747880035552041039905560220129708225620939033982871791042549377839145103817414057157355027030998286336535649677008739570945029064615307588004864849583989106717546705818091795627974922904545120787011690867730287735642450989699707184969768263285974972474888993356205864048477897453605059997487146695926219007892451485899872213695188057989156160109244872740604032960578851096431347786049934500609129104039462245597893980064230031502622928035223717860945431700074517016682394818235801207247156578140565727678783717587993525129187803628450393262369855516640351142507956258787544041847248235915650637899057941324362830591746219093573201464701074945826052653734599536321282023479013897705531803665309291755469361699378494786974175035263146404223944053340223287600223464644519137365262029903411911088316564991342546498818871185098591531859204754274215234845924963688449011525180541301817636076056480200066278296756558756149865021150648482788792598156338133679650734530798529240851437705228173073427052717228361622430035928854401012877653924259268639217081437779075075484432769588627021544609448470016387225558948804728381426249184525652535522434820790467903458940607728862632268295807507666929153464785298301946152241477715100639197520654211633396888583660534639743548807835440267866672651290258158067678978431047916395264427560382691833630118868985476947273121276060921515412254253830898327136803682348425112331711986668098219622097220069211719910286453322700465061148800684595163045064458836512624750758313619813472382251672858143214871167731315610362566011555654205777648806783962363996593886206739869610007168638505239823447819754984532200852836800422741027051278883486434962929431169681952335255571899004374071561471143851289393206623849021129063246657521709579095309199028107103907395220191044396262509282914116781317574729647931172071836484070510891351461254111366570118650036540149519983013967605868052843509512808810961941705177164681660359655094965595735751587381227547553497412763120968643880644915508406929003028223645535131875274313720167392341792889436234869253125462683560277404799260305408416344985551707830355934238886266679491917317780982032980847318131957216761978748340972751951297830199697855990341167519077368377827404122509335388556927687738742363864318380889953945718998125898081499295342964725959872696294874182647327227591839161904709428863787763686273186526661737860601364285550850038945354632749871506273112486860206987006445853677333089944286439997947085051499743359119735343007349907825751751745557210575129981513387114356615193614460527109089757216555395279872714526930425989291581695067421550706085628486639171962375693150546231455949042206801716168706608541860018094404012495394345375384467316259810065062738643278198923239341282196506860854006714205548919198864651070513459670701413976796900942296101525848353583765941210677716328093229968006670036383660292499371021300085216586022478624877205927826757989861640979901379965711232798055799888862934730632243544579491967539187337093118952986664419180317469407042135725897910661520120779359488814124233553450890496139175421474447571436798043537308440235065309302327336979415437742687000392784959489297198399403021709763439514012210456798332147419583489018210063577228581488532361305691409558450207088786175452919758443759960629442232960561666323808389884931080488316298267896193094983093570082246137003631408406919210986044363146637756226193198289938638737223757382347630098491279971690136663259981739496805826243059935878363008971604816714046722752225974387863957562215380607435118160944688310156096806717469244558504045971455671969890664200076479395387700827817986577413383716018426667115965802169009197980705885200529737501433750561796170953129278441615891819183988718122655546187516062753531908534679818465939729698848014092319235451673179892700151931496901933478218212901660762097804331150550636249686420581738535319756613986957744685253540146215738434440779720189131009272879070691488036476652556342774643654613935048703815583059623108843959953469841167262108962147563941306778485172134765369839303423444213999421226337535454626127768245752581918637153236113038410995118292800612853642595011069527412664801262385297510810420174726664304639772954821070691611702885194938233757141417544639211748349383150573757243980346059047346428021416267210092743709664678783419133086342989773334336372446075970487153106536544146308532257608445469888407740667074753910184420603616782132541549075772790156084719542655767684878656526202840909756380026168351557175958916528523967872041460950575962750406825275165570842584463922182287991409356432870036395935431914800396505441836245069847696359652898558231391512416212852342728839282996145105350357103734150506227217470125990542605086016062991796620024988150954530551217993241709908419543666219924954399402039105106459032404505391024249962485711432425316323520232194155629180348478792815750554770218520093366358561674519291732739753263187600314229497988590428180937724734663101978745840417528653778081990008657207075544372165363772599113775054016947683656152626692168515609417608460096065199088571394701564199141188893699989795497881615387021698701543505822538149146215020261669875671248273484658394446130436170447476993013209816061283634142972823908761431001076453235440362724174213636981461817003986332174928706767369381347324516991084011912128876274652926967815381536260076311218678166165702480014990620304251108721822572996550957578701197080251595007633704450831823203429734323980076044555253361659517746679587270065253790290458369384326573928302662786574557460371853106862477464151591300572130916160660451890757563644715048973513661030149678811861213306152124875731709841429521445351049196311754719716720993041398276961161531582942530932590128811937116306470740333810963714698259049719110561925817736170296094858391089782005801945696070194713571693178443682485162485021582525973415725580889342643008483829812927406340145848675753063314666012524174413654183951313999739107881734519422361179076928192933262205604930156319367938904200050288176233450282251803969423333808546135961972815782494976429510673538505169392714239034662274504185821595984877315868406506178273175604426013737205218032789592661349623392027741592197304209020223948794559018391517250496456022397993631438904609571315873693547640947677728157614884237918270158387154402896404161816328326686383625094750466579353829945231131918314179554673521708849499264462520717800590853604931399250543799257294598194104379835882924586070735037527876092620958514727306473056064229787330619275634050065826338406394413474828192883906108983398717552572275154587077373529555930236679151286438055947548004970598656719323127432559938506945659417579526560440548626170665666565406046892228888034488613333202639896638631701107248311446303201159292396994893081309999447094060183981205546711176178707970545465388245478302841362700703671743394086262507671831650870673949728509666456749273831351772435515488226366195689808522905654806149168310596672095094630138972156932320635055918880408918313658842116761389656397015639744490853850097412809928764687842702540836437609933808966891218666162971011344653844196691373628967986865685422823775660801165611934656875458432611938754293250798820205306662052941499051963475971115510685283007844402419668280198986825747273480853716993312870286487163306789594967640803304303600980303048494742539244344081853213830045330895412432775968656255412828452992257400887151924654664366120687749943921456529241893352291973704032611289956344726757619651514922573860163714094894618418545846326925105060289708377697955273481233784527409098279103853660052976846228909246949111565632233421155617094149494231519965075346066723862486481117863598477526233999500878132963438606538231592626685807119655178898536107972259667401451891611758587129214082234420655951826300832056840886825941324949310971929210829311739722006944184340287044131533029746492009192402727603700212546984023066134908740627351885331121374533952482411064532720678263211512899355788186493360413091141185701736477062137868280112740105984679548826051874049516533592793753029314386227448697384097563960799288047073107795728074542887135414090879365870331363786335426652412199176028210476907933442896450058948359787436969729928207219450110953073971836609104620794883517777812619522419805590821026912731290761566437550162799216930446810948640070027717406506053236580436081611156930847729349204596722201630534562699003211645781109864886400698776409313186314767124939165323876484292919954532072499027844890523570503048672464378362689898246821385746525325544364721641866863310300243135558680959500604777176815875557628668879684581012944478165036134591916403677139979292045642729775190769187658918588384342650532703361815385291559043323658463685044257284752397448383248657027032992831334263166894359604990291480147747630917476749193742294184543711156659622812536205201174120859005250179037990852741515017909154967102812560211593196784222307591930256244279792922165824611674934587069427481576809296681934683535700602857403725440503019690436772297412849085781965414560976238163439388856826232975901096217082210567648342017604725183527613457915700060070913649507949764822546540393497005684562914367156582342927194956095763599543437968682894823289963217118402372839679575156794804366043209551682149956706917017942539739019388406215800559020273729966244152013786247411783287563127257714463083807014026959065138466190000784420049861057122698015405360412200705701971761524808484885312998250230796640943515680556646662107112183750240632800101430334236607058408317361230269053704423240703831442622814857520692348420349057944043949123253488368468456461495919873839743463650647019844278281546951255843966420281589572693082723759105464178443358985962243901766407369920156799362432744025033897434746675457654943854750913642136045304339544227567076622750029541662523240023057361494000959008880236256996530481419081646327839689940192859286164739614291340828699678625248808692523302550091760826311469861882366660751534257061044367044195433170293407314845722988353866103698759487250683415151199671640009404416934748047798178299240934085314873194744559077123584376617504545959084661867283769320891663481826355063973709366108476807504887807895673360729492180616459960152879285817386980348073554524928984582289142217057509547145510473068926449965866511899058796159263299664749404909488463655472811991391041076128685217863918164734887937845556394909657286292046554640031305760806388973834313368350727227616420973928913713430943555034872342799132417506221909348654167757232910759170685863192251165943739257511751612477948318553679902316715237384205403699239491750065918381319467936632798677182109637166081299262153306424348520801188100201219892949158867814729216627843545364308440306825541536621625082279462343974182552988001711061320634946763970277532828772534362798441450127086975790342102066247127834252966136861396836225612612841675154342383305463011560032717131966020575376201005821296846544544512800014162274843183718590211454374414590742451119570504636329367834958356056346083232069433623053878092993237371707089955160168412568040386340521921112480372284938718044624181341625087295708416041445178696889386934199168490303299171444130705639997531337448757036722501324083333860604775189211718945928004624318483595098192960511141100469683699449872540796234403315207411042518951170622219933098224459371188682800917045032946499995775230224540907588569084632088358376185054287971078304157669388195958060406630607248198093305708863765249043817619655447925536715804844606652487902860407289444466928906347680280347360519671267286360443190534412234745210469066131776874098386707930986445037120064438068226399184330382506595487898398477603738344434873020976043705977641803825696990668980792271825801965743488257752942006635225062478776631186858481476837923116637000978914017357494300903593982549665094065847620177456520636872066284271221169098915790406508675876957230109624034784768785816435119219247245494066530793349223423451366457665769477104019283927859134292448552983482958381471357174090396854461466094397940744194422399720952223103631814752025527669270230024292252776087689443563066436633078759340497939949747595087600446084099965593775020091278043189734863935133900870389873069192626380239753964276214341576539224687377954394053635049673006750558899383109496939900915260900386528178902222040057052019362083213593740563536919626620791621181634979556742845499356257617402914394333182129984481115894581147683347629378940066165643522363633310664674722366150452155813392361737115632190786899844094940987922635196677545074107197121590288787742817133394437864894562946101261178162274705358867447009146495586456449492469874632008950198230026775228795019612788468757095219638801108538660699908744302077910269145626902240251285747657575508119215924279947100857325697104803385861417104697518843685573851196803632266434919285553189866797128046090307923698923259123640733510028721703991693772476064449853456869010684355516013371426342241509837654210328796570498887350317268408499437699539115718130808305403269345496161352541593948434331386962949323891029389565925805764684617723654754198225061806193473336968986993647555726084019956956519460226338642712507248815048380418708001610813926207413839829107847114501905441682281123037108823079692590997217020777969216276627829077869908462792690834141120648759655182429698883762294944953652329250027889203071119707716962522668619301498260276448982525915689921687327789350623304059423961380859948070177932131154401996871478394423124886880622411256843409032820473343757801085185705046635322446303669053202581704062046762262045976634784249651632777265859428266121280035017079279721019284970290675483556078796346474557052341389390854482878153953318255145170168940444545705360594284332372547205042156996089751347539348908964467417647922123046635940085853229797918021377634617569199110284435339606429377036023619069803850952336604192084223017096309976753670659961446045552330053285155877179001235755998435918893681887712657225455489778552314172728470721248662426983196300001462068689689201906330654051115708508199995331037236123203924592289105705510707409868055567410187162413458333391221689218481317149045732752298151550471636410887695113946452726793447611312608553658613463301188599780639715017837777581756967439017344810250889529680203194917444955784836925610816649428583429376186926413831135854271141104026637952559684460180853091457021761253176532179970391450930894917075474117409636776488292961874690488348467546584042424550890604348783098974287328680587407651429271789402073707789761145971038056587962823513359661196440427573463900706048322647849509836034570443968409288565873822007787843260652956581787539193052710107974611557416882471270710360185493667879931247936803336751072691858233481427618380683204641442914313246025399007395376451745139464738903739073206444951358634645581184824194361232654623477652989328325050208823864316086856588872958262413870478186338171547477781450922774257320208043397841113829850540999850449191692924083232493588550904692682893293227685214066949648078003765225721336564019782585089553571414005332050622380115610971976936275186264629505620036766991261932772533189725556837929588409453277779498354874444803680461587490006014016739359581508146074652728198061344654866696577252284384140344623717443816147266263546240206748641783377452634213236043284121285773264232791962069007845506872734031278618890515391182281461285688226830481434339717848431935015729712924700571496611955880174528506593211009560824107072577368497447309720895946721367573881007452879495146442810310811484842480975947762940661891011479214927338552691744540311765825908288270564623965440805532421712042118050272362529836964481769901192202629695433333230079551287566382427674179199488120908316164808605887624975814958803392586482619583015803715438114645658366569730142638217732680964122220697710997385336399871545981255193593998243057122011905087043765706769059579071075218762791372235512656678004381483566174256784931530682996571520080158752242136357419476188377438136206028394919619155552311602537174936498397449246542470787452280978901186583648726024946318196287339610286230852657230032875741852880413509145336659695864155863011142630793599711935448362949747413214805838085038179848549669479834429628024586017793366729759059025780561290559227240401249004470027310170027281733106270303445692112147237183895271449576346698581271149108660661371063005872461667677879525217100498293107483955184799469697750438220893085120710199373486809985059749172060573724848122026924237101330942730828759388570902359873612525182897840064569994927826931816258369895667453979189034703134771642386433149978103014890852333926653078553372675630633763650269222093372199870766425739984990695884491452700360154610927169224196134519305824815093045523257811752272259344337570822706290418603727970603045028240115046292667545839789570929666393564504024120734895276149565342218214282298896319273538765611890805662033327042604064475890932292605664810739397912646945391972688384941980753957175268185081418328196257994859755767527312376985403612816482348811587282181097243579081169159262605657313105427502142003596942100623780888579873533792189450115717813598627720693347900455611658963961577590134240670146562153721743244077398571251107917559590049770535069831818510989920600763223395072248540667296459650913970173218627618103082054527117256593527225872103733269442675478691218929837162776072540490423900211838887923588551384627473669512991635179507958739704593478991546924103625296657029540227160530298579493685088883958601823934471838914741885962866662198666308877951000179001477104204869659413527992473260515363450272479908352121759602112952962097917783948535600186013179189834261240454668840976130722005399677645951282065002271987364395696405803606593075205075146674638348019430134656367080484619696990005777855235403008946412076752909249235751405554402215387676244830617345577228669006420196411353435791905365930774984075194481777071432840648105331347256119414015328498462831247521386080003942034647082317777253222127244322473695492959029733902987524315211841700076679231366029929658269640888432943609481818149991275645329200372047586632090042329741219857787387815900944197683986845767327900047271765798525460329367010036892908615643487268470733906258188256815665789222689257367542548295632921928504312871429637802737470420159705918649051664475997037169121246041707536742045718107760697960757205024627655558184872504751924421317643037963342381585824899668106703333219550410809627537274863511555606794896365235558101769524557090217359012888223089876299057870199766523795436153273579565777874178669209801866002064365250078162171118820957926542250170053423711013269663508872153057404882543193262529299929645780145096223970152082446132044261162773346838495449106946292594837144187977861879052816290841514673748980528631603343411427888912273809340982650421976954017293554200582985772509764427326962250650980358109727760910678138698188126339997163619324116694061467860343877691571270813875545199772991651872047507129067947150452681060839628051113935779541318597505386143154309644064124527870685433496403374125737547669663540041532384099172002109574083980896681884962491733241137607861159952725634053678568980194449221828878020547654666341512900661526362213642858812867288781276827855507217621578856601802898336592036306118326455763136021903930118209433920423048674247840078517209157377958058212548340344790355837170917635245954518595810809576683796229804950116737359104278584120976508250180254319615566352654293615825978537134474518978307592709200806802352562618083257176294521100169030935781950142839295122151645192004049904975411487680195472263339516974633186379721606329859118518920578624227546004844496876418565266788121294894150666884336776394501101047104024672615242347015353398718585357881436011514758095097667601513195904341795411554184369645057835899793076673494860736965512361177618392261375932605667616221118360144428572739436545090591550975172538611926322602893516430123223012172031131943110152119971893077523592645096193592789504160216819467712205191593604129386393735652115960379816964984036524220723795613167999446644616255175486501487809019393551960742877896218432520194311215195536476935968002393047362851452160652134499958401167317292409368249877961183897186938353643029980585279587925443883062881797159181359937196722558278197268342069681496228684582190541824536780712008133119632748054322449656175904937709712698184724444753883905840511927105142561532070877623563219472025465673538800260684601223881594529239776563248411882959619396624183121413502647891787701716967310320975607632210461378522745422106389560604614405020992227471372462679289912940395447622542281087500462484239233887279821030458426248055803957052269330977816458230559314113907611500843710194150633720646755590303145001416690652329264562392353023812622080897949212868580806521385758069127022467005019621543007747880140795563266141227593828258542525813611429643861381103814219443276362086561299759939326950917951035727442733970578571587449463744984539039329864212618663541286042148359447170067849471611676861583323747913872585586589987342711919574807171656317046120210098677419073833450894953102804899796395517257788896664185859361605342247585827438775648127686280765453934749159202793796013280823262250737372689296578992707839813704840867258930197176900107233884724471794568249760013210431257552552278052705312274784443173612220609644140682859930779428873580259985348146224771431122066817202360777692943488957283623973715129357350965737263867887935608922444799238810549463710804416689267395483275006486903845270014395639905367081590613584422716659792793468802312229348585391176746644810441938338729701433357164537969259989819127454365272342826463787348364162218307864053119896546594519842339531991540566673651886809162499455268979470924287270060064583613097357914036635474568035681693167586293921661905505340176564869437622523872927684784560644681143306656221828010539873942134879692570680400982362760319460051643459425555446451317770237248862773500552632158418120593401493405066567239029891209936666806312659395243719147961594018690280115957345067430316159985770249797652516627730174276208142757058715248171705091871571651373455631750264922650175443597869727400407905771467364576187204333786147986591664673956401120853410724778025722484211839612081126375831255281001660067138758705493528477699592837172804251354550194722453441957850465358801749598756257698321040096621542969120574033104187955363413575497154957880201533864270781261109258980207872228826702617132261555258371550509425623888348610940660310638712912512560215539790443889409283964492681275846916427062754269550276951361700920664434436813611694435232069673660779707357799109491673093030255762436319930652814032218955424931664617266493816207784614514878312157664831577228744604947312697682890646058730339239267556720130009531720770646236146983882984631217702247447457604597907823071172976272117655372878241069250537528426758156358221369831272964992006923705897050144498768162225052457031830748110780261119016894442695592184170885174586067539531322064255276092999386457004367971974710574902706470189300509655721315221891788541949028653947211988548280865387780218514934109481781772334694093545773626421113849175940657198257922395972856895394761058869261366382144118350618358575267549002649375370339912543222450595033164592945405089504859607743507128806034223104423765973306866949196161743677773155213072289450068980802481084560187404836916554947216968054709771632120977431282246240909143536959955482305408767985372788495152484912765626430193647320562420949416823186663836487851597138108758748777420333500420263229639539194494783596397298168630903976038947315247889467153282827223968757772023716899291401886068804776493638893244932012512049343144296429475690705269259648866374630717431572753131940911284758886691026152025224787761470588725724294278137354311213815807860560676565058809024211565665156357982902689248366504152853884022973471903135970854144274147793137258598688543301801368034194690108973424531291975312402442323339457948413505666797385083725213440189439437266266202972222659442561070265019731258676118307769339610376700702953654569749400843381230479769875897126095618646774933055421958068081907309691541372706477101831905352251353425806669647773810804716543653970408014677976185404726769144896104042754021267576931038959974619811689852342571551806825562637055091915856040258954920040700036975166556586034595953661260736167431997201802304443328837422166298750935585456009901522641299172657655796114262903312070439945778624389676346723480878222150113800407711448172163630252603907614489076984827127777365132253324977366349616358331377313432763938429427825141506732272635415717129243270344509482894180386381452217775545643988868006392338554954038501062446304320659566001331967275701694802307966363725521715639967870263594536651660006084689070002018027935979328097514486930723852152421505344362684429476198886393354123331811530966350640133491382520129669022144623154819488855323972505439479782339184398041197112981653488011891719843300896051363473579027093102645593963134951962846357135153147326423410106431651911514009655609862001828899874428082325874122415091305079763776434649256131470500931007328016616105033563365602637197469856574593173916325262564970879312296941443587165681250716250907982692209657918712852003857782181286534045398481845271509546190675058871790336517319259513664212438062652703320973420583909033501372175235056592288788022367572399013636940378815891898173157085400568523430540146600036437936462762083262627594696500979750953437418766361739895690554063822610266754168486038788352318198304360967472810751328100818107150407727770153249072413366049970798669004273401103700543204820723406610555238770780793605170025257811103472592528585971667975270992352631381930223326232775658805350195409425695760108045967842652194783406657849853421197274486594918261616400910192131160344202196900198483592849017124305511555310054123427093743599493081691909153107804929168274520117516081127938649982127459138760350557283936480140849494549808802565557802573126123913596364649827511046903977725976598473072353216993251821869463855839390165343152780778525711789464348909206245070590853383997596397724089243637894584987312381722000560742132405036790887432849034666750352570864654093755631704523153929957498881191785687434851583289996126623290858080897983827240580379663569878375466844801937148695508705497139930169620639860879183951235662895856270467645072938214736400069550473734087551583433214721182193389564903439285958872766165509323342547526799119033989782313890178132970662885689107075396348020027231777182206367100576511186220169907552411589216219065669760175175825118430537935324867444106855798285136543948662422674035489229544078271379937076555903413892612457180546994864255772289605826865387449235521170729609527929724203624871266250115362779977328880945159003796674909347612571606283199176147985327171751938868490658854142439505597733832630324159180507277502366753566307936640971834865513062050814446355246320795074809878840239958012674974292481728595823901315386361943861118013636658372256420634649536931394832965922661975697554569863590083825481842285315522618638148496947806598497223386273437356803037796856860207464156664180440315936354570103939653569923476926336594332379146840265807599857262457636430524917167507241255889714184714751835837495964660413293884543719370440311658731359164702792600486086905090113257262268935894861702908010073985381392011631273272561360684271076030945656044157717675674797767717998531779190716193129430276599612504533176100686298226699637102131337564799913639171441585282805836428142876759089801322258588736500034098218942924216785186354982430684871021164063343894700442045107372777060923200597792121636133932281009632912037751507422373868894340088334753471677113318174322100039149603000867795512412830149401669788325322232970301934814704942568094766347358128251279197054143260913364814973849716176115880435449013662091125821449820098411473045651542669434717768331233248906890336760755711706493799935868797129110227406185197394917036633234882559696799792020256529646683504931336292853209363336731681636437290460265277720150543920122766111886167885561440802023604449584342096704460071349550010636514911687720981037977478657139869611268428268315353909225875460877079922581531083046419878542581497057345213179281359274463418921751592689672245619231199787186386599323216543855299269351910888159068329775452111600912643153830467383686722031914485076623340734227370493597347821159416168610660763819269191867166396488250091054437562572848744513729833830205073979010591091110722408851737077126283516139286118403360085697748569039426885616999692175412734546226920644985661347773114115232954986528098962281473149397170017118410188626374186744737026269895124048635760622743703199963078124898740517554206010705646547847019157765193896809941086452098426402981999896209250226092722469708554545287482390230344529375005685651389696420136369288044217042893700491507046030997310001479168150180693938653208350326102792857730633265191650901327019884182271342839650782747035822922395873199550447367494816406836556360350688232329119479037107364112233539179949004657482837034121230313114824395581496640932780431787144279106703290977209585197279814220181132420059895155638929557051002439683717373175462002416310928071095515613108933925159096325608517423474825229908955395375764541978962984083361729622926620134989657054943408309367577357776779206072170911174364446324970284482835650345489044557103684996924932380390745985302056400281066514561803614354167449050447654763005400761474604429835187927411316542221396274543219050321940935668351897573739112997338552762124910543984160237875830803885518860169966518395815992998755448996900495213904485558358216573453790127767944150380699266793444731630859122546109320927315658484479247907815157118157966224007228380038027537111955328645582471777357107776740701114788553708595377594801709937412755112758606886478759849593603682106475839972096852694805828063990962042205496319616189764007178441600683410787836042585681957219564416135855014595939843057634034469294803110247364558445908133681128890342403043521112679003687726128003818173739391355220239338462768415346439654996571465909471683224425603262214868562875872413340817880474556153750987475229924022499409147385313925975088699524938080788261987444389627597155251756823643585146339719063797679662480791896060559409128115324360084580884245385623453189501858393038829626027355318928731042918932183467489647027848493149037495806831523971544542308125278457772644646421028050196880284684339277769099831564595469245173014220053327507235693381258669831566403555280699683086068747296592147003653024665835494074424093069225487192872345104754266862516144709666392571362076343581855529246738434471191101908006372648605819194325218500232482067214416329748400942726212963965924759579096420451959087553956681310182628240008814460374369035532311237751115396782023175009445917523339220371710682292173963040424079914127594855011180021075270954437979176934767992298753615832121133090713899705744082240290522382034090665137100615067790917187411153768904425944544495683083444390752315480047490282655796879924567495895946004255954401474351876238902045526339809304308835226346648654251390548847030883492603490099146593599524840074904644834053039887531738381533625929042799911351315980538553012877881890386365393939455926108564179727444851145760281733094872276139306705998266886666748809104919533299926490974108839081195890692778337787979719504247581751366081767354599443925763100293241735412101838927851883960450836360831491024688094527266854095645191892438089637627144549014533802956740036030236377472953613377003992154026078075877143586493355967056902975764962193056746796525338361255705974934776538300074647285968030083432882995827784559017512212877892646662493678834711118233032641589385797183840997147043150336954454460480625744205212405728461190040415871920337729542448859391097382032489377608049950401506998501018103938276065287568009736386713437040824845959143415334862196791112343621127794453014461491111164456626267007838781652291750838038396758953692777484371081448151099325270883025335147344561006938336425761298494930954732226325326382484750492362709109796169306505252839918900714049306728427587057168577598410296406317175437444679560698929599253755325547555524467626487478925593576840791861726157644325358929570927288952852575642728606413859868577911669169964425505916633626626485933278263082289979083827724450264074000227793862164787372327112551482604999287866625912922128094361461285487394083821297139420098368350290618320670470240340609149110229109122781428953836540898320946503943304122642496447870616798964169776312519092295622894548984760080666104233337612532504164952775539903988702160520559794587170675681800620834528486209379110442456546757817981676401449683255966619523634628835779878914863409361998825488622900987133346233060285867198498148979691754675881989122880357941666727092801405089775878376079561183456194729588382996294582054094929158675132759843891075315998827929430744559271758016692885936265579032106071424057544234479940455023177004471559201347572385460499636046321526673610055567421500782032557603734421867496641012090990811193266777135756308702489103193810267044784029127846256931565168356471579782051708930959670833284656939411740435503551329365359041958708787966064976873388548385334461907667995019056976664388820461972561804260047245659348550836470550503947871165159201988914762090119548788264121193957471607138985822162375522941760892079987897397975396030525704974863749172312304868885108568418946040860820716825098477330694545247110378608117610841681025991542879301005076037850387770522111095579114046901305885279955230386737562456202525903864835917127294852336821043693756846412416685637169393352622229459877979193758933491132278405202007500049566141621918330821455970475354769395806862228879073538714176658533871049035408290334467766713357951581675974574479756248099495634123266024791876583812591352053298507032979957124245792117205939030465469714947624104407307186164505141183361743614550195886885359525800269127604345078107679893909835994825095212092258253612136082094353442386481287743448819117116118120987216553722130384663992128657996440732627335669120846140971021130750121181138513402933939298374553883519100357175038497534725218832000272411137190905879259570103725267315135629449769754633875141330076311983928485409187239413309161825666080260360024646628641819467286587857475593603391492862286376417925632533543314416311012094424638999198018467014049496181333007490601919268209512856858205966833818457010710795787510224329172678226963198866382468080767399400549706446133304206091203797432071413479250069392074389752199295552761604203701691931294206781873624989240377393858122377861911914508462244514838780121183604505145471143921417465702328640320594249177340643400321528170786551814734131562077623896443460478863578118448176994665443318757883140195149481238395301853157039959117667959826548136405209327773410911822288762511101622921762289611774521609083399098106518092762185676064012491421159840207163654483782733168922570175261036062460231904984478313801984162069057365844559737244993706429780526566206443443628721047872159341580489034176816575846105531332538491767400859970266385385966551938206228311502720482348824180993346651649035714977186287320990997820223408673405235779686665163030351980479593282965261704169872525490965610634659209921518871295873463200932614298092638797649265599466725564806404817866900415442355424472235562791998057404050396453722919537805139805885764453949280036930993980770775451375588004720993216388607974683627437573004740467311053259641618512119474388763719908456342594199512051222662559049931212815620689795292146370429262738288237067474911882951974610978114593333995864257161568178388542143650443948204394641120910821395454111296708838156753077919118154252621499003945305526019097801157923624856270615359753149847081914488314368268058188046601514282692581258674682171148448661684684418449799926117763222646579661920377973478302553666107552507441258156776920335012340260317911494718464359155522765022730516781063708074274070143975205592358062913302143687106096201278803813970504007498057851933064457354079622382395098570147232626825721230609123064678538646318740868859021839949684696489623134109257417014350273902111458677618307184322045304296236991176291405177500319237060543826290019052824735551010898961602893709334514549082494702286595377579786166988476510659426333502823035959498339226424659221313018899193004738097665022298512369837121274415691988325920950016875218296002334732848556817120940954806915999850602672222287139176884130813219893259315483478539327467080539423480960327811827813118477902760523776105163214487471532639255531562002413258839707610002226652158704049595023650176641917933982044433270026917032582037731736829547571839028632644904579871792766101903675375388622086214676873863579409463829760639932118392375382141789146004842881305850265271212200863674569658309049419079051260297768891070175578581123278744283702834967043666805299375039424660471948238019775745167931395994595973595244336706758996682678194783474738157471774662721868571304380620715799953846801679736288608286567009253607601872256561242362909862583917516013227662441999190626929368742529675842994494002163555565955397885329271346463285440126755203544071695974988465922190703432387310297330026476080582088736527380395698541396421730789346547654347709248783054420932604614361716796614052310859541863626184017410285123150708270456042486799433072593946109240756273406193382486438522300500857225119094728761118188614086260143161096154824687566944113335309593915731433452141484814813960099292311185668777808796937947329397447609085702988360071621246071522631646752239773412902618463143366656730808290650237681533350838078765204977179277409568217282999571280192431425745600826041625824605748423426557003539687507452456868124132496174430949120494173925011619969003527595163036966530521693766238074231556468375105199103852259803604347487606607758736355190659526556023314915155407270454861540201147337218918980550378053512280242419940846789141036029928890580098296533948220173169134760466522098268518103179664783019487400580475420791560861326943590516745514187873949217132760868710564360838288422215469257802039048776436280298554360466809286085069381956048894499118815357398456453345253940590849535643132560180897507384098976286713916280239876399484500093605785235784106838172762438011669061943652000037605487655076570641058734292877612783291599164197766070707082684428850443116986756029713996710621273873156076581895067485640798773493765076804136761509019894559094755140920599077871153028230513516457723274240760078472529762157601448620856721153155653765501320023184709785936168593845707790092437001771615480034083759435594912218925257577863263218519413081600377588275442306991346929741098587319924856732272441088148628291581173721335106339260341961729001550370605707266408178980789328611012615167447742869554004087585924774201916947781405676982377429663835179611104814071357391892118998992704352490162653223447014975757723084389556560830760003440101095898566008130811655135952208702731427047020230440662016122941420027655510854920081523637054365089792249021905228795649495837470259354352436366388081175436220858611744823333542314431562237044224228003056565166528463648253727670062315993554039224207339643980049036702032319520479270012969190860408326227019435878724708116776205936738395958003536201013415502288381926135949273950434440105237442255117423640407130995040758714270621066205907239249014525147265514281461519757402100114312198408978908655232178179291139084086019135881358820995492561918774907414605229260813002453509837283493847928773760580752900662758020541387681805878290053387827553851372446614129951927319453820165176254692663933287825763474262162229097289300359049210753935675031524042243716042115930860815368803643771702180662950538344611101908398572971450248944463440669871680833580977530618544317458837818190589859206758408190967940057169705852887490252689731312974968364190555929519957338663689305200808819849352612691921258205421550171235015092910148517087732301638396343674615921735513987790162311053226719479996999900005884226030268168171328037643352217267537428508999905554447159376560056002483441645033311495302644007997353243345781091480409085912882134763636957596540881768454842804993960686007927488303425528102537311831350773761518643516828441872122820419086154606752405547009335287227752252214666162291743362311060664433144817003141142867120254805465787864090626601178935236366753768223554034575828982350839627098997344634737355437808780862939520616103054402068298453349664660846123336370734361961426401296874752253725443402932309718191703284040758144212094413428959126273491775282362577283812989404330403691024194318277431860348287260203140568162355969699470346682587746228504923469196264117817286666592574708042191257518665215718737150142894154727142432862987810896232224074788326519067246096194089910982599320491543677123019680896482253996800784446718426451584244104265288550528638060113730108645801485345405126405692106462509046713407547560790906958168180753141800176171089657972331551194397856582252915332989811934183705358638677139258146204912386905824458288016108228444204395067395511400621180040239833123575667317979206316385497014452002246551527947098467822164367341593502621668469946755903111420280828052971170165288396430241146751971561025631272663625058577609039967797429986148338663625966591129868340679340193806446811332567363290563657598759091673494465151824835427336317107677106630718875687792012556408460517314945243301406543336265880867008238544654665622508870175269145668991445607676351800647638510331922935786401175474624797037406227146573809777388608177331449859352266994935169920679267010608493780227513273419157943135573099220079765684852210083438477791000563586709690902225041662027810576833606699815510951720487314175938827226277801495647873922531327358247300925391590656734124251698925266334560941911050233479743979079924421122699880210016576202369144276654273186684303884938785330494154337375746489485520882532729817362746145072849138583569671015658864006873990031441360326697718638716970070169593142093321121398882812821851976548335530706449983427110958840975500929617868768850842888068097683222830572926863961207240143530860065067309381493382441495827540059473469864637093666989207925976032633911731716938688774802554939770061571250202342842511616016524998384375723908833225932297278657408420529556614704237493206091653943953397175432771954039750729608367013832472154952066491890480561313859287557665552320082067018723220084441187860799835475520452601054114691013982421547075276425286944001389640276289547206297731949585656959795675693667166283099776255161971866646087932857091550663091019507133990854440783522118521536566616293093067326045191949195188022919032958618959918160722648369643171978273995397641535273699868165358888385955999378074729177363077183578925878623421843008644043814970777130509639292287677211973102141893283474795889769020736020525747582284534614186656153676164853479394409654346840483398519441395400544962514433168423440207124363760460667267687966073423401888094417011266986289532171587929754551357552962597490531097087632790433578372735018965344199373391210688293725973420916039557377917438671031626982718917518272242257101510095259839467445708581375780702550526517974668423256195658696297309038091908116548031388875929932873421751669404648410987882936813969714150019011728954759774406139200395067447019096724493932821483503979052036348630594622880525112627619791141912207868187453501318558069664754266232895017438480407519254380440911887581080386601022585548574317382994126998846443663900848351432133554119040415527909882262116041148414472330233925928700331736917294721615460028195750388424094869715968062748578971588940322179411010429130415876306015181316772060394277739700400884214788485004014351283928793233225930659790359213069548372936540238175226011002747284632974167738580026345275784559034730923506061657705162541069321664392929509027073679355348096346749202355510087233402469044896455903363231682687376042328090775050373794009025874068380086298883338828274788317124186783806171703917399156400529981942200526947003227433572609006862893440483024667583993604969392662313631381541055547932630579991034726889124032627114906062555607935167371134051682763591750095065561572702949966604299652894934549310599253894172258604209526232820880123720743347969914904456599617056143443610263528278212190496125458821153187744841712527064939765863963122173680524711424173223535855588586974164309066401784742329696284213258897864746677220297730906331114599762912229436569693840537354281953493888484335404417222339546716329287265396105485363106209578633484967818684519865111812648593761035349210239787149489046560496487829229150095829809379227086774756341852427963834055086974208198144300248810080374650570740775260154572390874323918564945201215949921481606247428651688234400229172830867745832544390897486980884136622027352721483966774242749115306918911167874546868854475591814810342426134605634620588668653971009955524509173109702170692998743695436810579377097961857607509849412927461474569717126244842564351146935454761418014684267196029657289409967603714810664596711681079900881424632211487957916181917540750887651563544533744562439421409202268868974969013522542106035873429866930049808713166530722880695795837439869693799901725016723341541671898617985163254437841527017340171795463371135416080726980329884512302791666995353990352899914268277520595360385048828887387735283529818119807226171167870590125810269028690446498941696402780015763133094487341151703697589972137039484536007404519741527979959601798937512862697338873108651697840075132712895360044182204701027475084517675219669621541797017424727085296985513418123723763128414465160911232204625033548667724782991082382988068954750443416131184771585438119655297098715648781908505813680760116572447029761295684587866601866071228321655759707360858901140489885638604440541209283368400457782977935481815335216363766733501067129923070410611454094429585947439931891505487776644483977624187900026069962149517188039905683257402872786385944938730780046121767237906869689335490357836657365183294048559868553323481757450502110125695726220389737384164296279003327139720421877148497343070021919126697339128942611227857387203637517445258789475411917395547147748798601644551343041406894318428459375333763540725300284428337579152597638992679636257464990312953574580190828363030796455665079231710633988541799059908520563285516375524891021907830641987964663818347825613268972137586308664632540846281064171903364045971241824382111259475201845145503772833014160910221420035839235246372704621561596085785669869183082733705815326292318038126378043113596886928820625182724797157992471831371580855992212185846272026541344891667051472618172029661554990227079928147530744605022006861706831208511145910490079857635927849626442374349551360674215952776420335809305676786654370144578264667643322100716006589120778473878947317015538114904724558728866419472842950039377783879944898393452507237177492307345301893863877688472708285034675085115342715773585942556529574859247686972148431276617340516948460450586611118359093517871681387524854099702475228278547652675411770314457372275938531089539390218952187142535429699410768593336612983221215645924580769174111887737543939667932229381228340870370103433299000737688276473055107951971068822348751737931865010389921177095996970027096409621196125321119189583705953738002227818590569136182764248675622215864867418154055040553849296057653582754699916566560332073856994758769815577248060720329685521517549317916155056958021451742863747079437481386065083611939307895191473511888193143379382535540409758100942126134352180806253693624319292620472692140840815338977973811726781573707368646682851660344987446149342677401572840992583139589244079869244966085030864398952922715107988361397406556935891892453637055065336347887814492896547431735306916592592278835018694715720608612557191630407849550691092424304135873256348022861915650001582579505997951585593260155011219717393353520630035905219561196749382888374166566573376392363967651774431941559385646097850470520561298404040880882958825073933262981617592653029162203010098487010413545002705019812985536573580429315442773553562183038775301353232764685621663918110667870920199206507000457365158933636805407460914192259043478662081182004657662741513106096731637027388561932969352326897657060905517082329979776185728594974190288901680217538464080307000936585459206478696796729793551493216051463264600154661159124903404916525050628188751539911459618668061451182524378422432244066276160942164504712191089721227306405267258724891515512081162400956307056089645582108498469902661727400913216377602775337640979760875949989790783193399354925313084712361292500641700488584108689980865568703638636144944527196700391099550729129668872698795836552044208434617913638879242882749105567083726591866373505009583761968922880971324319722414401016875951617416043097933219909224737094409454531215755077406351919981278173332031204218904487884864419025139084416752439834175620975922065316597393666193178554371743528458064817988145801599823022061786257068477013109839743804515513104406937896565969040805977813674506876151473171493576353358387857132383854414263334631114850928633630393483312572808056296904119835175959819755038096265215907897560740344232025114280558097046815167733016291588483872980760649437906202089373083448765664061551170307220683051379414626749817580351289765950374401614619460696478429188668377123255779772667011800467769758399720357374585730943143683099382867131091758479377617668454720452217885035775876305695260631957734545491400935534640617318702771440498334209543519047835719356657172987311328852999905086514106654045979518229360317042912113036343090691672349134916292751369863359275786984485132749803843224341439350635396882180345303968017211393875535067321180422955984128386416848124447248266292938875574561437496774223453743075542440828269513522767331843489106045640396614905838096966967957769787500568059403869386810324246861357288950163412791636685587425351794555141657066319172666132997564756097719317314911513338580219463417872309643806141872050636139704661789023675272540403481851228064788819543068618950346483576682180742292462877681662002416701613890785458897084822475567582544200077443102535900313694700789501908830510864429541891644598335092436856839977912491456913035300489869392969805380897843052746816405387661530592772445121114538791103961913100598957335526889939507477814335421954676115776647584639643482145225572380435362195422056394393126236362681009705983595331193064582885560414914966506397930743305788123715809937676465589525772923045550001333513326201631362772771691267626196140794798118461527480683675639438821544372841648985219337843061053475028627330255475541872072610946122582815285631101340110670214924154510191327171089217240421087508020346955687465446446498938962490699050092085540733401095067696070992210076103218487314255686018618225373091994905073916133938247151488925409985366038530594074829049912960876691333387438216991115846820376310736711680851917946038317310877451185498272758674378695280059296900879431956311716262818264232026881683962076322013259886903354834179377332815303982878159988350486613578415458785724634778896991555109340934575182793706144040464509181190163085674892680332733258385849623849561265880366843911809700681263608497082241213328985639950057797866024042873924147312212125659676565987321593788367147229335428968659086366675461310716151685079931618525351433520096826179404001180839184223403729587349606127550186977555820369792841039997897342791664749080739220879794985625733515966381822345503056650754105732645741107557192762154002518749578747185785092186663441066728126921550848389966757708085119296152657329128227770519792712756281553462654584359987286566283100250156261874683125075255477295705023910031712326953691094923007966666043750531921367538486298124243264012869952021272720890286822706866859688406575317645683567022430964036138956729896691089273256897815784110735821293932715366426196040548665176310355014158365689525843619990011099969566545529585561117847458791499543741173106929106249982848664835321227087807561460370508302677941570939280995068908553550842022088117174754246303530592359859737186736476445461370930369441707842724277148758720480539207938657688111804859386267112634743886696375050418585430055406471860289088157371367052172617473712664348230583262290117753043709788461986672026143950937955665638446881736220483462293758147320713216081649842428360514786823173932285802473140646084622045628488971579840063545115092630290851941541094152818564746859555106596270492000968377149653323484673753609417371048038311877103714596865025447668923019099986949465771994759745884829225025547883713304980318891616988130217843750455668766105375324491084116682410075088640650993361565316515451074348565399989627752878210897988086830838447876853596327207285811986356480229695624662932587652854979005864062378004968686397461304416430448274890311333838185949077742873484411464025809905719931049249580098214820804986246068924194611537321027535509169873154059830377621599492623025416173721028314215598408963226618504607449014435453672292946713870405297496239326705039383346612854278034181823405011446648017402613946883795122487102462828831345643258413067650858861856407011479115982386139019235190906876512565979565549305846651221590139721188994773702077836596986395895189856188399524702379922716977593984376957629096462616814329744547910433799778984875414130602290827992632680709854793966834294309574744479922928126160061357928328277228624352329164149890956432755334838548867034972827784237499910254372500584579420117502851615459007527155987699051212437328536841455318164162985872150641432399778179794424610074924496452155538528585537579471788748290896298141034719914397976826411312726252247953140206418794067460463694438358419722326470289445169479606131844935086980820224637389058515909351180688971194617223503425358943929491410934142429542935789652320179386042189202117648355464876070421952748192617836776094579101270567238644798731031189073662317581517995947354239668299327471760156824524845840942736051573879142648308242494646407500241111607061904614494027739697079546828647411771853846108323672796639058852223635187215693336620301961977792507831694065788375161919007116391001695529887133676072794468742043834431405269331102946828906749429738948409351355578256108997559686130309407973271392211620263416662427048873921936015931916717572124025456115020595367553292091140343877675541201095247800049728472378750582952097856155913890625811030575923300861279192781241997984657123165132317966682692106667877679873226103983511716709857843692103531703913718934930671466745714523092439681085289408681783077371185928994860464041976740736386350418391054771986067482559600518621183250465731460151575968945448466146121238445284159506513993854158474450415948377228327473371070468368914051656409635086363857713401316591049523636904414047455714511007753856763800605080487883925807820231415034476377846297372780180820811125154679499631532304444041209745900986130255531829176734682958067726651371060723977038441347967052482678558454717622600442876583242690935796508613658623581290680493767951731374452640524482758315470412880759395897200234763545122313180811863998275602335631907344050742846953386741849500414740860374303828477410101403415560358985949175424494451195112462253390403183249729651688005758151564257936956902852401064269594846686402475614039090893754038769590422014780116778198857711889150481189710480560406395286259608992505026116927921886295064178681348532796945402827422060954382230965778099595117896350104653425478832984167313141223020097964242465591388053341047687677645741566869749313709725386744163510506026320369600431762966178168885439266832411500491569094488420210228996285774276356409921042693857815946663202615158357161369152369383597627827645127499900244574849072736314552235451712286377202104522001089269001031786462758213778282496857271589111084063704299428827375680573502477316022870484224410167500928292864207112260607887525907066148324976470292585470204343579945830083345325372015249009153417786067491371396186975465389989756310061428419046563510019637561138752640912390351695373067976193007653704941535162978858183782104939221612051229623985218413673829481462412733089386794995802131228603055581628291533191267988247166122559651773992351955000595487067397127624713204360777345668491143462629826255914448059009870327893950084098085724540746845243128824207351053765139762224353554239984192126272187468524612355080873385924290757969094608048426562434765195792622750412875180124128761153842237795757065858935573332753125434618068427122088532189944551505989966980637151864897961439199281180768981490415988148066295324104030400238513638525455239008160917274207716267851087468048397467677269104340623624330897571664143394250244708752227138110448473770903516627036474400051880990573796074119792927030714970529825365219039910220862886304054983091683932576431154872745246032966284377753252094637746363707785073788231137442774120594148652573118310625892195814168170827007811818858036923494594382096909034277108346157405191688950220347208295684467308471929916858044069070518234647876154917741619662213312986843743482694104339270943920800704609491841556387206225507194876466477672730600095509315262353148300900206209116211753762505121748010501924429844145310833076183378993120968394667270932065445303051476093080589020636974363491386318095541785265122055832870321313762384353489231063389570752319221592158770228916161850099964419407272920916645169692424682337207005244608607192812842724260492468663386807508922846326209208176560503727865195199178181138318332090242329644684835175813652062211853407618226024540655000926190703516798099929595939157217357732669202317806202000567317106051944357003603689608434631025560786945692612847113849014226025150391586509254134463560697166222744978386573568268880883372495123003442769019509065239070027914202464233637795813704655984485323754509386812594036888450513551508681076071407775047824113605822533111334038386635576059129176956422317598103685262527446510477846588185370291144481937673260432883544614165521997020467511771299218398506068010358628735208565562278628000213248925796510548428774788807646088552304966248059122657557259532483727484121834814330846456368445756299838310979372245813326415739979797551566022416672095260881490800900499986519343672915464829166517638222760959752025609936529203060037600619416401310970842486481221231203470799372717572026700068175216022171266196694963103057812011948995718662827844980689512310300642569749258176712303336790792807209460178646742687457764961122926942450212053485263855246119290038771990836342831797352563566977561202666487579308626207653023120098896387341385652269886263872829372750828542877741834947323592496207757208701177289776723317958368219235665787639381910650891936470756301516110788641104183528435716743502817324748499620132351585468392905229483515920019856428968841099695594913130239227008208848265103815818548845063931450298190359009159145399045552109390467996276421921193830507365287116520998440500259795247527336668987133068123293257054827045100566989332038049711911879603256370116156582878446928208924499564666982609454062554243603927764071108619721703805576598311583788374544252921437559652566181368962632114405818231019326519018533416748752615977678796480422029210581520750560610746743315336728051355457860601886924717273240989215193526617464032371387609046807994797531891348745518726995908840453955944242929247028686367359323472210534714927882153086051281334685762459233648071994813519088474932367275055970743427887630956978556078390142042120150754425269540993081680268314403572481326601783819231745926416051831245357526952053031443328781778622832889204969292034509279524308121663628696307994313761382486452335722040541252977956565247149389965229737380192539022373740727915716055507859422533359492543850448997029573218847866935242133941368054948853703072704636922966463107692241708391311693687944980843114508795990171775705087792857478291881924426779567391475142909704386693790788490437565884281086154614531721417205000968645683261803193809066750160481071093618689695065303804638335493638175730661315082756501709803149736050246309724787500160912575484049371358862379156464179925828971844914854637413740611213298914493478430266695532879414889249762310066377437108963091231692337811066973862674870189861751544980002288696395272590683766845720930181411414259939097496804881279262500788826414089500381638044818245361507557237276463439870541551119842407384733172632643403892942221133569329623252160923808947904061927196938341799518816408099616060767684773752595437033046756611743450109207461639471234709972370340439407002876854089571676224369650100070988628151596207975488709971735075722317523407018495050309040660976861972885801200644204421832525004830375021989729207464582138386581492440943822582212320241987173319843577945050152825729758603036833148379539896414771807060772002861067912833930938432056407783140618750282781645859101920865786233746872031286941179981248798102513350896766273335031701478110326535826422530531368162712116654847598416438302058674388092123601159514583531964404920534317635973301533769930980236591187328531108488070595327808190998356240793715717389657250400117077707516453392533182344733374044444482282183310887965585122529703733183352501713073174945356933989801519565290553798674817054554465375251339200637861140925756731123451562383033769784157704720744399111505090460917919748956942331993122540280577266643370186672620112231677258920062439653487092962676501482962807634243453524308739639293912748471095877379298466546196977671749790911241034069022627003048346545503070321514190235457746261388167994314629503738199924603929696023873458057566546507450633192677053768274612018832461380606218155733601189527437884436839055114523553306807279176433643786898738159793405348336259594234612684056725831279318224515074802371149634026873029642283770709422536824592565787554140900690396630021923884217648347042447830984376610176879955973804068799910033391359955803934103836767507000178149375326470107392942857499061709120732088842306210390166832840909141768528261394974582630052213465812910934975753345642403665023754045008418315755120984201265802319527167925967151128482689493798886636390997146880178623252399540044159714385588434285681821490343461170555619894874527179119721695939866580962454379633234194044593467236708725079903735551705590206278699287344157738461374352211549303341689731104227253067367998410403535505623803391271343350589575893064604177757216848137058824911592994279898491318914228154133159986340847140704934446280035536771526235542074563143255401917315300792267166491671210106200859037686744592986568243996597399956534106913222619014728454169420868063651716245914331670872252347422929001505319826852795139301659088640414451799100404811938173976281692700290608402408511259654947210386591644853064517060955978377926855320150979780838776411056511880439079143706959340790655288224432873248734991015574588673598901734793848107864901777789020409812661426853330601782989909870959468935493615229482963955632748527103090586814294949678068988996591181488070553031503165877178444398892382005737888916293463219155542149077634575491198105075254919356724326067408546203886237464963714105621442504158311919871629160679116695563504545634788802737050921140761620339827969899654194466574608545307994384121272607455471594505946940463776269258837140000430544015756024077363245048692895539064266563034307689750615223065199796145141023444372776265158929324539101204058963301300649048547239080826560842722219978072867787295804086202427409609903448964562290977769985833950770958323810973626842292908203459524235991046537507891546340120519794041142487444503135214251972624883141700134611282218440220189413688424577426885860383803018409095167677663875073227147413712730798681948194414290382182373920370621355587625838491411914792418831051808900683340674206183698272646399686380403031401375829641767267818108591408232398977574912188517071595046492444049638685805343614983085257894963092164541657304574751423491410140470158185543509834875795997672224984413809073489630595472103246449132771556588571590564168777199597910214738135351582329817586457038126747932658783960924221328403197117197083739088083424685507072179235277005480831842026280152137065062676791149142871707738723794346019721961773778087496139460458372391959145071093755129313961553666585250056860812982750345105291911165644891558066960187004039394543256347058166514901529914611649297950863524322709834172841151794198834225502551922619760759156753776943382621342514277131581297808084387087709010469141304497865736729647141786150228663281337628027529887201703507985742969405828237621474586984253912337107250043378533614438966902526942387298813083929667767785951171022904761721750905297974641899520278498661740389680308293871033762218011159717601570410015939549429485766614606624880375296739869966906568488054621035036346470991720235832101122558693929127567825616248543501304514758344175909726091231663485544275719248473945872834907598417550403264828701660032783727418344596702909608328276282928297699149001043916643214570174684838637421452554273126866057878411485849479600225287947837064229949320696420509120451030293924904660604611828741719835040664686953939915732846163311267832774052057515620554313858067092502215821282704789490062868772035309504451288489709749694154715124391013602471106146027210917057139806942098949294829689411102280457117984806553822011077378653704419767390275051781702028644563845945872130497836018312729470355761380095440779006135064262322321341345087706630998470388135609834497576347706697953938975639164728499014845550140494651690608672435868140852306343968029109892486727536664739790505656158176341494446269296649932739458640119219565201866072904006368953126358142606736236285772359586627847599207199266993526653562830900756614230912057435807114621035743981369680049308047052659261165023068951002691273436400455789276870938533339102814395873099190006194965744135276569010568482636864761470306262641314751512235745711072046368300114354177517690049998559320580530640185650925056419602957474531937238200013342497827713369530919928062223114335969750408432554441238414942196019480301941586975195420662541853348641999513228933928617342256650639222340174297084476936506938561234036103455055262932597789746487821926833428638006668443982224979848816201075499857817380985290582914374147888027260364523358498891627341337472415949058607224025320447837880626930293856265029608459108302249285476445768987503760525975004066894083158554594771153632260385002358735400357143540374887746777552694575978726713354184141017718769576377625674184457273451094714323316631335985472351791671050922592608211920741757767552892710238301889770977025343648799099973172213298958786947489494929953855301281622077912064831369676897152684729164762078208198840538595308655132287340472280939558841491182322695923087918118154441541294819865016653736102179785220851840974037453407981237475607971435728687682715557454473204987762505728317724799182720430761291069660538710254783130427789045457575983093891686558797472136469953553041714718828207578117781298837203844588017014389865441636454297162487764731308448150494233191004942556748379181628576970765136780357040910629232281288636309122184658494206413152711539766315248329452297965552032448261250853702639551988185672144927335197168371164098426614178868780780018862859498350083168506127724270626954780169198926114857727110823365884542465225316474718236385028197009059080797426596082109764931752257440324449522288527531945932451171521789997981653316383662572564643560802944385622324601028209331999009691259050850064404660785070530332694525448391811466127176465100183911709900478427991922279013143976409876905269354977997897990851735706697727311422092023481075149429688830071454348854339566537213725319645888518983516284505671215107483464967908389132808899069295532669944215761855177040783307549457500419537672823759161540818485386616055854547111373437343657000516433703859970365474525805270421254948896324515778637470731026700050674985459193406790249664449297032424541862801344357370172729159350762099481182980393434728779975921559320563947520394284300797010798734638346664193304802252446625452862515389985531883500752196081187888408988733149760982754955630697695076862694549657963693053615885353373733031429002654618160037173860287137124788947598167942758432084278211527554126691712750520879112879315627286376448241717894449658977353547495507876414394780622360868565534791951521578926206346148718094668766285262826975036370692487437717773409988556062314855934630023594958649250550713701895387697100979577432264722975084064140567628377134683107548640898153785760470945011491152978853696384674677358334723017305887272956747144469031217106209137103102904413292735000814495091035998094017500363436290597496530186163723605877206940163275027049759432741707299542282513193729489577143105125439760820593442377091559841069463674612096891752166609917811451020745438543825022507395696475573621402143975296160839369380611303103116042507188594265639776671497601940419551428593077623745622981274496591562187884172630677461312262856799584777202819880496838400820286648281252815055791425963957134482373958526312863547223125853530041839960282828531737143303471368396456473485359188552838234307589446950072352739797311716169582678145389423365063391459343051796382884778557416009404411044748994647490832730489135251138986118419562407557275161492936431250405810678992898559480727764653096387555704773809723796993971225274398035902255100078662672178329393994285603962495648980040775149710424061554370918700828331112019723191276220473464319818037119408692361279292106327784599198700422500663532910414958683526176753634344764799749737633778531358397629692530361477295087351996138548466823702613005493750384612830369572869929261681126232562489661332619130516591227596466361022344783485735376323803180782029066990160251872238331119690261899518859547484719186917187990776475562017628877244006801611125448968526625111585037834835845028027211064247115277565126393465264783933297649578821649637670559738742110452963753347587870269476307480116150600827146103888334609484538950683719566326737943890274071932165241473607648429151079834717805314026612218265609709928581024393548425873422810255687883986868980253705179517606817659175265315917197325534074316327516732979194359217158030079525394895350275090119709299348854925135976712567933955402303010492123655626083637927184056143664688745404240740373628574693771163771821184769964594352684330964758915122827434867225501706518088877092683964811457517088070049813998483375005642341759299990563439169089539143542325849659310323116433321219891361890171889642854778789831183414370509069621712229916788232871634121751754503764619377616375108446184728444489000420679989846784303717065439703251941781337022807442760246878094784025451657625447378504294208843587130652868444594600843357033684578028329571303203598258206260568970204243208054182222721737051781729509307256551962303263819927745711614130967089518027092611514245538317265610987622863928923542371646393503711763760834874746937886104071294011939154778272389076297634889934163768324818038353046271635045398128698182207254461001158936073134026292908471871493257211799463849163806516844124518184021886376801615492864079556679096257555582114183602383407380427883436980869747643029826539057107613675453412004825622179875611374252118161195309469090173809140370650478730780046852431037556292970450695094312309477506692375574594273274677516658521012691213822418773325041409913698066759617849989110325561515964225951799735519519459334872622359619374372844698420893395725192496602537070262788254355937659520102225509059358611619902193383645201414073188399285188622530349405522745461164749512798028768477670547222973832828842499575096470891432678315936593903366302802293072349429393685478299739659951169834378770361763675364006568969033189617098676400709882596804838022034664559102379453423498018900023095877047538991606981055637116608988515129007386224063263268380849970096159008295559949289013102045457086559959285154762159217580375988092762070296078520908458211321941080116183407070233453735934538806530823820485421232496128726663320122709183832829730974804392871978417838831255589383179740762657985286429492288095591244010051633619574752816596494335314773587466977051912603573126465842628183699178811112417073568068250317740849582403354124030142679096196702978076419352697911584450734924334244686370899762686942126257012664177191174400795957445251139317747014304125852337969849412971121735961774321839814608448384428532561303022150307634724697145309851287898289423228544703448374764027064576934174309245006994093758353033645598906893284437086619213334547905954953316889625392462360265692821681927588851240736321164688511783486422579797036276447145061456847993825803274763740414713592791020975100918941928453737836049491913951168643461215599863579053777263165456824093843536997130465199113946471951513188095381438856754244043167004833775301820706313933971252493700190119540059836197655327669874830461637913120522315930746674043670369675390904188213742262751675188286531135795355786619670953642233986781005909334104699518244840722632707761660681240049206196154016304422910787797654692634857252431910428337086197063820559841888783797159902708018092725341821436702803160187489161964217080102378410291556465517567059846483974003837798138838223492838478378363381878755273909027366545279648720358423670896903305551148727722359031587291588515943128383133295046133499582356842645310846888694450513005377755274027993990745740194609782599242572786610881422957146397672789533898822744193791074206872920143867054158833644002128579275864648543928979349778487260175255348972807991213316340805552496491869733674600870250917384624976360726718617424493626221080737379333352010652537777676326308157794659154259007466012805180984307176982653775570343545914136659607691078665367165304490709401388131921929939210948538478430689161607065933207968547991725046102121246424844316091063614548463519803192320113824007389531057003942361997638049096741949634452262268029952471671690400128205760777925507445300452016118870758355850642110765159675132341769219523353890729077316783617607556191609137357923810389026498759467373716113324680875651635296038997968759027608490170854104225237647893155010706847187925743481069093472242373469629553574507809235645193666603093427667657854736919163594991050101708139351258268906642957210228414874122163089635944540983029334315570314188975499500723209064077756249670416174765063676783245414159546511866655428703736947316602547251473374036749810919027370686512055985164667253076399120708325004206889685340688749121762780395977309848164402107862915929844413402951504520742508236528490349933126070967548266452103715549750186676014641734594127974859246125780562994518910402654882114812683690182321030819764748981466373836376947578369882789878031731283595277800435724986734927159927699102711087444562250766975165257723432111520642151932601680971167566360090641098580903618205890872575102726504504387557410338492256721046876642781542524167944701644530239035881153611172569751928717323870674202226990830648497295484311121896186575495797732803423239031956140245880470095796540624316562246847369142978150362253303412550157223805359863801080812149953874891877965824870202000155091439355173814341210135704365237731780113157497898522756088368950954246313361644071768417678905770297587968278141702683484313552221645514011637197258440761482331414515441938113987999339911843852684025155241998594234505453108412799330322829536070763284665968252549431924196219722742740391715463439900592260109058868523200720949030801815993065100707886931137682488435643922963903942112259268703391935566782148080606536171818773683962206688227871447606965873447550973892309473975966886580040409860898733042296254302224804483809677988001590467774771331080516580615843824707159220155286045257600966271974699218931603871024727262180755088887158047650066470867230154322753100831299273721069534578031353504442668573624639896617510219166897116151070074022003584153443200943756230559923641492314570771643417183353365284506345679232935525732168528883982126219990099198012381382270226332706834510067030571183214475958525036573404347442492990525777774342794689437058062643270466898482017923392616922804412221788747137117887709503291667783886826784254031939738316803612899139763834687667920222269346199231535892851259256741908965299391083975555494974037618612859976203510979682218626080616985512126069451299255001935961110426303435745823678165879165935126915552958805071258798631897483671195159461362203245016649166432539781373573819647860400171665905784150187459241798948960297614241452743205089576108715917747152086533106935121269035980601564066120219352007382069883205406428948418403837293201815108457822033788764880876929954284449182859376278423308632979498038672306723727009129365584942020040506672633035158438804188459845076977467684495169257856683835461867168491354087625221773461549902223834188832902173030780613443048872854822161224738633622960436113364384120069541481686287230270111753268708818329278043682282283928526985800585898253377267353573028293046165757271653689563844501058248382953813853432777428059847740802685619561923292233935056003605415418704043883460165843390358131417046363149900111650186818992231688946960148820681795496820926539001340262066344042116854980387204566079789209180766229813453270231650977997842391443337992879382796819335024542677352081268937292675687033334988118523809344641556259264992795601595826692147677848935716769949912935374078446134033563079714777611820066001411518325988315973103438510311476982899722855829585745210614458304721236056461895479749805837103521599498910817086439708878870868885942913400965018672721212675193893659340736577676696701331130311205190051337257836483325114945759019152185592914344473278714786082674073641735678002071101807755011098076325128924482405032836544483393194118858335670202033664701707251374937864388085298686181382852738345974011728577190349317420362627364308002720966928556357790115003282956404496910659762163836320927595510816242318423495775988600849076658775931032945800047425497280394661206163865138899947747448326566124357999163048715959399868354238618097696451696715895291232007712670595032875266656605354524659463414929884628849382834011718944937100244609486810942676058376597664769134032239770002527664012173549910432353127696608989228906998465613785560705116216968193568546336383971708282491641969627952810629571575864898586340611966277737479951258524641241027728985057745094744761561221521998275418669893589948726473232415339692972360007165331964648317580393832894611298832978234815660292108125653138278282348237707706156545749249803887676266179866591958515952292659997780376275063383610585360897672450087300606293509176961895000863425984046936816692471145646267743848797233074462497843302074467032142670332775736571521151647716246326961739006236531486988354148197492295053945163773090040899761412192865934026446969944916624758820683949574381999132909388194176095833561603447044530658855714578661091972371073648212959407826662255834813444959387306893780647257082803570056805554695549832776673237600828963135617335227899401693287297714819983742181537402664687737363779832616880632023924070907946057738631507239159215068985260446127372422550346303347408348043639400409603544875217726905467305448526249313873159442038707135263298075099418686518465755283164185407778429434231460906777159586166554448711927673254715567588551420469558929330704113331119836689101619286456089371974585323771171285786053508496533915500464614443031646181496411338458874407448374258223603132767657933347688698644675312438001157090289130306098906160895502304207851417726418176914662743940858605806043186680883374830626550660345070521941268442133869666020918840825892808673116550045671466865007657542982239485377553164548713855395319599190997163169976899951928267712939738296936445323365768365287709517936172388629196216484158724275292223230113383936527969281981865218264166745114784487743257919419215643990726184330552202027804382027891807212710664089417920347026859642530282700339183812599669875150706906522670999243497263600977407261320520559522803513682773400057174787770824177416998692917482113950317330497253522319905475174308801078428562811788713751899197143751301680946905768152762721005977127934417933219836339686283628353288092442090814635601033149324287632455548867604904741669864104963469778988936197640004761604376617257687720641680832547933365447707981974831447518838601076594893550266199040513167559534112622346840896494963301158705643083455222774610559672855072838291145395659742385482190408735813423537976529751582120082162846356563988043448172743617041182644093847841664803959785124650408628463308578519323638776682392887423381374255476310415405627691802883124660757378080431735308563326003473429993094319200464216517762746222138138891889287818947567207892948624401096707394283130086414991991951389370230527848638634891755036633047040294545725350184765078456561835308005258029998973893598231594827668601982741370677445136443808687813904457708106590237213178689562455171555358963045590766598241070098196632305107965761393696027065729043847828889686258870010504304811935942376377451963090219629719588786889174065042329668344716839274244447735621469684753505502623050759565467142675061411013328764215974403920018653198451949946618903671271684732638072168604289830785241112762519245533717007213804330353470199666397956601031251628402911838874610943816769263320731997049602813027864649446490305414944947449985409973060879511922942211974903900548101273926112662345772822789745918415303093578971727899583422774964310310266880063420352891711532008934376516895360295410509327845384885908250852547163263130847202418989060200693601581935586514875785440244611049781213958182577964942529783687213264915675114386597234629788882634440061467330572818404380169741880916961395767540490277236544206043806478068679312668878319118065214696978342415511481806296571083377264437614231689153792312441169579584539387050947295632015651521407906722535091294271314196492662144575649974193198847184285658656841347973596348197526934687464122939845537573574173398660520154566705804085829986691621347143824932757762705014213193973651571337265809446761207328995989655796027152376538730526672300563916211026900485591704647581701635164935563210878049800376134510564026090272797540252605388835857655098278849480209043549670644673327620712822852155997772029593754026812837491735724392244946217383692059232551297374580481518250106085764340545898629335512312618913298603740468850661603831600116670177092413848448834253691676446423256475434921110936355603568635409308526097916727455752435467133539913264958877316609664189821140483343503200377761075727458583858458972186760458540419991903938746164817845224159972139888815078937484563408886312036771808005360518140644534883616261730537182161088888252977810988892492605927611458364721597500630156500368602754280030807769784559565710553947334697845030371040917044504170970123699023364921808273684680215591703450614483480240856176295804858002449239809861152846675068523894767419322518467754741958517372426518431413268609503587165102547537400758199485223929940210790015720282914727298398052209641689385333937076559926363616879516595612965143675796899625583010968881640995951895910708193259789463844625785585904688967214728096959816818245615868333376279666996608917582714836868561496426723163605692279473886910279331441248223022839175879646139927282932373699814021061112504364028319140832164484492072475013634639479761599987777775155629236306447681670342905948721833953756101569808115949478099085119213811119977014866285794841860564817200821420392786963411233501521820547860651134872891882369138982153454867085058717050734651380787356400770750983299683535094963889640278312374817092547988438162632490514731380342930255789794837808734367394643896771378337209451124125718063004610755281949518273989480550071094121486761091966741065246973783441297979323187390231916974593023642108149109870277386371886379014001805680217668069835365284288352085805659476625883487711972009135668982094939699367605113758797147430164287787910696604240848878885367080373264976903319188547203413783059219963465708521025918498651624294695184200214946517736915918893326978311935776887921706212560517923275085149047151553098645514456600214553859787118461384231038192534435502127026636326677332158814937028108072520086131628607082217965618243051280553540699610015048852231902916308208037390720661627847735880078654915380560223624855822222226738711921038378426112243346663906316831282263473216963681724550644198740900703457084526129800648942033987352987912460534616029273332634166356378552401058464966033228706224001949470043637539622365437192441091017743178603757769516744046759782794807810940124682488829885488371475378813059952615171981740642032383426556330508840527585476832034936110603485084883336458937645767885411921327583592930204099112708538981376339883956862827063324772680013369710014714443232149732380921815020873428220791009387111658553784724329930409302786898901426983563434525668427774472990297551905793144433252572886566382753926685531445187962806587885075582519953996673794778220195249258256729319265402866983481524357319732504111420557634041705618012632719827755216064255130964179522452044127947981563620325692633477355728959663443868955288869272737049659682220252065807756178016841214190722521564911010589150010118176672954877642157063647713028887895411554128346791838901930855793832581424523326175079202449030527837013336133728139256330090467897913183769534668498015127245265820535063860124161510334490369290097010785801010540233208210271062467152738256029395459373503465777037040082175778346916757873966210612762495593707895176637719645287150509836513308570118571633514821878192952300043348042514100937048079556701206533407408682995774546039897652718882395479173382215361028322236626465273724927294636690978947461645701389453189972302594505113400985526992225324203774780753121751191470018438853849839510451606723722426846812683452132906391328288124364208577373872599478906143544123549451831181961533424451242704591110683583828962045332771912217576944719753869016709226445915498780363903807994457983275502442616346435618812383035449773277384318964176891268547267544003551270442719378618185079153913893861155607843998244271289365622624328564636023474613653460487039918937070670686793752097973082983800400441079969830545208944248408946711352289121631735817749095845322103625029883698172369909073498916200693328571559534890765384743531787812849159662258256885572943407714613998501829315838022871317392260563866515452907236646149014594414044775477944435855777344079031431416436739318837188956399660122077221294869406502734862832922661652574530909545435046114916819337430147422912566080162416974673810409163363312235278320262424564086650122679368916218325744175772403147782478023353847452800104419477488183416593519534557680802045952215621919179076836175945315025385023183058503038062548596048442092741504250637868259383991045986185720194841333223806993186514843368386585295501855686228720307035962696250526965561202837693279527039671891945432192856919666440690047821088806620987962909626982257978895638024218473349343545594493316325239264878782242686484573158547965306745877864422011648422492195384187783872957956925903948803346861300902372555423698312381037956305354677383907624881375870755750679653668682952543901591609703846025450526664351005827986127507965471380733917524816268810882618718552686532370897839644961062328352606650088207571162835771089667226111665298738383194486180404303916665783598457816524392742187310023439610944658165508322227665824345951955916571528079164146964402591782385125114032080943878469729711531915942101586804753774684047619821764645304457607207193320874374775569471871334115475957930008540320663056364839278651198700877907541110717120847337774612759780408345983742480272873448312082543276583063077029109460346994613776071574037598621009421945044458989760405827826609567906582279515260651979877995873024732255722881989930657441730330927031147732255466125425148578125348476163206438748851447718411263755728272041181210242794832816894872446282822335902141003952871149226528732330614246329081905997598125358903998300385140745954793916026881486553970726966665209457891395400703862052442672940729895514993405166996262588990296562636468087520708614764367166651768840032463759282585667005349869356972442005296844603057097752531840971039553132214717031427822062370009829648066050462492023949790321109475717577151059733070935603980562642627848779645207434949412635906810727811102014602851217160742899262454575987471587795784507610600122638900402971860377936921522425222600059849745250362965723259009102325679778790732219967063057172738939092532856535279564216813713461234428284316273173306571564348243011831635192283411501066374435017115366183306932183195271733718332663707451152430885868379002059909830474816170047858823738002920095541450159298530512538799314767115300488243466477440224835120279089743814646186761373054158052633907648543169326778615202136535920043512268336680703229567319819148426648604438524567439146073729098781668208322897693273459312577099924775434131759972199700110227526238236200611081930683692828420081064424872443014179863368965631504876554203503683392156601734576244353159878726272649775544852589476711404354743654418344008980793918034181858788384943733664807908199926643831087590209058286943256717371425551934731015560420790285539365444301383621250588882342413688800540633485744472158005958556664832564891478412251544236835362171686975656696464782203305823014754538357152512906632541096786702118479509905734602087060807269497283034645105338901030287538274170612514678925209976421644356214397212949949825508449751688890878743328086941832201367185655426844868342988041480043315093322122678494227385783186913643065960553740162774685090510690313141147339730967942064365092688274734238232784753999575796210499064004196261497508874062407482821550233607924127854112226431818930326857446834951914459235390805489586633613703698230486519339998864932817522071572425405638698310952052153278149333987647302278698783152810629188514261485614775519279875845304869143629711571530478697346653668658478782102015960386621097321251765064932808504428800967129552193372485582669758478630215834156950498401041815011270315602219890513023998620682684613483055846592948489549224260103486343730093133620770499328261534548007618523447647237654783364762223004945846645165701872460427194053801171210579030267360001180125537722085654993023001234450849774127971580267600902797288571288127257267804188199087176721514798007529781061012033074861629425861400878865676792246333186160357949878755474040315912145546969575038946098049638930052376645594182291564237202399304312519355395461975401457916002930929905215024874793579373033280054520070022035287452836208876315189348518081827671550026621398227768017598136157809196143644390102416737074204459855877691904749063738880215578196751968784253599868609461942776901194129754785648807911158889439256895318441853290871823801267653674565467595529930193743837051980023245414765967188445253560483617608065007725718363800345764678625690296422532625704836675485243874093179141264915897137810950842606382283886126305336203820343793072071278534591382540640540041407167757337940784329395739734445893088151832811431990484471753377700074659098334197173700817158849830646469114624193900836117090666220607482639754006125104514990322818082053288562995470506859760796141309304449442779497954466824596277451744902711829415565220387860427697489945992554588516980377293302778204955581841966724945430091061115432288713190274806106935002734246844779181749834971754269081702718585349373539012835448911139244888231486483655441401576155326798122964942207963726575700201480208402612097662113580334930180145418869957543155190604165342582768870497672187337349199618517633564993846466787340368519355544244747882876956809256032978118983529023248174142158656255851811853416877374734298884853862634064558409531080748079477991378684710652564512288070803046899109906107368284122758674827383356039785762835991903540407465677458692453388515357463812366988681470201283120777663116061904764009119674412583898040208316036463442355423083436606181314818237964814179635920755303361897340773009922944726302193869649290402113069691218305469150975930505025564854862619626144268977983138129864346111693166234347477579400660320207109456158495791287036376788944140865332778682427731890122776780923727284119427367667778182341927923366993486058359940342856438522516217257753551572368879941116425769700965527085378821757083446170958450992033094601780652784937787124631023253260232495653641534409456587439615971645929178876648076032599925777459159222956501617295042941798004466836947014408844804603555824567925081074633744916375715438007892122659252822511199990135831161914882784952891588996768061189877276612648045150730768569909380261311048385288989795812901097815950177267420057293171335602788912561088944503382431132320225551227683393205034816592992810050634232609349598194487595434856053522185513369350944693614239710200846058860347021558202081037376777932115857059570370405592751928584602237440123224536498506463730588510452789008982660682452908025142872999209463222467025256766260436511235877246858747533439473984907316149670364576207743934233707138563894773387981979914993424731709027286073810992350043175271035970581021874708255118860694284335140932508674118503729238560430371349156964616834474035618833835478338006242798609906058105506905482058317782386483360105764042201560745591075626971211024672028121117537010864762149593530591954471558891677493391954554611884731751526226883479343798890378699513880280711441225233610365324744990478873110978882299078208974153844827359781796708148555643266351790533058674229404440160202125103746196556767239369694085087109250026156743065874358813262443305354066320769122110876312878558633214722373920868548134705189331169525871268074252247661093023490617780763499326050745206342061456252788591695598212589011834327933008202018661176561089508084004060092762429379500170706950818962950722606462307291117253770544065432015647705383418613607274494801867181071252998542414402677479690156473561212494826486596091574763356982257212043644459220378626611736283875372156605923371649855321755813888411048835868562470563640644448752827755871774414358691863683342968555281450184612047341796895397100974261521675843773270292825592368911701479203210504986283015325564495900313645686612334208026860581577145095007294412558698927370945265558284117688388664419903598248482977401369539495399613158260207445267024548091556437701774114897917429442054016358775308936040241171633504603737058953489887771792168614431478674877319983879501680892355484441020582081355271212050684047144323011535012801280898991642039692150809744935744065596117596530764227659340750316450381636967745205691089679593717491836017807342739750924357560623513019500412603887248616724786254341783249334839640485699958670948319715883397885271202864485542824137493790786662264134235100426707377717172812016753435106968255031362140564519567622466200144700714771073688543745776816655655481145538539191522379643940245628340678100621197780263399423215627402937963230730663945348638923624820814051803798726626396149496481501824842351745307160791560012405597145066827584061606786260103092665225565323454380550101963359540881171470108935012589415709328352992490958048238829672674838873145113115375434896470455072603900107511451634123920730529166817058716137574714347035888707745568349803137136084219426881145270671459325701397752186757720518016023552776061442384853091223425212670115127691701369686352198146786524467069829021218597884425771308784765209298392359460176181725514795676391055982484847283453351849574100704683814707703672846077201207156083794901614395648999078879024056912689556650651749021436461408203165254026382567395631633229517550188042487181568656150718749230955903560717223796831791089589121445175324775649907243822497695432309825809410893124349034419944797546244299460023774849793227674607626110458055948497979061168045661951407938208220884853993309128622380752452147081509457211225602372057291044047821642656575673582097242309463880222657869371233279712228401475985076670373271708678091696693432196412498933603827704471014542187854119129141111904328787721916146660441771077426517064441245650794151162563082773015764878323668052223622215338411712984253578358214278378966169228629035070770589966898654017233631526118112380007201806471579271312941509451137307425194065118188942575178789011782109427471274499107555090322445729795228957298634913285950104063284476403918167751330066147526796426052989104986363973978345148708427516716167741981054554408563786742827944785660491345100224448089185680636128311581184753436168909273103245189110492785958174764994965996123578097727524627339409486033893507984324470130418503931667901096533839887995944731051120299270353290365591035854818148097588387341529817776359712034096873871771573108506768562937153968237757118013857636961577817324949139778237182787228784246116646836490762618189343191770490934626939910601950024803804957460008041250560555259747944638020755295965820833320199747724486773041583797309363119401359213925327712031626764381327119295130435939588344429779474682613420337693101007918175751236223825569078646356957499081190542130328199661365706988179887916925049449431450891166882458969700757916602288315558917181196608406862749435805834850176540241517279660859075746547196130097477023503596068096837790741935766136379544576551520532162555289017574271643629107218271324908089577500689018327485214216724590489880452273475713528747592525383649996820736483652186871450141642083751008595816211382690080763953062171081187064799291847289110991199631060817560284951326929211235979697006175234405274508202833725152275312496623326564637821910510973202025846593377166648877729394571926542569122175250641493072226778792033431237743763811035286311179763315720906870403431937250133371572314603352853347509385941693893607923041363256023383124571384972765851818433556751152309097205530375946782842986505944411391344604463136993074832186935981477003556547382106857829661834265668679576107040088049476104862778910486274952197286836752924523968063730541210180087664489673101801771163252332882757894672446672131271768450007537507908801712167687005649699098594786639038914895643020544188629718602198500255796150618684890856346852136168783152648856456979031194936417431580426768680570471040514879169907048708592550149698591368563027899541175853373901979067509898903177112051112040709457061539892475440627382948446911426545637445922533714285796500557894767209789111276291922683752163109872104542494461240607780986915937062050018400459867205019018820684639818952830820855509832294725539769296861265966564879069010812236401236706407349373173205571661772272481770672203278324203516505193653860177819658468618193161584585289714179732283602711545691916407227447627573136057498460582446939925057349540322919568662507831492786653700813041830349503388208712614193225109348743469698694882687024076637484558386972921626058666644280981494706152873714246613218529716009739191307881630267173318089792674905557776706729071964045604605317443845336456518499867362597240679529882357013040609345779034483033110279910988622457102163708501873002134518198514066394148744952277006809740828269789615742889898998000808845180881165253582011634611207419038603526605657043951969082197822268611987563854771709464087789081003486170305825771761018055624829713969558779889724610053540657294188621541850954689080826336788008945781446371980436380462447430945254768701356551764822555817137890451005831692768836734844557758209290153065347117351302516764174167523568857621392182872346005280417953540035192371624283435051104260600796756535768498981064802346078643390897240682366523141886221867186605117265521607002340753257141560019053789487415719015203566250776113253685907097688210613673902454303603110547620720980435814683659345025055370939414018805421731080516443791479432544916898045476583184590534441147294289613285283897607091024238054148356893954239525979649890628190299212167406659292853705727361424677657394913331270163535224950077075395306175152808463573340136940836489831207318905906562162290970745144664020524909332349528635604386738739490287727815614105466247720255132567498574735776155654807384016777758780939276422990819648665404687874528109220984922784947773959355442632173071748376249959254184661405566491926155968819374218905697512986138569781453293178382320946933174088005320117349498596683384989029961925797379877784619713450493263295573548050676322513227995110057047610263652024515784224064604097951384350017133205340901010012908291433962919637835384146380689320905336883955458703011647336641134105993813641040998147991192075332507864583835854192931551529715792214146067243433237053434172901953577495839192762074024031775398569998537042271561603308806219143873049917099148045185700230602799520509040949973804010538443161108097688326111794177925344746497388826652507488604718015416464483528173626992578056700440856348903188404655866712832693765170633770814073106682307248286642061037757113194278177968186200317866328157843038995837967736276316521533595226571667820139512451379791793253004358804563069455175730430693536896182735374952286561794340944995900501858723084278547943155708673056883855634699144745711361286976483830554652508400022944171855315869930052723271147231568431703441331155896412055362259282162987157087787134544564258979654763475081684925923772321542361847240499921852671824353746526131516579300873756219163319298022355521211850646382661002133827417106964506801339176175467230636912728700526784825149210019603202371557378907866184738947180924868145891701772878515863860930273624313929123525371019785317701270011337309846272920949584057953855342552558806198015476245640605768753033335357995489277278649652426427636230581040083553953378287733537609348056126903403179996604354694606161112019989255100899248118221291354828167234134430393457218088608887696003204251598380237952954021132299390663811680169505239386629479247549272721987035994421491933831295743608356373053272082961548740617354707873543378959079572083022443854300251881999323142015981123181000220579202584278457665264850895070011977496854577958758551689770841871567776886769473163266988217309536197565780965973600041763276171055251595008686357728639099722121806331191293413813808551675478964369097008607065917223708997740898241726691286868771622351435279584324033930716947919659029924683416178613096387888055308922347159403826752198472421360047920396585885286253871907448743231347294138212937955056043940687221064600560437831765383157004424923022116057743013935408729984245408982999557457767999030688439945512133587341558449011684458765993979774246176355646150686582237324446765003132230921995156071608341272065610217010165118330848101314193911136863384844508615548409964207588513200644645013047055155376411498909652216170945144856867912968886241665653760229999671071489847326440366132374748722832385613635300552646376129534579562630852919374789207141883621051411313901302042147254092758846215962160662315588182547364977981010708526654979452176979879322366800182519696677902117943943218973871640490937590715438030185815121657964526013430711036037275899426121343756742014865811870912258366659838417356343538344634543834792865988869829565209338549666489445910839710950511869687843509196105337689228965529448717499376013705610254333121972057376062295654744414093756444470744442553006895880396329739135152342764248540114864618344074470701289487386664949515641136412946462816711582348202171171373303593877091863395236510103416098426371744230701955661867464834927996348464986346559023608941873221440574472459592763721777911972684824349445428935554501279057007053925230641641771447611591591301740042511347761068318502823765201489510638905780237263080696575705865854913703111852077778259833676319429994736770548366373164978765820187313557548838999352498664476121404668491878145570568048994423477493936861523661160156387742397411164064714197942102489698119210195102688179249644695799776629025577474232024827535391682722997251010458095497595329857291526641906196760034296747029112932136685151772609780592448052158683814069086132245859175041214724962852786643639512266708666280868265166845899655082485905009781700355784314769988182385728066941085509576397333799471494139080019694184296262408865637344697935891213028736440108128359864470598848689598524274637474738940848924788121131666473573241348220484653578424920998726389759213629916538217466943513184344518949691677973523106553503613191211253020588263509857782185693089292880060770799483574961460941950371231165795530261325100899242298313596362750007548284455775777745540098207225005954519092074626163305018895581173005972180706605686610004617764898690987542689867520081939881112925500390425357325804013174080142003987700405420844574770883490989902104638804549357380866646961880724037709967687379152452113663027414732584722544645205403301605743506623274920527092804713037404266283826323332847800391963899722508062482372888262320904161171789273874947932020697346987247853519247590922950011721557308293435629418368753529299035958344657203889264066811813794905253315259568099675595175601673863804998159753051264347847927130695907535353083560419803239820875604102410509056234477160497633324036560819942393966169206482350236257929122237118845758309722542229862585570480210884552330416973740648020701270421495234630534511908470878775659524052673798251372333211539408887294528166152894070994345739913581590568943769555425899689630549573816345072524930652846219575781072246801739341723039279326179675736715992744069876054556098126029615965356564083378388358413011183549353755133076326902067426994291928628393227822221081883225592451864524065176620727670519708952813955327266132910036414108755183469936631261187848116942565588523969082024330786567634521800257287121855435231728746799336284871493751739085245110321679812756809487101378851628402237050170301902581030901741510318708478798672693282680068461385248666632519792734824595302575062933962271630579229901633233565609044029918048721870305966487557127146901810913882089578005928733636979160574110369859966663897609271667667087905296289752547615952282098098633983163068087958603561596172403904037911547067425416156638594973950523485693603639765498214621601039005021117458659859902688878378310549604048198886856069431802277398092922003169241805449459071052522569548944803358405680853225183484881906427563689521457226749378939249779544389330284447891753702273643687715811485886491300687474226590302542645536916732724206623937829172848513713725460603064599421288028495952115520645586190395144020474779408752863133823226197890587260889244574809545608969082687553588502327973821014305845518839906655295944839656942688475643519031195881678259230577067981654714102652921966546492232971186077772139773795694025155637950491486274298484686233259683551666154871567801295479600914847306667696574461190403239563960299243122654978498920441500680058760478412055775587436435767703396068952787162920066247878034403452370504751278072396373636370299532849736146373320820273501715999594338903387598575359605379753385592065232444993043412418427438993971608103445489176062290119638090332553122693939094514608418658468213985397136015077484108168741991586292605885292660541658191446078488194751971914720661642686027898161731233431341282510032589856989237674899894231329947019640901666553264487394441052988718628740122538333746009888104934190747864849922730321502528499794928223427156398542167699549491671891842495889766891016158553444616731221687501782690570926926668352415220547233100255206031525709488870973418125859785568406210142050944031556029438537668102383142984732915642636215024133223582206034140624574088173018824992242976764865902767779515394218081886805747962061804454662900673725029170725050600311782012069618456508872105604202531603265783112309000394460725008928187941293036552124663999031433626325599323219320407804943575615815506380490719532743398587473692929306388574731826624737501934081074168105330002317223797523242190359996590149716660210253266291048190867680006525081675375201706790722783097883905911721266967603019306467465437316135678914631627574960590471646617894424559570865939271350543914898573304800138368810667786371602765087897663304131636491731096414068057577775155775545403859003581442877533893750411342615204758251848886570865669079783432985059952439387172757291115469965952022813141477172983182845606034712162326630397222734613160554147463313552894207858676790754220067256362351447613083529950862637735405014517721656332322210132247165747657274531190777813956106698679071251316017991927578929225780603157664943297268260305372525667275642290989391217589771898017805204614383609571207136059340186073853185836632817839382220630478063592612166194614381385539940994359133559526226338274249041710339564233059116700980499066041954711044838049462381457874171598591954839132464178672151596532947287823604466844408834290067317575611377084096657413148923305474699530090232351775326506247822634131453733364180319172690722559632026602132380658001113169891163285403512087445011170708883224719295489616540721085290371958633840175761952546317640369440964191954270092228551898523715234399715230162339838477348014812332724875406480793992374037403068751422334186317393941079811243987640415637405905981534180599976384120503844472129894262164215831675831560960033554091140252669321712908604568246571313772611522145900240880128821096949618570476332552339581073274911331021582980376303327915407319072229901855155299622774050868685888543398365741618997628600126992464012709227566171364838072132607912122037862512905513345303386251726012471809321311459197438546577338585758199450346998024673898984533255444659251431432309661976875910505985462175876031577963916851064829812995375185873556901720037002809512000541913731223904597142306514495614165114455671221701982494293732514991725995900851475435815730449201261010401256378026203679941965896590848932888593084411071059117560885187433072189186381437380635125406647005144104672534852368994506581307125821535134865729075229986745173585027062567061800398376736637635080958707562852837633477850116585330676548229093201170070240265702072479089766766233725587097388929703994466814044771292131633015265196875435181474627021048310773485394786138959751340297985364974773634652358651587259293691864029350195934335292969139288543197617403239355138105161665031912931504321936518038685842132737097838846807790001593111110988985015492544874092932293539138384633387994152915823666743966872251939729735238690010231060874059400273152543045942042663370488543652307185580350300283281384793596658999078431090974405425615611885687704353161598690060029196200430291498388040506455922054094752190013101568998683140146920773854004200477815998428762100269015999336869343783917935647909515026189109158365084772082411346189021750836235440876585977171498937125642005977607525265276868097817801364216543299907074330145305745923202478252237380500944006778236404892859915840036053957619331200690136348446547565828447361931943015423645432222148868818459406537458786579210093552208138454041724368208659195256350420761839233712468647027622099979445531630142654972341089378719713640081267213533362325380384670476859002304485651903090175621640498845882043174448729233745710795057271298454030547952545172801064625188656427656589607756907267743167740315191760831760611755815590949980987111961202570942624657563185471182932976584900930687398907621585361236923624538859525330190801914262894795995816352136488383285401910588589797760376763351105925325937479467374143711255728666031778880302260928794171364737262120283765261778543677073218730979437523658391457541246017578514558200631625596671334534876837626278676837767318629389194390287639920375484181958243644120962365239540756309559476145002239953300510958279181644710067563294764038958624647309368334344188687452059151101692344257016716967212437015243576216654632060107773370438049960834007100570336099461900165711057778587953668714987917237697175947419466743232706058940398452827541313503661075669380500650116059462946076305741322384890778417359260663499776607673041743344367854989271681764991945449236270799477906555959453362500284273280033414619594712377720445950866616342846493995367724159859947253654125976407987519376622663556360015663112668621510852408489561799180033685765363316437852115604902329127875113616435382433313185956661065911828524704541987837534317136566633043594571514315482679536838406715063441083625954806759113559635832438332141622365136901522132885535919326647134679627651073673305835296872919473511297567155116361825280745314096850361800523235927837025603467057590684330660624543536620954758351004825896587742192416301113063284052428144841616401920457594524935687440877055954048944213242220930374653660573100778077271078575832586493339950708570646449847125680030460209649924809805008874743277296923598287799680186234802578859895404112079683266606592963560375193447133680449888095007100186610624041594653434638500685203368346152021423719917499635409305080096783243552286898991574362192960843045339542875985412310216211575332915731494014664921619047219577410654340052521745610552863588841968374036275852555880798864097788877568296768138638217238711478764215418865372639862043338089951358444255775594932785984344480420098692803347835649907704041572830764776436484009470223620877474665866923931972904462998368378267748333829733387784940450666842989654883046686583976275125514915727336834609039595207603079060182106745745954478541261760289087649078754033433463543143018434376035951394752888115407115755761645047728349529121615499377559873540783397203806513703006004959909831572397847140216325221117824984308684436333221686766312060023392134534221843939405790598481010079168268753256995923412600143225526573050121296390727096511713153978725812907220972678846770254719297204732171981693013432497581703994932182119324104258352204270433938430479604202777916672531234204381901261850652513619324702585648247490019823977252705488534970937218145622295475703455100605844015111793082777086011513320018862873040357401695820920357792689553681978020934944481629926605412189840077524816905420828976377235765759487543360196203314206579189892650586386539517323400222630082480006209011085981176157977791209505882248364220064277699948020893275559032103169701246679587852166214307896884144553857142481248338781751201078176654821910191082705128051888494911622471615761804449704060543804284597596971526348977382030293538779017250770572666682832012511201691653879173808962257938996197754709463623483548708275730239215348740726884716105657123997498643185317225810116022671190955424418585396917181489885957896493058887872293452005216269272080575071144666906316203899450206028411460449004260990961336980205160003736392634276446132439839563510071229072041457769484682837228050742031388771107422831534697664597491273322800264943126780182807648018958853655131223167829903489702789444121008561776889568790979845311996986085052621691287000807163979529603062462552284824286345133149804657938193476637653420482603176502522511262707355990795658546110161361617730944503996713914965971288302575622543523799938749548867340143390608371060358870816417642143412700619255624716584272781526851388937803310535431715113068510429355618035730915776949386862057547275216755476604127886004127021784321337987481956886721013050296681948423862827910563948091334149289557950985191545087228263301819286494574014329954327375198766080383482206771061507598819687088250851254311635586837441256034376867689509482257629842908446970627424277493648100851808103104567123329820398991325668723530363208161915415297880973943929719795002755690511765953578868177238466777162569308426423725740766955907681132003443512426800028842114675793260054861316106951198820506878194616669591067824583928949302704868798308381689159018404993185913404044498773815155645736818095542963926851609208180659245861387686279612283674180244848218942493536566227245675602585680701945018518098492003870618498644274880091831734438120078961435221818574522978066273526210018268513577632754077704731446630499759018342994607292515746082604012306322094704241714600468152421047115535042026800320843762483572714597170221146638269717585720264915577124310809975954959774027373986953039965156920677659538120652935378835111028568370834785905817603922951103174039266986781853088097929752745761450322574487877265112427425909288061192092779154596563725392398747949222688303602590706425127954960285888874243588461199008422177571992510331444834675724209915953964855079415864371452436776664640097013352781397139814172068780147532790114928778790397352682809120338912032215847707440429032667771311335832809391816016741232326034251611227904661555068552934308465300259316653718746726743341721621214220409684168841872861432949710312005867425528396520176484246226388405966757154066606412774645591470262360767851191359072411338326166919554493486587240593654826860852297122992430989459057324546050599232702524619316558630653433400593601050470688688585157318364307287821090186021883685980075718450104519463047183078186577499582584162882694412583097001694724048054052426860957463625575440057087945245153898771900823378506854624398300058139602163480350832854330839863038157887017624501092137312991699199139682245395210020469507936860719826882870375182457618211724145290618816344860171921278929516341014730782020398203778224355751724498325443408392179980525386041457147761461580470307155058516964009592330286830470945761614415598953459485134689532036915573687336758707312976506016301207251258177306388948753176299742284546647967696323687769563700505167487308645907654147658405735673412366685988465326879634665665499318969712933012881972519709713172725192786765942068300573461200676291192052942384859889688991276396970468833118349232543232927601415728183118040406372061694597792927175184469852441075854624018165098101034020073367389561258364170491672843087354854194050284693894552169741805307383221957788122977848248959996965474805380092760853259489347858591231737483558017326786818979620359376496807951407244296808833963172892575379383074622883898112861122804476309918705335672401849363179392299286924377396901212479470760786631108042304897352627165986334857463898407816533447357858363846123186519086225960285647013439117621300072530079666883474140915232233367388556836814156926756615599303977528527965129947673148663675145368353979659553769627123456846651552402367210148569000051138339332942790544385803681176369414839251008808978407480869675164039907982793119015015399569532913863639980276622887953010777807950321153883930119380023480568063140942810592838417812118373376966275190315614995262256141244822539145688824423599773442619502879902099353732241035572635076915819848959199768875812298607821754947016622451316560914651721813758737123693159136013532110815827627021312397030948996413840093505068098613953199354808690416746796024488346031841119429586636827739089585654285426021604880177557593791165648535628035716034777150600003244511156837781524769855951346921709295770448688289626234729079134434709104887814424459133285558875683063204293396573243968842555769833061900115614487544387840670836024970075508757639525882643571619244477929557929732139609264694513201476235861849380776754197524051321703227687375645657350564762258186590126706350370437371273524085718795151695032130103171861033113417390420399341323429468238369533602952374954930278315537274307030459864491253591621419090151754638160819295226324468745650675142904419921838994549250638576169671247125461450571694022145736221364552167683523119080986942279453015219902142620767252082177312926665698419459629767799912771038024426664779014564584652166118345542575805148712567470899306940688092393964898343842956100279661249411694357127698340537403534356061777019066373773565048359346779819612664275817141200336107633323097904511490605303572016342727149192362681183102961037393109186122839072872521921200453740291765624712985996612033979974961435714572693326518786288690267519032498254318693971401212968070719643160657840613963181920927185055202909930230955171080307640402700548760923780451945566283665070868609139721833183114320984011728794371778759355690896529721743143003923741961306234621438254393799746265113226000843407387515969523626840837163689805223126773346146215729161469321591873122748543569842514811780183624614311071515542275124026754071224653218692986987367787819773453383492825485376796197675032494277017836770216490141124933361330289485588197064703797222574539710058469514156284715084224235408548614418418038163560285470046031201972834179995491728043291554295673295061015817055683744589184361419700722848657814944420076927555532054932334605844511400914047259399925989571335389166969821215079951858458254061516729194079525348933675766766587890272368812480108121741603843031487995955089832626903557797189816728681165338512549173850332139112784540003415856644564495631803030920557420315725026623625684458710506433015597065586610093946021584214652033577522050045273059967330846238456889022160725135116208757827182866268820676356262528659269195353166336932423062284737610787911250237222630763358513947495466560135991192084453837889437719675978336566501652270304361408021761268900489760716929169337541962385034260108545199056837458248489438825396576979341223565208971041820619140341308287146662839985456885146542783831751049372315197956608026245030566798785917015714309328870771676729715369173863395060436857355476574549080437664522602146560808438691918589105732284710055684200319182904931344615138103258712545464108962365449561434102652768195518057817009999431763410180101036484152192026744946261600416119663114904193500806988324340962694507336997310561818378244972708866701787270509153509650663881990326025886265354869766359789834785462113519286699215850115160236359578894654273113252040544230244891436415169867890529147719323781756349761590120061900971283292976884529361704990872836355749411184053973042401989539203115647857169004442688695948937801871463692416078084563790104602735827997046338114546443549052027516584246350605829919969098106479173354540400194341607636878734636091320827970890914222882616172845622634790832217752543855754673433728123966645645120978265157488026963971144218484749844451481993663414529256909037618555072901232146423259137091120911846231159611731243451953557047595982532678292611541036366872471094718073124730424503739876525571571122996002854533157126277126674993224035845373863039129589788471532225682360547007340256135779784866615657024582189365836321425618943643379787421521308666377186117074869018225839504579234955203877288640302919953202180473638399817796787041086779300891787672734294637057903328290686732309711738761888621658390194278788435286286526743168558028975233191485548141836923802402455552122718046749253051586012633318467886169605343598574478563148118437559754856653365385734921067413942188195076432726282141999891597900557398407109413649297705513766427478904740782865871539518175516018080720768232097758844945398941376515747320237842776932741614860559999595099427697809989728480044607490186415297918228570314551945529956325994843775223067250031279920644406410705814635652874038371532084491086156537826755876238708896530179058132298917253072197235321357020164234596182594990072816760331889381790525959115043800897394259578184312876899058605445651873319063982839418808216664826275388889386382691916012937177193201621687546657728185183428566555757054273539484858797938707918414838508394848355043345165083634080792547670103850085160406272382405498235654830246190804723512587247923758460448416642037274938259887776916663888966052022292835071279495787541084057920660050472604448306549922985247527189759652445372527244078708680006125948453784451017924621177769444903437826587119076168644267803853500927451920587262336425676028212242349942737940414887946588780654361248735050875188605747550962882126970705782660393902033528863799307010742073445437524047551351131434117753707688913782931529884895196387403032746512563212070457200129194355611261361133404658042416576248104143626362195593571986552169547431621153276063385177833882035455440412266001806037945764879478942222843472943057732221321786154676283604614204823928498003670994755314019116256504960503566812910756409467876904383417027418991449144292317434968239488503912480433782080461546295914393551081452076415698214451638455505150823113303907747828958488634386185022769899826315194777013877380521855481944151413255953835312169725714266579054557524508129407982510777793596941557498392651618885900289814755428210423717315579942661845041091527057370694656629496788348872670606223824489260227748072505122187347398152507643266630537517105449092389163516378609885607663083833041860318565176581446594719748641844864957969088118616250445332753755877794589970519563305888760487236949726733313983660998164254148589207050134778642760887043279140254197247939357262768023270278608955093675057687018881153951034575757208091207680234001782165250316179474624783825397198541448263103867552722478049502387425340458679200881743372389880239965845190403936517350293684057220600481289367112836414052732286443029785363225355804159547178313669225447255822647951761394867148957935223414542748664095702530641644286924965831953198876117644493931708678924195289733951273789475645710705543244294569697749955067039495738728864861833488430146931011922340379379251713039816703527284445264392373532969498114735626214671113698434474636354560190149631585603081352868924748891956436137220121378936554036466474161085207101623031198368480429345247846488014195619003240533429209719965265730321744142094765401143682046815177012581989110324352965903789063793364742008300512679622814993218299597795010284817567539872337566609428434290673173751134454636117623975579620064600154424780873334668014539038815567702854236725642840962965197181781691479748515196350665582924457607298573136990537197035427354834425641143073204077385363452912236421806649343481560793358231888241783214224242868175554144300687179706876433309423568228949471204533392290782506755349103475398278050670545012221172159729853487360345951147331358158117075737707023867320076199725839651365062525030837443395593782392327725749263960220476764231322200923047717154774785643446831091929196424639194737253790060180188228176160872683311739646650200458244006085660988284324789404586215216036384061192279014399369782167571499222254131575263159467032725416256966982597915384851267958059387934785085965732716019314550283439632986765765882979270117303160137710950405764685996241867566149573908346287989126742872783745322982496890218218533536355163491588531223305391236065004069165020514603282123810869601307212309480311969903756775573570513235977555172988980561569542126469231673612640598027437224300510229452689260886636401368076131439547083605709466213393550968254313835892587805477479313287285770566998246095099321385043405996999057575361634100930981968782679077800677266878599546345910955683116323679951044984198302486415515426373578277927518733719770927870660045088257864964215024086209305992785006447494208986137716651135828448431157607953938604274688787447144722535171213685973084713448274376499203609416958331932556902909204838652880493730166338679208683941595045597911677615392182021178846177660847043378759795071299621292868419757791366898742995180731026688067110656856426108985113941760794511445069281851499172367625611513553864274004718315755078302810004026351750928683098150029578178665657995914692099160268981425161131164248982999515843386266581352145281823322604670705412356074901071974993176147869624275103697825959149974323648966083337652099022473819432519293438744334819425342871821890464673743672000172866459173363287424081865337556177087728231613112808139654326862420022698853738219968823472674065297785543358813316455772239480890602886072497408392193978868632766155219857503508806543735745315270532008751787512257011366582317171356245993172287871051983406422491165238194073845650123490557044936402385918155015104335040164093603759619387751347195872724032633543158606868797888584078844763814398779743566882405361695473301681240491314089453807477529306946236379065527956102776032295394589897531816984158341134962778864540304526506582765294924189273396073133989882010460581062507861880550103605293821558664795416683732610906109965741928677593320423319526873615516052104638510103242750791932126171673977844540161636585305428536445812643981433921956700479678978939647196444249071398781876226669889828582033008919943015002252822702410821793123409536215606381649804964598430552290546049370101016956074522634982219130122509734503603341940514647543389610445293094460890424584199988045662313693868103684733944971781870507594256440305455102302551021718940745481743860865535003011823602616235011322114798571096066807496310437584605284556766522633518675147099833289300953133813681960759454319385944416345308951305802961523117324391595904052788193022674599491959170321052286883926119006623017138765183622667608607126789585508502402071579564974408512272794215726610678704943543757165907133606807622852044144804165498471700889707496042370052752391365377026161070611977735246712021713341807329359299267881964677275431617205063127323007378998833733550847406767495226244892549210752512762707186161856179322146655849470555569344003462889363160958722299718794712702921607168834746338602087750041109074323206511278246669184363247291919017652959674686849204175117322670926376582561854618858470188476868938256201015758378384224765757141311747192646199263946603420218498010069794973996846061718673899213091929215765300629138299548979939584222871281731889790305077242512056406819393792029836527331113458367231415395254895617626093121133409426984761814833772892956558389916211152777018735836712026675397841585495965997608677800663088064655891089083491688001819913473961654700251093812275470013295085914735439676215799760380564528831151294172502420252399158254057901323170082316560656927072580757470533489587286268676764455623841888452650166815886316798337488742622046127576898984167378506088984362450556933955246303216739999238756726317593001988750508428492482809625876617237161862217288535852369643977570016663263310867555504394693759812487837373867266642200259280564340839795707479506196391409483930141833531740528007436380849882181833148330707233808709344233808155875730045882517424888428970325242110072387131541630878703281067687214397601468908870824658296108501194399865190991939585694290997210026183394429207834309583783257263867244468519429712980470332380961921986835511061042460465664613172224139023331591946443787057449095568087081310779297974253981494394955008338079361766466464029810442571311749023285951689385419418688247753951640410141756913797682441925561073949651748226976286436739762006882607979346434712327990313422344577325089661161784379043595801443939743143710779246761757723005464395845166820611054341352900323926046084116718826059468634619677226105173917506787976496011346340911692218867559363576157813745523384058079338237218797885342877578122686816993022827485393649690274301977317961687932331539011496999902075292531636035716433678104625591618923811984402509207506109677631132574167054429874936195328984424035505733804236339782330743937787636795598883713362071327246941907578992621454252077419863678032579277579031993250853017430733658987062822844624276187029013177884656460916390326995814690248736217610980649203688998596028570128034431457576496551347867144795026030311653385576121797911106317937197721916029066410313016883948846553080436273365632728330805319342082379272310128210286830211228301472900976299204715988252376912938320753203693529318700296011048787432768693370350857084569256205177867491526615885838579532631639090607564753230756383827902673090902661205059646232262200231398079146373004794980929189470835796883951620157354786045348549198932352275587222096582191332537759448973538553862245404291919964298259288911615490941764652588838574726259386101399961576576998149553923776286763010450846549704107654033958678565841354593982664869954462695783985862702706711473365577739692188844863153837124491615847179321726724182572487488260148474587667339076840965819818889914841587809842333589710176095958119702860600415037784287437715238762367073373758886063600593233466355907975046588089817636796831153419314592109029275336925361487546592785444206665258504288000207585902294263211472162532090910905404532233920295747420020487190723505018903168929863479836776959877426876910118808371530941932599774411630688166892492477510501243697534193297484402137174563612987013178979946413041814221561295382970449584523170059632276817884369301792715926166491507587088180585042228787321540239933095538326585984107029459057524627177838475164955113378505320471641826475609708438475979144915366103280202582520158352103180936924358935602530275259831190366752823953720354330847906140558123530575897049455146907247309038442329298635346294416872406440694565239510548348462951705551382467744341829568096025690782415704112058558587206060951330564670918568756064905637369770580039416675825797357797275419230498789399862154317462648936880418600988813504543130892369247676333233655017300801855648974987793300595807028107179723812556111192580945794656288360696716630677914136563436531344661551602770622851193387736147112207371712248478804005505423168903735755178824161577832130426549998234793034132901547894961152514883604071826752931853203910958618609691016141557162764123446591574805103237681483747812587312972169373806529885867183401539714576448711656073227795417952483326705486507408681713749154279574010985649356251139159108478157456267394362832338566560026420747119235223684717514970467560591266077913521273466063232975366443520448517080696992673949013786302877203634974717146797085340009361724394494844367086251906367737507366573010289685434032196356282617416608932386370863835055874672183652382367334613359784023710949155092230034146391379545794161586872997074246517524537855085199047618354185896885380311842451059476225679852183497334497205766364912823892052607532158481818655061210320194307634079034202696074764402613591666510678106219255571772784351626251270207535141946266485074200989198300712139666340183732169194492031816657690427740767727147409872267396419489340084083525340658490737079104191557716397648946260067268711249144283620007372875838719768135745888205657375604069953513957333898182463955361370455708933834968048562449474652352653314123631928307845716808367586924577874586353452187801381867365491517693467090599709260158653228517115813343781061297983754707098940565205557849133278200785132632383711889190423970338452028848862348390544406426480868488257747212417699348722075678105124971596285116864813611961599582055703129971020557430287623362904181384308016332472999019851490741760455116018105890227271959023721016503482361083846215988374345600181691527818940441933972192481264418318550532464314118033726589508919720158488713788042181010356250661952768637151179196646882489619837960191655522241852308374752320203480986006452598066121647392920672108790745836038768377425400086687182510660195087049221811150867511593999498581091573010968217940067194795569486849255553878459184910421039313821913854587908179368870355486723467212295806245537990517166105733637425457760830235936809204520466638405744875231622771093578873055210810088838015124413672157260233080408804492286404219128936867686478364668010566755920834120979975824175689075986831538481875630973112019843324435834274709810394207439465270194862060016319495600552612334764013239080614357225197013736586520713196900562677666628785769284586476287580702278336562516754341774069608012194321548620502278431417225190772085011470751710570875928653863430151151448157457311652196492004331685716881277677984954780557318585040084025647436839933274157673900210614076280589745953276462322211555981509887257991620153386380705354638050329046619092609047991418950425790504564011091095054004687055156523466269342449223115435359683796478511447114068914883980047809573437059845844831088455363010330099720024944273978646938855925193711949881602895426756049017619808925577254843769761189709514208451909627498516921012827104264332133803853017604967712862306441004375312455614592686670475683173025173228520481561488700361008925116390326986021965899889115741490968290017921259019954325364957842052627520013038483712208787411394445311104621500238734996404449034619107986324443286770733157107565434271141578825794561630197659329282788993254907958728054312548560567782955115526039909227034176687382755338311328885672545765545327409180551848506735332555645804445097450399428664011507575179238880542989634276095330123107794069574251193709651020208674996548093064531153344051111481136639847533340659042610893984210196261203813663561649821439400117358000036574533478654046462362220423200680075431417574246491683371048571899544826174540574484412977190087174899206224519690256114668184658697213109459164926391192830419430473439262847894695316015619764897757500301018934559805772012657133433979634218869403463687415466466029274521238738274276877218265586469722086230716385410524146123827595306295287971688934269684950720311679825388886614221286148220702340171671431813139071607643992617218514276182460559502468073141147798596750582108302924374394483561875644927252766229369877531532915893679660676124776056136552487451975367100619800560108484790476612454566327508562688014637957692440230061627895707124711374746909373168751564217429672552526563611621818368303273637290421287191333503944642042414300647915064762679668685070111394791062675560794385071714077300796411798703068833860188497813949612533992538755504764640798615499552189332117917510294463729342801551615876691195265319936712097351893105902687342956788513353593064427962531792552700559003980754460782927496738138660638632750061420804509636940204148913011616543558664207308309529620141539886783597315132401538866857867897764903548585450102583221542450671510312863859018731066046346160971869756253068655977324179242321086004087000038331198523901318680506668138697020283523628664415882064163473205788051319666929666627166112788054357544020849303692521340990682986902251758113671435591492289513142275237143870559057886510774808771899887585823541724538069365294817426340156183311564464020791700703005222755955361570854751903284099726557321770578606714280165916122852809697351185324090529255814213261273594277550504259795540619915246553873071264511839411541893309500405504591266952955747943048307112472597223377390991500761059632860337543771191076781580090553172839782416902123457363030235709555213255785953042804071477157156799670180860605552636343204384341891390976236145945695427248176093114958343835605891490183815082195928940915514064223587457467563939517392798355710857128875143693789928225978295843313365247387812537914009209292227968010809132904636681467784331792615069534756873788773070089234817716665433834562415926205000601948986304973213972717521068892955357647002911757003621600013604161982485568624851153206261471577166573826229942011311558388398415344569984986761760338523847101750628224979885035841930242872098820092861674315299768007220956952939628952932939037636545417594925768046401127514567201801391138301434288190613281137862057758763104849071010259821092467717219121954393301118151619371577439152486613679065044318048709765487738058668573402035280405892556849633413138258756088984752270339583166675126989345954616955357625603389620198714618640252073058211483316782236420189384558295348293204014921399199699197066426572181587832975415565062282574922805474611135511713895849223408306144848243973590431151419359019244762268933339730222496095953165838843551910203332599876201442060393982060122640507242454018117138931931185119657856858600120175543996788262542970905716163427940071144937019279581961722608728597629876520525989026727450057811873955034275735686693346678595695475712106460360398481661188694502986275623949195256889314892010603356240064998457632777812908458743623242607373392612046339772522770845546750481819602179051951800316563940051044287309308948972556138976196550605271871156555707278406457335836942668283027211068812194665692740353320441388248082528619436476152431003669353329029507751352813448397280177746645394594349139481219436780180716326161344034375452831272848623731613335182616173524449153858003146951303191749592973811928400443914978923752531539018127098214006218675181568657595120572132031667857790421963609637643815524087853202893046635843246681838318351446720535044703915716524933531620581733803159245614587893871942791658230586729600260273261227968171293742466166465402998745048563180501656224861375043523345721619063127412657600872717016101103967277577387152463299097122025737265507391733620725514194203519309173427965531156050388149956953132878070900748691913779085030600996926825189478114887750933121125136657793438387675767830416825253684253925826221408432447417079151028358385895670255720298655718345236320951669153435838772270854548957334387137249330469134623541701681423074331856065704425935550297895211665503398492843223334747769532237251827179818369440375088710329470811101230770330283982218430542887670852551368530738279817074711925561803623819011344040810377618672910839875166602910335288127049754283600298389885021895015035314678979825516503610271564534887281644134893633203979101615963196646168690287494408327323968635205295941361055704930272876148422272363867347735212388382304504415606853226183659475883846261289822125362421286199704798799892794100823123727224674628632414435784832823061134168069340658504054488445721886390981146947117788143139801866126410349327353254318489873379167682968058192889630646420861458237839892198282463694173667084739543236595018917359358637510449071935974142863539272107086544890020822755122005761336748364560452479830606893771340071944502355944885042793947309603507133761974506783936756637664326452222318348629232616167200775157485330588673290758536441309593634979906049835344347803746316316882091700127258154605131082938378472036091976378284179349221976969910405550136121823119995356441996994951871252740583922312359953674087896789501412300358622828841916426694635488089427784946772464828141793178385210444509969962133681770975309036200341227488127734736708446051844420392506999687810950384764457442324921597672587017552340413990903924480270873112564925050604860471449538330415582077626338453011507041318135709251975584123481600201016024034959793650050021433335533041436045613452904457307334566839043001412310731130192533131144135161541695918160912384856293750162672083025786617361589311548648644912312798525364763116565662073302858190006443772648282109888395930674882503422970730985720263118903850368086478987702939473314123832549708579175380923100241501719317830438331381947599300114725716777033881804508722683559617221714678862205410185316922818307001934338943578045763203691136295117658192428709260529245701354549508418003699035516098805992226697103371580218368667271594467422229798430122544242183700728232939936687233806564357963657723177814344801120858181501453719334661715989620943661155684518346042084103143903876070115657755273362332466605693988960935920647693700789880065539238649680171609135756791182561622540934629912834956608750910208713584206086940785910124884745141652463986741652910611662641343884693476247732752341290254972657439990645917122947370568402743698539804965721805018026162436227528989791258020399441348884883879027458763072857897679531246732031426429999918388625767485112010758635639318436870170249881383644813154772128079853489847279440666707959111272102235640637724676668111651515932019669618927158073656214413470328564494191671024811573554488831484397632820834306763065549190663590156777125325131342264038413054874665781773305406916856707499736290363678154604724301365821046694038054657328503367211566367259194547552551583431450952513536096071684541207099093368581347377543213132624469063569948262077080002763807105671688334041528968041020024067551999562762875257289466658854964630691761312084463957823449850336004166645006350363558274013440920580430131879146282310333543688161234654877682768804669042668670302617155499124135522111806758653068929871582883011483065774521016091634367997064158151108516636011631996101874461179241335128768482638721688703692082918393580647108113162209510321353976907713051242214301176974230272290087151384118516037803436195387115396715867137114304440408004137926260558583077865436566950050197479262466644443773105715017474817959048488423846772216165391764257172436648542264775072443551142468125245919507365582630695565834502790910004965149727622983390106335788287551589306547551456147632487604015137252759635379668803787343597362674621864889462101840294923014219019787637573802056937996562656598739217192849949718406451479105311069177776773974259611272633527210503470024871386080177689743968091531790920389398946395329154117497623342771310104796258723345758212789857623581999605114572767105940755045245686897220730035195916056202724165598469807497158241668648205605283324208273127930751130028848299519850257631391289941240199049057582102983039454387590315481082478720564666950655907731381001110409706349839742355724721604471214639953991130527537740780535316329530790971092534422041263915238497992219613813137767241599969819132600366711457228975125750916148915241820278403017319099022047473479824146700856197759902673534679519710747158881113602273152114369688810276227138894394095008296831227245560791884566050553367919950415439279443823013466948883265064876405716985949458430087269492342523086221161721558036609106064044610059809563606951022862555356248778269231412302554527780046428065785706028966069472712402886292850656098696261120628957958044189053395156243804578971716188642776218201559561756213980099767950067961348659065627758932563571447715686389444767984417526170796436642996937256886299945573869674779385778272998083488295788930738584249638208925427124145297775409488003569748912651139993896553477247753925948841582000486292650669931284080708243360680954476965022860141064774407172072804733114661355670777092943790967618341800378929099657825036476447417186262973191211886884006489966890918025241520366210746814941466834814837112489274939170486328761588315374767516992610950480859253689093553347932617933574546703505141196834890344033294957454922916971390858559669527686648778909052317168387207566853708693743742407055618289572022351089796396487253509852252078718288377945219859351702945196675675142913047614653856589719641396046600861664589508910894598447986389794095242122734733595046744078142489550785978765322875075459215564011920005137745134868075539843752311770345623782171556682691800668515326100176478612556900374761412631250007545871597272271975177381143090587756043116489482766463548961885309353851714840761157887375274897921779222487880252863341018873189037807226642256632658967705719401423810620440391777999289008327448275359516350819189065673691505995709647183885144513154780839889305256181592297390067986455738624347805543827834053060768984539142635404008508660407379552013076299525146730872286458644088127409468365086532639615219206469656476110274179193801549991915764710463191195633940617239745791186618231236036573738125847793624534082859553194566298702775736517618712394316845824449487510588085278103268427142617490917809878340144444092641536193915031689752785069534738032929416809022478862027385888893501198876882407781668822006600069231585835805847215451870035857615546197154078420007963526949476134868619064735363030188094644818828542706281509970377425905904898537682442236310027936371856241310965837941051347487814432436797917764953019917611995964264069884844950980260108309113697229084097200268613866805069351986797686655086060097897720921536980411940495875151008344273245622505949283336827540911948969550766208643645369416369178189810091152086756251050816232542619888105572957160858234465727936558557719393983436483303230413697483353981230123873909587202667291267333924011600391687831152819736638591101123643999009408910815754737427388386118522707076003398433275601363757783670657845162011572668919135717043052172159065164458992184372763907303645888708588329722997584695524499117990433619667162738255508672293946898819741885318318237853645139091856606965240891633176618918850923175364033498431673116273113245877320031994417934854042432609684502070817452360466231080366997810135648930923452710100600795949445748008154927935171568003604649375274585056586427079558273153586368214858203086141651301736052545299848246124290668921284801091243525804384938006396559899505821826936796041263338835641486431893277076506308775724492057483680467594486982094627553945015589081856685991211261517035922741084857166470742196355785372009648160681610220484202492172076075369238882725890437880067401188715672806113097826538224957857078594482390589499808497153740655375312714191997834383608657961515355243231734084522117335830698904831750374103195512641995846916111802449361775940654329516314434116496037987181202497454715344575633008930118879772008315791203777497811809900677346245466610957288171389029854938228074253831510259589559254752672269319009986918179110655559597498830998644004141053506576337235150911693771418461765469546188674190258698581580883235106501341497376409638534742553888972877458575555212463828091959143488601468743672180343524024412299777202506858654786152726486525010006606717685943923804558689021258331227924903783200227927110548873121816890338384163866949088345693573436375888287565506963321127641358519471323758321109193383719700137529487701363976557302377624144376642641458988006022086633691451256432348190853668300680993097098779693639408988520645617933364673529006627227718386086462640576269156021345988145137863026303515829502280611501989877262382499277081937460318115712687924256827846375813125427967164195279952362037409045847617418531619109537172979894698030042909143417945231567510859764365890892848145004462086709837535237244709420127120023197938052154360545490134210788556693006957330033779339168932913977959318275760353328389400229183133453266635783577065156865927568512416498297441404496378989507752799894236828038719915479410951662054162736223763950503956836191216744016532813667641541142197135637520226355351669045554030604671063523533851844257935704560134009127511558647271438176779630219584644937536812084266478433177153965512124181232548939204201149324325083160709622392220566707438825118827867904629980146379138682695758233052862780327599276856856731010827910715231398866771497020051068838186235303251152046485767442368516152061469413566345495816652542979788486426724329815281130623159700946950828960098242502772932740124793534718871179834259737233103321848676028352268542090719852069077624149305350958063356307345850474196324265070943646289210849833028112094132411121813016632434156321827845594423563030790418039275747841868542546337187540014568304100149937024241477247196270276710877173198587909279198716902013304153958684474306130311716833823902435328410409335861162417762601000173899169601057996515944859548107364493897071015991718833296155008865030691020869677204094110532183559174511655256884276819015085402988775332056867492892139050771343568002259482398487981285410034559640836512345661760004636366315816495395275901617059188636312209045198931347460004208083396582414890060612830978993478169537025771386828984424104707480700514300523699384060932808521380652064680274901217581005787110437279067202994873688438107429602286919192838289188029267736949348898777250624912794352862465046829601250588435502829573652652286889577329597467302350846707745931501975969931403537860518751415627902640056708763634703630142345281200956269044065395286728749486195314681189695275933991747935593263320217077231673124762408459748725198129272559884754364252465993159139868743208155578145546815562782897289270510721637353268926847627473488116681782885149226318536229073282162719022138190074587589702322768894869950401191998928413532728252353304042186471269732934818633497788748456162525215453892222162609017587219018795718812565566631012791941936899394827760449966563538032890339660528753919752412890342799549845561483940023479294509369901353099714406232696522162451625768344080580589768523615153123918151376355994875193658952136699378595519694491374201614159664419333622134223266829321239398968545498496673722860647945032634764803422162324804751904580093367853224347260166498085910431163009327395968410914206478423895132948139348722719495380073772465800100473290290955291629174978315993515200256418651366100947373382374828964059822669987148567779585473624164020643886492595390935980922124766554315479028201900847220974246317806018811067058839515262758183404542380758212798223576096354329859862499341255834399408966234748597719362669761489901038248525269334072938293613719616427438264802332228158081910398488397535170316648217031857899609173109978111026378878310789019273138795162935672336003647864982587936872038260070422190579113114465343932956172299309579558996843974962519627033407324363022574044375263308311199469116185635013570329506476513906714367615125854807634106680761416314659406752468225635107666908680710710406515049261245017084315867083347335751076352171366245575462995402649409525299104017339048297509438514042380521530520577226872842022205929381801040514259044143375775576144379249754654049257967005429252459122022279732395174116699149376622625954405853284984074840397193698437778996705738713262075129705470111428850101463471194067146079113465449862226784539905463668762630285305155146742242276881229655350719785775813588904234538019118999613801615420539193683369715197838478242695960923728527074474767328458429558273201299316059780078488733529202668149275736728554631650852004300312636145687160478163035911349519800412445506712835956466149770135641961668143813756151853132186972448426051092020557981833289259829398134443734391481361614619072317131115113861092405667027748450177743460087080115368053591200318797571872370307240999104456228571386512530834849674283877137660903317757837785360770303920420348505138837408250080753584719982053545607302448094044364841307462200340006423762175407481375387948396128594406928095145487463051332779196001988015632429801647973525204155365778386135566025456964922892011377217288148902310946450072786473860632822484013720346200635858464887253802970219412500296731651214827004498616668294361549829325059271562479438985590857784406976218007978119818610508309407655825960457961930874429121611992494904103283299794403140555096510226673223993600965703659638448171116324439106539047546909304315083923851817286922278644541786791147421874769137996972640438679489407549798303629369725409333265741505643285056345986907466494322279677967536228511889881321313619759069931913148532062830869106277457386026189801980989119026375449415039526731992081292227897029299673151768888646283999219154712432745692414375431388525466009827398458493165290338927911317458289923926896891915042459626415046689754395437717906119716561083692363001479675811191534731600567765291948141581647926056855334500582961460724859835046800588812032454116619890850609115373109100286135233544274576613859620731197054839211623403096118033702323825419570903389975081666891265988714546378273272872560037352864129241041377840766843178970103067647324623842404755749028115277668537164172591771474475516225017177730375204152051368292330943869223827826221654711570814402692527741471815174000637817135911640102861820189067909400557096689299969704361615080300018815297891106676293061585921004263706627518341867859856028036407346135656428703357927235059378815737263813830512893393534607521215513656038232397211210307745684257193938064014668038899088254049769784479950969921739588080090676224250341646946669884180178170957825476979437958386083307421910829791129994086078046909192099654359347865049866743833097303779321109349984154307532175488671536282536463620835764854132454937856355156552372559704994656441851072909135186466151054815674119188074613279997671344470616366512919917121247090682119346471184486793128983373140899656944440845120308079030741939698992142462645289861256145329454723867667842142593032784990838721152898753121283815350915996980710062228601749850926328535210647952817153051563171681870884469273786868337099174591899302193527422920000587952760953851468715925237630681866842523723551389372393374167307897215989102327639306644513663345530495607582271796857503254211300475337697008892536108281559405238610151606409408731757448610769201945167718492315728623093257413982621330382328593789368304143885076908774737345613037456277870670367181447201612636391947236714529903180492162489592635750351758328648810963742081422431133928963246304271471154333365899714321726458681870301345434440084963575571360371580375954115480333509645762864822429781609234437163269119383556251806207058502614295814860335930648646080513094620418963290715643351663289232487164217365990264215347347129520140520975259491284609603376732657338329734054106576777694614177587519996827294584995427425165173974590990695459124316970757921023064069389058675841309009772627042691094922947306877480625326642113622151826591762230000679398007440202157773780233304226565959198389514244012050285210389742181368172480795098951610460011853343930921926489063439869894096804944438486692394017013627593506135037509012141252246092811321749896914350415279399054692351648915072055344582416453557804307998853804403032920500549794034140551426803176636357962864724878513504959347278829636948079843104312888208724468379009789690633079645857813876607645316797675505315170574886716724034625512896629036165721504588639857418076023015696132876116346281315925745854393205567579846282012109586210725585012431821089897494436170503396145635976791286037778321182818993081053741395412462594871652850234358091861003829837189371418549955869004829770927651104414651350692173340966904000951966401382239137416102640147205563754726477517023906540405548298733257341549638365850476664154178429933722341100708581291871924677753061503937835234508432510409627046229448103799153870571180008469739415478088321491361801318468108999342025041049310685214389828275362648805041793742208559855956205955391770193996130547438804969274428817521093319977745015520007071247390945429280504403828055319533980642972001308749498214988201778339448586613690106467410823954198590968277762295686903042748446359394561943197696336707646583164113999782815854131694874176461879919520255620963122699032181803263919531880480806845313212799806763091509232150305587327749208704089742855731776101305761553825957536087058522857954021932772404706235453170035989975495916727751851388363211968988341653944435684787514855807865327004441371090507339199622389917070480404946369477280603073779702279259387678773070532185551706254615275278557370893263145194018653062385915358150705853908825104032476354265489528455685353210874736198964690325368091515134553508041142647704100623531372430127289987003413565651420845871277380775407266117000260422587868055173521893672797226998412213603421278372100607651658939117916608878878591897651538547356417983577191698651005692748582819109111406244145366964796125416553323770739133872334321302582179225552973294532838363492250929658654207388118848104539199363537350518529303498312160064686225126752127440861713069823093768854640933322867806436554007330169819101812904807232900443650130436400585614332419403264535634875494828346022454821629483176766587541574983936439521847386421316703454695397555830095214659972689307514528770634520158220709034226247250013540559979002286727559108959348811568459213714400227458060900221631289177155480928839238085346214257938930266335820597022285171250584747214833185843607678274209126745545922205234776023134859392466151537493044632193331894176073307099232216798920154261505012212994407182064177303184864305576405412391696583733052658767610798946248589941849208344302072794365597898590131440783599372166263933959999511489305132333970687533405890748867231511201121727097757175912421622787746817022142414161762173413969663602638166633787329982060788801015756353832114575620446065492671131084032279719028603344017923017632605277495119204383079910093773798186146706161044645523142560430489901878361871567024715385500693413698484740408102994636177136275099922941077599804187971460424617975244025296194144467691354717737942725334359974424958032503494420594179893782265154718330416663079271330966177148055169396602640017556988060654358530772341969773019602751943904920722681128191201902851554820113642503605204770727786405413625002446861334789753925556781717066699963149232208360025727295279417069845350215998070935600138349342011509749996988313074300281230237957144029500212519972813019158380707212331385156699317968895368149003313502757041982142729591890518539466171840753190791628965000343253956352638525397572057550512280578618405552443678213708621312860712616515020063055715693470860402700884145729961660335562405493255675070857028460140939086853006717860005772863433572665006938869735932142059541252592302517887236185822854842272376648148327321370962859931606158451940566238716795629909922683118981175909815809868213326938699183730642434430376516512964047925606823919933712705709436448362370741591328301374653472354475069490764542688591706329929674255148576441580470755379187382801412520381998702487625966662064015207220727670736645444826075721492947931222772963976109103900066236127588346671674498131919782691893998947832666155119462210984672717938812631460438861108097685394654739155230086509739895340333199591751717763257785008034500182948966755227861681711542687415101444648159266499970939904564210043639867799999791498086921764286511676069799960910218471671592674551735288056730478347121022391737491445133595294923185075401776212721723713560024089245070004177749111530714434916315254723911301261029149706557123136518768187757050974159882466082069428014839470184546271739220052906146848089529382041740202666011280388932688370188962962470010369653353426956634752168533472457757812187247678947616105518433798958024230283363506268355564230852548744492569269395867357644562107618246236677772951167782791106208928269383091826844078034503918410303023906825247412247596000179914161358173361621092321767022258272766538319805831951701395864845952788055919618718872246888410755648423324502736376853406776590221167585055225792302286267637298792385031902666206900323399316830737432070073825412914311812029183576944263775215879729907046337697515582508571557966499398357462674200458192135402100877632237479022560658881313340423414828078239852157802049101647463963754552814504418759912353098255983528952792546318784200487695731316756175270962224509248644482610885573589784827315445289913592882195422129235996885419110355423820686968922730705716359907220389428563112937814793044105460628970617076693808899029483814721998548014556094591590825203774783920038220247696667892465596619834705304280182526652548266075317571615126885549460394068010315930563076179093962312511448200014839069989159573324585571832863680934032302466664047576551400772347456489030842526642485759692046760441797225419616803262285171124643033142664164800430285082979362914339307288275409537511851026712462028551605757797291660825371125600223384914928220775406129293049886553625346406124379297231190490868287147408662558308400921640448744364803290142394289665052732390681004893567963496485359330622651533029363483035835965822087366237992873833204611214570056827153959200539907164794254096904826303581162646864098788328158631701433539988713436692973438265626317009806286473027391550251168590467382187754706425464112732862160896403708049332852484304373886611682565404043118053803906924175992443476188104615002907216720316981019090260359731160998412115034769266544101344009711381368289311895812718528100300324339119253326885104293563521836650317981065820977387507878303430305571921122480311396918678018426321130448571063049244602317592862892682111377967986491412555898307939684531174590836863541772148928482120036535641556136496207846370835880945646441005893057663195227790282508416749328822983953098403875609894963764894303215843715360369182188427726190604685584172262867112730402207607123134554257071186413186115328698531802614358612355345074981109994905714919052680935247303812679355394728372600780960357766730556963117488442480425834924118177457623467280977357977648266469527993112381618852703486531094356746441767336991556492757487771991890992151454383197251889720257247289527390805844089702468217142563034780182837825353301820745319754922233864789158268999617638050758502764994284629196259530217642554761463305320091787137068912924392016258961986913516480950398698622467927679717489559632204711819474190179124265149520470116244411482298419587010545151783989176198077637781477143777480141949604892608934877400997077508515808956643988796646687493144237214392816834485502265887832334411229418938361843257571357010555301699929731485102714319873138727261824263779221282637016693227295753115648483870788968059725439632798728401673284509009633547018579086329581468964254342866033261191988342628386958068613953371191398190178181389779698810600818436319954124863741341821867835831084298130519393416598637908663397383997549797572353026845411609370414485933669416219557979137528443355533721066910995123848315589066496614286453114794939142104189275295145008324050716855593981473271166973151222913207134585233122689667742726033702461502729715483401182688546795603644751702302223936886514327982872013531518685955820395451045227183845559668967661789655266294481766737749812220229548561410497894996065855693152086981459526839896439232313817858631460626863307639843540826191540420222786422290934192025779355368706957990367959697914166257483535623637110592004013281569657515378557095539340010913196474345067091062110223284819832156004074665163934809695737093307251599198423267952415621003368128335671349884609108870349527956512777071014364283653852998527664348656233523145389553938475124510616829985501250608627018060643660092509661528516817062450547374303393897400455790995068123814591754367871495728711070899102949110349865638570853382264167014313282811025509667568272699504805519734193767248413662765335163771261839501650172866412505014051797681650461415184095641005047566545712318225705157767506126498622267357239488772255467080722000834972355276011522705427947272170239059228681788804011395656158718272632911459246878728566701490431597832009558880124651739873452051221155465858635943601425248964372340831022959765805060578900742469158310898189009033991439481028597771416498573661267194432325693721267026250351320544682954214628795704170146151456258322332192996057468305670494120041336069108296252295941243928143990266516642231459048205930726683593780500431401746128552186307147059894218606340487439649351043558174212485810671180022799288865052477332129293306931779693377958999083024211475521156971839752544571708826658023795646445085431838341153270990289020432716383769081409980057476609697508566567872322390301939022976092265172570157395892375556532427334465762118267312163848625703149518082673484968734408365363550794732677862731952703347974614535055502159105617617911833309381199958703973802487579363417624916896910938207778505127861946138154529933812401275362067199924321581125175256258406661061888265082952392971207295395704529725435720249986488637744293077174949845405520069547078276288367893548551900340431164286225872387324180144430409159354790082690483055421590944883272613430816289465788603698171939951063260805082837094947166227590209092708541021256126258399970824204585427548519050499909430904308927960126111265513322027203268830144925092537132749671228487201317818727091503780570568952231167450300345435352454906409082218538547482559129665218425650999604239878429573206080801221621527424597855732539604285062636552481372239652312310971155354483746057881654883230507175166264050218240137484281836126895104622113110074387595830290517465686424496261032013189716702347579929486580503831570527240776786315022037104975215656946971681427227936790191102290490792580484791889207511673128717914969382144815255899570561265214082438635712754334667363358483491291944950969993742238752372081029616324292172612769346602190520633661451514091087817623511077700082546431669542385601251828234103730907275820724153445030659800866757453374675302886765163183514491344218207993394762188091383964241148737603850124805809392304468929240284902459633508393127291451845545982378048578062081249076961356326521368140675197661377949583991725303092735174995318256607475277359477380897182396236733317915247885038390598325855033277102900359783252896122172506479305309266261843307270613186904900511588854076358504934998879458021307911177308244259439761685133751059563825358285511232186320086695168454676405978253069084908413275906751336471341659997282284715895723929426576066398689528606821055179103033341474556392575501492653703116085417482266426033611405602707466724090845326590747202945126480777112862102947156727728786380127464174753597932542937206869295816272895100635444341383301267546976422291136614862010860655478284273312260489131041377542584238121092060312051830230848891984401720726721582254959245476067802351224862797281007888469379848043359633856146241911586989348522221582920705672524111528729187050267511510608376907177256245477965995976962026792692665119636016818554081550690138984358802646269976046622822740776737197973976340514470631048995811850932623535206212425066087647803902353603501216953902219438877178920281697237160128710029986028917028616112552135622633028617129396329391180567900267569474598927461131402968598380450791820570405327312160000818479182686054725081562425069413202209406963995513959399149334271573391781653989081972698238594785835614694642262121229944463742388139813390045510652735666014483586455889508195915585667763740907447994110778946410316331892837741499832361166758752904525943090499311598229977014030616532452751485520076325026839592741320851547145581996383459890895678777194594029657849008882097669472743197033655978829645576463578910293442356726030987545300786010038886197378731705271710029114084495612854753161432811658321462427804776665530470560453011003353414004754147507896299225953216321901290846393919629973873151973261626197417005008181083898383771486564228243243674260387572449895561239055246367702386573333546038242232543702269253603946832487062238259028097082487207621124593593422538647491492155449145129007372528083314738585279050606889195119854328695742703458768484500837735205881569805787494711479370145446385009308059345668051229510325528718318407073001670852428905306183910886121460267295948789616153171861321341997595744404013153408476771530585716363297149797198623763197837775670183600994427099128610279649002031033990447416809518653675406796358321246164284454808982262412949433499875721709648666464055878264680276872559416907270175195348711793755952308584638141617111430551156591118580666485288668651542709323293780772474002079036873856368011843657994404995245050736505003812598259391165217035150225388371643690602919307453339282325689428606820800876940205032921326086110708983461478653421542188550650921479814392512594927082143059678546246530675081279469977750835231897879291782625434548067434956645197056637593440514597097550497569009909408774129316763020713857249519830254035890171211422381682899294031671054849954274860307321166078876994737970002282142207202825196381396152766321492147105447137369768205361421221300792513802664225158297204290743114026211676612921701383580028293327794656971191082471811315813649859083337376083554966463727459350807458542615186371258977439884531585293163812432232896389082996744518092112585411749046615757568181882748822054066880015896336298184117350709986473407712280634971644311657867089838245381349362450630013821563402484043881322252706831523884995866902516100688496687056507157463965648165030775471049720615837425986396348311984635171496594505451963368780195780195696058176242715005159567669898158654451621988520511422456803267125728450898766479343070081522193002354692287711260662450064048469968182927958054537076084588627566725239419070956579591666471428405637672965828074883104915857214411830676155045684092409853064127547025786221293715360451005639687364334501656398538822407622770642232661797491468195881985541310520214526999997969279133572178570538876570273420720141957923521969550499987090093989763990792434679278685649759845401291606863807134924024535222034506502160219173023300297456385871679010061416724540066409204244295702520944671256032238475150670190489709012784588510410695471446252714067082694103991044648216379842554932413733354688325710333781303924325052555193769343689765609168297813555292683378278481032219265307855508752720848344083539801318418560658014662193447861253003047117109876811062344436414244300657786600242339902850577786933786402193307215696345980280511428492227888635562008086005265883015679009318855628117012201194211268787258579775195809167698362802002825528686858594052842711767803148996904442453985798541143145778709835805856926633606857575794700715734583141348165977923999625416778013361235822379495874596719094216202889046169290373398082067456537828586884702622184567632450074199445055489968681263386623233844381184067448886519860031704270031620173289478226993758316049140422815600076400402525269104385461017952163196233109030186812238764234637980541771040922486887697423852420356016803262332768684497986245500499717484672754503002145739736110695544161785988714586141104052369015425036624383056700587422788751015244505745387930051842165666331971754584007816460254847887278213590645629976814052905493995044984579886071172976446394038688747166784578913767712061560886805881393939350566461193542061833412132210912117210762626717069678069839171027752189860552699595989439823541350569577508623782234206560105274891597867308688939325246363554703199384589623666190671198728924379403060274263203376785991212738143265944768688687842539883913295626218226907695148123841713791538472920339524682180073330487420077195124929947214548399690789282946700716551105713597163318721041558401069613101619785394858915083733680951195074993643695261999415409579393799635589036633179330647074852414989105783056488126570658443547248428737963837076920368297303542790608717203410042831381724079958340260293664779582700808156385791493579001023878234167073408785998920703131217204757019861640824246042671446936301744814584692436851785420720000383181873010125770118747076204498762315629446995896880136373257666746179849970585981221600920094068645765749003362434633873941990743524772146790752901905819882356587366161743902633401469533698762266621463486990378827268201301325907103683870188860379631403166752069580234997553854849653130537449781727327042589054097332431015171625456882400984386493270923232621098943953125950697598734405471085891012130136961384407006790623335547429263262522400231744700114033550860401951551072937357137806810190778353963323533799195199727063143535394742286705268210320266972974033884893161947789436882093837470418536394438529774989638008550788939313646779177962379907968811280441001029847258568292844580119053645227632965794890271725513427771688814521689633959296180008385380847201422992228909770708065587641722650116455645451182966651688728364914730356504224929013405051001631260866927157789350929093336741739200209736391439725070059082224123630508657673883495961222675061810442737167519260433516671682788512665158910313619072813167890682648271831237877688157911321514596900223113422006004605535754905210914107652691882749874643631047194631581842976506194382150645934036157343280484779237960954768461830940447553701778088012790209917359809270101178909741675910114789113772999464989754687033590997962734364265145474794051264200223232982115878972502477478103109986773918628495439726698858701886053615672700491263237190030639630828782147872406844347462177338594048665805957414125645265279080874590745984458443982489398866637331294115139692818202684014987385791483483570547232543903606594184454442833748036462011596926972796890883623165038359922990190352457300440513949438747131260003155902381712968211524309940403198890659498159296352516115304021619807420083174130404816931267624505756519381903056836519522480614424094025302083831193819501216717540143611920226368162097763889422750530184838982327456728248081052698101200254286174755611493331127422443629925953424185979885081901302134674199713841457042062020429487362358067641806936841265900672302397910522095104733978547114803278732496570487334767080740255504912468820267444167804126536482620252971315000958664036915810986172500742772056395616388777514236539367121199051546187326878399977743578504717686382150872545486056352620828878451945696326398339877846364035228902789377486556453987173146354733910530646341882904754393081010966945861605734818705754406882299046722232531269843378763695230879847132651135271478821101867858237968568558382889104860843543191520421423681597479995206237474567816972370779593383277516319797966523056829454901486859797178205592375470849475482056406500101126733093834106738523092593199962555002920996722044964573485344451086488760445001889203975681389979495249314216436282924193488444127237509013955592505065352344359897490565418167360808919830207454009788442266774536914783046200204490805837594186329424854595865997809364309438816261918261533566032064970110680205890298748474618871476698141500630073462697780702060068293119139395940448879623169525518322482592669182543757443628261671200771971680874988283614517250374101026836279991489290067578067427062685587283993216966682476161236766637123059933803299120206969929395635209760962031198540232037433537850839452550743208796974657413799109785048670838976745891183136537262639793310443470851510750577660542060347440396987131952080381505857768052324267732140943116823216727776359677019684760163811798875312785696738867173439351820642304910094527521754833463422580484799549982887169941900023687124231320302878730506150044036221067745956317557051677607222206824343931883406005278645792789156844250687973217596934181610219020802384166847833229271796483751875356952298379051867764069750233956143541008051197345449479272922488288586168590492419738563152549713855647825865316649201144453764255228187823096345950121136366331128969924972371447992781890230116089151717308878025128813191744396923906378554334263203556317106773194321727852219050263837606696205159837127211164021460382900258004127652835392844316580463519427378931674623405615906204797240423103870633774687463735671425180994986775160245909892760630999868520352050954324791053604234816181019828262026916640666030343883558196082402242916936314728767487910680291985742178736854009477907476522819034489000871030143658214279423268296303920891788334503325635110845216823649732062369490151446784678111823411171144487409843807908282452679165292140674738571612720207809975928627206266148671451493593187823795635426507599924795431763709587476542731996693791193687372005732268697627941692965469124469647591579112206327916195150460948777555876463861858513123888729231473212212489002082809791875667839421242534260219701135649566626239225465062426159847905735129688215560436449428522468075945537619736162173487459960393525195756813994417444440567385537106678563122422828048612624529301009753121076851517761095273913319441689758959189004912453283822977280916331835824422642992160441339812820271111343900676626400682143990159109157865146077978445377313726378591156880684149236150501950133311965467823451204855406573341913090323921167840855568953400151693016814440941421456102176756682923498789747274977319281873957497971515899667313957582705531668542110053779564070152477345945683091124710330355201902566134868111060710422668615121398230731833954488685786726181577199752483701776706360264422149941679707132314885578312777856183860523164150775901193118250745372603350301030250982747407414195108507753290959174408295219813448141851853089601686347289109402152893769089203991094753604026577838646105204889260258420483194483673852756106770041111517397326308794200431210894252203666511073368477819184966394503127150501102283309595802160923217309192752936134969237938019221048793536484630294845797083839975394480925908103576655157681837568493689363847625728732487252157900745256128622796575591814367583540496026858406171507940100491446805176305503681042374776565124149509029643973116872066463243275629766451874466171537328611620471120511957591731284843138384875053091443554635917723253650649214786838770370784602241407496854789279991961396425252353202135936426857033238763459754559609207706163915470059128258189235784999730651355457369924433734094837612456750413290593534562799098976411981523039305805766870407707611544416887913867805169110723108375418349159574221697251098925144829852672206336164847233315260869195675371615253667406907659645602930911514976084188394485091132324848189440237293865952460398921119239213386727853175943699776324729307003820586793093204397829261878917171397642695276337295013051044702859790377029519435050568799443212844186978585750743868677109562549075564542627843475832140791849747049829596587288706456001477974608100150916273750977347562646878681391667188716416058454179131669105127803284539973960841038846262810766600167162123707276525407083246316948811417553251651939121127272501872171395776557208945188452136280796230825262210617425837227515489192041938180617510224130649156446648563249276935839896238547426569541988804401710777608555397733508799845104346377932355334849159181562185593640699872658354254512028966191013152520094674043587600834080683466138634099610857376153061901987625747737010178257442662523628824187327488643848732487662831023419222296167722841231208785996325137014025670948119731422307165780590290678414980630957707571683878316416685765163278241640863694085685507567176494387676734765096347238082961857625854698598186592096526834916407412861403720033714671069269814046737800553063004390348529530099517385709287791253360369624512255405237539536962792250560625982424630063476173177033021663407754885678244131407016104329257385236634396453905889401378746260443252539614308611508782989967899297650110432146966281944219715936827696372229672138500121069492529059004742742107567073701926504885086446577319196559998790148130046992629514754518823412056685990504418089709504825272068184591548223672690171972174776883177605207019316247921048844060747577265521113384224147487214045288287559082745980523228889002163215601497970291840339660776321155259341057489920045729885411555669980422382079894293474888400330939883791551595549334514928114477667131201357542112021316313890579024968924695720737653609073753185399759738530556348718187622374140152171364694869789021376901511473560003513794758315787399977375586498454056854382780387942417680129434589644355534172607421700418902561607770285418439392024915259108013183290714641395239338249318113481966650698189572944059176551434504339375089255320453460921244883963580225413623658356992924647973150703654018715743545050471213380258172617596341226041505205504534321561619205518575200230322322424231561651162303548267743866158430809779698100308912360091705685681813698723918303823312959212075416083658844269031176463769469179175981437267602465468994428249910503666250687506516106178728559073931483830941784662842725980287613105145297920121621658516259395092567058309189977092749536272875478124984579719125839730591661989535045071050113976078806641389574963836897570353822979930639274185319422985827410799656535391036782579644748289895983054038164276970144191027376126919695005910879336072585057388124205929053027312792448849609159910573978174577635639961846187191676911786087097168510011101594339384183167320177388706993775170195802789081002585478338353831608411432704196739622116316346384067264510414397703788597246402940704868775530555509988165498041623722506751555031492183262440149492404243969991434913572102237908479701472508848842030351932177976943385816606793408846471023343669934066408493724488898033821235343080460934402522822886475017491208318324562745007759873731574333987822111892588056433865122188221769526376982556736859083482796394399830237225275209497581040008268547379628288495328134964441733607334499641557657424881023739878188294089135976856445080038961196089746796771172833037175631648873772175458543772465457533419725018520108640075525016959567178910399105708459330592453354942133216650820838714806086223504794650936411120822687822061086909160572579075236577928408596457529456496113286244661651386692768819316453253227776164121988660274092779240582644985685417526272933984170365665374307921952615465762125943220921665941815586175224870241797536322501711665895610213490644448830973996478905892696249373121128156668290510375386350222976082928284723998934907786613341615058858114856381374880969761286506104862988240434224149406315988302607490403882077188327242932482653720414799810429879623260111248870362144480206144301216005840109859114594028374114139060381241301339601362079190467774776779689859262065954635065197137615254585095331573476841891372530274936196495133278362712010874834020838118048771516882183943116003483186539423778098678627477389545426519890596958671370126375196918574141694644472466252652359839357476374906130942280119237793132869379461472112393201956805939444118507425847696493682811981525425025940926973740668413744265348484498832381866851761096685003685213089960045383372756025167317832556407651922490507117639710519083905020820014966671705416246927553660454344869549635854075739733628888602195503520870688645857968070702481968457016424546185086420649800949020518401483384052277758984015458767147194160356787828037345460737543485551454336020970086166366311411264924634185238803012294424968283129041545705527578050028571232813931864234605798078029525528831078061018217889641085317458722118700038444727511749938501629492706120045683997195584084306281877738216786953096228512613989436269186880896643534418736452838226408444407231131427330932841847919738805711608516000602812282363680179467049838940201490974116741482701120436765635095027178917345933312636590341279415747151135632081563204802314609962533826216243711293288801073325996799868901031002456610541812341564898102661023558801318055099840780408697302076748773604586779527941138655813950770990585101595557467606304551174478945992125838197623921867935974856672901626721185841525694492582738972259445709286813896642091629264658753790754740643459620227438975703071065509544267678850446555479773945680358223965413424245144489667482056110300967437116892883977538637961532568693691532234788115075318971687888421355845840068642168887672254261092722894774398282720376576683517641444572910655749102071588456081163596870343583020066978610418114819504037663809590068007782926604170804995281614178084078968608109228726725320446365587314033209719715879046653659222649584201273360227820179304009291685732421881826226956349421105304669732923164186361380479652568597762456128844994735530834613598159095119485597086976829710317710777816293357404419464748964224142966658279071315737939856463231511916383624264095780320092754913000084465879628641157370893613004462092240444563730120987884763293111519623644660701183388813451699905328693868427384432483193370908364456837950076163379833758796716415183527587997034727607241826953393979872696963010745903058990436643394030333327338235773208652876594998692094154106409550161813260706830683258463761312972406225162217733454873698358221754670342923612606162827097568808159529285339141904353135113989594689045187410464110428843453305287371780924758090547153980038861928350686711081816163350717755266607769942595852686744909334022129668287150876598415696476731352185579706426746390591634248241956589704753081047387086713201674330969383762517170706917237351281908202905955347536524048011992348639618031370556116138387252818858771702950901767919501672295881459009524289714816176579168229064851064802652223198411138337475074535407454799608555934056440937064347700949757624332758813692247851763526141264480421953460976981107708025604477055988236045708831096994091655847099898815842886893417737276143327957432003371363553722998589128796609406344709091476787298245850503997105606447372669809906694145786982611314831487668551633414411634131691521483746424961185030673017063304647199772591138005497094550867989836829024803068599466946018709889812375260027365990651823385688946831573579219915845221379292734572383340800723316230454489752859248364598739655216607659299865931699530005287318078217627129378493079121215939056457514267787051275604207522425358153511052279821643842753071329348050108901997717711701875429279622900915154717616326518484945889948294042919688967845804072484639905873460827686063808958985092816830507039949764447591451088964186370878998014465266179507494834052029771356941880650103479567627668830030707575864858148970347047051873068532648864758935436584349802729041645210419028945174067194697015078915612098083716003199389398867475733734988259324700775790075884347977203200005512746867295923618225266512859336947349649824531607422700164158942603468813091970158035938312861292853517970667719232523562282778053949295457420084508501816442610550593728805408380564207752410356402458351781239925853635826309750334475185006630867081607027909503120964666270831996716537759180520980939885772380221542216330629717484154817411624071187534219056326195092059678514958301025872068434292532374421595935645208576913430736186555762543728909302334738660643051375028106388302296061204579084924273676426447706018402955434972504441949717568095957723772794146284944021923965635797928513448779162218937951088986922099004719742918308684222766500247461314542411784213512369995943859834798881697939318291936451751938335246087403276504035088037460771238052423034702019678188912664169650712562717937855324542540824227903310602294194108418892568416309582463416392556206528617932756260057084677539945634087838931391431905570387675344256788511932669486480793921658897559813329271520994251594522127923041263189506596640466959169946618773517341376491760843874574571032215788901625160997322051956859577441949172421918321306383670027592824502001162969262568129280889480827617478857803702052345034413192429316367769037847975251984305305004647965925025310095271332262311238248554797653500601112398581560366276237458351886408958085226008910797820661014123881788334721676763899496200191614881691762708380310395306115859209832884667903056814718708403643775643618383381292964401054943337432554725160982097210310882736767076745249904588340942321744387671551872322125997522026417564382232823446199307666901393108143611861315591482509639890182089017839876134713654461040928614127117776011010236150111512589816063582122664601673150176095688655377521367896034403087489784420434201812887881776903588577382315175126901867185693376825905521231516992249691852767458549971329345404551970819103218989565180244254883499416156967301545870812717490061954348863425771946618501770526007654336084675634140921016951224660670708786695554400995609927500114466234016551328363008354034337010893673576404602114959556340965143419789646082251923135691113285387860069863766915276848545248290977597200612424656400240211005596418323491255440066792982712752649202604187612159677292666553524057579924015674372929018697894096153769469905046352710028649242764820479755541281356069802692652680378533914931197699864305709653376018260061796108313407737063026373572163255116740847776346145797659125804814693429105877371103433545406653987569400247047042627383320586803334994305684034934977513326312767569663892600481050953576876493645087111171632122484690783705170642194040295271411312756377834664415620481451243894696621960431443408574401865645328820510766103223217294645336599039382633111274499179564434268301007375141623808148032085319114040868920089592973887795660464089306271098011830201957933757031181584862309935074547956302688761714232053240759821969729516931011494758427153781883531270532335280777589146920364962098050781754946559100584161064696984394267330374823569887322611465835450522278133139019845112320246581965163168077743174827240534844078210971560343222031769968647339482181875661497918061618127492654765675677120748562144367819318921720995492344561966529003992856231133391684586814337002327455486944925800894516912265724715830593255329079194583009190169078398743860120737278390548331320838346059531830730829557405172636852886451426577958293900307379759296982515371962272467002234773570857890135299892518285758167775983608410337943085122795137372763250074982274343779879646445658098165446606392366578655528956564432557224016708379326142500995225150578635787121632650543072034640274198499305190633004264366941502486858946601354256878523851903751647524994000649472751257418845178928805731791961529709854781351091506946152536380074651504574902870371116576768381472272309998954442499389474205949806486474732383653914177830996818334726927260761156409623613454004095052942009596729313873911093959113997972650520866443402573560393135853737848248609509242388025651302020830565283989427148702855708294415543813750173485372872760748340740292867648848894230403937398593168442913134254653536047127652920460999347253103304597409710146585069479738982577245615629004231759842770735152180242734861534068945818104058518982029406802301259753545150476374714170450404404095267694510210449993114330241768498591057740231116656919100810507504080367443432680299409623931566548788580354015380775752567862224434998683442158834113537312389957886302711701797213769116879284659874398299572862035710350467706889497468015036320768567794913317172365896734880989396739817238800528676572188790599400161615783921460183850313137713186932860933060491015220112641602923829987886984359338795258646269778486052726696718083381502959439825404422107872897449556389755882080836301273484359061973015642616970797072403405771606358326812391323769783134367621446319577759155089949519249820240830690796319874006317397967502615243431847761369711778177885315229955063644796855827556182831614662366122738013329036854325683653167456109157683776582036371173669787624329651997759101842188089555754350285984063449359026447930273224137376375263616540175073345405859458523564229286252468127473262465684200871515054740896757613335084603260081210859343627602051621486185043432243729797060949061270196175285883108218000608347870053943554309447198358407534770277426286037626379640244316648538202810626331615927990433521208930607299324656203346533786643482524750567517519811212498261474735356504545164482766245442112544894733883221498545942756820588433243511915701794203115903724155300856680170282578136072571298978832884853061214818749691040853524800493437249525238511089490963446216327962367358984718884357997001879002978568626297579558585576298362025009461170069170152319877313780195796425029637490287014739539779690284270022886039534560870477686987651951424580732714393296506119870373189281282902255666505737907797434221179647922976056494096011458360037994030445151612109616502793034942640567057279630355342483592276576564001084055922807699498064622791507735758071065564898384502579978426127245331251310168541200680684994309461575822347920892569571230384144976464343753943123022270681895032985334929076957369511207263468646367353665284286253248990100551697732692544600460996386908505205287252054229816377095712321390081181565074354481604194425191845214066474942482257082214399868563390524517884668787337273413000298912883876102375093232241546502462458791274565166089155725078685989556980889517949136046106095045575678274248120169128965381629259132613166793145439404900444049033087854620629284003597865113317073857207323691519223685164699040993510133041557796818671073637321116193776503597952794681642238944539339220250321328601440704574308379065142045882500214211962456998900674054829341366255274377069527787280106896627927777831019313575809004690422071752143507694326625186432168715130622033981428282174501250900847258671178255407872121511494409344435297970413292263738677916088997869022520195110351382053620077809362085967930758796587300486276320776175861675891608150047973816057047601224719886019347012584284095825789583412421117700816916394349954616881213821113090436985259211875567631556048680661992544320769272949403899832785670102425465556556566512355334062189144690350275927213639323009633463102368026004028546089300364978841791430726570574598349174395851841939089548006730930853779802094914916908256395520107730274349138712482948600018478829211558321138516939792744703595528649323480122247665095823572986433197758744164499030288891713042327765544629864048564311279614479454634604654417036260921471868209510778092652463681254718209781766544702677213185243270314669043315413681226830070456832962181716176037317433802990732661133711035952974560972577559340313884465307025672216537234355685655801510276061412780153754718415820256982035509264611671183114705542844876300303053625902073315440234309956831665481576299531404922328871113209815921961123907174827009841987374195253036679197905765684938287865981002360340125180962736487276154037538957687665674958506039306809578033474805959434193551719619919307893313424119386726367158715335932967172144062256575619760013388750920192629760882903888444710468692786151361853989210961278302145386729439052856540778645575326059509258799632152939849135721058229435212546310452625079055387872294930612343815873825588166554713755858059083797935353615213232888889921104990357576322950776267678857353010523425629010179175862486694270214677453194718522406602793227616834696514274284946151668053910968885087198360686242947569204612827729462489922438954937870534627090635768620670439040334628194562568904078300017708351694304963938297585909751557038510383262091815694672019158164529569364588519306280619463929713152150364362458456685604831658577791715947359196440219883532740795838346795454870164401794053763446245601988782902845819074234249755446049331554062741095710156979915295703030828839543356135197933066406399294355013960411540843242780813122839475007866912946361998709656203203689014450216941026959830692644734298840730966207810043884833479707951584673421987107702491625705766626092621265379169905871069316434770387212052606255321336708138321625721320270738950933143869894721072434126030049841501903195590590947840757364874074566238693763140368373847404399227899785809452468494111256436946485697198189328720193891507496365993942561979933621643215983786394915920096705715140235732573310804958496990113367313512474111861896622724982864217264644834401050303445373795668313804491081095906869486328396099172249959059325029201405419271041780703536247344936402678744676530619075510664126794759995398397864497361268731504425829348501747753335029080791250549766668239496459257024336576046513623382555517608627578501702719942820428093151654839978529147939887950485803981393681715408454264887382084221997232830471735181482557730096146222210008274202987086038233329491277589572594753634339506724729769706071485993945945608989731548794512427035212337742907911152970333638884521198868334161103221897046708347109164043162942410628188995111423440476282055855877259358025895010515642374444655724113003049170999605012479213162579867889817982660706811900387361041689610898900800543096708037936490263177243663480354285038896960811267190022373671049897121644666045452799781479109742488744077644364166644205052018836863280335006848690476323141304166859090139136481352163664552719438249338768452906419084798814745409103870133780394674634873858475872153561056194467553875953816248147641537988767765625316831714110236257870202112601174056971690727557426573254266315345147590138256412247813350731858995039011669975852486469334654122617197402550482261204307868465657965253469407421514307566856323347337346838760361623994779305638218228212959889168149268146976413667936858880968419490304687730146622030504331472277321347011707897028918641715424339785768753059979080119171933839298159488251924286459091181977416037655353066043774700903204632536601504921306874226184347587399598820097002681949960778659530446086235076491622540412204451910957845772189805948750131196463872148319797046918881688027222900758728465490234597015521594651350751180026721344477569081903537193084375279655487634889243643563819931701405447139068839625204678035105618802203727181596965966850807889547915690384979675674374294795263202482971137354607415540398654427893051586579515552531667235624490241305005408124034364138660709169147114605317680671500177241735178327410287861730540849978011465542721109490424903796879037629299395827906880227414505041744246650900589838703921496250107892590386563575627173777397846687914763716468717893922276410001229339393603734227691250021221982418746488942957027608313257736455041664784354643487098290208543028439529611279912781326258587194151655961640747360197401064206677969219601899357684051336426493896791340266287533445155285571595089210718435404299684836087105507756377443436325252779492367383520925809931634950769250546645814119487403328317538266667448006654681717478919860067737463725412129778222930955308583407637405527961031824977430854504533898637938814830191699403716442440550963201296037296970293641223954323259061000568803713552466159078408745150702053067440484347945259355532509541917313317834108440661729814527328542735978740319685756318224486974015105227970555807826664152323574481140466839394683640205228508519108240632508096145874354523655331959621188552325010615130338266670240096633533393723069121878899245935439820339962281310836202698747605891440186920102287294342285546825303906705272926469217189552299627598294450604953972198370708962755524353734267303539568117770996967760221330705150707460237924418404765420304147760765626882314200976892258710851015977356551844664825000898700172555990051301914508019273637748370050602057003639442899369099218341316601993515777344923691769385430449191943504552457186470409840197371124244176547807305233815218948466242398490531396075778049237451064035531359352417865720355954122069434938136172597394329313894570649435114929006622296278111984084964585870734724361780834729308749700409746957204356748428282413920882787248028427123428525602381867691885959317067489487689640032201319760168376745454881870807511543083514367602465615797462674676695164811997900410612343673567442056179978809470212956779215182189048676474279398180487012083352351454747568329828193018309761734434040740719811025421352284579567083409928742064623966322500227515757034435745253705314887263382907148676389083811753793978425527669604854258057000636232510016938158168807678846320010947121915740284916634183365532256966805332337397111171442512207877680110725330925253526718312472199843022824675856665751860957512860333189438129161882673294644673091821275506864263069597011255638254983348173721301245533918528986558551249034058276345259310130581505170213631366668240316300910180502513882270199528579477420361825520066253202242804394704123248934300603999323456776774089384692297146744760887350177841213954821572651920900036528788210219224987861408035742050507228147697475905548157153513156290141413521768201961750497954384415088495237217777710729196956578018412381634186081557632756699189367046827432873136824735237498551779557012519061572125404872610942184897313848176981248114881904439487582344852794629073935882520051523491430672638758580622059171932790947075575415091645766778676760468175424070089781659458976832067548108697740501576798085624925070421260505045621216845401548435398427159736275922518567111383644072633821935427621375383003576783004543176638738486477170477075842925049042056705144026658502417971966629150199892830963756534492760502403538297999888638836928294608278365842971506760443575542320885816579275327289851137257721231393848898344355001139490634715202287096548097299727433198130174508718327698712482151462940293041028230920609909938219182109629672043375029833944490874465659455703139279879482491434171477657381654106174309283095271154948055217473792615841539969708321795057976419507799553466335356914543063763950463624098102283754318578557178609951861774982065433163972049744602431616833253636522713377537156958628835531194007964398349678613464814152228885439884454264110049671776613409138749730356293556523986369992530867680715654699389507168780748659564307291728079665983487274647942710181262839478475327797320853151114684554538175133468842316628407717898645484324321981983105248148519751474618897216680692901365128885137390788446793512263926474871881944634751530807336668477784871902738603825120712393069030921344494010928598141274306493183603355324096520875516491103542015258926696300398529805286252709594450534154169525024163219513625791524049533349758707637933877860822595980973968557297206785995403310188391040840895932655235521341943646474406148986751369234169315959813534661761700628472014661042227928330901837854790788151628055761668828793094072376879030049443179116028280984398765532037970332494457642009887803700338917806769187254253596584683099366120556828783639542786746671699051719022490336134662631557900288586547071689644955862067336694965943856145306701551070933582032939429642713857191407968128788113738415359854072799101760885084149276865780335000473240497805620547903424053762910069912389145503574556826224090104540119675716973641401192373488223296249647417931254346675707329627423417176136934932904974397064211069915663486190600551284406016087615154278677707472500798657593706233075703425494181339313696721651656772058281610777684405027232911872128869246795993432127297526105446300475805978558283179932061689659695079639331261272623213864782361118699150855169896871305600756762584747043006336534607007606354735259144281488706889925809827956300714295360510529382639456172493612985778183881081434422133579559652067266769891721138424432753810919832579946524921947927810705726877571142281367261302480130540955943387062999930285270088540473274216896694496418586108236920026779725769097129569461969959940266604284756310539947810048027017020990985703141951377729142023489847294396959907659567525895747878154534374541460099123729282234262160195277312734797434887871874568469960743006220291403413793878151417278933439823995593747383356376100973869517719395007009208182915543326838912017295427113901206781379050403617648485734153483255527911196841383092283939633099107198171461555094656689780107474924014975578249596017078789009792443363751194283568529816379591023098055155406282595344804750708773836656982057421030100429875694200753626742414829223423218521031776876052798435606798065034768690725328055093924163643308196068564646130968838508201911988719003205373728444933101962174816140237590503568864953305920617031192133607185276922654519631668731759521250608663082939933176599277395198066440956068244108166154010839858760421544234832588805194254460055066074857378592457778134726141703690887427046358420193070945846317900467384880307797137362368408512818448385277570620841378939843861438951615988323791428272802853427493190208262433358974143149013042797023585808369699148596332796218350030835378027678222908655347163052580008139354778371035068471932096734524338342139930799197558042877150649834201499489699762166364362878450576768509221685275132086544045657029174778866038853653618521366679971632983722656193271917492988429891316960986983875947170137540156098742423531279397210760825668957873986380105824900806284268003770182342929031081898200329575855103581576048449555607131815774431017371031255960156817628604661573466414383446530163662528142166697299995941992802451405113415244427835682693310252925326509781228087751128276153753156936717330151200778445907116726811852930278713661621736585825280695095238888091203449797100295519833623513265407703569331267465573589305302204809434412172349121801796629099200572090801445956707694745732242570645446226031340062968286931736111533465535747738461553165977138800491403780855521238690502049218342432549216483727280147970693667250192727357776125747828258143640378616557229371323962274339291533040417126256240149821082789223856443729475386812650212590731869461752380320238853922024902005497673826346271627671128554021926332710527120345040720053763121852526538618340613509152215985626434119806083691944571545183540405236391072321451266148236379329911057899308692454776714030401212542482088224226248351739230021488657093711975847155228708780807764373016491323973450106731643533484048314294505324479506805374126945263992572223683807699559676128124523745340841355073880944625955069441592335176060801099350483649758020943294228945487881809012826083505326114383680596594948964773489232546029867314645372701955633162159240496980441228060166721800446844510410619007166275797867143654567265980622855006099849131892714460317125494403822299932093676073591703112723693011356270683140561792956926982702041892816309352854865138143727858420098550105563832965511334636057316621056725996763357171556140187420456700455509435025754330766309928302527354408502410091859354428681259771960232089465726459937719116866973290393184062337929653947435483288120002021666907529700567508225133434818653426081757348043202690696362214604897615371226396482905152455376734902812646405549548201321942131642577580315658235817004417063619125531159171684414637731987954927042906850871978343261046170691325896677443050691499409961099070467164278889353228181061510531636762007214027337254074078568714266202288458341617235873345135696550086093478538744180617042692287147267578468209546925456405407553525192165121097184039421442084132638617562031427554105101079101115615932733160361814414397255399807407323499995085028638434839487400087767296610514291616681292601509492784236873485657217574529356786358114525242119135161501186085832674700269602678349683166980598616633050849751579799122790657151754294401398858374614935756265315522948884205613063587261493852831572657973098188963328424973642922215939758856197286899915353596286937538444102508149095166944427128615866506615353652423540256524187371266831508460687386436897622259665318715970616996964433993583676888134490642521702100640474266151015989027853749021099138942096033949573697649853853503755930560706937003472207177307241558030383227087346004372195365293725264582512638727296633897897601084419446590760388071861490284003948422248287582259278670497353451999887127996957786960865320164790712896893522271503177760626728982881583490613692387059435986386004894025953484416486481729170689227120424323187876936499285906672835704817051994006270779798288756840374066861795692544284112924729376644119533292961948017652957607256693904200037733718880000802449372980693301785503934699036068606031083690377028948990338033968634651184236919610063649763255209437671933699410397033837298771692602681103215427809853690725588699310810525319090906488877511510775864097685657701852903885787285273995750599540682238270502246261798534037648526559500024746447427417729973423838959988438424266099428392797575171202564099572528769534830539812175536012040779835697203511074676960768908432642782388304717802308102302951385084481197101256621023748282799744012904496386593196590881439530856536742848599963698938750450190881074389145557391853586342360698860016920815379313607393311548014221822848190285355381482281189155502067174150884646052502216470784927268686425108167063839323394299959221245954057429616429108588835038327855204893091825151437453375963314418682455029853082482440199674718864681477019433663938213545658062941149068000700895508492186166011094097899538493471331201027537179538733078409439578133238615509052955320181929568573274118650204229368110470395685806369748594683795530774346383897562672514186915626393620228664125961571088693663148931621363107274891898508500932759099975414140327418348170598858280876244301429768412023356586827585583763796071899079570607645713392276523116637984460948532163364159100910800923115381729272005314358228740009091010675368343544153399627418628919501892570393660495381071297116756296410514537076314746934569416677714531829534802172217827976080589751221070290264575680008334868728305961777693496268165367394702919387298153251695992073369469324389097779758884611238394396914838074221865371921895958688614477969343970634971560922521666657941366722102456991737954634494521404799158918427996940504654809347261955698138009954434185042160414535645588606784833843771485677153775920644691072119027146363563066240552027443722153183250080516177274994199084315949634523973280711517370670328163185591687639254496628773461107841299098645902504151198934979767379785642879539553140653724275263742518216788177424742241168298365220285020350902592653800088231024520105270958676633883899090582172245883942015335084952610977140794898325669900260007952825244059335769350635971791746154279310474573749898489751978091881444900248753758504537364637239193824070633542227305524569935999633319522900681967481513633888449457147611630676914684413865436680479831434836637884615225840669337104872832410646880410619255082922558166713789960385363130544239542966675517347594695227075966742354991836984452481052230219383557105757117583250988675789420269882863401171453176421623396351413382099017836010599967361348795408201771787124538877319245993887047266237367736838418515355600540537541300560725903613041833925672584288524607889859549010657018032244413663033746914703253090390448307689018279992563402214469069002665461050935851019210607199025133703516762109314885305172285097128902315083509257412853473812852758915572949448398399720606321594584198574975281541463818047605509052481888303465233926381495535779509354197130280766721184574231844668549005525134401021189124815747341470791988567370529394879658423301991356250715651987081316957750736429887220876486701185054034142000935356404403285685300298496941507471445428145979400630581875800140194333489039192340599786784950571223673181656354049479690290403631897569596578999893175633035177189264405331019777461716288471743304469207506241706206759611688502642277907776784005801482937023640461211306915248461448489371695159192640627683532013198931391368299110281171340359457204492853993931148669782814351252406367262499410421157698739127905020128183781028207204229660521272314505359543930127441653527179932959242558801845158444517550908687766294266210460897813615496887205151386421444590336319103417618828045984397365907302298824708531579302744399381577011931330176528550266645367977552577471082670013788997354529737332558683215046255853210662289001821790336388433688637859840133710403517181979058323224863821841025168730015138742845179737665156201033092950110660485001804663590690030743947628700983457605620301711379668442523601448221537630832798047331635519096065162097356124553278868936402216607430725053358172574002056746384816786132783846641973072797881481803772835389990785061956428208749846113327840909704598802876585251529611733252007335246559008258145276651133418146758704923122167844586882436593066911699335957091114436503598328468714172360922651281511197004960162130770469809042133390784255322454439662172507212265777310615549362636255375735127956823036221776254236290587654004452402703754166551825302225089414153729335521827884342848666905577439895377141835226476506295753703710983960037709100847781731928185442293868417107160847659432662542631454168079679001387510068335616154439789180815299731130047050866808268745061995027364088380961546526563347968270334532768507636539095301737614720297667019601920022493814761849853198392091619790383543456101429387101114242799772188820644216860437736373357346551450487880534298461499203173464925295326505697899798370492206440539038168409596846267839267559711941518321999709928305939600248989207414598644915249269243186048067090494086949506819826943688030168381506655983324757755525980194669659086928622891933361302237796218883878582388962711056420377048017514292155752910363911428873597095197241477415107006148109797847340506934924601404947831006272397209432072562685975058728934860417596513218213023612842109296721098942120844275814830189591134204982380518345653780670006156212713170947018155716024986326116301769244639699960862363272294235197514105235748968056297139785965090655872335942665916783863535077250888960705283191137392491718957766086507631753163722173417420738341207776260595914277733453740579964369507148148894163591891207241168027262023578547179286501833111585243800477717749170912183743518607486024007157705118403732722586236186787901548865699951188376366225292103748653398819833553901692093586786082623264882802708668707887967467697977334762513374142445124935252177554421944205451005559372660820056813783991635380944775403676765697709555083022820731420489398711819575540737468480408883137290306050682314349040798737510007995181976999449321577849816686247262052095627235017452046013647830461507680265858781672993167118095911899519516631629677449065652414830232524163854949868532514377821999833153842159708756689412618529175340113420105871030916513119909184727463024590215173317760512929153011619737749184692950912484622703168133292979231604831452205493272527231458612809548640510816204022493349368892435270163941220549776929981845436292077587282788205558647689416677706295681695614018817535844947235890818094641133227360791172013749754480467264675004972539063422713230644294100332122302339040550120042398962709091601313289964001761366123633486165071979826863914281209639084433432557783232897009000327753459782306783107164455581300844529113461612580626627494792034536810123911654378907524276761212171657859568472837120382434159273510121799084015817597621231408059153917161576169143360548074012312802746312924672605508626702221372665633116385000642598441231432050363766513872968638729408607242145558047535868017097490486350555646518367622445618213605783300398399022904549300562384346324968432407137583055375627066098065006346004008987802353403428378494868495351279721284931467335446275334025001972740440900966218438076184913897967641093780320094080484974217247199440155365849739642428136134326528209716623712057722974281888029810865043135136097495294897146195851160153409800030167190981394635684593051563220103150240520384901494666803336669473932119436758885099909665400530971395668269804046988397264807704890663847951252727511088330035493480490829957582671052147298198647741863797199481727246379791990111787729362172906419225188293376561250827745831139061976083812177567837027943623817679519397722169098067809269420334823573363537627353629249622238099077233117113413084546343232606928842844253292898782850737921016580366765982701972230860884078638013481690780572953721914719221883754586006132397408976882688889493061238242374336392425103447678150024078624429367391554256723234283405012031868960162161118366118145285439707222787961942968960044558578097551826889845224040821720251995481541945881061800611929603446675421456432827721609871603177750198335436048417285009437308139024371977790428076431915461793010698843804278977097261079575788781811310769283124437319986637006964087744957768399434745742239336184370268327721403111164777047213598063009816428422358553198907521240717766323821889161276489486851158188994413516058819516009285035007310215097496110046613635866212640923918644515569989671604426213070990811006578274076322277971765644356428513532813910151618192155661550436137467302735335680730445671521311172966273766696031124373475468439665969046242584668773702994176393696806975468782590148975979581984103709482095368260989584556340162860784348991552310529847927676362236022654445022808471210995687885863057142459050271100223047796757004617920592068804221180103960499629373616431782527889666112394947010024913870168164320370180616991539793682777422524534516120508394319981266406000655675842118645236033233933585632507131719681508575513372856095298303654697490835897685985377065055002662534723371188372357569653835327342479246801442065719468190768043736705084481003425039015098378870610880312912377795246244121766045339596915775730585251200599409320132565246078989657043289090407606295627462607797223911835516146654433881079045637892390351672164424031756957914508649047027459904052018929787735635135761455297944624340964445152632112735706076012578394398970229023038947107657591638370375085987988755543718200715222360054756832582727884890682901547704873019993328999990927342831196975802474309932585597964036944164418169342350558696055210897686242093911411006231820021252819989672600617876019721687474578264867911095443726444866694677930539316981043905550808488534586105933877647986740481006885170350557034431289746003673714667362143239059762123018617346957664199831619785411210357679865270464196275387730716997433380961323355599596078051404089861949462119346591324390815303111382581075561940648972393121144764366314396106096588383598272385315577379185609228044722455987400655916947907258700101412263004922453493191003906155195989527708768165582805184784269007094500085039238634563637697703061356236253222621862723985096886619860105664836140304158394817687975324649296548795083230222836593781404775793944009038074888120479698086909142835853796419413021915879895891562224542673466983245713837037114133448494581032204544768776558445275095856292240789502590264562514941217511497687961934375479541506231652268644979300969399330107982159557536902276995661801856279600908111863847146315911621001465709899399907567086574647966454203282952856847642766530115380538541109105699701545765174063890469910010226539646273753811295258381285257448589046269154595405786510204993481614471495524964040946567238398613330978439813552454482033063619679963025598861965344766601221215586189000921790934071684251796916633674305752207733821355356414272091116269805202996512125791456124186589407915036760030596586724081861273936480592392990683948720551193101840530023304931574207570025940001732217790680480826430955651708592843128278874085216654819071497678594673406931075740436802522583544145773141746588989999724334060134040928702451021877502922997871209855432576115346330862519432896243917115729861406129905386372398175575897676513119441811276781574210827432308068040311617841080351748544972256273509327562968093209116821144119939792143605546853959182967643730039928265869102523900763139835659167437895104808040427689137663520785280336030985468500293238256936933226004364339338013365622677190019922288617227592812804157698070142467621306210295829083046373614924468235262040401441480680004645329395640917368343419534685880006218189728421482252156010980116869263592372901885198937712376603090427368756453232926693996908820661601122969589915599998749773701413978286315131656529362849023688986381023924436783640277784617784605542074711025723208520653629486868885064656849440491606413161604546281244397787869238570400773453811971861055634161369428981787122835970054396274175868900692819872933953189520511736812368471534860010795135927770865858534528132458764114475562710807959218314991145331492633273371884096196746358694405385466229921115451565042563799827475403789587158985282190134186483954540285790575097459517918333439713907099325389151219695979030513842840706949172070800824487918801897686523455339298252168005231162183621442955946907167227609359117640506157678736589427283534522497486303554121928146051819139675865214999797848114230069313066743902003536270033602495096611627659078515150785971130375468704456863611060801338908600476020371475522246570711386248518892496706608452539562560715357287266530653463987139952931594076112186821667570312677412801247903992689367529033747786220387943306337421607401212264790693074714941638173685387088298068515956769199316007652012302642360040091914039508244371555023161551378373280946853258539069842004298606487497075642489309804059395181458860098805918429332608822961463185418131142570323072072304333499468470102808578650132375360906734740373549972481810566178942857007713765395696407433845030830051579350116279952599480879412952341858545154889766736850024671324036836969058723412442549625743837515666192008089196211037500574400035075072002535708797518827383762140444228727318091451209838932304931389003020693264209700475306943590245794501581713260525532606325776063367134964586806046069633249177388043471373210605804822441475520285719672262021919460871857002650837753393228833043424999297591058908501976976437148251769682848265006610213711000307346363674635675971743911063421865273269067113355989822700221948431507768198696985653026637586662498878889434933054952405311853462412695245745406147920595635189665722799183418967092694213704647655449671257505335295601141662865232396352177532295770051251691581113795160529751863589827721129082970926804909573846894160675053422787217626406518069339142645583474368973769085322490467183382319817779108656139497175362316441290917332537992332211051024748419074655764637870804676637562204784395086604054720748167059060993093935233650878655457648488223311804568047172229570590262218634412998583147377329290557595767299023752818410499486885885406470783806029438259997444778980270928909083841180062373026417512065031951745455856934175397687040133411288761454482071431132226017881163460153986923846902308892351217410890961118399462513961419779356801395673987315927744163172156613695419973300336087725282820201096208265655023047286929725862540282505976972635823848961052116315339755107236020995833269929831341828102346464563394722887059870211122030190936468361256147581471776260380965132411182295639190868936902723201505623467873898185633154905715852444252029674304799440235178529018916128524227992752092142125528344662471856601873644241382938129693237299692273426199447444304418338267029945711263967430943415434496571140205875497605367526748727024585491690717800023800359563933339671769472760563370516974607089130281208305473557297500645793733968592251647236922618329725592810644071586054750344865503815068125886561824486825156186343199823072204060980955535885279155745968845853398053863996352877235779560330363281179875799532946931294056012526472437048703697840895263963779431763055899645518547304651649525109889636625850503570346262082659597527872530291278532466559902683193289644226037517634660566349056869706574517789157788270224177906668740449001585325658476996956624389150050748467935120728053764712488960146316266006696872608931177433614489907778194283420362951441124938118532446920466087089147274713791515054986488569707505540747359797531890718817476075635698378121139405438921703378327277871101530613676217967351311539837310951346992204109646142724617239878262461280045779901377721948061058567154938607494970890941987077650342628253536519244174980542658899125816798355201093295430528741079411113165906941932897896823208575314355294333462085750822226264509952023870570526401780065803491211381455295656018576706179151731590178865708209445148271151934789799282033960392867722762579448844639293344631708275680344477845384223724867964520528178589972849692053419497574504593530378907742133391901453368447531688580757453359323900452904630071160736094970363404025566109126251383083420092593474288802691824330247326753972333525710295078036841724833704813304761482913703778020224088656623362967184065880022602073144980644076301466311626012521108215243840453913791747718975970612407502713523311262399632305667693537520793436474286070152416858914151459871754201322771643374439297378500344699544421602511732061396074631663165042082299924773345389548219584434674791805456237979366832527235043669456811123025930242436882419803633513673929412668273827029318766233350375521452434142602443474231392725131615460705548207831041662321356124575412805911415304422833108717455249105393348643321266548525711441803025064160284339427674341875468089132035794412256028387322874397988077464643364159452750548207008277447610362194258893865565385297967544569948451523810547952610557421126107138051741215885280944339048164005360362191228267574052203155435711289163285468756144697621872729639823802510212436001326114350282598815479399259002544652169306690316063255665792914851461835690575842501968150129965187211001768650758176187296093221105811871635981934198433995949688495418580821310624057691749157738290346486877359270491871594803683454396415295390527686016064255712726324793868247536694484457396642078769317174346039003279913739828293618943858062835707636352698710547793749054307871279388664856155382349478142964483822338193877404807104574496909011899681733964094451931473191283771058752442236508996048508837300870703285362190662638986723805417386738662661196960343846046609311273279193459888258093271365545500870302195692109278226746596622693828805411197491266248752543802589888836883793056445375859707180786092010140011104112096599110176016272363280761713240208758776982456244083011393312813928335976876114938196494526048316034455044460548359130929654664212567885750234967227599882491950297466557062535949716696524859500323361026515123419778047894238164335082896380065275630451593303775737110976611470084295042546118801473862390023715640108946783460144326553394556323603501710085982771479263992249964730951078509550901823158009626347026006877721814558539043085735806610466381538559261838212578286898848405511771360558796829543038374992176497083761458947525970139727992058671470217561368000196081387340619535314907788830498170637123168138308799897736793335671846818230805868623738818248362591742347303400695370356436746873425119726656259241127581923112550447369162750562029570175610578243733833407837564410731163233195948650055801698558689904404611190020295405737356458821670775532957441984738071733841971090100465935401452520730875346935404593353044380116028002113111636162577829127913690960639778623563322537193138683716532871292058304745267976712113106275471947632511743593494092636940112963796733053724891272132361566499992876173330118991070502973344568502939347432792986607057112697271607185779691203982184037027081293429012470006936505988507650925321647757375300166217016511899295196510384733310715090444538439610685022773858737883838303650772788420913885401354627567653062000039548094382043898831968959190711077696013653769071119433572454532567718084232001456844910431182568327010213734867064886171938416755158258852932386568187610631089519961232471332136440122494573796575987844704742415937933478291818031451522169610745630458305595973815783071195732493278715553398718500668370745841457452489238413605178890632896079393446877756867992373114810686918439928475075156667458875056119200293191731941816858338588690755276390944060784121526770023373500196349582288573027140801676571067070744993624656215112071331595108656268870650684329715159013655505856553684563859550465779611912206962972499524262020881659064654390810805720452907015540984306303439549172264946703781470513813664553018573583841583042236787031218097476024972805639149398882490303117754156646222704058422020965225740563166454120001674231527785814052562944991738013034034763948511245785419377604419143123082579521380100844487652090741152685038914314601141977048532144392789766634461277093039122067007534742514202186333797326720475689913570358063455158373596389395936034022232170971918313438919712843850326697304959243833470457366347287769437468727483774715345660073166216937786508578024385875758645041278586668416557946460484665345926264801652426202515465907590153342584555360822668320449423952620669143932659220351851499899623296681989983125137909819499497722375788266684596788203312364627656011590824771212516399424880816000119368599574792876853664649054321953868263074504884525057783919856728086231590614285543512835468546087175377930443511589602701271865738056460489367545316062757096250054592038065464367021856496330846466530556602433338987269217829061362197628433496967696328922935483881514282515929510514575872103320224815703871679858971880140939427568767739367726687531922900277380510984375666048660301756315183554272579002176825431079076153461325857820353239240599822675799534907380740205064511862986196831316019968637271808058027808135398712737532007453981633155126400503222984265081227500815124401865786181055876044963508457362532809935212654755803092707035163492835799522376534014881009897930059183162001566159047226435118769878158950685309983813035109757474867690796882271276398146627712899649517166263194959422742024343360273887521688953798383811468497395952412784917774218633016607295660630602760668983455507044110724899920389472144398147821907204861162787757423143526904850724502275753739669455697184138769575130130941272521590488597798484437199604409434671914433875249471116962079573647860109485754317772565960985503694699600982653551347495745064197706291850090524007616145479788271275677271802851579017771128603901460821675558590080097792481014427792169535994253622674701406295088314599382511267891507926613663718317647397119228498626426479887942695184065241560719906903128745977638166014531684429983046025730464318010520674072143960104063658908317016859936281314678621196360346213940995170370098539821760247359571182252703715798009257423062401339453084017380392224698977834454932345859097132446027499053950522136192821252126361004335861860779012696087315431546161107074359446903964023692771466917873316868824475981653797577750330828642004976068627671814983638327734018213866814535368099176595026342419948009147509955196928287167866832029599993748716766654510041170902076611714413764422111278304744593005321726198021230504986599164673899602739961754673526619941720044856490568185726396730373221099712474057248467597478595222629728044923951760075577288177298905951978531115979382217819383641883766415001564459385005973756645469967969082058510416584124070683429008629811141155224070518742576437037604427009182649803640781875236547570476204738622879359776829044566488681897283158280391519744019503245392229141126772579702072261265899484558182121830567351142177602928516124476959075513200454863986919818843001217657133708659593838024117065097620578500772207323539408859526394670511786274371780767113914120987452587298445556387186317771154067621715539859727732853014009554908596094094694456065777701987564793563671976204195485202979323522809848581355999104513716718959958870431623833597814256218009351377305276508260170631193361139849718225459517938798159493569957469031526215044237341489145965918640542795819524842273464332679598774801679637995690052516785920452451851459943627456851268908164103562493208430231759481159177625095790980513601156214145968683915799534171236579562239801177514778727183604356380547570280484172783084606130762992249412725384044115623797621020354171864957220936379959621031517881643124600854569636019561792041450842747254578821494611453112264283243556901299619405031531195875003896237388744308839501984447921557627683416334207589479946632875391044441287270639900815167597039542398085338396485918604734668647224303350502821170696323099250109052385321728258380923067859964693479453957376662867260965034557183348048070311617770400003626470384290549196513699756200292981372623434237603118337445743480638933020482403283765504939615499504916518435948377916987489540261067072472048170796665616480334495221146009694441965090939316214948600101923323179667045751534644893659591312598967201249679002910869790881364195322414199739198982398444336012168761920117102100148452071600283540023314634566416495249650095289519523040420531136850130059821489004656318070275120959243184577466409565252386081011126159387717644170205542807670620071224633789545648912810017003554464644085806191985379506871224013359344971912186398961271550174690511613436963913547111919705070772447171670834030348204779452967851664148113891350596370678292331845926143614813565469595452256450287129186122064816617794697555210222932350609416707223834820417847990343900770233655011237405663244785155862364789598302287343056226973747306199066285087452009475545258081478246236610340781098505057450436323622008247948583069130854855602897820118539099312569405409223415642988106078263874138014743388084769197667396643404126169039039184414792762235906379874753652634885136052505638053127273693378795903391893412757764768614851901078089941663545941703344148349561051979135332122733350672142613587176230280544977039670714552736945121989751272463241886769475116278215524882640855016555302448812027728219052105340948840210400394378501914073557337784616181256068162561417823198758869125526592915475675404255161453361693316064332749808942136086110473052760737029024911986863507327278097564381470447001937385195804076840797498755045823954999625582654801496438763290621156325731473182545595200812482313938934922514029359002493247492334530944311488884279329215581612795248475291012407553976411864628145556509964375193741138832051148360346875320167040542976615165696644836290776135195317872348986545758718022979791178333110866309817113170156488436046366630932465009418974082445971772659004345452998224142309298685434868630736260496873134826380965402291333943588444665828739065512337922244542295878995222896853424171822934058692950486951670611773538184547844468840987407061815755497604320620070757086607641513197006460052246830265528330019237277500278547445926644368724424395331395549777589443001893026060242220043673955444351777002319727037000426645675962770653794543790044054328081744598175952279238240985191305919335491754351235653147022175078399924047551682997814800160724358473769798200886748729463219540162188254390079604695994369034242558945243194408609107789263949956636364078964004494572002167164170613806320516426417988308193842772873577177824219565505801877296831626703388525000290561248939842349817371125133350136224233893208720911499938289688734005795190712815534383239251901886272232546854208122655754604431097661350848154641120485043444648546439570098070663346211319341666891569913962319615322079379916578919632929416221317007093214719937290093917886319755279341853904002348565569164791792725291389679415421659081205146119344004495285325464777508630703711055018248326333182701194039198074854925326165891769028138275716601221660009965325371381747471225012718248238807668509333724022981580543127613788008321924814041725601524470848830561729549450790031183288224648197709122035827478881798409918198745397145213914549720583055501861394279263525686187831855429938425270735417228064252537187083302473938159297341467579359816067103784421262563283026011744950176890229562688068828373959047358685402810473228198681092657860230802526325475373905611016038143844468440161049336091600043881582620590437319865391726597453707857881517161274032905462705115041950032639835615747291761315436254607837403042056660057671647200533705338675630843571313946309705770165389735880114276452364774280607603358901289867697304246262180225237046640981088476607938527887423769015624593235900437827038825413047534543440022335377387728622775141957276186947205909403646816004774469756234327577045395281254778033303441499978399922036416267785994202632704974270333455624136664405066152173277440192547801058462041892772520236464053610005005633613335333602783039292125420265492997517363821370994610098798162248007764868667324400898964971004029819057833031272515608538917406803587878337919998203568649240015205469795688540126275882117759250512869183644786397301617520768190752935452996069281143699346603367187882536865310524861694120428543638689674196560292357082954073792160334082346006697451940393064308672157483161097668895285065520112256907248653979442319218158733781820305338182620637481480161865168860622809214329942775547356750867386051129138086825498060425075563776320850266898633958459902591064396517067295025390816826469745598703069119737431550192162437825402582675275391931948580805187976991505048959086473336139336667200962946657045025187296872221225976636405011071172892548067717077860314020471290493892050704196837026477343762479157784818792414053854105870558914323884806911753491648416220832628157982317486978894163447777187856075490766434275091178139019447965808168069115280297415623626868057225871590631678104858654531422707246460248579844385543238751124750935897668735190658332074117415818043646834518001538719385433701913335683497106687488065790733520078724555098382356833778423555434878611926350517958237444236471185877771962324783213654233046788472645389380302259781629805774151837316794572765234403986989619746475754814514850814963387016422126789555916495226397848498041123953212723503181539841862699898622481524753183008240067591537948585894393645986913124623903735182319381776089100501233397942268569892603249391882263726546378433436186929138201194894820322774999839399162454960003929357953606771999012183510083608877339314252360564157185819449779472600801992361528396715292086070692756042707505321164050361323915357928783467962159510554215061032327514436619244334889724581611435901789688764042459169445124873937553745820490947067065041107800669952056044659203081173834313805964987945866591281832061163917245234519404678080308034098620720236187239323446666595404984284613051969897808229068003739175924302762479815302427328467957701723049118029916153620493992411847380550265279325394937936793761389044330878301272512449355630182232136444699706323858835923125251779492633070073479329992045939274414291501165004512179177013485063757518767536154530702605226548847708638606534898016787206566857011714319560743969691268389345814533222100525501080592617867820107520740977008973425939950604747915074057443681632550997531751292508983843326383249408249518962336535868061611504065823067548093466384858707231510148162040927676655479393935595244226505619235796922222504629948053852104276581140931389068941329755018961529469616817652767098848351741562374456999169419595509982955247706862566347905376726883542878818174896989312277663935717545503581229059144241889677303484082246881086295227165526737261974857109207519249618466654081856785204182746107861291739637872027363124429646266796970004553623352764464232840793044663484138918761689276741468349933505593525045623094033866158911794519660654164747189990877582450075658487050183400162418048018599508621903477332908029537093676903119350954408202463898254175134899479620390888162838831853390083442622428460432627749095894779935611596864378281236155726369787609505760104202964378429510754823786955419030314412473512482632884823173925988186640089050200674146548604202856856710680915191932851007402748153247087335017748721923813418145051580522854190972826642539627140936776610604718675949441041240734997537070834407880382215000964926908942986805425704467551515706334676619546566311415048662259955811715215951668602831744717106327695777886863999160587000724706060975149625444960395093350800110315439607524038594985814620381661263118972718217836198742455080397769952886850653288257679134869241646149143371645349762601768819686010891237727656388916468243918807954743275963763535938626507208407226735836187964748200763525057418304318933210509003599910701573281854849191281308567684060950980830858475824779410976381664606714923409893499584162171779565646347177919924683349759724594259377586725390771068009490978675237711746779980090550432344496492555539533805597421521205587622322503553294109622871768517645957415549744490244615457067013601437600317838911123233280843620644978174526903855556608993479154933083587312385747173453473347419057684301801002427196112151671101913863361423440224561574380276319972201683880666830868449817578891367036105458189463006416939826493252882782959697131196670025051199261656684606101697574663161246747069801551799434423255253310899492655089800458272723857040335231709877487673134067942006741642386965976508030723433874188119403737449755942158294683929585761351992586339080001998392726421108747439641970613947031191046276302695841338474246804884363628527047119512687877498904713770178877822156797838000420141365804643102534662437313871498146775336647979888636462314566170413935365990331873195111707696426466136342130598723376566352699651558595576765871205923815161956260418292821872521693472769662377077495536448301856953387302536994598467130250699177879988328407943040597138689679900536505534878579373547523577042740917307824681470415955029350635792320575821621574947542958787949179769546856951393911236017693847145618520792094279135384490161975536795609887197581031833583941757591106403620533085939070050236758531855613447466330554945410861474095629212540489729230483421109172037960996744223788258328649354083100908953294217289213454986697958390951286310205712544080627160505034418172084916922478012408039841047554584205739638760264662662502855872004285192508659722804645792294274832942506541033545566962621761872862626536182795890154645301180467398805374659708776155174939007503665733103895494910052944996623615665542091173189968645746305711871262675017301768426023478597191511204962675056054893966657653821557159381666992773588559078487579032333565818150727478405451339617346364633785219690369921019477309561314413979684778350669317429547536382191167868587333859063368170468976428368102601651623288631033289526488199796626804253336020699454307173503212269239533504272200029374067836628879672466640189320242016977583558532751890225164215669526440510541172565087361070268874180822995180132094440996081302979667103884033398978418512133532158644758623258349695341328793256763822819542139212861696839686940208374844983744911611878486120064938220320292161736503162000716564406543040461168777447170544977847360861787192479554395310570645107828061823768721374518296308237877226066879588587823929761789519466393467873153362761719728269520199465464668505458758225835650649081708592265188084973926505850566063637798427470492788363412760319452736225588299988908606506141596248995254655047466400067640536755055016748634570485983263594985612877735677885062782355235836060684760293939606384163203520730667943957288592252899140895544928075518475997034793591510570080262644611402799177876964625165773088196081427691369971787498037548288787544396072159927218186211184835998386458104149727299063897661706158130032690872363476811710073342652295406972668489949587621587707159533926558018190125135406535739990916107658772813633580453276541901585127182654344332065395464612019424842404940672887714806350907439741135097312585458030059789212616809393696255418506551124726635085803140268300323433518123555820536024546834149567302092429156622859659893156911604350919343167052235137183778511144567738816081995102232925104142771979964618010966392493267363097170392660878583681750067787719056351198776285898783874702356114482306070264646786918088492375125302117093003965100810218704502564947834461386096754168458263310900623271119432655190101709742134522671878633701961722063928953584767703298185415843765174481386403838895700768273424167742932593701069999539390884649674070602088314614317984445802238521117325105679035496111847233186317433442775387916403994975552842345100526584961254311038919838417600859824585401127215712285610778305901304366235370798771882570302087340465866676061523037469701473098599050408212242878510850728664382031475061785022971191472016665160639658710812674598016431114196317987004713142892228681495037199024058081797312964226990121765299016881156284414700955468572846150539784150915447277749425636695753566503189401799772772316212476306919910430169939054142433743826612508157012826920945194886665167447494692465529465997608108538509534398460678203713306181511553368839965649180469589206695249698087994104023589915632253618358790015788249996541042413886598982977616492309281524428594262233684066968818469122347159320199372291224195026328336772488251554179079368995169790725858114381328095564579703205358740772912197762513179790793204738417270556028244938575528934274215471357141584959245486831888601073066104197904728303287315490194947948974950087297616834925459031760975850030175777273902528236031619840034788621742089652600225862349429781520979759652430822485351723468760416032770654441319272191570752207582414874219037504606258811261437144804704511820355338437275369320208728972515617263932237818452031154796872747373690727666901641086436263322901370097871019341982984775467387295869868265998184466108112891417759441553645716663627071572556607722252405741185010789584959976278412210716095871803529136185201319481545376078845820440504616440436198234607856302813549481249140131967928465475297405205683485804829004664480639810163095685261017759421242082887152541373649963866236429041142748587151102850232695159544975368296768851446711548266367164201479865726329810654307307223044484927099304552293454986329400946317230809408078416002986461861945277617719549982535872321338216081294864877401059019659231754439592740722414554986850928046732683828472894048776102705361104518522187466030775128020104799763097377539455257928460121035327279210965252648500281434494092220812782350805751128984796651185428991331894016441104257006908877702902701689842020434214533744391207612511733019128394368140031142678248860084247004002828577111462952838981416657911566950107085412214244031940968251902351880333091205415976579280802924172162869730431418802424977209236077282619734601611706041202697261637604105044156661932434716491926318987138843332603099517061476768684160758394844483955354303827405611134450327232175426779656567076239506764821331544691688179223735870825958542959892734110452320318912893799911872412524651326196766118352661282001778680944313295628226534097149675412657421775789677740306695669324421118480637845497602314246862611165081757981822002028990645453753641623118148059873890980564379659788729578724754115795233453703109384177395703235318300356000502610177747051666783293844574040252921031180759959707832239261277848056889294671500100029221486957530475895414546544325081284699042910909177304653265807833826932126265471030560641191592058588848882112804513187524691501608669070599072985549874840761125526561168109483107369871476878973876519631143059346019762809409886568924885665747604580681267676040562010048369194243574248545458693634759080685118184268794643371114835664840921341418279276476072312132570756611892041698527289102210670991659407490068328631254814143906079025115399600210533564121206884629783581491857421349083947382412442601708861247642647015613168339964874141165248777444152248659963411354194006520144574368077387446346240359326268066301892544447325438905553575037288186127592449400748451952398455501636779215193030917322991551591526107622143670037884833123931986186215323334957910917386068406538565080479937814327444667079640468410206527565441585604941228206015909242690630115929779861441872088807269491875499153731952750392064641690325375349701426094931169930963362512104022516562387478847105753784326228465636401930200956275348168570993047504822091027015253618452564220462225521490092197960624544367605950105808762534843379371715324054977332311291516888362319186238803356305478532699964932987895960712377220728678678115480017971057484095912905815161488419680258434254143909246439295622108733285505386692919452262835392282459589354196858384794588142785904760057736250190521551659730203394736615106878665637898814954854225666432903107659816602203000574374674390137747748770185041707105069842185508794687106845723642733443583588479768346350696370135867809111928465320901919443314318936018337870203813497458299519588582533454355682561713340532276631430201819070735300257026997767408870264537215873217395469742234225624819099086817412869137407623132186131080056645643035063658848008122247543580997531857247109833592297885668343617183430996371270288880659788238428521034109953897684488918752889740305263787022582776712571883211132613950177891714664408960751907084475419886439590944105064311631196278530874466097008044570766225683581046233562977761402478026085424712620564476629497461550569680535677793465170612021320534407301725631835785943960269834641924152853671905317495957854520253578133695447421013599732805529262581275493761452795240748281791367991038567280847464497744876659595220648177328879499184383578376552596501706751191484345579706478045586182858833600679142635463916792885621502917441581023859034038559835888323105755993863085838343555664780266679137793160126461892462571650425049957851265793290995156857260581848838005404086210441513506856558380688916627940574429507834222504351786155053564677073644137456340162382244234026383130071466830785110057543119575229092669996030839246305778305063771302523429509691412673549742666122879677477404411976132038378494019684512973941497968789470023260275418051723595996686403074938402329197519885371133019862281741013637290343052003046805733497765725521524082519374926324537455465348843334894404772089686898635153324632872330927750575019967253284819636238464826529083570547476982491971835068125230635804248259449871239948988892500739802236505540265738352564849109899028074474641280828384873358359644108572432636845463088443193374667223982091546264934841606870848971112328043944739348552809703148085870119362603293403480111855865186368435830775048109337411567160199044002671057446348594755411626340753981679074748088686047940586451310573954044404648563119780077958090414225724097615784644558702655658765318928050597263586673872370361588081389995330953155698257995613284961064286468158673129470078170174784977319086509627383975677784953084397512377475772532417162415747481816551052870539432638523979855911943759229053732783608164445220647855948840849375103415512250642092502874107787826663388161892425315493017678939241402461935330232635323824573440018640197603877598952932874437454065019293682252046701698134987569449110218375159343711223016992643481862920894142735426248973073621330742040489892674938439498103755867577846420060945449506415259972990700997105458945489013998344855872272634275688290698233360974363048042527201674358826037496115707314888713037044877636619459142109701638794330114079953620828019629125430552709672605378814172102810656432387464317052322926329122855487660713866787934035927554481389671185042168099250726735603901857551003949098540341102381532421295233592612387524512062678975660099141008767822160113067886280603089846882337877956605859469979755968571527126079694464785224115190675783085242596164361928173829685585561669449367140273358945318465603808537050565743629826292328182831436815039992933689749009979848573983850131282049358500706713659300928787848375378918973710788569274004989855989997827389479073736477425632143929218064730623355856141474463507234277749663904528487266202127508696269424580367590509847570389225465262877905407000047298064375019227727517310299410238825238759907741382815805877014738849366703066631782914435699725984295518143084094304742670487146602931847580930672489314179320141107087750537631901390198321240606308312584058302396902165611253773600084591014008900307821733550212812572903390354762487144527529600223210731384161209371346731943966569445112780332574311077328111861560602997567928829712610917589472327613988419086780648685609936038397167916883643770977800779038899069796066740147023621942161172572931605353693902256926622414332126671115088937154087590863624569306252164614224900305336668985289851701662946062887462579299981474918312102444158188147775912491532115295186060450374795184690367126817500385847702289268657480721667510876293057200285977940109727293093792386032011275267175879326598946999330973941355668570360617885335138946614826736671157991251121603723751276399778019481291449943294568463631472403234781540238924272873217159421464578079716975341323804249229200007295073977509829812384546112810864521019224523119311964588286858631048691681321389314874478999314389517080239055304415574848985503920619845566103279213276695044363882173857885502750438237142094473767280391180022794386395865858387866544580881645947378954312902021982105087311093099714738429442604102207458944024649787238363837397602406159781070935947511173385304411218582628267332630849038557102441781226213346021325409089561211042193970231852214822815233814221161483057177521178649354473760099790672756207805819516961908355235987332482799643376053311696951817360011455861195638912037951544489539604047767605123595535966192551057304825675419249187012645527838985167726418048263079482664585616761873466901789954201012337575977012030624604793743339235233649845324467733136692855512271711545394773766491996959640594588033652440631202112623428787470952455958868592864028772920635300446586359503724333934323625995498361550851096835474624544181670214502079545451841640086215360204581657123688896070066316641469610697179251885520598961269063328765043942567175983934172739982635842605724347660478845100599557075932412647864501092135423586314963282104312371355757850589310407782244511980508319444995192348723321838763161722441692104667835437966140968957294798874845172926136842625470041518385634456123064270813756691629186583313301060821389035899607893218765063764086384537364677350010588049272331410004234852032659052685905640300408399377498967489739886555958295655594439493231645987668131855583424849179633132924477924075162693465502681512964611998162129173517061638638506015843357758088821599920562364552583065661129875749772777364457560106318033373876004029073343428849597075778981220394123027699000993612747399153542182272616961471077931252481198021831731179911315047480849254516041226628985693615645646265195643195667636461313011994843459226636952174649214308281020495876867899130914394454004606472803017744240048651334238946576762004203173421621172016052335407883251660661694137775135099001613375380999257177499575550324244361838336484176413354612896563148527648937903017257136132076609716063279018018388586523237404039406640785612194457095267774053324276046148802901934492789764214515043612818387796274873517612482735858465287404048608520163526587423813026752537837787674124784894002597128507743670202066269713921633402896940484561922124431798097558516573638335462837459936586076338101270838979224198393568714616685228925221664527965439398505636611167519325043781138712973690795289183772260957102182053882367770160287619781897443656901683086179277069051428686985441635551690207016678743671963413959636195854698346203328858713742954956139193866988011830359594879062824943565947781533318580820186770051229294464561997544689944779831892967892419185836096802183600914312128968066822412198657985270809868098759792705525915944561053114602651237468175311246283766157926347882738499092525485651814710837379195576347332290305298824439815200322823897863163050639006579180837534534408734914966555136181203090531831753512951375273717944583263624335739770516612377010022556276781257978839516033588646295066859307892538917591440176603873356856338094918869302135096945493215200535090553808062810752343563226744217280434948212033828294690164875105434453514933327902673053814769805807975760447931728632742370842231700006056017698468602869521811014135148958528841824269269352500711585609627786494295823650348140269100826061704201714728300511007365425937985029076482218508324256069553413126400314887570899390169303350934263676586957598915607792435985794236415102213359150989237327248163553226650118293873311429242111954587311977859827172817139190409905753735215623188238621183491094316027573698645479429706933727696937417570596791582337754918478489223769750138938386890340791090952445629645630355537323984738513152921952198418050119151493071792302963953453973396770584552212998944663318253128835442723006677693996620656755785316713537747985736498576402597008652400482458802763931959839136803614274055388042379662401003476578543726234868832239548756121379250942450845428252281098400137343003261309640990889534026884932549098904159756003024588595410710986682867655639242632995777648023696527689530819085892153355970413037286544159156044256651066923809565681473444453800436723780985364136876524868597612604231756921796161936782701735253148632917025676972107241613511307865970387939646491779123861255951279517967300452112206454736054454674292939545684209695856817517641082520267374616212542682223236618341566445693663378969151326603862819486051026478368932138162376096585855448265432678871189683039017074004023640996737617360711191186771017809191380041125938417063823641758646117895030352233831610812327446495664377927148480084113622325599816672964529415431589591223757341248631447980168864317594599460938505986467910315344897071659872080883457753894504557179617370443866214072150368959491840975575881253764526114978764991119630887709101713465127876319010931694901029583012980600233953314594910129096890298021705990411048964359779592508544952541548461134996790542876601451612017474313223633469676155352474523771093974788143392090665687398743664657203301724344507883450301012925677945793957440370042291761616180128264227140382011744450692731235752358180285792883442071563436561491040771295966845628120895901512170207742367836249550837157009014824768791645480848340544685996620549925447499676447066828439150081839993420198921832524292876752835364781273872229887801815189813942501752475587582939296719245771484237679582286411987028592793250548571481775982285037268923658134310343909664916721933280424748912940914433587135458591319449140911755749029636840088265581346109097159269135868317352598606083394204631227904704594228307721373160355892926273634842482377796216209864111780668616185823011319409656390985338979648510016346839583996250399856402915475614014955186454048726086122774284992936366997245773327704677063379306342783653041344368399237775014085863198104061645011226875387205683401303037793878469333942126557164454981271459671674164282866384793187978013345074141926105955505379061197654080341755644435668976628895556396131311929663027515599859400763298937722659806158075751443694745690844481676174013387153073133813315293977178354953209165936016933816297396292537906862463599389125841703416081343753883473204188126991520020414273915653433644412773340574211621032697601668171474852880022196449184298662569034788151269683372102423279422825067724064316863801687687638248944312959788647747682973133713753977741391021211737838286780414331142624457405642590195169730534869805988295194760253806554172880387234183126509587514640502559960544166350743690849542128285171101063623020105780047052286047124313868327714605205729177227467342042508345120688692759017889453894624447329701770604313384753553578348442753424161904949057690421765554430145429953220701055168492060771027868851839038418480854260887054770415071305012679475852056848597808841865641265529176069872960774454136485993975909967698254310834207179971811616611018205311176821913996279767545495948243269413631194783611640013116218788045614414284227438693516694260134568667521618029705644342723151249005432481605483087514391077011259331425273875967636000901174630045760955618089918760581045026069753881794734860413382084703205175742021064512845102765079709378273136209660609026599918482064316302374294437449315148026910560452135996373055370549036592119408178574844044240027156386092459429371894320556586664223421972442936050848216137451652148763823267415886689276817640498673947277171244549011149480092331061697511271960918104287071494599690281913369538805050329277858659521649696492137595894222498738628015678175360494783641120419788869496605857457493245568978297947486894713034825752385802914522282224636798887940413585277883675333035675200761547029493223528388525570287985116271524722855925873674938315565948088897376524816302093782627070448174944974918801569501255794023443125076289692620137817003601778869822239341477994348595707035922870772802760401170423094067614125846373726285143470967711534814713442640155171114916149818771431258619851554955783431878963342043601500841237088656102440973871267077280087737682312978868344890288199118594529248081134603771346893918307192690445274099253049373844354794421284942045435498792238146180992852553642972842397468455920866074012953648485774839858560993058517229061165739678444211539697649854663624994144981396564644156467316858622975004290066025026635884245566186225218127272036157176444683160435782305388242029927240743569413549884811541729332332735579801082591643074730025315968228137559668781545763461521930745864455246029521540837380970636391838276606289177553745479891173437237622990571964860680080585355910720939490192654685230182648291739985869427464192214759390651887454559524950363716213065960200513408857885424990677557306638120514401139358330429959813616774080272594144042627133575391389694362747686532289373117761564707780865705106150920798959374935241896598616500643374264322884149103483668173347459639378772153554383033763751557830588463710928815270656085531436662378104828257917876416045990080922620108465632488040148745069943229986056516569161513896846613115117806425442570355004677096215683842882837263436340160936737062408036920490699383796330592322722260373281145468891993334419198180843070719524326333175874096369820742561177109581273381540042035003369310392688694150217328419912935663261186518096558293114348347322752464718169618558562053414967763556363899383919506495886384914724431333478278791595656602859307782193206161112739546592319307630375788286286084271502019396567500071266238451407582168294164428258758818798389644735847683669571554505098337635433066784506776074811099835189614576771955165263566154976057549480523972110180203558186377666268074194092632233691053247371365559656760415559977986243825442928012079040804773501898137592952315772927877670366503508511532663879718836299747315486008335641849699009978559040629759858292051158480690895219849424131363742573316230197420211432566284141002042707884757397171398940211345958979597931701366890072914384756981180751968413449080657545561646106522611179857539934454957594030107732993040068423476430683317491147192221831360081993022302381036735164877844218660401082787554722695230978141987181980996751139574768060024091245384384294532634206965361970664721950759359728191041994408763128047118080848049360138390432327750679622970297770129159571229550857196137381213325863304367540826041045656547257894078982428029997974490768082072315892417764891044787985047869919143815115248364711940600363925002823537160947119449919466755671224626360694120289695599963698051144737797140550150460528643498552209966562489144655246606081513931656506316289824943292998421827558812587122465872186234828915036417366467356015400827691911680255035858022521616891792054027598800376811209926427396328826419347711000359590650809072892334341550147025428591655637389484029839667806540332281548168831995995670890818758224846462903658857942680561813171490291767198169804726461691378155619509890797353353517428805555055580744994482846366664669007470813117718840519992141498267777745121374812263463412853200795420387122257505967769776906620341118872361468305595504663705218286963346764799061328420099147912006672932232274409455559573328785833624038952044248995722355134218243222548670362468752008101555921699076627952987516399815675171355165463984548978341051563441336091675239509677720568682244438830085896593638184654856833789295431301233966165018662101090545276008508331005793675803743321293761378041130462027856038700861278265831739141174814300696922947701644865968019667962100150432033885782430983254635595503468086365874106415947823671498712510449741456488616625874881636133360901510548028745073526278864849170395171263637920190321297717873868633660020796155506944357724305344654889573603149401640321826669600815019080851560863202401107986648870250060012394976509354922401611422061498423525863918431526075450315179698010009987253590770391156509601904941799848474088396799679266572498532464280978241014828763074359109155916426355562780221820209733585741361359723805500196712118853432121817396545778676166260077121546256235783909840747249560841991069938467282431884040227487582813318341090613057606990555904068613145619218265099232699596699815496401585614937108679746873403895579285579040566768042181801691535643645358825587363453896681954105932417095976102243111218375708470231945132902507900969063553797951282354829101150497718355736148112913891558585567719050194989831255468478224765172148625492211048306045513954302377172064753885727630761382868527468282318569313012867252610325402008567111682045753932325587282414686754859210391171685449867219900056189274502412031587194822448892515953397495044829352588133392744657915556352376017778064214063295536520617191467990669217351682137972989491037929765196765862107566342743843202668793710218367041692063492829737337390113662994946564024853264066910599148648258743649612157385113944817614188195587916085607530153278130207926648721599716848939444427126636560896760993506519003264334094449108908708847366520840583617906419910974190210973278159455981796519217683006090298374571938789817915301371242879518235360169258277791562352151872310107846603260497880307370481085548046611018239565652049556356392316806999835449173764287196613547029422867858806941729491165235488275879326023036311525841919135024095117033118936110407431418484851764019285387873887759293295433653879783357097986544353954378393951991076534947858843956715266438390212247056622253976743788166911147637393881830580425116770283490911186853876651126487497823383102294017587734453372357163586431866368708363114860511244877826840680058453757660758230125114743428758602394665128477039842433598605516309668244454592767860072783574277218488430093366096302067068385878996511415721492974104410568308928966456773408601363113726173004039113521013324880192874140571004945583242125507487656153368916234394546249934563296344597275441338903385392911224493941526959619319743328185864298733397350456651674378240648583723365080580868763295836390617030477003299930779765336195181621390553096123895070098179723490433060305837411703657271916367382360989505678349038191462242716758012745951750299752414970317363571031431635897143492925118504266943195594406467634671765890272173139578790538406761324482591969390543220163665686737409744423160993238536251302680108380619362874155317589981931337335602114811112459491223989075988054757819051922844224433781825770877917987306025855430785793658304385729654164695578556719838572105784511953501425314068104744529472879084517617507439650198397795659952107604266497863231489463440263131672792643034538094363080182346267388152185111227346205763453019701003165920494758501033335147797785558610489912801549042866215800126687130989769468795102856348437893776786025010288114272183817271590778254101594213394809492205608943218317321409129649458931385932025925385977720060832316616109041065508664904050484872313459021200140139415666239846028036423989067461912858266998874406053555047014516809511316503805579515178844659810665785299073249515898407085093730549552137050869892241053980421173560788280348396618568805217667894091737514631327009713628991261928660511201954538782295103976864237177754671570596061120533516957155675380047921437063687332826272701438546709275263536429329088781256361344273968288887775396289335640956661869889804586824098747888856859243716575787577289790656241565629963379438678956731099798067656636924696453961422716957821719002344238935791458306998031024603716287771580660806470846050227471443094333333089521245834536248039693368176159074258166561501343693026185705990604892482924875486459735980276272633370503753103870960101886740819798818763788993988366473756007911181674819635725950603244151789692091968473624446369171194541583085134625924181385825147266801469269385961199165877892662144833244423191711116200333524778731324750162776633920482836533613667843158709780814222991710209743955319394507227222747293007092490816080915090191880408593239944248072550958716196274425646220553717076695073471258412898680828635359068856500615651622067610908455327363036241357476052710327576382674491306611093131686054360099509453581602089532396776655986414944067076620839896587458323963814636778374435289940189528988649395222762315910742240603847386402965701585996012566471106932673750263266189859201563377170392482240868970255011725702291141532049793620284343123426023989164108346334462526300625032367047489409585600397564192552050715273546511866804683887940192204090972445478263086769294380781720496459904759675486160486561757630471252301170115923694526729054906420404443280126608132325133910657278560898970963373843752978096428726730968282632428943536787803601490512627031148186692178224971914961416707972147359556140318393485912075778928645332260194206279659708696107001508293332003628557569558821253433053559187938773811906500212727851894956217596156432437597326858247329775186330545114050076015875574141129295921633066502343899831269949364468711717831105398420051959256055874116378903135517611109465189657882367110462438559188312999254011839721030328035848980529180302081374046259739826367036276413692834282873240690080573498684011514288426643738919235642635892095495646751421513411970383619816152894199598896566506444660537253692491311161271572417694090300372265628599132697229916854676957813172767194541002247881033115297833378271293410077095812237049253424551325641627418289792919234512063335380874038237260319682332044078123461615824338281319756430953753070368030508621704212651337662008407695517554797458786623347029062276115436284903992746552276634809453832001993709114192806946177924627375598224302671625877319724056659693601471156296982695111759529410399548394164730685111023233906805131313232935779606161578402391572893779629795886396871121060743134503708462626627378700409657404433134210695958393591391722756733367426025176106650448503393415055850422197019150878012333089125962431110512294336147460577546580757528903311414438764134045356705000041013408859480687974261275911318901693661269227077014216534287426664349113525209701514826347103612086121878489739372156570837142197044219992025096026293223630224035362860975598469565560001108326679070648322631668967126501837937513241757639003181434699947525131701500328486672981754643601248687889659115570055040049725015284066823765057253172095870699464519995874172459865511121965562681497831025163195628011242993096290582763588594576646068590941325933597621294156816057384039167505891551184604730986521065437198625803978658787254322279582376393484320288037538451316891280565203158694073477339413522020844338843592687657522677165131948813793158505127715733317833881623306642640813606652431115622553416760696670038848757049737423709748439729206442816439806815842475869070185854375193323208153103017429117533973370680259793446609764565057601158170991274552881250991611557241944368587665199917715539416519197500462155557513985073345930845780964428998897957105914361117783920709585911708215209030605180944058422320969779051035336642662484558186955218939663800261104978255937356419291347275170358950643310094379044476688810874031819406337452888074029610548578898262870969842995248691584990321346754461076724134479468891841417049307247019518802950308120714782045826568490392228456271475160633081082583781885576343312094845280138155788195427091325154867558249571322189822929060852376045760346880618261978706112973218489634798456060644272079227227987973948301000638084550658328937927104870524715817556039447518283312368532232033376886957384454412416772686163470202923376034926545521366488954151830731912485266497424617460894678198655275206599375576234718916091478714464940001139922649316349590384563300953340018979107774444602909768599590105922573589774981274916057002122263209020282783246267758454692944756029014901147553131683583907156797492328788699897476796921868783537838465845065042086408065653025242856985023554603622992609557190096153207976675814324101964742071331955468877484498674398034510074991104786527107161727657253447851820228308811851479276313658158978900198107467008113732278959298693102971338937753274226948387100845194240049107148185342308631148859624172809179233120312008390657406579687701416189747336853013639610870926571405172641101681936484961753413215288843953607162388274362287040183805412804760141414477734403893097409339905886739788771426946083834526411349371399823896556152304437740031624742582764840245487381338491017329153766712235264173593638017669630825990339704358690076630721299396142867900823213928665596312650538765768724741884743369727948162057687107230515168641589182738409532494472700136506355805719884454320669534865896816498552147110161850310587783545407662600445716519150207461471630072683526475338228911876635868479591267402301193587861433343902432443489067250213610570742437208947114651986042676196767805366903416365248304116291014634036791179437749547699116424869792437934895820167008592484935712144695201429452170918996379463957811084361245147272362944862866470112555084507753850417329524336469318213046057263668253126388230712417989133998275022167669580309622887580100374524813111746646243093232230465335442942441732904139030420787604855416422790869896817486711975228879889864977750142799282894674921252205276372108255248559876554677058773506256053823460926294545332808872417509477634398914665961997985854092280467798218007207856871440336437374499635876080942505480665391979729519468081389306429260059516840854990378455022148024092476905544740642648711754653982404591819136297502615830730546602745497596524079582057764928691745882981630180304472753840105236402283988712100813022102184427126730001470452874709184665735890132056628130194552691873359531021413950249335009375775542365109323775310110451287297369467006707983808742801436346515282987104571099002927085719358557364870446340661220015102039861773789259739939625632446989025360808766017647734079467181022315361243308680669870274260809669717232263016427691507815658308005703773258674104490944190383419199212075376489251018355908786009908980617709910886888777223039194203023440635102923485023679904434199847476065651294974793205083064649304100810937730175895789862118099659604850704765531461879550697784198369223271037834939290086086364151244755836914516394899825322844178791137262849083002896537443211642022870071752405080623087589380492585446544348600338105882115049496294682205646062461580388165262757850946163454418683071161526516930163734495843551706076746211835553596323636944996540553060834645974885334460254931680570661810609293536349129640484772935892650157198282812564590155641740266005703241050496618697301546178030515816365884316193221007347157292060229314725955988794246068755732003246573118381429989678775418676739376886020181042897715821456526951906144385193866776355470106428976079276154518490131434918515601902098455100638404648116673238124690726872417630156096310418973489721446526627577814406080800133609688746626793610336440001702163662426762390466017630624458895447748912548839373428807764192994135001608666024442955566808362686681796227969794019431339374252888699872843359936345443613414578430152756521762380501478674765533742536906835458692326701722259475082441197899195272005889285885518483031654995920033283934422702967852988511338676718428340592812500960592720376329714912195287054500182183036241131787283831520344340001233810868221719350272373825395373062086916095643801884459595278212330814586066886473445275118614162064432212281198607005109332593985645250912413411716951336020692842297136041094633872327488259725845403848801044375745904932320482428918337727715515174883715166146057288609004129215160415122854708423718878994939586078937943790149340931346907319066367990624229332993999392928165150345945054492196870774041973855551942555180883379243885729004900809031677049677852088313412848285169794241902649780072811295732613068685827115569979077261909139023143259731707359323850953294736233740998637214296932645483808247313266039850779374961435278907858561319688526238831391432927665901992989932951688694860737058968411524035845108709563893669646831907824642938007544147663506721876454156807501864216829322570019751009263293782759699018405168864629133324308567697397649006950711020774984946532354836227856733135178239098895335126152672391192334196700442904573768619512184114171647890879390973930112287970368577203450292638662968739720647323696585458466816957924166561702434446936522518965414923145766722929730743017259572914383475705238553123493626995061404525500413755648973185432211395117188680137364123496976579995660623314003510747166161187064424226599046348978845014430339289825444405345608733115033826023525750112433896859157771281080073532884558442077944708612892081497726323610015819886758194753110914960396175519177071596302118201272996625581934744051752833183572610414383148540619224563785063558670597438040143747713000388609341496215297238926611159721913007711401672437386523754457091681136158148679936152099273775568847745719949257622478799276802378028128256170396681883377171022830162514402948530297204585404556059195990355040480474098085526667035003048837449889702136264510993208604178389261128930575679534645290804185431423758740471063533208209819711041455335728056339623161884074479808647045417776095823101872947372133232323834199533405206719867545026936407565256833519843965962488510771858028412838097135275394307242240546769933691884739236369139845408434799473993624887576242788120769821102204318366448523049273159618053282686526365062774314224490929061548067341631774428334964297697158233300838843578439584750256356706436516668358393618839547336307083603215412015762932150322898757303157906831478522191864443659492181269809440323762566111038290059617377206154135320535084177199492854552049692847927816515453375914501710481114260904145782918855980452659916680641167771256770394194538382893859367058008210487466804951152221103708364728897940830861539780054665698389005192841549256160287569805574609642295879570004151482401480709279116813514247176666384596061115494210445951231276960732821654469440806064432254848056526463940359361698584600382987184810086600932846236702043874831725454146244244063621088414207657981926841410473083035504796249883599441271254403487033329735428993336323388892052772573256447987923283116950454140078068958812901021801952909891224435647501624604814340656103429262950985047732043328820885456775390060288043268498487079015443814964215683045471115684334379496927377020541776880134571447900450391564197998417245051568619007476796531586422147575763902115018575967352047894113544362324211946800610647624895469125995516565092532735105946319385551610103143097380032712548900632035078656363281409093372082196863996278364781115065868515355430435964468878754442973619697110997862492592225130469216969185099130543029409850751725572049231575922623798910372973495627615385391266662709160372025201730859259830783039858226248587432914737267614354609663437734967562370182952185275890571528652607987392885090848767306497245675553027897559462020902248382099548997397041519333918125240974377005695355342980273584939112835022780968685778926628532229257266967134109977754235801191355652181051429201086836821966538152051343959148099667907669299550585117640376197974566221383328177149630630856819452070438462236273598660519211458419945124266413952428202678906464695098953750894035274960761904265772496561118306706661094506649778943853910599826601598748575409256741522821570756545424354257072389457422976537755840446656874176388691714118078515758198887582450617266041831884114172528960626261726179609332886624725762333831453229423733152406650216470002701829674859155492337996270810303858203372947065526648313675334350630977788341650267813059527101647014602141165761227485371761080026255248854092464642952478659448036249268893976128448900655067252525450357460714410146775566213593048289591762786480239480518759058290578123814775636810737018690268783508115359743715142032585976330748991092728653222951349986873689483932936281366346752354802256606829641121129386024431048294275704620645900134180016465332608637676695675076320244851583856076540538547984631991126323101378633963414949181322728818840595649130522112750517150152355526698288530882503822387830793328261025262531641955037394791275993554856851958805411068907723571955582865996169441327303536136864215844921918427892095629265160586595872722293977669147285869230258136353729204117500305609296525759099718505294525645776937669725149108281538134039257884325896114308771539628054504750610236418994328020712418573523642566742013579136580836041290677206610722167786957133774259701006048149500893447757024696188732610587162278826139343618808697644201653324982472838299484239146272431932282999511836249828475216443763823593405767665463998882925476429211933833724880410277589550385757412069938912108430908740436843140194779732790303182485335723606999115235343651864624607664808823948780742161741268613553574201752388260367760812526689140773091162823728137192434161918226613590485065690719133030633620105658146845093120467171844040477088097964479031556943090140319940692787445278318361870377994663809110954997500791283573459784842167929544297815782430483534687472688793260737373099898858041573390055737279073106172604732387681248353735404331833006677204631753160274948067619075278012999536074988060302541506580457272636146084587224319858742527611047221773057437015067996271547342079094218677171672443639406912102109223128444561242257021533910840078321054408080060129973035931318842685596917365890471691729133514511580897357931848797248442025116271733352524327158719696453860991208301324287373512416026560592149197312814533433643130360040870245977764980001774386444773318003579587244620708721680537285393568025096668442102712308403143277851244623189998705766459720026069619055823329778710343095770812260544138121428823128954626763378221334790909387763499827608289051406771259547384912801590985667821090478402350766733564185007333007854636516023658649083299457590376907833494482271192519031074204679374357957783909530215005772335468470439191681465896613632336243754940877872277041044563861527495722412810210813204871640240285982777793241306133735496522964651539773904797274691348071705707413855858116460356326450548799626592988043553131209444243309804867152742658783275856796596120798600239237235401022862180260027014248920310705417511039581829026678630588653294795724162821098507188360475314092579620963804040224228045576580917558063148871791176101787581068159631100934461472369046305312382847707092120203757143853045378660604733592446069054326709933224356788190659657887335858781376548131612175079870151099082442847908576623340693618152619725552370736761349281698588350820089039747959648259238127883862702332869824813935675102521689200507582093945532188725619321624525546803969793422794808085543897973288023552064420063310529773584490172630891583961622487172944112925514375016736537733457707680045392839916963090605630414514070260312989771803975688038455118516937580823247536179375105994046572393690485003318250752624058144622972085521323170732361816508463854575716724084573778139852344774267363029831249440915944613713545120088607696865021044007280093082876894215144052876179088464599157507356273667895983659479058160617233965856731913324331110133275292768704574076306168934166994758204028296290437873375060284321997238048252396583865776749532868987341031459791178892373792429346475572375533083224816540519152806075072588159706505929461835534818508348606505950419699522527242203081664025135920812645299635195599865476957681338825307113709020575409815702499874707102158862480050612243122867655603546949975769788188256796710682662177446916259485603017376066821909874783419140217559728520087987391887935357137716656822328973032511455129185060169666655165916548292741102084542996412750679159301233897121762393013841101745548943098312482138988575187289462229287177303992880461814389610927984653130262723655982573684683231053101382461235882275868085672705025247505579124057861556408849878907992380775106990115938321631290142135997093212344159806232805650095632900789000404471506415211280955119863098410477753437143377671461986287223205898702102739822782523960494427328996426824911479267708528794551959090905435666269838052468541855611344026953390961428058088965092326729382056443677882330432144028928972721994549874381613063916858359525624212500915124517671540406124193951150614950002884716069085132317001619725517304445652645349072912862316551628707383480439916354922096820504742965809646604904341073241151894825511490136941041107906694485621154322041078029628222824488474152588005154336198591302761514611041549844566901772687499825950926337157928079056240265129797444424613573568372749354217792507761600055917963804339564686744758288589870208211398877873040294701100117532086863530108461499804737317005809158470530068776541996359702428105007522225044933774934042490200402091065254512668547519380999206193206396624912174821532066581131818435302679556613949852908984420567921464160248289683840032150876751430958482893008292190642613304988951867716558753600548725536404545984357730995910992454061239971765196760560534802531049505630140767707733131921984025308475268195205832400851129191896526279450094972911315348599382906072539201596050055135172280574000042137397858854067186576827648726939273784167688994262366707610020896377566096979171220671649202300145529145978286663612940377321714609869251336738300097929178468523481092427804948598653869513589313656787751155294364333461568781844830912918787162173497492267575828605196442691908476930533207872430298911633651149357411698685375346233420903503734437104010721777797018719940052631354779145150988091405797347654361294285255695776640571371488183104403143499887513493519774398226536089454059933720166138768600422810138168112485908561929276584253035070923254069686333142925378021594066983249476841447511658501150694813465753527098374571341564135046059106879220156963782035396829132902463855598643820901675475137901747468713183103708464809508263077726397221294554922020654658890679523851323090967090870924804415223236932829235127518690767729289377819843697289112754029472095705762888191534425451663839487414251646049630036858375763688572534463843314995232950949492914214127722233297196208177648138939483706882500559829801814073846842040632671732344100688458711750690406943103147756683040407809834870613285039971601430659981284497665617555980668096676092540151768698660628600613759996569515595325341590118094778130961954224854299033733488303912634127059796679794839263467054842163886313934834879840354751013174279430176814416444486006678423259321663534665584120006962569263874585621282267064154913593943104588085775343760378978513849091482872775123475219311637133631957632270740291523762109989693741294879156143615223344282284521798680760381586632449293592735401057633429372281818239695738788980496853908160812848883716075461507398629328015607493509235626272399238996504711272323138778638315406839856236740095425978806361360988708402680510978516040966172971336054951457902358946593538386318180507991204016016335198311294568415431049850141643017440972080564084110695017873507219033158115410770831077569076617108617608877421726142544665269709368769926515244209144428826010138718928627092919586230914949969364773930915503109291176852438322900688410073590382151463202036031448907065951228622208779746354636962434815722606483628526390835336347033944518515274816385763883123310941034043653934047390260279573996620256780840901817966849322548116657659597007451097419932278679961802433189112919769273501942804374373045538721660835779503014015100326062578434651224993817838460546767019026712059102132413668598712804654121999176405316876214344061976273592190177226457317042374409231167612287873422201918703495086020915799215839030497563561875321491053282653591372763922316840267237651997933043483855860986188285678218522781204797919328322519328710042433888573729234992965207627879833829360178341759063073660578744598991371044636549088998865427867446563923620491645895408689056013013153425489972088457977160523439833806886881171301716130823922075896206939990950286082655605942748264649358932956845824227156725074015723572544427414193500674218748818614512520791325975304052128677157977222499528846138289571122664381816262218609841946935692590945642066165960234779204531313152715931210577852673991144649808844493596827154914582581693420990273312043686163974653575189266108415388158893729895329338032155694399448648051856558964889316800145744835114509129027547258840521390814758473766895660291897841057048358910543303768040717271942745238753023638046013433899836664207727846716639658707669172361657017761313978004820087216565753384673756465101040570142873594159761022671135557388003226419584467280180833418146091019185500926845032131358608981457149083502643641219273029872775161314660806046007570226338475610328541806664567939516473573444463341518379277689212765219972387049379500277953906664403094019504278926878998121018430740997412016606777075386123764644101985154868130838970069875902638927360698515016807875643896057219271297142107790668649816763906069144614774571677330362284746871053134586090401721569045841155361128838582934960599414348494426028945202513467220334301164263028639661006767473451053757837686619351874404799280446946550383428396660283687097857736275680461462888626037261285982158960455966588102463509794099590078368892901762161747217605958810024644763136516412823388957381561092566552028931109397410804307507129192554073823700180054617716132145694031892168577344085702193788072239275912520574824568764470990517162994743491250372074922665660366311244076457591940508040512681861985968341848653368920819289105411641121389031444201877089521107991205335275238506627933312379595570904710629230599176471293288055331086446003015204782102891973340826122256223719933723101334164592453536774336884318643342918192729622975613073232708040851740590097938263647703847650963581469527289204438002425757561758600648810498507041683886968038227755772460617147123716384441340555566435732479483854647161035361662499415085326861065141515237438966463857511450686480492270461753085423398664235237246336759748495192340216139103155144252301118545980664680135527271739477737696242817123973901780343918015886598998114033820920869017468832237870918460518650342942166952733162919188290083748154220264535477117777908471417897186444780559214491145560051227474856698837965275823131774620439560931759646827289642711197270566174880461329961586948490732262496306463428949955982207637765590580852953011626527316129663096418667623489518028497147109192100529101524056278872190057080048849678996498491811254015353123658558744547488201283821462132957859136414556314816712612053522217986371576317822719644831187776217294345634524981992814218209146424943891809738743537629616319922708125978481243787064924964418125236882609484865822648898844356390426412409790935823928787810533440593639501181249688560135041867186591108255387034457714948254288572477930125431784037867237890577054247843708387235461837401818261435388551635803554281422938513627746281760311923549424626912574828507074393048215434548722595355427551966298648527384049847397514015133697526514054468719236233896821685852585532268126322260607064437244247292735937427982329830995647390208773147693048060302767827275411330311794221791847373313142212863811044419824302485113156842288751051483585157219864499664827165110408854802836866699331558215294677369014371648121152491966894399058728949480932124147290321162359795625510360015962863744778847035981312867636270361803814719741522098552249065712258134184303332398441798935660924119914346312817044109166460669872490093172831831389906493637609330587986684868984434632863415073609946277395492976307523110706657276816239221791253282546386816010976388491817048466508179501333671368924598447837294090881949605501308484900610515620367622179813873062607734289240648829085270072437779752807962318200983705073480289574759179960689409606526423495372638155195057997368396785458365907204136721591195052934107700205704925323339409851866658345988602446898779165295434507689361800083966867661485600714188219998007256624085625923762541359134508252058111111172994718518848636121882280383660600220687459084382228431497901853902880817886382116064302131699007224402327606100053285603506314594386941051867371499374814798902860749585099152306597148125445787352754630102040498218933659411151226050297969419230078858568221103635767505592454761745248598979003256141763712912843142174020898068150390423723196436525049331095361835048767750817329809302383257528958544020756842190523605683612122961488484624427811093393765919339228192081833266444896960042036145251505967499511586590570375146972255965306236442671822108170038093275578163830175830045038854691853241342798155454105036509619182423698847502043938052382592873174835442847987008095470115323921443669236540621552624971012698018683676772487308585667681653888694229672940913082727790025312280725314636610842454088477289306023720604959422407942308689640344084866412350041375118533711536962722688591079674550143933465651340349329688842619662852115055674867648737915087659760635976389267755808175590894903815949168659760457992827761025375794518097582006584539618152709589478064997038246743212456095065639782927616365813025875492348764551826221344872102322677823997288325943077712096713813984203100823469282264632089482021552295826986893370809843856176354483946790040714860302487730618119546649200261221597654778257780151571545931715397803739287804648755997605807013711836890229626790531791904164938393851477375676242009600387886334740659772658636128669577920826332224327932431834790817994805011637456794168296084448145321145480588763503071363406672738201141825461758971615599746816834245180693106342296414227423819608420686443937949220888036334467389805416954862737086595511534055843848893181313455294778145912025225134064464176159196537914100760514062928202347053706548106349849686420080666301552799459884757658308970045935838197503492385705626835402117346632750693165863394743076973270321666322392322187546296502862075774144775027775357534746884961318197951682079765700515259873669653163905619837156150659605676899791201560958957250233993123830457708709500172574045619344234874172296552857774938369563184438756113005548361252992095212782043714703741798502855584753050723438634038853512101165994984767837703581129647884887933200696040681957175094755116695957131652580622602239822957997846053592159262506438885328594554548190533209689541612556970079785600286155848912584985624323573553068689344380089272008724336387720411113821549562565035803288118125028471292787572028985234636618014021407192895093521486672308224759352421378261301005220951084173038916369809963899629028288485335267198798458866569023892577516506791544658263606206960870216334269269467671007656156961565237352943760712621663672825803927915953149206825437177887397922869679466913790102351017324694235241862047518057523355136673990782626658292366502508235959187473834047368750131251118416762318612544815852409905762516051427957781859205925868487370457754831566335522980265864373295451426314752293307165812521621209225684308824798280514124799985235767327325154802563384270643916781052944619684318279602627401531183431657147609760112283058304899933178322692948659423345928484836407324965724695596023640805700940806515614935429174187141335567307761919291995009267927993089695826823218967480769005952741668142838102043608825856493420885518830642989869660983278412175288121387155439194999935449275292116533643598094808962720600761149517628549831999749087606181733867462653280570336830490478153053850678599578341007630743542537659140965430055787845501066001393791980775681532890447706863817142066776208331888409709691576592224276340015806999328965240353172161396211769244266842796443617822819265994044994295535196416393236451085784981426559771178656647392875160496800677641858405049543513966565271771759910455975347204953224551036593030524988002086515791904261712595357193912122702956134007864653352560941627314304720570840249427546935403227976237570655560089931455866832675447671350086139844332474752442150397168117640747716661490846876398454934792122888708961291962603296462835235113488349264725960620222493531562211751025596545231606624144072578969929944935586487309273843494030864204995588385627802126141227409383653616860513593225559292344001369200266739284421345197052468915184225165205517022213765630159529127579914258429924325802377521647730572459235536444598404242167728218254330994069394162703831508708194606085540979899524722386295979107005387995448351476041074772109041370080285379669573358329961790144161395229271543287342835675461383901346454479661209463689865913235047887730507451505485667073977677972972898350140607504141376085400214634374012975310681998372367306959338976326051717191924909256480388500460978033987749651556249318119897059436501897756254167262423330004244818105451778733403445798297480007286539419863847719201110873681419748598020446774809495553740764890243529713804995967058048892403718041804862688474596348124348270092036582155349272189196741339907905707944889054137056343033104550759668066068872532322787722162472622015000076213815007766094827846464470545470942949643817026823645637898142283720208203243067171261767620237555752392384318974488151862078452668725340373920755008491562136810637253436132411595860399773767655473588567187260826188138595140250277820999964010220548853448073682665282584093036457139241171378511177653116999019924220461829374141564015425824029485968893891197349233740791222969420082964620861117774324073059567816861665086603110540970879937794702656351210655040228829846707558040704050621968319762751586158456273459065270505192975488147914861453697088364689500904134969850169747293473880006830998161658860504057662717018307042861411982908967783563756805130090743858670181306620514140108250931495188453106910773055711003425360514390842488594449779313130694167951025820168526802423260764611115980075088713941871727608371780958096543565132823344293275678345935143824856462805131025405170589174616309404951776144516768516687101923732576835895129402440959831738703846846585100804423940671871325625808754131342704983370767636248796602925680642779979817945942361950711711740260523717165741659142264258030263886660187285564020932484436298468130727226492268342502902470237377752518894105866889712807509862608022930103761989482838092903438448036818146576247358231068059069663282772073545836450955144375815861056763692813135061479566688877134755805799214313313174078405819924140242700157937194594833760845095907508610246809338968432109304969323367304738463969119440985867491250147422803824757172276640429009893693221983344239251652715346475841139685968729954164612393118276618045840399927298631032235785564145022195498228718530279550508023209165426081753596864416466666165711020975341843399724061181576508074763330572500798941441245463351930630471361617268970867497086579927278354288223973610002241990526188849211466687719884544101873002646877073921351816801553862135990936378069196196505281827267323094478774259376221614148460237163301564234762222467744866162383521584288509529055755595440207558135285779041210128786124791218994937224406626775005153433773625293665317361866971372856500718272748824155642753786308722091450233648395117030421217278598657536395027171374180562638047224891547217853810406693177804842095925220142920011264335469057636930218507526443209216082816654984472839168699248293547431696314219951757689165489046328480645112677872761359579323998883866557051070838588133830644010388972327167968078337114605774818936776983394621136075939557235045730661439896069161053423107118408997621332482550698343265719828422696290398322603769181930583900195524979830229662651010234083884889516359867478319251944623075745873568298689956043439947146317617928272518832473669869679864957899753579987175746829622310654878386651070529213764531425633178016884177644956967207895372125352398474970599015275297116785098172260776003649013818944946634497423173387465203900609935172049994154574544117525649301554281773538221018271349682886793899976104444722870326236109472931036348369873612226880648903515563129204022981373067768946629292751029688928650421866637624580962726233911570706473455626717492713786916386785567036150747307850054257148948613349201163802836958026050473667843893857033712450591440228520744581943496479656771412794601717100051421651720850800350472344681422981907306403844107474908714377512096973170296863698605438185043692292471675787410188162403954068901453503110564357833074196278735516760462827297649985775321080845961428731407299770645427082816570739873349252803080779675393001620592334425652855773577438807684031860938452662578448467859658841746250388678133888113860092779862195723489352233851271580944291135823662781406215206719298193688583188306607947814831613039795629214982535528194004657461471434100869933796595583674859399036931334575002956419848435553363827225772877710359703080202060856617803335580395380692703304314619567030784207768480430132616457059656260728144737054610648904687228811684536693177963239165458287185498255447112794422456152917251425170122524812839720271158317504485507039089254317407405051963679814959490892597704236572819974041328690897946579601151875684891485412697476016527963500485043497729973416652103930842427771891498897597701665563512913510760808827497777400475779513704027965922678909313563790668798465827988368437503608867144330646261327794888054127587461126243994580114585274088246939859274441968129044023385180625574997218336049938766184126311835240578850618637696739572103964145209770046526487992008091651275131145454432546553485297692563213939194334935767963575097808113078441658856227680488260564720342932188182784402177529965876828380464920057806681513369999967788095166935736456440089984868573662382036334866683020570162340493344716555840431403052519344623963254853533469807247320546995819559038016826222507559973860278450647047810353007571385796823171371430721386739331228370130810125353019825608409088937738607580135262602721631033558581330945467307727032778367986462279922996713536089566811442131918556796077232406202747979067293968406219345767750473087889140770899112085772212514836157354446939138269404666001804714902165052003647091827160396757815493384271196417339075546522507941805816190291698021866429723170456262988346845375851861042029576000759342048196959705531022633540267146565774749503207552511954744133861702717546921114818309038296706916955864816749055972397949365003890158540459231807791555349880625614094672990165648196272954385695176260543143388076700158887881164160475468037320449168380108167942234211938973179946180592691921865468658522653940050573914673537128602456574590421750796849925351864742783290963833422902084293775110836680761539499727107171424077026264105643763869244759488458748162431909637786077741870552518713095824286968239772811559760330652196479108577438087415960880599185081284818526336055066932052459433510332860414420003703561700790422355546692487168781889322560283188937918564926708231718890103636368343212725721235710598467962184281279232229976295078459374448320010815176511203992204433764700158584945345198669386559530264952662868562525606134252422733866196897264128655633158858680804278467155208958193759033309353520975420898859394043330096266603049162983738430809304275438958805716594808181093182970440620004278343543954497451865054838522930282466009180770767208744778709557320653944600069526388622958910672120112827897519233473158433205431847582448270539408938000488458811867811588956809681512460456140933131869312025011370538661014172527191410311264109315186454690382193367885273184224197912182948679898051513901142715321342683762628186010313923412823884271115646363220029206007091119380800888464910163324495363614555989591425590979960104691779356128621278900348501827356533114270130673748834048389818418152522557142298046649316324970118984204574216947882679056170649374029091828375976368015450098924019552993789619267677590689522188335571709262228428368278086646935501260873408020356281936314297526020282678997572100939408384898765179130483150464183191334344074632477345697573718903913783057187689928486873496262007370239495314913103585997001972467578197050105909459078419038294255114205454265601921282069152263279864499333874842882218779702862612198043676482074177691774469486919718742078152849255648547084668523714306816612557076950828294703755856078489383767823536292233518679651278807061948255538284523422954818978303436427125447950268694196785576886708924893060314073835469928659579535541565468473628709684914931836191243404049335767823120892432350564089257179857229880961882334525067708171542852042749929397304456909473610618778430162141311048048071921043614273696895156586576785409181006993592228509517461046138302933900338759109301858539387831825092230776880253527847148609797007077540382141941025821575592455288064849667612771767772826974002078116448878482810227702163083617119639852679201228733578338567771712664977955090386543786043649822426761890398872153839446367943954882615811813034880379515320973750865779448468882290483240884519798345893509413263077772572246988177462763535048941599872040780759927305371262942546000993320388966354770224306411634773067878333792502987578634849082962541642383453338429487079291070408118774262189080511447949968475626419875422674100176175663325579508701117198298944883624387795763255742101418776991083729648038920992166171500706917224725959080935591147389075806759430361244988696210436545401180789544089752897013898695061214520046857022412149636705250560362825813400371142100862468815833902031175822507628223392555076189916830306068024098466674539881338602003678867373301392342324836407050339466024915113513580299775560261458094448962031422628882669417483696952477095764637842826534376451757710730176470009449876119300140378886340662172064195501024550548355746580289789919815260058905281189424750483011655197123934339874311662933582988741945697302546739730208531387653133439156143812695316587319999750500869668165756201975626147023278580363437328978960118604378633187401989270119665818559546722122817989953186230953600369222171228994927525107246278944922335866206108030269130301278915881942043807168869874110831773020350191356290036764461382180881610754881106738771915297695630862098134748094371899960874247869701293339492866484103423111096354740225646384443636170502270168124625529047409811484093332215961116603972116947494237461215537480752910248048032935958436845463011202387818063848586982429509788327782689751283653875102418973315220504115126827245814602393183204905000431506683404949089871297378750990825933358668742596730647712283975019663828770102402648180266488533591814864344899651576572745679468516595914235976481031113727833528230673664611148416836343934401354433191991546408606018667132206636054848007678316244202659144802241592623973645824047307005267904348429342029687746987609359002422853179444478836427623157324794729010044239404559183934288066923267093825067782726214184381641168106235885081259929125147304013504513348933922082731744185298456658375768296956285202791715676176733420609505751586118507797322860632585842925626941069316797259784206941719954151533738404843385935691774620698949109939056934159387637300893328042223107744952590050815978923574088542801741422107487013686612718115680266958299166538004386908390636667641340499601157292213775532368162590633765230466179168129266688928518439013596208855110429217203514713151419984258083339450760500571190603221343285038922736107323196894090004922557908718654366492969574206624859018169459625288803550436703586073458309007744070756137535232959421912017866214786748002855913304301288489861910138741309775869771849730979262593375966620685313236053296938371527192016726558555003490176077175460440957853751019450143065900659057727503453031965725383412458990067040142184452446731074244597697716166814225728485538720546405878919211928388950882423065949995482598281490700949667664915212182339507751807634023382229912685184445394840187421104089518720676885024371634738356426381147911541800753664431582817474067301959968394113976310288552014780896034900369989698322157851029471700125526043673270384434020676054738058719082959807841207277005506470992111828043443267968780423147671339793901550659473134759879775717681812329554818699821435073419871134317127246148915446106784042214646125440682452964148525159434586144752530008876233882156533294007232863377928042222642752790580660466859840145709978366148078283977216206072113766343319805438019181665549211660665194344468164500269758870067793517987056453218259397479000179744931920612310912389761900664096784923694767207776650595777034617609702561279361817537759567166325471256216896037413992402628969265369312191654635956229353607548727997156976894333075207249468705540632117841543435043404077733184180388501392770199215159810775389482575668837902724438104589127662546422784777174516516252872854103213518119982288216880260149603936576950493259560416357790017887979320563903487423377199460777406253931632348283045468598111670392682650539838015308955488072346640908535631851401628486395487628143599421892547180097926222120307699797451263799261160966422415410048280700972256650336836961443819655300151929918768858055064816657684006238286191494814916223356643108523380505532830336777384915343355089501318199070126862367567634992432228685860231031412253812940581898150228022383714158693239160174919884963894407227837335619820154059899022861048366471638102101099270434627422779086710542370873356358354713718216942144588854856028659065345415574416347532165163418523474317914850441605878232177419530712827891339790128776270254591342798058455704822028558080307853732739510118485253960424206359504454870808764673292057295075767102882634086111866291668704008496211049166134692374953294611845209336261158773959995472761338169965901626234857719360497734965307784391210655041187006870110456366704549986015736003839559003543204864722030864795157176342125399291730088613605722944355921030639265338984023309013205250050159845307972042066443327841730020300902427648457508416761314848589619459236870693048819492114507280825511202080252791019489442073490586744578488999621937967251267910355247640060823176343346754027902716143874608290947295280493038404557095506500272680978681478255207776073164167016376140798916033817677331449893132437616269026288939064580119909021368789223799559908244619631271993850043754954599796217843870839089003831074021722351113929341069643868203745903205737854992655476551443608484517727012165991179724160666222755475446913926554771945048360311278967370400385859575010775752729750464691713451205140144887362173132247788193906281094929186236404821848927857482444512556600747486020307178536429684928696620703847009038299283557315623112013227330525605517964618656861623747936743176862077512175384907979067411859334799583280696218547628560328618391678358695861156088357396099996146658438091179128236276119320283037408521069027492804992046696575961558546705112280418709229436878931849024477652579298156875221822170907450154719406909640973221028161743618188261896753868764176679043899884822752550446628007713570196546775958335734191213370154617208946432184762410531630643441076317375430453958600498387497304877335766649878044986053498472618420235417900549274400341267258537624156151535668542198155002052725186804602622064883142225848647905639470216832773654280014016947676734201917179027547616012423703147320380979066004072265207059844127808356599652380854678688894481521262468216768776907847013572104985660211458693972034880812165994681973158058523749411726740040516836935325854782202577995059523273400827758753995851312534963941173697573183466717014575158168118927903357703339077737531064414076269502941740071247512857408521671957461412827846448197479666842252249917639424303055594256292441612601108255933461126221989891648709275524532972253867408474677541060778882051355578058709249666189645643466618358524092946404263186484633508362191078939453699754169324466594004951577026013241664468706861701073204056320335495990514268563392216210231785796030483396007378579488271777031118119377689826395672868051702143283153940216536490752347203278360034847115635522867012468281082811277603667265858763855671901383766895732350091747447792805951218433212353878590153481700297555153434925077178234143840653540440363358682805618076558834651649020479466569298928326891758712703181869916979133002601642462667558566168894043264074998278432951683652526117668265467469670149904654887533837979069878209327821695477946857807962826043412519200596603379618140072174775867004641186050953708865126182861773614591945697655956836341073499792533019587382134749645293021251417809970818175332714015931325076987071802524101275216155903747545240290390551694724139106050195076094260933570899663487420819611170793548728392496620970546142382004309055937746428226635402095174659902933915416049400365043535541180225713735492888340716937336827188174155852485286947393386803500767816199702865711076556042626700316566765137065109287183761488954486547442536972283585333293705918088462246978828870292285352172200645952283128093593746720965186407197230847086770291244043592839829608838767571358511282661843549480012730378652161820199814226130185366520464284951202069737417778656078611015835494908815628244871966546592112612404538231472997516750596046390125444214830147318623645183937162999386137195835646827256971430609855600952359367595185665927501563876027954085255473708212776694458809951008637277764483762123180423464617629350286399209194811969196012704352157444830105611462866377517034541629639799600708561818342451291100288613079380930514310103470387015421337865354612447316006818017595697767734548129271444387599016667709651262679716325679775403450847826264391650011967185186915755502196862750574212610998927605585556630520786371045352783108368423359528356631091402444535242135767911840692540610447604785587853393926683874396368448423929091933328218556596522496296131983971026090789727806514820632289393148562959792047533614031188944482894589698393523867947787357368925409249766061945955803214558558305081540175090388083578861520333947324944530119153171465220306943820470192691334119622506876537915744923229463145439568621517901207162402141774705142353248422849892228717407483614250686522796703927275016438776945068107039628661632618554342384726026162694143742802898465849522283478404624593744027270667361707522840473307879342084328521298088486997733873873991973883249888089875684959188699509761409087112486515204824622723684717416137619357910352198036344472058395785186211843666294285990525749794529441596099511447227356290639524108400086406801599770673880077245864499572911414966993921757129432998162810822696878675126427152765016133598992178857533030412573761995113273903449358472145417943257671685687143423448424090937802035480747705787032243895332103848146945521219903485044444729066078099271846365027137565889690117841695803406293635966740927300184011591056938951555148309509402579358086331245999415894809914748001535643341242531478209994573128023461100396984461700597149747407573802171546631207580808651116133692790613217261194633160318931132636238941989568019453232533570604144837465549322601740335262862476360487266609213072168816844736695721063686661189369470552891310847276738604701117956951440031563012793449155324166941629732258007788182841375750676886566548281586103849103071337318121155890356811926956558044959626554637045761235324826653700812740518540085112619858403739817968566159690021256360352007104555533356360897515031436052863800845607873196389560281045250865607048298334776645694086689544545216314055880901566784383527107725013597139606555821570190814509079486463595257116615383607923139148023799157564336348081385730522931673921092544650907571339098282280110945533388022399973559930652193480678172692057467014522848420218823078628298427443281988280856334652607934391213520946669701158043266875161103938977404471563490941393434410604574608580011310750142574408644550741505734581093907074536690116506893220111083020069732693278096284742421291281176370164698589999960649632270966604834072265383198721694942126158837121152344035376851723849910069363754488921906870024330145241048105743298680984991295231658835196005078128691261724063775130537991505738663670612399037609907650706733120916402824164709517489200349887465188041926656237713432790430453323622598710304233346371627452262612318748039571762440357856195934940978445755038335778125569919886475908495387220578796150596481558619015572630916364765968491545520695838627014758005514739843807197511396092450894608281133891371474088487821957795808657800427605037986082856921056101079024735594454767329254707385850247126587054996088518435508233398378460459042935516910465109295465010437082177949235379990254901843701362669029846800729491888922626086635762098478955105635485934863014938658852625865811926593060627782744789345368359951447610906297837647274800348487818202880785241692137422293998191823299892246718569000372233058632134211341704679837858384232966441527495267180487771842221666124964302959558118335985625706576116191241084285042718702192330650555933464209372629605611320037766488618576529358539939400374317426429100099033050751081246969017215667173082682457924974034553133118852377677037029173479424589971825467333542028504894024313844899600725324964256436864490814125701285110537197508201785862365305581126053791148313484114690964339570808044837722100138380987288176163954151621960689581092788702894110521447429636026957559757252493657853554325303009896195300332665695477715523323445896917367998753503408425347304430320892700621050599503259972696012006324128634862576149373474078113321336586121962841971384576081225713297646687931012453407456945824444796098283723686221247232626711226758850496687312619126663279901030582961515636780297705926990543554016019612564902964622253459839219311944397437979134352404578249921522364871716454325707406763633682202787905452309773010899309532393802941745387465586700077727690875542453746517120111974637261257500726250680863234922711375348499874609821820980313156157102907626167529484332895845003724912499004376641320942493903065488028223501663233785988615377067860891773438868769447170376811079551820934687175251007021780569815571873685339387553027671908388038139688658161611871506972711319872747795530451478844859817853368086685457104445731610355679803733936984067981516691624868099964676031156010941809993755237302982377268917827138554403001326717774855329076576752941169533440985826998508576608534101301975230738023146081446053063038534569772089365328035380562915158932803101734360556320979346899558023955462588321100048715972091267988583206461146091087223831840023375969622312617181584159037748584044552614459903735101344814813719280200591016515702233724454327897719767581043526728269088031827430223025579372132276252046356751221597665587528876432848793411453660899633997675692258691313392094789274726380977964712428959836835283127254598297751285545190211791645384306664141265643798396415577895034420875965915879273034581579635420863668925623585204203101440430956751797386919005706518724443682735688802004265498717733856727761845983294328193808583915837801169981410413297884291909282718220991316960189967049404290730196016916480839724944769612335608704598082041652246704362729653080515262561187649945482340262665898233923752303299400400935815800049424606566947710942037180567528163099734950610211663236046553445241647217123477291790410910407831597084328220785941339751070621443835400743348537900187740625677100276372207153916464607662536827646939471296012812178074674966413366639903245356228274046931785785245196476855977616824966754027147756463695618934615130657810874160786913452202860766284109449158879482865229899412325940415381277703782790904438908304277658210632590614861743611973249744363721210757573654774544580603960650986908386149782854692210619076437879322618397410940242367512643507448196325535446122764036599837366221823170159053504492878116287121154174648366382802915539777447953719948133881001767607358506523183526665079325787167684642451020362046379189403066048919922883662547161204959240610236906424899636317083631779700821506409232108002469870398446855834874487443981646624419021274198729385903076177768824882774519192146108360063162169149109094021506534146017157343831411706635662617146913377254993627175466958898572860432191961174510198046323000319719521278069401865743033325558277051177612615666307007894186640702590090756617151248771526990422946485333018741574366196500465408736152457088507427382738893588336539011796720450494005423131222448798253736983875279516690234683768796257910230193582768248177300270593532738940576848907633782075181131785368356316624382854442683650941867680259755221686481904108456904775740117017636601535812669364138915784891580119412983418169479539115336843648433268022753104801037203008078346476949915829416758098847458888023033026299388624121875456184839163542301734935671070233166893954424357973074878686260500254130292964653844782825360065457370915529078305924581119990774999828337612265802724188871759214643883364892206807717383492951041573946108815049827176311406941595524021833115944812245817412444542543671919990521191578276754468371913331579319080598383797625482990991873913849466113338686413369923978042476121766994065647842007987777424296443446964194343731801598352409691398897198731627843987585909851550345995947163079725969012008789756593610534610331945811268910674648352143060935265020904172159091487424088652717238152308359295368351462429330140160495317694689166155466714960740912690265943543331544584752222690308437510243903490527481426146450611906396708339494770537181478177898505992903706025057860252564181923593247653272897015117902847583550335510933819650543780306784049575720441419501768450233409771395785118252457467430374159521196928453287266186112037584793532120890675550744098097328902218363835812390532430694743065625529554126965676343843330628567186150163331798375112273295690487595090958832209884838591662115246938057079654681781525956236516724589937475563321021912122446339999967764094940707814416859033292955318779104148494048939330027128003822982986882045238562760461347569466727035282389330819696536489929392830103967412830073485784618787453080285901807925752210207582771862824757121352865822862479033635444058315956159708273469532927121795379443469562187586707450126439170952581975439986539865966484402148055343835857652770359105154667756536387062922285554459609466418528321591316120356659843804494581627134886042793830596685963652291293704912387104368413865845379586994862320809416024823009134404031102335890207003838787596082044723010252478949629080247668274587912241310403932828521568271883959563391229020206965037335382022939003972977587649580911676495563090702527901648548569671612596059230580417849407450428289448952101875059394559291268354074345519752928077916754237295402706635709397780807030410432827002390211862352956289880680712429666310994156807167374642231751554010603853196764185059105780314649264743246128583716178461767755090595103671172113962538118139595704307757027263900964453907115107312833064032589512381501615603630299260042440945745908143656893937440770447658935376092821596209634404531286893881789739275463636307752902554315843390966087294144881617429160881169000112495004140658408083372909624981260235195137618276501052301959697882614540246870804091999536155824063770659005692281994831991976590586628840899781577258716850100963254338587428147704329352812477888244939186676273687053858971991695557307229096962748085113820739268987427023197300496451801809161837832699565883835665831901206895513438409594644149745227438849656003696614512176026349975641148112312910025678748956073934435726592986150747680668074993398994883592299100242917746980183075069438806976633531442018786020223438926672048198599133565201295438332758915692750155399523524960268362905111648773289812747898419289458074903356739401409345194104210280963754913799973330655116015505744358144919778165802711663946911015889453862048614292216105234503170217169043899679328871919005004794981294856336077857459124969923934358391995373958696175473187129451687763562895115548498982787319692139166125098033037589696938998147158148027349910998748347273757577995502110753099776251278438382887606563318199694721768095118949160833638268409663358330874818492095718263126982562686805021280692442227710683133610384792947446610220705330348986377633012517463886200515571475616260505540356238474101586950044935067651076875382941614318349078017569367266834565123226562993205307618441975227884685645300045957098728988708309440495773184192350262460474140059775564613013019889450109178889901896063088882389067885940575521652203149332673098630178776507346120015671665430264706178820837469135182427146857396991812149281436362442096603388344658005963470089040950447227843447681947029649996917671319813405049497890144396553015466265966667200479105306830428261271282971657010022131575605085441845617107632948066483832766367818770255955209924966809921957342868900857767394283857895120347288219206159041439913052721940183761970674280715081415235588209289306808092358502145363213729058339917357116445838349988216090403724537853598566884487359886772841306938160904529937118573045316262860190494159401006321002504372124006538395242508185654437997151011880985332603598151872655037433552733350734071350883331270875720934628638164251902058398144527200579312665925688597600709183710508807567271623040113067775321907824801024664444970315726472000842401712808115605294363321868881110157436796131404307998516897162751004948577062753363285676129557836273556745996161244731166317354184656140235276830832004127839219559284382443464089646147995388364483724906568048932484318553883134673761756731825354681003902667180594349777814497622756383487071488413973414479146236048023145791332221921404022371397796652573825099306463701182572003583955251490429399690973398337710346149254386520984094850391547092535255475221190113434002769153161422631253582319188146169295337084192627795295505118680194767248999399424076346593801732858651119055465839480201886339316310947300822934903144517072738815677810792939662600010508092099097730559673094498517895379015939116631949629775389452701994744954034422638826062369585622999269336432884731773709503326707394148523966924612448304263152101290179456583244158233426285348359231654570376083674749421803314181361606445090595807903463977420560178083987482423169910124766908931618315039721180940025513361736715601869320627178365524670690375605895577831515766190333356624606561585324009027140073884535179950116145734349181407289703413784322706995858900757559499810877089584751865235450146843343078219895171214662117756305296189317292012000904959824952526386651815379546402117230432098727368944962212470658260155791695171921907815118706705179104285834655506416629141896018163074129625148958654780647532681033152222976847283753721803050469808463804548430276662180982793245716769498409247345999602624838039147629015904874332383572696123620400809314395591116459154153497573736617129725610806288312245681550956954928380573218256455942906290927389704764369650338183797836744683857655502626652114798907084213076019050497344008567477488450045871171321831538978459209905928625512265503400276882613027963706814602088954856197614250966352439872168419851605027506426804060594616676511318815538499179433004564830941346604504465822897264654999890796267538836544240741659738981787703029905958196822370452406868067854958609183750551575203484420688898089038477273159121279190513157915388687450731815220924342428015879289218385594450132642214583806510676675187770525893680363305181678423026916740861051744084852634836624780899814088195723338201691085957687589138996991836533160830397171910915165720972796577659777082794345325667615246772164256380772070725922201398653030405458000639191757754821779713510713038755800439794487301178080892436745954124766601763804361467653314209260776060895773826474358373033531251605055242155682462116384829744399691085116841059322070004182639207217988760869046206313366710517453356568759725906891070976080999677350733760066374522521409346300211982525544768358054262806119278007978470489691475439460811456119636695226461857485376045275263788089231039117191842916256671525199360888218693948362641814039932714835060997214944538909334480549455852315890942451052457768813001690591714452799153023949819700889643099172098742541929928617161205820961559275764065011693335777482069405296857308204891074589310293813914801840379823699959165564352162036947953755675420901590302660267817884821109786972232586407251051271414935028544319738252336861626877853862869106178963543284771999467555462666387425443524865084264044289372073304353158659047953022432708893984505214078460499205872515732653873889989434140718939175312365347027820452243217734320206686852777032997598395783827749937958450498729797843679610295739345845291258576949170892504538796922754520448246951006852133725186396318242324155158149271247709414445249430575702054508945983667550709920109623689457240883338943162933058311218125021827042819532912439818411156754855625622602367766553467596116407725016302040444376453968410718245819776761938614483342810386439216727531751954204453508549938135434599646101740596040044004686513140677172021796093476499870874868977552855073542755086344269036019243719576789875656987423160644677976414228476234940091128615267361074792323449345534005184956894142583117071322677224740189405472614121567969936711468093292155559365832464128913362708430549085984067239551313630544865983880421343385134465825935505898172974571344626233006623721458519609974468150042093897064143058680438212272294949752467877723309213042101210517524959377611881370208355512295962591988507423280961742858330592762542207278898577863677870862666536666226773774543201062558164901714282697954692683603747773312467183938010969040354647156503248698198775150279633004126088560466280829137659504563338666164095401363275927335517182447976236436017093411017438038472958003666654985532135286316952777933218039728357677333293363924694532598237079437397089259547251731119149862717773442963708350700099132648269515195340642300851014979103238421200758094292457525524347697090984776181266655480643042886628053987014357911697501782655565091495501188017129504327968451120270866609861831972859560504040125674032708483749692215870911883509892766291761468009328301458332488067738645438626339192896730440076883849787252281830683007620527041812443679704598626437941251589689360732400585104964422489647405270056647976736818213631372079337194030487469509187006823287362478751290957259385972168943207661835018956124429988355454497066295320104560680248404303726622373559342128733833209146460675583585231970278221987395307534820233396502499080649595815187890374019421510579239881316782364266760530934250724534413276760188679823629528116969358865244404379635395218817958311439137912814882934145565119100004429036872699808665691402122840350329768254796144006105378077997897011435335543158885373376459215862888902855057627715160791545407588543834219014778368003799176208929000066947783603360459751493443957781958601429202315727675489757755153435608852849850157574201705302569755097229162478198285403628991131414429728819862606659099430874744442726767176277986342472167151361726387229311656874035135569042963199756874349386386989624883852104270302862354154527041848951100068351969083071223477297369055613273239780213169005909872069433068378602789922439467983249782174712419277386468624541059294962298372450717901908582315143825011255563195551605350404995093618300594896682807375499937253092576246786415732744059388252630368528417279160919958487886877075231728678185434188752728158022889419741915420140143024935619384003515036399784402089842349807682646566056671815199088517679460540861344933083346150211269509513697397245288817749720457806169621164129656340488216686799683517066147289728441244790942382770962336862893908398988917048024433312390831735240674848066229887068586179353662145487150811348851563348458908963225348182529176787154520712487489601638944430194292495740010018697813533190567135893911357132419778596084666932055090182318943512027365391154297809211831242983039124019395549726520345381229116720307280460292633531825045460756823238668488682129480629550511880378472356438967168579785643689019440343122272217027519469676487316405689434175060981810223679472032932178878640329543174030188305090991192971250874200499265397168816217580018861821466987186761236810062314399788548199966068963787445236465823736438241187875462825312665071893377369448620686614360045313627246592941826048457713181151183315056540874829009290853489896633047881177107775531330773511715513256152131022590581850529303043606312711132497545478675984196328135706251655494083973862811151710662341805353192372841016078080879206051890831397146368533995498290767338172950850778102630098961045157379700098369013625232176810089627756792999201806570016092983283142647958671602120573739563732093227960816035637385777567857609287948330623977481630745338016393596867270373837055601428876618305890062677328404631392528074020434016343716155583884397836156466532163099507352859205110695406019902647773259736630970882982594598606416882399914717968240476179608227724039303631897046707021256357387449798227727109542836983279392828840570734402775560995382535032367618403828403830862965132808224901863961198562517245990460790877460953334480103206305514876859406206874147483441260209087702241756611802241955207308335527871267526333607907046240328669479965330716640834683536924277382023067325085027639958741848342497463938836281315145731663327800985273938427673938391679983104196427838769430502903936919545497769867622298817099763020332007939381456043998698412952806335495818493111603581677588997646503900118721700831616932821641806408561873377667895283431772554224081786539966349674005050311856007012734475982050020357325200684722632632896412186072031220699151375625504003806377405155985407663753123087300363511495718783899044632047894120054172754364370871725348819098822121844061758703132553776210018126445424308709965573697623004201544716241703521535943424467050343176585802168874473414682372501516371459500983586935137886816747092301256393315432963209044960418024522069132530377167627587888831107406678590386401902511575248254449499841291432730776368496028458428738473423696659699650559580463835760237505926790033498390491329039839840405321486649832650788861918670743543014243960031412775590077330913235547181471391472521962048434549385988256368117237987603129538064778666266431354625956847466048000009694365316517599828548625197935847151690638481959208114166471655094409093587306421181999703892439398681024392970778339062725821289171387786236973767231964799037855015687451763279733227760757245146262034490614349462263881672248900638702705145781053880388572939901055575314613804406233795475909499244079885840856650660529149035275057421902923896216713263550191857496804769556193879648470190294767618324842612197258106694306687715564451324135523957214105846108721743964046954512510408187186228187874023012252035342080786128662359989256496168616283623362670240571486040342170982160347501420561854644011025375001047167048639012047709708279835456072916565084824653627285066746604422502458653519058384380768822204261589617644344138556947764034593559594943659979867495434117334322052336867332000721621895468839337884122171466128713617511891183647539538253450975639321158812157296893988385949420634631911539735793986284939421852080050368313191385957026111622840124478275960777636796106683614105327264030101157124544499451418455695213166301665532874222015657288429953352769350708866092572647135879292409691502675481090737300371917352713690982552046562609322949264697840301994635335991314366605352549061531393226344413794248130314447552253247983993159044553337964730869400438370535008287011012720301289038311924177389501027991993260118996707331328281460818674294389634723939141129003832123621793863748062040256937633809991417206903183760770566982580083807350730558651074074539855840594528991235901228114026557281515345263684305200832702470582267579175611596437655171799723111537416742054633827673345314104769552681215322443527038669705217016921196244921205592363601040057114312770117006345236400350184858753753859311877170811435838156066056903536159545016441465907809209376791109962812274465551775194760802620598187157133211187389494975298125027368129999459781128388654674965954256742205782590931380204608582135516785798542875245466964903230659706657073239236245182507093538620504443615181390264501023771013911025967591765747967737412180543260899936972961980418540373083187045986832819799616470369155066743496668848207275304547826151548396177285947945023560302106964817625555227031126442302483261635918267850052736362302735805224382734728425083013414168409629101431331179527613955420468338576405070984718306005150253210373800155120800349474526651891482957275443195546521377182172687364178610597291673622109695531630068480018360496403734798580703081609886768557046657477531032486861736548604187954407654601489974365585278258695514418766064817026890159519762184692161767665853113849583136000045125363364565497121188346206382970763755988936319710484331310417722282214327538840107580621272856313054387916218652838013826764373124155447530196217784692854803148990133499021504774615900978710449980523273815054258913569421682929980596231094369141541838312233946161320629589868275586913307168506071151103034207280812568023388515532706683106701727827955624739782539455834095707578714606794914827429409155133000834506437842885274578503160854168100605064541751203028920214601849123757799579375414256246627441501023857311094217002938220381219480245026458120956954069503237072153030047405957599549417935891419202106885769345719133626232964832284011808604775257799552581366640509761198642018985978297787718254171191379032407957106025388390803361842949661362138963320686097824022557875541637586090628834386210030311334591134505724276410045593638409188596263444341176740244129651324093327430167896120441806211378356657301846850840494041093069706133663716768470402385236567674925895552716970146198453268504477456432594889296132525699224878078190450494233435156224028656924480185285741093061002777341553190447080268042978358455316351546628136584052679922015178875450130286757613908141943028477242571835522621644881266127390599971821493215124968687464147167383783552770920385827759525837166128398130048702477008647451298765569225826529994446973613903440022038813423317198579684234316938240930289265124091279197447752942596437825087416325390366831382967488308785966977882184285516794054951948739386057768167703730975262462677877036418740423154174508767843853599299618471040645376105962706480399111119815171526040893650303711140712635985354950777648241860052543779815302092204251273142931499675227719160719742326909589511529742964061609794623939004846177581190713897771486697855228458063662085611842871327428288110843368781316830458210343463864222476820931132562580168396436936528794535101713466079210997603363192911650121173692768144233161681304823043305167434846195656732408378132179074212115372267578865547903735746921914166980891231930840203792914153721826249195122822821564634877604404961522964874488256095322721926586969576303836298740616641999092372195834998601397020502711615545748082064486399094503578986683047617352491607502772564919336461377970944787776927042788573257326132857547446925952836341739775290300370243086070558420201755495370399913138312604744254659455383713545543387526696073825234041756376588589507705813984666630138071862431972634775497702858312930024568993104306473683230072377017701811742418173856629964190104474387144759523169111514741606602426795995645524963409949553522534465081774044426693040154531309158897555521191876374091575472584608265080708072828832376993415416346997241092174827516642350173292978874498506228661710666351020110749578861795213084330188974655443620087574562878509000009084160077308223932791493803766001357366117293708806497782958130225556287968087689183196990262992125392115703677024491516240291437763096472568937576943361921626335474501350514741225340973361269713772015201675358831455014717060692956103111687895501277602131959643283226003225022158333422388250317563412356679550310824224661522821004378129251852435349066817548039136022143617331224553663746253629453119239066629986045205680778833644435712540743307170659716506338728399463044832339595623572266940212616953596093974395271468322085548616629477503464474646016608405009044573514254578244597390413619752390134786778632963777977304527734400320768914497306204456678614731023450595421564111208831458498975237455641795688366079294662413437723778916533681491011894586955144110543905106101376281287836041953136843720647588445428837629927677305828278737994778185101663280465165954594712903460391405895200120395587717235526054066512119754628874227530039318499560509318002705898761308568538945018690373032189138217042994348698134318923055376446567500371024083956542086506128896080788558792095559228823479256789015562598963962731554351201897267643381888067187087627729591294772274365175793918075116832924256787688088525381736973317157533226455984415881497317728307821600233364793811824076199827325653289494361728447713445956272454616092962603537523688862929165344318041254624301072913583191234246007154054497158395919240289127901080599337157612501583005814900006718771857986486804870964005235681372871353013607711889915582974831569792853334303428138421321045524653197011424381654519260514962471769991506622407637374013358097308353731562430053923825622205579765914395462944360723815592663939771266397692240402379847835085312302754458890644962739863556518674203504848973791749057528498378365077297789750358063246648499349472933371564905991626527150651718566856816783951129934927328133020023614947538133302245207462807124254889331645463996145087761511081820725893165161104575207085833961197416664247951217192250130948141674186015426908440095907278905497928639919257664501521382796415447249349529576059490049381631846197730977082165467618242580536175758388587437984882673996402953052732013096536094427674981079376171190270069807731502684304519093364595856690368282334729660087288352613186519426028201726925164317023056496555380683323054216656121210206954412975603007124271765186547115496114284479333397333533890932487347131214349115784243846804345870894651354450884409589155070290952809747912951671971816171635362232714943069868895020243608476456213026428022919862372221299225628229772917247585027567909019479545341724411397730660114170373846218331693898028670732053799696752601997493754980495553265106721936570425197164021601670107652384585030367453944427599595668789413754038140251183422682404605214979432812192146205592729586169109130131573340936210691922130863897265197318681334575435796303364773959578820497609061785930823989783956323083885215664678266042186754174856558900753714600703704998861600484907136713480447282383529222209176932694097104832036916579289448073554342192397016972760782873001020345229368348126914409112451217893698868211502223734087476099619634665409835028238810689277683693062605916469419882617193733804122698347784741949258528675525145704660801522604198531743576468978799034776653882834158204905817968790288778916119833313010977596646568498760586033063424509236490683400366642430957647270792942135458248127296235071825445012754304942223291310802838775467336358171481788715653215047636507068200192694817470741901548099753489209080931307246643936081347602040821505817169767146852861553759120180553251643832280651692687010481144478780116919374818181933779427900504058050922107546274773258338761808163199385331648569907768123653556751964965029976037384579697109460261756206636628893830590068719494998712766426845679716483730133900181857565433342656265261668828463804607883577059491301621038504840771651828719298430496908441969877553064082284483289839751252665211782137390141189187062719294176982769635107338920430581466260429261720317163050965482319810138352964859153131153954903468348736347546565348688855466100824377739743956729432480724875605691583065931231645326084728617338167263681132974449464367562700488754756864972788890886905203805264147845295076551021161683337379363628833160552010397220755998444329647088223481197828709829944994846833381555456867421208506138775378154693236367979379825088932504384337387350684658497056802606322854690258387499000280914913092597945573040229425782728423007497827939495310642011368343633088589405083740358406067579672442302092691735228943900783156998449766813670934369220894702456120195086944184080732230564974263947063040588969453014761382871013735055274774824967872589862227396796102472663011259896659645665412007002495592664645210993007046674912563292947085776198106567913337800587252437190245707588005339215048366463478618873243201564233780942880693506909138627972530791232516080243216520887675988307656027102896367736254672680291952129507336776525067482580355597485686598007932307797042963869096348027498636520491029973159352719446134519094736688684796000623356504218087135043238967542479233869238689075405477071479781043883242606224674526734304504952742735383712157273799954179543926300634820934989756999866719613284121401084272448096745851260586153902856829382889865686801683679479991446324824922852464050112265033783067253085031737768341166915331835366401317741962405943345932615243426353644196490343427188831505822663808098172990523650025140591493060683079711201236956720995813191879589286912150011515805113964216144698021380976798577379241454416958108180084285635110928347693395478681999562787030904274605037452574930921995641359220277611292315331687432641685071401847176851370814048578432430000590557890139206507558467154640672531200774368310269906878154809284644313476879788118027935564226856700970357336662948567603905293745149816293989266221517335352726886871288547439058452176571324835433473828510963796123571472570161173805089058734911310364347313451404653226133388045844893972768499780319830841565894298059680535679236235805024715916836903519400911130191461164629637846770887852815429428419006906901607286677849358124455278834073919099400868470651316655067467158355886825496269809377521469029137900384349132971963211014964712999087715257654169454148457735696829795703956792195233397706970349614459495835997636724177456989282611375585627831588951044905180739716089763087643161436849714331976120122225497148633155396576974686609355805846971750311326679667434943931708665367129050048733187904704950926129398813023524071205323138465807662167691010664360374760604904253883866263240049140744923695104130830760493488498479749787840826620105101598147453559771924958578710950898248334806501654169478965316769760104528168779441879750406038631107120581163917533413879792647013801572262184309122207615741418107956099578413933708648019396380831930164137299976166340555671278863960452565020626355986424035050566261816872868824355714595994865296617355888527697419337047430830595010311336799009651005384067306821129510839028443838562270329954194148375824622275111576947952654953739489041340693292444771187498489437145776306818814138995954360484952745423154449725634260922885577060766728783347098302295869092415389543156145571456535966564004295397796665661928106704639580323356164320026055739001337007361443610292942728712675685304530582480329608184045671077889897069493777762880170395243403749565652711661959479727386287045329095106703096034205673992785128173170037658588726161808104894905110517537518319118999540129543714663936880178130376010708982528761859587839962354986415886864857494461452853328833513697312424162734779253552706347142038648512518749724091069021135552053274878910414327246389276529108513742325163726690124399353571774935559115934059129239676929806927433063480946474266007008571134279874562773007823174689746530355745974867168047218812137191834236678290922791132356887844759954495445565555133163036929218482197289911017793658221583551760612933742075839658985807376839510337519520886509245601391950925882548766795497062263973139351650500458893302235157117852547227183400058089599597807177922159640840586187543295916352727787457531439535020756094240456501243701023497322821477615211024716250485780542800221734334072203515432125132363759908136185948333759168787431466116974195400745468235154623906755158197422938406125678334580586682458307151456579705397634598288440222602377746540893936939204078846887325344380947128160215817000079440762843331857397229683769574454920841957986390608024158704916707418858120692557278044373549180960563357865392731384727818728832961458901984153609015628728719557392249968537286444635251941453189903175185732718082122440114681181312409056728398173270559688461136850854243988224482794880974325923121794732328182984083290006049489511319651830827959820383691285805067973921511880034367021584790597864623079535776513255422752731350116646496271027210189402637793571221740279025836359765802137690317871714354549238771220813019868961628894518497210448326550528766994400822638715826683065661726273342495211520966724756245516160943222143303568447061810509280313292983708291325531820385021749001146504527137988444691933465855345393853219023034348192519343594647531700023236598689984834294580400692085261790576704161241212444983667328902058076682298667907392050469045980306077725664640208647111133597245389830954197424351897369055645818035598924926182771159628578889359095824592082854440458985930720816681323891950453199616654210474128657686575871893502974693313925962266179975344675425334174220915826846483031036639570975926582363932157843237813478136781146484832249945089478390609161112039279455217744358622863511616134137955469958883113487944017405296242546253480241583162221127211780738775874394129173341932479864546604747648156641795872654688003073537529915173497010134353761395667660539300909038240114314353531221211111783874926102741902095898916979827000883533108097002331318149085478465243875199270091712673396403404395038804945437546948565261484547840765442735117750788067081178158486828614640162333903935447817603476923843461375349196189976006517855911751175233373439695061300995485480965021542667245105533854196344209460703958753469485557210136056394214004254057625546293350412816300400117544678507571575474087267604296197566753118624727288067338005189994457795410442431630574033189791472369024199537469002238604160499544660574876314818245955180919381199972953565393665763694186442367088340338611454441653628489486956525042401656074103647248762907911148732039330505020588940048229289735184180980571247134553548938227450541771708149537394401915956040660170698562925921742983232864115144032557779915591085116039887799461055669165058296392723429215904826729320965895362574219217616698202449549227846071843282791354991779134536044688374660597699313571971169385911075070983271802969488969659380500482093589428577156902146514006847494869471035057647374445830882766363950504271741712447472835183249930851880241536474035046691155130073235801559726320149148639375604947454447942439684515930842290747163240960050657551019172869605979119094665405212181886869310472889889498085415228307100048222741930521246714335420104283463640231519783117928072655680253258891407469288250639029046999603140450920776132405296991777179185066279494559621702650031270606172736007300002152555595956163842374102712945513689510140740209841393555349658293930590501002335047725566481221918153266850072571834459012233085561148578655902526376125921991199265589651772025707299871568173612785883510130479100504962437496222626497987750571459043260985196065226066352285497648922451591717284622693626601563139382767526494829815712304890702722958009971452296660531981813705328705629031046721834760033671536094650638384302636614954222231020285223703866069255618908651913728152196672249421677225239531079788368202738954647064988388595871542956227645351750172863169141687528041913203789405685651066608876117936757361275412532455549307211822356413170294168410251386414364925683147335832258782430889448734268016507532500033261627202928109909489942389216364057437751467635176412700476773356594463064022935786830395820398213442305957094899835518221306981040009933588443867289893238557237984057466459851355183168887770396859271996942539857369461400586753502476684642687734587794130151275536946275956111434223291699302466365533744963189010784817148783761660894663479210766838416681478439768834767797902761781900947913953822262153991201528920332174084405714746117383306749762371772015653839698722103733810386426533384601174688859007335813219572952312215334025835876157263785918569174005565651574686375921304194574000598888240637469336509443715591252407655481070885918134409101218543823133791713326006713832971958654720903347241014008764024818092609889261623794150530137147334663073431641867180184279144326247483603644371077643199598683222154021688685584949687776683800904348901273705529045104810300981828010336106837543618945247725585371298994553555529039986205795795231820018149509579224506656115977018306913585277961115351169296055673105747701411652527863671437354819083509275414659685330096320305851902985607109825940049755933987109347771667598731719515649222166365350084117064402810905680977965411421513207356841733543035431938672026782289712495510945820951264687006573278283008337675488131429009284814865439707613274791908858965084653531040714875696865552398136420585807930262058202276340030943839912938883859284185824800717550612094509785397041388798712782083836993627635775247017947732961020705708974690046747719842464649906227171229672392532511090263370458942052230631481976123305748458723097434162683477186089552969631076823501772352536452970582855831346632170029644822724580669832540577283057254921933035364993023767199606341210725584942651785514112568446400743439700592271286995959310313780055026880535582498237606661645395131338762945656531007432890468045326253283185108744259678124907819020078281803505864040478008887274384739840392991565645425664453218138556028247074594178173694633598602799018957111667046075294859112883539434460248781994252998059881575486343720198613967865813094266755326997598668764661709238484484797202533143801265482636235316727636507998939366349599835891400606419506522518369527579993408536975984577241956359846347246445494121156997890625360266226787015604048792998221146724340667496155023084354310371508278437173841220807635594073207551781864245617715405377213796941625047921766401982140978173228743575492736321760452119831347519198249933620315331645481582591328539427600631078647590068990729642070757122950869328202972852425341088946992170690934262995669665067358135522025575487887975058475732969863800844322635664972426603131200660082805948651993631069825900895355259841611492219635793071454657717039021483369751405117292496053767815961833347607965448168115308289781842309325977145112417872028725896657648892823843473838577664375366776981157736626843169485434784873320219564672422072414286865366986659227168777852215650544965877392851017654753480913927054635565044658327979671326517852311573851757933048127351429769506401922000354466671185211649094789811798353453495146161009398288019758479353440663979884105696880998235765394760750725229447022364135023835807994624878148128115619549965455509501224967438380664100033083369314845186030611083877767896415648259471906848552492380174319640854550269377363020164954110009881357984040645136037843500763563546190037792461269993014048546665903918130092731979917366753917330490866561356957978522781989813725437065209025137506309170184399265034301311559535310219643638834127592564862202179948267692034272737077229417867903589593983362464584381762931134418555335879721376527730937346224977147994195038383319046877058736987610346814710639365202033853426339590660794241625788297741414565080995380332394624492747915195630283965419760140711392938502869961921686119096604261951143955073310820425400450343678118086465754349200456827002532060092975467899734124384285001386161977799149998040463164485510288555633758760531356555413560764410235838499950018631648386992891001741109046736658641551885192086149306738819056926258798357190052179432838442757860619705466249102572006990249667487728024628628021894639471328967704380457227798268133452007854289618500862670955851454554831596943784761898959155704601227694418230460501562176226670906871300972628245595087284807791825760894287329041816986290112460814111151161136283586541811987045956761174013310092109607293797355030292866598333535664887267814753737502775991153663385876160094572837843455584175118604261543478366990605011938633516871491249801613743251490236604003414155983189814405207243406994303932480288110393516358619958709440332507377080821208469469511571670474056843268134097395906223640871522001400756708849046826593155772007609646374613482484669982085771628016856724505396832617129412512250595807750681946388182775013908910855773445370657760583097514648007060262208599622233232623197021968953909209137112053367698223473776390521003617909180500976120271300776904654288988245907806448770003772727358269895076152069019331025418604791472101108331295276121462461708643487366215639208828254600893735086120457931451118305780700451490732052236364548742123482734008375033466198573263674288377274912210787931775368490148361411771972374696361486298875137882703995503925338031014712034494513442308880392518038012325213346079986454346796975418323206273249749721776460706152829966333075993941998939030414745248376697671103562044163499798772773946429996982401958619948330981327249952490562350506370471725414526679354089293904187279958221435301965581268749780091407517969682703143787850505294617537151175979399360700176482447198032180011442505063507322319750671585877843731554228617146163236177162728859690609849450260964172930991044625783616090394157789253048410866195067386400271799637375694556702601361936584274185159041232811858607066171891352028675395785082299357208817268547090598669116827614441535427572935050050249173617830710161848943561420882206792407746780410527400315226397342836782295479197487879906809035126970571429750241627961855953811521875619685120039042817231533660272874810330702747220122462394070237023949994832638541596898188177140342953931580691286186307029419347427635816725683830294654129313737405425364965521239828757549048777935729221574342655459455261036598993665777937053738874152052217018430350424685018656868851195719871174909201202404893373512228264631044428929277747544757633872869317809257347996770720081809952530326985015585490153625123931461813869313231750865408011282540974232986656012684791414353433869527170427607766016847228994953197593703153127596416876894603787465460662890185553000458274920279633517293719545589602291521999838283820164654326715880885358003302769220554480133606665510293934139686416164052451115866068516354887265569445254727255968165496294155112645516794240327984648107200441849754130802291296302906807152735468136173919464368045277309967254745692513084538529744980855567879622071354304105753265809738578399216193495843255113152856799118125536313928711680014563081341468506740991122315822988466908694282772578535645520980401909889690065609971141698781397055854793004846013752463439158537435698917805487885925464278222336253121834325302281739547149848348561774825000530038214226873908048210935198461664973116338699682655592350457200052653855041375270886780137770207233941400470233357443398388168719665394415531933713751325306661914418989556147171406129185467407713628396993249059654779771915389458406351812919163831480501255593524915106050335876992742916597194876127088454206262427343320378583803614908785593509628007478635850319936785691222367251039176234919757838293829471066346616503593847799213279692971939091660079968349002700830101402932553660282933933043814969102031519474727950858519164357838866694314145640330286144106615641609919137956746098981663065292463310376336377491185024189608282474063766383661299519032394998569696509119720945862133452034105610568983818837257216664556725044496786687918334923350340944948653453639954467939628654106464405211219654869915162652920028603492333240401685217191464024629309414514994493922295987407539322687951452234601451709446500930299903874652754482695479543779213021491660168630296420925579701390194327801898252041332119920333457961537786170485923552588761032658470279360411649161185332152477221333004287468299674976560933741462850840921119674954006391481535635391945899626457088063053202254036515960758955236475560275996474866914449704736903368660185005225874456059247661850401437120482890097457419188406629852891202501516001604047078381440716348058464262250297194897484539673411590427624283816926735827207008476056055238312359116786816964508323519422847237710238596872173330067645547768321808831763894564183437521165248671257024325326001950487755926107585710457792645648664132313527793827308255535083175517049409088165156676344333159003905434126603172217269164141924049031435266368670835589813965233902040611876503614964755425203165539604309922618093901053185265683544394568153106502797857832383068400484805555992208436751980382946085714853592257687016806048104869529229525192218095755023824385989702622277329985482565909733954498003125664819296482186778141824794276642797452794116204700196755463009468422154789851391990286689215286074015579619387196447750173519525970522454580250323357141145523314801216248515254213207267909155430697599094347341414700009919096058121402436506380933651161082937007922683557573363750672338291441403991790446948025467301776240965942064354310302306984159184033428248060311310853638273398056771387320698709842649444254567209602992279262502995569217313855829666956417746307522186520062266598890162265881169286552819530718784818712940198970672311399478416561795151829008296787864086003485772347743223230916996462255816676375674459364844870504909759590962723421727051340373229869720647500128361062839167335606644699603171570105528723326969716407169491143021125716538258671283043571415061132865634846333450875406262161807728005968589789859235129182016933978384821772296899563292968109269004104548194480919053813744074642468830290795600923589758378626200016088882993937553213930667322922516012950906941530399225093310660367540853972723120919557379691455275140783146782150775723481732295146551079121344907442455247776804478631188968063260376761858847319980628816562590384478253246804182057362369142610833685336713202449324145198491200739118424307050754936231100313351316400744826394562030699223694634888423415686286111502405769625705464055157377122437124821934684654356038994227647252072727924904684713994036015396870240543591468096510172061665565391658523019457589356967355807423304414981318111627026753073187554944027558422738393019128902285588314405354446282974356919595429055857800855494380041232198046107702369302974649476393397750525332837811596605531273533592264501527016354237994239243116642586285423278992779970452254716193145837272255541353380591864074782385198547519775462987330002677008483785752949842847629510553255286341429542388460760598076827726075567983707324097116654167781906218979132575025940605999226709969787508181563276710964272602781845705208670056440251801678327655162962109070498692006806403122992060336950334337708463940003466248428297641615612676343569897102726164944097519926027467508341136496285874599921564953600770764363416164493529803830618712665677947963066945149065814720063682968058539178956885617805400173110266841602680492509323673898808337005495430189190938902772247662420913518368011245804789646378658564492393917755981034152393614198577371235810147460073437371226035185448172492608754788628363804755683261455573013020404045770229390545485982616299006640191545117777923211318301470438486814237318210042119295199080997208983216089666706547142132243930628599171621838361674370924301584364650675799109199580177393182004196709042088538896681697883190506995325075810890129972079158927038740055493440250185603010361371229626657451448274438051492333132473310263195009555589098163499454600492635777186145242636278321910045754786004221282196618230098728499311546936638004399656795278032508389931881751814093820662639152820210048908136938625217118537032237676853432536424886686090895958729658989784095458108636154941703609843876490799649494558867218769728050373301524091762948666948661458363524142151311652166199674805685803764743182752001268788322887864784051255614189093663319328093403582573646565047512430229521672657514873280872229534087323561296723493917697461456648606762988908568463763014088300740002020236710630964241338046317029298573484114712200746922647600031025282548059562154486472902058127792295295110821724221465736386045315282629814889474598838529781175498819335411532717540700279339933533523689453446694683335288127514403331975713175001305158497230021975677531554188271343225979290185308181831928067057953441674126680120008474114490169917113478060353816631879607642444428953849088404463659565532307328785427590178635047321569679413815137828401245688970542011699347663065325221293884545542708458483204238104153168718247741489837128368188909224197389930918569441657721466181861316259692716814441079194626131888975524412081771250440919815782335753254530261725300842582667609802976245447236458502945257526727584260967756915480766070881692159167793276548113567118534666024187160178069074315550667925230615150981676858909299377785467913696401532547054208454210506720298031420478734821621926248797401178096277123996145360238353868290505671699400690127112911682593305817812410438780536988934857962469316612761974124286545155516855651933749552358418249006164057169049947812681735970527761977327609165491678068795712407583306245546144005685883892412339993079578168343430593813448641527898210688718019790597596395316127067381126781218159176962082369220909226537797276962033321442749021125534871677067350196112643109300181267335931286560556002125523706066255580907771504784658177236435268835925168908080666698650406614771873726756482782676692573956013739011422268980456147641031178612568978328225977209004202917638029622346642485796486504935879156380056981975465388748131231128712905421823957269739484533626708725803653961811234308569321608013631119849920298355686551143568352057502494707851534295702138458484716221825445495065845922644397318792806048044336591709206503404406936217722054790844264643400693891915311758751166419127166679325010510509002474811888741065790678802484469415225163560164180019277036478200750254252793740858975620068825688612862303142782463428719435526400726027810440905580357695230261606203683227307781978590070925835759689299775227375510229140932488925219202193298874650498999340705694859720535164819786485496597506241668157792057118439619219071979303223007267605393579311936409241083988104774127472925289563554069449453483551968476516356166756525040872345082148830620650258734643617425611770658579210096561884961327311776590194786060064320437872383874556643022088240908318404138746415537011511160425107533973676971646260091518841986711128482887606336456371868224760532177962069346396912033175794472967642355316024359237049212562776405158008206776885427063307599842941952767700866070126949186394128318923038976696842220574608870462286851279273970139317362468194683315252374323023896464942372436628059856357837860289285281875395165430738173541744386174074388737900038112984574570303822245397248764752051360457272894868139066838797046670104855212832095358321318420481953414046419985945841436365902219969569231710868399449636451825546687561875702307071649958579114410168309773434080981605943761096100059616796150764696240338891690022558059342360663306351080753275213399080938423958832391735420529425523628474104612761393859322959266847219358274901079598162344790393192252798036350330506622257544108099800594495679316221541138356453526296070822871718363079112117956914347192745627399011037185120416622450819687254814581842507986041661690959556883551070899078119694186161200495937891436118791029899176623862698778470060556785758557845666297543486296948245607593249778447315796787441619145733711299283498330607949699464534235533118725783069414184670758192832236158612354056057751223569059413863290596701037667674006524742999589100363027834593533105005478729500364210181734069692422496523465365604424194436325475006052814335557374031107463108991410174647827487072721487665765944100699338620973068632618122376720549981904032703511297822188074885980387931513413382167254771161694772585010138461097116966422534680178555918735670566134818504089744682780039044314563140038352569614183398925137333592811186823183077505991813050318140738418724805470990781488593682756566531084829700320915092648912718576591151077769948608333313780777218370702189248430172335440894119398949295765653534952631443177269137542712154626331783817667075417625648344657738001479653765764427845031180025121674142247660810446123349910943590547656141319771030986108204242202554489920638944413254294569544185614540747528372657264992132542213523584418590616310847809044377329843968355145048982684269985806591585935762655877967428569659613270047165851172515047752079096632219589774665858195898314619422311411339893517987397187560216172612818521318727946508990362908118664941807763375115642417284353035115003441146932724201715651404289661572519224356619359221125742534849210653536558195576693622025325159300581188731749887034764785772499677410255642113160704706167131559014533673371792511399711485585059063126435588384666006849899088994304957043925650557245453133260010129189954373674930444377115689187508771318847889024421610758550640938098681566539942940985089751695460028267525075051512635474143359060768040788667133723923250559909418262474767751990501638493219024770551229208158068533497445992332510121436540396548539061141528545164709852200512993414251324665780778244180541578608353560633490911016745905413904331404146398994586559865644001206942316191344398384805462796005437741871877756580616041989406467213364008130380418334479727008021235921504501120183978495313287508841628122694082904980320053818544838191056424375726722534737154407232914347890086701955855317675458726023115141779955334892621130348994830959609860594823987933855043882521237090936159196385924342824578924567015053649690402636768473093895723160993986361009525518649279875690294717786398634592093404001553194927674962487923626628467224224278448191477162160996933988364598058056208258103293928586584400669760715856179133861210211922181759914020010661851928804844966244693361478528144004516596700240191465891044721769412404127646682793895390099604707295193317844848348134108236989384948380010406998012619002293670975571956646842821908506575334494901117654588081757578429302808626430556434097787594336191633795274410294206011788439164214492246995394713771067668591461720407220907564980624236497640407816967771250881410897897454732744912214081021703793658664143674021295985880939272462845497284866119885114827169081927830194332019901566923297177098202107045097325941713405561066033680959464534931350998469786703122666104100789116856089334314768312102043299995677075624095390157078038618255404270081195995373706989801091197658813291677832368140674886495251218402118321288715439582627577405039746193315275681935135446141930646640196879219857404449234793625222295247505012712041529832921582874428548274183574183594478364680064182939039872030161434264059460394126484900290641180049877295960571735165559419378534586500423415935685965507350192347438615388145619994577093937174100167746479306213015379857877047005161716620874381722596459669373001767592073755363051546155364773280597029685129338246212790865641113061273874914084610404589417558274480448370300731208152991479655649750370082026010545712151455848732358032837256464030055150967417897603809320270625545954344835493587520776869178478237714673624503626636075980060733413953856490595071999034357620167798488093228014783258528412451138037793900101756423812069217759588816364103664447844892995666667211619972310098812792946210094467012132067340190584799313211597996844824212489926129609846447303605761292227078954413800273927873688322938092050656730658989197042510714797008063238660951020420746559656127508273308599123860192707137464668699918105489818463116274035886012317112926412450977941817775291405992456917070165591784171400487160604120597626954223285027196718190455760079474490880379134698127821182721899947885739635699684790507312449124199683254588350848728292675067749615437565826201735952554837638638846728292723446234037534675898818987975791445896972557028811950444124374194742561555939839553159524608433748924267924571605100924737546812340475957895173654660391994128556542113696729751839137664056198599471360988937425309282332546950799408873840376715285612572442434133392973821917446373129419962385825278976956628296150153745011729185927824585512166639490722203465884958500844496382195110597644066193572309080184042750577657496853656236302710632750024616057982422757148716997107707478411174006352514837815233060606961912668601780131704861727414353280602215912773380832470880202502826381271577306413325364128245815816746752649314872419003156419436384937742515597236880697932418471257014463498016451925205704056766154920200699159697142564312239708785242284617354383237135275330887461147631537592734270366980255207569141941783172341132172574391337893544002511414435938153726102359945441551369714118113789406106561775505066027588866916612655984983500088492171768825895645549839081282178545034496987359900071452433999973841208801751573018446424969606605113328982566840941855312041499122200057965489175773137086546897240660011412141455506269229692727978577293858354052177243084879333908246310736893874156995628713373847055540274738510551078188330933909084488198095377733387305993251468294970155592072510102406627766301916117728987516189830781462252670862335582217977069794960078037603019487489674580021213602645580394739242533244106101685468042653933372581742438431808135427495569311172152487707982968104502891691010436748468003733953064056033344494987730037632145780950358400022308993925216019219579078461991223894059441804167468152160234990155421691627854280180089779513699802976597532245559383989933909138248795227855472074318424429194238333717986495262584291038145482682948011400143604807375029888423756821130127635569482141979479727205396337050126832379530426393749306369722753282749578036208925008189010106933345528413257260172484830211921627284010021430388301638838318714382459910353262998385677461948781789947526902253495541232360235074085164126876678832140206651394916998652381421264942449359504235491156205142832861517054668847558282092227547758062290870801623114585048475015938562086244492288519990996946597080089427309318362815599461413201232019865020623746785847459117768835226559876991935060677772521927252585963796694935960424861341625122720488341734607473061203601241785685969456533442747243514019376159374847279524341516782478475165115749094721024112110700852991797579107199692864877394359694870652735961354412708102175084955577810036907039737548218866704309143810617470042226683080962579518201173253625838301439165156561003239568883764480810626579324669221806294137347655551132478143731791745739547947663573252040151997007769384761377621908072236304566249463017804849825053527459036302676906474761946780434703277085138729849391755542733410568577122451447263200919294997566110039817457469294471353412695433703803288474013735218991902337692617241654562420501985939165328311547319455525174842109940050329040319426701946479290193200963821596008563058015119723977044398390741880078618042715047673790369090850154284635648922421800664065484244017604997436998065670552138048642786483938014914019282515669015437403924373550806824675118644153619630275526414764007881471558791302180040787014441896976435202133480053648412670976587929510748446958406809448902829694871001038519464453678494175327683189592732638469352055633457992601538609195138992661873315931298412892573745069143584633756465787761716884512990074896408831187863343240530399348602626142201342200466655825785566022830514327361941042547868167196382341723646436750831410364354104225608975849060034218795557932988508227437249037223051448326616042478238120712402859953060815988376868750833669398921293710641130566628442446976659352207146672664541804696052631270676445016609166383782055699716279660709115041115702368761726723735182258813214386935918697723091129080111592619224145855328560739936510094628413174641000457546501442893091865647504972589027989192434508409009279921462866157474112026833844390002372613621545111102278775402408189942587735194432511210743020452785344494968432329174888129865039435038035487948757442733481117572846844580136951815504917471177923785858691716314074217093419245649242098054848419717970343889469077220542381268458026676406353844537368706002251668673769455922966657970756014038213504122303357083014304456458095872682002061323511494552739679294936645516230929067641932325157376374117245979259340981979376779634432900268539757044228808968642649005349546745207745196489713168947086045343760841576231504335639253067130100478205948878786172999541510371294746174300343824367821155488433060817720838889608529704230289639347650070637187468220387190704798810836776247740368964470495901587611546001313341140580589336049138241097771674722620125852471473127024268188401952023137495381314621867696937241462777578321569827397035823814992509519284484959111883579564967394248683896066302541035605226794740500282370205298649487175434441925105118328547326941017447890227309323066868242496961944089351408749277675481640082473200409607125951915042485589140773243142419566420585436197949150181367019256788735701646809010013981832544663613691465874668713851575981296140502531945172050267358928815190260276564702196537442852200265100070218235862665159368729891097442841634161792770290649908144830302098081487540037899266360461452339335121755457760536011969487495010415478480855397915539963748343091654778207826275853853283051123703957511355308843765364674698589334319472267615188992282651498686727833856947026904402187780878351445744385191838734484674479821650359136931646397040287207640302263622774768184416770004019237734342224943352283741840917606109529845479286053924477897657509993266291474524072418810432863988775150968641991776369260879419818872985938847688249791063796285833631438389214931864811706301449645323959159828238832369667318576545593476112588791114879827640287955887266622531286609091892049444988469536052785667349392867041514101832874704147569105332495885210926508173973110748358803916994012310704712014748370067659424074749331778639450711968353712000643068201475385842209403090096855529058518945570559077074203029527078716502547144616295460912621017893733595697819519813349038066848091677118894505472742357111227807381757948241909052306585119810533792170566350440246751932748118688396541851035915583690022253118337864097257003098840227836591805946861193532384893791256363907247793523319842395173638637950634724093495250095916736909224520116928285547966710000808675715665188276272163095365297625740428620297281037937184199827068285653113477484948495902789073276411725304529720066264193118447199191000460923483258866295868765546946879689076840299296958785746557584634595590177005334230666193996196431567764558807483553872912569282844010430717808459042891366381601136130358137838822723581819103594390533672120562155405508773636187042632193668106137340986039005116728591754254293856514310289365601467920932652028434142077353643080742107751126769669199907775248057419244748482749811326249973555028616815882990685536641237789126430878414056429043134876238918000876506832513903020432916509134201249692679736280553356170694055441476939185918593399460530560268686375275303318216772225782703996121057257906257837947317841167022256213073604817103488724996878346987980396025432940076826841691255213326655416753531276751586386885749615967360628123162935950618317110119766507526236404097806227891718184277079505571917102341878016371530867631197731551494811428307917183375734440852233971914925807879585536187290508823587522772800396570446483093491649835238441392774986559889259041377679621159662436732415365524237848258238362070415019570917428574929742360098868866718276516615675552521867891604477478462874440101085467594795961758265296982916759335165340525859814907782074107675766406442132676464631714694442805772739032987107732746391879997789064855006918581617580930509475638633945172344573249371442725245239007023929850823148605526503378544743219430139411622429320438423424751379598314609104751421140527566515950095864447287501274842202413936774912780765959092991672769880881011783216522757939542523955321189623561681380389933344547961203492395250428144064104604926549799955613551068988203323357082250199577987810590342796806619233089721283159032378771695209502908708302829301621854338933340323257081674122092903298101749071081797264715533114811458834087969409420405109645608500282532040123126587945026396820133563927941791603419619144669850625975427953245600167417578309543002331167328384874404772215334737461826208215228436781345908696153940088016808526171664499268246225335738688686467381492810212114008302575073200582875711236042587762064132301532654399357551953584968188293447687192830064297409789637405366327284199491539562871322530219828878267027192532668715565922704883869820361820445002818189472608267492406460731723730938009516461969189254970096540710529139093418828591204410885712144168551522560380193020433556499508326997055755776160277361519221247891582404310794062484499827609325049374359375594284012130936291983944082554784958021574203662350300730467351196085196845143252897052517378702373912658402668140195942270319351779400281603014374405448075587702825115025970784313338846669588544436063433286875282620351722081536948926199296979439048711588557932654556962838124699350007715437362010511619475597099494351493731887737314488904908759101486146281516045682973804736754512132854562025461493659357127667238043326989738568563185537280667475678053953428105798408300217004041705168319504429514295924951351445144109437029975535065791571242416173966691102840455941739048994413002810935423504104930966211311894846061814944268334922748451635327589796556343127343664154545729736795841355403060009245503056359864100822513040294245409378171588204059956318878188836442786694011244200463521637354143143094408539586251127025248012898710026677887229749830277699016932242537525026858507256484031521431000894776308881713908524976296779044112141604976469405830735415248977362217666659230509681660894991738213602323777019016320181697443653082046319876454776783572482066705772195760879692837425614586812613424670234482658720094344134216812361038327745977319650891461154294910619111388969522142067215239311477998289444696987811785304908734499594829836621084443764004250842672885110146991695024562843139989973610949438416443143959055837614629633109037379961001877611551806943402080290749828993134116480731103956611999349348279574647650417776737227346853252581422955368306771681999396700951120627837292731885256224577591935058854673603507307460505456433834382640764330735667922961636729255168585669819526994454012541088905378682929207604158745728078516689087498911755287333777559450111863825625813526335463508475040437096633660970843867983790135172157381455903972268747465030426226756926330432204317285252446016732205780615904445742749723639223837382927307339839608512566770637703539324254343603088331246747562451597123907778334317012399010642202663951313486915606474558572612686222102949085747298019942159834167174877854839904783656328734433032083908563227849355912917286644370998647061436673934624766445859464911760940294696639144069489136843520761765816770779446209706108724107126403964896685630751266344961647499409892612457449658493942079705622442687717849605181620488104882461927257017774940277110842417350555389311515232539355249950450745128702133026685458281156018087095572903531090438911897519588234914827302391316921146896436831981127486271581188377739580011231445210074659108273583259581438517876024028446004507118920524669972986555824416129732204567397882935304426072720516504893414854138025610151313220829730268096816268822109377692426806127873727453360616828935373819487722799440877219314119133784023720032314924996005674506347528828103446394925511810084307137022219808853257126772714996920080036652342470627308746468034139682332274562869710853049472795457155033924419228002306676241146844745346812407001375242250217569569556217156336726331441044448198438116530871266121084577483646764202294636162430307915257073549408123176335556536351245778120678646522723511847391076457152644565537095224022011634678304732808084126889844352681352884225392962267666277475443455801101314733150851650391759411159990540990605275005261423513922269667198796984775916916121229189150237615969811187126188661919276975095672479565501253067605163783839578053974414971342380262136965996522521148417602085806193319205000764443916803578547996097186168368065993287968345738481453043259720577295707392095126184683609409703105859403580931872078478735779306526423653409593218222803168733871216540874342664570040341556599537633959595197313476213164291385148307577721426422175253949008678137959704668281914772979329823459375635684981717631098425595536465185331002938103345120634108925405721871622231393379393522131749379984871228475508870770692243715743573153300339842138942785482892714093423900771714387357618258849272174804303177807314631694863687948306011173102139529560860079209189310506795169214634694561311618884105898336362155654265888554712193893070449813240493246698607864670421577127169554491610136785287114666199383492202753085407659184327875418070382413228944615014853640486534827595816874796346816199884562921105888657409917067117357232716210434742815664363497044204728243668273276969764809992970660016819796035277820722170538368406424490839369169599454838811417636442102814543380317581264614057739702640811559025139505789628628056802498553857900308808434113996617490287228017015599428815640546280202627174456080002331321315927943414861208064300044192425004689692899386260120748998813240698027928466462877499790874824081810850550018749084986670223010018289311772271077018273588033860120886015320239850550430902113600871849447173683913878891367065175138941727834817403624330778710379923976639813156831831906978641322101939325306642964350253286763741311778060548520049848430770451314143298465083413892320802546273148573944571961415261123213635463774848176358391117732731372582084966369028776836834816656516815055627599519230241682077156451605658179567699578773400173786144182248452843734671110059291048860647726044304415846024386680076125006706741679321390829746710542179640199921501193664110448227653023564041567615444051292349551945944048172628155397797829734292514661943559347111488826263549566890670327905901637916537636227046749984005754670365633448030838740659171565820799267047706687381320101615879013718455782231247819119936673495462105852464231707965034253308987868201923663143442935824339185683069329679546393145198092240229318798376669232736021245444477617876873439233251178170044252453743959522531972142311177290760174762497848867216017851752091957333255791761815479307343277577704963132363267921099378311889132674569017197799321847028548093044410442631736251914034463389539003720794945356221334539492900033949941714577924287014483566283393149564904273187379663993345158529499765058709249482525236802032021742186305436591373779013710176690933029192842754253307182016063027370401853174498777132169842376524310212526944127707535725401486704049418176873044034168482249870839569003760631270184338777202822533971201040881535830378241908904922142923019077057556973389771438180770948630671247157879675247855373442611677169675264354686792220338726091695044318595814872999621326486418965469244696040137669918357969561644707397511769099412795590989820332327990564289619661312239787122045126553367066899824545543253400836563685279106076469237798512898911415394151861271011732536359740601917097734761031192826929486680622918348657764443278781953350380882864155989561495534895715977282814012372168019561852905680985378284986475949696014661675487176960988317826360933760392804679363114809398190985774368288442757597967421310270084490178449994819046478744804152520573006746484737543555170043521005348119705965876986160479162210177464235149443335582565421818125421633931814478192652801537982501425780113629131576449792383532255420087839554494031382459716992519839908353289249037021756471255714762121743478857217878025008324168991522299487258023886782951461197640637015417527338140925698614581719477268672888554949463944287730836088363709323264416518346177488965848353424049016233307023288494572627922145353056079259891911733913739483845778128664700270368842783822025822451580094941661160412554294486043376571276606043092759867656481027076011733225056415232908583358261585038428698319732987413838755590171320678353455414380546322428808047423567371144714069317848439166005413221306489863448335968160282278340458203231020917882511716418426913306226724559196451382514824705378707522181465960703507241835749145862959467484299609272865554259055682491893272111445918437172637320896881638378562632414011143860496475659897862936439352692874878931986863832724308237726159346220305516468157034976633184283429861846134271819340716285537462588931287545978291195493321890758057917137063717523579362859120308031966049906238227201190039317832017397708000025805394507648874902838903025391378197056132131353899467084934327181651131639976198861759539014261246177319501456737072324631341641771347447843308847785976110536648370349774905119741397595333344508236394973210386330085255445252114097101080856740954240769337329805116031518740812822026091047524743566762826632025540806110994561859318060944105735843665335868646115931413292783213158598675149999865678003203603218777787645541607177966454773671417233331610842026876388658870814385737186641269898607230025924328809509679470743256506518419401053111685109694548234841717655636157375847578539863403340154849697838930037691059976095636407252337476093425256230091161816493069134280060245358513091444104356523011575017618182305459982196527064687268229302727723188960242808867079482419245937089102996951226695529459095469908161484658819647531151330494256578917515429838536173168962764567379177301851150087115057248782713877385187218408757774821399263744896859998239212242277678618379654116327907181836209515904658519033003143570888168515554172375627887355759840207276366072287244327101285923002104625819163359048414668935904724911698340364627217702992751225403043992227887435379381595226009921884369520365406070610404221986320717437160185829380472656433465482952227157445308284069059531174532210059224361070074664395944744865579181912417639164414556283067396309503570712178818453909508225519516164799112693441640564493741192891273827891425547901416747966035879721853383665032299579214010792081892486645674708610970364021093204054202312132950000551262017447674805017890065540064100170066874648058113478467217811404923624522596274572413484676756732855140526324637282922980712402015270874898825485759158124516416171761501864900874346346511621388814922326597818711078051105981609173867914895341325684113571502704268308107219288528219475535185013044619616149611634865191967230380780091703704507196081385665910680649794636288752004708047951009524716998486541785253256024707362926456869163392865749803617868011463762218959314196930427683304178644795348925212028319634318550875771486732549932004786228468788594171394314394688676577877381732989086150970471206853992683438861777424239759439868212334122847880841450210090107113883245972519278820690413052635215308917439251963973266961664847966385974927283586629476016469969115861439403267723319881555656591888691544771582359526900112387647214138623693538967611409442325907420025750676909780985221162666101172391657628197245747580005498949057311158170372272418684692819619166956702479748025575900091901387972719373556675531168303521976658047558532903488407656401845893963445432918624980966977867716921412082278209251708912943341909935796965164881572860359011090669712428159372208607018606862383630337424551347041847208370360106962597418229255246454560434343400441860164253096819916770931549031352589585885167833765757832008410111420198441482213058045194096572824684079508024948375449137010920904637009743697850055025574364007454743244873174861971833686682281095248991682028575395987577187236158354680482019021829876781460215409399857486870317478628836135906134453428464805663289833454125283593908092824008246388185277470596155230189554125859309236413617036769902134148074740833763459033235975117375372053458429034683742520500626297571072241906828125237831914649126450577872410888687972934036437136408374513695158036591236205933456058420683217653856656506538761866318769058265291880581733166879084320101788730532422223517518481405056032067450377260805621278769109603438990470774850443364604366892127809465464332690841357603103074095222907351885610435496058993203964776929702014379935083362477994908095758890523878209700347121045349660511032227621242006868921849321985371984715700230689954667775633628861089393291152639584474913742153473103725276580534952951972947671539660583356249209454115846922351875044291136344023393008871055047522917392107474032498300309671868608528954509495943418008043861459956430022582724919955880683298439804627847553446288828177722252456794770926625208121968902215169794718677456305771105552390738734641214683343592228314748733427827661492628054654115514069085799045424875429911957769318008832285064512354941863309556125226898234182758750334155542753362696409758799712976610208210603442185819960568317341920210687840671684471747832840247473631873933454388671622621471574708297096879829013176071539788167966125505041377307044372211044142327956630569894715628271740204117560374482048985133168022157596057341886687706528033966247897102589452658146460965693950167362991086990485928851233111225520340144657052750462850570665268702749992391639949437421820618715828927507636823339528668953325225884129351520974417821428748204781949458122345144086752876180874042414916456526088723371343146451571113109450883808690043644388421879434256958953794534858416609670512064482211432463259899921298526410997070446323649019275137753387513020951600140837904126491563638874207881288068106685283167960132373125255238261199470877522838801536437950459158532924513720119010145726444903040570922057428965679888218760423481189443904857254596601067039662571668138244157214641290967052198610499761251832301242728394023008471746100175602274253307132633291678138021363487796596489361008901434964656677644830238546496681326755625790019198758671132251399039026909363659311369017695042016253181389499258437164608614431097986862475913252970654696152477650278046572035467883715121510356915954557169744955582564677376417842329424127207727579900509996254020391751935846833420362968747288743350702788653831000043830944085828747615725270331295852632918972102038335814603769035038486177165913111268801220851500085072798283973145184561808949029268135067224917431654113465247948221306603025010045386451037133692675043256933801113045367467900400446513356199838980507374443793541209851010727589882663705860533693129358326509501960950732532867597250029023152497066379715767822351751120171819492189481705238343160832366430132020004239698498778649068657344572298838151315722792383771124271078946756946818182264867006747917255938443377173437746687351118907202227914410038030743906371845291152904862592000708146645727337371340860962602391376147575498007618070394885792738579122262898409476963717138299693217722510681552162447786670082097480440689913963820513886341326182534274412755328238828254622957057611866739710785996814863524080256937725822851259203682266803453540668237628956560298255654754523810052243382319611795864903708716121177549110815965358688547394876565512926269049193312936614393359203476904076611469754726094594527452230853998740992754436322076269287542282488598892263331850353016366816351658173008155032615145049802367878641403970971782993644998473327309753954069701292629421476002216269139533215587305722738926791934247157399075875160769437908427613781180058408440279063886251364059810164967734513515457081837087974720332206607297876941798484546163880603712912936290492724129290913875059769881622864524481008844928751895448460620987290945729814868326203806084356686199581895846405178313603001071122367993347819556318225134434350697911671288136202579446055159077476825465370264238420184321795977011267846724170495039321938095256157941757840319038953618959496248532475548987354400222774305275747225099537766908841593857498970578868782148458136211744251862916851483928717526535684194032593260921422435934654925316264775547372030066607821837326244282517651936425127809563939096017836660754818655142852187072362252577684232433975072776065071033568871988105103363702310053961870291560908153183390996221791141604878445224256529513576342031450910687377691445142072495097212377231667597952091032095692358849774102653218669291703724014610834129047942113015732084792108723577604345394703902398205173783166259221844240495053548312092263857861789190865088432990345620527805628397234929014034847674601296086308998018047347465618785773232505155922076060644386281759613667043141820009195602676334939830090524072107181506324341754406402874925287669590761373189603360549226226550685334283932895584258668037577986789222438279267152399604527070133463795138722500652401183077477698074569523641959272318749904439956360760328844714122513619787307002525957945616951033666950701973249455956670138401181962852702314297847548470827087272562565850803987326133658985579044377441649317111120885626927430629955376135695936830734115025813042304055660406880810283106801072155203967567902653368812788659964409016420889203917104916452590874092400320986119289852046848662291965817157102761800296548771002389421976840474489414220136072112769539452475634328689501995249853752607150000190808713018937013747874800033164877875082563112662541675350819904997412935917374935353535127038243429368201452980611841206620716589741096687965905960033633886105348731260545782472430225876941180482381997922797609114076597178741368241838328614767431584303007785973961660694905285244886694744731467511540948038743400195822557299016267192463911868187997954750059547208256167882264718265812985452709587995552248083006506425274145583869470114712319532421162732781785856440384753041882773628693885445849319871323291397347761033424544596451629885087424170278310372084018781973407140566257406777348587098409853111044331622976080880035611757437647085761538126822763707256795289311134899586693838769446546157992013470114800531895564653629579985879006450818608417357878007670088065949216965098566216894473359890816274138474075613611675240113488726682118320601345863175626980082666788100575624844765220262321542051152642284830746396195179074726003241516884538822938050175548564708500343101742269126274611156933881723612168736747055070006208112790843489378149600258522967571807187704807776602024806889014975374252573088676146562353056532512723154057328188403442595637983249558459045162198744789485429444207940909277771377012660201533582397109945113952373313624349730880838442001374481118590704842294475669771150198593304714128865336115955692952432814139535435181863978454198847771159698552709515815156533248327272885654881006702292875186172829229063208368510487304798913870439892888295739565149046478248243219236304450470894629194201472191868547251629123355241762227638156242909265855104707969220223680506078656251541631703273654509193652292732455616054502491980798783372028168344261033102806695273065801873518451940465154787818345366958952505370635298578610782211191569225315159972370071024035791659058374171893071506116418719055357183137919296726481500486911403896186952147951721442096589917968555236482961149133888182280098051331812955973015896312017575771257671566601082525847111174187024281330012027492923688534090082640752248790536948793562256027037872431256073772392097108543809010598395905326034582886261443080411687001812459669054310698226352694222719200845475541530390698186004242857460001883024925122246203362906119927505899902778159710027029814045966907240809406093084347747719705046153577035387265356441626240581001311331268439171435583335483247990411580688670275366413041383043688989360885312528671164169986915366246134450445823843089874792672615943052342313460486453671017050893225681715902529231006654934243070106578663056872108879064743682746540943520890558446330538809439055739735037696633472770866519531583273697796435956686421754776524937863468345638474872020168720383657178737931562500701817969354211301350826978265331156196331110058546750612073211996148039792514881217583698193985127368647337013453532932410933975759471596629679616554830899291172868599362631759116212809339775399038453004886860831434707590918275476457503593158546783493544024075778750504759245701588893954678433052220221575250845477878220293457851170095181518188171628124826451295381743512535463378319006509632134584702547324652395003108532147836516567504173839359922949160026847504659103538753890847600565023848836071008609915344285785252583875524127824562197426825795363237292265169110198158104951583691636496060084909576748550965471610046348932660316606155662570723624972426873141548518995723154432652039193114586106563526432688528934933599925300286476655390390616243882526936457874203048524748163217687546805465405944415820320607033982652166320817828418294752682058862768385318976032464159235443468969891998064882631243930671216669266717860167577090786310620329569865607731354425474138389784532316588662205408701901106125715570919030155564556689488799563290319982991377134497505664142112674847117229133359705316297545560119345384944029965911518391076845182772853529477473824574934628620770990156825983621100515409701581164705770408646609328342934522698394369540200638246980280597259611733619513804121558029323404957011690551626980976092185583438464431672155069148156092932388106801271903832629491206508545580636295014771548820415235773179314321370408664354410756994726507047684553346644086132272282529054219153812367800626177559760454462785704604252928539818928829953847082902822623456976896585205166184356735157490079585857791719517772435582458315937703302630769864019548312659017682008057068424984003420329133700520148865087632173366027765654995166883819303938061357153305552980112219034118297397160472266791921477958495245350278714074444746767441866941231016186165036162687288958126227107165415986559398060785272041530684083698326777783776542159513594328998369159842725595484760866575233293181114875726956948042712586715127056702431626646824368304342198069340478055082327209685919031806673326569648314667460409915587378895086730763881424715140177582803337079273371976518918780136601196211260610341210281394496071891654025048088814432199215704403666899897610777508309149017768236724127647997401441847930685889288247965555535385808247444255522508402252172313271111376933445282358089398149536042677443194057012268394253194594004409184203581739127076314045885726656809188133349601823899439473956818880699823199320989518578374552661964927299298851675699047382997120946366532044526284105631260427325208145238324816605898718402283240047511939390943958561018352507247829343798454827650838997379142412597900739736933202766989515419936634078213957000036037275168569846828718233521832185166658533969684153130010770174978427886401980312725223699126200426985465565591307343159558408746262562209636828431448392617235089009482736735525965805735695309081266888114416205550949166793057938606823362129079229617128378770239796612804146936009083297888562061829774089482364180005300545688164432963036490367578016949272547787509711678626404168793239100520659177838562680266082034737848136037804275602387453473745283668181285301567069781813057417736446252030387192303952547723022954748927895363928533729081578777318555233085619100867613429019707673911729976518290490328865286926155688966485630333569259126780269782454650787587133647322986793158299353332215243804660073272504886753569202994269152095704144787620549512268599531029728798085444407831085123328313894595318567070699140139852276125277132073203144021269854684668531260993907627827316484201530039719388354008369457926185974510242085740839874812706840205973413728167935313392830155250538939024182112366338517575658099642077601379679562862528340112013320066409082517802262038506711984919548156679358090578887612462935352351113401169965422436868138378694302766098189387478799061530952777019108540028512319097489575066271081284857907728110307998629467055689424745177137988088543211394200945249675843051647841693290302856833558830226518746169523237173769673983246086182670663055728847397983269379555809326514103734199526285492124425500084637019235136607457442720523234308125534680651263178510868488724395902124433027666899169035116986369126169944155231101792623571333373434715640078717354589304467004189081403051870826078346968234699302857016076222391028244629551779439840983201151054343440129071635465085069254429145051893342983301916258995364401947976957858965401381616340365299078230835853905756348254366094124767927982120186097119197345542884657005908061667008845755462279653215706210358054909656453794967466587716625466404576475479676395227238982400384013508701743168921385423643017351506305299266817077148273754587459513090704290828277772055716513576143703875900405801509190289865788212988194294248903135264295109637375703755027663082213894683385087193765019020137153457636112694345133743249793139215471790459978380115575772846608974522733730423973388581621698648915625573883143452323960389726523199089748944561095478147682215902687968923918330328263876116713810451497212604127227430309632183418877514214855932586003317164465317558003439323067538002562700679120441717933941971485919264716306333718434429494199034568821141433835112959095515136499868006042616437941159480983572324718423811956118420550269220454529709504634827913934756107346300918598407833015175339189514801360982547456542371632901280323036834362876143534509737678767420328092928793254131301693163779300002051350847059801191156620173638845768797545530147198727437451544296054922765197358022222800270295480070423865438050496754293225424001573683313021355042875396369816390511843655822805218526832014993194679715969540820830154615663452607128298796041256595506191537847482800497225969645653584578044326824621915697609790565231900546136620584717281390084991860794598967087156665356329164920989685866218684235134822836813559420464987408087965456928413969686437315279455025572671283624877937793279766708966579044323213477575976161134776293958193268852222329385146390676285981773275100122384972859785610245098863647203331263456784364067700500984375360927283847514795559782143004792094878400512414894954347092152798071382430190113029412094918447655663259729510460300573443397828564576529362387180906619696614916334455585579578018855838649473582039593494183205053784671141871706686087959908539473869652241513952391629862444190297007037114506785953059186187950798101141033255036765293001350294192550700755934340128279870297145859918035765229297804135012833221267342229095093716747890212815215329647831665741632021350619334058103187760098899322442133106156449476737047556407236925110805085744370351162411398489484824794575017306625197059650828974154275855265336823727723705683288958268271641904338569336635770330632194797695073948445594078708404604192872387603766995923570030219624155375569532817792048151781156162945351462180647578375553741015365654079550307919678550171814841182483226179956726102799843358787558869074304611758788311433492601267940216069510091889374217773746023377791933070385513687655813319720223193772639520981759289271706320370426222568264626566982385918230029931743672316173194626618485374287246622828989690760896677675555666759044573092803522815396467284059752894542929336567691997245237645304151029671187051184133404371017847331627812327126249210562694877633413445577176628307321941063911005179871818590475910850199716823306233325454946756157593400712323830410068710244530714929822635076042309376003857597430886511268810356978992634757682497615628162624587972796018779511553062676450561302230467190172301452281766680068016072798080599733705561831548718551654256969449373315151494514783422663211965900924382124759792979367018932804621128047214427256851694193603485411512650359983472102021827407178670605358683398356641164071075940948697764799964504566075096712598723991406237405456989011953004589765096201866319931487849182236464873484895562158982828898326308961830161737528393027789093173915737196395069849125484307710132249600564641918091439499453511258974944519333446048807429372746962826105619152047093896500633915287260382601127709319806487565409072001165107718747908306550600981524464190630712289216439054898063394227079239099467428825910101226176180166136550382519281186169698100289959819133477754438903790208374878919294143304932463594557899852181122050080858163068442868150100873469927335155106047211844904401542146681084218735121398048509120465366827190937675680952286862435874832070913763099158341543944257286349246330365198903395302914437231973146441924147319848947762468941967151524256788390242781439746521420503401010024050360333399345019572152385189829891598530180251955310392646360206725640027478525555085084266688308132483927154475339566735464186258989417974952134641732350985827068880616559114298135448778138892303708197780784434751327008659544550109319897287738197387466902131076557395702388770644940064471274036961121821113271278363842419581218621138181410839454071783341284772701244991299554198119252464212394981957938384311933754374531844582005900816280683831227677684205245604151114087846800235961766510826054115903847443086140771252681976653289243428851303545884502073949926128857224320648662719169760962440420075395639785660930321847400009698484490351557533685162165002297930542183984609307488593003216973026675706112391394161244701879116928486900850179397678271560703303880692220574746180738300690578699817009490192249784019010563625376798879395278815377517026094249798180966146686741017912888236739734890302541701576945065291189764202274653291245513683906375222743993598010225763291332662876972570139023380222937027165388718144220645948624591934480399790051633087972411261925688723666959404114988121990415789951752590328800539898442457700343412063149771449536815260775871997874961091204333652516007155175528619091954390566438345817045962514725128443205742148297032817871478492458344859881897450359290140837788018266292494285917923528186522479668479139258530700807821645460479340798096897978060374614890772629456916319010196306381798950242966481560362398045551816269186200104734121898794185199223241761085848927373568315221000195451132888658371168388017273629625986161471380058722275103978227446620900470344562690874288591561407022872291069793232315062356710474520720338545933479498763145167032467649091877391718477434534401646303565452122891428580523379782356806060622705123064250904858338111310380607844878681563323765406855652112780945606853378898812352203655481290588924652188201801963145096140913384292765185994420342205373890786988267177132534091023164558687701572005324301768335947951607914000859158858630572869882895856951376797730569451623200933494962223861200281178752146191803121767614601252927677369884167856574805771424410562007272391480712003576848571413222627411162027759199157871507525752588115338053097147852884194663121910744994933904327152094507244788595228908751225461677243681517051693817986062275904793877953051813046777627746807696114516233932755646222408010310927910572709736593794473925345112673938563886847563560574300613667741528265091504740176822952953289500528218305219029808885285830720084792344134417667814626123190140280704704550842971904647294515767619988261889817240463760193147513106856047503966598547549350914584870079770741739644052497264811751974272976262924582359357856039394277234885765944137753997416377334857455422272102495236938196746351411149277416728543200398249847240459171428076482305502340410160364646659846794430317320514797442086616123077273058664415149372735869158547519915843427574242131427386050151825659583221621014742883550842540149591238870944149408132733713665142417094448266796557513380688050908650143577291366977136039747791248477561055909894921793763905053931113684932409222758495642063460843432679346634085929873086654182144460473557106114191232470758741817972532025881349789926471166151863760468504134842478637290229283841317581075340653365815995106311150834200045510915337337518482102327130664225453732980799000022195235721231592669870315181946691939333884825368570980776800292514026242812860214805751131621166495327090810832752424857843078042611280495930706817292183424445234755617712725167198974748966822286124548870959754434624091660898701937475950172369592122647875190045216225900926696135749275779190016931780102998727171261739381164608943226280394011089866370333390847104826255787315256383947850507842592687006857238274698741662139729616724481898877560158066755838907386516505646945225131816556796216296157872810224903142716707344907666946106954036991291393037936689266782657800937230321594137039896570704212929065604338795847567543415669715152416600232962322017513236687820139214336775842955881882324792010290817288892529275210809067351170147791464453800506199977207097371208673772110789760808465531187095937632497064993827858227938069867205693869307036636320147523704687920442702038743136957606688293670770823983182618215110698299545200404972430048066025536660154302366841992541670932048417139778485540165287469472205349121003658878853286663837992563625404807500761942201333236962017321212252759220855321608393226832324294032526621261894985754186607729387824682192150576903498067020663962661911497634412179291197270523833771040175994675166841414618548159978605071170353234433577159462590862384216548865086709630522690431213019605884919864717142856370807899862161078404509056883151814443228643970228070225472316941614566018281000263431459943381084446417808466969763321027870848304339787734691668724364158395775042374324662733165072463310030332703436142219354613601929078476005292138363258896637480794798465965514301805676732600144296727138542113574711644851799704740484179540802281939104596478568952732681346595745170040696414354220747756865433650836692415322921341206684499130803967087991791619897254364429755260706803985531325951400017508344217005698117072556773252470521531960116155596399811902133752056123128379675655099198966575267723622900739877234505806529040434647982516084801727416407554238555570261101824901363800204422426879440901019615407788696446297258812116088910422101625158200224676677879010800549414008709988362486620906620539056684269359457689466711864983528345130264840353082044581446844521742205657092593493506146085266333283281738151599615524181722270964431122781296156128043749061423866628252009753228781518924757676266921592172775647268425967069738528699800770361279162225535617085001370725743404598731326733230903965437899824403595671249314225540192973622865715016201198592887666431008871514679470266288439633154419176398777576099958084066769298551832232523876283836741785498438562239421367546727696760621347211612948044001011642104834611913859418487813340424338184734640513166404246833856941229030131626339399565634308027370568852448173020798518402048014891447886467488219444645765956058352899856497157821078066446548702377609377816156488671584284458167071623286999529275630369383091304038358152915049905708392190521667944256822283614462973090694281992269845414738886447928823634919382084616264961324843930791728101820528832065082710182399388039369868822923636527229038439362060067098409506948155246067933758670006950402426743114714063455837511286507354182752943156488383543328002632993544880645908151622487330671008711991862387121602526429879668542418082727905786709433519316109496864658051812250239992284790249058211038482110478480515505574130604805880025531308645963803174859863388640857070380124893245599202579527953763985194347532232245038616107432606766667897609854805812940663808048572159987926645183197144179902937340641193120225144079242577777881875462755886825600346112894961292797844125812995030475861142227207716519282468060599916142119584049578293113660338749871232002586330110022120722811621742824702617574571970725874258469889058764008486313399633745260670718902220911802451944696356455335476061056383054494892054221523921813692011990439512376844594557398131959340357913605218639653497942750937422609222823343184108491197907832030417537694550511491066613456208873476679004327428834246769113505238571399939509235142454540245901459798028992806305244315075432557168293286611906452743313051449413867576389773591484522059281794362755386030727730665300203073409441163267710034502616954602790038145401354877398115142227956810122279708629497067321688884532974988558514266070016496303987894811898811902324603546133123113533458644200726712442256070729587961970285733335692357210513947285177642307075216931855790611228184658487588045408650560592484470156163390147855020382430491233384649796893421674792060309567425843985898479101678977587238103699285652460167987962816275878510862413408459769373668244587179124947688344016298916237930216624180911108784582914188631973130870338570199997091639918705323824800462238826624489572331829655212891235342593269602598702540943489145603610938399679852812155236256461656639225708252453362622898923146554888373370647735460922961485336718514657166456972339702182089757398376622888857288069966351290327176175148416614564710087162519381178781737706607783272412961095205046815088007551450630675195356872928504798547287744641794624701836614464770037176053072539494834203960569844997249655211614882211947045071421112632194894142987794479271010292229244918712598022108213830243879436934856772046613461267770616943993801768528717429594402407338783201040547609186166749919996125952471463535637610435239142120554308600727654363622373489898979706663104061261392744277585992879097925205489907985068654660548874732749848197448278402355305118301354358010496182730453207639211737054385600598392113197465178079093976901658786616895401405035241908077220541064233265056116614709084284051202637472207417100824790128305270782607128032878978080900969630640432323043211657245291337877851316629732251320120092921192583197429948101953088876016752791041176693031960575687882952453013291144890654004327429557184517499317298271073134915305289703919883399270055014574646808824721843150507667796723101593517615614848417709513101643546113494955734699003414869722382630800631847312113085748544190631616805099031785152912463774378515438770011573437030559750220682203678072945828305572241114185337154597887178019685572791424926880094450351102618365878932376374989465887326861288415408530299279788373581019509263860957221487780370137628399009957733872676439145472720521651805845009708750530816086660025652847285081800188856889274243096864757558844541596452718975387175676783882274346304733481684763399517199148826512418888946113385149147331131689413272233537928400120396574027045560153625068091136884465518683177855173858573303542945112631745230005686646888246505471968427737238580573219694592015727967931080723557440571288517236262917338930432473648338408543082678307694202919255353361718603655480352480760321058679610428084028372349359643000181456729074685285245009880260402557701530053288416285508141879730007405115488609986678054301567475876376879546921894795033795020524417676637663321509501908475855154056209964214024282430188740415022041021210873881504835055625214876789105437375571878003942162978642192961365691356645875507392737597927453760016661346517201439110397954045541936406942569867598411481837811828766875586608543178965248989634037083373149383611183437529735178066426606771633375345490947349118101309724384198323203575540459780387946360424503301533363441176507287100899498583702126426291395196072035898277809403105799388699056230832106235722124339462057400992659785697955234670247869729628283246529193463301700620268635654663464987446534437042873987792043646667069080989835016884274637097577747206418756394919610867635889066847767564679036796482064800470354967815891487735673300250334379759810138456039020747324176347280140123550955606267310171243532382189843153909072237478638487636107688715946923952331681773031623287134991341268068137549239221607722114405328410835540114393236560502915304993571600202345272053809168619821786407552353190585397157512236343208115261141926889589266591782929051832855592710492893531523591142631079911317123901432133123838806306767269125707386461941460167596297027819218359547820885630131733946236860054378083279938115749991066516135472340526422494473947498011086428410880567752654486349700905899033552403504002228990376715417708324272471047737838119303651281527250866738665600022630376041544295149249994437044097870172933942703780690000616617503694736568275004493596125785497167344088314842510753930711720927962735202874749499467878204749039365412959941395370922621502698978548881176920231416316054662823410235049455336916186375202245584449511863831741156136056630776897926630243564685609982536264211381698376873030332733216806681427006014721365603366148341011001911663810268988421016135755385627637830484511062150720512144168254919755489096705297699929728943546739687428097772190300615519780178835172004780544416827005284090928058184837956696488443067177051090188518740930367380473884072155279425540810157750431202228965196941045938137061435391006925169666386508392475437577898293452229840332983012845622874627992987112479803624628685702271455146884199131397189210419861449436834245621596117721052949400269401266729063739583427697558623275841876051471865827430924805172252065364700683870572637857080623458107417059828687415785315289002062598187602899528802401585375981294821793532002561697395062639278763731147834441659874752161343266778937352031397961394645360239068968703474375946877224239690897585501319417914752510933543366734378695280058574397591503439986415737277407470205507334431191286223198482048026855459304263088555664668744420007133546359863009698074227162672267459503656865339330587005561841978925834249523082616798915485639479965044571609033077013240666576480974519625741476495026057625204072437271185430231792420453803805326370058688801857121066826830952823753768849504863247215048197284948093929298686711623300701596412180431607756612864937192727070764182453882351380060261550378308406207472780774297757713277454351538867164943582326551513121202347661789868792000112401499395294788039297105509600838281312273380935689306195102916926219292163149699583028378762683216286089322596551487489422955465270933675385501295092423912003653061262848314936724740191918468013217581335040608459800442647949564559805573127796391412899891583047633970285949268477571973990996439293580585233140102397227361336244132499988540304551869469755427024641868813464332867880081738374884999953292371735450139101333805586532721480079147924622794528685251419823065133102134252066689485602072905546563520255317826258283916590351574684430457030893586196610179732575050718682428596121082564356166592251159761582994006273952621533880714715363404235623709015838429711975763411951127397323310990817504334849235217504242486375590589465034292951915707729287785984879528646811502646927683811487491161218196679243064721109489370011211793956472120561233758988448740192118891977920191264353433752005369907401812896103554151289602551859440291084000974381629027969750784820915378889486959798158366955445359713035634572535969574179341540436467833217545189492907590840259198319822978804237863702012470983302200647920557006550760333452834629581020411622853158388601490817817066364812134812258184316519614903578377282532272551482903754136966370842326556446468769721770173543860813848174762644940049843237851883415848555995121814229317994060629429053380418901169441126167867611617758401024637054387502781379182286082387769438775684838926116442396357043133090470750569205749205870119044191655990528663253628219668092946046393659941288327115853199068977140672468596589587816539052346390800354765965912803525128124387476729503474457659538689862843250854401621698563522556206381801100753348891770304409026617419324623082098929236059913767766098159293708078925972772080806340071428151157860221929535063856420879869913547709675011125008768895604661925301634329612171210307972428188451227748018290496489904230166650886649014787102706877892218540774936611502890683256899598778634001740091266822005782540361137779441181064807454444073191003922661674435340385613473850984782500879653801995473869215680140205605699814252853689611802311354746403084411650459241217926155903630549745210384664083247634303470091885768096721233197170335546014588792009149422769314762833837942399160003348464074014820577173866833865222011705759299528239596514328305197990969053268286160465115002001633683074861630693806445925192264882106869887745012000013192000180542405114854517255454628141499446482953376958918062793972904763866880631686201429726965173102402320381280343530651729704196791205736117612302510902935816289061360190677819488986223573458162958116306904158581755064682108003930271410185440625030903948915968606721961993922139062543761015331899124680923300724982723716255570292957500266975458078633670201013873610042468786428618735018346156799284153671161086583648192789709280294910045604363114534823478271300616782145701599757308446667453389963430869004934714825751547841126978925561133172798092347389060469327359792313063354610604895721996123795125462088308208018918948072275889052844225180837009384381976348017033356833030540836589453494305925828001232535724087317040371847873457191127255552164759859060037618122884656274998965752328088555167931208930356612294844096055147270473140693149026252036264968995670898135258279432533768358064299812758104457392102066216564835185476795420708955512433694846440296746140721762570215171928379292047362151326296745175750366726738536924770890987538128160409106178266865638019589268706546143786471713113153012197061121356629573542993292644297905518459168315343454219772078184812975957375783325420120305350092262461651835313465084039721360607317244646160352735310439491785775072299170405596222347140087417471405815341688636930105174903059722317255489029712877762476927499531680723695765462924587868995393603259581571033034174090400127949042966709664191527246052086600906684784120144213291615247793663210102273383518278471010987834744994054642392871341779861080064853866408152289951089986890370586892085881642193398051882975493060937985705002207010110832769176344291537380454157483949765064947007452006474214834737663854071225110220847680902493942929925324996229611635916665159867759250133866093727331892114645087294542455766397080116825831835690947491419315711683675603211330579955027830064146589204006335231040413436608864027981149059386131016033663462771461629306738858611691946238683179730095266505590315906891036657010115602515378055684364885505232516066298554603694391381888202324843039159004449783719976744622313492436154006022659458364613420175170531846457604362207794344198732314708791881153603572210690614458189065028513244567537301794187539320041122238692312260468044865937622865898334362439798513128139576839156612893427061709300741338910170988728885046509509995106445334567667607525663768409778301044778094133446365067628692267232610707064516031896214473355466762695932926534149868677770131705006606889388217589576042731879359297486983114351775865826345475168073475310254654783727018225285339339206827444581272976006111293544037304613939042964576277252197956609178785500621595873116617990397707440730749430980500320745778844179571703984399493492962031896494660474738370378542292275053417837872871287505289688117569684071591012962838674022747979238135239462652800955728761932602484129903283881386155528165940659109764469743610758626892282928848704148559977002170126672835773984847605101173751065594703072486513717602210725943452635838905694814892575868719540356222714837695448272528329062740309635481511388479487695809822499795831168315124474287722314358906997104264707287954477016106612111164821277721896714799033367349178602535230700381891012690594272671941711682776769947441797190561779057948044076552282287594181975237321018787655906425082701421672060742357263998247130356288496098489091416842235360136540541841611020285593758449707174753257890556679722693348618732619065668501452217580404556020522011261405929525967648595970312807501528472977219271454101807455782025240581753943947675103903698946818434863017755126842133245393918226279511498406697725415730255036372872593466033418864714256008532082332530667639124600172804078193542680427118773009309084528052100538674340149439362630751321197588823983928345489666116056409848092301728106875359571463474944355831318900779509040592850820253658619227869942646964962192556823625378552205547558591340515322883316116941096393982931275513054752520224150589884170001395479251005663348272158122978944209700659956980906406975198366235121577002467376089365618538192706241125494502913086993005365953858967969955255085279393141706899733445866665851762826811303325126324599987045356230305340899012404727790455934650920954225143536956333236449348297661163517824498616875172960335965179174677860294796344109415634256588088963455858577578294563537999261322384642840715334408506345984715013648439819783214422081020242153281789790365006217220757962825602951218536949870933074894293016294069348041969505527952075004395279430912952193123005777030159784843598554828049648038470680734486249318535881866732964241028885471564065786763797875418160090823078841907398975234333535740851786802464631260104153882451902883881183236876858269353331500351330601540576758330140805048855892275106408531142482504838253094123820786796580284994012106692123542848740261275862765306410337723025677680107919734459270548654180048501452806176953151442472994226386471664627166353562910889120620437466467631374083786156613600749961672734647820187074724794030304427969664065570613262132512073143945274000488343344599150491317182903283456250251060470263649595739340987440962502104169865300813822040536370344887778032368801981439410169047137990897302135783141505722971641250087728956769926619409883306148859510182418228693678612526311970697427088304496418537124683880577431132654321796638390478375970262588616415837249459267880056825669696785013274701158768243346728330093331953324301384926160247685153467178335220836407169646337316539374390700132828964621372607328473883018860227482696504390656289306857447965242482051124152238971443728845910959245694958299544667459679110411804972216012553843474514761908800036839440246701831336998317118858923408508779806739836323965999117941333610255842415220297643511257802939762901262111085435195873747040003662621727542171280932422091707345508087059373976537287399230149906292689389936663178273139254834522766813292697991347859689676385376474779402245142766761928149294056528234763778722268579332676967898464741914859125677243739599822650933270847293424996469577998958760236575274677346202297846809159339787845022114792916013043495815879136467435783031436660787553908627955896912251416583392136148010534426178438312011246241631870279982409388921555076744073383487268585209271317306009403240372493420459826615415537880757684758914166928592537599270896123913372409253380769121238077256883617700025641401864372820989040102423942890980339536185085744530752799682021766821900796167873336442894925170045824065610793361386331150976173283509006045654538831744396077780291874493742526237247313995608131935017669960058155690858453779434641742969711172047644754805340725055997533143365793328924648606897186363925532471346848491287616970495244936173457079025538217257476517744491886333485437583721178398722599189487020966309719793770021867325286942595648490275491201994304758347727984282481270155208096358476838770598645654932847346662856132125484809812702329949018145045369984766107413790793820537926729612075927256871915337409973137609775118210599059981530085803593029438178699358707552962557176408937650389937064226687675702658279623417503269866721036817170375600462013873805164694008041946794919532722271532007995450256420845690591653111511537682976327202208526044591439626932029562886612837106567395461412889050981691954541537874898397870802483744440802183578321080625741942815163934997437849000126385176982576238247419384696714620054178641416473749236761218378921828108450802382562641938509811377810526509884804154266502839182209473151153667954603257361247303773771682853400904230462989542929622993062926345425505595538178044156800208765595292999091796597432736962720997264105706114720123151991765146063510211136218850308815399926301279498393557702231180967357362069269479316021810091239488821284440892942448752174966701209504682692195240378154295695099316675541930501583835115332580143383286043547528230143909314900177006824655128770039761506545192759525491874124465194007247290115248851800453501405717627592652706773671169570758425194634655936927637640937607630548443289268011736901390288446607089959949165897361971346154495543126229175924812582235799609728439225672965394152540897372460348307813436498684470208608188516247201946005787618041718884478650364622837976984525828122230390379304906194357525443719376210551659075216589883446584517246501709370650007872923230363833358571525471268105040758158052137468503270778439771799404009405363036655970130747482404255556977130357975218533901571047611183408769134101944433337225188392651020446863624104400059563416760273128358075730053008082179052983524387940296147153753866517187581608299407344670017144473061466393311259168012382127999271381221547700993242250974620946521992057516712325066062373133645437737027379016593650554395588918873508602186291803893848861472064612735708423960878056647875778582705716328429389909902334125174993771983318406687575454473420088071347385419902456486160268719708274392568324803208504309310923031958818162551162930940656654868493870735879446657112524642136082754938170328314961159230815757421566497096069092961302435564501411372540135088374168299531845994328910271664253647452359857375756528094281518685570067835142319305589774580275107181195416170424448617065940035373297292332602795024549237017169485671884654904863589402266271454967702893506230739847569313042077741954379603064389293166731125951366991359886308563943299702775589112719202039322703089120485694060382249952300062856659772376206015243665321477168288187926850908903370086585133494527308833263347766400633786639081343253069912205420148419203192567835635872954745364747733317964935892481878883564845792007369045007205176383346793216490966432203414492285778134862384391706459358841460107611953836428564499663507587011623585526775897376237813094659635690539271055011326304268939405030466246647406971332486969527041938457915699629893969982934267535519458093140959159542585951539273550990118622006489827937627344194820498740449261437473403353202850518887965815038110632214975618396278900899603273052975731547787894578959544307126629069842288914000510650915293814551637173209573480035134807879998199870965141601941937131175185999055006545638947697741106368365515812925408289803799038703064330462388335263497386588890124801758260452000057188186650659574812075057396138165009032133397585159027358323277297076635077924160651502133546176282766314536033141864673017353678978924970042593822079600401534978459739715076982145616891622763128738621828184399156055344978609460748608866617271734533092700898563435706429000312598400800449754490884409967881001572946157475691826807830494998861427767943586002677987410280855823265828660549125044704671280786718121285398583417500122261481298079513756726337626177397493351801615435746932904889692506729789308356827164834078721164935903991150338382142759585272305801026209438451545593243905589601624991684949021508421735139161350882083841964309351592265143634608571410081704780768732923527982596819344383876756350913771633184558597524183870780158397231793703079049042007782345516471441371680962527098112885436008182769983680149715521805093807541410998304847002207744126441712973726476941399354447008020048861591586271195522265984947075546796309200328065348697102347975720507632980359201495404789855107433666202387538741582690120798156048041013688819033414116959787473767941305323216097882851300158111871431297272765870318965525185202183132818028980923405496175960342143423402572640674627729873827640370188011529569188006824014631263832313469880765314636522589948210707838507186213633384900831236936265901940809543956784951206655072303087095096329974876202017812224511148535217437012873784620727214513059035049849297306993303801957639795905862328373983645153058595483379575955577896887749360020143012851491169734761324366856852067208746616034259499870154412971851485343960448366661745500389941144737164842571725332143711122243280166946541426432319671631332100637594050377058633226118212084132171687290840233165041750451719604024348130004947172347212932222115067077393412616411076915822750461725807382363886743545284178991195045246962436040794528123289203538647442583883945294778176790914870914165281416468583433378507474419754842721443514591473253953733010791878289567186243671330119158881002786581392977583140257616200757222782817372830385637182970495746473132087154990779111051224454325620117110017039440934071218452630513337106803596221597478608885246803055195909695975132455342383906319251124788404188580430643466446302135914925653309333284735468374608101387046477663556965624920337404179781025238060630858345303311087511694697312127616848935010095819722494652530902871737424360181835053727449970960797347836119340893964958447199556935052493673500615339420157540961629678421275632975596107514510907565034002668606911328192100719172585624609707952263806882834328435662816634213805187352334134920620424929938329375249933736007536087081736371134415582510852382342877251014841546460650625250766821804575328758532814392386343699825016270779579898656313191589154363285046063767305338498988876868743809380015767905361093626806016937582776290876412264778904255732678888154564308389725126685609395448469114152855632573873335462464296489687856976168148507646872962320567436751077563113961120799947328681780184525523164390656851043039062549572459435640053457043323157583620354860620391021780168706122210907175404108050221129485244540869702338290293070099005027393931410506175448618369090975703368944385481965529060521994032744838767593136515255794902907773720152655476393512544548055261863603844201346498677517738154564588783121974205418006431577196547050681782536250515455806220372772881427684047658522241345221172445421806749362971935839824161504270170513910449459131241974009792084839464129879403496478103524670003814684267588611949810104079285963161805764148041483833907454618549414859938034724287125069145199248112991858773474862036197380278626711722394414882614504307002676185939101115771814121138327581826777945833208956145247688270588163755091589552534776516617306216236516524091896516758114139505814564645626582358789383631008373660091912047080900115144251558886067518103767913336952013268383249163964214065484317884405404378594447338413176504834226442987220906334146590288134291870712025157504176402168410258593183640238500339246307463697203284888888902597228729255775329798190405458768641314769446186423289217505384279031147414996774788442202805900747461719806407074458126383488712138716163190862048412616572941679739222129925103535673427802004647387435797468036709978238356465224139796183837049013688462019963628066873709146991161171498726209418338297526723773306220903692093274143525750857328851484176953668987716722962186299494462258620962045776108095272105675887679361849207771896417037091150252273713875823395663315505270243125933986900939851407075843264460309808270992467505323758000852489582491609703366865043984586843133837786948523016582479515054984322856613405022329307795605774753417022501811786449949149475375196903143494572916958202864228534621428577747938343829971628685874316024222066431343392980538288353322608027539177468404583226623201695941123785769094695227942579581553754680782275106034594332150194486425683470076623445028716461062123084721825576810929802405071878256449603265776528366347712642612595131540456168278111601618366382753597003639415756269572696847712099824186158592957586223028101294450716863064609582738720954002092997145487369154938771039606526957759192242883048867252226208843820669991969026447524577077750516752604163835778951096222803580691585585531104379891736105136711238301983886301360259754898159147829587730935240928487721901828423138502473552711038589305734847750616084156897945935626164988579977567882954387794482414066775144880101323888948412850893903154169241536302839818674410565714593246110185875287459923945252239532217472294405401836407924189967443730604239345431427332575903781421235221041533488469835395716025201231530180874378995773839663308919833125751586418613678036904326680354887013721187301752113511006697187816026630276873319531012876933386459221064577179013041423609251489642110929378711824086634262465911731860750524257900140823325888788937986530991196932652863724964674445210784736707133199473092948276457685198241310679448511432418634994790328156102426501085796058808692849113353258506591768913375105551259432956951026906647303302310692646405348416008308620074903658292841927705025388622114434575035876192041935001207713082641902894079226865072253287273408771087668688519551788624094038736138778883765185076318313206265689092858251511216210475190878291583872298057138303216903610298662051476205587306555530505325949412439013623572619138551952460493916850984443399616193598448514327667597026460764457143092939701144132018954969556821727404700896089240955936452960297256326391088266172789344345757205994920467181953518648255428528680019166079643644847823761294944018430510688213319717909368123103244554265584278715860053218808338566419120057897284344514491910931163466194796034495851784663217783918889042148032016668408011659805828426043890779316529371985428756793368412110294346850520476550357569942696660520978232364167637887276946233138443465227496729564691980942848642518731081011067252783764146373938350624259012507833598088657636551445465903383088047610330816984974048135568783357994586273411033804162957448164236287538225447165680173790404183249497164923991585490354643088742340998387055066480740854495540851170064562185370571853616692681585530848255728377958873744978813168161608753853884773792444764397348912587937828338373572374623124181796247008517872252958993428192543685960676769554723137691209291052476884533788919832249893176309074227553184898612905249142205401099320488734723302180378845255721038641643623880782630202795442109721339313223666437427626660593929153237090308826125844784572516811869727633193887605672720469636369595804883729740831546416915240573261669281773599009298481104954432865000071486934724481455934314610893302291022108977335284304403641370876632511509870773856064330695538935692049330979233718041946662148116297647671909585645838320225767545970971159621871222585183111478944473305837167139540383805240067892488064019847412082525788485926431531564586682242937713117437886626479757580010607186081817079495222762144717086043174074959473960450356966090343046114281625506070974980480683091655015206043728776905339384127162938465087161371594750031699301068486816965037718352590555589895197938045414823823860384002946514596972391850565435061312233529268995054505249658034580755228270079544326024700315191863481709858641618317425599632644037880246865373406564828635819164071162422686088695479340313667636702683745610313009272058992809394923883153256070407677454894352033443154520783820977618977971678472260409190541409573277143108996272972315328521420996880910617157567377118287326010956379284144825959033698197442794407886156084055345265564616986337867878364042448489636878392510741903475889243480688037479273163138110340535783740385669614684143432361510851758079433707213987794079241493474929991796097957422154906894266318980000050575159352283011142554019184928503804607322288431278756513096806797902393081975172988871983734998840635670388738942117358255196333568251841443112299646893557943257194685171599749879011043680893728170065562399329949793697437791717792194710761442149035128891418789808637417983152901562925595864573479412824660003157699218580034371283987811828500034453047082740328016302688596935575083814945021860627636894357780903308939180803370993202877332958450261306892152696411802748489848425119756960514094957731345521368088206167458773215209721572458438607345768959436699846073443643416827750131356900598496798785015491473501999387811866155663545335278636486773174357313117384385147145525230404212987792104871403609813017404990759504079585400353888922867884489658452419453371176804870377564141366876649993384698855747876842036397802890212306512712574529886216988171223327032116230020498528127009325206172505094183357671120543112669427524258331442607594809795560727653876378836556842836622347585951717160915447759471727611405226010605586886265326077116914456634521323437472112705949974204493315416165789327493603559819825440645917930926102895919233251715272959579525393137919135454908505296554716525942131234518726324873431173212847996201359385243054484104255774178849048479735125458078562802779024720119257912212953423304067090117651621102060448731592890001381423010051473163132644267903903018648276568438756180561088543947996378772417005709205033069854454224179153602428230531031458187474024092748872290564567446956497091679517789771953238533423985650609053439381809110487449839609248951368460728491401669156421399012198265978912104276629017473088505067611583124370958341830939150959722228384474714138502269600412588013076598592374755657755873101115695313824828277074332374419965216814500174946635446533217531509927717170853801101767364527852989162565837486455304184217307975759857348833119780698298167482745665692701871006450745512077022060863501757780109545861558705684475750858621241582852294667675917746814452445683193922515318239761406003669437646274932128773571074042519701288622030526455303535988224504760929786171978509401765667387420065413119990634410619025299879859115135955079671227522645870957189684917787161155048932098822161535653184458726743341670437386244686881406083822536072576784818278115488235695469527702452130543063909892468095258300820732905144008161966024431575524034114658557388782842913382385059794507686227926403020169645824053897640087682862532870572687717755442233957893327412841337844548555891003194887864969344392649578364695926877017089959409449780154172222370114945829019426019757913037854814307062100217265928501619247613353330919042809049100293771303243221468432129667762514084656176192078982088548998204791093872251835402344504810645629398617281824535818883760218587968306173908471158637983242163715340943272135084390792306036251597924862105269030379161984375063169577301801913486662613631978439163954091929605904925177205907955843560317517780379427139236713826678193470526091797814073615248113013826265430938217734706060136290420545331763366755339962956900727564583468229389308422710836470221321453378768444992857578021766624164557005168855000724771973909852116015888019249527241732969144639959689089885459552526118032104955593120290462497848275039960716160999507318642144821565495801931263760625189510528730668477593105898550664403584915895491440938085532063347616495736815183011172518361996221917555574568946210532309632302771161357440624873030959733495854064690865056803321018561878616553338935740369543157309473482317952643251000702457455752524263363067051452866268826487057108059263956316717740477913290227949841063535247014610471563986116174463762694047208166652096632534929782900579899500359409496676506478051065115158342475941516277399156528181268462337495572627615100219723668764640083556492446144423950925984437071790820209863954881312209797532782334413621167363140356504560033201649118024223254986339415095349117899590435333556133185546457372126385807486659304766147501813190858761333277088931923841898355205219302606675994148640983215778197471282516850931506283918374849054982277153809355367815215140463044503173084331868455192446591393654433533124199528992062235033087650525891398365978887903930419404858318766071648439757197574096209717561729206648223884432470705968540899625455692354580715238729910443717255213698806930149177205075527474951768914197529505144189742132813093718192035274676503861509263939341008469935033339392891765443787295765643196403654684352211654028442155538070778236232411156893822831749207635836421391612100505884317013689036275779118438145383830956700307770743665152477626584566545102245820726084639143680671278248799442323741468353717430363074896291329689372480099797739349131862964492754396656876121315140412587151354625330097776130886250676035565851136969210478408382133286685855936010665303751383732294281369164973264401430534418242095142073330820038609432774882103548526250228325444864272977844111006084114536474958220633707074746475946488321920186934871695180346482574051749876228657191198147772442325180584033268004985536387720349142307565536417698917555223251877509598450057016456121392695388771069518026133150043504716831768133894485816550405051765448195713040833992502927357252119792141829485220808470291216346088886400685189388874610557379942410448158146300286589687714682382196008849212490854585287212764286559743801862199991658599998247955807992669619592484044347105070851663130168643379023859385090747773891302298657679645991836970478562524408527155988493043049882785024229216023116488538235140144870809348343235276520250593595607047074596651528786869516336276380736992175819675117889771038090360332972514438966519161345429722548173790729657349414463464201192685915889600248828981653716694223137315823302471744810946304644663585106914075100653376094541876998316002273836633687686321569313371613128335370179835794172882824539831043670040788105333538336866811158127197495362274591829959570056328517154603082932205322779099173677394966940468299238849445190292522743237161349741661855470912494102601523459202752973019293027598946101031719031858509909253906683606016262140276345717567253180547511809131503894904935891890881175859192617011405494114461343516785939451836430435377607179004827028369646908458257820527404194988382811719819651138395959305467973136278828467149780338793476319658557807761020718555511512321193491372174172239987131054262948442355106974627263885199324505100981150972082093798363150174766756156484298783735379952402983432838050512045276209981399158419028011279958890710443068750658232032884186665091861057618561123708886168937068054595806938677559908688635843126364776049982123355888236193778166450968225725330547329079201697763256075858171710967467558784055400773096606485959717600599175712060001260947705339617141545444191033233513785100479764528316970127888545418542580999141848720258746015628526254796505237205034727496403408734990512065985934760536743822173807692741781578435264935437315576712520744339837788940119417917161111309836822913545254306129365444061649813068659107218091319732982847433163970512449081636972616092044714874456557071482296598084042735243460536774449195130721350107071718944036928303020331709271708898441861714520260454579988034215483896992977637837065327456356780464598262394506741439781098235753147826959299071868995822435472946946218750241313037336106277179435440388789977130633704457006433055341117765993795958557789936439166645089071650592453073154355656168909276637987910433886505519273460747896012379281904572534864881151005012706539463289778167930309683167628158002714653193160415585826084077215296475471144990389418941999294285760336076705657772757157510478537139306813271740600890425240935322438770701146985680325900533241360627188486102755108845507756319175744910567021855407854693656157217209104166559829288453435938525513163369369644400279927663822660841690381727520699348163415045144616207054587824102212139172586389570192984587098817661942331181033726331657737487844505722720636864982701269688942936711906206058174656966420663817394723865944250076386985706406816486389511382342841008940870152816222570917856157993046821550787962163053023569591562016257500684392128982773798429871549856274382976432913176364110957115594113497581514729524722891464611097514404414122246104017708919983721824698924249879097372680126799821986664113878727688101558019906532097419144058065151933218433241873637911343357250596272436230076361945780842739742821762361253290718469339120186373963115088901745497176873665988701832700458038843718910538753144576767822715875797539462651596906938073127265223617169975791493910226781988173253532753808263839898222394548435068987171973241393683344358774685943675206446016635217764913358561772401433001966990762416590019825068325543081749349908995808625716409283110570058344631992824002545735012150517696423982928766526397783520475158568085748635874765396091798873295476961361216557601238440471191257877257564033501231094233704954677089200594074734448441874739088477307551275243565266269133016786242466031350637126955469993714255286268897019036915512431340330524081122856718564483326943489556566397439535990672114288516202593431397141900328346058072486216185660331780078547379273652340796765026613160441966975100856442391982185178015742547912937840592961193897254679306326512535136367419868218764654829863843334203806893770280137977759519119974288217947308502723513488619254662736183090486199969093535191986390269501109313585999678704690244066419068036785260949447594685089668773488740389763177881887330037080308100648275644007994086014763353800941547201923042323361819729582588186565028516626043798147857284093032191085893401009952533914128770416696289089182810406553570341348049417858995795460513415331684069566042628920550279517672701802256280293615622278502305896013638131649284050234145815010444153603057343882149159692107689701104374311277593278420043490141245008390427766120546861890255484325671790382869102792013880264124102275030452960806283257040538493495625439820789814368498669255510166400274676721848420345987933444858638688272343263528558420091537584289911164932926778001798466621312628760309227261091782031610931497455546878975312490688092460186145057460390609380491821366930811082208300526919351636688623798154493157001036711520426773947254515334232708039801336726364652346244502204854946028603554990509650688862787405677215607646425808773145625802573158954168966102531496122672185140538585782524234360864987448494916899205258032677195274679156642413261417444881740720005672259629136237327099509417416066076256221354588871670180230154431545961202369870655352066249541822103399467272183016606540263870622073455273376324550281288392937926755099964037199241508508611057962186071730406815554254611027871832038165347238301589235207745471212016963411622925788935998501375934851702414618839701421272973580789639546194150756559829597891705209857522181795695624583459640420620821914842373966195945018910624946781929220557539356430576948668921905007877389178113970482988523921489175879489834565005747510856226528535361846718761239780508387051859980260632308563483230481619153765749653445711808918732542459244563856998413903376126892530555475817619232287622645943554221731567747402984116754263616931383506278032551722849908071019043826094035781770130086757958010212551234658793585349390837582459225798750315997571054405560066911682622893120808823619236888487113793629122541053462657677667268176533145584459817744837102581336654391710006078790264238415242855543295570165554598360322831568536094743372691700678137823955009333900157279920091079542059156304366861800348892402546543517215482896832437387287202017804554610191118031917825866629067069467909841930209551848398236280977868920944171559806751488597265449988920661938841399309885947752061046163106687568485158307419445569869376182868335685590616147559843801123257010980808937555529164110995629816949158568346436661307322828975317008491757210045047982319976742631198389485143117182532148690885105370659820653024117904432975062512667205229623406459517609098188098883702634920143516670965074322222744266427967132665204387119858019775173736392527277606394984168288810126834584335363619398868479618889492613995097816938568029840814354237025985592855556348532076092157383105417469511882646866923833404235493002651478871774187508335732270328504512004522402251818688529011766973545311215441499397846462942323474232209414517594596234781814369443590957219833585419069442147164993012642255828761081487491720910319005936702833732052562537457981543662947643356824452280904360576417064369644303268599798235370841047154331821833520701181491122576462922888899416469361266281824367786144128189050959087765228303341088104070002998127661612160616699400920299862282950832292260566492102791292748320806497687245517270343548954782121811977070573002301493331561756980659851838301009058719167100796257262489743866981513453960606061776978715513205721148367331282827958490644681021513865496184437924107782208801796851813017443599341482867921688575527365438342986701643748852307273142158917516257563880877091167265849885740668067112544194112736291614006568463235486483680110563831964310809416342723314821106308882854399703454584132805488846811261100908395365497937280613593519194377065580152475972909690967913904170600000818960343716177474634271007105652903121910961266476762349880235727987235427303180978201938244361061422464897599402478994577362775126978623936507276357186214150893373246051778650841651546655149173600539208557253142649641064770162626782925647489685038902525086059339680625121228847870080990549328198001931805471386159829630026563778214662632039834004365061285570671598599731416166325802730658942717023632594540477050210684496980945072514713242639298867754599694154094752559932811623352529046976847870761388417740401664473262274921594692236316879047932009020909111911632906457062270926322117535580358011094012935262147586280383095542283420235591816222561257423991368765081653135764601735432846174557127521983731495671470025443515741855646939699250132188448849098904606950975161404142173938700734746032572598482748541037110861250663365207362155673005211650882100271369126027163156157201087406346357731467797059642782959931044127272144240124667493640482076582354102800896379416189646896370104290397167657027374788954465427482563204215184417332419422305957593282183898451145170746541685803087390794417264566570142317471043156901475272029424212054233540517472501217429960826784916310739754823003420588351426466449282305466938000463392129747533980792033090670829654465345995560529936052659906837722842423906089094092385694841807259167546328005494104538442068805769507198043864564148561686550869382856403664457814484237092125471617462277603270806145439793602885131600655569736527987762394290932733755486004715615547460776000205053052152162513585796884494407314717861658517248339013140682123234773760699875149186154425749090619420557263848161260388512097661033201678367012642967865057938458005812265297522294742699088043127048430147947850402457329406760963871683319587820463301318207803860265692293158624700569368670387626060990128502123852336338306952163408394959666767993876890278244678047669264637975630334778264156921577343750196066727080187631069678729948582643672326424516074087558548318365214709037645260633162023590651416350380592806486284436421106432747708907539280879014712708809038432846751504588555934049286979414389891491534449506242020958275557289552094838058691795259775707667284897092014740290179532574239677402620128140429849198193158030038159342948043711654391977793108697633528123791628984027739792911595263775422553000750425427862528077004850118512137117743229575018014440347846101603590212224272312337449044093960701649523763212892968142536142412753694532799552876982595772953467551558818196494510886093585881696972119004736285954603667326417379338286768606887712109540673128364807066030552618099712615522279133854428669666153010329789155425236616752868691920811803373857910216077218495644419373781878160816326691181558310234837281628842926809174303072194925550307331237114581058252961594510271760901350307400985835914410479691324581405486799664445397749299935924915344625064458800137382149198458329815453970162107680958309838944513367096791187093953667616365883467504417020205952452963022220313583463126267334624302224991545438787029505457977058750720649078014652509396029283347779792816147531488425344993970116150593261878485549230290906604951531009316511327316521632564551811639835525386055932016999248341974423561556181011531940618337982518035963064072773955048678289084723227405455344126802538734757727520926920818921905361066580152608429481323750463599943060405617840232245804986012222951523516889791251903670871133114476669649192470298983563351384142588980608259398146055413364346491230992667494337666671806823012844776591322908424126697374075135967353631602937475129626142866805205461420611145640048097659331466302692550473753360214482451139492168058477935891023187239067197515601707267638622044150607963713666871873693452299359887151341988190930258942139168500495696577659919612487157624210700215580259590477551437008293272505700990073198874976274371418381226947052919681394317709028156995146073053021798059209493999329522044061276175941200188286966361863367470368716645629633973935246845386852682123697648394142860280781183693132783388939360530629468789027427448606085308896359744366350606102366839376205642491743986930612763470756667764154257794071942485485736592849159016787768407911818788711683580892038905315025393878178269934320911379531335883333074950082803159817217687273344860181645638064259351059677370072720283360529600318316078583085307350496712902991965932639961352068892540577522185525680466735728439707132238075804851031401763348079136315674646217332914028475505905816974321884848389238794377780748579565867146169378480847242220752030043380481237401237455829035875494459400658311446367067836182306454174450623234019810858030495607127063989338410981128483927666849629889886168057964291633443844944621390898785505034579052972631209461438772412547952553736245821035070596506944181207585344393756547339003446689667968499201239762574227048492276233343425137759424727585444409457806010831376518836402913386981439553261763988275840330498734981860925185365501964071318824094883238459239924989244842531633464169844533612384625538249391521955331480737715442237066939588389325900588511673291152015910024051642069337232354974890028142386325996630142675484131339598516657568796851907439977118698013782213074497135906058569839637184831932038943114436218916479103934938414128494939439401688861490579340494739381672493345568534919474714166079447948608556423747693066951988939034072479783403285837243551110748657671521524614131416289635515395374048346689480921689830200308601618998533353935633369188147417500193714859400380404024352538014145015189236298910600845749777039431859410183190944358026267666813695575250888003646605935990320497490724875929967214398716678049262177538896263401215085289477810294158444280179706410027328808985354388045179118542079846783270959309005049910805851419682196940722411576269679303562125422518150935354727426139301764756821910560914395637032446242547312964625060088289238322088634143663097353132547828298260739035814212061100308176488279655539588168833935026605622271739139342657871317083273555722373850822732249641725121081028069898048946192196229707711144618397966235829136447061518192806533913252204743196938654209380102369986412736570359291758310818043279786066212131965985740257761616073212126662185052519200144267674716070783744633641541825459514455349647583090662665710702754533875694645550051172862432690438025406834130356481949310851951975694356235240199308436495957821711226789847577712314853208203820679419505148783170205550101985476139602137545718928606240239378006119872359249467005511250902309830498876566572535781430017408592695259825247458921443056574933119734842253025886845546307646036273876142711629644959938080844860805610984803640508440905768869081943097678262555712225749536892041487097891957795118155108983421033077729403044845849233326482326931484099738868042672349811834006657004453960792758077094914565053699776450559720156043371965838179817341732969870996139567532090621493641350002475307021646715360733071475916089739415128259586848883483427294321910954572822625649223771484600257983833191916228572374528534803307798362880168938781433896448201901014705187323911916954186817559289216028174873750175999655119632371727219856247143587346991537325229684543468000756682937353105723527550817808983942821668749724512770815300558285324565081732680644411628712710907535683678245845997556059598594984424201424406372645503100080247790089193052989885595139738433147194560737225567403906842459385643640850406798867191957345059492222906462074120810326443017175878573361390460679966364185633008436243608144591315012277308726873199160672691340860062416183867296326482483557676707556470763527074560227678665330260805751266165872097613321633703384075038239567234204319889158747232963553427524561706422801911325191190920896224384232790456617690776201684998676969887424960560622514029732254095587400888432286204403385269525436345930273124773804714547521827717036472593407035724465859974725721148754539034641272781382190633592877417282559335204353087771699504417465013146757886102708266553313489680164458966518668109302043082339749286000456132113513161610887813012271384573302629304696092574365476059897917335070086459877644554933311194379031202906268659143634106487518182198671650303611330113162629397379916378316601506366003484779968939126801051800645358398051050330109123602208785282201201032479325097681154460558364432886477429595979422527458545321683356049942281667826955337292344404817657827746041705942057710923510402443441843313828384048283999792035783972428648408075724224437889552765184196035698346921822272098190623144496204125556105453085658335189997661586296688560642036393055756201739394795853117317804442949532230050280514612795829419671976429704028535715398467760897464419393094491420580321549544097901596410718003679544107181143049076949666981686329934228876012033196993636460269374183073245598444415395756133859855284255821722736039029600723266178032308279370927112968495206750454507882710786859055204453342777627975364016877718656843651129638223086767301058089749330915181717836811104017704553374762469094785740813273181303761152098786920031186407690430518547690434075146517442495546114937981070211124826279017386253521737150430501033025542648536616816435102085113631148090458066348527898252561801569936120611189049182581140419060264119947471462466317284342953251582740747551426233222469572078120361303342174639703949007374217687783572024303786668350824848976092645498301035671908849067248317176928652306070959022158963165309715156963431581646456111643769756757604021550421036862144046254698580599421647864005771491029329419914077381321773194842009194556577183898676023735877521415086837851941515344872383794589028983480725592856036755254970893401861026734667082900839359498382748248781235943650837848163599399428191929934091153382998761697075553710239255437488009815078599486905836201571803073077442675178601649630351029195022321796043660153229090917360936396503977903661347239691545801929383141126486914652095844809184419907168921506042149861114309869874066657378717741120886995125930218926969674132765440662725598564679576360571899261190289943406235020916475809331169509807352288782751179847077128578071985361313622384932236529786583940063120511836108214372977899760741421197652719683580535789110633581467477208831849339715634508454106610812350997042163377914176417782060238895693204888888113341817112296825114012916734625095600359475588580754294563112626571041510347018341057770152404511161732785062703096234969439729201019491116558307227113959411268416737447824509081245690169962404117526277426842807642203014876338344732972142259852551400405751910586107207446745446089825885879376054560042257933587042017790186991909283206286187945925551052838961536589450006552711561922952519911388098050410862996189673256440637381994271619254057290673192596774562659840138750748155418047235906446436287466772818505495742072521216525985534750588825537597569348170488797413738089223757655055499346518773581382024860513613204812626053190518816990010401473633383773234727880511640254450120013617519362730897097691482560041450398853088731752985209334040012274449698535705223121539563097932247375419381801542270097394716038269858150493742445878375280706809786578977246695269355688382428544417158979375450706779554160304555351718337572462044267826384655663014534535367591826445019486419414682224867159608506641328504357282263315829571483093984283839681427708082821170061355083664819063746259853188652718523129992621520040686683507206697094379239929684399590487760238188278422787806783789266299859407108457226200928732016205498188387738800386565414139916169432280726276169397298957947603592685518565090628094558564275624469112386132652759190063288131427980842257845261915894518311111424474078925442815472730768542094310995565906948858829481528686894823603050504207323760273252537032485585154255859400209654222694951585680573526885168494406386507980342750965031172616210087851718937514416573581679533549037011111513047122855926271388419251839395344506974049277289646035927004481049926664466308854307298642805415286776200770563911802438254741685254150667658764318278320240848580490299785576956598682936063847633231095986655592295097613086883030269311018476403832129028753421821495421230856654191754420830268010518838387886014713319285622161403317539945129919920295342382826580169469381741698780285713027479101860639490964416382351649047680050675406167845461393389891707432102247492368653663335804638164416407015514125811786024887442875714340116297134122345656328262159099116186683062746674476166125062126759101590141189451354012360168342944132550938126364638086142929798450188507560070421954432802661432000065421804909083981038034420816883831922270285612977453052052249108475143679489874974041978530145959922881829302162750331077810862890367289243640159989614780853834214843477750213152206009531223899967129159495048108445446197739513429465833571264882134941080699233815460241495788338149203652541975335987926057177582634258182028786293860148741982500242642690703648629739286193238635688381081478174449273737435015155476477997606057823149755360155890672795815557520940112419404541786806145307074911962985957277678475787807665023811393366127077650113180616283523553221298600798805654808581312288592188358914680568991988162655305993665106942270482171613402362703866367949101432928672999985893454952699731263003842723644785344880760639025380233701100513110040338613627458191957592480045747107236709397707813299076247668060729113791522764755975920657031619593442539440294981118195642771696286230938025231586494739932027612718015804719036582936923561680907122561917658735993648080373790705891907078126778574917518202562245613386551698625189741577796806851166885789424878823441666880452745289382591633816902892146265514273899843655506559363837384428066396400574125779711751642100038450543983198982209400957452984982754582623454700620184971686983819810197097995319465151946049026180440843840322202399098971760131810515243253822811813052893822402734899342216303794520174141263357910358166202734047654048088110861529383511179684409349965826470361638055540400833763123086179869769131443779226726155618686392648260044694770736839419633199523442080561759560435398294822740769706445921955488534669840124996567161445349981658322432197762219929833742872345371918448762346099190692938770773519998482452970840938484066421645092662358376735450950095265488019622494896229654001623915540909971796940271132928151185849252133201056991180881745532147243901058118523500140857140956497259805615722250300661929285899137783430465150375341389529956051123108101586477458956524155574475253391815907065902215312107891822461714533907737505310583813615566567461708337017926693555270787686011220342721624589220686537222116206481157983728611420480619509835691143041397373746074558171713844224274930992985941647055088618270875098500313623759790183192075524546342770498250450094035741801135918506605102302955647024633827011000498149473640798699968832347648883600959367542699133277937328578606125855199558507904448520528762576204914190275937375738489246917485886623256539300949222643575639603116854974909076587682792257598979631741881251041677574150393124169945868085469591724103719231798246546750905920126934093196008037175553884471947403541141938473308315217250747880897918119459714259730175645753727321559833346384555319354348258443069853480600056054341820844961964133324549818333891351120180679305304205399711725941987775224857053806026479992618640524713913719199355864039402388028978047907446474412454229689580647083643119695032107455668659763396606131992674836703526511785489947142071018447197668413484099242891038143775936450965075762929793993368679021849802205511360143057849193308750299673643831431726388631958505190889992452103623960031084043622596647805057343471164059698585175865900741179965299733991154368644250750195380394554902097249861267216307416593108891839773054661469139305067547959551005754575054512944630696788007340739531267179228267718171497138658603725925698623853147266738634728696365749784627314182907867922214463084419913309252401184668850892681144518436284443907887670654629889461298642502746772799723959362759514186409271975632414190567929052661463363119391036316468850114324458782735370174836513849443736702243390243825821201800917114935598961154724705571687818544260984508077242155352997558078243032519758500623127671408882666784441916857383919013972920235902798141820657752283867810455085510299414712718428407397279405077442471235668405663764476827468704323966939519315664311863435634051057930710105337703728683362838703217515794027645930317260213145694544344085425474973353502963653319218696629671792343735639929268130571881563424236606726012750179099346172387917986984445884802709137701393800170618967576158376488967493043162790226468823796185741494970696553570412608473669593914829416304100684095747260623216136335408647977162205432703353993255501548864947990095981279852999691857137710469321302162099796928214238941870542628337887586326043155037476199965156053940498584047601038180018140957644002130522250076744683106195373733938716548092487206290821661711834542592947698040490684741080129114782756389920421947148211640775821189656731257040404755684708067481917338570313951424608008160243842800531989620473695429891671633036394051340299549720159083202592499423179140742998758761911377924460699795244377081280680085486094032031106089042923563528967691865509618078734475724189329075027498608550724872814452295004182998103870185767759820654921400151169500114122254446063972849949555788739667464062111336145778674445239243734079866852576518111218846206324959657916656685097757507953394431892764897081713210794966017794490601952797395287530497971644746406437279190415890381617357352680089367879304585077676943711991741730566340256720676419026451312057256925497722128219262114809425896835575883170596344786270419458606879603080510682212955056997743681286886673430114907344947771674047774007889370836468233953004013008557294889796451837252495034296454806042394005718000007386608468049749405748597969993648977184331226684155940946203197067164165594883890003255717415443170893183831200141129542193104436571247192909915856879505129953975112659764941874583005879858007441175046695339454275700048694417995677649713084684741314915145579970012668696911067535128784485789675683793082133565368388961021241595344637682403227311631171406646459189089934723937469857707860058524979028729282357369416504062783563197069998444913208518848776483854199982595126097471763326041000590288622381017105478937427003151167354249748004546305192660554704279547989872514379019436623727685072055696599759409092205363287071556340877032494126595448167244891824182531071990133123797076871514683004338630376911465946352139847732869695840123728723046261891420157936958690896202018681693512034377526957537251063403092406378068425167548050551175358343782230796350392719871368004865028739484584307461950472121033112147145097497780155673070559320705798395796074710152413968192209488118481493736644180851788389015643692075378058852751898971513479397865739410070280423492197149989997984087035611792016640086946715081526987011901779906191079516244511175846605812592705580743793418865590194967268893123485760128561808692812693230523116499437575476228068588652943888402706104475060212169535923096909726959097093194734963957402121712318835784347460808570716696512192544733753734342783531651332692291458549095450344117379675689110537454834536250070691307903634681227108718743893705234550532756366688650341399377210794523628414454213262372585359624479259591458450479817950893277102263315295349153212094516584779132256132110579847384656918993221078583208852337768572295645394950995697334018916872374671416799591697818919698959620418398396851349587617910915293934715470132219539174602251102841816063439033711960593685892309075364319910026235898609205147038873517004768674508035988110523939595001463777699483986245924721374126372499200224727049310453228167226598512160774208653014390295975733634091999425139048837716458042169987961393814769586612435416947617738535770468471027649701494025720546426598083073857888098429435945993406911694282908814047135765352906265804344969380777834769098852969620912845248454440939041423100608928454573292523669094831602606198901203053412119852315673800091910019941526682954287550386037161156796588799819626950041439980217239408798070530509360611053857613294939493314454307356210831976439185842127434472730349954900105943152753044094981109525366933496929770734939924735463328099001073686349184638073497035640907412414289205606504863876799166340420469603693417458909625861843497976443486844470218985241418845499067357487342979347770236905273518786241821096930345876286884083069522063875253274441849597636594038767462973172501978935048643965784729051785702016316161650525435793015457924456779165923649448201070432620031684717785819689499494065907105528614405821011574944366727419412855365543218871830671167604934116828834623027940009726623088073920934387202838275532653944685136722362721153340051596583627811937977341717772558314546706363483432265970634010020837318433641432708605537785547619611855855638159640650545479714912238517075573362107461915596485494655872633655349288014073618534853778787969045619120516553661327290568257851075194571833649517961046398112493111603947419831257403415863022537337654985897762653431016664043671117944533108625973337969948921064619988777206356295173930634994589104017451355063646362065870782079964559921780010478414268867400910901546215104020974588894237258140284408875351088000660282506621103332191114745059368367333072693381768468808490954383907144331707754101173227072088629225543894612563224345528451558138031318049153904592197514546638264766923425259893822296525372915432587278046556283869781682183414809791003930910193567617202334760978685220516109926223931217768495260100479191023580581307837046649335813288761207999029367034520791767115058368574024032984982305647015539247862553516186935926630561254533221505659715109531745140355779701579233700840705685476176874128098683297747188221906369175040825835474554913221763233603249740985643123507944310652955233178476979380141096380975098439134034429784029606548894481820559488518455440843828160029821356977715096545708241680884342877623671565739866857285264983382347012225056101711406747995931026436825020886552140024852650997054721421063018194877425245743126482601842640163674989669827664403513292566246070136370683927080909009607839648801442216409382380012730845714993167523368189618085042466827271670616168248288862003786945512263390291739767897176545815036157825551281578232438935800402664461713621001678668006061735741438218047667342222823699221350964785790712733484320623039360862150783948184982496383322937738967619252062493128018863994096645292550990870697176813110274897981744043312408471596689024872839492398420012370603886388000657208931944031597125581337997527855709344459047162465456371620907834543758817812275066657571033754931395466455431400053914202354451870845656898085873596870832855144932070952821944395538007086959452464188897522548337166463098788868682449176354480242463707858408587613754471353336925700671645666634545020097975043017724355564053287132851039423808021985624187706237731242663597977870251942564649725966641546629058781545472197103806776019124193530859565822873959060298416824840319107957856763749462690160453675358353481022525878002576288023345532053753337662874421936050155220724586520764808384576166546726720313970525593020600101139941480485813840073668457947097139160341206922151385000730694540721800190624917283019366696340639908428157781265262660333864269000920929528724577147536664685858532835292672107273749126839376797259016628764848160647743227012469617162532813084315164893149190649942063224314885482104060513584870141888974712842573405920947467521428124489114838373201712663519115566458949748633373342429982977162277628357302369746417600604839184497751495930684467760073957485555346250164285780389899237583672175570977191957312699684659738932955945120635187095308259538090168188541443208872144973857422608454404495397982892203951698704662046064430345545192871900223131917973517444075579858986190930052643291980754127877882282643072477759199513449737764601219809973918018506891381924814170892507300837878026959525241056194858151183747703981572188709708853042704547943226376112389465193122412723330295255651065409060039549997428381058049206462179268066512056062230530487528627970585627653671739819782076091600823634853475557832741837560168515836278265370894300593169021751023884745962363637534695339790024065602280228122617857861111813557962951068117378125026658934114346972496551234493565066402303197025494314806459091919155114064522166370462818780641099203463895681568330010798446294800988943173157295401480449923678240148877018855466692490780812947123413638363134424334252933072239285217779473443429307193221518272243608761238757144271429372580009622625850097065939553779287941028147233529335895565712203338992348398617585188051284879632999067491448850867013366487229225243811134422696268537242306007689935741592571448933127310833966804989945420640765767626647447268460497965803557120532477432475101260167088678836895368744161201122403029844335607245289902345979874654332660460789053379940841945150523404381418144748758294856820734302894758715477779102993741005731308988172341330682312573909257831697987573268408962967302662416439769755178562896134425113515746431507054210947970682638730901282083740907061243499474646670208474560783459296308592405418549876709022178362056069550368444828519648085943077375140018790471801789274004594636807089784418778520435373086244915158147712308391078236880712894098274585381906653938522655390133976550482922214562817081712620562993372684344266619573203368748772177568956437331566145266005027127661555786590960823682753953800956095326198023578304118269157765523503564474844049256540735936273190243613309847385033938983293934701315574219373296327851931701807039567134181130166133624081517826650459877516242525069612254789650115457632154501181626625825383600791558801584800545786208718736009350602929594360112612813028312858418074820670983785491265336385357386483177551229051550207112026105523297941561642178009746525254971193927962717569181117421841433087655574673185245396412453104193288535972832141386582711496345760469040669673476162875137251341356395677286784404804764289171232970859139216814440961104298886645228503645204187858710264018464970859649288034510388725288394818620031318956922673559399161430845983325991406276130071178860642305837520722366357522565077358244576191865715245812565894211844592475432514508435859590848063087367593172246624017682988508039910727269656637187832971214936078225432463785479601013341618637320681743092633632694549274323986294364119886496229024359049037960429974054178037482162635795867555153329750248836271988512375682750579722803761989219236063417379561672250985919607220841352692683014675491856006692142552493818721057427413114610267070081755768490881482429950696715110595701965889148654040686242600805249986926323407853244547953363349171263046370304966391419180813714605775106183135908400345771919233125288163061152550644861695987213099121544525302165211524993655752650553642043976669977090262044991530641507376035535781368008214487734105576505134691102087839504202320674281156207840523949787992787233759008037955803653945091813253220316338684815305605715485008849394697615987236141975550010410709538286081877733294884329311165340566598169777705115639448511963475450082806963995941385923588667115123824825904770642949598966051920477218298835915307553877872358359959207159225241667930125906084040735946146499117486814000920085831553633897402452554241440015518871425276561184978086773977421671828372587577045935281353243636784593523735547105081037205386414409759059576669035973316885989237371756465624766991237529877956263647739078572816254782126638094922869123840558541314991708610155962461485202840294668293782917456531585341101524882818255502715525634162736191168527758702466042027633697132748199471303383863284795314864072172957604482141863665414246287342460911485255259299261894857244256998989273797554014589114653150220931821442359099319670937161125498840932810960099254212798662417399836616807887900765369211267921564162747927270327690345791295829889807327076493683864052950331986658636195527551824219912921741092806774895342723870878049759360946117153569267699775966338968282174964086751831254565472170738107393655057622402021983563030410991708096079766637417622520656846489988925087351754466205450497382034583028104354135403430387970104637894696546944035527795423079144702005985336307539351729285694787136039205007915723989144615068866884128577850041725123743229059137518708241447005202017257053244179553430844059757681640870592779495001776982089224442814100705807784953926458601880822864049081535287559754491590471567940076206965326515106292793522790575360813996624892024741553441468891880457525929502679253793339695134245878461927009164978432457540339899732904073673818133763440495638798566932430285673969446304854610586865588416543998790273575847210652321381447117254831504720193891530788081944466040020639500061901478760868943059619487288457188714832440056512292894716037848098471710621299415083798650041173834095497496924511854132069638189395673245416520432331660284718812036032232874510466776625398434232362534273026333320113450104383502071493123909324852944837295378166957005935305091087220765868515185624758170247173821891172547282681526851933564108007496712183083928096619428057842829208184634770811545333332566251039535004615378423224344503956264098750074341648211747220495093829008883821061473607308414791097318605987951456690720292219248493399527520148839963338820446628022308797703949941769115370213252964868724942367074004048723677969745803738998958300873357769824511495846688770429257064455258513693669876399370083412804335926939688794087544749783393560258852164506384566211388565418684420446472477258039878026498761268335569659956180504692117486073733970866222996075998052949062450246101363031933792115002225103521779500409493903466974399139630029434419680393665357574149190542568611688668863949015097616152530281680505070193181894634151326201409477970377601157853987168688027611816943274169336274375836816430716152086955727832639616811318504038032419400411805266457709899726936364172976682537228493907601168670741562547483162742188004916290148246574256949130422773047931322158102956051550794228352334513491280033687831201407935409206164604656002998869591146627549230260938495681786006784879172030851374723725378115287150527830263655743978712019702220262718166289856772642635877807310388660787898420019418956523479199341196909168878200145116762797383700986919807330794048127493786368743504853804759311765622470795932112560067465268109821813397212949891259297362752541586636629180269682946377886818642174747322278092855615779080259573539244939246916478267930691515840911186789461139532951255928445132994532941340340180522002743470447871576693305188790303801611761988190523550760681790328384510659212710700405384152721403900557982530217645083450365993004758602452414070314656225807243759323720466812494655370276441404932797349371638448596091000427526191350123914731275904086954653050945873530275926400284101663297264281976034016054975966365898371653382956985031109308293500159532795350134462430910234400188467494809856132837339367418428400769833805717017659324518903555441450317825606894969780895275998992617374488834410313706249798534878541697334172969748723753137031346704055129849976120753777736101498004011467280749621626933740807600318227462369815666191891433950165326418538698418247736812650304313044051250454022683484095102600991917796594697869003637958857555307381144394576046790236354649660921437940092596026963107129880293648675955748661004112192178192738412517200883712821112823536974074100051795545874501036046005445127448396436293622640317731528530907032429624400211142404736668437541492242563056713426493413923462527537974758771364854145020179629381399328232172911377815094069027812506084934510540493003992899118826055911616693520776941054092665847884986768518955308862058641132678245346871314271391584901159909089940622430595916184421534821429650220018632860940223989619116475672422448324721028575427225951502736165800859073001356147888848940752607767135863721740394541771807009494722000938154678953861419979842108228708912731925057321105859395911142274347337657244874604041138755921047408973998034867071753093974753028630422995381499684669170838518112150758986753385426222467053038669256269247824051023997358789760311009891210273907038253329405791653697530150842798308546410337721877379717293825510962646249517334629039461055370076797280130609735289053994719085524245872045350482547066434770643082860498023375594302842996923241580788701364259923231847747944183345807050043116284454367544867852985328807913312356761813155084769686688623855331681089254023113993235875830639013500232255033659150206572975633982368660148632440279730654825975561889583648015538409792602822060944983780310409481676437100078631412904594012799080341948935673702349938218981781727198970561184573998657754659497251929891025251225656946644749560678920315074190950729818004605064484958217481234078939080631774521935168583254064625613517082178372626390894145416374732412114183213679293509019012165810921575416392715246790992120077873820070401841491599131102001192093070187187671761404451100672302401245549040702608062272793024779118354098707882073046596564035533947763271628806439861450382755668025703809613217234378005554709748807982718860484367896652864061656646934727798269307149837371657939828154758714996849185309088127985337464376605615209949304544007796082517187752223938619238522503486642433261954953394140585815717008531075368578456431056631717490178827033723377595012543773336489679332096767757191094150885934831316133668523717777856600765279238382083048403532090841029410812731900704627212093475571628967570831424126490264550751476821879827756779814088683893371640928223832160828702706687584780695568494435810233395736919066690439590003217054114365383386861826147582916292056703687047172596440488681642478165004742695281638291330354858906534637038516560775334696699117828454668527948229665258629336039259801583443756086968331524974036956494938129341328298946565233487116400612285823316150143693220708384146707521350201928804658362200171892415015141132160189537302190576535708966582394215395852959426481300479678308556163439775828506620641399513633030326616092482105471904526203256445625693012687304330723191165232029673340267403709112760630453287838182912260219160093291294711813613510759582118571405966765035324655808632847501997443760426585310331436584886615548042115042107770036782438689615332774662786986597745815792345993372378497967281033270722162951559446261389778223426701398389826733081393536089432473449277973907390983813789229581181768669866928017721993774911323066291906305362871663463389884004782013045592144236057953747326398955695156995709658573176753749335456755673591387566103715826053022567319495746435704613525266998168537864271865730761574225108282025601675512984418916465092494867505217715871828561646117969434982950309831585688606422389657809489738115365596325973247310951915755017460085237243015026167449927276033537899768889072368129264564794207874683582929578749325796468374939073618295072439517146188280848821559585133483141534423889869806546770343951169900266252915984346630621257131191382349380091283136841818583985894821127583902831922900244566233679700258778038162896916620794955060136928183871573263595688939864795981131510638795789532578453561197380576383970859906071894188629371068300851691188558068353480922361819461354094897851630199631193698194274040269360850491717562572923180081905141091547791421715878361050280021959519815614173068321026353804842033766579067696570946416369441244488981287946092588935050586213346798926476954056281237984790855933525827140679309956004065445742159912990406018841970777437224595667235603167808149448941739914358842837562404702414662379655214171575997530251855130339235936963562700900008022205154739628343189341305593503350385879290406931266939128053131369652469127642790274306002702153814219083947107729282236769863666532908101888347522443525942542512955649069514071146124507077241240320981055356883592762792083420533084948444080017772779652315939287148670095278000116198215445245405348260309096146847432356675103317145948586106689483518942218838800884331314983097805321189410357529658795945150308073196002741098883320686429441181043759531372759209520744807866426794665366695775857293644163476596983011378691876334079185787814272088178317543003641448828251924100679146203871950366812551314274292977555127130102548378037831805048637554657840964794110168651045556454367430742303834266487611846304923033805413488674682329224134564354523123589374362854325554587932039162569542017232923972273284553488362410417262823993705560446321060752961135034336935046675492166622563710328311070794258234266482985246963942609653433934419653295580208630552940946584094541320476818174674370813411579976356713410465810491195309856187196778737129174727921440321389512544936377137512191627176755350553200591384517916027439083602902518729850490000401091096776059420295769531855384425783124182494695504874749287353399068481674152010228058737917944203200782799713932630023525212846156836791941159458485425936192095915785031044166908181498510838314099483756614179788093195987343162395057714736387426160547474139689738353122181122651848179042358410079457045731058066514435076254822935897018538604762716531721445614094659311795193587500024560352445799410903988126035608368187123111071476803635384774147256564349741236253391587246553679037589767686202210938403870217721454876517334735356729723276792629939759520593097889693107954270314508329538464360335161492471358012619695491172016810063602892106257538250925720483585885216682869497085564244722362425486817613593405122060934263498961565717608912278187808205876114706497654747503935905816516377686964770505966944330009850261702839219866865215126204222783025419898913118138314542768978926564761082696827098855538099649160710909743392463291762196359436820452311588033360845786183692372761827690003412544166410915387135030512987709134713880431941900746329147705784390810001860787815833369068159642665640258924114407336359532438064283292748087670030470101861915222892865747348446507057715648313621279862736979602901824561712842001080600947640707241755857598800689167509905888379520721253539013275885184629492527104541728166986748903909140922423660425259531570474504972531692767048221353688687710525124791876443114275083239748763580627918485967377773286118141295178234292845702096361721838919684185981101197165115445619315790399472165671819490244090888069175688822316500442504066935028300111035540543241376341136656606128829471089241624252884918396261861626438119576264610607699588118929406048159640682282957402266451232196412586699068369138489314762492323923206936701523216996236008653525324328855092343686050290378076661556992698391418652951758253185365987161046829086307664895401249467371355849231785346147392809988531413913266452037079374831688522732646644487142749668098375087127173906494649435875721565690773683730998468971795701363767642434522481975428722674684314275006526196983987143788609913127663922848737088580217015496614495453842624084507862666638336571310337181011309889704792797125098814348320200168631506107049384245211107561951176250189115595865628335224990614815549224458232336263851202293110339283562925851920829208640900889921594514228652935078953890928092486754533906457260904679241800681098079615800351328051875515125211868462174306098755126282840479894839067336140092711427875280637328930741367757475033443987416616155798252678926516492347900085765371227633056760025358350394367184808346343095431768629772713334277740034242613241860282247578198353396703674939829910679571641679218873765556251513909507475487939497174962211089181080879849083031942336683707168920890653623264035555091102316957662597661193169263481569958045871425615349195819198277030373066015259985170808273593090433098336394895966970394063044316701252473087252670324917521657886492374301751813867418284273231378134392677467945359153469496949369811565285561663566611309252225481635556802139188381863729861660048047283896157778385226359559992329533377127557624992247064504343562660172300758901505655298566771259435474068825812122004162946556080149942788306058809864650711933439110365552786258980158688034289064797026938677869323499707653981858061127407192982166081452276275103556545638122643120595008112992015572130551834915296237415461370295007663894456093292116061064728027746183765390310269245981033841638509051418434594522635019860960824621783122215867325177924579366840461359794898415683631752175526719403483106158464845714007834196053703023783166050179184738260212557745812944762613521065354751940887906850904668609398471025388509387774441222496980162763120563267504813385690893785158604921590306105424911576985878420979821125631517159616484030640654455125690765464637471038197683303511866081651890070696835288993290297331288187673171387200800327637976581942815407825939585526809490292338484094759759084572996803758710140316680900033331242594300595547495603770307069896117608419142495901593569356113003717454627992100827121375354075028944277433477824131069949654993427248314659402104030626587408620993148648289002748115020112347108731784923513701867706581452484007024484144050653498089022667070744495177399449806816657160949210388189637894053741352443072545445805605002066781419474885918762243563256914136864211832044983574172150846675467602198971306738954295404443997812374392527405016608159174653324999652237074988217881226617591495578611699768291113654918226603759806470341579824794063095199980788983707516314895164148696937524019539783597883228772729041874549701022668017315174900538392448022791904082645214001102209158285112557692261328280481637560774564759048445754850024560094931188558010660627224574294105939131414037272739879665796813284923022616436516980040657577399651948520624737371871259916762301843512350052410152680671893750984547376157556783106715486253545694551460189551753312681491980388855040813895811658698551323999868955062195745856417640924404486518925496362151683491099322602405558051244265662438940343010992970686986261407853706108157960960251994335886581245538485474200655919556416607947172960525665090735312551221502742780782882213465761448660285443875972107077454860116873619794978102881365448030939374063777441899789038853373223025889978313182572739210126017832310264234234189893483873374488845836582543820488096331881975446788766040074836385299710185030489870812816032139940628837564529235231322298036586056381785656256215163136030120015049656219927908194443444177112393989875932237314905768881370534768003070611029398536337572078972265274877621277056129778147728215072611063116747586817617656306287805396330781149182807664430538771115454225710888356142028684405446777373929061150526688474541822005989974193295426816808643071856078428129790857854608183513660114548853406109181880087954389486233544073679905239682995919247451076382157827878293075231421828871241829482689649321462432975853210621635820720581110917901184929409524059144153620804991838223011513526411590166476467933012194382408141848107924111676559471022003733769158318454493391391526570655962273932688456050537007113084370840225995308193852004193516330655729694041235971401567698653550544367553089816708837548874611161768569234763594084592726140944590664100516921417674270537992852727710654024907956973874316522350271800064950116146108431136640673977611619205498927574541096545605153786845972156505231339670257055557106950561169102363347853493763937718236372965660998546641284436938444803164651294912023690363447190589584128119476266489694875483634732571088340742719286080028467748307888529085902056642314402369220307258824523817237260240271072518468901812167318133793543683999319384753613184673613754443636649529772721408111268224190962929934466377684219126337384252399666412914245292821915424591071905089435958432178279970872611294559775902852652502006747246220950744082508751840420436034383923619257948971270383595488574617951836524829133511166685228304599119902995249324272515240726250144774682409348053437891588235872212364722795281795359500457194888139574128138939902800448049147313799882440838340396614996660680144802159717479457085108314383619828472871681850579572273106554967220188306237097754133300156414597405052221737932710276082901196622586241779796775815468648505431647338050518747209940684590232476446127285344908370136741949771870918574358431137558864008842053465501343093926408442714646037339147938055720635460605779908634665120850261300780024623853701127665107648907212730932964876652086412355137031920602603019807731907604578732134961528340658072401882798765923437359624516782098832688267031958745990194462355358553418433463117896066263527290219951314462914228238411921647330635001131406372009590771003490972676983663613306924213197685277335176510964422804944747365673683090724859968818175008438913933534172052349415639773217928909418154923835618441359691248479146853392862896238937011266340020093495270196859109082757521758989833562494404148003645930509489491630976472605741988679064842259801608588412899779556887334742560896445559377919235653203715414388902038607553666381686997067970371782616204268659816151508503156387968206565076768832180055009574522698773592749673578954311862234285163038441528438681054785752827161267046440620649417693895191209479079837327579909382890747687285802192641788670334165735023265071570762124178011078268170586660587831046164211317821337438566079179920364968536563072803516752074100444380409693055924840494268438642383819921711429956018669608644924108001999369252732263666944324529807783196576780641905701661600257986981531875083190643931472142202668385144284934143993063160525199875124388737605423244639573914783885325142898013280726760169329618037985389137332564605098364852123746654645797193766182363731336000217636031160404024449274997521451688833294965440769681003622528903088038827308815569097900272459309819824149222359528182914250276083643740779315100468627450894374338789109177636119331547084887746888940145882440974774346118390016103421665342342972714443213323908473002149241387338014545222024805217445684724340969583894367831167492492621534001243378909361299581357596236788570238797446999598613198108751846409172115089316295412034528855851252312821512644253638299379035376413621207347296931766092862465900941154534698196866405208403922618984034798945696840484462114542902519943666525573590152949884714697349412185869698955017777592560300979617190082269424438438068843657794817528295144925258151598607156682923729967938191944530763496148972031796450650427985440205056739195518589930001442973364076089492788655646761404364758222927378022058983416138219252106519568963722622177981685911824041714425190940794699463785785496478700002785645892372060415585118173819855564677952841746781420516771284693492865423531402120405966957877446458897017387621194455928445829275744243413694105387712252922682186185391321761119993933625029764230485682558552514599817012229317139945560228642480887698082548399951700537455959184287937703090799591595179375779469513640908796985295350489642724240403667568762649678479079723179304321563887440648409451905496386720119432650307257411440642615177563753313333008057690815345308897876487945548510388696980514368881143084362688698174781322721922838213956252414759533029588112175335854789044950934890952931098716668512116518304950785278816557111554299295380793550465834053670659208657502649873411188811392614538105397157401104557892991053457424294674652122321866736734470318504925186585784435129866199930460767143916090926713752206920225411928757417033012243498280998523502485523771990484596961052042527349046825110818464990607552355764946902320980116013492340727909475362382698203917478313020815366482873774985128811289750004280420019365428591075799974522111369893827008332439797435546381865954083288979882949478451610827906301815665306123283607868260738928874756901399277790185029484877650975614953107227366022288957359688758393147517449305688221807374749672857108593773910403961867119312004661981446014767008103364098263976917677004502537354478125339902020513211934647073470853910549524437773034227893148139203927372184825639460937688979235233355817261105611344381247678633327009301917904886792275663533804584783229856680555218776286648363188675550963554921841847330640069450651231304541688105043316032830755556997457700491696368695652695069384342860883409071484157096131466708634619594469562957182146503400868756335247610680880661929589115012221512326446877399118588575701386736604156458071034786731407802860831151107400977696086113820411802476453796825765966235898356124776283539271065397283493084587012672107296226249705953810340459503587294147382926560582745411453637214260494237707857943868138591841932664344873269866257847840721945942098309357288438421988750489622708851622602269953925703027716176828408007493706719547894298613643131492466782805933478231244702190756414862347413693093209332596242527824977612483043898358329124702422444081508865336320006791619470638620819656304802708086108853565997215591941560454982519179961095822495917407531432533087220322568096309744638565581371405663032502861728829422952430837932395364893632488467780895218524174185734212490185667170100572065768733968302522869161286657673514233650052702940081572556739892857384487861087633009718452369166198692876709792850385912265338934370057716123691754858938715560732892785618180487311235628515354394083589302613094922272261138164594915396206013290878796267947454635562944816321394135249671905927610644592189480276249889005215086085393360194346004721152358843931944842479487718002072752210307759541064985039728763969074731228289137118230453966677646607016856336769273718844457455859736474221853948215650733227028695754144908762932921788262200717557733852261973906274815849457652425312713080257693180103422649452896780692924369471413295947568963891558335504107133319811372422058794155524218537532012587371179669258029966503368478374236387820335010743840401422799554848034867707272313593911867264111770710496403422319845623578637802772334964198342187986814760183147182824974163271355550329496407940988074517784531606756720703346508255306628078747980208375309971643010702323301766501786047691443612559288555539221507118537396054762848572892910073964824632421518566086543485556620500491240564328971588762898542573488678972457225015089979152910159125595301818889132138424989704681705640357428459726765813946766390999859640337848307152418330916760447584966984690797560630788948784445057437323495423493674507454888057765571478198768905495845928012340662328964369246464795961454615483543705331613064699641044216321350431825834059481078890812419534672218578037409444244981167439309685769283546186672266303256793301103452667545488304846929027574331935930588855846861810493782591814650136548125619580043576207967706951449986638853798067776096239649012075638795183695286837440633824137106409233412417620644602815046537397575374321009854299366672691196642988245996121468973223997479627954557081671130121098000235185700747666404168943698199703254996749177683253263352617827439095804891727694158055048585431959372075580708335773191860752447654840664870356984834115738622971911250463301219359993888379827751441856929533548579775553655967110624262002641580720642290618804838585930407550035621010967095350469317069807968846044259603680388798578880540861436832424959023409478609580252585482009360698143677093469722566705602418347636833283294197190158516612659330108019313540161710130246829011485910688408339849995707991533061737840145287055881598622738013426957682669780189444302524592537324735046369400110109400877439619784508285871476585159679000344008744417738718814614763403224556681339276904529985903219239521063232628695156989192707595149566274333299544826391229606625879272678306350074271464282375100039180760869550713879595598283052793048719914534098931147072150076089952392323356682592499215783560477317432069987062441392670034472888568198543194469756533093159031341811992158291346714440404236789172263378775088587028062765921225964540983448355164185916818111983148947509887223474178519173190458234774794543564049576885315373455670827442921701245503001216518277414354686412984983194142735705375594497736213599815146485821519229568390732079716824934866570322178425734714406566066587643910524090311212035735521950772013668373795659080267222147419483795124676597710209426965009588331633558648415026669106873200955641012162047254789872510900605913971234099433213389257580032286718954320566456095815377781845108548184532043576261733903867584775488078963633237052390071707223546925429655538938579395416669804370386779317889149674696689215199297611230474483157066630076191000930742831875234190886590872282861944521173642997544443135399352724703791241469039631671046012699982381605780641550913164985994013262154468098995671097025255475501939584853769361834761594776664689579076785828778396284990954346513268509046427798297618120116632685352752669054677312539021282454255559058244236945989633473914914428120452924912665661205362083905583726531717489365331692856510511073863209719936582602312315915026664481025740602715739447923785618280529235940399510066228665546282514888953907812922098454072142470968921526227729345150948205332319009929210668141622523115893508240021875341128608687143013265073145504882102495253988716674645994837094039905646386424079306661365723391144085732857149232297235897632090430520107286727215841301527657798005244643293379612836843524531447530754135476258169633253173749462268023744244028357003873279739543000112172403376402778159470299499251048471040971748684165332561902089579789467818097180528419465801877851979200487943695186083161083198909238332980393876961084312219543624284952047329073926948745963233941164321176097413587713370348096208695284862259135412836222260873399682606845200854840226620770539679249539970024852391846150926728841381354313262561146584120132238540266461864326878810686263460057356874531501000169928047302441274933467196158911878154011388917621866053075971573595569331095615310459085459518284654490744504663954884866595358879993783990607336924829838963057052207855428739883043983888753377916554893481763011878309145647079113456200852787189673341479079519731900920854906991986591714385353763256348377118079984900613565333433746140508748908333506127962508036066189320994319742985276208032243756606469320395321235027601248184775811854661237663746041299903571015110239207263971262451472885108527236796190712894886747253415798584018141322483122332027862126129906032776941639535003407402902111887284021588593387675756699760055486153697969788258002317631517836961703726544781087734283461585635916839146055867299010321148227619890702303464445460028367537014195636935361904830949694076267452344075284893519784867954446912650101181841103350567345143915111255549015372828291153804207908586080549074966424405674982972089452372458931076797920535559310731980815975053531439628180626859114327264843228740769520656668203816949659684317606989879024809348397888439998924525168224530254943274124524008941733570774992243091540531102422274690848668688480659754143489188503503231412881776324621860073034304206436595971063498466080255827622175885131886134158169855219685912195109164636184269243121695004151706581426635447444130352109893345427559279306997061932010969310421909382501533405833082048587604154074053552237130966323056987207028505412913176582679898274590319326338543572018704804052920058629048411640968052336330092278461362079182786171131217830564010442515633124736551657809289102922511022589416647040494542445543897316123191305084502654698972239323184543539010608236603190188881601782861812824572264940130962443111924472789859599570434294539611220638533222444735444290944497230076433105504007941364787449113845485720847730724154453017488640956944500283014317164857608519354265580296992903835696510611804094287110937969526013592888777190804047100673758841941428020231870913447468553897932110619060683682437981922187024533817905048634143210992320040918643762069742810239413278368450021312776216239164940145759885981701668384741900189598685140446790637412166433599550959334322775881737354301255405098228569535223516701063527913377508380249526876836523319812874828789962299010584017457025942342551528114476689606226922194780625276444316337085799898531110594454410886636541195636949354407790042328687284247403238000613842686989357268634933069425171610199393535289160061035796292189274343455557959115808239295038469581020174660758137994706864151191212487058180001464734193564430877953441186757407552966997142585561035222642060249407027686558766988281342936773408981897039422182478849423174466286922742213570973262218007569712676263799019084891930192810495109477127952872854520594389989902007541876815207897574326956710067574502664409235248794517340938391382911668263202714093697136854828870539336306215078725535381600025412984512950064428621454502372629695832841391953003786175291917705417387469604678571954858469063003776033348323127692245676367042582129423470036552531622919493232769689971113771128845342965099337284059816954325539981678624925534146459815902201170912125190468058241149492307658181667500689090478414265997015261483926628157398812457613724303913810724297826888400789741705125694528700993068890994909878612054277788764311507312079833584210099880259934908280369161636737004564526205671891380044303930517467766293291477967321920984070664080287871499509664335247636976994015299574819336370009577955031576639081006200089756727385882458839573658078918902072474094543530501223430509037014660093895830006023307356133954738456074128269935203011930132962173905130648601183661580671944151711506411532003460299535602310502461285679587797524701102761094239230549458126661443070251068834813040690177129025639836199930495378678934195153020684786702451346299744896105569834038812541871469316954590483483072250850356999313212997653560002383150408344943562428318017933672213174769426151770568021672889342347205423999426900161653137695108445938774494365641653006247900134642437321663229141665016972229415917256061519543375331046496823712225329488029454833454561412083401291705227325095594963003722784930240565039282484645422346283541450297831811575319830792100335134591632793545780300274344907093174006242365081621955889590447604729407380352614125527007224498668377768279613916446139199986354416897299278809719326179876638655817369732605717023403028311050847826592011156941639334600559243424529898993570783614111093611466458038049777552913558602350147792934071725932141647391641326852164112236616462606488476517472054292720023406556124272986064052746085083906105879745256983207826655864205640668517015479170099888690554904591360873145814823925680191444180965822827646674017575885968636813735327059247494998390330517100646077194656128664162931384423282645941030766673096821726004393146447060095437698105786059876688363252704523011586997468324317482524673647487361459847085202794520348081027674723905179329813806263657924901125455407988126542600342034692979404925209510336262099789877096392443897196990885940185864421093922822177892688732064253314177234836533907639098368606976404688470175834713973499056587360987580717635513854531788825856994509807286142812139772208739358466131071966363096903924766334968311641853062878679081675100891098071336560638538616765293203551779989923064121281154627763754461093874395200078494936379551085524872740037289697415180154724004474748761434024031612393725403348295085222629989383747148373401431607269754909063499303285777603551204117639275947764811953991889445971871427534305840079312848394208599640525926623200650988135310075616500445520720927704009528897283896496818809158254973437747253070855783368959217043981393616152271360084287256378279948107989349611523578196282094248245657257730825018691808449623075165849259217224719131987759721971167403614688586222084727261966198390584646857995770157326830597363317010226500719158077531786593914664036905631340891224414838040086831683474977901806959436775965660068616264499203799441659159434651151290062366764637627645345019158107875350190654473675221259463395096037308828016013836336568643177972454953904381804646134408948843366431757113242945409993846746662649389143312637463668992301358120868460793777505279635558530516979605309133779804194501909778497424204986355978340285853257770974239342257599762238139493095027389682458874761642071905090986294032602441618251055741829860069548132457912951299669013245426499232780828477332128602319002341951659029200490544494499590432838800174870787958727792191170713381784571680491363309000370587377560488890345771320566473795432685992822699671697337432682113862714654876470534198337285595470823598362106008015492811253571706637047771354584929472943351053789366017050816387714422031156401157160237310413657415516290865236658617928168980014386349810846932327575356859847365838974306566579676387312589691805367690547509867060891631564637615185476446070802514649956772625809798491296180554720763382036131083397527430632746572467142046113530216134945030655655003381354829871139644392496679064833160148024299046248990030539553160682617215190821868909499901447101661315177604175101195387826339022555379105298894559248156920321510549013501712302839625106590549562656824045703292520438050988067990780084962996685163982145589402241362360567316121432892746096679637833790252286395630023128758659914939126840537892848028457489883435497791315252068197355228040172970515113727860177298543823173808953787548868825860056556177210989298856918068073792040470438078264859508968302751748858496078262274376470832506813781672783631575649239089545540635128563817305962779612285114466289720741360753885079624041786945837541428116616622801794161157588388034866607679049667862326729509146198652109280964370883100396050102486607677261378172594112962247528364462149595796665065865448018570068978524863927138007619161159103384710387607418465020828760660006119361161459894321011962855009714652523284375264261179136896635355094131103497018996282578412478466810333351242193164869159641010580450969518310991956371119289663235147671790909335094441921129995518723136031371107449337384849905334163701984571395868023885488479808830627746524001755280942923363420897295511306404512659478165719890090316739922679990282209357239479248424737265573909722158952101493949338227638232305717916301857417598740171602950702476896242679986608966510371992468617367789767133132683087740158801144232613476741197347031455868088891594609668906384518670717163408733574595584368783357902105957134396314616106429666152304713485487688430921296746955376139799829452625960373329696790733619022244350566504720746032104067877250082555390574694901394823951704049459434059475050955306875880086989449939516741416116823724105420816859934759682907448582570207774367083163213892306450386609503778804640043395400702459876847112830245523517568485515904008737716820105854402841048148303058541409020940483761515243777304786780984708293287881545086600934995598466461111247844241465381828580870345692146772552067045236014350153624366069519402227301071674743696657371248351369764687163930187081788927528888767533985580108412895431997972500503838725363571958112123487355359880069980550291055736714640908964782299892595467511680659928994360090549257439391646724254909668775033946698357700472984839114551243944306463266660567555188747067476618359100219608343544417043918800173557190002543498112210172893752810804771590784182453275211289396853247468253613053045109233633109100609165825828067103702471938704379880339100977363633955895589251018171849051252015017676759042696224291407892683832704949638734791113591922543877435230120648454328750908044920416190135572674504598106184037503990486604290566879144532285185831157726417226226078586199927913810283404660312873227445556238306505692726360210856114960909203888188898452285456424035143283372971662828303306803155595487461041346473477517270373129789877494418670950001366325341520994069669960277067136202421141607928878666061911299476627841901761056594191119446580232153285156216719582988732048055119055087910646094642487335668627541486843869862532380424506790186751008255082573280235151717234267737731026985858708387329104126266703236167354063672562581735772073891631255945648240713780538480263240428824632301779424131404789270081943414497511407182943765616964843533882844152147320313957249127165472918565726518614906301893852837975048541234924333912503862770879870672346922546888270361892066681064033513479715022668464918933142611350364259176681215514752158233005814667633255421645840620136075271565040425804533283910677053886349376014877743036611570948259136422156680650472856450453028545079757858661764788932113686981813633669746846385841342791447090121725734802807175602918740645831951804495316350846005606791339956263745719514005861261750646860369136310621312035034016693267612322758192279574020084273794697927189065491365558603943896373520761352860144054209624838193567505808002657058784406532471342638096588889917940209350466382188078297043544080361198977635273980925180936733815262320660330588287983506018903513669924877150001117792441106597326593075103130327277769566870003276531071732958964185052226996626551988685097413083819451951715108597090569543817206236556457386203452714860674084743531442081296831146703428004365144037782814700479271560271615038561806866518298430362524341414611606253688166751938992970250034631664413643247301535214984988811685466942843635154770274569429780531850668141047801870004548022479050732523167886170179536697413831519160563134807790360177196014682339823462468853889572283158657085330050945042725898195352578648455016948748045757959778856251683634946802987908668749059983396316795611534635350613529879045437138709173123815573377600989920318700214677359904712166205708374977422987789152299290435161417746840032487818708466469706088003027700469153968638467880156846534173530803207252974624283957819515147675182218265788172251161730589470514102916677453863454825371606613557548272242986378468505712286564961969928287066389389310011233972759065284210201904375305510510295198425176774802411278571266929193855836168741219276290578526223522375478033304106460855218040784733551682661826424812769679443326544864370481810586903840726131128847573497987967238725414404806575153897116412994884826292878774066026606332444826722742341812934155734091844569668505596975555363610068493516048554486670866727129400356138054630084191388451441797467607532090863249575108024735823336980679077714670864694964319305084815335665958194285278872785932532168668476186671957028259202902531735652677290295956701488508532289841719422063494296189510075413263263886714002982875604685219031285503002240555405189593330132465164699566698970616154450483309142525482050394667016398473248948045040415475855960901795814998298244840341925419693735539168485805909035385295074801418470484464143481735994260872690300647617017038041912413167374823753641968303637129256901792497079974983227835759618292018380430416826128353640251340964649300287170633153184612296080586145906079120557917574890890858537935840190127024073850508662867649903340994911142241658128636290487719322303427114724347751388970131682781112459211976334213986460666004605412503196713312572036207938974046042992353489525810636645068151665464745853047387200632237731189854363767943944478034116871556234368436021170664877338447936029591527385325041975570012557820281132329314825432327734372611415297817957406669086019967594794699738094744789149081450714899565303797008247633928038081729646500103969537152810174382476186111460468400664514465175423825501939300975753438479680036841675654895006395976991634891029901534720367174623301203646537260532888382030961649487259849029200432502280510498934337866955722795128216860431240232460369493316366324547637994759442227507759654414266974877354819274123102434490435126470484281941730022771905323868223373753442360285874660456073189749120246751340893227770316932657471096794551875296763498938914566864245453355767893714657908184122114008721946439547841699478808496785256913139036063686138336922139229578859553229132341852831106628549571069553569913716982525142423458857369780496284183312419292668735676180375081927643670892922003012135681899351793594245806474001711812262341516867684851322064558736886836045173176186042032109802541908352762108857418863173256063437183591201777351388197559121533406859690030310588649664215981731186721219603878433437530956399359891469514117487101875509815891752209820300344867905246385368895880642364842939272045322183733737713328240874516440726972392252257898587254917340017971936548131241395291838965685759454238470374921330811604886145239102988280234931397132728941949948474506401295614901805091466791938954235685860643799862930328742030534551049154022299436309704182936567700136292843397613809994965610831407996220563654293532371719743637853173634413004732341407294119775814964162314927949300371016671088159860594140454331547479470826524113996308702160286848306258593227696582216027020970786568219151486955260049824164119628149901823092139739078250380353260535296638724288678247534630618520314218354851494180886860015649241278957772759184221454517971126877874906786443856119015944218771192606238835898427429939010316251903095310312968630619557940286579136659698537972956099408638206340045428169757247244356491733449623097327814220172625109525277696525609544090481960681167243078935646697515870959758815158525478867466564100102773005919663223454209451952163116021643495532868362304063697686848617065221972375661708966926564725341457927467633309508679649121276030453264006144041717911630830502032033899874850706111724633429373054026722144705045345531927775019386594966280196648041688754299642593248561487779428302381649587212679504986227535212432022688795591610294632343431309080400480047381589539412272092540446004634843130812541193534104683694410699912810472176018509571296338078145668212752187928098562355370481618016918803503672046740169483796690554067029554472513946077660885163787702580032140460005814043479565926688391872945238274194254271113506959134268255502481033325056929201137473981523417832045144848417739542937852663504530154285852267990006477055735271703374385949789586099080764764082007502396917185261023033661862688402357302202419857004291757680918732384990254808323457226091328560127934466592371547536092986429700297641954074602856332387895380235967816613960866929538160334414394165563899794926588653791511657162892617444136739082378815360186102020043438128042900870352643431836512997338035010837412226337813674711743590315768365406403930599498794423299757307228897860680488388839752508767288293422513693341868990839288550609656435661890589690758679590522805896792211165844131572904864908154325900384700068240690580987104941300256549135567320675060761316619053058069122938062208899455518942760546304682488958680559118014446146437551337484714449651034181590604766037506486287077429897376850038963070073410298028837559863943905825571161838215690442290046282002806513646323583999661253074512319348082455019423258123276898223089676295566586578629882793302709524843158963607349790128360742934515590006366840711127597098943687250152417839791259525173170529496040737074404853821070501154787339901515010093314780343940244927848889376474461026824193389523943354276257570325102881900868065622610526577556520526302421615320014379731449422558591237854938026268312330786586991995348115808737251228633968116290867089769252232560921542060231561956556990094076282346009480872502640119090920660128093194407671166875916822054165390574957626552551024595190168728388753248940858148987007718542871105594107484395759748339364736046983841570491375086609053082643677235708444382803570558086243824313119332495170391600220252741994829927505104162989508354315194414061366109378657859615902680974680397085754808813399595473829817082192756793523753801140605900457445376643381758404805621773795600260733304208228950084623784678448909285279059173666719115418899569572855124026139206674325697380292019305850902085847238581893902822982666073490400917494544013470412753842184010563711326680948146583097120254749641536259534118915279030293436924513453446441263414253200135287922216183813251437555322275741213069165283433433905618036589792868557376264961190435901846251291895891393525731209920692160917067421046477920565779037444809143341945793866605547143672624521184006532494627810875053549885552444667411466406035016448215704692367498147331389977746509894022091290695943614334481591093128527532674242943718189247643141391641261290052844217817723203656775208967147692822173241850534256705537091753634478665309128146561864016836492849033730726882249408196420564047022910896861365526664601039090837499780644405529702650603678507827177693195912217840018101407389934919252542400052242615282218695329453042753160342758976291097194379893177844882584981862617074009867897030580289236018311007446460733312561286340878391501524082080611902135548970501574207603396441203326824515146807225182095847078168011987429917381883573639295398043973502932811621406517794344987972060640307094852996440941007417629750413221957827586194420684564099223832029327225459706574409125198576846770939415091636534668703563016414535329079448109366054795196581023625745815163748076037587533731735432085408209449845045155481007881809171670868446882903001829409384582690259389984742954447097437818596643880212886719780816662698543815759320580932420501272485070734483679278253248116844980047557733536943357525283961106250681780667214551421300050622248038024272301706819672573874809399079648286367157411271203994663870434418705897407055695460246596500484221468427213999301772627585275772963089162093961704001886844432477801921006145340444313730945398173552633228559661537892067101414175334901799918633876536773293228321775045544681258501989975594485125983461562544454045659747052126668285660734836056397718204509799589773340870191149902002155863130641105022585371831777247437882054555840815995054699859956367768439372176378506692557196332379815931291978890193542122131450379433020271833590186692252029264566550640799449074221887232697091466096091700799217213868869095055996694321303767627873102532994347159357413742303382975495615719371559658853965260654284671376099404670976455655263493628631947339909284062396913364026687903266562532704771213590931635795761897249383438806051390832593513133478972616007113076790103070769078048750354680926205655315873844589615106948788415811736429063651550745472497731144966506396560311444810429101534852097985333208395647810637742784563988168487298386098541925391357058575854487192583607749974904140684397009121612073119662629653025546044808256197566745228745332200459503351406450824729418882931264376986444340782982642239282519083356712760965004870299887956618245367901188876879816488560761638646330390054455468387764039029937780250677259803345258601661147194938235075286728582812826973691901980848353800371084317611564700166649416756121856125121553493151645749019957240661119513809157945170457327863868900568393487444497299702355855003865841510711689638056657354024359134874593564947252664197006349877230290140186714819424872644151542669138030796616782924922805475748880783682548176058376352408791481850735127939326740493936505422664134817825869362786587178103475596513782312630363993044610090064238054239331528361352856979169296935735221813515657869653632006265409998366434570788972433064558046413743493424853506178468854347497566641702617752429993834952315229443658754978293991257512404267334523441162527628821772067203587744307132730269047128032431437575994056408594292101178862026260679377795460642707949915275033272524294899933365744583079084733077022375793318073293991701892921318353886558240682186699232001391608120850411066267684425158442657289608622536003433619251000607275778798233018190842082481570850076666178160776351200225348539922088582127579968866600669495829943261745119361128403060172221507376066117875614706106538641982000570189561114579133083213097386551754387882436635496172450434472935594914861237641692762225449332819590078713114139359246729872270241629254736722754297327655907205801905596297760578873434391004992032991948900793856131520330752630135002510048714711620274040175565660200617640486419148159661750813455954055605382275956849233647257862779330801700727685001064474943180037584357650730511592422201790531768539607120747446924583604563336947182716578835496665652561149780748735553904449123657874166163359896207024879595668413869762679643629340425573735021876313524414296857602283758287568857902922668066450190698386162032079917336701864989921545886476116411151679328410228442765784621175204669776805622236348993130780098573292913855887516804362238428477646827395297632373097437823378594451728163341191217488010848263574472110974776388525053901709663972397179020744282811443206249771434507304740907511006455541386746935376020332107454812378757365208033464568286957821219536249501448438223294930317611549179133214357730528615136876326750690067313009173491180801633617534604192773988292514615291027181839814569767230270370588963287798684446633812151691703905627310235649499381783597857762649743965386699291925373199218884419738746032850586336005096380565035720397506350128552388796957640470722715495109352255838604682369661819790401000013605207469068742629989515063071322316322047712237807863087397900240575228491800736786332186216365604686206635426076618730509543959372812315507648109285018024375868531037109027453594541056548662623930888544755038900577387331514019273678628603277514883438796777752708611611997838997454198759898470370488275881887575127225467167880170332066601206077115706737865837842580467322630877138637192422429412993523243965386605243558426794559065772994354199813001532377733131605531009570207627463493788114122943098648909324770194781123929648781937793126780252320557049829854271966139086460452787892207687857769296128134086198083382222001758697766411287112400026426377023003868776087492130299721042743104968638877459038305464811130215909206486140079799524335845144720691055326209384549150038062025974389414000779217577880990359239799796307545794310606105213862648122669169891205738693436190167935516489198234104149060926872960663561058444770850237757584096074382257997959156893296811758588349396849333988753043415143833008858402026933457026323095937005597647467575439026458627003081385076511887208009365434400425008941733294543542843221772714866711502991978550958561817618610887282060694952180185581941947092346726122084402288036306443005517169892055325511752270420359187676222067564709619660474442307884967548001043882788988749141591034812526936919801628798809533296142429348206971884731820335329960181747078615956891643147038508954527340541826977683377788650290006060158092336462372352132966340242999424876012701799673753902509757295197291715235766740966200466204787845783954639983340704217111449901737089905186106911095378500757371868435976107204954272912346824588659327863964037239916185335401399711667500954936293858820740527662681082386723871494023425250477568610614247595988318206803090024623520031600224465557846042130320314683548332313806343357384814254524469046768396628302558937851764564506089231872600440699375424985786887877434394430931544570100185382976662566934824828572221455287178917374489315031679395164473394813406025975192860978076037122637413834385871816606482183760189438063938919014551324612914129108727121382897178879923761508928870330861409095390126293552172631308430180926342751543401086610085050534835789445568152749686002133074917252384674542734665593283805956098428609981459111754839299195876704651809663458511100549766676857193119150275296873866528471873903502654000834223604420405912590877534296857250756082751621980490997748979505777451328180459922981359795771665266045150939547341054991449846965805411321161906819925827726953603018023578573551746771751602055058851611333628640041078232071670606493855774185578106187972568564074161183501886257023680372823676349743561627459009169097004857500702631727317956942549197978482943808024757861985083333002564930621334038991660428956385275999119750273478811422609865590514100566267735755439594934044032706446520752579371354813651887123221675040391970851533977589554978342218405734613686060996403086595619366901984986319138750011621641214755362598287112606973997799639415243373843458225426981786507983138998692957747101393488078098876755644262211095560237004697397871692761670397370615424282886487291335364348185923879850267607374221771705310185966892942466118073699657794299635818248413378943970909293824320965945959565311582749274048848842905075568406008881382874084728857957377243344825551639993795189417110062143476185796119293893732340696802058456733832650107514580471964753566234112885156979770010376108775974988792262529984853285441076978442533491445167552156050810894146122016981271288816881500043364870924927125590095368741931603463031026867234391202466542496946626438759203301957612352382830331304736626969787594968855246110852112259641146319671177006803386245937796847925268916197249379734938579521882280583531171293625999441995965572389947100959555899706647004656138583666910524354757024561438984748806563263473277465010212202468100580614664073282509500828977123185494990495838103855829442170286249633156236820409728487672658664437352793771796398694003182727277148137927056302841353231505908580410336301017153988244072894910493033864030922854573618489202418770742125102647286873434689666097452538555482800138228449135271888012038250552148481183116789703710136475292199632963651552493517333182677959400559776518321994080844116943864927023997113631931157785805418197506945234245111807013702075258916064950327255047586079050348535159720177759694585374239545397850183797140773305966583570339521176734459663164071346931569720355035637846946007718916258161489113118354796584470593824891851929854835344502972868341597491414331558309996621617289373166870254981716025311284013233897084570395216046935210148098300731518450920684217388934709584493061065753099811716288464306751115691061991538228363967346996711569728725954465256361950735259021765948967749065136122425903961537599666546152314450298825055241184487966325814879880249856825627428005732992591520863145397795670145962995231428693637729973356899010029372693181844623153778391094023210142771705790722284475598779541285213203752792259946741917159558928716602355534942302745799874206220280073768166883904954982784785620923540138685956997786901367501750308256456520168114102608995464331726875277781536308517325470270758827345858529594766611209292910788149103169969555505726360249352139754601499994523361384198986446540522184924376056618697753454298050211710418068425896158371173314324163265446527657678960246556573527720167543748340798454058126443538706883222365400813333413112192044301418092791912768450606517977777610051114772004658981530784814910069201566654687199589444863226382507963568159493718128098967618155534907264215662048379315820969125097208746346613448231790732897523324615364781631049328862280445242829549635571656987700583057823129887315891565279098397011479645912821293914848563057349753235559785258388872592395154920852701656646570332291901665762598207364301184844655966927181517647280199720215809555911823375040394864984547815109095820727962262516676539975362950563703899215702532091146046927032812871025061421713858822028345374342840935180233352942361338860503408644460726534775296701773629790828762923314547463729747838900727303697844870466938476317534883793775587659540774232346783771029236638898949976537826786183940554608191206116401101965328753632051460979201910436154282881333831725303161514630899081063822727506382728642346064829823950293347212824290735092879262368815831623393153057918097985595182968882684045179655767281005561979566265303192330191549106192254823887456157970604797409774437366181214365583421239512385605041890216791402010254126868106982956213670494028805748192466759776942894707963420453244267791322020366684289235064471340908763736102593600701406624980665052347710178702800957602729960216397396731169920787229333990965281204329080965023470175701261553629663112943947253803544305624975328209011922720948719158041888033908370637586020864481643958371677005698929964042644713920122643900217773551211650806729408647410553067438808445615810192442785655162588244840259870523733817264781519137855525545178373217037170791928867394082245710037024830283943785337029481363940187412535397838602805435795787277567809034548704519444504022732869312369236563840860734073589614768714184078632401908606997899739224640135664522934765971676260018467456581932154568282148150586568822641495637952852493412857441117848402990241681834857400421981889565232860146073137974845755501620045774461374414902951458659591075234608909226162762828094307133314838289507974708383662698117720318829646609189952017379561537427547314988038906247667133753448831781600556385334881649712490123823626021476050678344952013645172602582507837595159340362180947025282693865747291262747949718401740448437530726753169258036061118869721603993748095622294003066039711822652443739299988567357411508172719728005970824584218410862962368222399014376969263037170450977083392769813338021498936755191350315640372543312557325135978980189423548531896438737348607306084148938079708419221179882034035215284267784380062786203908269178391938079572510026738391856494087993612828822508020782426884197836202355346839890960296778843986997721595945628128734782260314808378485657104374810880113036038834048569775099266282595539782765337232055762454704742502410903202091080477875671996772925225481073539612197735402838664477602679481043749411917766504266777479436237452958649383354508071967541304671414075956291023288465792080811072388895539635765662844236917576161910124309715987772370038410269579406553732109388830329383280747761594738197057097462031827085147784987546352656213744846393611717738177429883492227020776574625960723378197886684897189417546253059578662062567426557592285997300020026591440638662199974266200196961634253921085012483555406535777265727314164226836192313153637528612512004089189940727065675523112262435193443745627202321417052199576905320251458771436759003938814072721851059590448202741312966360544097563262094850672112199491728052295420439611502624994490243636276965999992968319694995192838741111212536575664530831043080933932037957229051049232990599315504815378606221354905278964196631802485957427673077710559421720071601790802201314492943472171682490997470106041678008744339193139102089313751572108898701112930108348243604577299426608382766351022057209110633089072484722712854920179723681586848095834424819097175410092712747093850251774941278901848544071805599582818921141190572831815081584178408663246389939668823944214184374872841917461251439860484532401488479283713444492408555537559591728126881082247124610940738452601595599595715374200767729315174453491650624185712308703850594812394157618765939359796022893134629328155824760302150132469726814378585223771699473541561839569538849859460160576512670891177434063440873895436174111124990633231562886176274078330132484506580412139631634383442262825576183253208137700461811722078900373751950516252902493070704230692686065395965701746698021054301981796104660546752328256615808780281337085555464341082260351185982523460612010221913539096331961422387072375447326191553840323725764694865095595778024235391056100735279453318864853386083490544313204157952029021840302505001926778986460422394533479924354957157531861320635454061212179504208897818962193646647077653533699864272721217545699289393615062479922251999178410797218817042837983791921978141670327474862347880858676148475601243584556279151772358798727275712598732816381122023400933258388134799187882962154731285701033499336791368407577277482197677824079274487370602660722097106599119121606071040267808625899380103133636967697617480302753233980288689755429379358287237860855255253000753610029591071955513460525742522638855697992760415575902104591594552828009058428581649760792112323527354584910145599588055744459577594889357366840577540137343168554300964723816772838803575173361126083744673868867998739174758705005685225030698671078908350593357101618584195900375234767730813481959971073437811002871252616775508698035818061237198449278256426938069445598640436850692502572687728287103253851262190353978456526023127496643305524191596617692569255460832762659588121615755950630072826369907021531528948494854367873568474226123364292147406646798738843776079742554535762110102620623586780302483309294718444310843099017968472728110790097484720285209906597663393182953810644753789654186296025792523560771153158662799366026003574671572269258645580685145580958521018394673100830698035776950079192652573959188783552645893825519293612562849817460174854288701390849888378139255833818887710458049111696222394236966518054514662846689294108261406444400316933916861841992010908380657445827100677887414058547356742301909357702667020651903512995149025544849776606472653591843407762040556612877629888923201908154972428418747378840592717144045854086151795934337753788815451732307949339634362453889880095044499888261415420160710669301336126748784249511031412807998799992522129941375977447998146323060909616727203936578685070908923495428918535897512808979730608307535473296273087000037325896067312019926038782265324204527596127096219946487118421748772770862614719801915258750888354298105237461401762734040709191675965477455578083402524841545968535585626593629270819790933989395201765759290598738466300822668855043216042125751204811675328204624171403361157316411682167530347551714246503647087723609608312489888602968151349547903423595237353255739559292738108133347526241009461214682654797422114826518735912012609696545229386567600005233289092868948645949593882980495132694245660629241762430107484543406123690957258038087560513484699862265723431939178202610549553575349252773424451518438736782234282452189044199057555068152835034522705755049744246752149665748696785883361017684585123201086193033852022355425472200115847642092706788098432896958388708605578945962117075865270925293459848358266459108217300553150377401983293652178913374485808340168633989529786645865466386673356591109630515130724596649212893893041830496257559398700016655792610114210203064019426800190651985780920085715916935683879419305548727084589182874634499695359197835745777072704750364976495278168121421886951448170094557741577878160127482624390362398464262670118466549458100621464495485869757347461020963218274393603947646757597726403560702609971922991568457951992635822541783319265899816397450460233753172002758357444602856178577259999207791679739419681832602151076104488604678823742089817965818528946844594329325984711109268843368717370499570872676488661530123207641505166883830498471366049977773873738948583363371817659077563928051752077195856959215564480770280482178816098709239820501664668679848687211076876775339007424900993114096344912444391196203816715577736885274055913666615930195319867466941031004613969588704905540839464013671891034226691249001109744002672853456948550815011267128609249793441480657712285008272277260057565212906542759433966443135397074854513482862092535908888351981683521624070019084639117032948411773241960031299521722200802877113610153906762705720968609682814422255798743383693974091882769815270574360573021737646068782949977091603764869245924978325432588216723548255129810914182085676768167831717651237521060526325722192184509889287125059688304441419206512335690040378926007383080034037646603191323461335734681252554163943084837040692297848723220914160077596551656244362926363490970332763166533694319243474501980484937046397048727001028841129367994893411426073044985555677897509928926389115337600191094961589584600443248397359372116394953560092607537470481716929845324511856055757527374638165659530616722687977931538654785909914921505380589785192848303631816880685726046469452374391628075332048837665730398711628556039727112224419389215436708305685806929463239654107436379846461494158588290150168115220457227502914376639521724531656755580689187998560706755373718446624695988604677331672735967132120941436389974585247898959775986957590781166485897053610116629486437969882318703731613119579602002985835539216888475029615021778198812755944899397154622095682946892955360753281689965901848432307749069386977838605608499952038403795291660139664247613922654169232278478758606670404376848820811287806539474931348266265208936066676676762607941407720790448443212398536125543292639366551724259045553227526181353980479438981038663332705463325917144157588024532148142638033687922107961394895073813465209627757329414314165323111152644264970782095613356425285955330598992014294415405727420044112483974235583948352801299626236448688541144983891697849153812205405778132677484695830334779360666637013680293551363896309866560294845099779788266158887287835395390691011826413957177125032103379392464591347568588582396350798197707847953008594579723992525443414567691637672649214516160943769286765609667198647288690320903195173932681242715543869333508418047832533203543148676462379753688034980048652668141134295704589538083150034970366872270168323988554388871673923104398509857498702312657835211771232803592845769225959142771175714444914068339244227981760381190693830993946887840952058160527017894869634358512210761887311890052070741786389864337645051927025253705536958547196125334585299853556579192541660039390802820713915452970991624777727786574421531261474028011176491605921139850793289898093165891178867685642444866541215141142674866894655836726284457289638140858870021805242086092569663195144224702369337606611874391291111762106472893710255866139525272985392660086791180887014422760450497547880810320869087741625277302527762933595723163638258072921032749638171943024647991586041110360260248920826727299061369183141154485270580632719404252905934167035218286532915554264462675769962319525712616774460812691649044036455363316144728859852867413096956849234044303103162638092442190153346401411400029853059395065521376811617894896156139063332868907037593300855882539887302313053914591763819786815569860677088936723369425981897587256865254903138096476043347152361771757852532217201498369191011306726278277141642651888194975424265277483348785054072291733897073823112483124162451440346010953882294660352612161985153929618115758154250490321838864045067695301362501907817257874326126957972717621638663709044540949550828876806126749114553323805989531562994911275707975014921282058146423175838975313990819573890902330831539599459873116784850162514765088245562897995870782093900535304314519516760644757575052015638339176220614876718607943882492966519462088860932249673906361605849867015376734707010927390548527496523377180120650732637685169543689560341831503371392019952307563263930558869396668856252345406794042786906571331707907809997743902055033226343009862823847707133273197243406763743675172198987755526789335830491648755174057803578187820742510151055606817336288504517890811605067055576222268183898167608492952174899353045418000576646755683769193584916253730392677154020348248422665769110410552943809779405597192844203941775638320815612669943748539544217194386050031140817584016692446795132766012212913161615786775424920760555521797743353591638093441159658335242736371168951982608045969613198225565144143431295364807917775500643685551525088067606640944872857447756110460626967263794880018198506118127995055403920780987438937597029628202067577744775358184786192041333767582262486405635121316297666653921215572173707685649372721007839249392313721458439378646023943445310583293610789319828682047580100347969999535042384691654861539278479444001838797005398517485739709831062516150601539405592423576214619919985237233141237538270639004770238261819524127793444719800389637154433483321824880589942290679999519113420034584796234805187364751245826445550519466292423682273553559731760978101415205388301023886032588675772083788738699871884529453979668407629820499906350594635202718120544694007282835574011172992362950847406500642975430778318711437169456894860080873393875833481121498411329204052202841916310283214689963631402147510494516490017446397411682587470810889804026178998106799460101109092457569112430551434640298779091597038391984324054114648885724979703239385862915477901290965430691631470845699210768222614558841260505731536467179549428796952434772419120752760419990760491197338797665793171839820211365146141367550923818756924721600961349435062856549137890975440931390129343923418229573727734674735569739787388799125339256761983668680962272630738994735768410120041935960750826886994030116917666264205395358956023172475283494955413506756966265862131054920411728916318510675560399381619281258580835963691802133389999372393066164226893626693404361686576324251146913016288466044099739613802564881352693471165903344540992463050965547553727989154768641400125786358359946895173949295897294775000268931549626544740857680023023473549585940484171390791329807151611784703490202863603713766972494393233397077985879667184787443362115044903511709469358721258388484465538074735757311116696224822256926126779817040967764125123554612049104819621835299352604779934291072516030702532482582160233740618414369048821219849152056468312247521587775186901400398589088709700175627453898334350395854985574535347407137417341571522841185783425562679192940073148904975931122562997916524898889029162567041348594626129722899777807603103269146790878654283201615241440253199525116216117131587580421199591220713736169446180591506411452401773029556391986027086592666047562954910165011926023059196833915285364669015026025464261110775085291851447096913239246404153761808277592035258646293390679018327646674435236535401504253018810833058482617928032453784380611702428038687846094812056092450052341737669435367454029378517306307256853839098683426691075236454818829766942658709259592993863338247473621464442580339789287474775277012803748581276784127077877560806598845491682051132121398005474985379513879252169253714237668491848131401383790297582600507889512128304476931643699994430378622347889274862134958602768411310930618674947460297709861698477012854478471456410599245267686465985408659334296229422529353831813069384428099790589173791525289674563784440056508300504256697748475153868467542645554761565628262370847950459649180844724504529652922502060472062689271564293251382890237484540521215079888422792081062729372617790145195215066933038206279174447800917565031722442206459558816870470678980782912842047608101314932260283719845833973245358943422708200793717561578636927396690633236293955514245148896345018666946031253812217418854903881253708763279185038996613327482058907305443650472721183684380982010003189710705382818493363371672202956500415272648027670237858274161968009967780154922071874179087362307572268684540856282440917356595074268411284786996493776227161681673722461236457291991351493874669849703116375827156794858348671663489459893092363464981209661908658395325864157243440614783781778741120969999529741582717244509140639588337809041029034878449443259876155748963667397576475857889976856024309841746995562843572311151480556454162896779363771970203747609868228925527874280078177588118981448249973134660606616679452517712873821407117916524782534499454147393811628150564511220630497841536634161231780318683520147345370544326623967927731329717172097526501251205609877262303271552877048830585906178234183400147273779228080406189272803888702847432979267410363492115409734833924291229070505714243197488291595487311870504415121652254404807859047612652455581117438549393732673081842920466408766031479397200772695913575179792968023456574487990754453707078058423044650564405734113703274620870565211569093234900308911863224159928819248725657240842598125177770748311169687664412652358375868458636961707155215670862018806828006232053608820320111281313837495487108997727405808715113418454013762240351669484923611089128250100023572804503499929112480207827438810164249887553144742411794253550118795728130479320519389112584834743835392847459334580110900377827384305793669639142104118912240306469256851798685221469517730443577698201857138596111867739457181481030670301244135539478182172105687760532199653539422448249295758717177948145196094478137047972787266496506823295711164625047821369792909512703860276602648912378846138840679004481931772141937589371639901050883838290577399872867293721561889281177774762136561923292008584413223185256570776933636146748885260884554124146341753703403644768885674312662581925624232951150202854815530402409291341367715983073108014736197759899188495301326137841541516910425531141131517530135280680177238798444031628122742689780483974670260385987853477893410077551388048629366286599376029673088830316156274457187161672985725747078997628640994165789065620187861145489027459350183853732762539995332758136047890752327980769633963747501834157329050368670242621698095797507675232801336029044748826167840014485752756487714336120855746639430036079273128728500516345358229371608669739127522670781937773357117972336529644946756577958811850432179878000640532839073488006316025883981029934022980387118851388236977174842163227322334695928263117438491554365300713573495434121944505334421134527059129578824481645029310581998611954776565284341589535291097689828124870447645725947746859782270239901425310362991883484382958645403717201094625670531596367075533121482488661012655181709556003859957859091711268060054784297786863898856585207691384332576559514264602450421657813465511808956197934351122014148412248539881717207511469775527259304880545417864894842202056084597304808664688555388065603085214577392278596495329385176226965615791343259517443097450587086114093123454715234928195406798704897912613852734712133583824153729778572549336928226904683227461903142404708009651641714761589600235480679349689787569155528603599192006864051073362039797326755048479466245708158499541598502105896428793616938871383454795985693967714913156397448047442174448025910141052709201248941665226567561371144750582938651949086258364498980255415340252694796640552867458708065676880890872951804403498986725027477373234165398532647640624938021414333981703267664575097957113096783808294670831968916596944811564198559914609871432443277690407147688987437344494198316493573500551487664532253894510479268076851035167279482809516040584100425460869399553298887384783822207283344544532639158795637228026568932259750882488381388344393905857650061677945423465192030623426331875581408149461699686819081133910741752599247663724162015977494938400513122314295633843771484088232859778549896813829934641725149152222344655305591830585678013457798719559153851553449629708417099426505161445773440859821166243574685777519017777720387873831235522404529554340589790990351969689557872760576809269767099395387281447679095224963358781746290970754141308279964488192981433614026342815900993399268503305781814551107325181594949178363764084008054259439339351928574820331719832669373751815114808740251673046501912807484605757396436839315556892870990756761196234597885882910026929528931085530028088333980777378870293523154204601235977045500069805509937916963680728029091616805275918348349484138095895539130185291938870525892168980832861667005072039487267129610541434931616267034901614461518141487293955829785382015447691611910569092864987618280923510597881457697604623934135467219258733827721020745819590749272877609586945283209320071874008369830940576030759992014138390956928962281510077278635283659837403710274717706824419601749459647492154845904498844311611747621143479100489848363083490705354014928704791670686020165831444751412845312627089396872332750878413312963256906543646919284425696433831847126825361895842230866111787297431956833852016200786803052200104677593776156607019924466609396530164927137202390570820560207875993473673636509694348104450316062852610390572712862900730849538681233128914660780145764744512924073847872891365891296366488091826551200535188941250893200058317448289765911334543403099550193607318485074309348523720171252097942609971629781906590864449797007606878609145511177325908370680978446052177769191777845126884855661270965727691030843072552870688108837778472340168902980179546556843245755361083885593928849077740400423212470933372900096117230017800903244846350715762604703368920478020887357021648885723407620796908092518166374284797515841808667098039643213498210818936428307450452850098821766904760163039656626542706543949651138521799412601192858366460794125669850390933641454091983018938959494160388892134255831236274946766450160603127864539202629806561737216217839883837881160730045003116922630915049316579400976344653217855219040318404796105149070742808505107845663628290449964638718543155841779520760433168427774593337287772964961582014324902297718377797241572160430304895362245998571347976962154275485897246150326308867061226311647728737507947859554484270927651635785554776067764677215397883426610828152510159400895589275990248684224064322627134024364983671951401712895745058700446925432593609505719700803528959290800447879329413495675140578828415688558833451057817572794132913970721059065983426954709769769428336580538706602216447225589279999516355409047841177327268794659448111108360604286883618348332825356210256934242530299114602519463133536408686022882871690745265339097659887182087645821671754666218200264343929373443027240946548836016910508640945383217561047754093042068921102507111176771863899893367699761693919643877877905826952753043960965104187168011824200954463063466562167786433290849362849001313232602579898332080914791569696753517806813264236899963831159115344572071701540736547371278452309739734202996300523816518764846460817000729574373197008151593240143369589707101016185175451921116301326470883103742561183248127486357122080151080123515466376027691066937620430414472958412230829802202806151714111443249926121862768278789324931373255611276914595046105051195329937084243264080038097399549499767871960890310513664438008435702011340222040557688811158275196992177533540927192068783510316285975126451963996598767939029697500964881395310732776061118975183891922538328961112601331439317803517177706885087417936633113184435022207550642847712125510904191646644792908623954154270759954412436910324297583996460334682653447831651537801812825929250203096927518257860794597515130265189998184161936479573573252510910231641945511578121807765436177590368405629274624980334560874559257462980310896441234647110715766581943385931920638658357666431025998943954572767926203612865336963499839106660801073018970918463577572188363323829743566165593128140439880889804017427346039520325919270454797742884553225264651549635122418348324626532879595123837854343914674357232856558936761144347238913443187127125716226939509542062650054107188093261817194507494481712774094275230867341805160417309958173888153901711219275470053272326185223128115034709049558105248454905056449713862582312158831807976036542370262212238301267307270654687244366231699302454135305410431290500190027063408285793072870184648605322065903503678457807288464125453029356485462938911086108323541156412550534653412317020441354089718595130418649218528821379477032889799947678673506794425420346382332425854853299464788080844249874616013749988344329279906662067054112680376870596389459287926175356881987640979394369846866558693111942619193770101360950341916760748072571290171866474855301080057535352243186619785559335461371803258131515153752830652201664749197844112418889401668599981119733202496795722275382959497695050646079548939115783522841678380587703709452596235204734126477591656177470352741410559775688161613638035092498226415586730802948558988525174804741648299380500209909872321976532455725573387857513699371796632834496289121616404215409068447394530077604461553364113856083999996979592594118529120554262121724205990485437106546106936267598668237996845540841739958844188928366867830384434784410171542282897529761444698795984705032007651288648653209711759960792214427231033238117352506385297263501060164642579102915458689636671897074489336770553924661681688730700143255557054560187117116157577013494583280466675819581020428619227014569973196671616956801598835993592326425615104548869668381965794746682994762539556746425217818532911618462233126419306368235988851031365528788296500735626269916841274019629096153294091153444559268805793923247429572956067571122648086056225001026207463058724699529583956057954185320284601594444764668305495337797661864245650019014482108506665038313851226707085239219432505827921963603152930779666218824419735693908883968822853757661291909388277534541454323424612813684619471871464066937703309111592183156838376143597988274012453619465972423303457660357064056803487974557471240716372859255416846961508885433644287825188867828287926289838986492543749445973124947031215407903512994448809835617705449413818956146626140589215485141736715854506958810523530406296824736162417119253751144652185912731725893226064438138178701383792506424066770351023657899444043129498979305223168659309195064129469357240544691926183269331101200585659238544903979690443077677426476298200617425532192145261780052152980457946278330826001361519938883453564356831256094921945705967666348954836450745851975918705526517005762371316722560127509432684531419335404718270260619704573671254340459602455296279241566577238162978939730439440496950787360322440336864411199576841241295608863628260093785177069546747801287672673175596698545676001253388523250353166135477990604040360240553941314180516403947558449779152380759258763577721327168707854518344445169416504770705554952603149699774181841693408456553336775114372099716192785906914388041098738481229173699368139847911358781143069738000554567397324301550156772436512125200680474838191993077023659736701157678586490308109797112067567813792200192344863357084972047684439249884855613005374616640519438334017879733784129563499786449525380909333998102781560191159833461388042611710748930086416146672695650554530555441415220450661878984471963490641098533678749289525732572853278408595535878481010269199306767499308675480875045583237668594111148447211513626745465923976551935203076188027262940701776558127847565918025292312822413002944824138995762424529060241339153999036418049420372954061951923434691489437386650428298366641083182828716289141223089941382853866654138816988185135965163934034931494058411234632469956905007273445910913513499763574840271663593195743390304108306282520685013547367398621273853769111563296284589770352172480265297550201395953128543399521545629609723027114697496868718857254988490759984994115473215362620499798056273237537943739378072114162643300153551032169357128987249488815961298583442869976416258624467448968070467632984263015148385259527398982449280650655855014290897746322078156019502255593290427385014224738893631870803969608873180437122441360429771992243630419899941331478916491152885483926916943633527075871591566814662659373828960695020751644045186525483336266515207762341177198240962278406894540257206159748078961565812421449077572764962175094951962809232689050815244630703442315297918024505411059449843261547460084141948144238884283303288308954828548526274618755542697713751071672906489140461085978732376618197949087057446286323850551271045796890680142724956187019481629143711414956549136376485084419241874103702978271682492117035635487017433227587626169728623713529783659125908048653258326214011156420923288092772090190589906812301107693760630666776798375074415542992082766840329727339306070783345857338084821995889403173756702446437091123453163531490255050091687551974481490019653874604735464324888587331204388667049803719179725622965907534414808094401552279346248229526574977456541589953062324443040957805872377242152710769892698858757923037956751260479808010638639825282353903998364909051247140439738759237063934360456398558579707964456094537114853414447976751575811295779856400404665271986862150635216116442776769426614894512571018954931834774097327142555245658343395271801463498243799990751683178166949799431603173647041292020349253737236443459953657001163436390219789677765532119777582814014935753953426405111690551343876126987092596043063195553075161497369632281742093114689784752162958215180456570627975300201763378129631306205687125666146167758895255465487258413046981481364753714886808436480998159585940577414206127487432640223093580211630795972733426038098683088669075420678215920267863147891146677446790957428991930378077717263404825391994232533995054724519441879017546277269660192750215417401958947203853444056859342687866152121855011265720576016727210501136542621198043728006116411809685085514527489720290185420845084798982706314386229302746014096852559026594418715999679633802073377366242167069573836131584882529476212371170235818647110262806079691834118433009687539701511578784920085017518579786137004082095697917404102901035073144109967180109580327406162512686379570772108151633041970374080264176846171121243045162079654579337334613353911270904114490257949046629780796871181622624251239047804180835372611219432296426691652450969894133888467489739692971645259451677495256583977245984856019350240339007800564322179275134010443782044973911638923241486813059468169876751657402170517967643160538515378449165451224166065717520414945647372401183684993391220198778582770767479741537207367280889766935163456026383300136834467233644891086901111636984886221801665437670366138204050571192183227271439521671514968535197179697419138771924943818920955173121365717921383544541407171327485401813450295596386678293116755372932274339075782742371379388876168369334605454070911614544168260378419393186586000027737216961468510379763269520315509614728907149650990001317980694881971966809673093993735795333876464766101392416949629451988836247200802190583966832126573422834218394221593829971321956170742470618749206093342414211669723021757968148681733469011155150932504149478285544228302900069579141023605700897147670248844239214331511520696633785065351787945218650385548404456133667616379332426380684771415541204792298146813306805054979343924893554094983098226206601932714524060311327504473091056415264186629383467326303227275569966873874453295091654561792615424280490710998955554303003427942424890116150484504839859951464933384531942365201200072217745215036647410755724995755271500430224679767283908254059200613591670691616056978368930568764643394443904509830731073906419603330055472983723944915668038590231804454012378552764224591778861472625323139856894353749626880353789201654530844075858499518536016360399250411336925891983784136351731808053692569508109092320690709383719929879797412454368061909050810877061869779138016211970352468292621560701906467270202687282465536496960149665383446865060491995594838270800786483411458959608870277290388779095991042577087660907104606087549078087714374894711321936753593599145933894434000880846576827242013532605337691603727723663436588840602042723925269227937768233804115129238244036358666987573664344084434767159839311202257170392696412154606852530345050263458800860464815441851772864578819347262210196064710938809432022442537632484995244846634825544024227584300478889513186427133577066850387133499324117311310812014510429708736299006108882436946483311401276936861483427882567301227818441640987967003809338812716966218097686282256370458371740504357718035777917816220781956607362164835762464797282381466575419069923372128338284151496641045851075430299369735544385957787093649992581424065949934828050204331865476908693877535337059902143376160135092213344194752985076620572532747996058579147871257368085581216395944902004707799097562278280681648170586220106623618299738424702266054272204728450482067448102838713951127965438469405898333410037474403123120145529257803473088026742103845891590027379639602943116317787298212421711151725970887541771273466731551479365347538055607070001552415466951103929721618024398821133185930640010779982280661888395508420239337447991848411786184865949982409029485567498651435614338954842356507428790747958528919369716947724507281395785283078226545743016211832016255684800190349795593703170560544555362093764179708218381278393080885229565309956717833459854756074980088175027759343433556670629336635115164504293254911240348868676292013298095279726499406670467186369200543544125098932367616043612899601615179556109242715159974325318923279036222109191678985894296396619985541094346640179339164360026801299049707593426395742545343122340738588767132361189102758355302000876789732954732614989280510166095761222841085025402685342796792362592219061048049342025596398962858643838665754693448302949118011016711024766396733108648864809756151523985863669769312454364568963028009483066669648453688300126932944742471184414411705829259623817570501912439639637063586003004165991448193342730848565064206933840716312173133774368550455227459818534808898945385328190480561351236109282747038885700578261814980411512558325080784197347833666742481008995881529799497413500974801055248188173600640626173876221479019071826845737388788958839397015601685141695984428774482863378077359913182312069235885029756693742876056005541519557611916451369394551186339153059695391074194868023209321767373782325857651334821765489346238094167582815270899252480402811248771544227792606681784598013910714330506468777983587912518656256196580800903271671893859500551047030064282718814180926679628864980777176295427106732957199928988411001192944256213277665160837989200299547529313219006574046422618859095530258681300620631927343029746772643373626838568172832605286122651800877533012646132743212677802043999664456888714507596700019078313440726514121314314430891596553667415256187783705301298237610135284842352554405880935131681954597917190506679138627705554166232958702282735542368210262474311504297011271021014762111461162446702224190560785168854120418600117742971940487690164941769336641736315699425579284527089503569103268074108765597491000113908880885452986083227870981071157481669947121728038211896802187758402967845567729879872664442841478741278849225870404082783516143216840014581783193890942985022312219581067066094052652771529773715292162235388672101917580700101433664775565583254866277591051349606160174840394956606488082347978197408678115752662700489615645123681645201129175054571517350235763787232376715210034828721376750680542959670110516723236212335662260652134088590212199113496522488506186211424010541676863215275920025305594405589812553752236658609839960267518644086908138949715996194783311111473670769467002795885195146407687664991592479939824892413198934801675682606460483992726523051386125617589452871767477926274745497149751195060399481511980122979449280204481978744870551556539688369719851625267719047383543304001868140679472057889188790350160849790262828315333040953153836783383094583445587700978048567841722420167974133291852141326890050469892563343417685394032581414984417474396799540977448466516176265180675385465970075338204369389258808766088718356655694990149055604500216436942332199075957455535041311744272226473702239904255557833025310248614435306906926949392118609196919773644790653071638952668099053432595151409687843622745817110464426131068747920562752983318071230545422722842104171492680670381715713462134364473568802237947582101106629001050983218335652151057737213989358139992956841300740473155187555726762956625920639720326682959662881229787087295849679689689569514107587921838394307238230636740653506551196528674585740991549746994651573568609335657961978700311093357673897147754141286818866202323929606381833314001958154085363906802988429246906272061761351820698602943110671068015040974397636256567796434052174311686972439096020681708758512586152780636863715856154279164493282059945595775083613325638030497975472962496496123256168134278635731244022163760538060582566058024026935755578356398658641648158937617186753633497966217130695609081768746518219034013936487758608616455033013783161822333273465918810791576718917208408533747118583935541459996106492202630932294971954253805578593874286681894408677679429362287996606175814586823958525441360540114973172953162586660905970082521210878844194658069990206131504283256125045116699280669480228070998152874998179776615539961303550625823044605966653347360589952797863520769512336360999432801666552036232675962680436648127281296819623142914965898272968884077374575012095295529669834862058754897599201240766448863675887181126381641006255954324816920559320377147130238453873392480580442076198342763141922767721220261817276635877732162404801598125992670595115784720220419048509609713352543546712080752406704004089173250383444282103234355082687079359749278849321619668999321881069637902805829784130381541913264432687591757562580108317687335001400993685398656057794331052673614035716202804755093731237101788008908865870919810314270310714695800218335186612075720089299077929007999127981109362243313614987374109353678886396383428020166732641914287655902411565492458487926271842098891413047537645121547947466317085216531699580249864954790135693304046023788202043690931761027677199690086697775563719450999899048882747456624836969504579399060800870520527191779154835243530974296578896780251160056990315661741319191849173769666136125346826958032501661014209986969098625421674629430711159862888871669269692175037179226922498922760443969953333759084546698574400295899732615003877334005290649098831425020421254545379552987566468624494855850114425679086058486863509108247342118342566023856988847717741208023179369784149682124414776774294554935491109352008681375070974555936902932613952740266867086240307885327602242550045459823383619742742865635524847225487045916080677189899024423189527867414487116080532661201884909747358912334032886732839323740029306820732044318499534000329039963532605174192976373731684631563543354617227358566857862411966229048669302723820421860293420253971010961407974550627252590961414362541736372435500552441119774190991861815585668792730337939370492250886161082899944791319967641992363209006909029320188869502805579456323430681306215981745550847559033389743206560412695333850567292656130382511706118233899538950480368439064389727423882608267140305806208507046234205176880415189730614744045144020584060817840001733161284465416121489231516745000083061042230676537192412624659461844910089594430807966687709107256071934383981642851038372474922590316084141295946764572243578987929176234337169765284838023173224705459085974077277722469017442197375892151531033154507826009617785755368076933502448224417671188849684012455643816827308752502759339134134634073794587229986720308187285809499445599526100506040031161089900587331325701450335343431041545256109449843336375785361899304117096261381567353624869897764865638555951065679412287250616925528527303451541875480542602823274881463774686075215288236319518156552706717398688106711875623256023893608464996731284062478378947191746561934152246997679350758570519724275747388639015070217017258603000075055305975464314914764725009290880384464650233054349250846946309062368960779627885154732641468837014864508741471987052510021804715170536250393482048378040396091553900262847931374399582663118865440077973336994228990999500028359068653025392471852503897258136286074816191330859877866081736358069164538512875314792356949039830932886950614633038281375553872371094841979501660047616420725578735142245111877390374848098812826947769133036174168192627372637963670001342908861907113650121865025305715694207363235306399100345184952071850120394283920700666338562947218281487572694150892667552349046083849800074374917329979641975479072038848982107809123355866688646015884229190516630088968094680978371004701495899298311779801349269449301562805735400331561317233496294034537523756474981006608031589683814431368923384074897474623827936214852101285377659471468487344711806375344307126454872341216746012977410099319801976777224510212944903166898250541423725709536648239824304410985598135003225946731954294834544064611916635253731843671987296797534191334136040746300193269483973838187495846406676242893186470940693305397535001271060156223794542054800786162525777202201078234564469984903884384824043095910647973749874122262398007195538254929426439277728552890845470372925500831321198476127405751293829277178464098601183329241698941623377707241712440258939133296918227133614671829500918106710421369973811807883884378042146571006332018239807315773907430200373900885390864834093511232494283116178760343008802084838115554580749351728081148125015400989961961598451064269401009670795114207709721917639668833702503705193531573594159876386294411709113030325912720093563138682665317039495987757832759072824758490563502142006856894800584032479527409223147854741424675893678372870600657269174258255259962384264795443695259444278964433762376190529490220070771789127999542572773803505794700236522972208795356262814803873833894911432040728425049125727236911785444879818701270331614773813206890134471981286110715835056709059444108046623380868492115102116115628001735843856411672273150917223936184403454348847682495621015782385917277734529141387897262632807166666822276435037694417590542109137126745999927910342154389884928059881084461148100200925425476131541672189897395985794997819897992835220842301430023630724804317080148159589456799485678935972671555601756102593057276628848563842166766144389288701035504806516505792068616629479299492923298020842877835345701296557350349514945164282777755015289229025367622260710714275916109560744038571211005540609291811278033937337138721819119436281098038702030711394088413764091559282622972353345174016224932979201965798114971484951218508093248282442714192502409213080802366146291940342866333477278826912687510846913654619193137239261091582963731573565131361679607126569809726588127045613983216844769878497576922580473274013612871207990979437890675016653825991871153378575108722711316451502348631439014825311593031536872922799761302410752692004550882525337433572074810994200215883245306540362492685112034848901440890888611839563242403014456230228180300714100854150200694947208941189192836242441264337019350855288835812284517859011621038361579720130213603114001540627638293458781587246480259960318229972352432713720297971314899906205041771633137899703965425071171349088415201847576756593477497424395351432935406764497464030475164813667955331831055699292279650356842924091120833127357459281917749542899472508018642299655017554951428124781633400040216214607270064384328049594966574684728089971951149619627078085114588296609013992461022708221684562909555973857868941280368808007929181334539645007743562492805529132230260758956029867521985563274915581050953145960047019691323244086430495124877255911464679082071829770476129971264678970987151328633913355974496691941382088586570914390931142525603066524684155401590683585368765576503949704931562758498052431533368587234560603883345042180497972428492720308444775015654062297240399333035947383723755269728292523533179709354532608629183048591100933028246453945640203543547051011449534042295599146132001875891117186317749027023084995017355811474502409227391412214593871764529299238137445522829315568776254191892489231328947375794539768340588234196221259983243294016464593442136591733450431439418294057219335832508261501321633663027222429262312959655538281484770007131527791074670163045585202496216787737997227482747063110772531327180321021227752455501758556569216067386060251933187104966794139966053715153376572027807000351084471578248628686105959921209363112116075046124556906404715319206264935915218688656625734617913336477449148136596531938908791090635534389373398138807719470611089154238096913850447261860949871226810940711248754241149503533484792372538282036233335410630471296222712731193152384408335466576691325923552830330586597269471261079698339718397491017678439408281133485360672129065442197226858163418084541185560985447382974893506550843890428257051908719795685783422982071629387186514875905670029131214927891471901282547870696057567626766525939628542629578162461790503909867929702971504171216601393754187215430970051486421574564424508894165099390249004803945432403660526214169118515006328418853116319094556356875311823325283136414113939550152581958497217277578602507233651451506684505515771502447739172946108758295591831513143562430369132223959672199066526918822125433849029154345275597709672696230005858500435793978537604233581558755601379382268307961385178717377385445620565144326442962122126126388232843714904132941658694851549426601055710987266241262197766873669898730821274057710677737153619075760096191551403858346922777078985838016519162702106734100716298681043977663242154774276894791466621583991080147270680985175791743098020409339918475531699222584443444102861874149735643790255897684462065775341585163282690484086446191531515033983847720508743492378022615898789944064659198318891434031230610452872224862711676064954363970830218747683578485456210421403636098071159530307109764875364316653895257811615572451754662958105520536394905640334296831399244015995595031909984002250288089678818069105565018162170395179101791165413705833449238923583731147423093872511268151822442454954869362833473479555146373920896869201314220441442426336771999493717187768389956666823090867276542867421978704538194632406565437684700228406389884982211580685506718222561930196548538274389658650051615401842939311159379884217664814929157827154368951787238472028122410110228896664234401384461816486618543612705012625823012523678883460175495260637325241041571458446177051351941190587316086275523346592748353394805331679446275694747905547139172916280226669094652049842467729721831121282818881904774933109834812289869377311117949400861500416638206941407215975292284633580831647334232299221911703234697138705703169928818316190046670080540807337040159543941140286717177246663787844156429628080201027220791545342332794217846617954933669375743870876397535410894641476550127140369130899622516876242973616516082238492470948295028437122835486275581033851633707891660547125217348703841841664361436199894500567116128698287415106152325212210584861058719420843029504700851341923991467979857519681359679704481099014759713459529966764816235660633322182401605481012760303922330903522749832396408410256505711321739335824773985312821310104680473834256627838838730752636950595094605369669857715437754203028733323770117729731709443292074296229452917855658216781982890568254907444417664106192419540051198153398899204610027191605813447898309914151314345770064122368645031474326554694945837404135579189905543004861646037951681045905991157440709427263261864142514541425925911355871327526372596059999366099856046599067607909794178943836979289947305937548531594748900879210399695610339319307832100592456369672309615329163305245267727045413655763261511946362269078004263522930914127435327195910439213571968777872100070683610821400193423599626066585361264442206227522220538518362697357028815128803161862127220000430677959331410462379507479012023210333001234967495101286059134961784686668148613318835424652258337440845242115726282846153064493083834017281502174658157062205898032982192660304776330763591419771668917590774083369716969782182908290086060331993370574003491655736877195292066874956357623292795863163056191485316772152430960188882920573687288148098547528820980509380327756627993294571630934773494891867038957494520084290751344266466267501876956708299623132329307280645663499600768999902962211827297609071771877522966475588129132408484676254311879604939648585952605861163272096759931541455963365423981158874533319861648665591928425661917998090660382060359014544014327553047701813826412363095380291359456951203942250861067609053920150560181033152160712307827771187188337378113620255584695472638360075861575807319501965918301933493670533550224625048542091131570023916072531184176968983957949051991615147110781285299031330766754841834730104194394814918931649395418221676319049880932406811732022158392940160201305318961971499651132597953753084720935809995060502251322470836535471464085453486734221017501236557563643775314253734233080158110526149534177644077865715136017768621255138652194995870732702309130997766552511269818391840933808341072585118010011457596135664111685998250314755688116690417789323767775416100297575480862267147335013989658299442864215512952533891986001758090349469823726434661144800157863363788645660284731643777745218337358996403378782127022389724813708975212925201468574835383297963693144363216386230263642939761937768598661209278125669871288288990450336585312133108101590311365464974846025440220665492509206213408094466513560586702418208567334071597023282743961151440066965682562336668721569021265562646375257041891986911836731475629168060382812678074318008316709971852494203801482207334585319341487501100182906358177303626934481379658883219554425345669443308963006201077285137385885879728179727804078404381402488698491179603461200956159603524307193239534553231596354973737801956533570326323218893268767421341645221102141138257057697849751538029581130991953591374606844269354780127614753452523486584065017059613898436382855993146232484496606653445819972185906284918323289769296915934967219471643259434843812076898667280095200533352284166937355657163229374882964476711289645117496118925111250539456277038664706634418008008518170458012362455067012248848664963618071446540082567528952261693377143024319209842802514114130711513284879450258823704390758237640646844848105789356985213039701737777264571501116611993160506041497286770777036012569248566352918721498013931413212348538620904449766572984898541912044685414680548235847919403648871388622099586585034645293293318596705739955718446342369719959069565328508476185625276813677265170236524320071548896005801973298338155884459434686677457424325783220404566754888273668374039661820376675146257804727498962115264728921594536608320262317282468592434768549225457541997589983303804569316637418503454231171619339761391266235784738735302659576770377819165435455689135160399437785362596933184666738062230444386537702491163570971896116206066598137239237670179436386771779827182611765338927432417012459661395730582645665784419792794027068682743463662585205955152422199151400044719014217278471951620924597376284444103458868704832945875345350604231258137898066365363210838582550267250616019840117649060611753660600764613312938635678026654478330003865726468762930608249602763882683702261816654958490644871379492783126886315566269921356511093653897573810406844161861989800693310068971240836278186175891833374296106715815091829124838631814554448775169927543810779473681493071678338086633346333305528695385773998933471719034892271779138375339736085214767258088028200628201819553913012497192405486548727558514202837180786009352529514709204075254526286175326251006634131008085406672810290996057684884211022566526527996968535680743232728379161658607520271627103295374787495245441256140860022206931105098856848157723639149846517369034350081382894415597381771247943896083502687188185058110132803902745904177634785441147967077770447739332060911168331736043232974623150834941444747487292748024030478732100370386581846223003969405092920194238393885877617669168119723692695180609658145656755909732386518993212284601137485442333700126830106296454030388917716853841820209114072097071600356774833715196930937429012201726647224999128206094549997886003151118652451653323506236441764048775048816522658748245623269653255416327557898056308077862213996510981014138120092452607914258019749268616849273437683464210777270982547289625041582014913840079729305857457792076978731749947625467576069562708030809379963890374236828983098619165711417417656655807499321152223800928191943384890526687465756628850691319308164510858961862254656491441737804722578736178893425801776383574950544841397330221516890628200420619930083466948435241978059738274492980930480692244936203446290155523332327458783733671820307666748863212181106168146197401214062703609577315101287361705783633994569859538171663614099590224157253574315780850176069137117868992150972009433138407959575909647267564842272590850848878823497660084372097904829631876366003083783286372036694926275700768251424528045765888215356400092336469165227266797611138035004231051025960218941266054729073337671109416690101383123313820718079453720140081049950582217570366800485532743563536572609700832523438322614348801661853178915687026182905602310669859500767718941068411189362168502611292796109232025088732177048727283446102371593660526641129847939015362061484841651960550203866205730562993258974945933355292868197684433254731180077683466079592060943488405975229812971321346074291913524088731203315642144407346196537957814184312319599117601817929147783086484073589383823149407952173266968591807210304196596793419241457527361223927520800673524022367184756249717563116257970740466719617478718682282247852396969225524780550787951179884633511307685197032377435485281799082770513993943595277484320382407993932683525073374241287489611766942234227192583668753943260216940345052701607474350687137437476152335127685005364864388022316914614862880815508182418622682446789563841492988141973587728014655885249245610293763503420704212606348784864818510768916254553467978892534008867668261252107030760552608067229094573237579190061266063740021326471312485500576725371820467299346897224692619294628177088620501863388704429083099780069544469088867853806065080068356391610892844718083485687874381507732786495444742715821829652779777054421419527372762730898632113469674378416096912891759730193744953784542339756521912537465583176577260863397254272661276289911383134939516498393193107075062507987958496044671415069202435471237717013809128199257952267781834526092003356805886486736941742139831934726430246501573395506745383235865762711564257684344476977872575104891183122077472802653789190734424172357897837425856771612718407826307865467953819289770339429032676199182275182552194444800389367456694421565244362860964446331584680596717014573778678155145407912688323190858522553084892646911305941169040878809387885669685646515481410196848206153229764216486573832665160258435967651984173992584855876454321107273658001213626438152138460654466376931746532808537139421977850326101437668091861935464493429194406607944661376962852125599138526244274323366618397309424847756096328546570643141161640834931185732147249973945214161156630712285966550299259919551454347031506719731431335754053868879189001090151102728878717373808137146762172863336952106312356740522039699530133382737346068503203965173430425626148070042918279870893290104600799490504363530581016449550617127799292286311214582832744142648841298354200395851729194150761791488296157080670469612971698808733989848300904519083382734720078699730874559928689242434691474371712874610813639947859016097687055747564473342066732218585414194900386032936587752393839386332320674988865073072738229483131493976069375642434991961138059293107001744287466107210774211892216617744678152997186256276348815885050806186230026300124245607913836050176630710052173550050497658724935628033494975529161708111204742682344357484441620389841269125227168392164943653715870670696608955097977609607359759654436938705732339705400014512628137787103442064565337685127773148903704793717260343608684596118944219811848885158500524429075678554060427694306841694325591107392945091733470587892204992801397816778317736675213000375963743241009226239808744924051823751286134529351528818833442801974550252133459393505619226989863802844465586605439441272789295876550331837972482779342076023081728926513372213309138311961678032536602013684566492793910276067955054807044853139316065333636822003360650078128997259276587076473891376311071207954739636661372997426395447712017689149009643334388294529916452595963012017080784283349828780510510548065709209501000737347192334727424432376513538914241058198464345932606618588760605931581172276271104608981070210113974453157478017145303061398723213635375345320155693674338507291384605318735371170340935929590284657820367958302852269875468247367434230946061306769561985535878403977202302620867523521724371934509677477992415889720161215356046441261982421672603572063882033454701089822561663805358678986924429375087319876000229572032567306008291950046217441450467233554411025313870804948115783553885383338487821289168782053389000098114969673241337721774508069191746729738059649140204427847746894926724964871433970675256776470742980814229184001568309207034732913373793553614545535917702764879070695788300476635448018339171538967651150458990898949552833829562758816816477489955314915284037373884665052810506086688025338799754278689182206099827610917609007038913074012113238375934906162407733960087655480963751051943064952893971579963470665309045135738776383018674512346840406812246246568855953572718077074582833279612567064519913012327900270828331584341050143630817204058520517450993590870720468407928069989318426887404962429360514125063577826377651750477064547969519390996311084824306405145529198895179841994692446064155970622562465080587864001500689771177825111411234730803788560862709753062065105131035393685634404753855623100680931953489305314585345018288196653931803655589105736569714602892880064991045158841894914029829100433537707440939764279805910107777971280001756925385117846470519771621169669211352077153639541707784813047412890079732540814244699768900508689736596191604239234122507877413700175149175299779463532080205854123857030436679948466660798836498951457580839390983754953383308142715158605956472420671602738183423012640378818377838670889709401118747616899541851428155569958067133163936108575850034869830186663143102076149108582463140344228883044699991231954987220180019931916236074120157837318832563857481976167765552000740066228984381374379930730649073140970407449093885986570503702661800899257227059721915201857502939739727076942424624560639886492664668102215736533249575860229932957428154753072111269245100679354186921068552682261284167838977772809762526859464737526246811072870549373610421760589453411740542981588825026200864659135554025616157565560592433790603497290252657049265408400856826982633735510703219293381645947120068535291645511487305241183509036228591420140371787014704807922504042159398036291903369155724627671465163527039320724111071312966987475712949357723819714046100461651657889110170434781392253876002936838963779995242927839981530426523412339190739884623042302356866606444730132967312265060520501055642250975005522871124720839649538432548462845202711577198940762145881000258440792702223492120155614729061526258857224917031661214021871346139729675736914109557717678253301721521251930642952771501841847799043172253571616786278232874490616763353088065522930932652844881430086424078175032784407276787183536552556961003942959045674588674493646677181441909025010809907926231586846817860368076447531200883315807196075824840260511188271606826963745335101249349897613180772133099346192634432894903192359533279285832143721446623459111349538797416189244952322195736615013156795246487625521141074471551643763434120460765348169608031822431195900080531934449707777125870169698116624847903538392737082081501605585251629104372228453913590559436197277934518608857690338230446728208541905859498293854576563037280089671902877715047578193486893216669666681998748925124271322397172098469377802372754687053821736417706337459391847222959426341411478232724553858367121329239488827580114586716218790894756453357451671913607089799896361581496210436330897549338377547220452764365833580149423881220188893240238268762890251348559685093232459648388274945347142645126818142786243373119216761623325906449005437145840373456860365795662958167402057916471221361159854025813750446600380374019341876255386844609062748395049419536986851591519073773210806017796750152434853615994294689616413823691613673807764183768773509456838996843735701130286434691991294477185061351834977773948204559213432581979999410450353785323322154859543400412636330651702138488201969722383741474397300510008065039395059823568810569373344470972843836273760854640917329637953746312298922617554871823989466818207892876045443405488700403891433694255173749416180154586976457437954609502715036270535445545688156935757511695689185025461009218126239823531858420833621656497216341485883040369855547598163355759520487851122835826713809220192140666477520567279513305927879205714983908610101268088743410847196254649314432025426669083127607325467408338886011006599202840089484339648349014810620158718148599432133761030769123273928010093701161614357582682329420014370052126463228250351564445241940902521178051435298410350364303818492432106024476786890793996627433052194399056060421937700025503706458492934102350083670459833474095124371694658413727760733357187174948217285421419261182757631892119990729330052525830593890769951752725211880530843255833138285745617199206145738434664621683664465469687190096734992557705499773401995230414223315406755014215035052197049647086485405548910591088204110299146479277118122865089500809773902198323401241516678247856831408956277475680422536464500453571620732460293465239556262195159548707997750618321471851970158159947797241593500269381074639351488127384725458920025490125246644269274260853150428303126140868738694655117329699710293703552198770484887545048107613487892419586619954331802523235634190706937848949210470433023426263735057602504608128088355386799100883094292180107612887826977310844815988660964535225018304447763887150644941717504013462492147653960176773402980967013084605747171374834633221367230485607085538419841481472385744613150911795913384753829154383200463614642951283118456336390243050416512743129155479211247614140506055410856317074674707580727373752135318128921734493360797875557850803926107189158724730596176329438337874751215932463673770542059620940180546403231342231789860899359096318485496108681854015790170214004584048172670873415774383001977162361203802010981417317081702664061055618938856016990286733905414265675283220986916625794895170758213326740424580140936534632877423715929687726827387114057050615634453906023439958477271036786153154212234227041285945947575723597729356646340124504085426265012036201338634699593067725382536508393169564058361255319172004825523410230044667223286286062568325713631359790290529950665300495146949606095030257692284116712174443342070850121193744101964912515237713314810806142304551839686052765589725372432176296441837258552725538883733744350405969019782789173303183623670741164659375453107642784380318280050720933525977066413844566402902379076397338031426129889848040031921047616492115893010123183073092601483588007800833748319939343652257300930278689255172818056481693414101514912901889019651530444662863735471214437884438270639809939917629638511547348670603861993371989397179557543514138009233172477919729655649518855283254890054059789266815453796995326017873657191541164460927096378142835559933651901168943775846741981723484909082435378685755270717427157825243147667693583413388526538340198270818813926733329202312697059813222389821192979724201511429220260911912463900717783578196166015462226293305941635907580775656508260663187591305580388381148388927321088466968368458108091013724420414794689618206037632274894103601142715290984399071233578977626445987422483638865785127195710697527304466658647619050152975135217225464342973594437130247425054463079735988877938192465533973150364173585544551056560716659434321343889318039461720706111480573173183828124224399445156630169330517519373514903790776888534372635392375688995244825564492016323199441200696676886697735751145283891156413203048262822271444838398706979420376565763148253563975436384960427226091653833904854415522562071107901343334896666292921109599728975245301221467158395431312336394382409923987964138955944197449350536751344749543556838049525878357754613847627451658487971636101083660119642638301592310524746183040002205689011875447843043584252854702180064076515631939232714679993448131680436986177778680656164293348231238122160370841716740918040366347165733770352088380777684901866402655506016013637840394196693841786258871476513419588068212073725903757382290645124918210096751369291744929761310631699725398842137083067760424049311405956282987122367657715728928742655443389464464610588825965097334018183392286067837131487193738649141350039276190946674823192248168104725891908650734915445570087446276590912371579071215422599617390833558005059810986462774262948557203401909178034813514194853630948719142781864141297920240801347944455615328306158874249242306998917370656726423451942035186212789785036936104220684615501683819425879517342157172005034418316919992156331511518783118259623152856635451576709032498817920106876578327088297292409000983471280670882094615289008592715193134894960873173243547700935659736984466792135447729083654870036517583040958942589559587938994137031514975317510179548282333542222221545450262818140633957345199970354511905680870882707779806435371640252209036606213842883936554253985084738284123457375603675415978142383377170237515903377150948943515028327049288053815550376772039120566649361764733984367566848173573143149647034374117592072731635514728238229616114754190531404129174292401330899777420590012466489079611655049693957753729593048534750966506400388023327812828464495754165453033148231785950633046592047818486904822941593719507852392676256158383768887851733155241713980113127330559462524076242928594555345606365265852459108271209347601330032352640945204363122428919768388635101185023116669754147069262883232043966676387141834247510317523652892474762689875978707563869422926087739128609278715954237912851560037140331895094180192843690682075882688613174381415548343743883863663411501431550999309108774904872998767196974202714984255431728570434707497888633409328929098370767197741181185094411080167442220467559578201929994944399993385860469227480099233267294129752416065811823522858845195329896274315515832318237557382198913452173524118560982205261619048988892236459158808989556884050064174556982583489253254739331307820828911550026287412556444844533469850961171650198016510185984558192043102318099938715051448016600082857588602676507400885945618069695421907193152266004011762810072976157221231160128945575297566166270122678377820384901005925290001718013628698777855339795708942780211908521146445793755156235133240890649720560095034879090562453644529076514425894206099324973983554498361837387477308262264498452656590607494949458159950640587109934454760837001539440580276836823121840103855301470554957375028220393397404639020677886390633167245876804388497420457482996344500549139487387454925837594635547174691604750378204641161109694343843851693275279057365403358107799203428711076652403924926275553582570119999175604275651612676193338156902438162204847861540034307437534940709546476274913497265912714081012136741562970713302094366527525371156763095951154861982616381181583732051799032850084877299227218165481782664616976397995938423772044682781808934465383166422883060748796185359022919756018993702010046827724643582704336718502815782266508939565630261433259472360727106188271758367364335367901914868825715847628584743918609757669370648874512313935233635110642203148959676427207833933035757240878841373287214313987819973568815905414393865423788452523876446131246882159943495266337832125689635800607984784170564416860493123372647482599638052333327698958376545246214879474625629260040424592708344226586039112227708340997940516563856887549237579240233254688364593554864618616440477278140021552862199896316490538785579279565648836709525330739862206768084641063643504741016634932058665153633062200328689267051300949743590955777168441133186433526759569087028015744525882562669720994724155464287120953019074701590894076337560081343160608989981694205825882624743601008637080952547676628203288314886324971463548235387280042297714190593200967369985140820605376861502218138396527948508158098753898934539792070626016305807903919568051905451084778706345380402974862849139818795506995850069257397585091084190174152377417634030983431992504418130238303061997894747798299923345268907756372800829271352801755322081661816528164106960539267346813310686313090516196623563014689913883625311779584026822009983575797037313611602104527779317194612050461884458847917678740569414227508827521140657658246253473349914954404651177970214599958868466800647970882805225647235820231379098127824031615034570587677252754681250022259636512406500619926002401192921580228790156051128558112051281503716393618251472281614851897728911589881998594100114167726433100410516290546162179512306668834099611899533548657912765388906825115392077936660470710069042376267437005790012976075182686749823632625236336364965223520620769308736040881852726544325579706584154912231460755679790560873380899853692848525409778603663378105503242977267754127796154049583854828630078504032645049432237247571574627486759155222336092331364176358373200738536405963264425270072194534812701353196436222661102730845691200448513358445138842754826521299699469904919763696961649564352565352787763057386325177694974040236975894303566364775634906842244012975722898657377191653893907379186995106186951250594890139666814375626197846371829038461482331231151066167355837468273706496894006324454511384357679929508866090004203813026569996253817336417397322700557221370257136773938715144925570009038115547720175552132932179559620819288324278916180857793385798250528529955464566372412674550838002387063282350526599539378292123643843694671175337118085962587253800998470980444903763163296712807915795215311745340457322073632094526989647482092441085052910902824838997189224690272732414214973709637990145575549595013693654431432926261439028705368747265222208735789109995232499658276919303299487379479614444715742055986097466661385661253429315704792594323511957438639285044585369539430485979676813004868791910506336752927415832777858951633369231635096387891537975523653524813988598486732040569434288317594054135122594038005959763705564998263077716433837043018489421564650882310315738063744270764350964989581545490053647328338329086541358756998172805027821100841417327705261507175789015970557756388582404687136869696678282926691804584994381468185250665517012827315444201189367065519994605395051755025790637483223141887550369234189263929918680155881982919193881091011463540684207212562660049435630739009658381315045854675537516591862507976171156953752072716550834117885950361292694366882148896699661935995311488501349220674282630561215492921206625935953619314113596276331639507423735583249229911157170864567941183904208803163534356501736650048117086857917695960366496774364731580233591322306036108790390937625044354570934411946257618906479041823164658870901793292367021273849183574706169135783862049550864152477723319685887324551327255444443033795335016046097231821868042379873681658848715765327899443656195859043646488741422239548918345222518933997651651633838726149119812478100098740760474890595968667039699662760598195239718141394157932163599607561321313102142988150469910591535878670933609906332894295758982186965911368747863890743807098718473843568410615413291103054731357980323863878459308796772458084064910235158861354481001954106040748720500949508495732184077828361617157277219026849341810820302254026067547476973547111140128114627680961463726369143257918908943595064212099111247321666301954196069771271132291506450433755592565449245086315840983556944882126069848724241494083179156352521254924316956622938570203397333481221706866166597212264079377814774359159857318880299323188814441042223314800770522801344611391319344381359780144447087128950269657108897756192261409007579273598437930495682553042900516226302533860186408903471809603075084320536071484575010445013061053074610896806562084326682218107739812394088485678125387360488142129399286132142174308393587469426719551403796081346141050946538980736287562413692272127659309928040520103121664528018734134156016423662965899436749958907115759171575436859513429334950157505301047001432970031548152206816370927611906680090390191881254519373729988529124147736223487552623388485651457603342712514817857781265108720687389200640168751373386886458611308726319295083373614044904825419456370653330138279207971664210367702346684614569448591782220942465065579050156250036059912303350583727359169435108398274814958386195190174439902042992407976124717517896528711237888565054072185480487110674946164069740202640376378458707253759631638805853798205548534774248186842631038789836844486862921096489157516073966852952004402916855775488146689621381333410798828159650818102095156915405425620494022099743595471656703989149064354753972948864608984423565322955918241521878075265957426745269476480414837883829398074573902029205217312675017954440022543736010165403900206789142925532645461066203443112918373163117310617099975067717816527933051771805530839150803127766071618272299712653483347878582280819412211446530702279908714627381401086196604105149990600556633553730665612659729561240196912147414671421057313942037281887433653748743320369187182940768203557931332365130861645027677244036119444956478801078846236856452387396633755270106734218955831925875542930155695478799013123866365999201586480477107272942840913231890951154325865784878076269423488956601140787582353841955174241819409300586317985236861911323514750223229746932004247739689439769816999570761537975584238081903493583736911689153013227917617553314133617007848896346698023472510446320172765686241531138819869337775857266755567292026815631870423005694507488778266382568579973236253543355445747276667426413625324931918899974727813002516538698162132156781153951338143984993188242115967257317672011666278794251500054616054154952967221317114334202038228247962970695249900244169164480368484033846499080100216938908714303473925926602799493454567771743131932476573735772627288080626948284059883349738632172357934099504664684621392337808991102130660776398612754149492562870738278543486794413254446915619676970225552628170544260246747437694452176297592410788062855079687500871165329529563021418025473361947827887807068054474111633057982906538133435832606723407500884103989108401671106113204049725375456654608542021563163261563101738537280464115452546063665642674991791304949598085982124222453784748276503733114551319522572300078395745836467780251465490345198979062017337136298333292738501944464215066488837515686403687914194090360463469859426938470064089144885529496950108577109956242680199718750298868006480075085675019123594644016477514639139960159224435115497416983671028609776006768781315525498541522848807183761392134633195125208937372109917137456040563674456027411633530556296796739787985174698202220329329598354878244499910919641761788941848343114284014006154285243195639697110270851437965068985074527304458557872979509606504936733072703890841503381795507317727370364727729811405031501822388615575627421218012751121150576256838028955797104120063171467844800721061010735023860983449306193720904220948707065543245467451439709098143637152539342053368802405879032366536642019794072582345383802688302191818074365645436171641532357470980194834057755619966286954858151114659455190472005386251088121780151558312064967342710629069082570914756629402986181631711681417769542834052735029509973170995649503966179011546075026221488678414222999972575218007950687185941372154546450353638051484887342987477210289008874538091136711845132065972010481700640297337120011989778488045815561744842243750452423103154782637836796887853537603516848333905852880588884013002671270292576506719520742991047439139634172057403129007139412770629314265679134805722242689446312123596805255474612906439945934630566041592361672866177767379895854255825268094844468266926987729045434074805943821722764415310533337947162210094714228894726813750585903601538466966628014344668785770017073004522632939384322702367186998032185272918372043555346315737582144492410246655018740332761741626207467422014806690424270437391804435440400286001738087695368820591667721019349008051032639645091211577230743434759705114352995740349095520705109658067044446506535011398705515212092997325712050334987418272432732737375596699244543602645976237717312301584688163470976569924980018604700284552473740913232557617167857419013841326883153210761137419578906735814779831740442815913351599494795561642163778634208748748407902808944180950533118714647289268052085804194104108743270758638492889231379741395057264160177725077062890093996558582839800361901738703911854295227488729904178828245695221443285489918470566737893255174331959162602796850339388842563393104946770611577666247832967029962251196635797019276196901738034989764278759748786537464431691770678859766348145143867585398709605299369872082511729650298377057070053016265328560138473188750545253917201460522952143963225948066214039751801055577288220413258703432628659466200275074084067814304107935950031166734478484834756950538586556384628520524262554830891336810924569820193403864637611367535564418774960354384946128139471216323216093128546554606857737049940677778053746787240771990498272177818009596269591808317912989596958360944273577185358099129988183421167732029981214354071586148280257481596535013248088677723362590053689804270896139956614853010824036473350894571081110772326450649159014629819721072562180609966093300202555238157801094566223631648355972594067143167792735066386532480813609950388057954303598348868396168724986756845358685227958172685509701674771057538740152975090319189632907253632735932218459744922865527909329440353688625920949786575217544213999808613659261622748852760862406072217508057727867556708080027591897815965061749659995110102668162915409970049167490789874632213006840151796647976009803892995951487920504709785841514981586500399166814791920005318142834776938089065797491794466622881163291217027264281077344328225174764863247422686373216129071228700949226037690606987489605304690328885894235803133331023444168259420908154749042012424115106831133939297076872896168849297797269450893979106423498726280811078796815935263177038204938958403773240229163689770696342958343473855638494831188080532333314190172662896377502617723998593314348402832597234960587242415499837470217977750746651473699610601513620210366408885531684477949871796204178094038901750842648154906026237978425457596670017612449828267328127353740632951298082058594659532450125911160871376641323172270044826420494742817824648310187850434165194883262577556268167243765702967664311337550174995625011403871530916106739921695583343852946294383222874700228623052858500065825921579578196316069551046817146918036373531262138075218881456300932373789664066209334549175648859321331619779495445913388743068798957289715236163704270149570110567649835602873940447873533875526611822824677737208164722037316192203540124021353025045225072244950980847428775517301306358510756232159433179756087643045203075533804869463219791242090909815997992451042370356436992787479158232999552498372140950842359738782003700153198031913646703414671141987723192953782730046541087861183900006014141356128267876760871051111105244529810191877849353082414070919727349495480419080646141535477183449025732479569040893980250031337284674019986044450987162553104614089234437977297184171484727088734783023101286276906144664426396363225068582368914010132116144331532750883936368156998574781898870896174592857847839907871834836249833445296926303675732516969753193021458654301294981568146616393211585373702450848572913205893565159204683634936150047820157186025711630552872345343713624551399422901431550374463886792379649314532873452226566870487617237078249296596256870014172299645427625466504048328809334172076492345247291546683833970110260601210497748129483200314138516117076706229489539254675278179258918928882066682408416072657565077581050574063108366122875766479430241306900226081772708494045929843014820503622611911924757247658604185397537936995771911116088687184249850632567850888146700569047481519523595759300313066714948628010310218245018623678852129985978458991138817036328778910920970498973080445332724898377846954626961092814486679795531919281684137344700007075657321474365557460134588159963009698939081031103366312547737591883233751170920801408335166547061936000702979641136396702247847590444615143335111130755041054951687654884248516941753152086808066080797044685063525417751317941204587664247574687520091329758388363386878006347091290435044039819276805352260435016919662369543082900417216173698140749133358019781923103045109055929239091525811998555167329481470745894400434110161300582443781062092938520123774766931779339887922598357841754283275786517859199421206702842539600649570025435234872483728248774907532885627634237030788128379298608024046551470039162399695935875287417149703744512859421201444755737188189120969269763272385639028969096506419136423240054846498682915784279292828211322432323835398695499652646773136892652326933367757181763914813288989177745278939941110142244044376972903043248474638976316991445026450651542847420818766221040313140145383708279516897692750761975134052667598342447317465999282270693040873124435631784099763156416201061342904923929692872825820090621348413535884086876489002960040256136136966507100123793474721457824514624603254101675497936642073352017644516962645867603018376732339015119813351842027870879381503328218654491092348259778824401846426536724136459101714509037292704108308018456184390597336998502398582897861842193750716296545194534570549002576283785974588058639530732637019032241324588211745671555011580247309588722090485845598214937118857066985609362665759517231570081025004069066834744123909588473439958367497978571763190740640663702202424150338654333719813545190023579964160204062301329247859817569845190444914499323506181795539301418825533738952463577047624126445605287378211448945578842924844456795208534340515524725619701422792509552222306983361795703433122074550950712401779166664562159310812811377876101371323801091621661213705651796832683853917882974292388603602719333031114287865098112428558775082210847042954460533102676276503599670504760101049595216845546844801622270869066111512062826855988450679691002343237961777231344784659234086598105680583847656579766019730737579350943342190316272467876706189831515900410910602914202675567147219078304357357891215703504596923463501987594613353348907869921783112240809486231276243248746942903790917095126718567419374581340251197414575960865939619378355817005988983363290784975347635939098155785630708688820287760292076332081907490853993842961893364382336731495696407670190994692735068559755061099451927491644502540629230268146674402709684347255810231565854631483612371593608206002281223583840341994214581540166972316618526716971539425414298706084821310119789076201207729063669029526052747751076968934090801429401293385274722292373026699775575870303152938728233520310927286180233910691168280503592587761517054553702416409145550915614345782140884286096475336688731366471024106862353591201699942966076326271048460061037543017800095152647095082987578886524604426652956089318162922309103845069278055029959004389291717337682052186474422546615968119871804499204445822378190885523444301845227324370446953786545703722626983921781603082074066021365119006167368807340998980955468689190531906226031251124537120698424030597185623030704326238807574709586056405015974038672082759483590108723788814144249975805368920161576053386946729827954879794813117559695276559667040002626329465419746304985614983093081320830823675286679838449563634331049351222584078583741937619692776111728173179744168862155465814153529749891591047644505973175117716523641603011946930511731246980659042887636844272752752498330960933902146972246006255927617098526224151615449556931619698428056215339674013321409550127783836442443443914745099147765907814758477341754588400557870571801751869565570237332630309369409518069215881879173329230434484718957632188151077869564450658896117817554183759080621644947826482371845436677852083757835380059977759885933161712277234869853937034656504131307348372888255396695781116338287162696398094278447208824215453567337119088854866748621094817945067589885524617473904837191859486069162213116237510178874348958963087530889058494772719160586818136945082870954682973106747424197400313746288361342388064957573665547238646019641253303016237813511881376269707425535634491511970474338472471348208885403121743445074085538702403948936325794839826085007699223787311445387606362405211784217663838424698739262454116737209860509650606206005803125333641834902821185311120633058391377205247003020065948055392467881224961709059073477177768488107519849161110742631779479156246914395702985283967958635680222318393419831321018171141074088586489506517410458667147804094591269648319302431335706319170694380443908422894920511188046174040038056515113403074754786682865142089947810890865669557971598516307978507788762927918186907291897875166607080667609090011045549414115514934326622070474541027036650357552375870126098406198709403422352387429902043578077791262833824841671195718220281558667479727679373197784102903429901814119181745137460756879623949768433809903905896145197610878994632518869187367674613252729053073410849460618899963895260960658388071676028751097234498254402437035403300186772852822279232121006208448719759730230579592725772610509419620374969110517183346082979959285635310399371798147371081497613494688848791241094230172828253682654641967411504390381090541401307579420697059622094408604534065486553957636485707391036552178592882782096245051860442530677649033574615154633696297100620774978550807088351976953549637000506670169724548110478663475211296884690894449059684316448676330539876809428862554749179120938540414690054319072231938717073637464028321947004091906030920748313087889467858641934470468618674525052118718554471560712130983561827915828063328000410254025787840188519448851214230706392071701247457005067456136354248518671922556608829119573375904594751840315713764093609861972908031931929897098484168822920349962650053916013613544498078899032768490459915523433025882119415907517351595631715385833532972760179468806799759033639637587762130520784702773758417010451716860814698519970367760169465832216465798560281537930263583986866583562966565879051413081804286096278262116016893885683576834445115822465288904640680983517528431357219173985876997650551802235717066767293683339714934883037670485632309083850497517952321976530201213109498554411440243596402685738106800730358593345025215009306082714585379429667738848745016813367663727593378306244032333596147610504984992565479701378115292711080977565692392440614147150029881637989830665088655863751904440107630244239843070184348796517651845359519286915915871056962637086016550702750586448708398370744092929945608679957537073465269273024806640014111944688881763169653317817182923190109975972136493096274895617401246512850299340902917356620425142814484983855255863241358122115417890801829772742365882243046105529206496013284209547439202899482522819515271482065661773219464351381996310159938308471399031904224781534415914871838614394888172999829305681182247121613865640585078732043049541550006005913190276858176869322539683073623124801449803430589208547376830408308897791705638476786255553126165785201394247570276651106089817037275086863885984116386287771229132881894126153419912841430406560286350235848779072614513606182635255585454142872913493295458419206946453778104320708379306040013354240871007538103444942233563278616445846069907424344644695997240011161638087356165805866053408616898601410294050320499105358615979738558772642851642485314493815222774196991632928110013366793177360524902136886647117610774624302203067617563192004180632953051320179384535484630941001513369552508085100782927002626621086708530186878473128627130988216808649884985635019839366696916769255236872741517384798052861580076718021701526581838891107390446528012889929360244783127174281266319337228067449196904179049732855360561424223549812134768021536230974041619732276607973259560586032013992987410582327212716960786014274295073530009725462302495808217444556876873264711277139862411198534696700790282207222005720831288179190282876267014706909991559390292852998294491850821115227295579067072987624114428501481130538673248703783551586357559576391847037008042420438497463204877252835920316795831477793848253903178853748975316707240947544976744545911568341302272730567305935686107879049850124580152200924751866588917738813411213039730850345401970420526769530143074631954832416078794023196115365987045687386989253039554349922897683949883461699308960038370336172818928981215282248322761478613761064498116806160414972457562548439927918317387492800727852789441185455223482294503680030121791563537216469041462193973166479370118921042374412551563587619468760886303039452377198715338581722567414312596339803994183655490766142890675550040466044568814046920779583081608029476976358815376836151319484228204492984162786990628641027562454884365829281277399109035187596878352362674236776887646351645804790178292603988894851260105792536664968950823967604692961310947184109287805679848928389784075417292519477959975732937621154952992826253987171351364467391222962251344371255421449517425123506897124669420105853642241468763934340905990818434480213751054609387650922272128502853149213309734254527665597852860286425561638893397992010093897793152114929345807163815198549995532622313148107284871839034421153253911852357314839283310517151005387396303589015249269868410280879699717093577136387759398247704515418514659867473543994906864504066698363590981349071545904092060671397598026360678558283539081969102804389544643338471696460965762135273033071479870666481376419259674762379399312435875759092249875074358988718767163870023851175492287805956621525839908045876973909241178414582279642715878395360383458551771297011431476043326254870382912058882403677537370984361152002488663236068387717746562849958097120116450091710370393170383655546213820546894922773973231181552416557697891363687052992555557566595902538190232411701945918828809967667353050269571800931920160390658042001229048298276076606954185222304348190733214402471025094614236459164023553275533135660858902709061275491682109400978547950855078527150660305461852917324277781136131868390994402664941756436102148119925671893040993177618899086314044600272845674141475848866830099445482580549038210577850108132276515785694021389688950719311937867539767557292656763561805344790886129531044089062212632871941922112025267584415135978301164833770464522055006186487999333746149286953814287288982972618907457947511151364324333464510858471823096451209842354988365839059804567923287155139099496930632410487272266640117258524724792202790889461966508290338316692719716080801528073513618350898648428264068679835578896156648813546506738580964736942576954010489500497617185667696971053088487316691074118955607768051825138994578678195282493760022300984362395707827144817538938788174357036821903738815652484640087740460275158368891805522226951251713846521395419791635585897591927079172820575216326092544931427011548014069874278930938537160981953212885982625704739798225321463821515920580951895600628593554139453398122875752927897642460988703504281345173238258649745254034206101210933288460774941656527244841383921988442262798374884808672702325874385000337954746352726431673706218033602634137848435093950246569869462888984372687752104578228329973964060954131555892728197631333695100575630199867387121034257401924199819700203145053534616299251214389233030822996188710382153204022214061067047938568186317471314560112894269483439138274297395008057841223070794661225183780832837058151325426615422801890794231582700491572635398075736301200178129590027412016806547031544298378539007583150317008989396103087797861157152837382303575586182380696691855436407717127971643476189685409512609618851617077797773490878150840042439546955061263131614521430426594395304789789076276613008832659685451888188895769133705572860736483382006340791523073625370804808119628772838988169263833304326519837243569878370595351787913374848434533667750927899452609905403712682029730811942481192735526735170234413021556064009342218602978080008249003393475968585724031687689490150528415834426926100652206621034462059540458905302958037131533355366918122988268493936665586580942753744517210037790754527903811304696807548318403580404319442814092238272396234762653496954134796269090331690603055532397676065309908679344241624004232670861403294247025709594701999462923923323820038401067082613416597637591203496298015676913883616605906280922078739364592909095393211405534333730485233040623574505848009691425573074040644727872524422667838608663207597838374725589349468339956664970696258929375545208275482911819528316041856920913833527539159086377439149711929458230921078526350376312487992130881539296211333668203859697863438550248992170140146882710391806995351711301420530109383965003042976735623991894481810869398295737937855442104648513750416433334953296503270202683200913164436979758057651175439234596684951865469503491762934189751491164437220630237298449191819115246046613191912233113428954057878130562387311445399010766045568628119330696841345796315114086758234389258509242477990665639006067349539832159800721584121982834901885286997048958347708737297305592196910609951288536586009056022204741348544105178497505490744469047388584727975054577983028127713606060059542760325502065407785449313378509318311643700331734523163782020402996061646936695460446467576134929203270891986041863256538262092039402946710936590123117932558535884566110963091020222445875205511698094180479389271762207670396695075700869729861055409008790880519935532839338557345827900437871508172665726924811436276477294895004094082920451143638939973119452991836572210799590561179262733964128859570267256107982899290105965530070157179343405671816928543255006329825357658798304992701691047127647653364893393062235066800212583480390436394719149275885202692678095383094875019222311796026304606757221286913727187150599404668015996171951943923731489173277548739072789799518344890543963309493374060956550252469802241843554303052251699603486014184333535416877485652064442337876209041496594511924072317425126586927926628647197962404192481852727581867443555709282826519594027274389944437682490942414433084888901413230675853616831013880236250996747647317678730551608517261905786619564468875232836518197989295234034712794236970126742934113510323140298908578977733618814444222458369858246080102811449511242343132821285508287497167892110147952487200419590929005191744021509468550573159075853632011597469277494288729202256359110195102285356278819079082240017513191795610162977837802477424240599460022880930376532011554219130912828247516038467264475335821583636449375667680036410411293572278383773569054955692225041465631202542436186509478312632711708105460446867678271096979260366913933209216351424289545622418584257746396633479761679934877909231480966670926002577662287920046403438494505680916672323948688855285561679132992712785171196978964458984475406406701004787795684006880791654035386300254405496009705062238782046059433918197118620904817565947990527825670084405214279453440250031885441370238134164452159243578797289239318898630828451833898512699219732428320473232377661628029965480411672572003668277300034319926221708296667669997869317942249578953233269335274485989850797692544947340223172745363451749058119855289688930262389240089720081986449227663037369447453475212555649684975121291147538015282264328497156739151183367986129316822816503208037163643516235175612700914849790310942861721812960307291644904971929949666592736183059425523126097260439672389548166675004945425817972667226268517141759570284277497639306221533322352371587340618481249518775923747681430478256533347914745856962739816765469582602540311382593107639463265946383676478743480161030147677538158125148515228079782260330975719550948354366650710969521090526297742732191048105240850816478187181924446821913166799786207829534310089426380140713756933941619465910083423443440627272622367742796021911695925521774762633623486111299272824555594806770538793190851128282592666307529759409540369715334859250645573185626752626163005835927296684526152026216855650573756598365562840326185040965269638418850890236830178064838372202512768834440448338584851831073756484179397907459893777170864212155502417342749301331002365746896718466542762249241327734788253958463899560974001210898331021094272917891387645331412693151952890859085373642011079943389479989105560235888885319062239865687454416509475116452435822807899736066676773319878849953234426310394546437075575610902015120175777555696535216861637601412485861607826681934706261961732766445636824542360263131173226924821385494834464399121966429168574074292486283635123665963763689134198083359710939531641116479055167345758873330289016488555516938826436113571302912249766176201152459646470877976379034708327679447383807233445380723177209237602979783938602402636187208135563343883861591254391785807343169860947530431386584579397769883689774178946600918453279022248249648767163985367881268757280825979113222003541439198084855053711438723864889363024514661456436616803674181739040869423859322679951552173932469526137053279167004189516084671463431599451116056127013486057401039805710842848276211409316722730422882742859500715567430895865331650503241073485707952191848536801986398024573425712587669249015831365347644070050713466613222539867590380168479673341500578146491197987733771707414277656629671302607347745252827347941256908825659688849395232016241073359530455384043167760848397419791816807834697610511491946742547283060528338586060370346341311731420563934914562567022744301189465820877974329351712266423406288869846485139137619319094521407960914324881707269821809822221386088340313189269847355310051672020650881068346093445686939718437722424357173314741378688283972848741223907279491841221273407331598298304636038614294761407353179499980461440113462703493496251397520270916501079918770354846042152071038140631518035315936069777543067208794298638221253700220175773309914437037233239664504606555363566159490540673573715655251632346568334686533091440958339142972472741332955590689116964892708690617518508198559954221103202329081989294972633781065729104731746213350728753936353378198817425089947705898135078341512326581820449135258389827071767933573435753488244143668926087049421139635350295144236002635613530246556190957614375358860191932294104860523865148405031406437430306670766075922975359649386593617671637675517331272043243619481667331610566543437230926144602078752821624600807418321003256367938123759987304891520819734059487500184914123507950323952686090319471083113826242408441168167430512301604226271308010024942334025690281106985913528294951972350314870218161579194828978823862529721579073821139452215367618424250177579867243200614441092892206263950376407555239571381099758141327893077518708048302576822697891463712120503856356550100020165425422187631623573116275421359620459139883335693259340279725182635703863819635803521114921891683171535940758955506699723253710867977018182093693354813667793694297155776520595327641979357768949482107782725086376685331755753278309775292656756516087267258595176026460583859875550128811212486887303348494852887916597737426119070835263240257750684530926294310306232714873482988381183122315411062375638386897966312452888632863897416676180297057676758349975169118880450667123271203039470632477731753908175805512259331850292766342857020231247325543802518986226446895802212544405407907932429060004380955101982309330234186981279273970705400756125291155488872956951891064936597496700564194645184103769572507996321025704599079950334371101827212722410738566186657946843140477439538681960429102512296093839604442616109110198732153259324656226817767611102391391567091095506599865507633576668013119355300307061134535819493919940482774124576142438142574499932455751192244449659655252869465491418697033265337658260584248135802975290475012741766957680952639141395121615526222340347703815960939028978312394243120695564083877261568703745424041534758125191678200140475584503370823428985356791978630065836698778140470636503179628893135324814282376406496022953679520732724638657887881239525584171002448836224129262974475933130322281276641008757185045301802772100851141980419456795402265502639451389608836032083957701195101482484104919884686284105926704145664092386884164172794226905220480532126023376303276233243621348071980739819104214184175024662662843369448922326514408096058298119280256331800624017515115729376288374297713984055663582624985450051774607663384548678757895963645188407396939040139261840246906785603806210534097190379469545045332774059386198809195688873762492938150964126495856508763619755468688204092465600494760608347801960324118321354572310048701100458737452159344740312324899535363305337313923209728397032483242439048746682637219391919496205364568706683000022314353376172153478864704061087126706547216646936358005056857227063868842020796933775421683033512663646955802696139414562999891115209843873402337050452643022920680051206846087593649932357356214458208059730163043389241285861894459820525388769815207511895273741847688938354670071493082178358909757899334155021148162504615989715557075919654585330900742210521969972684807837626817715877096856251016667914568363356367979962074490855342816566885011747822507682535890799284821330355209463789268586066736599243003085103030216861329726549593993282221064227794562276896125510713418978344431881958323827182634052728609401304429914392405668769856075469771454476426515844041382996448717318326116351737617859551385333654345571073089510606903398886477889631388978357072235061303822282762295951535822951133003259283886888137536628671248889435405158535642842223351364437130388077937995999360890905795783144218747633899722441992821649546481564087220516663607408159123285444669684765175066860444424915223032869777299317530982638338126183507814566122959841472454093689484360173849100583491733569239558575251969333455028114191396100265161631963573574934781827839075794707387969798297844036391111459327342382839930449426139892308646904191676933398508070669244435818035472621845585645412435523110290106509736723492368195652239738686791637791688679609216530915812493118875363773316540103014539584345337381884806627971563678098711598719745318083234409628207452345820397019722806181774744025344522947461120930719157071577561337514983768814675573720489011026422625496245342264817514066070043144394326481754139666759052618545085316852600866528741599294387479444617807127422068103150401456778863823928890334531824482921869530806376785100191351511287348080010331562057652759007289002118337226282482205103449971933792872085040728663717524660594405989301615677211466353800951215661474804555033172778060402112260595700732441075759537740126871821294343556001829339520563885348171237257334187837132532296997257492345275761439952733202702541192946403352724266306775574436910181405572521943813340685954757128919904067046926305760342001072646878034814445206616006987995476970839800015978609039235845461760778525612609651662347162183736941837896969476470278740112544699573865487555511088036368735814414442178019187460840778612374905835175222527813747433410533559496095990385241294306764195849264465425744392166134579475675638898013392340877048844176128866930677446656493459057586910936153572097368110463556534442099298174104163792889120622054984619176933222841196792068582381349559929118265151586444171648676840188274893220229509829868844032987131860814698535504450866655637677321707587061967325751936666562409415134052549791982019976086483909926988242760761862729463267006316868020744936926563959676305016845715542630677405071724394923587908797108785644649376072185326781298538599159431821779723299403263928149327120322433079944765338711850103730351103197416640342782314461067482063488775336579586470906986999407930651243333618145643550559268515452649806756912975532049376018241356697465183943982536313106032489900046911557304810901470964983875358656481297581649544780699644320650748556695133964460403297007106884336276349830813417991168176532691803574848596703277744103917805217482946656687560563842912314005707710624925444363348882483278637834019367366311981293697729077241481333284701042100323178500474732527792450351381570292117998622718937638349868073562789570472446250076678379806107363380338100928512473658058419173618810662752887404926182933597996759438957932216743272677291734498940469471947946802665600858550404711580073263006033410740723080685622006721510493771402673158250575474950520699443867028973008547305393646886013530543803403470415173430556366856773674095229069995427343607587008945356673447094887559298196617180583075756832639678671353870374122200593211289885880043134920730509369308954487418746830160813765311940172512764469357031249148858483780002022181382039826940467815815404099485445356679986045474871268884306329785730621340349522441013513157155486881491645752027274782229254938735759955038421347803600674697553174519788521890035029746262343519455329720975540161691264422758209858516368877289902253769982372050672288442884870941113082903794846352794401977937138747951893491755136690504391819139531874788808131493691333435667735705358015275820624177051636159249636827433897784566565204063603815279761283215342995038099077385127309443539242812534092824286526759304432866067029357494498942192267452622347118506731586439473145378656724100255816678289756204663986255079925096449522395786359037403825170273065537493327218925671156536480346355013129054763742823969986583043583079670842767251083773469995655125637306331382347095508624074497062460016508338312810021603993656481813801816024064532948594155765558290418222336397437697793341025679253496229992162688938656942665379393585286337844904391494711368714537817338368428950576015346380634067566186916922941587115635075332098714472534252301373738082476571141130927465827962618293573950768752318833763210809734486191607570322311574652813505485265751483479470846584205340341229490645442457813744191247642244160414870591757959382941420607569004776719400697071010012076589552613817129216799114673819441815103856774310261720102773411140329649061487740042266340457861612113049065130861437446054339634808364264082377500371059861563107640536472157979313169887061735209860786098042797302764851803105538900777544214861571457876997950232749005582020350455435135645420622232567084743392742189630561732698328935916864471760723587334298572969557791514767086866101957198866397649092358269046983655374075490193824297258662961192770416666386902876574470873188733470260840316391969716249875747095713479528800499854752735502175994910535602538024139428202596920794964840979242051094631494852092013153642672323113838054500686794521784268650754332417039161333769743616024290525161089106929568535104283927199554870794787539028748567213427335935039929901997788192785168741672699633163974926769632330099725051747509272591796933005145720218015903055125193458037541605792311210764871728445456156366061723356436693006183692861218818162777100128957573545669593708100531530508702651863676626087084983565515804591076663637074154737036506056804104108757210631336347933160535339947260597402988230209129715443236719305469257929620336063059767759550902819310497725529625792076019859378482560943756503541219063951680317653885574625668322896762050254528385629307358011815912394819355447084099688478470074264814986062463551488465373576779763926257010223762782610673076460254056328015748366944470117366003037723466411161188548631962583092254497732630283307341838707921446368853694434164546503570230556254856709064421268505883962835635668984095280839233276822647944052189781694709788591698915863989338679109938781171275107342752978254241839196298368653379962128629928642623643605067585293596444662741952843238846669761222394675721476440385886865809496981500222733277102877262709080190995456381502282484630964174657662964639176002062134358023718794504667376951736047804024909641258412665375402888557288721206319453685683030418610116672509368999471150929570645833645457397510924046769558218288568455586728321182334413183679249904424231036868997725843202889332193321073761268515997717333357653619049580018733120274226906586069905869867522109600285308103622266176482048483348539920784437012843965852872924176708491916443678849931895729044771088285032792631297947806192621385886827826480338534755397306910253408338456194444738157234420294301651847002670705443766005250535167271276062545109173398120962854254161603397467967063290379438739370064560838420051309517390841237655620267593124743420769936140427931693799378664611418339740562404893360788666992632225044570021306110767153340979134919725160955249592324129356036446355205357126038204410760597580283199656684306142735371166394015613684270035781920110326544222789323520308161140174233327114873697933458443691139645211856936568498224951900447542438224035783558215049913661232702465492459711968382690652812863336708139696333779416697221110521162520624530582247324080062585339885367558812126268964814355701668414131283583267405044344286881939724214267662695032869182513406879726861848471010572634801723179979814984474297643904061085559848952759807423077142284550034883337234156134615725702607603813530465245882033639842394968144478885381297043385876593406642069730525688833803525830161273076359749089928495043660954365822247732079142309954704193254704028426889536744026199708324666712433543554643409998028022136969602204685420735884806971322961787081250203876911529895466887422213122862350210107513801316667807991668693804083181560746225360240535419159982017309824938530785321001798350659629176508063738861146238940249180738478779525933332322372381753380189313228402134579753833264597498388769168010440310356322576482648850868224955413255348109525636201390845081341168006760650576787142245709783099546935441408689589539431416372332872116958103882962750119034241265112455152481258654658708932972246758536958152534225369373992616206194429893830293775195084980594672189529868795461898573198213897605646358537533780350090904526069446350598106258084741562321330537282099184283197824438377120093435544170476815095141236074481201062904568225994240423216349985189641584897458760205114353268748063542229174857934319270452277932682321248306936702682687816279756738787081183088612481055884062912177060001402156116255367452806204351694682574749452045931826347769088135432130597962080799613482704317730253456045003872980939939426906804221397983879462536291715061555444657137970660885302927582859012016808054856057101175363604685443082283349383493610735229669228938418103443855364227619411958917866511931299285064450867226711826881806086429361020750581339611764025238212028198073244164436921174235470062486944327643759231399659398770021293625097036262845346362983000157544962164656460145827645029040301947078174263324950584589749154984299334082448700985332440920322499173285964943298074389015347660069399263563248458528209740878005717553325588046842823256249328975787990083978050630925155485147333559952672265018065480835746354817910568220878903739391347678737301146180793936472487871738670324054292753042270271004034745930905638703720229174466604840252022875953393415408579323935581498950674818816947784925707910519694190093232553441461362375125378195406968617102080968829031223423115370652273422096972647611697557333860607636552552031735559445358036882744049853644726817165972535466629745188964228770833100311837657029712175809902386231753764298087871077628597042349484042371688738528034079133924525867620235490967303931276803142339693675045346647142593498694182106360895307332460006496754695239971026507503167333356682522432578660537449996806881832774233875440695044433893019714228672618746850533357218050175298988115878531579955084334208031498279300787327202617664740373508426449329690465280023902957309219379117311835961304544452029578903435863632336697936102552257037078966076444329751547953095035048934438770387791336489447292855503092417799412187038596356784793463889795111182720563302751028042699840200997556097537851338647024048790291569180240079516726962229023416472148671400603374691208247170470766187015369598120261761059384120224273599232892339820859691224184518916102030315298701887443052932962762370297143233198204978196345025883523831750640839798996427368684705293658010035758160145574353489827551634733117743319341759140519552565073389853399254760526603281383522140770869236365205888227893345168508853377210702672675499025012427230978088128850979852124001387346336159087152588351091994364537673149790288633974087500118277952828468306285459277753790631098090317872550509050757834155887828602935105531490964078126221086320246835085994094549625630021003782148928250003070430431352212011614213095147481024339267518494782891808014806151360972333653511787580606066966557155433530749662659305637993040644256130285438683475813438294654675624537700489831706057832166109661437835389103171393755689595484020757846201456461422771833857236443573500425881872309524560370045686642326595659398335530632527441050865450571403088559783993849297465513099799472909809280230680622997527414650921833497987283530697542131843473159791157797170144656498310595554622153735750551078188525605635211770928146863125329527405984935886851822664558837861491557100971157844624288790344285606604218717712335577433527808030994689328320444914142732369358641679728557378639119935980756942909830092104220398102944308826927672798481985520564839489195353098535989645308742123116628274145243666318126341622854486513180092624377279898680846961630395839608142670270516114257800481948155219538717940219080700847244421586534815795031085144723358985379849846924982313189514446556245624635143981694326602769826070814995888573060250828983918915417631571035679838339335873809164819878389576230369133663314067151739746100638195656679264676419026809851999910594339470474178569631468711120293340212287595644767367120782992738711276477951700833808153678200815076746832412789323154761846540666555761147190398963287801144704864258603667827368275315116472167715887898024271440684994520990938535935526018743088391900824725233227186691534800118402668543425425086282924180773811043146912801665405488161804109213557183672514196055185870373923498000294015124541867884441868012287150182394732759069150181534705358490396476467173960576495471105298510805428093594287287497899435378947357849738972434752287704534671039971346250130945235216189899870962963343982824617614149172461273487383304606444688103739184890864303656910360242599379849342806802022066502284264113693272149475482079507184507815944546737859977754890174106719920864334881465257744785925722444428249240711456224139713472693454170991742933271182394851485936910566362740262970312018685868934650427049955321683089015098286646153776881785714614557792897771793380754428488695053702011036047055773246976631273231478495861195781845814623857412279431645743505196778845810282511654868196504451580461546538865903962671492379048647321782255445153390545472645280092768722251552058469530546080353308614794698194224901421892472719761644770706722400461644013908576743821471127614158006357416450490187508218714416734905841751841844786037960278743535405547160690259067342007138769226192730167974832983510640638496071588298328978001322945625749165812361164838353279122706160989507250723494871468377929962559021102219363766183895643303877630198744305950335818849162011590676722838289501379497872706860524306085060341032830441300810808398909313652936027578006903036174272113940389572470909582751879231471937504404385229671645062577633457581052695500487005970557048488351010952113143614051181817551527354144651454332568272545143103111069208646975430082854619585978497471458728244557928466660818151556762870905846148126157280028282349281562767544889178444389737653164903824227869423813369419463904226204490410345022476326235968645382678197266112328075267817486511675544165494740729093779669568214469367677035751656272970824508939984645486908492159082889278084229187930461488773025264198587383478893975800873047515440933170402997043042883726922253611385499850102406254406587235974175235699975101660139738040987743802733918260509642582830643446802769019525906650307988961983076829121852384941971062413414465253834286621727428087440216221638815984731010609156614994968332599620630318489497450549431280671570320281759980361720363005282709015037775837498121419578752598071360096143053746562067206915251908615672236754570565735942952808618265122620244818045802823975392414558083656134725105035312589291897712810742102310844682309315584151372141844490507155811140801188652171864672274166876247198774063442843869620565378933478145937262842849960728154541999620936258548953354889536307615642318263030047684974909431202341539548468987232130109366549240815671357353600986686697511096955930393361399697111056049905562071044101266392883404826907194673515857450099745246837907768235797469294485661194791538713459207200512608281463293409333097661529231376971121314973616482670703145771077934523694729549226986689939966883133552385577237775748840665227200651568269735372501152365570113414733369858627444081865680022628388181967942459052076914593936479339831695570376611584161655113252311049631798986841887363065292575644165619257553397948638364281259011777875431795384237366397109626803075541028414718248947236900867158951536064726549751242588749890027877896621128696758508084797886259412284913018247857616529382718709510195790842399234193085221997210518477687413667607920050286641635647465306115416376998186795877108270145352612805867078776189661919917921390394323366756407750186631462676201891123222837122986483473603465182825540506547129426299804764806313950250682173789683956709716369052599551094675320957486012064568314268413716020271336947687330091396118334566768749518493061899151012185791954178386337542583673623919513467069688230834150406447700293409408019178848787521906803577689561738775785560541012353830588964498804106956603000290803628695575048380554351190196409303517495199835905475489156148758415534024860599397588628745644114504660592998395794449960021507260032225584830744072088361297282597955381037413754694166942680431481748295684409163904906358339741824854575239782172194074809463617816360614284086256600403933280844890878443131076304423631280617154006645975634284316518869740185712376197900899516866847749915765386622929486168756654831553927436471349634290175860460457355553277281507086225703353373679237050937921152486959733487566106724425348487150411970452718577537175180841280138013983367031045039947270912624798354877596083116312655938769033209047610291761400422463284357658697539215893135496703376866372728414352639536250646952001835226438002565838517940575766628477215468976849914089423265881665689600390736032718420525781156624449121587901248826921734638508064159138180031946627530563024413495199822861298530751392950032702660552009942104749379663222159061709242319134946009861165972479327779604314141225473273077822657803603416805135113075285019495861872265979579496417327065031878016994403969875436242035400693930109085728212586872068849499811083761357205046599472279658629702699476599011923137514194088842922813574328699604357381974329256424512428975052107965730359149741906518586921348550194793842333113359480536960099774323154800839780376786363808037968839108888331319055413748045389546393526757532431115271226071876928563443573893552711726726817538473602653682187895438721404599117366519054086910170720587088137444253717466865484910415076407936276986335989770523253170031526886304358581978923064722885504156928702499886489547827251058614192804124248364855317611056258836041537315181501518209017119866786197712107445756953530503529101055326473585275137916936724685112978424848306203217942854825894522042370982090640707133572074410381239173386820702103878364292954465519953064676498463858065453025969580109743262814400578605759463381772193620406687237610768096438179611536704962560003232362917486899133712826216347717402156950543796846563575088357506947264583468779603956445788462971461407915982769625675155425938638567928830059934543643601332157295486278237883129406753568545142637195050106516853725372040660969874616542161658716151125206810616947926149031230078351498089100834083205814624919905021140305610329904178597081542143137306173031005260957801790272742541731586991749829221583781439240825078933138795470897186487988537908690987848957777286882184279657598316853565997138215213639576907033533248663631474841381248697499354610701580556463923486115183191737956477153625059353686153710027347984570948938894244500003631264516816926780747974291015107933961504356117652743302936285011642500259289434097019432918563528864791393741657116251450618144654445304023883813919065085348858534383842231939276029498369764648376010724478840394001590606075464131551833508103661010994327011817991510942505883164136658689456152665065560980452541710020396518807876498178814590349856347189819971772969764562075958156273697580174698474898235587381929969666194620851966121278146479733364489668474963539764936056977801079962415881637609962007902627129332075912920505294788393699579916827090658223189037404646269599146186555194041040500462795238526332543232849624814206741387396264980436425104373525839053804770157359801126890733189736840381575188710813444071593791328440800750412196366727976265451436491437740290093499847565144933632802217907959591694778462477506321412237122764916834695036700604231879933577751178079061271286123773778338748686648111572299754385655211884086267470155376390117008906354364294892387834811525300142608452252761121614824019019330057824371564031386407225209424510195142871972291554389582541578982080776336225629464747516017823041194575616115912393698385969334670111071859963957923992126949777781428544592422373432599530703140036698564861756447997727658516771347016997505978639006763416868761117021755132869796337503655077112235675707008084736231924870733248450563312415961588195727024562186142150708075961978486410220962128993610007988863733524028904108094788154515450405293235492872549516409742131429498198651711986977687690728212633972651858096508563385537271940007613104145310044152415850404918649330589942369067488556427758692723840071477355838273865904518800862346997151550826304607620353282335956384032724032751356960025117116026535293975712473409139729372040178947744784320143614697518610473694623215391003051439909170695647424137304087444825815469896563937725882680149126666144119172938454837014908011481179383163669539685228402917077145799432782580679101297109438892649599763348306516626561386780281991771036041692486262798126380384875617812240281117235500013986075863759287153705626554840922550063386365914126513748583515244050816261661191063237104453559870285703055281074008311682331639244259611748865609899400342267410338793899159726044203634819335569705005985734205083266887375761495657897028033240906509562361952926409154834780159075517837514413980221011088085097127293230601416110117754068518593538414406294548062512623887678618672585985265144059796403699621020325859877300898716037961127513830072723911842141881517482400859709071540453567156292487650419105558339877722054164211378100005836828685659150385232917385314986135042507327000150377640878864479627383929040599111633700765957207684592839718045386635305185976688653397769500239062216775423068350595582603016829037090811810877316770755234070180335461030142476497486402397867859318529508929645570063991660213224918053792446234233623123499977884211389471598524369190868897333129385754855108594062552965472627328099966876917127977265655081791478256664387927216928074290805908677190828811250133490174023648469250236035214460876611075149790298765270817128182959839318145155326265389364158644687649111532151069965201852257595095936851492561341818977766782562815090944843218112249153137940898678091016948382253260832214496350660500097409558772855059638723251487961311643067108728189303734884352824773356619555051051228881127822598963719574713922926509727817813142526994720908954043838911088699247441737163045929569881576363892730830103659819967444720134195843598688334157811170939701708004607677368419802098423187006976653798608365373269937955262777738290497855320223581778070903179768362103958859813782333813277697285181031061647131821279183976396376553496397755870983435816610081271427600801038458057149208077385516900310675268174558223092866835305444900876616095226408901841928063467598254393492898595538653710656682607546296567176642658393678052185412810551606736527751078070818550410446694352936044550440588269786366415676566878419966680138211030612524521913452143418739107953615774360592790353765393342938834692407792686070599214380028868181524983946841172766288637098155572979653923664333001883442569719268102563027047683240544077628019772385540297410911318379732147275924691233709861930100831506737433427388725831496283457722664285842870538263313690965849131533841855786145724448041781637187165948334725415684039769016411036947666092871601169412688547912093706154514311300767757835635719397924524884126125041858901872980567875264979187967185762711578980602131577716505651088567731041440170563602753685331832770444700267151962797939690368342648467783037153552226479122146469019667663175629779739091369618750890433423073763295677665962291443767626830323642268741553589627852381157788648356906052062021638844365425120342647168637885104135710283883424711727406530049333208287354485758364815005591893228042627496901617551913715853440740458890387280227506512732279109972902142064271938657014211722553962214292460020556994783031224030233781133150985232076965796809641128974621770733916427101193913917094324629941232334183797285868500408007656036573477929099516555667578191028957879091590513628079901303584567558267178581674632305607052100584385371049185246458432128456253986231639672778112757273593820866876738692098285837317885710131428766878880090261081362996050146238794071408578889363478659946048352464887596395443745312855158579874420564236712344656093047435315807098081057117130336527097218064240056740825485583225329089442429740135729516592377655857369669631096991514943157220430644725163623752475609511332054564997286424364547875746835302478994017247002340642343845178986817992855527332812800876593600784150146622816617840430987339359651550058101347597949045912015112036213205709723100897848818557223799549813411973097926818283997468137773443212931491157573725010783822917005115852218486213591239529840497728694815659301149752743693121963448387086211959489678689008482060428497698849083125243089035191716974279639308668765546311497205327831443175509979751002665516025888772011042965533049641084819762954076795336770063134959714108910347394963249583132730667113494898793334104143705154290606208101163535450318801769190243335873456037311294322568548412644483126898682342520139783470931771655202006479800534836297084573836176685595931476661969576221622336478550635909020458869816469500970243682210368112754674765298588049984892394570587198218886474358793560509965565233956627995876370242566233691738087117600437605866781647312294522202783280338303112906770595027773802223505947872914752928365139385364605958107986566164877561050940245491260011288793764213626364475297222336208918602443177520792706572648622831264048996338682950571510432984492408445083648728596926615583717523596359972907871720259650152094100838746466608958489597114696395164230133122842365183351530395556377199107331358715150308956449159001052863943178212682156348215994717015212880487001912682217292539304077638409254940738069928074734328782380836484064395598566701516713537710582600286008838626866872004601217595895412527447504427007930428122466941244258399772149222561412098979627136255646940304367451307778435812696146577415060093069488594749167538043714300442988262001296110470967329813456970985812073123020827313151050785072375201819240531516105710238651969799493040394117996599070517848363418324103893836428292060297460538283012298237438587903851094234329729327558980708050681783407737275105012173143019683504122882655614877365375882984849630422443942965272661669889705777139440812475834434383613567433954790363266989166116762257633085407756389639455831255341445299010030116523008721185962407183763566502918693065553695522375779202184608190899772789474850192547960504840016012346371417540562593699605525170627745562548065045653864697455461354157295177583627674574100380179611453305182668998667817045269421344183991495502683757623655969798420793394431747131224780727233808461079137951890113680492530538855483150498363209633372986977247045966396740744620002980064788539858685266636417308938691096778836574907878644497371090569041184770969069854700679799166991309519473337424227913314175268094175598523399561109440634600130052192376048815964863490892964132529201304132539102761214844281596537022936706159834405135120830820024390845433618503965212663919724943381495439799937223373877279697072410924684040912239776693328551406069850193286244551503386080135746444717898409063947811127537877587462241719321599807354407502222732224377755711619661154160176062006466842705559277324497947175137046818692985603873295208823629957347749051999793912743011913948344380509103101454449726167931611082907984406405770144449190170632416773564754230633261313993825039819114461082110706955507930035382972907146726775075324513349720772178269771358409497134496716279613495081055794987890774556147339112924012629275804600013521967444227454171365135590554028617240827961526018249179336620045940468691048967664120855471724188065702369403865622507400423766513718829199070769172290113663012496409681899553612244732306779535975656617411422964759064738256180650911666244149349312648894461598980047232935806211573246474732166284969057578137755791267642361520501198434329121530836263724721566462805439245247167493176162871566187701398588271608466192965982799606927984714114645095971455562406644596537400288134640780016549298799991148187673561483764709774792359135033996362009120798089981170913810501528410782582417444872644839576628569523538942733873088114293087779933738221747124159226694295420064293834342793127898382008118470491948590382369808051668406886855112031545472552037545402894975029129031128584698164902003915213757117753584225679999507953350708722956342943297036145034716809988109615844658329979657963406627091133481447184413676807689669886007957208549698094390726167063434590093931412811871948106234540360415288137413689815072001375680450970042137603317723202543724336911182037590410943001236186719079943879390348957288695016116007352902920327726319047624353090117777347166105595931780693653570377141611230190093377543390776704897484527162504249089781634666529509445443701968885714105785821350870198268108460004163127428036849649859117878980447952771802662904908233111337208626380625900922516105324072716833861805904437799438274321819099926173400473224650490949958220546473015544565007514796929947476179157751269039951356460153258053968291095720806705606554711331567178339312893165242954468929860801693187718293984605689296557262373443874139614137945918199826380273866640179618040020545053487259684697714900280607553187908368807582410482725033670013044539700110039830298497959917871116465042456927922112774865768063726282027682051117778974427014400229428893273154127144572506291090615867019113073024357013714001372103789387979334714264164854537308013062726260003308998245991478797614878377068941883140366012128753857440017922550478775451317019679375312423944011646131751722386282257804501404501306942930740047526934998159722415940730070477367447808107736885190750489378419307335329933189677486289849905280904027836439967372708358630179324517471718330070315817501328437281885630407979026479643752632876313196341582627753314268096900025823213237244637471451375666246896740777966618267165349798990850643942207043054512122183544967279958715863609159248351701470097882735021342036102725305349288110822971523719075128035153722366297556358593960049014575398503716285095554766908697194244167741254996289640342672564964554101750176206792429020670268543076471110998441956327809602548861641634326382790999157795422975399294768270400159453292951622400029952563978325309607384955443816003031571466091260125658126172324305987794471135128545467791115622448285694056448885794657594521310077241118809380550919793864071963486745032753806845727939260691776542375567777697742212825348740373945817367775527878950644695750056321519328679462579028143537273844422712705510184301979494205055768959107231163813683688580650300749434813035937724861876059358257866555734492220050647852920512138097011403078621147583558953128031024088087292701789642015208041472227688579187491739460344439918666550522715438012073431527528880887236299203582108491540280501384306924767853190867257920570066004450621498082400691540816410190045986990033888284309279807557905518415110902919310409152953829782764587207554434411448924909238813636902734247396174455184210436378192852590764080970030534058527585256586283520627037972013878055471855437419758855874469019821708809190388374811508394542087723281813935656258324130269733747761845472408087345174446129336329227027776075351746861972601797434108639870118968999121416871354600400206198537035879830435152477117434218483827617384329166484917784480894603930160781429860530139467909294914870401041008799951594120810077794251267582782538958501609497966328616228572234228004013246004638879786911048494824342813766231763012249519512400740442209147629424387963621293917976082611275300205410915698630646103572846659054497136986577957388202026352711098047836297520186674363641121545341212881428265499521485995826749200239306583970400281396314929070908027998827577795280482493493134956901329747732137745356643409710961074658440464735802367095007502697118050724930233539417929581937435656378453745555878836861264211772739046493036029808239754466498700962485052986165137040472694924719126054432431708066245415734791258995335938677901825734019735162099099036788824403719376948429805506031638554133370381307087055353370182822509725170522746394707936617260677743175475752803339706896735207538062351813490939569955042148365699299631476657809762658425357061241304057570381899578039455893208424309477052635517466312012194262525901356769831842843206484141575431208145607392231013450674515197488464084269051564995306363348054580492838608942911941001386312705688081369507562985708594610404294982011932925216712032923658831177080179467424968051405014145054023493497418753423836356821713899638669364925467505224675906830487295495594358325928396663090951993470996854438556511876340804732032873822034891561368596097154178778031372268326399470628748697113063188315491625169429896328510097645496881707779144401529280744047848986611025245318039176430499619253355996951967773734196450886158193335153810837865352970584732642447792446195809974852362227589096436742533174613218155554969404358361806991895621874809677353505284202992430245247206355167614092680377838411858058652812260417288576116100489431620286373209494319810086353975670773277610584060285029705279149204399182977072214884039906645971747840370658719041739751924492668406408371776499804211147125936455360268722048822216332018336812576764629245967576578734864827054185162474445728813386480859132711697127083099671859747498133284903245435559951296857409429462297415454366951634502318059637991868099403814128719211639060568873214571717413614002699630440548019440724745219988936029979617219793482674122500948230786426028746363719662515893458514674108357493774194898355481660939235024239121060872334270752744525024344915824005920519642530794323945774637890258992057095235046283896725256073975378252311409802464649599583427497575869856959173352283921990714413409555080613623165224792199081585323624317676346137459878136373999675581045930883738066816746027364729039329071213616725708612413150779813863195038909112703295292029120533827647492300098906219150241138912895678489388422133494087940097795255846632480764866710894556908657022739842287914398878660477620672259223349748585326502941412816466024090612484981867136082097962856839578839670443066455200428345221445540579577677828135459680846849818506319947830848005517632970928270961397801115915648321378254128140686819968423521495082381371123585822284152467937978051020118141078661310977150874301933726073121438811482666154880854195302689124689715953214076060938342707885752681367946307653290716441237018839982376144397732927866476966186751728066998913314605916822940656352685897785209488645555040646982565141169276752632814479821738835909763386309265941936111169296348503663681358208447327246858744860380832891952347586345277916690603340957365152800176785509319688192855426845986053132142764204792821884387823288621723924450241989287833967047603380701585303769163172181944626279397152476656158506916677349031483449349474189764126783488332094364986085082730980206273794650303946974421471817025602647177073426049330195668154709951475632425955613599181263858574960682762662027853799140229215266094983411759800762838122896215750347909938203316030041400477682460630080226896208531097806008348375119863417500300637635895398225083922842828224597165741546228508059249711802503779062852204205795598393503746304218102046103555930321836379991638114919942263403441398524170352305069411292855810981140848127746256917340839365256736504125719416869159054797925241007310391665356872871863309932606128161119662402896884970035758130242273488064061230490040964526595159890358227572599399509702620375277929963324343060814263167236854487233643323547159947947024945718864142498738184041197369889524312333445046784691686578911687631869697441065152035338896757776347538243852494190947936863330202157052858631713654901391231209932521227363393738172448489470947499732082590773049047758610694530975839080370402496695698029741187979441755412674623848927437103390944246022157847057190019328450368117688379207962084068356112511842509017102004858241720731233241457869008562118915501267319357899881236557083661060058238458749921995714143097426905140743665021784697048728094138043208220692340930509087480510464738420580842336053342413889288653992955373705858083474892027110237604875672588084768373685880669675972999493525203943753853664945604378066922322566367511428670181796205118744561945200953850323416599153455605322960395013728831119687919978811777497917442006148457985770693838657880350231906991398478392380544997539326309960166566585936049644364686202299947453631078385590116880219221658604572082905935460600656602148235172719064757689427253146349951197960999378367525615352697777289228403224903774301963973640746123402249794030146637958148445638724215594539459824062050484587638020414913780919534872628422749388561374372171009004685211308666565871609822507349319257479767392313081375506292802741775528616621975238454388577027592539586374761895447061420072417951635553357772178650482922795731438110860486995026462748801485211886683333058409586289821570180631602827869940756262336194288543037816938062067251720807681948305932622392463332931380018930135295096881854739467952253582627573741605991804322331798444823907949520635833831955437083680588266520928822841213790803869234714867576318750735443840474368325024925126318791298546673292906437363488144948157508834133809863790977616778310384866525002632089343379478777961263804357758183412811525643462223547621924371869019710781112451332222942461355978624924696491252807245257489256749059314129447922466274732630656965288499061911793961919805663670502465804330972369387658598372290306494637806357000393848960501285308485072065007554336425203314867706383485372020164655290186827563906852017631024533281273973460903951013233759463406928692215282896330658635139452514159281840838729932902562828987355885692239137007897949161907133459347192493903288717357401224421751598207517331469084998582478253388897107158307281169255027080563719031420010685010971604461041587342658793439416816446571849489542361430030731042247868313136057555210297595914162101796499640780847752798872837520660553019100320927894932982156645311903664499158594573637335603641692533081096503026509571010125205351053215502374415456795965715926460690679975788849697838884739044935451517905202630955312126209871569475553127669114206503799060109211805489684761356638999806929729866129398037015924411862987867293543089116762027607404102285695257857035057553525984762502931430456441545282877331098893724140719634366892294544536711712116792566518703195296771308688131586543257671669476565543079246769424679142952659931602048618353386398639985317847267796381615354039664603214721601382519678592858470258125189082567307518980819578114092418282328334369900342117557469737764957825552207878302429878349792858763609990521981595403467045667021644478103221489918441803974401443250478565398782938123760230909350052640071118931846955742590165697934836690388024320790955301735825311276819032894568077752574552293449163568580488918286532580322558693328713545317063539838926061569240525654878641870073722799717517431920087255569077094713940088522070689872175303053349584983002379287242499361694185728457453527259298103701503279059026405408000708152925439816116308804214868192717056966866395764291734282107075262601615871551632210610162726021424161065683294522887060367472471126915270247488663630994789129735705701704612310101159123333685599559278189350977899704276049049039223181049190814308209061981083287013987345198472590996098887023077631903812204323059801782921552794085205203328533803179133921059792168074189453389338482132283561805912051105329579466417819914365427455232659743709653178523311851707148241199838703673697859948277793081101727566585157677541001738219244401049789075630872403925659470631226205372767084677406441851163399438962592894113253040026714099373180837486318750303650061583330751280513536729257556474693486183268189383360602824533833161141765756375455249953816109051878595161487120457225356172135734868820999134832476875594154760311015298453753867628131934252699369303247028775627276757352967272526503375923866117794689720766596525830447431907674229614131106083270304128299293079672847948706602474641639500909361008336956160650039063173163289131018381184444234128351901037923484557917488316149186618661640494896110677530404470468626616228789864024230985747293363354518065362149329149376144896907745860537109319014963097198663429646157749967070352301791770801668405235159882548686193793782842585548395655992698228972768179799189464316697817299158329258106947095052338546669101254056680245102576559111351818904458027619253064922747690170967641481529823791595912703756377654814412754402062341014480041549077886619051786568188671690826174982491739783977238978701556757590585497257982165301994324385520044648816983706485434870043168798663523459866257064005650723815013977002739471120147596437247486042333482680712490237147531184629824715793701668159533497534624868663733903290963943673191549636854606388104418889436399719679600344538079087870218012967124396679708708712071014447518564575327569791036467675311676880804210545498322714557307377795462074637219210796207234402437072446015436632990658706454539911294669484823609946764108436175590864183741111625621397383482961387882484134244023543685043109358771472638849974803242172407071675083265865779673504726947878103996143565165658517216289512145432901280967090389762345836223232598686235127000586700002480190612929990424379032056114290285420530381241515934780373650727191186430964339383770630962283599997252651063569250901784393602334457864925792015435705007046115794677286232378573029081331828652501686612403819884758129133943894083862841182438883403515098796234328584522944818343096470380104127136828433572786597765097390413746771229280218776230577476860485920048939113959506151625983994551608265571789450905272525912624405815124929800704046611979014100374415094238582177655676441831279304470605827526291993699982783633381834226333554841482842300750339663795074331698201708849373144440186633815694507765160812670787331764829576111995444133809995986651543888371130824568995235014707548609825828528262514403750697630610751491871767824866757939473375863381325492279147296997405599504654537377031255392372156900770095270626629510918009829204812374107632158436167191185866197357832572562657882262257314206269774693566029634695943603015196744492748178319267717991299174777739398492779595414232639077087490066314677412542375075536887616522751037644922421877241298619359548939265564780012988465168296585126611146834144597001208116078954868533885323913485651208830089365072152426310725520973658806318391792877518257593652218603979306411876632533372849460497399344475951059178670190517139229990074641827168110928275164719100993764807164193919101788609077548884704128249124046402904094383872552315286377346710761998927853205491368857422385722656497780990835048749342680570057954440084545778861566134584522398860163477234467781389978525100098712616008750554366075827732362375193914825564764301052927041032906818178376531870525349393773781579704823502242867816446654104673600697716503160301119024947132834922662331878020345814316203432915222638968202859044439327861772256135433803701466127560521684251298559053270917935052959884833700799778447491953009926619094391691662713566195152095555301345945539086972982962192952498671841828677431649158118251371153962958987238382001575983720892594133978524680319127170291566512727420764941958511274636105222745623106487874495509461149432721884767176955095980068456681913109710194366168016803537326408351905296548856441563506833245816884169603325565116644472040705671156743513432335463604983762977904682124789729988869334111978986717676324449218872620688448417632680719670399960648513899660282471786913117685590423728701209008902613547990929971932574892241319202256912842979524105177401304736328015324517666165250096292042723262540233259863701238183576368822035194758466144247200151528343090993397491385217866760223600039198976733533167433254919031662346554154824573801342800822499779455311710508294241029157332066743082687798950022336346737039617193205797591457575689907802828834612895948460915082008264041885371634480172773934614629985107664598428443608958651255917537493888270035523366409900878089097672058568838571417796880954520270022346329628240486861548223549542505333280807252047046639372839238824472034748402395148171276818476022278287887285341288985953354335381574731868211724940424209975542754458197308569393885875935661346532070879495830627129232263951649327895759246290044495822263438671207580034568871557007960405805568657115288806900493065719521336758919668606417920756384706697864499375049380491255888619017543750903684775410024084442986351969245086603769473881568383739761965870701675599179245384250601326767336603472701515242236182451818688577995824601702806056530535593534764569494959762087973164358007253300460003041756099355288217839181414741204717090662840035648685476376898886366410813592038707942029130995716545318332157005375512830027616710850250614990991770798264823731256333496842144198773615173518025670896065418751232912973649070737645418380176943383482787158772650019715284923341664044638673449794346653526101825131535357413033275075323404752685763778127741355470395941449306106487112429564809571713768370674447251164967085338626663320006319250912918313162619733620463910429688365923035362995764151298779680947640326208199758968133137695713358106271708949902943699302960301864656766449476313558659559696607623134422764477979563875893572739177825102670616330946251780167193776096186309150695723681759324697684181338701418088294278167680108897646917684130977053002891549447831062052192529205413875386475265878302344498636292880387695880425935452199411118813639565458548526216037334662162335951483298153070406900055126410565435588985096966357976277399368457463571365347981738252956110768276042004393077907921943327719265020117163180553764752707882947916059382192859178092143147816062898627310595895617942342951699908442351635321954495452486622800291826675817152565206973887797910616906221962484256879524308600560748541148417906283410738204434269478838966485475131372172677888122925045203523689905592687998995803640941907009466207781448148182238849303234094795710900854405913710150559910060058530247751937807448516001325131551148967723981094583719201746109104959647885553858408234157785701394858346387367168971481982953911348721720203674262123282579291711133342680671702877537334878581285871513393208192567323576440887602449299211535834100387950292623003144601092593604623479144492680697217004273363438021497613155997834679996504425576968251485411571565371796105238928610112457647186975623019703437042156068684809344748133853543259467323436231763562958884880607834984493781166177020184899770792101263929518548712082450275969894155579400660769415252413407057694499285371898660659140245751533097583907800248731858341371687543844852680457117363674833427025772239191995575805123846050084924205268603324247375275454664219010796381262972345975068317441653179142896403586303114687755960236524713287990391078757472639217215263406796276987896784037563969480090512376434215145810738476027876774295040851149199264038733134482093814220536234119329817255650873154869070017712427678420026982428756631872996465293239618202041663198392385046101210622074215537613105672710671891593736657309637813196901791220591430534531551180159262104971558597758273830521032096302771542891578447080375734322176240690799925138929198564853867089082712027291840362042490375807747851210469111046682846626067573638808993661699852709047281045928392418010168056696241209790469970675056742923676075370598228016147081556276572179597110140556398772750125754661804271243145747430077903322462720730610826671964884935307470756699201184310931904286417172434339936224251366147410425313875878703034979430002295381055392808224628985871653416399664534925501435393024138697676441498012831619842486377750167426802333498462086228860083417698265633723298512471355544299398772281821715760842389722441835749827227138729305680897338764032786063912918580796684320861721259167925224000615506145759113720456936197672534168690506385366111366869561955495265998520701273699831703544138467882200694138609219371241379820299573516338312078651424411647833444150635271524378073114966556774934093814631777544903740208816928120550269622249316754720699360160559701171189583755917417224982178424540150918056595535709008520362658109317235504268026650058643117832913954793851201271075601789281695801017649585413616098107161692731234628547036999985513269930601692464489446320728611200036985838919373214647427747012098456366604218284300263652270743788506044211865636272434242751072833355320441958180581124384656760795896950388786736707203101692476628683105907628138256867225426651671135951442236392596172580253565243217810401588967330029296498982121216856399371489312942687319676170346545653042082442541063675163799792872010148547640420952145610318906013415923457170417443740332425468878525165380222243693091092742066362360902281872939301321099180171504216340719397674863088504750523962289576747330507599924857352310008403045196520822629632172855544194602246644284996881919337233397415702835932826989887725146376048466382690318282761473072041542314694293874523689146021762854209779569955801338242205833327460163357645993658374898815219538431183085788535155626604141045812429460442055038397687170496454940300249419372019912527796097226250778058075281291060142419083916999309794066210900527748947805115897456569099431813776447318007862932326420914709345373104943589103272660907363676382162231024252175964600932401473407475358372569982758120598294567397704834906841350251748783615549230197801439435238406948980815219917810136394847779349490845857564934566550756645560192345017942978690412863081847756182878922868678394766853849426501444293764713336910617210792793059356371816378697280001461549418942163155218981682706951524300063609130929439789074153809296465957789794394038721355562361624289078935194231148449726270966106875997843556072129869021953438884845302779655554879282181670598551648758531198046726132571709680918392781078450226700962847222229190253701289696414626726111476069472534335233985845046302050063587527407433676998277955802317059356453366362633486438292269142750011435185501526498533213742698115809693901888732330608532216286860040539848973246055481473794191984864129657933999329409066891887407098681442291475171160943236080044536045255118401376477082183646615464370656388255705277434420673082283162367566079231797149055314663328630059904393973845498112032189659287465561338669924014870644938112196478143889041159077629150227007522402424507893924055134063474571077524676669170067411786931822018476264153886960112701414167939121929805787403369129931284683030937458711804054162936957153127763643654405103484674681377451311651449476502005951224138094640913484747754646069918880626329911453892609116455608466873647072986756671659704331076831735441837728537145020212590624497241973963516900754620383612098429263430879197573338665136877079281873356518289784222052706577584090330406599054406517054293913845163029888260773506853545082668593546354175290121790577700003102986265254280907976659637215790806680020991811194374022464987118164282965793409700223067672905417312231038984790590149693747333724202219410629240393826288623644662315637056583625220781865182276094863039090462848794398179185311636855046004394371969799162774394984204226111549397602441689910010030049204540294764960304942749156830177608356984980205258081696289077827030608162691069674590936707966688004182237320948658270532554309891692070882168051750311838020960396947005007169469854014758687265132223190197173858621719405775752180947135601168019493124308929926749000386030365283348147548620159038919082138331945406859954728916157530293733434810543723670598670272166526693717264544333192034916164198671415589556223084100270605138221607038168781468206675194593215273533841598861274912592133393851484702659857432296801561486405054087000865690281126967997944298020193856927944600680332984217533643788019018130570470212046010380463175510475202115595541228564184452239047824043196717608312214667270855232134743117783397663746210891137581992515665247822182252599763727546516389801246410035744187603886887878298624581139632422661629042173444367265072700361580110106231475183384525494743471516740450743021831473641797652415018327155724865786117724806100378496760500444694433878107875169556518971220871008879906349251942599651275490082547991090619331084504763254823157837415985314050536877564478713129848942142085751118979445830764123852408287313812786988402674367786996411894106330608090668897359052591332647503752828756936416560981103978252673977801364827617900128604596942911901568535258705340998835125681200975494127052951998985480894890877639858797032863200691394608647230610407083860280327420284880886711950882129497616133745306503312544703620222083349563384834522614274604968841270099846024447871150609774946920535799175985583265497653917211774271899714854389433999783736515682266848983704480052160378250246611184386037295046602617977602434709334046268781340124793458485496919157722420088185036812732591936403408953658679635988656727084009725773838018625483973860449654881866471250185064593894732256152174278735085407114452224992333812726445377734125952212011405860366146179009256819941016889588917036474491185654833761463542269030004873268211283304178217362595497585647868417958758535747001720872635504057379750514053588877807070109169784179588988721288353261217668325605523001641985381402212573645428248484992097004101535562766830991542693082194781064508871556211704336187501788771052014408697141423476874336964052117675525838378068927767535227855547065131129367010099700736531142339893486944318735088936458090186318359148265850943025504938785294222571051870853064739663343163382797593734715792127683327926641506083574637680101730099513183101969147282916549576694938730145585145393440853353160169125159599927602701442645317322002888252161246694062481563877549023347455711029768660516833186164775348236946242305115534873595322196864526386610539241692529796923770520447600135291543927554463051920994766268457759823197877321511721045116259616818510517251726861745860701056397844397370852037981123563785239979884129034651342588462632212909926346119309574845943273532781532040322602694159197017254045091821298487115514938890771144104398258329580010048438715439807273319039565722472771250855324103459418887369750286393611499208841612700776407126788171076220043182684918003598362063879810955379987446628658202642882130283964860796934877068409809018104141877671790388442280186163575787441239435542885311450072388680368696982766339174830319350703658489899594736642694284614952042764820157015744139162995196300137457296477779820592616006758488575069642712138507764012640274596893747683118308481789437808810179986724739633448871921337216874966728271316914866632165545933478010166765824965561024443379882976437121051254270015749909489320497776968763196337595539421875636551836793799367764405848423095152571606320047861237600375421780728172066744438256449266174165568454164027770559180129617725008159648692381015950638564626349831244732630765791600756483122897972436149284753859816327352124266664908779268174648457433243326841081865663430784267047094626734705662818901173159952461094608325293269124501248129047329208104147819830178043446554544340668521494438035940530373566298081045620587794690496522356024989630616808989447092536052777137740437565428800852657296996206527589927030791813460686347370971175070676120002847789439101384595023089806231386187081303689631766013352447224697468137580212508304697465669552374858493550724544867016185220965085807237024759474609996061032955784004948786161336013098451468594183950336762375915544444496104501706629042108156858174025173997895780965905133459384917929417678157751765189706270795298198458105256233600165554061350905218365170492570777194225264512334410072161949607476216653886273957779344859148024068590376807599560503109924171153260203177098204594341293571427900202697572606178809496241310800863707732424876412135604320960431730512180965023106303446574668784763240449640913114997363662136068625140392683553969922055447694046330688232885225259605987281513229888327616065295102948496237803639251102739296456060938409041271131783497322754962222225938813684278257616329016071794901757850597378287190148479261624227629794542811139303275784472566762308511102084040877112901807086700760057527020442130795802269751638645078397531298163284477366971263991441796992843245693608675310913898367454291390987899654318750309035605924041989399262024138937440603670040731956623948302743633431246088079354317492301354740627894561398707902248372351488156321965395709456446981074170054450026225956621651098917412998204075571602058858553603074744457738798434552487389576201022706308115640695874354197977749206718871863595248980990097532861870687493327789608922054962981315922845461816863222104976939903166381817927342315588405659358814581759023920570919984984300948528230036480280932522740381889383725121937370518768554064029191919265148295384357020989628769200016865992378224791291747480721493460557245650777230813178206398314831417450499462860126909826514188832359744208705329956465937842582747253983099484382930753888326799194809236610414855535440451267638498044633049518637766910628018759249881895592356461522350948808384357693254340171916718671101033523765584197695517865957037488518915407910923502988932034594291676309272508499329051038087507190717519200849961973859387492215006369124191533077240553019125431892548353332555863038504426743180288294345753399385231836379043179718681807682573924280806268930284375663415529935832319599715725796146605022253187589588124908818588786305684051908013898484799134453179478262420903060101679736865975158440928289000356674094801344838137172989486268904658716964234767343873266014334156310903914743670506491754319380929619395253128561551006172658484325227175721412686279836645655564695604705572243544830932205771510037252167474031990614113816238908144561759245646783090915791217428985767126562634259831712489306953867824120889310838741061156027345803121636989567048515707688234860932371820309697337551748506511208095913314043353835685491582698458065823199635806547536557305791033028146117693076928715159219320741104907363042040684353120822500420580590559858348587422941165974033120939466389602121398917576914680294651525320995865965171866166459811101268246339317181682375514615927383514207884170560644477256844137454154942093266772080554332775685107066294503522494603942610605483802178006659002635648462263213507858981444937748008409891105456059880600215991555684760257762471431708055039077898720234904300797342124295484278170250115134049016686350382746174100927628379083976944337674444175969364417734477999964705861398952653294925278509633024385756391421613829667283512471760956264835378976340205637369140946486973652373422334266591044634632659286230972672322440668230249178667494731388533243376345057013230875221664061611078553880428517361621449468431826398028103125013644971608170006577673582334621507429120425192007916065240977767779526143162184055082685005409251457219257659059782588519074791205094508160604647880031297602627765190917564626528830228853048316506176641501469054394924023304374232591007171936755189913515448246549060293268506759007573747410596546748703883725509904656005673379095139284875329251715038263490894945445447739846725590388301909007700632945460909989278204700017044249846161349143546039166762312546563736750759322176883822468812067298091970949041476470999961931030504581671305494822334983453874939277104914485561544910496817579465347761543733351928825956681263353264195480773397513963959942783413187219277384110505989361284285236246105007065612770442202881952012715965887078566878874750505199071859987682263862293024572680910488213869292312252131134847082336715815533289420876453243976648957987014177479409788122571638637733522758160006629270560495524751183479304179792832962179898260979839159899692591513196212403969626978358790535205578378407774347523412321637455099486612949621728593286190146809300066764234597564923686741249401672272391333018491776346970996648126483487232012572253355787243955370439069540268420100310835731145906466272624170793199039556305077774702126659223058135762087738611258615941875960136420662707457698392176052832985009380810428393278993875401693862329813091238240414255585098283466504925433350166864380891833520539539544154639179702163674647445672078305932182483480672702411174580777170080294949547128085785568032596696710587455267967205082617756517600217105049880355665747546694781953945381292526590373017149390600051943928799612579044194270501783702934665462531406199799159273910116043615079915912495770176904463202680289255700281955740885855658485115410729906021156706353790060193431513769366097195579812506816951011445919233957895389488270808602483107925071286553866949817254033435885390266168368626195489396599601773383114496076036607097673672407252979106563334566772334559769386335857217591655626189872868240671063318591282554439060692266597526849028177626452323675228054959892529380100110357209784086828910767371932236445174852990713085998149855890097946697479989433158411571198892089771013772804771155339873458831298185452797205964794850917598360499354683237902003711240977032406076565694268702829128803057119495453677292190929117827598663134778125688762531298922686598992213439311046676190725424800690551668223971772178090596574612673400490576902680005217738425086250569068090965334406950377955823260055357363551339758452078937503579699278350707358141234056245193361606765347159482827090679431564279170501674196887216159522921574186041275780233965163410278693967612161346266886324405004042496562714169859624122295917232764346622999699509623974155906284612924886528563524996172025352330210345641819564984882193855534546164342926833141030480574815630269919147770771399148294728346840367347204787126306039369049051276695841331759888063245777600616702345680401697509785050162294327404606643612621556217459002520063242735581483979400184164847223446562302669333428781151742606423455256602745012438781146175568046301994542822261174488074159777023767087069577430011272939033301737375919977973194805094206058053328505940186082282191063309860431234016159607653368570486234372535072820597103618568961314839850492727849120812553540449084733438582633494990254934112233694591926108460563788044456455431601551311879482814226000775605732088795179150668991910002782944679853053480134628899253579147530157914136201946555577612820344284445669519582675561896284104700464785299375293495351256398812968159577346721730777403328644145009123833425831124894942306076214953142962298784082405557521899774494234572944107436530583245272734364471173437817814284378948511581181175069947042392093390603814997288157465849508356819269115947234438571046469956542274373986810057180990140344518588646301065341145229616656440606238612953927547538970061621142574501883400633437621355268230001549604093945509407760134526342307046156427233095643846068494507381172332960190028359518437720346034277912134763443694707930077963061884657920321266709976144932501458500734223906149904088341019102545150770118905674546773255415177939363908217706526627365840777285158668259719021050097161059086395916700948830652274807292261358189915423805598203049426381641035138627142020306591342404709063832800134509013862655717912061027343023983687213115298502079951907710283406966474864615274129501688030625118756120437598013605319022967785059890494325174792378886002614385076091454515561328450530873337759234882563740905114153452830971370763684106198143059686293321792173731077173249729522170397754693643024246287161733265719076307437584877331491733638997124133948195676713419735455645146331468087909160192803220211577828662955069582232238525750985739681535645163613972869028285257122035137272692423962474791116455098517359551566930373204825212471269505945033624786782015718908119839934556158190997335364854902000074005740402349633775771853859722024281922845194242588441760468289867012803693158770092511794176218573324789532606899408566105074674078214852892047916799852867583528674033613537187629285241969393783043559618560413098099165080435296765601354251127284606243293269257132397292519799690857358992281276759606111270336187655285139946041652051253734837632469115470841226924378083656704283123066593070230684319159235209548146512815248823047587098502683237726011768668102944944461894727588636497305461213475912859908621738500538189958108278799204980021858061829370089943680188194074351319108297555750678219708995783799207384244794602056922332743739595483186982188376853488412625025331747417257370048158666833918068991836551418893544017582869982958323363774647487230222598134519629807020570974596052663890869804590869646341611129360920928340969554849637040006974678769862592310209809761986230455387632079808201427546669103535433356825878709506007750321255358009935971279399135109940371499512910215710262157988309398003750294751456187998982482415762827247573082607828345054255259531124473576164980886994743010566157839584816203754763204245192875001363245885879901046821379332537348063890396136092773414462824769486012890066243257145669849779265798107962532023927480893232143586056353651827205899907142664845204392674670680606648217808314128191434890926372255550716257753529878293838118536771859595507083414449944031522313410403533760910628660695823152846608421608849018368156403298739098391449140258990484833408891895546563454399189824306597233525988188348698491750165336633174044015867564223205785810089539197368947528375272694289278553132705019909772588708398941247643951168895537114982351533680836130300723221294126804012755448587089664016471799018367230472670430608817566358771060091029899250750091692307357601031099334846457734594604117553205422893495929809036242808913189564578179320008652469580853984902516613658581420478866755364830260011374252392630210984322349970972097305632420251528404261227475991762237396812714028434263727408051699728150902958058448796734089109422441449875551167349033234249976923006309983913122629407501289896538692293183028305061733356772817780523285733711341950154718708278635402634738476700543693428127753793049395500195874722198330033887756345044486273914890442690651416684970404727189700522326227568985461821379448909814763860615914720816395400887614333655558230523683135433920640342191524111111722578423939935948191283163464738137753559221962638436059211781001824131582106559803630345359517226309697987812203026410211737987284304335483426925974591389949999290037087256035752169345907318790864434987172895369167567438940080190539794834974814852549993002714512126752406656332980463468311407385729701047527097656981239782196418581646287053030090921619962425263299693633491696045508379133742766646816450251835884438692690640701771910912592956291089902085938420268912761341513301956869593655080973907636852504168124314319942504827483128491343453877641290525439730520347044278952389918146902889795432271613375202841722800534021944646931655294886908276453062884754280908874693523115131667673704124451416203696813246250799276072658092625961560825676438415519845606926503889552664773977003592838029106288151131795384297052233943161083428311458489214882014259902952653184305451364743800433423558118837624243098269488545877321449339646369568049050183096349554977206980271169264543038526576640947290381904241374681134701231013675095901955489532695840382459816015257656134319937058585191819036529850626499204174131723376654664670651763328168827586549699034429134775995975768810287449937460313974001155361764583920809903102979768941651720440886810453380342809477352430567863745825810762908041299483726028251669794542988287827684292186563534666795898337596928633987571650421390462215950535953980786310179198270289142653228224425891423847002655842032819207510344084015735599931596187753839415148308399369497934755649263433938111728361105642252689565917174746382588087778758359030877988519946304835996910018564487122766890481707504118973285360110253159515293584086041764287903459624540248404316664787900420750842412075448245985269624749980690124176966077695108062142243195383301922357290360917361942014775831624637151199889083560575747488557058857957649670679328930806151583358450574886418882774436267867746284328506842504389643093861418942564409745832151258638080731429531922187370896467837809139998356732345104307478633408142816293734252367661538301111574124967015953721362786781354838110678605058341429692131733916594478252830533627582393623992850596465969350649411591773957389515162049548925132859355358105720142889827574756963642033633780885812608394714985832450381318284959695502190554700703682169768654199541960100418878785155622304550037319041732194071266469336017012637098203400557387715260848206777606592448572590143604543083670574650005113317372877170372531730624819279565529215651084798786941863534411908241559581115533036623135058996203893609619960841744383215651969661562044362749588110622056928321834277136342564060778510754074200187568801628733673883267233827957438373322626946824640897531885716492471264216086528721482106343071022370861457798670948037768073159467077649318416721844687494173816720344773066500350650035493527563576844318410563308391619846397528574300855460331668542152628666087490128436734491760286689920478138624570842680103638190288634520219444540431607961872111118075521983216107935797999569980004104498230710802602106249049227648555211488887275734000470101163751651967659688226104073778366669818411583624110407018725503387985092116627924247513351822425746041731450661289832170041875664551040340602819974284266634648929137937934862968674279064136692098286432541148026184994664038763277663380941215537964879414756854387634129899676498348450303034756473139067485210379800610775746000132244254615619889715918212610168690669345893678213422237688865509589741960687229029570967042815605505253367915943244631783543684791286559149696526133240146618359110666274045815944661463061743282896596008964364053191682953932421757728676750456869123149724017278912028877658050762188368214851716288278195259839433607538362912165810561808200753916249031155670635730732593081773138266848850820007389952616731756115081441921607077393288552231272391594704990183358803870625475067674915199646666266217771417893493503002929399796840180356498694960806382216333686496301738796079633445686174031138759853803234803902646611019267839888850817885317787855232014039710068992995242931508749218992102358917332125295268681626271186167979241082270057118607501882477226231436972998575310076111446759320998479813524609840796815751880073653320121295186014247578944825389330432131194769739212128395291136221998416907692856571417094457444558874030564802613020736298400882262018429450074526703896282859303689784589900533785220898193528325857020923525786567357635864681803016234715360381698227076628561454022321390509521878430632006941522970319520539840839454034160738147026777902250637265828883355910094235687182152980769939214879568242687093658364878450021002885113898429734774897917208419426649373035570339175608161348787470858194774441847917448021101230726895868179716311463328986518051309195439696249688910536026429248725238390475209619127670836548179114215422935548106328547433702979976188682423377919958788923644643625114619804225010786693501964796464690615778237586523390980698074449682851242206490993802412088632614112532386205118289541906988522953130685994879252438567124868305921591717742328203467905525918803819613571199244831308900559518901587274480537664516611617006613377300324723115710990082972710577208970991105060728076378584040655417532178332474043398305725850179347568540836588470555676754148809291247080788351054469342750913894195409121826963484785936492956326104653692545106718673961123468720246178034340930685050887519421042452540358489125289453197215385771330198967147678138425098738858899803130209270012808640292676005774894127102629646939282605261576979638607926412517279633006062481887568142837886476376397303471617220452982977832886955868662581365949689349354011028270447069848885083324395067660252138753458894985641811395992889442234193035783106571443305716347943816415709535753952953827338349654555384038752483602995396358111520050208761271446052546394199314792404454628675400258116034833144609009610077547201422118483797712166495158085669095770041778459998834547680325253207309971491247696098928744161487514899294632802790484416681724310260400706590088340893440082762984745080904377805118218677350922795389760147928195607372858989718073510539725211870527578629888283343593169742117612514799277565601057173198532327859045322798008003119571976800566115037169253549356044914746626620866935468538039395052558152217948830416017654954490601715235999743311118655699860064773249526559019065032120245030308351586673074174054172404596883517030212475734875361935733697832567360550939835831784635119033018720315692834865600228038501125256173598273377133112279009394762317266809338498707052953935105336350461771279592339900126650072938955137893489157397951617007788554017928537176503099375613403492460737214832600614839173370221315491750208620753018740347666533486668334502078516327165369078930456859093898261467497976036302645213069122119791456238422842738884564155386090764167163307536093007398371481049712941171348817852366850549676909588362165511593698751186348705720043338553683225460567939292165152456260307928969023548994860797034163940141406846230276865429653558709606001071675355551778725397203488427859506449252034015378707428897432297406101043333075187520177445385749427996789972541104270731602768442257337122390007387293474464909414699357381292599192459061663878835920027559300804574521996326588017524148947907979440545570713001680557498932278573673568668001306887725391508579488444757206162721380674939028937541861382374556001693381111795764952415393404031792883811155832060685128627796147800887121785908896637710334974448922931817607705411173904727080638301751050762954510528866489288758935630081114683094288882902826113440487978966614436972034408549839653408222192201710159845211875358155648477159710835297566323970313789278966226592902782125954115277062902546966562982406787647314313553254223890104010991790623715712905819821070615326564768268069020062669963140446060863038027046223158679890977490099092432147256377712852173970770928570635172414826313387929842342971228894153303192788795752725344522192483321046111816048843868639054538318324599545511949551907346964959506215189990573863778545084322672294736385810615724625941813531839245097282802670407042039476016215647343769421560778978175157066413605652552908857090454068968818324847472145296208532099154871012557301430788951374332434618847525914475456090118853985963977175830586428971230805745925535893266958129214260105083872736221292966514020065252771330022382506957008235515206209851330904949013564980318430746001870033345683747280048155167952733885272169431076895135590867856266582312186509653027922622565540702015361987730224484814667195590446382242394153721266112157022762132627193649845516661571637862698564771947993844494072596147951133606412202005376976733791860033837524667112324801590490647094838364975844714805027623331925962010694349329040960786283471981284146473953534499277544643446978594108982794678730562826967010433017893785237044862807856694432101917089135116734289010235565959062894220653947879508501345303626479331083059148617852382352640376572154499772958812523191447312147344323439943882080566783339996026726434430625984157194217669448156743677924645877697894572571166865604256412509296276997374656821834941687593743810388309663598162152403059883345716526587511427976102631859879632844368731965119105450720370829464334485847880449855144732580602859853992738175050484126149791479167249655540691429694630423591513567768121088546779704831475929491109693584191647824021983875504077011021199713600434155526668661062508265116620917646137341603259182234970839168857348361377811663417069667651424368729557765387095183632155022882766595332103300236225341683709808934819308160854055769210727546089023675168805464470968037114858318131929663959391598462336902578278559378806955490131402465421004832595854006390938801702420061964975105255839723205675561266573641831481250395111200994891474689294425717049309404915683435586303871204977720859719251562339744555715772501085919190800241094682511072878418620403538829335238074543938113048484073164589776941765568394779730092627154517216271016245154747558708214664028418332871627607208696511010519358520900992343750201430402685213523446646272152464900404734185154474323757499486751005308431972638403040702798148858798337295883571015312500714620964304326434426598052505828187670873070009474875736122483829807060743130946294441069786368095747240839286156939397734141936649123313406133276310386248478575979699526300640384777031156286102171855372322912170248254739247823663625246037754501013592255790768378389950749295830806148229541264213189814632696337430795575481178751433763118049097099528444708121863973002832897801885516112787829713182911684625239518893260614223400418580075235700615558868954567021818091651677134018419023674704494802963104520225996175036910236419571250363660933552848459981693780777229688039179363965893200917085080450919705124741458283096879983080178514997208645853768236513798050023368905925902354287180730303752884151876184055149578894974651029379445188302818474214098306296901701428828475458782740722094453136017279716232221672862512630326222821997042647377516916047241919677663770726093137687119284080620850867608208856702281322433457068369075761082212529988492803149405643139041566752839888290618840486224864336527560538784608114465822013708246854967119274407962901902230160447083637505368316839072805459147624902719294200380014766401202516371878324727071320817639625106021698466635101485720784736197148184334859287494140505834570361433806482731757905508502355030712657510490195677986284863616818159004044757249049129230763751579771465748996459022090613415064727599176267713929733613975963723303970780234813811166607496316396523331948725715975001053722155619807037651815074747905945373240364044656837417468521006824539953344716228661246861665947014069519873126146764273580065886046269113827982432053465912104701768538924417122562143033297368275087850495776288116839188690414813967695191359222848689451305483523892362056529082545007568285787399787963764284036015385397402285017505659735720436079514477546378071030111471942695958266551425227440639525567421170953735083089237905503127611083110831841401193123237316806803974998176348737028317949532980293981519068653112086339263852828117324956073877552664193429215426453304555885200828893734542527122095658499095420025246877863825017596546908659738131771735661867486625346437994034035647737886454139863291995605286598579215772212511496231192894993592294891272270862663206065117723913723465440099938391417000523504978215050832665556155210041821406925257324769083707318438487406801992797173028313078788126581933437334717794625842070208777051413274359965401061823522631986810486237688679499901760061119128397334033567897516368682948542993027150075826366596291026556513431356730221578881698342427636617910844850136736031008284369857415906099375169203409976227888943636668046425228542897667545369364541118092036907814631750938922915195961134671498449374563916125798948782885212149335108094579223263961688407623360689043727438699858571503049758420460179092984369061501995366834258920811130745953167445848007457944149267051856897840753451418286433323160241871726392355993334688930824246110459628426583304024039621229539434619537721155776730010978181482474765395116626317649269022698036702494653275577530074424440249091336759546349267060380688305860522904557810925396305030680513294090612925529800499859100817378459546136115762227814065300505056437163891826793981472229743280322856316269619604588136455571818196377766603665697778219714540012709121003640631724034446069290628685118412060143818725240051449824676643819528042725335900857626078905798267988501703543862001275316737493144935526060917142147935948378227249916758913006658024077770449508996458064100990803140187245696960705542883529637822386530903264264769244885633935025597800133608619411489120456078947991538145546668131905161518767274659322975360675398850033987377264831980949573749553641594289715253777021967654949636964723132689811226757837672651924106037249373817364906647297068823931517313467271619763367069569920330060663532257269106549365060301069541866687728514590022003151707715354945280791238346885706631540455087309303472792400897110599572042675537581659057114504661146470543042558374141695641693449037288843995360682531472001608640690713176225559201010839854802826062867412453439330815427654237809826851547467890834955311305160019182065977497857192561775787104350343180188535753106739449261292195936081502596099461494526852033485003582443021772254939793751452998019727207851257394758326787044196799126971441147942361965547064987527191025536230804635065771759436728318191402993085771061041429965404051798154698585323095996268767907840581520182267380170416069132922648233965580657356162248498407126299621474389552402426827010972788191259192200672602497901022902490179499485994542322360670193554253788955481392041009565442191996180247286424818857558394240963617534302202719524142530544171180309844466146352087011237387336597191835446920780705032997403300632442013160132283500548809957314426924138953136657358125958645515722881757868094431396947781891003326083001302105684164096936535315319924207137507580402962033777183127752404904912658218532853749516448717434198582749573376367714199571421276292144501878834434145882654943011305180782562757769936887275370391691627496718752769289145329151937826824822753748829062455048162782674030165599251789467681812812352201814602551446266135774459406121989139754132463441553536909043029724416295946956957767091778173206628602599699073451189007590102726211919696895942380748587840838084536432847468040435503155087720274754580331293835657978551219003326811951163559505646790832830904421976545048440857047056256282366769645193875409813330523983132656003761244785124585845545186547060545563205396182719663429374946981370995022854721143103864160557794862989415729734250061274560145460426870646822793942848771878594476448677813764513796500931901301997962313328497004733738554681607649300717512970981853435299774416834178725406475164387701361756633733342252455191341108476709787864294284649192598565106778930642992971417246773914050534613771501758353443944045716040696701738293714790054938862376961702121267373326495875782356393738213654080837062652736400493212443299424056680522151617070732877308603662884363290127633262487821689262488789296814472156135690507692591572572581626307764264845339986067360424597193297142858832878728488803712564240695046546863434345328094048065997642533679463633866769906972578161788491201911688625238664413160758628886231778673958698281780299073132046206437609350851063474024530520409270113323937075941281081681679869775827501159483447469304507328559889362264483291141267061453524486320051065429940917707914105723675416273953057334286726253518915353392629783944063142900200179690453539563694206867984276021807431453547949032414133006659090372126827445454819581977285330547268101833156115334545480286559127025924147197629952780222365050827157811255988376906855125738888031260040979260992432835722682470959751072966439697701936282407711835743111672506240398661812669775472969419067190279431314784072851976282052187893972874983142106555475356323862998727013537847544077282125156255522211956175672283489564940473467871421562268150687535056800260089741124582932072119488885142919351192177981715391665343837963450601888528787759418377366349932847937686437101463946639401170546875395359232385162690014959916533813924367920744509045444929001115055966470506147887681207255795288975802284039806287893541135367435189460086935369667615324710665152918196022757153418648044463766789122268774189689742748157993610108135954874639753292330891482377872958072341131639164492346808417366487700117418803106491122934384728330269060921602591702696539865952279020110772444349499435479962045500530987617218825515386416092322243425334898401453033906587935705365220455143544256145501882484823547703365444963056562907263043991785685615238650690723017790222908175258988303728485683999538686255802332845255692254106351904723792225295148674059273579811961261288415501573308652597181338167717264854534840488629949687037193730567184514255018476977595420669679880620513199212424678733590371435083688734581951945173033237351649926452256496185495519698242139022606053842271800668252190844688487669198305528298797270298913442992105636953873481864691981612426351015176838619563364915989913046962694414391075785656881924456331831634404588488520387374937431732847896694532427917534325216301356520643537263511585269169507690754973433996904362000640041843671829064484657794617235967161884458496000163997361907030879773045311467393098083698508487747611950243448145275688931274567985683643634670391817707397425498654170789471768502477420119808076856595916891167606273697823151338645447047095926377580638875726664771719177669606943728407918635045769092949566876064936866845170225081759379133322571273656642948691769302293895977542360473003385178571175434049575968069336945303237497749789275145747051447299958831454344749036645256853229887841409815303946896210529623649794352063413130102527975913728302309825555340564615871062262045236272381928127005534525472375744194268508306477324059998357559228189023748368120934865254837146583925469408273578433700845306940706055443984934643746868307243334645856688983983347455195751020287227967319804306796684454531803762681311074824697327968140344551833076053847682652821548522817242837852714350638622569437174891985530146360641590211479732324304963426055030036021173306778454345183215076518861080622098664986913401295569437468793274469058483482874109845170323647448850052611152900777655736394241092491825741175262138650230887436747073965324103288139937031851830054749555606342959546483972653833594190834483689999377864167362114127048585118885248944748747132104798133380362216306320664324833900314899958762470030803907540481303179018028043005886787747204286177703144658447165041188842730060324785342897935753078500666695433880508217767539691726807548489214923295360651236714521082659185511980899044098191074614459495284959010064361648083364331549565485103588000435827023785721223535170126609364179348280620518905341560127373921280831613337636225423223666326414594972084308539450300855813267183248467034406778468958842867185940844069276046285593975117643220273459679229301732555410862382643859060523191708229707402642329800445955920422458496971898185372697667826007192362614415351805987058048999692359093505433441561848092844855092527752175912489247004605615054474612291590661579290183259594171355686491154826525359759842933634330249046593090980805269677038408904338955408600589073761010677631014688742349126151823923546836706461542913625676556780959307689869071813637920371488108881772621691572295246586671937893109347915615839796232231850276545623699479859378507430409329723323105712202206122346927398750788658875148108050573468423293642751897909388343791939151874734986489017626471425487952453658190601042490775152636377319837392638937638472510141757935707831780077663949071023490968166327283591868223898410836148181556888233873000174365722358738495524643539967140630481187213423710949241116676777859888963548701321377840966145317765598966040806029501062654644761373127746415852752518110675219085468002036689623738656445687934424942971332974388260456383898919695128764602756255209351033799729256133451982142781183899231507920595319866548277155136086977320554610645426627465617641065855528656182364529710849976724771318837587652421962208699206419070525089139226892975219673737950113894740818601864328719884817047394610160832299228797062630236768549039265767526061357027636545605887392443610609225322068628821142641755550151305783605873056275587018886661799423017970043644910827526913141484962822331934634771196110608442076431467067177225883141549265472038137131407941445121550285380410129445266318915947095630495438579473890463075553835995095543433370625928661867326332553285163657624043441627942550266515244068576310094576155523926122448343026168941536067207317926905291974754441732252775318609060604309075986413265919580152495705944413945163909698318014653455160615602633819406007923713934158601412514033545600629302113223870742531349127666446964864454818955866057110149064806524413804594215599139997674552803935659248352130242030739806477347105183071982698460584400084856647557417052879228694209195849570145604795550018462234280612486958377276996036952798902665646881416785753843663079488219404874015757060271222419901376001183288419561344322262244358697240124050616036028204618665486764864779541981194191518103103079293425500344590987471562472859610842424375668557899023373920111886181974420497825642413517826067602696388410055709342798587760201216922101535237096844929794188258094619561812831552190900740472761283744898752184592339590369558431507030410126319790324402393162090407092542771536293008334519466072733195555730454343590126550529623436223095659523889676779620821091760329583947230692930343274896072129324587655417182540648386821440101562194294652580998944338129105031739745528284902850488208338826033262077998011360339647505926441700482085581489326287550781192539122275232320659790497644819682026385923897689272334393265342687038893727574803061454401001901045539210469987666251938852989364642452223619840220491866585564689888674101167989714521919994235815172387964687421862602483389209006437841385457542149800367170589991151778019262878508371002407647210633182758467932377314552423890498356997330441534193393022590337630157435549363557559619500915939076058112970871259752093740933879333351720868158905538909136564091565996613408552307195118336407462574957660868381436209585462689208039716474733452430847214821083950294678433224264892467748871327993399061826762083136712143554584460751668324102986914455918805017466963745640484808755329530756990102591552874668045826072580144534784408799318846087271234773241729347337395545508011220149849368328862273196495180154982531420010651740880052368218796204092909814596471163617708100111911115113726266539250284339054003637366118449906322053655696275978327281187882565167916856905415388051678571920301325740264578290999903913090213028801307805317565169377248102363239252848648816025528190651853777292671032296527228878727570250611861192314984948466918297866036395683974738945245990484710839773462340618897972796180970798609194273174112593451253833482470946721675037401924854811756224087862031522989955344268003552706110952204555664656095314840726036219747925916543146660010653648261078443352698562760750302380448928888936036188909111348355075152620115393882485516620110792743723734283266950756360820591174497739444587933615225999832783280635542952335812791264709794917625120981995469678264953132994612381980148616705733251214378050299914991600964284573959438999290299083476670982137611953381855919922967589273071224840694478348537198325205919806177832720919598874848383682316403046701654010070563573592753933337545451887954061664152460765389206372847087107181921944476441977400513309839335521697165495985899453203638497674307823004660567549580586082682049770801306176953028041883395603339801038215803932293265414125323356576971890669658817440895469441439858725020905402746856167890346278052779569791688266146884822563759656150361849126726301687951653262056656875944236781954826141864476850738051778147391586833152814822612122728850763813201004951418533887615758822107556070473313922409070700439724077420218935921892512177840682870988953903534522817225312152437624157856198303906817560946435197437124157701432019966668903611250345974525788597395319263386187511033418627276523578844770272882154287356333626498509106626454207763223171981831780801230763917295151806037926155800793139001951546199667946846320937240177576194191915109462218048124897441321302412438384023972011711535160113276107619403362071282149107593156868430851124229238419165370887889710357857569471832228382895070550957966420538578136946991556501972328865186062003461015678694026754606793215226136151423159025957148288678000139181312846582663483487663278764841974775359384078573260459325779581515025669693762881330772380541853254837043261664124583005283213045013640243503029679379366106265296961523910463471309152796004019655464029675670975030099692651283346353573181872350061233528657662937617660150625076055380601800598775820553398346635028605296499638431359331509200218663830468575836080853649378047951659155210979025372061425748673160980343151604379801882526856608109508556142637015947207708502189069433325951046947408369189556609323276427835024128664733292385795056580400304916012246758171256279888454205817237347806821840444585076954878633022905651207442195083948173567248524208402061126998016540074303809730208129250734451775466643105287183241986769144134197521644886054911645378245561165028942477771637801022623891162831416066293619308840684308525764318956764365553753495879414917806218297584693848622446018657523224437838282495354579197360191974209523280972834849293095068296481791433763329958445430031736550061762444629172138829209756345613398651104609773544342809561054886383753732130073479964135947860290919149556764229341646942634911599253246775894371039705448342669979231136346884146442774215051746481485867419195972121023384304277137155093392661804688208958784355761418915439272151808316289889206366208966107782493311905926386610823865191707313310621988388678212493217167647339504054754476832430224302390593610658546027212966068435441740663888593572902622342880748784114938570499647564817512679598155999603084239136408539011487401375538842006480159491861377017129616074243126949143036385838771926140317594259745020478816609260934313600488100393156825509079933320571871133345253530971386135469411368960735536202964178075914013889452119030595696943439182214247540843615370868494073967994987022965292206065111634295337021014926430351986443929701545090155245162383518696604267501961316691954141256925285577976982125458131691288034042011373015322066154687927417802422618422875630591632917674223911460203712860921467837090699852519867947458269671878828973427767307300324517699708404981475289188466484198870009678946046951470151949677244791401271206647881620130801879963880776968026738514808410468471180955228250990718654971523279731998949440673873196669064221593257480337797562866675384903516405615931072369766253465079751666503341931942020373454772668635320544739879778748303820211595385625724544756674131195747391893553914400852951382581460370471565389767597631145448600033510840535277448462342563829185801784120888258878001622310943967947000548664086290381547988431926888772730384125811984239394425606930422398468611444898044490283435818039260564290841756876261238381810878324869794440830142188525845725737452035673605069749290997264901655424458724459894400961557603051688369036421331378177086028550819063026040452904266842336289265229865195597460188857413880871558524972038714735179496090621994561965164697401386369702131367676260073257753954164593658503467155563766139945130576835986946121347291591422370823465635385269238231562590364015058355661130034028969897075736212124798642169494770533740698914782653732011750157190676013696344244379355521916078248760390842995029078763091785268547453138557056728249003587302177437444130385529243144388336771399459372528833925541840394585132934228100137024228769614627840594980378001156332797701733524886379918740474886050744114439771878869436737191847167652677399545982624637826133243221497955010385049155262186296121336673185208640903195962778969927755415480105847452415706614741585748334554404905385304062352965731518178916834350368208822923217735298207211545377083159883657042793245657913327744408266543380644876872591560208559806336967830266526314438997108563743530154968969166209689802545518113342749370509691564620121271877863471910681045709463729340131190741053848593493928735282019364939021184470211946541114652302668151907351638565890075690194023212399773596574605657278819541818334202837481930531166115763108847009845278823358105278841002851555678354597366081728962996206458144608693316088716396308208685972954146480439167663521568384219611820155159831448057868841874524938397511575344756081025547354986246853796093969793010728647891416368670576021502613987653073424681493281323012457707282083380907413480452659901822333551180586717275985570177437360729121132421734779038541071636455737691607985917219360029912622285529966516633972573503349841022901902365514122231536329079812248934915701508424333673162275271125603428598314441303773992557289317508709517746467788753069468139009175646444029977466295826299967330694079440450072594791059633706739639951593081807608238354135399688662729276020671850456116762307329788447607901602994302581213855532845320427911235211289468912350145920727967307323409840700623630295573061020165055825067426416909217142511008060109055215405080616517757260898158714004505393163484454180524615640319901368331675852185836214075075676037213790754073582885298066889335652103573106452196061407213856291797263641189983509335882411646955044299226520213713520054569357621938185206748245504483394011013528004906078946231871133876141462517834428660295132376053608467147226723317367112574424116831770177879817346976432712977943289272079946756792875385785253464621624901328158309157852187500898820923381828822482882207339342453858730127064040667961616290015937011134656979900893142669297002157088683861494317116103196156370579017792042062850016705429666987813384256527328712866704432998322289575073867373392349737673102261201470937305484712345920860654821703795893187586381416935902600223822753294258068673646251131487849860134231347911615795624102596523421351153868802947195452651403083979794824004776252303729423116226472491470169753422336081626696608126243516971981629794925993568930964657854139182461568231387488883518825013149044766222247446121500615605645417671217004882901049561950471466840530265154675098249145421836950020288315105655248539384762851430901989203006049997107745289060328696054926350035748182565102894639959322154942867485751516815621355458616003321030937827838885274075075268076393563198329027919292415898187165233208368403288557511578173865246742663714579950669487833511485346465466781325371739953170912028813781036171129226448695741011424946146621587303556338765195462333740987640276865429979908519710957502087374966609056522419218343429554965287080104282759014561186775512107246949681285440072029082714494785189205307753060734538010334303938634635097616448062296200685057433669158210407130397592830295192971663982555745508767661484666923720519906409903971513541611846082285865867097092879190726855344623886972555848751468469993339680310192268969312029339407133640173857080929542394459166452679852024500279774092633708536085673156635333664845134990042271271307353481702835273833681515305092144894442585042074501626082824658919510161048799341808497763430453238359477623775092157735755439925918526149359201109092007838429733821699166778789653107340012297098577146431387364914087195299728151543736485672506632952242189698093664800715771732382029534219270433061596037472581206777239225194528597196756085417023973172246873225339645923460783492646533156240917787348133506136215006179929447383593345794407484197105870354229241200749290839837944584725956080343450465527415344455493341000313802271753099200181049494140367269576239343099601885887326186224724143491573039114196486142513591288007057449857195399623257592587022206129730566844959026922214367743098933600676015235617361843846933578013780419553292261378744639341658478364121587593873635907129040962175776112814268417606459422217178156222608848919053959157545559915027522203955535769589485540976488495847724063615374115894159254832781584325794206127299372670193338573676662731819959826974278549573902390964113901878947121411075383058147576275672427135658100518403314988153085932239712618988105322109058029814280253599239930161578299887003748867546735689976763311867332732404564692696410984765786647493372527309192102307000464780368719326851238929348606447315655079310168085988471796353225198714562062305114421523631058002557384772835938429767302427098603554347372704035590101310568355777424517892577411633870071323760832311235635311593702625809356618721378251646248939663546092479824270876061349045882579330174444234079983746345298370532105287181206333081538789271068026049039603565382991472139612738207099598306247215585997473202680104799033087622350858976881598371070649792415729894536557423051484710308262792081041036698499924950289153079135185815607443687881460222314812835659448271857254352398165608887143062836301863976584097555468171464418445937585066856272051569013387854698696081845112537867564531821660236355015597554169295572921897269439598385086755491760829885474965656272971833018258516779052444299568940179818179463576486754936028245746952556717430726825775947630364917258025035610567977877084491633598333290060874165173109216212276014427374086759046670232572520286727594370428735198653223383184940415823294835008215872320565371966530374330551943041210229262703127839544905080547222277141693981794473788438027840931037864830169880348108013592793007204036813119510734615005028847254064521392863999396560362111901099592066027142354582704880263190713344253237655506140146848831443847319223285137200500715411054869804271435395266612648882351306298611616351809221927935387559480616212322603901778716685909384050217654138784643262010156146690304827501766571117191155634747717772417459826331386676750279631679324892065019514460906452405054701772268898523161649553279847692672885639637080484021825880605657043924430978676907921990633914022424064986277727669371562491500073702191345891159340461383793444623913392993699751351931916341246484327528222996409926647085994721311454782199123961630794511204235568454028892851968885861087610934246851764986985975928053599320909328245567029631396999988723216739701324873782998478355248124317448599946330240855813383350250133268165062391208329873091889524349421166309338605414438867194753137939335433539305166798896819395563918813921660561856911977114728622119870662432304069966061704798734427323233024602717224572571279912315366979299756507862046314491839837903981428072163161081424592831903232308856099272069426129602739532582719414533435664532368944479059402476294262832944604992012749585999236207901550875303391443357939630984436771413769870165637179835789781874158643822703968342061089189408376287501185206830732112868108071886452041084933748956877008918862854830978051008094386184833603692962440123860972343613925069040825735888772006462479836872943088148946054399890904973690226263966958472691237370535607938603376870213640381282170722434174609767890037445804952774795720239288959942400966522179437117833691492635343710706819563444078623322681100731806984135943757836498240789709101327159897234425606668921894617088750509009638603021150327454125098613005850502439937868589479374591494083752313029303157524425674819907747960198497133049093811082748147092844214148677696864340817347748531234527685553950420650012286609651607782404653863809510131498558206408970436617890782555469108348229868946048959576106592572006008695299947334632094754277468228103396055497026541459718808258658799087956093749209142508443632310376556060493289950882633259385340926318334635167161789762510093155328191212552253594401869807406023847404833069201930918689932541726588666507038600654669999343558672456411154421097437584372932820854804387872893885692962309247298037276137494327540094326724368189029806978343248409405558370362894805346668030591886523769223352169252351675200542344967053391903898111241893993983901663140518283200528198010970408335902996623971725885602527631818272405314311513104254321847364043540273667721200283955413150501599279223860989272945196958931312170582435884048173734869168393106240354682907381377203193238383536588862874224690721109605403696858178654806668149496249797696546745275890997646354488991255668020217583987815418712659219731700656499431303898606481576757580958202737345587179913674982464712196278762677483756700961445209082749079894393985041851464769926065042630456322519706464930323005425945888365294892024619720169893915637827605083955775161212287859134864148322476779907277553694140293995105325766143158674718435344384683877778615972792542587820658363025289522225235044270066648753161044036764068023597781148386341275860742212568495222081768797040247379901503882356063595321863923940044217010506261421201185327011097239559173728817863459478935368007442039176750751175120472424697855023410439236250888284214204250094306025153891712711370244511272210922021409473362580998077107290896391486134146756193856577791030984809690423917901465540676166765625232956832610164995906591098699405520060074613015351180922051573439249019952147848589486315118582310927199995534397196975541610816631074574554303492494635493802929428686673031501257530688493741076051778647626846361042319313835979983374244122140236981145173847093700440511322393200916961714026139781060843229494014753500158359285253954016132868919022853981964724798926548197560251142099047013954465190341088562048641262681428601279059212846830614983157930200326482212888179913179355345612478982472047815625730396040858958309864041636508652999030902209454417962689294157630830135330766419473601638064108459945564095370908847187368392726697919757021088294707785090252601674844247516528641288534149306266106323333605014338324123052438614164221027078012731962229976169968310011894234386311499037873164944121044555892011258813937304088424029888030667798467395280450445786509970403715156279943072074615413005055001296207644359726818717889360799571169543725630008775333650294026951051220136563294375614195701902786761000632365851224463015715017814607710278312481144165649831782372564395775097082837780682424151286799954656115372355313399099190256156699297219213156713626931366967976067924148237524382395975785976638665818297858964932586252932104698851353048695609157324258738219692649976233500149431811583396086121888987386664455182145597143741678324444441887444588335911292910926521092111462819081820982257171434279624732256230298471198522264986992994716619875836027383418954367013994682288143199991927991223277261094707170537406197320785479256226310358860255469584390886878459203696682018508057741963209348159588373729516312471099664475399526630842143138700179470320527596826001148622084727299343725767066992280880138335559326588208237710176158103486023706371627422296854552696902076109794805941703149704576890576970985509557912399956015972251655796871782245621244672327691112397125468184728505952298467440483237364957558768432642056878955113091705406692358869505767314504265532478547011941680695165023980007465609914643407332694013002809930437870512455450788201510341870035182320426160063250812630449582169228007076608174608592639837287701231589693286466461748005675429588071835571679846954399896699379417698022451994126898026749653873327171505797881180812252301209469469937390641437547677080349362795854970472772874839143216670974343515458148081273565343171784383387603727616652098722752212522120303004786169958095176175349208410054214529876667324636380015223762156591702068228102405971191510175108552346558523142756125606778634703828887348088346544191624537025741702496034906710171446654868623678348743313829196854733612930822174647634788395390032583636671817770711938988295867429490870930143395612169357287394458200096829415214477486502795809653395666712301704120544778198214231499588326259418348940872592540296800622298592092601442146471967735552800707103718756661233801027194688006596791990908625218868546272710570143419620102924094001525405941090877513191768484820180318349883343128188694888284481116457126687274332093697898492068588400443875854691565777951189632878970745128823659592324558240636758677497710033214674703144860672884384305564469259633896653354906805899131579287000387334071271125415425397190729951469291776676055802160062596604704086671601859341460575299711326018237971177111259092103456150310059666845676581659337892383075760065268161458066520721737437690124112296793810752934101585193543620815482307362933998342335909865201195644592945180409782858654480257389831780504265816897542070232959678864152330213054452170393940396748066685624689229629889371666610772667128632286948210273433980674188308471094749006033274469741328312308996365905131488394646610204368752508933049264719126346689378788861316626732516001694573886116818364756535229838236258608909603829596234033637467564967270256705244484931483931888536449051977714342707804041569338466427757810066613864927076260933048941264393077225411422025489242691178155491515598498934277311973076182273265774072906814246204973050463252480769321963907973006265125035262069122052610766800767933247564028396198490880615197336268536664747642523039122386020981014335125558231884793661000905455876788258337866525067413199786237400502425890535862609416904843828755734647521579853552983473970337974240089135361459306057004312096380541775304731395377258050856561138009927596180422263026527012014404530779018184761740852152184510632630142214184358864902917263325144719640011141775878184336590950511253012902511460040893060512765198752130517857426491806853798846166014788119183873995406922622727046274004311211164207122890660744593198566958232658849737038426782762024560741202666885269463242609039223747189968336086800004524362337456090717376997733397916681862794529915052407733988459396884403417356664782239669984618801441533466068596113043101015173921328145662198724091288375572619868630238013766982265129965056440488888064475001565437732131584350410150253632951298940311409068260191686769646875731613230809744767689754219249566311724866327902937479205592398781229537226901586190087653547725040538743639386059474501576458348001274741249075036907064712458756173350575228645770414278303714741608525126346450270129591881679206892031867955898387307394260433382730385574979508830248904562026308674334080205992670136390981340266973869502284046330119029437491403231507693793279101644886417446266061196959313033249900297920341206234543032306944117098494898781083391018154136419312326662432803537762956895793022855135803849677034688224599291885931920846215191479665954107337408391749182658538722349300866999332124920023577503913467085787426464752037831373083377807198216218023845439982782492287685966021939403525184261259347058062603933526781474353860948756017177337898176581726711237772814703707341649906391054731195513762742547383687146193961634505453459329266423105527575710298727668617091210539195237439644596028723492256474396016622674867641791556636839438280102597755403734263692240972791047642260151060919318526580708100911604100197705452782716455893196542237007271490880027891376849949970982239820127618294498654166359446441952629214668547684921491801836337305459799936552929309480877044008854467443681117189542127115175075044960908992514844242959530086877737425792787070808499480969887041390890592491719423904720876457145114801911681084697365301933556826959322591243903272045285087704684602058103179362880642522661429281366578106840497133401514275726054361951324690901458830428601161789814204257328637474455275414393579217682158221187859811683741391797400959238928559621791284622314741528132126591931620523623120187665078664047022426324689321044652923576664960439328313107039466701968858945459538561636939498715311070956010584315103698410744333236730527497503837365089873242986312041954326589979348313737103041978731860752980765925222163632348409617156780361562772255706452928351742771859755323463775922774984030324081574217036664073152000332836555300826309422813593018419710608253612718537008434764073787315406760485095799384116172913477892813775931813340297434873627103676847487672955347099771809354125253971653034713988994257267109253792080582847538111021357350544840994132751719648685135365178471105512289579276199778613497015485981343382886948583552099644006031444880395445314296153960409970500637214373943934143135046976459113095051602717034124742006092373487895436546611887565488590190779947131291930314760484975513007326906761809532795418131924231421206119629637392534578603832013585788093129347980163163308673643086160345380248166660068746975951573922806971811259417472670654287981006335215801047482518440285430816791168786871879786620836602868086228053225113313882001382247981458909901383891731021051890957678296470729328436865011423629895030538867007191143073202122137028093530300553745732837015872967489344435798682737770788901132213002048842990197815368919966007571703923329313559589659196280173219443578445645226055183176745743349033739149782643001453864558072499276252900904705931192586772714444097558774476562242540380662444676714595220247914162777153588293677718287114284864933107653051181607837853497973924427557705581066939111734761316077099378761667286749212557552935529974257981683282941339699932562676110875031645165891428512923319792838309611596636699837051132639945278264529379782505486051961072997943917990259533148243378488215439633201255501285305588858447419020474599390224877780363753296824023241452089978053556633671212339704834318595287253269378614415295223675336020193015602565988607047662780601659821281478282564158772739929095001224367262444359790726469082828686721642402061400790382478920491619386190731971748037449537511781970243646426097324078570924522944854011574701609451937366465495775697536697826860818614837474790775995532114469646866620404597730602689135296312531097308521367824742944803656723954749803981305931768926684237374397553478052149196710414186297481535027076131755695014354091293595699848552205427226512645903487317799624399996898999680011345679586219490182247875750421598323121768217667048718435657077091103299583126999149878808562927218939410677985847045294803148261207871298046268314878281208280383393435432975921859770030479620296679967814865298582650261655777497504672271480697329682060860285953224720414031590324227888023877071926521048635908176104680178366262010584757284596654230901631594172743633156693446096062109320928626333951191359300021555809705673193500785478905563192812411075786796555006381766905231659489011253115295401422246838765828861494989545301139056587540419832750028529943891448766664965641794483323729157516757071290110767765383715586415927207378515046032710630923693918376059018500257854760029619001850913642534338818308683835547063377849679480774068917821162014003165468836586266838442663263808952733303944804064607303066064452546191095740070636607072297560888566188061254893685360769956137668302139421600850546962397149921578387480622943562080183548201556517343066528093756771865001331304537468265845403243481317148883460554224683260320322180456197953829264121246827170872532613711483087106381941731943781033312940252455633211316148112050480697955778919845446738553009688903040103006537650095035984645190897831746673830239329993715242059797472276863095616767258142323621137667551212898186292715600977382056264761088029839437176099079788111505839824172646466457657289140616554326851975104914178427030525855331556984392268198646624589086785732017239821842517471456026655060162516176209787888659987031641760377902242485664671055314112455439603609941216690885227180414990392872038871222493130762113341942666518397745770416305966452957778902796252903221972781301550824278757855976715119081208594311702673630737898259263716184509124883532087705557425328812514895957689211201945003318846167170062973939889649324634436639432407704061596642052837612389572394408571333499250899665993084100986980979044676588211803177894280490551179255603799312937275030346689616955813440952531423004502864384992187644848269789835631265018480880423134927380425949920066660311214787565262871147617606548495206667862886554952040113492069675950172705981445596785248338814747057931031592775527891886053969602817615638135105814691179382472292412258274767696192573620518599822778567337823241334229725084773211774058126986883587199378947641256563053788082698832836773365201035636027486688721241085442184797195806728189545792978531493102664377223752454861257835352561401369749392705826624612949598643252337417719395962354451420136359329317470008498794714590923021237540078189983138744286155813825930452300891629314549138863843615689341445316527137934369636162010707540957463913866723880966071413972280047380148068929306542117289321350888020278058926399193299789676132418379971171160439120536588026127208669811497005713527915318076607610914272993399618261210979147611534200352591322069875070023047103337917247575076289651556335774525559793383917463081986091241041238858174216200628036209707250567653781923094008226744411452636357847890985078905224575472418022349806308719004738024409054990471940544268952474404139798664943873235538713523365639298385561899867453649941808135276590458923188175745054764547891578355936034134521261270623135459505547920876322337700404189592025093408360251348340993753525575113653695312673812888188398673955315458151126641402261002363575856769372657138973329520853241958032245721608434636554994598693536932169707969477781812188846737638644493379711091648543663528371752639926579358932904501714295337584202465020842803542269806862203660178812885454247456394047069316953307750017213221089205361151258682321098260921756085442749649070261042147977293849889600101309083854697058677782094268900562550700205379361498229362190337670680680747804779494077848633202558316776209829881568923196874744981826484996922697576520131699210047814248122311393631775396512898535043913174614220614617001658342689630947629549104155792476601742633371214188962416401224688723430955435241834077240791336811979488754438504276194159899631058690672930159537531084463025934231810893384818901021467625285420920114044261819256730844462663226381380426401409191652165815142131806126639788359956685789476279411689560799129203840301303127336786018461754345935914751064055903878904905580504705002139857921004845281967434506086946749361538069161461327679302739172936443314221090033851999456893336720269597738638008335731063675222311725975949357874843435862330048744133060406865731012530118415571693855068681412493610790850458165740122304088222285294690943400952046022176504175507109518799304180545811251142322479766140595676435625242260203785799549000791000689836019938075637121214021486316309375106922692147253418970057355651985534283130133646301539853451645246318756786234142665461129864117358521004675800939370921245846534971009808831877322436557729471108249803708037639852139163864883072684442484676163738200522116877630886027693106355209601342164526669272244487885960126574434406501826400578614463050989316663275336889380582585074542595894205400827855262382086984990176293986256590458658087730663503138533693981566688721771677852458509192819519623736533336979963589994199361281171625786575474509051147261242708515792986042268721325470129953818176882827926482124227002841467668911379822016020907940900761283853726369395653382962942398349958097841918053522019678736037693955502160812416356552005968613292400621850361924677517300362602977811024048836827105959761695915256816391117213516152388392172601488111763341073384563899704172471283617557997288712097124159483084522448312490771712779284758349539620692830385612284881729941441271441195686028753153015770001741879169137690650270384985376616185766585178497699131695444947442702679942104038053531064875605004277012964101776638622132025058894700288869598086131884670725215748899476854977030207839300736935786254077108694624943947604558736379223859275775544917708374964061340951287829030341714869975313718234765529178925726274395436334323738394958078545475591228170701625590610011162572335528622251218661408450177622496845934522413866661890628964135328140479424125448531763803051641146569642952597484066526759400316480788827042493534788741500398963702917575264595343516471398472214700438950297868715725535160939437311070840128942764104821157223776806891027171502218520798127885868432799987172949475658930431149360440716770327686442782357179242409843342753437208865796715363897442779450237033262989801387703359963635141125838677323564048327153879034920093492353491398860222018402734160312426200671914716460024042426574592333999774139839829565907514162524361675667548537221337336626070639903760492080172569478402257346078256480050827854101388215178585438264856906486559553366058983539846105739572641751194836491768765728662630249319932020324029163499165871994907205104720124499625418068049058647645578033170807564447630615860654036583253598771549072760242914929664750849467563833667541770622666314636721949099545908916053795917046117700193874072402177470489205670500432950685309661110195738528393957012058971322328910647327657505682878186222410829032622767117925459215439579071858129926897450627885498539441931140745242279320667052395231304464296420470850778592432947559461694958039117702712213956900182750923229715070313764787974256033891126874207344721654326695502249820895217775298149918023288195542279060648299077965814473112129708685308903479992232927627873186033681321512586335464622013526419762933960441502949170955688942087168309904083012985470804944180753565237821339661934292803661254229468340071660518202336678817279252615246063016544159332600360256604134084772402689963212321242271925187196028790286481845801485257603918175827113505395170046804401175473911024627566772563148328930356455262913124646370504055316125361215815637001656492497896623600523115537494424350745422445066652478287317932496415398948759798914507458806025231430627978713618485382447671273071700660844218200947845702977061144410217891772015106928709887009939186092478098980254014771500141325888558849277673324097921738664913255680920264245740593219827284970387081158931347662661784105576401456339783161711077329331127848103349959678451228895569954882803529305151398635429499358343134121340772002825678968334112342367302320582701124989840680602668879571850301008574634638066644508260306586741034506095810634681692297350456793331610842032848874672269168066327096491905698469800242750782884871843853504827821290918909841075634755031151610573700844050470109425818965536341526025845987963633036583746060382653457663585411973534394255562833642886975613194925709176436976535597029858847670106681197013248826844054653199083601649318859064544733781803719549375071265067309850009241806226935716047030492777172381535174374775425844053677476439611537121511844924958447635862393796074699232373599170242767158054724142011575022628532918108210402512128630404795758533127015941454224508647013344902385085755025006669379794462934993263853935792676713591614689539467714784323621293408996908543420482818419548229770118729598321545085376567617827755021304194515968369976293171258179839977348100842230493886088421809156773032254858587406557731361416936236420316900589611475386675550138741450760911210221359035511777636347606583139303534446262735038006578565099351973200763955423279941900145113101833950550992156821647938748106987657344224660670827280042671933779529219364075266911004076137466425817813719808454815566907447776040949743668810009134270233413484689393757079346005149145554144308422123464976084714516065508720992549843425828876447902797962852857964608106043140758591243687880433566771466371242806121145613031990355507167606203136610568167092908284207618050089585136064337747853870710810781530120272252512731868959598076960426608326609435253923671245055067881588941332785310211023858059882120290527983405829601826635924269524223538651631469970556806903907864742653464595673924325161915034499166889251260695779230759761354273272143231714182218022142276997834918678794491046766023255081909162397752196081818809057697205091896479663093343927211719622687512307652096868654524210572780864764835911717871057066496264769072929158231971889607418084484964735504393557824961127421577179794335523171852518972253811370503539836026335274119357008137827650482488290470557537696344797593566896538353161228908687060240012647659544738881657431276736410623261656242876344131079570894541876037141103768165366606877316737354242862430661197856320433671643721457424558400474013747133170140733458491452157286551648557305482669776738806759221025992639795196341268854541167659735654947361820653960911250220579956978496378718376959212041484425363868045558348846348602893727422045679872747364368753076541205065054100751652545237922498859242850337733047700620231238202747603307706274257214542637432649182951794342802011048749349617610139636096390658706333654688851701977828652181658469496828689189273522381771124327116045898867861895805987190078899441475363942161641108084227301054715070727968869831740476285798545182276024574898478956895171532029530150903149017093864018663346677085294298611461801245824423803019566581947130706392834380449406360936855476884938527009028073899422796526380104703403663247752508441954580674907091038057966084668141377374883073773421712498977597486301829172383875608193778877829311606792836070021814019539346457466518002566481622175409904095971068684364016828989567617567601726723896065493326805741822250689769463404523765070651553921459115467487423684724163528093737371959278977245986762810949736261556173884755087092660262875846861413906301497323488819621139673032720180526719544043318641470830978365397144490729869515916574729168325028493785110973534532540448609644766384698693632032820203211154000735192554383195319782480384079063975452910672866362367895044931952545329223681080549691514200000448145517540060510023665014409445395866181017354015325102714559432589426478370286764073764430196070345341532565699705770162811929113470287962844014602046295418619306942364518871217544121641083382915402803210799197498663238475344318693290384025469448533732148846807691621076961416610865943124974159705199933731056133807581041723900660422982691350511662839225141956925769399576946250332188730190728323756146855276374750142029855483599034896550087611825372145191828782082088566437469367568587258705387994835772500515939243666389317204134805578539373794553287602349716708910948029417283830040345256845561808242213014408188643598655541071176440893993609191027377317980856326191195189839823616614476764337327117588873274332802603111838971813181860118807651918458584344272308141474740200695471395423481936083780597733108402387452877365684321179453533829855490243453710053369066797338385995345891896612680891360400411110443765333144604548430206959306416076288009433083959194649865128461715067217091260217959259104254437364644109389452122384285397998403531183949435486959710184939654695480796968766922050593867906859362258529130920269669470530163987897746651539239075956036764576798976997989811880752937398549165098425192971015562570095198585424659667009512455781920222253291553989723136892399727085073152361167503684918281498323257641734635878178282907227953086921382318394550874621000303965586218944102239735848139008905722566228715779092368934468761048738377540061013996203615944957629483171365146398840931809171200123595867552038734000731730757259819787754018326084273578838915416127822496397049156924723126193824205388367424242076391883880227212163754548820859159846063892630879886760795734578589959628341397105825631762642421683715901203168493346208066523893716961949697073062717786503638103767873281842694525065483438761961218983808415325103074322449557027449834493073646227988119363992674863225078396476923353254904108047636251565517723728370896094830768488596178986803335047419754976300317117274325492405341637996926859118693839523017237697942168498879839141952305174805411531025964520613164605235626811520955611401379503920775319251050158807312356352857767876424279833580773839992457455622912505383568390758943282676661503212160024870276769291208065620132274546208206592746814629041837603441528979803954424094330082454185902889977337969693835589639523882843760058826657293087825936682908897466096581605628805367549457571762354145206871658364153151863223705325652625500415053774147833155592700829832170441220515240056618821212364766347673439249263884914978794312020736998555528584122883349324031014101503076477107999509638679111315080441183573472056247319803899080113231201824239255923788220751481257842564151865834144270703155302158350919510613607591195466425121420142118414071216589197554823252904303847143433853897820341522006098382414722631121155782625972709352645455498883588246366657279999467361526498872807791334265229913940499101484758216854627458846792603829342004331460839897563990850050727295069769380221053677989161677398038665145654905756525337373573768908931488436353540639308918541814211853037082313397784477527785698837725571170191899431968540968918879135891744320299983212620373798899703080212463967945393468581492798835320410734294823187463657400163741050028965571146918187169064577739761373582248193191172297739423124030155041218271193539700729483978216656313508627527810190169784348832366272822780066639740017445072810730169300470445767656914713288831211240554741231797470215106392963502074246854844457097754773866884013839189179963540767029895560390311528888603169225169795543745626807489382443079265298693735914438058447743165911759790183282243490870902609796139440364855092485051479525128474080046441494939801150526718954346682583970258941022763139831696465102577196746418837024031851435306874796159424450503838527102723813697943006957788674892422632524442144248311419869889948449162005420459883669117980054979619412857072971871604312694179980142742516137745106555498096304277064310927630161817822266681981300934301646200722042256464815698900243474397286633198718636280055551180460324432474869457731968808928898963304196521467641631277059626316347913112848508642672590376460942920215533847643774897407934222991255214976869637658641414761974798051018185952321980803988871090752014911568755143758936177732954750718781947887649292490789961589607004080951324467284360168486873955287749070569327285794852433649889029541118415393783610783862276432435865255666689335026048387574637836841444235728529223700037165963727562905671132253600571853386063695133889139202102795161861228912966789198514675729861486818273651914906929222377851953428935094312721164806549403398647951787304777178026443312327635092810499854318905434236921786073629961922196984328280136703907775219700352729929670944078292283316415841698110837667580962982833480595785011634549599713998369384558724623452873729731833851197645215378063765799029567015294057806583172837852483928331531431736326746599350354583073469782521328558097228038327836059444094873350731320328489397140750501002128391171663030923159503359591668263372691992153985334803978836966134770506216540263419296360026350737875230666009551954562272643222224691637354302747132753055277776095177938589666376705113575200829624799901132104049726007915366376323488830336601351014917889233347012466152629181803525733568549694959821206253318693648233262214696146950802361102278620954831007551985400132290732485319303207118292782167053294827753655765962580196608106260908271086552454896341856928346131218809062607787099379409972377124887578242416687814861567099415003486676405775934019583408780307042069426094728399915850363671296152612203068749614518175427325214731943079331844064630002713140100445427511418806843220210085041598677540565306554317886466513781525190513557212011135482699980742122652423101525683322260671952299139499986509279096575520168308081254915282591839700324890209171759718500417038815444548546301701511004420074555160130806075882785224211077182037212839785733294868468136907164265986036566855414703500037799053314979581807312134585533771186579543609971663609373513386056811197564364403895620711231391082883562132415344527811029867543924381374635595817319529841492924866912991055534333936498674361744537888108226553912205338926337036459366886863609208166488158857350133718874168382004260431340502537006128243934000403910587288684596573432665306878328095828484364657357242189823922374543774794401144926067432140856721738829254123428847344669390136005237597332080173686535874625930047466347984355955504901415027817107209356687705977528260661022033733717435943156825464336362140664491884050232124690974436594421974206252088213655213538435357428772934662093616012798358510792020141032081447469066174987900272656332927320810249446420297672838264666548195492423912729689977645549503168802183042742486362271942220842298602230359250847675138867457763988185719758489601230955142208306033335884473341136422638371410497074074442869453577536908628292207181201120616735172374200112384799539084601488223240998296294867682995358327090826785028761774968396799010612989532713687819490796463220074672348252454686241043019044015265409249314200693295698193098422684664425315158377200372690933203003339943356681880595841598748168123914873513507469538754416904703055372409797786791238403517998242194054156165347523916787237628968967212928788353156578297527416685338729404367660098318861463360882442805581037223755968808885696123689703186891297158440539763146000453096756157376083093161123606855104905490061159589266579722042902424694387991863999278626811212671748867137700166967457455408625615010534244004216038400751434653426604534416057348521151913011222613879897682749002184176655733235765268313788185804111178391090996244058085347410716170505557731131700794721386031575596752642567537330610163066987723980513789388997857570199292616590738293613755676638256794678740538709235971645805306681090819955557475028185453981556532311153927058816638714917821666935794840638939374650798449060714351440441984836981262457947592345760596473519713946510606049098689385666418704757922965114573641947822601011105353389489362822060161490818411444356599732509085496428158294324030560991261494653780236526097331852486864910184568870450020725594948672371596994899789056002768691836391122334541548072072402083645790110750824592499074506889882201581078421949850404871158871040689383033537180537335392778617743961376683496548896769703594998546699186911913169588591848290004956888683698603983112188068961459924972581191360788627174501992723651214034391982658565858151585728438970040391274644595836982871997533317528910469040077689829722490809007998444649911000106549321809554733728860646271593492735051589556088917821101822361664482173925809964046167018820297760776909221330959490361004659150180167331936999858907846594434769315937607720758239480254741708579905213227443635337260753770491378066355963771360079145115104398720159373618792918356742779159042726416604229821951279061761000355649872522005950281850475535540063468075615909835223204052023129604360817741480698416686416045973545122806669222973102063459360095937249311102831937702813907901421450121016261208377467620751449119404834942574191139291173359498941830117435836327562343799157888595283800327896164455731207426017834151759701981416013337321638549745122233462572392076823837533498805578081878750669872949286791872676455253514228214952703858352429041111648277065448632503151930024148720116413085501187773292837069281408973424808464197354031420458329109835082538573214444480761709760994601501903873681233824295759200927364564681469286551489598799619990634250187536994654722189051960942846006120408490362852884797268053996851126699695402355153856941907833010482638117229390420231124958176803811255251449806178449861859576470875426661908252906390037386388502791757275746983598117370883260442634799050820910578162575688369371808165490073163724035636403355394046107064638117419915256204900337995162926772444852773741760516934328257407353307819562910934274449594000434391411052399443706294495929209661121299708715988547902732136584912597196721147545964140414121890886640522486457888007413298101970376953270315237462375576486919711952600721933127410636351475574302051879777966142838573396329151561447588476010750694645252900950376095186335246616788582522735359245849072913674233651471087546698741017803875961815970109577016593522675830393803706669452900334678830494668177591447555461613276403976745475917488311164304956914032359887042308107420204804381705350923714015519306852437861443839672864327996133316459584620668968321647141740998158589800427568059205962366248470470254405945160603197911812128030139177332014443524055059318906187251033281141087329990187744761537012517450481968682689455947441780440367234011260974525266029696776485476872670035090817928424171946912717079226438241540189095982090328649497160567053094727460704088812853813806309860510311980314308142463897842378851752501399416252615783973668300754715010529402773985512890002612977464483058146137184802129209087966411389200262045197679235036670557127259354493158242527582195244965080381464868409617493117424780318162396429769182667580285636156700063081835067816902484482776835235430431721316022799182868763951307229260415776415212766016396540310042785997536977213421786035396769869450064714035906344628765481479384237595656819257455105863463097967484703570546175989631647431801215904898684015607315787958780707099631218880584569691868459162311179690563742231938803212818583487387544691981158052670747279174982301377994710345315774777237046510749426508507497101290684755530909775073265686825474529606786580102929744032273290105222371482353539558598258406150433470405953032279434488040579725327608215772815690635558783950162405005184380932927742080546624240633244921288240639442285225241379702952908391680436170977438128497365020483266941965042034972889597088866368541689452575008294459318061654995680198217895611255780810712555570894526673293339649806330642348301482450898317353183205935171535309249612336929566921622237061133468304917731766319247021320163448301598310780361635637961439884443447843353654728221579870216535508595170542014482691746027317253711883375397098773194541994225161999993301421705411910146405062548138312146977976202983984535730223924551180621793925511771353349321965035857698940380689791261428502745210464848750990016202406726227006473512933533367156341605893551132064133140989117833388560084743138421654308918047192043753809345472651780684231873287521381681603038871286758502104212647764249355468959515847517892717816781291615267314887919941356606377454125725969089584545699542963802161429979611128255561006540419489089994026645669269236110847505319795073461563709660405856466588392527469025433619533421953519129320985437641031769145365203737474793644208876643943000263610288143630265101382595168590402398901858551552417882722964968791708273034571376039241467964677155405001597635533706274712996689705434597594616215878167117182240700080232801021334207280140114273087724765967931143761477436407410060134369847709533509322765595501863689708160740527988997022932869775475382694326615122182444286298527468260476819259115178275510698450075578806664240670431063929343389194924743828958264309787912885212024702540307995008634522329509858013603991935639919057539436826936555605718561089280147993881196588127045057294102300438841659321334192703464096194614622655905721365168353835787366590677005225620107359618807800848206845995682088085398327206002865705996946355657987549916623966795635853259542586189075722787270792798872437518196916611810518261935430827635388768351510092781380241142615566651363235808843958385064821425699377134556293681552619613711815571380665777295382485172356572493548431911911192007272519152429675257467401447429782457706814046809136384367567267052972704507529487080008916928134916385250419184782068765043977098114574489492857067697057064999252313254372967007088316218089371357530124948352008376043890684698046184605835685022204329114169274442245298521994536592089906850698534772923342643486611161996323076523863404232789008013948125711708869656160142892828183681069976507973937272659793261672824319550262658007839585652386110642642983060476866970708851456065905437665304628869787429475908199839287273133256704925730666886316108820710649118177550873319216879179573536857151322840193365179283341966019707096763058516852328713502467955713909491311036474162757796112312033441247510093319267402172244498391506396845298688021567550157310984440026306605589363918462627291029955511721239647629568621791006933202930251486802155523262076777676104958050525793038750843016428611019904603599212485048206383832904291834745558151787596920224510220672786637924685079451490289107883689256275154594237438068226967287791388512786208509571529264815744968951765567353833149261474610021353426700638150774091721967890947319121152231592810817298731426718213589507752013285318373396164253082993684588566538128995583615011165175304151735022844957976856797021582947889838757923109925032615097530022989949813478003748171298480456850248457397852177150654546190838310346481253921809308753273440028243692618777484766598367971416115962524329625593149446776800872962875762823123196837788621315688743917781081563595208382244362962190833843183680763919348570807380873110093965424310688971595194693491797128227144495211429851637041693423804871703318700956001810713552186278444960174873768155426775077497170423546136279782960207637477932341264717296412100386239211483337348229135351282179301843960014642299029726891262754049775114778255631910315722666281943259448168786576988904259919089244160496937177630449497963453172861246560825230744912243477915631302449744017210003806774875417636053469427100051746239483662013001610289268393920415248757299608212306151689906847203315706547469565864371337211776602937340416625289321592195838254055210680644037548640324242798027503898916689508066311396908967895311716760477532773410083880051236288512631717425940309098870851771244797431427570764973693129075924021928507074803546627350677880369520905626332327108567066338713405508112513155415785568310941808632516021800355534413740435409379802067954525919693498230132456903703856261541637200469313709724295792803485235439883852052093399164559447883303444587851015203942759745421954841927662250023556183645190413428684725643622540955113255135774318121232949050283317518680740526919724491988909875925279358326497252021406326281266738174268460662295829582819721730361899238347346090491448905256066572864139951334244111303393722712821803687889054511033166221659195749791401197806175582915964948017884236907317701533191814286845208441719881694279018493468026468931081194606057700336273299235269903530576379374092687795121324137570157794774955743470809048890008816262924813539576272903676408797204899915168079106111782910137680859536526687714709087890068499887226610903088240651128182473383722186410865455358264135464686201910555605492201990272055520174005634880314583713626990374004667810397390131085572588354468154895050300987507130399544520194590533528125907766184621396789457565068419408320900700720395114846771186676120454924129554639043970949794532368739447345002728369159391600632412630056824137368201641951514387973809201822876373481407840347572024248745106700462406744076585976280168099137660539237691813116973436439020115963928975567897809067960713382583366207419825358430266817443673545595293225442543642639646434529017675188904689748808749339281577788844402088067452477021708235144135646554736783609068226414993517054114945482327125017994099714213359668558323594492302630216979323026898645084528345045228879725099564606582444347865189980562952096343747456438739716398915607286992360085069550626788243386600220571024241342807147797804148969558254204584155001407686407861637308589514074224375794070913036941004581373027042388821556979523581804432255840780564074090680066046217423050936481611614142588007840606217282095388669194146946986956706653997248347948068814961033597931362065933481269731950003503468030655811402601396341549142747223759260456951951907462457516464826411539338515880056775108189640110077364151309216142791169703133265480706757000163651577146807379050530333586087342821830048533022750529511084932525164642173663789398351775402441264342871811357728690575703398315184929368104728112133755449074160575195996484958000201530578475634985006442936193237019206914876707932369780220736772121682345804186379447885745715837742420008994186833276212724900322302747655540282966526120343077606009487418528920397118071156245601689958919575269184036097346797074093820692663344064651972338301523456042523737930925479540003820852514839059595419917710888480272427611304392168834376769726456419039043974877816593700554049867938237646578000760286838567920864486420341992164558493567080465484057094427491366969750816640039842640452920433884023527920136678014877796279016921883586841520058822464094130628777119671402475057677611764715643416432197264329206505205877141192259678882297843683804637361692228922647692263579488123916341983445909775018294146186061968946543566894285954456925524626197930674849552819001440011463719311358417129701152266949714140795831182694566346238279373039199364471566683649424235831049916903437606087710213669264322351499720555887899245085575169699226808030832453088835565144115961290034579806076055699213995653977101229268851360454534270598799974580705606462254325242047550119678908912921633020300922294800090396456731490429360845995825981158713577371777297729382149239807220282177639174315724488140748503483982072725486936417309230805173270986387622407374506709677750802357619553775601508059304917878886540964324273401618024245960229352583507525760244297540093940209343492756463805857681341030362834933744550031555857561886597826789485686382595965263990113835204762095276300398427779904509138834247109714493438359848386413519498860211202817926407547124666225157207409344762224727969821165588305154200130723320351739528233632687707243634887587987691045431011263362031381444961148079396078301157695171661778699276263818618909542788167724867207675153591359063474909627572439126130130284615746139303926810769173484098670138336683659858213688707555622667386631367008038640673974304946917023485719631185740580618923012676608838371716219346630438004468587784894019416331140834857440788570735970674488896575431136083816201187667760382868947245818159423460739974496435391178481400730717346912469511344801941712914743752269412795000170005531310200277569239580249942128780170344271707010243965525781400029440414321190505928568303029894955119728620622847618198441663293714494272647658245831645034942891213962943563999357354337567618774034797380579039567630030941974611368789645736226624802377611317627238373283634101004234841360939624703790551225996752622005465571674484508835313004637043731833968848759805458200702385572027466109692488104610185905179355304593501206030343724654822720529107976524545328094044420078061910034531228294844266105615621296694700547774637446835484182527963123028237556123111299887838458910175241732530920097817491002311932257634520828519345522402827156710331134598092192464085026494518753969776601123360263064397343529240452922218860376288441286468144955725429318781450655739085517507532403240064727795790746913074299023927330746558857691021198622328538668018190601721381343326090650707440367352286744212616410518365307357094039050885575513338099323526218082620874879696600039336488968675491786135493269932561019593755801969097881201093283959133430764092660692102803352181221196520679959017090606004956743584047852182554361393533150518578162900024932028509921641889264616458584992164456482402157162933742362404017039616215359008640044713514693747522604605443424801266285000870335991780395413411329527313592627689393344297624486505060242575869327350810227869731302023138034595325806380295759436812124768611413663852290598773265378907280992734398741021268086511548801610660587872780675779914559330225722217128998217055810237379371954128176586861897830828893380313529387857940412609865807086015155811715017681889040340284263955357285794495332672320021821418355783476807495952605319136361128016010208718764075529384471968235061974297813573614050497529697261362322745166514960264104956955370800981196413442359719425728864314851219193653206000653659025443360079950199816962768012713702686882734043907626211060352500250182916375625962044830839770994356619260587093122687681502747965339541623990941823370123560566311473347397366467676115228034953697675407272571691089570663200524725399902949114677833852401565220124096071753844580472250116138324777389696788902006920666322218250306897411954903937663109047928784143282166512143982636611706471637594994212287713123036486079773244866609802419954426097068585728948332622440198985232987812421209802043644789520036806653994979095339449384712847241309555056947149795386274737911074423736940339638860325993589517118180049469887881213872356912394649029138300423276434762054367816894610213286536090866068444022282705241899203712294211339490510126084165756664379273803884566802153717160860623186107020713700231035358981394023769238440842727395327592502894037708792732695515350509857186753341229769014792373062276077442985245136975404482933989734547775952662670683557266032026245654776924323875223441187189075083106162126799780476287345658989402447417493962477616665303059105170076708472292392442537402096038970333414910251740709366871956954614492256220261191106783118178260730210609100724794068361652993802885535346073806962886231228861681958033401692249693020419427916159239156557060656243271848019603162392699093861125080233811749548983723788236400572337191045655138844133345552972164563045123388490513540311190576366041117399990684819130031465160245251200089407031435260313829706348836525070763222570750927738776368954503490186402654828041977693054763265605089412994700885702125900977593504262759584531196206846631923427215548941365337283965141309287970762339426704214952837571763611672667544724823664292692922290888045177960050109542493093081294531319548227540513385068126599144182202913817416237984852200103661380931329405157958400400792351483205665531437754390873246243007282448929964717832857792808597481309460887866207620145786226656055018691154854940765917984397371096174791435202902842379324340287474708958725647668288582934102818129607756735957151557481383978698039202222635406491220547308447814270403191853412018243440776368810725519440287070067367958536399428478136054824603514282052918200920121487256276741366756537101257297162526585542851438107232123903203072778213658354944230913592888797292578728695545223571432360096434680748089905607965968829690670593405687130676034640701023768089234014308257789633329976719057113296463675507083777949421615970650082827760480948703535025104939010837839573614006387539963870912146233523475327438373366772063522761354215322368266323715894517012062856427082294182000904162451220607042479015174258286086412802268047875331246379372371803447058409574484254006882563228809161034018414661841100692087381711386059060896637583520433815017660155930115906372568153775108858866093868135113482538401997826601252761694206399876760806104548079747358163925690008696344169027314039136781250888903764985425611201644376140268297448528339856415956234819790093936401455959427920371252031682402463755855262636576569955007257572793062499859659444271957309899409289022476850846051691386229568175496102291768327469987845442573530308567424991166607901939418897928954680289908125829542174373358400106732362536870396619773241163724197917460060318755638537103643147125355352395810427518682980063028221154337542079431409427808318804204844092026389656905714766122885473098656166075634968462902669732415592613407900822241159302739311550917330009067101861243341010658298180832117573424466709040406997130188453294704972844851819230433973335019992821224397127605627779889735530990526557662140623885971687225486780586324051361790010332952318584617128055056978548918032681926246636781416302252799218572791945052718866437137068440193373649914835376252889009100589104075752813123805877963120298942128437733080602275452285824137732627613902832879907907204314924904140673476925781935754086496030205843785849486090585679152502271102347086328896525896511045843736580016500654923581877271154708729837911168500529816080654726599885839511350070517584990170115999797929549929194944640862349241039369896456554184900867357570147580328747544755847974952698510449836523474864925235688269825065831047693128623034067925993288953469051170690870199881731446461429043355003660604728711098165365562450363503076973518066914339169127963647388664669127611353573664543287824888830514966989310058544733227732352639146268245274222582765607200390685060399999167224752351922980702780801954337975067931882121811389179528713673790096116512362454737443050415849799256413414752724818137651064725507957398951400683846262620552700050348650846569727955222985355280909974627054449187030357153503337565181343710470715050961727234416453910100772061853290304074854554269246026600455842614987763603431271278010901353422810172506288641479587001392793477798733879966461656880653155480298923933028627713925618911374156898973709063047302913135001177000423365364027136495398296058554430574490411662442041449742372160907619894399056926523197691851857612173644254583703199029851459523667694611489856625942196377840548318978932394824003907014796717696513325649822622967406704747514048836954459131762461397596109571672767799751422671458889098111194528957467739665218037993537347040764075314670916825981152397582801817032925986034363281185437939401591389351990924856705272823269843788060575677566651907293388779053127607370952961173302116035410608329571498695395377723832265886311633237203301791866725328244138633215438488461846448274744093645042763260838432141309182000427966815759140681216487300113070690033889865300355111913265720177417001009561305524267430033553706197765038154939622021542105485006480561550195928154271082318550208724737549013124351474262630700356189517751663067037603946557254725558840411245161958195678399151036959706111514333751221476670787120988555561431719812920766102840582849063753851470853102053840720685807095501135192523683518302399561934525068425699765600718798676670295639120626754676883925721535657251498147200455676982740873263961222598181816919086272274226531216933359953764552315682757442191209871687809936816110051391398266186166381638541718686332280509800044723409925579872080431047788912078964698085950506074591683753708802087980596262610759843419017823276813615024214441232308825642004673550080667633682915238755033234913600592525565181708280927430242868546461553942770058055790842278163384235706730057798042010976782058498226705561494489405966410000097920380667323200077635667979756433488980131902812239226701844244957781895066196510718495740202101058948591837565006154073567278020550884565716450108226392096495636753486989079861012620167366785344319354696542887973590322433153768379199115836875063586112835596903129204480070068362933588514945111053294802427698900515998727031899518932045896801751118244370411255396178166757924033264219767437683848195454075212195061867082772370316769606639408395369891193943308212724552520185494056906490421600333973680139610938169441563884007666464023522232626312562575159233719440921384119927615204796736091830545589204591085086208574927906361504127000510392249914291702206137594655356329080802592606588351797076187817197555577786726277371671315698251276824218628871573495075262125732060947452287450471876419178177420392153270234469907520383816814787009496426836468600904139451677424578687068333762290132622567164655891818341976466095010290738207809331933402152124065617753974398193451915149069012651287092840965636142376932976181634965052113284335327544858163131940992626047039458556989496920594992599151439126647679907550645944449543636524030457350968061874982794782512443971269943874741680222571235821327998707833384512532185968726645222796294015236352431888163415013174984312614729936379516157497091053841251260226773565063765648862805096212525821472916393189801336036722819929632526204558215441673193985020880537121544563914772959989452467213564970115214523241948341306589602151991335010818902104199748467882748681514318374853590005310939291948272834117649491659177069552125566807540783397159313011561196934551067493395494585188767793104691149571814278592339738960330004514259816843553449467949111283014119393007597058883895995543708968843760623575641721399524743161618046360409855157634974731300271826765982806012799794782616493725569092595728674555086270646642962331912273770605929597906072588379899675468058066992669596317414986732497388290305055526099467518907892673740867858965165750846832661716472972929487327417878728868477422746667100757028035819087686952359641377889936628497745890760421927508054391744588831773254682456431167343032208520135462153244125431555596137793159893215003975508141893114505578052915636898795072854701942278273856391362764434912571540301308723342837879443691489688012895285662802412016209112045373099903098367196847502675623360840118460714327406678252688751108529249483807126347645417255345722918855886456796506992380284686839210584730219832999893143349781220937343573611781318267513119540955263992908613393259564385965555111357092368854016160919612017223116555193292532978859458613776107717174378082182645689057605548132589911574818850249639682816832253957075634405487589799810645397258340615912595620310689149371573683246278139074331485575483021328916834255786111046374067084537922335144597235866832457465085682564940913460370252938590244952629371721212091454130385643860948942010487135540981415501206826105125526954554744897248362194297458214573620241636228171290641773757079738302442287634912292042540591864924885993556704919505214362616966809691164645197087420751814911410549873083015889759160097872568111357347182764814394854568961901435929206077543912000539921880944871983834752997749596052588063740833761590535993936505569494388964624741388891387837447060529737408279758936475435626099432976185230896222434797485496376045072931394643862200195018253343066103242294928626489157866099163306030245945602359970244195850623704039561300198577033352531830145176089918798468417676151045324852977833144061439917369776087158466280817127198582147633930054858292385995519018141175577996782743661770304887007007872685664567624675765268627783630153258015678803998722898629810037872686828811093458016542947319025037920199805528365060109494000048848897212948154948888608120408458380558843306584606293941341072930194306773143730964897340613900785483153069788002570397982666201029624898611195201951910243676195047797798344930546433403589132454218267139566917728059823108622047740514675459929896345925863432845242237574391382601502522212386087936555289290244498817078896175185313020273503088373857099569139200105912986959527221920802106214387543983868429553942638860755169107463790707152993655896269100701603681540511322735306647344700321478389859001141951376063167655716235043755364757494475302146770802939490403770862781972661160726996661379066061444949921761458740186829332569007156603793870421768985687010970531634098762519841876458035349255387206070957730425212310677738388767135458569974335738163135905606935423917651863020868611890207072044412102795263173907942703069911212754261870643780548247084161106081717087494062046476903632809573495491490462388002828053208932436928583427224062517525327195674047866134567369798301814567142161916842486986820157626080479052592507973739320050812763714038717602131274617842867120639853175181451135295349045096494898825278340312503461420189384045430141527899064911012441957565570398859557308703196180126669867552219168556966009702394220053432814903149359118957242122763796157571678296024459294125548347894728946454329883261790893480961689920630510677492278920019046443108189291596092132935749916894201291630953657427068271454398649120000883077042625002361128005722603003181044837113633450063183054090231903806554591502289228408286436232160311720002478163389951780011364113133655479194247502603336201518232053877879328938204877599826299201101293509393161165751791387595512247034469629717962258843954465536040103393870126852696627221600186460694336113648605445412485586877230461602046333237364945158094633430834185974480552620620972732578168240790320755983274190104084848845225217645997173010827927251666169190916065869012216666405050657896388260505041146203538417524481924583486636209182747029598556366348921029991516183087779715723120340365907599715550439871786271734910308457894523335506070513581789484300323885571731614829194623756681889150728933401020667089123918975616260624734814998204859758174956237323396560220920191245245804319622549186593726318982111296660822413723564486875138459818523524159055021696990325604682024843430068542904332950629894598469600400167183412449041809260577155427961666388633524432735716723735249363112591552395752415609488217636062732876744064915393245105713478785796695046036539694552116306978596166504939734595065941584706349498633644542207348824473049195871866381254282989288096249443006785759621017991941563360977780432007883472663221978337871650662950942555920747667655932348860288839573467374818097631393689587784328300483685811504314265959983929795410853115749706684696184653302853065619400083318268946984079190124351826776983425541273424061925974800832522384710826363692433540521617689064191460148588961201088260259313947003108123434878972091321535103775494392580515839977010962267713380062572192140957887929523700046392851238377719391777725202720245011803402090649986098820417872458357883642775699814247270026287665767097189420779758691005133723867870998001993457667141759262364702926041018540422578928887729818272904153571289921872260975890947725776445730570221374196875630112490884282246141539518389291899423694520715465310609021782778877421912778770239581288236403443045873784066791757000295945637971065737728288805522723354626117855563374475821443173186192992180492999240669750301739869604257585764036372045711656339568780060973245719905244379691250774090820892087145501699378495468846643807863071011147104747801629462880140845314409263238832738365347177495914233914074447351274089463249598092905800796593007548345797588462637287923245945484516025323760776693969942604314512741860107495543894833211513618494938790315404387660578889440036390600925966080756975687510184940782183595821650103371218798808905481303212851754461421117883506728951608644980441932645678229418630243013912516711219455736870583111208052056016327402701599044921537264080774529942403181899894616362401296075622929058561410541845931800439185525221727807187974301159626208519527468619130265869493406184810037462106622347891927216739365433001717454373885885323994344351505802927189346583372607422234663759887235010448172283844411463860824120883105717243234849785705958587371633614097687373806888466869965825309399402176872346496520019354356568322814453598230118393758463474590424448643735635508637410837206271752056198056077571972090994436926290882866527432861777127760433487882324948594257931450084833173786035816796078851354234764336543853770323397495108052405170882881298452161938473504131709984257204862159716432964165741500189613512154084796882582771641886552378465791731000375190559565800704371584126489368641741565944860130961144050601858992316041181552405132712119490194107537977917080500711767391816780148789203002310728870810203434151560518536495209412778942033750172052564547115546329089758872150014317542555275623178849036922337011183572789346362951165381604173440658793076218410485000051927354029935427860317700492629478358581688031701766111827029438853000673720866512543620296216628638449249742582064072720955826043220379731614281008265880929983890097133149168678995661525547738606847859140425631249443086049919639238383014491956313968506153305531178018312888191949281703078649200637665876786886406992172983137553642756159797646723693958115756053286201888237678479199809977704499892145936687412181308746500518402591045505297119663188520713413933373575008442189303809436911158913046968865172924771571793488434288606892045280757438476008926659609794755307363969634216584103599523336248668068183340241053140651088722320075824421139287310847238623059935625709066431136997557826313252370099815446210619883517710974390587344052030480710655400573094145759069088522519946565323793631610330087746342910506397147448248912922457975214089164991457590547961403639632029567502345552185923343294267926522124766727537660151825947283081564420934028930526366089269657815998284263085063783991394229453258334705575563697728297960722709328007946317990771171061883112214184361151531976963619191234687795711134942953966022312921486545867883431113414233068536104874737086797216628512114684958938049614580106994627872455324033566502241934892062591765827587706572492410834678963584538470433711351430930211879933062234476797037427206605135793273943384091898753548880003187541469004968905140158870801973739738030439473434786085980970035972418718317599106081293429335158348009232957521860393085385119781170697053241273159199867972977508012411171629513107885177157257286681786606648989808737194380261735353587703948047857436248717010113364644719247024310870095211997963999833122206502466705416379142824974844483973792080913042667928724900230856023094156650797266598910324686142473020268319599815165601186892555348215478456448501834204754146308170181143473747953160751797976489374462251136323060429189297163168648461284951046200659867247375765230190044884372562566068941487378775743590338888846626526046474349495460447827547017634920021098137172156183866658384572030225341411325571780990890507483496283351568461939569252225522282776396943086901054242591071855660779983217335641219796514104787643478011674534799283793140198364855038126146365707529610774673048707926713095121537829488923328223953442819158771275186576461993329074405925736310852090313322529796583534037499933274738150533061988786209587218949494402858060758572174263557753733571935376616179296136551212398365153714743324435344148684802460309089163499657168755353205434935055306350276830386403563806483009672593575192632032167629875293436460637847574670997834015824485563977826145887226650984390553481328017151918865755800842235603493197210292861141205490349956950171801573182489706468216532395231589247622431891417855246121558581628162948033144523148649985916844042470722614447874565958582202369564764095113630356622571106366549280409738437267039412415574307937244386007028232618335826825112893110210590381558167473401138140378883381965797520926516147141375795659142867663620371764415002324003086685956826421883856912502903968838802359571043778693333105428589691197639084856875579819550160427221510715927132283778518502228179335758561858299512718782308099933248263348078722917749620072956709000238455172426832310157315046622137875037342554210074386960550708136458514745158547174966400716081468439723207791432088846235055576157624694226745194047224592004883363936007236254411387416864181206117885576133634727244592940304369380433594567303208543045578563084827818728645577232443569326573009512212906734293723832250983914178800189360816416392998755831882685104350226905236449566958836632699069087620409199809262457967267835358901785442513728873567464160100478266862041003224602181791469905845214952490006792754572317693333736425460403063722455306503460064609775463199108066030709675010429503396295164510823769976623394931959927637009416129220243454877746536549116746260646585678968532946907498807592580304691663153304414492955118115486599030211482087381223173381888033788409416909253620543332977654957754816056993296976041501934567444975134436762051019364684609858137738584356437211308738786975293275505328101121907328777960815746471473790030386218362936516476489031561424988808277912280153793865514150960229665290717412958644411449300946198775299216694779650275121850765536589206410949334761297780742998330023855355182145479051192244390472789960794234228553261724402617375600370160477317379357669489876283177230784984237939655665379882864409469548486722923623611042397210965000598241041355486367389143237517104816089227941545660032971374460981842656103925619575036652848498178621539806297967589828686482890795658924198372462601238813544678451769832012155510466333470481383329516367999647704559091576388700593157008374100190406447161651701325430867526576559621722379616625021877739101554641545243348608049311870500392196222922444188838902778012604675763083092202225966890902617319488203898303540402236776083405435652894355435574558402583555826787665474162296777830340864184867055045351519840356128628256187202854453941014395693216067561405171552216596976322255023980591440590631214488212656064536195601569211470596207811777364939440756515977649527738471410348658378224531745853517007853970101563574693049341183957816849516346679903683194466564833064045519375402717358361692125776932119629055257848383371969681536929441893781656982135173845808439481589110994974750193955499889489697082488540822471066732554582039208458132355939498448462628918067213948762352722877019606956984480545137202518663258769954720085077057022319260207794575663367006068698944527853689343461606987523684822846004677422631144000612232721342194830255205213319783828062240504269358837007690208918123907694428078720910179822074313843413821136239299030511176329588792474563814861705090970776684622705804510923453687243834129344365072805449267698553881359161421760363881352252683655246666316338638540599389907242588001841916169561871344970652633277443999668559339331860043906458158420646806679988130437471266057937193474437557394980737404692006551900538505254876465019568952900627534627823712360445724407975871392424607114763618284816421914231755922209563697939309388816335066874671512991262157466756008528927007666543442470404607137663680060650060590479606904013035395089893205234036859981852135978792289911184215384217294799579096133291958655742566081204657489076058030761208437917365829734905691908436057037251211806142868784251710481529150368114338590945625296735365493425736232670245572813935721596692078132160984897311902956774377349757975826626192321224652912811536337126366911577631499111662953451869462323452653608602866533671464023738868408443911733799983626015292365921627514983431028092457337535908815096064708842562117380114054339043217775858839770866373762610196210409384887952496384638024781257051473882030210031159682407343263238197227986654771027851766717379804347658298714679783111264680647947149057715659962703311710860399546767226131957172215540784581769698197539178784817347089942553737949601417798616501117872901774068707665972588233059337049654545498911412661001818370270975095804866766816315064937945553949901799105580800089483307057244226881220860010210825533604718701697458640455823501490186085876531675610452184239412247397978777852943576668976854463989215838993790209714492099116079891812404489260873101693169741954743773495085708001426874792596468599256357408851693307654630457324637300696927950908743108470048384489509071032784706283039906766976784099680153614330356728115848260556370489533752929445419026491548952738062263088026004803038186758768296815210109809154307855537586166190542146104707960179348974614317515863663025255557483192969274134045380130449586656337278132680183861193564294313138240812761903471608569905265168768821093973787234093867904661572030670925165174643301145867418316414117007602768345586253568209080997751188485061729387174684014522990940327042749190831975467314219232769936228844336388403747774913456314270756985129196102437824378014931540961610298032356338614593840258737411184773960659648691827706538898544104967292326355686539612824080456710651492372858823599138424498733271643640435776407979049419566353486048287346572277114579511275550393784653592288667087171600935150919348303602687063444379937746925975919517405528809474373125683445472799746743052950794909647365639048224409659540369494046637343611873318964116040618283611822254350688566772530290604887081488650583692517650967907771505088332004124263456606940486127076482922630315676589033397129809851455638642347259091235817733959288453764773568354278814161779260108383166057398943153069375350857937043138835542548055629441075940642348132445466966314994815829476534730891443476090557534985616155075967001261744985194447004442603816653557894077017040571495008840295186797128662559305041906684131331329014917250783696372820577512160525453524152126058208031811806948022389552336478828538605977629760628875398127174527861900537813477103985576960591659569814235032539786940958720858616465102562793701425680959253086763627866470547541127403855718403893942773425530768531304439517525350369413550697591411165275120152585129692870796270384363850513258388763315410187715248817046602529574048457655506081754884739190571018205583843183257755429318979054510725772196816974924743213611019909708537906871744941100880513786122191173359427216663870710043304662633447039220710771671137301648592014873250627441882156854655764570016517879824510226440085747258848811081238936960975101041676887501809060996609540034020778133606482296924648375143080825607509603813818345243880371494476378384303235561014740668706013732627051681170735112035085166107265087857284348697288734203182439720161067193739501527128935114492509033106099088879943202016363025696295124831120505354848574013588650228892707147091079377564899820434657901884728071366954948884765665198261389854605477871979570355237883446249243454766925123399572016381086827331905207623902376683018629537163030422905738753318674062669933268120925311624533296209068853322004212899431229676606879488787745151786767820502338702028609770864210316454186291932321342780914866415858002060473859944751210573348721294642946605450338253662328291975539705444806392064530419346651886414715577429663068504725597399632625974742960396642390104890607551369103511775532180863236210675741632935536023316688541449362927358585847291366516527637657852922196879389025938131107351478092590551633176669663008876087381563681628385332231849674565100751097893853887297591264918808315086986368845896699212882865467296814662873748578996643260651543317948934945758707683785271864652225557716418947041095978604441476943659756400427763548197695067881761955760196563799872230264951330817159821380343777748425521386928224460550249252838806107904562070707979615675891085227881192943838111304734586595614714648261906904782978055422026542675366979395334566332253014830625629097014958790831385093509566243720717426958756245017586800308184656447021226953652860136842585768509095862790063665887234663716554923007522707852600295197327059127158155386676317943836522686196538391688275397149304638158947363581808048297581476382845528016843445233323957297942096138593347998595924839436263992374176757479934246124725856235293859380835004927962502423196211076749484609839934947722081720726284664235241698320623361695774443952004731433439982339507707813421850042703207978547101949307349340393177588036752955604304876137934661808623826880405062135581662100111888260666429892889284909653143442662472602054146927600215062215715313165856791502365934423738497641642669114877540344682126570426462082828793241749048123048332979519389002182536576900397948554569133203976459353190696286041544143886132243193929886557184010491129987390430692032132787753187760191050653969589220780046345700355816923779657302714526622569998751410925261474724752720858229111830262676773001881471371013640196099730020749867805115449058847890770060227567231949295163565579329019949477252023627728089953273713546235599290089625965762024279661423896743160903916232141977992750202190527839077159610862101183890674037052152489455101205791324645207553623446604622850641329569561914466953783850033295376968609519530936002259177548770088167604332436706054603359148113974869639506835901361191293833413655682182613841375087921148082232058555204536312112440722224056333883681331627320640694874827135917335154564955892766966319089801691252563236508380379772037811641296999373766244292775658192497998830272715618880090389068784457594961974860429013313324633768461987107364538545300302393841446353622970794128125476630802193259756231268109151882156969721512101920316229166876538264668550031678047970041463584545951429791749564934503407298921910645307456190814837195259681320142448837784849270337093217662372838185765427089137566437333959604919726164600824346296775904563305615340065229316293912360392992807839292084522354142307529237687988893741364675952470511042319686333561813730017156511193068927393724740141069213414235594652750635308872581113620374864465405701708461493824757777216988567004793728491891413021611353769748914949785649828369223891463167417672157427416901795148810291079634490893027984550783980563208652190083602581048223840857101403308854714338086705302067651785927838018419186968384441638433434407405308964410843550024741448994817579133281386348428313606266005815420388797898604501954880657624741009891324911328747212904122790818046945159883926012951277378218055642427260499072052044234831653358437545145807296221979347286756722563666732076508144338119714214101025524095158197663317527544290340689500728475461943803418361820413213066224698854944438688866685203377487987269151488190213598422503893394954017680725192646834745457497578433543475762157286856732052213752643504158133329561076355574189351994177224596251427678110718111450598795778582432671787294664784512230382774665756797424280873958255147562931037584705928438414794889816349772319256742428182180199901862576475069256045289400273626945753487172505375544571267529538064871617428144649488489866666235208517318705323905661487704237464501504585502807437162483655370369278308178633419230040467091040488670182823772279299053198702662380140197795881781845836473854470738813414624683833213333137037856672430647323243495470419705794225587131740428074397037197867012799229666710632148599975625420641588457888186283210542647406511372122122475251834066298260172233430817198441135319567075467382148461575190530256466030131174094497505354086758781963281726333073416320015559369608937726914072887714761517423518349181702117071597884250761185593722111143496846296392525793514745787303299694321104993404558949209411929645408961351192845807454144939805241390962664988070779899210283103190339550530476463590691398175632364810411543740790316942746225417231046346333305302061029280172598112577841256580407160341864747001790556289510911091629685975191716254800628851754342401080535057505842089929911973018970658302056373772047677641594182453336014792632655231599530020750260874046167272884278446957225749562089980732232901231896500168423064873571436443346451764256064473211775140797629195847606514283899453814559156789470246190742571688948903765371491346081711089798199184738761373248702872269487530547577848619016264310132503717446881388752758199613734215679734793987614506211988127683718888825093187665502886392065957782681283061386048093475454169594054290949298968206948675304362523505331326523445187447755971765262293890855856338550728411995625392878457761894275814780676744397259705810021632959856372228626399782426814207847585709377766844703209189856882261343774126943096158421370014771236770611044088810216503920706846937782166057761900667161267267868408337922513517506240962790152479109658747977198944431995782910985761785767410654180661557718639616579698281091556555825391422598220581255695284435732220726113225919871535154306278949586774541070690851023317849879591417650820067605108844319512886746093984176484746186378882588794184597019990250954651905905312920843035004581054652093252983532427105105079328132417011775502243041713704633958836352225637717712297973611660903813952138248275656038565627885276800585777303886823556529433011668275747213711872777648375117173603236806512689256987952010201263017076478574787308108814909108875260004580744515922380172344070694088249076076481900782215387391583109738575620455771159860715245474375569819494551187945922933901188223856588302881353786422790668198128278230273271014746204636645460559673322482781048477418777712531562802092647128151073551082672884677399306522546218315059420905701656560130615988170906650015352669419146574577392278842849082850172350702330870230575045398248771914190478162091632603637110655930786295205842651266383970145204679873685300384635212117693689082300236401495593229769734954786398005030838808821037201658552352541149297911162182232968350876671032396657012664864034679172594003331561178317396026200382722381061188137401025538672579748706304183532467838209720554184278703877314738081610591146630155407326339329556847920202645470275981462857838224615301360311157890309926657806341209849866204254332775825101631950553940081559701352039181737936069601355624550552708088769711815324354573380827596588011487774257767560641738304479843023685588077178111326952858301704009208158523642793454938777586133276180552807518094975081945164395489722214107308842539280347038726986952478451470130566290976683263468058017611541897366799252580463210844134280651752652895937727711052459593361492925852726127537495053737498643940141129062982223874727975266230717850552116290457659064908546602733155310765999777280857504463546546269037738558205185928280704499279915621399584104001342736255565555719742583004696757219290981222068375081685933147412427990879222373105245571093733647694531787606491872996817660581433024643940735194958713097261932033158564731640311922053718020580084755902825482947277526806985675754354882985968794046061907494670115005694581984375144602044231168571228046482532867196586280792046273447301148854943924620312939605876642954654604602045860512545063313866367859400346032429715644380502907500240025752018485346939346104041560051815960948889547025471670433243541268773376974604387128058934751794025079179052384149718968798582483042500288856339140154625408234646136221598034407463188472732756307345126804835179228370150619449868255726020398782289790832683785947783357939664727289173766459751600456434043144694938016944339042273394893779571704116807888335873202091593022748645781388152294652128314086583075400027821132018044023402306994327702998498130360323131664730072272236235434477129832814515157374801657008463370844035655670941351176383587201803437992040410150790453290111801837244381125830487392023203308304882742389253157672212716522835582642270177487067854863198337204536141920960439335062606136618583565580247560141347556834373359923818465648757281923713453969379384810054778658970806489132364813822201787158808378296582798384207405708608839534483328535117800375633960971198103019838339359911996396460364213113841252136835918347861832321954882786121915294734610634816747193698035268803462654112473407370594030269029305371376837565189661441437544218596553782549789715756251450876179466347076396395012384898467540929175830650399883614590073903189224001951844921414641273356275366936192805652204534042442639441896548096206057572366101500793670256631901543719987316967000875970557656243548926117180598695099429793449707360928983854218636437016446535323985722316873382842750425906076609004150731750499593567867808865952587673247914835907100812034561782463655143528684651857427722982495782420213476259877067568515588346251867604891455632771761238870500652009781755475849730117379600923021374387744785813550969050100213974944660117682348365246968385956351859049412640508134599081506388617410445369948857987747865246154198372335226369445433232453617726993549496530921890703326634824584470735675434072637384481369408548567292302456214690700540549636927325759249407962039449893012175640056236838030441523417245483401704815682533005222011402834093105107949565629385317267120817014023055309618038001995856695966570779700960980738093674893842444868024550839018799933803257399119524059217351746419302358237917822751303809286974819271475969783559230030381925228439036032227913617336524597698465290807125251274938618932807010626253212378557317563899491842013681463233844378780150343059835203388015681240606783838270751599900812263945767479130624973764455590106787356379328151613482789333271799808023041333685840874753531898061873451304956836758897732659426493162115282086410324746553374655454356899329473525604044564850894422751552954409835764279957556788078355823414578113659491006203543414128388174693244540429639172189657487926432554940327677776695206687526142440026785819640306222695518092817550172197249025645224548389004702437452104601121625282466047570036696841874846586154819577154462161301017056372026191696273884944460190627202375930544712118481714476163170505461886614533937892627789562793818267146237495644258550704030289262484265704469711501658787388698998244883369209978512911491809243266385325575029579521157476387946052058559474670640956472734182481604718571857540027908291088293274861257260863380527186437858607841926326768063045228379452905524598058931755584320226900608483749718087820655401341916110375541996858881585669397846046606847468228561773807234165158975514764129188568176755009924186591206136022987346245111585084887714945433768800462789494254600391485613997330802475656359038133520286870228033986279136422712504125473102285751742383683915450410637165797574403421889807226490282828937249235032061544055812257302400147889708580979572181464016752385585844900254890887284986027210317489587435465981213655597614864004944490436324427163550584525588015668724400347796513916009860401876159853278265375232945057214985233730331512333439710796274458956128460884156838923311635200817604946115533044653448016236488085691082131734337062742321525234066490676280603135935597262658438416607168673796832225991544026462146048673116860210784659598839246737447429303723310637042578544594922648366547361617689724249926005371889330354779460845701683438620159397929081080207482975055240350970749922900691085754151126782855272432038700314239233193751518977821908101744897521403827569779376031786299975605113087494038680635940191981011153615323814222180758596703978116690702170475420249877147000308505445533060930988363597683743969907304344206610610496648013798269909078132077068859762398194452593801877789941469926900856058692106380803608390429946266058441909605844624621624851993657332477448087427314991050139115636718917139498634805507020358029015879889316219794436306143350675571893645087750337961447211719889759837472334166547535603874474623431827303283637747987053150631829373173587092328726057906943248428831429200903772110062973830843644122230824714901199646086679412371660240380128427439503730937834316678350875130205239106619970066211928307210231596871998039614667915424603428459892940018647889596751707526793760939359757215659318480832934993702806827834499365448594670682698293540983435264158614365086092241842268222015548355285561444073568995532618638250253808681521099812736552468633376837870494135906669785578559704355691373722937202724270134800808796964120837206338129799669049890296182032296579940285289618389512223503313104028310217553041531604486851898585135596847545387579068569026497707479686896893784955057546405629161417815092149746753046599488261636664100560794470123564056018532678342181795863236552791786030864805373950019010899062722184356876212789361563025769840014830445339070233675297755370223351632639115964724825702185106845810573210321733756726510811785639085972027383576003116279103421871269520168722897296209338372988867006427791310583876732126850850293106895789621810573223325199436314439085573294169633378765497697192469907482601338274819461104784817511457295657972544246016389943628134526592395269012514904448647035440799749844923330592857737239531239144577458275863912070398083860252395269376210066137680763624374371733126876933405966772892719925701509845351579201048680842639201301001219487170530713341887676818879378387477083163570913493868385061672121336666068740462098774893056995520906651659266014518059925386543595682757789096467919377281342653636271292335309559102533632478889991672485481778710346427519124174234128292619223207518623441375971810115862907089770072291582661518029589219607872980556306139981726291664620113772654053456140814007572655825910886924282189911034328683889152832009403152769268828341960637515786054961021858635231288494212373228664496069732249900947393634494045951666523702626866126320294276425736997916743156680227590595896968234114841092763251380367767242675533365537948382171906786045885055623737425440309638844551874756879822164973680529281582330878601432118997782297735439029943232834993376083532381368467954470744158384982612004095808566498301953363740058630579680791269258954083375365625380598030023402498309680393143392735324907193919968204241290946325652234717808173801642974201167531238604896846407613960697297484632242906914320820294625295198099726690198744282557622927978873404424129272647048397186093381414048356646016551202315883606693417845021652087742721506841733502960317680347731625023139588888154865858062312346888621713387735580048444346783542246198876940152314745814165367253397406095968208578212683406788906502115465162293638938530146204328362668117410928897848651523067296283147867525230252771699402145041663108450282812709368973015029976387382587843582120086820949437421868177340528133658686314055227850647492537367189387908808690304257255029870994271039756979022247358828532975213450910423420554782933105773811247285790279579947074652313025879227190625193848829764757569575553358236581156971810302186575361678382724542691700825974429732643761104714971378942068422011350875978635514256590038814738770721224775492175393813265642655977193550285274474654392288444079957492420686501962990509363304137499103646736518716952145388629884144778535456477503306052794043610341069156031098404324166843715734627533255618708024860039132392282878295197191640992251259833513140047038454629591975756867814576749252865568057877493880491606466529568267092008848422223644001463046013624841308449078573326274109754991923681041838967336027630081204541443423190266719693548221129002065596597429943207910980510925700041166521542523736961167309947722937983569120486725698119419304036274022185261994630885148594938511476090786437772366192027371758886403123431775609224655715094154201853452450380556134356400492158665373019915645777854631436030543666429634103902330615268543023684763701366213910058015160778486580973383421027693669391753257379840701482422474859554213223591004561358341686547574313950346114955026947692152614483491974368710760342127015948657185975934604799310426737453762543510348372569900437260190457404107781178184358399018236981536145730253124166173024626032720666497695111398809999051757734247786289148888994556587508460464772618184711079144557576953338370274905530849328486474921776185679775279786152605341520117003305682213044180832764663356237795848279891155024778455192654484098442832551845509616595001877088586126442280402269896978786342198353444977735236555135221605822489963705384276745630382266789625886855794008470230174931208006316907511100515059638421347619213413511794910510605743168854933509679732364998338547845031312791806477149941837794754574469591543393519198162734147826893786636803723019960476889983368167297308645537479864761720650393699628760589325284935979683137268841639152647583878566572027419620757069195676054021622570984092687741383823031974645922939317841346676117648215052202428462412908242295643716359478822201050591864056026948917400518018397947144662662417550550666208500447226239190599969331061896863515579553093549198796768789881008855248412891338463554633274769570472354839167252365464677485486095090970710811301162534408920320928627828871506883773979425124509360186581687873898043713392974137684288322236245971242022181622583528616359438448383731087125491964437990130801819827394899653349355845984481017761035436303722641835213719822770114715034455755018740869025918995896964673103878946808051572088412024265155009018286152595785190756451856467775553182152483569316846638599485332340583241163949162507862959417674090030102859569529764165794326721256588166896908025135547703926787372025041102284415231893507767193427008256412683468017274661774643676131720121887878175414786409276280786124462043445293529345517280374123220131993202930369435919167462288458439111092706731958629340998115336853438339342218804144964467374145981366648186571686248391835345386317463681667202895520796044104629856746262609134234257630038512564376620481875294765317505170364584096751649436314872675167028327410585603004177690410964045588572254006670589525007157931760086193360871359546596251644021746573274418256066351581757920066064411890683601987828610466575770117834913846365968254236213472697320012345580312601911039445217348468182758398158097095487505343197984688505931111589244229038857650806061861651805301870905318640442621317496857432461420818034764800344538549524307204073071083083517451168848307117564948385919215313590317147837480501026160286588964278061393910140750310632869579307528227644169097641887885890467445892209253969351705180721207599865618912908409889866064982396344191311586853376700154711773882754013278406047964264556384486654368342846670674584147808805833300665746972487872376890417881238265685759005776038624226828473683924807461834266133817322633891324029460386425786152879447321809552878790286868289483497462203005558177734519047930069211838699594347547312453380099468452317293648365556844396043023103032324238531377619667392505005896330783799486815874684402329192608213205558051012611121612808827907770625323918188308752429576761929606413948307598555193302543896263137848641055262349468794729803823138848284016238310025187303590223479629957333627776617007921182954271451976447096882312265037163691494769820153193236081446649775382099702215070018684024933420336547091883267181731757570632933416489249154389014109295940461091375337493946441360416206755759188577821534483601049236048300280863775996864140470030041377890415254788281210501219970287489220263474380074533892763492721346886090712949208167846229347086506956817613957642656988627631569784098425071814838244599981111364064701428756070219316052180360309174977482425546411663728918296097780079951408767437954247648100513238224821473482182352178755182142447427082941686179037964600991192299094942072019269437028179997374502926547762788643287019221392810103800842029003428474245431591481008526419853489317998863572502123396580093844530213840537842905177619929612391145415842863491913014549962573145668499890712710858523124512590089834845727342676021969626954262717897285232321740554756461735185383425198537979826285219743445953453530004796907504218812023387697976052146606619580318053437589164417461155370755205245083120461923259130009627949924708000230006824260223496426956953059992043182153277149951039792438825759175239433643441997426757468462184093193743640741719729444203885682670874533066034111553331214959474286542682704512068718467302810243799566665293805975336608504917328380699899784466413520695556818326376202815977495105952063612953021553094732825040876914701243052810050361583175116202051820957543304038718950413566669521998152556803032574313020319351752656753278408954455514822869525724196732959867489232580045621245426259424817082623030105232063998294082896887931981512692574824317990989167342913170867498609439604252612409381414335109942248555699772711151359762233308745088580170180213639415705980593751047938078492456997199502772821821367043436004409633007735173800638007769114465877553859539541424547192943470814129479005858017443282705260455370593541850760307300862194537764840893825398641932691239975318519002314994753583005903146595976705753084332521536570661273559362838604115933357882780064684451730496221342383930652389111124702864175020838113128556669121586831287288910217323327994962866796336412119299274387951983092180900192751848844840020515010788891392640946345780548218901784565365466717571934603391719112786252264997994077078568002626832042979254438872552712077965688164332093177077375357270994941873660151790799638488965696128065592668831012864640288429459189849766720051624267550401638337117812850969257236716014641407923410428164887004367497109222195384783994474824616029167815487341967532852167399279443013403572263050400911553896471342714309506491288990119066395314850033556406766954531818449835168497154258362486725538925633190488753646470234276353302161010970159888091301635701095074719033948386520252081884264308931084383790212004117316727929379742947235443838682737409164631050429607091021635518943390338038339275469534444650150316067722639179164515963992491220351104098019636239458684663613306797599622155096250496349637327393010578415142177529199164839295648430193392784028109991718088789125499553138528108995997367845349054473235895800098730647148677315656230895868858373609493210289280515097517094126787151408929239694485227723858028307831350227822219434521444048860740312024236262594156367656142891015801835689797132287768868122659358963836789618031776451517625094756731130720622849755601996582325473133138692378613913616912649635071354801198274451272243842690815412269729788610181957277918610880261440875362924883085111039046304835983327716003549957000867675841725643527992008905356790223742486445107490580232612286081102937453422977171057928601452291885147697785718858597561865969029728866321008894922077055092582083482503261932888564987101796002804037990888519339667442932761335044959070398262131199571746360094575098630485790543284072954601799076549440788393917445933069901554809633974884579807614763301693383583954282021698071036255425715139277932384539769308870054691317133258616271939230480352418285908940265557215114756193735988782476547130092859965905043871753793358510051095007199847895014198113465314263084847511590691662699020978959191237193245279323879122323543051749911186208354811194947106156450523258145619305700212953197073211419050109808985931401067523449686951923053121129802912341003067742915368438063646097089448264463340819955385495130762962180621475117433608855743734428483466533884543861157653280317520455354005476494060470512197519695917603001707003108619282246711725162290046520083563285365748316229085709421961104341545447482522421116745214754411650207891655555446176827656894879912915172177241975627345489822943256627861528901204579296778524661871491446417446142839044054936334187094114920856236299744005750843689756030834280805498639873398597039524850636424373661718540114419420997413056228787257824373211991223350705344558859226757739138823889705635584859805171942697521121266688484975713851483877767595356676141209494037113709395565668021723655042457276198743016148624460763070967119189529324131788635838623513434314210744019505607686442609747229795520962360715655720729177694257871498360072046578658051641242175011164821843117969902743620892188591469027270132781751101910212578112651436194147300109134964345810593274397620369003363747663332948966619417110684892046709011498125590595697301551258648800607585152284070800883630832411346161054034033875534363278815764321365417541037000646293280445600205996373540706690898405588529320391191467159381896178963037764972837451003659261034039041427420602081511595824527546346248873644390815644705246184829026044444964943320331286211205058554056430265107705526939792114190683109221336091734263764785297669530808434504145045053035364440454746614738608825259219322106887900458327971682916870022883458585155221316868930689100856878462368936863760091553443159549134502344956098886607793637997734974319199862997845203758490321651582800528777736179436167734036974104931333481707938515764698614531760285614460944594006563240083511221208225327824183436041055984337836841898693623230131014541873962987135466737126128448864811598313311825056989403616065108781033939153176805303109998001521395066853328128686654819004919716933610134978796895300399780241338100756195715333354042936550361082219698389586434000603260090220660100651963855309049986527713008689827974679930486353605562278098993952949501440548801507458766949771082684728708056428976567146471699673296371435566876976102526231584821087328120223891090612521199423976043717074598650541346338641483947253599991149986369099412994503202673440450143835450920964285195581347643833600047044466924690488142805930445222615141736393685081767764009748738639881778955836564792516376645220096746248689329460649403648567414856216901164843347439581247370511658516034926928787223657932248724773252000657504714814637608185460113143153417874684295683263780372866727071225523451816858697849906787710360290512078130466554750274655797439147923304223352787013759919739004692439999637913387819868620672711224772092534076461475148894597266298269715826289394919055358008995330197459793220794518153712561599328099379867646822198322642405303025892597176272752431318892281554547466845798347530842333466940515418083346535299481618992086402999905610251593655939991782334622642941710586450235342975845771476143643284823252500499654890149086818851495786477671256078350977992427400193671163479272583870384332305666769222912748044944495381162292815152618353572153669110889251406143463989679677304001626130279105187887937843891246859068829289356125159416664687808112779121900504056100200761961967929219245290233994433098416164907381209208723342284419478951535573978601596610047541104324376876679857211426255808146934601248536683579294978757813117572078091195311000827756529302775693735881093855809773082807325587428179731241122315252197124302130331155374853362929186732491894415836340420544431734764858912515454549619465735738724791161294347353942643131800918488380718003730831563657059028945043616360720856294682051923497019898087926599650294579116439040743170275625350696447746985135429086596739797290345572749885171401540391927505631948911783784548526008758854266652986049827441998306369433035763555392731764293586671354485695379824695529890290876763457133007408112972946319298055173641259611867513514242143807395824030433253650680443695689754792009614612871663707836325247422955001559537959281174413544635385364516685484658883838629283075736897241815101074347199233385525468830481263811784026086018203670516043951992767264801481377631520671341018170531276991401609636295177527722508134316542235930547397084853520355182654741576324380561194573252975522946799149440121602645803280854823839829627686678206752365384638168441314016882543725414790092760587251379720196612572090706495071153838170244869662036306315708384652693652645631773108273669767713251854666579556817409932741331844505079330359411966806384230125631346877915672598263889509286333324642004377162818698246112452526677400622094002472527482522801091589214222475696811067215548722759988904925488028438071773014066016774289366025072479513854027892172136521119407540671727085687383999507184278296623352261652937573269609940456772901187246912233738411973663876109598516363878344974017479086932852858264874116624824559156514728992417363310162559453479018558929183372159903387884178357710981420391290187860955778758905470806404360128419259498010904830441861739439455334464186201540296805689290095483619220031809882448498319853760953236706106468161210969177317590258351130286806275465037535743181097220923100027581914073099022673246582360013852046811252292764281613201606480652693489599377959523688595256729047254278619873175548435124275554136272955336161471358260122434463376759855289494625383420612759042806631020432354423566304518654810680797522510208852429168428311950218742204862785822702589836794888082215160756858999472249635955379304191811179307916823721595025810835003625491105148950247032821727090382416705876561226851142698026292628387689876498047170913097073201671065848106033880335976389555227091018524272613938564375249008707090272361453966470779143256658633175858676133986925124837289438499227405149742340090296150278916973480850348510239381933828567447782850559725563685482005178217956561770437423122997983149285974078761057711189818179538788380689548738344927043260780856229928337576423622178085169979835625704024765518659134362773962885280081681640449522688170990050853945760080750754968991401942976444957343228201649203514724999283813700395758232578813592394245955658893238209829896938305006990129150275764096741302203336476066151572327638065321319638987876787987331622989023077309582145147320819801264953609764442474984134186426152285591396750713696500616863494660135935397247367769752350128433594046505050712259460191551842638298899990789971682290972655122069605585625709881145786506981488446375886673947432377931773845638822516922570448872091168234237918359523132855637862997587331928627601856607462492848071804536651311462463654271811275089173420709139019593433193230470582550754525069921490485535994650083682301841770958231220029368288732687225563920803770199899333139225569566600456592749363859192703560681645752385965447484528674779817560444482252252172689159861503554347525614501601430121060046585391055676833678972325739823657986258221158944517569439758170540462808566635083211470846773916097189390876133598616481168843777051031691567562324959757277385872616939305722717061362995827250200972468663254868936055533449019533376147100494168083865264110733574774338681841775829965208474975516107553416111390326306912381961837719821165478303973672683432381985423819785782083319098833638804022081747204009832725093889867029818483534815847163199075913320747761399141440841677643724931988129261315775769093225613448629354302333044386890227714573738485502411071690113328831874750552373427681375528302003644145074966479129150495212229740236631605162716233800506044446674614941952683186869752056717483395579466707747570516790039782986338195536935264710363995052129936744118507265891666574177976619235238542817590626621341586407179190197508472916051066151686761997842727813260325562176963437636173755919626944584646468988743371036125868371632209210716738413301756055230848376151731128815682766927015025913364814357977664816600586875800670835940582157641408537727548734870161811843633685243944740851566319697654067837171159483263712031886887814183261670555587125680190141753932559362604426570503778778028376286912449109747869941646108089580396597991373447936474995464375609838289686736060872327317206126201040773304239954000103404431921390248408946872228129241081137108429458972724307605241666355179087962829861601126906932460255985748888293043936761606243010208786829956255377176257195518942066375673799242943024317045959360925684071948714912739874238575472863089242220511477040305255518283344325864235240494712345303104133093474979426931629575358888197122620604799354828232110330045020928921209481116493248819338812080782681566750762883390085151691471916644318904621267438474339467036485551388197799888174287245155595032586417104438620907652693544164212728521801755078501544919040164950016785682562491868139703569455813425486789928223732676079039921378875706853485300087935754548738725341296952273955941674704905811654084404480464792511992161472052555262667259251348275965544507425778379959361424565033522630061194846479047243071417236993145061824321110893663167556393108414858432043954056521091106989234270695839457213149735835284814550414482472421162983830036902977868493187415195964159731714361227395192356213964853840544939841918942334760054592934506433562036593541345912014384492869940864068568341478398024956157593232523568665902974026733462565403705088789233155589039650735115855269964334083198339485915875416318500430402588004870073283515656424601129900615588907750248528665512571819650741950960093140836964052070746027748182220411915894601081889904739520865945354861435976457901598954802235200296479239714718860282560877993095609725191597907061670194929133773031694866210452760870427539675202922399080807056221840791980753967530926932780538611508911709875323505974934732975428884037202212474289919503339023850160802717011740616410123165660319025329513739774272680330906680897190514928941010492037331071824222459307990748758557849709148550066816183178719214577764085058899602338211860518717283625067499829685173721187085017408951915260673648022153281318196955408179946427216644597865036660580073155049370358672405656861989071981388097956891412076814286857037271810801301001739515311715383332011436680556648901350211465758022062431371395230852167343988154685806794697970723083320348037915799553461355651436516584203952070493945100061103819103284890604730187587149205310279855226084598201805883254319457700900856411659222161543881257969334294738366859825214443279543054745192988931247215624203141571919189170660660515245185440039113256944909206081013462219732155700595845459987783700982667150203701307038030682647052534814692357304471480630296498054765857559163397745579948231802561261370539790411074870490559915612153210845450319367327879483953045197577015494536766207829540459571572611161186190459328656146857613944231746974580546142573951873332778109080159291578475385900962324917597126023065242744653662323365075406611336565980649593578732602275705738246951046072442692532368261266077265048293390699849388812361922827218102344315447893706521741609869092449083725533268745089292217347061209888900716900594891034269255523548632807752867570454523798381551364949331325410687922131134265916683749146551104981110998308172139206058779472405010156423345791603993200593094035338077538913143650191491380583233892013959517547857905813427771254854172662049662053665695339300062731152044957908786767333869284288208531353038196863858959127176755260605601473747181547774644317715877315334405448310330011506027499724278108491366018340164013052715635761766531768271268502441002240677853718299855943393969073235914731943566637086775817128129687239158427013581185548019515958398169856893316735686583235496243187222420190946828926369849543743685164492557172843904820301857902068249426070975768651253328658976508039935677281746887827019046997290282142248468136578435716176302661832439104053113294113279989308501771307173237986684189821760940265851755814635550609588578538779345016015919080095256390829031107546167217967438800877142649907106216373486594942077067974770185796382982474585419131932246689891053984930621433166379965062865859360376831062371312252695622267668105140441064254613866434323939008381497192525492899370242618199843817873102652365944832560881620350862746090492091853280877322157706390184907866457853322181299804007821659335090956216189466082985330458066177211155048392609219842691555357474468948936762663318578523201147951146118721340064686147004934956205175282806494048308727214679578636328065915192562018311511480062145738869627825140166082212773071144134688204485150003748338078803197927905393867145761666170755719442863551705179516248600975176712727788077446665926782373707440260117051451973426232875619913242837967773677195348703427531975073880392649718815201320564999986968337794664797174979602091887062926915355173235373265352180566906152875632910018889182632938909350030011279486563142809076803015885355080322951013928322829283363763198436422629525101046241227789836949530974729310350668203931186567403472277692453519797823225123374994227213454786707547977199132136083707823975938390776713577091633803247208307248807971070161334730727474439381876556270207725395065932922571923546746380004897409023673570048911122304153297943697573654816883665679741394109618310713939159883705989545140444447023771512401169618478219557832474649909208516267648084547393793738054491565997757433585621061981658709116591607379031360927783425988202642949979569967968625899389973720886604493684253759231332074593389283876618016511820148941450137718733354752271627347992904763957015243157819622874113656331348639679122339640528061088900444168787155509277226167750939205116629415884019430312079780238637803418914483550380485609930389448024647850526318435215891149906245443454864567678157718165478695632849333512390083752445602358367657701640308009413739060189559887258965515691883634652940832005553068371951352697709225159961333024966884472424912999287126027112686970076636657171361980129317955577676182509743539168586082790389516245509272049482718311089511183589844993919937519134297094320262997846190091740823338865398552437344045976193623138592040196044005506394492327884000963352451964039028088997637652808445045199514835894849965323214275346083371568063917906363861765476212206447119081342287545847767476857492321583489972482017626376452635685634252040245808391533062872027000260207465527674701956531140336636993549026413893850189226608634072886660024714167974425346798026381956784879337498364340267569832013298391904568934031652281426213442648394148763803435676344703794474735712762233107268831930351783028156879070038361057766523978320846029221344679083724498451637619383063016506084993738864847950159297957064133605974207721876486598069187019732590076091511985472476097685875623367517257330877964154199232084879625542102758240920772918035546327677837630773013610806855122465458242705189742032184815893792819820333681945095948934921412444548840120435218459131431433670656810156523904109223087590846690146923427120645446260831461629406596692800491241207307741075736733863354896027957449139956559861835313901818542742009274331122611668920043893222466243223179741953838388355861341064545263265455337032126967383802611328134254356615795039205503834265368879410187657142386449917847889210015469606890664490046756925679776142697724198620096007949195804695370925570326623576222131056540444105848245108366017923661062329947125948211280720110925055654708867178008925042331327286716438696344050624446344764108280912057264606222734501353885313403141210147029819766218678764424464282597760023325888600093526673658061117514188975184314686570578545561724080632238499467050482625824886131212203269477422709020632215182728934073593716708605694720533188199766525082485320680556293739159401567827746648790250072462825659115787815562709602624515484658040404125533321077573322178730626727179038991914099692265705829991744089595346319384455678046979681385263366064914823626571055901833507103744425886497907986245597691628469216803433632937688734768529156158196025929845763986518613931152062534476641654273518587494637453414080691830654568463179080124236142546287852820627194197930649693321827448822620187391005406215641542870869347789769941423570938048054276080453826183482097048711200852643861557773548204869857238459730183410133235967593161378504842964247484679237692102242559429302681538078296866527624592074826585003671002769934417290352804392669704443893418964295040401232644456171274898388528367858946516318094531368090922601472332982451084183125821842783065612868677065119237140366528856485022430261885148059153332897298689635176682879696822877057199705532140499350708518400670929294985627182376766092077997321529120956052009355777977935638569438554564465222638080130021482038540951383167671579231293780840159590300909998869060020861522219056988282863216061204857785444855983361660751042210683933700960350888881434049832070011680568923040580780091143319265545345332181293205142189558616388887274824381189242816214135436896133989981787823181712721026681508172149083133580915316858678176498821357214487459770090882306469293319369379962815449745698496908489952735708704499246124643779351291918269760277614547657771325495909536270634080731997850973057099254746391132467284211511118777602202325832017857775747976813293764505466230431188510184022314376326321933905975312565519035529300537057168926397192276730268868521682631103220332702085870358208655642791132984254590097859763702535404585433201706077059211123339945059371254711327083864757028590525472782942314262614661732263564805280322862840442848689603194335201102474062245554091606130938467166699874289224790944606833447631938902433746025870695101056421897974918882265837675696793778509211810011207622401505109180138466852320814365299322064980248207778823829735658533062304587423859126524115514343447419548173996379874422419953156546986155805034137033058283396308602468841684529813016429569657086441639696264587341938346382277206819551856849614746784655163251494717963477798597311202489008221406663079977087601617563534799402097556813397986593020279692481997925922876387606365988675216446820728408914228095868167951477995706202281380377380624137660827082052983847942015083370083786298283772228899520260880645390300717769521018223158194829520505898521723615692753124250542765786331496287921447054001256521862758858092317606278536654258588761633144060130377857975476116482801321124925828627754155047531723633755998453377744532635447518592737889799943009714664748399172485874386284287131225186518144689293966784657151591259397034460570522544042619365044432993073009849421831674912046760438204690972649415368959202673727017449845672464322085897197846331685817737472526816695119137666216186809552373663577683814656682949308901971980161800149416379289492853333010749641203147401530613131558485222950999812698828494130994785894383118439406253194313928376268280874818226510763144706876996721862016510204488379567561563285162836622852948130763292601758493737739419160523749879660659155423509225996270094979895872823399266466247937895058559726557006572858217907801308297614737642456502852747913735343628424167761883569122552008230638643829803507369121302086998168967986544565479660397392909876764245905574075548139008873861425862981491122705405550667244767682733980591794190839671064469495802691942495116776086753196379910439341783364354250739436466140920804340617174476480463823148267789158192247572332889191746252574784219083070358199450572219658710518306807173527259665336915758314967491235036805040082881224318184414475014869279677833745934229593333800153097349753755208451551223896285427592495908560210004923193522518858007772095833427868082930696187896367353092673143427444468217092867717618783639645763588469310226509786681330794643579260589515846947458170628722267512520293080620753576850217631445619152764058833535373597581511801436498423215682976831795726440438877937811250945939576154125852439835869075927884238612700014014332775296320087833147150261786011871182543408466402967277394186809891288668706495916504112078476194442668354093215043696046018747579635943863256433956850709802597423747081605112515963968067470155815708591548310792415335098979289553497586451300518806198206344783827563773769368941432430721439640633546099331681357081176759939874851806853617322759339423804588484366980264490235929262798199209371001423360454593863881980859988264817622588099666252877496920783187940104492293488951645968080876175951192289936767111433270625344640914076132731425725938000713698216630885387354685085727075849086219944876878502230403195967754661339027061224098195614682193637527424982534178212391955685355187976531433939119588278216348078031556327875359687861424027278492209565752823464831571841738067793605115496187585373572563945433678279789855802004645524448279910892399618576412250508577820468809742185578854723626844682623522453398922907582851974527385670050884582491458460413201959487520280738213948501428648064823205320518320007413839324638003067607355566624046967664764651374905916664745475473017554205927634617762385879762987334911852596148738670354125390948242575213799449439785898287953311298479217791811515981846596143377344155825849425853899751994631060736555808166034355677651297726422371839516313682348290867208892393210184724463140225498666602348252186604082556127764510227725908810500480078802356701155141927026954905924990401579630422155745367470993709549488780963899706934141129203689092577134585426949790762159200861033194718899735389224304627279016767738881436352889863093783220416958021426781608276855743558581790350435474172026649985467144638398961734047775037643560237292491687599794700386683505569081694440102372637263240996065728744435280192483120154136529139450384465269595001931744310931960088438820738821663917407849742618644043995842461988376101742273911301684763905278513392287268997825939951382470771000128224261096023058576877404044571853545740399306727595549932421905437693760919989237774729565288890701610181616502602316883866657392020211805446858251964656818274868621679730445375393396155304379103619694452896057180198279459929268791243675873494725708247624042868035235621246982354624284171251192830526184365594993190935743226446818477962440795832344111963707979409852205518499576070242482450672990268788245142611419820152352721305934734275425883367266324597076027475802839991154413107835839865935167525725749071005494999909229915263967680798255340365966543343415608191967571510100372663653161271379907222267686262380564254381555538515327459757405708216963054084285848077183763018799732586587108301039300697213723049313898118237553148947614262793914856358756465148416352097621644245686431984479210939280873438541605546712959679185913701840027652255494329628662234885225734954508147860864840582785544531960822485637985757968702561541076787734985420602413725110469856238804377676724038413353283323402868036891526751351122557763239052557262384837886347662536313967137836340843152261163825277613689622853548335112306412205620989832244137396672133184625662691963338742174996758313985051108726790333292279407001505183771099286311241660909406807339354705986470479414065296210279959315879680554862302032133528907047481347662827401977720548856494599530038294443994487749532652904978186284131479831918110258523102075228457160965660555473111159830928133725910724683503432763932282910957012299597689725074549654039693390723877287323080014236918047187032638757769343556410189957740060154361688041286610522151314588943580284004869976167875744078534652014725139079205538095726332285092574783996320296873089379434095743632172954148068386188131299200212990222144655120319278211532743815787516918818074893361889549866914209991533928139450298143655352933613916910645194086196366090576121289285373602364526840418325098058238313095153169981529187019447111528381945771567029105929967776569598171696110004898843682522326717184113154178551008169447595725078861381545929205526683738052532137235319741564699487801862101202812399451509341609766612951562892654651655891695085118103408662392813958129394201505749316705302823410135530235169761928641847079649348433183293461618936052917205157343782021120581359845744459423765569956650578993197509986060943653245319445849127313783717316718439785572795861171043219833476662071403388843588354674986008892068525894160044993275629383008468580536398177487836284287809157946073903282998823413687280417298717813707771900692066047263828207384638033548168196207616911492242093268459474651040235605454357258769450833830693242436101954339993147801537505587714733453273795361676496390320693447091326740669801983351918785333731375579635296639321187526128655437304950240721887966256204518596127887883217841775979693827357208737398338787832900661707553588804007699247536775198307821371068062890019533438706473516530062621481286939627931232099529667196481129752599091280447691646670528480643445129541070703628063898314773357489251855325857427993314921125201078594349854356989532696776776553376798186948675714975232843494646888836959711209105358397833508273926150559919782929596869195167884980630200623683137818630779665684777245195778148622120968917023236539238518864119508936552504090571381934670246337670707111034029009564900590004185335851228180313183702948611035986810768458086157940437016327218237261006103250623631055656986890277398024933425023558922195709641740586461054362773474042808272981246557559958417714903866780931612329143826781740049383881816113172849383470046398600339156463577045221573142018524220525887189268395437691022250077008649384441267284087288351360368798664085757684926044986638741289822660886412393418223607129969317384416263902628946136317290242988484935336427965011114199010235767950175629371133082589084111624153852031692539469123125067658536272791665317529206985913003537059211190581404840526070981453150218618666281709990445124696230650905048138070876520008796447822992032750789793750258175289438003163729647257114617412801262495370059139978368683773814145925873815965837456862750996825076615819018761420168311548148506778034000825795742977843958464621572497955762875153335987054589972018140910332083950420636667742644974831931394996701804712095591056950690283035078196801759264026746380404153693257373270140625058028551398940613211547069710166488166663773823542077449244527954954379348453577059254972287657193868053298784248981968277737096528899308738808588506331315866912437364432133150392945892655360530341423344845393761901723760988866267629293696831456500924663136258285198965039739524827218536390959098326353880800555988176240022441646690811239893341693527748564580609660926055433694667993160030933661930862871572865888385344173816419801040308175547180422139015568984106843876626556077691516604291575693589982563341493196827167785037935169443043371088477807729265840500224014336858292638434528849603501220190834943939054126405347256831038136153387401069563439245232767568367936488661297542141666812580529895544333642733077028035075926839786854154003198905210864723608683614925504571464154243089638274192638208111935135794005269620889401168210911384538931269706320846965750889012137697511886624602186308336366974551412250409432108871963082480441566876263447497395196499192474736303694870486851197270520923925167374881092463632564888680757700187447465359062389844286362005555371477647990550377552492382852926811260967205895841533324234865844774724569946763176007459871716243187407918886494056405951479451804680386280510404527517730161334892429176088961093634957060155578204831029351357134507638498727859821565691915033371840593874629463107705847014778900239566637548292343851350715267996093765380284644722394529673777670922416204579528725041657185040544196647385612752892950280172160527940425444199371382450766316445714681891941340272390736715283049956765324924300562410747838780890469908408821944959026300772126238270495446755011533782443538304287954597265220225306935044113805775060306167480895008788034697933132834365507334188288491239606231293761041524673829424469789762981971080620395711021622250202946093326137958569638706069820617231243790419651290314769884387747967514964250803182140406878677756048108296004180933945413760129691280071710971992395915257325033996932913522763582838168309049029103702924487722789369047021206628325645864716687383364690140782903907689354440614000612734533559725252833242677927054213043987028888510093610686400312607272279199211460678371166088709905049002692557811971255705031655919180179929638096273601995132325741268993771127684712994988952412339041501581402370326292440105859848412748108087123233297191363417862196489911915263178526905682662770697468411187295280033994470429580125411712651113930842935895116829885051056808445659017046155621525796513989321150307002960301739178740312962395173685310856313354360685927145973361135815299564159832223349571707168059675673408422849132425420265769400791691500624776366290173314531205331414982852199906056147670330380111107105802497773982367232874240475205821607292704314758264203743990948510805926373707013933966619813964865432045655194699979313261709692350944771786841501950062801651485484676883901039878022417663801964160152607317336814953163361503938936520269250550890216121155093258333621206431379011900599516740212294751137910955302358913584366597437739778590154752889967968799866226902399058959119581865469009744804357887191275926239369281566951768491369166038591560247737305187931448967596272507812105352459688134483324334817171149789210325109612431911685504180341688830546718692723564927255729888414777633801675507754196906839898254878308284479223438487784551215675181649708103721528431573490469986657722757757328245736192178443546709057792198462027265597435750528521380033255515057716689404175058434453064291583277691540335723837640741336139596974045946010551744510612370860509196312298813596191901945090717764832455159762963928289536036556828910498551569072933949154591337760797363835880082872988303480111370369309244983442850107873977975026731224797864717693872358189334960138865485121209675649948834652822831904040454708594671612461163673668365060304138158589298706572235393384398038378981712368848996654456828080821181867690438668020990431265598356422659152408566582880733987559138835081026834875125245162979886110513813409842527452261953796045024142481332702724081022701487912600803523192820025680761679767727401073769332233715945244911232419172910409761463701974707282482400200260163351560350560480359751205449661268049290260257601990378438109497430966868280220040705260812982544378346904491529751447901351094171324561844069280710605027190414881317052705838805959494476183515998125638819410104225060098524827102262497898241354150593527958704033361963898015850292979696911436157041248974324299866809676596832106921795233858595714493314111481588413224799530779219562243977773193550147283019100387453773268246897703800227389601720452464485125839769799734612620291247568459340317734046495117130989843732882312583554311098228471496636322148937491974486381671059412500743298343355187654692336801818320880985608540493788752571481975450352419505260978812715149093474122201857628596765253358509057040964670964329639634026887618845396276300390628003426212114474153158669550314769223700657580959496176732128779470496868390013660267038730679065070177725242437888047455455367039973419473899290113536450764773122354590370328523315848795812985484661937463111606115787148549949029121412810322607071750675312558438567872970678304408901306968935789529503662649926591990018031766294369053348936750252080176665930960490405345731660229074328341972796350425535723146276897912941005624295551951453255322009715690602208926651101877726606477493923385053133502365618561017295651276672896322342674430829740280835091017588504901455367602818889241626637379209028220212626436164252531080648393488755469550600306877410943590139447094113420933176641539547555175198855519474348950628670329165279751667240716206078772150411883105300038065039426685094777826153922586834830466164625259784219230891475917244835582057995859252620386248671918189781499434113708664662176858693464143761372761717770407219635835897504487920993657665553698798211206803588173315188900757402230879898226428873222805983164146638172324047805141681890869551628947675758882528809827554628134235079408190534408744398668169404966280465463531812613054272690234072939471735247242634205293348567306553731668508428532849431920323744042403420869931487585522706287534981097119783891386705530691336652442308307405581962982786365831417552136193675838950943343436601722891822806628855349696135202382455231939391411999629872871187047230777594882802293058250602476660618820233032446123146168307390590205632077942534077067891505397125672962864440138666381107020855519585693184563717588114333620384192393196288600389151190780242228508493934816441413528358243959548267960382106073981170258781950828434773571903563742171100339752994292522231325852801567637302602018689187759570887680475589206743391056871206997631149352366440327217086931896212371204623456528076764426866237584844549884590210067735250072426980770277196854453797708315459847304475149949545762915139632064632140492575676942787265364578571530921011768464740768043614285004251800996060521071267652599462816121481292768750589076697801369791307954105130699480992037285132732963333142517787842990033053753403700394627613502473541454507986630971758320909069070821622284817676550512490815132204991122228367324494931797063761402871142169552841332237830253019533475756071568941950071058497534333298654001307079240902432941824142313598724564545429919492543197454481601834813678394879436991830248369992138538704869453471860352041301918929992627429713498439708983522000702369607233411035718090672516109078079350810341045412921485510319276362261651019411032183800477194804774363411249256915542875145362894624180787562796511537278895038972585894702639373821935759122604556390359024986156019188813531803027219860773937465086839221321580294700449796485168405666223763154778318676965185781089200039230598884367407870005547498090871209079223886013394417487068670609507744530478754797333848337878913105106600475018548162335398673800979645991133834182825544785873605437756065318943270658467995829827515179654850360593526558331214714247319447005547612994457176393437893520391730910123741661871325759578733328174635267546533892515198342922013141215994992629947281386510560038848712976774878188167538237284401488338127220082529247624205370463513685059364491502514403990848133261505372449522273380313077267322773230991283393615655338073501060250927866572793973784077707587717031620484489150385295744566224510844939499967319690218417778801335361832521340032497371412374032994930660374333142621903549584252909932252321637372167787592835433103873431274206371187207311326432041610476440490990034037753860263810980853849695334253522913511124086304793366992274629767207649742814508614387967095935081233712527784976167350550957070845252682374356507090226637994500471501554937741779479141123878318408589932037274713718963026920079661709418061895484755737708695748512793164737883398247644477486549077203275801519481115242398608915221856135395742932801937699776588606291806825056972096879969428396051648528149826139099375657302630824446558801912891472283831084643871567975974511092620402345440017523678794894378858004810876144166606363779653818012846350557124001607073184582692285407688756734638557699126329325620441294451637950880934866681579518621627999979735513894386521853680085941795326802336370296305988370739314027405169406646710344876029664711410337612554938585102667912150408071551420874226547745486847265996281119983637006688438415271271017280355183955312610719803003856615421600669943344162879635546186221729034253558551277929145418094730068267181502792226001227213670155586905551374685118800116091451307240085339402991144685061542664121911724209265589814535844444278314213624113697606017693668583773324052657812599632607341051875029739305719793410038516947413201941110855533390503037127152095346474631567175421174737290095543349010303674438640886080906271786344200984140872083558515896425509530107097965812337023790670395483964988825561721699298780134689658413785123399639127304184807150510431207887407602510472958517018098703024314650330613307243026300948362275623597361449752838975177951000079733898422095391833716756167309733376159459279935818969520080033606876680757182905566285626156529529615965381439649377141877022862360001846750806397571492747975056429237839322823676912283785334649031084999119615827569259188269525457656617839185656492382204307999965106115533716000187878591525827821511497818954260987997027495810641081020400461339291430199804790442546623132826604243229420297586299615078142954240778066177971258870093598470435496857869293101070129176267849096607018596415251788512031703954724904624847656048767301014722699270245453554075186179995426875572431384345392733353574911683356141459151809984671871406251463507932998961105422486950277679047024120856133813120509066576400562175720187834363634671309926612999321086009439798192220618779441314980748841778001983108557258346075120402587424651835962387500115572375618027633858763895723984422236624225901443668182660028648252092219741051757275969870598038200184066809598504765962920970563283387131070595438002654281832819727701160841157110412425216388074341013599901089190870965721093485077278957587887885732144097198611583547992619888156191246033926788326747030599573640374384190135365029021667676802572547072031009216256794602654665980258662185743949392138925019993662282945425993186509782449939978876495135209464943224991862589322739324408498486320840260979794075670502237058008380345183101283973700720006319652725402916823177429860626547754389267159288443435346468089371154106208467907590171770499969229051670576272524627993854357808222988924679668260535941689625569647153703356864847884004149603245923167074134427401775606996507215460740250513253517647684945525396362759048021639984803223911693225660475838200428895839114373251183647125476468403500341924283897334638375096706582619654766659888437794563835409337084727282068303107095589707285368871046956437505843921162318965815105507547598685088475501870550864097570756018385604789835926904560780158537689307093132623876042149728286405930712836739160056240555848540588684617056330977483546946517273317713104371375722931658035816229029439410836182563503039755474329850488970593596344098977543056586491541073055710617189883889665322080911193729294423337764433740334330294867891170115459654454848185347448874878117704889063425047864318576537293670389638825249974798632230496696652809107696122068377729951543441448252221099733556430330190554412408324244402130001653208507967067740980063939152324255141498823085068767174511151811624448145295177321985707853268807088514101308507886526981326349993907876296070066566917658529418553363688344371134487211198084674573212866036864991271113920585061391514082189445420522830085561406790392005950464453876165065293415905769425331388493853955003823596647227080616787014395156437112266116733328885320454897645720213574221765450848273102810926327395878002991560711819745176685081252425311915029096936371462605451386383637811578209426128308848991885962627203297563416789993986024804723773797717433390800974773744443064855016467343360466956444468393899480836577327642103089454696375964378718024813239660121422131420367749901156403212017332664807019097376698282960015391697606631402623083366983859227324765398418934714533224419872290777241069516186117003214810687132516023676090891618549855780987813166781150258068413912061195482837388281714338475475620679723856317188057129090889110963553015092404650978951107119287128594774100340415795863601757881348088281005660446637453004631662493459289398580656688747321249416897130643143170839233963410090684428109704784322158582637897560947267039584930407276105134197526550606146537502348660802470842116393144809145866063673448753369474846338481877275311171040705215589401994478362628475445769689814445365717752562837275937454889677607441635020580849686664036575511380900757561576254085853752181700654201367692959995274639216542830124959588673406899578889759614486172027051979048781394454078323656203037161221974037463982618606030219581045644080258093620533796147313775125106927621356130486833206376660441641860624034892057826101874520092948910194103041491076801423471515308371661770904375612993628292119091034069214308078223511562921272412844250669328841984884658006714530690154109259520658727286574310332566523382269673551184150548203758219947877753958539580392545729217427474789348927591378456655311419040107614433311973875822575223598117142665446336743968208642543702416878244382613917510652101385263179131855818838957941894240625211836858043727028290419404178560805646715012755176115088930579859133602911333591026753842476502976160660673184651008844636352734485217740890377826925722303635484072975717201769948392917368098111181470203076365613323345706279058489087359006557686570911567161276390386436890313989461389632471728705148323372864334861749554072051159781850553268528476466603745781291981800076818953616311542603909286817932101246882416331355156258210059101313610430886992122994976663040652347469365060684959054852161711039406675733509703928597019598081832833075723116354339748376819615348634046423613896558419348146427598575204762483748217010860902784436057957549321569089986770081376555687845082463260057588339468415424194693938541511834470954832421380192279877150181347885454120655638983244532633845322721324589946492844337097740107348319358429379962216782672416248237581325222631903244146197336688822622675008619235608985865780078118725817397370788225928689509946458003817357358693898354475952784646640649267973328507266507231285866200971433918764251857711206074360015044854705763069324643039695887857512582843142281608674068465969672481234076815438760562118682183468942522999069134017247135409051583571000816901487798002171191798193701898040804524162311711844316564875465753283420276714414439858360346325421361425780535582888301476618970449933813300943495268986654002839428000157376770631700933717303792626401777146559827794979138066592044344596944768170815684999765334305639729767826832485301903755782300880304557203680772262969117341899794850260386428721540595594434807322634393443169729737029215143841919325687757376877172339496426715631652554422259930478958535718321033903756338045244640222089329942917754593424139496152606595966098566993195536332476332918147596166013960085692076509892572773641460703858042524743538339861649952670348791870384446219285149854990386746407691174137249819895424774095714954222858601013104322502887747859407917524944036363102164436085400387743884743829721379419837949326504340648390007460825949851288495076111268309009345006459268217020135307185987968327439359134422705034639004982784341378527509027484141578543950604660394378923012154884044740690585278366044823034283334679381524671692936142609588574483588098007179001354262828507434770448630045273016525412893404734475462736942070060896937022526901928731549177179514586256286801656585735123524921510652911290960535753907398194890557641606478419974150397145586077502316826717671720482168176726347606722362875537637595564840641934510932541274732964475447152693312575897533826029261753775216327773452309499545603398812871892916235230288835696310648645868329038115844213277202559268023909937867527289148234216536677226399168660374656053147672617829489676282890970263064380600302255229882495988692945594293919609168296754599317905717746513493553410959129470960251117833445351090710354824271109820846176382250850256220988456471087335635421330012190669299029348529740782341983316625515867537893914715685865525364314003869421153196905203938665885749231368755904588107083635423806479138886934238782220418800274221648231389862392361677005552052612951350246228113448897032255074036392376503108385862783116255707891502430846004389928692859767072662058995947969240827381649181323995620213215781785062932535245174934303800642063208315702247263658672457546973945590403620276613012192311404197137668143330996063217400678718766757876909044192804351842266888494071646543665356956263070559172860402007272841076796705731088031061078592709356522204156943671430330639265020269262761410134869743029490876393902562297011296784058421003605401531599512372398869176257428832027747646289402591324760660572191465712284207488436569741674167701823816093017640221323874919991032900182428426879684481043995844685934999712903508323792256362792299490104028410297933399560806018746996590329224638709392568407289953864871578841848677247489752955054695226828629197480285552258936180547266356489888598704177344820536520459462723969918095374322996180736781842800533041162858428455337716570108928617068191212037246914806615987206524108006702101450659957082439945494989289194692516050496322731617491682544679549573407214382030237976807536030907792811806802957387347306519271883521596740070868169600805904891926790536443312065251202680760520426230466668927569063575594666985585299363917192357367666446690656627388835457701405633553003934111176247601083926574327273342555459481038800688378270967775083605851995077002749367930648306802752333477696282510775374487731647513736892929088691749519495315900575971414621004081643607496942260815759574648320999418153152811750538384334674849358771493968901708657549375383457004860491858739507637985695577020510080625920090137404568138887514412713569898788650587400851522222740708265196091244821364130750600365410700441680215873895870284601562923738092996056747860877477318455781142898223166033079777547320825094336681397685045928843753806563684398440198252030426895898761286900602903859464250531703475277672729561261372459312239186930375063840275986933935974283264269457861240001272030310764596832118344016751514503828338467623265420061941203678509608036311489765979226707561504515170450512935878630108099313431536629518954668224135179748631012121523098560988020417094772063477337078691427250785685953644439012832631491363417758598143653180201719677417862715833024853806673432615178851354571956438739331975761593944092248111257756791111857396393177635184356877840498872577575617897626059769513156515305274435599735892304373602778570958852662677788319609658675665104247385065283232190558310351134557946630087297767263845900323300099614111852001973268997584976663680098270907889254138799080113594063703237929427493082477854072205872164033565630461739629582528337946717323564675153696724870204807971374829767223486830651695031313142613597434550766964976775826427816815232793204446686207840813227227191209135549656046224737753400827432454749465769821746676869564390225708446008721395011183462005033755520265919248104524556695858632679081549133740718285140734864165648222040503832405177500669235648284465237996987639753075633658517796136147285712233075153914110807716012922621684777214815844764539440618701895235755638691308235604669790891705716333491025862837163033920627861984317927609125473470994989065241142674208603391094337996575631906286900743022741051059953667941903405389377854344982833717165063836408539098630420134677045217965517242136562395335016266351001629000665587571370605881953632568762885397942331024706667075164118824355238175235755598036318092420805283200427984019612887759603086900920494870916087544672644364839265377608220129216223162580913243082506656384857669974980634661237309056709029669274838990211523048533808101493122034219063511640004349349318437530366518659984669743400150475478609587631454945782066225558827519360916235850024847523549073444148392866591777455696547409526111769193648283903839651724322349724227475565592553107491120439538993587484676033451203667530871664031121227791448784871734210486184254563163637791292167302334330620325497808343004174696072652119441502976578941792012469973145070942311634908724574784974856278428247063298553107321512626456646714643606057625808808500174899767850598835925273657349111748647155385696982189702341071198278759585685390298386480460922787273896259101767750049244069180298494310964318166336265461200391932269582552097804317174420887376655101798078828269803784200747348924036413969236914239085012297627822920341469783288781158216746395308638490353792062032741395906906403511799609667457918782601228084536716501008061663071713214804082086594083459793051632911513605323785088894469527935385507330888150341807106944818215363936691258001967004549656382548052728924405028547540021049524245913031412996774209295096345092303528561714031315112786166178380163395803478371511963672396650822128339487386108343291703525321795060516381788350597838531388130930344620400718460868490696906403775448248024343202495183686034590036773243233623894406198197623326706236718699639288729809345747948493459135354395072242378489540350979551456939569116227563171676563638449397210062036952081269000097872183736383720207810639688215477940440611193735779985745624582386371266621465195291903186506742689717192453033735281154560581228003826835715903096235858406162615686215828037887904267984379206063142061450154109265443575627313757014100689317306988597932361265944344529037643915607018232099046102194584820343746779189013384310948086543647432126394176597999833417655695374699002546917667114587841972018840817382895074852233707560264687770898538585307948233111915026276412002333542631016354022840653254824036032208618163967287032324572994430518175989365189067812343573855745523652224665424644938781179035310973732868026622752536817799097896927425524867946004099802968228276547734468149128648226105511327082493853954365510586906691408266740502019704686344861566483677011767671943915218087694876606937731860279507126221665322906412315794360773947000728224885223137002111356376000161189407596486538404622794208111637558955340091356432876811851815394005972023811464699527491135547315470155181009423908283588084889145276752652758552710084220251991990480049128764198598536629394098590309756518958783203828760211323084168184084072412685297282314894913951948573948215676656038545790960351867443828604171880936107002625435121825822512107133119425517301631922268965484402156019565403816788256979188478056252205905868909620033990271883319449301058093115194047039938325182676822163722205380170451933770829328064709194745690435505735966570738190184523527501109206214443040491189628227522100462214224006889184207677671177752056213095239297320992264175603897372944188714124015608984741324667450313806947661000094099305750535158120580645991892443224666439809888013186271911807377588055952377629763526154520215858496303546910984589031198534549824793372511972253364133412002242319723812633269260670144048611042705029868486390263377043935379899766770662263541210977978786580136873751618895339388363786680508463233234985371455330125466336797288875187701901360595014382112320348494616089148024732103700247563747707332356520585450175177223923888086930032621127229059345808131295579313498890160785321934714840282662358696912687174634334920613817720268621698126003307114780598432582872127581802093928456805497233162448015148854178783365541067297999980324926520416650706442760867729739929851167414125189524767383783045291726269236650127192216705387171360349290161667119992690659790277283316957496778952897668403962390793791811602730219022913771900629472577966008539784967863981760301342134774361884654063738602577152366774697459757885985322939975652944538887426998151363054669976670291135739311574599249521475979669213261748138036252711732774913875983308434727768751583514152146802856822475296892437443937925106163840660971458723072546458846575966615490661381215171455957583249880946387841144138623010379477936578443493553321690171113807936588644097488358299106307911852226912839470820709116356766847814126728212838796158186448025592907926177620846686537986884057116019181303486747919845253667540949616552895660344810061918701552401358762038543617140620523432943439743162540448719620548607841520170759475259024639035750612465669249906257049471746247364917347089074297642433851133580178305242017071294706610919887872651249906689102521444249701239563891202682528416814491190005060434145948131321287305532755122698765666900603841490668022870724543072440792262842846417944597602058710779299263766733823055068981212509523653128845084545344538509802355816558771711551219020350764811736002912951614178073360348418050463890068268524027001868114432057079443384010882713062011559307308541116813190843666836002022876563039958104347329641921852539144967485770246326666572190304771295536324836836304845451307774980388638117947519437965171724168320026637995250340293861004883642138832616069470949405909364596928034379041423983469816579071837828457272282916670004449991695992400342082393161973401061784556761261953854248453527711999920512649493718156626215349053795093418869097526306091613167569144428978402964303373184055883313150205597889536359405995613398538606806722472722918169259918097723942852005240175429304246949283360124410388464667418665388092938662820917908553494866126507944985493524304066944564070832713496304436749098193127291980131687917628268332697353691427877688760989146917444858741290655242809382270139206090489872455068948324737859656673103417389847351997154586976132616051692274869857446488617018169204129868571296974077331193684425622122668199287830813780294724896453701382188208753236716807315372039901745383175683448095551713820482942167242166881174191809343428856638489090325477660463921093781740327216575732240046608565300461216201383165171660304070192632882445930200653460916422991288315051330952153611603550855591914933880595446296618260083810038456459334624549871653522799072822442611593494720470955493650784234376884306685812200200017487305851735843256956577192409186502844418134920088251445631178776359721039153935804595359325022647610782039065842268931298542371980395561214282142543592323494229161548057316843251566033214070446599354460635518407622160209325956644992986592155764058193501787433710734334301776629826687476851672197054607616753171367576996066778498059663858117352450954431135464673799850147711404610726821108046692933289395301071188935463864285884336066333189569320530173445164250040546785699495788844728424811394839541293558469604907072564526571478838499106642870321206218356768347170138123525983128258793288287911909456571714341854208106987770081885857338424976218775380851255314808092671057033343845000434375941117496005912419638325648031801866757842952795547668627828015458426970117972719009714817252807560840718868782531168631718177688600774764301421347856083197008416269520403438217912592618664591334128978691655962289568318970914621097866274544149813654276782799869080876852905274054469659558877120737842957967065213390686678830931490597663834624296324351406547152036659531722132485575002837003670798876815418252392232793380293439985398481371562768757452942832958994262025731517732101648042296914779499940613795917104747223305018407757864256708571274903391673204984773154598649445614707801809899080987918057815772702666109121265810140126255428783925672454033579681829056230874119002635787238583881137421180223045416114855004121161847635802932334472695422111883215776058372510980945911303088361152001420165810579738966006738909651994509700147524600927539647637851370384596705243052198830725230688721623280087475862099863463753583702290764766815216392438377728176317143466862786909915866143292370712296056238825679609336282638264739040793898081937127975672105135805832705725311067078716032778587988213070116028711523321636845243343125550535620416770601259006746849551544004617418838866745649027684324948946251091061314352050873201133957771554069688827227421050943697792948446837417388587487501377239371270717483981249733075941655528454454100305414547154443590428947139593023945868761383891433426019861303778129369584079587236238882026299095203342430682447186858662292555976294320938289046459306846241096124825041360411587221893026689981530190486508438733699058714792076549141853481476281731494795373213814833219243297134135693159604519817338770578492609530506382599661912414838731812125957873698339585614079955501464623922330008932188543848990422965082034416307655762138979182162824142647622253434041921809927053250331797084973750573709188832970777440801247274734670765695601705772185856480080051247238005980023746287414960697589347480753354015967039311983443515968528090008999121026374177194707896080972234887144626134621792799356270444405096132465569194812934063763832629572975134661671034916023992895585121385301919105726273766489192425503428846869935751277259147442658509265696853837224343145812373327985115881337613059491534638541477969185867208552976451789847620774745725847533194788792843186915007568029731055262353006832179661900446229138883564249692059317397596188836770765870716763731929674972036979036347487286171724979145639802367748018904444435091553852759092933938616435036882713771230910051982228237044052022905138778595909721365680988173350612320593916861737623506539941748516473256222141618082347453862781698597976031467066738627751889837241711449141725896721144958525425424120095410660214182432222483020307291895614859775000692245020839725676161027797243357668793929075549807055860514976679453612505430039695019319541597158072129335267521205100869352994569884740503190308628370576079394919896543063811630383305088809112998328618228471949745964972788123467284967178899225204877340302856609627166214900801134598555814704345761107634200109791388445030239362930218590691047058721713875749713272353749507263657619760818734771370191331101600142385565522343475689965288516862873681750784619135994534162662844541496540330363802064793772905536403592380385299533825791407037373514567210733592929364824823392757860903476511180423097857871842609181958315052214736202867456932541194569388321607047767888113875956214623668610203428393722225221118293828484071714653259535509377692128983335394977560445272637584781086102631269446159517403237599579093497806473473577772602898137462794213363991158819853647499114032789582718020100971596181091230404575783148018362343916723545809647393079800498813260060302743406386025145898260150321465293610702368241830559554599930536535560804681139555677357303258072022932875762739363217305804593684563967315776275666369631103446857609907990326208217220524591541659984296803096617816200508119948761135030894792283675301374604919297141610621119878969003343179849242892838840674359992944370868134226078361811975023665150854164633132789831282540320859061646073023136434209333094093912244295787737654173945871738681640818918397555379694628021479013685865508944495959584808081827853207412196595403713987401567055528539769477841701738938784222131704113199555925531797686401224278512052213466172368440276257662335142882173245487484552682293073126091616919490397010960829967205246162000818024174982323843453705975640941132128031241806619634196042973660969244022698296137816235249028038813514854474269429239326221869431561396788831010170811449090401832908548538857145579662540697444110382046806326793513486042808106232449999303127699152811048877791088036385236263479396660046668363585396700508110409299723073231383419459127962493159187464477608931786200119948456043403620788305408759360001278771463477446625872424102210445571665529180160589193209197176416247370294376305284974203984013058069319230505753222933570661072227652065701222694671087612566774414708598137466690912999839839577737192898474249085791659298722565437223632414643073713125771691513089295304577369825916589570608394317434465985897287999138464079265863066977762928511236552752066866281227061682926231976156215966366832164539221891868376351915932316185803966015462752352010450743689445198811250230503058785850565754167635981931870858027826086094758905270718509204172018689266192252201713834174525975337323157984813352179352937144418796260815054206799477087842083315922442230210611862380531290804595472701944342885825031065326832549935163844159373304250077619267231842120154184023594313480078626764005117098298731025316694776944952508280404212161237611594348022526577609643117063230711532610793459831206031062335090515716361377766726321377048218696996859742057590828466379967857329384889856687677804527558759784630086108439062636446529563653856939931484003463265072741771133029951132977973654527340129425267371653073537527115495384125925882713648414426099837164319037941077031559370711185055072527396503320677107933853769965095308497353002140822676261915462818902743125811072847362168647431900543150202410416150669410128776052129493958379537196233294059620886042466354555363463525964428165390257329447239852950584338424395268539950666478613236649993122882920478172229519463652550589389683946055051547880613602695348261264929388850947369008237490304897573370810774961115737549569042360330628420487602407848442160445824185578396700875655246687036917475947072998607037439204263160287887279363921088768637293844090160651859565730056991120864390112873710907930923350880472858479280682996343955770152449233082747947992933261513377596414292058923284929516087529618417965651674186512200593713536230932173004104362206926618226627835356772267396081339025924398709778936327701900600544180079167426034285170794425572266591107183953291275751018044250632313194300834627417958194177720154211793274505834975716154179923099396113458031002991956149922396764500292240858515272719754813788834433293286864375031105228346773170510197398262520307680513661480500741343629170049391187739083174032740392080272622401185076742687414530553826768229861507971982134584312988626821035588933583848528226288048957220349215322224492508163555652461606169407900346345827826385853328817677369836815526302491906146434328996683646603192081913464086147484783609947005399506989028931153080334804120982139225262614452118686154918775909401809699159204767057647087460834164300126019355718498564561739679984369948182713330734390751990995403554228140152331807852144927235629865452148613631797905792660451536408006792414851795981054928321970409539318179172965008088482490281768955160398402168860595715148807666842490888116423459434340715967828608487346972256401941705183312432545660606632700918776476983875318069471052352782639767116896428153183247112553868115531193603916260471189848859775555092705220003616344395345551376655917940427905501608497332340191646230495758463008444104681655642554129772197732466617205362029512687880431324230766966050246319178187200273148337420314616510461710053850377943560721113198208729913253679412835255033717511398559943608357210450051246882369827591828065293331589521182569060748014597212713747843547582278845042118281705191699407425556780258446468932510260810599517862678217137377479621909247950120003355791762053495393370430067547350836618170842594592347611960518811735532109264983509868780773955145114631163640180557742208667692792498797823489161435764676320725298459176663082712355104942940459665009568612659146723649907672555936149743298387451003091143780460404626475203424929913602623500915810077597951331771609578459071570488548992301356856760672427131116091199778793737842399743170018535386048020684960187868989747316419845243750829443420014271928680208062107237237469517202660439400362983163502694809769926789290459530435970959776588705984754983946631175855042010491427713712657890027214347521268183831861227512844778239172755511314256174514242540231456927231139109450377077419626825737447897656512950939626363293283406925824938993041716309988206161617678362235821219711148938791300552526442394287293438360116043674994410232314781828738978755352009527162142342823740929393604405238865979466590632106775838241831172479025308185178926811391325419260503122233510472059529465237535363988073477116141311581649115385377856161463035904903782945678037978439456299171283182958298605714201029278293892904107456462132402363924665828340900990013643899595038285329944455604784754658674727712378012014946788730293365942869393080692788814374993985463777818243383992671960453286017757438246803542301969446304763086276397787526355421047210366787220074930758318566672712321899691365114747883232187197423674371369065795202376661355277330408717574657487174522997288459597099498213658627302634280503078841591843376620820148785363883128276072903249839587248507730548562855102471760906465983345166162173402804675090458500627344134906082730939475405226049902215337053759869816006177678114424386234114537718292230020773705814983450181275745328197864051212276635876811885142343224951239676993854275687847485437274920094339011500573301252696066291211110329502684134617952444559200125889875501597644909847758445316261801353127840973827700485404837500208740677760891552461372726376466858246107582005035362035976358640496824212967445488149173462896627643254571504778241913759796050594881748278656537767446934277890793906017423705568298900463645798059002873159031049100006712157377882007671277491832414546762484114974505387731344691127832181614702887226432736481978222012464616319475088097511524189090621559420029833526737964405700612780963787708518334430815430376641328310743911859781732800904430323986572852448526652955872627690364710656636342520957103160584930564046780642252183667778159764457272490000484047144832464797162327318735072102080473957285608005790713455534930448343653935921477871341173984247419381488786101017880096316222482636434239560236262401465466731413168877390668515593806596369942480260204864166940902880412765695458392134808938791848371577836295816979079571124707789350427033810820346323429093812667968381412550333236094280956358851120527054702756850879943229218974983989126478771132615682280529274398434898576448017697724537929819517683843051128908254813511025709490785192179471954678448860040326534737913594386384410498388852145196325721634125198577484644908566819880685501935699861002545451344513789539051473951017287530553650399216141561879767387113086375632566225602256098626226173727077822941612773915936574722953151190742170610858720482552898006337880326075408907220043950137931874173745665873917818770557687357344545672752568473955433934052711030857142370552410267192921878335097099914309734421640371537729763848474040900301093102776612174630049007260033305433573168794733306834604102239879570933701616256292298409946688573981378846615751533323631387803382008577171060049579131919318886334258369474373067755090439291761069014663479351061529848187872383252403993703805746318866485675124029868382040642164256254925430066876304482686823935796381644634648760321700545629969851944713377289836590114529882986362732873512450145631501580601745087742135616128811231799957545131539464129237979571088894964053569883939192693649728881807704131339098803916634325057629297361253528224425569188398353488079126409874954458351179526031639579084221546030715540687126983469962634961471157477196366585698332243342642011574528190239401156144278554575253155169020711327746114045806905988589894637234864535754510586161726100170932226599257190578674009376497514251500545692776020854355909011837980535898973257645783384841635796824132315965358331474125732584341537733057491835946583952403392005118160571483497347549857972889354025191638694161534609384087066399689057869519526598701597227137764620182134220327679505588037623134121030200978134427752036733863707828928468980830418820745750912828464766493523303700870596271213860352451907574972030250542444204177008853544474493316964252457910140692795417491747368434792322601538653122412864074096483781306099099657148355603895722442758832724117714791897950601343934665211978577400736132335925098003657905128289727810681854545746378916021477017549934189046375349904339020549447089986972986264210092672487171298886822765970647377537422118885850156422534574762802133301707586694050416082852868884025706101992602797552449878668223842184697253372378439311201403501215459724870906755783326990378313088140234086919864780591293742542776219473960245548115363136448384018442657223113188466851815801816950662733606562308142251951418677422304841921474586094804935187091240263432601338899613718368756460155498985467328452829287052494805127354798302004937022395891329314378886988726092494003869168399003077637233611270473416459638133889323469521196557595737640291704781123233097927286631299951055840076805860914705116415298787095321599561095924597212212649062713747506071844234377523929897766419608618971579006810735768750661693640873835829316571639802889527778939667754154163078994501643634345552513548565768391255644250831144044654853219854952712474927806530273095647267673539356201508053277656006283849920883873540932659286542373699481796760390681367239578596960294735914252735789392771368055254439141727767339849345284995612314988500571851258240080433826037318800639424190596215177043601508829797142795634608458457250196156075857290216454750115249642777397611567627764066634636127437609259803900445911097036452354066235563583186972390681542133567332654224062398400733447137511146990162205490874047891154972250076408283170545921141817005224485746424869018330023209602599306099503112061058738644211600551189141517890859212847574231841661925195582734534690708610710441546129604809062786142473112743987224933086232391542861622286578554930499692037879958298454740641910399404941727494054583472322694268955430883605549737267083461044391733559863836922261209234863955825530725100119126973950615770686686096739730628815353642588942448150291839850448050517832023810452713398054592980490457934039233967081519131690066885321163007711723132883121073278183009521453032211055383201978889450078173724653333680373892442302024794823125657835535068302928158772045902834828598092622171461241708309047001864092141692608257624211606486003716278134519407854308335771643775346528366841076966846571119898754907879547862967311036306407994341801428916788282848955390637477259518325430210708780444280226552851477849111141961973271918228181686453979032040253925725980746560906788443940648713445832692120379257665463534115095215239231776660330478508927972152276964859820887837151627559185345251296350455187946180881776054804184645512555317506449819460372236496915646258153775218037258522407718056080626996767318993862635279780950138466889265051236026531633264429353170813015613269225492498705677909968762464362576381056889177798403773280537162553304757447174430230241736804638462130002264455399674190115907203419515794261496126448747954728178718947395874744800817485895021099272165601495758306992019555225998767700797683416134074910485309498748575441106482372386466159212833928984410041166868527366966803749723507453274048760164885737643682948213835544626261169684962382295644373047055566694476803078209962520964419549756488067829261546962188345100394438900843004368950830580162613218969823713822108099480711365340088639862326660783343638397920863202314934050598819744881891868504651907275906529825004602098174263052602487141760462723670574507518817870767310816309953897629781529650220142377875152110947042570527986168191008399138518624307574256507681983048025008534532215321493436649833146373269903590847029790236244291606133039318487727761120597572756414619673304634015683721119736221994574735460261759819701078043675334899293804965033457783476990233086847067686302359736733116620993973800125809972800795665862953784405251968479368317502859545300514632568729942863579278359354000358718889276260303062901764959691908749603597217700134961567747875958054973732266407257753152819186418558331165612385186855629256651760483331965055106819672466050916735965138650507333013676623009310902445675078547089436076183289075927141562525010611769575602277840224116629406864408448184287026311955993984584427467620270647492389410760399753546436233061865260055461716202723466491866640285282612274080907237139829404818215252673483131545307960614258684242962778894043616537713142988303036614587499739040489876096272238787304081235791598592469413571825299366081754911082146622676024108917115241936006298241754004748835031586226380469655229344015673595659255953970850160622401641520186472576376356022828926197994181808218930225490273838473852677684969396532274367706704162992736800497886706876977315317543210917013291036955666701981703008463517664714198685866422144236389044323854168135785132565575227608294265738929941835803721236467479518337175363107552967793512310337180556700335645563609043997989928375223112602320370392626240826008756373675112428223286889435333456712547952401626859780209645885928854301723147149985186739747874365937100393404236148060501997839187886461388778905782825522538734839662213537468599764797510275859408534168302881277240211392646660190157808018455992005712951495873618636487671918361753253535690377283003557747163851534946274662254934321104942577210979828439064571278851534394029158222993678048776669779022549207223293562181476739446033571837118961696109523849961381595621434952356328989111823371761610725429996344844570859231863317971287993833324823728134663830657397551997884694064221872909483172667046608919920112480044105614609186921910497255628573991618561239025320513580104423903523283186164514347664220129096931690853186775206520804377172869352710143378337559396255230114755887902124537955732890728390453496484782751801946078837864412055331770031169422151441098270085175589664007148439287238168786750636253669635720277540678247263045259865159999974092880968349358237053656650279466408057004677001731041246424716378591097538033105993813573642321161063659702293028561915115228956711039425729778900782031657416611424057858551710038551687445978777043242148178060632509929660687056867986870925084632368850822429777728865251111401678252925143373044786965774892422349748947050545911597829495897238935630662613621209716663431291995575428870311004222725499578981706870672272811626271977740556855280352700234708570103671177432163368838927728526163412299882413470961557845801814025187539791495838492138846928164945768190050849874948628988888698643466527268635607800949221017831635820427053286106202054125288822033561723391323183430630286797550191489038434439953293976009988477875458750834315452496952836269873670609890704473073940418502469024757406239472872772265184035770620878384392897998312997770675122758297221328235562763724619172600320194297868324324531140113232331170243733315330824814102465488175404287468918206811716751124968221993130167310026813284990896608585208341959175821361859625404171188441009819831560806101535390175814773459278222024702353543685028075226770355004593957094314758913067474918804857616542708310701312358999592454733946108786003623019911530465536145325981152090285031710054851499475710736299317820314477703528008800893793828462769531333760766644513402344134044967601650063532716979426658063760855409015395246725722635481985118728053923930187804751690850862722964247268570862258554208101798866069912100460366452946172977016006343867376843261613576760670655992033851942872642769912711099765583397502422223752263260657572347265412646792803838611395529166093258118507597617176465529050217541392867193472404186945221605257170095519696364073601956541586878034001075306528639000841784469138045250915966878950659321661201619269083015037844050786529395665476751649254768011033844261982003215505404201870281333663029192409619957922767314743369974399145591365012736141902221871017515797502881116358841183813537752188982451336348782795315084099889681383390089262828855114203662377541724438715853090009902331383137692859418845772491951604138765652785077949235612747425985855079955881611913725481539626031373900870428434658897326887868788737742827333828884138167303066631767301088091524534145351454167638642129925123140292534475195943267644778032512087630335110938019501268042459250366481774821879176597780432613342168924969503838015899335687122235454166395420446968566819624476538815872907587065212155951195327769616687409458552309981601915442453446773493650497107505381902931096978517748402915089290663148146424500178691727474750744785255494916268881993892083832461432823568455579931752524678782803385082933679081327257482999319133218515915491593145773136623552450259848836459829705096664580418426526536409325703347265102465698349513837085196159605730744772217637465680861705904065494573162981730608927879134049549880968886517191236881916207798716005821862669880856689924487166588560928355256131330068123203401576858733652269570888514390821024923922163367979905780958456367845382255405588574352968432779117588458123705114086936549711658363803223473789590675071833033437030129277509030885702450110952375674215626629332709919642978980892968288215534799232085436682935215027596899167385670352489360919534414748584401597290971667206406695827291559326293827813096313370906874381086738180297535338661718076945983140730619708073246851820999457119256793466343542505079789125332903713270211233884299829329440770269361389500294603569047460620935011485562629689553580966471567883921992040698498071554887735721566313809910381664126509947101645435798319162108870213972082912109610035093945336943920490020278866061168290861936947324081589874267929659706433678378171067473996735533707258012629077317053234570553153897944863954918058913941748036019200718131966921660002889011719723157457510044657027722967361501906099544129172536890919803783118945037789060010265626335891342115378837062642714711619918211889001155703644949740258979994621534763796786099335866815242842783962666140902020098174911828651560089791474823435473533730115200335732935000454729291394239810212585161861427601992425131226394565258774440669625789262688548234262155049852038081497883315994635180623020423886930280090447742413274186628247387165376583476933554838001669777116900346449998711640239715649826865811060806963577942148878157363425188364277568972990726090618297268793818549485651074146698577972738457830752061187316719136104155036204491387973783615342436675017793729296764555156036122838846396703799191491198855191647183155912920288124372325574094565182488935804722137209231243084160922903699383161549645653171382411632147622898509904313007475068560223344340232456891975207665514483477865228891687566125013625761643253508044885895466743567312238491623031264148762909979640428301104567751466567008950036745568622375903817151069437623919708397201461539909439547481282778617303477223610893830895446632733188940317849416102637061198643992672850587028699115188889940537357363220004181420730632240517383389266006781071754088288735543097945376639145673827039548510216798968375480605555333442276978844818550340474671552425099406601113353074462229345759213117424939835628965708054013799947817578313281745791934863088106763845027145963146138469744689691520176390913781434173761842249413660143829485199992410549272686882986959599835012945933187808655332796665304327825882689095832515805482670930515752069715238761470666720232946658934820722218553857267771120252320755258653645629541445072842587132402070971274648011673311317225256262325386681876919205781991790995500732426801377935259795048007590749008661413314342147093261959296039159573097527090608144543918349112371889055117913485695301339188951368953600317555785134348725022846567940649648592729675732254370557164527099738563896469777716922385292747259852975413330225106068886512093059649193676270622213716577220494603038865116823844046813692607613853790486054357282081362000124305209999161624073912567999527168911455175820438033578867255478831688399777572977286701193178355876251134035460849679160376740286265253476584803301922670280643564940183441075391282288628493397243737022610892726952964872823721833551980154058428826028944781090963499606650405468842084384377681845884487531450936494019590499691164397987520940397291691962869135940740321464923428512197493465679248196863665929494215616116843190047684986482814675271572151206842490848654357819762958041462961117444218499352038335414692844434498854222906022612617411736627238040403439127695973353919151179106403275123584038490309845608682443792430318792755716807238398109537830980625064862847623661803597856484567203678978238267978993121959305535922840663990409214856644804331934164246079495603382897485758597269006996417173010675387929679910767809589604056875840261428532885758062842554646091250324689103379449154594455120282805795177368333372405048315318559386663179289264736828734167928903321362968593388111439737565841215625177876596054465392537443371942435905678144523570829264350519086946149499773657170091678651732184908904286651541636650169043949177661707349752220585281218068850005431274183491240924362136678666544507234910363191071186796512475004034443531630584776191713235465590409195933235239203599741878487044120386216854183616251976849342175281278525737159319479082305290355652390637323590080681460708614776693769995255434152348489669684645575128642131634457834293920919393057647001100679212795813241211049881670144586432009725361194904703112002442545685755553051528501825145712042061237645897046787397564830548885868377154368453891787866651222970058691389464960510267821344273040347398236306787513965162114314048329457540230088432706783260974711757095958078431144101501659254622975744002855509731086328848419229631195867219430409623082121185040180298794759687816956130481273067425209399753514720512666772510339023495477016663401694966314230332031306603393734814709488716365868402616628778869705841219567846723859354764936263864086102066581618846121437820875520615615072945472891252529122540796065996241510043415118597525571238210605318973032283582933602117768446539609448572712444536824018976781244973569705627610160335305402541454364039968702836002488129477073151773495374272740826614264032543174310820297693218551555643504484815538824236420486595608014720026212584090373567953727987771607809889895128792694243574863948942861355186325214716538963276859546998963924519079396641254713585528250884225864994404698002180218123977402530463344958764709522916626709624591122183852121659374778871005543112391523822388820329681711111093610388201636849020427944147879006147106988780881275018091691705143275639371416656558531335990363918585645925630419230717585960841555104868531925553779362673433709920342485510323442801490338496111414279111147500685910490971859567832508952502996858015518252353570688958519104000582654990449366541512777175360361847424374563630831533585262469535406577348936671172727164054587805773062965064822765961481664446334047870981956223070010154030513877343991762713597449595592923518343849261174187840806412168757282161656372851182505562318134303777074722705573079321691183633725391986134232343577065340624951591814642138484986671586110473971925785294044655639188793538152444700364133990842838102081776861608142472492057470251481083124827204750203281575416244895880352811538572203968564064117974127172514550329321667181771996458657666040908711416278120843022550471712245516985336113342668210742168529064895550076673057920101579494048446953799988011111130260149091635709711284751401452386373653951195297645576355893151918814469357681253428463698282745166871575052922521207986848078791965802730633759943485384742994219653212108757281968137645095771692038131535654667241532625723425745355000515680932260205027223124218341308468546243056112185944065657155998410712504866187255493220316613880282790572801410927146180381588582665765514497073409266753493865396435327698063095339318761422477119739050015820870726113786028657941739465771774548100574443715764141988585585552382577593156505078991931933502390840028434657347164312012249238679333684230473317582966501906258849390951711610680025996034042302433031372484104028777695288903026381646396004749970441407132386463480205685764522786946495531518816128887248336320342572904562798362737913657765134861450664729265254908515816600291410553872905304404274875004506474458666395766589239606478639338625621050073744119225112997103247030661683912977278867507920308852975761822147005748808985082431845142353819903980126817175129332244923871952688586462094898715196651804034041176177560585079438881298971188831181601858256933591360834314946595550470314489790711205003709394976703666798761166336774360430400435366857971803501436384121700939426177591194988016116647185034514452790221954843716524487291158885912715386438667600679228041583793903453874150347823493021130902346501725887019614589487288791186702078776620210117507221128739088798716897488456897013507078887820572146170591221878102223902140813529245586359176882997077285777266014006352042495524687174260660814904577631586045961622423162865440328051349923414077830783739863584355446905280281140117193990739619673945995698833779367349693293842600063948382163457623404020324689861544753065270268291894545424946765034342585948694338836669523503065413353050309332548459759413908997186254810942147035920788105961678522054402947121612060063710537425145870418404787271754514037866980513120514725038618973086104849208709681589500970418348117240440852674029073002627039661483023370878654618849157991277832189302814386877744994917750042554007248220044515586340159753748110392257794100956446089778590343518009173058407872530604504332562668492292202999729993309836385490901110388913355952996878183850227419546497885857552405473920495578377779467455046756688928316403309745164389566147904808209111296154275700272295854363699561370640249649940949255416950617311842026010440333604544982174854885606138499879794967908400395058069462946194780464525681671223964563247774508235034902733447827032511373948634416293236400644142113057223591964521460904249425474468598581850656847740168678012219794147983241963721657412679844238674319720506995406686546695369418407426872189241505026638601094660288907342864864570776100778425677191228763782921448946940710583969492439789748840745462768200532363105762384226276115620304604501422402896218063095768069909943302176476579739635623275140633624948296304271609798589056897697800596515020176103461594263514845209941678372326028522768695812940798126328009274964618942467184555332075697490235413460906693393633971784671755707859639699566596334556581032971258954430219644909620866377600926391448946173801092914084739108861581304282364724987022584289893348161532376290654381900670504947832347377769825401346520214385953636869237116524298394491677479210524502106571224668454009114239920720027995664177313768126914079281543124909134492960669989083959907051227324786005136616918620125033420841674731592399602155417321863356126700177327512234019197227399500889264020259308269232018166891667273690592012523687230100928695323447640665813395042864635069445317911055067195420101037584870597979587833518447517468390554313309010139989053499376633740059326677418284890586056292560789111408771068926523017699888211787545038517175139753668956203063847891566597021718417816524398123749322839196491828227290769344135804597018834739107475635640447632052813124252420859980617548039526253944342846991288147510326783815462199484087143097634459414904560566493847160492032528750428544158376678949995182975795414415848138938162771781442563393157780714161814852458410805421916424032061003701155449542778384406825433890202648322304196582589361748856703261825438683912777980271089240752976516652290876775610158507809945504819060685712683934593237773813164227998005787493778386196822483992203646571514741844907031674342887995992680933624678089643490207771126000881743201935682374479766979982366839053379187922774629520439999143580351310400735779302394982003207575789390047864884639978596360056017665036749071292710141530047569877879239142022188078371946804584823108419440100695950130998211771029134960299779732655929563902957849132538436562063515786577659582252110955069688075965573855875757299148864544300894395684158697040305250828925385758791512025257992121108216032771246530752484170060052600430301503781967742129237921076070846585307998750806164928096789369409023940948498716957628366335766683380713762449485080940229960431382969937194061855881152696568037716935729029577475275938569768361059082775743465544261268270542587917850432018664602661663304312072668912218272451181142252419332756697802951654636005562306138785871904014750749724451854992014066931149710301825245135801328204115956363882243263434075915098126229204596136990157323804339824206624263000579055722349335605980370038084458233823130650119944571325022352752485921634546548073908748368779182650817891336968589522917833728315357139652378472825237348163140871612437577266041022633012972151349621261384838785484062121289120960730104109770919346703997384623130644521879266464376681362497378538484652297378458297467662426300806409533043918716808671281112323425733747564490768486869206194321099344447132179292927708734734452348251672874328934412619349801848781707602410804378608006864326474967544940676825767384787992325579378397788846607871475745933473120508220692614457631535852733786326373064835158028073376653711637339471701636349640878197256384029693458628657374879670266799951801885430925667085407502133717292854005301381370992389344318795499777707702739616483762499713580777324247970585435073416950161485604624867033163960005370621616493835354634573928046787497006481315034286018923655704294414824530079597481721442199719708594290105282290050862498529827007717594054208818685365148171040054928909628062998085239344961704375114365264548963405610309345381642089590497641695909912904033712045651100049846758794713743623308965298900129326626846225007777773378961458190833687372661857199240356151031882801747785254119761026941372693500587584043842576066565815928582955159816840506186851150082602584258090212231527946010359530032561751734911121856982282144108900615656532166838200010431424796683928589463357400048763871420873345098278380784851293565264841749892323241693470013389220752836013499015379272641441954464055978123858118472997055691492150485704261575900882771763458463873197765530931030249550693525413235328160483515279479286854965959549933299591045311773275904499335022235450256951894332910592437344109202456355742902117478974014932820545044385258125639432302784693732160781520396141371660442014103141269341224181250507558759845844281434303324896065452359079264573369877869891368385934666279940642582895554595101923146875956298102403616251224497323123549734917960572326667078761125938072522520501383709508114501170940908880358794876713567393798068537370254015572426336344934892170017394685111514641948961879687815074431905142417688981132681876011453970054426372524442901988919179426630186776610629758080997647944129790792619845388569963680607676514452488116748562764499352496306027140154349776116740059334275166087647212124161141574988316259123623138744965854868792804424593373060327440326684920669861948056451886133917768177922577815924825775920065990194661104406762656314656138629530178567110160141691666517300096684319415774405290034973135920383665754811677920401462240734069973443102800762370999839189437623071498532585548468047110550978679426832719788032872918095393321733084081427510106010497928641343479184979115001900105873598257868348071252437156584944347034373990172277628998860746077202015423992435412987106158417367143452686067657668283145698210451771041954811846419216737432120273051014328658053097744389619354416915034823287693994270820946499769992452042383225821564018642934497017468979920308392284868241106551783010200949083763796832757439191092992900544111363754726212940831529567318067461160140383386825376097234836690712005611999448894159031649725940598422889635434243259568679175147546105597530857438096033827375814374323071324439200866028979070625887688878883262562158598526680900131526073967064427056417497092716277551854184544850829870712082228628439038259194960818858966410943101881072766550095060271976641511534935026848872385622807829219783514128267926146722314551210972210838720674150594866943330967762686434026244167762323771974869735912985507587976853780756217189202119224245079865237494274851403385335485943950279402294971040582179222862569102614114521322230678294473690940565919481296765590383406156357052593631126891458234427453752737950485590331844738050424934879384340364196810367451490273330690997339425747186495472240820656972567756899236699254534247324664461557199235696734390233236746560430152618985452489958162545752388600321754401816017233038316701928637326966367622376004174151496076921785322175128087978903625195854740649710601644511029425815211113530357915937897393263161888418040855706544483579788046754354258191462160738316189533267688025605614660453029129552924040664550724587443203735397533330938271912199914773101938652543266830621062980064345371712791416137649342938920338871421194436870050546285330785951768777313129260123668660598591065134729652215552077440543921368597044200997814925869719011186886294055019674222032411136086058243453348184811296318020590623988832849336846910934836481937360301984730187224369422309958422275728719597191017286432780194393905308405886317624892074595686489998152517742806235551489908467169504146343931901939302124485251917256743410186618091967425513147737199332245760290036684829293043459668910810341728574339333838282600912926144867451413092949996904980786221320391318615611426656673620276365782959485226198195684261994972948439536755761190631405347413952696847504396182156266539529761715013490363521225918401312575653684095066713760451547752407360256686510364578308656917513749577848149659276081794461082205115819615383136905066719819389251913891921364508998322519406852172324856695017522179520341312958968589005185039621145313535179128802942492085239499559748994414161949968943079974061108620606722841225880088724928166314424556245922709991725218935027032671468884208707217851378925972737330445559099928068752348548548378297894108216693930433028835054008583722439229144812469703241919279759613049267929635451854268032209766826930746523336683559804329755663133814054914544299593125674694219947523670170526381445916067490981626044361957019178165639145084291996525785404877468831381498995453257565881084918626475572618139623188052549593066374547614376411483531419348124752271463811779183650679860247591424458874848715174226434036789975453599526676336947103294702312371136963713233654202211663119037680705831468176732637681016119001270946324020586956182010234840553950748567295708608419227397285277711291730235946060313288285608951527484258035266517406906230686046938573192400189918623026272211643702552393435923530330221307270760703456996824752473168166637529351731978270882889483822760019441384815456467118576872582804971515270416569347059582932803787245767223982612456624168255657927990980467871766324726741457698960988271202986141728471040219014359443201440016581750709243059738943749470005777808166251959936417279222101712209844772948861415970787906848434868117264250662122549465621164474979519922447974528647599205316903415987861365243512422220754861611278563808736565624859155320599044153325020421963543427411446265575720542160016472018867808716147329080388151180164298643260650503828792181840384882073006023972328828974041031386500595171624521198697890183915263170223596621411437259141342144678421221389788071895107008141958692257565640819296542292359186357013626449281457251731353696909695555234370816863916064456835479408170918272481172404049379947722520652403874773411055908078048260126742775314295485644652778442078496917576883192992362043397562494347066277333884048150835654438640661619729726920950636345188039974358384091562625037925380677748116455311978665775155211637453914487844120565486037956825743234962294495709376102672458003313816246395032045308553684088325921337863928209341003766210808222694078612913350424448827302069026728454026585228104773651762830068674135902778624417808463537903907908991458117483255742449604566925817770597025552416055769572226304982486516993437328602187280702393646403094765156555509209376722594511384809450078691439371552966306322552010448354763079763809134195333278319520507495572468979058653470626358311245313976545550925880428367152724013879137951020310003691627859582948487703257877195003677578128659743101033310916040208369607401475166874426945335962241176594148878346182058887088536833367781487935061415552402081346367433527895312328481279175842723113093270501703503334778310213168858135058905617642489825276529978067406237806775049559481233549795561645950107338228635013467526134799805643676485524766443775258953354782467827449979173746320776245913971829049660926535989213626496732440610083152837294621145490346677228475813680112708224508980777512423393211080103887450810960425358630228131391145449461776727563301934541963543051698259794774909864151307702570340206451334810082013644231169302481063951854117357520125906066468018285113636176137161313789770436225733365583393473294567296959202251473586789179131981059982094916060622413586328613496308743052608965876439132367872390329849201432183419282039459925063449390999621101186401696053396318256592007698365205504063595773715192992784051981351528207456751224994227827987809502557336943276508085033880933921114153726691851390935021606940248206325755127886639311639677654157893948915408568146238208759498479856365759159399810162939100600665829629832309625898098405113841639358111507113221477268048737281861142325407781764673725264738652608418202952175900998518833170685146625864891989437012513175409445672739911014154409098778484530981459117584511448250395492998338220866435465956462848031657717872938527286486184594237719441419138312504159773358436644570159594271507808202422815419341068730813772288281274443801072552595924555214499871908934833223877328043876794045173733076062420534145566598862705702648375296922849055953060725854760170086563089198790297090944264925927290908099564348460158629592505916851102735053825502558460610937210315482032572492209627490131922234810601692790078748395859473410951473434677051013907512857026541298677056018490727575494206454216506094044154764569145240450551236478194599369873975167322407969020889391748156684921765038623410388169008222823204156032590298420471599544956455142350002386938410552306458012920574710904763965056767951485014058988311348689919687274989433338216918416906767454466447682098994929041704371866314313448778940299297147808369391921411411940773860688068342502628836325556562806842558192725999946699543980607595117409701302967501235268305417017301192262000566097848328653963008484109667198755814702059994538218526909709264067656283096697509636783139813833650195670839900180892695712342005705342180449197430654632748278545002133485320350165938325743105399451378607772712122816869591366509497327188113216225964853801154789531507001233975888026500046978521074197934023009361689224172167103918478931537502687296976071491713817189723131628073874471741520045000320506565599698175269819144489668011006616840788438726017043539013288074935290051563618893706177765102132771864249371964537402104012244957511808906737689345154575934493569993553572006974211953477794708195576195967243343113478088737880361480413507253218044411955884857202177678216278159043676569323061413151055395303016532992857801928962263422516782056725311321843398058615694113795764290326044419672667765769946539969122291016858896321194792811358368351215169544890724688921002039485148338197783013404731475201298694956010316868753861472199493666638436324198088524005714553691836820182677906224234585424016310403493471409305024178241848704457482720735687635563413130816723622924400668137563653411873271830248298443599940100514370421241848384580465757404039133891220959039567477536884555344938459467557922902342328972775003057290812759413752644863617259573823554572573426910202873736292058504574146801832806044291783603085811541387403554152893604826909737111312450697647760802165844480854566845238261374790932834847713774229294558827922695812413777098778228654102439483924348389080433970097963163208906416251104320437869949786258446136029909209274787837779927030633668844096314622557923541065973122687250035278093890610657617468843535342008492860830426533386105603584110783518133735520936405420432142806254929394335978592971512306092295659499066127260821369950135694980008775428162688797967179962438038887423219313727051346988444283937077114685266823929688443147003177295433256528797084203439438026005442657505843713056681238446731548292596332309392894154170029588510223438644685810278802992106199876650764152726078815386299360134891682597025208527894130817483370168740515113265538905157908894450023977530267364641163930284924310099787646216564155374473841048154774019900611580940649476664647292641496555900218040025220342583908557105773401410391965067124708625473539502078824452852404920824887299744579751240126026828718479484740693940349050769117279536984677925728611032613318440414392403395946724403291718866958669992298276134301118599989652687521895435183844079308239523277894070652346265646001238813796001621186785153869823168451060786186198892310848190329227952430792839570512122475834556115533421847055982124973668850073711655196015067582553680328382118135062306214076849740964815730669232537580080245833262659702703014785657722840116156408241933590945034313482500383978242430454589553993003372283995482814732672062033449571577047453700010908534772922569406636113907743482296687308640445358817863822747464276453052974948060558974575461710636916441069213996419695588883434281996155780830007941182010875771888314086950518635064510314579899210150523513922722792015422970401566723836048729435772098325550099392857172718941510297930163568044401194624955222670318599082527609434154311131914839505312074002287208267467409747943819724931475620087578738552114434688173930404146062726892648844123548346091186181726309063751368510436002709334696405717655051980069436839818070169200948296110669436901571885045083255575911939773679759213029694573902498927697876433016628513637890157170506808236990984694609263991011989113900068850038966668606296724091736875775041380625824327414397813555798376030053407092743095439080995817695743780937551748048425523756245027631070290330077528400678446949667436634398912766196335496122039938463678159489137060191493530241735466564205197025036865724633267554300734360579804097245257461938424417634141651102337220751364088178653525014588042146571514148904841170955982475108599785051410969125696786133545433430549488653374591244046115562069474855833351667448898627178576098414496973149822200531622240354117554845597792908738357238097160649671387251617008088175785980852182449065860214060047356057913850644809395531022921616706551053135943814969733321241151179150837276189474958669726080629448308997263480914210631004824133799541502574773931881600252485017266088775558144012373028541533144107455555421550898316532877298012435133830815547100124606617125525077901913937149485485288080799270986568252914957594841343763475413554051575167714474039485469993541287258784636912313719655714251377667167044224459633819946162338787802513036394687502071593802035637991078676410281889668563766527397482333860116937672971887073785980446155471954750047108777633323417847745401940088252372948957014373347775330773791519611765022064283988559986846157549073452383081440610048361676572359770217457104599062968321542292706118144674146504293681971089923836777749713877984923152873887862944733337342503231593874439540834673874068952463763501126095405497345337495480301018338387468074842505679388098327518634349485540838484935020627827331561900716387582052902148930860557109485269870102272051777927232203645203634988188901589770189247903386173585392303597521216358058819846004155514935637522173127488802979600191036545015918491024629584160775211208471469108158545279404222070353977992467165952015297146120605595524562452338834904963351041561240331964937253778579448066969667339844086665425147722213036882767240885643088927828998088122761893685862756272550276646603884711775793701678234343283834799539222078059732058429382205658312854784538802058016371806149463250959355478989026315499867782162135293005331451939974113010648846701962817480753836846025612678935237709348331973741856472768343439607989672911393794797213277375882776040884351730029864519055628149123060070198412449851664367551579385168419533650518364872437842355403680501815981958397693500467025633604405222647710727088816332214410454746635331566688542686406199886675302318471100374433924518618121635749053395589254466629130915879226532469539815160385488296114627744747950327832425762857590695099652903540525779087960674399474396749738122169611467634666126438515041195303549719753119396745529741061403724743087977764822533218012633594249707399405634041095968020024315924036750399554809059811670177855360217121314084163096343906816974462630761919664030864225351101768098414036805383951866812873897455395023348761091440679584093913584401731366604076515255658014874048188504936081672371902577006775415753879657365631323013135788990155698924172866568159511021358008568037780636974564815217610499226425555678062194522694558427931846453820950174463933528163144444208191316351168715994008137343724323377561680764333720476987231786488814042895866195859627843427554047190540710812879388781121575936991762384191033830505971868001503346556989108189703752301159286356354186515885115184875075881346097490070792904662725438450123818844199157095239730308344565397909864109680058522967246419957262140574736730112511971659059736571314555141245096858572726189101589859833980235512696615625732202104325860396287397455771025319875101581632454473082036806585088728905454263320363629087558886992464466646814767323560517594949954556415261003104907240494457510475238596042886945138167367977166643673016542800321532486421138929148221252257332864325235172316794019128195084988368332620685130430833525082947104419094379049904007912346529394960012793436183420685354416194866290998242632893703842615716642336442276539879788942255611358748419694295207803523616073982990913853117553307973857497311466738034671593051702401931766316789079973260297706866190704720263806239502422433633689581719928505291248701763427052385729349226610615555077390164895590153256779498383448791224688080102432852777861611216562779831376754317553482390808386395195191305753745150472527685635737960222135043443148920256746691666926726408983875826432031181875054101362843790084927065800964609390295338710716546015065566440537573420825755147988908587194700229490069579792715216543936651011841798594002361147288735387214474892703799618046936668557510416545921010363559591068940351471292750327147226932081098605688083165148801649714604137922159020299583300349256447014311823921055558279065646483307744336051415897712499999622581277605393086045098746750613456111315769997418532542452894960145857172612289990452096341526867148038655734964258938718719682205051713457872614951303404874778583043470467694908633216576194430538788092647772084966531847610214799287313430962149650423193618089016956132044982052609764477420836774717164364684208547287527333146735867678982169446593488575347695769585650819467876458211063370721249826573239226000055637397857354817547097779400758715075751614931620057047819683543010469523449278867441591119816702518755054092429175346965735184775517941670061686978091019482683386205743063221341995298483482817250575171838500771722183045950810907455953914629968488823758828184460070921654261013963569879453406952159241471889826571818298799283149637938342008445765120450301083929657381916736863016495910302031059935718696306893340479504846957487532282835478100515341870138263977820256150286081954326320907951448222725383009982972449206391425075268291738564764834646041493405213490824694872893224390127178383794254754203999545814976893080097365274604084295691819963993599684972597593971095742167107834413147294821756454418593290711406797449880608412431734065142497066690445861351294077380112886332397969476748616950839701942666951151296599560201750728498092620812778882248199798308030074392858744744626390768139386711482725159633252362428581458778791414434831853622938831090144671611818725041054237998911801535277881725661518710103088993415469249002752081877705004931381228913766853429947004314936938224853950461773180906868217394893020560461375160845413380331230082440156960754139812389629242341211160165193657357524120974728845909782223975388517702913710589405898950167658868359911994202141212731730291826231139553730890918242749479784237576239376043170055353755052047884040586263355848132539136291402119077144037240495026889383124478934930433543629693740909944847410252441880302219014993269970597679910455240833823390960725468944500506732847533775111459744564454886659061951281229296322730659109842502529932352202303012927879467982831849722399669690600689634066578387912030749482884324482563197499075585691217630842884560589660647382335778202528849331621631190264934423788886027510650012490528823458463604894451644925446777402997330381576097798254085427525585101351221515108327578224220536190723545939041190066398745033939598398136712160985391453439179226552844616511274795548766641343627322969860639768710684660742128960028844847654096228938874522064290535777584864932418372247327957928153876570999526338947122144223915517330002745278130801362318687460029712769467139434763813211909901561220388561242362946138703819722968310410922717667876158404670747260846706484610632406628652888710857046037791482927305528292154945193892521403493001567206151901512340783401017622422844963069551725675854375851983774342991983799616484423756020976714458795049499495676156388758671013093791434508132275036159190616422709143066956429683793622845039759099954545902090236283996933774417737823814920854566590096158388384726714337450279410219643131218374991393510685979068196639582345212465703268973794874026237069206106538528735028808107171921240053322675991646624222575525693857877895488372321730144229795064455159615147199688132382418883850687397877795544307995508914320585868557497415644868406160193092997614429403201949651118734074031786220777038546815406999896534160584883963268250573740002209132492039726032654030656760461986307408465138626465773254183311216618812370965498257132451978475940211996786599213883119029503814819093054011967531823171518354829691143233375633475206976884091419373548365248349985169319230690332551907765149247502719414663857365100975358009563037890210857947452034544089765650373024897411476465961846855838542023671358167502978430210533311794813583570586187881214687494313274379161893857143457619609576089212761351548120692169485238265488108277146846463012236421436875886134106055439658150750161659594750768975939515773158216856212334546858100198519489774802109156227016130608356434867100856442374469759921494214162043166745494275487291736718501626442074019908681000381369078962740827079544100389358939933118398876185278270571515800559384722747444535377305582285896397492995224894404178195081623574187791981511328544409265374586271002066810516700110146698772815775974925580657610349968397673148806928024133908256977845460797412016028845411270160118229479603291754437154534586735204273814705683588982133795773500339657607462234139017351441790176724279023414379989207597129241713249822233424256210283559850763336139359183519882010446071737739680458895776062528962327932635499519966598484448974242530951098879248964584447967060961266603949005364911736468887541543342002920408345173364033788608560192060524287379355457382125577901109714548148978110791491070877965794658262242479212030451162211694287137517062372002079631588106097079962986155997543248292501348219177816059395238567162146732304999143350403423509502714703434137153755737146660575708272936342452638301887828883405293848652794212471628719288279107983035634852223635581437543244393277287517527488833531994863066226450623011946042032729541612818195633950667129980175906584635144417478695550210372536629392981048385079875363327354854309662940902764848358885017267812596822861691872261267418406486643426847434904827176124575240688841948564420448377224240808831683747458763178031897618216676426682538862132221853101208010036271397301734499965865006721530290820753991261729705245579481990436690231353590014954684378619467457775117078612362240130630902554965366711313704923404988755171012656789027826112873941678813681960779240313565224079403828428334541112675172848564184766166730514674946546180499484548691769578736860028983367402712425767419994306774645859462464332029574435756972483632779160722787773250877658808530133803066915150079398004196434132893923465364192120221349875558201572093894745024178747764072725480204715863461285289313769909622154539004340632905260206358753023771222556986839054284601910101583579065642063582680468432058322928817103502758338002707919693977460511993001537424982656202688312066274141520162211688049953778536663420760377732014631699906745916844472243182917578429507136375839992093701633185651567427741768826887033835981035346244424321127244663017532190053946341540650338380210111790166409453556414439868919025623241816455829872347879486156936434291058858517188866600900403779069915103443898977301418080261347712012559505103364389941436031840823964102560670959407910911849185272026510184894743480039312586890685684826413287119140919189898060944341920024417335321803877828503246784373253843435202121737241739552783972364274559008329263856201451724462637696413450307544744509443299830941322374876162802310371676048510561223283721051476037053740222829287101356849315106146652660563940841007711721973713276185338496887981981571997614430892716708196454472520975723304467319610093684100906638695895453147122389479503277400259489250685671769477897851580893397186658280882588178545498020666639471274199644158930106464991023957393606843052322943859157504754830826102224595354606826070712788040249782006412014636081593416511600543989717213988775372548274847004851409776515843066036839004121499341887352544242238932856902587307922676877809525451677659095314403803415473900947087803571834290987461350771915389853186291493684635218901360931267494220789794665958634702143216280152928306439863144450102023575212583588550781354134482394359911395881714821862818551852773963343746674885177696566280306888545141162382220384177997213880546672771879517709381838979898784282055142172600464048174219354107170809788450822184363152710109360222435596144063740655217770321125377963787664944540115464654075540896739491819725391772594891629058879184416153396757394140508578310210039418934363829962292902932862011073989866300177190599682509443798773205472199172686455730550985839433445018057324869448843219803164405544516639101894042896730030113270118072113849014629246290602603797349874551948832424881827336955461827720948900476001377225072597585238907171654457479481857739877499596088988125062725585063998148770132116139609522001688334635345855778687645766283071070883154697865304571696797851127353517904725950553031389720070273115949839895231288417661698823398458790682821921904007511663356519629650854749074596448242411070599678083056726973496478520953431480587101576539023706844140865705548826875259646849358090276179694876781421708524044214034447883239369778511081417746321127398485345505071661234120916910951751908624752858826229937091962030729745172558299450685986588221217486597559874940369537133362142247213704568049361874630446819214523634043295406989357800565518618102721535737995945999571194973914258360690716969806236759848226028968122585490852303622946674795145778388643772191384109937053613338154863030423580486150967664176857330522503728656332108004203912489705321231971012164778702695609042715028786644644244968632026378628320205358603510431657480215532061147760048296287512347181303596610211381548257446819586984757679094060570029738181966365092121078532740204178107668249056073815498605887113509396392069553992681612727695860543785896970041220193255321350035324604168831675339877604064815309784626032450040719081129527132281475704932347837284705658898341429446382892819116724788110302053771295751703933894058830380104136986278358106410366709971044460494010662300421890918412039101083495535672125320825984774324460400237103874150113438239681237103305047043788804579474666428501162315811322601639061914901793192525104095813015225444438089855794087378440732370693682600508707884034363152242804275308604619138027976242811143924161461047505409727549693058019578998212591712804162918949785769136385143157907222090258999665731423248254803705520036422367180543651320493662391498925568135285020112487354783845647030878187716135318102913429857715366600649968176024491640394945142058459683678374742855523484349049147998547391421070340306587521217480167325741353771226660850128879598589070269133416687840261961443819363099916573312505380974729589389627651365304360331063501831381509074011712609543499914252057342215308222387436463168710011521209555787911620032532947090293280191974650232867047179114181894980910593643850791380694337473661521597221617861360006141246649727599096082361376864662295997455379605004292828023912358685590111274332150816586873969680002913947619751742307267081778160266076069469701697713741635468226658780245731565161867655612936011274971528473536150437019047927699680058241016679517587018347815512664177575735246305156650429067750943106322144894122702307613953085327384077051906463620331788220163417500359082858490789910084677508842102923670284001168560470495885490305915037916629321571365786812945053794070620173550780530882206721342836817368107250972539935598466018700254552161371098035442599520215375626939707761114382042997296517884879359811123259450861692979373468337468073855528421601526966888258341786387434190399943594887750104371682067506102897521807280136360397232655001050175415423830643980615255848600350585325688459792445030794538257036219762062323373229226357096568891572071000285965740611621447537368662959733920861457287384729668999447762150813996687407645841209955150939399059719167705404567244126236458612286222064686165133872363470369897685880515008195252947419392118454831326465196720740908295812398129002493768234657747365530619101611661861853463311078919612926007462614280131338865042351159578678548348570466108137879122871585618923198718917431837400553989654598637388069114584072219947296636081436953729137630983923089667531980293138173524106675238547826584866177178275114269367164425831285849478237059992842126229895642121332708761886898285545309723935632087955801022427802671267716929732319088136003878414815378076745166643669568120020250988867146427000368380228407610270627857638405688526796629568586667499630381379124131923016551076859633142358320062506577967135247621189418711471875814662730643825169247391278677127790020988702147536050969911345174316915261186400984120925121234434234863720000303390767175261036333984612372530284474280047625288148276202594977876853559737717142486052949283426203112091308970579544601307600400981574831288804980728980249112081180917524987860761039815893738631301523283547813311970065916407725873060810912230634862701251130004754960399422227936696971811112359091547349806941852079462923628902095047310430664610813393620490985594307375842158633546534834906070157444512861514231770411783951759921663431308252709123443050089297133311796900046435978181020781271448299642730415438108019926536059917818087077528681524340453809928075740662890304446637413108868953594596100771593200264637202467048606807841795619872468997998805130886611827917162151646938012251230835372433642267109637496428884512182104096594594324024578083412985473423894382808583171374879510368551700988438139254914025442954557198909816817074911186233927200830586123456662279256796289992229668782875770082310301241226192872851118394247530066997491855110566469142027288493691523222649808097394180699109596365510920366677721625801196565540889169019805870833884582982666149691594360989657419790241215251084074642063392970896255250933498375976764155295172693095022896334105073347529983401988770061350083973593789201407752335485912503148827718971801083427344773575320101483111397927152417194451644297743521541239964052102585237183857381548341642637027831189517898920437851864091967619530450080911900126926324620350203062830591157425612600788312275181144721060810052912403945077869798306073222051417590427897219260306919700095934844561922536120813440759809359245150611878259856413613180435419550223268867019676009726897744274032993791736152503992648772901279511102648142198777683369262864898991139054880001104369949551844411477778022124269575458661701282600109053046637047526553706102358314848109222289381313144139299582124178749670534810511271208715374107039741974031642516801064484356753754423069641896591088192574411637532378837443405784633312918937318110813217360389889443047956265845690764140016666582452490904753329146521449494468665571119623526544929362390365448639406627890924754930496269576162220016564357643851602718672840579642023042553479912348095234302664170996820580624955062481310870512387850115545657322203105723793636515871245657444529230518916793748956630361291759324715423323239479778207829091291163111416942831110687561712320540180959153606045326246957399631638832313554466884547577757055452955764807730601662536663352726863229113433209662823396430811066577136332531396330078409860787220984493041376809724669298134833408716708345221762096928014554187002318667234900544005998315200015211292350634130976251733052858382956684830057269637655665521322689681518953242932645722302570096867620755829373406110398294159296993309753293839036997805736755797308719830235693448513126224063802760366411286346205857650799081712545883076428502032886435943920804970603484173963599887669901700827798297183441140508115030373178741263099107504527620432588841970587754371502131483709213083006885882011978314896928260696801502975699463036328380422702808297866361272368054567372858385744260294221945965715645028917834113752482139310261597398320482401884665180986001241197742060709940152918145954903363850677069537961342572932914717485165306775320410520987644220839907075932885275561853083379296960486344087699325433747937053940012030873149577243955321026220135235494232190815008539063086372610754322795207613399591362672785954933518402214855415202697693094552423903501391678200932679794361475125888593013369973192711510472184039067582884939115604185757663504731232581421912467537925575750107083481465270103801179757461647575281992005128708080281018918005432985980355593958851922606427360100533998411422807639649484984529156441120828014332557671815998346105113279676115803440737178652111245905989859007086578968100274746510984217416726783647062180218246719368486414980352922409621838837368343330481149885633156263497917866899389306427257513935207867031270885080202688884298681909710527026791121006336643745519877751458214143498689288352091438210107938347337154684874212868273485922154605700483131704639395948408584577568908256699075362727320337312464151765408075650640353494955504505864771530750177196591106345320925912280433945815125358605215023491045961480440112666488290472685263802573783610424016698751073904155226079190435205997402226520511211952228399032968615906675764289944358632815700016654608344528531583579792696154229081321726621485999906253351918230202126134715915505969195585680579449351163696374528780394915129253564561623148746946805301308646526603769968802781481360410670350103139601499140781156731935564307165473595221824453554250822105476162430441084752236180356586704783710533753327253605264353103817908506562939988607099405049031125947119992876505131688398786178197688832177938298081930173864969019512055104257823595246850988198816876936278201337306713665914305720579103583703592944389504155203656231229925731985313258356020019471561351359734283926028163915104373421394741210635541687539846782208483382422635414492132913656762175181579560964199857507837217624148938157922223089608693831614311229984112121628736511598887621873608244593250897018480977828885326608356846205094135901116869883711048235666285087531709036626792849750398637987327213141071296095749812264466749454059694392943391036390190881826968511023770561962261380034592974427978578783758559075130286331874133029573070154478759620619603390801340224533633227365716232103083477466397504895115578503887424566861327073438949437456236240342857468507544160428110779013101841959057857570381802556158069242151490006731046645227822780816714208186920846668830191335601706096070322148171732913977739407829489357214128355770095992587323862449414849078573051207852885786642405416229971158149928491485067417420656780626295212701324902577355441270872067083791185430325012427974339396738187817289645006223005599011200770599411591076601749154064719862032126943549342590020866281639004515980288258119890681553098591507916642413390764692535259026339011094756513205003412470912286414421881887008279440814290546932752717836873067120967752233548567502856847627057006795379416367328182133943368408579331316386314787597217465407445621799883796083106183976486490089766531891883357975660072731096947526015035012382323183171619559135782772008075655238306670470163969956437112982590751676040081061995059057731791649777514724763887345967387182918814019298539062211697739595772829797097953742924912441485787730387647640121915713897169339237088891513955644055961685247533982801494856380062765567963156407397590962441994078737772752095809776355864344643949172064818570198969385667601805169394502067648876510069042244933087473857887840784588250155633870103619167882334234445651480559737973113074035720042097504190892109827330937175689524357951463582773875953653779270018319497443905192139749957317265915719993445562572637770429408588127362227262047021213283138353442542750486224499037811938537203026576694711767799054247751301360569680365414861220990919838122898096460172601037563146170360656130081282293036185977780245402511217864821103192806527670761025510280262608936207520017685289363415797114136077512364613841820545748789574466828244053446027116922989883795171327259369618521965667905436882331239834148001645251230630649546360622085714958010176351794514331316981258165326423574927690438876746837551105920600099870291469421946814040763968294310132533319087492240499495528986758414883736846694727403204521977660006213069093934434788944283111602399357193269146275912129090881283807092728191248955629479695785196930940918823008073420951439104882568636550697524688987214684540024706823902580501578555903435591653308569730280135518910981310679512048540892683863702537428786008101438467469043566588661585118292188605547952089973093004825344676847279386219623125307458352542957218659290863211330280851463619507017875187189485710331873056652566480438618007651120337694696261535093019070665691930970453579682256864200258914367670851107701021752357826867899395136466032501209867714498767424468458803150840404535723258078265770144303518707351801671049876152992284291344547846007889137563639117537152086923220547925512091846985899951303941882401845628244644069407685632767667227101776502406757186207747025580375836280365381516505888140304103609008193547691941709859935548365670711944129239114861710766813158856098982618432725305923163679734167568777510348285183860570874829774996285301769850805511032225604003464947719578604629591104408485448027495455187561309491756668344746440946811636519798153765169739248416105731731842473540808666196612852629448520950017300702414012544610508323371575185502650148604837575066112213057689105224460202324133888802567417179616373191860053077895324815856447296199251035291135100650132581931510608188971071812742894265926196326355100617565872435856376879758867120021714305283949360825180077235082592989844491593335417926686878627837692203836717315589487309751968571562878695514125263483318384367297426528995894868125373043018800311891286675944461451900304076919941377208346282478487242062160958612084791984981261119325109362614633952817854406175522313390640486708009607033135119627455927033458291324322239322934498660877306826636186881492355191321907151091027817812807015503015140092247613897309680203224256189624389170059052424807650266985931410907631605795961777505508025815904768196191104076683008805991127716653189138527199731063793469025479924456613426992786507443398859162295442094229325961854446364824741609443842046076233170360977648220031661702815524042671605544751786399331194052391285646475829856090708152293022106646999900934322815414801321891020105076992182490272197154169070279121500244361727546270076274557994527185618699536947145776095165227442273399463006855916268219641864295708687113106967211567698538196462595999444500833029385585375738987869730130559958563753128079547502524544369317317587843707228597064262951179015590494911222875029059809824652590458634700099559265180805531888830566736186504401779841792585175361687149145715190911269185652312893608707367048376288036032458589158285732946405028866259398199802085091200658312283106612566393622887853338623949901229144205337887731273203444281006181244905847747635195928846082626667698633189734104611605658277279248936009790586358276356188649784045466787088229213952450668785732910832414232018584420180185428783628870052757785116292784884646346707104421099457996722193517007343374612591722441161938723480178800442787992300963696012215226988929418357213441041151090331761141487515533698898471368357166786114181669886371802534846054240432659600312191002404257266195663509222615797186565991129757136969730551655979161888035778091992466390993009819522784373474488667119153561464565003904732962137654356611361899735518261414531171966657436953389499007052456689492778429534039559282405792189706481499237363207799633168818020261481547819458609827565541078951036535284239769735148096532098958863965816540731778045871382331084864566433707244814606097863229293099330434866211903012156584034043861923579921568970278831028026362373848012795399439909184922932118285171524204143346957717598959366568948268254093896899098456827918433872711275051731555014441352675040241460459409652413816873234062889631654047433784357018646983500727929569280428855107437102272018349066800150009530397194002289501099305268346901041087911691342211179139435905789069982649136419084936889965247584396475607961839684448631209077627182081980036929438574328251749757123448486546961127905267849657202474307615923182053609730079381362698134391020684561180376031663729611437418394426790446025259879426839344374623039178536192597486287462258641320500873991468004727513446323162493609658607565121499721114496281816413840791496053606027087458680856331542740929136771478749828642707199536791115706973535442786204284837649116452941297077146398428422624434899556622112753273965747243947769966983701998371969376048750908360364288184375648170790254677399931231888936916684062237122383388232187833906273586564785944019925814073501441616197100295269328065443895509825108108981713693088787199260906484280859333456397823712852262887294295955400012204791918670740439005352381630210616029149922943651745552108193514116459547659267463121687966315295959259871506813305158434460432502090535150773458825895345165364550575223318762965501693065951304725513751862006609287667277995428516311208757819799195155890526664046638765950332682861452704541412884481517464902226411037171629788328940614168272758965939086785769958815558814205792285482474996817263247324178626350551166690935479106555222020741501004872381150964029116132340022565750080300105819479320155938411365349192043691421932540859361229230406485872743296500803580869155658743446076274959976901576327203620356712759150866502599077106555452656259263477961104971128619487698964756552609572737807700848122656648269807996495628853637692197065492316491128228449753591549655468777562619195717926592301037242883169078694051050538912251199461478543649391285012120178007198020931641092866285890073630319574850928875405853941810580153358170487074205720092977947189692608842872837465810153061405430861005688987707159051597320129807400956030008909687176905568152541636600195482545673241433769124459589515519872880345344681518207706908019762501326253828809040273838396383057148873542936693077870310191001183825173155152482124827277149411273544159087235645737729895891388010284418917477866459387721816749497954224649109935479000584134861708029841593978817340830608850075678161052983668415301138465082231626052544116070930829423841889959300456626630869113329491307180191104092888958910445908306428802431662994893055051561820052980117682766747734498763360500820183514004646809723074305781874772676724082206305023180799012446959441334010279023284588532551180947570014006880873237567701510193260775406364610987682468106212116685574275569558542859505292696625570387887651721824792997409511377748512074217465458788961988651832137839029011468413190787951917854061627583738241636043651653368602733446863618858267399608645640419054677986219278125514763448159174837970750664147687390636699665810857003529878167123420413735021291705175854509895256723250737096382431874795570120844105996137631980127971651108908904112658726264673877673999533201630198804082344097108088414247857217016318762601663757046170528478112551182643149138810099288133531261911278272222255244064444887694388494371856106054213339268510296889001972079204389623907661876157735229008844393624061835037209713299174748249770146493606003997434170162625510887248530642084395706647521176292410225250866743773187999345608496274930468434607246268089558354528099161607366155534024487688407940142169446888798448095623139510130989668417248232827421957874747356754696697924884524176300628080479889151431388475688705021396240255360421247097828092600867444647854093587944279433616543893718196447451437677439022413201617320425554170516782293505605633053851259767385990396148071770772713876668443062531030838517828569367722469514838861648350671690826458394715792216074863292121963911545767837003201957767262456112256161874102379766599244928723602335350000221278942742080095937535163443150500226261289636983152687277462765819798329901536982479679653592603378497702788259646067716913592819726335355868985687579731527372542926609704075473845938738698195205666251908828157988877428243942418567937898638518065505541362153972042593387465016353800419998140582018814478853597303335657352942207552901299025014647357692065672242192092011287264496156347676876676996638930198054339566282573490059261603783928701276361528741616082941322808789979241109064996188380601626809347960550019377871426318578142566272698006077102143391109940004763598482154146759814845223974007040754069482628943535149283949693960623545790124919551601800284580289561061662234673991600831143871407236549904021001691547909525810989151405933353488481445553808902141406027519811430140893151797017436516407225586595872394518234715463282247421569916380395077858298969917755087170529031459354677474733502124998179054488371206528215644427389954182764382780942291382992568115627930828872311784726128354161142351328192938031665638499355676417006455482658461046493048804285958990582867535109704636388954111619482016391479010916098581149155693473746276725267671211282605273706264726477836210328741886205349577337060408527030129547034738067675812749843676192940126303784003027866886216378716090647321939626489157479862565931975680892017178291296418650543498573923309464576261807309835707402672070443955349252499375273213413447052098301138015895838211689045550720732761211433063575945316833408208857054267317279073136132915616433409752225767176939622331495353797831730106572269354298078867869332925684552205609210118443253109473486228192925289339220117120103096304415802908047714296566347953883506454813103304125872507666103956283895741061783334825301541214991607462074614173240600098121117068329002426251479689809160422763549215704815137019014771018398315190315220344318958185747683869256688764504698602822571579332202028982006815360050482315421551364819660608087744162776712792121739448658492805583095423630009309470352530094051502238682253421728197345119232083960403792039124526999777905192759137268660962285238888141449024891839812835003133107882546850657211249230633360981475352366410350200333868410355887428656367703184000982498428394233865384318475743345962072272670370501104246665474906230494707554002292516173782852169394715171399463572717352934513300301751174232884595451547940560450335243246350981985798462519382688236523112293636416831672007350779840009555327423175372384962835916542109189260677291193671082133571571688184491467134135546930831231545014011116911411183564877984856589110315176080969530073873670254326570221279621995686990516348956760686433368348063042020168114496898073426890685659344080866707857585438403482770315191271808855328519456384052601182166469693956052175249078701664422143344500977484985942512901015227318349988088979773056078576444281699050103351058360685262300560261180427580295582290788050842603332284110037041425457250875234224865214220396295791344389476528491159258092412013898152270600134836311889621577108657453647808919715353046459482057893914638374122421087301139161049022292909083930529901656916255501556426936518796222627771168383074366075827369147182392343069479064485072958009408485203659965561476161612565739887173285389524951736387015969874984568270657510480378231322184558492177203797639305547398073398182574272928947492301532876692993680311850134713800676594880697734656171366466240520143881762488058455674294593257692857326894991807632911718177776920519016707807601719666010043115804419294320353323285614782194337561582558357270588688158389707987059684243993005407916755550763155761926096215898632314797396821209831794630030651884156819226327387878375059021546066029762294579110610639149948445612189404656557438008826043671563474568276486384521591006341693090988559505221564575217422180003270437353722373897504227502241351917022429868107912468864258787606148039486116370867263017393280622524230153148579626892780630009845434278001161142313847746055698006199402031855362587629088404390022565423773343898009800319621618270205977727785484331711824548132712203802092678709815793102342320878931663508188971497126175502191555027891978900704572066393175622519696219096788189371256542310438429271466377047955386507756614357903328368756162512442970678752003001559557110182614716975860950617575268376260011364497872957786265388185781664374645130936261564955025593215545740389466033627958096801723002361969605604833408507668643167181095850620480176555598892829149952275353817609323988492537196909431291380408465129886320027602384354630469336535176023889934718133428819867009187130443405824448148674752918388933687563469836202764252478670556538685170245247122939283721561358686457830442094503259011782976332725433909995894784729618330638927306103210034675322949698803611438126182926374220595649408962934721224242772111326098720808122244415427260457685050156777117361865213056135083057119137131539720632609560761845877731706259292071051598837498614333885216225167201407437775948174525709245025643979222852257134446918883235990542318509708266885443533374897172995238864442436535474543830328705813320390841625288622474285192110689898755654286194439805814255783600003268132451699628455740686026440682222437608148003974284255840590839898336640265965817079189633827072447682194893756875601237942267827660833267409240277281301973957090047399964594269409433383210792274833632699072192148731954028003983064259050353930093461453529890427315425375925194108017059318086504713339850972946168570705211886150342990274152873253053954368208278905820559798512125232505102400522063254573203371132201509656159295453904587571585380464538433474352127903568995068098555319589376811877525747700218347691548641842875617621703446384430594839436774958648113239532547697846879147435663611298043505434286765984092153337862928339653319591434045823301894652251530774259477083414511938563844474804931547886318318312506181799984039824908851923188024853100179977954343293471741824174737358368325580077056996032702986215959472770265572692565437004197011928158557421812298620211841047899786236979719052777346971590076642928327790714778046947668554496365508987614986784514774125520775782681653971361346963772781030152488781502600527264297927213146181354976821915029521853902360210374441912602002549405077010412911494770544145793656444480467547914985056738997838793010302519837682327956995647810003701317752209668521643769605031227486071236538593562074431539301089426396798147954401245027343138338369272071560323964260201684399183231344296486531737814213868799021888311177267648854817902767703937972818842465689315307716040551182095388667632933855513780447670387316493775407213727601599375613520461304111269058574238446320725138135449561637476135149244744908031217046847751830033131208616163949796536733107657051966778323466147437569572891915741024363920876704330786329037993582741066614291325391158582842614683219234831453306391574354310811567225868628893070407893417391263789664402351183619402531980788929765218133477538332263028254390172583656173795514047460122792189711168359639961516077706580640053878049308930208793222666583558315887527852834378423724637338414279649485766293148826397751734211424425347893354405260675242588186077655213028169083954437790557768281355366736082841906927167285585498508753741376677618767267087174510095504953527468783962034993333221731172506711034348828668871927271413986161892238412497173216416383482019478908782033670521502111740527177087862304243970803569999475631065641448626857161443984795199768969004546479372492451738806050933544607864861396174903015375404674254508081056772412782543311499094744739647423484960514740781509231741691719267031832535699042866623715504116507194334950644090360148982381700494201138299379789330123593193787522483049119389402511993587701976996707614944941425010406969301038920822452363156564908273375629076572582013359358277888083660876372954011630458962877915769303262302825661259454208555592971821014585387997867128762152359376808101036828030354264428142611614433905665972135848516159273256795518405357495689076386565191424513752998468183734831338229043205809942598189129659818778277528636430845265998560655400465198493240466573361876000678757779611191061622907596528428120923957664288851126224036094854207887358415267213955792577266312824770360379020041302884501312917095765294881180391014749660687338200711903070041163964164715145385627287778882032021257089766696898828487315800616221896905889891721764400889186529883076506382966697919777066741883208466927995913917375273069186038879735375163899088214161191970376160868628373350835302772381744492670143349690467592989458072297015351747532924082241448341233622358185264686174141985129002894907582577138404543116019968291304873316923152761175185386899545793286806714053114175483356136358817113739189513725290212779437457434603917819290126227051197012667076269254138622553495072875090785717834425539309377709893465949824433326618236291535644466021636773361522161666943413821505046257105728332862755314951372120750823400294830532272253038091577847757061604985861926407444744025482053262962670611633420291704433679997441550267619284782390302678986145226499614014174048133864964461467176914515674919640149575833152857624105592264388589027142641544691224915601838979644700031875977156132225501656189254425268825688387334691899130959395981761274839085264259042702577121385646227168291954682461208023896919677040203016809616643222322366436761872361924997719141263573632431583122442542847306296474631284464405450713223678910024091599003877420269101443191136395595924298875841564456619001870155997436753633008560583270331964756722262679945175830305567102305835839885019122462068010337419956537877736606970658006160850458903271215822226229669758434354862098826032011028920131383123223038657600226678860738033843499636613005042872982699904037451668722438288553671615190632191059954047106949277467519929052223959183007680730012412876354274847273735183684843031223071483874613753395310437833489756435240093534283262753843211594866800565194078243279569553447106673775227003481614715087760214442624525933159275860632422800920709979365544905903406959920811106131914002791085804065444967163251633218577132013576094737789270788737066291442561128555276460331311308643543964337276342140806895946514250720245298137871879596205136752186869777820869924684145088013516245323971233886399979183674458585273033258432434570874517958369213887126583091757362837808072710125012540481754720459261011417872565582259141571887865408118953118482481567131323046158698044714850386640809740313571379834778229008044710921253414857119839422565371492325978429568699500378816781425905511576866501879147511885379252756051946894973980374025079503989290052890616810228711425425923072177065809623798878977383067574053420973518586878824712864603333291197853326071504907840323472453076819263610302163842292206163601001554258000563690235681528579274894010817538379679162043442491197616340999828187236183305899006562041022385759407496674476426136085743342493332971479439791990389875766966727944575860951290365426612398523331131395505989070140072630450272672328283071368479590927344980844418765599289512461798278236662016234953925338256299702058808771419986483895081812028378183521849247974860457933202850358751863772267247324205459085554903686648213917635716967506854557433156023162117581653478936088608232015691492513790982833118388043898184166677508599184227013597274216414084642746034572545328754189233863176740393932543521449818218449122962960028154533873684214863775173403163490952711352925808725651571323937523173145800055105210108411005893780354568756319627617828740306148223004827600324889079259610981077044927230708265161427141884627174101222587971587041174209724928403309889164540672062972588643033385692390512933603929521915119290669621231195293234170261356480281041997812980233850394090668286674176776315996938918675656826728987172215872747583546374126921040508622788749752432666320894738388925428114648368741533414894358449562839512290524446753682577810821782174706295184070670954561976856606610882943878473486195156174991827116304500067232401852005875582383443894437705143599957774014457590704091873969015113652589896727265815923902697716776589368570861241478693420043447993920059708075312662094217468847252034722408535041893039584195292327760562608849818962869801166919972758833004447346000957818440558688623001742436306317744693433971473476489018787568456475338056883403393535651265048397130331124855077620504952727567009461258491993925910620015074214206229900742579057725423190061819856889006668597743397755118451997286046645177846294072216381469460136650776062922340320556501262311207894274989545527252206663334032309092747274301411430405146363446405377170632136559023806836978301797805747631482577963019701057409382914221396909496418260852909274017302409390722543353058896499404334391283687454161498081896685940055141883171898970368020192678425757319549551082255261796366753224499546711534171359522655016092702249423446653881518189190483665030307081028881506259604668128715386707886848112699418345194333324537580026300424541262029519266175010251977005097227537280674057219783090025769562689525724693383578083590164557603389838107955355717864020727574187981667581076426057422235777974250588127426115340074251776330278835964036113923642863232580128861319529410695721066025814058014677987734616134506873086603293406301842430674080418899042739585271285790734824811290481102800676249561627295953880564297866294844524650365408455658651384054345172721770989500033769059639371291593834804122635477252357954581453526220309281957843116396835746131935018792605900941142328816022844550136544984211698477755776410104749525779714482494299589687457201354410065285345494101480440705726899663994927329615880987887432123052131913722001037150545473410350803223328859714925744406595746526622200761218174656759674758922559409912078079347265887140199224380417862983306048749056657696701874887677880748726611396497482487698664218163448394009790423507758208876574244619575944307121695128939685470888210405012307214295722149438190149395703113638689972471977072927134100821953265636525699961031644862576535384097107211079823734317013896028857962355318964599854422867519881211496136792015704111124913410370949682067726365211513373554367404926157841840374505551178436977036031632877712586025707808854224338631593469034244755542517599323700169369800482813021438505677709315805923603329903688510761594462593963914066110523432067014759580639764254938831880029370605174729163597826108295348819582393454845682259343663270866884783534498976629196336811033112157853334779217444250729128884447898317985565084998530843665369171152706826269678576076307387809029113900987398111267742091955514606389903743565866949434274974869320736460902842484628172300414213821548454909328259861793464179250787309402585167946947772522798027706022037616270356158651732792941381500309912706307230288246939155810053935395929599288911894010351070735923317859656848053126457290241988196157888848772332035313362278733640656387137380971335070228394722883968781469993541344749768683943136032310476299350517723120033449767987804387613301065373097248759536704499745375504701849690610110234966106201017905648239614977531600777516857430701776626596194677553399204803355588414010840581903795148398402929447321936986675569222710978126240652981616518874605060426867936661714904595319486541220657866784972493195489182113624734690850962792367193159120292407614562910831067636224627991638937236951540144645135947396502156825723508023058746366506453413487275182458043040234193836506172345611421893590193080815955686283222005005516685180261634894181517294481425944325707777477626988253710601415321949860013762613604216829461571255873579378491830460746738229960013931833935735955240278417266420668267633677412975988594666644408583914368448414619993432920250109123426263762713338084980813328951359425073044361841920208962725447945965412258290389838534841628079402986873427119252492809134641346434943778266703467934755753552051702101748851688296862869454721105067157137462300115838114718625678670290069361193541013482061301684477490430116033489192713491790342947092127721358079097751784641081115314855376309675505465567630473857033719561443125253406638599081851319609017780083135097644826210034786500544915040128455127864893438362323803588562197376323937417691626977995998144188271595177931233930926073433378355543600495336194907408614610713709630548598288709470500668077796080949509193747341184208745983975053640714019266474688424328385230661874337563507786171674218826197152505965484060102073074730101641695793255716686707166380258201268885257934483400644823545726377820764591109713037017648087561320375537247304798710944754038857307674962347162885148094412825632731468740244293167017757036085004066713874843163422131949212021549013461896607485312283975209000272964596521348725133195112323763302466049772391797437017559973238761622632852043040733850929118120373109011505528777310716471886294657190852971679643106267418164579026198317570541872181577439825146390975572538340550473992505613961802696313348420308425453728395048867137431184737455396278981073860449079029466343012112482373215474361697361391626863501438601018029147939512920619147740251583517987803773151060699562783333991739570360572331049756063600361577913348779249252435275403982942872833291026112732072403547125583723506843015017859417246153114494827906838065721362999527741503641001892275737533084167924521672021635116771696102900435456924441152064402790797266699575576801092815528060687639431715520634104164906366030102289425519316674818104818515146993085626898900588397215869629723638339255533404695500616164023734763982539758458588872932292473378211516855083773753883575176081136872975428754530087449531801788305084366821110809202471106118224726266712802823947160088417815553743040635185925158469406039070620768702455024185251917999258463606397792076795173088518993690032243963973190975568776313709824970297955447068691060149988400711492120389425248810754165606411480375311911172968301463609320465460091533363665239635128496962468391281107682179930101718712032771204568049926747145349218163640376506447000355316645937496965910971520490981716230620899668448538560103630558367956137400059578978463829300507650749696955096901278444102889489108929972469666050393286132716818120943712343738525379587349679493019576328758383112263164200112711976646244038514816366524836732744579606488048599246082541927340613049862074046167802013475935480890285963861615780378423166193349237990329618834077599886194817425380439094810960869707090163571276299490333597001490591242564311657173087318423752504520246066907717967375158622526903730838084126219930798310662143255918449617277221822737601982822464176646206373528879714697707985407547490930796671359872458042366384037942793896132664779633765129529235429216822663402486482372747264478517473934623200752616142589777054597667195710024656034675036497320349982917199570717657967524189900975923344546520559680668279305411330221741024429005478769690977473668382687953995509670724795355892574379893737652596316273667959460530171853540457723660995161596282580242333418392566993427862793479823185343508470180441545652739363485496761709238832376841666833551599467625787899065020496173036665225563315768937283397906910665567615323418494913353844941747262020429656076703827355015154300677850671521804096974081397123666092057570761590931533819992806818495073567902394009950599785328670563915943281472908035982681200516907376805358530001519070720922943904978912723510037052154867366191553378475402082919060212441568848405842968389845294669386409162845953464054444032224101624832246397929492548791499602044851337277449884593475428770493413843883712092942412401273452117858226456347722335791060696022547054508257017716490634522945204700364086239164084044832684174398280636879830519291408572356605632658935275078865421902492018566705815824622466535454538736922182589662744269966026554155835483189922936927046872633440514306386548468564346259163803719948695179342225646140380495066202879586151281690718674617866966326900263064136653882663809572178323271691952624762328127174284399667033797018452342082782881246613674704580227008002367710636662428389782884907001604691941043383445023662169626036388130793705194596999715235390972303386054496205267919837308093174455367806008020115885370555476468010155716473162226495987698119647726589403397400393984531406393373986360377877758023627937455628820446628310929262347316273762698198173550850684769050889194768876358010750195187611095752433329472991028765704573622168745273207774156450297276602254565875512712596849088687543034257995711486002716179796455631133102232004172830340795322046135544132625588898472350486831311664900930810524287637217225593292472898133160044393077505222902525427904726139774511531634169444430006317109333334332510683123752184041419499468011910023459693472317128712073410024475974603805415526289121628691423602764357977153224709020777301188693323697454616234329174508723195728982420356131413443611095526114263931763163457260578421194246433130185414029066144851609252405283828276242963226756343516153090735293988385379920972332796080268000599915688301534440018118362590571302955951526124023476261985439032762470058798382393614922519414246782703745671420778916359506719013477379713380551691205993493739822938077372287100014253079656566517918501789558176687292314022654353524830606213017440141908167025071241163365109576167280205410113543158180813243454643938156905885625045654029472527073869266586985344013807613637857114622206013732429826738388037597579149837250845683031578288841867496443496172903059927403225302202055556874090076932032210877745120994704862895233016203715914047962425235756535595513523708217967677794220010569111868877235875911847246390050765910807137044532927413847875037028450935883569168190834694467002357239362110830459278973459792002505969610244037710458289832697312356140388446563831794322594179873663059120568401978745798858439545035583706639463027733970219441194843792496942857853360279474810241763894106977359162219919534349413196812433981649630179461943440695862005896863682975259911954465168848105973847502025972832456855810732989990682587236898360615791645144746347066506306128419779597362542259311781604816079607650171971758366357885607407611412829238324653046646498418523975325348507707451330330141979397341938470165014954792962744921261651760413388768315354580726833071122319648089529945190028212061194604841965935255090018098833543571016754914576596298545300736071952960995265508000611405400930178906479156954969504022570235904903339829741290565373226440767881099320855238758518961970631056605081453865337733116137783176537762820366872901795609190682835359630971799219828208460575198598994403372319761212291655915737686677986438888970290143557321605899107348273789341719394410444366668555576732085146739830013753921414322988009810894903476045794918578148155268700152307431538679559212607030179577300022022208068362145409135269434932971047780626808191240711041661459950510660081984682169475758092557881505229577086588354233839863548662765523019386164118174530032250305417671003181746522657892532813118511676164957151158077505436291529344901626943488512906038964984023824520228421793830004365053205639792952871586229524319428368444593564861308086179396963369847870465778985128642381883423182042533115911848880600126623262653740430513473004218327579813033225022104999283756493006414459177719024760648872647127271120148674143995979445503693947677838441975795709024574380817156511971663260785777875208039595563930688134374984241509699535795518950090307129612255090651043885388416020950202847273004131941370043985471909338117414781099946841726259034988283580711240859982413088216337093302379561775020123586790672468557870771990119823602077516310477636224227156330747546416236966143222672581539608288744708327430794419188819078964662662273075470106538988587760670324799746883509063098656921618068166388981326845686057028880546137998553305083972718153647600815399045749729973674825079969671841292295167529353165757062687358667088222336633851483792306583280951670587607574749544616619464427802584060658258479349171991415073431726094427639234079757355461076418067994757064008704842869153102405720870892718842989804089299016065269475790312667476346205135759766883420372035016767558557667153037352708442738444887911222416353210391851563808017824700670278940891789582412853762874187389136968676800680518399269824513908712903433754810558423092652398578113450851127417181099357665957383173673067095241786402969867555168111075323854647216254950391755713953438836094708882794793980056213121835922462712593757966994178418766962675450050451051691017113108916438447631878099010171384657101705802815542691359336678081760798493290634653818091307033517771977546693255824578865351746060179517302252662440387646010906649758409883852086154093220907967551563030227482035370154159249992791064931797398294805021154826984393514606285732426826824297010693900294620502622285298370504736317560094414519926864079725264242731864853720934520421890944953789486112850371188825526746465547128219791526068324721792262985300848157896392846348997739888604048844005679582388996373887806204818291974514194484401952502862545586102652316717588833095213994863948660589815614398510075359559552355942110370428752566304921243044412348090993189937351298744904719523872866997783728021974522118916345523826988484881249903357478529770439215916368534611250653719644133882096903695703116401430372506421919111389953795953626067135782483702447727878295679898464061144524972179990916587699226488144995296566325184814927020066027468630272365617095281711809367269353071480819835785337328450546507409236009274155744537300072083520737481419253722757612252018064440723125576469231846956627080616862923413004195903902881530714280489619689074917711770490497315519826166342736633231461849415479240734199832092242910438424207416729339359418334280221176888026735143526902090502643614950739390101460181639280479081263578168149592199953058379565883634633642746014601579754592042484335494775734766491878846051209607860700219551927676324406685274440735881798708298928769709065182880524006191049162980331620204766463381052723344227360420794944614599344245959349221140692967801039491390280422129492708276599114042863768306941833980717326296687670274446575942873415181006103770493403872293695926050081180766874140009748066713276105437238768604332992113960888781258234679064957859450158331370368323485493801231523498742283273726795937531142322977304057989156964259627920554273807160171264400932087214326869102130627645480973713126523470681487240621611241441142945080022731325874847286069954995529408331057450471551322494550364695104198191903119521188177191521065174142098292022684340425925337011073266384818298954314931370821384318895392738839388620737274363738787996722860563376191193372205723707714379325378359641885514950571655218390402357986057395983830971971133015733868187512447743347704135001016870666537087060319381276843540985799610210381941730826813440238384246413426837186384627982357020583153386449539960099624413271683751247498935932513588664741220607322986446901293300298510203270428929953297935287407191196742929121312680442297084178414623439127180036929598164879516030511238872913007482242680757532685587784548110990713986996985980069660778508609087951970618895704705225940825812001900469763663420112472301913172378823530049407221510767585837879895125979757774841890049028628166858301334466060676765251237496147778948086780067978495583173407562730020574501538509845839421033374107729395703887835745856734590436480785714779370909134408581932808257250247941221261697811047342899846149990126637074020986328897216115831233943706339864141042459961558778320089316591661659625464785116857091408948199635843633741176481927090798999322991649170417186253194591645196098316404883215619578008649964497704192476143979863992601730581331800660494065976009049992958818940366332998064102777501252590391241040362576635361401517526869251470116429291333823055227652345612654653766934713822854336198052404655331810304942077067261327358385643803121060554543913015449008370709656023306318967796272062664696760174383985585867512873377674457270079719698253274092550236159231589358951850556448485710308579009399205048753082273742177794739763746179999097953880365824497806243529933187331606831495560674532110553336441798288783881552874414390530180269150283830305660944629434136495669148638104106052451455891294225338708342203228028361763308727136217189537278963258169775731420141328228677756468045175296508507001870926621547189518226185729996012442718868616993729821168438910618536251145502135852101766962095428497102213004991969988931832882450938272782164896752247397039483681285248882455267071111974618789903220516784907992716261833920316848171353146067166430062964697110036223733451186759965280637780090581442155102862651821610599344075188556064213126130575531323287262086519046258766668628276178007184433982761190926080806138216376128061397978611373774382984256102605053675361639230142002105934998652367681727905483017275372156902129854261671252043410574914850677155979278646011933557539052078186112181096222874994273602510690378602277674125398960688446317564731727757836485740362365386143627050860894687696599986952322299961505246042002784547818627932212556012008473360990197281127662138845492437813558166788499086211911635870403769368228794368900750159810380844580102091061867560397784208430922593171683151541314744205741084694439897187844634324912972739220976457040836947505229632917365842070689143855338735082252382572204359575582846290702916363165646546109288127557719749001766411339962628182720298079664416407547783503638233128938788656621818125508339730267266155332423694064468999898287555496002685066223947769888289420974011288086139708154761660112160212064068117033851911029504923348780349623742805866098425228572482710110184455672631696021248767163034623113028197380056437392970317210204037047812635427068666344150346920977827400457351724669325400345300390824262105999809456312237171059426959416036340845762926773512686293256848988678273939301140886928523580977346759501163002801802777169842407341912775124444095289730980666242252450547925535103982014299826387268784876760231332861310549493555925172325337006391515246221315400702293112977482735303901983214062917661233001348889780958647755909078837870654988636892961808510341400477931915419199136665810087008079006360373677563566748418543320808451389241035353232957343351380290720040232338523537475988196643224899036890246687583541534146319091146240531030810203340677591757168511442281291357030977267972641198764427607638910168329645887768456813441337514126095154276059803273592905261219174132938372516566766973533629265120450297714274712128595458648046504102173072535438627199000075731502200500512944413741858794207648374666579673169826779624807507783138938579855330563880676117069740923061294355858973375495632139513936143676286744415981493842458312099027578031955072962960183840504579961146959629721056047320701710004654038606589118646486874723467458721437359501264664532680607648876606501703162244846656328649073533068064277234030898524995381127135049259683365011983856835924112315133658155301710942787559484214396512826281248201019322006751977207839045454070328533830756852800269513658614536158930721673891914388939959153316018110911088666841336884440367962696049516532003267469680674929642141048035615339329978463976963924641982553521718602149763779555461362654616929121865010668096555264306344990772147517866420266562413826324210926082287253660066212410747961136117958556738461092401690861739894569818378974363445147168297337311508458045852514939732468797738320570643922173840508297326083986611665953761496258349487601671288138132612731966654074030749471730757973585242846755650233156713957147352301978533845238142098815474664454090898754183739351342566969477165926954439307051077858642901972028508567101745825444171045698228089147801441504060265569500631895933674730370316171143309147598522622599534246845404862766769669382938973308205056090153916227857506918426569073962417055010225962475726067943853886441775164405145691011189940337937657854921684269882293396602628352931589478017896930599221112245549164501903665574217623490567239743442411839373975225336010133918920535342832553454388752716451996952492342730401704728971352406129172931033863469650532682590383605117558239786931104514304688560809619725091132178842582358210049718304044966526183150666851528185116845209794979142481386664659382634761283225561622413041818202917895448783326953860036586209611835495682084311445409189998385964781230986282698288599401487861628281832757273077421751533712432811014138088144779573633212530767184695839054839607801010940169246407233746581103573419369764703998758836245373052814847974792066564569086227262603276976621491549140313318531150559223584403380968772096619145376594158331040586407829149002372186871520097101780572017311542330243358742976323569663131558959068524142767052257909215956288136762499166331369533775948510054686926786668294626989502973751001740983643775920097762094251254593583091305252463222467774554324040856886061640572898772770700813855147756831469574980987267567802519342007488451346672786605649690802300427465372873583952329266621235664639563745701691239929518262109815092868962919341407982552929677971956907087951007951489757839452352574505797446675533329422027927406151262132155819391716827371860924084445164682164272492691388214149790822457926711328381961198430375320554590604363489368578169650760882753876712275623612621772732322348568208533072402523329889472837088548788943799688204095632972300587667406850547241044143362031091242695014705629258416822005483023816369610353967940607805302373777686611043021403201815713361710050129102687461683416581160372528101337219902486971170545714815651531206904011225436532306894002827833398467396144489961634685810913872941242719480014603555622597613284688088107741915094815054756645808130436342964582102290522708085087898538193207262837888477482479426021623623572093701831640545397029422320069969871024913426698409140805126192052576226168495636791016106412175400071365664049948841083453587485534095008596704571881645202950274364796919742561407723194831320052816639014415968853803131848525430995068097220273049743504920304119774897927823919195420432283481889795705924344120775996315356201048731962649354532521161413903253977180225115146555404614090611459616542035961894654830581109838259564427234375318856511894514942930077431751671445838437814094559058949795588868035227242694983625820667231157272436555175850557175522501939132674709368515172465223874424095012498148571455824272164033181797051576606203927373256346577790667581309501771799488408108960632269752588496731988212797913400692617158081019721397095138162800998140560196319238008065487496138280390938250171993016641373242836222981869093311686974955955193549010962689120746120021436216071065245891464069931388998902978824038491542393623766816549018415799479813826457636526417901012209251428882139972638879854159159635993914880497709587131589393558351254607319326926069186398870303348703654721627318821272755492087528559094868160720428546354868981382538391294388029051597632013148272036549583527751821476439610047999348329558933493453625858080163070160284472574477190248815907492107493244851369284480569889885655208752405933078175351633798407696958738038402388225522521522985155179306466892503700742080218477694954280572270739478988594644957476434702403063766003630308766223849725942731278550692144454950578003619202758717875460452508653422079654412869691259154451926671516639901787488482762199452656031104679178235140042460683141993776963024443589752572929798480066979463936150811269797321483219526443918460269118906412434937983090887590255520341462986778252162719883238898149851139036780666506787411537987204556105001002876900292310802069041312058429556810593892370426930559414672282244242319428756479484130457717712757112113572311340851403805865184487713112238962545093400531821704330419143793514554575539368173362325567560310915016522418540020231185544291040595433118999623380638315598311630259026669372803632984011717374956243444001337702813638211394769951218298951711895111077470197071778740498847036355162178778959957614704825091950827592986555394003479261770086657307655112307239406920259664395184002403953168012244184235190097357410961814796159832946651073651498649727643988781626950717757486003672415434086243704577614083443542338517025194247372812266985452867175753586476065575694318808230116215908550572195729181856003742356592684084973336847971715389142208604660838715011258896711906765919124631524518873520628811304453514872123809495180117108417503091467287782144153900785185760209351183331379336672187744032431218185821314647772595210636467357824528837296456371414460931645701841351519307131803377567645551178239077479566601742275484608256943241647156122659202072372594081489158819563626927979641868019839325801266969043541820292956425164017205415361333616680244017772419841622044522511632402066908828246506479991914348302049270178382837621365626387929415245659235233335422132474066774727468912720786487242667408893291101428826469030938320924624432408315209008125522930313819870935131649694553947724315065477907848832698400217028707957835642479205472528770105706986878117481245170419837624891184102357935215137766723386216664579620173598965072130317812708618094179922845500319270311492092827984184746529320072862008698986753810497711752129665323880215653702174861317664647011948463991607666722141326002622898365047114371764180437600413944388354052776074756048671008715079131567222617162431583390189387062839956290074477554240146918201746403261928188339384400047395815524485819903037869947556881479166522763680450365727124916866708101041565593234926873379077700607856593806074259785497798160919085217235923561899845803835070024837032905022424101014224740998501771335147331089551034038314754059363644683362986161421776217055625926256879268105791197788870801006503215655092301481989999855116268661535511476343908542037281657588172205485087194930150651268446457893068925933171431892844300355940873746215077813457136278591840653874147505909998123220585902693275436564635809808949505883970779379374567953393889114297340254413012955737238472344264488377956583863666840983687180971109080287343448703848672598831249884078730462355500000526544721201340936197044216726356100591372816009893717969961966044679642639681109222327226930708720723661444931040738347622300296923635806185896127411415235197244758850315477838617775447996887668558560827433351368260989841772670961143020396847183352373161161550197921444225544787156442348074073805464801140669981206183159417803259894400021623236688250223424008671851918667486567239676964983243257219463789480625413583306234458779770782738900884302436309740269860755902701601130091122109783653542954814176911795346829979471113299507907918873770969971617049429149739104099016997313199009247259081727920202272961629729160081440647065216238646512342861901958707969308189610646462969059090054185902671205561435075920818590089404086556740141481024977781650207351264173792554903709616403163030669353622166481672430185608082078088410301186847742916620867741014244270128261374298268864157477559909994956190816234158204553253673365176179108719106767229316807647301513443388687173189223900244079802870088901489015374046016811894711966527243103296949615229637541531947284222766049548687283907557776109989236209144373795055587092253247034144354793918706846355737675625060917547744433272935646704795887921538863456707030738246156200406845228459991087180853271906758290730412971903308357331813961984445318934379827295886226724988632378360570394363440074038485397392681522898062407716795436209658089995483181244154186681356559562240256339085643127357042760376056612661811548854454153256782583873821566215099851740058486519313718839930892882455531425777781351155208433111353819465839276741051300079223314520429984719934047146396222713363760838235521554409725019933067577417282281146854117742283596197326877198258125203123372390112815956021032492068526952930605640513930739937019020922763637048250949958266841035598243094883462437848438580240028262536593589808218956713753648826480236476796889512586103188843874668044791156505221736754705064202026703276790836021687246650398453856524451993152810193189284932238155418293725564764085334420912890385642243358019936886739744404786716053427511933376378877186490338057140570082202063888293599028481738717022701515293760224631568709673131490426997421274278345085534859546032024857566590449695004800324878746528418166855975149563222425241944353559651868541289471605941301722046886336175253533957557994382653660003160849634224657805785542716783086841515833696802162709945224474557104188900769696150094138830872152673916459935987538886479281630427498237856256310280836124534843849382317758951310603389684086357880335771820418917041984936438771238005021194922680140504455803279731406508238045261756491324170160034876579281449560378833200229398114711397121908282899122635353386803113498232244141105571142819924969101334719735348586742656986120102252583489688698354505565960414118594619801568119813504732911233869646202241537261761778292766061997080619578005657577829944754289597520487416179842993787532076032027074760215577999414173917733398006344289186428712373052565258145812895908888004396753717637052672963466295787762250642240809043610730813866991952974608915349937349453153457526269027789185894114695503442032554443577689357145063194483535474050497883703198886264686208769238625415197249116183740278819615002373571147270407001036104690211871134595467368746948657934443430923096882816731738223663957672833359644902880122609223750373076538223466580356316552328847490971494262850480341504738838914046697183816930176960436266381312027222850728067437166308776175116142933498834266368282333903456030933295394666618467104141236309002094410686311133277360306692990115275142975612399318335324636017355304026904122592981869314531584170511193330135458441201119751433699896253720578333806919160087793482041845322660511234764693014916291175342646709223296976615003224195190193155658641271077966401871207942443581352710077825133130699646355395662410117115872322446418858216706643971549688985642325337559385543816849494579079419057713346326351059134557833747479847261554943697968211256476045105474525893752236269773712624868325376251366702896991489115734772774985140482031974280034923053870048681439332424222137094049392161942805872635358304265378703105519967345869886966548044446583903708509272343142195898409748697837056994451582314547113960871050275980246862278013898313088045259380251390561512183007993381311622539188829505265538808619513878483918497747752494734051101634176792889840940558831165326436870996754724815018274840178260855113670607044880580797657006343090153407501829909653281497843984567197443814414945712522536596771260634410999830949279768202800813150182002773667404323114349351483282739569006350673049366298784587646298400560013233879205939515606532416158412519881386589458651797350681248434810466108063768089801433547002668943184925811958828727797558990037425623115855179521628662072241787997387096596879019898417754202754438475171197685266348959719892603860205982058755168622977095231814043943626579021673111096700458994522943928866645983620993377685755598578503075703959628978086158574226886485309734967382688905264183278668732701476058352098034656963355743580869368305707759563026626763433814999782331667042056055262237212412371489397890289917655647476774529074392877093199536603885183150896488129598790383139521569311089073496415644506521341430772335482627789067732183681248309370030584879170000977222161336884323230427890140688457579172772895002315375287625084843375317864618168460912166576918910668409133139029655046945124794237556454727348203207771873137968777430351847857981145724568675946969837571307358589045170046106593762800859323350110460207594931653386973011151652116477053745623864900665023596613695181965639293303214478510492535070472602201124489961739826090533408385550093262617477498280943785491804270154106231352811592664362790836134730337836299823715548530430038415988978634272979415543544707317000779620691021577413282226957499609910051734481239274476824246971806371464185022730649770825992036862863841330608277643575763405960619463738868317360371407163088196260422328286068804880006120964516764966681943488793632236666394545528471317017533861679445313046983886967315360000654213673920634450707638349064362862682918130335819058683118615839734503301830774889046956214564394511737752498405054493006273571440209874836013459491185675058615935800970449462592045654143960332309456384175605083258898770073552846408751011015593298235145849086941679117757789065491541405732051673489167300857238613160715189023822248001613068849648872458956140103840322228357900793457822259338881704927768849733246972932585130566798962441359390592698555179429859928286703567703957699883896217021507929667130273644094815636901745354786084988806427092127889931423328334043976445719458509356939509895103415913010464181660859621594682835967813583122923092793004243742249557947474843540279878614942404613474848793239753046897122269243209136020740485627067068304071886365107770955373964949446018348057008349580661219518954965640179872107720228499813206648536019564780181514024079818769003339563564020848355107313971278332252148104358776614367501182315330237784934326463492459998420649517113652489797551662999638580948592308859211300909196172285007613258650147728311053699546655936046272720783475184282452751209750666362875803820534117500460705007358120581499587202981892995125050768385683661416348714679175096821112102987486922169691844536787352320742330567379625779926103670164228230518104336755514043831341070179318344954767718194244141233279061039593897041663319247739635776681415758724526956299557238197869326665280963960001738551493047179431934096517049472951116480070838591604246283240615003780609943160853479762484585711819251710604925975224881684283523884984675582422555154528310208258981980402716685836896824463150390517287438865754957458430291694681869736881239014775860615373495281598879213887406375516442462417173051968743406360097572034494981252280476390955673520064127990353763961904278905611870646978955879042834024963810178762155039892024839475641763646760467326757478467250795431938812736435549459770095566500831460831703866741276421654813838048831937148660004841099512396298103913441359265126352210120127788076354857793354042217933789381914073374896816626660326014185815905931415577449012002055422552444877066548557642879091280228589541079669294468471930116393324422752017527745543822635087346032085530561800874904031911099376195773444903103556832254239126019333449501303831209956783652059808212338730465773534093532286879996554408112724316913734628466421786717087945871551281723097072547409386291783394311071988570446276524463467558840498870710608365783622203310176178827691638693335054587690662366178013061553024555676929685424767410116407927877152558465721445051095281226517229791007464856003039970848718820194278443767690818256551600851686751020445420063308531344297780147043771754398482052937745760136353215235740644153880466293998167444905223550696916467260792102393314399184180270366029649626327915049024260650254825080657281934885887535290415664642166343521136756937190536979976381358519013720009306088130393372932860415627690634326488620815667467371056811976773546043100614381917487182797272376899939748789286611391300625304530696115022562180089622075217743282952976923329755788303117734277256834313166388723280726554356848604383367829967494202254080559713088816572921197409697097505023906918368612225084699062959299948595874037447351112321899997243537366876189787738837495869760634872148302174736832412372378167118158945250483162635904115598242214468173271789958044419849864111759121429293092810039547742166649073063738931686094901294130743049672542159562246784777566579199552918524357965060936833411311136737771271369919881767435255063362233026163491670339843781918976136265666856465488534776186072158740365934252754060011788445949043267867264610948067197587055690556800218042186783576740051449983782602888873594073359219985894894427963744507532991121634155725372032204002575953029106066293224003477266680677787496421319266484473515453263416468410169742515832740685506983046290566658890524544536611359721701083791695923829683714853584331696159689285834689868830380926474282637111560311368706660398095380462501772102656786229044397194748196143160240863038914600534444667015513496690043476089216761517540767574563488852764526745015984258830708146310663875370221711324498637974680875560955547527552696769131576376734334636227832402775589215278649999236242908804657679222752369233352763612702537376340352396491975732798022700036722480451902856046392119384055441529405266390670239618270240311036790479006142197949301983501343268598621867546512885514393758317559823616610445156263645839301020361173029655423154787621649783201245122012801813729264735219430758283519751223464292114016606568218320798777315880808026997352999694352629083684591550574366186918969616866194660391083078259883904558952723054685949033816977775579412050824757077001662962200935458281614607525764927987951260896176448537570452143146222321812183309508886668725560611075588092288158755619434196360534093469971026893635384671903196821406928262337295998714977800115678211047552425631444645003078346058625724886546126198036936972125594090922811990459384872296748730715154298931676565726544601583396778460976580480598894183636947415643202831685827159763351454688778363279224783180883500782080369953517614392437436873664869776367370218234170132870698363105339053063548828690705151741910762432236702268181909029808603614503051414377145748984884734859088166892838705415697901292231896573773734936888075266651314879568001701133998948708209436348328256850835594694406254344843227981933392478172441911303919854038536640642236537919573033413344298358267531474612321342198522501218119230150224186787028363464028069378093695949506824056628430051375217816798356052536521468590351881622574258202974636075621238249477518787765124068036423094990083799897823103456653429782290636754790777683017579826070345817874622042873649795404288729952502434525127844173422907861116364037545056168010909038438397933524323158415453741976550646425176325710423727051717035039087289499658806635957420444480211288668050722867959246200520481690681343490123470138087721494236183722439878909725942333152631178230063909465842948621236397804661038581927011055121599460418489001242136539184075064548546145261154413455138450148691185829089609583757255143287992288915906282390930395375250422715315010826537893958614061558657305644242373717978927742056943136183259497141393735756586118628216702636857290583939032978884221978889450483031655458528929844235859310568299540344550969344162157270482934014605050645332562852579669863456423618319286506136631396612363184574266185420369059128692144227839537210497224018839921844900357921513100767128755353749666214878809177663364893639875521614316944083066286520774983453162628401898753190047121071468100451148649309011062668273804221552310595768576360084577008622020161467080076265162401140861979262496188793532782307649558502381425910453966798020139703807494377534605164249722448856028521681697094075944021132444635381317104650229905431748190669893257337715759593875304533080870068289658779484604475392840616613984826730629536876080172275173531658869483697473330119226724905739908144713731627074353098184995996769168750006653091713913016686085399285378728920979648596301736375008393166941071455143960179533903514763927701101990265659281622586105277878682961085496035565190113157620592614533695600811576388533906753118268988432370981142118079150505315750136604200228702305493542927179637665990910845999478342657919645210963267922701034150163765738034250865952465781034142782954211606027826047942365214525569969653650789951052575025979159921913252961997827044728066422426933557705450516948198288347736114229627347032363181380977559100068647899836785035429400782093331509115747459384344053538488628024944611203895937978970722004498144162868284409387777982192211464338334810216453665325385381652096839662425605213686460967090435748743123632294190796166687189399763459171616792374727787922983753915838153839823377745093071853523626809762323465678906645663818043841970059602168266410881490484410785220236403511750296446876450029798902489843745744496857994211515685122053848790758207531302584556547966086456376070010975270552787285398106107042006312828436783691482011967154569581692937662486745294671426833734851198787451372811384302442964204871890252389382628604559065401837272919334635696436820163147130900343552393620536489031844107173718987850896325799412554820803616657152627297535965495379954975236531657396781481148263792829497141551720862459102705566248308186221303810711188211953552435189044262542219857854057371003417428497062081419189135130051952037768852240893712405130660149002894574173055618773191182132044491955503161730230134667091026123962613958762706911735293596165977373066365896478467981235469599023520826725226081165897402106010292318264405051059602317377970197395975500970643895299575131928486220815507516841035038816638551694361965617448368520778445994788556457938231123521001452904717042476898477300519901952037327122811224398624724252286611583043217974276775312815934205618473879623590775295235667985304780775803074722360178913182215179873061484794047683557477356812533656553117890382806765130465028777315226225037760423320074636415510674099672710950395118448061734914232891488081170743884318782629568969718147426928599310964435096994385276006145567074836384030356810030906285933728857835717967562570641296223665754577040676304899505585454793667852178327226931062043633069654733434869150792647704595688780265666801027251390261960971567850090416577840346646207356988198850356260526611881734895427521818117859214277770987970368025329072042020892861166078359009541120543827727457658335099943201673297546994721300812851879170524568476248730813772765542970175018006532139445551737941439226651471974833369254290039802530137711754366881424096503747885399182737384127431241075227614409441807039916787499838174699252607993003314775274528628726941763658027470209499093962845155925821965923561919181980475134953404609876336828949829871714171679477109906540899446051830419519349050815044043361520704978417057817046495380400486120551736903256240033995580347138364685298383068977856022755791483284076850203513631807085554270102099074883329413454466746225469637761251096517408641376443179493490863084272300585086016753347130018339878768040290175557204712402557921510757865390965310318194979475261269454234660020220503436557858158687679496117900313662886560342031441663624442248541844483635621064689027768586721551507279680392532368921578434962415724120403504797729690992547459503951835364971011958677860292038305267557228434549503202563460425962547615842261752499354107035055843778608331594148904146368406070298950710531389207064583495687369488722170869432642580244372226432042246440659145542024246065724128568099912410345327768422624881355178641059883023757973989070551735371960361058019458592266103358665225738289783361347751800867685395339455184587344908426915473404835136947114952714743841541677801889530703940460426004882811033559033192759698364766472147889438587633271713623364519760312265902128591339859149834682116311128202674899119718934001413860991135039599912344653316345785363532748315093274216486125458632207730616031137732025104520579635150125956981106720185400445665382337321224007453758484467266608775878719322641995895976358059861691742636506868419183244925323172348220706237397070397176252781582001807149915005987361474186540506335617326757516871755314664241523193140200709306821435369190618880880774846939280763317327865171310360129521398295902332068656935253741924850355730576322334966399442223237857290545354248730458021726728791870734757026807284502113509765670137111643306046804430173074162583584733046262264401279958451469864883001011753174010906859595333235648193785494847273389568919349238958126268049041823544913330671593026450934834588709431258752083782729549257552716567459017696191304571207515466935807879944521333568611831806043978370272789392933280856282618278107403076572606816908866391281993954150944365477752129234562391294616177452699773715072457835939824959118192494166433290881754402800735742810098546783601991948153906463854821212848175039178620649019028113133356913505841353634303208952608421592250144915111474373956778706819483286132781507379637857060856137006846953555890726771220315975299020353652782475622837435543110971383480965356124947767938741128043173475833077235217005576305298253024144133706301427317951884722091944759285834015630484959400273671557769600716578950730764930401620891515723445090647849050063854905976726271446566001673187841136611531565305275741947668337799192829418066816046774560561133052717614733623768601823713783853240202141917462680965685328524109530980365496645262069519925950141950026324823720786259298994045969529945476084379805783461342760208234988466620713821135858098031370529806475753674317997313048099369450611623805462433028043681273842117562187502565432386743551023223357649473673932233516446327548160610688394786505826448362035554984864908282690012408552624574255636884126797424142199242157119711553706720878949631313826853027879532048866672520780995193921659820315059556350061031208973000172395049550017142575466923559086491754404577056123613971327535384087135215183262570688167730108746679493621892737817476501136661748823220386164595605178987870332756229391554788681617861045781952416410926705614382441596561539771257575914935501602202134596193561211149804387676012428283379654720861444087515022212986614856057329024192272874950498474907604507038668726842466639266276019135020113384588413823959255330646314873853730510039729627793692676804505398955842414423971540763462779397590894846147565764746132648836719374536946066470211938806084426000874279340685241913529886370059717104557503663370055927247452308085841088618846316490647331487150975806938230300451650383920658233221800765255062917764559921020277745602766079549974022217539703247218213822302307026132495272785563845891766613756520334156845314813314931796735588244785145478406559213061566024818060336236109921115295406551822618233339804847083662781519589620273200309395972814621332073455022955607866336099143113710792341621348748020021316366399632038772288027980165333952033861199514258940425259348361620190034054886563363145534946029068391146473663583294023017401486984286743600921488602702080271186039634493941213469543594154096115885603424579911080353741976873639088867358809023157993100395644404529776249894126685903307438383806949156698672613321819525011609997993756445675604415307543321168883037173352423773772375222418006055762569214954728025514410068826427269641262084836053830589114012887213610450305825043096124575027717905610314351530213891911797160651358517158874344684259101938255624844246991922321407973914037253288916852207995418044863906579961867053970717458911392131154583233053929927705663900095225573253131971994257522348475303937437775361005193836533034714729681278928444567564446213172168276848185652281934067698856287938664724303705839379107042840122851962868884398181459991130793745539144627337117393940098748739580560258071394404441789279543525684551095349096626899053838702414131865137539975280765925274033699623164359122414124237683408117726613361732829197896785142279460974296139885577944509180672513665167083168075599496766854828357203364574375837169770667095254621437299203224168587698778190129693284307055590460810325174214727708890777998473416869785515709365724872287498379092217267578304603057768311517198879030074576551832536019020589157082646941500738652209628520075696979247742167605758468062258213455992533871296335018986940724405730777326510147698330798728682470266478036283953850287880251370953633747495203369771435266913249096018832755211492086624895662215523448476318656499599048879035860229054582642940545733887435936067706399579924968402633266123391061400881665720833325855251074918400910135246295925719975634155105476814253013771639029461558089178744503998533015041800619801442080990038876435285634035133789435002170845790559392706334797887822532212582996331879084231218986680989870518338135472503920888154736914111355089500258603535711475299196764781649736723094511675906285646554326070643065135119277060308598542619134696431671427029539133835731040073737619904346862889699949149157958004502914044622127168742745735766209913086201203067340007736318350747830169992613388455959971981477888846748358703854915466674271035478183851135410553903458332049877269292405989611027447616699683230621052705687792143637085320286137621487356533166752282764763893911753441652117443603242432472336362762288778490874397377818648861660745502456089312084528289274110233964250520360674215668870448439081121175286227423226624399052541968702448902082638524683787129015636890399811419010702116356893433639993219496376883923802224392686844058726124144391218139097396080129846671933647575591534863541955003047485922896478706511197838739108309369660802676792169952083882142698642734534582203383349466983498102381574603415002830368886625090995833802760261511663989205869179665825438875069806508983470074252527481333134326763078689915066654872313467248492003067102852312926170490521214784392492146955966812887437609550996749389862029492478218082455501166575809568583300798660743794002039221879781388216836793721874819311764274356114489195619122546166026267896771925034772438120052130481477175728195098631528755516737232205999091177476020586100907323200167451260833863011392062592988387689203369840515826828722347354355464092662902250634541359423633202833032633314307564217865309883015670327469639474511558225579347119444333081174259526814728341293171412676023411023220710708526694247929613124010789177651907339322516083264082178129423420297899961064128396173234184233504391093640125216322319882972158483432229814109375105432320271151174999372557414784198705635963799972741335131320692055777751966340880365530001193907631606830430039099807106344665196060265878080827831334560186214079371818328678939800622452302893068951059771737545679054408479116526353119463964619698087483370731069315045625293174544862245451104778213274016317703457814167141647920506552070026885525444037273038198127175514477364914210697341141191756858423495538427680750644131363742372008099454123819009784029804400413137019267899742086726192393453735326910003289911594366272213615959182352681540813730760747845898201370753729152728626344517179315961661138586482393049242658830639980627802582096629347284593687391582060420268397859997795067670114212315700904934921672005644676272911017819570873260287289294679301291452696417160970741932072302373736521981307792706324984370828788899222957885969925624776689132220565029769629346542419060662388005111097487291236396228929898891601606224088107226098666265665451825874369470128453547773880759082144508564849771629682055829811919141147574580679920636248637726184406546294819692082924222880967049711533976205327981363630199284291408628847995427870502710741196668562634785199447994007552540877964655192942742363505148009043829104993959568259805890655673336702343214550932432718944368729565359670988625570086942304021183778643696601468884498322509019864735613768236281739231714012219682765885598451833908822919016638927164276325810466390094968746622624059872136112922026688008494281576320530451833806327007058226962777636955863317670390292805475383391695329606941148806987687572980904408335542854175153692671988570920088969204837254305081454588864349026266173619128647356949785660464214959024125434130818319685728100999132262454208137312470463930475401463270590073008335392354599909781124195505382806884556025435953370645001542568874963357953710282325073267922068146711327737872476351020240824024867540322171045487583861766761225565189349239459827847503321357980477324174233498567435703616501292998798979052033941297674798791438935019571804446272175979411821460033190340753405698066569841259054971941048552811685815139770060295842340166301238397372874928932439215178546090673589511441581177901129571753067796826126150941712072503524287908592791769317020618022139487412621424248083226970244867534157409292766512035484175774176616229213050344699100505988492424386905305386002545409865080979413761670024810715975027785365392013452049625746464292919733424639558139225880910553769612769452407726374135458517286636393961666562582211926080846142598446442013531532113395623757041604399996576444096897396522373935735970079578730471414338302840087331138367577730592893076687685699127497252871985534951773594922938492631627179875025141634384025793359192754333399801337051201080153490887729603696390643781528107826431792731716694086009518513977670568271689126967231859327188590520165397485082156558030878051015309301454310544871512117451412701873220879351432315003258379644881622644280927659532708274427188450322798356956530919074323058453528961980099373432744739769297723675671911389333888237793254359140164677282880660975773452766020368845443688093911596784073951610308056900020829195333487497197155458284621697950234669007886197884848452168183608335526775437442997591697411089465873727896315474736865959962588258473651617008406751439298122915583979822669570853915765814680823097598762736610219485158850603263237831587519544211568659994024353466265131443584669070066762584287924483709313558176397036856102942922986815181768815971255769297259230687869790552277424883635484133306643384430601079264400036536807476501266953611333048420146163748983104407152070810228397600865494592741797206774420158022789049100496393283845516694942946660047880350207019868036384391137003367517140607816260238670417884227886882675764556632096808178833260559363424503290572241618037274647730639043024486038671346591573720503621721170078589804107252654562569094249966715273113763608724468422677006172252320687863535816788570312068831279386783775162731692171937244287223926392744628948951472128972125163030710399542796845979360436707198582112866923946969952846874715369034525605464011289704294071118084325809090225218022844867865895200458582468841344743095276109046745298584279088571415034744958018556772541758079930373891916186737691763986349168348709096084591606417351438004535414704464819274262059290208457075987154326689111145700210604090179729192652873474924426382502586646066196501125269707507616974875608730847902895828366377945855266769687776975905471562413045567518008893608821150023504208089964394440182214330465906152333652402146974059574174473075621114857459669879119973431856046629072106443450865810791636021312238773763612253494872512930942649387571579308965761745349363485427221497643888735416102941466512236963449112864387123078918919935209687977391875452164138176264862719955082901662416527934062792957067557719947750339502586764990222005848196805015012080207921843876100315793371613881233180108206021469918626173621284621622822913649431892906008932245103098933475165129975413516076389502310236111350308968915176753929372811521714966231359049523361956943261817492272266231437980059960245305997569972558778777560757043127763511706060755899431920204551776281265413152673015565586215465607280120139331201732571360910556758232346760348363228562422026982170168896181150314444119870657911363556990005922876505025254107967630434967392595814578129051938032446361405177045231103947565650512270066540203440507502945466864587080931153279122199161377874927458598058232192775722451859987979392603598824197516288818940468549456056382584849183610005171434983928939420452967741440546536731016333179262216690934330495663132126377693701389214349340319270247302826047485916778576486561576798571715325172104267153496675253009891928376409429524252196274557993455446378851703432616641807805568350829578253597997142271261028238664033067025426274228119711973675930982058900212974858932095783145669949382788311931156983488341804193809781694942037812259521261179840837618355403629568662290792103708689209229144120952714199741538732061616240856647055861826643965447861029042199538320856312254267836742690526683422109668350705334585663152306671058968465378303772257343256442618008886398474066907613570821447060251760877661013256445254208570717025454541465688165852757601670049199783909838678361455723490215296326383804042133018295687895270601133352283477154767170478034130232137221172288246114100405970297702437291899306572312553218357090455903389582775294274144605755667967398528031685490138568656552149286868784153053502398292274759913706513320660715130378007721026220979876532611087883740148184581600236474278538151845100050838052821882644311854425100664355385144668725917058312445295491561488917136014567957652470237161538469587376419133716074268446921062628079410925857270049599853550005440884807245043800645511928817264871475288117058504395379296998180511934397236025142649280302893506033233029079694312130683869566842670105775782804015946167538419391510409941586262561135236860681919606968941575565911238932317801275493710750486658594120794236516613013003302709886742016628940502466685665299406692815075192407041247745627127147978919356290550188043516160963956336729209850204163973413404013640675966088057019311926443797072238602086916326555763941266644706408096687614196647250296060162361997781915571202850875424415490702680444754601048682167753653638926819138447589386899953983840378675630421528418273515358988309172189130376594893773370091889777067640926838856675814902828848815748858053217295697939572094310684320920734129317592056320063426792352104812964529692396682085483669641067479301450438370603654988090719591485066450684869685849745545038077198554574285541866408102288292569520890874082005175309848390429767405945801954843349455660096598770802930711374500768026892159562804280170639818213809431174427677730835305917273406431264379949175084090766134658242918814820866825642863133569499170131771006117466219998584670132677492078525127559729333327261988508904261826282981750231745498079551420924991491672188812330704815359907708722390672070894068888004161152860910723940790016004703457645087053299955066520084145734374281816775712903157265835269294157088422761976424877991644487581813629360196236160757764643057261725097960090658395403534637043623415596668624621821860965920079970851958076054462268580206667825710689503314399732502490205518952201777247562362871228286656808030839355048064065171524785742822540086701806275623318261003690009294186623877027280565557353629895680605387828936275550064954958496989273461135595492975535789580815641433687558712772590850814295378110134375075034347939821869483518123358619858862351289987843160157724849361452594528566837492156076913141486485453087498125367300503004417318158081720385528736971713327767499940295282837402604862592062934253181173954845720601453524285899699501002337623060940474512944444366457355080768030890961576625476737559059862128802600671496525186350978354849709504617917637196073332811667327733339071132277246654705293318585903829089887746144539837655382469304584239252294494394190551175758729285360831578559561367322782002344861795470445201302213375593038221222457324820110892681098586053535060615295474370885860732064582719922342223924773728207298429836973899530630846738018760027060208772112954742144250524793901796660652812948953571546795668208722584278759066690570471640043361394053853308982767989623108501405134263368531090673860544064130905673583197133334617200210122686458744676186533762788135680059422992700515081259298982902222613363908295576652138451296386020629725175472632134644130505637637128204290875259162154889050082153708982484893470366181697237307387014065716770614369142741318192020863847449617575287847873068332229438091445420239650415349927264281199549813721475440561478500193822059028793881702923529137504118843897627319643293944874010154871839702137112831046873582757813173430331471678683960222719537401133886177037008649955319518817311208726730783880475535507866637187728495580963059048215392469675569615841792747598251036047673135720101461240275871141547464254048640648711238151343214768875241957556354085766055775012798374928759891576833679700711693790257158462044445386655622991831587626358955642588486595304216821311802288817344613301521465680658134150717478153580175868513656113375904808128040991493371774090748113968961769306060481562880872749442613000373988775881874074557514184875424106763396312175636580396453009622201191257722150587099140449918601607636052872166892233659516902729444706880991339714095412324246477884817474131517043625490132170448576446135054596596548403514874780435580031034466459049348083168918325527776240128396859908321656495381445705961301221685515237144052568209680095361973374481470607763454989177355453053292000875520491266406070611634673715839637177919907701311855082832741981492342256328364618051306334672481994170798900362812291272359722850790079032015692928999410358051137481406091543593554212487638704064696712488338951147549403496295948693038889451422044083317252079204831141450647644849253427806141397628633555260398017240736369335430528177784917354423608798463559367713208734457211263918614543779196858871543444684046393479749590681651896422039079988264232973155480864381739938904107409247286122894334475292154972181245227031025468990113118797944299308056544855688578533850744400664705227364227020740847342776418792630325122492047169246135770547089358916417987360777380070064736727806980771861898557532809471787498694784628541300827709168745133656983701525496600839957982454911983045015594507408450239109274277039378445049528469484654019710446877803393239512418729666710210420204859173927352309233047772694065585106738848264427314812651705919019608487378696790541830792180551356793070121468228505491485467067255489375565344631594706439092963413195673482359625202071037154573102586707726326488321690608212969953303362062026567503067458488202439732184130255065882857117399499799419946974133793137785223722382926100385673085584096886935014528343749991770284128072186185205022707780069017067161412418145426794512417708666478133705278089215193488472202196757130909090342073366680206688544341034849456643266958923089629619072510630080471987413425392991467026114150217205630005584524167188988595560595956561942095015444157022595346931639382291450164240894251043517353193532205265801208114271060689486186179048190500891464494849270079616076786458820041573889294641271894518054187312366473502464680398492683212410041322635624824067601543662900205456953890736733666558481127080886003248521951592969263319563425089818702687863067047741076123807565448406725157675954318833642237107610091041686582198728141741092714623281826878675334097546704864159719202617719257397884610165646847702757038948101584244863302633906946216356029064136290908348861716414044113411101898604951825078611699698353553223976566121772787478898971501715330724739108892417285431333697773767607949858269758101137940198044524825758758308453752395211706022437614192564738819056821857874982723754745390484433502337434504108217179414232880498109533874491247597697860575784277947731627760032092241030528923352698795082318517642966638866923771258887207323260524805598761886274895919382514848330122241908481911788077862033456964553567708642217334903072718958283314394467860657846609939945542201109231909414956280199908068820389256328281636752471968335810899465395714701711391141896511416015355759475108195919979650692189842747600243635577772756182158683913229022528313757735191048701942381326359316040430748907252470957859024357910077090472468848010994363719855907567951121968684059706127296491244726268244495616922042045369410523650546438956691400904648346004660663898893810382003762874657931484530323260940005002520207979502802167561970367619368987365048182162972560306119926867004852712273486499911477990961468681249768018974668086111485507671682878328096501217450945129976415558225633868582394187012380131082659366624968478394128749377226630611837983440261656155862862076485896989859388804757105280712372281327760310998689439556584708784212426843954797695348877336596708843958114335602410216597337429498657163707389492673698960162070092352854785812901166660781760263848794497193304536743128721004486747729849929017272139809984391248687839053889908286822514490094560768629818994516167244769140614038560437962928791662279107678232197434207886313575956422850423276348531712525874383695599047354777786456745495470825901632003854845875191002666300192003571064006970350817551059738928856542300614015391962247698966878153390898585560837848876741505169412510209364253796173171769033897572800184674485410726007704069123892302368654886029894447423679521548363893798639782126699143791864688252758445950215761184214481629128367221133674445441125403126634829067986837633234249817392987294008113779367801322580952987577509904040057993266313792387536865184637758414066128523253632228493155095280799805766690808793578317920176583957219572919954169179535038972882571214635940976335928143841222302728273169134226237271419096822249527740460946030971546009002715033480752054804226120089094246045121485979538117047205477347974403442007892114784690505802059587022251006747887860435191053178791229368430907639018598760835898476990016917502561299507517329266333064999072512593152360543393578566665417232585997358438384776523940788167680570285099188273546483581929132094955695917314633920995966279511557388307110493576021014481116652759281293414263494639297613704600451223691960663712272209812013556522533078179053724548815203304209868964720793269682157894172323619150168303325447054576009712121114961663151919828814642394369792491921544644352542858761496352400854392352973493657243116094888736563431883614263529251861355878879400066087681171505481247428117037731161011516491973923320007982837571944553961324419595606072355231870974524434939466268345885582982100491019866665698840945980228797552225625910086979097535317729578098672429147480917796652712302722466448346515089437546521224821310704816105119964051912630864391062131010824215074206412441233368561595642228792457147422747816077465867411989202491351164897948126300113788322623812696290749582547361045493876148225101606141591189846355882109774765052341032247381645307871382224418977590832924562562876604008110906031732498488206172283613738541829309424142241437024691907639989417157339659511032317123422384607561740065171731776611441564443981503669507178492024495927510138449868525046541771730990383590213478553675790040707924895442755566356996783310850943743144062478245187072339865792886113495748095398986632475850612880613099274687975701743959548142613680219537071485614519606568632376681679750342002449033458630910620592760845406066167125955130853259998974894391354828346199493890689204902164503451813795654358180251648382624289743006105546798953223868410866416602584074572279067603153670087615441542523179646354100589024731158992885612675864693777004077010467308536920937580867612119769476510349011842187566604686269285059983141745469126730821071564298357411396598568912896335282936764262294175639055480488266517668894029149932313789141798489654497865779667417365785322649744274815864586935037865761980408789256913841980617314047653153991618551308627380997063555551184642854065838110852483558393255858385254724427776980438490040552433994179237609011798685036317575737985659539366833457066808731204600358995192671051197566882412746853231457221942389199128750875182520395793901324050090424586172194048498343594095501251059531023261973267203386181846739579437174557457247854819608530197739878060802282896062964448607458396681738300571269454768327726675283960661631008193146294862321402124807018410932196973148020076109387872183037260567552932270641703252000877618356188517347651297468982455836902336572052873651418239204621278264717627231585943059651744745983160345357012849274644401420877010763297242661957970887589994278436549086779750467724101818869563085053679615553488489652886645293138742521084559397355725598200983117954998201937540977210015498574508064433541243045375753937697859202097345843622183097513629102852177599511650711714135870567765093709385034060121751831962123468524081873097311869075202823462461029584930792140250799504184262446320209127583266138563800707723697735427811970306481698029897505757439710332542720825248004817975103841611426817902108145817434110230303073781735611616190201545741639026363231302002112494973558843605382920190653541265575389836819271182223222961834922440463392165232829741550805600132754391578895009738542086032536667606631718854474821694558745122059480495686718082893541190200284186265809431719084069702540035320511011485378288378215257112365150590782073665608501545279421995940122445156770960457819441172446319837523839445536433073623286243932962461196986739359666609919590547610628754416154786644852691775074555080769907353139150501907249650566396831326333687797040404278489553441907076571296821144076920971095384251656085395563985033923640836857488535594851871951838228375575765040041254794798000342749769134108766383539554437024842946463271436863961364782924788505184424469018298547557815210765836347998330578925769996899689774184353596724516725658599659505072228669584526891219795668857680599449320943787506129412811320900582893104802291483325986459312383577528436442784766573760791387747591710449148434887258465991006183540333947883080532934031746009812770035047522950538615647965018951784153656695309297086502277834549081322702956539031319504483434674519021926052597198039095344209825209363918624564802841788186709813689433619265047790313360996631391284715664212662455886440388136854110657038211892468985665475159539238557710909636975555253711988355678587879714700360881034382667963990598953621967539124556735419290960413558566810702575603566602633914176756778015974668483608960645494606077724146112352040747674225550075750554951244673724198647181006160461182481592072643656630062011711501557820628307469332199542996327424490491656243517555674945344956864400097388363355787939569803121718212368819278103790153917740482573456327489865945108980260207503474249948901753430986570828137884916667286164687159504133380528092603420113241504227056052288365682978314920247696760940853272386506657254686062641418049764944266944109693250269401872017478429016089129728384605341756166095225277192502607594148763800598101820356223410884662635134247801339640602010084035384703950289837693088049529131184800743817008796539733961737540429150630329180392630416131066448870519891207890159695994526799554658897169246884500083084715929893261321292929225784073532994747832609644544011261748564628533284459751052522992925683021986993818365447655124334900564933745136875125931689295488120784275509653441463094691450448350622678213370925347649930660170942414742308082988951162331446727789618639129859890984249846899192431751145392992333629125949224553064699098282777448126179064569393918222015581163657131804271452165219726994328386029184968862200989592144662357182481276353602178959013662709574301370304216832770776971558622539559454486797493904037162903584096958687155487706051949572218972135735133027416547412011941350487649521564771885164184302470060661288067957931646652567605130581386208333924239447810404915994541489139593413383563836656162053374484873352286034223347876143721744985764768514480676274187750713482241156152357324405814589495917181559408205064907700906998631806828857038885730855741550398256919571049142561887286088836292754063371975537461931176690475277434689365149258586846038408598131389354339484909941223438248341092900935162638815304026579876633677556868892558061517210913027060861599876383040641066175027416568353654013268758045338649631116596916115049225078420366684979532076051219668469308719023862186822534029739544682283191530585063923737584342545846257335590177004434420502933817612464773214416818953738333669462378303623994441551006199931404236090838850873770976781785427225403996226933029473472846812143091795899857686029923387099267922362778361714716906127714033839512726418315365777966319188286023403410059858733977637943011568005902225963287682160804065863126381792725176380423823393722290832807816273669495928070363068075784078277256580193807930105312117641594707060322808155077314902239783986357274131042780269177698915560628241551504360535569169179122896151566228514083399554699932299256598897472153755394963076466484829003915031467903343666744723569843166870253998450193178434168901323030475502906259172886604134122375605355404796741865269422768968633013462737872130612461397253761496600028430931851600740587628345626655340382940230751352021220245998840425679604304721883480348050353930758628679750714497584146780729806339129277672923577282506625742021778530752095781407436900013560935503570732532140274978866417639487579519355223921506352129617274798941297947755044085146553105453079345735882455860856781771882993976925691435040486472967906965095727223460755347869552272595346252692299280276086130671294070347738503313599348547176025744600494801831847646814890304820199237014476160079918988519811000566443269029529964085692287962708112175068611763293314509368759327737009198297191787973617177612412675541895844796728576780967140618904678854231304026220893029785843194502421818489603090389123694024755864201104211716469963090523563485436779763769769226520958798282291509288324483142300883026545280066598820188781108850618940212811168082685519270002205230389572839870342584104518255202207547017389887681198105478022195764152327348456294498264941348856392764083262521170354049726546165820010898516300240216081195263036435366232906023600151102066611405489330619952938110158508540551864034584948129428591470109983864369365438779578573522211867199839379232813266154185033386834453717548788780065823991767723906123396210442901004627683457567050177627394846335581479021317860180832994889495831758364289311599675765362616637622202816048668832390637168788617313420416043252394092741707433582103844846267897278503502874696187274289758459682275152523416905477116623063815499476495008840165653411111041651306403943865603525097260002122880783841027285354158886723535522364503154718094410520902248598037580365024808914913413548258288090139921371318507545799868433475123434012226743758866540454126772724853165281667552668490154893424200635554639512376337912291222734529455236679192614251480054856771656881730864029704312446023511799118375864932730265781865983254607240841143565970952830955307679658600085908759207707195965655143587406414382629149249685634483915541011109488203542010455200981427610540308145843571365853752138003632209065236008237290950377404535260663452105821936638080378238450560461911152283558367928586730103259687141834752888244342745296493935734080382563369692590252500822706841720751341975785645330853125527665946985293124066974438121785286734598890533903180005595745925668269143702128210409790744400280696776627799054208709649321642447722196515145196923157807527925757869683713441816226665919628448949891704397694360213414968717059709823169707930308070003722266681869043203594532456656313839239454210488226553097068645998424741221390897581984814011331743579902613620929289219004390546726659986071194192012699967225778395519130962338590986565812812612891749279586918164248267726437381281945057545426129442871700425768670778094118895843341382752982973083852234872086151596901298239622339758725417850344045480650007803866764837873936935045467644833526446557230611961395303317627761724464690714442555530974387669105180618744224944189931862431182283382474155345583321667486306285347750797308954404599395184420639101452699669635967673278099657195410208073453635931640049840062908722804645740101372868367936022539757477699524882121038421249062087074479320899069632893598508387339750992918770284970867107254328147430726431098017245803392298402676095850950199513550196338083045307728515728753056596253183793202506718631056807790675642879338411947658464898186216461413721050078220395242821524843101666561889273093861261822109019653262644117362965900639998865469151977016767514201967067737235350186041909424709276071204493821852204979165107697162372323883549574784044916455316991102014453361197641509798308886067962564963085210156147457025151343032470217280418231724088763550030701708392033499708978053628826900872231509884144348911028524452654320723178810457933000466784172159212569268457510587202325031110776775878205531728240289825907685220602968461676272654466968761722530046098621029068808344452275446329142152016356379599951611616531841232126059417400516927420008241565020069517486879122815429148858525072267516166823267890364231887258983140839544712407715447015354220329196253220912161516120917267092132940682268010707800911805694359258030689245604156781649791188230377026946807511409483261204692952187383048742795876992819387549514261943710213064491338125193076560664165904690955056479371139905384064972177074828568734716498883725769014480842429804318282143732567797151798062034382144987654317982743681410085416292083507218468740022970100621498486194920574404662520157396669214839168606121649794623936578084283368278702395613647328411489303583236926766907744562467758551763133773114229487117299076067969593961160513282383362797796822703736439833142357759904335317997471046393635837875934163422310244424220265189285338346038326044206934336046356945429902575623170517481558121534694639555584890251762883490309752139202299890167767875256387660965318644156608593476106352241995778796712901433300188319876319161685365703732013595319422506957524481531224319135673234094053473754957251288964711184895421174848115463413195938511547637761675492715269792539728318191004973220431057685201832231016578511509307954105049603797112822057731950197732236350572190150039745215968644153748860386423153821709415841546665599922327930448095687375460124690670568294701182146325456742685776902916742532895136104333714520093931909446116885661699854152172001652928968109303647064683833655591030025256802981552798677145802298021481518605392304183663794556506048902592240372652461710947503673444302073672456746834043185750974439651986183140327335455814299638435669687977722220486650013973184842834911698038692204959399812961322436761731920397232906104027383146455503361423147886626690612616752023334979837242664343997419953622544036835199045100450114110762466605957532471990022054735669925817801471530472717503786638571898696196140582996611031561133485906079343202954486130177221192649008270104660078597064692263469023187419460517459085846890923573409122193995699107925073767584008999507774133378089668026055905692460075504102370505907830380379050874048984570243167818324442868377934837543365542033156602816680564595552549681495467362464344476360664053363639553258640747733801036483805434572096518682807807041527983836905776918435230422882595734870893426186962189264299856991329618377464946029004440853421949823300948276455265624255925504751582621827632026773882808440620069205396239739228908859385173780807858492507289897213865803962951779587316346307619072295977686998412842697243350204721488547481339783764393257695753896725098460986016737431036170021500055572595804542496622509160840401665670714619228213086808528615459258020872457251547104744282589300613305393590714128386884707333644429275843450649220939464197113135162660290542262052641738811487476262611723736412901068608577095226839999487010393804964377347324498602969383234140824951993616219557967670987035277502550856899559728288243790661920016734822966074129347492189805471562742667501431605351894732894867244949514755219106910132862432297624128891043505558765878801887384145859353642386954398275685702400088653603927770431293160610698013070825103384602535961539158502535546751016177943290819886305252761884030229915268170325801062688937694050198907307938451464085052586840695122376218694198905097923471894953182498588039522353971132318756477212724594104565443741055030048461326839868343389273117983499910850740578827391735127215396665963885977776202141995886625160390608318537382308200788910291320201514999923507404767151980882201219247686288625184002290920048214216619810650298112347833973194740883205653649110403243325443307328438766938175732182482186321518839361277381698878274574756612111572305300417814024700454102206757279000103634011286522569927076993391453424370106072353843220951645442275044941284388434850906893617339940467084403945165415839309310563495309230992818714807712972836765355483718039590183588690828921308652082791552907820134311506268882339664092281319482190609941032343663807312034194029928833224030410040086928864910489029372448944850874124003187374919788419605561080880205202329524858731517870392948917108247252264732905878032053447537602542047398533864753828752717825866362499989373551231429971567454082589903028334739078608526910518327222304242234918598423083086441965574924607663825350994703843982130555442145406331350767383043339660709522616338639425280613436811086782651794346448916103433149930737804566788908760884684133173421032304632796747122837882427844738361686951992665527069702471104472296522439785115367459324430327250919999172028798402269868951077531024914787820909147060877218155534030373935772411701355715422378653428441000513175627792160912593600432655965846311284508804536806336093910502014651482393711664015089416653954575139271973344169534055614616455080272844718671560211009372723725478563338463029006520370362638527469170272510509928916472106031384114029424583331250759582109861849046777219734606017448133434591369941191199242141074537849998453014190309134462119676616213562992151656008796394409149419076892281721841181061248906913184653172607749946814114206475515211251354742352254574900920799507323053395443665921512465999371452268364665123954921480058187728295153965480325346152419991523405744452005308741605368759084589297039442053023047202493968340003280952942502805534743135922425641750329982565600128420157141773104791209631234238648095144463180914230303965828493917591495518964353289151151426147199538398510563508095084811175636280273153582459557672269690800273363936513713635809070900407136214804453566421028054433778980915578110898166620606791772675127767724473304600291141849512976073675198904221498331049610347331168549962966941026360787670376944287432698718802956542609894055637188817866588677803098030853813701793936841102259020638912755891313390648402808290979675700804803893420450887577057996037583001599021461576143503457981783162544625880349243990188986375285173561206816136256727055683594544396440823931293116127312075821796123979448179901531636596814848605127725973993305058167918117823257007615914707553603078952145830189845381689775799689942366702158834149019303044281493660058209476827670177168331768579398801078006460799056232477912815564822478228868383292197652734665703620385699194094578253842296755394457773916757086006845605884124396600518838882703140894964600829024617046355044098400453923509421126901035344690079075077215877641828237402550019133871994361497339740946742131769821560631762083431605148861683160612261846551957209004045504104625101629085898771854551013808076276803546234031554986044735032651294780944403857804539171660880347039897396034845139571636705760654848132952949987517314117137468227243032569826282965553342399713583578591395606301126979938450629203980747926349342787863406731931856782462190401677204931050702623441491733808506054120938707599565634817707862499949020934796370399897360489598376555435830466375928000357784175387310427547675060308993576683177607064608856631978413565967327680385177177440765699970118855109183150840801159140203339394583556011748352308221115343412719068794401198959422141821499388355485673579351240928280120877073368361198204484503964199285904918163110329995498083215073787697780072736527534578097323982412451770814450114881346497545138855670092238047818448476040525087090882500846452944642235472020922652886907354923400554721966264908949338866555314433295933784468792345332414262903547009689987408137910442485918303912717588482699942517273777451932672040753934602728707067491356008779280073639853980482404846185644780365842231697281402462039353272929420072458212373045673250196106633824982621245481832036486323708460003938079732525165748937237665856978627389022352766189798234584871810348091604673298160328978863032882578031328320261872028582117057538472834192949647880655554620339118770307075903532138486213183963459554363280163616495476625646360067783680082598039671651971899338174057556350218225160346095586612424943773121875467538000170425629646678149734651430900369310962899688409654195994421148985565368505541150158510238943065776733876202433311862944988589071951614457283540564304488497307279292860696937550385339250176889122344562952501824802269696344067058633717850264809959150675001890378305801119718455863142426745969225647746113749819441024793083997667076997380064447983862130904753880301223873126718946935756377312959935014989008521809843779031247429951292865385699944892667080611479675196343636389783205525777414119950976215232828057260762647809221000174779098235416930316968717528293656062078375431527589464474156129818528215624485196776519979370980897956350516178128143866072391777503525659826530412850425461737597326777419306483172486274328498428456416840961699813461513678030311758516025106191563115746847719596119170367914433810422571287787420082806973928451720502467530060496797426006582599825095240623762243037381734781326202192549173253762723752892194273358764032064006396149769772120097557867120340827004973227990046787902011147699743847998195705935430908994526556666384085759731970892955340978076878139357584430446844863079252949468088680026722630925296556627840394917144121393075172118220445074015479010449120498597091222954415578430639048369293488713784929004624849976916405784128532868148707689838864972107060706828628665910961088119193039862847016250478556798981575074605275757143114488421591432105824537137563134317358889474150951327253592165900891400826209531414523731598389439693384032761971530028651275001633539204366717510184585500291449962214614810362292958532449817658391756422489094102391346804976651357752838022186898329414960289576477244251535247783526946936009742600394728541891519831921861291012956237947458566022798561867081683026833776373730971618140563147110073690220185158891288930078190810809902289988798380997033484522081285276318965983078991347760974803286162912867150687379619474085503426010165442524749052005329449326574087979968030491051122346836354615551318279191278084362363370066663564847432717450108562559482614310815060156848887447708344856843276913339194485490343512295586374297804147485241209318988749889122286467027860244468696877197426097096240557214333849938576467535875150202833481539805886863904608493111033933187175997715588256233391870205512772950613114738749714264078941609352466474897091845818720903178708981764150481339250057833199519854520459079233125318504281789247511054520098200316876426561757163820096534442095706099211324937940292752888397563896364689662269692072905522657670963821441314068068170102369820206408782884585531089697224063633243527292554913169585248871631846709285890604512337293404854929016588592307031484412297524854634775569589145009448644166307503924124107265888868468274285364149522335512938307033965361225476674154229669294942490669140189148706631489869666407823150028210969452992075689550405385155256303697592379140152117093804935355997506895635122004352646787108621511938590133137342358795972492254361207821596287112851200036068872843456066762455877694309990849297682475314828628791216145080484353731521405318613895046272542069149889518235955577905437754417336843683316822558586911270052827123347370917228156533728681514490483245882029088531234899235616442281235042271594182378653443341680039821599443482773036558947145205279337760178232114241689653234479316840307800884473714460063331456268002039131132064426233560354145869531202203714559280569701694221120148637197715607940877792855156128698169408263682146006511030850469068756959400656338947155878756781677252026695487119914050936767149073977568119462036708522886362627442268089443880897496889927888113938451857438003160472309745095954517024578605690628564799725394113835237043314869255292803856344163128557413697246688329185442597137569468436083893031609289063170665583915284680227256344289646332458878560431720542597746692466886664969784571924777166409756964461334093121313043096641814482528235675539943850389424860401610677845082053433879616170132581481265545781607305596772613027097178776512941868564300880085061116996370385137315204335414313528680486152522553689817333798407169593091753306118844031700758132340764202122815971132207160050604773163628011944533286144671535299743272163039025828636955577380138284507728577390968760267999221067251030710493998617290858539904643690919643797786440952949637714678026606665060142721850680260807515384892654666196663789549880432862110246212843572544139312936695400249805082589868932827636709221441217593888508476491462371892692727583964911994046608912321847782898708110296146064923416192761003717616547313507949238279215657891854448996661463058362891844039266296953470468514504078471038618017354112831489454455197025581002988562672256414434372487705749291895565347406654563670510696764189747172241470621094506904657497199479199270499267084083254846936593105477467698002385307075192084226007157828338596768912783619795275438445850310045147349973017533897849165643412780197550377347549456375925046872284487676360935479313239651108020862424866732414469888338990060569120109719728613908186004490954122705995969707679302928205949611252870064224425681022781800900585969619058138031862458375100096379100768780168409970432952705440228533685320830284545596019474142268871946833929708775435188921179614308712329999825568716330889098617248411833827236748514326287776000579209589463223342026201549682025682044509040861297907452525482860511919433885889859629720823000604504678799691238761489153632798869152153075424795011875000919336898808848267588736260529361183090001807219311079015047560792212955666196450614879281726373969709520397751398332307242136153049829726645417698488557750095981870325040524223501523918000099034991511947809762136431716102546255957465389113611485460374449559229572696964810037410066072913270035733310075864093510698942333464782658217385966537974523420615196910929269324896484604716784638587894500030661396801219711818687121883747036909099107160449801182191807992178624847370103672412826197038540212492680450022775603800322307363837492995627569416956436241151501155816859674573622861375555023033492584503237393040333166611306119944151422374627169622929399532684274201529230361934409708039950760776906956269002164054950259701856218391758153493320179970153751992853577254483854692858460329879412986195168312384544479704229507600114837970123940514287865150337019404976342910353293937243940707639677285687400071627389816935196283121644559354221840710422605064990400752978406710280845217921290992313923516217889362332594774618608148910982417002607919037852322214912242335415848901537580185373026285394168731842284173747026627586169525494181633942896848954716928505849891964084736731040336641594765293897514829114209120109380955016981978141908802620868644998257846299377667848163198059383805337695601805054781364112720695730029750138048731579512694298600112853233051505315227277447286860516497924731466059803250771170652535492532347226545379754312300478977094101843362894464741872734956908109064739126064602876701553331900675157133598050036274066770632349237495996985557192770992093290873216842923922531731763332553683003189340491993807206632478175191989700369140015762072238816537905048638520708540943902732462401033719665307080897443674969752531147128018572029490668780942546360226009478183021984503765032498769607669945450933999504040144107858399638309688917267966818741615553759951831783126886440497006260974356767458286121123376358718576406827142791507919395227478639048036428201912802884168339554787632718520297145062844324125830939261585243340633579130473399276579762883629211747587814511515124462750938925965317975070544566913077827620898749720202240739078134389524188414548547229195051608314887816800056800876452830892111886327463303691874234362435872068900049821268368808424787110111279169744075568363671878225585766204259190347918507644017007988669848695281659309710448628406978675188125761981425503764498527455645023501370206487951581333872095559350492415423524011315232761675234173955415971158081622119647064595155316104680449002066997877021292826370396733968592463272544802060335187168640403670227059794989012955345456805032926474857160251771283675375904964697686740875152365938358574294831868505814544198705033648720498849527483254666841764155354083904774095938381433925431852260269168060840075772861400324886426786291841622509235984177335119824152398366148433106851515773939688714186837760572774103511350957868662987475393102842723010962149224791897908432505450128183789930984471911854024604312763440123272337515325361645153220541352479470185665979838375176819954354272509947910087047477386928344018545683413034699715863854995536702402249179213008399437044096140309044876723372403867150510935623145263647653970268728841860973273503985342428716304923002466337548193635944764534656060703575649699378768666694770410486065584479960233084167355809885083440738324205316774623643046460266043211476998997699035147378448846624646158442628407029328841635965348523058977831478784763731817137555621186169521660135129787248961800628897949444105097333612081553630788945656826022555605151882440905425566969965661599608651389383433692873775538299470037160321566772916845066001689092536180208378382512716659026424428729772770475238481919139841042499287449243843862116606021427175498966897320849123492184164681329375157443009427449850668982539211318330734295964749840185713280573131977039481909128456806008018511939824802305972052035455273754229183851123673605298195850193584742806039817625832246069677896576030111481234268805789622710816728910266660962832319214361955192714105204391638494825417091320412838436016225974190331683515557892946158102548366660654628660626287449003421836218580224739833983488588518967058740940889065716205501676288435129503623882779011219533535951450562300940941091678623585749488517820122407655463751308403375052914262633116023552448824869119087070157386151579172053095752293853645640698206195149513222056940289450332659899047095122528266731604314598559892880660646166841063541990747987433467421258567516620192503933623032835328239880116135455808901549122874148388149041985253689076001787789078800280270551856245495097697861152312430899462998571054693797535430679217671258855423695147477093489398604630123595353586650970651449225990886504233407470237534633706254112796279044992313059781683545350827960162801114871073124196883336720958679856182047948418294083830332745645997295906748282851271083037428368942447067453935657862107607350712823965279074369006825051701242752072086715558686548152602644251103861113736875439661434786403187731146989113737857894577966858952842328685963721617802667171847604436445160231741231640842437993681742417103068508722917899755357848022382610215218954710021661985741066151708692021049135915933117140344399849067998097411999178151783672456481452694440634813898683791044408005674122670726523884007022686625272560190555500825880486804371288399870524419009557308652549266103053868698696423331947614841583903882409585410951506469683452152548681861589952080882091284201238374581745180553281423161707240862406805358900210675188944168346409619164035363905027137741697746612565416792545838907406492370071256683439365061758502688343892062905536987831560713378013511476190248652184613243894934901307701537699926218606215451889689669298723286727120187597062058481404346871246003744175921383251890927761541131081046381279787027897877277177957454251237600130897059062044066445413748781779196586850053088802306155506878034424468919349914920333590281771294027904511056685466006415922217331075568313921338815825721069152623183827723142663917833427446547780220792468684132443943590311506071818640045644781715312511770967777714699324163836663111540454081366139103062769909085776901939812465840122280220563832044989070733761769114848990982784705177365206358987526176093019901574964051273124251512427370221063004195933411771703534720764094347628105653893494052303195529008313966369024614981036542383582167462036548769487393670737976598985307172249977686871165470690781373423646941323921535399293835593492304879694812973812431224689988746626924608129974543527710340524844032526055453320747331874050843915150152598183432773778876512564072824971002220089781356619770879790795161967575670720790613986597053841622333735590506521573112147387876588871550584434736313008556131909645946792823869685323524676086385746828760504543665460411863259523233733949680160154499543238021538396909859649959924108042724266863771095132861200871642525621442850197282221036251914531989071611495293834714156154313508603277516652957064271730379284202181165902716187133885191551960576935848396400407228631448476543531736357873742539180823354809256398585501896443789016760712014318599750545634818911292137102368464532494206434219768545667893726338238799644050826360598597987727224428151128649584089172064738295699397457854366819844157840094824079807058958441265546022078824288276095069389814090069828847983818960705696205851933510647762854029361565424908913776907942181074649366283303401214359743013901618332969749101523109624041104030429688635900582018435065997297732250670300345858578691331206723816117532931955916075013153270276784656355763248432320725253353798016425587470803807877442424106023523574507526192976411827933358284037321074873157776593835074053419223094363357958919103755596372409481198510178793165502001519984973364501731457021060164497976601582472681295009182383697718243300331630031192482191766190358530888675234509997535533989623738149325470091011218038701132820883227326289558272031506197691012245130028610846553778826331555912786612261882194744980217549068450644058591836320295345939836012103052404541480912815129448319744307151694468763723137701895651125642163848443743027571577390960627067103868250897222177451473744764192263053163012267587589273208861902871232267730948663481123246033639714882608077757435262509476778316191253193219665489078225806230047980717786711231721050801352541721362240989952805571904710742585315311099861054761310580730134861070558365582217310152958143951531328978866141052409805325900379700842775155842494779809640742217316972037999707920513889829925945750248598180614243978263115439723611360988535819474068976372236372629569902491683902724676565095853003142018972621226709791575174690877301558591678485556149199312098077283023470604069664832430224022031308495374454959136254618561555341635041077885369055519783823201161716439686509220786317164654563297359672474444616698863458095171990473135655272713066793246071649577000048926241114653037181214286969399307938955872275426057766248685947364047719708441490084142156183936018248600969024975038680128038133029218767087574228126683226381687379754433539643875311917631056109314750171585041017530161728002396923965453671159359724750251173185343508341824662727932488500096312826596639802230222878086231702693460330362493827693887497084629074143066911450458522689068515248522492973504305327253979758806929756736078231416698164578911296248876624095022828873377399910269028784627213257268981881531050676077434802190663409606972411074111088990013735439150325507383070560008118671126451899919382514856288447237447785145066638071793610297331807619157525730247202310311706706650872854712232223479820265717076308234077513808681810945105759257257571980648807088709233639672540660201275157895941467960367194658644611565637985460822029392711703104575201895791714956889501446559410568040407357536653303445918579037770988243532643508291715668097420451794949157759316882938472164005820707906196662257925470845900733312186138023291657949432404274864813065578823145833768953414445087942889202312563694750689142581959297633150142430037459529771661231239335803286343350639668475583016788357568218394491575381518268535464733237251034400803984059308018492772746280617446593799544016809600335618888989864671473120340702999294738035136712085221428615029277655215978617763919736814538584900756191716419772380008728656973374750629663243749582514782461412797059411796188518614295916019041863184170126595803080909654686481355734002497974673253598168315241055132973987844032786062509555170907681818303137458640975331869384144149229802105934348848625896859750411631890692849680041778866428977501519358951328830454280451409886697507314328254156728707565422263087781282122062948889299943795881067024420132155858964426839080104636474278311340449991795314285756848497584239951627428450845738784089028519473256269040761438221892103171771764071370448605529578347177990927003459965390115637279564309139548908035237283769184352538275036577142274200050037981408845707529766359142668758231482295647928114608827507659434699737239789659211464796040237461390483213108816181601012809465058007918626364154970770381019526320533788921256976523060678841768772419065149960847929176183161208948910666322516814177767946449657124454155088187796350442282095244134050278769670253348982236604928061166903022789820789211435771861761806458262519143199676068566226942549450482891220503782253101274657065767360078033588682281354150485103292655242212452302093938085502642750873622620401510315107313373596497997410916932232089115344740647439926068942753612268161447272859481370685725962768247351884357087538724746352977792121813788516815676008532084202642315512124432366024068981038011065221121485763335028706942590890567785834568100080779628176976438028926426654775487642769168023834326644864753726819680131677517274405352850159047927629287174770836700892299558002661943388312548797837695217610335293407979491035381190259816896961816593561056733606499602995357765377618179802024552462821057000415770694476023251015120061192197755733184955352629759522609258175043501000504145709114470031592365895522190730976924662797561177589826950605743663025228170623839173869206247727409283904986602645232889372223164081029877781522742000429216415444579389539867930676691431218343887454756482336884820237101151944548942385448942873077184910990297413597867987988213203619748848185169333636275374098192509155037741248316908155031515703573475549157822826367992038511186639015708495179490565045355520935146166483492985433985829660254878111510954141463118616067362157774867470012704990398443349385315038519916114097030357014809001578305388653684701470111702649911617052185481757080914050798648869610450981675495319760942032748573043065327102152217097006323065741505079038673468638301689351689015061446141084276587034946564142193962130554924629149452321459595300327980488366482642057823875649628622640089798656528577213748106790858903969281764504826712041689986306249803642105509803215306409224612137696771335349949851541181222829333689149085350219108503284968450919965138734346384586127020190426887537345530487377759540128696755636685577364824054155547000865541709126028599503917179069934251471917415643304001036544777084281390869112188680763550043988524614813909134548438429850010445117244966469059566520664744008627004717289443655623151232674412147621507456278076811492144937704440702067749903378725468356183518699197505077318901570874443053207355658854514161535506374485197512535096982086300414028899181541832776607889328312454948763517595655106368044497037098888347028682568648552664667617714323601898813455356289349802832673900276068277870553129096505703644464459307562623381602891209226499095802073393749357892827074491517082280198300188997820162151514392782257452690355149271125158069680306009426456487774229737547833765933382243771776806974962277626264110721402538005635004323011534275897513000259124785766884917783696639111497857013661304371627783423865629300789271652913575231772633412208773669037422237322677070472989221007222795329532394854600696711859260071675446410731704380735048058780924524299429505239144121046781490183316560595349977749804183295320117446798769977687457695042266642638439743138690239860396088125849180313914571472477091818530807195422434080634104986033560247359281857089495924240299619047286084832222864681579519878042804026777724454073026664270243417848728074595630325870389912867772063745576866871328450014121718197584985299648715103237878406578540887886455741307057753691953836698798291852147583102067425938585100027976448431181397717529223454600018026393155790818450825686544028492133647854918032857721397779158752048118660652329853538649486542858554278635550305550072700375682962487076280333130911966067253341873045079156593084334772401438987421160515084384334025537591813325523074178565354583418133279241632891692095739531706790396742032827511591803448861976096251961929252410033704387711294881141086197093496224385810772230239340734695079545089726324919979105949784250645000925499899522767220148568354170947680184612682068322729242275026302900760368893160800945991497568303509793299842746811163482177145938633991869427759980908576163561188058598626361918300252929309971795206874046183280564040455366252907683453260013299258806438534353899541172429012597418565804563765760536276682194492151119903174968366232418954193579705694305493336913398025179825622858563701264446200133929935032871471359658497219216444821751560593771596734413383690834406100405078834063822581234822684146618977019471527421773673121222587426946956378540920048485746794854455138340244610602570988291358166458289495282125214665056778582180551468432087735098234938475911804080868823110675716863389509775123764056124331153481371666643989793630508847343401447600601342252637504969051348563199005142220110546544564223827615649152143461110849560679633305519130341731001546537037873131780741380889790790630887015408002755967980654892546303676064102020278033433917696635607443360532901452346366554059650077141694301342368434845922557081722062156652339708713775471866454937389001527088541108142563943406099131376505285027856105592308319827425953827663159682234382527200069767221755250464915384931934540156274978452487839232976105187520238120545990477190678791018122524375522840927100836589507195334131241782316885833485348472630943195030548865016946089184135224731136570436241263519687766063120789783527424892672646482299989149119083521692530492411649434218841415772783028805273109115153035662800386454048486332277208469977690512232998256913008313736570041081119586461994788145039309126050644511473677344056093706508821322628543498972245652225608436407862937660221164348472387168017295903515570546199390045883193585057352091071527902101653353852267074387095134467991841235865567126945324746561020182165147170475978269477230178788158854983897549611541741652637391834274974346207281162978647363848087765028863168923829143820859430853861615995066667442655660887268293267682591240997462286851188415486728824711946346275090787748714483061489812008174679449552114479391350675836866759002451826812203160027106072250830113053729393732432768736725791032852290641137682212905502317034220234570005697814486545258376063250314269312400512791996094593244665225148846856666328178173736602599996322244397425404771752115504809728434184216636573335260298003659215623977472534287741499722631772324907039889424895373449632280855351426216678301412899601504768731419610379500515910203040389607666236139541612356280128688785807328299725795097695814527538944607980795770176189660761825848180710799270264982810855707738845421391552627970550962724190424809407886676585745671047746941385990976877181523780953299014791822890651725037584568369147525135877718409386523251388499892752372317810257010539762649416406268710582582071606980596046892037941936968148223712280288070817829742095236157410913686297388515772423630923080603462341809579308233575994036985259128861571711015105765890924840578123429064512571558841348232733695666732996753472767568046778778493802142725351438062506077635382209980985003265139187270851679465883496183116223356144411109166227178797529922774343077333528057335777429659679600174312007370977641205014083414626193649077945321160818878691887668678852485773624383669589747721262390926074571010808507665817313525972670952947790945157871451827739313752554668486324441858241972234388678742188233733069457484308560711051066683469527712767768661119181371488861890863790369426237325740170072665242834884186575127690185923188943981748913423270092502602439558846863005275167314967366318609205363168431001437542411086969822299723484758546156809493594604433929998238620532627608673938468006222957583773145347484580488081565117224107810298439617555933689190388394515806979329894669493909853096884620939344017705989033724986636449885915004841254610490607605777512928377383196146702999454571013700537630652627915803948722094420484094936789431221564578863727543284252437218718766424799648644178543495832995279208752856845194698129590649768835641702766950529079685671875900906650721893055333594335470013584173383955485210675086315962644742968322342070102948069604271271903423861149521010130808942494862461375273860049769844266073782281831324703291433046202499340789149729314088871839013195596099255157979146780939787027882454544849092835878719506980680683658730528745726775039554984021712917998543987992061115325739925419324836825614333376228112471513449121553666487635206791163659871490122425802820967595225087888270317525597635454660951265409530742003316536432789658335412174442069221874012402442397747136712854114423057056439193241591808612573236827514400075297075626966451713570761488464064462869874127333451354730033201540088281153201511726399554852164402980481516184070266279283780509774410815986574194433850003877427850057567108385048720426888428424367079405306922274540460240452050240067116702613197950073418327649753929251696622554094030428690108580735573379002486464137972668078167598332224278910434781427206870959816203316242683132037735252038447664308192274983357116216920999781853074187656877270020598526037891484093740659338953164166155728202952695515407288230397286150707086522522206985991960817055198084449105731092777367675490980204531495464314547218156965297204486672515231051581506971700226213666580163219610421254825076466472101091762594491863218081479374919798194738192619186285653476519120688018395777031985733662599883168026723982391027812356482530447421265666300729341445963553157234276885430105930718031032952302863095185273172021994585002476896446081981199235794378439087286772283416227714736929883713997700432073377429461588573983576455001063126209992555650557236180580168535485609912394774924193682517410008085261208509711008319723642455491477182117427674677261809402477704871462739553037894039819477514262677929141020248362315123977548077979464927166137649694883138158732053499766426707382987195826700984072911936727683911691231353114167623748386903684252762320951152784085117168202452532720557114257149163812463444718862609118325606158655451503292609292913438156276897044624063377325865114814433316866275159693163260373697114448986573355243236358312299082652034626958214164802621861731247893151334364743337759161776752931448718166782964158533835587606583355483769070865853539219383442189042144632233692465330950326566593714910345637823620414385319500969857368327987184670400282292963640985541989455371796928535145628624654497754797210363636727700497093192511708375409580612384548722972186571589349392317070644652013856064056701910863500516651510658682211180070532650051766852649657323611708712494278103440285838891465392816317264440743654577587586246616943118593247060180506453048562073772519506238082804739678163116016774368617555100753149704759467683615004652010199634129385954406632208133833456383400052802280689570938635862615260802409443879488394337342542453114036393412609833699128830812101537456388665189677245453557032033536653418918131281775354494359573148009967554329459487703636664843115410974768938405192514072765488505933434367178689730751414348939525190855551217905866243957072214098445961171604457335681968841898726963069716278835675519844438528257395161149281755783118870623220546353915713670554364260198926444302646489961407764498954421567406975777163660830742630874304124170508440895339904183481662943374304711808665085460919578778100033437324462709711887027889146474724018743992631212148577558183124897994073469946403618696923776809869770368238532456306603495115560703585623632444328027744163058280243780574217880967327668657132048704936815238957863047410909605433904944450619866168258535295407776728396684669963938112924509572815367278024554435661810476718655418989154280490465699539458709397380964744535525512146088185111818374199598139867089212745521119330744881677087661572995001371114909838655091960817408052271838899428136332809723606544099081176559687570820977695057312776171651819987325095738939141876613085355604810627762349263354302784600311640843102915973665088026531990309928966219708270240603475936542814331499121360332396464057582644349381215217820300425401944918725755566850903720400183670837439421893100059711223650954179983987521169616290818485860506713535542278465892349194813569033233578750734226689703870309816771784792743826120958596476720938499702026683003306403087688684887735929725046665570159127818584456255954644552632209557429552640335859047732929987881955699898271541497456520059813530653171164646871473097733964961265208432287932904937843871599478306568134655162129530390623792621820300991859071655405376722147234392108335513157505350701483962357077214236715712778340130029099176894359956289150995237514552139759377760550959090612861896768923576569851317785839714912487302292246960295451749823169187678152163821487634964598616599120300521549822035594601341668070619664787101703748298658052582247036400700947212419879070421662141024160434995844004865597714327578667030345575933012837341205715045083809439464406827740268778414331573852034012973563145060088088211415903370575258203736956358411839183512836869151794579259929669297767344915552799420936832539723061921648532171350816855604068605000861355122933281717824822259513306382896888797575180503331403656108852377296365945373721457169743866171180318671632413932396964209084747406442062313433688298861785122490464611497565934499859934671556847215628117860312847749817088863126978174863472034753913999302418969810444475484561632400939260513759810428496462292925387155301012414759153504708703516450784940530989208521014255687710914718736330776566867736621379080692407366805105064267309379985552615357188211668117687843834732619430133588715350914147609790880457753968792823284208093367474978259284584363955957119229367205166435325760251194559645061788105276012334590852661503627421447775734570439304826692981168088638447476582099002992266418320336753666760936073823086109927928233051621795748930469453077032739944426420827023729178495156421577224633933351035663546591282973219839484159151207225313756307039841672819809925914303407264702171790792385114930710604084859344344885919845529075199756247823360424183577100289797466356740993490088597827834298833624413668704219980544409531748103559685689676926639171298504933427246907595325027575487881244808426616434133664443292973703144917436365906142541799390381861096533330270643881483543543764491106710172124217407052756282984489592563340997223031711498197689031223769390205940018126202332757017946619372166734605980272455597036222970873247477011676918315869636630714155750502762695152554470817535570392630286928846682750099389474189947635700430848920668367677417920661300992154785248449096927407405866146783450499080455982019633523754935589079027416548902512496878744819054429750527741420077765661054581112146125708351901429036960137371391985550470189698986549321378838525497876113622038183836421702806320981344822504767952058597501755060547758766444076507296546094218450896321276226045997129030851706846966129709281380840363234632421866548889820184889646449497980087094033472359654929906806662518269597341204452855195340811201321048533435747502340895117630485445726274911840545473711205476070478840615048927323750791256349389872166498894570452445174818072696970669510308790794731955889507284607431168900096134723706576538742896415746440028204927996309227456713163727770474769368906276358209296395193526699258515910422346135048553363045772767553872965624596532359262800713596336921837342859881335317097696282095367322796132909201876823674672171019325967391143748194462944379909512346689576230674144110268925611467261916568243984794778093640663366544938497131511765114682138340189310245158229792249329674713679038146023373062974192163242235492212205017468485275003384922040659989983093679783760352935892815530815603367274670059618669372563333675522688333873064766231556659308721895373134619766877308402045042573478552746339114183047762673958630090127152866893994935284575237254103836347509268045584081066132498409872009786446231859666867037437754386085396777067722287225057863334498433985157226812485936690383810211134299329860060453893512588665489702975719886527786030248006938974170576048127586253693570037987446772921784749532679463252288769229897938402581002277454681642066733934013135595814997955579062747606943441077969436611181895467747091262954499113203965777421947569403037326274911841088703211250990992291869787369552249136218062740345562629758383258922575942350161712632917736355403430595984666573438979444599197558965388503130315546637580365494837963411595796358062469176192633277876743518280242905532786264452002246821647183972219219611285063203136647554581339002159544478703667866065946350202718977741740325562788826719247382660252893768952050962794376720407201617049684873870135410424807790968382190976401835035042471036619243926018811911202007779850316688931720078758550523643915176637024084899293859838832123528097527591741179558938265475952641517740299515754944702863885806486916473629679215250290595769853351691676330058118300648819573802431100648890943252231609377558239298095858169125724084787339341108117441029549600991406986779166322915350638878913102435794984064980928134740314643642002456928817160052824157808374401766911779894483129406015156647111475325051871386219793550504121968916559867951473780163514955872206640666191187262446546479699115093951108204190766926146805690904607781376439908508000661834044916808498793309003616385915747338501075894206261045286164778705007612205913514020541534365766722902014349024321972706566807919186526498383305369752168483550488979378495928162535516019634024189057278531615747051672068815604806601356043755065655350058363437733997634843252821588527022525811928471609059026337331691295169110277920088376470892028483946318480443367762845611505498578436278878813118034472136327908339816569504253424253530824667446123994281535852290869551091682421265489767348194726785809459250799209365532233765867023972506135132769262588634508383420194965778906866750849090284093242721768755071044931535071433313373773866237306915034709021183455045618512125793509596080838102460831913211909226809800121868378297741654333003784620907947058996357091288978323234069193720520157800436901970845826279345706290548159370496910107479107222144556759464150418330264939255725274946018449060536308985699648979941868382400411945525175050215072190859456023537968348212658161370264454204211602784743016527326968977113157608609155615331930883018991239425406158078104439077742900066289388845612185168058135337481738698174288087086647048810722037591156595920472825890668239709204074022552137594120848324062084858932520325942168420736408618871393803458496187886484625521215129674187160721338476151503631135135202312393992179174019767176263238105906573883094039397682636033890085964310530966079923351858335287256348926298150966492880359383991404334307436102984359581710241821176746416823798130571299465183525681079016444062515122888403463012828114651998931204606198754854884283716433491854393542468105841085423312680793496047551218273242551998742422394000761288870558622804526589883209032992312601258923667420416482143695962324228368453385767368097987630653987527844888036956515967779451508530184397747764252005346110642216311462316975109868021556033165717431256125922793018440824810193878548535815028509900764999881880435515515323737875548031007186310516582965756410794355775898066703159587255158633265572045769672073054946572139604535323692653947599509397561922378188729783341109328272071619747285628335407033599917651735427834430002290714828357389054609339792700889530128640517056049460063700191886671358609644324113633387611904306721579557035408411122366196392267539297992101248035206046513916905527916681656262187652758566887843864556860651678592369895449943901448363816640088055174144648175090448152361740357912242658853475659790682360675979179278329967461192576252009399330282601107434520513639088871309315655055252693289847793435381385186468169517508783082517225199310767059885312079190493429770972194859555227872557235245801027645621076294188584526634244072230469221853208263627393564824272761913183732396890963090959124392131367129637207548904141472375396424418876025867421673806206080081277138684977060207090674193453071579680811798058513010782152756461976697236258781881744224164553782906065268964472846826924247673920036257262093412521457642765286243243661034267795272530180862748457084920993524975852409173472203398507665856086769987104218272022566187581391291827328350138740293512922761701853010477282903593333931324156573724154116496960241366244128879579153028361275538563626546999546005893505934891253704413572101722662127827429799214386115457279515896563894979856090291996893034584521461708767244216299032528912097684032095359796517028343376360602023892644609347511473084572922606567796499301233503039299020921445973059735291959612380022414321807102677327773374837741949213232724103834453342719699781087208717682060977241380535031304928692366596471309977619531310904412785708153304467142041555135035776607195931502968797964158122243362150193187711425595603679003661611543894703305882385672721126415428950252422603994399111416400077149259275720736183765786189856653177334682801771965379784672580037160336740663906195246089211534672009899309999880338797831193257781245282269516122095689953765978284577311961450215194996216925859707935042578392631432762841658811930311878369615365545108640559986088239043469252056606364052676680522185025675359000849488768576004873619532090162418304118835131290470663033698589006009004873815126550207189233991411869960175766913023140285041987525461992450782906953824163654368958385940661481055985267756015308672066495915095032852091471984237885931811013395042738928930286486842728368132668832045567287104793784226478980567177309093712143362969973117654764804371226327443600936089635452215295192735830015778769281122816598100404405393538303520416344752230847838756919321663626894987767419875653803259477216335710750798756308101542143283131325455566342641874782184061681086392137105143922465161902462818112677810754390442920903318709362832677183183202378685967685939537352202821986186113904482558441754848697443194719841813848709812778271282839358384031202602784491099592703884816670418977722883697423390664990886096492383836433132523879762665421334144163438832715648772401764292746240853437781443888898853362521375979219251157498267753823009924829974853141919765018770193175430537059900935992985516891281349762886986751291326233446671721093872733762673953375783618646369357508481722966479100351061140713666218517070878350230897401608595138591369158299215248122502149858418953381894250946743393917592891905652766243704428096738211894171600089897612015168962173256150500817935411307191820963766990699098266453267690347151555416757166788294268137026880544955862610099624378390774168845770346871693384257686989437882477151978423441088126354872740755586459306853628961400578570626440595442972898979906631648414521312781915210803507419145614870513363450722946014909432218325491965501705130567614634658389741003036284686659810999992653230621990924957325708222393151804150808951768157500206758703378374297464886522356693469239041306386664553258521727622889696094117956652965345491032688705234286100383942731346029497640699224788130802201567670123216454618321863114511249314600568555121684699524969974858508475362403867381963632654596658958702408017251238368040488238796707662691683379658989173846677560257706878625953885691748847302695810226120226190037748633775880685294027580615039060102670745935665960377032452586142919574934747849666000717658986053554097162977698830663738923187151758958266895335283491951704667046011823531247402698988247400596697591074675193315578521550692972325111602673001453883211563382496166005182032399842597264336174455850140239913348959990201023779639417996193052802390736472355272420122381304020192179138818181087156520127673796765603282048992144853510031183363932844457506752739115446320013915178776434507772000546879244740378651757470908368025879460508418523990657701370316779834815973198145998711571461924050858522061828487781096561145029546310079710773991115148988509130328437528528978051313879892304220422116197539959073313144071334476792572951958334778137172534053248567597861820223133251737832084443310022687633186737565213620359760505641529922941799618988513253271642884966194272478309302546943149122416394809219022395016020272860042448890207761608806865793999536655542733913972357705485646948559608910458701298618935614621217338419514750795128724895120802572169829671915353637578480951963363332563408594902205930919857327011778351746851603270738622580718789614011321149975755386211494337281921769245678573043745995178279127732420229367132223715578619879141716065107373365569025783647571332867436897096002273845009625251273161197979971050042184997193884317192414371045811307017523925305309388397756846061069671706460593862975052244877386466185775193264102573062157985317379619449378504514375426045865608630387517463384686370930957586841940336331199731575989492565189191118988474388848225720758749472314465207701860773486820223331550239185625503064069089902514769005473868378332506117430949176954016369687372168578182241303897202430889321092664081876879392894690308627267380442543011004845244436679519362317294153535069941930565878597581897378645641758092339129803557725435675217572641861408188750371136329236478060012296477404977269654180195356233391764067627062105865819960696102803290586883406524352281153585077147489012136196333489020958234182863428617736222902402477234818723892776248295340497275941042628355188328703771907116698497629016029471963339577270869064939066943842440722389103996751132022095498529113506455388249515845143050409113922303731684599183666322339318093747306983923525199629788647815085482071442490983686951147630293498987192500773309146364826452427079655438174382187755397627617432690873764314824180793337876770079791926700217473158226919774364283077302113392544424975326735113550928977615261860254774770942505381275506760153794407722186696877365371062864946327378630638550442686998648580102359379415875795148251766252296424089225696421645136356909211634042041820653564129292162641712682224100108843025531659975322098130989453845617627462644685419980264966792870936001080207852563958777650358333991399404660313442624686518898214875544084185278814750619380879260478932162280379235452603638026519537422761225760868195096907412569915806994961217158518447485449623004568294898053023721086488615366061786769230820502225329094146903025315994539996646337632089845083565572187896651055842848725454955727053992701856862814977096629538059642497418427840200964282647769531516882145850479809164352573741072247872337801616906988247830308903360209116070516090449659653477677514138598193454296309384592066260439386995308224270459171322860857976280298462700377565585465820243616421075421823351357591292662662287905974732187032508232737199875481465110928634428117247571355832029617474821159436243507945410697952811103878271112990522336057532942801679326739146518390762344341263143488034929321668060359377699598518995900419346844866007011648776211035570614377368621926832155116162951156321921940913177201692914189885513623341574552852665417159119851579368577901361336877885571994402649809566911130165629757842764224145654073245138252105053196248993327523064323494272340679474728515319926274891814135252573512509717296020177730916939272541361100694415466250260934666727665653037118488512198775742045279552936928110010055553047999420425906485536771773380448886907718541616986709206383244989492282306221181127707516665201478160218328155250161566264722875347992262835647383420302032689476453898308446984323607919088904414504889349021005740267461429491917393297198993342627241596967074586837720811634201155426076357326394361713926891375302104586637451681168755998168792981929602345975600473833938016646108103868572709324383302132729119838124925018092035570464890417010296217495241420257934425944131104005405356290888087685166713856433902981580813272989273990620502843194964972916249355081893286888401961729977968832225202602196282302806509580407876164937762517532217241076547465457952849552331995320184465751153256949220684188036099523375737584201973729645342754523250344403869647120174143768137569897918025146167607474998911403629595812232731194185686487553653580190890674891118172547458701920515919790400139251210834610554448754694706334270101182302771726218094773956711338877428409614704124616323113218708478373055067987414227240868098424014794167599440238680319336793023450090233776261849494619907271074608160540915942574529602043086162475504035813854604091777570302684780039360559379229265369632440630781637788567309377643701815008770623006914953938893203801671779266338338267855467408182783156715174680310057023891477229045914490956512294820276288561794080772629495578454913636880510295502936705365302362825376170687913023532968081044827334226450447754546466006003049049082140382653111093717059875065275317539566700395253086578981310818740075473153697118388368909012777005859237411481150781999642909060900654851680625855825224194021528245107586344450902397858451569275083721315573329268833088069439597689078030459423400753181385092291032781962727885963093844330185865996946181731803486111048739403045683396465262124121827066469580745794395904124081091536090791210343991981649930739744035546116805481859752391107253415133734618068096402934557526157719123960256278523666645640305703385716570837632575997321702484060465246383674762009178363116727082418935129944479656391982341946742499672394777001283800223976258341804592228225883281291220598800359070809432636770989154760168380574939681622749705337321361593587153689857501513014179458487547574627417586208841466264800700403301077624449082467629948768568787181440847371612263567680595245904041776925256358321286367982684125388449765807366767087864161945999883150243410029177146163857554269550970110564332964288199823614556193905925198906144404107211568634307030370129808740724563386832398449164082449264694818662821858969411029792214009571632083743833101794662352842851727635953845231922204096313295926754457324054057211127402559872436471622762581839512170026853782077785440060496310881021434420547846081551643323002472726429780830534758266428459564502279002398881013018557210248828330408191656142450217622664404321286180896641560859064332671039415108931838767786067138444582242464738334844489120298958834241787312829642369313065836754052898724398458067401494861008846642080378161436507769270694583123604301623976899953361186419402878910660833465903101839671331949934005778470121207723407054208414765290968468804311705831959904131184728725879970111433161394742636614796482613351346651562796964379509246459587145774902458559698813492161549991015693360523411940034468880162750067700366311960949226738845011412071519018799555196554059865719983213641611704681072207798586051564929658845786286550998638701769360222171306118747840186004368553618942138383630744884423134515674574328281343368862718105297406141708447003055377563691947727338444357557009299668653173841499781853569168409959657490660634552910122560229045200027899550156028986594237089281914304601304562445549823952382106316102478504301267798564980849221378275582800051853693482352973582066862918397295281132007723602946373664488716859942417847401658268087764292636217748236104865528841480637176303072719796434122541750091138908480850610038712163900748147547231091623133014639915104132309613642954684913049115679694275155308569149042241961123120575103990821371780232727713014861307054835644597365463711501533286941033866459976417044879011381884876603810387926807984061161785599663973342937147220940645540809928218868451732227611745722157163647001685475990821601920200156219525755408254933949854066373987071629417023374914476063317454391238068231636338213686420270036245192364229555843176028583113518971425185237173549314441498473254792471851451014021840792464969568977806081340840834208808249353234601575968074218923692840372402871536480354172746770307953009529901591929588581745649065629947792417566595965322064394062164889164067832575725756409279702124040427375766663959850075356919026082203720893939913819903477729390366596294681644280765569631994853016477149834624360634550732164979727702882203787531130516904420577737154793403859152468100723033118494301829240853926606488267589126357480772587276649567649170196657940935666932826311532987717521665530677862916107200119839881738832418138530593058344866202741445005352447469139640061266150841304958658602408962081309046473067501863430313615093868766819837686134781598165975328986819202454284569248410014147348810819641825869907516531522196160347338448321876393194242210667133049177278017858497175454819770076030919467502202386381058713493746905071335557969297970983224248720501941338627576865544135368452228966743223021218764530754744645570976286930269491058402637975745644820539423600233652166449323129341823112609583922703965619614225684625150043531387049699846078754027589406834941072222353957538830365001316378426690108168783094323677624452768155462900220163665694860875426127739751262236464720898971041063540587853432845113860890881317720891153638156314158414118481391510811336509342958410582357017283886310678924270801106575208306641942728611578489791926781601277600424263522026085230612753357871590833720549472597715803884695323250479289077580402551683298802099157291604782341294840186353265428156053011867278677696612997737227993659415615729272221713982504825375339507013192736031873870543315103545344910542509003417021496772181271961921384964824771057468787903376490901572399103272090827648757144192591322149829534629388056516551516494691618623285830550321113924054547989391783399229684952512672075455395956720421271701658864342282079446698156157232056716010364679185211728055160825710336103592306691716503123320081593250935008849837938179186115343928553724522798614608534745433233148529605411405836689514785806265042887189284393053810604886773721311724149682676704393751195117248263741587314517372391209397403972485352417999273269563815723663057255490833426627134727656040316674517487252007428607065598612976218415014585353591999099286841209263521521978527524390855800574084953088688451315943863403001677679835932762134902520055192356895022079244166850349877091398565204115808617965500429032048486848928011473612814584123641354264493590830027178094983467608100185421742143682000965804038082541717935081484151286718051646921928593591965925048296159336851330234314590215365975197753561838584832946748129140171232755612962211980820065140339306401854343698840473821126111925531713170367162288282199405433278009517080326909452399869547124028007813484969000188617665465611293036505942954199642065045981218768169112481061045285686074275656498524900629544691607227619808099928657009889656083478428408608779514613014361731673830318683546506441041437927940237467465500693171215293658187859099575805075125106252314717795525270302060290785236424099905098400489352303963791130947742314357623566006333434834238684009714519662187104724699113024878898588196901919452424622216977710476974701565644760158721959140481118354662399749522819696664160055134381821986037565584237381230228447832873794683877468854043074058029473912619468548017100683704166639957172439448312406110747284252384815562598270661234886166204371697667229771408242121154769692760769066961293551835825430124056560313498805150800515216843011488919967950536763364597610113071159739807666696812831397711823918321745771110255962784763461713986368341440329623851886632583531084888315967406707057840230484807067510580793123464587467768129363614529997502377162769866008826549553382516725180451092618482367995547593628141758401888857631802453176664357869987639220054317600107756242030940099730100656617447092468648194288692951206727634148938109186232180166065541606337901478313539037995524801896702801665410705602332858309303736255251444900647422409442373151387177677600781211277449343156215497132286331362262821492153053849666672803163518442762287769974468319770317298851850727806983513785010417933343251023474424454575893101775462944615770717045418411334271105275539036445347225983845192317871234042338632568381293085502524788334048901713795560612229676519701436974768941354824049735668904416491673296684580205661402616396040090734552930216293121687279686944537544024241505630042100749189522297887940009888653583519965189815976687761348445478824741326519447346792994080180801832881672081068735942247236401725144008335248724327704493904941061129311308101567756059360379697716924565743549386466349917370312183653828133594008827492117773565116116922109841937541393404916614435756331742415582167336388241614807516895212493840765723637119907648689175952329337331185585865145075657391672300514355847465463139982575159443987951782151919853252206376021256055078882266571504803619806067481654033353673974296411815095747583240686715847980596707157413963379294517560467392294014126752674821912413674636629015413632359368697129234637297129032209737538152995687425028691198592325301172199616074925730220057864129627630879780084924982651370831710708008601395566191962244000426930584644810545319685366824640556878498705727247012828317853392184666188726851667350046447977000692801648518838278500967702222586846398088174614214889026098540397433843399519831379908413472356026632957122233924723023518700948631921031777150314134060030004230392661523492610831299508129933810101164797432078141863023911375081034309258590706482206831055278673609169911802004776552270861223236230388706356136305337615084952771391019724610695017665804063048210315591681052126263725767163964463154353988220691393866678650309925239196475465283835035715018096359553670144517411867277144012236212606659417382717485781166219433416131966758752634230128256236447463421600328827288537074823742548228173318705900179388149838044010331376196001673388277737070251718346625912652117630266391853123378374523379985748267647754289822872518170530851355866939018506389771487450937685872956909252303744580528554036098147194241106877910478206705886973763399147542109519035467079708395044347572677001691532129894508899359116460524746925048716426925925435895292906540909241218501031253119140145599114168620589233959131309444177243572054314534233113991279472484885670588885547603930799281682530610154776877291347833919768610588042810465154791580872720476787487017648522158847996521945866467496113547227499289840649509966660941132346330380488609499702314827193148313015053182147386916218363845740777242116339619499831098470892443714444562335495545488047145362751461448493073852804724477249670440784904131433445365893407537608034211322327117538323839054213953703534891191197442489387633570079217863600249508200881949750732147493744459037895371240786163804640115006394999002289573163487070227897816051324945669034746700662124363611056668466813350821610306310299418237601421231631693109983075179478302558997586140545284505262210092175816199853043824085361378893696167136311975354596109104902949030853685012570639861390488207306041827975746031407394328141861429617204185252397732969872846209918979089699075788838688931500242392929047957904549454933590641944290297538567480649859647492534103046163134022804015198118780853423141666991901360562259543316626614165766125301790296190880019096432246807770309226982202113148841665396694787598654679411452236402675459487375312068280209245359492355174301451546865620770145515648585407788736353174207137894419096960429847842027064753198521683464591631072301100862770538871065396330179809261366142423537225218270422092818572080851028427635435306976354431799785592225208925817451393553002472212237264950698913295616617880888661295007006533388681520801501466109941518363091903366534867381565354861836293983939081437829210819456442971632445806374680186022577199791019574975444684883076296508543751040664938195762654501610255764875947952070847558977829707756447796886660874530490014843959658970824230865194726399762772158267060575433244243963134125112797189764884803943165297402908951524336589445686891012510827697387289480760761465357427223305082878422599432946992025001379641355811298407052937390785468188541693476873102486388450144395389411281199997250827450065976060980574258911671678333526491994099259609290415869393148554879502528863073203811004877795622559130968889988397577996821572476819312523507466413269671387010315427474912964418535291056311042455658876562896058377536820863269096070210712012942907196472284643487762511575229272953891682230875965110799682825345746291609154746790282910149214479714109479997044659613668365557832839132484975618597871563018638144220175399844324327776950800445055445197316011080092184989891980014379269484315744603381646754820279453754554553555084908909041722860846755633379692984670339528467813033875829149718233185684454344505553139200842458436824777868093939033211716436085255151798221485265165246967337225212365051127092077713104323783168459181827536262009057382229534962094340697971386878893186764091670428078955968980062258895122661769298356471690961748684751957246206821023600235409710794906459287414038772629202763578548986965761800771292849669447062291547454955531995574531047961989930626852914420202081798491941575359853967273864679232610915784213437414531188967611825103868005070177296782845955315537966137451267827935754741511427672371775001787866626139978164783221054208058786528965335924718085444656127430794885020440035634843283803795234191268897835067748128282340626462094235170081962808134153336443428954683743282095986464892979745152129737685756295541650460927074224018139025772515517979914764994860734310478915818972860545986480062305752359416933500755493449091855053926052026579287871551663043907858694200986478919266936571575559706205710572611604629410358036568859611394963097331507113342181527636740745647998120032864046851136691034128732577513778579651968433695091450112273193858029838658535350790796373416910803220909772301663871569452152607643914270010688030036715014100473019575953317212048082124278877913058769324835164429977508671710606395951482163832044145221343385131714841309922981784167619572539512627357330962343404469856594780691097359039850792800766586816543863569792218446944148552418414328821557835066432144487412058208471236172547266653844928657182436466070925448553827835150173469152826240693090686934077021396252269381613878722882749841012157734806619771110010920294948054520372522480553154291387843258726783099819583447631901953733103320686784508469972142208341935176931027569919120487857176095613499030206171799562735336388178477532304586335826763791223195760075234665405208207221635790180603129163395431647020677339965350384085164470494565679574215448410790590400655774317257868636692294026515278030239731043091997562790252357884618841071964151922301425001859832820510452526413638643033258769753412409047197238177594110981813748742727276615119195546685998097808791621598024604792101408722798675256205714470876204152789354188805876190246729124418545986918114881447763619298794303208458758056173606147710368895246009284727833330709011888590241904921420682053981162847678722044487400200865212185956673169925035402223551838354052591173378812561495517154693643956707668754672579840298008265225987585985476837007280662537442317831667894801021730218596533685899671927676323341262592791515329949799617556426157681490173613372470808553327696741073416174682626326755491255041280794768632852941354852353266297559658500970338054910524711439617186593659360697950928239449821000887216198536672489820733908502427991776878981243628372396473519401872731375217784450756970264901750930856161256989404384231274471968629901449244851835345863618605772441736161760088913920298614118040736429269476716919247736377945857841871465166511530940300849808457652490307406293680995173120305874887844904463874159494366869334977028728811462458409763767448009871355171554259322549896537945745826432940452610917608049716600136204020494975319742715654479140777131235084480390199405434726567365707290481845033554766911403132254159590715729101941669905014404965664107879339913843762311026616204756949371620147911659161701253928697862625504010867900592539270787458473305815069272913743700643460183512778785841961069283974616134011957990579369575877042747994874070053380934936364573016692853796101555029254569389080663295160348197144869917342706841521348064580251281282328136556244408030078906489985469575236524544775543085633600958955786034175577290957681943706731992951235977376511883712949156596854312050186869319447933381040063470990868237682362466680812621644220246828982566904971982600058051536968590766374333439725243180987072492344088320504631466295044883911948345408220204032810374898512963654066239475417743728660383101380988379506181287271107208945019618322742728729280702671454922014855035945577927090176533573516950541781857316521010468486543086281908708844270603186007409480970835199429124539985948228754379298216078131209277810538837076205684560758485093184421521164861101996381981787336887371411037042699802981730886669974838976294214766090307019252263870636320118399255249156260529531116863689185599190395534107898765647753266753617492618022879676968990095284600434307126080862857310436331739505398828505953456529174628584229670935760162718592865762479411431879347471956394126211572832262947842400150240658192032631828481780129648266328703592205486223850409277969013065908701664046140623741962160225002316334582294044908245041439121135256225166719871314381134667902535190472449745849713351157328078031067628011589541110848155137854206358256709314267254122469338055706334039450444784482857166752216198075018352885116466092143582664023792768677743605822954250773336552376631675287469985079883879714171007266141413588418429854897556550563792958528936624675536432323999710206831831607208413104377862650576336561280412703212875213881915959935769651505646730859433611243542839887558154467175691005376612168096535627964115217768801235831834781469280973490086402530000645404359683183974398949642647235313050542605831675670059227185393131155903424272898601517067952767136547472282028978500177216341500210763703368042883443792157994592944057679657487939453859078220332057906843673965944372004953807493449664078495304538910021418717276218328001298069276264236086648513195393089518230619825781206764657855553433707730110421979760939454805252703566045276816947297913645050977174164440345644225380758678019169267293394926010824756722745159574078957576466725393042912160347116383781899951434301368293514267559925068685729737056232212383366811182631783118203719659249113687727091725534134304114275216036251364508478014041264288643127591866851325723120358625939797078485966018297417122096246611324641700275941876031904251648848696617525647767519412798096198369304273621049046993337123703276555337292166944816360946933200457659368764723623809342498214484309694719875836863444926794348641246509988690516829777063507712745146243408488860208499167522412501011306306523925371867777797457021988014778611521282267502978328135221926699497870168741071287855862528293949558117656613281960426796544807605002550388821015546594823239431130224208545045844995953098819339841415791098806172732264496926420519300464361354067494979073965089832637212679152315203000598962344901305187212700808643671322830617340250467839370070737219528396737942982215796605049140302691800578383876035351495049790751513940646868858447753656459912349717661565965630349426406185813972564714523338312589218304147560494402179783401198120956853691382985750249598165780107210188374906646218873082678877517808580673767868185360472252992089279468892111936340892950995298663494617397959096406105359120894020889865718364631524230841977435160507375154724293192851324609898623788350790964644830436334796860789301943480832622511031979600683245094644940225658025172257389245824334372899105727922163811778267411959409729832340172682917181994612407612984800655821943817624670441190231053426371848149492740253057670175651595283733235647445971759787748348834628529033508853179150569554805946435440673475775437121992033650964973744641496690030199470671932611364769574422737700512850789208506386363942122291913837575577947234235557373022946453382925949721302439781211127919939491275869918015189502031324818450836783561386887308869158545892745194643431511639755843184777891371867426074399052628588379544373690857609369394803695754265244643092996779109245514503456662841393657143991358773871629580083122802045083270977329428374213964759830840592109806436718106441019338748626267447354667803147760567950127944840239553823402030966348678567648966997398618733778776137807569489193025955665385712241802500103645306494902936858807684679401377880548276869526671287960437884994949408484704834499828542881057437442314272026895717033837576530934873774728424633653440350305023042711880905354967824215217940742484584528195345084341057261758678584655083776153816490588442376099644350762754149074028623144245081814857600481058412074676359474134399656173830985427653723706510277142651883787550561015932683349603194468262064021443006572146405555341647251822959090526383054663249860516335380612059698346779095083691946676491290012163365475339392289554427869038190031962770161848725831370545656560198473032143822118131850727838164267798533333929065387207809045013221173317462644307746092766807222566205174579557425742860645622183370068258481568135287952802401415675089430959344235049072921843672917757812005721283945369222913668377888409607080344020998886658675533308977035867401644990342656100613876080129185751198944805603912845707740218332039813539713293140526905227159693866270244283077102202914749720932552860705637275733981636043029320941176982961772320686735907981914651685677301658408245612685872565100592502280663263236586841428128706823438974980374455470639417155319255192614363465466899583619045020644155227628999662565917164936201702044178077996441580890193819278328222333717523901739770398230754470823235002911253982308441549439259924694491522885735017026328131330343423522357007814321318847813871612257878573721832007187341798818465235132725068225974362492230126053798520675308252644780729869556816155058989061813130942807979899197609603564195269803773350095012006059411443051453786357027320980707216594243372098828629051167994864006874776224240263506108843661054257001224515808270651345937715880732296587834958678530770370132650875143503319648756291634092042667289738950834850894928196684301946678153813604294996201010610389733542593051805580814175938984128893078573183305310617898920046998674128623925707997337311762627967908668767679110160168827457945262766388570040430712296542404241758069340648148187821544975463219298580768006452774026298636142320766597838283624286392284993113424566690652997901415839071723937698678917423938449632071546811903419535038012928581958727697546213402133655282842877087626553355470472986731213788739212790233910994908717661855429546567762371791593572144232990376745374892258460092122868340554415102127696840109627304747705962961831575889655360115174220887082653177123939599825613363096915844383923137861298855612453160488318992250221637640997300732111105124785416248688530035286372482384443474839571874672032097172563191656090358854573659318596690933838160105330657438638922771491811123038219422771202786285178304071415826628330950524934814338131119253293324709954950675179527199963606525821275732484817535659075209548027284269099405944820236122943018561458545965426530291882618996785294861888423120411072207534955544137974357617593569177145765901071343469684234353820791167171352516922392971431766422774994987767579295671380871469341623002907669213139941303431269601123221698135683898657693695874077929924956262999368440843019169786656900605857981471554527413178381340593117250598127198339394329817778638781630612683366100300789497104533387230690310761254295440430878187163485092444800362010246925911001163905237468749091557198828037388134078286128004318997282485587230713823231535223329524513473786649753592887152911865547236435542021000344923054753759989730785539286609063867272086992587124740939355972133182117951723688117303224898019617753291074465234583851642502005324092665580447453125925239665846996244016426038077122126264955761645982847784257730613187264687023538785378698682439327273354705265001258438282829806840445865766595327729636911469776142576206991988833688414026848405321846099961456770505784657397117917323740950968895463253180918835636843228692655758919166477760537891522461234024548622974791604115562971216423013788887970951226307538726159837727799084166244092276671365765368895378188837638365112674009344554191545851383667903202077372877886902019131877371416715549247967112668669251075382338887667054137298760946975286628103879065204975972356264613574663104850776854834458028228697514921593237243973349502961357550340765264939290144122093628579416086687629120590980607815117835989132768256237514780527211779097512003345344109387710998122728616609173696486790259752197931385709871207756291045416674621614933969118642811888026388244596500135963716688560643462078579551373692554165995512590788734271540288583731631209033334391271342136616698337216376006875019717879916373616529618073822207278688110238879129365189477328918291763599949435586340446125012146001698798716524417957952913750387195975260798490651965041339007053802225578495817684558130084777123274474715781860591333747852808517855253844960986567167600773046708073099184870189584105193618989285727202932975639414174340911419909590550019983161566091388945628555227797969934339296533528967742113445410036763410788134403024138735436127379534256669725099749591372029303959159670110126998606198020736288403912215806178980327014968376624979687222127204855107965187092030779062016443987863481890075246948851180602181888461609831409556984805355009456319478946012760123914119869391176661315932362453995271661640791274014965628316564805343542583395687030709110805611903416698903268635424712324393259790663858737561973349655670239342674838027099560260124590939695977956789141329084749395053327536995027879015849147858654924169163269023772949460373261938640784517820462808030985377193315583020074479411190619418185607703753653316177116558999123124343889820754137241198906149644336230151181077587113905671765932110097054435561059343646074553002513529853166791998800559015192608373048290710276649617947589764206771289238404652982893973803468703675752590134512004541356800221757997504676536134366116909532064469657343599551215950368625471291340698065432865369351356093759268284863418367754109940728648467986093410807612902703911401032143189082192673069737951811980725586459400796293478319687886690203440777480101808167838365660185276555100373034302058894135414209706073857972037135882665517578143302788272287816832171530251332523474204986420437740491841453030035987832439626376820248898352798526004124071174191851651678254817133993760194737304967379814378810372113358585172627312025078840608310109402093221788323674705018657148182523184566757350294533847337496085381885759193749290090880101328686246345042946085046816931489679571679751898177609483497965875409407011844117478471739226179501005084168024991573457217688804688037307993470775712616672405746160543338916936734609549172956240369338661921182428967416313741266825460936526648796231603789312423427757516415510320649550856350138841601622019392686140669398640533020067773625924834806598281469938799590614840684343753364255501457557372543015122312557509069698835282674332410513642363249422184556550402259196293194714614238289044854537092481752858345982870391834663279163299921622351549012603590512961426046958716604754085941211188855487835517371850977546146523073603979019454530642950048449352244560845767858116157011341388182246527895034561957503509112287226201725456092470258275469366926711152205205555930890384252355813716341606084381645096168328740324883542681892310172835898143612860864393085253669236617821666762756491536373656161821780997773366938767320887369164652375217576117544719471314640030416942890823636006325103073807132111645805827088825994551278064885897915919904101863017448784254018496147028272816945593288078323463661476044172658988050393676008418113468120377298974313230592614104361892578428852654068917896376150939837672240151634036170413735099878793668304100610062159128066714139138768180191100413514316159918533312047542775918337437585278957981355566018375951711364107186934493854936492177609952662446099512034402565645492331787875103635507700099738210749075083617240875890359925778687836472592197370816395787972093710897136334733610706651996247120407375547152133977098699439739662098528032231521273598631753805404617630057577120055809991131345461376626518549577024552211980934120096357227743509776677880126651894300409011927440806679071281434424641209069259710818912682094804760708817591739238030443028263625989468856448417395795500432715028303178631013253429706579242990283352638588044933189307090059177607021387693513085750901848023664719719475713048630855112957138743881923981430074043856574573651102694210507552705069200170317873992807855434344758291209419255668753195407763441544174360183874887399229163395738179320699674895215179836541230424170794307635025025820995016366138823524019598233018039661045136583838928210672767128901668847561221683710876582971999826475524842158041127809931829656974447202611514826456024140186590178831274296643460591985012063361812399662820710693136548645196223786332035937986235538951278441763392495088874176207261535673004788842960107767744123036354174603040054112279686442865027111861803112675548030244301936347516045402027702421922794973753467178343175328631811604833575407502423133805639016169432556844728548851525757146857235061978254455366225227117645470595049222880855753930614741722403214383044837202908602623725984897996455002011343049228679061425887607165352464622452301028736253162414051579208069266944934570827160714647086477793662518210443410196315600435803568435854311971015105015962618793634586728472998917369061936898773296156659649343900571081764378737600691714572566687449247001774191879725365736526130220036280687281726413036320550209254377279053716698086607716013254571697151379231284115794605487056289810428708518839676903081588332998018925197284810574664252087384796946074331164002686291613343049998621337558491958907175355422138362436928920267146731381273348016494354096203081258517234576747421555722042308638009610251296757215694642384467609235527960361892921666792020638539705090375750393558676201029074807454100481154099320712237574142942140583869386131671325392969150569633011298933326578820333656876122193408239421208039008686183618728338124258848148309061835168079506405257304908353982177435109470434351757101425110133153581994433822415866061937320278391995383652837273969111689776596342892896386548742921181290611283798814936722327889734041277738053799516322782473507325452309631501103829697502690737761828723272027985869012731966000246545716400197939279293108373337915199469554327100337311337025728187726682911689382454574055561436731751459312508429638557902489309573640106379399159275841042459767372688529279871232497279931188660056745594683978161061459383984275024224940809849647626430958886432026241235152045391831178796474036021002350354031609889246456572288437939640210156530667640789215498963750042036672388861348820730098659682991588251410271215214285779451216771449103803478940419497057832996450546848965649702875225321460146001154868650409446865009647886543252986986979623784335906756813991552520119865398679723095818205063294324907740623780002475788556508395661093654324257968150972455709249371639250349540917734927529194058816811819966781246819386018692352821244603773165031592507396213658063285124447572820328515811281968212025070656536350223877660982927175465988365202802632302566420153039694085078912046760152068693276745293225202130007422018027698534957653812685601231759412932404293777290740597452272331451685768757520729535221789671751223756490173495873089876370259246251567019293774181382695150562344514846492671613580809763986920695195346981193159914911230791491508367806193964173300877283460787305078264765010499954275764285620207898183720794292907649044525634044791472609559298746837825491506488628809926944915453182831923564555865859423494927497511367129945776168910276999553394202596506656660215322020823486059469745355933617651011015815160197991211132923284962661800429536427962961230953595305472765514583435598003773957372638190198645510908737356759495954826129386289540898080598103422018320843183936824443006516136391853093359895653522217538166337533461476853450281081431335400026203345314993611353002939314946981253372743888541694390397650502871444465259327317305637729660832465891352533017165127229720415933980576528893861839179942139532861245924349571219835324523907501507001902985240698310321881835015664876315647544372956790146801466439995528044311120385710637835847031385338545268847120962756177913666998012859811849019366761564180204542553298604092476066013164459380053123065667845603928227228183321307964865715933508767034000139759595262799702085131035264131861734258023763798375692952939331024463105259088767467223439192333299735605458673217517628213126451638964682982906601263813770226598778816053049210585241203202848853510775927085939301772223449623631674341119776396077003507917422934695420059727325304273219247270510380170753475808756840439048365879223629219660444416603492934728770535653510760854044793567738841609696359555071601637280695191456955102497764157837908712615109999726590728029320635129214958705793574436024371649457936862204368377484165078848499196255216904977564643939983590076711725317031871171574186915628556321881759566165309153092032595233710289929813311550682949016681487033707008538681737150419274019635207159511794379719575192728711801998456681268555002847214995740338682163280796674768069371219309239957770300189557485030541950346001422119871612695657304485165655383941572263523897605062667171280228814825387354577297334382548852484330871084316372966303857762241088157063901067901011138447856070177105414037052599206073311109903155782122943268445756377193241465101293504862034072535842398952099791773981555291210711042872445843070553090776179072520425071860837391330208023401674239864043259662258096639796710522949340553076817893357416196297215378680302107879419108162270131447591885736073382845492984245076280902785658289132834745360544185144930511661523630150227856600131500534007450529587641632385484753539100418779417159506543878389240807824144710688205066559675999125410474530035330759938920538556302959309516416747066915775271969708540300347767580469259507715322756725102051891874457281960495106245486398802433726381071047521973839376211751045697203643722516380910815296740316037676246497897860274576039655227438929818003109777072502091109100662134966303956022400646581410225904526789954546904961156218041740578356226253795482402847848925869179837992386677417448151925719252598043317224180058060471042002270522928955956852546537926525973227327909590555857072780819741032437388206650333934603580210214411667618371105221391427671213198255894456065495379013286785641283274986757337371482089791662923050922969326939359848187683348752571509071174068258221452108557897973443850170483267834683290113970331407973191294637570747384993746888807857728772347207949487455200198425505323410523357093539322695960744201661502663877617810581292347884212648048500206367087536159739589617442252460708851858504810684061198895569686977420833392488084269968856331482655903071425349161708910398275243659583896581527409435911291317510033793597920087066697045537154106559424912007003058076411819014474877640333967024253414636632959052639604589306750261748906290108096130832552056812136326427265876254382259454702363667276119433538773003926405151925761696050787975003874156752026631338829093419491188297749858014193445683866750207415170342692160769503145793432385389273258232077183663415712362320109611821198346844521276902655848300442037263493707990789113795020230382610093142278266255681678419109575091913798376964625104725675300275555614417468976872384984982209517560867487554523262665782977538366847704629191691414730293327580996784593652737874732472283336600846976867066352801868408026390175830280928430770961522570322375934217517261958016604772042950478371113200428089320362505488186864799424941095718817341316038197448396531689496181461726771731200930918390456523350744603021681441676032448852301366202556191073704049194474953683805702011984117217350394449931289653245414631062883097542983231770293135873258476953400651626831432601804253599059372813136178606469796344593556589211055101745568730126169463413352836475576782070522357718861977907618190771996084039980671327844708440636092664904801385473342263391728778685867576770712657582204065240027927606267904495401844141745047844539526293611968376107640733400026966005633601764025968917861274006393269723340006620512418831196460257169133259991778126904942371129103426144227704205262339053998965066247772874654955464474495585792482809507385612852946407302640961440431408960859634673956085677359514026622423925676873611469379193060772223030039174571650695399427447011648371814845682900988729130626672464964828684881238112789585413080773500933941715873501252663748315896994301263275723844610301440807661569697134644612724150102737914737224004090611739983781515254231821584482960234989080263109007398395507314068422619692996521645584635901555951547518492734178388000676177757319442714731960882124671979180616743451577655456033157847194465094622435581833943254336252530266722206573960710660154167912947341850827425009023229293693197556910805301989117358663879169524766582914172392243527802434823728356423022770503972683718610334636599110099313425793734657042603161972455731930726702425924637331425705520665248953243430506670101064202446564306733663722173029303897951631096791286101167654045310470248941859328942560716267995080951868803577613226691733984222949448234775709953209360470560438267743907111240522609347174665324098659874744051215472161938369140625055332411995713788411620061016734432033441925470938601062608847620882587956928363231269564424923445278114770544242896712640605104058478552498583373777019873441410461262065808718637177479367260813437334926967241070793346894771392317360345717460024504767853170108485877866635096860594381247291945021156542018133450528379007766494662438451729305807630462758596817197349365238427710977864486504253744260392865049532308537678184460230402435782628492800354234736225358134972988360509214468986281626297923935859321889873262356218939082649040477791978031770848711580617978995091591255582370550064006491661927938708010490651724408153869461160117909093279174754695602776288863483018722556965896344496085068805943532494905414703646309638173307355408852258722633976123331968456436950465168033399143187412929184926523966027774338598176988678297856454480086626843885358249088965156434081097907299767853253516961376634415265035215388396237765176739094631322902662826270313575425944976873798099378892878336895308468700659769450353241496250552144214185517822806877459032463219437209280989400536854759935112158398919247232836081821538447742064464355789584888996025435760791110463477144356985715330422179176754743134525368462103143838735458319859883358142987628451748654779874441525835272013694241216916511929391621615111880135141653819730025750277791392932924703127285344302402194780356180755809990764413231633123992528958888236585691872297045089157320404976666365624057985353768431150291860041506637896613090509442266899282466372827074360588927189728343557496262385716974986561829144978785156591984288175726693395291260054315254516874443543066662686101133501891492720236556915737764294394616760227851816300983673091997298760652106076898007622487139744638864854207607146898402739719036060032133649004342812713574017064246571017336442066054900196311970990373997126585726408323646928668530103720786291164607481914614939473686582114751602654469398920048390617234718645562026618810399830200051918976294327508364478106757975872373676242776649786041612570199705556224160627315518056959530471668671362102814857882754677375512645064690160851257669597896103311938238356888697581199440462773173978231159028818699982538496943146041354853935394456996149535649718923960862046323869100974429192248141975495534181187305883656664445362904703616377643870305713930417754746847485611947654527168585911636209726569741416554387519654842617882397461484908061864612323232108870428616186985602394225366394201519567809470871911514541162904612570351339916880787720579634775722921461280137848845319249975850302442926193278528636422828508830650142987304635392648498133272863627954848557161226704668839839395544503353307256025498606932561320299141812354775956678453923428186401032024459186228456804590785525859379159630140531098032396282414661907290945548996944531773325373338416207346561349683030781132938438676883638186542446684853403364020677301832349646737777593383043205927833915192899714330058295003636466382791840013480637373189821377224127481982184469672476242936255275993188118375941856798300052021047125837835512297093962443871984790540030558061991413979467839819720109527117205761767949820266194445688887358841441987433896306149944113140034510991747360473976962662554620861574141687025347051326303663963593797474472575802107431306771718812223227288898814914517058264178416760522822779517272354658905554207075249431307880873586792763528238852501493203753368332484186101850520297629249569478122330959503838356000760447890247493347192259288347483864637970108850889393319460384520632078370034758261036674130650681224143150327502604570093555760461273638870243061804892189579869164973762247853915022865518212305441869057405462095635779271739940465200680217863294558925690860943463636674317919213908455746011568418626865744180455556454220133744511862857057017983242264420290597792121871529408590866280473145126488434544721914209307054561213728510376668015832067946546460440681324684641768754769109601062619182374211232454891088478343864618268830211171039696235321818191604007233825312753911604319450225843316838440115620107600690323305014509363792160201818453038091872009078899519300782540162039102245960608014015114144508668143995996933901655230844806786319715568071363433946518527438563187547496554324658778992192033384395434542368458722117909310701985173523119870477460393108357759856225665952853143690377469592374887184107718870735104093373700814570040832175870182636021156304267282811658765765363734539171427097874793894873865983853269702095487448292205205988938543416058917251386093715400872919043522282005593145042668878467983225049916671292344664056409417543617253193198194459222163300989240776014313139513024097388513440956593388090996025349590153715029946041715656833071481066769679420217361193791788519895428525916388801997123770774919211782458635919313298827098758133102748727408598481097824421329262548020309296180924465116145694004969880096480973122959848453306353731667273645023940447968436118796599337429412958348521810107170192176700132644106868620347959842231064334485071643333478739880650497567812740574683004536802866019082488295469032328306738093445596872590596230391974283434362911489804833257473970136973091305228748764148488580871747999737067495244255333677178343816189440328874677143240136200821136401020210525167515399661348018417796433726308506632686382961744953288983366559327790745290740747781120070652285093796672304362130892311080126286836572783617107048320920499399322387870788851806798157619751171776907503000355468496201472637022004843646641326156730319419538491893287858772495860935837045319425597386137132668513180361718532151574315719692556559152193592979532289738461321497645541000873378465265389347250663115143365304101215126625477573565305245735036445901237824394048809182425832611840508717552901830930733679938291792127126850400504634119973399506838827952395561514239828792579255376650502853977679891205420750091049576327841793275281317320007081471351225494075638063934913108801929397145919932273607549118437227833378672912129362228173049758008743508431505150083257927364635107041363311231082149302059492867348859183544305308845200853053823876034657954253826436605367512101298633522315509675909721502060185452495391474911952121893929046662575193194002365793434420540926300688946242298730288812077756294406292437426824091446046128463705433406660465922559017513486670686692909432263011153551711398266073127209856478366823170871928224657250599851439010274268130445544670206553980683676324170296578184105464962268572917788585607864148654918401257552909708949656665761553309734357439971597152888928300644293331799964742394805412007136215592765893547132375380098726119713945610743648183495314502119152732784529600698315326939640231240423120127051737834246721165658013722419999885327688306047782308730632427294918837489292395068646972459714266050133007333233992553080146461168123786643051344074196966502197332563508468050821983385679583283746280730475901995535581951776296567255579753613695435236263426868264996125340554135646546309003167633514296972711479489810271313093666782317211014367370211532553413491913810569637882989022549234615924993589771828262025040409631829134937327422443108519266968575219382583305550039131397964469511212873014489616788486252216005959223873944925645989872388496352147854907485310675977118466805046872469978747511088629213171365065866906449788091027102725818061040016994689300248404248517675571348150468142372444156195905245007072579331112073569771783293334903727443020378318996165968076489196249359436591819663509232691240136764035777994244476117747775456344799309670787675126808637131416937443782819462543281234829444276177641884988606327490160892714914278392271855115690599023532059809144838872467797896922707132884642107075564795830762727866445677000701829113917838198824039069321260268443122292676558204590822788181747186293721822466825628983092952540776985572326346084420367521528657854273809911963217524667811290177410906102024792634707433693773491929350225718974159835042538219797075514791880275176379849702142571697389405705360011162554447335539744664790346020567697764337055984061501095748745223614312960122578150294781442109958250854421793366749122709126038845085583315874740245835183165751492793325196769056205926432367431934813368199059354331736808445553412943270809022745953159063309326635265184331182051875729483875313408771048473760366452527345550030831836774476597439782469054468138597012633214451058580085720552975562507898015178541628352032089336279758008765635313297407155424606863839470244712867841360035485321717870173234837679517026407977385306896545263074700086377998916918294316757544418007970667477776499900180080619725862692802900714509078580873678082961933057850909847482814235672567711311406317753828959399484460863023185900548013198473570060665713369061407870383652403713428142815595504637033062886770981218612849586843998341746496457096385017690604295773223796992863234939625553437645140049544233091415384483237355829200909665955533770317024132679453638804713436629498884775821839548269717511357081318209230535176271378307911083385022888559300047139806781564560580238878751382642507509587027382262727342791099653233712147468451742065537693453568150692600300869743318182129051205206130598800420871792350873368089507337894966770267059019527990364762741454227823573729062549314110575406188754618826622042428237420977863854519257969559696676929707347870908873845654104325377150712526923405449258178293009457591841689089427244535421954648869610374658028178249832043214789332576842884021147065111344885674315198444074727817787076322458657037510087248422504720304387091549131834335766370546264463843197369968030911221371464277221195630022920040439586390991798632488447191886661411761659606129684826606318262912513805690321162326333531603459674693045301941562205430413641756799613983959746847531507363852047634297125337852098942924199262376595651157713550929706940265977288172571795172188047864488165596875893259800976100326427007182911070501883809056461211662091791445745752895150315459068156320859885133823671613484909529632643844363751788418057508188639072912780100365427297517088694488558573890277144525373051007474421327749889409556147433529468948542414670021914567311666396856544617602440228571078103387381662735081014241442018209737666068513000795266138224183735870422686229109227878050273567263195293235300764867096331975529307631585626882889498644153182572873037811470350034733663945408658712048572707583501015899348595716875241617623349900793660593837379227251294116083827662123114815637040059202694159020897610384381724544969417793639534038015061128305911974861966352195414484074968830866585998648157120182299377841146600720545526647071014557390292264708628764637964236100292134298629102740281328880860489234382771165348968547415537383882952174968652230720983652370357273479115882791804978536964713310615763761629922594360387076029117643325825371504887131649350122125622786102353560961477770777296360527907670511767262609749918373255508204767045126645115181023162301322808216572647952990379001523212245577671360200788999722409898871056611057513395756477367430968259758541692260949398535485066564424946125373946582144454273638736774970415054055201906764105583410864952319769065793212524438034928372855483171583964098064119528216318894627724755952127604175474300383328724931104033040570368099880015197754782715268210801311827143058734380963645267053837769328294859734462892917437178664300369774780635148419040672117467017771502850033279830277502681712554858121333645288103599120511315851732052487368275433842172064777465837054461779420829184619170210753053413768112230769948269725364140072945840147324874379155060895789701345857201588250520787140747016366627904856647978298014020495990207582508350108507219073247412141878961635489481278211073884251376911539725500790419414602909496604228185341862676060260602693176498827411671695905345763661658862778391823031488663809181191375854495908194221289295024295947669626530121191995596664260454649546293767160090122389097865964215634110383508118729068105606586046376659016405308393332209036834843748871901039971549558220742467535375324662712040631912917924452102381431949764176127241303255508271327478697067535122388508760314021616150847993443453158889353975798732317442131323401766672699184800807614775341242827663063654072452453535934922144551122735292294222673577030187144031530294986863737367506689881410189299700219571811366541112972617287109500996613393366879129983698277739454093652623306920774792041899496630988430013097494157232215477362014830326802534075620028921314065165979370936487987943707546542949362978185553513826709738121146524551755146983859418762745100793201191050263234993404695611489637423422931639974711054885251700190367948701444388239660738413024082824691319014574722030283925458691391187494585819787431261325858036980343804829777451805614068419899768144162902510462613834069007609905769737868778791562268666985692579473524950004268058426728175291141397943352583260417149232647787326951819871619995174074517993993534375720423860060935175164353746800029879667704184488945805686413920440281296057029038266142053078166268451384223488086138148408951791110102650294838864758231533362175892150230748333714970221024128209337198782779753872625911788893588648800483287009911995857008374435969816699369902852249420789009762726935171215400240236268211262670030528101120055235624050264808899163816289998413505512966461882609128688715820878047828977440526101003627395714257164367235719032163802597291070632293556488933284954315605292739903174608860929487940960595575361011177557328641384466500148548454246336411000371595651476976719397610740840656416043199809691276297125540406455642402668594715869263653846710764712823075293303077630598346907579866303659156457948230525594304731605778754330461410679889917441531992692558603996389515020587670307892522451412093588216548048058402407416512334985880890290146256002822253376677570389273569796108760009298526515578851506302129530506347429003000157626353829511887709066281439539826774174839307847391149661808159966814791924667207400974737552791124249478883613966339817013176360985111600051519891643051859673170448949539056402843511352346464988584146150101911073989149115243170488676842157256616849715203408985258096360042687113202406461855414040213296644661815378314686571734927327215201062596482376859183403006681302799227691203727759202306729899533604655033617593387179449398116550421788320447626223073434862079705156046058420689288139646028402459522216977676808436778157118150076159719101263471930640370351813526273047702316055452809783433151827663260121191933975978565701395159729813996954264952057296167642325014843179931745460065725834439395991825995123912034132148915276219873989180300738957715859625510880369829229251128318495870674516914668470379268835864362865393729008627625417087104516088372013379817677494792686732676771522753089650320982503323836426476055468197221959322456543739953391945565986070498099185256497872093940686516273045567359708090808233523285799125237009495264178073933772980241586732666905075431809013345684743478825446833732221603145736978906498692843495794692903812886126118458048648390668401829105083410197330455078540142496206328006459368915981326441406872301642309746074968324526003586326556641729952635832832013297712540379296138700198556553494140258421954285348760888640159650709850439067321755834730040147882304530321991857664320493371152017122049746859810993356474945737282325836138405956290626356156982385307154617980821453105737419081670040738133763147282595415417999781794731639411704804277511678348515446264720920815722928078556728609038898237403490086388406244846886661359336981052443210580694017889076354089612697255381037546281087942442027047155837535226446697562699027107488166926581680403612311781811709249049031395631379904459237872664964779137222325370668190805601116854350385039810491219247678870252786303862009624651894117988276453348319374127727771089126598332305648550746002324706050053954832767920925064941006053141052906815752639153672848537653921408302579757785406098643976718601225497203287214625966687152996620598300679159471445811932780214118558934402381560641617299471113676281093255709540633362617094987156222953874467629182846354525278154286939685710334441761912585041125838370925360947061341860424990775993208486115781218058353342142953691917214118895698864934860650212972158073676613241622206525141224116733028909196751719050290660723734568972025763903223994536270357869261592697135094789445104223211595127619472070249583698497810477496141821035141221211788973757166343932938766800635307455205662313729071296741021795716015940112619718665544567921532815826531617193408498334244080869017296880600397932135730177269125268472791254421155279075764002399992737409519870261423862814235497869567667228282754133912924674326888696790884082104711216380216194761537744278601304851444058309145967814223997230113553237703610185596656331166686480446268009910146509463599723744441484911107628272546189688164372155647389088975611373286376239907186506997990493714918033520517232454196420785408441787910147260631267677445678726768736057761895788110504248815375640710387218907515028008683291244478848845492674877911459912982577474802575665941493580282898930934138927722483755186720775113781515398580165610035335427135145210774230044926581663741848817670130270656563250648820631549245906627486002890559148969077023998284575548653149128375421102806219978108798239267566110041491340496983452708093647500017609401271531584217746797407539766861068815192157359741037223023264030780263527726344541963897235610202805062236482642262663730804724726506334259540762811705093665721913110856719958048559562118536581724640700659569710527415164383039045266635449821590260748880244728724181595251980042882190893577645749279869575339703243484271497174522132297582264347815525871808582785874066460208673239006992564209978416067225899165705285615218363978997659583112092819492253812051163334396095208341290558110701076352610415885012103631086678498577779621935984365677072562920078190201332834047029051426821870319809281292216865757958131715934154103166378949690594623379495281735733100102797785236475557962819394750962719935059065317378649666876673699438107773819039226937523718840893563220639252957937690780180701519382718864886488510510349727249952202306077611193842048436405911621051442712178601696505896556081904196425380237082674106546653908530360274696892078806609526268258019092386768346154641011830196769832434736960880746722848655611137474401697525837587588932417603076353787589600356169425972617929610947263601111515972736615667759019226101962862473201010419157343705055715060708214179327064152267416067459571254941156873660870957173307865560245493163082754457205243185862628159970660233148046310090693183334133266854787308083158331772419385699135432663038863822168810466142112962826574998123888618111554895684874497476499613989774462652332080902204472865668119093768309576098749801194941122151529521369057372067694490257471030015338920705345348358013049392931024277722757046926732407511328436577377382235962720989549388461848964725753132223712935322005897925851867188315781673156890893687982092806355666992676609231302661008182344654183809124079137716838844479021897258981983150875713570391999966162433626181393742322662301742044592339662176265265337800360165761203447832197599330101236656173760791171995269260716649979767542802998343537879861334847645437072116854852562396113339550718879230953707350509463823206908497746103581995113985144683313230624233558381625512724655739228315138862753876129135661614563576520340060229650829485949593054034378406445732267756371002259864576604250485026895959735920292968257011430522724433814501449466450249356854406707165018152384030104548506072130704000706826353522763719511819672568551614112085761806722534063353761777669268525637943364559006792540098735024311000660583522400628996772888643244162848746048617214960320645362482203466988108988052729632224918460918420164180506982039567146752098358380620869946490223834378693751259670320083378432421170191840990910965311912186560666530186228817121291493525454852147093126872921824750685334232071724478430817438297547476080153808141983782568838419110543796598918646020303911644229174755961129480896496789836324576750416083190546241809385371997551465718877770736041391789435035646603877946591426515278931243185241044718944994632085868156887774047746217073243140295089794301000372587353624283289183357420940008361618104267944382476327136865740368770774649704074552385182145517813964659704736571725788898986449021013854522208274749123277325417967793686218851536279632224597766565862055273490317711516439210267104873175012010290383027953966765782086196547954249807109325455027799374501396587503849172058771698492165764503614218966708653708012605706119378611048829712140539633828807645734582094278957734895146871605938107565217699990197202726451371654792110819519974078221217981161375233176997719951354744084907780852084237141579844337514296363349000581076194759656748083149909156494760907892091322610558143908631604005428203043528837246130561918347383995969174670798145980247957667854573016641852178395812902196097849900757639912040767329872178757932931643852304773187540647208367125183744258403189173609843512433511777966534181609390014787046849308598504146635001283261753799805616764693775912508699579287873656381582844628466762416323498134428348946887978800211593295805778465366518148038663308189430373361205256390774467675937926635613753313941735911966773010724100703088319567274595320619942765341669813435250812063646868743399230543879061408674105626169692137345008978306361688037491106357580332298595019963816425029494532616357270804794460179498319432784335134913622107698057697326751727641730403026895209443409236886243938687118043742500732739868052067645465090939980176957105572804067831302198928139136590669724894644076834824311930803277974841876293096265747849163798464465799684305637181193614869891921587859890693165761688840579903800004108272400688768592222948056832824765636176226658063331792218274192903750646657075030340771536425787463983231372906607066329914009367015225829793582630416873733716755474801935541484564928205500615186268347756305760092962420022004240337714032579691513352666772082044742353646509414760476211666455895921396911694504888588934020973315094398870047555153286626528001063139478147781150754116307095884536351096784166648215842478848386690494751250500951531341308837061025034283174973563145497747981519198610616778897901597179675071572427363330164133705418294133479834778312530249201163357491380370650269638939039664507951119960661057525658847904629866185720998169542043717202648758245968161158483924031276746718615292690980197151503870858319190269762756977946462734284596222472480432509890865748260625025574222273765359279896221580401973527898662941458094961263623829824943574209164369172469002358734109570356263754602231786928439522856630851819855819423313222610249057638384002917774933283389568802142191483182611474771799643293552230495186890421505956433042232057524764308642344697795451344043268585315441817738910056764811854511449800508392916625681170874836777303987213435534671716019512929627170095028699384014702406760351263573520949038740358388266559837849929827645891019776220742272268260200817172356555468332242484963864171548711577039791863248174036019381433664017514558269713958513206225862701210835998067103654527418463682531374476823454131913620370857125503242194469840725615217439161098409644179216569374943153859650394926063226226497629891901900119388639972631572197441857938182696120147534520938527151241707969678447341382653685063646701458730265267774953894905295966201633955540337394528314866819595993573665431947016049783863241005105776122684915199763759462930695741273748485458282473485469353215813051301898616565691186245079647755228801198147102519083124952706423131412751891342272974967454319006346740417001266306866222513555172629159525590299521857610105014589931461604550058100143650793821686850756386237665871047422922417614584843542460023485396164432309520246252166564928526690202831536993725224499530286097758602028655909369789551593681255311505311815197529892969750829479715297486150742565896404130732323433889731978485228570523559261377827241847774984094855134757925540767623159523873823285243160274405542438218943665769138917822707997251172931684810649776413346789442356364631423303190996457316042392366415722143291939752986474882169112979347165770631241056187908388062835717539688872616734117438886479019686983901697424233092931374216561088553653928256423789572689037839832446766056767950269064718275642420268714052627596607867049635878042950584759643525658605090082109704957609190643932310606178868183948817775860993317032761264106979585784604254562111793864602684564591172813034662318129404516384350515921505723803536536513609980617008487139108568665872400443905334182744541396680799654195603210181284415564457218135265093329516056107116202387679775641285150486635725642630190466345257429971979883065830739123869163679946349776282174019769848625175740475269990450163149982553872831971154143783507346296698926589161184647042118496549816204362607444218119299330371160467055787088405201518277655718195571075011943638661010113618365819891309277298884269789903658111286527726750491364432349298047124659521097894526856337856855375430376274940073577879669486784360747581848535444245299699214956741032978220092406019376630949960797233189087904994299954787512076577195778935624586620810957425502566701774932760356071141581111545798111885246123796846946817881324497840656228810130784466708915192202020173278878212126594889127134015141275261718635996054869317396061895892320145376037975338427874089233325882199390656232831063626856620446554585044167160141041094537120856666561071512013996368524295351923196279503347543122977034439544521677815021942973597347048171421503397694086244865627236572744010061544438714860565780041164132865406891094597187149770719228215176754037374010727665935623403369337602152613931423419297835686471856001372286912378161363607613312978843027988138734538066383674080795232456091923109813051421535056272614759157769063750925673519452395816647655402040635616248877151970587051737463058006238938497789021345700960089472027052545585473673446431801921591392934207971687429948245237824181477827911211944256307207489870181168974117161314496434372858208039527491212496691940864188487724486840167017643416006443437537201238604912167227903655477663473764097615860613219752269844667900660312726379499446326110061850967705168475124773625078900204422722035663959487074696228606231509894213148587384853832497074478728399518931647033850700657674058036582564455942099075019949163730274142776375437156479227926537959064718302610968207141452304189233894687358941080386395450588609330393057142658498822993733626981502561553564325153470759267114662705820399607980125980295741973735518952442896378474112122094253347833490773115531233973783483120398317287780676845228623293693239264976940356302436602305752192334734133547509971551532429640400648867406948789967271175842247069705353125117761427798606143897140418194785084845282708892265303909285681635686706374488606370111179559349958393972593167447249256171846235292191399171999775238784637211029801812210170860820508168708558578761891127088780731078369080949646056254311588323465947296365021822858545088327383913613182424862298651016694621529862292956281785148120277514569992161212430553132460101935716702381011315305513624942101448820228110358607712765618412550359309646225472100334468802008742011988151375248972517250795649083078496575670195668445267829094575115759446315465079813985634808208878067501298676993470580506067951949556027569026588258252963369690134697716840939558880987728668692614358119496370410397588041324943145012299669960861479984595355583087794637606778200874273923294731304694165777581595393018959769219385112186383494058652930219901902156247654137256540084691873292862173517510613414835915814351495889276254985822713719073436195649976229059959425240615651291219252791658406623882309943139732380662001459357221902869228308857018722979382502943448924450781649936072095945210910797697840068637345975233304144917639558092704059118422445293533467619782858839685651429497547720162145714329949539813385152588924757983900037626397130519367241540647170118207453788359372377247502167412278194767574071085500962741761577152956801027425988961701659934657734914278760723862799515759277470034355338513599805238203366707331360560428668860160245109532043480640959044974052503331583469033191222364543985813054799028162634725257933141411890646191730260449830439065662817925023529090461553182732696310921448735810996659227330083497807402716500021886578285716269470341148964785163947875043629021691545160276862465902406867283255050125129024214012776563759927063611281541469784388124822239855368379795341697893699867505622175295688742120643468955049372989563869456417332626945274195087646440352341878260171857693302815762008192164907807766758774296720735294928421365414503675986709898234736542869995983287071587735783838840416072143518630403651192899736767614675473655967682036944029901486995276768601181819059876137711438236625068966043089195894391049636379442278189586763784157000510869923911839891510361867993900100640337060155273320190229620571600918483284776881105343109421201456107370893800547483302518391303318615065351834155254049461603941063105626249869101469792225239260773843069011387760116847089260990924778216813645562541581233885840401925748418878219948078111576944513919279414097605047076063910058684154673119095945650704394076393865128986479252211212898268888268969163248704657255789334610670838576089356976210653878015865735945830008502023529035642864223560610497216422248176431985057172218211069209755394225999059287844153623815930404342276051109606658689718345200811110438770189522864895530142071941939006263555086178228889259198775281295467615195237621375702167967263531064366886722301226940269382244586703089278952181903562970171657315137677804872214268797954773634682836041855734574972686118506707544431707226579685932019362309453248927647736577677514924204220410295969531887832523997225958503598187356133684125383776566512417182770567001192215099617091080771128460620345322072478071742955392034800455891518824696381263251322302931570593382880468651479443627642429487567232070298817401412075136920086698894550554128706200093158036065498609180562737799707540252442154220747266663248623841801509817403591481626035913327831465153621385688177643781347785827913912131049878547805188917111773011780470433423800645540938357895574098693958844901141025401336127657050082205820323478319244407079014312021818357899596116811255867437614257802160085158449158262090911112094814125797576566461169785590768338178995919320134083268716590707738652979490275570568211331212602562591170674974436291341301775297701552858988248859359140252139340886015278047867789486246421881381922252277987874879953338503942976430056926723457791437568891353726988199592977186484808073670426891691485490061557337035201589744912329802228082240886119094644464245649722564855277471516378137077331456110375535310017531659567387909050733392293061155136742043798007498103809484095382129084446841003871418777733923592584253453906067628702370003558599740014082656832808682088368390954543344026937654134473201364681068357300882597353893746789867568232484597119348824679838058471951672940497585727804221628245496153195563087748907187624236947807038434616806290580227435708203248595268565456037506171305393915702247988085434993804486102072344037704135118634063644949167330319599149767400609148780533919166011175980162236006868182688436688911133614833796876305594079514089173044135918090871925151531571515453072284524369703936251033502090842728810028310694386196853551051172318649524071564289851131168655086281596783832786604845688941176763247828758028662588197478886772356534168028258963393636937629269094761736647850045379958540754694539024083894527785435440741100639808268860256937727497870028240042626237711730799313103137965056255318544167112208034205327592951299595336358865992594755043271618380087243184058612293497108105069817425904069764188062094806495266439355132159316366527345236527983566545374247966184180159294381599077627828551805181027831181818563732741147995444257590059152703301863406876977706731896761527729324754543498858537190991419635082420534633015119603723715485518347578416402964765399614637523718285970896689933025459510993555192143211172589576273031988357722412799936121006892923051581618289543671659450193551119345049621108607568540629089295899023829205059652398200148036080241858396685413475503781642734274726449085289294996684362617256646590539361084552485283716466131893726235685158237368598761030783293994089537962366812101268365615577078478945234806626991680501727330150748701716423889584795121931177126102372039861326876377092378104809438094315400922148371377591143784087912897983479932733565017065217021861809042440704899407100648053513023623667633757935308800552787535627842460522137135985952472372753941792415860216782728399560182370104368670894287661739923454622206138852671195530048108002856843369240163950996960261279784489113149904935494503049764032920516707111669839594187464670693486714963654856270266290458372565009336030939840551682443986669328214935661142303515110357052021944008386187265622219303728937590882941875904625239016031807867210832958453513214704054936956875308021525672532721605508462586496115004482465492471584940359713930406655437007637457045925179601423785329493450531481998588770352112756341178765761150843416059851288535012170525722262415564140007546982033532476158126714476895479396898616309858053816517998931746958172370957672181950289962026434344431287089946740176664567924203129862655777966808044371921132436165717984005590955229561805007938532197712869001339562105256168317775086007392273544437990198604993948564413017439898620383232331454048914419215124051762661984764408674790923891883174653098150755027817124005161499476693585486057919971500670947955390452559592136988252777343885535373458814461521110189057240620384178731316700044361432625143646722942774656221367488647424770679610230313387561029304108797822190054485057664017813197693619660655855540881245724465519041576481393514046860246717670574952681903090046059007328561011965691513618627814452639816098037204346839219524215024427018888365343860120232940379071505314802388471109319303082821942194636447362717381957991701612383965482506644748490418301199181439694225522342063801796984033225271698429614029619866497049072168123244274511971106947949916444193882310026803765041479065427182323140797079515779743312526827387106085581251889158862574703806162596472193007342704041958155691763693703318400023682280409568594224542944464283570331459154728255791631110981396211861976103717966104357534820960884828244024401454738153881722010747145994851134157671767610144082806636487773226203545714819887753580054568819391733241651360895084954359288074316182595685551096646739627300935447937980369818111832678330931662743970681729360852251055878829776002971816766292400620646734810386886456600092855875176086370617958939627498707181886027153277178687110052491257089515726035125713470162856355399374802880684057637384281856610532392455788607048140355568269079299259690931696852991927588627581895277590800230553366820115916861698972432904391041852382513866741572749014508117627537447835875235317989040308236314247199763105241532886637266952697277740751777729287793414780024889447656216145307329883523473306088217318469679337200427691003957510681420778514095563109404163770882399549187073399272416020778754595606250186582582986165755024476239464676751668133179907506634385186826545621536486169355401031801845689281693103947252458226493412127198378479021350913364748190921948939543831169907543585041574572973951706819487196569954581234228537349060834201665533178816142077585508659347429361277867587602742000523785390915450556317068645901734308815280672383839880134877008699275469578160986322622293744743891597931651066869129963888636948900011850508368895429924341956470957859475315723593283847743928180248195774205666131123513897913750738882023453999077865800086178901921638469681341278075532494136015953786273741255125992713216945547357386659952942597767807345051660216835007091233945099613028302773955509144420490199982446360119134390108250313156535113006326854828453636122814543152144072987395942527812663485654128851128720455908658046242305680628086640611692914313629638952652903464111279722614959349311191304830217463696689300157629111907170709635955255960594569152538826637798180814679042316419824042130744623927965103516266372846658561895100530449977339148561588186057474531868692841889972612559341420975801263557930960209524879967955528579818198920672714591109046140829965734387552749437239810411218852950476996611887178706269161624823497043664728563715538768810615683859736611636402751222111668125683549305541207783210627241777466915521286327796197972770193975447367131856526845066461460116887817126102549482224727135364116750457993724177735534239405840571280927874137088396105737429404660170243894680626291235529596147703849892996817364231011529714377887760027804877995556718342618898231266555867384696205541142282854719709275104343803540764370251089719655815404883580740020407327909919064397446056279663525143313636421884640156291197593581269283267875425939049691679944160428004604525532796624072448545755007241585812138286478086718720650055391788818537639773128099803125565255715429403222171591007833195828619053127972992374389561634167643856898264282668195529176846203775169544106318818770229098178813040841311711305800858455991234758221156615466389826356129270378861265533497953979258882780096100638112772046345690668734652446532199061115375091754962029751857211392906440084885155666320717601405602004603482020266287724291902779811650013282039143030864143470489066743660017350250938691939029257397718380299775833833804461405175180910304642413607221625940148906523759707255402124367904862086644228848778191853278990272037701768778422385565504038590594414238569193793080609328785862274985209925643744656670731788260058035831619752972545512328140756346058371149313686008339556069907520807417622898566243950517368033697646663573884511615644988216687031209642284538817727760525111765348376376570911442782316060085224909861915270227287777695384249358127437123122959446895786208931010076957500432622973761426705047423273052835251728730115438437251792478821509755606631315866019931102477277983714337230420023512361476365090977345217530468149555450211985309847105829343016823936166859043313023699579058170971774493734382095711615465663243167075249914732838328754978784838754998381138166867198616994305456027835956604180403872658670645478185201426795307442819953054590313554723057248005087504151510393615334018753303570665261632146527572691255896071339918308169318899542834070696852269132832157098171125823910025691481961147010173458143786207060243344272387800809879528649775283463600486818539447196272090651788497219373948537348635661308677340283515683484839232145427646386206969174253689582702121494464870240817380309191996898092198510840043041234865370681147708397058147082836654358566322704789683557159367759437442664954362584601671626479842226029408391190846861185475333598138847483452521362408177969422490616705125465220609171016861027759824289312905550212575083770155820015680969411862224063041961441051825823870445785075100598565997705516866853489302168669225378487050096820520910380677377388692871726499641250772305515496859291739339330485777691107863704531048793648310054631877948723783455215764692660697753637836847127526001335514141871568332965717985219459436973125882679267337333565515686576999547790219697475706765183992304880770136279881393905150826205700625491685871546839931160750788386068792213893708684995588320348805254240168263980523382191451940122054043274099358773005875126149158874203250380029799902136612328881555805910070188834036968374958883512126902301102260805554603264211682843771717537546149204174429265755229482323369957138950593524885037672171178253123436244987779743257202965859762514265860997086098236536573713702318612105623214611719187369496276532035842781593740514228379812210310608649353618962230183315621194362721364051165399995398341734892495306084396377896903107118160862127595782170693607051888500002155234987211189147140112923512005420564317479288489715453536950962559741229424242670839797474909829203426260928485201216262072033800121139438461251822251751216418901808137666811948910610465025125983181777708205640645386098149343549931183727520945673861680866388858532043839231289565579247091069970414330413668210504200277697393395555580947380939218653080532868126443202404211196353335320602786245510600012019235311027569900931063030263332645892194174085117581726246655993457008405659902727540420267778595233924395399263719704850449877164162828545164844138598511089193981968781745617383675124295043692026356120139627337419022810165752266039423086158054942421001297744594703225939549283310499087673525146171313943924465413479381441583131339954220642024454018524557276491983925075505631942994688331843925858423936906493446161119511442637828424622594731027774127066566959135451623770601253165524865436190056156507311631556819032228527316987380207340563812918689894851433710102837021171223841819591270662198789529911561452105867251308532314926181295388125533415289867365513476602592506487217265678795319562269369506835725024778932589111078444936241651665242993195889233844323071705995417906459471086433750201325888695335953874186207846011046913345477093236477995832932062292145898150866959614907633035687956547324620767072165757712954358441079516279606229367059573999641124672614373687598318668237324666207206110723176368665007943244159795184061827009329100736265892188593616757355996664833190410731052517915907942857236519447196210594602732838730992500137174509377112579759611413756799593070643706102205000197739698072797007246163218262464929816020448895839254929962471576503950553679380825489590769462603841919858609213111067259163493508465663524643070318352527769401424391741026201115755366135566378425086952044125287260605119893842391708530507056999528172889922974902339861889953375324309540455049141028960102579986841622147559826192345315232139863664413202936480935914966160839327640421076341246044594779609937956609318229207051581158276709815964058737999916448461998548924992344262996971127348458858768149822105813935143968667085924569067356787696695833104364735307493934635035566924067745827941579184951775995251339372371784311753906839367423153227999085886425046117531587853107407859380344217968317519628872728852381637985894585226319131311647556232695220057264437980632988474219165449111387069686506380966090819048639232159404566007629361705688009380516492992645461967144027192338519660406791754530170208938552903650374768412158737579999885521829781889018613933402905099907260162638825867846707669355758648883625631953880659119492225577827223979092093729409758826719440099931233491418908720471723079919267912054604250314729834487819713176153364733414619863617218252104869945406264601949856670895533531362894684617988633893849826177717195899247635756093152565448503132167812032516144801831480760381131628085462302510429232512956146949878259456522405700037361822719610734271215576606965284902792581177158080881696498214098622206341932463690726783638092765702758379847265219340516541711057499257520365998565794460097953157561538924296044023242969054034537697048753815525408825541199357679295811209511013681517149160290179184761951781284624966244823001656076364993275546783775466585121080730414256606870979653580887394801155423226747528794189040923172787032576071302640786795359462324295658984880586372149340463396671337889623789172449419859234943013468738987363865147785900447172280884461663760850585518743144387657699129181335623859162141400977546682949825682896228348886064203883486371721393059853910013221975771605120663899093012004513274636698256018179611783436556511532950466979579453572929657379888619769227970759373003963929039932399723020143552293547906047382295702653251664878840847826610958968920833465817980665980926904057194858829657214447180071747743307418379637155125682859423114274668305596212768159796033463511534645478206135644515328961911524232639199697698837422645250536023891255462725815007208414311941047589811672456134948713015363338190117635482605367952616129890737324909541506942718338949505396229667097542355974105096663170035887349904452170027208053799652195156867498084294713693365735076479151074065680442093101772070294063912949594057929622401836724500699627193419566529719587204480273084287955774767913162595643760887271791032630135182897554612378885632381090421974531536996164493513691069387428713619269473325592889752664329121212225343962248858515612325811863981771363414836695930715397283953786367173924485094479955813883618575995323469501821262412631193473634806845485314829484840500935477334868429155884012276852026719758727481363426895144867555023122828987986001687507012519011042613684852054236431769129815690639942830840045429151579242743721203094597572483680776958955638066064345559498803484470595512594469589846915397695042178602821663703434435469886112999770648709583176711342771815822240064417839666285496094188236262325663904568465719608412755844908141050022983045096508476574988193101503978534420941070251846287928072375070056813318692989654391895686280408386625405945670802263783268128630648445737511440014222284647118387878003905717494149493514849102226631984777539867830918242759316095954610912305414171078898745518228369049635074365036310817858586367841826831724154232864372937714443384750553351462101079372686850586990022096110782018331110527623621880021239740113331056687838103242965480838882967502741302298394797664683308049681227169583642445453874625943518639579789688088120520784015270784081917239259411208984642389721815143396529910750894587930882174592301171484986086379713826150917156880774307380018954162380666669537946270993845696069259385471869104250630572247219610119628972492106504072116854128477827530138177290666949468388245767751783248166268368731599741095259571963913164514707408335842929262845291712493999573109343284540795634833879689035663343536839732948558208864785954169592240678909099905380607529465041019181194493695377634359392831525232677165731468902615181573506136159255696197103154944153979013755726739919402908229085873171151665837526440359826838424687663982305028951261060454788999292739569508504284731377221146653159699042642134607574736945116989221033516442653663459893937266396314920082512421846349547756657009801455029128938541389813319504371385040528692633101872236933704871992525573914152858017682681521333968697941330739533070844811269988286441076280996843693423452101286784634875540138417949508934851322663860823347985297984277630428945559245702150969955717470000717696933891982407663366219217199557131071716341374018680686808429817656196877377000932341084214973344780331448743451487353129039879612093889997084620144381973389844781192491745853765440064486409986376625712019078270083563085109405282230025275139103759605998829844332650431299653878661633013356440341642104253190933491177151576086924433022286036480084050327491063209262656805493403136269998444419225076790355971657411336694135353171112975001167118272238823915862095979260689438517495939770899105524447254557433493688047742745010176249275370561420636488015570471087659488589245448987304702783973521644478035222949246436595910369820888440412581882851483993825104092181354663099004418268890337444269924548278796112418658760790669507800470150237617568731262920325203765734214976580005552524047416244394800547536624180041430550139818199468945367080569106025355474566044673153267043703121888499554359468533757566589587903758497730428738913812848529380880249726140240336165374241697698672066638904580902940660872701275243813893815662225358265697311352113871574960257262152688729582296903338729310218858380890888010423049380188557340613594961343497213220089593861282119472577570530090203720163979800016901080687814129595839865502746071734890100363906015794219025214746034283053842428065196151655202065067770607555192613919417485417602183377916938337379992543976642339915366594544839237881838914290466289145971786312964439877095695001134966860365875198020286357799607878513592061686748682029339337839449610873558449472811815371452107530336314754101023766454601534119819233325101517413927783976384078844636764663874376547915792298888619056304206461442609179652910274114075840865984165629124636056020218043070435120832262969808968075084100881661620615567641825259155284390807010535716661543527205431087239899742410054582123350326545071099979802349120027318810654237220162008147857234156374291314546932615797149755472111316374486378116214363388974360996703722065073379047783187079028814855744140868678540731822062515311220849626354121059251979904578876125175230475195147647158877107217038485207680382172276895081485058532838787707970641391171166529456745969242156675030093572401054761912840366715237466268393938783936295150125772025742235737677170245558287595365907621530497198658194321077199016579888357576009212857721992711412191541864006850225306767787261271919771877295172581736580507758776530824570432005531726597513997567288167636938782658881760721221298037975982521093994121289200296785075254891193039712409936581805741052495055753112145515105661228442034106748610753023149192213904769699776853203740679066114046761792447261691433023481483946355392445450218410325324726956844311162942579462855379585657203829733119733101106191521631550721129473825933205442092759780922828363939796743564744595193980368300171179885424607498318419787872434407112468562194881420202984700894199400203836021586690888941201557641497680873357796322878165818141011176163231238179463394239849279408921750403126458347556946467494767232790952433311431672319451907302086088305515272698527101245819333368035347099482537814544929721826514504737691542742460074533403714596990383158487900866265526144040747815247068575207075621526545729263789396605687122260273553930818262036968349574533482237470065169735879105814796741377433573634871913105098475486601273306291189528324830985308053148325133626824915392484087671347265200151943156387641387170651083724636177974984589344286119270048227798175923622755924812790230291116449122122219472477177634998567774533923953321922182068513615356026567585068810847830626869513959218327459864286691341072672082907404096903039241485044309056879804289543543691971119009664041392437037566593816431524440259340067447050240726314479265355747393339110096427955632332317935158700946307418535693803547982760799449606576553791562698963877944366423401782573980589047006512833181940240792288760095200332439477033973572977543518525282876848090345779806990000188771113478048204847325267891961054380063935131582298789966027996952434527984130199855998259703321868911242373404398570951092816239933599971390949701892864036490753294002332589520088042512277618234802192037266106584996726455489351644684332549903755706251230040614167839440598062546220063871944837545940151337384047494263288564421395541552159374509097552435338961761955060800105808221841894465918083387363197550534838962928547599842784204876301324517544721093889152765089795762559345560912624589931776548248199763972066970196923894898044820796959949472339520785323411867253837536723177741393904409817273315065880062469282844621822848047834263442667492408817344499100293849976563078918740310233298673732533512597815229887282129490253254816482514069386043192229050075113537212548765617409151030215891386270094081565357618629863104928485321331655961300597238661374881483048854881464280786948539995594404457038138289137773796280662189791250096575871751592602329664318605014194140831623035049888218962116941121787203881199800293746198957415044677337462713492971853972740567594016620839263625930892472942957344260585619725186318104861377148423554760465214235726487916535801430061064611783834175069337480454299922354018035779569160415849567016800724874309055176747602881367607546964016746575396335551772223517611525636713071079805961192809974973148177028600199390925838574967712467135927957803632884438474246405087710724805511380459356307598926694179005067337272086051299410104718257270868419052853893888198514772387048562184276048947251845383207096772929266454160080620858425975922132083521456923862440231400270886556376395542084117714249578290663901777879142781920857810382411674339450486684263901941005376744194674888258979242862376326290564343253663393618460294511817851751094908592447217782588774892676189939953996677879885380114805002886525669643041753573733170759028742485292901469581181929316211856890356837602460920409432757962175932231247682259977286603615371162388505731940772058456573027239734289275586169012083573908966273781108640046603124297041052303597638714756332783772440717149572888526640559709151720075523639654660221356178892209191122162886746893326431255844117436116534069662868302377281115831596526526894325255750775540234279695963139733692554226984439451211908659699095324468053729922915086658975596012282715155845245351061053130049965523732317282408795607959970658617363682531352513304670211874046275460658005787869404151886412097352433547409763276268172674361263482753865856798151712387854953351186830955082552015607189946784111211839047054742162026257596843975043354579417585265015528024485684559164243355598269924600194116472706429574201020809062174320441114623974904661079140255519825117439113614181657568092296129983154331330743534528730139809961765460887490298570307673855729432344462901892263503480959443655900506008203173513826193789656553105056286267648270881556298952957170844331174022297611377472963910432205094717545484104153351012582663452016458953131612727501580352840608567297839311097606484385433017249005343809145196053378856376319760786438901878581268265854510722837898169721840805312770948213325202848874208344700437871257908366617747530337860553025244098809770205590319146095865972216649485120187050017702635298096294755610502043439756949277796933466609812173260131866448190588625261624244835178168796850099909144155858631040697642915851917893469672242685865492342463534673140797246088802863581163654639388518977167793084459493055021895275465488926429931961787263432343810680565795660741475085039138895414460397388913914550844026804255042906847284086513072542356116318738757715683888740119532036626786495058206136526081282145690706244262708111316782779592525541475183068966110868825235460018026591547109169972457642809385434858605479931436815705167785683880450436990558489198205793671712248043944870317336552795868404799220326358675498745959010082950336789365815630681296716761798402667680781973629027395239157647847322633605206589979319018405866899225217215906189619240007165989060235145333778492508802003841817697352489148450399173753281628156065677090023204090142888663426802426068030950494727117613057901359168439479262131080202184172250111267514032254479693804399729807972603219955400784126985435542394030468093052376052893907338242090702632869157888547886602935049683940736069907759959915599739883229068906377199170695167463063776063960461571886148848859400510989499308546791548990038263657498706901216555108701960479379706012061705033615704449235849142834681969578316306206870389584162587190081880208786674419197550888309013663270242161333157340189451282528003171596858896473202973694846513742802054455387387606832077738324648653139807176598117987099066839928590643218358690409935336401160881301039515112461025267150886554638584992806104075466639845992138310867771378385219186352914418813489962417877487564999443006425327281414178601848855007681814934560074417291289192508050956734481563812655612645764822865059881239975914555112973062871169027755586196497429344263159416811239487633825863585528563936942981159976659259242751413073861407625060745951686228232458252846875041048092604731771075426869491026371419167164990249348610634308513646612129012666613651935330126451267237528741021871748618591360250956560954611606857584033465014590772857322068072852429489936656882640164861712962782405223022467505319767657911086018863227062755459143775913636172751179065461758487885393114451906378640686346189591096741570495615205806092737428399217798583230366350901420909489121804511321821200922145863837652978651365244184097444336789245166499039767299505749870323262265916758363955024569473669203068640000170705035401066363276131655927511550567851425037177755080600269324767330370409666239798147010483374064351480914273552273341136425289744054251839130462943098501674297183907919622740804249899821350702733513728774012081935958736839642694152995850037056545023468151712690029499706379394963702845749874696030540706856460168850343072042371242985305645109825143757670836641587747451930776007262205766662413130500407492594274818783520460001209253130793774213435764604720660251753371263534292797603166422359413501707295020659013017342749684607562881913845498577648321817327583032050963013354157728172160722310285436082663652936685366049906547780172136280285203979409707326006037575150933128267730278097512715234112182643628888477027711244183358281191147850409959574671139025396937568476762512065001397937101270615642273926426268925383723257274098640023945945763474399061184192844312563260841600920697439210099416885966832016940119493235810713908847203202803846405005529158644398524442425698211095046302902932677098234621500699922932078375209971291250464436841147145285135902740514605540803239392215167424307034370639857733782035306970649528068075588215843944763185870979087675789784070087717966587365789327243418099164492628290564686487800904611156728653763832830282839828304719589212916431254892663495157776379785187617599240360996854390426291625065887356386709603887816959865303400594823308647741351583157178001794678590814994994818775144875257967195910329064188821328287000691268709935500923938035491866172977444655722199162220495131760258768475825298147354306166141277665713650251672184965665822059820568286225298124066232168475805593504479057249744010375697835977051539736054099216079774527578437002912176176652344442212507417953568324936731932642917053788306413855240432789582328029659562262514002222705805044376862334167397231154605927399002161394029950088530737237474190608142284433936291205234929957596089771659089160532352279168496082604713446202615421660532069904127517993079218227308246010421742098682356805241177799846565022531409684716504044967635045264151457716606922242820070122936320538616134789006539277690143135145579390684485806868295861440021850693470791854634595136314791637729636987225582341819021660746824920854763714541532393199666583943074678080312188939391569396140689455963950354725982355842117569241202785940391094849632638281239379997655696646441549818529476649983037638116741912116995890892909009737829093450881046689633075057564685399224270300904705673523437447984385779506330409568635397141342974325198023139779685609566364345259021686337209165340780024874555508323030275477655212958004723227840364217393700991407434822914429897225256419348433160105586711764184385304693418918600260285293546679890084867487894818176400123112172519530521516694027025590956245575680186295561069404044995669925029891152259279599646204776784337468747950198203051869528547132005294504733430606163963862934045593917008358694427624807549559979286855365639542801752218109379357291536947188722134802950703544853171058486194392264609710809810499260822454242606642865310980897698232906607818801212383981305963459255649537541175648494203763353922844736394626113897218348109968728397980902705647856518073439364084593769851396036004951489232638666719944785234286114982488691650034502121643450497186443450937326519187225585711211038296703091077822348182995446930233926330169128453170875268585720435200786226899622135902589232951165198646819872912173066775994309056613439959762199721694738062731918768349672570962892732712670542744655949776613371781510771880384201230356650736427104109709832278470699566018370836295516233213902751392716756809916410413044421831788003136658001757033811336712057065416842030580059817877490585412291462091673830126361373189176962652446434042906759496073406163249825016810219048147344161009235719945700547065309311631937811857695550169244142432389721908152168918323796057643183237460030399098146800674293391762013703176207032943055711693829177662962435886319643126123358340924106249783559989649859573575878465748423975481425401073925510760877641737435206683132595903201288759954870783917991652926291700520831207937250830958082697593180849288135777012892214230171365501991780801262783167499757596061511312601160022770348827049006543833574168941914877519292498320161622936731638050990203862444320243332908709384051819241380044011227815084233776576466878038815255654837790772001010779636921650205909257055599941648516309086661247612915624701383115754166207280020173410639637004232138285893391273563839395886047428423106655650032578063739200963915713294617107547220405782597978681745774801272717711732788303148329345396851072384014713047105260569802735603691555098242784489978692016751496164852351231051700720545785029091909679963103857767922272080232595471381889675664020749399602751054755988413316327311953091049511073493903009107181336409909807627901194703262324483693432468956023485097651489767487434384396620869078756091126252346888923475790760329548038005710084529504206693991157603290212472904453045056112075661444581869172861889181018630713437253755070966162496838615713962865064236203053470457212342128591062991424954643366595332906629414102508006359469436827088918231837616656684793028169299117918901777199512638867277380061493648271819047745623712150118647854337960808087901759914328114159480712899235082130655021107932419918719894533686878158758911083243576908175873611987675195715888416741466784645647008389843431911724171336036628241348035842957096406587132040493478631029810853194660607516281101085715203557091897180810165677053037204839432804878833199649001208275488573089228184378333716214122332028908102490082486108866032475962393541122872826641982206130933026073976109025733532309415234207000902474829656745731745090515698833650216224353288655676976010846822657810260576635404049319671920571864191382456994264811142189656180068618111643970004710559902315430900613704600354514095560891126226651565670647490418178517215130249278683859577949521366066316747225672496084963899173438195433367105949293236912951256815093919189892124370718092004350049357963184358247576293516604800540669217631050803427004666152861214077278913103868573667811247565673625551950562837026737028253525409277362744781844213462394587782194514480148279288176886046039836636113669097707243255401841402135534529933523244288695945332680460524552105482750627484629921650130786427792494155039066833074908617881294447347083773841996760939791002122920068694794424131243147653112476279142280091700324392368639189922483217189324673201911691557936117015821338583745445456782826764901602961505398626364676756741472884120986288540766617288756653560087063392215041241468360859756829272747268148985227321306944738099626046983920506002464751270616778641361498392404402041981060899364819353675314317465483998791837816553572777542696268933709891449160357839072983101489168115684879760529913843467852144688923905078208319704794127259652223075383415000716616479636486285628832301716841132508583597610532223673546813527446686688437215484964597467076703841993696070997238193477702224307470135228710962302042366664828397178290223482945892538417884364141433051315410715133675537079089067211016244842119060184536863132352498952306906229759927119749670713579602662101230420104284706334615304392920686412013800111187691760029100127754222088102947526214901307063005402579341301949680394355614569979341496729104712904737491275531194653198131123293917561660363785812036527096471569221804968215076071401949802533634771613247456926386810087233203069272622632919280747681918848649881110946747393068207871919414136726438343634856273905619642358953811943495381758720779552010520583136205940533977602305598991733731797595361043754271042763372389779386148961287410695954642720976576982496068240174569573639220686256731838789333143531879622419466463228440130089643995778504708138473748512760909417685752627705343828886227258192970724569168961403467216439057307069514028370253727689958185560158053099700354918342199511845928890800872577968784106491221725383560509370921261776384862659475878657080875419681894167274498532278075853876236269097893550291481140463264086045697118773760142396235432125752166012230177457370510826028371762483201827261185143130699957792656612259480882718169900097424696485663370194301817591622007919123165354279379821482237796296573132995997304075187435124101984501445453055947861728449908944524860534111835869142672413053136747728569456472049491009293020247900112320387357887666252383346626172950185819226300692818190077533686445668906630070696605132343353818929267750675866384115285868330122378756550866210866195582449769181051546448312035946034302429340757790810560968762020715536348230440393030259312640748491251322886142848477273192863588480699673696693809689854243014080496706608426606302935422470693528338276598397773925669797768661664393191253194411688738149800568085361446271888769759632298772942526838338052682411185472736512157719230310838711185858101579609582109565550663960750723656359291014668994533030970251710008138231785326809345521454837883046345721900556085549250142669683122883901036856038132295487776654182481172932464087709742135007716372464812117473029169532819793293991055313109586526242125509669803677454556594514396765082064643052841422999775628796384583855558659548051130392438226358203692475512130646815440873929683389735203043775197618187602930307461069593488260821367129832066016112002407310446813499651150896051775097279722084004414168421974433789621939559093747772824540245462862250095003314723330996068590301921750851399677563683379241297722742074341724063375233270945882964755404979356152857909789041104293704383743983000398249313194595667997470766888857255466098023331410629404343838483628547387405913090748074022621061643334828776137889998231908609099279113358509904549429076637935116744136303080367817907485737932969137255175762591643965083462894620508923632929455009304015201441576341054554817074325554306799284137519348621745668191630671128995962911035005932815912787627107541773096077404811301033650118855502936253653964625279906477688824598407648791356340630259944744043929166373202538516900231021273150986034845322856620446329813112978968339269103691290042071233925279681810412298942557520112487768451567825812583631954931707998729666603373061350974619412614992914468614444674083819140134299484023146243954370647082076876952347007413314816814312696306259417954439032585100532206531881320156858325864769792258654270629933383822121688504828030497609010917599184739836156537127839278507791300151346660613313453612517960385647905524655998037027286953293608351183623796154636581929565082599642733027051823839321872516106582718253839168972005373731396003985013448963448984462172161181126980091936497440665731370084804607770483674923453435977011667665299254165397332681762794629642770638878858146421032098531987926528546192363373851292128480383005098631940253732828031938116763036137204374095172506082087100673411159046652366996109601551732488077760841533481080577970776773881587900563244538089467758471893589838085736223132429550689428911566503009501274568994813563273618452922912541505471501804780047694515548638498441436707063809660129006002156086635327429379999536962175987106348595438942443298129591485345955945961772489729982400448975838355534694323012917759580408208251327872733979873984168465621027964652560582470212585416591715903374085363520540421718235662781495110839273587051185114561475267293263898238185245892290901036224500875257457962649790984228504128883556230191543300997269403541175224901245071613459887935204927093375976190661873264156992720322029243034289717321938010294158873508724110984444350649770355346493711977531996803097397984463897152208926978941967500922089651530796042511297257819632313694794341960837991404159606463256104767572170807039991966358341490438447969322553914806430742947121194900905338702326095686490208343317177578556436356110476330555216579055765027605847961739456677320765093043874143369329429122687454795343584239412373420242728691778028058051844191364019184682496382385694550710981670263073665984510737883049211997850996230540289455318402988924001957386172635910876475140951551824261549015044499149569592214484280237115528355746948928635879321386588587305671589026787384401349299998548418492170874993653388975830729409216235891348741998868763091667176988936675574869511877361450651448160910005357249159671085231990056751690846268665203319510311470774386472001639072610058816701113058079955943510130013685067286746807160678636652006914108604316980391407252989485790801717845999796708362482835742629763749173319914078550779321968609209058353449288243338766828622539413137262626382582902661346555268957040944494899119336908544958853502073842391222234040586090185727752080389762637874285089110247416426755192929681446623955505881529358423659934111768746213297192899688614911999366395417522108085433229093696792590633545470344195261488917224483810320136101577882563176131042296831368208178380830018423564364917136844245231797321200400390554057670412559104143175154911120634426587782960927893705533889900107041645934519141554176682284009187016595929260790079886459789224947450137618785758044739162111731476893610619764249380560528387695617390134032456524891295652423830021958160383737937124404956622073994216807987924246419017786353886711919639737731775191034585259253655265746535926758402025906192510490634828781727593298442475852278575487234271667078052809014200398540303703792119039363617653894772278660583890974268493817783372076152576794542324799916773581268548437426129720375186549963263494803252285300920602396563436993634268602065728804848879327233449076409663741676274954555731458301442543656853320191388855365592868888527491011567739648607432814431302799614996686871408650999771327699651750323772895897600649817255646057081348280862607716970440775235272490339814304669158841672601909066448537250585410023188752806523431050962172595533038647483875947751963622892609074501840727273620198160916706685893240860379272111978481909104093822732200564870203505524808371907564777498942083177614349195855141384232974722054767542861473541569771129970220741969112863975355474269008339492735856461527605449547158166159387781183303561563282034539193231302503197618668579740871853901863730968099640186611652077340931816325659675078177415739078961727174423074671892690864610682057367699437395914341155867189624287187752372288196269134902147500715010577583805550033569777462794772157612833371752629918197816576240906228788333322586273622043090331884461556470758766889721428591181822237187942480097239610596407864628784995931286723188925050598665969883569199146130764433244049600067035125374964996835402417863388724092283799624615632913907282188351484160902995287411553544481770428886954928022573202539786738214600935981435866589449290419713509164839681215790359704853838366734365326654939050186237966942122677999436596496540000167667470536575231973752848482067112014245093432482209393126036907682700711724134439966858268547370031351842959276171137208419008664600622610609857845611646807850561687764144188057036539934431457662469081493577810423307037753742460207713918014567078295114289930383845877953647941263259815963971086114760019169359125749672283273720691881611835199565825450324568167641062155387338535718610904784487228297214067867644655852090971582267491370607697402879697569254181736358809574675635833110444534224539574720329143016188384663618585233814724911885196270920680693308017478959703697757317381188126352971970094596470974295067426337736856364521527620667831195528129502650538672953230917407811845025590331191269813163227402234317862073479739327778065336875031402812326366040090981474980327340553156378352110073660837008689041114484786985049564702305031749542887075955968751152980730139742947499067260923997750382592179524166866273610495087453688048378120051376547919921191193774082259733755364849973330604067485144964583464169505053892148937591458883630701141140735876779663541738689375254362815308287410864815795797039957280967684419856235956601788887172288290913858688408976133435848128809402220110136935148436284196654279617077607942744586042656393971786175769285494476188845210242891649230762425028746787540810321529789724149430965920862206566319117751543716090703203623154263883341508541650633327408107420739527726475202163986539223810045363537077036916286597983896164603347457254664459232983604209626274770259486254734236546167631862299808936064248192694169168635908081231699258151733279438319483174503670653253375962566617676668670050715186660810733406041763602420257516647475775737085212298001761290347468503156504297502252835284225670880977531518468055558312695419967549535089151854075641610006675722156023087998246959208876254055116912579410152427472392989476619290219278007717412870582560763664825278302489738808139325692306528229207805604376963439697580055235667344447371477832959802123127389382560086375422100384174238446373512209066272198475899149317340177103756213372549057290542704645964864424125086790541802794698869133516129550201700292952285594430428677740037780893921604504976306648330909382417609446089171205907749273477660716196896011129885429722768850494136889613247526526587692724211579431686216360975944895219341700325431755778130868065501613374553556728533585901468948770759395195229335277862524991423717134191482503436597083129462637267550597285455353306099394174155814125205815507146658070570584287967135679078142395360272087727937594304655589472844478729588928725739555172997189639688462829109340469573078959997468064957866149758320585000239022659629064347446520866091763678854618832754877699709312325355711638394741723104446845882441455138845918356510976990595457773239849232905712883862094396236917521922452573474900989748592349499074671787478107925197892112637751761493260567988063109624363608591440442072541703493972869728475255389141305865669925313884328048923123754228761663634480794029021707865862864024613423656350052697495277824794038164984078761273508665523704326608281365681039439269636406838870400659753987961187477136349088992847432873385821340373448941379296242463349455748737970866552469625966640051410429254470864130993009387300860407805630325998836416884948897834178224659190943401398295755528887383847066005549662189766984808139766352221480758081592845298200797758822025038006220008378236178658258020366573046397822576933056267792075696687728254522042545622869988111759305906790078292089576238423657492976445307972221197360758707977627847468030767381189827449638154498850672527144029070224603691878374316332986762502612047504183770415541259743912455684241893980385005137968889839228110696949430639848607186224842796521051431745558620672415657377736178194298491434871108079436076916490872186635853457471505959179009867110899559607960408383470685529235071008126198674333955639608242159279571765512561077139488136875129508187922181247996116955872502151212849293154332856871519782469244983154419417436690500237634740760955661075106069136909338745322815292392464093436362932333760257816291767254864917169174390956663366698153390493371215918026001455873219833480593686482052903306357445516197279858831162614434512050544767561906147721574248429950079412644518914489283988054379063335247254253675443373884973452764849044296328307318643463272448499691895002323399236052282510117208548765378439244993192466843358655857752106473295616637496029371562985699689841179684876708777183655438660648221516315772809512978375849514671041232322837801075844797208485716603965898220149770439008556663024684885219932730114717137463463232981250050566681612858579552407337373073198749749562895276848563687607831843546505213554457216543770725793162123429899300281333957987267703765793905270233626806966100553931902733179546426593998060690217244320109521954876294078267551165333774198685818842284277874240687333627273285543020666881854745233300546941094927715332448102276013387532156674945886662334702913542528239733968108458793768973788115918016608782013167900116460762685695886956277914417874801635037256438820781584609960683801200248582878639412136145982821894940636799375459427004835299598589524275398688235527776194075715819760387442082148625817758123085796551697443969297114679032131720742153750463784789804165846650082755535870875888181942140160625320791233070216515354273045139701130402145198235876895453828185505217938285162987687743821893721214837224891736604376638131407084481206852374740502032321777527140117465125471660423732068827056905473858584249397234831406807786805968280954322423039459048969194128234837611340389545050309571631384167669567267812623779327309377412293715821853023605285175334639578531188751905195577327378222217933822525425403698422929463670983643710930832496639030687123032204208562747659696931672338110127436610047737454927787241712810816094949599665898914391996487975515876573282527236895592974765837801259238603629709352717421773401087683948707929629258733526386690864094637123997033401944076534719703160244306244668136994393652045541530594686349954186646155701090372486392696305986702880494322138975740205734092980696082921536219900609884871804624981340204467458605716717157097815498412219092814944248352418489850604896708596625082727471945812421605493747879364920073277908313213836953237024029837286966039879343972780692785497469124744167437878952482199593833379614632640262868594732649547407615082689623734030061607670152838376975015790483055110154619683026110931862765433462437795436582532156336116458789461809909679067779595999274515076162928656493796359883603244286519110020761639672379869314611561749953679417162711084991483314735405908610939692575791742831965070520425230401663423502385397494091207882876142500510709206347126512149632546493080822047690819486963324887965605425259940504388352345518415428261254736941232093142880809011665503906239108659335271476918620532165520270768922414451529946929717815268382836056541000509468352388917570982069355660454601439721928912569551291089618160963704987751430080999834970806441049136735492767483134932132066396137532138633593307795082062565667558478705722683033981968426052289186746395043298845142679019329400676127687946197667670527699730627005781576316804464848211758289339429905815284252339390087051955084928684273228831871566015227489351350809681938209958480691319089609145323410098702754197647029595563552678048990594580742423656080130056877436362747991148496862597319205814471900895053233133704132426617430932582476780034591325067550963899483252353771865952937324060417221197123086897553292026505774595249998387913267886447678811083879512475759844819965057663271542396324187006311108474445192643352656637559994139933281959834514890303071708433957184010557771979628097286937460114773824610997945443393952324543361985105961866088314137039227211427022794637646873219665293314945343820666448110622813899130477707508439429026728771376350580050501181969062832012204034043535101244105204174736930109944337685650542884814007875601406302820021171102848955438512705941773100393601298785185091765035217293436451614422165263894871669859871576201976049480599027524614824043424745719738110852102903508227267709656750172005082267216726052773677132669905418626710248700763408903303194147435661178285780408628940198922682067803859132462006754545526043344446617624781286044054666456443002265581160678930755137692912711285095538237400131161088318655699178353346421156445860046844115428946815095322526091019021413691601057497776903956120801994000698507640639114850871804303239325515813366114524327925679497418816737083390038453358953102520868907598529462211302309872068385779254078734258252899939405952033071398949491158812125430202852676749995677665185900786972852669686975272679753252056826276941816055633517940072550861807717649898502512164250429283939928747863839167610369636665556747738137145412534678241751474389167692589706519641271538306767901300849689009264781142521464374311620982926429282430703731173562294785008188181828573130553836986124909912244895387290303530205556757886028476386694954943595867614195587510392144472769931359503662230397676592556193163632989516351706110123889048329572815291210314163749833781381702926692622799978507957318331108211817078356853838021905661508879197742621697649162415040287420986316359950205215410550105968784212431962452040767169535477678650092671999008253000536880822933745209644732600820826009771642348060144642415604224820307886836235117195002414668386942741220076609459914413610637196092426498997724724445773469263291050288374431240384183889431653844481376740575650730994789212333665858856892307668177775783286484467489121921423873471470600222854235201111396888652200607743000571355124916105713436477200359044573048006885514345388198525204837728956271722547795437020319447221098451513251470142960749466191835537941330807267197151018314963563319594208874173255901768194582862164028921927606260174874322103853965237228912221453283786306629353730959526113258562351297770621977564771580390215809215966721810603278878661324589262852058701548999611100529174890217405046977910434166848858996912863885243912849654108994412198470179815039187121967966437957629868236918438318682456482094532826602263519418496626483104963312397927371958721861189057967515056816157810141677268771800074768964313842856709783231299495359955926187850669444621487759232962008743228950990123730542312033454884755789567146302987906421076797438005788497703966435316832022061815504231143323106151310464566104375998007153636825757561902408360772410351679313544367426987409263731598620450797392731000248903468083097067055927160159347438658639010526182300571658312712165338595771409411915436087695248112517159092170591733248020045269943853576628175965360236077160174791464137086562328523306421192480923306655194807141263193699425605948502247375033196849838445003305933630024570685715347111825363497596702441717208205560770705270533340553761787502307539577414522618252590671187157634341391094977756547370135898103534126513240750031826436795730696633277592804578968138326687887799408532334264750020535699946896695496244538815857192624360790805944230217019288740641888033287768949413343989932713668587088049507328399064467354811710970243083832779498189019929278947606919436806787723024669975436332877612321480438121853578634543979489313980509958258110936889872521038912336839622066378379565121419443553968843348063672454705503865978361271875176016812910207947324455688558969255870242415036565025214557831204754507924272641141726345180616626128504999934827117567899862335578052138255355535727367729251786421799367003550034564948361625557656829552557064300270981324690626872206357953519049893606128910534438624692467343022817340759342532669452246560981426454018391642137709067264069624830286062496265866579559497988145921905719137513970584654982916979874543269159656971967014945177285315111259618416344869989486821811089139653839316123635912630991405002121015049908260267034813489723520894441489913178864382339487032942505459563239921553095346387386997003318658589930452509280798678470289684042819714768951383646601195047333726750582281361176187284995733648770087687075919379228434915200827881665454759811611291249045333909202520477554386220250635767994620525416927861170092209503158883625077577952137560889498445131264368612485586718412273205030808863907224155774446890425350311161522124700024209946083747238087772456418264215720168566188472677640431349465010518402688531559183589122318345355018593733051319698686348901907672097832679969002953540815480864562639087025383785595459323357347673390692147905490230938613520765879593714490237548066483128325311008413216176362186163101102568626660714481820912674634300183802230563275408069191239225784754910118367114540123246151557353472878304388838299137290692957070260523408299698986401026010818977891654389045191586464640729493085843693491581534684583303286255093883211874446875379548332440031989203461521340819708714564118360433555106229144887335744334350262906507532997365329786405358123340224982266551397044103166446585494163905917558909948335734629107295897940216622901492414824005904967615448684799889530398183705484280949994758417761112544307798862040696730010661096980156948375824502521018326683632870173296711259376260422344609346004257038127187475667183103920229625437077149923870161659737274756680448000585698761795172155381884980622417994527702051218046328558380024534097488324756445640163576254838991351380648184196025667357468943878346621277459032009868182558654125198162226149757345529344861660090797310939605963192108028196300375629156031246762722461340162315692681251647398629077222506754370447411953457011116938725982784344285075096118882664840776038859506146180741227685861568522138255989612223034277159556734993972553161744677182107193326358641639639056141452414480450073748315145791724805439223062704456651143635000174275363786125218667331905859896354377393427217753585167832454376234639451925572419988651756534474338898660814181288864465576603906490858195648302964898775406561024949509459768449724143389455048319217325656800635739227568960926361375628197137488345765087109169516214991153362027920292672827507824171581124928029008778680728478296444129279703087411204688990760647547064873854022859955609121692621589825669807907406696611545151521916568316865953525070547312888642263119358480566378337615864867957519853361372522976400871142390850617098316739727615626931762368787926113276220085997820569267013699156857814871124305920735481823063061218770078724055236954448053502843604856814462656315722246842009804074718247245913767345417580542138957520002783562096163092774489628139614631800736359347591585380376652227177579971254823353869299708398654752795865547025343425068028447617209782875236107962879221020322118212726018190404222648006273471894514272239658164135162859308901321258683358347103984650250105026904032314539402584880825284764282395976861423633193305482479155781856710847622149452231158510869295215616678508364929757891022299227673083938093282671712843133506879938686157633468367542041977797556505674999082997935349477833181588230478633442234373648034117277918765371422805005354708695301890603032077725418414114842421775587870132607716453873684500598553961770860071089966266516903320417012672025962639328810994971347582223600701006252937318700574097482324979261466377637443313269402709068517194100924930169372338385519259848255761030167459865712321567825269623115116534423141147697588333786001175177454311233183623053603058092042048596145307761451745123381698084182626014079989951028187025122372413373112048282107350833224834675182543438990181832259925697821206992873893789726811924589738121072579488354203562385310977810909724484423771935429561637863683137204045797639161568395428939103241415919886171567294367469330809201647520538336301547484484215449072702703347368898560649349269453095299637417721499651745995003368289551386502702299003006543514311121108593967656917190225658502638245929562880353895477031274940423785387600030435508304868167928939900835236970636158487547744267717528191535870309889680105725113385913794135390497546682279488991500845155332632401681552119491726348957622638166582907788742193812140518502736021344577223910295573356385051647128900089403561976135720112234850702589366732808698355114227823702987024381681611879119026047062701661201649953823577913844058700527548710314033493262419141485362726192003903521797781098929897305681830842554435415057360168173272525164197199875868598177336021400897116541855352334518717450239015539457547632536410152990064270579897170303325787869960061348695095752060031971823490674558239826795640325368576575416795087415576893866930117919906910208852760105091560777174498146916847835770065250860769359264387104469632725198392488358952699238052686307216931242050927547223521992109438033660817222866456854578917911354777677228995806658017653956831747478477811077125508575960271422357397215418800243186782339827241356669285404023604618425290303694052550800215387192839837019741818741469205646377083487020182549202631652454682669326668944905911933324084587289914934766042853858498257537400510749962760321223568676683805362407097691500712117563407559722750622080628876487127675372239668182112336009477344800047682130263496248117930383166861810620896617016580437080646081485809724542559709859091751454499208556439162844839081590895860125139496635927858057299240469658332839807667268072319841832971019773874658713320163292938198095987685594936054204304809869294268816549627464976601760020658653926461237133733597667171703776911820008262342514038077769216496726043777998317811821994492666562387518408696206751370917994621955285271646686591132221295654637529913863119029692849173454860183549040151389798976397190823602081307515928447491601883777078022144177164943222594525618868900220303078605435780094737700394629370045938691207987909004033949940344322120308651173530520644863238972197784682051621666296797426278488993362706977645830049343651701211349091592742072534445607555495692827747494998811927993894392821770952314803985137300491613916578948896260679801361603354827801407847301023548790987467837861482054169377902930964446458605419876639197381494460594232604187823251442976370180412915385922478556217105495405843724479261487773396976722367690873453290219685104058207559878084071815827342019904631393564269948703616218637678548152027436711078094352934431529348545876573816104148826787813476723205168708925065519923593300254894480499904032643969005181813507741214934514561926473208575956046408715250380542152327550075670341256248937174136246265037190363471095114377698273236255662039288542664249564122963804873815544168346691735311573992433550418378853775656700503957305784961777820323708770810090166035991706630343055428590253268394632737166280920814286468469375735513883392748677259389510453611748503788002623221925214889371395661330867303650632618235564765285810053792445240541243234310658282168139588380118477458246731097534755440315068543895264553325672332869639418719752919738628601604163139819432084292912680411886209851813211086416946045977004442873792692850130678192233405431513998854353076935855942978388915252697067140435160566111337079851363309187334521277077402508428318348704008019575072092438369284040408421879379151745795592773411507182519675756105960015148115361046282271560552021608075099938519113359069473582339330834844256054610508039891511554836188805354679125910607741116100157235050014711571394332271670066821084870962794681709272978899811562730301923647869699482734876756191498611663016986337006064529726812140182807459018573885502419097909284206010812624708095788033667717143148348802399577958045765985298522931777695119081814958069802436117481914747743393430547687636099540602508326876436486605526484588747874023696507066174300918117460214924411373371948105943522064547469323839390747331288853616165425311569958444093359908767610484591022881965663238718727085020046396349944988612018718617017018263369317351368713866653755787708540138984424940334629443998406945705811363451615722332320055796293359713905986705976665037160504366930268852088261956780245346241643091422043519839491883435417954264432557632996686882250533908616706378029514998419980677698359704960138681568607521295413520189408252546930226104448367627990295058765335768206645917104511870232420773738979576748232197768712122890881902699422138752244941096522315889402530322378179398003448610617450304097399583311487908903753412675701984216788393955172902985689215898407042241040486529899720345572825771747932960436266059481935668521664636806515459776392653731629556240257250853477733107013101973257579803010739644685128843741953121437199647724645576605543178306651524610927080537379960098559633982973234527727576477166051159144215813825262460811820467170673444713690244974307235357272452036697126221998809849423520431926712040419180574761664800345515956961259453241046272415571189834824543044566761260327603081475745514319255098248167919124270879300571672152653720813824773932066094527362680118216681858712195809994171871290834720262792633345147339196066351876704022291095367089323478158202569051577826012550803565153559779299780819102963126341359270372625825914053469350184849135616821438480196693320974069726712983085096363062862000166802902380486005862688537815552204341253956032981238074210293004717333790361284213829165287176662329564941907280999310077214823563122633134101862500617333744251875328011699050244674515116186528070496076682552679556679529804277530076048520741582400516272667450705309633073530032587014974679344825770351362188343405507266931263539557649365843999309207351686401852364919562605363353202787105410475644075510524177062044112733615118855156696417404659129966789614054662278641247908161561155915716089768344780421907483934570512096879352007735959476996592609092057368032771477013547245063932121915675738596927084477865582173214002027810304110439728248570321006989515104868140886589091478269636037375203385522039436012653354920674505592726875337551723890228083546988972871916785584670777475327675435381354817934731273818119984743251541695523140315470733149330460878668458758086013698752690221628650236642867596207572433272099630111852968245403079159517853970524836684824519613605416898854864793247570258937202130629194654398476922363057387607214201678077327768737237836429283884199431958608436591355635525110364996467796634605890989577917837151972563778506432913904770964733107842376355519166033208904346026142134368283639204866763264522124213721448145865088647494471457371765666703107328004498614443193061976185319170840375846668688444887987497330073102651040355783716438849855525354928703741919642836411888747710105920469604190905511541859612813223935182797128192889437058664194935962774432575756202242421334389694302187248602635405305982457132288664652017626783160541828830158582205761284996672123425757627117084396208066310164333067196066034600349711226060377580523702988181725175324258290900686202093519919871816015048425427569398957169746507148723756632905098839051255224949010155601104324881409676843679780841550252920617612861301968948805535893546900814908298654240038486825729668551172731738154423697749499272869737544694523470468173242984662783357371331407881368501631591222781464909250514389001084069800652944925461521195123400116439095946725773870935765182452407295329935903994479714767265552076534356598085393012352691687438083859388476441869311601145284732123876274705235491462980926107425497900254317324400743817976264551363270077969692480081136529799313136347188550833553152237380843868048160437482665941039098759119020773444041921136054693682867252729339104719141333548847466315367915525207321413987754175579409173264282716343764814713367728973892610248771052723978978137185733344946670609621846535411308154024062667278767198003381410400602266223280201715332416477512061041253689847882456596691835773845909316701724366313013940477460888304613912666085300948812498945483732799526008193508034266718393050410770798075921611374458273180919701651266500796214473605603797496899874482446371600207213108118921758514690688458479907376275594253566060687380468879264397961187083390841489562198360888389256730645793036525082502459929383057672134794354933539497006588301760786822926635580354740673283319374824869364387478728280041765061116976199549818197489006840221738481718551143688056345311876195547433989174230070541735833546689427433400614501222117818338044137939535702705730208580568347817079129525423575180407381066139537634023821138226617507465901612907478118750883747155446538432745014082301114787612579212627318492572724484959257165683280873148397750077535447011082891645375973220854572242741014968683099508939749898920485914333248051825036785779714568507898248330546485387170061114469778723205179476334804624126969962737785866460110145899555587402788865889182098058141529461888545619717636941978719091808352850946165577682535573379987966021727239691569181896187198891765691917877390556440624570373751362260656857042930116120819702483719514329817374828158142565396387164398334415036142195648061233178176598044514651426068285667817881268782071787176689781891743229627497857148702690234724731654466085993897005214284166527839533979636843940339963198727870304446215845601769747238157073691929681288296222898806210419988771129776519027446604636221596347519307458497755793120742964730839567222168449067361402037644108319626664222733010815583347483538828926667407217498207097638844680950352327587068276454421980181253475912828601212276372908842656829910068562413673306891631621322440995664803766440569640033117021903262753886129992162697227702768188045657861121458066310757075275177563016177355077768904510142047859760735243069724898996942036196824505729343557348734946054302732007473919373907493693268051682769014281760525617418622158102685119026192062105032494700028040679855938124448749580498142258932671880462674204809085833043357673927779611402235750564049419482224601954956514176691637937052232324388384193790448223022811307174999998938903696425555137683628880174828246993548668123114670818213564656069540899494582227337693741958763492066257439387141894768868280362534182419154214986435264666508350689229830284867162101624535723311536835266154619233067303485707219686493759746024112409552915133948193640817785352839172773002883752914096275336194664268131941854126757689919411579172829720053227624813011627967255015565677533772591465371498591252274994996155388859504451297625320720908355668575122507581874194814278192227143496715857401360289408729458781163470585178541413143443437004378001196214173922804602758157887543844810943245467010146896009296185490461068154759150805841499041624493827318690971066147470568884071818241857744423061748480588932606618426887750760817549759821002120095758991848831480751877648614929373752453795803900433129787798088326914996985333979782150722700393010906632548282784588909299406337477823107028559268267514282382778804784361040278803923244854453620967253165507954570188571503331917805112056925047028474741147715549264601179897250189727574177362435951711160321571219221324557067053718133986130861680139958602290785570751585736621652749020641071731904526670707703556152061277525684893034764535815332347095565662531693336848300480764136451078513831745781336435168585615128466066858384918446516172773978489777052705875782381216154630376015842211156224926038133806528625167102536714560535514193853938170332786486821957792420059453934377433787387952426498234988945224277527719357117347716657915635782221094064443627403743036603539954171833648604278249112860100923732678678036400315922539357187583096210921763109350658870131110702256080784774068667766796310415404210155006231160812054779099315684724989796838145615987448401405808325914929878327583377108663373206926367344366672987113907435666545812314037717574728596895875586691055555951057873648249481488003709143098501163104089594253795407828817926685894722009896658876703603619479756500620742128591667399363485576949626956147577586472585332895299886165779088329005289949437816837544697678624103050592928576479726207902636154038517540369698861621646221759490829886665882069881183444331196154643507035688350149922097103461048486358434987449011235850964366191461193004752691288223283073722177172448696789841582712446703593740786516403554246775644320616063957574928886300157811991151258208554517733720727598397644976495849863265130011001509911640754854295263963525455728240509875793803874553731286917564823196205739138602113571381723509434625282606032343544113330946448164151194977886923321046701987042390839456579225825861384632812694132057899689616930583540552886493360096447267711001488526366638149104998708491126939438653171096118343263230620818686575348893742096416061639426524426400263758731744534488280761089970938557208473835350211235097077697883724515342772998545097934428383893162184745877986656153011707421477508486634842757255835116893606530886416706939671723196014200276948744642875865279489440843695557803123683449512341404405984766475950969576750291335275480431355170020662470854048776755556951841333402775966032598229549180636245032533780825873102675201936067142502532096227884087113979147385277201072823532283151582357797245885837451106944399024045444842548423357242328859573190604599806233148194550809234374615428881552037968522854325035642718942011077597294161632759619893425531415564876350862367513190943043599866459055672823159784600474941406763654842563580746624747181425655067420567609484702718158927058770566247018532692085669576987408059095762748300210679258773373074170152467295051975895574976303397403408434140177861472074468633472870736141902069361582432662834362432164528244993509831888209422269276750030072542199139871911670563810834466992936288736253742618055829488461019852426809717456198520727308775221500833162027512758287423995956402477956939638022867652604387996776863366001192852252245622721824250342169289375210925445114988542846103016594881113576478950864668188825941947317978365460701077427348200002287463092871408292393944251264751712649002774489081600422148145177173119564040714317711813693759144323598939866246146809147392684530821400726588714619495033104366274983386925808186864914298182330536923451361992485464390366932300484977311922684243074106510462592203279901379504597305816483530677839730468446116729225667301554010243084764467567235713342490415050558128321279800193563952518737724113356935857975585582883570153390141765717725072103042904407815672745645759807575639105296724811534840518514546531000550753253137867775431718753661472196656486347132978029759630235629586597601527020864524468624988334278683309484539714032120002365393602569545951408317472681047245414407801402036270937453190754963761653684622917574937879944087263205246257097732926891249155944700315588378829100720315493473761400276011287692879425846855873854827582487268989466922772414467293726226670764413452098460161761908452490517140335005618101058489407679566777578293607431565059923967923104767030046337662808832060875354497236599239436830701542464700163840088592847983420664922723227243495720165790714374030552940413581402147682691813967043953924178402083745777733702746177182307978488627842827265976216023632626866748524453077386711282675729304227635608240057733514352381266277418787287706124161065934516085118925973637187785662356989681080330199429451696719807621132545961243382280348385516703775686417688686785685476975757527696867064435859586354562483467903446356111550829627629937272061763455034569108536357482727915670368130668658632317618670171367177389081149104388137426181700838206187323531312703387765254642140393244336784159381233539709482770414074186586821352612115439159502042506688306641781623609469384127304503025803061434842048232045374986079182059113518603946333869629251382766686261926855822175193541194088339320224551729047182458683963523514800796002212332771010447518194899866434569228350119114805414320512506495308510778799250706547171433294097705196655170579051336076206454572242525268109241902877940080238882803966808682540194740702837570023108981554287237591730709322506813759772458621656000759517255304363679679879425850946617248645732499881140390759469450156952181965080675411564898138697376637955974375658995077898021506154506988049966509635690905299837558902610198340063966356177537220374439555978875135092339234799029112994462203712760797531384192416378937072983948647834514031657843304430223471568926906001774745364625654541589383976531218885996107928385382946228056351008415588615337812656095801082723007951896130116308715139102765003665867746459029386225784915506633193442270298191909051463001633981241408749779222457875355321665320753723697204642347630640238505127653928654645824934902004554536833983286993248974108614991061233980466343878895163376301725404296493799285341760020559383980502904552224636181464469299017411421558225304500300789448662516616705990664298697487381372693295870847692416946371642857187128125560803962862700883715988409347264223258095842962609237645695757716515124062799408506206853210286549756202263068281394241062480020121818342737223231471439721695696227372227285759462990422484661381875062493369385560893808435507942887456416034177129189256002244665758433436267957274521685298293470395354376766443217621620190547092109251287457422123188318244767376955213197308686987964280864990809044528233941522287801277381358925317510205397329431850658315015388424701473115857573701308237785499215500443428336264498673458554629383903878018638298492879726299326559488344294446600997363189190182034455469173903877647943988460724907448916607409506962090820712323656862434259317407235696490621034843279452101710306717230962634793891361204184671912156608183014702361181048740220851082941677884814391778667976724493598721549238189664791154369654103383356712650302131606596699572808084394494077666942283093718690317724405868170941582656006240018533553986822543679691075037719803636583644995047747462213957527073898471089028063297629834903299645213601746250861325533984429076741610401374492755045765230394636454977248840606695709348336094408966909128996082540300924305092255892701590939083505814807109781613418314047387737108123160007165383589491781171525441200016110742959425255789071342234479304461441198100360346388752108169840058605375450355570069891945181616195064567081711820923259640067819545085414144111792146858087510901758188187183516540883389519581280884027954543447205293374998586568859504838251751675201747361727327962049768811430677190753304677646561571231924013279067347419601207657997262947008662103126781346647299162767459065171622844708307034530395459980925699290037993516630269416945951091699811955372526121396125437860153596576489277799800971268399603692019534620041960146507365496479447440774681043152246160682491865840859254370362326476729149002681281346942547167849373733184891394785189366826041483574007560326774969371400630545106457024859154713354587817758380214512739578058633683759025884652048722283920747611784409893304065361321978477050468279285544209717992695365854706768500709908270570707009290021370382436527828072047905217914824471836111082437152214789113811432562425836804258050194601435574201661015976652832130814538813354485349526122233436243558131020811793025624988073828325278016012752779746749686329884779994072314808392022553594003444102350342229526319280915121284813148047064823252502150049877476003441137890865233864262266747501825465114680644654353126055580127145565542814024339975741649028860142657238117009053446361476144805715374630249170330322129791534047877775239004532687721945338497817464559884868548016445236707812007710579834361549898387348974465055181517738733216943187053799706463952867742369444818607378409650734448503598950709402654169230911039799276954780228139338346262187254323314799524757109152363660118335456139595496066132278573479833165838117356819575103625494194240056709128899273278652611045706435544422411917269050167857063650591103790159801409758173874131765674681148481666628263123766987881216603930992761961231571781251938366235414999321084150693254829416703137819978522983813900137332653159553857167188942762298406758747119977082360517776206145943222346501536189119555073310552160266291505510778749434106830287159368799917021362073035156138519336196788942077817233205168347035007937115872002786011226477327985041618553421172272361355396784370293959020458238220893954147868250976118784785984466713713734059528999496448265366691677121031611494515566458848258842807889699638257319562331265874643957996960675439270347671108316698848510499782332206225866815261150744804827944036151042937527492097016941162157843280073242244792804455573674195994309035925260932666130210556266904797327808721536448554136272235734125851167556438165049335190713776079350360105540940889240268781497013324282061599114548510786569781744664994062730957356124711742852553332752071708908053098289358516063804715551887932257554521066713674831445823936453569533717106844523220924364188170929066078220778769865013447831794279657763703888222669056147454970015322934748543147611329805250073559899704402716218364338097713893334116871528567941155125772909502542779729953601815779027682706280737976636588897711131323149501210763793954910670209142982811923956743925274573871123706491873911566676363098098684542619864163312238473283270435216300948524120913591575379568972187647159895877137672942040171585017335661061459010294818630850670297073772810957358953153568827083333735557859103132379431181311316140935964857401665628536460379855049523510783846520809598951447041216249388254472868116319343626172968725020462549431167537918152476313906655158812702960114730129880556658788347517481393759648186079544039322982689894060370218932753142566055676964198068791434310886612206376431829209288958622673632109955914594099611016341511871268610225516611133039546760243390725666562604785575275451586638184869919643950199390667205354085295888597725045800450002299664461373108887437228174373998942516839351515152624411155921842482397245650945643515230269112325055445874773324299435967125510852160059866390151657231225430619398381976773768335987665921679036768819327650861054735079205667009226724699975545722072411949170987978732637795673755281359655115414688028225374873971013995121657776554865360878709905462331238700117157185051167050470668202648609263043086491815425418752482980176832800454972224935967549847679500922289178979581270931611311580767893952523274271464876001780715483785684480549968040755923647024097472303396449862862379500522478318283132381143395190032023125025219982485485642897906900443563466500736208981405057587776299676724072586670232261041651628577541847445293747129666087193462064353999560369233021817734376373472328237970967458193415256739436481709789040619296727447858106130635567258651379546077482841684298356400493695236850776151865758487540037463644921175555909740821222852424117622615908799779472952930205982883308939613113137980212136725015617230927223803662833730042756015623721310406521864060327415060745639005285689364360321655806863470126249829570008767785676819514740981688646346714659814272624625812856404154152485001603667072469357489903315484391936555893579001710128494763598249958498619187627472144132697104880603293536226750795832844191485521803871683461804850151138910191128885755920755740799319783127425605605594672362441691430210517859160108908424242848104268142278959254432736213171220088168310863556170981958792202355584389039975372562861117046782181605415191127393586557747300415968925429312760911290719512060251052819775976978415358249158189496202732449005820288448146581769370312117443085028650443740516441415093300983234151895716202177974977771175429392070061082139885746902526516738306924214825263054870702264092599396600956906896977757266483086099212406380837983510178702180821130164891255361415777268237158341852923468650306218167116791388604355746150020106864830108707590804690431874604348671547168409442835824585372324357641487488958764506815648793227788381802872343034928943475796604183416349852934693196914012633306449821536145727006525676946873290762103047562624304220437837793652453495993201700349633583590401819355330799016758038566702658831434473237633980278446117271124039975258319676060402438673470943547296573379092016193503475661353376355194023076795527833151100106854415048398073420016701352000399220085172180238563501163685498293085985549893200205645576709442759587666026411515264106955104827740869096699727098766150557969359416016939337720170406581371406140730526708930500074994490561244066948542968581239132440056914292391609612471727722867970186970910598125555411501902670597146297469965141759500059226590378140070677635899433852744831289512065508417109014452480992299804142098050971736961851818561988757715086165273673217336949437054596174200855480662983404241614022764315750322355047810748143970698359816400116093518890653365566895021466087129960632249717997465249769400579692528677850548857479445381763853724209814533163168636993549494930147807358190867782114306219098691465759493668647808346591455231449918477394436551842618101295180961950239596880856152594859177093433546179495435433930668354861464052071537475085661465314463122153504794927833025365362618950728334175707158263398176405781245697048313713575824034446387556208285010854928144412983040080908098171671264772569277786669730306652827535894074393209031087453731601370530550237916349280254610914514497776491624820302102592434617820223634227154443587758547275920112787783134079256406756360109458953543810871759045696549632206007164410515895375935248577621959346128398844395139499830683029957469717822209846029799952620306889447100031098715929582202457086466234037032255472213614424862857356580166657311809934966975851203513593072902278729472997927925924292379055976452521352733920090201200052107926520632733106054523994034441471827542843077340741514930481356362727648066686732957153922896887790868262802945807273071098138319441000229561894542662301322363106977929069468927167439233892571547939052702302194177606099468712089275331716238805797218211466321969999605982350754131249962552857114930979244567371204178234560032166474819996835712643257696571414108444013806542482841404286709967377322011306418774260723976038283731675647371621745126034671243173877773664368608241184573228339342086070941126022543541638389140508143355654665826467474940165744875678331603248211500192440238561068786556049472252960199015389172828124255715001088111629130953008544130955836541113842114726508101227821774728985302371178146190155054953369544216354027452404502455571941729653395139651003255749584485860954961589382579241899407791785970056736914400882930263353377074594572421547525114291977170274240857142393266364654076926154348005281246994983023644482212397083681963335813771875727506605561845792213956093679977981869303220969683348121062889161693593646536105774280407212947922150302121943111819352642622629206632565725865345802098232828075849793637777736267071042700265546495777947257161692635179572808053981563031351402964961662647033949144520691011524348607010849893109659224705422224538703307688910745599616547725087569616751889731428285533195724627957655871216878275219453918306890553600650489846109305505360895218103631528166665030830728297376683645092411211688217278518382485400649016462113366257268176960331959973076466275259423288743522193020304402794699199466678626366584939563870207593509873345792824228777315751381150596042363213157809655680264217649511712207982773417907925816161349736485478432731808674737351661279353580415918657297711630960068054221981053490165763192065221340759012445977406372561480398106739057611564766771837579316132075605629326335273077191310913283518133297302992573466747097685322056360500438161622500870761417487134883706932170624759034515490258133324038699718610152338002590709411311099586304569213247834658475100920102540710790990375450416373916060716985059515302624528000444834924256388176045863560461449686641030862703871515403790439627185717932227611872692217714047286736442940203323382841880253160166207439117310524854986704992181823356883365977569896964240270173923999904716651234144669923561321493109428424848894216008165670189921853802917098100374040016893510170211411134283369383046108409311859378022605526477534597775072552607485665873318458763340112018827252195950966450879650060276893316778231286292232009409564356868881664457543877160390427852493340217835733067433284117949208484196411596188690191885083409305182318328800467172979828760001510136201918190442610762868289192464318895766327079698311193889696200944622581301339402123535850417737221352049098657590011478860868077732642796530814589965777792833441029793453488537346466387067492806315042538637670523127733657969416635081176040582760210936391887012683858426766267539050717514575971593296764903453805865939796924276725983782469615476668027336687545307261405995575588025186280873358089033542301509679856522011310704106821346052457750408283293548997239404462804519214613365313251604918455482494401095497947458568697891752458475177082402207616299422890427381380488248760341480967738714712617542162986788559645911769270450810898424024314323437868132117419633235979282307797315966428761620420825424799947221824047090020730563745774489458705682508962072535874129908263526813579359313082068838781867842702709320451246857394347380414022064085863927275494971029758499693639825840648093800266477917518972310839339759359179680233002112041810115575421777993398884808712745391384822224885243475158627311472638627061237872431588545599774062794928614160051293599757645155871451030564286502620274072600986203837921808010990251043091459509382177582408427410525222980330480511163994473154923593753704907074803768043397558248457387396451463832375439449437177921663603688503424362706521916034975251878048371264257953685986331348833102053136059603266271133840738336126060890776808443471355427384674995535075883872523357896018197353302793756257970261581068434934255192094478164262418062046750923185470032893592926978494143751249144780995915376203780863442539025777304533205428966070883193834370385777665041358458599585643133896197190317094823437423031274349831422666896804778290626528949447306349581240109938265549755998355988284392134313937730155478918320013977032143263787672852802759168950753093895697731362020042546521859761201294079128173817856988819643107417985415032509259525755476741243859123150587857790058999181631521943971948333449303180076818107206984445941710464608830823135981609344503577979781731794370892492118324108122504820534123896645547783901872701133410191864979021585795905498005215702054204778046584255023697429458178098086143412583192621407400775551770949396358535344054963654761282005087603206857272132830877877539871401462269789011099865164018233305964928438368657835840187480784264928808038325198221903921192945545455013566992423125577704015941681348286273568060014416729268517575881149022603216305285799281047830123154448525516542265942188574584718894480309034802613291750723290983678062743951354651650448453652279323430405146251456919796157745876477995196148322831946996177974141439246881016404394454603230430013799225003430826702975061276924212528490502611096731858795227620516460594586369966375968156502271475868598898640570227953581143834188410476516596658563201499591207951227915553819392074832362849265339095816658512446241833932507732962117699354388894090084270288486000766056436966423268866966519401459359892317111565418879792680238633401025383306522189533497418923835065340628804688235678412539001679492262079467374284622199864067039824250604880325742164016638569462976269795296228677163857677863630759619532872394288393986242905487610398849247012459236255400389369136511720651934800408191481791594614571089807853092319224200633673573016754836601617238877632894597556007186263008645349899787893730406331004437560231457010697428099425923977957856428140888616936147679209602717944419756315997815692961311273237228273028080342492181296785317476188237802054499825225369904566044213032961724310316818777431504262006961438937115860816162446413226587305516104263226296969604625288962410770354437924875891791414793878351589533303849136749292210471697110550569919673993131791262744133508118659557114312178034450640467432340935914208647541090733722464104833972163761665966804759859835347998914304372461244169284307123730947871189922569639743687768414892360346001797969207876457002519505157665954578464109467336418286283282951550918707582495196822980730161332169695638095570441642717727121978092294348641355601543740021051919085787031372512716832736440691077048640153354211463900416939011878072417932368647068309441126448603682480514692448103766915600959704219599557117428939894449884219221812059156967874119321100871691448859523702650408972231498156969764916240719027005958027728785873809244268142586225124650238716898389590671834799418164343793670649351153863763172986464239407230666065185282507202537110684796437278656200988974955697659218746210729767856827128458674100790878670857301046369172329151288716377246362222649185699262441373463644101685562152042127646360332870080917393398433021740044607839914813952191738090522849117809711325231691607214650530773245176053818555283479868939592698771092299681274810373185917040697838213852434180533204409504651192877958299780439819615630833594058011147364839559258487099417118771398030606567094783964266870650958747659775352183764304771697334460834241391440041035943467144111160503044681625088186690792839261995019343247129323141761100000860640617400859041159104652990616266359663256457663368390077809931366188714194475747875220692968103828352291729846179316538107615954240677532846619243824662961077025538694412364448162684099865955952550308840707565804761189965650817851773608993170928424603649030439599941192717913315671070055121190156194219978213151107693122075039851097729053788681066078933360730325680873373285632373295144319954913331856864952725487170767532321435578729331272917655522467837436279593240161881548170454695460411128350058820563548482167060554627443265632016887285500892326151215931864638920052566034753084014534812789030278594986319197705235859565862017751982546077440577753379734628915845730321763368285959901438822064163830402941485790994524591455770649610494545637019603632956968704875383342568546746723724155427590500397522904330838854014602266369310289078163803536122275302833260409573118345122504531980392882951444476217953428378405886408747163755054619137484396963614046045450669531690017628638451139276672258156144689830263108912554410830390572494462434757207702664666543892389631513736685869699572867904951652791934591123151082045543861439590012808854910871717217661460793079753140127042385617418134810940164605649993719874920413992431287020487145016478587719998463942538463098799751704210685195440110620706890631985800241767107708038272738374364380843704297296572883488946801408581913299143335250406619713650669431039177453254200144523620630532725530841141175969906762773706783269294749917340071814455212729311836263008708043051667162547472023524271935234276252869072952656822980604818446220615709585484076525864137602290694566610496445426411016871010893092248682369175886617941164478172443013149993757627353464397612589290469227239751964831085372877963943853820046551196569731995923083562487234293550607723469304756937680294859621256590919353789457783851005448750923903896998108049581217607843141826205018201642272518174103707995884533511068439317645911787161680941795947221391457470525690372244841763642193338295919357251572244100698471712768003465970631606423866576119515612710040375554238944013206051384363889124701259513097715839404667228921471445287530011281523566417312019167030974842614689678276266065486116306486292611928158048811129029154719945911526486866837331913607894816110265759748261093546914750882705548372576160228949036128294575520473757213930826223415531384006042827556055416140189016612765613847518792799859231725050992270390845768756303369449631247195269637597263548967585166715626294452968304187246609659553056656092594001305419918721590476988269293682944411644034462609956047725985971544030889650987364089655679554676356277857804932625405864754953378402242235481263111992180916205649469015275604458173868562187289437628374895179990906434018462982259525222034133163067653985506703897183159556252475407862571141606241680469969200070034005254628958632287547495274566784475214212808840062243910421228017556446180506917207105425535834534341919913027731831855753439706072235625563659817345240659401603853399733476369705526368039070837391196590261110847360518161291950082418808515264871256859995929625261360813088248465606496557890885290674777952870188703133473905621995537768175955081216929597575149360608432021376700292207969836269223210018560345990043717996280317991031556265506333680115274814685171011002271143921506153956385212699768046595047377264993858414713288411213442231926494305514566137247402225615372276639784557435611663351556968732334567350411165029630781456733368626663076264314211041798060142908212549541733178950094779530012675813942033617527102738820176846131324774176156174709905571562535099323443262504820026012474444784849413773183736023103136616299659634735094865563335410290573512573422200555169018971843250731405222810607695457283605384840279276848306821933335694133912828709632387132726763832736428834991960836842969771279135791954714026054998279977885749308866856394175528180335978768989551430811082222905118120376941030557387796937722365699832570156326523469187115646250444721988582905395270219503423542281793863985677134682387441846193589352426476633335171433919085606386280091575739320234604601333376971284533497064999438443380812169460975601961262500702433189291773470772749296973579898110458138898458105868783068639524790960599758720730132000775821222012899759533734302656504432254919187828117930251847214331678186460737282535509025160654003215513402570860968611587460134749451100309887552594256916030689223006890473604331816856820325857183640937634443937769829401883798996902278670834763285396325714647294704498827244043473018151774353875296603313075380163263242731924623520761161691960420528597231821322775606134128410359540639853220054489845625436090567475105438542202241697746655752647557985180640028378372779215643307667146251553539256130762517567495585103963142414491749468671062188930824990423066875879447162977834018783522013315676036325251202098209819556439835450434907113205181750764051639960456229109065194458800411347625435764925735390584989510198174281439168760407411217425593236513668256032093430596304341289860381258778404996776367622907392141173744851137354511496821825291588990230055360209832171730383465682847942699371394976913555216757963522054901089409698127847197853858372457413447879445665308262310001871839546579650903663965525972215440468372980925438586116386596961864741574675121921684929829170009348200957684353603814644426374489274796917920120191446165493672190082501992662030714069569429566448998982664234156299236450860126416111951237179970027662070989825542184070508729713997800734869285042040315723807134264694077182924223338269328302100426582852222953103553983020468364007757871303133526130726418164079030683514859292619809508181334821905781970138364591274572761056726395777414960253424758327401793439348225629593983346791163146324022724642664585978939544664549514831966528370858423756537412690038395181558232095941080575154312277878009811647198114908236439816440851490359862657360005587655802937900900449212231015206262351715605322117690779235505987597616473084516651308172549579309363153924832624274914800171967550401698108381713338331103166658620601207607445429970959816776371401732903953948434181462305823555480568968187474370730067866130028802460981028136176080912455426191534098249239354388458045648747115967907347676772280672599458051144493222654685672354595928698374933444293983650759181411087555365167374179555660578022986159650325574467997390901968900948203235163965395383064772713886323078378379914674335216337386427443043272671416938338046131376478311587518126261199271323442033873138246292752146391684520789614264034053191658312262941164341229881928335370757999289594372375397581447623063598859776386446562426913656786444650860213602190512692635442313447685469785246912606987465961157141426407671901600114543460421545901600606392125593072016858141697949400084625350564090050982335903232185054353097354582882828968390391613673755747520674679062597305993681209619022975489301011958058658554219629748031238168321277804277689096055379487774533534236979664198230595187805287354822065796824120546399961842528631486508337014662675587611353418893955381353728940470845056476304582842981473420580614780545647261195649860076327874235467519080029273868129252606264831577449175405270887472264167662091483534456784331292699207383206881544648687647097294677875263921832437349494919575514637531903043607415631049531961094713933396674820257868041479069688781471879550668243266469543294406044438595856316545708804406822776055100054444180073555203579285836270745911921352403157961114385081791638615464254628181454396715458859111665467328210108662571667961629551872907046777091450476733525421734238644082084179699083593161658673313458517011542032925583432857690120509086891641704062188395429390515057423765282443501650964285723424800606678443787936223783858327593772492190966900371971324796484815776660713108211440483639997221139934670067821887041825127827537269484211833998871647386238732234289560919268906002505937259737748404951318307273480716187958919490447483249102158673793761745002880710401851775641824550843845403317870565516939092694740295717990430587340288678655844514783831163078383111643922197923343019472545392665230693194364271235254953989171578885768816730349317902025009248193956596298482992886852113760461691068997010910847219315903563423055415826734697019815018682448869091663564593306822665680436634887516458139106275805237956591801826776967096900420224702484038379940859561419130333509324193164712855104147648783172197057045430925755311324862130991063633613865845831905306124609389669043095113170452589279469833814687492084744413011991689279121600749823669423623103136924666432610079521656659296504526968304089338900691290845067325757991921415001245497034176284449534612889223950280510894787958548802098214173868977849170019549656285522799413194536737434865266071348976535570401603418980970755699632374631394428478658436019599272571895480079553107928933011406522291256438190181630186495123828524002039820610416765547790648644402433373068543499052249272724349626942790245093007113753889627179846207170109744850441154070211559022720500144018583485155866701481874603757787884827931487367025773092670590458566097497952409518005484843738482121618672508544456232529724677581130799367056611562044556634147674892420639830846236853213078789128752249056601371434261310920467310405195257079328428308784519035656619485174909438429379861600188974264602151576872055830079520274790086008557156815671026256941884090387417066237134681873089044564402463366050370133656809972149069204023088738473938902425918595040301246794039497199120199618373606995360069922152174157972685276367322696857735578327989528811552641620624910405993321299511603947667477585678422930547591871453782845777146147446810021579425911981083942234037335591004709560283329958190624543955147293028374498594229677917379342521846227263700840895206487961228742771614190334349148597579437350365900247989804741972523161970005221654723752244711279723697185080784744393786892851081016896516210846601247148107731814414021640961731280250361755797369994402765954290496012773700250601421237608334977829422172422950025014281523240579584153673757617111749566998583807149213767019489980846708748223869425922850625505345537656472559926251959953182082373673595991380592575897047830940405410651096374075725199871472183359618357617021628186934926166021265298495229639205754656699015497247830538282590689248382267353219137771896839072456070905891305458088809228799752919388499532522946332319937257862601677333525748106883140515520111456671192680025980597085504315526613726585574160916222937686379791243864602842557173127051926095532459826868177635408860050878494402435237363745226609248125236417894059036359358664444955621612678419311313089466822375093373700259998041122614378455386767280677452651031246110889954205585493832475908471415009923139523782954359753670581102720714663592715442302752949462967142920388715858485112745192709914724573828602957035463789744371719735887559763475406658080185991680938519006172042446453522293860749969384443187213037239385785002943615072361313410159706095304925676753236623492774567711561405148553721739118123618331280142601141390000268287146933876409227780020065054681840211799782739980373290386809313227858137898117951185162661992404643576031064723441295325176579745513538198083791720820092718264849776367295977021122916027311419880518290271794135195218446220610181075532398209460218608226574957764794671994734649257965076377804584587428400648225385774863927041071833738566880257402629847691011843292950599869712491591836490494127095365420545669633369145877936454895934355883729158931185935731990929226929770981464242533272529287240303968623346614029030760249301676900043678518034167300992682278424051669056533869752993929835494197369477848531544970621157038511879879791730093188557699767119615248835689771871096883222282833133780506769625660076487369568247693351808111616804409663577289280957467318615019591300285834844315308828868240782537913325200336379591438765892835423121445511091322204419653401297461130721302921435325885706424933187451393148874375915426949131266327280422687580034738592248859880999281682723709813107671776662392904083242770733208190214184438234399679099392823578206086414173045810046290571201761007336018743670770139627496740747500464906005130032553332188658025150900752528387435114353221648982254915815682417264054931684428603419764752405202216718421793058853326503372112439875920081886418801547962746834870584616940628262932132080548705476950041682001371870956318545696524512151531244260543867743373899745475372057654743893337628597228204050408970595772968262143819499438849496685277496053653580961984091699203289894092573704774657522621153651267800420881972666336623114347871999737187576481916755431536282328576782832275615588236682814210020150626552563467202218331498203507514780410125483770554203105615446351192306822796095084802098289264984684913831774166142367520148252544344529119383442340464861550763131942950873427658955237719680202828748544291131888488034416327531565723171398372077418059730118012292122321190400009048746214183650890251206272778284719263680387831115811228696926319137837777635377706314705004737865104675197471606115186886405970040165957433383467644532833440775387037969656419694929206790980060752093677428334502188976074041101154393262845730961060869311788973876032394009843635821284075693681314481568559244103993461566609637611786076380756121219233007601930773864438861856058072143202260612396334245619785715338745030115826067426506622410900145810208186422326041100286326304356988276837767484849467886966653183824689903872170346933012235285014604239421444850987529937724253475675424095680726590618336649843088999889691952546576277727608421083956673992505679430038094882905193132947924267710263709265889787775686818391592428584030865722817755686740281433813711789327435973501203967056677947776178938571088823500761628236540372780935241907146327413466461672895210692656843675640769615795580496388682621263197648507934854583731983701051033492227374693681462151659417540660076135084255913626151858416282589773444474949022174617513001660849135473134746630595829766068857990987233759683666620478632109432978905193859920746088842437477877566386747056057246157706024573301452419815727285929097994082120381500633593767486394840763999647907084961091711492157883370548559784349537610880329717491402074565137540045901540022807347256089725247828635318770817446958856217072791098663231456689342929983502169447166997123986311223923845657585757480698526802681971146907842894541128016745855729597669948814856261469843427181313332114948799696745576968176533679540269934239523939158817762045460054693837339049191870290556627001732980162520228575039246359698785223698346562149298939829184362103555103428236466094575017536597475565901817480893378540998422858372872336575592488529163525674229735462461763352566077644869612012956177676890595700094532036058717256318138412465056251391934437229497301590532014831578000712369076044554198649061544781923481317487204210263477019442317792644898631601435621292367472722472302491247210153089501247452150793457361330115294989758045109912988071439777191948538825298414757664260461008602304573764399442052813235894761358655930999501456064185767946748201498946332860086613711165091712595802109186333884156560629159763924162990728096330484024542126924403007566528715220707770066413796806321862135579052435036006649689388346448936574089931028180346001489661130685480794144477792988967668547477188281288308583725461992138975996318338732987944770659781460915949086284674199298717439071701575577276868527664914502507190729675732328130763122871748152454496921607424253154345261462821834694491736646274669016726518310001096288520491281125407412367967613291855895990195721085858141574516368405920499228548730488618502331945590257083937712990603778831891836642045011553798382245104298985175764666102981111982435204086995811045584740252828973918518142079093784051349068194782307814446685146493663602720113721251724935124658964009743705889272724317723105496597134595015067073308103914029620549999196865907746606615003947130880590165312643539847451342292403099011323013761713128745334228887724255604834826977531411329046350980210470197457789325871644062546332055833163839078179855493899203725589453518226276272727587390099744286112001311100439899374704330400073680007676214748925591926106081101530359075804863016102580636614806259658943427688765828698385793886228161414671765245663717052997808234131697356201418704661307562978206230532981404602488654600213141117483279197739242605867414799530176858389078493425465807552994108089679659196689757787349381533822683047701275583660556216511332670643073799672767630577359583504842390068462596950788927904374991102714507250838277586815718727793382141857447601137440774690605075149155170336273686489409785440463094283389808277689459969922615249549042499837124201939876714853048143964155216045198301482252401752922539841389389513030674849338218249750981114327576202363902790372042115507732906709256019529365683906552626582000410118612346116944830666639867128126937465986750247177760279083009166821029512485493548799552510408672516948137147432511423880815677014734996637328588842171862475455077729067653071045167033104133644833511841180229874829992748259712332235853787480237336941548552931278256105272358273238682043620655417763864358335002525668146293190559062028691440946313535197448255486024496496272242339805925311621759402750279492340285451232888770799253745874188980264298934545617863402175549044354269934322178454119261578190843423800595527674688538350650063869065716039919324635404545287261926730837394652461213327941497112086015038204114816309774409799515407506708214399990037129515140005556090802709450216100781402771082096397115782497224668752866388971050881897008600237172563353979142442053519336324453663539258691425451956297616806982490068822412178999556121568597542284304509293225231789371915610574520762495605406563374376464004010549207927678884366517910181501134860722628723233225250883354316637547560903990213971514657539531265893332332817293398650701562766469374686692317846696671196786094425590746503173025855929402534804765658896799316553929771076895528815886438403144372002180946811526395473893804668725340387280904274335113023571402886339833452692581017322826466192545451457062281868359807584384797720772668757359101813234764075265567685524262397638152322085133245910752756137917586955205572348836549125250886372857615452241059474229889804837018149892861348060434658132811844371711266378156877283404378183936007255200497720354854431308774451381746584368154138408052201207193775534336862483636183372805166730559338817724427046206913240783744425417905705574399880740590081487572034287324166910836513875449124015636320600666987293386334175217316312601837165806390994234806413470511741540139638924100515037870655886588655481619095798442616801395094627327861303794443949648227498754449980493463913449014021239879850267631402802557673483268024955818988369103854744981871657467950226040109668387392784743068001973070058776564999856948745590899807722211497138809937763083453077049495740455628532724884120355318902430190506463543081811852726315375871186292718958878231500612048320080690008907324849099222316977489543161900400826329049784261052013962888463182337383548247826402640716998564904788840867628615948451514823395308893135626336933409930281621343315534218170808981836602508139997616476019560743255919581334569784527821135579573954818148784545643146627057653681486434551183888015352297141821399124057531804291878323433850221629804768676107850786099935213120680793253572212673383456150532028699209106833012164967700235242350800536936718211689709679446457847839750207571307427135798388981273050897039030998500120422643286697247471367217253777104451122925239637472345162056175794100931554428395937786112132300966077832531755987650480718947194431466759389145234140129956656875775752968839672910797035415285169288557993652888015546342842877587534888398465246725483331145862972787494647479042521264138346321831308782369239108388186441710388651866177061205527217015481323534829801574050327986093506389162605158917421702829798059142159852281348419761535541335201644099295992468161392212771201174427323873874951891230690887042921764823503210475049875219200426714314726308351744550340372696158502078443436128749828213402923163502195809113652326236519184816759516657898078526034924621560875316763028290317300209633845012074767783482008373349729440381390764077361244042764388501666720519519476155202005395945613233975416526842366686197983954009670480570208014820340027203319054634386093967430163616413170524439994933230004703146954255532239860730560733962864581400253611701077396692064882084876632988058089422862703654042801035742110692659175290684772459800242021736352429760362159979652386400059998213517176049854566504770519576511061675696534105690823726806588725449503635240361807818072336915746133435391997906667307559355653461496479726112083276526825218628951726567094978354779967144038915580866857571336253677632677847948251319185264253192791403654573973567124939598066403064398767207957745379968450772382822317985710924139213237677189152481340160289097351524859154012912384971228230660568908300961147111965285592959641611747790198220920291474356996752249564563497697638233357292573071706091220589120181917013142789851290589405268578261362584114418499806640419245700705957897421798063077501638093822034625511415232836843911187310686674226371610013847643284925302400469608177754874279976522064864425580585684028163990609048452616135698739186431507194581657511152518960835406556200559501380602598210411021541290067973504297401863863141893089393795849704427240396275106136797827920363921111475407537696956890748473055368997304341599678366081687011455600032142609262594368855214044210723407427497502427353947263402652775064460457689688865101359760440925903548780934747096425382462185705131782786420422260639857619722049639339879000353277713099748197770857829656220680895962750272445051472736560643681384910362448897864953818089098138501649436633568578288356213555051417053258173603773101526211595927537635668168899764299438433211943701735590103596409743937564364950778020253696280828205746863301106307154960712047551611680312256430683955848400090054224456935227268841055202410503509728721696936192836767356101516204776642147058622312135064439282595297523156724106478179042345939251957513941437216152388162994565837426552681500907070639174161760586628502466515665688139691309684706923718675872966021487318987621510149049901039438860696407470950965805093460637610776188975244842451389122269608176387177055921886863931945135748029848789273177408862278602345512292674296097446070474428575385197941910334002119230239190590038613934371936797128451347581270728059093744065166910619032727000980225228579784080647791393572683837346389533135550282042695687598810170888778173847036090054500624030332907119392501580350524212765767603663933722230596248674290870593210822830317000610697816094470561724950723974028307313229886635616455332573346950657758489259484741775523851444979512552994942089154608929160974509629166967292090418359980943661405840297623238523685259677067363045047065030281066976543767285472601722595042380568420892344416848062140652402958638179166763401163020897340216208401428443334763287783052183302692521140935206873308056226637946767046893360937477954095779333990922930317325533842074894905464567829219393744389421590387511627484936337268277886718928635553913812690194696529851387306622133413879963903942502532787494276009570450475279382765097241354366242750922109686918777432515869767912794762863561072281694939757284944618464408470190586050836496330409680993370485679676713819425716153769588906230924798314668708827925371020990762586517398393948237977368183563752657772310047730713621819470516628928621782514329018633215095675034392192560301067727623795124464617952081149354459766485976401667140669727033994896321918591304358919028761207265636279950447545128497786377790467184817854478464392542457337551251957002782837929520717305702173413724346139115901776850807022320933933841492581009483395271186706898448960120773835114690849034659324211338830441294202400716132117621138595145584179007855338424336751516840048603740577194629190454344820887801934500008244575424866589955562021159347172982417081052656660560570489867126840903831607877125485815083018025707716177578239552571726480444493064223941345207863023822315275143642354639882844786123073836665758832566352674513358980792840179854819214157474034129397347611707821353856911120489878167712740950014770411137601185359807181992487519879668418015591996905059247366087339748555051336762639937538364311317501014218557913861565511014653286162332214603485623087575465584264617141266064307461162286290374095469689113620579840734746120820422642293560444511712000263528101073707189599953406178663324100196332287349048730416613379521507560335154019334244239188586487875349662772095125932585798965515184181658363631933646638205878871428880781844014233946140538198914578220101289403822258471637918027115419206221994766660356436533323780242452252725799753988382540633400123585995501101832665546552830654032749205156997089615818307353255545780846450520813915057327362851740337236542503984870178325381825706734880716179024692541919450318346515758735310553687330055161035683174521203064692445925839623264120528489360604436204887721537870505935677322898566070285034641707786345320762899857379639083454382009352115184197100890094065856295139732298179454843811480939223393678535144692701006530111752684406755897858183479236966199621815683714077969509207588476123981211394777218569662170427802419269091041132818835615105745839596382435401796520302902604163909503899702361880887305404599197911425605440463568226894544211066936555777840783931708373480154268321649548339799087268008557806367301961116768605473654116394931652736675936505815392968911505330264024373228722867363355169218497396588236167224677128520026618523318545088973342459009614033246582065052418958432870874980530496599120696282820669405030469554749556414917858647384562340869565273316970926850732862427107080971240527145011747438471506406485628959682308609289464487738830451056408320678353394819002414418368433715180521948228113731262562620797293453849674002893599787405354996306511352010140790119363136814406036380293659544970091848581112485152844912770425917366989279526695698215964752943696740413582548723125218494668576618947896226575378422145141538353258756691347758649868897711068467691552319003656483964785275098759574474792339776151205039567309617237644427011865304410817515838878744977622025672566212579091711829306892516135656829108180557532350853610366352864479882969627919652373756099775808884653073149895871576983496365402595347564543944146005809569110152772591477174680413513181384789000971250155106990207637718424170566582037214037348937122607795563264671654484029754654459265688052362347475199984561689297149536327942974833713127873446584518344151103758738384504316191798180295735311184111695164133035127939527006071499685210321990917396318831707647608933470697010115035093613068429937347629985140687957940175837939677088416524352657396103057413640685843111231240139960430792916324684407460112862575402579947176247889569287569370466998542419574222843752340472904691177144547185055833286922042037356879460853435666936889659472363522687137506380965566434196564531447688417220329502467951177290235416893329148531116069697990781183560152240072447035799966941771283459435899968014540412369360920253616395973070829888623309352925656907894837403117611254879509049016469207504899186899395503699528125198574575852141592636085062026662134744881788717733981975274555806615804199808910175410944396391656444333035262399847548615198209658141058811880984615990552907029531606128323276381821768997475295051902341098429763085204596307197318125269808957815211130775022373462565413774883709178614673487180195463964599588225390969490210053512137405947446180154575051996313286982764574976099600067551448657376218292895685974454168495758468829634746658323661847474203117647520392788682068634860990780305058783982646334006612994268373883682071150208864624708756805846810219763238379679913183663547852915376021131337989770733668217389171899967849997651301771445775572943597555829297668208864418450764901615805874118326644658203935026939694448211860978505191099768614062863684262512037581781826268429663492414822630601634613070061852334611839241163152236598613621976080234292376186831855969202408188402541955706703824543980599842171912924553726187615522341733623098145465225443079243547232487408572395550380140910919739736242804426880315608660448130511371759405717948560053804746827723181392378225691005892617598220536425687584221810224552772197441851300118980614567685557108245318315721898488728588149828590309174869625808343324817312500118497332566400976717317891497313973191329971414187375653362853919307520700781764666106848253715465335822496293237249394575815981195247079503595632232748644359863278686342917385603147780868864816011931414905852418307897811236254549803037433662227942938537809886473593659318823836064394817494728344072289613616477024794727601997869339564484090643707984327329228954032947665597007288812992266201053719441544030277081882807541388316163554510541935322773074584717258730596464155101133748963664333783952391570680083523717567675140409693504511050222149602022877574505289165878099676587514735673827672728899647847754188786108517300316136035779178710692134753660660318637082843438187461088655067371911584568529163620361304143877554537609342077128957734062766317651776822525269169489548908970574649631263444344051485898361028068152577187736079887701376525328848013052429218222520648459481737129927446752724154222792074140242520613908885836251963248745702781276269722369924814277664615652974264657397571737626474318708566080509574892896165172690732107314175213865072783761418944751446835432090522605683243756492767065885925364636806297623181412095959598360624330093793373382959918349452124691796982019152848092311338644829165841829193770428130308053743805959579135587695126335429108875329579087201568123816908759939942512245284489205053665841481056796233892396937908880982815180612262199164905868759532341454136933218819414430023221128566953032868561829637686083424758806712408851367105943167137873684320095506145460060933920277393911022264906503547947621734891238264157916542555305375961187741570204200351795009942854304657841609931100264413648813229599044622974918496328583649862391076817429741309585709043905481389176029832285755905726558763946699847568552503637403014920223459383983346295798021515948262008628147237531744747360206467861940610854978686382394814963203580734740892607992172577989760465372846346626284080249068630333050396758659377096008691727309066470998229688072765644238137637104876474510735601156829396976571611797481650202030319970001917369022537394244223824224571814160505849751315167237971568625592999314285697752545211746384175783582939143129082937747412780463777390351582880378699787051173004851902904414090026504043797382476784680825185959693234226936746578686270538593641901136099212801053012921888108520269603348950242151123736231157746430254773266596435836612751058820217940857007158670558546179596775660045145171932370739801408237641768244846263225034726869070179344249697535678316080647134895057770206398407504323301292952161237990816801185462639130751727282340920662653590106293728422765811571886696978428003930466060723966629439024220622970086353841708044677847467999115452811843710553148068907436406305959371328846072286049109031761259342334376474886504499351140647136464945768667493906774101309576863024995403187575594825413105748968761085048249698044398804152689499653287940682502260843857782540645295106307005984576412144918835466469638895450857401307820319809513443937473419604173111326132991514081157520558374858680273292781980035703123790320098469367324243582348410380060089354268611973525912700781692922557220832275440234789134624740710878880836898973085210889433480059262090650637969318607177441030638114824327194524268160864510433388503650357320632476481200283964576978723529370969362109955363406654395898127209085362635189800568809023724182956136035225549181740928246516682628854030966843499509089917351405032174489914425660029945089282253934502245796468354514828152327453028419827290788839647733995352349263562138129042058113119881304714476955301523042561999163945938907631880140416326465769694804554983240076613877338945870719855512711480619818104796757641607360665877970359578248536995692203314402531184085157393746555748509386719992617721950147309411217633741652420576409179578356855059794747371312381270509124208176189242904456474350266131485143216995786753175961911038172921190541993678305720763399546950922697648331089358369711708746596860737288810599936382910993500821386193675117514562327181892206581113364688984256439407543027652031864673447647886638347998006587076331671298461857889615820288485793591221940944069548659285871039134418513386666542975266798127700679800472489276775389487866958058840967514429780834554593549854187544259843006412098142808595016504836094321651470175160619168359467295913929573650407575409019975514711628722896779247272076746068485920216459196476576714032232640442256127086980832531273997595549868438133503539033987896854880143126642340521615837141643294810618522216507192042231515229313396208242159131302454791058920248921139075192767944617653758470501237618218362231441196106328138702320166026675239230038601336276583366074139375367841015213441507134180793022239471126769333866236916675352186066743615695101894117813507735442421037741367438842938276625555848336713589796719800520993065297833535165615045798597518869767668635228551720437788506714519920343742586677773002356393539340218933232811326083177426206515102661081504770533372505937820129407318347119457459480953645843179463027228735757997163362157397071631072028142834919460293722585722764083598504117856322709317921525628604041183142523857445427270215547320115960158851102364921241704846243289305274118235935996597624493988225055617968373733229586395476577775800256158413281816627564813170251673952491266926982883151311370356327048835506572560335659231358207557473496072426918785502376177153748524991882139180192035730837734559989953102223215218825335292945901845233718904542820328874858967202066885692869304519470855011978174101171746905663364618043668889692357681002623450566263429006705106031571211568244133997840423344700311234311134434566065287375969894168392524670186807664975106944314152280025729103906825283652842206106712789287562137439649087410790812561037534279304724127386808433527575667626906969453395409750272606739050770186212569747734179603365046547346827945877249412597667736408112100046914094368341161880332782012372669125424501177832101854613172781332861912837633200064792354990595597894440372583170588784080957354416866533045681840541101781139111262042007809786100460333336823594370715863027927951003475816547842823001268267924958341098631034281279272421777670239170220700053513378896767319680450581840915465981419290833813598165843952279935059075045828208365553896572711047865994122572805731594951854090566834065456282234951547951353270650225670734105041029031517905443792575401928340969027549678279431143368649744690017897210996786786151901467996724699262388785915873913136077425001970188293557628457277193584640171724550087136469844246135519072906805038102496975916631079260135855223351281303308619838521706892986586323076143164675519623252511144757545495206441600596157868031554164365852449337900402196847563095285687614502890079228976882072852587823758123049733437665649640191426546693556282025825455207970788322819533979295026756237275754245527505370467763039728994279832636910942545472917294363918873217157796494774564960644764039309386596766858169480594995163444133593255209025118863922946191365573920391846375711184456728376041548335578856944438844426103265281241962182757274241644780770828593296502434617391201207749752695592426320950635464723969850120787187022921780934827369881851806127131968810349664007224202100907552273867355030756803975404108803755448053764793150598407351537196463496594439613830427743445472825867546765550739128918427938402082843125649437891860695744178124974650162469356976122242163208899727657470605171629903715155913785217103165715473315523400914621032748468546103549054196857567865544555658426641977752047520536989785759913973802284372043595653413027726923800765440531108341936071992487633247452332927644033279053447485846283499585829205846498813269739533750472477895691445851816111447405938502710150557811482165966870488659155791113723377438782562625199408153934578288700945525129238557461715603613477785239526207955305752193473861782334192215538952432111700226976600553158389464410405640602496919295683114749066446521666832513848676811918200927641964194079878267516712989615739104273145580399390751574976741887315912407885245794787622205139132830694404639480236433604686542739434224360844340844099169341191537141927143846704676626689593174546981086531703559712448920513236239886183688301595670536851255922045402286021419083570238236867681826770112413155987953386039428390778228438981841885499283714123066496530362073213783020189789364567268926781515045705071291144834253131486315313413100736814837314715362363660738343363761763506889435176530592186066739226158400593415350439326527468018137731412530751953425452122170626483533220426240977691582237343253882655087980818609180125501784446284878456923451239398313402733511121148738419717793005882644233111154692738117031117569911629471819739433786851744579084195393322774281303541319150885449749088651246389842847395429849093153850008124827202309587632259194907975674703827847093594132874269757283481975470781511541696544151943573620407565222678151729439948349283650000497769510333215607336521813329438953856967112508539570183560450749987124455632323140222994877655984812774435793887672330920873373119598896362018082239878279570824895007145206435775729731143586932856242035852030282494415524079263060443112152294589892511545146190177718456541220832483978107731078421645188505034725734347612537548643526647609849466833042358406421379101530016701275060916978119145326018627447907975921034107271069846271669023380807184274045126821710206728819593117225474794497967887996049529021473126322535266471624020531212788219772871544516002892002111625059498737873658980262288355129331693800575692483032417815604719191038940090970260355855945845271879923191350356380760945487576676055065622217885858880159488613014267031477087592693277289906096964345212630220653173159485083741171443546836059969060955114380768791681989459842766098342843148403909069597298009722419814929672553789264304213864909557542358211532058861943080472139543879476042290966876503959731855982817771212606690314884391815506597128830086111846932273084899823840126322359538276207797077223441756366702319171912160181138433571983358018165589083481505348514342626724841093964866525526160210557637631867135957949914462048240527099360732598316338451902055680517751760266826536014028559818216064513025390281087922496169221397599955350113168855159499550254948771280441330594714582235951761554161587078766288699328464137801928876999091986350452674201625520408212429314502933917575781278250711920389421926046275349612284989926839983268048930677659577266911163916876677920306043274719082048523245480015452663616319185551887305079352550062259954260037842718826635823755732941645844485848797789769355000177301422569980161901604926396735024414722258102844076896342826003795291778765180861513314872385318291756321873990212317555017173383601989127936163004953317059320884073832784979067379380494816181096929957053781507854639074354275186844600811057284902769705840625457850701335902537956817470278378294666152173851076405849507878108302787764371854341600475844268974516885754100744464991022930159292129052171126982033306692262912694164822218289638150867744066665227299143620958012594690399504552742954565752900031664570631616802069806634995453318933226639806724771325997284257168493820863337723088846266228379540247673339387863252538636018815295185466758568053545270381153469286336137810027987682848466587705597908129823429347972352041446913024716859555297952547554842670809375371382317819331674803002050005625848112188233162588240305324385132923447263784734446741097166754352389037133904273210575662799081890064851502620429960267906826819282688421519544483270575625238785405716393905539839456358050861371011479175724551168351759499138374075104919094499618504221583915584927215982057781220620441550507376407336573944241068245860306565930229004830088396347306991359255101080410212029913038118930784675547774012967890157081148870499813669309913812861449490902469675412828761034441624808341500732246111254336244514739469631363460908155615394706882039310528803399581588716858854330415053216940816114809227174751922967978854271618026963294191524164508793253016128603289866155699438064639377749074588525600380972193011947669426189781482131777594286634641104152134724822268731098135156703095179706287458964412054666162334397672096192209138017927919369255364865457476690484844659632544304761405817551407902683516264930941616816720713101487205428875400689404059411291761049735768160003431924391303138072716383526949735824815651525421194117801981191590400569482098010189282011932522058464477392205604827563977836325357681433367658709179638618077987216020327305581286465833936102948057747460671303295425698248960685494505971204304979793106143397877808527087402705171484446012770005859832808678683708033977501879768669181715506730788052012579363186747768965156410054612019032255166225771821217066847206309846149990968474930468278368553259395521010236630366967621529258870437807976141599910702210539423418256479705621480059581063980618044243630265836623142921438072202225851210883066365891032604847176698617517491100187092347926965743183959421954716744729673700072054596418052611131496487381959356388266217319987619183587840610863663092550144275227489388629002572227446480248834154764585373299665242278244661264436730069435370759283638460806087357008618963876687951760978751688650835871282432366277229797821440630118621223206785782754024874131659698112901795236884929913416704950424282284785773777503236733722256089374261835898382376898003381565805560268592122365934375439689500133225284618989489488761983460084914396029799306357709562430440300738665277244268214545564046102172746125898032828566861532456340728116564007421422242121973924211381334952808454482299946939691147340251230204157855426394777597768241080360951830930260963230555585302058529014303830968710371709400027444135641680575891179962774834058118860182945425800747871367276309556455908325040890979163107359671587809901324544681178425683858124395930257774196587437220846881389195554440692543681180336113889969451775616890740909711267977178539832166111076202200872724422911457305529795422682571101312750850789305612990208323807336624259349027023880490340316170101621018591654164131957390440159448011559442533372903841682105682053514992243911513014503292091512385658961440974084387790230866698818242947563156732767405632622058390955130112700079458196974366244882130924999787411046401374505475804081787014982400381862646456318992221994694259184346021740663707031440088090952783668458196650931378075468284191350372039068862915152153460013219005837455775706341749559789202791884329450741387859179743884618361762756685188808282771224047056384116693836833314056834374809228710691603192115702430193309020860512644461914892816493514636143216645305286538580959030302241611775829907177059503054912177533270929243750686147436170118530429908062573362090743972636916172706156176761441743551780100090329763247384019054406769618843004460996822006829892032240897729500484209169108969049736746663176961190849412055355665794138625441833684651762811906234401936730596492727412453167737969933860903494826259124469323125101970788180379627265189845859100129210598305286133214942276928714359954956156415984491359989863207484509697078460018922615249671532663747763635883029011014643804537031331127391264275295923852764246593794464858219882746123784663842137569891098099413923511227703804409018819586432178435940431860084483528928333572179668061491587126916298269593872068954392890652944400030187903523938344736349340822420543629988790737367240428697494428925504814502988234570937666667588252721335578541168133803304544968097410945402462582991129460502214949838483999365374936684205457560093534525190955466873950367686103954410018198883560314606006011632802152860973245229223646822446971328475768102633217831714985716752889902713290964772534199159883551542590112709427828365757172880562007596173256766409596256302672406496132696900599166184353733523560445944746473148783810584221488416012307236247496878748188659906052734892814145125220458457604332071148081949438508783026901606622194603213647166568842134993250488963714771035207095490422252140556980409171394954161375649159678029466973611507995720445786963274906869279896145955951555862877658886980072272939358871192553303006735746878868592877245214491331411936197754249899237279031618883164145783256964783415942391679284917046638433484844815732711784778741049991822004780388957554931637646259681028967780289674501018628759797261843874802928158590913013539692298766117783606139103222638996026384197526142968603592989632269066815067430736404180590942328291564498161819020507814431539410744313071769823153973772918516004347425242099464758744189126019628332439227408757092174083109127760385101493874496225801546160495160460903772678830735796885183323824169829341798968870176257564032316691547606157441991832840410473130659610219416020529231588820146191415793955625615241577047942528915952345853137776449740125684911121142364369524032609603319887863473408441709833615293979042510402836722231344243159971139401459131075380923749401361960005872284722857132470386805911636936801818867675211054432306137843565893086670882092323332551521919386456113760878810777563772306333359816217617600068631982189901020518104998232810968142937751728433185710908005923947445688482094690241500659149240469863725556597439983825773347011187646135614855467998401030429399033314133434141993804518123032787141772559324146454302842224424167993261918061344600030711939748505379602630235754000532856756351365598582356421379482118326103135804042480782585721827853028233377179372994587697488973950144281372771749107104430923957582802038781328729864591039841903156785522545336443729759904632181384681165253463409776391848405233396712734581110542870838808094269050312201387811764212654701106047687064029547101197456878743797131898338978709753456967267495515385495286231096734689532548368596953782097369624918462326872603935161400974585074361586995519768477565379452225655559433140381019423091201157606100364038075456737916594995594711656076151316538310606810816589243828013452959533033899921267433558743406530013907995137347252898124967134262901175818027231967868023552936058715014442015708897358319623451429603446712995067271170385301614198381125808010733293595148650652871758041357241088065825136553519180637987067902050404188419489269939138249008753477262339531145124511337815195958097695279710436750690141028347151933687023437690071774790562405411552252593907285913767876172674122431387417528431748235385052305357295593092872294867112611672653559342674609492396547183761463240893415097292272758022092872763177097812376372015529416349371384208965487073116288988403133091965390644806328239152455941699938303494994020856253309724419625437725950462089292271795373753354182851151272830155773433475494837221594201250885948839346861611630297487717604203272324780889875025356329740627566782744154623159921260625538045550321021459339869877136163352565973547876831608090690150618482212528976586388855280016961551778883807628682224624800274927859674512832790433177778596314834777306610354269510602668456803167124637997442319117746423712086810039283663111511199730531070580749145093258537410565665912607736987263111844377046492354134514994521225929013891423412339261733068829466567917645124134606040664598845782004028936768696038983783660390132810855046491073551029687931961502973745275657402101681862954515195307262958984062604410905403654741817384734441013411727379845640465835384781659019386180301664739219746751414315580957782220420685994512113815155287018721237763061188734727084270619838233292602043248881614996682007172165670468778918914780705529253521191972084095401015311618105626793704771525794657758728268605100181909908225774682666402820214747894937668865565558565767140065846413069445509823941453969392925266782320170326507196640693900738525123060474728646790737903727523413749453644419397610254794710983109977394441223614148149325528843883569961841074025829656570706125837657392838301427485913106380852645244808878336532421751377500390325893099138705195024767696361836852851089760810334152752409356610056175573965535895728378660217575508023839914662362711859554495845657316213313132437990661700649138035498455477154574755520589317108876050851133898078753158223999340075330854978047244317164455662046733459096439810235716352932281839818274270487446547123417901893904959304900322621441483678511674637400194903158012155148911824385497818800174765492891194710015138206324312018112907694220246518858155302183845437152352065289327720776325543405655336284007140725365036438743880344518983662352174774170205155342369826351623232366933570745856275705813211048193671577849199622413682195315741649080568291148369973931254675105854405436152940028554226203679753245198197531334269564785604313753251058854725722527162453436708865878663313891230215488629878146846695742519197833587014307136727327599773089673941437031294128685339216894773530736218985916046249985146478248156830664962799772114357303381330149194541914635364915489618093558609243130636700430621618122528618756874860719482766594912738389624951462550079523973313236148050909275498921374298068569513272322783603870949794160662462064018315528005207243221319250482315298286694556564965226848544673085648107412933227634350692061073641430363389084025832470438672594680076459781491773517838102616645012974784960210213757181262828768809154036130126770546047682584151648115023655238762887072428983021443946953123263843329823982494903272518524561473683377608607956903295204168966018557612891513824312151382213782869587801730601389557713370154960369395338845956943075264983797349789174237806200327098239879394593608901116733064769992914313298920795521013076573194849684947768134474639640434089107040722575507714571608808282866533450546642351751252209115938053201186120732960018508145249740509628296461715740169279735143364452716518452813393633993688487780729515763346893416624349370709256882566791540830281763665588099281419612346549306827342550814137441561066524145073077508315712565528491864315693714883546686482684780781563258113503034772567831452507593825937604559386574014068977699239254643783125023677144809989374381157040046630840195851871868133176239682638411068698854767234144385265008888131784899496249772086594167514424893194457819666132989055555217912326420317165456178824324451693059592181077510872363101833718949912155058304238710085364209766471638549283830193401303713086961456404029748411371070934707717715475994109239628180599463269459394599749760922767208848076131844899776662031809274952838165432000347013598550396045922904213418468115689815977876606300191533362618997639493302656735454370805180468858981304536392734523146248948483080811650603198072427665834366414908092372710637469021328987376310408333890771604724299006911220943120718868523592125627260982940956086462737205954518087448253112760789708599736105396682409839470869039458060598295230865053294775755570536070177753631049289915683512572065650318809236734924904741118761688964490021134273561874384010315130364960591025199132502046029933602549523797366024166268688696058020664555304763011994510242616497816623127556205152541239132052381997893948380821561130488143323369555048085352466641967203737613747189296505062969078783070921700981540739164731599869339957875173416903774982829693974324430752851021503692361506170243388278867830924796088532939545973058590792776714474317019773460373112957425866815657590999372496057306051065683909101479256968687586562244502033597667304606881757656128846089234951326404441564094186866333129038675184587656102430443687004622195316185268270475842261663250077286997566289843858783751999042955489263250087456257788408422376852238905704571036210850777524324109016002133981502935823787597964994850288013141444807440578828101830861644053033888552351058924507534408407553138111485769343063533080237218047366368474234318342094981625895149546645378098401137604410525209274162367459538097794095552907397155977710109064449120510558696618501501660126534382496373651659770646978635430571794746449781395320541487213716226395226329534492225369593993382061508614057702022307410696472329751924497742072564673072957527648729126258339334795155767146343787510324596521291138810452862563777014284247635309836357579561789328022006190603992608504833321352239481605900695655361250317797959448021433257279338975537982355047872324829011439756377850350161135160943857361972369635010790558241918526891790860812466665875508312690636540855415027393954658264240414241187852495778547478616797626695153781753176293786284982592183852054085427871791172840571465729255698060726465716077339257845468313890480234588240917435393008375342351721041829257507281368681179919059169487694311671681622910096143901269300073706038969378286402397809751309109826092910864763904602007449737842040176443589839163447247429434106287888783435202663146274922421710762648535953361506707241785711338973245290720659434817878306319658975643614285400248745826048024938270388750587967270140185447370054455117757655239951532645060298314955130327825229204446976056912959498854030069667806766762659003717254978732180279773663174614335944240059693782518238983991672667230762097000445522625603146762894450092753537082126348592763806836563750123010336643757334730090539779612780275295840483012123996981466537792884206426106633180946916200967572060941127273796748682901973286305692817784685193660468334559571651524763766004777820397636268488936609366101607222668644704537378775844570385594828171513840151329412384397838763033268883063620389029846695424014718131257086869733096128162258326630009073109985719694319337815463065646795027563895964896336259852330751924309615182015354089511280763030031837111258075651336746422726421856055681571231954073069105724835744834399915769727753181750889983686667011157195966357083728895784533384311875242620479960602260689082674914614503383399330354094556747634454423734316827542061813179870964634780702479695522926632998115368306591486377339071974275041090072915860964437148541805560859085467560041603528609119236888396095187528030116290684767779299593764001262263580395393895382092224367806919460713762972446612728456978904519442788806472223981628701242869637646051004878364718256104587887304264879100091583864485122529003183051215386458587119672495226735208123146059436584632463447656249497161217446542730033921760519690112270713527397684252781740731416472512930108498707129378261123863883796321558925479307170879983572398537494412241109361892377151226581185003916167177507695689542942716615287377909573079381022434592419140342205819276587464785907434871933096043985664422446498371400055760815642187585187259164399863241961214573047647860121545073035785004058235634549980823667043569429605931631434395720013002293760579208324178872042327414833338276911663881783990177756597554112853024074648208312388192742324171425848552672088310796150450661938481371554057737187870851469495173169175847555121783919210032529587143218969518484583833256476782118285043789441483777912452348957776581258279788285065097543710416549148340424183623266244365548407990041043646752101256429332619533390541422778172370844150448055629025358400864643190562882183833966390531680897714875406738380305154752846939405687702971896444482139155222856185172391296845263460149853526696684769723584891296315596577532523534241505157332178119306897654497517679788594861208564057376747973458939936400768966141892474097723230957868656258511792687485078955257358412619862102173902033226524272254248468908165347142617897060478015228769857359331443225843746521986635074572415942445559202827559114615912679414056728536429419810430709333861106387497563457569339399251843658013786389270781427942361502901450978692789576088525975523504018624264758527542093506357562925156091182233411698751088140091273291451658365421538259335672049788175908763789263781816272263448240177796260320029272302814039243690650559294373070722747227224975767993704525582737972577045154149173470797021352600803918659934506137970769162073661301147045690241760804779684283612201445271625023524967055455061203144734071567942274830961772476662698718211513659284279415753320681681553813240746287188839028035805204539464600864526407377614076149460433240026467173451107060551433189000401077889962532460068695345790740721077071981920973586803695703252221581903185052369914728193076094342146902223815083481265561482066983438461422718951927169232998492724707250742846601857817546930592338365620914250511978179891638418762929003112458100122754926776731059998443199560001157103435046805193987758482515678300148742528631569211372425389243363606545861159250496866602723339914801519131225417125556213304290238630843204739988883687833584084376804168017691969444335076221543601847708425798939655590912089653153551394781684515324052357842285311940775795258082333674491519716618907676281432458969838408275665830005495688507810736262288224415162220791223742139777514245623530799912579716999504020756838890068124834488486530782884041030061446212884287201588148077136526121281787055651438733922083630434209710834631834272543184674067509132313279341385202893402884203029866888950559851366537536465056923260212469289764785109906166461487555048380632870860239979691429651480826669674610767151801734408542466398042359386912000335378307883719703542758813935062313096436229044458016953077300378875010832959357036340627237624766416419117806851438382807538210906220218370126106910856141102111094729748676378577181889599169913307801070904935474465898269626523538882756207623145044470882423708495005526468533927776810108052733519617566700677876228354068509585048932403300188736699728040200072159579546834241657169947450308670157831392527848569469026865370214719622116498159275375116314179068848512699297347342726459329105612348607552351150542735203001747469859397195189758460207523488921409976998805501002582656333610636700077833667686947324652211517336632685956576147886349355913392417148370299541981174807283339577475208391933376710591431070788889960544877089655300495809008612264056999642616011961966052915400326233710146150007094475163704062601509455479744148145275018190376899008677513746387208359356286525377842798000128458306560102464894575535540895890968498922201237563389641580969442345931116574250409115209815541269858475627471217323492888916629617186302330634865560497929044881760079114356541806939852272141660895239548970792810417118634341439047526771455578607981362038360617921319136979177724113289130814542504681974797029360852220173807993860481029717175519064591584010794188410050231445055516571689101086643390642735499586636365533921464146404809216501239757931350262732071534658400096202036716366173600433840014987419077053124776093946744445797164934676132773979779179029337512962673785241109868776764755471060410622759492225959062352496879300676801286314668973804052337672200441178635244337502502864709469374092034290017086068421271333607137442888819555781482852578485824711191239210116930649838609437666884118516418326159081659654523754306586394695298316200616607464974320688429007776721476533569825215276355798970048686473712531807259417998583311150824312274714355367802707598594665470347633358038774819680737634438013737427578096235844547337782499655587294072673861279369911354388807767789907127164039693095379853049352869615761162299844860881369767986049756353593185222152010862218274878252757285773430837131626719958881115130174353872667277583422804271314478204803401376359932941719679988909366481468433019091581869322530801618343425229641798571331397923811861383752509887850029063144792828966856255240214084252648357725308012912493179649027364835418556642277657138310715066127131806875412494685296638455441157819240281276665117888335541550344854353864962565377854666454492723412841303126143320366089377642952247471874542489792938287409621822085016085559832977914803598799489786810069905993156589648031390468160447691585282907800432660370029752422224874910516234133098299364972999202511861559567051603560840069261029545176020115754222765305144408203935776949566700550060419755653894963166806989584959871028844044990440561323807995484836004766190438400661541649103981059346442232704435362164188906262500769413105107189531194637280553266022913616052244826361528539667663740465638352935353706534967329778780560159022649321513497604570671311900856365594860226720527715619860373192184344085961690539019776069826864917018183356408654391492372588051403808594740455873559246126975665836881412653495363615721031967781916777145675684942606139829892128724820955271112339958873401963519854642773771167428610893539177829073628318005541321810089375380748450864329305780901352306506125357100018726719672931006313905473878857568288307149501496236176299411137499692527575999864653942838043814666785505677447332604883134441476199576800813664086082211293148135033856634779801025977343510719563103316093103928766887049249883466892569374465568113178688993315759637866916654858560099817546342098353814712518169753200207193791747214874477913960088418713479168535370006485467783967717100647342217440969300342195696181981589925858829173926974127095832815768493624820894233193669170393577307208003698098414571548820953086975857602306641382795676666114129979645899519803767772660249909317127874734032137704936924974537681601212456169057980445432814883946027332623643117423261502937487879503089981110215306039256356979717407708329298929936461503786342503167081762169352276829754257246963563268326706297590143697427352873591275752444441458705807411481780072481882672239306684655849930877817378197351539811197030454055806784778727565923497889152900486817047390452058994817719197047435437429240708420930419554008482995018417491163612205907415731794446417952217773386563592980211850888173946585030673319790852100668453909405306561315873562504784349999791357769317772076311586855158845013659963979848819199376703827821154285376637936969727513984351537597518670367258686526641304104415241374731917126820648712951107122767084635026810397557788707978614216690294797340786235774347649085563543395905911165114288253145087968055564728031540902933423498278049493801305741337944916935788242321294184162179789967606667701189763917578769982542511927208786445070735994681960138329280909307460710156509071995883131705153192784345105104523955971947401293445248393251469721868924790141519392275928697772378203567561856579379970888862453907287013730977596254233425964547302578643298610382961202246652413823702350794319454306073746209321214459363232219885234438817381335824975438790981604898809673282586709893118580308738073047521847177236935892569211641648408851314416204358529502929739382411402733645900725849584522777552141573146910186747162256949071886301850106826512950589945191528044529729544262475459151061490771409360113629273142573000206660139694285929103903777981229049233446445609689120323775034191966360059203542203667004124515067733255236982879267190982196235443081648024843957680730308468992114200728543686267297677992841898387401999388253943089854226475970013506984770756467818125392617248143232688574197267445396490877025673157912490156968409120488949331562242875400207280378751786137118772866245819837052995926110530720691276220178956121175577947593122040568885419692284863347898646373604193019911116024397360270544107490764737576084105302883078211104387636970624393751544408143906677678210906216110729361924561425751107469070028192394636515756070918477731332057510530735629876212288057857599214552901054481060376647787446203638843548250640382141622072655422428630907351270756022623334068653697730242448862216395378321270531731260485928532783622334388262816965633213530691572920053857485531657573245056244603525453138731652589192475729157488375364912580917018718791744732342317815872553905673156466464529112588663359322097513360738268887163640730640915856342719896867147704483313295236916276916565533528954247197522305330827937122192644805859659249474164858891557613269419976668873740240051538674966150720775372593621597822856385017176586533845796094627935986752679479413251457994728050355264212034049362288015435764402658788380083136781201205512340878182798781096263624128593526289809273610138841456081745521054205847985048638527816566698067290311781912355362026513053221260122926261532299487717459620521270209364616420015691302323690331930349982611458743622435275236365546964562094845764283604379161467128784526793213609792573962657927254861749577271215434889706037689030305412590347723573216727681276488022912302342236271990380232708493562195047283429514653407845232889008995438786601463066410083547833212033579409412016049077025488528372848000018189370128700575781897315521325712519270102456617764456612016155919717674206253601154224899044580750268803680595474786102411221583762680080735431556728838379845915428891545328219201158733665787500103894407013263728122177787885985789622838891759036670882995324089292434344580508595884506691840362691695346400581058941022881137431941751424279336282008673756159624058900953386439289926343401631705032444812709608487739579227216524149595949944241569639358881074005670219532501555738649857886800855993005318545613155721880004703030077905487592745346006555124965944355081009249301833548280612690305445489907412101103372704441797784689769136699646110431469563204559856859826837639739211223350605924030668390400676054371432779337475444167118538853112665632813453407490876761263438079826793268705670428237106468229611082021113593975249801694443546584550317237075014797073098781723234415970842766705430729097107579317492777846798831430492347167160499928992444043739874759166675594647823878503634168648003462023025304801700089408351108355086324701276078875092255459533613142031090032559576948383400266214186494760479040881014189684384050299966751825576364309713062247058882237343200342433114977149345590963674399932735320383084762626039434024595445137326514959383230563356838922329767207679750897666103366889508396812633105871975891104861255083279155717154371422444434882967349785619773296034716985989525647063167857965277183812713997537792429775060046494530607204247338302115434412960173131038272185361930399240854543422114626443452771922926492171354014858960760204114946514333033380985753987487376038668461599780967710715845983985399849132515248618984834441212883429982007290753346552373176594604809554256417303982117580097894196013271630743137162451467233452519183882119450105229461993965479213919945302253098390961155234517781084605446894234123791968813838253493055662795974772452278144653626100094411853417506792470068998823407551438878105395253312838505113720886701376200930285458835769324606668579533916240590636976252677055993270388203056046855900748033838334928309925577119148695930039683116891590191946158451590793531374036153091091542883734888322252446651734799842314319104491195496658868603253041822863987334697726943490706137401497443129246396826234088526903974048094627971928396410378224262868703040813673499302578867621254722559996350820836551972059333944506502926014912910903078424254097148219846346448026231767649431485329819587778568878741042930618178914376446586033314079836681254936895743734375949135255898073698912941712613123581593203564299942640504903237017892856276239725703535905498221341058427917141149282644025531832742963582820887072076433801799021536753349362695721350746013035083615070875480722405069893132203795434165347591369619524075156662292565325969314396565734793706664974706993433644006848736921256680637964774087684638391342875425144931772993643963050544202849676509355254619020920470568472326869232599304952807548664616624383726742376893695859578437596310213757305698455762981164682334803578099512569211690829367789175729037022499142891251664557011413395760539928513939714486123867550479782057142803269329738446547625904117067711752707569458822819572497583653554205135266061290622836092475196580184131499726753671878647910314627965032048541946913452412040526854424130360850949770924737888963300387494140822646350202106188661346202302760453847400726086105180599726382869418034644028988352040410412371110972872723829256685137530139555405300016160914217090482780390778991456832536303515391160057127447451898721022073380862290429132985391539630710396442821924177534192400419351593815774447422503254642333379239347675605620516820271481288792837437447213740383222214588026950527359714906140805230795292838728369913475731784063382026475404899839058006418234909533856820815004554922904236420185342430400944139919297554741873700329057842715976207333128987845291925868565344039265864728454278672026462796038335682150912808405966462246587590760748955630363965786971417377936548252107928498862925083407443371945629943854782862053625132453987093933835889306430810048956357672257763507200919737127271442447644435225466412702474733671016017062777008548186904466465943973637053860916136673822035174418882915064493748555010432963708861024189553493339245859359092308937325869268087452039052437573245275672785741005882897348735896347498853521569988561388325891106489006330744460895241243184736252377996639548218216998311433388368140688024661017068557672155915813340732978799612410175881044872960976979924305508303164253505612352804533879888725255806396580779000747537972321491888339154571731805418508955658977273085158775480436999648453353439995812501000016919790948252406939491083498744988780988223438313158972281237296380136365944542297143242128018259829310852234232405174123826271708671010679042249261193186996583902774637012921645354602197778440318613747720060862604793953432812982422351731669094267600388712819737461961324564519471951429301335816206648674235035536976865378051372682164803546157099867914340893326371413945006193308040095546188208564703878651825666337267397990440376804912765305099301816624970096202895777524747484535740102768003568094699094967538507007683717773490790323408904869134379295461898743854937113406237782261289379421936647270161645870243234097696806338872113928478804988010805999710057779642143108798283508789924548815121435049268427175144511200392188867344492707045552711814917135929461677961707076104048484911659619344242503850213462337617283564931823973736923959216652096118242257808582689621614857673210729820519197866051145804688950932633155164310505581960823596877642888853454422284864294516927172096423141709784128503777112274850564296791594291997744775651196262180912508558198591679280594729783915293034193530663390328763716515760266232241286071588469283265570362557526191131115057456835606220731914806303549759918748398877282522820765735724499317285328037660249137315763492681154400888193926593892860392445910673927933626495450037723188362438646137791287417066105401478687692857929571501157173242200857849665436011499605834588042250062291636987371603640069791902498451349757902558679949685777134838741226479555366690327716265308751169433393910283920720163211860545687183102932868320269862828526437802642493120604890919552618724017624777017909013241179110387398834210152294488621241296200369976253450051470532287216940347592784228332360142943232556093755023215900792727784721706665066343566497102670197077586220549182415454176235416430090509435925741851306151510352685033885553492465110227557296834953865132997399268883500279046459475113825331061479598188730399082520797150837063865962131123544549068208815239177338157048227863148471941614170047271008034449270731598993360997740926314553817691756043866864081032691264641877691626948029560582227938918621334735275461850560029946029555174395630012111938961484632369684326050974242413540964674818177617306773695758973553628941632011504467160262147116893408721352293178234199053598691247857162622600053649927746304050643907132553162033357500130697620220214515753945382753409592523803716598918827088125009584928429031602692625469637281177099000198827968425604738320770170304917151619248045009840047441018058833539130015314554312178406846379331241909178618984173041429809832646779874584454197361695879201165489822085140962996730488220014550309246662693970293482697632463521687600510139166763866816079594199694495635916391456400961016660483927211885688478787447821936219774448099386202289083902905515890943430476102884616558485658295363115513541819120797308879347916231980006154757953630906324086612846304064543809648075510712292890648900847089952904466596102797552389443221798694319495944343195419217606418248698461274898618813031647011926728578391130256993526150364228386163819582117422502149839447293079499074506508290409391329465793306723638814897839023803871793549139115066416237318849592253629451298266068107668548633202264739513428179416152085589064028960952962364545142055893356658391978365411547090654876226235552749836176944964344369577469296339766174628069762697299271716691215346535342129561084630215324252544745866163941178519261004210007858351862086325909528596621974579696446713280971579627590660080415716551378344135331275911463376094540982110691942034876429966370100383029757395321184554612833767544984800491683627028742217240655465611569211040376906298359090657433126539369934811404065147882354744259088873331284246408014889586516026381109613959862775033352957237853892732155331514918406671695460630413132151374103625187193774499086613798712936186774455912755891811771533481306186983549899859338171274298472333697677907879404760702883723110086046159743474766234441514007292313286898930528368319364301542620452207971654312091315909829459194864713946016828707698510192812680881273025029977911698642978062652142736425775649889670044700083269149848642165964579044839900999886036219292965586339877466364629077384748316459479927516263925629291981552714413214399260514914712283132979887556775344181507110926683255117497020930339410134713809668812583710497395595678922045987673789808827277918686379150584989312879758580578661550365753808442987163133641342200370439397094691808481257641081923831146731572905540630180239454210211883369189418717319718346246880132489308717788094114723424414539300624053655123954927502173028544363599013325216876275458966224973989271911003009595696551025082795710036132875145180132906528117482810763090802537897760291183298210916924404185143747952960201684904040870776239677320124649328226454952860337759128791019774571944300563003091679714362052198882858333939415178772576536939690867023960572576106413244809584099615773249528927818951225383581666636754572924319694292512514732479022373051352331716624136450893803061356836205786770262846120330370173493376502247350687173013089567122530046703202344651222468011135542086680221539698989644641687101947751071073110553165361579318967104426846003633107245934997051668997852147896613073159586493245458333933061009786196728103136722701716511021690301782563272706185999645330538146670601878502900309956974443836579220305570863646538883297694851075908016514619989017444047090066859875438822959775162808489739798758234463434249433640237960137804202854187860174875358940491037021632595670437744510072552652672458808118488162986174443813649830520200984937278639872293681841190705771651737860580139037415132995403223163732728300283147170665404399182770839716109302694094828394219119028506459472021594179378486351500077484561399673600071292146823705466037050328900119069888587076934940172077408151619365898943488111144233591808049715749590335250625173142199279272315088985940693809020816395175846372654444081015127480205117575411658447498392627105645555213103671844091504025225428654045007387171929624242764290299834376664860575287066335565011608545864176847097067406504545505859367421543952399386007658639658825098926473523249889397753989233445007325759935498877114295227391661790059872558141292134180653295812740943121284946411633230332168679287219343889453789175677675754134402382469843244946900614393313034144526246392510743390668208711898861444802453810844289290331227427763566119450507807694413176740095924046639593242115088604246177303470841350992050136527887772097588282490760071387794942982471551208860814646169512254469237644654630367801412497308469169092872102525104135155543774588388501965422114644978309221280538253333614025938354546454997709883918399290132301175735641300132322384755579249116269446640130771572698113744628418277305423833420656384236751284505988769820924469668690822689364157778409141908006662054118497729682695243550052417339525473722795751862060483137215432187156633629460013785211490506711012893421895719683451830762304125279741109711373583244981672138008971315384329308949255704577408398552276346872820265679729342447677461485102087196596914705062702503217154376385266415073477030939724461948328975049475312777031123233639556688513475052351475622266759834005662878628953218031648916043175743918319242233192130107837053161499135207204237696641701969390562912870847365364200846134795806089197096344204183784620211813920050582064647441742165119003152306226626347915734145282697373286655834424449034202006356069782383617972916408489226557129223001307738532027654971035869165737143651231597305520981636357304865380248544297044303939842512493786766986435508416868063372491606667076179126552550907710476433402885638504878718424882081785815413162550661719776678346137549590989054637599801709180622754273050877901098090616838349741269100073668100912172014154071088024058387150500457198589447681216898051907558689924997554415830014594275213377763835494277841503899835956469408546769252525308407435225207305472103524086543453787819913030538244010557364345283165019333774736714278200374892003454369670908662641558906394307637496688136114888303867053374419987869328467822152364671185712826638622247822367926572829117442992220299072552018316062898254599371918868863079793262427887225292917057785387652234179073329213472448131126509917714930930063216971723535531078507041876404873805158065607032148790879022736880178030937095689930869379033558091374124531472759799659597410307154891605772037875103554413354546346748695815171263726366296962878548029020100131254159917863803138436298832758962571225205199286658645971789161253924073269421252267715696340419874121399586944794703780609407383289105656639842280923734539731608339291686334025464948668340027668907138336012650167356835619206424973901366791187816868859118180575814530693123668928768929340535533008757686432096743467869608124246315153275594402096820402609062076615956824725422619604226316269162799710811206103233143372616676050270110620658391078532982953428333602582497336223302956936298666433324557889336646539761578238973448495428382456995599397952909620799381921009363850932257599765396167473443313969310964331115994717107142808361781155761392696272696548668663143808946769744468294530362692072174234328939381988022553585209642213966222342664961734379920447078095387804037657857922580067376488201020171981538343487036654756956255127661598551255286419526634200719328727830414362121733866178782666091453781859707174083381837601184502721995026087799116099715783020522304052337673835070025217071039467530832579121615349154177018164954091091443941323711162981921260730412508017006621133668853699101051149366063009607542967241361419341587529098809703166108752226800451592324351841841656260439409682888971096829611562799119563199170696855678689212311591720018185495130459686004743442844431535902114462685200620573821368966992030569994584918186819912221312081356046271489803272235623201256058481400125167660933369892243975608239743884040234348479746729758880187528903795217752127296263631127077470455777179219310385339054419181668377052327487782476801106541304898650193459748287140431623301534161715557616490027701315886125035148667808423098705120267691570344491302659245318210799143307976836727794578959538455323480097058819139968230210780786466336243497804909305644018988704556956168844051775837433567235672479907687046446285114357862892213175247015578234945722622996251598789140417795976352939836159218916761279487347071212896781799429371815543376522913348905514837288827419078863893958233528881700242060384911095181862486765013648328181771269038816400911616922357434804864851755257252815509526986782306773818877990379372514555385869841916301972874911884543336017940115457552778786352853516852543455271035724386531001830361835559933858039961851721732156772033254397160297416189795167085682836060031359128801250745242173671134036721884760456937657949259994823121976791710058141353901321486116328942224677178139866036623686347058150309894527254797493665814787678785610694488588032996346537298580671450095774108804357325091177318678059466660194934731400339805243546830524149703158429582666157569344728195433983400507406596491885601842269112781699464401772442514235581946123443739933994535735166360060552059044149207032189772669204144320510064115235187909864101727350449137078167641123636107585706896431804872951465324053274336654524366210101802194587367545465995588055416027850738089917500934646745733035888785752898087311370572174660320072727742838654846194854205933841326390534202789590389952724678850553623670270288711912505006158675757292670268383512179190292923278837641427972016108589110634539980043146626898519496937117621869594819545068785351822348598328225231565699599744753946046566922984873682855584373414068208711875333222794759389041344989474511230383093800714596464333122960241417675386454181510611426222560143287001292412520685470216712894039354026582582728552856060303105066948512192781123005063087237102353621487429281853899236426662934103640025626426082314242773528388551753071543638740974547220173197520941639858845454645044952932945703662548400078557226155690827469741688716416392034683353694181032127362699196455104145251023367991523893274066267405830672372641549729002402126880844863783248715277087767291672837246882115976407469308176939481688962024793865578402127563881252792483501510228972889230685199132362896644760822884882356359550264611003734364383965526569574533653986190637415086190141505143156016483010122390302112928345345325532674931609396362809549429127844094474763876496933620982754268297653752433227430103678701161376648259724290884280409990019321203132088883951024596970656851652031866863683260738670526854268537299820001333868394215407354556904687262169338595887048644467002425446498767262063149378301874307896654699408319571391495827515357524346599685941285064036641614411879746965216622399411062439986176948792081177883855326791920140829706547489099801849021446462727023865529008330474470727536336866964426890991086301055259487435547326492808435399458419262797877852754671286225912386503224319087878344374819854620390794764647720258290757420977825057771796392502630081228602250979162959445566634709676336214695414986392894808345004923332165102170372383959850316068107200858272379444675851332467061207935557672644264326546821789026314505742724143175865296837483476399112184486544800598528589030959671776090844477692571471440234068436844599532509710100693523897352135395872656202381129004668320307198018487104366664416654613401150365068747172566047451278542770362132821321197360252779352791480264546928435438192562412008804274866893146736680481881513733974335557653740281511993618470739216452170838224392675039321516768605854914555592810376739057397587044129045584612918415675562613864412125158478470309599320691209511142717534375410014828341385131150889685872594052175853857348252890224002322645267561776972874597803777620705287707760178983869667297393809703718448742097187513027925908541729837616783897351889676403956413237117731147170608504643795071082946403554153618207345242650834643183349610185909294482272335623176565368258956064602177979042908723149461208677992072125235007242349226314801698448674132176838467203264257045889877135565606554537873837764821761374243612200093195089840896508121403549074736766015334325090405786382390770728168365588526282755405298484564635014457826332083942309892171520564367969763348633641780834357884163539785206721834242434677969588564655603838333914910558268455441764851157260190658418772453749496737213450007212853730915162776842907880529143030245485298946731323383870128859852219015752839428009751165323248763222857874375530920805146953248642725294457462827742591651286258437360171687472799732918776537621993923653765103290387708653389467230786292298341271546741436612658240635732957141693603475660028409752248920783372807950333636917911836337071078777085305786615528326993427418024312794063726593435032755324646191919766020645700281913879111799625636463356065229596467037800247448829747200888581216275049835212741243196155498510199631200672821496388128185795678946565924753038683241458102474244180673721343389346525675687821760923113104542024714889220563317462527605860153094802508803123864143844505243439540467374081196800295742685244737255816847338667966696805124004605816493609260707780967161908536461301165698372229238583460272728999448257692249043059128052008138122740149357476616298199497703461096920232073927753825425762325357876148294177427612753681531619009590166827346542469678818468655715291431877076045903918698384346170768445780974410558813102112968602259838026193841356272528225932683086696927080811758279249148368545237418614712475315937953433333128352141317758411621617808641587570986178287914772120490684880164626249436881108623756316312635402229957759613255322120467661679625163806467261417476854896476298271479041154177775950973954720105651816842045097224688874844343240486449563619497971678129034011828551378877720556537023966779201899836777321748853923025553456822537399035633442448192848947151889769188749720604571482543507353907291295649026800459573429380964526732649809845689768908226881890060336245522764663952295532409562775799953891736381754448612950973579186589760455330398253468244631096471164914741792909938498430490873287903450089857025018603111875586694009317874016382406905624252344044946572924048133868807307911013003845417026385062928155581562263840297109786863128794166922299495606846956038475798940459394315640131072618385622158804251816174740877671021486736656884949861618341515865020969530059239687792374605827579964312513504061440921708144487412988386501729065799285725286079636041175223851991315240207821481157291294562464820550870532894775238535273116196845286950043172686871126970070452754054287177519621991922520232279649324625623333484196852873817241420517436112789383263214979851071581911220145600823693536197447950142357031883657189645673208391497590412655481644587878527321565165475268091640280062271326607589998622552708554513090257801775106006881530759140008207380676624618892278104096668033044549002369279248028377925052544045467497433766762571970589566033841156835870645051350457879400993777798315607848369381834001830805829506009225574392022596501412656461970536190934208677479373369839781161676077621173884457059094361147209006665776941167959003734006154337848219560292763738185394262386517842816261852283773265257354753695677795924178754125727143313296135257501066783358350873876111090041802453121796163387499078472558873841506085509389757209263134644291015774208351050266781782162481498898129463748132269261834780936124526571942210509096117132815223487623452664669269948214462648940699847816668978009919049039151552691339872703014871278924801256212305094947018964840323066589815237442379203152544731842183467544597608581248511814048620159712049023642385976309777808553731798819566867721183573164606356232358562533479262482651953088356421611050287211984286137596051598316963545813234788400772414882336534084041287972118146913522461629358765376675474680172060400420802838273164952747430119203224831459927979388889687090134649907292145824615839130915013513025792997593130154758758127363606103430121481164512087460192500037009151347114268508701827371996780999782767245703499269110977613973914300769773192124694575574987819800412323905410079070218850171228034241452012694409594253392415280915765608062669730034459288116783510698970975576226383668646052179908942071654795616385552222499273130895716033265332091550184431118602682395185142876673559534766369718952877708436593444373540812370086117164057336887032579145849059231899364535511985981725218822876370695563428383799463701096949510069942578304036102626703632550547942163824110766516226794445359806432635471762880621547243946948736750259865811345227902451480613277587658236104589125501008952254118223083724124846360205390825154634629515004277912366591689698356563305799138296113631546151078941681506603440880472099028976420742969225762310492493832282443044409008496385352871710876093279969260786394223506872896191470377706894155733437469614914751680680675187643981865441806110814354475389894609825066899022690949020311853724653160720253095061616584886105489330900101390929532852977268597726033872814408171890806813535037487535859945124626791703150221833710264561953163707819156062968644049097727174534873933778116686113583671309606001080814563897689878250692061777058796042460087565537446236049380272421098534869096242040930501876063787204551191643641104985125253530583756391783557737694344385193146982221252207018902672477128937043043110522005184125804507409218272046770070573448810175258469268826437734694288730209572887803268227366681192487208807826796981726618364090171766926273717405296564195154738022836905606543476968240172653981639522893503721613804706544014065181735124343677388026443956127298782789592366617848639738337744122967079832235217353288484324064949576155004316730112835816146820656679061950046337140894515929576462271109703972108709367027077705599862573186525911961495850175112131166956114539932004177008282599946639835761674859433503801956353188053759442787799577225815734396971587941612824995456189909278679820755245249942783900914669933270011088519279614190883502638828770501011443476270449995635506322479704057169159522410207537657871441795664439377662199506399097672061593180631603573078349770491802011996025268322671119802943174145752973705750486709148010888440693020721988791505220580710820929937966155726225453725019145438668141387268014996278417054614354821840901096324481602870788872689782628835867630946528226211948235274667936635387048866570092722378740169664165915505891599957930408454744712065903773886012661220829382628819920515820163145078080989645971954613209306612693314665398164101304840476966606942903413579619509006932203610126565354232596825246651515594726116023778544701951008847196388833836048526729981761137183219034330617718250823742671443802502161219504213740718465051263635152754677190227294426165298351550277946251532254592913301666091564320930378899469982940664919647234942196798475174988870624026437156692451491080045636600645011098653116656474556489496793832770063007059780563940024823888163132679911466543690704315439933656975187438968906594240070705370043487006373202848362081883317358748743421098309826138308251183044446268526765163691360282494078700438229229296232562259358777996798588058233792970813683186746083735784555569817045489735085757258191119894154620103447446582395102057198348566978179202209874080668797177206747101158191070942511404484475645169716368522139926154303830695105602778614223623638789309241749802839805970476968062682087772111223005331132759510963666469848196351689383313432194521601757029063886257565693777306640017313180055709009205986878988366969386144855296023648147315501334673110816902266732850653970719146106160432244400291702977172227285205235607085438369356083692816306719040801364564469276894938530095493147922803518671638930081395941937199247836126467738315086421919841594348593496768964918173103149459247921094279495378123655817575807948944356730778716296050260059938123937217376743697319041509036824090223225713020453497535426864622113184528181998877805868132100754043331017294316351985445270880001512580456583326867114593103687513487328758199974991173741573599508414785665135290215018214158030548567062613615960329539494827059453754302620488559685219331547082666820395766326665031639183761862121456374359548322975012783727273584924319647383117464761276760869532734839626128162220968852042710885904100492316246167155596842493009948639238407396379201579589544093275278853831797518528921539779829576593098356259557801424162574259090868136141402791438203083849924903113884354347370815174218637924670101151907052111428929873837822097743930979130200877279618324619809930518651533782841201553274680256758435786285201894934449434599229877171100534617102302111515451483123780609439144595894527530154166103522135602363395297795651836254240177095685451235289644585555515982061394126054673052844733357530874836613416883626887218352920520834185079799597593025906584606148047540389317319300188668023923832241356684667508761189818103860598912164656391974466938751658929144786858459352166049438029913655432423181058754717388073958216373235869394520651991776545347859358310573726281440204139096127162672635843254916808503688049690499945176230696533140619936754118731744662411649764420458965086383679015247993258612594240538598614507117229600304350976723174136753223002281628430507652852055488148365079304031472141810200787579572181600329845803307182460000023780107222288234700259358941258767401330111120564685857710638041324771353967761216834721544807653745712208559635021450300153642224481612274701932703211265953726130311864963668273742005441566121370063247222184181598381233216049271467435078242900016578766541864928920019305342474148818968637281246473341509182808707693903314299566654148109644734314374625067558032421498783446769247606980444422881807326586072871465318181796701003702743247152126971160582556683086250482839003190104555236793298693555262415642149448239765996001924054064598089084401723782506402722406827553287595807101081173262754145608033701626012046749629231416630170175560667344311746372256750302628610147664789373804688698138595379527614953965944755657439569837356632486983600215792263129759517923674805459139261422043985466894947844378247606605423525283530411791561938530250215537903525849900613207222986458523953946308142522473728807615064886734772464978071537768315874356255008836046956225473559392779508322757075178556061526325328855118854806804034690955664718454688149838648326107062038899647025587085846588104374188951536926985431192062172190432834659716282952791568143331965849450193658165282303361939891378758238995822057878286978622805016324540500319872574082135662220902772384622447215613584608583604644315173458418895708916319628576203691189966387725283605952157082017963399156502636928586187515816462293311457372894621298832514721238057525879706051922696197412635595314725034381269617671116984451064082467943420486088476951755956094887133266132628506520426569789356390225561964120240575253667704112133983149785742791841818428875159471164544913308392576639981752203897525363051080259187441512308977687978184704660430952399329916927986041752289993840796320265860277866230499990023915606658694949908584271665403671089544885512464552243591995766934261745841027992059187582858210600970675790096239151736820777861400953982513568568389378298419132469153945627700751983747402048229148268200274092428028745999308878151772214272364061276353906054000720179301511194863804567967251105102430997260233571416888620904419896271619733353793759453684939681364810338285355672093708464805711539727391894957697598142195253952726086712102208791625337066160182995522958401655491770378082943078684702999966822600821363363368416152060437371496459082896404307309314414209834023929327721997969632566700747083823592536598269843113943500099370062949141824971671105013736468771228762244497470288503741352575815468316629444988373047456373164030763711165901754809056666673199914466658098976820688258387655067097587785711839037453576983094821683379118059040619465311179767946491812502903308848406194776513920514186351338953622497517554849319472874833161954673212444994748751614935781454230521296173324085172850263315936969708674995759598232600245893534620062820573364314178403078689319495984116016784523049664981440842448712607422418201337661529815686407647594879585620394339549024005034053341100267381434418266872957836623137921416232326185983521218335068880512678769607596944131284333757472260481158788695530621649818902590321057066956117877242006505943866578869772600506288485846362174226436306689761144425482234634126667844448036807711442485568721915638652145650460229461609549380896640484845061534791126050259887697665394391620159481425600066398938405121289179431590962031803088240867256466694897977383611263027023201797190270036259982855380097852245687749252572821538943078329784229314467486966796352767928227972402879676661394793430954573757317522898390197117566349070107446196888958965119515362250111806133887919909838627867632713787852464581233592153512019432200230494236656873780442594098367199604028161637427028099336280916304257683131477242484970626134946332157979821528116648792568941933637128272609574357937247665870549689162883250950495862973926217135503834122543805655795804650297501887311101141450233402283507603969914057122460775390748140712640300617225738969841128865098096469666601084614429145183528885983608548071261925253816622295622384378066436391882218820080415225021093509300450862649884126739930716964138698964450722072625207906412631153344843955210396082597013539129172829274243240101377196323852939343824289172047654165800195379064142036796636729432396480055476559551485636375198353628222467687190714761786378701007698398227238678196590262896758338374788574763822946225686711004721022122747343722318262431162449637924723080466609734102775815008816105402947750781236949531952698169943954998966468559726018538151297931558492843834895433688559501110749251722730872131450584872846388053280223087822213670759098027258259411893947415549435401572557249631778164595989868364534848844144354912717443238620067367103161118629779723221173077719910934570619473018512932844022264336713335432460353765455923672602888209827436243874938734842420983089194995588416560699099305361001197995377235468814522956347538440612272852253429704124643916967662429046990002722745390806223721507472190255232792044432410487026718852874691321917273945275377020053928545774013029050485110017905764382904125926218791267505813179540044273045056983455898849833780139282618141384627317352868513870804393129410914768158852301250265984176049327019540759827877814116649349252366529490624494814484204808768273159918517965185549959305383781007476643567496101788478953003925730440628951028523191968893448664100381849513539526417246954263783504955489350450189202548864386107729548704151950438161832270629982343727134712308183022401013310061350259988080984306550540895445545741009710027788523330412924084829259610058702982776006512639969507341460669089840634110855677679277240604568554202836116528034683499858791568266229911982333740168135541484780696764200333440335949194122334195824291277958060555259022371606008518132037406542698643124377894397463791444216377849231416932660351768148176680182248897932048968483896820225396955604257722587726397440601568638876225130283408800412247329250156256007091537727252053389388555788744698909027157617191208130074003429760498502884414476831759642726649045652345640793867637194851759830775552779555803278593258269205581575128366472419921443230791340006540588744757753161114165953215326190496201991697633887353493537859372755088802341263097814316487446859379386180823361588483627843362696793871593825256196143714592494497587865698513733786532960975223452494735543564394919347796691604538410351324248925363485972669133251419626748216410161127176569267317339229714688734901385089620846823583261669487128039770538482457008046980353586086057037892711083739174949509598395767283188040216805695343766766318239283621419180744584341758650001159298749157111095374120292498961866477403877478752305866065089168127472271596020392092973839623674760765376735738630325863910993254512651192200907397861251900026762345392443264714871314129719886429614684818733614117266553882331781681840495230914969134952674158076519781951914077138333465137818803582656847280522401643737193616646735874530316333525008586235209504760923497359291173904085665322425971726274203171999112151556668212826096476277596741576175492880268698327478563254029175253489970407031799237534982618363879783977134731657237961692534665283118425706667303456348985296665077738878662527498766768484687631375777431753016328887489034264193107001699469953177630269637751977779807222932467664767189922005972674107105163110551475077467493490478882022907765055209416073280006079156026230854252509887749484093341364047532853378885747480619167980115473254125699543121847172123458226617723246117274989621683658339139434982975885026034736407867874311868306647289398619921569148614249649082693545175230358311161246814717055313254617022078523512609293932110364349315291650502271782610115437893079882780790608442836488592979759077009680555706621544230713734738530427580996175046990659214374489596862418265216628861120657207092249041254596831057427645678009611489459143562627318120193807938132736296883665952850621254000078408184132648025035766943723300591126908643007000697096629030675836369360203181791420302082544244153610530020174558030599919359712298484556913381063239182715570904247856103870912444381165151626543285814060551613808739442656741989677159187827463673584187724868973418154924813093649706171752824941766555413633689978312349424138632281812804389279899222746999123567019197596130186301708050336573990315515576104719219520447155200260391747208312647415182115521130621503591628909512608349130076840265047309495380009169209375877804825877201431333641663052889809851100278347529158560926081892534858138250996051350030999718165311107617356409401281273873330215242997177995465072889394528321902005223558291568333167195661419603150643594140259485721085556552843162639752699326399155840025430557996822737642598672594988074820906257937232809128257499871399450941006443721983702100880166217793776072482660364523836029979988516587548111157570054314486699668368563361505899120429442713762206159594033899817547146385458575542196006231799946002368517990320386274821192038556022324525577906792024572407523196973211368446947200386092531174168341640952896431254391017101899046602241659982335837123841182865120825865082433328785170672051795538597777376370566074501246601846699971544709169891909672538950846438168473712272052102141585982494890473585922473726993516091555862395175019855499697791311008032614828617458799931187435272146328317451846978183750157969708206612115760085018904554708421880273602067608863478907693843184209808973155327927060545266239348422136157834688352884058763383501893101160453503225564131601010633032798085290873470837998331408197455800063021967779388604878071864611374018429278149793055021975690765900072641107652881526233082003559396137937404616646153167347829308616142657664406299936114372841541831761327937320987121009807557156019251619675590196363984325492186286295044374599650611503504761048551702628666442165539913059438365607599115783878229837180075036399874681005216911741968235176807366347572645711136538815446899074208130720529892583164594033455006485105798644937853574313554086713479023734625325761945967038943640911958550952325401969839543271758814905102108873082618885647919854805416518104843879851710854447245948744805422747391483474159313031447341587216831670037695586980458512071040583251231980967308014260330766507216315273717459014902400644553580598397026463452988408805498892116906905807452019893603522971671418176494314913440087871891745940954719268571640561355369883833736117735215246593020406752975161723259960622316068006682539894131238780157476403818083594458803537953660532195598835541128393321041354807528699111352733477339188353229223378731180660139581638055598321847854821019452736622832704678539918049910905182119703882609758043152048575770647613023835885768221468304347898761507013501786287201358376056831085205081993620626779777074060971404281979547351513476970202882200914335841143843947870021308800831194815445150424469616019673585781373622933669834584776315786075554632842725670557952994162905157422975986874227434320510402169869554162511363985613499210638370534585271619973248999200366389970559519953958105520240472252783740122067531336602832352782410889692685488621146427403599694536978628410780385640856102209270041044391591583999411485253912908862696559513943544672804858467142609268384432434551479991244984424804300322957476242117071135385889379843427973612778346095256673736821089518073778917508434267357504410112212369957044849076819644068357654130908030546931570769775241655150741521090978227746293463877521726471815874927726055496390287387501209420184729731915710707351529607185020275045066224865542236938618394901418480264183887709572644392151483483158730321523966031829169835210641673037714406031560683452105408235070965880240063744243842943566999141630787789701351059972392371876655114308873633149601688783618609816725072881585758397009899693090091415008602282734251065237029672697122175003728971097012518616023518777066221186050227704094255295152469027931447707026425659003401174795179590810428124545682674126602834593190486380926717088632034622215568417164026289772605349955626242566259758652997019276248362488970753268251691927982490647890570981733522107355294993543189150240480053849548355307399147271003739599143671045999385472336548170059225781055710338414018326976714568335885483607490578792918114576819274662610886187479234881897596057648762801767573847853294253038007908861902239394752722005260682395046932802106000582064067039014365478087333859681555399145995629017484782236720318311157011399108050500526468689640514293900270163720030413522112689356966575864978476019888847011912698856380096684640166080249705003132673806441593304167384662592144551423873856177983490998454033860294998541289631964288430034837204937003779545690434223515957283767000715775794173528431330132892329887067114755376105481807429817980263987616378734815512717165109505999180280016563525613521100097719927786174455795679535842798101642814857124482778882479823160178303060232774503343195882761814921752108197562659489628216348349179201033399399803061154188429010556568693651467181155843848494439146069694716887201708733134635983222463678807698875889987963359924507660969706878859556407713656252319998995591843700302992129576024294147536523627672407307662791371796727604083682562114873108308304778558266136019349704536668564244266946969373141415108590653523044464054133387018853086278303900025198197363244278719636261099579611176125173265775170612789919572532123416406632247404488888163896214040805033233534258577054840824853905445429204512113150993008813308865156690010549726713171618270696388597595970474495176689561950092206028571100838519747697107651886787381124430880234099361786599994487066783656984072819711806816332589855098025992655572209233512455663540249123460763372428571578388047671039328356295111329611964496534911457660712978071525110570326513080539896044019992922651691739879456536570597256517059350720892259908746510113206970264725283939901304888975583564619475372565569479055987768846536360090644721671114233681577554870969752359320201704012759350975483737080668384314715261667354087335416377487129300151418852419935813694832963863765547415593178125383213792049676461258104939926669755922375610227229519586693147755791448359580698221561564734455351781140828251528171287934114186546839536365638602722857047839225031200382898710393754693167307876395614783593048560045895939469181815809987046948235789983490893399307473844448688477947025410557224443243407477663206990902414774401806677419847917508568613233499758239631900010474377880778317313926577164907559704925544113623843230564075115064547802353800157832737980811611066674524793726774467400616652873090920396038527649355030392273333549427422742799122461687915072152413336705426831988317596634672474039988918255092641878724634478048920387969222126391302864921473385116049031549620731419826368823399693315153647187989640905334278518315728312811826879166529672068402135240327636612323128048506673508985644199825945809899393315982758714322819495856655187046116818873979917098324103252612283312625252814197474006956491925201324143686382371035110311380456405410214688506086228638632569675004570847588485209817365694876836951014591749095934039548793762012669525483868202593616685379338743215847321360328712590852572168926785728296217467684236580060768272359477970277018296621130111080466143595718821581431874983852754313761865392301365826698408324628613296571055374609124203777207343797440408058947888447372244606998094852416750683428131888041623555605941557858545931600299849110595303996948522661154747385100642926824282558486668638171336458163787323632667118653705002683619921115537713676542359017042638064367170879167187156937136522873418404077341145725134828551836866057265816763125708967359493400978188498983562622150120294548370920346523097663066160807059761397463231680905115596083871898856732356232357089910418578431424845752937043436345897703413087112319697350510864846733818690646744427004401904975521490444517432712609442489401549692147447311565115013573115532112721240163129934942173623328171083750225469653102488490167367178773389922614555826034700252034685545612004244519745718088610722675461075965114790898734565769658699066370936283925260003460296701618929326492807104355782262573189494318153924098895268127466548049891493645205576738720024834559647783435287871110035057613551532902675063709198649705015891044674112844864387866516067048497725147590089329507584653403829498348468162831289153889603268538954144520820260819669416319335013351435002294522947118561340306855476804877800808441171245874517640558329045208006539614244886408575692318072906666614059412010878971430404103199500989469438437420996935745026773880512130905939150049967943301082756997791057563310922981939576805015689606766158866000976490772456547525278278847280968964525597636054950879507555182986435886713018640362659401377043182175005149910988502296053321119762529029574706882800356510771396427542456071451541154186734891803274407414249598558377668851727772538596869555591981188980434049303786257807213183421872520158092702439433365457152243117188626201294416745356425603047691435607652580250490998559905255623849130668612424685650251493044692103520816275887178225245632552046755487879567812445285269599413729281753125618195683575869518492736503224262665769517053907894957960356378757525870301309245363196501575597524598067693103405466085053439683020760267132478994926576816496476758370133320726887751614473157596026074205350101662848706654954311757261635637209822507995017464513126980582396780519557783949698930601313875878504108577484849619919693870116435911353847783683965811982262494614346077338653844051051616642697271143232364190692962303748955782072613240768856071587224638827852351176889807956281116177094485942266687866038200227075059811587606769847221121437020404547864555088125980073945660455391058501724734785618759391332771400234296606589678118487526590899327001715333145272069166925271904121864009662743581081751064048455217120070154055172989222317185918639273939273438315122046801591479467491326796388760462759179800314658332621578149815687513829491471660105473688913023480215569756689897157017701174638332572759919256588541813658204618539052397819744816183362680753006562351299096053527675119658119717553989579255828088244273083878690258172183847088750040243964882895160383523884928291372909870345108042836521960163690053326286755246112912267100689709158294722402448162101802856495482540322218052423796571814243784485562872780946478837182223417829652017384379809803445822759912067713881692951901514698291294160208465047119172488033294498856827910020771267034329499106028171642475535058399676624603064627634368185259916868037384240616865138896558270309100068117726954932868488382887064301889858397011566129956218091664332806889965016883021651971468554033197542669369561155747670019265972455468160765924709426614640193298279566219434874228764015763097492869162947137019355884664305681521018178155734419493916126699429540678538126672900474546510135474090472529631932795538100624040372054934811437790627288983663659779307487624547028865290130713036043145193131222473805585288001435157708305642569283367682423473370052428565925417671414203474504412140331203725391858076416465091384409630866246943327174097675009307560389338218786354839897326892810396238749350707822255370056911971359792103856828946908451671489984662044090180286387872529041151082108351540339003132060285464262029223732596385453968661548690609773332630016048934725074507238300352700611832332466508081319284489776933264109308352565949851945788617797262361413711570627113687294877476853140339310683974791790767564171221356182120317662184949661687071129732316709965272565447086173093670997621548865838797597844368784266037653696825534198778160150312610482256439338979761571677642950442535133018697594593550206744776693178116601032668753525939675387007018317039400407840879045993597345241025901880798793772246600449807070250026361899022226315438987326711140857165144392001192498395597334697431392596366627095283584323195240438110416792390726096123233092468986173225611222847818217159534658836961280586020307295543048912657710271862794065590552589244654752784485846097672731968263491460365206935270485830303161231835040634571194568713339993872635555353264069825114340996521018272248059694938359859931769349380553189326749962778262685727424103445184500727716146670013626458646475484453685485241554614737145425943387549406876496867594222419971038637554524276934360665641666671656102332807524225514763448269947021182606301924907297586735988007298115284079458386079735307793193200508822259987145198129891306561737580468341640432181814735276651642977169093011092351544161222474240102811033193266793709886035851037034697823818453790208565798916084010806170762066681329844438712270202863285802285789912326143653542733526218400590029091416912559762143031977431585226035423630852961172100866102664477242773444533566682570961657926039480310935947033124613728704706971187250892977007402484044561658426275548929254675424299974507136708807623501932047692723964295077462949280823187420479436346766863324228979114120975593957179246517216561738687740903841458238246256277218378015566241477988492129888682121830305462362717584361420132908326131428701893216986462286101736449756732902021337142088674613789177152952057312390622796518402523477331670544988312683716764984617942765321155131435113096069362785836318060352509742494150225927455361267609053622540994983795285094413146376153942887505910426675100332296733883110187410788986131799345392224017817147369395305846935305075595576990363804464780946696304202231526639982456586338482758384217546145001489087100002468380132450055490059422169052183792921830427100488478885236667093509214944077753413206988181100604466298737353136389350499316722830833104966699697237071335139336029500998728218470846961216823018128624217683172990975717407487070290533570831724409185946917052502560670307451681254304250912775726135244007358818658652773610813308952843763154780984258296218836413850056402967111844653702829250719337620059395441869990071546800822707961012171923754734238496658444184915791540873325523285292822324225291159604490110992747837237592181920984536539988881228329956931006304071653072569569014088400725587625672498985581444170129526234582644306417522050912178501626820099760518229991543792626942585433017083500899699504060243736042781065346761250204203182328911181341827976668302934439956930313108396985999972240165125904075845209591109741624819294180485325054928962043085980416787205377868092587924654335106533067969697772930757851853086426908466080961190197113360015123371156803133958637462828945647328322482821358279349707476468987525336597271071840625957721447690810604274423538794378476264238385726265519493140425794394698105320788272286449336091971680371838158910162746389534650679282982098157906361763339231834889251463406134436270001750454188168258625752467114065134380864316950553509606512040057218342705359728978662738424498655695883950885637747451392568599679943761759253248292425624292348649247155049759955683034633774743154904178681037411792040355383956488315167595644088123570807298604988982684601342264937315377065052153342472777310259953588973992387415306916605577530889426831075315090849215596785855159793883621344664860830557979659667548109546459524744569435344830977872833125001782646220154008769742158298070087565177085912344792331196319553522828203917515960440443121431465142863467680186499675698871528819727865675892665221488553979429630809598394996445317558522918627743544647123829880821163401393547775612336748054686497871042302734191007695642730996192620527627970772936557790810199766069924002404584536194077285736743600148145751772545266963785128733076246215459046665470866398213481353214557840417385570098180270999072796929959629369217485802261460868636638270037052098887175788950892531422697598413405988454129061743723422371277184321972440263402359867015442856619504534119368925543379064942643819852944024023980374975949149566350911664271752612164358935605001563702252754965593470191143952402258248094395996753973947022204420643114840956031041466637242207512741308406843053503240510566726278816906460398154883526057301201270713066619690985014263593975150679397957193096406046707952404162160283078701366067285326896132176868152621159647280128825068641713680980036861274317136491447802533509929201620923842160898382406150606258898433090166915410328394673806775091709029628149202510042367366804160646460446935322601751747302436507789758642692612813270492880156163217357535593468318288222455505538002238756557054102528660184887501936991186086824963460546085472633347141237050676392677198300442093934712873366189022368437702975565693134511546734464712395395539425296927824726695666854952211163864614303239744459888903137547971039473442352787289531492521227170258138821146506883231386603204603055549560436789748592633206633803247105184258491623101177731334008363465070626721427748200418956265605932523198776871254789499844254448127011009144123631153525331472130313554559393876637855329078389971518767048803097051645938220821052951882001364239556105962493467340345607993009532702542781375959563546427594044675963866580622787017536169174811575050936500553634749226843809845794452848676757499896072872827448211378730983040237316218152742418306061174877585531634991742897717316841461428365970428632596821145614376396604889017460783900065425267794083224106695562190987735703499480487330313891038159923875665971107944853930979774021650825984013658119653026516069942396883467069244914698303321554286876574008330640053319148635366156928308687378577988948581663231275956931267748447763044811497109566227013079023029954986798349797425727501788075805013458804583290690342534463271372151542869243084388097074077011031544874920004312848038701761583432939938377472136800137292178374287930952922361652477465523190443346197313993431724795941740369101939125205840793732429486314876667393172668414808909404714857338755132477957522008155982551045905356295042178814667676822128173210426838463163787508969007495769119080889465947106464583921532081057116867402840534910971755495064690352044409512231192275763132146569785667559971306715678751283108391152519212904205328607628349454819491867698488906188018227320060497839153653774896087129796863424407670552242834419184593879595387287884360066051215979705011425501619383611901413230673542963323581112452456619854731081170194411582815822755129940253244784553388598609303077857804105890951703449964872419280830556414239588594198101061163756982808450450267398614364972156325610906581753318260979543817837874435600804145772585838361026534398076236919060264028374938183434361104453622614721081116021794265907651563962524991899724276290484674181033448802750120933618989573744961239486812574698643558517906808812342572646670008755541499556768669226608242633013896385330956585667386568677877123628179809611223055726035398780184808126986804789101759012080112236108097784682055287719442111259223502817549033932822666073967141300195784477389483925303953730585517983174243560306701301436429040449426051439466201263605156669144367933930106621785842990023304440736029502804186150464970471034215410503523733295229942451071189736760522746890341556801658031694425795036774854223693221923380546876499406676542299849821012578636692288363739951999832484389552315985226011580179227069968941176815342087820995399160144185653382911239408516771396845194260174883151737440302584872230257118232502243706929673961387344470344211142266474750271760263381796056202883180495316595811280189230228569832872315080505576332143191687423142272878986457457392473969853643704100016564115814050808842235604188303266054148248566148345939170156874517508721230657347986570816033349311541301534556455407802467628865892658056002824564587371422778911264932508341822333089134113483057362083884673973569252521134502157125245167189627861759082870865378297608429111200909588550012278852662733938328882495794090362938590878664394464294809274942972615637468570607321659608296242213566426754398072592304532803583940613986866295769487627468072990792287159741088918885559002202638673409995157206352435296259435498227226399196454458824357143852886520985406291933765260202183454490273932298822154642589842430807768829904231331651599839955887472478491047544122240059957722177195035808428160270923433104430543246642643301622902481222475900291039418855749267822343027795706642282193050114595969022830043810374855172269509479810703679622643685561738641964069752771293417734345013766155637152451643965114768264655690015210153415764204138812487514070296397902305405305169154034933884756437933959098598643956640379629126283645852957100318575412213614257138469782826701273792780686514791730157493913180678806912697764528071595318815384458371068815288990188979956125244148000534717375986688435097839093606921280985078055892469682677246806673463764648574599845785848500839658421924685831078096497909875335001963776038407218688785477605664929403153048061328934040493985586322960737966315714868467703169978098209546364354021621560417216332908106363119919391944703531875672161569316291196258145849076752714683015438543795495711792562846501565646788266755202427213549131207758014226743846536960938212883071838674201351501732639008172709982960885766904079259316645232263165302711251892824702325154665831037830799441358603042781464216424220148653761536538608459733106933200846838070801090289663831015168876503175638462318356015792728226030814840162900678711756146543954762743139993840386184487353696934662774084880514271773299693003439268315049359471795177988003787519381075722668680496861077751729076310166328185449833536575570894552421558913505584940745182586337135001500289102337774648395030320802045949464882075370661858135613645936792727013291430886034681407308733332739054592757520285095779288227070868806361567710360163111282591996822443745625001301221856201561571229243859655297712479250477997562581015787067779190007482188458923108560623557272889535074677754808273098346161747609867225879047013941395268216607528315888775921358492491613910575713493752262213786610539955802885226056986943375341001218252896956190697393785731741142411793087139144356293659570581242364556574841231807080483508231243353836024617373411791878434338317205144295082400482926709053790534124216668926536023046162495788423284862677010874789758323818136295952258623111374209617774820363364395774705933556915435633065207173180087910505080694956201836912621737643955254819676751475410444439109219023553388967467686481068425830661695647321775171584397691329149799339724493551574989998560284242593361273194567089005699758397835418242288781468491561455772707968325565549460868045797326407179809835645434904166052888127147263123835606797998259797381770156489832100977983320671309428092758906614714510092065192982554176835775061185742973113781353853235879210473408415408589845252726759855925276872062681681458172693272748795911224004268853287006294148991700769430613967195209229072957023944216625976453869252893901766850106866391155704913973711954833410930649705107777350250721221747504601733698610228043299545408636624412245130815389871957568356466414366219100416398448334166674643792680771560817458825823116625652698830862471124929096651289228060509773914335672169786592188426759113991362959554743002472787841821705436997489365578522523949888303575910640256492169549730021647380364375451451491806669913302815264382423413181620202432933318425270224914067111954910812752322590415419955570261241938615903023225603971895165258305468215528602167320010576360532577913740433866906574880196987120291580905309390176486723464671085039716089512768867320204619958526758864845566249615318675036149116969682354269294466034023134911787251543786102281175435138685986929997938220661500487282501759243330931259553933185484446289133378610596087827901076036090159500120927162032736277039343776543322518878037240424217645130544205092678270859588574233125318685299922096386319936512895573515013856857874624414574170190449133197218656518986363764322168708047652966632523508246386575002114759145358375418044208620978791695969649429757372510215462554181809824955452244153694730041664724540479490448296760307386681747729330166114170602808913802898669671932292344140452824678551297658459169090161242726530127584735016640521711457739610256549174597186644379909579156026518869010037852831002245420775330661979479012495683779969960524150551088267319733752821623370105845652116349155061765936512681128919573846569895924537104673078370010094976082879378632950399358761447059036909517825568689639799775528086591304633372963428798558986638019172355119108777264524443539798001296868612655519493969846939000903881026647574697906421792171707947949776046279296827809115127594214188485566215990511960846781363465272696794553778355207740514881494146771474848054446973445364920557411051757321610651095256436257247166158518302798702950640894935103416917378919415932678813833393610854181891706911185118549443771926665764225814112153047815426644502664715270834517022743982374019428749870619446302074647341921875194423459087033753957720254824426052735483499171944721622736263284238783556030233301236648656071817549034899108702959028766034217327106339149790446680546549075485593694256412478543327198798277902521978413623510458954791850981598654002191840135494386316777052250418617738229019703590766317138248163616416408281838978573693375978956016691157859670989222592947249870761499898223339466712788057387872164857576433303501554537571795057825969806852306765187961869706108902674644604643088989334666566405883925025393271438795724873088050473133464507183722570434372256478907172683362899594337590611332164393800059727051993824385995063069489230993349963565138873588064620006866210357767128218691040340145759756124891567188933182182142224839645412217970454988163716151735083862491565616965061059392157592368854812354116623477097953839247704352339512208382150126754493258893352075561633871560913855886757628859083416168096092405352580468064823007622514740448486833755919454629755909070951382377892845675138786638411834474985572000308055578803530292808455356260080291777097183439344777552749709276521918910623801103635265762035017095315575959556443949663973529702640333600788225961831243714992239414963985341469879899007608311503967555599475420673170841667226634410396994203912717072245629924418275333209853312518110976406696500952035806779607935958207776376884764557100087978227855141789885607062790992858699321970825088212974184364199027752981175314293080326149054530844150183050225164662271414663861571708379999357428701879117515998381578104662166026310874966135869270172372888024389784572443525006347071803418625063855393699290923883886027280375293898600174831728892210286459982977621458214763281318955882413486578346027646279377337671281856684623659122520806958391698367828290437093460815239806363577097483903183272940789591194927510991492361892208435205969069582493859624906276469434795414692250770594349686185707470077006547206953703032330314750415194642401761989768554157421490633095527594331298433110095388169414552322643437437895132540538069758188216084451921651754137393335855381707356085441973985353424700557059788282454082382089081861025379327841231767675947793385632771373866134487383504368680450789835467270064109763946178359190566776902563938604606670150645338772691212432646065903911739525729502392198425754916816527834828102181297099521383418806229739613013791968550578879813422513357373996513401858858349082292283628935917326966318644324481936957910688455399146639365717331406571203899542111455797802092712297213084423656506453111854171073974351828548658602719825223526707882500583712612434297884342585906347002137873353420233713804310872722752345818729411665777050097056434281033729558287920127070005553514447390508883421452315964555863587627335162287626795874372242156432494295218012186457053446708969706129663500938658104333770753869748293651001176955885847646359380847551177496685756682860356009545801786563971497090367080578541318018225524359753079593054598071388065880326891472278212191653060745799066735186456872729377149119635313470132112693579504167832621651059851923637961810847496060356027246819011529840604840176486112171702375219804598164460216695934964622964570538762187091026188011603682486736637841314964837601241205301829439322546468747546736239921778056216562201520187212035404362846566367682277053213270323122835346689279059709050212523389170727133581588670865914500422170513277538963231008511801426314737848778918080905578839846892602294067380695526918176997993813385275091243466879495803265652825781560097507094132625920886656708137056374673936157844166357575011223346799773976187009963744235574559282131435388473066280738307215994058240639586698802151443558434631664631438887269925011247789080415070038849949451930348003831151943124615008430406589099779664237842743373119868892871084693740942291135757594355078184281179370983087971502876748035825898978857777912987950826952893757545049560777358513814021083461994155939161666019566948309681695387283978546871879405973843204526380530302456772571084279950362583849012544531454263629876622682115651252114135728123533173285639642145350696125152811731174247354752465843670147914440605728936798130283833923744378083964552810874269460635898680462433394326085752546856269621141801990651209436951928456422405746468035077929314812515864880149641878788794588796736420321505202500973867075678236502944330299242785625786313457548582608441051820208482855732483383191097337401232163293897535139097726383086040692585497160595092817692784632894270443527640670827393180874087494075121268530363720755264370369724578277062912219899856990121648587602499185031391420083564506820586161824926060978265654266285674429450846944306532179442377291694258937703758744740599577533325436818269129809354807495911779467568884807484651677782563566307807888415227098636214821391829658847683425481885646039629861027905985067160936786291451707920566701209944250667719592306809927607223002091002590874748128955606008925662707319612207556498187593573567720349512232383828425373226139756955427018610874279522903875319119159157530369752288143412061399534326520683238570045960692859287666849046221609254998578887985032025902073796200927706358984520853126371117271510132547223284728189685390144109975533889972855205227083267535889416440967893897821295583203109241867217913282976715551210668828289355679371435276366072159562696717047251024332235228418445690268710810878809116639397560003623428998592090849508516937398964085962836425242555365467759497133333147753551544217357117306393609282224755285206575942138880458665892802462084897540097383478784420526689048535567483637759379152565828231028169607086232434427812519918055730109580025488623909589677367261665020385920717056164996029925063100373900538778581977332647692729114619350539886169816400117983577326438351124711848511636685688446207919393337940156799338458216220346465134217394329850840136964159980393126830857588465303493438168261050891516434808435785334871349453017035901371847329651465139842366886203883667087902576186951142279345872405041809227647837931605159796766451720144100013230117439574058216432856000663682389258593537745816658077870463521844083869504887718515562071266543471637227478919473175186774660051408122040407581685018742019296470324385669916807260564242478804869694952834521876245226725603979134946557948780188683240342939564630458918391497501131360603279747301005996776746405265323417907079794436797065129223486622230058479721212993889764198185318994454313415743488698556649475516316209970511760485462850129254754137055138410104756860117522654208806984862214210934031511927447499212368179203768275765737906101136028478246418747825879895006949877576065079223323130984806994857745039509875714132717891718303390410570995022021351558249500719741551126008777766720985635387234632241242048717201815869108076252028271116296083527847597767087035158824294992808239482619698252277716194091673772169591675907627040078167669860636513304291268297348623779155562104314564673216731622863136309260865974188546924120229708190343899943633073969370892901957163720153742556064256230427114279301725959443118747265174851879259415447264760785799831572694132366883255836388325368902109422706304921024615120211501781230958000115882081589570613087182880865099464993357744557809849369655678488899749224357328709006747440005888683830524190461008746367852500131123850055090187344744708834105516443248442873275981099482778088684662218124074249402018911204333722893800303744000024957790153512068100497305056116297031427678756004024098713722344959607192075163763658476421466789093464269762866711964192372137280407827470994228914294695716719975118946079873255627305886595040158517638927844756817728945577594860227862512379198459140265000164098221595751910204150360590219958944807648551323593008780435754099596455520905795247826507601307824835992585454577834122889073797901425655469013586482215803306180538949692419753270469186049857571682895179752235040647839609618716391057797957255065410732857192880574200851509464056591122786539595383512486900540387608888883811571321071932911102836228413995422333323119264738288305014653898211224405703415279507785250040367272033681833535962147789071433437750089241371663046356982173922318969644939989979444200865246115652750130038839089555335243180181412377290990270251675989200642325490761498377911272443489674567648848811333881805998397341458954735788698794861479264538777455487506155985543076217015605067640274700444040369500160264512148091435005346883237133201896361180298389813994881400551725030190324150949757734284106479826082938243438447421477536915959932647665345934595476369440821117914760808702467832273611743863704143010730093505365313902661599079874908454327254824178070374571560553578916209924403538661539246267815832180855370710696721065958465981224154687895226871441654568388460670920331704665953892050731172210970574681780442238823937086928689909949198347450405318023227410028938943108465321159836802899128326484392500173426685722350759198008770342658796185312828477339832445827339519605595780968522807017779504627092873145169548518697655820464883555405759088058005708019113018916118398996525638899993972882509929470684896082803215394104327544354387715222387145743311847360344394589880487774667117866561060866732451033893318767291595874309451032069201600804708731053886032148235461392395923928195350318851247634865451802494069556329326778451487932665668921788419729264456140415409271346182495711118737903347818826905015670535238857027274724573773840028052538024024907018023717472967274402748847552679871260042639557830437082889840984102563253283278351137216311670487312259160946147298439530517340390864018043511487872463067511300852157802060645204266472215014550728382471525224819054211844280219702380201178226031809311654345939632992803055842574541776421469083155700744679008963938071955685141746603170484285374033832593511941361986792673870689200194090356413182909806025939595813378955003623549102120832181355418117013987503452498131395810499097109079860960012560715138452307245742583961762995809371258634219189220867417237815560060441999970307092987887205889125204515486483976848445735023210029975197338114892155959060113217515971603148952973622216577650025408834955290621775878380829902383414369611059283699592771965770985883313596107853397010797204316292235310292587199704843156048848506254871663477361092138332173065481590641558290881764488061789424438843808603856971915803372728525941235641812844585132313721982161037152905426600173564079476949271917703656481900756063609966436506581402756380270267768784165693986940580973862809941649806695221763247578805487720237398006938543417740245178283634028643241173261773415140253209968126735523606454053761744447043989179817913129588926031216014403521675138651728972487887074073000925183563704986182919471709912724470214401014386177844048739943517461262650671447102951002984557418877352809074036665772159082688482262398694219235084419198483710340114535712618032924054626941256370798755910075169634412336461772552877931461212611498926717957219161134822023214258882725803567875064717190415555448636483543156964941583434391292877441143847332253545261817612048136710650052272045524390912130155139801461087006026169107313036784334822714230485851505881723798359805026284269135764230556132524210816143317577872482914870644311661373409012227650478545574704662110302887533927740233829460014817006698577310122320492345725534916751262708903612662120330555303825552258696960374529806517190396045300616319869697484116671070612704048868977663796508289183515033120052989220600149402596743134599167431484522512655996460625161042045824683105964736483895935101798623957526395518500502082585534189585548130757604823765200208839381727315751144808711457434354091132399276222062401349139571215676687343175414466612703395415313537306674819244386530773744813210113452550867342292552737666396037896722845672352551733956399674428415397050693071354467225488783874889765283937784446799203965227507594362491741569666735198909199651775106524307751621021684480411014021776033628125788210960895514242152622159153822482416501958551722397952643783854830690669397867759614455069815659085042790157134586938986927713637827183223290598402117608402378596933931496799260968021489293492100531899313089385293383245346176440654542635403352245500463513114839168595678212511933087341758911256894725927175605956235855984429905353573067446579314091502854544325160449296337493446178816265162290839028315704064265165867446915820202489055435424597588813543851565918084525006582804984035448981548111843306794840872681161033324547949700719731811217854975430603259167918662980496788394770068126810436289271557520433277511938384497972868729899000252660563749081980333513181608590169766150978201487278803217403205927967701423790853850945385859539812594635135778184414840721504465124316566979859122885164667741475006299290310055667991352102415473310215938738397944763618965902959801977750571732600086290604254432955165679280221646718626268928839666112978449100684225246152172852704892573889057922790456692697908008812641008908771931050674687668256479261589569460237285223222010680341042025018506317472902761390418906096420434297687411043418074568644333074101703455623255590088830413765025471108529782732962317928310681710159396997928608570587332514971644539210653644925763091400101177091024764921883701442219588650335058986564715166770159159919467645195643874432057777318932282262656819530496480329369268243428734611139919594636655100578579217254109576862412364173022243638413333662510746818164102448457001086510463096917980308453102123889767650635453675622909168314400027277047719189248499098058349323609934823034560434603815610580710799123042016574540435640201388891475037332063531607459073317301277482059251585895086524114350620660304304491250454509658025620212143078629784694203010371582770372980985095739071820955312244205810697582891534349452151639858243945051910288745911228747109997718693625366963601555098054567630972361118188844289368425339627859682930840209785492359308780273790882758462616076498442425690994157351782991110901766208097154262515822362653212561990725826160757204690685940395798075757343166956279414393710773662184134395934721762831670033681837559953658896712525434638549384833743737158657807538782009675625049413454964053209269290665546174495070827714852232701859754687277413122657258773860609288793617575981964696813561039374032463507812179193188781721960714796563956886205810104831230715145604372011919894544342989600240910504801313921907730498139684098159539365803696776892004562019625576727818899328300461440734001311930130296269125199118904857563298422788365427987387812192981063009520785214494686574832796607573515660528095334330807492565181657583965517289264953249742520056105764817884972534235187206431526925764728435930792147736909296161795863224728271851805587354564357495457515859485184224684079314251836967783691002081205448012582422834035380674717192720368416035339006702929175015979232993805310699639029735179802724359529051210587105522043461415911669113284055494286730070972059423332433197794199531306283092465361875409015565661067503908395614129634483612943227087624186460773996916707410079297307386357922736222198564498456904679057406600088006638022453518419457323500909265098744472446210639597486689222213034348330814235687316869435205779323178127927123695425854712561755382316482265364076527605438240985725253331235151693804220540766791155317600133223057101657997505896430630709427124671194289954388178963405841499003445490779337608548363579239086502196840325393482858838654982668072703202208984355987807747395059985867162935529719340787497037107482773643898077954562288088259139715552908265861964490443695371746570789030050565111183927132579803022883081150779247306225384405039569231540959085174195778474503215050159062738646640288002495600394331931845893146411448756292023952313503579996313555019877328763793543188373204998867854480147789705443800030394317483832808305075312254715303530117022001092464482418933963049708481121721205429032779225111822171089665034321296300363010386344186071640370019284330918709846634772018779905849961381251347050755441693586652664856641727177139389795594196550734099713613514831225003052049651717825983510622748417094687893314759643277705596602093551518645239736331027030998171063533925421088044401824554581062150504236392517883403078647076289225378278473496012497768202301180582996361572296772657431656103468085931285057803946724870900027855693004230161204256290613246764221259014567032585657997225518875693137078475039981385224469183045165968222901312360952021787669976017634279392183981520112566988711877411239699273131809485179521618546899427888731785154014555335035864792137518805520094972231730084687075148230854861828172435140854386825846995861000285204902157946535104966357759023549850249557304134783547805820668514247197782012087309087584460030865799776595493483580184890989509986227856071525762347689494085896657847171276055082733236775842534563927576788767499722870879670070188309842959318129486637564991520590303680116389057744320583711339600615706886221417061012359828363672913367415715634019546529909271972790866487183688196221321290284532632820662239535766354162671926305275506445944845229716019578665616177265081635079845551356126319283161945659298788811610951780476611250498907159824368278855423810429455504919717016864201043303440997591997754141064195822987405210344184663918079926883289561676382490837368146438230689597056054183739136271516917520374065029899734010160891479507201174330353783017518915799112201974488247148829597267853410987087175407988245068863082217452937269944657753546922880912841259535296800060209346480098296118647162274332828693562106273281142789296964078169316022480569033907597435721978166724282770433771630554346328944953821998879661231639086746229514628936918956127928531865908789354940877993301239478961025278849368363539039727174890090525587421463141303522370042144424182072388406767488061188260453725563590638995465524887764235261513421962825631557639752239904785014279317404397903631774961222064311730496927842857622577514004909712510322267110595186612276384047359119258647525461126238533630244942980652045904569171127539231791185442465844881031151532120041902951090630941805558470253438690010755786225371030187535882899527132818527824481479238880527334246990210435885640562750279511245920174252171860316289725981174187831977688029072341375774579864331949854705402155670983905617582160264329133245469534068278036011928283994323923147875961721324376183269754145404527745637578781444428940296324653025635732103613325578376090617995122740573854172526053111088131682212988909069789588503751639170203684675065852022415749378638135655398730882841209919575592268689281598445945053674094305589510757667003177911267742782394721650827262201139353677299128292561995253328817891951152800882101367743862804495415053340869611792708302480778827072537977697534757866434666525116227792540306392005595885090088300999865167027022940927898467030872338545743320851730558182626762885506815634655505256297104436596090566621929290725288109375764694143018286977996623028327138370150332744606949762105555166568763610639408164348897706258947621048884436326767130455716488282002098581564119742080263232127300096239426767775083716156292778587427908507594746912750416577698890192212387359385148578229167918865309871166141797034184727491249114307359774054799794476552917578439237366735688035352921948205522892067598294481514476437538161950517050862957739858200636731997552865693281238523413344449063455485613569927638150984283542581214602404971328347001907249051864283622438537990625958872835140577934280644383389349196448593379230033592551410488195048320303476246267434269309648979388431538545170384905120208574087453192821234925089305726703480798635934380725102415186663670119319642620620452767985108515233257810107015926372454712879147671907199895860604700951769783886135911684794404500006370894262089644628542608753700471542371847018536155415158037708915812371001895529838560021895404176629934280800705375322452994224065625012686152614614955342767818119447532480242948404475620857192413384533446637807487154999346932464897564829139588205865042814502703750903385704722587625552402414922203937707733388953402798863701904998154600839208532907172082065033936506925163220362527463607715481623405234349796330819091586249091453357094352641475672992543851353203915000439361351560091470726909601785190791833107785610912240265448500212544202728559670157803937857917123459487962972616047740567783230736069442466199857654713926796982619421049763517884574228874089510428544765228463035979896138401032941850117315736974918740058994568269912014886579299852916005004874906782155378847232699508439580245389383345354341950227958560480656652672409122539065874405676874041229823627700273954544395916496470834073573452607685773890613564717336892605389141517294781302030542662207438512257389320374790463872919774460963732773856075368885649935421274068803180834882799542929361193519608648853080635851708991800626789261236652942056866473629359426144301773524455283997486801165513009262561895831198295429902620630958156440828513987547372450092361621232602534035097816556799624136465464959166479476835964055687764766684550335719128119797642210518044724011654098939370691885078150191850621252001950981883676432143440975531822102461792615977477865474588262117570617013829013279350449332089533813212180915374232355618774773193402844654971043003769035187138740395508527590789681714744984639440434802118737806693478392485569896060531365830365349724474870837669879802988493447457617470905323446446618312010733960671648684011918377134718097468838523760635069971155085799921190969347104988686991949217802085429005916734744217460771831289530487639353976511509064312332547851375283039857141020603336865895370024116545499774353087820970820355007686839867316593195850164167236332416814039428797456787371372083839425180542415652948958044415529940238692932779208534467675477948067353236174480283696832343911101878016239169351770105344211815886295321245938539180810259046386278140583917960281173883274373233780011660850276308020647736005179096018057787555305129403146915741267697140945782306261098649068022737931318776915753076276265148158708825818805124225231606261352736470064273146515967602837328121664955144386519181598848505606498226380975752592183566031650483311227046498535961455348614671502145579083104717304109391926716212480953989942555063847194418560567765992551857029586266546121707874216075890471165288343840480432587893925365809002102909448625171904318119466420993008855935755674128319921089584812593236955729897354450216002198922252148020095405635756581385106972376250148498272287076989459374308237169006636525020938780724986668854110066494681153012461150395166771372084144999917294756407748266067956146915518201427617131136013394389307101897392411320116347192433422962313756650135433984812721360008297785502984295174554585936212222760603744256309583265701202378814105772544509263157288671596303001197292941426702597369192227091292191385227524293862558321304939107217680011240752869155906015739214400823167456413843120186111635660069888354213193876570897913022001154434814408480639328540325944018424215552038437608489808729264166503431167201389588634801961692040326945515553136527338344721014930958040042501541998193111938749327930261273528902567373566656181850386366221976487453012469821235076055357798371681532721505520340562741230311727134541445915614271473104554897948057546189761713854366794893621735990330065156919447330585116978985988783113278258544555745668806041230900948758290550382977354650358162905649072398404839671315288068253914978617123614074106360974124025838261474294623676729906430393137950622103798276289870151359762981726163710179142863596135882826816706233154052900480302102518223494271997618906390545270838473871873338665901314104857458440130802923499605722803379287314335427999029922317515437394523528707897007252407166757391727092038048190890595965596740290858978604325946920779107535887674711662861858094608908101266516559162393049447733503629268022458459788025452314683462288759020546494239757368231212260484383689488773295639656346159157995476968031108070499300371198635893236957290975876129718611455214308201442151016457108156527467588289272798665369447238555285844730700568020193624267053201743527068165459933793039069072419280172210917794898942977723062993095322570633854824749930233176813345749433731026564069729196295662656802793264564183201942999515180870769187441215856571098232427106300963908919393377270037810899597805387479280711070200561390379097729398485300489888460409459982223514892725073701864989537658834351303941092583284874582704168516267090430154473644299726148439242841758100552782532259892558665876548305078136305079845209331615357835905205795567971414157195552828566324622674396086081691506953718583922665387968453488985362573402951182243216455741419351014084612207890897873159103493613101169210543484132172954975504853390030772627592263916356568768643649479135340010511414320516787108431244253283529150724012294833337067702660336260731905116661323605857435708400265852198457469082239315951258425275784879900808565409535760069051956124579786201854289918604300888317906364052522928725394886505495895529650692181905340385667016461651655738292676058266269112506589750449564689434392383392990550341283929214691184606158912041330676065490228477321028903983034052947232331266319800968054046542465104558882773501110298999024439547542576924902196354558143477192483459782827811289827466533060880107412170157235429774678233365364551664866449692945705361158220934154732449437908151038583955067886009326869408506064690446407911445943474512021211445123725282399659992310332976515615501853607260547199980705507985350378641487549797523554632560094896010217215269807963261560079294513577462790407627458623366630066183453519247788305414866005624396335456082501449887525657856622048964983033822507452555320000821042393560222160268516309178826798497138926755314195799306784668269085085624397250237133197188503645673807095400965764072894082145344938091872250035555177935503268273283849780896416073770720901072934007873739288989803392091075968274050306166934984517628567798904655600860317672650644414612124122696869676064385153861278577649627268420023940256168604679620067604879486431108684244430815069064955647476158272722812099058556591400056394370576742014136772548058127058713662794570761625010530687424882461353500455809301692558376355344722183851555453122551420338706852735460565375901588998411154747781150572577236550625046225938495236801894269947428497523226970868635673876726227061995067570583242432267833464456450281415200241253601912144016261227891920126091776389084236820101994431241905445681852202389529156983508406469360655500764087712806464443844388733243185856363902710194929843286994584182660785229181042757093074252887413472142857209645725281405159157111104283384161884946756414850890154285507659066364668844304444114890535370485884967783553461853140550797316566118545849990393047860525819229128976445974744317492560629867952865502348873117769641833531726862622040311186335467595632715446193332125717378850442036627003946298436980817702642266692884084547179083223415233880501487158573415133890559023412472364265079939621096723650763660530184011740266490148300473532859449537096302755748033858693582552038481185353951828296876236916546246255904336253542021856781662810739455640309062998813515581959191737217438728103236243561239028712663370914216731712413880511246698228127259590929717948191892809666459952927668123932219425799934546044252582506388760917731534669892191527891896336877844059789839047072828639036891310485957157446417300727062184145178292485839123312944217986622939360015030609880433330970243931840736263147106734873376724782188441988571262552902653709432009815736048849137546643249486482568055850646948563231092173080540986859480415166166195599015774990597464891713864777231578090033569040303835660095194847872871418910570412617133643156632223913076648251215484073582142047381747693363973750924371342321331435826747467307982309522095652749861082446023185739879775551065009555347937481774690326823538111626894240062752989775108839555663567037598794820297943317887358722911288662333348021169827157681714452424932344371860470815097448252374101795601343882454131954963063557720533050752170392175074188514195865999369498511089932596061438812431558223485692622225286634184328188359620221286892673339241412377929809030479416502744914487003929899278604946947795943568772950902610023353373789086860292982417785741462565927145528525852412151333507639679938991423958495568575915516105073278293789060945594743388179927956460942416354669079848989201920066992023212483407945258695854088147118526212249070418701449035527708491315614795238636371503892069780120282998842520359559478270147245214388246769657078744897779665602094486227693207522783763756937835017557142239224145862009440449177756877249116321850060160294784238681119585166476796973988686962048264280208144319613317999669955042815039001628191034699127472030005492723908227603231603805573089199324214686118021368011100515579172046233858349056949392681817827488087354898645236667886581608391558003316377320688868779543594280501564902390950942491068725624616817184344350680191454315070904889890122808754524408305784535079647740399676188657920578971818404972462210940709410677238297757231169066824210881266626518432745624480081501779250523931316092901606116441437625343159317116769078977887018122196942050485538746994646348668604387160749935195883353201890144666109985199606202123899231283021444318146804453659454582844274247470366305788218759156508639351747610145776357727128794929693786844378589596440708050944337023159155065823869759109082924348689379557936773124610001872526818953322992200854157335106144342048710788430959992815803819668398374003227330093084097732728982852733961092851073986849232299711596900495673583742393421980956859896519363835601115518539953571684467082769907917549102624553168592852056426649383626624826436272267639832768688683935102320136970205487381668654620621247454253644483290744623943849200232599102870512523371257030880195852438359608385357124217264203675403106545714714537983045731066587349905878464700519375637614964381379176124593423034945923964910687462729773867231198274735134849489512006612291387727861115794812788061478623892162367204953445807330305941506393286317076763357119805282178187754746612269689255124697617819720254672369161172747269659625498444422078745385934678701507167645341648757142143937240302988609763761772844728831819873393543664249259871465709886756134446393397655453830361960451128524806096285114054612895831886571395187777475225668711320691024515090140484651172210847817975056523524538973251451632501179542378011753053270163219509657085692313045554453112803385517736354844599080272936230352559691519349360549007390737953566105795826628981656813033129105450403243172963621345529295671545920413975391060987099888464410543407656760074165212357172639178175435756302776562252807238284901685128223055828663854814979733373106989266624891892481618489291581168972926874413184190843576774848478930667758258392585665434141007966495254086855909961638952865027218591777090331833489146440937288588298175006747011138086372818898918455476581296244755620780482183166183454952086957223031181015598338300872285856112399453217299478197954680265722964319324280697553919549018576686623146899704023630090633971807141650826657639660366462615616462179158555740608786786987434060118232300001082201487876540404201867326108285220096436253814531187835493770331713758973395401242667807098170185342482002122037532835349157132045948672960743820860706116601466798739909655399053298119848496358017467625528722049436762123889887044289425746693129503990800917385941022599703216757153864563687320949735663002293524912994488349447975173240057511036306279226953054244701767952670859403340617068999085310555900461728579731074945196381336837170107358457717472951596922842184245326044086317824036783132009650270942763145007992925837322542133904542845314669953542625725971929659175658695254024146105250124903308113300225337286017664278027114229662711309536558554950920490227633414712450019034286753226827422000259528035663432256974591724138263491225423804334120637020741142639487002305966437340901353363951778386972956143062653472205099993752615374999589056705224875706529596791025398208966129228507569409510861016600269425720744297867465465928061865486602000022001976080386014493204642358687424163610704549831283209487627564261265891051560459933071112482769410729532013790276394443451771968768412295715145256549251196572020653258745721654073265460972627556161383726400227454103336519305715053353210090926548837453243753445642986177570114987034511679357607120341917234858201008110575979114338405268540573066051564113398847054014157764998320556894248289253192363481429304141828946437027082179495433935992339489537583325270593915190404410667190576997499948228873927800573474145969408474924617925141284053367432909419132890270915174847718005234943720115635123781541322199485165119299036843968661331140926541768721699796085107437206864938228262944764568815467407942456714734463051138772409128283144527696485709596197781942357049607326980666997815552086649031264156393055318157254947999319729885739007568563835020680154744788225935019644975436690791925879364283471224550044076566358803946063201872008615508401603191810241896107173747163063220499668830116670144132875213520662835929876107165855199008505211972055703881543425024614599858038474917305666030387131794222589308566721482638400796138760940082717221438477648144091240874353542139078769837916519100879103893280265295492744362756014712039424540680876955853227911503505091507515638642928057408988473137447231862969512154020769203634384701357369832544445471770586984459643047274993698925883035544972716556657135040716887547171550016779830995135651589378844983319268962820906846541439898443502406632180979020231888172443770295416378377154313781434366759106762783961406895122727571846111467425582589680144642074777762995035325725512311985032641032304114444124821041027781429609608975359195157995794252907742130728880155021258928002949406032738470916624093715610345995440523296341817684788257491296835340769213541852632126742229319504194835960261704177088435310311997149832796224709598160756406342004589255133690179165635676742316443149394131438617978965300116398050731421565326795945797243628970929354839024521465248021354674194119185366886038432010038609401524383107150310446795776755796890542870745360284878800699393439719817916517893178560514594935527706118846133968121299162059725736654444380498940058506125985533467666764353921372898547816152441271255576688020209237304672019462203577624253350277070727383560931526117089231352316647485618127734087894565278365546993892788178515552041945817274815430506482840011359408211966031734845524119754415795541228796053924728673906676445195987514811417835616974767288403424484446488416388752343440781812794280281860741216940126230596416644446542180686741218189454415914767971366108866289559735527483762784616481246814821869119006368222646316643393256431524875292794194986375190566398696444505078064099390025186679116164293385499284683050025710224233434466131672818512672311630310414852728556350514514662882424318729859377600684629382487555123253041306824642922566699916478797598387685368232144291018691860658124135055483236606575388122909342534478338482952995564217837764273776221616995605041860854626514724307877542568298706774461148171119103592585735285264508468192542060177895826399850149370042379037318841936828410734183336583385460126304573082405803675635412428192359287112729927661213088213115715564127786211162675712461185596437907933845900088611005934928022630395822149224702330855005193684764244600598687395863893696369536354970959297140287905166245726599070208532164698209082033738442734261438408357953574673807950708803130291487232690297106817613790945220884733531123032048107660703527819858710249739039554655400090697708419603397005706071923377774756888808610104902805811999144935843147231886735681479748195027650741946310712156231211004679031526387592865206540598636815403034170131673015422434968804641077743008018972652088508479036391996718862877570692127156715920137071644590884913266360565906813656311590128152088974880699474510075485368135362252785882187012843831142739829707302273701626299131591001596421500243296325986412253490741855492024753453217201221547239114983004564419899181469718330670374026345215252230762186293189043327385296883452996728636068627918900549705230417406423036446535689982777299353235641801181745473489542656450940329404856270289582051091175391426850161920992288005431740976880396246669077655659900407369981056955081974775929823156439406387628445494290982008705402808688076743204882336033345189520455978448035641724454785347124052255469136620625934711499621472151212494766308880169280676315801162866383479212622127174908520309927928222700512994686998267920592826494943575067242219669406162302443217118814081754401631165518120935724100964796983139774701665924190584331751022452269196498565930111995956238242706738730459641951397511037862662371456547438009160356870165540204375361800022480050256221181540014782521243255575525878886630228849525803734101170206610098782878465524882416214217768021006703365113282945263160135390054729379191034786722667587616767573481090536801638484445870607127220473532557690117428412300335278945097718092215797977671189714900019347071925215960647310607302967701028718634796478882497797277684838955150355479713928749217656235833696099511287910150884729581336280931672158719146802173725418153434249164442054245115083137607920311420836359534715762211888267091799750609669449106968300851874433446887900650290048802250498490689969347968013975675090708650446044717162210232900900466632705946271609023211849925197131621311501598098896954279287345148093093683582958952474370106451355648744997007924254722400883805725095074037903939062991631856978458635747105517863200353397673675588794477357296458858785596475653191053773098202882511025117838981615728402008826215637892827561431105788227894875080243596006678235708243428438852647271171992580271643274504106944219957756087470633933916370396295335766553434180119322825964800752164187527684980683896305305604397383276272856983349159608420146693178063600689416858608776773913012469645315959606496252886925461435091672737407851371361397724626192028743123870144759610949821209551650266488469911371973353982448340724958333502370525912955648103826339005384313199911121644912886170211960782086487799598215833628531712894186095893133145163644176224367736875534183146611627514624454494579118991676954606263240156389214493188323434151469152433378702098521524222269585253771513708156208300128961796777627315912666182549856226172293707597411198815914856292436961684385968344032173360044211112280923541543633499606664219700696538616640636783552674482758969090609937231139492664078910944699506881206147454595686466413576457963579596772608205086181269982449950796994103671795708749859555101024746435830615149922535988948561258124759608622812308114111569775082956960746208553263451001145141575564839165898108453132515038217058711737064294634130167196249848847900372522937904247193003515087824068685100628502060326874083428271089730239374416928918985006092293642083517953136994964199152403029554283474114735553497128443535745170527030026218309127131888145214350829516516584455529614550355334019608398631357413558232752704151293671961549532985718934758958987844809782451769086053675575716627210436182444739499127340183783205155739363682023985682532052916410932970756547665509802070870173314552781787066043307252025419469647222175930157866227741489241510037169254497936099385838849400682845429414107963075274715237189639724009049074921764261660115287263454127144223181546298025733297523426533588650774516820627156583338903240158028565985426592865345237756520388314727234010004146094596808859209172869247060410076405839788320829919508949388019273046460627074085726885003066374493971042737037374124216959486586174274680012099233627532607662059755602092741891944043084141454170294427499433398971811988298340402809079328579172575684095106196797665654039380437489062196299423556716276384954587215114863509847212335478107065772982540271982272023891721887435777234485456730604831051216989121362900376698074895231201120128235453936297898688849905068180555039712171176749580177987854520178414552398604197900573210207111991376880940353190053424712488586111524284880726975394783656704844541903455490072206197190608930431152567268572582107566847324165140213781163838012957418084839771609559179686094987116591252223038115883606748852970091382704675178603721069743580349717243102072123732668756689296428563069068542387760290956112542246698590740392172917027181207787057594471632268906206183922760893830300211387496183855386725229561089671880904924117280870633864235484565224270708081238756342484179755477624416008911825608731917888704076946419399406326480703921681439634927855373820769847773604495771405284229199043296580732780715434531876329039195654955127774729707017894690969433104963047725214621612934248997102854613848489405590152464722079432446533748032575469822390500122239415545434649749193403165958133509380687914982302178371994266522202181849393252574960886139668098032053677268083102456975422846237832396929517900510584522425801952073209225352527225389404895071544304036399812646425799678583239262900312400448237575625764212569302789948325692993874298865752997881557055342431229088276612131952449843738354474652106248557190747867065316626903825443035999445097657951003385418050774532379784947859750407807678075140667995569468038728291938001051583477610334781376692411114687909730981053291335095889465829212733485125223394815690107769493024492868672630482413864656972082727699658046145195749002814463228966980599350022168550913966483324980344508741443929638123526315262076779486028997115298433426416624236650810498480718485126153529798007592776953921067892813528656486748516007592898902690822272176106132016052248722049541132952921425562061318223662741773442288053312417876352570058916109540706784595240547303036603034274867021135253878675520714334080252033210995865404543478766383251369363120752440084497846995818699839652293504534303374048758133852262985111704911636226850463545666853857195803461863778524235399195260202541127971265045289091532386486483900736342291016023727484764721805859529472110064331695100338000657256835395462726002246772660785083418326113515101058642117995642646474145183042095456860546581975149226968876597493342423712588896337203061974099515688572196753136004131902227544925282056314831532725073968668533458119760396917338410266417842192621995165238045152465378793904638769818296623102822783986276122716793113175496064955790542934647463058942635044294003646868797712290725405139567895506268502709470162664610508631258026265160732435908767308678228343746356221862903091174457052581740948883255582614876749168058018535828606168627691497739071673743462417469566961343392742270963328776079048579145382380442483640065486029647794702626915779210656390296337624875928838855511520070489466607594128145584287926308624930233062236694390335034374488212258092954660648675801039274404701234194168473879492558271907185205145507928787179446292293353077907941368252606262832284054998570255005493171693241458095096194334953014774561015202969224857247571431429291948544367839244994565458059184945880804537571435513028180317532400729491398542242635396469257670244430394910095736903950719865635840373518071573201691314195609144592817123059890556723707950817676536225507551912425492504969402631310662987036312366272076457313913543202422236045200022129381962153404954266900388413578782075064888578859594917800155760241377263347400832636933843742496977759571083879575762587762911877403371373843538768420501617766743543047049626368121107741869284687774982394965394165834839446385412781456720049086771439427142594136377060912228024337782232625429282902202031726079758061633305333094260247161874588755662300855159192072718938820870970071841703155881785544282401293259777356314375325247652830806330353473740564088384204187924213776026579933997737194120932980163183768094896844270799290014073859848738608667649538570991335067870615157517190175479543547932668215658530549120180550142689357389539941343081305686781028306911798405194289651717227179942014471135938036114753322895330838817143584907714625425524826674525541098607663073913724235911399793277115326824149294237444169841524307727620285963223470423727595093829830335137748904952870943362772092160171566564856162723776286270107570300503414461718750257230562077775163482951025848089321753829682526114357257810049849786824253069568080163355363277236801774929381636868473466823354553427046999229413280342562672791160598002025430033372655907084535530371949875026840211741561437215983166365599289136674432617208323323481695635647361487286717285395258865641501148337800636656599426827308086139413405890977661609528973033019252851146359087270444616931168936574427389616804158599421149147062658368480777795463838934810189957866590742653953342435333266110763266723790765782544865158393579088369845830309042105458503432834772929681814228703937672373964682888459025305341317911668993438560109503366007992442853004444410773583404683408326757700528916904008886109288982685780615759766699628238356043991621780421338783356890793963850253772682019103098012544253674463334451602223417380528949544416544379744018544716430394157254349833230490760816341505005010938838047374308368462052624283601742886367350449538501198112240792416804222258840406426007480226619120732935628635078205152668767701377134816848980959285246987195748926097264986961463705573484155080673923554205125260240586498634578784373888486460212713422255172384679210610236234866648413590629183147153650973821093413963046910982658655801808226744732703242225425717820264740474778360331743154741074565188920805001673692496742179787006036708654256280810815302178213663601626847793389110206759448473188577304902545138383170234643852605356536859487293502755528683528619391857713540735002111622952330059263569864896875359083187552208138833014039384408102622984365543165103810874486274144225064122249476836930425154651082516163692236102513311517058493212741750050682397840482276413924054568208015471363785534678607401565375661574036641997018730284094003985906084844899989943476777200614650307139592234245346887272731458548950818048257826597908784392370898840886919464861995991537060082221620434061237509402136362388639891414093242387679631171108776987068742359349699205674331071629039508311240865314400802503484265455411053566472119595122233148931159744156322985679165208496858082012380063466729059702804814386492930539041005244579866208077203684063222644456823580714780686569034742134120948176080407251061694107183650746436834555676260472899360990895142000235387073025632123875466777444922577821103570140139835826268448049892708023145067191411017239603686249320162198800686906591878482388702663055815017859867973126664181719760050241383315508728356305640113214770748922118366684177770237645635971027042667971622197481075356391581817429197833221495227195977105008391020855783993104879821746103215566765597516633448241782522014530152124517835439190736415820536168945240709391647126445881690362910344299295238521724874812290364406281366804261659599968702934570690927248986205239988656176938452210833254082766624179205952700469599281256765660598784524030147092781719930244938613659930043105785235395339339888164747127398755172141930402857161909177164384175161545356453773540213432824871878764232537111733305866022289978387579125721272780233888867004150840082304593505045516845191215473662267962804718248944457828415102924654945180776628834419150949648808479581097577448069327129220204269578762039673212371862680081594505774721545486625986104515043006675485895878915909206852401203696271474174926854935050896736442277094322818157815754811698008508438350807812228238035874469010696764833535779201000266459170146231312256741716252335109217742752826503187190512655183420665910816906801633262818793487934652571008187090769693772345651448683635108766339751643907012286395648489205955213429375780117594623068978495300090177088158737979400417540635414378818398364140383410517847150452484662521593132629400927557362542194686087618218919312935101678050609368555839569664005231157888329081656661494746097187513759697492238368537873421830466833583888782756655413267703982162367827032982787405651955011916799302989021120460655707657852628931874611695704748032914780048582358135453765236156285783813804560092666095945890575750245861665337985390212688780883542558847838789787054054047510393762942558897613892208980218681486378519406186618481128372530405421738879288698744543523265131953360925923745792890875399424929941665732850054165681576769701467687562674295743367340659733039974974179145624358290062339138766329105850861825455191503285043038056506930640899661233513450852240788710515206391885788081915840858100547207182506707772361092989516725405321157335747705699219848147313252050024329063178102521424201750197673501889019109012985797242168661517893591591203817570263788787739201003122411386745122850489471700963283508707062880654373212545725910705115510176422720168074760711650123388004739136763854627013154073795925120633110086541690734076870414729684587664184681109712262252324215030631895372877196980864095737547897409712347233527507830019749810191910349915671912689995378656398042237728516578555994328951315238293204819013537185513721261040786945684143387087867971987633423963099959670199991413142695880703993677254763559933967955002744431685118125859159970234951566827017737675167150577087015123136626457399981980456125760690649709948956433473831198391987729168834844067303371637630390749206120269362248735007998282944705747137038542051718220216041288717841996465903112867689287307971754584753727198149289071229937598014826879067481124440673668519133724952598967919819288218268465604525207044365943880643766921486427660097716778779700436902939613926127112979631366174652284715749254309205790981033020120688338355541123480668925292310314906883088252315230752462361174746119813757266362459953890679781412451306988356960912828969312714255531882249350384248633824282914896707302510437182809379813655990384778171716902574560225402452867993037489652486602421341958469788100123588996163684383840760744091034731666586978703680416274739077881602891087310423906393171363175254096530497235030164526267610558769293603080967063306342404344687402288268699370744743682410097642385633333230786367945171011461720295755459727219983679125794140805969903192993656710361090687156255991734184577039881538628918872697231203193447227270744043800445776720270087311704334686628224833313104917100732705236450265021424329555014354691178765092607848306320798542621596270576452414894660156032646323724432591380117262618900625667115102117307078708311183087806066902570410699864785490087615732951436875614613847840332503483623264882635202739091022470323285071958557401501173111960699902392651742855325234113242005252253678263408989766812142651055344172421151627445522119666896227923813800768383365463013329169900525489929138402875560321858242276998238049425660891466257392397552532888656102551505049586252852378377961034229073533005121366096692529354652519452868894909434237990698853269057791488723466329537320962228094600790823983244182262877647350375537958980100578247388880074514559372680820473227648895879324515901419865454067101589741584457231853440391520602954420273290057006113761048273693836213193668058805870790242568200669089662950248984986347236533284232377088589553670973457506261424891195281177879022418726367961843985108629013434005368041471253342798453412418014573070506210534254162061729994536979622667642103882041257975589894044885032702183077496118851703436625992524443200097716540353757925236351088504455233016675814223129356868066960314397878698741961102371538822205669751450782697635795342901357029622804781668423050167789885513951952898965256989772371277285950474773957153003310290134481215860821079488039810313832548806472019736424100816200815473495880888310917794137034745374211414559945710705309463778896223765995137981358745251779003944768554709702807012806718543782932826448044486879898968644815907736421288993608536641564829685268075464729766646322392557095690707694151281784860130543266496736841586592217178700385336195623580281832569198526383208343819155129338555146937422895088072319196443932480841831831511678886086243872489648641340222606836431031697152648439361970740174277768456538765928499259158799613311796024202528184437805459391059747549036606741084833670635279897738907989336538294855270407223196124886926795841416122385939869942000328709525006656144079920111598744363686896426641781313589326581608939592902757931720857500679723116435810028283479642626446525466175080316675997197956207367546808794196840666226350986913841368740856978709341050255642350091922088754573960158487059688193026816710945503767764087461556887875469468190149437271872836289321116482215896413251897799334593266679050017742382204610434916882852330081675527295458626912262813846112729635421168399136168885975092196371368620171948399309142249279433350084748868765906790136285554269133935971470189535986094661968036612523732109349331290034088564719031411623957796906889523683282870158552146971027926509877664413160285605441354278313933447250090655503101045574267455598569539570981313650845253966174533464220348059018227108286544897914472371705725683349883261643443697147226545596567480803327312194047571824622694797218833618484570781915817689382343089063521623037997463845729140198354708474505990832691887278176344307367268651403110491054434079620068241825942006060448468755168230352229589386068973433845508540122972222784787339473963315453417759181622737134703651259930519937463535564988378425942820704105899372399865526287826395329485323255228258352514929631154950585372218708639946252023842088063176153672689705903984715277502580474846088536959636896695377131968917945192576774445225246004486777885386116634239268438130081648634004500272064039678468405366278465266939573029209600058954347679942458349784174088033846568123675881680181208550165572053517014486168700401253165236626250237039992055648271112490791685674248423801895572169214934536993372054556768992155732848227780290600172053563172452109863474639595320197171288313744756824752361171553466594122029842599080136322220374061814136365194281981821696886344238549224278161831986770941451391797262849591477564512640546191659319425864753444395499931174210366411998006144497594238934616238115073102479630958331618347577347270844619180638910034225355490362824342313174106148457032720997899370876999796356365334404722100890387354246981980099587601620368489051709660317648316746518318719930086970572815155517233285865504425602406081552201127313756057548277965118009829090441865713645114621803497301516120532317916175974296178726106631975301511691887526388502447798290363076168589398280819228940203458515154954255965490622644396375178258353083689371330613013184692020189019829643533521185840514807624688873890031340358412350928625500620309412930231242687343216281746804324508557133512951205220641359073979040076895538965994808226529858688805600070545844885730837405119120653519592326239247197694987452640179337855908041258794716298449541127121882260211787721037400290144565828204541018605428993491899483014004584897027167538445403877738508346811006924091891109357603144542377768880548290547296349906103153806027061506252184210123828851190974731141387572230230478348938501140809846844794765270167089973778893430597208482374732456088192432615621679623270742866533330721061833250606672215474711067113153083618256540147384356929383749655784460680232082278239433697703612757507760237724950353275154766990067207013296259183682992920630329425210608703200441183376423211810661569835240843547482589168521551028980256782023251527316139925090121282948560945126402473307778765691916817828885475427436195294558177160730987750211035476930278469067656370769110899620998827102061520865757631275246095776598332177754178870010582062826043417651994330715530135325044680826318138048309712680375937875988345215113954023045121283928538089253850936816526395565113100193156583170067365944135158680631551379292822646197255233333812752790011784477724822577900980847279862898546396046131626322815373837912681141079415554959810745411522353115701013632310836005481088072678713074826758529584893912680986000902208358046205476646182160443338722815553288868732726898934766970513966016407142539873673301571565576790210345181089981881559577059885626743100976569096620631480856975660658729677696626282112764317363742671367384112604073038321821155707258568857349552047670852266397763159143287822118721874125021344525177146382775104680600407936837927364951384520746148431568340117021934788243451326677637764753033604854489253392717171246872198991990521939804716609633869805836672428428883918270484601952085808603002400500151712644411997918128932871887005405029748777287377498225109586484292540974116234707889037484454830030347759432396410195693145679536732918432727937319634515860603929700537804072746824969457887033728517015864494248333655861918114163112993578551954122698548400191826947510448165842104680357159029309283986742288282894525320106876078862684431522111667268034987725338558220370402954107105554067082042898461494617099516897379246681332511689880012651342916118625339438737620892068397337325261775501797823861952885756307580904716131652004404008555012100817190420196388323202073638816394656167531057021041591152536892859711102897785403730054390741891749890639589155384770771039516953276137889169334817684096597261064733306414421841128851650516922731901367534598705829831082702082041812742864522790261286157535605702998598902214093946290843760266939202022581299912479997123960403001703892158383768401076914555599702470144438312562965482519273669488174088734560930984138933797583939601547549518995318208927369644470406980847874614141750708621476398920165090726025015007577250263729872750905436807933425870570749861432715214120662980529175243497514899713345471090067547038492178179804390352508908741347307339661281607013027271211562803703167572759923923829759051495362600914879491677683758663628199980056027070505695701901837299226209346074671926921230908472633894290214136916039227550742430309646338480092080959923103333933912817131945094419477939271976571452487910852322848015172516653591507416987262955574902795684470874214186489367714660645318559497334070348131277564114569836492368139954507533576142024404848377885793113442289216213223109039744256575619636508465840212214266040000097393265468253559801559742286095637204165864659495554100682188094953154622711939905403002275322362992312541664695436443484978312677720024690648825656477819623154355374936878082937460328231521997531709841815718245184140926402265484075006745077089795266713775757315536774447601697907951323589540026940117942455035902622542785658410307337020372581665815927628056442390826589752379747870562759631129177996594694366134677717695294668241302869479024353598251561116018161049499048926548641241551014811697900603812793655675042813809060264305367297598576741032131868626894720115804744558071350891170265677155266231909990378702171680166056856209391969645036598248135629481479919786318153978219766659477623911172655014804250071090798971708491171038561228937318515400948399941720112202528347415498612267802560173352774058021669932819690272632911923742871074732223995210018290095658046736547256789257555806682300164124693141573894801522039408873357161555576229418728321612901095172720880501300952289125911981074998922289800559365267107218248659538073290267379084312312548532722247813653383799782315971368879053926307927357023051037462415780685417653543635865095540972220191074212996657281214188045803756220856583666699512375078079796739863481600981841884172233414057145828612054169575444295438009180159081274627610984901587236281110552051859159566858187948979303285661808185154452057454843412524500881399420396432473910033859215466013396592144769657648110071747121484115745956198162837160586883644228924610454137091548320360575046255181273032694467119453782994308109739983789455648839571771150847560097101503256466468083811178951690024899918574328872773229204227749448637161014136659175564999634890369138542848233718443404558245388637453660031034153627010700963586625448843344134120471942856077037211238802980443893179704507000159303831283261926873258383046298793385123040963857099221715119388670014197510208945252896313151233305196090287182972845091120575152620150487777928428105717159458353030805116470080628785737122868010472437258137870229756623518803056738165073727481180815742425360160999746767746832584702381854624585098421677193786807865272936964716632533515512063954187354801267923384293866363086239462772197432079331129806426902357176936474590492893863585922860315524987865875548055811043031756516781227862007903383086013108658897324081188871870671355662699413231519158527330408588436741047117903851664474079951790593036708705193687294949049853311706807038988141603557483804620059429491871136938419856473801030771385559904546961427772027794501548269343800645993149829520859852904435034816117372355860769107878771095254135489616807008101639698648434147101309890485722770171643682212472057949400744042660536107197568893789126348799920640453100582318450387956692506826777334814292071143074205498784085173470256793911253040981910333038292143206922085830132738304439105574644015141061371018305703343422961503334390731941123643619500923680599827898093521899114052988963349157180659986878887907787576176817867636085486563616139946702222199136365160104125631750752010046037123783408196564702599699188252263585492004195794005090488949784258999171413325850498565805403981574582996028953382423993881236168746829033821063612293430744409100617613664692469057924320788171829071334239971162258150215845732291000490084340809762302725785239240267991113419535349077204319409195221357279227511332581552611930572235016753405761761308705425663652323554374415540512894779588565385157193469126015601211006186516281298168478871003747633743900627891936841694485888959629218060904280648534686327172503274108849907762394750966756002389453554735769340337812493706463643880527990770122357728679757877806806437605167879705409339362713919152527511426034569788379016914364745560265152037051115007022998420365271918164300398266102935540166216060939598575933348899636459628105041492208026795180550240729379187560039843047691796691294252159566786234185854110172629220245248247781576995031285699976863864947330548197666267928715581512044509976407457733808974819180336005155522042138623822246563782870275668030451490420099633176148052515312332592539427779942842443551246712188770330612174023665947442567494580819651912139322713472583478150980919522786110415737353228566806000903543127272553857099957818929859774208541015980054773946945726444701065824395095205626572743390712547164080067883454158730809985825672648135357635363315474144872033144022821210459428497558672802256060608929862115632222803612089148031799098053267957238557452880707178823435997670232802649639280647570386701419176701424759086977921248256986385271437094382781171579297141466454598030553838336409634183740643792234066292739253040957773713272419222565362746131852568518005201803267732968801065397952687108592814524197719971019787747319767785628574767028192319662135608444242666463209391267594032747225823201319842726326986055400869952535880342374409317734338279335931878078888405057486455994680702846870763613866042569786354732282434325105971892608559616475070119254436679818220117513639691573916923005327017082882986312036108104886044743592431551651821024095332495849315939458016562282075496157425412957924620556170464607745545520748997693425544324062169502745778985401735631771608332816117189966527489747793856621770349339754389567816196803135752499541830401201516276042380522736132078559583984769256662132011032416521541075446604078767933640443231843398068072750518097706172639738896046611595677348188368540638351626965462872574344012005166995962674991532495900328805985543006420172335795243682028776570424125328747936375079079675198417459635769332631961021458463285089459531626811092275915509874251693915469472194847826911888461314184182392872076215348585345071165268903019246437515086767207697255425322844750062482056428869965101349507664319884054738710761214213695044653125990839589674231740965524462846129809453501399689085336911687605563908039116288115595556667096823308443827395485933026877820539427572393879675552762667250483002814537099296616374935523511896474694174872672356129862504472681975210666206227577978737549638755420276818451231032520251059540483866104240535978461833875701125520413737435344701424567066057916516392387824032467717422736880296314187819059614115903503171635456780459343506929638553722416246673765541540882031583396304559186438040559481876949480143654584087292499567737408020903024693472239948468927871881866876409444499995717344554695349057791106663617952870015255344017940923516442278951014190078445564983330630210834152040762359592635305030355895826580077573268396359297332676396641707623804843692939801999931091318373872571713711392387488289746475699508764789673825054079867681397965803369955129172447570734327093676249226514959535536799609046919667398593998055713694320839085829356033311994114942699876350176385583943420742220927860316837576924533507522951822061334770620166908191965678967539199415095556144580899811812860407805272229733487790709445649026553102956107191206516651354181064877752408725981504990303646783739952791061499049023362084509257168579637000233950529264700274363728597883471156630331702997647797225796438267329048164620317110115369055705540642953397312217954133719178430552096428503795160159853427585964403873246936100802241010217440494325597380484241471922143126299468414101635091197644433246092610990658306105013129372267572687588591357155147593544875901908650595642650539002295704984505327332652718424806104859691926649778785600423662517540225017201028627755406926207347488688624695256572927277154232714576512165155547308460546350237768209956799832395687104497858469587075447086983953837557235804284781458933466569794883906989435210798935215572716030362215562634348555885106404272788014888505653342413091324148492571343578671594560937656399767301722746849131467436180332882160734957448660966748974369775728932707161408859504717740097508455519807047488654014875058172610811366194635370495323831401126346846457499506034082965332474812774268575956624584375229498681091819894820497799269397631788527720641993387576304776896060064896059369734858170899282017940620969693636175317845978265156688835200834868226473278194268775927921062277336261002690471523073514946937606089599341430810902467011701912003971050014432500260023773163884180203043563123738554200133038957228662134960252503497555368824965457384175322768197867488999273447343891311752184649809348232443471126988460865475029771449932351252851300421326514874920344007819561641879708951594164502961642058278642913980004399465086525822091474044997135401752670929314960434250045772209696838421630468767600348624172042469004300557569181210930756591889207759939687723935598637821264001335604900088069624708746940132849776129937833993432520637394886898288005998489915329933469148916399921974498127936387733615132982189610225534873272949487754893545597748276438204601744452931474307877883701664634050551406293333035890934146008966622093320572031896416056934807923496195015541239232248183871167379184538352456454845302272160204096764216692072810451616532722183258762071825499898861676042644121945085991707338178970304547730925520895277863871357948782373926367074349068267349774110997800431579780409063409946950838185737253154205542797294212209477952076867609295125431131998576893455958511715225904520467315683933805342510758531922268905111138156845769696358497668028453331770284319486088894477411596777175453624470426367565885300092217107024701901803368761330575648910186985734543535549891236089583321620385658953163812766628312949605840336487169871504648749760078239307430622391318180455776387089978213307569692482322179962342408385096334387810957321080451944242172319824609550350167555288655422251664730807934349394772810512523166727700539631931972960464788550666866065432599796722130983662727190660788412095898004618052274164840439878478019989031886598400506858254984272306550403374995846658736156059007015078254615372177109064506844684480879755926589746534624027739069535373527613507141821120839607697806463733969395505364674479568369301919605867677345456640402443293996606480432178284296430388247864940982596392738543016250331954077109676082236676356651908264772743888434292665835032966984224339511608877179587047411862166454330317223784335700070930159355445396936324959237156657058865508091373056386489260270588161901423218567923019379733172672482471169954745675805737592700116452058381555110584154095654401781294621456270098076041871007341464608639738867109049306635762461877982193738981085484779840454343850347542363644493339224712624941049563305701237932981368312008819081678086234853151190960523877212735532212845331855733124984806211784433215273155651880014305050544140560901096645464131990207460450568751412155649635557572793850088349104935795950638604279953413602666604104956626348680304535330600905691037785423207687251445237742728565772212134782115003587780387868886197154185483409807860142413280080624125298871099156403718473985481807424052590785818716939232077722726158729668385020450339843589812395641783127101323481864191326267395677519095200420401391937837705773281723347780883973873158723624704361785246132183885032169824251973083577190452678461963670085420800467694460113938974251487777796637083767271294517782588445456569751951380141607658602864581308873398911998816488461569604427531750842945503573104956712366698178175040909248248047327131426973798406603304281300567004964807793913076132516895473957503782264548569238216501841545656728905783284776647817275058138147855133115714928369874425512622829085034663816307776269345706884601836191711070486093193626831583217080811562344035054787391512333061648530389853110360783514980222704980876444507122631604281000537770308504709444321484610994634666648071043351332344212164122779435537100933674841794870834504000781234619273037450392479198509428681717385908826615321472953148308230226226133757354595947245490744679619998365065739328404234057016273770496993257906668734840919402892698322405986626891561805914902580000669770043529850464188367898750781348427548810306171424312277134002941435893802719162272728030535525061638569381179661352615022955661330573087646637411755218867504240166369233182368423631889608036296024426768249327704633450562157240270352558273792888151154583501086712573807970537591422748303654065523572542996158475073730311731355103039612764145537054236310730820988341192891260887050321974461713790817007415919546611937961939002526365876325938846649473702964551113853375978163490569418388765817766066078949954820389411553299166032082100861673108259011266212400733274534232031583661927823087494908346488873413755542952144437254516142201695859691658977576020523861803997219453324821028806586822719548988924172406092142220552163488025690877651413824138440727591687987387119561358528775077345253153149823972380912946537150451232024738757348701260444321157043119229779308364670767839139332266368130483647985214351986286443507123004454125618812647965859554959034634160390998891590550996477335598220271195537129676391217873929314374177408537812838562343620576312541469807937761065033948480320616033949597911930609178724257762126498289463078813597635509440925237272800273643053659081164853184607157644703079429815608491901680121366394783984319250909645424327736497047319799748698906747542187762512761019976901206404266433692878184982561350772267011383578269843650199316345250325710529941463478681758743402832664731780264171965183952584863346796973904688488869740990073147394239419245064836232459066314397788251944096876708098579990480308823355292875082861460050888341290928111693936135900607901305893462936133643238757718080511800006604874465093302034102202503378719806315034400464041764737743385922536815957434703757706489956703849831577145204968318116356565546959997172573867471188647572540999147427338928721206840421660755194476873214379444269448326387539985341868560731402029511781446523538675668541009504790066455684591861469196092097794748420514627560385677830634296693560264004060110686691251570749243399704772079279178287210191744940855915645215928970810334163527375282852630994483899227343711618029672920798917559334862041248776968704283702995677185592331866156218601472452588748401001534762035127159957704746885651130988527254588439681228458439970976600379103135700039506509090917917316220514250430147801679157816871065921135321625694487654205098647308418347046647911750519390843375443520857531739075987459499299634524397007099879528416588205439088105913613514779433623472513890513099012224571554774099967206791285720735367478581733561498681829466966688815663239044374818029912556031510576540774971424911495998028274036314536742159302919020780692137383656069379604332257503924739513856842811679917596086293754107649235350707157211675460450023015719783833319994383624887056971831989277128934370268162685457366711254370410237876108045318839088880401848429442199013698877738372151682746322870290002485807247456757691402941154924207442961788177059446830965462662867514198209629345573830021710306902966541145186329160417943459564945108192226347499158478737330635535145926412303266043131943070572378007664869040376751317093504114638739551315909900235687939600035935116129016146075812379631642406596939033477835195940400121910456201795311593939362442540663760208902910898737295697107293210854627785959947598847843662840133297934448672538730463713083723218098745489936561910165603553744771751050700535153213745540154284994197051625836925420201572509754471771377907498192401003619898244561057032763853151357975274474547025096255840217067423294737732914559652989225264642783255804018602689015132693171045888638276589323385135919517081669920069605103969485958654390806995118111213926221877718391617837661529824002247715996757475085747210904888915277306423386325671987930921141608847776517028202109339915820989956824698958562336038976389693887025435061144957049105300488269289889223026512629308673320174593688490471412645645548677549279234508110007585007049571980864401649127517363419120111633614777927773624486178176389887967783708470030007835103578841161667005462663490339357664022030225561263292572005869615010728695579413538238980512858432533780674402056686155010289904433614380010992369798426680051700030407620332382807116739690395189134692479117119054890043402976870592961294032664907461202537414290023464486717079856241044635790456031531170503163599232717596701200420097391724747657670055827347962069495111078780231463831941846095898594590392992623083460041893421148064014427373818852110796999313125489333257003571355311664313594708355674893492878538666337684945619864703756638645602115516274710525102995957313408882789271339458432814266720457238928932645710691706256353084470136203970808481281758820514957340983879817020948913777806132779394685680681121454646449833382203542074391946480739747063655978321063977723641235139358550323575574401229562528253277382378647429830080710780579958111378603852335235681367736592586317715729342191718227452084274381887077082566938721705405654691358676979503272864070084435913375215005849054007735553305772888134214555052567912611255125282478251818138376565905977853469286123885821427149111234147534943623935225889025067949557877524969098909399370834128304952157689851235041914278397224973034419882110141252225967231037379537941815189820349661278812182052594057085294511724919161206023903640725816554590343898967246363245753120728405558525160382741277073158480290097121293554806621762323243860817517401875696303114187208563446296305422921455365905137505966906132292724942901883066903416767211782575715207487593138355395120282859760724361224573290268532973213724320637835684815654678881380740822250001846231737450251942662090421343967805297960481318989848199737852031376724640015530985865967204474960023753436973607259707391460079012133092742597375445392256723559135202709074900718939560261236162431495539300216064033156204070362979965041496467610819122549135581232875992110497478356126600393666072947423414360241123104861868738553383096938553733880124443905475999374705838750579309528931123997546933636954603701170712744819994718945529147970620001342068241698837318778150863177776860257771225486623673196794019957058859382062285048469044791237009974063851226136373090159809073373606504657318283494994494336288274376183829399629188890011204952910304835354747962119284409488944293197885436399483091110822430649331797056178193874206446063979632953205774623579928655525580863498851046788110303934085666967259597136740700715512311065486586401361480713394814032980715237706670904268520393993737807551064636365020402441926934603254084823460188948693862943390052992993618045568246500907888563741271219377844329565350676441824238323913869208245126197654345715434410320645114983861820560057056071807837927842712880726542021438305530168280536724991572474952114070088361752503721216741226804356597109285450834097263527706261336982484168133966611952871182990225795317262474916722896002553774760028281161245960301721279690286923319826602686349356545527739027485122693189161245939453626104571549448253752361632247359131585725591459278288730075572842637924874887556175544895561861976249322287087216325364607497017743911011515264185790947266854632890686989044498734819176804110463874103798028921500304507878562928947001158832639895817641464423745272094272823035929581401115837800317725815545286911794516922843336036128043272910039707955883046131949653802628506713327407881194021028010268337395698570404558460335966550927102354092736115782832543821926158014120267240286756349201841385831394471566331770177267955957622825351779461896613851350126543392468610256278455274696479608282700518462255324303173336096058332463050839064971900053391153628584129690053869581984627744198478737840580333446127863660409179786208380264971621799886647457122365354629027855301398183730158859141122455356910905105158193500264236856034540297886745286511708632788294836926560017745360610889479408095405762723615344621108695339079059098534500422066788676484872654325086448834288679515584342762327847408737844719894625068260156804339659088945818832845036627940824387205975878642407967257528269437712599662496666631423558521136869932114050945253199862140749535542025187889687457139179126600516467415258242559671975595983362634313253780636143197093704369111511150146661343450971511569464976296813559619437017745660140814073103040220197179553166762510541101700502142760982033954119530870109477903964924157955980281330348392194483236586296653215882212093286438065278928720265234537680731233094714948250437195182804882266581106303238650138319589061204594060796942794429007072090566203714739451737978393216471123775214085325523466773535137713729540395376611543927091022486957635491156103031085842400024080369232469694037471961290996171841291468130139241983589160725146881151790590584951354230800062193453898140538419261003696907647389926178133176403954749159389942982142846903544322512382878529725787817384782308201660483595195509707415718696081284153032728522251987622917527829422890949426043881311728724644882430403148910812908397378529569932984345522049984231647229623491577841886853787703114187592363528813991198398256861516118698242435831099494332613792437892153032864505946306564066964051216574705354636388692415096156999795730434030721950370151268163303449676391880493549191758927938136268321770894480636318477570483323276815263635367808102645340519170098814536114399016423837036069571455536020166150191505413807320292623231327544498823678146710720149871235783786838152964217098914764847147765458146124070338164376727328156391636586339512300022414979830247441954439222330560467031535630078346130588812607260598689566988594058699760748578564168827471468662570877853410094625978242557570576205737757906604902348349134049204669520314995246344490092447472195638935726827825645245742567254112500329260075567192727603566497238770931657689408980905853681627729288071185499056482676159008214285888732758746393902946243649632914053800088495639201578411884668686715606352225946053231762382906164751091364133038616019052919616843797426038281756247250448038913989677968455074966881779230212502291263258158469129311419192568181060490913051652677020763054103079679367282838341505392725475031671262895035838307215821653407077186944445313739706858637938933930038582457294293828300384225659840310958029221530441525139163273296946467320014214274984566791312792803475984031206516906816801597848238481308994624860278721202046736324759968842627433713961899452304126658455207236866848138272820089252292445727284983292139782461622061599797056036604983383940205154748943176759477803188874887792402211587755715955499677878603827480394907551720311062605524966685727692362778564116036449439532355392836953070992157549873387480852923993664118235619708518686591503864766467113410534894264844867339185328986162576090201424898053978804000179449938059158957837908443546584209294693036470826559119966129717702813384092512286519550009858447430561855835558562799033343218836763846459551856136418953442037364578539946197113397644214155879746200592760761398188329514180717998977654169927080065422108911807118828567334620063314822770797040345402235025626215305439905809496382111950185202331855074579297850556147464451983234676341687500859142199812322603533977739181288107753336877199528978010625068436780323306316852150021147212257457964062256420841592241469564951101037805498587869991978888194410015994286352176328587996150776128794127582671661360286577655028594000624444778533156255320994323791834872870183822923575731119016964446880843522511732282413462984703929362820426280526381908411040424446961166449471442403263334391367647506117086145702904006111173923761015471833804208170985140371896913515410836632077145682174814293973477458503762406504327151182491208813471634209711922552765002578441755130676875986730139980518433958119272084166861441039039622422627022807415906300449009088879738343009840202765480673402408594642193359584157535998235825444736583123699145379272794403759868854250897748079337129887595320681530769309069462694175988611470801992826543141535239433337935633596757500085305288705867992375677213769176068098398979454680072604820465038406429959762052957547360375318855372926081153890544667563877158716461741544633738981350990441310587653673488045884032054318897590659381249437517244521246787754012556862820325843272050480983647775844846639248323239343920735944795159906833384794069799334224865333155596839240813151919846599509193240376331489949600269992615970685923707455144822635485801875378686938178274856177245106524496261086282068291177299303628128699243273028455296597799411428537967495714478340659495216517526434275356235732584010237926434215940988954666477414605237811918931869668439279130660632822048390570912246102580040440306720375233483895316248740330279583497675699139556359259849569718711561408584661851445990208718984936401277069223220250025474612782256378592903145059821625092416217433905798583276560132540827470644724352122508199514134385086941690919083866154403841435376050931788882445163469291279573770996330946235725975207645449993055963239323920961848503683940214487807798976326338777824601143545577920702478921098425021968488566321708743801655353273459201984408230718208320221394220723930789231393337845823992154155060937063438098803214457138248687074283181019689291892990435386701864743868570885483225478857038534932469103669715246941634528528911178573202420737358485725540653750964198737258659570520416851756102814456716709575203476206293444870126639031954306143469794480374224764055038011482637306899951907993394017558777131397732450371298225202180495951492167179534541790169203189621884519293672240680822645389159150458913109364922745644338632830498274545722369049932819013581961377445497677454227263553007994856200069641319321777863720428496695685301315172172293983089497255085832243251038121375225942438061921001680330015297234828568229790305820923187578561747459033671918782296704002114917019466242976559306909844771053954575368136151792449689242942928431518738802752560480791730731237636595197549134095729392292125580007982369618506710338498553385525411869497834750080312515771661218800880695876934970340712206413325326681857796901521028041921121352843259442595389233060093452873850450044689190051657322280019914458747628402526691752779739092145910470910633908697793080441388423080368388479779888174324436821310906185045448691218370885511255511157932071109348425024266321108425633602060194160452667535637322045924092787216793066034693419326317251159871929737400901727104549383528667026456214230997149887393170800852783095210798129789736517247274419289830720793998259963496689947400403887189778878934691901881369003962213355299725310148308599323209257372403985891511113976241113378403639125501613467687257056857253456646614149507432055471654964263877470349919589760125490760720870100603223999474209233005110334965457078537292113708232574460789924929709657089032273349518710827919820778068337612850401627964091052805611383618447048502946778099736611169590924882751426235050294171240684677489765471918390618062588620569803381238693968115816703011575559775621584312088850060194851315604151204892078870699516589203366363824986802062782727063424935274503131498849888521028334455381596791185664303993900630854180497165417175475283639097141683680627925747451548417467240157286328057595871081110169990130820444625731717867392494349679226027684652377559685203144735421183196363854548998259518923609667387730784702268856318186416641255444993873056070060243944652965878529144272704204130450470516648656152865691039968824632137755966960649078620589188363469040228876719868490033204292800400215639911914364201089101684609870953344319201991653626864551262048338773196750874354741690325192735171432926790508898746665648952973602834071301099170316337697850953188697104916085006417104833063302346674883922281063336584957818178578309630559219963585930918454415598990284919909565872760846799909078842179898607338780634966313030281325167942274208675309168977316548001196020623117021422885259130298073845884597224383299090819769198733389964172899532589350798389809312819502430713571264244912808636655330710226493001306160109183580496069432004014610603187077172197792098466670912565023404836620867874294248329041349812705132236330400393772097741195677056627505647272481180245278403031203486624431886392076571491857165333045118083739366081937307591465865917887345104664817240901342299257136081138782833616954134002835898666486286814865808434265318560462817008599463483055008674401972846884727330723941574493227668969896262225587060122795235327347505502965497985765629124408170105623102677701761503657187411530041784763087873574354731572045326990392319328098589835027792475208210265046061570798527501391384578328168852626595337278096911033683461557836636843446915363546684336781207343231726560196232445075965083296756283120671575073085543143759420406571261139400940611610901388257485674566979324958591596762586793803329138162263368001282757256341925563289621125203133316053034048586619978786130354051405854057634390820293682987589169826532941546316999445528297333123096122590539831023375993665230309685752750024555467735033937960751031793086697537615433732627983130517016747302453495870752683796775862074601299256744398372234725295844904436330736165508426909794021540638100974606803116176410629144360121399274269095498563494735829111246028642028486345566879461380192317226658757696576337712525935401633151333178049990891674133255787789498244786237894575273073251192905342159726125783543032563321442134677310843741525338243852046656125995517972218832767737296071275860543758191402454665670232030513901885304956467199583087033751265424918407569005879638682217911548008625706522896363230710247497377226152998503042901038789806109755969449582436467679928587863273747864426787050668037498373240584783292291931537734305639173303177654235867560316700208210961679308609031144086985470634159321049958919908793597797056627460541786229281042989827609068251938696006281996231246770156884729614085694473934870689772810991152446753917754056421874432633963561028444256690354975551089025407530796937520951575919867721670168369546584324527209082763217082842387801657632808965870790459422057606871638871324814824053716493193563526872136491653064773505163523219648997747364961242605303325855682242119851280909453077309270579337909605231756455154147795967686793918005038457856732257307557807778215584885135266920350369353525151829133118518589219618355875476575254346593012900696656389237836525939506529401305274452000836448787531805655462599826629534906223253263645907946107498987776387866086016586196270260435588641325525365120617970556001665154771610571053041448037774246022239177557237681532561657717859356676661125949350086975125671969181255958803232999038470139963301053331580739196293688411752524866732899534336899268720705613631911869268740473516235391994663009624239473451246388909739645509745056883149629052908572912831748489249166908519021957542663220784908862377126562167188012178792235820429812220804230240312143370409667460031060355811615498084789962154261370068421257279589203105913838521540641228384065373514841773692986435380016682649841157183341422422711191619400316945743941891880155123188431538093195949022574278267643984304703020632295121080857190946490570490789838707288687755684369754955416382982822188230927994358419950750608081598577580434810200203847993520014945154508355553437264885854198913644316454756332519152635833082148442522475122707246785419627461892939401280631392627283653096050864759318363553665571000088822873111217660069450135250848165107166015061249896357407417152119807755671644769499002488936630485084206338197906101629011066980389070407923903947472309882622227402422213836428537646926609768936839786606990359322556911013315011248235984445616976461502342870786089717422801401817790526269717139556074365899810804176108719817620009065991545004431194337308395808170217068962313342643977899066560824474356626269420043249504341548149307998922932916308044561500282418915059060640572343329866428536778725998912779818318856685392798468017312484912029275976796883091938744378504848623471209152567501215615391349528120265935861936400977333311147184444829142383777462585691453341600373413362141748333178116671531247913367120532286648864214749508268086081893975490096933890597819922242770288727434595271710280836825358073871764345278832414525082206287209840052977932532167497063452248099715139348441231313630633882782962076687476680773769348978937167411978325105954839019685140708434405485311822853475279518018211279850068473980177263391805244433625484814330891530604012515411703499170499896704475243938967729943323004052420600067463302006836224363218365077259230232358447397461162815824336848782642511215975446258199045460617574341112279898131219226742505708897208129801225444858454731703528089342350077522166844550419920465730947466898971477397877483235913919194207049109644749528393606277498886396460893205729395589250714823959247750413153998962238971118602510471619586817040671559019584367992426248789075105424731107280204253393663051717582131205395984280066041906366482873521769878329479128642522152746537931149173533105852089685401987693981644354304772441057944294649547818454275532094170286836026445608924273699101670510228016993995830675485283923498957367704244440685626506083453445566311664284296194412138680522306871084776220327164916642102796131971881274093414945995353850654737884042767492069269370187669757159086437950258893966493312617920820807985048473973684521987639987663215085076080063570476319490364489693804138117984854291423004920162763235429426139568397003674258287304099316984239829223180808633291928586908902157535579687872749280484667945649053995673355092778418247312726252093625982102981179605675262738135289502028249719453714760012263309921925202928806448335209714503308873512689503465297905529066098621288797066338226448722865465830518836989740822514293779300749546586673718168962631614155320892658836984792172426202324962771190757761702774505146609437409996125483969700591789706446146349167435060222822312836946057348187347186475397557722099017908780304557938505718441091012627703145581329804757612335986195061255567563874561581060314888174115366444525187422057591511945817340739164125736529745559119647747319927187448457955514447109143887896650543330831648856022267974335286313794265729611669035815230538056328312132909856250387203107056425459232964796746773876843433370371367385615088687472915570850572460550882570529646126643576197967202931807768294445768671486579402286632128665588150335562310253055409348295340563778232233295193107031229752033266721296249545884248023569666024126384809191549515149448876171832558400292590617172066964190304953850216467114636702784515157920941207116241801764053810761779653658384816736907082571172179179726394276765052622254150755947480278675323043611817170229985043005178771193496681004102287863529631649859784537573743466775200161939118241147484492823563110970511508596645172736488582498897152248047193490828416117325096668572768932718367112658630826291590672694190248140665219444002689750669976697992456162113335800929263653670009007029821861530290717225144063270259896608743009529049353734830364496168643005892756680416579319414661146192599502117038060196806760791903115814412971307863187965072391225094550578960730217485108967926967620538126435512577138608313508497047937338423336802213499272471855195240430831550143639179890784874483539706521503966794235159408687103180784347240762772131360306986358134331850297660061651638272395520196880753656311795953344196534601397771772177446349240924930877462741835112968568006839475267341439562554353395737232095641767590930943684599958546176394414483048883299163045697512831811081240383217089811523829210165886189787366276082589323224910018467686176739682674504406202949051900540709008489406265369508973237956611957254870954618043248946222432346360058517001916210097543638978029167754321145611211500134482666645877825832055054170960196874698876361400201786284157007420182122924976118135915241112092397028191348991285536496082449160816799149549941755345168575508256441174408534871128170813564470803621331641515149234318197305391812211129224039065355609580841553887565135671509400157772897649232206467904431574260345305304908507868460541916767346554565618097171049021972916541454643633894408900844322287274662481153625025921147686814885116503109884174860180748458695752711973701967980887196011741238408419846850344738282053301669731163818764066336679089965289105443510658588172733050423184936514949069102538030151649156108292094454734708425987140155488286625265553796966832161295761147196962639827843651279690205829904241802151224247293028354872685500104982174641730793321711914083440153082945346796704685998724795738789525409210595482108851337308099234663136609883329189373986630261211071701228229166620420835614866715400635138614617544156560830055069084749441606839379456393399815971501030733714486985602451328944768443073032538924941518757433579715377272061171870264077993693426543068982563105257648476685540295372546204943612099441934126438896724805147147902102062166460620471408466614060868080818930388457998879735870648561116426445983796069252266907869828266766331740681769959498412676028257330263646514792084744797430383043574149756779084192949680493074698921362733228131584520723246844714998988135522503389724438967775565456722552960792432658064186980494624111887950576816094865208796638105176496919330630937922283861063454526259221430241720291698506234090746881646134506726471666092838916828933204258298979110540237258807588357447373958964954535581303559675955603709214810713663426158332033479940707740639663438056933235634217485795435154918820878191043261756580862881918304314490012625256430340353439492857761534041917371448238817274114034373056558686987367793037254190601198801386682095168749842262947768137260585751996307128920603024649568237254916597163925626412045571521455786951105942920135085055513026666937764123051321535546213814927237228898049561224515034113203872521958101601669961856087014346064670284535003507520177343408734484788625390595516627146880753606581198324575825152744235944389986219312813870245884669243947735819507037053303338897104327315697125589022765174168882360798259079265264968392901594834380147286098500191725376464597160925402351999834556519360272576201289292171643696024915959944204059916632179477343029860981858201844377725097892351680193515204153162642517714994808740898534795790871856625862148726912089047922531716173135038565031717854522615350233313387923544588075863680074784679054156234585690886651015686257499333047611673154200914373599642707543012929678604581301588839546338580190523888247814630755856420354080616894836349789632689652556912606026368669513622975019931471340545628489714876189116892166370571000030060672705095114290278122307176971465609987678860901173246516766573807145378446549468640132971438798644785094452907292013606317436903852810010524153588605063256334385195924483444718411197977188358622085726379396316169544381374489886494549548344300476723747566818318383266808415994645039062478794941561420005176586416828742192610865056255504456799608208481599340253996620042218187851988937321931626429928704599421747409278903595157795841913408069223909989211320692807760396898479048785538982303488681321426803753377792533134702492981269613661010550014157432527562642758268171861814089056427750855823193453654677284828748806021076251561125034988763088127145759528948270711632649709527700321736389374422188618031181538387061023007287947455965669251268459648693312434306381098388046250229073688706661409949679450899692067898237038852399319605957643607127419204699363644608323279033894428895010784031744016470225014087721969298784557234454658478633067629587441649734377941919338664839056097830324021349508211898896310142413508604848374241800643373144353961472996030642940747058295466792449255877854452117827431136499390222691736250146347693077175877669170780424251494230211478705895780420457829023828122797195420586142171231130014936667972632299803470258405457853211086852596683547224119291009246912030710771850919633994612430214507100849957525390187207494232756259525011614092198515064704210617976628927896006206720101578449799720597267856204372247219817128501864382882054473564952835215220834478196335523634099076202746123359913455141021859752949568539187766878074925051439047436889688078238634775700258578491511593409140095865960591121263887270441514143622118414847369184041645793947536940372039489392182766347764053752560213557627776635473481820962284216051681657557616139671057757714210526780562845175632022213100338885922773496642047316856203856846208158030063215242469789271746441846902256042961002365322550602946207752200839753192524444379574538385721340876292286478700469123173613503561917558219581162889530332418624651397510487325259085996421019843707684390834500762575873845436291894851741508166154197962367041016641535315908577046073290741599131785388156559845028580653715274304505954621139487365912197054409809441250783906697171287065671179684361203148365095492624664671716480600424977896318965722144626761095524981998419264146458150305497147622454854665644923496990969364355021937226457360038124864040340862871440878706739988927645541888341990882067751515514492313611309820878337066472248124062624475612334698772167315772716185693190527158228648189901848868963707524454978914783182995367510548616507248227566902836372395643835854792643938018611041822134196372724188631089206980059780480692619243788084363231151122894241735402289822703218327479856147786534227973534059854410553636490209186353597641492950266919405143905095286667617256729896672799356927194850086950772529289305611702662345590863903335989209511692986536827332703487233754752674480260989048673414583479224881162961848438309328357001900805105564365121192031044650715367240964966631381677067992013083559162335508068256781580924713950206837701837823276932069373276211471416727447949524043875762171798650692055387696390426152162318754434633744985844351894972167491404513439980276190921741894075724396770255216717844656981784100849192819895751597451923997397840133362943784218680654245462370921389420732834604694080624899372700733830656592757050645441442821770013871482564530460164073544992385809338571812865931352065065927350719172572307409886184410386969049651378042770540510986116182990218464447979196624009649188106645893375403607132004606040899806993461683424082939586821898079397045933733310048934382932805115279274906939625238009278021329137301599208499551533723271350928705487361833829257936122639941621919590484270909725323256976921474223832184857633170784023168292638072753334408634130473697178503987375428617327007455144819196567419967407206406108239428028251514258497384168100068713654695053087658907771573399609724161454276994045833536559006605873730736830508598341169411788670253825365717383783441567509443763843984115016210114731728251413670536824722564155006814634587328048420990801392879216850203719346844706143284385920689383011645658550324768137426426541320567576260626955949932610754380575787101062555607277803002442393181909384690047078704167245108128504296251516758751182203902537800283391942898679415773782881512271220762100561087509898803907881079629415924547206230537846336867071459384637476569982341470926078672687473909323550339050627571250666189805696497381395791513250615783055431457755645295327793771811570089068360513073217870389394718098137762853702568684837856287732535530598719498137277926113260929611963175212734979842180698302614468269928345070766279984984372406157925628533592050004710450402798723922667039649450730896911579485483700391372128166110594918666543985296088394024166862578064024154746104775853364493120525579539515167154159863443745299099918479215164981509819362415806256554788195572673877702301974499628889269575087299502556332376757323063405747673888405405261000727402573439247226188377368795733345538203552388342503607098832882265021715184600890468076492705081954757974503869606137749032970379233917879976110199429487562586751635403971373127701733333297190224720447976251246015947183179509410390407259540445408809747982176191744763453577557421053684386282028098438983876763339711274030214780450214705828975870594164438433528739996172177492402677232629324094838732551609147905773167159128249941707457044710289764868883382655198599314662402071652329631316020434293899857285376712867027129626309111907431097346450536144673409504112770945588973168105465380846638527114650002408495594062443178330870778469402118719518529474236159910615441952744842480774637776908169061768410890149806925404754438015491004456223135590315268621439458641029476312680746752652283202557684447247415578097444946993562541460094762456183004597721701588685675214861732065686040938555831671242553439657233871836028159313183703456560485505754901090040009481223280861160525624716120846784480456501662028101599668065671761299157829585954148170875469860643216759534121922420787249598683281918024603709574034587403717672715583031030255855838354052259679624704512068552858380865580863811810385439602927841436087955562501577831050726015782197796690260183779255255362546060344054765194365422905079617771060424290538169066818955166310634388280287349188109727180643467710656643888967352606586597322575674625406063294338413348160492690635047084102336232598353736100393998465692955799613825021843946305936005095349530333777132041530156934977533076940297522196865473526306802758038508808724833950171219380380999008185954692116278448721138803726140814031644502913701354263326796477470306141754051314757768210680197051812956373813971383100130134336275085228133807104847263744832429433871858174884644275487860283489303813179255071605603909651762148904465646691656850905166193743188450240262936346952619122278968497130325169855778308802673374783560747272995671153592791489985182849720019107655267366244324506600235452748883017140098934683859303309856269084916198232245057646523118447464370803782647525969174811504345999752199229098392541419266709021216447071121866064479149572216206707141269131682434809805123655547503864262562519883953189803881372948318240488539937847775078763487120352619289328274615744046474938194564736139966261860760969213396621913098640457660340011471492314006082147629387322805976787285223099423730582682418754087122990341235082348174084435491727892499799283491765374279267025539082836377294472780550860408074757871428159044127581969130896918012093742468102101249727512643602278751904602333275651235985229348522528572446977642515111542957746074532164851175546327994401783789087321806705414997345649581400321919890221780929604815499025477880220272299456442473215708373021074385348817526776415993020770125321792369727233571676561185669418107424594383155143642727274697910214540030627750233612262503502443148095442463253638252043775078533357754373513699517885744727756710365900328781516683395831605006519145443322831486315723982904037959914212476123807780464907396523484064913195077760219342610338367381767293739735191933359760664498774356360237197682648336851179948373227140650074485887863420298292832461438648327733043345921464682689643523856993959686816210572060962947184721921091440954299552840452599917708370924161953524896247459655676570646292154397792996084549553813052587957558317796100140756378452216200494565985795337195061324622913405685548682330673710640841991594903683760322065041878010208684907562137571972094038426234746798693622295217879104546347831721540152766717864561291554619373773346193056896778550746934129304983292721736459550094324331383962436158291367994290590856107812232445591804346597556958010694097960473906884483392020696937111284914396309672688272075898219549089176654392059623746139602324699432635214240448054920228828685826199445024500884420936063860759229658178696485339106834965178330445653819697342713209735583997168021408704879401536530771942033934715100665337834523820703634664793692722838867125195478597354362389426053264684519668068780456365885007863580373617706774119195951135129325939859192558236463749742903435762696029527706125126191040052935699572180924296418094498514310668750026892904084840984511745592368839052419800805537903777131964705677765348630166294740293670937156976497019926127955153022610681184030633225152966377095750480946145178568641031413836924324730175771990646441727131296321075846497544187025984039159613276435141475928465173785800403698644264785464751747749906022932824889290600125529019281514145190369080443791077111531524685530574874684152119216148322500163100436795568856079299799399035989188718722816901179934349595595836276374072109769318126661030471261521475045153468770442827776892022657872103238609522608768812224618615427034699678510938753910644852417525293444417480226331418883750749743716780249232561534876894492599769211687914903757374921800022610351387403315017392831756441694636444589638493289565616698340577052417970020011558155223924487739772241481940878228084952591048501038768023788381203832551606741179238966296266595663132540763984516581416029067551233516908639369984487661500347578294434428079446377354653487605141153599331371755887764903948579782164850752650607534312383044153498961291583444487639653817262114990697827920093052653703304549148216703850354218569127708511201178518363626258859613236878682271422786260021243845343223913400760072152321117041089878377095127172641405187241516500854528842734858725941924339069087840361726025863106685025431873917013111815442106208227628689680493706219912197958223957744343254334476896553159675163321612111750161772729855770660725418489230526134086207192795767211661128867662583509790239879180061640368121697241253721198754689547178454226497412484799082922845678679098259175843554340937204484829833008827681685299173030200618192099327320874713243577039834071706033195976018443400256998403479786703677017510173399949433897452937597367494144220641777464866565678478568137935150040488682851874186162343631128359835911211126938671605255420175409674154067073213465453270655074601316043018462750544834391136455576206173853389082879228125554262191446292671184981220502888670483123279850016410932085386429935387220262785679966647041910732586622984775970182620926753350555885276376510375513420228430684995489685229140081535242424989278588638638254814376181447935074995861930404997370853598871945521169631633276052256693107887041839101943033977182740738295996944110113042167844404944362681176230037113952494608469854033029654765232282660323090590994637676866159337350321926430426569785936996038338478688144392141006874361990539694499606237079863350399622582521761078731514326134639494000677111100252789048998641707568049226547628324395242195946981934558908932442608981906702480023708727811534333009074838319818313519209384855792198149688562534702551410580265782171808400842241671575752488930602626959527775923241838788342642394094545236721784898238756617982276738831219708419501790030838384500284274370934352749944951761940210667542566846658602578764770130210511119683095034652244461184778744369935289115362308832961176815156928011040922060291353764070050734911790564951092012949742151466509154843149916870947395432976530421725468726419811112481831978806983163910397144308230901581358975271996530603248607013853135812797536638883199896807310665668571399294391017464305177210974323969749954160601348401041879222751021270560930586412035946181933916008246902895922181008676185237756796721372104205653864482243857834525313251097893185654117152363979998948459045681027325973134468837785346143792295959239829940770911707496898889429794122943632475070842973539152545060683761594302177022465749971690536424270010668802747114376288039737107541209973321111522365988602111299419456868318343520081518874318675627527169676592134063739646644068929193387831994393058275215194302356347843546572394791382538836556115328337571361430877526145102559866713849961022301968009719593899800986257213983341836980844314240197696066907051930850706590304861321322040172574666182083014400594008528586104731235747531471741762645384584005177257847633086319364092136965974875242791984942598002966162368387398466434406049803910130735670530057670719539275830569927779366219140191637084762725756587875140211816573453470526603461269662228145540812661906430394219404703969867360158728124672644263463970198872084775916037488739033117836451895996550683708451961423739499025950600779806793529339277273243808084829885008360539344598643192919878643214087305294927566306013725545082263141470885530588558246020802190622030902872728091676184787417022356247480964621938739587754307713140305952880040648635389946030709553879644500832718492139016624476713926916725778490296045206304362977267451518627896021070895601136505468843636047714113695161990839129556909350520113251575279586694340588290816771208391020862346321520821369103612639764249225186743580910923314321589173947821673054781854874279890412387698251689340472425434491023822129813312826325228894877104206669794103282039361717088784537307821576692801797075913094266449645494175313871760528871031575605294492276229811403315422658181499965125476062792015097327270730097839185285658944186718237136878874575271415239284561794028045963272588665852875117180600297962901810060113556734066328506189151060930593330271509681677726462195649210956641373512625234027718569066978915923621808460669934367546793523603452380132942350584515941506103463178765418670116827263634789639681095787232879342357329097699843478577668146708518303338643884290355407754144206512959090670140317154804258613127254847460022123700067768492704689539969697300388774193476281994835265677213952716605283532849865062187046286475229669263438980495287913660695428949417321158441915297852646278761494307432973169583536797711724523659541463845642586906755070603737214577748297768183447937722978962799992427204407913288024967375658952383892357483144059907205630341679683972826065386244874517000259358225006941987120574018410960992784426703458346223861123753312052297720839108899504349263602332041265346677833782329114254915571930246845054640849095932500619996183530624154767001882836462208889815327201210280360937992381939586527678894298234379363655508090820714601174475023343799762355904838571380984552054635060998379939074134693636141837106500038829834754652328445852396696717862236715290942010344626262025645697609249829277434580598390070828963337329764364595188800871320820870455942686837476143848224493119316381143573626041422721551970836535219341165215660086951598491323657203144281793239049029325763500423175054276141915236850025763767970008825097963482441996511112463839026349995121194602730224474799232257118823186384016112377921194435634301631552567178086947200472381580559944145777149339320648969583718916748982943058622051011822504825423868530125570325823022094012145704754067418125576556589717759429178318724068360191707792972960866277038370521974748083213138098850652365920147451117122297877320555904102458611655954769396441276624169777281263195645093409780637914179902581370526443367965600630475984437630050677398738870069755069791972532791406983991429250497083660820622493215026339418481744985522964380697262613097519604872167336761678618519174589480557843276891299920694149716318183332501525102378881079255945377949627922397072452967380849894144613913833194942730598049956299496659505736001334348124489302006606577165680249541098141600740166527624047798144809664392778721866576369459296450874242761642794808023649945591215038861555433294636089871017881317655038077979716933188439569492776110361431997397296666230544276830500569855725844509234544801364294856347415398457509135781684470451217882499494927824373764123021343369382013590391859727821385270534961341236147670479246625886150639868823750640182170341088720830327695563276164479126791107433627661492410603705693706954819303132484826835416632023089197770310881768433484446475697620539817817018039308841617861561931643344521097759458530734812469040612992237255311698024888305191077948834295412050869704279227333104683959010577272684230410045772398512408910605937429371158956875032190651026228630740796045989591178578804716612583969786652125596489233377275248020360602099891743349911515402905950707104204249667097619137493293842172665882442790172432554647411137343320083390646595428904537662268714417169187566994631845508330268856872253177712705073297123301278115975656545191702804094532175038334454095249568416925491886486481162148364051778011981730929970668385405592704595630682231046352519290477947142812726997034812862285739836906887682854477805397983899420807753436616349316477141488676344840848319218003787234395121964491922088069029675744990642852442717691127624899372290003671596704423555723830042777057545389351601166517048938865343857119019260123155171160807123270595955110365714376724460866920474449350584870741903047073615368699603716388590342926634929618351972778570614909915000416925096838904261691316872684184287503486400341082046506912955095732390754835707793124801700208471644490424125528567636327215977547316194988346841914111730048735832912347264690675193155563457584299624729014939669100475313158692954894281251981523254543323837045008168990052696988951801231165411248102204108223346537433377084443541140782639916999159996609098811477436336135864317540645120409670943035639824566571539173038197326765249036882902714882724900492530795943243834293585528181130141673735603214164682464755736421539360665857259390207931789477170080839163952834582866729805487616401282265846632676977117770678198760209152465389014432360106441252968065275452698261866686868302397466646983954322089873379567763922461341681028312583525020183923564480804358394831743051085312662691087396051875203941670258363881312187875927292668984223976548113219863994055486992388274317834234967579303109707071640630212287514874657918400391983593014481557641016780961649932361535476880255204016155573444853460875027602907250175637897113459180076005370774407172789967692434119609101798207121052114490474938349756648957618954652272699264650102226567001703042861582937262724390608307168144021127717928555422093711258601662983697391063040377234594392156965724598842324390471525911157991781023332903257986377409134044989615418353621158254615595097579325645920783189295388658324513227293544212906991452417316380549700730933500155805418382412052022920380381643190523349041929575881492231898145754039968731185599787769712022997035644283929501616080368489149505697950471248049191563580415707910582094839510366260217254118694752293868495199092743601174190419513545761086060189716502886366638034820390553934503679607847199638392803098983554934307550738233437801824214923065923695320214999900896774007598564736081584748257878614168626918619361924151988024988124225060369316919244064725399502497690650619310597003093812124207362812318618153165997349131336742474557706173049823624233553641116411405435775175053260099270586767065655809689918975949097705741420962926753255755322894129106420615172179409153716534130899517477288753319472240889449198515291526811745833635997186149534807906109917353724937329696689226014730845750598542442333759600775059828429031967189769475673243195777398572052228523631978896282896059808182653451990525937943313203434053122247275072464948214274038845112029699602323673417930982863389460966725003238611910201791654123046552288055535148904462911516904210066301704801223550917441782493148277812044580677356139877315338949723771999855471556766088775884621430994543764325738626589862389461099100005094438534838403575508862085848395003273324092827935282259431327028736340194789196632794340203246607831004841214304295165418346442572722812914010977731995799243411163791280087706505028273973371684780155079874880050089353932833932654673274956046141605838028870935103401194013164622432195220484262958152725807803030995924174715088659880214668310063772427964623720364048075314073292243257218700782301184441400185988043411855751210006132652416112002375480401850438517649365853586310794117324898951999345330773887241739045724043553240102280229862400537955082729470717731471630796800099174930842906231974948385401634544324770782848859732195163689635776658300552604429686695364057305481135175193764653555084643918370501379559630935270918971776164436371009811960870128579566845913756165331734102273147766665747815100962225410244023004952154741449453366809614981051913848022678472355994989436124771990877965631531459439482404998243774496181281114953157557118955455961119719686838972569807130744860316345369091399844867699015352733038733677583737740072499677457906741243099857705563419171013495823066305594616786857519671926597540155389126911387549520715481827064547119451678212489183147453605369290011163529554127174498552517473964130077606024579122532946742271451963786838268978891826399544568452250767374355169126418305347845038375619023893058635157099762738217217971240255377272808280474426930694956090790200224505650232878600137743025129540253935183048283556158201394296760571685639296639713892415764505988747337428708415947705392685038017846517265507239420695152996837910493989965542394404215414406017786524290031192078014446882404441380286566477483086405536786353652622862012942008434061262333624068204827875093916215616208249173297689959109973934123413759782913473792025282191065838067335446239837576025157304180612677658382108876487108753220142345160295085020061227392449678201192887226891108451562285318092913797172167991253626354554559967537487101831512585708314366972932664384195409915916046024576202758672355917998368335295490392063297590142762203710237410076486171007982390048208863950823697608414877269681393618827252510342992902609086720453585927992747662989444886405992816949431537814769433224026959045013246197368412116460363961201558131728149190871454904339529826902262011769439368709953915673427895920735309618708882656233162547769657402836964428529595619114392862620844372495630566119001084573680196588148204324174209751767517728143212839393153459334141885553146889735254690848568254826378365517586795713016489061423058916945491236131376484799926595066762258585352655399399923028538549522194926087027019601825239085204580540038733213108750136080973470151718656352257914746762742004023723732201337121463918870078290733780029404322120260546894140905288751190480154836433103377271021526689258240673470736557075195100768437737659321508456172546465560722266077494674782802198714201341730095266645355362424216983291094550993598566672882645890103870215381507229324557991146064415797527078502266837845530556061576389769198452116352169249498782348621647645497383481338587412000092066327419148317127459152490528378081392929783260061991849579657029925034014440160340146948830812006880037158007186730729728404822923875540973880060882311199332949136955726953186579763043778551501876897577298860447318297705740819875745893990792582136394825082348821559723129574335406380143402402768797606158575048025570524732200878501418197421533025944587283370242960785544246233591947849264142821583074931931019240083668881268029593582540988328462775749719588936721522131827281100112537373383963623981455821059157996912712472339240825857056111457120525882456613983853090752695699639061764398758899259444554103492320620752113572063132323056695915299720284744844660531632693734783335955768428452981314702048458199672193414767708121851615959807289408305824466598734935594230355425884979690206896303055834900784045974155215321072394297631644927344510571054299112406460075824911396297190752523150778333683381397756470688817401700059533477857697412468441759703635400282426540009460009684911653000789840511676426933899782671931487842772820837155616499472958918220237313622272343670877848902122702173473461898201220625506257063118935344171359131973187143340024224922011207809139698898004285526512693202086767176254126131660843642961693985255799811943557650902035791233645510146188242775988240330779514378980483635062060567772385277986314741085294079770343735929241014896884035223307095533610704065860234254654477777800883633124064320864809129283413862105424596681537100523830479535319286925906069814492416372338150383393040586055036579949133247539423306969240013654592310934655634224915139377516866180070628220174917938544278856879703167194073197403914033666389627066206322932529698207473063985663028555559352250672285976479078266066825126741965102742345450454984444199565402487828198815784616887892467729231929531532217972732014219606407927444844783210785635746572043547821691968131263239524983405553616829794243592688014070304761947409690367400344411350149897634768805183777388877722944829595741765505250407708347042395171005830371724876613001420084588802541176406961870156201229693047681476876439366124060937361232717369481687141954184147944771433073202325173137191425149970753138423595709846254950785877501999695762566323213956398536564389799437017677196915854921527845099015461091430231572650586742686040931799300682145180730318651732140711761868941967481124419040788739165346116319881822385810283108153754549532137417034961286326404196699605565579912931575891830813501088664939436597625601092258113826208278524485093496993429608386013703640416816089063532754390489606570549855804510326367952803518510724447364980916194951543782514162919013263028166131714611628952860645120667083739229489537202193021696719598882511409234753367335094816338240866736459782713671005165952070294436338721425210501079972589152325063624543140158847764478468228047054719897247933658037321670343054424130849172973000262880610594313815529413276769391088395102019400893250455033927070613502033284301811931027497514101917595460768346894409504948884702312335788277118103691661425422392840774267603753422277902942867835266846212513162045694110304595130567530492773675125056148476230471555356577004010905502263523945749133035253292359163834711099084705541909524864517738312835907535447991927647674154485042708331747377544789928374463446082724578434611887069063969360167204512677859467173370286317739907669244755214600285106214600367714082544353917322354175709164054345419253501289375936273992270572421348817028683860075990523686426687734346518261777635135470620708890443495642478368769353852445390255526836299709519505444264977372146523545359402944934393972917373000908709155974968397286315349697625319748408713574840392835382895279426078671568768402392550294854006178583538279030783593574421151019470713145073537592329910671470854452790585096326917993159581489839029084173505750302916145775427831745853668793850727591367253424805727927978270778722568003791053787817699891059651060782079710471241894313284896609862282773613081687541747995665942877349894346024516105179494649870892745065756462820660786072491007814918144416386903549584603703161371811653677085598432264275274016938438558631798982636765944635759052484618930724806866834906155589238690089214335382966519220628792257305681697869361338727639943489007016807168090151654647802562730410152877753118808580580164561608341182022988703905062955744130060107746190077399373615822060816592722450886600199604545759910790254756333949625430763623031375581604959914269558083931574943543276257968342313967650873557513477147391747898799272769834715411316949220976726563951344745260513550791443747203091830042766389384385663367237122118816693457984376722479697625635122269705193803444885049707133728048828551686587316899849552144906745583425660683195864481371808428062715549605906569880343345270762041693431536880248899198401770977807442952066423772262516932537179906968411352010930778642985730946856587316922854197923010695472761408151602744253551074539470022195261283606381885429641015297404917918844401288672208391455343644040233861358686347410058061391210168117024428527468588684158659218694884584801378820422503700511424036730940743055931808237884260168346453210083388247987786391355008385453126561172432551303224127181000740718504795967091099322125293070216479378119337662526426827362065211150039760604579887626359574291986982694739719523575998874465639197528302290514013877218126639359982316648135653113078331201710425338647897273398635063118595773985241185174121456527232430011693070348736649577999076783677632328009687132471367187879710690977032047188648526139537223075734134601989522447175932958343873930468037814330074445259008092747404174316929321330885914464697478344702569152835840071192614274026667569034576398885915949283062249099763285516922833263651822501355680087662332097785311633510788752811757265411015075003923837620137365673339103313884067324374634966838270388370623750427507973694616833853033054226048418949696085661562750243145491082541400652843659037033401628356441613343277958085504296175026770088578669719747256913816377640402372391251511545269440310566258553915758313301871360623437487302352915815955710224892851551291666377319998518323124286952324593703814936850217164823032912791216284364553713669070866509919444114836150858004250427802045220692773147217828587859393565526833063770146387681586080450351760879901478868501751303021769102680022373220778786771590155580457569086794874300352539884669226068827459229853020869645186066550027743557953582927332189643132741119455991357099201862661463489681368093436928824618703451964574322636892436840512377849725410932351917113492349039437650202794296169414458716152203269488002383907474831082077127648735756173111752340803053309750355176685842970096254854576857619115898138811037348924308022734937820579628107204196430281625613877833115707447055415673143476107298882244921792094823383013622213664020332913032626875197007226491553225173606911648684091078363317780239950992896078370170202683693383693306313985951608460159356040442140691041170225637863674904438255481840680818016968470161768146051854086348833363277881331442413578659163404655291768406606480217578727148804375558008992863478890461547487269068673246214130901125497765293004951447265321674830889126149579249278933720070734538473276503627136593229721949624894355292405505317279175223186235926564191346930361847593860166626008260831332406474048390859205665434698798044237945619103169144246457737618600160338315165504300846770833189247557170141448301395333740653183547140271266505589430668871382443839074981798066093693453449772429202569192532466449235567421114215344282053630266440417390174108359191449881072411287486470861183234922958091730135748675192578928842027370097372567785312930080385782710543869062101501721255317426464579531513838877587273625149891875445702488030102483215358222046354399503411293107756694321501411234521448984591925620043436542550400176888308294795191950464472816848180699421617610113601550648660235786707187344305887219601902314312768471696665709357689288153496986960995555099327493995327295713281017476278706559897170296706891081925809803788766259071967827449233824619802646835767175847244252995361532482066217359379107777970626340912974162438702017573729822326793666145741454766543820592663644869708095658922450053695988345032009776927012760769995086061655114520221025328234723403750884820344928025544159413083533972018231492838247184962333918548562574875536962269400156796353320719183712690793374566025572305914972164375097897794791302197516576096144997758453602488070381672887482339152326081851845093675453671478599431211260987268723447401755872376714439434441740973334988166527478400683402331051123827325878814795829200107024585127668783516302553125774079759947826986151916646705884367855845753040865437231863177590118430979781059888753170685153965105514707669233513753450700512802627819749028453744543440598379696271939391047885339377559808558752125220260768069050248496928363203863897135809590476406255650385945062274723935016837057147732048232367800212303792124345408170155472689958757941831973618814834353398627504872763526722797038854921878155330566489347714184315709802372152916532877710112581277368235008089730377857990122454798201592453633997881478844186656555073058961951077868680108735695951076213918082940159023471758707370144249009409729437216179829055843431509538849076567244206316817163666766315153380036106773669358445178578645823843513971267544470849736192510118471641652697342467959622647662639991501932574991506409086557299980892986910295071313839859706877085116936770621708863406572860512020273588773747885212257906743477527762510181411165395967610844489317539636343378956395520943937203301785131896466764178701058430148140135498409671312658762078826956975312153288682835557489523503561073588041807877091988893181746959929214993003630548061385556265817334845566330479752294561108757999408372597693840224240838275307675001590545887137823517712928667255845430785644458001802733371801026034695785215088500504951420136298835066689867539299523101641948744453902809682194487492770849494005908436956163962542437452767601909774319016319489285185973871688298809721754215296777510784314934766421948519676222835022102245311543055634727320915212650582760029117871661666000451692080938619900862123533702640793342057011337976289451088461055306018966553281306172403548023968781986581460485239173987314568982155499869440248195956558800929633094636083978785217789905690284993390054021411479672311506601855461002974140316977309301705435607596011814118182194289385126978221908289262058078211061449332556027809782054628919315168640290877888916292642075885978027403386764104165493021639149346807987971676294463937209765941828920658226889419588368286933663543893711324232121954811457144992618312690586818352904299341837144046754010511102183090298616353357429166455694347826865457724844283767813209267672562478347464722941224596316451607698523871886657646797871506232360508443271490855918664474063864624453207758730901238395903452262167566204395181306525681958153831349832534509320436291738500478197948029139331167576471144652996846804608920171109642741549651917858947683236726247859789575941662480566156372072543558603706904119711701264497152970382556766292821561859720617811732330758439795209221712371043169222860349699503623585320307465640920496399625314054357660971021359904506578510017797261469143299976973862990679071738229287751367340276587657496350616398961297474104030726905562914718846639548009995097957537539304701701280542435045873788908222935033525594318221513931143671780627620571097986093726954965493241859968420480591293357022231471722839134828812923882222544810139621540307880924055396782319953452511241321741780951644838899930765683965004653367057993855396824886565868164181831402291751130306676654721550075212066102872342594125311604484272161139841686007433252238555591643716592637602472801132139831338563407073568508070337037927119829309949037213819121368334022428671928171537704731620660077001349734137046441367951897997799087985620084877128380552249472550224742133669986344650617136441440262313921846988428961505804952786097494390406168299379628632186384791444011622156052508818749496566615515024644122114744585260238959258035355825979700478874494874319025633862139200589844684045923236948240124030182561557565982107332797779875847867201207331987578523401227997635226008289802387454901433180468162162136344929729587458974464749182174925430400997403542587137416757016208541199996910909628903864327267089520072247960612665156076297186821935307608285756345138887039881798249804585083205203459627725412864723665265665145520409160117314457066748208211908866428444408628563559670560311552812701361449249610764915560563014424066858946836619527733744430000013779116032769601633335337554859761344785928631323925399224943371673805904396422388022271572642293850301045680516559789774483437215427057290801116561984724165228322133402530355428078208113246989665505374447748926928872514556069064412148306804532424710831734713106717420666499452872954664719685834229384868988567780179493700370866186821283377390549328546857887762185785978179593150461965577326189852543954128548425825033260311136612562900031646915273541781201985097736917645762943454775481344079719419792019017535645758791503587971526587627419985364896766264357066801106120872103283340590741617049574015720269400754823610668927612110888246098453741959560876549868820470207803155813312522965744339107352039144656607496998835264421017649981724970956791787782244080013085884462231029049979756567160048576032337472160203266760211495366905704295313183946750470355873638090665228554745148826467697186778108274170103877313865200624596163471754215664197034084125176957129432989472717636742799173425015383124665114601558379160214911307359477909010223968157707345129115729946303270604714900167548287736654283318004400722762764643496840797164474500431148750693141811366601173604160892938007786480539908779724430823864899758163900454573536808824182077274357808813405763651770098435408825990873577453649894533746689270167453547158997916991953282162403466227469437099904682332850618018442944853281934596465902735424819814188710508007558849584434043700170918469317776733882611488612612341067943673499084259117224144287798130459743052453021124154440770781203633846228679665990962146236869218909170801808598641541011215280428101990371133088554873578388410335988068631436138050695235966208419388061279150921055913413100501298129082083543888211685364732827488904498438940815002662264225824485230154955713229991243783585032678715770959530565006026658903219936830952589064760090880364177826271809078035452862705817094317573262465691222775778034889494178603289599481422039083807367035828421194632081596608858074635834618898577336997604567026820731737888128625312916229155634871760893634121465339012730209128947338178454898961500517240929845208429387280415061640416397397521732513592359749644043296306420213972491318565483169390484868375521875637299479756519618384761013036153374241920725206253284115896315229913044943181467214880615187078474069105630036797282669033520954857503749169844016023975257727347312830406134653600259859176757485043880235918863636234651360461662716918872008996726176889968110945417966478786247997792323951324165318149691432099618514234132808882270869586039348995460240205662117288662987964042997543879688073572596143668282980849318091065487683764856310941967413480055881369701522270914834453788313524317075697664447952499851547740978753929490635470408030533246862136702455301441535256928170065140330926128824835796486147967706720143187952292401741629621033438720577954930839821442557288518580910464476904680782731615015503991658292527975285023691755359776430059158516800969740632242436554212575282781188513956912323500535049720769063335046332262086012279241540651316393210102326508149658910999022637855425159221259151540985550616460116584059447082185852803943386294776157259841412057451514490345692302758474894887981685509624985911150611318679102013237783179520586115190751771119274093843412828858718031404591040363458399033861919393192584146682546469586632988450852153030884041969337921350530397071364155294126877762493609443645493271325753420195011662843463285473416402475235603134205893191546125638867527855433736733651568498551567372054533712775026210813698816191778869296827771918950762454734407796408633758980128560581115363240753437896020483030767369237307615841376976098214670698595757434138470982411566993835299387179994789184567531180602557143908685276451693544104449600454099682904067822505425600457295262087560346453205213871548782315986857195250029338384046748039317188721231406454680762938134860656906807273506781581961411485286041378418523894566242042634838293670986664313502771556563852818981389103535204148418817164620345863816461388777285736768342912522597052513219018867654953191202880118327393566159724924212156909937917063269124253929848201910677168458454802640130907944235765667150274534456175453851000847123556069988859458761747645684338358926962433806176202340235741788853557571912431090793258101115809388458592980157147797971671545225377515334834136458078830362779026900869115502543597973830248812535659276938586372539498529409974254667755449251811342972923578335224580500018898030916643121054911013843561940026402819282465498587919259226198973302983695143014051340398733973911019372693723909616950246345287184544009214611044461687158341830677593035095281197401707818390990198427755340202925880957218168881229766940139629389640299436308767202253893405284060170895779769917725173948795766202543212247097089782742399977009467617611819479014235138935385405659177839474784357265663068955106777633189661439218318007444112220513490827328839068919580483368140750716548806952073485887408860932736091365339225977383573613767234860991624338179287907046869058250947299446474689978256128166023458587178192023691848307034711213090261149448779604603978957338842621328146186506358901790812760255352347620858661089021000632605245045745729434622942967719911397101020318773628324280899734492657947644976750608256137081361279459928473089972150904449858383075144804324286966007486652904337184226346580008801033755353175753601349698145305044572732563074046484022603252948416705716251183312567949549599277484603039900375305006460759288132680063706767229495009495177920115625862160747240709938748744898439174831255059502852667559371392272026313521978572046858677741327818295127094377885528787582192560642950029330672153117761482649445768859392519891186647740620220632939718401259819209185619446477432205613765219612901561970900519585022286791462886074152823372073967660877990053754048860412312989970080815961755489990139766759050393612387433543219782555513354309538401579227296270407061620441817830351346226864034883399776791470936242904874609741720678862148342623941432402173861105034697416582483026260392669219616579789209886957592009903539408674835794808113254171517551368050996319052821879933447989291856477248661950969431183244770433322704951787295362233112237755563235018204770049081024160383808424541345744110734061812163777105333022486678568824675542837080721355529121709432277082291206601705579913967541685203387833335310082242873492560298026647049230665158741530549609414955191882518631289643272369155830695516125458251971575388452225349777834285216408847447316709597362062417618540165293868828819541876443672780137620761969285744362310111779840446330806153291640873574656297386757943538959077919266691801929698849208814352158314496562632589592698881844959706687883092159170944276295813129037892495309012759389911500714289353539378152357185488769210962901925277397907077198374747837920149298378782164489057979956945413216910751426283817235974500818968556729578759033783142329019749065444113521295764229308438117297490531146847002581573868049551116199964748894355707810258303476701725824321500548320806036545016690942961209885222209975371754603910579889089452832885045483232844385976271122485393249085468860049873200282490438818126144424037903438555337754399927041811634428480402248056546513989729249936915780484319150386434744064972207482597341121416878602325738812855681453873577014036472038436247808150512545794338716232444327127539998815742493078586558527621422618744465818489297228206224281088604650443983797931353664509252529280694188218320109772139239292900146286353717025863638806036626976593722482893768467579354128564021279316577471770779332155023138130904223278741144470935489967014519654029846122607957621157364010441845787145222334442141892902959016032579374099916063198278721026638086491962379083817145720243576624653666529046527048911830585745890642214347160502094914198016740949902934752471644328283346332299007095163820104557745839973882994861465923810527341476953095743260076052171869146515861981189787549879220380895534101086590076766679150974053921927329170317692586425522900647500789093244330846334987063205309250277220693896377402929380744334439463939781772691180394448307386026554902858245212253991611727094555802068953869801580920550011540661916639201864114133589282964413026785353305298152954930351738549552386699251002726335298860002489520591776658621859437192082641956608823867696720155971538373586636905110819166421244322480075089091965425283576139596488521392585991259268604294524578549144150146594564504514231893169698478991506080797741571132832713720753039210526620089268212713217798825193379760946658245480485831583379418256418991388176759121848017590939153482710600312317973537735525456610437774922533483785785885778685395416960473998783398228230093397867800647666080582796478927990247975531951119062798045747192379048757184268309449627369265244687280607758430983254980392389857615316684708189067956284331003275591246641051732650964122071105887860464859252596121645730562420201453237623800531241432246256411407481198796734371354965877645122956642883480804060593172088493150203247098764799349959698935217927823083471508879658850971678775497631770551834497322210269429989625109221451223110246385592699839567165311376610769675259446559846852242208136732471734261099535789179368168837054974980792218968228965913224092440143799841902334634481078473290719443674222138794148442578970800889495915549264413239301351621615027626341932283268336717824543635890228019962345169071558197414977101685111957938662245405967992744953637591818511480126423255133348717863860510063620701364263629096534279188138181634131310549195617304950033566052046550303124659513719477027961840292333600517928747080815078640627449850822441908520385680641509402073033367676098728817069430484795824570026735438628244899764317940259883196719200469491514762315425314729860303187967542109202471798216256158600711520688080918406449598199191294558715978330260310197837589409386810062987922591898396743162953659538133952225746202082155121059715447740199162755302848768571179150937806055848486633953543179518317402753954658648114966132036494279139354559656637741577172068424226320531625342428436869303176619845335968137735187243805062366980896285861647505367446353678570325837113363783395833607691440816845669411040148554666039996994391475078366947517806317369676170754307081326783584356753766104123926339363593825878824693581611287670151812248590015289522174199333943597135798920145162513614242938604645352140878522151383927356960559073599119436302620106847059317378427398775205067261362389790159354478174748089947551722287741513827663595890785420918589318175092449908380518655113622407423465202606615130651944040248936718249121914758902344943089412666533681583817916197057217416515908494223555919738980483056979866105017430075691998553888078006707776531969473802263646225235150922297272944248496008075032185866612020702521490695316706181532906903810663318478751551310668359787255235841850304853185588154608848157153929026085053517238562121434393109983287128354922874153569778078846730277202957253196817600838396354624016180527594153310638840899517609532173113823330676719071725765016336621454433683142606826822319159815420590790302401605909418483337570330305511654803456036365389549960153747868915185745627286288984619660099125154564818906105938619095030390041997415006887634847687856865041235600555034606623531606347049226884000814505348625489598254907915885798332173336931908092839201609302413132847297420172686536796986035737525892451969491367513973359334386022295071864344603932604476636826309509384279212250574842464839377986762434048999573285572625806168449849247412255240237357502960897179739853928503206257036941908633226474054859705938651249337514502512043204159314567542869629170196586297204582800096426167401313072022509451637041493564589355356967972757373701631080891460959326079049650006242908287823771180386953621459626778803627918653430048395277968979266174851254934915951709206101144579557413430025803961390945888591315865297100917901669125423637546806869144155631257028456770226897642772858092394880400568338627086120561614802891438350190657057618907052302111234505435506694002757053739433172257886459419706287388155655097398861280946927823411161271687594270003912333118997912423239198670638506596208512083837571969881621200491981588885680137144272180248988322814923716620551416415499953649918813455432063558048601278279239295036685885794572075207411143968265687970075833016630728904222721099156527664579263682370549464455873867697555029427628344177025131867380913441525148302807313635700868783788253959300542845932280459323890150381137923508483791680662508964672176751106282761743577719601900607196380690217083733335529628570610110362334599097028971087157197745681377563200372505570120340092993464330558035127477129395975923875507643674641639507026234075278088709225570854203932614734666332560489384708618336877681635424207555235498695728277642554390518548615093392175722940576207372249883645563605820301793937979168960131689015937034830583531064075172552734769258313896320336300512475498478540167558032846569507408824899512874873793830519249696634703535675981134821987308697241808978572913445837982656801585888511642319769082161013879986103200770429136717474362149725550691557573010965301404758619812485668051903396491915751537370559202594365381881218431885510975928496350683415463341954766833382759049945152649603316596744686477210352237863331946972047731428477868206617210668588845471898551722271718150023040118329133266181764503209388941497533943763947728975924930072316379413349117552832938714847329838612609657035236039640718227199795085360304345238725525609419207594175337583702422078799334351627332717601191683071655788203347980825378318299989188276521051991275085735373157366471795068055858979254431058244674544969788338051410439692170723631024991450775008030611763376067457767967612543585278775538890723357485035883203626175378793895997271204499604510519059977508499377568675542369744908840606257421992942355403584180069634074444544103309608253281035191255560675689495455789916425080885766150089084405608410031465332765082631220695196400760140675199031889805263006573773111606927654328169337932449464942846454132061656458079340919359872129484606151140963465858267430891646082242328484776393211749623440150070492241512129083502812722606779672122649945689649813313869197421138968183744511082925454840338471304825291711543432400988893464179902442780327672496882868921820062783404038397447785677710475168079731080125121699714876143900461926215219465244454447047548202365449862024682952803194050199975493484160661641981412252770150193798894705981927123428315360965772237619461472092019531429854161858898497097750441992896879206104489781819816185583435010063297331772494335633421381736396271964027108274865490268052949818645140702695452509532868386623971261021800472524092393048158531843066018560525093901848254768774705301782147261327492341595900692931941435019002672922309228154456358447595470391209763309509812093791086886848689971403705602311765396379816876253507243388950676926892968045979809894012784133755834550500913071313919083359232520899519534480578416432153579447076123441995711920174293743016738433025810592253705531201650975497965738833735906204761191303873102355667799166880922789902810224772889220719275112528454886809935510048622913050039492338457132949528562039278667883047201485901332040653491026893130681788403851138186853411768061151722413299565971405259720628367817037185248794607364673260961417882793789629271448091477912214259722254861310245248386184794496316673713553997379829937011056860093319155980759852262939466455237486033182282220722827018982690091670913201554496221424744401851998875926226722713818724701216806609214469298471435027202048645875660018279349160310365729111595959174480924441153947926582271464310899296039193948318722405010831708631530433418894072869911616529527469237891159227148305411031714325634917422769738538713662557120388903031236645596320335449948402894956967712009819016147638061196832952948856862246390250304537834408361565927840360722291691829790731288582632086486096865104706860872129449575373887022777530144999966382363710075326195406063846951135378786857670714697468729290528554017341118991921058776178235779324109839297397993102001796821406057205059097290260587984724712649425961979572635924356092320875879591957784836739204030954460278999048442829285439757754688663985073721786209295078862044585598540085717881188309551466830325492927673572494984142420074243530272986923082231220410918087913578143486945006294319133966345231530360887846552407519157664656711088580630345351423071929929516088144437014090318551622755898477019966442756526324609489907170297326248392152816822534962225769930311195961230116574784893043157038782083890105522282305309949124801084674655679124209114752097466677319079167644661323466893425475567373073904221576938305628253774934881686981645372705283524603232478882304168679020487186779060699864187384641152011133258310343914696951164561006248015332020778776200526640270929973920891662113620726053053061229320757888351403735619376155605082478592957111600653511137547870956623818539037417954221986023906754176137547830416906981385380615296765925089416291915463718928770000628130621093862790244451071551138681638182754253565723739307237179290083084647811494324419529851730401987785499560648512275765088047853996515952440991777784874446504356731411888501625558095081786052881582532339149787228213914246326180525261253775991232456102787337306758031664804102994075009934502156724622982519301511977033570825294401850747522508180110167650487708779968158392915178262394908861287049188638432236424000894294570190401879410431295298557817082430368635682348753259356686094529124664497275420781297777865922378068018113087824018253330442914311061351253185138369838878554212966950655862005457159926825805045439884969957421952979884852050553718347038656816054452755357463103259704976101004875898098134958339564882946553950529680859899056942428433430609914251894552259969716364278907578009354865649527236333676558893245207038613597458233559379789820130657910909998854462969008083500969915809953549628718651495267058355993331133548734565616361413854996330331813859522721710060387346603140822882158122606279165418855707506674019694299749357732848444950940733341497702216371227658725164495615135405083744429496191061900833109182877478038492778812853928058634357165152080917752991993426182515166116162743994878064522913543261571254875688586034172064039495400563290305136867282424930229647408032785252264631768871452447140447889121810597832196890097657327133920583394376962884439333801494241639818127303235679327611588552547992062179358520963418906262818499548647762019999039875101284719033917054634058600700012202151532148409550268816014730524177444039078127984071453860079469263491649670836672480933974438060873788002814922771395419995545677818632185099492096049373218925065276016570821536107195107565045476458044088398562108934693909178416664954214017821581083616055848960723853033384263087504019300870942877030425885649114445021035417816692823456340291809925258770795447210336171069058997465017754465376816221608515961247482565646973205058164964199909098630807555774191063180385073716876668532636659688051668234696159979245657515237662878397082418670507728282042052182251547079086274869048827557528592782707768272519468354813348937261506701154360987456139234849816558829037127773753693698273246472913084712496058940242279304009231081599679046841644221887392243931219780003305283859347306345943261491016532029550604090619603043984528818668942468820201086016791331270087058801370758753948284028808981986983276797170302863101304958389959153420793092183565657768213450803867460627096713856812530144397352681242430112243553300174891092008882681495643863058933788059392238450231179297919706409150424270553258255747777770263729174199650542649892786601728057355149746455704616748589416987492271555603689158155408525338236667815248431220117434835520414666904931513360892411429089471839841127730573225601794407505811942705163952887718370855008720863273316394778701372322120938085574284352556144179861120617995342221771809905734851941376343323505090477430442998024294503127766888037626253263424102075689695114660375722160079556868554143143316120328458075519475125637921100971687101750673305149779044738862547728743762595298091611370647552056582557207256801943037803623902052628787512060639725632774472990634205522325334483169503736557413636752762180738710651876012653205267793235015960548124324043654610620566154538668827253530391258948840364617624366502428717611475110500456345267560728668534553883312975513740972117812534541417549055929403315552239994771147467102889753025887772196743463165106957977885234226449449911268131898007583547631679138040165671483312850776546250076519944875120133945799036813976958255628385832694508322952187858705878672856558526352689661617242825737757489931511383944596188815209933941100141378042590814969209356403975595126552569431482405048659044234137766908325198627082297708443066012235007373679798092922033460702384420825136621800700699740643151554301338643361473966097488527958871373046592648073383806172201706672264577093532695069024980481475764281576480009205049406698313300041295051381797601109182839926611533373962741041174232121792799898529219219184940175934680459088863432343793415530009229944285562143554515326719090970985799202042551307727563594595097051066484410856136560368525723405202893690489414073914793961467482966314161854993413206725908001777271522097357386269094557665830965913889083771456989886816584422984666598787851687439361438598069945832167270098972877411598047206425873359016233086671441825487908650245303551531898694194629219962400224660716424141182700132527617638027006952448637060718662102668990689280522796382534564294316110401661934661696214168902028609820092917549719796663193960590152688802169226325428811593879746783902650649259719540164460006866873874468206632879993781078836511970591860098460186133586904580536130338329065887104398019370486547136102534739859434644797697203753466673577266711248752225286882698985218204733623817151168182721722223020764196979577758407236958920503280785620751930026292754900798997353468483459742576935801228232880741683126037900253925741778442628967570242367692432275739726463902348725102846307366794461168403274204551949777157334677876761166133377327136427951727886359719895612233823798236211667058287667975544678276699859261241752009113881631815008555555574416754858628733532566926297171995417301796361009517227113572569538498631311567510742536434265885178154893818417378017432037309756631013299719495023612596516767859333013794235533772617952782155909988767805190104790962773816586230222176399638064458100014757989255753048432843511845253603284207733613421301332906071426716078812875842651823299580814879819589964958632411205400687544486600087521522003050486881914975649579651027624149038502651381771999275003300347639474365047507975902080926063969589507989677627284205747287022489943986077594813436616826497563111607265081199696747371156331326224751719859294451077413131370939781705464673002118227586961351354489319027404376961436041632905508208906282708377144056728182157402069506163777970589065729265353416295680901537719299248629850848499567532340015671434300430606109805312385007102960767149390365666407561348275220203948472274033459966568537023057137475571227762342041088010197500134884877945626410522993722055489129968202822745158979729865118462213372492542878717419549191676276847063382110260298193962643745462205862872426879102252855574092458009993314533250239164734629312733116544433256378884588399977957648173530645117076920695606960367850911870514573605670355239919210114359628065511865323923061544481652278055350749730982504708951535201485218392979923835530692928991268407412651622730259247951266261863830262040956617312698670624670235753294966689505516504921031106919708851981442025839175708185207777390560597686138726060368705205894962370360238244738650212317462363639548613434641033715966313125275400043187497846211675629522432090372949525878995129448304535108856136533913841209931014695157993987613493775790303083723185827900252473667281273755862906818792792278622948022679710651980757595787372842250510852943958768847346108045901188933148188895127714995229960710373581753863450188819020263610389628419820391811241136931215881054700714727572134979911392539656366138341439462490857649191879371480257694571015087540673400040007108263772145804743669867034223036091692717956170186831356335066164532130308614282332576149175445870707573438618085626940140236846027931114410608492464736672320562757471657684347722709684510142884398296438666477181561393904799060704702158514734988568768545307919035658107615263200304529757184097267331108839185863054742558246354781029232142805210764555951494816697684542998442908629651534143456769355206270429104299740946736512902092371609956932033107254511488794621975619432860249093585784574792475349059518571491463069803566773669571709384745830014131502912951061001026710713899057448148813634846807066406243268310406117232153633661725716263854439465253328635780135853627766619852440247335147546939855913057220060013739858787758214484286898888951683919284673865887967199416382650702559980070778530473913496466504629134003279908836179058227018857576411882846422523735693303828670943451507380620724832238638306671568017468400047494767244801664402828492140462822780414841579771182256229491950716451457239780900602144770908146324617812445109842152249264411951561266589290278362929689386930266533560208330315342454178364148745759284301928747911228359918715645433603817287741703268327490402194146768977819317395896678078156060837096536776073537781066886466449427843464630147292855364845961188088604509181031162853362341583351347419542593311468079980506602952101073086989482549594256063386377847212841773916619473662935841249386427442983440368438432946645486252652163957004841809660875942624126629522779919524722848654927723892276694383270828621932526348977353794655879358840845183531998680249384212266458748412948674547220347446044815399554116900541032983619798625255176347801942244199445174553695677665594255378672802546351910732154476818640694703621720806360744343565505069673805822614867964928823353666447004210477687692785710545579733161810616361368304695037332043112254756074741422600055392818123273138529843756922379980163910089736153958300871739936199722311442121343782918895638392413469075558658733719281822488973652465623802354911747861315262900434255820597076903325333372638912815758903861221475225445956499535896380230537941757969314584766444211754160816453772021228591700691834667960437770290191721619123542152886501924062401700860238518559217143150355219818102316683548896718352328487777489303949308297209081763510273065785546133028880478554066076970794959718529757394517680343513762862879673202307509686621928641083350480590575426168635443795758156041947492827059600351253329074107660441029792105244228693006455217449017354784038250296375525059042842134537536375123595564139699097726016404915152184348652063720445076995250532486768161577841437637850282999809926129261361556671103194987501895333071723066631366785233511554147346869408462709749006011621144992186548373862455541867989623988025853178028170587337980846866386064797524733968579990609141023458658456751944386888918646969118440040419085107818372577410214168600083988981765296059735933755706560545550230588027969763986863390607442071924073304584826750116126126068872273034652371633495339448530215466628719197003246891344548093855180223616921273868942516443065587804008666826491723246915819090808840006341069577678385025012176088599406203731044270994576579153759728216247412603745276686249794423040769308816198601279139813118656904148861083240611806135282145426453163760591951196224084332762240899146842476211987975589115956361598882146091088835564618141979152680426441179649182599364857477320896110484544736029704019470111330824836368846618248097449315843578480144430845509539957667324030216171831081685907269356515694098056271928934839524828946127304018435423537460981025553479419985385669386943662443231039224980297352578247544759372906395974513014518901466486589599915923684365977795396995742157266842940887339616589492031853832397516632399645612989735944634979948702606782757632407900708245681436867801320846558297478218044985173401970308912206457465705234254801263586530522897054375954958455864315915621288319699716756551825897547303832046441817344416989468293856101409861604998710304991843092827861004793780252735100929245117584003457522149989965053082567181249647420499241711007276648560794155630796208902827724748967252530498144148731711714886557138174420443970657060252534479048046155739772294688661080145350575549795951353596238149532397194697349270539673105011194823831998703053013232335180270358838528426842889378551796156699709101223538536022333042964030173675453665049724685222651257128538869607697981635815368569769933604992923572435348826152861306074818763226055730965302839419825462481815972076697939550148912067481207764752494029816188106326724294772683652311587630038261380465160311677269202197633298474115319264107841173845446742877901756908901398850422833515064901093687651869325059144140881890842410835626240590787687037892750348824708358354806651348942483901100780055693606637939351516816578121950869005046990022041598034400661067486454296459673738059305508659768073618466913384566030142317896289831716188238990778759588581538964793310089643992081142699863493561925547003310453490663835051850193129796588919731451742604132802298930477928138402791122124348395467531729318458720323286427477514043848840445265156120605986047979692903370106526320720238167564232033432478561235215142696508081548145330801632128529885226958358307148007378698654970126179474339277309333134726663707295369293369125919901565928736754874596687090970797561185599675318056023070864049504290910018255743927322726785860826107598800136284721841157675889470508097564027349602938544874295858802757443666104129588511731728040725440119221750918753848069583513816823097516348556236722765627938880346839395817358124435828596971864979845674563853800862028779784100237983226439367937824060991856070563480743574284243595481917325265346715832840694544184749049819494709826800049893546664725209874510607571545873521068337553512383968091363354265281045274108648816431053613313375553973791800202114555201031408016456255563625127721749022428616906393449698670582646576386058624050592157858511940192486265378742959360353210385084017935820246938023644022528630351923369616399253376621774173801318837543114483358918159681928153490503710825147887096604914323612968420638962788035419071532405470901122978429022366228190255646792342460554847735230938937812034878691754589460930240730335934169829947666502980760569053065128417175345691534314655363809110853223433986344997929170575341781375707188649133133698445558612778178737083791815034889773229849638545441081224426211078279068316113225745256311289477202218296974943005055926530106342272308924260471365364885038365823138508247285858608987587930447451568371282394045261062973266858013186631681693370133145766747022575742001281181214279067228148017046492741316950427856343687746346412296785894680548782571576396830943508381092924033641959821186110415840948957522093901828831912006332204802060318027707448395092843242946838707009464359208074650142037095100188361740415286923398502629342503602747133174784881570164341340049224263976002533774002586950791954503180588086737414473891889233991945938198962430038024452365489534443123368680046126646360155925823580645579247201687269431464033533131809121270776805786049264971884272511725253314745207387868441598029407372413061232850923103398168424119879816480331390374345167152440688737084128871353168348654121497628291217645007566756366501606211032933682147669071770957931233133261788329027185908302075738473796675170116727324789128128995154283697700728732838342264602308147820445495747121986825449363122226794126775575925190240599384157352380136870819738259302129754938720970162633146229069953760315473180316707672605686355968852613277471113279334171189222912140220617433133371224347693676710428703741290139155982979130298197883889997576914058534687910245613455327165348608855004728417243762253256915826128101992591902504131719478733317356040547104581602796652156624813325226946305694587947114245161978988041308864583524052635080467279794900737523162343569763305065312244950934752134879841459922781749413459723777374822179879766951576383764295480179225878673724304501057455660379519215669839901976437439852050320929214294095982982209104840696769840778587358052329320481283504771572072109845430767497763794187075297850603219017570557237454067355850244367184647667024223915202218035936740431564729424067251217507836011963322828791930315293780845523239431016153245640818101620556856825017700041708229624034602932666242986460983083496920558966645517683790587040549391393907411349332092642277351719483195752680748506692331443695359962461065937097420077261855586894193514041891037556853454839245717460984935737280274692373714410506177333476168649220311037520872375996243145369750872291033982990434978763839200273502919022458142641079935450677831708910291691870034344737326696740750450654322561569983107355461087599078884271012660530758760554309468530501557477087033096173696151833473366958017981023793696242588035380858519010185150347475932436565623567843367247404506808756586478416371658972346925603174753347634278258016284127572176915177508072168219311087825063903758526860180113935362188219258076694252731269449095876422657405143161406058804706893718585311562227608923111196794423930122950692130809075744892520305782998704560125336743843232936878509760235796688436692313666738673282041856751784485107848176368361263602640635998749604966608758732968534053103617644738004948019552656228885733033025482368151072239559258209334029187398992087251076431013786212163264597493612657975367263947380701774214334765562234094164124315534868084772570956792563505543508621239952559821676216536182617352401794725964848777250926784997497214547198382727727073620663995606077504332454592945291958138546081426668772102721592571820254010267617015861687563518866624096119997390131140062074144717398559450932539407789106336320340002734411752897158917849997897426520477099439640908272882521534757848577542700735543824508558606705599083901424008338480991364906370246019168525933987444343027468960561991160089076097595987934956707133074108766271879776335108988572021658165067288094153077003581305540787128977906962656505669505728618303894839938096492065189687167004534148437065438379906044484013815526364655918406662952552679736390993242686837680659425727839245484888324836975191605806978104560608665832051069209666778196862028457546919491001535821293406206538233097187131054279201808185659662981737913495328637598692775111367590558450209754433554836160285750999017127535605165305004022322748946152274015032385074012125520175463032203435129882488323861311075308908079234558107717272329065356119364241586843186849957540427651390317962769884620478066928788210859188444883191572744615239757969700203544279371855610030658481874167659917236880137993866726091854786877534369972762983556835263879528494601545755489209469916721125772480632692284468973420328678701683396602039207966930135016752817204016750798635373115128707970139861752321890091115403707933129917644780386458939323561831731650692080953119869581103453632924055861306463332310407827998580780320936981132478448207471825852638953466979774511424599926632879124762251722567438902944473679553048522241567680193123656886778053001233225150247810072598273900947595034090364925458270408735823990177151295771206431018521528053461445329958031077406686490012533692939486661052221953373682901152194602161196047474779013591485084290273960904366873320590431662021011263494631387717441167922780687362551869818189382673711322748768769335428226641733768764525324117878842909711779906104369619217068608899010399461551478089066111031868963964387853896446560907244596886029189700544037457031598042831543557678517263904545569819169157766990938164653077926620964525801271067376687685538124552756634886510000792966558744844854839861788561523567576924989179214662225056990337363464285578876019637264602720041589240844485320524973372130100625930328478502270804685012046297532512913476551112256034348682920683438979380501869200241144951090267008999890881518049435803584212928311730956006948286981823847426109906651193057178760151162359282293948432402693481712620266427401888221954252866582492623908753360391989190305169214710119859139085062584372455841456486188479236391867721700286913095882449737870905058724324696326417031600836597011530187220306962822549339164400935659891184610584943516836142844546395979811633085855277367127038466612583201633500833270533724611917324631794975959277018818723414341637494840403667557018046930002632306267227918359729304857693120967946364139654869012871735339005471269775829235058752564120491013014876219628596133967059585365397426821479773782730675893884148310434994898249774888757532232635840839973140557527996734279325912219430335604645023374403116969049324859321118875048847319246643218721728576237611506160634762012429472023407006662439544314584190428864971919980397589608753177249498750010376062196654647726616594830406950034632737103847451160127054113416617946066636313340587903126122653038182471030610429803092411324779838119156261191379877144324666650508179767300402896343245928040705057123813921391677430656415732429328774372898444174027832953245066341207742036499213560288668190758195482195724031299789598272908641724955985469220613221967645465184035060748538844412757544441071293553818688426395667948109116398273920495816075571691637136119304019696865577400063724881684750727211145834254771086792194118050113341587266242768563817408379352404363343650010732923882145509786801873762947704746937089987035617352020884615962772474238568651169821544264656287577322828094481260568950545239177160444955794912196709748339375008215590502493885199414039209121361521135088053043030449571549157747131916861029453499694696073959063773300286940846225604086369275758473723522852647659000549144046090211550240170398833142107115266866978673119539163201589852106692987013837885742023093633564721729147692705571049832062518663311472969850569569010447907665011759348534021858360171070664527449441542957445290528150294976842962060562618076852294741997931159398657584654619112770309595333816205927133777944659524881155685742456189073167971183545285099370784971873731599268246670319767497066163988853477825240469999480961538152791775753949048799762075663796474443366477885788199636282770371999390988674963482879260167156736727705708261288438165431362901851806634924101404533323846445456763064951889867164350119967336408934835656300225912984836294320671699984911747846513252498315540238323119224328556945134594893193055247382533048310701994936547273669522166327542132229475075842816526634220498245576850238771456466688661903778512777110152588558673441651154958781853206222668919234637852110144017137629505707047704613701504560403052194362173762496952648650981822806214876079011410024015027203294118199659117055126044122858916459438387370071093280791677042571495260743448329730159942405869414579733361151824104250499124824433851156551789363335021407713563803550632391639220579032217693155671361522982678633247176950553263457687460351427835027572983772444593403996717796328776723420142307900738137383590058302163361075247864244426163718964041675703114861720136429086380913170576523221310655659225876672167021024700907889146042949874419262338901092091655501050397204200346256222227840713647022947377666735141918897637958074066384759633331499981353258473900925143839694788000116954911432694537071436277173247830488903973613061583846605869296350814125060896020626723309238183714404818336484944605610167326386582452310332663376117812899200220767367763155742770036873178278906049633755157040585739516163060534739245380960337351367454458802603520634012092951707904674256194978665706610019568347894835094946089368321824998719818183588112300722523759859670765661837513725573756473724138201669643579430509573290392414568268712312516448414412292812373382432709724440454227869962024195172467932229382950118268859815137182730991213375559935065444721927526775332301302306611653662806277208747987362133056002917587441685250797296119687753257653021158329245249835509731635383923201760537660537525076338801626762353744457734400454260078002128826440258092431155119340062240648345352150943143404087588519110894273657929738607471861624476977407336881512817861807803574197378593008756805928538013327607548454238519839188516225221939126740819274745752956028230049866025537367497510487574937521213330112822369431490042149781180952905133661868164342945312304572027791563601518465663284170375578734805160109404079008134077955051599973622435762381975968139309577021298101159947937152142492568087582536926768290549758608573814866289340199284019103032087409279833216068580639907368737733769920494552065385985502226231512511249378391185574828071450152425986148641658993123187118436810208197182123281981811065004147567525205499329906813506437934454386218042085659103525378809750811769706741793962933137170943181438218490236471823594350229933192906975584752791127154230114041658524054565342672849751677333294248098316157194054121313796297147732564195063937116697772424387118986094543601752009450591874398510022347959561727277798170310737453389956638158256805173701853561272470267944036036601436325430306301148323884030968584057406277388865067817844485670271689240384996380195808932381208032665331561480311620154911125699557936624913801497674980530645614718309327387593152258625911420956635939079973225404027654601376845330174574128435744611229480604795613405371059021133161282551294229550067328971328428860282905531366448937793726375017448938028956483140095314390150576972427114646008748059014531559289386829692268938758790388619516389137964384009156507123948776635439669587514368542076303983447115706730105616892765151729591839988163472477359707044797723936440106197915791958565825188960990658656064570972464144985205251135138148299621584864520963666487769483399591933397853985195899097482425705813913236524128037401346123891368783567140235672944237334614030992967468256424283201767165560793877325221452178040598450860094510823727199730074478574433914108325764581693056693097050002800869048534393218116863583554033505736925860516092585743016268003450479749087898786406944271968987715467738843859896121688327083167233413438757959258162911611359999627917366236969364744777767098808709753626173610007818345207176629516329052699775049052607050386678078272919888574790510966442484843744384463729493187133066661950859932387030506694517087498505403201751346269335719372282112092556990961940676782917495966935616224884408344640678063123505351033756534095000897168197562877586786238307291254289233969224982612562815926222684937981065434648379907201924567022801772168751130239344849554347704335145259135811766129146380975083538116532552146368456645092175137006843686328017621995785205665918818981810490146435983228835092698967984843807549394695886541853103313248271243895509475934848339284420546191904484933475185020924013607141260357230981108314611673197263272593158557549942065637313782209839300076250149478397351191482742730891805293144216146615568033076030740202450150673511793442392325667374092835376067927880244699136287373210215267375276279766904556944770799171656752354450603034314076931364012043383875017188430615017699789036165280665514053194332214118605655656508649504417349279854506828480700804780212362066239585535837697222463269822990876363746101900965076521742281099543382550342696103543038945797561063959736320969902595246896520625615096640652626745848729888011496333865309406019802194414870233780504244510106994691599699003248272538776281720443445161288108468594033403115313780498986400135290106593846904445818717986967994745694176524872088195315827428836748029444612529140887542117923431103532518108830203781662852630919054180292370683580628177632287698485285468209214488261090949385689443258907819908687084657024909542174151628118642479691457616683347587675447125269407868279488504711286266343676632644799719248482246748349063709555455998571174420086702965475584609264124754149468311068643559110535547940845373803598227184706069733462601326374168613759002115104599933770061672774199673365108233584011174736994778590783588475972047821336112282217167507576371584121205703497976703723293660114526825876518745059115118421166210767959375439015029517724653090972705983867401363094981580700386350491996809567904032016453200408015100251926277337319985990166982884404805852614336845682496540108677114974004011537492685262623883828174221504462773961908732070786157000735974308182589572227845840012595859506283733720661643689774881867814760845673692705893828973851631837463959840097065808380074273504610089886034872071676686111000074555859487581374691281647447324642746086119317393102901909005057333055438073171864904429723056489496377418860991205002514961931323932179222217535720423063476396688273987957350900317512543841241921676332605951155714209946305241272094574538631495282048015717308079914679366215384368853879137600871995563928465962754430373931996167314614568646769377388735631973416577173936145127734632586952538234314289937329230594045453922034188726681857629947810864934291374503141174216229264454652575070384936061313714412092654564573627349147991435752973588160026579116752706545345855506962629712051305551402592868940758353509615956099595891102115649529615868743698262384977945961805353810992893118597445213612169710994998194890611403907617685628536702817625613930826460158859479510371361617349291410396600287525978654081889372967561454206086895627588256401854819814688407851960981054742129079282594339308159323913253510031971867556210082975703489712089301930914533120796169617851344932765707030270928889636150407219012732501877583747061108890013623949239439051344735082341855459775839208148244636124322106792226481020437823670422245324742983662028458175768425455233680565761055931687225159569768298342408049151620396500839054980838746962994517029789394713472919482029896707525637988487478555397060484169884635884325352443927290810748972859932735122390005218163498761621313582428041308988311221452862142217705134984078668835268624907971030759040143057960757444644668014157661220663111924710076830187454709348405299912050503693149442968711829623119105999362959462461426509696903148672165462749792775936902762672371866533284865264146975427826149694735056003923553544517292661520954399180247763630587497383916504402483205964168745040673434594252473035875674099665511560616888797335430853762238401976403410796835464816189693716366357003631491869610531772635940194244431791225889772449246095248041401781116694413294966583869526111323172385750476693941763864881490275804221016922464491588498006291037339574673116533239362730210118261693499809483812138041731654496908605730053788188414379060917553427251211491501685038658955154983257277955410727292005609828175980593924384127269986463185549673331145235155252895621778411669876826662956907870769135875355809462976417137452820276670617662458523419757196381614163825538462343319934460109778778195053709596688090062960004761181411835106492287140158680670863261857071945813967977640457144914527869103516252017306639870885545853089080571926726071975260241098883236467211301341920008436025001179874471700572071200431776639151824830167679857665809944814081755707580547136254743283415197771152991622575428545469835795279785783263004550723110650092958343690055110914929904967334935376176733832084976796264333774729017796339693951401310362886153463829604787697363473228902778160602025274843080414575056429545004054203272989431663214583186972895293540687471254877758137984131897619345620141771088911016634859081740171733643461257786808396231464332217143520429768759757711770336058083414008827259193843774044135650710043653134737947351313193683569947844042410810390778815223367441972656750566569709991522554636720191485561814811697252701767466945124290576177943654498332279821612238928391288923334640345455509569280111970980530606670157897871695623066413059354365085939285278714102252296532369403451400146786238686708740546912180942886378259283836548445007456514271921820950338254954855426132231733257388602664426427597227733578139096143087483466758671707608660497157446815230104742596595229957279295880336226224523070943900632673235522465627131648467903107969934592726380837710125008647013023672457261364383309004624939781330614442454104334654647930059459576832811862483743459912683527645571576622068765732012736354425760394057698300277442360924198974929906603558310212909077968808815698489610922330720757600262582092278127507240442465817486312761171656133771738588979462272441958463607566745284708190572662142154339347823484179976274157162350571135798527705868747122219957169470002436470891870706309026360659372306848606597667340952972295726931690805759026462988364755804191149912913185813233167819113742748955149944442952299355724738819474538974133710447216364754739672140365427982234656110438065332865465192884212250913269051802125300350725564281290461898211048070609796000709090626533552309163414205169291495501766285133566237767014449554311039533587131258422688684886378889898875557640512966720864625626873724938002824151461223517347810851139166925444215488533618086609631904629562195365649846622451350306325165820739612259759872790549505027870044686522512196113646841874981717434597287943569844694953731565710562733974466417806851476344986070507879727214547315055280244106949316103245944724708557856929442967434341374155128859554575069379114115093852060607402173761135093843116407614764773844936962964717580921546091204622281773189487489228304250255309177552548046215674608260788773390085508478875879794386265238720687962373671948751006369235665810555535637885782427995409220478243450972722910666769736363829852075468389689451533653174146315834038324850352480555981772388598982267175954533554377126261431900902754173933053108874243414991259103045156362402701834076115183782732737041450852714849306212413804555643033923060149487663936783861905643888397300756832676160258110752376932249770445451512556841973479828330369925217781811581025902021463016378832236094288735734329889498236237708573947500348075858513767935413331648233963250242536354680066709024977712730902696286155027778901557879658899198603562017183837103276164467370967948207712146495701746626166043860161655361212101196137391063175952368448872222511896191338043717508455440218306049589462645483947496146426535451628686156363000708177921052906597750717213011653088064487652134540346884199555944157732542925254597532050351684037674203391164036831487323625258921020486219446833115707833707044176120170478606142398500800944925138443035005542194324763094764886478710544260114140156782650452502283862872999263584661194723118453034646842177037696997939667908546472543284029516376839648090436389722752494993664027869692429152339538262160641507260301471983662758015375308389472195228983681277762349856409783351992791156241100456496026440976449482115831891568841927162447669597251384877978879649887980537066501735567147372092996315913848844517473182303666083452007711892137231614557268072851491176902509981927709325759252049447953771809603955778269243933595006417772822266187226214880160943895515773382716989628866129000986425916618891075966406484759886779142190814576675339165354424993108306184503504404556270360441492085903822090417092134770059758575803046752825145237737400020437702122149462885370828129030587622682691554114525114727484673382765898730448726777625736263055619844855949321716176275537034324160019803743152729274971476261944634334199451287210109504084279149203878413680570227040216438298902622235424129679654234944507255147046440436612440293581982932389415373582622720581813063319325999109351922925433103255777882733802298922890680426869174487311143031069002686248842503816851146805692796921522695847103404430046276611377998103231451347431622368067457893528583468522376050753149520242973783403348754763820658048589496884225313989380289390667236161899866237074960427390647797399857129742955148531497685436206496985440122593077999338981570078991784896763603322903262332979966491010625716699435377594679398063021780599443732573614616696219307581425598449703802102251124794164106021994405358988900664525043514119697080995128104746460795695893709886466707898760614831534698515439629307830629822218007234625322346187772555449749155212429669921878349282730859647054171702919996231540707573735146246958738939253131866719924975997404906886701637838734832619381581615489328637905921121264117771449905477609134169437127898554482518312894157424389324734535425636241015121169478763551606560115800081915427598537701770960596106898491331400992556297545580691906789489135386476280044609509785741245292381045945308902126221267279531496350900557733194336620643698339421408234493990103989005671534982929245446979617578463179933419017596429481824741905992041881714090661280396562259912413476956378578129925603373679284439602302557396900469580283869781005115423742381976374509886004656188682656142123681256674380273486058254060284948013748894731795828976750445887937673780942090391160565261929290361225397925329335903394730650150969912570551906079826896542209004464853637113658709362119912845101150265878861837896795319348259188861562724342142443526143238885584092507849639599792012164274432633786744033992256650027599356482408300488312474301402192917190420460583945649515203117389547874221395444509896037992213224970008383278721548677323658512947016078650802785516357651332889314814198959659592848569442315749575725976282349460165624591353872180979450209955550400670242356137756996828999947603019183144034482670431905915282979470257927689197661909009840354302864491698376181841693161997774739688010734765917677879252638544121247431884910535719056313197903327627324030248913982729601546267244377730816569334310778176622085722501345621539814778792232366153918284343391972634864744839472152436306918052683915835551122748148137338449746587203006331038021064723196891836208159068072491217026265781491730396145296698383635401739665359767687928651061272683797894880572643530340672080791197791012521303318732269148467900668520344739956263864555964211475950522938421200721505584292970929778337475032590945849786744436906929333102460025344786708923435103843239221888304637362614435238305646947181331074763651396564553591489938424502191951004136039378503589168778111098657243061202008575671130153969362287824993242920580844298451806973804915791693502964921526208161450357621331559547390417484972584607140582468641455248092132262101272835993421129026127833560818613733187479665697683090643357179255528117404969341844617702040867530684629715524513563495094904919395082549272037528414930845985435067787402208839238400829867897350419041489828668464415003385570203601857131824180228708844513630086203096083227901244321465617943717873951606436963876096347948713273928627650392059077401730934235270835357475423065772880437687465706076142318218007331298375697029414808397809642015004119554727444261300295631363921221691436870026751234917787572629393356857910669036226146535300133923733588479239811567678731079760556341595741513469330860198404348595550737151344690781809756253113869425105586370739174521283015797571885370983420508182441067051712686307934526297714886764018404778248605880770226207602905142017041539775392977292367154266168978982254536771247492013482249622223093465727742680987116603620019472076723157837177628238701059220475313105574483506632008954826398293634160066569086504488114426882617057310931571993420401668314648286542005221665961781796021182315640841496981363507327410456944429024696378318608875904942245354201908276512054223667584123892395693524744143236488588065623354865125126385871940491656108237294849244786341816738463877614337720825724733573032069917522895074824452222304455834283832409792337136134954932888384511301685984603285830513625332859172959117801140785223141300886734837013075337999511512301391471196234031177857313658166464916119029559634737278656675204809885425864767414108484425316217610740855818558049168699888131919848163638802549969911539992231779337132631310838242912604285090564795404450770643845593715240279722817833331806815575140933836519987395212579217887314457655410378797739587849567530603496677974408313378606748340113835261398371602669555934858059505463424109750676421114627456868741020925464238897315380576584551948676404096543945688557245047921050767673328492223265184871159649262145851120140539193253331161344301490072426688371327637106113278867889005347178322235666703308037559214088824835942117263381685781117590204481790191594664162998647288049311360295763064353649240055640721933388079995197426996292700312268590169397040465531227487780242561158347137160187576960035856408849089029525370451074440582137606033167630957963944294555850608390162378453875273002026071288507559672758378503527759142884979246382447822823355000746491325956213493260230087854861114623512853428004569613310889646453726038954559035626609334243856749739988312953952864917000182033410947400891516380941737373251227926934784153621543419274022612399502752939078661467897919447093331907713973045551631583775427527762182186713435115538394174564096570714455893018913715478625460719732943801709998325996128116095180127585944081956497612871466840677239902160018289746861174942479793154586413807179995106613208872341810458139572514046253445644647042066298381149380037011754604515480017707007736501113474992358985859609882125285911398259613970206421630016497986256483656630102623534258580813095904317075850087092428645331338952113667439694746857068967886292893540666763103601121386423877280932550105171767752134759690168085091127383763913803421987240505190372983572559427280925512178176163640042353978002470969754143793794329087153563841685059474554624356863444802936761196363277037046437021399400144523169201842462572858576527013410435939143106533893291115140399439412999025404346198913676000551818500819200644071657905387673203247660358345067031130976975169955164379191360125131654438536939486761615758092131254510443807838261867741135703884681681919354623234002799179929088053378186038134813416483742323698902643720257625501661778573602591712382499890875517492091740108496314194216204154221011621561973057856644567868012713230375458987295299719975945231372103639750343511186397009114430808682379090301530782625937132218490646085342998915156913746532686558354041298102932852541547409028893261495541399571583958462906251328648192435336551189398703523844201447020456278713572738964712578912711728103061623276442273930730814331592345508547011557858061608548615090504565004830630150621686864885260369034290091198805023722941999733959998636500165043605065725150519073006162925767396913405908596608400319380217967416008051603923391332380825902108311195433576000515395853292465021922045388617674433766156165550217139883009048588899828363095538384320082548447170194421034461201440214562578022699060036618594259407806053182846222023828439982758448260175771794886711108609565330374288559399690465515106959043542648247097055980291463830095867629408331463073236909070618131143872387806849495302306309226764978120209489660150502389159609437419986172650784325548487179236614390399566525242785714872487692571023867833229283726734365475213711184572542835816864314116052036239928133903842328441132754247823180258349221507721614895083585088371657525183224030022319611774102929927341444394748947309288030847186359350062021814387966878379786637446922079425851321417559542386837721394002810544729942371363955466633741780342694546244148515609873488131459040520136626008744476324032369882819415397742377773518995959760962703266220327263471416814683714907568899656147867609907798825084935299848920320570676241073966125253549700443744977613208477203121615390317504731828345587430314390567066499169182825751788852934892548610406806218907862399069216245224684567245888386283156741850208221343635502216439581087486578353641050046681990503117521287845905435425682487305421324863439233073546730673082852842403633713807282462744976522202872010866582924445694198236053090087400336416377677091011481467312613305390394413994229707067648609929556498918882559169188951997556708780854786501041492204595108385325170279094081717006164468993025123664619141355157360420522217658725131063413866302742253601011033712791332073812982258065661345619941601349895679854016576561829865983841953132830632399446807103507572488194487426349764489196232936909137826488256794386247631862736264655583738654188440573180540422917078509036653798723790522141319695133411792001843514738400351448981300149016638555763372491572204978757415079810125139368998789758809049427286057758493620266392709794631958660315869143812236634236497320660469173329710511931597119342598741047085602410967252684302311296666493027213599691374701015831029341999616799156221980678109037225397293938049727737228861543344934350590034060112471997250001079461508125980455543222076877415938171700036298770368783676768829061961401658360165565582590140064625089719159003522285915841588048071435441422749469157082908766851245857056821785316117107469455150012785541155104802201178616143981220594636679726648505865389450248378488960522938894490095018911731912895303881443410333003633928626303617060203927652963703545937090054306331173171916054594797178654303905590414123297996976402836919778345686478058958418361738249498755292805767275357932445656146767849107831999979181641682861427319481323872632050389970136583165466098911073788449552990399601591963544045940353718983676969095687514285866575525061055598622402905641395965826982935726389918359290087174566036362683664124074625850333421216461696573227767671330334519715311187975546749444690870571487067107058908006711101800016612160886305860307141222623981216515452615218350480967079767048538405397838385244515627409073523190143779454370914245554452738386924415946496606387073771483610857281318163084787221035702484304522850738652203163489741977666383195408504717396734658674021586080497279411290701010885844841227030432863127456273957429937132625532345168182835950345043072882235092754238775881874958203212014226541183009758184303982839350687420443235508253010307564673153539084967441543076489774623564433772929624603086618318978957822969184058721541443830963459737323063552107077026738869208093151496398079349612409796416920785390262612014694695923504702609900300669878814572126674883868542015595558219425246780516449297661502490653863009829391912240317867358477348218110114969902076637729722983414133830847229921488507952036525103138881239408954971493277723750463202969377338006800236046092148183967482926579000097005469407132800757040086466180687231980442009619556832645113696328401902409565057738156371707626702652859453788455856744175517038142441158370796035875108556439122441675072275827562642891431653146270462783278302887193852175197104363271110438837059561542006057851010054556721235256909130872270947260648055485888422167516554821397097182412006755995655445057801684890479988909326140663353607214311713189378251277667049176071320068593811664018020476621673605562458640024821902458754765543800057193004930002952242516688794511003300370420741045682660601490916067675558318910994639366337836598434251340247175429924609348829659839797658627908106124378352934206963223251737667600204007065874667830448976420321531738930224568335046681897724100624683393493787471691865023674874285527086490607895258945747657606018816665856889497114813433662345985813657596400429149829236635777504369032006937800729347758285958975617654345488488737493821825366971397648303703501596132547580147058565353148120715575348166685216656266487579033680065891301324338654844634687619069894401773473014086571522184903997117545754524013014625347278758953572396422859392043109885036675314971547841107657160540664392221762994066760818761010407202136603233669659695235819471764658169405390983045376711520821703144131892729376121688563252833912912387533636931172896202860907110973867689685483246243715529606511110720203743941924475352423960632636213875091022508478785790290334625273049338717634719991631627188205252467635366718184973458803118948347918954745644523610124727005221788264736529280511205301880044400496278181010271170416791650690146656519197178796342371080680312137502616914812603306183539050907903436250777780494774419452369806988119443408629450313963565798137545510005193378855744374647784745400396691317540486726581652815140881652935471357114209577555653103633603095469964473205191295926156729776371843399440722605240760847267972695275943869539364996815926940144929508893945276112429737704692372412855112898586077928707499497592316090101873235246800426214672008639218280940238492621777320631593662362436706518336499360060880408574780511687924450512325092395671285847923367199071938975841512413732635339778756017091096737523468019051993351185582229039380435118412715536138365691304038164501616346142409859885132127559571985288726220628377492736127701018202807148204942082156100272648230934910856518407229766899549793838948661637690004063587857695663615568356158029233039223048556463690970778727062879695102167628558280289303691180049242613716241372658856545648788963748949679335506562654245989155491257440993903327481917727565382912127361068156001354606781718722517940296351261140963350921679171780336104661422773914874523658640616261232476824841605248177900452050228250200551188264558248357194923926010363413437055088968166522263806132797005108465726019243842151272913135243654336266550945487878151639709291389583866205497023088009005397177879708684860587874473728577714577932965479441596780220037163584952448369922752726573843380559352931473593896606264092971125206735326378053752017802320463850765964240823381257460564344517997559846077758975463808328813763877672647413268029501467283255952962360066952937150315238211596682080145276182699972521883500525559904897804612371158761768975080687673925045167250000084725641760712738797383829149638336672720299752469787835396787868914885515509546394908692367119919455624793941951577567085933092086341751815146467355955016190461453486771872556878701606635529688266790470442153633370757757943238623155689660803144700190898741397870285322148221656570441641314984627444967229250457539653783124685203183069286262137497530214755655414482946610311050414368003143847154050496362982258885916743568754922266974914284496717572737742934112995601869195763263104043965418634347561997856489909685398220349727070526252126611248061451431040357352151432380887966403909484231594731764314397941759032470050162726251445987550501164306766540493477564249221586932647121440092246745901625936523081082661092374726493180054251180364024677590012571269271183898367002376042235660416250868792793198524435229652166858978453041582604822883118299269523868950296876698980860186595853925177372600776958275949787268876645334417260861341257640254240438992157591318208313410556542582173736618867803786195285121375877356607931296535986504187598773954186986079310319155165243629930414582400592753055256948343567205268387408054275829282424171764756484509416915667640340109520159378627884051079408336420194824967568086500613641145342934735010899411759613742856585696020862059209454789164850226101661894507727981013641887776978518953167307229958411581937577363471455286745148100555045513352247930721993571007337623119357791473592502613780058794071656808015765945778618016719902939698032758501693944661027687621009389072869019403148233147708980300437570112840802036723949542414166375474215092350706268621601357952698971222058221007824378173052008935127376803368636557810019505244185273680906461134087674507923112399254160326775781237803162154398237214844901982036914462240197990258570646625533983537247788843107178344811538008599444414498614002120271973168353615228537218261553284066764227500949428357459222174009657750981120746038897674183026245434434623463717119706144337153952161501127251241171840450143863499333094311899003288545131947767811265426950797459101085680887205397049486702164234022465734441468813155074558412310935504757594214962154463028253383924551984183868217648904447087100222585474768524611042233794086829943950809278544198188315486627888605166166696800969007512757745845482316153569107748241633621165643216498237937779136917660348918113261426366352224124767696095999207292912311574206340620904812199896843605984795839117110243000698673466832717491146280172271400171988479406340268293213041216253632942078989486804156823265682206416282410696364565626667970353530117787621015135178206613714194790720474383336758269674475110733732594659673189480834517226052386068037470802525579987052973697260940261390496351041597601077480829195072688429543443656504497727055628327257520636648300443452953082990215629233796047115238517210585175288089778462290223794934478743166217555509573029308766026794795214235332239471297092978657971990975283380733592077972850791498395806406615480019634044819496650220737074336835542428677954616005948836219838013177651513079425895068497719362402498592574888254257674419022321539738809336919665771235354183908080400951155719545759289356392497974455914294917020953032866919960987112490633517730979781981524950249997222405306004615603988441868165928709167275881518402251511656123845741086998685545581986910197727242493498588543727232401646246827687837888784523669120027759048376034270357440690885452062334217986192698114521636498040352110884388050924180313674009287663953900853003684972273348391619878781055317951664667174958603945572540388753657255070999130991886189201190790187118000672011874273110990471439510248883985589958985586900309530015162771354058190516759151366930450954867689730338157488402571090533130794962588580828247709150378710825942366788757319350577466751263197891761364166976234104403541649158098954837600883053422365366852792292693299892656044558849055458674590307726316344468926994460661336078413556604676482925508607283174248333370993216509250471676562009035876641906488259570729620643527418048817186814618204655146324238624765168968358191550469849351625333292586385659791234818574886153544839816959756009554949604895385258560657644869232004398936349935994126589545888992217832696140705569132770088094767545643517396689163420187275636401775576457520274598792827485548765256867489847721628369782283738599600277705217480752203926788095527131012554098221489475903694018400454177223102472562383345444465255731480501687579466606822879352203643012841425250216759305898192293707997965776874716937480001614629910115126126384569571054229402080527346745238273536907634621318375451864686758830523626960737536420575283316597522294518318510862330236171234619140020559572718999488031042643073168876441563641632547558900942122492964883155363586038837694882039447144304750327534410732825025323973556268684089000788970979552238577984163418597835348090382078023967912464162414322323671455656398763473580117041711302046298541312133610986775180508130236170369508916194075468027324563965190470709081612644048267884374507708381629037395199175042359484168680421093097474392787087765339494265014750158327241179444103358938885632508336075223240838678572056589812698054252877495244233113466829173907380401802964100298479517889265486405232218586927415944120370693943568035952374315857750006935761589030322670665279957948383944811566167737329895648989082207974423007823935175478349951797466362545479116090741391807852125103842070563377149452123141645774147105655753091659125436072784896604943535603760626807382813320137931941414840094958934980194011249758665414906523069188220394212864989707053735675218657769978243314685437452091332877857709585923582314194535922785343390954285028523610152107308013863579192768267399766609231864868475465385027676832326409343215163613982050678414696280582587276262432906354323497237995898955571055402807665971109935873819008638286210869749892487812088620441610557801506538962797269559952202541248008833504728527523268244194712167111470297611358633036782730035541881619009078140047311363029177687631887279988289985511924450202406621970453309678320547985212513447876119061572418960317936367341741858636458440909416332613148948882259088059970593733589055614533197407920855040678600006500175661486138891935663222539974696467139457667626180992848884405343289029571862419478863704943033188981311691178854377158237855167091571911804215014448934246455730579582404247288987029219331683464571064304818816115462050453421336443997322980136554383084576595598673273424066913663053194237238012169387373897535653789266732455447513454322941699436002408190812128481110296742122233255457416425529209463902763400577453790647557034633592548335919496835913178672876471932656358749672608185864289667653398469200746412129324934643397218577335874238576836501614966362517873408763838505052113004938313344443502769388876117737684084678226015161400562949338969190133196677647652832379810848115853957457931558399598517342447551908385405421068636373740484985852599377122432681023123549707197708270470532721418670872367877181308304498458457004664090704887074019972675830897181975038311260688726197883380417314172632587508891220536870516540692328524490804111286474509530819776991064356878654076857110366625943147060105544104351547993361140035972813788032414292661877913659449994767639586984906872083797836529215054831473946511489437874696279429887524297959076677247203275497541387738508371934178892104409668489381495003704070047031202941848833614806972781950790374347058088593371766124406205529679865690356285438632911106604742061028381739321262832405114886743463897250898447063205031148151750561418595278383649705177762188809640915981444314031392283298010867922888476439641298876333341344242939780807506249113541323436531554019590296113195525103849319149474295647682923815694274650569427043251983147016011423873148626194577382146111362810818376784972745773185932418004331306500566033763367431961182706368050274624778403291706097872162156252913639104895820665426715553575240725646711004179145951414448252951439140180540732942960724063768222191513630574446814826261576049340521299569034142822877667264183687592451572005667798458777210127500333245073077264095788550427423465308812236797751997672042246474299174385258976495661208000237236498175569735260663187441510554429847131203916364876364286319753692470463898771637756044915673114285390589535496548549725081597960022939848566278797921535951134595110792273193227847014887573979715140266400681469951258180613021425821716393965047922149008401598490899659160905087218028684070504955775536889137084831359893074622605492313326262535691152720825531352222899532162688670056575680799653476448996717290613708873678188337910547714847745997995596101549923032323595095946732431502345494382263837404303763406396276142139217557989163992172158610264556109144782240955081317086929980534217075987808154845075690171481385515113571362946858932372287809306086172798927605768411460712776754093821004994838913899000597952916095286737711108891324963629898363368338643574994872041025714147731883731767717239474743657155866610295503683960532047081788303171137816172428768934192845661644909532489280502107169077405160501879519650109559579937680211298260154443588799091343894639411088970597188566916557815360637254217134673186614369786803681229012209001070201058248934426277472370125694489021733273734980295052067562386578868357322120870059953618204888820680424762252123208367031154493146623326589064798692328554159770764918791150379038865167915199435112738512472086773643750714484516113951003954336014563350208645821315090971033372773410287246234338823551411571819573360942261722085049711681085045897441053656112470537705536505306611576031670714574835830267815227084431276068012219012420393632766535767236593327038248174855828163577462464504438003590738320313519491357204874667133129199777862659977774031319949660045597468724577716944309805179060574466883783038192282096441022063948955066930153616712013729766755641524475301020577715468238130725369460651070352945353501676474772207993706059695918661852054051795390322784275571643206302647445423525945501545197471887079493393518827663936306165393710195366566346071026171116284863589463285651937509936517017922640686198915041226113596070716685770534259507963497137513403637310605541855171154434897786762988421469585463839569432161393363210553677538098381146731908928702732883431831829587295840966892903948499962505370156132948380185638664743397945484083234026962113976580944035316280885602179982251234860644438914958541239843285060791616567592080478299111271581774683142142669884598905385057915433492081755638867584356521520487656113018999972872287858563572739244841520128168948698320322631161687596618565255312641813224179214838141917119030531549935500166975484770912052972455100556149676435648742829274067740724305230823584136436994741483360358145088160280835286448714988647062098558121485059846249735628373489323675951889122849521106759141346472350206076494545083123929924649355762929945319247595128530030802707476734550768089021364535064939309432430619360790695679938703666529342755422085520752393313910990880174101511191337264118966355451993262084869465629640025275631578983416416932350106848505899611639380120805071803619740651403365883374535123558237245797906978463131384287699469998991727276414172321455345610442282262846225065738617179073650403713910219027711016978602719285129294510950360218418648376998110146590989685334732294662920515794434221908661147825600826642777222013537872310341341470351144029824213551643327571981951019699018443101205095844295086303363133452453841341015446026277250750491267913694827442439735315704348851135393462561977183210275443286236848872814494037015942760740909793050425721782688025519385755183332315251626987234884564392535253327597200964992762715257418909448960027422334530944991731348481036461153274437381443220747836368989098762470501825944550715436025977109322777835287016047795217641957271443351227708233287569427095337654140906340243982981391030014157928035652124180327695086796575701836459935160644831740039453762790064849637736735917446569063917983482739025282713602904659528593062027116764345075030674265005813151093476970001457747845071829322393482236841147471544511644929820684135007073413344815727417913557359712429252267574530010943271701119277139365073651487781861463805693900316244679492297994067424988802223813838494780643617104518161556328767023873578010530196690123229315130684549896055073796322681314197652543398125531730764114185946508493934180875986517820954936156079214786203085582497799067470474308098257174953419989051493745281118411895251084531750843763025072181249195477517083843888310241868216124787159523127276171710656886527550886707656577763241496638405418741746694690977513849603874687092027575993689767459080212805479210234325342568231602457041815823165760782711996340997164254114576530246900584065937623035630187600111145776713598461760560913908785233940228670726811381640433685657164484122538780251448516485698438189867517167524268532586982740862284645184381759982093365525573014572643165186586037562625566532759854228188188622858637747146507607172525780950321113434391156738493118253056038440633511522937911523787804458996844763444839710294491548009403863210145004074364308883002593999483727794221806107253869897388049905868812056028286912362635531503148599006327442436019231093588371503058531766808759376119809176023698039992710045167526600246460673526665272241806667762234478032029118670119810160450638407676420270988565484016425325423468973266308006065663398505295505475909536395898283936059016213503996662392828112270543381882129265610443612412485774184318411993752012362563096697681611927489734292915809802559247510277581819208016248568681184228235646002460675150694658983239277311593093889100139747199330427894815808132777797230735336713777695701756102272261400849318228753253886604657935544630514561868458580032410142799579483931492096210101347138670363346505527396297667157188994748706735278774282379551731736777390891838051442717568265385108865926191948874705533758533114854821355876280756884169600767854241015010186174199198027626962082497919459946413173706708469788899710345196468609497992480702128511877696091410120136085935933269173527174874797515709382416192562592378859400681628323984448289863534087952929763261044141818828272845215818474748228304112657012023015606449489850253456940681597309446985714901660609379334691096885275526093005803417945182695151784964921464788428901674125672608870925315472160061256185190238473492507943173513112729375017830397407376428761397466071744233343150378789352431631538585524628832341290889751127505671035856252883008923846039110224874013905407565331260811284280554357633462002054577657968518311747172562429330627416337635229192253389686130946482367157475929919339322988472655005307801908993709942389001879251779290801957039009064561203640224945974466141581239259936733511555705325532376232470261347101841660256439669248747728760895660737978195129058496764547622898337997410413484692559769623678549791594825003313923194773398014628104830840730610043268622326941432827621431450099159314128122586279786350990871661596036828797387989087818488152827011318786250132972018562763232415341065309655319687632271057805557786565710823304090827738942370195185261532975081086067304415545599450131167600222107231368987049598001554020078067835925945888579198559796995369037137326388333079561722714856198478148776264364884536448888648473792514049563438103260975371865083426733795558651714656826386394831653045406473152471446761679797196117216573490198542950625486394550253549945500793982358126753015139392412627038094405979646382788353114720695768898647716245549149635814462376877209723562023291351091944315412485893175308619628272932691571908186701923909227708818579545369535345558911415743823994302866602967827684380018359702544376873568085375848435117173730252384221589398017438900934506192245010636767733944366825195254649909881925576327357855572802424481541066828431374316751746378033850393066894077915954556621850665714617025419605309351832876429263775389177158967490152653426307680009588769561645376825003679322405202873002625441789279064951572943471217772485880496177412274746205361598450177194833806623938275299036180222598158286271008877319637282885215240418063269551416378329375035031316267726580037694581808138761443158526700888636260324932112535865937774461024788403024114220301518262888093235885063171172217388109398135751650310532593013588859777222208319274316568167194123210912169462910798786988881983236048843244301298404124183140847764673354927815181210869994938359750680952448672097664860603503779174325290693148428088477970498011206044497310745214602725920380657243541317810828907170717383402843177419691569100202404250109423013247876985891192437079814434851826635845844482207324588864374631787345556180757694010100957194040884251046245878938955733442653412618456650185304437917798396186160621246009645155869129471149425887517130013931451172994401727409660968499785350828560310471596515978261011778438347297256950693789774054025204670865430076834807757369081484375044603871774966566204279107215345884173768463730598539880775364567047913655466120499575461547650361813982097972624998045626350216925011463581777665139881935504203088066241012807025381780422255097876218495338862344689447466534721233663600293134161363867620497742501226865175184756334622026216440175755689300722144025472778120996144531680224357639597938023726274870386474239488292871004115653673259740216759314447748925913240264092425290763203673210477490159684243553675347687527951721000774833328138625000012267465518914123596757227291190608355812766807720674407292282963556546481841114439496914335531637558130859569459601158647604442919874312646312467891638342285959862912718251670552796742599388418835688257497298722438042419930012464064722160130044899631293440155206507045745285389071815325760944968242291649033560441704541143131627164050461191770320988856062611446219290417063054951632877094244098907199424816825579466732621789701358576071386261039771097136970355273591856390703243497124487342078460203322033939524811195986904408481060021861155676227612966798887163384242736432602904641395554244662284468193423445366392550128704806977121036256353273177592454715224324344681381033273600593547355976658269311064761445864038857198016027251499507114044027949372575617533365622997942078208721398106718194564957168977995656193118439944247310485721144739655237290786828387051204999460722801886282090979576282765022777030012937075784431516801046303349486700813915431653645719006334347337160152656482543732106909713076128138595786880305409422437738285224968255594538529528508026718691028763811163503935890622008685015642282523150064268530301679621572697230488411382409760770531762892529161877099334053679553693904451860096990626056810193500918175203270570670598018286216099827824118116047214626348326868016040971565494067011349335123289261072574933346773653187553410915892140398774031620180731359241384474966511722334271140085708799884781131382359511305307137501490598180934735866045325912113924198005412406938702911578840637641164863371831001863658193027923901521459343749413892693690822787098185829969105897696724781125101236128061774957451266905983689038389106769583152028352917008600299463505214841213220315545936490141448039693393069817013618601238075737984408608735692166144805821591666974449027757703927398813609294197628070511207399188961423761367436560398995661659403687610311923456903617448401611772798844671915051389384987935009542704940699706615906555719570932820690133603819797495004598795424778634101308259335582962282849019641281224875789252656618451440640753467074059607592160419782322537867989522431131710651578875722100418628922509036271560383459189558853618773297413265842016001137191025770017181336033816520228869816725232596350583442892210903647913768332327309476811862309521844459960500180007283339517926617232122104396153605421945509417876804925069116087021753493396338376826854809507154851168389907585416168177686608037681986206022093529026726688136696370037997412758914546398569068478715475189760924360924980006937167979645116042084522950899599829339153824953929572760551427347206332993312160407392676203429694003516416989167985956745969849955693613322147969992747335199014175022881992260385526744031263844294651606064588766582295535873554309807543925365050782895138976691841192582156248228086363270361619267859629666688353382131421719772235629091896499974928953508984997664903648882418626920243160471570932102255903413525631564369553843545335621563644468990870073521441961492080870590813964730344662741131048471232872660824782602326608411674157752301606022135293220207596948447656592252700920205970868064204988478015008509840446569697907917839089261755644541284390131862545949916401363137203525128258237953679855917518028270610365928842733965610310268570333791611719029080460919460792060286164248569262931254751005463809557548711512346540314355731261220455554305859717619115139615058098141004624861696846009005442815216898222321083618338523014898498912118623713525151915836006969832706735134892866656706581360203721397325689960331721176590909091885702578484985563372655219416166114704721833028435773237229674717441097374714525955321656218286381959368287913985232231774485160227299454918438588494768037121409626736482776847663253787294364144147912009998223975945520413271149559682068377134674210010637678485454450353779548400270004108760800835206093850730220476730733265893974345786047550236910155990578559146285853442299828318522140000860394398821583960250663217118472320564245489179553011698242229628451157638969379768486521785997061796334864521966344467412200482135573142233640367013825126553760669397054312675360405169767804385456777938314820142184191368814731651466290154424627500637604229075829807284913616203905642429495194001445449970321265890573858114936398504291983836874375576249672688646401040739947409597599786234854713055175291457150184551642813946356412118901494090536670837929799823679736116973386451741118941844174236440601782834630694406643385834202260621764917834361573269050403299675472016154321589814111962269130685769075188370855066000307780990160845033309435100671311030205935318006711678876215934069019652300504055049634268306052525883202584638004590596436159537720729681401850972124180365999718497899472451832140641714421152377834216666556630287569121441255548152527882656903441610159772349920106535325941121341100786147583412070414063635252901431860059504217849224253861629209802198263191736865816451173065367988718720447101041343194024189552207330810593631345177269059602304650458850951044594807545400173875233092481871798795091043782847904924678171398165215019905229379164257239203489096153848634935959905156180418297410420758236172835166707581654907034999072758824806725336163508153039882735859439784716143284307901278625543630951240457870773670800370755363204922916860174363926511827734496976086697767899796515057291119852417449278300948285186342876131156303387267827058541665910110961289567611865973779674245516746519053257041195108177728530030778142793503069734018315483918890133617394242809465603551757220264062800549602255027618990483083899738114156397833487050384614115184702115025630678818772886146267761020292122695667705928160214502647926715195800793442168068589890753559223835611807672665142217410600818492600643037217653668842639937829397230250819039472729761391712859446954191702725457445673388355626635546854114240745537765541775065718015819011170231274795979997940484384300209495463377220478646770161789726650658495980123106239647449568652139304061146723814558654675875730955663882667748612396115462515456706723462605693670261437491141927674020331171114578744366716673100281034252254395924570885343011277399078359923284781003789159681902970257492666998062457187855022490173252886540061244864502895047474600197292187845314019838904950710780317562264111592831590274512268763781921441750239687397851597078103820138793069163671620914620942795595431253960062445156258659521808117328694183309784070999551178814308993848230014792142354642129616125227669113524714525592427628179549497290137685813891871594117395144657672415779812392184252815090456234576642261613244762906085027758704050757127083435677768729247288511855924392682367088822730944773316522794890764307747844658637575439238159363329023626841393851127236653529222106191110811743838723226830781366927720715090948341993149949063368177126333371758713227654047361899409543436093697799876389534131013826866993844511748225503957694603454636292355761225712353425946581967501856482675474909797945273422158225209806921814133690127019300594356026151214564324060649316515052267935669254029381287462417381490527208176357597883365570665919028972584335810644396832613728074415535614469549356913846380699551379496542169262016830336440931664365370566143829370454720849732331442536322980115211873170424909380246610129571780393112872680790487687015903772209560899297533371467393505115527108494076326126980346266399379689492362548411304156798890530832574840133471920114155117165388088634234948659639834604033163206598217999287689034030766592778760627370856299823548400663141112729192455619517267463485210179440273590189143439432739958193501284866413762389999872123202410728835180841159180839677458303625382249051820880358114639756344217987177504185212924962897832602230417905195865902966434388057688765643456608489350725628404479634297346220185150862928155549923009461575971026776215403565416400430525183639490444035097173457093863158661960457431415816069570336888046742907341080037530805867297526220264699986313821224656964706727727055791282287192240537321579033661875120423733560254995009293199953005358482053272682560661748340720721771777679604097896491555017324697046218219802024982182917223935156967636889789876622591427983149239790401472132306873718365195150561781738968508507009679855683365667699020137043291882908019988160786117261008204489411550478359931179468067367078554388867953723933164479209825152824809959827817024530858541468278684399203760677898688151057644358120373990176005312889193966234888442130486203889386521663952676170598807217842809568380506679094627312013534009514157281753977799639035466439977127648286656361707456448722319324073412860774261906311308204757845261083899987140817657247267648582840902929813299713551751464625821331433477996539106620541189205010022610843937758855949963751434086280688561525044725016352181867883508498571532031532239036906196753871635001086196317224782560526286910231801438494742392066633288267556141718071096435945896510209168928357379098478434290921887473503832430844044446443857176073750225072774725383442727867260208819181793918440976707166260100730695201172766138629741548944646645275611877429219968544548507605305946389097224698751051413260394928032536914643561631730208971314321291285395511470831572969142494195394446797953432213739211210389231806888327566351474774530162264040588404175230374952025936756165553226740635243173196348032093035371664833812903990696709126026379598358034731798350979839380188620276380583547280614362342561703395737447652836540274258179221562457055738666869141785930775293915090918029178170018092798720510187713902971508710063539621433776677363644886918487469869164184129444582518951723272319408218327605039604205728600771136980868065037188431903700429374700565579433236299787699120909476892087538834169005666785996391290819019438280212958847574861429635741069653578619677952649180268924173672651693365048892937405680140921872152453366648117819705431835731881561610545235888379899405274578736464908286820946579848246543557871961045208748965522147220585291611332883219772312054936303508728620267658279039931045913937324839490933920753217685530028534831722978403391179550747925979930948930824027827824910094666727312964015878621992910431371041209599928260308836752985314132736486372056493127055658713297949318814019498992823463275630898867385621105011299820609911617293406398203172521829362767477255923603076013566684094713827878701776706880349459709072925118121691933079334111891018939034651368849101626728683115114403869878699222748147808158494838669652767488766697467644660799225701804307547217561794836724181511492263396170757372899148637300163165968818336887116808752131087006031930174451992918133998795497004833964718193015732014766378777428484112499765954263707644089041020737196001899996280673213779409878720054691716298308335766739007715448216691558654858781863984227428366542540461032909588578321841220957227073889564051064861022989293982374497857371096565359890769288553140236061098043049011802593977036514407037505631829757223124588552595312092716627708919028975375678471017437463441615532478707671273207290349966680672441428820116695087195351028738922544305581327912516207031608687651317916754654767395889602941176012744076420798973057314734690027019078372955829984683869666584078102394145144995440719711973275131633166893494530194807474684399130639620807838128730762886881314054441724589920216314090969325895001104532683915449583939264176324920845576216293032986325815425361025441110847292483822012706224130066072714874240056139387351055390306683724365779110043992934255883988634531066965431698080831860167290881597289457880822704427473983052578165150363111914144280103743617112874547520740146361827697118799894140277494320350930292324577795168782479494290998297714979527993066631353021923881686497830942782610756995500782405571953019784436518241605176692215653137193838085044092464054744495917033426010108028375737690975225936511100263908620931043192066930272301159708953930556482914006951262887086894417076851818952707329377731663386695375774329192827180188572822672069091485261424205756367988730445361295341695357955267102796028690444052338300517249629828109180780318498227135978457236488395610075014126795264495545815280539012639538827985542686886309538242667548054407182955761141545415996694046494723992970985925683970472992710764421610434269239465400872576338980596767958734316808505204962754870307605488095157083756863493765489314400116499937677122604757068267766464541073794547217702759095173589310246046584932941283425976970009609193568996439851805287070767764035217393887825342745965026909688515605415518867194042731838085066678277947768831947133303427477706632714764890539193728331079843271017563957898027306140341298104811913830860011801282785996290470966846675738569124334717668822989029508988273503244204770554705899227174375583650166306442339309220422705476983735558336694966400138148307347831604450747715771064441450571842562822061305699178448053966220795293193833937266898323347110829387900057346990612789953929188084287702040460913408324350626821416006700292648722967020622715527069328211813117147692330094346851811015100696806621240409113434406968461720088293848742208958009763341690186103794161284971628525977289921822655280725247975401730262777991643655034255889930553787164608703026328023720955911444354429276691919259507696582227173506416434178960819238177742181276205983705828025661164749282054953817954759044158004415296261214420798163128353442515216372840127117797361598054060141676825627873514137458252821259569657775311575967262843388893204795775995673974927564036630713194675739421583798541713776262348096565512801897694129230008412231315295965551414160660993441503129271198808573312243222810051353922586973322322790493267309187889723116707970452036856564445532853268239788310320304791591841384159914771460939624433889482031684615434372247183437836818957164537891281429920377153763933082547353593702007826552988429171478109727799221096191018791466111822009452626343173773264179701326168116630464334413231238035479448607634700033579968873939858647111811934859553725529596916262263059309496858944849570236342509051970456972848861506504408954862540247811355278005857574397181779528029107098018482488011358903608745537915264549752037488440056978970960224669629185669722161560594425000528397535719344822668083563115822271706005067499373736165739813179213645709832711219535973307483069903326114708017339416836753439080609128979881284244114124800403123041884349177596830349608190877561220770605808399362292650008253247077391776639059130150229212541369251400486683349289766485648278808474232358549366323949596271403516878181039724960202153387074084928337388695141200138480823162054138928397394329658274681284550729502931464985339603518530127575807810797488233443624439511595406419588706638419640459589388487334187697607583400421326813075798204175974964753171277269331518374825828394209546851362750069469986805032273710133924467216267244843568725211828589059764803291788826221070370425526127035013101418677832641680690232220442146245189638097096972734601119971591007704813354651594218376191260843965042103510754047932430656679467360316678545643434852898724248565309192454493038106206367920531514214644022463536316588530644782700138776775161279572768570892089254607352331589369481002420843879191081312633586853066149537259434585627371073897898683043057875118378725964524484296775528756452985051217237567675007034204969227573518343601383827719277924114990021625839819526574994893382162411866515976603287399661110223894385043630799310748432033666408703499262945525177368898040382871346226581083087675284665657496025007825772841246515249004956111560259512970833782165215692250782516568130066847325327588854674181461168979618944051908577193366465325489570314562408940932681521073244395666925625922524695147806834593678307095888679234523866203580953459938250529972137913818306662711106552259536910674901784148990513437686544781776955103359296521937307210149736650444098890844318495374193144124798754073062195781267385852947089291570056191053098589045478598447180024286638756215377033172865590949741022659304851666167445670962427847967118825126648864160658591533020155960758867707426694568673089469702493864588295852446208117632429187218240314612804653857703512857811993016767455992268697321975881063398539047830215754235652646110856380293968376350102129635684195477119867674900522686550021270868009180715566716042237977257461208330288728021269543530124624852858551522005121577472321242852880546891512019689419713915037153483279428943594211294112946045404698528871602733170904814525160487675404073325311043067265239955546047206459668149327366900957695145547735644914335145722997618294352549923013815294323588420199944384947468606697253349103141141426694878589996972230793086465542991163425289968813988309187152246126114630605017978817712662676174330970870731355773789051603335799114877857422899652449912442569798222970506149980397194789504313651276289159212266351049593027769332753165824106954685298240408855784963282284235851776340839051893364213978950980640477576458693980416290752203055294554510522827657523268648031506790352797033438106415329380371366839954108316593557407577616392389905193974384701903514502763490420198951042331363099112784889740541613910902740225516628443638389239992109839120811311773843293022574382998331249606424827259761532034114345215976307216506440920782338097658628523091861820184743759381775474135205345375940927121111336181247101794363184667470145391418126708623707166858496363125147035575541019011364552173700179476401316739864458448829586145181777941534003104387050578789868733125588389305925880950654085131489642563798666290310124071473097340467915294359046126692743983879490705546838962509461850599419824464920227447484380549912560286966158006379515905047420561756301403423392610737387770842536044616929627098915761157719822555643363196171258143539679082793366715194857549480469226816953618191950586123948052102749440305717359631617207802603431032960442933233064497892636441332179825739749869106611830711210483159206510734788477903994980430734892086922810601672595594034961969351062835905885673202362111596990443746029048675597556629244484238162529194889571696848690919806130172336804247121299727400973212666223149547725314768051837871713493922063109599438170489424995589223150769985546234034480410202661599982735265581323052982416779753901925839659845508609688281475213366494068369532730471988828874246879196798701586215748568140004804395406440646886733838525204416412564883183434551778973750770032106688335580570111885793684833807370246849276646495222162029344535807770153533876428313288402054725219332412648978128269288408129286795636179511983613033311339893319727589602881516338353031064110343199218621474020191740088576065052917403970759102710558752614475001964694205025811064806460883753287636597786915625188825353918201372238073787045547547002221911005230129018388821556203817372049720002182461207725452562309081440778987747696614571018459522584067363646846313414938428311204023670419269708760431927248799569406733857859833446273695368756965524903540552384502829006271339319948809124245150548748198803593686881927830761686805006803585854018403458306576395595176207648206626594304835246096309390320134317426338467209932793668945683777049447407883314829651615346704177400098640623127331901343905926581302343140377022524808273444640647521713160382551220462975049050184951798545074174575835671930184922047828799620148462625333123817459690353561226029060593214085145499238357966526980282749018857198821895661897299922365423119389771530400486460549017367200338312772451270237533027029794037546272216016940331109506158017139201548068965421808762880505890061943894270686349737116440652127389518835035804506605587065992005949866620396700106664200122814317235911394377420712030130228458895689084551606990513524343634446776931163575559505650634294773226868844090814354823213193810805151368649912415361108043495836544194931302241866011775552534916765172533039165287039269913966566970923010308711993438302389534159150573651912949249338846815994408299731275130041001805107796084880627869910648585783053276920583814171973539766114494307105519738209998973712061598722752053273440795255260024622150677480107877510586681646681859152139585064215569820868395793770281011439390573152844426329541793157634210801225713309257809000104061260555451459864577427274353102797283912934239472953364217048155695569055555306872798585558427254964172567193836835100549490027270826340014418763460273039372598841191945081971889231951019805208181269991233333782965797186339614304065272107916501047708489645958727078593237449183308858871024130208516352170152623208811420969557347848271519296096525693878721957520808835834598092957944795085927528549183469017962449990275662378084100618592231966450044900442345325055918744794326115243087526396766154377029915189223295257418110990692674412986825296910137612223476867417937124771920046300075954897949770438597618391683217244229594032108248901804331625641941633380798158908893765605544262127382511618174542487582999383174334500499293025199522695602484488149194364083493921972709778336531563653871570725067891991679953428202928682504562489182413920083778552221240448812902884077717194984943461935587721741448650354833626071115282323427545323720988142959614465623227452167680759578263450810066775150409794545081173859330155884940290627400153779431519083302596301580250683365853974453080353236399411689418092895446128411770108526436049822896465953224413586691711827758422565020732655783329550949831596252780214611872833155172501276293036272491592082933585119734720420054631964555844690099602069894750647924331319215478356353589864719642315742122998912846267193831471646700466625372362561687666533430335637178751226625747609333296401794998469757671429980973006546806154992369010622790629581273019899229186453005799087848474013438348712281915811339925417115849036298734606639161184938355339018742036149688044143718447064235327153657532473074512878920501381570005536452373359118010252808078074875700481756983794847869967230139388440956173726481107368102041496029191492344097361712220103314531268791955208175032217450382611175821201620129140867721868632348352319259277449135048920158530187492312068768011792479355278844069972812621860113947177690663890151039125328649522037839289643072697782758249769847024439124460536391216344400154277554656689871915417323377627675136683495197164909484057394598490120309333325968822564755954848205608732732963271914713962132380787744310342995726540119118342572426952131769429406213941355339393382605750583909718662418569710702959306065770822967607663983607608259167300761342360934134521510324607591660115237643187118331094033954022752765411259770266737487561091731149165692982535480821574029367637780212140557198066078015140895158024912581840097509346384628735003746461323909137528091741236774838837017422306084669356337607669512492937831721192448167328783061829197616546094540286136409646054155175428435951523430501681503088626960387920676965817905074143327295259050341265233964916436636007749027213882263329159551631937046919225909196147560793725815043828394291582933812955324383249895010890698119946826557161403914466928788449942633576239954952239229600962488136218485139474140369123563444142868681141829159340611138158398895372151317885281690955848716747527273445041144333749630806222306750557940123392102584320101097203852986862568479287018440095689664551911968630438428734799056370045649229685860788285082075411403839528932737766228282997098389171154055450708630464225385109246969683593521522762041842568236376359796556108845384175555167924391994891473376232613692270175614333453247656424340697024417332849297090701290478873487776473853669707700851635753735312850114078673630514290796879001009747892407470871272302645230882093879936995804046801966221039294118078249381323687041376051556397476654759615249260160960571775669786165005229695811303063279514563613137155628227758739368983071961125537158019092737001977090435268052543937699279174542352785300020473784300811599223441457973695443043295558946041855032077688808198003198032194057400091013100863897644863039436724314799582534588756655224747793758227164266319111437626604884210123281187029538090186148158430180956337850213319137147026307165815687749991723871280542660750816912319960966060553815848163096517594806793409190454260242489729542671007425907752508142305914393242718543347148369726309838141693552434186303305928167851157553195214570032848937471009958030794816453676097639843749902918564882272923165323086179813366056283839581322576878864615363844411698413002343209916085713735914242295800143687349682481027827989895868066060128115501547171176002464233352570790417184935058089429139375258100567465615053996184856569487413173892312669121837841130681584658203094178071428121484627872287552311572758307142113500162249338438506210925252054525333194967623022834951777411862776173440907152509617233708524421976220919733747833710663125165269242903081837870665608182754476070431016383606153165384526662215448758288925091696770024296110625641419295425849831076848026679691273990901823679030476702163839615084701135316995031977160284166556193447791966804054427693893933532033282592511599393865629218058266295134278074809440175841821823958791748384956540140736692939061533362158857395970500511267444312634907976557322729408099797295127463234230552557828478670783483898425563335490487781644671138652871086572509267006251985744215025382746554566233582238698337051994637109886685322621740947494163130323650732583164886864547749952831771054304546937657835707292348546430388411218049410581317488755550086273467369351239467978444992593491418887860250854770513965540663860347467965668214307505847483434584962305671812022045735655227886412701306799479147535322498782526294276585418930291213378031394847159920377612562612799011480505870831053407281119941891047844589594785042790268159713274285061471147283316015402954656405595930903253217338296902653458970237889957837909614415264854289083130410564445167953393350384346893372271315555764760786573780123420432215323567210995546781168033161806243157087933818404103161962129276155641133766935073059170996204463580975670639954211255617514704912876639875273725506554265787514595649749819940050510439113897442770849089148841246740287886082967908094766251054325930338680992861470205050518655168465155539529772020156798171750127739820453664568536899613740038304425126437058403121949540755028366112568600451227214005604325083337098484848624394908010421650238761411031370170046043362399561932005819024815969885982925426596365930958040057996824748160112435878333693169615882683317610510426967626344068821361784126587731959369000010843760924526273749548893855191032146581178101796329414815297177077970809858648444949322337464594666842954627646365417160147881210814554573527282230978587657201196009523906280768837769858091483538872982991419036270814824771945679496629284133382556248243103620002767915263286336821470205634924158382972649122948123970296709706485179196040145060486568825310906485496141727394745460267994124429533478312139553439188840949367815504182392161205330800067550373037605454500736046989735475027860786233268624200716346909483867007600457299414201268859387702884430813831021717155921384049138172623830360940926719873061555401791803192547895933654172826949810186119444736686500511263722490239683950467784732708608988214845656383168692555872312222001188045791305156878816220395154835703182870665922003699926681757437726165860893005374547677840315936458819173974494355971903346869883479394485350689740812896223164805518753095039544749261201401921585984160174407875515468811147634644603706058557636799410217478404380761022645698768922425898202364193477536022938632901699679467307854112298933253553544091597565527067267612728192592400987382805273879916655264040850573156827030801275379102903142228184523736107716409633261402679956068851313628681653880333098645150493143574941453189189767148609269568361078485627146447210805654903129121710104173804978176089867225808646555839443130307062103080735947176534403557236020263973697736545571054224906417565794477756930198266967335539407684576029628730197185153952690450994299416773126435062835735252636670101660344731624847233297665970510621428989932505783809109792519731038541519427974934474141473023501138780480458022467284062031597147571226454141101813174204822126003057093310871997888539754876539021236294385701949104013806885681166213009865823934622061925579927013029262528908475930911203195314548197328245144241013942972763559906865678678425248584895398063920787978161159606834762898598757219794540350352162129995426670335508393021747963475337848847988640723503427663155726375814307732742342236829086800020296303911157563551201454189247193415060019112722917947035866527843673429044305065394064119006592366208259770290491129690995451409916294494597945215915899930325214621813455053973726323806934380486235717173114212900611353471432118061515116727520527776477238606513364658157420872058635788153765598381823289104753150720121354582053029865830100174764016061439754088020179717599360239471729066415462247902407675857449093393950981189617756387328793185194629659211718350248215690987290040492402473051685163519470106773589169428395444868100731095713979098238631292538375252981384674940027595377329802364037725348948964517515613655277053734030031355207162047709819801074124426687926429750034555558975549662791400158723905857396865329879314994434011502147391465067215177268849216549455308142017784785923417039296397035527276647215122409009678172178638761094736037588565326653587014446426297557162455412639488781354718341434128301436383266845014016465609861171755788813418870119642028809992161251720939952027168528720473772048540915920657310654581213629606812171800514834136421148890790657013762197690606375370763290253695146312597865077776901871188244738876944425825952024938568845053675330509576306448109933808197413504855211510225954433267180416206053505861405491407694154888871635518287072058350211029117414855657082707682622980092165882053099064902820979737457320633296581258618384557197289188428754945141861434723290206028967319327778698912807456719015971777987284095676426710559036125325009171143343636658997998351532999208648571333450675556279773878878176860254656875293686620523448013710021283786137791889010773394454867806756095223098677013023048478309894635942803896010286173480963258176123890764045021084459919498772723236182036787791001014395281109964980423350834575505302370042656161162407047999069568119120455833399333270797899360124232752566032008947228235785789554498932099484733302930935084024545831689885780286437422922510984231806866643402349477480316596601916087686308844726203736131266590882482202022759577441146278537666259470591199918354974497282745488079802451528216629967500785838668691595899773631286172385152332273452138407628631418924460639041027335896317789381745935968122866484776412975896625806481449132086251192177596983494133209818545118803286391861577117775565337906331921229324146233167109581203019588983970601523423607393376844641395608681140837727065415936638557563096468724313830942581675960010297892309964246978938843046939038925714253530610015287581119832762739505562946168870444647881223406075623653620745353673382545105065994169925981490497123033194405268949121859549741391664677387634712547451649091550268560911919797876069774887691565067132568291029617859008409650677771685809250324373700676070391438682050769571485977043794276865748174214338315657173246194844050203012790409737488504866138498846547134278420311403047239617557878578130920920786253005573551898617081990146038493732627143206827490123476005231488781559465639303081594415085419029400592158426838022167203543093494060632969211749024143563615581117568780282905807567176214264016380522759892755657702803399206350520983041925976045760000733324297057505777976930808943511082495164788935273866073302285395261078760070951222511308668607382531048672673718693628461131072089570137144989548031605082322754259686027232637763967115435296813876164236420392658924882534244819495234504085291655194373598373899919300034480058182127915955857740006632527589319007719850594043482244300404060490044041226284691860388460395717888494961061121082363107808563027549523950239502615516891123820407382306653904249111364252510161535881242709028106280852750138169718422415875562536977361692623422664064042632378323111849450611124147138840306821692151917549568353118891966712133189838353230976774865055764950751019812884025951674312038487090799098173391985674931516367513950576515443288648685691795658479414256903892005471746912427539963069618311897961157227911891781077728586835115471534397413020677096397068866481540506019552415735064884080670103856989835560118759345382849262052774486207875123377089760120853430934386418227441184332763575289410767924371857522793735153868935442016202268416841257239307936130383377703693792145335353233312233168564982182899882832508309446593884600072403947417709967407213128503325393432514981254069135886045299267122159259541319742812528993995963074685128976713923644093086129496738953059950799935503398730869406286553130523684792184736514949387998671690701094616490173803181206157085990890425464026327982098890860547933341720353381982342161775204132270724441115494450702345082586944934128101273138144049808764799278665490013499874088411176994554657603856401926353112107320495625782137028541989090589362620577907530956483730400307347523584050650062485349647195391843495830280176856599660613384948009824741353826363290942740866721526920815896151766855322877875058167105856278879547260078634843740528038760606606483233798218055011312247616481300358400486814928026541369573964351331068882608316960117707141059970466803045541698716403827479496270535408473199879034969958020651266432996098707036384675216099258907947668610636895273577826467930198536231377743604546000793479074568665542146994837844919082910205725109322088717103408246534788877408621969628253199016621015588731032408924735493006788088580280075061711841606265431119755371977080375360154845595293425949573620165430376599008490299615909245278065419402008411865856526029732029716655256218092216159222878132920839114883219182630797971521555016027368498930308924854683917715513239030088039979832273079896568688734410758980246807211970679135910916639305845464298620071912144979575213398160466044891863019681177801780399370334234903564469047127851278719804333440425480089438244365848560707982805518793011571604143060974342274692416027229001176786477763419129077588571428174783526362673298527770712817601077376060793534339117142461385332565054695399164831094645823378429161584285260960411368456719679869880806670107064562725541585300411162239620267591302082211164623981807537106431672055810536388046237495428787927661565391986790087405146750297542429796677918942349869138554808650375212374342152557558507136482281575011425172426343210566031187381425466000131170576389579481245847425047579897251710372999988159492163524868690155300593580275051344536778617127848862281314329967515806779723057843911656762644182426273945221016338726176209676140145570326324346644382862795476043727189352996938243398689481227688041257869795663854328899107573757926856287575279020655502413479972649434322084824572943258237302434196769173468207649594356806632020081628245644297436629833518769229327324289488643308856351895136121909513830452154144007282906468884646269009099585453220342837287591978596779810617018746520174925026237236707661124961465322682862735214022334724141429159410003210554670988926661681698916745572972258454706274779085340421091583168471354416294147481880381190684261016495950095472649022723819348436793362425055030202700621417222450224827332132684421689011096946929200240450882217448924841685639428028928727313622798079064389951110692578435116465251198114599101267092326882911354730019260224358340193030528057702793929996057218056604794354619832562174513906587168671268855196566991256090146040778730167129627649373500680370323367060916385706815307706082144588622482203728404916380573482400702236153776527104764492211797954707042972161887097253246044538338405693746980461966375922429370164449919247221384135391831452920909026076158716548412529097117336611043432557571658833383184635303956931740169790998716412368429067854985886393257146475890479091952980889923002314120243548546663743003723592122446525260006278666457832478464244704921584337412954060630635018722219502446922241519696215121341017493715296474249025509201447008650029460011686239892817498859572786387007828982602285241856180896475169598409699933217531367973913198453818545439170046538976009236240830820296705129078893458847428420017110648121365514704866074606312955222230772195365188572967749861526298881813916316822750000835735038001689301687111029957884800095084896474567419919698081107835966905168537670143320803858253244261770277325864210548336576480885474324733065869343156000244106063474704435591678984406676914999673924678667678074183306646537937582240582300835327770852281930464327925989498075924147851729027487017985777121059246575681524679624898147844219525471650216065972912400378191097695332042548488206197356846903766297501936508923753209041617560134138699565125998585071931804455491499441482811385682180597891878374841124190338715746076213572775557482525302132032590712604564743020335247834917167054200769609469780988849327720430146299379252034365117016804346159170701906974574354611180400399699164650322663160924747169474091188891930260199574679826812788442859163125370548790564459951416608162851606854115562504597823550833015476140920274128911680105942791685875370280721073067978562317307917943585602569420965286072572759912766904710746048986380002447035975384380237542382359954333794605570468028660080197727279820941747375247948518243702047142043987067707053897557665745035191654445799912986003805425112140614994627855851193520669560054755240362220413063483623309415444590660355398131958739102298583804981717651586344309657244959473741838279536770830950993524363584815670286889964462185702221774280019249549061102118419755235692926411063822959687482162688534774300864334415834292293422290040820129246347871337920234297099699054065624381270304268657941531711070606455389549829875992335211354805167404736042548611301385804468736665051831319626178020796559216419534567283036486350630829200052022412140307862779304339032118419424374231113762961395778711894823479091944776027229805629215018979579368087691139118375666476760279163374172297818312848124263047907471218601677425724341235842369531783339709130029232858373993963093360261935017897624034873315783501262952691385297347434525689559656270277885312652483331662864664197520523105593360363260181728037722569696783025636646809180985148897541779291426423112409920580590430016926126951537684484037666985723397677737639565463213231234597123368626158882852909245803132608884348359957281438203222999313914076362194415573230926603658659005483533044182166386095167878202217972875088281534539666536305246880554844441037862021977770183272849331145792879729892730579049944796993795290050056587723246218899172354556582920549738075447992678654454184547143615261300174503608777019128273469396361313996147678098644106982296004986381261123173532129333464759599849444035612781499764175481560016495484576816675758374700102421824389375511594079945034560761947099728219529133002056480086533415860543070332796426262678371840886863621942296198276552542091064775027094071033891598368606890667321359713537230813162440902620528457134579843570466444584547634745061744685431883875848952627501448375946306800489317264197452910065798800341084293602347208973269797583249815489481957595979121659708362368720621510364402654553279859182402120611951885011016790595628604141137528553999191770634441226191085436881595146124548457643174936206603393072197736272578059903774395684497185695275011741118007994064898566339800318832632390007625481240016205006237645940375368740322370856186672897762205805113194301943833900615331338452132900608023775612088646620596630555621927935283671442965273925010398579001395766132121130156102927845364323076114461913151118347654021656489603780060716592080854275286142197201174964712011589567027327680015100610925352068336717600641067789159631183937361361332998223331659751060774879715936776976035836112950127641262281385799987505243483917368270073179300543984692714739485844183005868891576554441237709159379574732790391004025960969488400295305689890957732964950642357605665907848809643930215824901515623183942824471331850203324540047750605736360539035645798627114290125435253092429943832786201620317808141322873674463509033681380085662019899767614579125522518932233582946338889955805669974897479417381465383356223269741761474832152709662989695575288948969922838706566849534973907574730082730334432436572599751796086676265413747249183342148284979438795107385905739964624769674720590923466591830533922998004512519121530328284958138980902738770629615928530290880970249618848738040239780204326966181231353573471711161172799323964942138811963887532758426502185249987429054761785505144071229781551492856777181957280194315175265678775780061119141889866865871738274767923727105015915930219594827429156880711329245978084144228836716731341980441814202142898285187091924086588400254154230341391387472438638221239846589304327352839887392234875902986627481509164112183403659528030107811943934692014255832833291286959409311432700510659206116879424332057953262111853510638349194353584241640472264857769177972387571626202767491327065020648052226877766285030735647815038975109696835645004152628989647103878718073063502877534945761842850559256623492596539653576560253877414677415166301469414152979402828150364625977898046740398148555193225492941396870580426953103756336841570868921113583911162306072976778291824015834308269857980883140919416351905822911312617815236767470603472349859375200830089366499543914472771763645901815844407893997360405308694679466864197988917717174605243019839984776277113316658973453062932779404231087653124249876834468565407599347105005193322783969951217037783086731506177538526296903326689726395183485281973307221044179133572740757437302900472892557993464596587806727309451175203313789333906875193211238994686337298740285035356582868265434358045893123430591284706287761293172239451764670841672604443789147179545501805815593734114005405628539451673957143211900091754611457853514816026633592279175929065172128197993266353354793069238184762593825894006431664200864395347053169131603726946075953419955813859902935894112108059331665717852372006400649158143783233687677513203162838369882303243817254963981027156188073003052661947739265055729071620457365705621338017723291829307636111863587549527108884074306691542841927341559256418121078911600857507965085678289342791191228438724812355451657428916051916718643994344972990015690108925335144347296439996500261348192123027381708377755939693540236362135382922916480119471420639064381361340648133265967465067698990752962254707908945506551770460734442653161346017556770171317772736048630892983220303384301124678213368047897312077564643094469318739400838167074519456829062165333614803612916748037047620776094757900882477654175213385559489009946996575595308709678152404617971280298348328299791330632787778323979996713053314428012051074516309314235069316343113853651718355573111610667694846434919849303547970106214179952761172178553463576008782746852892533333278181759122671066186700718567514017866821039252795543552154629296075494592217370813351112042569488752951821415305400080434759983016837775158188863440220714000591234199707478682381846716242142685785080441924934713875853145411137170668567845678569386373085556304857466447039239076551801324848836039774983971693935858959584906066887734842982008252484317670584907306384231176670722732671901773477295297076791947233098951438403288734502670696471169372853551539839538494505294916267268003587694542343626354050521842395842699055145900981990779041782008688641139149073816936400603571198366199661518413340749165453909006404746462766254097758182161984177692367192227825723355832991475953102480434162267063224843526534305090845812048064020744325205807904907818707509030490307468900131579136759349536021273929181320232363105855647695849189782523036670714204073262664931216750248704986627215695224422504286628789123706281849122076046495798665801228215756305363836614704270698123102196150795923796785067586630557400537991205229661165836764022453183136163322898062033918308090946200521055697678018334691180738945886585757845705429789109079166930322244118817562161002176478903107453110646420768772963587693794647848404690833393597719052749164470721711031520992163018709917384779670226258460747824781700942230786696445066395795647271009095505181346939938577674553735485734392498559641323749518222330383734416481150257559303549545776062082726226425461974057209405386350793542091665752151616556192230774518886607574181296014606717262220221676991177634915507427848829675204900986647743353167509329041946628538471751190005159247775576075770768696759746757299423275919496030558226281280023448821985528220947678136919538116178613478929780104225901965352824420137581756325217953676699775617956006592433560972060092145327117905771206028845817618044913034772382075339202946652557162622455397475962082976385735756742857072811255376240509662093857878042802733518063756870998232136209324836946510552702662993755058301937409174339578094105874309824609817667682838967683230591972325519583702769177943422063239559159446479246835603718958576999038395544067278324941573246184690782791663432757769550022112592691384879513550848708838233333851943175543221279473283369019180775374856844484735811543306323607415343820163457390259585854447236823222416201537675240942262834161851520454320454321291285472598102339187269080845229881597489185706592425328389415652065231830117101254724336343851303606748216841186547186022228421208180371689515481299031738379207538370015608656394739747994072948020309569985261954003677455462536121838559625141496880587222846012848566766344237232721539332855347542191634678961888988039002511020314321535380975791607477854371388498330721029270589486612309713563785182558485182288519326769616350539961713449963404837223317255086720606551130106209775398378721282118370763128371065436368508674018717928669943906503229196141532750094379409375304028845489812173820768594440135029418259162646414897094929929558671310615953747261910497230289319956078059170451594348834696239064165254249287251854651862186335931992072119740555452298888254885459705306438684943423484373668587878806168147661725226472090620932369899255814342022847291106706872150355011437787148825025008379069201522738767635127879386513302184467570025100415546033180671883011885040089392547564070731370676495170527041084926055588464306770141680744156641335521582183131116848164044744247310574135692181507680032643429308762923213675823256486206829497466488621238148549936992803439094380826860929350973502353759460368253403743655906408652931938064277341163747880560447744756176087218412426478573012169272731928268717647762745121462071921090232841138878887746586758847361327415936293909625073365176555621415649698354549321812647116889738372233772607443223249407221280176572150893784336139903980889509721118025688233712928504445107340466862985841624688572757583512289325050275191704856984270978566749874521552866000599480211970430582318537805623677453197720557098385119082465727315126058303867425070507824573356045890556728643100034313806056267296283253063717116357526672784589380058898289592717359634172211822350270970777411508046765359596887685140974917962499311739672396957039250133201045503715799002055194833152793448976315305114480078246434513992648628726542938248210776361759678762628979865716831091235914379427512449465571879122391365460629299723359884211151367513096576612537364904066033900989760500279385324848292061446547499983175956138784190055819630164099331677015448857232284059855261289740476494738385784439623814436062337089306416135519697755945590506886290276590655757554786963569838861605055369072730523606084352473834179141740835516602364979486928100635746595679197077313170174426589954028105487061747840931380190253863196023503583450398053783958892998848897718252374102552395157980082515810378499764986804697544653814128424571654555056226039639217911169224653584483782579482929187663525987533290395089198742112373260035958142778473212630032429257808980390354584366623747116417381655845252971216418359587045871224584099794611462476977983814518390089338820837640741080581301426258606820099351290216411848310253780945294022931538870709473268159848174967717814916572917753808643311092522912102142210765996174654009479300219051666476105149676291010803744600779666503212687080329040846721523708960133951291491039255444344054007791085325591590308028893837687889504713052480410901251407010093195734649210100112257314089640393285563931477742903164691320754100987281886135353455666145300335275096023373550589074737926816441575420565273708554079297168128274705126655160362203749776757267844421668663130199418312524052381289886856541644544975716650329634273755882674803318839006841716947551759125473019960345897284876367390386522024556000843399433316794860531611264554353836312194995961259104027712268752732043878100211039723959106242630563598122390064776021541530644561752785461885022909894885693069583911145695161096356914325086330161391356479206300031293883083958310530068570214753995163350708893480251088279362530586571233717926766768558830841586636407050480962939336593343139853017556847050069013182805139418566377037943061197698315876804717839345935261068376222993709041606887718598363061999870730646091195554113336877163247567450331596682759163826066429830278787896835627607702311682115911529275248596709757641168837663346932757734035609153031794549898013956556755180509460635850279915787435839895537703390119339439510462504377853035952901449230997805135739239589976394408789278974687707195859090101771773394461533225570968630622195728833737106070213198460960759092338103292652367399591512435991170617376214554879633830950799788515990574044645245556863543373208379744768440671518672269341861685124269261267011050583374482697713267006002572987528698157953359487235901637777024462463891210922420867069751810963234905586790921403987654490490003368811498084893539192635135656326833338041925369875364790471935358345265217142078171048575322351379874733367039660255349762341564563719846936941782243154884758377979712016923726215870329323425371072473315850111302087125323315091279824327571231163994280669423954435079069203820130200132935164777944496642726436703256784134141813333797740375394090312688454130421458730436733392491710571981999725641184185971251130165526556427291717021578013019505330904206146596572101546624954866575127686314575559907200621083457782428104444801193431811918474932743542334283751961454028191725776375943998853074708014467766716032560872980703117236807442005467045606518703690427250222377904352319374189417836389948564918222590145364214759194121817567472831017762830410676328634859496246231292548202242727764817518252223339976601870571861039259436875469895630325013566019088219618643577200317735071039808834256721887554503269732744041572767146584145915026155339633296169336661500054754098369124487816119249495521080907072254262812816302600834032422334432854081001732325202159586151729668495326153846558437931333109536342983277718911689855636896777908633668735204481142626282357689812245618293646277027429124710162543824007616769795509689355537387596436099737111178479973544562959472304029554416361638147746901225405456492197426198590323195380855626468038456729471817849998079206524390444316755245574324334769617893788619984708483158411818894666365351653585181347163804207083347544702712156611752345066603220621630946222518469083673663174591953007829794042857400508614157082455555315157627661976972814557446911980637743944902925664085363205571419708079538734186976592477740059742077086821590276461116655648474155435699466629218892739976978986834411980788736901525477690589096634041047503236262328386528330036413526261991716217505148088611498438772100453082853688397692473479675927279382389197771045952252346786576325637302189916107744056067776743136314350335919142796032829429012219113911488908793605037022784467125827442551953778911402094124721399824036931337722414723218677211421853393997730099596856683601227904658699797354689054106328000740030135519518145847953529922024537791410333706481930614996838851235585875524930219352510259879881999376543210661931652077426391380195324035316278007845036008473559072141117390963468530598752697765709152197605604380436692821833365345475875523797777674236816667674775600010305462402954660283065943787905185536439173922396953806841780881904357546425460268609730978070277399565155180064253460913232752852438889101840671821725883250666144456822831583825160537445916289108434397638665289846421526003023109889830089533956219367591504212186987120601306366866225017200076899988099394496645841723540898851049386008560304072673522867423016139357104719957533903092527470056333474614140662667017749247040099069176037268255220852157111845669285700624458427530580527826761376141473258007498983447593532677896024067586984376429668021819034761037231225820354031342453243930508176494189679447819813285389931095063662310400274954686770642320097915278589994159416112463356290941311089326924737062072313735968198469900030799162901817275229222351939332371909252670860695353512155060570890139333788335352113094676644159273587036033434665360277107018153908161973228893248701856305188406419294341410031209063990689001947831113766295645197041884901191570690514949023969099326013925260312482848961795774219621958433454633687520458858866045446824219190961731368723133061346132499546308134644996368742693192398216052027201966883611718592958227964706228295462628255770618761178442368329617767796822222358044682903507580253135174761643698514273546140378841645995407599195531920261975210775819125547550572412829918166272166503449473858665597996931073763751797755930853577469544609916683160137945662375544836161673186456149814107546334208124336910869249632801682600496053635175531038092730369948827640544329112721191224507282237435934827685734855618013891128548808017797017612301546294633334826072909419446862177715652346116884905917179229009803542847993701990996290366184402397386125012256035681341477963146953709954691472689517649052089926030251194532664628167371524849539385729453192182810714495934226863838635895142054093009007756538508334064348893471305216183651614152939832756781368995499265923737700102010324041381306405452625914299869121508304580796453565725971717389059894897607804042561501927869965917483410002978462188451327003997508208936698053049968951341314111057663657640041908290674640952531354694781431170014037653095139026671323864188315991354506982299157506863645241872402058766352883940106619182778095899133737585149155940598323359707242414694916777928939645865002898362937752994635018976940920178588834779162325350538029850512957831928716103051653059569925985633387564739401959790302485124214390853829860382445896414886262727000752740261729409038430953395187230556859683719981028279390280465919200115739614576754007913564832659446469874364493507314231872207377620370156849771759561332683824485768436761891458390718126070149072946379152295845860750833341611249944121303287754425103962645470414683218271263345642545979781253983149834607879674001658763279805758014117538643224639198311833584681450554445698049471606409425116770559829350523484884720502754372865476744155555728968974183735886866376790222151268947110559811762000452436972844266056255932634761203107758719614839695626909430350986871441447987149827109411282966274075432223815955793937280796059375042508050165616329129716587717588298334637142387090136278417469731556502192846525455687727868301107133072868715928031065242240672740093351071011252957769177162217059067873463793559204429878937711368750821976600889418945712992563061926506901797970296013281683106691332203479524489736265199738258358891290529761678112933391221571605235800650439733406323506076968938231298047190139125357628376184117512155042684075019960698497680117083992326415578054902726672019507666194151344118939821811287794819932004814747690464506447960007147197918988336847192829471187310384123425747755795409346976482570707081512416992089024454123455153631416092086103585082955287585263488496512131124732487893927552808185045624055727352801214105364140527877023923871276574950832268626323892327522570371797786830468723548402627389863810724548610805630273741775190989170004050798567597746670827513954427466535428525610247130668930099450167639421370442246465562728318337109065040560447583100017441296713135922987588437041924756470399936225142178025249801762510882453279876244582992913335112985917200457145592018093613826827622658354038229694653653927388116030519949114575976816749900606042422065084865035473113862993545247848300562885871131281110323013904820875852888829645343259559519759473212901000206812027665321874709412687806480163416456577728498907682930734462597818221386584355163214201516137415004299705370324635447352991685937684611439230292729481284463202133675631234995969516582093206625191460213366201673389029899577505516877624782226497229729700833084831725850104515652234219569298184037318047050744910516312110412334369075348115092419830331879444954596772312721932403222657529097662130251517649754762250813806418956242097091446249318986522062968529738581862499879376577825961150983479912678765757372619831638511868015008191882631141371647648631463886435954671373902454695660328165577348764500397314130449110723031207960666445974853638527277746872287644811079234130533506945743085434095620495848615057687425591515505293768607609224258844176567751073778622419526073952999308334281878800120260946195025126155540983078960046372391452194403702042202830445921565776308250582608800310188854145106952580399325965728930346828162584703922226888964978593623047505497620844309407131975600168330462852584592756842224184042429203370941324671158813274093605848176958893545852642213898142100352900433320079279721851067605569235324327629344469567986318825068564184056862572652698022775141775796014338669687069584608110510007521704612222458402791808836173852366347134050915678371965930211142334965429592472540177254671366926005922078662474191984988590306928918813442504295230370699522673045381540599382051210010071054414063189792671170664020535442005413229205002176306169731695825071589390772826192917981696438885952155356198425160905829524604762158817925331809457951665727952313570153047718468179509689271753592335300618032248213726730927310117621048371440635292136647074446438092174492675490673002960646533484082161314477950558355205909492307576114544320992678271136535923022758321903480513025680812515500409936213842143751253508937648878401662000287411471698558663820148440437396470070818502104376007000155214318870684909291697348789474634279893993079659581589936910522532788339937280074782704666211205102337893003753554635317016877339243632830206141907824908179035881102591925005009083688371054962455711365492887519172413871128681123873295457612213902113964068815654672263150447230654477717397808033588106731041600946810051971972095156013415225813159438422803632597208459097867780192814454061835110832279647951854935882630482928072596416718512454323688381857730923997777963057376735696006573686208773949017572297613330307804461028180413268898391451955724001905519314851440655485899854146917854867929350130289943783005698288590513183655163453190740516604900700569151370287561586667047274999442310626844550766392234208733507036943299442482898689117326213754246888277559366831964972578036749984957511253840410838684184817614000025351478521626644796950216160923880404531939279482963337253704447265594522268720147669861130403320361691232978233067228921426275676380149426159897221371359267523405128535682127402643870587696948624717750930968077259767782481542929935429235582638144758362496190727295531129343184549531778928713418462441781547723979839599550728455154687342174061325084794032734887202628599529809289282690178557867540618246689212000323710168138822382663037201790114363251522245363402399253399555376928280658061128035647042125744040865981928680683434001627649496659829180337147218997884866013420392721481794222131628828308947101498655168315548932246699722424843942421030765525680626940932402923950495629589467020561686146932834799647464203012959825057366070854522095109878284786979541264926428542226299158565952530817143293284931538995592682698761329405421908202845585658654733408035617285923825331383202190194983227122528693233500865621100078847866705525395308042193677219078973594740914494193067876603374421808375183915080760502810773783938343381864320446957873852333803025881045117476320738379935420637555822640258237960347145108831837150177285908225331593152270318762182357770913730060330417580952522288853543290101435926561016620788305571889483507006639148235735782689932590876490896327681990415780211750713821981796629122844334222726852650675235189912791579934900204161434000982794421477052451867202674204145212827603362101548268141893974747824078862461949785282867017321151965628668707876767362157052759329820163723589271948351628872593280404933687757639265084485271895927361082675713424894058116399090134144204312142789821018998552992892814522042734421448878653310498799765382888736107307174685537484278277997625327637540304602198196681931884864502011339648479777844479687817120534574979188547906337439720855817762372411173088814868238960123222098334356876193644641355268258135063028941014940739670435112047387198911114369506141157307091971244588895996611553030417917312267253815712608959080981113485394977474214531715227343941241786103949872395857131131381916321960183458629280806167191337190762765247496374324040380789067082914433993900995764372739783572365996041678273410550328338133227098401881082176821417710448529087095574948327648630500351843890670872344073751090673113340044627154832044271203870108320591888575797670792984827977620163138150910165631304081852731294821972941655346267341000891382953587546324202906910850605020765719679822689458829822548530436708733124764880583227270655439468639564185593777123189869117910945984919755708270510395395163952325899226686634945490361997473983836252430352599090937861453573210486302419710115430357943351047833736091421291423856118780322707669203998984087373520326370284623776113384299029370348447823701961954825087176778860376623477150563270101594701151803641521172094867342814616310575666292816488294424284376903074623141013216993337068771984965502634270841958803919126915207078961879108939043858029441821226638243904935460196314029736884158197553140145678154460906113571477706390277203211999984074641969586760741382989432028282859996955122394670628825232265729809121333438478967512759480477640711674442700892252116037345664195843358117805399133329897395676737834847491457629880876296211195024819903226731241158923955273401284208861742053587660446408638370716928734560923917518673965222270387026129587611585740980038572566658163362456147641133910775786086061169383846585245165702054077941102685617317151301415507360483059233767137183230838805285022522136230266227565227201756459348802575616208449281284486451983675698124364657725748411834101654273843611946853255301719015050365428298470987482894344656014940145780580913548342554300396856936752823046749308769484671978042409842989709997545858817030413005261010499324760116583052597670694669212579546015347830511102322321850991396212880973532613643812106967307461930465195230263641598001008398445602977497777646908206835640925606688427805473527398583070063297627155373389102490826540468521160411300537441796486599079016109392484605538303048729612353415174874217468871568065369463427762159507463503107450839756549151347706790241541930872766662986196846153506815480990259918700497946532861088729482154218673406272030321584433691799486172388136503212136801730801662897708095041188413431281177706183170439245072404981932402626531122384411867961513566758612596644657975972908906090861478616537278253217612269673145278855216028686822982504355225696112651183744354260751012828601473229400924193441718517655366750616915234991929889085059419428764147858125403216250993457414213333946947463435981222460426543340401155481718891661136983150969467566057543741392410651983607729076627848711583097481744211236712186325265553645738499857407707373228124629306351501848890268806834370381932883944383814964513417184904560755148915347635254566137925416993372861640650503758723096063165493142293955289311154548514464806874419915065999365316560597006852819888362083408591526730305013792097870349453929818428752628819048273785156181853228320611276955489078643298978750182068948941217196567335099924401322788166312803157795355000122336089132423001984771497758544171204304397409388516814945486986863525426010549318839796585154703802002070916782787141835791060280681701370516266335945234399235367906720830975425297088370544097615929044941074018627663942612297343025636090662756925738147476052373136294630545715114083715326120514665017006642983776577449932065366061527189122680925865271407212006355974689952762400827174086142595899577025254687426511039044058172461839054824815844134346376747102070071654597594556332444504468112691163251191044001370220046709936197424299495713906754464498958705897938211997942523825335310807334553002074630372210794625546432630630837137871414490012040796703061342228586391659388985013358005341215039895449592459293594832623708209064507568275035261780051104035202995263042548601581375724677905991355584737808203250269931432508496074011849332452566207173604267846677674210689313687226620493297685092196661232816742891481676506365172676911645649901399355689971066437898724487308117204514695799002953633730472443846766746846572237630560902381182036551067613997490162152657711723791831014999806581673725385930987184089174341852209035159750026873948520728493435947441231876640047998915162599761058570331263801034131650583802188616731619646004679438966554646190423466214907138062604264471237342802151992127493165156832234293920647830186714312965439917003407204067203480203537683181943222573047961046135217486024880713663649179197210632924812075039244415073454585299329283527320483734007189885407815194477871687055319257303989206326966886101789854123528040795458892622222331289473211030984824476228098354570994161819346921625805917019471717208522841383800662034251412274882926933569837035845386587765355379038608754683588904125041707119857730002972309263063886022192537460836391757867754482839094094853963068681641967643293404943159192784069522116113688332670836933074541397130491414341154305564540270292844142166749064948220149548087671080534239403811225002659961414321782823080170850364804705781294021121414766152965865404252193664923533089076492515965717793152419280195365123801522064709652019290005973486044085077483338238005016848934880873550054856353511743408943104386113475041140787202535738420586943225891701886408309786802422365568923821059362848173255365427031799930993244366249679014818757727386928469703644819399386445421839829681248134647480652103092988119809293715798387610476925321827548623415513515187013901195303099023215395226810445810093397750134162248837712416352527479751454929573286534968227715216213593018416556815128969955404354082933781982537968541088778366446271013306608394780158442127432363709291718429665454258032009306295951910479940270859038059362929754348717187654057178486592773798532169283813874141484582419363633990063934615565001184720036440406396665781056461586724705727402179498082049327623496546996046521358292196030188522932026220641594513184133053917905436340980422894607533177890484038651071625685929020554577112993593748476009379915856482083754869845495844468784548706521216864104328480394593353244739536580335650699533237455490470897107917791658490841063576335174868531754520640926993837098181176500262851799311053228646848979989538437804230042496772020661469084272104367425958725028275616084507045256215703625015658329467563741904664370258885753745149022167772363525974325657621497285811572844367858454549756035807912363721086986278170994376958119808551821052047394011080466142239744399289945322657527618855750196374122228597011760786154132674529425399763223242699722619263241236862193764356480781402985448444323792027159952603709349288301547137861450275345979721951655817881975851260631459628195211497105372806662130206879227646349722164509521141102011474122658438424029034294306579207686914170816441810092532184125212376990865528692115725396967272803950128332027971298044165590501546025396512338837159172567701105758476171885369358419692085897000133762733877898062047831123752259832450280869975958656348331686139372976573220689550876677638606978457270253977797931533311049143560260636797269836168410353562384299019500940630341604996803792975003555252192448500794363777993879776036853285690540586834134892622850217034742956656110171375700210498825939135810836203252972293687792097351642564196843539828700623475983964396639971115201416224737580244524875914338107303531503145005622746749676170303006776367486142013938425979622916821451418046585328794161213060410771365140489198411564361117111704805714201141907074733504906885856981713009301818510021072390056714288286206574518077441593893774723329843233881832164108196684240631517684675165258614247736661546268386537298533101430994533462292613735993925253467860168819446210078145202981687381341925035504777833555024627075685879028063346599499538964356746462552164017920784941541834157699800279535780852082102034794467325138490367233548330748327577098731307446157783003654179181602733347178310231566152753018112313081134753905361100459270792523040939888041928830614560735423159082121479997660217157929213578175915255306711242742085099352535226227211726606805409792288548618070554151034927416148238465160936167272726083961458285295639635183404989733935460824937716982147034970257253083937769340035675071369164596860737456452980536746836397384845138725843223091115370277013502486951195784299342358522669387492555810802681844720191579396439238400078479712237373342548904446317356192286668448342251599271575779622503250493867077544666333623209090835725937334081777888705915279655074503258414352646013501095492630374765801976455092916562606047392026666493292121484167291400897816235409832118850394597393468941389830001126684402735094122660875069547927499525460528739427729072380734478893432225157339955573426691819246064542531078309133162096865185598579899454256961270112787991730616972377368711799870076065330368166954428968157204449356090524767158134275089376391239597416034608434405918445451030884671195184313168188626603779872085972238703677230782893636388801865187485374842482135929207547416671762298312442789829698264223266583912395988010045560640661087128722889868052767866574429622469839819697915851311579356584662216432262001847273258586271576184052730097699042686774289220788893270940276048500742228102250760474991720154644999872846736512234389623933935552743199045436384483923695685980707641397085346007080827664865414207634644796633071104502247776800808106249814437061637748220629303538884475158171405601163818522303868039603313957642123232241438079958140380689151399550214181375200246321979699815730096756422071119578068578486519248563843952297610897843834140081334888781393447541488907952764315067685217977565704772806320096907367291110279354829872008094979424207420668719267626069774053133139647520983803288151501216875055530278385013955947142358505316065877067944817333086426542567331092104826861468055823397917858746967095113640517301837376829465941510645679016139358627043541663568229053357197802706268660465358133417713141546998954329365220002089972307523597921464007903355268281956789871280403575228631906544150205132413286809597704723728731036941411895660907444593354989239826908879724079412992959439978860616129427896429337920386946141903378800733499859876479296206062269620785349324493611018430598348277831399244266743763433895140645092371557591120273432115336889463367749526137166292371397266950144183700384038236173295580994564500107257636816308901237032242640594753143657522570812327986305840691681640214116841104547074887607272141216161226982389712217137026690385938023423960198856983820130210698351939929478078336146296917717346165311151496407577239676536536487738928540245650185753606175886763633898343905205818863897777924319586364680380350896911421885511465768546870993820719891124006707742661505153610331265258300965232563633355983764470252264064757741808289859504553477395223924698610873185779395038229347021750052044253604302476616417939404192163099140756271617822937300037865382178681811037893276659138072406564606134976049340052832879672032913617724134337346461632036975502410588513923407157547273412239593503391154202824026158541940440953507327650086982936299221185130850026058127690670509580625342849082890532582881296383023257613548920433798157616442863104133525667741616911034523185642476830672122874511550480133062174820018968603014481907295783683106960482519009935166259345387567375462835761915203495478465067259759354388978148984822379239606827107224376481281393488727298504236621298251968499947023710980705732864863386881196810705665006534449163792659190905444173953876851961631460384448619250086573955790307280392704885455410365373084929983246504614495321820710807296908472452225569782020153206471704137603462247401202523901933276066038418645627337045063046792820622006893535111870549199475648475676831313001409646700967062790117097186928172648397491654316900932207149692491340767213128629741245199722875540627480103025711687896344882948003526049796056188994734519371588301033984062934557196557343726512712112330598494403559843637497639916190170799037873799829919966576214123092572880614478082548966996020700646610446951816352768547114823919297506108181926258343242337856682320490901915770610194598808231972823239441876822036011149937679345124302572445720191626688824302079386161862489990744793064720320291910064292853042973283150467517072046864137873321419634370968527460394119409775912989107552596060617318356397408841716079339824738542731111662241721194135521111250366755719706302597616081988255711496614377375128598197962900496297299282723564999098168461618388102634109020616291161740632907977222229389518639946433724875621412994657864944398050911902005357758263439061365909525788187458788846291878020960323829455502837512022853908378935663982951412973543753634022393435962547589539432606841495950298559669634949943600793895890328148974636008714893736167186981436996638870892157429758449910698105366704357412432402895812192744096162612639757570393591419442557913680166436295305445367782911918895994764782174390209384252167440631895923714508726801033984606302709957116593873376334432071428100706013467934045810332961732553499627230560109697790180776034861467208634462120876570031986759764821706681097938654359143305140625769455909896707592699126600271138047435823374148888946061337400362004530842031784323918689409766771897139562337429126202887423747774152699321767875389807353588964094857570336142017421369024093811028332606111464553569507426640775739924591597391864179858452117737122335030605609169982738770714406508454348977928421579737410970968236292397602860460983219071483572689184499259520963580328389103140067680023872178798218979855653493006832110449749803726850432844753400951032514269132056755311483180568569332082426206491098421489469750310360725998254366524146206591032680387973336461219590347628123063768100166435327510412290043732385854071661943689043564355930644292050248466713294815094189200425176428476235222272560038292035022902356623411433627501548134780382986546644887688376308956837794359277389629673732513737062576122340793096544447472136062418730570938521312997221361937728840712782367740361028552308218640158801059961804027077891647447003661620628538154613338624312368904658944086115577777671859389745074544842150150743239633067202846549627442297954381371810351234625376307808673575210713520023252566227180040292440319214864100905120736853152000142064846313267714863747372898199153366941523720698028559244340692295285070231949955853134936120302028176809769170972077294321984954153935138242254395369377016343153031725244219824460890629471760755245247048379347390867359127346471991254946090379169474529917267461353711183583454030638982226081803029136478379959988147176510243216049659719627989120216564474301403143389659461573619761469666410323500443099894096138425098593672470357313794312511337260029113721642361745773377885268769333460144108786102785198376495563920772368189358582942047184053463713149709594779165841936170555552175846091497086695640714678171700108169365183903198764366065290856299410451112450809280558033376991881504249360150206149407495799786052284486641630755929707326573114994253255156415620076323827398099595191435270408115833851637627414836775121985656547747060951811230806544387781853543585377531471560258251415696588354262392611316558020370422324173581014485136981033555156619241945813974341917719197020116156922805908362941963875147645547848308535944605532690095045521853977697916213765113390870239244474855340611805022991627447361385433083770477335394641920295319836375129566650326467000295729593603546234004967245418900977802662025602445378832353013169691592877294801101731968650362002378520354422095733203312018757537831132476055550767333689949985318370150214506730135092285295918170284774883807807528675813587643274904209715524861858738161210954291650157162271872303076833542155185922323141400837067209610426959662945790391612892194163766683753229481920028718253883074635764694122379068065650873602772349918118999437729950834587880664866833457387349277291282843424043395455590829268133257597116925032711948646902714753706306046384909387912544431347793628718799759701927960573227911541312753912433249328053576171042252296749544183845459026304630008486119522519087102356098057694724313895182304825168276799362913611925749787450705942533141670669092729924428250375595631394213252727422389269970533566320899550599086345149490502848346937495117197358656420753522815332363287121590122120947432164581187645862002749904531145365026829475020823971758368443075991732517110528914836059799077515672108250336025401721613778767334171237316269154395483402242951211364426624892029127207554241997428284280175000955102540271693359792737276867091177534156264350799762901045065538227281466867275378183817334281070066024691861990815861832346920400677757070615805008054175586750199282610280858140713743857752811072597881863905891844611266426787398622618680269091167418724159147761429451984705918547790194643752442618045635476153849749937256390235563424336669034938270256582825688746257200805524983327828728682116565501302400881018199026201215130019682949870149751546515282346100883573940313943294207683727495022645890334407130171656970417684850006063290885623345253976803423224043504884605568637339020766913569976671985750202035684464171164900961644806660130163633894535277270926172705140467806150630940462202728288757972724515779502193003098146557913513163860013757078769325991314662497571628866449354840713989115911569211291308304510141939526630836004585636050216376982844276646587196457532150086317869386359727010864778135618192561900205402785381599075755418361846619476074503766546946780331439209046128205295178509869677550657477770339433212129105970211437095023668506091484730140136691174834817968605645577568851621364042263078566050434421143047757522967661617084020130296264517639780712867332757735074371382566217756501224173610981825507205819043909520892575639517093460820371570982825185145776545478840173898819719431118638884518994584179531843217904239188328707772372826319599607276922771471288459284345138596342935575275938659556519248363740198064486553191074500605099524136369884126941965839895501000260151411331033675288218283673677548218358493735001098080871516315916605897612412589496223063130456965090305699606402721681957990435730408400621667329878174078406067971729008728791374543416425801836440781195061248090359408640642159898597224058329463532877729886120790400488074949012567042327834409513178248020685365550962484965550764768721519862899034248740969872332393344257103425228137102219835702543673578797005081752057726729446906601308618889813552512775420769474378800751310106283283422742354605757937305308817350988753946208984921231740370062781429727981135764457586916423502830952048165511471447437891852683636601735371229700336092779562611362206612536887010326804242753894910415524108334045737166413873725160589799058520885364516886443476905981347040233712968758632182132390459868191411013282358182152347153227971068591915511909268190922407813076193201918628218525738134656282082863815125251408954365227421219309345504485290948423329082192098442016996206599048850654459433075262878833809246027516308135337455814050837053487366587062150131954376365730481937214518337281110713917750631182235349008721012696978707143776954000289563809699810392727209687479910846135500874506076746400165144853455020620813854319545947740367368936242374092867501585004235059063589466218061275830784545632165160740970841217717968169558678047783216333643309920029568186160834865727601609233127858646296700395785620465299939854563325458215661807141700284303516163555439821752391019295472172563615822012616230089693728248320286128783907005808889015710070940556687087175635283021752382047735499700506905802306148860686722077902339247071455975710962919170624088198888276119105272728686099151712450453810944536246562079062244170044622631937628961232587612185858261923666534863377204190485459463120067406728801414538226151479756192238735068288649167886836151126973513698540487668698299758380328060266404991861922370070123308665008101953059003102589084916204174486049981873884735232033646981473908106056528615319031736357907304234102156115821973110047452935364287070922492815867802915055922576747655443533041128410115710831518384722537054587367422861473151369912286174062090434170038043245900408085683706795419588633965584541771662146563573550429091567672468667651625990726737197462335956474279144995080812068571471602233723361093594101564694920919131387959069728937534942618520643829285248837030310281626488381108805099368314025140755469716659974460084618677549553151858010134153563886716558222162966629454999770574076425151519340145810806030928184983044992026009500466654095082902335702099313601535591542755662770258330987369242452100085442312489347828177294250758224213946452403258448938579577366211261050887486048275258526064040612147107530868063299697129886953328848507837069461391003387776922649169702040719474119475398143101798350938728225966894507814209928129840582825825953198717963477125565478135783617531688262553229975053807339307123823434934500366359029065161252641887630799703573001016226256710296264209286414120046436512490477008307642642971960192564492576239926367524679500883216817942519217369375776549234274982041554874211731902798793374636449496367039864853243640602028982686114274139510113889611792818406509765966551540794397279788712475418872346985640988074648235341818704368846775119400064158414757396339722399004176993522325870437179885879130012589126055041227035671881222879758049455414058792690175377231759587563674200153297717369487094737969389331740482837909834578025678104966091763358965916969720338716584861589509753774800087317324975301893391946977872733397418129950950643186951940336840262175425403526883236830595218731061413613262112614419751766775369992409210838762545630481660652636186449106500349696006142674053952180167594513586049970486860566218514183543780015624251383092499411839493972504656112241707515232636399065718785196820176958464913362485423812557041943632769197931209674267624831368193586679402211120792911563355615101503883103323633008869389902714059076034289566063546372879916810709829107605246281762751246256101905583304790116139955895432225246991736033009934259020277725289334575046661337586065628731854458832491886263433701081618197411869724150339095756371830450799313471274759267230773402931712366711674515005447560855114198840694638775767847578652565337259199931647731140527063377741647747034344630897049218578925541020314285290043198817888845101427642472887891015703409454941864459839861985992931560695419315494956315090347807135710395714756264750208811615999254977432004948731951327344373031199658775204080738274657029828408118042872469732653575130233160114399592858915423559005662617062692301727363725627378777903782347636712131235778401602174512550573110571585134967089574939920347579285990538289611079803659368881732976127545754567070751985054335208848574153214601273508277978021836349390836601302993091700939313472515326891839609311005064219851629032331102989225170379166646755136167577562509676483403745078351219960367031448815378655030754831615856787501689927591930872470864436685775764771863060456364900472128179244967262244020293718988277253456984440212391163552088852994139371900867593952112615101157219651773162611770643314550603489501017904360107424941359647333093210482777904389794792681290567096140339595067690193775329903100574105183311702742348115669974018681556959883477035247710102428755640773403489176059177773073937416742047089847777209503127106933193777840851947039724413189034033939107713551031897011608688923977115191984909765663863032725599362729140007086614255308584353716841274543976215555069860136633042415524242047412864908537882293403343356868065299589548457314773230689998566953083729162278336539410806076303490747401482326532877396987087473999483839834615463029396205433344908731101855792491487100388723067626450346505134855701507775370603753006355856580817655318290829509516352034687426303520821352334486142197957032334533320316357476974659369411684333214522698062032153043070628764378260083146487723368523955867464960083400413233899954016122438590981253426092225039537965065335147675055906627691429170320410183424946774152366397809562807224197205228115899438419340382536463006355837485278890683799386496924921376450608630788150792586889516874295112704041169937996250201197196200055024018526840719349828039439237308372147892674172755909476480500867604671045933646190130261450896876351899896875949936697449680250225541234919507581740868441208965085726742046692667485033370027947101367244284681034677777059153519951177871084226264410837493289950887045706465981807743677373725451476344440693084489472846325986674958300380812637512933759104933900136596019668699127502114882295531968314196696844046292523614434060674668109101311360101231400982709104042475411388090417822979378997881931539784710252164601283822661678450278334922639697898067690616035872583995409965046092464400034107166261143443382148717357521882982020600855036111496711215185943988650021970481082188858635347322405174423714391394254488368720213770239437860809143937547908770808760092856913635476301569038703862638159207904234682697443747276043937320025598641751406660654378821500455748090795071754313124200741116926618928179950047466189538460818870432328455193107892748580597180234386190166328873583021919335088060686528343414120941232262791854114812072218936559448739592831516013024621930504589911182768168394375498071355697240458044590179032875202691540174105964972554967966943894216659366634554277650966146153273794535800310295379825154535337886254503571712199878720484035085578831728151397931049758774443003163170979955687850117058499566357515222461060661780562321083176375827045774989597270475554633333773070537181745233195154523277917835856154024993032191822302405205727578601197813937211616883280278408551613074970692768415081560337524138152459824491198030871983346677984522609229370486589005522536634207151144910073270166089163767326383422402420882920341690658213413248286630507174243425101784218220073477428690520358284344477607916450941856412409271748776904020095448272328067556986386361999415594096135180738579215738685106503849275789031836524627759875149367429861687457699559098020901828581642886238444776070916887844827583564110699252356787532480594540195688353048570773760465429818364145403779216856925011938478122946309771607323827379427100440459670554663642139771975036022864024939838955683258356395982422769302285479391299389660405004192255343974405635888621890930554995983178400622104212333185768340312932866705514355069030780188334355222061131753818490661150307908127004949864427484356782113293778987607870552988162902125585234527289846759206591807075518195581579304067675856616367599773128342879580736982443748090745546262366176155191331179971013485255081900195573217819256890182654913120195259727538443221961930358431248090175202946153900281470600764797643200947097380948111329936859562322476631757902841183349807615790552065473952319057348967436973123730630928609680011972808330190287172334618061212704629639059151308602783448113016936705854554596575187467582758330634306252877505171758033726227070734827604079139907668032093742345287638795112013914777767241090528395910590515686561636036422426856451897569294248381159205481150544733407721449867916253950511977200453259515735969234174402480348540402258905416499011741774556231815412374892099872615600239409253241413285230932488119513295812352964760195272730146146625232207327091830625427488921748331735797944504146899341731004070591296339528471197139605948663211971797408141009531582990201931752903562150903102099657874431344303861136027529632454741217828658356103925137477273457444991304368002979096798833507865479727462746079497653471843444466201386983569356009298418666505568137290135008328057533084655920879705046725758175181070122256772394140458860621630329004577672603621075618207926623404047609532587461703463674776757924333019770967295867557704903444475238788275648255276186843284029211469810184595722526705920770025204681600141391454489017482108904075238071863306239947913109428978438219165884564727876463553936365791337660551411679604856151058177980319621036681622293930955139229124305576157103592195840452079491744042971142355956887719754477430885768280357402717642689401163885653069138417980655036847303749638867234208560216233775964740355220422245510902899038904421601930443340070984951492670466791634674864971871272140933593015025933855891921467739879518031922110868009424704622398244098102829166773590283359579413081594639005138916691100918475933756796346132105853480325252346927076045594170983737755023910279195151135252935802952300975184091925067721671472051534927541474751745683169757041420645049666454890590305455035850989794244693915181775230852122698402436960406454664603576936068563901939884010890890671732810832588969629311358998373644723199895173548104487853419255010960107146298044000652309988111950047329612062558616391538283492017727166572104392033698720877161709904023412332012732247463077861077414593975598494852920878848475143424476660254340126364112283931497700798811302760979883324507351350832416365818803311582300762460127683788579802596941330876550260367439734940706234805472255052872259874021197184715117199006790673208734382441341058704491470435725510602461344795476620598858792623022849228079337600753521699160421776110194785731285479453251567655896675607721343528052964987189486252579926861946363967520500213030935311762849922443044743381993741821420681595760988736196796325263817541699486687176200854584385873670041419428973356598243385396832367577884254257671879109021167011145493176079238604497328555888852610815541618748629870988362498044834634038746310763248332290148824908185042815269289422146205405810761152207172704395076273441520630540528606990857874784449820213273653340502405684212938646822304647450318499321596531688918852357772134935810067469606091599443911973058794671257288904005300169515378658838473043247903090776696836211016476389421506089591554576221775314937115603032418443616921679811321096419074493328302257373461828910660087954614204792623895953780656425671694580852473807443402093982423131459979713493899905140824403706298202225241107246110029799819120920860571166423893590912965522612657773292963332890463079068865357435189720546570599963348453439554177107605436933963654076613737587352083705658149821446808967572602957310445772556205788434700402300415953113122873442985030187213024319393742342136877376653321262202620405422156308877278149386210842835785260647214037752520256546558527409159426624079459934737272597135407413967887182451958750394667494585070527984477107916405492278172510433364670507361713324171929826289013851808947869236122809403185354102171030973848324314137668650091511259921113628333032622888563531107763001684180545946557529417128041288076186264153085530014021795819547685236647340315138075562155024484397061217428982283672869000253759298156138494468574849964801590426579527039969342545403811093122256872429936378962133291742952802155668653253332914905839507288019441450446095642135826101386561226842935487590002997275351393921132314911587152558247688594136697762040421844695972284098805807303316845914937179097613697619695099328508283155521679291504112652432648746469567114340113800544943506696013668473285042776031855980951503638142289402430552948514389202835933611410568345844574546485957353916574459843953657424660082047260472694421046535654534312913878280413003580773857375215687661155692325350339455578447658722198396060906129439822614734454338279378649062650589061652464612181428040579012680705036650349879337811488245839672383752135506563432985315972564655246270995301334961625324952982810072703852076980592981823698799750227051993415632780488712982326140848056276355812228493740341590986153483382870796564970808652167863318870433664252668838429818065114215738085588838853694546499518717585119919097112315434426100094300448391857497589219708216122118849764119310573183606792067879834729131781489270749599233890499292612556841709957741781643457339049953258736477085531573675596992426847395474765065768063648637292894300575088069709727877694649501206174318048542173474141914988368084199924030811756166977508063483646221810700954617190864550275050838493186255624598830882268521626412978679513541299857505914301750254290075681594877751909566317088557602098673287213140524546771405251676861766813738842444030500002125813100466649896255417026035442433518651996162664230697329959577368687111604679455527710180036467324956363162638780378743100062784003927118831927790054276042337824738608841599342595070774169569192691675904353899387145286245415396814919940019405567416144393546697393805810170790042679609884090488927847860813995726578217653675914171433759895696340931413117618809403473154778609671007903089465691111459138508263715981281662651475679220486506435782843691911871541280302880009214978937273269124829309801412744339652025905608612802573551121145811739835954719222385661649436861273145422830792095141028962891879412107331755708169035405426509688159153378349203837616282878693978602735701552027898223482807444471238634064782516285522084468615043875934423094526141363317236396586506093081394541608858979876664820949137241242800363319800076038806097832432655923422018487142741744229375813294063428055693487485234395825417810165818463808288639363547097938143145718893462297107543910795725740466832703477105008967065594964192864416059140679947968176659741082327816696821513160346909821747036493880975775180597419125108129790889188216740256134911632471410707668372064737241470443309134054076300296379066658207159897732818420315601590850822428408140820300065113694206687937769504713408776230411476538230453398413095401921611242273308134764596223540654006220541404338468961332748334933734202049601794741236723477829182849295799277241193361834948237629741217542222562437852135150135773173221895194839945631188781259757239649343793082850720956006382333215960363923418312943589897680996294795396202906485846272409253111099342916956821468073373116029549045909598436809339333278284242669178864431126305352675920461676232662767432419941918950275362619968505729821443231068966319898145935043128281238023144174109146576110628019284510713292366524452299438908305206627829793857466234711403750268046474865094296790351682429552568364898014823306942590323205668665184304882170042935206365501181895014962220026300342620869206716403592670132196663216913089764906294697165074527855915633020263989617543542948739391786688509035835045780029137983646677930031966610961390442520851291242436242777133224622588478543340675119150537826069385372066840647984868250579574012534399917266283062002653127862870265692412362075976677473451859323249564405233423524370296064558119301152882185304067692744036334556031981530640827781783934773651393528857368405227724078519011539549812583933236568575745798377913271892828229058012333381641220237245979193625491773460604335490527667119459428868933508154234530999815061929311098280501442746571757177870717535488514738266372937766703136537258617117051337893181019191887373797497469131823242249164790650379226875350554965517304152747366314083866452261173543064592051388161372189107728131257699280266793984315532005592386492730568911943571634908840044273044663018358202701668995977298851376930744655678116582319504406273953716650378945236794211978202352293171379192922468281608148931444960212276647428691740130161863719834029275093552784582332782247655780985704154331883066045496388823614930982995921070611911972581431030687477298484689719142558475469954413553794158222908538590120716960043185913612037059131035666449838161822872352722236078259741996988975202167002958971392861498738933912193164315633794942857505203104161850316593860049426144646823289658283297695617766560885007425224266551618685973534379271050770482914452432944449228068965626664576597861126213335856506373540449981719370078761026436491733405554894080561833157289204238652276279852593852136024717870131591810571619243420665438511732370129109705483213416450861726800911426717420070234220929876918790172791705225026770381429168065683958577161507882592391747070886578541805940793896065479943534090168394321903745589984732859321045154085883316513483429394257652456741382568563214521238751464590497822582182124697299816097240697280828675326991038600276684004450821739795436731949592181838932953442313258594444413749496762837428759585749382278329072803250540729981523635579877221205787749920675075296065376352984334706963083549452826160870135730217772863658544989842788738382133300446953208893478665284193735862014657543430355195001480380081915446922743106590763235318613108449362231078153474687324015851704197965206161878902450796928225529216290697897360730583261853270681840222209466024604466843071902294221183567243291595072635526293000383263778497745564593535152341198212746636866741764245283764758247765918551805111775787813343401681033439388599250152552774975021246894005127225561691428998310255158718219387506278674750805622947916367668851834797904964951450982705338092327840296073614862627357800309001202536698413566868272740502023460305771094482159779424657321573434181965172810983036619453429275296705158914913931275229025724802036942186372054160492949988625368733724814515998285226457544091507886632665882407601087973564915637621682174975499123435372283759208099326269169236921150618124626792767863915233676680996025371058778413861297550792132666484331595473816021623471689672132107171038286180997300448256054801843383008413971876744955973088126699267552977223582951960042784452340440028728472097227878584129145507723878375321299502282029945694582809332962520574745348441478982830502638433348618155751056158847976535635601334029322111548994254322193640935010876675786726516780579166383508149913817931853257917376854239140650983080313735603179282653353785278583344046493705999943698923330079871311250224398059979759903409292190446202892065401522234397376587127704550936432969699187695993215346396443349317940238312406470422206208013924069048213464748085559283361267787273859276629272995657125122665004326078092215609594481058724908875467963056471236592070299748911621669308916674370281639495086772984560287751081333843541290026306884486980493671963190031394126653907912887186891604541919679908585818378713766829173598935979268218688475653201894603358584665603384716013211539158697187231889395840281677366691145253449158517394381215920420299331957702736144773755443342631648022763666184719598364489175036284531634160749086718152007218705942168110902081152304777811929536239490221317783872326273967893713927766193886635459984007295605240821418471199116818076986948752567107775476817436887154023514669149153284549875938489805562621640828211628602266529140926284930874972715427107264878956705054428973738858057844731990156926991228786374000496756542204639871477611693190938897949591170068443474627252109594027111012375335541591976467876721058583824401936975534170750060674347135363255010066241672690969182655069209202326577180384574804087307131309844906681332752266526493502389507736548893108591981714887588246209976496408968868656408863904230652309562460082115847027478185341094360727149244149645047046351581218093906536390034227231905319628226128794405295322096384322321730618747838294547186043047455985610843780204557847017279761401465062060857373035559260593591392170314411104311561456696792035132491583806892157971348663567781306768599599553315828261464659771465328091246581343450372510075401609319239894930679897531756355009630957687714213026579327874133180378013959598037147712142762030256606443467308822508561048764920220280354769838287391227312121539066369755325663784971652093935722998549319961355128045951709914869827951425343816667843489989568867591668248417275580180993244108807427691442784491847171993249915478532140256075223179878791112215093032945632147716949823924359783012216264652977066966017065939106702124074075826569526313772223357686900013447978002137039353632999078384722740283157473311741995943247190037459270514124747461405479084595818630620223619439442786688669964612927589270859000038343010225963853236011241875132108671792066284498964159586197859191458767899423049346385328517411954295381574534010500622252906923277551097606147469016781185931431056421858447261559696742354845755902679771826045785431428158353017082799848717801916156178260782656687790495490833724508640529006392651161335785866379964594210273720599620917286558537493751523537850719202976022194440300401913121376179640841614220929547125890629707972339102518510339996803501315441499091250598178877218690812714724005440012103691333154058633489791223605013930166263793707395450399638496287012167037833416402104526853899759957602600596547859263143132574291390613969813367570571219289113121227273960585383466006345269076549317810738244948722054984498038607919902532742790648495365282718664305899181038048491628751006007192412688012437422714764316422862088562448454995539144225779803235559854897137548652294092494493214551520583877170877300707593805744323552909296648564475856114083713624440317691584853923341546599020603516625088369352796129809798392891223405319093529492075263484624488222529287571434338601819949386864739214637129970125345943052849909040624994623261075490164785802222945886706425380169725448461733171408821841771427183346888321737584295783106657818855842759494257159585817419678060137460121342047915193100572032466751904907296530451766584856306604530289552019387625550877769997116593317648853959925184804345688912926060517675613649285706119732804774783272970450015418600918450902888105321084638062550144145613715835784409229944808152210722173210982479105919017269635295263375786035361036719681954212166987801667532298756395730563913194906877792408431044173179639866514303693147665831257835325160046856450808874791896866222443897753253358332659487575427418149014048721384314876450630173741417865936440489476973906158829317222589244040013079467009584401971000416181679348005077762235315078713236008232780409898043964862948823032742888291770355883456315462398460438643849070800052017175526743592823033861312166264190432712339061629442766921524003620596251677024825347826850455056239750538470100638159153409012836016030386054635181991910114712097821714368030540273673806203064896493762683383086109474205331249512618880717431559918280828174995882668159125398942534785739135428936021833482333482189091575706406311197150191132438470692761764092707767962466639523979104402520143668455142047106620276947156066034422212724330447997452845514426917824656489624301914776509328598214942251877799585685651039607189456783448119132288686728922386364996627584683782511958794289883596607072144582291901299111438473914023404515265817102527045226380599338962760102536901497328844181780099498684235638075008113824251357568946417575699124056488994552072282482255784786378979819415124255129125869589336792251506846812863593669643207176554494125185409492892974088718431825688173599286128214896470678594439663414485362569845879576270887314169763866766577581324176174256089181098486403993869747245639933689237550544607844804800002314549006032434484494171842636656727452400216023977913936037936305900375398671308614314146008929981137382055840954741756276465334239264750330223198855007673367362491177296256986692772370465043475234334841606469635108874592754122938137987883837517021190872756644660266098068260341025850706896899682393298533538644575361342465504765946551498746061479898986077534640080112924698759837508968897122065313412360560704426379580384622526917669846647044013829661352197104512579917065790382281712924569053413981161407453578715105297696409714450320371183269290513973317911251752783768506886604948681409648970737248594605186765071568586436013544110342353986555250979142458294883359261867952031593223436164321972777782903177598645570757905881695326324792484939501567788790807201613000456633571146310741262033032227814055179626005049623265090792948051352338008327238875509378839428192392660257936244931753354457821127001267540077198260001824671131604163221048814109602169306890202109421599464623577183425487544542535495885941960774297971179488209807447515076393087901600894102505973490778804018682260666897580359397046255834697348690879758823422282368830757612883981214090510889461204049663872555260132598003463888885479743808459178881490760278850103065468725923555131323762028175797704843141827055765583146306200142515313107582782452923575797068924837412000933882968060830746609588762040138499137648091236396433172904606474308168114700899955682401241727246147166617660027387213098378839267284064642441735387877174622292019447669555615762497845412962270812435117170048755012783342939711425727798731313995777001600562670573452260895923481942120843620374782617677277864482775239863046867164115336503448644333761230216100812024123410793263145100177207404218715358056181600821922140199816442312393917690527580164327269385107182152436591042363250937729011838080480976231865978432672021086132762550458577300856921424676240274211734082979955209838745807068130832188603874818635539485475386207799683637719718008108310335290997672864741427373412499088229577145160800845794643952299856606178744706039345366893415597046050763877011154624211738044925663533440237826527623332189729846887899272738218827657592175515343974877862395482895741992505795141571222136685655568572453012052632023144263628490898498682933736455762338243889523605875920603176360820214358766626961920033776056523573876825421073944245175347080777342299372163900686762875131740490240497099227414740839013210456776938466365303141746851479025462583078433731092379379786405577158974832069102561784060089303600513546161356236229248701258911393980013715279239922552167361456356636930928813412576995977596788018349080880029063178222725577780280457311941592027333938705062565311781312653778810852014406585573409175589490802732939602374308531163739532218710732062796704835526015281959387004942241691364737385747447385941514490865974644188330627189434650769842922700660206287296357860652289178052135515371485870667319678626095891069869296273272829261295378454208294058096146367293069096488983699154766338170247904618094513740178997993669919805052778757000374087931281870876924485581911048984092180633339096756052382734963254670273460404475981340721659130066843200383775324062026954374761974498716024019104751021983637918766622964049866988369983725066351100301679418767213924553870555357509623316518403500892716471586554314053983643484007733088262473063429547231122976486479122856037469550128556571764368048682026377220101868266276874082997700451127289089522587131521514591346538218977439787605485892947164930945537859030480580185493680974493186495716318863594463848087796766899314553384049167516240319612841057438017483144310609998672961287060271943482584047967477082028742459407156485594669902127445926279721455980344592641038260443793394369122282538860963202165206936493630096481057481191303965026762307648151626924646354997011616186001285288007497461098689376254875016700741022454588400548039362133249456013774404649109863970035072153922416618322566500725879039348164061396760849901610271689777095412404195729666201185489448610114812925269728389286677061500911264856625012214930163273750452233403648174025419560266047943650583486026267308770632030558528005318513163155813760661111781503692562373066984597023537430425557887422671425358513744078211624823848355901565447314577081841306166011123477173526492132958327170931656781464611120308373897468560718789479733688017898412531538031540013506717031113759541780668654416774776820402020325528733543400884846929782835966426390897097153118333808908163074262503697764723027936733550181015834241364610694174251956365587847897233288022815933574480985119972363440221733723625687683993024487320797429512333139424144545680255603834229011743980515304018511119332508471250045760032218489346952128183751298891581335699721742932141368102059898144625562786349823828329629520509828804831879600594743483631550455720269472590955261026713978090844799330887965532368293336381485579266365956795040712032816279607509235894183288289136028445239682841298662308638536269338224946486994435543495787246676147917221231907367803758175303021076979773344810273467700673214664521508418880587376727459591523617728795662085043863715884643596078993641273379034169059044794005734944534378573442739297753453932686421210056895843191947501668891883452571663724043249364160772218677095796771786430247503240709475438822104527741343900799348295554406704149650882608132479132155777110837401523766718672393898701633028301971091680220769315782331660176093969286422915225595519168458621047131471809201286579195227042435134742233441788999312456000961985821667890909525253118390413938421030757013971423571760648271422730789207377531585064997898243337278363726549778721404433654589288778064282061080260290160702036423568736772062370856929532210371929671338641305760584772153651859489018956233318244355438982989277649512331401787277515411842844112188906561375054915196089470095855646622035843886360271762470106453494186413482529142786318283796414920632566870127328263658081428837898573967075407110871408108388372696774904916857957895347424556082346170584380553619164860817248120005300886329117934614676883284208751079928641125394623763247041098224540562634615264162578608194713399733472714823087904466371204297209963504848920547249486299947588609171174918425391169114034891016930506799883784338382587954176949542695734689426699655777318328687665203298829012236037801957656724291163508992483195887886108890006750433213409584233815173044066943572797954254974438207320197057157142834100693278663542603295568371536572137577632740121403266721948929106233299988643648182636691700835356088908652848369542454821278952719633365056804006663370604164608513298619661685865574304755164797712241705300408685129510329833507647127815186998582912575519855075721640159422079544777285165301239586471424428755650300784634728793910467285255659452340297576486249530447387200024840127354115932276794867084024119329034054140530169086456583420099511215341791708695755787196002010163003149735287925982649014722639553899388073079860572427159957393641660736311276991573898040401798597304149168484166402801163031856483974155709937921298105485002363007589841196697285989999250792198140643173978584574351861967895420351308282648057733758107120806296840880369923540101925209949671201151790647324538755951850096804905952048232506229344448341994815816302209603768510981574874732335196127970496203975955622894620669299093668307926977889637450381571191109300690221543041345574248271649522997646582775462995440221941855236473900146793494536550961473814541896677602540105549828095152613899318930980627074144529058698046859099560854976660912004924104131896338039382372310780928478682351459675688947564309022891867383508543918895392914179482692361631501095079321256553937770253490347078194444831597023708914626037135330151083776555735229822049402882406615229495789115899921846868323373832038982941370520682672774028292517138153633584795031482777412712027560717703112680328472574453270402273001525779208097639988344927924838780734507931652657047552308786125806581927586467472039981632278786642723425972587321425472428732317425001226901602814939016928535942596988217101963913682341225866408351848939987719446364454656662704336660326932749585541507063895233448302040633359895171042597800220360756873803659603670687514405748051588680220980646530264765267227633577616196283470218680408517451894724028056626316741149317943047111796387046416734222586179316174414404084597809140812523114941457497169942623693791493043273268292112521468987825357429113778047414264310364247635996476167599606866468746658136263145541205989736828346011154026378256418588554795657619668906043604626403205122250616717575498476391103182900687555987298432834711029171004019442027359881161886818329239521786234943407113482455874249031097022297414608271282662978767574724883605573550840728663629903677496106462418273817264699847315601757112838568249654594899170634471349058699230483231630418239275094771843044318921395608435447597021235178369854368574663126267198194837851924455445226285825669903445668889715755029436353589542565429694355561681063930718965800871906264142716734107179390907096817873457655090192690696113796076891864338009235477128952395511371544889871562228649568299022116234121102822013123113079243208543633650568413319124924359258252482565931894445688234407338581569982417235503656029412289845085545083165563146780556149395019833433793095101874120955398476212334838488970603345737053984004421044302459965647375995970272610375752632421453274204919891371428396215438276097444910025243968150533850221248686927814780535064122347535680417536014368598619799992473195041461183199888262858331173711447974181562794175160914512174337803867672341119075777152053036782784622401268461466425339925391001420220451349430767546388611790206070901155000627347368084205112379820461288281194757164575855035862388040959201766608146248776190519221827352965938015198039997644217158964116685948618420654801393332281849809822249083561361438763437916745411702358634568811316817311335220134663995388831551734668638940626024559862160081590611424103062941781966200465113624112445857776623483474079487783511656936472586277279402107415352892667604125711138442239661646603808093083690698062691535116898864892175786656074688388902732489614797399496082942316042727875462974320085595649555624739520717283408378477818759828476617827093283691944868120869799899078596830376918138968578378424120489001878666172175450649456449446695198877356264965138323077367884134229149208851409475975332062854621512040159014192361059526765924289617752601162485089994332552089119786446669659680175672597555490481780766976914080767022156269462350362667290047858374440050351029837633152638882887609444432497976034074425462378494630122515344784445426765307226210672415169568254299482952852671736466109877153805182477673871048855633301174474796759720193451750090278150446980670891214816045243021249114962840410354830830118510726340287700808134918046702425165334530305929767205759394417293457701804767860276357260316846093194410450512638927107594950885121180347154372798616922629022745488147252552965163771969026303637085861666916597934353390124539120670549548407732600966562746919141514698836140998891071394576128619127856656430224323841495775496652292724623410164249347954186514178925072506812704922299428176103112964758456786270149054883822448914804821547798301235855347140906499140770882717605084921900482639115714348870677693131940482259078997825884736212601190529579610448194610877809776927498790773238960283860671133957345189730888782020755607402847392195664477271444864450362007727799546469582755305325099513383907237261504001874481166013742690914091960010605523091287612273687532494551599023049334538476815159419424233234583970062337950842472367481109380992235215323886006495257139568684368185915637003607212860520961978889702314273144307674464802215431135390594514198396056606661381801127952383069942877731657156093872085912988663241003867849590016548107868648746406940871440461043106054162964376697311839717787225062657076973321093032443810743824057608074455935679619425643838089069008711324223764015449016119199952665158165492193226133512347962248378750338770581582850418744069177783219198294728083559324205528528784473834462197629467157330472302022348371982369161407432994426538451540732194802963143811040038459546717197200302341294129468114948229803842295041811052497373016724462568353042717436231591890725371443791730260962793665317527261606810061291639196830699352968575956305587781731545663540257002981779719817619198492274812818982128860057551534412801822546731546144603997774660122208092953720543941740027730549256554744757345900275529279261159853950727356644183749544777570444851034602458623664915952048136995453044731522205212005495491044048649115448098519650318575839169138332072337847677661464848941783760996180311611264280546707368468212517740927080944727761956626739140140045016687502128267280150311644080504883071399123971497196138848830942891302333970086426678971673845460406148742514460269138036655705027780595172591223867052717258106280423234347498639353066730893286245353495971734949283412438966181082022972473567585800839424704258660000233931323286520248645670955740591788286203219170284761011827782897120323594133105276554424292212805797725644180344900273598151897601173042544343735973525891754739957671055196579665693599200203178350491505103656024536222026348680270844647635287044577314999464470822567993129417135362365334446259984268121294638157486432526721695859594313228082790417454709102283909244797282567414777399037127307797822350091088108730254386100730267865850786879630134988473891049711799816937992869223581680521595422482142503473111605339378042242303640544441756854827738937813709057766583795058638894645754084868773312537441516763595981284106957850944463715256478206678799639957484421069360802923267295760523810772385535220222682554008218179226537590224943124921308404606967982440714032325904111978205531710541818932768688482223559142714894358690981560897827454217927308587613113904352095562930952088517000330475306163784902572642788916257334151526246386891644015937981514054223843595194320439756120807760216751828294685209146752988886344012165368440126761503190729955520405737929968179752486288994491250667260497702542676452546273528177947043191902145825201780215120300928432902394085013143829300025839363559300284695054275795858409794642204122228663307797448944963655930454712613347649977476397270375162662368995672628799729924196841658548718272199206911671535605394075769351802151269487783827346871215667429797824521834644183565280626161636676114740080371814978210402265840728411902089246464446116074964447280114937978448282911810771684963497230105933401924983919813609276153096350333005318154721080888082671594901081839697652853508587305547221528663930224180880580563613895038721556367105684912332104573645744756719283843150756588334961900416854180623810837163011257119693645257529471506558385079777801123602316649912248081808569512939762438520062972310332144795765759282253923230103840994993341163749273549107070161717236647513846671924004171991036733989670962503291615540116731645215900778328028029953551986384691039972993573797527477889991897561150361485782569153989114474665553115057841804322111531320373786112258307608393977215941465203749049592213871009203152724706415247539930326720729399423266021291338358778589644233613837991645416265018069312573351722507276093139978361130855667182681627586748259255189257725793405887880191787179074056274969371466196292661097017350433299085130481348359870161126459057414710667265305709824866524816552002034577578063716688565347416444415722766837053852257329539258016828985011641293300574392623473561945018206482501308739938272157174079148196402279919903290946032411497709413678517213965229097756979510623029485370328540358969739275515934391270762277054101549211547004538315370542650388220875662479416786399279919322846414055549410763433477620127266536434750577181355891077011792865153450273667915160817188939255084090252777491879930652841035214723235662497094388534341376612253838142468874185565310355160569281000121706616172602275126299942559401538204735091433253982833187253306128773729878896900962214578299431842681949970843264885682996536195449554062419764878310540024607117348088220652587807615857217998553644879101709492338808113431811723593986104177156621923169496388950841705323044315433190573873853429550896435059541491446425735305487731714445808365542034770553124666060202023193313125607594540312930218727430486218438389396347111147583247316343420145733797947068606755260525861963744617955117878837287844403194270883185651377880350627695590107679869420347906374761274877407592551584780739995786083256060358800312385420254337804202105319725408684086339105318110018617337368222392649581999581884732381735554042033299959967201551944945781711969527436102030332625240880029089697064981122241926585602680212088357288208047601646784066798833822676995887796504868858293916940173146413979206830562946011829564501275386600126726076110188581643081553295369934107723756478328839668485598160017328484844501922996865999279962343011690396727984823268608431540089378720615537086527667467361648710143560049739887237303907897084471808005094842380366333990265221336116582960189993348421433264677576931128072267176864245994135558056846989937111092340738284722666673745697567061347580626381003209229086609065682859327243288336290742636297918464840989872604723837725626157055368072603515750665963057120356267580802534298405425967900965998171065739320497079138923844145100120522767667575420817866852150860313223397271541817418124460861405447588753616507713104806778242409618077786130873767725601144301518574436394497040714018339145986498116439328288890143011495231608766790004888637712831226920672475876875963952659827114144522039765245688906984484563512420371273986711194329942910796870533634178141956088806390629659977661963804209292184596091351262688035459806730379818575846562926745613650550624128486611650821349425974264206166387191404789369048932706446587988903971833475897672626763617057468698031588076636700938464899967309866821132608380760147881379680087199800146022977911887630998660779831323940664552276876485470805004588980107073684221535781041592130958339478153057735834799064527463660830888595076947091922004525243013055081453055047490583721225383534953146225183821076010434427111888022684228109814956588963917865553986951665582194115931820368125479494789397803397637870550798633135457144967073618575751099624593484692011627951633570252306043069915002690146114832392037099898313245609804994864604949121908935050460284695220488448444780347614738138690792912687257952960056939701189678055558903247816833564163126784591023454067299021552109491427309331221481065194601408536161563318699546660782408933097396910111998070177992462585796316676866058996408179552880440015707517740485889859942969412631100766731205688721119086950851123336323861316861513576192633759579896073420363426459370443923312627917175543770539761455122592991605091941423124267103825569057479542339142093025178739883286201626599439820281410484008849638572567844785767548451613471217460563973340818874149348686077791748383676922712155334206992645188905058792690958809978666893992919390944181359979887236151482804072258639309045059630225478673631007939812940384220826198955739075059954596598852117699542128684665362590065233511183470690985701406221062271026101088322956224931022846266469559869980708469269722357356668961376594001830021726478311256947298436864068780391455966763908549017185178262458791585346535565777732216082461848717777307913830742542301760206628799124292547299702671249191673456621638112198140919037294913849908444621841704559668945242830603973870106302032580119789939225515603281039908120962547418202193179938183000365003816714368686712276280064615911358152924896936278841170511889985383782169406703477967724532841016512148225815314195887998036253418189161507331867713372556478807187929703080467966616844107803585739173263050246250394939823838854751483490718823399436693447393955336013480999655223077986143756158290428169031591392091383238550895635623846186719800991682582514084006194830452176603083627228753621068255729570053581839118305147869322204338969222758705371991371250434036399079189933023564995841437496932911475357770496637171597627536376277264977523369804054612411655173766295663947698563719778212017925876711738823480941413791410938381736946836771875159166556380019905340271393710420108768901832584209644595064966366674547112324787608458360259604654335497713748464025638763976417422512608536797707490960465605381316410900763564285780992429940744066202090171395259769755150654867338929576169899972219874536848085111024527513398057861334110559485118205337304838115719996418316874022209471011399147787465312855722366936965443483862505677935642854268070316412530115120388819758523879149717587102288324226549595599665383587311413590054645565132551854760501486568085693686103270932330655196263643625465210602538899479407981553682179750474123438481444822447080496605639750165396397245228082833328541248482448042225446628317364587718913981998563809143810065399835132615596220452861703935362681591535564374160609899031076159067220762628095314082043680909680317273979030775143412789435361381490922575912480154446617815434750761702613682456021989692922936906437858597856974431156130094874187274328076248703500910446138505902940645765952217398655122292156709851948234864583546824778344231251572043802343906685817964008644395493239140179125447737538494596552972094490880925868041194114055884107042633081597471207987263738499466845071172058383917011514758748891687027676549616190251948314547744134879570223759735078589918658899648202177522828223086417531171269454334088590482847361693545207339296197222951308832990753168876124318326318920544297044331542069893979080169416477108846405340223088790340076679492249723726222314673909859804315399356395219080183847720105723112501154215540691988818625425785141320206769137059321741474509834356047232334219589571935525326217151815375728182084736555637749586691113368449512706843498502426951916958090399060368324278315144831316558705244045441950592792017190944762568221815942958286093245116389009443006985021773326163769619109095480928489655295709349321514673506596133773319203873094190904582659017625780393979096660320243537117789661293776544502397681806904147273739305078387145895479329876300228152720746904838884878585686583428360039360971312331630017919138554677220889170936800005198755432555852431148714026624296253866304438009547415760781245918206420464939555375702135134271105741368549249581196767413963819104163027608995472096464711863868401702483621324737004633896484263576209772551101596517944778692574428036515075321327106083469130535939731952381086602133686030867028907301904269459142727879476278816363447886347473984359751700832531994389503496934039370869858188590801045254738469777224266463602094753949093110539366957880301870628308352457528682178147897421595078218480522112810630697536130880809237263906721027297717399199869603919502083799017989166088457040613207897964991308917348023051283882317592125325332381539226038155389134790179094655674987489788056907700468601901698661570416153258022263647080222167831153016625839457117336415329656389984641838723177861276832751996381817289103483371987193346337478569448636185303932751468161961301947401415668275814846650793777278404753813347619339530477087576868151414756637255189920306645251160464860848360483768433034916490000900799796353514083375471895546714581552174083620182521925561960891398894026286987854788072850508783443911105808570236741120177745106257511303505680543739301618842619602578041387933591751040455612222974836010350902308555574198753065972772497846331790228442529970059457436291469562837002270270076973298823291035197975989699033739800140596271124627788698313092507046299806246124955719735191021040591688937518542226441246872797556665077200667468970167353410449078117142108302895819780779882420974122684265125099513506494711298613027275512500180416863866609889640943310002154824474867293893426251947273988899642237373641844760310592348463081248553516671926876695977623051848202338625780531536873950673204289003572177901200132610206681089120209392621537493351374244763705701320466590541583710825679165029186675595409604461755698964142687400820105805115710195789660068916709820939234448060863772731838037083951135594275248205595871899756261973157321205768514399028196526018201806778993314731584510492682094459818809665477343191174218884763783217371667548349490912483986992533787938848016351080106527730211215330505826002108967643464555061887969035334184864416863332481665255481948203338599535397840760423909953181834545008018944897560900291580293084099362338198066466161251565170830741033223472442129738344646465329711828829671166245492662706905702189169324417839473554377094087635677684735463247512471771048957265386173064366293252183483267014856314132914219264171592838116339485669662707957421811987273152775862546599637513497177815715903765003155085869697083718378896164503386354915113295493805001259359559988320848938782619377915915456756537790927801213128561402918419401144369926765054742604771571432611731594832088289063864109632919849937391485736571213846551137972798052680695354595871916777298087807215550483376897845846910987725679703540989714971140713653380222909525482298214341313773669146520615131170402868481852536940735057494106865624490776776129499390782512192205654653119834284374912997533249922683660850932750657006584142097968345162385314451196860595232773489704630024039680904012367727463571490461970098543143880265231843003279877169455386284633421016030957978806608163944141007774023006741042949084980887427654851332963103943448699056322614991134817388377030706218222886124569221564055885514799767107037379760937176338829984482865984618112808224821535454687842609802600430450813126675865070974320618615206606369788536108048627975138898122492925297054267453902328284797102161283257692408504411721781244435908700999967074534832576675345984124746640575347786085366559071684896367385612606195625770843965169628394212047937415170302400120141752673045749312467904478384063036047538566940630559403726114863744857143607535796961282695243064405645069695691512160022732230977100061796185032427353764563506368362382383886670917288035578023332552281189994652743500186150163113617735297209221538210550135493332587205456185666311675488145387337870562651980384262891494665539191425666051009283464324388801702202128029452892460243226377224294346828675166506229532234795920345607429418569419613836383592615188470892635594497169604968926161814386555149488886866108654466638463085842014836350994726082571018417565446622540465329769800470732458723532005681738006734834055754631141296514970002034939744487926197379609590397666980549068351802644509763419139508999846965748633228837617092649002893844742701030814940827693783044827145880493111278502741403453785926003326363791382877061957067192158795305579613985305772291214195028081718089185964535081097897902971433490731262262732631945188073731293338486698464899348552646812812153338892224618147125204753356429324283869750322898275559414966858232992767970322891807271507627311588830329303493837146535394517935309495939164501062529564167674758652519444669867935310751725557379993230253599429035735512868106902774115643920683200657892356140458739985472428873546398780335351703584690572729800402310557442676428000859045784744121391060819696739407828078119802168881981694166068134981166561232218857314544452368095854588754318727238081754489251958654996979355653343700299925241895324769250971179586189671950790205183167415785617457860647799026214177986752448889075803522996549013264926552733306873132827981216637816238085975473076606288120149246951643197814922545665800012672105643983384695377921066479239155345440155104578980879291067578150928714934752945312252963045667542412998531678078238921161604350211686339298352286061786409738500937449313675042913772544662522066527054732175720684242074698569556363278103009800367891699911119248830157879806673723700224103700930075646147707409241281787439160732035822995585857073281681047376497397227488844614551628831022110067520144139293397045891832272439505161711136096761954021461921696049017392202088769316102581005366080145535996151242424567807036365181981833351590941948305503666049910243933204877857490769165822397969922207437551690913554298494818308292154834390981928545884663504191640914787124185242138674356880394122839466137513183827465198167189326645241904644972891852649153137085119603250708077777588277463156099758326035596725371933999383487987741680890229268060670945787918391270141708896558020438531210452149023267169110472458764526326618419304612934043981950203336015260883698524112275270374967407390644939272954541740709820843333136558531443353453801547101500565429619474796792304040026200912408874731846178812139974581880232610967204636595927188358989526351457084029193758724225357515343021011310898425097888703967840693316073242552337831101611185532665085193729942069863696545954370149555115206498054652253382817233901767087701455195183277085720998949209209194940938522761590237139582263301106916781699108259063964157858776755720776906058792073597826348165977012697638491667393658983259140609688345031492317556922022067332594044286716168719035607512192242766762206899375223494438488270011455815239174348023864974940152005525613468562170227097128584149139931234278955882177028506500153400825378479170444224059448918767130245813396912064152979825691400843705485371430050784741698513114936622189162721995666684948331680332726405678531709033203996547468064816863191426464661751175077084240178826458650058487138980586603499333157808813129876082889491270177400549948680771866835196875813427866569187259827824458173420466979720998721556059612744662683823632858941749359490953008231351727672063544833243577607078270787669173677358088903967516622453724999539970846830604712977923595799708233148954561454160969295833643028410410939044814210669102891103859281747344660698474470854698100958694100465063217643854635280760916090799127440707116644057809512975674151755911244467089594423148876415410558994163096167605106461641085062350531378016744099169157906904422265713594912376205334450650648148175136927383750391130582415618751399181485786771948046819420484971334246714993757966107133015972941679845867424485932591950603825656490356005299862329538975886080619459381941162119461634063158831614583507874398389849142662324698244131726942918649164678169565375242882156789311891331654681872083200820538263490487867146411893325204529955714802465502809130144112452409049659140639154805336733086096050084450127229259120196807695016586020335546420631214996526361280979426639339941808893582897543651758114616377904316461774175444391381871192899757692976915668473538553578922523446556303142607833894997996965967771472434467550795999168528145595070105179835710288033434525125796875935007053029356214629261876148368625032801610342885827026596506798459392851954434506053367619511777874376725300605983909413483512446535683477379066155871493487040443934711992431662148045674643065650752108274918399196590635390170891345099486310023641215767357094564480451477742733065034423897951489251474139291082553043547391046791149543387854773409846541165743841392511533317026379593080920701794228014396857963517375297404545979014346294571449158413823232984233618763244038260799288917432473844865648662236807126022309576704228397935809303719052092374340354853695264559420358182833561282105767132405393760825800187408184670425970778228387975135510623810406228118682514061414202431891482587561445593988080837649226833011735024785154814108005453230581314716364512370877617983179048017789228355428251172761974672643528061918325912460554397342241709420208322998948717886368616311882833820597185123027301890428724212042695703317994824472532258824604769351153738824644247864027492016071982462781576685784841727410077903443662249676108614550326867993324228557306497540078433606866833889548837855233046486687896767472840071207087696328787072012219947833481064516582720918681371071253531852373486383528470496530055610797251273652408662391665946109132044987802034700375043452136508415518126509368524890383586800501615107484966176485903888101138559055643619359555987313687626683585360100632868882029846470649861265325624707286381289505074611233584378123788694503064167847202651920947978733122557488518100293675270498050292940097072169132623561526296051108960528250336527093282276950832293493705263855947582293874871558706403299974635914375747638404938323096764502630833757534215216641611165436619346028126923444283848032830236510262214962476418715180811607675720580288769046759495789033489275765783391818979133599552819695139465644031546412546727206851710220782275165938889420800680754581844799919374403309930627275441520300484358058344783381946564794641469007007464797109949327333332138010883832608038202569832112065201060734977699907603354068251890052529209666954631187476809803905822993990568950209202882376233168244536422782864638816105354795023546326863149379169526722200348190759225038941510525195478113824006614744749449151727857882233257950581204373464544423748694072772621663318580974241902550948029793970153515242727124573098512066088906604072757687417119038396955669284285096302747478223498272381499698399607733221661167826393924107671130373654312681702326138437908949417151243010453790574397081195209310103791511662589299813969825819767205880543659228370595304049679697819676852567599327750191283365807343665446596340770231768517450925128132832407278128276139647261776790883408350330658871908859407525442065068369042491386377353329360883907047260750384183558312132470780612154238959853311293958439127850061266496621415100884437830273173539512454561645985755488746782665877016271208921637626655265094233912958613166352228610581910402295277921056391695988132262386002438670462011967429618358871658149409589884393080170923636394944178957121052287149400877868963421271604041387141079582369240560383520509251353984630852528280445891194146562293526986489437515028514689285011256902600117831877686165487456438202539204956950181480084796578495633085496124990241349628437459945978612385616595345415020709645591316909305727063536906889712485262011853110342501642700518720885734729645002986459913404597028537670865617929119240507892055888922284298896566331966856429159355206518655191346648894490014663670136561722014154507779502463335176179174352169176238256169528317423003076177202511591884441127635827893036856713621871677001300124846306783396772876577789974070121337205370657001993164200112601084890572044316612253031218451586486749287170022710399343534688521623384915394883277344690134782156859043968232615991009078311055684219314018170449923967057321159717663493748508871816738408544048690678667887992522621637079655890804336330048246851536660422586648668365693384614831669121691255410169379015155754899290417408615462291421564325476251765327393039879369171756252469134971233223028997089553509158493673207684678653510759202681419868417364458309731829729613864852106268712762538133945859934063041257115645659607743696175843673151528485066530796808829174709656271733679506497719355445012410514353403457727496662272011997377511622310230415053519199030410459607889522057223033795236849918848977893007425133428339570557474106015757819308750918065976961367672112674836658672068684047036326919387972377958479711688989277327166665834835313317742329698159487712965054965237204458236135664568877249241821623222027432822741113134779328009798675438657162225763674000312520478707420428022191958950464449418514511929558399285248064233083828923128089989852208966578183577694539839909583542762385881249424485730565034791965571445673167411975098205141141565163163147670628378159803985633909643844414526703460268043211369166082577035180310521519725147884860204275270756659502386305823745048913610972423852158621783642442536819510174693899689520344916671440554459987832210390227316881211969649264650914860022620802485470378551252030812772599508682915440935314475293110448467806763827854586574840680471448110869021042508297089716867360168697077304691500348344706309127164055941177704969279016815562934726038188455408725092484707484571814416970370469949375928238763950356696414783548807016548498446632582498794094859835862531060652446679369729421712392806495854338910598809771512624508145460069117925796338719577486935613392607973301085089885054506092054196687129458334370413069173475429375855191751718918643011923876802503875677647467620693182338509719175536832128038618973006518656697306982130639450248565971031134217706909168617467789364418995508697334959598267237506272381062912436078950122742734998866478832141776494134834129565307806536650826187976129751722957151960291479311610997858091805950912814563560406713066638305723127098318039432566227594974232617906003617952801066374314921069071064216030963152267348226551961661382545593709965085176717667257999929979745731063069240096136353214292284860589913766839356391615477552151677944733085521672553485463884548198191755621496556477540504897798166357555907267913473181176633660919512338529293455464684817656741588750507152139087988779450478347449126849694452060937952448397819790214107285843619412128161564035397818901755860986885617132252698816613801638815039009761009984407284109657473064218769313156440213705246176198222482401595860655591174206587205206543279546983815227114946861549920087489803636503446050775048865912501506687996892661647987283271350314596572547835615449508011314891781719151087515089447119162941953010541556421926951475917798578430699297107535446152293531092363946823495632451410571545541811917295365142575899348904485700179426334072237491419702443739087925171644874507409010081013888133705914339032397717248891152350659844396942378481042887063041240562401127509336992204166850128915277676305010301798368108172606026299367396019936880549127132932664683991676953709042436600024753844136124668652923845351044328704200597933381498970527996018662353750316901027928922749941435207587221709955718883797700565602278218772588511346034559317340519991494887018284723497994254583654076243736943183730911313193400626980631341957238102079669504843184571060860488908540407879356894020507776151435286670142872949862873042957809553568571609270972702500497864851722258977057565305490572647862348269278328082694461041458274442103615564492882754919292316418686441574063159149020384895694124820621324760624280241567234309293954756772545114576312857634499808132273485538489092004163005651231773402794344812256869886719424368721921866231330162331579705858869606082880965726972526164445235536301127152468564633293554622482421834735407143837502705520087926546839341226524072834015883778102635857070352327652571755169858752450273224142666659748739271734396319450112270899932616399265133561646510565845731068943204206822476845815700960695576456867496897308890081674735825294018905803155194487374681636074573883013033734790280843453028424793707686294865288484093945258515062766270745498533001208382124671527986644841638861710217097760045756047563059696248011915292984554991482670236206685917932022791643780976238023281500687032293032623802803352652585747688056013193932200944855144191029277603528271155561973141030535126418668921288490078790862663655996786785801303879682629820061737724095326523531658452121273154013116246730299846804656284191865085305333846355030315692975495925267597938249283235075027499222395699354813861560896633703694241275789451075743456763272931328632231365840547931684250485416402306219819200014664023036792017682523686979054606239541052679355175606536720926273537833319575259001047645858311205947626274497691626330616311073214105223650916404563674404320213723603624743954858597203217234537630593225097408655011169306954496678395174149233839236769114912489235155474830971250907920817460707337817589373104902921465966246971238244559745669813179737096238493789551176111401204871534188447868206712551664307106104745563902729571115756054595444083356646274526186933114742632566915404269780769119024764085223223459140207667880080550525528802505930222511298301345327314641597263203540206570205177137522236241999796837030278619371961232464921221824400031341480223652253817279933329675898891124611825128744413994646201297814412299553348680454286026505673486593714235342944813653918617769468561487989930480156542708221118031676286087089420771219052418053145237577856141649353052812452714627740279881344200898123971672935355183382501321731266877624945331061642604104825298560518055417057749503169361311010473580252708020069296189250061813408654854835147176710656000383810940418717908716022362920420171415969933133887998997365722052496435069218241574016339306804055308495974842667106797412960018395970174969755927194478601370483966051186694535632283516194496719843829598647343664956635231718683613285169880359965649896050303863530790379768151977724504873992615949600800688051491981741165503190991248097592847970617939512752407350118737320054730718003276416102375626463173636874646472132928882240753919315353701767408650202501459527045613480447756269817077112782350835323085694962935360985333944637409552802684828407665635336842455972186694620611318268442780216368439745025721319910480558184212205459626147763703394613795703755681370927420409566195278263981513270507801645174060794425989141618753487946248279333870614100875843345896988515682227048109173593427870092326097234040795792057928012129072708990265244060969564655276308058140187875632669624690474010662223076319142002821499690515122724986532245552712023797622940159068752192702039806021960169591254584595604201120081429867153506119371289528501158418172846602102159517243601393982332986507084514770732424480405698337801719354784037272035534684382774070220875970748437046259615398440368603532749636533264243609464040255131584562131448383111824619203965167414988827921892123052664124111714392210167510340165001250609961725111386660623190634775584049509322754813807009088849236395955131162371643498777221534825810603463119571068797663107254780142235491112540840596944543497693061255368362640897864512174635117311557879301189920138109439578116575666255079894415379694834355999304754523371317445661542426129235999326399737826667137599503272984813428395903005274316023493937029061306629196748954764844286941279070668344123353542510953526571912597420917272010931901892059540923667053611259238663452130127049988332637158054142798303919611520491263063523974720374449219330007028948339986003122688518918508429820003592242357448056935973971900870114362557346158344147605238108199070266220020382331619727450603550964287797413932277737229011418865704358698079546608480974860486681594438799303739218193670160228487998260943364464083912569573666671465739716121882096710957173976580649591240455208831121780527859923993930518724034007169421934839225104529660726535906154552672898807561130172461959528457429546558281046432211983618901740335713950337140517694678568503429450870690685264207292128228016781166484263670031678929906323259074815761846086582058281134225597144513612132939840067304903310033264639268437597894982283675623169210075394110765913238079708804116200348345462962795553164416056635205123799133187402468087013313939388783120872557561198660185991843357052783707978921074060640826920512139153351503066091099272661116838262357738986563394525402486190700046696227280612094368100317762490085099641617535703442352398044765857553274707871843714852518294372653174190107411960219953860703034433717644566894146001217502459419565181157561923612552587407147448326073502076721118674649474093699277094022178049183808932599231604211352395459854382511920328882117502582888362051388537856845417411715344476769907308679294663987643140468123640595040071777509846307617760964546744917283636214949421758622577763338580044578085972534464915479997137387223711177673118612970429450869652511130032231504925615905762705659916261657900532980953903421245765474555140471422288846101851933250367976622982822495414694554625318541000790434930904016656130771174544892319576084452542247046619360862466952428738231221124563856436171219639256017602755800117000563286328163530956101984754688109921356443627880148973744304028926287273702239424357323900143376280951443424612777850159484260236198018843436086418691889132541380858771458096794764056548021869755171550603257324476232568694176277851547420079186982497328826632378617200781472996573280196373659299622453885749099820059091231616829807464070784671277509263522770944097386315463692877600783907650056294358126509836628351234250770093075152752453935660313995541889315836919812616953423989214748978752920500011304932582823737498535694454166289506056959338330955862198739628219685840601668353851778718251271863250346443781248221451904015195165457498737593682445733788488375977192665508470799624647669842717072060076243321677855968296671472010412485503210848999879410684582569572644978877961010740292907208531273984815163749183500124824057280696028761980949384817982550349206318110645689459273318930707842448008824812821839331436270457361399496478003448573700945588609979010896720293796872949754044227385794634871114625745207104932183653821556685944587728930370951848948151073828547387239017653447152556528406535319929477356004621793710460078147479393204208595700666030045133501649386758094867662126587008711361304458459977113024970292517678985542780043008819737081163918597878096712707297696187010723989214710240771560805811400033444295732783800586118375255481742757517541345850511065513375979903922822211343162347682114745417421067906819956453631193874279958987475683731689456462854879519616284647250700927915844037255372219174989160972005229244370084377688374314133393840097096302773825456811473260079333780264348873475783514129719720335581203348383757841219272804368109883523221749225800764735924372189204505995795434955871163908134438623674145610652980780867843168400029621360965203724089330165327423057582585964830773764835541334827997919575978681683703810512256949950249088871887036295296053942378520726988292289448324657239938871134968785384525797118391994567173782354949667966542033588079778945916534573792791457857896668307442058865615817676185842767060262428389716847661048486601162241074302050410374966338071628840888570079804605223655331409976761165379700611401474910199333264782326756983114106456881705915863403954539517586524333766838523125392340936555595171869535765802890903026644689951586728752835543948082433781723685112876197521634939872570611342414409760624968744863552515070538538618256258647648805428306601315879111503435133111161728814954684153980637343242651505279122005621814130880153516330256592761105510667248752224036024613313938731249106141545680322758299476767894614616248581725222945633326010869213542819633072498723016463154550949401640233740870453013067143656350788016156610060703459660194936039715369158732972423587126937123401472813788998424732494251375738462839170940985834411581253509196709303300313895389081023226784279009597792423405406534698402565497539022585717897542666829883253654926690370803801858075568544438049346103103289390150634491649340743708735180257770073316852800215537824534853668939378301248590469424318876983113469858892064852975186233427090225295801911137456859379609554921196892877800024743020855986223242484610453171566690631544364331176221550665290519197234079527577941414479620244727327729970222589298539982058592779396968352352215670100398350077722597436285444499589961302320015818258463282580577095795839663173740433472356142073540781843839943767701917290849440522130193133745568258081096422431488179834174811943865718526126740206314564170904764160058087216429947741779053850623309243853575828071836870342848333532930929821765643545740153475937018549141025194589477056480901479179676519045120708710508880336378210683683192768706730657668772903677720624465988416302489587421326381080425091602661913439978141690205560167569815601314100396766359103752797780721022805284209269888885916313067181157111613703896414471361145222654724729237521714163576698822058300762888439527672463010134695185364733581587305960486159155639200593932329798976667802618298879015855904596896753005948855505811077798022590227316283514918580200958884618455212437781200015090181518547102869912386757459954309243798564527612380469067112197973540328497503456359937569792607571780989816487420159277022450842489517688871906910627094983317190166558245822402957666962161654816838126849930188359732881937059736899358805219709706443634461894534533707391082063452386367103333117057494305372822140898228811042275350095787484585889280619272478443431226097482630445385695999239761962563270893040668469525799049818683451403378787312037073907901361434216981460511000662154204391944204386924952067098635010097443949049161555340903626510976966716780815268201589879138626443573272288173019458518733459832972805375545241355182999612557432225791352309133795434569361247880485819294189993173700074286734522082172993438142399509996990529414982066601445469079268415123312711240994200061813776181762429736764992645341006967932688420262387781005139610308632368467575982067479974397607620741718248622967078022676720945104269241466780438881386290835914848742104201023768936181293227708401693250307408233762132906070683013390296776633094965579906527529897520866081489516742819601390111985545948815723136887285709826454337154320739986466794460739342097979818352766821460264884437185478552175734414597283742609138159238865816639918856552681340924641148608751074036583070196379416582619883436145938224688410997307275811295441790065727267111004868547728863734797543421845535911704069936565306158352231261559598225063786182925217782275686164130739704801503821925377368274568411998996450251236757461535835344276812522567562667441927574106881011233513612554532010072173832478361508139216189045822481093537507310593545030439204972038604662300255438022502558994176521673704761797503634917183215022159747535408368148559667430758401800878724761271680896129311152175009226437352144519287646749378086190871654189888594512788010869872061855186633526647690972909334866352322272357134489077357992898808147603711235833050820571756806804181820783599355957776037585750198497572727492275096511867815241132387141157486847747570492763778190549375797083930955790417801235274444666770922546982986288812614318564506149031455588050980967006693828219538665229678047487529696382671788126052483407776623094173546275500677173967197142443443504538343196279092369238819484323128513999808527227151439679041538289166418858186476635291658839353328557123973432960924189085621806939611416983468043489397818831687432371362187005660894326757019929186820032485336072450409101866289407633536980684040829511489230503800728442683355986851603343071402536957329224629103694213195731432702586080156083308842372096990330643849894031803853966737418491718037306020184880524295014123166531294413457847092474058567257740495197683510998008121968461039531929742413292595887156408995887027008839602235265392900510711201877434189016120583952493473111741734995761307141399765442900416014224517727230080376912143177147604063697080827342074014411328295798641807951077238101876463316998409852824515989307977609497781752590523348980215128779446360739648965447234657402152155327651814364123569939924111815477350088432157739304363980901614166840072400874189327949004970622014435710981388167128047991548199888859210354196273071623424026576063300670443205556335793960942848727497891529441623685429480156701759088146838775612103453425785778742964505709736590401972371521329181720674299655861701719386607204658085822839862415056104350472692985595049088532686563551382105052880034624460282323397670589344759625327642192229786642980797946875322411028550980459470845719521442112325426157155300637222472875864657623474103714628672915827975523495663145499215290606572134606059455845704823631639958874986171096495511959124030332489969490699317985841873688465484838164725334036959221454969523425912396135007597618295591924279958064372395350549769201593453925181410559440095889063303010176424306972598427573328238348876050722468150753605021033097030455509848789366349460959315877298986795656687696636012506875390615962423849347845204899073921181039342684428619292121103668399949483235698642594563933679141793477917363594560720299398400711522476733204847958911716276101258331879874329005527113086822272763313060407665223874601884992827871213002434609426417373230742464191821162859249027744896488162098440850083843272476166931465220149787204814449376145890465841960714546787611072969977370002205216917278598897660764524526698731607163775348824114241686064181497858330554663853489679612506795403224949172602477835609939162955137864023731267627641772741763059357260608125869096950725957311204508696750519108344499870684245386487002259740268605684492025311624114057236791965002035640201985383285043356574823304998919102000444223458753189037419482556228262347805306257442614927431923599363978677916798319594639532779787620265698850415343353598448297438851154713897357231824664332644511148510232169446304047558052135983803352714704936286554322870881472368065429433192717973068009599002873787975613869812962895671883959690255973108936006704954665184217716404651534017568477795728039720615302438377622115816714155476109680595414900379257031709999879535296565295576285289165255768384032685643308628219334232698408421429748995255351845171727859797421289122729149163376897060455149526051965850120718553935582371732344431793736575700800578262005761026593418960947574005525496190563400091498827924711477176710057316677675632888217172123222940759067345897363044712317724855191263932452610215951759027524296215870195231365190895293293420530263082619874494702356559900276490174547784387428294187550851698184928533336110055316349557055152096284278989987752922701623190790064764175905450626021742752984813015273114997112773286069443555879621769994140273066649779690245613119240775099432940274853917081914095904269545259259903073205709867542379299612665562500951716279622788239531698214474408879297013458456555438018170011563743779035863809425978993035554828540016400259500606776394387346082699887333030925868463560912619285646828388049934067622359461713474404157691574209192093355850578053943247877935262574368972731552186937796744113790513664545193798129662121975954324846433907116169943997886626014125439038840926818040369044301880385192400552164741021912472611581127284084794130512751749879483558721693656103263533664704523643894054526240601812688851302789312968387973810789915595799579549187808206193404958044728633056129623078778037842269723010116644709694378230209569074140401760978367485550772431527891327682340036641769981982578711735771620327045516882403765569918717180121048781638057519293488399029403913451079535912358672887894925248363642672406996540650603299989958264464408526858702068862282798055914763636925614531850996911613603484199995869230316573178798470749425906455609690549060847008170015921353737205593305560302180871935542287970239575327429111287075850890014355846671410085895572248557866504888488387086657519062482824618773800921836987103989088207960616940711517732774520535606059382563338736058508951266147139865142061602860742512370388742789144695144416310939843334675770529037384890629815574506697822913474789257251554004878094052881550570121331624207422426935602407356316825684790879432785374342989961419291337476233628421684489425778215448639637352353036105767205789662410906177266531269076814900972713296954873835462703916555473296865287481995503638850149998958146338221398552704315234644278706944175201243317966683357397186205976953985353531070662461816261638534033739265460985209884557960520044789530566825039651818072683381545164018521270728909946053422789336773585558493510002679620441849197742333855591698178637802739566879060283123504865454525692763020552165524109861448533449292344617551901758924795017426715519596379537615286635568501155750524976358767559388607148384088830420988054084995485216453849182343430736342305837546961270256342756643455018635317756418617906314271081608758602967026834014645324992922563956910157165330873505921998771116330143374781914493323830967038998799507665168514753329585130767163565610048943356811488687596193273463332181973373578113594609497065137642022730904209258105130637709614922831622894850568724815262846092112391680252065394121706803981723530479992802677098848023618971188843401934798799681744659229210605692109332599598062930728678118067047946806383548198353561079041036256261024826799692820113109903249218752250851935842115770371885496433898089346897794675597601280701048419175083885004486537819552302864525682357738446854003769269186780664518307989077070700440137225151924154668499650644124091068758217055858697202865801053271902817731009770203721781467494890896180660538455420975156480954691902884963132412242053182484371725497959058388585380335501429968476089085862953190517738572182587432553091858973483039946561439106261065830523792357263570956749996433323234340248258905875057384487400566188295056600622478072311056231431595362246508090073338223885233943422978760554040230316434541999516942032881020695502141892411430732577781550303922341772441124470386613504725528012002026330371089728771512734167108597522176223748614340770526970216976973282102950781809785297933216269258551699661645972742363348271055114153849989395087432602933425068939477961665026357505747815419929731213529421093381517767823385335223244435449831139114435297515253981347337580446793142947893018008168670587827387621153262526425962674932057115994708934269929216288419875257876678364471846967185092463705223126421840291423390929133811974223157379785976482980456068909138389723940941608045905063731262163184971099750033432041276698002769959319573145635620715444986730808844952887909109430111481213206314330952304360707889698315997305015206654004471839094383635093141751536550778578175986333830557970600992641149517013381310056396368409913802386784912106175379233226373232691500344762199148311386428075937069260205285780812140363368116393003451840915255870672867356014481761100781621290342717822985740307917460065666856378544934081195506752594206245523780558433645507560472321569990430715906513606745940741563976081865019187460028935784205135643586616675030909174410615273301015104123115438421956997884767760723408776288391849090040784944170324793362968284539941464799720409898690211778946623514718964797727158754287849136389685166742509107753876066784073735854326605527159010832211122969595730053955557865113766520673997323918758460843205603652616431423038624108463064888059992923856675691475086172643061145561147265115933264068496921428515339981897972124134879887985547011448458502102248500515487386239079944021923892409380150622763524767798157684751457735438436700752585247536291220077727356076701181340480784114073483480348587876418212196469234455921478091727405360012608429779194817442679205197179737783170483033826438469650396113145451210627772282695785250324297819822067225911979689674423486205548522566375084230480294683024990463356894899563960721941571535039396079637342607290563437891494656347754688626645392093523245559820726419989366923677204296008729142279553313271326881338290574471531246179443679861329362971827208015283356676573562617465769123526409670638891948624679390023281215687590421343536525552318453808411974366884556533557902542853204944878792258805564005438858570297161473775688842568034110549328191794136018418928152510602746401514651029675697501704545744002885641824777871437035988922318543466210398680553443668629594242159964689512840706696818183855005054974564397401883678380326899373266770304122596671961288622970631326395280947952822802906471042946100427236580879403916947619121320531960125683355687706672836749075912942601411728542235348120560957082318666979573508651903908867529441015075632417827350542792025351355454777117387438913595357535053922177220101978754044405920669146681779810897186592153372889915955941348243488302134309107643845205226563090735081555546950241415822959525679726185576321449823442058626332985547899723501756636224037924861349394691309729935994345833316438206795866146590311502324936665212752485306370019129641387800996967739371555258642519529529341501377936020073535235193710028540707791253321784189692552325296468991101552207599860313042886236345211604926122632893648270661143150155965702973259889170372043077881739093621646908681778174031913834089151010106931367687507384032027701319101613279480360790102095776856764815051571376788122051696312757306121852148322043176308529199694775389632947157917171441346005552911185765888673542887934842660629299430644895291460206894299610524757073226453804907881682675095173697611264324734776521481302132895471748440632506023186156985971890571872368332027766877962886916027090515101886511605798411759834006281371431668445331870380056696510309190342190695033356348319712485656787610315558139481020067111625967726801008879265309959793796025648243563050486831076603220474968454941693196763537859884013212948423055553428112985547804825144980345655805560323919443276805796313241801359445990566607129174305614262526372699073717798782875271012463901756332477484384118179061416456199188409165682561103244323096332322963446408199905871719376315535344609447474766740965761743165139763136742251161482065342175465479816643884203460961144613613630961080037508703254455787764707621789984505022370040507916397862944103491484442399417226044848134511655594023758848408916907452303716394311991360981231006187939833197238166088863214493113612988137969842797753792396638426582144305382273193723064894574428826594896974812047286787084093632889827574078654448450053639962083006178192815762813665756196191629911199383257236339823372265003308880359573310277069801453214007663723405451870253816991633640061397221911280450957491254502314478501650004766571596927572874699216333613985107634097307261971014674545356483191533800686820556384157908462068993633826072311051279772401658248678594670828720935188805654168063324643308101495636838310805324242948642762962111774117369631870744549251312036110056709262756186736540491394479542566188159930593958025143666777680654487811405744399716826353230085591808090652813696127614290508136982918427106685197353047576677050362975138902491593716407698467407116969994646343211601531832850678292095282059123089488519026799502754008250165525310433211277664276879047689523461733603324050741622414050035091220136176988134358275476084831864481188479903582626834717794183727887159670503121966170307435624542021508045075002925072018441431353058920220599177617715034211456312392090532994144449398532958379186622957113843350928609788493202666363889779753937107146318667314060878944510625388750401157186933224577131651535243295150808998026044314458173671106429491902183576648574392493229047387663673642954418263620467217547510637934818386027703171482174344616079328338325790312987667039548446920230040587288013051495528588813638146189078985458064974702827355948391850127373344048512919852762900005560009829728475117012308959732478348395241764772852901679899590910412717574227157034130141169326760150284343811506410402237433866485916201020800779997794327428537733118317428094493879357690585692871279402110733684751042382767248020636939188737703419284123410754377544768965771653283623719767567641797359276969918369384229070222439956841252699649377890750973823860192197713435006429806856257533150309817776581999746573362450816400648957745252318363359213846852506636237219160657644355965734571556077786435722820805097638629763582166488762759234060766183876437539693455498539074307095174931076909011879486502968163896337259663819777236373979863595702216586832327787000914666163294074067686852976830004578311293127475776843525941330526907098098014588839373160926697187126415351665304271756893644951401579674429327204781893480790702027615109880789634803081005447005034474244462661430500576027386950183390653581736433221182617570637789314789219209088304091147012543233379411159880534187957282860562796964731403164137578520252535211370793467260245817825622525237907673260152367360376866560642661545013261752665903055127074092757757677921927369160934923035483524368209552410156148448704662706830039398272699955494698253119195515459503226963487751850741116353487636492764617658574695213587679011268893859961160999298907461602922945922691783604464022377934383505139606278574864471832085972236175994308527447651164477354474988582928384835860747081693855462395096872097877647053262677652722457601746396363278956635046296424251223250094143906975342129270803398454605478277221528890067513544374776851547173238415310098844032442371633573616032507149559628205499183290706633299942457375962777654664099318130351663951250040318816015915979873095712595272622546431200954744309036985207695011417461910958336469335840290512941164009307514160191556156093945779192677729000031128164333956855752656426377093665225152446641501693771541400989717226704254909352335377744736668739220870332157616949062925137852305134350055486621091228105293459690576759039637965646395139213504301736065833203894817807448266506095241805331121203815986594312211231858649909869972216153317835781107470744412146525405125960992924475623939277366384852674113177180381597053274797029863707503419781137101683990712581434736604088947429016916472836707258504058658298181373241283364663213563893919955856113860662644060727785714294458640270966180225907178514562951392723153592534778164827506249595584817016102030297316792893671693361338947801919547630620967106724411853803845637775676416915324162851507123837381642833703689852520868788244603682915931686300314587302132033390885001427832675503502105995487753431415113788965756562685012754607931269860014728500792604980190048659467504088461221198702840989324213119596519595386439691571308102349895629870065921626667087517742211752937608671853590801549097913825716837090423116502838035136011544361558224047573184396922427163569790269239419288976928969687053811506048078946432477741216559957724803114322676998045128203260855539038683984578488407719441259138964136820909196209484824814246303439716901276240962906348718760134475155798814073196138027860770007136226317899297970471808797105082178354991301013147317145897637436305431159545798233962747234858735019333729044311716032518600799780313859157125819123146499264411810287601007346629004007475658083541567523675039397540510151410476176828804496051548180011606901350627837822855217063434159445507278020997806512043144481522278004573271518401152468856713136516080471163731027346449082488721344844358115343950025729121032301883588858078509056600598298823325948220767901104303823156605674240149799440513214372812666538943417469953745304348481119355299580122779147746730387471160164911796883911302740825481408116320082507590293394009496491631008360883210616957164868683917417523345883700658343263377313462171500699024425595063273358727010219985971637639746606309389349781832070540709250225353340683647191953655095499536108075197280591523066750424030265582814320837022529401755682873848259333781307201050085973367994732596935936734337414049483385504569827335213117489834842919892451179826806583050692338527248626058841878096266208756873210980954853291699704582762265221067234337007842719878521859484870100405743543072432109198145440497493515640601968138295762304616728771890066910552999712170572816654725700010386916165436809241833808731613114796352223113432101838989359010051160116100515260036284604676557665879679049556491702965892356579577767150513677495547612815453494779866696820710252644561713947827331340657927688193498334715485394395620944401632536729064115704899288581436530382407936427184080051477936674554545780190287947000121475192040068001365751661229851480304457484051895526222807324652641748135001002714573307072828117149185755754905995361823987456697904090915478733457050536385586518630914853636630351362712347742257350867372893933684457643020154421712193037654978542967944009593968377036005781673328025124815869182124131660935602390883660163193861117128040840957976245021598280964044645829245575529617137295041485979773501865046814781080773497667473080583538896211135492098418307719476856910632503511747793941858072125283807288561983967710112851748520759388067973653897915601727580749882279008672059136813796909387391538337041789780042141735790536009563185830661234464306871966118869844998232648289932115744682413431856814718489329238167969927535009457697506425319951100938418763134816113560702686600541143262720258382812232992770043090151880049182946536058186631633554111326913544711248654011423392288828126454923556335644509822723456512922391004637273509901388893113955965588703969024202059287835400996932884512099008131137391686974241796773697534507346378813127046254151604085734542708669735291537285873454339457317131032077004963299104888483632517501018488131473374785850080067816356038321738248431853554273528769532605476551733549492357081351289852594800862902813878262942099686358497653888525619929872025807473391285449471251259562545727641771483231517567509653645137281557305501173321186412851378059370122087654182061839640967458149626721872086662383891921230095255341394382940910649289218227078879535611397026633353910479851550011890821859683330054362417949214547267064527491784183425136481798050918029514495121910746971503135871949883591767689452507509882438929800253852866526069755004673075337637504860355520424035673878311742915711937040639486800171112887772349626027577219378108478857198565015393341556971310691319564582098433928372119704672916483998856480590049300749674870785996673657163972169459791981023391026743670039252531622851728803368120371526870913879815844102127617941716497704824505591401244462845151910808497574624396211735029146954632896605007716129694622950924662481103638512801917398493246297232800195077305190656610101155513289217038979623969035970664842742293844397802884447756087537598428744424623536381490510702866299560306982808227685668778729782193271858578289858109369653024094467297306126235204759122988681323068015030040715326395168205751490164399473686754722508247396792716233882381376188299809266209507828249246007777260760242135030271045616946577312734789426929831527984157639891263783953220753120968411937870694627006991178173039166436090798044808507247577740499927233523202765402013286621719825237991664935243487259932708905238938965980916840837538708042681935821508935358587293427285676483988148762457387629927910632328296352056784521376084037033086676136434357573266444360044996902558261110671558912233253747807778414257980484425558120483728252683474394001241404079129883773823831611054950092918348374920974296530743945674804704733145428889636959229063359499442807991218577940595265074530604353489100365928231704548543181492038375463575617831231335907222951816170928054998076757973308375475705561143367107249793855863660067260164992623286850085229398312860185215159619480015967816992407187287753053105208894719687018380474139395714244798512089226402216896403586336082910830053277801953586662290898509535419058908934517865365335609993347602155743263496747862376423755946832470021210728413998408157429968162367558003100475191598796222732574381448968743309674683812470441853787458607591882129059863161853132744542156753171363048202424491732889953771605106932073273633300860164173622639578991709363865093840743966185446542100390571637613264334428145726427961962797758605201919067272303415865672399715397934475895371694462037053398883770405407007786450769610567058311728216480246847596007592696819275663653968375262553571745548163219407771961496662427392844891179163023568424012031394492851563137622973176071607682616170419830543321250407867786989341396249207650165365217310245650773264754770069917638451495337940434392726668919107010027300978216728410106981107190898440970686645850519200618128167664617740422326505181931490660839410940995327553333299864206211069575799516836900755518687045222105758477463624749173629331437408410412729045645426930719150293425620171552763718523174088246585024453541614713565898150888219080419027238366636829112700664113848546410840514794388185371966566905677108250914173522274088897784543841401891250376483957777053891821286955296184021148209940552205094186582919110444355174974794051279043516180803593256198060223964541424603056856586834917492665978642478909758146133879489829144928548206995835262564969429928118393423984438681432232820748185077927245570021552152329870383509944910587808041213011859843638959327851467493982677069515785434245494218919532561454394491673225346511165248830473163015864436292548087444427495373231775483300549650067999029482024175440313204353749429058939890636301105536970127652553503658465608659263840508931893723258686493554328544220510809252410445015654857167983780633194231334873987506692690796602340901801945085867663019318983012511370833795867645764400743669593829748818283405140793644324754689518013485053257149834210300388531524104520700095434816678944037171078948718993981277905019926419767705704510664065192607068198611869750023835421592599286016631226166927364472658447222155859064607382828436966484848754816924051937813840056490881860768642815255575334073503628849096891701172083285502893754025612282655514876943878582388595419985320165869155287150819895322595532466631311407343938344291187487247807352815027420350592191949144764811672553108480118363809849005097718735126596731049998401123159035844340708577495258483406703497079361392045771860317672866869756697750787241809870165770928844741151996754270888441793790176092275127637234183344608293545998005986292231849813696269949963429025323501822687912576762408493391054331526059361276215508377824405293561141922507668653257373230604967982179163754840811067977849777052212007707270980965704708375999454820092978173390089575924276474523311518345145418990154929591935226524723303822238287020946745641996362997260392688970043887597210369365787967967173315824263389973922982040545548681709799650125426830084014404899416807931980717063853425650673300513195133793891866157646047547366397053913363220205826597121300963424583447446179897741137193920565449385509427922368899541889143629937626984273622759375948628702215675162249910753102715971000693768999718901715137291454004662923784358321217146333629182120270680450040755001392774324165073932532770443240146417959201437243755984870185736014018985249920842301573523265933245632499584333214646592502646418240804174428433421145786049973330690621112519192644338184505142957857276001093121795162839651416298626006819340232630363989088432685754276220593336088134586764253148843418300241295482180579177635354144234390097397865272535596339347588374583714900409325200829650407326539452647674877527059109454255563148984806664032223543699220298334504822467222495597737591782700046194558551591969898017728766609877917080198908223586437657854995190491401161037282688278670359597507171501498102097804290217727445179418226352955914169153273651628899525628891245967797923809537892169321455048585873318978944629157690241145149953656477035737212492280570430491445477385653077045369213231833974863036672141912511504057043698101395178410975760798063465296808294668861318229976714866624187381728538481731313231409711328857516818978637809689910705410278548610065804378743236537939934341672951355240979795390906915538657349551370030819508721692391340834651287104518733886294240844552163027071899256176530710429699006343086466100201020063631417311394605401678857635006695920481079748744996318007964431150404753984213747829543165365092960122693631911096752229875823723285310086223487021267603378701782245002865728237937575721409498974879979556508711148244110847139037212691086818016262314041443806878097065203051033869541468897519522045868075815439493715132372622611248911074168083586695825863407710347953983199731911322375646966712445150351218631867868705014168593714478226936441279584266900334466702306203775367807216888944944524955886503593489571615900175934992979818381799461628632713673416635654100484037645054970023830071652767290092026052838264617385818421373029804749143799549030041157806580987398400502297327783276096379866295781794135849404722024654945522386338397401927255739378297171515437585778178272739657519000905999873081530900933313513160689264458978149200557714082117213239811499967238704763998859108195847677573136044989833937100788573029053357662448790705275766580394699919763696938022009152287432390669181110414727970678727080758140726570575427955922054754037124744172693490457946979037281552428941117720262126534294235302207011216202120482238432764960885262240511731807470181623729157194186083614328694607448761058962597081282746629574309249283422553106515305505767032536566669281610090361335191679115358899760899634333263632755276683174104952803380808267316120577319880746092032590679392898861264787091109818057972349365270647062979050257925419259454448722819101267404668332618410596512996833927916223876116741116823262991396153014838067474775842644303277188647664509733071801689622736473467071962133962236213062033560907912525496635448998908775359014808022989833692708231800619238740000325758104320199806078306675304682139110791757481410602615899895705237395857384447537571874999842253751450546540687833344039182198653749183869947407153793711077910777072519092680359279534091548044693679727909744097675201388977236712468361548644038261981344759264996021080274201021319477690665123619705865516040572885754370101442006686767590310151889781988210226757242112404620347112320904271711541332353902922584149699966672283671920220891656674038824301760387814148530040603720639193746973562767414207403981017866363615883102385508034537831906608247981167152972964528784011749861797210502752633238164718380820873426013447383505172910063627746673532195876610995701684440608976931336239856899609532367088971298171637212011014921582407711522067967373329796724335125251935674712283838649362331570515317484507857454257130889722748923212777656442509243873890659218825610795477257475659339939184566497007271526582066346511700455742591102728114925501425035009814994450282703964734315036142607863096953521208226602249774734727282192682704667916843738238271805236391270788594803073479847184395645583423703938909566106193100275989001491504426070696352217392650225163697153286034746089200886084180329012598310041671516062600627238050949131128410815310654201685314569488586909541196443436767787223413865706299475501247964155421252276901721067364713024121228105682271093676802563618218829544372691248291517652752195515793924911249068164176289150423143163560951455226487337324753826574161707445230302227772325312683644168824912111226894692407696240396075023732291233392110111804516224864779029669619009522906351826383668989324633726725029610897766039823621459539747960890705224146734658129781413843278670919221033463784401551552703561712654223086753913122491877553264271604682843850013761131337800024476998224308616587184705152130492574547137224300863814895012911573886806756987741259534581679526234386117930576700965579364427778896982877090485025066209452538396753847279482463360168634214042945909769468792850163812795159952235796291082221507300182948805670509138049954306300403056959389962769636054169587397172430588097470216750012944290877115560070358934987956742493606844347261278361105573476739733436551654188441580239706257679606271066272083655146034623697509309039304085207184089669463519678803605713379495230963576416867331119475378422428410391745279830313492237806078790206934254075658122173510776666652658525908465085185222646914147312707702785695034103983891067594366511488278267545377710502439040508684703775614576487219358634595796661962813735050469350306229762455079513151640430498648510393067005109227641907347175882271760176426041407334955629714953994350655612218129476981902070181270569326722888207521891465321885306140875913008255679509547620091808449147796044041532623129550393911419263696271976789569532623623578735621073504136782066852468734961538690355586084194850913947492829943863082078729922845715818640194681868029935935682818079383803062304821908421302397623185535758904942444507556128674655064837066871576031157080882741978128184352861856130786342524507308081009717411814917986628072255225952824690219556474914916134774159999995854299352526846158108891447844534103139302894191146353616421873666979932812061639475316521091088908441866335740537602453704747004653363372849968517583238187621711800603595147041023037119164489602140387827442331484841477533790728902410778864889221743923942579446099201407867177194733921356576837248755309231096347724720242184641300016000362774848028779786068903364707580861932120471393076500687253547568806168047970402986057775826630727195732878689987901774187263817018237458599505604088463960291969559287030436740739802544899292365377529379131344322105024888609340710662804507707677264637534171193531272799810410419616441060690451783351261869514300133221691256698823610737840038758351011132732690338616412160148174458984857944936625740081575329330937060025565595246421405767238373656251590878831303447069306315108964356567474755382384759842809380110219037040808893431592337782363951575487233306393186519938114978908204773575144028892810115680701594704362269876261511507108481516166076923708079364734123336599006195242527849374962909125369331307652697481263244782710446076488661968125222544206017935089081255576893880336366541634102743517895778647084924312468639099716294830565821059499543649174883491292534142235549001570690502778973347225190259633819135474815607840037976516996394041105237148844461282171121506021535795672077928881317093184465707821486337413388831009242192845523848294640800441753314483550603195742146880228779187120443715953727273492444404886264816301072855184476685442301833715559325965663267880371658858637898708513383916905804071140438631410288503419713872372057074110877443926837018221610173031398506630251457196692337185197119856987114289391707613677494349007389723516718637923750575276292985477042720796134989997881873115928380427034629630488986374515559550664224899772221323920875214621394251616377939547924972304970477729153738041217210182596589297835160678449646271736487611319663026969125514271584931498774854142144854178258680760003617072037907750753278371255858894575465692511198754591379741268776833910144588171885218419136923647668256848723963992657513175320622542069140089094108812070288165904600664605520044645069157952318530681781829323714356988638681572259412894168651068194750663894251538726292484167346523742463056423584149352207343482254428305703380936772544645023365688478352427628375142696135326753315072048062850371483507090104154012227128464582597512130699826619853961052891587416116716777639458900808991860905246395040484145495952380601174022830710133310316993233402965721811633478710638684169388732440789619945119622378530090625878550714323557851223144378697617204826144296492508577431613276150092784764293985180495589683598499716053601163978832853843640514678310008676485920505383527512533692006019250204149046080657368057194699903891482109436701347009850690606399097060196271023259047741022690067085431735389044950902169105182324516596024435655441115650919968435195971349034118904503433013145236085989617022487842115972306144988811590172740818019926515095261555921156088012116104964255582999438021953443318993293517324305522386307610477258252564329261454741780165044029638422554074140127637833209633306228437424830837130790911494667330082019030968933193904810935498579671480689578019575974852090304774330610289805436372373233864002439479225469701841473981417095297683479083203053351929508461182931301720731629987837233322418334045529165847198873070064065246075337551512817867005845669626374280725208229725972273687012784475007271978541278092733458848598370885633016615558040001696148211667977370146455257316689938721931594081685144147930952096887925320479597049573094322671390691692696004059272171824211931546708994457084272750475247265312496075509570861376848806250080000419865458664311823761765598791308780224233253559510199253710444148500670474500015828354583309313020143895948187194824404556295418717697340808151531363974881844725077041645770142423115563433270983355199114044181138854391957412917607783028329317529955516357939884463090568476887167811748539303113349834847163530931326271018190853990748022977739426316458483305196045247814408970001475470458625186346300960468756413594947003308110204596899654902429436708207616180168127166132695110779536336697716917136311670805147186482047754391510237441160306830188579519449365699236201631970784250434551435941657864723420160924828575706780637279089019665763461962600556119006940884847941013236957699994706256463408323077874179549990578740707061529440187491389500318078255548061815951828849118586596057808690128520944307639029612015855526116973310347140600703286618547644101913489854489297079004471938534790364562497399027778764984386296140680817911403447866791187646739804175528336929025359569630695970612204684622605950885212277906920308866364585836450446747047714076558684128350487654626330106544283067705929615598201749659092609431077235751282260054123959117307716521197392508826482647030802824686602785548128400151411588697767492256978964240440653575707042207169718150981299471533100419776060870804384633495776775604652357344425635672858092466273352804990179351463696050333800578731317898235983901708038957413150973714225567056154143616017334050041418325759946688350147769345306237516125706812982160881835299449494555208871055193460595913186211932547781128329568181975608120535643686013351785075004496208809136925646075761586376135406865839656454490996028606781115747229167401625712988292066887834367783301478410579026896819732204948830680168305196690569333357942068494028521741544862043446738980707784941510096784581833760126201927442625457267928833565017373844988477401155163522938383886697597197648370210187105996426616837565200931080385327492870090045239504504346398641206682646894168133222491368457858105399688632925012100331825111755244517210544322278212576258009806004723276270815959128702644227884024056992887459628403936820870686677905671982291090264476248428448460153896450273681289150906577700755698226729866621872470915511902469783291753910458442339472366521523708035943550360590840747332566062839851911180646111547339646927444511840414587911505320457030341117445037119447416176615434941217366414944699240250782986339579062950651649704285453748107272362737309165765946004366138161492563060306549556876188301359105826405462012882698070671468590518681971206113196775565434142536503643950073142457086527858484021061100999644806352464284543935542296642975562056864225368170675614460217101021715988740700240327833214298177812050482560050690170456281173022771096602705330909480544653377884396722443081196760459670084684013203081609509671527882110842121730703007714769798467443631365053955378396096041120159214619158754944102338071452946392338867595490050986001336352093386141537794049695506153090186647140396235012358041219343400108500557991221987327358355090475263929687038338995394708588379447692245443252821625707707848749974083407506603512718886780164106782127953635445311912113199875747533191945830098383370851834128709800664462877800148523287444314447580753467566956350893621760716242839257513295598717693439585812939565406467790324324385788397958767202205478945813616309747187635741481240664088553097156113208185603643729150017870514790294789678224614667202984064238986139702556436697356826421144152836633137728255537910418696324774524717904313385042425571273127677264514114062789072015804048030678448674260531256873133347570456919822533356140236487667597268916789862649786181498890643202797712898715138127863550249095159788946037984978022261734056994676066273048340862208934350428948514501000176213306357914983969120007527424337505546028039358873296912776072556819383503086603126217729955007442106498811502550054114043331612099129789666220991821711196082397381285502697615930829148698926463696856307919457596254815923912448863231078581213827717273935493457538981842918645334691872005071055514364018983375031035944442938187870202794516661629707750733922962771230191857504667411606673551932366700390516377580340936682624620987746875802025516020152293368220439364487924168637405529437277088910080171648338404725138733670021911888259430911151183824347904027111654570985441829864535573311361197130162474210008350669045509512942754712951959590588757448402007561623388687648278683216360537144400259363773974047615814273452304436222691402390025173392011433863725551907241372877801899139639660419145865232340158164997190824105228163896153344371528708165948109277248385100306543677157753801758153741783624639289455771268648373398556156066110898431974817315735701093827104721850895778747820709792957499604806307472813504193528047452201673777621532518631238973916031266972429729613796184071506590122605165243705435780764472408538203996401422751151589504480693941496104172039929286104964263432621995220550054157571004617554971942608598140769070241552470343330896262512742437558161626249687099032952719172568023721087606388737837562560861887810402964626455745611398085194716766770411417080212112757377464554669568416167482783577074101986590977987995507615818642715093959534113823976283753536754887020337445449203202810452591516751286373235102429802199938710708763172919928241126608837659209505344091999132656884309047120643556488418038514577241055453060729696216988432260006131880657720989855532570706904873261626938846783141245192969472719675365289018447772784112981085269251295587979391798778137633669493976491990350382380598286577205364993741385993195672527313377658794622187325529509914079898690992320778998309270277879569145127250400978437602387579258807984323707012520096489726047606538359500417812875634681293939013761044438869433876404117403167248276873415230751706671394130220796271551218301321190674212318153749042829792312873332254545833340359487007188238304838584692792411225910972555445298979343750999152910114505027181167139035009077668510620324324703247931721305781910312459233928073033063235826312436289485331303995684674168298200420094964949823027815892506343892639405485360677712719288695428483888819075478801340721910943262842302569540798842882478205663980249900656400674432191637270927624189940400200327671940213597136338481439677881991783958759838615122757699398787681892255213261711517344490993965273367462683394354329942538813077359723573343180798032720775246733293805493214791077050148154905879420916159742552942418932689719184170037368887376468807629902683333134969629405851952088528715156379563362265600178526253542476640405441489493389968904975581137897493715290310985021777127085922177641805802730057495723393139153191145242721332739764978923277681985701690201627448740949699135319986585175538183370452957042938034620348832204249465330891247698642050283185330528462023294807624198088942171708914508991545075429952108433686026795757369866344806202338669121246265898557501891161677979403885424070759729032644152370889682075436769803803829772027447408712292837577030520497131835049516072480465068854451176299122855081541861974490471844384816746782419513788398055955414685585098583559965923785039686333644308664816337771554732999420991485364508579668141109525581899753388128738800868526403080133376742583465681610334995462417890504214508123283846108008400322987993360561167789696618144758443395216485546470570000665942691104799109523222017220984048964271180342201121166370472092690359621441183934374025928301332951704920458311835500860836303603445883456876429172940560639334883167302886513699021426101845664237629402768085596419127555967315679625911008866669936657089395040337803856289327237688814626050871999995186909553943708551696825693258644445539183589435245914542648416103655380503614820569328620745374518377639195476296076296195454482028325103932511971533071546930599220661910796516843010773565517473548932036078261169883032155218529513103160427657899505063654716492654505236648151595580393853370288050421744729076076628582477057322802532191588761883150290534440201847195885726348462982502149606028017755992410230742806112837907866284352006641998978136896948037575294644280854748774005016559005605023754993016717392815545387525426728350792047337546159008470537795087806619497618632816772664344818212620624191196023068093789340555948197381468231648042128091454870146204051556949798521051842486615912241300070674495426448024215149440423859918067804776546782354108500569873375940228541416618615766312845432786905576565599985431665616928345528188449784449967677376144058506855610448684296465715274273549857429148617788098658753653201141640378563949379243636184459093650619585878624080214085950537066247031661813097546623932393027362463680832720102673412512984149392682088539405860371202824683274029860823353436256136849336373049355623223001074218989150674061681243013472727226387144315387652876917658021756575479601007408233506460500281223211140685778030340191795213500912620963384269725561424359150092523191980953052176761118618403200574943636512214072388245708082281060195124559434385477968120134916103256670379080607457886450039139796690182815046372094499644899989051694615402459529717363286122530887985737697486385412892147429036713114479827569358902633546953285014915931730804022363017738090460372442430766926769645875570040574889044081902634642347088895853406297009567930926005540953870800554257800347681890056086395933254211676741489823982243310216442706955084971127551771676457187970822541226809436489271640550541715480742404647183304691254751475626599275661244784515677672312815097146094306361247574450295291303651811222165862300968524687039003140506319430404875500335940494433746737773226507747551240493659053051441221360437319615900424806701987718128628362376062711621741071451645839327969561317643073651483973971788008438622047839315720383001083286753442623280981531032646196266460440877675034965222166296522121978321951873022625613825539786415574081191759494464990330355998538693685745479544062796206944073333434604263134519241364534988395664551353556477466539165987440620674574148319996291454587902878742633918565879764152447663241350509673177643012459488447257315475435257858600238277645905010786688357509172626836429008893973783864398283605673053845698231657899089454434243599895110293293243739057983746776325402229199263711423269688235290407775510562087544147460811038626024327927274324772592241848316488048946576111968234072845700118195753105576050502095597115364002946421339695557862565794258367964854357775601273564076788813040455156008330647294216526599495325694458792011211584577150412210238931823825213000763773547481918214577959103533159670768738083883203625647175747303775946968290092844889338053546045458439507174379090450231808425907744842856044384703452845351703779253941205149222806976342573865456482562181354678246069219756474023706785006774676227971610622265889383380453066089225768853418654845895331459028794758636408660180738434293120187676531203606833686486691674624569935993706916205067923636106897697521641628498797685983151619994505161629067560980845342111377212962311112827716405096286852221685062315632398462247232461141901391115240774619408251823565901831601982296927678586429934221293851019950950946594603547373079445043695143097642988345522099721095829531954412964648072558480065211920998781596887148809516786405902380609311937249281780387093898218063576519123635367288980532650357463068556184818462327121485566259470965563989197654232342538694201832628854466496331585685268046322455112398222286681350789908633261484233596218499338095329860831781671863512285332332768761199626083003718410442286657502000121788497710280021271380222007912321610573864990525751273636026507153874337784702510634467689742218338330754599386207366940980608306194233401466873075294981530538961670241481764207335079087902260017484528084740481035439711557830644121878879669933774910315135853682671092768836640631990480817461975067239198954265624250428859564919507044075879153003808065327388907309984053107381602375188197122391832770728530480919029266728076190763880485699510830644488209819739063625631820109775408594178590472808197258036797646238102500457954105597195808598304984959580559743013105482950498187616737637610201013220309936943871496260800276544128894234632230928971197391076126115057915740291061868032139195432990880865354122130067461346547495258710667948250075028962382942258107278472297087944050643648702025967017511800101361974037715675590956842860585966044460654940829868550449092829804349205749359726940833890460415350980375541118518208917738554785411137414846807443850925112170053157862898734770252970503718032196630203714796108854967584458300991288376831739279457200353348996683452051135664318798728939102558784385308625952189573419752777697056067596294425300969775005363337858093868139441211508025391684837119062215839197171977240995227258559440741843568425598769341552421101019493316258309633110694161864508536243977980864526326936173761998238016235854633466065718312819973860611739695798212869629883515654494561252896755854818260951505033635879007252743533139717751370010842242255278991810562775135049344669680200033020058366725852639834937468156094086604816058286150065315600666595685817229439247737004635046598534463380951812649044977145762543805534378475356631714827395600210949190684961216351081016364692711868634848773114784789303189903865474875772585279373448401874507957401153700322310147610581987083129305216439400053295123432341377104135483689125053515581912884187415564502679102780676993769592445765453778599437278519686695907122186899663822105144115816862499807890047932675932101746392730508431445931498782851134705035743238935368939498862049716558511131110818994847010674747158552552968086274659427434276394237999129219631740028673808813747959474484079943541361868771548906676590394266632947082673673632808149907867324134278641582821576418518782446285201105509324839036324827609983094167698730697032248579742297132740524274570386049556553144575071001991745085102222445974851931867255066112663251558391725948881822485853769368002091248442246282742733046577015132074354917658425192654089732069286089507447363260516430248806547280670935359510970403443523544227665974603694523578618115361333658987791447568461024502597362168805172673433890718286449508401427223099482343348698476080348473001369070286372080496698956864610021406084360814466792470535800374036899379519444354926380934316944593741444590209190952317707890041226564958244462910886040536358171568130845649192912488023850631024429620523056341629142083309649627899207635328034095293943990233940260507398407499083713786662275298478592247295502938115025935456835268760648171786782938249489005959821485113379912462193267650639251049689881503858735557534429453690801081129073961030275668776611164767225104504229661935325637581200517460081361471966581337531817251716774714285452923752376542238420731373555074520574063591579029355046227373647876485258809006116775845824982677086659013294012393109803596993011350916209031627387737132058138394987671614132936972077469611034106679680448051478736513335191802518834258621432044705308871550539604567060256467936576980378870248798694131194609736747836300694699312620366046918485489393198729159077202833466462554033516447311398630590169706655499765603795702903173177193364242826201570660613668087016186129338793576784493787826630028404031295128501975822911627181448340480811771243467518811117235895134957396864198933300221542083761726345470950086571283419544051498466010528007898781568709740999876231902895724481920442287028157845441062784847939063500095398169220697612670569131757591919552632144995939225184832044522866006893147162316205319868199142103477019141892107236761690511021648537142580717543427596354244626151658820959405118794934893472327918142581547751133173749029118703111883390058992637882235610100562388220632093832080777556091310540650080346303014098395740864885608771875676244878530492561903670169311900950782353285963064622722575426609830462349730027461018108850236756510846450780462536785612834585077835484763845693854483129255102655658589503239744356755733842951283140748630243447515726654099897684744716255559288905435080196504939361967847543270893432294176172271100777231610707611719402124543536758671501729570670072514144523347845220682357459633382445905903086114389887280757994625710086732921178064019536154887168713348775337217043416004356683644855088806296260727912296087572802263141767753596157468862872913102119061360212034705296887001398431443813275791755548887502146729710885970153066811929489215726258192864189295389664367842556626195168280805789773417130051056214489293493425306977041998095379765330097617461187373872601388720838452405193488455114421022082107226607401946998458820607068572204162164568328511113633729612105844754356183837403704201795763778278123855187093953627033898748622455716616348429708012207574470406176258326898643129420410516319576943332682044806348052763734464330797198394057469285277108408229108115990359147570715791358470252786693497713164351320355280470307280301203699529033901287213671330011215900353804307284400982383191201289868810784077556210710060411963007760794492182955306552442200123945734385507856923348891938731273138773633460832042858943722890276261229649885081897336031399674273196989215577165549619209346794406779446225797026527873228770579380984108961623151591626610732223998463262290402959405567091960854854970647175969769478067315130332337653596845256859355368532976729700666421140036434576864753392290112459762958286029067158725181748051133241042573230000847320505539798569672343353041189374046298031016946878233037580170108640591951195976538112024348439883523030807138670334312774229549538651241564294988371185118828865988039470255774691580833728838892270877141895902323354875728953626946836024404496379880934019050036393170098242469984232183017498203165957029126783495299112311534330603974106358008360839233946654513626885389466050064226232466819309001502286168859285082377781050607101492502366103430544072773293012735573466715104406395605078667541236582675656464070367504610501157126866945335870230772182182930821230795189143183427147310787395670323867687062036912408745028486010693587410405514854972116928703670381927554287661874358771552599814494049025408740055880120219575324696924649422834457829106119460480601926275388804996048443906152742948937979444593218250525471036083008196966080337589432989234826101413299170100390453289879194509620148565578218478026179588915956704400912283545635579315155834754829812002913434118336910480045078048058005609332310471155562114209090134457734146846119284421378100823501548602406846813632682706159056395758605855647997444103001470724057694364697607335397224892182926972065151106566055047175480189484297016740988890517974178309050699585175718784907910524162914106306496390561412419419756691767999373123716588080501792739768483233154789842412446828086751813195179460021618638041581419540850197812197423257514566889630046173272560344785447431360782683777855242031874756366864114228730854856799895087511343413082535280529292617036190436876493422997020856616907449357554768788714302765623833546445252262432351289059249260151275719482252729449066062467230703597164733214152425514005131025787341412136506578165606587974828649410881097888283149385261873616919932055638428743765394659072962151148955973706116328228463568509077300780239216459743699081635128625215605610681500100251563469927789952887506302744885965872330038831470396042141807951433839947982818175626698979879043117405532206867381895968280014222076872635939695412811378117304524352317730367025810192384764340396088792341740195277607457155468657788143099283438389717813505067417278744628139281347698629240194649220822307284991408494046216552832776184208659494245067283476804941271633608489681291985305295218061265611264954923341239756985891212219304864588453857020784084093287487819132915388873647233012621728755387564791469769907592903130258615601853176859678586178880639440232163752075151064392436904978063009552650816809461197900078626619140348099196498068521406799576389407685309015521424728100910526870199206438633284786843017878413572406240831943388820713255105288717143528146079288951716371914862391769771034282200887096822223348265029806251947856912211669316248617367380877608629279066401836812838247900236108806170021551864715564695777106975972298177881788569238860786281710011547443526755899597508061075903249176975243379256556415302271302833162033862158209746848800392632784542886772794604280953289647976502260289430950177322284038893319323858882536479032909036162160290951690807071469204100685614339570971316805275548656840508861991998613362578184204765739106271052192388524559997450434692509304537216732040619440420618579311787905609448508473772500483089867934032984757893058220015337678947084580912195678516308762051169908602714901119807453202857235845038063479551930854597735918798134968927540219773809601183964891250942208959262079356732283073541980341351764210052811807142160720207204555422455269778032589736310831740800510027143594424927307503336521904507141245899508116692816372394049060001687555052013178272062803828352418978192509779259879889364943279210256792377859788648298521919950821098524676882032040254800245703039852279153961528498610824324411411823581675099447663670449098939429302914716017323138804432565849803885153601431968527653514407543824635002248965623079410180067678046576579162923311040751184612286544105786949775806649520342464790360626008637741484888455794675291009779569154235312267988851420439925788787894857015781517427500252339329340310168326292039642469081968510627372517185617862396874601012718433424680829483494705647739168280440103122507819408759493122887011292413829803719902746162017579917140773063094171074706790213943868073181516792105265550051325787544714822312439575098996689186108468804882366769629657655667465817272698167768751698376348225410906891519691997643808351113869253948865769607111230889546909861057321879598918577826104309433944228303798361322690482389662086608791463016596603128928855821009848126796739377405609040090233171210440038046875874495076264599147802489520231252259539016934148402094003435242758560690169804605982520983123209937033993750445621748788521112001487118061940090901626057122449778422596333390229491828404623508163558341687589618966187329709940298865436148415608850467926833449326770865797949590564727643051002389210312449565373566538453830295886430100552131156361946134664587536745565578766394221211511823156207684139597137479409643034258751837067493557433872327598427281900921115430713676242271879529874553814755743633788886099040381512664485544949733898879455380700845966913388035487159379538337601012903444653801726510488406478835423091815749660322715937525880508268638943809873091479576191905546782097504670223035390924778326066304022859529987169707207306820655424917236791646681815601512844297965240985765681408480264889124796218691213525168843704035946482238701706902040956939564917922361973674293223812983688868237469763036727088546226516351666317064795602486544384982941977433306072409219048580754427737021263531989997568002500048354768497914075541197375107834793231671485730076642336488417447445714509797189538251800127451631158393117285533842542039278851252969015575610082514316527707229232081962486220583868691057690337205753734887331115351656494206987307018013690321687092080033631218303944887206512014480680177446342011289624330595399665785673145461554031134380954984860109865399789882615802704315785065468116404860998777952441619475972617279661581206947404763549026267379228313787921530886419952241637286016119655842354488892327473104365556526565092607783853270639916359309584744875592442800975950132555553121529560194705968555725731781146052670995587210093085928528320149207151902628280855537534945784145083099163462361883440394948836428998201726836233042014212612410020444900932829644152766321594658723817048543706384236629972218941268172210336089221446644025975838279734306296202733061363981196748230386405084517800985647527618195724511402131855096479554473413160252133499506025388826055388296193880038625707624154050027789028106253677762245348742309438167425093094049923712259471850518767801140185550360263641023139461464464435113578677353474633871021175080856813037193936488068500276633477326762504312490182120241135211761170096095553442403322942654303424527660554288746754340397399934736503764493819729410390008584584141878063940938654441959030583085667355762125607972309577007381952001821976099402457162478206559602131972257832159739643213371588343344548719040978627701831897641303759668771013482009153184338410401323847721299073200279342449651017752983026650526247072398141514008125167677324428172790937907407139150536579115330892650637728967000398597925604927564335678745638193514847202107248887974822250193477862992198639135308468587728722186094288481096833165196363641046255055317348421848336372040096427460505142135470200395208129374145441764001301707248909210382689876634305627139617598305569846192818632377842172748823231695921115266208239883343593751079856285590610748228663350624436303765570775504121228264286509581378476269572431224506089122096555759225283386254042273294249283622076419823308999685849785674481791494596759964233489095258642070143353087647382241656746263623239213926842049986093260011830653078304780068477333374001370623566031994062545876846486729522544534468592407272278219490795118301883410066674999032961312240079901434376542526477315986567103773586533523253986769095674822103649404056233500163023977816400499013094395325852076944714444268468984197414547074095515414320034361575995223755553294716575685559901367348773059752343422288247323715989974686872193768806689659036844820168098764558283631246741814645052771867820018200914505779645718514250161504473338019321840004977991326922763586548579501664202216710558549742373519186024006187084950228615887421885954538080202654154781194634135939960242677581097523276075475699024851179130958604538101908229397619828161459334201455006519375057454302969045944501462465264082509053845384078087729646691131557372901944748161903673154956896401744027053987020806422973728487986447930928755609613617321881731016249647008026974288226528826063155406873749845492186109930902994047129205644455421284741993574604234224826207741618803928102124826636884782428075236764006574972848550595882083226723643244017431270618429546638912440659620031064751534577730888782143107911459763221482929364370710191755994499224455694570790766381970955038126932469512842626521010447154708153555362091875023727059564045061276024512852918610588937612037102824469084082880334409380197088385196725455364297450454862573773916696207424203284837627308622469457854805006579643863934775980932925547561937758880312188442300542792444431680504196715520316618511329748928378726913999052855248402106443480573018888343311690213875029010424879641063036825534592487624264730090319092443774461362591819594603356626781549130598710463257617329623698040867826636699247747737592600034113850064751802448540662770899211452269821479519981352517244326947426722968935568162092539156672672960428096883196921677399954205899511661914252128995555892732096421111962974652648094997429251155330543616532090986669850194437991451734855031151730119014902209003572995154994071136543941073917657253506416285427219424968580733527981304209018821022596171819367028546756432820755392649765971847163709355980977490556661163628513670538472612114586403731317683460590075193849157898820576527287844757084429426263740407873603895248388274044357712445267632971830518757701197685586907803992017073343750433367134370631128822192841159613384907630965780461252601288495212063423847137548445533440457332612582591836980448585670741536403269669979390411090032015025880968747802261842393758218318124006384263820900992313248279274737829190767484801685301204895668584520602297487506082513380011396483368255469737315104152133515558024155245864777406595366410406807883606959521344321114457061379495372044999681052501905908623971547408688931240598422694468107102728850817168823910155607260463281245194444065038498151041304233825097456702966821020882040698733135917557227509151391022373561712153697688048349719315317281929645581405037281519658254383692420980676438681326532192973946287292439367935890685490890402779204370334033505301438762515130519851753858962491759160612098016016362621565830379403135469608122545405480059314051150173781505985882575734850573143249476185441986766055906172920770045960226236837826523760128853290085269270162402345630079598161793031206725054112847718795860831457901665102026064925661351681527277617369297225145365635121048444977377622094280731108650528702135656029958150672858995767442257605856419604586123359324139812581419275862009721352456850734192767531267083928548911875675321639919038842242294548022429404260068617248429280348025737080492350176957177716038441467555442343144842053889594684450628956358138622375283155170036335185813578986464246955012153420079020344924058157131930876741089070384506923479627245808864775671103117532745983431723126961319666653876632646723333130761107537844360106705062869226886226501631062228991614517402238580845784571257874894563671677873770783968243262870743550606973846653824256115564682647210521148960993987279300222090083457307615445300583073578530894014456109419339018400035747133304512700685041587105459621975424322943994639318791936755998740122640304528346174307805612828880476895935411074936373379364273433672948471471189205721160445862762223647351722888203028119006210928393764586188968288749123874336798297353973877529590060633912625212684415714110098412423445832326257622486389353186599075385729776159210468163467679341904255619144920700811522199330918346240082374574707345201351371179631361581698712323843546554041550419724469223019664381563475264227570741731756073373910547774206567749372685866112034892677634068777301438170404337468752496630506774121287718972802276384771388660242444750438265920903952518318494871214571264014258261919322885128192843931796602620923267232790032591909786232084652958111987006377534730535812086634647450914328216153824323300460738650538732844009613940843246420587705948933937452281829769676945471012548220462550734843323899657904492341836851782928346470550393518918499232150195272012352698303948311855485831570883305602093402460244542625034326318751599499619854044072072021279092775006453872663592593471973244890512161263346301403024925756257066734216306757362814272578052281101360063818101967797934741127292456811981171134036911095689633992802306312607371109755524281483999541705696726316948466554591235046415654932061005347058799813434308126715427747247005627274269016170226968634480591791905942324899964078077587597447188312161042604829142288859004730409311024372520848879042226755866653191284451808167613024493452697939409012074569386498796793640714179077399155240984545929277261187064125733507804660536092352939608544052710135785617772736622833019450179657434742104772994346500447221922527830963492742719026490123137897482111673169515625602168672512951058262109595501074897463293002075488885409773447334733223627201600235944800915613028733918261383971680539792711802305930400048851450619021810287417627375288460181048098522737409360822079405578645018990947638229361918452074674632987639768737312925361074735896490787447575402621859528964254191453966124130731681714796327297837088916169042026821927363120523333018429636020859418373867000061842950918496362491290494164623189047901097396845242904362967950464183792681008690108763678509906801467509919901946037720368807302094854432380425445835193110974993851196304610310923569374650765151699424480825371791842235382342160501144005956647918609844629936162125867989956186583115699914139982151659278886323220259565438327772221789163276456521492380024555487633303759898093155768757427159844313482669423557860137286184753217821785775628854183960609409420048841327610695414223019369596132998388461675321645725838839148610452360987325076408734058109913807874824069308203400228474154317920826986781341611799478532925673249916134426851404334107970096349741953374352940540665756895465813984560111253236311589981347235987876848508834943164965383704103595660110117039488745216270723440300849328592173151404657758545007504822767209191556863606776355508935228530018057554678133605606140873417406445364044367450327907246616824734526709466238013922197643417795895508801074993145722312932282231398731754892728569117418055212737539381317017891537151928027577091434847380162164331114786787059854753082127757406104556235294494378383895704923008348373194016638330746437031301864306050413950602577984310414174539304768568407281651473249648108130642587659305429826643576935064519398799816426989332793536740981143112542091252059456875147072862892700377057765074640494234698132932027846409489240223415960548389234181328679810526065390339292543812362353671149354845425078966713640493903312888199312814090202643066382647924298165266267895179171579889784115300597000410916992727475487570283197112095098938195941537519254897656569172215570118648136272703223751120812355986044014811119872326901968417948890605840117917107551067598194371761573836124677964220576360857541932640959908040953041449456719017307244269134774133209060160077004741913249902889939741262482796370490909322000583658267136237722673198879983348178679541935709876686482331330012210289996692359989100416457562645017909662139224868436524083510708588524136620048579415278826062400124452680888238022278188801382680837774580938221455611082254108110524835040308180837263661440236005451454801941590218160906382239830045411931136245906362009939922430323745518125144912740084315229736860394908280310098878208461731853401532576057211951645967923050553358691287350917834670136433596362945250535999833833348037885602694353424990659985737603906603550711396066638176025439543680979166593642895484434342478160597997136854047661197026669813062192065429312317687931474707593808943116264298260070490612449491705478985701880810929481344781068893828276638602163843200944212175104200206390893262479784658552322296123165764444219191483523427568137630793816791531513607968301863948752633036458808968356134116236184535493790175181354623713081406405371784228614643802611896310828393481313589237638100051525203415890805081626415798173600127410596372343791287222324623633373362212428036019391167427993021516791827362616624412993536290790032835968324643696651256090021003462640436303363441721300869941229453107168691456279328586121161177745807927935510549507532304919551077479805100470784898348548819153244163178610900791813769626159935217632029752716996357608086376067940962357628013776127745066562689685611551438844488049598845756986631461091786240488783431394991079296028643301060095484211893549039111155209614188027699391910628585006823128994792305681282117785305170681257464024362805940720252280119876892225120098493557254752250050513172351833384736231028305044162068143912205195166432504359821499467434576827197624282079639009078828047246650746256296022173611639960448083994485834698308864202259418077213642875009331788621453270808712953695436192531434299370092368847515197273535635766575050578743575654408740766489087159346747097625420773695955813604295655359816042310059221224371967989022116106631211525228868900705155414664892692178694956875530546602213492053883456855769303073061246529967312802864784825556960905623734525803000254532292835801887771085048976429844246327898768041329350003125379870916987308406718420504568288008555866778969381292655006057753509721227949797270422407129663180589624714192107112325309052511764804635093629528334976455392331730996349664584634645902436739415408152100932394664736680746140292846640149686593888868750913148813213313901091888352126203667046134129286969795445766769551008103194511394121359340320916801719496480371284790938697320734409950036709560353382420287725760768137520504197205125052384469893572901906765299445747898426613386811811393472250268767155756139051449435385546358537528886750666681067984381437841748273186603573907661964207767061663844823707254379502338975943859084930472783547992260241379508811218635336048935374803119539005900099433240882228857473236748447845013947434275035999830309944615712975528691212414180575646838930975198853976586862599832796459595361402454801126210922926233064908771287600660865420682104012386247514553064643088823548172973740002676868311627617570636301645171944640524105438311540253885390190602443525032047302476780392955020822911590460907580033906687758426453871796849741294666216161371381108275370848773222500436361771613230545543046192644859269177936940819678939333207779636059453031524605840284339393946955380281746841855629093463461539978360990491042207994645411039588147771962490930205745890870259321085099435316026597132234829095797503618589320243002004067704159522986290883899825574132031652796582203548265333352326209833207385698884985673701964045843725206724450605370023025256247684182595612411676413819944043094279173408038145641317903844921945177395589720961538486203666585336299852135407131623040861669929229002443208485176837554617103054409290264679001462990731936089735960049880261497678297720157805802445178356214046808668600826047556493796826485685215225235428912171362976937521621695481812068498740282484833363151426977064027643912598436895951866416427899230881338897110108732220959979227433069632023917050518859148137288917818065293687372213682828513858167293240982918538233707766661791150233980818315811222409110803242860565777782331353338647931959624297533446003209668238528920949221998029370529671477315108891790534689828129482213565172222824937013488491399750504288496694619374337473811118407034479105929957937834420478798849997641677303946546890386281956543733967881759705498835115654521437422534537749585309575971305105876973202068921859799169111731773370310416556813030364599441912724334361301133175953992301580564662449783783164199433106381767484178752691011597970254854640205248955691817697715708802134831797196918399510053329254188811714174241550196496732717495271255170174610636201081513483811214152177339428636088847045968321741931559196865822723722646913616312455917962678671402916788935626785640939879352828480362644425679845152905558950828818677869313383235859727745110681623347680242156311150349092414961162881806115977725475749070879961196181940782335148015942646864117443288955942757249185073488760286851492815041274856905112638804915085592017541779341616479505150833191969154079324777692355815435504560674322291733111390749063225638172289110522786782294565859444731194370581889910230748506603813617551142423727036061929575417515804163556176679840896031084132260656925468152236672151014563287669747014689204608481633815909329325918417647643982857651190297224118889824268393045973092464429010412477755136182711485735350827196321905419793597969136025268292865861442595264895913085669608771939054468044833972399798360561898233504500787600516318846152105795413148842163258020502026717082508826168956287387926187562362390781206999310808265084599481466344004890933648543889908872747923058621625080732591336693435918834379844794385353583479251537596275341874459292527327808348492549778655612124443978394303354150641162676224677430161307117806611896326469731700510717463334581806463551882420915462807427586855026110984898987705035076934766001567984352849394179027502318884281716914471719995445549306256958127959129592425870483335000839839212330219818347814316414901911452937387917497451943616741670257659091272842968383674603880168680368879939849471489666061596679075845643035192528228238959578079433453392720952536999345697423881533931424829814221343913159581694612739096468736625046588460459738059058996516844853290457474787909235143309908947011471426430748570835219673130305029679344178155983986499260483139077755315771714221560194847159593152406923869308061013874618759590591461010759510690692713003236340237320121228282582053642191616827464577807654855484459308244278030311490929532683832536974372141194664272248380218159389969184808089654482332523560115645615435903244509107379329992987568803460358096321866874527538732400188460246878316723343976411029364870720828612357868327148405599679718647338767511951726318378397029616552930826701747070501196945235091221688159092663434777150080401226259142075159435282295696171422207843220683750068891705823147125912140391123567413090130126739366103641328286870118417067751165675142394644429982049194567008183169706328894196210833269671745734480261112496227341427015763197769042281679687112624097984327342604602468267413173490160612382984784577060823909140903065895862831417205125790556810380062686228831619696915630206323002506035155218431960866075065737651343772077501945160743994930965418789289254333527838024121007915970548809869992454044683826539682764182568454676175449046115536453157462437299011534827759091767045548347187066150427735706752982685457880994578297217599429219981848291471140239313392643250878515684568267559657006251102842194796445457033959660962794085563931711824770630208476669632525156067298972940951738071047148824951668247535054650772930606336322427961525317004846650723570502230875602393176268143327602881538389304894865806245915146985926890874865755925216932246996426435759727974743495147880291632151916916764841982098253852366963489584640188497547341303839331245297349175400464551891090857532169532203023721949525230942690489250782720711386886444189921182920555535366280541662277315801478967408035184733148458102214410324819385024352245232112644559132454008372658495268299304761812833643503992891644389914751280963583399096536296592396395653698808445933451330742691856081858876773683748416805653114648609437805018814602374202314951493143548975094619173727552181265155045554011691075773240140224884077407627925701835523408469995466829056465459232826126635383157729610980918563643838697676127760888018218965268371228870827340658450397874382362554864026247229131541064725207336557043007516196547792275108641385250116748610309031217932095094960968053840459935140843307941090071992181154086550430306807999738168152836232902438578809976991590262946683918655692071706668245752962058863101890417972048447830865188792417321017188074729106269189833932939897346419757273625582203155154156769747898284517836244738978031504139387876819600020894881699608632132246854905314980164784207525599128747592639876855378374467695941418041864423928704816181153837484240509313075289017826778817122947187236355199421400682125051597838580899947071809431663034176727720897166849107317084866808672949357376590893779028217634857389587281080722158117496961167142449732021059385476193474019691444055458687307412743710530158770285486242079569329135583979992738906717711414181558196846782618347821503074346385255080187197002943886024911701413667992721558138784664188469939854698382264377969516288836394288776263804004303292471913886153882472210585902701634434297123206497496107000341661837218112578404062255861372213940629766699505610408836326180961009897889013550972366509745983938312236931742702287154402630246647857513915680348316799841954446505783418252765645615091848087272166753302669659613951116556076806331746445345796266985357601204392923239977177530778227196675906758058876646436955269944194094305334089054564017064260793940015783709540180059513148224667021301231484223891254408525331295971252354247964149059114043360637805352649839046496333411339281654387384508991754874188110803932727004210376213249806330843399495181773811751617329974370902085574187206717982020204106360152051469583409806155196741209340911784139404513072663538778841841073287331244572016305802573437886195539380746343339748410287344661058659796929486022449396042181957315524922438491461789680901225711756295148007952051277617130436598910177546314542278681477650129078142827898404815921945055244757781141860199711435744344430026000007014437358858980372526432240921372494590986110941041862670013977642723693439054445675835382697857940893243296865608689140207405475144980185787344598157807728785014384246384160405302094865429143746478792361765039260990992633836479255359916361121295433453994735400536722454549382551102225029033066231220738719125338200071602585185653362630072007873068913682795674701554403570727295782264480866029821254503870211187439574819640710478110098850848639900395671294140331119516347227969435146072246006382760004616147990785534539653023045347374025479464823240437283516864880163181789412330857369893632258877090970112008161406026099704206066062858021451669665242003307961477190230445540725442647730501159492816437443432472947765505835454359358018436400735849161995596754476196350799670784718744877046014796797407887246114744398849448611140017525476582793347992166915828343679620772042553389367884091680386971230190058391185919171912798018341741468282595757093252289857600739601777592666928696828823485497218940614943424460381937922925559376048066651015586789309978544357397308461154203643125874769967911528581779145127104865476550712581840057806697361560989826059445300034844299863489530658528941693468728864097582712973338227914597774957631026816656086119478688336671024313608521035044109342681982527879705705138971740561091868663039561292945740867346241542690172644803575985102341157097810229741957726016401734092670196775364509104675284684217281132673267396427940863772685821571871470525352697074106764942843018358424908451533859020122379506472271374269318904096176149335621876230709931480995406751450376077536434480470877676035598358747584471745609678266418308881598052423293707637645939606131296213801510245557266926560114297685420999036049307636440863073449153431873823013445863213806636967639654655463229764565629364992145609043690553683580588676634588810307909704007862996290808624900247803862882806729853433840509737187131167303760289571346118219139732081142635989935508544356735805246068887859031124977559051993029062371207679881296323149992746565191694511996457241546553588549496879103964571367371556076500940031623018416735858789512888040055927226670714930953124409704225635468383804334054455142448710979431705498768468370517613599176724621829385493902688640774120891378752081474709838536710714223453048735311716151393938142720974098490422752768068743657750770950177975408901410845441852978234155301992075063827781669466067683969217809812472883030358946529102012848275556384888021177323889280820035488899819709186726762974382463774976985450131712054887926923065409336961602632747730272161343886541396463031978586334317152845286627432898524508987540541082289469958142070997659888213248621319869516380424379059205627685795466928805781416805573921692120824888412063467679716391497687565010109950228474522916009191540037884559143194775901126979099044390385288883983654764631206168386076586538973305140877566057009488195465304912241581852524558301666357601364801936903526493607506816167062353137258479230234066822198157079393987330296574516513127198988005441809848979825323225636273457394021684736425535451971692777734334985265706916555719733750079652342714167839767583187892689944189939996474128857862455470262732118425881981870856815154201963941809085202441835918907751858116077734830209756422642898785652048391251869057782876885427114820799116717445239546359644910728930988730730882242306666005905872681827558661706315130490858479851944470618625762494850779105535879153543178385973782802430830301853309833701824137259466158814271465651959294853004665204694326405970874010275810324069019006216386433087611712450256707528396775114497164397441882956674415444524125942305005717038980829679962044603893763929916357320157256671329089588005739246841163414301393780430446940915686201589912234565193046788364700034350857954651343958654626135383200063614754267851167128779054462996440200988703468079744427767281639603740484802504780316073979917973995222948368768442002400368462527216127465732967012314117092996781932557684212104533655062491755356929777147592842083672124010814555331197917068341295595800114047668402929275133043678480161191164306613547904503497886988952466071466628787667672227393887251919752154201085141403717623911096640988450731990156070514311277282430944652086913157526620043864516696480472465823658194024985930231610027530538780461085052028748648012034293185122614694605292896575176547845386265122749800533282905403822715653480252828160382842581838660417693852755177197581665426278231231292195455022048727317846537975793012626283668279092510360032228306660902752409831457303293859657184621069251658841023258843956315522745368001097253125536474353836309112138410193702687325254924423329848458859402581934497062421019584885607394187454268367059933367007849794371090399548820813091115028446498273441966093437067429518139413454851674265587592737970357436463034851119366304770936466326879231154104270509231464108155865883013145647130959023720438217460482934738292229728502601882170827978148352648801258898386336285693126434823174946306225285751815166168528758573739851326298621142414009884075175406249661944316189142734003541197514309099456045271168855317903682711679203915744884654045965567077982976398422688876209589164778015376047130588840587233264288852251550536940348941497426543635391334288478100207961145878201993768796659385093470612495957515710324169847874516123739572770444490914975690937168760502005017725338474412064340909672117678850417726269740538914353087645500976397896456645498250709897128467271353617754550361409744218561006563900637268483749123541195203790250367403168410658862801497465612996533689181028042981106997150708947095871844770237416626877456868270973803707068117942942015800212006055342420819835078634255094878259411761521350047376409009870450278363015421728800107540690652476586857669797315390602827485680995732409389058703299085245009937709798238424477847303024583020693199700862953975041025014494471164299881925461140137975814194120520789396274218741877998962177439812158955431225591813196090141012167202395376639172846372500331519899552033767408333273741591004203750312366030976816893549712562910069865897785097965003036936056517128164070095826700749601458831345680903243074772935879244643782786990570315632668854736761903156543308236704465391235389422745124263497223857279398226614577468083098958188156350033095432691254894933403137458466704632754994576322837296663143505080779603231715875307826526991998964751937778136163338464224571589810503205441591258628598893084951188655759977074113729768985841819438089460714877266083521699687169209425447272469825531401073369879759935683581153044604781195667402753261479614233582270945282336952813397328675622118681221955073362436279863285830622035142500468375385772666608327979088057374976161145789986522466150537610125421236338807991976842769394125206772365667523789890067586116864498852908230605670731107562867068673003208780408183460011196105516358232253524941886450868940754490474162089704334244062233047663626711038227448830916456046610991987380475061154747424378031340087241272730469759573341947660881285446995347483500294786833969696407191743512564632683785307766272782956526728171110771717159030360084480527035691423755366443253118363453427949865121317891218545965071892472391611829272691443247648634238241282250262337989080473613179927773734532597100072057882916123440711450462159828317577600937441834670625149179206661610399831865041101556490797341190414894679122212375125995966373202006143023772040885541219280494958261414587375238327471312214560554517884287740309688783693764673519793561567058639748264172362699793357643932827040306889593797048684145367586607672235758026949198933557429461076331503141689434039727211118221401958937576004883566136931050240230031710306337719302572076319769866946941068144990639405714506773755126421244336027897971594876585972251879299089954645513871615815842983398907308460347199161254780319827498636583381736461325888213583925499391097131275730765488990201549669923008191185260336374897278518313186247669595891405665953510175114624040040649962489170400038132279046249262141682489377099692561042494546044187410828450179392844346327797088194946376448916576476273303670465862705677919258659878674498229155339903886091899647126946687700380418994199091110413483307821235789789034619282714190880322809526204091451562556064466749365148009683132811498558060010727679983494146928637394387146276057455366710632877037328607845415986729890305552344448063711311052701777661267334022238095904333841721969457887760100017034244322116803452801595517331313038913155469451350371580338842364502779781692330432668433558724858809087247822495699964243041453644372490552888447743475051626300038305506317956799959083080115909326218367904719548399958402959857288497150237675674126637692376850157676492336301692623380767166964296333332660122504939751023984764229672610414655588193608473332568165195590442946770470687226088539114792864906309999198544656236250728375598446964324091706305644670256895042179475805223519497688721049815788055395134264166761718309836931255419839288555499855164430396171384285636720421948385437045976210757542191110392532858629917689011039251785990534870660201852908822186407633129152941321331589234776777924817282148519753165127044179611343059715212033544919893386206749173744069396659023459323352680842235634233495678337314998859593849048889812240501153926747035835491205484394901003053474855635376363287782560998922117178086331141491961979475159245450390796941619380095927396771187475231360746835706194563414112262047628685815179016805104476547007637951672281386479741088667668573992047047719488845939133284938394350969801736256028794682713698307951272432301113549480737934212963310423133288726551256098068687902616005402162474380724599157349856949965096090252975478479122699929291817047556612909350845790772657894682398708727109208586956777268837165816137507092396973279387524707746611674347988398919600099245577507008969314574921395348154891866554619172435712939606377976841148003702257929566546693247452871753482838697822953272938466348861632549212188230260960509159873573382210403621057732393321635283126503438614919411939500407388951899740712050024370117923736598271773465922742293839877466922106892438317246809685650921357092323652860477920783993389655225843597988951779396950790182794060548310060912340682768987618918277846421283638073033937725730268398891463753482367617508801984794218134921454083293283717462777324818015299397093081225005687108061299408508932203294005213916868483436678044695389644538453475507337682072427281467381153771602150851063737982867517056062991887096236127359306766008540174157744310848948302356837763260860909277267602887094700923497354557155728729256397160438868289114081775876356010773183413802212767630180576166481913368877588506713480670914029391366325669800577535240733756319272056496793603996081094877000265241965034890430471259074357190717553152392946671108301537739253416711689451100674026827657920791550369697547039570268741830149811125769696455137146496222243687470359378408065008183599841533388725944808664311725344652448953160574440207978060799000975499202467657289056980119427078899461420645839004704314294169192129524558771387872071242883135191201896306376469296482476068425369879729806130396645264445204127109848664538603727522839026961834845914504980628286397086473838972738732584266798260412212957201527076691811089268523060746193112347555505975422875296209660798474256479750977103947309748776292841570925429616412455080264016792557331881931358602471376430324399142952164580659747822137669308180556300810342712288982513424101199679087451785559878751592174218720600144169484759893623346757280984684089998819159073442877155646713567776418400608981442351459321341943338724738545923311160269525404941818226115502960274921455933590205723705154594154068538811361948673685762737418353707574601694727590247669582386502336470420577465927978376606543180105930553549564164285384127108813636452107104261488105507336155147690548123373213579966250959798479219097670573044549586329680770066297408268822318991585163087185822918920155845627231485525922712632580804087501552469798633995045557670639727165700562450866760229657802444431469803627530700781687907122882478219919071360960878412349754924079677797849716158267052488301897023017767262366391900592950322527798451911711634348659105335581287713967666475994438903374871722124450811757746418188185648531245534511564299463688837188717961833008263420464689682467620178009294860084818238981957690432887187928576305433292181469994918367172227424182901620121794746850712006799871590310856671250292311958840276862557416833778024051516922543562838669099037934801081621693311245048662902820642509744316882763101642662094692301679393469604161343445682713881868302026915756530110111122250484844764401156036524894093059102028335262244347968468017268291244110348340806199760359867862407985508295653785746888125109297421655766046906078055123412181888577314485979997646388461543936644795551308778220544160760523113694601517106407862586327907094037571907809456118523800013783123375680375233028098639859763702005817944772957493442139582476312803270918456875005761944490062229750274359037182373175726825071504459547394617953272935781212746259948546920259675378467905652035394912230572524960153682387202005511428462490393583137431894658945722729518812758058077177577954861838680255427244978350999070083601948752870037060381897415151852658886287499457135151649678314034567549735762949645230635420633695030118081268421664983286332918890771374224053684028108221254115816167363771896509910531735435206950079167091665791741677902477960499364374249319673714566004461448422905520836894421727153441684817360383394656108674315037155572727176124518136481824202492972694128026881835078049446707837355318993840204485193441006630562020852273852683068002930510223417399535327309682588680567147281395779295363100188127405256339440786682999632149443224556377193772443282992573967328464751200204144382477463347985571902923658678563597846245282355691175420641401659941935093261115366372758669823035198694387337832479063807572609103321666060692684762921173280146795048999056202215256557696388481536527349039765220667099047182126910863480542290294414614012041366704636358691631092870431694621688493231254261097046260079748387058660369551316927315184219861086944100065787240737782469309883556421995526951948870146745645354037918214021301497696322843762367050548927582200069224040965683546965993408356016707542464798903779174364945464159109988227587398820383456438745364115280701597307595107621639206217693351169947469539710479297302704189803208240204300350922613323555834187309972021365435045846669994603527783055611483995912523542675445315385790330346524820972503690002128663025780548404640208183659088114452557521172776610318108842396734273482044315535279657787102103940576105898419912240574510481545247116647046355613886862794126743891364604668613223920296835220285109388533170909965465267241924818004536212264593848889052081384268330160426609053414381313918399779981958292963548585988286316828966706150572596057020351245587422437191370781936045171865952842147895918376323494767564920363014549323995216952233033914273764719639653245761591186826360229322525702706660001574948852238422791217769765860047429437140550690627585772209448779832484526311347456136690727859154712512005604925318817712011868323671498101191329404188409346196895839214851896019702660896622077000327612413397616613478728941998823594353428878803481800248574094211185800823259170470638071237444811408408894079234922845370637991150079636587221834519417884508876082186371653688557616876885924552440514786967845068682245635554308516492561421331071272622349231254040092208423537227007337852294879017091937411494026709994062397441054105005096093714567013965491190129498598959198159456855473079770463340871679757691646351465599763737935635615798710912999629249253980019860146106875935360130787722244301414753202410384581390143623472686611240699977927677865911236970820245703579844490839827018576731582011146826036579596149014355523751156669255190318367315438343451508931152464688617191774771326414179705901803588844048057510741986136604910260693683421297832253721894643456546922171093777750803677643914885690241523843609798048915671484231857529963117782839188886786634632619659429993160555208842887557916949980180100024073433485814345476865799608192882418735560712207358354880339450969334775377658540426326155600676197100436667601449688959435119951988705718536912960607930914538640212282279431044110962805979911041451723806718940864481921812548246205773388562191672693441754951029916126832622369599555216365444337506949478589035907081781538876727623693145891387470723538490245636121587625766395226736191215594919516641827952646782115190166194179379781157446028821887788166367039234513222375228739271819304031690417207647314494831990645218316438497529034618369237256857104542769523650258582722291021441495073857859184473406792111323633152782199579551896070045046034770187432755507627558650182739335969558127462936184712643617614575265222594359550189357899513519867586848913587938111802302707419510093704715788337853464542283111844746980354045326464136987752627485856378104406869179350515265003803880017810530395566177413302932929804248210787610768357918532017411850065033742037797688458508436986083986326173047963510156940170196050822802275952754996826986261107117901774015754789422964205413402688292954973822587652536801594283057805692052969603841639790098244984536109843856798801370131791582410309527655906560368174625737794184557097733153009043625827419711208666921023225586417949518487124003836181190304805880301796534839465404107098865967256798359798109467434277102016727259526621787223127595753028413917728487851422503129385029381495228342421886420747453593360736940617807916564345304787888172868251549552556770364983457653290179505820632534390551585420724876447236094525750069024341811087270680260554111608806976609645474590683403774376751877706858256520911735649513126250088923446993341972339300875888398644745029675906326126704012939055415256261492570171876852654710236847195598393567983999851665080660033276586802015165178505893533656008698321757078641991450244171033891240211115121086544202858796262972569814895137195261481578934948513150027660476194785090728845380415369981947097300727800763888596716205596474987732435709969669287935036546775328325956163497534673274625727905130797965608854854186964616837539955590419453609527404160753058052971013320075064576327920278102012866473596339741205588368300817180865471964355997249092059777407476584508858769483862144395240757143275976286264079821459950285476646306584146572432668466768812548571757345448039564716493538414382490545122527112603857802011653739708675517817051705151251594594260427336291154356055228693051214744177135789075150813364226632658546992366479941388780412860909605303813784116882904136901759423728976760292472276965718512367888203257150141344180095584006064494246115710174995340629066315895871309146444871813585983808666869985371242877102235964873397773059366865406546453078912759388034824751833639179305490784858158505522603096016217989503054280135690776011094658869050485663842065750704051264082875394958507417745219935447255620753697685220696315814230242312822781724867655578866633969783442288563563231748863182638459410287371865207328103797220133278809141747436669448323558310980456500886047066009057786898723739611320736037785118659037655315130931929190389720880037433982886014749789016831547388636673165963721071469164069664067689625482761061326424074170056967858504129453264817595922177981002784890371617783394659889417349828208805273437267824634974006693696555779443283409993798507152664145706341632945145141212085396834932048232938752232206612559701277602430265832994828881839837436067458237994105574750666322721940036556532363220497378934281368461644493632432668364131684286669974705957728307870764012355701186379449318511353133484727553645195152869680032582881066316383460542311407710354642146187881694564956470973166773798726049687132797070623356765184841590859894541224155642470313180725242983897339319344886520073680944832381922530525962086275866895050444477610350605074807722054954886171464026638860515101542816890515206850728681673335534230242329910906049496357060815175367170745772828050629168183241426703109364804359236707350139306572961268566778338461059801932284318359754041452823297208803827297039619280198201240849906050146341375057641352599519939663970828593176281244901602616802186963179837212357809844512551651971975632912660900959069213672181707915411341628765337508325310549564289918202459651090208682969188344140140186833450569302210668365116405212904137114486004810375974644979981703048482270572525258809887478830056140021250945146854615471088471137689411667955932351305157031167432268905019829774392648152730426229090091154791611093713826336211580775983105312288121091630410462417444880403598334755058949141321426948088165445165284743057684033399978542554555125715736675253480791576861722508719298996245601154702766287840567966645857253558327309292441658489242553274639578630180186938298437613717855570053746188928195901018536937139711510703463300233943980119327327708740429383585091749710722553642780266102094497769713898556711435303365324704662787203730179113148548018099250698752307242298741590584946185445466368329778905833403558312944499047778755197760017712479902371424536394723811379972986593403222334811813897763123613053880108795839690025775123662031812785314477633232161512452276129818021336082615989443436949991684239584816792332560763140639642690086483712847700231014024580414607475734252935518871305749493512698166562356662636813254057900423392052102519277920535582336168928980413209384802348435608239666174766660577319290653122146626170427089594664473249888583215966473122533897295942371156988167108611067545978156467460655275925841680077845935971775912098977225719386826518194142943265127375978536277294694813256977832898572643706660458563682288631691561977252726440603982426077079826583595066177972150728164925534772493643351278185640208928686139959864435678631828222262691400291599862611804278185623070345796752020050840794740137013760011322581431529248824447291148813179581813995940983562411129757930842522526912609269386336419516301236250256746689810809391230762145074840679493095015323416091223190201651688845105091201013400546717528554265782963567670768908681963172534818729975252363467007329473616984903762372067693860884572142664351866845590404146125075244351798677469025249683903541285675242841971615619853854025986914445308844017401048519036005581144342573386429234751739989194474054562338165656264015850283895959484130157401448976675838606735639834082008049807066141523132201827112653130724644225397329879810487489934411385210198966398784164789177759012520346517312469701529592409632159291836259048087343066239354537839178996080908889530107663783833167503663285434567712592771635425875320063260162936424827645804998094940551487468379906858945782522138398210794905646403072571253170723664443451135856364349225501078553337777190580152326440172446489744490123064958634409759318922346070124571094788321290764139300861027610940559872445872236482626716946980210591778867915937047989793794186926659880956518480870303236569148951427032829257601215804567080192743068204452939566809949210361614895361609937578701645929222652437356242884569464922829728681794495746330325062604645332571862032039529761050514092445042734254202379068752839662122137946082106503531560780095812699469889168056129801999169830131008477689707394262167593642319792110716936551102559703333749554562636719448265544147011560144847381296272627690831042109474743534545175956877136291020890360929578378607122490586430261530047560185866596959902951125699107960272940526479414789472612165341778022446140189322891843576949145249379888344522765381481060173770794178766298921606686207650505274769809874291694940884658367437384560415755735186751039158121661206053922701630497473634931148805719243284696989479267927493153182385672458179900457629328161509229945548328176254736493224106522452864830511754212816571567402087743430290459307904952704977213512012767211976240296185309700563516384720964527332871262935943243239792467251069586515338189100306538658631125746901920020133435207669983325381655200414623862285866094920355421394113827496279380555014205518688282563798749584203484505145830979388430919489502510441530028450741240527110860271002604976726168569287411708893011693987055039288900898523478941213074581723358576660152798640554476588532303815429075012793242075239371405438718387372237993710139698707881458047437696962981056192449966664960377014668527552059503148211849683423413307162824463661881633476141433365892327054080632569147935720208944476965700294186523233888342323343394625026218650851284846622950757295392452675074775998564434432745583253003889541834892467994310572413744594091620532424998567032867948606131575699359271602839696042323845202495659256688237320748514414588953898325915894629177143494096883998598190567749096303254372840184957353627921808610907039044808828927528618121509770395464294823288817957825531765615959396872221550337048003456274765600587177880670212926297350108100354900020031003550207975756020568170239414676142164733606240569143991947888155024825585344353537873427546273880787483775164047608751198076815803030333957890884992343095733951770515892611469304852152049839728311618390307792395386708639459704479405101185106451344172099128361430582653430023189989945751924744188084031452772920226170093616559700210818481986258836750694874836687929288759131667069172757943680524557771963615226733762383214466846084025862749463675342961042143227826596100035568188347795085038178224957990378346972231084357545258127353146830939747174398654368439188704410880320975912003182885557685520016389426405808453446917425038549528817285102372795251113076860011948350335227390810859956025448612916766268644208376873154591216502765934762285275393394377805117516244191433712599387841267936623346832613753825826202399356062044899086982324555860051977116279849765714026285908545366346231094944438163945275368004241678908334616583960973883128870089072073092365330374185327050010643010992179206988300041818293417392424271427552879120281854649307748288574444171439696721384763731635586574182170412694281475889816699854149881300654281552373938301081627165852967764062671866975393756303957469305576338120817748146649008540046325157176655528854652159933557210163324034387208840824209725496036544662469815087395198691446644855434633661363506794372337041825169738581551377551807333804753911553454091750230908213126050980285459120352720077157700036399315077620262059201542835021327409808250086079111351266034303738946093648363173878934031328986766857833864341397259925887770301161033832540087404653624230246295375915941757731824583422195650192667030179618407371164009320227393490161912615401690129876446632434796200705351937511987946524689206441689755381427278253471998824164322809361336478475291422472579585672536527538089588253320472492200362945918437906877525177074734836103180605822695104348959529941025459518471840060087327909346169447001277537791775597164985976939148703112760901977878152529455650408624002489580437759332527504125459470858165147166185295234241509281448799657158453052422071082816513711451913430985037001591271673355931513099790026333114610231635562980897212632524069458461526924224050799682214775985204294983380999399242174709642403287750580165571416372892126829793091335227475475911460351373345349997494673248945679914024403902996861527708467364661404871338001698153718301078283691504886681271694830576735964581141790575793292154030518525333829011574513868160988036248834128113676019542972965446497465982899285510279401262425091631171644445399261867941169591221779495190554988124986524768032322328402295334631888291777917501968120327592934403956875642532444602026647153756928071657637724416236952080316929287657563379475979768213882108049737081365364178388593276297239212475085320787555185685034302069470726338703907102752310777885813144793581812311711104019461155158160892504246399836981637962318648686006630222176082848966464306008450377060157291096416301671735123969484556977697748234705524050820840616301023951751788929753814293118657234000965130839284991299822036972183092892967428202427325903453768616517442925294228240079362955911097520996884746917711515203388995805661747561618678509033897827436722959362552742457710810688460379711438207012436896291690132763985164295403359889520768361412775967902905517547983461242407143336857148852602100087786005005520480861313495534872004746265564278619293132623148104647030037921197000437562539422378429848900745674130808122668719593323790267614092415606794218154593542120643195014743032930790163217397432804214322511496739673962508989966138683362804140297681939971868018127804341160978647282130078041101107538132058944734199198765874088446187905722574297865940577003572209815281079801853801186587613231972267455602636654377222497441784541540778818292294186351277742190032460737536257247424702864983087438560882809514344562459021243452280344680535334355932870679724321649634697892485058122880288830586596032459251505913286667632424321321271559662198492135585357039748480953785806651256463376994450733029363321188028989615500702533919889240806751089502825162004809950669161862353074058170118566943374460007440599653635777079461842144981059406490744172353575849679859044830850470266624987541567774520650894601427378084223720700318156162730267482175642307066796562345475735944108120500347612218019757165848474626007982289550681887464673173067694650135902461491328806810722459509289004303151034890154675171902053909166281922402592971050003851151158573375232488680451520993041301820577276369575025636703897309422751755027864949004384859887700376437466609673424509613667950156125939166326295969303334231635065161916231165633373626188173452793014856113057350507831024349846950328485939906582960955983981044773042586506021477846762148978097479793214293678421828622257145824871352979964212331314068562260946091943644795947057816653239680035822972085559987054249923997591639010601980349277802177136303401225175649600960313362608231006222610846595411640890626054409047646854519405073535032592532696430975259695969629058743367356654810848298526326326863708876670102390690484713434221930173965254947918149585828565637890807781408800120097400536085695723596265280134147767345104846382276180814885380609381909970053784326489268269028059127837719221556393064828765664424985061004205578949962414790292995408061261228506338556816965527575853603908684381707754386296436393851348034182348550728320456682404131299785475640865424650780701084940026373348568415393248597273922294881921400467623416468063818830914879359401812707438712746558319813087821588561602567516431522138479005331916544393518247643817107800002102540021322311153673933212140348256709578255602228811396163472286004797040138663044207430066672948478008911206857490343560830679341640520321420531318153067801478682911513380142331451210238882348978245267107196137237042564156926706294181676523260063482691199688859161791370694013721601774793980207693944388504141370540643758503474898711511209093578579102113860811142644414813847310034787743989412184747072040825308355536980150016224889547902413723527946824818047523303990368015709538708449132385323597968000946114972650918811030406215419810509558331571493014681950708119802706600026391860256355071424645571065138884126411848719695046154455036489007508941909786698678333841528560821499785561251442416467702352078731366316091048034981989797185422138507198327556352181116612566985819159358837782371323615757458961894057706482694302485893690924381164881168853067726488538380309265929325517044134785278176135444676901310954073329051065185725883911462543952371160702569972022939248051792494721214261011090919810062812734271601483052900715201933970675255229509731464692538417601778576373059836888117087428508759356133766854712807417739150004726601611206230894109142582757373802855265127424159707534719368720734208501088292963291310702997146472553731647366133758593149968268091518831379874577855474830332424987154798118338867274652724858477270200461339081053940928722361169684571466343316395353871801772737276440505536263386542602914442786098392379061400306419051747563331478586763294151284964983468660428034962433801789925141747780438909999564678753297455409619263813286119083281575158558253141829534376029230265921804190755162824798016300533558220101934714618998129030568543887131141777076700123198394375988742778943184095111999142720882533507771556621541286767492894659088074327456774006401699678007263656727783893446697243539610980142847641788174292701142418511178638622720081683723921355052365473936257662132131473416643662382953342006796085445747317903739675528013665664657957296951131666709135897054192146809149729001187234821617689003345049987825327324590594735979165785120832813205858436592741578157244493514596239759180916919318269007891378426944521518110118455287833624066013673817709153668105963754431166786256082777470663616787492163198849557983438850956887455950507293845954100906060132979185091636239645020986838772129472106698980869414913421009631551879359994198594099567475488291360929414852748404770931389360198410778021532800817523959152678449928956303668244106959460475925000081967315177450146057350677471066291434975415991745898132890074569542066489744499354195256524060970060526186751795950011898590057091548585573342963994905487917980658247009579061646963577166972460154150432515323231121503894200151650514052182121888969120314711531719853247161428946253690101913908612607769007289726178455535601892131411474721955040980586339969668959652784899084800746249447974258335886729165945119369478216046541299118924447658112303145518263480593954212383646715355391914586745995783112295451769524234301213911119816411456081563984447160375900582358804108816512793557312102301745210249566623113439464834230706830704262686356561992412328042888208723138041607180733442930276993048090107188763243389685852220286057657483872764497267707480721457004774453819219165206476419886577511295182650075667662060378525359589173445311628142180592291098615694349777967918545815096492775774046708060241949785996401339193617419576117867739134715533773796016550946626960587117960056022667092761005326885155232725509053990994884608818412549676403300323829344487469612884173708672549292975137438846832109669824916240576754765686174828554112991236649079095537284977250271535800768377142901132603496563926841625405335746962948260043006173382555635989694684358314485465919278802989080713633523357974879861207408164382639251611800594197371143573131847803202829599335619807936050251943551772011952296244309113289967654172548772988032136098401623461397572343313866003702281485570143590656967118660637980217749872084011301706811950029814694839579430841671296042896740251532512306319953913161821926568030961648491160965408454121862486565834829578507143296792322256565799215539084048592920870190945975960794974811798869682923899775267900655682414009359326942459280035352725190290565473937455096841927827594506852288084973879297201745502580498433517579127468693351818419882849437486963719479901446625147014767842942698241141274305445706241529173530582366206925630513977338896050102459613648483634397867064724007049340748968155365720248674032462176397234252753402174039302786622234385456257118555314585336044658082115123362520126523670771457180945048672486692635005428337148855424544834716610860600885003002593282320627421113104991923109586268967223070414962427295406360640918980455636356578476682013443435033003769344591750634930822251620958356915695749214487693200248412720512142261755983997894620404280012272390626612812490393388384089700939018536828013753468879043390145323543057660895052780532216782743546578787808479910491690064912362368628976323424594847129213557108584071149142949376654852911353995403469003581772718716953962258669795931237169569936180064635361086760279734362925556704969460334943539366872688038550834235148873413857114600548489205627404699251034044869451491068315882512309818122391905478113518023180622000744265420514581061708597461677052152524409682315593100365383072470975696331540239594991303333637314188225615378883066978962434248577384936364787172657664339646298107238464719959310807002053686685978912675693566987119863237282779376979025824317943399550784346346096481725752543729485909306366922782220389896293742209823267379709681184389447435132468235957586605500821982933843049853244370072628883246084522647863099660879102070947408053569252509847502286524307231227603482908907156904693445366566920649117094386512074892049090422220261522164662464371502459534188662922450642425580868891706898387048168904964092083322423094865671671650561951105603703438126185257750051313623853971408587504692732394451334298331488426695109752532122722904750462243727266299795901466178276728628503966961777917121711074038512186695222163661965937330617657351687145353917087761705554461210802483216887638810881203668073806080263415783822850294611295257000782186882564743387841070292648904728862209354246008451876372239330506867426753997986500625572614563033489381010640339019166496143663166942871769477174632516866514674261899350559827241423614498742088299690740882010276040009838804043913835839612966131557916387176050620809063122715070886025170696965669151856696357740585326170708323249280967894745246117476766293649280416726797954153795851411593820496292918019384095200594551271589501865545758494334779397626939059352723136939863855576116941216435599906751553328215334419053344775171414095556274799368483377090229978059693846564702819460597655531826000358388698504395702176985999984331835059031743133556529533654021643392265879774055045631512517146743364368384730664388187077537848646033986237385714690061216385377518202827526243377932956396524094501692623480900496431657030568392421755970505139207240478059159590583055596916546835466032423205296324920130348277501276498489523580532999339101672563915684273588039301991443017875101103903668537222357487742305510248481072924326690914749951664095326289099498587944748512744025814560877293314477030886285917634146834750211101331260277277900628014258903239108696307736400369356654886658439949650667036879919477531372305036475115493846814044028531592933830607836483874591335902663464106648346099019106017108854431830973316821592762737052532761396181250475144987293155896072660740717309001087458200756639787345933597610152290665103832185646772959210878252315787477099936713907681480342943502994954359954166825379966768167499723184764238254362238013052800685720746497428486744983138870786981711010178484332975349843818812549972928546860794526624299576966627124992051571841910676361871204482466310534182686813211446642698639580709826059502573067816730050204132519283142344990546834329270677753783132111909734946845060644900031383411114844482738739092466081973770787457401955708744141921376814887293670803435930295514762851208567066843451656807052512763878991156812681694418667020081976833151478714645334571261618318764578142497789634128888045028188899569393933805277478145252918722372889228496229203252566481230638870740865652853094467190427798406294776925987243858193642345388647403829656236563804906554961500724660456522776211202929612516983150495635159053409620441627213696157648434087704282372844194562481547633019162202997341824300847293562671624671477863637179880142726117753272756147679149758090124368445231697556581707003336374765780292564155922591169370100162052261354279484177943145915280429170056201346221011948640909338655691595052419275298093785690981833123859730986442054186086052511604654510499699739402635972223161357776364772626157773396745357402468271453347663890144166763902895046133206953828411745338815950374876939365631482505758241596399277386451004539927234811338170467535154918057336343138604871678111637235139714128649061907964712449223437327979577678015231298199559935977316124855765451536415184691181657470963548253997309947894357020125975799282943971198335977306127506282266042206170975885529143609077303000258845645333165915845255089978772399685880711577061776879654559062591197048212094266906935713501488342349427119451850264645848235239081676132684171549541692251791745180415406879165991407835381334775941668584690829753742202032438588603322672143999256647633493773421316473808343192405430307741067613040170916549865408214566358557957822567167431926174772682556726887788781095421134278946232669783189425084722664521356880289445871718944906344669512918001231218368998428013847323461679678636935855782130995322351963629795607490155124338667142437877745891357686094444257481124931152182538280478262696637983634669968619774140524436776552218939894072845814622204457942557987995097840437697610763852861341754236999355736457676337813709426709352227660883700350491103821408166584325012350186846884040068452727011173130523961775052849099427228208859846602034760071376187896656238791993245413226931568121087083347362454804730334182684482428533300787362111139952905285627665783387854777074365546091792299531792519388489823307721450016843160713819155189506825805960088761556597458971305054352459855132316526429057201559888864651265445600451137733593600014961759652675644831985491122326135678705989841839167134932838063730286205690783568022270537869740683274088458780394006295850021287371151552700361143526892838863817932055322128840794481599947391453868270111625140696202394332554951029215774231193096668052630703005933401133873163413464504553126996186392119588420827710983050496169215808588089872690141621181663890780785167544943887863754126553440563322139248638506897388445649909603928790860505673633181275944150476509086645573603583041424121861665417465900943964261068819749485033185748065100423009972433425067969529063432674941454230731936388143551589723691016295095038295217099467372168210658472692315737030636794454682705840131075601006450443369868655315024517058604733140118106798134141343518539844449001862470878983808570192544922709269826911392667747488380492959935948883818648954401071349972387792462949734028353583629122280881810176194887937572997436193892932411068991926482855091465595315378402364403185940783887946954054914723478027337018794730096792963945067391402294866448465851763840063835618842187637636329387108817173867781136345120922696165212508153743945821931141558201480429637434430977275738313666056416346722993346544736377569825731200836177386271481389576012137323329034753818303944475389742295219438579329919717611474742847132938712180741393891962956598539582451918464227610200618289546448823278692966597070643660582714225337614227769821764433124304296652090117718327329612473566393164550010184318179146481319747231635826974756277892892423687537383988507803850006507598999970787029373924055178048089031493687796587712450532286478725746955543273702736707467665937818300227085449711945657349351726246551359673348710024132098297896753989558136545286779555721595157384155247735627817247365439799128338831353475612084482504686220827308282668099349530575750175201244050933618259348388478712127450897383551062244975308879971723805002334110194965678638941005103076867119602780277049350074890799646173917037241151297778675140747776097464336569041912010642909999271856498290458099867836310877413718280531295785571202163292163347419390678950871636167464429927152710295979358935454292561622840153572086313086278854004652519808061096217825697352897890550432281520913649080219186589432961004485199508971113376184543659222177804088866537052108683107246124210381503059310104285645501310433327249383797952427216616207538767363413172491844439512145759938442797050519307245468850704059898028524286362314181487541669711125685937161501200147767331141503398515193188753746221986866135491184142932344048555000997064900807024745844692874609757798819232467447946246441862536347207566350593273183037228154080372597346531463205953621313477362394165921427457047406180875761853551701015689927425498236679943709583821837842756265160470429184378104288657208900222521322919963731659056933058938911088396310123277333409810508757322147811082365593784453013301826909260900338349791578139663583612723079173740453711349207691357906038087797031079110749347794198800396864825787030412128980790217726805449906722276224279800952202008809083872566923861936105757913723054214908097868999344361456914391135860480824436328452036543227311588354478378777168283464974481499290519827341274831005503933487375320213847551380952702908384395627887806664247315585864120667207604240550425889764204372945992653201260840494431126026177874656820794295898272210830589444733692413999258927008595293342324115611202258723401481532696360382583939067478330214795473910739686535408135742594506641350577454855704380096490914386615220836747721953906605180331732831886947620666307496579754985876828489544980026582833457225151051736524235025715916662334423286061879719569844032703687377230276646706196496495088732698062599616525318431570305605761345857755347919516110522692057367706578132503714870139264388876322823291265575711720689736093835614532817591341771528127934571914419823331673127076742409075347735606845314059458715991701681724891787606363695660004017900776040360879930898702106759226900401945867931196594318715168705475182761415974820129261629769233485680339002569690389215620770758607736098184674529532121351075698856766207751975398853300784678132943708671507358153340902932199932977198733635079433832649284046689303387794705718420688524769138981593083247378468808098578466838847526708822327237298660691027407369407611405131735482555834809615828534309178236275154049116883661413183912289621850282226228540588820286278445199970974848199930798252284358760405612134223032365744199182380904840230996856122417541278748949527725424975643796981527644841441212871782646117120526458571511250009966270741308879308385827241761931746174895884310271246268471876858931853777532588801047142742302860087028166493477856697826403922783130505972546707039516409645143051661682358961404871546138092084112248327982330050123644443786382536933493719897945364880213752413123426323544246418363918455529044353132573838200829265441830715187946171597156194843843584755620615405456197249462976024831339814387945490279409855381064873606015064015829013557161723518024572223808543658146722598244252581534244538588594896964164429884864521514916100523546189027933439967440042953393390651630443710907074211727591149256562098188571527260250124031226512318299116972262462987905623714154180430496759768731087590425761253849720231143483767427978017204294900917470804874381275372631205120676667191887690074872605387890490171011530098945430971353641737431094427861463118226591138023857663057746926535105801720769907521892994598397582733149819613696791206869453169182086533278288807262764565303152060655533594902846189426644865195551116622301934602286483657908823360418140706606673702581069156915389223344884324092883932320050377249262398031942110252818514448207416463473144784524518419048122216306836030127395222500426510894731421752432544753713368674960901147594126112230043180886504453756655731429847860980982678993993970340251836220672521408958499902637251057193118726506588889004322002849210165970344579849837765461968887226023741482499272952815962774462064898580662434135394004513331381723230167575157699162304234002414594043570483661086280487066346125177121410491624035267367993728327810225838571315348796084036225328051979211451971331538134218421549116646941873332770457790621234734447755324556361799075364737246798950667899315564097222800383406677090573024636616840200667698780835288768142316393945916237909588231710459323126837534597031575188677817220808734231818995367232974539539122538401346863701856042197411463859939943932559721087491557686442145550292184755926737438600210051778666215668275337710674866897845263418516711654933406372325709710590881811857683999500108128617579632506089174064630813652680583028677082280207386786683116675951907228071160399737780905505123735663083695048298363497316929973308123554074043423191139328006922860458470341831775721760971900397315248801660890646844988280220507660327171663807274407840756015624880034425747129315645209216927208948537789802321583452767755172789505623462337981249008661215922178676044376232412925136712650309518325217588279623879457812449056231868266077265681992497549704465673741546641046573486899707141628702061468562705258990620386354803961144147091524795086944037014233738673751185026417750790771651613767626055496815140060020438037413381116017786385816676950205136056228163201421628692175990241615877251650523257170994840045235150361122543624930643400992319390843572223666547091638858904834887260096657059022387291533420150940505064815881079035699295108422487662146469537280843544599583975765202103147675731238181760358518899589046525668881020585344452824601822484749439419047189029731488216472318586914203588449353643901840428162554389207689112201927877696065705839334276315876887505911986274641675311058999737613103834882046220780468192351196206463063458143877990919233838170674018184708766448873704701311459213049628701039485917352999622971586094569621649739069588583587205631667640758657985543179577921055257799598249605816511625196192194055895544223634255810952761488613437536986464392759049370391955903924629815550932301651180328931695137438605955145295024668339564416424667417400673686154393542538591027785016374698360264947379719189609854756930206481096489620634835653646398476043557444323603583212206103468553450224753258852959541816553435913148961255926202226575414303227171692097627117268287606064683772528340332296148753623853480534601481004999199871681009961608214257383687623058835593702732856506998873342219101474628107002347983399037789208655820652855101964430014173663301191171047002886657756205198475577443065402887382405240430600922236009691606727125357681546799924074161233294875181031341646771096068694973662403987595934917252861844452962178662459004663635860515022494592683390545364479318298485287200928597229637923305035480162944946741749426184576632847800514542904832811817552500748978064096661726786635392560688953552611753858787900056189014805050574685089898361382276647440561525391359638918230684890919039530368436108099694572091575305038118748931389745235327906057520410414543698436140701154510059723428200843511527577454526319638965090356667445647083203517330686171915957616447151395601077302668221316912554242572839673720631427812076686081093763149256885750861071984032886882537606530966149220935529978038965924290088835081438921312987991624956645121746734112976596267950682115607101787560713228023405539595588756538583130121054410063687387431506052548169690603176561106515822924003592641395623378792234598859936567457240531993374437932068233718895441610436349886013740078574970579496945272470692934369965952182138160873391537026360170006413787193259732509189921691895972706919842754819880494442270245020759225085574960808604732871412278768048151607673692834425223219790108141775723948568079710692172826709043875630524117577239533593978727916866648799639339785153236881233567916169631830332514671600095591369870659345197670625509136835672868520878848338123348593590975282848451321816255460235647278190977367617122454345930659095140090897687598690922515068481864162642481592385244684050761646172247405846153949263622724369980834110134145603035100221894162640465554653829435197146318084197778796338908614488580596156514318020840858356458455496765119858029940584185025463071192348181181994418751731890051943775262798768475306386838293607508621885383489826153020182956507758329543940485697020072202408628378146677014181294751476322413815280613830022941005471578790840280546194203067670797441016680067771875984745292046062344332649577852134475608074015904209864867812755294327105707452758015219235755490663169605238134540829226337676894413249669027019004460020909849331045001505807506669926376609591326839074491248743560893942778557734116890479848307794596623153419297640589089245084385571109379353833182992645592769106076333036762327883293120384412397784040617418595972662225657733458739120404043792434526014938055249001479909883690278004709034163496983891418625729448418961306140690336450771432274328353705905590636372351931975981866766063681730670469707608905902453659566981125341324789061346493321575708599692082799270929161408560262051393804437607448995720998906870779871954767837212719205133142704423867173528111293218995475601788128020485683384765606452634126869825524627082503255940290624011896495369556659971025462148737387705545073376896931958655125262298957969036533645876492050378815245613982120232097025126813068958043764164668120568552039038570876454966912504460630303425628330810856384905714030268466879978999341957029371749778458305936458272768666892584341711662127579643885422844418301075781217852611237675187573181663910998704312203814217125002146585110814910546725775558793100017050617257962395977790546505901918002697275536881438463547278241585101922323637500110069643732073743228632295883231064081894152897181277483261071827379979015074737359479270531110066475908409653237768449515504557264543376732465537098085023771795967355683744861119596689310766535755111502897306677856254465666563718207444633900253938615355379284050028911864537048499153626823236357608110601096669093805493517696321726569816696213380545598687796399982583895719440641475698085866076562392862936805425589705152774920132507517092184063771596952533238197108753179750259338084949049588963384555942373960567478711480684489841244373519228304198318114568423193172235298014696236122894562348856098669445444512083767822976205750933322551605478074819631141118635225524241782586573750966321020576962793176308981006391443922221120759888059703938972420269422632847564833485047403536050644475385144666687938965636373244416669928923227458231851832641089485596393935911516240374604878777472824564408450696942929218170879580197617447604280179337065728678054925644094858797945341329697506321946842313014690731121484621720871887320443690129790411106980655626826393395743683872181584452784602594454130395710558664761342501456591410933632921116851669885606369534109939117591989663195288365052778992541916218141851005392943509272363599967716191605785323125611676164813379473174042786427054724959249787686651736912265887051174504234584629803288680286357113010329455806296661320034068578554500708535734654879853106704788695861135060772189970344381710685411861695774824564497710743348458871012805550182057655096751869653166459837941615714477231310169699339739355154640538804138286222101235511943320945314982394841194228920163513350764331375197079513958066204925560513452641772597120003287997163282400426500536339844466664081207837060147505310889825151308016203850154025543168603874851563498555941243454838930131892941653461800785866517739478712217736270487643765110448118132911958679513761564968575268314413242880428554100363435761358061442615470995489933485703460396890576452002664528663939928134300149480248218614198772002284820011476195685829017513370550306493363815492897656264935561435781513865403126489527651839408403889058337050375842691848960617993493064997147285391970854666131565615799609072285678315044996973322167342714616293245704847042357569949050195815168401005137738149202666189903173415570102798181775703855879856833313517973230211432895164178115204718287646071141478744871318286296396919770899144515709318494243653189656219599633224403055880507428201300061703726523501335031064333789212257465973057725003975203032149818878287257072859825503285228794276206144762039494255562117303812261180128433698226184638715514250502904293874930141903559140602435277377810605527643117311982085098153804028599911374940401809838311622329677709923842838764250065475036698728619415595987263009522429825917673344620137656565447618955283880507174511605166616942074302286940956173428634451601985096572269329294209381792134609810067227898897351999876516660770066377383458811124912814721577493876241693348775693990781006680628519816725772325085191624721550197607345508791993050636528137464814371590652722702409695793204370981351995722125680070300868827499278353282529700258248108491206377241109060622554910345088024875952965722976125723845113825963939240178284843531967980786414599928628737345827850872650026212751107036986247851088287126405573278389449141344152822632824204426834449206092167757114325409475408687312992167755986198174251068695010688272602201844306152174780372511189019428846501656619138842197004851070619679345376396611293207272111427040242734442195907058457279922468272046335843845820372983102545214548507630091019601564317985504834744056989889410610317601987327686713117763176149976875509632239717784491492582804733076754453192105607956751502423519249630854702773952244342161007186199477066038920509804581391597571489265057232853601846939794500702652075404645890667349324691088799275811173183919612205393224750258738425162118252238025418211257397046673754544111438148930150092517000416870611392002627536722280673455495842838697751003446749826761134257638091266349556428287132658338070426680621542473764995160546687502924903978116310282112879340723469868753746665683333307841061305275160500365036001753202604372021858828469743048393378677874437903640385110963071655435295384093929845314186620122320498023612381895934932127950177489814386695410770324190774130547315789466610265689356272062363091389264236743843783172896911748344390214718672792047925036719290901548032803503529168666009297697401385551256151499612594710334159437329949879695996860273676377719322174499063232123648481060795808734421635633673821151511017899114576488869370565336588942539885803286449184401256685008370462708295995295188039985939409390992271254831898682909877327990500253186626629559208473158770306285061411181458171220098063938609369986199171689160890716079002281748320773957541451922369983119438642628292493421756102706564405800775903506764535692804604414707570683517873019977400266581572924546157509632617737319361728277954116538185578112267057146590822021317130956259534624782872114851775831868379459626693979719534631043278280812713985982097093888633944866731615850048171321038063862372646103379024950254436840174141288867726411631130890272341286374882592048768139837350492302606360050181499864089290405198495001998636281869824153143135499881885719989637454546552026681899612582721334149771931137219081855488827700105859987343619355945372159701131356278336666741809447786679873316192254468156403390764436012254425664937777104222746295709781996093937471813601632633492662437940979697976040649195442662658166479867104871962974245976195230890246695747727872393864657823938585085318138362523398174247329780288730960786099566913809071381885144984714934985461040806719215399887206657634803151855318873915871632056287316050015343038686841147069121945398740057079303649200540318879843392661566864420670869135064092421392538842054838699640300100141551701892900875739153646057741992511702767115166845232748786310859371239360522407491675863177717301529911871973113356016388963252932209742471155660559981872521015614628790006308721721704839391980769118633143826869544624328163662151761445960693588150975869214798890700983039926078875868350270344351878264321005505090406131683593499192900957569007531871113117735001664791479009818818901363586569505660750076834651145846383675087467410990716754329177096155000461067528296814021402783180682849688026196866028225710710907130830927368921429060431151465691806998273772390582715158067812844993986416981104890028522507047966422341199547589037072997825883107611453356462220633646883675551040126021561390853247670167606844087806582681525389266601524527357030486119584758162808322452558433698376936283670634899218046512912168549607300889295068640429996409039414802770393776655886611221084490021471861110572622237302254364416603479937960415668558896612026237920112156666916646773385615881527097867930467240110303658325892185344024321088851459497413336176017255896336449002008618731354679268514907352853380465550717588194576020291117431061184646012866596954468959429700836786881003691660238959934840867786565310074119340156311621492038775292688989991689669134821985103417165564529069468032244355088488622404789835324474137658001189265174836784538695151142796287591657887602136410477526707047764484275963115290867021219867421322948119109993869185709185520028021280580650061306561338545664646130428735439865052162897208065386158599180712989933789876724336265787763972596249295030076608652019604112230299590671124230677743975138354295928562881529693236266437491124743975133756966897203349159696564287510424371055766159020512836069407627326847785868284928632563465325143393993991162388209272725132952033209560793195277348560686340562481698768691268062180566246879406268026769983644803501820978713200095618066446846008907095438960034794834281178111965869472621837803167136959449483687414254100929464722065295060967378364802500527683092392989174222088863136631988891763785052981235028862143487361104633246670116927443357126137457510135332643080227073470557046765087671426837644722037441641973997882461388224885054278608204925374016640113339249837656882586454703331060560212629189263645185864909410039097877888163708129784937305028943551668236829667982858769683864256888851350999716910718421575022968188374639947282359759498422254444069549757399270943302075877182615943462185690256916268400828030913373815288869171778665399011791015167882031880193289374532982655595717297771128688354056673700580449958938869298883535036723098925344994728723497824737865148786227927854489187567423323195895970052075112313286681382278646324459975070272315941889767561039631637166747349175133150113317780138442145237450039679894753376589767021086444124690905895345839616067904684833863090012659400013153145815383702399680731379652977390281297386591268136523064552803174739667867087214843425313369001766079215519638504919511497601233007515211509210026921747792178285380440498924785498818052769556467385393150961429365936011079425357053071933713165168183181184695764756783352553318248699160934292581657875495533188087740914881979599623162193548302049698559109270598741675865793029402713466094075320704067756481897628202873653157746105619432877790828574766076018296099342006535366373231252140599902467996733756784959745539102085384243489487796622469350770946133244714686401410552165729143940532153640442171599331993570760044008225772088763201890148309681013628834553749040488292431568378102635363956391768185772453405560141270289641862201863153985974604045726496812595084452249481884117102181161328483565810179851284129802175888180529099042377291749281005398233646917729315042090854975256734183887508517717034956779725989916676637424164271766284683740744485746081439275636025271345732916760398618954123525952846430393957860983776651801997739520220172880501634692425743155718206949262741109278515676109909942320637328283443360961546930162091006961488788518791535100897919570587610158643667815254814976675027915519135601068577894695932691687576977533834810519423245958338166745443810441958626515306643563753227598685226604417546371165830337258746152621340801102828070560377386382881769202327448076513396727383806428280187519486005182454064397284913833735282052652518635209909083807951569279752442718106687633423413657536473905206359917593679787507648421059427817530300216505762814504946253824542769087317783370846231267122659523002131124099741637190892985508916089412499600023493782532983735226093166406928494045141891600611676854015669369239662462895721911057061820041835149843845949292711893357881681788494018109468455249143342393911454887925383053404602477456937204375798004487102870385157389367189577052932246764186992696880931518523195544024563807502702542755029254952735367522817207076883688281066003762477625683408350702202231439614829195386958541580060270935242334721121903776856365890761262282202761658132516029146063511738116972356312339144963215849550475219220614750825095611019827796208059067182399287028923762508283556057648778705695518626888890757104507446186150844133430487368977536395417523991790301113537176899101103352037010280831989459757466987166457783762583150270522047478228886925100474150110819309039575254014977117759833221415517762212308714817574618649801600685029948041998132365797078097781308452889219672546381139358060708581629515689980172064992749713043491258696989074336657759667688815748748134440159765418294510483346477658577945950097559454175135164557234162968683308452039799662475309436824472222606927735561160906341247034418940306841098025493442285339281787470721421718783655029793428913924334178942351648782921986775048986580942323913647648794629097379293376789392115757161290035105268546054146612177880896806696371883806226378512231000991175276493562840398935777568636454904093513439528164293557330831368286020676739346040518914165469440497111817275719295131485765830417099549764497869345392842421239469631826418766036999299125474595237816091920357855190603265606471789660684882113948620360242158180532935880171773621441441186386123989957300635703159047200043999964733698708035619588401986964592520992135286513973987266468804359717287536930224875666867699389818430689610640898986341983626658150886518583411230540829892919138891875950785222775303335374146284532053148405969942915659900249878562561682081623786885420206574725453856654339050102500000899572862657697397973305449232841280044247527749289206924720580103172688717826291651716556068150875979158460999836584103339251872769790310695939505731395915984993450611415194330087638531176907859000925417470141505895774703407375915249578431845777559734223315039761970694233595981826768272483250645353067061441073127108492574741514995000986822538535775984249590332169555376209923484048783723277772485530467464820708839404083417865854563130466671413718198713494345012772493740043343184983720686756824201030103230689509666074061691216760857413865953035405050772149101529218133210303502884460633440279570410962562200629231974032093887338462245925418008610488720420556159260286246045723996496297120915008191511998048327339051471335291298487698400193767241129067261524127637767068715195117296729303659758215714308268816772338933404252765769695768036568175003416061545779481158161352639724864768829864296857857547692046155382792417651427798507762959032154649250470479649711009630768038298810567980079094796718386464228929919670413377840831100809915715529639141679884525886596297579607990378475180141129183557507954617690518105098958014384962195793706012970978093968277482378749936296099730736945280588269434272793217969540162469880695957878495476780605305306086340635351139691240827288071761928407732242598947962892680992074351933052697309801764255094474185006410751184222157897600981728613113090757851159241731749579086173023408888309221170822653156629024730936335046797940793599461439718713463302286074954764171160730955366344848468754166426547039210357056937047132984655706807043125651307875345241798066619886686806064968381850368131413659039350393115281974698975806528283771712547455994724058569782983948616817437068945803347579185782030061184902068730163543642589879547130183721908754374699801505346357359677219679058929934458162796266016818449226928250206856629993410997967870852298547075858711967850113472570780013087223013204244612617372623827644647705133616597517540141232165151156668531731095023119470827131181833743578678485216369889877777499999363237445146205088467862662597300135017321928781993542111512887085581954770099172742152530154488671424376754409098736759236788442185107246421287162316456318420404045531874376834777626426396071634317032161854018692219222639527600138129853206300494081805166093010055992230006430445995209579756791194246030730149136956207322561418246703843527806830205050088610525258027211046667140829760186354947608548701441491147107769076748917104127942826724337766321818953194536823441874875218759385068245183900431676749908275328225881282787057014128531243006102279055467950722042335725267883087383295832244627564159297254720353811733770593093301420829832397296044103396782604615851482155434720819061905442436174296418026386776097586067599094954917487832786069018541615026087680013946005489126212474177707876734551355418183368360247684622123468958049541148982880246311116899276035427502018545891289726047390796675113047704878187993392887966990855332654928669363426730205871325391598276305661820464433786617283932180798974462142801541910582630788699646228871326746844933248079852234824933251696756350162160607099492043825735780078244954902110852170892331819347546908796024977439554967400540840059110031048278402372437964760471628288307119590226567729517615002461021494761313973157831218706471486076004473402282815753214045716699941984491038884391764995533798673103324831921189206059825009482829238807761848451365142886603239282121688857576213694873131217592765669013502959242993078224000453533295963185221283330134438010363130315981378399272044733301284697182879326026102336341552457443449397572722372217473301836596696959899521205638803845671205659532236002302252536840984826323486725314677718052687801877944931615861567219355757553204165597082501194586397099498082863900112578068580585407681833856103891294691866222669600219881310410462935034251717212005509955452837014705517983156443065055067010704691949291217771909549188835014335730149363679309214353366735710025749994601194725807596249487772278228907812706258228628567726983458634104215257067513523519026058595059146386728782158169005265770736313085873238998200642520213043279542325070112150811218632636820695877538331827397213290501637705003699913787883977009294951297517765856504984899693133761607618401429960048001660081183810319086795122549653299733522675359563151467866297147609283907119822498304282710559809909655812832029706542165290019377452755761755123111044356798803473489489149066061618921825471308388831481972302776993460967879294023581093705033826591808120650401870319121310366816397582812038321032735199650564467779995754627323238109530363828307095834967395636780046634023546224047738177742664258563000158329681921074471858038786181392842762737277357278148983630273394086988430415911223243496827430666678910421639964663213313202328843056692060872565351422310951131136624982854772941150698438559108517710023422193378657136475423293283586465591918247728847576568938150951468331579781693141912575519368625556829896655174076405613777146464656709045209678836378275153828686444095861479047659666473211554587367489160320129576852218764162613549281811526320482549214450485978697999427635619080487369197203040213157896299301357292623031866209019633671100153392802659749509555763731688456052282479463918275054703653560614842654540000651652622079864738192136702791918321026271832935365450597039672516305840594810696366068202867537423092084855515208883126399847980130547888189379341077368309492372192777817351463884046715294949172032452209734690252840509465048492595074966513470885044316067841607736003004194756259141762151624744675388169210604719884062064222138947576871664589654374097852357998334524454992855468616103594540563106466720408326298345447923081961682610451915039220193683319530070360473088872955432564599509981649019012089267992766892252811414086470782968162038449043478339370093594187447170497510003961567789280314895591629528893820244769545916231159030330549439772039763143111183588239194217711392623779649672681534761095132654342021815343922183649532273633833075668312760666094769997127649551135149278269234288757575613812990030501022201441301777778553322392438748993378602362424650697378361938287941383577742910050099130651020298881465531851545684858189596441003491576754587263755592654087458366831084233285826842617878267847043640282016313526438825853075880043738435176337130861163505212334794553464374336563380874522460748409910273628729153191331520052496511312303742434449756322180235516664085936801689659744204137961783965113361622855788442195181249647020310075747418230046511247665848862661090070806992043150719619264498757659578308770491454811775605504480762421499151950223558813244745311481873484691508100911891899359764278908907371825052385889645350217877661341398975623071737260525841379142319367996743481062458660761913383097755666004470598738835024721218383853396409124877614830437075493150423327851139812112051463918853977829293177957914870593454277906755081797511063214549808358181508244989715742583739403038402012034758457105640212483007556219919385153035827551602447330638291329753742739089949308275202315786831696243338553770930770212816803601141633404337307326701312542252835177800957705797285914481101023519496662798043699486560222285573995156275156482353776528234520009988931495435860529550466925990571470853596582686910269374250537945638480090450802848753018612882670487654516415589573177702693129938104263513518298949098673390944046311633070035881581873488012437425729636129475920360497177971434595089486744736650557768548503485872984619223942166362715939752214567963603805172647790970359973457320003378196371034250648852829750829962697360356594391863029519241482698178266460362357916267514069895827171630732333053778394269418747260474464955482854527848705669233390134105366687878391162325502670052357920829827701706815237817312028150505781564244554432740938309613228947664125597477352798325487520688140645768810312283087175355545324671519764467285282030199038041220124135359262335947832969166433523359296674034403569012362451298354761323742489623167137970179265641215905627691767572247640022515994836980276022668991969670760936733576248390152871477288075521089692109696405677123382544786019955273966630088935144651185668924851361122389476604213538102600830590991063666751370976864154687284760621963865963406800213187918472705108356410255121418343142270977509584551954407260507348324986949316917712210904718604691761437634221935456785062994909530860528975326161085766779250502795668801724382060135724595098702425269711055038417850866034275273743274863173869891358265029167709591065708644141266434858790202233121550071947086500288750254942700443175586939569275943081441760524160676931203509566334473161374160010873471897888638167253113950076965947354290427274367744703106679177007920723632856211232325127397007274850783774306885890764590524610452044877020923571918772851542210423204140096976479023055294039490841429311729476874542168366105758051703943000672317453327327134707698803148305261803744962769161505881616182897611253427596629515018119441177297411168089616124069397635322412738335502858598326410473279768847582331118068265274890890683499922830973780698221032349065742159445112054601988781809128785547663287233870722964828079826227459787240588676603736790497664858904426674674233907008741222020757754466676240236202611026678624049191012498702798264229102887798654384451408957365640014388376221464857836038557695288811674559364196630904378985830819382225047468604840431711640727553865446990821804066478054309483761127202185111001159289865083654820722084595322837649566504613047186368277378242676554736303791236508067336842352172002895898132724216780380367661678435987598867238665992254751596742924814582941958766616865084042619791430343236906106894201832035753737269997103501875316459658473260249703460810418061452690419010037618015979039178696238668304041980126789363899902856243455692170297568765997234705738212774532319973400465079643280663019895140868766570459937694059756429211508435341323703301719177786653019571406411293696195678996983654048957232248843477804464696687989558392537112987143010366794220634116566134746206409830688568379938730027486373342782810178619547494659638349712183647044920188044470657177197235824468977531490517756735316168047888299021177576119646475655998684982195934403546657624312670191690636346130022213426347481267090122324405199706459937024206080363392720522011074555331058560395320684781414071782215773586727667773641407447655087112583407929554644649817546171478885880439265219994394898959512035132352206237041903226508905831698424036064693709804043958856198328172256276121129629859708168282053532214156411364361264931222638638209405876981070068049126668788866332549705875830677231789848370977615706680893518149736713058418325211447836515179296855289326745805309383448078937147491308611968022254310574241672975239832170557400757067049845351770880667856817690455049635559357988502934080567331980788020666989011395054810645353415637790953095480051606682384701061720175312405369041672345413191630970016879951233377306645385209772821429671792158664847311128049572587924813576931638539155820945757930512601955365210865707480932279961739083177145242611556617447428409406098147013859296035994563668000566230816917950543414589064049893866638606367237880978701056003398898867601727086629036908638105220650420743677517183225723492807723784741478447655133324487903949625410208027478785839523246146830632699597279239453963223742344468604576506165047109156874299848324090423306501431182891979704498928841534287606875992924143143084782199625472137856244283869679818741496337140114873269549086853849290591941184345842700764454316107542285575245214337091521528844955577551375070726699341020314120444533453713325890392741814460879882479482469927895732935769547222300721362790363943693206102287306812732625824848040209349172076448143325539754673899717505750028677032960847941029133795130365794724444657202133868995190838815257971710533845479041630815038517854674156142880065038180003999963351167016708053495563735331986723806204325057273903688899419343162633601006582215224351955910272084842274377778539899322265494518012785182716378579710317603570474338065688552052528755305181355559503684228761560798511453875018865980610838349793540867722922150862215699792960471374991728015577150260885095356394490607484983671558237781375245587157689920728825355179023478350786231777908442442112357320530535258229511853565396717991681290911535575164555058556253955499484736590055689269711573197362326372428686745891093165567261262935698639300040603603280329606553203607926080852230819073033557848947040733526800387938326632450244479867445171698445025829083979845432838103894069012158139409278866319385897082904893696837647321242130662674500722311018212507902251265676974841677908934647425155232187604995519570766025450359421090690333263717913841600935446510510996706544803697107762985879969246345638441424947193204154627182976318185848121875985533545184246306556925973435112081430618515348854600205773724876687053847043853115219574376777757325516950321911984162987160313924523734670333916046314538633432520534462054161822014993180818805041766811829276651190229382860368726657963537268752960993818661372071819894938711943692921601023703507575555111987517035124775622920432252455233057423076013165379195146049525637496444123303022178822315540725300420038544843545679838188582723234029804041285565422685714966416663815204625470643576298099457475241637766099012458635899323773481035519721053818592259172455990629746290662006128498958670339241720950016986126867943545660161325955178940409763432120517076013979013438244849602766716250058088786111191483741536129397388585621066808403818861306505144760720424977554990509034700144682035362087121797384009416692792746950511180207095108909555693221219119852652880200862058783966186098046057965738778483855089314094796552395123608743898779455233140920101852903029702613928119898671069092363797178755470909459972921904848634415488291133983774879721876179084111144060077243263402206974662169950380751035227781174080192915466637468346496765609157962291988439288724830565232592268659823004563960464661884627827644105385500929269127882230379669466648808109462240725386720765724936827235982280123543029607617782239454767780074331089435983064199426381817229641978874965237988345044011998269576389922489431560320759605909913341233427262302368754232235056649664746360730283600702119689812339441629388674308360822662979354430081579625260210387161779708634215097950772032531611608048601157119591973027212229827070381456002387397772370980665061855381145049956239661167313896263283400747713287909197460189393454281202166653281942584957620598279624133497310127481328173348350784429324115978360029702833672840801914301827378239480126468996027545665519303141056466927566864057087344753936841998925330486392085103442467709305118361646630378052660259459837611219647732208417327611744544630217901302825315366719457551494295905464468482683516003487335375509077631542692835259867992496806844271325685682678638295526395329521454264591719036814304058746092580021659192481670826228125569372665334368662051986402974704416720385136860583256405970118841281045029203025484152341670704758303901905248354978784023554902695399806664903456111764305391331310954648130445668893285826818428022119662435713105532554633656141256099290834916810822421377535593678174618948326060475526693653124572776373823990557783138948426772176388801216699720505999264979603537057790335066406508440519024787846428180906536699720989158389051382066254553072401827773633354109718894262549289580408297731318519029209570522107760752359547137051056912579643743030681576117341812627096874644608632868423957462526677315532934521161434209319686140463963007299993106338893535354939946979682480377575992937143953231290449952061273167368578436489077765607051978093601280441775167216961527041964141382170299252070359302741510563440724086731220545479828666702258889542744364710898597802120575903879748116053511868824155564594261723323004632840247659501543618355077631931367967363116582953197409997837396714017030552517893075813967946454913462726236825334356285673884949585937594007575499482695569699199019153760129303951263468681998246507288660773199603689855366469647568250259264466927189498421904081500920321398931821642637332733640581034202348365534044229627319354444358408363504791579852980021161306150183602629225953771842000110533100896816677534340241214660905874160894684215629802871720833836313529769421167204547020793372117436632979313116898328798391306072791355246577168863254036106964545121759175096637935996871231097998655912113718504795501311315082764414133441581679051923706079405474256567905169832082350076563855373696222625371231332661260257123024982079699617939732285623441523545459406377600944046817697961035508936149768017847512130776233083482498355547913526930842628065946787685392816924185040777062159781461698256741608394815030119870573298545526652196490715259186901416390344111194595544377882549735481813323959072257443352071044217999568246680383340177279180272387214215350835474646583983576838637270086416755598016488529187338416076465834191798957640844828093224237032841357662941079861416234300395907898282843985549160250433569801373344608268040771624012164187153255495387811491639465136069176412247089049431041812209522030706333739721774937862790509920983221505244039006119945935496125225556788317073433357211655430351011847371736867348321607280092666382138015306837823788474054095241085572232958300169450374443459779430132436152328364207335757000060193938335343553322736402863720527687204908644047250080096706933465002151437807431321657390715003830408573616301570536283998852095712135603775355259718128596502924288176724934131311809003838742997235247577933226706283173835797521727734366825107887655293915276630543465957649011849029601725324234461111240419610426868981941147115551270940329510042670486058736336931161501393175621166020487238424280689607471060769737944245414357526876107003142583150365376007209577484301640196656223187813222314891223148763302591082584614529630836644930206974863295705378985166189688973820418026643191992673861048477060309053088106748056602456373718174897084041733472974995639583331431295842759007864162033787383502403818542116326343954547000769938861337402755864425860960752684935344608365501118997106871747702569804805435572443650700020752041088056744928687721916712628562610093682592927382219945956523234619108273796526368825489138173231881753384056449511921531759884798925566171593436044019485417871267931536684767333034641903315384958451668794177297308971929736924720354349328241896424369045226686266183385079822098212114065579804008636331434377212765674889170439534546054687249370177275099054388021204110123713930241837939872440500900690888994558053642542946447162427889198557418939309629588308120503727534632774799001241273386989453077045741842977575158337027424150905606090361641906092705836160743004723746553825872884569405221693600467196780505437786771374319076128785382901012706296186714083362651078385184328324294702681722241681201865756113038085881366339987129152099837219989357624621900226640446050599528732325930390590550221367098943549894821927659413528197352892143679285298898365668005319968967838758762011457916626210250237673601301872502228629785459015515795651335406138181584098177303511015817549570971880171619304375129221581695194621559768153807121126166530474583693952278150160860024370627302559119717814640799300436513125864210626421406395871306150664645164174519515147898992204351604171261681257363018037606440458576664766053360929089331887259712743046625883767592344103972875182318950836458297472508529125271617602321567849167895184771110892486721273194337573816508385189258127545976588028586870122538210023140641274737180210242923295601154754036576401595127396608421372457717972669879469636592969580021313094366903762805594614818963615571979562480897111162573239422391835237737636889605090876922707530947901980900024467490520833836849899997257897604716619092985975244397163275000575538636949630052540350646481251486750401107063490025823227716491622822914304213035364270193733411772363899015505575778520523411492446034829195218920351244777524515791859335469772209368046314431833911015442652321854732500095418638895335153118347729713609604968336497607762188071602065810379899796107968557756047340432195317640901561171177032033543568909737653397342360874540637894633179012659567295423179407848702191619416268760429105050983363459203167649590433932885793440697512989550771197151710405459422281118439375603806289982455146213694646786898200894343859768644846515282101314726377381380214699520359111357917759413939723431592685812274842699795168856616424956972220898890497518378219033062037051556386396069410961093481573664860128214544401914383768665673815205523315060925217214550575347538994575818957264029670650791391128945261453894837403330475473614817756639707053953955876042262556120898148170140258514402181189100099595676439149037183509644257053318769524174574761043592326547239080911696683986191340812584633174147736640247322654447311915128111311832661953963731891118452542866724084943950279336895427192888182837369954265936872657953483749628939866274613836248516249012936681083762076185481907169588560388234743124613462565513268534832094878560760391940208874304793730883312690291161744640565537481030967777482264929454601845311496322247834589439171328815123391410070153576279127322764609687508599827209487844947002743205975279579284585203739678671450527898543973287206696043099431698469516721588225308304230477470465892389398629949323071066302648549509912137720544226810245727552706309416990092481413389906063863480484171297031153349232628649667626279468726936963979936764106668642921307846091843932836562771448693821709266474318320104698639103559390722947230002459349133325009280621535996723453576756156379797872023154300476167587202528767175400492899612904082556959240985161513115194822356579469486282371035780192228639690381706452302205688256793265839696628245941592446139843895608740604136611247610952799231693564674042652428553076494070320840403754589306070990114551351012598799235543541566651951302531229672127396004631453999996126862912484585698341219580753954072661600266047859958225896058568112620042520524979005404018797366840193547157146012499008631014123688438619854679767430204238606923328213662959304100051009846090180012530927717284101343747680898283545237311785771158820936056021119569665891124276437228852450675161571083789730984803716637063230136712367403494827303209822710495085676824637368254102617561399044103990490077994543802181103451691089288904647077460892756508326819382221727648740808986716513102898177868608300378124985090524530316930219241525569277645390761886889892755957357982949119678264728762708276786455704627859466785321747197732937984702219978253058402643158440527366573321070586510996054541734530587330003153400550722643104490315453384064532031228661505639897271158529706346495563727745573760333486495568176078034607004667853797625060513682583230301579579041387568608092291204930551766403965297247856322156724649270955810970991386044635938973928988590733648238674525281207863916685304378129261139466256193405806296132187243918379503809020834809145948125423580890614954361243475340316734501465465982662025080761535690855687202583213655059587626678610602917257147174418697409338866841282254422711275516930439113868332105661896670829701392408855784698045841243679961651480987034660824426960691233395523675411842986144442120347062504067807113517822401411820804227831162975161198572198056457927210187164347515756345636732499703510552835123721892849251566020571742931316795283849767303329578814026556773296122035659893109273108023679574584905888980474097586629582566722592533669437045401678859101215644949115891930871118692069506306544647804399177909142746967068249003819936032138708510410582438697287835372876506304310553700487680440184441429886778940781594424332735031828298269845562238040779485060432183835474670752182972067810476624335823533891559968164156875900869581532426976772771725382940023777267959204096994195651336239218892998073993709393408936110130389801251689331646260913284457759336688862871060891902368242536087441489723833853174592536799627621357337483401652765152028839491155408698435257159847703803397899916036895522464845433455722866167441568814677412681117013249291905152894870627062386017037213522746329674227998389582109320061119068768529811808817544600481663388786424399529221434994599979594281853435019491669026143944423197957055606966324603406075135167071322674787676075490270462938757725267165827267614914016204270267746963908508558216472920546676703831700538965726971313912369690253354475306103314772002453943669466846372205035854848882654856335020364406633369840907903948582231282486413688433122400973973677368822780262286885805213177407370428701017950860129655739162340948498350367624943188766569415843066466281458287884867151859995727472303399756651014683177174306801562349297577719593011240735576167868566940672808077840478883600145226217263511141081390809512097240300160851723178738008113289032649180258889970120647932199927299967895385784863559455437937854451678749832347270578018599459083543179810498458421426866517845930700483458013125483278591327514975463293394178198776354288230602620598526105638446471439906703927301305307572072395947947224372984876886449250489064546383895818526758079161842695680586333758818489665408352105562641988264694570431474634519269464298413031250906572632074453774303594095275309864602040627655607012015425284640201866414007496591317696192192705966592524938746318503281584034345189911493916906496142738755509236648951138081527304958411723384770072700746427818569658625756305525549263645352752648322881834749550054034433262624456284442067570816833257082005867117262767466736869931002311523376055889854457530494319423620658980747878000707819743004743886744529746084619144258727104040879847267785323031659996579848998191808532599721917280355103883368019425994232414949461910418873625536665872187317574328727491311756223170779199926628326209965047920710977467811614453976033169002612536281369026595189169984757416677455948829360485971220608521995918192044105721907326798756396515819423396496825026141560900763447942951185521473331675168780309724772607430294231483113125612102174117345271357862449046178300077702744280910068177183349860812994592875069120952755740118336071355421972117477314858699325478582323320168184261927641809688255661975336877499464869059770041911962867103546916612135392314565960213114726357207846735264732669296218250607961317198307251540776910457236466368543600543578125769875572156582820425397466575831885264504915455364832086928232924644137744014127577578320487105186890370376693775556469121987850213508717604941262669854564061031397310869725224278546378094913093044598412407614524599346656021129081794019130722173217070846842520720850481553091060742650317058962424449179865925510026216694193001823403849983158835822775933681516248649253462485506632202410625531609978675213176275193151041288575073757133439179480648066727318460099682456638514930300358943926410687437753137120456785101116872763609556876726387523742044748597535962082418688088720822560212210814305140070211751431073253745770386780542648212910982356457438342068250622801241338883373201383401833986266861024546546777536197186722137283744992264044821958498694274914919864904934900032466290776264411592756752665241818045171955241530911299107849138787814066082045596486052886969785737889223675422688361657023047073366425774346716388826366637133443630519893056883434831503070408875420740570111460725190253716307933990828826998037911884805043305265777536714196101650222317726671129935494245936372766241279978039489126069091410817830770466805714799582007708754493992801348303188246656064924218702284022633293801554489181506350886479782009834625637900784194032354243436807618864616560905923250246037465505426784654553836502797679931738275534429971246381226397087600472294175888711076134625200667034938301802316185807438309110075569683785584759926252560327269998728407231184822286321443962816464060821272832929535364386604794448496679947638243331985927555698806797309762634642249166697046825089148708868507705109012918934455798146700592489157046669465809792249339592469441670392776634645937204339794124467328655021812772781575644964139800434272452876623961398160776870897735873257039725064668288827991523069525243638404593716161073326452884883901458830955818755057667023022866105252439530942289599689820850447098251706332441379309972260237540956840649407997355185019139147014800509775861927904092605294787811667482167967903011755720235843404310815947869519855825376673221289818680446011510608976379293185302155681800450536020479014560491716123789689021617361118908578449893199262257547549142398002685423038091273922378189079597161783603714890743304599627531558150225042683387759149871676777500819147879273474901168926771366003137743942326565712808805969356112409581531826600709107627634119957429553309275934611780039093608973647200666819625980952352581718207035261199609704625134683508503883804173396014532693936961672348746866833649694067407375905897795336956766584732748997353815628734517246951056166672469861453585026218337183933306955545767988592796004435315444340591168047420465010768822926077889702468906929313192888029463763378227040331980899400686708735417147488700296166452861247146535869291806613385358384249163664477445486702267690091565554873021823673889116258598670227854165023282720964250671864498232314237484146343312255181074214928122376632874534669441792033923193286113129387229980971930129489865752543638180881940022430448907262240395156231322152000760367424420649174126986121679105496195097212302267226724285156835324788766246408119312648786007150529480814602109676680945783411696181561114934675350179696655744713368772674966301142160789039288887662867442872166419611286272406182084781441536496203457477352513800326721604974149871966429577841474201019390846613540341443365921520400865013396021862433439830927657652432313743944338118896514381708675729198904116811632446457256836453892647196132788147257277757279464872781136717994992840496342966567706579867416440222619487619669320150996867094041581927636347338349810848004374477696744746272357679930415452994522516705933148354130097267655437423696551663069375659671411570650687311809507028204731660889782065465926456088870027249124108258948668955200397260155529629842935100761849306545291417937608093850511882059303594689912598110263201852115008906240927371685409899624003888010310804970532076687303345932276217070453592493527417336744027760792323887894245581367028015242872255482310649227219640345669963005646503264056610056907216230353683965040169941231013453990445709176047872234517224379792727967976870069562029266680200374944630892822921051891329590043458916412868694080839137994434123270787840189950852892020911880768228247909761278310672610542376380911145902613005610937880533558180491402820664945854982175100460029756426577834612298539231923616648948587247937236004630445854903655205258940160612404065146846326622491097412743908854320927952304124219447468930669793022585885170812324870018969993255556153551682402616516563875559317505836508486053802725252625343738099098947102203696155061314189998280337764132218088476607985322408973784729863941399228827707836711546813395888591088643886141859773468754908097672560719522885973793169361479087221932810004043305384161092294939616461524674402343863765695615896274192175181974814874118864162437224035214436779993404386315154297380742316149316214231955587086102350633801703667635089019205561649579221998960191846061168921601235401972117524059993362709108718312381144353476874807351473853291360747466548915371438122817413765437106161549863163396812519999275382576480987659385222439147384025203918362458607292236249505832512036096145288387438379025783612438585319014405899188909283195426392326286068615470164202425321366708903746137460163219831465254864110910605606412527235728823874386471985125218870836243012836604123324533610582570828889920891818072853921899890124776637002732249061748796834341153048908764386141053504769288989911897080025677767334794176153757879234698569992787974031049017480347997959945495655203444993043074937452485616458088958597648391770696156021793212559877227404067212511523420876481064558135621240569035055069051783937472400533713842817775549865363882666149903009749859517887904895616451630163383618233098608562851584763791408692496461070881584990156422108253955193344664158666271205363048509617634086375365817468678992886431285135439994570743337430851764188861823696185811338665606580863692129890726598067966539044608310771760409350283055888860461469668602532383504592605472187429293639908740899582013018847254231447753946036421284234738586927714081558564162727084835223179524964344218470472170454763731035381652554886870371628119299729648980212532011817854518661618514788335980591392523464246871789281900221829373331535846702172603508256421924430744658145862114536512715824404029165057091699319578212383682026925383270442195842941092419804336994578827832120777281568561802018926800739133822733927282665024230390942267875523647798677150937938850724562932194123958440892300050106015421414795736269617261493053928663762078141748810358392158872115873385613159861784655340826952333279362135171985303605168270341763166447686879880380670960647187011816583542257462065280020426880494637122921084934583246447150046838536629398977380304605068453500480707841391834896719675478748982287453919896011943893095177819148239529367193080381461353152479355195985239554967998727577546018007501080938404812756379051418510670669440072993824541014529033459803258066120921225069949591053721999447260674821832598000549795848489281942344194837385561890109401097387909407933373435153038139656676625929845934602591650272604322470428458711805072173617290908918275162357781336054794111852199239493165640913978112184458600648737442972522590848060010340259767456739522790558013554456646791449324928198135078305186930478827509374351356434559472628698556749784404503235695532754344055807568562298679226801148647710894225852281714433845296946093919709117519755797241229676183706383274830285600626832526158199030685817730692148996112689616231382402889497249611815865630065578050793622597981734805937276026782961116587368678322099381181383508928851077807578029838610757780850349610733538433981629101876538844353560173390743905407298991969390951568305092174266583121814442589074781875590826447312644910062087551638484596935281720235726102016301333211902162889792311471885825605697697259012330464909962434994128839515814718837353207911058079847586981545467335097308774959194227916958631872957052068362707201632925808102095424352811508919013292475749005794365592177383246842380358150353256003603534387877465706475944606713289656800314820689318847384847995435274653404848521611837614277815713434619750114043366696736081998642916299919823357158460223790983065864356700232322499101162531306857249530581310571001164306797311844671148772742983111498411795381360020181030749514064677811383030295124268739688768966569718704311558979708811288643462390822731000732118110789492319274253834505606799592790682158873261741624208971943527059545763598214387970148160040551721776784782490363547503889860147926382519207134682798777360038379247085628403149855384948516669736752892250159509930592896378723069722895785338830942899226981161137200666884712701330058079623356387402375592835323414767821722541599935998223902414731629409364948628783371303017220350817838091194517187977054781384913205062903944741483512541113843060467799526355268934170120398546089164588176637236562212964985597972943724502099713989459186433104935929729411996134465733834942855267137469313985473701860315275047026200693569011014087626270298890830496055607725614143917049548630120182303886073172435662207785202723420991175864876487884944374490388357266546031838847911646884024045417945446099544861680062232180050727579304079445248596492731277177437296667334222274741957147522310326814363527007400791033881575663435869133215559686968811366925385199142711747477092509734672346023628740798936935501598858248185677845421920304929771048441155197810617952190936452244352401014800673506764570883969574785687652118725511382821430117386853181370560977672155285398179684482857667442127486914746855363709728794704716043436273668023560837014386606912709584901970141669295107303025060605361275265273711059602891821314164691555319906027516590737660053439814330256806487195272069665951419589661317208771177082185544883734090188602288889663845649271339224622800372106872879068987767592380251767743233446639757477337052513236771404981028611964352254808432889053254669133045214785798383714234493732838264316233422696316334454425046950756845973307135833774668858641021012427424194926696722314503338839195238625558996235656854803456369594294765725851039539916238252810280144419864969697847773959086834761696024371702383535565856055224049173105711770813846031266222226639967033202660581785348790944777859042579605061877902965803778360993871647133660211385229428011495985340043783602395337361972096257282999048110454618971007150873062721532596204353299088036943080518898441251631555409571188666453621066058805485615777352104296285497903199923286191411619700550118857149322497186352314342870114078014352169953029386714278263479546583548035579154686289137418993083647880688230559182740982073898179984340158758136801979943896838342419593490120878013770514879895735113637486629738105778787549078157571307002409846290147948041783491546908416563817279005978299480650260798781136141117286669081582130475729034072027381794241833362186747883873357950326108869020822061537322544447816871929734929463433096784106462720497008780072080349966756311221263987233898524793029021221524970007734364938235762334607897774885064048996233623576205887040128335859810034987938295028099006666191543235500456849503757327491289418579682278499913367771638627459591358200799430900331193818632691815167079301591704147708949932128231127760908621337157218930903449845168294113745935172567136532795039907388032063826047406664274649325694732328338656001791390172343661978398415718416538177489041944261602935377391998873388332195870046031781068600809031860304131169489136994799470690262941212183909795224601737886330393588875446512276429683815813884386935003327317915786496413438308912257218427154716746488730438866014795530816905039919542400053686215843901152432322981635558653835203939329822632419220981326913204111583660323180712628565808970125738958377715946929840060065930102667602944678171158468251795940665434964612055111657075704979922485406307705034807720394097209483815111901457945356572201952090221426855231041784518536054199569932533097208188831129124586120881856352757580095332825267825299292059974685388012459309423684325311376588693214090995340531816073410296988477624808111177497239547820494583195828220975723885856742064023118077730059124599879642882674251383920366358186681496433259093204340015017808533633020608737723530811521935621897233337840964364801240665869078875958588894499439559961506298064348030601328462940949864500519294264206937282910214045588907917695892267166879302631378774195633606471826922534206243519970837558259192205903238903170378699905151685800923609227334753534361153820617250328737272992539976227927559778378831935537322504049795096672251232328590096286230392322136201132687052022207609026679186079660427943651212295706413960250543062496714881302560886409557570640997811465588131797553478087933465078875351283704272008856991960265224367137317584115247574054674009864992347485496873626360313588481171655367968893519912454093488764330500028394072631805387336948646653832711339259611748060431165105334005411458601969332378522172680389437115917952442533808768865585349757757212350254316105066561589400306811452411772482218704384406249935820152087159010651661026863991431811726237145119629804735917298064534400412227841713563868950717505293953248026173245257663550301605246000644637597177086663590659757897656194987174581111205739762658995281018905641314470846285058052605037161193058096624925653828452345502251043480281926737497014712561989161695795579540096632349540015927952823587070765440665208350948219935650025876987287417850290480508529052649426117491236766000911850851076957501816044752598983279697563691012801482136992459445329913292476247010051402676279922114948647228799204171837314467097679027995002182151956202075739832385411881856325001188587881258879156904009967062396250190667711432318988080164680097024906506713315490418522560616713788355231847734538101026268969304707339853142968087773949466804578444197654208336199005196990190527839222927403423256051023860397763845897806503617741133246442417820161937546960695371808495780674441036714825281496548093589014558596550234214071310215643246731299569519583386381859217179635104783265781567576631591954522745107351536283695943511761493747380868354465014499598961191800882370176086496791231989090097520941756102619114538504612904930362437715414992254781366425443399507357280391738005389901575838219492898281646256621282556393003833135479761159654642096490969336221812458483914415675165105572023574330927478886178394178142753528226223149576195524109169443172143232344354724183419489667507383452223034886685173359733350605342724408883279376161475751118961018333307988116879882411155372065918648147795355817006607012578863174870257033574650215908130172218371921159291804596097753594035702931445579581519826467774006164920369734406655516568082100243792393806156036379932448819039421471078774762521715781355098981965699373437047540013040379057448260355631956303752090154423822747517949174689614175437796003026372531830496151914813856326746847186327344125824657867540756308776433187414602709609826604022381374172868155803752353790953075471903555907712283321141129971486086988093662954901043422807951944702836860050326325715706628824961099765345060166862715176200836624202093293417385808538705832224450232988599896831874137504611664057722016158014375736382493459688110037780849803224093123943685958185677362051118208914602082785230501110514587220145289161372512207959380207234833088997676295103585110522736688003582627580961427897144580529188068044070834555115577624413514436381794115849971667188068226329746545884607553636094609936096172743921421593495605724326108508073351531240671807921540775233378631851244651296148490176103036528228872070304331130005560587902888799784023791018497682553595801400768651772318511250003637717828901129937649851359110342134075386380406834285413501265455628381638165624180006618958520293389403509541711913230027444904165365662362653842717272495674518487768172884450173851632769436870498485622882634599988090764151178795353915194443588507174498517637509306002166202349310013388397696562443566192455407117077361858798274803905108701167895056858846176821467798837546741623896595408890759481365517384128572412164922758676193027707312314904421842219729032226056047722777826603371531828732351431844800298523128434348269305741627796913575702650784289196603259082541384522746006051994834214565579257799584343002339776835581745794093586087258933272231873456864227744895443102955324035454610057539775573348099509103554968280385664803916469915590037576699893142509857037240324772861854036202581831147253557209559546408191750004400627377762281199543108052841593513388197913062022586412891782815194836382869424860298902486632474100111863424127228296931852348995968560015530782294732627173541458253359607448008683852858891663666875056988201532085269671964211645644772941504680736048644509431004798574047205329503108050346573121370813523633092576072627531347863934676011155810809826526550313961045994510859554002781364955494573056520933874039507608932327734057051438104541749075191499371793580319408242197259956815501545600402044374270538831542643736446800499269168411797083822974197239992789431259586281860619495164550627891502488538585039981302486474134669392510649089443347959213930638423272413506742454092760373232520835608172087950742746793631494418051244703883401523720433682247292735793262019801274280554245805418561404928710426977109467616733974394816906276897266962977519037795912813822442706808417783092950547172543783316712939571994092284536686938554549851204279440765923825445388393303126782890530081389338426423391557260718263558391463546854269017240474823030276330802367236121399063307286985956193724702079441281981478068848448604369179996744799026080549722617926028671527305190766795354447011336493094718925422556140012198561668438772335550765939680741605735669918667195845689833087956057442826846941621537793426592140232717414025428673670794530057931341135216123440778439195286889001166238220547807351132563055764830569220155055774967917918351512758280611127228714008744590572020465267950797140856463143382628184498286618971597824636467553259625179570134417611733974561663293845042640472822460235592725340139658579049196648609631340637753328215069969923401822294815742981979184438476409187901739452346148914583744901842892520849015461700435001853764642790782749970727344169930968259198961465380325054166280997299078203907605912705152091450952061911340983777768302737300771199519162254941397954132389143933082301342569274980963410604289957590876295380107716789711172711858522007056772248207304716084891844382467605995768117504117360580514254918510595702196101795343678605473114978023199247832429099709001736452370800597738767597324737731517618530847891322875056954080592239541682235309803110901775591128017517943716712989800079899876252847673116534954642092626966788742599009661183976947701438248136402580975210078434092976612999261582971946411326220586795425221099398569724959395630455871117559441286062007657604714992672148641667527987933696541213343638448907987927558287000719364967336763763860183148953000098135313115236312400710988642404822537051637464308393604103323536265712013918030967830648752247628979443596413483558058102216920657629818339665756325273857830392912111513762676313057868951219572122795441768584120255851687728722678328104039515201659708540884778922525431266342510040579024060636998611987618463517311560735125685106320942304015054962327580596764011577375506269916776763710871543125469913303338409812644784522116171912962897949485490937697562638332141606423625314092412511581279959928304576514679841769206312310186750729470423722095707941808999718068106535785846399223249013275157354538205013131042464301031854580249271842437967068363449902242160789673335477335551941965734049496738874463217192285776147055757516128434357773971198125778641149477481928807827220241883884712466715277939932775446983164585839742520819832843478580084181905647205615571907292486045683033315472070411027821136641961470542225909972064663728864306767987070087013539344488897511678049752936856989488871685784705507479760188824322999629253473374395962536282330614612042425419196544229486940920853605881603504993044206662361812705081940889256072481621807819189458612148413233493921141238107970067887320214182155454810250072779054540156792431968454224813633656150479846250134604988272351003939525988662801095281918924694162536662560967058173575645322622961214719891895104426513124335744560060623214829991076181138900798197221856742317223114387182009908377985052456533924097719174448524199393329559007523404569356734914305743473391692176067594745640268256926242539145858753410900713265417604751738408398994120130951359898375913085407016026497399727745437564829319623373409273678969192104287479975403216796717522272211115681947469041411021391792835221151808754802772993624486099197204793333193039788157583197600360835709054404839455692955980516860317213114505768007430534023934323716327937988587698876130633366682949157883825870448353797556365520477444178346649769773603009406201723028467542950015146385268309095220192125550668163043756803250100882183630538456128554325813531076655617951807257424581607019802562084551621017096213158548407073441504140086920659217967587904988258840051165862224008070049497528529250177846929895008017470538681722447021401386159442092668971835171641069820367041731596142380246683527108680187280483722506452491165802057881523013655399057265257002277846642005216262340737022212271164506521970647059676897223871376010972251030847869339806394292894104507716923421614531817928296804713604117382197587696719535711305631261704381317640616117322972552994668806288719202344937958025975191707674976008277972290459486376461137991125758183595988086814170625815330769162536875463566853332605738166157430107148819038987786660304907659031532532107894683431595273240098055551616704785113736343873312817202419293883346589966039675999207624550257936328420778413898616015754901272650014787479586305245351683922642798408477668858816916945801400933983434276844536042437189801465289000812933206467091806511189610163174643654378485065607418468890873125389532795333056971621839064046509069505229167517666679954120384388954825348469312130408996661385754336786008846664054288269249293774623818064993779588611999159129594742863596290528613001065823638075724638117489643133845897706672473539029751396035743867518413472212716874285012210364165875674259163496326628438691395743318234332686943645416868771095021246616046535701273379415584818340644113782183292362178455974361942263186788025021455811726575912221460488052324237221006538599918570330498216233670265400665443784178650682407663142041418434466502027926480136265681148906919873282553389327308981631665711249241846162395290181006254327980463982533066798983831591563074966646379584706858162087706667125520045993657445592405680150055396331824482764817345759959726242639182225836385438498761173005693198440158804745350450715382079033235910563150948961229300903417267934212614567303222828148881874563902665876476318853602226696477752689664254993387555347141590367905777616139660586314033930759332611894510075274796278432713485316167091954232441032563640043596822341510437351782692599904100367869849403878178063655428449911470522483157770812921073467380993847672690947899447768550360159188061085223477014425461259139868630653101453850497791773529294256238965651712724468140272668776978249039665586164166403552752814045531469606261574904943060007729838281587993263525606278510872869265627396257511787922732188400470581701917999834211151217674765788956021151432411802693643346225722150734378041725404970927865681508057292852757235104851146675907446573249333035786724010178887292628655996202168635723498290202890141690206706064141373520119770889522805263269228216763395740922249675258093651430999809431307433927006651079986748004274626494885481543691486563599767707625666396768193927622855816603899945311258360404564908495494048029102360520303143583423944359298662273340175191327209123500129400980426214070523301631321402176333912574803301283385440457229224790438455096901996897986936808450729807143331780796458912537095042921090369184462289144477527571012294762873206470379788434741228121422860838340343516158925476915017077258434419109432546332504975422135748233991961287566351521022561645987555483739195399963133087448565715114949287290563715447568776146902764366115950993352456036239555972568964410254606048885348892884065928277496012687163561808907363048700480616236877077693449027398450482154540252764992723824377013735510179997021627990974772029478228330393131887140285984519654389853530746637343283293825325470393308164582366547622336982022092901975961106056835108121116695254925834503855455425896988525139987049316731474109843201141655018404074118019645752250184099018448693492821841397133083133928511835550607879440547243435846917434447704637157658221177658030671649474085760059796009533983597640628456661419758867450801357813798895837747224659887108972724344063867626477965626243404035312748011357778069097097088805554927687817199888727051568515797335532039285583059709112846974970618482479364470018465366380125474777300414385877491595369912432497655991314003733489072674996005832699912837360767246817055752618214626048921309376576966939586245835718513944252683390674310904186318667149882218924502397582846506702568608894850159872779102996292820878374008103478994694792015585608035643395182322620820465161945296337502996592727249688976441066330630997014350713004443774044606836894776773211038432922132749242945036533737192316068031243396383057132064488952917856026979528119867196394122839607059431291821026862624245324930002554232487123843258506947932553170804976303742702156405340042587292830975905622998027999516905391547146788088955475247305322946749993357225267203554253056829038094016602725998744873653460015320445604435365554684670405875817464256801949148504035624701085855514344288442467393249470278474057381997786797490349816208240996155643743757971187089151001224404095768725975585718237721099274940800481860445326301273306868343985175208399300922543886148602620306570057416150708063823715085622249693734157278413311654171842646882751355268101038658263985585837259285025106053385016836922283580561218476749260616854181851707730584310167036753140053851096117627980820043680454867031641836684768470036061504281801792710337060829177084580365900352502724096472358503648162067250964095039455319803428439085566066901550254006823704952561263636233972486828565832939554175941205347447750233257257683702048284373545945214973578924342522041240430501730706866810058484853933531939528519783050443759709445954358301094649127649359252691908374369283957099545198438527383859649910056764563344724537327769859307436730986172859303305661376780738492765743244360498257587263787957069224807562902259949232249625082719057934784633690566941584869614032764811360926496242665949132009083072408729360815074407400480179712048009210133763572505088069058350898721566248447216911562170148316924296527140468864392774077410295403172167843716323571306272208855875022881971944850332098944989634301696263927723274769293066728552438109494965884299194977947338326221777646062500252998014723139667555507573267621042850324008446759974577981123104945755474379708120476147420667109232271172219332478219827748357823812367794476066962988491824750636613470626682743831253030459160313889225198185152082543829434109117948935817366217288912348391558691526361798929611682114632083317690706270569475820511456434179152542190993789763173547074128442037711760646610379339668688846825591303285812640854737765845076660860422396916959636096071680668139447786395898917686376064082350712495120322870246162136665597710751986505304189777853266869110991672447160645534462823868212914960410685681470638233104646774877084546505343337049666718368852036339100536462870069545142983650771600160198267695797319149321876768334994076503730281812317228697705770536226165286278345435844894873958432888789067492284021185206630104257710360119418054731091372183589456235097069201818747856165788277662965958405103818983850314700129185557840840320851909734794488028487048811047543765724045500505257204876125662226994474525737223286957246462449766126577915783736927118347304150960742295603651397741832357589381596162157229482652517452007434547341237997912738414292490269421043348635440442635436565464504056652232156881059864253095750393932801749926023304886036869612290084464833261303136283125683975989185240836857925151954122018199210158231395606592193154079549065530243619831325974065390989316665890454290460436141995232762323194860578074321662768420078921344571189441993278699709070193288842358609857985589593266220020476317936564531189603404465827264854329458837021315234786693910253502900771692401117615684253402579734356996196048536608388606704801485802328479923837982301188791766443745850439787265489469415573043730653692304131803757910425064306690717691382317134707019237926842370318166611805497479149328285755208995249019749569208339010658097180832995248753186529681716524381626800911099040836500621355687528031928293754488602799746705257435478838008538784633840866350054447128378620891529724344164182113901297097524984063018451631938813164639715727749789931102658548851270973130138822366732761678399959586198019537731518631291810631185984899529682730940529162790406150117205392340943257093987941891489691277026426309818788771676554639913510207261580284877119910868911941507695853161040196343139928309851971182514552780415150844819471184522303847258706793383804170232131278818741885466723215828882520333531874245579938612940826482956994746757785916671084760685695975458264428572565443408367111428737065616371309278966910542901387736077665749040564641103104075223975689101764544273512705451468133261949066157381197617880190052071243028302857799189733284166530301500593487044898268467054020335556346147461724734279885692828394210560712882612538949984355854212274653584160451606366830592375490717350453655105116518517606443509858674385330082883321315668415319484216618837649960217123555691479876457654171301067232030163265416165988974838068719731773224488442551737780576633819459634107412993910774996033071444209752698192874907285140662902148923315004969319311519650120952409490086138712013542914980425928966379295290508722817495024061093820667344637308836531233471869307697021112265365853613564751744093148839428559225458094729022127526195570724682287726806511153643676153056109019961763878297928757302617834049781297791402571808994468807159403715022208148908337707761518568925890686179197474224726429483022967260226668013226348202838036610363342417602408192867455505270020096836133597820524536288487333132407727712820364821705365379371457330193013951487201689470500191037450453819188164146123828222553430012801658862865312425825391379472454760466780894809845515105984196219695256152524987290036901901136078010020864228085719657235466809171735321191345019299482650267465042836422989599591269497973097873690893016072551946786580171303852595023834451922318306928608626471842874652293235237501061226405797170134933457228395499004518328909262347419904919553723980859706012483869526177713778808817430635771029580712067677531667401398280841130690063335511206681608672549751792435168944398696564344249882993260833684647410583110711202787550996771514838156142915580859844341339236923454560855332174037366806848156925206383626941040182596992202954325027577748982686251403691541275628566858079259936357255569080953971459332177708094934748778403904900735203874639340781119848192004046247521511281343956649421862231936333951132771408921464007484326236639667806337107499757368495440520711217296801577975330942209427027264832803693841660845548333318574599688195534608960892467619088398381033316936955704888985327907497731657051435534350315700432328727207362043232677119573848897636163377374513128653636775533518229562649626342569912447183625969381375034054582725583162149559995687031018630172768534112462555110992672170741432678913671104716566583486884975390159349321318524855248922307224003768449946225286615371376459266949038650900351974117062399980776253359144876078903851026923105772177589617362290703748341519771421110706725066676618618065744759948918920181631684599084252593329548246781622639922811570868850797215777146801552260211186105271888375848260697571196215317688531926404751505168047432957418960761440303408230271410575768428646935258288098852818438225844575471440037190374957779420856639893674743428218798458848653529775695730947981694230290940848903229951824431673259128336120329426417658588119723817687955524256631751732209418289188740069026548518190385351853213100610122791328544440309216190047056557983253374723624226781014802420883630956059574412553510521296893519017812894235454794796757404306635935461404627954569115883959853095094969765591341511163546197331866202431298431843383901443983254956421384617244210360931498658735588310339490941326987042624844222424302778160669576924315855206083113860484345858001667793491551631157239899567431820933017613876964286070298076869813438923501714497228983044342973801202796678937747817119636169026934013688250292330912687025246855868946770397319130072258355281985207164510624300885991029538969154719904338744328128599836617810798717262882818986452947621545028117077461831235512024135190360832009041863517231708964463069133588477026012863477327140771087789725559311006461125937302179548425830135351911305902494160121746449297042405673935270859567397430509254356605731644830483410287513425122097373012140127426454812146209575800218385819788331908666970726978947788161255932831888538209338265839124369848562003825812239502797704331665157674888016194795449752587620062170715272565384404593252154412893114290346460129721778701010906862629558094454769969910393846293754027570491979184993528596235496166089625676574740750203830486779146559794601244545615747382288996647777169196456266562453927266499579983111376433483229751655042966218245030294187754756209057412848363173207567394018190111382956963870677147302734176611409551863463153955510433107005548152092779699035807393846685991606327708282984351324234414064517752276701842124467027153406059539387070461080509081884150803856672900188180773429455997142151486448237667911736866176863331271056664375044659033329547825694387768079607972187523987842687619129629902221319015451939112925582129948776083448043132897257706643436528736166583770697158149272632196093402763823997300053084585896923383159680562547956552618969308212055560201441482330295517655473995730834858979199811687207397719099989207298702741350505275390611358691719620781703267784836042540431169695859861827588245507881542543266979943035469889009924853487647576854616097987124723472115477777376809775909108116400138027113874666567337843394961558095664626170449011163578067167337790929555176435288702671109560333845317380724372948332176698049911473034942458801464855335111937205053367870990174203661777242176626591426650251931764105717914339116749522760974268252116994525012100517536380376327929887172825958306317216077042135495806209621767373934860080743078524725678318229258449250287142262746802037348992909225060751174143490022332585219917902890852695762345132300834410433376734777068395232094158552120280048874927243762067801501394104355640945555148951101067698249855376836662270805046698000032462752948365693471315129655043799453870639735433186016972766894668526395790601242700748712838229802138303833810579438992790775341668471684611318826442131397371379316918665876477293134779023606176050099447983435061192666016215909633199555124158982907587807299671858810650159724508777508148539271909668079232413382358949584283328819452483666028373751294410010929773362619273528928538341747092071554847298981113177297385781833309517458421005688318411130853573812294321388645417342786143784388603248458809710022601183200735301420932884383686860420606277282364257377591618163129440230227175566501875895718636027954187251272070191650917713094719314000787438529812406421894268581426642858953271715721586662709327711248019117479461222621087961794263024332658471160170615607749312850958978990479576635574488717662214701757229848273260997749301630055437756377313017456869354221478321361872011495978830389486968755777616180778203816318084314156141650604069324756037758194678550705881193139698408993447957680627948508215652741744811704681718812149644154704176823988550432184608813161243600066811700650204818238993345076534242048177441702286600658224532549136914282925803173585065288195517681776306983831085715690685381695186114633375635767153890469490456160744373108794894293419863819277096912322357186447662241774877105724189766441903762591446184137386598587795194264582566239208046761417902672021360549479887991661459885840541422714467639681162395391285841976765085254423333598657445700409907779611621891483813888452518032795553385448147167147827509311842570332493545804696513340335452841537937002095790421424084693887037734054322870836781709609374504444620195453691735841018857145479569159828719761598839343817736639755975848590570062241955250779498655227766321464412500609455343323501551011106904702617155512005054805854572373108237070642333700898521326719004227100009019491835570148418516946155518587517204868751067502605355253634636524022078274441860944756508412166287523553243718805124439480739971724747947810940349276133920775794718967542605636027080659228017091189006491131681177059570076614496916626029196957463320151527613318381731563259816734457788458976248680553818259122769741500508675432953890789445538650548230735488936548240658238280936519012979819656091716630790814499240353301875735792280244936676037278664656565392149294928366333561798186539433653606339732501438079686141818383990558945089420307696022935158929206268303056627302583192843051455800932650341380743216726253425428887938120129687208230987571357991043373703341905167778409161125904112711060314059292168217898682779409142506803821521503170093822116725186393966261827807486007397542297697121625365491669824609338506484807540972552571259067985534515307123878122122815735082117077622709329357195398532776641653714887245313078151985073012491318132026126842028183375513455638337688434698516695498345669990627483375554052227107587411149023281149926319960350008764871916272194464036381029161956344664984357745564411397461009117554623359901100030558094095451918026588768026891859376340112339868499092842083235458037382400764064924885303134529170205492842307779157165093980239694666763006605047377928996747316876098237710588766449518498418897474847917053440021146588174733159281334173854005506343417048341661127750934992034185379033943663979731679125864514339837911491892276936323822650541067883930507065772592610247516739341523296255980197962289731257147850274605650682006531145161097013409239991844949766597314790732006653240253931711349262388271933196662960613491268759499905276838852135142242592666318287794257950712541645557284900284041314323320963894183908838364552539109365138145001295709521704865191357476304041907385679070318628257264807125490080186943110607112815638648916416927292088173478149847657139278868556653167728640509792887586488067496690699038201958287780168721885217239848102797156557903997864522693514481558642013139341587360134849544118749348882782030727906755898832579014320823630223812374158143691300437723105413308226795139732680406483583568780084297196656883015029279958401707161978406238189507734284427721651404941689392837729933590817197362954913549767799221952718414455461543281263887249024720511237623732807850405435327331863089977709600838740427425229157878480482474169916323121409584420258211759318636338364707573766246805468803804823934164145514009737180759505225817337624976667040246606755193828067345625436650253490040015897625989541961129046713031428525917821217987394301406016350720144374545321190370427520078830698222278160216415143361477236245712478208887695288122045835311889074524287815140638944957131286483637232451111624142205338808255068653064458852089482707107799870039266187978538228722703067302578911122440809431807759288159803702030000379181134993043732033925886269639286935693480099729214761095987645459305992270118981333840021946892326735123530194319640822856460104730771248217239620630176263488721054819154637957425503488769399549901298232699863390626492375909091605640748906463688323353476150079754406386304052108747540635657850263839633336414577797874068817699073048807892718402588388471386679448914436731181202510923623454538545020862597138496770666176421875685561908849476986557757925692230270231493471192194701065475378960555432524691776139211465656435831344092572586626758207848643719037619318190113932738091338524630469046575278840782410856123139267963114099399524547722258850628005119720902551673358455917267261457691131743888677119749249950499650533156271678968479941378130541137642694846665246792303267030171379111188285797582144583045207990794208085876892126134409766373217456203584174576099175920754639383461322673335294538653165254675011311491065848042512045586948554393401524540982915666695200715954187163710666826724135406983845708055454518544522980741829306617556105475968452140171003070490142408145643409737063558469806298330542549026936330320066057103291754730000353663907076725699643500423525615466555475916540969709304741117109517360420812936872230743316698891403293243869601698100389339198822522142036274928064310345267207055805391621083734513950778746347888765611817615244728798798616260444272852067415343763312000309869893906302169512617437990027008787692784867601174771990708547749237474090963214821180709727894764176564952753496363024380862469373794152690421005770342157113127486762687575566227873935092678496390034488052599394598971414044761803874236228358052973087629084224911453751324044339742662818661826202285603802799086262892216693329111900924735275540354199715760339660383019863690937598565808247301510255933980082060196931422234358996390839727467468135672204719748803251371248343405373999906023590738544706496566188753401050339578494615122203424453057974638457763237392689239770167106694990131738986645354431517200861352043738345050249059260200774340935152938098231857092134676218260094299593027177302713296394318682288267847244097450476421829615279843303609089923260842116666448427355498858148636331168232491038627561968389611846345188564905161362901428289749090236484914403754935602817430068030124962438590184451917752376892862496327877842472202407067913711562354701742553719829796882593868326888503620275646720811885481930041427926662014101998121859981831157395391318527137317642118855790236950323185589683546684639101975723734052699319131697533039981062758868232265743530997446902754483519886309832037873398567404527873054690098982444037769246112048919934650188757875557867613428913909344951945994775779899694379286070169352954813247143877916961024032156824122167507344855866183360055645656979423818258972967681073801779787678697042288881495124157935284341925421256030844170818990559018544434109299713543540026716676304017856681961324830231922781533755497947549390227534964404080187814271673999397958358539203736039602232994444420837609719728127751945294572281107014172387540800774459410958040526413747093818349283795842874060152941646092712929761305274893570695131928859196472550899431049283523975023061801905905848419145616800584424494621306621912385267923053829854687562618311314362043836711230518709921689024126579508326803729185073024068793365173380743069527993147597811453982898441866310060571774379492378020820247428464502157138371395562329077832068379536972351835967997793872221635720270403778690364737417224776161076669346448088467675617700457744251639149985110478629998610634505208397612653451273704662501644100757105823801691294228747789724135709518065806659734300365136694097998124294698561878931693891271515078735155343686604414173391113724446067132939674236761641056066566493141662041908398490564087204798167793588958541287714114225854236900157108482449680312985025295019722995799506883010771880930235117502456418846068974841273129334163287724936232150636621331207504241204698222921053380817813633351230058657904357156102588125562273531225179075617788109672510211101516343313389770125603493832454791040441958955329558378446325223175157565747065914761693090845252867096453745573114237623241166315813551920009548422471527093577059476767529855712017118078667536469078699407272015656995357676094640635250259570711007265102032355815350489821737702313386297024179358885096296229858740501133932005686554358782340627487944569955192842934671202314013227714131015516108058923589592887010046068128170532615295004104695063659422532709268705005561288537874704698304007545822508179323755105146176153496028728033889875477854574826094078699280129537987911543593550430748341601162126098940865881957127428398856410039024008675668113783152863111432796072730013021372006778171629190625740322769448569200095617388301819303908761334085447294731313399266475922830093635679436600187886899294387878273322577642466845311169873641792044040097563667108115169479991624680445992293763007517860095737442792154714007913332439744261169883881608081074064882563171790405387398101177562437914075969741850609233551479297991010816033802339030390824836494549778083307419428301965177723659036320356717325870478067238246594841406906625457406829334219403431819565143562934406112844733874601643159455945662739503290180748519573233566551011661939529170897961938892302281428754320902004633622193397716772451632428428072356707552959988964835604167645075441593577113335214406150107848821930358456565947392454682412409442806846017210044221487541317686367936014151735678255570116712463923227714087458963741649681807039790012599694599684432314985366951963708722801140178781353308981073400334062900585106983612805565195372965822182073700140605119694774808961283111568315085446087244450192940504588298234188865730727113051657508690723468755449968267593719996019416254532856666406275669760162118405139531065830879837700762692839063937266819663695335120057940645869671572745951323581535304070629903848786798616284549487790550617073248547497591897389423210735315303540444419447346042800022900241437789136569477231913886205001311071333195304318506167808652000732042484388775881560406358137957745763011422203134294273041756920974252024079163277922112561159173405502305686725662168341885885168611928871266913219551899134631917183758189882481945606970413333193957356816082534513005658881462024619898386022728011044347047454196815359244349092389586269946369778712854146497229256301780105114826416047345531931872409965874907933070449152268226011094551671211643242127733561551964585888576621360840382379619211981658303793367930079055244144476358955511946612759480011535014781072755314076942077915434562898483094920210429650628036737892033078641682502582742938673708528458535898001922819329732278105167350230041269595939236069536167071184320021389644979352899122035177264720040350308019465072313871136050392233151278258647885186959483301029571562119969400659752645902081482123444782027285402044158046510600467831918625344628063198456342048712852480047375381896740894115557418470958272532598555727407685726674837574306294052603080968940791311486738282985807654132863303727206797355028313227371501688640438283232729952307598061404776810774236957836728319072887826432788799216896239774377515579392300632316793613941041282131815362264957283101781459660659956932317763418475635156136747959388787774640879929923520553004799139450683549109156997879343854480905457950179999625331739751152962201809587314274705867909872264002656263294204950110228555050339795553731122600572416915974337479532608701063546915330827032400381795221279638834280566601875594685557582501055068064597087742855335527457106174547286449417712563863928497149776256280796691026567981950857992310222729085649941440016237567487058168145005308539411423023044234860461498401717415761308112266510418241288551014538356596735549704286314510801326571132004738958518169102876612315946230617404248063781827822953118775552967875701028658031629732093850796471243974821219647850836631031594403389397929421979692731649002262454687208064772636262597896962644662510270256620406686557276183423467550964587957466921537949823039045988589682071892206405460837874616931834296197496662299211280361557147524621962841701381719905732860214165935565901826624183974883267327015019216479835442792921117557386444639704758111582788400460076722868986650689612374961731727327795681584836786427104039958358542297809944838174129453701333917955149096252743435399329416957070236627144277473123202163165221943399111486366694610120197455572933918727238598290252873848928186748937337672973561999416444142595983098798856928885264678383978677654676142851249184814588029609861468240165516519602340709597927133449401797015410433148242160322514398076300642181368282401211138356254442253648875602860046933594754409647354416136623476275780147655160101738817712439764621910780779747069693483641575373166600224025903119179329127893107360659592721476947154115018598101465890834240935058168899031149516757573889578257092583323740481079649371707536481653041385251951425762594543475284127473237262302944109114258788223693757614946427668836617650725767055242075309481098872720428482581116620771340183210399265047885765142273968176948285940593663963712211449778802233403373687800558217027953149122260639401916837492018464367803454145012352892957608459491721771403824134985627775565438899716207743495864764567642450276801053047997148093896846117417234162472275180142639130143231300748932047369473119593930448527180618786623539636017837519645572002423819220839515727966038211429426214437471277468109536935545846811632627090661975935695313223489617022902190335136478584359170559186500423749342621667283544622672754714134734454487843080009753614844538200957873368500494557200164600624315894876217811120152923021468030046932901879988902449965293127868179365551120830602903291782360005845670710258353161697599844942111702796344814146520082708247254346709728089421338127121904176865212254109497721207674287607389750862260813655117141609187650636155100186491232976728307159119750960387527582540981368292579850983823260076098654559672469645315732929156723458095602192686617564069860392170421512266796597133056211533127158751062833444026394396229400505925570145946785674702992101706863820902464106883527853637762451289590953312417816859931849738809777613851961062401105176970217173393466610705645973198925787092983561423519165072742475392802156100256595719099671388683554129418372692025546346944202381160586480092041399922610488811961479732794450304181422840721397507867376709224560186586242594370325021186868303840873551418723168535660403958699179519481685050552638508895139731898781449999933061403429133955102867917480827203848377145533290571289611805248581353952200785120823427714100924415426257553944547817848265336026928818161759552974901090690834958520252538261130766779352916862298251722036053899033695004400366050471970411884494206246457125025324905102342919974016230977373001342860880476770891378205316613319303639678605120025485868447400532402586153470835808666163832607271545509275522843420394560332232027097389235163847751408655193308303672638142741715438087250440974945046510352408396950287065517057970306008103187568773701136144488327324040542365023694046191551463581903367311787379974681602721050290145133924996497910380199444620931802234294039994639875461538395917839909762150084650020747255400277112187945955022702094995303983162970797705555258284287098335339785759039808799322663747326213384143222099145126324837649943178046283305136276703305469968855954370593548882373516016530785139197060690757064907643589855321216935505024909434690261533475053932377677294469037123289609670305823729926094022185454781061551393413293636906444295015274109932879661656605577035764634911607903508134432456175386899126187881165840779110047010659442571288116903065733108371552135180015860298623359742901622964247672713267773842144846615022476889700278062173120710946011516608110171729677338036336838932995480771495450500041825362240713525184261234046213618829716381069728336663175242778584480615708457992576313681071069179043092367494031793884434150879785482917988775023699698423876540003237742066400761817965507260467339396670865812260137200462232602976495007257528090308291166511268883253642927282167607304760332813894843796971219295674053467965407654572816107940903761902182128473316207253303387751630945000070116953445089315708356878850321130613250316658804141267439350733504872627635943834052455030911515024494191708904187375929399451904841357347070833884448508678217627308768970906051443780264775298621221115647033851476426110449616113632455012858705526111558919811485859165134307555894895757507368147271388620173787388493785359720274595615584872721868126566974082401256003002520521286558843450163748506935172013429211173727025359993425482107188660648006469947327614631839254980304921495164149315034373454042020880302413735461808398369729946540848704614258602333936265234169656079750952476518415017876175115073672584177995083195520474658580745988112582822468170927745744458714363260697432620614968156289850360381325668756657488491010961164441997827347777698720393956828996248263382329399130754111789735954115002389752188569863872127635865867271873260240921728340034734088774228772966621071506900341966785412612878526656117943744885773719291952992988380329660447155084729106850208406655103022763520774315765819682089429932465106259429135988024390437017588017714651364692456415417246971321349762805916680488238236359088208277882639266401145684649687944315658707525544916360490971878964239106324284861509465179078277932196303828710276136001815709977568460170588591879574861910835034069766529632504364041364563172383225695751700125339379719115768446921018620644720902446685919535124061936746991581400927114261431337776103876512157051342947933119515710220368658242081325562672456329648108824052345458615126868930848627385391252248187857961918527190310992253685277061881232615741875127653466258214099872747895921833045626850678176612652083114565175214193018232966180940993079868264065470772894059325601212461179065128366569215392780601802826563199120241815135013944517539447806902150593313875497220931147356489895438073730644255278870781985564703012356336244275820334803739282532001071081193181169889365050824634246828752584856939066339808490248472593286657992483832958735205403618733823364295733971287426198310823187556397849814827712894069694698774898135301290647152584931387263302063676924769097015064596874297310951216668543054165868254755336432073751358134927905225375127965068318302710546959626706402147797385554775988509679474964137284385737803722008530306267200980337836302647760007960288741793034722903045165850606960665213147809145564016865241407479865558726382462572069848202927761831601630944265545957567981245560451949795331933688109140413237843518302792339725498430014296126029790414978837013355715519995099779136666584739855946899625760578195234501191444865235841397605406434501488111284862680511121657874830360185766042213210203008520333280945182792116131106683776413900447058590109101859935256304851595135363990343275706638010649234127683962344636770250144833114929425465339255079005774852690968645332106150507406761854765877909797901595633036273825333665012370283365032758038194965920966338117693966708949150464182294215346078451750238491830267346857109092204222362713762769091256763356131111912631620114791614291986013286277598999724857466731907298548115739096566800783682257121106558266024232086497494164145935761065764551008388023215168033363240645151638955363650696957432019927803639117886996605590352975187750399562633798242934740013462474041482237015794802921478260261736184971284058537209963397580208123326123502949270748268428448326542086832041803503829831470947516150494504845197517357114395167300907064375401166744421972595394996438271791848234664485237029270552929769170897477845951429913609775910980716626791005250711160862751083278380177868506219312738172384489818502369386952155189061713084908873666014794639241256705537824617300887542577229135581227927007156446742758884157553887609491075488879312489087028250087384072002690062538403459669967529034372010264026058001537083113783100882558100836144543399599743254333341011241677597297385208480882952418448402022107968068172132007780804648604152411859860130162196193315590930640199977395681803006220417132990072804156972250644352450151452283492942591858299084543322253601502775450167645478356327644783686593318208470538310339913067077063069826557030318435694901741786885779183123663500751132293968996034775897257007701120743728874826812360845685419480497418477869373088838062764586051949482824818727910256482840555200695013992758278174888174683729535295993206159349995396797174242349032958695864240783803450943884560759001165864123945026170861801442159143463638026596848922669026908230636583152941835818944013113038986393197640450181333733532787335869255093178936547308195610267855663671096517839295718083174387516332665877864568896315554247999022238804779806803804329583358811247247812484496866997239440515630801994380458370876077243797540873362343037653719610459318606871386569657679745398509618773752163204271563388491333906692766699049886490908711966375524435363514604783859127794813647887113110838495211566186838353201791944908224946556937226711068700560707220599670378932763833279188810335105052474269778612939101542600780939059900936255306580254726974610766042836159739839968663704871038913333449343881497586139706298676094924818412625016855341133095956554454830327300456595338853344123051197135937213813895664801920238071650750587328403244914737000577043984442303519714476599056018697838176152123257802087237384800548892971250250923962760279751181921876161728313003067420296965967487865171264288206793345902666482530024460556902547602281647359794885612151382365155342997210035666691279791493826330020040151356867997932201073208081989176024711960065164518813620522582584585523177306843268973331611284106329635970726767998444912972891038474319826868367356193987338505763915318498378630381992691295538718973652354751371420071545869528570257110169303395694840252973706138544823050047321953769226140768436504729510030660642342875718585772930303019942859713328401249196120588794605724111392046490546546987639998911883386644189988637537156746961406157974311300569350054071134369488125785466169716368178256480038655469974271167719292325909506758095739491453627351107287167794525412154018850913258547654822402586648779714987734462343811332958719698949921460271407505630696796811960061917754327876299867056925470553039250570764532597785244518430233848074366044427854228731069786065171932389090258774960237827206394006831499428357504214390702443497715747258084196694432398720551086267426323747249138115975580495780540283990434339894292952186843791328222546444316093698915634268263410702404951168400839267702467627573645995192132009608969326023480900388266306100699773636962578335756364481587684230020957139405800475737089443066698864801381922865553245978803278264680715217870037760612573939991998142188377080406262282547941791413867454299237816270464427657846355056118906335178099438933389053586653742941775402461995540780358348914313543505061805802990862063516638468677572545286922189057299354181412187117863933623278861785561147799108626093879389542554000925300456140144657765745624581160295778026458876297014349702082477355744019695250231829629829638249922187763673132470110355113456406375510596438317628850508954478384673660981803589456573338371236926061624066338884662642312608836068806337028130575519671614613916026578194529908753501601065525625188214221960659405091620552830765725753531074981703120828265511027488322213761536344619908365460791609313195806744758460810028748099834305711951005537257210621160194556758543617615965301201114347600546081650831617311063442510946582303787021609354441855620616448806240971678713566374237470422525977097032166213467847785678743140640875673950194383518412101237679426479668849777464246179769709827869859483526642238166453663710212194867227981786634882496448252057327555144804506588215067720987212483715242200819645670520567981782098895733527059444746532026238927099209116314358223480742901163120447115584932912568582764456043673044132140031861278553353853373913378311379628730045645775401196073711183244245124723219265280186797015017603202119222642472461844822981960464740998360966263857765691261277106548433390905376912937923705083162264865500569607126949666620227459092829139781468737735215294481114478024292794048559063903254793381378828723888629682487148597516744027316822904857939127732864783415873172108560922794671005747388720812940230704567316554631940417454722595428625789895125188081841574960116601348978775137698620957291085774002674637336591981217600843025947348647784023004422251468321111919002512041066187487626229143780686892033410875923965129439626460229968899825105128049106266178897954098058264844733757914300726869246532582177922009950642573112419945530209949212724837347717669458441191163072465162242817813326874473698990643305359572601167041574505705302872370923336442758047168870700480023887071022534097565578994083515266652525323790379175964300998803468050131179796578223036550891961646275580903085040615022798475190695317203856243756888345252121666473746107854829076773483492672475267431618426448149796170000314203045010286301220640451861686709155989392937392623861251489902906273187995708922451899962357697931267602729363611040996469012956276578062600717119423860494702556705125359592333691505065681462949150527516978336986397013644796586293992901977593924756429762119319304049509286376420799016114947336659891942370320963333268254834592364582480540910553482886747668318393781634285857942021069181247118897563253058579053704047211271391557979305796839685461135395645823315659668288742268145196735867994160766886516085586774029398552608875804749270203340755915778182741423545949636936473829854387940758810481593142300441833167108814228439206708228637224308423534591210198208072596736608174356942641607810197159571434480258702674941377852076831623722865793500077386894543298274925379921540560195660812762710701938764150129567364702675435740461392135089721077016818191352140660715090615813189578755962391484989813020081826766582625277751049494815770338367753608633480369344857980957724324453344885971737474313882854469653476431778070617170759754167694739182716562002663306662069654340142492249637025350238688944750635912493038712843878869244841526064099933667701046190415628782130962498222672839521714559674588788043946685977661827684798136453970155979488900273380149023601640413839691938873502984987570255963890780931657466090731268876917535505245201455425183032710678557873418593840923184446082283355740058696298057724726129441960060485382224146877336715988191224810379875699339273432172466311640383663718960710036023406707939537510691102901628586279751122695752559804771481965650042127256492843169297020121968683925341412465575379624697312478273867771986594021171279856189507466241310239374011791724171948054897475663933188335256913189347002352726797981611728863156529055959434635414690030875591328006645065257305598446992149707247537698079706566945449374518715925138499263373673992371686006940556769394737453886632078784599090349305036719737317145893032535354618223165589723499463859524157537269337614431767495388574450321104956661737772169199545985315212193305501489195362656906622264736699448691648307438275792606366500345847561386916949805623121627898899207525742094048637617161451514648875261540275551513873348516304388004614048738053540789675161197878513531417229267949652059920934009718007457471628044597689596023025201316467032707040640050542085780087074237295953439642472768342269926436483537197245363583358363976295165762951747436907048714674480529558064255436132803611177947191376019260323782796837839267524206536245552640014178874001889465824851396545535115446759109231594347082806943223856637913325396115541214071187781756533489684498153090083038149370746233979364305795166309871554262641643848477835358514745843776979881328224757802070232259418001817003978735733627962121435831135726125695128692229980375744586472845813983619841061932611091906900464639137724112444041589678427188940121017002196107047667822157040725573257653347628419484020345501904115185125398357089116524209564214438044381181614228864136802498322985125079378561072250353390640848760755464157504135490468557481375059887331159918198577558169971714590465083377953970798887859999303573543421880281145005284524948069241129546024074391598895043087251600291016374683486201347819326755812237122074178744614647330533780046398396831768206746351366014439313973193968830920011667675603549150985312563439076420861433029854953196330671052565008703655199587097947973336938918984861846734322766438892109563865791479989404624761218067182849549417375565405035995767463286804336448848000083482901494449209350062300995178008368322809629021856148807896295680386399333094394718241500268800169328414472635246509993637656332762163451070424821134238566191788860210430927550311525138042080972933328863493308914043947875372881868573375428133390950774514631172825030038416178982615884160481298368438529912821411445978226050066256842885516015034394845922524541095191482179265484684292330915591291680478529957277772323655252159023342448231858937394940004690797061325298857044415145121066813198591613478912950542601375361330601568278111618885339653856898730045216185922467961823408258831869217142840281580411410500130242044218903253349135654294951012597240375981465847379251161534460669225796578764926107527926035427819811403414491712461473040737892707767689534563578589014039312896917017479038089390585090630849450323554943831134736411745966769515583729690684300261329192745361371950416286301376322334749566068924009598947233012026303252112077110218381239508862123649813812928746499589512350225569671798370440648405804791574721154394470311018033969752599678385622625247519656860067584143001671438543247065633242018922926229661092600825890471853314559294517089349142190473844369710402450609129999197563772512883689828316023542940147373901421688555151541832980528908736181326459522186745484300785789148214005189221195191724677614991498620153095259287352563692210040453335172073377197614483463377307864651246641884990734158698699737582697616863831802115120943128836229276193911207441268473633667862647951804083445549322852631385107382263761515284163369844415268968167607010911421229947587180296701384264706236945053832626048530775190444214933009137967432953427111884476105474660904189135014150753473707045751734012018138116999602241627650599222916455826093080456696144335625926032684201522154143765552139771037601904665663261828316700716351056536174790658749796523182664042157910218361619077461186082020720572586093251484090985130133759735481848243811949610998094083559038420557883517969283603329161768038330811416159720209903443206189386239695521032473178639143030211878530936996775737836789069346132578977656495226042029713305485011312004423257278417748328209853573273348087421315331440968331010337500457044604059395707500432236038038103371868068275149305067042365648427572317800441622484135492944697848147777717870977684405023357895086444863722475451327635322827663384477174432008738812264505753551292293141292504419712830697780068834318126554834669557550934287972252502955298473623704710136012248166666140854125572288384631373271800875437934857737361201510623860250487203695231097439343590446147332054717099946228064666452993866774033992713733690126858516800700029517645478055897829670794356181985626825897596708230921480149647192958106096667538043421548859787388367522969296439584660545965741672538271165503118654220249677974036349287902849196656116252988247394751401489601334472903553769306337032276029362230280198943109238693360062965477401370731794738734617748445420025986142282060798607322160927771291474261156651408283843945842159063188392197168873938994346072469733786844743844527685635854986165391231153548157360938913689794953960537009035735076930333629155508287574525818271257378677933834617003110758164941901545800951166520673437143486295548681514413688744344717387241909989655653017180407262957178948485927758439140317715708409469523290573880585896867765292283471718590381279359233033129782615737401216981612090764292005910792183688249727358236778315721956488667211941538835987697441725361768334593995197578222303185174922040406312630787479937395995142848535734300353221323810545998341088850996122730099239472496700564262265096766752918782288658490933624948524541496414071303492265708690079462096241233625669955276037881869237685449308765661838762751715290916783367285091032504962856325724301826607228683887053102167263969850080049856209939740030274690893003063222773760510590603178044331209430948475140979402004725560507157237743922266363574573929720181199007310250755129826973825612158965233047448442479085179932446762077294667316912751246359511354379546698850419757648105015343162946893155916447648248011291836633204036256420884688216669045223288987744024737659101324141302338100615790745032858383524943586007179276192243050277454032978688774739552129406128299980535779440674451272371879154444700983159644397717186251505866521467307773754945694779786903982377026031971553122899273967978655268825807077085471436231391895746617267607329820203934054267301703906018094759863359772723737422590682150992530134147185837273350059330111722673830580698332436560217071724024293651681665074949016099464009942740966492986045653329241510705139299828565377978271490537336865029673991732623829068844022838323925801117088037181390965639212469722350960703985502356592736570466954091362513493430772886439706532624064551761871167843802433235815625433765895593265099835337381627227285092074361271105319458336148397194677745209556085802812501197810386617270183427567219894111435257064161725750906616634104017697447008723536059913239760969037874378451533008829760991321503570866796477978372034242561606442769434112660635177842864164301642471444978327585550416468367208071875330922893239847823793105416817140354327852703505011391706289767313976853995182760478159635758194633398961399944662297016816829225607555526637063682992588890218648955766213104490861769649750502989444590660974708319221647430793772440654507949155067092556652702250900845981789936995545843282176008441118016887148224971179238683268242062699717428069998540816411445628635586812616859967880959824706151049691985396342748485398555096535903299038618790140656144936980643384917920505659641458891017247465828458754156044748660073195873289484276365779471330976237138325229115901016584451484424918752239582870749108730119284847581924878684540111215388271294176671543715343791838351100785823979983170507609108719314188282963687291162134790516549130044186588503092783420908493119883928102909200594867569031032394179370572745623639686224305998829058482672546242531408265612149466660426861307858819076980610886636050092106403481242552458971343382146519176897218777146166324964058746340597966013760141996762887528937258103542099678864643354512809535918040259937484382161841856122130744552697207351189598281249254437941826879791782972687099635743720615961669685087761064876263888639212001280085455137672687516321234384685354569548904048905105648184723105603643151743776514859466554148111674477678501141655993310551683841843267920013749308455873649957743267571708508267466327729190923917535457072276753895266688702251823309515972019870702572266621872498012916722540440161085382162224798240798677897930967014093501970046155412626472977974047750708409134553948456556474922462616761152120006621651792373187392876506398273047622862432628453173737229647365391240613715518103604044869878790820495815710226788902583489642219843341794145181703659084716369223704631538264174105071572095614863862421360830850954449976272048890356308899048303228140551979307422062132733809387439998292756260135256056660437581684142777299585766230411665380756584865838982958316091283810153442039936280573258282135637291424918471169687976889945725090973153429695870541471708588508009014310941518580988766759941999412872978880471015557340430137755076472792875976051480851470922372941876865579170762749937386861508492301605811588603571539259747819799210692758096555805236857086225771110262893291025030500231039687178213963680168022104301580785078344453862799597677113281043245710575200881093111906545986196724848476439359044906352528879193764509042896531027481910933394631188656300831115253827037496427870347800997626523954373647227855695218260727028992178278552612935432369921202375886569820236398196896202385261985752489679772917695877949370839637936343729753531380855331837322973523840326662128280613745357042543511019154861499274643366502505970442366799726317552344464087536280617899549519186547877905830914705764521519004283771968037406629673535439012204743528302542389351286493269594763153004406222576429546188037782849983140826000040238252875254677307437180303100455944702091399170659738784631015940595987191394272922270271303616977884634040859266181966329621738291109440314486489369181446007592082441526270011672989359088488467518342883748841654837011729381991840739599162750401738830109145307106573281660332515142477566949030813285177144171656538939869250150168434764820341529128370692546038119099032900564300989502778978341236013429667347566309856675113384597274173612765514120901730422099978420502711369398862589591302294909216446846224283963473632320971926146601432452346835854918614832542228451909139926162289206954955611681816920936292407557692964090552136711464638852551424384823752082646412233012569583076846174428823628603879301268801637396404668532230191140591529543659232088092360306840714839748742614601680438077101722775449250843959016862192701491951653456328091143814529544752609664834621291894829178674593472748279645390542150504824236390785250561084676013427448490887640686949759834965382376774802528040474801312426177496684706292865104515505931692331134482769446742915023472611342128164995025115992409415798262828967994014725460330679085877788494313807996675069512869579753542166228425755150606391163286651803437600028709554155614461995133259892320463825016006019849067185314685058568005957928520245589785967209007266986981205797000881607982129400028242525351197668034533472531749880514092531043949534049667321452790302105688062485233230826919172968387776953405811630602342539610459194891746760618259561274258868628207423673496111962174159823602839774767074984418999856933168097940089431579780608212930120688826303654350151200470385051618818431318404974603023154721587997102460578958753332351103047583808065578166135842269075665589654498557525231711500309293789921948948696921117899798754746387273915921087913327107807189093628448462276114396836817715916129036185352131875509884544664763104638324565108469140873152029441241541257685907340613902948556303993215149507424206887243497340430248899134060082772163872769159381571109297311112560854561101061356053649620446787330713328754803373423607354240799033593033946358104524974157053150901692259783377479065562935712353261066604565870682324144100680380833940483513190531789290302423672320592406998786138446369987244116291603135358897256057959631245980882131813242325158687918849818470290877425939260415369833806036654409066134101053336978529578581792733841599971090300963374491329331980046629085712989632310828463358748523867794804924481595929205417383260745417042832283942675034819901146836845971049847997364587502929704485676095587669508826832848169234237462259061541274229605398712346245484910661051808394496397669061548093127143325192400389160296063958079694837203456789206322473231618340019070090228152964481753841887174072462429111738091820287484273299342631198581129188460822201160434789819562906600564087788264239303197983751750287817421289173483417568504505184328514227560281658676798794843382825347441759390926949711315478127344159741049053217998988324204723998249408693891560101876715137387137246845409378275167034569898630511058126656618905045617421864662406211758282589684244839092977181917974426171614457238517922809501979159057894733740927866291389245587173723432007367863328413529359812199804392254184262721450085190307308283428465622555954933037306413314148262993863607341694322892517657918768145703653686647812593118049806761675361434988093597881047691449327046211990850031351327255768218797454649199889152699504307791588040003785135220053082303463137670218989899667841215901625574653157717727403378825315667064864667741390650114864698523796392533553795846151339338517549256930896412696485052440428692149317522943120087529242169519709052622276056727664719492720541779180688129281784071232400676324524974335926030520424403331433730019043460734810927684258851326712219478571587371653851760018809685036053901213504613877845242769134241340107911662162481129768969657639933051661162652783635630730466158158705179942495266151646064534316978597151389870906415598085590547628721303391462294291690962750857664795875658708333467301587625706032962286737353572772204251835514088043509869581305757444947129511566907810635028389706211612335606802121212938112503374787029213376384957018619597947679080925156633818258364734376442066717230841310536776774665007444263106685823101752551143846981630412696959995842746907413112370783051397604296548426162229118723386409307870016882510394378867021094323112581621625489372903182831559147512406280959480493633806130771999831062810251192935402707777820977992892722345513399169486214850253734343669329288869121394297368009641887098809538530683310219195784259537266738212574446823545227055357598592354917970541771093907687826233497682557254167242752716273385482651209924094838763149345761820987690538215631577916698011127820219462021291398637719262403966097180430543345277342689657428685017287312655863883808498479810844463439027457736070774212349586493392812919463265792075015362844354990114031076281534997530063365746116093700489310868969061483764014555525291686337610529234068906054727201431572972748687618527062631198795005344854775881511016280884118505962208762493735655721237578710798903055929173914345585165921616247720565372597101395321269617126256397121174880815557905940144232092167261168082754119486168291102352253307370119512849680035836211700585194946865374886480032560567667385750193119518174701379936729939276482440795510519828017102024443604006832887799554069076986367944335289058110446685034596556000419457724970368696289928377631719309671990189255194109385998238591363814774606717768136341430906613651499877004750729748685191045696361333032058210586551511263232585497680886192135262308991073121692487719254737689832980436957740926150960399458172936986858680641827484958192935570426287193710177683607477699619081779656454922084103969445038656516320842146509232987267802339292176351379494394419441669940016426800845122443045825029838367758598538485565177716396974473767171802605922097732895274794473453948763721974069854098342138156074974361506573261586388210570323704647000092852544036443746396665303328499447611810864063128446634013517918466278416699400145550345581121235808243823151015363123630805573497932877205196623458700314076489303329427414220143571545938516740677366646390887753139924084754777142248962201493000484153494072657553165425764984530787322374484466784503194997325846517249151144478275633923979633722398398762238070416299812064903361444294102414560623423823390421234540419085648848449035600725679414213203894952831597680664271019193550901420181130859673344420463573919852041206755958303379230673128387530700384193114821011190813609164775224014585804008972001703291528251806198379256128396654947779271404689951728216486353399910333061184458497746939987105244775021716240240352026681912805876107787195755015617406737841376754751085747014263400629321982016980983319953310154822236786045419240002186309380977790883980006042553223789828840462154488389324330665739239666657929925301977612524393667799224155667927540422446778657582558523683887110588608945634236482871887918912630694789228207492838576955437120819567151087394719131049508752011319723660424363668309801291111187182528076234528711416447620882721756734850861255273908922105320851112632139044701081817025300537410191617291141076719011213478214826474387889234212005132698330927295623268086726551017261988852180981367528932900255259001563230440631283586202004304511696975544996928621717650895229059579657273489417126595650033903702853355237038486113750177193392119274636216722841619864947330147784848361832944226129557438756586485161966607585274901347067616935285737380035475558372844572777261253508043927949114775932493066648516812124404605223571493217491527776639173636555972833430114236858084679514906580240333675475724388334385678129109115367251172863359323795598530709960471759006278162330204929345545181069495561598806798033184533244503488270661915142280052573000735432586162159385910582768610409107761622333072631170742581252525346631129415252406626777203748855458962437597505108863569147502053530524466473732272612893260495517036805023156678239246380782606986285226118559944578710977858850635484759719995128838686905848901749256610735463140926976182572812707411310070840342817600478110639246848505039293318893788895698912307604438132220529681971188997585060790555681477637823144228763232269371529995427291363469102149885307189286810101945823650427007675271428853611916613301403470610358642923331225969538956408177139837364369043839908405445617676328406865645460127255907529422840193005356130664737549756819361667131107289193125528678421563393479382161168316606534138626676003334735006611588973350121853611087035035257901468291008241962414423371940374340349627789999400715228946358568702077115590187050170738551086198575919009049557595176065026334773975804082217305834085192737723905560214715079241373618710490993635884811757246009989149362317472173662445578126919087570801517516189976714931036320838742847180455957208727233273619831848936477094680668740526371335793171627728332975717754638023691218112179398281770997159323789854893866305135010999201889076516758528586183449129075088444786896405341708449610479570196105652663454374760117095212441637257588215710875999589009946704252453200636490448938911448713207985453381857249977675674885981146933882737712104141037924004600070637870092729813999058899740302070385253920364609908097593576593444920365229888517557556133272888913111907311495157618243763490939825939338603875017095978013503967034155605174121424177157674156221409373008786104212211268117487772183782084261210970339947721090192791386565611080690420403681575973916705009432480000365920934369257017149700439022996245442643659481271832426773516619193417516056270775441435012126460229476872156668689170774921827578264486150690248275950415469434104408835995670375037863537228464414537367532052828410940071284305037261621401788081102835806754952467725025222854150599252973094023496869287405645084365300876308412980958017880302963175283005462218490019318833512416893203448464290131560646156485562535313426085463109540272663337348507869632821748394283691079689999706185652071306748699514214611702165728233468295952602405489076912755571252756325849408792259567247052181250991099227130986943077245451306053168403135131883541655803752613798345709957593688456408638921388946670175930880278643044314366754117689874528894007555788828689065988713440876872165129576490758378612108451584496169078357077105273810939983019571867546199628023405597387053084597998421457608491163562765974307388280654300857564652638777405967812719483466501690685143493242779060960253395103412210659896621524992756077868332482370960647238493075303539136225025105148884440150562919606291885658575296353541336815110912665852789206419774431851601388494373140506325553670645708962271745047595375384606881534015017870135245611071589008149078565987368753936007509344746034155092542033258816963576384305697513935083756773008587244723484857202607971164979564675756073662012526471481527175278819935792961272458239295344735860992879115778836379320234315588091844414351667299072432927081829089801109453772689104291911842688705878273479276314981317885169875169453473196655751549583850975297174095387071197549141153902443759326284985306205519009666096926555186897639648816007114469382975650061889844143408285570423796801769719351114053338212930161610097231841745720980230280325339090901576295696360869784748714193917624446437896791958218975859396766241757542421543257523153123316881448489968775561080606888042246620868244294200829287342863118165716331016548016435888174733532367736039335313117329519345712129430152755604702740531834041778543882766670129248139919246555657553595314013117502790791198275881118479923898731410241879571989400916755130043228920307272700018047768988027514546937296539341362011437914092127556400370359986519688465020697349704653624990067352325494113765437793598446429973613304269573272317181940361086397869566436886520085322974369600525458676904203285883912051669374167178141133927894223063930795001659587610281882077364482988807021339463437827781426030537906025758570548960152583239264919473717864439542001468629646592823151855735092552026368096624554763550642702612382496709544703212139262968102856822772539128189294539446323714144007289906669205343416239459656395436694657685711385710623712989706549056222951666179259157121782765483374032762140461183648282570967775724122172986585225816090108218639332431218836640411472059881893661212739749015048316633463072171860228116937008953406724355249071917313021388874181039563644358782836499877103326445749523006342070525588073391796991365748169358051063212332464837316180321102242545925273056480723016691694128477445607072250796186916431532302308704916639834842776717463130382397501962449666202927330050958658763090856909790228626825413392365868944300051632428243037625192455488670214385371761183801453610767655193143159011937099912777142650330459004737715147811433206278410651039779007493154345345740647148549945413173252663091090278158240831076583895470117357870492713015857483099745453379181775202409460274844976626650032611413024862403180860774094920400823038895830956350351914794742630116394554485889861113937518531822151596366756371467288240879368358415507857817238892635780815049136997229372653616364786567862523639843034071874606323412565789308921666628852850145193735968513446313360872713406269387319560994735177849729619211208950049110084942434185982719610067185408812543691925083769745589682938039153526613510028221034673294975423764942066458884426920232072108347613062152127929904862949058203019497493507462794489905651175729482698237710470722862691083129485842429302723617624702413763617348770201440850587347160365196596806344918253578662980437146491274610275413117734675461901585454065687271201992084730858725529350318363636219377546584018315972514419184527823069668405575913032484218963179106661921983316119914445574184147923116631835547182356338480770341060553679161824246575237802800648012957637297128648077864492820883253996890284361572368201866870773115860611872906009327534146335120531594098995657165755350427408244473543902870431859604047237641087679743946657900541500759251757007606044789689300134886604957058021318032679495791174969599722175792470936466211243082897112074921367640759544647601524588987730382737383883527637518673974019187547292254765247527477224350075637195151767143456930403376110743387275037543195604626932675383361188251779521054909979664213706842009785699472639981159339734857371673539284548943694152696750263390610569168578801887304210795852843577474717789385787034812062041187850842419621220739795093931907012366665453727330451518175411350902700654520141835405638605813737925835923510339819675918521725493126486127767562124077629135442109771509935206956417674405227161505867042050349414326607292200352674140224048739440353918517563335220578720019882464547118466062726606126708228135017406417743697705849324930101615209808752250632912105964837737368414243624744679629565596514638377790462456006707900963725695734833427114858185933913046110878444633823548046033897599137548511752657848975178909370662105966085689040246405431764170600004107528316868131016068332271012802523586094919063691830563075342853271172425559885264705140484483210488115289934275009316855063709436870125060858066877874855873694078451331110650206625416946431627545797651002392315039003504862590709292961885347287119951209929631909824579785355760340315977896098921121253705975343503147140139157426896273720353902902704214959421316221586174334576520809697231158819022410678687876272522587833623213054261408978176904231494637206514110110592497955757264148735599837283526204984038958086040883078456604604972626035169641756944980989162843795228604947221104067050375329146261557163133822482857832849311139772141809993333786549238801927756657415753083554782162559749267656107464124974320500345587984020931408376782861878145972387963946395727038062245986684119004240343357937722578982595448350774908941908952997100197744139825699643709774243969990708435291196391730520328029935952901371424543931242553246827178877674859373518235715497951285757563222696979961568703184567340563959222677336782417651225257078139711907615635432648399810897179114037105909177666198118239713782026607179872683209312023449166741925653779792085308232210331562514644239030074543182532493321897686470208266076023991485602471968517958619549182820034054655976286882456451073044421625713259263810600031325300344111194659033713369645694087016115773195954933157206015856747414658648177769878648714077517940770739180084576319866040199363668148693771194385057495127793641215877021167733609708636022190516934024170878830476272790349857621424484197793827860565748568408219891987051409836309607816547519860874274281165895684549219386864050973735442099851720708596189553883778272876784379809778480043949973990611404628580952611158913147475177636212453895947356163009417630096615882675065634629354749445402674556176682935557010753944486643856929908026962297744975897946316600162878588369763476983103612818089986619431972505463913113771537878894690355388679395598135551662707576728730386106739451530174622572816384243760824123784762993393655087377207531002254034959526814003364451899647734199206125056539702608873086812590278654004419952252901997458840019753627212071486714959074856984892254555726713661945975887913034759902247195277093438551146578357459128859450734815853976719963980709300846068416215075982247507991518710735037847142751926853995241043942399402545815806640102683923669937129475066780716421012710870785239391011295485958771338211428080482949909561357527566336191344020013215191289307034360154809660280155181464014340200260433449947747443139441882167464641074999320011266822820118037423530218053334328036790882508661895874916823829117530665887379574049471664527349952992115431080411767710199838095888582318523384606267707115987175614611888632759853719291034456543002949005254798847657093657232022772250808187381003157327915070818387175691297455767608179807463592255248316337599096931318804108344091917488894520866834587554485517123323731157398918002670036527706817319273086917921508346113219491297547430166906324562127464578243154134155879723058307987969528004611595535441296609392848399913805034549975735210988885753898975943532069965898993091680323783423808013161373448759008637501372878959957620821867564810294499872569328953095278921807157583544549438293555402097685936653969941438650237056262879391403146334563327185142290738907421725625970920844572021487925027745697324743409484149460957746664656592868787836132903261402185704375866343771188906886896718715372201967773902703229240348726528917342890716704248678232220937486888625370847709652924017790951100306533693068767961006321022531287291693123538665943168050751560091570410552704888612276856625384732251537532365350155767630916071711925083304705914424788835719773732870370102789998069564509920444763387031522690823094273792381564496669568190626676324701046976740144153641811229948788164477192890973153103675446774381849553874286211681953032539116054905358780370888501725714190819498986350075228623084842831777345595386505695032353482355352408430204906024725263682822516182548805767245724092042145291651803796971151870944169052107343394913688428038968291846368122001366395621225824961241538032290737032420198794455333228606892281098396688716556852134813206434918960236965980552645043866321771433528762512045040046970796799813380448146930745308672345170592516664299953037371237057608949241370175328750183747663533132122376713010073043481773665935533980839846827815370192715659578715036795812328002507760272614285758308146054707200085234788068999311512595084393424817805244050775557605360439462995947799706054861132015732376787171479472562186324150256704975891091244493836815118231152592563676201843492028665130757538143345454825787093420966365164681687270109220000311084250907359119661453311869046070568084804219962445248876230112134526064534888985699271168485734734843560037738238827752747325514883493082488506607000262936866223151864746577006576135293249263701177508784947783042363173942350863138294439447182202902330370998276370681610303833062215876367461102354741514022852091651207017586043706211823981053901297334270016806265576419280740705893699821068776968684408002657416351027991582069475917432045504276869969276514469454627077582199117311926038493918673908599911571027696783632600086525469706065355642512225145810436986586007274694851638046031522622207287160856433196551164035641529569231906589234350188079322807044070372820745603551003260209289011417637311498193375158564382252280741067060792136885405665126030611215972073880934721257430870749150063158925509766232468421883220261101344173088074835780513844738569579212348334902752205451700826566316677730140589276150035797686861454306577077223139312366810890237166409416481502719696239248576680488855809280050915496017862371661384435346677963489933667476079314543688930269061761784845688467067536176585311529088491008834867981354813630254481395059692759775184503154178149467555880751919182413928163058845311523816896137961626677489296016727908601835476474139672066738772093617138148977070844362937594066098479364316279585194667133802185754741927324728463908822005049812208790918564679713339040882752097344788002331843312279454124788602082201240373454009974508091203855409679366024030930651365622232836199066404457144404260441353151329996876405727912995293994121812212998989175308267039524674430628075661153738008694713527839868809377869877302172105011219082155129652323654453011712974932087242064317402385005224139607878964676965093299333027619040009676235640362808368076058829700783143220715805380247341335394087765572222064639523369757366412190850119869428133730504288075625010740699995211166388867225910291665223642455362726469839588688546598150821479449028390557006695490882135261286469961452051074096673042774164317443382361229712286362301508224484713826237660620809118008158773079092979008936699816673258815043722253235230349619431793855309192455298987007013640366250863855989902197417753732922409039937598637490630624677719845459524923818571172679163481252819695840678848982576757917828917052105584195759529431542887361227677058832445324435615864220465778272795562856365195863563301065757598878517143561508444550317890226310113673678235987863745209350360948793979432439497485534939835887228608355938895867868695454768743599979159164608754168707327077547273279297706361785036234674035402930541538492256106538811339884436469145995913949791504516145967270013037410282609534578263413820836813160559905852653942902785206608143418079816189115246832584798304011925814130207829543241013179054869343983236380365780989038004450388160209356134313473706339363610976543435543334829460043765589055136943764976935101875273389223575808068175612478850681331646667420800091754583095790771595287942127141145305774107726075578008037964638082485365017237463228736901103808750855302694606068780296926468987506628016640452339968796351815719097111000471032559196066394769482427262080111411286669162108972704055428447496104213404434460494244736282665044306159857288543907402171171666010793466330999377513991981415388980407314132041613906108982360356330874996998887510278893933343311846419697012394794548818261864586041339333392681440135360220146997621209317881703719642280966018822315489766537071851721483130942945769325719417349848748684010475048365838631465839456496342257681328759117101339846564606852859109752589515238036926740487961983855824904019378480777559122910291759239230223233294019984624144582681427850167125327331828343708357303948672446940886541512044176852181750940733359230780282934831068732626880444694961918551835889452739691800712850571842535457556154556019240459466763852635320523780208791374796781171855447368638749869523044417912795136696583490392972789803076882651494850247134390005223125146481581237489491571986508390381999716935914084922092013045377631746724354382558365125044413660676120435080321381402229391668262660324488773749724759361801239551490115219324766085164504724622497548856202831824636810153484271979448494414957585496442043737053753944102414716837026880644379209630549458008289827043438162563867193509888161416834581609706632959126654459926136976401131436394064619038879134429719186231953262265250471378365657725333222026525607932012143693289533862928667402837451222455551413325944476906748360124327242032012798867907834019287796498139922236800529172399966191717940018779012833976174161993594495002798448672015423179567336896823756572652145635338944420003600158882152137755885936241313396800518280444476204633291659895955800203061418409406137785114780503822246135968480203098395747261859796511821573853961046595883668123110827874913364713223152580120181898298441539163568054645261129422493573005963379433870564359242742829033123926591209992697372740209494261566975730601300157847236911436447249869841904606066927709581128630680169638337051615484875045387453009496757021610368083927724083166136905594168643072534251590910559659889441016245458497074709760549654324675779684433693882717810541621897520031997860586392147853015885130147612146660690572644750535406978633530558440111496393647490132486307860139749272412356331622187351943823685348978338884480540022877744273002947004763434274185139113242882878772038135084229403227450936523306595380787553429438225350897529547773992132401684316596830439963122295689077635824452426879920515058353579300596636261505443189655011822070301616897945568717021757562803426362313805666713638292779144940983934861648664999200889535818255594356523633903330246904779024538927019813451759568734423151182920281198489355320129006787687240365104657552081546389658158925224863820639133681889088168752007020655551296443265816298338668504676387924087199017617544542869632368255351008526672154418863097107489259341202588586385169060637836174424845782288429709646909369180710861042515256529602663425769367459612811527969789481618771973100098618059506595504696975635344311406264593979687743499743781612278489093550981630537239065682569662983290707613680436250449879598780071139902762360841511145540642711748415727127871955304957802283941911780095893493924252768228471305151642966975867978314218596319139052209481997066401520582189765677389064025641020683714223508168065002985271729520862609183938825079694580124063506666237281722779903484633181471873540051010052376058653773077095702638764794271681018438717408188305733929897548255750474679255400296125895333884682343321337091159985267571783140519534392215222449270713227626847256495534568113924811454132298902179088273823108293495099194090006803618414584545116775753129025303456042149691800177897101142519761350216303252856614793832272915797279309771228223408799488542438456444243970480599316771662665920896639081592807746822176015315787611334305833579673933010864627056020135919309753464277095328158202763600169489044574118788951350138789087802649835531969506201395299868399749201928914497271256283269653752409938432867671984034757233887915307656405271921477837078721057127184342262609617552812144894913017517004320400808323813278666208751708319612169474379331549603074595452676606756623515452059747025239684668653899376584472480240195618550006151633920791853637034280499789672883139590199613086864282630192908608951283395179817153089594984915560617246804460525159308668366043294439555134063476692673212749587741587941634058125981807412076580293139191090784369169179538517673648475908608912993219959913468823735998664601159270505219499742333137092497547668655599112298474460054477338365410127077410451957817620199364962859364392734822084614591237866674267457855701115327469276260875527917537044592391233550931243892895617485089632208006475016298800712947191459907584538643517259013815022169088659221593024794902194672398414907230245918891876327840109714231682180192465495285876627843409288878056997534987355030166728358864893022857963433075702458441123957110479887395014824904660886036027619560026158163601266454758193744782027301016564416328270216724092951236277292138828305267241624382338343483431024269982685566581487104540185581268129569640916404510282746253478956979017242709305715502724120231694964901834867797784889152025557073854092304525859663319753334723253887872123974742269183492073850343264067595387635003902008695196109097620726147758784006444837672360297241865062162532196205589873652081772909859203204973259758768350045888263997480662767075107833465822141324565299918686978767613003074919691078070758223346313770452454602836280275729474576020170326584336219633446321540583213812385265733723450790577651087538898086400284609976607311051221827826937488272038523262253708021215687157572778192863692823411248564545376275271888961293919724659695796235520952088628560642181113958849745406733567951643396533579279592870947362275356796888857137313764899190207564685205474177698949982960862404180817252555346996342924111215879865738159895011773722600678711150671876802609102861252289816908781736782370369576607333339486200497964627047917748365384945100664759259754256994929304635133313488661394019479529080720740155784209129813434122456621749294169300536243251889050968547340818860711951593386298887938250649584517579246801253153976698413403223467427720480058279147055636664353218403146388029340828266993532477064423835795264037762357886629261312840246291841375305695614847447616764441458621807097971535221784998991742701451380719394068717889035000591710136210830657798903595117877713453111050583726138589394710718588257068398562770241707896817542003663261113924895470926897014826308332288319472560758030043092882303338800572819855453963243671830814179010667402181914981179027930927236786773109256168333932670106247766343651778957783142250640355939964591178157063413681542476821341647662743481585931210498696935040547105561511053029818307972159216463935616193913289912333544451794282894427009857597143612957929332109382726338434615792925767898638917114873474749348535572339801133884064483320481631020871293345259515038700427222903833059352676785141008478075011035186472479029982596893637203845656038943525329086739116203763180144822929171916380237503655166088147384303729348798245266637691241974158915812346511498248133406690551542388323745899261018225412199335336261884801659092763873601666532390465116393073761771648198888654351106676998011346923912711259017337212790231553472381656452028990437783522454767940078184402234825893344129127904694518391249462104020519627730348589994226126145280051128477653699281002744910085655596772870765146539928356217087162002842849781434495141145748231458690705647482012701036167330009591588367240002895713279306159550216748391827591841733680115693719835760592649896418410642027194892079024202387151539752460600885028496490676629154364549521017017130848921015734126710033882721693725598054074417610463484254409468492026426450956534671248517853344689411248027817035976572942386593138364799708474202994918444481661532303060497677351832690496934926522574603286492649383098391713073881733745115074388877978623746078592881808917829890634658156635282806184875364154202371623529612304537586939817407100363049965853628066336624767077319122747635898266586847152950292381237817195481897490388881416608470347824714303441471320431652180268698940784914398286762886717287299295029634195649215642907825111181109742725198904466768807386800260122255744428238570078945324199427020588501520481173336596630369222530724748705649328420983511627027128365369664639904553373273031664097301099090815616199645362816054241942583124399225473144285560427429006012944679731562419455888722180457766614268219828193828578705760397446419464761167845703221186827856329525754075584424578977957493670833632464012502267035581953763874325903757789349585643290266295678833204426576606696359534855126568719501894149095072899106312844455484185345351397917779648654284238323112439262150165112489800875689141880973691036930511097998453708863660815266564448473648202093612538043934482152281629983682474739377639633671130099420695783656315132888244927744872106498400460757649412717724715156467822124595256918717977417686161650480106771108012011153678809678604856529042493821099959077418473791120927306477423853041042290239058192608809892328509041004621084733247997642705420976933687559679639243326096057906679353610199235641047806804617288121288338136312597926205896755363731453590060651046644350861539683545724409881735755800318547088496422659821445629037545371971157385868333232065984500282777693126125353980640659975870311043584038136640812373178851578451009890901186553319370528024445256795510946159564920903587509313073283519654403406756320197373910336666847457501049033417670446303880368043102717136098617793735547322842913766976166419308433917090203269810237482837996230731250557923401013030009193651080146889016891208787369033170004726898831221198057681832365871057489952937884122047497197469519786505016721332739059308277905200921205081662395699446659463672690833801596022675010705208128977041826571720014929341591952198822779104464842743979729160819550446236798695016874083023684798576829411978720917677853064560577565876871109549816559326185063686262697122528745915050213990267279864191919448837693953675396024216796785896923460887393421016577973433530445054977278321372419465347724191486822048315920384396039292742227014870226415986457914341422284997772888992758038105862227955750359699715495114733539529577476148369585816276121372238529812346721789408162253017940642854843381075617964045225153117626161570496924307902486430389823444256002318868473623320717300883142759363329018215758111863299520113278134408020033930887292488657018198879511213470893083897126901306660420681811244905694134885794802271726305370155228065124354266686131348141865744731744071898066869817747525101269592104646746345740705554752087616057083092603439345656747523704479174908487664078499833414010340551223631552476304519309612111607043742665166823362822490314659961267365309868484830474493321311040577179744234383560079498651037971409768880156057050177814565655970527106511496233682320141208011765191488236440112175517229306392079263055802390877833803454033076395959823247742480142427490394179276971085818726869437927657833102456091455990620656622248491603007013524521698131188301020967624613986906720580842891704548345878965468895115143363887139568459293805954867641131101748131070306609608208656668916294055247842441455468664476634491554711036364407303107953764948499717214298034174070901842870816653104831584152944698964457906957917098735788131013616205433790583991010054792734191017371768895725844523762896153333822632866865711175794795792498104492145117233745593928398982042251589550994305927386891104761194587685147198623769943165239315279486653990987343461702601243498704725990622050686389510954361871130947900881439180514362678359457556245052918837429974649266733070465117460840657380593243343731946583187005713521003967374400977572138417239633620514370318483642920878784445577496804880388429896361268257062982087145725513854375071286555783200277429079754262383127551401503677528025744549522300681606309235367536027268993136574913352769882138930600497007887051065762958419776624096229124929221236485734831992981318288513565104586550758384416312349580956613405200749887358387062835998118833437518786594170673964920780753403282844066546667604412729921489811102031119223696656674226409797646505504957963693389435832420262046739528900005807101389161379144229792773966961644098450623785581547078164584935157010730763593022439032761389085726766685546476745587953350452195936900050071911530837056909403174998664446885306023776650691668111151784783594115501476921771150957879166459593796539707551129109092981619599452026506873776363623797298449611504844245914151612775056807062656625278390518949192743586160370336957710218457597479197592826793109400687855216581408218672379859828264704393790375455290055082760930302704487340366091572230753843277529700998836435407302649344038996782815729634012689499585685968504512256648273279607426513667558631373371497548045329899661595276173181084772679691174110948679860118805824410647001067819302952457966489099315881961648738300178130336744606745111703274819304843777914511812949382640623806300988400761552589648281145697224339947917282494296103323781538300751872833856069410089018629044579819512271986660679313264503296119441892492617202386173566444874575464119119809646672453987958657625913901984552826247417833551619535627970564412767131434055651578733828312661689846940690572182748296277630369898502272992716789621475192237612723019075796789261820709977430047161958539138499575232737610832762351440912159882576697825218273275694750716632513598908702188831967355690978381675837495465260713770140919098435682932878768123791373162719178764204751889980368232397436234371133843205058183558820583713751655011556071451335484853956935533614854367924690504788636377115296835738044300680783215895508017387657137573730224410406531959266811921791310008063145361979643254924459082611827464982562314224882776914562239604649346757128415900507627580790657836330539278587785482093706864782202854225267846589995610767978408373456441175584365695354783164930194444474071168538320522357380755942446832189662805039066557342282490023818640615508521170821046358983039875233667838383517285407633625248895255534078974170598170460560635758595390690229991305717896604548498878970789675920192006774335720551723993214037371599705590850324015806849484194678521769086851423062699730549824740404574768507273336816936374821172023481821015895166090829019088614714933808461184626929065678815870253992068031491734691198270748301728560086331652873094080048717196407131043603524846204490912752967648901295968083979290571624658040775272248331057935048160413291924308593490032690637041016982840422943962197049175992813395558962773612200403083845572371625959114437449883566736099981458378351488663978873377541158816580134287648197113225596745369472491777657532204180848669633832568755597074496450542133389767361432219336886894045210494257010316912423941582564512123475927672197891094479952083640612334315769355468254909303944574464719665738811137343780557804540877768100280354694816241034968238814080839735728144078972124034141252866501594637876483381619031049171919918195311261143059439563390821071999783436609031680831841283688160772997171155065715850281893384223886308618752628233676392783397402540359847668732121662096658338204901393797186014794550715180021029325236483529447923401425163225264225720499521250535100124142945925697976836606675197773431520936600748752310677183955811661056397141450808513677502893458964112704889015722865920575313758656472578082579667004173898098735871979791639207679455115727361939340428019662180679718382381347089065482731691360690654258196538720472598637804244679910467381721316296653558784985643689957318183469938763945595556665146116160589409397368514129246545595816035096202009877527132883659219569843354043994302946285414493736312923778393823243922718369730602594165271768267185125645383361779479307171692892511835767323654079390053492626570992325861107620177178084294171802143876280256550565005602798982570424714504002455523894078412334610113344000176233499944306289020670047534681735894439358254285016341828000404753903476637145556814925529621156116528796787452414136803207934985801853553895620698565372439516658790370671902080072160363940909985869637831650759747994444854210160941637087578229082451224120087783320039218520694751678503834687588815753837170036719822211618438867338598519110199109473988802070820848902520646812796731444972432603230405230934969414293681088940935339325401062635780072352785040257951028109057692102830597720372808086609677261635305385886082728236597642448300832202115360216750041242638029094677297617644637402699683522724877564247839697682969545188466035981187805735393548235378438309822282193675564219396186153663562548019371658872968327325513816564365282917062350440589634734257287150852637497785932996438398518506539143110684559866378927858633763492564104008818010883334563279014984719463270519124067125316810398392902668039930402061306111131614793467485069619974027363855286067741736951320964731998535573389867577661894397671181824875484178868937848959402739671694729392521206723436631774946754414060903516712456461900305282872583270627586089941610606622758020223447165879109715731691419946498278112605662865759975993551057336716747581758277384676920417895987964893985525014556444146739769050667969370017058203585156022086804126803028567807524541536694565564704575620057412312055657603337061305024252290618973228145185377270048278324927294555642309931965874906210490266123632021591274671735325003615036601573469457240048372065332989119621498952825086683761856407109313538483388822653520997140736146913649772377360981031637861112104635496604612500259591468813883389644173634237575885897574540929632450960042267943042482107389835485459981942722312718878286653359091045689595772660205831821522879116109494790486346819156886382948583233698880828467406749053775891639127575146102487764403741937128524092659197757807258514844783299409149514166130877019536770957901829056959620323827686537429123783678473939891038231479847263968265344737394662284762268867403474057295027813814853011525677759492187191517288330022805645860552715216426392906162986103551864689230921599658908640993469791401401472100297160784670118016658853320592460025523980194668918666467933088440407416032425942058084112976593274304094772898838597063032130329813731317340839549787648004011768212402866068741055547873577367590930388128893403817268481808030401449068586499829484789974249108455008382095068658066611909294627457023721760286480456431328400232668536012476376905223112995401435516207774902372267612402081040702761708690055753923916567578857482240091374516055984544674141957054401235497026713214772027411167849806276224719177765094874626553471684151087286476331109567347592802878825686269258750292966769902448166561891449062170882889738656946071836629903802997440708442810145136904717459585443069203279675271601494060740894131209856097548205065071627313266177768677490056888102907251639264226359055856658531063567677380544592253697652947393300592693056427106678456124004428135517626392320950528212585894404723725585561154756616927385539949066630519725418504705247775535942836532622418098491739979149314962943417648180363937048440819776673400091905652706383297969430649295871897806724455144317583344817160476571775603837831421919941265336337936485691312561430428902924344018206842359641694293891094014519030053358088856110412308979657532196455520805049441714370418060511905694217433781758446088330639678541639320299694782528014745491652618618437515619175874090093681992341639830782709919171836744503136548208193999115509657085925485797657760102131572078038743285208563583115310546739232438854191055154389963603629537712606113040774539124540370013612085906005359608293952947376567495450658768810037989656778599641970048236703135069183260382838743211553065686584589561088123903478449298544070981975344030812904700675594935124772741542357940452665634129124408661391067732216551626961275424291499621056420308302911889710064721067882145614659857983125110154568555892246412556318873209199739944235276847316911135016755675821455885495462427205022428675438145769008949364219622772977038488397998280447346444766188119754337263986298000242060465602993592285568419563129299982065800533098125295920636907028571865783623726191795738451758560146129149800560134089071000012715219057843193386351634459545091496703747963691755689730538182935793625072801073046144249528685257507242596586918240511377245383413193149554820307428783233208192497249526234050831815855211872494823277550721336167714443372208669442107485470552702049290940488421581364350608354139847443801165952820997171661951375978653667231852499618513849474611189208091399802556986793069893514576123873635415518968355043829698851385922854211464653650248993576132901004346016706598528958673401490069923613295313827213253354982848478282690797979892212943248023757423843400486786251449154236938612346217508126559915146697020345936717527634842790224671030085984109575415720073371152802286218166611850973347662162412407127784490790941000084541192243905394094914168740903295394350970937828920160818286988078425252963853599916560203630236004261017477995057013146042449430540760425568779450789981335795151421156481459299192450774501780985558921894758277871707420704417031783072243179117980274707597566404520702316853105101047227518575454463728291634748980543274396282678197263164186167437835271284516575365592237188031252935594031044885472094112582939380967536477123382225123341943478421613175691974989347207339524335651773526768701764188726443496848030856600151724447727474063825007575874477683632289653486973155015062614271143593964478031555658431159556220282624649070020211423075060681674128691087751817626481160188962763675693792167654454988405690136511919188640746118399203454024396437126077977614631715424504780419284019742176286104686290150004880599612351901762212600973028962838655644901113360518986751992208345805727284324702570822512754584226423108592969256198015805199003669983647630085779166911540518158766910477639560781862421990882789436199000898400180760626057579289243697019728196823072364735981314417657105991671726451097105291274416932906043944406093693514264398035197203434722339639288551118505001412598078130892466834657584264701989575339205196557478516963886721512085543253776974626586177336650031104333452984404790356213124726489228188228546753291008920809387565742534456044885378815411395970202305307609509525537388943065653536270845408613935024861021882757444146644704205268734475763254313919630333558090719499354099479384608059748465404125214606187681677821720862670684132337812699999802287777757442851893878612837924794002642118540770635163493781226830859827959193746365551094071188568510652216039585564725458774172058013076433378396780742288360804667368816703394565169762904067693853746904329822218233567799146506363938115968873884336254052874428322809378015164478861719985698202616842438861607970020478029719831594546203363379935586217014612398565925775769301561718359167014589081760415923951451398142413993865049275705990947266823017169747284642604178540895559731532335976466199192006286229931061176329102951033504119675193378110023782930486985509957384066727900668471319823056034981709820913023620387093276614805974579012532613390728080760671404312592166572483182644979084181248696945850503390659529949607498595002480043766741633983072064854165078101545097487460955587962598649536487202804754132473785567886050893738825649990420493338710348892729336246220224784192781365817925375418953737847516593066203145608579788289169828492553042639696854198408019096312753902513662901654965703847043792753786965444863529854160756520024209045750145882336145469623710788648429906533306658104956688482581588938516859256301238933423206852805585325148706112634884519461591896720376201620006610378464180119322966394278340611228287739130206264449491866352607480520206867498596633002454430354895267011929428840682925601905667349612065368105145097623670675633942625422565883567434586572191177410736922468268811564397644306796818994980275956535155779262131423448836528367791308760440557465764205179701994410335565787303985664801392974612977215430322593847315320554589354356217594028336534136290783779703470259325595775480529147754435234249149510227638701057025193260978115312716740794019383494959156762752574538247909676043580000368403340132912382745749326688821041799277772275470496112977020962362907101184564778636476397671633858443755484962753753247194505897401379927441498821241427920589744443282144279903399931621898916944433931266858295845678027170420277511821884465456142416398295614706194541064986037317020186381947226302935413197064969216110976790877333905563619545068659939890010002834079430597035372910036114215211864155763552853183339558342229817055472431584117288642052301802178070752604945993526738227430074452999938606166562957340532887782522672002504878151348245745590823598993460309988820658965233632000690088554205972334845374657864820336298540155662514095646396739119318523374365353916100840235685032623934319622843739046381283527120130341375919471980437239617527718909552020448883922910382876011098337386999692127869913783179005473421666623182450834542719978494393774725230337168162126263256239132861472189046489221928888689937723132268246503934714957620232440946174382537650889866155613165650677581578773762454769029414856911093328724706644341076095769050903824570600118417231102995740478061230922172054090841338523380651043313008194499812987093439011318587287584748919597271621916078032162006935107822257216880725641696145273463121153282519215534768829840382686303729116931775366664451150143272381540575042795308590330384839170015452746277871962558961125100087750588328839978395628547708024631925003441326976244305905508555110336397045642202129714098716775288378542455349392295882587160827952517890608832765303631335471431206074815263604362336074199730349364619248676913792267570122770701687425889360904718309143493467452182359304469063564663528357273301450991901588918585839098427961797805702626059688353599402290122700071029709766672913527332988155363585009912480932619621419145632544240055090838802063426060852319203087018680492245768787416425302003769884419836615251172678150573300612304696967598665057255200820810385798338355646688696568491389253307531207169367564456934437699817851937759612786268508993535849889975436442166281113256372521061686426290351747727748315488989643496398231044631123058377914649423794767002640491362434643875626946723292720792121969624967105226259169412466928581971687801679080970993302900078893120023382653228146258538847986607079549679357532527828214778943599691544513379016341212782048384161659928703953503909069948822233712186501263224961180236698651677601728750134238842353678806558840811121733991425621526224511466795659350283690762227718411985965595944970819050226571082297744633521554682607856079629184042934783545039419877660411390111321715168481717309764424038911999462002412670519370882354282314984934485935799417145816836691536868031792380019731733372298971353881966223637429895140705704579650810986773166665220144644205546728510850359515724188204917806121273405464772715297737599905086602965229296514951935729262603098447371745961421888608782259706571281142393851851448079054580821137973081415950993163708333976379860989478562538634625579864199580391355894694393242524646658414201798952685788111406932999066027001199698998410796588026612107273234596643043436672783188479674917830613861173387793112964583564876833472876937443725131162135899755463279401447835000607907646667763358059386085756971373396924689526526470981657934765418340502359509703635344917472524863187543413657841533070574352351274065169718488085633782760506704862358249384715707754088656410073244198768056676333720476337182319929501027296967076738901603649530807664973237476577986315807599162701032824710285369244258844598624474525065280287982242046107012353628304563748829471913339616479028083683672024463254560972053157160564659561242950282542693970300868476756360100145203898231204788174887099555885752757860059149026415707707295247728179832314329864470532367293111062774295530373507439439191172972135329165159291179045503090075524661099177383951221512065171476735986158354691666762846009771807567867508444175791781441453221773455076814239510250777830166643477305233058811729297002360273360553799654263973688877182112610365383357176670631400623903643472867634688593721279784727671731404762241237948223166890500357948552774657802005546789593425436326085264675481538133874988475545541297584733596001518956527589775636675638998514947986340767473953653428602130048901482346093992909429876514371948797540474959948625081838021178714603097120451607487686012634712756285226777549936608465583234069082362249601079668751271511823999378238906890622628589878000627709838938139709188157923864887793010436693907237033709764419937329751394457606512323939259032791976187446449777196212681030651017939387411931610694635400628307532622636661493685892507259363141717774239027422769428950195656962956394467297840312621887978232973098630704908518858441816247875025873096495266549150071851545780847854418732203418195947378939130840806946255971096019512866618064321088590443502819668471311446828932818659110502602723172394254081709576793669795830625521772769604920987920154614260460001621259091727139409162196814963199401021596921747771710039476602133411509096819218749070744506914697682601878893535813207124349070227023212427594789859774750790173101823942560598350781621748357594782808531156651411674508837229386927733559704739262880430668060279129209806972476618947319215604871048095136455085232243125542966772971054189533443827603740340665009704162858413486319650459340868394282744038561411719178763730153780136130837447051400703709884618829405844244220550829398281413148270673429097670990379589320392892756313233221566792650304007657121955585694328184209347804654354792734437166867242576771096963622461088293993442012215671245117480485309383939282924341696029110213482730142779571810437701798496292202619334386762277862890403343053224881229571319509612341537627516658339393913283225429102240332574085690812928933288485644065940800620572281516324840155110056700141399008358216553255544562749418803505004077413767620739822255576947946763646632806805508931542357649724930057425405822104793053375086535463552200989245321811008354664232286332018737295393778411369616875388184756193997004051951681935538006435674061615892028659855181687084189973823296876382709478900410363437011727700740393650315695384884287659228105016771578938810321530219619403029558683479057813852677994038337068085526094410641613669876225282879768818584641715708243371165230887394859029206925640451200785394309329171769687749510645734446171313595829145158489020642477738735508091821724755849417023528580763075728740095233033227517473704320439885116560702354630361902600836901173274550107814239951447861026104348778417609641477658271017735348207804922785362356991699397950243317168177448073511563964735504130456953922373244153927434132185865425377863840696933564066772164346544783239264590896918338685058511321145457298001742733557751926351205168405228533061292771897648178852804579389481091393532464480678097006103776582585146115901939512895207921308189458735419811113876702217299047717713882965515026720639904491099347302156598471037774866214320119478752441757096627646398868162239624395000954029998016423082000983021582904755068276995662477060014898835929476894224660893674594179592473489019786508667108802564475836468531245839790956239340518047092311387053385481457236187207996379307793344159284891103904369904934217069279609672621999735868193748308111088656973352678159691388958169404716195807771352495305886193712223003691924476736604614948409606031419968666172708483767901826800092602037663149821840921745418513355637154255681117936107389629650890104010062664111880299678480223601220610617750373624467396943827950870389303147897932483398265934708624395243315405145606026111784533100424995970281927526874928421606805093135532303815770603172113499234922960373184409847343261743893903986374982642549205853451040931088668744130222435599805085481846623460218765601787354065487923679141815621041916527342792099076724054825466989744591720689338657807126801184541039052092719106743869699703851226869928502632646024834516467544002635574260970225567327828637958350832527018116272353123900183070573507615153152658747139065300880571837721773748210963007216863200509492584594448272274957838799634480971300099434478185408029275621226744710415429610011811631079883487712880735508685127099677273374339378833018475691336824836728858410707488050442069447206791233991333299341558849065981365387163992669139025907744905705404088278072601678810395402791119969347431552413608510523914651091338299239142065235594236636589221612722264311697234671185458484897219736211458992645553097370843850421683739669356890703854078015185341633796045799369774260903628605890175947671740236871265887624747381497556105117086065617370810917682123052324739737660512941271019973471064627338935734949195956498849995730832313249152521101396755717585405457411423396091655282313722934370085190446020989168904843900228525182549429694651225156547945555337278817372537828171988287425040505505477612602840337080844737999265840481241987835005547921070553376683470524118666010570346468958909296838681208574265035743260777978128122083300674352902021151097678685009002430017677264929831745034507840487936080920269065780336728669857961471771477312253708905253453958111562499396582473693947406535382828300383636048994923803071284181643534305127633469392686052100269361298587207798370105085082521832541242671574858028357113315441147452205348178558680658000469153396080788272320442156352658922198167740102564707611213249636072399114598213835791482564799458740174743918559951316613254545237582350817677728502489867834771585763646827914303922437117660252958494595805195560138271403770791417577911549083005453592833558334861316309444137640266329763448861927197554482717266928867996085709034433497710161016478934097780573150428189141269606983600277707658874192717982305512678430301558565866376960929205952235007521676671736193465463530609917188980856969798092202195541156918007200649707277446525011928360810232119616298849357100245819318862499341940646266655570255158148793421618528166245063192959264820530664789839162873385801286438293094300350578596970611719107585071476421092437078702611679719751095594797912961519768661606277938378758956228166693453280614877867282308503484634574650436312754191982948702182700272292729684097045808753771114839490280243841605474772093153050102225643026850250618733041398847766103856968015260481770756820673410656436562775620170916499608640034979822073867406685820742820883727536299537496266226398866503380582216888548164666350209197511350155112880874395903709888740116663364376286247287759477279114456729287787685236244917111104692737358867724194565414566209005834786596771652581781909133597039319110647012140760976580275995606203257819275484403444349163821351954725753444174399114348674532382020068749405676799579523327557773681773685234503124001336341813237817918031982967819516095639405438504729431899070312753028064384012242172118252978009845992969326148622836394512997600358384240735961261577542484480439588435371896070291262385431465770469782880041706667623282089839772515695306243203834496003093745983973126401247714634450605303193800757689216379466660619168943033982657814159448181468551289916727249299054569928688080875984376189429220699605409806308424108537517173783897383032268214039120663116835243765786023793710741961356036837882854131965047053125740920994411347745256011168670879055888140117723744223344076105467411620168472317209549732587338131937428142249582513519660107163009010088870304940542504370059040642845029439640139104517267645884415321994396986613989496871966112639278451881919573754311283574325643798164623874784976827945953567780690638303921941330585348253457803731440154127795056843573970887148170950683742638278759756129003731574497389986605973145562549155634051587739501326107307880847404356638544973452337499536905727852641361607390550754969152327292775310103493420590391401535740489370611792448823233686846230783130819990721884893315567614866573205156616093875834770130564407201817952525279789834896176372134377805193643514054505875155449962008009642126422901604025950338959191406659159546177663297832701477198319441196454081019438622917837971302431720547378529544703323912193804413263005575827099195870675984515003945989617157610496862766495566113702797598703480586861255798447704532132667642025016058563618911235100471430781723158802978375637182291412249416961003716721646068934984872377803280043917875369403400482297822117835120448012533167233738275004094881486827334903999928969343050747611423072147350218606269352872510030577585073050136483392033909705594055306070788793555400819398302989924213267172661808648185264990873112994513283886718993787303584932393429080167729431949420611114870313438166841112162835148861897007517296587705199126354482414376411355573309599859367377068576175925819312880446541284942579090863593241513243749435819175061535748213179904084781896435261664886711282756803324392729348603904167745862146701018409091407825255168858395565102710144112756399248127590379058973071257118497903198560598399454065945654814298617271798564235117287922917589475321844328050981404969498543094445755345036264720639243968303620085446876478405851916157832443177585182730306566402555836676006694992093904086861011424951257089486777157855530293327549530089346797322828318466997053397157387072273302041054825649189280693619715127328492585917322850672170748583298501485575833630648572943401254969925265160431322090580863905978303407564552672483665748567279553791922444045789118036440361525699843396628894075952196416904006163907850677719197509600693802651150430861544855660685375318362710193628340046708790867363850045007901703314614082170694857063201608121344156172074332659520867249943565886096670696864365625424457481998444321812193475494004742195559796071445828861813996910594846419305980020497517364740795075163014529629026685269396596021756593696400968951779803513124541864629946471354051290544866689701908537612289894181926750925663987268651767862189255233442792825522210790662106878345707201298345830813565875114803711286334086470282394561723427612601658874138989257782582839002906205461266727906446696039816785424339964139259139606377585882613366824299569100631138932178562036298099820080168569191391828866153153102205749394850865722893728233465331824591038045319525735512540443213005379194840400994338529068092549315581779861224600278269077859516558899502293408769369943352216684277322073242979050560499112150788552487975400325856234644720672655745883603431402776077484739382040853849585469702080287105695649944342603343984530543752697423980048350317387087596354016153076686470578380162772280249239158698134400489817436418202759005663744744484637219908182438788149717835373488530646796485930389955417472367258026458696675431507016015429744462879368560159430176336656789841711781768617164392575528299676465484729780267250402593062441336218442795689402096728491939682404839363557810276557217792820436978856745355411262995181613667234966476411068679794436502222082517084325317142706848299048063754932054849149854748647964724316751536754436021954134842698722768214107018645205671358949563833428216595413453760569453388928493429294103887634323185547922915788536553286862813229746829568397931982354846145912303875748808913070700243812362767524008956209460383638080725105718905977036922607026656490713626759975059529297973985063873450107674787305236886680792193284313361096960466023844763842645373433198183208278876490752125400697606748211047196066922363702161601341210788635398677679969059173910514429879922419184943525756268120489396671511384273759499433636489602888917025209080764542862788863952813732887968920225800206794195685481518160702989772634226920044552333085774876215707622286747647455782322615612876898404463800230547553663315964723348341183519058946288328040373163583302140291678481402450850425065903200020223927425295341858545180924844559455888768525434752855567416429781069526297346060929400627676731726364302373326837120980340506718655510801747392318538534596645459734851160794162613891802140614182276486197964227023674054283570003898360600643168075415688757709068262998686770257148988492276476084582973988028522745557291950843797281622348863588545122091963664766184124553949873526017958751231271975733037954222051889439452676270056507463590998231715794103711876924023422016401250373840991014299527438992832021987266674854847824663377174873338303372768328240513683344107567454424514332665049442889128234002115852980808244594295579335658816455910534251070320233720910597277360014517594657587788768328703350669943504646029867303816529432274687849950350133847342196978945309470254511967810035275580499830731157359933330891750189000429678619972457431671174885408124824154407873920234794952182168603174314837947979824781801793009751078995766263627081804931106257229071049368174993369741983429732431887145719245322235366568281561626520071317844065750484673482341320968867536930797542314950372868634243429718366702222683750364854408926569903310797736932770347669388053589043480198295463734515843782606229160105485416189537660697103700947194155791009879554524923064258424161822670234493433789498736073814638411496545649804198802233515111122932539919096058713766568349411487701174291414923473163554592835567345190546268680941024413336974307328844166393941785002018316983503043872677690538602120304909566442735507767274016487200722698884149225730831399540620707317785070062535199855611307509919226397481057696261044996384154687673008959804948957266844579509021980241951297382794670383161254457625481054839601764128284651716934217092444531775752146874661064146597894434086835543605773010015504742704451375756384093721601092368274499145845619635195849805177830658007758870128268395529881077634507866149223450610969089794889552246479174607637319725226980721495333853128950142148525299019236673340166676408595762721741066910524820582428979925557769161766759866927134830918252440149740948160564269717607410147438891470163526157774284961257703867322492870069279400427714337372619724364248758099026317786469497486365756342987974033874365256604966949018707945355703908172530399797109788205602701997340286350480980322772719821997953209436767503907378211941577319672443132930531270306215913410926245530762691050503192020027320107028098209811611812721153458048084355844966068478745050631014448465271394717046861497862531264121645178766434973142035090606291432917764343719822406391019719629510882085714625030571117691753503783599904390980602418530016593753939189697550804676838963214691999065221299330761485101103410439438897015410493155026729680142611666092633204165978358941915954418763587680886962004986954489395031478100429495746984829351698696326343771499828719569510580251730483710498890821178977321660496199796793999569648201101066343743341711520063752072187726159418571386741442065090524297829336664115227219552496361399703088730367594319021197458265112458889199556259357774667722929712943039724448950498441107727733886640808431291219063687341091782265777189936664740020667845018427996146098398149468489997835540916283366231887409478404734772568488036593724450195200484280556574878555575963977663106782491890230000809541346507932429515424611753203763850873340049610824264256188431001728960385827477760563981926010516310564251055313703039373231411801928409565389841640416536186564834889129679412226492578863050874130525023008280831869705894143296835980677063871877636621266403574652915661449432918075997139204274273620267245199082102485502216147508113158281386927236352970191815599323340866904652936251990399997575356390037998096278393045877802407592064903696045063950383138929556863629045132706828762824077497877355924723859001459557404472183077447369651406547825136290937149285730898885097667516807692703127964776798827657999782172893312673371523898043141641481208467595232406442319314811008157744727953113897170615669955929567395216389649400267673705407256954108282062196248607989954953035653667581722201084181005529826225862563784908976166138753845726095825540230049009601124370550366762997610399078051323019703026682852398315397415800103809125052314873335126999351485886574917160719496307118303456881870010605992355313272979022619073746444184285544605182687946543534247986710782993641155532345360947638152663465358340000025800433460205274873797326459399783712798506035147394029408567819722198972450906157319285663854205723140126832523495748292954840934275083422841408801021592330962783275686556473888409597889181109988488439563527856507687521857312442438792759983199400743096766266859726119966491893704253167732207556372319062207945122911821342536926248681008714271409249842408375850055115614753802747937240561574193803289136244703205954275931460973546394151951350809253668604403162723621776095613398730807005098125867636093356088675158658962565537204455132170572453120418974095304692284102180933548826682090674699335073234007304933164262804839400932977435444743103318666672646789389208306849974443981110080675436272058391092348860686396547273577628078660302518295749924027904394977843341817944723043136158825774928265124791296440479098360059196144211417939198564669568462177400782551532635886053295854711293058363809190641098416735238899613055743186035566940788798944187524599080628060172163810202786578184126179511190583669006004544789568884909834079611760013649554086120758551632161604693985908573379406027183952700658424388411912940441869239688362739617610511448459141180279701860647360643542198813288956250874456957887545069285944055548798511833037762425853641084843316428317788895908309304271270894292737319258406903058184113371837745843178779574099395614858484245120373974034162547145537794815538905380870273725094773859313398913304025650731028169046047102952162123980447265711814361668141227266602260203281748194533117269901908199859291618919561607889788910817281219518065710843479181411459011032102317289056415984582925886635242603210440768724551725844912717100908388640228529466773712821973101759540930281638915646161548051814619910336133123308077457412588374547984984190197579263180702153721597369715675658375399309358765400182407092918600764412025892617978372423868983716331966381398077181372040803771082202730212563581825771385174585950073483801915921049346297746366426583377240166333982092240047373055516529672321927747154906826823697850748001244041596161173850477003516332175620816932745153314374795877427093017135316776823462729945057551627249363094312647194581170041606214327050804356893204343601276264059993289942400620877081220885406715017110024495479392755397528089618987607009496579207572089050450842962753451523634696900260291338375950307742869144992595302777365797188022858724957089362253095946551393356901346418066536019074141829404578660013182597002521976998439384197759600287122521355560120518527421893888645627403678381018646691984179660834090496764291010632779088741703257169277220854530442163191540317722711979570668387407132447796493580512504316793672511262074950816906722391588225783389387976318959918043545134866398877959754518360812456650401897352602075916853448285083429525579605120186776768824323158416776710101550983721911425074135722683139450957976389773526883251557820428716273897489719403811055355032620100857257962692846767547113968496681581469175363185878570909067066499821662686974404538136009340935894601540257669988675446544527218728460944723009081707342072841300311486121433079659331309266498318532640492528778035804072934987509315282136439753122768480623301435169739707004745154260432318028357258294224791758519203664833230485214168821283248336895930704207943941095636850531387498595463699429881169618659280067998254315985309901262440548960564159018743370591126841596487114245075333269963927228173421605290827982880427300599287531310897538202651604562366901984972333454776597218701000780554155140676648940678032721853219656716517632670275374079433073374253342797234893533732700760529744514757698602550572930770371872430597029733650668519154700857093739280198502520956076263511603317720334573895462433167595129637387960556766244750890606695762320461910111987137436061511393719133311182337634223126798691769746382169229784731731669508208914874374874959704081783205557669729850733313714264866077382814274869443697232410916232907957862658245843265187430009698204176437293131824824212677525296688228364239792891461840201635964652203625835599128053831006952166714911142073367307904213985017233037797914215719181434746526901095167114258062491640499751567421007610628200315699663934540483048658189705804479012483821762821579151799441280672946070492709079763795620865037444498768611206963018539079025196594628538296738149797470935418177409119358242448877059831820500251917853559734554130448672531317207089757168065440794288040356563267913062139522418571372793496151351700312436340135625582029169515057194608165641085744081751229970565550128042735504092694827260353001659008088814300919325168880377870391901338206862847571997166080697583919624300764020906706108609568496391920703534206539534850013450970047128843610970967173447294392726400203571912606115020592133661573201834463259714711526197702174424073813108918029299576273682143202819276783324169306021684166680389687111564839923267426760287617697173126965717934062917700525759935358058159851699889673085853241973223789929146658004364628855376412384306418695008355043909307077600483828810131408217555510288127629408169921441775339389872200600728595963699248117976007257694952033961476381944908108037559774858671843187070177323918260982011003567346969507441967153879406899543671880621057678737991472277774828787864622885055418894332589482862132284989892673335510221029658363118856126695989140721697684144196864038840938347653320920825276161933886083386292047293360887127197332313498906667827060308448916970774481220241672459841208025095211409095166672400549357504471456523012523948572482953864031881286282579002021022015316595406886871251132357112812995124532514568441119620234087346592299937197688735532208067270428681912402033352072964641645894264417963583170442779297041868751385099468942988950912396862244094806455956160738581301866169601489020507151492283396138034826967129591154941660132378653232287695174114614983569361287096638615941025860886936987981124632388608734999845509764346677447028074219447809252941666042138969471992351707848700695909196423675505278956311587984863404084152904563500069973508711537208947056690214536492904203203995417946212570974193398993273729025403294017253625325779497975983946690276121092151321099659706946470955061221415526484536575117788544670750608793190459428531041615454712071831536363097461239181905963648387550414366750620881896560514911536852235537981959477636967549867174282146793168266180331413212272030877579174527248016080469716703299306977031446737060209872486564783280500270148756559904068072474708748542670635813881610743528108757815669203823052483214776438609445088115000699474550809981030026843187822652208936551382632140342513167888383665669452223351539101633270833566668623182226866678508340509093122938849421977742025886619966330257609027995229689873467591865412304291721784165916540587179130200913551272775010025361135878790807907046063289735454602236878322893421429019510776335079954806244231738906178659678988685927168627786101028629442141938342833092609185165375514858271235389249065325870274577457801123366587991820729270919395776000898167224247637346327720005246246030324874300566637459305707734857149304091907825269612814657414137337224974570104885465823325691382814825647510747492911356029588826934646329242378726050236542273792533920816982291485554936165455439313466724695422698702827395079456084580358357557015165415148224688861387406417701168860807564776090760931516795139302476874913391433739189870927787015072501275277660377410293879347224844861911278105967161712503162816645838660826921375523482274793163352703816473113489851367640818657626815578071827712072892092917093020367009624555381049080261189216736696652299294756455349455997463693310698976706336599259881175375330098783263991198234149703296411706803595462503735031543699757759116919499507661356744093472384819108272797495862135336456355541260193218279668249088068203578803924522950319169763410225471631601891064955855916578354743136071370985076779372743550816285232573207555316441507954952663332875855374328549931844156656802820523107563044238281574392742371892771259985716816152942155281567122063796222566739894522617532012152385949669412017373455429285009226927777296692730696894290180626925443922943600752416320326000939611192829483892143406350645994493328673120937385015087009951886311685462857930519056611708278128203720030536922386969276505255695025394209811771855080651732857612659987966349932782388201905986853987029261916811264930958295497288287550886196623865886778498540919570235368505698111659050591868205713972214991412479975932640448039219467096062861169446481609978996457546361021611137301661697325168947963488099698277723441542529858487238411179409407399136804714812078771999020118011598590178479518449973782096342948230181603290533440622718085348517692186332114657498546736165377058055196257141572442314956479675950195325012361837941134479090318935886761296748307819043861615867340198024054580478881406395385152366476832135735182133011459243434955063636253342166067376586207984196529289476295399505360831409515617006327190669358886039502828309851653356218712499464454222087396010955872551815465812893409448370641508813110630138066470266542512657382814248179966622359855130512839030848779691697795670033320257559197052485245542837902152513145233076563694644566823568888419537776488210069729341031828459151198672034859001679421005496423700691877601637582864750239011025971090852991400993692358942497711021063532777992653486817488969128442642476680101833869829880871717449461191191922372766020648785442205282846383857284799609044715948301218894146883274564897679351615227994747643615754171801075799015488972221609008423444641820104740794980723005244391890021566230032671484082884252872288684431817837937903427606299896552084967111745997306734836986319073552336944998513315492455514747084709129909018648944884339579138455907690455204778927542541447458407987613877912340021180947219434550903414616991448811195588528107090575900534123124088627003868519828382262397306201793913667961714689320113800232681804988964876717790272294375712860170107117764762505794473201149554453306664324629811675330271911537773498792540351360213184271362706752548381575658177187478454647930491254134881642228350709960013590740911242227698087210791377036917281899161452541466368247258256207735279275854941748270175772523703053489363788703022300842802160804346249544614377705402513462262227552409015761171017171058950138482674679340315476509626089303010600702148106603688937444258773058811962719319155945574395932871603892219114283757618005899124436309119007075341674681582484824233547368233820744386363261721825639617990961745507302746522666952208592985639871323699258774332196649300420287056824588434136905682877303174517551878929073463362959386360271643628505379816650248335768366237402883355646860674269110774052589224858173504977469280872802608347999278709540207311386605478102648012405559715300660624446684931132961343518539679002631579950481964161590756090117252339369048371641730028217481320733998708305685570341130456586831506009453233995715754434918786849668118667840227046487008149757560267925189025968981391745167757665162117699668257592733970546491681507679515277290926519003171782181158618082271954762557038864622507841251063960851452766144802890004603118769573192527535687097004082266036105619007946072328216244889996039436293196899785734511409174160429612193892572041437918246992501034159705404830613202610329062212390398370251344992429765070945800922484837573697962524519233223674855807509514297315934443270315239132249593069341166008826971582612204586930969539244403919586460610357482700586090947667048973531673346943513434666456102656489568088659677110750206614238705405390297788672758831031914460249543425952213372263139864485335683329963044517808946699631419535274884441634667145098712854090909129090082017927329849241062332518701816637637633708608635807843699884397672690246736507288772180488078220620366792772613837485765047695371336771392535846699572079469084068114329730668502119018685587677359413593025124156151918366045651214774727641178875465725958497325972132493260881801355290086009212104045910686679759273762446231200156922840398963529588472276975780678203424838546743779317456941775479910446464930129514843740594896583298415799562185939376650528234041715005721095640541838705314207058996947549665600126876216373114134537230960652716567558210088503719911410204915499481274132566434741523765624338832733056455253236147053757458414115454422651838283439105866636465650693152600866736886794501079359426215876127492763900663681424766312839847316717302194152910400024896369357169835684344330963916201163601121705140529307483600250376764550707794155286720714681229201107164821709140536074447073970817276996866639146472879606721841599297590420201567346085443474380616015742319018715499060367551967533994931198364650015920773372416899098560187651737144218212413261051584267233252888063975015198396077132682612722136792699671622999599091138729426694283086136482725885826284703046494605577978128310005642710981077961738247912901023246140037920404586069526531906613367348213958755843045890478450795895013971230166996231235044677577137705804792060296585921074175434861085091434112852832527794342052459215252896569912387752182705126422913473501553260851721146099865722461717912240212805623028843803787600924019269094853368705551559220867408020948197929563558336611592602587864822466487052393119312278989288865860185284205314995640198984698526786469136500722902515906917018480445451327086997672985234714663331293118003477375931128009187540572630025047576595523471758985675207859617295886828326174886584895271495850834884991753180551659716442780229784498523050312253712681364274812009784840449663726205763168908894536194156175886690937149116913845806233288925352943527135515744543696738129985441452858116839187187424061965505257862146203514470646008295954349787894005600816837304581265485191006578992361289235401484367943586219431173460337067775283633136429841744386241858782854704561613342057335646253332415503576725207828039342334960944710566749138892890701518882477416587210849584497057715072603741469130196159836391433647702195687018839211626118588966190222560710648325907433722681619572950955149327442706082179426087966988575063818030753023190491782265354769464181561652612447129544001459150865416008078887081772613562752300312485678598946344293278269818668333141279208659900119153028569506294044180063772623450706437503507172199238933750809832888583973946353585166317219981303840601540929366732829417925185058154819303758553521474006783326106125256768920466260504658908150643709766139250125747910449977202632508310651728719425791501028193360966065282979323599952167019830350775876681266426613458477281164840561121697918679059120285083153333449582167335255341552060904172435388642263562155985408214459396010675591518720569119480329895731966665376555907046435150811524885083349670009707415605122615137904089528318818514086936666558413548013919524013360966357342507508655197637757915676504400146304543131349170793458854512942711323369048708681125340989926935656560960748672461306377801769863902574029551690392654197495569371716245904336244859103375134413467113233798650445688401968209978532631995153960693054728925695495286530435219313834244979198011310536489008464912901268358380793352771034794950861919345301109038252014524763769078440828438895873142898700799410804289754389125115574339993251748296128812944327113100706090044638184762434347097043909545232991421417763925307338710822256835262343814016919612042486989753863916309163279455125413057936959475891836512246889766440447809816996523291586308250828054342557926628268325852376411240522134978961663369440528609850856473504410935253466530635497377389555991261185472844254942842036308148206936087702058488433344730709909986962763784998049312515461710914797050190090257790308655824892382213389830518870355616427157949978619176905562876103665028583401750425417414133696245747179704655116728602986821479650978016394987936372873403300548078072428982191663265681991695418560789641817324149141463485288636368291965491682733434987825460484746442717228421846122605055398546621620579390263742459207148083133270276023647916084218130283687412977035641569730753073871266496732235685723988330200166964207031991255037361222973653896778247310737207971722602157954198959380910872670165370053290068075997929195341174693384392735381017127239048280036148162419662961111064920043159033461146173026537393871526749421110291329840723211672099153236625748771158192065995740675461561087681096904796550079837944465017716304667510082923040170449348518744394153914195818094757386965221038701932304904520491071313908677215718968340947024499521931816978503303109139410811927263953395006416025023577627061060534612979216332649207535133697879664456093826772430276980273760833870130572957619040715499350772079851698178701599097887557619307781430215099120181802069202337851908452720306000457598461475045220938441839524944516682863574342076934572976152337755924640862134923030225202354355098365623417885941773098521730141255138565413715192355104207961630331014572764475480171265854306017120365399387576216741795138734966810273947662320463482823001858608687620320629778720602289487567437115421880591066055049248459322242581455817905652495699622983738223423932551507745242274533688735245401725927112212232706011400936804779045724839138656731786721910934266803257429791190237410676205264120419484039326203262623604668456704606450134011182935139381988918335616030841298658404290176360841538989150243969489031945875187659761111578553951606709355427920051194126174637720652596203176199583460144684982490979141549230238341374114809075600687520857578667828390338598978009964555965583318715985384964226307895235656036344460411929405248522164620218870113534052338847042611785931800095521216229351411997539591766934602438451204557465898367500051800025078153181599396479443416022957029097966662346634727013319825205972933208464857732525105474497716988729783879607239699409046955778177449402730394146567950971269828721211366272641349641681527553917888070437330288610171687975976174098637796952073733299178424535562306883348511576943508863004792773619103572353419547961151205020506855034385749962160550701878337548649434777036442615587116518404244777951409642442952991442096068971983464732001772192848599402455726507754609250617561105134677687809923550104045161998946401875166723874515494678925513863170679688845231882368979975060496858753143732698293270157980724771589892948602122875684609047256580955947656035084708071207199212508983209219634743417083521481100048742964285582169020485267185680057194014983018877392623809492196862840006267516453563372079935558580780477274130315030504777751146177766284530334344353045803428027761185986916820011487503379023383303575861213083924445090206643170108441418928194781552163511905063338117344322535416779152871972505390265114794429744419659205588240310092933066240013132131849155863246039218782721894507966070257903571829650317414189755761765999751550950544121155268884945751924918832274886445531120627508969598552687921153097267435796677938006110344311649886302522262056250000248075736574069257581979901130643976152999241070216989666588380428726202069480677269965497143680069964895941628593597207213303097897334745233521183443769327955434168966964870031105921836027710172531460408743233781930383567266987547617619319935726198116197043197701647447607797334123809159330738099627441937945285767544051189433768372957792206435182729133669678623965416884165193668386425313748993917314402280831111847196319186964398340684472661550564430586000724604608860693926517436411639592427936000751592629959110462452627507490606151480844989203603867131592508558822934692488263006675075256548717282838124161024128316185466355360719770552285786189313376574740253041540788960034211095277092459355472379205682224564646019546477401385434250765431273321984715636690542089242001859590143723514222984756952938793359391060092341376959240072222003244983265934413393860127619154023661056845754141097480721054105110668114514240997722184707381234198662470586554642008230952027114444533608547508952330757371864318562886147273386928479235116571207260229591819341628063731606124799325808503499218687801966449014776916803305849674902142235707437619095412760599471542577726391640759368721316212069806811925371673704407570339350401074770026810918859980992227726532932139627451649427179921200572510775810898974749513561087254900826261470635821206458324908215955295044964659781156771332817235524363503677454264925388068301154012209382626896013639574629570363547943964193014376145005084713606305597620576459357464132505080347348442689799387646663434497320862908485798797004337217346729171293221060521946963363078694785302507318379917660668664961568195743892034008240707868776667909747040087858758503193640907939848945980083585054434078162431602465256664502750180317064727955077224907330949218310969151462084578444488617513692394006798781086126080837820298508160535409183434224746587250735327599231248962601528946485265960086465020472507977029643299666230031447844889562698976159775026268098162234413442255678013808244593953804651539023496873536818277107364655450190743000836532198419757347526471103887314666700787454347327756960025111869597657972855923703565096543156680846512454712584725830180796426010561682842378802960577676372572056280566472258032651300835508361813335349972975971302879486017399691538180933218941057027262810124879437481519536158616788897546991283665536343844901745048012761917986648247093218332488980066526620791461578273644569420239835476613661711102342899921566051716857393954535040035556351028524294489690461848161487237743423822240543940301459297932482333596314964266804561807817763563746643339003190787547664717274634937937129936615095082479528604333452420399432488952732376206526672785790388033847231733837055321878379523308796378786379039051499508513308884050704526002374946795110285777812643997928551596139352856436870839176388238541661614274378802882228791080690480357612465820444540690850438667147690480613229985932240167396696540546260080154945843616403441490942295430278134398909268261962990221931473603176552194801497013175368337960654257005826800016526019715428751116472277978481883719261115254209893998475197938939180351936984053651682075930407976040599665097349813455107033336748089684527230139747067114152817495991712571263687190261654472334916035944003537253209366710509829462363404309327979698924634647973188778705423220122796376047068698538365143232181164848401229926534943757863398319477493578078938940023274960354785678662514405516227601462759218565585700921011245009059327974929104254853022583447952355554495335159536903019165469191370072272683261029226005203616059887917636330296421136366853132060500942635656123415312369276855051823262509420058955768639879378511954621633877979290722131400243330846672354853150214309167427217754071172743037367506508478875239150566811431585143612266538965608363480269300343754293147406290960626382007332500609183535792787483385443963298061652219552877563252249859699577496251649032131960721087124983757465760675528640914883812246839040327755868441163861536358171925858930236374509417655398291739785168170493042356137288940539745241876623778475054939535384199686596279563839838771986016710116492199387402144087042456575146265161750803193629500284153937875587637744310132176947995074469215591636819497867795286716834374840026286923068969353694958931082419055305949121552472076291358194685294954911636619253119135867871567657650649171649044706370136785275575328089362458483108685149314899192419740322173129826884642252722479110510971314169766279925291320933767112899982029368396944787881430363574527850767523652476804549009645204543605929371997733895405735480901208096500324679340604729893320126134131132520026253189540654673930143480099609907223922206035702761252455069462465867108877794964695013259628674181008708241246207132839953726192927695030194809407092841466490699658375431695558958886597707560521113674060183926514807251318987754740800386988576915065348596983806379749266724122055824903950125851851568460356241161063911843677744213251983705880205031249760860061268360148194035052654945868665070722666651423046498367133967232625106884699982851273010560891410144520720049334187429596072484529080534356669811884144082539872191460114550438866426446318297063090943773075830363938963310572229827568636757044458289590389777384293237221796327183796439663619072198260401880120648897893822279762232472987858017939135638908663464077222079176255793286151464584755858810220998681439211387221310348626719674302910365831188791119062360649929285878223576227368538570029212853639925887766827769411874433157518444151280988887626607758860730236032730553792679064711865256230101730443307503799490210652818593275492787601775089559164621103818659721480556463243817012233488180144007800569413354575526903259526506718725390474164263119748004922622017683933864482104517059930284287772931242003511549696439469228528167496273332486376911936477059265767139701793898376168764861300280726032702690182589632469958329732976415079434930993096884126243022633356220166842181324296215042353270373213612187519008471183767351857822277095265800652863276731047838912953803434090656793796597134523224055990731997610835775326914890298353465107164582299561027414296442241762716933057733179079264955831316350118558469874908204549961991094011075088541440509330394798650345648788369607888137698421668244430236356429649170758656515653480971578337982488507443222980607687931588787463488137292945474444329179162587706522850705752158227664357140514988453671636708933162202525256254762966656007413634788914202378770833860881698091196441901946709978073900996498321741704433541459401428279090456969695580409003872529440046673718924145365024151584116489803959082885713859725765666684234287873745072504511197617214580155750036984052117987605146186350414546749555042163990682470295808341830670613465234705186860785797718623394585375854130103580579178455417665889394852921153063353438621756982684822670356735717593566140294531177151251802763405444667243358354155834470017830184899610020083810014286410368137424018559753300903523705080636627773432906833431680388616593472686609700967678997340178781385177940710463637550111030886459144510456153177475539395266245898029650707909646215192670582064076064855032326864246944791520339858814439363716685311886071806515542392859763087062571186072072090238965466173780688446880748580289127942008537192289689534433232877069663861582358405610190544315091653604360391090983127686893948835671595023829998666527918935469401303188166717021737509879739783556543780011480001377958667824692952422981226277906830419018044011076754701441030552642262531603712697910987441425936854490856542073453149489114881982837113103632003738338668508926637296590392948984647362274276900617730929882305624850742815620256628634392350399029634112532906938072229641092426703500000703641521896233691986196696703318665982372966126987778177422505297698788167169764035178088602503015801964144619751951203593765713098490939401472471316535595427508091618179237254335493641941238079214075957695775183609497483025637181994684407396080692706110101114405645310963626106591266742185656516452003164030663713590198822533388936010222927528744219199245990527870136229332034751708306331151445429589708542165522813019332720365711201311140220791171528292726193270854073971120972226913344758649368505056068051830302111360333154299572688060227794519707636300262735663945643362196941929686694257944706667714418745040520299133413679551093755621683608940566336811319327891521732980229876629777023512748981570047540192331256900502284303092818426756666088872287396639409894892079127323707986637310502522044218213156668340856410563745658171366922162077635136942205403122855471432276551467050673919903034442761016814596407727711171427025989035884928654064437789776026791191175878446657133552289375167781120715617072895429124398815435975778895176812872967795408587279817644982482165580961583474319594794031379907675007207244795547714099363955191450366121837344729349216023319954210150173588255333864761967572190713589530596145224458051932419695939209026858028507681759479261991663126836031487115979689766653533275241598768477940511846859992762744254174769158992155825181904177682499193602391272806753035932148296978334949546512795956444956659098856248627857824291257834148249957437097539002219783346004837628553566494119462270380362198230923444697685697014423044024457630364784366582858414606050975516349015003752874898012905885174857423948010162991902757230232321598299639699023011453368524104438148582340154100291738957101374074072984685366169424204767367409781911517770925426336483146462954193688071673229737384313298854149548156679291091758563144785442964217508845785791427739145642140178878412009353064404702451405495366209407456165325536645848719619634230818834370137349583115678200001376505418782008375626754116725883693396483705603864300364626077392577045206345781282222845948120518816271616514966813685316166072925168519895020716990573303161936026535755148058432466406609149985946070134226428876974145502671956731950945046438341637976746746493089819065387360189602556016458009003254757398981633641280311309307570511898929342647826058938809061631094829253386957485835651190639941249278753997775747519877920232380130068812520590123974020729976361322241145529840406325847907504595981298836957932551364435699324629995236788561585237927899106587500363493105352899558479129552235670685090803620543275904213601895025235768569054291818149618102531980349977474166264862119994313388843999997562558813017870002357680289436561381608786850394744913667110909181518592077220256942839800116000963604410881231804810469839787906252938837435742943931057810790697258464778110364799397288134259137882594780661735985785093345138509077468019108745952949307807218461169839973707083185378647136992113885763120284206120929448988238556506356152742212054035890045250174269599828704107586694660571110870045157656421521456460804449524142372782064213371842895885839856801161217871885436331463475468272541528847012808537903327748223283981811657422329468773096559104574567764995227297484619626072759158663875799734803105440535761763545172034178278332335534258033563049404514681621109023458762030497898832824069748140951414538099537797870409240353109904521495758766178284331694382257792370466296741625398140975905765963219312696766878246054720322278838543103181495906196741320354958288617198273763284943676775239203766421682731115693015539387568890512251192336736072959216777906249089758878392310335179990746021347099133008501763686546983383036661169540441909551868612436552130833677841045037404867202127185539773884069288020099832199253245344387938166132372091227769608974374520136358025650078382202364083485371288783320228642442231541928410374666516848146382313156024427137273978298517884961480753959836102069095232642350288731698977380917882303505259590531957761717915901598260256316475971766873866829485731855978905462620527128705253930043991210751658772370716849281696906835652091081522936860946329145967493619450485999374135930088873167439910228273684494822324196409269352342825491399781433551086771557168283466626374469063577191315878143809290219534156132967908543986847185669545735004390401941246634663629018729439538182126329940731777452892980100010661729287074360129176815378272597506600529521438207999263064186269464240481146802768852656150598540405300050361455776466736386090163342513771769943571534495443271948968396690283459435369291350925141706318285302671093649442983548786898986672083084939338796920787135397822901970716245271124021428186803804874844341901907328733449902654465024053403535869119345138019340564447713932665921240827551025673276000003028481072664980665904264539078725712215104789809015835269726103441204438597607127981581268460487831361611656542777014632181258030473096215544098145397267364315833936213485985793458617493550284138290932616148441961058842772803345976355625563490270131335823864645033414883071946885594874294965210929965142805705719709145727899030357529363172972086400391460140302748475977855682759587871389338779321471279507346727757978586366276874848146385632565356531092509105586349488826034694348556879930488874668609296922724770073527720857150303011324450964227132436349537944336504224361503905694729588014126552252466367182575090146343806375516673973328145652217417232085914332854936416204064858274682568599528333286924393992581383569201906553514637062735174353687372723082953654072349473509640169212434193770414920891532170938419968430908498603868417524811322312655157003799272568797219909640286356401300066342288284717491390553690855835782291462088904659179877210102219493017134927514556609253504554506405857494723449032736467756294341863677137885277373003783159315617738837002266401318040668405655570833437154558044570870784899220458497756149299775176116118762809333224807220311469726538489583710327235054572137388109929169472994058397618525834380738895331087556570268754504724365811872152545725424614743552809645441351328750047091470351244407170333186726170875573774516202897996017699669617201264814665018021013183184884762942861099378733401224815897515535555623733535388332353619946323114551895841249345723978352364133388038048950276283210340567698575645566364896623682026312919047121444793765469458825877926494381981578342889343217621527593494243090907806820343273248380923324728309242358115268863423918949661563705135113090158703710505954513290908039710245930135572908519067862442417865029523058925544330106777344959561035183626592900434545417036579313102360927214814226036490421900665631054401796501758057495258761983042116027508046625480868550034718312987153029752771280178731173063347758052156041470047367915309047576750038540077930041720179968640556412899929737821382712055847620059202313944844817589403576308385687188671967015564653777189621756795541932882169074175054436591482622383594364765093640572291819171521841896340255216850330316352100170684433361602787378610217763480399037895157792227129397335301818086361172168571828547115404632233434592315261326713657449890831963996221239568451038262106813710970754455790831177856608218796244713767788447973096693053704425419277236265370572560810680602114058361348594263215212452478395040962012123323133815084661066577013384588042242009417527222878799301300144900232643878599417747078456339841030060448251324606658655399341777863529448928016578703543773547348611901057451018969531819564545823148142256676042208559924659826279222596919220851344592015731702328653816818647778541527197728499494368020161107812453092443456338188512834589184703474653933477213566201233316147555341512709847540353504129735378136343220177903843465301646084490724568498878373806747177583618597762787014462444354626631903037436010504998670040107526230028730734646484836564804576065130379579989534301232871512430979007372879300358906720914108255814382524804933471596395152858614701455561042177677460945432319034005304963630636067109267632743796090458611727036726292770146253603167674505853082354801176878296926058483121791751843815663046495661244403923077725936712972065601113333552611371716914984852720307623722977695407194095277258737043666395768164485568220916362944357538693048777512615164619817730668149150997834649879980063260360135093583535390014525180293549261372330200097369430047856108752125662756048338946410683838865688412016185877014926272792900158923087724122550527842603384292879692692082443293401379375364118943811308073746562032399300496637949288387400191065140689236000290895522723765199719209572380111865050007160929333411533165818587909755182125585756974455697958559794676614954795962068653903852242734738409041221158180923410058696770819520074431197445904560931687768833713990579374423306707669393021039570461159542692915690960614704789125357469727911997527157678279052262928175466541710863084179239254827460021098970126962335753892195678172654182031657719962905715913254346719786332769502390805508368064967598146043172676640594722070062431737403083143426905332513419082100936374056479350650096676291983626622775253279785114259854345386066879033878052561661324511351312172327344866047413169132487460812221047861295007764533823570385848578999902634835988493457874642441908965819793625734252214843436914113499426501817940000482413932275820991035118711948017724369346091579977530101836904053945468453297422204862314079220856579840133139956528553489325486968057085138812805814741287905497342907824695411934806340566670788196296910109728125475476644706158450695670624418837885432752128223989362230591733346970434676553679565322633890751417780982940933231766016625223501623852861439890048468404765473848873803622169692808389884340645067474873831849249139024861816043351828216799524878791749076793194709884996679406689294333320585427498705359107440752921954997962059330791411867331097511071238734591950514899301336478608093512072564727668606977666822364331320594764977589976437159653463756772594346061269466317345977843266562797929333105950796701755569186349855332117284515441033528932959892522027621806158041614584424726227119846366192212026126430314760499943019892979621837587129153814725393572993605002580831587855544750563012161547295027681666691900253742484222026388967039763357470540770249215229725858326951273363039310753951119148080562358312823918720070363354460788609937615570103900725198705112645995001532822595052577979609517415393343336068578585693631494828966091890860182181138275563340083410376183458512035039194061399124077021061282348025128589956389557296802817335224811542856994212118477832870828251686548946091149439504751967919201609583730923828719742073938900930073039546932572170319394627265298608165474549292271439736432033819871848597518694981172648594820663690750840705971776347254006544372259778092168331115821568266157153387453592568471950703438090145582928760720462480940254406544248007222043964678480064944865218316302131927513899560121357007599154242805100247611934167067823498872597688066958770966348815005295070663957904384278052131374334644498070815680081632232793714225895960417827444229217742429939463597230148223815871488612525548208903728272190781890060125076431126290175416963303749035066691310625717377461449848154542735475742157843300298389739703687036045972096565384021062779407404043579384893864355546016166416245281791949861279925253328299456621460872308533495948894552775719277690770472856133724156153335396015495945383723605589125373442971148207844607167765960411848315341168482358699342548343584104017696532947931719181110658829793322789036312173769653004585141729904460164185732349862216953956510967599841667907014275163721305622605599131686557305497507037147392078803379997215127530301837839849981227019692389972675685700088808444797677213706620820457421645724615268669422501110583332033616127236018202809351649079440917742781400569766341605107336852797482014069792846710964368674183939060951952873191384242857788787893408428416840103927275317839961531413952111008108109054400670015862212243990161690200735648595448645614356022750560765479264998467016914806289489667450062968832944002033525336309450642403247627484888424387764261829912548884239837148645122266109862831998028025096476500468213161044108990940655232671704159897889436918590678769068906544457729557858920953420094957101878204948467266629773316589671905983153651128384831315407562417520499617521181783661661143571475001326111221780452348328416737015922535010979806047533554122935407829284584169519986315913216265246578548788445256350619234553157841639437678193476110776941129501742898587498388421836723224812113986149150152815018592622007329319859723764037396070894902816058760539076559301097274008708766079422129563170809265064418876868613392046387213764351063237480965180519108324342201370795162944177534865600990168119490569349664824221135783000485267131379863513395044485631147806447196954830744807205366250042898994716173843387213509355764674848823703767585188044438257314024334375912741426207985492109128219690483066830500241159569743976784969888965453905223675544763001824624435575832844115254464314428477093672958125046902941007827928302662860520933183850781634050362182875695137738758982182790809684902152324009048521884321596501766251577568511811955384978968333437134212428376165949516026301365004676905327230664293910905307504634565794802334858540815168276030431141890134540225438986943863358005498071351309247946057667993668742527879072167059231217405645479571154976725574855868499557009946381679346478120863188152907946839764594997135938472947743804774494280316803195962758848065735711407401981065045653694130101612325899564377079688620917875165462888885013283738069734972719722429966640990155329535569005877467988423020037516753941794772960276256193932560279728294212681855546518946681571846294926135807494374295060634183150002386704875393091111830315142089018799782201423962500546791288821747195344612623351741852142946597523695348443410506376873679074418908319616964524886338773270876609413580389130405327176464772811086210548302347432625221324522322062803320828281119870547249139841535004963978680985335987254707194290769503928855330382192105578041416451091604304763765634919162702224937887602904443956941891499811358547778488285462480301253075243167592160034504591763069408399208937290034030616627102037092481673172209833249784460813421398742595735125240266880897196589903502497916487914628504298782788808549987523021289538966942742445345755384178228619190549407952298355695493523034197239494812286505653740390032736822238001937795620992802481710380134531293090856785530146672715237083666863515534321908641631060809401195726781767560035273746617555790841153006471157155619733624779429614924535107323052431588952099741262872603688711253530443344992346523921881525515541919883727549018177976551920471785096290336576884742209199953089589497041851683806481103254228406049287307255080638502993400065747533053095168723354138181595209025506362333999078753849206416900578971501022185683371511563480934893028472134151043228114737389178341108313138848317673445532257542191333178776030539316306132692638704180516876487610521292489457874489581455504702010046246352025515143195770762266484943110975691580780077023997202261503346649082031457336714879562961388439990072315585365725102010196255934817806018265874407233770111886687845800932942854902024339006311616234680806290202912897358529317879901532924960739787249913674408824198262257442751432354147520215194469923296003439439946065109866534420966845218340058225659018875966096497159971702657826751426638612007101049541801802047853733844888129096830180847548763595506223156853826809946934448799074115001203732008779002332373179761285764421813813725337512165608619001121801007890441223678784896404003176705888662982166415299918784468130918591543331571029329896205455018711745767474666524421296279380868449335094393908169094292259075600400955889595443537198684719873859128752683473087946296940510011627849997717513525991362138426609273384274220558298768333957221019925001574694946757409175630806917885590512415167844526211098044283078327530078895644188971611667603278508042374816578021590181678722886129980516079557294305778113429095754704437075939470007629269163656746685572214891858988216285395593136380800670962121264128342956051931551210057201510077138073141149133039268491554965185910281754393910016851976480382735736762021997874953728362509343054684077408328168721254809970926623398325723776222163382139527941921937310597605999815282711133706949322182421998996215997060180459906655398526867080295574731815167740295799473423457540687615996878059312544131360358067044573640159482437127461651894573162844820933613178594655467971056954745017729342819468062019352217291334424494038001346410919032199075841971623070482460967328878482627361026077027675554648613422592701807503502955379523149985245064121958982182809733472585873835441458545611009731225897359862134997803756978636213372889264113774032239025432137555491738775714436381298501035374042560602169243704994509800122194875803535375811643497803202283839791478239883687761272344530119466236146717121720992465832048277020596331356724902116729728506831532152306443813578263707996785088749797814466495185774389929908271467103323957924639213996502668805611407622492132409309774171867542933911547938604668969003086170482846499742955869183499005139356238062377697853839716926422216758033199423965509016621496757358552174431662108708142630382277344884983125725536612058525117794149783012636723136660950797976481765982347012030468922839579421391214023401135068534910687629474892530214577557331889926416515982321049947454078274915329197977343595930033367625105592061557190043502706571349549061660141653468056350941230394184294965162424550044788385332692947766594233957275760214674663611911170500035683496545000505913767994164697954993040138773437103266886644449063957731209598786962856408196880262341012140536333535626024202718878697677958931887016569787996691811482916856057280492061025242429601977257110422428051042019844242337296973976696666859003514777879489775906908204558245438037885598719012942005325968605064569120599939931603958840953346445361289861723229551890253640441529849974268829726238869559526731744330673829710266745902512772540028486226183896426079310909584481836618967909782637613493890675566163274118331868705372463940164714624920605200669579205554393939923592406520744035446380269924124527320558548496649036601577742750935942931126560860726133107294547730898502121824511043144817610030623583798062548697342751149894072674450354166404056567823955228067445297223962497428723078606377715184840010590991246252602836472874559980503887341587248422358764997809044134987688283297491452696998841906313672587687825537495147752417267785672806385939779839576012556479409126380009181235490887040728717675823059929525943052580304823836721857376174783526215484923324811904165116387677492775336739585348318326856787752626814602241178456960217442422688826749518410815637431892018056125666668695978308049715084818200307116800938499383939066365110781535882623556868842457191680342118187250144717253775433218368479362609471111920282185953922870822358003478807635802349647736199789435924596411493292630110079947949787073874548632669282047097396922831959937499986689176085159862782855026483261846180552318834364368744237153255849120847559469345602378266335306892867585016804976965537585717026305946284629824995670540560280553708183329573395745816617859088524183936921606810614240625555434948661763674405097694264338600486851064717997737795611950114105340045054312376148187485188242258676173326008673975588433050975172656964242184228136671622037702057647078384390998397606323965281309233493233838906025706851111746537722400515187370218426140998957202620765644996904929007281593881572438188776991801247616627827220024467810860865857336177283176727148497436514756358889357740119923581015894099438340619562000824280780757733372506860238650434136706564331750893467582943546740952088068221851576944569554830789647935396056934373362100122645871604840040622611719137217254536146178982290244777900702885799133853799935989846092549091741922278935766478175888848918244834233435041693818440668749434648825127229593661949107283428496600844659289660747354097413702683591847896109997139984422247409977804496029731980203816561581098281284839940868814756220337718987692500637572696360702920838476032332682028323022132885409079538989219489467848101241182402282835779753825737482979148217969698805482215583938565215597363017809866324072735411236886706755848769140762161572711856268613704934721185560949641735192371560284208668695048063742142264215935975628478001456263425481059291381071404498473623160369513337290980097443111641683237189278847590247899969959030619008298456538366760265167049990389171613781208615538678719472385665400815045066620181923537179509832816600465012016154555886585058551590890619596474667287144848162618262563487890369006250171646714472395764905095767256250200095088419985515406180949899698429483197802794501573087081771412344716447222547241188416015650075136397351760688471380005128422296633664962483970163092836079135132035077857557711695263722099007670972810585826790177764363367717958240786050514517736892933067509343509747958202869103236506158313855933195850781952287207133452016777288061387568423763286086785157197274723485912927225804893974674177229884008979509210983623336535928174469828373455744849672127960555505675272658574197040024985308314504794998416500319724712941879953006950724809309854300552144805981433893519959227132870898468477819671715794932547572725946139066006595471584992472263507095913523242832881040249547262616415257074832732930054143307198585178148864162824810222766387116683584801671891862442727481362777968124659377959924933883098512846397262156167414389440374023813011955413362694106767856040841211830308161844841848669173167070505706513952929153026931186674896688687759530264461410499274535498147247862925943180059964468837427250438199531520162279611419898567832319376117013607558572981342814070015507007159471808809976225365583769592524445834775343157283908893458758763035476089674529069232209602451564879643567345233903695523096764673507329222265052034240095615670720871621679171763244764785740159513254053640176153264915834341140334191680941850753232979809604696851296047022621316712389347004602289391633666740943524788103273133347609975798184198325132957091188848888647655269217980916027644890861113949160080344548526209770361628259480598873846282159191174066717382455979927226347365996669532544669572162762603723487402423530734845296360990066229235313804407939553324794259088443145249722556370121148624953749305067115486030504520963716225182236611384243475949524763214273075584790851989461087052019155154726576396283692770806595175980730760916521716546665527245009432383969113595792392950478260553967969749337384978081493904736554263842844204339976005632372690398528601687434852703912243947520191507364634016105475772492033955944952908172248811794990629708957085878064427281422190711611191256291117371046423690747544307872167671094437831381034037152207250610846519881237360699774555025717603204251642374757165265635289035421967605278510515459673814142280690831926031890132965805895221925769487365385222160985782146256135747741127922153694212367156305231445318252391736967010629429908636730226922001140637698464266278869228078174101555387108120315174045077812459878213831828558489716528574247201223442439829915352966732974568336203031639806796044548599876427830238912576123092390365560763061751430247012173695238624251714442202045511592744831703479517781453202362073924356664910792067430196733754426903306615638080797761867311081833132616743936596196969063318426426090173219977682940823591577688520605747839096154693920838634559555562842299148967693919284670745380201337328930364952630076471810446024707809448420774472788945373297234791271421586206219384749116665239776422950321577630815395585242773827836907894647288191985958023882550618581484315915507553740610693005305026606406257462774091212321629672933008102796387971921865963124677860199918269793424862759290062587136806470182498017013448153569047436878554012341325867464840294515168983879614836175626944139974790162923832938850199054989869799728799320710683949412365478070801770166134216474021026795510057261280103743588668564573926948308423567808731490311887558523378566282949788660715988701886318893633092776149808246738511216478179239915764549158743253021488249645036149276675330089706652701546528687136014805463392248058499612572095038119997490289696167692250768274794128641362992000463044982211048646358167549768356680299402020965924609088009145810689854834074339217095501747357329402937795267925498921701807749959852309701871373172044277549621867012897554639822798114786063819329555668127096858283664683561832441585842286586309196078329095563376955980872623570174706007422996294893900045615511797803670888263667337405095860177956328108507630744842517176434642780895333550151374091278807411444496949671824541965671151832965949618363865297932035768267976950831482324753883496289193426569287985800851807284412671791591143761835511334149200362439966002257496027761073200246970830980413513377673928974768288109402670304284101799207235251546139251334109958148088040295523060924893425714471928307702117027333312969724944824028589895175786508389877882957094380486669578261092578585373222662937560780009970756378891707267082933932346915895938992137504413989202989817831961227864043719247224214034916155719300653789156545661647449594917154467093048035445531949839114355267506060500902075896109463839630418281455456731110735206565030910428502074720469011373670618785197914550220148041942583190726682704882095888565667077950953000678562994837100089241272466617508386688349317401954779360285527102506471652505659884066023401716301198342946151742060480087345739367051424295256378880122653120898540742278101424176520960599385660084940537570490406058270210715604023085157248556430601052116920528622598507601065559584351347185149114733154488966985870204459658114608027902097042173438673467928107528130232271727743631739323760732912782723434225562531414595633261491773095137369069178585227019668612493551758981447226316098625227363442408616001120318386447025953915085061889309562332010061047395493968911306856405517750934437394150891488805829592753190775090206882100355997305334281693118719466811947164852815721083839479536348079175698696615026941260193788799655554177626289769207777647321253270486209548433485557944372199090632464243606770027432717960826349262110001505030675340905579132468797207580202877932514297256081206549972485525281417372927109126999315088068007174562333007526122337773036905462799896398055080584702650842567991672514562978309246583279110460581240185427034959445821820295311113586201388144021494729311653251715814843475671109160990420682531754372750485676135595307443526309348162514769921356500297607064009266929266110920264896965325855775675073718331837339495676356946489985374308243871423030391774938540043998137488122562921747404157842621447883367332223966630205792222285997235717616509463325880343864831696534858102337250746030524380883186487793673364755221287066557263292268697518832397697104217922280975114917584722115946959840309126693382958882115890114966413726024725076887967207801819603979338760026893524303794048334581223165226406820130893542127260673230236282666514833117306175835577472073867073566702828352013035430021813853336829328038085322554898053139297877987496304244060597063339738202841978957260929090995617213141367521173388628442856119466144464145655217987118007576766550968292581955869858778423482132395506023631261269501403883800509625665230030594872054118168358450874980643738222049120021354232408772837515934000582069501510392177916840657319929892191353366391525613432094726979610606738297534918138379208778253719400983960551261165832300011666028802422433357652422692566981871923122246343728193479502635069770673731410300469876071055139668811822685004412589310742199818243656513308048635831355984421572859791749244550672959334273924975250524615109630922535651845692720869910501033307208462706706054760497496068455769515150602041724739523258763119033372031604515468454824651169853387902826947295994480085523970076370707124670991287389810091545579500200632076007324361164652906013993383458354257833077476176568930570812766725487522871201089104765963069012529180241417068868171056779661296547201160324843627761895922730109750836984700809596395460797576371604452244701290673722006449218349106630057907896225766569069330592803493620890909901792452648917688473370368176271633886223582573906683582666473199802888812762957900823670711762983107802578145834174857856867884877459762787574752001817360329833498942708521764369417766400500218567230342022350688306821124339976565246139067614433862916373817921152920184392573691604044455867248470205822443656502369431487071317185114125620309348166396211075672926144310183739988750814846984272805029363116140066996565318331681856449240632042602721529891076010177385662139288553599302186222552328413503737976348145304462671382099865990165783106070494388486488402394217999571628254706318155476834345291512468342095543565577562042509561365021067992269069022835159169383550932957451887914012993596760637127496417415453304094395124528378367949963506026731212166057301417266796990931612047185501909026124245520091653432774918576341492494228392927904419346438433547765185682731374027317073255060699218544588567554592157196416466453445200832327672449552627458066483636501217094934227209944717871577406660933687410747159008620603675291402415722610642301319163064117074382708765757667882506431607413084472266105850166477908959983483660526016167168708288030157994373662768184716336839382640066429547466777952293027297435428883721260828947228743134889891771185587005597565121449484247314604333091361017078262746828393835825925542863717445100903452054329316347022056843903810770777011331345221199172696029746656325448405493760061602555069705848853557643192425721466601062644806010327525449946765108258513231350463130635269291639321996479015839421440684057247069033821495266352462993737462143146843110713194688251987858286774637383808225965978512137486826509526572476691963997807039692313709690630050783063014048366456975709494874356725604112935371695619030586142043714807338068476612569112603512178817043422759144974875622310722599036577336520451200649501333769594177533447191576271425216531937106094968964029140641778092955906441948912340510461283730705585593725609112678770135939748629132544418709063287258494985995569397767032490639024493110994464286131599682996837763396327173971302556990459147732190261480986484267597110791877758540987721117810980911033742792061875891815122262482289844815393767219718233043919846970229135940636095299041619300126009739263449691839501387725011395893755526446820732058718276216086040183730069925766342763830585666450333011555683103513574135607097177756876361514881159113897675650941046044355960367604648571207687668068183051141088107236259126435206017608909976709403773975895111607105094754357953827044853392832080304258208834708748590707076219871849599500907418273196259567163820508460602649209297004579703341201671681710065858083068970687773787991672385943113229961100432038448289411405776376709335045453982818471369572668559848169208144871772382726879268703239831823948485869264926335774153772893877099029215968192556752036985900487662476857921615178568621581258829049207556726107456237820277302856564605408743514914276347245579396243590927113034699319830310248569315156354340334191692566504804525212189132203497809288302146026911312812079260550029580884255928381907822165943788413180936911244954104553575299207846907384765113490521612636981239515116536282082013021820325661568539352672923525922533160072588479372072091192896043773768002472779447303881922810318777634990668763561672026446490806401469711392700713659896688942771930005618147085469075581961486518590939221628394410581117410287857788573121226318841390479327095276911227871228954914113183703858334152216172890967153715623456351397326115716546605973005596903696788950074842787101422845708017670917661923007346073454588918525796909299920413443877514046355565068516517778104532135217799184221614607702035518857457588879908146169057921032982904101310391287884253640319140904368268229703077732629567317183773705907567896112152492432826949331080892304685966036601040005990828482581179844268557217232951920090858814036843938838819207778841402052759198549284396502158532695458218398779503772766243516543877029721027174554434600222732433819710461445872635005847129454823672535758009829366540619120428891131380572286276457031880921446821428457853343722570342964300728056463906630882420332554084867992484937359395355891038846974487534304453848646119991511690373418400929453981238322176982978436839665691895393926906923178633224783385927288251648264655042590148331715657267872557512732354093282751910096541880779256813812145977878391185198072027087490316499543012358243231064096041618366712377978861825564657691927594289543459436045936347511650624629238397710113752035870044597357603000614735726996669153512763048399205648585530233943928527472596277469295383757684564221156398864689340969434578157683928718161852663861170562188812101085071685051752931656152582245933851180804854832865221716946665756336757421915534236697519289247346387217020660553318700639787028375031860541978146416849056665773539053792846676650878949994758962480547320715543045122507160783598407504147465922139771330410645957583761501013519528002506189390893509364609040651356332857184688708533199068148441422741063008473639240801548906147397896030937436715433632451135661171912266624343257018734819176057592421996765832723885013923105459329103283243042080011229442653680102388564448942214218285328205143445363568232037202264189654906748572896807904107996481101992059117006539236893202372920629790861485130908347675592947949312034115182008060368787366838101467101758305677947862840547426453775761718740225233917733039186273475252207909382422303101301784026397297459452584239649673342720244063827707868451542465103925133126045299755122622672847146743980661718156963079061842575414824145602579592665828412854055687274277207081687603008709257226171672492658059433240910963492841812601975887541189428217244127617966587756522174951644464302437199257587291957684795346641439146288877486547251739430276324311705061949703691521300815449322517011197105802906031560576747366348917425478719015253811350870690210611299222907107594253590801478511789414464940316539171564598773778410165815324382707622301448002458349334305641608480789170399384450231199653078799263335665261774296296833520621081056583026988973253371298411405729859936131137373319069728470143248504580132018794147182546416119491976526745977857960498473278214662237907240703267493530461474085776111310532289652878439674914997403319759280594597935579739961035183515862816954007866591633860096049524878090360251543964232127631067376777888354494206209839785864878188355513600554176395574943532237174972498702419952223145125072353395694374887949684793049174846565256941825709479834727231929530258484756554196075447763848871339193820527112743091156446343794948323355008282947792308148665349645454950005542124801405794241745313730787280193706596565215183024605156274885385037181121616855308888704502029258481408123158429346081953922662154969629882638352065683444417062735211041973149870090121709642313190780290740336950067201213888675662531880149049133317320891348520156791249110358023474148896427336981570942963648565592312463898334614824431734941053429205289973128981517810649587192042335932122057129581979747414917811583830622778995750151683330456577671628015969898657547603846403986827389474758778023169952291049144148036972563446532020923546475861191131608354209426131304707259779136554093373772821753870485465969210981340336259756574911720043358506847833840545889056694413498242668655421365545174322164123629401271222376302943670687935793893272165489660963591066898672459186197601226239617406649769594528648533877661666842498261263078663909459508347560924778468847478617348204688053655781547799327161332074211209916262913708377015911084941918344469411240636605234886116161699078149708623152383233681953713545742350319646345841583492016896376942853750714455041979307910517715571721830361226573560310375541327822193368358462357340986521893105777404683304745474700281182159326408174239019026654171453585851629905565243906072363388422972852078015651411848836584543306681292379757548066621307694394447922609489427764594442462695717176615013629445376895286349343895910880248261422996113312332082630941322602070842950528349615662601258308607189880699664410462942677029189109523713610139178685718899275934011260853616003422999105010253715991230682894455548653426592351668777411616160923221714696933858279588693380008288170729831168249460633791102799561309539541161765215294284689806527259015698994447785629328168561848800195598157645196717777170414383733660814211017130843590960857662343727379016276185756529661178179113819295800398800461751197084846664593551674922651416960725389602611469186699469402729946390833251961623566080276057047040967426388453289003031781094479045466912903638604774832836763346940429283262745845640781438842270768509206924284290077270757038925784191924477011801017374902127995630650336322524224666561962017710602075476061210682428146168289146308115783844926972609182705495689816958542533168320436421414431992188475868509614902968895589598290084646988498163000795679529472498227923766724920475978209430408223624514310540023202723626102296347518951140084715114650606098529812760070257998759892094085739778197430220874432835537166413493621313941377554505156677859309266229036822981684837167237815061692318202798899342231883312623534755302471548836857533066583158747065832000890745054548397680552038113169330939649368477872310627906251498813942685866966743397116099053907058102165375754816174984456352995364476027452915734547443939714932275920229854460790964885714665217419362839896344541494026449833275391189064574511804595924494914284379811049964675057898593880836968673466590461873975109595298185310483093614478132393688297062189783906861668837224357406555151415176406937487739162049869944656492892378292568487216243784241118384602602084399677597894953524868821846858414816484705691190775256597667010724682487829204411029112335438554675648559140090636213555252266122179624960083364265276552154007604175280481111694589574605869531301505087922724614989163738027834327781522315026926160374053790739865435798991280205337106604445311910119901749904364659266596027223021155298408217325235345530366461423587778520793864710859632809413107750148948848973532684064430566243699992943992743294228248188828167321063946696714418227854614942454009789420584748631327314394146541584496153164869101297517506982315640652254797055537842469123308774209947982386641804241382062386672972540308913470863828478172456771571683535456706042416332582867192726364467926955356733372065248242909926678962639738270340663777028598421340729985529553547151445645919962247859050797447706530341989160739099799808548551990030569474191104828106435706314366322789022208694504200848164596100409981533811422850295485048405670905666354248407122293399763522807002207327775917610116117942576906364689572425769486080840534301985879958402885124014252915849089376286904494892362297112359540365422590563155073307615600664439113724170534318325227995570699381729171191662661911194773584762370298700175238487642685549187522635191495963966045772085173698401442470821275381596719933920495356368481728393194486655627378123917207533178171959229904737888511399325920321362339836494952769892234244610594813411244878202012460692157094106090766535601987215526271097409339655678156187285429223043752701009435742380424918124623028288898500720773188009868687260849991092712121197334033024639253488606568724712377473128496271045014275455962017110162037977720828224418881755477715716150827864443136685470069635205665666085630817393202980407835746434107045564955034183340938330033135107175569206345828770086566723686006062940868346733737515535783771675305670099820575190384827848969055887691850329937662273400526211438846133290466571178752664778406270664285123704544537004173093951818085233790180911653434425894481206789217886943890478715891976117829570064584333165190419570618501695417647606226617086708545886270597094975846825248909220106851969218577710403824527853999923809265646359148205595659674788922859603236571731771335688553012136950253313787985396801903334291124174474291601191641643762205746606219790402649687783619403851360746291223371859001184066984254664288014606099199685633952144898769747266946372288361585503675124111988523037749478822273666999805747832656650787810152487217710117543820907075905429442158265736194118816493309271145818767281742262252733180599042281549587662173301110370437651658229546714612600641705191490068582794885170217504249991134210834655398622562079425840753240576913385966628205755721941676207031460549096343209673117517689613533633532592246183508628998849404514529688323772863356026685378908275237502005374927821445241432107960227539588051621847052142213520356526570248720698979856437900304080446602551739500320038511580496018115551123296747744497024885759591923392628616624687056624809293638722886284113610644033990108668416917618388038272110476286822696456818650271761051924630075335355841907850899360888835891412786649634378011270840715933650823715000904050769263517021090666318135044952664561245533960946390787337445682499561290669781339373680476501583340451806876010613425234695536832244457007312973730204408698560151723153792222607897001492874876126687804844770553752192563796024497926535699531472613617423488013244997690317541302540104576492628778091679171371621495767629963140085168976616947557584644018081367694100476111896978737318720785309313052673852954459517801471772086007748861545990849713527284559270259526613359352062390620474342391746752390909772805750734547492042359790491120145520099285230796516564472885411942280594962973123073299346862813640634131523676762327444495882999848360205803154932161961288136310095761771932072936291730158863980825983993034870531986079044106614339844303820983084206325892959297582278018756550989377710124505626487501037075877854871389852382682516400994906688483186608560073033021622702706321169403012109477047811240097134163163089217933740327171552144603376446326002158161305561387657393802519781677251635291018608593840811056927340971795545414915490862441004547218515105796002568098088404598402005711363400899395075347693837974162404014118433856785709352988982159355534675943698998821805890212450964412608620734738648806009741264955493189399398858938679661977552720571555166168378706074213956467940676188418770068155636636074376977903487596926202428809692233148064319053608211906707377984507814281495723057265085097021571668973517955310836827729013832942004937242369560700895043334998131327314368772047801696515433187428608131686458904047431833036760366789153321087758201709644339974015031399436343924928337096483630070912917566735823517151480103997229602701801400803023057564113005251876436129517539846435441815941816187585223517427988545648532849154289827625965280118661213045545323721558707489478645275075552609733458635295266231960480760883368872239537167860936827968174833307793588499835937955014191377060397102455985528365513275888193791028606093802402769232322480340103987578932560580844208500279358363511777004613653407949205852274746463758710961948503445969199806899290311412162101077343424363147984809403118270338519025666177554704114837142566749536784237616678049222085401336461604326315669417951825540064134623190769093712898661229249321113666567384030389978293400449984989220498353946955562258104830285307569810129834729597033837146863223388737385588751087267768468339474701207442912244070706362194248525813844865732660342576776125679001261409092741701944095613661430598606178824058197151952356374339566240883671284554490456138026777761081289549049872940376375265952047506829368894199333309611147004248176968822421308333805191485107353248660312972086281898789350910499504747591633718457326352420696652260608090733477629172978574979692828537538615228569062446549939983275584137787421501508023297629199242332811818656681517157941626954048319114302622401845750611003108169851313915540216877863527156622691781616024065259133837554690474086351441138847391287724120576588001325784530283419951031031493327686916539951688147917079254602788788444523010020417164318808355959921196824400433150603817925265939480848615099129527208327634044046419289276592836372928666503262978668192995024779126205058673539996836981620159146505633634269886730704650471858712521155382142905551928358646484207410618299678158316391746864332334069128129670579130416789761074147801605485063697905017581189307283005150048126911534074174791415513499712629997002202049895933904594451348464788276657837368229925407354196834135990661098540558196676313529619775067231862544774621868646845556583986106107735418047871581132495036409238376381575727572637361473796952374149521973550734586566475566029187797932123038474021830613128352583065298031753712541154154228566974425967554186614348618621869758341188254383204998071396753325659931647144805736524372838204488380673643188787848455900965987136472274798522714645225747403166791918443098412083697515475300751775567256736574964454245799746520621651382596150256238197128246179861934330923008750832046489441254801843758388762787765123533584158082773890285509603910606804666386721882194359712223958754885037074902839365615309550890925841851213860508462263821713945464063478213681476693085752846751098037205358584834138344239174882725606621994541944669667604556944660613047377603755839260848691977454615541924106082452577217577616536924163416268966980424502446556832717399622921620726280186665215959872821849378887984351214917077677353481887925747125014125226382514288282286679750555606722979713121231152873296599386084853522682667113545324025113435815470040501421407574666550935517972456237407606827410987164296398008234901304667755575282128481890410919884848537807503287128492836193746210264608383052015633779590836595658916904673094908362937191166029116223386802000744932305971323468804067409485621944505903775832855624752976981599928152631120735599251569706348060414325224830545891341674910333258057779384976607838537804781714321563285777062168117140249654000249705522928860944422604245043133818219249531562624427278851809852547920816981243654714700840674525829199284954713543679751572939655042604483248509667700562844646344834547970511109599031533551093872148229752885742071287638289377945790104932620260558836464887747840073853259030535046652091456701873123502993169094042755697423317436937210728744797620585667819479267899483549136758547653836945350099178097434861424185824412708743627278459100950394780810388600749518179955580066564877876422867591954169922149464854750563844293172217290022455611750827430710859213685166915962894047348535863304903046056982792849361970525999079680740772328757985524206466733308777322300574393522431223806023988120414866022991980918281237966205920628367373172330465180158739873249906921656246147744839199313418019812835824351669555332954428202525115826493166787138887576901904493312324257633385576392934630943364943745002445051295607361115998046139949345746326542952567975119020306727639602330547696005260975545842157562520946532709652505964099412703748029320670244370696519411113353893386747513010921195853287261785968889276496451259497453277466290764373931206123329120241871142541643237814391146687041543385877457880148156650674242284315174804013022677317782971240016228305404382639588921629866372795553837352749719738277508809737155301901819455745107694269002903724871605587249271596454373248193234114787514334684462078015637656046343378880953534664216101208886063453925790782396795386128275514034899532013651308563589999175778479754650150038212033427527043532541237366180974971143954845679440181572883725690715402904807845507864923104546115921355697830509556197456185005487291907130358746620437090747550062381285395427818373883526443354219200225801627317733348007923052782033766965330026309365923620841562031615536533685672387929820901934915374523494734937620001584803724782862012419886315850346473541452689160252485029769404159873154966278801351191255278220407138109741249439106696384706804690988291693195769121026350003293803064447185615604030883255331743767226592901194013313825174148746409718187532493090352701688654147338149458621553758142103482908958990583786788501611742495552825689114454639654702137011409813301128997206709157125420406994134144617953193713359771365050591766607486691652282418003860765340051579119395540348363317939782069704997876067751409091579608847618714265808772850594979463066337305379781590496351481311049345315743235553702759188606435329421872323372893540813106623765652231833299836308450877093166806592780357199671078041928728062149267750212237152671555119394726205467184098397787302299575772376494875359977641634475505977542430779206243064041120719564790965861085516879014173623601863718699501733719298605112274610826493648042731755129742785315736656131750951504644349386409874239681695280272820402593053848557763344775260046445972994529501613168094919837723803398145165643922795307676696485108509030212520467050700712315284141429262733411127273141536257234293052185209783207121921032358564112641554012810647476787455489721419011042047532743113581998971477250947059986915198834746033695979648577971746317076614234442937246008262551296935414835598596906222724887478408513872498602922804514471777150545870045423328040130309501778063406863462145889934629472792649089454234778760984727486696738515403369034861159434332796938626167053735583280249339617161361018093262548610214743228724744341065186144438253664766648056845064045522241632298216435459066245324845152678961502462755258622682003506264422637963672729102307975720582177163376347220677329300021754817348538200851541262008103474747757925785955726435443388132195184235859802572561132066136767450535801708838833261084871274926572419561267932718567665581166771995400158685677949826744158322410300060403262839923742335932877489252813376996171805049514563512942315729248922613449117857995295007256080953979235479872460365455356956172763591367616426250277453207245999078368591812191836013025748861903751712836342109091689614158983696279916031941853440113497530985081031485145386723232327961034075552252368529968172209414326667868238479796702461233071720300169117451281364143589377112584917596603249117509266430368706919399218384640430754669158366050147984327764349209564302954110154115414191275822288462165611873030104043568821318007414632773302396513647445061954809436590840869524596608557811043119795317152977090845724575851141339742503154343132936796646004550484868575367965599219932159683350419451148638092868071003634992141011396817875617466809769157053527769106209544323073031847662036342901539139497787152213322844296455784164064901134370900504594739697880599083350649493988121496223835056594719306984293845069670953529761040697469176748968357847398571270119679329452898765542459923174672201155241494032558573786879939591431556032727686854084704336330484704647137376889558244038495363087979492520944820957176313666201515826986183350399109500730512570028377939290967100461067697812488472886024689485796304400790367456110617911750377676095674686223508170389282022471861466501213605851659909532273879885248102612887463391709576393124659613972353696506995305811526794556091630078634377743762503928743818286521405198314665191252878784048697949779158698571597043716032226959069216510826798941020608145420825135659143302814521513338368743338353531617033032363245636714122620275889477733598250305853053969140782863836482273110288917538894086729144019769017573648385383280453622615424028039204828900987239536689455200556836141935282723284801649205842332971020944737385940963484885689044730342117329462440548769276735918348059348908749940141934136437344897961271784494097526965620242832283682895642405930365763304569746629998728984873659673791291713237836803987949649659711043234012457331370220018763029916893051558234182606009159984974088505948608702479873481183303569673876649487106910644792201577183633071079512125077531488319488070601647371549716177337779449395719135320369412422933841209793844864547816935949522430618697754402069447435921005270704666108192048261663222443366506187139005549859387905244510614102823775610927716920122453064134010941557533435138884989427527725738663404009695073179527492412960711635594942746747810596660121116386069496186586151371372475649492814658651918617870729330570345378686118453265141426488345550983266755040035286559354004369254275623426322587981397394519037964575564516710438430759743487672627217906457137760321668088600002462698932085093512087060655090193651048011012101003113783184181583983187926917364991607654187106474562803892477709327817284106913970111466297109586681041814709269036081350042685148859725488874494041112701780220471909799731388377154577898115971062874542574910525378110358576031120109126640655351842018253849337717275212219493367577174066281674132962610812944300488359065648259310508855004996328431348251771180658179746331323637315275295830506530327594368840475852193017920865573744805227384454233117689357744411619670569574779051196001854243585242251604385966589723753356241312881224463609473128982506151332391896681607114700394350798881320912587208935411270982624384419925673516688337265779153640740411740033608415975469686566992627117801812503322263380113763096836530524692362358273222508997725724548685506448640586082695261141232494895006159866474242859949072874805708614366235311034981623554318979697795229524581978790975992520546487466872763130283355153478047012497887459698122990460184916068373241312779356306114722599482411673657449252901778106439872091996441104850838241953576881008800534487532150624116534753140422809043194068958737992001802931898394350080995748184880335542501976615913560476049702390301795471477263752595861505995665497328244202382466283930581768844968845864140430736475913698735411477636719160871384362148891519506179555738295523032375982588662440351579137883654124912180946700986640086061984821806775671945005816269016787368169956454007597600795497214775874238878141532215692706902006894418745149012209177248972172021791973843805702313411480241428502346454709528132616206275651055191643808294661266703604924300272905547140995481494770307456937066861624226982842254924165897223054128450273636013445630317832949015184027067343793919475373162260829392100859807453080955418620738742439179603436098002527188532968845363245497840597075025107954184471853035309130327927517929083340779026525072013887221547175009816856859921014335099512016539886652188805931591533465221756434034573855446154089006045265006082459295409378279074512826365108457574828016873581290994475218019124532869115197056299438254715456866336411092599530745747567730844936317518510853713113399253409144652378902878419683222389282240466077251857675305790138712883094451573482569873060743644145932759298962707949335572886677312572103296516212025368500639870237349004903173971989295535755458232639245569037647894969866383401743138357058545780069010733432607400485619850552089855520750531972859422346232690794596354399935219906713834778375064477467626460491259761140374291081707908854608273078142090158929437465417804331176974841974447672188938287971314171955507636047044597279407625375157918631283716652692645135454218253027411413103159597070156610048488517930134455816454328347881255027095334622747295263698589509865548925602064702975767391088485485644410572109253984998810565696380424453036937874492091742526635373909782811644341378169742220430204871915282265251463405089860324237699620390870733893422505213427189532583873932018164662186978507479409547617802010510039965470669309288791401412436219793899990213864331057773844024427131188438748140423845817495147875699082683630747903882716640383561882347546369131146241075637023959226476476951902170163617178149352704696205876142334161113218263962180902626198324512879916359714583340872338658506779539025744620827052348476747573630659797918346610603299046120039990418471202396977621679146565130446318837593457817342477914452229825307591201040368525621925982444579188563271945166796210893872988043594838941130056231669239797099929537129995213322893936341439579666642102690298639639046415263524466046819882164370838149069881200822339925909790946416019932193159056509090039807428402341016797600343547556880889635629507223148131209525469743238405724447150069789006126010038709594160999451333889768927767588025662257522170132809232978043632253520184223942822681503502888589254902515418282630000358740276494275841245833570642565024994650381623442583713745036242907408115597159268496832922551372644908659328643905261834002607089241274904968755390407742129588987079594727886619672611766298381844014526513982163672486992045021705318687172547414441778126178726653701711778478064773571000467445021021471451211532383163012704170134672088649256872485899927007843902880563249197440153550850448504440585716779867262042236069472755322769145635596152434534706123711117142729866480972996611063754718750662002983600261943588728036547312712902407973296519679299770869699511627986954764029697792133425203141681270229810902989363275560371148262527651959313032066058891733967335617001606240238717124602893450840566610337284581020139695808160405858476858244358451524493131215620051093181332890996296820296774228007723829981812245886792871703670194186347419461551837323143783080567515769319016296002141053650473407810569786754466390286167264103814179803651994739061732375528308003205843676463612807238399793841627942069501620732778952617377831149379365000378836544604752641978570134159351879265441144460384107334539144027936284019244473614607142623496697169264863464770231740959035737682420532014340186164529132138360600349166227334187604700268471456111388481580683008469796708974662612549068170207954549919506833422984634559649027180865454047069698426655754399863288163516957852164072861469198848671082418037884142613617031658550793061653691590133114036116939026441567000592111517663534628087651702541297116344783444091077347759697560738550418804120929690477271535169365319663360082658022793366764133453600700855944969235477362455860032587754737922453370986377133466419635226169423645962854841254928821833816824467017702230774757418800009880976722141462468088963602129099635992357967525499522537483009781249465329808709174455522135402093886744210885054707135986094056383328721273460704710242415297578782971670574310616216628326889895563799867022185947351571879365307339051123789234236853085883311218515463181553421563248153676816262212547681162566866522335083116018843496496994030384129608213231392286451523929330263162431585730047047799951756586250897573894722952358313123388141677613905303721384005474365509161681750139143743454672218067770831760664415542066897778800152329144860345605511258786372111449368084070145356306252861517117671096709451793185269574875577490788819348469357646544474132644070788931609105392281589662950299662498839806252127041799793179926560232376037070030037724361480215866320407168776059962447462192672730908809637839416978552876117425871767398085996452326102989988293965688791945760358685499876998348729115463976128564015354761398553738532986658479350335260415052061837216400231187644453309453161226366445182975635716641593130850351591745868450947022988777448360660442944483758524396333684548792136839557693400220583542195494630761656524495216521137525685417061016633671451378359467974934600900011887685586103131727403840395206521846220542166178785359607769212030472498062382417197478382786281727266100676334065257314555089193678564460437742021152494302532629687680121906232736951905604226216910710643634858655918365281870734147037350483191918039641539101099132168322238936060018517252733705655332820484696395101432070166333552741416866422504671274314428036679519727023933079898086522546419089509711959157254882925133205342861985295863063205505782093206028925544717206806434913778341117437095114650023953300051226555979421923117238064561857387497538499262769735736081486146101651623860332210054924127895215697045891829690357090701181096569158591640288133999516100824948795415239541818960827958483047445693300326010323380604140540297114478422304512675912988953153941978460793944130368515042722780568582604443093230841964774376408984328068592347573963936477251426194291595878535435288898942714271409611142604627065086780262007014121868555298506257271349675639656124838917863267037069881560777382193069402704485765542720749433637148196508118720924746337843219017011755645827305394189419382476192794782526484980905644341941830235183195865272014779209328846062219651686704141578056502620153134454270476057621804509766657608258107932362272090954551503602619275502322111305750179929809302930023294587847708815056222050359187767804336465318526010992206040149261898857011994773223995793639918116923766160355875377063670982731648452169622708522772265199631207998829921371288285097268966890671496235732734142038116762279618131201930057242037924927814844593844363987266926866427399669022805876577215877513539297554388146588701178346728953594247669599869282234441851622264493642499391633705966758380947813303981405741084349237852565443270263143107948315539289192971520575311192722363254447718312880335224275562617187304942438256077113138637560082789085637979972481664073571371598995223130834328664171220358062553594966021764378214990133287345782675427618172371985992729343420409639462245896131772751139234617261373527179101053445412891830110908146481857139553339562971655808709314051291856187529354774641265874756357558487045992711687401153003268181145144679773937231043208755929957576886910050361379686349435541616291276157095657812161453742846254649392257567046758617330748086596704533086812439003804445535976871100677820005911745944788085554165951797586466815244429160830519858739989172547859083570272783222195378890129067855523736795950555254976350664872724732308224874699822864234822626716756268342956592288944819090740538785196125762000970158153811044674126174367309994569869153638771806720823333405950887523424198279379483209675019460454997053626602036449908426013334319621850459664776503640864045182300290819314251042230835113897135100193622348946852796268934774172941755415370633922280582999971406530083338777343910096286068604465372333580924551927415959172090799039973348064077911484757955363960792467968977259647407831764220037368735762323925200785053025655779951649917592173540728403474385551329302997756749652357312841734363329266217091673119489452123831967054294077932618645848839910701352727004923617342421727609659474908245683644835473147158819433027503148631798130715358110113073585149247744381651227609792220063191389729692683162824480059981391582167353139850936070988314808120307522959626771352322314213334327774066338804824134848851635630969184423187615195822952636692286427012063126874524264461150182925667378162851457787651255934002257828210676215618411630803362518674494518646975681882464070232190282016304361751823188733391878925004323599493366706108967335334580392647748328033029375601058564973235140864925657195909397074563868664500974810154857038398458241275864818558887773295487897704212559889234578878499544168545792361770961898462526288682347434585444416489489253859109911498571690615326734669315629530067357378851109211834883396840597827765038351047362303444834244260578787072479739691825532796677612861758401157738374796156612484674610487559362418220017438800569485227526902796904811689047355093843231771498688485495485280891818354218599898622758070036055163518668751167868047074360329600510175342823552762447480524737419616603699063412234501493734834785415464581542304623241055305258989357830893641178673172602946088238108856816479060749820917680108373571656482181713138885011767626146171678610415321669137014591648107718169348766681769992087954518250475706266533541685608738729765229239388325223057456632293354745589461551473290099535066254933624784145486697588156027502214477469287048240042876825327200716766938345859346085608828463919488178759448014308285224710686572709816473449577243335019882032013553020018366150662486152056118612023624854968591073070116483615123399074750158862515903904547378562818356143566772370796271512947810286084848370229276970881151684268796869958646571275729060413627409797433997783872704307871652314456948462368450852374109804849893581853327091285336793518759816781219109202342337545888515268498723072838656215621578803590178384131438390060869037196354920585007695081600985189392174935703412783059101130501337475562166299915702525951700930699980676396561665483846769271064258990306995071491011683911637885625269038180797307463382474331697336079832263828861215785465511530665740838754621108153821675975105423063417813637950131396766008327383137582025747537127997979465946565179780558822957618116793708107771666145777143036441624682213484538913043324062992345500950127352155404678897823972604973531271160289597594871816749969228439781701279791984510211614950860796004554219460125454300431404890038301852289581891764625529453287326471206245624601179500268203765316549716615676701116040027281313949780612509155330481429615562668855618556740546447624809477072697336992990139437576501440821784450915785128148831313993222147353732075564463064278533440371233675678655329069415774817066674571744799836939594528766685791551738050294958347935600255143841930972505543046017163588387318372718766527105374650717371639927566145001536119313792540775051772521030569993058392426746249820363593277965754789929962073814151520551779136774934839613180338011486381660301711126512091870449214006736990028916345137136864903836590853551537610004665564768013866066049503130714214517595550748038548166980478245085345463627529056137390046986518263486352529950313257614641546969644754441338454451786889207003614480764153918918898145436785886695303881002988516546947075725915333332095680783187333051769111260697515089549502663054246676846615226532420876838654917339003278641654197257984001385675481404892014531780341962366674702285808673185322056665555779359160074710517040142732075568770568455573956412159129766156263438325457019942790623596314623394861468475929948251457563780249374261814367134016808886886002977350524101532571387976774173110826818581032365296751165030426692156429121113660003827354575886758178679483977321723272541187871782814328141488928546815939649988321415539934820185475078468077861984582947798018261698756995823489427138662433098324413679488193848942093835780386383026888338676240811271511067269423361844931884636176304784915904889403398486129746621799878737177635302560852050846455374942820670740630195197193122720355190815573745164353462538238426485457227354753182806614168752580626037540429389770885701271740644648654052270114461655470891986997765270822151107508957839802053159607152277989126684020734022156329660578010555508114372849487984204977133841268542232030215194747618639881033310304051571176140676708888746394008927093803281634130430248859002075912820063730687457659823423556793797300359059298896748850959077201116163636516195989098401233328239428603881268197644259011828749973088164339829013949979108171358999101894799610340346214796460042865793869760395241486962069979829314913738304253880129605397011802456232770815683187291762218360734761096656097301118974703872003100073113032017008303327088497123525671923833513553705573359662634895892470551122681005390733921455029316273137819439340918264698575989465019950329681996228173971244574792215832472047934681118782177870575899104806369013465916647266451603512175821890832851308173056963608662916991798661798277934525717178716359669132336431187991441395429141841280455264712368315629766856298026870799364276062319288897743068332180394570367742782406188061071620375222565448691157986416377201046870263319898506992148454644835587667643553068648869735116871620939295163989734045835267067290305519482575332997200258293786222049005801597971618995501312380355112998513596126248382938116939614988524869571657555221546399209853971813473645250167520361982820768090488106072237444873535399610698971474181285485134343135984966237688934122912726472969319872987651689796176705251903251105946957684423656488961308802517218145836030292144712685985393389988349927901258290480915866805371102173427326692043861609985611773544728578836468144308118732484017966595973906266217697193196752927663116993680036704904409040467722673511607066570022774349664234954714228988037733795890791112819980600151579595154485214991997279573962713895687039686377521154207179201693836325740620816061437180953870081518687496069505301154275961888813834418455453636023125040974882350154753163036485748261798836393967999282614891268512896565389787929208236314430073650285230039605334284169713246658985645860387153034512078743385221231651404780929504509171438224337194220801788568992828583332802169476163730976121936312850973348888575409169499590410739001157770758609621769945585874544621931806830693364782096682505909191157363250956969701347409150757079456879458437163160149268332161740194661412003688246584579972996608238199687013157744363821417480325459613789525434294835752870560473758563382512571918249252200802278544926922464993929523660494508244418227021922338354278883522741083323566454522582369871699779555225092470068873222788675150976099743606776707259638801322629180518921836828279084185133878110180843823747535014934186436653134559174556872947128559088952408355210499174810223711440648685748251447400377411644906370411980315193689953407815654837901551179481419030402861592078018554509722925693148479197090038634708675879728672417257557816576315921577856492949229950931769877339211687006889361509527526786064910215201706119739153790330428888070730127262342478571658113044829862360350501569493362478910572919557410373737861128386061373768798780941819651645246651130765997653249921546054969643141612434840011173808343784680049970909272098297593468193041491540198106883766627092953056580226978082679637840730647654202638978102756070244647762982907257316884558808835210547489693599007819393837735410302987015746021897303910663824821324361737747224565617858405378953998658940098651185752004293968957783263498720860341087680042780435702258965567689275328837824705331449083888904378179277776996416421806700108412449984987182886247040458307638865125145784717223563504531228492019648493422546088558289657687582206273082101986783103490544259828467929977173712190416183684818821328344734448173105908570391896308421294132408856535460397097649921558552582445718246889978966725385797349908539393251176031864483003280164768006219500306939751342466514403173277080584383196036487104992172909966727766762235543094808510632100299519981287370709012247381367501820568605974681608332033239187101195997632037072424960961272530591981614634473190339030337620599168339601987375935697058498855437757263843299415743306220304267236477484039407126253129452350776281964456848917091954820609959901995169305561627867574630563094480072527277745855427680126167190874478522697299238056536067260092583345947019182788808336663870718358712658001405526236729966983567797576562962745066804326528321703081914980313467439973359837354908830632508124159528277292056362543222406320169381317538692078035460102397879399408097827025436031489313398058225535630445183275079766859129018625717560697060266113765866602418468284417359398387084002787953793702265815566239457156520733066632128313380572793180918447236679582916452125201778776082839797798593147962216726644731630468543573478757185717996551670003837764053556257975838582212396065602636353771787412018001092606224487387547859752790390906684844591234334023512299127064718326029010283143505428377487259589175744259794490776955817522667665584031807100486645182974154001194525341346637100487672119064771536598919472384272989651318945549935138871103885083348351355969611602881894359950900043392197827327958238183722438207396574726094525764146537350740508694327295449632288840552253561843435175980714099404000561873007951577909979475259514398400763355410853126233660612256827564550773348173669478596501582398413793073985528279788666649831195382486986773540621578119798542387560167464030689186513816806932727377041399258636299506845149378631053641472496651634874161852944942059355267227472934167412673974421405161148163783208560397243413634837303958201786827451715511139277767557208133015047843385739419980633769916147324689623842065684594913294749737707196499872009876390155435219126852631003942588596284770257163975576337049438929337775636923555696807925358864979911845146129152621793344212966403811519910384495392798953600235067815978377284537466737917439877378044622355024746685349586167933493670558714079833848612741861490090883981997614904963880577385596677747692649554861640925624677834188979398941688347121344432449561453960764418232799118446988650762487149306745521554445343174432848154001351233326051877513772003326529105160227486243152416292817336545733693175844897890971028264143402025502738035370567815308110157920496898302512489206292946305292999496877340032388558787166383374627309746117193268456806923248572627109574987387153712727003353552993727191583579582743061508612579530315696823023704756712054550264641503250886894645500090282723791721508046928259397779902702059705227340662920761284613900789609857996688593939016930204369609296879459620982201192827615965658286645899608563050684988869824313647394558209915180776835673496561207040178863040507241452515811018565519415226886132018964253843923450437982420116865449993779935076039804803796072879214449729442982770986449251216400920524077602116368716439888930120288732405769756441283623226929198116718183683379961983173861865156828593480700202950670728678585882430492072081765068852228858473512608077553687012543138263647751323294773725404683716148477629437516047016611261708665160056363107059052653360464478191508981014920973416532321015554801254622367686003051209959852006357366419223774629415365027430050909077186928954330179835595622572205647308211465577370889699445408005903746950670806521155489576452162676455150613800877126384037359206309143217854262088990207917831615378501011916078856455190242522307337193998113935645416401686282161439098898571165110471907088729873136364149738749256392873773768050973099468983421427087327522830691573408277476924111403236042539673998656100970966377004345400731791519963672124212669951286268356196947777373862224464311593486914105657666997001035132893839394409287258434408358497101296492923396802394079673776631137362949045436242313782192493760000937229078943112266698368810492879198247731055722000811726057671443385230384934699783144071097949632390068484151566417802523056206192583088840512334488630947387058279449440376649618460033088457324913361268437717022108547113481831720300477857634862730588949136739320249093651647767592490494556866200738642503543603711157669858753619098575750729630831757060956515562169706672678798429373138017222034300829108971575304106164644423806222779955577076461369159315060733603509236980657834922275050745912695633238335226084221368190456935193367193776067264320275868093989156990226113376061568752767907429571587534912986075436280611593452009466224550655765564438210043379473692589546761269931643403493865864071599714317765729143799660930458762407930401273311561034973060657926836769507523714278029047504149000287668620901448606280799618344655028459926717617899796660543410463408110831434954630561761178239515525588445738761231554016895819440473763226757498287977491094651708234669212072016905811327302200910889799275232468708387191153206815452391311349302509440788217975431924150065978068245197574709623584550750832498365100111479045503712151836461955206771729569502529637471124880790183823348809516434484452937121477101061124217881611074967188430375837876859117018374282953347658034340722047897825603941558402033916505213722863142249890564011457758446453109448486455204814961896645719270776436800121500256700710141328345271911282683484776096800685515851175936104530930022713322196018720112190500095082117481852528815307921748458091310167783487869169648565436711956334432774023437438973697519481262571680495136363970084112451990305320743612783463857840116129958570908648174461276068704722923165571267007476276318156207530931838921542500946061117612925147502172884137077959209649623031958350371226186810737743104506378781881388045499461955079013755643997593223483671809538533658803547059835078637942580940391031256026523668597893253607819322073668133774978326807444995750800997539426410745654259601872739450191668218838539845923634035893267969747244059813518741445074844696064785065807700422909850260014453316657230440576943669552611332524962299185998854160359991955491402830530146557983521567133064977873209878766751531414685915706115275934538195859416757243152592308595933716408450043657434402543638712997689585048277267402050717971978996709776621894592472568098229892452769253084843108547667441939162599283681239569741182104659583184636138281887368228998693702967030244922406507352742593928748680029904502936242050364454168877764643906194301398876029859800099788143475808258513465808457017942248660426977157106641322540047175321147644047417210671422444807377570299539167329349945667906885201316584000047632407397694698491065666815128534824083325812045819888361339222191664004715016232495931705167058190080129358817295903654903210922755231041937614643473467383795683508897082090827283313568427798598667047437620373377600251458466867299290288368906220860129598605466090926894546916431698201628146328288623700409315247777705310194865068736973913193629188102240783216727238807163903368457021880700740100687799838152429042636899968036855765923305215251736037180703949236789655050303396662627867035360064661811354303935490545618455518305311742685463938606205606460254841929761611443877796824984753020160048676036561475448455543575933582730140036506064996579119628805083197423895490082993356594801862956546644202036212613820526944767014054788355046973061191146991266074070120503277119324495078201814837804031915005341407717948817219676445864582208997787408895454203526946145364568831953062633965794641001447480223058393371305701597177853182348158781944415446827923745948051765397708978744721885484006558373941769739507725395367506082791277303789875401218841906194247079786169845053884162026967260057401094676442965274142613403629867786535853911968919384887001703767727182885586282745341217379876607776592737070207822854496563849532245308880003648290066363153474320922040773696723298987525471655741678860666812705408668001208995843402879313504869727253999282667686814937577707106062167599146583210846441888509594681504717210948130936971905257193353437246646716740585797932910362626122802241877898024423362661898894974194320403537563568714834580525280859340541003580206074551142106393964811179392696104203789514743966649847871600793901312737758396375273253428806858311063444402214232456491304931714204039741225311390316129900668183836623555130075868279475619364312603974524862794098810765197250898200365930852319103502920522398262691710825402562584001807247135853343189807484467236308156806323080741473921664388429929297804502384525546379604768379013375226577035954627418235489337076098384770267214456702992696693207960593859515337336615420326994233438813555226088243328873152687283496269148974630439476134819759033823865594804580827390315446699233094817108179556209470921684324547167808575986467108184949167733539610909208191087745763713292273090498845763969434698746364918441985193336235130289882609253918814868965190980999940630611090203834952929215671837920262402538341234656534865783345264067010772448285402746136060388963664572308578986690368797040701471800948030589194016434247508053033325459612520011481203827592578308596575358646428735798876530471582992306517378372113289316289977402426796601729499603227237938491676056872118077445426121645503194981856959798862000469221127584227624157072255369627979415114490769943510570669626551914013174799982843689212090402484625102571397236422927976202511376613637865195595186403917886808423267626316710987361134143276084875526548383634130871104578607988944951748230956554358916978275510929249522413704684620140611205140736052373900640231425823966675735990776085457521257599843940922505491801439471179537891063424137108664301964602649078388439285858848040109347897084242722167130917512424130118347503936383692308551651198450257289416912077319435901745775321320205457079882266563875649231412509095630252903442451219276713320452762964442958228109508321188556208133358553942397445602381175308165386109222688194442054141311494904637230805294862250040493544546181970289521791079576711987600694968536841654262958681420029123858382845454470998619191375894692591826665412113029892091560041488513832554108316739578752516205289817592978094243002189533645993823807407714645801888648522699636641294808713712959820104345763310386246131476437849609282882123171300513608580320406839223858462430219931678404302563936282281472767752327466849001746011825145660778931013926071639864297596871602284187922823701062927449786826864093380573553167180543269129383705707316011161236672737530489027329780399835975356237478310828155690466285074590449652782375128046249229202581206820513841669779274184022693102097346579095438662045104405815527566339128697941609256504328891587074203605552985639845794816921475251810298941550797495307672059988047827724867958671835023429703634449414444101547088837926179296598276820029023948933319429000953787969940759710187721324441378934301573408766756730441270036414489722669521224221018060315100019650590515027075282954522386886012915003675602756219764500212127636378448025867693319004445084575150102705757906667190430383240431458562616537165887454296273398724870093496693241746450174064252357015933272694306445622655327055895522714827876916975152613570867970057468942482344307227797608910839575723863565554072802223348822114782325260252385771588347326159230118592669245334524587004364402382467493953133311665948744863515642874509010206125228104932917484294672321455597725905666229058079865958736699417032238114714742323295143713358678888652382109511867863889410667829996892163488945485824111137730092908036022152856461942344627129809245784933843941362165766546556805292389207180082448610476988026544702122645351152394901552335236701932443348933381568464800740736357831955669080430307928772957024260336345642451139285080665686045830065091787471653649056537180270561515230792507939184494861552742348165796345522240029946974515058939145568513713891196187673432220362873083654862246703795068871296867443808746733467439379648437255726614241678855607510258888870063241183474197665338413067788305144524427307950617318669568534512303744538631517382728685356265444995472471936849725906045321292071460891085745415844228737368714859794354359409134144228793596343018672762571145302245634479761800783052142821468783574013071123410544823351071020857285868008660258193268185060727406035184720065987025818683399151755593779949028654640632338257661113506297416050830275019789420572004969695644253176572718751346229124605410573795055183568885500311941210885341814175101449908578012886311362018090454119144248861839117508008875889234286025703342768764205318836679614799689607784822079577932268551226730053884850771565529912220863096309008004445855790766219478518523224642414077020082934089374364610408529455913270088363176030137466611918811801156874366039478720629608610282148645715256441313013850675820737046794321978526328775371115568024943976507135135117954751485715816450949817559201382271235042540215335737002967666975260817608890787286577064282615118269426805007658933793609348491252329892795897198576459372059808136818325758731991357025729335879509439410179017854477893543766412412844846257531996771255167884135154115023066589643509969010306398487992400130618461825793194826430842739764805770053781778275761132255587387334855911284521887278892776030256932433564364329098350892850897339659300954321938002945428635624429302948508962266566404155094302571387362268912123374503869157436526380705841988328722060222969466995281674430065729749116373604016938609120536482999054074093903414672138013856839076008394281001072388570910164167049023935168063917463091116399485187744735340107334127090403561622850625705576847890378129849427694476467305655860049846161390664215878943100163503120036097530975741541744899591486120124027870512692603529049712987947232176795525084353511474345817939108784712643489071670518635710574694342463577913755522435754858280189103849389506884326840752147383648781285864884627024255491670361571554906893849603261379819987394082811429341083371011127161767688180640052594904762269553018787758162901811271668626375150451361990728205860775828817519114568318529360144975727887895518066563765542691622840315991052451615063276096771505189148583418626285055220298879279903841790279084132115398450017100684037826339751556347996946199884308004867166071759206882596227048275411091531572721240739724781913196722788847478515695598735425550623098699828478721328880701195000804132627778989528382170716744045558041214835706039480216121869588438572413137064264744903784381317982320807280634561850711013699063306337513442863319225006785897365780419686785527715370644495579473773162097121029178561917506019418970040557182957692736067747634498250842450213968093302925342901326531155007720332157961530581861792114890479965349888859421001710248600404738548041585097969449657090635502632991388705813864997059787901953296363585785843896886589408147637399871804513602652916813555374952563144219531346633283721827848075290069247293712814524042952057683839109763853760337133941955050481880816353731249936149630637059645477655154446415069594767512666260595047181509201843838544816268903170775165369482707243957604018194131750770804196818009191019571725840082957205910134326798510560781655416960512923155378835308182671676551191822575323819739614539823414301653802806445525454537524352570260756710955811399855792459077342499580944070858404939193845760526313677494149455565529239686221845097822622631052938194220203274239551540147005586579292043324093471954107876722224255761941303998710314365032957364863572190862086693054708875158511609493253102142150158304065370188098919388767146991930143645828705088775664525043881849697840861963306545074720104255407660188633723906786314915201925864606537777420699066246268116653409897528310445685159450138286529167282059080000765812756650539591802025452098823938038691294585839569040729528925261431824139758791535103128193466694312602041326575992449620476912274997703603124403703781022738581573570645748194921999990318813788513993349310597399761386193970608446143862858625800981663875282407788838793238116694642417728258702628271837645927406361398130762794430260612718917234380284614262299503469238688146922766472334461316571346481148639852951691093054689478026144853641578490233256565159708953749883291492110154696387302471689266024554492042841809410643269626601937763545921434977158505639592902123161842156337518698129948733097168244724446184259841119435387346770207364909957477156103896525250441817342740908276171014478947327238237281636466801873780116093417214340018942315134367780791412068619409985291053319040642103511825648256113143742505683987280807786391792762395508016670168651392225793250471719576808266082575032757323583239934196940466063034177115368425748045265860281433227474420173008846506435903349518192272418153815291575754932035466490973371267726739319284497379649194779346684135491362268955924495567260630518128060121578311154524740358753186980448206573138863358152838439129423690364592338502481136703979609366884825855452948359675531929994535989570874752679774088781681409862381847809060851298342132384798307600950731139791717368459039965806737026183618946360553190438854040822131584597556721769948846803114149274063848760743543592049578906326952340475434280194607533794592661588101249359394720699674315781466008984418560091597457441052198300497694899787654347567980604323329843618205886062797046658965602651199056133120443393017581636277077845236201453183732930141519875044644221784897432578036262160564565505376303541004815134692010727153577072977626034025510628711406891062641210834614215979784681330715819126060880276948853822470046087390220905826213012801184036681101903873590003785940548314581738887826822421308987328870049845337916337932958430706494422295303613319513865704504929450728148376842659132951253779110020586069830871800863612455561262958780473738236857560525001411946548317004099841518480949288302515497881053423131769739613913841993805239473624212875106946453255966722787882009213371412942217018700552490150271615226205845848557858613349670213969711153123571382192713584816461818820774001522043430555102262222314536729267460038871135076794082242834539279033835474274205904064552367699918152009050064710088897353548439991497829622880567633466251923071451626392624354036960609063085345344468113117396227884237960511870926665817640602841285421559621714425612072540095152418828570489745610710648941753219052447483038399224746529684938876031769784472376705488373513490515788595658561944344757504317038993247877657833547356555870598856381103256893120710581203596431942452752452848049471092476431737654571580736377706606907120364377946675622821369399431767361316161096806826657860674696895272438964455182180407090513030966651392013002657764736538673453382354606113037012306756207214706579893147648428171922658174657526465012296313024378191701796403215247584258428793192340643811552434880380543322471570067799253865384665931705493094300064809253641943163808147220110600534059347594422203818078958412935980403841913306919543325610691214266346250314452975238437248776873892217342262207205830277124946525304812544846924881689243636914140936088498079591866027581913294739622388315329841718970568094890463819887534482107883483684305155636182431640364488935221278965256257493301991903107537186245843361368336704795500692977832153607490947946777539544602864296785478729260859519214737543743391322406689652623847409874468168742486405498206900566347064722772717117256723705629775935854379260348354246445845093547931058023936957663339236696047220501741530702555971553781990020902944022990442125142340161074908911826410857162853622572664310989076011009523165600477003604946195772622752429082270325616060990764673627380746286961724101182647141656008747308599447677725664240144337477239059920028336408098142420071924378319408706640884882567837175011294810197691751350580003235538086100153925624209341606970696522683624705003085449797457818384423570133305705497562806228026903956398208245589838593425983892252319518954924911978261112753932919772797100232691936347521157753888183626340695510223507695552382416802931594031552958511482808837097479723704958782302496117141531940590902812595069703952479370044804911896999950427254249304909054987088746992669467785667302787244525721488834951356280304825054172459280696482534035441997219521533418747740791508821464762609204425487772946623499514335707746611748791527388236321373926563465051817278223708065307157139770103120697173907556806507184686184093191232076998114866984352056870959694916988630518870524319597301668946242241471934449391721171601432984106242670394688313405776664876829358231442567595249653416853756554423611313388950223408692340710687667100810446053226313007304537689190890235585452736383042260389257428256994149215794392397809495086034943674415197102684920411937764999039704209635331184514729542289561966115590494098867781135955006511486530998853715643092032789002833725703438029403678042812191832608144773491811313919731106778844124694418175078272069757149598178918026127569698704585203204720663794633903588721854582000269342363622650539328698200048800964100309670817470992777204275124974497140147847542867958721624105306772951885465239552143648137007798910229229970352288310575966885330661187526818172135046984915894156643130537418457941631584463680054454730033291156815498134310142934477746182305071988975850208922953950878054584331664674671653811764660119055506163893651681273140838024443777847256997570605188418911507647791398435953282139265205151799353057202562372013828357085572430584999615886134145248519385639519596649223568891860247716365944447958734737985430875287965546098642018334062784477411300188753306079756925061267620482420071437402156406603170412193428720291871338607712734884084671992387393100107950094676524989903554625634923892953074294548990743115885381963166499604100066786996412527738432392410653951690712144627711598696976520113342670718465514087601512790468490851897951157937825013624993986081464440410730383096031745342384718601369891201921051582584469768940924244705370834202046509517748604517074707125020842439181518745421837802000003991360968678169128130764876018410540630479525266405770183797624067814405559021835917915770372788277139155394107868386459078657772977749789785327926475080040353706636852590710087840194862292668430926338874686596629353352350791337564663757766693888835610688051840335986295524954996116151277274242298933726397295039796425834206362963327989273917774696582465947164171852790496291191180228218164642087239374856510498504153888852925577619102481512762755074770928458991252476192445624842175267137924754467959956968942376447290491893196848161784530466060178812508368151471459658451049567242660023110220874993217083914138652919406814463944724067768456799132718599075138521558602096890470764660763878082505279368277101481782997383188320686365848852321677293755466593887652693443992335000177208310371467791191823881965711905121742247611119032864594812080357614815000336651371082986910838411473814597240420060226037344660611891922514556148762502345081196812748962479711001438566670455169409577694907462215973967125432457836119843734143382409944595878679134559118989328720044544031161081196275197918740989421731929840899688371613394895884730954614303941227218452861973520475432834152932563813253078715264517191604753684787726437763343365342758887392606958632406007089722899464880595428995839773808229071199505998053227603265436918161872469680286469220069851973797257127551613454193176293924406879477778582084483747287508627249767022135195815108580791877076837473766436099846300244452979043609702606186922570807702718429140494870658268602576602614558549602363239705862501525075202510808736170502282964678804752700052575247772260167323918551948998502099460144132806515439076188810662449694678297890162844951542641465768515144681023981943081484263168109421921215487958325119691870084863834150445540015841408633466988500217920418241641391383961415508679944822647010702592529265417911955341406785445448052947709646142420663446392547604420468689656019184042133373448392974216300491342674886627226555498656215810076843340825197857576705264829965833293422546212045263955664411020392294472296004205194474190348247270110752675093728270781350540576174718056485080993629646293280368484866343269740147690070146573725394588520987079490457161223971079840086895434718091649607883470832112677682755496466997789029236314023000700970719649647648901206737247520863182736020294745514185902949341733427816304687817142339377326090891059351080379135731081406112865585220126096956806126744563710423323539504375387124196855722110247073471185803166258194178241987395406671342156679174799686069538100978836218036148322155216586255613545324012505657764753129752281627429803850752716964575812058105190127062883205964579826127308573396140527042327859109823829468573562196175500350650812726844183573053361002991305392699317836157315631000360122509609154531973539396027860602230698265093672171535495421880460647887303807772880241482840096526820545893720226803301790480497405754481708231609847026012842260828663989716667834549150351357349688525925101914257281657177135370952939593709759464817816057863925710353108543426288442421918238102230930624692188578859470921661370332344682546311074238011127561593350584573750561879645978431543737827301250597999741363525138715330785400001532569636223813367534369797968630082892555128830129877739409928404764956232214662483285309006604527571383257193543374292160900118839831289879728466115394968428389987363390709425767170732893025570763786255376195967290998490161352749048703573647251805217140580890684531890735764879997745961140905468976187266258884243256961650136087005542593360967071530643423588828427959609595358190351893894365890677189536318001396090298457099742488610113726206816757408456018351037272756211536634838954918310531679519185496442405237390435456637840378060935500271233413346997036656392971232671380483740923563103843797589029895454309165025892817408999311094529583304326529418460227396121019980946495961620993111548499039916605000863099769064134450778033298602410596345432011565740929905615251693272872824480523397401756559045050122238478472404836982182164873933874894856576137022275432081069476959708785109843965302935335296222957653041431733316417154019110763041030622879877697351566521375571219245424291750819975962935250703970289616247615427698626639145135341828300152183797723947191716574580767255265054018602874529054033731589387106784080890804318048151738094533183008088862594400612372646033224544101957198585652031911347853034091616102527020389493138998546798590127543679962979203283996266101038228662383682033898399217971937723925029710583675332180251866795825810337789893563439534139932698299954295570820944758830290308891933200941374757819972029864205967657731519688331454827330987497509622493762288474238329904798441610454239309992090560386373880747956680395253091745435528724921981688604310844146066023308754897586928465334099303558388619292708283823184950653751827253779038206791145631194630721824239592902591282157965922515192695279668927118560827774481963059652028938082805116984036004956491945614564605540148373014292392978295009388441334785643177572911498342002342802478860621384960201446277273970977568877397849686924944373094868871606332497864246113289224472023588196314204861699782186858103560161205038124544727794621328066824588488187462546324231777473953669644522359499136375015590568921956931524966084576520640546240684151912670169207794668265866000031224071611177692427679751629148515355638250392033355824557736658825223874278868814653048557153458814644625387713772395834247674400934141892922498831780210032420102947738925451933151049883246221847194239447926950093688526562927673660077538880604502880414833645151045402211556260417958755598459868688304547403212293387625523851494996968116240333536643568853894039215102316369596394729266527581436522150732419461728164531686886819951198025498618097255054194458221361272065223044432955162615112183427707470565582963549570681565076143040575416931222504639418911581922040422655456658020564878663275999829166911982047661010287022732539739632233226426137856374973936826885833566576417062008932915167241852404792476618564262463142590749563313481878871480043630220050251800599992490848195819029414994163568724952369390001915317061995167298051370133329424036790112231482001931636859295869502918369048146605916380347672771321539299474135159017715416274364340838997757152735555089380918501349821855490687585306710489778078432610910638011950913597246626654946018024298936108900395059246840200410549871324944333510171509664566159171358281619164596199240836855369260129608135522033142113581365741788158591083212589899543402000384853203908417676781970879425431584065920141663987685146102754880061986977460061681056105600126649865014041314605325331434594103394799787311464259103394937793989125271974405688801938031219303184083736357763999210811476691509693559553063491291171703120338796664662508697145371746447261364471482774811279365323024627350315867021401727876202609990621193696661790978005277394603554492586197720881992384415811954665384344521995177780032810608294526197285115784136404732883767570429966774709357218182733898174675829542228164594563124162724733855493769812698581718398482070909123181024996627707682322435362932458277366502708718075154542619743492699341030330574965990080644866816086817355051527705970781144727808318018261981016170014165758839542107186533212723299224601103291893811516145958599628136515713176832193423589578562682121859416976880968529796814464285546241970335863368003449162980524561567975908248735095622997199883408662896407280485131051686364525217584973512479246126389441346413547821098331935245594537606129857219477398882183877607862980283763643658080370274900973759272948613513950820042739537339364654344060022195366262988781204473909059014639003191794784209158454074645335925667719292502904929485344398018580279576110894706467505244714233735933973375427086621746081667584684214422463168720114664034470199012417083475476483234326360403168178238628123017305744551842631139785142751390355273625030586413199421699568924409408810071387990980125174876114649793542755454503136042756063187328781307863920318778598232188021329383420768598975039490309246409391130323804061571025595399730549902008864845673355491424921347622543674499459917738130575225693342423937295979197485868963584920096191681609405672302875304743491931926157301299638801759681594782777702351717796451466875298371582605725349873876560048439120029496581115171348702374920229152320776873707987441068362186416953857852407711008279803452003991586918747931840504563692499881924435952453832587337910728422406071031138796180414682584837295518989617362208237269839285981120491232655540446969019020393476350472484030365812261876905727096418544328099259682871424767024401875079972137826979854757367723766323092261381776600162534994909268956653616383583413975391952081345293436427256054322572225072671629757633612775035490056963925459228340537637856583415050040486557158664528432647234744216128660766135756331573066456557307036961361098586761670790453973307911871121045841274116963257251965430092201871942772834311265430694931578034879465904019094781170908169152655867145837898562632439761074515853653998935805180361490790080155615683838423992922473334447292926408568019299599465275045800468452596424740200708320424786161498729952433767309798894499273020120041882049049792892554784907456728605560221143445891047572474017444845432401814206703633511958399759136215332541756453009634028511933102078121492685548145040145941422504810196754891013064619139475655471638271980867500139211974303666046976449843840673045133557028455798075277866490943998268354650034882796530616532477840037576837271575957168524213202493840658371544628672620012887738611579297731775194178159073859790782028863634363002272222365772355210868055688799991945736096484443552765171984990292753814912154187695761900285484970087817616032523156596941799142929597776738093106470559946313694481438537242756441787709238378016916327144398797429359143470223411525261942273869821494223581299233121345366854265921353066555962823905380546746952152648996657247301926247269094441938209149662087213511824002832837426614747628770127067293723968976748762158826105486857678426953744958703521238293071291320046157364209652809584727583553806544762084669903164829212984235061430820340868915606020596746237286548882756751730574450491649568036030614271468645864394992183499029795456206511454361175058050605575087187991735811696049345517940831255676335993793827542553017758642583393511396811252788875447920242348743275735584676559728826440503580733304897779716004407881839041307471160176278897138535894795704860676271636413631400007370480828822180385604714873992788516616825043086054513219619809144191037985249932426078048604617049367459788255906710289782003922086983498335359792378909894179685933146623463423653851824412783623932487489756947864893873983480438948848831822425218542998260455768875619283529087403952887282485666210899708016025236588016832773118198788208737070858433379260140198208167764518525287965484013336835911135711029878430904615883501809223656677544669757123245003449427289622828117488768335719027910711813686564558589302905323835652204803333183557953716406170535201763850516654401261116714636268516253140095855593129746424586755564946446311810537436065619686193467346575981748610514738839241052965296264212662723666539409918647163504790002972204547666807212460080628426591000947463912678882801541528082823949737507195866041897368313387868178532548497287514331556372397369417637909911282300542842053502167367270915504272591932093513267081524234324875264926489452497023122913962600972585182242021582881633647944993084391149601038230115087582884610380652007431067294557012332806211664937354701029902393722537929491305698569292254265791453517674524051789919669092144757909466366639968115784787611342287995052794375796293894747615227433913336438979828614066877213976877479292811874765782933676051123298710292196609151448551998376665291955086991659358274426558262380745644984064537271177396234218083148981537519201919874360938315822583871605833350749101031036231368937880963839220718765319984196209272234917731666819729664944041583257721687925940902026923120039814956440421397686804189735390197864945588784099929633409970092241443353693355716376702492370837516790157487328143536869048613146840509295968889672938915263436540524708057416910542938561479006061964100075167552331554742753492556015299417257942681070923236872509478163899366034488358137963282710645558554174710994173131170599915430953444472434058673706505155002347548404385457312535544967014191671467609825639419946529054976963800453744695984704383984858259929884355926165076794034148038306747070571646403816452759043847603085916680517574487813557769146320269626878337347326251584671275121201426995400813249975326880759759179316005599368015357471434010729467767132477168263357931515748003836036812664598279439403057226321506397657673873011514003488037351493483818627197289279569771443729839522632870747729419612982949766469382548867305963662361756895844888428651188127741385038085162324264631389272533816853709023702144267218349866243642706199337043253643576272786936047640208953965770178654870003131652115752484757907189377618721685803922013469214055658272001475757758794223600312007696240933970587842017941838619539073481458467900761108727233542498710764481581102053882154858718466724825669732912951316622028304807470212506093790851509389956197669489883662841075507570210135832436518855093743724929349010123717536906482445167808380814827691738959788237392875050264090951847201996563418217877763635012541907557611572326386486574405329663409754425839139544619328365983837529203875466961899657388591520366973497294144056173971666307851391457430810305796948358581821710893153523245895725496852774817796952804205109786046241791079465894635268345682229187402198954904883424395226259920053125627619865189195071666636003108573464679340991196349195641460376904475726333115759336789169978582852589775494932504171187423525505879935166877564001927245489230982219648662053777842367643979028815100400000794027087100512416461544918883887595774469905493094697704321958091704337230351165520580619453131375260084862550751552532220849181339939912476467472303052425995990755785393203416334208085857951711853131169371200130095959109481876926402327725559426528653656207716072733788998311917508188534674929387755634127610739375888637661738308969886292197674946734315945499911590943227407847568904782035689890933569880986831478571263230549133087187563057165434894325116128504953629559879301154469692265782800493024849947151935543789683199571838291866827663936692810588059008588892716964653068519573775090540200996828276718226020668955025591219297446621916376960514721712125243812776249272876951894156520506862808885085787574843229393836491022829915935481879182211453928970163385491638982145209035348457204290039491688319767213801916250067378277574221720861104259547201950796620870328236666910460410187453484346023707906605621464243122037226785567084997934622122147715092384120852168592198555221931109412942552581307804825317210475475486404508457588524404759155798890498251029344220793287381255984190450582102462815134004945960481508823882307621757080711312301085096934330684789832345982030290934728312289787681109344088863324067375008552471631799909170836377605301675957113751795453911911031576918068391860435563898397794467696066531688289937776040254156086109152571268482102906438226147154533963358628556636014184804899435336230097940393147764268557151645882873948638083536946331719789812526784099170357222219589889785688791485670819546292880802712614679800430055359928357506998804324542228744200387655226773553389218061805324131178883533478805903434671438993398577959199078002620225030678398222875673034996702266973043354596073753207064883604568026834554671986275289891659735161972749824040336994943211186614405504292115317981626997676696856165186025977303586045597503588882027122294230851484886530505614938033908908456426108013992358415076262520373627044118880044753433675967404860300996427920236512116542677071864041795544106487781512927895186542864800281158921911230083183700038827561821982961370348090386889724853424537600152318601571506278783307276806944746034560824868166101724353210924904870584019548676592575413189929563151324552790487212064698800054516142348140898235166366628641220681926564317376429559296298761319918355390027708845918789842773627946557752320162878750924502212565840816999389982426561548485866880551381009174669394600956952064494549899201978625086088915851489089047491007675940390615554503928022528888714669039808197730563230979398737245810574406953710472119483896258295184546031869447179453515392136056021327972753628016192202574848184042923246772703688319670307920319465861354516791480628749656603749919249909010466080527168657263488811653772961221169570944327115177387947720176930937458920670985992413089706636958051245243002661733131726276385644665691758264462393962468387741210756451666715357149905564120296547586408600187962302667215139623935721780353314368968042242227957673726836397123404630748225986485766875414746972716336293696157047558536202533123280354316010987873180834947736769201307489281817328996851685579634586692522653908040554485374731987105902549152575696435427961944986302970583091718420720415915067068254985029132188707634916919812890614464309478013300316038802160238193766351393779977130955839431726981804442496339367251059969463256471855120171856750321467271158692547238586196637663043348817418383604668659704022163353628979555040434673784461588382062139204104400477371195758475958250325970454862370049245450774090271610497944510244023637902059994340397458756579508003826769511899286088777639018520399305663435476818111341843736429151575379526684275271141379198404066080923606958690452310520225073327377330396175492518541013049430093480750249318909606395230970402358151033253185008051107957035823678409216958477069196567435875693322008759082748837367980187805277179602474811064239140615954800953607838707780014181154942733388265467450129441549654930418336296597740008327794286768440362085966803237790671667228334523882316108821591968752982189524930045534284467561291507442858164759720705609395414560612481825827182430549703175758919862122232488583593089129944443290328580589484208582234673523399125012652112570914158510218842412308405361705337807212786751639620228233515494414402396580203499576953504333932033877910927632021604479650426799032711312702930048426563006943599505672530840550851657670586375393540873478522310018303756783661795896403042021249420400887558984101014672186627052884999057624594746246773549380577657697407745428035491361676134844475973913867461505978219317800378934737589815785535767434013640140863785176809534192540046961622574535796574171290505472029080538570740225222921333123973235655626124127646650016371887329024438280503072044437503020633940407330101766536954737222194724221834662433424374350199984073585961373327869925925749169658817105247314435042411816693604525111293109357810373130521254528053759284021242543676716390028947589578335621995505228010212898800447897658873179929292441713857539465453901277350256614947458642309223482954683830885816278096352808602709785944233204272803079784411826406390125146107012761400587509681906317604656028248147049105230979314129591222589513502248426957942213790187588036453682420898417647414827890536463576593422628449144593686576629867902025521443640639694072261205905190636750642692447424156320514885275263429407523063169096953586709687246879806268594061770171355004563008206900076208518651870565912490098377066892943053728222255318132021070385864000514456160828587908243713512571271468404249105831553394009025603679076609522759088577913730790647923910637551219428203381720660667906343943435067958728177718887915199798188151586915223604818530098888484416990731949250488530755480677771076330282775586549971592751020757422759669647948581300634385301638142998818600074960362422640776937187847052159914664660683700219981892486164113546411811638873936465640406386163351956334021206713484672989200883948366390398185116527538675403324520085370242060983772801107653660361658827527400221138674011343555440245846153890949281195349554201292899460495246133342052858665646532522677360644753240875462092486437973789847451970884692196493216748773136012000733995685034834500140032714582323125311871887665591260048449358852119332317335308879349515155465033429769366814120946486781018990945374861084312871995365183160975746666066553064108047723211226750919064529898597954180424326149379961549949881413518101218054857474418663775358046405093178228754174714894450362470181533682747875149848189219760353114841585943806161025123120134209862658680730130010951310730066755415921928740396856711035003758551781637162950319408677449086058385340294662464541048830277090856969878990718653069029220434779420593624639678803840354856266775244170489931105596619171719750502563290881538392615382793270485420758025137502787665138188962196067163501198974163788064116736297437139028936335401521572044181605354781621465057219455649568251034045216469936191739483368845194357815277787462310092802282556627716585757435722931542141595877655659098014473623200544743169949430220161110180099975527689116710795741395874000562991596687854939553626865353585067785113374775693067732083574262215611757721336381935326908450357399503096313653509586674510953825550195544185427487324620991754903988295869536095774637563944768323252045751293253443129460677284106221637020341407185370929651249633854015372808962953232030066249790884618368863172695568472802385859851692950529697679206730163075591480088673827875088307228564305442433633091239084634749346465488091496490021267667861489683854261677408724258648795874666282877234083500344975041260001176267922240063067825187025918057172351726962982877685014763045573736520537706475084377464373300655182882744673773862030056448609049514409120758776050757788115100680310801687618359665792428381966930020829651524234661254621688131507215935724400917261257172823039545675742998043040622667929548463344169343633751848032412090619382477858320126307694980367142192067449196966957561418586565834685148274234670885094176257204797866702155350227384619071144426853973475052206671967338066947343914579358150523471201112984517964130916897657467903105649747020735353977953261812379816881708431792977968393179705180616615122078740877940528446009315583615050223943587992195836766763720754747729827910100480514659312223741437043673601454687243439045943052596808590371705892806555105023928224863080325622647278921034468842592248146064043337106802358432636911727691982083423408116567523289171291161344398336320177328867845283308596681633983322627549189470063996781365098964789713100516070288563804987798279317653698628235062452643886826354564084128457583178937545697048092522799208760726613505744158463480375022635470538352110596071169685846161632402400708509083413055368626194540780320477317191283192169691941675270340394579608268922573310550338603673567945737651681910893504754813264652662289425242407005561523600360907770730889882814530923685740716476813614376284813845567222667705166791170649476888085776196018364174212885450360065558086712099771568916319430705671645742251646250683329540416482162536548976651667406192694352997197761757215107504243995129978090361288786295465931225253229801496230829666560006518954826004791072386833716759751021525068731560607174459067572327730083499907680481686714643889823261610675490336314750727678940110465647577487023198093802494539575695957655628270963537065024981858229596074131032465606848887737943320581552900393679556391589048629943833304732150290657148922100579257356081614370211125403632211459557576528068056512458184177784727587533082304761102711657560990451634540758290439203563523402381734116009961218597180329170447966918840601206054582234196026248842655890652561858919781958592305664250303437276250767567795782421587558383421814038308225131094151538600603773553960244436010148016410337641589205696755351574010174575204074902641822495583026063680678205318864686279538523632038543127165747199956863634382627319200741441434498861479651126447415572356179912114474257980342804701487330776377642303033032431293270728846750774283344306317902365484471312327937322740288000627712321054882655692748325738546825966783268460629148408457947751768478861427072255745321001056478159590017633851942072221540799655224647983555053697628193795511301521756461530928272867309803605768667684001991722253740220576360494147583308925722498543929208032947534766693243063161307384840082511866904705347230924484203897848883362586541401480211494369140295717084320706096818728238733040287655243565668206379215913479857732497989270685777642259377396548113195733583217574935599690500264541745300284250639487313950304031917464062801507341550587162149201873099186812818988683341177606662880336704846166014286613863150276415667154980028382373158461559776155065951957791692800733648184800492100196057084962366713455467661698504632667163828857083278024797552992587706972309634205620193864865280856101397293913075386426140200887722238942538781062368817642591342529280436319893981515568938974180742283521748852601974016528388351512824284406319341207708516669150146174976137227704647081592616445753838140547296125036991409225746637540201145802146180045067422270015856537718087581981574247400569441279381023857369409866365213460076800484547531886466842173934968628656292060510530412347166960896059536856527428006053771147297465678239479944355227866688124111318295325323089895418194499128955708450852916335325433930213330625173864585670193209321628864153470810810395254641273524954694242880957555615501669915123624719933257184750540928803081749081936507179548231658785885835938183613437239218248804869489437295976309509267343807675300637436305895919803183061751055467344172377665657563031739499301692733117187809549078136787294360676692654792951273779050004824133123220690452040551906518390717225189328391870812803512307506535921069109021237136799864442244177667726111668780542636964792404637376614461180888882114477840026028694575415705599969787552139756156768455063714255523261790885176872225743994957409504754883475149885589209664185983739905613172525839326282680765744275964584166806149673624405993185196696222631287202961327359934271112246530181946925809116577091945714271011712772353492443298406845112089137058756812937509869784721017140357767594948521043503161364106320695451745481525195951708287314062481746397298422651202742580578786042286414984882198600111840761011114184265859597079986262434913756890462027359014467205896224749244446014526518741065254008594216295139018170106108023749835389369263034127609260918401166651315803436982429050961116217719946924398222763486124905433021151789457647244847921085446958424096445032098587504815879169508848782773793990351910595822360516807388354770307217045383718981358108121569210730817588795877239385675546514596763707396363095461400705860089729182338612872296622208190739230512944740321308664460398837587274931896507564981241457631357800674593333791016232805724631938558679105493474086083621093330638370228916126648491392834858147838938702971657845156957776549713694480911890035656488232117323519600775823136534152875632784407943086483261676413704842071706782322316163891016533280892914233863650346387824703538527085109296732180431514946456415684022544148631596093559809524786765592644828489674625197077414895670659896691125899245290479751524438807118224419782765081559340529045456202784574683506878652610607823147354143015373680106399140079132165476331677453864157879487227898313933935608960725288454185739281747947515537052890692963302445939928902407071748903210403238921546852392997635804212980390668243144432341456915717506705497725917899366619101278659254682935810264372707014790610697211407508112863774361294178928114811373237491014921186251054182540417311886486571606585186056899603160566906471569602674782461762054952731219767051763762413676148606043515527133554395247206519986629478255773891850940502906280785354913206377487561841564326784536206864365634718286603829794413751537977752895407678240776751976660430926645308173400440613728557485877168505313560984371927261333559915741807313697997074872584484664841673872663741173850247220071301626416833050887349816832481511838340934348229549694668828379005087753840766048512946073429874097860131298513093050814320384127362624945173900425131361187140015064216961018057677039961191525967129353249148231051011589014121542706966321277438570582411042177824382510406064173444991674665511870763729160997730065294082284329183187454927114213478178688330698352949268349252294309993759480881905250901476919297717549171352959996775800205234575261551790012523756481804271714403350137926792142965708408402445286492119462964838501321795729298865788826245545197367200073163088065109931449777305077196590159256168820322289246449747998703538364114243655917985513647194097465230820200668015989916768533671557248964011606416400593513505701795661392715971178126353509757537183221943530651304354674756708454530449852382617335887671690904939289150399522545281845269750003873575597580180321079975750703807140945159914163509942500269505407668741664698122535580075318566196660715428145029293620509635415649224665937105516059348917150660538333302030315958604951650099398859977861336393537028787532323245449288780310169871183224221622024334394498453242591915308799955900777200615206529474152419977827911512293909406433256810474670271933619890176336051159902737947108196381810061622012658406095533106543199090925722630520986388257102585694804164084958986785249322662651722614283273364124758171618243667333744500264283432253522466197622251142706342974543886314669596980893748836993987897656535887067357197383755317477334364127039016295296423022684234287464758367997991394802472217433798581416287530537506664763381080893050448670053555045424355538935760871160069028464520536340867567641994255587721424088424869654374500683660633358437570567662325225222711567136184233747781020011427619054036237006361334568617106452414493473873613014782163961923061156608549196091477250327365581127578206514032183888311238318756051863257385910408662556571960680599131589914321303522931069515482673679128981784108386002851772274451637413252323149507550239454763557118849704125357123601170054514224696774934508426475082998641433542168528922636924938940547491007547006614907574919150308944805901636809097380312428342491788781064720581930698876494672803232451212979989307206587104324356336696708326497689719700767874995008591086490261070918876792782138669892365407421803731538301045725157177249396018115276726829238400396530645105060313751234576845358532874359430249988360535808316846003114896330610596057070364911405717801260191385625150406799836469585032839797047859333763822643122987795254107302132126299933892189472983831012045130351590368765065505002269915126106903857087086683653072213764456215525049784455797187361178485581974711715848805540645715233709244892945067252750090637666607364978230231127966832346975933647553802323749008244405193098853758413467754468804673809126119865638744331369610670939726621389946339849757481942186010879713759145713104537558226853275415518519060942845278070087069714167970916609403272964575733953616303190589542019282786433866962929886322327368324458263288322571822241429741386603154764472326426780313443487948422941978971976735255535560044086208573419691179197410545321278123092299710840294500317001763030760871142327760353925635743107741528974198748620283773944678149034024517936681920223623687115297132247128884711114943085877950023340961821727421654182769548680821532853394055621967648765933466571621430513898094768270755153984873338919245735837834193625550065177960611105136110230135981088998722286664226265704765203110208440125497223990580563652937227674141141421404476033482730634281925061465463011029540989068748998263966292871727704248388163496638289837080261330397525672911525490142468381561640537456923560869513146674558174043559643458661403413827573656666287943729105673026798949766263979900095152274227079179363756217287007821082057322395327522911377794087376733838802734027988941012062794812771017638336399038463209418792373898582491139604728185023757649431848101937295067013528091731401224335671021109768133174810952699378125703555718527958105952619815166801149078347786769154211269146015886871974175979844673742695355552869553423900684562430941409226201289322133397710121786973103866176819467416737002693194438131906157562894103879930053293603752882676136081238811365484110643642989442620235843547446655772614430394170602484433682420812884788935591558757631595740871709603287587751915202587521387733328768787438635852273606684957386035912590268225091290199376442577677949420846510578292554835124191938769032980355786099976097938706942777084107775751426626817847914988708932289660370878228966900889409164935171977420929991206518503374304180775284910525186553249609398213982471159850971411465486376832608878358907568055733973045933282492344978737485716356058230274491730090672123148642615509851716393996785688967545381898826337225702425050155639773790188205648544522082915429789743743428610122581882935449908200702575092705175673939584805793142867027977898451384710970571365462358054565114477769563091510789172233167833290740919598706340942556249915785357535603355234043486644158883472347731454056520036072675337511294933390693445514821868556573257278652011098566062953405363433546436225205495317697433119795286460804184963154455156938003317704693377612275230331353846722237112214814944754608574261321737730351583615071920430825690784391313069018706603267583146735007558936365481308178030807661262585407584452106875330648545535943293871877750160067110908494291441787327489833493925113990307111459767183831207481381650286899051152377307294734451035461606063083194702171260033620557024816332079783077772696353942250299504721170557660780891075528175750376374010966706700013643654850886766926620782677350032704454159764571823760320104659781316244114116067010049597315476337978811212708911341115296782427022506137437491762019083113151841529448419295060536165232362405979511611910657075542270814578339131349440917813703119631180364970156829264814922450306382918424931379839070029802514145645006913242273622321666335983378012764125958970211301991179263514981969230438381602448007429703354711109347504840434004274992515443008698799973825186419184183116695230323435466608535595653518088776102744590475440681691639354409131903469896251348835485312205680988128525784109867959748359583270894644125410048643621727077727198528035795598257139361791280351036683565875114420150356766882273285259990170586921905971604536710745138076512604569029117941018803105534312550842358099594110877475409766472014695044779146144339493413403648819680388468450190116918239110680069437283240025442499153224898092421218216733181811469068193021581519620522621313916097699259999343728336971085287715129612328093683914654382896984835418918422502251617857921434004737266587386750310479775523922488977516158573161395840494881305999147944364879039009177994360361890771380533209809723762299538283101834895871115706040952254211607534027829282584920389945495750481064437613841441481431382062238252135480099727126190548792329258998734534479941104058551510731440024372722900050585193113276183788994023872083630618430689120408246011907793309334929869214843499385433566505818648569394262519784224859895148094528705006990391088604005640915429546151735605893109508815297173961073322064816999247573028038026857100338831248737712840109054727111879463473295748471465211165450927040830256924348520878244846975489908674372374852899861624890821906742763301193068666432378334252572759895129117114963251738932728309490624113244929602233878438058113842923703191633895257631944977165173316732534952372471978396204987151446337330228758000152393224200178767097293304189051025951674614604092108521157197900969245310114573614052589115210114779039962681084510023013128879661768522826818430152026798929265813371653184605327724524550707467408737477271354167549697189397182123909758730808633243964191547878734929348733368443951682019951523943673891235826563692784170688609226462459540088291165601664224109803443831638616218419947511310624722339336591072035148481145374857840419278328732515377667966646366644026446284464107165575355197008150957568501508656853772163155133753908588843855783082675456190638796893975744491714047027845274754093676376225550707696708214141223737745021312140219658308590224096077780503638764018402471251614098250294255597971000053958160477634461101115798136207250358186560071683087591711425147124629498044966949622474084025607130288979557684114225479565976709419613767968672392014474784186915328017929873681852162785394190179715338624014561412256838605199848931220033833792938607274639243073112224253257265980607494923428001514474140694167536619439354064783081110521179299633864142986554661451368598677440321886616993246993759333689150252498197459114345788054351175211173281898526109323224587014547656341119830159266413829165116395909866959174787007434208162436766104762953713323291051926266181049684016893124567695820160609418691096132067278950637254158858153992034471928906119388834017847758352932866643678839121325300977653602057116262940615788434710558367530091298569460219534635850908086635742772245744962995850953052904026385179857357758401544453000152999444966821514134095236082110181387949496578364888558772687807728800640460026371727921967596592493376435702037545398461775933462860747885815688455294853331026387719972141664194734525751173208641909918908687631851466856336375387972856915680292786533442606868682044045675690261516359293331847446326565594869359060099681892391591225483712023242823535566295106807283220507619439598548623872154641704774789026012511305453439075083845866078579581318327214204445408437545820851609009677274005907645631674178964695701920162750304402264170443362303759299695894811161169983882440588101155615313302629063956216411749150686611639186396423056061217965841536203474835106970261079531022648981295998292035129257060590707780691860622643972181795772256258765205292755193834578161519643665678603212720698707473212260382363853497686671652016830660943725835637821829128375241950234503505776925824714235772022461175027174557874453567541327754606910355488578745604484085526939113819786770267883200814885898780390386611187334849506257443984511389988889481899842473489741405809525025262336205727072790539531352053266153713322140947870590948439496947836420296363108878349882141890268305792137168575130375945392312815587493193677992916713914377950337653734860432041405204376694633674693451092593436106933905024403536343345340671424065318173056099798397294905956277716200963880235705054657455362358020481088446419751581318093652150792628877538995926361343479112804292818400021399016253941893943475448168522052411878593553869776252523389539792684878516668094299376606346446673611627600605264160826883646698035549236361160434353109463020149721775085351232758342829570471013537885427463436015077915882075052978448027048596211527011438788597801081899177688795660393154349947678064819850668972816259565936581135438598583253808246438343990293395703975304596052060865547467776567900304035547690538687774173480396637259487847402504165149121559787657282319514024865646925173381296571324829183169174678273023297763635232556688297358954838839003071638193938584829486596913422526443449139264184605978930996247949920456563404177500575446629601028613576550962207449615665709605867980176882274128095518862024334019360427880708403871464664216249444998098948814193452204395611961567295109704346458936850274296751786777954931302483857766456384189957324551469342776528254559732197642234528894091041448604944245906769929271343961282339978867359370589741195612364978419180321515776567582356939519308601864876846728103350854594812581633053344677307087096527807495536684071828169384063686398513842035537833278722071874337925049526952937632906932038083697867973670203734752827094022456843502510291465604645449865210310578277550131106712974637344183774691951466376866043354730393564958970258485426304207538070821085873279767707415435313655903948283512480642300910131598047866914088884462753297228804256026583473406661011431779587455715541813714686990127204571871110979289017431514505686898642014827377673503889285779916189122220749825007075683096100807298892020130828801881966525022182219538737421366744413244868403819711298497357119326105524712043683303241185644998146684007043599421802843545335985080251243725334763811857460834375370191910241260769179559137149385131159213735445625069085560377363298650631683475407090405202214140590058390845846488368950779483513479125106231808086315286199659830329251606892782839365901091171126523405437888706731825662683419791692762378860577264817891223963606810350485265869590035513171433743023948700027873486933104338064144493788081349028627630706887639894795972903071809037315301269467086248342772248144795989516339668781553385302650185005347566470716704803007897854352187657519184851948133159400974862023009095307528094519147774626147140823426753396028261325693831080408137837343933701203695032626506844889017569469864438617860688739933215592447156581568830895923428084373723933530551518561897554991850676185057397868004216889713172181071065487475323106965285406861179616884447182056536538836937162699291087340179981386648987844261001796291814106442002111263639803037443870654535821291188008087998050470897630261161498831006220714574014681456856672265385012534650051052613628657404837768452232229124011863286098601740598046616532244997800601840920810844387487573826298540075325772491856630596568611045242234615738634243434727493551842486387640554639509698162020012081411707923897187376109244317727143305994663663167036778355191931017865226633499895151638629379092959840489970555842721813347146015492335224689561011404830111951012745972760960313609744884742515164642926868955597921790009575723412958640451665381892170804420370483057543869630104844583649032387899121782836289749247855815467738152485337689153790320699452325036047142768276601135320554960143728840997453895873582161405760700699110052010597478163701041069235792243681912649473706414359908815081263318175033799341935999807493605093562213918910586820579618832324407652082578663695128128833366631718665375645036210859061849457600912469028748561651481613007126563952457152997114906684563749274430433087389667748269450644550554820436312808205372000806473649849080866350945683995514789016165521796977460717692066318443104776429584428821334837512180475880431663310474651296003864683347872386601203423563384295641986121231336998496670222540813032047883078115327056148949998252444749601965019360594277364352439891607172737616682088545487570107013671483403617341152735943354482528276820440341933964621157053747725742662471043941491802873848489632353376440726305532360032566779175683681051177081519616181782750350379961265339460156322349651550847223627097781450632760020355643594398268929328608962397693948147325026197539633113571556310593306014724353126831917878379857082300202145541937894135503275048745535388848704031849226821178295477258497304895557098164814582799684510068259510845878318468106366558670948194467202146892515440825779028514097133454194814704130485229515471229117446836469714291589589520746051555199856121275638241692174576272967899586157029625757027834201208826675201537983024981951165936455890015002141400498450437242829878366206671550571600875744793797138617255044993199244901607262264282182572516637005470213093231437258385058400872850650847891492488511659735524966591113342325684224872241141188620731534475771101930848185153120877578412245332412366223386644599359068531126657927207805540197142578101855081530214445360756965225970189125442570006253466727262190625020827915925510849203813793523791172157392372470790040210709326125644694884572430880700908102626018460189409582511971965790227724243879336680644173425350490861293760514585031445904309091922636952013539850726967565604929978315697149207391955379600005939931426737133392785665581895840229685203080032505197651616780176361240835475902395870215806475189419106042588949419509138526242208377521437790824546591975804901104298872159627840988718756841532605155713924577762295411183165401224074059269644031472399383928124632675733990826255498483095349297192454374328349421459758590000920110230132797145875509450388756530036706711409417588317820397216992717805942320732644712360019884314574017589099551609256320224409331888370764185460297181182885104111688291139510131951773177714810781634142735835795139468214962975672028698421926404836868167364614881798589545619742528257887195861079425022580251214969824222731525421989936018302171516338808564223424946106252849885698222286123491658212232662266932265025217742763053613986708645203035681169180261706081745320305536253108086713737071930175435832878384637411605840175594712816041021111840535226101311625623437152316648439387449731773512077496915616495011985669909844046310479278368416327038025964822466260676532237423623039810671662422352436480596228297170289692872108905218652322348209449344071484512349476134647872600421222773478797981436243989397537700568865103338129072169459474948229077286385835534050701647596787770210580104594194801953801988427358259072490141659290255541504885902291355793551637304740617383966937319126518033307552107536411898289743128466406879528345199646768110917096287440826072394160664577202226258758806874547513078409513148140266498379288398157412773916572699736344320691519680145945705749602424708728040354442527185589191543391445131627590323171218356015978569402060734234082709606752467818923205669041759675467377146225433209756178867129229484998436367892186331395126708085385227292404221380828169610925118985996092390557090558975408481766173775048667705688477104584812768173885467718938358694870776851937532950338721901091919465485596413423799196789272026445962158234078477066444856987771653070369571552542855265599333044206248628464529557592174358371486893317150905862523619634614386553537805995221726195515822456086193956901543109791102529715468782814051199294673840813950910256877214170173221334624580882539363120708243901656732146579009062113936456421169371246192837242146499973255365183085598195454632837034191140852816695545221544082451633278119349335238780030847475129243346553520945720804963843957559759069302587855837540565018674307954302141764462296671242474304251469377146404495360116595679222577718047168218632289752533959272063248380429648601611308863913214958853459862963086638009355311905160104215605053739218269487881694017932395195307662052554504485438673442302568928895713147667259188948962416409513749825195384987073020175761386003126283731212839068883055651364055398308092699477653453102190166324120509786579478608368608811631792654133288173174236903488697267244656162970355353810586364830057120777161052040435419067757096597767156247055734992748697009242679079272837226079639182107667222311971334563130490265936566129271870307079265383411914624212668985396228238454147501510678505840576695523364217517556924660670676893667295283331662619946806399592792397316787213523380147893199635204540487947427558296893748156223746716175792984088544485008065752625416902027174401074434761207148918861693427252716584547116420815367806886576508352676720722536891140658302017726372942980462805814648568032288925801511011634974959926535144434418424651862011904772477898868614708617785502252529190591585619026356270306934527596227355238312210064481324551062170319874988330850705579650765881132978849769068816561059536934098763348641063714834317794914385140226683813966652806957230385121191827060526639758745585863747560476921209340577203953513998331622605500844757815381923549669135905811717770636465902815622159916911874618860129838170093764540715506995497930793978938331650231646005081193789940239760013996417401578936946516218260804981661804055229930211437069567636926897530964327358448803658094492088137309182709272000068808294647368591896965666323692378301659427911343799583626756683628264597418343593664074184002821778317854722870572276115489407359742461890482009675223133023904432054430189966787937057108768533957758920852420654095634306544542043342714085815515187029588929544457152406653240362134590980728021530896446381789166005241244119323644020803687088006889126679031910082275510187592632982867747943901126821527912633084002694311081634723329410037998547691095278057676393722940944325001463960804111118381944400963486128588806723723080068768033492965504761792092233533554225275158319553062638961050170878153388355253780596087485881165922421272658601652220300448886665366896198414621475382227751728160694900758018171387708149652653209618186677008770284961224776446044891028875137939049905528752689083048777341668921905235835811829606596655340781652318845352286630970291135993526481367020634232873684625379328728555129051034296207884497286538178284764686378510588237824884329431734874430336772895590594566681239320589683813984860952066566057670693884045507429447692944398892205313518137489782271224371375089808332331930569281504529369865686438310518146300020537215855948781368445089661237318757048579611066980286090024610639059921978946890730859050946791876290659400612204998484454339780928439069331441531239660415761652021723747908281339690257644556864649574731753437413960840178071434014830216908956605761540090559377741589123009904647170131903020694968876069944894235898477600595614234147405994850353101076887009581864391275143453808685353161370286592840762119559929472381481227097521855202920405377207689713500935031002840848311492051073174281153330685287066819584059861916116557955707910675620694720691874587783585901914045567937334888392229582397700818789644998610909236694838602828666637267722161806115096518584815394369835691829964309080284479332562937609408033286261399233757225626733855387189730143608050915964038162242582761245725620130954067736829846873018827374803286723982309338310672552407501259466493643279237597162653216559521187366357954455598078686093960345322903130258702432692811600581182113965514286438111762245319421497361598587132937221359300502116908858264951676580678968336743019221476900953549094222861922740859940731233254604348785533070378286100256961030683278128973636819037948868379452067467485102864278366040951598437688386855263480391365178697597297480593140052958013857606252196509100796105772878222330063939885377662538886999745390470022511282886953909806183590033559174318902046472508937059270331888526375843366925710148322770862850046337029621719967089770158845756819013941329455599701409594598004505949584669684400111101965290589278901127598416135804737188648696982537206244666883150393801876913971714037727962672263563368345177926348129061015458988168593402927299831818352798166361155492953358120472727842047491479183254000448783671082606510727807930217365320261970550111646776177516647623786098120961921249918771324005385553904078389799295150779982703574709413300929073897878273036043166588054337975162545408453943864266444590748100054305142074771089971546801746637859990332536818436092478276151049283087218299921216357436698862198823934995557138375552321110020599184199313423838754609180075262158376983480595075147582314548354535891403402658758790242803312784388482216630141862893346129447804031466844120529563541057677480617693451548376559668156878746517118692326140473198115430604513224211413193734050559180233218135488715594172163886714735521837462430190651937756628879125387267972683312904965089574668142187618842607162983243647261061250134036746904300873298866904570424309778914780440283297237498327389019602185059343390655395397498756627363980418790631201819796062624368182912856209795819581887794387670541742754910585744404023737888224592405403371527118234237990748061567984471466375497062840485458220857697549730610514340779198054568669390018068157677947080428133946586120417732357297473451512195241050873272566254002115678936643460670948612622034785895554287541990272617084563020506457464033276982773296031108327127461866594519520640460876155084964979135078489634527947505069490908779770503134682126647862771583233424464684661326319435253901990554447874790866705808283203847601777487198756539843681254029878875564240738766252047091529463568348407712197523532079331583919732967622914629824463852529027097423090264531095986392983137169997594932351908758659215593258858517436664060266504071708096142372350310149476694955793381346460605853749565242486373450588114425654375172627814760091782173459539729224071120272973807758106504377946514249730586572882456850125313562400393488908892539779548321764426636558275826443824456223338888361592283048823070360340119594200559816091605995999046761416573256412577806630367928802308529995282391844923446793216049907113787332625877708962121689507397321956150355578509588459144975947017019002929170356313652524243966974679352255420693596487942342180586925002396007588223603586158896455111304682250716627824723584451463839491896934839354322923670373861142591381183327210971935679389027677034802058501333656468277213524244468170988038237481479451128489680721875043105185460050501256381204595629493532490852978241820425177641071178346695415226797268792013973977204782476421694520049525432201609068237418430060211578479524532160740120267244224384723634492749529294602928540548816089556680640655773695377856595739519502525918939851400730617612271751628943944740071805248168614226468194459158803622657590318590926786304088582571448508802693438019799577123135409429128782558216109871002480349750983042460102366393792292866490788092585796474387317492675327256781446751364859558506002843562202322645451109005468133883612004247372875439496915821117847014071611182627520669970170373826472224686686886699415794012549694314902503297547643011904093769292285475852826576801370802837900973464743797366387716586529255988761714267483553979985606630885522517014030871010281044703854939289392671088130999419107768777626907961914411276960652389563706406065360625008804167344438573191251528770297183850940652004644918589348239538534782880771202265810250749858932875503619392820835204518770536162414223601160583339242636830139079188000615047663228847812964439247465448663331074578248703040879521572861520442623135292748216219427401439155490487194030997142795365427847751111755754427024036674287311724705485818130585163338356513092553087236942235545370969308562480015535300262633186561419451181563452281062797122462366743692149768254581169857342658342243834700986094945093767105468524049159315150436718400107531329226905957326028177623676467005066881452040763395719822379229937704691866861954025808942594430503916994187719270071578403300238993746468660013277494166063182463833872616292318904232796139701960286863162633558993439852971298516642448604496879626629844115263382895403116210256868119549522817965784706077950559190623555029961146231393133557207714246986571581340963508173919188779162616903959276688406606035905981317402124765895192439866937766065125754743926809900400806894388185825177635797228461510532643300293865468786499399608334589916469843924868923923587564771018480689046911170752098891741391877311558566562263303477989790246481643307975298136663851190936991358331936228183203166365907723719915304825266924668308766380332107937354071152271919820678507206965078218119936741230998657670999180216634515923060754699703113037052680909462886135733685849693283517058209396936413505814870973062589579821375737676990173828379612972476861120461448806089965967369230791572957931046740736157318362238254270437887280208298029717877763587139312524922017558141034827075569436501908784877976062782966066203982461550369618508248586454698062171105153541650688065626201636019918729653248102029954267733333929726242093687135506056679268099657020770012248335375326874804094202761289586325056836482420065482202164175675060180136607833567906488234791274487885729164880199867748041665760272972726198939385062847854433718644091736249912205779319647551174937342502326934469995808045844869875636844235816258963198562246411596832779839107281238549001088812965836481280982863132298030325870338041841184771427382054384526915670428754193764474284930647330817772329866772530513658451617722727804248561452777916132605361992590052484576775578182175426711574999698500074882716399080413827127361323388191444802049863792364028573406977051590099701206032150980091069110504431510338129195950134060495366672927935626873961727598168200972007087181714266719646888189028968511823931884042394987643327680295511190583130250453512467363184257906935537383463963593302271861424508109631346730628139760518951784660196322690701001447421653537113671126229085430240717206372914531341978384478105625232607827376000909338535992463926752601796916995727403552662676459109654754659112872699042948934178557682717098264300531425838015622872567560044368176696909614666202842985657881114888057516569948658430002902262714548555291044284021567232412017601779928795665742773786494254901349567273245695513227129788952840878036209472901507605252870244650659111810039074789591033700365127457292957207104852231996266297340608367114189792177248050878002473688773999667645975662086800568916450121862454696156067007316928985157558733651404189221733493897855384114227493315087223571897829754875919409565790994799522755404933630048727413400820241030556992629881949002337002070819293208201830463125145512793511440989660634986407295166060471407236186199634260661467123204067028919148220772297976342212527805560045320451554835446557835724130026949662912884391980481016453780765873950435749763651762478897543502514291104481859938589297067341690712483523321961985455768871537348788600064349677998083970282054106696097792064871773186439593458206172850961383644823280642224440356271083896826207758014443180223139750785611428871615441520750518467505673999902536184512831236205072524708457695869918116149739760267211794429494771195000093719592682385645346621689866711611900221354067042659728761050933409245734209494548295632524724526490669294182906337064812281218036332987911094177195383012557471271770562097448641732263853132421858147060488833124421653497947024378775215683653833050201112828882340042450393979831377584001886542213754203292816049278357841494874641159127680986367586893686407608723431646560380589379141551337142047172872441031020774311875209169499300020294356466598796585311680173198268168491351187248928513493919492928466064222446467824526670113742683562349181264012671509237399790605146352919447525821198086633204296941226793162509230785091536529130107860409082083594360712467049050910709225211362502597794950153385936407540158437074736235616522200702183415850976898905118525623029391233587991009676901443143261347137719682539337967834407989928281532602791489097389866126397856826820659077048570823624496550392994803694396344208545379354193298878767990849980224418976163634862588725164100415512862126592504259723132907199876815899098196530722363673229518125787454932887662663749070078427512855860524241136818141497776630488795005913497592978727591019776115766439515488968552283986849656511746301225307148119704711645496686777686712077856728229188848150477216994008996524198336649127000029616025369287492405624580942399901606796651074255270513334069419313443755854077077070429091788942914581291075855821624171883070338911120648507199860352069497204339012924737638368183923686607429056414033953655127716287278281163208425662030897240873801387685535980253830929128138563289855654022794349671103349746441417066883620364955674845913909459762931521414679658523413877395775295924602685555302656004427616472836034142356287025307417591087359360343339412121089255860385319066344943818099251956943959324079076666783291654952181008944511930778356735722191167333973975805796582511414391963323878210511001499379165798585354001444016615667928090537445700769633278809059712740609101386303632174819424236712791473962406815280342674029220169765240908745686258382409839516349268535285628202929718904293904053225054062388197984102428300815847464190708920217569282882405042067703865614933179933350397416117906624483402240511571393247550364725109392152571950264722484190634731315658013655607687273320016278599372009188408304579409143985161970040858785800593526261668744451702913966631880638782515108630100949002787269350820370722822013164685282761861350563764508219422059514616665744422165093582833308356165066186396608700637330966856349829595181707854570985302051128554364334274863986202540548330932126825471422165121468358128174699837368839242603788173551213214051653632323297705525356859769475171057927671762008783696557463340422125742361721750329107963326865726057718627094315719542706303718073656839459864070950440410094634560685822361651950126306503462857894410735541938680916200396692253893830869084893533686069792597855705896819117549796637515474893861922586663052694046444513201920515718282282287171953161484561922002348643315587959361105352240711039555054182553954915961309461453597167702647724830615092215109347205556800967059482789612302119515913351837616008540381257965497406138876404649977299079062344693584049335955672676059754987432815608427588534229670477513463235565957115543953304087586959681041076012840544876065913926206197089832051287764045468554134377364407976052783157641440676779478897093688755860806741180993793860385382421145278389892605893381586379542659715838647510255385498232242888997732244474936699944528713795634256932360838136227021118389016934276267425190489173713943453783672638889238947510091830339443341343929334614782593056540996656862995261729283848996397213903529228198907240455731537030417317815522903509094214026497923130901945009529866974262397398987227522546611612556345321989564051970702789591323014763218127342094796611220529888342838269613481080199363734850809025182738788166991295602042323368541393527113127126595662816939085786849631874159214178393752919976122507443063565729900529050873355316981746803445392224739632465278108058794467766571079339089145379808916041383657484485073490633153701282454045097444462608321285511639763433539294091470775373719611229233425334130438519674583531012258334878522872097753833485530940170420949387461454832439350700185398997006607783461230612325277296884490496252961996674442260782696508895188586252716469285656194591337805344555661671360538519734852295607861384822684465129220099458830721846196471728973289496561300734645615252182480969779623033390972940228550342526170894468077507173377886270573272307079424488791251720950487417255206464473138162492212194046696275584357898724282163466512778388046308015088508064873755647400785255752866218277218080399334347931332287603585871184496745001397975601512845387462454306846465885243640183286950029286383279669284469680883415100006773253934150147944842858605836566892764345411034116399405037813430164552224694649797070442788997032761153310815266838405773535935885298483381213850377651766441836927454376526905107618503918650089308693786534193274283680901753961966005497403098576781819382414701655839339903480686686358197268135700351783148715472763104045514072246689680881473012347003780917954670844460848932406256374380955705863833310253229472039477281613683786272889049847050551502349458989308977462206219060490510128411532058143963832658093205912240323947036566758672262687198825716087314139397269157530663694695141375678465098718524643456503715887774040681282908731211810077985264996237195112955644103108944735325450427970712829453600105197393992974640227033707936462834819175179213125941490148006731617250781601351816822099462262156226861217667664850108653575767883362346281456246683236686997558660105319933944030190713667397353505069312590939609953001746808408740148791574075387497633185791001092620310266818480170728429270663438522019019182913843115386690828428170066849212888788701922699253597579806998033427767592237776638021116588510043831705315760310759608578791999752903830772438207946709875502722830336926793543531866934186391188902486325496794195027526611261025769464996490979821313052337572971561237204900153550617115599469243280922836819057523087954434550696425014373276664114804266257234364109039834786021106707626368469267509274911209209225268201864525592527852421681661928524974022579257698797670162989953594185601595431396875771732932699341070608044472385072168171830342669840369148036323054494468912541617741917715529856526181533838664611125295057993991422004258018892256759734329111411431632728162839453524882734309544904638561768518959977334924459266075058997032683306093813477421497770848410056411796728599440861038246559599617036401171530103057755600222375508750291887515971630734921231643351152809608451371761462746122988861613192149440035151104836581430584754982389850829235842635523173018235904871827648649545109273508342113166400646472925183368719146464817244132470845228284703501652813300397381107118407751632915440337869343858959072698757853939216158039998993162249669958500774538471942503884607255466406916854105432200895902889966270303146648541167956069225117599893946556704126867338608761493269048770065771320609211228000091922535849204909662618743933868139414133888560597401186810907126214519575980037377382510413550854133669280575558607897786355027334622765095060447598862315669166854428663809783737828441937051232984807993220336944190922484899857284607113402978790950421508342844941172750980016387091611499765716346783052392973574012250254234179891432857424109226342111642315701353372274426253809984262750383225312899720739616560008182109532254133337182269774901971197019421366656638204923020140551550891337005316185755278857296653808700631065933127046409995260483870871792495484917567212823121770309335186333038114157378491763445515311010503088029068855955297673976459582590365696259790982464496803764503486734037155277106654110879910337448031768089421495567941043654237532450200956437102652138558391801838138578995193061612295776317963385754513287236489470555336729294524862129093642033715040130775531497701940143546205697540836927379650288707380719890531175020046120037226612703334058501805493196958106769761378536625767200118549029957948702178005669609602964134696183604142194840536377805528706223809488289988268421555257220380691843692889915331583189975330552472531295969813526071173225834312277612034242027752032176599239606117763923770117919728216169465635081813869487798546754172572596204934352724416107674444328925871019046303277815567373581102347980184484403605747635868133038322733082010614145715579147850515356227656264045436514943447451040591412392249744310685278553815533071509514042663796116675307669800540861831689734820017417004348552155475295396885720944973051144573267978703620003221812135178059718437860357015980438653215392713721929359191302859907932263838283306790774002982792536032844278585279927194043197421779157104610740366434750931437259051531181496084836147902202348807186749269960187845303026753053411537657037818731786262827543348556017567352568825528346199566826526264749547490429179273835807377321344477810818652554150586186632710173809382308313042372083494866363826860114695568552500508240760047406000014188326211031648967300533233424408417613291289002829158878721932783193051877832448398142678656206274010361820298896988762940100640551219768449395532571209280154413996751871261998869016343629145746615783899250972383870905191301741425883138869011576990814764725506698886656470475841366449601724691159010177653704442508202365501072280536102246845683490267614480484990916371504172822728132543211688125847314233226647267779571897358433526316069918770612859743381705850700135548836121545703416056515722104462830246508754916412041170604515213657687742733380832241477640614688542981170073544437866968604522451314811912071553553194513480409134456453082752471030652301119457000701018946281673176908810032135384343210003584306912021216070287957715541781804958848841439529435143290567370429751942694114548775368541479473956466770117895891142709048956272194965753027693482275325608049952307366741628229437284523522424259398371147712333664601628023812163981139254163285566243351226861476462875704378186727288778460002871005543753083380836287073310242771855968628962837669873762042555929562650692467389279614699172408536395668273468947647930694405182426804326138011506164977846587262137440333125983078242868861106205430349874543811237430435725375873264439880643105001861863824914173063418128428417986714698559823094109882646158185649949570649477933569578488705041168578416417496263766856391049774761988688132056124144896510753989327968708412765133196548498769226852520168572155405527560715697453628017787256681715515862244782043269725577551011705978127465418237488009472275417243460636545027172760398327948327644665901229204572699791150557327992842957917655607544512332613458263520584034049015635998947267167064799546624677328671369211384900623517373580588201746532183713644119780457007539354638826403681114533640981317074161872055221648954709314260606343920846510556551720833170321723379694975778372748523595762150746551588831340234479930268905532032356590988967593940508466609024295690042816437807921214755239284411792445858359861345794795694728419093580978621034315982888221101511772649918564126591618123473847093372575688592109427451667472437163722394996066934776893556378614594712971179953252748324412180613445378547828382037546268445253409600739085429872253814453804994794739336549308141708210131336998991745406253978231643579696063899350837018839898652448752760599720630654824348229005121469359932790244168051666562855670042096667519448986156276707290827855774915966171269470108872038977114035334571915482430904819600995940630519494567150404168096375059671631139475373502159520131840624741356820576663616417500185563752385819443031762106104227482789586319542328244236117761235998350784209386920835602842997445582080568516539979124695534388199225465889783272106083227257680608234360289461651460264259914973269667538055033153013493910893197489613960380927936762365275499896365127965785024867308003413610792146482449115319568939137718706941264673620942152839012785188521284972604431512635018382733468604028599469292276780980963137702312799123768637194812848089634332654270612055422363072868478330777031906659558381969991770556707149837993248148975567855586306604688963355703160388148920759529793493957026582531898483599664057231440225214871127504218188815576330373080042490579152647995658633889472080261466003279347363024145303036946967441245719337930296210494277949276743597185950555789891893115600270327985920739016197094032407969480781882189600323717975157850586350434521602756112549369259131644004143943217061172869557673753324550120018155016666696215510962894740969583972404254608211983376880382458525006554444880495950335522813428863470813579801766987823659459071323469012209959305138079174847453940259585389717410120012119577473311988567030981288274394134491981491410744930111879494660046664996323460083727895293268619881898356271987896388689180009389316089230438486709514113772730238305152650730270216261809361638609116166535861967148329666394658583659578750308643304228004761452131725378900261497320180471876896454993003391504527456798287551797985678702323974749847652107037038707657496258720787907933117366400896042046591127200686033328344663040397894801667603585475667793869522964716565756049557054889911769332846592881212659240368054379932243859873886601866973776212277197688399032419374995247514333781470588552300883358049007718575277051427880914235684868315325447963989310609516140133530478946424246588613247665947579407058580054113818562066817450351751340845289389056975269144777390830599816980760644888599507705047086548168848534685799570524279066607987897997669857681038705257175305953857290107267565523500097080011946565309685011648492988777437476321555113934187361618026009478470280817762255141950572776113332837168381023569326136593762633099690240529379933171807936917005908023689551109531757204961056138568661000476535573948617062828106271885284874204903698292543231235652326651696049179558896456901045886757007577194138933919665045042577594164079304752352339038265319631680137226176205757827485300018241848306263311926990635257679456046746443110383312453264845114403104121708953428536392591999369040567772908794843615406088387436049031448258765123914892027140026207768082203000704367777468924632960864450641040911685071852164448568860209893080230368472924438368785581730330954371673437274461788490992319122792161579690853229533972239718504572572243978914775599167806290110734601150679396273978683598558155619898631939664115984023033514193286593651986952727356485553341573738305234660183658455896692596425527884816564719478961387498037669633106851980884296786100788134726931938209222661846746640330518616466789945267583658869846280702084434818529417671395711507193747253122303750879750855765584704138524735070534737476982652241220473594056574914341007444576139017814417410335877674860799872564933305554484883727404593330473256461685723137857509243455428296197038727638983524150681647901857906986630458165658467619799568026350111993420624276138224850785172212212130939348846358615980815931641932294245111312916006531005278154221193648875495694673509563035173083803512894790433022271924940346838889145801460690051786989572478137925130280953574373248248355291100907935217023258375735472127306091022647145876126157532083481576183368538127813443321498210078719999759663406704448626025242840492853712493425140337367286532846643031077166513161530868105253593315009983422621911863821243681343745008796130531997898699815742987472249995235936689220197413416254487705348972928918722585022294825380154187335919367946371159612029589182310855165047066317283337265653072533171161140281411634554353818772553633249651955161944318360350913936223528640017063360534266655587936541018906643655731885228796342254330014675468536690754662426659569852829400579499315180953110061418589451616312652119092184934000685808777710380454140652141404209064390391909104134802149059745531696894478790172474236777229501954803530931211791049971722153756488163311177968951100251718928773237998069874801019167318583806637654422541743973359155017216031941430594832105570589719460189221069537687435131178957805754800093737898895797467314884557612802678880192006671949222549067815053946338633477830175840347569527204177441361056949687817839886585202266647759260888129399919853157053592188541102198322164152569241903775707296633882224663167141020581117733604337329147546125954764768810538608207234600772402704345258663963906567357979061752890044632778503001851550571870941931174454855481841792743917357726206296098564874500694855939556165240521045934392699242247416218494602921688801709482095980743293831290961921704908551956528674800950440055122204286091463619157809619732471251504538564512719805318830961084711531653624790463512125036125670066977425644778991430759459501881525397011132528248374392428843539782331907215479424847624146243395090335553895840430241599094544448783637694125459959555745001686280811912538445837537628035473620646847213212986709809686914914377334602539991490314189776838950962947360108758857442850699527039256898277189207926991926493631438452634475810890042810237909358092744746214009271197202801379601324633647157123751227187519096433562496899897500111971583904580271913985934760950810176571675367938159904459590474238726433437841644303692649942321782799457812289824048190692807178816485851733701641891970223355268476213680667415873009851892859700512296550332848375878252836677738844219291065201299398074253321032757592255875473254372445676368170202512217139056408427626775002303181664051645738528577822201484486379997490366954478509911785205333390887252528230264011375241857935183356739895854630374088516839271116780315925996062185676883090094870361064778748431785457315487335978429113801734731105304950862667999196745958057163610144862216244854255207992967395924809272237351664671463582367764870114819700277229306310641335441997041377681263457493435877887514011467206517606138679537314209354235018074366245961041194165994121248927580271557716017429753928023851430355681347956703239090675349567673826023296309158512109182237025923392759151452100695046537065354394182019028442651316876469500727974628216207775798815637490935572671304293007717169209943798291385836864062816489199987867960464176233504906216365947096673717020783456655963934610106149408878746301187058923698463360652899443317837990226851586497951187520009234123634695684453227476826939767126698458326516103394495416331244799464329132349102638790320308597154520090493918948680833189289071969848114483687922703799048468506570821374417998091183900701365952473772239416952557293802738560277261031325577604090649284782025154857172898334039341604452909751658308850467424961343756626734287600974958630871214034262577868571698480439001465694625371457107157402243121457404335337914425307318079009828823314998938097904984079722689245552176483462377304667696766952325320386602088920402013879692940518193835210598306167248516285841600490067877645527578268809935043607482668801365064811252979617214942957719121678928714320010200090283201471881436618917956203135443579168108916287342113144043422292596561698883694925209371712914924752906107169875822758773896066681848799265356765182677059701563407290412053159694192781927683458309127803456762600767786336196609134731240275823287938683409809050583966638521930491115202368329394147456332846812948657476112173411289687360203834218036418162219813373164101389874286995870873693143063550931689232870710468239356613404538300566515240551996308386812909067736118844578661506808851684386174318093212068378204118031621884248044887564591652319519299959093686323752081759516022234552890485422185317553334635586478711048540501192615339630695516893446404356696225684001140031646824809827615044816825836976812527625443738995273150091656679034666579207329848560837115122051245080768677893557895298595236400639176942497245230244590451612039436811044578350349869825154591266967445901669619502427667738769822038015659935078694012699459543888935381559235754584906555554676164504226521894582957802147147228088769643288416840366960362321206993462077895413184098202118629333407119346630360640373392759021651050087882164481465575082026328929761215368648003971181157387624845536141644373554069574188313537251051327046048324342615603353910110762816020979067333468063863351654222905623814473771972588613331088874428353486490531148002116357033075843393197210943992088725306314988748396512647204191879856404856911745069642425997459539750964231656018678541464872714807941267440735539838300663705849425153578511865236571224813796027890477906651965920725188123670667355401577231377723198519697966530518180192121350368830535969413536464619481227315115469133315745001939933443304584325341310267188870543886778154327239746241336492689056442635189681819551328461776852403092606514415639676098375870522364296114053072519078460327906389710667899571209552512406389544804173017701105165759510505570099743905872959168956021371754520608955135210818347358859144857608142532460926835451389084503836137583825014677626590952814481633139263524599197565941216216782347367444208951886407227388973167990029196749260306254821366916143465839696748398529347476794579221033042794326801767131295072657688351092117511997798848279950570080760980651955326336465362906321138092838548735161686586172615683926128451054904096436204581594575145894204876967084833213180947315264257632750309522625307990936073586445837777259815306127823069784331065617521186568650795226669935515716786449126338379985692721522536275398760153036207363952552884013832099902689188387049958238135688717401676538083660823433223352103683715298954845021255562702948510738072673971231555859167600736419360662643727768993298810877340672655090823005531183028804650479533886860873472360275982639102932599889721377296990122718172445132207798705505464158054009278680942563904273918061080238044445678740545170455317044702958815355817214041771359292715303195063824661244660385136624062360776500505321380193810118127437237127979624666349601186471407427601017273938962872682839716405496166226242437930425027451514499032771646393782679534373057662656697312056784889136811903795214599822345537922540901129742740668539200675420352376881314722981738540284541476773216716645778479048922385158438597788512930000773077417272261882582715654372833553822727348802706139714637765128637874302312477034544506519020763534302526815409499287070827702790239474338364984105812277676544720331320611325472367181140271028836516271237417480857912744380134922176663755197964915934438025105989167273766433827606493177042298079468663857992634190902277978427767837299619742133070732311541699541605905444682901062667265767180955727796048315020735193927949200640479347751596716630640731582223800664091044780903119978776252982730623641353404185417154826548974804952439749580104712292417538254501496816960751840788853059209780326899454198689540441399618501882511010910109076752379327950131396515566499268463976814260032270815668271904194796388833031498189728148292519610238538991912938152940748915376317828817450315470789403517604156147899471451958056498109316585205630369465583437003168659686865731096346515092224907559192636386041489869826942476697091237643367899809994176118048921395543840359146735862444186780428768252632759195144874153248619648168677434282255462202599407528305100075995764998367863376422272845829382800580629517622709463836584945017135335946825236191511022283938737328758093345340427979211406973299268903964524703394922186357332611481842763596507570334581760675653697646684024058834279889778642183122288299699689353824659860221244636814821057645570016388748883210765420870605282216677519290147462091670837837625774154968372583651242158575641162782107011835300037160966422370068775166271983254200939437247136041581291154947810921245828122020216275798937883191025041414066096935188090023264413713710053708446836245805190746323157944471852014033248636865732638265643752450650426279576247994441291851038278134122479831974231310025449031956413662450255436553452044712816955308332148471046582002579840170496002940483260417368895786471278232527993891455557541529724585276375329360806254253696178411420252158076422387782936371879624905701320990448855394689391217019232448266777088529629118085355476046431215350019875772816092210709773247646281936021927476663932416851641476615171106977911583414744305206695452407364993716587646240149428617786955015848370937654551623848323243496183084241434169165855177191852567623999294116257392922098281028234541958233592275447633201349762036953114834670520730811951296491363699472547823945273357183081774155252116168079653801485887382356467708446578404936925888974850338162880982342027295458392185189679826253500523361133151268541824256453129765573869006892330568432253818166570885179305134089940939150085531249360700893674713566224179924557134293379646154018984980098284793138627968151879529010368962852848154282978381112231548172993262246638872179394983681243637084211290280754540164910216278244118476667282365465939923612615708895024291703478341550407037039114810061981839580697718801626884316047563644467503661031094356432011548969849863324395118922426870348622319291949627319513293838516700901305801578684365798748341464059717993700759932889712945378497528041344200731616201592744579896742769479353087451302023122199648369663770422941686086368556931009689687971819166438135126086424845097669959819514380016259232072541291109138014481750864975826091284012717952731513430173233194244610005147166305857396177599941344552222523301342253736366252048517516500269020032596348915553907389161859461993774762202356930250155964720575767533551506755528011072950131747379091939538843344733639264081924852401434172389379918819538681765932813803073549769607094870876597879301100600941881184968733476479741523847254632413092829938007873737672106010286764514692859586494254850173120757190562717584058381533475329088776961501126949056038458820409854050018236754669378738636341091260079719141443356257552977802572623705070269789934220668959363815702146421250411801865006355265906531426881465881962585069710345400310811753319178959217064115657745136562480451408040675439004987362051054535078550626023730504988435488677608558419510187417120989438627600925216793478862807247323728629516810165014461618371660776771270247146532871223101231252814153814257465991772286163789907644398136187003808721934682595994953545120436452036020379228053846719825337050392612108712183890660247126200088790603449144794488724644324526064470261698625646105896300168487523918160496034782441693835613678502422558984737283915866364567083199938049397540136913402798401899217173832760412076088658171054764102705140921903093567382418211725928415286076009383730545932797525099959648874224993638103300737351174836687186495900615284027948123626168757807015571796208970964805603785715018650298090993021687334827012584446130212099425912354188210851358881460670347099166993675279330451545987675946624703196979102335464240177784134110335243865728663417154730992253458073817003040442109548198507290015344301332974724868526119499626454868180815475448765905381024667612749201360000311979777439065921699058047548750117209915540650499185415904416872823692249772742589139101189953369770162725345395873662352528518589606861178717442755823871735578577620624335499434866987585929079435895261162457805620304602190282497115177148067284419074018721017985564177138750995382435998825509978819336565328430674260469203581248581113766175819923605933091598540721659544695692727646281756842137289905338610280016287771025775893290587853156720741459960208914370932185190947381657110444109235829025240220280345128400942678726932215649206043058559725560798328963357382855396490078718565120627880874802254019095300219620073789995783334565408250176978893094981949086155093476339315539123915669150498930330134492964229013621541121483115110079309407228531757343348098717968618980462316316004467588276652050791489040596676389785034304755614231222484465433375709264735170474606196379270634394310429809049243069936102013564208451088235649578545807777875553442826173050688707848275608568044993004766166485136602384872734583907614649593116794493724718461931588477390437161521391218137995346178338472933843737153025162062097734877604720144536622365755886916081121590063567482503309257978671777473314069334551200206684035484358491892851966121352243943367232769658656741414272873532997188658524283173267653648755997032128964048349296841550386588943895155628289362554156014871041719215107958453361598314033555280415055837523310136124781082721499409989673663052727722665747277087914416508478226489136311527280129838674945446104057277653978228444972444905938975977112904418992281876299175590752129073204018000562803953942168319496985877902694708287907949630814521088517792331671213198012554205823963705753596492704219719758756713196102899948220517354185384555238370605659252461772745942481201217360813519562925139424591864123562664583296554733778800803265015965245023191433915046286096287146963363543800578722311600225478890255284878444890843571367121676129942649530290010526405363647886096831673713076697532415477655490477328303888528771180165067206246524146796180206046448424015822124439729953602322709366520760242587277009330850113632393140036972737835860405019819539033325150364191742654564434839288819821033182086916082181672323491798984561288920850956734936363215793852203712201093965642921493436517385840861320608162304935334974415204646793760442791955857073219473907241814462553852067626240700997253583256890450504633078489677295536929754460857818202029735787140298141747482944503860261975042248174104944361663610742744016806863412239230526383198497110766045645854940698238711382575398384570052393304400955824733768278675046950109552758496024504339731213802795776304815774977320785735487711793737623848323596965404318250273800986510983728096588732307593229720834155288685140054081346733297835663298280011603134635354634549019398399173622625474894819339964604611589304565086601882608650866569799882709865364490718555513992234972173055943235269131929634937808384505064529606510287827211863571410673210740997428017930199769103543076176757011330455669348172951142891099909820146117019355242325286250710263620451608758920595652894492165132191312000389316423769757105089629148599900903165563054250839658515299124705656720993034737217590838345981860821542857291866720432972805070311353047116246620897549565610480864102143601461391127545714325140900756971644919147934607234951367919151861984977273411353843425118831510733614948032624286879424309612323627397184023560362790202592388057279152411243907787067829210919492333229838792788859654891393362676002769131909511405693363290261558306429945156092722213700172763766832797849550041222009051975316159228868577953566881995171785941141301708019012193253942200244028556222375238434849050336667074776619319130876510359413460289339385781319003575470952064722167343570513352900850049646510840482605445557664046654097144453284584810408403890998129849567634764560573376392580633570518762089414527648928703722396969008930922458573157725386952604242935979069396317787744418527896817503607284609901626453795007978983044842644076279123545598224336021651315779653360619375185341433397087573492550100954226357335132879810834373748554714454411658685514020865789183273821340208654767110551936799836969996021434947171799204975947182187943278978945159660311148575628291588480448312094565245867569199377965402028406032684251933864021857614693207848688219030483588658456248578155305544884681935102454001780006207896540198471351047649735687569384461400658213055282013740561752392443167464056589187320225908703983436430474684535981062795304269297503957972001899039524363414985041882596918123880113182779755367793642073648057473957334133016843611147581929682916142618047853328295478743978723184475192654837623945387794105810880244855407316117071724854224987440819117027355314576341301161493316331230770989869501451652087729439971097413937966878320465955310119068009914047651049827627270202479996985183804924532777113722970037330060947757765900140477366218109354884970025420036723251783067784363486710061941023867571459746103341149117907058394747167454640521010821074717603234178728340521943970287131225172575872670122662523914084863759480417317621353029870784736216692653834343672310146895297138634184281263526156810037364253812880534633913329492091651578940385534169700883436436705411462557072348311199538610731269362919293007820713102323400787945844880579076849842592085939928195961415360938115150863951176486617426708343379021480179559812489004160669480522017975997127293602043407968948943794950457202085343248776035504361853455303612123460854630032915293420882412146529802837515326885377727806455517680972298410703349308745044386297992973832711921412798102740273747772602024068122979485584338333306726088400559903536330163197817255625046739658908132127021892133477630564197936533590872777082588379254656980694963790162930136368518245387625020922296457095058803609560833092273884592063368088684791761054103522600282589466804375056496812792910694908043312148913025671417070216669687189727335479413428587674676266840140973827950708472104374033277318913395328930846371820075514663451870927455866644836687329659110817202511283662359175500417877050386080427617668713905266286013930382972297715695277523566710598183991013942002997762088193425795101432711073483527780130903176801992514813234064484331418733406676792177661141061278545958511985213807582885063525250014909251086328530344872269190779725651729407594999307441265673549537625163836294670568619630704580225398833940222406666073381927161060962867425075395305878992557864087207150381531182110926398249141498585415772601222339340311456083954167137229199526061991390186621203096501848004419618436007801006940437565923211725668555787754233004832307345521881224696774257573135193877758061155490471008779092016188252271902716710604011939200518961757298674867021408612391267028428454537420985016353926138342774944022631381459339100366977492703367746546851875656250008782913897534495273183180237886797511561349732904125022765224265972027697807676314218255410317641309781395235903857639588215293199250781824198877487461006317084519617481645402615617367822455311513374226996841317325928751097142490440120891776709800961847384585598872155349553557218027760260178269005443652528414289398920155201118320909218794842799782896046522336971237518660856715903662429924510431525557434022407504681855820938879303536870822034369836757808254431166330108678599493032336649280685098435046904957696459777364136675897528549589585970729517755339621014787738385694820658464084831889536559649799675751752888503381672293267410333286635224336375380557628330293191369111825525200329676819809211496294323673496093423033861645703499872733472793920162533565554623787105476208872598291403037823133928658240030766370869559641239643822011436708123779164929195740417290086227344334210841330769820644116547993442429430285755433688052728812309291911338178166594429201463929894037504627615305121298774817000421421280806512675492050021510644885873404286647449624820807833227446341193222290401952482350061125757095285968602365160765298355826742985475838439710837960289549366020755645038359676527749163274645389981032970896895824041735187939124939826482549518311527331322966372336508801150635019200667091654364147712828583713272907254257673497540912966918999747847323980903138439033280905406235058039467625813945790013925930300387741728159716745203389614556990621954599014550863385628952013686052910899970433652788470715697807265835036150788275034226748858470685872772620483176155377512881186498339048781148767371972754837666973204807394234231784885585380268279151942635439635859527141571208673526250816046197016917623999251347286041307209020819699893169464772195210627892436641007231545477860366188397205677380115135095807923135293199742837307577335215622954546571645413360393018941813315909356029852345853095590061610668664081887503077402556390635383756194847946369069433774775572453785326460634867728560270285583458460421545360472760558795429461067702822412606096454292059818702424908640842235662185110827752131421687399690281938860921793112010634226211745243862908194968879693672358834595406717011181967161041667957755662388371395996106799333900793913871191742904770684354456095155013138529298615716041356535612191239511990119361768039243693390897001590302283560043852311475467666017518183514882737258284852945282448804002566954977784981573422170490378080194641003428873643282948761374148090721185743401144578659097941159696987388013445681742298045195409304454558663414617791389849664126489546140234938106737908480659378139167606042872185297774891113235171367639183334910569289210357029330272720394358521653485405624746558178874706704171747353750213735797576018482121392050552653663374497103452501482188204702682443346553285316540094790473318233161836116666648849332205292470761994665827693992654436891859200153456789642153689459933196611521107586714727078976907289200488620498838206433077663327100483481618555596251603712930962142078615020875277541069768722908875773476892185092130629440732123343569877708514621101275053043505772030670854146842552574959712953266847437773751720654316522677566708774758078382834136441435559062949795419420754797134306328382896172909260579924621900545734068244391297756216775848701394372710442563028118368104593623874108199707883769473080151324482301061208773557949295252278917015994692042125519854684285398917185353832402926747524860512586107436420234285345513188723393398312212141153798803684100150020681853265497328473927749629484261680251273239906105468647049790453004313192227194393640035437561103888868827022285837169632648201605427709571072604147159056073974664576713826017346434738837400150344070962150395327067947259951327087083340681752689081719480790362575974292670713821216836747990207343915674633015074838720227282877431447434746818272376392041046506845778223088059916872169094312785350168270186835885770199044135405668720037684388503654891872842386147876623767830070855779251247683996681070986974083513370890584580836483553020313510001172277571779148235150684478580978176018538095633842218195422636803980918076640443616112592644513146225156134989518910011469409324657659334770174752895942527030475782069578404514826003209028137273000876615775184501081595807421957176532936590206896338074589365526421165145501979885192297556993371457568383905489126372096959432113363351433107607650590583420725854923756613557462391203662813286270944420429117204833641868645082999259525601815390257901516980233131972833494441690445055930168000382940674685138523776470853349881232254536613605858294260563215815394226660705000987737892558785808154295331469603841629221201329922196508517588657779502137955861385369728012038828826173009220906608366358513436779721679983912587249249042074456428759207786879703192038660205955865509394518809888967840909180908845636559253756626797587344782857314217552628956361822600106493033115189492688064510216028483646622082460399824752284624377752007840137713157458384376975690505521909886955974525848660039751677720790558569996464416732074016993332959292333067523636998430416508162720568875085850907080517717879957339423056701698058082392650211843813989097528309409496442749605020509656232751847100325543470733952850689721235274558923931414759517618669190755443534379238802630603412818410554631553112364074898177891791369898609452304009229814298990262495417979332701284007849681174074783675784453021221899993932780638210077189415651130462950172870882837099156421280022965351603609655856545447842340147871071696111588715999542777797436029764344362666593467577486055301228074740232525041101384782438086048075417530968155718765155271181435952101233818562743148361807271909282171871639860692975084350021000961321301589371950585860822507415828389350702424267996602448782817054887663142913247140840257326280771621827628573468460351335902775756516090314503722511791382967003975184755285028312206636799698492443164245924829981349140685492230084549361069141034260132125019547951623535858783998612264421895870535164190148710618013168894073879641191874587788801713601350387724455320780013631206894662434863160695003009808538752017240317663447880516662894866038382865650574161981024692899917437842164613573425236039181722636052678396951091082731266795606971139702793145976196259421085714076782247163245878082568509036946569611502543569871918117806106441753928978879279878684500790219694430023535899885515551518710578595408826989954327576170314498038896858327785313929139833305365633339493352933053741493710378185562657291097189096769406817246491864165194835099199298205168629481115247281625095404081658403866869544869583890716331709210706906204974670673491217161507760207842284430349062466157611013913324972041787954742314719652493863343713625097118861391411693028500075802111589189424521168575887129163329993656084173639230173577189169753342094634768502401357948816527285727996115501266748736703961695130353264986970125796777992801303516130849859239383621985215474989625466870185234820752804971100860725984310368504833622940256853891602968309067740102058337100086757396074234904556856762951859743493197279137727314533193368256097376847780245396747891148832749199730939774011811349588405092382815983357258259856132130819266304828149586148133137342358311128361246777352419733894108442078730305044675571715698641039002460310791700922329203036030988242447153717643178261634057884457429081776522411362556691195843666574607575491823353904409540238312007142195443223252940044701101859167313367592044056385356280155148448143927529063279875054291175382178149822183029911466536440408379478609825736150582722283120215316806101201121476877033273218646631934712726350705732131089157678003915085911489113808590428880353101382755995432738855083006816477597593730106024784170935354659582307654319208378437771899529904854145546769185729736446240336923210706911446131470832234942794815444826931925702936458593685318460084524153601994822543677913883624785851824728019423358937690521666279811387191986944198668157060847499701525402478379078765107034286004091003700769487747247519351423318197402645789782296138073388113486696645763148016043853545383718739171996849842458877931788361841150924035971321964001661703129350332268515484601364539691552980897665752803556926946649069215407766965781051741384271753522436971571199057243635594244338441954718206270207736991917757633810970576266823905430063807455600713409393277278659926871544149291689353593741618605603064560290447522934110125702708186195745575868551826192414007392602223987073690371500781289640185163944318642630336360109390937347552516165882359427067691996646908366356372400620341814347252214039548214602024630949143138471891458798418544728435845582672115474058142977041771953807711491827150370746819503575286493196162852516239574011286606058102502881128150240953314886845177242101221402878240608695867008382082750759893182265974872274847321467317334763221694969669996271993095140384307850572584803155630290211077568175046384231710031072956239195092963894940686462453415843656045762580534299740476753839383526135201728019385728062036372090255511929183998498973751743790568493308609274310896922374545509359634517610078573865779000084464773973434593768348263614597396384706126696645346362587629327108671410257436474095330555365718081252656911563298525433592041081157388971707861719676190607333949003849699243812538050706345496158940992933255979066163942698916474884055750477720998746772952091429991017661269002151574324468008697144533439742485422802617588337911542382767755406804107842513034098076031795170421718099200287137722684167765441402122601599863674479407840303362745650881644860459778911406300711529251320712407866742285804293169547955925452133641048556051939663913898878278784041809484837093422837347420527878889412592388327613371839461720227705999959228320209673612058489340740554416929676574539850096671102538784227147005459118060257957405428858342710355262211263537653870020316699640123132061027433456082694125007305749866910270536568584493182361433195069901267440834270841951485741998969876268632967571256506773107441861587904809900695971020533061588162804407214586580494022593697705950294685393170551211417698401932984992392535219883912367254099800639875947595665069852396006373965417453350466204649757715597764623245197795424075034642799805868065147848212521545490130473935595485057808934112280775489857269413192288663817414417959514805526803655916695403436109336615912160332338769410137426815152056270539886194956859530833079828914402038429026696568096923100942108282129141273272932031785524081023416633121295997147669542080640438659752324801464593849853972521559394193134244503288804729119616117347415298042537711848993587811404399967574756730548992232964948050109075833725283103484999057475172297828815639956710235996628076188837723153775660249725067278548328977110877212793398595550453577503643454381154632092307686859371150692560036459994801464074066983390113950433277962919688875471654374261518925570860450296009895676875656706196962818618326736885522725041338600610827843635508834795046603038889306160708399394949815610298397075295128707213164085944698987274085955037732734010363235203440624091418651187179312054531903451264730161211245739703684739429005994079234450382569968990811602803161180218297655216122191410374012166284450694612789169529209707591860209532922494143146036144271995852530561892426085747599747689037535361672712371867083000021041634708528779156165533973089329409156798994748974661306842776401341905671402097985680382142419578356287967516878045837827739496612232299243588457448866302784773999698475335407038543127667172084880302509511504395564176549804748140775752238885501811143301951404524253520402009780375040971130098704304319074945255412608359894797268108504612680345986380138044559725551687183198178688891929261290353119166399892253744122917429161698967070240179895316554315247867448970396830941398917760775003276753986903566283719996691800072689429379191481349639533170615733322667326980072853968814134673271156000296837827346441232992041745026415154259888138780289424042101703990089837305781344361983479977160295939637306846522964691699143598685404868166470578732724355578706510903679462080198447611618391611827282507227150043244755659096392894062235533679934049921310113172142994997682036891037569619335057020627477531956920152142954510273662894751265026632988567672659610385626501492726634534873605696654359926938381687715103837940292336864090350483183425189969017593530028207876899830232793720210312892305271607648359028058571068180183241022265479430671332484193732759590074612025580985330553469187402148092851951868300283007827992099194717724825622537551911759071746751080341675147996891715385431422248485229912202616457920941469426669520303213287227570961762927257359685335940164710650111945756681991003850049349985692274287899469280456080235878878584915679432366245933287322060048503056661581631409699594996881347244817164590840980630758832154247039248645800071054972211780298176648308835343213474231299897855758723308467735888619406945143685073842555460666989603771552926386521561234909884354250730122838439132824478682193517503254703263639551213182943426007228545356837937673394874833671269272934456798937072511008713768964632845335254707980882037046686679980353163254918289658753528338444681055393899984279849307752984350093577031566639029178713570164094221920353165013820482360586293436074034049115513617857157244664316688229130155684619012783396094788298314362265902268938539566719899653887009577771112650270240966685992579974097932744860161766166016002401909677815535137433377244989851634818624216824469531871320708600770479758316058468361776769373277943765181048387946780407226005603267777886404776770906803419333608886907062464013120480329788351232746180658894877259615132634383420784507061168524550166029937362265900520713726156297166887044512551333228543232861458873811536804523796735526546022508605634223875907447915338096864757517028056780532399311494449819381634819048759715310114346651907267609838586656575554089633995348674625994501864105493940212436145438931757811496448153120796191610476964166777349253345035870209621308985196419188554931017115979994530048004521304293520133140807799661606166986444766021680480478398973921820193174420835458570952193671382255618533638265394126004886301649387813906871008850572587735863822152843426769079284524655096088960579351478652722515997110466657726472118984174689693968793680892749653393615944468717756141261098106826159686277692994369868384202711098711504870737660876663000614613012193523893099176817658503229140441606587449998099429612080364834631426438194812014383468036423146575401852685706792411923822219977095103982009127303693835576072166704755774029361346845150732441828992597527380506170704621436039954174981292750423953065246690575583228841843585110826646556651968908934727894100421312161613279897958167421918362782963263317570842623323682834781127996073689097915216023150771031368544334502625788750513743059904343625029571945582803868762976038077936459826313638020504487488252531614862201894276122202284991463948088158540879348835103530978166819534969213965671047715229974876569947768379882596214481281586347596950058817946213222153523776886627239065393867542462410290958449035727367728860406096970583982039911702384686665349424178247173339482390352390631801139182382235229240945265423326053627481221628034489592112561706809067583673171316950995725017209171986041431136479932113059194102390379549939213025141092328932339501033089125578030386526565168058917734796867124904740343348248899156045774051592062345408363843168809477251397643109406901505134665862623458689375784060180959103506821830758126629218633746864571239952896900460163906527659048696096275858424598831280446420868372174093021880906912196222416550366694558980378295183127645409855839922414613677677343040619630867143541891773654175298286772509963082544835056579663041455740210220469155577020118872873225677030241568256255049462767236967402422759657370986886475714170241197189429733952458879410785238531020690426199699138287161707202905956599509269852155153046235763395468411767236499294274121925707876616349487663821096019553124083881966368879061473849096143161879727610391954600031442685914658721172382618575876303585101065528104023580015359867918591571864070825645427721304469527630311489358011830340830691722552105843689139347907265010000259096331729022766645003989538488675873142518179837263045891379671521104223285817902320937182708656862121421662689300522102689802461626773668178458318661067934147389573966451892787060951657655622059161048336804934793174324673222197578629768213400522266096518432853281402301903956818497430922366631923213010738188553024732007140165039405903735788876132726745762054405900325208426213433369956862875385931500462010129357013354037020303590738329829866028288417043137917883058828274516690131048435694037173976985085768736625116008134821526669172297938708986283815739977016618227327081337148187152042445428665211349582120102614572319168339071929239320612399922366747748477441922970050016631852860963210595922779344368991031064751458016608207053914866084508370248643889220792261384920045919681190365905890524361721389197839390460513141449265931061405569562063653994045437664397534241605238596849675367518946642714409387971344076957808315357869950539923283636674349024406020671369972777095928742954115486992465656561885058623870818769462794556200878674167127690768381441800874813518424989886317413037796534353355375361408088145912571966126616651706620267538698387125867713600128517617600962413974832949049001419630562981794857573491818210269886231224386665759887420979938651588119050435594206542322838611855266213730225204462455358907544870863162488023074095730747618951421907020514693772414590830883763801625347697726153717298174358986041129093775376782900996340428433799905541036742440120141161957770962852281920440894967006904395122392576795297009226304328880354582144065022486527519471886809595440983385828678673410309034294298193439801538345044501754547858533462921620383502807824354435945588487042629135863770484230262778694697001078728800497866867449560810664114717543429686649138311193703131276610869327552833872761495224457301429896550269777278677787499913924022782756648058005360152044287517098403374744318865887124781621620011273749173933906660043654379478212546193961938703694797236454553804965023222970519892139701606115671751698620585031676369984276053442528606997735083660526027541869416409427028442984493645574564807395147715007693393356851122513139888745721592473425956822955885759894342966755792136561730462923753038322818980206511842650730257389746348750432001250211448312483121201974727254465340932194956355492193517516010684747327624939555748953770411162604562360862965128472148183251840338315620308694676718981223949558537391217078451249807219083664852892503310106660266851006929513260289153980458266780871172955688329014425294334322131228366483236304657440721217389619805805189334524679046587162853756886579358397390930360160160410713428048834711231679936727751673123309160990461948726458861033205967876597587342212130739190667409522428679144343903941718642446435520883758457745480058568996059398664146515469951856071495256256312823808390960854037973695908625711510711316148024014525028745936626377986274658926934067845336794727057989580141840332151537616818472860184262040968975864354699283733046400046182348038886782212777888599867846481075275058128429247926999296234574680914135543625473413826122328557177094184536444422607298838631192834811249550633050377632887147061919558287791340571863712025967135343676986515949238161229761011069061128585041421442126602242355400209788862428720509362771992685163824534534064410877751555310772677750887617599997833591809328874892439986295728621341683856323732416966864849806050982737356350164268550873262049995630479952772319678033164900803792363670640069127537153531019618272103461215288377638908823078720986187510209553538900615485254620048338529298453804485396671001246451418491123259739701299771914401626430059786174116340771583391231578180579283445531780468275433256960344473588309206676665468694119008546968282893470932453069368974123251671872956907054493357244277644442207685436507024743299021061426435546018465881651939633704875558639260392272256651054272149249670632442892547001498707296691897601186514864325773961375926531447178724283366023917630970982824319764018888527161163823829487720707262696787718317835975564319803113826421969155665985006971428982863650003680066717492603979511478282450163162717475387938853977150063193450791591632072562154357213895423358768705221239338535797726749769314274668395936627938283379640723026074297988290547864768122271572444254613410554902754163288980583515730350972299485277620732458851538060831174189830827716959842518609019166000787849397153369780149241963417566217657713543044180820174315655793939856457139220592144546898749258226913424675552057935827906443687838779895147476187079902051385478949860634208498986206780291785089911115411180985178310716099033020746272465874583903948334118018839469284005285436093418941417080742381344529141130936673181065640645537077891007931982357942015888127600218947835173316608032229720138096461657955165103202364218364395845710143217917534762578726042861397548129446378635463499795480792539948364490772228462271743747315257354416410040531369312674258347027706012065878658227378293967606476403118653580630099361965875404470544995063565954240470576434094874502672633173949131937615496634682160289345278962513974343513180131257887386448333770251775361546657637652368571010406639981774581652214937411982326013761474458551170862589968503760872378640887393743906868903925869032455569226442179016512415328202644716734269385146738812834947110679712995077635846197979915613661647366406781476870256284669256237886836466612496601698336338937391355567037035404500063614302671703897249666410511248395343156511234483105878295168015953730277783190848416483110383273592455986508990062051048741671562210248951302602944233192250171117689965209073347423196009504877748704937131033674483536067705901244752584671972148929199950927059156077687379601722695946523233642835181973016530410577671057889241704808810737113367911836035766393362240825141238651560137701778092951757850887937609495262100073195931246179649563242184806927864633598607517564028521293250435702245699583278331227828285028479878029253045130044093184058047005825942697332373475429200679201269479506083319363021992910024051561786299360094708265479613148214508512235776276251935494580337067668217968456608497074298991603500137529578849471109323547413880222484060727903255322039152600861474408643221849613116802993743797120667436329236202347315494444467029349193602204974132593141097675870596450236588655566589992600514412038533056139698146440766451659919531387886280697894376601712235699385856564742680715372508317236557383266284182587763295975432726526205178488544194627290638106323157870917871425414705204846756707783497272115390648910617445044051661046603377508831521667228961215057667604882731111384536083000407102113112912542387313803744856708722366111548239255208076772708626953252086618337101285194108989197833711880097066028144536325227141802632468169956477442638883723417284473879773333226389068668096254930534358109521316875430124766239502160482461640479773973461940757038013871245709234036292475939946938451258874673448820879649233514402572058865683499949149429885683878547880400197495541504398000012217911375791310425480022747004107795495200114621379920391612690659477272769716687556711954721410420383639200763721351297475873581965028445385844817366907095847899510888988140111524672197612665467810274005558397747992334479438408485421333473241959220034028069698720325854338531217965672539923182572377442543912751107400651924803406433312240077402130682308775756405141136102850201139338132028228019170466360007624010257608568152300221821934301636685893932435843486498495944102280543988347588134591610825653631032560406397991854482499527571447615364495214683020460894047026439319422999381286349862893907387267546835303787072989729590693238669233353652940480308546651906525714835611493086294209867687005947916564953784342587033831071722892190351078134445453608213387829347956947608316693973229186822567202426535571101649839059745898681158885956029204568481301294310918016773610882358946831472157661027773168287176682993688439741101305598089235564630552316407569092897577371903497017581903081567852720176874730415099132259064986537990665183073338273289569785836937895753271723617446113446104353577560636038249992578276757858893663228516273014833034996899813910820850146847265218761851122316254484197699463683223058153867455295794270253641180490273055315076172460405712509302750367267920370932129478134189559426891069711094124938552013901578720974254108096150741116867786281604221686162771637285164771054902808113323534451467095136169948813251967074564463834517720984579391814922566779695002122774569097022130258306661912865729227357098800929346543972417794758432062867041633528362344562049968165564626378899931707644422461660910462537902725444175623553995266434809442264521770724991631986318178733152412897200761520074780096360330780990868557473598454317183215895448500742198272542069983063613225320832587515604121361990864984931137629915705476599872684075427385135065399981992121176700615290408810507307142684551996817260574917693088256127972455022675389085545395294186741767964534843699481918636009684617198732537216798884162930107584655756938619697608679749805391042068421235212136621631220799243816089340582698417554665473783993232601147042696804303317544402078172356520961631741637147491744016659267651610607980956608464828877588598751673497333815413667746302481793204085170236159613019399179918274268210785161390063003661908407430734314701524806750000373084660524557276587285516689087873717460440605986075452784811947239994180291052633600659209190435137496915103875695086196706634383739548238787045971024820471858551744146120838052844271410047727696210927673020620271074591063432976923586269305768853541497650842546608723768524875540512122082434508010612206667133492408826834337642443818731828710884283272972456608531340731326278764799418834041805539970957649541137700319568066568724881469601736682300483427955240554530981919135709595005652789173040889595988938045019939507416642622899647543206632385761027881528773014598536922413748157971768051075796471129571294250307078031873185531960403530146746707474533738633110783462313654446819246367566583885127502334138532003514680346106259501963313917135362525784956462409811986822068027975488969109709212539669488275676992028930135328133724585830042769440760143158834128075320290237753338119963252638922189830491198883097893794160296161361762767344074034798369094133528730214831874797139731912009934843366436741102763418623492332368175807078852401047406259008104578153405529716546465183603738278727159570955479274878911767019651236249315646212299947761682244888871741140792966067415748508519433770408107323467519778541715166764631520814976251138186100004295488980235026487101680020320161334467451842781252098820386072840134018400831086818990298080295195183207947586954490730699126753926459188009521999964224920872299978692519160744998064094668059416835704298169217087455576178998107406608640120402375420729861246539765346896078639031888673900008950080103054663667470475150856179132982895509109911414060264204745494780522236482268604795875277919075570319225094917234242196424974472961396604102841739061874012979703963045808611619888509602134305736121815770438270529550016217261384814354468947327981134880565655329355082266222113478729165548723714836260303957678851103376036822984552120534023542869964981987469195955009070071843621457431276652150870975634832679393512559737334315922040052529234952948606803661113345525272789242468384867195119574920469776025641456216072074932450127100291238251236941788981470594708555757425523396430860927987518890865041595576453766676749336312069265951341255175850203919082859929775041349488673289213246275655575985581288128934586707138822360924408895830913039869865575486716149581781045545106631547291896280639851122523728535286082523511130977128461954764931105294452908804296006207643623090397745581708758857658317296825664951179658004104196969255058506849689455594734704409585213955396149342078829254984672442370521863805569684947631412701526856394650090323182900704418402039843943401081901017797312792876125410080985582954902892965445039883893355316738814769433162656438669564822453074312086979432345542464246631613417754046978098117587684698043222267076967040998038160571066571050630982183410048290957268864374798721074235145320708643319975815133938251040034029131747223260538115540994197673303934584453344257320629135257230466901291057225477423651470220255763942956317828418784688907876415223480035077313691343133176594716232103328658167671305696221759180965635147735853167171432982339487862918656856113778989113881106180790521526954835967577556984109584475785245380601859527127781532702759227593674889016188739027489977495128799170321557824373708419448521515362206202024382401620241328404433592604975764700510710533645103035604763783402706353543338031927520250043320292818550141735462247543862235007649287688650554453785304186728925967085387472468443922761795677967215947818047164108168198225561124655401817661221230180026652715696854863672771849899199649934825332579630808046752611997002363505995512188818212071181007646840374805835681215654694138837571805061021793155333030460051197415571922748945906959289425546339992498140034851237993545892539083626513857836005706941351054890275562086049569245292286042595448516683715982719144611607708957360303301971832924277497116421762008944000289199125732406986170347634407318542970846751770140963483208115515451864404370220840544010816213754547879920036848498593795640331951710729341697487064750919291849305914439625736674300885406609198325638431095146213535126245241491447217272078948301925601745057759006161271420993778135741035017554551622338719591411191706649969411143931051411557715987214630308546155879191030890516487014861038272814880062585111052112064806010336116421550195336473188308400887141706284539860132760515977514974085807534236718463314913566651821908841502532107501241116321238145013184012341553314083789288946521298837423942822826743593799845618827168013240003234352616623582843288992139684968839655586746180535932047446384759415823413825241652157960128071913624795729522681167086116244101323395154834278518103484252510674387183384618979439575329221075231264594386088950985847090284187267688142316682475617318891634652110458223385122774858902047788275592996278725380017509496102047641180833013606840328654999616410382116380512680071181936644188793358986292379299180002265050900073691526707938773192040906616274982912442150979546555628432548502185331985739417749838221923560174500872420282084836631302776408920047758215809307913863468666397423846894756243261703810404389628690932312283435397718766821220587430223077214334829008463552165331917180547523082534401988145892059051970582718771381205657246927345212284928645060501247406468194620137567347450571477674520920782318314865804745936258984278891253258966000198817992262883720240295832082618776976254410491473895822196849751306822343095215079827130774853933577199241736535230662193209393741832125506873283658846159837098611960596222416348449608489603844693957227802906186588780447487489210634152401302686508613035061679197565986868200333792776313440469355671089536820369032377093952132414756164176351578036383201500239560956688873014749665517949010234547202857716882283898783625429464121087803757322047086522399642256743532185832354056041606951209777883203504351537249303323340072255583862957203370142092040931982052003374307548863345261869189537202448355182365274512772113311248934116243939381798256050934069910247639304888896435151650655409993945966946297340948854819575160194930361150711650283849098087149175670200652711730997980011854247038265274588348946188793250487615995576418960127435026683247968424259389469901799754494663425889714016612062929478503982966001302036776724357315732598332612468222483628488671509435357785287868456883721671660381812841024946279227684498938400344789862188201976848327994647711001744009827781032093186271340106823722950086013929902247367571347207091661755601786606883291530597786372951657287560516521491458844697214453503083956247164822249304564313706650514827861914890147414810868979931422718657272379083485175341612121683746264522172978038646871694605831288000957834381521646562892618520516567385812616556578785767148990290922240232576735266749885080801666886547046274378852284193094882566018615481000662688854402541219985676422560364221718134500470768090700880053594680558348487199052176747717972449917325098493866490580783313369191878913611086966140765406155098972731403507288977602329078026170715228629076337776827069871668655469713388526669408056654971923531155311306399939622996193755782650912054390654534313901764076990345051559452058103811481721783025517969099963979369084858467787125893214154405597902404297893750446902584459890621809302723930382400660530349791030764635556762793312926475573979282159831106826605005418376492901933022966860839116863825471767145420397644738162011317175815832565218087823079584091989047123754093199036102305519762810495249232280820819895683283040668103759092556772908164810956838867608791702093101429662255065906403903394097965372886491005374162261860166987343043458226133883423161135967155097685964383806641786749626108333621712365531563840322279338996731748339500358201936137557585549947551172081094134726353824777543220355063101137046738868087305444994945611413602916498213045317424399942724785237399392700113960864555181318844610741799236617568642566086951754174673458103644790553162875790569372369683511441305356059457238586911765424415822722813238950403499797925140786633285558023782245500856205965770940211556467308134024396591688488491051694331245697907606599704355213655757873728059529559805699579731619312459498276273459349721607133660067082214291835606189291298595551653124018171844334391766599984905601510839040317112997539668890541835806515541780958938961372896218668353512076100905200400345698080718693250884467056018714160457975103912011764911428987423689572904236359290058966987377782864376139591697042765347106877042191698495229251868441681443009244488849706800424376335474089427995007479901721217474807872281179685578471892477580325879062081955108441759356594773010111185216256622270829605339051859462077464809031701813271758550819875448740010989847669880767470793149244130130889182476984397250464608148804617342681304500451434609106242565745017527408359210432615234258770160196857565376008143031951561447521490305348892749565686500404716977872297460605934520317820671585115406422615571225377140647206955985257989313771583514376255302617979057209859455369628244221351118140271016702838162380829799323629942222618540810709787185278334834317877107488056177622223756546923577557130137823544209407531071594630765762845448409983584874664074767466099093769855336953672665405927338384037920967953017963809965336795999808441422578386488490181067334841181420251912617919927212679009815026505883343236276094327873559608894603449412628527683098710506617860911041564301249917152391652339185905238244250770771597088308705458486193687956287293011457530944542228682926828019720514012052790036491929698433425935346089777885086250492893671821967341698304662275091209436759655602903950264221969610609154228526462349743275259873791614699276438065868301900578904833493345296339075741264937497677985403184166005267662688170320114348502786258793520980993679555564697197031299807954433150951015913433708311267792536368256545155927275677524757353247065578068717999814209821912772018021221267943328962233006912860197676509083331404258595448685304037958299065666568310098602996234870478498162778022278752036067360518205189319976866602088483511161724406839328079193346416250345724117998891840358022064582268959062043581773836145627401172959407444441414859047852260904461556318484039948433240489150555881234102735538516302487726830195323130315206022869682488618011940772436227637179209847369124571882914403788804609729127295838149394822071827181872446139680466183712333957991881508839839034812391155878716467700600068727705895727953590467032696177945197620967884454775231093761336174493609638513933206824345004341454118125730145645928208328208273017714090211803084413943678938390215746693975398004644817427566899788909194155622932446336295129243861120209067324550180142879550657674331827127075381844168512731831746669119157026023653815219011393931576115578238382065283313781374070616510539643187664093543097309916053716615372177031189858733657750008044432665641811750045108427637532695873904445909764731174545888840256587731121676852068106557395067232769766452074245942242556463181197012051037130271260665926565256104039366534930048012790978217817558654523168925809714594154993360129255708016476838851406483164840614668393152648479378790852056587306651936655551285454863688667881315568862552959771905523339668612365394410870909214738624551306399186671366511713317401330861715712799796624894837352875442585049989444962839039455395723465032550167929959564774270568757818312315771589118502676685422505046350541353915058675648479973812704520022219564036388433771855302590485628085967176487692875746936645922216649477951090943724624318601500047453331719173012680390441216844368194127205046947623896720764246286218189307576935691010757347032119857523813528716325531644040398556683899298848600395777695082996649735715858780328770020912476451488937237921363622565550662771366891503080402661996581075603410412842499854060358806649614425661264002096077435951826334919622783992523465669044867977738305847633442649330721952752987409990290499863203611987892155008216364490316786260581387808123964064768664143327205822466523329948220622743106768215991962277689181855838215256117728429365818961798420782813842373650468998842557515643919555146668128790623056171860177697879637836529786044820925715225558266082776884536759936228202611510739839225544439061996893100188183683768779979328803115709230761843706778754926285239480046576600136961141329696335264632536457099951129811900289934621424561735678397440200601062102294649478173885305955486788094885250631910916483369101684812723194194587892969414865081713173769759156242046897487922623396170963290964008790192319984462682267641453389936225435087120030836917360887299812729479831432790225098048419190439251565146084122506742909931624593371523680653385768934248199212219520498820804876611703715090755030481634810044193821923835756289049374458377431764869515481045828915545338767339169141720182827022727706974604473457017312725162179431468673853220016307462851984499157833062971949148982280480950506010637790783012343190627284762065787537449673502293180657239216383283601645615746657053242022668061532670083881330631227540977383740945210503835552638426041832478645534406095415831653395587795169906504847633932906249213367088168579601663662430192020600792529435886332236595256613221226005175558731411285785958069623169433496234783298175375591380175785350227332741632863579473455610945833186323093729908600883263654879200522498180092496227054801379095276399599747509324290256369937398783236132662424106560091865234993962604079537634544656075691166473535137136564756553947945028024621788456608950216823540200618872963472237806991252065936549098333917560626121725435891378199559800976277799296656248000110655760144369265435074973018400740208058440289595635176118428311617278967546093412196106250035772943020053386370444380029985763383718294273331475147358355816127849542019392199762933140536762894309926406579005554168647472422295821463324408747865058151148182683046188647138982292034270462644702755531348334478047212717769021090221065121443969218996147752938725627736905656776227677330777348802677456497437362198579294273066660516448327370518352637382317530218900507546798568637221183826085434840272860896414022132241114166451121358102256237506497736846687711037858266255677212420897085988818917108806949337538420437566018206446767535094442882076077003762924414465583725209256666991712810892331678695034069568503176989279686741688011336306235537578667943697201056883285181880917804896222726779722600158408326564632194509412996457562607411195588268909187283845761334224049060734282817993728894435093382111146174667329414221753420245648163520886411212881645532266013122514822167587437707008566574635414182082758547231258071619734450314837862089208330337718777209242392269012150093332249291895378756552619275224767615893529299155251092758821247188124432411750201551032689882815837139016765001629537363720803453585327889816837096790309705262383038435378295495836194396660735141831972308853493665236985057727410297193120453119216533759341873270574344711411571679674544620228576403382016491723611710062906549243425277872582912986202904986085681861180496131472196422650324912077304474241505919948415857514894696230055822810928744199157592403346246007764713963162840731334795627753014529173947735466660173781110313344551605685837661892845493137005458508252066035769974463757132522246873255915850031049581123322190408610557478594258321888806236567438010522067678618714525576718399774822633348163720243344089204006920176261667561711116024687877977105043599482075320222881511528836893776572732826072784206741659644896991578890965117157517301302575042233070983969896154969086819909704726931565676671495671568545977030401559730919949974046272109564712019774763733738067912038290800168592553903482261672686833295216803818523044111345886215539025835671732449871652149587743179388665021977498916906921334933831414042216175470021029296051799566694848938646568223183264163278133005398525403434123081720804550648117409036380402522265909710203852563885331950669016697003040026602264002661584896267387042959933890213799002725225917987955148396080947468863602050310864314113695067665978041887097730679575942496264031210900880001246516154348560999100865533479760008261315013004122402944377099125722181130658275167386795674299637202031417431223548741202746160775933542928486561652849428401427895064023484360900775470740828991597325201893773096122141009526699599077967791057881274567363441399654723201140989246011293502163798281510851658124227911765399481956338310760211508788435994567160495957231761571925877277268906453583793051053166036759716047141107047283269967256938172305145091283803014774670620357259982138585165143756284308222590237045558949707553498184356917160158024322065896752811661004947514261738289618203632790139453395021971560469417929727407117573588658738330394804661917940639984922455259549284689236496386336445826530780017999437609279916656277186209619609867208769588270232198023094894317216602909544136448235547710780557461776300266927586217052428906790004267564014043467823152103664081038656978805113493122758513287182681027078858198453589604240858773601355700103441314692897182560131540438854755059949640897730731567541862399132627377369936714670047923760634984839290403048942375109318832778768485832687700948018562475876593646461970542431007765616007134894709551760872721095231448447027953390569675460776267358794256855158052660083189877783536342152076644625550779411074773583004798024160067479814240546410907729164762100438054388275034139565640794860832257034015729123609034385399305037770612855218537400900849566497052782777510827639116607051755411895152363410433746648478442330579254933252378311866558127206803392250352673869524210300457312260933392567195017696155329455670023469266101051549344593670193969586226048186590728262278541669040632210366044857319453371744464410028155994963654786935212777253338663666752373743032796934230397470396103172847198072972671447283558740841146758875033359167415618859540057557674178614270208464959295197110944410630912687388865264874258480650306271135721040770712024845104257684988539196590504677496460308843940372805318054235914285376885624933261736030209644258721315883607099770112162352108236488801893010001493398092729410781154872249143956775442249059478728624920487247988155524414008614090928677566099455232955544390502027321287139716902615143592988983775553089681910806245662824256733769393825923499229110317867023555204321374913631807672029499192477346745251959780724370028641340340903265428017879697827485263670176443177040646146798596125813702445221178968802226914357099261569829263856624314638489067824992762364793720280403111945738064224645675507219636793251021056874616407226961817634023111138445828538500596532961932411904305255407289066571111695523977815488124663797279075362264689663008301140522080169237035654494430904478829989217286031502251516177466192566616165071496413472913691191169005338381879044010155215353875179750266764926111852707492799935901360753166734559897794943791961399518797479444431338392003262241034931474620955110908078065996729048114026609807265880174685224075842314010255866874876909237623121922860947224644303266398664309164353763982937694185944328471029544648618802136565663000498607409193181394635759522102976530069665741154303312477622044696433517525782296989044334529676983456182678334636639282735277810135245139550916285987198951824854160452096815735599807991670687893928464133544189241688311511977938990218812365146935824820830731833822758876386533660490500368540291770903717004682116848321847437913609031448729524922708133825214025326326954085754600283189264582668252022135157136740614679409550882616713524649786429102908602541081235169250764709806649285012157858670755963908886440928304439647666843696191282018949533268421181730580463080788551917248872634245262617096641401235595775201506209991033838098023316185400416791248677949746491949677092461607273718384231783768017900525807704106684825801806627095088441981375868242659195133687994158695542288913982052701204795424843692129891392584243916484414228321662549584726137484406864286515295729423987293074614581464129713767372986392788013103693514071432719771818895070449500151715529672395912631555484637726933924658365704663659788276272665338193956661202982648588623765754225674529005716203420677185348950434976727931303584959524141697293569682341747317958988864890037359852922385517442570966362011388058164835546964351262480465087392091108004610146511165992420963221647613973850668050006642437656561694850950311259222161518389015440508860161896816556646009541316460358813306179649397976667600610451359745013635231477440529111982795975582317687085122390036305809756043707756084220812192966420502343707255235440062208334928828285538890280588397342768876992263428491582983302925303350865878599262762463447989731560772597946852263377244243246291624452749555102230371447296600739570687148402743868239098830735273194238367643317743139655354040875619987917993541743510387965060713400848296650735865267937185832203778977915086039028174877348485249390756189562051932931748531230574509380110225462821882106786775436209344663939497963024965204848947104938154024189976964592793703813861910646195640732263201082725596246847274490565574643500094546874236585653612217553998378867513749049852186721140500285095943915476131610638746983672909435288433827119297766179729921551578720160185212240530382198268251947175414606276363787076922906503609858626361179056304921834834684144924966107510266242090845198701786037722352475658750419345923165516720508319290012142097371433087595653927170867525050764345350449729881919645804513264432932838280923304891477658450155614780939960851254443170991994370857028934268131602632379664590872035895163169145484081831949596716183648298084811264439362458134805224976970387044756962332872832417664186261994848187677355093756363208010071020117805247118231875012852048509182095410601963278553434965337758549447002077603797281812889748965712191292145313982110199625527262270203790861529717046534819170659578563163038367557177313557401539943428297021539607583959381841878275928018193219802333620696187388005594003969184389673246908602861181661937234644250351760079615094778881606767031161122235140501192898238010510381177035909150466579651680832886381640585844155843847376049124522784660833661652161465324834446531022911285400454407316275682048417938309637761221619698084157206530283771590496805411433873639519117396344099777220305212628712336642183290867603445766162708707535485150696915442862402646069639950126185963052076704614557445348101184435804642175825523651759591991204165047846877114266785295705542423107983819834968754928240703682001719139685073113290697968172508108853598580309461315448282505850769653947558561331448407125378214161736053604296488448780869408862528779487843088050926560083068100096312118067416536358073140373304801795376226296311790350195456046553783924637831427522914697271812169008799331706385274677507821632523975634776957219247540231020478671415602776853953526611424415165773128286218622042658420935527345642658748227195096351823176398354769866367736719378564276479084586729909013052066294011923103779800460198455648161351814238559704008548548835533581235584138445532741413261622958709481979894575835637793466770541828433488613495220232843211464159822826848708659326568983615102549884928286647077846014672147980923003518921745328324278263873624115860360135080085471896792729995150771656142419303810061758395785748943386076162913135488305136882305855795684388108232620338974929218368338528425158953397532585484581986913579382410606906460831723243612420177339951383466193349275339035144163831297961584798296460971687850986465547463022944722859086856070370721361613860900315879479893007031680470975778156118250595542334838809991487448849423924498361964979799330941172705903198502261378726793303331104691897306232199711185506081998054948711843896912161419247140835646862364884487471452147955493765302601594983294259809748456460493741283562893037837427317821747684563805517713010984747160611891012128952755315583795719321103677882257204185960706266184595849644937568040665085558856116509607507880312613919537297653050202958301407056326685689484230113423020233200888658197933049514493629413467960655323304986776508115142557759922001902431921203283267646394581496715911564485969576486047362963099332098907082584758509773363313108310327690620286240449540046632808954103470702316943642348662336167732868048301217264112133331878411601368701733200909854503881974318936407764187318605022829368171506181647102971306634222110868173439291083176080486899910181139280991010597507037869001052816268588556931948330966488624100942560725165714023441734128226334577751576415807436051585703824923833517806382283106598148366421732246995183965111602943895951185008774988291880354231920309187064325165577758717821990543766701248092187438126802845626186954431809994417237703358139104882838534093120950929436301068319187783834202336399434195434322992724290885537380325321683117213210728773950743638976245971812298789046572671344605667454332261667780843150623344646947370167922289172189243164629782484420841651615214599861034223129509182936592928034529158067500067241063853749088503698629253355567594800882835218960010515077284456988149459663926376979182079484760210018802839641799010726666247783762027473591902850922172959079125349569600424204873138374788228943690789829582541934760175183968855250294358619614683501754902724911565044815967938102669172409118270698966110829660789828573952875798806898103190635062065047730821047595148162788141769542082890082425032812632142819861601067173362221172240494254361552636629767997612485603310539240214693279275541732512986127389658780430359840189127534254650573904535311389785748982029999664743607823313870714313753571450695136825230118376645383757230616098724276942171610337365204078280503035224954457142214862350300043473852968119350268081350983798197497227502769834783334344816785524217236569146937293629631766676479576797628453300449752427432229159789545764656779152861571094486515165480370705807451202403844990700149254391681270465243532115940661985703529213956756005213371521306510502304835306968495135661070745827067936361122843562265585669084314960856489139662311321879136825796159959374336334027087240028604059294533107000764076075577277498763663575716848176891930746263240906028377750731975015460487888959362602827564749529732628978337055972773311145919397590049999301354393524247276740339995989176945543742711783311452551719538277094308023035042075339497395469842106061756547504340733439527787018806612071659806257115352811938353783252646085654584538593345492499073275402954041989920342519590547421445107697700623402558644786671000422376718400892912032784005443879363681485278538404248064966218580395501623341447855280909859820115567887327590429185666448550657782486454145672956624818697112868841104690585216487014165461426937659453812552590286934575196312779382301452094203967823253958720847205233752412514732669169132577006054787438878351168752412643903704825172088321686176955127545954300617212778319263068046473969188141269945175159649799839215929208426302113294147774578226493006821755955586072628059546747899160376617077872871719498226627428811177729446335336233942753911176545155937042047195895910168953342965614683337723053873671661496489170432042512099349885613156985848056445391374582304316742283381247822009783414353627631698463576399574616223713214554181003851990014672128798062804100019117064825504529292245352558058160766033032320372225758529705504861863714932749661370057063383532769867267367877791279616458043965239257284618878003279333387975337590839594788931650845201724618155377305320301202670483525988902914316786902630160762818356528858797503972444375904543048518200306162272328550511171386452721570523804408642476454433741800667806247649192559972827323920955005443011771357640889983537556283563390600514922719389463069255723422851458462297312254719204059546985038350194168714275690751265705302658251425580090048663519162664404136945474949885986901813175979959949056931689762951595671214473658117318021770459433427616563773355278594857010761427301699532914900422527787588224712923849269990272490357048292907709405512285435373732553675753415325206776090535353857831287008296894985028541785673962809063160859933894343596870203164822680533044622429953370895206677037420665418154641925849127588862803994132055035661680471370276960756448147933775624439464690540711735547956681217216958176089763456592417759336255465703748023948127439102675727009636914810831794246707070429458119383562144739868700795583888818359562357101672334705417078742397020755667023864952769905146929857193604902011176415251552749889448120170227001047918134822741422758276049952534396274740246403153886444494246505832210039859172026484665074605162502495845347148553876511889679082986398445195439114309164835033619773345436716399638663194206032525393972399141191709367092803284324437164362067522578393263921842937522241484472366232875520629615561691903429761531371484711567083022563435045029118782133402074646895459889249672307959498471476698317577657219602421327081091671248003174308790906816215975628473100198579884081292681920772762858356318998522348933845688276845272492990938117139515343570696919166020074418026027057559510145701848856222787410056046647026824368145383445335287492483659291246393239819906742175419677440896738908109447293000905347697950434543419653216580879388334400888169835324708647789299727232998556131474396505911583694761572160045231904348193628141852207000655468130368653192020239053763936133546771619685909545100849750333451333141664229934518127773822897272687647656437940298414064208549665573418652941178266756083996177473997504545174589966089060702067442391863793460360389102882208264926432936566869107055873175628198699896787554520690713570223586659386535551245063906897275461139885725704513281922330818669473826381221403456034366309894149921643070203384763572196716376060156876639999198095061402895966772351133645093096180836209398764634271132538682010807514853326123838435915151197444105735846695402723178226349070050725305295673393850095339586739915477308473011234992391586507019787473151327329156081454395070815837324718399885014270500770769448367372606981382289506609454836565082516172700382734308625945518090967578704779411189991925895252533020107402307534404225651320398566510407102133866027411693949438826852092714036848332313603885000233459967370294527214521376538078229009215367728498239725067568277770567137446550833046275559433443548826189160202476447598254135657946844837988713109475194748713076009502475981226312141232371503974480693338176065110134583101869580629498391493036912389932693185506548628110279655843730002370112624921214864493615873335291956349419189378800162045837297393620417559557224508376442485510668838355371282019763004976560434508343340786765689581307001367905178727131927528274096574580516797947576548547498543854882413060186314443223646623717797054856290566279005161629936180602632794237013305152535159463282822578636179418551698051002229265618275095885438963102395901388456479239852690816848761861272035467541581464142762135170793388005484018222975674721071646695771941881760336843672339612819602158515751276576661592743393116832262215818321501743783364425787046027476291316408063047719531547927961381439025030737849701067176827330728675379387322803403146604776262251780840295754292078173266124804258491716427208555262931459477076261263013790993689608759266274018013205048783877721878375102209121235013379389402741540445491997806403098941580667557977685760193357922873760410550486236210692508440134842034524377069023049138656020301272590940346641620321712344986572706465156569612126684484506710218222061797232011695141967289136197857044935351560453811886770656803281482837535934878142643811351511326198656068960808660709374667325365868711941062506588420725804322541034471775771999762960167144402702590748317914228556179769929899550748494345587407987776114277448338814882334463349897895291262531728825927501197204638886766554119487896711654500695212193944372642770977991616301212272137990862259557472772282193263885510597126333188267507698563818661883375989741929105364031233465290826226273823349220116781239379044569336510137642583543367686292335385666099443961655091018763107507327392333723239378888669264856387253386666879675527415740587574257517210291410166741356573432088404975992928367073443253493103568022855171527928436504763421851607558967498538548359235550509066916321791471353795975057834206445552349152536121148453122365626500104849759752444861827038244184083975527522734818484931345487015393415935083572669675738287819265065919577570794697781933549927210349187928119010323152737978784353325357858475969856702216192082887164424510922085559656311340464052315688607009384679774522691354656277289593194096232116689125832965060998760709141852829851847584946039091469772584068410766885541345017536893790730953207356987501556634933151072995088119895495088481599402827773267397299650753047910007081601598099675672420179749165862696386663273951660745697378707449643359370024263361287399578637221214057397580643867874533190754850262308095364413880535742418571542259424135425260401249796937681734903402467528627580944949231301363853330832306702346674228920961481794900250327130947513532634111532357530513066479094279712999076311544018869176552149920438027522875929394031145906424612085343889711826361453040978857919349022521909190961206049769836208801758763282914703947687395878896629607495589250373658917777520377259162051408938993840618249361878910466780002428363359263219392463876016998856070207524802186778298723401572478725016448207482911718035277885953466829962185422886263589726892333793538945040097001374444613127118223806685195984071704380108046843958767387997701794926325112767829131072934044107101217780058992369135844192717108256060342435151379963242110134233101152688307059592955719790124141287945950032472582360744450291054397077546853492779749237891799458863024480488577519303082454559798374369125271236119802289266441366636380733035270244646079165732489033226131869722549654259527791217295935103887355346665027312000739086780029817573115660951273323506647320119696253570025948485464248915922201288507281001251939471875339951161511765852215458299712497024547384952276551632576734555704748894426194177287612643968421246229107548933674837309685800241905914765126679484182367553434154887411003923782808632795450201842828083102126398074553253829490837253095491358829120635718607667892001021350859576010490842941933525468898254862296252954142602556583573832722358635547519114370378355837397650603876087556440551220793435591949131811450646648649661711175121063347606462954272902885734036434204345840292491334785637799028268457328366207987368545018725392780771893164592008748235457127236483818272192310389459029046962531210996743983118087953964248476143189938686574843356689635558850396117584776122169619002763731795218478288782659440413492155293483790918294636867957193838545570415165027327659370419331757672665647949510330542742564277234147534045483961235749116117802263840490286733691727153604982309861141571936609902320682017771914015403622577610543748081134171685916288190800567692751709295358045907919623970186269757352425968189453799829872259886919039919411405681020805867258379879298804766639378976603293854848222969904165200526045500105176595758332641857289312666471071722698542412338137792184564816824625947093035798390998870461745763869466694446526830455244991862124202612047352098046248439313160664778462183285225495505522682770664188359758854107112095067223154338371601066278611184602131911065808464087163123029655110275473354642654027257665804549824741862097761825996364066184633280159214276351388388484258230285754426703976910791789791088046259916183868017417157226801911066335994271740880269215161814861985166285175478654236361373249115821216664770422046710884497381550369585856655819803432886783035533817338425264649415419752811383212376685101739019226911640710286287700734743942061798038062735075102639678390259414309221760182878480910020543866925313547875674979339992468913124560245410558873319347924849862297180875010447418305894495004744882149141852992159509067653754543734262170685000451223959577759466630275526571923076143480064834833283387854197686420305571193880370657931659487442550325947182984035941383645885277245189217817688858454268133713059259184891983977323670714767745529180916045131742970325473106431212544891557021703089932992560317381132034618683710121660936989923625077961895726747909644330205662967968275328411048789820194232679349979355489606334757684915967592278859152185953018105416057650611383969668121255583397952546737781468940374141443874326005739579843844630108198325624214305558968848259941486804357708798726288788745323590906271132742945925032299130033421692837103139221782398126537283116174600912878041542367275600307616518785610420809991396136628283050014792813917031002539032694249789246836968409514395514405557989759774911481186033980475088316561711589891700745316811215253488042854473170880027477070504478940076117263048447602713377276074523048266227342837585990345935922299559384566210762607922426133026490402911183559974095290967456288750631106716670665486800394280513819602732260099086379694638210761799609457872217538755772450573263262441942011778579278117688642437029423212199107382099714219572740084702215233040705570458179697696345753927596462189534986188558447097509655345349635377863566887613011324530203265127752174465800106670937543454051032385634335353086494948149496052533552774484257723254399396321264669082139560919293865970114731542898372413184339025402055318614369899396609636697436382891758754229870341924746294183989070487919216722075304363978048486583885561724928242374215702013914733431241159611490029531710772301046981894814696910517319177784541313196315728301961399758364685893206185254195481793867181708902726187758514473382720430639161393895177052765090009077819909658033527487735278612635307340353580636462163062132926154098692620675812074441117254303659149898446572117805686387774759834374898783848951779177429220300393339397093636931522050170426879067399185239314343304268026654761997087191505199474583627568784871970607366474351172570376475145681614644091738844116463668576079048532882397838764714635883768963438591457130084699473342397481432376369334289706946421963529106650685051387022007684140830412342680455693803354745316445815343201238844680657806245901500809633902683903569875526402334892298374854064490522757839619007649018685375950021700034253362826771485264155735918034208136247944439677677291597217010295744640669865622601568721459694509490186761631376772206911820991964225704797800189229610206858515160192628958590786182867893805005200359217929170689498446229319838837950017632915334208567276521469071792328454875738446049942790590901775201546305663879299612378923779317926466978860574574572980178465777438499648748586562533143816118784730861962894423652605307193838447816316620135338973495212740332735998457380211412816580261065807837921312962727783755398374820388842020954000650220851624112183372645527666106381212004833831632835739152000209926929366824235296487991196441676002248932484782771592357381033212546419551381052752505420877803429953730380812413054719389352256974952313217380263896308956064834715283214732425456378592826262951366389123467219381320166489009099671058720582925957764572950062497813408383361407982802400976183015508262037870864299320152593736195174934427056328862513010494860515410753338783440232853560596044183959609479314780060598870116341955358257191976515493918902938790648913739983368578225298727483862140811006092913621564379065667434587350597974167304696187910357375001136653141729804047724300633418417955933186313162481326018743605549810949760363224957820231267026615343895369206749366659457595125586902586808595455424316137597936084538999925100938292887105631033120934929306421852265957451642890417005522473311935388067509178386614614101334644107879323747034394855712100368393361419711413280686058764628833711222766344074059527146572405366087459871887146730414505341083992784361779682162160081407472469462095356978187516960628316949872084983247382852804557546748350016361458334393419635237869300146714890216486466847615088195386988220631744683080354634154101464252944472742883037316356040553995093906516138700259173385727716274814913592351196446840064693755414588422950033862264690569443788474157226060919948467566839108380976013406611475424819383644121476468181654028019000436912291879266010009134823456848402034270452705750135293037851568577620003468653436255167642251015866657714279889650619825297793772934742152049405248685701467894286974539412235418742172064474321234654811863296254104842142901909665731450273322111138438582045984003814242300653889730098328826573708165705041636679122742264847824442209309760169706452034072489242128367684468277000040590851430748853940324623506304744423578705152579952292631717457859239373850639650065211260073866608226119060736143158829795690371497326435647342715082060592577324753256610039296829226635234307826491505756914085667769741515485704332064002461696598815283869770523681326896114458176553137443325495216730397885242246126010686960382578003438206428758128501222088989505137456761976211288484960456867667799960145390352576509740018624499580332181522054092005548160019914752249756271389508978529595538918847925420310004681352419302032098801025860137869989572838917582121114441773384929173245240093956840329189828007342496102545692905388007443856426212124416024094359110450095287476020491563503542938972401973533576833142582332216810876974185005216440136530872923887643455579457113427592109587036041802387275632708973159633734968059076562110734988622753473290421283039719072598310575567643949988731247566935432923116405143836274475972465153510364213762745912027266598574741168730916502713710534843021597427419825957877520628188212307413625722716158959781494737028327387264967626803132649494406168897145725195922821563483558303743630578067563822630228875826932902411261105396185603772609098018456444981014654008264036239968627465082469108065907840228738837398171099689269154682747051444462624924729733103614850642701389553223042633432772040623334427484004634330269420805268368144500684232537068597419933617159172167518069907280683801145957697214569706096094284202330734996933324600039496759435150563269582479907685505070410822290404444491936777886304224352589769358135225449608060495221198502612726683363924398678700989578424692056650950425246987174816666183443360714200399682792170037109355926659970950603585868462667646446484412615828848260763996845910059550624994869594187809924865837876196816965812620881858519292308131387629452343403671950567919759859524368016261773709386715308909724878063607003512392286521953440087694010560356198573539481131546818292338837385889867554835313213083444931633992213274714175341542579553403938264307416083106260091883101030699475018902033807758036576157096936722740504665398758075659532266090416042844679221984129836254989566829947932570283883712696541300149044699497998420686766179713780803737137646256683998486711317701201454754249649251337002684117012738299834692044681040859137985158144838240505829354447632609504721794572858123283841828437320615597584582784526555815532037407295102953658108455919016027191722760753659958223656731387634212980139366808147835649827702498698926688082999753207542518285081128646809476620006580356387308661421620901533072466711714515351601820550139399433267125076942705710185120072702192558810514490511569915775535912037300847601060730070092016396158253110449637214864855235392574865159825744108500697374900726278180091327433473700238936319919076883410859889691716164261872063550114502000047776209822205067954643697796589439872341398235363345471342164772291001909881706340796172552585179404729348682745061064821440490297683318592476975207823188410263380429991062923356762638791532569848395475555779456822013315526109839973732257164153945364629080667414027274734769873340808217940303986347282451502720277270692012349840950985296100934931198867892261554275597449400003828774372792393591851335447002466448876966169822545788814447579302218885049529653516236651114913500789507364752839897972672949154145081318002836343362161120981173711978482974460977095732493071090086150003853943868689004662307526275251111060879819890363896011616578430434034926790848244282124771399070500141784880318322920549002905225240869879030730244365717449924171105394551545090503552232729815518540739497532669599809250071123615587065038522955360478127985223225946894893824646023970087230801970829483178841160264171342683459149701654608384051544809670589445011849311420306175965885191727813516828048679356341617748422394431228820200754512640867655562373166626760799114278900824038769355588197493796145755132360636439222571990083394074141537507337150695245955179281920614089261884761878135520015081191461713357928672405499791889616196126123997913318031816470446905806234523264190315996401097535772434692559898995988465934896300060816902620586950217782675756025952108587849736786052676714638075456562997694625473737109269134060638501756544340453412932705162869418156627653313011686449564177114399892675202118962352739455964040381759181466259888984960407365281859788737706732556001012075064700356622673672185397380870422047190388968666314758815156965330004503116961438314919526861182749380263709404884472324865426718359479737464274508036642382796368061284665533761081020390181554891406154477791035897531702591219926186664558727433202166435090733684440444953981248715499304003515096957253365586928223716999009526733846816892083044685270688407612964473409006987309400769418284499342000770273246532869360362504581464162710498575860612992801223819312718778042509179477787809603677713962798586054696794906925862937071913984201211866972348334854932619881597253563640170852639262788208955607503965630111063554622910311510783371047202472551755192489508429790641337242498308979118225884634402911176198931020218637728700371910368178455127429992271851454935002699846850226328763334817626571954498834163884669821873050838549972873304670752225867653377483687955099591257039927398752190567012922666440905129567306968169230719505808206013158450295088006573394403203199445595357392896409166329657038419341681997748282636319419561746714585411808982700908179481804176465655395197849288851188992650165401625688556917682905717426309909191972113426428836448549548416446188340087602408837568877352527688131359803875635407261138513811556695043592431308490659324778336752760120454979605862224014048639919974594006863666931593908590964683494137629632807104610370298483458411726959779417753522679103236944409926308543698309448905285312304130967661786730223158131552243250459697544659930676046953636617008391724856462908307034757493621950829623468650341379990603103884149902612801038265080217646409113720011498183469697344646312449953326330292008343149185875650389795319653010171667730044863873778277325903049144529706037213347371362818993116879621222696725364957469986272071119043201676552294802961816753076097768096708224708103471006975813212496375011983000693049666708573116317516788695644385924753989551271932533870406685579825841527512260011822720640488218382433715691696933055834258810068252517665376126049160060770470975355538758577565673549767872787453225870747040494713179478365832725186614573906459038243827571921485392200495201508144609253521212941004103955258203368037708431139383709673637316160783979663860700019151902146500167812184620674134002520758943160577241512040425238850529533761202938500810374266743299798308613327462472234157176878546354134082298389669776540383023546629526841229650129243359129187553838027562149802098499646328730461023928953417580950534453936328895407152108433246858738095246539582508094469544241369807409640285625451645323960744702679345807033093018276641634020718775830948064325205300029301982821363651303055791227462300945566020613865689146226893363230241904416902599823937574547268985959251891781041764904004120310249028625361363001778816536330941940630607097991191177341178405948297382324315054277224638323207673444809606251074564533492503611375137618947660306345651807870408879207264367089493060481998656000920632998226325304171843646157897641217930017411801055037811707227819111313898786210052883913586491410442329533991155833666780111005420681794714840727171443129255862492945365623868623191101340268504623809334258647500347605389221251531738690829413664333185422622010691837915639829576634374617249450771055248543447296799546530167276146064404287641218642516677319001765807609191653281976528918029133670447924094748951141010905093498308667441798367123877819773168479557255570377845833035633606532587992270796319781800874028525021630589901510638388469840691435668079170265178728004933160564499455642145712874051639394618829514989022610889255727948420990393836589339952823526398219289367776319656728493562773778591051481236526963248500682656794796970801432734877418026211246522775164200537110683227334679563755977880141113084024024048440475120756857281599298306493519040450292790533706736997701810712584795795187813708421607698289985350827496693740189322597766646717832410404538053859309563222402742009453843578874265715299850473635869139347988559499104574411939875793169541275905816377564699211031009929737749005677587876528431089278974774910194931279331827314349493723244776592256363058294645712523551951987047053677551527537918884810365034672449081028684812377003306272970960780083816864790183484366038576887322341532191265121911907887337776736695167649372241093810924425403378454301669582907261889188141558737118013163398397694329381906766118516033999757596316301284037426439725916425772154983877802528126477913819529540299094416207754483275406989082515368926257567200044929103728220150566892550126466707373509576220951648743112059557027505162779877984789320048139637159320112389696024314863992807527597115037369614354306951213050037008482950922017532809770597016305295296725888797020824827072313839285264061896302933318665041504342825493548464501562829615271184101911396632348659341279662487934053133613508071279030617847665580714226827164253207076167996138532238958601051585121967064661854305843215000330785227603723265024043753952347426733474570983632891053221238511444898443611303045762946538339712626023464831587946376281770143616026514211786042490968352555803009945274095350394966398107296384543594304167587068702725839843847474139163723849197882237349177988003054923728615139568188711567811821518347873700500219330436179945240120456067615893210940563898206673758839539909955247118898604769680615117132008805467109305562857824402019481304698715032325913200218263520546824378336151811449832743562276061903168586515329513870528093016632776215645027923685644421494411015377663053544625532329117853272748798620474633426063239868602467048360803563167599009530910308287731770841234937317071781992771058162698517987061021298582458688074878581799851595359300885762142624771827830888638643799226582328837817123956817466976371379720072252795629544821472042324657257866666805192549325792900585839996449668181156377776642182947251542855623166786073736808568252287657496379552952104943687588555569227782774879413993682205236199191088357600866772536264940665002924309146898210420054382742774849017705260575914878410928730259431518801972513088720590415501406646490176692134311177701602062754854466069207372906180309878260944765711986518448126967901669031669113381241579513759490644482993100277510455212933247666346341133840613490035399315084645276537932183428269158390499725880622482062331948464063039957764389393128734298080500012643107437234738190863321821675142179168676261578424964114866644901133509435579676770919666898089509152114162101886374499548322732153102058069260511703077759254537638272424894161835936469652964776499622537511368332105788298541488387204209366417664042489869690121928802936566453112592718264078087273417608724934852953462598018093040059087705142404826535556883313740170649484670346089601099470222231198330255485718114739694266939292334725757599567235038936490877521189506852089863730924429437723780490129764402148441415338318084676978001986078530487026142892923247413495446884641874045370019670082721165031027124876163540483010774472195117057500445094712214535114986877808825102636499824873727632871313758781064762367011066987683356365179967954915037191932104878055533913085176281103600816357679463985083263991468409278628026894357059741825583843561929613159536547678197878027518320886150955125082077559638489590476544329241222076190304557912324064012304176156320957756546249364328484642736918832136950379338737331531656057605134496579171555532235648950043332069475970537811045973540296664381787231141958636344993766456694850936806354281663023443869670107366936920935753969739321858042768625629662390449851955397027470171901262370472524864417745695896634328791094792006455109975692789449101347396090805059600125776318230196581969985675410030675573185385150645388749477096588981937465327673108165378120142748447025217122136212914891213793608522920154884844035603523716773342433831566526248493320034480017890815531601816922885936223888279887216936914102245342128343124191427372827537304984238567685913517474866863725150983746785073319782682698792891521564223083032073625429860478558941194128770036762477139447497305325084556921276584499381084151000149625205442745895262331761443979369319480482231168774583796608051206978802016043369243762029656192352120193617664635396532724354606130446670246566635703208538426312592260833708340884059473259912630677907794442169429277873771649705798653597235386044230805887695026616590617318792728264260468450082908627449888108737703349353340212730329184058897845758549436847029390183283461132966737460939431008885769315727846542950102643859442433549603240719731127189032103562238366174821749093521276108322768774039306881957545815995645646822731603058030529218746773228914609176304716684046768101798376942097721984068599353898823501646617724275557148656131781646894100449351220565313753209634916115507455073612004527503835735622423969820930781823306376531853995998425482477279254986456519914650078814311550310839115107815668633008423150190903999407945041693735020519225786965719138979031438942867018566390440877078678558663460990083438960701898944911524070232827417827990357466407960235901584765148688622573134276059161107981550131266307976940912997451502995522471090795021457389687151043307250272674184043079222402006138700771168447510645719359379900206940803401230057377081271702190187220972943527649860546969790031246220752718893485129513910348701348484981652756727319083376616885906556691732930013928475894317803452877749599462266846441036315864350831915372722810334079840954752857276983586061249529600289398979628503525110985042599400577181147835429613669186401717356970119258268736511878161753503227598854013460448095980052589206480523824183404451574726541559688364564375361211139782701031322771760021772942874174182018576695964324707466354578027874545816145869042631427039693783301076942411831803921779607127463209137915538387024020696681017031876645321821227000248874472657574988600981235597718287763917145494804908550856277528107530306604045488537040989102761214934942471132960835987372900889157668617218987588177151627885716959278685162292122205704859473166961405363089252975422295594828402388516116594905350714746375566899924914126445410289458202055981815309166639568394889504434436333447857954010047026555072496427337509754827300861608130780392011012671933725116426336635069253003715004173146362980152575909584309255632779101057041848773208170049446697806080704682491166786007140383160624413940921179734366837464701930122113482008756345643224184069082935209633139586955214359936863244395065348187744578821478827120571160388731782066187029606220761239044509232335589127492985619658669984672535848257074103283931454436034705814036319835895363760205744177168896649971312979369605816768877828911295278054621469207731542032504375918717821687549143153062726872329209773628670291393246919585576082413384789093989557750318163389551350455088790610824843737363650472736542256118919599472118502912263323679840474341525035228621957115896113449401381525141677099198649315297471172977495637928486135282415106132183853261990266651393420366743106423164952891846812556063832300581863209663641097841552767260550922883081341486752709365223471601464052486248145828828208564797769784357201183585888987731307573364637087354253609978460913854702634270933434804402367800204739262834508323455818304538865084719586572658595511215483960856353839882376813145754067060507109540674457119533709134189237542116820442972608921017313842226760309544781759903871945918650143440334803813840992965866806990656552467024374273838786608548316937488273835924793711667217148363309806243524431136132490704822362607776664902580983532600341355502048361948618965892535533806747171596213166882487924506709714177163698140305663873765228021768334581783568349008499288283465399829058299311854949111589829899065329660792755398888184192426358280136864709434522163145192753011158570546944214881382629634009689583722155492533942510543560680696109782952601119111966686309724494432548478588352902193770645961648804614924228838145553430726135861050351903557856557109306651533581888532785731491113705257334706883564099367085546783743317860040122583480674843326018440702082320128480513498936573082804223626430054650869775489256776248440847904893216369671427199637910395618019011549926674261429346027302063085218926739150003424512394618797176011012416002429432674427205435932529828772223158462853595475713325366720620364893861974226242146832588691417514322792134235872416443184725247879893437538761447853807341453757790373446599650871908573735325233362127323799411493145890390785092276913705857794061482123434826305975126190276977295234275977214713117890876591280625156020804252385692616988187350961098886252676494094425552475698441396638653494372281850283127233718836950186737758185944857761715697204307535647680704461957244887440276756280107261384194793309602651680766118064752688280031395337188190059591388622609424928998922456922411622572525255317948971964686981840394187492153247551723523053693212271590691053907276492270347684816153992285260126783761113061306908035603615111226570056238442992036344735307765654767504520268375323052920011011163150770744445904195500068582110772993934540563508400990347233067018908363090084962278776047812589025849029571849081247754889991638175986838615861676235107390382256044216178673305014048288528130437406543511016978432987166990891075668381843432142611386775066860343749114487507571506404566881821052270120416617226091712327497253759396397372789452523007966435189599177448905638343348611534641873118872240196203297491007514519645702491991513118765392243622108873227653618306020891270063332585921792706346084386984363019138734783402031177897269371266756817161045626395622663244379639116240249091834200540870000149832083046606639237902584309861016940895076769362389543504716061529041533296509334563212428763504252733449657336583485096356764505695184407060332421307336408789274794167216939732932553104062069870424363051887605177460079876786066667683368684253544031076763112106924492935543351575657446443063389996149429069664681867165233129592535956325113606626030319714853987930059022689974403038753487688552136270064723950389371485354203165468412715729962029569234168334027421507838308405622161870096866572746251645686681747190554334831661314170779740097659155959155705958688313822310918919546955762595556154994669756248927501284819514211064087703599238584534432503857902603421984856783593439317952803016587024080254813005099707481867783215077972540631680253194480158925654227750602500357721182142896754589010864669792459227023893878888063730671533893906852733362071236954625938340774309038536585979798085876030279678353879751513890110048010228606964558403284114629141790292067321422631664471321043503809815674133042638065888435179257096704090790220095521015282656377655576348960192312082739768015000253598959222503329862429065942299021366184708261382841309033625457765169691401108387878887160477301614063129194391948372384008710749636641421116763349244555980346141511961766479122944781018860387778645051743912669372449598989155187904631992618343867059078408626046640697440886766528479449398865067117223290423046832965036497342738490431261649619761892330813668175001671379974863377043075794571637853623386731629566263938472108865671744818757997530191415575819481267328369304327247128105022902988248893110871596744767874994970122413602334666614051847277856869495009531483795072871520023537722247639912181542027179851271029994454481021502501946901759397199913784654781037481472774232534936691743158571962985835351631750325245670571184089502533675123292465721038514689342113876002617024584514541529499486343450533959518060478336123779626559356210554663250484657604198230000628200166228233053827121397890933092050913184439313788163079191107761266600037702210363947791706842308268730507928086200524236361037683821858841897801749705444201679409806593503341140900711305296446954614215648958497637255164847261807832783658148398847800767597870858201768878098484788475089996824129541232459503680071664077673877277814356961142996646976367947055758628494630476982718163069966325339254679062112536287639395629039082984920376548165936733588544314013758641287905234887575892793458199865119443679142887419085424046270345962916894249833745765401504422151742859685297966912078779374529648778919547056414091256290594769116928291655233054693246175815294692610162451739353516294945628721332994558812036790419981842429210748577934606837856400413394801323005927120353435255046009741145007202622046771121386296843068897315147709990490754375724125397391374529801364934216966324972893690728822298254588645513536900791997523176226743528525150797027041130054714345232647576855785388500332945599019219823967273359791709267875514455721690763108577715550960035527321833870305535432248051948788891285018738953344601565116942787105677552240785248420262319205004696836701971361641255893417198850324402854534140515368799673287701894845529122194623483150886227437052062666806648138658070123413183295461444241519835509802091305801536371426774706938500131072331048968868856451121836606963820246311687887969545545989741807138365886756100606748902887366608151943518095125694742712226435398858130308500726689587261593357638219786817777388314794054595804898359656139925391282564133280472377553824199094849786234866871193877010404053754477762607316160340866366505941358630084875829539440184086663247129991302173650180838366042690500474896768746487623450617560248012482843225682635910076792307696623468210385489151056077149852169370403247933995297259661046854665218221193659637455197333758344484878012907671575195289962176529808091428155255770242978941999536756962262960089804249397186124169084330884898276371396879870744602023098170943573725307198409366942795026079979868197049913751670622526040075882934570426509184042405800013606211425165124133447645790541826577336964564656797303811393071438726142823621001952460697606758848374658122788665589237171273581640508547376191182693214614244678248140002367321127672133819727998928486007507191381980617459387015625462547549205157798208185873120087304347694571199209361028199261557242757765991535784257030403127953558304673923010677877059214164056044925284672655398812186442218863038443912011283413866150684742214280332369780876815112646384523427647670441097994625294262634123976635789458825103955708380461005562062087768799621893281196164819696449197139979913139424017272451681513463829064298997058456888925613524326643553021553984175172970993781465009878136738130778444228120764679954399284053599292815719707076904959477510486191702724147758149196597338657653355582163600263443009794064186437847308729838486627194751674488858786876985338782317803610229066486097311806820896193648156626361950472850638490299720388240183551326326030088448014202506005031580902835697454834461941792678623279225336304047976902498453096135842525286031282756173110157187642426291835517278972919917295066202073295794165450744635919889761555626271733061073816592659837734098764364994326882398694989784778176497957162254732045592176158303449820795819468037450289968692770128061339876036289646501948702519507980105650090592509783814410706094633138154120163401922492351710933423545420738645455052497701248104194903688807996606636671786380448945314591746307497175460580592084576888248948602610031783376248553870069532661275110510515295215577207996767790537783882746359928832729888132600728459327788563816775341722823952199899863170150185767174482907568852681432875110443377578442007228301259433494872993234026992182287804653314324037582633924996038915582427847567767709233367897417542818259355146095108484215534802699293117550315606001146317499565967181874106404995902622126202988496292867746308778112484595403577788509286411154968461847093275717222613273156904910328544069199182949885378786513503873109586633335258096796288545536537411516418408526283678557707350918686768887871015444321385471055704123024454916190379029991247868596328428234571164228637475532383579826660588588634805033649141060247076104983909969012233016509491150328656701945091240830075654862110375012122171036833377685809530130268456096478912173771442016964886479411235182635344341285614804140583904490754922009012419741339591809758364923853015272901378647111246357946417286264028959487170759970096200820980542698131144696870261117394103660305252776786379306803863637217415468075635114908237524055427020872382523932274817275802190909980855209861503280673698384206721281858014583233650744941579784830974424831013525751895354015273850469347672847656047375099585069631463110914445097532819637401395327469890213763080498503724482269064348506137387015508875061523444581525826507651137272126302541082214218123202844643797004184524631616243249277142777494266877502455237707945670356506829812763593567022273688910884776581461715178177257707159908221082102339856016604637675919051459372470298035050627771112870583130620080803933288662664840700863981562355857815705389641664378419855495936362278269595825848768966403996665988992060296268919742997524294872098056343980799219469709159365875402998467222701270670677029024420777665608400536520987844714669771798820181919079401795849446275618593071724141935575167393931485350870371258130322826439491593443506973047867825788759799402772821110161931660139967090611172524064564015512808977578614066366243209676629092124367323419682776169364168150427669114159565391668910190362650069750561773546518810207653076424276156609464559744885348611591803204415241964688859052267772963065239686599755000192702220091291426661447608952600795785315129596406971102377906229901614619035628800308188257362237501611986123074658422539740621026402887445095280029717178754346452362963427710826372943976538196415857281601299721623681149003658708147665146538086887212065963612693554850785128744213412091431454407557376625357794467886548286886721109752382032652619116812182984680907226043667247592986396163915996425704179862867934499280708436667557957158564390038418879234789863513689440607511130619746521817089695429069539422645219927394076114035862072887351841692804922330787951132521112538159510849359380860104957745470864124234484306898507313283523186116736468174731322905430355976427648115139363576562724527663690831514123526700878555519245754157608742190775133955615477880597039622600201519781908021816286668802110618981055689503993338235783218951064092723097118803026663636951051345261299666179762639296427186828662931359102130085723912809555959146963886992252866817687913371772638953054372700458155369182959536274701410276714582355970757577885832486773505490016948120810734539903693864738926343442348235187177830030370871885124064831143075882428958581394784228108399142597775167276923018275281831897731765137550005560777978940458249957664809122616402133857223451796326461004468418048882927920244357233104674956836866572776953751765955198804479575757502009129139122378971779425015241021064300067808482310685461926001058238924729940580929397797605515624562586143379627642943256315318396988386652238482895638980230237684400852263192479016371438714862912316173122638710893571005350221047954418426652871340051871224231140723180387121505230694507178100311036920488601408176967793161743965457857280986490346927185845933578779489506803474931275204006717933804819927626064224480514729752873344731787329928189437176527435631517040005304337685897918346475776247315017903373939878055333125717267299058481151096838722487638548918071847477764856458194641837381240177930736034312909407133598623777151360945410736327283109466949608067784923068573742698738888302429183435592829607740217999622112388010829658701491350331941647110698461389636541551154655602308888897277352116729423696707621328043188070410951313615250682273587950247262278699746070153921216656906288757867717900824671301545611283765030866265087212724565559025425769201420019242888328107103601322679939051397545633828234329484266775717463911516409108149705874975582433792693347950854728643123383301941421198753567587079824112615651504145137323018422446499480752769101425892388081605232939904533024974743619330491543165642017620918714593875090037644985884669927935472640538861724340883952549513292141779142767754468871519573770953687014948542555863546492314580806706711563445372467919281718572354601295482029188305051567752290439748954980235804986684067649817454095583500144123881530470897881962395323706387523684969618922582595755943944622769559127611492069394474128742768072922318710396047088842815728812437305956692889044041610993602693852392988404231876396197529222763438779165458149272771776420480789313599064159328878060105593449423810269507498473965985807464241983908451578569446340391987140546151098989750985988740115111504402913608585846110496923582790164283725802258064700448285555656106103491233222242362126043698681487692926873587992566294542349899232720709067246699105354195356238370013928641972382029772175752549231408436671331698421515948763588054910591509946173252634273972667690188537313546282738163125167253430161468934066698806185566912093382054642533805048192159455832216351555192710997989394734411622990538625127946292231696354803696623657839450474592675768204405371809369398055268981554785988969636547784744232134211366504426334117070512479845031089279526968821851977456570120086150940748579695529459628212523922282007578045765462041828670784942447995346276950704804836479911098603183607352364625111866134579510739878476625404767118917002181064440028917887270815586273493174933919778022583951753928341931512528739305610616859323638476369222396550346227249920934501597635808749770463098409098599103676146921331284300283218057143447591057866356099579308083576065218999991457403751666131264602612819204829555794112142127170379049894974297540430365915512174655339523443712795399531620607517943709182426712602847577139051979910315922976993790332326414083176137812107306651052553560934317688887610143392457049619414433302065721097026218191632873142542198507097289286751441083575922142075721993784644417343792796625226769861539307269466539039870905744966004664527458038236485832220311463916888185143714354589834440338797888954745555795751066122352230917436613107236127149504773807399970991923495371281255541045205973978758032087894087624176440390875204644009327447838709514947998487843591570649897777356977234234545990925166373687613660041720533650911353377287536149612139510926325752727100822989379610481397556428679753225000381657509436856481240848384354423438342741085410204452192346248839997458989358990492164682568434258214510928610842206716181627108041744395296172369285669753816659318239223935934880577986983877727029268788076217285209241528183794941920609888514145804787917027538282332781403322236413419273708291324916440035746317372594628557508083937964460702983484017172229129895933791897296419339213974575809445549739571600819206112394784456441591137108016086752758827904292276348765840812242216592185578316820164681690871325814808216582083659545839598960909525154154734293617077109269768223256160847655845854068157131087693353857641541429212223683293122501673732730146388056224610282752741128178827417773659392991785592152750064176201008918173598499378556603836944745262459038213074227642305081750603805827628802168107341511520383353443359625029269274316397759388415919063085387317561262242807514569321151273623516500973601656193243719186425141662945954394509151721665650697519575781195999968704202680637067588191533920306075465615216055262902204410145108447439815701221841422832347409884036005755588980702692220294278991940868554636980449622259429957012534209780184002500321629376750239473859281910826054589277975223188832917696741336941403297421013885483065570491914336081770714935648883130479646143338177805053592910425769604227149029279996366892903032402937990524746142223670103290657180354953618521822092961139213025147545781630659355403924532878014361384752040754861925151321934551001510486929215749939249156958889491100740592018672490265401221730803960810631009444163411289436279700649533698320215558856611163804381887043464403728740690033288635856419821321730400671303567218178988959351195182346142618728195061446547245399179299656311028105906040900989368410085082412365640502453897301035372045813296164411188572776493224109319797606831641171314329780113054752358760867427976145085170681477327625445660946109507349767394129948535205024757181082188727798421937687135185158894400847888702551693620445465922440567058555615105107963562020301447349991430308703197736983786490981432272087383855266787419689415760970776051201799720082739593048456895537086438437295738008662523053967676898983681822937668108550070129129332535779896156349511912144062713711037140489694380589576631549774687323276748318217508568080993669278218702963485258282995252775686194382727547160362821434085171181191762518189504837762680177463615016900560973323923048627087008664843035252845868146050542889101893186855297788637738225283597416966523694027280542136428003760154356515906657210232586672702361693759671821086394634722716117804337890419544283307906118943172878454849227678377216249583448339560877783795752685936057509283962734712003299601594053062133613592229526118965583057609960017398853747705479925353072179800902525737328336861763730492178792445168239459473545934796006464342961115643408632727678597284817110072409602470678437758578754711247726121643658190527583102324091494428824197756805613651070902952683330961792616124854948702746819362662053302496732662629814894767136765125831072794031513209787910215735503587154513299664699039302300666706958197676272519455262986547123711588055888093859047625256697242034323076066717700856868715819084927055590822845377278666762798136237267514510741655128066058820371034533207528445518091132324052472174304443121189278056599234066479796895910777339216692315240237043127243562358940531644860310121408191971258319965989486531919028300529601783766452628098220391291766863790615308211040727849309989733921954641280664854129804325222017061142649155625939021844044015306845913406205673798975955619844497268295515965662195667207408605978591446010759557831238984172146519441635234113668477888055536696778020903468906395362848054549065766883567257446932530547353084641267691227946201598487988791078337831034483093891623227558923283022148210592346435289631967264410204598072352643157868935155691516889685547367989578273903103971835556530186791407936943087711570172397155072753630701095967352965856864965454368401709427481282133927863430701474066227219432218023176514684746130650943838906971206332591446634456225395604076100839489900183243945204678462670656608839828935929677668887192784545285227107773370878100151256550768310695279998025193214427038962244954731196835045569737282992197559005630931826713924245051694215867459527495296004206877086422549856490009076037322805653387152705495624361548781764095436763033518339255766444460751633986740137958228281277679577602661908206763201890343952722574627797374255667371059071839883468145779734036748929113492514954780016050388797672161082501330257402552921550827474999683277029419599580784468737450186238687221506020139170565734292711002982738006676648917265810678155367205527556656792434931411118409490114151476987777304866385133243370215275746396735018682725234706400445211042973307313454914675640199501692448723179106023635366202766225995542190722669669178202617176639120114117683345970311575907473407593046814543538596136237585849261835883607161075135670599179073238064202711607026011025197452166939534687525710077820664289344984176159661423408619917022042959479780139149848891386577443788306761990079364862942702760327333964018406110541976400842052277288904948765671496573337233088524015435833864956230398261872821454068176198748231608660288088372162677730311396827936830512629802118431206682516886845333850363311532592415604709931550170392656533207466521797784954408059966362785688142972387077074788275652003406232684659502979891396615114584508746157682755203505569664974233964354146221230919296975490575136122064838868258665735468585761986087171359484317940631374378298430609407987704777056800020513339071227787841814644480840342593241304872798172947828305563227684472222730750797296938911544172571378000400750694563518717611042108744615302389805941715078305993740669773954040769550500884729732393889815621562109619130928017610706574664653522125374445030907108260408472323648368031808610635717592682781857746552399493516297295969219447780269184613532644089578687196496720395249505903087941303782518340965107729167338489897953215654666111474170895027977743412880238356417026169530357274765805915741431782595095202597137167198975296600173966261176616832649808101372060214317097650850278275951726136688421874918848741302664280289154697184150328343590962689374577506842775431477680097267955163575361685435155369498784776402290495126120939610826623164412184488990497578084086218530357164979493354260320640408265820617330259695881952623356575641957217017256821108663679362248577101318231120356635287422728708822449830568121381505410929251674623720259663792560859526509637196630984021277934325903144848597765385407369784904240941762317293711216321990538158098031074446337387787756049791922197466696748053367785460091741143795993859057623177927948935491806425018875068280132985912213147878814601911360272991805073817527102701322993895632922615670328147520295193231105279331651532448885042548943929247729213500297131823619548556611027510963331161727349785470691308696822137607973315417660434783011827185386251385791282091388201847591948731007647909435246593501522356679837545961047287167040354219562660213722226083916992479872230929474521401291152352808992874848678510358409044096270362435925995440786986097517429484138835708245922613019971376006935699094191297300325112676685198317357048261139873856476137596224309669254093039342987024466213298659178353026559739739524335215809612249371167904688871035731855626906276347173452572162706127627418895804454022622800849669909347020824581858099793898310410514336227211148323205595032897709837157008283072517693094141010476915541503161986487554303074155909397722198411404789608585179363571577516412401887432400176691392681918716036735799755628236173773288026664615055116015384391261117601723425349524702644538543751490739652062250182572818365941410949777819244151130160121383173374255875052094317384744897795366266180923997866601296984947943473318600462064180272904076832251630351089992493731130658505854910215789939089622023200755285751216823359343463385961958029410641658460580464211789885464225024581110961850430126458232636387296174630438928630255167933759782776500093222272754944959870941418987786556414511684521118459699129202480314917549243321178738749739549302971398407555554492218243449001840062554557654501784184425157605328943648079151443000149873783934540989330643687873437288206944779175918845439910429665248844174336695915252268611684131312562827795224080506180030671915345140593042196921868273107187020464208628564539331652080071878785981717684725415693644939291434166274550824230147788424328042641646136021373471381907355785972784738539763542073197075236494185610974964022345202958131344565488520082803346709894527685101294184383312579726432815729617968033749058715293255275502159079403866120388286018624656303007904112177241751240927291060263007362179956077993440969359688819261567413698015576197432913265843921276836667701078694816886485506327111635063680972737538143618731950611231704286358239999317177662209198063255831741627997582221903424387559422558970392725125317182368197567400923597289227503542131790634470973656066580666112535145705344671016585690203192331468421628176291452021791221972990985618731496477886650491620888415321670753047250015883885076487778096069053864373190569127686555790767114882713643331606297129547172042743272668612221336663870431663962002474828215683098513088966531739869262120256929726085719207062554671285337489723679613849438320373413720986455817029492545220139869384841547392016755124337496332065914987116050497973221695997424104469184970354097239974953685043716239329431682220050011184513384657010216490539851921239284699202206633134812151361110390651618275343945344975713376279586014272707440079101077690311729436482465296735948147978451757702025479763949036196798998344528163292388246528425389309487814422303222057649566786253943369460531185420982670627598018333025546896869216741071748099785132334836992503059560997477304902208753838208862009889392541236389217809775080485309341841056972904193883014214170372582509456101586196524859750158006284095143400936202949821449948600744850568870433060452971469581617940095258797581930950315118075824452161931944697167716660504456470857854246059751037166763221497378581933736778986709032094957104729980435093360822965386250696958858272512352179309069815430214018734093931373721766934858912620395196554648027807915862700844860024028942203027179886865552592959964740916202731768904621306000874223109382775224558351595253945989376691530692748974480901944240235981410300706857629737581293048571181797588005623809162320436154228648225065978314764389775862857286281306447159654447445993508014768588544040778785387380630066988100122783242532730456093937441370124785193680109404947822818167556361533351785577794979643560305928504345063348791406017000076763436893555615892510299285269258341524734445270786927208304151785725784344256724760924292992574193831016412007151430405906344920871553914276914655660010787030073848525011136335717161872310513663865366924191903661148208959337508258751947578495934189938374492815140975881284649777892087479375162681120412801586343087897630834180726464466265083878982135188327912148203856651966508932312752879745111614079426405936710866266531712102929497920043301417536430028150318524183043418093933447255756227071088619104637658513108307724336543664191140528459198007672797226356616288916261440675804547629244825071891058903799332676799686814459437269193421932646995380134796357871261726262460461002995461276153282087139957185795172999243895806273487171170487417005162064622002853390967112098582082894822765825549879254386335409943101016133811196644984595108218876569960777499784254799308302758747096986817554376439687256178808110796408235977659361309192739393056765335514089915146503949121714674628893026519891340389406970384426788935688023368681047539169419637413323648460764961514047684325871589305412377649493560904509328680774123514413897722553600766976988698562180288312297671376337304214765843006776945780613956500883591071457851079149235888631942547605444906970017606033874135280931668338247126395122841490381630692176807464415814980596964255900361105396919887943271920912887401284591934563708243602279709809808059951125256551821568887105988175804081233198950783326967579078831495457830341111190582837907749207717587964614085184828603211810221659361756192459578303932176590599054230982897437070472336005460317942200382213468630892568333407440113007000708540390920592281079902164430660343633714706150467230668574330162777935947540621955652006046790388806793225267287472062408993928068045505055850527783321007608566366948748206059228928963056722922565320150975904343060220590750730481719469398057373288852010605938127864882286447679663912119845338691253190483208061808676628702330545806632648432955201796763914984311916670189745689112687730584866624543770899648372605133384641402437983031581332267127617517162322925020466140494147134659627252550943469424583710291855125005287234218581697404448246316266498923829115172972183019898778549716646639217281453760880570062411437046060539536186650019397134588975573482120765173165633767726583936776591918762405884915443583375535456830454197561533015454922261493910151260739432360094169652636626851034559858955444198139800960747558703889379249103963924254874968331778055438429627530360757319461732847674738947319871607919551668587545618092456190786789061846979570089704129144301297471031957008397636706594070708766942279439941152200933561833243317541110949462458452578885468405657950177949593049080004156861718177906671472751758534264975247942241487019196262226962981740435690181864833772536893090983652512330665312491089928101767716983128476072160231025304991441973582507612300221719847587132171755013945327119354688337086928738074374356531652121676172242866034737316098500458649295218000681424587778135345791922760858984657079439864425645298418382417608966737264524568515279033309205422780237009026861076812592865725101898431200034129712763208529350151099330821774094619326290433498117276945284091437000261036829625883746880102578870366757369352553983654805546912116766542870339884650670034490390940799050641692498322566948522413616333439723099977332075974307197705664299732258547920629546339322176520337490899880748100874953923437217265351319917095802550366339707600633163580470534942402134417801113175886671998456653057509194331306055706979894664371952696790383880044230153512150732013969059992214172537956892952805594187729799679625818267959415318876075098746872625518321799396280984076599536653637664194755934582225091359818115915287309051361640364789582096261085692019873799185748325110929195907634808890397073934222910699377298202608568915840137148114826929641251441270902963141465218208553348718938358291925702151218378609491932433170169244820578747042873974614484881716922219159703748869334166844160449764103656196959126214599760837968337297228455023166242938248984621232671440290274988397165513332659634096998892610708102165395173140202902204209956740324400810738553181311719736126306497867599422987517039614803156607156590809246338113970759567542471768148993250909651352117502495169122522929786709376019731131945229331972235359828639401199147345488992475572262078527291935121853084720570494014497651000057747799472013409010069899862770906085534355165313540756078856711951346451705593065128421766221166693183881093179134155083914523443911342852774493438715031675549612918628236493810830557066021529370378290512143614249713178420708923090422154912990348450977494505688491879340282755097778097826096987670536505859819494779608548620184457852751588652868959680147239223489141779533226840863485853183870197950944474749102597613377053454930221436543458622069092398208497149750066882721266706729122610603459668690519445033441626228469408899430039848872170993625168375683211186486654152599610316002180126995769857397616738021453230490062035587563580694036480840202194308971460674018372755966845855036989966508681368971941067634982329378131270274633411845741855786617601575019899729516882505966045546391234972465433383345732014339663137448254381165794635587855021098169228865309220754702981922739764302742734344193295103355884657948538942149813010099399547524393570971159885433571374667293218310225447106769325067609674364296927233935279972131372615112900113714652177032971694721481929467764363057641986310483103083707594472307510412171362561843577412393738969206730568981630217451825607480130681054962953226673473282287446947465287335098564100801499987859343539947072935078608124881639313867765149939962882846324271469906331723158940254474583265585933579858284438749535320488479227864434394606623842970579423784528003381901222390387793681831891313557023083677382518442822862224521819830057177808828234174921581116456427947595892288916749461663822724555453113568543117778301265293578384656038275601261257472484734397489228562515908176178180193806664996939391777540147668121512363891620148370591694537024712487807863748916387247836985379986136534529891195744029109297666819014762509965465067724843683586945847424645155048199019668253466839930867860573098604077694400889440808895215686063473931699007948042197335283088766288605849584464695407061902802459199766836500261991969882673390939141544601799313143778376012391265560458356443238726196459030017063457658737513241101192446018305712225693131802445470590686198539777808365815404547680500100624759507309180151718731535133950994590142708107556792988908873030145020516578783448780228390083514809860473671156754744679540232197321024643019294588968123318330286776248483395831639569831161985654935308991094944422520681197967138604492475877758724409922079629260003474067671712688782651932441901269888986349050684544082165547598982565334327496645485314902515408935537726687595424145977757743153092997552887305243628148608434947292242177733113149329035998722992038902568293562807771285740799345824526918079093002486868554542046346022693745170502950908740774672723937476888852075367612368181862813825144546083500012747829834391550733944133125468557630799562555158449562474033320942147866289660067412095232194391015544824972889865495597590074430835486911615467557192778408228366727339530390807567874756809942636951613086581423215670730094352041444337498064344996393206673958867162375862888142128071066603048115408283213189787484589471911954332377437990365725192442540485857974842632196429935591046361668766517571680015375057630566750853488226417138471138807081876420751883807743724442029534252016005880373373121426603188848377987614678941650313362507128818613621137176740664615514509786300581102013417973641022313701465704188403570521713091668721695040444067811682765429480811836665153463675352351929362678474232822940987491486898972719300384004349853844643968060771944310233971380297140383043154852306551044715900066838068574014084684569227479459531875328937592427892826740066488009866173385637780690686428426454478340963477249940282791661790189932072831395745479245515013492055796023041450094515381650340385978472609573597611276621076333550825345062866506803770240511125758257217473866424476557061878894749964957741563347037590976644122431821276532059719835889572953780187421497592324184898435116997148415237911991466663521658606637464705471170958209393339114578762132818282459882439578760850010252564442434963485987558220488752694330631465107244349274529484447127596026024650569611943349912867547792602456314805272426664010268934890414740908125965241458818188126050942153317245384054959583571772317663261147154689411814153327537547609202342945949745863111085473387258886224059003971285298485195733539872104732329769287831428910629955574468957397219131557192168017777962510629803663810150200799175030209436272385861728171317326176073940519467585337980019615150231424562604739219192684482361989274347728710352682809669965689785356373520687345885878508198433128196823937202725829852193954523216593422269713239534264785670541988787619286811438953631786734706633783314644566896160486647749777884109021452299216423486177715518420471883934856125594551109508398805844434706965524185561186354951766586522513516486832203142341948586747928840401836779733449231557529981395454968567744482794674995072238001649311826373592490295239920324106739049332402604288803764219961928220864152856453976659123185175948502435961552589503477374552000327027152786006701848290139687281759178238177011088107921829602184986486983352171233377167401451684680837756688092470148916401713773141484778603655464121398273118690748101760022931858268153719747716321203617631377942058648873704232282394293616760240079132208501186703634057795614938699139862204796628244422258782735589838822197790685999996705370961681640303491095110941775342870433251262597878832552454534176236134238237759058696298235423081560771802604041272079841800156782443503629040003268096825308995795646176039706993625907387336408313651766637569538941676781000705799106196218409963046324169273574172340840068035081139585664845997480607430315837856329318701683049637884956608632297528040476796883681641683654713848120671363398204581968996307705826242731015308133393767041979113794102972511482714838313860955088268638473298140221537925391536561926939402036921480536804752578862083468744391190616063455302506884114761932109496754256321409752646211094599359591320351270060622066177783147770542576216169769918601457558898135089749691557653657614272166936790535591422199880268507177369750224258290287292188014401949149115600435640719061412263393838043811135106520521623999795210025857589028393128687881322558548194139087420428604527848280407702355227897840448108630181700044169572430530643603485484341144697418511229496766782147225573019109054150624311368239844142638853184902427075441796128066949771370566430530611162130501770144150421502899443202278165611746741238101971731169243224032534389902916998611090581045822854834479887448966055986791989289214933183796506004115709769016824440432220635925607059151376665843280886450287206175494078850901110285909627781072980908538119346881743520930866198755842807721745445350135800931875776279198685734586658754366738573719213114431225419802649146173860339339649780713419323188769768566724849877930483320257465092165977817510400579823571772938840119540019408574347325474974824159124014123976126724866290730147407609161321224930920262036580550045010200682728029214644054031150750729440413277810861648870367353184592048861675069196006147973234776183872203565023745135677145778196331544497256149240748973889311735261622932795312674994148058064173040405885943746495951531381633061864850378136383549533278581823343947110773324194246098871430477400215722722006721539575523735014798574095933408557086576191330643480883416046946405152158027590426173685678948263310842069973253368299273411221335430943976922795357789778062618313673557482262101942689397059065391386695837438956537444696555222874646726440003374501841306451187634603468574589219010995372089951819243514859365323522565083952524207032279104669159861611881440172139488702074385481888998135165861341005250527587836219601459789318835711270337206555059653682969579346163791914391286278546650822493334150295019307571705424807805507336738258505646730461653530822315666764397519132290358185035371676273225734245743004886910198525284388746226259764897694014196518312955805681017294450932385446108963467524740249991811612206977319122222671753392042387087567757504738172962110101458440343005861345121141275681917668924791256991932882034065462803369548038251056707143716719582369414151539074174770200794113596051624981605658202293430103033973346041034961557287708791803642819892579232253380264293057828131287637490710414866448051865922087667716447279373899444358342324339350683579918507604127604705592336666727947858970560374100487911706933680348434966238168436074746404514254268443177359749893762990931071030464478055507762880073215202320490740193228274924853488740201021671726358531774665794776839537815592012025755067845599936115296744689887781452561863477991831058353804153175528554242728763273215252896146269199282136277918563650210986380036993044119764888145654375775957742181483988372240509266758530289574701572594647208108652259096715514273314658318729253510603000393576805073352691358393855538466601930133165436764664490990166296291413654110785545748293374958754116741808546013276647367757897133506148571437413368879853332906018458996066660467015527502553684359436335321552402359141175805428227763510476400867374654351493330737329003594815260029544658648624407185389603445018852770973728153125710663042262533114203072357832664931777266774802307540466654964284159197798946048647792027478515280975826412742748880434467026417571099074612260326812286655773981857535102385729394875993768717105114251178966831296965738131984342520617933031071875279663584303212338780529096577981986064113659391066256294640730395878449220682202546129043624823544515578737679748642296894726966074908554154550308159374187886961022229367969782093432153100620001825563438433550424360406007834413722518510273455621966029685791791498479641294926213322962188651244859439574294924780839387296055351703611595893073841158437267333517565846675213293405437308961498575813400893113416058519837292913140098658403769960991167250087031296515551086200911069783100167700814931330682573528646522929235870211045111786627276782983163093989256870579127489811520101679454286639707071068088555999566531303971857312352989805423794740223968262646675535125034866068482613032190640000187488980073682367889883865227737707206651808949524735550635071952196231943735971414845691805517624651252286854617703915068210073450502723845902814324619694535531153780127808535780700385829433504332824938953228577858749721554438325366305460654421088897403635900439797926717056289470313844245379089392070806449867333883027374574289193108482457524432302778631806771176665913202926196167700252495374504933849382132977798724785434294179266262136434400552502173237620617265021338948170244893881973724895486517261643381521958934233256596484778086579075323379031504916135080426208069337450948539641975383221936888717328226294888977703375691457742261186634909106054892497808536880481775485247550730403688810537719157493357950969716230176865496824962391968753639897802375087699235489603605120831935795559912616553865936612282863883239838611747766184599389050244522488216663719404188685986569975834311352935627768753646226263935973851190231971137310720375858318891083661723804516919232393841234837150508250532287695746505049060822974358695737839030930180560845498393214592534375656302330364652359719887946413760886069862292171293327223315706316403527087969849203387079434537673547152976770479852257483770628739002685876157080008747055392238961719569902587849034135447041124774938510135508149189693667990182156176812223770853883865140767788180932521311887365790753148031681948061410758640797792424170567362029300642847599891485536662872803494748893721735135271222747249724377723924237319070241557421319045206360958950536357566868884257053551266302286733609784869210066051668875964974558359111991610953362332887894794356184077986780378408945887747346638372310257395306143302996002910657059564332991916941043366227604703727013488302316181566350908398268105964075280963566401099274865198557798830584738152163662541754522798059930050129083514498740331665018974666445541369138178718251821608213030376617408371857042234751729233639240652523644095313986766908558644430437168871142434359676487995781396415916827979926456520750295227500772996266779788119514105624416353193512249216000279484501441279832371327185016678100150712276286536101329956157477568066137084684895128051298828516296327900269221607863995309756595763242352670186430104602953945685678076463560602420797758389738119447161256851672481109296714676238797156655439480263193050732967476104548470322629914457270202262374538546943835391238832636781358708134067564532724097489805718495662409981222989706964475914377771117287952514733332985589627889882013881959641889415373807610659982737132758856905015001756938568436170801877483844223972834459501523502696981621610068633228076519513740483791386997254000392116926297873129325373089488004701057252325790480432018231749196019069543050301689835175586602915403185632059316646931301193861634394238107046505023770856100328498128105301803411866086205169450761759134238642186689824266975598607623582788467473062783145409697934954777421046562652820083109169922250809928884797032464232317454694071270486963338605829845042080355851189790837933934150580454676532439611430137788189330537526112947923835751657953410348120714387690709160528106959957044749657974385778388044238991140865573646857894217340887379963700915839468168496617675861877586079873520801773275058220506218962269953063947663598871823620601196778494385309926664942760907308075229456075745931618667611618105897704147304037290354162920557084235957709335782656069650765862966117902614756917816251845451302620297218901271172006499933328874482564182258035597079728793548434021656675108240917164505224857305503896820566464888534861444586938095971946888482796179621693473436955378137773337597050737088977659537655536176632640092360495437616002287963716075860506915720080882856771104620303441991056710761963198347398800577549802804166618888891309470300407856908412704426292514385218964227367735726607071315919565630771790370830126998088509368154391413987844348715350276906987178875051768578375052952512089983209899826334133431864135621133388222182840788784959510382795146605453060611544912939569139457429555057475079535374208811130871441071911205162415030417066859971595140687778304426080813767917918274229377723666578577271368004465383145877830812508319869115209175508845522447288054518406100474680948713568297701023659988614961615462409769211816505026773476081759269663984307221539114778897343659136209744521513266951472635234751606648371267494297207236157551974816705438473755507554148596950072346868818028149925974349320654026183707243170166702213987400845486043559681671236941077166996136106027946964804554329814591956567497701286143855823394580814692044673029878233942918405967310736338190899839222141953777848768012004776010472424553641536175159119767461058694760518935241808688829238731439439800979779010725919001788355660130842919692358374564649239258239519505726184970251383777166490921321381437422150765050939403501969266588383000074888839577629501552309248589696369664057465433722217576835309652805375730436080204617515249315033563755475594199853742430201791191613177115908429459509409925048662310728545287088741655237723337424610511651568109153276446143461170748501645865121091667630920600383347246126424031757947504933657101152151386370812011573600253707585668275182289214089396842097313309321182390125441374698106262842253620850252564022258323392529326372999293363734828080367938307341319020118678302666320095265448258924866600772834804854333218036193709871751639426178965701713903853814209727300037046107220951541539923928894394192044601715037542215272154628738520707655980568174976799723324775477814084651257487825217359587679638669615285893282886789816141419469867769289981482633083373680061645855929960844160667293644931196479485551617270518914442303341496375704520562165861481687875848102209570465357247366577258013721022361485364144204972237177848187633429909348384396960275268252931923785502032989586065965353789703878880026623743388982865340793034042933808752033419647394101138907006999039860732733816622159971902461799599609770146571797112561785922712266512648124415523501378978259352672439919898567379791328726320750129893813124145412638818098685899002222713788210939263527176526770604308140249347285621809805922426216048727680135719766984970783506083972945796847087714406654051569905663151802262557639893895401828662273494998857876811201396448089843900322888144967698925706528174211065351926008881310534567442705564892806207061756965839832901861380262026029598116756931289570692641072051989712353215725178201961776768230237433775823460585177639831793248388458389238888084162034844831562728104430439570128759815606722358146769589582289519798945710625903750518733216342088786889393550595163567230102043542270919024119489499834407484051396891039157804775447878228885169367154589359865671758412860161492807777461063846583392105076719087738738069494951201216138036881147898884403090477188668980701042780463413868995701248900486887195090562835984004583870152304295895895641307721144301268680240030556901363110152998666698357957499467226814242227353016770465503744786424196437429685550241830067120356794558032948397726157250686505983410318554119859531179391832583712341708240616837646414171138918555991595352223655860515254101356291233671972311968339417130758200605614083927876294657722061171645155358242443732301360263680059295846148961806882515746389820956126530818964183580395224104056314917454450168621811082667381037938591063820548446389884236576279592633055977467909767815115005036672663937136448947068688430427649542322441793885911685329505426457580064553658515256788079004857958882477010375851264589093303465359602659854061777751965547424366158760327173893185431294691141151354713590338468279225491673154688196777989043508710500642762998431226589814126014480620024080908708699338220467677258439833025872311318056392568718283986298261255217957398613892227862049863645255155088359519663953562839267315926848345192062659979569749836658289934993200030724154220320855428951098490603495493360377631434993935233631520702709393861988122776845135758705030488891480233158917048438470748040845660704136724754205337135565604638328954669863191455741618161732447373950542921163977524126861774790644219505022012685933998746907313659730575059299522183256117060913410109047691335714307149156329382698832707926280269918052731859211302955512323983535365544690366520395988563263315002790327435996811565134328805191669251671805218395230220274259529872670592976798031968207397395196239999171847885528857764929221373001223394447258112276344236698020820399828541508510870344412480618313475746744946818788029753882992964451193586707598654494080735335426700144547582635864933987573473990559278336998479756103330559749500396404266977545329082762907707189131779059812506822051446268189903970447042862350696367667039253346149592415648194847150001859106110364551516047589577676923639858930872025437305458443709658356883023600662668241939834374013844139758313748607445397799810125925253132610507499567421462788884114041535406815113052077518278099211122391876842357829924194653045241795459113219249276488921829810002060251026723035163292932300405592901775639005950566628314194882916121803832870506750961765977317767910597243992487543694039571658519724844100150031331425451540333537248446390373748111909421679229045921077608512675462965591927435162566504550886539975154634236807445915127157413649886109490801995673478162070712250045052517770589139522528965905320107394615374501236672742782217255687650555579123716474890529957691942547230962512776203759514190473042775180892597799971068044471082471797835832335340217485813021702821740675444269582433720173481990962728418451489250602285698833204454670949827597732925217203714148057417733348401611236569652463850105905633308786981827478694027747540310160932654317763986469977286252052796433001279640908831139754021672583537915579444156190719807304062038177718053060311034575440417312814962756788472833314031726779704528574609582547256764700613656747772723299450244821854517134927250688470058725834838641757301221569601651265019050293304078770475638181803715825791121672143902513631552955088908987024594579934707034297043312486256769513269540567152735513365869264570809481228477760774361104054712547794711745193361042856751125894679308504740259283608867653277857354457613108612919661018554939693820770751022173557952487806977805455740381504937947018094914700702011194687957175736917123539418532315118802855058117211996311064774306701869933454941501578193798967587393829775322330278638251261335668725591340213059591466626918305099087111550708875895850481118581607152248153186528339230811982035915690010266650598852308956425703509795738621925217840277344797421792913582378543314129892452497811691242332759379179160533376105455344966200058308588515063140249446227777313242060608810948039229084767611935969880474259811744921718904530098664165714698587602444108916561626187342287871097398211760048923133001766640416497555938879566655048841755510931868573434363190002447787734551883711317609781004930919710882553801435292592209001789072890801857903828550126231168043771431233529277108368936396865631553994636637365132221017842357841302259809471395914033164942865167895641837655581320458567445295653684398375664224958708753824640674917696881272989897025850487944430152172889029241613409233077349735837056018473562145111455873869880256388708410289648614726467124234432718978186855016239724484678959183854593703956724579802412319970088393775402294684448462851433773865441867252911847147833461699507565397692262024863595800082570831521380207771099391924527857158446495395330893863745789493901685584560963440219574816096987107378783817503864624971605190899913157894766060485320291226877242183618176108913924409420937345289443507111185008442862051014365843551946733060290986990727102564073218775516375907267067364603825344669191715629246076476591906941406651965837876189016864769634349163904082836563224896552777542988786241027026699589588382934090131965086593240620330743196833770127560394503821718190437465719413093462286155101316443188202572689447127426768380042754759594022236323364028298567846437009230626930003438252353637169547454416651015099949783296039853854760172217397527435984021279902691195471751265049558492161031445446535543420287451414821174521435042054057105790242699482073006481719265406601587988080684929554751268457043189747824024180458071805757779982114921254557894654153915472375364735587679679469801438329877072980192332191742754708855445116899325888867592381215031164274543762357961545922283792280694818470956820187796228300820011072830592081595566618924629502630662287679134724299357715173963716717906977734544398286875398439591828528229796248775387513159628132882587124660879313461593554990063607863286409406043360846141071716871245449829443650334295855540567441896267145931882435631135912551349385085938089661522558996597428824670264064053047715925651424072994422510247463025894899766886832287154796516766462732694498103348321978619158885724962817527138980294813107169992726979797187644353191711285740969188627941639477270987203445647336175362796854666544894442432876418262272114455944961295094855409757130769894650515914503062670014987972660115966027808663164962272211053361006647749373478491747851586923840139524938855115492872180614128241732717858205802478877130593006023723798739076601211512379527342093208196659489750217124053052020526763688000737652686685971045647265652410455438664511083722421854289103048880707980226761244065835225356612736172591655068391278023920921586119019714354463291372625524478569382950881491837302016841445460613137253289114297084115091044374718966716272183265269384802426953704703793821913431976012573225120763474484591765166085287792666915758519992152834319479845781019896185925543954262641738043184000093638977512735247241791728452172457390062953525151428655458523924628211964225900579387263317155165399581411106832709040416303756528589704495183718002317862842830809377171314562601453236809638401298066214731393105141117356737612319702678510757363043654678210883888755247758885757618685103704493454244361440425983379838804401101687727146444937902164907877451661596908742478048382146834521297523806287865990358274963935821995926193169053227716170857771434230437228745011904146056696958374362372303103016955831530151668958580511619884381889389543199615066063712950193111729486218502666114744693076767806499434287239273434914847145991920692182298719511312509503974730089622563361158267011368683696796453884088079896629334840761111439652054128609434776962627768728151955693875347638953035433598211960412505362879456709009667209582452172775200728149832601976144218922593110982900151259246479569871408911111997243797432429638079270578675634905467290420873376558125512222881448236148109118876174348705627614180643512214659036041622281027380511603901283050037618906292214275806625266917967105383849344507181384661840772414356618728918468646561167304521542589792823034329743542021897645729450915588930799902409044957839874833882297713982669714734839429893190961170855671040777513252831878511092844931051519075800695604493960820572228945750370648314707792414542707921675743460411985551928060063708014504640211122884984683243093532256273294966401871330193380106832307429740941617086309901344334116108888468647052893562444031197691984492010132122702099570486143874938708118365155598338146032740863744999823549522754882632943846596277504490866176403000330700696875081723392471778202255706938521574596224603533397474987910274532689326079233578802271493684749093618614046706152291400142349171297621505638370453016926288349743517069905508906133686319167160508439376196441394471422144796560791819687424055144844254786355971259220363470371704218230364552365530946300122396787949764293041031062107230388723775804169147015560342687892439518253452611556395512135892338776523921168051097152953065331742461058897959989934170602577064276242813744350845269055142345314267196452136212580028995154067025265628275867566748615588816193988341595337949109095493498483877797453654706407743414256754688730929437092156655614563175651570378322918555480630832954541484794347980856831168120641303584817627224753594866643110984175212337303826445491886441938740847707616527679792914439298676214765445863146174162055306877620432151075111618176509808307895371986063430092156862525056384907439581713318765212783298796183364857065205243967292853764433266957233400975518294788377877038168082561352920860513736174783998383458205000503022480366281633491272408236578304925472400379863036791846616891632307581327907192091433895571161848740942603975287759981372849546339768941866969952275727211603872187201171080270591899034952557187363112070981060205863676102995599444319962169476772437272699780936080014822585754549423625389871524019727739670755446017589841479707559233653398654142266148740594909220150475826518669496173948061305255801778141404784639418077035039001180937750677523699161032653012367010748085759119619611424570086570429929279956040228556036748286925406732152542635364094144456795153591729683074255321991698800448762776573413284899064736026884883140541110862657955495793569777035637207803709619233260300347995933190262881588914699115129209327061591669072412268486694259586881120493689976888072254606163040602189890282807794744154292889924420952130596954649625477728274486086729092462555369963518808991248462689918040227166815896176374956792904709579955283400468934021722439041802800664441519077579871821138413457645728898687689746492662436340325248522138141483529442656295700564167253546155870487705689255056265030263524932981647486429916186083353528207728194825296227130909933227849609514632176565940115204742510752980473147628108928304971274822909010167387504528794115304061320668720739392286910738025563353384488303318644461452706266631246581720362232365588311936676221026782127336585057407975644842474232095333846587611629699872906582187240034444189450931021586059615254227702844254994863074180312039972481934566927232901039220553669967713904174583237739959829516178515439998698156664922262878552137267111651476618485560957181580159709739397668303145287735417929832058383638595866275286028879554667738310040514217825361360440267173329398279467692234302364532966315626224537375284199441387611818973889171991298497662373393072026052103696317689733959163075632006470543098405325711091942976674721898315224196017250580972786748619298675983591005438027176954865887591510103275861653607835267090012995170116463690363669077606410627389002759321911601179717455783811840362355912907192379399075931208962186930896158902368725584838157508822752764125538834480089333755839039413000586666231939930718403749807695903203971934659290669425335753881844232074489906121073869528134815071643044754391939369269727458627145138187063949846143329742068920192858968391999144720794276110270814356066761379320524774641405695307965213778888991318213551618518351293298242605888433044014437090233217839196650061338784155742507389988683107688302907832603135375396786977051895856602024139628157905572527646857369426614231119147503250381701648876601193631234969976217065958161724586417255934393634971451723947984897022640588420321132771877413753469977770257903723148208609665248543229226540562214490155324853515562821567447155616749305228898315416730574640796811231785789065900372755724289219661385661432893491200457529960697858476073006587834047625045226788715458355084363056467826629811706330717317564728746755439275399243765128541390361992485662334120380349944482434752916258017824345978109250439884168348901849569160892845371683611612186845843149288120935224058799473824144261998085779951957033691395377756649244632362202066869661645677774422695737936408026063916189474329193484987735900437078429372064781722047142441582543771680229258860951449840827939065379884203484866532832012005976934269860839572125016195951153053905032876250095713021598719419246369672454347369020320537780736231664808238805387071920341048335776235143199394975822624202099813452045689715543856942002430723976701413725942909890555258433320401045773666502966673478310526368461892787206536796092545602501177314841816278942951475857328586419605735041999289233204227709551038046848474640677004238715192334386999066659452121124926443208685435103908722443179318192872118575546182851362615387682615661922335744596754173810289113376883857333849258795160171331382057221433733850443661631753940803771804849741920790237360524607662452969758964362094870499692323725981821138941367086109358840900254216059707147441802681997142997594582530870144981596702080677895151559219113016532973172974328020990678780599956975791438552593797787925882628025308011705034048539873319997125707591057776703192256340947948890786596525772808127796859592011436195458437268540188978574040222890675401607477849101169794524595020086771385762807069718125765994766446765947496346598905223475962809666014510422881734877904210957122061024830008267462402741803648086069270754431798089974002507041392158012773227920642377252831975039461805979981547008945311313094853223916814539930545105869693468705090771217430522277822053945530260518442078312606359164437253974420515771634523623018456184829390358143912950037151198547662445426891393173567974846702003095607338004884762823170400036119827222770942092057152126647176615164515500673584626043332995115166954462180744498043192985787606753753669813566109556118426981946120210010730874226135414506683134000344407673686079276059318771486911596620462287359236057644502222493330165853561357664415973383099278544129017952154445601362334075552077285126454417766127633473225441512648741310827215535939234762258405538470417703623473776825896642653782930640798896301317698891990786622916734459822156750382016055350172494622050310408273101304793559523090942579497860089984848487399329632303417350203620838224551016148929128986763094535902496399757049313101621455764547629091962207742126877319800274417208503687559098694320960106745806002726427863413351159814478769212486598616777553942757984631719834117648043248237013740488542213937406906650203205348189016996495947172620173120841882028286860677908930969240594819595934665851966655139336257573426770283444809640395041947704885851873185364586100100251395614652790491855876829436210189221268702451920776998341023302317971949354475632232305465664564855014830066770781229741519861017341135370958656544395919913100947934177554721692790211422968532807471963212745539183920105416413474274309266299455308443602576816648938382047943754547024190549424987139114708179321673589327321558572629945143895452446432172773427422696166633965464299212912478244393085559319108987615224493121262774680732940963464761134568792302956714374997963802081464868295918112049225100172536015288841459439161789827829104337080479277531820182734583152855926805167886091899687447674882619843779452047550740102568987101896159054061273102548191208048448522312972457669113638450881493592587021734280964881420753844983322097997344925402436982423693081483837339188563316863279097678399790813992214440635416534063477836701091672993360108451008130556266520777610837458377205543097578940718261280982705633782484515276531924022290582292800198243442481369488380498706314570179879576261282142774312621373108559099860245596373207135488065825680656534736347359730808919033458042542876654526224623322772937622605274527365971547256410390713374797616362028951718734535474730198841402810044767562071711516678249734996901099232694561776246075786690327271009483784912200118071887813990121568496129441008037439874926229101418246476936329731838334906772654074361102740025643359328169009092475112497933591035225030894398795959364051230533630603447393521096476251795291789601099570897059988502712863993426264131885935616988863499509014190961654615021879007116128526490994244850260724702599947358092757102722306182130367698321280758036447667862515403913813273531899667213211419619133351640656109804114747853083045732309131963517587967217876508967587011293026453500192576294786652139729970865243055004263773448916399791212018762214655589041284511934236169943908287766883307819239477115019640562871869632115688925894122463949263996134519988837433000644074255058682419984222707815362252755222745434130377298743005772092762887044694018208483989119833945989094000593692931283572494998318483257589784294825866674983307513574614892444174657977051229143583835812551654844748096479329703894200241670199089312726645148762142386823858368684837608345150139085166178097506731655393125322114774279600867517236747851892254042043859656437895084834152547655694129233401449708275184041126175341149022241594869630007793030631353870600184261712005181269539642751646104564506791984568263458319408033310709666761364167401441225471051792489359148091130068230658384044114423508108684207879938144862036533251797105110869709315570522413620420968545905337770775256747098947850608424326752798747038025008487051632630626784750675052811459301953854391499419423496669385886984757138982217182608663400087010968411026345447218317319224142817614938888609499193208616127902745954780484917368047335364103363172681778044851636595103747790132057730210897900797928666336864387359683562383054909619570141664352031412511305559525895239541304400240477623109724091804857164763775674573161215556667858037862281695932405048328727713280743768273849008570361425211616569549225380633626440228402893653963675835455818876116856078064862654462864677060905611323953483546659599707565899741030597169340115121136706033342779696716369523426942575062782534588221700647239108108356034552500404203449190741249924853933709700880788668049500534009819563376956923295522248763556945672440776314380942356340271196874972047222873916387780706974408177149366689223501931302446167040417870193933705088112610126815138929070145685527807461495288453054321884900067470867435363717776878426077969786483526963540727715792972175033228605566554162269756659682608682989424227673649773369507486340734254909415026703766410395905821732760946725616934347823004458629388434407300637957979201566885997044690152134157330373364887368632755141685045486777866843892770106308227137215994933447382510493361174076582415527365229703104108060118844000087172132392445886981012636466720267452693698141630481148475668302925614825838807479525595650681660699612682310690535959675334336588972669430063856685690031988093274551316007089728796851746584002557103297527974981932866850143685866540372597331163890404095482777906801074878371337347618480059732368736268299329356456696057215128097448896273124887156794114665933716638876214036236592216481274692792821608806787905128648741187056419462624971147146559285420873802038856066916688428582965659332370165275378626512476817715552926526864111270743279770724880315956231579997107704627967129834745589332799658371185211191474019445529160774910118740339343823443645132642298733688916865866692049265117959751855065715650406366047963494993265600437262298920089899472537431732838593676432636755591258530341102550341794297090442654024572181132307326164239559085519253821354949066191944906064906849528960175547493004271037860505418539683383498372384255702142060680784325516711134920797938285921991971339255157500746249166126168992023624679454259739557259038303511146110959179955236419470658484597055232027836723747491048215678411982770466399745578446522844931667531306535734271015929749483998834637915402035054161749330853473679907174715866703983395667684388416257897719547468389046429223490435766267670477110301816866928224381265300112226754771952132847926258591768804130108919253120185331489389983703563735114061529643946376908852590287209139490892071483212290917217057195000717455352479345631714905092913724968648049309377248089600509842711043303787951368762965974787701490077598669901040773167258032116440479082079388348470062159917898748889578822850664225022678246507825344370283398459738136211156069705140518461902708822734023400137134520887334231045693180799263407428453806872127797048716877252684036919177806451125350993443494398996186311654134624626487479765700424553121598078220403102608525801633059366365034507987397668882710302168319186099985276456294117746456829679037499229304705473381700231719212454709234438311101909056819732239999539330478172422117244997772592547918790996700591580951758527220892572552903846209298600979835912185948594745471851023699079163410791336977293630722059916251892398229926957246158072953629334082621745391200359632693176100515298561434218376783651867064723699228201639663533369028867698490405266003824847828447893268481209688229168920620520240981619483860892082588370664564623641465995373479568291184110324661151536724769836067411023539064966940557471286729744642963526306664395153537063151602447784569228984657641881017762258814733942484641263094877958128238118958493213300623049724043686197724401027521375087900517205869715880049837117757643354222055891445054013572936453083432088721649107950989893474753250546107222998432536680761027975235825100642243882669837518434544023307368202148847088589305499089671128015897168414557567102271038919745253346776537679671542717441521976310323988150322539838060079842945128157908328235541005405065215669676095596794922165051199673825944467254827472204392833498744952238420013861613166408171752759814800889350600225859050267878792162397465105299775479285200988172340972985246997086762774739365584533667597649502099050500006058531275758324162278374461085066225890135971079241972243634871769965553051239871505047865168587798475240010661956682437692997396534591062751782212969057587849462670522586571180315600191534558904206912020689304293868257769037692303073558174385337248432958232505509973838867258669448107726158568551461914168730351885595739099295705524401951941846255072091276973599750318783538390055214886987605990721842965930924569196850402962905651717417259112977391690115477311091774943109571643015550540239914292959733209723000399189277723450016832484961048552528344775974778880195184377220376875496800233349268171517406716491177308252390862226930056485896344194416755373266823723804068411000295319814464692788143910446367362457611055476392442641234590508710973394654504617199420339539602095102837899247234342593585036779839348781967499720204076275899061878209664901437835936773765395992957433861230066424402032832309005165293824115649165911674049575984402646547864319091312535962348108931008802995888844224795845656355036976775209428177093909955231581831136867259994667710998476194592344700117184462416160826825784342761183574253792053334900837099492813564442004881471048294864340883027938994609541572363267784897063373619316770431246736975729002231467430576329961203954456644583747836664930788169879212011070379844349091260350397595911397175223773592293653646702832230750393720319681034227253114460609404813941256075513333213120262081265388344535940917795480762243972080154378264673323829261092314916537131803664517063025896055875178113821439632184120719135265078908314547213238773147729762274263898329208458353123474316594309131260961610854261339204811479401696740996876090050024433617625598742002541931108968514302820266318579109292461382062582264840297775638086093724524721138971925311062800901397850817848044524297232281459205726869594878719257828172013417844337669707622606692326326695306139449751212551648556081641148243919023890519286366642007472881931208082421533113674135692091117172763382073562609353995783688257377390071771052613455160800807742759851193569713679635276681621853728078087853174355673052281361960593369758580347212001057300749973582277977817676348337438042071364251476431999689220342112457646837823672720663662323686708450755980001205376428994507105160792870745692216872898982463392864974028250534028980686118124364803051600680030452495106737294558797042122187242758454854791700044612380327369598174062273226463538093725246304194961020338365299369537118693184037784541212875727605798293490146421681301368071597009263023985870835489656505960943872707846730548451047328215757418066729824295872870084947879594479195180776539077752934709857021153911245268759075894492653585051933673043926886545791783164779939587013042532876915062692916981582716364354084769044217756172036798622340113245402734654281639022328342264985274303870105508760147621051614636798949165979901528819797049825915676845860456629521381089300055793115432373716318906055907117235279871930784216731268865646862734866531875056409109095437786456200884616961420280769667635596692316539666199351740015081647189735198619878407873449364137281572372713971963303045535049816526943506640895331189773188794972874852149216149255072121283634756519653808867129393978193466335946021227171424538453296924096341187186870938025916086994788153235841507602398922712043715491885163939945544442427979806648400943312240837953956685722198034435281455802034523392598721445158403414868993982462030135466339909651122965653088954764864949598726754400930397542582924786007542905822867693504246619020009168353007237500928300155263877116090352271379102202553562550218749635231668907250993328878081082184093870237970007060921562909649493724824862229762435886916803863997920666447104703306750566648217626456910557605134685015107040452131956194815640128017363078745437842497947425865403766529957985689223339446208418744547393963690876251141188692296939425982346622918863398112382907376280356800848194222435688006466454230011548185934602524995203524767836095434870933868761399797305206900643809416639197411522745279267061430433835487193188316497178439782289964554620049790148724829248983514026600731361405892302915294333560756419202579206146952660742434054778600319253242327867263335665319150257888139715385116256341675084628191494584247627993520043775746645957331358564603686148697286661155971143764169003087608327762087162550447691659648509738496798899984829173611717579838220705363405807286786483708512271670144644268128653202109008306965447644242971331834769694409635442242775273928752406865276043019444415607273889102461807466793536415876169362015534060534828240244465648433461093455405936884289208939918938185267633708073330264848319672110649548240744935819777495431803797346636688221198164385162200023581181745261646930360809706748771513897377325726876737715880308155977568362787353464625065794435437484299868309710631939824871599585032262283829967657047626674498410878154457499818612560550887328307708983762394067483573633250453605240819695549744906837876545333855048691846526625131789487774575860257578591213818949019298781735303874897955608469024983319358802118536952595416784226740436230356310201444449464959502909993261503721667110422948682869311908056978182799923464370305224752743044713873237992473335857432100209439187426147552154252594487598966367672503085635382657104377428567859088191404567854134538034303213657780319489705730392602444580718202894097857201536917283049244519051384998727986291680808027423354280535026108807733396034792155255396967504064999164349351581476042509598442125537117821455774321663778537352805046783078285767061959455611935815145567432978943881046486962425607114243629703499342585804399354234165344798375997709286677517218287510446339159370177130015184027144818693302024821314915871625762116625394520863037890686270192036621793127660681694233359385624728501399290657879739263510002762013573069465261404653076552325471177026173068289212676326545772626387411724297882433974838491950705188625474039224527784760800274653475928730669948108950274578041372832771343584969791156278727792752793824038475817529793823493598901713086819102258860599782214868904752569531378069671836564323786087464147058145409606122460753849344227178030657839429434080419669223736533161925162981205194210314529632459223249339646969040060956356570076393299648382748036969808308985382218305416868665788746351450032464385081880130301386172479204192105165523116991735868099490872907139305654535915492789551556527808113142308836636357185859073718107024781903695230380733388591573544915050013392753778019945739158428673416413737909907986657861525712609832589295697270971264794628298234302840003267410805721717215907399380784316123293108124534713677561194963021554937190934297656595726573579825282412882050824343339385042017115147330209937149756728185297880632818448580585989975589666119615569090161719754257519821687535002832870270696430008822490615220014961869323833078591962502115312116635566958365262989243073813838457596675530231615853759608626156262016233954129576987417657241967650516951948996208559907020903730784405236763820063474470742918468043609319493959320075063417012674746765688102965367675894455994320995734073670729087202352277291402481200227467808542262895421272876122620336070501213359790157771009011514475877941693798440033577738741508498321094103772642235242375048580397684415585153393451480850955611647925243833586216317312397946084263750094780212721977320394497457629236875608101410716622979579947252117416857722643780443716734147186440234747402381481026094521542353646433627650088481065134533772936186564050434692337975087681701107808415647248363391820171874489865637564851436373714369137502140107088583281681861289356608026075158100343997513150277061433327633447016196579773403948232340513774930315789445846273037193402178030563683304774911722236021386379632622289985457296602906193381323914572845208986968261433317639572762903991357768423940705672671393129557230057624576014497318087082932433380692071229210881136420409663950629356751692721661411950652192153742096452201865806172241253657925459238198930700443229015231221200707921389849229035037566975144253432976862189442884307327808277904018615545054700080536459469162519234130851536935981347929595742270114514232463024119072308524929463313782261407441526413511174734442816073894989915987344007946696221794153125194259868538059363698270544360256309497689591876239661730392433710664777970763514070296440821204091643005223908522313479279704312380452634090252304014721683374369273105954097543714591046577529008143733296507591167353530150743871077516580136578777466889108934468835626730198698586565438377993311418102768549202631211174488759457699235813353835278556711817296175032905931155024918078659348346970136604605889230658900862042471056747711622093065002256846710120265300872082959071368510414663972465889386478572711041797783301852553025183775733934431139813926763961163417925755656484348802349579795396568693051628643166413068451757760294157994479492901844964909565906505452261723395286482653106498483716794567866324892669756331360122591532612664403378447924496322237772329731027555608653995475415857908369653008288236297319893810960678154710366229646741981013597962939574218063229911980181255104127432469583884113727633260070950915845847409176181910335539822870337577386480044794134371410191309636938140308256451291797924201799335233116468431951551785352502587750524087741297149284338194807679754427824457055435485235113707929966436604676723119665054753524329151685813479617694549969177657565862429996546370342186557511924391727909149613016610209585594449453197070519859419715351394293149570975891440183637136221941658639690470327284095806010947914675321066578306750806685566785389993149835708219094195727481736715029763019430610599737312759393789063461708543008056079692481805798722039952898468398106623811121259074397819989941230761101333687376188569775566508059791659479077378275527717195359545991805308990026388311119684243466162374054099258966304647044467162543367684555452041920821872768506070490158232468998900044076536463299557959616932867928057096365308352051640605579494964903434777037635887080296252032241008297112505146604900688711526633318089217380664108127876552592446308872856670467721047999734654760645138911209108065690417648745542140716169573811173712790873728659165274453156772991653816545412926097567540370548263134870988486641766753131505756286984809751238427610334834984206220794557615666106128907283591450390439145414254080427417795853279822952982319138659323032580643855712398662010447665093162912319659043298503619012179949759456561252800747227739471428557978960310295821552678327122398438851522296677844876725969791266191875870141304646960635385865765876438016604656232791175448231922905234093895305999697390743157561090751518550955418990859389013899965001626822579715012306783960183838425726634707830173951944494884260601339777982481934268664993563790819301067248176024367032103724099556915779145163427534457727913194966165015344452780658260471382477262874548502901410317427131817901668668816902141585525254321945542698972759446402090337914426107519106264690095124328419986242889705819173197850231649444103298374527038105834842562913336454337154106202880249290475326767361394972613267307717877863576122587726144051929983394048733371853069249718621417644674025289156350621546087697910767828730270045457269613914715847310484879172195957941699832478534101483264914803785838346811959453591654622702077873526966440801966595037502378730442687364932010622212318191620186807118433905224069493650621035081477014261043438639629041753060210509283254931093404933463341311025130426272264396594408677736017114174729981071303014197268582851244348938024937792275681675422002862096938260185962402703061876915815905596735914767934650601250638992180696296298864167707396277891985395120269553666793677921784744021088055332429326226145678763221209560839483455238970379291053461610311332141068391040545319303230594861528230890481434698665804416334528430743189329545921968645819317693619861803458507182380781777600072105992242811703440597136292308692608263828158660902933839103336292924173076953557936774854979173435917536581163485873529020444088231577418537632788018148246172476091668743774694826127895004527281386629433674207347612350060431131498095148305357678729090442540216412489239312894756334623012140787841169652129526508169992431659968468773232292727540599208107799287259196031328298965620670575737766092325732955197707079505209999978359456962025325507488579622368518642328804768128479554647577920440504837290612143075785166459553665574364239624634591266938040254725169700626271266853439130936111915460761290056638227117719908975910323984907947410117666535630852236118406875153499161963825539245295816737858046963716658979479639678208750388327926824181375730436785860433013882926348871433958340925990201358486603597756444778326590303273333968613492169300914160141318600255533078272588751650425019819835954946246050534777254606844938856795857331880562114625275260517518247418669682009310723256226822344702284458230844955547765111478332910001800614413970924835436544997065644863872878836248495486623846166623604983096213961914134939928900899601919370824977371283437887881538940024321021971820415766984103285227357202196675072464290376510143361984200641044702990720501072045718091004384669920383974486150955640335003030074749479481936068436047219289156327234026252945028229017417851842622055539179052685680533614051363994090700248070659873022679813046935371373308306388251385721095979374075852174795344888126095376482676206449007387874469392021941886422425349166781559757727735835041495904968642461916654769377349445092472333027428467647013059114606724360848803310895111865726743828789747668789202532560148713205825794097978275003478610124223747214242429116226729787678777147865760671062727762080505752489263755455735914086441151028824860230778390812934181314125144929122263927044865706917579778909275808062962145768166852534603261406678439363168247528429799731650258377179717929129939003743077158159566649439425531850786137585888093856219093630448958671381270435501701634652693480442611854335994829485234047338369841549412023834687551757694184084142409066903935432776662555171213754130762606438435641081320908605974642030880770292343602510589431309394019492641938913686427755494578487282187371481586132238168051743122026418627841361411504463529320035025319729706981730519624814797155228934746619551687049104892717425890272453695531038567572448032967342992841773262746495729365370032815350817277739679704866904426147888979146012566834304020691115342085757701669640655174844359855669708914906937343664945256029707352383218082474918087321479068382232081567860811581508080530682443689301252175742839575313726224639575589050035082683291434595344359752593843601263292202296818361231125143970886405733557316977789847348352907405055771774766799991563449550938624885402415768292472520518189130072013239652905812083353885628523741850862171135759959984018830049849145081406012968553600192017492118763343095598229957369293655639731421278121297465115614032748490745101204678795397806448957461885229468516953628943957110762801734865191830180491356900884154166233857556554822527735320685065516214034229544684152130533581060727935133304931184165263192640843921171239157127486367856578988945046117494269089970685799910020831276219288695612581427210379374367919327506640700369981779759714150558199370354358688871508000307584656418600798569071157569745808063930969903399592961341679883727122092063780617640130418465616467938712646413393332950598933779351452185062416107384070670629443850753814552001463262913136461443348240338310703895850271307353944448904620126281376885265288355771801382071444606663362486075829451667826129842276384490048654382833594142278525438115237596411661047549599780216798645789950721544476621298409422332639071408745001872818839100784024503677880311052779398379619480154245496824810724966104062282949405781225392050757219099279840929680248649756412082848724597631144307678485974904372417800868706207847689328541367054783331645001198312971307996535670793281156616537638913484473067598370944960070029360354180413706857576459720030434097517054647568028424685434503301636694340442192283315061815837192823834309842413383753890455502150137891915124827046734364517898557373177934356426759413885739623517712434356316361593934087474964101415926179514977375378475196866951804594696965917975240422006584377548691556138397710055375019783074626968521782846663155240874296870561158086255741475883299799581055276681844660502529316827196105624018108834794876494481545870166572291976201317552848753492741057206173081174816517802265507358852348298536204140984081759164228446722507558866692420291027364619365468187884909620946988865232636246431515509596942156212160322883467435681630372568415018225373124821052657964624255804034547529941487651609010264220220640351866734137492967347504163271783890880111405732980780867226535562165685404352737530427220379552840316932213795227704261640380627744772099539979970929997411944097790139811769982213783060107182613588923049620123550318896392361118190147168002950980416553211036248078794733181682380309767530047286868982809147486728455384337162558659833367935228422179776455986698358485642683250732999177438443531774279723947539624347538856152870002931440832088701881426232622852907246939307684915918869676826978603909719012048613469614941936741003201990887136457010944442159011688750647641979373331472660470118053235764260843700555742425792526691547804956626934256381913621691392922315981349451461021602800459208603039925941519060221553167945363363061863547424656450880416719456505849920619519958001642439646246014222951099245602639861876088941502081090170069559922189538302637411466135051253496700156273455990920957225751307190006395884586521144258348030482083942929633835160076482718496417733195702454176747786560733846895113057231340747857414484586693753613156579918519118138518911684758838250462611409495576667451208200635442100496960719978541266402833241278479577985970449229587480032465896172256714388019429876780751333320944467399867860856235046418945732480245335958969006007806544153834392890836189683072580003604638327951340015806429341228055684265413651105751156471448374842687036808990252300297912802184353917517621633291300150244592751698711497378026860913308818245424681148711868183913337522067531937813502149412016421316610938867877985213870336600208177473281989383232867297321844004172798107697168111035971373040423217546440436854685325178740021991956541348740467343581111388180385908190138314358402536927696768820255036322422343871708563470595637682846821653901219220905708110989410485820958076076217854022543767963940097296546885745779728030730389805142098107693902966952511477502973793952150131513705152678484911391347056373967328170950915510036554349783480528855509681079369853796163364077333356244493589379118757316575838415419961591240301722088418724825282536978338723339701866738038389000559565917483486391016890608250602292905077359650616923049104443373579742723774719656434912416615455382510270832607282313510541042577265309456728457903938089454457108042847318753820544028181085107568712386561314504140115590362930344366560269945751854344956528771164212671614804511518747647216267757946353209973100360511371615263633210833561372245909580087329713266461525941328276746351687389384157551233145494679361098057370426455550154594803292942140144676800981417616669378373343127110273416263370853962644106582539499229793690920902545075673028111149548876432246270037844202978178792807328905267798825961938913509776571965055756978019507660433084209973720288261562756437209486808230891002997007435707835220960496512574503842081504409299112947593438112224043208748024506035534828120640359905410811194281202458105592060356671560097519114057007366003783715067518019057988526792649100324964177805287260025282562783240738254001780648429919336735336528550313684450934460831222522306866637224005092576277510766977531617558298651021183436737323458645591069635048568353651813998858733728735183732521165444687739599060330742519880294341741962842495080460918474587671836764687929434448777523264240061055686679137576009349372101388674893174606041285605166059075960485847285705244239796538840129916105210158592657453268595944496589284595539207542820334001245663511604370267332357290415746973108761210880686603709423828533452239122741038286353215153917412422806152656491702018518145975403004753826187588907081549556379732317434363978557101734667254862569074626554383802126958440860367748087964297068178229071091516469285537236718032780704996140344166832753987634017932588246366968084505316334130826363882518442848842151541157329793559509793536181520700286440644976885488672896629230798086628772313987964633605211883865516932428342120637488845888927719084823855883420379261953573988304151171908692494558210860778293519509629896558893889387025002310834829286994735436641601664670545238872595695902908834515924434797330315189295910497511419205970397817328489697758995153863657287193836593785388510025789965843922483327916667448752410607117883203529311914418397965973958924907885615537300242596773995185866811987173805745170135064358522160350625829208729202988009377771291483898558176735565772690143615490003861295031250761762631522247572172459383668074554280686410173272560645084968990750912999304159284469961344734409340433809326956010310254494207129185772414329303245876954816485187178802038160407250738541317216937727597452607155041772231291189746788662307522592881133746702813897358282423717359694428762615739531395563898155978704669908371119831580247394932412758017727462247028889624803707033667109317406098941743937802833900190799147885025939575961788929601905225599269901081844430057108120783758759961532907979194189853203769778106404787760045574536718464018451203320279534678079321840845803822952909579555525443369954733826188532276122760043944184463581928251286078044327858853691547814274445652539774540118483039618343689913028653781982284843243483122681308951508457555675424580856071061691448804977442307263303180091006628430264050900568693105275694209391476755821836798893794001132406733433398385681603165399411946679741788980884223995914973955821191924920157224847325293983272838371485515230426997290136056602380934713303351881299694798121444057564525106282026593082276522246109167523028042104625719998365090154034255360354947077589136234953079974150707907831472504389911254388603698763963719435773034292880631535412611355016720706706407194976789639523384888493111973896799364566498431652069735562790769426533838949089729934024573384211079584546940617306582885726596711278555996012450922220091462017491925867389167591166990278725783776350193605294054148886951780270137008832285868052210279614130616341317790924954322483073173471656155035955316727341375070310786819638564095164602845987358645733146613521665397693037521892530016976564928533981918165391915446440517390216340819222657801939442513070117192713220513020354099098770282008057880945533799322647131623605730872373489902388482863729079829418675285157450610625759002381390226514253403879178302891066931205612915499607688564165157127482393596468966426241949470036588372355210888814917432728077913402951984864340223610157693284026930096043018659354835062104085955692779587586782687336059634840963243302557196223963154490841433793619462026290094058794025555753781966717792979015746780273457616391582374702571491280877641609789607783050220089799266973720322049906305041581579234823056769836285501362957356157530929327151828244563550635347486760733171271538221467235601290802650479900671540578849160198659734989140345704496345406354079991737671854781024452307770599186830403626318518646442767314904551035978761654337692051240481922390926759496242848752197616055603560353543634095712956130009622145021836194525168951655685694553166571749337872322485087204296835903239768454151919881123493570085917980846316758126704156715766724770508932102081779950587083797081822771021589185699373253206247879075487771653207385910606895343689102442736649247001774853727564293985161677906078395263891650332785432434961240828054202568691373133814846188055985378282219152061935820382660256838431074616689190644573451942201440534896795593694004602365694113664994879176723030333318486491101213000206693214547703379481085299695421425854155870169018437029934100687303278375236225373547191387372815302630896586868256650682808557773440543912958080245793688507582035756408430784418070722098557246286458259377765904522157376940326525298992886390418678970815438051638238245567754872769850092170862053021264931062482859377923377183370138056252009962312329755418287354925761970259322599225526581250949038570368731532967153429577700172780874492569326436000126245846843454977774986198170958985381224097685889086025066422654586731186504197584103849440191189979248758990352620698179024445994414559037301709163045784766900636559559020871156081983947869634936958619636669109080950682846923237100033551598070073310293439916110518014893286627394672488813812614281779206906164684467325896085888109422442611840487911560118318149937677259370268350923064913509690895422574387614532238222538836448105050745831103762760560119570681741621782297146329360608896375506804622537960880668935581462380267851683065128021668992446117756105618814634637991016359402518684093526598486386616914552277502649852839605269074103948794475306162039357425093010134386709610151938964835392228071259755573591899310554362944327726234677500181982395138440187907918639098753959402167320428098978974333982496454248376197973838468708416624575084599271293535922901392844892256803880500896870997746108684904654690182268168118215390346332421609419580579921226066598414485881692009328446318440917808261115509421557995284542338078847396955811159891505001911481868551291809356184326503258202290007077868571650445663517898815114925349421934714982060769464438984357260388688568334015080718984142915751941884913845298423866287847236503370099456004762551568397089403084246623750692377746514261629781002421130608585395620730629534853635408326622054491535994493393947273486352507678435403723060205879077873475236446944605544454786886665851866158346153959075582122302008079840139008314060144049598583299884906783401863790578803586242931933136660098414263825065712416846810412629981665687107371008677892921879333137248027774473655487621659625459624659026944234526118498454984384559880602508373986881179674591320777460633112041612852855344287578899774833234712934734068068133962102855488344133191454837294615728279773079395624089146230942942099462230494297832647425412063262422974761786589221344241264497162426766003974512279865749293109256684107125030571392880884008418411346922481568918716611781049988033670602438614441836045049204753245915994564410872468615415036800404480245754268296585449008747806329146133502060656680815313317334575064651460032165928833701195494264850954227548734078102809894510533982610877192673456618769310254118457842604233085865363744469723817610410725710840820017736321088538859864912570425061207036702830836880066537593692194492759154941786769297576377450393648119856567386306132216155719356683960533821045436927765121645135444059689240101245152383972377532640196060564591178836304637517722318037538648873319100101360645599565272105909226701723096600421064502137945334839258968214345787034309256203489681327723795940669087864582416858747823723479715427842968303892556154129670348349923308304961088419985845799506779841134393049463406403818704530713296755627121268695921825838472696183474878935308863220969327169424580834458498059674923479510008245526052657561523551257606044564237767603043778939986265813182267731175139056284425896551861002545926565740397688467244128012891067717689549308442077927806646478709739335394761912075589235858297792002005901961134807355343535679939912006666032308357270730628650680148130135550411071227016207806116362338260810237801359790886927834211592331192371300336591810448625329304906782900026487589474959464154489146617383527914012302538190047691023448314749326755067864179353576807319208589893410439943205257361722073209495493970899110135891269626727538533546662150527898231604055373639483579441537131161938868759260500953634635870222394482337832641551475322504706972266749302499518530747580456479444414891021343460671512896355614836865532913133121696053813793768331102980856545259806796819890613448159992670034996011308039021228317496282097126865708659622445930619350290534536305383836792445722548863331072616386801540561172502164813135765233054606993438353238019455885868571520258880626348846347585008655255276920676115619778373736452987675437646635691329406985897311151446349373512838943488538951575319854396139131763760257426782886758532507425362433520592420716384802549687695059171606400801934760573262750406638170051706458792574498699711392654949957098465879156973311184961061478745868066430538995093400086088680458619304934313923640522223729483431846222095765282166603991436538001868832775781038646448323188055223561102695645973376128948699460733578303653465804934965306438453042154021826324257357702056291973028108345516483363719472620622629170012416016356306020710027433701936106912690913496854636748253835441468398352810570804836496830272811138344026356702761792363284738063670087900185448625274660505774370067418582899153959607878902989466556321102073297463915401087411815740811963690493088636099286953363738650269946754471899923225172676667341562279481643651847971984041887351497352313166032093318495150598115944011423949620088724268971480997380311927132490130501992552682291932797686674636096330282112917551000145717093645543118260436474281585289044155371185001589577496322811212609346475378130328698050057216320115578447392705335326463451586664144216152152484157964602040680777846365448507278479661353572165387019820496679463057093782952622049666092422682582039860450345480943654689184718366981502099267400281916066092151453365735400322687782065046289466585332280416107099858316024229003134738594739163664351550451505049782843880521815267851304512423859124858016182702538240423265460426968893463718923933035495252700637664254652823101300399401427884852870428770517917449718247330221830182217957541353709654681327335099313745448992033037770567397085553234464957133778863623184598796263820850595153257464110102684756550956422443062662216393570423901903302269024287350610351607511627853521334095131100873254612451344598927190594298888646646678572406451472785349314408824384045601808407223127275849812147902203262730153796976634213760066209217197884433582107895545356213231834345932412982594195287331389622605564822395402805764294444217723460737471320651751919046153794298532098708689753164309665876438252899370381843781462777471263397004464677918610308668290507288681742483189431413696756720323707579656144916691407827588867023263215130692505114622664953911782508087572312197303831724661859491031769683556185187720043491088085247581861561611691201969866770542462509806345835141320611433503020028470896794006510276938653765240712392921114718301320951772828452347408154344854172206775128476332668892227080667411029581296766206837744295105766414324229104261794535927021013288230095725764373938991452228467955378050079418729236323313232542606173275196460639331944518089251214553336555901698165985022239737493232737306033288205808013323224981037914333838416099039909815697864488621656797725660693332331565144281007857487981720906593113589643450241137596025016097345241350894760447289915470861401715380841149011626347500137407225459202118672865594956891744972020814436843878297099232048385972857442304176883054133514029164601021230792325874638020936323526486980491066261794879058258397151792467757242922487551344372285062507586729310401804576233762686269380643745305715414395680232145784402991467319661383047893386440409183344775948907096108388401410888083041361526289939141478482517266631560419242134610220530482598140134728677531682048941247470759165627839401105706616959674402510349978777068987599328660028268940547528587082855079532706597008987236084161589075678462814136489369477093580397344909417598298022009276505337725960704888511815099222037616871808554751288175666885938579101931745255660449176440187043650758642139848769689090999583590092859036275756508986539530060607352760673807329589139288519133703017931800132605522471391650013633812022888233370966528476040191801830907952565998005510064698986788691342775100057170180588762131591691549153725212089754016735566318793628386575779324848375912206979396304634024421985981380091625793031402452985035018755577114401240134982771226694568157131730579227425405046692179283300528804013029156400800324950040414763096655221387994268286050008611941871830611479147036968847506058570928950884098134341525662751121960087268035543823491129166555762245333596445397053660871954835270342696781805575462963610799036761315211901019747335353872423147422549005294411662175051701520802602739509508250932173957399787063631162092038715058554101143006931122722845844681774073870125602807010610505492645488218567781300070773336852426001824564587994988935486492100186417440142275727579160953427304669233692443374455219363860825455795805063899174415669363632483259008773927530548064095417852718159499458378327397634652017334221467292074907371240623728318407913653463823675723467339359474900981876632315822249812657636197521741053308515485726299310059393030429139542460706998703312531745566281384026010016682190385721004608479561148234398274436519119216875840178712149473458669197081073833845004455026917616336945239226588180278325284478368021273382570345531627080993448775729429334721545560163688340747811389973157925380295926481782179290249032571305609075960724869205501868248729989225227357357232161890711829657849182938045062229927791227319617835586459981161580669424816745595303687582396727405019758895876585271676912536714438319737793603812581455581791737295578418751995029350601658540892877986898279969221627074280078238435958507229725686441456781052068759846385866896678692180238857269500183339706040795104227093604984978093199639829190832301874818802367165864470799315816338539214511174430445211388659148615053245129874093155965227552431564052238442606784410302664325395093637519752628696302630866304896675161819188280126030910109170663793410201350967970413168133710756425375649046699639004421858429976359065211557373756801402377094198556497045428060484652258555984911977231612350149866829798754983207990949967270229379062438015072958443171824061666568752384486730132551967345262128819120390113580269694005869503885055803222159961042578421300097370724665629531528961904933570532124686777276308845959367946051403296449468386332055145318878925311216434444681451942648257455602095933949970402011685371556586972582246175084437835399175977006971198695118512064077562101310249390387081210594524203432935771185088892508439446228796799120135796314687692012435323450517970204571538309685626910647947553150447781178845940805328472039392070959287460087212046780747302815503872462282874758569258103462459765589904095017410853697546607808279501261100427221533883526150668142955494316806303315729315425368081186356549910679732308863699140389663215307966700046662927632653512021952963330313141652360107272060111058894053679562028230069964829495690023051551807652472698099193737698513966902703821743419349895049554561017128160782417712193335385675889483893196198057174641694669816763547061747626993797564007197769820549795265721974458745136404337534952414917037128927613629008385767160466152911038267552512014008756531236445705197199395867565029409904839652526898088358340409940937714102692589335166471120106021295218315296440273697046994424112754415827084798696324125828516342650455261851099711523947207456078908134905108170234925434143120669800061036870513957491763136804603561689164148787046115800571305178744484494038094011323319143730177590085183260117556276514728515949340461498308776510710340183169417585353413329826125773703012921591939895265689232799404443580720311887027226684430348722532283977186438595972205821314078339239234048458231105976245618535450548416005182508299622875274548361161356581517568124431413042387663011066352893185792725613196708935002828146194052531807351862598084010321178466038107190142146871492154293375322515593612904934567486476806381594854928511098165293845347312837623444749216311537832836060731168323418875731560239558446116301898219901744318158647649307897767347446994339734790455334068212185809020522045003515631559768851706895944615262385600912801648995637796936717386426165094875984054559617684382454200783706581104037667576735027022220715978649244547685969413136107510339597408463482708421700858861939409353696244937988849382691842920425950231001786171772032912386112831621829172142759763049873422360991854484676505324800152421148210200321996789740241666638309648487534863033803987252239314871498120576310529963101103091636109136203475412336239384687994115784330090233975994447048749155042675370714877434499142157964859715783300052538725642721334673623551098618251185607219476719996709453826259503533654987120393484750117999785488952300592980853058056523784830280675686242989137951144807788532658471345810014746206539493575311984164851796260057119951088879325215149932121751617216983887623746189235939358330904039755272877317283695585486255331788505964855161288251580693444534719632860459954395454841113537010040191882285104857829305034471083809625350720549308614475751161490249718872007096172049808196374606859538045331483389817674562973990942315719521483823484505302705810850092135289148058496056249255596947978178495266542006172016451721690794234564551842683463533021949811306154170550224286492629427873077757900069869703156454870265963211430728293105941084436915868810791086292572687219410726724689316115876996612954652163156016362595968663685647000344700664316344640513586577574995429014716491759148719409917827477625231315962406428456308729612141029451534315053087373162506655017549947569313118057106664071823144101846929949316883640128112680948371403343461883693158830266212363232362259692672147726769919447628915704692755468162251087021685481019533245105387353203510691826537605567200375461904054235148589971659935827885253189218751705111005900463159277576646104517953555594060059194212204382538197668938329011239493422610546316231391387704812004238845258706099064002309260704057839152645545477029853086103921256702658606696045097821022100038738602643026260370136419010966260406377596771820597047469887804553894132357968193945542185257857970044029527464596284696703600013792465874464999522669117236303924144883708984455951903723424853964696110731804250391547392469899259596689543021600647388762777469452191619050757427415396239613191454662960347000618966462713907995806908652555600826787636434495344253754536475239762521318334466567735459938321013210511265656959924961194431526782900752805531925466086483235455769953932487456803008767181630843268791286899791582989204765071188397570803011552724037984549834904531714505628218739470584561796118630581329731818338955702076666924267896719844285914555778548185760572217132703181627534462678508545851118413933899995704995963684643540585221569839993856385019819382087646222401026243966100752684211235974099635308526973652340255219711080566566945846720962400246652843078772331733718141888654955852619610454007819876573686091625120915438826865732370074686951022727171783845084813673187204162372043172080132239069302185814843842412966453522708707471632231699537375033695063981097798535346138240382880082685064453440789798316831208453052421579871571379826049288604213636514527857837909659294938628484207475747765053811726739065086240410388815096059322884029555209994968183949307637899161732713106290109103819945527891774136099625944686615572124633430975661620402673210440696158594420129134132832944845580551096216406397392441907216188108057693240880840348791903296523087154139298067653129188404464990057808644272757066365553899978990393394792637801793096026839062483049648216498556099235081630400259458200579652174100491083820639156081857606958524290624735700581259792164202160668168476579670682130395146213023324400699332738293041395268004011262733331875852271499622409749092759391366192844888965842897060305318415946129897128779928706412270346067798203447231068291998081868926977138184301491809841121716666465083444780484153164903842307545128076813589378377532461262160452526236473961530584368775731880099604646334455154960345861959538428510467887633429131933503318978512439005910496392926221129358204977485266160026916655253921427777783810712862195503323279915624684232793977486381261605387081650729715838950929012186491293964114532277210922691826479754179940417928095968571135909722302663408652794657651605450270106480254934971564646114299551239484941947375803154933619559732892245519048545816969398336753074094571540223865565830816970916088613123451480150896797933050932285825638761881586279354154183917335218911272273742079602568268960320685812086016890077735892954958046883746163804024469407564612131010014201297834164149664791032692908115362546290895095051859630451823220946865074418550314156585094053677930330744070799403185677611056652373155166474740786020820357788376205742542796934283306281358682035163577116103824634853533403323163018361066665702803722647351724302546377457066244502139247709456282535861135120629715830529729714118187362445198833058925561748743147241425063543942111277989884946185847614749153554331109024428980073876063603322314508895584810734042690189073099186093051742603472817468100175551370685992506242640641085253419331373717166326276598972633233080406529702552607091186895307815453796667801195867807794065615187445395104134853471323691855455556661805138825137126054916807626790386152382182242642369165290403644376146173072032688220429911855173310511023110295555946431382411957386293808445512941980446776130848299412950247814902224774110572833931267981893903198814764445291949574487178636995261842492354517700212096913427657505228040641987821561527103889443822636180704604398762446343488632418032472872468299556754183602854841185236009950300148830478781174488049315984757068747839187848067827243032035246735745329729727450863209189096376730759872198990939884584021577898805042447839394941886603500235062937637912653506860860041703404918249604188779597866824396029708564685991811876975481405806872162062568244310043044928105347517900746880631044931427115764004454788972572074737754311366500747849437462861294906862856975810263645340961292612527884477593063899987552556931871433238395241914420487075743972220125455203882830195408147055600452261481887340878482186053330253816279275077576903099263196711101970223581694571832677531522399953927971173457904647053852803525953978630421555814268974157025309310064635373707767983039186292616990362593698374458628976892175710066339495162199545857579349511034442824958444967435636074284673395880528111171101354900968705472746766716236230302926825959489786073438099797973537145457589264429656456153129382631093899798011744466452907371242563764528010958893646270312047236661743211556575692192578698260620575774426704720245367120700146511923080073743192416721198711558307254470857959726397524663838445216042285634284417886387897948731146603165406996050685099928337866875996140630897055148625179862707316802261759209462786971005723904553674072397935693580539940850627149133078757039102048894409593368407690435577119164113331701597252547595966385339654012333434616418291655240380620758345688411067172883408265634118560461231067680591690873431227287457581516871187668905367708818897186261520485892967652990592142775966434416839461552954507039516106285787833967793075296503059644466607153797311364042607212648901155114948742881001326133260053919796901992126852780342690840505412533307227248690062325121927343778843779234131337122977787669482912262674036365293221802112309176946146501094997239350393680536087200207185209033525233750652643990567342153036968767843372867123352935400122723681343234661709192127850460101765818688059420734089553037690648064822602394411280744701421846392587867808297624642625980287125790062107585529115097009398216743142134720800362492547102679626024736973152995702014711247467333698951945430712899926949808464226684513187268179501538913586022431609303284700448581105896211894752552010311201906092876891725401756263889121804976075946998047813932412590811612852082605961905458552243199127446565156194448803389811494578475061490200324888151091326727004133646605918430971770779816894954761557384377248052059099986896037190835977209945974493707803668619608372082163099755183181279119820939898969634321807812363224936654108245515872863489760918015293432661613475327969347469499974229416869251551421431409152496705370905399628659525086913702973035480480807035253824281309720223705340203319163492145186760318514971584005791485207877501830207187923335637029209618914370918539336125483315509541140165070438470517081571455581086199281828255794932926054590526976168054478282769053257104410868841583914230653615785149629393201485024782805088484614904346038958392785158092968611271676021566945133584665205335507935006836554111240025684648346307378141199965146273213897248387393214360613995375384083085019597559156120012338593183426843841698133431761074778676692800898557481882836595776690732755146238470441258967415995101350869615012662190195302963798164498042306149118908088283482128926275017353189703466211279036628037592253295532892449073631330952212911121348196526099190769215018568938934965325462100099228217482546605726473573825985271771887318757558118137771445422573194667730303787690488173819572566431233086924780270204480015283568078296263846575209716354566025823828571366198297984582466074847228735077901262898604938307994017575359197570648602090576133945438365031535932284592778414541718925082577223087142197781843507145910606395292028143854146957699225144109520725137427651688874361324610396623446211565850047107274644543736121789458935878373612893576390352101939410006212866259053464391507112540191997044909870158166557153855428450571314731975449173390636320250943071829011490059056604427995714041906302053631862333084196977025277498453125400494467561981448910747953059695615415011674476644822287179580998551371455000289846669806622290266118094076711803785782997140929804058553997896391503361102614712511462830742113203267674454664435541151328914694637248286903854879076888588879042668636568094728390070696288485584754937447901764342006405027194204522844710030319727479669609287547506942257860761217459721047768418574477663071402869836371319294606692417478689499716210387243788883088523600634405260084061967250268396564449774669208197180810692676704346306617258524638596446074552456003666932896869159521484782901445560665852950443127910453874131059049637679430768002601197897365301804250645497177918781630355083368008930670619805375957590228808225611401319534997386294362044484274668641713805037372389613053650430647739791956807420451946231457012066141319051763461423239650040040413836127204679468326465700854912684997650640514779948747769087627160829864087674800860183712190616677875801507111731749883634607105280860358610567861383703867304781743495758664005219510607466185403498285022502840011313608525145607670041045242904011224585328852004265242283472893473713052088844671466558168303677025307693217567861571418770621728284682381389770914172381902209902034762236307770942840664269288626308820316972370586715302905636291413222909831804945902697483596358143926429096196314269141141769979974228624413962579131049035381939330549811395981717920861972789035788948997302988034047054711886120853986667454461718114310160316913008906139500678650662942039033887573606265019187679914240491955002807565774533535533571453980129574762312444549440472197730971424586293860980605872420919205142600184702587698594312317268276701836601700472162204858534799581398244205373515266131637684553270909701478665045801133342042863979231050801878866366167869953344456591271299987201525203442314494360910696798388634256712333512905532667999229822184179939966203290675540036687161887601116002640668285860878762075095699951130846358740959645473232198774968016222895632632559283906098251930855823764276551908385240334921291062746049004134791473342069762699667606884265036807265316557724405087684904861006517683573844599442885481630645479232874436099221338789661446197321534353924715254632824313048959144942713750305972814525726278892885649807098575369549670477116081307740642355339591471514066014362772317097080196335618988078151733239541673961317004895009658563463044641537792764523956154724724937853359812981676346000287947091371206624593235884850062722145908429742251266165730518552405801127149340522746827790872666327235261163583808295851911977376768619401513074293178056800262659812088382315409093503004587103371451626220395649828724061323101702847615713933385822770910674057565893760360960068765071572184509165400460376584332885413555099691354850080807800390935130492537448463770211272214911511187677025035994618209731573470070788295445603546779909067270166389579680696107833688820106088441614296114465939210423145992542986781003844292885852363042702821112014150041552165859809056499041793838199945100234133484588469264100720460824204909432891597868728809155245540302633786024792615419518765174345005723948237948360525354780333750869715623666961889218203948092379347644113182308508202101279439547902058305680789337499357811468883906551905003152730429236801172982825292888819086129633035158584328946741088611570267320536987275351124114688258910003502202806667934752067724747107467134349661300077237494760862545395659290841951525734747965958849110340699124735785878941679672089584599775152428434631615235082238643923820702236297045422690616245384841893159945768143823834659932382938533610078150424520709239411904053661145966314670659327067932474087440808479217437328146110960208448008045065629251005144667474449949214908002732837553827042591829602166830932732234946193408728529004584719098752113472277836973372476644642295127851513190734782732025966972703532404487657046875988595977182650350042810581204239190965589180931349452123988523462852203472052195057105668455574723997761204685330097313800958857204394043110008627426780701663326517314352994764426222077919183261823079195304152471643357464737113876777122023982077460501249748716874572832625452211891338473084468342580906864752745664446807408688537868938414962774036611600819575537798694135215579881471996443207975004236132301239928226434683103579942362025559498083240907151585142051767521391999132348965941067464445663875999733337947299112310631923859671944287953702049242536902539992124664699721699569325931763786678973860388934180759320712461668419902197013662288171460196488258812343765545894867064316236242659991963477293139181554201444344558461391447300886879540901751758346814783625901537776592071561778412747101767102198236689328748048456833969226302431721734236621680762935746304844612306406332259383052136928500501052420090554694101874329163811831055868745587484909846153935935454482563545507335874624738464824324442307173650102135672860756139307733370060962369560919913263111980984243483517797937582495776310126992301930167844125110786449638543945437060919927836852335119264366881440081112939500835068700321477114659930881605783269854163422267888423576574900455528085462929743897551672099459487169711121851439383879802083531125407276860413407950255133950868586456439812708357757109119602896323501810798050461509203357959383670236907601394966779186189623624142280324677150202634199241576130177573662967562974852563590044994319638853708460692823485045741251386444883978567016898877017778815111079118419330482263658807381762690612993389829999045131590507618595684486667761997898567942231149584005940741077002368909038457109314068575518700635487194915009987827077669384773725049119047931199462147840841449850257264947046272160254803799804948528417989257241925818075372870159322360836602227959479866432802714520724353651370195554484758027664859965195279698988909002556408194759532753425933683852726996851580124008719241314177729794335981197400589861948207178351187188280501187739919332215177725709279688696237242772861084906732199566249475006281463518787504068104088779537103311207264296880550295884305835674274540359293590795880030841397944090585057107231758476500599891326074444298649511630465087039257413361613138058129596764720550136385372479120934655591581578417485601105296015227213160095012757151637123427396147813607757415467486236259012951033651152477491379167229656062741984425485111724137546414766429303020413431460958806840179841276201953739046478232184460511062625908572908136649250097524724620320138669496710232075594359639152823201260492621277269631925846670852004149655023438790665791188007174308784993162526595356033630120119943296128914079540031877089105597214793646155282318662473383658834095374034899568059451426701377402938045113270280305717325824025183780155965573811649665795967405491364649990935681178460784394721779660875748164157898963015560036321719860608483160864013039369344700125527095833751088930477986239035212141953238413071210101902990382468521825441984713996079285210144574560525976554882014164174637753058006815478017734923426229816362885178756429396898338797962625688181556868957118317728246092654375043018092833520585423245423401103356778149937621272211832899844611893961562023768001953477189363395628509478416706380944516963308449650057930760555681338784074757254050708399349386641467453149803641993925231321046612067571446990313051721139552292759509625972417929084706058037917467950086560500026939070332746199855181341540690772235327482752367469648692102885365442725578275380971583831772767981174542500142806323783552676852146868243690972877279149985333205695613700706295323550289247303051359108006298107755224168761771842356939167761994082520215231566751323819435151992924616502658876183675974419960203524620243883205970514421923883073792455307509337631616164397210136667825533829282380913870769926537712772614476206375148375188260463036276441867353452405838430687264489925467417476608149474194219899243568578236017588731263357835218754736280470635716809467686078595682313117354451685913365996977312794289348388743337233305278851776610953111947924041141619905701606022404978645612639850423731919091646591671100817474265916519287645661359250634009847430649370495746328507884127643838419593112024200881280954321924590277834858383444272108922146477743738373056988298210199627968444153253261512387546362680084840558397882708698728122829813774722150941981841698160679948891475992207561902050442125561405591473305262853037123691715320057335186870024719555507048524110895358872303877061387029200541449892760191919201948655409961729309628419990928863308946752046085551671220635596708711284919959666148519747620222342991683981570118355419026896422208946520523945670763723312226823580019567067342458629067136640394419876896661186000049305959981624120742535040831669969246638433430554481022862241300542360274861526284075442286631980073143094747351719351695858150738690024814444426582526233657039718123020369695385980182136612667619280345327707313112068539582674008718379331922426795879230123788365247688361922045067342001183438981949688799749812356026521047831132198338830000101309135791411565867772999177056648067306414082025667448807633440271066510095567460947863257199078833286906162690640464248101884303139094858346466519210662273730241166161395813714225858638846821395294204342170842362380209459561785064586286224877625153019706026909406602784173752287754913342598788839993492092269527721865431841381549181699272059081167410548563469431920534555423611372078099947307885876404037619337488105152042487032841553340250406270642074862111346695379210926234918412387264969224594460481807082343171845810567478812363783780428748838991125373602077033691861435455158396545594664044612615878329558957801929474480584387578022364928863646232458774720545458388577260337114861583065630645607178990494594865148315008972461935245818861696310028216412439929041767528821371798677611441544913098666600370083755144954086573671627957229130777773792471369609542846284201740262675287926534318078254727469386144764493066054107912953486369530614337095050955748229776241060343721291708659857925582855906320502590702971734090127314823850445951225519842737242013556826381631798888749038224292761125071304025482267474524321642841150221063511612957074735000822583662005169843582799270249265015431111047465265239091545372635691125455676109435147607562672746858516406607139948776310919060313673844405546737509408579993271987295086842837774776866333473963135135078492139409172528931033840452663211732616228141904253174806038794753927268089111906723137363748376385228657356512388751969536439882011930599814765734272989517516606719821745445046041326718946653474357067168235606168096405451590955994302590326428247123581846257688161140682975594680869375706130192008323052734674279522546482096900914611739384130840628217881344849772127351220473705878811353578682558055856502578870769121413639495791845282242149054435254050055137125800942129659617915461317907326613271570995094509940725097628136924732001681441771871288005245899365200819863189996130469822182714625322981058123733695027882837748652559374738730765914217756108625165480837394065914802915424164610878628454054577843945654345844828502906783406010360505668520563251927698566024676519041301835333099154173220058170761822861948412341976560970738455158879000831980906144021553179254529407750750552882090268027937267281005806697243679369256683239723481307170367183679111054497408623199702981192149309597771935320227355472820624801565745494441035645919078339925220447176806849222293827328318709543785415415208537433751047198834513667967148989746607858956552156858246949636018155424005795421424153719299270257539434839659182332539766360343393310005590315940484501937393508442807849835944170581445877051798185091457018503640992219811126530031449286428938233990834139058587720689977737797653889709279762612150294828104863315837641768342716551781170008871580276879123821859687495810562483827466604331576706440914112411369712718734537717705085004163876677949983390230626378138082562287608973435771942233488034138609654302728398254112840662856844294286277387151553124777219237107640286238570937773530273592118536867264880472894685583313044817908668719045203166794878399104112896562871624366530806172830966349673353966771690112535985206668875856653946622489113497948301909516296707048702029651906577994983379941023659834039702114275445361847801481140220441799222150918760487166567838545550439989073625041575139821833220046125144907440936703597955723183130302608038788178068400278553624399852490397904214369873588181001744348854868807275496957005038644506961485826316036661048739690653185537167753358274674362411649893461044826602091918720474988395370358823029749330318556436567172328283321707095629844843577533761729672648664885943751094764843300933302988038886430467118572155645063772863723824759755246468286759796677358529271120154463317658010756205106421237682985118439319991260506043909029604390646581677069444220719392084322025611390529883388683086380604454115856814198224236650150680786369973161870221039533319990854127164869258956903526702118670294636184481873281999354061892018922258427225832057755202725565634639889544226010867302505352852392199492599589036143279953064196160678921387834237437361146865122042066674704098955950138527619770913345920387482746970296716755765354118494920663729841342120879657867649171149362148421114177494363402253798626793018643722425652351228856657977047577746362400431850642697135079880822623704657480252837857221304573775507753136069703036549367912294577852874448782103486443703705267778237165806384179718744529942154981871532119357296564568613048018142734740083069193137334638569533996943045238820164827414552980444569600286751432020186172582401874044166366316786233307817674128511133608940389338288309381963740700158666422014596500019359151454932502072769841939666047476026075765170308982719434941137396249432148707025652128429111933367196410813429621795602700629912867281373640419334438328587940972729608147458354302091056852324645343801036499480755227004583333661159804557217116495374355610925779045975744026036080298633646483729912382095512562557270352082424644253010909520075389781961145550633092927405176500879106445439719032810786066974231862375420119302419640578546762894698911894815739730605916826862570697921932468780361093652420366721239635445565912833457612219964817007448923926056334680193615135113874319497088036378922157772048153900883637467952644935755442199453102521253458354746577226790936270516345176636351613078193209686314164209827497237210426381660279705940722016512300001932121636723725450888199279686556904959279008774044079579819297722986834750794813054804237726828838742381575259735487096336647339452304777505165179539074874882941014278902329836101963874268964788127747927846694785691408512222037055107041242948154426600796112128718445750588636239361863138441945885283980200609940803807682171694848160335003502483318921528041314067429230723121540943676656222450300171051595298578457905115046158237507267787048312642516465384392076936875049213260326430606706344409387771283312281812938940415138640545260993893296715099770442758158242557271945058478023448321045390813785209897115218951306990663412964045645447422397169988308791758537417863203855794461007051316336327647452361374341472906104646344990687008194629304935810544953434691604657700738913541313593079378304034317223007552297765334596100163994963285630803463158359444474985744027609241356791853220891838854649463183779064843795874608716029058254023683489846972475588035081805893327597802778895381304343386526036098013911485176064303136798917480400505760804023684761024487144757647699660529465173913690717811185732935784701819562957005816522024069157715696395447867146127400017129839795760145034074143986942855224092536567022353867262720407986796318430972585041275738068408430208593338962714595706787333287519216153096325179763822301942947497333473382215559270324614985842466689220347030724846717860193920552790676037368855659646683491914909109784113002754181264633623966028958250682710473224095829085422885576215312324175850010956316670147978255483180083894548819610204370812601524589899064998797184287138830480480296170523633717328832752192740015951131973542040191097653522462554213852625800144033109637117654104360962637811745575167242992554213040805454800201165060428514476081081620462991444241257343434502529461431038812776541749203493688820361373805272929375376640284305347957390418048372081308687441402526041404556305070103013998992966689111217121771544974278201200505258198148579412896658151167124814846201065167192678111016569426302235529824294175035581224748664869717917114603387409763000540120892556826751299008968583532914778379054890432672848254174700232392352427572323366038201463297747285732509444071988469007029793231438366687369209209903763074751013486640655984983572530387226643926366131488120749091875170105432613344671978439458444719905873868548858220790313180467302634794256907760792271559876492462560876776544749587967490723088032981594210570101662852849106847443007926918210765747724667020952442452881386070257393994631006615277654489524502149242057817785247083961538755930117412994144906602000797988200958841039674153555840385201686084902980497476906223428494492573347611236384486960760828177789400812865657031263881588527444978862803293049315629483824433258633150947222105450110350364321974122668397488330920677912598880618478993971336587439179062273749771061493530514149468570148623668948921574428745592068136699072553709939936485473482686701075304881300577103162958427956359219976088402869066426364506311263195901738543300525758192797440808299282371678709259620605449196366628813341061031964839515437314895111486272074187930078381876355227462190837728789706162364094060608094124613984677148021041494223243417616427490806539381157002390830128797549766037141757906229546272539211535938738130034731788124000008046797707546434825243914081584186631847470746890352938056345219672744069239969400681251153698939218838072217906497479866056104587480810229794831158520179577928617173121554509164075461745526349629647904976504188711867585999471838622002397574247862601974571554895421603613028192271582878285612822095374231991087662498318097109493159331676710896503432795733974851406302600894391304024358209066931533477422860535167807358751902530679496217415422494273755026246536833275431898479125472592346740737514427628095695396810903074819559873292342851203545560614592531367075311356709084161050475079894228342607951156079766656456038291046278610325130055156870637192389155480583810910273429961923525410658008075928221631588411892033766844451269780389053556059175763937966234720417223184537514929749064671734025186499626663585312619919688622656148453366712867227224956586185748743063190250943440274944980816935777789529676265576655035355545764029461454511967797004447067160595763390129121281317464345588295707776869410406793116238254941777668395769966154650825476838160649521778402588671587284063108130644436289092652700469202071081486718871014010472172200705878003468585740733728484497961855845423235797648036857543207390267785513898943623036959916125998278305612391438037767164645214422296435639267195109422063273374106693879831844745200042012980590136330160435999631910968738438754956080526267824523506464726095049298094778381182270844533434753000300798815769783204191121382759845858450160993448540852522407522512662892417427393838596494592312057125945618606307343067833889268342266882199510392710050030547721825551312918959419423450912197483322108212524312064492854175230630440258682811888344932910142049887019317658409859796644471110138276912171482009467647342789134424054912761424060476280585283695540613999234034942888658249673899862469366529777911717585975550456196783456230566876767228846799284640471937546771047318243186464935728967818745481710551766573247079490938717899646769522384986009538201609156902215820206261228908301310826496249392070627418452889355000817920060694409459866769866614990473984222616249184245109033328315504779103084614583576523067975145328602832002724643987048017933189594209060634999542844453865238924100245937630439453252318813530281223845366092354979245162614099355806536338957525623465726256884886590346365809725775009043673628465441048941964622697747294671395259046836005981786900364864112056940890800318001840290760036148970942073348843106441113899309546840501881027559183952328653532935428552097888108011753669044478889199889072022228754874735507945482197115466362315538864779450107780066725168421867288142944537795640975976884279543928759527164126399715099345759240541318422631625849610053656252568585770344071284789769678232490046465376781500664653302907976888598203199818825114927752687682900309188725172585959737193956392488680345876611069334721195095930695807473595576703768821451824940195320158400514767659889673536352894438276174617797556530853706412266377973936980756354340162826441662759776291124721533218206478538075078755720375188047012268895317176874275245302594550646422964713454589816380134088589927934469564944615908258425935195741304820327489082135902166655226433137483006389000201333562911488554172069594190397713091439505457626174829962318531941241828224201771029236668363645443636441199097804535972806372512211647041055525731111687507649017272417801759639092114618823453870868772500779611992827229073609333212065979434080400995871670559933414358340544747529404146361923403069950484978641683788594900607002992813311776274501870786609526394138041638982415499824017353802162138196109226422301039799618166410351833458582539767978433093579437223267145795705821493493098986006227456966739193274492253279348198926812216526245154741512858981190353363774546736879788166289199040652322114205732923457213856573816531724418180352611014793735270037459681299351632752414762144489637861649737777315169829971744658976258075625450452476566537583531877049822107035305911791916728624582647382497970975950801933676391405417687766819154072494165616468478898580283669778100191370269128486836802744702762950171347666431535305408231163968330076343514902082196321236095678006386206734773429880110085422777237875479438717154099888681170637998649437601625111305574002007192739081268438792954338123437420834757237996274168297408224771081314738332029459015488248854871136699793578299474987576112099331075170494013849892050319326822082496022153583169186165954388047408443452653153516961616229920288931271199389499435935174583523798112733499472024722636257811482745600443007913928744122320305015973384865680138740183668265764770533257070608599968578438054280026911727744875270405322756837536286205841764426567397305145871400755969268488664082195227356431751882365700926669901031804779045268698846253325554192660244457702073395106794954596303482736107259629661956913940503677195549028882825567109937169702075937792526787428727359044274066059255305035520692112890877351573813242684036167045199016737490051761750321250747702490655691457865343021351048534446298426361605989221741016124825842815323373782062272506662296541464476292746425305597520085105418858803600449926087768296756500149400333888115118453276123191481642927128655822305564725511151464829134212146012371088152937617473472046923217345917223616291655619318522579760265218387123669730956035884604820799147158833113566432926848799275274493789040483186263435180222892966424590353288479051634114422706699427950508457660543501644031805487709016644803854710716992557793001622638107520510233930206951246810817303799552791934672775282761161699171360086304782515626873133116046007531945176249137199738052738937102506065764132031553648389446409125424762510071123836973423763672639421932422631084679590299898594714250843105676974526909739093659842680859246382801195046612884836727654737996168997330977067436650636239253109965191328892866768903043753272080316000337601412830508939565460985819509262155667620693905112762750236802388550790797729324326782145020281261207527091818557255611295210538303087411173700944894520288481801516410241580273477229679301499362986095230748862621840212968419296789016415818575242799008742433154989039216990426043778134273140098133540001537458980332231436771002812944412034141697773379503692834056669347002097251302256204452925567759327383938224194380008486513893566890410022264306681558394560351241383525694245233729432766407641458344694971049685857389651198010408147909272901754665279697241952452814276295207269691053207834633079198314382375965438595435304182062531457859709377455811344812297686341945441097977596889908452773236931036082297906129184322026524579876217304060954498422542313559537393975997731561699203719386225149529048858395349834602247908145955124455961848513170489258784405907589142696712136206605401176301219232420228957088175606859228339020669748200339361990015108125930842581924359990604480914772573509650006058571784679909733374183536412778739906786865409077736774470305499900671372648728831747998528504246313479336431837006048496262450901997880491999008247292818895962256308209563565952454405771269273270271121251069570298662486173503869603467360458755279480864980259063849408339240069225995320122391419693118374461077936068484310522110763015875809962211661855250930402965826400970421484269714636522371951723736871175943579731179050866942262243353488388717395671107838292706394126301572383365703565823482348140118107794720686898894337747538068508365803188272984706812239432278681563314300251012532384893993683453858088679343730433537067115373177425075900459973514512820891410779655120368774024395421454804379455396340508650785929919769029348126482334777545173512180169603525848489054285237142540727171053864539572342924199663183670053005517275653707249290443777462285574035618823324031590587545987799647397510267900575297595367720244487700080703423021728459197899932633555369207764787062042882491175534739528519478450155150953944599462637314980596958833202658083843545251932666498108780220606841273932703898122120095536302052107655781459785535069686398472241726731686849092796878764441507065707600010998943180357770028197847030595785327874996757173979079747580280706896081965591624559950065185668182718191509316573344536984829638086001205193924839529973803263187465772350914173842661662815308292695351027899076639811529438359196811652748991671975889722878504601918072539336656916869681252046027866279214812297934509427633683219636480609168570350400820369680678267190942181390434140106878073494875915653497182083136924585726695338233163879233367229620582117205166488553823026133343998598346415380434620343863860265039564991614849102605530106423573109921287246688334833612841849474611405682375838370989048911262169353771714885720600980645785504648157125562934645993083094510593065249678882403999199201872679467355760548187365832632455644347557841496235560945149906097469844189709133385595612976413187306662560017400757012690522412194512871884037902867441227559034091377351462018867688071997548629872835722107469898402894836095142541434372611992962825630823747805876644044062711972198899008177194528200588467953702647156527243030497668422433055531403793434039356214081397694447947052815067965246820366773357649883403409810223416887271566086101425695125232891764780199827812698882864803015309942210844879674015752824082580795025258318003246875102500454189844417462153749177509420117672789153503235159279219115068840539763425419987312565270447586901972181715898482364403451737481773308406609272786434115173073187496412976836999113386252697883751732676684926006802701932241605002798148395819497742287784070947595137415934138533028966214042082071126881063873336673906940045513627165637089491900275642672192514396314335382923506419266192274578772538481532063192433792604563749688135284256597627118503759335849942155361702210330024690339314212701407954472351848424958687900112391342601798866614824177846476446578070286412142036799145911064119420191991901361442524558676281990316791180841934804014513637459145408058134693784997523462519995215729533725694482182865413121212878392587774908546119571531815532250012058344989844188627630967481692649065292133241924777958080050554370743164446862316781135851261447665783037724249244933233985847291527704901140161488312147910415572714463402888236568539854638869090169207891163260276816096570772877302300027745688257558615592178948764085343247302228235519607985006081779158968197700403489813172320447706123279981389288350969703267655728012443380450611334575350235616467453350997219815750238325299133189267404373002073066445607462165351966942920312557183257364790762152858519172704869432188175327895876068339656551228436645120056028918180585880960535113369419126096624328189178079695233578705677163153803592320074615828956509019321167273153588790262622447298027972018180793710250746178972009383165744725363706055841078312808849302385801696962323810159520825928823315470051938329807611139058306034361813929687931823050719781972195725029007506355951407883331390090883791355978196993759257487690473609334662776415926243546110031409592700946019506982265441192660060929491428596097147900401585026166959135785501498948790477722612647259379626440466396905710957713155313335146900580523227595247820180323870589961832160638603874141147271689321505021813676770801556676141477511185289444869152560501122377628236575989421857622079328767825187417659226474564438513941039625161270890941795963240486598780723302929058939214237472094350240145133866795773808734218600441589058923683786379530712080967575340053220503254447879849180789566881213024240653106853085692671033293683943406899796577722978196007347257926180037874922620877700041577179733533468223307632196697642066390888432940827053905034488868960353541483721109255487971144760490150982550466462451361941181347502324734065006838307112480193088847669361870354664709317942907496192711038513229675062279464386054796205463723188898915664449363424814739083246309737319171090367931817635766646696890412382167212107557600427984257422559822843542785383077984893757229178166770113576803125093246318628738724559841991761327098224506463220169148952242961961106095178989599034413270476177077659493883475682524223995862702607751043858204047799468048311313643294821710105920678301000539116835586646877073371865741188440256038529620587502825759864290960479009863675603165246578217656349989845214792318409363378742086238531006404139958046901499700923457641729478447509851996310268578295454942024627646039453200419154439268960710171142000685390058289246703672385726581933865783592781387753853283101993915880220121604123704132619094652353417260743803437750799245791159223303007019451821968179537117681747156627430072629284546226736629161201115780068556366097374566555432867855336949246667583724335142943062936728923127806420747908220772747429814603342480746291011884880738292596661381907503853152273540765894501806986985295290300328898823717509019644896618308119570001035178353985160241278202694370800027845444004449148100413673284998270176077974681719636155235835186064986030299580818872643297520232884089383148921037909775008564075592966149336621390407609560517477482612046345866257138735571403869458093281025960006249058350849482200234290159291352196457903383770958208438082918929082840634212414190895585468899051637336926553707794307142232098808968971797381620643892712546624825376361528826626819061298603931674677273248968038181482969870042761269820119758594698631457792889912488594750366751616438279714899649634133686181547538707321616266830792191279796747461536575184475352121894304716127137742404956140733799510077249999277379960209788967500123362239557744498049904845113129297162681291239705700377199636645937966025232341211637110080256244710295913526311374165058186293049707427684689515831553926013950736066484752899211353079192429161294689361505575436489919069552221367619617531073414007554099526057686751235712146119653297707491314659338856707498695200458669224724361127717488366029433278543148982323441428426663911364150854011654999609876401847915087744076998854817413695073763751482711757901416011220111106404680666230289907314071156083555673962426872525026388202575989674630812938674606556871471335180274008506597477586837305119990292419807174751351489257295164173984560810923158865763492258619276108794572806136245245055012323931481042693378177087150279981884311033802333126450180157236066666801691749930366018197045381098477368893077172457090778572457714660315408094324034150620923367869996565883169059862116437421151816014701506047944183914650392814480838051236660840162673813428988262222840021849161551616774881022420282324282217876501233163906179870797390555460330958982649215255696582442021819927949863572689066046420754414637515349687259262679662305716892539006716034486322639800757780603328739892423595159504936224992022261406263255082749444654407467665541914506369288689636998029460213308971323005724810757089563363043264263875166219438271446718784863264195735164002076960327559077318742055983476863856176472698334537627533919332458705422867477562905527036535691077196909976986077176799311456764386774373578977902805528473537849909156735493119068730998623304911188506309570346091070559385379306550465578631224857872201364732746570542854712813754188785813298831481597613484175401110844392898503136276096838270993562913610675362007190680882196625289924464981902006112720363362837940257097047031169003302287894773624056880387384561715387426989333982770467466350882801200834441034633776596556516793750650147193088734921818345067532585548362694823659732749199725263801530327256523457723504601329214551404241641342421366276672153817308281772105268094553029445227311232784361129755341432200004561614841102307950171212755531319785169852892753522701337249207059392113997573467064666082306864036713162378404837632751482922647810440064673714023858495958939661202086810859341472762696461328498076557152651257656541729687455346523078325084627887947377069721130998957230964784885288713319588244447273615109228875903589614403690718935534522593796109139535342254782347524334488713166329831556274380943470102435410459943655779440520725117083779322435224275781502098432297907803309752804479070063924549366610852052864556579877354815215135229836250437011725906095090265531308895385507310810971456051105690065061407700786914752694233207584126507497848566018189297023720072239860559934469182513719421787994151129662709649694351691906075997559334945281020410231374483026775771177175063259864386271275163093143828884833887260484103991207456453705179308483904722561927755729992514748351958310830969861950392355681287179041337012298900331872454629992235678371537744333014581788363053256021570876209261257088993494294311526521629627772293821855481962716972523183856675355801953662571333415871234856463191652754109287271144733193142405179561985880934714011098858025592349007410535679102390053514359861668323080633847885167592846076227393474744533916191627852795186371748401294107750371391612434320001723067394655705244744648846620687912560150731002359900626565311683015239456629076528849151690041145653760260540961330844385092575277999599138319022880918757348756047534121825417594212435922504095013884696750269735424881383341671098352326585968678669533796413090899703538451526968562097263718949013013214365818927426152169578710303252898664452960570685670321651148568373439238744927784513508031493070325130460292993658707027055152490677862570240291897829502707498143615446070461223043396309972403052419295839979089152475943207456446812400272624727556826059058573500794183524066310000255841114337400647493895503898549361400669937685557956701585506535374036280340699428042242819208280085394670159005874520366775033724605922883707361628399613609165389416540940558861405857339501643396731019419542656127179453119479379958568249599482962466155194062888425057785155289286358399717900937114114617817678051575038203418392296800379152252215259563431612933018933313611976775367673043762903076686538944730085267997338884979513170824836514833953309994422567362761354173980944119249182308462758977595117759473957194052970203921501442797982955013001599461333287934441302592479492391747712592329984683272212389397323888592281225393105118156508499941469893104406434881878554038374661696313619176214278589809101795697294118479853191517574141504250564342579034226923856766554881256248145403130313697691733781832986628168370076166177778850085340148037418637059845388005548502630992755422705371848008257582025484904842032093101123555505241140217239059631310644811615559097482454509508989031228895902360748794938665421018627786708961815680028344883860303449394691962456440160589259625278213718910747105792309547359534556556050024862235504299011150175011655769047757941308569811402775566839040289634779743940029469764158327576518528960972584555954227762492936926127383303397183006160509831577897719364992641082344783212689372912270775027788602112950211571353779835754028177346761145865126133761884008443417061996180520658967179796995363811094481117070495763634443930853164015886601720624550948794347438497859387056914856379710661923028531776601235188172337011917659867804211553383269773382220781221523570029070561232081210970877191190335613717606716366262243666931663529981733386180996029047639143448065985536014331017174186403075790779394613256611626085541453193594861739388426563877328757848573658175049974419572247469436843602839914918086867621047643359415535178725851628016770371574492850532827899046400027231028928561465557854999256907706316307401308738188099695955368694474494248030955314961568745874812535493586732122868069591997077043928625216082558170192254447476971964570955043452394065701788608030849714826355477498840151980714659849584813090520209921172104963434863879612621307638775839206288178116547786329473589597332740878648791018276537753291128093760366544681352366825528013800999529218539585164551886914653113019832670655315387892105855650266172991090774096595652346739072606580575212501093313756431062264584596997333678088468337027661707426036865704767427746707308938415539250712512800432926023670504322507341021339385055106090889212660766369953430461605190658806268222317137393821483708951651435092766479020713166424151049750473348340539280604736442103186524979233889904896218191935699683565877212987612647699322603251581668946181790625275000992469723127325118027144010046594721317083026158911969430620905658210628216635567854840074757498500203062536633347025020438784358568198520234139918239861065779565912985067857512813362498881508687522600377138113835983149986378347548006560641108669519409353256530231420521963749983906590152295440150948336904214618981056638261454061845517436813086145288915703188619014254960380874605287163963564026537875716901110049494763143872079171221163011163365039543188481834718534521208335544574563103318048404981538984149152261600792707834785936082741074464940267436168689242461384312718341510511822310399388315114886668878145093276513386205393186574587137424221460649742589596623122480793633328580509810830686775845338440640498971969415913381568951156363700545061429609121354575168890811560725920680979442512707182392177004144555900415364074268126437563033839006963176237488653048248177629339616034622840679494596705254252303307602623312337225594521678501453432999866856458414532608977859764198392100644571594393051167008258954471453627308410612699360512921522296555881212491172219410754502829516990093420603530748126710439392688122180998235455577340731499369235813667561338894729570549688979067412251531646581703437625039270324963478990434515331497207637904981321246839071152002342453095254848933711287062760599629131183531495433514320102970947235900732167402307903287094931979724011657146856448336670128386863284550551491994339471534138984925678925636105746672946513469009158518184431592085510711614180464982204227540736595239469396323201914888600997157171602580029088801194122670035594917934515012527418546228061512446376484279759317405197668835686589627511067489796937425601473521860422239415579232281878988231357737098291728475490692560963201783157474593616454501662530250249369422288101365930080554923236373294617393783169784395215805075290548714700182043060607810817351600750974373974215820099415278866990379225044370545246332736675655959577514784050697006586886679424367512155700696728735588795003650668787130601763553248860921041114475098842273558638608280930838820677098468865661289060138773422363067644256011164594690818999652584769509110076031555494763233005793957001811310108970183666305991486522443488531615125221564531809183878357100019235169967574006376211595975371106950100150424071222350115441885473595765041141659485015271092783850920965752542488306721410979420634349773116132619249615996900947742954267643921695046935873319725002473385841177599292428296626815261439377786771706310601768251922935967645846554887979920316045024859575282285546036031753615413034351693996315810040285888590572829711116647807115434631257006455103758531641800112272626933911136746601262730471208670903711630066684392075652881098319840713969240737770813988995708190349229152242273310215352482342798156229825818843890925125179949790871407866593650273538853815584068954148803273958512416668980330170574906211287793456442098887619194068115740872728203983145715222514488534541090164065043985342921138156069565545747592147013594942504399657903943668668894432484856363229541235469317694982498276943549923519135021166832170751700460289230113578182464904425889930185201645242384871705126955102719772361579443219748262874071412404630736972475704732900179328816434708171390746001255889133307508494928144607718542820482896680897636908366542675650030172223344194649608928165673285801412569336555879968666700872882972609097915104696370877396261955125882786893358690658960244556682479833288188216014326310666558728211825551662589018948955858670359570974280262533967709014341813148984226832525408098955206505646276112358667203121944301267638729735897304289802055678859126080408244141352006197715703345759253243867715197927092948752908602988377018892167345205746889713949306206118758468142412865716489817476951401172248793386850368367233073334642768211700254575195596008255800639389107434040149781734303177283350838707031038547791022415061490691508632837836471412504171823366797101140172732724339327554626750221055771722108413793434874770830194623442024114846510212929471230432954542254037492938351545576840146077021168904390453282287104598905564975943052974158926212225561047760667997763388099750225241773036173483623027189513078967856920200250924708822143475109252595776462819294773338387529523200428218829034802376762496527393511090809272056924014146422978503729389162143198537902303332167799949136096569658934885361674701573478998171832039659839618374644954735679230713418691102235757210253259187443095184314056381551506473947470217133134263259423678557649379026697141328505701956531549074670999090740610614663329666784732824277998059297593622212978215085807162833591069866820630126172910933255773998109506628361265975875398278512127064579079428345026351122180806879668025404109357202870012319478106106788501380408169702197586313830286535971988122535687915502458055528464064342639192631370539236949841795904999461860131447150543677122696842280859284912565500355276968991595597526568327592361423328449932318690483106673462913605853118119916599804257103932513349432444470004269219481621549507590380241554251737221555259417634873346139494004295483632207176389017848036661376063100705279712954807669622140384977884755988559033985754986253813851336401290369689498175624090291228976925939840439657180508628868351258408732476514259469296928491741802638364047538720714776214481429370052249424084901503316922027864951249027072328576488009980816774618049016527026898503714105271648655525151301485293737609780358442784676002795504679908927749936948414077158156220248287828982550491751771330248320586043841909757686117569356134081242817708122453331790927542998849846893793779234531919474502054913214414186995428276111261995692698128767666843559539073618679924570050858170977679292133712320843264759092595564994105657120357870206899467130359523797811917322503268712081902636025114629005602858441584374990185600917015021282074214779958502199584702384159127199585964855816551349875720478275825531697393874837751338249626436005262130641280461598784106041605267478744833560892921955265676120562715917255817773363429471393463040185068417522414580326495878593751680134060559679932399379852385382321369595741002148351331700603766433565127508204635001191662570844365478651755853418793447264984980864687937824264864237472757646099330623095145636959659768363735859602913098652547327383869069325838056243905237008295082230581663753760962811586501786527118781971549801132909351184678353114097909833602449422308938864241858854144214171272688787121258722705372215004097925155850115529444808740865894829504103176701532215376903485171830820961158857279364962902181181763017864860927769452134331347324741275002698603505053883041449840597467494400362279003444757426306623890148026120478571135415718438992958372551773576351117978069825247830115208379902001627014416580992947992692895626596532973166806962975295462382036021205719621835056739599292295923913863821406007555731503551088361678356578146172721814174460994366594939573780360159745886187065919361813165662511606413161077784085196469515604159770554958015113467140861442194060787068901078272005607638136704862750697484623546402337407203138482728090716020427983753994463941303529012975636363048494991306103473716572520704699103187572609304384200112482312396032801554084945499244922845362396176889705014140385553272456671862905100868647785314025744811343233459938516744842333767854511725574109042235324510223797958742430891154594236187892774792539219729393363848438593106886216004944208409056135902754747348714987361020093624433156976474135006053974301307811707500022289234643730010575283135596323796259966872862102560275906640220821733128018560519196235091165389450306824387805128546232299841345438294521119630600404851320121062743532761492377965892369241382060012174474184882157476445316109025284015718322669715367715215688354311628725260186896775359022838075008884054574147785890315732260566136901538158889717878990705999319305750121753238304595741599936823606845762836897632454350878274052959343883897625724277208819296104770256194061825196742713612166831936019005652989627194176175982507951979391104098652869321727388810779048307671454734088776860316469424710724630846364452613647771280346703881611896844083356750472455811780867186032095324120227863961769085081857115263059623491308809846533163417555629811976573193154848159509944274044897576716134837275326015509054470309794914427254756096862673881265253334450091173001255724723151040833561062757036529184449748990001262689693303624820487400885725041943510235611028033001968299399691477485986436439838335213845947321412211136805565214649590048401949724416999871970016864117736999671375100099406811608577406145689682015602689536093547074498427023707751314717158246119863803355220406565797705754106051847866043492794061356014082743805341707461031300614896180942839735689310482282999701746732673250705337248563916591729732999578824853535463253608859564091665682734893511095288929235346149449985601578328399903516383929524211195264097762529611776720951268047670209398668053797087691282953885273750342654475275530882085350600585710496409081855357389605418321131492937751818064768893705385936442032311794505245040138112870479534088666177646864367064698730061445259751739209038632220825954739541862577575617199280541041392996082525657662398433838825037666662259401763743456828236947391549245648991403631141552862721929158412983381991964707107341265464176898955793289542829963106941244498266345267864923405693325660534902474549181730596843459683024795242918332439033268651434099077798204291682396779420566201488462689131949005204478834078984079861673371709703032235343960402174507902598088034552449091331329959332394786354031193407893444378253392962210172580861045988017782327870210864803101352232480119995871212712088323118406215009513643887796515500285767127862521977630086100815357646094421620296973767806164805768078799160537297775366592329316327968077360001713127835594882671953898290203852984104465114210897145262100737575706695864435308082444391754007995278107093117680137930939526667882903136301917151694070672955911159126296340668794358565158422454404287334059576352305762950307145048918588480027653156055469184836221862619138710053751433173842574471679533474653037306871266256688270845801338760631155632081538107816377598194577462019531452903152685227186799999969271102904334211515924573657238430222952132808917974071718781298353135430376938734032554390083002786935347960700319580021250926728179422726441629791185727350887107247365808860144765559196897935077348533286684815191365701782361388491601105648939432826592905864928666799792735660124982825793027725138604726612817431647616534774688659499161796197190750752015301372863462249638871958674254375098169425520946577878930710598727393615363383910531362718913052730939935832996588708931218192140851158962321585264764745184698994349050179282410236448900068104995827867762933834889617340489789647713935023384952355568965273784993433394075010354199148030296066752666129063957772091273488664568586475734344044996608246959053624917837236974054995292787664612828333388312989510384883187854344462061609866700600530195949277642973914039766967570085754056329386253530240343347451628787782534760861626051838015735941337890414519948954992595164459767934501147960358823353519639741177382368672581424986516372235601558589965864729468622267107138516882138429585655034841891474056765033908923787045933755806482523547751803480803161529326673888470407502890053724262095737840792676449794926928218968764689686155722439481904717241453528726999174304369465389833113959075071208989318884867385921896284203733811278221662905823906346890354969328635213791175747074406436978314032262473071348435393902751627829734143878923404009067454516468876354584604707189089185240511717539786736770693575608243647037233647853288640958690896361895264477300505439744634856342259689769233723218986222204326878312084399551356221100199966445675423938953617843660771757546883801808522727953780001113209856262457678154091069562536940626932659151242089550942093846288434898642641581094294359583422589350456333825055141033978719047454539485331110605370295444760936809953377372113807446707899760412814019909784518557626579315297219911632322031770522755341653617138715326911516824286167271206508002079846078764109213424198970360625667019013188901808756082539443614212494090134821456542979217046174754190482081474943009497444135687569797665714123560690345499098574848166860148812497184965511611521285374686156911229349523218753756987098642501399802305781185636727404270880667873993649319985917516526710506625101429278901306865530522579350725166848655044024072301016170140826942386705210031302453568425465140835277640007046420143305494510591052825336862654794636771654203264553676852776829015526664697344310945618866295899482469411129688272968282740272869789474364466780358400673801063845634107285103046582742024399733868005186273161697097541564365871044061542347714470003997945975979827107437456190034392636551236341984697693310396163300692033992482724072490636043788047560276297306651665920143025845386334280489981552978612149632763231326524718913912009886769732967962791503291905674561326954369975069278747717976524907557330501206959962915055393252618398758524383010163460833044381533302551136993877266074416300968196150542954740330675302988494609556651523794916861800899871995159790560345139021948097772679844432895438230028470801342569270812360328027219782400409351065278923134204451694097418283163060685675904707493911931642194059790572938941257148358749905576198419703571118094986849798129660796703182787971960190220778840306015894893620131173554397768664072664036038330378499401187531924750136566422893607155169083680714428802130022318376852821102097101882257635553183780351502227250664527145125632876544396464570779137590022945387754345965243105972048133997083683202812777283454703626363122850337636658905904990581083384942512884447527284625168462512437526425213226209140408406180068995955018985080509823453303015091758823735166157485380304684618119599362737422398678916719115530367738505200837750852747860000131809316379061747721372093096624147531841984499508526728732694112799430199757986238970928083120319535068511980319168241649811957027435900353870258412474348646342848224405059349554832344861716249655036497944439436690330966148126363910184737283733504624562475904069071015578201093699568772169173314169606582223086840807197362753691024988959103130957279272896403588619676516764967068824540601321859974954416984139384933020338165335615770797776161381606624223377954150496085244091480484933094745970946416958936945025784158517734013646326308364824245787952402786708348912749932391767537187028355515290720034335208066254454775516764902345286060937095987283844692776187569631275866519386080337097146740783939566463672579309933642640112177727324796833602031998007430833478160102112321602613402659816798058250811922546990843493857274194558746401504567591220725734573430273345524780689034935428232865334390385662322758439387034316728523637677267160264711123327439864494328080957838651926742021841345023460635165727316205192751993245845019859965761724925153230520973038172736015122492192903984106755895074745471914677257063941429226807975564609901029596183380820827782915522048438261297755892828759044553092863887256901283170997679533844720629100606633719300213338529301416462029566734209692255700992806564910425629934447173035276293930131298874561155675804363954015914048665348476060879899927164460572143382118232863084543772161298000614465268676748007426927738051937714910157757331468519773642866852088998480874864986946055607220926762742800155652310185387476592654428745163218451068918097808406286905261672878089344453269948442266223486689813632695008282961854620119275684719344872834926382754161982291688761876128317318030696408607053689434784402058244275607462307743080850588774837679495414993758065159384276297258490739029100009890326119358415331722572388012842168465683027324243685727878191725287912595036998019526016691411410610555703752077831260178767280891660156038113808637191639260082176414355215194715735837320144394499169691345744368141336166448488875498060827298424075080369271946449603067858700660728205326479794272658109249223769275430826693355882800624505478421051586779862207495965413357173629405162894948791777581499250874825292205499379637948909740876403146670250185933086857375077077045373539615173136838934297700665248014637635514172166574010303098662536051954689933838922071524166622442837931174244376151353011211431488424984126207900050414068925737097467807068062280757546518690582201392547736948123792554079561305109187581158416099747679471080211742488254111360187541543856752841142404090547993136122544442279304870153153763400016601149432563549127927340143400498582620238202688975074216171372739864505477054847939964162139824926737420834946703102546987500824360280866004673189973926879164167534049163554750001300965838430307099869710532103174434028132449026688768546693538293366320629030645863118979766108528568902333245638699114817005590294554677860934658036706503758458558629756908497219570229381893336039148803524694642173553188036654423681233706984243128942622118278690845002172901128423741836312920067021365809394781784791278785036684759820839766406484905111251712717381280208441221320948728725192305774297714591209359031807226389940375341214912511554326854577916205049235533176423252864939399766930274797433696929514063724468983451573853902277303746515355977423200403816730705867708703471620001333454688684120248781053232800117090531143265684912941090413241940861443704261653224890663220222910818165694004728979320966187696382958990152557041465755485692088579418534770377164232189645327008942997262735417302652973012961829797239211275097296444977004130638996184880243382895012236659348323211208134076201761147270918232986853864440403357939639910794575123127301817245253613298997052259253642185816399269481226003009026972112095066375852517841596259883671748638902782993706392860500115993713307742108879324447185970956181924868798988388460997662800432151935262369489911424044864253997812963269572584312673576914658836274507721263335623595133443631957245994216756207550148116510999414139831917169126210360810158826388509488940395920626788198011618276218454158606950226984520377187473039207132787010371571031385956820572757776864709653507288555877487644334934979001205942870245484123122469317494344008522072141121997011947440057812561252171257501579720680739843792155731947846310175389310513049030632409529805882829057209654359285270390709998361561043802313852361058363897302308766537405681110782071706288009938492678615564887555785486143903747533731785015561532378949674186228577487067186325783332447393933643644348896473701473875567419263455305553184749838513222998146534193830978324113933004262653288685056882109084543115128202203063159973656111684975120097773214680115276504950216852944249417152787912706681975323848355301519114911168946955186238001697252645708559247239693525897769207384387707335083088083830772852400188115432628284623923072338748732221424871470360044184982180950035211217064014940457475650572711218905164905340227227881212195624466053661679004360597075348120698091383215964533481639413739309082501055628517561364426796797465473153157792171596813587190324211208580468068402530247694110599340251225258252391912846356073554745596665025565395876462296604470886765141162546152977153641246577675322385775520490417817674315954710672851794410730823024722506114099764159554994960327211859996619495667777250747204040177320007227464860569685921386565604201121489967034214377998116288589180886655954467277692052102043174678323644090268948841880131511732595683705576783249449847233171532155121044764880846079549271039612302223536389266247911366759631287974223165928777866028493819736727200215128565378344962111240541998048133364530045712100092525928539888119887331317998722623368562682718626608815929179125764559100240144578209010972742609368668532194226280449241989238130338535630877969188452867292980418184971366425638730326073515250372093939380807153993344461338595787826368636009188659903121037034475045022195570342843847871933844429937912410622184368612378732224276077271908975169876341260136731914686384069849099652853107646286472440095747240545542214355385632157634079147143443032965621300031125137968815296712801401180433228286558475652831731877061713568824831668413257695938035842166894856898269507453875152140409352979656262989989332229749865997162049045949385041133029851615977368122351887700909833658551708558636813066907321885866862341122266837572701680671609606771643385016158140882667268611400117949024130016157780906431266646166786579622391889214994147062422289142396205179171342040598034986273555414843345568698189878830305214852490587879732415210473048393961486129994284747411016232553684005957320158492237370827902026724032791380981974464225388646278863753010064793826002557749354560332343926150194806007299188630851628111827222463892153571357602342511327853669008533143559409586335394825829463119826701637969207301684909501839726668075219975934657466635866100468831269210941520536857228276415055838611983632473130849726291769223727356189185266031726873717807655511215887267895292406934509325842769827456887383418139028211483077253000836419388495829004708650014374562685428882826181518875913807956051481203878816203639536982138262871743100726571407733944135780476988728299849882459227493951036601545347637109563387060330890320740125110107276857387117401196666963844449418968173440751132256261254420073967879937773581873835532867890597113590660681511598048900398420458709579623222401508291331085646258758118514069372910760988881463589650311458154856691205075645450888503160590131803855642626465448274277972902246955121836813286205092630848645214313170681127125013928635875873642287029904185475364462723395720589003428279915592241489497898397072191186607021992920943928908223614831672505724193644053074757789462906433929501464158878796604563957748360480762060613677461912429239127563191755554714011105278893786257326581706537166454486459389992067295814003114979517835484536097274576942580444769823680944917493920257649633487800211659447725821110734230729983990917445815278777565040418208310459743842908789906361912901009038385321383008340002488958094729712685619306234022747980521272050162430401294622496361771956232857244658037097237762428587068387872306239821207397539791734346821721030599260932181070658851316190384622908533729521919092395608287097818965430829291877644483176370891200645851225277762443976860694980868574439956624352367480363230627365335669794711558692904168159544437201636692002658814144292848710786142402355081716285552157083664081426342390319769399465366500691562070872724132890854119306487150598924610788146724591163252199093425332164420212237612279807777784240563275514439412939182458340322180879161758643137069198734855215579048703861031159468588122793103540503261817240547037770977055339936090559709555797905145912228699207396268547482237197435883507005957151909713991179920316966407238319386846098601649403847660082608660485221251357233009213820815315553962361248751549237452081710762031522261575749721438292603529361838568740074374252323015268506602508691262033922243901541180059244766025426072991113180897685293578376802501570396687583274116668570628355394620331032449161195498590026607481792401801959012490289738181446408311686871395336244251460160156951778741888817507015859989440223523325199598082076561643084102312081223917254565126051443462048205309530604268989752553414669321920240306708060123492779808600833172099387416808822147077433039241413900760282083981507946389264981320882586804551035521523911301645629925246001804290974707442411833611051544878273000480750814979897868077011964385781974043144985380036317455788498236450474596088154776949003248737647296861107084000833989620599067293155027064066832926572267990464636431167034690117421000070351870104820055513764455043781322369535117032283427217061054542737862412207411878705696356328760053491816679232220780817567674832238619925575425843932323293112241161209063383881270214235040770437431349789201157289776212965397191119080799562582517212387844189443308726149816100194220970398375536118546942303597501556004806239044113102045895689080323577773538603591683282743607880342726749321385826333989301528216782656097316713491293603642981512628361865490333848137514314606242742733692280542389238518004366731152922271868717491986753838589378349278921724261101960890918273029966676804151371855870086945673684969586066809241589852575091573117205023185592041216541119356768501949165310605922126051995641687631767545395519598671514274937136662668821994159461983898680049843481585523812712196896857550510917062202625378240903783739453286648925684152580375766237155775782573405173183306513392985216030913487533716560332995569823289119088652144651613906829965606091400482410489843982359349484177785220493694438796073397564403785501304261456300193428945828942991817787252252787289192630833516719453705233472755288943823837028518964438741522809121654008895273098791208358163874513162899942587317003703080728873128031282678835088811062747395729488412052953188297018777858363866291613915164167253618477415578598744970125096787664009145876484061752778252759710956199611276578631818828899415385024978861285224005213610206926922275186457661008624170943304741599755649403087406810914870635083009226656555554717870192404519017560241100970340729494585470724892720175949589521380427556692635921310558665242446881415925871525370144137699684293842902912737167984228522902485660143689400692915850705799733949655159623187372273438317866179368554207641294258951337821915529239616265579603436531627479550274492147042942232207501520658854230332450049677157511193245179852644679794648715367561625635899254317555092739178610046341729435446484584594889961214274505910873684686688710287969437729140795979559270437784007829161242002266618370280436186472134305885230524657623503073818611980794831164939194541347780499022048254228249011832047452777802040124034496105369253035039500663768046945258905145810098284065809177630615823459924239380327263528679778253329758576107256802884072590276209100081573153127718221262768949501025152167508201506293571915384569394788716813047622663572447356893623675693457156213991329802782683480837751632810723468005208348980573249578121986561137543994038901936436271885883946544534672068474829662448227403673909185403725309384404222481237895013444500424088856900859239331797174656867355710157043134277855897427652217308131082145878078320531803204060451549592770175269472577208081671524937956240546988967358867705791846492242141066782475952938933885972574350699141432072612824918798412545730518572627827888445320881152764431322040642781094006032304962338915925055151643722296960812852923841818134071920249835066506720629465713837810586880083618987339017310989022320626666654822628551350867302733586547369279195527199505221873768619888696656492543802910594394018168146341937123078797874676416513820990817847925679158514617916711415555062142944896268306516976539553745792629416506281788441828999244358223231298265292135802868598910743719993966242953631821268615180940993216870396820692552665216062929265807651770114705886481467456906154631575906653408390026922504728550786067550428532400715480297156877690157459509598623523841141744930537486797136661631026488597156613070453118953391215517051981670062313815698125727787439632895256175882432146346969303817985444488631175764754319260037254915635656434438900303544550059881538701195795284825481076035619433291271425243191438620610974401687797517531227120194933911323704983337694049106742797889633882490073235985550941859157495799596042627760046165175799656863452571264941197112763140327060651869967404944592376755378695470260448924887446982362503766393848176624853642498624751934028944468240304904226355563866583080150614889794825624438124005555386605121082536734764451169309331901836329525593634440298281723613186979905630395932796176873383487974020727120622462417421346871983510062036483415486447085586228837310937663492692388443338300009191345443276761706897979170323334550224582561553336650442304677609559854333004612502515662151788240715359082826923455141337436915047501049407866906425709188264059259662347733148399481302343133401934526927796652960730712048169259697004967220939641771040998117319245720611047086509204884797540534988382469742845848197395538558326889748475949115428233657590538327766697615257653657519180363023512328168656655513796563181386331243944772866048718063356689498799345872252101470603683957598340722550937845940477118453353925262497436260132579831503543731070839201835001445062837800220523265181163368127528954820248797562496398607412511316537617309701989262614853985517761583957084124165796651845856962035662728123981318655162856463591955704490054419521174505377713512174043576191907719015289993796392769506844241666695027066108087894014304058892188939430455448313670723418017923565450138850431699042484666787976112437575179646049278499867918014920018878743437361729201002796208286803903598236786910707771466771510267192749890899874091878247462222827463968119341022873522439525691731063622138195444352134052811706072830959404433994424645155850205691517443659535682918925110155749615767528297421000944366015142471617304256654769349502895021285414872103081888809571101613553588375424518521633877977648028852721804933434108547566660094127085779973141910541754235927418254170018872079582410293876016797943688795809283895973935041913328587236671472484824901117329214272923277972844863651142726262433315365661439212908234585424203979189397246336396452292281561590798444894474512559430301765315380062647955261562518580763161942545077517562222856457260477087586603868272304764181160609955816516443669055880287214192134888265730822723742688943468182960342602711846495822931594414250363391831055564313216859658736830355797234008694507602411396187367665882492007654827479568884927037606967952836306679347909090705111426698372218738942774341244379739587602857153670230580611761844676479353779753832764988382590518303981606463194750799342934551586992638892962711617704792554404379952052591418740843909674465225508943313163925034409330745339985930309598608300689710139579200929933529886103049840562386729955413470801429136639415362341723567616918615089686418810208672486231393366869205968107149160318837753377881889114836319964476609585281408146028930329709242533349752794374169942753048702400978212660978472016517896797037077242537349611122017688912944425656025023781225964956297624139622644568133604482427724424619119400288915474824473924452224593367656078321390201144231902668993000360982761406227158705187756784269352441960576138340747854836320157886013941037515010673952970431472982668324143937627196756477405036275296168178345831941623282972844238158652537495254690551093176589748466550130697966915705375671767992490907754709941642734907881280137578071512816521224416210700436780609122093213969534929700575766672694341062004994670430886387548659513162224727252134917422458866074185288382567745268647690308652080427413957444624186675442116536902215179860084609793870751665642657966965255216209557451457192974945658483877445540245132847770083390073652363231314538593787983860382107091171436164558324315873491028973197053423966550671046614471986042462782054984870271967750984288159663858470137959009747324323485833610997655869332327360910687512222170512735304673344114986132587222398557755515036211229535288731447800122511124055012309732405450833028239916250232322679963056666476681992850512771458774240023735223852219056835713061671026629373596450326665318913497142338614976623148451339750065518946718873306552547611304634034615454166555345969017704033800143646795562075508157889898616564269400963116453623813358593073713590672690193698041363368492616520471385885999583614254400495297121563631857371315890751040372389492340334060614255832652713933901650239162034826886576277328368482021797269785700345300469233040566112326292724588120928313584297184231105653212231925751678388822454995540473679448436421839286447832903306562006381152305089158332565580207652897013970952056277944179507698055183589097204163377002741236035679848424201157441666335008602088596972690603001209769206981764265579811444821940915712852603006430930886387283925125764461955472097471322528733086448226628653440094404501824973143826216539230181022232511408630462781815602490894732039497452292730796925740966344553495948367234028337408874276451080356058163311783003870594404124685638387928750777416866190512846217515999518142880100886792129446925923786334660920450102811489993665646816713924734245760385206677834233678431395640337020933425130453715614903214975306757836316034303699130277061483573073715067991467171053809175211292755807008562195716680837601589086236269383081392298998112265765813334238371082636626733785020298349037390218918098525383992955263158005319674410026956690118399218051621513989587553029751453780816215174658003581491168160726211390536235216491010827622560758296622615137024893953107641537145132189190476247028572975607397816204545645722342747266887142930082795816961602429871737273658463947117140051104465145044033107340308591313415771243242642963106884623216587557646157011209501418183482047529246524182819138929057329667407488241666773448468937468065704153958593755919759323947563738371878789086982976378871893252711525112746480050515186262092195557412030870263559082197487391303189391425019583661942585050324170960638858324580928188648508897668604732568266612953709535519385992951953021047405099229776664585950244312802034286354141448539623911826250075063098298077838603993891903000119518199619432009925649558991396087453052154625455048321127432294075520403363579867868947813303071664411619591053905080571666060304020606233129343373951781964110459795702602645351473556162819867990611673567765310215469397421558895686022249471811316548365583576316129241153604044114738855776394706238985040912350075526539808894730801794530983679989234105773204891740801722925178487679978670446216618547904957765670988612671690337699176958582283205076091726303646356758220826118240833008705704576288962991283550313306930223748738723561494120742120386137835017322976601089491908268085693605717377392650702186940944287717365759388709987371862916641665731466023276239918235253246939422656711766018606196670910581430548068064270570471395628613642323140497628777521285959997286351437176546390308426882713856383494331028053827091757700309502708720684457277575674701074834825063238835451957008083922549946532670485075061688179390638951527419450519544848016059646099611761908310596170605177373913529298163378432440844433800335925758164187204686155025807536044789359951456739753562245517153815043721314950381653112571625738424283404375418629572295379961685625686475663565990126464252429404195115467931389898223326291347586045196086606872092605295386858936195495991623963485116070843192082898801651199173227116345326139996810981500676688012843453104041817131481878796688561371985384381573368365327545396476891813188440624724654958614834183269701600435792697289534531002830993769657943283791663755066229954353551046740990573527842496162489009453391796293449488073285611097810148295558502656348827611030904166599388137527120445708057045905883484631901927613537642686374379700191578967027475440185258305495522479297986119002265237430781004518085653383292797063615589012704245044296641246652633438362775985121893088343406647456390101578211389236452309460246664498750220894198262783436474370068101918962833067801924155808542482098946509149388931234253050788243412652820982477323660320759884226455415373527074781372357756766386221537100805735943913010111329273387797462960700116429113671396983659233402387463043239575762307280584486189529148060305684527956023967862297223044172894093513561077963318227681730840467964651067834185413547221224310792240354939426542964048550868524812096550732813851494147325547584967705418880863777862292541180311711553866287762498602235288009005417388487973837607411184053630334496800111629903020345519436784456404396027335954449626000515433774255170980366971114290137314271158807389375235480318523417277207387150415505088000730032986779518130111378099522240523442630677764614642073109515324326242796557210623342636611460072135559918769884809339266645893376357353584886112651353225152868014630454707909565333871688096041448926424315758557363956880021589562315908507937964613700673803444507930446185148864721037425337229432518241189712676906930868540466266806645594477510195630484191649618180960931995087659687708572164309258221926292487084573859866064262201925389438914730461976165710008341847589059682387632722470268815116335513585233669640696112101948476775953390651061910014194659105940506784115324614108391141321185615583515573401093994652221842711570635136092426070130472845953369236795358630106100258776502450086283885813634345064510116115859010956759945983821253361147984149254511845697520042255105688024477596935905750514550609839740740607825209556525089678214408183542747549502539138999095637967383206538483274731519263526804161657506655294918478099868262117649650176567988384205762714788468489673965123556650103554974728829363508834879979102180812348379508010657105076372605287172283347588278391930353961199732342519155466582470809573265144944085838433389736894642937854638491694898280965788382189005828049289339788300472504448277405315823672638523706749363810702136732437247123863806341331769251641382710651210454341593180276792583983397820659407200605224820676270706831526366299022367788322553400175664700359955323871625744668236800048440482909784819870199427138835418692130358030772551355719132502166835369670139142207009867413708207357838272429256336147055575227802175894917405927543592794178635425711036362416539411990810468709938010289575716017694832740132593825950620882464849345778738736635663145559266120427788346835887818910158261199817969952592861226422681395387045843735485128939569967889678447035740974457912571230903551677143750441791782091801458130443563698293204595147921242016093798006566399205156045030809345901002163603516931743770707950509929746473176343215486064567848482497058258043539513774985619421739922905298528455616750614656098298689175367505316478840601178461327448475578770620449378972550120028372946305890984067588432292198904182258588338536635023500870443676798048378873747992142675049737389978314858730887403475797628271991881317718818362173964564646317482638330455216995906830747678841736539863128923916217363969289965651333423659276122026053871091807469127375504225189652493539391853965500364467927358175279169614393142663792498428928644076920385108948427564590191080982839629841211682368549261182032804742503149271982615125799076528587558055729059326386669102678214490904580984243528027241728435019253609494353204727385491657067686818744326969382617377584578051864632526317301610423247961798246002923757502703193953365068814623891448501132158033597056160210307962390469458423739192255827503630984525727789564385898626251456603357451378103151465247322597941878443056932444813794774884364620468374885195304971791761805087298890299581899568866211339586750716332946267170998048035793633281512484611767067722426845624060595484664793052605654181769295666396328816058863819070569494425393830308730059219683620026681531722269757497676666934200950690570009991521515514971306024717867069850521319750299318033351749373938017885952788491316354003252112153728938167288382714945976850307204679691887762934052924534813431265713568760337892512411208096308589172712754018742478902045230321994680090152965349615986265414991464774424285276106058084862571678398102746893347383874123977755954347544757104186680972445814447001904794158263997930410486809466384393608417093168397488184459372623647409703719056358476380117571442089750950761852447869260792968389551789851949630703592703820384299880336835288661325967063561240395040724449335781126261420917827594997098878059615725771630400267657249346931263442811177986009715467047211325925263648960500888757230958841805511951589269760962138132568215421893738905741303265215788253279696944510725930322298810754018028505366020415839035615143432914449078417851262739891961010000312806718868827848122086289718799377474630489452039973791275256512232514670563444629429879541435049139136202041440909280390390954105131802421630867185123688805936188768861561457987986353484712518986182956219080051155759662238074159593453774333020337027304525612506273555777221009592918725236091772967642420051241116633924796883257200911498444183947237587349174601155875927919760961793369237113998928123242196584100085823390533798005925973538434234189922182124350043875061947720012138706073982915754939086575400749577568711857191093424289617089878055350757175060487980396123188177561741136085672232473198326769921864743422737229911502210060367728685394918955001954210787016218371387105876430720611536372738770895348186424455596604895917457330909444957742849542889240139582547114951886746611156148706759313764027035783488245293444101304348433233084115822863819431176267458780469692013882359762452183992511028519093213877286873670998253692614762693634408945077767611302704011010604918217715912711225125446786668925284412385355142222070222574029864727349625582372313650528355357850347257982366212010315034412514078763018675620409445614506515067662989164783464079301851019631219856877241819403996365045532916701637522142561306022979239543020138190940538656288120944072158722637382820254890476805889748232506720625264778907673468299115590415190421747978062846954318786856639697132557245116494942573985500864402583901454126352456194521463567322951399008709581049103604237873811784941525772939592596496988180464311789839601416494143099044029666942397469821880512800646834600658266350287782174802129559475736691171984390689290690763706050173053917573534911113475660300020093250307220024417006562382123331463892201567220660455708522204346655169115985770062981008538800502038290621163995766394375808123096754786161596020492568224339312625601290266964645495633797815578678311094406216773253840854613491459848374599093134926954270351672169869489754880298251386730799532867718041614914901112697689736823541310369147872705314646514299855713691001456836188763954723022216493186764073969075241440614457832548303536241049896587796673522993332061082700051469781565873448911869209282261453563998032270168649113330452851750514022543497338131293689010447226863349017801434485217960530730290810500091352008846796545665631026898773920273502194279487466977030007252416958019923442669248866709162143337221971092921457198498355531661900646869228068580635746270912040419111803897396650810102523920462213172021040912714324733381944704467189655941721747194668032699383169947914361076709463147982100594857071051722470992014018087002347603529847033290235209968354303003613644492650707107237643567961170551378081482340141995751928168364030359083167415887418303426340588218738010936695948008420494904825286244871506469741190343453607410661686757951516666928202861982190462754845377990444522236229674759295829379681231229719487007212561002095794601912414852626155623531221145482457307855665872058648120505953103527759134742888283502889783748239440665432891610248372120549190618956505352604630939426913555171443437171662651021009852137407160246369458348322772831122709590575143552654874717225437292387000006442095273109506629345301387713031650217489443111350758958453740802608735893714328166484010859001677554423127591773517596957934463452629330107220174855136568090434737551053342841790240435411664442981547289808605911434707161503462619581295454291005682946455342928903039862222526891175149784550131290727635178569147719021699228671042826100930596935983424427890519766302677810787185140300536586780901301396314050526401595784204978662448570681775782691115021464015247735539089802992022510835622974090939500863636270647394685207508890751737919850394214020433137544620794566872473049846388339843535490792492768208590354667708625821012724506736258697092402055816677541608809779980893301021077139688031284383932048075164713611243725967517781041321702858004255926997822863118060611327025402001117193259805899325874797681875122658890215959525242852967496088018141785026517284966734342551232924573221051296957454609147419887691104629499384590609607864139607573936290181742011090907460742176026702541330085941986414002496904773700693898105756799375211134194389433784096574981836104284392680127318446140482058928665372784750726155349633554172585189535889918437220976305545818012128716575160731974613023597063973720879676281658500450565291483106346919078297969804702070680887140275374126987794511194362741050291316595057855303934966804665500604637376903892868827900438205258568955573006351603531385886053423368880953056037096531599281757039609339057416216634427178797270000494949645273573563939984190883071551694300646645583226400926758076998535692749189492251532816550612549066554415251515402056933115360343230747569968103047424681359095467555768853962763387231527036532076074465974834015891373737748461883450543551948412558395116266764203087251514923183679573273822796617570840609358610495708148883923979388189607735371666451793978017036151898635255564821460011243759001581341866777770281743483175906862297770550387423237821067489888432426835555798676451250113237525476966532391153615876621279972154073651546347939194674570573400298727008841079911230640749815858170153781326125907116529460308581345861701068126995532136576237512031117116394400930504550538483524326899995791166913128231847499894323010076514878268658538036396858882886435385081687047326502845526640551147453363480999650950803107392627677195656618392717875728056729358011555710343835481336948249899575275223451800739263324977795286317569880151557439609087255212340774258229997525532641183087616389025575397458100215835596067999768757642970570231168326753899878264527556014132671239021123315856894655766653878672236360453029688710979729077497186076972909879001396229167772529137615677073375639812092971695448039420400326234388647726144037365471883965029430758842040155406603147719183523341383566011538217919252207098091590471506072998604961349690616908256266325458137362387398140851012641745537585380876101547381948242190226272784875049081123898586050531640456135519257876220816289343551370394189712734453975725355130894400884835542859677114428613231626146053637707121001698980247300541365917914505962602092564039443320647027243217594867275966701127338647202617747479775109082174663058047852147859331220116039529495485409539930818967677582848653697882538422500989132387758378830852112954552243589120333000773941571536481945647235808576062515511037697029381796653542917108533174776701883123399211990369550633447765134979924920676965437795392031437536466708650966008028563847175301602457111997226740292800887695484062147964082302270095286982118762793896255698113390952757904274014541285749003232637136748349686026109882122337266598670192390686465372294622240090455170505281322450196296235446120427959792645381991608977617556939007647789065671935272272838922930587089535819554296038746732966832877848767893011753688447476286132949190007613160320863996053939022393346579625194349019814219446339985259849264945985847697907381138472487976606193032278678223802390587469050220439536099070885008028726786030536578331482930745377307617107158464386481478629345311946422232392819718786559113344205831786426067125752197498391753261996051167076186225050089788041282220563132177808387090581512016207391545960914600426113138932580285451080376072305845310105331360201836488220304574288455207158738006033978722195916293534767693922230253527573100504571179533932235593677516636251142483437782082604821142400971931124076582427025380373724541791225925811257478812563894560785960149540791067930093470000331895889462382036147456763296020267002767275843837037634140922461652837764301118560139748156572850038346783957559503278657354587183393761047349823796896430220714029905086429529868703919484916202425018000132973692373715118491156576279306829457243409471903411004432036514121160684484694650445056041886966261269112369007668832364494512424600324958366308213259479366886665744300444929384086279367234024021050905040635325231588489190088044246787215776853302903905555677495593329223089722524419669586068799558380548849680280814046680397618753426865202721414429780072877060034256853789544631527065621489139775599993304413674149505615150048829407390442487644753287236419922256869193572502006261030364157297090290462427479296683197649239621007100707713620979067944692498072919427671808719443653303329689084735827234655396589966101258265744501386240954967495493611847709609747529095943360818012169442743290040939508636295576888965016012663482676013460637994500494738633034163005991088866992193527394420471005038720071964588178694279915489337544789816597852561789445784403000808878549235054935191419804819900533351318585585936940658815098805235090901864589554661407252511668203456355660724846611827183159405274883578754395005243717661278435322853199715771404003373406748881367893133200017257998585178491219223559735914455376481456151266031994595242333069342485537768582995839464783264542624164469214836470303412498037942663525053897941744720704480751575521791044176270672194554812669132840850888263581638820538716426962134181462168187206185874377361833304769335324681480697396837172233726661923402961005515010763906109919052533988262861415352141279239795324091411375316969362277986934488282883279143352825384358282198479803918756469907463997933441980812332317027914007436988931187988805392424119038510038580559175692479129640350731989632471370470965904587744506245349506197443183589067358787625739703282357381120349611317364747793970347314628049577587576353135465466409732056407164396697472531624480250263231096860137263220090530114102051259697884942200430183232522799268476976582156133583751830099828661531003854523422985214681441581869437482532485948884954543421999415790379371516571025193794079945598012238818436357324555889901899502202219011264936520395946277115395709925121129555402825445715093759449240674107215637020969658171497100743826946394738662269143698664962061078617905455783427081407000011024466505823083777101738606478642893208458448255736777854782573992896129000069167965736939174163114586112529264641903554038385480766574137494298728980346757017336185586622401165881997039111750731712915395782230324407778527153005812466547012186526743915374813271252558072913984212197011694649053463082996519470079877538700190290055049652894667957255625995981100235458678460983431373549580982200343670728948260156845562925621858930870822778096556225764671149986089631942948789247866545113999358521485827867844913562388523390784057745224021819178535414129672853573714304368913150499535068435845142810964696998293069266593542705639182144246874240019732279873153090779906101242622791953232701463142488953899787217012567785241463249597022564740351133018900552550964859994825704496285716937408197628539591414633937121744848302243424715028692859221423817824027974397726720074566516114138018222117630270182664934383562055523731906703625776358491065650061270178654069898661228479509480814358412784449382166086749159093654065213015279937232936462999859414188743499757885578423578889147625879814009238315284557091494696872437651857072944895317897906019097495122639954920319716743748542212937214646078446981227996160988530221163827600501493770244069306521217728532183313472165133373424551145463039184456158922198885876553385940887961644268700705705477986372959509888867504418632806222368846306451288544645106173723557185206787177356654830957140944614049206359083665058663340148336973926519291977768631315557523087507378507432660245942633524407920259632545675148934028077076798533082363122739038441658083183870995891743426273191364078362439982295474183961882233104846265375825651429174714158125803374036642509301462893728777478936142508328468958163411530816048302665217468283166013412689153353252272776355167510312635251114629767960828353274713752835789175967905435235596327058705659458989897248749275694268461293883353180821890406723792249678410514923952651421246531154753699604669104500656034690062389029011749727773585661028083009906002981577951265034847813621248641955156607544418865463066459688278443859722615905808264739111269878240968354529813898745877067657050957370309454251611612142009282305208331430779113269013557435611106604015622395076868321457582440399477224908422834169047806037406687777581071711665065232012062368247760271148340374836700080139169699338411820171296866532912563638411307062873865510461218551875458114571249931873713803949779454081835121134766479775001088298124622280703772560617552212416348882527586648137071083325619739701945573123803392679505506083425187167460010177122213618727863556353230180264843669743527503107136442919008338572588044259312326235434779522333193157892337473687747055463481130228639007788473672044262810587460477733662288234047191531942345594489491653142310618604154534672341507547836750946722958220143111669700985863948967098933979477239793726795591255637560620898145640556901890330985496601940025417642989955580988366863876889090547931485633728008162648358918520483193256922460775879846244692146861373618221340517387029995276888797996565270218632507750893481951741289761164393555116441896037099768808105687409558888240453112152604698341688581482001628743642110114495503230100014984060262493735381133438074319300513799453678599979672778809437095927803678696679790308993163393896272730343665896643565403040683818117294784630645712867178549917409644320366509677308640900126596854824491883952902019769646885153643655711311583327052416301301796237762755426520721161588345804462494670729937653098927423856522895656206085989820309307975479617474539230765688053939287031097124588635506535770651997231641102583287465986690077365173948396881991251791421591710061355706892864150200195449903711208173070880925749651252282066104834941080222458865099794864432268907761195061977512009582307168763607244811341661317853530096504529692641392797172628186420750586548103195772183646169871902953257347952481508439195769116737818165414713686236237435567148826898323424355510414048241874137205742829999341793175902006834843823044058804924852330325868272034489208607459846413735095338762715201904745472232189620555362257401880734172043856852627715122842014203880584740605274830006499431748296210792048326453789102533856572365817405135210521865151459429771016488387825321593563980953863772651298429456317066962757871888015883322692272836106117916018758050838193311298369163209501083264053121658342726677505813146611987085766805747220433607985594850034379746593537866255661526888167917127990976651662409491902647246775765505577929444600355503763662882642530772554342588610093574558027077566076913018081419197147717270690453504967512869373674157554085480485306687177318282824310218546917407694452221603907001365026101220074856353940698680605973498927496784692885260565516713534900143257486682628351319962708384933727248974587099707977947384205918284442848400968364633277450842998547725904029509244762474481275330481577421547105105118412897575779794351916335724922852770879461158178394841531321720186365127706691090334409631750654038732944793651639835124423947953914135001992465551024139576409373544782096517528859681880217499326643274295077167208358655407039666460545094581664798476627450871098379436549086114224585274432516420347912613619475843229775990383293129600483631288539504113581054470743110655497777341646736679066229986674238176720237604595572917221061306705667079979960786473367752475746301172080219161860996790098130964641618447803930221783478469407075465786300752955597737683622332495923134519624844105229540479503340853146812406611747326863719281441811954634476074025035135057176713816897812962416997757674814742303195679470498936184066898393452060919989911791151917778119145226680576517769397690850690904018803097100125802110012134451137534197655568583948874567340569279302745048594968720804521245324143775548963731992550635828631234441249757171504397070214110236012597233353243379035122432161646111693373618433633414091371347357196699637584878886475641029316068365934864708757444034861039389762676200689608224941355854886043379635091119370712868874697500049074527145125926481226846756166682277116911990838646876149501163380529350567816719759184051271635497333265384876611558470334249714496203303045392515511670911331169308025549662412947464832263554210952335693170659719574925996802321306882268986746978918597995839046779446320619174993991630836698327681505142616030565801373755813599049612816404268665304086619202554452824166870896743965139970190509080942620003611624188649406543475574687680716188414815443048294965010813241679721324969897896495932680722065206649864939457242127701045406976514777411885488654583001559094055734946292938428591457900933674840459191152127796435671165730044949131982518263315660466253649679569175114009570546955567381396559087578781465800664211975207435797096464399255970231730545688062413454550374166040198951142349020735321363557282044907200989128440395103650797504598353001215300621559403825260323888300516815257257225826532864131738731095354905506798465880901566555494397518676235798249026081586915547331708499795203604783226193314316181209080513771056133347370490299973766905866985171579932984458454661709536249506794403190481825111899069206987993593342794780390331662626325601901443720813405347291378457044652369043555735897812521172846573514168587606508036581092580615430286892134822931227449305200101236080735412610217360181925554026642185764545329460997234924574377029063774669430673698680933758967429499923388562270605625130509883134330791358300025693003729783070651779870715040634005319670020624827710487376392385715606634370254467191444219729133241462465931896474469907196815704984725665081799636755552028571093620148104828168242302379818262011847249754217955560510014146723923672156043248381719237897769886107872057901175971594877449202430381429824157389522587611163203302673824293769083700360161495404222308848529816170963208196385239229439719847823492932891290796020852062203104375213988095295686046593944315615369608362268998120695361047832303027410465620290340392325484079714486689446616012062368023842814512957353989115963150850673985848883422479956296069525289500386571287635972500159564445009338705701251731226669262132371551410973393288952314241881433321136113274742108933314039835176542425594939098949773201995879920767700161411417572325999041099164457529324326118841535232121575180490294516947011820639555547054712436646291449194228016531592990293739417088349242985842032930298253270551617150110910989666876106964599364189188911374082899653853571194878382222382153683859668865138837039317992144877351157292377587147316881162314353478848559423436362293344920711089696747640688749759708541537534065347096004660835808451412173690394430275643473291911982040484253936022764495132947692808582059647398805476914032510660826417752006127342696139104826309958456323818493877275001591233868196267444885662477347744544119416126036884865542473956856926177285875983105802044314391458595052504045762604837652178472369592436095616267150691693756034022129372941334218807796127133293145898567072128997606313433814439758860365858523585191806362475415528608746988442402036563601023831986440983123477544313220655171554023861478815480940349975880649434386763695160067372494967478566336384685209865577427862495783172028310240573038296269245558174423629825009127631149942903591809956388978111108747354375012659799578502679022454710651336317425567738878622077065149766407586025040768066806219882571251079472173733687020305788743769359597276871802257163901141625476520867282058779773677077006739648624537391127871817165088947636231727368297304778851269180449106164820371137215334521998810268374821350138497246143159030723550630442996160977917113846947787413907263409377252293211705878568364766505065722772381013270701760323585509563037554058981486455542217277331721910520275373438365052264368038157861516186426412704265692372572793107643087836499399822818768113158471661720313684481258226056936653764432941454932319377627241424771684206391800546657029639297516634704107542744986542917611897515427712340766545809352585610871521911918282924736606086494351979108493579178617363719371043227811350387389021127232838754473419460036681557604848693803310191787428559700002381655949350141781921570905069566635825185284871172989575840023401055707724348229214197896681831629359792291501172564531550573249141163512129681984266627394374230938237390310991442678895759225839805716102231490768565027220748460729285300223695874881188534398385736247137702761535821348386127096527903752480653250596980115137269059497474145609281131482080374788048162473002013077236849834588124440659598048478006316606010648339123360439810473154355767364921960397645483069389452007934642361297330905745430774836027573485252854990262590514686229980486288161583394520440062360260891312848323319794152926206244060513128885741336905944913786348854664451176450202826687199768827470891917387123550905676697070528150362470873791096313259864370537096251186963554325071474248588829691119926298096916791315422222461683828099058789577509040542915199812227525865354599428314191509130113226121348522284538414353498398739759330625410253100930867954510836602735019248843640657076185589652419686469338469411699560981167547137097178731038350330644210866763430565403142639382264139590284379095864432554633317628608842721177064036343396676526677548842181867372148578624781964090810419879474485323472854521702235681804494033102379925770010385170427411923712401172980178850707494299489877153398896856995083821670812444002474095378858387453699848300588075690953395885294153206507543465668140150336921574782284507157293933119791044868159996309952190593659430090834536618452224157185207623363064465332934624761235601841718648694137029510381016032108507026817744227988958506595261766742649619222613971455228150510323770814797509133029277821692289413687307856018386670039704182948539119741627460437604097700050243117771856650884391176080974990404073199401306427432984307924368313270745744471650072867279912072246216129305892578389747852949584974989373011839058101580100694489884940131375032609801131624489320784378048547594756880966577963749171155299743687851425602396361240613192038474933423002125799647610287311600173359761181720337974621045062884433011917294051180492344002142766269363319628626944331755262280700249100301096927875122881475906006381301175074302032115960361338409104792399434701932226576206113072827375260803414394017085177564853439494464220905962057072732361906735154710608187649052201713191977867049989116946398810294515649024837570280472040141296789089645036042029167367264379503998206232187129446626688722125856686048118006269167832125501515819093242918590007236023405423462181037115992859164713679664066088488381057732395169393398385139697331342985308989459657448860758984283228627477397690243678014314723943827877082379209076271136150600108812283687344898670873603229991854325861253949470351722371114670269987080164720559373601781237167211466422070992405585364857910704464117608127153668455572858202443915445884237146613765599514163942160808969201441909724599829925612927160476220461754157754857510425081599197162355551701219664247781397470944413785000060644457383801253711047629902740748269081311525842491819155566280510421722118389742124116573564284676419354446259569712259183631031758329049720064264361666092041837017872159222100397328724192670807544290891791629913780392844885412653436386472257378230076230161333418847331118482872355943941922128798116569068570394466746704984761831823418112658752276422787771605614389179133838760410995355953013671837449698274664024597757953397136653338631608092054109228797368462143626570160658790635321250128591392470324076217731458217064778983864777207749056087424793689873936508916409303945638938183461190200351085089051346010003392175056171220763072105782304907369173319533273648700947824251205437624439686457532073575699563712295342621058766609012148859812470125350233393991906042814166014509132916406654094928577338542744101674225149238629715601144050763627412428299894770870782953250992275718454728655389455274414440617958832844064819470153196900799322023637638621761541700086605874909013416652826115027212380494122195581483294020182402865733902125091838921558947502473716515934797024385991174923057890284959407516747028204139881056124353328404054328760713608168400755376713124962138381181679364078387322343205623186204597438418477771039925228140110275327846488740083119383086313636649681896177370327348089085090318653301013546607932758341232914673291319253648392097052359959141188284421741451154924641184479200047607088074941566575472192297480386847840583610266416639267655665072929492027689058628545742542491901614218405896494136470826624806484318560632800414210497796389101555010382039340287756168573773457871269574567237323198928339372597453535160792835698538234825044920480197361685331984705346007031950668914479457033289236225649917206116668035655205515251906568445757561770922750586595648847118245935660890674075160014215445356204137123595800713328512524429829111935095424718347831692150747286039334617824520118826199870019935062787887655930807861776059144675710148057089654514792703253032271494858007780312414188241626576589274979040907421709582754149059077320988014665504704929483652134502492476896056837449488122181519949383307664565466385107474194175764104610112419715748869339100919754489764286111872838788473173250792136015259666235789836572189509673449691771338285586837372857510824617127444678569171087494935921357016032652056871300351645325984139060731395285484111166690804522364125951655495157578540148399120067445504460592445829796974237539466885500616402806218234236785819500522247473406143434418618094781568599563211633317013878187541408127048610600511429744727929714254725904159258744414027071837436908880542594604176236220726657618877880415401066782968002680379338648378011357014224467489821582264405429910352301671410718352979734852433247983791519340729141432922697502396271692391048712184144336682088137163585507940695809659993000814089324638115125972721011135384377713475147185673612657869645275396943289176903938050151339856440519960029491809661079867013475007872456162780783921934495806448726862602517299059322298713931466202251904698849590671798107396347191419887284550225560688524110556239493704748507257206317118767503953433401322288845638869516143227366710515200760151727594638986686511873544076479388747893723812854835727459788542079898527456244231288870043196403083262505446985765057851016542818304789574294800986522898834092762577455340373030259201792901797879960568758447867365958070839462864934563975895419949691109530682268245892598911116046083611919544004046183939362363821677660770777293242084661219904894248796756275221666422592271249989965077753852010583654403365058014179676601327569009288123332043501521404471932006105712136773823011023085224738361761638299118345990078884105080540263704730290540526943700525526702202823817181606447189178803775094827067130549359201035485979602490920550722714335055673359282585626150580347864525337832224498901160524695978684480632412895889952902854663388842749740745989978160852133860665611432190169919325592114226273678143137020532408212967101134977520272416127602215688315799336321493299374505655076797391649364541446713347627716571198815546421219079798595032896984635705137868114566271167365145246524112475131022769067605301463294773924713061643481447763349409000282532954982039069459644994464536149822395861747713995483350888737132901691874162326854214628878391281235648043867729377841893188657628929720204856491980689838477709956984751241071638584762950881057347076335843083395550680727227605034459322556378357499381226550276526182812053481438401914294975944402765746160437293237981415279122051900001541450376503363636037183464495316239850401668167899122426536157337286496665272251981153577580787986888236252151596782398948116095315197987908984592176935698273507234870840476144094159528280339018780236517721721661461961831899056535700453408647877554029543792256924141795719651459541568091082621514671795841865336196480147999863607882907463081266581318922120912152765761043949555759239473439150795517897642984497821175415337902911432534886817480231876641851302818286154670960704351350867118145848840735348031520909322790074871281257879880365439969996254277738147000948209916037727781679821297860779086325841342180973283099876428868398752277570449831451231046574881077005158950961895021910709860054471749324284384673173103152036221117793860515863664824904988301872644436642649725552648846012178078976410290740128860993239180090542734299943972161336014809891096901301689501351305741235621086288329556112133159152263559446212757356161536428054118197140825510006086284329689655591964191110763444848619182476183090232948680219823335758479175148762350420938832100843576213990870783848700312915301065047840278575010680583413253871012601497823394855244053635112014747583321963502840413693036619145702420785929029543640364581105632668389992874274999725267547283186900233555919864239385340719957569855585226009228518295917701189662588749140945713423890745719077847176312326170786033127150563743392666541457475030375325001616196781996084930335753586627664299244315031350770488388689114270708579996877142319488748346586381889971215053661881061394827632928502666609141843177190764333650712805545021836459107985548750627985259071642875063723071657232883765767562579794665756430838781289666976296111992978011748779773434046106706218293392350559632133011220607380002811570552299239508706195257412491404801485814397873032802082922525074569489899738000469806968596308179806898159929922684581594653250911764441864479786891160671695681735722572995879770598102171628946628576180145421589020784442530943157424300539890036704993816876140194451350030247036349147161982860536342132019019706458373787551327308472249599127786477586126538320034945820303041730314869364264118173368646456219869027608201723155195675300344050825133261724899017532159494849426699802982264600119363779870067974775788731172713644488831714654875511352669833140379763343522987777061457111577067481345563235730729538080431189945717566038099958879631890849991088784397811196591162499435469748681329478732800994782908771243897562255523343938039750134842425204863454515751267834302921264836434262293746048895916329825850566667797814154004393096956564324952053761830370050764344204213544405003583507957065715615974075401350523915083710290116396100675079700671323134272706953361698732919783840048487990446120953457816091898225242304790063237102610852823891857953532323850864966800759760722488478075483151220869148539548723998731111111041157339326662428163346866264639659819022804450996160971473091853303759116635616789745043064581858300963863246691475032305511294711628830678178197806014231053263501374289115679172522244451374953431393800857424726794116634418472015091322204110518264885143765607917049835686238121835648859275773022168194214086483213348196099501127874398618224218118713265917139936705802714952550971066362754484684192171079718263501745534416306987608264434787041149576175859559478217493792236655465053361994798551552942708592823807193536236368996929371721599378589642173021067500415421013047804800202855252709303658623523023443003229749137836070617014100958434976066364705309545707797530912205938026996427355014281501931779491524243994597877708560336898101888906696468913492551697534878759178735490464186685759385846161107706277413186141334108610824142103641589866656810682124602808892592019809971753789645495044683681374361507579957217874002439615462664124146049241567213474974186777315266720731911150922482190340761619214352773127364631650203135699873042823141726234245071367993482628865856680569390379420620368113133171047284142708154618949287234369817025101507150042584697909815119744444175358438123684839763800136204914167224608311378652944983926806753315342447457881993219124574561272275999096165725296004665181958787044881001571310928945788604662346057636105846830483659971776887908332766696614431970698897885130188032967278593160485539283418037029459456117157854465401474977405783737374993752236041146227896836871889115703457170454231593023879409135936014240176984535215830410740868471573835909532979509584218443250312381871859336796589148435961602376579408479944629774825711641891815778508391658164031824408124492486839025006112998916577427003513845855360109640358487276875631130523231692607571711207813457844069520712048320505552909506838952777001095102707044988527533533736915527656138163087438514519105969590767333391615415269197319460478565903952730754483840990259438744801421104427559353426664273404457032115328623841565901622198642979897075146486969003080099941061635430580505801732514302094606336336943725169299071146895623169324097663235888686774529121479168296484109105263891733899623340005048352245142394796694387211483813029893160495901685126311193942606689459776916932898958087315097815286867545342252311657788442365866382338008224825518382288843469279624620643969752319941432152766098932618144627734912243293051262983727237868493092410678076980466243279763208720109608795037918181756114689688969706767005899742002448122735850255326309137356921113055518833690267667815538528092880257850177670590475548037110971956348078727903543774713256500883180383316155493338822373392653892576226517851756562192713920652164024787350005034714375853345898811611284757530141656896722924103953694211574842378130813050134600741215063663795227409021430442129508695698188218417026007710008022246272753627697699459490623377836892737973361280055846738125993465575733655601838462944812655614112917650301712298432859645009895207330270859281042629937092597344461677005332564926292136318036039071284550415074781967222345678475841485287828122915314645281474678024986972796675584892293850244588864364769880576424608572556192431876003908641090367297487097465051445058533407814784282380547130845169383423486781258957857657554492294045823270605159281729301760618242227845353908121628018631956659345814759441840396540223251216398720542756654092883891546273658922219760320582754631319365722655016122078656353266559085226506180915769215463952790752729152807228572228956643385315423063963278613621668178279687168707419131945899452709787692359682926684458070655315683367745676182266759901333572925379923908592452691835880515795380073703768065767890924744877734683221220120080134281278758085674105439503427187875090143838855816437127186123853590169947869773735524019911278701111910023208400450347379994961408646270999681766807983554666517844787136309550518423804190859443717881616303830148968647401329894945761351914196127565614169256319207785799262262647503865951600436398231221545889578301278567696876551837611112678487560240638181467449549457524361430339463706520449308055022206413710633858587587647063874823636544756000688606380283637850108934981597688635687808582392509430792785229462988035223229334124033551990460668411220821423770320220271568922793153693796021983830665195376534016367239425637698515500540320989305823525557483449921128621711644371384046076481413994280365338462614684409596858922509945379588042507850879694702156423686335669718146088196405295480625959890477480103061690441182492659334514342369740053469140212873361336196952690272372377129643910314213625025368764359079682023980693211266286792119852320896052199894448023083217741120650348854984695383647100416859782075458667367960537583077632259272899445807275943107180981483202642559158165243974584898691482358088453890696955996897605130758303605867982569688706307701468524420278227387024936174705692021374700946789060689523507446625276821258372326982272754291255625130917404470952513941667704310401455381427959286318730784229776781803226588303588003477217870275393708947399838581401293657984583752987136226448932276110455458593882802695096369072059753598366945016054880193018845261426620897730510021537784740610977327528277164300850849996850313848392832239086528031198522294587790248901284205543260845961680384538796189566639459732884876535833598962819249724624013115064599746912379920096290584057978308310046396529878209360835806651344732814928160025797714109393164547246750396745038561829863284477676651307665746043180419779986347036218361982669500288349707188032337401805705559064918266222899833284166117592561199831479833129488636604450449825187289410823876906298839561189683795536860658002836508683041886055224716550050679916505828659572136791125699070189368421437064271805948374674751195136928317811989985866935835088176449556717750396156175652161665991001053349314812633969856398059739973685392108531360726079368579420288977814179768295661436625631272581479049337198979169622350776044422292041432274317470322945451996700804448880107592422792259073261651742084265964328547102910066173096228403834049572932208470208715791057915824107873523949254616761663985378723598086717062829352783886592887209254930009619339221240893820028788768878494728957533274845248349662243190416997861485597119592794988322423553997213795706695891743058242658689401739898700616608309987895998398233660347032634661769698976890255025265376336995465979516331253902144357892996458963211645281269133592994123501500329693219300630541102691692409493431223002708325927007785416277715549652914897152945300616810682060455291550843923238520095079737462290649948352037881989364591699677761955165873000542847694949104467962793048503565187779772871930099269606455741696627320138846600540575611818114623549441454070222366292628105605236794524334037590648142832471351916109211878449713773663811306373988394062071055874439833171773219919896561808339472739574671460378428475179251500027028597963292370283787265967435935473521740238773521965584072892126235751409853826962004545118284315556925126159352650353009533493608213786542688272187648290686375639721070048777061130441347361990954753726340284032395376873776720422547552428680009510009374555255137806209098142346161878245703396249329773292228562065016477052044650113000207447097257121149802184176090273550101071386979982072358649574524720969868418232439122763235832298713343423942778474576270175222732725476468364189300733957450001009868297549026471320261542092875417346982220939132973189526252496744572609711383166481310162458444311368447154422219900831388745566928380291397340599132931545173204838752884381484432530073589328942775345990170422321197352131179168235445389371874056108666114241748519889532769916388542541607116672550490439775745538231016045264998333805820953368102402335083323987308288075193612469971246796270101105502894203271040706532461906524878262914703573677070268508667711822439777740294165320370773126072404885838845165389520833097522946029564132982262038497196301216013637130112247131749509164943790966973501031215768922760955284956382726157007058086512800812170928354538633353726777242119353665410359153822150550832908749707770606349122914002480328143660984518170297609631968898216863928883857277319051732085854383446333582135100955896548422269756559358129353162188368833297796511475217215122160001349959276819805457554414370372418746878660177503219790896440813208154658326402883817080535870572357188180949148616019728017220119980421818801184524343842757289272423324446932625474518548941061110681190384766688521672614404489096532550558758204090438473402394509814497753830997823300661973641326762299971839680891815167634390653912148137021791609913748566598925331361643004824288536921782025273056301385467583084041645618412300885396824754859254289533186393370309888974671738624346513062331250292080636491555048324360069674430734753271595465872377674308492829104067100243207414675833039702631925558651518701470985057215847086290560495198210355078101638001945316486725431628973117514026836995542948123176729895784246556374755702510824860601488535972841178646290750196748886300527034693245340686342973858679868972154029487134332640759810369129390328364193085492757772088023218922883632279660479950061576119361278618617017093147656478240184819646498654839233448076624313595268053688449481517696416517358133408296580770479034905404539033726072378614344459657370321100919074884677683571974842787402139873732717096309657210295712132990327946999032760174778972458502888492797499244969142694155214588010835654489509865228860950109691427520342698632259236895784866124234798172359697037820724539247748691031808235455545021223011218304586789563783324288397170478726513571345839973821562824022950991539570299739120859014625918842189092542738652101342297647689171087235442045761999198608989284286666415596346982863216792503668901596917046729510377275241537442550518447155868684287359054944681520711233242285609244657849872508254340036696145325245160606118924778546269983646236513820061045467904457544501480860012945760546152587318902224529699623128576316122679121138470529237617226761982354582905553553769332761280857235891011075991147587324701900661262812558071331698971498521321011956071538675312762770194778894978679365570331144725624995635102485690015033358375754783980715493061139036103216632372390807994585079217720040718621927956877563898851057363614657053731165259061620137508324572533770596810046373620570818521923500593391138907583587063069078787683996199846404031824248436269545824698875409408062867521791910910872710903842313941483257387143810213302322247871132435386807732745556691082745297945092941818446339003315078234353663166267506788327466498344348900061628988558753605573411490972055461844392096242727496739376180854497631791117605076332039599127278309184629956133600421881275878172398961047293706783877070562151261817029571373417619263952519321167466409078965904725408583608205948481813701021382193864209556693697856704921817406472152284438880445039647313259463616672174566258043611391528642679840145515986382309204353263936605444184350536274845011844902234041966030294575891362878841694569714968640684865672753763587043096286296652366536425341433068621181191359510674723584811841990479522856865484031433580092635521036957323715476985103909632379213780801790316402532031797919240840418943253321545390071843620550712981659492132827423458799754879460926064606455238679796406096003739833307264435300126868044286222870629171316183733799940850638094974881657334258485166058084612872731041273202612781976944587234478591516695113643593862250195596011515626740771350064092721185936650093962362092421184438809172705168118456178367526152856580407315469307187438861177654181054597469493126705535404786377540703557397307486479428159641171086579690076519246539860472338791347888239287096713725083366251586248412842087919649555039908893399793039897646177849228720077583353088072197726509513504477514533595869260171963044723476829174497440151022517578976096840042151430470212772006165502008486043247293401060187859016459488357369086599030593268665438013326409244713105719674514288713537723605952940738312298077957271028313318552860886918086365530476060265275729740777251186930883114485810732426995868609109633427742853828104969645399551887195876691397401448682679709241235976896505517721285076293903714543134302279759581932073983926762723577952990682797224921131806584842805154733926641222340713272081154066591784345849623020076069404401036327795682284805272408406711052861364454741469379524303818476516192249529593534270062620314541743479925612616915595026678207458290000934753309820810157178058764130911107181245759546438642710741215151627725902736541448412866276834488715667916397885341965948704375921385169602349334911155729349244348469290292947881588169765932092004537390930407487454165116654089997951579095764378219027081650868652314317335412926173383530263986542940530728317134211079822943006209568337138709127276119117376513764872245502230089214277889491728350888051353267513854006055624151144656720157151990099700064772048976425975591170293264228095758349116868850153956455216202534125913091538415222237246216485013301862032835369365237012780806961776590126511369008148185960504792461159365010538933498566860042134541734362868623728217471424872662456270852697928478329439186466500502673411947870665831600333125011086299799000260456743869061240976105940281935037692972862030474963207832925823889864509385738565056596258917608214947515386111363291318816183806193939432270577779653235667655332583306912145432303867385559685408007744516586915000432159844713324052376141999130832703034794199216094616132709609486252521135472932748048886260836442282783986483990338631260535046351955316848725782345353208857098173716440823914442632005479164558364664119048139940344040334092874992854315072229895561504432709213072285554132608441168525207317510847286514818870416779263757526844116435408105972908237295541962518957948334045492082479552773622905987891955591264034278475567417440381192667830471571310107249928876832514787437272616947160832680235622055544893199494960724293456169593936500904768349138031138801019653536528238002657479253489202610561366678466444299332437254228401697215790639177177020270091720183016634287472789269581836682607459277909782790568861240987713001446472266665998329239597043113795459838632960110356929091330914251350594965566046798810314449374842361638762643517812475613172836961946185402059476082047778819430241490330112764706467464960198587588613969275357738519660861515809857313803278880404518605049870887061979692611831894503273181781380773374589899757291487547591601245325794291976573528830446859198621689517350184455915749791182444856958548267389019342364666241838048063409617236016222542226122485815421626087160845896417294819970181464671953156801823682182635805306246507104977223059794930561831744705197676380763755563185166104556341324759785485907827689196126964339994599369234732163313459492852675429041554924173913784117654456796877806269377064335675470242248501536437524427338716377898228143024782627282588048478935257671458773067629740276886648182225252205492811547219358351601778434225391254984211597387957731888208623531734376337535468576574356367620256907484034475972034449252349828193703890473681948122750150500749452550703267288854053478777244819301393814028452255903764344710479120292848454978789661353789342975433294686989305222622049275037248202385426565189223311922152950127556655516976639772235737192881175243958824595301691915175210975509194456396941931156437906235771988928502384816382336103458204550441328301478534334047630076773742692813929297334945506130762336950479413501164727916486399583943379994213554351088076838594316553275604868641264654514186091115596094773436438069280843422505165740618814171602406352454318998256974721857928523752627652201151573598389869632794760997011874972195560848307740607753842054206753258765602146043911164232152388600120504247026593301461823583507808733736033538674729205997406322999901780278165700947016543538473628430780464988873720679165169064393323725167668922193346672797722210416960980571996363531590036931651357767075045261775981141328372936600157229832806729108188319995932140791778566821937132329641231999679328447343381266327649448712240735994330574375332487837261335112917144991970178321333514418736846123494061133100203166965055553596642027060714993434427644398921502701765521792459302925457916440016004066444312925741089767380342005331971351908282178651433092884760543035501201664467576825952512436224679150025723307301974368141481941748546190441523268563483158570520466853006591678593275631900108273080603903473822860438415562311752945868470291290956930496101432161159091586977286095726219091984986623235299273095689616742205993016325896566675192831797668431232750259031888326719120698698562847370583208429377465190822376822539349491352752245209449376669160630280950950966089390570656633025903897017631399454903790812219957101585811610243916623409584245372859022864180343058390413747827100118537389698702366097146211910522499040167730959428987024483365903397705305698401714077262290298651228391855228318346752314881413220677400166402513371065418249541832529546696146746911421566373193035203809150522447531945405681253601137438234884778720103445174814688154461078464506140812208901065063986493249567255900027893260431869499903696902799096334831271180116348110645670951642723505376122660249993946468868266089265361862516583949454987998052987736533791625400893387871376895284233313044677411280761424597939767525067156076108089614578504113047457052763278937343679012360016837027952134190578341005206582305508937683762701345660342949093334415473893797840963630831226467991506520134483041051546010008406690732182602541959537230517968416534748548592085837105748004233813365546560785396395997434594864315569746463715708857699558059035504101256006136316266202122939967664591678299660425224982875545283016293376698048327576344483791177940020473592979189723884359459651206574259869407659506634736342484830684515178013466703553763306314889687166880070216452458745896053059523334206235150405313985992418886810258172752268230772543549326084128721990399499084008302914959263103074515477739412104751480479853983689619879571765549509829654651433456453693728459646624816467595104083646200645891409713794147474555271663464938514140867806187309736492765693964648948981453209135874029783042624000222728522880366835042388783706951341303247351445747369168326821238726816434608161475188306679746903791326313724980093211462837374235692779472360104700972274723057950563169232476171655101588162753040224315835099166953213017574140047721931487442959362770760540050515963234512055083802738495608350524612614087501506143483350597820024017223551761319284034267618560806031323938839627878787860886824850609786187497168864599431410677802616646949351241851681303128700386043535524820127414693519258590806173298912114777268335326322054528614233749993554058306164502905807329938805842567575616947082505586407897870898095229538751846824524181447435524424538280174872309666164305802372586583249218238104934325436508000984738885221435679819456624209472975822980270880474876792160351978875637853702539958584058469410058799432498908378043714013475330406396353849543033771936019467273512462168818340412369679083513040153473425651400027034223674546138187139555980957092032054459090223717772584562510845782801746918719502558964576337592839636660578643944455550771295877742962876126710958867392886603660463728302738286713682800448670753754948256732263079410074266764408036496609160112505061537047654148452755751533080732266312869159236122248358150491386799783472025006170076028211264241388459063695243419184536351697669814252931232194701315362322716725420500079286730509104858384400955520339320479746198886817443305419855147981407925617023418115797584572589587817733544204662229606735986175120946209771051392050705414611074766064707748674133360434602631173480453178742639666002152566677736271020147411455397327742318478818546737906001770359683291727957175274956120133048943354588949828376767860800298603816259853717000172211854405440568980647555312508198302004648303522277299685080614764014574128064961592360199438627094942104905394211535106012032844788634030975661106454819203644745239568122010441229883923480819991333849275253012596584598516594656291257927646042216246749952462651812038882400742261764391649658945252884678068156298391158663632701065792288507117760672841391503815176088581392411420142128443838234729608567781195286961021895978500684953894271258057172149770642908381425192536364464036998029950738350761268285607353438151437353949630623362227924406732013588901324595969837823546056052527358547248606166046593655630929607406032955996119711836057993544739170526760365467192080338735669493516790643595271711882668805877454618237164352843839914677748019044364703996473961458615564138618413129889075670201591662212094206083077111890918618309982562667325482408371760212663741162214948573071192527428279472165995799878819293347171696597089473300501118205040718958331004414139665530596839966054072499225845837212925048299208986394192670077269456039671191793750016823675955923606000502834183989147827156620638591841792171999855322456992438672618316955682464676144177387276724650667093074136726833097282172559680991438402939513347090575835447298810683439398658561701289162450583838414672536516458210471068598536871431384376602148754375990515840435379416803619209372141968788728960889763182905786255460596714381096057804001996951922599926563048993399399311903729448035685843200624363856091126460588397596041545636974980609317294957540860956733168849596024327861553023663209487696907726360484806841967829383413902736957779174093749934475613005032039074773036050333877914069255262866643534343045575264962212742696030447582777910495507223513064814701877523837095661385884018118717843177551842953614125342673428546262348815128168010457062835268748508521087746604455984926552728893133752768269886086716467321612350604661977332939349053849773401660188803138539193513271924639039453590728232424806631964937483124898478650100701052741902509539998657620856054805054947716760432698743087700648268723840265581727453331263080602295856928461130900302540439445951421502149109455481443150218369487859370682610113505975646576191350321335768138183108470618352575640391008511770573866359238866302724165218368302219910446656481157098887256685327941409997703101807671966198108431175183909168803892230947108901910609217899934837030196429963198532455648357643069874429704519127551842227051525032216806856122477912321272892043700195944176888083470658899033460705278351329704402770024290355596372856183351182708617105176171725359343558134699520073385895870652120867856880821349516758142726828220670594623020411609237975246920539944315529947231706979123521019260681570033146080697759657277313245017988365197723847644617488535703263510661223443579632896224385724884441625047002028433661566324324003187828512052506311812202103407521203594037228844267421291012475149256482087978498145335114531990800278755700607825759723736527867076303137135721271451217646990880074848029873347440010660985569739783464701246488984314200118858974591419998912870235227233370882917604833325860019677912111349932382011920482007858871783219275204666225343416280454417156142534402109893000939553475505400864517843261691093058715043468971314503209577712708950661308564798943394362346304854453640122822412055233990212706209654239657393693619554951236324820465816547752230132786518678251229811991492807376175801177242278117934464671948387609373871503200941923751759738393291766137165879533662900313535749971162909693888633361352684963992868298645614076562509824165537071336249966112633454418462017936825646143620682809118321180549828110673400779340915145093832062128361521652987955176020588599776165054915711626535842200316418615389967785529697196890233238124667156765638240019726369465891912241290604608442979288336228574606447021892264648011432998526211620475020740899157579007217497648175556019084697975626506862008921759852613022438712165024022234316131011379706999295837020826320718485497268721950384308955299563165484710590657431225317719487537312573549318380250175386123733090999436200433605508033014990425829522347339303698301299134688752149142872185987076749376644547710515571638510264301773404054009289748515459352415309683252964245057163626765901871251683499025561114231541220951577427121155961817863355748504451151146694415051062546255175986516163623711352061970261479536032162410814199405865790107608145542757090744692458710322635489136957655809984208580618101694967630021708292585284446467075536151123126088224480016245267769111190333817422265409678594627409748916579110438528354435538050460364999406855311056507172443082079490379215325278795161288240574838431485975919191096695277493976412958900200583316572605432902925238000473627303036785975442747248902335132361039239352017194655559612130696334218398238570603253678852787296230951390160587841862190538340664703420537764846708738055406960396248560744125063397205535359314724180737840845019666328475787473671900153063772376748264840126656625424151187271383631410664189324259763765986960315277278418709456717716829843940950660246301091003482390314603271647957984214992458402574950454607394702500149975672829064317108069819515761797510327304528677604747279584500824004222132724317207802877266996781189327947968209159451196337772268642906193584080009195595237846420745250712221088002054498999411179741505731247233010924391829379338680583873749569148394288351705535621347164911065769039198519252652671474646885794174257946193092116763587377071772055303111301504508719981371637793301401626716160140177084975092004753809031570193003958879768871355245154062436512608398257020817267359914861739115791569696100827352676404334318171908847592144298521914056968282394277437534489942040559881789602542936201667692938697730918326840282981678144083664594139267685787475565612923484146298797488596906983758710605264114843283830263251741587021950194538018808521362149055855395152545184708527350907713021065819910075368550850950182675090528182351151544992105441915289025961864432883803634527617101487513592882763075693770513852548717027757146835115450697756322070021789414313034066713573972429194745947833366502716483208941788916833824259474459532912897437438368903799269979167625134527021716367803718895547464104752576276805786736916650143763941960189782190489663626513560522708694039200368287972262563143549403251771960586731288757970908762489251089878501180538292614820881451891142758667548311435953551369568913185888542759635150658696778573020551483346987618164830795450985011665780540288312610478362749315504844827987257902645694976400613650054975206644005740540148363493159846552458378993626413185704321074825610908511418943526823923929002612036270095016302919463113185178247993379591024510156775428071696798240493391135005330039078976212077883131607654616154800499460668437036078036334866350341554579316100233503340007337019442138459431388123957668456282599257534413190965019381186672633065691455750399542156848990574000050879229612518433278949611831057474525346754607081533110305334740255715523843798078301507838654202079682124194435821276008390959599477013803335015147351055582131955864449026668227529715154147818173789504409135885747512148281122254508280444561446116098961975479392979270332981952212420728748877353507103256577607316167335521877005045449636840434164827957222853653942042519869373853045350576413051499160143994113673382981709429027810995678358797838056602757195059199941063398635819462418266612760364372265174467246423272448212510859938071604389566955642233152278698309936111387898121246406755640171112778882390737659670749664206622435971809066934532151523994820286256439908100140281781471525758318821054733892077156619426372104474131496815778654476311837919262291396795032803678730694855860822879548320516658318543092112296190768924211679210127197871002764187399710112534985905669545126490448385124005898539207881091520290333391486998690602114318510461526454174633042019266678410360538228592672706285605836071217957020865908974068826201898403293688984007419381050210905637787373805343457182972616247276941139846478314540985783063686828587601391564888018217178796632324084781792583136193489874940248465399753356316248747639516286947802751734402796524086695351184687840954921711664126024249344433918299424592468954859907443430131636586413412093574738806497003622932696108363632340724458571468765120448130784915857735726891173653295623896312776190700011067503519971205792131563592334704199582671097716823550299298096891995778364185506482749086183888047581034358158286984175685106769850114254454597314360980567166221151368071838843121511404887192124740354825737679942014738536486413326059806683830434425818438134322487236827324659370378905046873309814556423305716005094682865996233075052135623821413951789085837097198078720764147598071957806827749815698828193464003533253777233190292672780806456451900761451341354624352777341713528503046804422912522165391623407469972096657918751820102268074872223213161579950762865755026340985967147112925207704103313369847711146606180072834197373144828406823271686208043129744639586606154389950946885719270623199418602348597083365808152921071356069904773126674494385973286675026084494362179259105417082123476531318794786672627089557215496010795157832466725019171057420234232843409532241139090232088730727688166972329941535626424082526479455034677342728346022322854112168322173264772093193000523267143014795116557887438953779291019466591548547200132498403050556721854529677331157011277440986491892490069183186739449311229599357547903920654249950480995985961273863385938074735965120042708114356617213370648230209019302318256442564779177635793909376049505934300771809783725732019665185822396410491795933204989915219421899496255317261936901679267313570187381790535793214230020612608332781104289341355889207925033150369121402785379067799845665598853068760104574720024249728340873957548909092771452879286825451965214020747148570381049457028433660942845692635027617179157216810382777821894520823331105395555413148306118770212739390216850649604623899661286478297532077557499497173920893871948633211254825351712430675678190319835654514853533915457095279686887619433313488448102053225290349594307046950978231875672686629656572436710769064565230069963525002088647375536807036927265592373562497575636297130819086939663761350504387244146721697907786373020380323435425673718075459226727245807415396967449262373929935337612741705407585296923729808213577670294350425178369138806452164898557849761897622450537576157040060909020119945934728889029647843039001133053330460379840879298911205644387615414882940096314869366914384626610132148070727693231324795872497688962558151375063966506794531652362613118163251964037378047443240810966047040314026019610055265151304142168644311219750066655739144483240253766764557082228850930131867164008847739137557384526520688006977295558324221597597221983726462451212602961698432215296669198178344862273974124412371702158328848563531159376603262616883962802072600132890850476095653842027295320885088530013248605438153614647495971333256208256837778066276610169309824559785469765251669006921197645959834338406934492791299609361358673476612380856546632026607000029563239647895978974529967909113056495356153626107418258429362854205385569622083477221756078968972883851590438553271816270277845364932388577791935224364642241712046676274569422491011252095224621128874085124971514071613390377816435241087834702132042896516330318656017609346187156990440883982532817009957087578324240908167300282820346922941321323580347643031007938610399608925055133680348317546212567004858088843714341312172905310257678799081561465992544259449042284529873178772250684494733598505683892207665739525614257588986233120193885058974156101343233413351964639879934071534097926124345364527164706311371776537413358674746265343741267312698478264014967398624370673437645916205229855934712776885027595171541351821587956138356923806777804261863052980080116675142436630621739712610833919391318790819237297983693186285956210974842172117889782714179216793593757573938281043958850150153596860155916799852870165455345637709202606288485981917497629562544284058281967510850272729861493449146023936138004783264999670585169356382086362489697705344191219223053715680949712883355531334790885439089836602807143182364316154875359164020818374267422618269355726465337888149601133572228337608899486426482123897023271348062593150122787122313408763785429772704455557499601209450830960916080086795918823072782858280383092437638708197761965356120077010084117823991328219030711822730304647906865458581403944574276936302529763664366431832180571515699361247489479518825672062366990689340452528991397158827286609161955172018632767914409804216788099094440163053934427353993371708750734011553638633093383529551281052976253478984645196178446895792713680991002510753410160350559697674631726133292955103208384857316638702066101250115914242420621607260226828168771445730494387615030348808735857975136804077553634276731897420969932272489284480977862260128284729561534438098218945902428445278784971153613848644120857423993009440428450597802679450017339657717456095262309397772296955972986402059587111571417205772569484062300416065662022834468902517999528594977248206540666852617398205204111794463067125169772041073388712497085752071148015968775930009565960664493711420772115237687890228141198290331435210172879300383019637974770570029472823995363548019763846772753375963985011077768215634465610336166036609512930657356702431119415426013872898067038583867690764955841823048758532094394233596832627423657255825422829170185969705607861496068573045270876240554790370110446768883353887033192186844526388270445923091055787496196557345399546351919068822439875417200604995958437162281084203821926612443388559700244995664328593986044683628108940018095155257718746186033195135748867435420213657561060255457657219625120981159466788996249080196414061213933341541916688787117164047155762214630729599701549487503748800738086865818318738936093426485771034130362663097281468986925453400023340653275476053584389641898316841079201941297625178575075830841201172141877869736250019855908739649187742149161901816789415997450282336121816746016886008187486511308626073680469797486424968032959553063825681373672017557424295668726581364308513109313913446931628802897138461247281580232869919771559759018316301222072390043626870474416785393162489084375702204818869697097994379360565490295753046466167662482666528349945408169779965372047192581064461200491138682039222248091041210432024576016117350881671669342401232032478376602699348878840269187334404492310939951337717911737024640464709313575786001460104105437842458574434272471898245988257917176836619093440519447807291528094044174622680763909197790105502648786926833262079436336155514908126290130802460344819968817149142994037537583277584968965613286944228332065750434771027321105819392586229805206719453276629790878403609977096975266747528586607833391209873288789805141568000794256605300277520489699140983019650067748103020759933889031306835423580136275847579230260402511823920911080131419573413331427802694060538381784058550476232443494110474359603927495239735152185828648336561630084970487317692152782194297513754997601261107010145266300673055026933670060864573484606397806836667406014207197125639084122665216856971048304982932560842833277402964771861205620682766307604876381819233655873774836520510596922014840194654714945815513155927660631212421244657209856914980115276659268812743499128729067688151729559858218965411338961668013629817309631712197845012347935365233072385239884421172502591391600799231895574078618306938316358705779263347861389207171079946717906441645824683034797623710534533873383905380371747247380155752675416374129341238156885907836582247932317912747665311433794724039495071242058466669357340412080786565979691724577630389911782092681893830971045501285649241362120996624696173977474419689991770191272283050513466762804385201596235735460660359659082216679253266498159947869188445808452707388261572813203018046745033637837096062663881072531445049135684160479219240299898925375210741703269776293527341940400686979430767291896131700056863599185318406676570745592695113597223665861284381151043216479887165777506007505697275620720723728293497233240383527413532566627777162998179875602619649191848827421161090016027265666241862855101366027341589757777597643232384734720324739316326586715904190331902151844242954513706432462699168126098598082765645423008917131723976638139313390794548892352697308912464843423344038962468394416845636262698788473203774406433807286987315837087565443215693660578023229009935661808422318641925134663848912201489108872290981043176757066211232302299096756013716108360400765737274958329696811322293030427367189579778852092923425493937154265936548267836671945503754964294585833787878862879636678791909659301153065613430626409331771035344497689512896865611370466036467155403976534572027151378799696027252354038472200697832980581733497862396333250027927141824559052640514402498435664001781973143787254884059596920140347246362906244022748629235599449428374987926505986843545482963518379267785403066456412494048835614510775529994097832242915948575541835102168414777825397058074130567730728460892222882400767061962404618646601840002349635234663751024447590233014927771466966060152510206601478049786900925953317795375432256540593276870747968744961495507697470697602201691153425507653804157821925012511384987544375185387593367227073049619951447536826286964401984333177719700561911602515673863230490337489533606613412754047837300635175396668208844899289598747054695772597914602406428057351948589499044450469971816871321891436766827390437266956243306484828214164104896526730155085060718229168931115505008191843686179076683234531458162571360832944034228159208477450433767443094913722964006200338927866364004370835859218815163454766663623753075895159802432243347144777810475549389604436254050532080576577195557637191014230649672118832203448675843800749414208643432025480784134679998455344313755958857126472337679381885893098918953923840408447502106032050357440148260776322834934199021042873441133217832654483711252821950631472844082640044114752349609550563260628671275476870510962492038886873755247881647945852607161389319213988270252717213323386905228625595559874836711125357906135238940197861981644618790045011144968305312224180582329590579493613874036040144696882669417678394806199743843715951407103072584716219531682790665681825049080753074320719485131155048487102476814324830257761460976301244710581394691755778703079967825417590710962652906802353405827904558231643503755654840358729718685680594096673846173251060623073806017436367530972324277731360941883293553989493193685495159985155483875722702298822508185554687764032402213917028594218025694626838416253897074332885296408064061811441671878169466673739245213133396951630422613997547036944039930450108162468478694859847216366754628773792741036253491110996254808757815110080816147897956549510511828739434493388189951357011328360786486354724519953232957693205814106548661484662693585292332209847012044106065437484299438719471019917969823474611487490551030466996433157435229186848635909412125458659874264394155815000240393298074692234064998136533898888921272191453375144042406002143838540705561805477017090772445309096850447545415411967442683325591368956230442778016430735388362425272552563039156669584106568431866430471259416714552605404973052108955598398268446417534730643641745189912996889313588409327588386003336560480837751400034784988638185301051733156717947511613759620389545913879388878028966027245359496356014439133222904044651150573151587596012384886745978629342546916577782450503269445686607961683251445864450253815438401719235299073126240279736860737741301954152337686101248910966821662401145978744793142071861481338922367467908421117381776198241235349348853394372033128992088005712843426337615433351596203463142099870171056882466793863399331080388837897558976269709467126358590477948360858487240033495818039123738835662253813756083907325867926688242535035074227340685320088812758468509756869016391558762224186466157929996804931758475132676758087039714868044695970404986174950352882547327247102665730611587897007011644495573657218499354914974799135547283004893971531966405771621883335080043806523625490860146461049678287094936125457291051241506302918619774710708710403925617411576030462883259081998143832194057480909190427314948324479356551722976016760153522954100893182250772351454615594369885445244382969913806264627464152072578220001956524957987446636054124236277173524176444975105989895412464532426538161208113833131276891757004507078063462159441226039507788550230322684100879811743978926311887493843098559433766535677098949425272151508855781559823086012455706489213201829709741337982778891777057484544939024454953572465265911218288567437938650692108583311069094212137562665795351197783074693264040239241220099425183149288069560803599632697607505090062843926316123321805093535883711943084883155990369439319792153814948888146062253185928789643222090368792733533021535788029416432176273695507290756617961796166508427213313978499843690825147305046908737237248976785443879139380241357177489598036969200889362108543940121645323884236456000459734258859421709133667473155848185820594472167323878010134071150529417495729857612803598904696680151806009429974522030619518391692458883825222272957199951674094474138600364352117169302027462437161397897236337215488651153075790653494562350625373036545719779107759779817921575822399931140215887288079536805565061807560669555284711978334094093564931949183543575746575611909452336644911182890052171301864881392194046794659433091313323039712838122157944158811895824909095705808313327909870113975985115145024346343777490474653644370624040222220023578378441532557327127555343901261773526649732659244807665167429369814237867916329204736077938260256392462981110821714757551952013531459526843321911131209475777761677541516091917220144492126242983310318741789058651207501846793998849295919995862001877749265742544982825804261468254106879970709653879506184209419277088635730937547572261966139312246718063297225789165531474123668902427534649331054035021696675779104755859853841774841917535721218668351490223199238666269776452405012179409969912954209409852400387405814012040974747377677257358095323424871391003277051284664693119294199431477707038010855830989289875121200942791070429151696885838555003561327279821358532248578957992405232288832872667442816851140640121361565088135557362497544038692542343309177684077444686998592121876850282602896833541154464046240513291375348432143176870953649720086394593476981533636228893805668106417956459095201046966902086978559613768437510613668178132547086295687537628301507107187334737647640038132015469031608009532122644717385080511678051578570364140339909890318828571102375039489506585547887426013813660555597351463176422600571755135643264913156148387693675859354146649430406448267140176654771289878800401412418574722291895747932967888468761398705547910076374660131273541488191844865225031839249290422081316521969555034166815935321725768016294244996474025055484898759799236743992509963085744370343923077742072065866092732776044712790309616464975030280638345321714021641504323272512695824187544278810285311968033264111876618128146422604458729743164084129705986912326953450553867711718650633299701540957558611422436798040230477346926070428824234971384582057564725905782591153439511736988873620758324269575007486856253949048374967267105145141478446210675188207654623436966075960051006514453600911012487748417991997431053145138578721888323911184783765268728022528008240351576083026439256325605543840992508195457974294678879865638487192588476170343889283785600518301383780661495204487500976212631333429693423671752511081522354366331027657039755257441900861331958011375042827132585165768221472301849579577279136301342810347461733035215459721927812287260320832264333002793621567845984775586591069163152222749710675191406999532617211620412416828432578941300117239720996971415585152785957360653312690158037392541916386020229946231737272572955800874053684641295664453637364235815611971148797499139532566541755073627197578587293792013692610178158469919778209049924469900580416166341445695795098670976975825950102452051814244393493552117856691836093721719708669108121295956796331502455770974283608439295383285519323265231514866417866425327454052149236800558366071434094595491822234255328958626885431470439133471145106520219992944948887645144976310006623699797705867976567797113956768780894647329060007068098942941893045756876020910103044770815723694753999809071091540405358726437504485341655303097246129647174666249601536370017486203133794817560429613663572955651845385453056568489998019949977424630325021468714191066578035007089939375378625640082752656255622969413912472685552167025210674513398669236414488136538167070823197077843815443766323199829694541627048090434397579806360423961016587102781334277473529295317013940806564045867626023327315206694256898921465141750799636283575988082885064095959018706725621283870113115556059641528322430713595592876555225326524927886444934989281293486899727668374231843346143293380605866830010106849218692560603513651009831276512203710398970736925105451286848199181966815816232118116590799613395197303966915658260578989362108852483423023792120969612233461205829897820989811584242764713662949282999553754218457607075875671381502391793036352214057275794262351281674364288271546151608764926212594280404836292274283793409582305248358910435336008507037060950104766136903284748689613077085311834926616966620980664582219683659922540277682001683844969361460728228907127686184868614883373986084452282358350321323909206872788675136174749749399979439474185738177898900084012127665781605504424597466155874057507948034262264165390309871499270053679419623595182950565242189723458279425344104015836126927416315434419817792129917637909453168659580121996376049819691267031546357702892863449037714365333821631547071852772897195346260192201055072592052016602183491317007096813556309178904127253980996098660048776451689755988324841166185316029201017385192513561954638848043663276818035838229171278981365386228973834317407226689496714338339870328386249252182811982407106001424387932682903950838725524661457565253795745207506011970853620399213289554392640438544128774609098261603979967956490382458551277831485882733387819073255423673111133708714121906642770877264492639766002178836304898312126779583591643005513911125889355592111044192119867295736923039823451938215014545341675363119880734419612155910538701819928095447783960386341235404672640058890448583045184859763576679137923256979868616157848531115482383296841762177457928722101798976306984080602155525559732445165903127634130925117979470647305498735766818105216853061801079150249130030117030322720410056560669903292520290798664951556278568892252017996685293496742324745699667604927335543791125373885878920872925505010031565462223489902550550857151037188531948836407461657708235158324829600633157559507668836240959372929205360243353864000558116803647126530904325654678367452279213114266918807929908884655324929326892318587220122276982641996098962860317024144173984695318318183783274823212974766338618176729444033096780109850027457533553139931966121294214862988835674197691577342017382952993481090417021561521326319011466038493758384537368202106671563649873133230846013839210844597707898323157149402725009072678431995725555927605390725612759028256435400292677725497118287720046735023533527332987285002480604148336609104487144630742131491920033899396931465832704663077202418091579797627935969292183912922920418075438368940157626087525603723278203291709447339566510184877983981108475297870024422544808795283846966737663047544119854992637967220221481819418077584285582179163255610293483898869105424301937825967521811334662520801141723504121768020603783633030855265492863912998505522430484925203800691312443661183181436348940754023811594513703398570563273364896189420235126261147161592739360408216496566595938310219778559326203264450488190896345583877575674275309959301665961524176825784035577273985340645174886929663969323904157141247561667084049670533714675005488707763513287125988269168376238338805201561187233842097486783796997989654227007863774795283258640547928062118190997726720251796837462732011650807865400409318172665204415405379892233233807121466512180516840478354133622916850397799285602994488242089826032843734248135802437492978696684029059771962355279133989881038944718961835995928010342013793182722627283870728712695794171943841342272101589761007820543272111577217565166219262239928143553349939863391968755321248161908412977715762514394275464096241844410728693050940594254252870085038032561843496611396366608226305395488239973717745635524561817992430749338690352580657762121724007953592634591519210350292215670877179081893532746409860730874182854800503136903929401876334725209575944234490625038083107929713656017340370284031611131433474397255368868920400184422479122152885997593542808912121719587641600828671531791522968652087172121021842719631396945030394404793404342916042787986054295455953489915956735007149065214438678689265941140810184420093751115998340239850794764484025917366288939850652613668693188255809448005838425975285131882582195221859542149112362076368399202776676672256259925425255274875120967727139342570148426072737233454700391953310681859197719700505205900575903575873795645140412969205066229927949212595732566972744079438705183823961642105414967147876156806708308349612600540218594260827320341674089479511731326128534943530598189506250385371916964798301244402609573197680437889772568956570725290829828040577958372276973301962008452294067811874760652832655153211105647026764286501050340296101514829460268410727866294473924010302197033875804463391155200787829001784610174661702237118698506499018291001799627513888212177086967305280556881639806921951732794147734063687684281897110628315332271873071124211876302815286561629651363247236540482627895842899273421157903772055609625510638239014436700224596197722998169796543656922157359953289260607915420461421951049610875848109825252205690829770458279222117960302517223817885833814789572543857828684358953518352363315204725058618901711104557152249855840092785018650934139632815488674499618201800903875596757239451307598424555541281936345966012480144327750953171188059602396336968866114910603820011713118454993634737597001216137975763898768893764491604489389285040308737035797054106916524448679220004401227770989804349436142362310015422714078770536088180286150597337100563114931960350333675536789153485268863823915527867363374858681015047484992100935919191622066069056108154098298402076207391030337130017730986164397410404896468820918590624887620497489030651458785911569495629668328457233416690716776824468166572024315264015311923643301861961976187089230763179474833612153925692767018926734645104321253876439195040673513989913166086423730367168495171117429713191631636083226226361293384195371152832325357369759395705889527705249671414088099357177265323699293366121816941457767917433746932804987880207851361707312088154241278967266730851419379853382698993743574078437277971287816255389345874219492807942709579030619859532722107975051004725636030404540706683861791822202562567068110940008219464184564034136205991848513749297312344015568960802366944683854081137447011937041970394126064601756636609057895577087833575914723604069919109108745071233226824424183767278846146132847574582688734368179164746310642331878648567618217386253823024555644629906901033630302535214586159917973987882185016545017920126961646194899392190645856449902339049771996868446059585365385056071253871406393514130252955687058593365395930547962103229471799446459308702392807428893409562972598238579741133014404506298482996923751560217147260082264254005716401577871668250813793122838203145447988840452808629224548189457820241916051912168296157601267802596427447308393475812547440887788521482677550574403068224226324917046173758707702763953199363375242362145042100783523780002735102871892998179756396988089943011121756513889835994681798408479421596991299337874488035158493671908294361058327853533382022537143150671356527259953157778877031452340690585058891012736895471275077836018040689455221211447208270764102156852830451836784741104727323456514785197402910726510047269782331684751742078564627672806090024455697869534634648588586517076942426357878664476181117986090652531986410497559667440569869380332283262666778411198690319104621272322096029912930880803523713297530588357633202288925175511013342218899226331456631155804363876079787595793193014026664262751313464142763363824986062686766087115595452364075979865407688197937253320877928471657533451039381939582581346201321197703125227788441113186494896790871242578635471523749029854266936585227018857804308046841874652773082365542285355295723770008583888849635478251038916302884884081473784080304424648650794413397479441159190630411581660717426679228591176911974473056802583952702365670768156813718765737373255120452197225972922227417201775455651350754787429861847464447148821865480462861739527342815553579847825099660443130701034213036399546118447645871376663534852210472318464670332301197457111921509950813545725274135864088946483919370876648946909542139973245488944390094230699179095688784814230024156858579581684819808075489889661866061042539387060178549798218538961255234554237700385873961020276488594657362215531987784035311947169962408321703610216837814844138808851023942235625735831474481595396311075818435927004645464655327152841703452808713840916028991553008234069270175843880016442172678010615209886566925039244452464040850261487149312415258253810723106673259076619009018947720757289018865102884960511894228903362419816432586641058984245837394465480489829642736721848325098810945336373792874217928989836350474375640818783300913515181383714329105097943459950813776697142709697704502413014970665112411001055353006469078422796760882248111921958604222938621670181115056430437036300081941946291276743907926318341545226112272595255293344607907747956034253107989113644568200275661515437879770185062752819353280544085350339181882528192740975982382492049711717158200217453845567863165888679305613358097307174135329953157025386201870074943857243025414659976795143215978632960515558407247834504826971884032220408527532602125255941186649024405836248629599271213938793595917364806323144446745044870698805375838341948453552733595275370759956455943728111977798754121082195679263898812468942874067253973126896707951043368478123919941274158355888660217177188415912496440585192081221145195852120718966929409284970623752148710275403446212603540796035143867418381315901481091896181590981516365912867603132798649333842350909189538390225261902420334932044268265113901427552469656150487133843777294198986741762945347088323203940222203399990305419701993836863033896594395910748704947158242148862928838076590435813061404875188404809623500976957140909569916894905268253657303406899266623238938460365068075276036584258498682421784909269708233209614140264220746943957705154833372662411660065804457692558668114296498785372035227428855071463345100127182362023700884321239316782499209483548141292825912951085790994669908451952520096421236467328889808152617446914700560984317851876321679256405451173126234824116068474805863393020573643327338420695304897706648093911679801257710560178462841274518854179047256323654782879718031006293577225933977598384481278151917055652127156416814637449704017436114395519149016561797794117254574571019927846901848228987739442425925585752719996487177625003891546287189614871332997818705324334208941677306757870400460251331339180361680189710223682968547860152720021859661823680877585294177339570922430148605641215710266676241902074391822264539468554503441149205354312617942280234751889317237512615250778089936484601043691380185978735958280523127863495064055482278621429875964621472296344929302033844650304724258356453584033921752258847122188967496792578004316125859954611178600365032455739597467455479004337993121116027725859856430607714517541955820572188051572465403965165989197380280309888071412251064264091036803861035388409157572690008972373490778514331625526632320129152377942900458604931018605455370071146808039890348353987489215480587387753840788567298452216982126890709737131265765552739512471842751404358144056864087205976759598056784045013864202561240973648268042092397949758540264679906748675243812502410026195433902909019095661936549698318404378411539531678942093927644610072934648176316183130408994443552106376139449611463185259942849852160701214733821333178976317816547772492384739833854922831991861503879713772803090672173718937828496459444028216889634398123397941618185054367744692050060447215332232193419383257438500198493826680400506238536070841586377818420348363703463153220935802196780936981444877304650881078185308269104491777481799777383052019847917811680558987571211781147306542975334645450289859444029516530881925406783393691607105510990271810707704072758370755349352683349807895276464694108581002320060300433391998234787356404883808284115663932075758885496820840844351171502136613224901801773825287994243656961203914879283472174469251275871866102630414623929807853694708999851038615263676020723137736862844743503746635346869523964287353352943747017120298354293286431092717102084583303211924895235512898298748343559557361111223728692054324100689594837240911057375922494252642704146553897303397086002350144741437985847370895309658915221936316291942057326850925282966038709614648253608374119947892125014602929708655114176152609343263898008950342142280706601265294796074332018785222219441978537931269397044033555744735876937107442155337314334966767362239927315784872556837986891647488005773496395988638387424918956295802740348367340362434966522567103234636227100602688856492633934469461970273606831360960384466253836138334038803453313622152217550516707532643686585802625778639873119194491364093863308558632768455990938865846853397687238105264064473491029975452762677696251856280441664154432058232039484902487368872389603439938786820541199285775832207853681313263939020159319959600747388411803212307120872806520224057882560072517410127474927025913686054181502031637710217632272421453934378926541184063796098497370286618528135606313169343588806105703056902605574073886357857908289318581027521707784821485962236744690004853513913434374577616778292195670183714408390106785329591246059581678042078096573593789641690212009184336855614136603540762584112105213743573853945199105659769557602497602903824451626271747605615353863971586423566020897156483359282289347178151807640284423415973801370441602527325940266032930562671007397010293438376283421379375362990048715724151519402419139034231664168343789353885045483448237507785239716492388185896704792904688979543527909350067075732121989710543209255799066794214630245128825917034544490135984907549478662967126643670583524677995424587929171966032163382103724660156493819136206910936040280881292332248275005888333145554879385919300624127136876553201882956444219572675090999308960904279331963474075597404950668996717457633784786306063101798746673195687794764997252604890481746346961527850708667355895314963751887743841655515935460209677551305663789545749770416945941493204067154188319817900808379194005206663359504436638370994822132145776825110480825872480846168434833445977552440959836715002961471240102133427782669117504230278655538371022023512710766375064963322631520842603355286868265881793160651819928022705608057525805890193968531118182858947423524769833596058285865547494154683242513001766791609613203197030428881083283445419249340300444684069419343463520134783102120290382459823702417346426431710651054897590429818435075856407175001216769892459521170521643972804086159451730583292372108358489501878114447450131360506116534128754880909424668269911213125155911554366218824558672162605191264652788091668922769805297863125559744875077279670856644771303330635726468385732875111042030162252824546049334372614554984913112706345628973004594840138288321521115161197199066859342942525492688039886951269379965253210268969678059810982698925317765192768327094157120361441864181662803495311288235274806905556009007679825675469635299532045313353421354987465663324535842609963068351531690695834732159848761965972246786980203382445295442971559607918771629949925311548260624765672217367430821172858385429261524823193965090203611439038750738200486125880230394612253087899549577374790549898070125505385258103903526792049424176965652708781219099616843424840003152607053069094463141670602890997132067518821911285446687044129792479369933826973383590488289236509781818647496160997895932381577242709962599460253556123519290832018499036043477228305162055388066435173084480069670406808484553374553637592013369423280115093603166191733171750808084914895487969078022648074136955152012597663131630436547875144555231808529306584619500092380541123246332761683458621521111558690267282167058705135051957861286984614065899928369607982520903835544294587657059727483770256334909104994027154015957147684925612140902616102496889912404761971077717207340467236786096631118076824438729968518205978606511284406181498941694682017367125079519055783858835641656981745595856970118717573010576460816509798366546419416195689134392604279996932924816901583586600785199936755935321306495215506108485383815742448152522810666445747982755650416422102022211744305750464033431827999260377244306144309451687628512258528104645836206831235319308174813649780111875884178976572813203412569723682816917840987796512579145882225655696241920926807847351969544032487222003023074928513751843811718667363475366732100384950343322269488617292943473570713063478039621854319642485772067711192048378062603818084182775675042158272067434391727406224282245660199081677344446478072482811908372573154897362760164608596234395220200609966095823706269450836935551072496475383823207102982886113860399081635798859030124650554262412532350162762850496955234560717159738943268958818744577588792158459710669642338355530338814518724730898818565148952003796526709343607508244337935877166793363071034655827603651409408577084514514288896704661854268969797407343541929724408885210534138261984052455501296790023202956677790720015093457439058559683579187424798544191778616874724662373389068078881304351257181306354693416288468336172348180939984283999588502968034915849108119128378726915246093817990403608206549295309290390363604634650807232415685600338563925213822116387520060183393145770448937228582025074970758749257919785852019543975969965398420667189392918429340861684373640972149088018966877420836853466386880675226506809615357865720013646768692573573334768377653324783034730277562080354634725053981316964530880331237484088131759145395646176035632929306232466033952431201681070554036834947389492371445865174998750111623112064499080240808565161369367213058306430775399998573035048830463861927736645459880492453594652161042469089693580630816417066818444963001269257377529536052988423611686303460340606355006665544025944223458411029036132612051478033578831439174950294510804544560637749887218253285247832848044536596317723077414033591298250357962289123076456291083033020485886385186113721089859535488990401148984507910272440450011036823458001697037779321678378996832253692744003792301646482870247781755422344379813631429003482271581891436050561695681003381409381432101598761018716893241983981775095046253820610316296921720709470374168167073386830377241438515601983292028765504981448025218956623207108881874292817130443465189966070511555315699771939660380417882821908069701871462221257362519408906910502721629722337431002100140642129632695408487669537744318041050238056651376334447671645155445196811420368059328204739757715484162462322625630475944541441813908042749537492062727937780712475142969288794088812842199672244967479155731508289322557950231624133641606422427182877958574862924374508462453638697872180421061159728365059324703811819786453320437217081947648890594865266559646582864710276988118450895078960609995338966283523909867085990254231286667869254499869068258845830808017554149573272213645006151814031604288428351323559510062232877360256744871292573594035555281174263164781837668871564140180619146103568998560487691247384703056227443202960047170762307463177767114761228639171170296072710207823644701423961706572976215438406481326014679735730472912090100790803543647170516187438215657635988245302314156512851826775258171247274877627282626442123012444939448508063658122241006748617616115013363866509426714397671864469352047967038267299553538062713371158655951620820631090241696817570861199687779507591107560018082099099198583293378502511845231058797510031624824899371385227790596526019528580391178387009235501109648248500346892547295009567071131611839633363486622549800621909885619879338657805406495815188834109714800252203605696474468653354999221399374041451746460008727818423215665758997152678403463050518302969858146718493947638449835508175187246805079795838618852507925201128941019190248396419768883226376341509810276948528703764122933373382278206763953452112045563133812163291377083857452202206312993388634173216589006515693771013253209931530113436753361306374726623144356426622773490602592859960758706331298167972662967040162233723440355530749199420261985042840349046014242231508578567950534290330572584117222528495519762763269324774314687816763258241818011430365502834758422717136014890217326919156802794811408787720483829511768778932406421409331283030130297261397966776844557847581211257622868363266856248344801880176470018262359045458743430852097521329107619115145833214628539626027885163957957932926999012208887623755040266867211474723415698496880953640987151971512830329457448270287080831269876479641831668268956525888521188683906698798896059148600136059642245226843212723416010594393302897247183473628483177388597730440967597757618132987039326890698791286544467777097918012661333027340023537601674739510036241936025861606279635179687870933405126818304678833997761718578271815578925106284524401808178514021759763777214880323725819619655500954064418899375924958751907561802895905906581116770286511294737605777198484970794672094674654032799355694518349467733426939363892437274445826756340637728057847383048570525352980236348562173921189012563799137494732405077793189920329267428923558188038209652776877975086248781647619181039149870907179234270545511996641817861647126780019620777130415558064503620878874413231436527941392748200262683783727060972359524713808686904867075628158107146449233682841875028781400515478171484979428246342426415371638251847878345250144726023511269385915360682145365524528517842293446703806865977023346826895688733140774523798749386502014494510600207379778567289510714653533714301841324774059331650126244778006975547202812528186069647853202660263269051745904895527319164133440813715351572042739400866611578206774932938078305087264807051850896538565224426199943728887110948109759643220033541911777773097603025853632642549867237028294761443175320781478969415080351494264139060934284464780023453938243416616095142585041179517572927684621552880889906012802010520853427409206747184408317364779414426010328092790127308482360355702524026349700017815859929511570624937535779878482325213282309130297323506769113484319746024271778162578175468047383939109645453829560365259669412768940380439480350902811600973901311581772740389504582640868452916432783130891602945312488652715682284718183325811897956143677064909773509929321662693203951710782453441275476858533903519913039615481734145071164321763685016007722998354089617206859165975215180676922342827289702983276985770544825274729510975645717782383304964662507016968705047394083992455085594797784887827315122123132337164793919293115938087787530880190628866324643040761836158522901756903290232400512838451923528365200220065396074933440110069356636152110502318002587759270850396990543686751703175678297895688003526787279578870223351540059295440490564698876008746085655681584305510140020922400784650192641318868744087029193310946975539994536721647562587807253076224416855738003127467669266326376871174274793761431599803161066712932508560019795225299094590729344096625903344260501893960683574397337690409342229157957138117936700285195072740699867803423402536260523125951651160933028679536030519644980196933993965229057621645991561604192454994879340829276485201874079675498045768240306688985504717206924881222128878519791033047334369386473436158076325415779422031754399636449888752782825199352507522019375493349772372936886348927709064585739169509141636322613260792201973795814594876435263337721557769005930240238887330187888663322511316447742086237017512891722048783229062834510186617903743242971618464924066878907651190685354589177530266685606721608326403205511293942626787856880079681512672498860857357346191429879867472639538381051262598923702861185134944561348606746582356689377613074033824126973153331216196313839649583039581161023573426980167899053920391514008839775872098553753823965184909223115795396530174893424681536683733744316287250395358313623668650937483448878289270790492761988368099028758536570545692849463258277077083774085636087666281250800560915409812283681309794368090215915486800447554204884199213370819983730773910985603650865087857257136897809083881895342755310136151923460363329472123825762120447291101331325946700323182476655604271387224223619708362103077231039206002327836661413860432312606757237174680062477444736789322168203270686093070152312539431916274271173353159480382379342881286064085403848625455418888784483433342625286470206451254533816718082867378623450477895939777267126542208720209903178893167134396053667716849992806090031392277628852500598957742533931093979219174244873719824728870915589934852629550677459200218587010933103707939178122746567252827301006884055881465990740619416391474799302390837011359563167484267174357965374200901541573126152316970625945165983463611863761304873109435876181866707085153411656448038642983105996949585544794982327642453732877697879071615017454167381521707230224452733854437338038889240348814545213058027741092449893644516005675062599274814283819682207627226113577425619186841774386570140038659633622560810758158857104356415384687269540951114988529764192183181139163521969131204306157969099408612150997578333786165758194146522775288388719788632394389622879122516955377058896991080367324549798481850484044275458749376328928554946638395947681757480498322126335075449027279388506311420696391463277238495511909584393973710114519936510822339838585772438577512022272489695048490295483932362647949095970498206905060734400444785029216650532636537765781468145278512563885528023353429147104868296886344330166079816660771486542682661010704655641099223696567670198397512050220009973973167692760118575423028624284425356720757390917460849247472931249917385665353821647141262608423315877307983099433280692704778051383593537181717629787914301741875729006678788851355615797070391756896813937882279030662419431820601795926572935834803065427575972228071035129975680662367882392258109392766942693365866383443194434884390219141407448930039006998332126674513588272150088467778427276868274306560805095710600058748382027014306437840155089012235584947654172722257818562356843357757448099146428159088406580250654140967855945900628889990717763033311629425383187787188269920743699539355730220833165473332216988467486087409756054702353818259910914480641782992200269478119714999019064480065131179718829104283824316427588588734983898556639502621688515709831182527069349546614531108192066563443723464298899612725692005309086473133421175903779334441529943700483790929198832886283481791134914151174568377631542111325221791103658796757147243970026378200322662831058550097479395251732670772493003481119687678672912406237013992107364349913764631420141374933781875655710372916291481547061774186618864725483963153363814599455986484233234754352919556773933519648330192234521872151104720236007607258756680703169823072855466749830016536985606400272424801042031900511160942725091587791087132236589346076781661326648796318917747008297900131376356341320896096699762890860362491297085962257223230908620425423361169131915659090916190692209827615021913798823138813424355967105268934703192347661280978949867152823573988904670785332773585841187179370090846194963157056687511539189437797070574498560654972003940529903095579740842283842909311001250743260141139634804637690202303937244540447961784148681088022478558533438000468920393824120240133668921065603312956931224967002171461734393745381216150602244819762723638678217035469710974696986055095479978117827063303048817026825702604306068237017999202808702897003561644241487871148785057275939805605111959429929556868461371080268658477585500824169710329379431937693708551585198567369882580924265521843206143851363852159405179269403629962708169504779970743140640934184693676122386507360476706086805798187198846501375112952242566820805863886894908484262801644507918689935756214349887559175750385985379720034604281000112725894364822095992169772037376679858643753882027815039500567047849748340247903886275841103582570197432603263368858213035489415023601646978897207194344070386060375136452218136817112623747519175560889727370281567012450925875126198569482546992911571097345130140829144911177532376990242698236984164280802942063223440022636639549107898162796395648954695934049567526551114468027384971110098562388336391124799576837655228475276524297257685177557722749766166724839057763953693576104141263892246818278636128968212504089389809903087577872512704914101348167998643392244627962413734346358859423494012388790314509022491668899018301674736309391446502126056128886521301070464047227889837657817060190799837852345860244692967886798078841687764059518966877559423414329677774742399132928503163175064215753627082494246742430499437897351759539280016105734527888875924702401958047833413161714675372907212180060499049441241742512038023624799417287474099764455021238669058358444025655647453621570985591254746574610650406690251129861774819195554788790078324192828129353492269451352368529050605260354220528167974164355915136537016537939211044987740937082261501509494901482739656711847849499104460592141815698377532322942012307279468941478564076838280345903869995644657456409744761156653944348018423231845889859058910547939010342624624245860374608768897158896852415204521857093608827917141703407398294600177105619697467121842118161032231286991934186305041021270719774756679971637214377125822981225104975852707225777956646668519413206356819969043957482571209445304903240876272789672426511179394785036852731960910576967297870281645487967732231486753164165874402832414732872111328431097722801307731682114375396121610323255498871067743090179320623534702992821392360891435911927276345253537733173867026240372219028337191850295505192826278164034250343425450081912054977687826008250130471965995596983514250373144947730104341248534430703975575572599313119823753791392779482512732608181372685631063546850710464314336715508186732347956339937523785176957346119387157634072815267477575742133052003622902990967492276784765654812933897779377123130263669926661301711782139288178049214911131614370294657714033862020789864616166672643519217759699235602172796633064169359807851698034364095748091018338223173929307573891471912602563088825845824650324272151238802991142456695774437132011688775523724715974086925926095828215963413459885014939884113637131899060512600009582390655527196653529768607985289883393704357132366110638711837299211053838349705054150024212011154588697891044554218563759718738381594429676626931594997386071815421913214227179741202295224985168633127064019182211223276412743852807463133465283647578329956018833483454592586053076651500566496948949629443373796904403247136893022644950672901474287389305071056334294525886232262012744337059615336545569420024499564298555540154866717016366392047021185412081922912250248774422173120936016954272471507939933735553436665584008568827726848148962399207573597443010619685030121571789024798386919858868568321039183159513284327186511760118686424402290283301338526093197383893151863624635476128912549988516941629745995585702466622438406503181030616567042486162868177374980859316366591753276290906523618957388842028079024362025649226658824129378463537873235068893884561195758219171744185493762952549325425723320850195376672752636240397111220029932997938884038120748504035264000154541106202609172184133865882729477317917586767835751128660661426401326816770909055104511349586133527715026217083285895678598943763510582547190502568143274058017429517390287995607149618593396354591025202325814507790594563133684607071016666942644703719745642317062129176859904796999909085586535125792704047502268749294348103276642819714195492275393877789029298613678304231425966366112490098097928630357018486516205029791683135782837265277909951968939243255580161221740605497100347225301400581316580751269024174065270320961498743655275769420578568274447358154308246131643294713390503227220442434847238007919679350124762137979731925607132177577876831284621723847940778785153534331767753754787686049858531405344686612595682098280916003585978550797001363876359317477716907901690259278203499664606129809500602177379956223951594227143389464020465903084146464834505390210967631426191016868106868481841531663742743940466233067774066782421441358965934021959383933703436500295971229275568480501969936543926453040282092557294441624101718930787631961555205346522033644323560685338001507089997132285692659683404102852647999471242392813761279756898505593598416042627533424149616582258294115473395620390990808844337159497937011707560070245841386533314537630554976750740101231214722454156522782090090589739918817803416993682137082374465544857585982999696981272016435212156809691620353030867302645484508027615350033630824046863184310309244632430362587733682532222680038637628733308374946351448396731880482866861148127853927042941817970112392619172258709822538451991755915282314563344217266981427996141943367438208906915183152001684886080420780017607004750049173365643047501914889794706829207331020270491229707230538776937726106702344703394713343265732882587384331519778004794688243406772611772787561651251272213274760952484010390283444930238503377452545662507667069810783952271165455402283162261078333948689053314972034201293705049056147209535330827968884673477253072013324955464860569632628489915277134535083794301918386098655561979027899433454183587947947535289312524773925565088587898455756558590688019845218158668442057896487302915527715671805141287575296292280245537819119961641550300558560503313715278590287216818645372775836843155990640902733772835449234455928366913133183462891235100544460165525008766268114226831323505531515865823748715035888196880042601534713872955748955774126203381385263702399911894189767729790096653914733826741942326146680639247656598697306592898678188332092715452246651790751981818858343148484130926572946364107107442453996804676005843836356188421856326962341993244585850842556309528798949793490214344911612662563289453634770027298709482396487222622069330112717425938764444253857547822571533851704636008529980553416879184299208575488997662656757773849403905737850586260436876760365048802177550087944479190871393268596643154843104514744932752796528582909515518605781024572724663570727291420193389611068485390471891387574414519377006766622582359169542103532839357367081310896501430051076591912660819423006393649031218766722095605472443849110981130122212571540015097467962523607245877900887527065181766128374068574501832683133832522949087522135786397600749121965522221379632298253044289574765385040875836668904892859904012273816269016427557956663150773223191424768658693094397210851311082184268393312110911178747988132117295209918013018084163840602290082421493939654001539245561155241281559602043458082744509322848634541906399992041748885114490357789651722439321528394313036594836127308822766327501949501983722721944918960063504322811269436675551918694054065243973975168242450014207500951800631282090966415057125179953785513078347939184070989297031635291282632145039691290363407777439471433420019437350140290927048895412958633268702034346715943937155987194992751944306864078594246954005070946596759788642048067209719350591065415127387021327129146280731243719074424529356336903871248592520871809887317603926320673408808567209340779386364924785438609293976259174475327370211493039042321702123109759946412490605631335668709248731829533405159506598462137193171741849040626325481578591484763705107834349047345082255004489259758882284012055127610892221689098784823769017987443472375160330666162198725094050513527725826598544229733585654778751108329919832328414742629517911528605097643201959102285240827301783386940395916174299101248407792436724690671266055908292395605475353523861868786118086581618980291950966096278112691597490705012511728712363352893771882936317293229282696176053333684369611059980772296567592090516612513109112381503110046205040132913673260829224769708088407277957029052759137594901206626734848229035961093109168672342874703051417933176447478150522079364507522231456111158200146592781355695135198423142323777704185389377236015862882792074775801744361389638794444136238195233231810057227739632649341220824490751449375419085716855743720391326806922036097749718844525656826010529398732394160219904184729913168770221720101514741857635928486885292445787899185215154137434300167039738493795395083293813441774688332485408998794933010688991937379898548753202881901008488655733158243795859939037267669175109082073648246875321715756871637586552832471745144146391518359547167957157840900889430281582124889469864331183850895663689896593937605393577820257421373500103036814659913569068352643683675640277926558765207568819341580788855406984057113245524854179957634987656704673245170497790140265487688544965445812320131498361868063974888558764850388448964848918616969547535347011102506230571446420483424997571949002676606595033455007778928700996198567468081983465218375728141323683759376600608602395042876426259527640956780262250192305767475206720887475008274880942066659804422018463347603554558428174274244232260498639234450188752042613548508030579488348777676888549913881448212049651918790141090947959776431202143550403187811470373959712234008998280482672638770890221821840729104178321025917676969801989138947814291899254829073872868096776022055825977595074482836739349576500406448797836061472511602032771378590952837601277123395081257376372680979168351660900717881479486809410417975991618812824600508115055033623087732144010767840107776267143028063774895866439227084048870178430457455998455182058088671245525257837526076015158814184590545506959925821622920430750603135207457089460069182837387023017227303624295342156039716951037592328893280259100710082316730545748065508599591655072416315251940455797873147770443392091407238716274662144676198745773739347498704467433145684276711757812685071795351331429915460347745949761308296162007016280631373902783799868162376233513112661365722276679753337468910201837014259225205061757481954636894057478426569159891311310833295148680859023515042960344014985867445219673949095486554776099800684030889515243038484227747221795765574652026885324350817973128214376389846785770813399320954205112336900653079774170797808867466234283030169346114333466239537013667576001455634808583522149603294787820762075719816524283428932266846440425331243538234196885309390720890516840680329522579196330870201485079577574780854609255714307033087503628451842453489823199050756323168022991221567625085515492220087335341060710361852958549381716752461988424704896288701400472948801753278638838073038121536909525872261894794070526188174665969810140872041611034881922171600101114942928474488444233770244224619804443377932891520094771689534083381038572908545340540431662336529418703099034880737958760298015513300147771804244653284508472269232525040354815001038907333623398679459214614715770251861931202578571007374165115640132192641952956633076435593795671196127403285790202598282986379670131240300777020645104577015411945124226622001569964195364475043467565903537085681950962859010839363401602049955938625757658656800546534557628443326326662534541777386185435374959895522328315756495491233394737860439395917251789409523385933097137778495176841016914755769353758911415594407903065780008773074857553596878801064702523451576791941011370842836258415994220425031122145806491920308530354921163840051394071368858327443493438075390321296273664933895085026604056780919571603040409741131251593649795724971527251858038583065205323885252946402639541774177178814792068817864069114234267787700220271024669965198196212424569942725338142012910843859311399460421684243349261476523277986493998574886989043469098466355164205491954040246829809387890178759996328349886513322634296561420976057585257960497534104286474740167882657199421249839825013847252517469518576273494867993542168632879146238490846116582862901469180750777279515678721827147728217208289861079408686535296677709377742548495306047497241725245779096927259450021400516780437310791376652684612346590006878444063624314884223703007322121907396114311937998613089041139778842548575396440673746298320903878774429952994936903176260229245062739137267108548573128641705303417491030225145010390845907524824874597210506475045877033374795804472551892112931228245038567115167211903705096815657248623483093195986369771183907962448172076282916418466316443844807463679056039709210545058190539631940276339821439176052580398553652814918740846110973245511625783834155514250146294098329906074276044182177571760545135653595314410572214431646532557482626832561708315016538516749353280333103413265969696954267054072042074361313774004313159169174771807649507633336460816698686321613027415039244845183642289521374413172953197304958686338955707321740069775965975351877638792653225661726576115325643381692164726275219289247359445296775905299909425969477937624532311831790574455480594213425625722782905450102738752820093020454012792692413536250182458040772875510349957369959485575779597887697985396067734890142550514050968046775389707630173764050347013644072236453373625736092441942690330889057720526000141441745916690850619388763182770368819836081507284179429774867146623658403642324659092929487335747594108065598457564427976555361822928521199780557842233398424464833810584804298410374707829110182608253576559003225584830987917879729121991021402443585118188634397606600229304710280274176097368036124817199558181033814871205732145815364442794443889662937745771042199339237652728217229640755973285867855561868526070963181496677449120462592738841748707843909901572755863912826639217420649355369563323047852570027500701677125545557183487503109274192519569448446344453298248453622573891328817648919252287318756550950198632225667249348904589031297735024748451622453811641619516225133281058312384632917334061296187835376113754401641476007606683943573484051534581960502229077701346820364413563083363317612527573425320579987992766410882124839171319625185232199154466927077747848463201187052003753206662579129182306203418478685248664764703819478725348286986385985145155028464483971462092018850650585136922026695496568466485163214436571983168627450389576560855612764270029185200759809929356026219379157594853946140383692098815219606161623359108956663475810933226276842569968675924906615638959091665580055290243779651659477213506427692727354639622709417325721460089689146662223201385806159001569663069441492542390477703844758856492938516775128125308985732558164479500120569802917195472072350001379043636561225744854417363251748376044856497563926900495468882326246428240413162089836046363152277479044167078446932874365743341270726562344290771683007644661865967057436784075365780632771773968007346339018428040236909557375058036556703132225893991550190212423305318926776724091726219483733996281193496296744845547632107490115495676999065629366356672083256069502492602902399909294682415260866780649845806793970589863414066122105261791425383959040240517115358792271181423704264390043645829697715367670742431905676772327140708714223165891365365936976527974522788518777339097057623642645742128215276355007527242995285184859387259132712044807224961588281804068423663032813013850140052744495539647846246987573026085334836884671453403377814745611358072053212269065387569534619145700216782837342149356487861077092502797721762454004653383435148531121001926145395178736406955822783325243661719453385008955562236350376517069004330024425345184904059523165557151003848937406856931682051066344202246449168292611304849114246652733592419558356823157235387522195520837227404818950377381906653712863802051723198688452258326598039798922620214005944242477949991445081801210700960242379458297267002957022900592882717809069455913499317029715882184866800760751531988006203743681484337650841595722991696561868292743436833804008957964694529612446790599358929229708704440077560721471342698528968636928556440212436839325877424069850290730522050034717550969811205869410103756376054238296540824228159953240726218332769686091153419230377049846766610578098997984967889192471011428331886448757568758282462006529569512011413175460306017384243270258201516199013571246777307800750133818282518218309717077018679813257064087348618342425014921454363157013255911847406206347560253941704628039207434360007798468765058558973876456368738823793359532097794176427664126779009777749058358749096584598673162779470463087050878119474532446647818091731539012590824719292072951604027673444223020103796079131994115008076419002826751686749687199683194981350405045946788994436871185171840157264520032478437200608650203915476638035611419600672729178801581907126390187227268586942735257232324585495261933295120186459923098024316833102873406249321890290195077679561228245230949615152652951070862072546981961408962757403465233717650937851336569766795475003988520037442657105830832554213306174472699757391392465054218626737434694985512920735818744374283110841532737781738274161849894512016524417843463388966553624527908219639231352502888806915622313455346196452364145643226272785085277060811096652830882698900287840382041586526923365932403499494005709246016307381204108715293621233861020673568693637348656732065957569823594344320768367301633923774946621195695349786586850674536219663417020508745080529082580571541107877904952574662761490803619593331425007663754908450777147681570428633550075474251545389452409288993454572162017328482158595109834398851871575773303828597314817628394788267373880384352451968415557713158012769555654674110142266285573099089876256714709537180681340776196929614813432757130978186253676776532005557478711607212632420525954036272644703567772373860101272937486221738306224655876446727652095951782211998078042079445908319987600891314091106906242064073034973436391061042180408274278272768593644475726907194876938237347146797753250260097810652717345526514986580961387370852910422844453799991481355731364021943931316828160939272911962021553468576640672759154298310029346268609903712384801818406073857081034537059406559507274871991347631299425819840663714527711320419330957865118642488876096716370735819394210855138985303192945534470832958871110139656601262975949171986547917753952864623321871949765154916607393414190392743546021615589536022215735979731365650315059624186405143492248385720405490856924158061721516067881978541999901067909668395898178464113631124758534489120985760436522721128501046820234342400391403314877377561769354593346180745838278597685874695117362282819922653059212452952850605269694507084038028090899128143243519639390765911871260333094523681904199466533968776736770472955298991187561784036834565137540332716640501027570164262845252126125331274908317717959411397442272895224490943869940425272436093465008645611090317345588514424772804373548112081817165492382217546698819504481973717643576662694593036699597352193639770702442510355147215727792443711285668808404436076656306128158681483764220003054439582391194739815573395869782268502758404472636685972751117880504529538509891117489552470499070792739492686250165768383121844230173342818269889712183016592491283373601843438808897781630310373179659995265768796804069409502911240413064994172423682790467404504805477489169979346714324744089967461387678310193427734715626950246473186308165629065833252505803143119111590976400860287368196068118360621345906018271533431084179324492112876748128124200584243802874637000653645217015004245288542037513853139783437209312226301967415164391192667468266879661151994815762552411418857921993222342343985109765688494213203288924688438274583062292693228633706486418215408284256226723592981348609577679435785129168513626179198676225431339062849464018466687244399516035781261014697745441364052577413428004700626432530097473967993445210298390822536492023894533100789957961662487834712893540253789368594368322433741915572035268436883269735637757932415139530483064994995006558211446038614438955453821310398415570577384238592592160058722941618437661597604676682807806273723744636828155269298645568252601627450928586657814190383314053683671118421909006439865394604474556770760013911582840572517106514896639178779106294696717690831312457171950721077826576213397785982662320403018603632814695201416741708237429447093694208453250301298176941963879412263945807545255151355345912574350589184439292291123298276024912886416026754987411155443911101695441784894775496526811465020665172720205844448333724892410298324818699622014195511545336211625115793365340714223653382088633853181969912095247684625182909319469793018852432897932817482725051111255213096873976390964841614315329246258540991666187867699391796010880921327198871360456471609462972855391540942407104757864005665878712475127588639954595617538917051989361849520414294962887648147813726167361742520695328914977353444962870609371326562755874159742424902616743617316162292748997531591331506231485630127995292821269337078412809415777849858543280979239583164161057114801900712957330940066044882456896017743869960442412560996408270450805430792945990611549549365122737923444920131871626745791012140916717800656418924887335864023843913833360898655166068541702430182513320769059152513672166935315271742921019709520285819194355785027276001945093475232018320919051510368619124491896468479629832837004105360921132042908832211471472089700774549876236393477660496406285511412546269340189518664191202251849968427826988779815365923325717829172694240193367618151508870786139149520165873157769224243818788207580986225815739270380161094105052273672953807380286933078605943010232019349303821190147770702081472166421884163484548585817869013205836898437370852336124121749613047512412494073046868365163106351965781781039571712425373857874181548807915251048669162491837315868012942497193121214827079913385350756295549976913658731098851046142573281951602951679639072202250825488490548627579216532060440021571670976478849882906234863818128560784835855398611366392033684026106188381374174080573918100001042879589375991573724739701914018096269403501652267045258928125056881979025994163465591518858603714881188994979558431221011181955223289318351279432283964313024282348997526674638444101465336997204459463173519831027860807301001366189525900765550868801599088562432545431940321217018924740392389704852278075958310119979071561575371537721461544213739659547334596672891136099836390191475557544182321163402931983631221935447696606329484419972552434530351325550003100950964002372644409205704184409322332452813413174066707610307478107159729035601498038472684850209350787318194794421565794094004704588027470599653117358879339385047527698666115868908487311659153832904407843430095657362713237468735048090475567083688768684396583726215649926538631758641845552180884520683050179912687495368629785056929487168608690834011189937092473978201055713886428879432909421148304617698264935685707063293191949084420275480718544325300186418602887794317862358073707254981109097420931487257677422979980838142345560259053063959522509715292729058736306481164918044092826536606277712540837015521964171018957655266148861732118489475168182763949229642598982632519261632954476734776871750268507797678341843021790877573296328860498756514307053022938026279731126162533384395930172673343132926108750856642642843445896972338135699550043838250879118011577955203172606565123820142033673567773941524925068215908726620583246863396840308811008166123669326001043012019177877494891516150066860222980430051665952100736797359453340036913438100853779903158487933699883708479200179917198820045443809222261350142508542267089698326388076865326943761523977184560206014873890220741522326198859041898303772219395430570734394511710536677885562491583595873212633486426704284914966009267111700004015359089811892629491675688404170076050468754973327209329845777889345887425542598212384941815714764263188858515379577478718526849430415295686731621752096976881795464837514198369763673972762843295552756275395487987606509629519796266738132627820359284480807099194703307928867779422926530293291174704551062545080721264973942346185578655309317822337516618459390805379002303850768464922842025424972189474643845416894580176772070226261358521316486270700909414276169379690468546775826711935948532819268723999113175344801672426413250477539545628585708153970110927318281549946895920317378979761265437086135824210728977910895602512000567678098189064345729237615271387302730793482374737789414285602843313612840231964645628690137676975444064164414352122020914688200444112995236953555644721556380353713816706292079352048992916169762803504010930675242524165949081830336996004818302228497191786505667871517999168297843599645569646656752363585739213275344783737671112427985636495051364000831756451805181841666756933541620169089984653459888009745686165341472402582265485490581427681187224272251228249516374301635540394482967024362375295393885458432612826431455216895861943365093193307520271721391650097188437243728582766986751732277207999014273849889935217348837202923570769444479347250533881979864918447890597332418448096615114220447199975051680690594227868811825632790475125532410680369014369035206322444288872456394559782404313124145359491763105294833814033300841561810083685064672641220675350525637081304462221207565384795939762729391979543109455257901809538761231987092833463138951603819173059847699344075300435504515285065713053686194823168206748241985310375781938885605369262011811901557499465140066044356871113691865973512542680176727702843848918462517055855836327889367081343467160131686289548446400835856081768438512486785618688500903820350425807075555469827733747157530676239120417287105055632295162170139354116141271503213898885984463771414762406724652709682205278379206705097099062416538993123126963613154358224335445649175484302095056893371538007976839890239202681141864349708350423893451422479453696122615084390869562440750001062845188829718763122640314413291172618176633051787299175652855448197519563891002774656568710127443731623499482376748892658912607111931671818983145844122147760898451866462944539825381095519403988960782924490150739501746812653239253242714299676553796285550065483477078650517140585926043714141145025508309054318441038634182299722314875550120301394394334021790913743523920342564812532226021716805275331099607260810040227203004688903186282262134777628876455553024308180859814257138639555015879467757828512724572232194561991765781880511800774644243683850959434482046360905983514613063876975073636600088357442754243836523984856153741544960045384186848904052145743203835588039619341732732363941712313460309151856002475577868431645224799214060975102548783698793617236394882237170901085558657946252705174853528741605045263141129777033171539867402529114171550617460615295067479766058885173596392068461260654212362813637827658768073496075371621199927306890046810399371544131847808642508711420701606380241920151759551773168980637129353577245784756974969178906661430149282776042176803518164021667000170679919309243331055956944967322312762542765896439707089817630524476440720759139356079872078102571672194790333725955771747811158434092180018455950197230217856808117517904496996060489805479678015079564593475453666055592177735963253662697715722612072447694408637233687648235605336120414637749990198979276421893934087786547033557927713920174869219297498661929777238556434631864038016359755844307684906110625938180373025440186104355128784241729923136092844603207183846938492451088528088790198433178088947739579302175312796846298258120153598260801646642383167377029373596341293364994194332152819287605191647716604332785620356931403847018672837140358371447243316752182108224617823570205089533707389717419195588775200865619693894204329203837157585640658752645657354840276446808131526267230200908449931216630598200672830371434503419403497421121421749734240814847903922237908158341480673437091300652307054568781643198931870520040034926886821291391159123526572700503232590026414495987661486800570082012836846070365256819605219224951980230484908397116766543721880003461830181513650635092489086900985733957597294530479716942588354104827586070119115665721729276303384816965617401112293269956226044909255633207613945629844265160427127755263474820135582842966891965587737810396111899551579811774394467055150023041002432455244164413748337917647319149045756174136817993888739841753766381808539635036419383754826056826033309783039796192136938051517657107189660164455889459193455832094152947462726152266593186366959228574467788642089486530564396922450967353828842761870410771356973303718592762327542748444273942100202882364676931634610790076912611444983168900170360449089504835601031169771937247112776802610679675271913680899725582467822420685728973826806377271705800966503752664504463228412535084242238505930553755992688295392234825885943373205972007559459990632283435084770512128264739113082399490692160797128721199218437624568643507463019731482040829041815507424209240024934079966468406122910688933726420070683334594134732682959875207436617246490803216649679697913973033924119693821918605596278464798278145756356362077379728402185295421358264573773133427880935727618114365433638779828147849788586719444398608151034602381614956010475200123639935706388618209267334714510649114393995394695177995235612911114919317763372924976193232718380371610676999560101924284564690341609623015680058392379076582598985970432031102939333466239660150364153313006287870545962890400535030947550406582668536525877498796381141043717783670237721952838639774818254532032332049597962969152871094032768340504066065408805130416369428200878137283308819862235513448662302734007797598524548625866803990230907972062847293326272423380876230543990496575150253772878887965743719269102961166494760375375992278381923554802533002886347700977072277547846287769577914655810105750254473931008148394316707869664294552851382573866379284531088078017769441341533256815746257184794864729656507035748546915816760998232348925436890226309478343969726796266860317820408431924636119867661892747155155572034854343314416908938474971044219228829741451020879509097009920746623501880398118667302752611107899591944789987457136507881412781012976052132092090522889106963065323005911809671114318826387686166049347222982918318276018558651657341680870766283777278561871680509663133398166085072648317297008405832333501428088292096565781418660080116782614356478734582825626886235179090779602818245352910256658767685253479518283810656740263458611769188527623373244620266737569080255869733281882427387031371038907929493669720995619450571753680965179077070545414771182940169597932195448263963536668157929851770279848833606497641986490229618824709436733539445453591407302550201833998011077232882510363989491440014238593825118484437012601498776140407344877420183701895697458807865226261845525813325213088234900413866459808795818520192260413496998951108501136237985895296147205900611344100379594047339337063812762406019221526483521714907150231671537054684964817346302144036506523350762159429937904010942857892548755012980443220055231113309201486952911020765277704599426898208440126115822279040461887562112893951867101897732882718578965163830713226848911246673183108743300288167213136795909580739779784067120366045241005570199297599972649239021078382519629006869237211270778184513933071820995094581812071087923426295422279192516193740851809007578555006426442665046639310616213783521173674398142449616726857441545204518757873056694083333995420473308994509582117672119174269757036740039305950096448788493115755629999504636677274602064084492764314034200420532302252394680908399511050020108481016774713581408598663435236881261203075573866942877954291989070396344311329110164745875671926523691202210749363167952068640397598377814013283546293026220921677730635653290924539273442547569814338120582279172899757538071177025236570908923603807628973778590914119355888266918373463756872528525778206675082077059540122604392596986009854438433695448131509125290842574569050583253416281146825812547986550100697914315036166436986969415633025149618316481395623535043658570065595198240158937681413856446994256134805957068493105590546764934610856921200675455989494601837091030906247988765017037316540509071771958733697707677512369295664880900300130549011503247124829398374165134535237046730528853355768013573156744678473840250175827820575623804920757152144273087567407638836423048994637189859460877735953692692626161734093373182176867261668432390830980487116146027994094291948251562898425718909461399035352164575153397922121971368115110564810453817723310813079807664180872234501708705903592355810232647588188140594391427367765185451197382474766373655716157559468128903894920242393452753377669434058250233845468745439818283250642516347908597993783524125872406376997156978887167024849875082877623570472511141406539956580972646605354069886645737742058353795058371894368108299023716061637699982329538829739407660184609145412390366398618582379717477135751282713917545030343411923762307221813580405363418618572485144384712800649455091952433205556555925634822228375795882050746418065736695295732586507886852476231737358278613098979964578930698215040674560901337680619794531935959780499832137675711960519019365895337471278363980554257196339926157867494072711489748221928431388612968206869895392550857789303049203253194730456900523931288807606689820003445431682613213335550355718734410553583209064431004200201190048183296962424554225074108996365514933143816982569781378326405336357483516925651817954550422553012752566086421752919561020677297361661648353910608656110883687610177125438107782317243309894657325369413646234390881430238619626760836486067934104599197333996813422407383456011898687047674170525054981872905546283125366893670296833644079948092090084452045781936210973627375947520502758615216411839075629235827297373331384153230957717558595957911519364573549473249661047124118835123377029223553907010729566895580632544069748837364121787137288532995877093855692251776360487871430421201054721239108422714164589876549476386810899180461741006441943795178159061354901248338667798029557467400112526593993318922052312137133301450372953878154459273814096952857930480321571852738940206758119255090981246071287669148914876223563116893176329367953238416622214968002308302646244977782646239699939145908783163142493460636192118316072919000676494379266708306449415762318894116780555789346342683935670388213232246464940005736971730046480270154024787944897826949969709493514879988985024005071730941840631711344371087010700780627057981453581008479221864207804964938005948333916174937935635586688088985528924490574642994749375388743547890398246512154935241634079604068489901560065641159788067464253868390425594353819466783077617513375113213448996218993653970800993467845651359374821240968258841236211675797524270916732822510371066696050541907349298891122367675073910037390720027465241059241859225704782448927937223983903242129565902225439508040941844246548645351242787742647654324282829506733037613355077731507391714823288305636667595270088140404239694793262825116628242908808504831623029860067718081788219592357812123347444253612966530642287713672968384180357230237207827962589337855362385545168360569268849661796254482551634309690822438835981891992671544141035397454844474187902194345080597520398293496229942135655658951466641072732677691531353026555430883902843653825198211393944969450008931660013492227981022259284532967123262427900454041810008723531035114726397151045966343232782873579883241824657493717181960554409864691633781939706283094986109409020079746461560994264874394791677894565739690379208188033351043506018565671040980542879058247384919756554428633017702663366862653945632468996529165381930078515928980441699189903410841051714625877498234201024549640508312203177591844486046849575866664371867144135977397950345183648312387804674527385342435801498120388712817714581625000507706153405768632932404394953088435720189921526610712032239130637855081283980627091071649745094218821117187026544146156780027907539070565901723432325206401177164914165190093421130228795167525510448082044051541326779341614785886920499775096360117016429080339504249706169089452289606449589428923039097606260928712667082043733017132304060902406970301880132835909486106548871012272663082345179953175335694871764321292786154497641045803190977590679613402966501672858808728954139790044327905615653016911042868611213380967631120865138547989350635272161838625584415634959892114137340167545139514651541495768997491363625489652703907351869430687357102231262010634518311661493403190988718799952370989687920276712765225604052066627007976471622738603777479136711557945136218948868703911595481570047443036905619662405210722382187086624651820953768520254892244990916384864106063685674264668379389179066144640458795595252599891368585088950808596390743717001352403673435926858082529449752091682992800841263979053056590399590265377486047142821985835894000912555562765835104741632670754944414266013234007282118670170007456675141814084932742548437952451426486970957432305816295453530520055905599307719047340861699436584158584472789409327432964336371557773353768445026687349652640169170381349881248620633534993346876119042768817278039344808883025046145867381649916485851774980935641804175524053230020226046516139374410399462290649102247983675180239535867836588355260118267817900756052631581327345404337080098514966150251695463123962112084539014732815806237028907798374917237548239191566440566448988998810453281485929804199799690125653419796212304577820797628722035334630262567062226916320519840066627500912992502827360650608591620325647304210751606948353708415183244621062359336218281281252886493447797122137743853720195964283531292866020817729228909210215718828822312475106993718209446237028395259349204372670900376210016914078410397147543671609900539226747107828018272721698919132746306342366179339108293996298726134777814671879817184302688482551799520799555791585745843413562487883056626954358495338967497574795033300377743503394504687338200436487227399494629949175971152565083105712639812287320761902510616352060453375567458479857808866744069309663411992348447567215656866119730170323523820480994064102064659597041794280727664035894846929016941350011426400454586041393780528822237829554761395093427898064223403091287886119238644996917587805196576086279104642429974564682868298133002037027534472447832106328384486374889658723295044925246186689937698069953938220610391585409367058756612514689027103836489336482175757495033668329854619991449703664866079715407092168284634704263029227525070276387885696215008681521311429712035640616152272352785736106913789933838960346383009587317328737915492451991718683976064065786653546998626003774719191884682388140073984889898852729324805414766236823144634342443547333591452829034906661660997078623203516461826688127986107018684068193856814943432864184133029228465075231566534235568029888537108445014320353443192162189447510827732613564085786236603228317882258981763955664409632872831900728909259028187264862000192629077378042063560063247760552603438493448424753877959845886610390599514692011868257738157167362835584124652908545514281672761983894623885607414479293672001155719400826701828074700136660778059960080247949629610960048646697035521745602541643335501848736473226908572074736318076476929730865833200099671222052303664832712524752315014219512175501462741893131129648919238955453143712324525375376522629710552051085738620688162718172355030893312470858059560815740535244184459939398897057633611054874281282187619497286267035461010578751901389504302509384293508469130161417120114344944966631000671237616230465291994600885518699327287064055672503346671423695629468574504348959608001006466027949576627226767308195166140103220573348104701405786256358624535913567519835183724883575258609554146840175485884227422123630776908033444816460033818889253052872034302898581508255302461444400327084717517041502252429107636634521485089762237139774747835084463363666242254177672401084110629335223230056505893139814515793027515838648091727664224827985471869347194335509772227390060333346997977295701019596868443664580654759606035210646790023178966789878082895552399853326112096798795694759132998922174274740557959273000439294291752872785070630412120595023403361584321896489508552846569159780860690561068086540627064295889522371920380912770170173638619734981452579222168968032672015823614020514557424942817588009975246801616195575042887610703386037905189379843577658605140273633277318337059094036336410110882587437157248744961713124065132146849288197336256108453945197565582906618501513157620065035376377260678558737998641327531334224164694564978495010871159024803428728286747701467083333203022319354051146031921059578689820973585139976157667653264755570272435492079796251539435338368031842850759353232312310669402191113424067623058631426539612690334018314915595160769163888818218868766987145709865418807536645039537698010277494752274463275622886515698614989145433991435579540067828860685108993770827711299244860977648378584810355846541840077886441892979602887898353075952270907000844062027881007869043412337573028381553728203751571319180086856077396161126185364853815126388022959174385925387880089597042270914017775576132119551423310371397693738854914477582959834781343974137908509078812491648351968298496158418717496122716912273377599231061487701983261974648537667161905036782140804162522739016725827505609140245638394206049066498015070380230528187320773842203410527193755211853339422737322015148232593449586281861460641394457843650891532794224537252161883036424041994252230660505578831751738726679645261768426219399270205431925741777304157362392788277119291947240254800708900460393899429797206140727147419453357042154524373630124619329343259287005337454482137259521976054267632437978481652472544697515362217388044027792785474218767987662780406174080162616025421281945678546858444735929937854251471527436722485767649721200475989424517162009163467201780265853476928073525264675635649123363133090214846670977912860903900832574184994077026885687294361211243832445536624561687914608346444600334872463933142389095759004522018460857944665713977212603498120194062716367594322858064536379837519491430104464893020868605086939527391265406546847137086552021424197220367690656619395142162875528800293965845356145148431317286137153511161183266374634976292689454118242341193628871596803134464044359830034669665198256727190672878002732143557031780428664474516346043170338926760978894597558164508175152362201703118729219652018694287823613286251776981587984532599066802969481570897196381439488598065231650289348104469377475879598244091944102681957510710455729087909484391446254394053809954144095167366249483869305658974894832526873533682508457046845939156022471573077192818584143517238777544521965926930495439968138242308035475255948087036668542034698854741162071278393800170832762663840774320902791721390443149641759103942691888610741690444492582680235873556231935165903211226670473083030108419922461818511807026788108374413471219824656676094888160271344072498282140663375573787090781550958073407173806028518511840062870652526255494888235441629322336234022420454494512760212362510437353475302677304589188419291146571614859100890437175945260121677867395040797623960523325930295442106092357558673258611499239384269334518554775321008936279917132817085430988415721947865328316465841633869520691240723954005885782585764550696086346019085582802024226805702004416956116303430353887104708228398917185558114380424831203320486400312573969335572761803633236672977410982782111059771928691510122181698015807307093657534930417178582197498437352001533174055182840384261516465231963201132538463037581399562213223350702598475192004179742088226562929037849076011338140053077119569800691566266983973259338829100056009303201745448980158065334503488344394059825749706502506586229359636689807993830242151031207268742567975405048875925373155603687793343705510945171671539654456488835548069262408020864775772918318289578735208314463359461843118824085072346824784382235272745501864220180747563083041764562230169206415691576288133468877810095823382689269904024508948775116594493465262018147438698943796238660376757601441439252503120370203155983228727893962482099066052136640817134045242293074698686223055460328643440241035875142351518929705771031235217801907100122910296902081849396585742838637265755487880263418892763122821337512325698737095430658543423539385518985732966253665133413903199695809495208455672941831146858034992355813550101180149055478849844673486042176883660944580592281309253596488585402434917752915320659996784245709624542911094703637825612882092268436481233080482595537339108011157580060823719021309954690347833574188355765420614961485700672629161797191731658833532727652093873295820926988970106052191047911461764111358265745907197743459277347408657055775564279754289307322824354806798713094820347507295705977715530685167849090903200550013300273372570507952042212730848975144023634384397684469505736901407240619768020480807907006217059192960506572490695355498612155204285703294103747664573550160310004530253159754400552111027730620105419332156088528075963065286623616518426426939719772151135102820772559349541564544626359954196659043865509454710685077715680355549429989603010980500831797451432038316388217764477979311359012868434309687311120014483889478002097124652818495699223920731721060835283273926808129737041362311178245367120427917615753097767045303860542627683347979100005000328471675536567290683199656553123224887378619212162029271373298268966252801517202531384796196273651798184088951165123424603268157273558018066856890841461885886392468469591462484222010477178722101465186851557053997588556837730790290501417572472884631716472898138359408371683840223160294362786699503282255486720454984120473506037146604124122897009910368527378491686084250341497027576936353871403875778946515381296249074818579838509969442989588976814912706393380922539578960011591699657285694587057971123036059811750792320931046747093775579376233979732542752395008193280329079644109946631228163866060870092687117324833772948264885596035400800060989795784542483086298019207333415462569065620477619952447619461641844886541311776491660375563551162551126322827342696212510148227439933228619932095546238705975731244429086899582914970737354736666870402464165343361603427161105483751217288799787549848357595628776454991478849816181328585369162330511396109895665045341317335053365737523120983788477066463386562552081964501919349219883571027778127917600795077703079060980526613771833891744576572605706848267464081794598229260752669774047214452603368185516342072702606289810140246190380019133340083461672453346642695384991718490677730497806287881426035033005451448419479082434713384581672178430750512863237704128546383586833653738311943605127702841390935261634583109607973596336167880692875647584833708053662067795917969398696663750931599759628877437272135478700617128014101614213460507621996048608398618469237522866815011539551105427239402186419279842397187753683685578571183395888352426706209596624366846699680684800355793676560556412483618620436415188134508193992481313229358473488364167037460977532748949997799963329887615232585495794502281373538570620981878434686957695183094686096474109035745139394158761844228001605424533024077557690517806525248384417606214996356895258601318417060079584064377718083154207822517342173985853931327418470105720658153804669309494700219887185063724782861047602304584641551680390369735676888861655982053832431282434916905158857284844648443526215897027568179550991817711093412175167264166235487272914924718041600082910057216663167481679585735065902152235227700737092809642142264506520945694577609885306697451486596088679549576433534815861574584365626884880068258908870731097892621413483179481276090317945397634711783139227658154450475727276534251078950310195824136585201307501421661429733676038801876525340321580108609286630086545131715898449985159093254282023872276809475976505002384713009967455593501935174712253442841042400778974854768476109615823630749093135009096717104283056760918677409018990411153452379538129127579800121752826769472347000966542673376800303630638705186432475729552105500516542646850906891687963269025304864624570876233715321671947565848485972646590414664651697354440216581689181646540352202983811224583357604411723996123934957567810144954586574070313360310312499346173844952267510668383651427107269646141444726523873949422034051762262749940340604236365227910086421088628906789047612299435009596518991923832739263671867335071741787047990144184277301268194661543800864442576115805856550535710451717491475892836544336186951465740599856370060375039459617212970347493700552316275253826839515341875735466825867522698507887275551751731031897820247234278705057696385240104186487726976481686517295933687942663700262383829969249094390958217118695122008682450970882538316448945229733587477354177458205115574772354241104040832510120707036141699220332534090796863902626210424054134577993718651153614567526152733468146745750209127872945719143985803357208373307320715459438965656815222271709643376938913469272929394547024868151405995721473998330170441350096778806537505609895700073277594335781508588510206172062095028943762642973418668948355112599623983649928057198697547408639782195829717164209116615873951211207414251324892389285499920887852625063786404088747567359456427286644882265480878398373043448862125505186183214555343395330824739893443238146548195299230829776939803684086938035551154067268474719130776342721063956914422667969014685663944545660809815272136783033164091636169498302047756439337901589713641746979268874847605543037377408313886859711507976610138965945145520547244545336528572921402408066144670378329694162906050851185241224997722320964884822309415401613530716038274111948460048539673975269993540003766253517431269181376034313108916446223332981752745577050978888985996449839368398250994795410978727924762228687612611264641785057222048024703511224757700122919417279901457206517913922695308344693483147884680297856106443916069555875651579797236497547645515719351989852207687324042635110440840860505179019017530799578757324349239666621969304882862386990440927361511165494820091346710181556653635778978525831928808468362468154550526016605376609895027532343948331626730670254912683072788927798244484447429105193771402364737964105532172598467285659705236597802773691763816477748106075789221173641524438728159822049481028386675532632979973843122245782756814767031826299974860712998918334526476537044453333355264371845487295146048071567850415990701239076980704827582817798769839145355571535805057457369389014601838227447702913919801374245282650618359313761891912144764214433235232845136796760710267452860806647340247130948013901264526808824354974192129552738025853484988141928681870809324582086017683863052643758290257690611345483609301946480898713252421947590111585148231913101204487952597550928863556419685151890539736861923325967645099647418485151196714186258419564686579570901643928686474685585489441453798754542535303428432001941845491424616632913048299915358491058182426853162616472694527640709109405905410162387238882063862594146657980443091086179286589630175578073128505757375175899203160634004005883783683058923847448925769478697304105939833596352707726857241550642864531231177055799148421576593421896175495527189421903073438733228579139936351561638257086010517172322246017424855005193410109391953335287163266662978959656241892165560142330636234908333517562780110502651907428360893193263482674443699632159153725925119200901966297841183268111542781215142745513152997080079695813000445930501706406463340078317734771923269516541539770188612382498306131771619487382713447925722702098773235807752474022484217002096877206823433692330730932881504583392432011190370361575868570767204225609266667517286905281085021528623457067380773345785962485183979035195394161852575643608955479327319912980230269724988662014616048488339381989885481572972935207197381377645222439285364180347936194969484205566888567854834641505710262016687222062157358872964212796583597102682547899441556910619255708141503249345763994130344950457580634071068512500272431434924014103901014521327140255305802661957162005718931042057033771786864063200622765478296334735389613113076923041777043210272535223691165178585241473835994519036231976261791223244352476416248339700955532959668610013611733455081530807576515361019452441440956421007738193173991686649609430687009644844404773835499140649994788972521598898941425134974830478962668992551330106937984495452923824061203786719938142073966069203067520952233850027210258876424090448538919624333372635731165000627941182351274106262203755269316394389945371470561671105107504731628147423123953970994994052188780031909118759299018607957705283519638926724670451132827100416103603773854233506926628200361693141378330025936705264305885353124946466927357319894569821233697146154004683417924422654128411911485159451719494713921237925380106400763388567527178174667420998757105498291279261230130865722274500997338986481322205154027583021927996636226180916927164759461341842691593412869895639128889636085450579781671412098550916606631427219793495552580283884954307336903559367079811429652395928446110927782969184156000329281800286452233158448522248853300625039537035363451616095183333790530670378452618823039893697809429821484051843886292722109020497282908232073828792019052440215880942880556537230055781838297905241214704409607035190914663197819090525381615830977000277451840066786680777737089268622852253715952962623095410908489796717565420457946863965252053400634454158673553045614341180350020180651100539098368769306346892920669910663678306114911058211209381260522691069120678311027950564417940545190438535138719609097926365324923243388157229023204801918049387561321122858944601556438536465997767752161535907443512288851690383268099590628564007294591920874095203248929492784374818052832729579286657023147189858791770136181777500052134290421850506522831623288097486086851354393065805303825253262908716758811262436730818620379336267711100529743591746393647258515374738013821121685632507971786192955849540124828950657859518967669647336927390668723584997455307681961468023261590019030569437708420675048797246127596845859014461349249320400221706829640584536565363563111075077306937729280102645349816334277082978951767716645019614348491453244503408360149705652580560767408881916004367165035942409613220356454555219611097931512982206341086577618446451341211662547092676977149565842410785224136013666187223804081306276401886876133702083001739000535017009791580699817848457810871407471955666921979248641516824872909498093742938049262917464018072055213568327973844879739484130636841559745367705246736784371803897873257084150934630167848490978979875125331206966346886512472063290793412116378478842464828357022427359317121801082417103477421108180473459937978580370183718763143822668075439360733081631201199617137063414006888643025081900503582010005479488309984997399908000102840319434463681129035330675004600513828332794685067785433049404427390527443731706640073842852942466913882680547719821941315582212867052712438142481673785489361510146284628660403604266905165040650720499940037583920833659832682652141756293314542334207997180284785680391583563429250483890316744479586883284264522882897710669770472228040974159366093526620319744111357941728376517147772795749218471173605601476263355791455578052073105043055405726710550028862685269053314000039229026534328028205824976490935814314589780101507057801575610614411988148244705971453034198551322178929711727003845001267444097147417234713908268245646986164366072133601113500802453103578735059206054976741051224265237219205322220459760341586979750615935641234277087471243295912207665748650848745464876326331549566539062296818442275335179276516086533596022812731012648261416713875731910055063858513172107249527224911791712091683405504359034504370146276287482150312620240627245516549419220679968825320480753185394673484143263481654666078329724684060751556764959332574821696928187879315353352017723239624580656063348396588016124582417802913689827600956764709844240563077454066537489265368030891888798347796874292868352082866018022329332602128697180903183080064063379057691301443021747231204585551765014302801724646005801510253670817992088498345634091809574258861011868348237610302713222716166139499672122466667106419088399254365874111389266304133310091033142805760014715753931961852623531351977685141201939789224080764001611192072608697161618349770606805682870335602440945579546468114949719957981185997787790908383386828080969174911577090768088129021856032622519081106266326262936907513562270017923814688778207369563183607259149830034302937131725129935729014369914251710204283481437534845932967120183548797550386798183296517121906547595683810686491970738146554929113230299950789823433046230611337910765344402925302677003553459123545102020248270062088178851959065044189291127027392861813437296983157340146284851998999214353409967857702895648812243589218634850046218600794774060947125641853094216475444102206089538050481298635217626386120652146210963596349897243296216240349135133728003704841866426088641076308463210782289814244759539931411700941603953679595887700173089083722404995227707142906979079358303023217430041873218053629735086379970069770837146089012988346271529641504207733457477902353304148014431513966214238753769887350099709522830126982885675685049671604261920386978712699594816529997111086524109765469058186938448145393268371645746375859262752537072126257659526542229551801835693299772928498592778589097277984143664928736142497943592177412109265212783553786114983392465963903444424733276071339541290343344316113482883121783275783253013720748649539657182273173723667181551452827287889037313431884054819924210069805856081198549384748310994788836784363205030694169158729589090888646058394204871484090763597621473901633973637294919328776907497553300167458577327094981144021928630111001536767080325540774104760289398211770673437879724820366259360585346191627572233647873453920364535398108057142259587871181546671608787082196738984278296781455555954738694983587543179088886980397951654565495214905732166603203839588791855387266956054285090335675866756863979530161408140615737676248538826697623396521150760112926732042998572256460512561338716900222968984775979461261442712089175479151296161773780797640032495299211892183565138331266613098115756125191768980522005295178988848128080567255245775278943757847556066641677573996604574322882251793847330555152206508004603295286187923797387884436748909969696880928318032817209004147148907031402426091080423052169720881711134672994794040119735465371846676943409076213285602924768073955670251420176615957984034600025080509622717696189953198207705856726027796030682663635682115647190603838894826659442299203580972065067733708031581914589890066820874926641639593995806611318780698781997756423450043789737706556404510135425525141958198182326694235454992113034456973724652411750280855014309252850866288553883553767332751695164545640539773257618345932125547533146953006117974881716737592758754322338565313996809579400506963921354954303624287077391847626506129779890644144625952924200128592203371211560095567073635122394489447210066114837950017005230918051746568274178462446290523253860654862887618864216724503519669611372017288748348162313414491611643504644859439331733565077620506427354056722114548744994201375785945208627793594884845333747568083003636722002118558715286743345850964043415911388934091182132085975192607511159839929986450204290492826258304552550939036857071962794647595406914728990888027622607719463363886912908836322505275049156493196232684805630310777555717199299248084862979578598630474475194177724376160308422263811038136646249124065436720201427117861587548320713742699639115207239635489846109519431091952448663057287518406755876519468966782222844031183503838545107999979044368644308588240952411498802742745137084243183904923531677873813951701061234115529555391084793153829226174136135875627817931289634659740623989717743149413010983494591364750429894245248401216802455221542883498127798050122373993927221702552548550153021970013383338773682917087251080815318562008882386818334808925121923820545728863546486035663229182064942067733662295464854421699612380738064590935686870347258421879565842652307172667158631209601706792526926745635696556526423925804463234851916210135449440678429247894137115294153142703174626661639558252948280394293397299836199824327804473678046767733562096819462409807398178756212238436064080891631166796004654342123505464008067628512231681101280201713549102320747092713794507561773695311270074398134338595574296530796456224285671624337230569609562904614919235994634814395004366756492093373720350610084813793741343845244975561892011449987158987887922976669133022851386843434664563575998159526933117786945608032062157432297927965140201329109909033614272131703377452773845347618067684632493644655699039861020618227862109311158003268324291247145683225375252963245790952252048785024153356463029051860717741483769356587175649403962411235471559044842121172544196829099940913049550903919631457662562079870885727649982231201655808951954435830466675392589029623109234706977980944540818862922508188024766802268531405047918162037344013191068309684189831707836980487018546614287272062438854159741177997389766119142970566882862712793699743025337830709534825605940247519900768646988138349262758407428781514774991146955385337403876184472800897723953665069366983761540740932468593805709706148679791837481766504930268082005862525967540653555367864193898448825800192202398982219039399689134253591557162382064076915917109334322212758038980457481361442700636583439326981599400671428941403423910285027442692885907695899892128294958109648142427460406233350955347635751531377518346180212238022362463964595757630388718745543807089327291544999192613794977084186739755426822717628618342418785636771334624540434951607370511096575491198120481957474041299968296249581102923031575824620265236074682118750098305262774967613939105106924106005679831125779594929360051415771533175576704841739233508882371266979514815171190859409403558100814498352269530310643831696960205299259826653660339117520500216299092493641853434924070597304242929429672984780693059511269319249933704349731275381282629049890509468512934770822590585447223227967994606041435403054448504733652007257931388222364317350609474724930665439371258818531037875354824189994245961735281128289773242062412359146148222593985567143427431528503034939958311610372234149972371851070446980043538243879201776643634367052212405261053771168213887570637914921297336839333055098465424513862672083576365642906916280145729535411783355353913187050013460562730027671278271301290690523467822202650383849641378946485430703098802252237007178613309675395586042374822718133366658314730800588615900179725697188508267160227093187905706651886134006283626044694604085011647180380479106098348597170846641448353227802096834320506010717666403793310541832979924262524446616141292557193006543948493655502863860736054644470107578385320714526853902779090011089555594238029284863638318656306272013042602576849957318002572055845047019860339303442997521377149489607673311817413067923727730624224256249698548835420373809187377242602633642393041631793152331691223048527481782890839951406874112086099902938186860257462127521671525963739589181841289231380323385849407433451282895675177379597182811756080526532807983779747088348408660091351242529838977520006745067366641346682013580217977623858954194634348000723716214913803986890839434872415758487242123194332415899903885720867063219839362678896917823292909738016449885901668215039699973023959665612213344145967396017417725329405188098632969353087686001298039912144350514160487980277029346906504416591828353232077680318124327706231697280272517324544332511952207240837862563271230564907982160211819683274775508392601159337150238857238359790916021126247954902050957113467263911711285444723764702212461341982078783976985916863444548484779986153143864495586712569965977122316931891277905526942830933610569721171542221292009874996847819684287987999311879386000487830678361120373840538377047167245614937561028472747747023323830082795781929465883700013324933466453772472294987516737640595455607548409642443707156974709811095916184396920947631841583270513886391057713715078833197705885434400154007269455062448244450049000189037228026626223644538190281827462160393503327254883160327805555783849532632916107204154753612961555428177031141287017567052437455946405672839387220619308761139096664083839180407280786025160679651466194889309377495071993123536326075590107006669524552455287671670678215999134475443542072754807885292722798676118993604479668214620520841007374335310872017992286985102490649321338111050212753199226289530758753079521474727827262334688034486348373684635519072837046407178934640313708533236180638811138107772159960935230121148303087302525242670361378181960756497025077819814867236263634441614706822833974485033719929250322312196376188743575746966996345424788295358298597321082132377144578296842301580015208831287463737454208099885673067830047126942997686253962914946780542006973456534934863171242138707344609134171440244980564481599082435517058654279196393487268993872432077673289519193423115348274990947809244671956583529053015886972758839464415634717683604323619148974250417105247261667435562905548537243536524300554008832442239979313592958840996342605914895779004356987932620972065983508672912711921124001683099919073899607570454558890856081207231470280214016535215594161429930937848700860151017880867634584727385665646284848561688372693221903398506585026910727447283337219829172472846891283469213415537381478057338759327360789314181612932988241655829209029009347540215427592979694114221444843124127998801531030431021657153503767941609894624396889687615807096669002429349609903891121483252948857816167357914889659885409493689093579693104794731769619733120358829711194543191532772805727572456400694485917948820366277452931806942927639240855059471000418934235283042018064187039802379371003013117197965839212457635507449665493281150884350367508043945544454496592101194471725425365242762738299470293477500296002899380282870396015399188923897126621291345242206927297343283552924514025465424790498454546341542082600690084050243877674343667161113165704792222973089779735425365717284205193918229092496652741425923945946662646372705869792637790350640591163361320851283230654009934837161199639802838219513655747477500924880601564668326803644313972284980667110253870068506064461346212696220624852458881846143736994181191925817321864170185340082112877845413211600391274800014586366208931988868689809704272839848045102337297701406929508277004520965297101870769959847784959545371386385782154289736778572884488716534113318743679938707024524937562329800812510841582665711858489667964798042252834984714292460541552285401039824594586823010917985962268542924675339606219554405250074641820501992959217738816501990259367846415549339789271412434980854640823538640475295965038226477186044199047662936378552258246123038267111716917815859807995904173952160216429625276738668905050659268371586354436433766716404643654465724188198585534744782296504819459932043700627978063106555187101146975316183512809679651010579216988294208995396155228006768445683202936873112247773941461753221733133954118823269484441564300019854295358891978541521176511495182379494597092159997483837642018217504387149813860468608205036591665692726779434334390199828229381672367134040877111862595030192252250823621403384945498782737497206049615982735460410432139658984238129971321197999448449261231186899703083359942190563974190309315275280373404689304572242194411907199164518988311242684680931633544798284404400927398308586125425416695047084466831221381926542188024965631283410334218204016446802887725062217669500537706009400669438804810023211175385524971908781996305744574286396248593493523567737948453790747134252980118499161047068207143798400195102855229782934864957794749154704477102486999800221074873600427158134961432542368421616436021355277506255771748588874289740352841759216797389942260582930780361310618948982618538572221251172451419675948660342510088789656315704601487763721867173563517837504786165119078597526728472121950586829611977663056374327869770135491276915176520164692057292519337460180699908979857193295379567650866305646755460020032768118167184908724839367584402387208855416784693972151536598555211496665654572840889420143220321848541068066357092944725106994505282808947409172652433730497964951443311990576655549603713777531122470214495668758969841985936909765275466969382270361437319780535700551384830193135738476968597613544947194236618280048806671432769262084022280262199599140251904695069998757600367538896698718573442410696347266219376978126425269769663342498029244925095795685044078244696625878449855992307994362330852729111237035260998089205743577813388199008431705727322256120907469742477123268361422359683660815075212800071521138751751234119624315383752385218629590898173606581354031474721081068885870162897563380992657556593343161502685963461356610931743263920679689648872761704436902501875012012193759844111541125594736022227955461164723484334926179993935877273727517500870998123565291068239972980161449838273706237784899746478024805620444078311670238684177489594551461554224480373063729190388955125509512749164415914882198535880199175582892932701314609890002637651018381648472498583581320911634053094218785266388755168427193690304251337356241200524689260629760020334129276382620027313856614288895565115414547604825322420571147159651666392143036597578317733053579764563039907589629291878058526269108491056255563694586291303693914653144017802948822330095494726062740509288381464186290836622045228335714464252832686774632154642731822006988619089332191766137328790691693244215291585032287758728431301541623341545865827960964606276749769899017088023916967127166191735971269901680916887158670492163666910040203051780570927796324176701901022232843948249531180530681054355600711959060899842862461685502209221645053980775482143673211026430367569370563743350583914599384234157876781323294392256992847597882219736096644794314454175852310679698752062066522644374424554921357971402525416296880609232776325361041389261544048942086035117680339285251627926929786821419563466275904333871152232540047612054040452714673817580479374123902908365782624976655432539575098275658677991056202246486069040052593021225367292743215098266061553420616771380047999876899667313100688846176699819278302506769122929632934607630170523663726002768788214279440360948629274589265608811727471444267916905500116559223151017924386484443820628995302198821173646181548015314032381457466307702390929070674503265221392424673000484887824167968506634908027408463433438547078769836645699708619598964078915695770441124262438148219322038604594670802963443892401701605863374104754476526433012275025508041542925090918456843201566278658100099696703764164648846904452016039355985119216942577278742010940325827225652462349031981708242277929257887169462721025359028373714423612516284411433469040146780159155689276598114062238498355331543444225349389337004112282462687282565317313682326824623976480911849201540212780461245004913724178077537064197114597305343638561977136888705356270748495262569970852073550715905204341846259427963346286973235155501994291282652276676446399991472180842367441741432066632217235844832530751011678844450006515373712727223720954522562700436510038604006410811301435847238540750074696762406903123109244007074622442971044440778188698714114366967056547747873365033347824396032411658984158895850254500716466793762753410255886548119889844547099278757127394126106533194178658991868753574168822776496713868494157619993366135395530306044295857846397401465936103479517039474231234353518286133841013014697388172584637981237884173879779792524765108285046300294544794734916750992382568933951712861485752624758679943375903834483074929018222427668339636993746036805257871844428272051704847108425512600050285712255808222666206564290507631707079148277858782510492360467198507882039394189690472602006740327257464017909509270717819435783368802641657037057592875238228403149436087621483798612073266279038806660025944783204477063054263595174977901664081154159862102282038888438760482321149220817240422186050803016119883999644783849496192025497258760975939738380575302521471815595438932942731880770583132767792813035985229271335237964296124975499339860492325589992835966038208777254274567436832153650246298467029078862276139013379685594497580689393420277571204556000196809198074384383294916888758676782210922557348133295283589088794539598493823731595728795202753087762878187641812976381451666580438481298688688893090333494273891263035236780824946247337516738009409847623994797547628240940114899706408374962133224806535728514321415078233750075320565122658884939160541812941200181907413358436093224504816293037454328200028094873067088151414109634256529490180460229370683651607553232881669296124547257699585300927939432885752750158480359880560687053250744268259554924755387053374327466942122614186652829752649100831274249775513667481260231387441106281104715219977734577788224504265504607679661409039941395709216982058276072748420059692497846694348118159664924476069874918897893585503447892248922743313517970213940463577519255907226033358923528865770448375390727940688455936129681720151231649527070450926585624323734294453789578545015659413371716542606425518450226078819360879937546082744820177964316262355606859267967910166018370870641451631866635276581262359972356939957711404795921782244724781562283114495668458377262054416576070157728638201637549191758633133968453203872832063161276338065965675556787648124481066656370263990341234750125286312223490443680126813299581492249358413765148819154858855553158938550588311056735618732321268007142684273178237434575491948502785177143349112152616366557555611983677978979531874906727020514814885228438972109139763416007974982434834663736151611310595001543039102418492726375398385169972362564739343864731722500712602001950397688330153144227804706276211119954642004572771547596192502278459784331668248490163357394219186565086934462542364528323723457171229955276435720165053630457212692605961947073930381948131774437415895543643423123530403480692991767669355066430788834586952128301312826475436961746684340828346811022088055768092657355549937509309820279284712967676769235113115549679971410898880318046182620655942038868036074607829248167543626314759973273271190865907468456938676281721687617081878511284948343572334750449586866919541910570174841060595973378526601377438533633942174314675722730357450855830287658581040132880985365034618106410080072426221071548536294751310790434051519876172131709573577492861439676020556419746636515602047442937080038313745047000030131328434011759303948468612203635554173388231533319757783544417962273599247979777407413533463208123522812879724010084156409379527749044862752925901471537856974366436184095335275331136176655891038802069228726202465913950474363305625945236509873540994708272402940377300205272932700270427919105215942075255111844040741044490304560431938607539498793469215449383530451914255544005890001911128550691424680497691514282458381649986094103731998659337415191403180317783489732392045831630411588887536749347689270966605329361840293452662986804876118372687080796707098094674467449149592787660109353653082274604069221937327793312201025366512873748830169309526478079074580150338580804488404994979838981806365776479407041034462415514462001728077765132381634505305607327077475864050864086698731200969686986431079743880822415887327450028653021765670783399271401667439560557487324374997981526498330933571876643813199279073690531576382158346065595306473371320264272499784331276064387527589316877517543927335322296840573100148380781367851595687580414741973327165889809885607363215421282612385464798828512063754446697462244032557892938696792624445663068115288549713244514713189771877890790155067652965913775113591541639029301316054630455755445995572691236796983061295398234742489310132869370988900539336860585937937530910454860146182900952548515330276711041092116197314102449188642839038855788594765468805635405251459479154876012258975626858525189950749417698988785166372454994487866166232048053830043426240656019686887783140991609193371592823525232497914332571798635825540473917238623747333575525581935061871201806393294232616789626964933052735504871576531859191953580277042888438925195129881205287511985534656180681508297881393671835647187270546553006257977286971894414078472127918866974641826987988146589427480984747721707814628078843208349179846193005906130752461627313596758427237084250107466781869030638299759467984147384671206411739417337712278275225668672799781610573231683816073245204079215769446144242586101811733327207309097207741692462225667382416894387602908833027417548115483648044776658322411860220926144365801564880755626367714109384201449032937428350637983602662821429227784712478491778796101081678852247257487668163158537677729455626358202809799799146880338294637059399849750483257690839901089741401047149845075365995579412458073005048362059964393646291643486296590128534300897039822266658106311280283191353901133931369392084444591951916245048987289766963157367906372267031082581179975126531897181106524721607305523369218211943350100211113127946195944153869441056949573870345442794981186235824394546180736524030280447768755367337416107584587771485192026785334943307337944193299640625696347087839384298700336827908472372111850904623959209519562263813329451687699074384021845480551614463492347418645535677327258124038186122600894510513738610479911600234893489193485329241056222597368952702577279692151804606549283184457819824600506591394068811229225155501937921750372498437299754040790814586748389565138215500501735873739484069109944430229208413163659532043559426593508163510368028030359186809866845637049249717308620230731925806894556390046367832681079030277700170177476989135297151539226835232201620670801357159031355242613778422213077689649241473518592860674284549333305249939000642036776398059448091973159485921962587382248414106714554400913560089155102871981321974422920115553698952571783999695939460347919341677788581909210761724807737440372387739903897653102073526733715879448166524531394076831719247420109937698910692221523698726282415384914673309343220698539405326500252191664972849712261940283657538998973898434231414283656912200903904950216732255710362006830995726627685500462000743687568597504402536965365365078650729382603085682731075601559524650830941585772798840036208223001119537352709349201292668779297062156298466686763774591858462107793808049850129180224051941908482650574112444878502377117696628333790008884055117576495589834526060113601149685504574417384410399824584309030580760648570504765158112425376116167286377145981210412266097004716391971749988212285727534045751029556273475382323522946278217618962236815235481440661852272400644690284117814012919044570346521535358418359750670225538324550236618814504563924129050122109125545076833745745192441711017079123433402029766022730897860759187731009237725345037658635934516632610360512010691475072451601494342635292607368978241453232717935257138320955260348026700043317866193571026660031758441286613639866433561634210826331895575880108281990906017420066546116056533667581941775803559404780938072867830155573764293161152649778957069199340571221580117338188073559105021741717054601987304023349596099230581067199397115885277711284214488100536360068735603309061251725891906725150575921700397094346227672596717731464112394309387202103996987691767750761813945139344844636799266798354253747780160509038291848003863099904151416194268109545077972773295571270834909628452704466492414028102580463339380489334318693671594594751668778964521120962028856798942426889630571830519548000642929102354959069279042539778884180368036058564445546228132999655197034950802517647515323981561065162124996136835769031615325200647594089986126082663314707862556138226131510445384862578460364717900366917092395019362757999264310364961256979226570580697264733092308914389504529740324750637109236965530181719844089171582990291660475214097448604009588511790258137466123908288896444634747692748175105708541223136240584189122970885173233637390262278240794340648681209276387731705007874287741270155733325307312940122398843182871052049921438486460915030133116067095235564000950833397509598904522874911343719576068493952357632491196038428313181310666303327646003005457869835295404392429083734593817229174994027252343501410057690097426160033978681696067232866040000692905697439682681302367300606184902615039772286794593661287592258835813442600218424255273976639957758326244204202467691389268676319749764299364589039886991492287502926049887831889561262632667077786044751887028537068283395914902838596327695962363442657440538683963316245289470895338280872254595471525669444511758862839976705454384628631569093924073614208969656498257777819205917029510854647120937223485686613119436186702412148938189471984076570507409580275019511352440772714269951428248571305869264405330563389382543656881715619121724123752169705796829534365079862701081538136737671269813786930969276231346420899107437533643115355371821584614539583066224184520387448241181060575360918078039040794822191979016229730366820717311128242084981855593155834677493206745196450121837350995546668217183555374436418341324823801344725534589111772367925032458461273334523113828033830872835634076049323026817425554746771504648137237177777586724421995460529941646570122779610976644320941802675845850061839963477122433601822927345033771423692164367954097384102823303920100575797903027431269230596822552679717361983187277441107173028706050284544915249032350147216553266411802836178502098392161644111259622218917152077899022105600902336319207146158280911210704176993932796542143560105984944954707329457029097579392532142846451409984500131280227060767563920761808720072674928695142028295817827800683399184703491160957072110923486769982886958169715093047749709503208944023468986129395221871074643787748657656171852278668005003379250842031053816838728190574001340649993879626569213209085360554410052974115094910035133878679214165504713368268167389095381235385290971598629538743263932966805420716629602973867986724751754834831089938309264680144360858325739065447217277056344352225411946523447574785452535103701491785460031744004108645393890834676142794093997126069162003167851743066014531509302345353284457721504286050789375121390342439666105974382750728548973712588038552262745898916573188462218800248072832857613948414174989600827309617771486434769290408111956292362381867952451010017791212093573204803205743124322410287750553334253278609104939621493515202292002356745148513723330378528901107059137958537492189588338105448840873440509238081802466724359231389027960079708640846972897831981811834521050301624370475755502233052575068076186177095717082341099820690505916056574074105428680804438464109661001516269318020737047180415072692520840030613012450590656112904118155677220133808740722039801893755536795206429240363987724600828830391719926248478266258943568780886255940929552309179675127443344056244259373345649116295248716429808215338100899354748832116685742741159569859813208759025512335488219834082707511410806638548170925363003576176376224196306509029545485227287088492391508500309528712320723221543370743468824182080127328096649959027765915308559440092260034733855825107079640619850809084202267559001292985692252058979774427881193793021889685897198506805944158365537222991513479058574270543657989312815560856466618651906336691352485355905690511133245433555403924363130499284709945590405480746402234515729667206836592090280536641265389943874803195884818402920638078075069489811354999964827587610428682504546112465412220266316855045927483950387355340998695303309631167414841105206464693232359034861491713001567671079091133005904892581396103907123246949339852642976917690782271516189304736996019910410842748619393012794597068912138994186684322047133030565172933304028650874409744162223283344785094654389801852485326251724470694321637368781414853071188853758899799334439144194238378113163828842789518110114984933667864472735806778705120242346472867198990758079244145110216399564613169776195849549493791305489302199895170930365997526272638329081050291885600526535541151658443812805431157060427856538760046706973687057814368102190021174900530500968072887508998483718260611163394668899022221124652014000971691913355006057218905775222512063200493056017324941372768876181345400986870152337512228337704907824731613160029243374461590643534704970554749038086686770138127568743457294094809931592632771357003697710133188541656057478262764859743357250935862220172082517427477898386304609733413004814221983030659668945426337685285535420861733816929312473813974370477501767811288433004005364340422682230477946691435863346815691545312932196091602658414680051479012624930992068236147517856313539054359395461486622441265935671053793042381650589538370844065835864691011015765382274123774759409697552407228101613054433319040085368686081098343820247520561079843280906954646433916771666191826102073495715932514860485094569633377742503964636572799402298918083872834162520480348380980706956601990743687988645797215582290858688632079347813611911837417904667901110387254329507829104618273695210804545660892400421577339264284181074848702432481068226568721089956462438797796064844757960702175711524355467951045174758518455213141664112567102749164110483000582160748799800129451035018930353709558486534417021697320464088738777657070334975903861767041369554076959059055075281753412922099155406524774696882677314158429346346397385784753362788887371812834309737234754115864064690208779702856237906153778284646165396312340975184826458338857423133130026993243764419653156358844352566593822244778098811981624042820453402296065078633896511967768642592865552235444067055990317210136255233649584194290992633876801553847430773570585620412238331049784707938518491391441628116231540164352588614753241509227137126059736089670629748156586298242973779298180628467967848105402455866163853126087321265043035198779642202728250681959332440666074604573043881663266246784071615834435316324304360733566623095104335157035582019891348462774029880250757235300620909236238626507335510709386141023204001473486831557150879441063649640192678085789340049304535206399161363868012462669056016983181724593908720124856548313759511476656477262684490188804782611019482201843094929405606881810116648941714578054896815000664031093700864632455678972042849726007001810618834375955995930290607821597918579622520846910087156004486081234701462696625574067918418458507104684709157200678529624003535032223265882583657933929106099092079329354681919292506202397181826611575091444062277966464448990921998222381040087403958708664618451018760923601786071005397432392735117111078986756418300819267673893291975562960127941983601545851569631362053661112763007876184000265616626449367743365598740675902298954842508990002571864325456769465845044157324288890135838463206931467086109759290463931576838734222809168179300444624141501215013556015129778355286605725921282748363403933671009350479202020234484420799524246474107036358719917382948065811218103167351846187760391877245349116673019938630251114336676826007625078763279725345308819616087218669066517788698077225412878556960691104033877266667907005397897715165176628322215004524726916827101855224988993226697739877793047659063212609170842603140881212747129076553334126648620552850814031215191318409120075892844513781346689502459408278069039812612802178928524659121079561254261405060564117085319098339720569912348946741652855809361848033574493928693943205015228264520432311567784313331218222262839730504048976525106591773757140391918479625312101223020448357783827174695037007184514815270401675102772184379892438946261095408694407509870718565765086315952957620851213596940854406450997815668386565307897312723349156509949859447071723063219482646632998030733870490329680364483893360950424616702667223368302949293585561252159964873670768909822140221642793989028360971200583385560800906393202523084197667382432830741650357774377760428540792601842748617820312155807739008283385617672542234648394677213014261997450755173549713401579035330452466232739111622026129643038077692311683835267573937500665784464439378924178928049632195416411726914042873829709411765226129821857608525621521833918607247474121431470649683531935863093714625347912959371437756849905080284585808515323845832570534912542288554899878370232479457006630537315081792644301848337189659348249193064959843367655738220959203452293044631260630590677068676844232899087954591400500169444290438052989903551059480542421879041945848365413531271655950985737425711302191087783220559257437861875326292812471625045201975563679905654594398252511626193179978353358315885371259343089636079360099780315859605211693884812444430867953763184946087953036019735200995804326129894493006550636584395362990465921625149818533640642736729828582057302195215051929306707635705977912675305460851567520640704191861279946370099867104726932443137916167806201083065412105134700829188447685582583452826953519195398214594327262285057601296351799862355708382372959250454284786714625442495877132334647995311923817395290958781362793495840163137992847851478460870231910086495893435612704239402696828153360192820793613290120345452341142480581431793947224656462343506880378580469084245348006556087605998636098404976152166638221459801499802258995013501564336976963709198429828603632109937177514938604221892046101959638947095724895269992426504439702449073246164615026945282040776502210949187855176012051682657130578901784920259870573136167459453270896795007827584015028922134103450812551144255708237873914689363194479069302001663912011439294390728719231316461867400429336124848619152037411918700800623433863406175854719001453488528497760200113598489787185244843205160242351844558923877542621768814994277420748787843796521551725904204528937980821942029547743292506158715766476683715358861247913693714271461408629011542480779186094805894912785407551550153818687770844994588523536279249847041698888661133028946433539446477847903033234597444751266805490155722929543585269588460168828756178702862407998447003027728435496840570052812322510223930669866671371798606982672188106461301952460551924900774043126019638765279583420915934672458825035298133844338603492106550418108378147800681769481726497908303432891223927889624408882747266125955331254121631586415291021888682107155297054597304557319621996503564804782767407360722270513184127037700142662305502821445616230111738432083124952102440919659013216764862545671108786310756538105780865573090032790461421579355065471799210399087638353190107992618107297898648845168434188954066146009987905790886995082661790338483388572284853510601406873579671378355336693620899121236561261482914534123377841738362695643818352781993185938770946973288177129288150453394257011963347700607182658203574302842396221277423675075617141870628057325186154023168457671792707731150034380732839806448530139761586260587869585879612695510662551194855020649809880784903654149254788968573064462732869956358811434940495637294271746708304785763571241048190417401411395661063123694706108235816804540485427570369925751227066229129977648966287235662170685809923017737423339686947283817221422880800754815494679349672984691322425375444939170199119948566264386312130732304862855826959461490304757291136608777013622305045347260295153073495669729191269243434625796823582272561751078684375691243037719953732477621736429744730927433043047261025346058289857760170088827827382861129775089206356009467753081043149828687114031175854358756267356586100456936183719974242922262367781783202299342986354732198311928608967551596155088305026314353082793562712958775373359261229644849141071730394286114856303733683375169298481849821145557673760280876296003301939652124497851962044747260556177516449812397050244526326096350746921606454834910028836035994644782834672273351135390044304561998263433806001013774781463889239907258050736861133092934072944762621956336553301395968848173218637529588004321641733770013872063978678407465041212779029809566042862428571453678892567577218463315685401758771894688079712986950825736325127823478195832187868307075608331627519318640298266346278643233569377795411455246691561594625062274287578927063815946114008917017476942764935932609117479057809254965795978931564887793564968415163709878266480730321308470099556002270178582204083979440017089364107741564811872251107952720120620217682565471063220137600005077910588862904045950800615044964317720540240181319683880361208929455837638555423102545088131336913751497417534280850421677005253780646464387040618751865373515299962294547131268569447210221298288052052160081658833947874751348346507888327666872320747019038654659494742763125210971280128101637080029788384350435557324981849566383546645035105920756538527183813646601046110083415152499345660734840267843336894296118246105064483192070585603329409272408753103254014127794971728757352872647762190355595284255770734502271780975967059133120431713568619756849476119660335477930188724425607589285828786113053867079668021581103611353357071429327143528107406414144695732290062865136094227075771876615896015632252520362838824698335455698782898939591530075726355173703038158389740855447003763225524294644536813772270080618873610260794044057379397153850806239893666362453203445241860126580246844762649000660969333126473351276522167670934714487619864954611307595141373685346973973990268398961213177243720504626769896586343700711730698729310210426042226382701321556188334724928557424110484875120926886809651150670628582897973686031089403593284592115844003667429077487906188156600049585478174290263445411177445073292028484408551582004185559901677188336367798289753205950157744270877761809328112088460457237088117644916592800250574488347681676273197594458804069764537319103149650603360001259382532741965291601522402859760992839488324709539397419537385112464688290793623763810966777161038970424622685139381380604011582244359122558713787792344682617485451849842077580522323543439859303200439607995170209405057841424439619372121903133792309396113969881330470515020225030073450610693645410749703939326765041095882943876296695215192828803224781473627909877085760642109636750709214472500520199596515986986078643311411789363603682580993865486313751917439854385719038285442704439474006891520436530770664053967011721750683096914848484499316870190026916798106909856748429733291081763158675445511477763048361572884602483715035865723973727728449565106271379997951811156860298227430970936179433468363186469595021917573993368786928150848484883392161298711054637341734919929436492933912678297383509913601901588698047342490878130414661628138304620986478967825774336565106535560017350514984838628072722934592158094295806189520782908820847533025128653931091640972910063089156671781100364553006272395216082431093716422989203098448363813068680043250133910105634710668702368726296019897698891489859525555549348827508258283301859250117279629966172502526882185937751212950129511192870164152649571901836551468623306219063734200036241777319455202481129374747670616264944024546634198452378374304664978075204870764180278071158935141560344736191583602242094593038817201729227010896184776165997170099461948598537199681193962262825020231213481746069982523333910339608783753069821332986421113966333996081642952843073312108514343985444272358073805652722010901903555877956647837439903557849379771505617948914706815671689341863499793310565884318667374154593501605773099880424080288280474823620612233151504857448757283236479693831477166115037006071714110750770191232130839296646240431264104625609530762335960423748439122008295895798409394017220860803352427779771230124487103847960013117251319611204712427467447378518703505692311041285719583996493186984981171050533236219300337295644432867932927267796344964968280131498611620538075656357471938956964447353328766226284519175128405003952457778232124257533237767203927689091527003058637635332161108935372187415868224702977158436992513370800342077464772243292204474016735731077068729423991795739183282481667120070294090681671758322496627091969667909621752273956812786755533564391779096702271301763149020484112061852353599650109240278289963753995815488609023366736152102323813562914183123681980293482768942004006516521572785805685414991462106475945605168805907351079129326482963761914398499377564171095955868425896132101758810946396153026355168769479515971162759307491106446025951629172485632261826319159207212736017182296689563419478234605612652734579906768293004280020827772101507138834197370448838274846964352220656141022483468571721768001863853207748682977181546561856790919090728251402430518488383769714890457663578130535393723958931968111473976488148898540656270641353971200162614099657423870964460490138423873458874514221092819933097191715740976002250784025302774082956029404561432428549128392187266785721063911792128148293674398119895053577916408372980123761156110613035323051149748774701987890738652447769585299358422164291195406310106424191141985640885153251521292274970902620966518990086370955523974717036591713876452981225043464904321028517244903949247695791980347024437107846913236496489122682039730211581877960340090871491140194694834534697314496662487106123329750348891288207825124462685521383601282593912654983791840934343876526352036093960098763908413447625939474062248921984641263995144351912485506488748896940174166900472346312879470935395771889307819631630883245179405836660833345170813555136635546280612684403690990187337209920529298587260180887957147718486821431110040168084634391398833697105698565187874836878906162336406293553006515934541668434262378813426989929963134892994013150229079706935938079845029045055389007321741046559634151838847958254742906791828420391214335427541471663238276229725749211448696671352656544024791191263051314860449474359632626500164739156859404926891779072040357860690997969600085370199573317706261413329477390353011323267666375398004883781454755015254668635992754737157042154543569065497169405904136978165361010964116690968766372527038824954987856254438294015600031467680461477396565827275181060402259206021539762595527317253039098546725602172131583376581790064815484127947957740166247613168024570236142269492289904127388647970642945094724265153496161978018320027260571395085471545138731250922055825626508047700304581578302572198863770105201221484167989006048471227480809596592810434836434220145511555626334641212863008031012157916390922622320331264824280170351229142389171375138363260140666360522262048961362051349861667803876979313356235202690433505433839650567896873487242291484734028150062758907925235618655477326360609046529045530944210948494348757237818570177771515473434977097875226585993287388737488310349442256078845040356916858594682729877893963067869950827503749300186694988804368448293171126161048208566882923016310475974546192332162788834427260210014301906265519390799271191489757522438090606362427882612152774100462569809189017806286832144842699888920467193108211818796696616796828829322560458055443484322545589602140671669002760767202087564296667490486491183642568621165487967187236325625764192857571992465343463418912632480374631188113881994921027128939359289729352299378408161489952892065410734942124525952215525883142965222942229714564293691860570770766324024527622751204334986282251672398673125860114911657767370364317071944093561204329954886851581026345418996921035909372862075994938254385391258171503034947270825385618282326772274973051280201645350364486615345306500979715302712261164888676869978411469233581439354267396907524880959170808250318724333633565473320753537888037200976239313090961759344350837945225038596638826953647259179144223639630255205111065823260797938940786397283925817128408744023204321821577464829872054283094796918628612457225667623860723256868466020590609651032128254797478364805702676914593008272505286759752865636479565237174820006355847359300685850753325138094779941779710227168469084450650688311862161316923103522180507922634260829126364562583460289362643742512188875583442928650971591654339914372966653226778326705700385861557145569265572652203474752628190277202036772521981230692701760081324017774088113624409502234883622462085721317667567359496054140073160869344017063543133965286278910548010497142791820889968598032677138240186161364786022220178519001531399586623305350419103387350268341834824605435450154993435491735679235197500619958301554811576715490815170876070127894469151669827460960473578725482300664270429479143365833534448565238723957766231001524569608092925523702551425849435121121311161020802570368959607043222229203716361696752025822352550453153168774380719120996566213512863988923897419310196766353898395998018315364352796954744998502220436037716311088053439997555614891613572112582756772971527542328852112941109911697096376200001470258533065523190850565207938360859756284497303837434962918340278877966043011005181616373729956698049229701552967048356067830140162535675064240392474738567867860270846183282276535007716270823560127530343344774413667913139583579850207525406009805482288817069267214346003710313662984836399237939772184906902258722383138048281931623702321441566198061321125475486740774570150596766185953916492460453718793481743923522519455206161480062823824405438724559821174218670670620050871504219283559360898328209540975036514097838933164017526117978428081630065277846140079115574182379587304586696243148220835164034491983451794014102189097721737992575848828809457133623953469112898763752648690926060660551998480386089049753011681333688077996131866427022060052542985135746523002452804289304232052865308757564713797302459133002512792334184536982104372172155094740530872640225254193599695926973440097955061570640021229439652974278519155170345064432257593699011722684405122117446229317828099457757039777813029017793300871901871635950569470475310572914872457811664899992002488118012442151426377444998614502027539792964988905838910792624329404121828987872774766234110339189254965274293405401188706264582857630832186589597435444111231751042627212141388044065486916364853988323114548637658430766132761363189873355766143929355115731292650501438036605440664571535098139536680028621824671685199514322807547675401325640464763909974449495443181238633801901539520525828683353896358418446185753108666474728686571188670921776413182724532888152242809279270099289574084684662889035551659486810082953706519349172454381038921890534175422469923815690629866914679136061485435306420458529880636939140414548402213402067924000653282548177255501228418405340889221733630475484528714973759751916773594825135975948304190158857603225932573859591176284590355500625159012818275526441244352874100497230167245628763030602988550960683178641799368858650344826249741434044771525496205314156404743295118572510248362890107122066624672508908751121054295066377352888553081323124254584984196792705785679169857503552587804061719942572564218034563789212297545239412565275591723731302777982964432895364361624378435310172822071894145142831010152028461485905524592955106850597293351724314851638871476759256993517047346312048481209511350422817166301958460284376640099007028056705126188050038333799809184116646909367557074117436128896975342216136030391359389168166691453176238614980981663759628425822431331948147065388622012371333442851843736392945176620851215508955184059559402412052950800081574333085533485519477747071580314499205825245067556822662230689516928742127433725649644086521311179011488039713335239846628204149470259407465512451941470868838292014704231844516135393915662096933035783224446415590364947697535251472989308428396595182566965174340847772121945668042846577594820539120485757164205037803039813160044029158712839799062655109205533403946280394596879806463266687678953063025111844547331867918322704272569442290620862757963055576579949135137765416599095570916043488242862797385066693803281101142353901620601514150660355927954629002998995681335793554192224244109403583857554022992992419019726235341685950130223217073702999319626026545877477951222838221403281394857658191900573377677942576208217787872923961966453582113928805803551181448335279898232239457344919450573635795380335560573469367847692874972065992776017827525694125061752294888282577329290925536585196820766160944593787400753765842232908455788792374814075847181538390848242129599710070501342618503133687398706396160113182329383201812426836078821901173281692030415520518118850115276292281574631820926352560769251717856895845670697484469348791827228185364863804184255813264289419188892124876725576513143475528254469733656532886025173506394108491016080736603040014863758699611800918056163320245390282351865766742843956136792026457824524350473588775388952232055326767446515803091077544358903127715819328560501785843873302643001456356768702765239275507798775914499428057684469633911558297511135619935276926564153224331221000195405619841888062650786577088728717548105511354205391945242037844594566216224796551658234952332326962532420471062837529872140232420625358803928069898699708963933209210446342386916458672777829734831004733908077207409565483777147858969727739057250867082959840242947422397077072616976005142841707189504871351551707203605609407536200810721508018653622369766424606658771753507808462568751334931101857619641075282908504208148709209349569809748139992941791818004168591495693390414388997579777561928817141302148547928954185202313637976307529870079408744300098108203732359567665273069395514492816310880203313735844533719028279682878433907968619378625804110073238851158793582985635387585060300895680553318844211602644454758498632990815960449058904191057642752552298987897698917934560639429179437925375738663297950587910812000020006001783067029522038201470593157574240014057837587400785453664107386939066906837295300868140657278556573745890743489484560973493989183644211238508743280807854958665828685876480086083095565881743323588411080790161889371440971839514266310957652413009715679455813654631319033470874221898899455342677253262001210713442849730977749238656449056960960573202983297240399997011374537113736059002604768108770078340185006102371636489300967761647108353960735697122144652286702596387121016604325905637195919599713785973706538496263594616871401359965168919705334659156586524839673437470513841043566669486083089154105631051613615689814243596889235379788319604198894833961607828529159606697493294103629404970472374815231379000247277243744472166505287327159225538355770831748485264187223465136708091271548647004637470631447547657657328810212461345399897077338174406049481798268687829840215886647900091913868132789235819700216146236150299557713570395017807585245193501329768138472235430503281880742186924541561493662230888538831427805321900491737576420645335018371487626681520522917259836172099074409267335902163996022444113012100649464877931875723261464229463081502086899770338040327837073454721855907323482239991096760364802069236381642720281310077439842411257594201983103472863272585096970139564197680099585209016396476650065221300832886225622849411277725169930609167132733987308918453639643778119499771712914253838013468713177475204094770033974167304464049895067142515384554870268941722908347898365715224900968198302963232647345469541386452602644194408296470769551491571774876784917902420983689838943177647649547845386687214774976759213892143458294144497755259060166799707296613616278526297125794551577806087729592510663890990114897924895284679429645861131946200305776982130356883830019712237212975729324759556166518640616092865371276686086172142508515274001902375800642405599898502500204910629766435218446702681994168517203593342695040072544548320656362453874762599396490663987265663256023446454226940783869268657641909191335487721251138484891816310487956851814387566075549803219682837591363228157855565990455579645172753244242732987511537885027810427360683294789545260086011609477378676257726890107954304999649183053160374211681201373434174088948908306788715583052508280423613100855457817317429476339596505743813485306598313917743728056531874802032058805290253564220737638202871021655228775723970166746901524911789754537723415586939317441553067839526777533008820950919720573444560614962840398253436458207582668559533098183993302483599812873243374337805224115842038848436392091439388276486315913481734388987549666231074517618098197715708338738802881728740985356823818925552453602513603645112049486421934723720027307351320214965769392501796046699611530697454720174348590192353348722986990064671513579983461444148696978277564298838545942976457899398989745582926543639986212738887318207171885102741602435330492337990568033584355683306770514719563554552851280381695216213454884187579639034841909474530358182464356708306361880945459280402632500251867240344198517587929033193772890626664497691294826504023333009455692958895662420457047559163608035059655955503056639640879555184132565773250205439886775225205900429159017321122541453332609430427276109656410929797523661195526154905221573402132043709170568703834112821111311037447442565450030979039374215608933163501596607292523026100102896023619791028636292618262341310933430738200883461090717497534212231088820793474472085540802175130002746207675134961686802059362592212020081582225777082998781516141118452013565025271852143216366875643957624588870156688932309895514864831739019113280301660873506138338498704429088841857298313498877448229856851411342319656762896391137849933792384770822818361538522543717871462357937445759890033623605735292527958776619051289911703395988585942363030646651546280087341182047431964442050196905459178380950913320035964250163711640927072024122679446726309706194588502229136051003481445527258704283027161665959465207922715966272367153968965270248459419099266376573157176649097738437150017475672055641026845173123391916061660129714391953376860901191309073515686666114372558663746475145043339053649364034875983462748733573715070204454303946793224620708940741225291850948377610633263904180107630689728641318293373782177845144695965593025337310315628663417155293822715985463757411528788906024609269109871342883555700702411244300476264807922455637950449178761017810118615575953228935941699875936878087156228418392231841708606470750197438541988528107191693376259690450725828655230626595958953925156164697011825385921548402683273650200181725166631902662697133641749008995421912579712282308117093392498315961986352875710885240558308501859618046639910988531135505537861182591441040272208981378166989579891615560760507314939849865961629933635613602610081416377869293363856668326991892945060462957763194223616366862208867815133522118556426017413416835545487668316265699003701934195736103230302023608679318330063990747103469062727734046556680288742746626566358909935331719096656581643685287196126213071336042164897107241456013655727459690644066279041785148867628316144843341653970751372998218053453211191318532722037929182042718509660380218908125164268996945905637394091623997717618534349362709887089431046701045660677492449332583165494956946321040382000186534645353446028755731534017278099255662963040061409417721888388011631260436677021369517008001105118616334981858680320884751920002293732755865413182608605820086465345223711530787433533453156149680888488603068023153146060028331983150597760683288835823303041548264550571366783991564722523170242560476017391320472146287899597005157088208511574215569225532387094853915007406318988028443353510875950788075812030559570310774467871668548090507662634799120636406053369314432366131688889052525609884735410558264409252634746398308818446629585081338505747953769345626701874891900908057855725540369524475286474588805804783298311068413376634574279732045136091561207777825925352637838589890354512469105817003747550162628469040701061030218491772812791353108477847688881380188755966440558556701814520897340475389831455063475095433575007179795445248806218066795765980794140308433791168863249307332262240023799913780548722434145638699760097934066504301715719440037693465164421877626534386594193323148216765328477518763890476591275666672991162063840620089662484420264230726142091897952691837389868372352249451584149041419844222140292577617508784973935493719278492773744421093607918072854906532096989113028557699000450396813992089215761802309127997843030877990025621235704622905146163846897197224884366825193689507194911207086301528762700828673856835430846247906382772516104535376894686987125614043071339541848994321315216408500714152344999479325026070597725350986074302230410989519558367135903130450496842670678201968490534216237438601381605051444689886176435855945694817253030078928981165379595493332559043851544598604907069563997743954561879694867058531262189441786018315905255373438658600803154111517179632270722264056581553352203995726702808609347852997349248263394074834832646117714175429329916702632605603059011239242635641212076164407004037369703820373495179058286405706553831144121419385584719384691704373775358650991512895706871142654943347440047939165548784308282699731396666797804553455073484962099721966653303636294646134052805344476746311645314903732542994436312066185434288305745791992003139586993155818347871780014023038990202561954318286424782063687676493313721982253810008955016208216183819099364706482926608884822234742119719695842618958943390270347005901566017771717847655382751242877483467545339577948796931800317786681086851852046669393178822129640559877867302605238212901104753318957783116313376290708775409269689004529225764589864678367369273103837668018343739651229562886114308040476220366631434639044822176814390974048562186978260863278606239976181871697684247786441616193996301894441031183868202635960010803186636614933296118691638529985131437778731092875294580194988698193151802236529252985690933325831149399059075862570403670114414876832338684253218028691327291448105455275398289189868073546875001717307753436377274717232819373124061985895587825810703131764053961584947904585014972099901386682455558450304282587751443420876916603246084067693482659010081216210368790752792592166027052656488214306629578280177945640084100320872879227574330237362952589495081360946446258802765755957175015229914895352301404174570648669334508301244493108825807638691634953511799594412552781266053724063282677332902182551469234244944964023749298630176125040026629954880239781651622051284660543526878221966374828749492531697444167846917758682980064597918376950148296555773863718195882522523189132220941683798647306275120177973951477649136063265076362920128833542569706518148694535338638871034468315673271711891619829746082547646561638150744696727343299121951255621033019396240810151525296746730744975978318998635906527087694221111954493107287575235148711383245237503838784382649783389157048100223825359208563508680685342411673760753211171694571667635897699937016388146628246550894968770118842216540183534251152107328383101973733618264111254758331387404815443190566379174838839455074588412373564423785460315336162255795992038969069759962089825892966456664129886278744676567129259972829307482947788405267603855438218413378119848971679514676033707303179802798566991401536872261376149409366378609323067399563420861896375355328922070371067527578351814374399932149605842131719980596478218717769909207132484337802630129559893260873890650282599783333145971449658267607219834270347190910646225311414503197002241400724078210357966624185004448152622055920050442630891222534936249689700871039241336308933993384644119168436520152904089432611733476090589609397871311394416228459673325803035703024946324095050544528654350135828034752333342972920666829420074057317378502001967290322638076940480179731498114370545684944917927538749686054245104856348056346830946941549678878122830949782543015924069941112495266438490807499998027328491705951508376915657213649234391430845442907883115604906721550376808218885603773483303205935516942788533237841156452798502690535263884387085730788548600418273326808148551111609292256672965294562874568317389115174510936920200681100696314058402990423678774128486873312693324235958410957495191645941677854348536357926451682131572898708618681400674211954112297896157509024342584997807066609745601174135712324097481845640968271504115252163496658203798853607136691522346024871393680682888984974041464648738846694487715539227471882715856086665134489449842130271892842530863533032004582166991811800782759472776487530578807259636647885225403748896209345290642020992534126457299556803762890548249212677337639628919132682041448769105247238080735282292744429649625236136192530709902975979732904815450041254083630241012980124475719390156375457839625978587832826351582200211953098194383656827648574118371394562093632015338454221780663552875022555108407268193499358127591072042723719946013347450092241028067803786246845554170197680531300841576423064294378509145664061025339315114929907697130856943272435580209218109495120854602134086905694925292952017121226075630172748282100753285884558874137356845250336496961628679850772906063561906711373942988849148342714795360027816533146643502513257588739504884591313736524593349175522241594019825046261156593843348286642119028954982332602435179430083549075734417096458971269492935295931728542037564802934257484396376365324897221114176428558754960201496187691364188959633780395158951750833581442199146875167341427362191473100239031482455576531665438544324135563431577741115799076090415009380209825997422131632543644310563083608898607112955743208844129857118632243077259821601958682585976456033185585059554608756279681677993460581926897401373520616053672171108321596628333259499947217856651798422641109595341889747655779136022774875068619959810048141023910141436865989507301521557340834112365391320524922312041674335495589855923091638372917261832695889289144032447891277961196393112837658107805657774916216971735112516490918472961515379032957046697937584886786756611808852049413082503078208885432791613997384484439973180686521636420675518981424026510659891939031760880551069797678972351338645671025149114955142117773753972507103524020597979931975717374133193939100691617029705863788475318775899187415411446521923212814387064333494116344237784121182700409441180405218063499372871144225102618192211561715645348538295039497349782956557787496596488800884458936627766881513671775134140165317072262216372863733885935203668210742353208875167787123584439624196042107668963400574017160293292250330038181510958303365329314060941252025062167000041111566196135566184542975833668972517497237013700721985570501854737020732483048034950356216650287288001078230157213350552614514617028098925569894209812139228718367065802354325248156610587586254510043925312541016487643975328459750818097626898385694324582504108178468284181770584816865143963303085213827562087404512368262287519138624285494025893203166433898221677435824209368361969511294230095085561250970115637399190096414542058265144386770529896433031840752283632266348489538694613797351944387286317197127184346005292656715821500064112093810412742424997999681472664521860762537455284676026222744072754593949539240453796205967550132284969320101610415471289065134577414511364025839475428198847083905226195041255904992633099333007811086800494453048722504823863330971497311034533399226954969001483971482933661730053752357486219621011218817616666294234575007561670593312581252800528255569150822358780127117534474163223969296794658272787752425376102056649853514728606727838729827642777446455255068160877283827550426882244544499883762570702646687225404536678765563916863191740207228144016532427455921459031199183538439805545491452786483686067015843382785918069405891500942239434790301933901790327898306138219059641106649331017276724832169979253804477849998417289209191696105495681365292070120177938176174190055769083893420795592662096133597593085822017966514807357571000507864064031658435225392211210326875643052049633241616665120891128883754169699426111243646972787518561564330792364582443246304961881632912460155615538603174740289471759916820855414162867074579693038873474671526251748233834933839048962422581938926517653914383715726761706329563354235587015375280613585961483359153146492384764714554061438366893693498723478570364094686430789129271595228915999692419181055977902673987791433515002486038021365214894304860618474442690604264001309768517571676774783747848827452030285029714038759939914574936649074616529711903682602419547316950344060933163338724733594991263640519536041096305679452670925059403432393979151359870520058284044801339758922036955372638758331051007678067538906879842944642809046417018060887328091886620887492030403346104261349717980502943371418837879648140374515257275845217216929874830983654174882643332272688224049035894510282699832881016009186341755504338577753846566294166738766895699067403483237665690210718283867040406866882877155650902263340898767682886454510190357584590840270176793833888195640368750187841240190878060946468505015130645620422217951989230369371160675832661887936044400919337748379180139236720002026837603071678521090077014072812297234626625920070458311965599147046092270672896002813592716405132984735090052308969697036426396500149878720020864111045539227717830629068196060933420360664265876335756438692845953219944528628206683286834108574929575908384270954485578727065230295288020199719969083558501723283138447614486399922401825089489479484319254305631406589023861551224201638366560530406107221495675243858283296078589815067267904327324261235359091550708594948978031713921651678464210961267761931124466502228473841580683663139180047641890775816434630157606070993539514487419223505817747107056962924090950839536430568100667554961621856672560154237864570107232332320205912641647824189071518345292474647690271658605218420148417480948029209799177137876119280361661213839541903782798090854861072174074496568322964159673029835574968126128361987504812395947275406959544144084479263309606931318978898747128252820462628964947329610162014668805065163645806333265009810632210375109504213152416119355062559345674661414044296455785000882175331347290216050787362271498513528118503869837169608376218464025326464766104673043616494100222024559623846850250282955244929074050822666055656893839024567726332825922427216294875550351333877100644405048117491639083737133583281485184035725122584573243811485256810814864732635664651818555707151476933073090904539427747239221945470878957850385922383651802009496569795619211072184038569392342634795724978432609164816928742181465475049311254200764661814111594202496210157630253215362604951487399452655754392179908895240461341244291292728585212183122128386435650688242181908791847993917547477877489646338028328177916812981543668824089423070124966889549045346756875427933763950137628071196481024177617833484683107309399846784624624986301361519666583533975393104500708170191140355903973998039939870576302175691570632693470101028587825910093854266969353647499496259760263757095781544801266240682451782370694134652989049704360036669861565149042053652454779770634766414306247843326001881921381976645268664151105057532244984530865989480393300390038890745797518189919467763878726700872649797577000615914010944491167832108162962793154668208900241090771585905992980108148865146029971752414613209425941523921364821283865490894125905611244039457553919293367872097650846012916802829536667436472006988331980063384471607056174478795057703245982941818941857017653791361499196398354243968008788637491843607964113057327125121705795981101017998054912236354563532996453989569117344138532233043061821584046415023315987774288762906789558801517617863785716625502378985456465526257944076340433134561170441954044792650668614514055475362922855277559058736807453251419796201697071592626164060175692440659377727757559243421365382232752858840676042773445670035842884693289199373922964268833561386457993010245743663530484277164612122640248161724942258589445535490701265246082665744235836131101299616345956769970374185028757294091960140203241333940303857594458249036638551987373241692807143096239073949803341034506684365975653759864367972943651928877608863334268912841980660003177166411477236341970987222166644427557597051297423078167238265018330861979574399868117573853444077956575339485718494412201262004653921713259880219960126940414104514708382102490553814130015739993233365310995977252696081753266324530016696638298756532149046113673442557154111186200589610264339501730188272009151412083881418572589198020433818459729810546433007735872429264960083369069825895160175136377998502426019267822560031469288652599664175421230260404386694449963430287899319770925509135673282021337424456955066157972445453888033640765935055464774099378762771715712280015798463919505801160979762383666673705286884539425941233046336376997695859788044269099918130715112019867657495664779682935660386843511323835292085560187103007968736731581127107869242851708816411206757948736920391669433375852159073950893471135842871565631134024350627080725352123688144160150755593904276991117208000486330088030126364555037864601452901191943523860887689810940106215830003420333013794828303521400073890055096538570150096392583916767124943858557754594300669304468290728408966263884673740209147851589890700983445468416836851456032131624306931262985205332988103422282994284991059696298477936480963943256592136893277537786098372233426911192316403496626419361532676419117467194323819624251326078796141829771163128549899753925951751073728031250818428710396760722550006764003829799591786635887965834412444290190033671925146965264927678118142363470391414080531366719464811112209232101865218300870652775748410690094814155952793696141787824194807444619994407425286570964082624280764733605933494089517242409524962841688038878883088581833985510980758721650687923062304536556866495639870768893220557900370608599383872285821862919638838364722896097836972365098473277850174107924392879028893612980879362604895385340585132066553848665441063891156213587132564641335461148209390744002294360852310418781853320837731884086233402241386926098361090587794023146526007033018166317102011922353151273216645458876426383353747229569062581378531343762199394534171431416904095822493134478851481154611990027780351429609576560055103692163784881864704119681091588329987961385305744402529458844475720148589965555663039500931751036218160221079811467764832677108769101985575388889529728809973887125886975160598314301945918924069699474688170988657514297569707902738698468979889998047700764505407018986526671910667450705662670681504885166777955947394488281689445708026425801115518089863901988705629629711992271520648074102992568200356603764314641724429630690848521735776202461976864626117253952251528117193877509548889860700249072180971975103233573340217376833382814991448945167482339736593014727629861259345161120306064043874601000905450738600728257515052366911541812173890000809327574013062386111989950694134493887018862346713887410991320078496137520579623605584983164836106643319505865104281074653048104081078283734219193936194795895061084327466497519686612917804702517059965873566179810947659260286805738732895132720896005471953375365325231586881078736325878608863626198060406251582906755562515044259266572353303949936603050486167456422225460998135719512881387133318957812503357341923153560289416011618437849494288929054233809669519991286579592794680949226148039321276712194265253133617553013031842993517594190015902642861164418661717399578198311995784974962433435870974953317057453130281993079745834663301370540742440441878588093975770861530663510117944571902572668715267646110191700188808964197200812904670686256465623711687269380183767920091448377395643865793123255490929015222451484057623544934504289725224863494316027081323928303360385123791550452935562294474971843827854541482226097961689710709017496507051700877595691138237048197938905293852070762900778675711491256743949709448152796453498681139918131705902021702209489911717239585707597255529651508401265733939217431620688957331215950882446747868686154344595723991486949632679227490864952699372447249432460626625078501770981616839514860261836008300969816303932430166934020725685091501993901813264505315339836773738629789264253585534014929977433114772042155382780873778995640680639070449754084619114734746774263062216420214278736940608523481728255119834388950122016350966262125940928757640678479777910114413690323851496187936435921607090994524596285008395288203290261198924530898070304077298509887414606043915520829912323005275779209417325841088958475634984483750405373060346356250707662904266918911527369428807028122120961664821328133554825351565007351976817563001341208005341275703513480897197011812728277699556452470938473197732643811092886774608946668588263619226197822415937199742889977622965756762703914559999818123316124497888544018464674594332714626768816719328511699175586931504262693624565341035258228656625052689973566762550491706193311614799680260433898050049454780038617329527415829363713067430082903605936970792499858572288358285668450164490033435834201666332923726971138553816315687129907266827657099321469199694435476371761690969918189679686541042852360586224970038105707739912879974214378058376172853940328843333335150694590249197182034022282843090153294862630732323394318995196431029541921181138703014831109361166584962827054459871549645120499079562524636667551629604595729165479440370996281626345312237465701989680229333003933212705706619962679369894566647667769605524985262697289550327272445637679644168523484367912888593090361709596159447037249259733678095941177980969908539424289169368180534548035573141344772402312259629232099901784881976298121932423375632105466473976420228719100412105328293263992995551202052767411839010223003912100054552543775672354269588783650509618699941134944447167375651265772825462672165664502718969373094645710121024533685360078045706284760016532509782330893054299012241748510747615072267444242696182118528985418399834473147408539933779299254960113539879796208699758868113388533252111137434579432804990190440934767628760419376877415482289630086261316050069152025048733410480701919857701999513823555634081121062554447057587005428215251178695401837751548646513175881332228022779593221696460092932710401576834655817309680785499009104247139233203434784912587867139682068164344513985251424294324200693048358770025394233541819724566572217621388714694859651451198919052462687523244250910318851255834461660120674482122347356152112159139159586922107278944527940365168682998932419956857230182132632911115577396960898825078018185011275930889844566944116483039998781889891826913774099094164163034342778433596885931055578136652257010944085348931567531491707978522408792793627961002837070111162518624330004883873789716703238035567938197418505651930530981525993119401989645144799589643413736379570151825753880321590383284215756035533847253562127942964107753922162023247747011388755528651737336687112461344356217365911283211785709223563850579926107698414035417175153531927331229064475498804512609034023236134492468621057695309217782967221459617538557556893084267087052889601127126959926654717855394173506534298817754472808494775077666123800081339636868558204984856743597156854247395736985576745461596115294461410718198990987906656654017859876579467137694178308188376647660182533088922471479300807371309191844786030259257104102935035374723123095275125872402612485321271236442346699893429232508868122737684249941779252052784927854519394904273431501526748662359677495015308541324186898352173674994762359622950916547216718937870466469961906149580199547998072859788494214855533062393640886612887923166386351992857257100236772397423293111717150609750912601348166766231584826031517545548741739110904905241533792681908239069145931229223435400364895533392792732942767090168250763746838437107484899237225834657276219178404394450934478328958505999989111300535696901285681143514182153124614268332579626417580720253364634469267093415890753055958546202680712691254608171879966482119501578058098098646388354441618406298324534714204940048757775531388420737325091403356586491557748888930790908843952381144330529477698551510015449112664528027260454841544403845496211217679271432476705021515684402622129245262400029235657242861709087210555619221162138000781817173728893988294122422799900430529767743351640894753790695406294378079529567767029454232342411404784459513358976560727759154285269250676421224787902733634598086034924369681627326246949189361701737993159306872310593242817989762196069453943946908853961986182452280988711990727124463097130109126718687567367929722873705259947818906908385291589144886396440285694492590801449270054009537507597511181625455939296049115243112180919145944307931471629423301609636077109369018744237319419149050067544556549247375416267680428551284343769439853058924376112921636890045690167117288765657820460707604171752948196112000203170957474508929804398211388624726465275597422371417841226738181055555358457435906448893348623558490768738500186899201415682401112410822592477593596684085471002848839588234024385055699246527199287087434736933822798647638237203601643854491695058846280311684156856752834178302528862525538630343716467016073183512993063189680804721454796629245568835799625968020188583166287590013191945534421585112756486551064157447007515442723212245225965186606408844360839516680944567917137733607565896343904519574180019850988337513273290844547440348783095205850183547303082559578493221412892566537503365902722457792444069202093239404126929844998102767178552285206918420867214196544213352766554335496093813498977903181500198446266021252643876348457733028574270247936597963405476121354396658777532602697164112157497358498396374967935229071986659983580479216918442244264627585911469389116659550190608531885431896337513472353251584513235972826921687979748872872655368406825636751405791397190701935927297065835060048570319872179129294450361373850197211598779523151720650836801231304328255126378699016917140156887446423522662394721334174362177317467586226863475524885079619851025505703528610056269117493872367077761130019325288997135946130590889824861399545415172411575719447714644745365565376268770993565286921202493612342165876848299989031428249230880081427228779724138172719373402407263513276635907988638857490379875067426847939156025755251318167332498879439424951616658598087713914162814215805060615345736430354302590372804879768289818827399910651783630619317225693739542278942207392520320539373093415050500927478676921321860904416034350038106441351819698807673828168565706270050557933242112605048798657765532747467692393615162487862933326647001107236646893515667168356053706526338695603685992364279747784389930873839095750451652980681880857703609793582701677824042544653049436603775798239514577008515613392429610827993931752534142257587180925054964575968337927548758953913894105828579309350394408262619929741662761072080375923252779443105208918763328973999118770533277508275385361603411480698705657229476811286119261908049081144796376804200334123733400844840496195683823926193836450830056891391006996153589746140533248471815248298809459986997683906203117669953317409034941803150984366411882072283497255716759869112574325749867073346666449055057767477952323311816626021316966873440105529589392019976177468523409844853224280191845064154709555060541173694157276735838625451962729616784873386093269393244825081177635737735202492802289137747809373558444509105944203847717661958379441063849319694723406373122448074883435614362161353825649656815669830339926263295978622181709708797978146189880940718825122101970884806067635632761869860520123236541966538744695256356660726057409730381266063508504811329127371799567972607029283084759525599843199645797076895350054279723425992549888110024919710096219853018556502993342290404640815586133422648326593436120681605232378056218402636325184014227387620317202818217955696440997046044470902273056912268776788324459635326685505517326451763937032666629359698908361791750549145017548722455682236347752263772349734721736571608987363782698783396343248581082596888433333146185744598086194271149563354467421950341839451274604404713571241629971057815923153367713444767950401183619161270247568769462134413875254862306040045798081884824348611270302360806699777519247753333047109704388716688010804581625215732178716839038968617909595556824988047909197188652629378515810396280647418405263435271368935604566952966817699171942854359783136334363245994871838719395652791400052316122391915036239264910123131702984482152133963174338587514886371097488191232142287112828345686276290722849148077073217553576763153312070046222047845312258800801198134180690604107398454860971026836633493474810588350564455895920865305053305714479570704486687968123883507706642274696105186934470316534434707133211343336325606840361616413914093369474449997361045105506287756857477739487892490030818834393965516712433159231725698433800422292475848769858878539971612883733282404559603835833830123939601480276314296649097308282994668696492745500940042501561595973716974066810537217686377524221036203190243832435186974104080646465267019148100154920297044450457213817432458696583600584419757931193143054312774058679582834587788216269101958459895038584646606238428374153562737496992978158513739299226679559111632779344947189221854881359059207270552695318952099416115360958607121828976362887981737543442311590845400497136845222839450145990847168953865771034814956758973364450792138293169767582663259973720811762141304168211794688017232831307547872924394581589743962086287844844765791721166412609449138370764591770755179508992204928121936485935067297260671977189331565368768290512809634856647266012325662580849760860418538576586487884740463891249278526039305236497019792719675414181972700758384719289021379849687110303948558148464567167175977405374668186910883519937032495009409841061914434279784853391179276765471555248603338678002079597250985867548144835187393490161059237934999350942273564664577322929690136588276294335249583879537043899441120335329501385438413397827703739437109267613732783839252093201019998513998630001206494436684460349068491210903775935531363649261360146253871730412258213193596781645062664636665201303330609772843961322540397053361213725488798138270861883876547414353692924226769108355510800298824887697494610202795550138838874011096493800115755700921394921182045121692430351576917571857921119716074097152151244723304550051422452549791930860528609035949581289556079511292112148481820695183795199441549897538708829778116792456899006187102268803872915598949084767266060615159094900014861382793964552588441617660184031492316174809786835028719517082204281837536630125671727904810703616367505404601580267430707028746085972403275478934402320372550648788316722455426842329203113568841260559430456537342870058126077446995928207230923333580688157397174835030417082421857468747849098641644488460847317573535697453539766874451338876045688971368743326093382579468463234180915723671117304749228789953804544696345334377547684876991993885152235270850352044072808162886647870627088792692011872193614909287653193828305822280291456368718207187396283123866457882730618041860917903894964688313776417921307063213244546762466997275031825820036286919374775031131231945000360716534661479843061790836596671864640557122723124357796284486506591075557206968570288313082555547090210188637161325627200943540292790034251238353906620214610368637886641255262905404747019164564248365586010083480325463630227624364947685170492181843976263234437488061559058962442256113359521165182503033611844765773604620497505434218998593408152848042661697854429201854498037879454869111611632536869946007543868861564480723322860954656156823889757485443835560572907783118274664932969946390568280236017282332528254700733396048303393772994954254158671015425329532045761528827500461002990195145287808224784687943446939984214612803127224735963623851842782807517468396757069705050605922316339465158653732166321838696276365645407281867018410658428545253077360869137628992001276774420297475520750517737885388595068602213619415876364008372852255799934352804012194254966814159162380754080198827927884182555152333840179062943910121762557543946632989490402894429233612733140906159026958142480481528706459312430170477275622695103576951256275741436162095839599873484166508920978812477328284558348024186494307225356055849138325865971702994306055613942391101999274358237955538230701479771274699833878544579033111955983243401975800907905822561989552243825110619470076521143801959268128742196506501036682739538184972717256659459305804789084699198555442432207950573242313080308414392201131849579459552881753937760040591512800734783632449719207058533286183829707428196879509579570775319939964225024241076821141371913666608856874454815614123006768513005757795000406861306320650293498547382138779167884890006913752487388869698079063661980863754748116953138026450695647357179570385359572254123508258683483995704338738354626533320638156120100837285619845259025301982585280995158271023614873534553889108543870073482380085218177822595035239813157191908538465219318199236177451251446570109978154672260358384279762301633201810239074197382812145574043326003493904967382232469874778494810247358079204174383118493713038775376004206626161310704005380928392390014598679202140617693084634727143707544160810109118217607045984435036257468819366691820524566913140940188320023440230241663279009603711299565753145400991782911325730682672302921253606501357733019594440162708252123012093739786387184969026032067219183312489415953793900752796612992501409234145429736188787083915201682466407133701935127707246973939193005617579020674784917408862454863530424903216022469489390369743724021613690827981713959753542103914456734716329760834183055352785133899199521012858300757292208919942181945251060588986634815583850651547201974291644464875619062840408270510919284486476011618597396715949462819114526255858485969743575165048099424484172502587761148354712039097173462661177123903800207005928478938255962886704387047876516600360088951845814601971338988952233919509728680302830520114560386527026784818256315204822774807639233154478135703473626994130124077334787195821835721895263095791453559982487565758955677063471103643167151267870620626930277444858951790634058090060466616800310397756577771574529240827048805782070815050189024736522774701947071279027902741991789876197271393929765600235021646567109349653934782085591877234160030237235199538600260462734510906856916147172897613057475139017791176101803106812407387622271555789935148137356310355735801208341106947548040431368914472693957512560963812382695415956074565652831943307599366446057965654999325729755473202107033438747286084461153172237384971435639391527039217286645165970469442991617241921291269094790925793979904755021244599598664609512292923184757673164634442998898274285911922847789359226770474002216893077606533394827066832090738077067596449730226428159869711418209064516241585289111177549907858399165729270198939679981057584601983330899600789624841645215718526509456949549370632233461756161952246203822936967347263499288896612255884641283065890831118316604256806664709885948753034870230928613331109417508939304036843005798822933347750059311387104448142026834173946344433637246224132137720024418726297839329818395934940752086339305037957074833134096266293872514453522694415554285550145531783146886811553312725927794256819627840410264735795477963218431512800882349926817983328153176058655464469256735954676025474477901104002837784943180322362324378189841839002425545783240968102575730565133929248982564050899451862305992705724250094431146711139243784151957390809174510428892449402080494912519579702484515765882363551490083584982250474299606466275882490873935748290485008875603701875276613726070498255966016148649591759178960171348476447150353222106336680122498042278798368267076696373609648015777406438340153271800672338930036936835993113709873508594551396015387642425136113255751842582586046246222972621139109742150003586657590040606824450643398870113682907181954500005405606817783667570181452458903109194619262188986445446251445919675400973492218523944688643565018307828414760474137450453833488059956102119346789243737957124204889576104137640672648503478827655669690503170528302671016114189969575613239543968344615479270673843055368778605128447922407309769668545878162886242660839558468206704938697216742080042772218673642521911668097810278586499181921995207954624632889057891308434649448994974666786651223550752585563826940178061192675389272116385279307221691278776104432281938460531924268286753824477416092575773225276829152057183409282417199555142244598841609705212705182353907194393511795819812439414760802557286607716479619038099754066833294998332875274548801286280492597620006462667424650707197180485529743603713932117484133922910355162744519415010094864784907875444514332797495281006349803134125146889959736129246682188003385482404959870289902178282736873514821725637863179800073429654017864625219716290598076350136252440890597471733095571580010645778995341620113649205228684022948304733596382587463147688138893517966762589678179931917828577774953132229319946797036354806931727762312946050362489968483856437050754040154587601983372641397216892035226518172723315751197464830842113696556056081593619369913488115488784075346807058691786925361985858733551082634578718043164359964555691474646406085484643517693058715810930891977698562447251949864383353764332573794416465697967808437351507321808201047380577748636261897512655557860308946504383272921789869780486743610257244278888066025768567140185328062853550456430928103087316686062896985959174322003977044672187984138371167704210182266773539430743867054835231998131434536959776981983783155056192844164927611772027723963911405042772032473445524981299791764006011651291679085110405614540939490302375719558571351203503792802169452658658819082414625475684821187013757505133825219232721935992035491978676774474680649260209474500846859825727436141638572537419381789426851684580136677606411920948827032413498674881942851626713116585583628391169281843689564861176261051026523523811381209911245522003841547907682167475639719260245759417038426663050618096225968539489948552566823789882511768080543388630782766880424657999333105059208201095255387348995873765563918961799149746108164019184752790750249056025319152927836165639840543659308601565571658596449878860928513410533859001458485954607950794311141268133492097019770793267612282533674193408491685723928507299876528315524305364106652358657156910299767079152557764481163721511796471329338569591966475921431834337797416577141308860907122865197585929641625355841914395332417641851714180463594161712900862477057163779386516880732024884479594143504057784723497028968104680872606739175463295017734402704998724728583081460964701348548826635537392614422049150958136781443831628858807681928614612471810100992926610843309139157114861870124172189720378375126871506179223320188790215865370270021712878122315902719915303432024333890553080982541102243660434861702048647683126141992067209622971165300659169987979700105203968225916770521359934527592146115976050835577155926400655140173136288794446008371514844876780174937017108038360277615357691166140758492470534142661293353118526319291736658708864206799102125508136829730662553280093160439284410701920568241307780171172682892401436166238848925879493300946029839288301803693950737346846968586963048704620751497182822468420819405149530286897899288546649610844860389351519601857732470128698117204845511565312294377697474501459261576761144551826974832626444012749557579612319078513585352713711435176030116278207655770565587459298145848964945335589318663423344381185652236289303753870124893015442583789157366513117255357407840233371907260727702671789317738021910565836575780479325354398324712790372780213624760659588106787977333391340552754634409731725791467337194509273815293947762849576270846761112054779862374315584188528891618783195058010809191270828227409855666521787050952441291429111761097934932592527231164781011963102176321435957476344497904667633906300170975647146857550038979356753673793915042239564861167339999519947008817884603712916873200254116197128229983082765195516175370813579328309590750382977036822285259075114176591892353779096291366702049025952093866283738324814842464320804442563360893301020343566705281035339027998407339580579394068463225914446881701453368926811229757494621710824815401135648917633797834486917560989549464954531474468295290317038548049414891988575328099019136383174919984384183477368698519064323295688490776668732912899082424428610670925843745787780894413154160643492288161317215684632275850532101593363015926009152737893015665063015234366022200117050393877438941421422177879911594949563793857709787311756132178691231029628758126215634455171355014469813762533641324111726344328426325371872443842571763088790200073864519017549904572897507290884881518052890343090892649818389954973939715340385582518931478202893995126220205176234177062305871846659313390346694588174842251141704958491423396889067507266185473691030957267266290773138100656862236966369851243998775108194895872048564715312994269107620114611237641223748077337057450434255814485022891412039355480324527228868075405066588877998513916366519596673761197521090743204653397142527957586996026976416274878925610859201373268019461542413287894266575823615936243384704959274925599171308334922377922796842100161604565366870948482817295188955613824838432518084318500335217457230455395316738163216529285733241239890337779443008176237757900462457783092209341941100999547980295714855308027283443551597076080283864514119947891399141884429482201161868571213467586806194578606111576541781648057664566518769286128193596263078698718621773202655777683115438035682930155176346844585524516850445053238345808900800847197713370164099838403234338117213570625795497955249651059280435319833373307223075374999634879658102227085145088661018799897903025053741125436750261236832002121173845134574305372314005141402366242806879923143295367153358898840901389138924583109173074781114770804895726928392189685549472533683412122788345634211828865706971020171410819043143646397789824486794588099644848330324032021512417834919115408856573964634023749358254333145909294066342034979670412935868682267637378550124131226143565040688781251289097345324382481962058766785592630986429430077391212194420935543967769420676178864068661755703359592684554484985566432765187590953950065234089267559245832380064676764759414884482227896948932781415144616332188280958827877519135831772304273733249519850898563873981932059136924391009912974968471750189810047207929624147278117776674517000126409522640495146629151175907443420527217053014159277675731510681171555923394963527677863748908505269174316845975845547086674042481901349901187606636281259269391027883001549558796571203285470314014377985067504028469057638472225170321395977411645177657138166353767852548087138688509645129425448384806470602076912472237645410042793023541127994753824730331626875920753097642729477443248241034074284082717470737656613429144965015433441795579915080034349735406398748230956514763479465870698932947162771423663428719360629930291161566196774243665921176788531181853627503786662128922145149573197638330344880910510046046088716518409282848317679515229506863188552684850234288527332410509075420587861103216817700755498218299428494217447831491983537099543291600676611985671481947239555884715433600007523675663570047693982725890016174354042068858102198365915048851017391458456771584477407821952258760239605087940621329885107968605118629182376934032975100093136680004513929334254245717242101330139111218091216385086091917549392316006201133911865372128041294751204629487959423879037458906131223270732299465805982139086518541503805604206347194094013057999248455011922653027911769774570180852773334817618615196764244492728265986382905091334377522089105051258368561252962170885955874441891738772647183145418823128582809798054915989838763310367822770359480727766159850446299837895845313300340971558117227576707040871146794423175127302098986142874451928166335056916860123037215575943864053112516975905451103708320451709469661203710137828075820503120564143095120295619715452292713814478130473217118965853487373635386450582872061785986841136996570794499671005328204854394424546533278389417010539176604988098729641609285143409679043085466674111726345645568259076222230158054784323671320375485546182546876336587641113425403632271924422710643210693117356495711772757039076648883113129317096535324860840227664550970247019115769285639976059673357444063713523247317927090052737524817820274329613612860873536089162861229761755277096061249169161668558205250800294335030490833764395358929822955250353328427186295112270493762338566615732788544467584394924691031371473702237228823694215386688316857934689511738817509038909675858226696717388772307238644136985959174240347297434666961148142291390100691992972601204103967031977182396055604846382148816902197016733177949088753020408074612454784190355331111571348833356510131896553490603204855232470256540937555650022715160855164853708752143293245992779085677294678944209163751614263064411121472267688869413313686118067665508276721108217919558896314892855943041041657185721717918671487933789176943544867787500793192225792567494012992666698320747468547051193512851955373108018708718091708981952855810655459934959471723127295468935189307196903476090472375501027920224039403133913861602545431593152200659103461797186383179889473922200057440891105707824624828798869320382237573845935125512787949039469022839246645106722020013132897070363139773483010953732332741730277618176190316384957144370678309673195311718988033142004453966343044659351498852251866837045531944262054921104605328299746857506574677621293409847674465049834224855358873584861417085714244991386561720614564292519243151393104933592439751592133766414095689642968521958562044254557855228594338150311731887669337068112132624673307635365594688304174026734246665229979214141594120439124386035902810566758320067273077991284503622364229715752223406115277458650455306500041236397095103662219314355117664327907743651403031392313786014491078652596209330243092592067505383347725826854021559448598506249751232559489029151002736717745706218948449047689515529024120661162067151631402626763620689953008889197908104750386024198134315762008804109620068490180630351979327693924007772484624540390613541967045992927221066539508719459159258889266999381757568816572528611038251291938153598237252275465034294141786363719667123061213195710294824145268485444672515616237584771324718270103827888976133191635641217879755066797218302367089227674405186789163984590054504140429073283015008786179275006329971320699240828348548772428228808356919249689920741111220812428846309834304506103110902879620024083127786307395486602416651385992710677643712784261337015407846518396930785224799438531080614089219707269872970423161100756383734922667177560266328252367772416126486407805363463674598223585494626829008177827620994967536483388796520399951145351890989985536861577097474035462580370514837591416033480566870506392678463310534971000006220206860102577874777433168248136998841916459807639298914324737255765069823574101811436720551483504181052154111468187666776856645955596025361290973825790359909471566290583426802621118559418618618422892862636853538817234485387070141799631102132861576370819459929924019859681595523525193305534770541716093784667130976820527360818248725038162724623065151938828370413894778854663290885947429314868654889831867920027422123506788892464398630797912440861889171879428420207710535342477746251750885265120600573365439225522930903733392669517407602751392059830948687103860437719623150907420979680427130617275058291942289899641753645412889518162413069817974721784577126062341065294328719208950333842680833727211237609445328446693402055587319792379749048690209706392367382793804720720680984160160323494640146853340668953419073956053669281114199366717690382584390765865649099900208507686964306538781210906058154955484653875003084425728134244637949344136875663074007726752400046529461345427385479114328565093498654838787576958287201492649559494766760369087368599765282822743906441571917125225249253139295613489781064886507397349747051774579226304042946261609803874747576328558835158395443494055410696383289998256071996369678514112081101947064789041086141871426509881684834658079064948193611422632520045863671868029089180539314023279891102638848770214389088564468865347680055324866452133093813393406439994514600674816802811086132513372738636054492586793277127139903669183424713789486356044905250875560704314718770712043951165611827998330274017810599078472439950252750033887806838108357505304635208807638500497372314711216576058659160447546778226476207645268790031928370425022624843763714710086537396481126539086158059850359566004486997806468086520821631289063490310383604941536513722028383322109554674846008527184803850190678288537898465933464534742200985753898061388503175489820161615711328054963613963830331386440195030569740641639925648275943686742566959960796606780674525305295479699689129205004132175920042846867159148386909467220829298161946153345140616723794610528383717817521003751097310062122530460669575659122666934063798464975170061554518874153889747034236063280992693661545389442553521646402270839537806885728066872438864528879078146830974434626381125829341712140841536648718023683909763930221478401668389612948705611156576882848182885761912812152965581763902681443276302963005077283268821980311131338739662397746689206795730527584572882332594586509314724708601850352847537152177828142356805499103058843951626418404108401028343935398256518253007641367436799416697596859780896152017252946275636003639964373635951428832624314331275461307178410497629513636489572097570119299883341253255072494409521653172854577352697392718834246194533995009211561254227854418645530841801650491009529352954478913704813646363213440384770267150927767606162103823258243659114839455312244420063475978058787558724523766431168418053332408826519129007438466660803008845567762456940905751299180467427697797632685286463072711574011436777987371804823865843057940630362211271171285311060069363490999467816466250436407998725314727737114124387923741697011880251166731226965605887295899907548910286909506985151938791353677283395375974649744460415062125340333400899991941716772819624069212321362403860149935787307682610140069576779484551217146762312069960124213975259440461140784271797214930605830937663266546574464811686078135885858198026844912459958702596671219742679403575182314368028697099214819982894075794228316166513304499040183433048326967603963786361550099369343212680876907960863920429960693555653624505487708939646004202783225952498794998368720405555882304022827366034683242640120127847524738305473500736138319952141737777223084506890775457806098468493138279185917289448323557060517262729101963896212637530442907106580345006862432216875919849847861891113353987968705329842948654637291643183551946678327249019196712315293784741175561485034724113104986899172950219377142686204073116690473029999289907343467118526158188968527033169645568415602819345733610901793735061344352899909871388943925578824712315300570695269707958080299043373761561955676514607010798103147622651581150115723611547047884309931595227290743548864792094949166007316469925850380012489464149638000432416913230526301605433577972771310733525043447883059866755185325260323953740399321003273045790312589793298057191240187435104269982871119769289083730809062563753674551482013654158696519559704612831089394351327222603312682378379531898873705886445736238717330981407186664377122146281244393718424688435967728859216693356151438594276787264810402682112693969824193032525224640860925810036737525833426043086933870508977352886176938862482441076552369236510921232011212857987111835348066749392488343169779912107433997905998579848531830701848702567712194967982696467361186855260191064474151239500472561396829994216429892796213038570505561809756925056705436622988574148325427976225226174142841861101036993220779419317892201144144094729533839218168325887278753116141329646091598393713171105446800876273197841849076808017514430582042047082553733958694234218328874619896436571950055205278574103914198548783383811900118621656931546380164603445539090240724074190233283115935316365647821201708546295111682895597489387663025916738137971489157548982513127338745884030625811748720082435574323783505971873374918207808887511754249997597028628898057574195483335392261560751159056361136755935713131890721959176399738672878191985745488676783040771452516917877144142256294128141220817786238049416218893923386741351881490609528798805204738968427084035952924293234589075515978094576110018097462310689773812775535831566670769899673332333885707781315775739214353291945797053422214064482031603486582518292524555115389610229777579862571841530135950641701815958938084652174350558089584774922116971282942404589658373971466565635844565922649827087128447940899378469224569038707437885324773696632636814527911603653487584625983462617260998671209449792156779138634530015946129426560037946390741769574943392158365740807018924098246164300986276360594833702927216486452674777015246687313167249735746056229299962770585931114221907765857221652052736836184301364938454692170474624301980444627017291315521805846895706121424514393684871003477532473469364112788715329518030898426925296847991408755702702998086355165102366477179606667137543925256102076685689616080903825897322875264303486490113593593259536748477946434567324936651845329676382562886798123489628126071244327061618465961437551416636180714662840160553555210882111482686063413436128267931732919948841573578682794865442618903241770167044467280926862700172234027621578859825780706853702632415794156554122700526308922914960036197243095057703209269408741038770013071994975023520266143961304045539470930198985931447896795039138223837728335705697109570741780566862290543044001101390585656122494220497418805844741210172599313396804511249421594831144830894636726458456828127944617612501646313770027190258507201751583781146655610106569115680500073323158901839714333069848646194553722609236037533463105729154960371462975245881259741713508097435992592819517446395308668693761159378127344043961536567684082232816989078269255024231403044248684822834114426810900500957153078012052688684925018013831652884309390746693342175936853285527376380711608433731596624698958411851916854696577819939183603672377730534347237594585202782686528854989920810370157377438482790335406078063320687268952985168853093172505251008758537470586422106828194686422511679159813936777444758112755847634628568463965750797076158255621753983288940838422477566692727730754970050860062606327337542887844306883555454927134738567183931237976732113593530913430685565192457370240199727605917252905060124352330392951589697952170504208034899232010107211711039106519153463118575105140019654329861761545794062148653688942402906599853741666437388415888494693591527244497504741966359233212921052042786735244566493592255050463011840314966644754565369344118663879316470331443018770094147570194899351788610686491387699018062971850802289025031898786036360414991401922854778710046194658701196275465743019457220513433414021494011724023654323559839376561107896160061572628202413104316388832716488083989401245277418444546524692044634896216844286710870522131989875163029430746318710248164632866898833385722443267453762567015103781197703602652655559225733613323064750305962356224106145882020886076149870612386421487748815411114199729595593746808449118221327082503199600451300534807839458143380817367893840948718435758020523528454413442614231432155693969177048273641329592047124235802129692121055887978497071799585032213794479075154897039710664609587979562113973641000345417891527862396522405767530546074583002203497888752691711579718193909186232412476107192313318171643147473931901013277819571746460753734603392452712452000653910428020273058637003779599524222120384943139284623853953253429117413476642469430260330407697158973880996315048589239618144354151673796735755262453059526363942711204557659902888823094075621528154746750833296342130173360196663558657635761606664332327306487377665212469535290355804236189269463746060598125978984903121474982243154655520194853195612600740730475189404396395298825965526439431381053948802512809506464954746241263205332147665242473062325621450603791772612306275849752027141143254184746697472883016984276885007182766494371331248663781470412633572260918019385331143482488129669512326950647444688394481939879813076824980967605703236199861653961097772869201204029728249174184696254405274974839762640007695195302777138791892843611325739534334488145018244568316955382496636811834874006564940643749926114532231765137656670272372551418497571311390987656910123336117815111892656298721537382471685550567040033307556444358159746591574371671629671674183427342480879189480399929156474207571384668991404356977134835628398600166147288302866168838597106048770573949484276582823837084959541405589180657162175744551887585361736425527250743671378760644393442187792085646670728448502477167476951168206326301347240425078041717702972388953999511596000409465069578752255538321161547177331710699005007639173091594683396763120766373355047881168000859773154122387115205957005398359809066585552775199542059706369901310344139952516716348423082296519171338223665519802716926098433534674879188218131246525680011830579182961607428540229741763866746899775236327777594425486127735093376702739333366489255268797909764733819074335552264915710396444297574466387124174714818856976349494868851558852612669110283359953760867810129831564027619250500169674051315694018783631878863029487215926767094015575832339935262113886329987720322823830928327321550620939954418953052244411093670706067432602245424108607121739592288969643446926478623956550110710255036677088503226458581568458195572567723033607719838815745121673546830245334813235435506829307055881786929348613081808465770510385416433205114956345198984600796862646484781715171447213211188245054133008952269381619086239325522632290279278793876471916748276788949356758193299771825819141913652923742363148312985687078107476311443342704568384564499489784055401885972931687558394547054583660222383974405129150529867140536436122446909415217705644915860921028013713248792507595846357398684318418866616748165134071895764014537048332635793035974558285673198772485232763782844786948417161241801914248273301855492263507918276062027739043319966940063820878066107343961594471097561275554434010083879477049803404779284112633990533686411407182563637341753653074561023075473995594431039817983405861307450613395683124154271307047127920934587719898581774030048624347514382443111108572108056903636282587408468769757150744516853337281203387515847983452874189802367877901988641920276969314689066677890093693413063920511576418335063128861849825276030044014528419960734140881358929239653729018694286975235756098541168332499153623961862800832096257707708056743420374144491254233628973990123431917266408915000262061550317984817853566266458283831886306345662714019932937345781152545351408011711819874712541508555848613671658168740853695770803732570779576865516966989704351495794529651098757541881881543832995619008996336101877421019777038172122057153415304497491353996980009010485583407957096325079342267088044790456128648463165707330515754680438142122397879781255130768221585858040081538100433081648067211847770202161007648036592864375723073450573196382113403790869438407205370153061071287186525924816683997026556719554269835917710755516017248939792455818505449407005006735553208079236543192426292520431135081738003146984376313866515528335204385481800352925547164474192042849291366661559335508745786516172325234466998378620847897856773410161023314826654037207730796192270716645537681992563172730783039425623338719051836624150998403171131349748748976304413686069003174576087367439739517238296710731423518020269933526864878114201030943621684320938298140936788641066180571743034584154604076876960804206708773849583121209842224184798471066567624036665662538237873634607166693890043773338726930743636263474622589488922040202486076946752754616447267072281663258012571113307690048636403759727472197059007091326644691924107764335524676149272778087134741599456426204731812607622639795018580793228135320992541829715462472965735486408436353467576778716109834778014130510675789550564076149388418497221705756858461631324199785002316340463823841252867540438788689764283570080310885572380359071805481523973437570536516098095058123843784743879319880280241624870172577406559955082058356546098875146528757303046413672078655760265335170520101896484419946407535700383948535751242306176745518459619280195598606968898956259558758351464320849238295597386920427700114653693763057528250798287195918403466830516066254967206664057368124784762850946418143248225648508912152406335850091083238571530707499041595700690887444171894465377406222541065381394011447589304554226157184051014402887388186061119850523479511059878549360074301152977719800143167106693298885956493215891245087434183675340218186418414576565127395791913876901574284339969063951282875981074930362269325289529564692831684661605192201655449987889417031951236735340072633098324407627058068207303139099577607125233762472154838230539676549446628523193719637150421874854117738537644417188098856333077896844303390672856421628118329986905851373862219454684094373838604051111836124524336598424400110724522849404172634974241876586616542664168777729841991277381086853679168662959320440502680086805124468739150042338726949319390084313008000192372303649374348290366815074313666525564842324667091731722106716486531267802838642005717677388437323470554250817063641604662947083256740247968690795001062326741062541025734461877499338175083409406077125453865595391503166342329121407087101189613057509100218546051408604702637078712737144805063316970822660183179070836851844932098907899262902986681728737884991396690423866540490608474578418144624787753344865442712827137399258458463233842195026324313359567425099727150653341215402036610866312001656567607854273160626507988597103292524039946195930010058033856701714607884405984993231967227498444090300230286141022791032009533758003938322954921591754635140666488344112036295232302747421767639448912758044791323634084568807863463823997552090410366645076480694530742535353788148819422949233927796241005400671372855294699132306560115322138618311860987076710775099494104173981353194866692862506924961542596404337337444344549667419367704806452449255579801635096004045025121880921672742986664653679009426458835266014883890248419129468993472069097962379456445014188349753180771623474479716904750265717479936181452972716093199449160186848361009680089286279241108824079767746944499013184673914183263934273967908758165589454142563557804505507469690225585017865822782464102112537777091416954691714679960257513597136884200584867053597332349509604009332767358868120524653655979041714126422016895809667483228412726219115274354693688742301047384546037433819070334576109070700986042790573579497204572669441136584626395740919837341517485032378430402858816449714175417031532875379061000760526933584184706759920157773396664389338573921539209353337416394800142628899106495239972321120926863444794796813548475346992714291723903222682773271703189134484008052438109900769126025849746838585530116834856563996086886121663233852958547155289557915057411831714228652690807976723103069350146898332809979709577816515141801340824672538786611813157365572923066706192877809678735211631052122355219021860905069558476193565150746611278430111943161385689871849675975977688928576757708884297032868968460888481341318623665315424786092353245937015642597035309397721014328372008792109559928798043731092670592690141709609714686681778254660584461150636682371458574472449171479165706666714580138544467102904510982799721737573321432276988016214085962478770887311744723793220762722606146528292030779946901770438201039202520725751840389109885019218188689618653994875233527470329371586552202818978324656145868677227237807876852776962575007721493010560374443305955146228087886808732811823230619638941312682586356912385951405320843713923168678513910380768868207249258595564007949329308892249441963507349437415715025522484800452885559096751134838903590419804804783183760202517197351580627120929722155050485671134039223096255699229477035522875772581953575292501437830551746336073118533657393422892477366305266342410687121812673020120970031303918771890904080640292303351381710362283737089047367322738595869470977783249450402359671172636574756415764370501128256447187130191001731464126933528775235233869890179581027922741359436232620455158235764991964064720839569380665438654748021839087686803559811318683239214919022476050403700809817670488448784920925518663014885741115359691039872953563988758268986700002583907026828369151344199789797687261322572734143423473400195068556376578514577864764366905563629273338071177730721800051928378828433590926985648365881063290205477595483696340321230067918653266703629895884302024617305462542349859222476666013633012182275996713507937106228679295508526694626207319069807511174417091439309132209819605383024525450897638728413994394081640867955238559506651853537808795351620831784129400465608523677375326906644771936082448452801696151704553883950807334621723495117715962476209453778051891985697695696084920953032524727300827723692325007950516768452383732900569008718486241839468496190636108054559258316235232372394643282045535080928417780085572263318929289218367758559627271188625226689193068056425364279851651186396029412947616740828961602555987816869508694488225071442586683090934297835155050349032920725877758468189766380603345633681231042891432356684045189995354884632233662682660017299604716842016998563836180611579218901510979858727170381533499264699584970399409179604023443503381530008201356308775167870905662465188359132025637813415763082996964449972942856401611980099744786022188304842346804597108696751299477252177764627557823709302387853660456966884407826018848576313993790521229992245705115176883745157484554188396624370191428556096075352952674560029473393578443773332648023563108825888427452422141617103632806456597721738628057541386499922162592709684005680767989416989582205742492334287304281244881882466823748160475899260491367211640795929935739150244632562221067019497242313853930831233817833358551959449670231516018331979290759857011227421864981783264679067889590391740303488818424557389652315956826380331127996376379667734987127698684325943507032405055279210089572417648411649492997116909761456075872115953289378664962506332534852394154457547824022724732490124450643931316097937201847361623315420427797784793687579338442020265717174146001395414764104926388381460809896246399184350795687458986598249174883650534049278624693561624636878232803671211423111075598478097558524800444831769369249982741132495556265009169444456745999966481493191855709824546747817929667011184875327822342158501253977937436306766986980612184011405857085733208517918100625325593937434292560556686151713791497209442471232971245557057331235024058005220507236894897712421010589177822817800055530328334020790787332598912676060045340262873060337889651598670632335782363030681110326415482597058394649381773765118370533889332942305569536492922400566416077712743033636384076885661789827805114359001334483341297118460311404113805838569617216763028588227580664277696870088625458798323977270996359870164004236405318705816711174493007929108516236270378982247880761155464941931203428747074219154210645490193108768608612384224596480738066962159187123042628557994665370927852810397796396032271204275974031518245239846598480287785748981318263973894856023975231853488038271795735178427910308301055824877275178053338805376530099628614004487889613139344147395461859989461406099437982236289919780757470427955334626528243889220276216383302125582570709504635783689941991057241780579961774948512559811250066066131289953688398958833659561706616676805629611817854264393323858641078668768875675072851600039454686738916716807292318611048537491301881508035219092242323064805748426636086754264167804907274412405634524740212629962287836505281402928704749407400006186778805588547563708930396241427582814160154150641755223159785818768295641244141866885095471603565068077685556131186337106125610091498677105049262822056664395955091042270643974998085277896446880143801970946159160064142101264110416197350417289919693529950947572643280733617280170348964136054941293082209375336109309155869482358407902694298622734754790524703755637610088866491431675422296783074613876267424319661571987606880419457808734043092261877514832770160696842603587024726720160788969493597662561965619334751889909045674474404537352857219050925264957616289019445404223235494487784747334321835746426134145314737555745935851816085545426002606618957344572104367181450940475032362966707728901469264936776344812176275540206792331598208354521069670844245354021589174923827335295248441667223311112950890590612682879171266307769690245100262434809052651644249732738642617471108935356865627283405105502271869995796898569742041288230233987816118573776152985555185772716388403127323765723673022359226343302344834369269197072758859642461573821995161165837700787761608897516140951524871067394147031813462477351280921347652333381118775552631387328089382658914897367581371234249990187202370105638335419728939816195944065912556230984757470647300776553127677794066037749740164653308136057868029596508911966365642913858279117076990497659977679542260655774389755972539959047888989262721805587876923082446758628612429954064564394681492594144032183875252465143343121114611796457490096286422904784199563065191336847190422091580842379714572788621038640151360797126979170555947024293899239607019089659160607295713229702573066110024603954003604207298334404095125270213412435414311066863402415672019053502012149346450953031584034670244620078678553130269744369507867002920457524204697771383235666317639144466065602531048700823340335623817071932270800701635910672512521655427278472361405103218209841993487317376537971247291960879635925030773061272454153668010575527446168689039305958360032232703575185083933549596903213324492650047593970993318320420189998618283113942442298084740391965400894896540542705228082518435353977224912506445115640201230557498787217439411814034733306761406021687693287097793052245053277663209035277520430868421930780267978216714985778867075918443771349637026962762007454035993198617972814121469521863930541005713611724299012663665985071427365386432904473538851775372152338039773089373901136750043474062390151614607856064258383086367908303242689604799980910543136585281725410389368345260830680304050981765823190088046202058323115411195654025153299698693864914940261939344061292128105840018640186188266979701156786660115295698116347252671381996364841343998776182626792934495793674755170887961118464124464631579900806997018705827110574638927525602332884686178939136359362629461964729999988684031477134900232971265732517014490012761344736670523373618963864019245647489865243072375761003686479895159373555231665419769242081991307078525377507930385583471623391779101686621820649932149375345002550120685735079544054099553910129330734766542848845485042121864249441117262123607428058972521958911013108887327383146598431703828342472746509327875767750182466098089168879424115839891582592755975450154362179312063458917260529303168276771272644845402393053892489667964321736156545830419919206711958644518277073098471259720955202844698309442456912826017563742997740445148396592836710796892931433220766821793276919567509041398932829071289671887052731671285862110185161415069856371491944916661246570215332035657546501121762756974696091675846636460876958210624994118797657186820298856687543507817675540160107086780092939162893198006500367920601768034045042668033158898968072164013017344186671966174166527787363855868979019968701633955714080531822790432505361341384811422884236407164370910767498832829512350396497514302408769621009782511810366438016710140241901713608347342056217465326035818104005045626574187180222470350860422634426137636922251355349077080675582227546338812695498739918340156977996944421070736383956095176113238955682666303517537829218985098228072209699979117559442542231871623443796036270514340819940139329440037511527918902513852671071301384264949693133645190444378021940509657809871409876890256914201000692736865174121501874651428573122202788643957044211954027882683433533566896818959032396113971579708310584065317140135479004445332522755007722668512345268248281808156166624728028151855270180390055989236320557526357469092384081511039417521413422776610876740882110454781424736615126104268187270841499433343028294221464204524949865543630927651702001607878867524751046000088379449963225015476609613362849867792006384761965142964499553524289567812899615475444064148612374779894112462219816516980071342751381602917206806776750159554189937723185590580987921513340755895038788591182616925560638792399718965590126006143957554058925358760532780480883247028762586120294871023252132718359038170151837731175595087567756145793413340387101572724717273136758935509405644718549249497494982231428131667538466806821003679193229057093339816069824125526829744248697626000104777749519942759880045468164717892486634502465716744842633452287947932487637847768390271511346284933273768171862790034883592648901254513930169869692301449145798991248664602148205804628949074643645386387542634704466498749290400874986624712535003076940890178874244547299799303212336871733132948605517141760959104600535947361478229599370098834833655993994300991260982511101934104114605427151182099835200105874407935655461661302889917304203593932438281207022232969393336088734229742615413735985680442950247123833558505490852350388097606811589709139361669386754396038725993766924414873171319523718417584910186809313936989543231668347293571840411290772248281554342403457249678014047006338910870529282128845940438548909783236982489418562184795185907595830808274895140427432158950301249209470185137093256351254557711461283153425127551476781420123654673614673249339505483316495738060423778118431890792464460560122238186275730164320237615786774970575379870386854629866050020408577639726960664129624071873696897056994174968415039524218031777675286839242599686708456778972677745180160603937617588416806772803994892940589572904889076543906402188034023771575154265139155347223934229385132278516267124076098625613555954102933172806543744304690107767552639704967283451954187566375425811636739090471696395643494822036540696312715458777440246905559119948317205849888630005501740257343254023051116973947665650819145022621620327483857038525275622480196028153425690405485051211677597422206179582337111057259966329347869828916464709253564319795739231323875877815080216259636316200869798490570546731292744270471636377148614913587694806427356447037523609764515060072301591916464166578491548994028035062335340970787016748936120880512670409405461980570080468214221329063314644030225979718588647664605667731700655118207821630315740422705926743900541426845105607357654879581405258342757387049449604167907974596482181750027054864072242623314934387666930956906235546299135338879517131266737229100648472137277156803582148453316426913865743054128985865554453088954761131877260512289017990611411927738298478239354516519800815730626513765904672482551676916438058361864641909596783378927038309594663491168931314133947088474354525406466110336622249275486843565962995097057643713580075536150230689522051358375958023147142857776516436277667499383329029785518546529999451831785170212772717914756298675930928525805102945235582383173480641841655989468310976335724161791888362369260914344285513650190137722747322279786236305522804859417507454509857422688144725514852442341562633759575571906666497650148393428310008415775316100292956512023240756754965862674672929501831941301068227075886538251357119724340554796372116499271268233586951898071353858761604623047876969542944461359400449252174242490286109586535000698042544341166176560067624544832510166969894286823868310711025476121626978579155072462488619783321620399259750583812515862637709495796226550836200988479489693333066709605366872614508552412786056894635390496368701693904807919314990466659885918637683727343074663605179071161874337002093711954989441862680526435878271217666142503029146845493470928549380375059805288233021944650490779663167147553825134624048931694160548309018227776514349546239904881586921441420515540197972269853538273200877589405429130664527310684840268694242136838362248961711330776561420083399125057316464838622230617562051512443391200933107383528939098370505741046606634054623151453843438231104229902514182565936646436904185039186709297052288955247889325414915628147719475849897606954421982760173980761019527371680769674178388456588657928931851106561055271996512457514128918472110314797546715536213086324310704339628511547285390948255687928710599703089178584921334262020889516491401006466070771493550567925988741083406687626909876994731478362915088568036261731884938026516036152902483424413336663434360340188201761133084444446413001901036987330344946830128262574971258310229872604645535185336556527192536815013432105624977340823912660202489700493600727984868452332178776067718344398094550354784647905764192217961025678534973424234461155909892866495705975582007869487706463217346753679430260086530652343621009090437905167950542567646917731026201773054429156508071387022561496148099798139067719579193456179824633398861162138456843951489168099554235206383642448319871443205286237048220925582205280103962540263189319139491619442681809504430359034312930665283868890317179733176381073860955640202998401591649909014084139268311901596729905319257379525908894119712629959870347692420295592486559741591701382684667139585249389759332395297860336448524207363563037535948821101491045806569400210062770206224087234096083777584267317395480620135772878780236086668276627091075170602781207051931844587921944667495608804114870329536663377051249897757987863884755503822230709681827397262898084322989500430824241104456805626541047356110991751520290678948050493648683043294847697142202784812783698898339656030572985032555333842183966696476483422646404422202080010070351531867695312740412659861280786835864426552039650440935044258670061573557438960360457697083991809978102874390541620272321677354168827192879418798027810230611925214079753465742621578601156451340469116827538197041241292645675609808752098657173795570738208213384522274013770344237423398763760037034671754657469304478584528670575320771198906136430951380501402127410113306913231919277351366368789374710014825317745042468024623177085089089578563067575958275360482212906669902999739352776325819171394255390729088642357909493093140963397837710224116609804219117956667730210438534084918464544187710956262876195735485060179254067720710301075828128960325752661104042697733567460216920138463556213880097400132648721896935546821667881679976231107896907941072551470203770580262070789824969263549101071188913691874114926463619240210393972645479359405260486974057392291282733683816076324730383466802074803021866998384073850640008963294297951436049940884749376544181430016619552520139982841174441335312808199849734239851538382718905904499776209749402453233745385452766830952542722258782415024738659394881873225871867465498381596908058171711206643981325386376692201471250541908898153622238991421766224803957186262413183278313633124566713790621761919932477859708765687506967107502512947779412268880044193968417676182313753176116919181117987756788460590853492029889513018711545652131872236881868349687204909875851996014202296594196879044257605264637314072712801168120203877067755787435088688116245564838736893327885869746684980572675253884347578607194642632757430492014747165759156234041796927007767153352984454858954278874466066016930021093345726508281195162884700917689606371679613101502064822266571247462768960964990044011990984324569263009525735522851262436964809018034291076434752232215840047232015300763090000775742242909113646414304662320828078597088667174065816321532780174489783143479339297364473064291103326152417781623088305257885073356428812552726278053276625931325070076046850525417240613712417778410942989251680156388212870707706900344022897858566773665654016188376046462575276771431220010381744965429728115677379281147209227273203432446993301069922305384993025279520021635588402761558113329052544081311068438848546460968345335025641758734261595305707273046885780523969796869007823206770023673527164170830762811059109171349270959904212167167942545713327729420671611842108684403944170457451348270927320990399885164134227226586475722745749688960315906612686501204330798352624569283573160728780932450946073603220787050990573199422893249453121940556120273848602207930280460795228812922612347817238718317119455425629424560010779887012258601772157992495728805760983774152274699684018757328516369081914166417645632069092485447594806382291947173781973002034836967917273213106935295957785780737025118902609083915638458770368616768936718985076101993352283946980863104422757290396804902621140642408797052112135180470021303699655915083013918461445068449376235753637493815492064952842045950108181807599139924592247590606986965091919411264988391761115792379683569433690968192568671862983099788038648655475496081935815296588946981831632585704201955921220598263658497761841960766603183522375522379933659096184757083345031409784111788484224000349268820008007981761707865102756806876782915368088201950822083495949596002875825531839769778876284760306716908429858003040363935473247985418358892813071858329285924148848380883170648972206686518499057076220405980477778262181342265793741946653117397202730984597559880862172124617483257767940461966661944899620260645151925927779050132530867106368977117157750010107123521972738910431702612403482937740779483429509635686914467384624144010334567315522651734478635089568765377008301708346042308866095710853961274711607800282704349271768133606798757949944306950536742010062045584668805873641734551945837005438209129653651511967455538280690524053758138369626726287170287542347397177090620090291641062858609468245952908194388872669227967064472182530552248561839435598225996458402576574326083020885119694425240454797994139049686954364049962065182217505300760249187285075736860234005424952928521795489032041809394094683405104607654493149697891649577175550631148863804794387278917256356986327185031081431381445384037039551818608725387910541483356278603426460473121710711863784508740381387846715302997462092549227679411826861501069033553986948051352131018894183223794079967976331448130771716755682466905074739719079950740961828954251108225778376100279170529495150211212138036166780394925571780432972538921829679066494390572612214326237538639976054041057180805356072863347007221413288680691305510270055154669255041203560824027010938302338899535998087263798071867020448931640035664324238664197387854036060883576392151381333528261653200875268804309383984549539587882441162124144278876291181356074982636924142881103560489645340291106123245074118775790218247952062887251189214950334232756760072926585782562728475305091964854597168754478240246854610929581717666892995493096152826499687200059066343991216517392313622367170745376284395075826954166893099000491688983045763266346046607248901879611788339969759709375630289411811572324179086050802023319729751873134151400376881495747647748696836406999635544193123983187559638945180506343997153092103626126407977396075614263793153660158816974660910680391396666711762348463697419242830702514461609298647465133277256351991834286527491648814771962335032902877849036110420548335821707564573274736186261669395219464244654858329490201203360457953896444379565869816451917993218496814847209540917119631733467567192850410423561909705542755642326923732781291062884626085685220305533708847226407731103394856855256380574250864403567126109063691580215659043126864197937393327253945602832089714500346561137264131987024376998602943631498458994809250512110158173891705718063545485038544839631097528339425177616098403505677192005909738185127474853563511271253943115439716815241061807937814863205718930976926491241767817655876154209171393945814055712320235511763397481594984424968203945594633300628485762401920036661282715844131655694472302704500583365268630246800342900334503065850830074161793814501782589804783119204713282044514531142843627976086958720078888251606844071772357602359638492261647403017377184602000945061522558681056492525410652861739513360853656040078426864861125737621747921861251809963866144479823472698229128510154647916251625394761162021044089825958399610588017563571879414677008440840210928392007929129224945296323228193781892718540542725173459821347170337706732998731721131432833453404341927188861694423196688192363785253247529673622434094871450556151681212249626791289741080192074300220576613274546443249299805836832341948601680048440083487464169074350084285968804459119735191616627158295047459442044272969061946578067821109444850349892271103123798318171136806800824431992128534301334198641368363902536659939870792631905397212364762732842316083309620856121246467897856118179156069881429371032339691583067330263799539012985642037633174552251875909313722966315036947379827103323637790860824550281406585184396498719662791736940686895638075221597990546654643094751889438236430540279689346110398444003071747281924502246937294611662910966513641575920503949143635473185539943002526507707611470921594653675145019297758994305476193193586999667520741134427562993450347228406560196566800657336673941822262622680728179063410337391999555936663762796653626539664993976123623158029701204107206477473345330633570005901815220260982810729273273479577507986129733335895871296971550685961474400683026015978467898015570901659240111976286744044646374860583687527163362274349080522582148625907002044312156728336154810037568358252617551807136625674869078433888583032194300580310057080886912871891571313601455875760542030413315017973102738038826939015290583150142347783853041667162555489722727567244965865085452586736174712651364134726435434794453746161959028942252706032363879470612724552215221879632632782518152503366368400473745359091289640889274897095679405441360710895918430713635679551673813600772279889118730313032910504118208769355792664300527798086848579701353877352733728133622508871386848673702254503530327289653357022873427560487260699287980429710361174039249785156520682118186028707471266869459097300218247239865114132491113109461229445462312616229053696099147590408211209025488818602483454436325136949089343221833099928572292697353090760373899439178996665600272421844506707016447746986159387959222986097196342858939276921517162626721535950913133372442223740666524609449211678751326235018772315234049600386443261985138048333974089912419896312145007974406621657947756321651140827885012382145915557992718510107569116410423186189213379790396098234129101564809383651644768455975010468071289825838462138426177739064358812524741437283600230703920279784472642159307000378759730465953633121874382154177421931272714347362963882267285227619025737634013761379043137574962561886511147798778524831723140211264679525488690050393322278070719924793030426297279472639386220766522282375610690623952830904865130549328015454512661712813418790246030350574162694122754430639590373192452251557254944681035636695060798172998182400076224624915998597548603782471408688590758221837786400060722166120159374189713232480009406021350306300037317619737634789823932901798438662291308224896658876510449636684218056144222794826019967007524121027640503716746894852658580034180372315243950765858698184108474053440470996634496950505983091661769351095603718360576937273362561032918416306972085934423996982245261214326704790156594119549795261527292018876368872675092157315501407401100878361170692863306255330568317452166257436843514367921701373200572622211660840660208473865105217144339534453219593573097575065742842950590410809923759565088899481028156439310706960378736506634281457275579590241441175904766443103363087032620379749167261178824475141383572766773256778194688189872252228767815814881696896434064806795393396089065169722675331991831255707845568448251024696548277544120904968482028964663903474075519489343801477255309413327737365911848713905229420797979172796910625244812461125330919098408204660393153616245442233859931169760177424508592647001712013307231142115802783165135725790095263407365888495315063502182098146348187243957137904948596865477447944294202257806036290035428969600797206584984831177530722332981073346857011849096712750578390097882461435742287894880558894137175894952891023266983140354043826489372627363837409824712274666031068716232355598961697812592940454064743815040386843883805484950295306667179185598158022000797258300193476439205330612413484242084799337352477702319868330061874099492035157989633006444144888311529600209430384262925535826799180280836450208247915926165495662576175194505485640476912400893064222839961757801384413571405080581722461090437376451228559427878525210106505836497626210431935126585388192703704488093017621683697569808787234834692856159523799147722787536467396517377708393771404104515779776494924164985607091349062396784199801546548448851944652759976599885972283117589407070504439589823461219077510289045933325371096762535461884325875774709604325405821653651697413212204042622994386172596859825629942652486419210140835139346628568048699730843417811478053602326503549316642674468235649125730092432113918441691261424063591221251601585116489363705237859821516889840209826260128609835063064398387388914677608205493976972434248807645956111337535890029355506237116072292523728651254834498961405534594828214298631490885313225096878686954202674983904183759267336490313162156072302038309216084975003908188250112685262326396317788421855120101498604004565449120218634845943619792026353892637051766767220216029902269725503746433829050195390909539948221021558991179869097759259248250326313805225693734984061915340634249537326252964757824496063367636231745446223401987394777907941508762340035966769546811401627645152707468107143592821607813560082299026033114394543228377233995389416942376556155855800962234527956020144653495567045408132838776230785101410639302289409747744906897699217598867777973751232458619287651159307928254436709317174488047648063531654969207651097838561293113113366253889621776544697293768833217745630463978551932964934001570750259355718496213695644116048783776849681714085710872317459066983028536382159302096746912831943093214178375820732844269170100679332604851110745535288232605207364250061126808450478062593389967475020024246463895541712157851818977716354991840282749806973936688534278855799756205788705735431465985533501393042106282423283882611582183437497743600671032082952796211321747692325449402324555542381384134975334871879860231223753001961305096153059706723973670033163669374949017592057163478522915206810997726093191758215428128534333818365476782169240490343739849064849094432311412116062946571470434642604937991540886676233162091956815042728472628498356341451414799278369971526259007677220505174640890893810623774289163450571331815396570492117444010891025470553924828323869587655519098936133637769307509825467171011298145860228116129408638689359698747094389705962402015696953320590284288590696222146720211365828311897782371751017271778124238775871617557765488060426860517005813568096872196072458075320290835489749088707435470605923361508792498413262151882525073902166622041167960864563276489356809873820249656336775241866366405636734315793262893828381142533840955953445285718383299958034772049506644570703243249451236872644437007937915826849203241082447841785208401795931039319183551193471908922590637340570500502914046550053612925311455556862666515041641306384499163507076230777481609114823141314872588626479785327160869785804139205351236146676564466578030800973214656174109539582627980439438310436553037486362936226596077532240671841012691676537037291979278418791061172234726518832601471157045330860672436101837868410761045068764646004188345534176099412243640300009336779789894650021173923897680608053153865548084834665627372484891885082962043320552405552275408052275427050327687850024798826200485486552846585359313647633010556543407029479477979880628612157200317079224364002773635693093974986591179482275103785818820362428062238078943293578778955539150267179733761869465881779280927477973849043922000485149687964489599041405831441577974943803187441899366128673726926971541875168423747717506641185608284485755047841957161936351958679487080022889992188740011241037608820302750991009134153905968342821808898190717887513571038739668725540730974909070009718093053443248182891393977935691231654916050524195470519062960329307589841127529159812112434444497351737815118721855476235903196027434248212719669689165744051004567541908982119606557480217526015249634817418751364981726433506425918062676704551466698163165357958149002302841161878540636919790304303133010820800427688727012057221093652046908331714933956693456328015901321732990178257220381012597609914258141165060612991509661328844272192788263809234359708904819895585653019285472139246113655537119974464274721567397967768042839746402608356358781821514258796478137790621104746885639162971900481166535114724498083274152634744904150674267610365985379121281595966311667725715037567086193213790925235846504751608832599475708465663241187076961574627563528010105948189109618022221026641414468347034692280556705524040968383096446983977375287089914696664828814461267867839736377178739522676576288915461698050855458350776710993823995922015025541497750075383679580832030075829903898132847434736236583472188554586667445224655186490954491836979385934519233398281580337888186129630901924117065940593522407075250281562246588774331827535876427635434264259014544860815134355112683926328163710345200330131951630552453860738852928501806776860353912390255549624901227476701929065146125503235671172429917362374630203557606053471307278060948962466626976739245485349361392102504317397100530586369696707491195359387359011812445852847033270462117549265129312447763677697790407018927884641643962648340203540893378297932677171141263768762313750059997408798136073679913662274506075582038432179408141767354195406645331032004271448301261185689902170597625079393512423131387544831036589675510864929298360716088771983914530185018845353643432370103409465616350743654372559165940782383601394788151921077941614357233815402850753238860578914509415241446793799014895814800323805097185733709005981052290649011230098336943885468998777731890752689866178088148379963280526911747917859855988288811379190300079188398538146872352548328275412793123770075815964359381758649753289279972407986569053106160393604506344649004629931827697372345575644692044695364866319631163222956240550575780897167349639467728692890591939095748911920167184890746729112959667860974623231600295072140307012287783300669288702656874018723981491318490927033745508388959757795051768137741346860842451185052023732748371248865568270289620304176152002991742409553160870664262908703151581710548475332933103566559824408891892189494767014336359660011325577859574323081884908458900465794946338942868454182205530532173312344353323904229802288700303775081477807173634758591684627515352435399423828183529190594050607487578637176908162903967921180594291550313224138660854857955488880314899863347167101360286162590792811085864331622050111737137658088701241307905104242517630298871644555439450938023837869795822583988930808229679479587506075151786521357060194473472673131286016575383915908398915970295276798575379865227699565999577140503087992735978828802781770276787211390777595120454910746508020058711659789731967961286018311308904303469863959751901535116655083015911308506146150357777669512074984498950141724406071690525664249877572479575937546601316588829256021041750370051826816771362556568876858522100146722965872709099702550657201382837124117335330465232705687758292499664945458273137887961879600629116712730589660453789162255254540801238450522374602045125052683174297794057870822326207211859618542071144572948680610035942124859813649280157106916062562250644382505635183037918198870748435829963681391446368315774521806230820018274803558357068762281428138372780083781376173640959055110375497533166261029568977713629709686444561685057805791095538039277375385949271875416104191388032741023129147574934076566356190566250279473896862520846061003803550251040172962096434855205690585893736188335520813491552995348011968370270120809474616690537016289100727942719088206185574587031637194214104162002151900962846779197645762792775236422227362823006641915175863199335660196613336998037853823056820232283575034128270775272098775449072857081194095499937520185468830861054802094855103647834933911726861058621619514582462020812847059205333154223271066090954766766425818798921343252741704555314823213002359493764166879207775128753320519508929512051534000253585691658729088778717871384381224089819613524589342833217934402032798345602711473834767141290262619959668451994385140249786510847272048541716928891223082867218074108966146597213092485100422686473836324411968015909579089780363767776605471130834673153943033466465211618150744516770106243843426157998109988843870212648753677983173244439203578119309323009631120788430935559795265791262715970895197098953507003395011772738313017445925638682655464499491860123780562281531080597293521468937863047526862285646676477860150359358455411242650776592970196925836172429586993726223114254622142309788676438722512822038841640608579062540720346389441387444003984504767053501261547741483615950344851218186837365439088165743770532755718367543976654503039156522669568171643088564691419944021173449615861088758855088579410381385836843715701213018122713628478510897503822725769058055889642355521907207552007188826032517484983207277149438991828692753215297069993208492111517007212644507333529669371335756430109287434798375406581282454335092326925610560230237773250308427178223180567553429052810458451437929994951443232059760629598822840040416545703051283041059471186917124562902517247613773853558312748397772626210887933748615480405743748158616643608994123343559087880683823174971288884866834263786432462417801852162567322163310701284530570809819557832310274671646533858097792489254900846049448240211332019272154140211803276134036225604854518873330727483829215545675949116018080161378451071946214691162355295860038829665402147287268012260388465012839575540190200044016102556848765785117635925738706876348437500387955579380445049126829404025115677294306849669537753071382986683346563796898578611895921501135974455412842209100001101663011256750749258175917267902893517763336133671288948863578310982650281204499509889112619592690701207451172996744503759629993791398855598105614289055047825587965196044733433959681937654771612817644227148267457663465463648704387635236868635739266285421651926397530777185114043583904493190673877191703432195682831412159021043673124671696393265776674515962994696786177084090474437289002024771294048629503778238529146435986360723172523447572933052856623532785938023514083342625401585969798217556985176437267644913067554969881552224384840104669232319744050200928790695393412694538053889482025697497209187710243316041066152188619576596418439697269441650101631926587157101775725226503507427670189975043015512470508423265610020545104775256864076018516922980735875979192288642832690580794590753793920100792965720049078124484629255406813580927101158241948011968179204331686875276037505721828015823741893172882578106147235817903312560418738763925741082343294332482895006354862325916771490652843684872702908101204427358716207509080976267550267513034316023411685501426655196355136961599786431472315585941584173001871474357071280619501112735207260510928225112289495297474524532243281721436558867530633660739634826549014740516197376997585557337856969608117444464772367529068977742604547149448840099776015100761121588324835238929709355393411272245069776122416087524705754895383622474523471836671465904620785043501585002535179015810032196945139924296692628462702727568440687865306682771613241521287473448237931550661509454455141171266548670305234217547800380835409902702264766624055397313451603067219327078826281060197588863513412016341081110514316950708434589890049966310911166991013466362383328323103916858133627104079717499370059212781935591800007714597847739400834061816365259200394443063685984135953627012857217871286146150772879477043839638506220941691680482309786649295662018154442908915137720332602400803949085888518551736738508362698946976572622571200685785422434157671804345383276873522519658239050212332065743958044246132601099276485071374493703373188042296538605204456336925269770762569435225551012296762865703311653842959624696875311720479864362871069654478382367917085405354579753378913895527800979934375761043096901567243426517507746246324426040697665422530939200693714347217296253123429325995998984611139698390896634929177853753796844248817414793709155621519278302868075562588941390662569810060070973499837207141823778189407213341854521307105387355590026204235831513429652043733337872524368819097026944443450181942597555943950567816733419996638055838555474175889536672758772046493971145252102483949629643947197739703697577159202854778173487411799930631993933861370571769026677502016501348462304517551186072767269452133534219714945770418768688097653958383792438281096751720812369405411402774878235984961593138491946604160606646514767382183866781432436624186244301713574708483892878018852134042862621226303277016145744599955853469421144987960324825793615064405657705293705021198522660272195988078271623090475322571145969397274636852426061991185822687206851184101716517186562409128355226914074565194312765263972673092692289885551133160667968404345763912978992924662226191921404622937361581695943290247542494159752194167403790701138181554940340277146315819604412058563544893587918785877471968243467553283559294984139165224643857383147372413140236088598047177506113419280660253950957124457838843701071240977961061742204367256234656285930213561958874323420127324625427179708471072463324826595302083957270493063070497176636269753824909396174640668447337798096732065739992033680319629791454761911746729392809015395982615179350007611008230438464199542959346047947178132672982574194318875631655829739249853223595859566992350359164477760918094329171328474993096451153200698934277661178315547418049968337059622893122599502119353859429035221738545105176764985866885809074315750205244141079219534283811451045238714623502122862448711654899300058650642755802231079280279450108925517116444654145116430527798445249353236776930001600592592631900123527882293537141607665102942555607454793662637224524968889103830389619954573518789637629493521087176326041236836351494802095055024536786087031912270844155728773370595091655341782281875059423133488756885265593721729720194779445224214312710789978328816997549270205407145260856697686042405641424371615455746485560244986750872299806407310152943287188939190846310554510621983671816332278017123182959021049665910477404698581762056735398206217561656045777990719195821411170449623279619638283788693682084462356774169836370822308166035184221680254620776844205805952158325379006013989590665143374591755265703583848966545108574239968079343223760229865960443250230649868960733838963684703776132595859679625013930423568481114872488494400841849400287713522656147876296178818195381327150250875577618875536850972875572246188590603033862581667740090637625014764003511097976345605212029991394507623402067437146462943759028228276952018986386751067304313728934051979828011352937752749206104066902439075718751405751847987004808604536725106353213417710610333612707484397011586446065522873521686638011492413568235331390072297268033504493533033436645479334095161332679777472665211116430401937314522383441050993652563813450211346997695124876785727723390345805121430602462716994442274568177860467517371770172605527450623646170693479091690494818946919835610911238170924272478687394393031943341792910234016147839728917893234285806384206716559677272611525101098288534449231297952561803168616748492400156649830392500918000980320809760496012076517580399491928971150882827637684143300096843783004063255197691565480279600057137949811424468287842725923539774867239925899434372763988354494422206010134361767157179403728521633967193463004030773345990172257118576987476853896294930813103190067694128316935145936328850181509868536880591441548057626060480688439597789267833245873303003675732172229727263384829105257375545703491456686588918832901454858199396234421936449241526069205982098100888191390354694144414859957896866101665791203652563932292643853228463619408131598567421601777286255403985202397361274914532471735865225321173884287541262585082345223431589495656236247014625318755623788021504574677515278527895823953427564797316917287531817475307969923388836120877486144487530047221458168156325775112260683411496269250594907780405463373473340028078407088449478625944972394209395573486751789915306297901687743406762899574527296232466142513654333122537599699327124427031651857942854282787040853002278054158938260148320346766875975421103078815238205894117094680016233172337982901696727315099859567295531080410784176646237407478098136888901921673413620975852253553156018449514731081459065806364827520064643458893866479537552104430819998899639017360388150610813263969118417160318716416181136801208015609797194509124797997751976227899231902474188786796158732348064791091243845538444333515594573795988063829517677264952176724645053107658490243285593957464975353917630534632069389406039171378402224358363659331693133807852894484651167177422280950656313482687375657195919680576072256987101697267978568200667662214103967264488335826135947081332286920105518205975961065336828863998357743441147608518046429789669696020283199580294559406694804236600295388363681231679091598532844243739757638608434757868551718723256231116387588392232224533427574645301273645387718046446665112348539256994285339339072783346882386200358345354375672823991409636645390183571185589134407776764969261198393017749096160312472708281253834827923358061647241518400765499120891794757706167237013160716182150082722905086081861892793084492124810837632599699059554766198266470170310610059525533175061256980739294254302850353277085484988402548360273749219687684100084616238039856597540975084243786758338877080320762636967255729273188246778269229484507512126280247522565673741947504177785200284913417605538367223187138030994210210079293708465436642229972925393950765980385458458789850973772970222882289372339351785701877929526335467468217820208139850449724733891415243102979558220915228905968286916520247579891079984127452058000865041349651396395155219707448131362745400469823428257210552499402252939559576510391643378722336729855125166071507104344359396721743373294875583730969512750820513399830120802744930539909777476603118378027572642333948393324971794810938967722136530351749032919852690556781248636462379537788202761221078443233647973560151891362414853086146083367340621561756630892350809463937526510710875150445316098576997726533306213673852711955685908816520950364952858471548006316895220835580230631017686096062372501180622102948567691629278230167353810899744129590924133016157275247253495810985491234881079705240299046523877278694778934000557784730651793757750402539945449018361908520108715167657894918244703725231438152094623558109110882525531270929733073646774452180928266571729415658203166961645154942923560934545246628282543806266431428057066451475533247072033011560655537141410722462101594562926976027953529219740138433918988319024053379856391775624718652208755273642451797403481806808916895303891443007014273353764146338272513356498857325525823121909477870435285165838571694868712330375646937277235149036389729230624342361771127279761767061770786461392104123969708300928639119313036154138583508681060291886946009652250607689812056510887823717768416299725357171773044138322660234576867327424402824334152782177251572623187044353008493675264454326974973963237540597087362572077785142671089743467511823348730657457111710165760563762736105044787486808232512317965105419529718127333543102731787926043357823439665842088976331694444530516465068936937619436149472162640721318705124143378720107728654562767831496550436775259868926552404865249056742611843709026754914554656007232170081440506935176850310537140456520402681852832523747628231815049352100295548184036146471891326399318413930074185235370391631607768729446892200102141109834685292541448350604131353946886316029605670788280597068010146399993615000746338337947949245031531489038715586728202828407728366276181143022461041691558394470822159533785210766348214174519476026672606408980313013039957035019864673674515492660296277079906498179140431127753587584389217143304831477846829354783658045620516730860102207450103645700283879708554361944188290530035791768024520282980207613998162953163061180715805601692482823718433690877037121457464002201101545772268127800662096894726003529517121356948114184661233520478885058096232989139918757801745576997503135533869774656108771309394775940905121540744674744603786563171128449787924281875282011204415617535129626483401535807550236381849436086768257543442293263753960377208623382972759672183926261380131641875094541972238466377456776465923934730160408428777737405246668473829444637271739650009514881262794071182083851273013639117332238110102912745635882562398711433248813919059286732790352871031769923808168932285318495706000146390060887286956822948051859438250769181734254860982232058184945557267806668017458960489216149581808004152540412482672487007327673265413261630844607378295049150436524163693810509977300264014006172298688371667422973963972554915410170656460571497959787107069551578283890264929058811237531080498387582004222314157419705580469043409209727350971682301054668401254141779522540445096026709683691291908926976448131366756714975334984803650180828581882691519756062000910559855990288985735190189324084509406603214175639956022730033097846962488748124685342847903040849199193077284891886171269408388939646562879684724843862707149388451054316472390957504766346630803500349642605982247239773359108248554067069296926303952032791587196734378337500999575272313026590556810178235018109074613262067635229641237132978550571309062343784918508663993192631393064919241307544257063992541525436824207014204707404498545959496792200706897753162009084921034372235400658591625281890317929485547675157204414579756961182915008669667689793870890952372685695779532276930501352244798840037375736624864870003583648170658419519947229198013241745099405283925475331839008960631057679888741849429605438070921006746288953597691743568361986069265948767921830648140818583099704646300018072505735091083835991004167299970598904720482282770323900420429484890832060582384810776972369502508248460192799189460460918706775422921975873797708504120336999399140679369362822253118142789983667199809201223296457231767905367715957349463538255637204051057581689501807338130871744477055182009540249556686788684652968499016012042335281699310985702439011828391408662610386303314739821003506634385380642801987265161703864478509345101741514619404261385225474965960832819441095713658033701322010489693965045610603751384674059908165006847529052414509140013854294136580358365434843940728495315663933145983009557960713569161690743513423527673724377901521716261880158622848518298141021729215804813675444856226702998282290040557160593422238079204271862235523050911323386880971145260598997488394429526498551544507055472737767002746484550836579980261340284237752104240543341110675309298858031241758192108685181151843447058604983891051589858267151408174131474339579107157954509182561831709604813719611661552953483961856883903948273490934449445252458918262084624957859021710925522930330784335460844412337708893773246440238026941410001325241117595451597824155406696337593546987350028964811910347574645223432830981225719680401771488284749443899171648911101324654522011044509571197361197377422627070272369611458935870051175616591067128648924681951886805822228331345300709345124610462433237726855510403508022593877267364593212486594488762887294931821012659105503523537229376525145297075284053712866810218600597061071735588862301131662690974169445719990520803174218942284558874102475273372707714204499502412243801578874613151792662076961689989299972996298197040097357793332762354213979893450557517753214435210366786470978676202855444257697206016226434733957523397968187790751086716578063386659703182032332029303798156758916223063894453955024052713141814204644703028651680240427590981824168879145594257823626812504680939871160458289236419332603729015284359698292062723174506663851949629722867204270368941704644714728883315388453462405999075679454943413309630127094352256729065503415631843545603090581499972687276235293323543211154254429689309569405313695424946752726110722282201371345814292571349604346670685951209735031144369240859498606735278997974033464435801354403658700930356238452624885754913664163919556303354781173148812393533092725809145903883143984380454583913996344065687204746752803155346583757311854146472170446364548813658445841467746805119945285036734847330159623769044257412535946731816952086146895843717476546803948154262717310040848573865394513258314149656618421830241782514360171707228196194092327256759357132196336825382684853312673128123346678199860028438991654298047419395602514898895957272322856556485895282535348786011785261190670119838160709608733751221093054016192798023620163942629244589571617428459277172961226154005926590600877290172818285056863152015273405952066084251171343261678049278483323195383365693542500001785825287213998187764430569093722522032289151853122792931991599849502482205229278787353206268657389742565217910806308460277115378837304020995420430532035190685830284317292200436115404802661084667821273783531040745038909736795535746051690008496345338858042203050190300270610822378479236294016483317283405847414228506198104284989313216182766780724049134036974652957390634876400799806502176110394412914003534286908378778489504737971409465094817491023484573665191499350676184086807832240328633475050465246033310917590573453703533121955294141654718548218318806126499524825565832105776210392613343013035440193104064519504485598437041686241445508116642035497803960656287093484520378400180982162018629998267164078288620385952552304814770516741821704958742562158810970768016037804343656827291902095899968055131568107791384130567687759416407003910015196940445451475162149008444583007621679121436902875957447835611882971513418263205336880738070214195385487945750503337572685268221691872637400888107158557509062569698606495152515074870050344227932974146879962711242538172541672301441828814268690964344935158372990761315402738770926549237385757354042637935954658840235494450173439529974599132593284426329561539641446439338297902799892368543426049782493089648596555208236178632793688467551790041988630101455127142011605217403554101969215755131829423826210101093751001410332245912071678715943499963116971703201394610853967755223642118558457963150943680423025518874447192786800840843386071661064568390416551719276780965480755968655970449045523069480086595583305529175458536514742994477634445760222140810147995404294596954559827620754629140884660124524590091199672525297354832107486412927990368558398374436189216186791853423979669020338723141919551255920662377569741349647002117067026377385345124039442192115626093213512572961644981891970120464557348094398488796123343654589861157852058477661022334876579769871827396842354341654659396908206439228371288966234788943110621783322565381911847114575534778763503689183939652783159059375954911346598100938603070782263322145412628852829514234467965256476461982245488274489749181045860462524012947189384943908264563570994098095814668552427020550171229462228176019933209560027809220524775538347037864355001237937756650063427208680114617144704351711913034351417277890344909113309268867059800560636391470453240112798417508704632355024603127588758370779090662041743957979549181284159774886600281807813987052855527401901882274444726567778021021365591569646727377872546050318095856432525943196382538427442690178420508655515409059904531660854973550695958044482770071840617162276035429172141735606891734411311158513414063579264678615965640273400487504252908537027706461191109922922974996005499641277482311092862220114749556534749307651546934598924334359066459367235358157546161876530374962152752521016030129615236311387579946303144319315929267717709948619519637132030154346519369995564940893582072493024801263327746760932552188012011322579154811557555372614308304482838273622799336348224341940997876261466995930729308309391883854464795322476997468771306705376514905379113737491408721777359154207194847593841334454622694860255780006249959454353419329949385217640820081271591095600006823593577423384244456042955774426286231771440961667899447914946989036258064929405571869084916168362998404362778348853937626714585198209501376428682340801083376024612683184816097189174127136453436422805195925205942611238160681078889671102805414701922859306050467982866075295555168595276507680971880115535174588781776846199628418018229373927348385005952172694086550298937209493372560502240549584786910246645941543316986481544876428217520989416490923412101486992710503140970000816363100970000308732820114893107033085409263694571540603512087285884971589293277027562031985808435910657692707845177768353311631082435226001208077335920307252933741819225796712367377231530230181071282340453675514374005853446804898839380342309722641220195997085048996502395520626967799215592984050249340960402377115666380188345179862847561479847087670403444438051059134189365554335950923586564544310330085728306778460672738901266273267125349555828951775772550627727139830293713066168717405526669372640105953940134324591564797344105726333910466984130268048698763967900306705962387072448965719135304129595453554939793863694425192506387124088891265777709064284188745965274162805318022719379762218764555888341962029866681746030737084866930696889130282667681821265714695994494549017409939666991060893400160682033746000921770520266770366177490623002299290874480211158495761940271779062467632592189145540947681959171761587086435705953774414376817975905795511673439320692910283456653751664549906439755707979635745234061329267216731792119548267647867468296832843595019890960844869946781361306364381759750311024300583751075076583077988353079288492287105985152168940377672804777276021923468688157403162951518620605430567311890216922167287425759100498596712294687077860988861959492142027118954945784611910343814763408172795964174148724702791487823109924702437187580676720442046881651997291811978026702070862600149066870642127536109646782260004711196836621308847343860396672931449077171192778705144210596993009768872991565989415078631713954797404331173737551108545416622376936570345298735910071426917235959471814476276323583879796829084195118078937305988554425364603780014059902520224471990587638107157809016949359914093154241487205308163723482336458961572105277872621470309886235085650083752075082248696117105803917237684176305884014922559871938926445463208290722099540128647155914460636335571838065627480656341487766499901188359633677764462489868150815275736778924503479930440897069644683098952768437731824491485162294588084300443413617720118464495588663882679152726173218093706107659705259646125234520308675379615236120145809753477632404038227159672345974815505668718892672452868446821558873408641822010294310974333748160857562754734077932432982680863210502810369213609178033077903975826018277689133810288742561103195670316082617880230601511948702191648965569409341886797135192480649650077522201936543494885298584572737086680773424733152237239690281911740789612194664363406608769574988701733511672266848843364822769370282689581047105690135546760215969935131903024832986123445214993314731593299297750127928099496050127684094456211688549653961921613581935358715310261443857337646356970156429391122887937866647356272630877978574439851965442677888932113595601463801233059788935472568556466624356046961037805774021663896415126512213278678045047447400188778770181914292325107660665182962404260544867494567531894352501132825680569951664047798377092851656075931794284189060390196048727399213484346151954093823736131044232370505945536293476946331327526338218612876412453649609993060055548823940427609614175802954711691932323959365640738805468884828664239444655250213179485449854793797844305110779915140897837130579002904949722106326495400542906163961198821431111100605796232556616135292897161323776652416705322263728645988984192565414616505565148095777025651981148186174134631884755615542921729591350563765279008801277915978000361366213837381411569840062724425954637375253421526026491556350615028783593449551529157216585749435578386687164119398235072770274808974110515866920472359894127047210253564120852560102220361256744229750442801626741588756883348075231476026383978821514443500082997865807929638370149172381425691530351745145664911538450304327848204276168481619890937476336115458815931130785337035001571971110682615983241648429050755207922289363212075401447234434000318429836372087518980202319223329949385752314109026209061327786239078271419944154686428874971521952146817020494486699764715870088021911122689935807515922258010017116284374116536916261793990861418724009990667644770121855468900827515232991744336316653778059092286576816454937224144333805287551281516623358298338494598673634447136542081408859534372689938116587499184269674922925887669568592375188537191043172680853064518515372961039544536808942924149432236386854027359365046338141697572320361042573400571535710012721241045474315425477605257567695804656695863797961417013294387301215016859237675645913831941604713387308437939449805692746753198726007380706076333820874526485014092651422760108551451531890130568849296115255239746451686976112702231608992798914365460003652202313636915621489346491293771028964578112127220594795413773286363052163512811994832107724379934187686400227889888367801271449997334171011849017358589096314232588024819443323185162975444832525600609100092390152765141555279849210980209253198684973091257407157147564304668549919019909893071928970306724019122314236072329815003336635076460672605214659122024264126021392863322039657143722272925263690435211555073542299177352464343033665562770286485815433715645585650492902937083923482214112350055110483095360364907710403884204388900439636103279345093934155968619372667087342623348630466387473700808474402455479705320620854896768065915846535110925887063822383308819845175697923731772277075888041396709446585982954553973629827882583720525436476615813252710249887619920518223670193308689048426247500051936566965586748651160392139349777355217797140512898434753357206204793248050151841773718692060462474956255614517726222040284488743206382986430522767816329346492801968330066857026223464702871723737779809604597464067860408611992960660164158188984828095149994578309423342905685936136887773558692977929443960536985866092208806059566768149123926863891010150679230722728020950131943646202245635421522110714146014019248945305983956575273759114489067831520911409524906828015820803959906601909472309642675874497458540294932326721397942493876908660095112661809935406580024313866558161294772210311434854111469107394280026737528040823185859964749940545856685581990538727390603036649278826342994135773407608055756856436972428743079981855095388553597332664231995091368461810708500369587427804834976323364442422220393262226171675345482846831111000654337572580681096637533205235380679243286719746105530186271966448993259040907817564578946942331211520268607929574697207508087005069425478614908719226892204674744224075923116869814049904593410470004489555105012647069579415497936548899354430183086697293230307002294813222817923298492943296975623413545534182898703123740112731973130640575459227988537619379902627415450997027420360116268834774462989392924154349075340237647957856638738237218037868197087042679536811417333323899894251135747568992465959357723076408846777220754378441271341282128199789542422300084451749046706883502060748074005318569977199747321947011257285125487222416319444706919077837237707166499479155858285069146320170998564338822558651767749886552310591488223087296956352614880520302248320191523434350029869024155609779773515333212743815519405147118332076662829660073479941570852697725725772575714125628113396151602456119949840005984439978364694919540828058176381563255566494133363075197912363566405860022446862750067414279047261761200144487010610645704403110809747668308032346945681567591299759811482697894262107220957468316177371599101807954289934018451322313361082647938398788268860593086872158889864718663181378318696069098375973440127120339964072484929591938848813759270318456643447762730051544954470618933157116716006636660860322069783719937502308793232666863870658329860852947944303558657746056165184255415223409623326894683623582034167379505670404458481260561112769208496106551158892898267790378658236236483044790305267703989167564252823558402823272049038792318518539331145633492873965103566357705183749125636154394363495141754847184083109905707243373366044264778181689516063707970611892547837506582320958115258445063328284640064003070697315013226150167826214979323700008405858733765294509603225769373776317544700096197852920643899250676243617868025634126701449870357790613073152992357362664740776569001200453279158431785053625752376426854414365719815553493011225816915320752486570102643613197896538500220836230118650628581842647476970611446722908989368352610148508296345757286561232616926205108032117769981216149485586796607327695249142714118897001578157891339316383158232213370159846094221608450944673500989336851660783327177611207053545390751989878358568315771095474521838633845907147816947839289316224251933454107708470923634504225386931586428654372221094801247232633024657949172003856111308409494573467926349024701574231067471388798840105788153295304285363485781499823770152432432281636981359060230595412792200066720849436247340334011509414840529206897735120903193294045120912985005005658475774951716392967647866704240358002542277912302242141682596366231639089638065554892493953017998260855963571616125046382784237424852526794181409800533321122835990592928080732898139947243246113112934000296553544842312514219090192494014661685922969215985572497284448797428768730077831350363200963777166482869955964142403108851072680075106324425187199094862318554074411185412071171015877293108589827061285863429684508230793328590449297467896319926996674389604901419146452319231777005404776031544619632002587401701984057464975762802027868701955703711647656851875201787704878025966052469493757935994855432879874222643150191776920110283292146635748455994548443827930342982649372225582072556878062294668762103690379340913350001156553496240108218322841255140161303211795438926598660819274408877265228085712093240174498184898530555163318348291132885630532968329135374089263985680689020881808607025535177310650430504689619052182053974187142675015084523701250767824172924174208152437553836315672853764875531850016685517665018086163188356213449045454618522292702691167359866240322315166627010545482526675732692229284680685159677349686655232860207303408151756223793374572885941453523845783234240871582662103113184904831882825299682091658617186407284420470875993636599000016278362660452137549863043833381499856203066717868235094239873706555452202417297826542049168135627175048138105363942047908395873480422500159917405979563900944549662608199146022651518109885678820320298967069032455857867553828292981339468887035779092961667291111730960447318513906042061950151096483641048982488301386591277649718849577338434827111638906887045070433292847032074771574961357712458849837673665088746928084665300941028154608217628917630603014271488538614491454856344257494535340113766067655345774569396760222717660883240465606510137079065982412345180900019990782520437942782348611294102857222825574224859393407866205291002363919678214817323703497448707904069696838042821908739834820914699968295368264700840949025167373226860862541530556585096148742348673377168798500074641162826785979833993595333719243016198417563820129771775059715786918562517904210337945561602232221576549818621940170363683455787359340196361111220557630478607737394054262839806920173873320182215727966400181539995074637131087098174594023080902441984624326644248670087217208795731385326709167769496812633605187937937654784284568148709139003614175471159924865478984036062937308578126830275948958714553006468701698588177241319992267108164621720387031712643172787185430534587216372423152224239044627403777718869372505004138131840335864666764886926907734942734017592195189410367036839278679661903469556790353484138382757454125966533760419926810184364139677585943604626177450765800864361659795223850510346652045809410960336722186578707145426899271287320260829159033802533292257052592449692279631792645963946551096208339620552610451205765972717623410880692658752475545210314460218773054682029204689778047920639699842469195233729015940602952092775489408495442318538621544904610743519564640167514322690506193903555098041702742002862253653981342405857174090886493709656340846320371078587521189406672321055673529157765989636213088136364520634103974657425746980600944611359644497777179007480883981615864278306730393333322276371145311331729546919862833280117473398831954333600864737207800511849783919030125876794578780937742197178106483832554481409728854881293303297726687013819218573819537527839975549100006761235930448848659062196730475490665086569348735088001692673760694863457193236200879435005056506747736451519194679551681988885911510122396925153700057027313855120100517318338939156040891737193049119378691045019102288484074322571191219424021636762796428425076413484229008538314077297302634168619586043215292354280706625717829574511731198732413486222414286293427903098038867307644019995357013351800144569033828443503695401306208367982430519608283249357127607242871867491151704079465035257382796348605541816303250867195759854283613085129408840559952163251061186536072778288403435782218369547117589581965412780885863888357849184670364293437099946510508969976829425908140358485644471084755429357459197925124661421383748847912287942280661627135488871270944506063261166230148513665218681321589206285997553042838768992648092807696078742342646525668886886920834399363413067655482503780201881124271495447310809523894180136222147765597130294767876608351651798833047854269859790083768569238437617430987003823797591548847110640710444741481429091156271314813187675870591133600230540520932232814449484341642025661929613039182097565447666250841945593367369632340011134808249991836224763478180485359300417706740955314163797504249337809668406332601128498858486857346050844637997208681801995517845770196525426873857194949491231277422471593872219766655550481442730191919305833340359958529866715673584209940879216035636568833728068376849548068134602186301391319544083893513630485978202845180139140319103602530132017009171189066295797668946363323590708365793891810206156168318562135986099225817544454216806559494010184929205841284657011466391832391593802045581884945457924711504246074622829145635950232767149518775838117208498911572677891418863042500310814755316855502023425431962605813961422621384956418667661047470986513079763339789441614305101123406692256188586150959804277423026744494838219319420925737275127159059371893805855616304085579356502888714414683521086106918663317979527956181950088451263210065687827521516839950816984949769315507457877491869766945133906283361054175029512384242564083090820904310971161491948811862905382116467620892278481132767371868354284299785047843698021382200195460708240998870373947076269763453739805695749451493646520286870064646491824790578679175891121725084709282795208968830821863945623720212049241321121595868594476537072319854414037534566634195267600820526959728513143915601165358461352563118533449299281839829575295020134794683038427338037849640505780730556270874135148976435396637651936332575557410060544208784268936200835996299818157724437995959848750673055730360048563546642539995028659311149245277693902062508604345115797348073449104562447035951799333345842349277814076133163235428947451081443214561892448731978834849484152701915457160970750049556188410973550920319814204544587517685446946140952180616487989884932609461338214558861907245228816214528131545811390000677086240657555940171457882846986740737437570335788178399389524077752200024890148053109851766592526245930044226072440591092992961181979898870270312770593714712992521005926009786271623800661589681675841259785661864332676167062380557364751242411228498334637402830623533890395690459558327522692163863271557226840472228148088360480378791903060061787321576100113796506826939799597721072597636225439837170960844436412767758980496627251359969464792585133828094108198864428509329585085669761265193437705038840321831396757734946246050868387856584249324466696562042429566617812066899283371261429215430071452758463043659586880774800262402826547729622884475486245205081546246882063731392966532772813702875405174389174841146420774589558598555769374158338431169587278917057378856250317454189264829369722106233019549874337385674495047158407833182914482949450751283792578162757723627874647909962649148231205933629890673238342251092486097406188436707785175955556720752122836515285782695487024827111120110291388714473717467940399364399130533337892918875667397528195078263993434325170340524433686507444372043265071444275838471821671049059027004672109801675650844122360180037483901185153126626069165654151410559783780289867072113918955666166645130920916512645419092170020989210742824488024430521310509414967121651845818744904938561848785179259202488302307416108471782706011147549293234369111751825205806512845369162666966410995808126167918790890825058006519325737553954928918643852426992629990446887523734559783584778439842777217477126399622234099478240549189184420853981928434516578301330832791838061821437891753274289229542231445439187739510320607985094678052558950058440468787183696914812063569355859493249183698516525428199429250156656371107305412554087156874460156518298181100624303755619308545991431451745712931075100490578928788630397651276874470648904129575718028291537517054126962220012209327105217819765974610125109092413137968705822655073396538699194027648361786320538606925928103445822868310351957975397025867836747402016494371973701491283459538051184565624338459964904303155479528489580206923601741893078376268079076893604739158431281606626630331159406321633732854122240156706492795246592775312459945397956116126672516152691728138549798151331185553016381481702293713504993430460385947774000637859268951473760119597389921807539565758636658234440329827784150014557876132618579930923172103231995514444561923428761310545474924717340087183442539426480166912136417286801402510491764188481687133025949209056701152283885657849845150040480964779549330421759462350948945562320389027890381734541779730230778307807090217807967307123675446532711426358380059893107868301370730511721115192803568397137598147560015476780509741793109863702859534979914036119119073842446716672023689881323151245654919920240261530056033587134250532587131369032932137888686346321648595256751446264841427235058443263523270327823077126376128246290400895150958483403799854729333800360069875260476654296125161812699107704688667909322634212195349164780161382711950738201121759874509813450080236085572189123025537805602555785668679856644419615492141706480493936514654302447028106590548493205302247482712995468580562013136986463060209992560954853234820031866857350594238861038245667575715434832648208522873773956528511985320290285090838483292718785112734393362017714728809995465646067601656049020852350739757278247961046242549308886152080574249913803786328526373940625184168709323627382151007710364973162544801946269241231224513629823519329809280968892133444841701532270357857939384166233655743333255495867430263104491480861621820730749292760371713978422145532735517503211657605501890196441597178623154937676881659493156573189082160461046334055058346030965462108943490543530516603806640550184932819928008632220682746250092045817920836857958983069375562733846340190198243409386720572665191084437391375606918207339397416297911054347171092680046248785322018826429132725297515259814743774644055088809218276940170699040610497432791746437393965030062325941875152787227826489852514408755856300980480698654243284173605829106254142346697714887327567337027369265217668935980745340520650012072932095594581367065986600164385183188896113408615579435946060348812698549445087450354671235926339287012297508530190247898060068397409484350717464630434713080966193684002408485420541087293031460524415612586266587458624839540076733367310883989368076225068401640876978970808118148066314396457847121018031347798039983819209169028960594325798569653953447269324411136125590288264815798314380936414922578898658417077260122857245808049895211001288664050576963975834565906010165528889210493964891525365858647052970648197706239901431605562632606889259073174410035925164004149076073756728887126895342277013948185297850173596240086615541900799677942861357987716668723943117715994215674655930059008871331648903953971071116141256656818524356390105236882191739935502189035192615094270238295584414727888735037582961012756793317734634807437324590528689131290672014777951687251179801804269672361492565353898531069546741048537122122604533711651899736728200479661568820722745243258762267895260432933591879969196540517737218262156227042460225330502006221345377732898056528422314995775802965488895895538027658078389875804996138655287733582968153075465597730900806725734683283546717032048535934904576044116281572015143546855253764500262782469487960124040692576335023032690122012528394579364307015073534830575487358885595365322638286228009045513183917573379854895690978120041105875351150830413584379188915767671151074768853687118958277156889333569022787281647733338354989110031580542683695876064893590618053336716321858597874890416342251907540840643085567242346963798455941747178292606561865815170881951135224226854221015450986084778970314803678925934523276175600437631386810952878817044841590190322409245010568549965328904433935426604292718827125978703671434538892201145328015636175798782621756725159558409574952740135677093879260251585452703283087995100967978457454567390979107081429687376614332568080731648865423355756008322232907878498028691174158484650287556219402034062839775588487545044581293831901233469622135855803930151943623982592381019791327771931030620068403619288807055826073806577867060154258693899830537050524166989009062072692410822985577682840687232367845460073972465120024858651226151233696647924451264958948436738664766978052281159482477669387970447966096766791396767475560452072406211432733851011473150194742327706256471923935266866484443162999389707133822792381485463780272270196434318008651294059107864948614835519766548886383003805511076199045425151959498639567469540668956479061208127602254171295069725828724257650480069294483112123366328136938193145752552232477068445405905902234083375719160426126667436846002756516613975437402957759423709374480554365429061652988376017945390300857278233589652964978646097906441773504963342232609076049242974737881070022545101335064814929078935173590036395604339414501460302300198366684356875135148163851450299179239838179829174944913412413556419980977766175247866862835477525275212082509858308078303955163125590293880905171820781283124454250656299218170445493921133706735731765166832264437598795166080182842165807602144946782244937559833066573405950709691660629090432019954214229420651927886560097107236132157381730381154749183337866963464613277392812240830055896647148680688897006301041724610494908642969438923928445971934118837182162574653854464907922321052634907092614096261629158798345574419985551906233102970195523462031131755880503149913079122896409751549541224530068729366208831893195685318076261370227807126359151562378759245739968097522593247337765154865390355028107602499423088373398020108147292386744211666857635860202223448555620234831501093660167080918733706337273331217496565318470873141067647966691834038631611316459212914467974266370045033257071720408571158125075167802880839289560572949625725476919109952786662526205492625947764037620627382046459342582824144746592276574591853892347773862484711407106787227407127208929938712847108632348479604521163053065774850218587861786207129876871323107441971540069608110475919564685702309786308977868235942902511255063003453606823397063206129890100770023767507763390026080448869544936902710053094365006350729909744214823999717986506586043236478068860185401659065361812722883762833300925970142217919448261184701208769504614422424401994190990025560229933522341813634767311394861233346051194654713889734149188617996126700350261794868992774688425056855624452077932487506481609510959540819744953732788496423188675845499274926761174748904596309785533559760810050297502819094871227023448561569610497484130837987630954324827031691725936351510156593621826348340495223320064238476029731300576370085718663946028874228004496919362554623523090101903490902829674747227633965146443188470010756157720996991523932296959938604087433320232851716608711863993702239025980323723140574315478471173126419381212662489915676870809122386249902216709745739696986693860962680027782397681393325027412900576077501489411023343527027337891342977699220108415854915664720729537233916711413958645021099676135090580288213566491765059973495041013720924153419876423267465239217121189022451695718357157208192254222969585681081182733633577207474927504600577928438088883208224714371956212443343637147620990294156471120595621701022807067399930742672132040353380663342870655110661165796314176690634790188053531259799014183959794301906576150100660441680130019086434195320262942222364570157674550878486223935048222899194277713822364142314521020248827001260006235686721369577777624862280944294582862163545167175038302852404233863479193706094144633013405690475660367566771806867733893032365797957931674430295690414935237812477714189250863805881744307626556440763567791224604446364226400967800011213705525563877347130705815412086066295446439885043478758058534719156383787735919845269046193046644424086436380512309697457281558691897710408328955710159189519860812270275408271566871219904496119346919964484047522616237352640891076965800177208137641134185831658819092356222148179741688813598961218712982270234475505082000628602166681272491601245607922009569767028886962297214742273991472538902948179718588135197263664491134720986076488854038649142193577573363898328592035028789357499261304601827224430535480488735982732464655477464635522828821063878768504905123240922000286839510187376702955137757949861042340587230006014598962941838722226544683569757294960667739962541237486330573937598912263163033400846867564930528327594981178444154393494659551023850837692514970053439316872448784278963688391792522026282320504505529366620085277902293450097848940275005501850351387103192064303794860886942157952767751912891350984666895189331248304173735417096202226274900495166745587358495527307665666824627678624018177410959201298959345676341728551170311330947075946706000980541032966647747620099346818655252328252213954008699402545314687090347065031375205835664176223965256410145159422923396244662768280938512501226294360133701848708273465312881402480578267836411167735340362289279307355927037915176685275920682895513534860602598989698238555699641480865842294918862777071097179104613272969097828350378871085522549523874724781637752490272413441244957411238372863753225019952053343663661821888410605368522708639395758503337485842131461863641282564875116875240961438244813440004519841244633645223608361671244122735609465215341983214352382191980536552458933445380080940319100863185634708034381553209750736372877988129481583840275828474176887704354694103581252392565259257072005498949471388426788622895118403772590074809384862577958579710669231745206747294892944967318846414448127975617995156340159249142484037674536332125508061384649493358451544377347601836143523138040899420072764317751399062550945135917552089589939377103572157927747768558545215876379027964742146331220390601592641398007825003534859429124830721261847986882828951464778524690691219330691920639317497395626682051831800109415375381960105614333797279576370436993953772052222778482011109119891681507126570053997745050703570416682246213935800051654088302982273563029714299060293781912215179384235811094178139065273366041623388035677704161607562227491455501847829528137989642945087006930439164408878975455259275882903953216935215687768451543530285312316963915015340410779576894378188008922785080434396833392832115887863253911361856193188672347256933758361926704420029686620702187872579552050711242046532800623444371635632336373365094446991290509632234381863986221259000909968556007892737426821698144600361287474874338609929421588926894408510600870124294077210189383612474539537523681033273889776360401615886631520903787501441531250859221740826573444537304834147438467188407375395567512832526382601725835942694425648290991383214737968414887295491534855146207435353753073421692001404816114699330288905863331864122756277069219893856911029483376586881398474174168220808809179407700355010575720900406071772252511805773141684814337226037823092496989435701612617409880761257555122197711298821504998155674716839617900162299332827307571231100221026019630338853239788789199248445377631064423862865128712576222016933915224711991167910234858350688575386794619337218335494557633564480169597320969982239375829135411308833477433370385347653202069662272244591176700849260533064297322125184416988192530080996112502201301880769857286934589095816089239746870757861403946550383264865625242259292446964888886494603664209248544555622164562875664973104619807608193739535624216024108616123485494816178887484589684782757398539621877462870048408091095186229790498098963050903755559113368704732204343488177024515919296600278201554370864768861933131983631631158726476630618651714483469891778910165710860366571781608286994984663443746585505054026169281634479621341040035576493988585806427029491179247096715564366953170332271486457564915096410349631048359340994348238132564408621069794535546331830168825943827703072210522197265051639104741846320228206564232641609668637121052048753548865001574226522627608405310144797985394173351499617667658872740945389288384508330395588888076032655037406978846411955235023302386621767491725145914153650752798349521127202507884072319796785510867847681082938625218054675445302284791591844888338711816918909659434556708357233775207270203109709598152911908194671830255900117280324335019426758967335374707367435061632495272760121204907848007920245484027786574614755847429075831720030686130405659555675215913808315465988044179989595935638048484637932605668208047257075628877345758540751549392494186495815149787828942133784545531612475601869498232476228943225441004453809494601859112088090556465716412239696494034421732288219179536234086459154299792321420466468672252621590381877480036578407911411318485925905855169967954501890039290494411085005744580319412081273410471582054494324182311222101714654724470175536626545347926773239975100554605664837473944349932355426936825030590565749578335916561264018706975047210327271360393494056795542565823793931441316512639351271210013006082953174258297955385277619823516929651911784910256676066039766181914348747013255479686838650795469589632527368339156789098588767872181558039103552881352426674344272307551496294856616906606294745269216824593171650220394545455844031952949817048718655434960532151657814001457409206091916671416749065911934727429833870310935601944382523481955176861581306002195145257651966437742689119545194685751619379105372634539464808284339158675241373815799354636453731932655803610107320071913837494780744900775440102184522407739801111624902697467274140300437940679103829477232410598443325683196414275357791537768690938435922261876732207453653900522381332893316066177874343342559230679274605732154138356587899523829439972415807366582719921078362825852786416996397409026081798260593343796514183284549727410460748307242456767336601348464505583644219179592751649236151881923737749460779293015292603664283912729099380081118841646179929211765565267512442329465403894496247381642640791302103316665453092660148089274841858452257324805576297839728309533269319338661113403079373538360625895352771941086548070448906450980807668118128475162827673720286278070556424484930150888047967616269126241934177185283253467989210080286984387602584332301263560557196918268469332838805778556381567155964723981370018882898669476547449963458198234417900029207649635389631529365676588955698979375615544713312705287297460752106384672609740092790519141431819753803801907143635267187914018557148119666718375086996800461292903768159237411295609891135868504413385098964829158751685688888668270035845370512958346036339726517815870101666770977487253014472558667511332779714960547002288913570087650661297125635748734832865111044240036087242855686947151577292250476523166343152107536525534478358905878493599823227204655206801870519285838119013676961457605335902850652351102420292998929203657647812446271111937272477348781082175065706995211892918664567394108477890575655564739775088653370454942670458058121176488951673417338542017669921005038620593429831075621245769553410396100741670687872453381356202697289827537158598185209466380161413677754298093844971565702180530033469643772129808813670175123434212328834203801174477488859993719378335200457102282260267245663493296705517485027543320714742302215923956294502738868048302027540195192708307169466458996128194567911965796415336787797186609114513508732817308497765144223919305985133705487194850374311270701036432034623464082113417784245794889419873861855896271641323366510731465675504097725804393357056731978355163761901019740734865250309919260501224476367958398611398905464223368878924490973803724293716648156501599391727608273087625411177498749008483464956583281696584084784185114305065105001286853841351607109724327860926762571878366735816261937830998484875877031393127871861704895037505499492114137253336245586660577344910619787762718656203153779704560285294652162717111671198313978292032186910116067020788630678206088406710760453690758638816467182207845821874919847485256778929082130602306942569009095833928301126104292941588297785374833227213610913528308008745214993499986663154943420143786053165314437979846619739931899887730786835824102697019225457995141210320224192068662910697118988346645917981515741465060017015943330305189002991029306958157209988451080906073231122576071310673428465031380036688754884328920086030696646040157875654375686163575249405051684315711569411731305437521434452880897817053232157266945627848980375283440887569391482532749666412606344908787233641210679970856480751474814447615950328466451057100954241138662416357362760535762131375964160868552117254205956482957761269213596059777421150043519666493657755366090030482364495296338877197820152182750598623611007309315443295953671808291160129407407148660791129614005127052835229675982848312195029654376428792709535487946340102471328225758223802584314881880604557294106812876409604913844194268343949470644309559813261609488602320816246216393121029884730843495163588302713185401913907974213826791845803275736738813962708003455637024094957179621330730453990769910809200523871735600453218636791785078640494368990843685007612561767583566143995858639178008811991269764765759441141056209003955856995734415232360179713150109314692447548621744126975460033243893734833592166703851364447885243132539913791850150435868890489085237681964876429542510399796712579039813337870533034708012304613517524003608324819012446492132472025538124827323770763610542717680990735588320827628069240308903739202916904986973463719245155217980368977681486132700441979448483745663543914040535782503004968341642361987803071462283143553313349678054212204361193962395023107165294050942682774849135832618127951639771287182668612369423517298499265530534893513425519046614531396735879810132664331198251506829291685249241302582641949609903006345824882324134350357413971733324742185948200846543673029193292477129766989263039249809036185528832135045058102341786314181579605144855996661358949892934410686502456139896922303173685905457012194311917516000033433240919236823633187212889957524779843741585455649925669187686053564607960613748918414938285563841746867201226278907791918395716703506061823116911145271732333065618209288763433291055858948311439988032244584658689102104456273509186616744573898221637182986210856173984313217361307294484889428829057443698428973391677869099334692689701454822143115998784749599882403303949754033801349417427632737092739940273170886006961604624210133206058469780796242922015316466082949352035045237391445258928879273981667549010092699668500342997587417018044640688976508644115940976530818312511601444431185303261261284777594150521989040941235097887325203656891318713666752794414154511589525479503656985805315247398231027860022933281881051396954280474257624224019667583212288566114729075086423247882581808057846672099516782230831751570517880129283386133002485213697218586181367241409119709923641606214005573600282582368222050564394875428409697296975491835747347974651808284657861905111493171431414518433307227347036330710520011432082485736899934320641993927988402136868151287166982818193100495443912169123919668767422492860438910447917686567149684806093982235987043699797581642566271492923742282269349043441247819053420856230470489744672575136968662385423950817579033623555487126786684297511120431396267699355911471460137841350994802595723991548505715644370231009669668522580996763542232180303185595094220843790024828541402955239048717967327514660696065386007638564419511765615742461599686386603750868780065807747933581629681073216414564685604326721104085965655511480488847575266119247565854969667292756158427637032337433551356782437014499546190376289095393760247043916214094587781995562892405636328204725437149638221816663252748214624876805738748324889595505004773319254794044452271137521954062207428045848930420826996366971078538318044281450934371516037059054070621931741363508444535064344992279459155387721319070577794472324786434992538822478158987711238384135532615579626008446584853700532131424753721688764573117720060508167838030423328518625250196678936441615906567583610941325259345943473677793542624940762093654548390005557580227944601915297578418839000881826196029187166003051491527093237502931786415926185747951572204476559250996906321839714083298411046907218154634527080558020069249116528100183344667779162536261770619385939141228236595855319656418943507929946410375820666518174183877563417900565024705826936076861211000759859993766135830143788194781985552607022424478095541270604741442949428012640449303240706825187547874733295600763766072528175435186492779035561743964102415837701224858140720618135337194371510836789207397823673994449805997935433140464151476495734493968263817855876596740051787425732376597534143364525589053654304640817410954883020406683710840436614211583604904741931616097011711739988871594178038225159355461290055997289806064270787822800409944512295190532262412788846362567176291323274680060686073548592837948876820529579531312859460239546234740245528649840690837300109105580176630509422415277472527680894570142810002894015500522491984381733043529803102362924988285796211218370594923030407015889997754728126153879993358657820607719894239026857311141965121919435121469623291998091905303697348592061475242523410314305946253308649333397844021619129354994668824717626354644031425988320910069387217364895522488167253760353378158813312159955355635352859305485299979323426385874010168947868296281183582753580382413354146366222789595816345270485478876035454336777013904199086210656837504133163472864044822284666981508971386665132095459635830309840882998886774002072202817630395454997409137521380909659326802885623906137412633068825541848919626315232392040103969164559819783417723451032735072438314503024746341840562115422523329485820045089865904174643142945156395685102096957715084948599708887049216499761659387407474953437630895352354820068592102558728364597002509032277525053301950910735199165248473080728474637966114478002696231062837278528853303702124781486488817316802479721778115822959684550053057843266049504661885252220473225773852290997559072166569120094676569042004649143009361015885829583944095858904477425602110949580922333794861579570415371461067426701037444879711669379911971737886484017496168122602130853746629877255065497499740468008742292735523936339686502310301910007477675788127295030325841126548088425573920792438402779393208253765748170073432339137221907083531612843877382851496702943159243631261335652299182429756763932897046933978868701546976660597744816756043745964816711039556649368962937544048308049119488590365500459800074686043446970249374668814472280353316770148642444515857283220673102468383388553854903195095138699866358165943706678154616618904839294954950597155126647696088441796468661776849761795207378676838090721660250893659992574731832707838052415501914347179314908357222296928063842880776246474519237222879348804244288275263651568169728654071341369766173590038870146399966673598529065960672501191860548569574207807616915553072770842036287909029734499011313079266043679220317880931310927033833708543961301545880539657856192748702348884789036609534227987529790006157678256845065229992613299371379183547543351566925034727593792647551299948701520701605886825267159354578020077865012526138462316735454375424419786519053184934140011522217800118993237070221487339905355123203249590087881400891104424302033897726841843756242022234134963644826561022619561000250418968806601701608516035656312096237529535602269659021420253919982216758580026650785819622922484917641779312024515381506657386308087542014316032920993294200075753017774821771247013485788885429579341576071397670671205380581551946868513599654557072076529463783973197100241891111666195053799346921777991487645448720560077289975006236872026558754431645824308636756441943982911054227433740790446007547697029530994072674117101626019811402832145525650407000836993128621116370407276946199690540430096201438296671348551347550367681378733505188013221139916563880579044323228704375390296883478215979011546225590058553517855262711003006781662766916511972103644864961869669909940457820138151805812418305593489263326653848376684046394067960657536891694015414118740348479178305948591356991461396343939141530325082758777477042765584285819423081271344412642047079530618496170156333819470403130624537674501566831590949219321170411596064579676758241161578839092654331972369027033964810848546663295740156847090684265459391170920615666222339922315108097340011188964181656402692171643876886015103810306509260189829478344958303265556043631544277519984949908475993387396084244417004268183769340782440963482346252167388842960482133049790435521301200505389887598704824951144360652962964425627916293341855265251728496952522160616551806887751875550681200848289559268020991642561745427530355034162027815250625959658018767908356588172406168511532281470364770465118158181154830267158739277296393621400411006835287542861293151707158569950744369159276268118981914747105972992625824587998557422954068296632591146576310229814909986406262121150331527400080331316278064948692128071012876685329360071858080763559622385966254905268449038738702427329058227986194528526547388288840437252308173791592661604274931711393496700423787481560174800214173805056332758307608026022732107352527415206627722908457001274081565665395199582263651556174786370062350004840013617043717336580258336722511167269802991007528229259945379617764549992611950213571093443963121955199494617347961711982780987500464285860184967312661147598043171164919307732595249769240455724371187080975390289142874737311992957212151343301757015684362259567904752948598157240659743143842441854043925638354425927084838441086446601135844797108248535080904868872992152043247665217640371593277739495003951234212439867843090748088840942269996133618767421304203551398448474892101292316098350828632639874224275559162166011822991282671580596145757567286854875551032828709055677763988555172169627092806657665767184522459034878364332555104216300574923767090535071131778720338581704200491177731435868069756812948944781184309889536950754008412718703536815512937972442806120160438235303632575486483756580629624414789846010892421885401974826262066734059347212599145315003027895667212175717735802507036661825777426283101348032718549879125399614228131754570364510273262018508884561660872445804336260977442059997072343600358567302198549050036425495193839616597558694401377971682324433239875257345348546917393588173082296260539356551374084972153900676765858266021739967487938002794409389324985041552726248828546569157801517745251320226529258367374090591161346799461871555874947031639751437138293636366051862252583494884172579146002631242209728234997442671084664841775664626377564482306357463704679092957579692994535143103455346017626207185456192234199648386250584079868980434386357419719992970681019508815149453524358806724862012914031654849318068501801881318535319640254801615553496805995295070637602325483233526950477757997195641015128283487838217779226300938560843255964396262501003687436481847056397035259398087072656735325121987009342810312473786445980483884930051075275135838008574503417499900296931918348171454546406035590811366864752293818243343675044171472264111904137416315235466675879903041632516416460799585613551130139413996082050962974993251662876360915472073315718015974112184213055370462583819178600004743681903421071470301739846004314418389688175421477016001340347022744820465356407649996710339359471866570044472125973535820065299419802040645709353562659661182520385253984700210422618828430561811942463510494409704785536665259911900128185002481912425165279852221589717002855212194861394963254948761964508542007760065249207990097398989605466026279915898484957623906805895859216323200469277428602308808832431848698859339176072658848320645307177569451721819564278000685332733569214290312205886248929678046776645068418543184379714851934719132461504398117492818671245546658962178705503617243590746026436705459694781470609393206453388539265795203184350023238757818467107075276449484807793729485704548550082881462753676925815221828621133741853481145041522911074157864976501559700075536937227671223459371681586962773008913857051545174941450705451022423394886114535473409501764339571963022254334759514418778281957619119450244664973323952508633849339094400905161533652069674342846791578844542329278096717788111018247489262816331764615366319038617237589131942490559460231649947996363549396682188976228822942011073117371970287984402953635444596789193315278714261576489334610898971205469464891865893777577762505355041224944719234506643379033912692685361116624145071723684383291330316738996695185729805167095975563511481492762663061059234021629344931473383738037024821756331843144437996624093816104655775573915495612661825084145235932734869176257250319854410059323300120550001079806859336273971148091873526950455342572579567983560168184001395740848992546324583577990411632299721185753381076993485336237407324303389989369158432691375655187477314683354942725675818526529495520161086825601659142120493520294972300751795791351577912326571124974066176324686157359956562225037149954705694176428558590955327106798589457766484410807156855884406628645915158984327536642325306154948339231370166218985019122084680550462598286244926577226540538883451516661389781775405710365884766646538292887654474563604322407892203326350938976828051357385282443009066993859122640468605078536792453476101325208380856664259312831637434096669962654900616715288958918720063216309115759039665923003357578722618772359181929092119149731842715582613598206654710692879351565490447001802792990172933555828295779156194095105646581189985101085585475408069812321151670054148829127256909731441601434425853300789093771567042234775969023085359250791966681769782151061429941772481193679972025182390651551964582698570567296323542610504528836997450845479825423217682098896591752885469409520109686396049871275708354235414969828323472371974041606556236593171102086858902978884919557779287431712290449897049085914911074307529782447146337712259145432936507874471016472304867376144719508887845644551056447662077261526826112371562142389370997044881921891582662333427596277284417907369624701397306220018063108161925398254023775345032614065414472245917664612471456547856860067275656417215760819015748486743731812590183858658414095332079313421933538335273812227162483176732008867551265722715951028342002576864865669805189206025001759205499635629915823979724844068320851791372354191333264790135093933951215763578379085936885386183176860376229531263719825086254877950011563920025549244189537350971151386823440263986556763010133142788284986667150813567711779952001082853647955469000674668325809379999131871898445352851141229641389934892784340061191207998481819028122783358557274476615700210222632737195649990374701714076014423099402514030364941484742481259335877315303115669825506377239530799133270027059863007144382086368186822870977448153215985168279607206972753705474040698115380692812557783290119885696642828313058384382826109863751118802520299322041993717567382450712539594293788056855033118324980336525993639867801802878156263166797239834245415983943323893281871361272934832736285628638233150008579956748037909091445900270229277635723559813772999192813394323570769034252227837914467310969649472578047417784925510348448616786601430838948465274333058412420664431870517779964983385287177230674540206369808197529522412064984388309037255249986527525420592675160423935739950157609379572228042974947572891049128394575085023653000950752123901851468690911609481384364948433242250983697631617733143920535861000875235057898673460154603538643981649217801568136032909904377239270266692746052353942346577449159352552519073815867685938939946480476257747344100115121222092939621926733985556446424582434761534347467616171534783677934330321264168633294297717277072395537710715885583625517691144171238647135788161696815504235307356295018724478189794538440804407562792348433063054990624256897513446619063886874695099121473561827223611200733026572502490813462796808432033870855173645935420435217774481821372737948055219088693652128716950836449243570494914118511071834980822757183930658489851989927697785099290073584303464246333376312725621391987862771173735715021893264564652306402723608813584850320478030380736640269626196030214330849587516501456898289592821591800558584367649794119518119628125430577494548097070201238488464457570302080595140566638236002952852521839645873408795043577832553144528473922465732492701056476330853680174799419790566260056520635237969535531439083492192063347452077274414441781599071428812536678308923838951938157830282979749984026764243619753158299616216479629094290315868451066428313084412831405414637146746538716808805944582364048150667352193185898089121074933423627011228663573541315737172479406646217638323727383627008621354563405496856796699455636488701246420180099886344625153214725481580664670131017703428316092627690319532152133954481565497346620697644111647547836616102387123778429038310499216771041223963482795588253072068939264745199423632045883775667088150910476241622440860742556650011765966881247482799204918614357668607255284966528116020887465495985790647566746246948445744387965948113718567296508913536942243971402909345313708982927968151084233028782634198953564370230196669413959917656594814905199631268323446578094380205208086466156604519832875214209534511309309606951931858820492113260647367619484897340612878717995666455618353389960485784961093063641596916747061173729608375734443871817179196638592712077359079226392317998135947149063797387544374065789143668623546005994238404614909190941463694335796146941833356815776367583312376926549553747821005517564773956629978466673031060381399120663515325067015860806657778023385108331095059869748662174877610909471439484462149115340379938285332926715596152859443450235310000930569199244179357439060101742105271773650353920212656666232819078691230617240354687377249760238894170053331721075134337285703218617565868880060586781282939669021136462200140085371173890974679766426870029469117278141915659570692700386227543305902982028993488320926018244807850258278660974945251705883580146684827885205764970964772261732101178580991088668396212350586531510551533656300693743755027439661728964429512197795338117990405930787198083357628221599719273821513525686128341101803784451793168459067502342050099934231257769060468562931219686802064567641056586564464120738262411029593750328580989622316602323094139283120432314347277708243873847064906320954644429531501714814084052030508461075338809109797863161448415558356173674990168614516416641385818366820499358326167087141662924955018292739519048306936349057387639311377425256129677563958075461590647596128965304823700658972667864477164118627414120019491870922477232402174117162976121678735706730558523813830186901839899888916263497135602221645222346896085730978407917946356698155780949743909923571971125270409472686919444909616889353993512616513528980123962688123045486657383061905455384674807454188077547441471843526769450378324259840348781556036159146967639932610767866502950336469441521188886235334353350835910314940306238508574885659666013549677103837260242709913856111972054827173238639704760505386725712008490810465771216388407477032830976489705198162183326462654842265194241556304027330306285656606986959155637366766837834185369010635484698485465062098403946581251793284939143179374203252120917572421853032631506028188345294426191963241211400031105525773401314198552434399739853790022988445690273317382535857713545459684627359747805083202730056851369699367500531451045652772787649841956687416853027348536158592577949299890296102157739430028576411491668871732988997466967498215171387354687080148966613164234107952253284119265476933520090634927678102232782603765675629085315203786418184343867790733040336825137952885045647266948028867655904634226570729563064003078969147516282990879717087904529064662878695429090235953308781177512281211641081939665986408627010005909285901896450339889072013234485988222176434415983109918689649415615867283645263015695747130584035907432141409681399218364797690304909156919114152526075521325014781893235117551724456650428636087419732250048827429899685967556762753210581404382637230876500921046242477473635055887304859034530686600869216684690764406497973096092901927331819428993082463052554840865008730666183960395923737681485408010585892712304544239738626874491284079219647595998565855977628894426411680699673933709350594665954685610321955044365681144264089268723488361807093489903640505715731580907667679620760460280618927607921106818273547747012518219196250824455648993661920337737856561734096880186982622091859410877262479565400339676909965727390430019048968483015133643217391979980300353291064708283245373801120709974401125562139959002652193629048210314199109852968315265233818670497908108289875543471629213880373323008152914953309955649329168174488406032754513063965534058550642126945790411518680084229136831454542456128575553674019428474398926402089896213612041649628095263695329725973051780865412889504773366599734068754681973382703739318946755058696465820608781219570625805385945640754892504236179992955737714552026648694576308741646418419437059160195870517458804585369582161311372954609550491380010143182632499867547630048846992339143336504837245417736584567087073818010255685905462798350987500369848816018174089692486917987607572795337062140399441649678031967640157437140207805071940706917632383867247218518896794742786419558145673745782886686785598674507736999283721062203841540564299451357327308676350199293671959426612259496406693014132671085196847318798344606260008668009734660680747309505222466641265038920269041574017204327186748892556187748835957151924507804260648940172344130331465044615413793918050810293939623255068857677568189940993020989193521097850245323106014058247555345456656799079559119930217948599561525900056038608492254814902510938148961808471159848316578856938399636920836112084118297299150095290037793619671068996170437652351510799248410227769705630836075412272420992832320556649332473305552915745196033307296865892338649845544510540925549673146419834359901261940722649458346758063614928495801039700499781743008957849605150523655623922061948538172547766841976206535491306687567297034956494922438415480999438887801247097635276612583275973326747086630052985109271657623386078862759483755110667032717102476096871063880410409536283644647960442797498127279119482319568541597551840251844550843193315030146187683154203487756358007312716654512019935957325905919179702877753371911368533934229879686965415491759731180487633513510572160512104071877258046891004499510592852604136050719588842690239472810985507157143923546304246025872373142990372831337424170996884451656260083119315966353517493058821596137729771519722549490871608428284282250623439686304132766052208748082306002409943926567788639363059406047757630790374763215654756453304428931042923234024935351220184350027927465652251397152782347073451951104627036888352419788840276030782384802930572069484589898604803411207111724595001475545983892414624056994284771534657447639737292764402647416327811068589229307649057947335092913789968185503132441015822954912312268179198391349079613215059386113212197573553791406916177541664069737764689613968206217719821243613977004513997946682357319142538821921753107306215601399261465967810820225791825281744904427693159574785127960401042417191524175932694420481795500828933531854209806806674717942346288221570631445244826231401640617755412950221338734464189459663181153277402425682148088890647342622086293604129274110704577370478250383202798547042149391114320366210205763401897139269281055691338026814931278365199233171592283391646247045972779972908659011235175075569913152150388723840072458317083783577185517679532526463575894125528162545363583110983687823377715514534155397461178195160216243673821978433325662646565345297927637518091325553083740543316832608457294612651476672440425135771206737220090820047348300082934056997396070715993502098407984611555217963292156196746662462652084689984777944659325556754246498535965956149031975219120790726762176742780576044501738422693185414307024901689128391547402651995958899335444715667593812426837095023511726067167974163132151552472038207976730099859174469765857701647830058828599045937224879452008784499615706720537716387877951674737303107504394853626240902170419741421266034731757018694097570221409615096900345504247171788467525165042947751228485710360912444950981843201646902575007980704314748671931710496756622592960312051315925953089714456561069493857244531611053081224559010147763261952368727214996272739107191727168621558731288055691902447216822990392965849035738084396320099253000757000863508812101643519027419107803529231710934670948993416748420570611681821558646483765590122032083087036238633248369218325480409083755652216247112039627259453487499749955037905948126371268125945769819614910596126269768997763438935424067879569871593006335071794572885536426689636343675098990411149209409356626032537004170425785765068428995289057591470048520402217468136419945119094566303828465405120502214302051379431013936985045923286861607930395414534291663822999618705306761710023911074341022398481166083320303513424980459071200318713685535342986382980405116407502299682490373857077357463062251340633757682348548514039695077212371510167422300715063560916465264024394793974342604799235007114022975042993309551727044199603517829085210797181244103799433360270370989127572783882635534628205848801569051189497105545560981126552633245303156381977157572349477395407671217688689287240810660498381551575388322076644199944886298987624149376826530445840902153818026436100978417917336890939862339934628577019397338530539980253854375936651391126150111463351392975530293142424679165676518506508348938189189589581438689254434178879231156687583469676226544576598122499292052910355341642768675445620467665443475511435014984866338796595480701140834627083951152166912439477800468335843976396460787565077590290006703374736167608551378789198243322845176822817558863502177414050759637776927172698206870267022257029262394818409875053610867661753922368110415363697495260113224960904599971403337128652041724624639197922776911321305991966386645516491047852908329342159940053556480878791837376543766909741249811396863930095849699292382594985652410217977193639657456985205710573964004149434097187303075210768264958488930997879776888623168461863079346633383880503938768044413937275674378734135702789356609369619999895745375471907590018873307614260022908058176905962277270774055683255883702773263718303092857720366060521216848016694612673641781537979087111694397897805570889369293731007645062504918361590965498824109650834634358018972352859371835394316942712041686325101425652481567639036117394725558024891540982089543559647350149013941861952894565773646575249602191984227656895028612754607576203215084387469408150205405415679211641793651125764154794379112265807147270449927906937730419117489535684701446481216879781129396139068927987461000248231414857570494844264850796745070975082005847632013947742735835630524151103130355862769091517997898240635512827423773255101323574083067445989328597551248029100626301436577710155579927467491695776014697611302729795629995849935429039257354994695390336358442601387326452385712357387781752682110159000481471382679744192186342393410586093935384663744653271756162478815354558385640448181658629664152507957025295727665151001530834326002552342193959895794080036835619859085184174262581686313491586413984458967078982816313616550595014124943266453552907962394634248736734656974322197304092850590896355392239461150400394597170635408251613925505509594466684233657229084652389708793686725221779804324912176137167686525661095623758792909587654305671905102797679134620671292167233081044617758073272017044728475085988774218932424907489951987982609169843600627736780593488391226162532134200485645656222155221855502223167155461115504726108686157947367205563262769681683044654788910494102949243324170766443481505090799067118808853233889319794550104255527213136916171181815315777826664224829139488048170008037319050000368815387416551627242985616684214652506881769805293339048802212220271933080763538282027028577673768858397450561440187843097440774392810235932726276904985832005453747857019198730256578278804965955520572877518015606442524939335577145770389811436688073364115545547097311265815452007783790976011945706651983151017605321582813767618125832242324656277670298791400290629511516357744709144656971338118141390798346828578249658340897583404433392517176952719708767233621630215169441807191755840242405390756279514637796793613734349041740133843905715140550021595764344190756786497567312443005299323812609692455324983451818646089140840814328625718843561886321140383039098163291708301082726867308764175492886321641924344787334857180591887380207585746316913099848662040796890518695794514668473024824819917687574747390272142378685281678443221443116271714636335523513142316103416088044373291209398207068257050998608332299494106355204464563241546710469798626252230539104952762407657069096752869969653797275208114200465257239335646275224163983852124361467285465862518131568845110435740843989670242262753522721502905301136963021880098033573458726080555917222368614483123787044901048687409068228857017051397094029509846490207023418069165193029517614385798742039266550375547812939015465370848862204808428333559171561067127150379201076434076826431457742092627191494951864779372157875603104914490177259671151299780176198518006680502363263652098512739509465091191447893499721893620058591737070909567098734198611596038035019948726041869524065017643265262002872683520471570990954422179212121372667341208318914237332312732551652572953926256179254707825666902563912514869911924414475267664701602630330671410348344780061109701206291841108474014489762414616443235797856013851001523286097654813637877507262467099468686238554507831569194024244942419152208046848403085317330138232924125498120906165151528835463942569229556698681757692524096746601416117354345555003170673785155147148562074069627505896297165114444633682448946989922132399176974439898621636405793562463609399499094839052650643227081948776113341684648778801691185090102834719639312267848520709089553621978863124020951059619865953935420768103827940941065080362172693442567347058517213356267395763030914677307084335172168084168619508124470550773033002078097945938229548746772406566240548075101989134421864574965519974559873282009832226879546084229490652166830935161819962059264469087307365033781764914064110338152917242373076905412269194750114588384888678820470248647096346231019856513445944946553499187439247863074737385618952643372820660226042677280143841212703804994151883711011405546008403211567747159105050593749494321760178539638428760294493342284394321050057667426813975955330047390793286000354762894279671461346968088827250431529210763024731186531670497792363038127531563437956599442211973586297950329880981149937564536383376659850091453295521759254017613432135934815762765856454665241318894869565710086966453340664335154264374375423741707534096557177737443711856472342555968438791067419628219165574848864740382488273165746218597591906832010106831696324883831625765834015848082139433612952691653510075656632947051649958434459614871625104264546830387149127522144610213106048064430942867425052537561989887319705698074978532818968629048023019754628706861773913572677267512927249273648669100061453797403197225940930627307447232430803308943570517672339149608136653860075733365345391609916435358622749604710879558097104309084170163880504810634932509863654559577389114902267750497823046172054503631351072460854875955597128775792080339353771410667978677296056771439635197806350024591766626027967220457087763893502266767645553158195798810391284907691855032242728246816190396363972879812745949430669073548084601115603128316649633411382905947149677754023242618866991081176260484127155918302798005315003678864504662900866593634715883532316379638538445054332233318782574127810242907466867435534313314540932580357478766113124865181418963263931893746243278996349714328041476530755500956208551768655722486535127902876058448300135067636387629368414926587974018885602808388790556429877558420756451157789669945954065367289038409072797222370797417807482507285676890158608637779912331055033375229064978755673326030334083823428814270307194068120462153968468903684182451662690007428960931006065506777398406299003460622272011883919635234617524924305747330839823266596949700283636546095249303548977257686439740081132259580676646292055328220733539831885605547709964503451132027338888156773278155649410312980200966667963439714727258508665076827195581401260234254256471506043090507171936099832421521400734126103198459778384447528430049128282170134777110963491107102547347057338195970118625435105223477676903285663593914862314949878697653757663032275242066007708995710121565148739424167313063365568182778056256415784701458531494589765636064763914403950544093190841939549130702017271061707528038973517713100552784612116992331240608768095770020865811799897756455779165337107517426068018403893729536184964614990747409494933650939127144119098253893216217073668841117853762655829725217135755248540067270345834335570284761794256191345341500486729471366920081325819950018423466089646033673838305985066675113356589709502573921318226164070317779511846793361980280933257068337863319744783871321310742013606047620565923150866705721125323799457574300429156664936813047694436241979402034459135984888841628057335913135578686830406067335246326525691858575226246265924142290117642429198404071509158138799217979911789271963513232976552401886037931158926503712198411625052998720954873986200713966053778140062636810316248851675540369676197885250767938236396446824156418576884040011633483168512962961676333385694462070083641347773339652255100210247682358342370582628266366960189328250994321861201472078612946820276482712050849225357836326923965728603645759795298515414099303640437090199745023547317671194568510977961143673288054466034360567798587234837897882668542320280192549631054367901556877671930034742765202584713052118402973922477313291631011682173144621978948403589882903330969148789028270475185862374775238935340397351200175111530128232467607111761197647978262147617364859709463578035890855388444510961628382532532702218565448530114037421356249030263724653325097588856987803289934158839650912445433843357660197951015885862392158747258206876754348974144690092147696473809911562540277251846066786840476820815261701349793974589966954891132777188791477765683125178294089771953378092214230728039560612754096627384396282968967668328958247540844432624350305388176069352811973235538398667606088194693422041056273061909182654379013995958669793393826877093915612413655769450073088756397339395541463476563291224117743034116352092087165744440424997389302816259446011470642011564883952790277545764439687191006905259676819553567880580931241820789383515951754700644817987179116707135679336949859214225899490176707680701299187503473297644214980656579808735138261046202024814639361272529760081840601588826316261651602249216188347155239686559043109093091836234016296251419608691109171457814660238903755961866157929415081707144496387484998045771303439158004618882976376968426211884954371441007244782518918530747473457788957294478922654851391029818130776998377414296444574466292733335295581101720032979529916389278557681963533629701986033809084149809523681547269582919849081878421478520105851236183777917772954549124783320932092077329086221265602765290977983727186157483177762241518202030108018208184321722821658750455910159145125635846983397667489384148944134164961594652125351639267569162082841765528361185238253450810108833653755631926084093709180712997062824008654794698017916275488769008217773081381038289575505513599258457701045772623951432048154464572373032886081885440241058957558258644442366627467126783940118315991363658493609817894504842452964535671910261340005831735135080575269419215416201520080557481502366823915739580066096215825952030414274602696154477621746922639399358346414213958594770522166328985225779202144534390641142044263946751864864797731549745613865086723502616515688701315894517904553518218232665122597025367904485422700891816336945998038018652886900710262639528533713762361241162225671775988780745207146562895374583069527516626895298424289733104573935230841791613349355300218246598856300304070610125298522041611270944223265484963824413578096320791785802307355767348086104642469907765021531837107916367534140226447866399966829939360163267492032355405724814271332340884373298510824259520301443163078813328006490213752124582981989094818587037399644480845158210115007684754134928117683469448681196512542559235643218631898234369826072511468214373623654989392813223100290866043070590113714744578780239152721327021843090999295660038920735935252683037407782600158330370146995977289690695381465533715116692375707887091973484019985846592887829824810182786371547355888675356888885990413595524429638607885561199130657208891583134570916320386594572364846760714739654748074044823631850767912390621528465945206462554696806586378783092470392548128929829727582252895475957042921741494589524857527332835478682028854137381792112057281917322353050615797897810746785119060493654735827056954571605243149396669653928394508254295205383245170713191832587242989126068827152329412510675683400415650352896381322996684249577772798339422657177493067442444295474386766578240149710761166331592859143267592014994347567200407143638326718328652164130489143101862335673637106338382733999863229598159191644035238905780503675918116191817510808059302477134824858694354133775594692924711612851756346472885608974410042808400461930446318672953112854646064020573949196865940253985000057204496810180957469940504315795811023798921476210434746986358375430592556763262957746121919279650844919375192098543747797121117217808031214232661400384364288956949538768217055203901980964719659908049243376361470994369784929891269728111806966031526687376797006402916428844997990178571323235197525143430294667159507069241554647307185110378104323575828792629372094907716032025561531086843031184629467344470340996845113250767925322541254635415798098391626831533327104880566860833237953345387074015444567410080224880354292008431977244065293316888483548687000583602770248615239839220479331281814309875993796110134413420998586063010510096776434503800404308259662331257939744503573819095998850894068872118866993541068659543035050888387461941323504526938625931120797569553008802541816913832077414300393488580119523113756079995893516173111889376043963311110802875900933505100952881624392781432300813642038887749959344213483277794708658365558203896437149938774775620354053179605374259202386288718185118696712911513640800347058256525902906509832015025012459872990295881327842157764428960993852155344731189601091740954384186931284587155164981642590501367429266752882530602309651617782128462004003083148727625548500596770885719946679208978766477393900582955758709022140631188416011660470112399196517931840192953751501008839503930373369527110227168640249193598235830975590920241359336554956331341056502636352174793640108497971140694331512090148263638282233647501671028067529892547318035505259035040391851834089416671114772184040394591578177908658023981975072135386031584602648829867050502068089975048003102348114720536753643498665516826374735589184676960000165403930260194720433496416801960020508836464787265036692556312141259144599996890912291397864563074339694163313307944241191572192985861241955887868351507859419379670989811063657253260323772824320992001356371741223262919899393117461258462179265441445683365147257722365658193984909407236401184100141111767095991393334877453426391241365261667853167807732847815893165801629191268618541290248721849484904237992280135914729294738290304972762118048252747538536739912035367947515803307288447746744591095209975528809357835424643552783207400557852659549103250762255260294313426686645128921741101733169507617810316165353601026507472248279917715023456702517610378461462731316560342589898897869584455710632887084309819983720625449183198815099042529099680545218129587834166507410474880969242411959948297660390755066154558753502607892211805980657212220026918515500192144162383023446838520790337026320307780009253549112854944572456912500111622077534351230477267617418191448818406692300316933733210985945884601172912023275764518898996303183566955581114640185133126021776914542816910639684807975181443651657791510406255397804221353051149861645032886706676715674595306523270872063309473086737511656280293458837135387234915897002264444417538398797348522074413084276984133071846134235536733754419726379495563174475080021714695090655507217830665820073584080852618903247364638266830568637989598486463965624142289867366146535034238693283884147961610452913253794799240718343740975595782905088857207136779144985947974903171744447211099892458527983524124334233242812197976608670152419469970944067172601128156394634706926784162081014446007962963014920966951640850507015356223677626351101293143004637608622903880665016127328413335117686075021960372919748291262858153384729506670050798454943728833542636900773395463273010845118773932853860671589954316668890568626279667409100158142818934165932779722628665719864017287251553549998858756015443721025920797398224109836272625376854051185072193396518245624945565679293154712097319116086303981172952196693934496954012709479607772241989472181361261206117829906552645288796477650768180042050263520169135713237144828773014263495843041703760258817168404567947980948416615218319564104372177850342185666017816985672344679202526289209684095542915907750689337684345265493080019800084249301418166748285089754715100011583277580619661987461568682930696648513841997813610310255939674437244294989347566337602509752529172446409688153853205146061545453083354291248842085079678429504421056138123081213034158826591439524119548528797551317304264376055815520985813677999909139195889154785163830383447899674314521797188862880925862166341350178085725216739075357652210000056288143927202317778207562015118913022436831281517768591127729947744351004927473600704447852862942034285536818429121226368526361825466313605943107911242674896346169634960690111972545575124080584048852519329552298818358031593542987079234015749482674522605156386178682896042318390622128749715944992313009798433571720260081628210305682314528120733672915455741920879636243781549030392198355488811909880516492031555294473900559778172336177330518881455673002679621993661875899456642452675804360660325129819537591515748506111849211893380372713827557129861384945633404721635961156859873689491223954796367858764518053657488009025883735895416891904947500606169272308572591821875602416473208980760423596197637311365791153866876119420576048702656529396358927813889598409591212143932749301082149468814748098600470751199981214981690215012025379591450389649428144765782743330850697442332231252428491403868356331261818695195233157923419523754570309118716060453008969722203741451201426087675599382686914922082938658432430539085787133964388547802586658932297708693532504757364125825306358847661023992421334062681583610736104377771706878550200389351048364663406651500002797577942463191054662345213825648886201043207429217496672543046624028643659305444939966240578119003191110867220780802721379490178877065137061205141495071429880464619488957250404767099372775482297327654941379115563560945809469595476926122034692411986198464383529931356971916245407476877457761475389049985053320750342317469360991052595244761393517276932309868617456356702750670045130140677555868129953513810563029003869765655008406216851141597081888611466869419366465538072414141856394091305712858494408958807695438768521751132975765907543298059846973598750516796530021331089012293423409605225144797302153856133749547487947684144650547028438049144998600243362309769931828446748557805793734497036304240348265002467078278130403564742545930556528753898188185376159169240787453594913272331167074583888236410171861563265266500973646943660717056487270989569224256349201119469601349710122076611141143995157369803569113777202775263155862928844494859776452228927879051824162028485362036010641186604354563799491257166557552799174913209370834244862864735161554892729476026325654051108337296922005739485064516701090149294897752663940291215670901047904647871805461637101873000808590786828400587933264389618321521103988867324993040706859631438847565471211629031277939647942173314861862457357520596634457659963168513212791424606403112789864277154775769502416423085365109940403153250371607619664798160709163373073721283557720818855383713624690888813063360010718735490171509980563387082907655580906144909142456909074833486099375497606572061787250601725627390747273268451109052263475219685916636497624997078615640492650139694526260638301417059812200618148694073930623002111473629185099702617704440663919756352695187278590842046909266762044275212489604677885856475804042622800752762417049151512988543030756236559995194978605538218408537972023250777212810725928492068860306645304914407213342970323643061877507670806473384209592837008322028198466506439803134316482997165825572989618096521137955968192017211779004294035578036655653088906876990503400845680487359709883559076682075029997048088726727257642211561651445983718195156656605995369874576957884273528253063200904733989934361588394947169701918217362733716167020526574281064950108577470244098664195975976216790086918595145097787140376054248916478617201496633476038749001230148674580073316787725878725824646000180505243274745265970561700402860590949528099333465289015138674545983804535489693367877618755910876198907392372813761924297107301657438873128082831245085516269804855795912282346093741049245674721075685034733232778358856506683892142884044232272585433336903104290346096836262482058880431417449364323873106575688913112354992856749884281848575577079559775919357138840436278506061161481968373029326861350643816594154791268884115445090080026817516783153888470145297461545760719959208898378675819403991052375305297178433141799343733211535200363142916193414793879223759339307071115715412395711384051830377158153085905035122163497682147042433805281905613482260913903249192266343303287096895055326467871935615991966501194786926102186251399716387854782502996393874662387194404666286401577243965967035223573610769675143798063501477444577720254979772348859538429225637915952730159222823979773416450847120081967640717245758551290268520845410296041908181959100200002281851255919308588190807306410738646457719732724983479990735347851403763757997010926473701957405976706166231749276522485549158065856934447957160412458209343297481664552610328275640496648406545995849196535376881261475218374551070777261015437264127308586037402671337993184302856954879460805517285760330830927600845056957453494919093634728919273340248022811464442348031017018095139703647198843789951318720346722587519674908322862682235700536195343911265310845886754078392176663282433939398041609258729701069259238955113263643224662857141403101919695608192969456277296362376274592810929634697708833364384996117897948532950458559786350486293082642430727876077548014636956252655498194163988667844437974696419667928986496031856685905435873641143904214142427755231261344781951197112240979329279814520435591544766350144889796689118332402549938763586362244229352881126376037543314745955749781406787833433759772319530994601237482351596712584952596751941153841016983733273389115002756214022810895946354014473711058344209788444910060632619287761759282135275229192466787522968759689785140293824297353305647207583520471791958592715009350708924477591255933035483950550714690038079254906234333138473487427544575669499197987875396415177186260113543681822007739775658209638230550737796715850008159275538313026259440845326977538201591007616492819140386648755825698622862861571583363096986010342308775233984353192694222931152003141406413395289504792848448822372653219748226858284289291779431753427420839170033003276482019729808009271238553090996611336373220984505318638747258355859825754482559319214822783244038159484245361415631703947663822226905465649153761223566772986684704548070070708062698570983701773200559804342421127079229744903864955877874213557489060869618317165920535494149722966234083582885867551254113089865470426987468760518926744785589501538099336262727154802849608726645637519655929649607297705244152790864882494171267045559184690928172572811422777282902899591116655838622273297932043704996240808544237487765216008850023062673109691379385874488975364358159021543852658778566266624072405889048267260644836856771023087956826582006598057139089919436287352293833570433935700300239880800267270730999769379517205354593068218124927088558317307032558268495874386579948313945994716313244923594253643012741288805184341538810963109784710863948452171590727669538924280590525028013010399322243504917728368657866644081964472532194623729131978573125016776054674533386639329928340046749260409809374522473148262176069288061110296675780907957589486956983804340765470421570506240036028820005601506680787169026420519277623969929280909496448762790838903795419926941900087461966305065281884470038104766953825837742522849460199039642806719742494543560088438484200038902707356062665290056942250760954035781217019537967707961696026282676618484589857961708764761855312572191517205849941886994006973873524387110870034415757642834499825650999891906698271791213526047389589982819002717398091028155020958040725630056521474322985174678922388488169248655846854492590752167703748691651873155550490739721731976092714662188046882675491465964521038953469701890431340180217149207021080791379602156542343773273126458690869573821770524952207635480768541174724881702334126816782610549621312796443249182971635790479058937060794837801696335684995798288320939847078731056155591493625976337451989353175005616525201380337817988532335275184161139329112891739923180106510413968174290641179438730606752767825504760482633810112137640061828750941042884435507936840443540015459451045083211596716375928758706648031720539381049099708994486275118704044672962563762355927805973007538034958299285619946898765239479721470115815866829160171662499816593424454709211542694142479402461595102652550217587046854093927509682853125664685829987911198740995033951712847570746482604478960419777324919760173763231551246078547517867776723295534970190484622496849989563921738067572423490638806127518311392539625601907206834632556594835767388279929729616542175354627675692721808947247604676653038380926681465171002766452784343330255423860426171452782369582696381750937593321720965523563123482848845428312455090477475761982023449786364944295815044507676732783454485936219254044168651749343718324555824616316696507401996560509688612286549905145240808659672365100975602141210657349760849713057038592877973576329119034612891870700279144717067217949536849240605987306942935200698158668952334417207874183478616030372259463188712199945968848007701840991187139962212302630599684838966610615678093970739421754302606404151915197975360681586164000743652169717055468798845388972848498860775528424378192555128637789171289139388511083866257709566364308101754862593462058085134898768757563833515108583774394389757973846285558926574020887391337144528483268035495135273476030942434612260642544334099656550141093194618736775165925213514508037657717089529848671615796465317887240930987232240004763552102223713602137396031689004817446935976936884610719703244168395958933422380306287294262557907893668449977396782917658708721241922053700765890897466836202890770309232192909705057893436157663638558311219055834120166736112486003882861252165807001165428168257983102129340908178022308165499284619839812012676519303572610513571824337345458961862780348590236920011815901113544336991578961100111043442209087386334198986281401971272762487428588444757088288494272448507960055262847953679698673884403245978863874731416587368584937079431228298368328594364722218412938293599272865756563392812664993581020450625895876457377235590602271810025508344582722749772728348547085477233435585563978851391541226009368383612951669055249628166640646123255295061441299636828945810171084534630241981763081496343599124789639992270322095876147420547628458276180842671618002938891871191927586598395711931910798118558715319221445073465693179273801323374209247597056659603904127309848340063739035083347203963762487750770489941267687088105758382678393693687213331230308829437864330536440652218097173020174945483980246960866931488656934379377235093951871012574270260922600708058580704063065155070786465743422087749643806271423921193983013742142001085030408010908379420024817203780614236239313721438750741781072290468150722493013927042643880917665206559040065517825414871525737489584083623541951262801969560981332979602663862229849114288987248093738244560325232519248633285543107634843632670024038106444712417140775503895982740734131587590287204192175902163116020773553635408699018444022063367799393164355518384074266328162549831866959052748368546494623728283101589910821839352288426878627644080270317679625328811323735661432963856518534532591800042868100320287484608509751570255875920150968245917941235208369968777539269798338198571164224878931993223034333411279141841175084880672689660645623975866558034152759248879835946154129137973185175366759670069385003871940997554982061014739552318078579931886716257509239853760796507146129411923302025830794830743766173917762947519556040006796601920197813259848404627500951854450773573274833167212378119082384769838344892778636805889949528613814647913271712469958775873342028171676272037705839363427579107627001642394569198417639718602190259469267055390981505661555586486024183241304972242614661913251480817862505608198506222724642000898624344150890363416249937867573307401662100234173194271921335464645306360972228736187735981962977336430082372799090492247941329266568972939067317790839105861547565416386433154836097548615344357422844893628517179330075135985245068200103626041001067845494156323819712051135321525349745128536195533959868154605567136048983517607491373062119633411076979764228817648192907362729964557683315647104425512425590171622891687525530606192821642473549792382498614932646987069102289836649767599278977735541578134288744486857456638428788155110217615855856613444056766186644658304288170680518766082241852186486946141985144907424555064738407859262461050776448007368322728608634431679310509281242827602459025552025096873113582552241059510358318912409249291783302333851751129765150798261252961585342552955873290205698055556952732407862020751690743474561182582380381926870330561381022066336153502994210382148844979446101501231488238042088061337565260023903452538009097538108402700395299757244770671574178670791362391146855228121887812181850451040132999036714227211687565236452754680835234756670848339009834576615539072679386371205670438130131235676220338194454750844150810048946780505024369918470888918392115620415550652886147426700297462428862426380696612172147318045900299043194715583409236320405213541612023163500511375233323529878036384769007590884935855618861711143719864524740634343148794284209609915646830088265752041831145193691444037142686107013690621387653755656089682774051002919161399583180772966700466660463249093061929324399748269252608268159544808653729187870169789810919008286278516174584277941039353498443978526057615991215731007342608276768863163288191616302223148085559469188461581753435106305784316198196960532167947104855074554223577808261817256125877734117969295414338574787765381544790120564388250609151667269146678047754612236958669645560467584497064525798813304531958645655676172434747572636270460142503686796737443350128419622947357008987296900302398411168598851330739251950527525137419453834963541107109910693440761088998461951097136840528712615809250472140538549999399736420710209591276372830692682624506220663083517374994699920800432377812184422578306603960975643892426215114105986719039971412137033518967125496289982276513190804467476049509406604501308849609240913752759980000287399213812902691349358365985506011449306053239063743046301765515488388899217343549241272658185269385691582973922917538452283744550939903334737634605611921737520760530601115309645153775367979589179314683043379435917994913519457256293965802402748692187499141959053959973277841336968957763752306747673447553676774218381120192452063520026367135106063490959708460887374372909988064774921666156875452571419598980759368018199943115161773324622931406697688412369845945047405614314757656115094651213963061317965278037351207773217904140396689725765739868638675070294874103036913722238469204131991155480388277051639189325262643743770962095301762860377632412222316695627143683291967367147666030825093463155663634824390527754065430684917329103907360323298187147399592553332897051541881777902177342715605042502272155012311585340995357254412885503362579862087291681379228955520224121930533146374022448180971617794062753960810634504211803105327318807274363276796411219893791256633137479862828617438838537056972755525307475948690202120444779989178492742111574583210904341633094815852121267318455142275854153738689863825622569222971923138705503410206294036089349868665091974894431705450308657270353089733119192602510049621552661124945707145492332426315827263408490189691579891727083141444001791439913520281005310583514025246194830323701203973502670409300053634139017996275499435975716978597604496373337200987435738990021705027603342080948186182589696627936750550167784182286375670856272667966567646099928404999326635713891214832280572648106288462917855343425744788637952953751407403391898259193974659338956111283145162852856961126831907633640412728215389953717552189788362426695299564014887998208842888063410515853102599160570608242751936615676141521632422434530729578369339189464877679217107764853136745449228071440529054492884862222445170114422934179199651283631653265913118335264620904014432981398223235099470028000081673033234644405820343589257562504337912910243640103128490738080305172880765229867022677338021319329986002019269318958111956573835038089073547862160841152900274949494777856475569885225506475847641866750045907562934158922410854632897685331911977537159458984214448544602040000978745849096591510927648030621863009475077563006659692886106697567615907514987907463652797295181708187652467298006553192593533445438337238086423685601841460585580955514798705163546225612055936961021850159431878734822296953753261520280451959258086511175991594993321768892810495017984940256690340063962301924383179379941434165205343416318033304252790442095309477272953599927519515609066362445280929336188751452494147966996227913739362244835507736752049035942060971885940072082060830105401146643242195913482163736437946691429152196545952128687609241525896239553263325822511532606325736124893882560716793660770311023884350400130589882912746863896444923453292413057255614908202210480012423752156536437620693221377931982867905959142875837484000400698651785466337881989841224079226225461692269045057892699534258960733332876944472920384436879765495826319458744216879115959025148010635156888083292919324587796906607047195714303183727826582223959463010482290889111573818054512426112347889641678110056648872882999089454862765538055180225209430390056960232381873620431871950716544488579520293785144931702178866352656404666456539897194729384773568344699825214305599109287861129680368720710043772081653493382206606654505293594900871896872364877111106906189570342708484538101261559668255666560700313797609658652788787333284225706575570466155683898267499173234444639780743923468244993498903373980026030422853772770442666815226764709907888376460176375789480678102078315945291837518090935138295366650150358389241095968098533325496227671626022096590388241729140298494068220016302266611656615637222949068155409860380770894910342913201095630516846800080401852000826829993305489929638989124557574850074616244545120007525574422686483458364117640468676360802480617139120655550731897401815991755470246458432007117442820241699721334677157643942837478645050936740160310589593602824585243861274592614723867327467021806207787612153924995497749584032290482768518162639188807689496300400309212378679213478874771528630714635313101088001838463094912814300008920455894479257605792187034002048043278588166676508842794807222889627227634353377237036371081188639435876266751224736241153244961819418389262737121666355537237431897272820301554428977608313715379388711387819989836680156002684801179568660670411427298209517235297152131057647384691370457437826082306895981086621019046107355983416057345871769955978838371925392426364922281895290370972832590543120340676638677777872416563680498846976256706800491369335728135232706700794273793092614680398822513007912516862727969977047326559573937854578182323506799408308130904325380146054777555256641594554900477888097479534864870624483672093660824354681632735185612017590707902109903727384819151323652487441964347954446360503684317592240855205131920385214114644124585393995623052198680782703492354305773492262233946380230177457402898202203993454567038350350083843901917020025478959006478163825060329194436492890602490582613075667625392113208462715740070237256515032455539228656276063825401886699525274261537381383626655852280359140374425708753660244949710627210654985863553989844515580394481204165632380356470583106650004004689785248105148727630041093805495695755867943768685631028883633292671640298752693326449096766063561220499961172061447547541555641362526187522984716000368690907970269203058149028045408194310848867898317236101923510039724315571607663235792932763831103043120080226333575935831876467263977530399710861428523713781439028944502327926784962317035159860145679967277299379245875816625343384494057738211239594798602201544137304483588855557872108348290738084088996347993677532016157913540463075373874222887498419245850725206335475792884022879313969400657932588684586183930575326100119191109167151940674127718559494082326006918807398949569394547951921463036989336224151143872501842338450341634461901172291223686554940716633619228444879183163948002252070264452439222503418714316083518717057655145739058205567172266432401950912784231176437144923743542781062570768673734510553726654105369893257167354857909949930697787712516769903246796540972831442079716110797584627331654391563129794058783776650383862686092931312110010637387153975360249648216477263108121875774744739795490254988277260650115022899401357753196967370429722599642198026770797535894633088932762972836925921035729183552136829344639753883386535728462096461437815181108243855962042862685976570021766575277670674474178241687147815064077519142754618870077193472316245792708612221362322894008003037459415780290855703644422803763815575299616218669843889671274129779119508735066758451015941726846964035990962953978674960396181085549809631444479236565026874815409239841743774920384119681292184059011962440500342874143613281179784457186192835872769530380012600298067085436149377067290790105086447050541333750016906787790750758441545743655638773629896367435438218459997408266104470469147618871450636685719152551437340238488512724461322441011426853862424751441385189452376153892041172126074676035705383781018423805845383912280346476478021851723061958896812502627852890343551427356461103191904271189078994950855805449486391458546174427860925527561927493857241257119578243992157843450857092752658307110975983703568461644509311703685298831870498087600286090059268290222579249617018534781944288810423087762119124494980038504481150128064646550225240843339633359629794179597313843659637958145391207836171799314722898805306376246394643706476153875028508192438729234034570434581932889519338615542291500143147804374148505522710500748166703994772668712251673469467791106627444075733598939266238189850783191549620149909728450989105159687188019542449433103049363398932799760717617918095449946386578992387122942699590082233540338111299122973107580424529811354797572131441302718340523263576568265054854823563681492417306440413102405905483991871027099442272612659967486994843374202000189465038126988864527312902232387932835056599928162033210409673337734217188573713353360430607585553692643809036017925814979526633744599123931184154649680673199738066813382108391515439737971976600357245892724239068132665168140439053644997485772010330401022998401246449440092901540886168053976235723976663470961097701303647491599516412199878996467916714696694590419639865932188592040782686333670796101450481350001479400839023816712775066432297052226865757684850387526055900100471304967032785182705653230790166685411709178050020793671004182560164262590636356953872618271322070704785140343218449398415609782969769523426124938949408014383039619081619174553600359909588848495252152291516284275852255581835449158766379508797859411562700232320887003550435097976788870216232489553255304425480172882525631672727919278549654287818152791640009917543688669857853508689585780116659520374204218159007631943813281761130348922300697391764679967216134935774596714089724053608762093024140199942114794730799314728484327339849920177371354231471028235440567576732459738785707237530236023846883926164844405521193225648995662722905151922975836964691564673038995119664564451856729602772889781972249254654160999935809310715901070486677425509494496087132755793231958301223948190991692103389845773430793827969379693571802014479171396584424673030221608934832208043176664512931560984480445484008486309083486784284180270242813384883554322014986135340833589044179761173265090815351966254177270009925166793390464303131724019888222921725382004956280734151813960657405741107566661312739346419971462807830668544970705187699173362497830768687949151049029023844133810702048163622174614234914336142599957687639363581591590975313571666797603054224887266008821300175239899812461288451336929127122165418482066555221944411927149440427484486568123007039682846192072016717970646621118712888543621390665643727107446808273501229802304558537456492842710804356378701499310987444751509534923002515473739935037543576742813212161773508242302674027742805828120874956248638309545415114585118879853896019996343157558552955250440672114035082931989942176609035691643573666567070808848015876918143868766467531286634744738481365063944673579996825634815408945213496262340269299767469878696718864583737322972930756624915046031802090084258350377215286236310669711077044068905872583981717169337762362985816183668598444940300472178919223988088768430129437362749452013814771045254532609838435942143294610407041873950841176362023761395101519300852411394866605427272998628201553119977878519029714665831575328072908727811889388803935744842470006316860879642270097439436932862217284230685547133383179046068732554116886952271937058920827028444652701670935483618108813549757100539401369710169488600011030001296582066411268693959342040718077574413010810419614696358197800622323801749497608853885123886403615610647834976630576813395478678085043613981318397517550019669859297358739319748270521210443086917886583723755362857682247470487114188414707714747012421740105920291198748553738592358641094992455894705047449811444843218397002392884269716029951844315031418568456777834792565480583312807359169641378380482463247128646286543724970375736014532413721697115671717462455773440855524156834166274674959620288772314456844625815752737848511208496338362276288532296091238994265484902284624231059869912171991479114644424969495613764509523339869147798142878573461224082222983444384244590818096275607993169225007369618928863885608295735453388498078949016685392608899869955136065838155450445327821081654350770582754136315417083194393488238189354478317944309419803054965491267893823433986310624437013785162649416739191160996457379371152592899736849323071326508817534390045761382566944800816540908736045759504992126554252546380564584232185233862685910694731666451082794857653100913429590843262917499483237041936225897375988924821697228683982958735626767163702208420272215500780515238041623788636581843774454986643147339940124639480712524125533191998751879706666029653642176647785628046812742511507247953327873248462605501832748091095670032586387646224336082270335946050530579569597769444927138797967698955455984102272149827869182950196542475206909986803425373110959300315151621537648277153958423335808296164325692457514457673961490098903941453208062098892031890497253806474246710821746275771795765602384461296643784379157343442525163437865154074486530184701448922126101843511814082984842125413476900976391293230127586235740000060472923647187191162029893348834910786771214608831288870110268767089303199179749093527064144319200464663940154589198689251570691553245341959915983289404756274029720503613662491196384510401912869504968907003872797376219843091313516722739622980971098462037823224314265892831373685270668792822534952362376409532525233442966032026031609674984661440917278205222780468589085536446769554938272119763244410577782801127499001138682909951118903404920533162247481928022451856764818977764003343362538159039301162316974029202693775512766366129164386735040567627259699932516266864528746424150069080639087160512517033344510108561787531391870675115729798603782778489176417070797888005256941967965730155363796435935067463303284265106048745611658177128243097216461223594352444582743582438957623808077550843027336283317344504354667360723053732535166529881766652725862833961021710591107227798764071234326296447200060507879676248798684993896426081557778352677971653700622445737704213501050822491800377957310333858566062691184445867804160517976821956367379140597183778869258942201134452751693081124319833761430572927246481805910530551551381486788681260108962731062428291354739749353690669697182368997428460699555503747951616439266481130706996301135112828228691662515481867956901869581020116633304051064934162723553289444788596777489883818998154729495330773014765776316033916514878051497262322131123451960922081815362461298980761262026527705587596176861706840744434961411255509665940138153905348891794282270052632545114386931325616454737173895010378934863283434955351045636956195259260380641242907135172460089602573364808600114922540558106426468765267451940453875908493968777266972883243588831422110958294561143378385807378729045661306713932206476868973789120990717046605039929357893750222495277355949959469316454581687600044008136408064741998330966403182151556883916371267931297701914305703131660967673118806564559244730067000692785780441783836825864178174052495796321467934914505659687534733524029623456984275207900034673040163284104788164884462630217734999713786811051402325468072326651202203678527591877761587365215765048078466957052038383008067845035221996795618866250808449172399218315119854976246571228373785242439974925807815325780972392863959602471038726282673491364842428947422221182676948970355360949267609631311574403254859415037772723175292500502407005223540425282675009666289547804406755390394029706571910817835453250673422509828221172700981149139557696174629436039542305999501155058411712029242679899000986470786028099333079067323852943072200398226668362222984230106180362825466814511466151046585580962496932464873608229099673444322991998150306943379571217885164222642134112546717247686885936084808606510226724439569739863051745996388649704336478914219045866174026249467379445493574929326209570174271743757985861135859052059992106992770068386671701730831588030404124943532536013669807180347495294231586946468805498271778954319320850753815588323781991884359359981694079337750436453597602361833354271868361852284703078114386967874044761383444184721324547557090963672700140375811698981412382684661687469499313409129351010963424860008204947535190556182423421648853960581112162128515172490610980008513880048491224134393000048549505514572134423742340331361702527397989692614704207936138661269627727068032408916227094895738724683304303403421784748042266191748354302034268295647304519531190154890184809327020154518569629267612268202192712737378611060512312923334095048663476265628462351481201408178292639853981605762426138247431999999018438119234884573037749650600331255257096022700767528680912938323855168877899328908224856025522405665472694386688855020903077621699862247112594608841741933620914189125679578982412785971525347919036405899913258469517132771585686761535531410933768233887506399712640118178523458640475721373070543270479371913470330064585127219783865612009422891014502113500390581513181207382570735214334343697130357376927819201696575037034416402363071357456407044364943686561012844464869088669791699874839255098613201488880250785699756591086425685815852286721276063337609255455218962359164137975559066919971465703681629342138586263646820100248449662583143820652233072729165130195601514205116351682183915639226933945876590187605749030368819544853913262596440580267948899217390378873673634809651067229458486971621399603856599054533756484319830892952942676743437476492207235600970902031883826912159363900459292492441119711043808063189598082350191068469621385382708204431016031074450294387949021647385113501336299006287186968726966606300372983608684307023812315560232296973100297556567686104223022627678277615839021692281675285195634876589758298653805975859889856912164124368333086409588289085132648693555201622450231596047721083184311005753818477871858995250352100850999001270140145268128031573679592242598468383436907602353859294692626040537803638856066865105071221205093470484377597887985558853035305594782013914778288666519893959304214027885610535152177608189546269340908161325067387224470333162833179947817645943055319332086952266993951516994161851223725075902526559167843138165454980852405158095083514486729969899037051210340769961510883960956992403549959265562412029580358108678402048451689764286843384076067454369070787692420199289588418236779033300328365163651844003268903094716388684176528103670121304938983721695110488428353824741326524926713194713619540026231121480589124736888862139276216423286626318602690961472384911785393330421912453117775014645125480521323206084377860491223426671193869447516920506723383085387321598716554204280184501932294714831372489349697364843789425482572537105004922541612017191641648133547360672509977567297857654398535479111005789387552958356085620681798858555412194409117407243860503608790167164799586539404411896123221949390178045686540706032514974925668026614370100280277094911556084080812982771727198523910082912742989582565563948775422882947019492179035866858725461160236980336775518519640793029511447961335454809897515606956428922340995145581307047288717745696098309139703735790591773344087086956369762109942669074945266256146461692170969264407982865815929213832645784358110195544457798987689061076294945131176585124379053112942246812251019786059894526819082540471967210613014253869158870835662622557629464174567053853228631654915040609894568969996201589595132011238870636390418077848953024024567566225138149453817412035543156295736485188170037423099661443660392362647416976697070795294178912572450219370696512220490946887286307665842534575633839377095666355553121542144913044603045692567704548607993956909399836109816039338250173457279617143542243715057678216436309634113681228588218426581992124170011473626891055836936680410612222528974699427101268554863162501502861097358936850837310558315627975187332547968032639144663430419402880502850595478967576182649403407315978723728201390816289221206322684011636687716334146369026753173321722554710320767088914064715752957059448454188963933229731248403578820248250887815525359822159547615254580211301730167769472256640177359178574627166660609490341148261893374179817704621380623297172274546134795424063692756324784746922003935969288334135044828199549583314516130439370696211071929688455662420822213692215573760283374947978254886176010510450321148886798787473799968462350660268909436941779851064841833282521671155684181668401695557110057665822784432471467841982465659691550919664619245933110293993476850923822663862986370610711338142530144542374852918844494785558114859868294076336648306315387479892455071264213203212256302884005014445089428164499321197229149610308210542346360458016607471827954557309305527593398088776542363811720430341809415956950417192826128284345448586448688343196629088049499468926477600824909013767141910069617875195640736005876232125892365513053188347716140264252647275931919529214189935227183087472594066635056456607272932948240269629659977258089794648289407493237323767733218083980246626929889029635218425526002336667081590886114679924432865374988829739102070395556201724061199141739898934733485575340634677981725653075939422020799850292432997281431027096300998921220824390057745366510015079785410180377140559644072021087577445761209809522527646101118685278074728207120723313230583778932806068567232485659755936663291413822670168016240293513658248115698706427980231631665466629761253544080139200501597017210894558692969405151122462219843465532257523893317939241973897566765342648644048873400786258787320169072035893333300718990219829655259094230916324539346942440978058733197951721955322699388865209797636780722425582175505982344506439265897415576968704943714597896120339652270446351263624317182172224440292609930562240577450613831705289271594928936487478735907771496365639069379551713615719192159433656562722642067295510425830754823958155169957678643934170873173006328176551674936718146360164988835208294913225398539705551080541313834930326888293100012916429565457129501245783092410129802857438503325487501839767196759555896411043884735594594850539040825220580704594713068355425386436127528650759998078590373280060385300844933979632125957870462426190448626391687640225487637877478819462429102792678233060744650280570586558010280947129083027453448707270527793121190610989030605371634369109163774467368346452446401408407605931270565180284203509597881016290444385003452546687270339136553408549892987023251501823043848145046465366673185692489552245780068031820668575047464896202106875428406371337443658253940872878821619973257731015209589611384610791236398957307595736903196696076764771598223753996272162565616551843218694558617169970675622545371223149706864242912392093118257596851010632604605058926839151354779264143252524732092308131915314741148243163439538771957518371051471113785125604599322335043484457087947135585219698966745114638758974432380206679424413416135536511686095866064122442300928187036017316894866836621049458157648750643075873052082388662457899282414958785312613194964788153095377256489186100564046044431972130207374337324112929171827596977286169329999909518148046809497417072835963058692517279355716481426586883386759093429463423281489740968618390205466182070639555047076831659623865547369715655792870981841862741016541661861437129713820271941262662152005384721340649851896300858211772360860794483213515236392536696687322812032409460818441101579545314534536827035860686046300785574272613904502079251696002706982414927578338068624473600077011624548244744837712207246796035879856118450404382165716969510530678217135608410578454150742472053133575630961906371934257946354565439592830847439273124642523078334266158166515026981818163183597893774921196825653478624618795249831845664962227064170620881671628959367648495196366946647959314123922583123337124247117201741775869106420278679506090627832250756618276748587933535994114000594077109838951344541282096690378469062821744435794067544662375871712046448883655316928798772646663337775538402853860998398226454998215213700994700222753626070662051223906778887356676897635444702091247283393089822698896798473319280312748571883941894922954309500904265836562486867322381912460520240967829505171737751900862010237836205100626503275507776784185886056426791094664108705757982166315490976118485078809669873932921533176151510623825431571938063178801584781023158513117769174101361168490004702438209880843390397680454378325180218340350018566638375477258185296285366665786773489571728289614086898085996773289875104676863839890653046695246583353057953861847163114616158966097349892557749024157304581591063619269032452307903650437402603442531154098553300844517545171248123296827364357708823116742658494327350959260932649344965004791421247463517673989974043652249127314510576951904055033634907665803432523839159835532003714897474790766472705747447127081947398638467823548358313928994275439737030244943880960095191762729315696095955391785183394929988957245789448921645961572381797825309327572799672438594556956135057984769051950879226123612674872730104724206975515763717115137596997490465511567770515969769834345337559267431666859914386383842872491135562706282329309857270088612248534864380334472521414349760905412984700084485206675785272215991768433711973735550213196982077050975050691462190449837680151111910461174478252264803679763365138594922916397358904240776874828365751902886471217517557670660376552432293111207570808836746803307387763008870905038036763888726867392238771879800394975009868020810627580730002599272056486069369777384177772588072386246634087270795361850793688066646282018625160104978727113981789568123177656821964484641306151103281455845869440700384096204205326813269840983135638701315143699065321714554873173192044195748770733688636287552718740480074728992072238828435436749745877179686933028365125923709195673788372617281594682044396893118569204347843622282093419462666354599122966128154808997176467586515806483360057151035921227653890370303703868701858342354725335391770069699223228653475574646937813126991118202146399699027546613817246151777988207671976318706169413661158588112691135658236454431369126409690096973415061237403608027472366383579748780314380494385936761868064999427672982971748341721747300348077193404011990919017578093164287151908802680506282315608650286004708768453771836771583443567895339714489287324586889326994508746743959339341574989852871248705332487853321131141517048313060538113260032582717821047489894448964026057312414992744315368028157860231964816267861777184057958141207400118755796102755512834484575547981418038169022836940642924964589415171327380924361888280948277483890192575049700000076273315975656205007233457827946213438509334687290387218132806813424167402462072986036065100003357882587421777941067021026572847543240879894631474487753775867035177886862464713669077104559800583963681223257334013852623992126967366030137319115846728975246772387990637237145219494517907067976388716064220793527706644472404721553937730143935572145395273042725071916119572180396773026415246926767516437003229997486677062684358728493271549436884305442300984622680350190121859916335403214245227221656879377601114201959172943417290056522027470751750411507515133449664927043060673058153651962187509702374724104789895223840776437046719157065163086980490404287365359073410737895317568642237361311865753109839147750234424109900961271971171358124170731585510642727891005837305869687343077655357285380677494125079256746309785282402155568292433801806542640208410847198639585519388253578000563867867321356382717445485645643203654256288607829650719086976441595074168300801087869025353128544373500190099892574399781830505273218683511225492501951639049327337226251831504426782750268852433153437444732821710320604685346909420773502460249797687876200345198873257837582600181334697330499346570561337021003617493567980444516347910396443765917538943746802768586893907965291953189941412277989416535707926636881338448929006725888671712479018739473365305668787100439294869290251703383301150209786866758712139284624992722738057856970830267921771450740686160289294239930897229516997084944095155431965875412463287313768303890311347600842520518540882843856840221412862919090230196636625233700726928941632805687277562752477078496886964190372530024293282129527780083559078724830594228845020078206649853751129620597435089662252634262150726786214748994667870097292755622975174946528945178602972639066444046202462765541225865504501770393166543267901112720820595901312616500415353019217591363435412853313156029780810075635533258493817495789806594742917242157817344778708898120239509861026445244944418569410125932070208472806708589969718850062519583683765500343502618866487530905108521238755134793508945936144683818033955507731676654567380072365131918696247166722600453879092265367285984204060485441778024944204931388802743968894113567816909179256490073965134114155099292981831471725929487867827627071772173619428878096509464939016314849753884664980719675331285553266984028471384418691242568044464212321316393700860179046519670604360566846735356722655324078358018391898809875210511171844376982275508971713085237879747691037116355479898393692970352864431638156944414704847260330507428456256348324864015307362638201672821718441389815465475693739732753110502569612003117733978516583611769815350085494084050671136511035854709679573012435017524564769264855813941230765729634956433115269287381364859703184207811984837347575094625273838840047159134132975100669542664606075919429566663674865711420565652377992551940387823304284202274417355158800493144686417773612653385546046344156205189647153397423256793696041704670705769839666122384733268610433752417060221093632193434888787942220830630366589503500552584925092469266407175416104396346972363755571823918295115916505848475544990017350610180263661718331600780748795152088570631522297394923180936350275660388269451476984067248890786065517956431343879380762916197491561425300991093882086564074965054677749532979121383007256724662043856398677172037860331144670699957861338869676555833926011863292623724841892189141531486913220543764045356827120641174866947674881003881767380099997182678833179294588762533106887376462149541033416185873069438983201734296063392474100935120934872983087202261983233102722481721491681382727249671306068559216954114703364236451658419051061186671868544458128595794285385371893998634721454619823698404394955806719582708690475429999486219122051438394761847258238609223680901993059086346825511325663705912788433489039234742256498396644796627807153159618032638697493010095529925522485253285072598988654023974707384933162034372509840194435476182750727346526815735813145827460939730572520503139956818353143462765008426429795162168544352816014454401568073592913219168635588860108145266257335820060741155972640819060993378577540352333790312109595160349432654275889624247243107071346210847457703655868186114732168402077456158138121704969658972311468417712606914009234731901131382653532384103450821294428144196432928573506781931285782466638104329901659378974292016606919488805204909210805790019212437856968227890113752573292385274548800283020062661188197026555354307799707740853409377202885318740579065843113711090980484919844712331230766614421986721530101030085048676830637973553334805342870934165680174770847417726841486885734755799579641100589634099662260002779464167802172005713512279736580089899289092231582861727774229287783902442767604603284819637677539081405850300043943873842002370951924847167554527878675469677961896203518578477270605469980158803155400769929062506133430457698548244300255098792353771876601024947655056914604652229664760361145810204930842076668303107206276097208303064109330936330988660121945353490788162926952944276327758074405487381025541947666816345458079513813222914944909097908535015649536787472162311150917115130079134684601416375149786334399955690264334977530521458873374107981659944931628911549585498462886979417146505841364894689771737513811687500396056863187474557242522170430042295817600116891390808712402847709245008171724139287851151962985244584656800785704984423555278348238826502912483344914433166857013509281410156687920020583116553343661189179849579963317862200730659838142631010946265396203987890854236641877618629741606748528006305522969231799417661537528844980018071355416694267008038580172497398355568466946036940424010403794893307732756402539103460887236997576351576813693190485322156918826009934195992797862784601488439365516624302784785736722155991226746681421992266321563085660469564407030083794551400299528289249303595449571297080992280965740705423082254744814694380798427459124277608271069150090301287704293083050806430979590577601654417537731325716406442032747387873298969232817675641746701318506251492292852262174988288828053047983419655405862672471995475596075915236824138279745024337080714228175801613922397793967853212797786748591784570994976499628111422020731939216037582815569562109322129537343765230166603076160844376867808556501834742539779336966831578450874869169386349950943701203044034605281155170958888527229841109448468561164977842644557175492324529336610361510307322802375213373300147743018709001788770697805426985671528388481579664379158688856270994813031775987061795360635261227590319900457105663626633002848167439387431795303971605849392213839453074870656635117532835420776327936627391167063624874393509577964071931724705047395697608256601822417866071516052584128962692521573299907137988363526124508408377814620509328030633593578604117483755473257938775980048968766679184356064936920146313055247500934365722091600214260894855478320549126996389246261055024604337730376091352358451306975352817757724814090118412734364298858081031892270603971354508267185812532358737229776593556594695177516714579394779338607386068296457438204961558399955921966373351278409343483631136658980700396527394690395847386470178147783921463124829598242295155034704597676117390614784202008296535441296825993047129707067698468940477539841201363194901270280629816381522432611126939573872245000846655277075816520561278275393640917820433408572264921509717348194204253577511936064658430832130698770282935098797076131153125045723317650317749768572947433471090403247975016984854660732507474433299797467874248135680807622374874160050006662245492486205127219116821460354891954700277452683605139324920918582560113809030309032582902796556516723622073934029669837013959560898226446416103324445930007115627391534257841722893237554843894913157180259614915512509638279386977866217104279804800339331669227541139654936352752717477392815655560799967444668691181886205802445648353876421166406253434156402296985572541457097990973290234070832913159962856588066010447477513195416565003299975491984814979027083991297728543610064668483373545601513739130103028485917454715063973413874368274349162692409101112215645474713856817553683799016473827783489563422287624166111267778882081060673332389433398727748427953024415326429295451816101181949783178991380570518086602033915103857114022165359521906184845257554790139999339593635049975777982655881898024048638821905566704643427879833840683832071688683150091330249722156446578263427813258515184288422905986886580351107480227984357311656661835529352430341438236565839833937574924015136102529288773652704732471562851161288436447656553175725712054858074699153193115158877918322277745619491270008118230878943259578211547253943649182184686530493051635277667776478318762557480856011617285230736259076603522222988274685911378100577206240612042505941174993774291067299232257831312698473279269150128663089010013121298624756637091641512471422380710894078260245073163519186946036983895193270663293690603422975425852969991992806369354170065775174415879003338001170255647649478788693391025898059895792978791783592642723305743837159328197963119794356953536340098394527971495023156154922009492427626185933657148473710230143414417888698430762032827810927493540000444853773708255901001607577565421625602396903880561340632666613402183224750957920082728247625017774266666952138536823424112581793229872424045507657891608493400495896021717339449280880946078311839939341247561628119954036565168093607930456916565493231867434831749856863300863728610227317461530388492617252119427358013292205161767768495420318713070830060878478020717065127347834108068431332562173752582133478247468487982708049100880266440104093606687677821410113920245939066060991951044614580374550126719830976393939689076623366551270567998359473569101044469733474086356537410788145311379955886829352927770908059736251203354984177838606133810763955930402847260329920852932052147756213795693314941404877087025673465637192765205485627241931596189595595029428983957662863284605711253040515779570983159972438007303389892847774500306437937659210665010664165236517511626721534648243979908205607193907483749865181489152581277077607492795612993365344182047950417510687856005187092250643611289793391480169973119422099335593470716030731030076775047665013699809629806854017532416711347745565183186093316384848162700309296332879271394772783116405615040560024329648455674031230246319097873068447715809946529377646607864736650451714128034652142548145292196608776414117565521551710771578789784428965696301152020324955990895146706705560365939978150309894405481692048359928704153397942111533451957007422572861675507640704998405304003611933937664447773810535103350202408365147976883624172014955087628039822490376705696657041423018711671487871629964629540195911357016619110930374288193932335371666295663324137935322135441072819922337323953275157463888061443811413472911898653194664800334132806207460326731039402862568961404855508007748202135656397665369877705793195938613802649915214827723807027492712995199687320608751466640243221056573827677277164941468776083151298793002586903694587540318902528077844005768607502592273953901196709468751916281131117319441560258210667671061773873769008257536263552650438095251749264880482908109400131125810291917504290274085759922358905261254356356720920473330478498758206144365617107421579096963489141582689552972106635590192469171972904693933266295897068682044357186569470028440424006276873518307880686284728003163753806777387302422430591201134273983893476550750956194245733876575716069307414837335488127886791524092025990262866828127162556258829415229621204866993924125367291850543431639901765978735942379162509228416913620368323620649481450802471323368884212912174547737539853712784123114509912491117400645689495461739727148373176707975255952342898429969929401192088881141608961629117351821023182165317055234515704999863390982682755394192402247030132880476579572011494306221750648662612276000386096041601084275078796395663278922397764990702307649370372603097070668626859477205479376355827926725330820756120046348816902954805692087512103910978229546548074542293024675287260802105150482286649953028202870623102352235328209254927383363518457780303605379335751792778221482032651150396790775499695652785126540166651104026474676837281072467104661916269677441608333413129526384741057737320144897056137947769975032943239043036234513002073563853383158390002247760410903109793479285787192350035109219377335055039577879926679947730776472043425740684628739054600381436564637260655778651341247564334305201446075943721949010600322798808496815904412733630419449010221168465961157224864098011373783864159913384690266611399445813590156724869981470989987239606081548357995921285653790506145878843939655538038187449679343690336667014239680255232641597328097634377790505191122916316612734532313803029654198880435705940687626067094654959774362579083990515335694722773189986141572293382746616557690834456504607511630382315156112835999460724181824199045750603323446721410347821918496583067861536030474221201530733959433525346668783769884201182105595034476414580606757898914850735123003840518765430771533292353976056083649332680764140736892146453399168267409160292149346156809328803194871477709312587312996167089955282906317358170583287593902146694801222929587704520774058889761542060008096814115289193172662271758440264367703736348380865956393875290583545790994454338316940039732399372471753927656786619245772236492586569880821161825999675648993222309668502185266431366946712777588185131260140886830860478961171961870543684886486637037134277436659507158589033121042629322864570114265249246073493583049370272222063623103690875676542479610751424938275240459193503894719119774171588735009024142941114894371618422080573689772547540252255996495275969367389767032280592578341350786023107866087740793137717527553957800227155170417293780273561268092082112952239855155010511924310274229385354006667580718677431092573831618785116396612268770803031216516481067019972156562380915930306887292335331316374563104207478573645477274585904577566184209245627633543399973393029752079689473785612766518388426118650636410708982351273510731132864225696744156245109898244721257583747229363390394795551216965905009642293898224854908314130680244599355792631072416813106101029098649983977456688190471509450338155056749431718552714968528502969334248708698102959278496191658823569285559909825738556187028813256781216360680898202681900945232657107407590365066902642740508670488309358556167928309118481602229102330993800552393549310822889171768742635468338110923317857576856237056655819115329840620012817275137327860381924110192058500402780788261866118436569243243911203039744387715059251331265093699303259818648089775287690864693537147768140898189696989447839815576632211536917827407038479769620056866135662741227502704275140987296020802999980581907021497511449163178068502894513123234679794569927313768862111176843254719910487731865755278597536112921938352746656132399017934999091314628433230623540944308103296271282438002594877994594689673039574992545361429279874781718387310009619347208076803301593665600065339001555396755030420186389903566713917545950420157378000250226917535436183132938231778370392503891883365911041267043601261381274768065636456568682844418603848939290030373832254379322814959877706664466990355564695901166803262649932298226469224247753660444008866813660601517017634183543245122957191253956882736456664537458684524931521844768950515067092510111278872660352783696590015789794881658098840406437517432904290012164056017387956526158807773602493063691635226123464586934149588509041489144077054067191731301605118009444429586057859205859084892047954077966517883918634836439388489249708412017565461530671409528816365336354645880187391203444877649776507433077264922951881803158689255957505369138670463303476748058985683348691047083304885646776191907105311403598333743741487363582837824820484197812848485010460096425832516453797866932821011768113314517643229941298174498831118900911409807930409740076027699109847106260914148845806097650649315589347951276708994605997603831230091769107983818524696843273622532655429518848523649531143621609602159863096354990124780749094663663914192912868359694033168671282376851422657877860603929184996243545875031429002773468756347234775167398317262981148128010142599337228251164359873022735130994228377474528013178298417152423907653041629204850673592886575317618382285350685189811348846703464009554693941780474875449881337672908148979031622590122505444102149176186010665651519020657269050529891063747363011497224218703793451982516094407885737799170498820552308212588822143264503716225000488533411377353625448825772878329012034088565081880325475332438889272360326983577081314950929649807518122322989624562400296075057460886702842236876472106751127527407199650214803928079779524484871522828749774072900420116318547155202216610858757733803615375076333118783189158348298560018620147643801900997022863269293960489797195603074964065978672265706192908260936903345866691212347401878078303274284582812382735992581350207227943713357298769669975769963119873230393142069766209013938930385509926279375342897089742668535521751420659064564400249685012254040671838086121432213434420898050224710901440411732444794085551076190106467989384243594262684099686699868945156355203764298394903291324289601684114673191531307809017641356903700040429305583234725552194056115518827499927082049967582259368917253868494304111446568833024645273082254873329963323408955125002584042032125465867132998390343923648919265467249200718722814835651464628344175223943734777059186702608262340527296699645000626434085890839275209462856314394745180193159650943230115578407133739571488823862081689416797999633237347816692418243793916976825418064202800356604549978981533211151820718844387397970785563270227096120213107152139638365347978162760400506098040947622278072265458595943499586374666614790590760208370991610394529223457855101940437488516969390858407440136019595508865410816773453443251807693964646910385373595867300792414912555682571043238472776746852255468249305259888296960434399274121369349854846904198897126891990838227358688993314531006277320404368379207979491406520969560325303209623179190706268914598538425474362643019034955775781413014993407472407218253466136833569515312959670371409518692837226780159758599191023236757574322998702289018007341465954554300328175967371705741570405802735051924845367143267331505310461947426651441677660718376400341186942606039340717426900372576397463134385479353569318612502370570355425667454990508780552983957245250873231186248944691887520841463683645918951964511134913329533418320973925043978202023476633633735438268424499988290644607943205166252842869928812141036652608356773245381305957271888311964278683491342201407089699847374810588572040794941029551438946994803595024958744660835755677097497117173628555757764964265095047309118651284979786949446164449405982897097067004635948163713684465137642253591811503603532438725571693609716678069140375369132003714632833155335534658552088742478129191404695855588638040297563059494205985093368789149220345093873007500189049260911415468948681055375493602441076088070623899654407580784793824676008973121001458605193091507642078562952611255673686360874819472225466260359260776802917279371786335792466940801118290898615687033965069431667121485487638687917062281579573743099987399301422710593658123015856429822367073437550529721989730784927067075991505896657984800862987469918907781024058407213479988984600902965040837172648274997118705099665782389661999278984105113151463634710384443971005623831386453224451005704023028254522958967451949099389198702551305817032254768628736619695241670823307269445235340358321489903154884192135698335675820802331022225189173771646817848945092254790802112118621432449591122984473538794236173289283959668574006630671047400978644592511233041932528329279470326085081238530104386560879828161180806710731214886660448425271810186541543614800457572220186084644401907414725113108559559904809694159952729223772604672206925568256530339255337282898946342336682066842860233019614619109022882913420675123507170144990276137941885490375130053979764671026494856676638516565743568507626517022354374733681108537636595316620170124056719399013721668366329714412153878270797279065823802324408410581494118237707219877306300365207709055717229552089494337767102420022186266655244164624903390872168543754216200902840000949463407558182461770940522061315188588801076700338589128707051865436371841904468037101830617815225061311677610194278337119262056199115556256422804518305596316897460985987348297886278418666475457563837457778434348972398175121326142975567347697517651895217072330679656737277417236421941043951032466729930980638362293935654682989052775972637054129945501385523844704764367973664471022573433518508264294090623127566494435328829615747099927640823456677040212808756314862558410945524827361039002696236365411453100480796835989059829506929655569935188304683899434922869303111581197027963167672895697814880104788405670383586289598173153002109735550704722546920163977625703407991484083941229929333559739558769767274283439684292025595328940545722844896745539104678461566302453957417908540901516156188078498948774293457531710961896663313284730417116147251333439415778390596960024952156046540803079824239366437836407149306320650840868283900854513629938197554037640487021678613736626940927451806536226865089570117398201626512076226050919962620003986827360701844326971500791463085796572405642535324788398514422107157657610027641939258957642169650024096721545198682081229696720039130964034649547023507764196317613713401829926057406416820981711039642612667297898240711184322182171031678235644089625633026154423991767132442877196119805782809664623832037314013863666761733674100427226992204024749671483372340379853587076134393702922800495431150243782984427470480554738348264386278036552716914670108078709442121979609285027467879963850483307349183371253580202117930478880965772939869729773460562118963454478027000469954121920185313774565872722577911746169113705826535302312544436451669153894698361366731620656487878882029860730400370375287722740317983522466358207332945304963026027619315088745924761044332796763138891873409335272676927189795585151848100583006663004409362755625504927316070817216577637873720232006453157722552926440787225697418456261239536480908760136959511914606303578730646016065206040936333572759742172380200469626245415960560588330121997461298613671081619768297826982532948813822408405976344304864975254576139975264478081762328407520729347131565948927264594574350355074604259796462518090266127664727646485348077864109637313699253062218223405450787634762178213647570050272237982857404045956328602677291094431929736294178104101343786510333131386811738169237033576122732476231856283791474159951920932928605940820439770972180600219722800192378908935491166564421280881683323003423979403954022868218913761072952673673747820061815509387973528124302813322242485486476711932566805449678517473453182090995722671148078945838563383333009769534151347564773802951744124459425625799720277793149445292408722394994281157545864319000065076085292191865120145072641663220285518511401134116339902291315267885946872725617187890956263842277115007314031042363400863306358798706754240142487491368106011270258919273570338651884282398007701125406776369147377507903362233097649571692026683044164552015023402897919770986998894204866510850622749477615575196028280921090682020843302639178130295296293029682600855161388409278217010307792098194449366008969512730965685165902182899891664493172583727849768735555177245027610125078830184290277723633344690594449877088289880839890651491806706138097813883515789611891824858831835601640680335425031192031477522750735231485047168894528446326014766250813060725215536746091382537791843002370682801736797210926444042715924176458492385513512193716021021055752886181044940925182638080262676866928444011671621928955313917519866518480512888403066111902140136416646222972233252044453020171309574741930095200797613114800595629664920181797427903184191092215129146292831078339052728043958432752364375744121521052695883189179397408100436391581192062210011656927159864305620612156485444858535269303263228755126834265758120440758423481213115301578637511540324492061976669535977199324785830711105111334317522362211086331522963268589602545274901183989013118075956392354389987301257383549147339671387469100639777290121149551468084405210786528684786738231453063162365463861124172993158537508852941613762767817688156614841991311695179435091434827877319409467679541423587942068687563109511275702046935314894652354580423941581321805507795352147750549037230327908623803369895054531690126569705571769071278517147396717962538847576192425835437397534761885589247731360144435748087459802000813752262618403652874604477548044802136572566773690687110167766839117437946801540627788614300157017261345237522369482512992886240964715969855600276547070715957596976657334707977775554020550907542556975559227942704803679567445303234251439089364568398256804345943423798855602444724132852398171297410223684114069975918072994415335261869338032225132932151629857221122746202415321743978502100290189870282499042402007902651765336121386042322959318335079100429372490443121659469478804917397201157811367004195262031647979555814881179780046076305713494321901880801965156418103664282722004068740098594215980307172856045044972556131834294484007191766526353927294417013836524156419733114708497009779761898556241451775108234278577080422353788718585976317129911458394451915316255084528347475730140956917917519177155958887694462460878815580979521893601251677005511242732700837294573495509835661760624187194671330533016804632084859220258935495903478769525026635536134665560383604678518620725636429132722219983986193905786168153638611015848832144695866181987696217034682836897920050041643941704455518047147387082967887657911603729644561084725641385321043595162736074035539762587768316805831858731973730464644515839983903380512991547779893158479132123354780809793021988541379115545437161751996208786205049362024826756215945415130669923188906306829119783035264348248131977766141501523183423482409580697122224634855898323612083449044440819169132556829959636795237869257112530894048011191254415052086378678955874076915589242581950526009783393589796259792612374112063316362190180289755809550467909412051632484636799301695582852486713162481415664452274352763143304816263568954494755682857927004261508324196604596678726687603042971398477476902633246934065210751635661085811191888597668313602993513885451189569479104632056811761245652109203488090340465124401169820643287258387152654635199951609912756713644978100527642237679134617395714988579399257348338426570370017251087103737722473334262471679019353585125889880736703737054554452888712960562210330343709654546466226072525922959409049918047448102039611462429602984597852237129340606792867412494342459277826591373917789973837771283601430513689760235712470333826897059713455067676617400904293175277503335423918030129758091329808604321509889013467821549338546680472423838047116645026592471813861401713429424467948823336968035221637263948210048122163904249327181932943260628028258216051924011853048027293415102020743419276047331998780458727255206422059985191500163024273868318599806379589079999328722879677370710180023889169160987645910143207769937349180320768839878542106199128502549674948037940600015550145670990696698121044066478929693030315669936110881746511495617684994124529167586545187194855366277337476033097474979025586993667599692490331644158916059389521974783414133319623326199436704600253280876332314777520214905522498355095142962916868217642617737851806453572362892821170921424876801814988324508551605255399907115983846029460816640688871869251432106357257872340760170429215055098562074539992807881737923954349856854614875921859064240291373477324694297609929260639262346016871104278993386943902019871500047569765199641606367190742896041089069471587988236626894319606636805044628362800899540684508851574163488177574015040765364809095979067847577498490405101734045127553586213746033434381996470798022627148476177138339392110987050294478760568457527610418086571874608547251000453506198607399085865738091402226060921284101572162425204504195181824285954596454174595424381239043757303160804779321839872478594925058250096347242337187974859482548892996733140357301379788842776608173676429898142238000447809929252045296331438049717182311903783826928651524403396174993250885978202757739567148550648557556462551229890071145571580610599479765048479691016431544269124734110625756889235509987701717106591030106398042854461089566783758852089357895199409291298393322911441529698946910090279256859202444499412613490960103434584485115504420714946939285123641811341536930470969785688537847757005016781318034219051229043069520988046444349116522022815472949165408395500188068799792733702379384429718752407972429214685096844250081986965316922450743357536765235746427344754045366783859901860212705347756814107605363250561018384928841398889180019029058025590414279033596897820013585088257708919128264531079226899007128784505156602955324023713803446420930550094076977667076508300594512481106004682343200526548942458140054571737014426900738936569570300795288410261558006656604312904352538760554739954180554090464833130316172461732199344791463048100621498458671701231075418166918869522816281707615133284806992818838240666288183260251834435088920479869709725449361414033102009827972470573644403965468545612526869144205366073724776717134396236591259790111730668714124206910202141060981782168983859649764676401200454911574424509949580369260177314541888772719001912552296696094312716597806992312556057197959805087107894772959481892948788487794326351029970611761036519894136280646345218060235051192585359654044066425054208238084972625679347082629789871781131461696704601566622131549867731767220042631191889990370662876624327448308194399838422930617183687421635059593915070300820810391549032428153242813119268649600348678263634525825233042363763108140015008475462371967258441688361047127862806180716296358560972823473146304078400370775558993155843691035933828984432028780943477183870555366841204237215190727445403934095906055932687885272806457368814384249286882842020100596060991033933140552781977347652180533411188651481977018194854939739497250773425306620018476645019662308328657979674779616590907888674745054262171266025258099249528418409002302247600051898162956533126695297530470671990714386612963254931375000125842105145772751940439157472240281074962073029728538566434973698257447774939965187248870726025667648068003885366552365924559049055570621976720276584137043564774585567039724976519708799491038411952654914270450489426388030175176695746254594353797422985666708642581146808985993350729152712484148432512301127635581496008689231733118706915459588437577048764045659504497532545843778493298989278093968665483249427705728687152010392264691323711601989990008669804637594654166295428200279219923047479193653087136781044682374135757584349474968899562316244430896030147171871406250455422987824873674273432961608389110883042835589643370620046966075786926397389377778048508230797732738290629497124690775105323957876695498464014214792021676657181865186377332584758400732315081906275356545811341451743697896785032707649611152677292422799495552441539354787900113594977962027483056358467315207009973789584295903022780774106996447933954227151362791358465620876502991432106405935599761987704464360402692791096663718882254643388291106876640294050953473024204022666648157488515563124831726832352031675276547786354723919966366662377257524888218211572420140673853026448262136287152646400973475131213751920912189770049727027896199744742163305718149530074287622362993190584665262619109429617552657550196269438124960541186167543224665431759378923589516613144888920107538392718744878295495874710696018051527978366916954009327729394431388277380791447212439210439594923948101224143019601008665606407523533367327800459992419309973109924921086767978115348501937205836607063544679138006179970467935228773938227726233173094662280245138247405751209160700753464190145908365800476727891123645820582363390714917520209025700889920007742638826719628427543551253481189464274297841014435499183746134266060278653076179976115120049414407554552762082092033405718170491884856807880118298409237160223990730561235290769031629938854448224290353362017063652083759396158536267140362254507881771566024850764670021833831326066393072900991007868070704931140928455858403105400273554323413795831188716516025624191503898774557271033533235473199851627417825070882179536405872169066627703733938664533893330116391247299556779729003934655806921245141832435021510842974314111081955156452627588225414157433436360789042013445814366149742322414409229646682581181781099925549384860813696974193274289194682891949736579267670941377758314107442659677224242001159295891028579582303667972223093054747976265524216383114292477000114125390657874115391911060355370444462320761795586244261226348145466183245709336777773624770020469859939286222202842755760602895433923292268607941844451754980893345059898354302132069230019486766850680520931355299362219638215391548546266201848882378868879027281039238687968733237186315778418376393711677400804767593277576914551670003634088072567852508190030006135467554669467800460218819541004556286886839934329339884557781701860888147853800602313193466054046283694475127529420626313571172111342396691663334589743626421615106530173830248779424914530889392458387800388375319943655368844634883226429339977178873392449967000194159268021466567063688189802367072906603569942340097730776843747341598269717845773579037204111265688353587802297595415635822431865436058567768820785517475781336146664469270387188723105182757437549595258894159466648874543605807874376640551351479686174077675300849539103383240853705319986220715589015919459046201677081800654777188406099715201638273876753072086859405555193378858003891026483039637915080316230270637518210562619332763425619101779677697589065502366088092905269163763431339982018261745407957401446366454370837475052310728795939100685984722937358020898565452468352447811432546981408995511963546774957113663323143462561476490512645898871553571208962780215785680231000151023649637446387769828092887530862558536616818230196419118191456733350787244421078693767072121356973467418205589070169719685056952785861530616091204873828240730243458655729596447005138090370841978580386543792480412335453206394192991789353462531683844440669739673688933802967524302866042257277118142813449050897710794985154953903219797576729221967069315324146230090046239558774843626234900072863101808484891090252221875728720477882641070775724585349066622357936375046107139867554537943904376499197638390909976469172996260719005864063568539746877435975093980785075414922386567412262858064917892499929990649642802057575368946665608932650389550971903132402222539564107224958521744893925804612096452804179414751457771465901387363367045879745308917430902636619502847911564129761979045374209565253177053951054519105755172381381341396182591730457447537951887003140444212328914053247299028243630108943806124936038730902823373379609833958728843014692173318192462912436211420536379995588803036354859959729521087197627626060719289410327642277528475909594741915916106419984167913337637276325034939285573860603269677645555163561930132810232446931790454255682134001084685870671517372350587290233211818741555228198575681979464767956283262324128299943300586436624782748132254154390538281255165535958152601218524961502772503863711146915296320520213940634751739389661422293960198673789550836436458737773926680965730334209933757313457926650168637310334805312960502225242077952927748217546451749352975180273186897074937966925598143739121680976795012749006482995323280236012439489871748210793491090631190457783892382661999607820863635261498106486824242778383810048159742337526918112863255405118976943877896705257654246165648935681569188924102193144622262710310723493799376366481394589390415221073913444534044764924891409529794095459139280218403471463162424940075263634637896838236911588749557981644714928947656284654809716626966948792141887521480616140833159295770483162925969319193377411594560522809086240942473117017034102361813882687332414212132981788183256148892153125945859687095632787856302618546777347649853463570710351898570581482266511699472361754100179982290279922558793803602445008865553254229103579037305968756363391392669161538808396003307531891731954380497130521288192152411917656172347170913699244111698620770983692465513140440463661221232028127409646168376248108233242431627807893240771300940773676453535027949199960646027231836101988349235352805785116061806608556241574694321905680160308088414229488951845651958169553341206852089031156364589075607083785719619800845824157883298318063148831122467308342332607267678035020625290464164418664519478704421195444785427840877036940468882330115985861377988359587321390658793974821039677669426611102961064436216116504981735570664970711779649134394889303073300872581468001231707400900819658762069980408664081319421916152239626872756611508239413334656780325372510806907602768740320851277597692306645263208279549622285495163151325428281999303567494963891851353731577461139544693904183527605425736028206592584074477367030425307870598578249422423205833627536103492289932617688139872149681737065088759641223608690698398011996669870066975872899406377641357713099921098995866845969722721478321406262853765218668409748037286908785130979646077641102278051765181316227740097437213914160165050720237144846784184848503628699427265593327365289980019231548893409911795870727686113429446592890993815081820507198372125290042561802613618978918540556625800311695116631496327386513993706225169852285885173209933651281435409036395721035846477796502047037374987222656860096558348175845143956967483707755557655648405935149832735638772200145233997418823695844131789862093265176542466709365198822160855304267413054485665323569439123769619942337813645674971752931660039583463267628041058221363387989818084290627061473876075041314135481218185516132751442616167561880968972585543292615425546425928495788986223548046479391064811204821341039854090944338468852605140272364226689530568404012444522734166644520060617215210100226575893778453364202859556596660272002746755335290388314678747393474456504818211479412799436348063645176866301712740263344582642785309443417553523586631547064928635874297603356567525965630475632623989564037818859918993492585629305249834283328910035342493624501817949456029199551447091321481944524186293664286600544602387246879780719188133684938133021404993082168901094173896759573268743633097247723101513405836516375885411308890403253065052816050598333554531606931942580133379558471932169262402840720735027673659183474813489702517618821894501626674273789399133625835142144653538878495679045469731958694830692135274618924045413854982690050848799693187779806233523021737110474859764296930833744838478516508429723893600515559303300480344198917309028724999987318060496717220348470539646923013727423861871901254726596190345380654958551001463645446035124940661849619610863678567557131841202685327749358726676166914610119414352519404824492539589715770783168386113397484859998607282261936984175978367268643637443416074358579342523532270361509696781809280305979025301710963931606548968025997707823219653123123180013584514320858375582400413753558877550664421997064649230918167422362060833235507298175137227485870997877473752236990629071749905806607654468302276156669563747242984325148393113467496226358214930688772258924559130186409222661255408440154413839844349414184049944016936942235619228562581812997957348062974862975922927588929534951326284708624525797345784860390964626926979337509216780308137976871856634308803362819930126175115000850828818547103829747696343446442017489159926688079009826263873358125975497953263056003808107616547616548805547081245910458709999737228787342232958207017535393753101728744566296699727381494552763799285080547964707843027972775001176683569567146027605420383908453843178119158614618898265063959883546867703796068093892225163359712499650995026190523306171642908174514826273152145269889181607159911223929291537952065464348666210363138880385762735672987350237019892888708279266470348109237300765123941191913037861738226778643512103869510015153888595283993369403599315076641831897785741625665337573812513985247970759696809890900114887161752730958172815468188412889196217812401955915291229046844295193293738610837377493665563398792246430721114419928063447457659548808411790363125081050529730360532406121470689510097818319834107859871419689988366604971145650696595892881613761846810755631021203756490373087707302300182409515840019545763339844553417883115704110117781180268715742704669590993374783747863432330546080110293295520895373386327624642855232740460519436914033801677157073593724531490375366889979110923227411754391969901315191300488620077992819318858744942333328052437057291204981058885849626793813294606911408224039846361756973671873492145251005472371805709096598749464045649605407761345443209748836402569700644680787993454619305264980050301938928984890304524750087531898675436290715096482640061374606523707160692824647631589151879402561564752174607902765869043024889977772157358499877120910124486249851615379902520864550058161061833789384111943895423685713635637362649295935932248213048459542949270230513395324347307087306305389354426630177783273818861862978669031693184906834370811789771501274465672677728398763593953996680919849272987367540281084724581380373120539833969691995051973943719742105275200432687279685691988628435660429299992492765433247320625134177677328935972110697158427719123890453286169818166484695517138035681024181514862055882725451351836648986985037228753465358209176394539862726464246028606390098767286487812564424240705640695733381970394626908695625183823594836844291301073137943768222806915417455359346076547224792322129354063746688773075101930615189860479267489293708962701772173288046071758301377711781238892804087447815646540627374944470428272771692439917621342381483812040001304595154407410935048898187049712641407788978887250612552806289338896586863921770160428492999733826096444700959436375668556392376863960606608681000131528968806796228082221454759570709666373618771343003243064371619282384826666680564331482201763050421969269219183451140146207634891525113907176342668808923038424251782171626427652705094925291565145525070371834087558555709012185785273426442488949709145720831877325763700323370875521584134625798944330874951818135888105183465644884577430031371539593925935756552666525019109268311409719885394230349147656348953419563035955559910045785890663940902344973642220388066976988824828329588939626314076754590399278634264743392269535650782124634311363742319821086552458060409174325656154482894100137541050680083995705694826070406505424054527448614716746826368996878163937776004159669575079201747471630376193160705373786868568197959043483160756738962400166661376288394848078304404968621257503415690973181811360203238063301679844195219455011756499147974535611126670732436398785695523259974437047766165374799937485075836399181612250099520213038749164274465144248136061758333501214108559152992587101530600620901477228238405725317573679446110253788588120053006656764909867934078611353413722199763483561115361332266891061240643725475489428093271579574092050800731171671502441639372982838880169874588728955382418017500473140169547494254975382899832889618381926461935205474499514846632963784712077167449575774408811414199593357359206473628431785700428342742809571682807128549111079169721010190821722871293767958657746798962894064247161604194348861342729436869649812172124858315941693852386332045013995493954370385603509328095857594812451827047321880871315808324363646718133029689802221144091010764516052760169703696580066122877599196828856673706207719827098412358323106463025915664808259247971493908219366141175497816338633857667338884004999126265168938214340090250857770456923224845619778809921023208385762893530811541535657368739132218412560955350894077818435993598570506068545026584965480906886167802001078624788888920479365035190365879384230159706078970793943881795310188040377179112224577674963789061902776758016171733979970639488917530918889484414315651266173108909851567705346678528402653315603293770718874804394438657270583012286300107243731857737832980893140091753858561531052126394312730444204645621865254894985696141214322038690267168051315902987097914023025613759268490159185808554774389065601192994503424331421756991866424063032356697046496248172235070673751177909476922919284058248196981137447490697578261220000454632373673602022899709000429978591950704541924123333887066056649382842235103891470386255009963063571522552150846825159207725189325868601916395135287301814602625657069764415318275902394715719630493401239450670320937379029227447388568558732983032809677439147082856567736413696477012157790956083559173231076829855561430416334075633403826691948837188281149330104119155910002112389797126197457686362047893650488541984831768818528774412059597511880280680064832788759893805777334068934913486220727058842958422369028500032079983697417193185314321681152456948286851153254366494325570288453134169688502076910602968390252406944562436749279366813684956135997133438076810066659006545045063083151325450680644075982406746623121463849459877389571581753977256078124642114177935555899244446467824459179262694293027182257139436428298027862528110570598722012332541589337840469316037677206472193301337816038267483560756926354266439264342325902665770530989136660630010400916302441313342587596376307873296417078647356782635226524908491083736469451621310603465107136500002980561368797912066534235004072959374714927319648901852507116122751039824078394735601853682949923529486786409391938049501902550874003928418955180188613250781337940790568441508519515270738880599215780992379591230907798117908989136728577941345089507835927316196324211373389273716152041330233009125685734483228383180058085121935134914372606061422258197447508355686277097285811722326401172316870785391933761485880238188575240380205353915250894415288906378632263797639693882476728810473276372418251886233521122557838712541171973711115315110138538894231854041961395248308070765910260049351204737448758752594261624722441108609326161423813424368716967874962000072986745934349393812543767500381109450800457998845865184361659186796113432219186222968333651840791765461351515886679606837353741297529879787908930829370747031158472658457531048748005153611301077418117675402166790704935790104445314154881219592051012905814566095592789278923412198523219944317140619892662042331554977523455231282269395033161445011327712239974147039723735796871981838459580442103749777255919336364707317067116726962050633272763582886390166031113324901734021525474102076561514433289038452247394440794723540149356299494272084844383125327320142997577614463615522615876648386197272281227517997644541014069887342734647834050336469931627173040509419812711001746978617460531809475841558504477100521300076846673874092724235251377399625274554758369633961830906378161534416578426592769483743309989818448473074636021866384785051639947012084739765494353130686563046235106670694846956722591972664150731266317139952303428924351799074629399597207718310545932308557853373996310276619697478137470565068176619672352105936788252830577469382050595594751318485130816107873928097897929493528523665222999266002401669248140142350184668173503661299620075851016257153948004733243695145462965110935083714681417778384453010182845863308291485494675192445687833158921249811767176588271170546437287091150693420246337025064802906739606037232196798573563714986063495486880197390486245400647844496134693791548054997429334769394021273578426507008957134767041862214311092549760647802762113781667197401114482498653749504183781954105858337504458303929081402239094344674349404063238429109982005391873440008259032105803386656932983526788253884043023015235397112470337727216747962983034462867059358495843194477541289271798435048112269856130034742342082106506109934120302307164384139302149060885951863809925833759498393389728968444895643391117715607091433077448901647463678016576275514768829878775143507566072040095491320562657955673177077096349784783483746573091583309842861843138500286326446401071526400709375787642271315300563559660181559549911699886128575386468090605649120481288290666320860103585414055164138031631250880149937786861969165866778288690190531428426458758222844279526994874972248078191774623720114843150017106528450618390091767571808149637154636671482552678481990940367417430525895333073957141885584576391350826435048569407554594706714053708613834427576912885249484118828324027818246294471328656028821594941032906238763359950629885803556000945142212280427043089534598024327786305526817503234967145147697814495803100274050078016618727637805920988771138820577867307641352455450115567480985710702487195217012142829409327272526163115726266347727204361948818704650900353508173713966090573306026251363120329784134309464595925352640548554501236316462415305086914549588876586894497670010322257913016033088601982788514850452731094702543663820386327943403281947376183163079267325631609649353653943313450949516515344375386863652987884170549864627073287955514998737123888970491312698494972005446232793107148338516772501248357658036049043271792395915472788263390870187244731806550514503995207384626948996160844484242465619229685117127715924359449688983765522897324571900294214026888434185576723839946436851851791996759150854276796549462395189731159005737962622037011347232615610352066848056135691896189324375960284347896892112239543771802265011920942756284258459433091765610832709252773061736325662218087991716305287745863863581056793636156946787720823090378131334468685049720180088187409316520996197695013203387255832414256824864507497751178050319891519738922610072590979817081827240266202805053217453734347104064735409631004537614630503033282019655552901341906036703783654490437901761318534601321997826356230758244686572823416136875260729881728075187332901290591094584604602302245529868556710696082154297760548866218997765571586950558314158452656609541890468135164795556253801282563158211727083216490452590732961095649998610521392557670365641364726086082362050818225221787767104698986942666188280374989952259379984706906701212324901164563237872562106042337972766764743815478100720896844262534574171410233064425296435284946389989794315884237002313037927259694433704912597608984100997053242562060876329364891880953977887054329523028301017205586358550921412722587255104775652943713331963772917449486011894515131475456197144504080399980829688542000098188302830368169360795051438029610252028992275879300865568298623748554543258183556550258848154090819038415040475996596802280057414354055351808576438586410758730380748969628623264716999683466447958333715631329042688141219522708272908645602003892009471359202558187550616112845181451502547136556238169554707074485654767845247475821405032419537280315065580804994022054192084399919138633413718150514044574835075415850757721731653272791557849951986790290811984464927430467382849950074755971381206700178072281636494747893254685616868619572484111961717013666674964002838583349423510945534593899949456239565992705011925016511825600146839790947337474937958794455814013140380113495557568032734190586794632436790866886549584370358342800062419770653637008273160171092167982661262278055742376869565600228933285352289351410684108945591042347334403368636185237482877008608785134547801344750734049631886164736535941373947222749524908183407454530737488787484480013139181655201783287522393386270675278896485233623084060982507291526407877931061228713781368192051223650618306910246608104264418090033237401987694479346462738541821940302580617135370693895097721290668196875897441626716952684908022135601364642099241086665355132390555102534654445009083704419182865592111268777208371660377082090711959804865427569149579188750877761202038486152671030429073887279050528234661238871421696910520688138601759846706493971297620097833604653875943904096278731386446549854054502340032804622542672565988584367935194026923588717746835808731521508646877654270416201704914163231844651147346007132465206577919489951669267502548978074607750494670318653541291105661262280964008861115232695317027191817912690948450243621106966495444365895032639662437374430800894491442100593029607532836713494212310180886720584614729588675382861566320557830385512039031016031089946781502105283894702249430542244656687170479942865281678804960096435299109484378706968920547078952660129759873898903085202980242734328068852650117622100376496438139959866528413264402672974393901485036781506801254851216695163547707089182422788870157557055061413762465870595226407962855534229290769214972831045488647183714458906229962323345918826928757535225528140931589840645313821409888636707137310484540864681681234202309267433940524069215698914742319964920362308470001478808993253653187485527752415886254747482678413056650443367394728330092633363310235202547125743577139182036447815550276916457374856901094361234980966670527095977786624350798580505146884951783728277404611475364418360648553974292913424905523854261052980869385632382098475269935949194427081480223696878983532910598768894259763935821431659039421755212715015673549665628146519486163542886284793466332745506470507939276030667382194125959191395138926315736083950149528696827652054347170315575929685344376030417842426396142590752975958062235421554139575118750138283723085136013359899101539805309802420699220136866170961801010505380976508646334370088525135642242557084611406567966383758348141514913841941946808434007081602523988113565614545798908350783509121272880399932308938749864515136130582393895232382235308510684765786431768774110206643989867596106865926835319115963835634173327024440092401360322751460908640197773148811047009973580170679083195905753752343389195507887463142382396316283682020700909118363603562893126852653520227720324252357571802508081788317628230894420097510120109001551526567460723005857758226687953529526539357481551076267262017807244794683974040925847315742096053335316095678870198830601504048014008864849491529770780765269152174530515429603691087859325928946422881562498135246392644519282324138506790656985469396868173400570485495301197056772842158369143962765359622744329302875279619039963345972826079666234177402020833130928305099449813647141130537516279757067068857340589517160495407316265230994229745887759279258758923872192372279043073692194366695786221644880113135746873670010180997914354938567714161934302089103111968077825958135725083668676097711471273701305823456725324518623484871043899715350486044928430340759388247219472458722615279374129744248119534909277406607441277941085421465665568875712122429415967732822119522351029404555267099686768854621444434965230327322729339514294103353638133379225015822046483685264752542486911062403746094998906597686033463780334728221469583574965432024078780117295531711945658338567235059797284934047487029351804423179664378299631536886612009984069738432293573847075712062958811408927814285434147618173328125170392494961977721556617575974102361531082736903388466240739206900593378848213686458707422709067624822606861059598484408411646949058101638679502417955027639866234515906603807332578638830844270427231999083514891649577293306542063847554626495122406827614365696933518270561106029556737271593999717698616832150387085322667446644145495902075205148041019242814752010095492540235303606039058591194682039019817066913019827606223823582735841551857624943487437791604768341154841935134764976018893618783044733985912209696882396645738864937754395788207246570623714272855985087826936691072706926033743878618668495704996961220958001720284563419577595277944570205969615133662004034875854149129983642924124655840612536237624178536471991367930814710806856589931379675238419005751213548408171306308454973464586369484360186057364911399943833062887346975308899133913700634724748878633770277910834725966504701214156640063038028322283019061887685134564278146404699391734085734843873200242586901062048267342990412358091348809615974034371167439355833651554582250411107657653448824794215546511711780092420423365410046908744995818586549835223159353524114392733723530826983432388070972315615903372390814389986476288558476837984095094653352364464592884865862407385693186422267901271465318105338020185095246606553723608767101501933449142092515888500698523418175966504572923282379673811319127777741657042096887341702200094875251383852857582807693364711837769828091471634716070991896851064136196500476435209857463303524506274942533411487950001712035693644051751393700663937116737803970895067581409626466785684549995444761753626383851623001796992560933789259681725699526503018144882682374232754426435884937787197473839312944391549304528154474991062850624705194322638714184668918247820400970207556293044517022668982984688502263746356239077184686408367097953552511110946472123843124130915962942201600190793493001080008338676465857617932512822576557548500732402881054579638467692435022522152625247659010150579103980000758769396170683825820104956341799978805506336513063408516482835106181418312081121572980932499838078718626788916781374066663963687241116751510728889572017453399931741598139717925866329548357422378600519355555533433045993999666246886395196646489515349875419582652439595300503180277012719289901056118685621331486255150836885691252888074620973008004634471712428281391265208362282436114130016839500033217841252261879744190463917268547329258851631852800736721220105930607984353603362879727915399633288532419846745878905851907373528035282771764432551684919101536746189636813042911695323320129352139300612574033632458716149273949421686852910417499276531899735603443629012362061139661806510795139570542994368121925075733704262521275196692099404901524952561852026188991067911360849429450650707433720022582648686276148984689125707346297845463344556420481419622080449112912553291358886247038094404432830031784866333365326516175168796691075402203067364360821326438856428404372343839428201549133165206801258834941731557609920312874113085000726502568978856502932444041048165858681767226279990038826586006919546379483531079885792711740839279673280567038429905616176310870023820298117093621868606182697858245015619102604773347678312521081356434446232811205513014833305074277687786670697124766931083099227423515001757550333745280429056833868447425054824929439723764091950588718644380996421330864741747513590525693928620235281567716223723497933360470222221550392780467691963529100435876169473255161938844087004337856978055062759222366490061336981087767215685148026986275493157613145566926175125184576689518778438491673648657705427639037770097507056444655536759208784122685235988526204162162441816631823155598653732265962587486637661558895433116630916566673545873821390345453127419145266001190946953485121068725771274173590298268390764487760224428639420354935566974309217178503694083231893383943729752492524305963569148055456680889350938136090312642900373326407993170145020758657888272680214860367882608674214083042644960842181960957248255933693031676281613416176497155810005708947904071976207512710217224694789054977187304017168774479708346676369358643231867184265638550951690801224445576973554692396164114182408313255272726728831905835552872223469740425550590441606012797618692660117013362761507774251432439279055587198134133122484982145635657036345446985427985180435371262680070415346042177707107825518187482551283209026939583055394486752772389974684819781193201965877439784428625293701938915588316870164263927574017010571566656981370426399010971435526278789368452584544584863536027025886650954392821500094942453336994636882411019301834059237301356747337476437173148581614523301309804270222962450526442024439962471958617379813126688776886852133684330750863604639489889658241457497062417545670403314361851155972618567765038201053693834411995933422202489212042836220623176796669806565621384746631487093921678999819173883756105127099797877357557712177073959124407348044886790977796179651253062546849773394644500090440814416043503876552537764912609307218790049255715664381972293988969177487953395416552059627704153087427978287396859970316448213820641400167708254314789226505688197060291878960957072773924110722567967549738742483000596364240062936690441130999320644853860863556604959312630219537301378370200888217937607573540521509155704983235670829884806820559050627744706696396249464583285760985042925231977594297608378667211289096079806550666867143883296953831526448419559355533782073212729769799711213288201034556579191007159484667036960473922823681831568520309542467101410679027060274679257062327734292914484149332147757867493180539291794116153114094272829350251362235451092168910449259856397397092886920850342521573536638668204427733896475596504329201339943582315865754540881195706629438253282514521612964599302006590647382900324709525800787332325502320640012957237070483667420266879775290490238998757093330205625990633723064380631698641461508301382585283418780973855989413673138350659726256312654413114583978152650378234246778903532519787587533759208924873236561416143704629675748442395097711018399596141737766442255291748909077393835306219078964732100579406654004420182566033411684062483104670367907542351061679261560714316353640991096645204555223781580667187029452953650332585449841111274214295080207684757906175964552929982354520328525815677939618034145174477931940945697874768011798567476559610299439661135045223425453559919761140007275941297987891637390941940496031466055242096358177610877718538417293571413194123068528691489902605875496812324921859793624715749806787256014199083102850156433465864376223669638779414571694181108223928797960290101951717532918790403906840887984018172158521901158648717947236095161708028250529588116302947847879379106722470192206067326012020131044219476846254488027227584228350902695967940103591372851278202501934815744478957829569044709525220421092065516586171631605702678672793016899498057662972650378190358395694449314271459058600806400455973421118931458862612213502187943044997446206391122956328026716008978470150718977370674449877275668186017652753737313237880419017449395532155931586236533668675458753930437108939733496907347312381861165482962090265995334890007611774898807771357589543406987564116866484856452190222577810820564940519898721226596391264344623594643012793939384732354990684787378629576107535319520701297389694749509870254059592896867048509203550558261130731580834513677980631540307867197881163922585338256434516996675336209610269439737311579759407273837036629470808412227464650420909057849109295462196054351252133506258249869644318983104128177923639490715621535134797681747224760283149590068638404386373253678776517540238046953209949556281072064777647927535121229693747680857019116617615367007110139474797790030455416949284681902642287848843470291230147630701065205426135147043742781960746696138458160826014162691833987020645794069881084501912522591592279492434508764765218039082407410643283599796216348148616361456459748664792383654542285908189343553350135735871544572299423354446443532610620252253771577467978122053157708206356677792170401628946571293087628837472092315122924334700476129071899382170191342482980051326794579594827022461652906953924570687287879269977728697825650737778760996556616249758622164557664568344547861890538743458224467043853322211305256150653013158493743893692014169942842062169087495220419609834060468497576589106692688139803578803330249389511372471910526035100346516732781694280368412826501619595240489356716883234725598112836945234946131570629573216339750496938093376394625634084461319698703610743553799000941382649980399082111500957527899024830147534164271505666621625630360719469122735954650793805957394406700348144750264164229719047132348068412630644227946230512781700214372258034688821612993734247898821489540906957700639864553960393911958819833825681820609314172028353478559359927757656538715836294803381243492249128512943619839532382349533962279571294248014424565235902926205761182021825716136826031851511536075795623811012085187357576356154898702195656419093695591462778008878116576847428478387804977672395515454653619413524594256748402416124913544213913885582226951241820402394524027787480065437579541545078392319774603576286827961211192098930259809361712832453996699670576591114518362761714436116529935381750624696682253163922328897569328606630902764368282166907771555140339492501343768132876638953755964110751234337422492501094297143073328113453639763829575072187663243251300562780917310934267909728706533148490022102642825148633826348756613745596606872057567409904603969339913096486360184008452181803126525049654001281566636902580753809149707990610934905751805123961018365312916585139386463803077280634359923556076572455564189827629274609937959610392292486928560200093332820071487262669783498943492438325429660731526029709572556886870450945109276897154612690246252107941791068182249157883593437726390621400893473263379119477885931965206220130151902239097953928423852100802700905126072427078466073919793202613606948069064739898509197016492114227905738903049372037193467735773367480338962517611350481523634832747419684078138891863861511216399687965948162919611878228783845426679871998169266440468726198107932321836302713825051654322236854434158396544649573180915416601879889281016827858483733862909695916510974244620127289226800657923671818369703134097907507482197208717878768785889185948124859807319268162768420725024733144512840449727133091521827212136701002750986070360349464912258977331603094815660926680941515310741230584024383014993511409912272122280714694573434532683468719173654952492175727281545835179784657622680571087062605031165020853680957951263133249457529890988828896569946829031418311642695326650678669261669731463011338458588869093846369432863701168100543939015675098268507883486632213701293446755511667138263764006604793646519204092096040211139853892098447416823621165782255858314920463365752225830617297193349937171642018764783064654491048694267725677422983843847624430148148551766345025371078270548017541781331143805116117996199353707587156016011789999328404730004420987496624049649390866587048536457156662271690749036349933632239554753129353971277477517503886399527407647432228355233585257403536711224724954045988761423802524569063426256480532666374293963485304305005044842943874640650182321748199295950296547800061130370621646161900260505951279245877187575377703301049202842808688394309835270728882366027923366723850312794279592872503471520985449015673006382921517559440772559551399008818764846099648891495284648394390745988776693188441530211272022735082502421321109693287623136013587924717250074708965786787134656079335635819886291191932616005026021196189122349678862763635009566338554493685249120388676692259892238298870173949597550716622876561681693891626397415592620230326486582412515846616719235357885610722418211729589615275245137415544304036029879354265205694665480755094367590401921257601475445101887564951594666679681375210328306670232750171530189344398819182961877534860812710098670131293256306600239191793802698140576704251131279973272146077706439228482744192851623263866975409918496593072475216029220524161490451274138291869468150626779378087646700289022519473446168145758242011199836355662204363806632549526639809397356296598919180139589766382179501490773029192617862361143024670556156234572226742828636829190383137213349544443967012877694187829011537154859143865998715549297475900954135957396909989715069142971892653792772874715819799161292962040833203037823105153788832656577167329224910004190496137486128060806418014946467243641051637808814823804629034556399390603280657514445164616630900106430148341840310627364533902842765828678892788303265584376938739202830013130016702840882763482026329695945126859874158011946948162156345683254257318647775173770610124014694776060362608943336278203185367057710432381820938513787851440126058237942423684404852602984170225578972519064496984053008584261070367446586852787465968904875085055568513938134946413311720277977795130700573160049610366796827067897957696877682771418237582310152609216291612617971418042482392165203630065530873747731156191492620689132201138004408730294514146540693847798381663711717422206172703547656714409295325130161070242047494175879090112408807617284314930794562483592933506734806719797033670008734714460197714516445351974324556947046864748161205713499962613708350573412970163914306937741712106603746575888689674403918562502341304729570604133503264638479500660328379005289725084817997105109172340718203443812235943985119303572074535871660942968471257600118111022397641623700437101860763635337555101763548376013803530486471782169311023012196197828639093533941472304948577413093578696152821733293167597413543766780302470085685308880510419491681188890318593365073178019982167909675477555023151002495156367247741359695616571798856706384472564881120514411626439521846780568080749514933668857758949436099661729965762798059226385252210809029289542095720778016331803856792019344242623383150962965407943462307127063056815218798428644153851610956493873818272210658928301919776678123859825766629324357036470408629335559006306556848708218226095417728808898523865191333232204843453270658583682842466104042099918234992680098450524668004244611751167693867750428450153624484807165369056527666819914939344100656866017304264557133290009037424294782936461441107371804205494554460778129404121495195704900399136921387972873250644097106969560857941602075465119689572257612367714846956273689886447594254823628567461838003436595306172270474814591147281725576773651819705206764544897989986435165699302843792706154880465501424421785887903945199399483878713202161643577370758485017987804466205502070584646597703352041508437679937299936790331547693620234324143854728074226114413797330773383932069639747782856881787343351831955681736744791459199572241750475894539836900208636935391211693952691651970208520188303280300288721209986727373354939024940308474723529317160633911128652044647050237989259132122198732033217312880496298266045279066322809116356037838532300733183628343471160045100034388255102011217438443647990983505562152871725593342880175382085100924339496695043468977398500146356225852933159964634263770658363628212104987964937791761009051114745550111570164060018256185525058319955067603247145716453285974690661069090676808668890403742192037023384615235549492864113920237986537715883238315298909436051291602575679477467154601197703807036688256651421330869817079115742208416770337899626570425087796807370507113277224999513227870585732965368029064059118358486421773530592176989804403801457149127340010222367455741507202697014524514584214373405778426705043948450484312998065103378570526556696352232772345449293413525259816181306830004910411928295747303515415787692980375312657812698260784845885018887683803746040423458648769519870587994893927444799601861726601580003976192376700795114567863583193761141739053751500961528270595557125331362836785577527669412047070725956092496232730458635119129608942927028057386417043391108542475572248753348579945552097094798181757129180500391105988392653701544441392955017279353977823110017254061665569334281871474901741513404694496534366158758447339255550357973414686864397547250277942642836120878419352057983234841311703700747675278490559903152963823274518527421045051163215654176785882415177074458855088874160508519001072904500447731898103992103374556075976662485212575924100677016950426075468776047678861027407848217030374501417622642293588648558867885413466627572478974654385115705246490072342332298149884666023678817641661492688479471501635238188009880656860326440921720973891754240057930924965235239871279606913142333242651429666507685249504022865835653447057289564049919584580530924807258450211908209798391062506763345799067462610722392104264017054283982648099380309387675832561137340993888521318375656495130132758974094467717194799546058674680928307001699860862387583767096302595361856539406610054732047501955698424954370850538708428107015502460799871904609464432815121274292901061070368267533317037582264366221055606163229186629342141666030233647399959380717993835323013041259412731669692257358759506600804052896411214524256070474600134527916083666101735987772608618738970373040329002544021201183044261967824585851024717722930639850371717398606108087309291577987396473685937536987788386196101638857263805881558635051687483711035611189467311579685506702729449871638261182510557920541963997451808955452893085493689839756693918061403580046637250426907949400952095961092217711465209715158592746402872400699708861971326397125497051780103083130884306903208805678748189819620922638796964667616513619678987731799778173522830965984359842302174739140065235756880228670840408573600077718410112207632940491198000281963226079648106110625892685028461640054613592802403336396141802583325207040158465069365858340130562639601810300976017628981994408393080091671809870293276150025264631868083927259165922738838585377231578062028061173782409920699010398740711419255037549497789259298153876620996291752211682901788091555446369754430768278474671900369171829561351580288095283222086526302999373366137050496700653182068150365505961689793837156692247383506150462257430713791810105571200025978508215094007411222037820699934254390154905179057041538727167331182066519850490892747575278424486302335999386610876661125314939293303984675941762470989801364286088594490642735924802911411046208875040107686302009659372560698545108701525589186243106875318287052912494786501560318148653845101934575924998420838749751121107039821449371455434638926074594986794748649181081918056521188087447549091938046374073539176584501316632652419941919661694505702332129969197487874647989824509326277462575106455426075270357494332225262790743108393802462660801776138179430303570560549139584222984279757450379233218349481064433741637323079001800136015211268455819864157981783674253217512344294968990769857023712237772180947565790536052732743769123469416645668981245574432291874037218038931863519762599848103973710233520063157666979641831589116471754834776455096663491712832003187650645013129244164747343986904852909333631182806800421543226898784114832890519393964828770702190471549347706620157248135768705756100992074934655755726696079068241457880588090623718248111925850933498000459156402941249170322231811496913458192625744164099950805520453178585532623967370539708640130116472888926004297784860922158521628237255738724595857152551719780933906488467819380024505814735128867581595552341168076485954732923052388300184168148167804009107668408569208281570764553759703785265614623397682565378863163378628659676026256119373759368400121762355418578215753250625861996479612468724851107865095552781276038331364667802594693826519445820205302727558543590761469922540263491660429395031778487873068497275276538501097550708802757356661980774752075299242551826619020967030127684997590917077130521272760923455554680948281772646201412123098227581977835403370267207577771024951586294989664292337783879159085308859789858530335689989651108603293903507453019948037688766526069304632607683204286722096152140894652351308480669928757850125313540557455609803610375778609002303373639539610606945819947068214451201271131410130692675143319354889616240352618045101780126288948925697738843352599593823299182769263376606362697486503156685928313057875734902678446587274605652033345107231675606405387664355566458194960091408452153164348839169177436838162700682420114745419731772171767157607215299659350342124053872262978792756398835500898010231837460457760927431207635725625462551642277835610414439102802855865653696069791592060269435580446453953251831866597225783105110810377206570357476168078617085177239206412258139528266604237645149954476317532706879714775279048905978766640547712151573169507793463148834178692271798536355196937169431968613270866359162298717823420186698303922587363106999189045414398575406203802426329179474084680459044456913229579553106863354576461023553159502745029662892363908500031309141573665597757406396253961122270570590076127536528174685451415177171937647730858499920708687465218652191934548638883025118701438409944412885574155269468841101549416398357868528100956527860647428602701674805056909973228397698186518342681903395451768896673051728391643952147505098343489677403161984274694895189609206513404405326494277968274151887603355385498306362681938526621472506024660010762166014561585550923328684332731133623102682181771466493474018529274384042222844579065205249184370420742559625292569131715979687919388098612609481153387651830483155458841192480990063897820611101995229988775210595134964575142702535624543902426945478579825656304570725629325388938717211857190675254418328085055640582454174568977892842639390741159864599046198473305658360240144492803408417134790171480692144413122924258200151616783023171667119063153827059187807609865800062922613802279037114239138570171939568604144860484171582822916623029961467890813731078803856556432719702240113531854390595879520470910449593780112063592680450794201409281685258367092051049515804537417119032075183352745756449253360881502164565513924771149628235389504885484771242691239844094120740099152439124041032853242151018350489132209934729545769379935361194485047974904259574803640847208697895681251630037916814643657102911721094476581880336961302783020750584174485628474786521194505733408683415833568661939070149692701268537889735989363344372740714080223430371416852345336341361490304857183334615180529035821743682747575957955525791434377201259725455789091970046556358136430256739975635899704540260499590625564100747348326085436804809993383521791678553960638624743533404622637526860819791579060245650863366048521871835939699211595998324175349350722761419095805688406372218005411385115713835644887233214398744257022839884128427621898886910329806825109642368857725915246948547422035526219658449347546515495958295092760141354142488354384073985536719535928849834112504955218158061026477328739670000357843858651628700762557735307335688351554549056652084529984282557531742169190730374334232238089017062545819035080042315859592370791047519084553004796956713212325197790180319809941733149912918722342392818745171161649520804206887879256911485810492879425811088130506438325219281639228068081851266616661156905091486313958195833763218810692154099208554039434724279274481179200128281052992122012301009937025375383373952936863613721471364286470355673425928188234904827491527550751462458452705292642789088079871855409806419091934889656621551862687519204684470009806792446097682164068834898301533594795575888792973656034201959951358499234584896843544507349567058986407624057471469160281927836776806331072316547843657174334894280990289232911003993167855516685035276057081218497380469601318718943163687184969566300832497483250390666698382969003706815584499587944169331500436192513693767575170624184864812944398859757314418345898129042692972678400703817788900956510513514515038427865902159214223133583384594489596803502975561374717929671305398696057072074603583102474482976657363641019839859995125642399126143293763660145014053791388867822051803098078918521101517519484352440685354665954746461335092338193180927939889997241859400411285117310631760860549432856787328537380228818758852477748806108328185061594721460648266709221624677355940263737172258548942526798450286467902395227920684491301896318783853432481135045903100294026167857108904063868360717222340791543998597245151126492373917228402334291890648088552143706324698749963716864505078460268873830734676614640619194528480928250791488785828023706220321065824409210463792682442611302023844750586019456484967131270929276350690245641224929368728204608566505563613211074348575105440131708254554225295401564463315958879839408080329668293682596260970534443697286744367745378679400700540131558140862982038575147833422988376853537328507047294607728388823364509930834666862352247489585619283611910406897691916191422661703742854386799062182241936360112466169804461297331964661818870695175881955852651851442606259511825258935248102282854767322546028779740417222316086178868313383398862613256196959735652096276813702970677836521830371639304237224970795581763010533989591194293353744418676536754775477481938161569781149254220889691557704513828396750006021893890793357362861957365454977181114189718736370230694693104051911283389176380898293767286508511840636662907802727353179485184172552566783289257030381414077573351284912778834122784355982755398047088028103703134377995109990321416122111351713138430172540590559998501969497731783545070588643030836685954996710151338177483474929148299459864261891938934828038434896300271873642214426608341101571143723931850361610883873783054256162919702784661996456537428794227330004051466811980159379172178769563032480037590367281095315169569005230478052062486668742415656912690082761730957687113559127240561344989106873546567212739445762005904766606386094045968884258750000436938186362574676018846429528951968748682290628427990596825447763867379182612122216629116957218408713040418583175166548955924632244226310932583661336192945008348399638358180645532625325782076962477926838574559806718244401747527960720149511594407841190268723363546931761594706586566046501613306560281917879012106830298805729872388019985532962196057244959832484196936933907532257276239872281709201613976273951537986857307152547378276581980252634236274815143669184829917624718658688772216686967325449989213906622315103227173245925162704465710788077288789934508712523697239754050674810593791895157134574811361414855071885351289824272773081681025561656961525088495191561110733439536759563300762425924300439698915171432067366785625309536096801960657975101103613967100548120936441303902702336109591724452336470627309348326169401744210285498491641854236865600804343941234088993025178817353866357605154702855361794964752456640920609126298806351439170767162873673429939183907130015438154313441453538402067853705155719088415577993707691554697889048105783076098935329230364801587039328005861488938369300097196608408924113878866265077619199491496061850584023025202202353952779736812617731079572937224243502480319060046394267426383848883122088346603205708576135415829039602500080593879881500928621740694217165338086016277658907503302204900125903189079459145269957459118791403542261516560870986230331056954334823430852088623566290206537451291726900384117228867240110231297124196131163294489782876047011579369778451769248350242122770649535300109906413173384375939570123254957635960196948276912947456557122546138176865622344010143135144933208636237546337184516330985587533789697888359540914114867946582099526263327854014011932358078442771008076236387362846501147394963206957137032890597573532517232252649622076597972373170123499551648705961045993063005032957562202477971046841231839050981096811108092147572481817399999259061770487009682960853181443220656227822006641361434386224716790612619558701208133939323950446970816205430991392308021843025228786694153404530506983753192568494443080802745596652446686572656530470017152336618184823352460876625260691690272557632722419613568833636451581007466738463966581137491016685728625008484073174001425867488286889705180553116535461927740375364486929377956596311199440448576558080520527056621442561388360326026634975790974512198519929501566152807479679037124328117402128952899893451029450954944515799250677264159623802417610855729094199970227995390505687675637991602850725362676966231301479038634140294549618915600154382191436912995593153208598857363818537781798731739328564880603033906058374131953689526923972107188598529901864440250012843109291952385180101212597882137377266354804780934003488392275695492280445986930137550755414015336993529599969546375772921909563571173107140984239753005863020623612163083935601331236156851490479205446053904785380778728099704904843347529355848052224063916948550861974076003705255358880726143411814011141311127613185897358020458382119582371533404002666260500417856309014037426796097537357268941030426061670763557336824194006205954016219226862297221386181252527857418594833376732299884076117458449937725624338728547894593300428757555640889168625012777725026395244567997007894237199326065183476751940795800370903158494801140026300140808521455250031604469968090502090998318506995090031817045191195604580545593828203491951617610093234808734461087801215809115907487478133609329976743241204473515903844928501719601343694612443542431681428036357553880118111599998858450080127606562919242096892296881998225163373095777754713351053127006057017969524278107543699919892784533635804768951616612217968715349760207603350287488446656485036232985357641791037259300464183132795922811365325389536368837470529881749386695772913630995061298517449987520666992027051138608867987967654435911284784914508107001636377933751604892896309392093080702254924922668995084034245690343023684933531987842787637664775222524432945226238613716921879837552730275069604407042815939724153957459981271885421929453995437659370707321112231157378686284363793191225647352540077945333109783144619720528499431938869836423598402092064490097231996119077096086846640604994707486121860253318882020344915904366657338338217586519727736435438172487693270945834781252537145176069159073234343697053616794362420658962584775918996767517460596596257495823035899474312786904253479600314517873610760304612496448880898988748464709599383233697670824050273063043314439905767354077907519854851624856321132431844617769334329808290701838650129546675365408085672006288716237659903077660843901865021596584911460073017386384988890602774263767651579304498423831669993366864981073153504843858510619000920841862176731234733110392745820739262827342627274004919074688936256800649996465481924901801591631937865930897457744843142739568964702853328230990178366348199006190500466335293003987409968795609491987056673922511064637723883684191785419540559049998753636382857581727596110541549597999935112799165816183891042734736442163178523490825885471530761065368448682486962448366024636815307655599637412243454658823187172825522441326131689064996374738983754412404211775849122828380836509152471685729600358735660680237953064209480798419907217252663866490219081423357476216075467484650755444645933585567258355640111296735075755327864162493900758371367518048245452023223001931373754142097591899338818280506325477232055399851597575056180367146781000892006851836756246155649782279143562135101997590251811278829163905880224058865911324486403634090545974745763967252854582981938822285692284097498907097047885714118271149038536344894944651071697217476158019817090072199837432288761684729499387457325131673925596823567060244077974350076615674512385538388579237594727366964933865384825794590596041470168317949138360969051444093000596654074294657255508482815443178169424145958450332556823440051788291422695294565406284305801018536624944058918282925644578276387777912973867434111498377847393251998021976259754050205219945345318582201483623039151721984999007919393617488147016807681433115060639479503927679815836340406204030409558271463650775143869322547128270837302271387913564464732704038184499252263507210215297920582165796333317797113711814941790979496296092011012756816585911573859580504639879617329752228012442193850395205148262724719885317086083221651513349799088936086995358000755993715858682674717975213165867751389486312678973554391872571518484879963295335819485297168736733324956667676930944477435990446416818657732701590430138337305426797026203933408071121667718272597181823281695616251509835839770723966515067472427674682671811378113437204340846472340044471360460076062632295207464736988218635668587601490034347127822535154435405218594453140252755747285180504489811506760693122850444224333185484755417637583892349313659453718572581460018577516516837245599202106775382070928219556395800899011883037035645670850444337208283059428226035508349129647452004698693854863508666540644530855646389954897376733629877836671427665735168965637486961624623937185162457308840903937364765544738112701436381446716425599387345630655807994881153268651487696458100755544820816833710532977601516408077144325853045599562554980773869087238779136163195465137473553409264453586057352673297117197040918952755051740410274945601129479754257339133452684614219034198973329963939313387350352487972636979423426510967346117813011871970731992281763044974021577802370548594742315372406413754511618876896832081833122381720559413372647635353074407542671123149664132447996553189277270419445270920242411238595699645897199990303811594047351941631806501297272806684300256671733389444933117314312811868381880874415543417341676894495810658797001073087200880470897227924808222624890943982717377501033074599008385743716582100939028420347438088733816398362273544272361580929594910879111048111868055961298349843058050112802762120302433077583289222244534660166607981980810267765804071193338828313629532929703320346147828745106051462741845828239793398650167563626036792433549882770872657214633029354662100960549983762935028593179308076103759471142090459140637695597479539425003721500756776545914483268522871787956219503596147937023391183351838371891808664638318027012826742818711807418060377485211848221290199782675753543709372068665995773283913877139389323500977038059295050496607762281324562479773499063761463856151126625840241926749940635653698946678219569205836183728414367014532983456152954641399361310434621811921356434539243995404594450409163584083786033617551422726547052674106449728443037404856062268823442190335191105620257569558723227656998483552202344572613911174110699214397996611442742914504037983800718366004694559984572462828119418896972194863552709709189687471529949507330754812469442020161841005192713842498832258893039924864354525417413386420193414691330851888307054156174378222074177339153289791611926621381973095942085821488325577321176096031273361340051224677435504849668911878134363666940423139190164368049353030555956999844052991836087062247447480335341738533733863360418178648234479026692616788179415731438477146029595109122018928885316081216617399132224400741053166243126252946663387135783006533797686848768228332923789946006631834954504621241743223058367929466518383416993646710722119953441472456060496058977805626792731369841902703557356282591093941667827148368294169091179515527416843465054382138642647621039399586090775362947065124177107981981059638063982392254634419956360937236039098500620731808745191258590962911409837552643285939997874230120622958676242351580808784983967213010680680937832717141539201232530255896702391230734347017276173435420960796588108650533445250430778172728014404688485364911690755935337027491262994661504907672709513463143295867685276862019420780241913998989965292338448138394729043539818276705403564268773702749135495387352332204213196242849065730910085532650123964030243870216151353291745853396042264078428577475309089345119692625345492190032703847455683099839651258467390824657872231601666931422992447927585116207362737122902371030755384154468931189067186461031808069968767021446176750717362826451913764026680159907694377229254613197115115846588880433052255201241989156655641023738790092165756701184015362813273313843328472534488647083084506251266869846482231072971538211070558795585810809909904550419835085414297800397214893998385073699116381396068987874088166359707375662008649553012831596982518748114587330491762822918694558267154732894816333950011258437397233939893188805171121184886535103903203448959332168933415852538521644007740881185005039102483593578005153566944239807906877026005015158075464923784215104046535339393622405623860269550204434341079532308139430683271950055487852649269799445119547526465389368614527129725527839878917742436237757968922568200547718838714835152590687099400430976105016478405585102839711331653244897221855331832075763078048795113541981853530949472524933287751803780639363338039315998794844532438760874441551144141889176967679469541752839882050518669639739212225952206409055761567467290442249160036573664409636465363170950201124389330089616156522255583270915092676607672081191672521442493531866454795776590667135558455762099214558092767766499863060492144009245064821600288875541196805381163822649495896709802447951945955363568794950163049917823109660214879430865578760198936995770286033057312579670345517091363186101414926876867813370545884503228313977426021114200692398943746772213068045767841592122518131310254510497405210814802538542554408758572037488003088480659001005806642486494548866449016042673160767738976361568486741999218750221577249489115996754463112383793619208891072978433804663442520887571718659161085574681825562492516126861550090093895365291866219877649076043692571901020278140368199456445176477434465803218690676140043562001990390336340433477311070018536349755486437094358114207677378233113501694944702167142778423967535713247852941148452127470213011476125674478891473119113950071565770000097415627306619279359070350032124033690067363831040497062530720967333388924278845530183988195609727115673898083241320767597636487732552700926203882592171989513715672292101805384323456830122616348296570160464563092343725928316495726775148403479072952401705654386385077618865785749137298151397594221349806281394386962408941132877243304254712795687585024296014693574885465483887197588015462684501408295439773071640671729217843870124839546850491743506586770791391773829464869010687727892792596581164352328573065404191955338977178127037750962605042880737961764864775373423602252743439474886788916066465120785689058589832621642895037526996400746561073410493283418272244579265000910667134217549869436543493541276811347392849083820533217686609315339381092035601856974357796820350608509676992758913930380887046754621172695751150652329296202106647197105098775696391516107297486814049875151555899050112286974959797842655453975388771141250298332699863471914153212109729269703159360727637565391238970508207260611033930664121217631361707386311061708062226898924805433973896835675769246468181717286466841494273917149945135525426277994922517168234572450476140231205543534370477508756837268954700788822101542630644972160549820851017383146098535384101084149359131309321844532499350938540029952238436156045437960646074796228635812232328574905316705513715300972307884408872076271849080039179023818260265671945583484110534320514068529802833395672568366014152989571732285378855995578405659575627683414385846424530631845505935193009724158531105348708680427759370426852658358117821609133413996994439006832356015800914630456726660496204278889505783978506811372354093656157642325008066171512118172950298178996419578783652261786496291295060399093176797226423022711827103451093595640066264918154200379809014870800836159557102229960692721474102002671389029983776167534185041674544345423706830408490922002795569629991597600271125960851347622635695136402749634053046957585071388183920384742002867282656448466868587921390447362422651634152953178581170747822402740827924041423569674000898020929077273898847362263240195576779367358171944234493766889803743652670490144442520171083752335979613573586465808636517460546799050814901726832925601540062413191445339811209559571525418031226615976860797640964480797485618375197976600419198837864582833685463585528763427131813077241333792768534111482127727200328945318341377992247776343977764993727651977223604311464427356720499410885813535453118163909242563082911632750823676197267384141440387794442997327739405656546286307399875170341879327438151238304471193535581334512147597114641547017025728804059258903976142157974887745521768450142109779604102420048216244947671382906210835106761905633881731571509504827131986256973279301736783319920088374667710225280356188753889034962040912334881418203382452028957689006044804143122996117933397810803021375644194419027476092855804727856635251327518178151671353240098763495960711313432122457891471049771207085510613908824458491856374144289388394289415379225134689517625734658366859745590617439913418064446664824308013547312698552623691585676962370941015629261990167529575021301750485655232134204086200419254149039250836436671717848544191071296510170575730557172756084662593538653578407501248701335505879055286291600770938817694917747225406540449462756271218864864774141610408993157833801173249293980863917501868983222515182232921253943236472203498682969786213867961392061063681781662106668710082844357689275978016423933309825377661848862591217674526479990868479445061223598161385179737290562078844053757200647151686215050427112511948927635498783674983305495213795218682390594311439423192203129840849621960270039363819870253590032811403429991886962716578837457402147907115504646099123443574272510836685237514929991712788860791024298097315157065128384232883343940691472629147468954529020343506824880372198669961245449340834618017970531418964107100186836786992995833289649890897665436742941177573752268141563041174030487641644671414941641414216321166843652898480977524523641703721746697660464667858984419524291240618457426580339010220787811115100257079569093731110257890411512709373900995333349454224624695092079193800384284777824743183697060243741390294222353368992477402941098239852111203195868579527433595880969067958613741518925912067919520791610912613169946682474905844526379035098457086252026497685659804892853911156900370416410694479992766870806902329257270092220474811181209416477787897222845862711398127489572875438774803234940350232493833534798130581225826304515783299480377630350522815763476395874247096368584240261589416137016365560895839941928167535636373886870609845854134099259456195927185511936769668983625512494322817261774471401612546158271122111634167666338881532765648189794839708131050167960743827854669288309866667491264634018028897138102335061179865632920368964078393111725494784287882096375278985230834995415264506472415893999102346855744864671835810879800268510648451534304744024324172912377474773804902857606610466980701194784427678779690665203758396146377014524037251376565974570795162559157075196725076942833342490835093669352713532040894702235971366202853108438404104672217741441604766667216601344278998307597773538388950963757361295650733283668440357549563358904529510846297341968551437148084371045655714905495632725749033267907745274312057243955844614112646688332104878764986121105968942922794811148748884938720107781563622870319225598102717625767442701563386450418562156340485564344597492269121694979995613742822414621637131356240417722951600747968626495024409575543626540091051634213573625047731148406516818222744526398049083205786665592511957343865877204121004471690438561539620163309836586827747582676211476797763941343202541556424642915710095100795655956516603708899156218335298152256701687033596939861420325554602728867761959730309121856275296423864348363977638991485191675166028495063270826154679231807097571860628781103012778778599681602614582483605572846914011734436082948521966247089721767462403385431933460250539785557912552412955704265086983244320618427431422323420528639822023807831976195443824625038570968120445453814398101495948301474659064091741819084562365630788272522053112682324863126828123335922227321413459738622454728812269021902167285396700276953975554519109322395685182319215725063691422058287680549618991207841292438453975310000095082875355991600386883702580823660450553636847585421328102988617721585598139304229619161269307852334491340860899657523282507456268463052202917040280196562002759213311592790908298729960345317871277475118573722562955092326075622281467551734764566268374600042899681802001835606602065947797245451926002556509924740868728639442690724578030600725845436264277407092096875639258979993841153447218250824355583879457354907545445389534635853276119025281536372248475889056407003288749294891532957869642056127859929553163762797142512762944936981002434096304974352404935214602374207460363312682675740876383687124467078055715812229432619280395412656209949888734041175916527883410988066064169545270964532360453052242125362443241049740726338486930956789037404810716347387755674917811724197902530167423427958815288890582881851914270990745505012582641851153088683672497769127479652805704638166076983264350123393046260958649885604251695193391467851315380164313183303184034805849907966053124700234495720933177252100985954222956409585231988846151011577014096104962604625098394650646212320291079402270126302690514639413812893416256441132576895226029953587659554331766658129902727014484635792225484530586556416230120578660849296765386788568716137192011067450702290580226727098430672153157868465163564832931627063718245527394861346179656048780178355440088954280484419927284761931123824808387980879781620586666366324279557066898583873863857244157623395578303056742596979306942784853763089555580484058611408707448419001833985234711386911689548661297798229006346135382883684288599043038820961541760752841178275635890503065476498734984199376066853960933619252671570142364746484825911016040078133342731659532108527487312379150909949133019391991307426580538934330698878063441316569787781435311691778856550710197298719740653689137216302919138321006658240773197224526481695178189202142232042309013370132556843539250870481992972046771716998013525407902536742807042556349599696840462773372005960617695513456843941820780308130059659976542170475191554766254188011747709068743073386195162429434627443023863408215381479073501227722663078009893638814916640554094728935780811412357997715497191871558948735445485987209326503392573709614107599554021324410004848257104244464145910564724950853054578712977342577120565888614133501168813970848764494805038163509759957291170627920171635587619466939087054047971164985287120977974013660744981208235057280803335341375784047485682041629119506029256442919008889048375724426055416770372622696699677994898402438211050822313872620879019662750838748335120474607546006905958269993658240702023172062834409754887239980910672194064900063036667756470502679248465520200566772971908175411570681188138951037110207034124534897234810116600351120671522461184176131297675666422998285292734498490463037934064417946987875561654865232176416544150044632041237301801027845644289520919347730661257437185845126216746089714006258643374898632540640623673692837347419629092448980446639529014501795988735064319823176661857787533264204133593852578770762192204120854451305183676341787415606057255974883329252715620174733227070126251147734498409217998914153866612966613277310033006340133065372832866665425370038126441572556932524508400918206939383993663757329490463165127008703990419386597498519485242454238279201572822900965981114971543110471354128389953846831647699812363333371173714909502559677237028229168032290856334045873478086047713926755202566479971773840465307461435319106106313663644687417398770544611170326166961584421013933269590897176163620925509079468472998157610326839721607162121210728044307059170336402640791169056046397712155746351242321915597183800569979808834944694748042355230510861259823835833677635021992055523669898278432477674595453132855126141428137701193003217561516953477520029115693389937260253982345411678497085998359602446769515590054934950244043146864555058142810519543272250039079799143939926996942704190231703408212657813422855241079722852559513115136354836492403516479730690012150951241841280410002942532833049984997577301954086835560549245126675119391505909924023230522905123344327646188235467592207287756471225167077267896195157075268008851283207121746441249308081716033756348202274062438048252947512223719217102005471202129106766455509709021289443307379299264396502361713364003019392517442833727254568054372639167930225155904392319020815405202834159211539023595346230098912364295323651887475997922908102704344458123907984587848033801146173357716730489059395271989453916032180451576556833499069512458811993655976629911887447145426483516539047475915068798020712379185241199987243963223208982431842711371716303732183139226315534243111732006001195312446075975605192609220558601131670396650835329450368687201004968252671704824481007698959478955534209529341006745182672666108979931055055110316238622873034697837250019443888715245804924433525338815107723464640336896302570371120597182250342248739875124421882276568888086077076367942395899480567769526012300401874132312487730176097197785971644380726666233592559868222302906110354870691684292655824109839699958454962045962679164016408114802152771065953184750411580946341104401690196183408916551251379148963177021258061605992472687347031868914958846232842656250708399346532974108041164476568859856679844310999801445593837038102437511241190956335943572533459006581484374902986050202214661055828699309416233960656943320886197465966242321255402165616867214606330268720631471369642276244590658674122933423385127953271172281268436142311908583926612379188286463126520273618211151441624988404186442240239855561229281860251222055423372707234349685523410066059713233611531720269501364185402022178943559930425019063065015698857060202741625159986800278443654443187171304767027187493175561351704364218195782819825908914911591357607442434653136462302876247215041522758385124735816244868451835281490982209958191427134210611319749451596246278584962614351364761722411543432101931099102758587723605889650549454441360714677242857498400504997264737943765490282898543479162249424311835415587303157401207304369247223817705567047701839185184915981664711836191504941923766481045332674109043175317576954695756428648890258600096880659047769924721671308111074113850482952223690644295913102318878980092860232340919569961944559769815637277114308246138931976453789278471819103178595426018552937054487004403652050603186132803534930564068423472119068422196705782718173792217083220528024643045636083285631182113617629167120266094217250770422712836795508934574840704960695702568284315466788309206273594242055773338494907302062532317479203881585457033463943709277336354506809156159613724669463765818153617755889947247733193990375516517937547858754964805825340935155349522548008102117244236466257623244736346007076961889662583030716820850008764594033297935116348163624736860302194353822480086555609757089854451896360911806754046344507049348778681046075103125057905302962619896352880922208972529175939742221200823771357672504450547087429832259716934577598174659577384209345940381777473646455054463670830284907718091572003265067866568630299470780168725158341310812264404577876471764740966239786348354314840389490894752775383141180280730316061975437977322772590771547064540171503733202900665722257203093347590957146218374178615053662385879906223991879730002596673030020227855127191109362033249757360793148255774267707986614598047552475520355235181593380527945017099212841492884164849468677926833361018379325187679255864781344439956111999641076447459601564359201738086484773105509807398904533831938222450248906055790930499716680425831845136552300950278998036921593410247941353542372026199596797111930073845642163206314653521411232567831530695695774507476318408457287347193513959626042747537955734932908677154825954414251049027803072949908311134527734397635731106563489481603188627843064973361052855573412281399413626541038162129996871650827736322790797812831620826598332336147924709925529205549563988374863753733703831836179190301044765597704811033906182279679807917521923304933806865280584563488226826372010971661912796290841527505124183705192664316970465447989663313942708784159955963755711835655345486117989437521733950739518236455514122694031219714763510424512746413357556886720842463406005045950561364715137591894942696696266242295003858804959233714937775652370702064441905256362070731781430242080903179440849978448446238482845943612502871215042866779242146698073714936102414593378124634379984818237347934736449994086892894980111380251851078057035651349345070490105387109756403171518336261315617249272661350831037470577188967444619118746260472023747526567014777884010995197248870695953890291098206935785075537852670792236890238377564812069454242121395247389864597234903405369448036025697569927576848249496597529863766173017848444667829855231207392375476654908131385059552130150052613716337634534048421528377911527326211954446994217932108876926820159817512932833511855305915087634033123760494274794956842269287134484917692984283583744798122865870061563543110896988307893173202583242599673742269037922024604265440766243069303252152916569041592492532831546766070424453186417316936538889863753710677957413364301662396101305279884735303866195247393614945020108860457640766697061001627793589728654791829427871583264690510796739308365356724110227139240063442571701443212966502584472644770915099676949672674255603789800477411900660224548781529538257265344692449441581297740718523962315437438708047086354793103107282839125315825604062515126109120078560828348991156744372275022258286962309459217012855653337711851134381836297042854569967814472526089458674081724770648475747845729543589879002296987212634470040754346653554942395422836563563987942099479123095133941053129920456085579222314731532365738737276640107157944145193223908422489416677200919811573076157404331826640383175397995978861382546034792724193646199542931684871817783401403882970648595869953270670955820541283504796952064794389847505210527601874067566230108379826036171506794697765768218155086970217592339491864765986940379353363548404314695667309919851043991025291749664598948169474595547591576875951666808063993259970160535964992988873784636620934680009417359143724218119195209244326484099337632544400450820878091003910608147505902453740487814397414512498013188557886402258516143939692451328650354970562122766826859187579943458073124797709124606940018888340750991328563798180962761115541261041794367187475978304055801060017295424593896489691046921379497789909990920860790206055881897350193063174609657902124437502958499046138441665038196904803315834592632660522317201457806930423722642271049894908676000911321556673877828639206397525175773919916918290579801241522113759636151163844495355230973803191114910263202456670320848199511094790335742572580157056764931742785387625968960057298125183795028347650306119020088579877125204512984384705514443900629438734170029308400329520420389742943906099815251122037467297275603051403623054010051038032601305823851659619763457497127098068871932106048282760451593828686063685019688281506390466249083992975103009235347048269526863625903698799365621594063737039377489323912599988478367281916027381894288565713578548329903523168780211528438931360277266639172895512817377507216351559131031146084836297259807867525366138279158782913974038803615054168058187895037886874126622884178878464822614875789497661902772433070755758026106434398583810154638641953424853396819075035707149837863832793476514383841468819706382643751560613714952413380315787061310938951412533270260093170106928276297645444987626042200545081890557936234479818926321384274345808591371267655208382554479750207873298026601671661861665596421105838896690797350450285197052076377112146433828515574834689296873089549073723523528167653707162029067073771096286176204021285026319468383300187181038019866160849232114660339530233978461808344242560468673210584022305305575417156606519635994984084550535318962557999043328187391166114523516792515734848514739521882428915417533713955342754730618025603264750679833464993034125290615312081350073167558788187907770807733373718125595289473658620854619785564705562847630649250224105326497497702503608091026603928979969125276492637983329554091850184130490282366733521741784577037512542446007686717975558569320807588166579985313487111035805295067852733761946394721014783414646743642364442076489531052995761069450982335804411174610678110149717252711691785722319137332568460823253949319764636279663265816035002283860109427176663699179228970129387728048944762661540484920623222021550345364744437321893545225410572596084774300762912922313827106217834812190338893905474231034160406589557870317574066058940520853908151791105194183279884718622217460042361514091303013033721124337064208237767494924646576421372765741379887017134534453789749131038570990775288506634820816588722266051602736156303987506731986347316376229182170799784946532720476817428880455263440390439567798406018294296371189114385598024838303465723173350786177246820941455752209056687397084015119977875472620722997880743835309677207095652531126332533855092243624315710401263725749783212006422798757221792773445616213076232983067493543974747873650547153216118033054275856235515953238696441657636022921375577201170146114878089943551355821850716593977734620013318915910836307722029470097432038480963081209470993113608495518462096590870703535181431628362388200366870621813510546701453752917361309123761850682105024816979819429858697382956657788703400381340670068387520630370964335069420721307894960521037656321268511085058670711808858305495375234200281018576705098742408366911055938335809202400928306857467567402873336613238466864542297566598009406710609641713537396893390884510418631008393229886689011133870558510473046610657938633866458891375589136608846834770306698782579306887842361310022658536981940446475677924139054837795009792049178452949496393875780988703747469866769750549391915126311307246349870108504441095972060103966997650534216270118055740737452155081334685890360622733450002219630989027076516189444857055941081250944945238806211862668979769827503197024778610888828210392409091737015121320270464191236515596964039294647404564113230113036708287359413398423637498088445951530851229535050199208445269195594711602641259486162970907885168512202453586558747383948285826066304907819356346242721088372473656495854048956601818489554570580456604173186831810264129969455537042766985782657349883056774281743037715333152015836762335768586865934030324346083657701559293062241105797259173539212700413423902527171695799448962674628425915756103959394310441549761335956427906886816877613966203534320289861834680532376107396994333811839269057388817195660466540682305741679985098443082483350940684951016635910342497663276846943584831705769835314457739987568495799116780425045886196437733886130737545967354012323277480473808607225213744041483183317116502840288537874445503536565223578930406512893380409311503037966537894204443499557363937206607671056229388119198216184440211889831242895388214643782797575793368364618976136369986181560615856984243754289782322549938863169727946621169988080277486527925013688372007806509566245423271416240599428183212102965873254148020292411333963070137486414106410575801129981954554796963321701994283444345477365204575924684867990216076157499210441047598855722410315072374985808488829966335820190997696187060278104672825448560775294779723188643261923787851015078391274469791813643358367204270246050630651605829460011112486342757287806198020897490576243441086461560833699994254695534086160201984473307530151558255867501679565056646245399270598073033963324262916041689481039528515107976841929407345741716725142183437145671490520339544959517875963200945588097009215329354914742762431153941380357773442653942907993144521596587289393173857519673665429839412360909989204300100874806081655668529830978974100229665756882863622927122841017415576086587488641236565789759137983253009995904986858481056967328356888512003370375140355336156981102365128241616527919090202376105743137850734415319906310549151234795094154793387563165881845226490192439090701097233239539025687305471943793117104625282448234700634730097194912600488947104272959635709794684392809294212029367228181929794628691673071659952621106086468663507752902150838826221104698314646295610194645981295599784680717187531104765116410465516618210857502647474816214739260948338478941071645778894360785828632943945900196230211239525044162719390895502455861665408860686325443206157914772511616901685233512307155604857655687273159989170487102394461953838152974025332661109533261927325081638161044675262353899982605483038494325086312651972236881646463113580222158671264545691525705435463958041809597154304427638354209398275137780682663838331533032131058029472419631280711553674603444520178218793471573309736644556013779368095371202550770496570681979206913754983552939578697263261550695019033752184703663823991373557298617506664771554992830730278682894904966450373451485400001884837919255551394030059123535784786396876004986293760480781906088889043778998472437266517222293580870204846714611407104933037656352617612439664244883174762190429776386976161797120015670621119912822118385722138613621877520849670267572278858649442550223995416333839953664606169594883277842630649242891721968813776459426740737654373335740691334952200292386521294583919227509091843026306805034390567883035817204252227626173065873223398485360922379262823662774261602545286474840042947813903571744080999613058589929725857879005034600217040532490627373881306295199553534738442465669127952039235252283287513532510898997403609737991027937862806519654419403538997939023257016826671366017054937268233162400937320228247391314216616606923027444791617556546805668072393016052697202004832505560146416933482048353683065250446489980433801958248096433108579358414189898772366214760576775060093947993739403330920126307034322296651682880893798053085648690652211499732609326127133574890711072205525712638253751287309701151836266200383836562747041765053578793707550006135683595409048701382943238459981874302967517032136079927838576969704976565702580326883557564528191135498979531210100575950769379381526170035969543853525164771670288890697148608943313316589216837625742170766472720188931368738110123794774377794866577792353823251573108379889326440651559046561551697061883389288289606843619733840704338013719579409469252033862350471548961247520290377865695701619224589153356994928984127144260471286673417278646131364912513085969852502434969569173814481551227600253186649874361998023692881416316170594016568758685805233591024282167150532035294442938766021669506503935866161148191174787236605396100626026902140820935342254943812758105998765333559047693134516380634410074120351846217322680664429312996126254977903223259184106465596091964153969462557182759590583133090235847155570316193331806601332349472167852613956648740055610088175155335824000648278132331586951825732468569316114534526609864124570826377201575431742827281368062765576696338650746004490822918163021357756013542220986627602159638352061636448026810703931500195669773363360236335657816287027617312461833379774589100708765660093597493031862936478241548874779739137727061374551830352347477624264765921417931255503155471337712958931709683465708334576117094138451780584139899505720925203002556364980232303843296143029810106086810809313989441296454206724836366034898283053391486021861865623969687308609119656720467135881761268794477410309857005353979142248982765270332024771775870958246931706504445118803642727015326631326934344223408662887409438571492187969290236500054288502582367572586536790855522808155827951436269484522505865544268266762108114266681658829876008954508618749820250917320061565495419908435095846012823402390513524471588483972067128203436399109482883694369961353855667390488521303560239043889169935876856361826090109209728726348762956578321338473594797106437851530415823328093960054476550743062806283911642494453770376768815780155015156923963107350589129701180169293386659662343290116749024595901127870804355730142509825123742776607888559908762804412065326881125041457130015505253283637853679334201092309953337906873042116186540059670305333385152628108974434588708105310154128396479407373387126056391958945557975959753004839777355001762768299750283208873742560027948738626454805026810761793700701943211838647498963105619257738554279695590685451314546804808277947493297201958187301659601081329940236410093784150753723128891404502481951154663310721318522631297242584123167419988663885005562899572594715190346309027949234845555222437342486649479790233345039745957154545897481335884479291596068939421751649730553841095094109296979023113510372500784700367314863576959242793664324853434264886559159724211548092386718496894010517269064626751938401697030073614819952121765906554036108617842073820313033125682025660885157565955772601427976022546053527631264435897483729232612608461919963236240938265705636802800119196137198184582923622721568423044413076772247384687153865227999045504629802802847459546756764513361220828879703797825648579118690222570861233178756492094888931812561221365660362387126834922681594682425700915409440365835087456701212778064883280332389676290834095185449362622724032839325476673890504502649855951725402872791379033036010548359850982161497303441943458569839943779600826010812564394210889402104928941528024799850603870713991203340471636236243885345833307944477252511503155560930192597051330028534200902299125006172140977527231883952158881840919424008896805761598576721583115980038535108837974915756440382553515171729602943713083479935788818706116495123673140370343416205070416364838844838275502023759063236054157761137642694953896428293387976746650466323912968707149341120258363359375560813119070026460107644438194059605734136902227317368513912757395393203222835501266903342248138219927049810531848662836597682887814389213032477379386460866875427662075801273449752936998860731553302460625876142770891142223011637051275845694626023944162693145971055337271191564306986560024374266501711138896800025382138071194646898444619355039880352754250616762042320313421982358799631140978976268735857054409529929450820088963214240761911851440126332291608045949919101817452161621316588981867814617701549644454955008027407676532420984260701039359212315957094053418975112542526142643746434118658564617025420050872395821897619884593257566780977727119889907729825533934318555980962644021052971540286239788200906757619546047000509120238829343359357557011076218354935487983907520183715104631998247586838967538052366766217961646261970788399135252968186914616135887066108681258801548766351436083491616829912501488397877179273405080959794182892715272040095096087442710783139248301379413666784710809834289898645046303229671162543146446892861668461257843117789323281365164059459909956726793308194008813896162138426498298597439213994197899966642618994103862791574624941009100721770761181589192225490947530148116380788387268087807487787678313747696436060174899134512397822651186888528797563197547841628381384242380677981542595983607812030288565739386060062799484486916303562282281965325748659825348771974994482604416041027164610180020003798710416031646930974383778788490649513737320617464173043691735628483552204792769435373645919344846422200918755906363541648093882045477079398025484202582142911266843720649724845298001977838523409179689267306251489064856340159034843352047133697358922840766269626464925964522772615451227616588807872238635621725839600408954651210275123043143174678690106920748057860993694076544732267211160628988179976448657392980972356433813408347080395041368767042570350156333966907472556522122335279569494640974453912282300366122825990825038988052194545903522811022283870329920440694361506224606490842305023447508337927613275760517933332290678807002849867659619161030459719979496941831348137902694417686918052585709060795778689509447726051956943460676143669108618001481201904546267573740594115515702854518259831529097985372577797545161530908905750286811662267298592120163117760612002590477479190349274521051584838729237012963046436771794151601494040237069158185023574144042388819896032410486289033394372610184188939032107237681265105535827639954715497622890208570322275335265683855689145828530821240661124923908996041037570485150756288298024393700051634374103331204298328340297585477227531437611750741169213614662890737932010855662151761125413687670052782045098094412474548812257624507655585456788419997052321149123541011339471902238711153161827814808900710167524385486757847767912862352567337515612471007777110123927865673438272431754475623952903300541466424104392544066141556902983651724382064754072369291751850443707984738400649165228063895431214463324471906070819064473509565310614401218586463218445885983131920275931636057921528541875876875135396279921871384252279871681047242958903558420296404298676308931011572734456278292862455334612956669028536076544396983858438356594942356075711150163688655070757330128229150487738638442168290362945473896219216468207340783020837775841759136144489944301622071173347082746150384299368672104151958068022852417885542959540420007353497506967732644516923967159489223848966550686892905330838211227354750501635833378561976498848005968777353306682604849859947555057712574455309356108885245318234882826243910279476595853899235160549846961675075363445720549616946058363748623243926414474393633345067688164764883256515787953051475484086016427116405064845784021842325371802360940727263985838730160982775027639771856221391502352878937662161998627335586884312704504905220795400565038764840060326700034764132859135985639585243978093430615977774215596549427370812702487844240733715953932279532831205272650656660121720313296440087571895943194337183257566298260371139268283856435500935162465871418820179401003970434544903571369314345582032514469234118723335026769454561611875746379370294353754722089960236485699728144811200430778190892677696502117544312550294293137075663812607639984420582168712378851951067327277690630641115559600842601816988468831495861446407334690602316402726369725964928763185775080894262611900913251829313086439175622230225497674934923587320124854853519042532161638374761116804240961390313877974043084465140419150308408657828169302509970275722596511085888694001770981640758433206767056237210893196279908689624851801296498347166859763138965821324396190925561196087312392466355684071963197279158169071010332706273795929877174855124776697092303996593320777526178718098892165065162796690668328751714979054348601610960983779689256251413413096841405688929277320414067570408992117180058159487976939273811961103846920688908904667258817305134384319042662827908436221709066787899254081696229986053137160945722612465469842698762463302514012457141813599445131465592742632960838583172946712799642892578843970015942093229126223761677208840480702283557864486025451790631906630714825366904344244017091579238077488527115443547663075468594890128096142967389773982938058439230278706017668596096499115049421812740014060171340977995191462720657285267781697276155104124378685755596234309107834781405612580015774684034485637087560782400600007732500656782603285329740355506427094927945986800828838704445232600654425867628942597793255223872478834134226637658703457046015135925057702159251973045030146135786677503916279113212661523328500131559883927004036026654862596401091381994284278168985122673588251313251704374268083878730838845671050589395972407839177046866247301839974506019239140201944883746589099501677364506650239566322534334130439561953309889721816569877192196241647956406773480511821541415687931317780302514350995900583164488038872522917042336830764191268154388522825954356380893547955023456198173693169575048481052386302209398142813795660359478768991840018661121055823557739893971396952772364265642497943244183828934855937207711877186274530837009838261752414892033055415905028025179499448703528661853134557288037070680668025451708016416331549226242939110289912205133006924903952746253341250406545796572499704932686036429706589593824145987073999254155729003007733553216265507392043628679555933256865884668992024532760501571800542444400581177304863287819811218715387585886459193933497923717208148908819764376378148441557711911883701499790713845488549694640395275021792091157779390396098089432623976456820104234066606206712688094087512015207688128960374558604668192859132776283635895631021800548702808067048207245263982721802338068283521496650638386216246787296691058619952186249936019079386035548862019691131023680301905253898893193888525553134230680962868746985842804974387923616751405307781843172181005025579998397430947828206738219022492383002806850822394443293719539822534333623430287739154768910247437029163362321522285372538883849158129039933945124119112008185173586694445089441914164549232889900095315636414738850723642275761795244913596642008110501571724750270827645829690496787759692613873983666125729094251501264540192829658727328104878920275866165749899863033947025951792502088486955492044630926705036639072734699642737505120295291032914963489222027892437020037764677913805061823132300808029406856188770180582089660382560325957062503095713520708917921303775352552877305065265138496187299691399598514900735293606384804224336291722209870780903690545280625634985261100072318282751489206120822356516362148375303485479700656667711864874658815749098703472299490525108724019042972266381488775860773639201865806753719900396635143941312827094860838133593711148014936930621216286724994126634004366642958077345350449290623433432332376673647085597467388546278609864786043494688733822649222436934168559753969069004071292071737525428097326221363521403723947717702135388763739202215115411525068271749571428744604772258292997240411125657099106551825613788993050955097979899057758682468762393375883639062366888289305245206113037595762055522968321694997583719605094342937130085459019536975610096686088641366930780681862428815555881827425800825875605404471693781360497879724911661932458296497849854829904705429016053483101595609398884690355902825630304735946828173591127644810994344376841687842707399968359554051886610376058362070566415815690623404114752455730624727362558325875784579193159369933377012874234617958067448274112737772847200457416926485778558632312351996480570746935325819318319051371487336780651703514929223610174860578675705014765535719345292536548018925083922345289325760271767276548596406375749891482406980554328128890138361858058506067776135529430817121908908409119240187013360430683869453448900800277931165516311164930191969616534251396149602906959192952298215093416074876750294949163942882242817264165273078055191386354742540346199281056870064078674793589771150863828113507707000905495319024280596363508000356198730341921976397809957032903123257652582551704588762498696576017133212415569631288392835072830443610222014153240883510962526722763416014310528651896760755789795003377989796287805976885444711128573577005716059970009140462916057117374155256122335784932339671627190235354663066839236608618431509353972577971699457646032398204782379483656973712160174677333280820428036846064176480787901643858117195286363856177214632406349133759038377995026180518217630240252741639541968362986979540098983711757413168236197398930527417336590688305583020704954222398392039398180532807303948316293608679423234852224591732497969383402953588902753416318770934097696591361473366993069606967479008103322483428848205477056463463688715159592260512368989229336038164389557214847428347401467755586097974487273802657007046550591392768941161000953969233176721936521001973004329048526587236519419718422162379278321739999203375078505820185275350044262822635764473778332416329640935689172884943722272077777524313197471282172102137840909455155453711574819990806447105769288924295193893312559249797881132415475336393556423845439689403005834874544647137547760676074789058555064503808902165519319466554621003829480311329579613355652973811850295110257385643142997401606800340376571731901198979948191746841628084573214756261180742828595963824384574375393642679699991697474332352475743133965728410984103742918070883528594935164951127679032474263264232042407819238292810338427166696726246812487143516178168152045875373755055830424068275599255083075552625986441155931429941722427125588030164745253068167380877262344024549174246198442860060368674442689984628175126310697619494970301045790098318245671417766123021238483243032169410177838163128971737525903518595092061413982506387600697296408086963860602792104424068963205534668049211159966949159590320264606866699602833755733775154291178945387333888922499942687720030634877306787458420396369061008446893089120038351376711531254269537079363920894552712165190547763887945286126819016908867309809990157789777452717508358015207452252542879689073420753655753873504899737548394903839159340704826249072744400186757066917899699295492505585650629163028595251333164773914844322452910957290941718654015279969671698693638465881267821278970125487902746918701603415994578559443870131220878806023484679037694696212633418067956752089743627220910827788804478636071874219768545743241417089530348251783560074545235339057194289005180711188087715280929595275170158534906979483104792135283830189644850366806862654612248947010961091375878051855078381893069369949642672922766751886523779522744085312717824170669782356897014994964168547139241880500231601072160092020946376681953979740986443009286007874886441844665104541232329874820086871331159798914464751178017823180412599469833809331121713470081034055604381055086865127011052305574600118289875895346368196470195925267070190178844416738880069558421680287921631008281737063210431729875822080775957559778273734488759132854487091247532692329987901222717912230919033389724785873480811805910591619455426804726632625764794880585230898863229978354487703836520183802557257724055113303637338079074053477343507943665938219783394455187386750507266258668195033877646992837629737631302250271090302204814623161330139009333885178514558952080038377070950288860754375677078280764498549680726741850974554084271176351074535083201129275647948929284124638883119630546217426327405198289120040961821193673385526695700255654008763396736522285165504584665582267889728107770457566863416714109988426526133737144972592029573147948937771302597203459002163969031457029952014677847693428013830526117964014681191063540731927268912570439426476405351263297360738964817511571275624593133798491589302579241583809174050980506548650177824780572530099391372323635654953129000472531769816813042913003253598506785468777622488292424746590017056231834953994583886237967132667640344062703672667571745622005402782328878225071232666186933698793050888426762280189148976496169474590632887167830538545057492546574504866254629415071493994070639033210347619710795579910883254972373958447233927137877357878213924987691554223146506948858027868858595632680044074251818209143283942523835133122606960032263621860327502256713824089855231148652337629027851175766384676670391180203678048623784332320069983022635600314400240006677673632637612215589674013801932901267915266818631184248062895923055520499908601883445131515900316778250457395849710695489370968220607316710232255676769997151822820523711638878266380175660170445684981405815489010771361292908313029595847111391012322069626852934350722715126693536211820909841611499562569555188129564437008722719164086685311675403081622471476281399127212841095948264316866649223536523797360723484582492493399938288811966699332587707614764957900286808033690457405734889152252112368259648538918775053982213026933875874169289234536519751486512582302746053381954614645244603337944894955167117434466379464617626666238674548006355906545567581583009286450455373121500446757744346107738240133564274267364083169269368102601013359853718488152628981643481049683860137598520462470642782561824540047860436297655889494723408041795052885231831726980735329103399521951861949644352105811369902669341263647785497925639838393579543602397584356338083283534094964176852577876453580371051037901437238775988410461824369102831102845313496191825431228706327942616296205334520198534666252976143215685080670420711149316350890726774041491718324128695774659129427768587378460230545604509049834641783353770449335525521477662537669614970525566517836107356221602667241505695557097970990645192392770885182299047967957779803674419524440391396620447956886662593597880323566746368033105086643195474181918800149567676147957986155303205281956775408247784903558593135755965835183309308394450956342394147164954612385071347917541358098439421734976883568268916028875386306757980287836979172799741137448147461381047067264057596688328136526712659147799991305821425045685724239364634184551944910860809718636472912902719758735645610539619948312978777648043244042093660094411307572342372106651798263994093681275242799054439699861740141903494956141877271605886555556721006007365626323959476334716761043617273663108179918705689024977028170093571602851853053255841977237689069100485227288814905168517948093090821983302640994655241806740785761352549259870424755623359016625533307301560975948649428301246536671303999800392532466944799904918773594143829449387843156445426656539954855827262153453519776292863736028990151730403506029561747337830677189250368656858264295441457026144805671141237815130756995298431529360672917691586081190608776060938642653234596024575728811763425855059812774641727174371590522370449985075321771254740154690849567198934295033897654824445754356646004264456730135108286551660324693724571746559553652253334895732207140639864773445784406598505769573817679813067229563932095311526758942218026041360045289185927403633539578657014034206423957313683391857819508479699142897707610935089868545665508303252363521405809944386584250708176279045771586769893049494918903348389959940447882190111439285037561242110549637394384227553944507783533516635476755149056315037513441243926052805695043876253795331943556275948147703801056322487562101060915022687191070181514104669572793398809011363857765291182648366846259853671162935539720424434106436119447481098965297989859082838572598186729246879225315363407800297528640159297207441726729950760683469298189332026172366339777521001564258769499858483987063625183724594222138946609338623247326117608512795197762649115330515277180806859582185099128653437606952798252023368395785062990100587125019287469942517500682266240212122166881366988766881589879417353694989981006305571781839647106047926444199587798417269978616052703718090343770293286102649737423245482751375147904697279341704386543111423500118349110252016340796005094809119179050104067330937466921128344021997097161213021989703540213569583959030112275765106784604387590562615654626817855037933422704081260319556928968175760466717404471909038536304593589679924761135141191920258443220341733836600286146586687260896703350536519910805100445269122573964653194426361228275203957582030728669067154181667483604513060268314192452533740021653559944394994000525393636653780903724324122568926040626541446444312873122900271214636066240469631095493381780287585641039404130024393711998524390773744496267884443424251748683372845086179275473916960761778892770829993377167925630993681135864561994810317682400999343085773623138715694925246942531302633138764141215623270259781372458267825483918499864945263566864069142565462652394086492895082875612113276224190160146305083243621527270657815942862446047278870191694346017427257823400187512145717043151532576606503000133792667204812793150074404568559553041308727544123261771679295714182796053012049599064853906819949554284148910542264527792912758298299639936647947266115320001318540461469881353329857221906848336031339881620557927313593663010361748544191370647579843903607861640760080512804188319083445662895934536634547562262032946387105510903632245516534465298645436346576805432312846713213672236506090702953671319912183672031159610889038008636170342768334121197408540546570038957637115071004956017748437661863787978535739844148149660055378138134624316902167340190149171381940646576619955037298090618762060513851155576179392979504005322585915988220857111600842065378191480582723721870123040727544348555494525095013772600313919895600018067683205228506925409596252523278611858853814023521410267194430388241197973892197591667901426452727855331124490003542140642848547912344042055115089867229750859638953662178917659100136172140554468779531426071537092908865219083030894023748532297280894991795216062871141565307512005273531408473268246362837154367998410303291289203656908445559554502543071175284889969226068825042656609243800396726344178946940271515097871049012638340628242767194875795306703930011091325513457347771303720950153091202619301947857476925101699569529645408640967974482334012497326462071950639740781426080312370389814665658659471552347917647578644282237933381727453985603641288634100028222752348152453069997022492646325922368174708721689191305728623324457629386440626140384426975202219338596247705544066715166133551743107394711851030544500392580949060307433570939938115948307499274061609194524722310614323432718625888195787316208362849395270963304360120200809450359181299571415326000704257073772494997945354410541423454445128351445456407272980099830889808802651743362909677263632076894833523807562672483190165623215495774296756846539278057383038570102360606527717758745377909366161748780913546268385568277423733276120441923959672103690538792007216436937860873111523935363322555612435510196765238491398218314111789349385963071915448937102102894167579602341379206198740383487300809656655302810762583262372996051841056946581806623821137027663351863828376816126841815491857002095466606468681725119328676547167794327248542921429592289883587410242087661226507486530129382873014303970029527619773460321033374360852806017523047782970193770335685680234711992806303710461470978570767068147743250887018312229296626100560285255455674895381924947160532900058371993242742007612591132423588753313912375206371661799385476719226516848702360939383736287794755246416772757570032528229138708323221726690620582976151726898480195225407839137903156774542236935049433550684234532621131981750243383471163277318347989949050823536960822187468680402076613875986045395750878073643719994121961113322640859073486662560783115933527077451051972964075754632793432529938860437350694653100825277023296710517993174274442833448756968091243379752172585860548189593265716019008520685239793953881280429287114963568234302465282691523997511803918263932349673740684718321588654406807915440638946949758723244189148751388007319033995467686899591451805668135944741314770493932007093347679271922619857647801093229204267009237568774834403634484975767827710152506193131240515037363548505526922758738128997218413915415566581775548393598916308623320523446086194430201526130272977310241796082536567957381495672335669029535046265017262145693901868474416069836883135132424859848500174402806056630849694376808185986088625500601037646326418087636755306938980037236048826891099405532457439543662809412769227158853807965276353897533285087060998233486485097481075641124947413863462004476331908901101668867986460288515950699839528866589336050213245310423259421625342026338008633726551430724005363180073326470477743578066800635813858112462446998229371028577392499599619992372797988739607149357310431440007212241896106239712106011507216851592110452867760147680241312413668846041171704131848546106382025686101478493730347447588857439561201330671573446361700004409093134993173236459478456529217695386672721380740997589710233028558378762825963535611658556058711472618644331945677438704983201016852855176181914728078703561246985477330446826240229626706633736580324803878965450939051543630858823609120656397571673926327667915508288364059444095272409435196222110214056945511965904943070991520087810693324988790507759066992643612592579653102763567936220769742431794786498406790100974359052207389244782773771151775310200696145438074807122987726668291116652469034358745141511955725883634350234417060785739146220970997006794567682234885885075117583844890264735450140718714834877583585955193770713125382995913926582197521577801892431468671230077829004406805244560140856781585486659108677762320720116290695986211613941955325899706131522339432727563115833363895353962347242973863190620078927844151133331428277017140864305710740515882187458427787229758661401262249612893292389730295161165891285099991383126758979637244637714852818041426384049606646003772605432264771482142961185867522093641352945268102978384889881055925138767180064190781592073411728364575475272742151795957758698840200634590808423900950805360186056440371442003021852453756097944756552634355160158017926884933803053799496352537100295594220156742098757347544101101958996364814825566745525052745789082967145333923525149179976812310783459925689797547453429724608259648575282416408290333662301348858409260988925320817808567251715205462913240969191414566933399040352991575168984241281137987151253121772029674604762604884237927255999615535820466337662501019392998577128187952934037027689165243045313838441131601910711013118518293126764839019793010148183340555050848038302748545957297163859400899924577368455027583196439937175464346531453772632412479279770622808339845101976579397578929981694694263289164462470603851270178064752216720401029700376243669385238281205828017076308080606237858016117572377342384186750079195373440675514736788235602005891532738623257254209405284593081054829157461023564393145621437576739575165093066784659376192558652518767463309529815220051003568289846687855645006786638528078757250874503493015603701627147108002691176891768792354255770555873871054350908518473568198063899119896187313854834565141565345676710271224085688447260033446166329531046015853689535142003481667855235588626115287369030703447744050930705819093227671593008915703582218621321422396623469718265057653553208001068551142435770078322786174853075321618860060129540468451282278739647081953254595613882057813469976314550982673504641880396479670768598562287374904443447544453752115556701729571770934983964053579807279744574455920603058576688059081003134981756348845592257729296008771064770155275777737900996953729362256269004876638713153902216978169344015740450885899566365484996002274504002550659879221270943922613879078397429756771381642643750367195095933663453039209348018641958671030200204126356177401674485324736110715692314660793867399035800878943166548245150269296588825931532789464548181168059654420247309961458345952211899769268731427322808176796137508239960234426053871552501981421481301191054846093155194693788158459334622952277824313546870151610080643073028595679577949005915094599244957718334371132655055685829658464242473337377773591911490693393642557932164287527587430640952512053132412182386602836939684158072788808326736648430268913486062096263703111191041891914538328070158338945067502882922540621163787539872347486755605828267685299639352425336586599031028566285173291208493343043538321029291291845748464920164399553202614141157035071523175930137200490911921429248288982304014914193262228394403134888509375551282676096012710842914694603095292979937148613741210211719077402751404372239126494280010280571132984087873679046434916265004836821752159838001293508401883024533319032499929708328805196587037316865781352036675260672066569394110213178548182040607047237811146960774873866254945160445513971252754850849213453883223866479190368123118734498445942313965231544677473131262552286181230306014371220611155455777230520974606975355712949200254471806083961068132398402855889370738593476926341509574733767246814930470725052947227783332780368191933965234821859073800837243087054676634304674741298737639996676075605223499755583827512304516085755223164397144970735895944791794678553337939062058036464953471138479111839272690572616416366413173412701096753456592872895643288595321161709286021362991301035796440118944577311375187769641964278657736259802090958378965067341136546294834110940395697754017591451962061405902387220999315467449377599879706687393469183144015462268378185106449240711743775395210569041290350124622744194189433999229989562078878685263275158015754782786774296909295568878911321556994067427921554248443610355213807592729135351931825558904145835564590979636513615980753163323773794534617285061919768587329939863883576917779127636847815880132887589092709750507161843684696548396689031349905981816168296555679672296660629858798297574692125084549369805609695827836047104307926248611330262620080600708687245291117449473304126512380084252416100412225915175156521422112070628655439457882622518039665154505038804554168256973840326676855332135138128495381378239622911029394599242167933420856088850327803047451576483804433613443247991161331441721764832617340544842864254890508823339116101041409387364318000622203897122939657520148172934638357302403134166994750722342804008224633223092340148033369225857951358995922509515225637636454230883055842698154988728029427908415105051953577011721490444361960778998491115734459258203859068045466705612001200509546473887171304614515976005950793361963908212500418362103642495833185078701971573512025509819988593801739504204873462783535079015079047691293925426712625455185823760639207406131214132228622838022396772498711871803341907543077178315003755628551542909173378963040956626483045195283441151788460050056751955855346926508209004372412931768820104678381405837896397782247944865532651440114984909885340912370838963189380325871633935480440620823619203861398744796669933199672258057098646723084958094157442954448998473188160216753372307792853711029868456808548741690647056753077266744351518552814213839333956691771674780420166073142755190453795634972890357881426772618128541552677174923358985519623082477775806882328727326540525509339934430857050143559621323173690126950601235325180082895862842137359999316717690186194648508171075759039157420811842733459753527550007855365064689537416846180500466942603753365817503920815924745302701574851335651492646398211026700466796292786619911766464256825528130452701457149663946509044665620110313135761829890265275585730012558196784235745700955636150792563463400928186581250206197353200915236629211227577693200863931820048574080941223056744637856578438971442263563789570467562093709086063713352238692898455429055874831573189314140401516428452589312458782666254235167959896471635316967504692945603407756726814923487140415537998005389298550661768699680716563449075775184794905777423055082627048758419390511951606301923660054497909690705744834235766896136817008333773335402763705451777774542676658771631798036741519576197573184905037527800315050346036404101533122780320939876463432351410096804122245676467399980165095535222399496874000252040230973405051120079528939873289152785804834951594870260000591895125911284826749264898961180082656168517708443745400227611366899464388212848430317679988334553990177198728355711341773190670496852232769170460436774258981378603609699328526768054026702961573517628684563441678918631912596984197137299894687159317793387035469074907243595614036436534632311996996760630199981053187387499093361291262672890552571079917144531137053191541895792802831630123214498277690966271875309644236924706778196716625816920829025944287769987926435937790447993603016564095491438788147972449084131792996873509968765267285184082485042643644237798341716787633290677098625270626655549917966491491167079443854334137251288596746906962824732771679377255594797855624688726570585103995398998837047634680446572856845750780355210914750103469460348610690576379674639521011022241132494031329876253618475769387702663492087516787642217797735262396191203076808625095691669307120596523375496997400477092240657778031483873376974834824351288818814644548945465459728610677359365887096574857166615596077129266260244868399584116396586466599680555159512251447813616688257422288623239598425506762860530202073558367318309665292278783070480453713872611532703463515851278605480569269629577111076066071615514354112731039026649119709459881772101206531940059479995637721710634340805284566737073225633750321356103890610918405026680317722882607066746114639423301205129663451139763686606556107593069734352372211155571257298540295169560477158647853226402179284990878619544135247640881370775916640507489023769131877736274673488490028908329358900036394236310997732899385203919162775035028285074681657628693418937157007631566707223403929124406705453683277582517898752506300115171783508460561848405911828916585444954927703376461158825536870851574267088243430601952210024708726789648708833914289448786920390557737213807686522508227090736090226902750495671600026265159893614441996236049722891791582686136082561217975523711915172463930282245721446525048264174965877809164184504715641598886827409638105841544275459805220548750469374912115975852522064253848571262141588775705535703242313894764534915159258587414826385591239655477448454568699184635434404550575808280002778292094200216800786129530172398839582692353843282255210530408557695257717197658962923273719315652394106198163250691884920635148600689792727753614679432221509256983620128885636665963874549216435988323788280600972441830274901223747149036712553256421744477260293446116478467015190924672040003137692592751929773984339973842815114360909215256824882810816077648117538939517363514110092114870966097648254645460485577019790554639479798980971711199481315775166865696764166016697498314875951718239929840921156367469540336677069608558850932412107282399427282042104509276794008833589741287553699590224587770108005803118539847430936483463159867128664341624839368493873442758511390995773608608763879927020946550600609219890193574369505089286710232528742256275671340449504843321865623021905827165545141157048774069423526958782648067470203967998172577608500900805653070212453268741565172622069289492164248127841904267276853821851717098687194034344515666624152359273141192279412563005913483189886681045123776048216560834757972471201726675260208394377502964928143420837834232210564178195186961560540988666752936615408264978310940920596338566056879134940323303015528012446739346188431439640757424975606167833914517720006382466501577085598950484604313471503409312217469216631631291609857062366188585042181938172909235085880102685321382709336425270381330149010686851314160871148355421036530954802392595634415015763006586867749939028911491748902792956234725875944494659515385903708361027543200819718394625931354983272780321922679195132623314533339787677887400911791823016340672960527526707413574468406746904016316117383644897068156848825709099396762205301194489161672639869130653011833059220123120540902471243729930459996520287206341905169523283148546642286103437272879726731600171801822180439631093321578383554256613676892610083685564379177172157288095784817755550496241025440068344061590010594674779084005092559939411575906897351339763848836300475035777623834912930979997959970196517866722925963487204454287501459352046503374543121401235220147745767908091369201774478585556481784371984299351285801386724563800369588511881989510297803627633928592878219694520130109219226490593984283981839394384433747631828930104177397714222849784600937596821813696374025120007977952613195625468282015315965139764888935172482464227610988363006446536835023775925674486381754430720935444907778085180922464312465994290626434556000628082435305797353445789457368455681516387885765386974403981871131072554871538019545076031966507868093752711446380108233008084534986181965537921751002084917882917212893232153937930529216916066982981077341707063576758701627202347469779604823432904970174522989241859515827219545855788809847045180296573669776844652341408540609892783340204682204456124848545606997752589969704321164814308236819951194053756981194692583257945164359150346648557350472948781737942378306778108585780373276039490960427772243076217722136830856597880774819045461917161158336730730494018762201666985804659953486828870799023511306820865989164125805710868692292182917228289956927661262444901316070401794052658550656921715860941227656352226405770120924916877909632702792416816428519981864246005149231685378591749813822039799835025197953252911814917603614627481103831744236865952676661956129093684836526783981511681776947930438698383908005901661939317286715895850541550079922051639376790237569119330831895632568786240960585636110197391568608945737285296841512819436899593287412191183869080800158961274793363440136995724853634406107172277361852995015162277460774150698749597557404675464806850211461303191835983858333582975924989623520314231091975912091313827650390074173892301521399206324427347163318948272365497519956287461697301506500937875562436379456791173399523783957361303974383910413831976925467164102721873870027750854089461816240262534901059272381785026543027792541674995382048562027653348095584501243651899490511961742965674946987791363996315410345112359493906935581704189454164475984050522304234654575744802019776565910112329024929388590365577292361393642695817502468777426799360792972960386786166411966035443519697212619926076751006682309833275865199172459606634915881525341553818691566357829319064118714362760494790168424085559783764255019809332582801112427051575754880090576125764118087236770347287082532115280967340621961506617067725432874601177461616067643716320628769265961498373060444330450069859932259149729935342397982753609609745761663980209338223215585745484786796680663789037294449276430378782509177655973007868213958931182350811471175893804729526610739831580616292208190625023704516556163713476400355772120503413743574424631045912322823282735070175878966149057567802939225203555941139895215104882125064208302491333438877930697378618433393906948781309351828895045055333114338321487992801674393059642391673725702969190883093275149565425806952684318431524391023910766640539125328604643893686989173512850893778326241320132504586320387421107024420173394417115831126851534688500426487189842473904058665020941553555717252410227660121828574826822589918347971440325710810883103908839353420450753388960606144402400018180382519711256527805703181297291922928241865159113045782863800725191032728388368773291000910353089020781972186811974503801585506710552922347903359154323305080383049438550083255522303034788298378252386531149177776798824920423371889805060383910813525749695873233601745189325096927673982439887488102544348317096710313241530055155085301537220684010596872605811287636598675850811140925429230760713011107890886812214360130253277534626131727482776240349513325945771131865540720995862761756479491375266510588884056578526919178750007408367399257814455240878972608653771171629578200947017979366467539305077985553881046436726511724034642459499380189884766800087497784913851871996245594825669525843314559606932678568602249463833529493903683418308847556485707623939785753600670706921865246126313071320184640211318435702924413369835742710096741591944930694492582235233035956731583493919180324637674105116449560105363520449704331766368941295158521560118108058178088943031260234440209113740549724966567198776762182404333644064375574025799156288145110586864853188871637140814746407268681511203839315155120875108860640178862579551829723635722066296721491554405157117437668633103540713873060717206163481461505223511742562168563216286869601923997210026532756162388338844624917497704066525601017734309478576333349855281303144911170128330325959400922042620423543296294543491781721457807389400790804181799577060278817153706440603122004008340007101084816458976693332425516074943577268000399490605347267380976243545944670466188144620622016744357946982840182546846363627589059856603771313938771447894627229651029929448489272512401585192459717869373712586843063782412810339213305477059465470429403511512499491928430293733976951844681088374495344819500961314716055823121536816537185486652791396899389972698117123860099776112259477481506973763296268317577125738283276367638695864848734631457356127511901964643988393603838321897231334212683006146728889790990833333950729574662017173475677338824246887588624398318182335047770216632744496195848800740078707538178421882335202215286485986404319647927515662330762706938797601485393956935882387610747866339364843523854686150221358335115482986791235335865494503984923945501297340326629500205030834546736530837863251429059167117144008212597248482217322611421638400553530043435655326568638824896691911113873373903770844873649317775637343910154791946756158575829594806448673762043982889449510281131874962193438144657438268023906841204387624387043299771400762923419576096299276574506056429373262093848690278993107561140601647494407537722599172002171426741625786174410529239698220269717818191278822027327752173242212484743602610951457306218572399122994065476451457623416522577205533728781486996225484124267307962242935158287625046691340037210338993605825365825948038213084685136082418708213010612907818245658669396289014193802057606446956062569741621366250209016281762065556527701890803673852157865003896164581719417825949754702919395600235343886095262733410120173982417515408731096897209943825626308253515081016253541558958509165101343983268629779350698800074636769029578234438857899125613199441355412787858675336861045268411348792074331421228534729936592156201886535779776670577130096977769515491277982628472055727051009072401763502031600463001862927864293482681342144575381144517654399170231719442211298885490048753159294612799462452975408585021424506063341388054491617828278317002926381754098458388994466592067643977814464502087565859423119323638363185507938973324221983620993975915425418974412950003434273639967764698229128282762759428116729918120727729068860239521313782120720358129316259825086450793935037821408534525178679512836662233990465001751394859466594015761120516255592504646844725631622958046497873741914738423174880789226136241176222436158428390753289093663872971993087226897501777091653310983856696127376514217433354182104745994212999017383584907390336700174007675970288250097630558224765078599937325756863036020051129853158536844820407253946131797989840840785837778090221790242809669795446853770664995015100766834523736986087688293053020736475174046497816657486865117263512731265680993908480781106386996127717468837728484453900823655951719256450268743101811516480360377578051839001300928282495517321704813431029399685437204927396359948804528292039036216418444263270899373100165276529979278490595377281998916281595674264805698413530058826089834124819043980501127768309842863761251576954957308931894361745961788696552253579696582658104730232552275655386111780495683313591211434876480753184028400281448089982261165159581411901381050749985500161242719526893613936291927054646292794348440371475603062898493265375787077717950653880920936741902542326856480966510179495971026660582258472113122403262012135910425817776602809038851044727945543229514553742252348544212733760276628359886147646324919548720930394596449918842689154546453876633005364337755079476494409628233851475217777377681625811033664164800576002688858499173129881284447602618375652078378489634553344200771343263146057948760786531494995164789555794611809114583183596664614078217366977739430958226341311222701675479280400606299194194712698366618971530098936236288415156001082375180876364515680214297738820609654570759829569536122066852954749608080422375579651619999214344872938956741961478009170070797371159653411089224480499754151941681383800602009509652519685104508961745238796208140381368111002227542450532368344673247926194743235102073174493756750934712610622527577728438217698397710366458292559169579470621993818167448108295476606652152492207054256509230178140749841302265445061811897857491800953491372373112924706092167725407476223594648906574732293700038597508998879469653716329969283015565002607413925101039811812131531493214412322704023942056993814118035123138597111231661266988327654994111234036837855627515256986204364235306377592339393780937684101607316943626460393035893463562774058316461823853558801932677990416438484912136345280308627227572843638121615075494317027179752837206017342493731628121191981836779850000003070888467644634504054764966937871154171221220747070085466358725952288525415399461690841214370156430151295651985643974154232884130808933853544941852034161272093986977119002516430896905627629398382717385240629095814204068907847289344155657908922603983103815742213023968707563113095736516069285915362291014758440172534363445080792003303167408102568907034269642729527577439757725071924552285476221836345781264198594503052879919098206638035185086162989000883648358102527068830138267480992582900595428627306735991077196334646810423117642655813500175012999732285599760185569874365840004281699382899625057212462037961038067703344446571845534517639158385877494536891323343413767737267727706128504040371451008015108046659036710905688054913077531559832044831856887442555860308427421261210496923546459981026191239050305630040753518641481353932676596239535872066457808663081147361672515494127703211752260105661527866619808923314646999012099059900282416084270609934447546362229852142605782856322431557290578350306634099421092153136933188378223140740458703672288607699361544441326471913513527613997075039495951499582324032695583651686421960780653665217987443322283771763755307196809491617166875456893590515724718947301300132668595351356835299717067399396139583864363055771983818212584399080766371974457078677831629700628604918424157137785020604414990258210208440466596900336013119700100313787490851995549929030749847612853532480100846743478552642989811967784989266064575965064734915928075032257444343502552753660171264262941087184416760597343560332667785233820279477071414692065177573884034135039951690976475142402661932334836374704303826420334036837192026052988894847107054047304723741956565240016217830781411693602877167793747724616143139864459922170488111212630558440540782485659817484031868370428529274445615362004437170190872954516873571953209596547298455929283585656037436853891580782016036786929623540256706959030204202474892628849431331210592369530863212540127750427198687054174637208738915876341146943310042097386789539217093501827830963753776538089955328707523457857325323617890106611041295688132763841771374836864754422890122402067169127640531880917707952610462665548875134834437903669540584366290360850110493733681232435789635603417104527626455107187245774168461491796395329006817943724080150640519086573207618201590447151117333284830488970629088948340726105365898599598572187404059711552473572611019582104312581585450634368662754028031752398097706638596891824714928099334463205915357989089396558010956777499738856568288950748880987678876600100861486601558353594547541647219207431512877680972266332691338633942719874452656537315106647372748575024986526476669297163694496423102694477736538308167756324903030943576058680624296884006338573511578976013707677153470275196784731947965814945588863846493528267383337782777761053888059269439059050505868449176426731922347145577625793415355338978236177511631106288621397347468586673471891309403551459833812180561254846155775198621350463709580952316552630207210470551267434419116845462787189103027060650197545578559077748305750368484498078607344197517686293892245253739137280427108073368088759674450556555475660533403146130388281699151680692476761370199874766485211266419627274962824157482460027957567250620983485730264155608103881141636247800355597544517652017940241550535371613979600122469396937749500786457680866098683031465810843064198980248418101424595305963381521650496799359197131575408911136460753518732591084143413461314520915471064702273620174463124274569262872230413007672387499840682999904523012833444669104191809488159073284815346120560191176639704619392421378117424643286734752347113125964231656112370248343931119908827401840177201231066576696184480671997638598024964561977003805177895851088104592872877040515524371460917392376143074933307965194561151267997003735649041643779155895961713746803984715947293562066070591809747986332073592513540740470498398545900234917944299968171635092412253886760278024152664362678560092965964250197485350094512264130106737026360755144195681099967605865776990297292114171021047086100093381348004590954235150733385081509148774662576428427197839007210938313138082981073196060890139819022369096488013529158405866761141104820651613972133441040139924448736827994805312021936024691133683338310928919341280821882636217769959948108956085282543387265735737223270073007273330139100589297421832655050683201608214266214187535904280134095381126781039086371648525922474497105032802320224679295436380997034184408323245727188564721312671383648171373134340143045155276616493749722741591999119589415809272652943208875482379904041738856630037322212630060329096250793975282443519115936297682945337637346039891470702586110094966170877512065703156573810333787655335862285809396830808894218204653558600627885204636632316446222009904649816289285578967741546922191549504755482119443197726555768704437412144467368199436651367178840738576964203499466271443348015513486350909317514686369536595233436598532614645119517554090426510770939711811877431202432201925617877996623005493628628731294524276173184585276113255196549644762397953146883435835778824686859960886378806674387498092426567799936974319085441252341988867113305678306189141939908755316150976777049361768999189208084760908697317996132619075395808720215100193732138058963960606743980575383272404351426999471689337370680968307015475439619371336320757901003140557812960050696741088728095157627704770464867874599777414907303775412165110968356169152044419343014182070543002477390855926675056628027355549566013134347059854179661247111829928916622018468331016026115703200214853729209809093715020534744313110415841556262630071252963941860048456078209702133062987978814981617124020251291277155259922870156328695931390862224415054030536278559489389530135975557637737410402804228074147145185813135660974606213754367207768768956349927061846534775231169571139568644075641976233718703095410486252346596505665139379402471492261848138258895052172549185116851564387309154264277909492979180597869985701669772205244309300907480617868886389069399466193428686142130806710954677212025770360037787608939821443334384574676490376413137710757445147450176687782731722068379729537224385431989205871598144181096986327258005766283555579610848651791031800813627953682693450895306831090891388291281658852790974578836576589411387819414378649685464753374968286050150738291399491774915861476090894609243632723172907726600160325271087501698418974148915655680682729772814007036168715896219747281251111478923527088707024115456078648541105719150785418570248990007858459801106612175943345249946137979459154671897168500988301219412985613912251775962216289074659887556020060623048809132034056913335678569738099393698454265478476550718793605924046966636767169387767232841633859961151760925207476109645081839997062910716569960032506473177676310251898767444849526881872361278997243478656047656925171013815564605738356827735133203426058235703513906749502770200941413984214711952588221017496776086047153966690434928247857229595339509755244892339810898550188080558564175266573662899072274592581915305915534229292257766020871277271852901669863042914142403408291823847499399671084448543036800249590082353188160387476681865668245057873615691738971653185329447407294840336214427003939373321967622181680528110911860333513697742941875843416013460840762500343141456909709862420005750725745160470892958231075751299554946102679803658513069538696853375408304297159142425716268647148807638226843029735004491871461844143399985447462626399467112945754976173562464500001304997586130596170536993947305845489379732673007632693881100062585919129669041009515197780039509570637647016874145856601615796412534487919134348789238990499144069673220596018890085291064513948504694026564944806221516314168205488626654961269080589525697594453429354144196458426592149367624192267979713355065025465536843975869556089361100233312546086987424760981505161957091890725079993799214432089956359856347339988298984873287952481016216654569392643977103301104916781138900302734976165780536191021301362942446045617094191041356959806433829351937682733004053498775983533513921425682427957898683659789132128666098611411856019215007802567322747210543279331789356747901998433352480486386479679897724980815175219178283058296693673713275530703188713841121096799188727692291675355435433360352806891805494492373736849505391785246594300516547023028673729521733685559818654485284237977680227275000651362485089843399686796484231730440879249487817462625956074917023435920322108971287376885983880437096137260907562348700924630135061089514020339755426557851881185832225096659164416701576457708168212094123460978380873443482737467007280232689926426923359580256454049883337102048715078961262345023659429614715700445788804752231838566576328619211756852108818856100724101175040393285168310196076640631347469582176746253724938913645718123394681554274946804376846071263356654181070787240686417748443634009974364852599777317597705041892063788439384776276702835906847640021273790000702365554296750829831462026844246092488758586038436189390346851684470235549136301321054060744619490487497792857545057248136966288558132560649400276046137771745938547341773663600915991959021036136782618414689243025635299591043833793661507347387898852304237510988834960279952402348239336298568393349901115536337416897471999851406766025997133676267232498051106895917094541306584690618048222885565178032426758722942172248856166530276430977879698474475244255580718611773911404453727283532366066360549135282513712824572289659321069009708347911533513092504225946978383552496139615551973305021386029360317708804856272287234289740787086859905387031626593070023252787507047023002080474916116020905021656013488869512081683676394119356415976926579484831135079809462549351415315612906433346317782281981829524920739611473291227414841128456831651329695713290070239266752786592749055635725780142837524008672227813515884262365333737949203772702539369853892749694426861605363171136670145681917999341696610018296186814527219951770382701863129258604642520701940720854461167643016981481450205500818469236535973747554901733891924763147359457580832075166151430911692888901686343666208629705369817184481841068022044242112801765546225934656595731385497225917964620803328373235634214817910364208936728541276439725137043892377124086791404292955768532181620591667138586448729218601112894771800236091195722310042211480910045861174514078068311749883929695309603764296687191207325035691794656142636126953617002253725725680941198543264240781226176554257480237130304574516367791263517836975421236509144274026172780194830180484497446345425425307583810953232813347195012530817414044967878857288103611215828375669245033640343532473607573893892307629355399211158994464414808200850665973518796287297324839447601922432294796910000808919630360483231785181730770206483175361644068069882332657381317201864714185316878576860663109486554823412232075997599075780477626667123088636098836905942791991627416940284629223334509829748730775538600702647160372458494630666987891091430884240949649129623673511179670591673495257485076221539734862016331910091089773937578760074685673202542390357332078909397739517534093489043668528810434562307133670295862645129591690868590234596492379074126232356857297775425457029759070821514337520841499573227526878308870292124990861392092560477861021202646024019107706310117332093065481466960026959686129627257674288322282150296643156006947047280266050303269018271201172331126726843749055223304437963121842284724197854615997700758351137367333405082112551949498065242584394794703035342916669332945988479856549935374595741281957093932092984632634309125214624067776138500557626199801292379759152012547603458835131880426297628628438433416176316487675313343154130901018817715036076945480202339741321571708526089284544558165022824735530221628303787754608152203416407172259084105088904800832500432106253558702830816973223977872686954608470821336273376937024070182543691451102385816013008708258516717862210539300961399862807562843598972905845838776373757880647361534925766546806982277997787654430178326193403931481387483531752687610291961412617839787865414711902540510968867279961276070738888233823234161200365872842004056735460804353651504595573384609248770986337072226670484297909302513398237416461278925727632323954529780785337900590825064404313724300120045138051752492329488559511923142261604248179718330982292811226956150102945965013546363700597130734501273887488195191826497712965171185304321039013751755191039291363189442789609264800331406859462039215295470896447959269317791986984602144390819107323354888862157536008597294763131688892630101528376154797398400471426526058255884934594055020395980475060405486477818613243313286879214031146775989340655839667849105890342302085771533910243930432216240563120317554944742024379522974332297218590719478431447793309037069259200143709651287569188593212939640235002294079140236951876801806687244782361469984987256855674582541990412296116504652754216487573355094377860704832430091289137066323292032326964864966947480704906013459989544154951888694189603406149605708820594802232172270147017229435775718493166307243839315213903180105097826969451481005577019340198600973812176450792730013589215371242175272821618694146216861211406861848043739589984588328210625966707992133245637293665135808594838715346419643027473580990889909984145180882291737888386429703876408162257599494293033900451955988794552602885242985101792248229008404681172592038320051996740193189138222875579034047922633215116710568417079963427456541286104608060709323462020798061489965698450007936423400539473412135847859593592216619885797268291923962824517976865722090545166716993285423980270295337619569254709259845541228082381080886111747663798599979542631907380714768628215818379430230457230245120509933804550068567383750297962835348661944216051643813265607631270094977875665427459375957319925184783928878086402617828147206681506613533551779095682466545612631193896978395828680965213391528486668499640245750504270343142309408168430012307367343057508089050847398027574744126636296156028112066607552327637868928309627796079434058543316352163854805230049155315267740287973893484146306866104136443871190325358058685927570308496241254582769343178429408882599624643801609199366910805204293993542930319189263028429375860639562457021909945099271844325682964286769992123994967042340788462181529369920100490380285533140663353301967474503452665020672648938899616974429175194923279678510519318850447629464079954783346092062766375046778587786849945643184506175460889894044898313549748238774177257693047844332023116744354692861564363946644581983756402271994181186004201998235419360300420925302755117795429377991649615545093858474823038257882101657405512734840633408563490444923509555714798844362801626905238163943054358632632540038083182976549852575701629916267094012507131800403114695744035142322808587096321048931375238607822224307943598245362094007566696501287780335274734087256106630874849113009434216750283869757428072501748156847250225611397460694813124130547119460945102936990591762099317275531414265644765814848634913939978071508879471268394824832557616622486717974930378951402022516264761951522277768996169716646676864620822954548902571409464486148631991153512776873140729718706143476440102646766053821414730673690051633946652053556614472059777928888181936818180332266883780707883497157952711489488520510640389976621889427329485361649598191890666904526145634212244706903371805879688127950269496395365554112190082741473924633051375464918514354931252887684285626892203236811405959944793197933718297332012853655169044358347539396177651151174638023251659935740123546836728747133743345982589175553067610746381691370019438129331804630399490692062819845714514233352556799908639592541835314170778116591179936941786189641810783345830654999028151526315694167320342782891586869803078007215391244008518713570061070406616935621216152560314147981102059106032894347605594606208873190659978619887295268897298172871050424251610557574385502021470399828794869222914655661049103994650605054871454121791338368943146084629068186061552792027880607720217305736865390575563033862073036743556030538243498323151677814513018690296164289695880652134773983274263607173538791087616333672413555856003154817047340715543372470968789857465097874638551580822654380759463451015492090738829835098800774759080213606740684638790572822277732650907494977219516521339845983687183548035597486772449229283243275192185107339097853756929157371385708290277842863853209667792182766801363829772887376633717154153568818813662156760478050636528292023580354577921764712860557482055329839039177893194182677588464257797399277358076670659778784833925384659267833454628220987341098478634989995506575754404083730834686324441037031951402469593197037422494886311427712792899216640996213440437079280680109726365645093894990777077660025503405562927969284260877601039781142691632875146277728262492061662326474686544790056518635814670201282763405530883264072611414648968146367909025593160401400754426935648467163055224903165701784019354469826813527790346446153969521561294174129814595322104878867603423938385456143622540507383413240985803696414218558033263234148160208469569111924044668336063272082045616096436877313727929430768352667819280765251895822829700067569137729997957539330707331496820002277699582034420570478527513433728769954924959172958366268644116739580567363775239944083790958742098672737457358376141822823827485924192235555238741656025846520793815267599380158801839215759975867881417975438809999119652541826048557413580529603688461382905700973989831877397407799080656626174741875068989816035676200263478730374140268033778004609949012228885152140524166547268770184659267815027434560380939670596169715499471736046758798338832909972693547945515371691485266038116655390059093598453047643408300016577934682280367250599411934624968923760141941531830711413461053198542790479328922487310781676860171005969263240778320284039685421731502073241915510405259391476803313434031073246391799913253936773059401622330145016883360643552718249857508630642241573816849323320367615884226004652754757110195567543046916281112809003196200565349295401115282120625063031482077161422490434709319307341328206655855193870546213898975609026597666626534255969675239443004997589026707165054415600539687259679971994547325471621351183014258930921898620821561401345126640171395104076603417053724923593869676214876872749546267093446544598945268545012463942836196560899050823383781070092857373587529308371522579718701341534813826247699891819358108742155305122911143389410965409450213229957866301808404599975945831756898599439873829798094154399709134315072570374048526129337378118246301264389123188850360733209049414009718919655061946220301489554608165112242465478865262128863406178676479743528510718928914126084294163216529941002972137886978947315912957983537247456615805040690732090749147508641870075994710395134998273107263311279658714386150463028987277653535639834442208484167235230462877751152692588131762064068102897487693279431308577380199011649568112558704026268132456339279098489502895274850091804986017857685184786295148695339063787914618995663356349736656393590374779538634319549815600991341110853470391612037321463936537974610580899559842490486055394632129646419419879706197786608592046916835659121146340918228800931053489017360860099789156568547425890105318235548100014705930727520448177242220854819489530683675800867841413996742723633614445349589340805744603411562572669326737863532560229965557713076658352238953066137978391009005803754688386854660930268054346938575452779699776936777864328700974691066392533986415111422689890937299108269546266703995957786372298968005745668966716321447340133665970699284194643015394385745123038327475900732146039568365149722576826421663566925097773711962448308152686388343112610527805616675653948086316434587677052756773472000197998917001703758078194491911979408449200325662267756277151890822987127047609463785812714439694875228504237538822636124187237918829981513257116617481473002517779470978635471055845852929287909228408840419146501441928049822647341118446696297618692030646118061358413982522016270364972520091287472607960202986827987022942604542674581573654082250854122716727792083475526203454959528513464112428474733531005044268630556473715536673751632648182740593408777579982933194139863870156936641575860837792573656232804921342352355892674271201747915878431471846506817200480498018650528433858577494482555902490669626670006085585128676914503158186403140686007465474433838786923660367719053004456348174974006443203699699630905789902682260689415150907204542120671582604306797564954136337242221798283541072593722050321326587603919099249929766261314901207309779275521264756175867105267593394749047694184514630226108969783656356815045030720631854257026740273111919682635444611898488379267687054352343442384817850698031320397393438029685144493530781646495026841069597125648047150937781452999067892560869441810725476790241144749714696262077215676097939003192824062469050576938811354571743265998758468708224445374623755351126566328403120997704067224279794140286769080373206552276014537840891206056114762772200769397111127257863656443472408781082692315368699832578495581790262971878466972719823331214329602001663597926532899129613146195235063360357017985484465574577257098880450752559060261481746697375004133422280784171215554461852957300128586497547586856441245542502989670603930228683845170605611478751213993293750781007204496433278628586417482710420725524041946434454406257567307100952095249698029756576855697374797090424563293488087980284169148041562032450628472128371101047456644972660747040545701655603482677532687065670585569137377474111765650343306909486584960075490810148384736912380191348297500827126203541286837050019459569481076734357866990184881268996668001277322413163815731587781051682825798203016003017445610329368851357622359377154970151610022916902434450780153401868919850332368410609637477614572571725470583886250797533069672914889213044976994676456236458762333965954055526729225077165185273271134440155027618398612350563034702779386269187089009722936196723394484683047564695156663871168066452471688478827757318445964023936774423098191818715520028408682022858819308337476445656555327991136283985858092427649242019497202537207557492392733809085021105811025235464858073930463984830364377932704612295726171350467916863389526802570018953705046270193057717782567537315337893682479998076816667853514940889811822771156882783867797895052885857915919517268422681362500924477939573442536950727990069001037426384838056999611434498952761010058463619837196400823830551298851353055670428140753747293620249962368086584160900181497988472219706647501838203258689157470390566001590849950828906055057859387651521354545775187662248370634941568784993102063641761679566011433566304465416656999866662442062016215285963763760430713426362810697213014638291898564419480358649542085673391612510495513239206724623310620590110274532754130593123532724170351481662649825772963380569605561121288550568524508706096076782771072661095786116834385953781457420315919850863737825734344054854576406617023876221969947448985727411815084456688693102318250320629214077836367461582429178919503059884383027917506869798845978849221874279635747332974867550673231960572244121086951543966592097773261533771441916851848236794587053834857957518418142069886358345462447422427326589292695095375769914319309779741535180470566681324848676359767131238919622299457974957744459690184670179952494194195391235531840448375442553061327106844138712945453361744723890282916920572602939250913876441554745646019539902206174245749414408890860018901664239932155986889043654826314404849246983333194585617346079482360640848740747992333641627675652803915175160861744041215834022903778620284663821962797689791135116504674109177551898708902143322000043388740258525449642611575291187502683076959610848298570502359742999557978914929329327119282024101501983362029505753368841644982823547708205938781322703219770715478412986086104604614883530455049378021428228180971142727651013801986111254056977011693948117489895253497792511066129030481467785984175271445543888743794495751827633079905482024608247795978485809645363227473177902870042129479739336481762002702185840356633688043967735794313723587445572468954182793964327036194130057873432093312861433796993342198838645835018221885920095609135800350174558270123596417306302971360476058962832450827881510436688723775180998713691897582445885624567214301581290035832732571708594384932282812440342991062477691975087376911031309212342288372689057529731198888627360746064406838851052274986239563534403443425689497527329606130478172734871421412117268285864807043504594459194787294357992609115051936698674458848346817638369762821462548568428952245007532888302882913244309167840128368627216108174829824062653418559817085537475561710965751618533622721193936340100267960845783769842116188271317086984392073903291462205980060551124486330052352802231474270585488477481690321266417907083521031586676408270874660261990831456382450601643167373969642954039362489070409479635100429784702790591368817355971690523290301868757497230691932439088886512716134898227830970750790629163846486146612976761387240772996896451492303896905782154720114197888955595191609890654076225203143792199928009677113907994140892510979404948905584695439560617064668265269439174231129345541839776177257292195064638977586602208364551746819747771929033286320331177890131252641774288899437576518778988086811208139222943183200901813954191066363656992702062719551265456918203208992776664036493453864794127454849797757823563055608613846880018281654929188573071160495261360788776833736668310167898213358220720478330613555073716555769285806345102424090804488517750770362243356933861916867428583654810118762933620835069600837184248045735981095302944023956348633572625242941254017977029781821190641322618828972177483795871916167251411014640513366783306627542400149721161066925651567521617182595817823334273347647854371920299968413938874933520498611135002411714718368491794182970662833444360647850259589863711399650118456541443663029149459906376311164613138928736952604982584945983706298014944390076480198881860889254325550301702618405760823863478557454741856735223763333688129452949832484608148709473847561177587519027931320198369752905349187067772282387340050816308613758197859651720718814405193322792141904199538735690275554914959804778189136656249624916551214690869878959564547234246618184348400320122102768042225968074816089732073939491545676668069081514032398217394998369912687161090243588260580571128791829489117483163231560435165701468690297881099047505768476910248181447894329303006827331437558177124109705968862017230050952050042111413685182974342398266925554395115008876025716766579322752388132477958055619974091269513912500352066937385621694399779671038127208364773092127204651776273452499293227444286221479160099783267200772923932841628644813889279372971035184529380613708477352929024931345007415106719805982039256117492167486539925523899120508814041433796480374941586445712341828974449723708018332181115430782110696460953897813050652512450633593417981185406246827116776447795543185524986629935613607304786960376301239671286068527903913505914424355262440710137327303031331661865791530016963842070455271310894698934659717036000496067612268291518884840043427771688211531291228871664599417417931505692495701437814178002085222983359269533535058443297990277267885710159899957413335012314977627221057361878828959246892799354524150006750833577728183228776034835352812222908582981914039234195482845221030324392435485168983962336621214480544471798584858573460559509649434482200501575269225032205004435080477493380049710462019771223402961690929521366709879304783615515979932854483305347309272207937849614735107039346060034248567406924860764289329542592851962993461870267161179916841107886170199172051055173178093063691580063889262253770094072742372345271556910623005765924116322825258667096702445257445338115333861620021960556732135021287766581925423866058662389822321353174512114586252336564220699772405842101416951384978810745451603299669861235242482609003365080303626746888857288975175338364205522981965158632743042578789814913440823485220181983010795305085227514179455205255282817484035332743155142119372557242777485672292888343961920161593474203983226760998636748030129581296754097655146523475634546088803564644204494603846215678042941219937024504518217365232593628064318356400275681184614922160829230938946969483549464352810100035355632187043082777506994326959340046572107167627519845150245131776281461578500074604035746976782604504434116967782154317873053634481404847320093052219135701604226416527453323863678040611018790973610190166665282873665191818013754992503394567936067687142728330162939874478380241583091829220897853628918250346367736734750337996115779549962894617026631890517487901996208207189589884314687606030425256049118517304657143537378047752388178012161208754485681103893699462644203579717704465514664631511149807748242627708328748137249242657323224417821440567556314142986582511667575477245768783409169843398018540496703236266863631819855695508433039481435175679060237874976073071931021103009325531108000612424430970751788645206251583578206985237534316038525410229771319366110186316934449449296018760457135983343988941703007870130139040634107796671782882548041598353667979507876557160518906409393064893055378946057453764297522019141786236807700496740868716813036584258365853483319472894669918588996356985931057868143277066652872699667364486333507471991345069492219668506128962097011107520216813113749872163269805085163704711957595167249782452340078024115599909475465413354478766733984897521292214251645011407801190689917468266342729857944483634012202750350513209447243774483408783720831455581250545388640897476422748742052519794441822421255609550343288372766074041509378306015751150317671694971407831680342441058076944592022856540163596107960356107965952399280737061742076127432769069245584396308436066225429699581064660741452160542352634517556142492609024667281714452648764977414482222017790998450103898918037212565054310743084168837961376818356825015905975893622106861703367784711941061812368414166705036727398741458716969861500475029651643603360773890148818654843110259561336977584930191566207285699792138952995491515262923930071167161902641237301297118658250142427194064919538577824606177417405517875794285691732823809473150700610420193904845713167232733394738560056273019627375554036305311857063280977438058091399099963538810139379902281324927190913804528968513997890721229569424520210894676022165032675720160286685634579705995600035417046001373632849555754086417153176439785325563446955314903663004532565891834040669111187171310099186430049860073371000001365114972864634870566471098557726880628360243701788968563428738166852272430276786422180940928383426461411482886296942284433455439153805861803399454324292434216895835657733774715727645364228060372583172861882743628303735888097534931040932194536051947788733197379638837975242492958930224672055924739057120849751996261061457489121373037132474281068135073887634963541216823824294952974626407556562049057246370093278044295016329516375967036320051338183779515997407683346154854483281645985257784886221241990210953746525510433663759612195862771433982982653208908267160750110109834574805590101329257076890626081534148706369453900175927899664611218033121092606170308232464739867604726394909152291466468476093915242982099630943994859050505209832647934329346729926910353655646168110831966360590437516413303135922837483839047046938305929711768881502049376938731978167824993108079294903322288943967159486104355271037370320167427146801745560699431288345479348058254150907617655082869736371163910109994829360187472175699136695172106819123492942958969033979451774357896684248577609898548796715746414834508399744091557578016779748968090170479766085675938459825651018556733714770876808815484720463810008044122546140983264093229827507629095885048346798692127323940115507168628266712607515643080504254139532789954399335058823440678362104626179633073208421249205158641410985014324639096751600506710310529275796700441747245305797971034816912474995240733486267574092670188664069041651765191088443715878123989381241712584776645714951776795467435524289227049517785639449483032708354460961135991305522421319504229142513212943482026179810772706233648569585480044751867695819362133003923494504144480331099404281195369502191513233177754356392595210463898303326803531427207171432228944271721531678820505425779115603588799677636284159126787256665838172179605967260805448173913389725232394376149845740037467611439005678199681561084392532413854862114535801557364885052695675712117594307826409201783285247144608105898700579788242778208756508404801365338625418665308811151816045200939476974403090029128091896327678139356602108746633146687201363073507146252099003011059814704188998420968382109461280828599130981228777066893815441317576427295463623735154701113407232725779330464328242020327791932005960644066881480420447205761381122841260003546265386440893743411938696375581643284615568508565327998375467929920772755590037195487236591917653559496839426509174376397398380421075709915975002967538081314064615312755403315552723425517107618245069989638332236194277951322119728228519616665795179453268563557367522221936134558782195484300020057836796463308276756579266246931026855220224752895245542133540234508572309342113074166287585274290590399365154096833711251457819126886465088821130407324317296319225111119449012364891473036853447701550933084381731625154780581476471487113361258431357436607503351497592385372154203904414513385831373726213017934097332976687475940169529833887954922022307670337506194022372482811169347112585782484604782192635264484798200873492599984455213626086171272535476490793379501228257441933415011427837593934789595933394292528401007414933279412238189093909487151568500984745723009932511295456246038653451219527075457480848946200963031305992669076561850881502261126495771314108156103130554642530362064833198143331356080822227009808746797275781107219332247329346951919347900652589021006822574313062323499737631201163075223680034785700312717371395015818041440272739177137935922300313035444217653937197973772691619447248561915225474960217753105573552707154570574841576573477481007631932156371280613333116389232244033419506859465459548932457742483981594773421260571035928965167777097441700933392656872132473097354157257850112905766705774377544433778820515352991024584298558771471308070159317899917887564771529722937003011471158274841694348037806037876473200832483983102981701036520084626642254834770944573505995665196300650073085380334859788169153474791105547250450537326566018818358527210551488916419962241510348015254376934558603068190838624508916371188732513922954302342072720421387212876711693417078766376217908166202647499486756118713365540437163886278081803611008299190071912109536900755093913223061041718965216274545126749280021185134824106878572854777900328637416520751037708371936237802008881645139460913610720264178319276437627741583125031504557792185850719037907013114088709497598016058036373920227337036241704111466394584909395872872491538995803633082951568384488226208399596040165137286368929569068543127146424350987545223435079241127243212632133153373461745713892521615706431418016486358275307397769768740861493805077494010137793026479882478318799823606496621590510669828208756098894097752850280403685895111495623326405546603308783170370225620530790373804856607019009386024384028991987146305477404566250625609883835221786820116058621244458257887534096478480300075615854080903757912913507043150640911968910043414810160544485890148672289176128947426120700299468183712662434130395628224882982071260655217658703066040262816935943763621421385707374476227703457408892162492885688257953962549861654728754959494019123785167170829135619965196644197205865353923091660072818050280687229944162250966290486613964356697537424828661749520370801352202828030633327881761251038093652746093405827332784677905913297102774826394074277465619394773645979419320829727161490544660427362296943810925280349080585310229558442699156593329739250327071595537816097025565658953915303739122779594353523172468553676268931511627222398241525401959628441749032669107244256360032782273637633608141537796075105432626229378426914649646798879212153870308215481999850696938340212562548236503931826761060361613276997288503644226018944339359201082408253290891379736094960088891571436067866948983595269074601005113007823045794307734882333569582353564288504879276384024570703276797555813788284958686254229277547770143161268214073826327663080889142418665447785334976042270835433960110933226893741270708825035391652791659109055868262620373354404650117019114490515497182188531969262129116382171880374885628208300594956223362042730331397126904922484167211286517560561365951784435916726603758638187662669155720134224441665528553992355385325557398370731145627441620043384529369986247810139490196583339888604039972740187109782226760963434367495133136058595359916455271171539634890236137818166273435127903889534575293739742204890149046237387116409703655631970596079505780544493754168433434805139038551076986754299137995838439394060239678393029062124262864317058471295181728485454427534763971706298361892175033716810270197507979958939912419238777579077020542233274016386531923808926564620458423895172482678260816972494142280628515118585348779915853126470448989755780799999330964029375960247501827183535939721381650060231914588738077769898727685115571199023610597058933623585169684945818922096996527306490378072036648853429130090086172599416938032134871421086314362000516132158850593009125900841016688942117131128623253249906814858365211053298720922353299197628786077570688553101901062142887975661920256792570461018059510500295685297351433418948179457900406430935257354510595549174327896072933145236582813199151578485474933425665902767463873718558032951966671851371992558179618287464868031057960406274511335280476772132944071297940551784781372559422598110843056232956147329585892151340796982567569171262027883876446232220004233918271176183457085641070203910409272539510340973173142333355308540737208718410555336135308586483813969482746548773910528838056962550106986246055137278409546633199279880179129199841441298684921297679237525260834414662634522293424174105252101526824776107120978545835681639208854379781253881226074153275248365892505544660652404272696402263162737694362294866733754857431609439237380341325978798298297825086509990313615146434200865342637384999940233586891262855731595511119333268347621688035341330928476566194004435374265498324878838013143146924310552616667889273282404021824979939975500057414214057954230966740529574054281529723914706721572554504238268523406577957020736531115173908668826502536081629730844355291320040903018870793093048152954717847050035914724748475827433760766765474693787594606834992460990395167633561951489208095705011972673192149168075695622762556631441725592325795401542713097357712945681115487518724539289183742557508553858307151693502849623466678618105474431204110919704637450279689506706558103935777840721565510184056800732998538489472569517214770737267949175942340670422390040714801029697970466152169272271661894831908600742074722111732888586389542588883553598979346410764181281209356227405518594023446219415067416708087511174805475366440655266622842070741345570481818371197506707084102122673808575460160410304860156885185233784389113690812054196456876871191232755998780767543429291564298815150399552158051689098477493122531589580210624452528241275106359234662661915015085994070938838244104138923354270550803404979297109672279498680892143497635382883888059009353767415484909390851185055501248489747636040240308977746350955196225442187961781309384653781198839649793918048731706533886806222195746950088642254491867248538797238008878117447109999189933055691889793762929227985751560234913985505812993539679401977391463724221877800460084638842312838875504964624711290734853388670739405468667117932789021009042154841555388123185064275825360593529511074582111832669860376583525501569779732241283020617393296143941651684841255755678496765067292980889955794603648643965531292332633256093671484706154913716093693817979133507864076505692800240980008133316319850838328697608154505521978009403528012548737383186033302712569982784217463596460820715380040590564881305562390873431954152910778456241834140664946766634925937969830994730741648716444721829086380975297194543267593680654203699462964012691846929445822933038735141479520495731576817069617332129293675244743594454271759689300842960592944392752135927795848964751376837656266845465457654366140599789292379262217498878000925040492882396535853044427773318003496635718393235972453056509249483637192323351847505994567160847693487877724100323963275804091285636242828503536295073660251756966869006571554840799097843050246394151886017288506673829149623039649784334292888553165354461198158388841226776990254695275864728362633206482063704869934581901581726320227650562965080705845511889957848152594908774354068777175933723343821347124797403586371268812752252178089315027038061702427221908604582605409749744594858835244717613880037829068103354099507735296388462459247546236799644925279736878805413366746145571255788786139190740218411682259306035462347986324986556299529478774456087244127098995319732199741950866795253520087385877901991799411141687225820259236803881882283928406750869170110531103032828322703843812961054355954914985583655337114760870053994690884908593337987106656037734057754898045232896306299897273841849901673063416970339596944525437110244560538461388785000669693853786151959653351004213323792537154943779709062146273742946318302700424776836817014566068288654928731734946885730976063101420192811317104092292567507656541340328844143231258027785780113865086590272779472527110090976430620026757323182339494045190417370087259733973686660218471100030080661755094624110859886148390327416070673696880818178148514339324672495619695168908324743984621062627913289689536376676826471562431850552125872236221568694371794560569150361341573164540389669020660563291903751197629006782621598862468253879521296322801602790785624553689797023955337905084157769302214924553989126437611029674742291781779900846685936275085126344078726524208669197913436773738563676469904407741087340901355583860950400832336697906359236156703747391886010714320346583032276316882926614678801601251094263714341283750152924310082193811782337467043001712885277573681306810306165814070637203765241663091119458554165730141719293757043572891945992895144099049591211759882501365763697157011868511581170219477733628756966949193523153394863754193507134810028210782970068817550017022106060529275692112356732311113228884464488248372096985195971066950762384908182404048506203564845812537806837289154140814084345128464124624999051998038878401298464601028153990820894931331205280384909574846365434857190497727157585570026475829798110042920764753950882740426575020536048525503994213506425956391628660958112471942870896417680627740980505640716871555257431851778711123529929952960933461085842997044622994906382338738730171872941808913459405887510087326695523686966760278550985845483572647613907708954739303936493218234953799566342476020101010581401108646482874565813447899153272091355175048580244967214552907389074587436578047809223850247921794509368377129858759231006069701494384792843645214311743576389539416122901016179340135393077820884348373927550675528252622379380974839720174382695862983521278442723477037121285089203586890788043456376114841649850742597369593209716529294160004946987109906536539541634102050370807992300423684685326633449443946799345714916328205608611152832708856243539939701113482808421171122230937361290794601350924590452514527168531701934460756686171739671303174891948702392353172340209096345785011709298336258376150633907706248956517883950149526323039009184333015190340437746513676653736174106244219458328853344277509542189748803455460890306667306389735211511922916326008280472346826226443747136861549586299636563081013807487907625355900789670690787544690059975648687296244849492006034855187106327020697529850693001574046306019815709576274265187436226108572219525324216655611200453676233009732078960470564614736117118817805714986686018861669733165859535651299366974703724335447531981850179832735691426109398467928398877200221842069509317348183667209105019786469912896055016601370104302781964825894214696549143300002310268025303696161206507064046242046908437570508573579367307696478691788837579944671080785227744113532888178661663596277762554110210694869749247540822208543376429318395074904879206413177433161949980905419071685843513541100253880994069778501661911933263905463178040979637268448753217121877790647812694467282477862548713596324485235846813445582366694806217247948966765137688306998675170558758245501014937766787583359095501360698766749461228604289198136945241391306769615245707010756841282066205039855570206392724427096254689350604369235017622057119299084207197052090886970618873957721745831580108891423364044795889554064135275726225862797786866391390866330991380124677018481047934374883025161286774268578168117321373460297636665756438023183855438234743935541136631215066661595878070962162668924213652565125707883397200849335958211657494099788838375450127929696652612639577986491917218046212732635376453018616078851747938239626544314922741278548232120138608155830751613304996914957585834098472505002917599000485799281152416006772408492984052611579049433595504737666497675332057395072908693333898140562530742731185085134267396108661532739256293995324650947409024338226208514593554964521054502749721625028045779086102987203828058688503229812642824971301184164691736789602131153321037195306344630564364402066761894509178298124439570079054083048351682237980616191814534738316480042414337310889814873045756657462457881843291885536730954482039210671638562294956717905915786345920919279317472760114580251101872558284968256135578694896475106797575835888621782082834859472929833324892121883782038806363006734690815044415548146163941134820329506300521186921719537942614384039833713050599827646205065850682330994834614507066671115165017029319018536481415086530619950820594716995516733114206415073884541015923806842407751643201116741055722431325508432330723986280645814917659976494602638316320462006355977366735506399738721346960205514626944572441203458170872621322158300466526755020925897460983196326839074653446282276546024045009739538367693989502673837113407602947301707932288325372734978028304329679467085502918772762894107356940753592094511757718766645752785479317389171635581448832035179991760384625894133465321716603768813965763235389286604386781991877092491227312057081198915507111674238545436410347759470250854668666738741703286101418609788358783499470929122206397910494309521362835132579498544538325410887717297921597042976796381570250249719979077926058846094164839414958311104558456271960429320645533695591630356745209618445917547182950823283832138660614314174209682908431476612817138076632855973328488611638112042093669069930289129403992388950787325133088668948267377140908658109955093863008943384904034894623641816102504862489992549290515438995554532131322095826029972382516247499005172146978788941777780480434984888112400801403634368985193124447591323791169800477725248527920352868612481493004006593995774833955569195782375973702299018526471529907772601043093183714836648642139818764492633996357965605602625034114573367163777935692303820165852439611443554467890704539926934216990329839398334189778465441983167787988064522507466090216050255853156859593174925756890701215833062147932112900948583188427377329605149150483432190309476894135767136704230200279030509596472815796269772916241330324064734691466608172637172393709552138288592926016726181856335224925954083622155492325051368714200908695577729465071488317259153508841868181058868092205817005171441999791687946271137477418683423515035961758457648219867184394779189025181053852584610705921606044433617531333003115891962477674760071323231886911734854012404680124799076080116144494599479826348866119183328538800978178994575334317893254891874634082335398620098427020690462315561164236892704928361642088282157682456278619332883723292895231993408235995358749448110716532809821733048768798928420321203435604590398397115025471024842606840557696106945920295581287690510340336752710384820830573991173073372032895079466657133570227618154670638302682197816970324002996179742715804033749624335967831876199784791269258543826248878423956786534677597380722920164309723448917771813671294770092935269422960354909405291344074516127838936606533870477158472474812772275142912298403911257988197319277517347167522002279403113715357091239473921660059637137869259984800368557044406201731202984748779772963531106531523738894705011809249580815840684605803890664522565157866576364803967327365337169289233066621330344424464431210915959013096475857451220710083619525810662873390925607353789945495971082293401420748742389748138481719350460487050532549920034450440257280852991219863241186979925543545220905043823774785212111429348727831071420814635239357746445138874002718844347371354530551953232161480868133676792856045321326844077618390157798714826895150738971485045393299191962360773085987405973347298414882365322264523168716531057282500347502641090622597219046981294360476379014264121649049520245821043062878044331858211253508344740579244967213809992148534432818928208880846273859791844358916063566095605480831376261520496408114237024373479803990551622388903423421161211140606218936774485775342529982515419301085857264667476636741252229609714617726226909546173601109397860075108438295431412827272261018163225227940995083500573339636201893908693936686615681394866322767951949880457297662209714005280838240332435488708004894698974092502207441487191389452827132779902209293958299259353604304272379518223574703554334683814839855908193212897602961044641312911765278829981410037048042680631328035141558604254111351255762825989276387545915478685541772847019612930675696081670521970952022910712565297771752328060038985697890377341915941019209940359598374242816688210273672600087394065529850545201916217432135286054827078888227319008688427407167467808483295565693971480345000536767390763655392461744011969659037358495784830738006929706815293812694712591062620692508823451981481351575593202096215499621713718417339343078862600233256490561809971522656022089622477151512364160296803076146896261374795891475074555263299771458936073418401578856173783685613817303953417111975118560388321636499109434493445486092007400476641514699491893677646728106957613012388135709368282713875951758361629380951924588866187962190728055373301210529116568322507214336161123112422633238256593248365341624546276302149437885451806917707969117798496922261054573154521460717373529144812580844156354784429333675369427772699989338776103594502767337346309248743616347885537392008475552458036081460751235244312116298906943724526671700488548234152537250955850110752995213987383089919606561602098054071411841593764552076561327544786167296446420691936633491883155838526479726680181390430522309635896590802631146883634612767336136286025314681363795723245362156762474518142850578145734850656179016324472293481011945726256094909638499917296857573503231307861241503004594497920794426932581142390188437806047118002697460171293947077842183457014658787200641281073359760971332465264789170149352114952676452755695977594665101613152989556767527022412150331981740253110858535384422499024318533119839964178376512705810281879019370261753325650186052403616197317471736887947076442686798392328862931830230344978171169667366939222323622339679942152372561255401226920773526440365488377547841801697612202820648455242558416609267419386050434503105713286172459555070126621655454541959158707487112433030968297757445976535544525547785169714111796121810233518244244193080074162300343046070367210048660938274040418523668916545542146193841047169724123500833587384446363744466887330065905432329539321828842477627377209087250414506978008629959658599702555975019839023504086373681429438353482559575303435072205094941193896763909158756250716686216414950153703473945799884519804964577868565497466759063474737823237347830578797344331235680738037259224220122227498371200249435457309768081641268662622133265970559850634323834622050407360889308593545104278607996486821268117500477089180262657248411966850205852261567736916475982764792907233085664519512876672748329185443678467657381574924039702417816032442470154980300806534385617686936512641347818552473433519335509688003485750392481971256971756353880931639807061666958554448256659992950383001517095307937742890988763484754409686172522705194017877886473257884127759753613858252766498418381958470924516464318327534695802471002613595198210383333166200025240034431120532495121443011898360250345307045726293849603715965296046400618366551949373411262582687724933034584509312925981152566099501561584137674144774598256292594755346724623355837143891146464878163159511175878817612117201924359149692206413273388757968764864688704746509259178860364589090965484380342385941580721076358619792249705365165725065661055898195610504472935437310184717302996213236801495899597661787328835657391422891800841302514627188724229012437122800498098576493703781279522060845784674488564701531108643721334930782407629506675865242998280956473746856075490804829014953647826551856126402018657481458927119557155482919386545197922154958630266895941582926931943053634394520840017202719363315315916739784027276076575847322908315929458788624766601724112438386509285838628362445838447796216128804851243004097118436248877324831890677060996484553039032877267847960945214502314696289622316615580609517686981687808391383235723220193388085496466273786022285213686008038584666685589131063328152081158353809011862459856960395900554011818138237360814856952786272756600219924166718113064376871948661934961651308697458607210142168695040166094669816469865560559669470191098654549926546123811406706917979847210873118842703429734924674592455550208489663580558700955685260718949812277058119951539403448259270670256875631463138040390553230517649378422949523108713670438164804952571605851815024240488653910852490785894343082524581175757296291610103085411620638596571270873459841594911369707308783026774008107322238691171509410560058959592319661799780764560825468080880167946885303842145272179086021237782552712282788155325068142110873040447533946785094849405121335562323551474513543703268685631332880159247700313830498196677939922107469997911707549435640152349783672455565888850317464075830434332091727365349541300347466270477812529722277038174451123472233456822448208123185375941717257612361700681093821712654383854203290709772846567918408224460627778857568596414689726797018322978162441410740711342509173944755738377000801023472846523638307102743862735952863619000712148403860873200480875524962980736760714875015816099877087750507954291509221313970350732583813824509736700805233788518099054273477110390056941809229546375578236686276196963104018552754514245100847420343420740425603307633923886767644712132064859883360078468493442005637727969581824356850899889225091435589923432747410805075173204134059135051847180388585448752911961290727800713230302926123214298572309607591389147231631141670109136269908251668283200337466012696160818637778062968659274058359852929747697101402858161941416744059001659885883779333157391416495357849770169466023801596843718388185548721807900053156428675633749145155520191865713235860889884886927113700119864437025063517067530415134092366192494123660033649771772723109885630062236337003162969446953809495898218843566662913734452740511961573701375596950039205377470216881992743070280452948083832478597145120038887333266158470259348895507390359240925752238758553471868514835667855709967586330185962946151102204790671370272052061077319970827758812205199488081411561340127340099442129975305665747760308141771250499028212086071622613105073027996978291979642764581753576254623308092333352619993085621869576044639158755973064667389031994194469119275241614382427964342358732993891330925452845922087786211554942472272591045518114892375075158205460679437374179511984140338989628219098113421063575533141047239360063917312410883124518788945865224892868904415833108510318133596336639799759799115815438320805045092005605555971850352752030632750771207873042501438050479444071648860099714113085871797673309105905166928426335068329685219865664602432987997731804603817268866421808295596980562298095669649557781454563908730673180588097135770351572898857548558642475984345184625539236815668612629971540029728419750158415216425809536970180838054679294648765537125054347901240683416237726264401199158444521489727958447258694955379881719832421062777660549790142496936140772780823286587282426585988252297852815674042243404802566091520810685994087203688329750680448445709175907202594560129724079137763312624600855648893258928297674727641251444136919457325782086726057700910782458838601363878041671596882734979011007138612613062394711347625465540891696528256623067615985984236621985325706794958055130492115833266589972686744036826650438481056983509857780311823752413975962998590686329426544385303068622139443987130403170922804745276134377304557658336878035494947525423238462577145681101657519521053715246106478735937205909380254019324040260950573981141352441464132490339148579099942780473526473810775600006920001034856470728088323230563405143030664866696319509612083672858610623216775174582291804632815993512838651418089924633917319086771257114107670025099281153840915578064995040785824573990614928861601422876282860684192535258587790983446785944700981344127089957627277285242941125734190603321282017910243837298363239443983475030725562714577383458155711865974451439057894059957366788206145567068612299337481958715782948405782172793733649869734895100920463882169229481914876216551315437413121648060563830667834889642639856923092758417864714375673848607940316308236620058878710686534496222454584238674811300897241499169713604027781759902012400564785742772488896668183909095687993452960371618959652380052716831710615062751221909995318624220899221437641201785679203316911487416844648152211904498468897731971842963660992677264096803450503507692278415640801797638915452977787993746387512392925486015757408173072499501544124791636604917326856621023997154916252172725696820788063353541881268908181869659330084550842798700500564901142517154382795537884146251861736948673255134403254837467328591182246809774322828593255631297853331209684808864511549916833632134135087551155102732021811730275381671140477572659348727687480000306744757878915560733883323876569491685005986392255787188376446230030623557067273109817364448197416523598937914446085056832297962753289968419614194294983419223465018494595078609899748819765702465184676662687637026574847867148120334517886152049430655958173620392488044330622066159686808200233564351134051524507558228613896256495698633968074897467077599053486319025473283327477428714747736029456077330654200005132945604021862221048375554831231278908997853613155908118596151262403774244144151247816287358633324865505273030835899862794219611825613597577158846645148710525503465298349238685524078035574230704039660507337515797063784500826577824509935600561104956867334431198153008580430969638797979324126881579310247909025656571650686701163542032150987024300591464089023047219123124051022753864045336518565260663077290359896452787557084263510159335310051568098021196075293811599146237122289640601541766729870849940811382496986181423008765166516689825096281016765449967944310712307604501768745081847690259671535419164352101429111056141909571143520693735771290769434632021143812801872456944952341010847057172979790330513626129030528458399589909763694862626038876171702604495334563100656462315410927110488594345590721363139071657538545419476915077434940759402177675941644851067575088273862986790715758018418497838304090384522460413381239192904183954021448358282395543538608550866252317531749172446624202753978617350351381226403751639988220915768833851613901697960683662945937609602263838575360162829589068395576450021504223382421598489790688768216586598314206889445789114919308638858015245827890561404091423216194955823413695215689816279360118843986758504621501575552739191118239408499766027562697854140881398499383534969502022664863054185746637381632224912814611783486269083284869405861651140850559733915835179278035505208976142878861063964873264827863803316753666322777092814433167461319396412141226384079591098648072249198652711737810162011147346794653388264301398904403319854258040943726150914568154311999000644693619285288372621098728144214703267796013073796432511465924830433216855822375071399729112530660088565868579553211634688154216479415104498295788757647444446905760694407643140668216306371951785570092556529811211937347400722104989608811811782663691672297540081885855214372280039711809026274726568084280955923416992700083498638500945364224814461915679832539572126397407196923211109494136400074126323203603975203630138119772058050206975795491461666482739705150501176595045679221043218334547844237401657448548240299574664010262723972307347062666642295731521544051735033589530668364479009548637371873015753591850324053548655400780876784918288295058372172947647379478193066167358592352288334118127864737961359662690580685213849482904984479926728134937401941755402028922231019756614734991747092478292032143180918252411200728930369966891359491028367948281497744139037506945047106898671306393636650144780520520823653138576503185535812532023990015136907102269584768283292432876358641436948364435985376378659629009949911178319517735329916017039373696442773516265013978280686302169324712925951850087567326218433721605097270133356537063133514973392679675470209782889648435782003372379462232518501595793057009828820359944797097081006954123402176233517385025058785012760234622793142816575597257155517780650319921357737719905502386238119027743571003356644858448841226133965393496339476397624663116167442074695568704166243187700607294903837367178833613393180078203336553387436194893334758786355925917606339753253256360911282660776621090539780920188957377306134800558506912223308812506121649132374891599083232737545751987946517302599766615196051129693705556627830023846370520716616895897387901880065879673940675935735757104810670990723808599415088228082879898653169111325812479380181869758535096140901325808873594295930033061855500558433502751973274626441787969092096868912445019816220041191969590487014340327596891149570553476177700345878734749690502573657995978980332624624726592063914386175868945439675732890858115585332648952953528015488345902445536397261112673347581577229563110487153718705493598719423095314536038821081094503339744759788513724193160809211226534720603723388007088849750073894899662704108290038122231919680016837153024158279704879781618279700820791087262926384831811907665097576157865519353831985874456877457023586960634995737897590007542100458221374848381540752176255312168346912989653630733263815046648232702590505956444281086753166372890712820643476006805188395260636843986307677416502253254040536901222212602547452353689475587973366023954365460171595984671467426656976733041163645674910970140280140772019295107197112311398041075981240406320654264774570546959292870985480093767519687869173488310527056961021292904963704827754520867934607042342648496596155014547157993407466461707651958330276709504904552924302630897378349816108072204358074402425458663462443720715420291822655144287900400598344519712342713515023644364362073351215315993140575387002773600276334991614320114625056131964020446454857266466167453157723280803695941580338433395418336217854274983047015577434150794574027447946021808071202800175671954252034301838278891963835754259938969805742513105139251996901320311478678266599868550448849854833856294652801890217477731416428268722065962382077743404408072984941433222543522241184338022329229046199785984973309873737613080595555395573639396232741590267670787459092145845965853984735520140595705409607234354357319494253900877953348639197235711971315941041158773512616511474638045748285946049904241343906027237113889493393720580684915047686491066004522304828945740920832171796899434728008975051489579917488587164357457080216961763440648277842223298305119979119334634653232406811453877913817806758179231142043872495369866439699665743966826973026014553571956304072744755094884697846840783316007396786984799089559802118873066063102413460730612540100284861771985503197871412229838530112097247756300525698423696752373454503840635215791732083412997819654595236381666693008849016381135546812547254935341492932982657404841530933419994085488605163290144416441063278725602190787073272302826411276506149167441738093135554862534155227555866708415399975387947412585323134546197302854737078763665840282460917994027400184159915547059924541402572295377729757290524812348870063315171162871232007550001931234186148716199553050193427779490701106723932054518269189053278967585557047065095004318938554755715032587634905173499739490163504575442913320399144101266510835121264607210250183806704900650169394063068522249026088752790344856528730083512920008355601720955295768280826569884139075575734190124717711538571050003252336002239439070713467584137965058624781505654992029786475820232273035291044181681080096860700315345063309892211256073812621335550549876306586643851239781366242093847327933571180449926245589887179194190549395261207140597551096475027118992320717816187280849679820958155517111228597697366664794818267793810690287342000292855752667890515682719839997308631444004166938056584344454255301501459027908541799002876501197466539312408890950140591721084696148496052506661238906625662118305704266345128959111678502294193648365602774072828063813508959733176584574818318415022021760061294268629401609749331979226760535316748796537964698237121215590444483999198656646500994990769480230625235688893995336889090498503577773894839511397423951742180016887929873657032928346288075869717121319932320230977610934313563677459011268811585151275594416534130294883680501684394050349550228163438674698448134887508775181274208975194176566565721644316516431051594003799531291463340044470845293931776069604159289848082998077840998809017103456637263491211246342507102460394454333557939660713557129271142847848754679716729459556052863392994827369893659504242480232571109973659105967564983479877980054925079777620935885761802840395113818549407175774540743981299865590347764250427202521266883250163954848715886994518477319041474550981865834311435064831538575776642437541163737717936083998852596403291961283870229273303374982701976606917396748958121894826708844821610132600433123884339196477757432258445468397843330571787561136235585267868507473118609917337640518826916437024714689889651987533569163588165760771459043951984265246821184023410475844778847476541122497380502029167108286336399971334848237375178150290872742902972071049628367832246966694624962948149279746991487002656549570018951777483460388624916649679136890845176563608313298120564161081426150106254409062549879895095384960169021475891207558516851765813338734089529693451178097304630003348116015963217740733686507727494189827909242192637617353430435158796467974362714349439417749288451769537387442341616497778218055990893326471345779610311453983702846679855532930278937828522769038911760746223282646838297416204594790788723949068158786652591965329935980833374185296262868095338993921398698774568651749825784527713489415702987325455127898756358363276215999313656054610876061804762939963765636547193189272772454168487824704230951169426374923908310217964365374748502219543225888173098698857493663981577469767781425159552980131756770138075504416992651627531590081867529397080867624033934758483585056369921283578876388587422516628977081274285547320849502837977513496571748100059000381106750796216102296329940841321967495906655814976672602291131056001279184938282064600778513638588576301546502801240573092031592283351769231345222286271550622402884708319847644411979331752983009542539310231933917423892858280505464550429465533849048177326944520023396490853586689678319994712601330030178739342827891264731166926317294730165609962655097359007280058346527449539191025153447687848209091472554512778026758268708890908423385467637745884515703501078775766184180395314454904090122172793243865462386142240757087306982334820026078455939238351109778811175688836636226153189714058545373067898270517001674221557967877317317033028462234506955033962678542040637027637098401320567976562941552876412789194044610904173590446664888907045282883462003795054021426195334875048967488151033389005970187946106950765692969258833748558419348539345824334395363898862911045693412860877785777797962144312830529711904767518581930280102613842483426000362827636820579912092532055693560692446253137272021927803620741739804991518745554273609828300391527449336754898414712875755657545752519145316045826269838812883418807300496689166722090316243361178883887395626075319516259426665637574301586818243593366425971594631700921302859978928979617622723291438684840958767916396226689879725825343886352273908611665916685345004125290056584990548155718768952059526476563738695460408804523833627820665853905392168205568468322435544669464767978450609073611095619614743067800312711073746943898926316668112025253903000857645498874272747689814580722297794754722079481772854648178431780325224600910855699924089855690439811675083707342951604047276847124576063960485696461098483527985621118598468170524430879769830611921638549033186927938863209288884045649721432409174530646053230178304565631485462994423784180296107284909495767007263491945822764012107300913202934309405305081054608560360844801537040016041874908305134120129933757700918680080768458653094427731011670057247256854913100326286099292690395489554073746622886831053531002287933264630248916308545047013760346333315238901119304009597374190214778378461176586186099450419679560920293456475389230909188332324447088373531067415732160692936515971694471430157053750142893732839865406337830229019487228769641827172352831652019013608748335354088865172598486220112709117683222834697908246156637044682422471778480746869036879460597715571406833190080868573054614764081127131260466778449129169780523004533859710861525019707771454661977624919745298511925156921656192862986041809491412671560232937659671970092461033540953024030085216315078716224301027027382649576179040574959596100460740335318511087979460144917715870761054130349062902431125471913311206187751644155201777184953321256967255177090735077048470760307504770697695255088673681448300840338992583825949018037869149310555395915178719314891452172923085503647767159020895771772536061884482684946697818555634626064753050227802092940468970970864148438850145313889521117452497303984820820373273567829379063028068030494517368265203372971938048937045957148550314547961052128364157136583313754067514952395383782538405188838639410956787411095728466791159373183185135644259308035956245087907434975876050915356480444217136856475508237054530513966677009474302360126795719426369942451345519260431660610845556614612209485587698107573752850579568587988708038453443836956513614996581983274831060906857110483659603640349807254568931961743139323768951310046727346982645716174116224386344991476750720619348858988566262396650555403157857438004105962033421019636120809336408055304230343201600641071168913695627770569844416764148126537016465650742044209949398358030419233846474408891673609797133169778904666399165994730767360337899154270730490193488514962000236043449956588871081806837471130511857032840374565630843327674529306366799821404576011402661415976682810306298936087340602819289111961884080688674868849583443541403284549077876970923119270279783663325746886432537804753662576331696559129303456477777462272536425690885008655838086635194973454382567940928351722262683203162269727961280719451055666064454095678568419256092362177267092102306696349568413986045452997887287737449279359076153954388288858176436970453377806522902481900688842184542425734637282014089968544912920094730213104320160433803557820180413915035307069422079673095848478633666158556434403603290927281604535852096598617449230659612899306765875167823785101459377864983103248521643890918985289211411420700515645760632038403386449198331676256738858763650218815007950808194174726179749425639225249545609930054786103533007434677318635884067967619947716043658425970861475512150806760893263375723623383124419983695264895762035178351977457202699871959463917802743247802008607971839902749748371369035940445130268810131178022924639059745519477181487307967091635654706743962825520636518330220755015379727080475798139992685745642809784418683609483875830806625727535489694431588824419138518447583866977286443729154753967538306787708475835475913489579549317176186968072619448574471400197565401807912978151702021460691427706510810499110390664182039161219268632970492885191279924432701040742623006293229507166989998762468143970235889055841750149050212218951210037375973450105560356262868976207262056553312811002425065776587017498432907728476791620028678987433528996713446730069285970369020430054308529616777512307834038071861555637312462771893526000916168164241117349231278308382800743039070247990749925148093554464519004177440833605270246909251638498804634562710497228877321584324388327559569766553125437575170930031483182650253959693466675439213092278548248494903671605298495634479566549355150086967288370894867269417061952120348738257854038880616475085590910640459604759067946180170627074906021679913769114808220494168988622563488185083802320090497968548522129257209987671720059824915030284459981362226980471593307498630196318621111145566804127979902214495148626789152154151687643950732658589436526885167130181540827288759912305555516831883021275895598227682619766829079462134864211105448984037160437229451831301018990099427102404108553292790872201922650005241808153208403270831778446062423082631473274384260150597967930636732065336964025029950001440713410661154290081111742687077300196534737675451854540423423128786720457502784338478778766703038802810658694110998642769676873236693317951384889572597156269845136113636925387390168974553438012555277351014852841927767335288924863640549803318110930164098985717432512106247312005522275777788002752017562208209916422499251112284161046163967831736970554352963429481977773040878742494864149751806306463700113575803076510322215471551552904920434495543831344297544189216291326341954024247979343064012361497696791109243614777967463621595994052322574285174161124029223122047741885864664331491557001065807196180450362743633416774078017096599958873574651098432365791392917442669419230056750774818399244642799201693160384699890035066974340367315327899352301342315537130002697192545729620416127018926742206089307517308593400818458785767528578496176702081990374282355603566124320421816490444340758382971753739433524022974858325809410023736919995728644117304016877610734146895445645351670352317970357274686571623589240736325805644798195749379909059228935814395809678598728551463635573927481270739625538303623336407945432862418914941738499418938511929887901722686670194374243170525382483626284026685161626270938977019571366473265253255023412319418965201243000037159582615686960562343045078927844402992560545726636243339801163882494362140662164670640195160285927911323934136225477050734871969942674649796299311502378734140417251038813639550775910496116063205126130836095397406617861034716587984296750477482959175730228634237207823300750411396348521127327266105519947822175798249497488389375915413602538405911194747700889711050716868713474234841500632502112769116124001737054871558711844188203160900950094838317163099563779852937608747771050901805565882405036535713333067969840261172443710678646064137924019131893261802577101979753877811752959456389077422299002839034579567339460670477770042160783203879790546768719298883591739274288554505732048153818933950431135414611732673105543911961049019570943039496663432882507188370605490168517741003273284991270089494190258944878007185990948478995539878252270008842017652873623633946924064224522387683702344118623343466266770904388392922049553895894137082204479250645506821732306745446867474669392859493104030729761622237043277026717213091543888182150107824042945543646680963088741460901476735685146894878581557198566906216781535501522335715841555468189850188337556348319837687142563034938256435816516325087151289103492164642056534521119771414039485469511712143140534725990647974231610998641710269126984479330641541669567129969659323347149655752744344974990134554741869048690482041014223990052189854280577851455968575788498179773224846865172908215721949007722404483296616129082762052351720224340673006620061367545111632696615050500611268616623965284441768355861963309927599740734973030206288783601553303474833197443838705157055220489447463199620750870556606961860234921629381984694079800043406661275891053970257919989393738452196019230384274157472870778657752100153784033040220925442949961441088904426868061914154553533331545841125034419924888788488169490366588365114844956947436733560766721240225344554638712585350237523109976482607393267583835677072812350964964349971289356028478527110544554419606782128546386935688046729929973465449075581389761885412802065746900727615766150616911568880609297793221157916628849073675286888856496652012739895085844669841855305106537031673799817274158791710396975414003013996083074697345340373281701954272162636211592916554544055254291565680795577516616686764844335424818274364748587901381190855311685377372976471825151047985942014696243648900233277170300164951120004367918696923861146158858397730621269821106549674598791505215950402835383494801758077863371643104323742852987393045167724015592466324110389195328222191410703080779328957587367429884022623184968054534923987548426740186822516446918605838068178897591449055760418562256803016565178896355521741325472820446438877601685897721673563015937155729075383642499971081409220526354215621972090523989294758433205799386050016570975737407982088298558129875134008191559942565661629170169842079501925445895777551198120346711087985109478413473645269483734610345846698834847545366042332075172132911226139650408432979151137189088849975416557360286387337392458506821328199140144778539725759986925466622076969005197707129100412780184141008650971222674258183510256473390285837794184579102741089358196852862146788996903009389013661721561002359572989492120811191568397970608547676805534113039127798491580333159092974429893730389316729599213339267687010719012588933575748409493306777579146901273895611054352219578879155151867800505570276815701031937941685252466297468521947579406854525644089384239479381932961425245532039107423756811240938459357458493669054059190898489599668498393598003934114715010450842053840957318403489737056839587410247340830799140867691583196675372787814776063845455710524757377089452901397193249166600548335103705616391112813024351532319320397974449521669710107551142298322455196434789188987040114982188630758704110229650299483196570780532096616098772050241368420579843067097929714979576059840527026638634620741997014072457112955052897973581083032150987714613995358896105000412580544917815037854569385045150232873801698428686875534876102841365024993463773640734617785567540141590113395874778243408674512560703845182429367028583646109631671182129338220024979428884920609500438769844750988407760146683543923778622975887617907917141343492870637005887882328068467288077660203373880342997037540569298765477874683492715278710633782755386530474250386046747800527940608553377736617552633470146646680410886610685695253301512338180239395283956660519061945582576310258142760230297743577889290431192990249066125205611595095788081165407475245202799079300552349524990606611285512414119857591666487973533126592243105737340417546308392794565367646551361676725884535846487269416385420948958822420428695058821582289202019526116074187931526252754572725585764182636312479599332311182797745479709134773272348771755152623025711540625423458080162472349482008322243063627038254496297673833673516379025882370208070007916188243518082235647696172481174304688935579825345419674691612093850900071366425221372819320549448372073496788034717498369541277558588965122469073909168482276134955247756617616176459729282552594327638559665296387940694371452495560811986991194749125710223595078359823870692704692254125859386433402488470272142297371837708983346325801660701140866253002979679919316497260368149275481964713146592656789678347538988469765433539306404131867126247795758764901906993063428122929022268605181719857686010931663107015872212833155056469587488738217027941611858278792887953654896719138632021526928446807294674093831266469897899024480754531617285979177224968549418267617114337159681543447948074449977138343696622612528812614449752176136403779466211793208402006720417534050791008022760457523546505691656490210351540892531739517697153602401328064637775316193691080120311870565734788562200511667010822579441685440170318763209059277807226391153736121027620987316137412542363802897485505097936605682955209680272887784522729924784077303047544942038433349214502072906690900352179701310832135677050888158581352570494898525773329636963215319402248873724946276494597173485897013270991085895437789209152370135873832784511581789525147205536714199550286948775170246114363804163393612438852303432755477823846385137199283612651228883362705274962183120088248613587207886121687730652632676619949577875131197983425082592801256446302198331899023999237547433108919783067845384460729524373010083920641202645984309422638254553024954134038806420851995507415108567138295306410967392839244221631885712789335576087489720937824655640102133437208029397320776036973002435862444855027690857504473732306868745525064807834995352949050053537458404183203193182268798393883546543400817523468191397948818934998644199844101348881591838289771905194908929804324569296279741078279554771699933280283392157528297125579316041286125342487669420621865502530971717717710015165913899785227191747084627336104946680242190833619188060895169669806667267329024919603452564600004223928548898478082547547357282197409090237604137474763884862575328189802042735385407112729518307029021273149801374441649940679395223582308680416046761493369589095705563100326093985234182723435196196034668642442280893408474097336557837946416276215022498362427030918777078359640771533879061161722355458572589308269901853849861306637638311651700882987463108739122853316561180602791000086631951412212924021909846417950462393267199807524134944554315050146072478369654000423435704698021810017137003259288110284852057883130332550686106833073111426617332232307436685719180068634164734281090989269852782150762559129416127652239415916837315311209984186363609523308770465611046649029417003161604855285563081694917617453028402442877639629561699943672537255969085545574451996918875244949302930954522165883346431965259306541527354827236547406539143922726492251323196352152011534671651282385093326802970207865583812579578872254217562076334287689564881847619857506487175587993348384024073054378087035280533719706906364563951514988452968481476199285954419926106933040466698289242371111423348973411309811078854632966983742289495300983089407250610233233733829786585658050533632414032729855230662456566402566299961799836859065089527228598401708471372011463129235673575596989644121876606749415108031779363871598203972957220470541787892537573557541125497110024667890028115656603464823423687282410290121035854079710523263354430431921947751274872553104871744060559381118543963902741741763012988819598486860236386572635217051143279577388692130292035294229093402457919590579524275679771958012438576875060516993088557748704119621989205166554814273153124309709312950429209199876887357212300121801219401598300043891548895966569881609347883947460214901534481687075326619184063163704785901216626061567664779694578357707292791946701861544953364961815262363521169400230063601034051506801945413348612464072078672656968821981052325538253030194575684629464292227227577479529194109430617535107434291742600492025022432416364627539260506131621792818073063847640971431859797510571189170996197496724729425565441447594686430530809647206016983626241061546569590478503670618974408364286043461667742313033839006202171282750127663401034584759208649160468400755173093781629111388791168719213187576693747284346951925263572091588163660875776447077044411440463816821521746982564994216434080029808065431555729357750221346367946812217565876128083139099774335112123870906401762754982210409454394177678942260299513125571008195485818194727817606704128927458248594880735088307961519156512473511098789294037939537777913495731332299448638943687977689794336195056119121193318081009322617366214544060793382145181159246336608791981036076090790354797124326301755911073262677450970907249096845930227047454140846770964110138389133106874926552987442057512319612708621576902270486698317485458772847156176245147121356709450071000812055532119205954131743551616610676408597471176234779576028200344122147646858290972107037117456980799674135200837661883557173093738756442795737429823629986590702056663196316767519630958875806490316232611522408798202795808148365512779357596397691412467456258925634841655541743844494645071636955968488855555276638768966372728486739884750226260176637039266132271017992554814727267159581390126409774365705656354315999690817549411531361468695242690615957945065093023932370563506196241155927724204709506344823268881996359438867608884545949329310427919625994566256680241275763891007482816230101347665723768793495515644341390284776828240475806051107485737993752609471107906842826215322100993799550627678534561242361681268264982080550391965846945130456753778084915323601030180839640249363511812736685623602737558461002534310364324251934475162551413617828879820762979849964306529888741837429586271051831661128675274722372907299403475706357000946219935156028129651738314348379730735428279697259140943846250036482035076001329442895400723283866477999031538479826031772745521275709470526644246124103470265507938726095979375563531258812266236960350843816098962450208618661740477680961015818432236880459634191695152271464893041613025036484237282498256715685153918710081550484951451865915632600142305664648102549423770004903470579531395704956358568062548330322453913169053032326144145907061570853623782671334239368747717996725475813035693786867051405922556243556364593790004409615201590224983284390606753044790758710024604116100997522747218904111375613471940934869360536004946172788924065707805705872296169621370434893775859925629732171138374502562546134471715086368466949369997753268364547700467019673843260533935347851021601034357309346073594888805262239534095502468218350096169785715761814315695783385598372463705724220071024319006258348219442645564404943326845183678477631900902650569935691554231932699502778284726365763925689307064883629603598809021879738172399093475128183581155602878133928695207389180443741678315470069151269666066503983284719270429698018976750394361095278295193842919074530963032066224638590299043633138406878430851280912933852746409420354466426408275765564368842060713119923852841855073567694469724406646709282461198524316931266531479355180301940266174575201990079895446943495220952941114761354793204978807509208139286190574341661365396408172064356318289544223074097069891712761735024158294647260070445093988862539514860277757104999415140166838780290211486423926502016240457370740487810292454688956809399166535907187157772075257622809566221814520298399414465809877468926900342278562651170864778483456857418063590555953817471322120250137664768944819658031492502705582130999138931948640296536839021863063843668103271751527405046435077578788388283507249528595377061202722639085468812823995706396170761216437098216259303071538902284589754886808556540021041129933680452638622434769900471063360783164698416096624618070805616646542310659431830065096956082497208159517676317319993903407258062581213537151530055295251581720327986164632644430780655621305091219582588559056939719083185948852988602850899930753835526356500114582833280850918111905146675604690852221150431118938538885373073408161833881649486443592451939376514767036792864199326927042908702340241164072646639461016388922699447255449956171727777324816068141471798276618217788976064709224793634374519593924358714288728305152024954550640642852980599328086207563014890487275365837276179620621427120619572034411103940741505637162655061253622277137114462018650265601050689181763351252673436260869378440672312970897364166257323108224554730183005043790183307880106027012253798301348003392430954269264500502907711873516622400116003667051201186468874901775571601161153283711666139419877624389896817775078772406755341967513802228757071570365827523852565097340377702275639163048376386185571791121471790654630877082952130190983836642514970042315407165420943676534433150361500039057457680616043668981106322620766497412726308739831738388339696461587980338795076898402374096758398620186326322749693380878523568882525064693540477586413597492943808348194612710079395891935889900222678852453910855296878696456020496587447196009123483995777549639466537096478005916809500204213876785852693858546032578796240083802019422485040855173069334311606453414646742132162893039335180926500253662693360039094061969208815145524708332448555064602433497309351470691708404056085870092575886775450294642251740584143824695873447828558059149614731833181827125871681307815730758931788591574385246334080521016662507524012299331133358505817543563623548924199691199686589425909149051425722676989498514828871007902215573412590782916575205761584329628571600530115491220724035727327166348375042101666805765216775831904076737028757665232428008663320750385124091399356973014843779389591731375039962913740933876950150128782870032610325910923746723547770375501134329926116838898858799469367103366487306763107772906505307824052907386363020107539932535411206406842394860065426531520142581060529747901180991121642778378214618203690072541097209154693707740006453222405628890565697536324134941413642944934106472130775502945014935948526462610463288481143018085547807519035557777829533212416726227759611340016503718623657371407699062922394119464325798879863688102910509193478437237336292887090490517615706186859894497630673889848335103061608779437979497614752747689824717736369706017687532274156686797396293538341469942306418670408823478587394822087449758325825489617697217917677208863587183092972754103224255518428093974348728748858228090485935098215907039834723825597014059466132392653103016962991224943879876109312120210261367257662356754352081156325319173622364759475550697129868317906966058524384769735421030911461016597021948863661224837920163772486496307140307546087665052898920149280980238332982509697605705824520843238625764439668069914575589331524428124073080583710830013207397730027480630471311955366707963512326782424428659891940770644944642931920763175284716556388363332322912793242831335577407261515672689139674205911817730670318963373051377572786266775996712374012015987973624282043700546535454289983502858169706951986248901926963680294364614031595382547578593322258917128527288850007743593639939735172469607324262555728440236199461978411610209522522132401539371444837804910519052591070920153514055901735103478720339872276722948904563121026249306306760929144366269991104483832200797810945914578522207127594899820313848791556914200845744723883692590623914140774514586121784946797401527543634462850543779473499402510864825126997479049238025774881037227693006315066801610818213379400903562685916155001898947683860747886324782186983011149244949793217899136614160149204125942696562612919836654979907768059403987619065803585291681796947040440527758444724245615020584486406186612259120529384617101455388452308283353417636967181004968356727972709872797949370941390124030398854689901580944740502543025230641952355187481308936051499900977202889487907542018618318595195206776781805082490538689147849114811330853819010034963789388546757421817481551707506574161958907742137546503017729970389525026556561520854913320209886276199590275952669296170941973081378461833561629792139973681079636290671364870907311743844533575983622878916520401936572900412970551658995544385566123745114956224473288965083471422130514543000764897367106566534700449365040369190317474432052659000821055848797733511664996204682745858431896761921157737348153389824450325026093285911233762044826345073290626350959071629990105824199041639297194929271812274521378872273014793580395088426688973862525069711101287333501638940446703437786999164961426930818958131296027772392828607506923409635412515984347765569573312405824802434711698383035495021818011369438341967077275179560063639967496584005689401847376037290349996178370384867299858545195393428902769564708027630942512870806306626518900447075077154462315320173370852248902417281638804502596559444793058062481801274004575510442613880733975267233003432616850788888982119262067630779978844641226406014076549617748084129286778176759730687373298175921338170984592360474923524931744516179281192575648442183998849452002334320806362458217398251400364753078131890828071887716404392198875506138516423587929129719272434310548705676171128176215020816858635481799509289439795302752525527388576359762029859606753877209095879320392228400156763550433816113834091139176372002981675403427574691572856026809747186810912983385566029969099600381340560962053170728972795691525087110434183690177540524274736549340814865432368112206034266294709878122113938216369561199200439457316431023513871476685527900354462892834129489855226550579109726099261395584110553791421439567375252210507939793267264013375908406661576317802420316452126655202270497554111435048664910504780449218217465120147807639187729348257525980004939400511673221301061576122532564789188237604501529074977656113853330984093779588021053629752559592619867941026410203402485130741754079448864215184437158979069831844605171150554020120796861110289908383521022313091635712682437350192438528998847584395947502916193238536419080742960840042922932126632599679851887934671990626303309697726032740922469581349395078146783758184041596724484819905956904973392759298580686890457244315838835322460851530336041781584984427780790883163539126692959098931597558947571444993464107929286431851611594028979503619491723561081178341556132909024251771264844280670883612118249096228387546665619936085431677006847764843478575320574284571312720875028824593069278912364750283468134677578160597152597325929436008661702703725028968900981406708156862360028228858980945631459939788766752675016756799526650010197535288169109584701464061417115236268730170328066617170502619777110184504225344547093291471445967822071593692779638940719016686897663298485398582049994964279736475954552115650242066440683039788164329189829166199705236134381381850338799305697774274601072603597256231766249612682827291091685275957745217170109607681213732263569722784474745440454185666327817257654807287954545562313834548247125242669677069179410553072401382517481353211421009257781754872257775390223237302255089121871947077928486411894362288611285624076002853489947868747439790616321147779638649021794094555425098860038915198669418288423353786657477413805444040100589898907038723589475466631862079043332243492699740321236897542166484690957809405876860057538719549813455321724129108775331904387604026342931317149303345104540583139674099191188331120014669449330774878300884637135418588491427389776472709156765053406317646286774649789798914076197795715995973782345622177925720801195548152323685373127868023110390110613790375761109954923667533503003794561968140347904457989347543714552339125957551961780718694057767380877546718303915637056118245909629062104774026931733126559622918268249374497879278908942260375889032868580366845042818073994750438912959449594381270137467383313406963449686247575578480134331018550001109359772881176677668054300288773542781843401311926917615895777142994407975079415099055110411552324383721500808153857660511637722746130495320161874336276191390063424344986454426150837559105220550016551453831649804806073397538812639598682165527268258646204113283001637356790175701186039160289083885555280127680628597342972505368763545026749097130844104586643339168793788291225715387812894780722666710209791867243440151153616949443636152664519198647742929072270392494703810572855773265277652360924353538392118815075781199261349289907132587806076948263705944859313486212402751669944730592578138958528515842739376914331801651305364310586119823595850143544098992653388240763084649457763073125592521658282015025557881177651421132925947405058583163160637119853558545043734687602717819016871029919170033135940635043723489771108439859063236374162776557213256334136064119582862751768813125726344601186648436672213403860689900387247773442495571224280450806599331495778770155355336006162977040532645314394824067754544682708438237741364670781675319957773449270031984413977909355781627522039060945560397563006868446171441492099924774410739277614404652197022225996874069047756762948831002051748813221624141859129767860901038499398202997849431598291273633239665356873402736677868396752044980598887533993744026876497074890908673740123976740134346892274852191666805179566582126144614557339471307920180715876930527132854380169967714950431425152351327650523021430287700011234475860895665892747993982088177464155349859369381026900884604965007298106431605004217750694325872516923249712906705558961124307700264354893871400369461667748664353942164888330544283668973735475817197455292860696175255869236248446006099029879806513680201547648134098351231689854183331335108596975390559557112334935258820820169396245940514623886968774672342939884943676879221792307345212898791358860501396773884094769896519682951854882809609126113179246134396577888149784266574813713578705087371558650061816426601948944507992692006241367519479239813256748050084491259457223740341695675160385268027655193158120890200942267240062303612090373370272796816701343701238433204299792241046818514568929136318451671112414208466352045166611806620613231121015584829685050604316581295730213352534310436650389486864026804779630877332988339993740933423614966708857507575731876989140407398645947726561643667795652008975893931253963102658540635661247487552058130141455423274451538948709419411689482033234951928617528878295288268844081023940906214660303470438062641257370272469800921802171128304284575029309593295019043222894876111708395220176215738682042329770992461740609724601247748611262061885048895235997382746890845745787206773623037309014691211202246411560811245688525659119091901585807969359784785979378167499504488377109462414272176964500524184959601547904298953375034513091312724953029059017153238608705920065929481045530051726906271304167296358865392259714889881885930723946935427697453156784214699737291583100875551313103952492821838779028898993429567578892181576925761525003778034877235434702537717718070945277768900663835586492154833814409234597030389110523113040633145748558765129646625039368189769132052182400806421097027070773049038802080690434575504521910585476214125086615216166685307455361739626146945402238231390094650654606049441511562515049683749209860959833006156686756286504372409655987750961732909920286467047744125142009337696566723276661967178922274861136046974302450734491157427939101040990857448039549065757920556161548710933718873475666945039950177955728406132865834145704720995425522143647066000521202285666716338737245628878388456927256494126895485454822758306364423125270462427828293955245792599109710876105887682064680599293889191622252659634566305580404710659192588543881463214609685621581922632584378417251193535845889706015644523210483898433854387235379568706378547750291531220196995284204090767235501877920409297087501800526694746388809352801595607841383179818491131919634204097761670920681190298534208556121395026631503351221828170541072637471516018264629755203323848245626026145148930223899641213767621852495911131742916515994914800945894563742592912636203250864727832677152229988253309971110359711565026940736964818152635368614040380139028048743188294736765156866470309131162223980773851296695215095697690366680092097843463000681830649498415565556765987651631433054193855797488601370086363071223005916958835148723923070197279866240651451012641978344723160286705052773337872809112389107781594409427296022306460249099165081921212153646217918494363734982086347020138240270895517501511108629885937550418037296819891653563070933783256763388252285823791661046586320988514326548588238088509173741944378348233047557693598644162309280968933864684855445947203067979848637157643697245375498946163804791014498090030943423978478650526083422995472140243342036055680038624456593683052668065894490689156295010023791431323315257942843017322598456719990832002431839994892879524073909972066507463790806780061682894106578677925146111512662392330266051675045924351831388710982918511120321751121841052439604258947524493571372684375399854506518400405608945422869764562938129678944614797146257984936948455519398937381440191396063171840955554622069834195818638956522901377681505434766054919078502003105186936822047496668945761245675792766000834140898770996307788516312564111940860533344325515252320826062853023846401475572981112469959748976504817674629926059432178421607532632812936829247792321508747765367462272018128611537956486323000157218455711639786295744607919223307982518200426336942526253321270052730912699551550943006768254834261585434434839923840039031462752988645092597764571724714331763923132414050468199276460405705226771129919392708800000823007993053113774838587498786462631234921709555359436804616339729481903306317004836301952864369888227195542632187236923959259695320984921147499400768030273216233655361759129297288155407055250555467474257423375815209434667496404557149574552704356600232818319813827976926078611297637475393862694460410745195277946617019491575123938342666596735232622103616469798265322963282335295366129801071814293229086130550226648993862575043101540528836823346149790049939948654057798975118000866645418984990238801754372259825908509739120106569010121727702715212923981191597662094292124760396670692682303186782922724391120152535648055319943101728616863915751351115100796685662405744144577133210825104113401238589403008453970782593603159367478555160810692873909072629184682921704421295004887371615510350687670406090366306624709017170511988366525865793180145429772339818863505506721519778571310211096224520920883704864716970189006780938305602349408046212239283312004331558952347689763219411265355693355977847600891789839867190603298294932543800494274854089562850088466744052272483186854057832219009559581298595538003487616198760766573705295204403751157937875339985582286101643666382731598403750021796371980819541992576989816001855759941744769530411675627496884863460552215432131988679433933864071415343075622272846093056898720123382959492698125922257960184818649481365070341535074443893740583963591452068379950584232982228401245522849061531136165982623934178697886276429705555272321305471782290280450743292076759007546336139326872318033832517246681303659392402782159209170873218524646675243825141813146418106792409429430687372499292793950535387166284118395591801896729694273421853619901411636693228062187075511052246081171757897478809104456300106122499008517052013544055139427415494263623428459760666487620306490116714740232402990328041439955620925818353776521276783635543706980997403151121859407891097323330078667801818707113873434390845524628523277126108561590768409707327687309971251999558745511928412105449983336506715492618214942233685951294696978538316500091031492458425328932699465927972468218022188792537554890576469877265203029244485841302672198246212902654703227487957914931898888015049979907220529808043825348602657182339374257921816334544880853260765975365464788863120883007329127895787089968161800491959360186484702289079023540716109546463585644174996377231217389787114589758460829426266973301048191914068884954727830720414992004126528361970239204477098091060545251332699151435004508937447459949874204747762735736720921401555293875309149834312319730728112270647239180832954782749138890867267677466438626392210058999581076479001699479050697656094321797171424301945575874482845167291189450574857000603856193566373843638755625614155727145161530704281009149782358406927535654078321580212623439590059337244545168050736322661454645989767241317828432208254618428152488125511397393245365122599891770429049806176046547193702946210103854480925116715914761183866924253731277131175524326611636424877289244664874915920499035653782240287093410846178436617768411070057396451477700888843101218735182138585974484761008616935864332804271960929332684470949386760111926643839900855415053781139932864935647177646142729461109257893362746316125124667426579421708731947665410760200945646502088992354495159577651423630745905652304359893899657593462967183723894461976478593122677150418664046723249023664663877813612167202064060302749638569730436641947699353985663036606455796886705423047202710266270317285548566836249065288868148723610962858813654952374032379175898210455917717567806952207109211556977580620792202318131676260948156274421673343090267433482244759315217976129246109704658103726401604663814347793501643028922043664371021946372944650936131651530563543297942074679900141048093695405019285402579996114257499345130709562828886920559614853529601603088003716688980736368682306272664292095995180476668107759004042473113981640809069241599280023112776784672870978564580428460913342495549618708480418167511046883498426903948260526861493732899762670066284752750340004389443194799353965604119882991154098016510046682205492719105093697236745588418548682792847099119180455316799585595360927868454856725172124837585813576902657613982091926936451737647542704875952661903341551061518489408181560605918866671820755812828339671607921425845524124630687097013142621049532827928979346249529411404459706818482631462071522973427961097549178545658890045608434306399785562582268745939287248263824558673307313285212089853424481522317940342943789834172615365684924562698403300872561239377949283355607656019423906039660152790670151549971742779638270489465383427063146634189285108097053358027451630229363922670351839543082243606506148462031513191514662675201778219668016010809437598683729575158321924218185822983939156920981376747944572257901711574096097400864243413330808634794993130258160777950461200441580954824603482825648689931894119282951663267066750410552422458253777293872956607282466788502030658326286379486722978495832545470451716902369192131167726542009389750325353312012915540051140736402421330628532052203213331536706447973161151261995442182851062220176571210067532105459182551060665070983556855170670500852358767725122902009816847995565523310558157335787576741545066719523238939143428397995902433472333146205899637586143813638674352908286685677928515275452352696515055992531512440722662341506996652854666863070472423144797797675665432278860064759227683658386387156966166280792596546808446911523012427616687625101241121275595973146946474505290288513649414668685560560202932483128218150668283300619223780311910936546425211418639451991962191176490742047500598402344273135208437085928271254932627199230512470417591090234001063500867542964178291267205683665805188764342576593910335042051635202250105528540991875965477080159142036927119732409857994940884122326564203972545514661524469251043030991503865486131412581686575522895740628644509444279234723897156244457141335385656200412985753909521615791669476504179033718986396527986014840497387066359831545535672175059345916406503446681740425009604058803440454559550774385777453828240093190886408334181765788537646050383399754141822542304713625002659080780845705069694627599903685069644255772298567187002423627641679257044777945101109161447873109501797022418164192771516141438146861960410199082721609354879034513582835221125461594428585827405280950981220244424294077438486270902808627850146676427194040079898963948287037098059262486949155663508987913151420666149256909343525858054332411447431875616983609076956491734111529258545079255634247008824334581841727939538207176955478711676483295243275345455231396679118057062867094436024941634118907375038328999472231844189761386461611910903508956254416581427096657142306018342624846800958685044839486397699210196997572944085464351987916911674502821283637776764215857891415772722308817847362772316127201151846373178619918130956545631084230759273355230705517446139588353628397469368856507057324788919556838939940010674093347641386449328999494174516680079023606826837323830638163683510101027583817391256463068464925696526672429437841028030568870019299191868388216191249937267619567702663852691183791626515235308808135125353222796451289512752299375785669278990787566548083627622755753166095093781980525957388403892734320283514538205871775800934276057157754095575893245067242111467153374693463780285193842468832288058536910811957305058349053035131033331260236190820238733682119477230248861651429750089484745123674116026621119081383702360055881440885761830351968377115581316414993124793673513605178961111807425544513106333591033787570892383718843010766385138979606027554455853807196006832960988958239569165323485379079415605527306875639993477137967584721723851579406902517475535746565218501015546133468835285967427875361008074961317754453419050072667817035109806426830501662938312017152282963552985632750271421724655188354269827569306278040031403443655743242116823659728135803031797179136446408249957588336363558985970144625835361804453092803263426512152399924348200837832279396334064643203547368979149200581139241681971727703238443787676019455460202682007601590085403793646213922614460794342127377197913966069511223785645483085681991255227303347284880545998693659557701595184188625380892713254028153034463862064516495744914255572589763677572166553322486085595779088999619459238137820756170000081048450906212854307649761384170018325212477181084637465066870333003806198482980406270343715036418170150959081261077295634347156789873711204307910800980482950199035583247834060394245114498822815433584270511261987494828988137519970485651435527705768106460905240336246262406468837204762043380009727103290655152412353013191447073747429786336584003274204734126978679207753557198044371942356162350678097055186573522403413538944873769676817041274827293284006285740972481152023743997491607462110309632912560295799284395616319734283224449213257154343708265101792166931529563621027497394245328683525069466356779816299574574910623858173901796545023073496126473906119532372890609711231245589310776968484630783416202793276189169523256028845506607711847409463144264721620585622390186015190845763430967758064347451371158405626572155915097923000442850349969346968032445570241560219653908655433245919863652626837906737627813043530614133300348838413047612967750277576699230291002937408371942853474295380443064091316360722567514500153016016288088852618585432205888056815917431137379646997012141432177802913665718647350667705636916011547290326513903579061451020594808482785394691656527897109828659023932628501203386786546363719148784099292404415435309294376401275152454356588063027361275433954961541931348948639883896091169994896797700058095219741840667375284701574546381624229128179589742689289981279723048621340568368817521252580921308510576969264407407302564093588702250552024014426418352600043225826866374989842355500478653896123945637567821585286106565327749646732955056027937971280480679428415296654060493505032376897368249045331688991113351215060343969199617435847623273599259019695490111004836965196396666054409695763373043132049868110917212288693848548772959799817257297787023401983805820683292156920136629349306481801498991292047221297230628255666243212570438009554540219234608116533189204807668570133578795510519280962382757313881217465493327226312523376828432665638093048739901487346224875240094352581429177816955813428334305775311298026919776077873824657464844197297418324673955432328142072388692875264929831332164257524076101133457363455789263224318574755159302493833513377459623328007820814125723679522346861612452874755527113996849666278690381944504141749910434070425350388203731781649457493161267762472719290267319949431293557185108704742779017148933956902766278270899415848275267486443613192845823428422137282610751243206211727543281630012765634115275584930088284284669544190573373520095074417602621713401185409072135991817672909104269522457070501728469390561696296380618967379886481703196023942712727529011133339554965880505011706107362143639454494261792687253363074888381999333602836126398378828656429807375186935312447331057417903063523330309951566053734315790312766846936648001816819232882824335531070176649571548316906145426018679300924711916032354246155040476707770435826118858758322509858856507449263593589413948982439253763651381611180153099056885076049490057330525111568328585350738834609235618934387598589350986014768035093192712097055103077595365198435901310171452746832441284861074976993291211566889656490200289340830848074015121392334203005199859486982035485516208327378907274176429694113345780514267699384094894257161253348878239682099928222978912978655741437278409381439035164467968364817495459413375412964046998588620917363442917982432874108250038277140658813631129426451137643083369937377969388147290150004869577082097695733261472953026175700361217638101099184363233846261021609242779727790954037958398711527959343718100344824797320578558716194756349305509195105795964633930761415672202579592390627170373592950279128651580884655889444205140045416117899473075918100366355196143102449788129084731027860645962988550407621907894749133063904890930358014176275846564776793493897637432271654094826242198841697528558454705211426802413508708508950579592587746054674068165157909642142015219131191891434746200175374681935251046874111781934304490386154191670109234824259810119829878184783817230161939894764796192921961344716890002275377384595924048997209331985413752406842194354940560113216893848406138938893614077605382359531386808281116263722257384247533757131049220467165208839628156320015557689538842244042662231752150996713003992436223449231038347485807599709599338537099499625485550298175612668316720761416382556831784686509857753997225540535384522615717910814067401628782996368714296836125621188007159657130805922942449638472732233254485196859024682170323403119115963039075592904796899698341389387517779731663350119932535565731347326141499866851039919718428012449998762929169753901733693465944484955710146801457015196822816263266522122333342191334775637777798882249248881050623306709446471041564514891131594899660414232424080217459841175916023133155919040183139727089634204184664508788899791720321222229257918023364435815221255074232862072933352488571315246036891724420841581483621182359803240790084840586849851817833628541487822565420305846673165725393423205302252170302187990052663540746107040095543660069582897326438381419237339089340946171250473985047236772309672663477787306965391234942101365724194436964632633581134296132305748964708450949236121379771584684494488485137876187780530778087808868227289835777446273844702302741292571342983381076371917873693004596698342111966553479459043077205836287129163661336351413766827153355530792700953205833887315116675726411045889809887461480419085685653420692678729363677508759994025261365334512098476200211660377823204631492326641269353624683066290580681981619194883755352861746897500529575114856707816668320563759086591700875484418019223034614096702207337513631334434836026223727522353872273936461745074312598544653796878601072572756808809778696719145908457936381984544209512966727094210049370683229300280170276398386770390409782844372171387935957055358956531280276223633463368474141902544307149595621636412239360351845797448592537025883746124589053250547860563106768901644710991178306024222857486427866219673778579290349704165426726468680724198480433722191619215087335704735241395358242464894893996464164053412666280831670434268648953026750037005826252017243378031352440052868995809725072838648808389132945987221726565702885463858868277090537121852398375759137495317080675604380745969180340862083841474472294160121148882797418070275679159684201497594220069395109247793034539797690296235411665453648532028284465525451422157033852415524904490665894848027885811601935802653760687403203986325172126134755148925625230188649282310204119855553217286968577786064426977072808489006878502478076468854533715340471651550499577230552531495220879013967349897131829050529897532911306997812628004923594127223642180787122938653492567366058373608818228218427062928012375936225252068681328854269089102346344008957369021821488289952704380543902798736445126588775953422664553329368418553353973833883807489299754767987657756096980750401723312715811737185369918315702742741177033864406304333583250591713639988644161545481224354229475837292591161910413269811145469398045680733334183345987530326175448367658316312294191921537224709773267947120767759905637745975621055337216406628768595320259795840309080507916660873863333901652752946829286233905240941084785977674011280588172447878042688378559550367511857077598478706068210968266699549413450592115203780160849742415769503594973218531990802410235049613810218637981535317016343576479390791421183421607522749319593067741911857547672824441232294011002023804599412398774125986552577913001618414693215810475088620393817672397029356766257820952647231435954375774085307504444977939596226920609884176076727370438138032840765607954124079651725766066081911996383131791978708975747971005857977000352090812824394129305852347384342942510298437292482842474974177827910175828345709129344975055209950621110830888812696091904005461275550671687951707167161803052938692364631763253516345153034045722016556284553811144079851713243525508364305797815940040679527280302216231608613377357609967180822296877084190714369135290832834054581234141676383784147673193733557305788317399000409298420497809244180033524167766903188760676780138719598608485054631855075189519295892582961975711831680038283934301416298990104815208870365504175232829772988711587780196715819675061237662179668191858136443041539893027845145144896265573663173410047998375355475467019271723003869825202405583902852058177738814602914971716974477275006212967100747779285872881416997071775195617392687855014496836654172268454850386489472285897520246591820235629304188532764519556135952952960819218073785194784589371963474823666422651440371371892704949160850972823064366727209618310985920339891967401928811718381114511185252965504725506065953732044889336276120292719738442962759868345057466137197311118472540155717339927161968851252094674276408341609052553066257334407228499790405756482976151667838811089366152287263497417267548255177818375273710413963877063331582875414930454111853147304384846452764896172415647495795728843252391939939068217317873527264336814183026341069352099459977446500625893975489059279580916824845818642030611722436417598282469921831699631108780316319080649708932819336352156401660191522591642033461117477641028840498345563773726849582155130763556892073759047158463247114112552000093885014203791281509393499746983843716347260098201320847558240494122454442132142396778986781209584789967452760678646927853667248274605614916048340632698935200503684146019455091035209556359222617657988619020823400156877934695360425471157726305580216424999749570075021912750785308144239665268629511735828855325134135161236845329954136953590028792503112560298070156757555572889674674171698905976314669484542369327720309386714610194184858874589350590826811880839263148105889765193436803125275569178434581530956116647524373684185784588295783270899624228016339392142292119587387054074593689618672121701751297186145045742754673943861442226738552067399755563001101623425124140381982340344233105605043116041915266990666924922419339245322169031293614277020624218793284510963280627573914919030992908036109654763170744041331169977105937411219219840331002200672841190938870845881168229003992080248052458188033839779057273586347594493042400852882310645026145408252890294532982707671504358126150329779866636585253722432805737645978513720184595067008772270709740192692696774271941270564911279352521755844472135266639504310279583237317296018299610419859790119298622123367916399993313165400304492159876938933973353224186594985893885543376278877755751576430034024081745731443815237544385586413868156956638319257886767137918148012213479659008336248045527620511884432777310117269285425765977788110814364569278844843852153346595463669406741094850045914487222648607735012724883342770405554527888281302214283631911881446145110425947682984558513076675968347279010805782330661586571185625887433454849758780761462855486639950892191562585638506300509885875987555414007045868273735172923322805822693812366244174339645478329178221661395924986507849144776026257292716841406432262838782111220425688775693522874878020459062327737739905145575344708991449351724536652576947134575345776647773056560324792771424506029891417166683983802266511627535273746215587280886427044510123880391774842890514506477721731054053788160579777726129662551819810547016051321688081898888659009309420359468979849751130827400931289620024126775529977480553173377645649765940723537377316450433357326563123226529042955379969499919572608977381220723265623002145971605110516988975920168041616829574686960140794716018895253343637211682464140014973863181791065373796831545228869291796679330722764251307690594236530033439197214716688672202446995598769012005388652366717908651904931243876231689960559767577207127201220412598642471392128738547146216834731055013376426395847888939633753681830523942564181513515892966096884269293200255406968155863404711499832787790257408655882532390720794210120095972291708523910369412184346761988095402005692256075729662388549938019667634494218751946029383608464060608473775234111458393874317237805539478642474418252563296530072700070750974819383313375327395720183167317879571830198734505862572264789894939439259655472447033036534677392265390464510630026893464180580972388050434956591539920793262762361580297989559472740479413980401915797399537277619650220900809347266556083517310586619281787121427522670622969659439070230721073051740452030128934714364179533435712818613224845933524086869352171738548307231584014351971288014201772774135278894200910674261490236373323704547174031949051697370191131532187732921669350183947250651942939693838261260882764423023164713883780510494748780061311798599182904229077211794994238312727738114203484427528381881102856654127881904757937291853168948461889464561310174130427591467730458478502120774783611226081385409594542602667311405530211283601636424208266491208243083844240347500824967548081443180776948208352236266501607416877339684893812793207280178786122889861394492053871246361222069893872222184606745741232709365252647657225684627511964379454257475270024997986862458084198232882500745221028941711685024110526564556779498390050349867740829994531821653752161788993162960569294437552338249279500208409713528610884314874750424331437763239038223998539760645938486438921009412325955369664985556765341291682403381604319800327373476248531587381389506677047447741761904527762004511851450261290215262346495582072435749864375279248064054472929475287681078633469687885572521826734409072950169383334593438115482316885954142064375705583569663936209626959860992257345057931587218160064705120742983575918735730320479063096220600079630075077263923591585533908228343248384968302884452301566430230315591423821543542553504396270365576613669626485691329472028688429678605721031511879578459016054317609438509619534683598640626986962435942690228216980245936843848761695840988914992377600751114369581032821634860042047522268454815205541064381910769763490683479556513046234949573687240337847459594555276254613703743669267714917091545364973696623439539460933597135470520375678484272229317886057782754584158053493953510102940076121207454169221007732549015610942074331215386246400437409605560832792598453461810071515047081672459259332903426325281749166557156382697122295835550622039763894709534835024351407096601320417763893680253387543312353603000268275136737637917259157310610464488875043740981054318805086428891683947967465213495890747070928716023750647109803301474887274571396779467488994293222967627251510759221360304219416166386193934866445933304597982950455771195471174820192144533054950229090567744177926515215667442581935464010883917326114018149176500210205689541771080612095613438095747523740603910506802300766491460864572728497326057972365380654835304466802990441817101261000299228075894394101920958704847016766363126727005228289679657001239716158057630038315958768292572925413381649458254864706755771097869116485678971846821167520887504460542715113114932102512113778687324728679460121702426430446783984196105360895098720149558173617125687957145573242209081970331219318729059663091377368895126319279771815044211274674587714216408430018576347378803222123956981662165392766790456418481340124935200730807998015097110362686356948027101499805965053789359835006048748695878080830916381296993357397800835913045176724864355228357062287019614127823254271189842117560319971630491022938619642275608142361329456514758136323811418469211494784267627037428199609704996074739791834661999809112944522038468513834717781536376067996495309063557883735195450349470653878717294260065024843233743161618219671351225758021121057087101204459448893636857144125418867444587119906307681652379861414541514104528025231483081404859502093208421317638580850457315734078192326730378340590503892868157963697878771669659830494821944407406023550820854108209027064396683553899276692263321745494204557526447553795627839531889175558099276468232866097327556642783397479476109002830055442975779455255080491542176495378114472021611135611174397160704419700132112869594953068262905385221354379401481871164751235631763832402113907617523353498235678397763737400082299021638626047002772667152734544650253513409660551827004671659697439073901833004900074329120251640377394265241911610851942160509416867708380127199113558326793704055916311907115110884717740926189005846627047862596864052505526631489209960199467372358068968975237364869535713012371447948395279214933707839910659851047875782519036801123034206441930976091337786835012172560388831168424729809069836295564561829145276020673013272544159615109526173690653042299622250691860540725948006646528579141194150324751237628832298329224055649098766687834194217051883135610092981797113471435226742709458141329214898827287890879885889093849471782020935375076590385256004174869493959248442666504041862520049672472891950665984191007055353760304756279901747427543515044770897291722152988537368997262000839751937749369835979075027386045029773226305367888619302989563917287923930678178608025036252589535736524747300301626463890806530799084297361427458868114106520214871836231921125347315189184747709434765418595259363671405283373318816865381617557776055204478644409363070943206788504261449509805908848849150204201582476138734250938102979139634117342704841305077845893668572672381552996189930997363005852941947271950771752155876922794196657320614042483510093211275111548703618971335069173771020726824756196980958287730203331506654096966875997978210118452143761791089939560265700089233367002765940680627555967963348643241535793468981049089003666121804213316957460657836486366954506012494191589824345823719960855354988927731815108731527185700161908596499189297663237583726721703393614807098764938722085235888307780253100990708201492379641365013779032882872913098474194973331936101376392395042262431343912631432313974756608236875407735906500818495476375484563333893056993251426084166383729368076576970732768695098511646647979663137860345936802808498036524379163466971035232538915786071475560440762113981591831616236234446553953971245784427619650237684838974935394032687166342625399593844894289367787393726603812609518118983706083363934338550765007310818385420362111362639455601731862964856924111517338871775025332904876214342099432639068486237596570740331480898924930023078191380107015668751310871036619258507355835420642111479169146127793496657632495258743288822907484795619334683495086873996060134111438293973808582327760438409635155755076985208279791684881432070040941431646127644885836982041474613825181591016955320219720744493268064515163641428328709204797384567767398058648665932851362476432832891204152103647719717264269231238031305225484661637106554769030805971802677218383625192433299206300862923024932332892860868153769082551825473278863659513097860680706196975167354502882161310823365407752032578641488968810736206336108253347486567216377727277468244053585162254117967421253052063815104371116647721172232456844894451157650670557494569267716702820031745248360038043353142465398288849755336625396027646353638390689186624893995976538276607940283717624155356023986828463837104763049115662090590978829402595672770662196531010707390263290700770681350624991147736103883883003478764265902007688889180932777309856913697016803772718727301596281533683945284138688538618319273092347965167327827013665059124914777805114813432573765777954739614671428529867825230064005319108762575269634956405293269344909563820797253143078059102507696162439605877419710851119402011500201955907048249672764015185517086547978327255582960675384374700569164361976534661364354119027654086671470580451833550145870619044776435174070957848239307421866823102988633994539415001774764629088572230856357793693574938581509261237123693265721446214005761638226983521761495911338278300436144846585655191732203427959871751265367228280112392684698560108722625583863487132796508719892043517557149597474205247813628001898535631614873291109347292984928198583071699264388124670041805418201466096781805409898803007655099506825617518643701695162917942770421925177802404067343102579999502288967747710985318765558305227881452161215646655896403643033786796076361629646505735353700594254601816045145244024195498896557195612470155565298858046988693978217224727861865404212643482861197542275156805981410551951642583781469278269345257506369909277256238726507145905402090100716473446401638955321100945908454412796889840338315019035373189416595761788720994632201002171230535708902825219782840381535949551216453482882254316413917138676426925270529800906559103583901888277447513475559126309000628124734778641154433578956517756797791718956926522463585272755136469860934145358475502794676613018371130457286610998469621735279588043704243237037670056172094858838891352117381742908852801937597259374903969266265463265432703758922705369910331863243870413453390639065136031852726658042478056714635049741487336876303848037329286266224703739927330505478321934175330349460971674515259711079067143939365608710668126899751198060449670502905549446459249830371724375811191464607871455952814248746179565048423345412932795735864050484317004428950526782525145553608080345975135082301778005376485861585189656923684250802732618306670577736324900857320052140588017526380062351841996957246499611241507350695110485426233523868724452277103756806448661445378708700036215645401331274209783339423344388754941125112723360918237752192465645676473437255703450271977828306408663435786438794249397804398744759508440350634739234175023616866649654434663506853793598068783043120447811081879926843803797895585322731516855983094840012806458436226439406360330214173816792559206501267018218537595061106157808313016356143834650986975453854156456196233994298036307662138105964868022792933173306394244930130521794111731156671876354759418994145485192492848626665559772082610261846705793460529833207209320125862907197800579680851636921585593546350511031110428751444267311936694842456099524007260932404234450856437718453002657002704281257402051854953320835241760947153921272400317538804236067486870768940222399377796761854852076682976965744799912921102131555740893502249609710233420946265449688946051098209302474553979071852997165415515897720305164549883154148680456427113650599802409353444432514792021613029599683827117941676205471290330447868359876184798349808075683160998384708324660539376026457652784864053948074196074996744423523531177533273493894401970309971978151321848666872138114127038104781392503964346443206660252181944818058346129034739340293207848065043424210916328564416059210503593463120816741189355339673911872481860966849335710691575685387561528405525281294550830785799374482888018890186665490529979538989982776029621041211097079913580382131531062531404148384978138539243054659096949141311377852080415574405508499643669373410000313916977177707941329185378416346578214815773369028924441793278593110061342551396395733265352273604760421404589646869138054179880698185063421684610312113387180163871951104140988976858646708010672148562923313029321969678002364926139212729375332237835123101625958896016428391205830132035097710927524632114349466978152576652371026596819783655073527380024332121430004112412488101187184018632135249403616137846606120126583849236030922046111928943210623060818222839464248557530604366863030024932991805370570356184334027865354688096896749322987041260961487282009120363104433235090217847868708293541756825156085680822279628105416497484947190600214088456751093085311311961482961642124467120135134170528759326900502509439261594710254183745375120171609214151862650579411844041449206566424591676375548297324800572699521466898119654947399178203094180260631413530624249223854190468958317262520887575328005114505051139963240901211758417842068725785332742108038630839862410011082017951000990443024648356928590661436443811775452917868009297861000001237044424515804389858173047831079508305625948652184416471833224768104828962403277293698532401255912433156793013135565509183503557649518691791101709317973247094659214278874419450068262213104412435431163779123137177322360795039360795869142329690722760327816886930906645531898970681292975452256532595233189982025045555538245582925544930987699187919662246203686197295406737204858544101607431819438947206327630768035068725169299412005678077657907045556680668049607185727043146072718249500277542636564260486428150849169400449939795018033836122744632470331423277790397418374677422767232341434607409003038344221215778809082716070094562636814748188454525711512546530604480504218370865404026089426805444812931926539853975335364422393638139564911910445290405070068479935745053213326449497071170986168205952185436611641412147667827747404181794743321105376099545227769943113722048221988528725063189051502836061529818814186352463994357379556800616750816026076693653223782554106034251144067309897812059100962785266016511613204823151836177637822948821363471711221243625869184596557868102015384659260971259743852854130820031572377780845255400754352787747217378172285174425021180147409226271690458124075225158174451340693411077994336121555127805500933429785141818613499410972145043772478282094228714277603935557931381945647933852236705296024591491680700773648890962679323676737586144472662508546899440412131381464193899894000987620161980704904858451873714570561811151487523800039971023438154984377045491513946280083662289173706210727885002532024991130622266721581257644318880141557185398363333076527480145574612615998696367811247810175547089015247616545813315772005397571659950482847905536922823634271945569054458063735670189656727393272176793633366084802475747800989547436485868200536114623833580637871705334263145995653360296184450000246323364478234410530587581164194584596966476820840375086015395105986815498337220587178503448226932148664131331671291784214326153332834188965342206721258315789117002679795110763653779467714914643048602801918276568538539130384516591983343045290757160733857017132992550041900467739971652884661465901867967404607438597031425494101745833905862201857523542646335045126660185701310630414441850912715360780153268054269191769390148408716282981694212924983515614256756226648190960064550195757464107127459542147400308458534887015230468597885335056252088797710549897431710053723446760017183327979394361020806157858287885944496237102516180122049042452058217212399357457331175159802508699242743121865426502864409378266720313785188787772061686999572571840596724483040085326935072047207060481586097425521419142920174775875882518612834484629055549099334960266223801587394651877810413910091330705218444712697110564819597004019064674656292893531389942221204750390499216963820679116633247406807146816696490926956658574097323681403483706417137553539568359448231260656496146514686577081923508575883943811641127951511520201347932104368623496144869599611901769973808421679778342011780739940520977341571054954971800573645213788690271371341876414447431880962203643904918905251733851705883377550181391110677494154714021392982020332739642060473037052780869298174470764321878846274758234718562514754211204922336349741896964624478804184283885274496120217535963937890888178128180350158309251987733266214096703260173915456902902788476603899741520436087373403576518325887555227387236472863826763611198628243841431813552922666299167579255417157534053219222947971069204665837719452834841378734217408294119340863313571962855884076509639603026829033501364023112054502341557436890560854653248060984586854186043418709957740066388660949991722932777467710517376247631408780398762636402637118583268419041620990987452496849699214842737135786802888778506305320179876152575270141474791615328079297380365232278948454727714233651908996137339586632695092853421489860448840777310876214314946318968800380575808323483944545998270252792826030279036590872144626798707915933445172949557451958329112858551316621826131352547043741228423068628955286101876092050254030069714895664465642802515230776875404753662946511805179670756741808483774118472409824138159208363616699331038694502608888295166175176679015626861119784895578728535049874980546592397488125737757931589617047497766086768174797466102291018198346367044760410955900324967709788066330755543425378876370533433601984914013036829085164282851460646647245810414607747496955008223447687310672553968753855893593208221267950374890438114091090337760304427090375210483137920502259351639663992344180327446845123984907004662509617141938811933857412785780267465707910871479207556222287904412215266154955152547357211335316382679192990523562848756698271840853347153664811237553675120745148413852098863447269082985853548774659315536033346598254618091582322973141227661632664368798812199915784424459412046967899052795895243596295977908415492446045749994049363641919503953749066476070021884036337040089541465916029089537815006832022227816627210696741878420835199946458150215996120599981129069086849822870994332289279159648791190654964209213268358611504275414867913050539115579992016833445072666840425326567502341307458507447563174250999604713502549950541721504526902948355143579782801680253219760897541768355965400202402234281485900109531541422998060679584283811748408202234276060913887994992655114410445277257613443322872207967610421387463384998858574546935693099839319554985212411022327811115706348617807719496083270327340737379677353663262587072078046815447371568661920022346552404516638373974721209128416268177326405242676936596433980016747698083402922947315068518790633565621137488853867248162676065111795335809270755371437450440754773706515132086086442374609920796659472857801722700979713151820929192191559883227681107381541549141745650100604023823275563647175172583310156177473351180625562087711477668676480643602417344045419981495456312999316438418651850815305695453260530615640874996115585436317651151655268937073862402509749037420539289265327055463848136348813795539042309039798868637501921936249981826742960813156135894243399821823602277217018136039853006440281073343240020267867628150440464012201232075033758480059215606411721526946819649397125905319831790643180469346828099373032441460380027265581516977478728900791328861184535806138072968714069399599692847565018171044764936730992114381669191764340137942711534141000202210563628202114789255479458603630586950945377244574288909015716616660149129571438542455570128782657937545241383095638853997364034690265675461621945683994461009382859725775989538497604697706023342922031723064306809302294511184293304062041607940886974027751982495728639276490691972758904761515418831287306261259429803110420700899831244858196012272993463304865871652738640819304626258853185750633804789756179122438692629395986725634769958136317211154615320312763576816301561650510042365720590211815197334468520699491714080270601766580820531359698654941400013977935176961862435350291659686678280234668042034034965162833194381316620160955047893156937181310727402484466870053640033719477742208764815425902838945383218517110881703963296390439101625599746227209001160273476122354884953524936203835446025796873745375482642892460977105472009836469880215277912319903301401004645043094395151726458567641610555611930654730929085938282748906059644184344395431284088075334967191786348436560286578234397501913210662368638877834743344390984772880778153155491864882431807700260212821400235995315148562492960037081467298819265104112354315187074366235512344765608582232234374128539049160605680706520233512204679364352406788454477942043902877344786867324342098558683846002954362389431457478654956609407286144303506866227698488478983209339067214220771944912785292064249609289900385172819428400919582899274889607266819372391037845797117878299079945716323092699020877428417843768663713276608078483784270784804394114145436895075818420179310898029078358974320337684208740700946843225412271669283313111683429898168809662309585311675665882943248217216939321963667045891084448222376815097437208658666645365798602430070726740107025164555586646050697977005283816944701493789828317788177850359463562986772108016985550140221659990377872644081173853008459658424808725324897396465575196386760005940078157372674666764788444347356581209130629502831372003844878348872415846223677629083727090988039708799031860352488247686804139254495910809754033658902616484153010374155288960574209990777910087286582327267547711097444235052810766014068826676148302697721516011823736198057739997114749305749277421486963812146904316275295764026052628963240156306480848519797944572399875538682848161381703388314041075262573498676686282730785290924595100772388048029205863566320038474149959638412716126191190920630274435350034614614186981891794811020703949135689402462869543477669953890746380909334010356884148648116564829546760617957183725091029858452852421656788723194037362253953896808849945651118647472095211687360585543402023909277814963122203357350723662490855474924398912324594147708884115002746259162022244967175508127355270100507343103395469783299423626146429314557338745817016665888770931502932326157946350388948826563764977822138055446787350831765918751556920659291202863588533411604971426138816358545129064317626046217434569245833370561626910422259289964961330538107373518166123578663636734384624461609618287514454293851834770309546378289243065818298357093978936134980824194438968599614863021827143070267325504870439752743015585557704190230299441955789011658910134589053559713844814625655084798424292186077309700576283896254399970044800970223962935107340683607573893651981223706724173588677392420576827129135908526439691792699035237466448678722003673365462961730288843782413560903550707379870993967714885884384654098485933701444076582161542304731904592002691311855112426049518128715217174775639288002596833931176400020935050870265906381037732552998467563130834820032048797184631310115569944236454643460868642252074931876556671535493554525143623047036600742746866823366883881845447484517008248517983765460826783484843746570395368956670442210472946312638306403529606174498861046503285006733686697813046141048145801750162823201683669021160175741992326105772080425733707600650592880864193938711673643065700390671635914924920917002451000954811874347864756207626128104837356014117992219621477562812080100545984118355736791069998616515405569979120512921032202532291763729762034914781052477854352067529859336751544442623909576964057423144080921603199019153604644295497762272537552478439768095323476638765332559751956085053999874363943152855019045723134736475437383856056159743156959296714920642108467265801959860853009759094232279272435744991876824197054191176061067164563526468122304987462827188405151896398621444302221737052367724910142052829172930740026991914436095385658760490870475483184326515499818494539894857649129555081017987718475855215896164439413309676540067944348541442406790968302203961506594497401353400424374721833869743767625147227216554632481683127589650753358127213692970710175786801966683402536889933953921373314933164788551842543829149748730797960193422406139405820260268437771003540473415895165560908058553884460057603834882844756293004763408411413341127431283484792677100625553477787654137740599532295806087656512687476657722816402610540357780859254697558697244327727924942224050118317890063624382838430925739226538588989931570310675166362716393392409389568716700793737652529370309272330243941523618489950645876246300216384879970282170415496110219469892281702914133069355857154009610288847190483772959043007035448777285539153790927511944797935186974792565968185787732197829914315505894297740707121878474145419876489800002594482162831351902215839001554149511144570499650208002609543393093491977635215717449645948080848964297144248149429579359974556693998218989138447246659953963209806026383764502353419789973180119296353545442710726935960107958741417019316445431904650622898919668257221351555051635026566297003984772218922872433248957720593727421848713011737181549894018097145983830955363354474730849556289776583496303190246761907608791824309695238089250693700856046955847387090897512398723292627363657879049323466731579705015100685254812844907810947586056879747970735235394550498486456391832319801271944232478180593628733952940337765714217134840527359725675026747103458592088748661186280233608993810492135767572655465498202847595005344468544851842673410728875340432094794651729746742315121149352301746731152016466752618402954434339832159174560734815952745722090314177946711880477446640169154456563453144953232902476275388316931785279715081869304994089999541247840417078642873349387735099627500030664319192941526267771057732285440636635432456422282730849956832452417427028772331130851678780051743983341546588881704640493876692535278086750357262771484078979905936582081068124199213975562578834530232598078528864079285793232574979298081495760427422887421035931043193806365933998133975091348236798956722791329774564921296937310123032983450649828196770577632121725551435892424014774711395984561696496442012794606273683478627749746080109469846311520747616954502133015543853953909690192777888375736383957362062929058395921625969308747911404404913024876698305662214131457831493365033279057754075626427511239342901285957861278197679494160078346120621460186560054851487932790465808192651582777366234883725807978339167007937614128537783159344667113252681989003135032633474123080940238602659674658386263117116136788056602254841133992421109205110424025742942240591429721037667208584375057713669045894678498108356118207456792747887691730535984954813901610153596196091978437594503845197018244892232620612246447109360440361500259953185217100596890890472125874899532908345968074049231204039411675629761901943502620112681296965216324988021502230379024486632702247585437158126831887100479239425124107961627449391944782251679855213581281902769134065945611303247411345544951769684336548514551568748279389710822633585630741006256737879383356572178522796592691541575987041001820360190310008873502858031774883111653593329447421655258498959901617293908444578037054977794639396975759918621420721870956885152455176702279875679270627549116479604945930725947013527187044723069448356392220859791968072168741185271218582292255002933255650369995714400120539990660790356139571917752100435792454289012670418130329107866688965598226083965918155712360762491857356446623789881278374821973130620798711162897896620957258908159696374671939160161175752538798842291604791605170978103894687165251083370758246590359021612151642735346499670855501351235283102410749780642614262360367683879119892202926817910407602244075335125528938383228726217774761514291663971848114646166373206706900717183841622300994229817524785368539802924406561737517590942643207382364510529126626782286198893204981191596068879594655290639463290397123760611604163672472052089309234532212979908613293581679590036805608179287528049498357257286748027830620186139467714069487886397551093789659338760170596141664295382447383291587352568212599827508703789102483391001117501604544968567886008902484395744515463066315679137289514894565606813585149944059675187271669811630080451677021208147916005195496656651931811117744938044440467670815015152359924662567245120346190496084607321366047895633795188838299681079522758501973640308428528171222467879559318892902433525312823601856298809974883667442613383092141392973265803501732276663641655817323367624510016553120306469226804323582255487647084232981263253126777580992110626465662815777220973571383247427306867944627501856951287783459229567020721955592619979011593858930461454011801569731754692944222486814207259130330010033498801938005213190459667677085796341920166753140712342188047370810647887893999728919780932108395983590126000134260930217813582521712935169215314183846534441849755100941171736758618589096556876722032097572629385980355020537358599932911647515492856091939605068013382161020827050826837716996315142702691511943524241720564503328719582311945269628740049824988744273216151151982253671433242092338644460641566684501844314012975522372069750296565322969065721247669891911636393278798929725257365323432761747012957233226378480412447776343526257079089956306367072570570928093224392872783464125792360745888038901359135511916935020197637384215350496691275051981597574547927382606401812695118037691520709440340659980793250283150552897543937301718716068766004162590773059870865603856138935204284802016172167431889312513564197378672354117922242394482588987505848100203660886645995512296786662235551212579497739269860378696708968660210166900525438397745385426757001452725403302350072826089847358988463747626659424705277108147091654090348812020475290449181859637177726195126989610266776385613834245479792857086174773310363721086668451970057959190608332365703737805830289752580314510146511933787762274650701913509388243048619023222047012076972240713100987034491427428216304552976711359548240428737287859210267808628556293779533888498298510643994831701455290224204326264428810637187195593227884352536571842422265736418046611461466006527035471109434227911739848184049844094272838651106014510497325950693764068314271122139293203816543012444794038991716158987162227534426440416463332659866903788815118873910337710035001867478372764050024318859136660363735566860047630898748456568120861274017986278097194932337685543879273872235575797199082486095572417404938176040316627334414100582794123388557174697544328641666766169723239860328304354556093967562680334503888096813375515288077405758670308875721590488605667042344650040335366581303784169310718143292319303448135619880293417874685601893291369720176859912667538095485792536574930116641460572088743751424717401494556197269796991123741104218296957954029492953766208087997432928999574233195849865891109091418732115909778663188832918873950782468027504884999422095870015933937543737017319213828336073627604243157815768330544493813339146749237638075304479230597346031985290589411757817244682803639480388479072527089632992746265844087362950295163424579927217496815623316668654056575387458462735629559482275889274920747628726445317397863169903229133616516842563361993572721614798770454124848671696042051351912939388061193467382249146307010903850933181233451286657652035810811273813894061813756309163927941685299321555261151304539449344495368850424532482243897033862044139071913177823325825642008165692492501428246841107208373931583886062209712395315549888727561577616369540484837081011260535831761316504636557935669732411362408426931744322023955630204581311538408173734723962894974374619285621551046815047474649271095271610887572467262236191884769765903300242233238385598389468853258850771551440119056182593004969343560504069776710685894801282375308097815010766438702975324156544398728357611067488920708812290047992771831869598821185586456298445242313923912344450834903225558626566347926357391085480695949002010741034109438543046577583304947526659383196811479197847942446521660449073585704359157748993356346897046353420992563021257073565689916326709687407833329173283316045329769967392444263018553194595903907850517488046114120735586871242460746065753436302693540269435104677757039411301687627938763714322606991772215775399337456014480508286738638286022436005628423626867974051472794226989275139031507031347826479135370944376196512806093261586294299661233259941036347335598620986563085866366575426935178496042712584120674713850332080814172279912724178262403403127851958195635125298616867957185208762865671886817201787659612914893214678884307649581255328877020040242534623414215267147875165584131603538289417976065410344860283494671482479377790084929932228716936675471721388411683748526357642924056375772772270258868384829086707291937103449612892860654638679173742365509010022793365831070621035076977045209103906509871560619348493301087643702958190333108685749214439785981625388871992953172104325728838533877011847372319492569194109256637500160185771169855595628988718997831945944574603410634286412421262042616288129541235080784047480021451128266935256962790507148796943848983419428102394197188270717588060728525122111834958515918088672147312185087682531802245617376129561528141838031298297236883703001399693334769477296036592724378161745776324506231568175924069143472693430910329157341319351621373968936130103348722058012397323529130184519699785191518934766269745118003149079343516265183030894126922394464369352751038428970685855419159014588179525993864841694685575420896528354703399403150102302308114864767216918556006278868889708730379455817744357230023682993757814458412313740398998300812468303852985183507271175699592806309046257123721339271452460487619691532885370496587570714561934847848766051291521200837149580760380944075566987143991117226661820792219002992880226005455756353939838353512347866034943083574794004765340614701109660460079959931513913854943444408836253840100815088185697476022256554526553342043190115849119003623923806983445412933137054272896612179642871627775294959926309620375776787885689582699172277846220101588207110612875057757898121745119563011964283872735249357655671596076540544946648307153814585078709817428828140755477848646732698299145891757890497463761389299692210747854010798503329346809324772366067058082936356550939945885735272664974673285119425764096674241758007638712520542255377657593604500263753251102432783002070824301159614705642359850011323123097889738825135383365708921324243906560280965334411177191973041507299735546677070081258196064632523199739721611245131336165844346873654267847664166744291987044590988900614516445460995639998121110468801550260423595826173588343317171672985089540436011931367946913945283616318193974625927493519564173443988603189207100686167718418956665868039627032047866928760961544387650956893159276674184916717742754018239192603878937076519201260082318681756624893906118860863941782344818116402236457437879151285497154475740877230364510288556556189422901922603491747702145841752869571361291510065466162278872299055884358103365986620663173717969685312865070486206060705056446714227714518560790324371785023520799742713636253429039637597042183809278880307327180992101000710408582083025679959689961506655121186933023655201061961484329070089437204346156985982045594501625859080514543529629664365235048892948502451557477463150656051405413815580607582567123917664831371615502539082286689437599054779488852258269201172647928301095209046781098205386931107811529028599546235802786192873410494426731167002942917837446086843363579429281003132577824346444199716159461688370625509352632581846114139827583723827128361139463795711853881311280062719951452163571648167596660114414849918836267414382319894443386427971582888366865157955092425253223441996924407321977643032929813051263958698419384802923877427319894909687461903601911363846366355968784555162806018100864906484559636656548077507453396003312592206875007321956916754856727928026686610303545373142446399202437866683682760239453439252953077491970437541737337318746038627879463625962256646787463810281989783780967570910222500015137235585567923073212372987626410739727870873312149506055492148493220107974694185359366289004302029069874563755284917456710481484751554990385710294948410814549395674981762419052742206175046280510358714114860430221776779917986080772736835256785787993926281043259094672213273308892978338001751125858456086655214892966925616585152665423644810418426793002638854930255721206918490793671716183001363029338721839265663621852502363599292492239209448395966655664815172302837799057377359117195598678450949140019821727058048504739375927033834631234930880923582328649694026684371525492597163179710308113889889591649155855191483384737253226391263407522759769222924427486139886257317286712659498281290182219435810601130578256582908002576274330916897464528637818307261803342203709554156179034049608082752544790415069171023322702644632850688977834085965279665068354591475366804037950031906122530330873211336705825222587198656277450172128306797139086972686310939475609199765893761036519667384101113549859283939776312542165080459296009236794971155795975348070963196745286387394244459147730189031348357856660302516666802958581689452427984118000854264891431020451727926331230664107210156832980835031228704910836470866061038550437551241673149745547049206222286051820513892962698898010926777278700763792050616286826377512178811157317682296508407398370971306254109191951267235818769477691791092304041239983932208134327324172795642122327165762143210053821729899123858877442236168741745349333162902108466266822743136968918797712070090340829232000500448668049358948040449249753015727208958027110564178735846666718268744131977633191034868805451684087353116087241634742674772677795444605197423908697994574383306660890690537430603182890163579806005462200776423604099139904184057488815651120823587282724947882291257377184028921613195433154027314886554032840360464788589198963748708224823988413615208011663997531793116866004135852977524380807088544781417766307794022293632487124706557466925016204046377457275363705657459857569462498092800019614112378062719598501444617764763461659585122341544889719720072187866254002298370686829741142059264904000262982873519603887447588723319141843731232790797719407912943756031624407215720095277072775505456901259865359470640501918598728082683433042701975163994932267298741832691860575397049906647701720540641869640865044072498354819393794012247144142084261448614773606765204573028121768108378662658961575426261930943165543243991448326750755593899945115906371858708492788327959955077870639210379270721108446296747791310133632062140327653889182637158148943721667109224789881238812140681983495003211152114539778347524208602621262116566837913937889011302235135845869085507755950164192560194802774770033026273451340234436746332604909611153434125627215684123574976186876843009219905553262015355407931346701370272717119587928778175628672292960016207541056414399158761185571510039727670775559096310240459457100417605282969492590103653955086327690843002304667990377159571963610403489000764235003866235266629555737328072591180994379340787923081980476949581233499659822706093532569849228893069444925380333754617152792228544149266526260172387851979472607648881375365175884716199732428820416443674310874228729974923886419708266920825117968144957643727596569490406349104247811422804216744298592459563910376405531816924083441957924354215717667406641840453926856183470271678779198588046377228794861300381168856530870750871866639462429810107784269256494493862571910130908098334223450679363549695328795976023929323096097066063326780015084466236060442017358319034623204532805956566992864725313005979577156915197009491902974792872826242960288391222676452323016217593502619660542979550041484478445153642699194823317535610795455106125484238039654889906255597275755493360760716230850689745070159240886330005528379009913033432298371256375033837724912383146520411190557047577050869960499120118097175984341525264729133868536684877670561010811179224170746687770457508887461541875192184689038418814665075028771438846621811716442163435458621818677431003641700615081253456408082181650395784323420210910292851862611203207583803089868691379194659540463642540414932726425805226114253515818447422538495228717178527820511965203274487464777910976305355639782613416122909969119416667348980691396894236599427042695334650799297053808000065107207678947218541337200075299084772951413139791976526556975442798874632690654257651188614965963787647085978800322282130857992802511996750737155368199824695492348322719046112709904147699027811080777609783831989552352121792282880173437376435956791196265861187683194122533252175681262013270505479022904374710732550376432597881746866391795319408745902722401306879912309693682774883348935799830854118499190979314980844472866736600067828172820203299230281904399269046002668284009405646275447379821629535269501732600520980516645318245037939594444924457923494678854271585149519331136386827671274358762636468626933080428257494734371171256723729262843521734157224991455439666537610233994678085524017602115035187249534250815169250274189176189221819101093246434237841654647474741451739967001767968370900085499100998131826530537279629066148957887495145059841634079690808346203362565576192914963068213241369731657057575762044018968400106713343001457669224003604294186714769140261390718433084072900703812764906853648949126843115736529999137363543617813608057308650662541899333215892022264056279849327540171701505549724871896775202703349692734113583279480142236285054823360385420987153557539365820030876643470173105142893393847959789703950629107901080675011556681604926593597444280456308050721645135948197455787452152706392020849761829529033644103159873449459009095482917225078532477581060221153435567807354017083794427758467753431963460197769894675675106902862652874375961663716266602848466501295291154173625589739287213766073075457780424513023577944581382855610715746918205557382722375937165059558275182429205802875669537100803849318593349101568871663827085259509597177978769166915526536957928108156964081262640518084637408207143659982423157442808105246665160830902870294886242110527735040215334632144401988333365721564895750401031225494175722130349708161885195454674968702721258814592644494093396996411893125464114139515512807714480180585767888445889774855977111047626360057158945162391000637205178073575045274687043813921681327675931942728895701258358742091148268634167971851024648156203159790246929106199523550473641801388574866196391311298857777729547998471054088253507560418312081863856811459467487015144178446218243042649840798942164592957033621021913404236752838915186246071999961900845104648154845289840635597294242172030939500584367092554638763195260319131395751914910312586979650145391692642995383933826081950192994430762037701286175833553709452436965139033962868911222992760834694524845564836741287800779707261921994058053540480721312900381260926185804491339324415533779354776815666862532458211218014902963936016762562735856776899188823114966375072920352935428755620741223753628206433376697274037290335033108756025763710253898441282124669945105325633852713816503438570194373495639301491923953582429017010959067056521534037616446458344581360900715369980149127932020094324290457171985941333772488093521871049445219027776434341397991166556279921047176014973619431919791362384162079909286172694017216676794872356318118339678514138508554988452473300857636554642434239035478130581208401457246657792285281748641154377574918348286798857758653687106415240951551386171365680229080925462882230440855576019412396848047265722567993880628003437736332978775111243879668692228031584822551513712807595532959944337317553148724502063283291248256501786840287512964232893761822245088214727148757566660371229779038164254200135098782466043179282130796874755631516475194311222235423314290268841492568937907699874034489785963044379709465633672546596736944091821074612340675295885051019358585388970261584547362680923002056216715130603806944362897225170624219751860676059657875126408175161678003151358327878537194919746038335998212069635917627601311104660052109492875168909939157823333763571261457417412960048811035832624830656225199416711626506664198172523801807015875955051976494279710892501580709197798952419883518353644288312521802204357450453919734589649851119391072125144610098971003735603314169350676416727237802222058184378577711875644171923665629829608354262974551369165740225708132064454863453857200352507709423756033898241464615895391346585952901357275508403828921143387957210316028462091042339029484088893128995928623248393606868901616649554256285357990673936525936876282981416393953257358899449375536303282591517496687629973946551281209573558679859761782902232249059225852989090806656250588749599267343599799979133972367223719163769250075454068559226662013812594582927237529209316281579152187027519859954329897846302425197741609102554865388698604887512627037665819637245196736269433424694839605752189313023849742086857348725912821433866512884949322644298027041940160904580218680638929279064916524372590106191064796164862601266543806828074721781035495202100019381199493157730294679590441518200424923160099141331430513043679717020484593423413228768392814178393668199996835285037671058729745663985016413959927902640546836686793956333661207654123572908696301166335435380579366600626004699369208423886887157813820950619602525305761212108433211673158435745361231943064274848598598617225978523424225819038897132660975418611403844029631570354529110606675097100549682745605995714011210087708600743549205787299583193790775058381818991190515316922073593068236836493445863137151769789809165085012880117345297026369418374872008088220699475378062506496396951083151880339996133955760371767604125682501296634131692488246991058505875072018685627866964192556406198033803261566223769243795426274281530336514655269338072537825724680874515472807064726871568648303824403812776596547586896143937477212804145090504559764475059997396096931907186039265227728607243924281808381864872219958406046471365827386975692501273414637679613176025057049483136713694416962432486858894081187175267777148783425295835997571059443235353528252936750466671021155983196307483337163987365122945505008388119732359450713097697300811550780590297050563104483202031217565759486174638585959494885699789224175819156418813964427312158235817603685454032689916995591953319927644759497406236486776310742076473493269617092223235295768767832705662290906504523395661751060768843387886943807130397341080796050817612658302818736610143961969770991194273854677272240958690443506097573940826951509062119391848405443117273004038631965408144734003089581898782448410268560172825325704840003111439421409004254603772532666029593737136790667792402789324823200085665689368172478453108729742508848899680544738038178673117301613476800166846753591701383445348317576543729001817134432559425029442554997943306147407351758874910940842142480750907855555848237994913192903993947309314118293698770845815584079790982955547320846407174770625697559722355534599054470646661084005268162723821804890810998643330982249647741487129500978296389549488004200553746746439034924618685879300915297755932715702397052954563373241501077659778542522931645888771436856062676502146488255499846372474221565547872044279219658628841167698545284326459907684277917510704940432270250002386657767554935975430883036702173541924100342252180516474026880926766630810993930898942744161611792843989699182302176615632525247120027049233533079349754606840749430041772895875611922484428337575777519169447758847225013559792720457485484829673944393398175422886942041805295619890177551787836449005878222812302430837186733155231413366280635750069069095068197556406952662710425362502808415272379628810125786605021582732391906691538139309793849266155422306037181371777793069139959919790842651476422467463368471373346873937169644835258198225537294524755716381594451312724898710318813606359848761321799438011652250910974331646517588306995218769868335303547045896304625188960190828218322271561513362299800296962256553025060255081993102216004754685556042225151038620673433548010637468798688071821858746359851678940471453168994726046880320179842099349447173267225086960892704256433142568581063915041282166502379015460005047523843920542986025969437585180280326655805221245681649408444379530773527521469716754615740509449502217458748965143380579628102878596728352511711234593844271342208894217190489981681657495689726924532980566758833941359977688645520619269432250469043843655059209081563795128257087806100900057981632263815525574819635684194617619048202934006325111860894255513766975314363025483611308592464243304304182490555542357923545171339916807911807067221135051707536228251046746492802889738372546736851467764788730911533210292000979028025103466485636761115783075823164211944943102697015204873513506252359986077422322586149624485084779374079635793134437269941047335964957862949321436853511563205419126826531513174213185501901226125500436654155578619592008890670073349946489245339908737267049808195736430612510282986838777462903969738172583175225718302788145059033261837913483833196841248390768797419296287863080228529060988179740505964396626283745300245202018078680505262959032042607576745524124030471837415447660975183246804159288569754304500688973999238006282355564738539671940209544817297914321059472926487593688476883347939933800992821182630236036417232975436058575953647538312946438579731948201842809883004923765443171946357466945494023541881431038580870073052371465050028096343181647951958949977501760325123092230312596876569387266643633901501407573827360548045772833691861048490726980259210430461499839095497227031860626467936164842148333801019241257395471388005883347156993836496453026655731425756703584289884077089128412753746105914416861448604607300226198225499252260498394063541763294556747509997399990467672027234549510259646484566170614968686782920749881224619245211193915826558057777527517087979845181513087342347876603086598719660878258522881198204036650115325737128887790367494246021787481459999362487720927098822757217721569927041381527232046979728229485291117408409970292713434907141673666188295528807586405676454322935629512993794406602354937233195173397842345364711541965880598987561353504750234289508828437361319778377134573629484238099193892050147227325507517743076005592717089769728987404295978780812437727425424929184548599762683416855915109348371678234079896186968593783705081330300014139852344541046595539106578982931035134373147950980800493135108593206770212678436129770179299104636589487805553960177780473276831783487830350571795678566753923913512112702174679758232377685123060772700586715239771005523957210406867088875277760625339786867795430264351222657492041629038426221485801388211419826257263666081520294909077852946009239474216976750088731520978631332216479344606068088809328081141431499451195285843841859910739694244203406580869330564658464906606009690107355944252607499430047662252220173001329045624970905169543949093290213624339920241972843341316675898493727930407795590272474995296365259547093034262140700763432883490306179610429461498325378820227144672753013273123323220119269970287011059620986877459343027196184423159369320168863650669589333403003617847520960643344971577330417387755991869988046044805759736808286025800253326689295825426366747927185709409069413007850283365315219879580210968032898285074797864172822046275776318186528855725638065829246203525684497344296194277606709226419556065572495360767604129278406762209452829185952631780330090409939869653435344922236123973952446297835103853305662981608939601445429492182610576274125816186779466971097815901337955896734808185735745491973188634112932140708210179320835145476433266063280933415137167627951382852225486168934787752099024116119717563804216612527627858024120138074400763018688985642279063091481632110743917073795931170911783646887249729695521695490654182143679856007743701045158051097018818848490313508107579759154721773458833342056176133622132869564178967547069666569913256856403785950683364659815977362431638776687234149160438646438750062328283096300978400802670978784546470704643442451065629368500091453267507741128575999447358112311487130804689836648694912863970574936335042617430610360203012225654823969033561957424010787684782779882817587822781792420685415137695722232510950993309824632052256730015255685228478651250452562343849255049190510760107117370200793919862974196061841492392387369141785365222567096230283082665837722667235325116869235766242537748968818604730413826547253838419965299798546290600604458264088254478355732683202497210620346127344782100482125590526038187040049116325653387380495240940446439478818702618652990829604523507068516018265429700730278852454104545303300165634992575053367204184471086856358460572387733052711273642491876367522199209598599045826274653196011630560699150454893708657588093674896400529317865434351896409007847236264826059317611232735622852991277292340825253951266094991726740999626026087922835406713133474037125364885227626298089456345281919637234577369647303062972696243432383388981543126708873815364626012306213404632509470664415076319963755422376458011706602928231379269043437151834472343691488525499223458873549197572001289986157049646604903297295826415531752289943741067232113652661239090573077403164810730198559478464743811435652569319988734607334572054044266249404923825855926957975286499876181678770049264867867983425549028952089751921937974550580978954784828623194448189783259332779916451685529466113737465771031757651734747646313436562720551207061347748905504010365756971742812780349480826467695815981482920648200104589756903838293297895761673319599895738671792434045591779594091713175766757479289973009775900004509338253588132539714753150659735291209510491303979248539445045976380272186915950840540848735225994042285875346930841454372511212303047786043460580406353198407558423094788635975346044270079419679189822383616071236885805800062902256006496604495882073851283950286728952417573232382278146568311998292723936546218025886171338510006266566840225849880009597793690126328556351185786482808889563408157538919589183502477850646439076620152231067487901133629192577080161151057265519855905573802017680650109900771360579298627607198826060483482237777881475761438358869465712364349308306664932543722808696928680847125910366337889776693929089169678400080914760952132547208727934599636181164330784066805827942713663167536574499418814531508646518424785676309150551829014639860366736380323626048658698858759142806346783822613194361386657153696901775479003926065668742323462421354615427357839434419371024966976587768305357219477868385781097802097242456552102055364174072237713645050176386052886663764685274589786689272361047797393196604775237862046827463216559792334005287855447720771922115339064251977126981459007635435897091298071109500231743713111428482682592653004376951778070200908312861911956907196633777343284399138920551626218956063047090925774871628682510482932268306545609565804132072889348569903343830014501139559163136251507160409796144352912731901152436160679206995005606396759335502016669294739823524468701961534986798107401984624766551548024260581115077839774062815957475238351254500237226377689735129920460306319843298725762656663207653269190252704066620922195372275267574717832014034493845247133086916466869070316324658866985852656146705790381585711391905988205046589472754211561795902118855462023048581246403215279165340057000376921118715553210062385926118769855000894586299816341656078039890115087597385130474546752386426295256405910384866294125288035920800662442947467506996329530568495874583657063949680550007856276735107250310071532862147244976209475736335844005381281869204609789434666624811018338801657755706685209048626783224032618165929837497005818376699256838351429291034450191086194149224911989077236889738477971831669318577600593779855972836206212123628073813647212360937238081893711182620496828493361610093046849538984781648215296176603755601248867014624602312606028659477581388422376967217931565805375715919547279965640305062386642830954549772223092841998271915371529254083249636682408819420612182867039411289298754918776776733694159915357632770347475248830069616851593840703317225164502740319987479608442448415542246796240907670328739924198792390303499251645857358483229807066664183948575158239581264464161321836087198140219752353027464752980462557178303406403316778818438381008636288595518649250561639654340350521613347982976402388472112624392666209776946821451160946383917282779522855433329102092804299043860709674494220058645024872167080308254544091895478872271943379970747062771478319601710348311173931704020369312648916781548021986301826900406483318272143158114244990037501784561760757130161213421453758668604918882799082036309879894089174194493536032693772509420394984144751900663757978179439209734788356624305520763467395757131515952670211240668293929823756978161538885249076266187130972176123873109376387446639285978888574763576834399018620148993658594636301265695351135229066705615999735533069614931857982450350194623373054497460408911018008019453413402943080511387143391784713362830284740023950616500686985307810879429096192252317708985798857508071539647212873000704575331488681996813583296713694081638716955970067164866693096802271712546069819410996414180017484069407330278170614215341354818265622298872465115882786901336505295628671011978898871366123662804204063829275413662010517299630918838199059880455460545131285624628690293067328080702277644714856884631338997499072318004743637513870952986000809205757640777813309449151346066416394388725664165182325079159338703389030225211509623689806050145153863322123812811494482022097098770519765094123898601801048000987554003217193530647354180020486780356364482541404646660961886257910425989525294506770411668819374662923879957891501161041894822460401474873590001573259867693914742372450044111865681552337613191526261091615622938371692159788884744163129335055687718688736112301577271944921584131032015155409652222529770922517665988335781952562921786368842536495248659242849551890449921451634078042451088170860471463120546058686282833879369640789441005356731660132693599750055812066477283191212491957398820957369099364655478740488073720563794532364260780789632534636636120543475576224316159295697105428958186427952127396940632757813802699559111101107861642688586105723825634519866554733666817588166479546892842054576698894051083891666774194476339032040337847742576857415350397601627277444416038906504203679316248452679772437912466054038999349625811870702133407551817150949264682171592306675525880937059090617950973392176060605987164434609149961839953592551753825304392517065516752497031012011029646159603085474403228774633376923860039262647167527703440207901881037020728774535622795521188548343753975733212951570951340895283608699210642399387765438312666033984931541852494597867224343656640793283518838701211888619435398546238004789011273524004782543281018830548682307400805371621102602950466619145022309118193266328325477242888802328902975504439340677255850149218425874803211791614537079378162857459239644309873748829680131992089584733665870941168754791591944113017430845027066254383527076736109950540640578758520886609403726818749164921993447703075167883965484320369163711527748081336780164604641531995287462607695558691732059229888784138645569841398155797751341391286690769325062698223075243091562954402820264167865147696364495953147143020912240616238816496149213007591117697255258539373860977310985332792601808206180204048279710102273019539399677780005406892975282141228947008676025643945645472106823094687245682126048926202283004600060093680549656765890244211951793023095237772369821352517762389473420133171438688508248167684900132633640181894219155539057972444826862485754310532210676516494030335118564693446420049219364924529828084692172332863444833624999268688708865966052690023271847470628743508922691196284788373522400161094169606629679480495532307632723299948789561467723888115102866657936757801693389567270782972233095247925335587203721050013954176177248534586264266956138985827966724414428728257322207517159390965815338461097354349261401087369134052321552778499359995530697187931950205726317635461608478570620236120244255056044004666642374787980347793154963658500253908540405497455794229366629272130475188892202719241715728768297163583988089552916317726640689426158596483100961450417085762059641605161350616306705774244568012664245928369400521365643401250874922506952230693218862509433624626715096534835596288680970860240246190394023635411039497779139775568388249725804493706907478199621725972827061199771068955290037059158606697965181682673242187013893774909648734190771171180450047343076208825490324008129728576006807509151617866375423295491752296426897710559051402143094760654858941419547385722465639955047443488042137650999153053592525499219640890362726683255860358062413431946813697204364675263242414136865148297436280566092006781426195498320051315792321773108290154698657304744885809654126776596839221945562968953186560078726993854073533610911464603073254674770901213822016835536003676145455019258823317560303773160076365165902644336406235609031132753842582362098436800676379525188573154374661633932122148971510443221825333971753639205851019830693979772685644038650816073401056141319363717947717100772856654434751731816077039414769620859068096483158317085244243950862123097685121095532438033900919429534930293934056084266133869959390433745673086055675147569334329976224470764190986323803199879309700062343840754664552663559720635757224035619714916343155925052352518555712874709856753102157143629561600637730808790513961549484834742061172525224518303537959172819675917030571052026699935058641926206037168020488321189267924203833849422606820991139395704237162802648543524153693014142742692695257564233598242637066301245369350422600525408594294191989886327370129649566991956252278514715155045108900543336079010624233104313775909798235269452272983497257465628659563032070362393090219212379642199696944715881652391581780498525142342593160123157666683118689574276170901608762056977833108524449924045984290457130247961364195112365513207527545062896450667206598977551342978252899719360445980304919864819469341632553259589038592855050949842973477445502720629056066281733628481799543513622082528500790010003057246422132066388308429330728636805995272129832653508369344202826347383580496534973051953441974814280498511624242361550308926227024037221781585638524199297924093832021816797272782278686037264610339834745662185044152016348710173074225397503262731112169033128806313399311704491503566475306957204301828279966969209184761849627815856487645682204238864252642922964376652642698308043813561592066527167495254449786275185865053822325348380227321632518623193103210515272621303700168036281869059573264805025762752022016010734898912753930876076708473803364024525845926795412746201624564533253791554704184140339959560626638996324400454139222987157258302426010134056386290833203864984788625671301073861487330799026456887807994892251564386287202509827868499590439178231784278590375488831613649402993351107652411208220529986059433273993364324958590306497944657205822469947280558513289753798859331689670265975950477754326552791963763771181040787662497067256741418558846181083050118081959550896927604032063050133669586446240403517657131175063249486856495716184788730381405594641132374702317433943024493046134478068565866393146587830053091983591575035526164152241315587482596164504818639310173090760750194793145288676700190333396306013799043446214405796727301391057149244509146186649812481864692750240174573351852612086877583694738260076951425570716518736421740556373235089532874081748449431677921340402770105034870598472323677932986336089577751412003713261762928570564862351365024335304447958224631239916669638207716911908404380440035582585670250631138743254202340750979488278816389996323701226230625796267087782223263552831743423287923244792133307248317545320134118854166589824541317490635765183899123059346687232260069848873495087823283411989695553864710320030713091475698931686232870614390295798581209939227565061505504457524131489997128758639182082984817734782544360589747995900000087373559008408730493176473238079410536827775411437222113464602962136650516326189175405354027451429758513452510075508265612861845219018462264081423658788184934581392664179122304492892239240962906813041781853736078025249109725742694359630173328497639568904700856389576472044528309572559603902727533193926721194396157706849417704581403766705617765679418341363380901426461011535704888166396760211231700019540200446328106330369109018162273382979228635587547196423999491953143216947552341657094759956668353074303110596387256321186112739504509662756401649889263512153414580077176576711742339621631167832500454210398154457515646981671729100862326087756787356835151322710988460880414201330843360714136537668820279828371342382039642460822468542264915871393220796244424172394537506980041652105179038280641818627892016191069027028890304197376661305029791459916417029664480000478124362342295589333769331987518977534931282395072424960299515906084062436528308690895404965520317459764186296737332870705120633244235015306399478552294256296974849088448982322686734675719201795265770721582550295155935208654109958082964577482744899995699072444354563603565415547576477024805050566645470255112398300236492654737963244266734809301822768595039381764198228680496519841481419877943570375206656790027822114412205429438983559556061712790620944337661451866034479737394176837240246058151123472944043316108792690207542451135340890396978083764134753118409134879807841805441962559819391366604448719073769093693397782127904885782536884282191768503219059910306862984803850285050253151569762913405059733106334306118827452031254472113800781074831442315933212023535604144195432690613178986728438678164760239618562442300563623371418802877268449698521908003375921609278074955087004524756032008781766647343914952399891961923384466236904579193434005587755046861219731640681319844290652672006883875284675092581643382224358558647177425671379420177521966933257900420070452547387862391793232368555957679609093882157040433001390398266198658005365874547167309060400933834250120554320677746732980563841896810323511312235380883770367176782180768424053307384149110536374167760643526384869629525268895105220228447402500757922318526043966688742725652929249982110053012688087564320310564086917605604477987644654303527187106790450619669501194031721990603934831440333896690878909519986226996902347609474170092509166737648361805489357637052627459113824060180481114235071538528541946979147300787813513389059604131724265270436564059093568938282849303757382402336959073846201602558213661844162328406555906487000773477319830860819931465898120618715727842985595887962636860865243597054109685465530575202239019030581617221708453701927450536290948070130400607018012464863494606670360970390356661127041020207749346363355176218612531298925444926550481126569450800299264567318321919066180077017720726800830681917465412167956407224322719988644107619453959466456629547032732312336485085044819047630297946322463403262310797054138568506812001522579532827622485987412130193172124917636143353311496355426829453117301126972456020802078670554478357838648267930654646488271987695703792229627816822049285539874055752752998666129290357811377370338645506348580311305980263900698854329665665049662874785601764638374331607053252450069585237153319149335397088769311461456285344798921252425402552938733865827447555113155746670696085031500863852075634011701396234649139897535866218436884891129809850931349633339805087892494590182331876975508723130073461522099189923815732894097672127332004668216567407684604799768632582489271244745362906943547254082842663549031240275601930766752425402289413271721832975285218550184601562517941084151394570885767399131025050359342177088688668791656331176227619396021163973640385882134595048385184156711302058154797616396954252037418988516151145461166977084949124911928486695087416098433013342888652780693580606046882813504101782072486198960143699601874416561520488858682854491619203066335777130924929873223713024322245874927935175793950823947803289871063155384215296424551613377426385195188696502596826590752328481942915587728550681810941891093735986094503142509618794763175984109467153250635638597884687976762208586986581604285203118210867663461914480018965491932810308526240048979233751661887958467153885329409157720700496759236538216677846893548766635904872800240099624497844633165938986672885193452362508302446134421453076801547805726652378141022764912027638151951669605866764361949715707436461057879165598256369196727665173094347729255242109993593865551499359931691009028689813760258366633772450417661323828988346879198907284569349523923535321495601118613689421171856504999591569782059887106010030741805797255914025416401792437466494490675964851581538546484101533958775223456305119783677902805019612972943912330411309498395346896513327826671479387114537383886963250106374582304729653116899900198851771189601618606777347752709656693401216808100532170702439118366436081854898464754430460640022152023253084634127240542244084715056781687718065498032935764550724047820662490146332858389040481788203552147579720067401595980303862677753736722288494076793366305787556837795799705289450895494838519350419047879612516767927913131270866728047804519886219989923587088763978612889394069056816516299698908133407025866022621477211598421833561678206645604440994749625788433684348536450735365366057165470749383413114171163934524536203174132964815604579843399642625109175964645485282013621970916761711174795705994785503093704334349135428253458783242149059391645219373918371672926439511985856717622253303549122703098005532244924765284370275121381956736692723386086018538083882388525042665268381274593137930950064931779701056641299402693464587588961190568212393933750999488826472569068410040122490743645980650837678418681890060894528905573769859711019121751933009404328493388711548540964106463945397166254267375234170820606279810939158992551902681405740411298306468624603431789588838337799952392875645521128107434004444373582210250692621626371753736006840984928873491794377851787188296545546572424754618467235446822544265118647318940763550369823677487574673143643702100647797805974824557785399337771886590639110122129398422379038760354635358542756351044780403440905362114075910857689187501615644739119252976433217289537605774122798160369725264949961125307336279023316099944388424287262121353790893428047558770710247251050107684882245093355565976378677938992441192168108835531399027323312856078626323335656022519709271893147064986567798002276341561287522137259446293118167712697855829208123248216958340362777961055497399860837768771105051138442291807020324616336813776717070098361929270304912435464283397183863825125587835073893784823899590730354119705972453178023944788466921318766790688131906208256173090065792095594184957639475912125709919949547021266064260871568312419621332515552576476065388473517636456317066303037847201309070453388842591783882017456520403120825691658419236931168163278695602064102946942365981968770830790136891555539644444946504290165504653634110704056650746954350401692034540574226836696461660125713239313484855067783788149408144382304639348676769512614292615654854625675062097253363609238623063200601856503730687781092244652152464615745580131547480448079316119040509725639390463353433959712216924606254234556643841554765780982199549763940671404296963529134242423308129297519781509276908567407949663092123445633406287536657557185489022075281899502002813676700956416818541872126182753143287570445646235206548866725506774027353991941685663392530469389183661214162227642830635039758428026929636003752039692319888917311908869044276735942048191093773000618751264056938846876801320842782135656309511091367630390297232007805679063124623753863372319272323903538225554230877109937104857822010882530151464931576989696910782271531977209416261665426473573343298568620024508015994957786665792337373592889891065254709685039321172532889898346244182920601131706145255126358775569316935147636880433949627892200221871344792668754616546731490664555873253352684830869810346137546459746753078108639473581137146065387912882324276741540966541626941330887707643191238399483162034840740986100560010858909773330420545350741231870211003007203504176849170244065081452767648535808208486950923559218276587568854835706234486846849767163165210573049521335440403254488310200628329637804251954149346339347432820486723803171286519101037100894653014716443263252158688922636481057044739009871182371788538230420307856080343820327249821305301377793981212610959475405884744937359885389409343765553583902255632299143953941405059905422395762238128510721246826203345199110795253228244285139539517032626164442041573065065186424259240326810190702872696498663720987583956149414423185518301252616322740007786125508437137481352377538053790175808525946008517414971997152169919935181807184535487503365226946595068636281354098149429603516967576679237116066166946037918889609134635759231154757465552027889767259439557456365041982866537347592742126689669788308535233240858510013105540402549777161968291563234784752384694165591185792695363474487437503985453369449738840144222841420280755773452488167468771997007604139570751950528844104166008796696620180834736818693072586727497492365956985832451771256024225612919687039831867462704906800372205311705834878077313704384629187937104019155602865074511312760935171515616565602761718609730416844671762861362992479307641961758797129527485267450670702290045156085811937053381765810427251768652103708408216434901207308430831697488019136146725033918382380222556862395097717661599722056648669833005181969805207681495097723264344460204122099537321515079021668791154331103486181017796898839997924636943212014090526005043263660661389014355862400726622013302555287764127633203287387351414645174967456641487683447104363505381310087178413433741878485979985599303821513888537037402690324516296817733775864050172211387925108294258079453604809081523215169117805685522684020352782546756274442107123390342080073347717483545281216631727288861902544236374307049819229073331104939140423988182502803978682931778431462926431450016831762536013448263798643631733937633327623942573304293435828856409386158078552294537425498908502354199606141286163357731221977170201722704202369085187320093626424376709947326610948055926938908626605280115549143367343735861762898005803203281870726519526851210943067732161767327825729830087299527289319751139580980780686112959928825339151831468990384297553358485954520402033009909389269424375929481758920037133255678747721415084542442087317631254781667764064389402538469333522338655888124095095797720482352141985014300190974833885375506577728093218555964692575646946018197290433412007461556644311269256014436778617115616227383762420574041888793062168939919483614198358834775760510302899178875438641447005764231188161347983185086827999094432682232275528038587533065698435826858230520425829036361459754375097679404416076697057340098343522836238860672348468258996664857133828864410984658909914447569723816957582580111822234259216259846678782637546723788984502735612992436501372512790465873929214723595036315881310655940208824068849680715351954317504963453510747031125205458915501460373006105951381564289414510920189738522721341606746630448790472562991220582853759385940534030477013141344671466799882084703484322427637316773390522993408284352663363103499025051809496975598187628589452094830365345846600033051190509257275223567480564212202963701920344304433779830001308499497852192699516003439595468219575266087343130214173946683802933386116112444111022720084521450553831891747189975623028389437061884551816348555239739669970215170468336297670447185405238118510874389729016648947650585447561456686443303343139739380674751015227857622706991830673841508015487792899963037602324625229306126849291743503270128338169530001540931590692501988974028396434343991520450382968700431679146449115561004716876245984713241116343863250880897772937032113755470076065335506974777287679093082948237182243730060468197790431421215083844014833662470067855978805122160225059539533254308904305722325830872432737356622369016629116087025827734371083949229867412809386652184147817289346135784927704785040130672147919157360509487749543583097494516706938419050329879262628112679603408973702060796719302457560605619876267842023229182359764475337695706993946744861844222023198383306033683590012504774790094304052993100622655835359994130783563561448511066672682517373887707615137783356382032928906152189129936911282270304361883541700436285297916586195933864835170546119518260923445203713911774264492638868809349828150534184016917919394459929035362662536549875673669704717901256278464168596725146247556319456167079115075321281295435526474659785702524484921394536370167053222893455970832189425362950042579468946965947044736679322616563760790829349018085486471628766079926364049624194465252589999205579595170630657626179567250642061728030903074146527051116216706272066567479855083664007385297168008504429915612726660698807767613303590577309357525141462008988930736121821684641950518229479331189301162531798781896561034853652506337933519410539982332510260952442099144235651242173862059550104927709050573295526072909861153718920719485138420867465160323628441081484115009003477261906702595440206025546392122239783737974618450958084407922961353919621103461941320694869009341555540926240758302054939530095527194781574130531352500747771984607485869398277872567723293373020339678485605349236393945666099435277882347432725427511998369038010838300891530875034646204636636248801853516746824197836426476336069983464573095509093478716970176122438359351706559351765692731089474685753719168538423802966941497321528269288707625440888957097057426911932639893899243690140220278222590782375274289616325012467313457518934181065873411657037230218846291811834759033386790343170711071075616749270782187748341729864467695251256862093661778171494685425698495300740635454961905640099581640184038623328354730036062507989509286187587899169227073342430646315049450097317895955059837989511298818753724459687713496565623577576991190151827461974972814986382772806202369468563683911616957971594425938999382641396849567079015257432659992784823590918914249568492788127267863743743435620592850967416752713107332370654222560170986353364635756722667015020278817366258113211757530942734295303116097016833871339656288630483028662655697393427996105588946658320441733638229441842983974558494805852126937269838110239226482361286937769373814869636710180886546309406066860069165468670480166898830636675456768178843125994095349032211489888489096857841084379358411353624791593884375735362196676382621409909066152129757366568982288122112430989588826019731094584993590128546670561506807475394213215543695956369357216094063257726680755440753287091222159619229212894717674375878637436044784146057549087278418946348822588397900126839799390426581509362049646421677710571046367712312894031330846620898160860270112230992629279658427437866493246601897302620853003642521945435802308039828239809130993061158281425546076429953476197677931534669963030438614019004600939343706724760122526443712708260260775545860844646352681475495047684287279295211686654417733395236074562572744744381297181506453251827612673070016470836887447614457011081661215670929490702857461327393826950239158530301639267352561471041017614690342501498668727210043148040868803272367484483526654649859345217958500287865764821745537461041368948200258048891168695707566955504551728184605683696240543618273977086350800861598009633558427208892866022764765071072516498894200573180014082092490886310116909012743408603171243615235705173129042603039940247362289959952697571985646202145679384444752545387605129409470461157931681996603914508686773622797894188351681958833563647098230449987853814702523215668492477580927168548646562196862037203967581592022528518446584996411448755808707252699929296611275282530922775804641511925166461425001232257237542747534443645774224299882265413743301567091019777883928256132315865150175771601638796874323526877804304677917179497391187989398993263598976469923245210591158651075445099778262253402983665878503894471735409774720038956252295981472552997205621040901395532679525042120413665462280682635194030008338296631836992174784447595039646475875468489056160347011206567266102650530162205891131554492280286752913235486780649814494512637249342198465109345513987011618558955665205111618087528037619811539658982300316954622611068686295411181803294788368514534204668262712265415705414452205737232500384719971151811512854850310389199794678877668624453784641165154076168787063471749367116266860926039891465870174724745016599993298471041369035881898922357584779515232038293545705008330347436116922137929392473996862773976403228409782192375339544928426766769096076319518696597608722282811685160872166514408118832986946585505548327400953747007855745465447211544741032841060143421871891748335740399000590508046818601145544006407161426236383392273234061992002667782935720794061069358400928942396152636905657107167902040377175929961501990974094843879685344597148004155930135037615862094482732965433857018624916084772144099063697717656524976007817836720856044779862733203192727463773291655765109817555560760423183452758587153864504848373936652119735480062786481522934656915026402586770888359273917637016179908487517760780152635195128398769000436811472001137848395425412634917419931562735491822181940982355531073850817750756516363963368368321464687332320507609291306330409524136694089880159640522284054366533716650393133323886988412889673705608903753319235555697563751337635701535865869867136889354551612805243467889407792544635110355079352361604661461345637693694240310368193831794813130494176381510987907113195211064228789873592023815782544481684691341036834391107835342854298828824115406258583419644938920279576951221724881925563204317203705424421914923988573788818386124648830544706304811540826392221161196700618617814591049495390755874469142850199718793215104308893096955362997786266862831365139163235113985200067538574625630960689698586589283593487819686458005164951523467352887493571083218115460512295189618004768206485202120757065454149596220891314170874232139572464982386916071290460495956153529754821210661951685615926944312121277454771781393244157361422383195260590735192812009774105975094673960190039532418925862527967229833488345603132148154580702127128191921262526401782237828297778696057929108396961212851737994734725786097030425893134442728395473171417166865863469296444833312821852389774725274307251064981524779520951799724855034611660128353212656788839434167917475772424845269647548944364831470561772988292426361888558896033099403017651413672538435713653147578975020187746908861444616328983102700324338896596777127066153938871659078116531891812463483936160868346528293077136451560815817792457495992194755775619503806540579122244197005907452978523886876329403911433882487376560064186160526933954890143825767622172626663779858716795793996757797326262440858095369349722434221394365258603732747349012282899775368971338056405324177201935703813623483884980995386437457361145898820057084511246805474799967912711830497132898870666810149398430586959797451533498776408214003034533276567693490088599112032732113710409590826944094044142661302504622784931176887031736135344814541048502130306816218329074649531613946507543370848983439887115405599541389953370106135209197824219779985593556644920037858077505610995503917761490963336829341085143157205754914724543373033832750540731773352628732522095697636018245103779468793303302030329109337831137109265130608334324152671501612716582829100810841625380060557740008597228926044215596435865438017096577029224814827996042139988619617617523600663841266231635461880946160530430245203004494041552368505268225901966101585512723400520364650839338028118841169278209647510153332624017391671950014105799133828857460682217635869511886483209344535630474673902558945805168270690035382090012584547379580244165706848853074635193254411745846634336700749009328729528401340203234793383336554915845041110261322353401115947753152827382797313863572567732090394642052064629230372159948395584322468188961123719304473102032977330262740833578816028884334358732190405794205786264780330636535841421584080434186194732250975858068958600458163035129800113105731712730220145184659947156140149432647116750702972041808545462324017148176566283177562823682724252489903613464464918430252737823271490189641138156803866849619014766316609919551095534932908130732783233530435865587271480618794076713517168995442026174803893094985300517478740291322679152616181738697102729147357235299641067172757437257616844459829089427139417110124440158987065341565593027574585070869309546634571201013790841600182100374285175207425576587907296251126492221152776029538727224737580180957813669533159326986491941143185503416103634380645193979599621457487015420969570740497244011564617122729962104257153307641606187104277332941046627229681660022325712427340212587560547296481730456864969286021613228133382996101126927694182883009486400868251861537982534747045977596991394926648486260279577465751764632433328837873683271834808760940967581669229488500791619280783339172807992527755781038557237480115832460837546493433285680844431475000879826631668176989514051527749973880831965659275098340735850107296909833649251334519102557284157277429386192295288343474417345689892655981008455027405924710443902560986701771425359849297074228164194894465865556276783270408720581468823081858145011673976044512555542696005465430159758765194604113879728842779176336074128142801275071477917679967472136771978439671427569783947222716635681291397461616029478376293380320107693731168165950455881710884445901843456855173712962565514670523206089276832033307910835345196503041618493794775004792106014529420459652745401211334676273633476588284278119479281324175997626436082546769904192135210111880667983815418203735121436690243888807959808338976189210801278124836979158844384395149937727466639006401700939471067145808691094293012314306403435695118909177207797036220177575982011989331296326936803310647512668977569626182678458348122938419871376511782424681722546287601175806849887007180368641650201389235025820614510075130183035909508967680380730788446909643552652511343040815536215712014185895046217925126172199575057992183996504012437059406411415167036805564164436638392062306200577732982096262497171134510468270455682074818470992237258319282163679296721140952607460119932901996842612010205931163514531986297804201678447583430684946420060407123971581464900882554011305209653241972986411909865451290744414481316699712706252614930147062002840952355212091049403577227100307665848771046104902429490171556023253861453116050651442648254653445227342161128868769112289420411198034764301115413728555378394764294306318331886448620309431061902917629157452510880104130510320223721357792632831427608300411931892636801118702699494039701416352349843470004004806514955277049443430673847999411380686343300439716439202529239330030754632945871086054624726625316997691877571794711850436889145584626659777710544477947867736152769377642557120140011107134830082120215636788938537909118484305677970770730319574179070886066742162462093626206515252697531331796298778359157209818565783807142080080320291485202363798632676727058619618635355232299879598966772175967673375036837977483777004379851951281183496838622263940395635062325069044535521366533254200870945910240112629138083019709648450938935294798186315677670438198704924196489904782275438444057847178096164191289915824412239883029024638608551666707832599538834360034593026911339822055943539045042503198334977999676616048600563476580285151414201032951546411471838695818813168919341444505547234554016897023668717470383533869650128688784861784367567101906027445558508673410904243466480818816911062209359954515180986055514373813182203880912492671965533324722589598564651885045537534535911932950392303449245457268776239568712954864295104876187151098417443150497421641057471132733541103782828875407620490959145818642229699624662655304958565949706532071619450118140206696010580209530013140347802983218039568858626046757591811738483707194115327381701558363510622575469413073846919622484771410286129977846528344097918097743784586062379623186868917835590365439447812116562954872981235800833044063424468510448050846627962469753456630055443796928571706580132219913616715306120682547467494543083430791042078556262963085078079635023591240684724950479189887334894516777439556954616551090988169446804598542329458492493753682953030230081867066514228252768829473351101074944413276083075266955622445733467337356432808634507976600096059564920039916373043445800926384633843603312722070590260745254399335148233328704541214503672713986511888575101299050426541870599807634240813309222314337306772796191130151376670464717349655362442886378014343130214323512223525859175966861475683494214453855168747615957241773226291781719187855365960183239504274379342171118592504069456551333250615243608303651125385510050262099713543415785875402599492490098710712388223240277401383238381010352047234745981353015977192685816806748926588232545985277382432745127026474245243362410017878802513206523246399858645394779037449814151061980941706519461277032315993541783750379245836634173974184713732418107097924916394987590040242877719950718064500238300920460436602430481640546237810855796271526710949309721631331495891431955240567231881182740686290022987077143384420652230202030298552709176173459727832840454710978903827987889272626458454843746759092528230633161636463361799712245195764472445938964957174181056193780390297709158641343729596181645902056225305917329438694474819899068324988298600574790086664766222935699248488140678508197409694830597751295356794244864564066252196005831252425006502345933063475430699289255834929953283731026597003787125020225083538293443146159022788009878124200947480290494080374439222085302650219221897412238990747477423470274039773766337218264097518356217167616648832169109705806062472497031218847833721359082619829994550524927425326289592742737227725769308700411360942419561333149837294298767807563049113731237424375975593766853644721530815082597834275835049615846471721610320868444187199187857775860317289020371781657734954991075939675165361182182078637256199414728126945886893188833723223855726099936456067884369329871803496284823250557940842840942945116902088711948659045303387978444204559746768402124791139791974493749907698657850725396191458190805676910269508228331875178735441334578127290167871137021587118473784446409226651546591346638523292882100148273086487308560026852034375774102716812797815709196179727136201543257575207351013420637862742365036306854232271755846306926732629576496659348118621225298728351078476919479227346749835398193952312174534907254311197398582470167479007608946146959578033582622983737696168828715334881237337746424582116292446060345919020723411685990391707801323408850988933690419969685908391605018532430339201983549893761385535470457220467836351732095291612426020554477844406546858483360692147178941466411518609682025977719724746263464677835731709739437709850582176523991055253842166883281091616956184733168257473340513018831502460053867138139191128141218571496154405451090190304715989186969577231729325823435924419423445708078408128449614320729309624904186367540421306651012221418685627556427376718100360124049542384222869349957003724294997504937168817659582464148897747567588159360699379710078380046554000698418898364287210958151401604942992478995102808614977728246304198352580931412517178942687937308070267520482253633416611775562808382158166298229085457062020266378702908212101697443634101643333425431453706976191824369649690171676352558553517761044912815532532964516810530409463761430038948007956404068408822326377469022234678901967546136546750884407718458467763386139320251316624840351239824854170751008384190772676143468605856592685263221943396787048465104578602147571605606983553843369922958920198417914102421885478483802119710565274312329208001973210905651599141560126804647417250688538671305041807412840708515349785933021662684686526129894500692396937760955778750716893278915707748391965729687538189085376710375944889151408091373106371840999855190017583389460596496060024949603662746412314605906946495157046160377864170687116560372967515626647099639535024712894578665766863384654658287656713532924358816886287968003037699704856777877133240617331236426654336257047513784539383652347014889119214435535921672686453807634160358096329293612734442481637762926656042892740336267068956317912862340489732076094951127794006861107025589000779984352620032240772113196360444268052589861051245719523000685875256121901821625517892982322780539038497894256686970059175080074111485838965736228734998805716295343981445215961473476645895939585248806319390912675199030351759270186171165866165135100893096783371087451865809756944005536409660397120445193229529154004517910023952342409778279843013055391049131772392457185755881159843987310925445630775466071852773564804483755721018042854778572288109624259267943974510139794184712467826730629151283768479973086733608270560355986413529557003904234904194748928672324741006806284774387477007489334768391748208177360303450040458917584849921092041975140616746485043414246516460585248745891362131789575927317413856237954534034265100852384554954411887781791361948720455886208437712192956441889785159539925928044830823308267329546912883243674605716159988234814036763778570886535352573227224304357869579475206667534409394721396563385748860696307104003432762132203927745398258738026047005175778475526462448557197216509731573115231961574703671210575523336093236534284675032057161539096313917510461161994788034335405537248532049454426486874462565136282283346696700547997127655100626139888102743484502825275117680772128276964559479396757760060054705591339148455203462218906105777216991005755401019500183533598281812545883323194576336164334719317391127786545190291200699207402189010024931113489321270533086851469468800697446035187254415451326880452303007015113110935390092899355118173035395164392705294423440157785194189081232154518848629519744087232959265144806943667226661753118348365857705753090449758083944472533105414661461959090716610001132823169285364923018069026371054235312400666408436463591767417665609359062957002756027235538388096363540882562012036341028629708148991823296531979315474033657531417148030834168485515349554543552659004482608634452921674878864698816142138556267042332298804903548058711885608126440211997871882270466622386006918419206404912426856598743386730795941684323990542481877779822785668946586826642447939602668178750007196863642681926667310965035262006637366383158623852311412652699816751985704462343788415094890449456328326022311654987122526397517838893942685940057962294077478573557394760499220356306405266051078898990202602464550281035363792972993241102961083170099255947536025995441711618425049977409186360911230158013722918441607925104446186979388440154488954385648167350925313680430833175378057193114430409633668565786720510600740972780486440986604836099329423563926719155112611834768484028197645503525537443133099108419403216302720559828315320859996167459946088347404523089098970579552852692276501919257801544049067263833073751202798414095586949452153317387965342654547280229671855544942925084104770380584770351104559415392421379156778914405960139884347848784898084015058909904267417842500681422866348296316215676451579738556337674645767964784826501430652330324193222949045946481281768020511034598607351465113356718098087625966789718964442570746906014690024604370032287014304025380762520831760935999915194966649845621311134717526854128815057339336474749568701715114619425413068966355705304201074132184665188918774036913786578889342979865788617208135995997970082267196376227312464912810829244605567746921204738795928393086505166529722331945594076324566267627908654492971621156689682771764725252067016100984590965220795852438139110900106789120790875934994029182201405582496631247531314022607236570539183688864446989106199215676128013190376391475953851222892270287407759223584554189543334580428701204644854620770729532732407170289568670967516030654133443041542545575466579793466880052422424776016790055547229080324984959466029069659208112415813543747515362910764737903668480907495210963114365905380464295021984817374434521288903923069723694878219191609689497889853284892303694274240304721152216545206157493489183395273198149592731260313896002783463241768282499635441002237848364281892626823545142346617178865590320838158509201420285747100913979685295770540823762406434004309779690754836923641459613593761853226703322201107774570325366283046488303272536500495716503279780757138140929829359391849371466702304981686396923405384677164186837778607828602769953368452411966693041732209824775973842154847489259291283172362761393840292929709279951740291909112573382735729243724765113427227723773764833028623400715651067136218855853142290463662888646811638390779538052149608269490805043780312390875461379014485934820651314235476029376136711630251838613974307269585878714749776247619913477244290682248289757176406405753436789954827881867443865837618378537243404927294405083163454309964386907988818071261105692268690851673457927914147659874504253868866639096454550439053437858600782431961590251447483041012116969654713020491212584420385990386503016541925982623686537780573928325216702572832673915761246718680375415680966491600711046771070283167818517372529835691682436389705910621846015575087225823832027489142779077579182064791656386108510200636083031625187181621333701739798188215677355694398980099712080805431723372791323788347369110077243928257928140609481842750169752369354479928224075231665200821951814277607324858890335006998682134765514193061209221227718142009340377166073949325014721793874150997063974603413458450647934468075303250926048803225604145161832481540258490264026152035127020709119445006721587788001818298508339337695802275129216485782108327878797480294254529056743722952278757877086028149896582806809000860558828839378967226100598391904818140435656781157980847175853645798160494504822627554655841709913775389257616024899275182762449457164582019056356573873241667649103462273244280980022224973515075877831189437212922975535865367039510542236650844722553654693050860461190718229663104142478011222456194332359044673833773584974452945390084002150779760578300482439136792027224744325722881447301536153794570032968827279068779209556122344071781370943787257566655376909435156008836287125851558359539726321332426204888789427886289553357538724668714106126166514870291912310472428025770692365344508757669319308783815290499166498917067618152677960887569743997264327224586543751932346444492634908303704686701836485483312079855864166105239410499579446592600359510451964897568570663522268001802851974556231492003503813608304920268302797867884596401672384217858197300412138000628222016685923087884014368423384338708934460532170815673943197654175046352564111706366782485531077729614361153936344326286138772514612767950029575000023210845510917888579438296415428316449129527904505946360849259906861108143390939849313621795545607304721470846791731312178789331706382279807064949851888700111062035555693023205388981167027004675349781134687729718138941841960758506542643208093178913137389780270578512444950399971821189456394375602240391568619474701627492947753383769198872766145515828150790928334964660825815131224000360287895517038334170519104263508463351387733024053390135585747874426204055629275646804215683653541862612149565562618966121703528087966158385919642017031784119367473586973226594288555366354298039368837308786116357258117551277754986795687840148906458991034599357886727959447328770490506766739294766145160588861982687058640964630203127517945978194635482762070907540935119161051635707932909201844085371862177360705157826017741251504242434512676567044385828907825030506286751094461993265220358130378340411352393715794644102438626936033363405048230891563068468302232117860795758583436163397501444224332457862292810986703077928326945612747218876672830814301986204965454793244711044274369995639941632032575853631804414948837828621610759816264048587214442688737067187169872812759182955222688354989074810981321929579216120763803983226437644212811260568608758002623114667911183250110460416926045314785917115429171643393026238611729480554701417664331067179248127087742190557413372620497972333622489810987564790695062792034948668084710307061417339346420244593979800509875673376286469241532746347389660965011352718100026586730640204830865433789357706373052849312829887968370998736447000324984001637703000871014056227000267748707395244353284364685159052853085808632795344639681729097688219519552835050964412044642318212356075088903915524814370304809321588055467650450118477686178526546793105059158449450799606155927556862049253349920420335945280282251057768764970673409634086598083788661776949160103637740720921298637448897283702498415165719923350801318938551056088345345576448762260198181158162846572947758126691432024435999621317447695821999761273709630929807153581691631609105404246818195340696366425201963728521150284376291109701507394584927531366886630081487271300474323741459062102342593789145558359410242474727814751057161903417035013211008378569054263327261635414604392586392310320173911168246111785771125243861784604226990615764790417266104899155189666505682857731891247268956045493831706551003246519067184296770022639154317605246267257729265722029255853546586446801751483243601856379726397413097272074401463314739044646410981842192323113576031758429379729450201472815285355388610426590280000925274014717549607721948278235269596977433739233095079608585289683319705279993686823544906493041556389342560686449979187431343872860694429878117845438983149966442362157132029640120467845743450836434878725468947168911322861997866051044807203521134748218785444418399338795032596616800764921830279110317638066410424605508133221591602042724839743017244144799335122151453430085808338006288824625203557159383488320156959866893275954591146447347020793175151843674059154091701476880124802666478531788223319834607020634373738152405890623977656920287692082886676511445714888311275104309314049406275900329629863634974745316315164127065986666275165687502210945603263103607965392364489094910533311814032455069008911133130179536182320295841844560872812460091677342495197492089171664634654137718814223932746789619654298126243209425845226954432147910775204804490953601402684855215978103268586534994410997165631108567612677503897780356576921909867357435418721862360101511423536457849523433492004334980000377326019920043532553067971510935276038317233474081231228356765295481967195402970008717871283803969027172009982935835198053587182614075861064480720171142017717547543192137933489336846078289085846197526283131882266405485414430109350306055484354637220308138771405725551145681809180916431044063424767944311333103501348966885670217260480157845189522774645556447271144550410633702675252765465547572945469011073826652900904307313560032582422597231814380091116222300551960389528832615265413328058889566256168368376589291667060852838533876195805268815998834191783657529351625742916562147270311202413476398275927274549065985614104251129122688812898908616256947366560921659226879577064160323177400343005932257396044343505069559206385459104826045913221825819615306650785194693612484714041710923543202864891257731280654653260206974516598728699442021243084749551757346037711606914868175437441266306044760226841951360037925972785968475224985723268748934813467642007084084796157822185324956038800428066074511212952481596463568437201126406596501919013296717387400009197074423913710554389446928165831027722248871586089091526502658069076319781497098184160596031922860121707169737872233934660948449590437707438314800122689012839182713774653114572775950797742976587447991206841045731766037125004650909499444811605401376692765407438728754886605270287956296259468385928752010474589873411718320916863663428247118868356715284068111964620571869291765146867809691853213922105243738714235115344015763026352271290481115039821303581332835895526199090850831793830102261820553624096514082288768886402971132236422667747820256263965305799486581228735681100455412164522216961550320203186584339056130261100511905793405366402161226929705016043061881422044250376412645122982729847661301072468829739481035994793958950318731991946767915097875081886238052685985934125702627459187474239089256975035833165064003354442038709228984651539715574680345263507422876311713799069629029940427289801180921724858561138786010322312926567960828572383722781582740961620712175739454676801715467599451359863967037265430900324547543547034682907624738027444745114861881404548002328912285624123829179342576556883655226162119866068750458549735167801351654502707294416900029481897059687180239622734001975906519393925158851703318738117265452547281793539042253044318880953673430515995276902063970328178723917167080075928814679325845611990707552218051281179725587659448868089355186959081718761906315789658271032885537705452919306511757024062598976941021498495097574221544789357034042873071796155747953644987721435407010193460641569712813561574080006082138693762973071613724979735659277097366545872873052154555943072399889282204764482612473140941849281199592798255835202505174482687936073495270122125696745928153765641707406525600547434470760307047322177968377226785845233065287527956186579695820272199256067050098232474405261007502264323783657890991728324746566465876269490116515785330775050232247125690302957353123104617872819000592910521580009841074578600939211028738913548883389597497166565183748595290391660223567573658444177893658784660699284739586840783762741342437696608019914643043021447397050600521520504322123657928726374030994816984127282886035110785896115009915485431804812613794468284455032322719709118909628628673133919652223248706228200718775741692502432007603997321719971565782146712822326594453467367018767454306897587658415537052718308604959987486651338584502715663422964066739657599418545345668297603434030228008457608677752319442287158578481442053162840818308295240009772819607676704882571863238141259755184481764902863716223179868733105623139632566293138539083171297738716430173773823201886062938011178371493293899229865763051877564778103093519353118992195483043992640188036348206264457051923070511076660171335331751039571870858431417332794861066550778693468453547655287387645920648115717285087883006815335203876811528453249567259070142649310198385874744666563540064156517570928761961211032508307305969271987001921448742084178012944918837355972878066071192178106153427897044033470631626028017806662943051942746342384426088112175831684896759563288628810080307386439795999669865332388649890439672035117958009695004847750644091274189058766100059964344678019750652450687093204000947744869416515488565809957840301000243078244986343874930045087189560055089799461045218505186263985692467110731430318491982168535852196948391919096641776578756049041834580941848917135200128600863898188073353938406980460221949919196853805668708844474063431939699205257113172345572351658782413731124097074050143049379906675309393247680899615270137491172915130326546926778975905928383413034475249170183704708719793756738724043763048977250688522637273470971589940857601537524875401293690350993143702671985283514352975135968356130235609054087279497853942736306634069482403299528060900141947374423126386452229402508375552799388986803977805638529982766265205606927032817536343092330305052738048619514943548881847380427217211066945432220217349459925644732581788708279004566038931400839796460363875223820856226941574425316743409547461222975926013161504461048831115673596943381210899436515016573908167865735385798330504617116777719054481285778243067669006915126865607150867642373085601470419318342821491841060805267648406470255968852152395425898297094753501125256587820949235802945890027208966547226148678735338880504442023352499287867962644147036893126799620595475933756339373550170201434747893607754085026954252324697062587217383061502217051832634516135654836218898196302730502215426613982676373305860251342846492439738936360770443202398588389109037531688204268690620324892372724600266044949337487997293761982379934592435573405147515839816030601826105019937441411550753222488185971877790452324933651575966582046773883939733260032708020117608901491938836376064512488786947193881444363263156017493093933910663378526873127598912251018893823119872268475270721697368880477516267640353354270649483782272235450346055328936813662161656486763038026744445649113637483946867905478842062847085244202746255194183493867378577401339537197665611257444625631255347526914324595522532773374256970939200790891291650908190745906835819964513081376595704103687981624744557226794310171329737470453170109895952222191703988087382795807305622483650593673041527651516910363299318142196294310360097560932454340899252265340955536326910470092238011553793400857010556210652672931727630725735670368014347431432183262191157501008874884428964325165989934256413737271721918723164669760786112977459865324176535088389451280537695849015595163684840440243909581538800279396194736639038350631629576016622346546251637654435196891635959502228167053176411592144351475038910912116764318218424869053121311033173057742448871870397757778607841898370716816712690242770052914755992611361222703126746784247764814380274158015854121344309760093855574609152225853657353876681526194931486847799396796893660475698082960154121351503426868088759152053169856579888083482954354893254948229820204555821167746286062424857475678817933793956313640058399697538739908143430057988830017056730724308653032354522204374548378798107717202965488202090492617074293755464191967102650385892259262483120946620440675214603221077054988105917680166679257660687728427434016027406655068944161373302844839534214827973538360890669470917705200253991228585344243439748849275246263375505103404512607340731556629511876878603968623329326061543683256350870886681841774816500812341985829674689386244126745446514918712349932036890751401213918280585366121590859380063896964687445497537108917512254317559285656968390771303929954042728946429108085165855389420044510278413867813981697102979992753333762455259558244885940617200140503703434211222837538753014728748011441120450119739897865969754536759690103246101601749406669892022320884853902765720186728662032669167872034873826536199138284015922512484382234542222121598882469184183734094801361162934735793713436311143455165212144866921431263062830340433268516579806895849967759932902639410618954250401016279216681561800634837645262593355005869242451636750288612326946226756446254756083747338651942833298042497824270229055917679205920380026804164482462345351092417998916038529259568714826840861563352855939400964153745357627897716248400497123485660062197690538817154871467598662990061383743239825624951562066611087901774269662361755624963047212443671014065623162241454403184015226982817247993086519876736605210054154849602738835911591822244886355155607715304607614493584236813712277658754037815256998584082866802193975501982823898783899474181181568671225576089687722682679565707531242149268329014883816634399018897029096262730331905123913800828241849567025715785292007363674392499279132994594048063209831541005666161626339372856344514988801948430227590779022745968929592269924354494612369697390431976140577731443714873209792406562592276144840308729100757898950896462588264589854437398879485974657284699025010071287765759631617538001108246450822111770082334776856654762693947777957274066833828678238897255852215153664978687844383379009632218125901938514549946073853252112002800421012207602595500681709212116310545433716126294681225923924161698842342484311848481528663456958020978781318388698107102720531639728308419257688364517755251833212675919961901174069817454142246350171447977587477271592895190283911477224688556443769797442596115479098021961830391802747329291921332931189944801795224513590924524248754046731791327979582639304389476288971167809276138332694945647729851106602611348608231324501037080581461419585679226930268601069143638232685451257028729275732640646705160324623964389232930737139118405475781117042869997996135983079403146942575951861406395433088565256599172510096889444547056465757102770357798638055085797738035488791297465238740515049985168337225967662928482832179296478460157441192063881518542328435546175746135637029824355499291605813142784938205869401468625981586568621251823070852402588365311348607484399458642578572218171931141781743693906912488790389958430583690573558441886472100361226451827305997907713519207132976486105962762280700116600195303122162281587582407919001932505252914352146128826633381825322243494238246663300210246207665182292133171141109982549762734097605922492491304093920587075464569165903441095712750661279326659056615883269791905176062172925821462593275551843657025986084339188184570886723049731299087082221653296958993144815939846365479902666926955499845721829162436363378968551994328826469248393166586862705204049139752003426801069211794687428132293556351247997276895408326928628216147675803279678450924694709204838310267930465180603504722284114255541064587290804994741849067169962987032661116035414252905109415248865670187451601825022501640237843182678603993285492579465505085110950924687521516044833197405616583607471254651510227978071479326215688487953280421353958314298642744630518077665863673531557015277940647357298149111807498515415369353069247779597375745165499746235898807485659728302911213690912671953294469786423778242089141691062914224202528163994606027581469247349521718079566197359890335417071477583616607301531541980691452036171976346069283679322109371794077594495133089307567799177607955339330508535205188587492308513342415963849488874083032561295997795363411135702137370782727265576781764462941168616792667717606860635579572624412389277973768798395974954629400258854217720559118751198813856442179087127043843155817971910413118273427798470548709974435248391327545890068005809991233582063895819775965296232397332228387445596411200992940030241183982132253454690084524055113910376854666734715793625907891677744878783029247028384043745985372493107064959285415838717705550428619631530337822251089044711010838473744545545744355094327526656501522057392672543056432761942062518092284803913966791916594210546666487309531333575783229196155259002812529938534958894826210980064340426308782491704059110909377144467033065177838720737557238541048401352917832731331277886923893547327755327572906198215330861441992705746246473868064345497159223646236806169906769964705276510300510969670105633445318761716615760801005546584498318324613408490642418080584765189214007373793119504166665893674793093623958360534645206383325085300113401253205733223185206753105454663107247442323457983753510896930944849008065018215116434377728713948270681266570130008938977055369125419531636070863516785419754412873346350684209755043336120635395049836165024664902029471025236218094282981384449183178983030200829075770082737342488096367865469992958553875812937144872359724749869671939445260691114140822448749424263825716989261629446597479554067849495978669014210538981020229405059699697085832280371124341241484955220039759208218234286979169485546674818375106104299002810164777145984987728306097710662883354061852466762335385096635284325528813863884128236252231566036499446802024374183527778206539424031776373506196025895780823519252358254186788453616297327426786584154441585607928726675590377191609320012779489970025647578588056256106787486562181491183307203769792428426460348793094294109708318416210234056019341100274877184469142224541750921864477319608345334104746379177552103996906409402650044109410563057295971011456374137260887812195168595245833957608522425180189378264189700817518300928175007185378544812511789958227602103861041754033375358790372888418028181920918663537707145473016321803679140972182016653061519138485098420200600047873427968893926583157614558511040465374622465455036904927215175708157609124296520577139262571420328874088349364968467138320486746008362620301908836690729397617819164920840303023260613898003834449300801342181746734607680233019483648700132819215560615596741410108331004023628202727898700625497169902203176525010010166089851418794378450396577708780977003413025798661048025696354603419779126511308821983003478333301002390782866514692883200584857440057940542614979291395814582403518242062475745396014544998253936315899321999496502753795424975284146153926272199288344493715334841995173192386861634761038161477161721747108935978909953585706924070545561789594232527955312618049197907068362618194630230422057104616474136542982357400642637449479538708873151797177181453912847349402291619997917424528486207945471433783569919197316822795087601954549170137882410974368398597982986312583853292759100560226910739884123824445695725032207479994149169572037265025486333171331670004864654398383885654257235175973330693186407007382308928270370402557938631311337938467902473654984610837737017543810563389837750413591910209403446237361597156918142744567211319888619926232298992328811045990345169497461210507425445221513960481536051990182982518183691567739752031552792329959442240028313559521931974518492485439274560728678187200538252033514656592490978778676956473258762011858225774961083220207697436014856884643619866648301222651552825124777546371354733687298615119036852365033494944234305481274156064933463159989448820582133771940523508632432647201241508329107803748679628675909580623716105760076274005407370679999554730838534723251990757541628160996959856532316222324550024901710121092907114913132453275495098355860158142908361531667463294477467747044678116950644916642295139332897130356742342206793899220275105905071714355862549007637596249069876725145979300485073359848340727184968194249672938905956895352068558674436444111951668974989448202047849841903744369613109480150569239416340544277924537451728188654089184775195373669065410632770750694777651222941437352206829013994569821672909146669015211693071705005854954330886903251856641801395475279912676862162887395035147071934855190918757633149130149313398136248103183636722171113408768347838161546574280683421034618146096666777757858829815830626373480787725373447474926070457249848391557028895200343370181980797987776351373644655504069567647398680388720857202801589408868940138245705716155471485756348718211373937859384022545926607489475362031768564150106900837372242577719101484222602233762008582211635819452674760792534394689892839985547749971650454721396674437947581882528774960279074289373242663275481735837969025103401037674183124763379374622260319090929154033527371558676570168823551971296870202114153420619049718526777611684060608498284048648023071139328288558025570846572167402060992371756220203492137057640962355532363093206441361684358426106005979880754704444420142867101547104545794459833157639551780286306277099491107542699965577829866789072156134284355437836608516088288085190428603761990644632192960784862662613078424341049700401513454435194022084553490785419349942983796589031615237194310399930547558388474650634897648523507059137428430515883501010685388962659035578960326180919369900477810182041390055912513520695375550246021903040881204308860331694080438225046402658193665802291018730772081834976959516007572379073442300331969590849319746334529852940152141608851347005857473185672611288364059319023004946004245818324615456328100005318195821650348106651575834832941644125797522439114787510971751377823351786319058164164011747200006427994323214812012342791645711813721778441030143186964978088012177112362696575124685574465058970709237756072145127607945468704360533508252219509312819482005839515885338586065987148911527791349080614644282626453389709114561175809488062516457731773021404566719583355326028833549982169777402201707722572099339762000122465599528686550218662376047222949214644970992503409184580644121812244687387705361507924736078309344236127827199723271375929814869516407324748028956144803719899474310560492453344669507078521754862852237479391730702260566775054598145696411703442848939033610465697362001248465087380130210611245887706539977194396238026260481155490756980206858486622344320304009722414830384217733787730280803933218193028624569963953972553928583684581226978698034071285192193182062477959106105891084617381508998959977830192540999457023553346619099841819972646356538178197679734009553408435547115527772427786942715484190185338229196750593124848874603838355336838884535673633648409712471177623628591809962089052249297651158258010045865058513156009249695127996588464204788608882275272114933975710699526737196329597711670463210257788345496345140845469870034566094491164026407069327185118382713205870717800169480753396927639005133192238911742829974021907065922881594069397160188621470876845950963189586262972677907295535934412132148878276114650314629765812438229554550999192183533213069636409199648579230506836813192243416745198786258664566684864205658151013113961253525506719655916760911510943075356254607340112491125918964401669897438299043834965086601593845399821306205316873319151882579433653107230131097360454102013066424405379990800711330389798616209652086722598603205314916338227690811056255296844517553740618281896217694951308880601752706035447757595062779540130363614933264423914707429242429461383903976142204057799654871348223903505475513996986879396709833650457184919221390136138976079384202832048652053517948870794789354490959084170751281109395861408985293322554104646724073719304210271778263929515368971271218396925776877083372661794358413671714617361285653031980350710255999555962470913719061135557645708503530965774089460932840287208679123150197976099375194256027759454208555756363584322263536333868584415833949483880035005862171234628550731471715415236814283449708947392038155941611446843094273958211999067242603658904557021694084072330735581333931093415372722083492768641830073060801648843369929326793056450626094716646209365961812916731921494410162223438007217262222950435166858421700189910996208078660351927355534622834907879654960418579816874539609842689919362018875926968214653507477093276748073805085471526826308528038644905989152873581590373903404666429529451475427649239026551247659291734582608169715449006463021174333128095986926804076744577000759782806446223582571944590061909101239180315090153621569086500482500194021148531978098749061705576348716164267600910256357932105700489174089763337640082366663880962008187306100476548622796310599562224284226866797280004389219581410744536049038077971273023306251012085443559764765889081851225397849523521002183629848881103075894941265397962312515626658232629869786612747983026785284813265368758655094623320436032518843304674001277090916886538412853115953825319151171950715528359568541592211354678820835162166711267536144243006453876038307585306340065556872014506924592374204267739262120057019564026199427938179952431706433252197031631632267292064874643465124422631004429299458420292721121623485316837143118582506477720001534952017274672799106195666462375348601644703903564662734262044814512402467707746089966999636818014001432347839857294935371890115298447952093428173799114361148660025181681486963431049111149360099021010308198708227069903106804806810053073715749103289932668581122552593602954773426386056439252807553456403568544257019176135751226092782124928928785788907673294158854829017172477153396991745144852626220042621954819731239074816907750330619134740091870354894975968995853231488973022711364806392788141918629253737624554156780375450924032706818221353023647764082974891262060457897455478170385361749037436098534556997448990617543596288471301601162558361480406398719421281357754652047823558974437008985841577089184188679729206039578680517496442674263168140022785390086284947793103246155631391275536509977745235055139933614879656680451619322215082489200509144189329071043595196018120605296514231334191205188521554292635629339146738188218080383658144225843089823875865932498811260381560063502390367922237469365805505984817998060353663266377470296081292103465510720922597952789500171771320680918721970880357824120691522323715964476090762965459094140561188466835351498842385690278670052552026923955941341997999865540783738105960659376152721581148599634254626995264493787128894776776969525225459648894037454109997536361104891878352582528939360388176419359381154018741488882169978493383540804388746751385104184314456467725841494990541400810834212714561662597989207779665756566044895033024462184970112788230500781796795892311411130066017135098371019873987988018342385367516325710398531562328169493348089607469015336453448059897869525902141522548693292977405033388391912086234797554989159589988893495454275793231945079266076879737838166177960861003376100892355918977477144372250118412567669103911928077300009510975374143990815744696037629777950432105189341647373195603995058572393575617688436848807841144718299279966321142141732182099843460802253756927126719251175716786485024718874247402370149308210282883764076988609359624076679959998909518733305225584979103351172897158435887766021475857358494532053938742776965626750356164669990071414052819807005179426439453210053736377083619790482631430415546929872416460198316341565970003964276744490108359833582264288366527440218118242592081665947992132865143071042824672250816205978154174033368704835247521731769986562572050593550328120329865852764564133076839423852369305049000523005122751313111912351597790528929498035487853499364036929062437258012915570277478758937441401428623410197287971621664156825914383673446512989756136976943697555620557735027677701465537846841042924113108230523601375821519429365545154478190226252519716901231145351108550880687469205201151415700032995056851648006788610340387252024698981624533233443083869832018818170533256364201775916846207127067183269821801801415972628200824620173962998833984938335162771969381082561360083678516728052293912141607983731515882563799843854918577747181041801050840989945468160668059766944532136824122033036657647165524552385407789067020790012106200587025284251319661318146760929814081309601312663278441919606018844675129814225283689513138743578445921333453854474139596764528021384054055094736681785752186450568673425518185059660858937340185684743391451122206351129446235481533794191622398552146312953655637734612528197834246595267381450502649854856038647163879847672128247969851775691986598438974911976285555548675819812384084833040817389723087440031476763839711950228953124864935923177353748102697414661241032917606032850152320183288128460410161482510944175764750810093397787594017085145407139690849919203816486700106790868459089642713880884569618397642180844039579946352261163726922977476698102491150131751077754263769885760774626934117596437459484888186479763411709131487766081924635888320964790757848630338925018591991370950470140068467332262053599106357788691618296571373399834647406714432937416405083533129045434675721179890954947714688227851359270017651440205181454070281932012024711697629827809143944966204414523489130349413577855827601211964693248731053276254173868487486414995621406559959415762277742093823834568458067958916013021912819445584464471137648011181643960309091194163437478304848432638139006345544986429169327628225362312617731702792205446248462746086160768120210371534737646875954025599853703556418468252577092606424609284815185831452275256079379764860295757221755441432752335361106230001114530003415829690033588792901708192757410849290220924889655935025255179863094333167331570144061282035382244905517712508296836173654347241676088008930757558663003198448764468139958464636360802650817684739637783385867420699515335253644124014471269789052286293088279212206519041501322320645665469097167385927793676843569856886112185433859737831768586049223297668157676131546365884119818718407253883087879081501584548224007530151310502049417285233065485577629976017478427961390854448297812355550609521861523715203750630759264411370089915622376096499225610641622922818052453776074164435014052191597479175433763148424632682299758595303221250787404266975392526564760731430581019879905569465553003624200466939910303683143676128026481876671722244388680461508061357398825236527491389719026951151442705896662453556985100429314373331181251221817522465979612134900038611666645709037449270450813290796256863531680473253956102218995101154915435410281316407889333994923216555639947842825113372402697839753025963326817700223849322825730902220295767300834682165137678343685801903010672496886688316499752057519977498371202680850725140491284178565804091801565561216618921279001951354730630637559552695209130665525625226162964135056863374419969617899177059888854735808162879900577878503741321443832615756623060594352076127933729232507639282778736062915962080536588222469565344117874337346476142343719398532269859512371554947944933833132499180761933401481230902272024900653446575307811368800759331964228236618694364548432781606835239503047996060125847416289424428509110856129128091011873626717883609575133796578247236960088727056953242018475256703140467336008131574998536854706787942405158807296954230794382594750611433110239777572322383861966686863024192712834818403541255168811426026962330343299532235516874409650682965667806084918250691327417925212415303551755195371077843280543931212394193884996839912606118185537272430947908191169110961228472006719235088795537909196730307194486095545017173335670477310097174782568377688787966962955698613868753787403849872160461988084542117448122396387872628871998860765813377166022406302469311468206371432630441835568532296520777490485767645089316394806690630501210853561187747436025740197635233714627505492571290663784405345267087239001087670222235164728233306906063288831180361241458610448537820555584077644097516290700915050811520316642347212490503479115061198181677277954337896948327593949144953821036498720663146915643114144562401798038405913121701882264492194797359617164118301015355287259790165974576011747047636559675801188249833747869580480796912399381956659042179260415342737998312439122412723118505607895478853757208569104782134941745514365289351523021689816869682436842352756367753792595652793861254254229036766537189608921724558005666949913102323899848614061580947141134447385964307382972567469527416702698300570410291398308250727260232117078656624582500181913855003263589135784246671188793195214534518337081344741485704384258268537762001698811394975987418037125496921953427393656557955424284750044565771154713994225612103339198308946396164485869867200154896453180980945958113086693598285059038195238707413483363156102473860863806635312836486267414357595863638462411733675038390550088522062557318759405144811179747238498475227826598753341599706157178499890555255656470841653908783225109517143801792950417348610468567482358433050730331415008591038281962940440944202066328661838145127701923598358906150863390389066399089914829655529596202498344995374884488358533600830496607486845562735774987115885448106636021896910464062895252513398348438357472159974447481855211303635126386686856620736289957410708479797216562832443988253327528319906466599278076314793638660807757370280649482908179713150640763365374584213930410241700028806151234993993306438647180304802535414779986182011665627984828393324256018449559103535487795163167636522691501003480888304213694686434685779963802411186709672999636561331396835616342612759071603531132252058109862309112557061156953794488171489980628726564802433797753711129236560080341695052896132229689889946615054640690415263336847540530215669627278034094226973674995750759488906741522694938755393222235075881639446504563142802714250967039768325166268317147772063483188238361912566032133898290283616632862187477026003656518790670216989275799175604189083931024352084434316949400886010969605420149153556279194567952657532221825001028515219289369182206598172153955877144120251053989894251868170072503979170521964200787799526634430967358934604804818919296204988190828124388591206076300338024053472006234995334681820342182481222090983097335524632266176553727082786603936389003404254555720399168792248903721992112506004775136040032209619984466803105423316228493490103393645300924417141824203309707761758141274013519591967986547677627153283064289502876981697472970516536970830999388712191879483289804052296830108435751407255475127426735051003394247149008321822731786957304354735243780240162558706263198156736274185376655309698724841380861426973470511805466864201362092821812827970940474464584678436091800048982075148422558109189274186587239745743446600462942226419636447127261822515385915104177737829874282100655539869032213619215018351387227755103083951176017725778742715495708429721021876549540104270523935509167322780372752067747046204797383162351332057741068964834574617439621937634282972426227169651624247347264375159140030960050293287286146363309593173032516709913007752043513183938355366338247955285781945962965223544252925793098269023383102304411547437798573535126335872538818681607528289941615107155531504671679420740728198728145885292083989975616783416268113536716429997405739436916162737109921598821909814228624828738438178398731290090429070268096191190655535417460973953253772800589590421037473403778887987333387878454440112818435307759727812355036526127109373971015465155934057299917502055906149620167546364671708259816961542050537685831262644559770713042212892110122247445753525029683048447833576298981902094027030300617325280026720829418790417875952000210062044472245275511397354244882923102986413192246430184956473841770831518870910962859704768930517772680680614029296064925636263558717230123915150471948812492243806548705302513888688725735675932917485443074125833316084389799214419384922742701822662347486097678452142225039751401153135719234364584722344426658400019803092966406453107183985007268103929556299665651608491608664941879807750605989487750903140812463714869190062168211441135303191033148623799142611068017822538912845961190827231040563313569864258644133005866711978654772307713740927330457849954616617763930783898197369321749698466004031269924797532196583778106811921442382155584926337426534736745462757555734134697805842699432547307769134254029728621895209213274822711401929426577780744216112178232684630104701485045676125390885202879088184722861712886194197630267488548141829302377249969634880256088966102337216903790443239194538494154042168673495627999060416501151841614631039618357387987568655170432182819629602786006231375120269137755580941164575459989651946792228916094948863286027016583662928138519610293198131004752810509765320847808371940635002507207477979721386611185491931139659940439960312729067085751388383302139115464270027214406446299337879054558294074752253925083519075773519800433383815526981079112425989590165764962124182719043220607054088012257410807636755752108408619644169575282556755627524352201716901713226067815687445548379609899812949164400746379131551383748331392078590465800465141049361413956199636989360875242524824512370805247006282116619522575443439893187156148376106026386370076278077937399454083456829851033226980859654834284967342669677079493104545332777859847730760692148875561252090060195398894784160176407613685582318515539477937567159113565862481795985972450328572264400925941428839428741435411310313166601070827355736604205414977519020277150430840743309031627323420698111726039122835622076319072079103858507553418859955719822107167822853446448545178187317286565742161290692652905174475897297523354741529536226445552642360252840721607993308165763252980587881262292071399991496997191536044926720309478141646856969583590523729693668431824188420306612648055961388323212446637084561224756022816497674269116282800191611529819990993572551189192423277429833825160688708749277934187508861151936562808051531922455947215235158542447271969240333578266918941238220756810622506836975818727203961528940152795814129036119212193598315637173907759333442630705698025288505291845652950244818468237518048612709034986484201032067047671968364506108514314290545048168526682810885281831016972962644634301007777486015666125453980201057908721437712781866241862028287142407891611448749552529832705021892393806159508949445303590606930927520982126852143455295756763679335464079852212134385108030790023966805874858817729477165005821682179104356468078794506620252687352318843225003297520983982591022195596398675788209181216347103427731226201545319381979312474333489550249282776885263319325065991820635804187495704694088620333909857346299444734541270867944939408226726003191838924466633963895440484059548361815148587746237112008611235179974727495692701292518544817157171228891959035005074859162541089119332612750524844720182779888678297381884438483212528709211599216537783426225875816316292241785475454110845128686817489136487023926378092316364721306478491156866652613629520238668181690919054330547871467809232778008320510851229162269603847727584412069958408608214905213531729263159677901317398516502271330306704893719049385354063637612989084340579853472421443829722754594539240523432809814365380959861238103523678325861145936835395004371154449611745298854942658897268811195195582109599005175218794158695974368978195303411261904457581447920275457181713367701911297872886282155865426550460289002911286736590885344454453809069152169606442191453646069515438764998615885313653835811749429305134669879999270970958528964056377273574845582887828898816939808412326312095646271968726459331711192850199107582417423677198467476351401511043447044104925787688594409175070195717166054259896757836655417289150012505997711558761179148907297054605026847765544858732293410220448238202210882099551310666072148712767069857441124344482446601330410809850335345933003893671081254835802302973804624473610539572787811857122987471450272689599763517791032186102296108813131085787339601847420538239479399757557707815687759457760156449541123395773802316327417884367344367643971360932729614992661563222624821799156186916091919338864574429211654059705669828788232864212752142395269680542518566601517048838083488792243813945284994232902924522768144889685760865086021656539100685945624824067204588754410037596042046008519823316043446604088862966732369266856157301348023148204470363650970955460722530606047405151652572746917721479561487693506445216892852725007846712240068635677762961896014365477226625477687831818201958652570901161745147384200648645621487400043361537046865861926680451483390395518360229034559596552754370088023051918228640333423925081365904570623365160559402806628968829302900271786648381074124073033654530167427642476387330094767441682821074213872673417607730058051845091486917233882407423713306672174734417066512433294380469782081572588377888299070614024544993271634505045206713870807309290511089028147058330255870643083896797899352627315239985390661077655740681825929985868051048037871332661516261700317852885131000949466989929860253153241796136600994125372306637830070060789472890124563576959769620752149368485088199051686234288996856962484554124602872780840462822411751489034463395315533940493112628764917659269267983010370301367099561322570068027222982676489319205365446477792134774975621467463577570635744659003239865417288260227012677234001944129804723503172031189043280928249926467443039398009529826427641987509131913801790878245133523188143192715981616278835197742902801467846019117153845162869066217782211273668987047010513365246655702281735728451738699110033209189825444533206185064165406904250142062160961995595776827954662454748371158308398924473122412888302521037003462527732006321239844515027152523648255095497229477908308985837458272041983869031521354128635700457110625220221982563757812248884865840191162401158918129938831062370403708339135694020491147337021793778397906234005773006557932792959320670847785200144400348963718427280481319458450501864460598049999244276569609634131557287810904457137968553055280043523952233702602005426502518190976821360384697680099527145859672850630553511834485470965383090226733056727327051406148499075468764387503236486834242100679301306286330917653316840891502411147431431267113412901185519442908481931329167381050866342953452556869912666479466397241635512169630785527559315333609934554186860593790187106562596327939814955693723310283581098036127409844330269133808006413667617919656818934637280644344576339738124627280070726341646948667547020966226306042112578846306498677542606964020566077406410373135354066204715446732094233420924179673144236615467679974808787611598230105454443162321872727344723014983668019807974198871261139878587880977418870764314222537517587518551056510797455175898099325929905025020208598504534205349801617981385662113956212596387434493160374615163183904487781317662098561071011264243496527247299391926715543458147750342165975763394545500979678064032422308024392017986378874578937441958085959472018804613983596550225024477841805922697436731182100104933657849317414022857273814335928026806789754134565371611845288592970287764236969016555404698178920472548063272147815306610085893447866138748563237041989002258424010901094165083765345783845203589834124006571503480194093558111275283434649074807398974825169457925008543488359062522530098937210976635490013879601126499907787180065096875757995028460631610062960128187912354457816313735001020568772403401876890231873280333233425290077502454140029916235040476101205732393588591707563875106198859238367686478400633512386970012765338378092336368196283663781823481938012158712320593652700539721970350466866597331358724248499873068198657526221096952997037885434639704380687842107607452470531047007427970551004428027469998029118237090619918672941032606008903091083056713877441570587332666183620280044414235826714834426985731592678126472795764689583832013952581535957397005390411445697453524919422110189453512648120578029026267311555810691369209306293204802069750321671656978921883961622175489626132036936646935036187392541587753080294639337997041472105904254071195853359474776445257958543139860906462668334517554939646471329701063496450141449880438157568353830440857317652244990257723235463179253204941283358872892104946033413416953961183947054464667320475290322146843735369423168229603724938308210695604913281222766038690178454118408386078617946852877402875966813858577263969150000709350545863383339938395064836907698693407057508407784934188975782039582071680749340787332118346118282987549089123182953212621868964115592226857217950657919113414830848249763263918372461589912378407231276385773655968472053475167893692669045317967571062101800374383931110402790924958423564844947360184727378387163185540843624824786230217599660218292214195090342254133742500685754953577394651750431819310424752778573744240876940001651859171525459722764605597380318536422668733091129478417894763650941402659182648776909453104579515216457956717450735883404013968451899528664247340842089722679670787120808717443942177271494015781249267951952750752774241190418739245044406937540411842541970629795852325348570208173624907219697612379359327342464525079786844532505251726810533370913082027724994413456440338500705636834328562500427313772992423655136260054327792971154586286818778826005846645429786820380527716967610295077046771358670861388608588189267248224039715193678094428263083495125555636953543774071891128620788151926745513326451848272311911223227987082594493105823263557769238408892041184743686895413303205023399261601674685598946489985800848941106636235952003048187139808367253257081746819495968245557114995804860291573203445202698613341849975613363520084239477719066391530342339748600922050893657647999068493271434357960854976786072720809551786588930344212393399368252889444169503084645209324661349002501182276296896975203617172090625607789023886832417033267738545849208946533703441845509124002811674752479024171037513811218012610864925599321503483415461587364128097401382007515797877702622438330932394831147454570561374698704490352474411785278434718657476263227486310407233644535169562208136445893795995753535560961236930809787331111882586815295931395042229629346447568656389091461057572347884883916719216578974106449663146322656317236443362160715510585490405637176146122350437778593883781518670933513415168864880317466395606183502557030832971984642795352386605317658104705959785519756872791606044910829427536255411063067518297577555809665503086478626201566664185467463490880460894357346170571351663616311922588175041786154995688355779706716405735449233290161617601893811217688912136875124933385427684869463333131732409421696083901503272174696525116452680774157590089423412932616434553953713229896126014717485200826206203884704061421394265826268456394941232790682320697384281821600605832578562813759638196857820243852551901219962111165935524286982788262811774749434591920299105893038497311290565055333043081148556698623548137166641647806109402505464381826326759609675878358581923643423952315042078572753250148517953298639136242499772190789677000593192527407629791345086860394332883719876432687328203340720311228447978623061035368893167785338522742784967896414443825473890151849571645429922932344878617911328860570365432814403405551651693305610187871602534900245291404631379552055368708693664255343295690494411904479128334381230062111783974948300139433780255464104302640048431823632076713931335797749621695483990938154577299835963181306546559830964696389907433548279937872574548264614356210007750738759702672088341982861626390155147857840810278688947420646581159761755067549904200887475961288235568216025759112234515949851517544660795103814510259601343972890243936001720175926828719023665638231971390561435819776377958583858493319171536908287752827181029969707676073633999862415093444326635380369490833748208648381293388785450540022380226533536123062788623716103528257678603005498813256157547978828582956976115558380729802549888008369521942168728690500472783076885165148092834968420584974493051660882020552804772309151614460921462650237627173317466445996653019056689309326187454326970777564567665578244607638220694253776652386216417757387371435068797219036166872184010479086588717823542118545529833759037886854398965402150402458901343155292057759633645304674914576100660673743540196915364189707816662566296657511557498862858063047996271263410669516344029871047105104985918042603050877079065704048034804762582899867496792907665217313242645313020324983069709302254058085995854285770327400812989913977926710908223640601971422344147055491975088916087707731012642676078779730212516858574466118442874268975673992159525247772064445306152873047520415122208325816715125258340554802552862049942855212795383848155438517084078265303630909113589836511613085065371924203218222757891338233710930957790449082838474752864616814122813996883958961491530234330612402617646714933822321840345476543839896540579331734000752005804320075419347228746781897224982550642613923955650591228816709268063142020379086960653539902785142232236396530986211727303921640280024107437941465500925162123564801562643563268762644667899008270584426955243364245073222379340418518418636974332625196805382975484701717424381052088402751564965581509869384125897207347144966416334435617364489473300624070978674896848588540438670539387288450011841481365261039665357011422603973613170096532584880692010803592756948262094431506456715469879635316329164681316913086870381460828524592618701607652447433802322249819439116665355127524792212537503847139657266737925870627472483260242781377650197169626264572242036702665146572679965870259748361265971763181067334154811211666178145733559709979493534611871586987123058601347394558017327645148430321438481807313169042379556071356601706133279050426713719684214784522761363559546451099841918366324584012159565278769907913244132491657423085159527932348723676979864421227721600606644750917013345159805262784073796878242305130806751724091399705543091033466126771029740102196087872390585818923071414028616246095219565920714821577186828343430806932337432454039218508329812121657669705222385466551015331050794129757812020412556567339099174869286541660194359941875455235931393178395466750694531074624829689332357880149677679358595668572361833473059628616440715456509237679174617398621875075533053000652186829475845290254174351238544603722343642197190486800276572193081493955137851461009684067435116840483815596411697242999591163562480394183743004108102437604469862318540141685228386942750501948834704971132985716345309903975847695675264855719565479932766959687326681726525047631117356290769104801809380123557819595583806064928508300062861305385201269690332601307880210713961138760461479593813498417565941885530658843321964624441484058078121071299920238148060191321061380278874042067838568717677138952557426498834609042465494435748069559363365407786302405018129727694300538707924343539214665639646430675830955296440124004485020982080189861488482415605437411935450578291666882342029714402757209345870904833591157907284306709553000694071960148421212265974910068523406778032325499775271393296048418993991987010527171110857197381666524203519889539127145802559664722689329856583233032801563097167327927501855255025151612925834247832445193597012314940406161648833786802409352873922531399619003559524566166749075198700533714063519908635905033469451858546562618422798588582948750753254737491328948682380753717505857642734406555727599333980630904852223021413458473975685691959719915596395577401910281789274634515277678129342238671968708106484735241623964675658490731695967471478633409938287699765883033517091620508434145497433395343306150206527659788045870240532770890601562673306612493503033664095513788586065326729595415731871968727100787662223361268610459370051886122807473921305981082740619412080926639097519829741125789299763464967038986193355012429753019574137894773143286621909521056936503728819279199942704533928636705058602527108521961517153569045309865938678590700133201190814572725363609062041658011751599534077166754268321042774996445831227479543516488763921489536126064023746893063323603018282715509762370915214778953899009079196689842474675447640181772710556430071067583765837419324293645632259602951997767928206774015904392208536120350579394940736401187708849877305997483097713406223709092913945411463083671070601430412332578071886143589220602175562926169862966385513695328636030602328118806793081711142328992105309507406958188175566367342644399716907576271037805313424542453022314528507602315390929575139443682262268785684090483630698931576587285936588424967580832217405662485545077432309089638311587019913144158858638725701325888131948258116973154184655380032086730542879600454261056145612902725134489556084248623557399229316222273914363229682978703094546902496426493103653563798074669821815672487696906117726643738623092662247060074961045861108750236597918605046377325517151334662348110932696558160944319241341035613856123491326458150874524868691024180853847987099649856173600587042247169148126348609007727607345984591529908090001089991982425804075847393129200510095461139005337231438610117930642049243696742827375761068248711971528621012567173277427373481641000972278337783770563242004050079442083265380497806516525609584622410446487392420050136005830973317536504537565861881763138560598174522846001151968040899478712839375741649054389592153263633418611142109406159319737801891798531070633835553801344121208041728940441583083556789141660966973267762369687169492945235663795814911785369610802904578932729903890272038858041095175633434943518875723442482048131599386657443181080230969376351138697606092343974886345419332377827375845786312873458278364710212987124155331995374544258931258481052796292979442504912448819008602795285106606014737432990812005791049206844998405719536318389786222846647309537550403292423692989011789213369963000898937733266385992896867934849061520508646652626262506081146994344926884080969859069207570833619403378436050392880026616644427529452052040267264598311781488578924453335847417882951524230222554466329426160004297758124317565103688134613453351780891227481279447791231737181031749217286897832889352051628654311244727104797887332520109581708045131356493225688468636068785654830830870723562204570985790885547442575638966632287302871966094464987399045461618084196415108339098368034749310295753211125684813588431452430276058980602063955320516102744429794325208688660219338851881101818871968644550225586870440462108878439086644794862996293471178623428936515720376563011565074937379595946329038750262149636877185810237455332120374932144606432078131221158716664772650147775488178461288857673948979436508657259790799329066378450951489971696441757508682660450048296486362647913460463894683296682151323575453511979330681973024614477109424693346275028726901039075484541356502702327589610916513336288716347301485111133749380492260042316217758400619950207748945984359483382306876748113082200434499470799300191649172248832838511512248741399917419983725429271971833436426696336713869661783386861252325148534550067296402590304416735565726491285112443563663367094306599217246350272684374617529593703695925522086617504470686943205706787167136291732181812081252531495483615633907213082156674898868453787309178896778900741919222893243380178966948661959412425181661415535885394947069227756108771144411944161782040440587928431529724781691171584514970880581550310366892343684420170282261484190576677896812300545736488884513233137370520036511748708380513456897313019527684956089612234623077867018446414056263144335928902147199712540942500284573168977110769058690380302038374632276688682911357900584888751242324135146559648056740377148554587345582875795579980945593599258917976952541777497378470201602174160949499445852285105225175729370002455527531059920443330536134717498393401447929316440245260831906755907007266474321378022377480476570800722069469751481272555311815570042268372788804981395026369437037291328107005662410238298840352689540405586161115520118458975947147123121817005677926021727867315222732287610756042097252155820654953950276884446599705103772528630455856118405935655443616631582532790155976418082191975701818733990846980125851256568313816262409397234905289763706057751708895000941280725123087238555486300128990207101663761515864069961549190199428307291512801363553870755032200818971907881667767088830168716084975770887790431649349727390053049385863643854336654585938339111266804342472366171318931609970348538064361599201430171285162225859499710430571496126763863145894582720596139457636286460301641727165162718192651310403192385890899711614108208432440378807139071246432418582898597783818029402389832575643113224892039450704505366747882726086351784120997813111146375845113119537974163483128045892005552281259589968394838499153910020226727813925531131207719107770932028254264425610037749925458589913389869836607591554177745370984074732334741693611246273990879586041304292056883655978969344312762855236496956119621794582494617958575098516660309748681248791330485767134416286727127029011320610522429451481087943535553804474926989960800141703458751529935322551437253253274527339452778225779822669159488480543313766520457013633024530792328480374338080112168740425392570827401945208690456992016011881205406524320182934064800339465000476695724699529738393298121035863101657784744767397630686083085046273949462022218127567458813953603081720960324916048722682657325909013138764202743572202689642672796105239071727991564642425222452524002352450057704321147883164476569747314373132520679345874891880931536596924056097178496802573896424446634026077810665210088920921019378207121175025168716888400808610546314194741109439137132191581750846759072658346231804438951193309051533438589072151464231244565214663106611274791871209119351823556872468674883166207310467150396873833306558322984169516603160650478079550397512622042945731898014038117406280573136737292812211101649940256439282406976482190300900133325322763043214293537880476006507353647993098312673074537400396759804541009027373150958039418362742898689477968187665124247595106543270038369957534826882995716029905753019234153925981103777334408812480755577687226141313066182370631981614511901091239774587348552338039508472746409758051668683647971781127333003535378236950617612169178328989822518463864673829946160093076045974065911019200768942602307921606670301638761426130779110913735075688121725374120587162609822121552707156030593797211215362269224648338183241903588533562953101781572987123602676564832347834726733415919003147750079547239543097967294601771820343545461016719869433234223348278110944832138226422984466726384412800318033376883393106113212206515110856614140449402810509566738790235602970614770619128586260742351113388258665587858264794748445571069594128878554257369940563462676068536031726540122630851262056390023699714827683005454135075705907507510881477439866946427470703189845520634593521664847705337283037991912846188269635797056798525582610283447598271537078864719100135742566440572556357908672566932209711368260752680470658138972013893050495755816758378857268808986613306027813118660103794544376969018179961532163627204543145190063859165867133037320893792485891601144007793096325336059850205745684809656491121759268663601589397732834840285218432498134981960019800884476334981204323814206218252350686630331099930278815849815758343796127049445057001635681893827738708532150524571862593570029693382320353464331997594927986549199054278969607214026067360872827664069612383774494926114821487716908161720901296298892736053539285054195542976147893154300212749234442461336485934629173854943136247485829380158465400024784047469635415221835422344961353443034663497457789554205564459064431582691602671390050412538015573425587047519460600052807416691713026004073284591733574291041815265233082776900467727295079121527159304576675431146817697186339697180048667251107042999021860487557207060744945323588680078853039440364988861958429581870857488558702805287780042504593095216330478799328587640916165300660554043726548249373505353377848422889958257380886294944359268329727422591847183236809980456321362397511817033712691033168644535309462476824107416034002731293036619413297077505237458620497384952301223623901253457265069208854803951933333641383144987531070428824502386831790831402745292419762646116262821608693617669191991004238267970598078627294418643577833062832450977126576671462167799412739668539744791775830585735410462883105512548239161323809232051617996292512045271795532394423353638551785989258794681808099763700904836317270507018124999248908698054527595765341971281150813014188098860436423388248247868053000282402789195895713768786773290096557123490713437815537511622234514501221861987403757303351177639265947089625720057813781244589234766144865129579578772796454190088240393988078101122225526951283381431883834993790695475619588358651130969765557245696997201852480955298444450299382353569783880911985186843534761350841238588921988211219505831282915794670638045085986473427602816904802526422269290340535383596170298684619104196745202184830503583364467869268654492151522734817364619031706430605599971188369171797812254793263112290905331789294674231644356211671686829249151455729219794015319053359944196053812263555121490903474002152944196467242430583487438213250571658117053027398331591134697249823341397248534104679998397672031402176747725950050754218045805090199976487912581869862438998171171116249123377423412838196415601557654584235044690045903617311721370587779485293242229695189618803465469206347979902499084179323638680120937643345785807972477226247099172096915323494237118725422670987881222966054670579997410777944833909724588077644364707061766406752528916335770941428239929619588455426792093154092364676679454651406970121272448269992596999624975541823638338808564910264241305505383188442695131715758036639450750884014962014737085912589161739765337142656163905717784030151713231784933585808882245923025968695830209652288955872380773053528901154126886434327733013547923400882052764151247005079615543070844975772814605609413041611133860974876761662477619087863196870692299035614722922265613633339457809296451324403711232168725727794052058297246296628789610298033637134106642800653464046064631215842678767062802336301329885709722385190512788017107874961999576039171839055588697284911809492703615428784439048015954715938358207274472816483956100994076796958122256757683161770352492288775379555227338958309327631968308611081311355936057642617933139525121706804141728579941204911150537101835854659980781962735176076702884235981469272757635463748297218025828257964703318288147338911489913683318973490706023989208726386153359961805127241009276066402075366451823655905655200696664360694307036607523040601385799697289758821764583145103931291244522859645233501502591717220913998538224428728820652061573912846730739364319605554499053292527588930818103088897033818224789386736738276616407776449107704246673690603041917446284078846892055004319024730050511399723685263063457141302959000217722065814039366941645567295838875345110760800710946308435966976152474411269527698521825022031355437882293428138589460590990790245274198380219743904487318802546886112522882871018825731674961712775326610741197139726365832416560911876672532455839411706597497594985770249952133961105548850990636825338703200810984112979745228216497735299998680904674491827642742057470980680577975631389656477198238329746623788027025945478693286198524481704901068854713966426925767874923752726077618002873137588297291173963081794446453051507983028764716732061147701118872171290097298912165224585629005542872213724890820974497917402100471213576091788988055675748080352359171821265486600906233828171898242049287182909516553862287697662899660326048870484866612726559603986444382076036114971957201004323595740487396588858341141751435588712877599153614297987905357702482642886352310985036482925824606665140164612670138609421492536630703376723353977548042533194978285857747869307512711872414407408354695414149413603422518379544180737811489708354962740716039205277972474427463789818726972666054513332346938382909640665231928842264357097748779344094020238627077711760679118998471521431790475190398943365253213635259737441101806846611591350486274491462730176034928195589889268490185081859929894821072305542155239543841919462488995187635289098878718591428689465499256873843496664806119035782984586171184199929390480810063073230774610130422158348776015708421195376007146229729140089350553360878050819199794287175083285546589609959005094397944258653328531715868078210539543385486117596069181948178937286090694833429922075377220680637762075739072609230024566034577583293791062237905942961640712621137585764501651074386305269766774071378209611124745465105103619306343347913364119184504651755493304734955880854117312898016527784475127934352626222684257358416494365712169256532594833304850018466695704355570352528516424728714975287174515172098782889979490987982712622668028784702380768215131614505108722088529690863233314046462394255816694702498584562537257075947609861264232332262392172892354320908002945456814422478730317128265014077003310699713549385085681131883244439925158239415178195442640728939726749375301221819245252992340379482315320062505726860378697958538704777299198189205382809174568469893744971508843109753998958865473575818127733328702811068953699360262384896201930993660854269966545760895993536855021128419281094013410023066500863585125028510442322203494628018067632143895413035422865701869087588406092980236267920715736853508511958879366697404650939044402606157985251351526199491251235317158368904370208654346828436738941826973086937909305967004903934715170979769447010431044932095788675577513972347054224833472806999201923234392241253997913176285925987729694844063042154993562937825410882303782042669658635505673259841774288265380643226331736469708080322639410904587940404056572466279638110630195144006564088260296138658871821720176599282197124859998552843894524413998441232476236397040700950717895243400377729554336847449523617103124443829309296928311990397418142277742964350512753321955086238968919800963210786862785094343837430542256769451490985976745112724593549370171661365072794312322844582745282277065925444557323071390302903035643015203354761330462548807400563893951252984223701653188624988270113160840190748436074280699158139417971859376189265703973931524923670936427683215524115674838359910387877445065428241666153631754957581027613489084703702222200135445318524655179121635838213540928047127800662113113578422902749775935241164011079067289500424496896627942580396558072720515627374305264750661737627175850085216758295062861975207345308735863300311021995656945938335910451048833584737795887251126020928675821196797188525124788827816045448847041603758074306189423234413131601307002384987234526368268068706487831934842235326719085094685745330407302230763861424567237902353647580230108590932766829570367639398284835373102241815411855053907727033137048321569302579094118921074734082350264949421793360407039102072948643407231144902669514505006226247351646926995790886254360680832706797892165936401554046925094910148031436187269446761951954297223970552637563799427928060267950700253884580220416297658191730006516985341742676215030288545751933621238874904736736314399097923749263739608989515478380800310403071779825983276517378048346736593764486914448872668317270009308197507019076787442485662615592454811583055101848529419775613388203554071541238272207214623089414634616951115329075225397415429307035565734639906300160573762007081070816941131397510806439200338836206836034813872147930393832107270373682217104901980335513124294444494514417380929694794810602082429600072619857117062268192720759104755111941183535570664271407561073990947181503038121569728435070920773826497541128901524544113191104877795910123003577899781074115268871069770409943374325909383496650786745853768172611298298721553691046623172310531469569794862102685937007597911755739746974650824873084069311417645790242499204965494505043921037325507093020207951323455463548603323956638817203246728431458813671271046403944708901339390361680775694791810663203047767640565184900786517019451617864663339334621660059123123827122345538826272762377072142823447140945172337365381882631367197730675486425710126580574649222820219458573604827344294094257049577101628165932576148034814784286615090092598770941554230276129523207746566527207578938688387173345553688678819544977464906919688757327084495530387358588618279983998625929649772091862639439053468810854725198528874183518880477363414921561785370182032397126967888877243727481336135140959118405056133965602363487240048210612057720060397555764839896379046719820518522601534717621655169465407241376584602163180185861165911994353497387384051830258911759906446556280153473425951078441278464034827042084621914782897476873160483237315917576080336690668675303534941890621019775879950991722011653097476007784136344559752010197439267791737388799949000758231418814525844735044117526467795526989762216766554060424469126819213758144645139488923525635086745118108647226843672348464944600747236537400025600331929400979529522441201882624066187018323073176563510316666512828846987773330772427154986163749556545305991241851120923534759453561395741280362714442600341375090279494515861440691827348114360636988551301203069210084660111076308472116227142443075402573966118764904840388809726842998341552876975601778720280416749744546609430385560385417523240094974406862581108469968988988145417600866384880283358244868325656654382673836817814310372493664817290913856497256189324136038734674701819585080335930849397825156741483882389221795636495915009480155620791958032573260132538217415000626754888033734984765750165503445820213740652821889691934340540197957001500363151021058649505050757797867044089202659467314779980697696529245491037003241783296463420255013375292079469742490788354501169658272854382741964891967977066719190749336976270354407678593434781833082668419216908741775556179196717997756052351910843297243895763421702474778743848609643338810527098055504078266615277716542293564925670706702384295521189801003152675211036769292555309248168415201578556684296002487299322179190405419088800942664022352381732435833948201708636736857536633364797404425618849671571122669624854751859310774105265874783430506596118579560099371709130707047262939812987238545079754131692177191600342184567935146547502067697556149796363526915074693970558061324332051655270996064091654509241028397099208714906416060992625350239933502177497651738168660903737155448790837118979663840143869887951713108736367553285683487158531211890764576874471846285950696011054599014249804303047544218455084335725938358854963052779159414830693937595194713541378239362851300585982061505778803936020859905408215401588974587309226884007223949107234257765136165644121047632759224296935208742082281771957187655386180160616139044996145710472491617859808578530668269850744663977131997620154591306355455818049271388961535814891044955879556182218763491922299176183371572610808168079423496449576598087936641565971156870703320742249186248655170882544734991410857806451154844190556215251464656313824552500450240260800669043044794449871158692464215517408470956476194017522128380412059810916931775007873563755757337474912102599157503298671029221749310035947128278267573238421298558001837383890389668142956591192596522654326542599898145881678267239021395257735805875427544683376683820406327034088330035807558112975285917761440242972590587774612642508367496741805327160243069532337923513450308076479791424841950717235265656314732476212070650484449132940210404107889815536046382679274189141314509246277166825376278220013179322719944833629323248236587479349119436881782836238515443445962547529396697709372668941568866421417134943898628506333493462481921241628998429900819993315151577345125246844654223167577890806927530256127150802979022250519588943904539391524856675739730451511724316269520163388116698678484791332407534938243199626705652997107135187939062613847111291481119685704832041100536215614656550879403266400752986681088389030360295543307215104101998819170191498412904573066338549342046490471165024794823621255562156141460415421112569969889579162323490601069045471642275893525592468614522915428497669028392294065939377379267948628301659046700251363681191531101979783356029309846968315987483418207765274517181471945269666004859986696636405318882755012112178170583390864903025480545221639094566717026035169565383543794623765342057176267225830586792295975119994793310305115681053542522524592736762491547646624080622129350185106820390374774735569189843758754334151576144887402295811563394025978446627053293515614072442385123702270198870936005699662565492826723718263712312707235523211213817182175872153882771974594543606847789821808033555627572280587033240324668651845316109591969802639618959586824254962227373699027685899997797017177923337696545370387971378688156961036008491475994367076285465994219609561404357694419225868920185287351194810473512175126301139533407758635712928781618769200194438233166004394101779969073842948545322234167744555204833782309500243423288277455536624382986227415744804410837753659562384603677193954045088406634053351596363187678196889303171550276912214835379660535487376234841235753815099405033504217786992987349668747151992475869436775454499322134089743541967148515186432345240990011103371296770595471844141032685593925037965922680199058728051261624206202306954432428165011128355254241406360147731171966595448135137758327661763918965632443410331801488507482546581648464109929396904662204163892973239731729575970381287375516497605191032286793538545619541229251731373695883632698874637243887357855955100017206668950117700366547116913481433650950819775573146369480010178143364307985261212137694447791824971763799406605991722039026151651767511549956995336609488212262060853379951135577047868057843166445909169636149814756590417831753880906400072801360845131134832763802944013288323930996263429126014227237791873006547005654749176704818188692424788143914753443165071193253388488458705417124618833848388336929939146088589294455996907381684921676980779236986904270959624510936034549734638312851575996166274631508048896383727286773605080500454522541956084598862601186445937088862620423904690290282445635034121731071392821689411482839219488293388363841963407205679789975991592745305233196424024703007170554702790302382080936387034698839808843675001646699528401639547766902266845044263124928909357155560041524543673919046220903564757070614203148846309456485526386441745454727275349007495837858839805938056017715025705107321697118368191439999930255823684276803704241976032537925272330068893395626044542953639630144465547439447118136742909831284031378409672838972011613237610194978142332028015110249841018393265086554742762700279724773924193015547378167556320537648458516551657474815638035011938040041878524822388593125393037648665411874711638217463311291185709165645154733355184445659315780087017796710180267975144664767396774551533047437920498794948299621215121686334690099933326119572259181040367990384472557873606719088891929214543984257718643504429243645175190314564843252563094773875333397288296021939026017088269947146647696248537686921728761424290383177138678677491018087742324254172828942260739596852125244535132702511941025410190616846953415697967998705501288841117947795400070071540383934539983060553915993822373059921781849541020540714166497685837356852841619811189631277088885747944165706037037694989050117947909621164654848566255272619507733008841849420801072949823242323193828328158672662876674813744261501987905481225597761475349425758416747161149012144774841210777397797592974266368143898801636780402592219720147012979698041821183353408628288665880026921857187731741240248874888649070488033463935937939677679025558247349589264048167420863173690542699608910374787986631524077035966611529964478523499816869944882148557047928359697796511483667748288219865745658377328476646185040798984481560326100447116001157212465382272423297785135163879992712222302925499308484533630197822403085206370825960871973831801452744318622920250005760388127527602461018341725842508335562244038357343182389821834835074584568223479250309678491884095692672469515632525040185858872199617098875368154805042203607053557031471144704145590960791325562106572552100519638645211317745831863989769738525983068146959766934383219063418049150168173086169781964589925190830237019660855352048935018207911642842705291981475130186611267240430764195138130422162738953342439978241668105728404752448316204109672515765742595535562657307300001740535244703639804787482499704294435262211814960769873015135168628907215284854664457558790433989299061625575222901390073279896570742199823215348428278527407542163295984725453344012305500641730702637776146256955022700869187640716028826447253328353036585666619425370043723633307607932566794617129968812117509959348071904051282221499996833985879713942655551613661691793432962432232694331299909238867600066822711234218674430582694092798835927007235842555694438472636549724087308793339892626432762198652175892011786611325944803040394258489689415509027571928470805306720307913853754657231966038796604684908145670008004241657537619731492048284814476414675954785730573550309189203621248942836117761671532864121035738924090803032085921234239364174815127644085260482483489798850986247294239696715298188423725222864615917827710036125571831240027433804302864454817306003547949398804184811117474745161503409299283532053845934084795591260106597181690454174588658135128239597636081377029680950812320275860147375918764729059343385058750447621960631926410765696988869539042326159913199910355065060521150983279519060707183944576354045507058137531115329997319337281325321668721964090888937148895042933691819298763340619109483309956157489493795298104429845835070050482235921080755072558236460709253405223314073185243467730139399530077696407559494258632066105155750865234864226671842405123007393201703207485897229879159893284325528049290890628523741932348457777105264585904361515884256207116166530095335787353942796682705493868332654619995323018887554268622391596282371357878699904877048743681766527384278571392934708509378715030779036752038438902304593792686203216021029697959112380587638721216550306792062406117511493520749054443448090926990794477444929566404512476719074463775428124623761004107468731621204125155570600938871067904466198476469175760165599417865463101357764020617777237409185664162579353130098281046232934698319285998295606482766756100092927100287682839517912768821841443800890367817570821698045027694908255246801331556544630748995799327544635533328505809378099713722747718341469244533220810796382206373789719981486057860945769721246817047075063215025035624116872117351075384684535531031830601520977698902704955469601214263100607591401163639128337736870277297376697064889504422277034329311759172331491290857458949806086658276063618772275592501616400977024335947293260815537369427365781718394352776033921120962637815140993823678045516413294202239215491837241674534937400449819258144187382686559741542583905309346646692387399955230928761076430319864126203078981562951841384727052058701360612845542376286150134657919278716968560226199577115860352721520210515538549106224135588396888958977566127531473485460477060785033133646178895548811785435644624254629225866144259377514204438200150896918155881430709774369889493097264741340998347808713358583950164883579779292424522179555120118561305360264859320451467127976449284448106673848375145839587369940378893980256697383732736011110666503843497463117333119031916111224689042158871063301176473726091975001473201930879171700788646824670859137334889285213849779722139301072817387698311159053321738415739850338663583950311415603902687165414447489972280413309906992328145575162164442425425659015717448147094817493306875504472278632937748848771177180362907777424627049755351551488430129615589236952920857797467130160174295351468928379382438776287327651420452771813463005015693308196671039445951141716343810368630721243149341330239261965880344499295055356916051667343836757323865115163090831831099121693339133855626846635231544629193438281252980274057949752433283683184995179347051699421067569643851639459203496914133683738323976983789174532897640853851018521898494810662288891554079191274888608987684453375084336727515771274690033810259749576286751563677429692469497512736887285299537293679065204883930384968945623214502024883808508310806103504680936155929082537603325166531008602307911133682685171006508306767393076674771825670323904685308123835631952933775524185264373818792209612860472114109439916000194146957227717446692103033742139840226918298587641652161076541013774294741488787496534193095714208475445192223040485249170934539149515246327169888913014122276988047094099530623807897332820812032268348999954208319597106791513094803365740211774702816182845847063447079853250810328198914497735931232438294072209231682207120211476614535861552249323368328670167444195477287906783556220073446955852172932730781874389974163674650432844926271784791961379103037391196684083941342378873140991192094920104967000928555235629319933689920158404036250633042544293360663624295818775680313109713037667373269133739415978685690479315915247070051791299381233901924986316705161053637688382226662113866550277954113749980930193656685636845488515898240304204678287297817316907339477707148520968309476606459440701241518729275876773087913917606959450410847368305570736604739499597925155915207622879540508803412968914270145502595644394739350177258218922222206385368796481536569846624996390846294930118767356720362148879969396162791835977947116445190389502688440523793481780450205302541282192321457955193208301667321739325196530488224452373211188126342420676023548709807632108975640575438082916540246742042484530131085040933500671839888812464954759006073476357714130066157166563802644037969844334362605958582298340593562495743342016180119998507580342916654802981569484088175465907485380485582407524962112585094987987255304258887029694772968430002724802679620518686660716593673734525135073655538643588091114492742512900542573521050862457901283297317317845354217599800929014077128119198321810758966059105624963080543965224254139050546464112097007539189846001104056695331776646035032909926367471775021267478819297562895452646042063403095202396718733795997409006279687289695539454689386736679585683491071840762633265228555842227138734161661743774004066132192384904649378241746550288205060871869550586315173933591609602432517866705396799352755302424146954201873793847954722018719991778038542483252735891244051368888592364279442844199476779855679342565984359959822044355532643353166049554205611691340742449584318060062098518835429225470841629173424179265490394407450469582582272815759359407156728849744300038249777451590554072716981441304521963567275429026132440190106676662402976250581090069090742937688557280812427170219492435954667605526393874962252309918766312254167482343329675991845499090897472733369511290544012281683382438738854527520238365264842268037683230606124209144837698631397016115963866020548271511674180078039912029758091178841166980310620561613700972290963265955103238925426988463373730839175494952006424750593069902595741260517722341387462301536223350363410024611037978665925658228123780672697379012632360625322796318516484328974242774175645156133972535316107248872797507577561405104982056906506065074783453954854771922559056063219434324670587589870413991999584090028521332854288814640699832307152283472478832179493950023025980680136975865314341120339196807026218831561591231929898554043443606735550591184489261997819982413271188853098524040985104621566035896800972547591168559145569068964117602882558150817562188682561061902180203559718973913608546092144519548436503289873376024879438747626451962170828039710035355153106621913545201539373941851647251134326812693068123095175478833802900001803331722741260206239310263262976339073722352264699929298641913731799489862658814440117970154669886695177545360532217291756338560900589873114322556836678882744303130561887008790551476290270510577858680047567303042018937377245799927040280924203120124578538077326552044343424324652481185169055171439079204254078076126171324385017295597954859323748598482407500920848185231401832096960779131153325114527493340421161185199611450471818552531340606489554144667329137543605449301831181149013289443150018216871062982402910097619194387809359202419387514450496977550935969320294205971159334178660106415923820994451192963207793696528825316136665876887188883943200313889522926264661137753126941838761235665914931680555341853228178210889441372452636577950855653177260522413120693403871189100763859668452445368765935710294242584345753424122340775011978926943444718840864045824683765999624942475384475866713111356747031933764859986794431148430426682228510157432702715990192875945750398659927715662161914438064388091611462067622184281465166063555452283419831136446988606111431166928669711849407122509540292216079937717023082871739432201099410892277706448591798663139153025538416582248737652506954026741285312024815198722982547221847100482837147880896628049736631645081634821309487255961279994584983063860344437099329197272168900787512361031930472963240268858479111107978819816153884663399059752964748370639601579442454158092956212623761478275092191905729700550508897712273101564323533338503425883343631117753983585193754785657861839233384732738974258793154043072307711249798271199513475161207034977141857337530373282923180205836396171065574952435548538385484074896114619414362132191436548496596164309018613369471268276886891674812613033876498437934863864694556510005463551261582427469390737431168431227898298011355547942696013402366629680279957976172001648235990564527434558873203051797070921392424144850608044061710113369112728851005221441071462718305129293502919206473937250589362488122411569417522494562272191931297422218725748672411322513065493885101833973615121825068462626942610659016263050682744099653948264983225996668961076202509453073360157244060746049092249651288318117251602118667325130777207320673317044574846249483451101735634631823875019530969749858548976196822173434934438035127022806946637862701963587573014635350091633158101839534182373339703738051903518857521903784372497638152200256649735882705094365824473883355269884160061921210890907068331164034002194762406239283733850714242616559350367957147145165461140978414803909507597360166981935851815954807985638649951661732493091988032683329428972886367596766109402703590540307109282162334511618877387366245827043403354972568492437348916246166078278248279186236669686909564752822044892435957300488537030736824893816884181491323609070339270128663007040334309488451336274022795110356858172955984455378494291771306040796707603828042790743703900521160273218911050677264000725870456861615986049965529380181723734971668373558915409774523940092488585870167158536697073244163415029781316065350837349643095661122994361980311673519625441674459615026399900683115883874992104072856898045359669827650549489041727693829093246907132533889470360119290767722942373883805623307601068323052187595405859769330603794016579239779093643082509286548553969871858215183586543814420133521284687447137049817973744477404031890371422846977486304003617740475518840703673468315175153420060565677728296421087202132954826012307027762399114927876143427777682137659421536881781577207697464114201162156811685202725608159871477145388415134186808715650659165378210758524745530635636241032951028502738233344010306021375819245365719461875272119449361425936076461820071240946744800977062934197238014545606350621433361251278239928868667526932790786408625010250667009253256958239996301053796577559615280991531495397363131142580391391092225725107652255788006711203008153195735166696504160386614162575099035407690670636103199357883128338032005464522643473675719905853425256291742879127025159504875348655233258823880016214985846540271114195723939791604933373699476833885115109724044386368216306194888208222907501397995594747455227206775351296779760156837624402357663675746866897518360357174555722981797223054851076098392601413260345969927872357843022333546541254000549884418057511503935574025417240392737092242181240431303819645876171804674868837472170092454876375638007586606053697529038539269505538349238936163255333702032875796302570994787928414974273434950047616235104743074244730217671017162784751880091503064970578233607942000992402994881528943315301277627999249908451487922230725283031569096733684424284388116127297388860575063986129835546338369353368355561085281698003429511480380380105121603991040859369357625879651347438454957656572575526175990757588583387391918015691539678375576877966301050155454559726566358871032809839659839847221292995991642313110027656761863364732684807273162652428880154131310418524002167438767083484034098718171923609233864756453612833047631540880793724916945694758669152157794405853170682182396320250048209920384066831154302117364001087186372423481004288169815523555024317609321729705379019601510743610056255095590809402679538780057718846114514224672942357670689821945926915654525947454710824778842393309335211538374165266828003738397369078616286292515584901324660800854222296815689586581759963086971171738706843689806176031030576989702533559206866080876552423888269862602584367993798277590359847646325445632344078474257424774901282426173716171971483144479026833774508788414234496116684465376177468225001038372656964164506165571221227364779849163956190222245586948358713191549657175812500280658351777857215557499466178227658101341086737797768459571467050739186967904277281993113652367649154880980995085245668656628255669957748089557943207371179553341976912230793334707610159824537839947737909261700678455674852059766722228197027565365561732015502217194882614272501624356237202416147739224328488193735502472518060694040923874814685582006650963125027103865368765782656958363369315363153049508875359332006956642026624479863809835913548398802445392737151385482469511416075083186899333807541747906530280969009291119530369322341414479853727640831271038969676344842596547415258279353499529620874419314781517508598290299143475085989255739339201953928672451471730739421751401473995601156557478529704129722750629292874279355100119364713741831399075977157510157513950460641577562469596114213152572315101600958142983618117769965559951230103128279682037646107942935225274495697191006416024027788782303590627206934124736339489965411206111114278096208581260381701756295753280074265531759449612835051708393819041758641424377432003192710759223821113684190184485175097071464740051898005448324857050555156761320111052392380471481337105160585945983358867691171025969367123184930683873038556577419575779988265711017149038817454952899237102323317499000528096633134646920578178550045373792681346231319786829987644254422593226665180672496930989271348219680661054883960282263270028587647370230134981841047194761798577771027905619296331511916268087928002897530619234558099899296390489346428596347608789758388972713221902028336220151508707207541127331508655024182352440141503381658296258879622462085529269552454459274746529080592284469042251674228036938714146783924594104824132766702554708693319848385815993227781945529862913690658576422895131982412256120916938797826290676825743493872645843684620105262410557682087915419676809903397992147376805627078217198590802093753214218158064309151497279033834592853667662434343952889037753750943770387483112081638260736597631149079027226400450409679601227412884477569956222512204164181502960187349085266961541193873180757747165720314622172669260328048398751397070909151025224224066005498076226686816580755778220820371349460036736663067881328821616248466711622810887608993737058380769281346428499829288733874149327287549866938554579669480515318015760697113752183573769016487783315394432034381087534754296063186501626341431673155049620832690065188689186915270627276962934327124535070111672819128633604720382506837098965451503191645869244708567527094473723703984288752369797634932548461915153966257994988767063722913298893595392727252977789816264599133006353021896023058987559869406548753306453625138279573514952024741407260771276271581638079650643701105216125804501303942415827907366678288082677371671831710143496268722050504898382716089745299515358823596212231067504704192942836178327130952550902294450420323996920466021483652311175267811436730245048019625034273786938124105748035153969459320663889344630910203858575203557784466940052535544031138387912326114528477806053806634066228069446746121130474157096073513094082826115015897736172603912796165025338221531010137289476745457304553808056177087515934803079694888037807773232880659248605921000859979778824552010158235082520712686347933513288487111720778068212270606355115931990639187160534122674480884534376857590789984799384447612737955619488864370916895651211931694396725448604189537929370948358150620017344014316160172019266841341445733612064005263680873547990219867057697276710613591317389381076904529988337330721078790563366386450366243562338686002239276377048400387841780963276677076293699284837268119978931377506122612797021056579543129097427164273149663821046798114541097955038987239909244021140355230235490631049029134934269384997533399057359442471120141901837289695820107056622493570673091751650073777345943686201627058519233268667598382400193203487466899954964199618634041199825537801248003144354464012151057472878507593381310947234655847690477008163175373465900946473278084125385931673801948086532075042645793843979227334233904404723726897178139791758132417797338361970109929948175447699897766592041559700410012251273160742669547602625871932207106105173800129312890982877585063804176126670821048642488319706391720600755788110053548783436966876441420647837361987597906191816288618366677942992706768666089205592111021773316903785024823207781659378848982358158128817758578909237507769661230931786269069366340925000029340472072557898559521352065840792011362495354130227657606385735093111014483301990582654723802934053570080924619709679343772108460438649899430538055246688473600208472826782468181457444867335901999916673912053510186952823105385602118392318190044802375887494896846698840373822998086783802099301426337046931149135185452495604898284172766950372339313935986394190364101293463791233746180827812478774222463121625865248378101763465845790590074044175139385328872474398463963441825613486388735094569522515609748397316177975903389031352690334381231681180675432033892696158800634913564698222675729000636798658532901571845643285050483893408838955582474193621457608001167940266180058237809181162871550165660359805250854728607092526619124483848627113630804315288775506760131378702914386012454144010878277189678499740812669466311378320175314094733689714183336710756910401312850165949371439038739177388138212560581862925527240741166253508403513354224383121236233705331313333506878706960333385200644836620437484315191626765424856299254031590086194763211634129673152783608954145361949647234976629695299661076274582125009794107325137333445192738799882250701047696890840387220651009140277275435944633786388037051858449070749528143648244416999591300056555560477225902922454414232515328651524275053346888612680443701458240536448796814542697324051007403220445699257806033315567475966725430550343481067408901970603380884295993713998571822285928112963313762256585599060483736471940140820701074053145322890797566988097956387559863408577546988212534461574460915182554766678043175253676764365860936356767927729772340348022074321089587517750340339186203435905084084821276734059083127158253852406286751427656467898676213647650845487217448009674307740171927014410266257591592267849822112146778672322736103436147461605286117381376716975401662363661581146895161560470847988408611544810039928018035980231893155018105142044148575758786246004142761884461058733567755752664410574553757345052230793004837165921785377975144825162268962631285171055041789266398955142330972169185723086370371262896998485058585662487489300562769565701414225686862586499190388320247012000380511478642275564948166331812665142505324437684441477947114813158406300332100825476829754943719824267146136921156746452037844792524056715613410744353801583826075363334395453664847644121725381640265550691726567354654883781269266735667746587631387685058924954376328996723217934077996685759352502467329971792487694658027673043687660058580176732632541034252866308385599768048816450474985295107902982581041455844275629138897656565193978393080044726325115190987085418903634770750904475823813725242668665844561593639448738250122262273656198989089335406420721766311839307262264118948816559956510973884576772747461725397360954567043364695480672153392641372729348949760015131052066835993418719428812257070788629413208356483138171214149609811411893349777913007852134078704267405893827118874563147434774967753481941953171777804908328970634636220740416706159486483331582249846135196013138969707633861757385993033751955634151208865304651920212315564370613857061898598161446992370628465827029797093658994283777158589987314230147037205449099936799454823667988639672338276096283453014442593566573496062741423765074620343535340074514118920538782635815250415231789659483535614633541356732166717596034274702458383885904150629334074392405260406537449891976687535875351569233595656560745462710510782441294193076501955821909422371484707894229568827137856688002937848292563793081660798979258323661433668722202212134225619986581585031365841599514458230146122673241665281184397599523857925733394435184965263156391640667304266277518280832137402987299482410962412797972718141435529254283824439306155259560783360883149918671744613155290222365805638397149689033177084831964785013376821281497797736346303271646263185887920274877586089542775981920902127752643172223776459080156657570829116804113696340383797673052597773973204406566681406310581328599026796293009015079668433003477373568427592384275843424050880202151448320512665236792123176816561751212523603598862378210116403281632736181521804423072267157450351447693481983406755144590751639639540126043601058056683226376347061639926960979458010929046186780580891703045316135639762940205507718417560853403628926905373241667790800608005150850548829342330235844684986108231610696051804656490507699618018574059215760530259722041534308372383638174098557080283534945642256154982319432268993099924425018373155220122165219985074042501012645434788373531601941425544351887266712148555427392502849921482750798228551449820796816625667555724085664370368190317180513979106726936624092270408630366032784611274891033002189154043010858488158551332853373971790838624922840024282742098788289003916932609202482502473481871337943672470481809536289130497085553696120557144798193317029203027140557222500190159192133735424498184017311370169041807453542559023409455961468587442802352031167662566867312288171370184586281373869078313450062794721258374674470440210883209284443653375397719837755117638837231864894616147062118618771777717558543334815241092247540445628204186702358467157983802609912751896457329075141445620174923952207140667227517070415757855916065899425774167134589486894655179652177590099407164806381592563182731491138127451999503030278234739798147426551770942402889750082378510989578979474246869894391629838168091743127406958040226219955083819815682169772709374372040159235467821429906748454870721830317735873099759527115499036795272529163460329838242738851138671448937458049997538281328723047788279212251011178533286567194867099804408645194995685290202048582329012442491275725206484516606835900495434929206383212330895483336402931478636689783387655106829133498624944177331969611865563554421712854018772812470255001869198892930038807223760152170827862141654940259202760249764809038337822577365404377865070427203160168536755189482730028205391936808664012146465614161394721884174744979808374219754695502954993868019153092180868766803858243094805539379413404971421799534383899293402490463608573819065736210244034138730380913045336333506013437441642105219399269773263973996380361971595318728103740130321573483796596078816638197852822938670432420158122807212265034215054046253569509627137681039887878627903758724691628259070063150298348753790612173487241856276672746083711016868762593342034818453897571510085036591597435375264731391766012062242588186831890419109036905498469257793902247403928609062817428431753917770552533792434342440328865134510613266807043524598069873301499402773969696315375669907753162038013977903542563143074164638100293780632383364509776655973945296671469928828637607434770180400852590765957587028212890498057463288299637834452560913926214781265532679890378523334859074651798562199611745004677570325026187628025157723184876763402000651945333309046647137384781398083714366942840547099720373156016652701016777531392170612283660784459129307073260573271545464377061033903560156123709867494017796623730870900675460231891622421158527328833387536569240335553818702532387422034775683730603362451688395663187272100085560525795914228731556213023906781978814398180480735560182195057229341584967197185822184591353616625515505379033603269499558226799139302049619700764657563075538327756832742144324302953657681052615999083112284619494195225664655006946824565139575743800093117409663412309364504381285805167540833852371878741461521295336225365636686392734398254743826899561624281459560320497962209545594212296021782277091548381465948474596732321899098147942796241755275122139961558468528988745248839019525233390135743235128190192821848206600653860072096630091891160128331832023509523895636745720324055864344734280145664361400205374308275915890421188492066169267204530002870875858768141327155313295153071887815213821151635352105601618527283177362588703240079503438315301645876667731954386399343984576292788228548712961514058135176375819609607494477835532685879416592909921170401241456372251673314624140121785393835516640529213855993276544875928758703747901838872685282260449586134350184121163786449333984064411881446588131082574457972574480964206842681334564572724766783355848480700323337333323289716635094548425940467807224397004353674902058448119959939193011493084242284847960629684449123117069899718214356020770988186974753660251885282127931596634988155461061092155924090965078856688828074329807597043426333154953669779238501479428483347900075316278568096534502048752721980621514662898608776249108616857860238213844450431952126918352258605484188208881466395862042365030923294365923923223683674936095028059273684496435223160796513995030928870225075137005918402610403293363349566405252457715258363943148218473565069226010446181989154005730817717641993750475122941589082671276893107017604673288829633768247591594592343043926753772179070739528294309591986875293073704749702056424648943872215150082993764285128475751081170989278391519267374022369500956221904103432199735562131739488939635507825309510721076861072951060412713533902795714247812829230288068902338958332805632553655997761042314537840282310617037330913480801924184613274005826995639051259958173711400769590281836660905010414206971451329347234545294530504554087378722320398798154075120057739268277529897973782857052156899102451361366520379670356229972368713049027546577409051640681306759233702833204898054492552316763238490778065563979230896204718686607484827564844087747349082168757734458892233400526945656898901090594200754743695338520903292640282318551798842689230321288286038231165141623606252230979263990446829321386462880315418501881375139809152269118736167124374500070014354440491007005282457788398247375054923839590189918668161523538556049998806966561001826563960273348094201723252618667253175676952217010956619466082485696390315203966658254462914356124919611076331847326458479701906774927224734376719980566810156879564076040772877109598626982317499387796383911644973737565855295734011883033683656344935996632421283954690771047962650826429271358693810748608232271322759016639894985064469715693874174586926931693736712841760456663253130414543229687948116149018414547400886848599172371895053293278415516016683697669211733682304244648251538691193527733764335639477405736046201908655280804477186588219436291801298835409836868974273527133731690664635056206000595466364739171701802872618200236944821911966796991860486375136613013879373519111174538044072813070809565642382189675816247037781588036135790094693291642622639796717700225656324771791637599382924546476194501152039123673261869742509508068361758346241801964672001567628906515658205612171753148642964779942007670793975515512834739122552385936300949442311642370194591688504702098555256447133464118345064688284007908332806506105815847253786526790744351531883515903725663941891769576700807903356645780157044253702297675094490752788992190304121645027246954466219828243369274885201952693035667532955571264203424054221547885163765040667936622752825876726497068532549839371642941327398635686471753721546984878372057251628002602515352920175774021112857048878968695878432348014108472158632698128839354299635349074217057885401932128474897371866486493786815778109288249826765794931837408987892059855871458023157322267165190143880559118799580291279022900197548631707341979098581944779511800470708453165037773211638562938169241921301477025689028724923327311208782756296604956859280491128861943628936948312218004856655834713667238664509174340367467232171011193239014435639926346275268785407137377931321628950026641110991579462913512152445432047382762195451143552044458230621712589038799113685144232022265662842042921128363414426923002731780873963900591290226250881535772276626962558604060777003290373016268060567296741083464643982657745647015984698575337738485020650374970618739063075975117036700636564049284079305348857292452250161569449881945597226853577707770564963964760654531789799553885012811743107065846858170799083217767191029650478903498083734796078161275304026050856062155483988599275759233619665712381745909060027616514632286677235507432628766010671459725274887136441731739475355762566195527538645806867948518618530348982456312725776865532680065968948651346030790651487051956738653962748916188930083393037963212566391233869753187631425454770086354779576964642843451503013937903396134965788136179208711448003331783054826788854731745168429918112987401499130035266340429203738900675778208508404169036403707224928620309141602043282522811351166131075517367598705791929963133077076211523259637155238009530907717599436245467646832740642190861306134654713112387648785327061523056776776081163092745828353015176868139266490722409631374400661057126393488787327461496269552572094521365236581601664716449219509363639689898050127546568954883708208258108929935721165463237733700840918697078680613958180741664565066361099359268016375663642592349510525993491885566426915691474427511281427856302070695531902976722644037990340546030396621824952056654506613554958244959838560410741676384766704134307832324995264099317505009826074625450825844350228980883805920982635094702688794531529729739468519774787570828144112143777385960203911642105286866355521398909524498164063201126813073710526405221443227981455246107932652698651333965103502562974965313233688729570076509952307510159141718133629737757202001813098875327242894821890987874418003040683072622382272549656963178033328212863410456876292940010466627763864919894876588351578159703624881139138104290280067324000214608551140607596261673838916841548462651344451197834515392657348047631840108124353433156338353641303103827417222327105749406015869482948913658669957692953543024951900241106719715467076375408302766259819261851708159822072166900669395632418737671023073749869555429443747286901769165592775363317289917054371872099243124852613534475567203119862819901134597467307889940727474613170767129402395621636714568391271825757717116255846048651795583055197429891513979531997981664555190102537834243729260411851215597450635089548608969963117020518566205934887092521858547378040103242917535693959239868428848569265548005755079189333069863297280954728364338115989195394943604138700372109428041845602661904421537944683335642181305527055985217257469030632972307099245409989407525503416038024675724998670087100678874276487701698761572203835066777286184618487183378881283566664232235475213269322979896517668842613327164063368513453463407640247445149112559995093195302162214303868240430836778843682837948531603730209392964927610821859908987677517210317100640399735219708479528377629145932292655279095804444643467732941630892421895117026755986192335520582473562983882591678328871363529056161447889123971535070680019851726943234773907145090850879331825851403559566006157691539460620084292908403953801868625710506709292515193853708091977228452066345914298994872429038183527138774938281724762515021343617670038054111942399970456520895986879877781408817490350140297714609553201302811271897734151542313671869745594999102274950468172379671966990040548509869012347965426910071121725774354117539074888120748205860805847184216990051633067294321705832401837915427853523148552639557987328518450490243443750514239266665589957295831277665484945724884545714173360999869233806187382807545903794451689918675897826379985460673800662829133407013929887692567977507064694572378563782578148065701238414068139701315920089265223576549990347521071120800843180928803333040301851616303659298216726100772505739437665323792754022468725426972441628809545864349265656334479404578329674855969036090118875601655407899946245961846159456352052774136160289983088136860734306951310137428839861008148851196194898649080631580333392139966515212457718135838512094529719868037091597595724400498440211524454167203138584402082269297677790251749585448121969101238037878995122484408794032840319349355123108738218639891510321647587569581922625801015873930121530292984567051960861593748436589221550340150257056353105453591496983767630206923656951929416464813423615340995657084803829819610860550345633133355989372178715450522997968942273272375946004329721956496658874239346733738072911566651237541591801256949923608205301528607532758952475195226857362666161672796239917436358620882786158035127982325494409223974215379773331331654493997414808504028941909333444748105859833270397483805392297034692165677378793205194745085817650717642604493741487036969604292300287462007189624858516547023403116894712481415005194737668584611884004136768618864665531915097611399224851018715581658579864365277802345947280743627956154314371914181839628940309521408183394929238658668385423945049894273395735242221991328966662060290979055752996388731221813207084056677842283291934093699052930880829925003758842589668810405054486202527318237486500503918202933717223458317429759523612431927900856586896522220666605251308309259072085866190747919323647931703062837391259403870479194121499139440838117616648930558163343324944480369814643489944270656236472506994434158787833423559384438507143289047237186507406357670891287761830021285112913464991026648656297061947559000204743230094279736930690970750198234572892396533424217645510051256844718954221257707297219225385694959626732343938209297371180040637704818900729032599304516171507702670003486327154385499018930055757587593478236301508308014007954421470531795969553437448755601624943194581415443217466029644936162506368621568288267749594888580019149911597273802739359565323088824331525320011107522976701064736393709641346129394380949441308033999723656803004620297164973208555649830339385183331204492644050353140644258236432143543009914475594530734913311321358959075548397424661299897183623376229702885140031889910703329052697714460108578342336080326282066094922342203538961112652963105399418516728960856967594615093552296511116906922762018331098914768379242522778829472969328502612312098379247367890668366016647717142583271028625634802055422352194385887152695581270710520064248554878605977957570265698583779248475151883085351782947186949315118124424925072870254489111401140711382507279380774937030404597346467497452800868865031537990344808194800752065397637389689572170159602217623738603224597927282097452019374076341031553730774141669698947678622411875169572581825362229875555555812567321788084278946467870211150067073446604688748369745218041623786278496930984448284589663350452768526430551107247880814924814616001842338020040166338909042731225837313699380854797231350433549445849195190350064913451723982041848493697435792856097775026316549311475253163444669877603513057197232251587188538406304639906623581396761997843754473342162056145851941119591822653691688348834590842207580618298824153776777864831037070472683318014608077210837919689032167898282482474825033050249125435201481936589536213289591388974510867325410053882436094526102438507158113321622758749428612914722312211670895009226075302974909436751757145657574927177594528767854947067235777167661816503371847608381191747190740183865629134630159060697186921518964506432523359886339662310590625132603148219856974341085937625602643583836566815030165166956861751019825602689095084262185289262940582152394714136475407355922473777261077570755054709711011425730862977548826372413913302212453723740049335494395774579549547608352173750047357461946800738800710498189243827691563759404756840283475130676667162239673304842563318044787856873614264049804969107832308372930354917507952404282365005822575021873863883066125531449447382913648179969031619190917470692735944237655644036584685107987160095325655248922607485437919089782166738142643410520152770105663502249819913760467558947919276123309760636646385499420620543524623026803935682884465125077226990125269672891120286208351017527812767243046420010239868334563674752343112371691150434577652705667383687757106065011592331338580965101602930738270406060334384907764000633918396654856959614115354110587783383426965905050447454797224605026008259554773274740883018026196627177820047760498426198047394588128763095776410820177680388083340559472733133365431385968517878037431533770731063729615517898032540777524681639242386499700055861115645525644845016254756326114451945823503454175361455451141310159459469256733741727430494186107112366444731306345564362323193123065030325648713889238355019344022454424978711638263253683643228589759523786426975967169287830994322359955581353654450559188034136349291018513192867514283579316855976527689172685541609664325342369064291975553402461704729642026421409755083244078616963046814126568512615582617547711954121210121000817228241637069489809550892039910109490743110499014444707707383397689917511931572907855593790049811905734707914191557246264120785501284318909210678785821149044893360356541670575437309323077337903728682773230102551828518349648876886635554043521622856512025057752521415518903112997502746986063134881831107111622663060728942370232324373722117838658634789354519028836710684083393823739662462845694017324383190159390693572564261776019062012874421748952450290438767335719444689452552378114743177331861852410375193837927765950568584642300767723933107219290580615766424562256534176594842277359931392193488693007806470098575905574363653871364437170142111784565779245590467828949926291909181230648686149702612869502446661340978724565829601595500546555712509807015686103285771289403713026279945493985746048020956558153838541198901858260525016192065867569170818915071441973039267673413704309088318450067124952649804979086007490435519786057011215386205905791139272190919503589510221584306796940007174831271885630303632053950376341668276168435371849992487198750605737594946763905024139198304419497733888861032607705290655580979347090162100445086579334510715844500745021956705772113627403127680529485922904541839623267581968894098988774490309446529066894944696407116276440203205418694746565342468834933146153484447744068468327279695387606287460409718584990570489965366101903870582725164469750390910095709013325235100009774818949865174117607597986598222407406510744280079620144423740337140089996580242358839169737636383441587863313270644091483443475554620973420797882912642440223582444328720654255937839657119223822463023676574280001445617738381001842917070456065321629686365652231469837984320160365371492530474464293812231443479946748553143384067947924688690759086268794052715055362069470386232807421734091787534064859750723842062359237594982892576624284426227314874843649355261222060409973348583029790166567023909847785526707972308067693611426590003329486999058928098031218989491697791636925593623116128848755667132692340645564398819785451595264754605399352156084631872513963681261010796506788935558149641050910652434046085598261843626835775861957740633119411264098453234859684788120258929467845763538924980364527625231314779370824651258365102428213061397125881115174420274542192672299146884173436285382262437877086490872785780276902618414729542216889407238210294598465028768146699789537379813121437592737097687188303115696899951710473605317353462187367583464069165722488376462074164007046359706885876059728890829577140972379929935641279500923430193698345112087094654107781958401621805244449709138384921147425554418686475869833705503522281684783019871568583074632393636033463672913305992860657757430047866909677112525359333467895959745000127602093383415697091214995511351684750020681581391306724740644192598098536696814365595729977458255567504862594677324386918268753022882439207951798645408192318019467014485356616830950693159285333037795915664130618789239603177129388544392287862999259560672286313490832277035148173556069313848334237337415498042945999304494385040532998260032050133006364293242861545854171859517844765481099875590167006190376445488096011329863033448398337121644985201566952195273619502743146560731735063840666172172692236138097957500971581031792253230996008009007983337320182177090822412637794860659097247899348001174373306504312514395434897033860262224031044300283159652066888539203367812652636129925339575130343754181224501568685711814002068882651122724884835582862189397263539256595036066331906721834529358457492110866345412800301396685426434545388603958940930683289403028052053700522822557155095787556382575493737500854800046940023497571206725254447132608435620089642597265659831938612531417036695783350675266817068800571185244761064554630601978700898203529664532966031875751529600877873260013820190837842912652359803699651278806863874559271445894105070359725168006442562878738774796131733070631337468391131134155513522668175442749742011552339366301246670041364687638962155595209273707670959024502255151148017112731086775470762286884208624683855498948843671724986975350279954702908092881632915893149941675197916516570386393670052829624657347784790389417996748332677679618657997577912735522363920758908906544745198057070196687787734341017057341743088869635001976219598549914911618724215275863950071404470299748837864663396523385923641892606395496933268368470124174101030188937830174319686906874950358443265042482152010066911482940675297556390619625510016412109164168353681537417808673639550855248273420079035699078586878410130400440461339089942212163546603243834758810420391417825455039667160535248866103934957657358641978554649442786944909389452878568654576078745778352988533601558977855388638658909164343730666250689505027304400875556991880304766694377102839428697395060171489027407339626599303671236430363231963610718969550190186733466949018752810435104788265990794512579960715293189184694433526133721114288915682107216135977707168617969015648359499294723606606322280290904684567090615804923043240862268518757450278833297069224566852729816477253488129539397761170688443047990536891883250389917486539244380170956287132669435507219800911796873493552103418210321547429852695368152092504998360102847744745785915280466434181066966514861516193295642730579363130039260438160400915362928733997965569523927534121116260961440249069853217090243121156638646691706774417998973677902127020301077243227625661102006530166381361781530170216037230576866527157481048070252265454611492981397067876222345072106145797951991562437379571812675717642807434436952229916921869269145066574846890093932354865968779798235522369762460252932877500232561705266052643185184497108216386392215797211782333375003272596156137210762750262433638047763432415886880550178236750183014848499442572537395374742126919220341129703377131460623399541268191681913961127274098623461812825054382569129960122518708160798596050658659934733442414542746312499376870924598089755394181962121804255906316661648029127722436453170053793051975951124676777121877855667836226719694596070041104831102697276890079171439956384565088669393102032378643152199776161171732346892319199135909942660450592835110263863044917417293303585834643485903397626059150425387090032583122142336933639765195871501216736197908728881720163478332828126574550079434365112471022789395766836752655722919153676450240472662928452857489960155699192688285539425689417606359336105216072547552527116654133664215552364918385630792266427523044388022923282386956958770526193740808503157316843415675795811814813963530442619422410203767016278110820679372809978110252826578900309750323830046129995137671166586185834387589666348000057385263023536181248526294704420235442885046394439712319831394013929294320701837635042492490893762277797981722858916084754632536308131799139172394933143278976906183291138598290146052618810425428249383312203592182481762354250916947496685739935154897013040900672600012979447506430507052217492550662768270698983378286969346338955358454865333417987133038153638117225626610964823828182585853165749825554734388855063049899745511092060128705173493963546625664944125318686276229424126869867798614606312435527773070068354384101909309879775221988716165308824633121042143348075095416056776392004019524456017435453624309584408550419669251652903189768878888648896422857267565048267894261376275382488214504989502588500299834490028183236021870613104165268765081142511746295347398160511916296316712449970685879077022337624476852645214396311465453796343235534373000314521249484141323079213213375474791464028186193542580793959246735585600544753840709101559553417582121482556234224010873058784670476721628136326522383952796391949863671420900522698894457508034365360398705745514637379221609666045269620199804690525736234144111275112883338431328612172645927742772822139407955920434247840956563582849462659493972292466364328940203487026774280649668920366563426680961699945599849198984538598246882446579323325706013590545653293558941481972981951053140977054214243195981870445938330293120495022663947648108470883672342175117852306724763090450246111439229595666871492548901709460713263700559031339402653916710978151626692854690530848836108427555616028912983762964328645330619057028640603985849382199242124401526811558940807929248743126596411846340538191681576980138447792074454418522496621600506932729331560545346667849276897558460958932323726138925946621816637770826629970168675088592723605168355684375062587229346100461975197463081423935465864990207513659848382127773366268606803766371158475933691480942533662021904417888997762674724957844232082766424902818021188884016380210623933600140754459503352269282384660164323969738803674202170027613234985911828661348287894127119831497400223271335261788148844339328395542131861545992712286972148961793982303233622461039112924240621674589873266582730530102394704137794086877279888716534650461971433797799474927634738776047779461595516345309943622579420609111709991569372790163013972729655035878256004656417556905027293166727034408888505881470838727602667550119865495929527456441309121880652477339168248170576671712480009540106768580555412218587143692013490434172814184904686306673096123199685604922732847078221288901140347675639142046106754157160718121637085864239722465762300577608481896130987990173247521241409946846955899606840180991532195241458340143861904595280760289464886543047327126369178295015336571969094182503709351914931890214991044311027650830399263697112411249119906948187853790758051296142646680764210667157709157753544179298553043233955843225884024868933344339631379697816785925648276809760666744322954118399849934498005959195650452766094665203335623670462594169874441604771940012618885450993436982916029806319204208414601014320408716793435072417072677441032009418000689982676868195634907893537907521249857186188779691328946090186558012871214959607318919510320882806958730154933219515138305920444340006329398983725954128883200127834863491381339694541475382346401986716840153280563212419503517271680010290855443201098308013976594262052068057031025655415024054528050187566575244867355677733138278349317963206725012690615886467879606491695364380977194021880199127091812106390373435079323918632676672631489134057177692542920209850771067195843709176555967144794162334677339170062054879054740272019281275235341768324392448129753568440610285041898330607047676799376979858078805660722759946109548674617138074040448209160858378291929235392918215107069343155623856960963624830800464510588603853908908058056947149457200446286937628371123338022516104645376376757869301875889320435294738703488329250920344255380074639243456277648358860994969909869388649743054664834836176203214509632760280244015643564060881642801670994031520765233237711361843177942568468212196010503991415990014844218062555628783099430614897043145017711451183132456983374950704044272273748139794857844842401294374754728860477859350171165219931721694318609233461569302986587760025932672726925004563442489273216545695889137156128987262221748271598118293414280116381589073833995485599799243817825549072640654848804412471045037143480806300869935677060179622872884333212667465466238547992647382240546445476377338045296982272095064888475280458708703386957908720609705723262491431692742300466576106167507423571871360887801558655547393889006057986931425827830567190869932939492822953336964465333617503935957616571782206474562661959437706895238975979371883560955255062569899633050571921686841547023675489538481071920387014248421169969959996875601719397245611982208748693623661070052787865960174500295476478858412034761658793204028294017272994675142077154977150280682556611205525021492606166830793214027287384315178597175390014919490242677196392858994928974845433553093714385543552851248471882175202135294133512906037901559100105027288378159188324838879286180685751498993434934772815105575333315071681398565407042614366095311910124539777154618943396995623134727517995425429275410645647116754171020240179709925619648976293602321264404063610115552792742516747804440702436318948634063193431530983920771828928595553501243511190408825808736182414272803896371175558793638570888648347774830614011764577558327611024810064750946166573509158192640477211093492631041525143306648263597300582769729381670524895386203017638832450032252937834765479713347450799749429660651120574163660167344424195405272744970288137517457488573676506672596850327336575681388852269663051349032613642771134871147115925551644755001226981863676473276527102903493561500015873483844758399126625358787955766958473448187215520508563281828975101733160432597262998414101445334585140318838059992351263586811617130024198633879364216747686142590469533145336789942322979899402539404605372518310251391339082607927768313760760605995291107855099179958515177646613140751991897190338243901050092559055800721009809875369554005747618380628105209951883618811108597277423478498906826589044553778731565672169228549686059983051141586302315866960221065448610893828415180588205967696470776794380603284214928394453654848252185922358018655369145420483146840144636239568673032902176871505318535892109561594848287972323557463573447652950581362676513963660226914515220811564527691210993694778195078628250734557447712863012709435522827972852455806584836250155755520037326729544412562745770045282312114966119849804323890426052231144812871506397547445662778053846646426327768844077736383450257742250375042599093975365386940535472168659320262902983509538659602015871895097998009206195590797025597526218881397575301952751645169160759102364900097025355307374737811029547618074508907577974313567767294803559391151250053731045992564502712228002953259149601966748255872003751693692060230315208786374994200624703492898970300366190707941169543958842857969136482570325368125120769548207322605440296763026862764104818840206450226013540961407197156764785536888673563717710921563991318953025012728687366165103265617857845240112133108758300642450438274785663468204465637777386522104090021007510685436861788832639725455111204148695485076242456511231526162566276063358305384980141565201211853871863974889246640279437213967772391243825471161789037963337479744741680525503559276092220748602908646621168549596659860073467774078261173465535203285721594287354508077439786301338176693194520031113952719441284380157017789184464725761713740689571229491379202138063658249102912000381382253696850174739801307579513863269584201809179537413978271572692396800600501994751077932866005955557715612016705580556235429465975284172977498586000716012233180746756868329639541625379194579161029759376275272278010484925707176046524828485505671986687576430482141140276238662510445254586539941965103701488806281315184808466871509717604055744307168194462834852553271420056297382717440482880535329258535579474141149267307417428459567217957293597856806742029879163898172584810994076518465072386740838965469227894638025420282905154658800650143326688479173839049596710411110556844793435382192313180103504323446465440584207854616873930239922184553652956217101836376135931244940426115981655141022974265950683203042402174207603119356284737881796363367658434714044299238130189357392548145755006260052040037627697893174545162254260117456415675399584707628713577894045844982253007531141910219445246925890233153602661291528824038975701574981220995761482576078970566046482107552131206091864255624978674089975864741452779992280748158801164440021603073359007229996449293618560154362100577656964730476754941501187844712388775445365113409895903533187383453475137367457013550171933865131539902237523251226224007744298486020415214343401578271376255503055335128745938296050515014688567516933220567412827818497892155999701347197570955140296836196712765963690095429985695740592417761630193649994727621298779890534025474836352894664827066835948543724764300954622150555205107143077316315461197356356573510757807934565970427684653335985163973977334632320178487648443689419272723069711485695924044153412761472162987288127281646128861919574576077100757992851821022414800177935039435125060016127603606555603479732014975130159095080168778176862538323841913419190491714929898159572217365220957113375903739902322922397509689154850016503994833904517944832232646987884278480336855467026127869083885933395094578832966565665011597351761887231273889816565834141879416159945420754271028489753142737746296204273343429300693998964887344242966053448593387695901261539311452814145236669410782838731740368551143836701626774471401896820278056248059434535902569216360222159432036281845544323220096579987935118262095074939051968135525588023973556080598372898412241946662834045823276210511452958408311507150760677762977937418888445870229447461277872734352351596746424046135449928459196700316482328762048614385926272803839849116267683476932238294383949500998631130130008357803191737530808073345675512681309364963113763252060638259730526001861230323703475584086375842455685934855628966308163430582316471358116332103952191401970084794793360202865453804216022388038183736333081477097697821910488046347309449105701631158462575047858279050412376102041141277536544968657623755937198012983510065109021545024164473149713097602233110806056840198778760668799557027181114334360074196028926303136637120686101703062624942346466567738790814513844305133618885338848078199843708450828133297756879260208083961194416900150759388565787131839793291100121702346444478331215839530859225398448211558506513711147307316201060251249329679811112384003350237586652763064248942699382021246366702273328144609100780182329804258105822857750841595983307117076202899809035731663033845159925961219904363151386469815512172784834219041992519821440428644366243165976007520896888159943564152062026326191402841820767579943766004435188081139682694907276101593694511984434970125277401334428989398943838664009741944316383828970523348789096295010853423153345066730464142423191164863247426905286006285934245435114306810190120964769189268148054499876943460393508043856492368224255114741455780481543455443444556230410521948761251658897746787843144798976484088223081830423336584596963606244764468040079316172912757429280750790099271988906855905693731164220225821894847748495341556589480888460667182944699794742085835297206666026380965298196603149710190512079136006019343118881124154005912561443351254414359284767622139634657771087000684508390828316187857855805963253526412677427706930875842773969343392617570779407842068889257209775586590762646713325803107685781607184782511010723651314356745932989549610389037539584079487076612938589027614549151108175695477656374009617052276786743454452365747807207127823676875946228717653736454602985962231180682599207043513843874597793852641498245691143326691489288936611239867947786159614172965392902146453449328106171169435373950172331434913373334681450570299174464953903373761084994114769259088788987347207975747598783490978121945489974771806447916351262444491359156636689114562693028463645708858690518664636504199293134772698379203606662787561930276016876283217072805809568334272439019491899411069359331293990736926421880466509844890674597508311802746983402504450888800224623987645431384550175064668023223900684631388452131661302324189917090401316314838466760253928035806068780988044221320400525538973415212783141194729362345198122656574812402573533490478944907540530676582922310343003244283613615317244043744069331919044461632160014625952439330044934188785099945718469857896527081424352844293729676995423574628765535067744293143714335245884478318095133519178623672453669513015869567196623800159326242008659781934202639182942367680946477949536826580784101168364417475387586962059978775580646772433585577827365539563963326016501958502456594328000174445045587690577414234726024193495314074179322935979436557279464257830419010732240082215271329615397195593523579403943647055739236350727714283537815162069309925920500128476036225160727808504576705578922761199896677609877839715540403030156247489732665085254980808711175830536922838789698729909661561974793438526550894728808487589770310673001307022656623973737779876932517107754294983767330166217348406565249154664611173278295063367712108238867510028265675731609652503717946161155808767471389991609275970312424503872084999397827612165525513188879377687775608312698399554654988350209518447920126482709636976301917059372337603748884540142855954199718757073168463182367401762619897338971439312045357156277335566915498860421879942550557076044950672317971398340982383612858632087843869382791035113487208474344051640309198101167168232087223951616511853264710657285991604632363846028214960949661840759606169367574385232110358921905000667615532559950722526415993432354958643018124578624833940989057149750220048100286821068770810655171549812124253312343546120265556228896673108736360468520719679194886538741393472357667578586467495794538628841244889046341847341779348147717361805634815096715230446065240280513621785447532955634026558926193738858873229762011510553610103752863872775607233702262758210397409781566292694464968707272918856075731107073972269803540980085696685426995160241807360627656939918171510067835903091094987209355944315418874138155470287701437336790492278742087093215268346839046650652122890000040315506580601734755526443566318944700944416399833061813177708248164464168807097268260395445436649202425690319509641033306486056237563780840451069385135681188243583021707780300843065873408284855710346770774148390846359384346684626427119548066470708528022316765403823159830860799082968562421727540298875058026885284400347021517073764146804066715737777334543331278788187702304544237419809324347377383131159231943736369306625726917389124998448399776780007484505506379210238979024764280527209151786701362371126509884022394820594665360118083714297645261877680372769175982669210632121969341190589045849573969127430764315273604259671339485409770513194509769435314106229968982514500300100187575135823972704490823597402274118587084231971423981559084615992829856514669873576363829612097669879166754986771825903394574776704226096324165349332160740227141221308605969473871975917615936174402804194306551513282638008267763031021381454313179513314052366447105731652738048326991174680085558985546275791487907145573674786503446029576001971064649576152097818420540468757233241699258537926642146952328455742859280857138637290512925889292023764082927135365188006575378709353272129541353880988250632109302526714377847782955834740920856603745336846492257998715398936341110695553107356083329679674844232134512474285246323410367723950969102332306617723007408124792053291169789662548555443437605532048343799904281885187213959075874914222343686666437265531184504669403409701904531802680637664336889667058196400844075426512679243361211887498223596409436105365800446506897913750543965246643972760348956728275964843188243689102133795013298896865152155613910692060423687703688353273339535275565868319313222319323478718913579043521576193511337044264937121340160293889031906436311736262462015102039972248023284265048363376756743911607616967669460636573347233938789526426636352964406252932888396725785972835844580936177701734443507931006218295224879580090825600813300923387999932009651238305650649532895679423372663214548985797313641066658183636919501836489450520758575451878220163880240216396061757787563654942746272791173869053356056205913185922038949343480787608171514645250467113176373886235767309969593471995256747065346579966963908674636882385300814698475598092734235899026123660147035225373166959068829504673066162170212146774653670672627844064236369214129877289509605460426173115214939628683352833201003878900033396031856521500694477769289124398123782004009039416408305103068156913813102181054775064398334812305661433318029007665082464903656303825937903704777774378152675691070125185339388593514490463686483371994510540695905277826162641080259347801481613671444763014102761528243349203555295535176501407499800597802264338949389936766458515387694185701206325370893846910579732501560587938140267139323956849056871304523698196090886942892102396581806821817445425817307622764486399134634112577777090394779766524005003560101830226961929133557828776919970141021722202427802466415936181694556123467917924345861113012891021863683238546616127717008182169883324734270004593115281970227325141693477561576519799461540387949299315553295225406941235208347376630697552531246847961586524458403039071087185894792972079908926246165604420260015788224449229168688362716156492091948614378206721855072778561691135626629981007064872186105202790864994442997987225050322574543536191545389522778632446507473939906585486022185142003148043219672479554168562172901200563722913706657738067298940179211640398491777232478151825813475911798405094953551726413331113862757248227626935277776428868953259521494587617305903564288459005746331342829530452554523039781372252255192651945625871976346843784477954509299522107946957556076993667451860840243060186703603692044196381504519962576910877180874577044516308775975342975333838226475141665243043388396693749647706923409604181217274416140208891380933229938342224999316009059200245006079347014523289489296810392738091138487038838470290374507074855895317373667805011551138430447878613681032418412345454138871803109148575250922330013197882614271360772255172338091326380867089228832455649367830931569576146376579276162202788939188151728175483851258797576012781381301397466689648989262678256482431485334582511105051093854390755847573280602479991340218979514032638180139259611972484692863992613599515981237852932944034065843742926802048587260227790384696775430316473380435872700392181431027496003026500526234550280320528085480024101974404777777464751785530048509875573093469316075627365105496230757225454736789635173354047277706713595668779592903659972446591128091340128314684141381037624065398236845217308656937466168952414164913405648995328364762326300359578655653839065599844519770856438714847853490672629342646990855520217899237487485540267063016818572311960115213937213121034936998549145756666393570262106102181619908876464138724867896135172498124084025251812476338950293814855056314068990083400856029243999472038341018725175216175270000563730150344511938896579317877484779991237067103795195323456155122046505358736319292557860252057942520540165958681648968081577598718866528733921446556210636481827473164779315454368889819036950785313039225034653940387299185023317936791760628503310792580457329307291311595656440697774169717833053823132507109046366725697938151388925284931990386351393152147608269298510458102573223489447283274596938111748347465432357529229720180430926033306655695389942853471143726979062796641495544881479035599530526771498301249507927772938225948306089734408047278248135542007958067369961227804786039356493883180508844004421672062745749136881530760137546924148328612997928710153787156437132176220211972703560272178410132378593937173153124028571456407642820425181727484298415264219310742369095187281206105830054996074884803342735617674321813992687872205026734317559480605655781114914826559133143628604086204207087617086380623221438589748614862332344502353420647293158852193318661467275364805222706442426571419756977248862924913575544957909566238084469966341604226288465309280440539542374909388864525028565087462888236645376647885725203352025142331106006693996439267519483936482257247384939619405194880610635018358133125802299576967595462197302862745629665360754944733435956940441596956882327700964818905291946255999304074605787369501185364773772121077647052348437044456027433131979480145112700556171910296109502929269752309908981011807827131377603040220474974909155799019108528191532070256604130175498580509242814649943470052153696147292862321264041792490186479747094085052831802797504574500078619655392613166733181990707269772512302348324193114969937270164643006614276461831710591815336658648088262582741108790027867471450379894083075188301105006064014130823806113505047883653847782999071085365991287876615122121638490727383155298246519407674162301367109600911844032049612423862972281579022200925625359475199576615952910577792291304853241788478407125162606449166712676863113703934258175488461378485359485530644637664743721231747559995170365633529272339891195886527802365777613451702050013329208400699834952368906869290810828881570414071537585031461271536713573096580425958703815273331153098511090113411451766746463377578719160394224896944656211522012416669126037183386908979720407418498853381597940612045772666358283544317185839560696756929574648632007445004274826737952896564126642541942678152348123528086538187698032657929415156835234849188932371763509057789262914174460641282938913967984305980638692122870841331872529938588294575961007892198500931201257336393796362429483797491917606806938130273830266239520518840052040250641418424544541099461628514472192304893007136862360969440138291303799483066552973517100710431037662538991169285675050575098319271916503739864486402842810873288182413054001052726863204344760087910159147204045279430947864627671744481082306145600118974278950024875654021064968836467274348605805960826843206508887920837070632180507262009997600040094223792578685386583783208629384929778620766532428664806482699841382343406418246610314203237407730883301966510471481427086408706700753259658790132162276667894429461510813462562515368766299571876425215080493093311628683880132325131396140510343877800302471049418648278663310302086366962041247845380782338550374245021644969981186866057464955846896434183344971729841230893717804496724350697308418535214960901448058671965828838359111834987660690273496474268516760089360965851147086576038780061580086805747153813919754147094083095635767552754956286020776402826298979307560534738157694681796496289651893661283168259325586580150797233098103444350724439029700591216946510222153922791248734300006106717824861412859601603696194240120805971570894258255988099787428281507567245396528231241192652067978157874096505827075387597747847615637892852566171872059875545401284206245785810688873588551605355857223203752896521829253263581736676040355358347955855630168799368536712096298561759054175535944551665459916060920434374779432640028182940752807534214923952540627284150038405010192222392227124432560356803810204266050886423554876023430763335152861421437612401847067090834046920833224590301694618983970226174835195389616472209155448023925000457122715250180931609070005447921415732998561628217472689746254794343617463993072565884680909681335946584790776914942132369427434758575809989200197395349989675110215658947615176430288025695897927915476348829525660772573980030035327988479415860061031457590980921153094489804954702984648568031168866355183687356592205857836349648599218871833494474037050950080232482707932436662095182856845960222189003267037175123431811242950453679496919761904355848050764085681241061715052636654110876395898801501851909319087721753373692984494668372585514607088297370638600386725300743657105122286859334220531219419006702423206894838514213570620661802908739767589439908629727930137971162854645963455466857491096408229222292228175318905826671588751526448293888330926917044767691135162324782496382744446201486903207463587346722252813564865300661769583921819338392763965242630479178913718056232493773926431875268988566700354560452738501364912667660538517400730860621849154375205460027426155310536751755582711719324806448874872651847821226457662624844511388578986652559293785406938757367966963005562030969222572557350424195210339927363510542676568601085302086187909996616148296917485918448531033948029812124851863674051375452017586300371877377186713648283713027044493754344999276075341672358788339324468186512579817126140058036908374062413860104630199895374365252520143965318993822209503523467449193055630533932102019471733695886425549214710575508980537912242173987531798750719180884636714686972722794423351941951467795833296631407948743932549036886917986928935007936760052999601178778452582037815444707625751156094019993500651920717271386656023141100233579138243183740703092503966579106780570736832568935836492274107088932083435454231752268585203065684894208023441650227713494533966962112736619739906957823065755080560231153929875283806185367411119543167990009554259732097054958130775630716180794486712492748787337288045485286220254128464026322023975105388227202988233947774592542813981976549463184252786126358569778679237475820480255147661683278496712251830441239791799078350358738995351814386874888339503488877681652550743469130667280930602181992491625502390963032138310571093869249481170691444129249555841593651889382697614318546625774605780623740402814945123520404591579207814296983702767574058444576578047068105458346564669638471939798000835946634718261473822838768058305018320870513620484470159874468399501147140678692671222532398236751981785941130259037379083995851807815669431980913958094317791810948694488303060698558768003123622757264007567543650214464396121673808909948441643622794096453345794751356491914464374455067701376422381781881314270890751154936784238979916506284604796034249955164240034284884565721367820229347335116228623734111784612462493343363160136067906425779363187866763165429442152675913734545770729472762376599349939085541599596927109273406447206453976108483925696163023336177370670993706440325281233274883706015200339479776068287208825907033272635029185524104349871283852141866903341453408443368495878851806722079836108188191921991877070444325601975875209898983506482451607546624682707763595746102645167473811144015525717351036291532814788562224828156941513506637673263217772576086340638385465554060190541099615259564209176123640332957356606638370347496213423666806638232906292578008596656290296735500594813067349381916062785033650360298906529118184859712112080120721257341290788130343880601821483141632698036236630231269668390200151731483469575900793873122659989556838734319993004066947213559816738915989695444641281350133695831950187012333498532784714643984372711961534579954496282838699204220681555650754496238205931415908708297742965772221899932023097087294106040106430597304340432259020232803002353131114227129049374294324634471967006943453842436100970812233531574560114145114511641933356679069353608680126164409017654710716686486737393006563078364235529735089963133004675962880884474749583568708810779901796839856792139034267487712541572801930877284444951467118565718018212960475546493574573506480177215560268770763044453833304619191263472956545364534825366966699115972211261821401310944037028156927044074110309749065890525871816434967366227691142715380613317123995723375884175627312539891873347316754410455514687909394297796448833893774333217747076679749159833578058373418833440297525916558711378259141372139597223425022989458094992832206588081967562233886711270086207837679560289416468953594739836534964982034993750664340969688671584671139400876893348194925101788417909436827641104329686118026749966421952951682103529394681024882306764596126566306611754106048933895514460525885326871028890460909033752365894881839338802380933886522542170447114979535229570761271586184061649113776531433500045540099336189549620235704882993552342379918570142202811320766502256245928209097929121170047728641145396327046490821631621650155640616654600357132303713631828712413256877627610051316381413438826807151929816707897345926143881963526241470368902483153733191667059553031965870456655790924282521355910264428523955405074285870395078563446069801714089295612083894949548745477218443799415975434672930049267748323373960223896049415542704392037259912243732654626461190564292649192291523525201920401546205116280077020264229534737325651180978032655706172115006194847263991570769764499774105124761636748944943518149487150419205413808065856478071815722774769885647771882409227659915072867881587232554818488437992061383299722059275578178110298601817859779446339928102151797485673007020853665470290682101674097885488189205479403477162372285262392454150829612309864494218426212152588060730761779737412693837831826814972792649929444882841817270278162619345176307169022990117068568553876910764372771375398361439897254873867070557389126249577614411654600147916684034917715464161548842822379564873848149274621816744777459892148089865696793280474985760760490406232371018105882010013344289265612381643451368587521669745233439622975853625636840117652968556133994710380875910749774768800668752291042141058048560757149547939482986913705329631090956094695045380729739213025759575843419030615348705095229677999277968546949059495153833866664845272957119964236189240335705589347756458561687676997272795076672983735106998805741232864264178499666019316530122220544422289101958530464356546947209150802997447439080947133822214089171903976756335391852477493293685338660784935015369624606458408882817015062313265293322842461031224370342801865285386146161654234469957601328003503749630019970461166892683664983507321477885239256050865543595815306900674202576231905864783062718873147545018357964727168583694923148389023652807583085614882446398313792485707287855080892005016196710249034558075821771172798546496226528652062124259104649967311276737249400421720599652423922094479881849141610376594980559905013119135507414091987416167128466990462755110885177593602412861364624116310439150718955826457579247928082504864981757091642215390320088660087666640166277401834245321729825952250884223543009032803080863471726836757681453299588098574707822941301470709558152567648936093938318545188058566594335679736189887273400390712221074351501000954216081433537400249285593418827902313705081587984665277871827585954711146511026425966754914341534678819131556363676560304930310827565202025097797583100926785251140521051490933031478268823991717753709268870260881305363895705054862035253969920890283427939696181655668301549378392912310697425335724814072972936538948526878279546419753231431617497492770932541087265800298240484599499137940999135452784015494826229687972305095216219404892692139148665826146597714086291156086128844110052082530227580405217745094121331177348828130772592988370984073056784795009408306681714508065808155183061362715725673213826757733124123821651001284439339154550357922763918560834362624565688266719925489082561883781289975971967633157427999251764674945779091025978081462058740912296472915676048972760629150019755473255092631653049111970872326670499406294167917247610320056272851261523992584345815458901002797473532135371507225721473132575359918988659868369026327568237632437600893509864465975021541025113448104142952581898682256973051891622342771373720518807081789030210191913410507359845625417988118147044725754450193550830913155460070411387625692314698999868140987099886847477958027058643719912694455462565558531513124151372327815190747398107658723356256159312586051377832353007205983678549887572255064559739749225027349322027543827522076165535492418159709191078754646310617620873395774457318465124630879055442978084889260961484907802704126106247667162513287804402456973299763843865376686248966977495666851792117136893390937733528506337274483551558852904081253984146186651531638108752040229322345005675027732802657512339339814056644126586803989132091234851079087687371731117840198733467470943958764121010958188139360795500415685010850958912710107821959580087521956421348768344511603849172517285763675015262713468705999759443430966195266485142353454589672625965883058166217358141414113055322749299890005139989587184228173768079864176879356264610245405447997323563489602954253876236323952867681802055751064600460294739084830848520432687125385526220757702395865642854919791247331644470497566571220035258540146414477679900643255103071190767958555584597692328707190204378622138637643644336374641598439116346532823284584208055798115740901349007747367355590929647883884081921828681333738797206138840731862654868088158597297246344524501447177224695504710640396686507439802409363480044978897453225227791381385628806204535782986885171510069782001886120820235209417884973264954768934550547209379316955061126319516179371370514843280316651575960211470492374998054489751775324272566127513621734734249836413239179732415412697726228288078184129737435689999280121097386800521824643425126998401135600167687618765826552030806384413122076174794652503371344183108283979513652425825650006764307757611255162832540131125997894312335204355448556504698930119141059251185912891667006767022224605141117422498920928809897236838408311216798685906382112024025766392232828336697352474113104098550883642413435523629468298383690875795179590298611626466329532726110874301440375753140174445678485623569274438781200267308507749655017346843416514238646614731673167849254653877719960519224421327389319098413329619225953420256195449339792426699706570272140928678161639998340509601865238220287346985948383919049947244524463977039887146226657374450589024819594978115697719359186498981681558737967127863630075426433191028993041223757459559581149891505271182051229000145056156019288450699656864035170965045622214491558402227380431962433274478038034816457598372603812197444253265044980620632462077706180906836166599465351460977860027748420284772196543246129726718099226361284365617822165753451868303185345500406811458321747724381871084206485318872964966241399407486716057727868401629096126128631124743035656409745532648302893597383235624958972557067225872337114507215970652333410787650980943573877670872501904467937689618388124939441918249343471028625008921574449269219300114374048716168885258449180775711801227652353103057026902773776179163743614373057802758756968291891739692760859443084194489315511899671039076088084023988244868890783939213182801086240716246022485501385114353710942202989075603634868226665203327155748449987770928926998910982777184816147073620542362667237794741419715435759600736703252099148715295809002891189229462165819658986964983509587304811602466427998310016610427642997203108867628645297962728415483561956339656778296621289643865497226111829079761497915367428034519963899170650894144837850379546817310487636672468637575740380006229770218622030988276832855052422038466440270573464312491794751118101442355882776031046493192082173486451574598999638610759987475295624114683764064346322336251819732219063892411956287732096198977969797194930276674608092358099201036936691374912354905551560092641520836993897392307035408910629357522912067716636118066983767957181828558159631502623475126572088989382869448224939876826737615412798452065566243924614575770503979941050679010948888458065469799953108892404918018406812732504989884978336694813632185238808258719973300673385794586377055166406131838113646399367527757305395722010289082956891134629716434103308220515466918051681049327654856728220984987441316837526218778950288093346875436935954250833128510134233801959147580837214742901175530916239936917513806615570244022196997298685540023205962217248385621878469828160298728528386053352178567451035926370206197208927986664102440715324187714006998062040433814787557462092512660593606190864603105308269685944386680482997064185804394951175948513179490464369436586836437283942628252107457080474454582952985949442981450360920894572709617511064098440768834444315237646178662385777131032799486997544419562561901196039325810527557308215158298519817812437419053453445943731560906718499778567976518358327453008558474440645946649118887445697201477049233894029048699280671792975178812777097207398436536086449554576073445709190690381413757617788846562771707882773040324332594865145330025365141226895913731954969924386723493603613632130045303288450108461932186841077072589017241864554570965866605052841066911197533018651717883426269779047473471658245974118171182821581137787511590731509398219014783362521897569814146641775031164039694002150001615010632229698557372867671913578057612685991306126866793806784410317234267847665769441611958832553769972717525309483821242162270662715586363218604646605782775058221770565468836353950149162497470130451931113931863412905839893057229130399967011745664404636760317849287876194852220511180938203882097358226744952343241383286706024857757039676444105682995936573835672858442285090230471895090080537843792572378716986770262210766953893415295459540461414633769802648177939523178110045929890440911275726283155636630854119909011173980722840121473637532299016605694086628888425504389626495430235855540216535166530058961697128574450245387621636711367781302083470147199699351960291623188709703432436078014005724014357386488027861888606780958266502223332362723672512029118229486259368057115099685119324845138251183713848887623355552555686668575926045814709206871790384689874953047998404682810386910430583077412495339221137475108106497064694430810873508733626128055855626744621776747375924772238934296370202243358966427282032560942845373428601532794681310047743508244022916293351261534861958289300222074011216349411148879185201853138216141749600482792328521671437714790728811988523081874695739737460814800520618065572730903606174279079245060080900588680262225132770208081935697051906569506072543987070706513595789218334504407964746113787635414095033086502729219246298578982535049926400007246346613156787354070929306680983502321651246576173182706218231835862244088980853522295824607330756870599958240400110530420865147378921965928550857439328357696955650512190120158352353825467331148978478416437027374619589254358257986916091119010777000735583897232579662704803336648057043804204433530678824495215789501234782836044651984592884631116884014962250655958915481920246954919631746684710869801470781759793322214810807768493769757821434372004722905423006635708290362173400294936176003210016019948024141001265159936842714979509099450035923829799796006029673525084925179606373642127408065146623070602907112313680341618256817217742169090059406323588277172923258121983748766780603423527792203312364880639403819685442297771528160707583929368541588611550219428713553876401430252683047315481994987994624733171468210253928915521240725676397992314063977877188555129424709766676518860264854877055643527491938710313779741130403235814664799011646067986252053490167361335560841567478182339180932102466408770246797016698149154326799949857380457201768017401040367533060267559042797797384499225434359234671254557377773077402640704154199703994980405939935693980796794638115804516125884584873753433131486881972963424866819883021435484883078965536178007468515764716316991739159977591858456757947145838392354779497866477607589389454954727583451945444057304818845490753705968490120546957331395462621550801133876544445819989978062315763228077481592623386674523402542742716118270082189114133764069623279305312211668714686828038114243495859927541653100947608165846525799198983643301765977315505722826214316413303742054951506706736452413943016513781493504341940398013985647529542100654721703452374433958632116331917614087334526082649786913052964601001390887096846069473967922845407825482862872923940333656088175006340305762657211414661418264981047595009155034485888630846251284477385774186837220782671798296259552867580416834771499576201168480869538822591933826183247534819120091353226732575279040614966513767293750760492598004639775401850116490785893358818690219026889274216157927509493227767912671731218559884590964055147883484329961244949099344339809743913175596235883312329191043604331000068423787110031081822808666942649304425394968938305979789196966498664879493753880006601974513249040153552645430576863951619607631974532216079600762376205043876500814141163562847898564096286580855451841714212274390441325955364798523790955025098723998530597527152119932843081814823994412608897469202601253744389265052471298349584176675074560166607479584609873911880153513633749622314143578274666088436541989043023492404774160404576472122857213705469041869208739651809025996947517100749208939575661313076670368998029949722806612868613082317186641568868231108471625217964998276295072227786797929842768508948349950198801885160152729573006939436832882583097878814330377392631550148083202000598828899508184101923467959121359575293726673731436385030182208951589301322085730754601930678283628851341663328969894773383860387343830387653442083781820556694001335686280507133606242036157612564308695667201921149676206589032539221639984695324082862159035103561766352246349280042363252182132459039500587520020928400637604896835711686362308656023087629625956445358204815391959591359924982817843695846168337986472186094580713353704275561457501727505807509674340583750090370664066673220878072306111254679242665899141568595039066551715747621884285195379723128141241649734770919168368118404836117471245067923855803574499647769027990594309537187675155530149829736354653909368124811329711260335901282916381701753233403008677748074564177640410630559179197840843496438973605434822249058399312322003831580169779826455246470149694534343386137210846441217892932259502100532296728831479030375401388564279097270889593583999392479250821414471480752440647304534073727484864595044612953783901638703049050545332726255511626899860990114982611120471680361600472007303220477686565670017842024231773662963070591186899818921476530244978518873479813234810839900405301670488473950327952492744649236484613106969354861151851857679835452349446010147677624766242830646170905034215046955911292292852026132272195041127779232259219454689239259251840440550915863913164181069849667541193085824815087022192409350164175299253501383300004319351956630617796207097407260511331710966001393325573401614604731786913194532216206678222483117347997531470274732321682422824871338511517581048693697850176698238003667100747749621895499872209391760257233866771227538743805341564193541695784284132537268105732357945616821481046300898469369880157763887996487120983670431788207659547891994890876196631883591402226719776996976999794385019371855439681398599990768809746817995266336522966748106009135185773725210954236424660778163470906854273596235951738906063120082414695593191610867533867782735830682007721823323757535049383360308416208630929485953003627980866578824719162421939497803141746431181516289197086425446281094793209925487636488115575080236276576024714593300196298428900195951307792583520298772329756895732826430680704328087991861000034514793784323572035606949455511726135487101043456720674150074353869025554979315514604579808641301712903392201795107809775647734280916119524877789820217090861309034762214198030804406081634745421682389559347076222650801751091895302088945140564942893969733807731729201183918036746018209876938950237077731662954959157693709518044268660442791638084946604887296748374750665360129830727799833192922407537545805236539906626474509896267720592947123042055468381552917956893456172200843930787773925646228066927016264542252257635326995396275315846670194273380076218263543152875869061252954223018970408469524742813584596255460242260772792337330110952774034029951276434050780270450458145786532210871183917854696121842291466425870760488275683893274101627614283211210975046105621855053079894704771950794191667753650414696070493415116171586119796780539431286339683221486981734521439425312956264738149865870910868880089390393266739037190030512412245174851807597503244847765288471334071278977389566757744139882984330719119501697317206335626333149575590013643587462948927446672016639207064241366166201284629920978663891796471301937322398732367225717326576805993234232460601665245078263868223126306210598560504703587732848249868609889001671193988993093998832710149939587015752813466848819034472737311771473041511299082481342075068460070579897895897166339319596480333863218228757694872433760475088670528149795784177036641960408609378445895321925285683546481919963137769841852664950104443892129764912443766954341884539377100110844740329910248554449158738365975694071475251257064520611660267490628205963878620065973764129719049258638969663843577135181432792507953837220748507420138344556522451084154512388928207354301195800566238733907084579256932458271150127974296220951235116576676234035314400611557602606713105000752097254888106429814065155374867401530320942101441362491545578355220618516670867076626086600381753410610171481631984728277862117411650784304921729843404580876247458045782379542537301769353762568599471971252849837425681875592016273649933204785029990537360683971922025664321304285981231578540464526824071754840776229866790173472899490214506421543817204683182235770910033096337855663653720353534097505983372061275781759884477177511331209893488691061521566613142328712824501411077472281543872688021140707796097434130256908284350989340391296505624299001098855988678704674245634114791627167284505025832685038992754176042219507968854585652804914228453381802647164273310560995609747357544131734268113516785057420020717332852571303407791801200261414514575370776193073169929007015565030714347632484046982041872615623691711950973790672631250306811840526283567476334776651260590513326426281417550770939573424861855323141037298079340101928662419578584084115012232608606719258664666838872344484382620250782768243829696067116387287834822046302388154667516317877054518017242273581743448491643757913875311846389139367208707278587231339332138075305641761190008748751902305523214284328199111680701621637895122107163134235246278946298754335550281266701015985488668967825284052510262211214658232429795085806802735697270378081717293135461371702730339601498837354049219989997666462312611362738152292002493769471456046528938479544554082738040435369359073696027524360223561160480739954031214251562836392253633625399813971231688135425734449234780648208320974988644808364701927966284445841121706291712794636707591828488093611248900780577064380747657179119700532619893077885476625532954378354031581539522402891534294509871215633261857152072348228201650205587064483332791619342498095244987767356386329266124963025379501170651842072474488502912791705387879886332649879225245831832685630243248795199718466423190609905636324868470085616521306683373602107999303189400910173889768382522699847398845375327254578976959451353155859995150013484262409028476184085392181376997063226132604780381621518121925378589169962103803659448388996891962264853597455274338542993076368460190876105432647588940575160316465088931903245184125654600997792677263520924046385301884984698785424157147567230873051491877248031319000270958019087305589718439239151300322982925105329749465474856581711497920887178722818507260657700109042507074359174873980088106551693170262050276855472023796995525944122846478000750699690738655213383443989741474483720503972542157479565265359070482667918337030501153970651835192399419345619146786319069479363656514819350377089435186756692895839702472415206438500669670849632130084350839008688342912148515166439421189546872195960574897228566363699473726268010537301332548230359919960952263325017088749639112972914198775949281848482234822110511639051165411632437536991007452299650272341812166177952059646805519262212401768982182927733831294311340739396394951802547809487452732609949162748929239600072127867748750277784477843404147134238506268743256589748681442386915589869757055421243966417030181842256261446493355317307654714161569598699995739880549256925359489085816764802008878168722785649503122624135815286944804808558007024921852265142427559305681619694374635138695543471356302125323306318751465182141680147937452236501742052491466109244068951760134222449543586770516681535762635361874125454551449623098310830763662318522120060107004977864025591758008198205936105910579664534407069025488759671186382247313586041775021659334415024141001978832902888089565342967672921588974638220829768869257952106464913301038610094175138427394649645047177727763477886467313325153014221516666684753835160191453467321311575059051099611456041987581853631271971632966249736557437317009444851489659617131961146641700211750372013510452397690170503763061785347520045091177269514710810477952102544883722315965417220359089314529520190599776055286685984774386099115271091353111651654737767080768885418691631910682158022506908373547930443430971227427045647407624802713115459996997810859314101453319577431874131279725386007896933047513269852115435635078335863067508376565758969879761212567373242260014612296268621786127002080400245174222354882273253951966320955567191870811628612990549575276333040772324732409814420981034181500088115686054283500756219606575505021177353686704320852185409985207351815347487915585609171099629916454251173169010724339347345177728774944289468677970268350663260894826721803392422853519181779820269276512912403865057533445845812165236399138981705190916293608067965242458371018381270530017518679179094375290443927892060627745580077013948484839698651634441845343884935741848870274219721723918180942386380175860284642901860973611148980237295862292027621405556787379520926899158902149269015118531711900078539445208132617781358812307391447568946517537462697751080888214722659058886742727903186622003723889441239471367800004794457064289709275717663252616684921080359292244140792713915166788697275190575983966633659811303919695272685570361312949510622959879978267593199911631310381133228610223347536124671659382046376612221675589057562463888447975296379617800323092734710839978557771053050818033941565166317383762415520572934888236049124810817291305915312879978857355871736265166388706308810036454548898127684769133223783140509700385019702539674042146130026613468196697717366992166188826674314300011681277007310312782573257349145190023977604074623851968955777246368780754029704053287877827783825093506916702597559027347314164639303724045351259713724114390398494560109023760674653638708663837812564816323928252628429192716651396255971752529881437008822359590155942101537241135952822741555711133108697032207419386788014958172935215210923872299986952912396781065358536236401947704637234869672126938988636913086186462367799572421557616532493036485638182381011866764262587271110538549962098820158869854494722299887533854945774083343785029292647835928629145342617423550445994617246510758579740386107807817404811852214267290986992326724739112980872787756954638188679039060394624234752020188644498043116730748583083394611193011525583968712114882921367024221816093196289510037567181599883730202407779333371231883082074192798479885068267229250729496821146337485898259091317306104862632197794048742884808054887346034911678527439841160589589951749311977113404778893492795312072941728085131100593999565454608461944447845901897021427956427328769753762990259327929995763823116370611487635550993395041500990802263242128144844718621213093537618371572550588672974060694938558297246870473381334507019249716700308050567109093894721053370809815990238244992230349852327930869639488690303944110876510316080792331151887576110850408655987440850070659797153408763955467740483883454737243652403503696917283681824031494761360301825626920165060326810362507582528068914380321299003629269122991341284813243699290987531335025695432067292943235541081300641774698558268872224317213124479569373810916857516429035658484918167842041893199748621283987963964645856020075692772151018892274229062317487137085674706249510494565050474560760156183257380870699906189111239986768506865954721327456354388013810741152899827897134298296255101302408753698910266124728482284060861122544871346962816951251387912888249458057796010358258104970161455661577675517818450693813900391682674929076586449933990079611317647361414009782586369126092568150025674876408243453039916782220509842901161867488409475431333895327123504819339299479608214025234008704222836317104428036309864193606079800741545495876273851568056215693754750380699906370717930938096789240292853358977014836134482220566156697126483671616627434033826354652501596620752863063731390755109321922296280683316611430733640871335800702522190056140229656496801729648063067507895954006390833663746810779342197827595776287601359657378505895540114726934556590733386282573853342648039742474380541996800240111718666923037836219156494676617074275935822644638036191970985293822948520901347389176319591224007027596938413424114027482374831086801863384532429736356214505880337849761130472823744143601279869426514947557708631079424558906853841375547328346082498348561794188969609935844616956987553072360041799601752885062489648648908845972659438629325508036468390783469323528182175960306795707444481246394867482350530889395596947497812131088431725304150964920764820947647019417457598173981284565570752617951915180624193350475923833346769646957696916454767351029335401151420580568251206785467284278577920649900463811470948316223303740223347003398466276511159077358604564040383556519366011740944044575417666064513844741277262295323604953111639397624038658434384444003796412557379916482167976658110982173231571671664657426316573175929439449987720094443891659027704234944916906400106864545771451798606232432934162470986336361036397493742656334202001585598865966607500034123147910050944474692863137248013931473283895242595951445470431799642116826827958750704806504745594301282368852797240070783207740976872559474701800234321043009999874205390177067128931985300094975536431239457262260875785524826101323456847481175039232827478763005141310429224629822240361893263082396664106263382992176249844097789558737932426150705723421582077397831956690411080961716625489090069078242740096806013276461502433905397252317303851840095245280400740170372273001866831651047370179167238083916407712153611085700091072873314771743458308660988713145775344057849913985623803341062792989235129940383702044337319375961439314231124148621304207818910991845416511908502666417146033637558252734422327143317500382509814731366772412489893751648551913886418764166583671804078476531424582190870260846563638816494232789802495977677396888589822172544887247386217154082872097135392533780011361900633262702748627878487057976599503576267884948214067755121352240752347177752161850685878725043484819880663341582502441793743481565774689629494341828638686773550632240627293447487515779726352239224802016076273356681539519777346937752035655204105295783779757435283215365921928903669033851261156674214368870617193519042375206654696983277345516579045504423818527406507605114308887727454245286553144942545764962649777215035104024928191129275230441953220227433492179686234676092716529384448890232514361320618811719871293361298576983255794700146449868234954955916232367476228053873010707961998182726538358346630271397300465701423121920543463626842882310343558413147051630891954376887643908091384467893507851446813989412223370784589040638793651012881481168539993649487995090018242519674431933546494152618294601094918872989743329059447462200859697120334722174950293739251647336854688248061619385059186844430303478906151342946188948442366203554310750062530983383243642163690187413377564161378884117135481863771901723106794996461182916734289035979584480872303894786541283552625345032244467982252558516521191909152485117649247477868280726122970288945126480284130773100691585443364517617132802271911980183713180791289585542018359654339891162596730611408442039623147986599845948332275266157894556367748236506302834675687966596668607459405975419084166350330228441313458529008971393191981113213372281572941582020585754805144560430937554721895385081237229515425966501991894090102445217078804278761649041566449200801060163853877288157163568121869096026370589076076635856561611018092347083255748225184390373060837900499892029684899525584636681694898359690131879208686544343328372941954282639344998320512461046763553945670848931928798362054912258251979994611556403241236730467061243046375470864985746786608831678473835217095659873232232651870434742305961106298772106664282393285186401137645517085955648437724473199711764725541431801400641343181769760044706066562948238406629599185848031585753376184086855327281317198288427137790466827786775590286838659974411976790411381802152875118876347589653889548882921566365002342746901048569532408086673241306385659735181279377963393307303982858503766660438592876695547137026431813349598110009034069051059227565749329470110512224416449807699640715049074972471835589684883058053196734334228449740955289213622412552433292621698636448788670711352620619655763395441342781135389495253391294624790771601411978277162294747060561776254898343376126466256050697986825365334988015228215171432837690611172165992618578142951964235817996953707083219594591636969088078014973726953289073083887141549886376410336331152649195324518223455277392677493434352166807597499995564387449656603807125997733380119821432759486803595438454187311859076043995293643576917529383640060646535480984891895984348431576714882887997903099691738446380215619786329058467872277557496559906378230175545473346629558794428329924512540203600356986913212193794667129626413843829845131806595482216251878647263409045706995433786958235946530513822187691716475496099341390163399417539332696563128238150441369125978564727473268233387192130579582662080442698268044647514780580292766967625650384865273706145645035503461838236695765430325897941601722638826480462781573945543853832544772611345656348924624021267274163114779793455389892180389636776730794782104998558517807431890960082589743065153171912383364668558255663795863379396366587620755690225139352230913671383629023468276709909455594669525496258337629222293176992883665752826016205068235062934840504818119385593518821862837283801655617733413923275873066467025550865595625096934135311548718521264887685438012627913080431357054334867256921705666325386251588687819998429537742157530869834260075031141871661400461846998981809147759398966795358452379734176142262299805825065501554103055135368255887901720373781859412472786899110395739698703174859407692884959845544127742394170238543223527599513141759806782623270754668259425326966985017719181669468862888051231584336829004177348564955859878875006599664923881280923801109281429477721455719029517955695494796617645536183340700202434719476289179790831162583567848756145319520050423533835197592509328218176681747375933632907897617808652842273028536615541668203387801943992732084224233527155554266206621397229042905092135247421513523005339897802252442820756525465077346523196301573274951583396039249742066490739192438514467474698777218683285107507504232972393140339331055319418791874951078580392637019020545917342814004650531345551362327371460507679214420076710976546196046503570219414777674442582957100873938536096378943547519054398292260432186244017080485530867909462916887627604873058330766830306560217370462558504100797178315333944603724624011050238775101297327178452419285204913411573921138277280596675310886544041755849750824264172478788225323774901439636012397679340031297149304272752366512498490776336798594010458646934239654877988599575693927693729994100989894779073923670622804397587899583858582887886496201910571229943701500947381425091298675119686499604928008114692087733436596864509720827629238575015614538779859100502668489337028039355434413973059342253143832999502478922863733841147320322808365139509420726305381640538596079532238049196130042116408450022965358395524539032447350112819579490899884993638605185814522609627825749474819757460362445342808502933119142327666930270846616149967729904721293085991008793760943293727515643817404596244595722313661993542976511050651991175782868363695181378067504050840038725673825425909836354749703748301135425016589706535500660754217846580591620894832894131194450825872527436588981691902425397515705662945033342884784746317681673971736056349163949644334093105131180084063979360556434776732569219341281115165118413510166893340533976078531253068810795508782759335042501022906320480455499849875561908391007880625751271715427828062808689352253857184696542442048761189282448741233305523566772965536248644582459053566558988096819427806430463579212959668190177168973947229479082671392533560814199815402142365558228201511247320010169415592443778102627194241490121988470535187258417414646836547834163938093713824938632937444879241978273326805649803396854437439468994221540966589773595841520495989140052375879633801347326022639685370069407723859296512086413155637309475105096824050511880592859564166782880408257068561862321099587107817546091366929750033303777317346868756860964623361349731984980512207809258257616985680122715856830423267489408562093600151234261691062559604881528740405814938443012229279896280186211887251578522489612456522897080726284752086771268384758289272625762873557094129249846274327084338024561506575349018062626266486208885817552921393691121241630318927205622694916736570661867163272464964302714238761643652788602303983259290030687526021614257739111649785396613057251625045753389048728499539441896393534635844972503478385259227619873657790325033604668992589018747129227870365538357314638136528879946928892324528140260141311716905538508133900329351720410485786459450426950165432645214678445044653608855353737462177895504898610938508177561229976789191406042625763699478650410052092713152698888294143023146848941149327289103903240714461822870619313548896178388831626550147082331918433708646281108941395138418874332205888363701797328526328618136814130580982395151908064345910057748504081463714449370612409598403633825024438411337892850218716824243642220176754222103016393152629078405027783831442895124240599567220741969897713500063231262722590105887224571925960547768042148979361678528927535590897767177275983374828726615148774670856514764814614379960360442588467680781136958046059621069182767727220689049029158252280243568806717933376201262625675273765213899874592330343916998483955056381761265382106682299756025994271136959796972402902421926742285111538163899250481855111064621032761615807344348954027416482989259685742902538288954533853681793530706939649528599092397499267992878803640916264906502771684132830017020005498748738107025705415533074176325752133283687443412352523027069807790021827335977148256257117022930362676979443149829421076996070355680870320646785626627549057682117769078099494572410889984503735271397735565952889799861940622431891935154303199036976203250095648960728279803064072279781489898522508917111274548939357603679203158219965533659309944990270974021849889701364474292667605078398980616123887746928172712600366334312278399143782692363295392642119791111819156744750712992133966032677360181479411634989061680548458315230772741050416862611606530820607296714062171664498171024606628358613016045541957211017561391930910692730636788737068305280828617965079386058991274445694844960594725334179134001175833721127870831591081591073912559907536537112875569642924456333543384851077100407744942610820573283575047441764302620573876626330808273378996933526225557607448246911580693652282860172297158474588076987070747530306016492903933835912068035596446341814679269043375516698704015892613098271207335903212494617198610359377463362357615051660169643124927949713090876843911902306181898639793237811036226262932770401256641629678286964065468134923320541320389077976524625818879525446711687471121189935694324762802948830826023902118235220477466587174254493777759738141607534545973949789144202520529427932254573032145979080129143639344295531957879565782660801340392244620240310277958275412805561650541060926625846153306027422469850538205460760160221471969955939218575248052759243277215421184542379977997716831417210194424929362561064087267460744199934248594503400577862102539127763097038580568149169669769087702190875031771914306174028933094898258188537096455196805082335410632704676656774007639515998213429275642810576215160357421233433951826986762533176209641168566238980269741906199919569850464572810049930396575493601591438361566432766510545726230265709789511684627950102388603551526188101911912125761947969174187232880676352848674709668197275270562071243456438260951405292710887777488287766805467722015454237084756583658010235315616023056643854755921551940396389591346662487289225730694626022898204518947373801037896593382602220176000704320065515425850813808525219600816500130819090046208345703903404710526213793797804004937181077185982125743993958584762668013577716188051193780140763217975693091434541140288143388997469232395187899138803777410940993834359666129917608899923502763413538464009474836258115084988451731803536710846155363230661480610930796981000637032801604150347602691249835711598837298429420824464220528056992586523038064334965449132380378844000601843405363499904274594902436322428079128690447390987357396723188035501363321760956531185167327726146519259193791674940475685756454671238612678065196633247978432905482633995345386739854545078923270369741986368762798345436651853502990391502137619290567706689224459698522461619027334983909978380164580462272759457528178799166553813481251800258482249238714783585263718678892648670214778276612621244615835723336001899928933993012908234435797800054123383062158621871118413510441530433401607032982257718856631656745950871199991670866433062005870827802282023391470265400551271287522062349608612185150028447693567583775917675910344657061719879725196246311599947097657726049507037340065005414902972496086990429711378435494031129397300996911642355671135311946303405929074192033314277966929357577763241675160536450909849636231648710602775969720661320967894808492933895657088272263121345435718806673306574501068992202312177974140864056331961041771374669623784650620405857647392448369384403368546213802833148559493079840131733990187343820945406922126161468260327291430105514507135609342377572108412690679685803860819907452118911301978989182677869858124666017818109536900368854624260801143752200667209245259988044130947758261082552577656242834928048340100130991498958109544536411150959904172784130924534949655736306910266781756327337145937578486233206346794166018061379502259352487107143346678240957496077207391100707014070389360329027249722204995601725763111540978518073255180862277696933363560598690683002320530047677012284836010424693507886749272559626380320059573043466304619561343659524721810805427075721866557082875502633176979911200433976076265077839025749943734894452576738524959292677247957383569885808989622176639373410876946291578598500214852802522214987989475935375430431249837638293850553793308174967587708511062228306623004349219833640840247552099988665120775211703234824722661607645028449342133031854303005287857882546264938921941915761255089414188898165052923220590747586912109338804836513292990539202266372781862047023850662121929427758140806252442768226986784307722952036883206595677138919723316185904694074039948290988861592859183016368927009425505297104587763708715159493667459137300811629235779871056892550547940423160635701375739043168529288217945674881592643343589257496683950142566612282802981746313586989013135211920935516650891196252853876669734922582011562033604911794379785814022901309461926033896875608474829093019176293993926339828893525174950465636891386029593869939442055152286777296963546772101736194962829470738194976370536391802175751533470601619242068150230914280586425832844269196660782487921555922704738830965011200652059361561795671169549224733210443274320239897144017624431504514174881694704827031005788810736327853154049999221914837956651707776470943453330745113683919019922273309778772755762153419838230233304368615477703012896472013554271964937789465727418078923893224939347762242118965220070845148638239597318258864008816056697017855066378163913891000452699641851062506306732944089681818105015196157901174115219422025705759954556957178689618055404699135480865766575505461457397208487127131501006605430108892709538668890210002778241528092112429523698183563617921866922449659510024436283251677432767586993603639064876841993564942220512642565921247958466286627224478573810701977812317202414495956311600288924621416485282329899135706206879727710226460946289260571287828323961007178344341105856852346114916093579775172369703897657437462321925144698559519094259712089528522741290170941842453210913190915618979454725170102723048892871578078638674138691987243553217848596354439452822681036437902180628264490228352797947310756396172642494302662397165534710327180914719739666172640870841040948085517333807046446389907882972005314224245124127296136660063696578412493955355494894178886396305546992696775559418801274528452393523694754963125630166863863234983804240472018695909461363652800251700590812540108554913392669003742316667857129407790753082994637289784832273920747363288452284422988480560866508352651856532511087170065673943283560556582491946539964291196615992037177038866478898455715100503830403380619003801179790135838264599452815303755585442690449216340488128806478239566435093783294288591078308413272686741919455914648694561073474820685911866126176241812982784445520894796769609524410475265868692054108180424356484951998631046362740154665083735243927848735030684325193283048737980081857334059591648518957902706541443734740065801377301681487518764802235076816262582878112076628833566828607431319908796783710476686741753045794615516501100062073720134136614290159497322256364826039065745112195648720694146465851704188865897492190817106962931251457223789963895594673462730543122499410751795677393787591474280606948016402073609053286488534689554455119632598769483560368360956179034976527189894258874421671634444058905398999954240175290228952927919149262310801945865637465361751783700405610763211352375506160564027100671836771562825617855940420854380521914183765167758337789586238136348701415079031444415746961799000187941513633490068938178800523775940805091296685942737524721290964211584984210206534187202415780687705623730332912696101549525535353767345937481909937081765675487226519874305539187592883975563498092968418007451273191309975775741854293464146380367907723311875990062760807902369796867238725478325192443339574462424161673361032416478046544784509342597908908997082873844918869402412966366855635657781471056446764715429788271514310044867504676135378170931054515346798344521756921539702337627034183085137809797804679165418705634084231724686298868456867246513771699623833125468400849981889441754822587688452808844573086552766203292323782072381385479925960469942400094758308658683030042241209022240585708747866770524571992246221988240964904998251742406911999182340936317033304944121670924670028551415782684952973542074221106993532530499717237163068920014044540881730251644517642755193464790950220748004087230329635613813046356977618836926277718523646864434062949543305845965360807536601115177337213301489025741770429275378284740831309012675320798082025137924089831540124270309842372834929291515624626671626425987228454098725468853982342651980822681044450354352800477748431005055822400745485005563655600649840011893577656692737645357193249220468415280676005513691144339627228007889398606521356806471358628862767211379785840806102123849155876076863509090907709771317871944066389813112948769910994770115204233533853792983068068085952396169042899507989784468445894758018829329592538964342009741115426406830037950856782870369331234019297237555247135238308676379295985320652059151073654689701764394746446772775493985446921057697189740553133983266402793623601521101007581473856037880085323459863432542642425708674691070769072649818742682814557704055928846262411898021554346108420186617175164329804286299950682092994632790442264425821255389649585628111484456861516956404744641310752543146389847715492914850950741500892719813439429232449055089433171110210062858458672239457455332594505254961168075415851890865336123406395021539800303998769322584683734682443677350472419576580675833265275251186604604038377738530431925132443993753929437510301680843074158194264491618592626152114807153832362390043544863472577621239659224847661683425399126132756235815867923753256455549376657242258299141858762994529733338724301271294201267043367183676571136572351614003268028260585665267402069650570599988288057896098642489786223088989031544915554810417378676708323876508947135674258712388648342727762807434954999355045515558905015860211238493283903187236543706240103949352692895370868884324258041832180345408687396530057561254673127676467066990871772183033999881694908772316623816378001007894966009323383572022792206352875720876976142447920389980693781931090399824006532225067915584952697924893507658881930902384132272835272705787541051560910508807016511761274304736999953238748402105757297508945103070024602919046876699579986338129110558684263310556809093967641251868183714294150396298903430308788119557739177497811466941919835462797515911940022157341744116358541296000676376396513503333344387474591831064185613166527687716959478293661476977360727650657561459111913619145825647794793897323625862695615270900720544949846288339296909539156074888748519626300151441982852635106965511626600786761391023432098848528740354251121276247492767908628037632660797053233138010308163430322654805596398807068874190864652910281119617692472423165107570321987443055166930982883905464775206761984165731373967784425443365148445577231857558600370801549204537783802635110421806694158510547210489703192181810693304274573597489751625424484835526458960188145949474105295766810253001143199933867775702927997049944219160145741973675855246261587094984594252511677904426218379069371735501522283660534115720050404116555347960390968383425453591377302114943704264895836239320797363221006808441482555240358368324508209225250720713098036031780033950996925040111351081726570220289672786431706963191257252452114137401417439605023690589279030162809405078785940315465924254448667826205584749639972048055597273689417508309950091443284367540094823810691824951082384999330039104453654929317100696651438800934375283579462231917594082001257093677318813235320267335269011477239980694562209107135300661664666631142201840820978598223518000367600892960802507337894834831816591821074698410508046760941098848283406656582265079981051873341415889448206074683545570054618485568140203412244688331884705978925603329673385413031634266674058005815622000601833874641155286260597019575621248741504660265964716138274307652851330459902393728643286332269876722625421683827366419668245927711698602630607683348132509120631181043893445420541434627122657221725894334183353463673573167918671789150618099058504799787016093215766981413154533353462701639573675305551883286170111113871859220600030018925431933154864760207695178353190118425252194143591230476807135714127863812569067613994246013623218818285560453399387888671368334082951498151728451136120270761690036769294169934866255145944555750638306781386770183140764673818147817899126955295503586606815283181281987381140581466902240245629349606613747713839794763429792794799750641912783049751838316907809014876506531965820451070938802078439087240362917671561170700078227423227011988417519330499917337594637547041400036677167845880452921510434128198659887207166327181018158327158030813957090149418752739165068578415435856484375408057369564690810207709684942411425642128116681638582861319589813807982633256525671602871509109299822311906595029952782386682824759661628162598808522308308642989207710824312615701523196339218894744565253414541502672968527174643055922887522481182666438000581377676281646380428585116954817653442570178267648815578540083308795635041689275624537209480858990818996703915788814515086954747240175057757623644161236324920452430736675719170139446609811435762864806467790481232078719485058322994778827160288605725952961115711741487694125091394678439362896514501968745140753283553629832846878402924227259246143878152418575021146922219798734544919351915621740667597960249559738201303821626550714723617638534032393735458395786734058325187076443854189035053180259475533987188658805934461769663454680142630854145650981437091937407451583936133748465875035675682616938317802992709141940784545293348878497133638204717119716352614717031043054070514971927339596402518504143296737034934107741293660888753827389939193518854232114618512210794423165429253150839299805309810814103782505844138999638450888396184173211099438580505184413963502301253033541329712426439414202292748793749230773741217561168182350287247654070918475674784484024331089299733191907897645083791021750686184638826137216771028400943426744645594270398870982719920650423550142196583693009664835299290470391579231245873541899147058769468643433719206110063493693018812460146649757197522767757132027547605574747002423463639577881915482602041630554141640336244891204034292899037530755589272180109612298683185938662339369527603433950515412732645839973334798483955257262905795266426701156294670685392177381876238159551445393526829024513041246194098228697451097142853952150946790647242802022969843501609721698959185667620075786980405085509150718994059042262613958834557847768128021573129043389937215461679027182725902822279971566530199443190437215416998966648695324974419603591787793170451834227487492291202350134750686884582593470918794418703598420580352877089043241889967679409841060386655609933859684074875536134948583275387855393667357658917478203463700938676144920240590835834320040001473968466751674097980236824846490009460327189659420908378682070195804736177035528985856230583755043493327729372863744560472608576822334762007797397698713922679926303546458515588941512558952560218094925523374632770490344734404053573120193857760125821964564492890114000003367090170470068968595517675688173801800961078252082743861637897309242142979801062725653960554244773905861408162868553343275799455919452589700921129401184482966948904353101195422412639786544358716617739554251382192617978153613144475207332188242283531723520049776072358293187911576708123943144029807803764329842799047616456073372905753883297825982910548053993017254382736337675645169335345079634287677521229235545791881487964071715618680156875413331369240417723244365208862821196390013492182006916347751221893661619548079900683390652252505940113512602119018452952482861145231763310268112572743292437684520530912430133729178516738070017671030257740438026622426381392292037877201986122861495855836869719422132813289559883407248143125914955598806901789764990628514859586176899034684917217577411924214432169984609431681136008557263317693241844670951275741595232547185182091467549621020210870187888573814632944758781838180120006088831202128243178108202398596537323205180472373177680259728270176449133601198949840033213105706319695793885264420272214974011209537127967511918189320980014871306272427602313881641683911127267230867299823068291091369978667547851424047018554169093831127685479406560672470383648051520973342712775418610941900162212197916683905268898258712694778424789311348520613045873761400741622049120409630712101228795881867180345963418446220695772746365163505333147841231742079621756959920411315357127378355599961120849836500789341300708220828086051871806607968406312194865787068369703529563821374535793494660849500901467613791665969428174204306285699582686293748854065005857047284928690478524896876125708344603276535482897270234435072472331929778433036812926966415167096871944390861142904683475643004148788053228763578711574332328537374420717206786253287703403847708077907257716717516498450481614079480842714057911360190378952558520438203858593609700313080600994198382547606287833754345252099166442310950106717446438891912308273902454940767775530750856870241229016685999097248694225295007181434113447151012087555511291575020824455805308041243344154628221918435940477279306730081300991524136115887355331315407375159513583436279605609387262450290423276215816035889396239557617956502091741424885253578735831074940496164238864845714105140777809862372026836248747580698914092758784328582307928403297478755510479231946459453916395921423504224143400191617352030896552487007469174398063237302879249098464611937620004870068638284757441694993731782285363896002551056802320065640622296099905448641952298883859036844743427795819757180366911227574612953250664514783144660630664063909970429639811313956622343691080872483282769035342930908269762910488476907853169043743765016776880584447876752277659237415961722469635687144947289335603319797360829705171333056337025408864047339007188130113065213121319792276910692408249849718941581878217762827983344968664713508406133086830282266010958483327234082024948048975479526668956243385492813498446906565852897872012178565304746994227916191910736949249962250918081704644430451503720955251812626346370711241765707271173787845898296724725963726983099328048392090190100226179069356913738484068250154667905994732536514200938562810741682425908272442957511186354905703027308138877784008643501478910805220408503147910752367005115813998155659059051180717870254324507696561168921786027152119502159490000873796463690535061019801505056339357427561048994493808912106587474447173735864718984875795738932435311165607149152135959686922592380715367161544278252576129999062975552435870260974132151604244575969847102595072885613537691361505976514421089380310975055642355735734881373488109773211080045977100468993543420007443780100727368236167017882441360939033338673020148856668407297695942205098808127712120604168029067215809640456308406951800907574360477916038364876370720688396744536722132920841599327724896735942201967388750365466385465590404675540933833995619068104716801643685910178199203158391796753760537505438481307582349091396925373783793496817502013165055475101665213557415419724771065118995809468489094167849472176174001978599229954913305893602091576740742867826264727423798767712167933120820199626499590796086658185050352880918641755218400433538291938678832515244435047628824801418905216171463023515631365606335485471615295807644172624017580047340296406869797262764259334045081086335864023629182452756046584883908935112867588871796702350070248854158108232938227389472334539416913958646013873282070984443888937970301314237970044060459426700467199922966119554703388312296909126822543433702062603923315008509809972130158176384864404385135771247007676573944198248589338265846924817792180156304045222896268819314155588527022206923427465082446740450731004313700351400124890103551515935931922624482987215252470202577529971892040208079850249325755798125850704376722032305934781651912591721388837694189712543391315186667194761251457023083935787973640851046283527122794122020148281549186134216364008172712567748812785435248558961713414000668828940866017757566185999714643537037341626745986822981264268577711486580185678888975897512106308313013994579062888940814241327931789963844964093571514306697582604713164474291265222567201173878035138355132455706875926049957029984125857662395840589663276489407570120642212895140759387686130440703854532154725878856627960686823056427305136724033747378555976464828607048460456308599524036431703144786113869785565744004493961665024976645921683950967940457054292673791770264598738115990579396960275541548023133608634382971768439000711260132324947210705228648041335639437374343463956900983350681398840150888007196125562650799808862623179283953615023930053824658205617825541380263841048233636186710527715596210277144192228612278381262664029118697862564066966947337862545191501939837845098918238287286250218935994408638429496172720117947764323249380897789055735430310962552103422948226502984862600890253330810645907809521490564955115507068144897572480320922339074863844374221900286899273911641320471837855542742530441332006297069007379675421288964311963557280627249319969265339790242873251611262653110369141226192432493386596802349206647973962496379481295751533997257536451131545642112184898772013874128278431223178412333799045983794080661624418830441021954062564375665699795693907400262701811527821191048617208092442086222069154538159625038762160879541805420554410096287893702781573000026167479842651503484440694920856060043371377512921429720702032873500229240514063748639491871714854278678265468298812068754597655742656042568396817325814054250056050534887088700509119733526412617658808201350903734599686679979789692955953064333731391716579737714790416662014414907189584498193376749208574745750435536021007821193812134796854669257881154873770335646410752867208099499818477485797687983989443002515308132403837051294892324957151224179918743134521160513494450339680518301783355179204220314079845960412650446599814845148668965917841642825687008177672532049564171562522244335306825771798908873214928887027808253512417355289965343806649485123421556277589844144070643329580544309070141678733598805742503143328966283966160313565994432973291159131478231124200090346391573728748208442620034987117399341551405983425451443433907693429737218316563613569435709017434604346672863520993610543773332909264494786460627847109484247482005071116907317688704804681461872234544306927259608995297900969151142280191635324757796711305869990844545716565571565561454749335202879984107367795362276326554164206091734250429694564522369269684546411436080221616189125905927590124002085851143960108943599827586507883621502580614736077177259922058578592808247359774077204377647884501415560950964306334058314297757243763671346912529667572103807599672871688679848902070670967082744805596992579159301247751309190130847797732557818858594282256249404299106726142614990080636826905544327345292159538114082654379699462462945300376126389085304234241450827924444643121921783923529067977306625572399480468171521437830543374946490569348971864491768930824833852533932378430115347983798081209163080405028942075698695493077507827136163106316667103525629042190732993042435218693106067217090321581998725671792547512882112096602463057085413104249351938142674894391527566997739549234304749835954553386163363726465627520122691993636617587842861731766274589423889698359448706823581234436652721040620707959070089284011325344090402796985322147561882674620771254028963773639165453982685342287711862864654126020978064591062540850826075672898044716595873007883697306282750023041166760991450480909380698445478414283041562187045159463282913896151059462955751264175965517170600336551705796989096516052588879480680762987454940641636911853858465123936674751910208350525563591797815297657105933824069210384323694688089844527201783468815480323787830653965635666801063924504697014013574317849729407406002739017545334181290162232696316857094945034533393811147892630957949586558953731126177524667526547198899252113839203201094083491765108193674366922502770871136670127045964160250122509010108470099047472005500482989002259536007936344543213667719015399073756015852105468250965957930838522823194067569659429646094317481483432528321277149464656081663123530949442300083333885611801119548787314682298307093042915255330258897985172726349723993432769868946127103358075692230241232829548274833694483846964252955225722613513677226673574264041198211833744988016791735443280310445946467247528856843226624573352875816415136245428192930856364988280868622870776363598814715952096434723003338350080143168320906292495257689637803819308774006369285572987577063205976727835246361936990763381774037488658999959081339346830465568087896050548849818805469007697751728378461085753278979840544221907393019369003016606843804307967556802148081701818187273053418105307957119134083936319600751524029878760886539274200412042231646576918413370280627526205625227086963022244617785864122298494945287171716752331915047509690080066204185054960377673410328670200683200000405234076352342722842814398456257990715982744678550378923273663825594708562389241680624591296558211841503438388139269618454324543009391167427965457196238121261954907280788599738558496490288233233777695670382498522693771591250363725330849677646816771826678144097969061742644780800330854655643297372039918537059938068797361161660126440220357819396460881364185015220992200467060315885915521341070912302819544276905836956884652666171602354213836906043346228834566933309595552803491068496392969272692850221383138573038472889233211883942244439150335640769261105927654955825275227507977252899870068196321764680427943962628197372892870021519808319260085476582130020350883780879029451602587091349574742872722779584424171465991769312143348082127648915543951471852020658845409292688829630616598095629643076865964323046584836301231238725265572622038735259912534863257230701934097881619154699722761608055047283580003681379183273897899464183926091962584627551390312038897374857940678505943479141577552796715565956845457051042637972460914569182885225190515596066079716883416838293050740517107342522389995229905293698204685348856326459984789556900953304547471267473593395740147050494159097325154399100910774443321750566056157109206726640561881267258487101182327511424668912017840771946676421822766300997981112037411851597069050326327661654342285861908170881646332126451500801096974749228318887045187190207531524230192292991291126768343188061744473804450880621924931158640822361264074492127825523014461194023961402067094302630740712725224850039698160681854141046557113511474969718471195046268487395184551311834811939914408932374569288089171813812412402184397505327824420236946759624778692543999457673664112155939174650712378955356864064297419262001263615677744521910286840143643693289948401728883640220764820997185168371589472147942424274324989898801883689218560102530719953811352201504881578337221919551804003736970733926601574486532543542402702672728481852707132420434958482628639321444881452854442353856137991514019280677869054515636506783150130048431211605869046953059714950931759566882220761480178646960472725516935659666015199035241179158124242360521644056723422690753023333222822275067205266727862395621818962791710389761000721701727703485292567862892527202286884935558228685849708510413376514340259301871790105732555126563172630124993292224005891900908066350474857825850219901362862922664825975709538698984698037726056032146839096947104396404072545673251904717686784567782876236099148182244216856240076019976226990612537171437892224497768447966748755257180654355273136991029714344610092931239826883435793838558716518995688545046396363627448638302250834632643831570572020202851204190359538043098753797018442117301469801150687766561974484691900428488620652812308855698901138246871447391403711525928535737495300629438569004080353190084575916645357097464506810368818431334486625129409854918316466929703160285903105076709591658451470629737584349337289389426829179907870001307215808711443128946907128850367217917619300943703085114883436019087284769859788144920197545012028252022939028537696711793660612127356233496312706318609931735350848405535107691158837676976697195288019614754679076277178624395022985630609718161012002811593297088459891060445430273010553875079724388388517067658345822615730678027225255042770617258230487028582492689950524863524670566562998561908619583388461851261143031788515246349966339493382395557215161723356558989369735417560456873395346388714777593064472478809700024553020530071041708204640578612962807405273445918388771981043150064158500678468051366597610569108303753886530380225989329857047344239991393204084627887172808419898471677640027344327265413161028760584656968428645803524104955469324211064120484519413890025074979690585602271418179360173368324653773969679982721162436634391829947323089026528695657504232409099760855748530628387669162225981502656092346021147656678552811829876308139159679037439239014772191499465357418942293023237967144302160852140414799038451090331379207407881261283915441881713335009711057232625233888386458389760557058568568278613503069188170366996863060940516212966271443911499363656281580896168333962513762078754237523079148040053547740679508407231946482793282868388098295480316546198285482711614012022831851443535010556061493758045653920903982890161914631174479051796437660637918482054475262147218343977041356591609615982328258901531163316876611957031877485937500467456466412233687791181260426371309866161465996643581082759979811409400194656743375410279632390386896104606509799458818758212374145690586441472526083518897148408833516156981660840226862589849011720229999115602966053851543398028282804638342169770341758921114212746451410505541547332671944581612902014306337988081474552862007442518031774270624653444595746740000408193773376122688051633719390486921917728976691107895909794022583200574367404255300532714124430641045337127583903435147738722059267190022316569795573007129595572941436973871293902818852670699440478205204646720749218032587879803137761982358638382909901713727338408371027588950995239259429666613084760347000710954745720181485128274671578007340229447848187334367998096805733873434565793052386979609819714900419878320766679645977719931280899751992084636160690037973659218059971948909313271676095902956775118845711118588926111960654053988535925487259125571487818469133277566812423008159869775784651790735376688888555146067159984980731964798895008339007573991383103024235224345116398125485838869800244575736836466745347460043140198719402054482251492647771736603634014757868200289421274390420495077618373733660905662255780709680199105500616186579300096478050938575106910194099368944179547193712194200634051375302723860759271938101445172522450756069889070124950009155230397697826845710438947782241980087950691906058561314851668332969566906355804723176846957472691039198618298386708392607973722625540571796754336488187678731172424697509233735339831312434393495619429785230688182797694403767488598471091861077373789374570887933042664311760036052672874160247621675834840965400471841262851105874522331276621846486792581740334044662750529814542985836861968356599621731983502875984308769167916262811480185885282666653540638189991045859560500534021659618688192970201694717302624925439734496332950416054195140956300551566493304308632490232149955712688382319352642185845242251375277675631210674636022008620597550814538482289088601356095243034386898278344639410758647558038541557148687281322774179986980541172986801955464785693467569055496017784233099331933705109341945571479475564854091837223873070237412864354267401047299566135309124042241042917946548667373541856044046708143365960626627691570400952782294636912559993668072001644501079537828628435963184052600268772114480135358848751374226157746528269218238034045567868478165528246530408866581721659079265371151728111596903251653873868574469574491289306181770489974858896424793655648222945078247386594455494282061862409590523209697719462476580889411240084777937697178020666934620202358943410113766563010143048141240280196049646983213396492933983805705216705600311460740431818907382201393865083308536881233870271234525445933796598413816186701642276971381410258010466346267567156730253886311738808773208634521358956801129603851833713151902616427855789644483019172654804172911678112377972122862748550543842327484561668330811361839340461684902555987484417864628502787972150993508564267814174409475153839912399260203488041779078837577270029258861143143439096125234595421744935409652803591825406962476398272257915901326258027284375386367549059788991966985056885051920987058786280379240646385312176724567200205847744815611115429641268584408847440645062970002263775121137052404541398108427706865626616527419378787337676866570358098930245279384317829131158706880382756125338129119268559300770653698399217467784950692316192112781601107748485125025780523047158931929674483996214899441305569422981790443497234944156856494012873449350098043069100199896642026098022478972340910178052539470990244943761139682552310326806292270994537788318855408678921785766731739081074767467313507253118813805095667352835821962971407310338580941091905649637508515381600821592362010546160439480566185860090982674966582193191753475825129437638654555137572553012350876615247845700370946041314266016003394057317018590731003046864213006619893884007401161586656131170764390763971550371145516276510897028655807573262189465578138480617788841320191626963969399810363659782088582574943939625317488693864357675180682329747781646319456379601771522940525696433994088797984410471195038917434045075884213721935929114943370859212526545784931948250837769187364692874832538879976584973619135839916856380599843808149421694713791412218909568786313065062484015734132353171964122621625120647451503501656314107591596953599228962035728681330507211685586196321842546727166845844754219784200181644864579469958349562295179123835124922711616256672638116698349035940437328617335994877604606411379076163030587977226240301936370264988710271316694545042874782221111805506737912068392213094606663488298796222677484540227060619422644123764012920279623168959941669567192626414611906715203002610665787130463656402126403097951816623194079977640003968451443657280266748384688182260781070431030201448374702634452644774904984371942443204191243190642223678045692561472097355566977552169969789098948899098781437322908831032431465210721654218535249980313812821468420421639775545383009085023327905922110958192045747325709349252864708832859064585927442076171740836802701607421615384771054629225750943025762454243730632529562465480001154236814805705539042536584289430767318403609839002471673191257214744554840682396775375870648335519489476105340703500960703934353812622616386179883977325713047174476318820624777349785472737492761614478775173269398855519087560331937789771741439506601386512297043797473388873773007135177303494202308881250978347084860425870961256433483438540056980036782530855993666819802976308282708758579987781581526278799541665816885562055118187891919411125511440402605091813288890309597689450735689401208490711511576298994478670470838993370748206458156853626766569427154089828076424529435956931775727544361680617180352241209047780665584439004734569192667000984866418595265036516616291494540293542556804739371718475690731316693293460721224297263938227341234400427698880517501635481167055703690951874097064996569194412593639586753319091943688650644941439950787868193623232243800735251359155791071331697495412812037414964450034041470183502275094877181841542625709343428762348934232192434188450166961491840218162572315565973184039722440988227973724992911810538429833840035195024394921104488759133024780444566637230867523038985651538101290802082108309978233579747681761073605347496018963590101221378317912707365319134358899521306799435812651690701751206710803142393473917153134330345284658368312629242016732241617202746270427413973705220455544695127702176404261491591932018171340062229169833102877999938115389290797757424434315582628070450541324884523399068904493145190939647699620811767849642571574900101089025185456011396161935151963792889293746935058840898738510159582498005983785345416937940587406802562410204332890477807791166753539962725315801387729078110732420745092093425713499952773477656696098199618336358641329594329394682239511795156564300198934760288559803875740209825990779181725799694601898328750854135327752525631159115387877480301314785170415580309376999449646098204141014760438179451049708509508441444381421287027106702681951357439948798320608605721814200864165702538615329402568081756443843171303062966679316620195202008769198132299118924281002923637136734425446017656828518777213948876010858282632698510268973998430111468399101173390214066963806489884422825229285219534014889543667711065097423435736413298330694237989862963186285080433855592496158675866136495807143112736098514304853268684054862839010404905333223099349477554661237580056937125642864570761731144133243411044043415254272893146477151703769743482202837326348639037981686851782882641366015881369853977550903371020592415736783411184402713933472700879079848868054151590709582958847949185931671998261640401384751171872058346610417124481018823994349039406310902174930126577911870635503177490288351561211021499314268613270344753505130093232134352801454932092667133914576896216725460589360448056501410061905811800317481072147660266744952091052281310233681940979493441449770808954452398890763726703419033385378631501018654188399416865711091696672758275677642687890346672723917451653405139824478481802615743086513980480470032890720356303648844006284128785634678529060865359632025615135041914560865161089079878462613108763691943994041946679224537105478193835089772502026552767298693810013238467455975220481074505521231402041925678878102770411638929849333023105703056275220777796236738181057641256157489935990900329818843482728720811777403113597530017061711406814476618255562420044745395436432212422100080269124472706408805272221550439439265049805163489092589173747881477785489602846454267221097184435618416538447340949701578339361810403035014562728310716422316242659441749406611363268793992596531075980929262836076146335262154175543075749354270377186442143111323634377447816542614656162570445021688808604737403525340480328323119277030743286617116475913966084508662294235209936707920271120145601371245290244694598385142045581527799805792305863746780862984566988950744860920385423295064347644000069410309769312232009876092609729289676631126908771436074064860147382100068689336088669218974776243001807601419229056767917553479063238824866264681860563650193917248568056082729830764621423940668894703137634972468536426837599057298282259648028479387528839216560858195154632565709192451617455236083346416619077969340694913352372269880923795963696505362682976728929406779518886438276900255204780341929158628920442857416805206705126450391954733640943874039013932128009662115860034407901472643032722460506683366516750386813898259857006682968684658570532296501385264543240109767263232576771250416633400861130814733657222131901163340175561752090517875763769382744136455535143645064124034308638073189687808999176560398548336281223145396969008627667676512280581900704553641497440827740150938996565488822591243402035490976501398586160347997646792137784231201974502071293512450547250790288953076581945114562599974138642936694020340183928588010920835117336201782433942685859294660187028112584594788281642444127050705678523404556879334701798103912379035727763134733968442307014124369689444059701670430243170198129339303954539531875649287702522975220492745835028519183444584212043614096501749944235078477761390113241271256910383192146833017821366329310280180286423239079203698198522773378526282943439312706167335034631264470101612468644753645070717293549561552416504545221417456331989474747711599141649899451979841726130026373651368964543745413496886916663423797431185289872824538528637235661726707233368330860866688732401436942125107222019333740347935829572892103638427102821459199424467504408242194265399896485360108314911954361743803546836281631357164654831755886530601138692929092596679270067401414375359296446037593683982609608841335919674752027144917990442292133190589460593058146639786605526759306921536814758732845691614191818256413078358874120550096476999650601268423243208709819806555027618612527332828431663352318293652103453520079223611983296215906074653120916793233482208690398629489909714538518405815227458886737879344691481505149683831301119614824060091299843282314095120767918199234706622466814447003025304178338157626483327314991619319682204510802536465184771277353885354656215728036599095003348433093611875110996513864897338551643101763016896562941528931273636674362168664101038815748368424827675262034784816227843701151113710604232234850902301073003236264527489529578625132067872260086130129073654514960477849337530740136562888484111483568026198353744324374798615719734513547998640339337283457068500895408004550169254433974043637508566329225571995022176171232959596580395874666576220770057043097545627649550092994582067834823485786345937408391824133145354232951742421195997004064878497100489211118636938219210453071758713887879207413878751410210433001975214597808699619382869569494897014201317102962577763763013535281923116007214583352461888394022827738752958184188100765780700642001781804941385173854076069327838154005155528827459693990684823561806452062422889197559946304552751885144465832260343328761628427846965285442930967213559120632075078347283642801953358673258582989698322873333033320882992838652708244471655534909930683172875236996787652801282676625069262418811279181160147480028642380332481939102401579597392721005121900707244285443859111352368700483142861639057564760754020409528645001680498041291613746495335655321893173621271440862018872489636667530177564504881919039581026355551544188177482135194194149267255965531940521825950358587782792714902876597107754205849743765335029053313318872607094318322135610108321423081252487878111857922261185886466347720199679597597333592908155417300761534475347039707850710448294966790664118113706269338424023771047546784782127952159367800267520225836775092044792269839494218244355428053419609226469483813812558188228085794504399666349426219648703004210888864278361501891141956912385773481757367826959623336908955934874284770343020924663405411663810316446479771522424131882665450870993577565028289056005674652081162657438496228621981134365470335822758161041076069565131640282587830847090435207120708580460502472277991246368446717507116808051706363203393030798343000147049662914533734211848623005394299146332035112176381171020059649193070445965908977838037423090978065148699762471427045010382120148519237578268399679030887996179015709947741095634240188207758370426650153270342701017780340397971305709130262614315086866079476833229976646460674211368204133302839785525416953601808020429899075429906290102492984987164995145556770355989467691031224190486207732301206216092011560593201648161383888003317055825563454680284054758574124299539172612240761930009160730570668860724238892285242759428721195967290184394266901043724818101004373480384524278769153802803871750037192431895737779862578231829899330801584189517477178677002285458670896134253037352111890083675124603912104226471652076613326795889835652906814356811278884576266610683260083412494918717475870984966821969641725558233535075353091781078138661279957892407101747572933561134930362688988172885586834281394138980933961694982676042171502473403892395664626295685595187276175407835110300047650252590807060690184683485123586915541897174363943869891669002687682999679632698361114862057828916662878103663986246423759443916247535008324319014643781888804743355339347540218013931251756497251771391659539725560080118736465364979265978665156816103948464259750772569723082578764163767914772716546900800695668853572838230103132736358219016959422786711625011438051110330058312764397439342786956122372309380590710166297810893698710392612357979373981728359163268262928352674124400375275021471292970864544898107328135785432388137409709158024043813346628792324567407453291607652352534538293104374806352759126662292283393809135776631507907112851839981710132835743547061930417116361359774747990825518562721320923313066780510576890188648552811694662832234351713677231710217266960630882482005703415893221557889411397682234392622329188687127967433636074459811250330822288176163200387613655505426076062154622374232257130500963056265706532997409015200458189537217310929229203856500071588647296772043954144346828805120086576499107340012885785320476199737493189891150538840949235073496137459759052430295159712477114367072116601599227665803688198376109611103621280572915078633113804690960024661625881470199062441153265892189348384857162308325539701993356820350900416376757173865652482198129215062512225942462455564486947829397628015234255546703800860163040762547406234975271936370471097438772180353239893755049036595970594500452392815448927166066503952707483486485807645453588806160813746395915878533446851915827625199943817327908800608168397966141160500939077608735308085244609159923183652343012762990743074897513990956159052851570892336590991769524413059839939533486629123257706083387099385678392669762097239591314315668443584692572460479654390989671544761075327235663294872963419612794101371774181046833948867082172151805105827000418694752951114903875507085113265773592134108232695258700661819898650905948426568521600071639271378633737474503018579821106340040217325944963695420685676373832040203654615893356406123385342972303709178984459645489534921616720151469331203509327336591492353111715150671012964327366850483785470702004898679055127547141667083854990866332136776685821085468008008102855448187838768581208932351881227143784949273528683226337309839217959326315389022704415166100279923230304902716440760608889395145662744194295063576517264075802590001205583648082823053371719831192882761529214474857690252665747470764828523395191794774308846384673590480492622364595873170035388367525793334114972881362211083684401874011134248089610321134969544934689938664414379095624015334377984215550697783706002007465601601641327033690814664139664336508574955489918027068418141222176482859510591551533545836260879193202029328522904008519387350997128102549674681760324185462340487739057347914377030783792711919014359029062222727334228178732950484800110754544012189865684029853853691472667543729378966762207270599342174977240653866063944611022334062865120961839941381212344563078340838861769502169869428488915135573249339318383851689443033988836836729004123641780103889152232790145786599338447700689220907206625649086056144795517745518169376380789533746190477452352320565578200143232651795410275978154742113461407183047552792101533142343248086040839462210978856145324214155851798235263798961336894790150488284272507540317342192144476670559997045178198109233684231361405733268278096917827069137903773918762027018582485866992621293013619217105224667562146839351162323277508591832279231719522081851244770696848610824530054708982030174083795720842854049018611584144396481087284185484333868302645797378478016356935941510075755977541902414348467352003104329109646886947683425009686929070323235312644449264552366094514456625014529436272728794058470019173441802230310561297943675117493989628090135617021458326810536048571643037826235059605973642385724442699522041263511188593398011172108371542426324960330695408655417710844850618691356853007564306379091283502238644524095317183221746750702583323316643658770529887884078479432016245703072165369995009771667792186448009147240549079984528263185466224528095361322074117271248046704057922557164862938142170981096450770310364120686608572121675473864659142206959635362279459126100624231752115067808204302154330197602299282937022234179174960139833100440677449189786488206879541758668277120123121115525720188024949335052055639286439725286567804324473735690101366030600184516148415585155403314705929406643723634550436610161102419166613474663812141102142644521502477233870506891169738962188049724638653976625219603686505713052181925341883917350983743985026260949018244027791981780853598348979234278869196631753436691843545098076953988439304120063788135760772742994553512159195319650490389239560613865516989400502403458042587216001009382382755314791007394282952262704255961418332025504712180633218325447658140962602543482042345143775704985681959301911669093530023586548121991117498866882107499927440578935408055311354898238919373190801023889788871167150805155205830300245135424664795812201932589190559104434138952760007475178202349472772162385482739498510747007958182876913443356715259307566854503059996768672283671543567761656820105386456179515414169743788991764895021144077757550887954185398797362982792615761952607587520850697689555966931541769395956635194184211384448385156130734025809837644592942880740137004443034923534070956556378755289648305327345634601687687518822327166947067575792407763217327150040192119620308759916563938411584807226777924398640429130539355332060834180812149736024352869884432931768807818000600482515667291748532667880775543906654624165937764209344995578812213377130195845888905558136126249677645689234533025359721016634930359389439948053208795062897644163807447634181705042820821447466687900826955848765761283021657462300929723578545640304258486289926556253729528847065448391486522500315435444877002707866034537347990269793860122363932283636058668305338778309913750586230499309780230428490811190603898835807964784685806890235202061225773432379229876088410514509290397817574246863116358804947017394772078645673327504594287418340699207521160752078097221424831138796510966328478150281900595853797687912879497529106454091040935858086262366994171254865059178566134191147862589727638685582794317616170653513479530762171827191663099539186955686846204899178429327872137650557203049065074639026539695963111288981561490311297732224060179097137840375689611796750328330133331525831591510457104304502731400822102310843621307615203140441982839885948094319464659020353244568405529584014347026561433883782517433838600923462164374763527069356693898105578110875106481015539041783179246988382543578945836823465649665010927435068624522454551307610362431436638563114147589744224388285532889450696357409134438529046714657305154188854739375485801719402201972148839534734042480097841970136271394179316860359091601408445034957990811782983699581857000517237223792964397311783292697310465501603339820070777874430561158070169161731858077010407397475386365207688431280075905601448898772017215057983386179491443865046382613897581207943396799511960315064576689269877688120574845581646770084342642601534294392011696246631107543205874439697592602099855205981733529534049165156130967045195763736318054983586334375021137576615285542161371366280320256219057809168650310757573246970937212773488647306496013570380810343562467688178989250746433252567471047105222320242192167211310177358204070285827745413978853785019315998035594842060587900578532517023339479309539292157112635135719165870415059330466829110538538257542205232198212293042548573984802007066058666926364778730536647905897534815009547399397957125256186570022189291531766879333353213278142154540307431953894718760725989499223396032578837125010539671791439425921978588076139354643605085710757384972052493459486439140754899521304014242480365194412762723890427543808754484317344557964561975943469840748062637286481438242609293316179429684984582934494355045688828200265818078434420482923194440117860877945931064221871717388773020109750032019435931146471714594298944457649384844930503746250258236167331299134452721111673184116205887350595263763841487138528950953869486591971985395314548863800736193149317580413178556440824514953708488483003521911008659051651370614926628958728784618737675287611601806340395028252529398285458745928643852016452024093169400369668154208638316160195293544113402716346114302624792956175956953397664489866490454785651426154441210041055743299455392980704947351695050553685551472275799530873336321938288200255301480896957362207682721475815976830481527163058370534934273742735934820954619162094950988820831169047770193392084989625449631566928925919926006191222786664031052763190393255367299135486922753625536463044751749148594471282018122797576390802204885325829311477502780498921143896434509226344537983822214446538847679749573675016945486255104896739458098775148326980778300275642512464156686125686830033812397581146089332453744966918982325832333484936488683797643279622135253716109672905276474647182331142812475118194282293470601688693343402985236662584828126862138121270001729603166355642120093452896276173037093137280444475143685840295895056273708088347016775256574344595359052382548896592241493682733495229061120236290036490904352985201703753122791427140178664198607565948194564507870463255373669513514377100649045031786824828580495117256005582358928732044843053863652720164750177456593799205384539346236286574653266411292869464242576502267201022871574888469723102506730674467590969214525927512190463091668022731417270190105061195254961076317623146590307788997971264150841083927001692459133130395361040767608522415682315805097413142268618507389799244942195900694305509192932064859713204345852504403188376100971822467421272813075972618261578678451525867995957562053531897728824333429568383169315563795179699985936548014251543190756814927642570351317265741262976085785699781547688597392478153319827097529450584453169866610677881033972368653011081770896336540173937769823720200753124111327520769714767656272940074133886497837310803187402630986879534333547650637352086892097380768150797870136752686539496346189975540910558416425303721268657999629794449643789380238880850360633258245614536361792404550181261379670481045729979716765962622816371947795832594179912785520637503540801949181116073201842140268779451757386728847190276200765819034127061898686235565351244346109932142693426631562721648341818922334396465475348864595834967833751611060549771393126947751484629980651804551718536896868590195346759129010843789834585906477537442004042195617716312978749070482876393460303253247961019522913456383508242997767105395411366296487711749892172948928795010980042670515671746163306280580774073590051437048631502228327572099001000113264482958879820978710034691384757674229132055484237539612501954043226461656860867156486555951997483093199987015860063038619028880689777690129959833727387781625088891906688071578063173219523512356962817764408908454045460599243626811735153870368670769193165433004880228261431078788413244856997518328709842573565401339133175319581056890505159412933248379895036111919122780096127961196041276227574064647750745171629876578910770249204255188181896867890300475266569850674120721209414935217768152912681396979439557408857554936041772097185087671647926654247659603349606780301758578293128028415546044567524460820260876820389028776476905140020118942676629346734570371275543265265067600924182746078918360529122725343352948363426248900567457178074079882303839827885394783406819912510689695214888639152514982364233197218192885658792776776379753574601205215838983870207091728846363072432690098484086709218140286765123555312516691070929792414787190158977509782599848298809962876479209310709671383458637098650484360345202694873806862731392266602425799254623239782906732402877219966042482695026930009527967855320029418979042165506643236283586169190659151773970455667469573856380448452594242053824472674842411857374310768868025139146721706128125877804024871470467825970554543681701185537959194860509149675204936870386477182936530669360439781811872296900957341799750662625491108038252783610609417503728328411286619092474656771914135218100000775489031387568022784594808641834453475285781599395399587240401468260256349760953669274812150501334466769843288161216063225349936208856973722664740112269653315915732063886241341213070779713160835526858234232476601654079599577015426134088557929314810548089459609717617506013526008140928888522946114000514672539384825204049339689974452182334060601502764798418635013331211679956247800315951796132111146794700671735327854969093911133853229357352214213497187716497395996690446006599735272531297096836358024188572349547981333855876059769147335100088550552914867247710026960437217557157264024355434869638918814548591516739843984910299528980117930843560033109887970775552899095151123449155694008449431351396487403571144550328581224995319796588125148144499069124893782351249936892943812360811090450742191071732051174243751072687599229230273666673626833886805448024269346304077083251807921123091976309970803037409240668322772313824186165855573771883169789860510250219838183161540500062020281389846887881093562468150131324435011794319558428771773058148914919493106028718050983524301189382581865018858011824007599105285552734804924679497684001074872395868311874031522270662666416009643621137995259614552739720133748417323154410885149247472737294256363911293598168067943661895015071094357032875820738549391526538127897200216284106687750903337842097841455332987015956307748779813901336590064253376816587485976521235465918945239975400147691262756907455363966866161239281242508506910905466799090341789325787235516727481563635694861282727120796039741089831067844539516066181761511130471606189786080264749406469264584564413640483832084623651563174595599431526167380310616361252045298583520599168688426346943098725836210554575435262569670626328902832691171734360433781999541841709274128239602365780467495933007349796955806069984048365050254250285055306078254551381045847442717961293451475390966712039046196300661399399545447775589893906449677615693912687907983964098731733923506942649950677103080568212303204327311869665800150175625522739006664213630533112662522649449544108346620383347618530603193084853972664303918363288967073051009947033712770565797250005935276158263060152065059833902533690135000042339087120849311378384383238698285466419956312349985659568481520189899800948681236719610372390566165182012700816741092234061133944542650872345072835394189486440817678984647186410601136801310002871218210687840229641790831713920912313665915520077849273697409814641259358794906269437682521682183781629946290565813759746220422969013828728920798376293494250531333240707641173150240979939092394230290318718128243545653631254549514716200713466004419615688821942757415720071573214362936500163739150621636687763906502040663875756772082711677803933780254342820999242624443301844070674017814611733221018742389085554092092077723755349458631853605338499729461558794461546352162968999803342967065181864769348283532030315967158180987036500807486035554152205072964004191734539370872157218722513468024028843469492867338509170401108614518986929417807304790980936693981239803212536614920206243905511249661677776842752426134360844417409356327936998702680382885127732254235920366136121432271497974143532906092240774613673499862302592072826525736401945346137554552302864972288477914309628090576599849908385864755187496357081853294869453693163028581988147910421450420924910605380097728717125635022579572667128603883809619867569946424029747884413598538946096815236514243231596027332119353945280598589688245634826135862291518919452723075968867448632198925008018769628145942611164053741214001218668276453434748534566779561773287893764353097205067773261668111903582320820444502365703067990402988829281150896503663847458826892498855203421452085498923290401294051357616017867680531707012349403587964720831072732597794885130978816719120221868032327689200928007461406615564186583382954544583249593817912248474932907844480473751561661795014041363023925538493989451570008253096616247353415122718101894542786059217337095251612046045257809704045800552495145429530905039123432385465259362383872646983407121758481394336573594813257244144813681628952610179257198399743933378885847853161520463303644871600635896612606462868788755476893219617751961397614268029122399457588989109660245132451839730538591829693159628786184147506459171440428296277987254487367311822080590440556596274836426974247807537728291669993875757889709873602690626503292228368903097528035979133986079303841777796924984389463110453245969183424097450120194849045324872274832402656172603876512399355793729039100901528272608098903989869755411036717428424418100082893602366071210125611076227786456371421655336506435970665247407754709514749570260378788786913398916459734056224886813116846376643447105799471262794313939532553058834716892569474107693127655879315018988843931170516067070227256516794334828315139813662915805242261670434368125535856792663654603525467075806604695219396178893142636552669986577887040607243524319510740241170676486335698862365616533622203814135624920870493546257785756768625453880586750817315913099767290818705179779867939511181184540581371785469599893229789522112068804176097823760662357692620657770576542121452148521002033285987165448476612988553864741806448598431251619190563005218299961515451359840488641059748102304350923163002147279353362140296385164798865786508925929774920740057736707293013068204057996344758535941546508242801673059942067669861263814106492078705839609187533017115021774015377684880473604141145327670393586800579134459013578119332800363241325774275701049283950553930210349409655004641118989684271418577049760113581103091283938968810435748736121576973675229578074859493490854673113999078278656970987304892383705880787392115305721107382950732068259350957976369375239643289658279495240105351650184592231938887565987611293872469602482871405144971114855730624444643314578309631703221165320809938300089754231688383143102956473415204235364882096386158474267846970142931777108866621347357423488357524302937538523439976518649061582935413543824190254950166656996921909603813399107843650551705124827185040729270050495758775683157974826765903617575557883186932964854846256788765260044799950615298508849663577654296123927526118336815929955956617587252904463162279988861029746854160782685123677942545728105807420743272351254863943904920233245057403649893199367187381366331505540359521178790952072129869334768113138090446601865362434917992285032899010027270621499984046032089663364353889833372430450806781112549475654115153699264268152217446736279420367237660990673689844593650179830558240160716789202219626679787038309506411585698269702399639211235911792222789931954493131153660396542415828470165709901234029177203404216365052817515276572763806345741405358643135307763816838018514574753673702493094792814662946806115790817328130868388785487959574517873205810648363970642248660268638805148875883226299862338564274568887481866904584920495285080899090587994922936331606302525997093417655425167400946121546131376264338098818688135388546857274077826277254404506440081531555565177308739566510430614621850123046988807920387271411060560468508714543981160259886441527810735299706604273385206667145950970288520634635987227260602802157045047864674759200856695446247381098012446417144313076023567887218540094131144148744369343321309230168062796186205209795220498823954292054117346641357879275340055363379107483019693895817612353744616636156781036705244937146500296802271249890886145408969920659283158327420688262864442794564782388054629897143984971719014299496583707301731802340724774461620733467740543396555563498985927728412539333892339812251739086276064005209369497901390717132037017599051306573019544202966730176237855791361193146674842827621230295453950151237380538793458698438182891824162633481279443614310459506143347469636381190775525826605354077103967457345140725734063677541023913636698984226586843871096187217229584662695477676974163529263353052101362945026987233834981033811210978913001178202676439147830785225816817998338694339043701752174250563325821461141584844532964616735945410690786634977601210898658020208428856998834541758263700438152564729624879080470907336559129610505820172913247182215568268449987234323667537548654807003098893413414870135832105429679393681103792111441233039898747666077466132707851931225097634125374001398792109232923179973612129110866321037509971212916706853109622873092621847850985505412878039726147709111698662074527445334683072166803160949772330857602178488740254799687171537657097667657339904846430717196948946863761511766344868492769742804837656843904090507715038260339214991655289160582130210773122939790630816460502295418178712119223771242249311477483307267722577997059923982927103564676641045795257708459174998017055737617223782933179433257737789800555377540412318132178838575176655854898665739953884351630159911112183162805995394878641565996312647077554745037469632271202286415916638745981382443561707680446128137396739332132073573592050807012803487749964038697853733287860854930727258347716794162768329487764208649170599606140772525813504941632591639564398340261081844999891142882619544832381709028827134103397921204427735313011675486150765363677639330049848003281504941721087834259342286871191871386389177259269637265714356460585241973965235576834628090359560735426212289351303959634425931726595666119480337800264512050857751496084649428825133874339012447530939484255738717374055985269016957767214476775783206178202524693547094824702495320552438051256500553754067221712720390945878338833824323515662694844766183187519932866610185535265784616149064037901060676546101776462783610414792015066784434064325387827697747564377778534342912903656299636303800314818169503498433353435397506474283094956858406657833146063874203779186792305546947002872821619171951954229802293357988763545091626114557979445428683919446641564095820391289982684731574513803383727235132012800484664115055254504740763539227365396628883771137794898331171330307816792091348842682086653194000045551669926172390732796723989711681775626416281020148317404539909524942667950716795361161806955678350422504870458990030556683529972322554166408796881004187195121990135851524904821719602751147728576622072880435801327118861415458374663836042091522745938270100763187789797978664393959512679490290150733694657007067767060684129493651983035097821645253202336835704142625426518637079992769426027906860860436852071155243265172333301634621338128240216914554850026375842744796969087761179529307775408686178188067271324881417417826388345243194693051671154250174251992427326137984170914824931125418384726013582762620325112170912822837568166124025820250647366961142367424202357734746683155126096610825057701350244815873909634233577174467494615943939745277993828700217650661920996363129132966880254388108541584480198620347744760531136661555349264326405326207432337673339660133678680107831447143299044249096677137419747947647975205842018097200956736987183495002742677855790629041139259030682323239001222616702982853421722727632354522000972675420305777905622711486653766713791169554410406394403167426790375743984021792482338701642394172495877593373741418571736633020790692931189770158679505392078572901673106020433597141176961092896500914498763731420564284043382133868263992134287771694416524236462093448554047070649424159222581802117247036645889194320787475238122897263966292797410745305785675935534777856551155128490438358245332705595635393734134611115722910865901346220667196901293903976116385836917824924962483948373627218653328957930609796163553056545408857762607435041997846360456899250855232439719961479863905114880320682095232966458489300862355743366268431788136080084673496095572546452131761569372601355496854432067841687132074098259922187343448021198582686292420256278298211259340340549577206377551771887472498344372123802051373665336207397271732601804702397510106496503837994948886060839539675722891402157802194472136012335122530133399271244922132847736224855689197641396449103126676918368374967395434820707511870862382849684695566473280648306775162948153101718809578004004356225017085913952463746153236199785747593995534206326657257989035369134757451876334827938470878846278446435121477471657622648003993108150512518885761940204547586702350557222648831622756413298991874601512742727922290087203644898524372947262689982587094490872380898668673137344591552777071118729680623817132584402471590341204723028938307794770756773823282156275666010865958262067286216197660470147123964851057368657078751878300728421739281283383368851162438421168786955674085871889749677617939046523146164073185636702207765555036012294249737043502223608550010078730928274180095480156622256212425060882066573039485670111590443084181138206889705946185049017008605404809591162517849336851388767354125228345941015568201634039221476175092106159898223921546730521519808591658757448928387725320555196282554313711919024782092750707027397036411676791443909579291048175604275482042385875601446062284827906908163122403572970856888989461081073949915744986825614125486161039020651563149217771404074663526464156412672345502755082855667277726992742215093463035111580787934121564262728860953240574205055467201273667729417405224778925799119112217600645878155902218198145019897524766230251778193993748538351449822238276527295128232722701986932255041127851280303720384382197841412833123711606597392917939814385331138300830682479780383854248445813034527630893735460400834181966813447209790440367412858570434346153232323872294613432226000805484870608269749641586521585931750906695016198286245895111547407311679372334549465297199943702623540088193021811181684069571046332354518892325770009882633146573730438413521399094712317013982579386768936049450859442099169988712960465346482365202677321930780663812974283944767413145758576978078575045326960087558898593597334776147778212887638405706635181978467382505672367954429836560235112629059759218622509070644770636550080600278949605013096256897249129552236555390421168042053263856617415425960223759313316068394689596578198554716334002563026611481574917609989294156617019379871398845508375523322496073587806671223058333692719590513160870294753131042856066525133861155151296114506200844456905789517892572478027751667760721686237460257131363333479861830617903139620730928703017375540755408170622297768778480827387579848850575642469362199669874033846619164987264888275794765520699148318127536306047824614969546675735951130934410954522262564332706065350802392109602352699593796763896269513993265274077638893954068777426413813120379521704491666722556562341692683996883228871179561987793325940463645836174583325711106951288575633398616968299248704581277312775691181324357244745142997382772013138720226366384407236745691508078242386753279408304561570066853232417934256824818214793107017793960393216162360464561480418285798280870325475343963584750090538722835799658346133904440831844150429482402457906318015194942371878458775130328132340265338770934368830321215366083480089739990205385742689317092996206704360540161839084212292054404182137876878185771419920533763292595056049887717562676200420613281363553281915491244537856355624502540857943002044788702223491338866838497513736615413018769962672800246773994173607037331157491887646484552948120022001106561260735069762842376630841126696136638536708000262411359710930038831399195391267370120279728559296252149482420270626615457103371628301997605988378699367209419197244580028495290014944643683373749836156955275070384345583516770848295277869622048680920250213509964675691227208919010042693934772308153084220137612275741306171687326417095596325661228032439848400576926682671803142413332020122973308882176874393767282570588386754332237498410682229773403743642149330047761447681756113444397071048179586437512608177843986459270057304624252422600537882414678295820370385601367847455818994276087793822284189378534519632635865399420849879643304311117344755458959773327456475642506031977357950959037686492980561870026169416579571923290900082235536571729550727603540619540363846478602368398851832615442015514689635865307324121336728257650851301434682437284130046963339024008878296037330704870215775313536563853625250278986345460221914258429975920289018845643844497735033449097443909487855398631341551061016171527089470895323138122591640860431704510364401815267207068619406060533189891182178019520779482525046423087024893426444448017580854268899263772357001117618577965166304312869317910777851516309378939915423582017861475369911942759732496286311355323265971823616788251054255579487725359194170405135021481203608960176896047132482717071838789508184633688228501036690498666960820796076036653070710949782322376744421457476474646019667695135987064408983865795096877870478466588382623528479667977856334296470625154522151290819020684000775443315349889899863188357195535079187720457542072852778754148337853913504540143017184208459589935408137759476989342473092706469157721488619678139565456713798647556738410634545947480791163940258170047418495439904953184285628925034782512194702122707900706082608857673324811704742836769479435591092532758207322921135690677426887948786416844540035581466616160439496770643323767498273338346369654240043366098124742704836548590136373565619997864666672618022434625131308554201815412583886505155812947139596637190532105204452352817837177561750317442272220225457883953025941403741819819468802062795813887845596398486328740956177858365594959861205234296454095130779608916828180754277029582913755022385877537380134968654132179597375572034691323999392252506121369594057806814439230158199417975224620802174268970543964601724386215505188968034234385937080129997027893869897704215091778591620832718166107762978598891750585277473282023469912797384010271422265858854668024345217493121680178518538274129397523986315844795614784917128172633783441199279114092136599576477980422865599993482606800763173410182008243415127835294601800637167759425160884241228965969829510048518362730079160734388174768725377883159458912378163017574943561688188547326986846563365488442834403796788471355652350449524051331333906187522437591508913688488941071085515268295991322369014781760959910659316488946749438359306551039838150273619937453524216486565895308684024827590578330539320084085454065336426093015768934161429510460647989935438034773167782241060564380354524500144418542283039608863865727759806516957390321247947980600631700631248396710148002448717986544383757993608711266346579180869787727901447345853097619918503377061561320692382976500574757988810415128335743125058834325898931955429245452919002223580796291465666798528907990797941943148209838930265842944549724069501486967993199739245431721886577519849383203140455380161000557115496685465163436899054373696230218585379338201186530134164848794532447775707494893003558909336300288674363948564485418948124981927166243479335169850927925138106231766294787177075976464854628663496367153175813632013772085954324348196572796113949766148263823628477601382953789529793869082407410168554829169472353788245481702871479064623013958220461255621086711396826971718703364351626807112147373136006338750633580462584035196679756400806785716346333172284514616228747098554626877731788289900646857255114027703358696473106575935349991707680981753673928457362790244289305377928127410359639042895043631967442289821180690539913977880455602161458573531759504727943083010397265312441680874970889179659324360107317266747815819827915135655471359775178063272884546235753004938070139381771597636830400340956134916492186688655361193538002417106671141784025376004690619271872783528824957784524628793724837089954358049951168119290502052493861444552775813264724820577554135128182348703149428034365557635738764372619852017824512714316323640505235130803559417844835109617859344623833712397321947487586317984713918443115374813481126811672684207924772634564688998434367996923274423749978916655321526580334772806317364375182037090825961998662533177763443780439897755370256232583654053934336877766628626200153348919029938521856104910350842579883168643909451745236645302106215127298761663913752399202104594358257870357485234180211268673691966241100615637053952542528184737126172488769707092912657902721824541627722387219782411649496193503987985009307048064611137700703350842321376683183703817220262178702729494963957376633460899883930364252156328150353789575084581450636324554717081103571102626376988795043808074914945748415970098270720532796634256140236574713537259914985643935035002682528796333503141852035776694653057765146519576204601579433498678039345526141541575476533797409280098543414079721891527732647933917332371873590122468761379620991159114815129865322719770570161475219055112878973810518391905121128424195422969120851643809591001410962891490659306116160284303926106055037885956125538828789252650320507981584468470354449183989269605742437338899302459585810777000513434983691365991494711228996487526984081849445308021122345175913699566034703378308888916191588151002853506155474597221480508694633277002277465342930384510091806672351750514338455986309608425392256918201553817248199264867821176596663045350183900023951927076248736553175909561480833768447576456937939351625470235161553886850243750523977851386028836505977972231498465943687667784067712170861185727283486958347232086687144240777958512787416972294295594211064408354249872109539413345455627035554250236235644922904211415242636916186289498829028732807485301753291239611724033525207403786450683628208268541378093041687921857176504320338292150628612216318487651469982073798032206514549547819204290429626380322198294114311527285561646896439164424405242302773278697757922363686989344905940888160849237993253037639141703770081405528682945203397340107036004885034148759710097909869198148648120252407837594520397404963208456129352289685309101725466571510859686624841800148573835803989926957072789310196169363838770288994119713655129172405224294533599194480390607289669778600704896097163081918333168856492273986310223394382375534333875988048544031493992022247793141927497130977443949904656551431997570942088678358248377758302811137126207258546696877334529236200841721190713676952729600962816955910610142998777658573481422310504505350002167544259324264258652356921182997314942260754765400897822139466740125564462120138145060871120489694160508691113545483938990784339751930205918473045230122645550655476819954507330365652108680551798841677154067103339234355322798087995224212176142652061762337515428352145093290347908362924422185012929180643930633313062447110582075708051488863990491670293278217969299045684554388090498618277085465121421378991503317873482503735534825224036229552386763344217936759174118781225794777299042531850013883365644477327928106357205886723358485991482755169430108627874445843284949412805589883778834048836204273932579917236946915814624098536194771574608403771815043294496711836524192942532000135533042376722027105678677872346246918401050013992111123527153512558122310154639187769812475791330267395659646474079651037219833739460662506384769372507847255470367053772060681192087629530511375011862252701413363541184484094812972811115846482972326079715854937355577052129589247264464785701921238609428028917324550338693716660468239751094193614434187107618512231941959405176414523201177471664470333766321162384915853082222120687328929325201701339420196911264316529811462442007939648587560892082587698158244070243085644343956846413527156224183720981067435998886590798172882905852090945029295559539927240890130748682526397033971603039204562169213396823785318863934062801440685950550524416152398465384060726513152630486674457240827712013126591788068113147636733014634656829649556531416245464123447679063444615353225353947715588415114939970373019318549613264361732106271586938669429904899177983717609301598952791158199252562541120654276812027029917958552746532761285742766509463304364624899081284080102916466251635437973805438718281313600941157651035471356070042117954686205579451328390541412700761369439012601810803462883684425561099247598946365891371364302714404153700878398093531148617382267667287927257603210526421567192012434094362208028015151172538323968106007755530708177681953245360669859473085431157300097031228904201692060837492870568675578313094527134422617217320595385040031447199966584276857114150164249167385128493588055337356368877810322165241326187409301762418595779308530926860458556611306960510801638701387083083825715299807069539064025300809631813748006550377855171390017813680920894823734139698642092271357770897281661630276270013895712797503767481094981763334439342459605813648141533535033263225376548243847826813256923130284609211906277099885069935999710714327688286778060910883011155823784319975259171409324202101188957681358317081346303515660009235357088894238107996261529215853752245635584705858082002800435845167290027859444086344125128965980522299892384025530289012073928976633457301786692871664850241566028528509351667885576360719216243156489591631276928501799248184681205255606140037526099952223497556198376705354756899096573948869536085171263027120275043959465668837050734216030464149576873362877387466925932601678640348517122693693452187312825846885379921114028902743315365119563086474055356219517453765973913614862200294138573341332843623531948260132190139949685910301661005917739129985364565202892248279682161287609461969439345280940508646308649244197866748549499924399079321934325950533798791744310205312227893581109650264714921181810711993503880841373777011359523170131618171812874605630454140356042685082289370461662577579692445529243266935482864086250326437589668007721746847692240485483777610012750661428130813218447065577204435086719912341528637594445143332157450476469740555104553271744737225220882450883552579368356041440759420832443940528900986284613433988053695997465336290273080620537970904050482353291101491631554439902199822827661069141109563254139390456435433213653274170646791063002852526692212413624889938564639475717250382962551233568411466525023184222302869714356074507627143460428005714817625399840004776187054789604636748275344785577344596374642500058476057704207918859681120530724985486818913682495019166565420175609974319759178899860546803776277912540181237254398619291009295828543994091099610113929144597119084098634889776777831730133424485029566088399262618380935425427914180857511446870408628500155692378290903682426129093940399400909805041266238546611421350586762218162447292525401877328264513641567820000065719166999046767666643602511689845209609142919072892322028876334745967994244555656929525828251789611083045525587416269921965280281816897736274127482888871810554998535339053007947280092265711289913363877567765083302447072698938521283672664377862318100174012549320762582233187106157358424136328192736799393200285058509040932759055462229901586212491708621955610977311148147478946936031897956370313571921288574938676919081674996043761016002703975488004340573353998705990743053991628041481357629908107360166877853812810817414585613780424945364016282234809180465080785790166622871770003048112258171301177351181309049181037452289277765008225773026880523381366796065567808265959522684265595268877133890888872352488832276659209052078843071489406008185851847988974084042567881604745102558200214064490839002218674237106726543505307734374885718991223491945744411154371926838716292382983940619975109257224474395649143655971924463408964898248739090973376912159756483053373790500081423935042459087118464594505715189097376557283959938112571953566874295652273939390169668602173090881124423345226769158306133884116862924435418439082569019394399256687955209757275224943042668530284396999556505788804955602296631816010004263524842202152711599312797765254607840830677192689303353020491836860822599546069057505567455973682534204982079537677967359090120739598597827900575512681049418349978326945135672663806013047914008268939409312095509079484608333870345055309778539106635257946833821825004894569412322837053750783615432014316843341265712769747468495030986424864783270469836219442039384197078210510546248269918345444631235363460639702367402132897423842621382009244064702569350851246828659075498846810236573822276826698777938019610728983530160350788238141968765836193817342967116534991636627214846272294021671409653338097302077897414842914238181922807161907333117540392140954515027293073640037398302586940485203866683216005285182186080010902047926680912070274635250575636361413088699200837145024491484956299396427371420687541734312129084763987791976084233914187192220237883595504259257363297842858993784882452136988710985522773921416326840164345472580444238083742432665116185440216090735175125834063452954643673003697139003850756267473897006801722718324863479071089024266803438350865792239467002914770357460464286945131388706680995729718891373985418640717228620039717833974501515022492529546256611427041146695310708280584586700067740982890933543452499115206821754319223720968294652109317327035624783979928246102688309801303649182989715309068790998737832114974836872889541581281089652234880400586399739898885379645108390309496134884851675243854180462550670819147315948327710997534621976182978190280169586531954991439219991033778170497670517186294979765878126659728947594913576179030362407280742372197141739872317647140254483867738360565194276845676737982208220824906552566805202825642241895408578096888939484486052165315422922786566729101344648081574034633557608106971602263006524515970619011322317971800847484158573423467332886367450393583903465827309292019218741655110041685665637490012125560823807232743903989043784062403497802042229455796387868598881287789919884681242572337596598075294954074391587265577487544972922697629491716071617387022262261582692275806037659930188615656671493606991761249973910082542122402525805509941045677429363164831703852101905092440758841328752164764159627018161924756521424699650266939451329096423859944864857524345476506540197849167155691306842897794021648958527963631308380795609787197421930462926978003617088091314008403990532995442879881648205673180436728384629166045725138575140336330666663013346882569503204310889555100855318740513538809486819988759643633859638287355230027199269627060499440505746297013608713361476301118707592281472475794058728440089753531396105847139998713715823087565092956755406872089761199613745828681866312882570851950665245907307687742388121558611031964672147125449400019420893674570788467537329794937826766419484541699907767432373231783490532557713837610520029454527097691089569234421759665957875917941738657350692436664609105775037201867990123347426776670845865715277667484364082363730722377076231118534890771005070531998979176996017080057951502823290960641010220619006573310773609875823002121463238114626030751784252213800067450133052975563151482667531852756271572008032279344983656108811766498665739329538326672546314223097687731185369551607977830847241861374272409169649880694061935545130531873082653193071765684857446746373377486520178477979748561706570507931536844123792164781400544311944505101466110982458092683868561599215903489104830630188500390370968937107319977070501559084775584958185270502810206813556677515356346238880187742563400793056708626997698379927238369600075463749364841425214786511785252478379017232773935151415894839028124266172563866760969227786207293095189772970604301426296371782165071597787712281524614475173571275773762430486374979474519438261156407312006991090012507623662812323753377548472371541485014368864772564439558566623420772646304240341241443923232907461974818067644258389694231167298139738265616272664348288472807711416644148058859606032364936612061465567544242369915110477102761432708690919970709728752207955483926816259049335208636633703107361487723888111140391647151189440017279851214178102006561968024682297715071202507856174597376986730084718134587225607027082741662565632267131599923850121100554571951304578761056410349202080364138631519319352839955713791670407751509072884057757619219711089039651961178503411552795396692038219655368950403172213532893355697544183370430700186178300517679856737066701363590505885205392307628874130099991627470638815222156659794534096978340163656860012089445033121136202486008103628081755760972679766232502496865933977021608532325337041999780615768007390890501874556706742926656939012737752986445605125443463922811139791798524562882409912483795068526253241665570732721401518859228744407011695581775272218048750798804096246556339464273398808273340947251571218340721535517280941724304312454555708467218826760759186653289907044812118950060444447843047552295158344668660297372079309449128693909400318750732230837081320346520832597213085964482271400099455834548185982191221739716085427538054093294459710599193776810260576968058539871409522809802240407269001906734801589420994388256778911981509408286932156835760034272520646273272727649754427226428604633177188534224730505168274519961070370938319092457499944838902856099579397142348857207982940351088784061101407101957417786792254151153281289980278142298633715040746715362809893375295221909320995959721125759372753523165468939081766427071173770762473430894582880948153081055241465766795860169785608861167628158079078760807876768624990950677815270299118710400084260322973871613273311674773044642309250818292179484134237175987320538239775726455297837534371056603060167454969847343857548888027771058136452099713094752364549510118714801273979062977353151303893838251957160070884591323025881235449535259171096925946499305111073025416080301130855401358383184910386022328187397520562523206557158261451801618168463539237685396248882838280512202002498347868123105214509500710699430684444101700338597611232438350475845125926109185637858969123317480226717790572800426895198730002171635002758803694308485223067021135750416767075688822197380585071345210556856352404577303263332063533336557499183866751127797837345032514413796201925352357710146338207954031955718850021331431911942368156358994297097698315860373353492508865003674824783808647926261664556273767644204796398670221031402564487707669755043084191334594508610009863216361304901140851088101116615544435249468290210094876566670567278757455548570156741888392497659246977078629011870243015290286127133893736099934422320133105274284083408464326667919340206564828376862740671190339800743633638927024579278621397392236941012116708623830720297390837118218807404695546375267619575081354481558412307057614086044504282594261381899329659636528813787990197306655200310068096382489263664551828978883306826022768438466126246471167906638697341172165781448375698672335524774779876120953510409808220433378209664641404702613495955944446258324956554675464561512340576176595666043983336544868867963186768502125471567609835429546822115983492564324750679981038540194018331759852993503216039309157164549246897462040339439872505746110855221330192904844959049312548023797867299150501921000573948341183103641902565198120370104964745611542832730210462639914385941117349638447542691718430641692187068209310051959519760099579234688396946089372359868734050412634455370846956778669139316514968069493956891567222636227197315360142342198371365553107595236161951088436685657582771877349384334712294630234338321955169262335368327393244220426009448665354838291412273890201772490550610861616849979602688116223370815304573032936318752569043671936214439351956020522511101321555553075269788252758616314866837573847466189588653542165015657652476202117264657884538892299316424324049644438054341453461709483093126709813136846136746665066998354904809136141798140126543607368409030915317532008486326232885805850067801922724143508890294665898229032822561595292493167984746594259955003666011825133109424999377928493502321052632690020906480531525788634672553324509564293974797732064625332980122077567431242706653423500448527966165887141414494220052203131597017194832981844627094524254612673149338206572168720314648746061841225481283747510511065689971399873766435940608555688115133101307920552591657771063052360472164057105989922719924239968751608871455398067952772088704867479582482518639511186636454635065681922454564131794464481284609241162886235953132863757288395634477051571207355298719368397905085850931206760978940444845179409685323677031787282941878449249839725254721053103770537469540253990213481075622719401318784652329121316535329937738262509204868205192769039448581096748988008032759976920992209542121064289187270494529989468543812692318467871444425561706633665996328706042754398239583766112081882318803401180659228211620245247518826445660690457234844847736105604186409646414709514759310692918584852731682260101235694044351865377250502612866272496266224837565056427680859307500848197687041835391935958454648701738736890249453729665511073645958736417772398639422184470484224747571393250279399741881988468653547497493241818904239379290634097736192648042862103544517322422111477866673315606397624511310367944389374017536051660672717953334631911028314812061847903505002005087784676441599355949966183608576271005465701748367962512279587149397473094799541808591814453421577124488278405567924265956922720740618793921304017136386534744483746623400213118800906971843004212443259730458240562731310160931135980716733397814802858132835481724465472960916570599828605025187023438782234762083960026049717609949492081647671376691785520879836649221646261348149582239522433338724697086494710194613470253851456810348996953474903422867096842971316998374591923968064963574745725816562807657251023432231540769912309886140394241774102905793494084224910469686684678203974549358587296095003757467927470640237920359220313148465214919771296617329206358160011720475298575564164195074534250608807161242829866349754325183396619933939320002297998578094852128748594234419331519910753273592557359468748678911621109340911498186188571325503826453397622329321489404693054262389992467818602378971128121211820583323049699355332303490152955527914323362841949159548633395308527459277895270951758334385805236522507145286802675524884052343027542469910938178981510453741036947230163090304510364654183130680873720607777975057045891415835567843959751437478808505519937909314662776498870489533014996803249129310070957783993852545331052611633812481419220297548573519723719916936278063403454303661611264497113007773829076461958032714875603142339820738486806898254027706076512618841902813220477678774317843279892249743088847395391758731066547923513356273897698303737195632632173506034806585282705371577471287807798282389487013586478663832300679646686499745370889392469483541602910799350081111024652183454158109273513578838155199566684768565966020421790952147940442319956573935775707420063311655419347956928453103009082135519707648999493094773315192012237269805629793916609790617685255427143254637176528997561129739795793601140278591691604636091485574885964365395992658774434768689320228041574325280136168835463310959640733188785324058450901535334586197728350783340691530731887183113499773914477877563679302039648812620337405534822047654204784900483289167455281656564906083999606808783961696229119471671687897204881436406899437894956001019278677980319104674699510077853677271192549758586314470059481272560958437079144930904729124709471726541650304898071628025288929734482545847402077460322242994674970520994988178623578305754230204454136783428437783608224158306040378479116612402368914054347635551873869839069252309508967557005371863123208801230327420031455433382158183369869083738650427158302671113667901200372732847090845672251383163541412198833368109693513686845699843572179987196495691238788290316022839040284025437621141991419864265299030219749460511930606130385705921204149492676438918742691690907340073399982421701011125532531917474870588418651204440329101838498965585885712446884597018431811929301133390800068629389713305550717050965724687780190896163487540040589171045876911231526313908824490410975988286167400772211269855292889149448380308090931304433391841549528730668651969883807716936882867562439453951910351313142797692390874458600769071256902090910817865259577994678757467460541169060772346049100176603524968554651873387267576394074891340939547934224467131593415205075999968231920326937550486623109046770879028420714892919609258634312223218006151021127026547180648001093933728936272298799092682432745977742974120845627742900920759811695294476997255545942814508897334438451518735804940965836094047034409332111359013039489678291868783390282926818401283827172467268594968121133953593014665088317664846345066150976139258563020009359195888491409480997258114850602388599966048613960562521140756213676908003123831988326100125768798099487217726433630378368239652710466763756299448496730403766505921630842320836429062579554500411653885464244351839177559263713912720646305251485334357910212635910054263666395472854929417228048609974399589073385794354563405416719011190829585862468639867805947621953155246733555562854580683847706991200709204805793948415847119245072972600943073997456046232482754116175771599512849703580992233362153525115574709430549441435656522601318512280675936177674701692855705440925859544712560989969640468343146269197938542798080689028097130755089272647239056188270483350192179734288951494745361738312064053415976138056929223792642464322598494795204356295252518184482092841206656733378251805987605504444899458111212133097120680172887188131598457907651210622783424560990731789874021515884351342501106581818870630914381289039699508668133295307574738815084542992169681965919288781496613291464408772251381502599348775979800987188034200042628708941087580788356047443539711518592936347179995467361237228945097092384997995679060558591566460260791235288089179578929920720847362426936184682014817830518116987670532279166413758605713471309628103107086793098125099968044995405472741247526783892340788103725537298243488597796796064490653219643783627715461191940987443812018344768746387945578456218263753443498390094773858671381982695083161152953095297025729732157299032516659335093631500745195142573520445146745676373424812410442497721441513962861109123810540618362298863469528689696648241141923085709928860339491430115973433125869154984974324314764650306638524225171529090750598039817900538356034098295116067496114763483281983044931430693891813677169154484353536780165516573767093653313293069709652952691664721123550480306703004474889435156308972848342309428294644341976299651933616264271288572047553053704344979112356734488788884501353195552712291071552323340783229616104535835220382647411781717909821491656777484691393378407804847929604175117844302407690491866635403069375734760405227481237899453080175127906446588932638898660217440771061090247958387567388647684478650856718554039385644620149373984015360659105871054091341277675274042992492520257482409070381608593366164751869656832109536578614482419245561155548901150568415540574556389774159072134583700550371782780409929663033860388033264526000532394585825503573850578069069047748180221104158325362924555824980302076723454104706062473498708516128443895772623544047290020545349340428073886529170487377468015592573211746951650621229197099299723516471385817235375487773539790152730582839923198440507922968889595929590166492219773822727499337940188477799582282248622868517502100593915236365972109189440702828640436295588283919987839433506868827282201645723430598987781017742798786229429805311531863995796360964630385481076177063978394737764221087675716097775345658439472262108911883193449918042763839666282823895395966639123908415214297304267552249630680508960901099485799947949001457163910241377518357424389917150173798137594924810313082799960651322071683068188966483531069882373932510611124537859551893641951912577700307195970813400307535245437593362465467450426780139264853912594807171462859429636194640879035131914024342943316937561712329054338126729299353003114482292673532558146803939684785505821372467837337145151804350600365290160816544407694507392920827599243355824541572367719339234968339333918744314921432356077221899552243247896541343498083427305974022756062611965868517071102587187972084991126563536580392542551709698534919849611559520542178438300755068498646959971386633008540127595718160532785503726118266595235483687104429419753915399227683226491983299721115953004358936820156438415137793135881541115717696079511178027102967926230232977909262587718371545738444344919964157036546712916679950976974594082296968628375981571419133394366026793698793804060920510076637193977065860213424079528374092195649108227829695149802307832308222530723715196841694495488423621182918828382533136738106923815705631495691751923092742515380127485482820482858613776950321933784110799120035659713494986499837172011237116732247627671674913365513015497500895010494813314976696076428901048424639025829284230974933406605522465683936303891571574847133015920962585351510694721134842512191840180677743601034231966267594198960334572335273586228476646949266374407646422987471061206781420002262886749407117102679521620177685918608303587649839274912772742259255012909216798643312206010126738253833930349342629524253691217011072056044195557236830212333187895153394708040271741105348993895369493002554900605097703049800463505017875015611445837768041712710689879224317944317467988877288107928558039339494140531893882585953885197226722748260455944896154221320887087032121394159571371296988359385913246517988619690950399727948263460107660670119697141900572480221476153834235934396307966404170732346037886354852497976037018768557922698004669519354103744213317834238205047485847347719502886558973883747789893889556922783025756712950039982815517758953852514742365237649962066635528807947222397510802331608075094595390912811637125717349052859586845768464349352566784457717962530109964318751424424964643876334648176139265698096492137138307582411906816947342602411190148749797361549235117458269319569232460273898411432948790813503388267271187316656741623247089306927484595742063525725544958473212812041283656851784220851223116990528731491104132894714731313403122670565732605319298827556998151928222859363817658851835167302554741207263048705123856274931138634651429983992187765789744984840384885090719350954035708672168584923342811892947103524566467308845102955880943349353481766427466426672005848586564326879253441409688985053107660113619702716111510158263719068731289907031662874943704326805181747105777263715337221780463018809355564904534222303719662436672492656986790033423249994778771977205618806467768923287645314771105026122025218120168802744990227952187620633166894813362192473652699003735593392580433036975110679147258075944622812175175137239070017484302067402264297633940360720496968816676292967967463801038450663836457005844421612756421828069453062950481096268633384022205246632516947911123316305399354639453472958753839052209615147004525202492208792814718139065576640721167500370956367977890739691881531439714154141210332486551075206963619481414303907396071137063768171619566447262466083075810884790067535492535331621915825854726858321658219047166111009148490218085308758242204912418827546557095960859996047996725662021124025218486320305074913610753543347844262378081927478267470463445936468619426393855929991516333250715389596697657198530608335922179275552771402012203556254557030559525172942678222756201056092624903040014473407737781425569263085410939202361270759714832371686471192354851511090922322995039097038026317455308601398382463377196906536846538495408826767276648711511459964424708729870515605423977693801913231095279363390114570107678486678394794776666412296286265681524500404055712129951286593467351813852164146213568966095778777575365853413445340213586490668767574734000089311981339339006826745624921363034769262201486865581677532673145875911010845896675089052357276007984762874346460200834240797105276752470517672167277411741840605389376819359002553902328673949077285397237139722330496584573047483289997918345566368892759223843915619940267245030459175401917226016321234360013052117497721064039143337137962618740202768836185592615012350127292942263320473324046830397987037657036017001695955403510248780339481934922982132111675986640661649926085845268987957516778934122729504124136488809300966908675117144910367848734071348711655957842857365766839695099206632498405715333730641177493739443757703975355240970298833413628099344574864890669342845839253824845282576549007992011168393408481571787310393056148701062479510493599446461079660373323668922886739137984407759472842356908322900350867933889526129197980229782616651411873771769234391021740150512710299520362782706603460332329024374920664160057580453335175037870299811970512857836364233065790632423505879262419935937297286343065512916803028123407310151126783987225315715413744253276690906469086669263884747755103914353723981728034483925270707761186040027395687431785284067056512221936539419143689645678139745049354525011256741514993544208822593502780456396614363513561015514840674712313890510381652946102792635782639684314002483421585362211287826363208133247037999842297084690379775929623313088161116345574659509798391317104794034641613925353226036089212150826536060748673828507135338716884728533645702434852693727350789752360703599828757927592900436041750575320561469815451723000136148614901610217744703352984221870799037815505233002468609238418512855731373573630305787769727975537373840389093086072286925165148794266786327135584545227801331119551958283334958786437464298321155603525921597272431060516886773544006353289598527274079968176662116029414590641663276079629004953587127268384448584335848314851800451743325281030976841377111519679872195837662211389943368014627678357323655387543185297260652214282733376665335037648750392692437013512425032654218280024762493698490581676719905549568709588484607531160050381464483649685562902311796970124031660911411713213640194694986859379851576213703859566409860293775030316912129667814187377795240786930096696448320272751002164652354679446560132337611693824246354962569945890727103161682769990426243433064848208429286753846104816403823543076738630274962619240797392657163446081239875388521004471099248355350850221712454226249746431723284920978501434294601344344852856779743098676051597001619692017590953762967112876705200000379731776398778872850797787928940782335335356309677167684148911231074427746732987304941226853162920062516622851128503556953423526597020109785190499331451797089403045482418049006429889766877342987690217197794908914877927582209308077975864507518384794712181356327651816206158716896477307945394386973695684147290643163179088007446154456459934533543951392690804085721465392000193437589072368056831361046435079523938309033420503176900647217622738417225923677637503926984485632379007695960039316208489877292188277054078410445359917825312067569399181579325927644745218864846261132666245829010764457775043441182788283011852001098646625499280000822781525211402926309277933637288834498752957655128709238568247909901257088908747710578907789161737124210811357897110682136600990490515742447138329161323065354957433438350634817243459257557702847537713867025259390458068753604807616753349813400257817013067752124993651538349087437584471750902500615859763199399411479622554439498830553687497877911487629879683517320856140664751675170603133708907566405100356355301163155643159826290972233779651528006204933764385775814692245450426956019564546890074381456713059152615051589194745173706918419959163711929975666383498209074928401449930937530994634324190233768121615168656073808535972376482632325061913077063393417644138701382262964237281850694910264793425990692318769400000609376378463308736574321318605928994900104488384701788376463245931550183197277740535769983916651502861245470851696107571732932623294122190212706536558740197797097266958475464176129037330208568213681636398822966059921665484481724304409044387417770819607398886904648445751187032641223934981073914695427002012921421212770661438567753697404140939328536407421291207446838666554215222942214733576938420546960553444812828197023012505850240139276137638624983121880089442976889567934501058309122267891129183688805159349231041974562738883770187901971226881219440962273481485271051334441864636960840967530635522692629761861918774995436363104555895894778529183325782241157701514256820377360839146737556638195217448809535435246247473493941053177425634726226355433105518851566936618523052462908839138266753465192805068203279891715729684808744895792135989137038107346698828131496848264787039921315410066314036704339065612777749186489470084558154918225818847608392832809540871165370781443344136679390267485079990160770214844818795783419590533852166222813848895720283892188521106685109774819847145094476396787895931502588825584999944741026121819368083292422556237728076538628577917714501586307910331497604141036760486044377253427170730299780119873807854952456318101218324757302508607286081846166230022963030725122298060703458986200174053968441126947610608005515884197231965251467468340034240326365593470915500568584480109877181496740506975898629673317360016550654916766201160396929517055827147769044804298201073383924791782006435526853887751228463592840434954180264874584901707857602938273709981057380299390679081076497895667760490769720511073525955235597323927713817685663252262954025630698874056919514307240254988293623085617758069221125952448924970170272454793654695621813045583672743121335858049669537310872239960106381011426808950590576836243821548641160852188373793620519437012609317870245745671789050294160974700716255298107445095205396957781461678476925635304297801579242774966826074695074093720414107471180721675043590261793045132737375621403961209138881226891423608866658396228827364789848168993941767489366933949459574738493280763342304952884054284638627520286297566302996892885056506812438571008810456289452624910188481846389422444255665490323978013673980218379350576182412178215685625804351250129256714931982113136180728940310042612276595281110011776315803097757629270000785578865946915625900107005595604242082561749187865388125824303378196197158186555451718203672733528239046322171153703509682459536301207419042571998235382272422577660459625545816829523275520772781839941345177958244115819932806066055680758052926026725861780135210273807397161751105856404939761254906521565573846804419730100368122151617652300036063156907109550314503601958116113698329610600253354136014564987286317592578472761733612335014175634297636414417591719266571863051227745565880051697980082915814288308975031016274551115995978560515752199395569154991140938224942302526109938785129242086064429359325782199914069230046251175853438847899039075694309439896436395398661664300465821397846799616995048436168978724898425459794264919145484988424444192414951553147956046358618522901579298404058884146158804914009224206703284976310509476857705654994141092004879574312354102545928435670132962928415517846669153671886610457921391354373891627654142028929179375526041216431654653449026535149523402182990409018835560864887251124097712176956839168785025728070384680023885945890207008152166103113264880510568138707192222188612892568746274148616929829960948041878390225763500782239202143572965705103989651944357993650842076690028450950938812765966291189341849811393236107188831330536417581981694361534886491136336404395583913385936809863737762259234113990538534540737178347250716980302728712917428513393802216252508177988370180596197111337647919551205743062517466366451975680017669444918234384149678150689030933788991459916480825011053750910473493974088726811240301582265580040453581070717355407495800974694929893219381226430758944294959938332448005705132004882453256119580484720517438237984223522452854827243863198833487518386007051798982740726392259883958653947035417785912003314049381645519844737277038467799958981880490093111072363212209709789087141353759308914049661042624225477074693776979662711249597259458128548710395915905638488736799526901355728634363236668322900834899243178379805289122622450279135704941785850515328496958262056999060125421551415097293606592307014716254077525796672520648892155040856605488527858212651519063192748160221538184041150477992846949797129830716978874344629240865505506114312049822305545424643638432740300267809970055441145785099688259471179846840069669397679746191266697458899999493661121430521354119028543029294210161497475724847621158601123538267196402892748109479806185523102922676375908422147195475173682760327280490752132717039684015077383795456471744157865805608618631174165126092441135750153611185169441763132008312865069589483307461646862563735066579041256975573132337294245202313430008883961912642024603773875746220206286115618413907743168458936937778065186372625930792203511447297248517136626031746279121530232891954072516636105802108011892370279517302352631498672186115550041204071802079814177296475026313876212687391527088768843787916625139894239131956941349882903620843018536971746566064899364657121246801493877439843601989323881857222161346408471385302077659478805625355520083401123586920330024947418715616589907783180500575243459155107971597189667723238727225418409499828134666823527406313611854405162193730229287226185878234598633879713898477866134281698176179776033512534070159649019458482914193833556237390442680046840136990526374686460229188222122549930072691538108372977523505583814171764997902408814796765490596467827713961869274043362832410193586512253448917353991588669703991162638844897960132500603586267719045201821265780682910492074539224211393641828483098091983416847052981857968024292004095795804190264828857955732805781682404006834074829450095656814849507725321875175652791686986031487827172483853253479886085402075737973679617261138055587816167280652678299397792851573030859545100338413057777637269737985418066759041676158024205116038241409584110634439885943171656368238556708609144038314862303848590353337742598603977007114964002313620798670116269655741660087626274464492652557695481337365133142106432248074139909135965898863780764942492127448534483121868332081793284176950264633671117578488022470667345728132776765720624536975330500873558300721222100571215504864525295289929670969638283527264737887538997399643147168740831317302211810397300130436613219472591587080330266040602522018743427501007966818396108433658495890948681321691016310546143786658543849186456709996540108928747404288861514240480725401768192558443978615239611973323049266561019937470177564010915932759871237663764115332783309722312029302554541344639287593560759528434294804984604761117280817371437955718969864880133626246393434147289304622668356383801960164356413813134806164107554628060287437375030107252458209454130443927126013142882636961056012168442775230335237141611109757785360264142765409134766943303519111506849855617240488434426293803044669776642806511614783595574810131730848745949356838059628171042821047172634644165592828448987272212314707313483364256714091132380525564185193928358538222979199688526524716952732939455870350885442932917603769418545578281669262243777842437492526571245938902108598849703819791541856595850990038981503478759587499189009603855515796058833370505472760053015008362295138152007464961941509977145759528619855380658521223607924027319421456899801721709952026040218865753229416208775959072442037046518222681678164833818859549508804260010902125259720016265202505746968302522245797192443762229343429772119344253780941719036214815819091129908518819477313013687073260934642440539096764303107869727477875635737630324765968214802548606342477457596125909385127342085046087586274497085383346868088993532772472311916203691473530504602341364568919676485798090101740479543334722774548311242213810536919309790902663444748488863846107857287224571804771396008684705150526909430016643069265218113089705024561320625386438448904480205950521912307456646132540160399312985324900786833604920752082862718052767486276047074609808521957024100454023474052697533152288367121931527760709440223669100825530054512556779376503125952563204601094527994323158388157445318919862896865117272026829240593856559689727023587520098062759252258156108344571504133170653379858776357550440284257083044975676630447569739029513175749199500447587350545866914419190169470370246031472811430768060111862768354743873273657366022066826178722291145312772075942204181278388274550626187621448857385894362308769699829838516641374706801009211311554682730578823275458410268506248482913821431780388794521921935537621226978074972325949348564898410047346357445223672372641974505547396264698165970250164221716774261676676024440139781350982892180288278927466891434160945326532641803075853393985094482570059258820875763091538003687948897015177528825484802202814982380089049387457297407315778953077848539090241382245114226358660434466786684701685884337847855811985673818228412634113425987008111293253237193433563074314992174602549982681835658080330809222473066729025956169881467814948797915684707445564928702937150235855904293751216700490040660425187586935442028518868355796374467961203545015914371530334507661428303689333309585257594262776813820618698082296819956581666090406913646071858237156252875578202580473359236887695233260232017386122298890008983733405983509748140487633020041267237066176956037454774027534139308389872900626421500166357776662348028200527629875494548530941451761292092872970346886789715045757438753161984477575607666192534212767860443477537619942432284347460048197047503577348387126081479755932144519085195935410498663437310286925942285989816201905985603979553388021166194078779981790878388205385322756424721486331103016299890613042529888833793524421840434743525471226484714422122839490888121614396519645292915717453344739438084231152825812179308481561848839367918400462452872431625715412556178466913139781684327721006861228123785310986356484605887264823800262323242059637287295335023503308695812306389884308052399922444720027486268617534491315655579176843944792389394532422607642950080602491211268138612851870915769822682663692412937470655536115102839309821265254090567038092356165610780143703979230769710209809013836268607570776255301867973351340687613336019321566960778733743378741830586580577661232666577500011871634238512991598451352473296670576452888583815384060874255597937329629676256478482444515196869748710797908837324083731921008304114442166481851706355945224660151842637952816552740593413553919917123819186044886119062178880989123617554454923177516667653303994063536618004150395009596518734011927747479400706510720919652538287107693083327776130284153399040006253129612415801004615232289095216470408408691745001007927917610994723475018805411325065340246996579191112606166888000973114075006899557874764211001546961450870722647502040782545909365562077864238509545405785611037700429492148099388706420765533030351054354135607934162311198583991571870314320745002009712103985288992922853884234468436177290702520223389127452223197593858958429904951566485110850370844326257470376894457121395775425050997293649858552041431154627599162767972470018651998829018520444815023421333308945093250110341613491976035320574832587920533183989622052917235101853669073805791805711392434223597150412876716997904484241657558134121688833603645896418248571465915704590830589457309184966346245945415767109556760589984763454582521905805941414963747849104692831093400100739772396216153095569736954911066366513453667263969168139737092010685305929889437207162472219862119114701171746966097195519785444785791677771694532737445671100347510081260500612452205897070627636632628141637374054330538995095556190555353380425646800278769688833944165451076271284517818507354044385750246373180817742960492278881846025671343239130248416452624268428371982079814612510087037495294680116392493882403377620305348545186527830171331856869374313080517131361763890717478589747740118516302136248814498398915529988669123735653546955765449140073293552613230415024842598053290753705639477758829718682522198894355344401862100528543556781223658621563400325012689205452655780124238809245925790514137084139865539079731961368632621711783095132328807393618984050794784614111437981875793539031386931849815401837966436350864185817966138234368764902685062542799881850726172106343761524541220544312631011432107902592078584902852631432625113764627732848396885189800715991390925444743925789452510435520560580007074014919157339773533822969421073299331104968077532151064616701628661941474365234218788711727638083228357672023487114476709842745706183129295980639052107426043324989189586791005992158002469668405226755174836861435717467522119668710270119748158111746430714291112647853456515800003628865910699924419461830274901306729016487578485081450396878252157507778702270401158954259434958805157311441868541188948284249397467192522472133612655751371374931864817294126373790772621957701691218431780414268383260018886280758704359361898115389510060507778465453304214389759156512545876274790605491441045257967901984833265312581972086851725009823445457058653241330685368192262001145545503479298608060746442934518817611215907752954058332866091895143010775392820490477944921348160260913027474042005859906644774509724604450556068326297254845944666329858888376895446271266292555312156240015184844466177987384484277936182727852669477880431851297200708047498421022928778338646395241233538317991718582028453522881395856416376972732303280144629552317425291151366138169770619077971821443989417805700227746641456702181057597786958228852373238790605134332493570574902821780049032571574985429752984326831564530048711246702115123937710714731942064847214728648732880649950390396769396439634345272900223046628995384427784283780162987982963831081708954548788101551701425536720963657606551188760439642458060480335607586428446751026187323808522972636337628796987170736872335317094834605077076803315949715367304352727823355993934109755292517662432578561492329853006590813046959225907379791347214017142121709532599050758582287881361671401244604937038367647600157825632036222587377796835166766230724571000031265781618945621821143963774579178593813317574194453766285328911676545026699736721747691707366776760472063239457893137674990996450694051668945047129462605236154356254720097625501345345717161644377040640474995523982072649552851995866642299754101051758320778225368155491142151746001355406861650848643529016157437081081181617122568446575064828864547705967078714720439294019440446028984319853240803010207588003545874700566471084061156684018082563017736395588325709505652580908329075004188105394497967581503567552655914453349981624553492855160677898708916616907868779269692780119559419088909977475786537569025686321291651050476044780927254463698078571325648855526275626216467727635648420276734210104041412036603706335735930522768021735863089901380411498041096359374636264259712407890482996207026846295761690268933678330854450216578309346762746159038956317683043252581764699931255305234773223268099817219651285623549202910921155880160419845824150073958547892391251586868816769140666993211226871969853816524817673037403301650735348920444881557142430615091962417596950143166196134387155992190265543488241446190336084815661988931299212324680121513735773048408900991313730855469464740774209081186513978444623271950248069700120690627761530276095616781208272542013552751141045168830116161940143176622168780393971167686206762122740414240099984345795031861319012479467467297481602492031969683532793044780744233587218142605059433203930226095489123403762285780311039818236584800250188359255288047488905993744476006613488135144829913621038400387605880140099408075967150377487203214342101249880191659031630242695106289605886025501045302914969209457512320565296110930944604937498242049028485964640079934395235415027100519325680220253300100731658339263069214932949925199178229586060158075067771642380178719565269470698919672600667806362811282770195937236987134271147814081355164894506827848581751402388517687433836649925628043297490799318339018421929213788549028573435631487146184691942294320247371206025201661594176333964063089018901063538569612865085779007941807974734374997414469231821536755880208758504363276301026768772806019926959409714028163078763057583735694223856792269591684324127216286477286094357771926194228235320971055069575311567623498173262463184578810586455794194282059424967236103224028961383500968175391414267577060407278979712127260737766202127034119972996135947342969466544890713691722411951104646113969864628980812764057863801816071541214450069739646011460744428332032255722078330476072686906524960901718442281511526445977101222142535460516667326950304229413917362945951430180383746920318041530804281550857058371709571843247502202660824558040674636837391731823195115428067839251247134142859440281718592056906549456472882782835190375174337953965417930862638911152085036548466125648474270296149411745732075332598580126871280435931755960114766348581187576585437048480067947065896930652793225653200056520856572966620704920567248365044856401457106072481956104013120349956079061166203160028587133730449460655473506201899159630788200003920047252990476235603499318438885494189245421790313825922841072945760828162657299940497076385947737310623284055038175489188828009760576895266456032635481894200700899931790874480649811799321753614187580995402074109436007575430671895625187553223310783028619989784330362484610463726818536036712940996059319560961401961995468291455274237121281184928084459318893620558447055569666655656098791774206302100250550207347116872101562669976527801246520039444883565562784389975728987495645839685472095104865078438151618030212802409788136638245512553352842159063041399640989363602746152814645313528626453490767390631195872193424225042217569115531545669951764916766590022527247918636412740677168557866805096744746377854938810078335207932042479794518033618574514570385781223593924513522247165447185561874758129188326433991430150048448745374455395878292215556781619132016051866275795054349990010585832127352338879427359541498028814875821308747476529790746161907836280711993805870389411749965619621216868917200977148407579065000231341910262029252154666892240433178800268980688696597123216084814888055746510784038789582608197576000043950730366770131396615283367853974733463019055554433801865969032148562545411537727935771561015245729562284544003149046633846175548775281463940975304553224571959258475802924850033734841560161741459179527738546378508623034027688096359660051553076392808543487483513889462200017418491953385817510803632467668900615771862272785949038672555047600269926266460519883127051397975863814546271977940975332890719409583228645435606225120036648668632154525295063086363935743895325756230113455761983292514327417225911721256736902989851450587732448637758415440218504435277363727653724197084091511336845498091953383126837818029173376786981149454895490074297382673545300415727155628498779076831574959160484915451927772778983121461493566586517166539824656086453191600695134889565810794311962586913959160752024238694151448445759211919829290555664307857203717883299262211296734327409261120005746258810895709009798289471638287163106324655349459732788241697112664899913946631777823565719254762797310528745076442658891027611660083619454375969532095614974972593615849961112638967137421168715258250844140115775866066155469726415734391181025751494511957257955624288405319974354913035948945923971870646441503297323321016967075506132195347739118994604277699349372948863817637849953708801908247356194094050492087369422148567636958843008605446294961172856584079533917241097818785349231158286825705536057798103710583991096591035987590939734203442648058366570704443370540652283316158435108511140920154817936559372951891917823858254199673146350037531104240142022153332196967281953779747565485308865643973517709974162510275859659171150028652250414199802708738798584711398351174284727343338973564679463230186833213386892541868642611492079900796711534837277238614321376164559351915766430986691238867468786075899622100130535268374221871085597183442861884344610198700477272988208324251401181568190588621219572097813717618073234936835381100937753682815223161254632847481063782780849187246365749451955221447476133580839308198559575905084904028263297543780820872895699088556314727423889506458244523757412804591305166676837906696049322532736897973070866017021740486968787103984415378520837471040716479596030842920370331463146610801520504927879284726899376127852217322919680769675079218643931174147168704569040086070721390681381576280334714120174299224326867322245449675169509321098017890626188990084313404574232585865342472148849286109438678998617818464478220945778126365415340771120721302821768620890030476956950636687024087025126853227826084464419874399948096184713799395331341341015786478990746769552407358891206420230471992020775714236340573298941588038714928583546748060989464875250706292815372808105141671263969054430598125230668145125523185833370410127060089097242351876016593880883421773745030670068400961625513951486727013177137217724648873828653922857347469748668618881607895618201341404425805894316207383028659301045282123381918022542852117593846323533980080031265732398325970203464813166756389520643654229272421105052930994224110723164642782115032179242994220658792800668162516426152469631181594288158842710950801270420731429608800105178657752195759648322482419692296123648406640343299106521184306494207808751731719734616002110853043020845243176295530438389151563511832510784320041940808625694091340878411398667456355068386457187392652853576555352719026110409845728496720326679332260269012570590390946275095878336491160168525845145158234511176992813944214915924153723314577138364751318528451967675258273345197438122350535928719365700353842131068373653170391789832521947817799067426008679192730291327460964291697512335090335051573993928131284555887126365848755808972904688561632848933456397283588662615863726198030266891026512542319153516723515507878584729831196160901768308510593701773059640450700374459833423311810318655254879089327072572472261650657028236382479490194111985395320229931977500788029324924595658263179897402572373528299237464338169210181566131731277014131780924006747775054972661782802519376131887047330958717540210244637998037990649436699934972768812398211580600311448394302216433132561876154558848669677454778396288611605202871425060141035597486128747701790286150018959384729820643667627131965725003382182686897532730933045247736116282695034806531402767843557117247587550013392688944439339407664405152587909393891269779452946390590114002264642055410149683430684082146545754267658040994068796516476837305049882515429444310736681566317542797696694833866139928794245230866605615424149814398606720908418555454732742540908344939069589061603288032596393680456469862338458741452657509884432880799538595587727409266342901170876969083664293064658972195895313834107237033126550907679225344161437591733106191908545862657147272354452791039424081504748626696829124944859656695356219771698858033257621870287038585399692451634985647393817446185725684191394187319316552022331503452372429150324589550460345516742356397836433229914113568635827657388639604717200496505049495454590483834380138563577250807092245495902280148461388870004061188523350251526874724477478437111771870938853751974361392191712646230460859416475350823056443705844108885233098969496913100344104701149163864018306416365052584487845542586259665436923073023917203079163537794119655259911665582648220271109693559056082693683344582464887485567896925567091016600525469937254125002337332047919116211737866245225200668743725577737208323722316208368198244970361258332929630789358985948563387165776016346394877916728207385822990151736741280393809529184024706817124636008660757561892801154850609237539724397278845088414849029673665622319077808825082867686944752186705445958460877273687354961655466396161003660022061549400577892547902274603820274651043222785116225420169569251155365386792566568043578253471860415559577376989471641672257015957040899691162022211317259876734672693521416977105873461691691903901251133900957542318361328541263301073693703851602599855329524112560852384030840686889511515366009516029255078163097639027706344154347294189039825169702053297567812718683165400576510663573927159497528971198114181834970944135742536757288877791883357375086656868487480770633462803896858110559919655326800759458616750560125857486916429631928435028971304315033573305475346912108216507335826052961843428030900795763258261894641778681740986953406557949679278708550510896153533783169701836906333457930800915123990735860757716846561122725707234717674188513288930108846221723477135958903299342997717306080838951182317724632786303979096259175425531425971379620178948126201510964923251810549402418887766726922482308152930049983732367625709429868923792214028334509198608616254164860763132673687672605243051223050367891885227042368734315589295350070396337599194284409875704676762251681985030932528858627994109028827911210139677758829235208229205614150916316916960796264140006425822761567810071215505877278726170867760372394719047842062534635389694551718243455972703853145739516047283870019014307397171700848020001614072569120811768576181204951989659732529288222795153634216684334872708891801653387110797142288345388100549044299998179173577437492850389598788537922795877512307947457877359455683885664612642166055012447528155604680277308329307409488263155430352897756809636951762921297019738016897527137497097813549493819431438130108830039554585108141010784623684286548873309358839377395731215317514347114687439710505883982276620891244336386680772423056395338495130892440235347149782398609657395079628555638050588014245334915092053549892147480394901261231860154109376926652089363313299104766429082502351185269957942965360451770551049716928847292611266261595397359369760294379145360753693440786119626018290600068090369646133433215686075511023449795150627966350443892009508445855956968487271724991480740722898092829566691475058197391295101745335547547841611885522950165420364305404479622110823854257318886497278132994339047602470770942216263364976717428295160772646530539878543208593298831658492663974968040020635515675385017246639253507415758517091793094182788468288299665893159773346231944047230139180872245897016745259402444227522270665872674934369580838197997739288975234209489099763352670508449530905486540977300003001858420706674201283218858769677828224637772072425989241031010212425328967371224607790969888187069870542493038353304031547733370945665703796567811651868291382892703657222502505982368243995415908964991620351648944271159560514780550127171031546720739394516410685128460913245297198144881225993318189998001399836810151896125477674302069930660927873812250353203234945484133790258104976116088455568301053030068178032779084265233850760588614257461264304192898367793024769752288142533848722598383540478142096507290280937078900790963935824186651293828527438912476867863187938124021436905583126915193417329213036826479948388692104243695272491458516423290984207680169663466412740442932214698163646928666538132192880160331833212871165953146383938894453022826367962922539631099650815423394080675718851799402365198066357231114379831915798725429365572440538693062031572006805819154175370738076131281789282473937471747388658693221093524589919079231212612848005186929525259699869709168241225532004585876322647508845204719891811715345193555240805176385738932097434475482379902819505441496559281346676761211417993587709360535825843819673971229963877294387123995540099973917575730017168833494392054902888488835585103428232728268784769322067039141148708787679678556434887045021221727825715303225602493234155866854660120401310157100169900798117207720683531614135796662058073162988849138686749598995757416574933124553040785015674715881893772524398955868801769454863256294830268872761164129821097848880580029141908331321071627895215199611684770234498088552830927325779184453396791735224405897216749375075902315152872470474797782709234586805733114754920259880573115917325612591412158982306595547988826828303519394059416073823060577597657194055748360191318946769360120007956861413227552797103635973364758093518682260102667905953689126480527257112373674142094134708535232357386507532466445564412601754922287577410916482335863385085395522955628482769318964241088355162823206361958836052753967306178841488732104431319583211075425644863738113202562212164882628709956411512481972533659515117278120460096872123907538950332187740864412498242658412025415646958742639680917325852731273610346201257577653127894292910758153758620209481729514645558637174861259193492800429750583469523921458978984717079434039609471692712997409186188979492741800489315972978196571716020877203943979195979767894725738320582080293406995121307105778550403659924729018320840145648862269719514341026270129723039692583132167032338661804741209816452346260278895034914762602295237053523495270191857343328412289953606991906767781028861446246513287427965783803108507155106663346485894616091802438598444904728576307638750284521754378812203440502652269826432294313727503971242987075645494343233238408394924165563661483491980955055963690985014906297770895428365437762719213736676787006639307441544326459490017400605994351781031040326163649538551734159186773948769914694134451047110951164816010968422912097949364770307675172801927050112207752875708730014627802855755139001664813493483657141043641125197794120033294310636909117315184048609217804944893773308579356417847886126094758272559665520197338485663782105119723661041841923768555359709379888004276048572171529637022802605066885034597116779115223074444575254395457560172304104330438193604304128066965784982715991538766181983638467375879954854630019509251507052246658363449780851178320091615379059114773969943220554920054757285032762581050610284267406948228658617285095238009556336954141246126882690424643055656849359048604272004676886494149504576397551011245800772754989144557295641805280724153934639501331535498731198115756737969425955145442095787760245400766131095872188321586951431930170770489042006548586644446338666643417682609517446142580849936800696272941348618572726905237666322835217120175181924829716230691603913835613657280020664627168702722029899879718700248428981516364965492955201500770568393775368799549598492742597305772379462962587741969044505753639808528919796152032460794209737401733131511805752194686910512545111526376464335953904887411639530824354965804569197104063818108414578152296290107287544950726680257105699136732024405068787180197858373106426541815295873817405368354174384495595888354603563884363714858919426735014501977865209580523092420779675649256365857998777681257048242588900155922368013852881331601390571231789787229786967702945955676144655349542311620308696039927422163490831256405335824321729955513016985450584446621657242181555786896644266049745358694177668036988213975043548697694754704916866987287760951562692410526369081911622252035881034128603135254683660172888102096048807149595425689439048213460566326065336175430271827388246219359978817806525949862170842781498787847549258604920579582908117977011252374086151203897377850911598269596093438796497216139289469123660621293465241977790296613333518760996559539277831551544990610236496776403758116605334641637112007869460247835323924479293601754128418762065749065183122482142458124046498544384557850935221493919322700071659210912991623231573766671143431077572842740732591865039224700817205161513861697955710742256935256842885835973718411631151512219883460332840739776885763051373737061030558818909219703494610938006339062081874460366236930594359533036576416662471810271537747936276423217665613034570289923037220951405393687796516442875131666464034903764526542879988314506153016457856203350084817738076000756679642458797067783817081631765052714506928051483437582042196285778989175192855906535157062660442848884464279269776517501431502779704546367605846589692754147022706813178937810228134360027683693218850396064549723820175475472637151554501001728642672994703531184517508958763249488323707824381795810340951657497368287311238386089805109645997145346091363746976099642197754942248449246706238659509852878041720465718998598094946631669178825229235348267099762480308768107768470492249676976270423866292041219934033077321292008544216820955259121233140337177470651713678047113305457809202726737708761210859252722029001964635679889529057346191583798596338222276519336574661457538390388637715912562329379203247543472122967930080470357729524137916054554767653277521411543050027413982477448805386249190849998242231260104451074216982908160683057609587761775414236383414228948079694142745584703076739643255670450234587906867981695761089258844826342508741930770327970008332632585442587611068364280242661775336049764038921127913009295397869742760136654363037162366183013252969485628691903570641561451203774631935578868359579752899376476708697322707725327667553677557008636270872876332499434741912328967877626858635925367888037454326455178046697720055985534593764921074223557152687200010528105636098648958621028844897454203745394623553612301258549556078360671279775935165863143427938533767233083455175289536469144629758078219477070491669983212286763032580339183154289599119951007491828800685997533773969183540218566250841843927174635279865700085023838019478814054678921182004937609685607850050556801215464344656567222483107972234732420642804340287591519736159203599790259774245034672672797476851267277181810588479499381792865324604309105487954198318937451633219233160115432631925473374220517097301671871140177912510806136030767717785972649670762882859413819054263429015517835769366163358329420535146026260143950843158032271248473213711856741953681622829025815452785835907557106969156971910345228642135284380823399400504560720647617174476857732939579419398976267372336990410903032218636005749938086734962461903218468706051390029300471617425338190041552604732942734521949116340148150280262039901675875858990984236514951604703672194364330050655714042360247919148815632789059104304235887311892565526756742459966221942495408383120451967737819125210902752520418578879840256190831027627969482432215187306346792089064796782684789097211031978371932326505543712372962015288478677189457110129858733894709604052637453726995295199586722630994012734278613523686269939679467855093550114539176883734417661558620308225450823700755048671443612191378844540798682452453177223190568394583714499385970805010591180239217372603004678715791470483448931391691795567142658407849773285500407970427281626532268162505794480871380251666694138522199331214792511048340421742176467898560930086322483734834343657758737911934959508792828612091262381324639355068506996159562072995526125559698204267809393045717082880946075646088314523137981355048580281554184983426189959456932698409853301966646425915520623390323554256990737437856446551700583919993934583118094133779642530785336872836828699051268130259204006272019983693071236641591200099206564547633468470541515792394685894875628692963186714869929125945604425233948804280209235441238661295878262142677589213182846241740294344584883631301351395584473265105857228303005969148467235912680893874717384459194192484518279692588918612227216524898874836013785792310447558821470328258495752491989276934449206237068313003926559004532700305995736781581310342182074651093219603292869384089322828314812749500195448799680494103758801208332079609676337742291091678890756352108599375984291036945415998526815702758689090449345698112347357888415563780034176746529575577122786710235564438455095807367188016986758809935633774571605259811381947086448957489241912692628359339281162691994691664596549505749668325539681949952647305995157613204379695920983012251199824087916711159671263093144533270264129214675065669578835191762301914029889786290278328845373936793490510684863653313929499096133756582031887807007280805666480068270290447261599230439989685994335593148908271481108192493990337831620021266091168002673487017720630196736735474708789550861371526582783219373724448646371838772759753794705303951729127017054932982826782227253551125698329452059195020795336729228239294066010251182268372051029974091651005224542406933008234957598955768884203144121758530450817892064144844886855634280695530562480439804265066941081716007045921905338704036777522934067438667874992102137965796755832298071912878343969638095820347347447536690952896201197347249250787805497486223919696212734552078607379218646467154057786256815727659915486953553617900693456262903932870815390957106743061224158446504630004081821964556110773039383438768869054659064575405925401551088719019502805736990763415513980002088735523185869692069835367804187976415207794549785528610447628579439969524573129972452997410874760995775038746446156638154727309912691872573681186639952004607227855565030364122737193627138928705076831035530623546402226837953729155128332799002156793666949675217049318756557437780277958380172436280391829140968583179212897373302770021389113644512471960795971551802577914813329384592517419397239124262768192963577062344398940463976393034334674762052524605698431777046431534659208273365949276433742025167742853621346703289502062564718677683373301940289188087540052722989612084360350187994613006508918746603807603808781349369894632886589273700794259705832685234669062170148383253088553190087220410317384591257223076635645830526633501289672874580558649866124684695137891763963979621570703356956019966936088719885141689013248684157331872453738970775927670798787960511889318840595101021251058328669643129574594849647242924346113238205941279009445505281022111078487775032533381863903264963830695969782264339772347149364420446271049074311791914720026402220561623380288386340872326177137696197390517860451314675426754480202499475239810211173007704181923115754350667209736111083754308755032176293876358994871208501062427203483277237230726603792859486186582834838746459754923566137510926778929712955929605796275592033743669046624115661806114968529735734684307014599973155210903801980630504057814382125622903542021193129014976392026607204762792470178632310258669288551423811887844125145424772489001044400800973174709303240413683516493237951573023176823273720655270207510326644572852173618229184576172788961982650213440215479944605548097597811597405277459593083571531117690704523238754514431230433848579138253998957353019828985344895619853127076827843381020099485555521179988675368889522790759820842665212256182447052345945649066960752487845668158990707552665875691459938151029459693295550054430369287765773867721802567879893900710057701153870248872137432578570831243871477207956218516641763220616928187482598024293948214480890007239232459948379653131111601437111860794547244908325182437938757039964994329794495883708174445206474299639543238175662384088764624955462695259983958111359137975238799164770931023294105820363532346444873169594085549025864322412553101646148179069349975336159723627094714291471761018986400912571099017122712622501520602225011124861805252551643350766880061293453670993088801648060977484582570777268412626167480850225061686328310649883272251944112920459718759331866240799016608186620202236906975223695577101832499357984835463457991437310494885675399845698056416511783024351796647980200847612536173125002896321163376354610279944768187354989163767918405568361390338147620302002731260029207299494609942495680254811133347369452456815161951585890315580353182018411742656566499356708330886138986659256025369075411999125546717974931951305698219745009293640680960993636231495021575501326344489377876883479815406143692915722467536781709144504913033476040690508455426972583990186795813805386764751842046590586088395338707649890220070995045860676717207726457629592159091220065674526912628867396244093500612171839921568852872947392301274213082374451422970206456774666761489465393003099868305992731666100085780254970244256771670600028429091404650385566285026571269587609856059561834305502443528278355218892880340523100435954374638562546283656195088865426001818066841495108585847955212499222593513436324953695514934646613991567401426477707257229864208122481938311911813222052824976545055862259045217735635711592995875606258825311919986880200283976386731116601075014613160204187865303119238380209992977380454491866250480195770938440018384526353932988657103039721657361145955325602431109760679219097776289940721033968694158900087344249228391697182814968428399357381766896959031419352274425969384656049233260028628790480269089392041278079647759442590527660515146993685381415532732943419849799727279863621440160907960984577371411298309812493448142366937310480162784976852876995416229558671027524222355522290063626007778423347073155658645555515598523526966047556194488010812678742750719857225997697513477938159388351197178720762108619431823560682023849083831352438769879486736890382332387937679703907019664922723059037827419704972466515317002008772667437704350042323523863252189991585261746185018314341788250767472522667216037272894193482587152837755331242541999366205653183439685610069081323544492470939260223505418311786423235373732404221961984514603640834159944977658687032864659451957489239471337453336198812038746067673456784303218564836141603852282341670794696869620903670481120183821075690397410194276362994110820264639821658326722253194134064254836541637079929695987530698829528806670561574298392341123913002488574701249694593246327300629257888647925110402904526972987341401110102754223317862402693444575661444946735951114122158698987604512537658155703153174848718443015116865150828708751657481734639840687883233398674310094168714407098161557143827642949328496958643053625722176542643360719107614673094268015717015176793731889532855742934022685508888311623169718947115423600755220661632610073896582539985571304959675575794292855634796627017606962069783875847448736102939459219345017892787362158313376432322104609996951795445684839614831352603228211670075646619804894965469998938330220889907728696534352042974972084245795131591399957826153313647460369572931493623555789564623242362575616043306755681100095058634534181800967870470695189410509987348863693796491368378544534697336915896167611456657615663370551186641133174317134488988405829880757221768444651836625876353167377557134173186249932048279078818332456106690213659318209257485325287521638205191094189410574358035049589552199834734978125256334347965771474474309028894643912864321851018367969894110202869779818979808693188985469768360745711781108931956545818506140817367839657493583844852606684486313844730740629222124025237050888988678931361144766724243302513883296253519358632676163710569287803120299783757335262112201329652657066997496507958587878694857020136552448825730389519327381385234454396170836244048233349669525179562324160223744452915271521343272585831673208317562275063609060994944871209411444829416136915487239149364727084831168594558903736780148851768546035887494224374782508720511295626875404496826440454112307180282635386325289211063916160241787458753881029605601530064502860906887142187448490054655810891675876846893058373472887851849796993236742454354949555088777385382627002659405676771250967603291541282428447996019100258762895615743711775519782599842587028750597027315176454797420332121809926256266002046757179521637919522882196271099429599623571902433064236496711000332147974480946629379213809809457602945384000948923532863394875351830892898098858036347325490137013175573705700642007898467224911460652664938788647643761017439860580075961748733113451858822484114379737817180938465711200103822986112688161244150952829065651386177175801221513729762252212376789700921331237319787174321093184564180830514540766212982244898451082433282956470386750973698283619295157737022980322533935737195530125273116619177322083071869102188946264168156069357794932151413250548329993618842537717578030782533941092299675450458651683686139694051203224523743988749593158320046486747738579781445284356505895692889601729244200664342821055168618907796914786334720799244124117425946927499047930089304170579860413642898192437154342982377985876918552634251387376913552428765051746165429940662838065319662865594621997937110666668419687444769385783020298404338999727977136992241674810945222463925298030663497433897687393104173978430304707812351929406187519459448374675093537886896193377753253462037862702224118366573141968874793658830062468251721683504541784168280066124711171536435186325391902535306381064328743668710817470401598167952997582198779987172148938857869619177235280017854950585617192097637267548805371665847247534494190646574024939703590296694931919072352258340342546553231995697738318396411353535222978582422876669089912302588322265067015449668629037625242786813910934301720798357567104261271688594276286374343912541016015994221183805168784721368167387108059443261061036009187287939988648671475435054128345229892445406113372279182388338291067137999154896177837714967286671470695494634151833656271280370122654836133064929119233818993998863469908542895020246936066083035320172006057599359393586818208319608960938437384640703098674848611979267936067884484667615228873477969105602398328361224370497767312642893955628478283818057777833105713386022168686290361223971496919435366747315669168653540405974458889652437023740389293401118025684429657285859221776858806619124466172576958373196394994885963656809905471170651731155749382168636138774301127561675392487856502695736284487451305801637598647996316942410940610034713824194928654192350413180851861805130524741764366223999285074229899456683861608004874160302062265029177905340472112723823039270129761807148435531558396719126783047327156728508741152966195088324161006386773788026161094703000162921544388258952400432930341712385400724847757116848355904486634652559656193068597363084029531684522327155200497348784147171878478551231012831057332964106882879472521802688826385559564774420762321969963252108316080066616244051381310896541813143792671901036424545383276619046307552905399892555033560533557396515012350004235517919198523306494498391346282642017213873495606320998783049497832835528691291756110904502790838779619570488018370201798691701119019372797410613336749020068662931314661808730410073080169274460426777143594274755793828294168264860085233655730960957912122272766412235497514412463903129799822318231076811802594193611898841251462692608770873991200330161083839133212978235844145559755193944050516356465690510624476002558450393263943308182964558375760188875876621860655412133815422034211201426288674604523522248250401299859200893242010799511775667526591019276684187508152100860214660923715815223955717967571489093910495645204686043202259539757791802180289137011778299309058853912498142275004840888166909192562435655637515804631267885603516487108785639486274461602087593002221747085201180681075771335489856358748870205654375324047306133857913075321378256328041903918275378438059628533020075004940234635103226574432177681208775397650701433052828303820076186932453911776279451768988195390349958982298093915152485183023447996626866889806379230459362675483073618362534766487224075200177562331307804052244250688337369287267399014897611838724475803654226705483492428812144931134145484080513514055462596459454014261302573342775782683741100613579278014871253422841858827676932172055030469485667528543805511859283489034246058981188876500780732230129405303817446120626223972242915617545244417483060929172465359213395339483392424973731422952446137729419130907011840816563158351073784176950157225440807371043950383191448055388459775980330480676817441286821746567647316504919596353016284721141517741572636324022768774072575105354335184120219455747022582613999053957447026377021853152821535512308688768566132568719050642712803865547439171355747258032970749972881308983897202174919255531377869943025497888877455561647223397583440363618041420523689760327737435504213917201365475054308664272703643234852133197409890752030983911855853724898661783913823191682528729962272095356030740034860111349634245002572331254018233042284240603101605852383805810999331897933142357649515962208565963897325545027070248078822500083549579694085701351240885546313295536418160537730943784702042057820434578507457643530844503048668172326807412983559248044117753006790208930018940638044854108466311889345227207260415005836149209867897815950524016523854226385832271334720714364058876001322836679526213608523421272083879949285103889506663373866990260096152745842561328030138510267944091520556489503896662271624605586504741246837514154088553079961505816154953578236660210891727297407598035309696124163306746383750958631214477926164901326624614028214817893463517833060603534512093993834389822330492374297175099488816075407283014198179071442159334017093083302459866749071056286872898143517363554255805492675921048308726918565182447402199867623493462478962966815513317310911389538475779011287677035073118098879061005858852899674120922295923959035534374495244166474760456495332942489862627960276881544810898683746285572723825343357608224039135421588034270758662238820587497977472191368149717759466167655777284944023259614339009843974586426468967499192319727823779513560443402949796288997141047165258999961819430239341063086872670005667840893419957308094172241165561960833766664618125251179152678621576639506814002203847521599891072008905780907065496108853258989730323565229106741883809960281296791327359441709010759590784459358331643498897605753561761576206822388744127466103013335636134892602072520620211713001008604766222181316721280985545091419104905337269734900428608540307464978664685815825402869213658799052243777390441070027398990970065755081716031916110788729760853272542267396451337602644002600105731623728818464860348245404917552874758690135681185537258581671170624471454129724936062040411566353668492632277488707592399473169900687167245184423710519876552844435376109064160952073994960348109919567432842340128049048234957156198061770143890204447049703177642782321162548845412372201942460766623315976187742881132085642320619782501978880986815210766664977587071878522923364337523832837390576332684647669852571831036807652217559509521619287516499793202812546297775306029939337473262711486612112565629743809343243228744410624176236151468569548025381633193157612348819805132037175552339548099447950170428377968302745681176685024440639252508707551334997572015427384745134186758626808416688461749857714628577872813138096502037497375343525327027068000972685354564104575874606307688503397714902268051374996126303797352257940485985615036451511868966238024655174227760113069562150592808030150463078844953071209311310358734985358836694694769453237978285973574602597806076360312287902558750909566689291712471895390289473502269485298762144739437652720579400817841263508945111289958686998121039040339064867361548997828431528502320102340597632813133461870657944737062191634328128760551149686334200248508695855807011534963387552219026786936627085815851298000923614635716992347780223729687765137370124351694205365602908062041985573908164015697948033448918045314653884418750978303469869306189654585365905648335738562340239075526547026206969981592607277918360208472658288345451930467884357450720232835176272961764849542863585819438706457874841231419155868227265533481243456471575104758369157347990168056815240761647500320368257034109975987142232270281693906352950617270938208973148662309965031685495357662251393433919124956225430297802408940531034109578602471071576674515618332485752852528721415574051583523901799462787440228817014306782267928349918012859328824285368465367985148101905734401316065833633011472012905219449529643195196817563316452723330106415498237999299795056862522514521516590472589707404376746932894781903569894060442388347169903375337540571637298532156609915953868836311675558141396377202994358930771000762092961389804889409657871788768404968214331014853968225778045327493599282619064808397325093706271266938574336315888686880359424566033924356247627258974938783486658423522796215744006164005136174670737808603111860085083989459989758998908460218117944988405715279629088644438995195477237458414180715532900832133763843584190061259262327538461474811010276557504808031560762453646024880697851795137541960388311457126833714422351613209814033575614720653400891164844829474543904079751756912116167319379195814518959259602524968347858557857035931601496955204119759548592983382471903289234742404916298077523940995853687636952388492383950178437534965302764542496458364248349899639095821794031685833136391551778324037696708508376016072979484522174715651090748825831935128357269851561552025897735633705751506525393985864692972938895414952412090438078893543919753038101777442341553553380119133387728552446378330380464126258506086184033070438967047117908906910112371357109210956425563609836255277376514290042578663230079875990177213343869130541918367160704982595384954271876066340896203086731953555952937240596275553059061600250832866407321570348965246260145528866291798810134916754650879664033373085414803124583462385931905723518719530980821708067073573836985217297871439069190969560060668794538662203491688698781729225603295569081630344159853968454559598736043383984750866293026836191099222312923534450641428656438627519582498583591225150013038839416004229350019708594582789030762934436962401554085709984102756501797440278388575902848345214943158915970829012386016879530735188131993033918242089017816732151577630573060700024940321037067985928746418385183205791827539794486455083904929918616781548827317786703187061811280973344550719809826587746775843524867316979661191680050202538294605824002441881845082984200892330309489093726985902297977183758162409022872961308942846140498166059359176590416810554563972470466257326999445687695670861681452576081133375080181841118693363413214972867932299284329375687418971098805751113827709136399491538896751791438706357620387107847617642691899206063633264362580957857579350151377773039385678230532176889808034356462937920741840327414381710642107517425676047517899074151421145741164498903675604034257499115515454242893427204902137879595784430244859856510419050277138459450272055667519263612906618354347570380075001297179966155610377322166039111227746988325342183474513611814461045194624849711331461755270760363514918816236195836836415962527387723110165369294068799522943213928744897093368587393323453629309341033935647048677939890049184469490757445356000163188115942867220836668639682124349645013531818017498462781793041810477089438556944552307410646085256510339498049942696821294876246053225504089992506817525258875824995691819624350950968014383669688997500122380361297221744223961590183822103268236037307328603337170524654127964387540505383841066055911392162683153165504603281824709186662072804082247678027660541664458451794497808411479537070398844929728417768085209829937386355632022325341724358708347913230355197084591124284297218499175160051411834472599484346398435744958227222223597290897172905642706756221866086440359391591240705931285261029675219909971148679827873220330384996130850465867366901658605878211006705369846147645322090501717189282441740035680817838453553152168264805620619382064545933545403598723365859501836306790939062987460655043798397546719878825005376499008076302355925204741237751439673031619264785912483902011776306820001221336567073783970998495774542841698367907965601594324932982638521118007148024767432314461972897366388803934596568021019767186441764357805248343551358247116360315231991319609613162552957500382762079029205059333971110888619282456886518271872731412048092139915606709275652901843753060964332632285268393838142451416418900245761615958478932328416903671599651017281529534810523149592613044976856035795639077525278814465778858331897071701887909804882200238655677536226549785525324669019831274736119877586584830954473191050852989388673758609343997297686081573979411047009815120044618278025675413990557779081717035464703641918446369643302699962088726547966821907092634317087405591585461711583914816491504614746223258856879139760544425947885301600137968399721556291329995581615136456937555844695256421701438801726784313501791392098426533364041094782503026790940342601802303867168220359111498902776093529350806006813948119927200850845444802765375830011472101013080781020592883053577267460734912408531769583559070493974963182538617624515881850827467486436569193427292547672984067861586458004722705749992956479285425712339484469579855121844278407139984005270200288976413598513672191307623272302146933829861655503825032895079339661899380862814573170469479047128949815152735749005618812546065506960174046897632902130487327670171327995834089612134163675874374794647074675582649392883424416682382943949491440937375154158659933088018830752609128131448236341164131958944452984240815527513858069995813956728218963605617675330505775219258403050967052072451280206195354847958783693446458590365421619055401431326575147690904782430070168313562093175188502222668970504280509951761181436244079462233488076131313635237355017851288690680567987108264846719255995619655505120915329306899296315417772925627074618682906019245462090366119662295144330345469798834746431378959409122383412638291417021076016080023709449646655728583829251922383501654536477861402793180035681530669379131508081418014833015384526190302736710620671932673823447958255083128601826195700311742207042689256418382958258421461143772579759669317452152926278002291612195577863434645693025714778359034043037216203876017091127496834717983479758287924569684232373292598302866070026630580915386100382012070718364525212981735181260109420017822905212141484973601279354404082134134841781019269860391414697617951403892112956248960881518123078196369061139102367746569166550170309553922112956355934145267939748056376906989207912392269810287548061667376196788076013229748090267118357470875973893379565364968747820716803462078692057676991403638047255660567741780682304516044068563827417339294578879858775476804995656560302138753929657587559559281498644265191960499779325992860628098890170827669669448215210973850226195854350278908938670672132016153925424885700729033658586633373074612580118258215358112538144438557809329445865628928020504907483832455844922709041402045239801453783455944057556015636102173908061008641826524135714122991585373073275920785810287190295054966643648033846581859131732077473450430000196183065461144305514776987205339944399697538699406601358868081846716772539463010857376177221532121405919497901848074316068547284520609232662518969399966950063852482593572606617415065110778375877946423940235308077497592749884328961757284760935678499352178559228155148525187833192736571024601419042485064056671229238339338772392088755536102223408017052097955988768749492107901796551585504949580257706106306564034417649694791205447216983616921471957822971146077001925300207788057426144045231445947891794797150859635089449499722134990288957917693047416434496623298783285626661563928103054971392741282296316366165162595028726759575875519624283368417976380967106504486193002695171511921446410250979546276926061207382894655331930075909956003215895205694934411966518380061961718027223812272059692041358970816778322006909158981779944008378232257533038091275005576189615327571545015429302104110717436376387231050872249773413574870004584486227006213599315630942523672531913902621825481898482368078560013209785780440677325326800082467811571111878408174628427462869230013802949408461954200377124655847784225768262464774639596558306660993226036625997833307219514240748110451051285145996444502273853200612674399407914122527843701489282963097321155949568491095334630632958084712533694577519067910233186019477282236125389286857560240300572292334139525980388514348128339085528520739670722246364611122548034725496401769114999382819882300238133545448792388186218671360504019675195519645413688558463701860031932807363365565449727841654914269621940945172375365384603897185906125252681481156692719662126294370069571633630327038941284840746613980544151616903741579972470450046738889840331762191845535963923946483593796539169068495915997848053023592560848642429671989083837663404020363254298615648166056463833073509719258623538306983467703894894900436196234224546281800006358950397070145570984317323887246846055005061752842491781772943696445872297748479735924700682190814601703848884243572665738632151994442659107708199474339768939517732643078399409107351789221893104111637723643172620271402405242625357230777513840592350920494148127401458071232987365874590467277727594684168577334716343735588476064644797103907999104904010405002168466225512079530726828745151935802385557201801485591454075250775404703037367275082496789192227624213592012037023207576226570671252534086521564850725529584491899542615909989437336092878299886126442091507621881781105401080179379228412877694998938498617126905324552316636736557312308270497936673851763217884789586974749713409636536540804612451310986937227774666511604837512602997546065127056769894422108039527203332374609992087335280818206586149879655210239818907450808663581044382542992833219713678008456349512495990702749476078006734671210052480577713618430233968358629699110336863097792652283039313150502896914942010980843300254954461778342520866225449091807937924014426746277360369769902070300400906749552923506072978890753170070370959741183235243002776633448438249101301353065334618248857063409249834304514170222556469212624582016447459076527312179232388643849359110244654398428907840165079152215043077968837677174247884660663645296325149336720646227368358407762684298527714612808524897701395637362101598012408287813366899897117759619507280180391140529061133116847868990118274624063230152447873110988167611245900276346657838794000692246347077549841057317808484113505733635517446447739891623291345853724405107979950809422589770024831334933206976838922794153059986164210453040779728092102032197833979390497606393387073063708656314132138436585104309962187452110429014632316164857362241646720575609400268568951194356384308636741297708699067317457291458501467248096669746655869859685739376649556072466099718272853583962272684317877081228671649043641213810790549908015442540311000075613117981227581800130303840882019019230750432039826802373084561113895046262227010155781258241273789089048987259033057866623840894976288767064971991820881762357113264782981127457299566023976836525938095104064009310130599803017773068318240137049528506938146034857507654235272129225611154453403854517565835267428289575613552603994951346164121309891239878953083180194779187471492948842497151049767669699649521700681396967771850453466222038881248743458690734094068068846132940286489235859429413720379779778743597476851536042586745644819484163453408430428309562372538179111122256338096418331839485888778303529434392184734311567357493325786420942359150154356474017838870161725059967205743639735230670717458648293860473129831223218478428974126497529807560092563567381156178155596058619655455476673285106327711921829117867463561670339226762575921604760225380685867394495619553745512196842435074867816768940993836646308661785372296359708036699878925302094570731487716330707147699196053918474908808474801369687118907843622080752845788539995847188653442787147863522637055776805048809336443676404878024309897412355163901872496343993771753331876439589802758032694463809327596141712098512954563471022885564758680084196323946293843298283323953216011969323224706556241081193394815197321423545668481242536605444619437273103696714409183760349240431679277781619478281008580656202172066458374639455878285899490027913574392779586038829849643704742273786088323072973227303482601281422323676942673571302365234555279556149151579001632002205882651386855404300192226825916382669470643042798233602162465188133509773905103251084100475856946063910989871776422286268884681548130954385176833495362234802000262052715553453612548372642057682829449099605105484017861097727731529959086798225818062891062045739929446835307895093009930286257179679560374059372264927825759906093778459822159624548911777185311025077714744836447147959623629167792759506800922973653020420522121300289626395017026053120367122134688082275790551644467186995369691629369558751519758748783062056368570644080250563073934282786544131917836056055177369035919793593733487209299486135458421931955116154675403289942797779409517963708221415168051936739041176724530628394754504256748144029407697142900154292145380652211359438393738580059775577063396415558100562997370373438728341492186598035091539234485976345289616072581187423912524335854081870672336389215542088568255231352456395712865952473952435014927963309535245605064106408442288495735705693958441363797714574264499335809993781002046773412424177000635135127995059993595940620013388581092869764389945829093260897742168820330265284787673304515739439080524105963597826293563949207127207240318972539377709950681376022477619472107539032744250400717851346717367469928910905946372644270814491238141117989894076268742487456126364283559891355895040905874648385933575968355779846299867884896002807773613064019152692371243047667024026980317155601184995593877832325388649995268654910079896463017648834572696467499244578944685155781038350490326226690477564265426813018840237590303325919980213668313008899110075397065944892988810692101777655554428815283182606354337243829758908097912358442263406223619918953641782742891782717350586989579786140201989361515556174853130676890016669391410227164784285509704474883013549597986389622856601500310874190177373555783177127547311875187199770437142006672650420002110527242004956198285262918045704618133319440481825124253120884648495284469329767946645739333628295387989610734780224768585954255818715039509409376624069435569043478112030162931764513346831256425122084662430783247455243275120296606278982768439518683253385386826248220287243858566224307633160236877543283932879151014332209793560765864544063014070260061014571320108649346028405708856177439141509390886440029843271843431264468314126081012902775226034872801999781032146601576411543530754011810976972565486967818225520495892401766835115631451107137383149137618244984889373856081731258882122760625738381209713241098971590103624173786573099880979841324031631380166993679408123924046831027698332988518293968404289177930277939687966715064763909666624729405215414888962771774394501573938759138180317531358161822422651567093884507786521565228552175064173382280975036649853879138263222451137043445739806538031197349429537843862136720744508104408421834828782867500255319142501327660920777793791859569293288430364688777379632714481435426400973069940303847830197627161099694502331181222638260516140509686735878243514538250686695674124703869660540749734809878606830763628936871619179267232205951864973130702524437878582855786796749203048996196072827097631834344192063084930387003426594549872354438335329480656674512940065200371655595722201155363687167701913596085193915405925078505512359108501085563732704262631651881643479566531390451221926435265158105302748986667133545014533200602878136410622140638532929840008515823496474308647725364919755367355984296969553249216021844189378794580685576753744174890253848540959652203469835582047216335287221447205038545453100289581333023535801467248392997920619511035107896382199895180405057523702881731624038822298736658301738226946202696688941045020556461483406469512889510738511261735505157819924958708056777174339733675100596899814134970988101163406557922642135578902763254875057830804391269730660989599508609282190984545804600450597753658425741037095162779103803885147079592723270045180806150045320403055230823167527522603994576624308557544308482661278632454356630652755742158557463591307559765411734414262450355611517560207047462471665784182748136442299630451377538885952315778654601308344839621154308714494358492451916633740416957055288996325055925458377693774461851705024700853691913145969391091533867262684622235857955374325947499878439397586344399624960225565830767304774124698413346628317468788662781390409777367700420566508692220198390158833026690815744387344184060007930770155589456753522146612529910756493936932052065397049095963218725970835568429439792973141647103439039289212157759341414436709658494536960682401433811906005991992570699557998641179456785962559831524472922002119764945530083897469136792019515521566319778173872181524111221931153136100420354101029923139231418169333464811222341766981528348407144925100874860486981874388248059368634346764527466290289701931917924491397408916363111427455608647994434697457631815177133243958484216487198319321522519657239695901468660251940821706722758599411204318017761488176184086056351351461041015626367939882108046994525211337102565537579162242399899715403211192721403169474031494211772488882863806816074289013883722254222549923461544815223139835878038822107120172378552306609096634077380287677162819860369290699184846602180580101077273105078657331960331637078084309379274533366993462747203360359871023081775739350100185658285569934964238600881586767832958263661735386375798785152442348538282982890260744571957049116348052843331506652680452441291105926993125198808641049837569645923253881861258191505405034590640544513154222734918345647143252004016362692325630428269306786493118806858683585617922600218185369863465549170907591756881115881867093092195552206139434290506020603575793033742491018755794678062564461625551112590783282198740850843449961097379296168207403569729950355186513994478169378344988389352863208501759144808798203593757778615224503741169065794833274266172007672334875692816370332940677774121941753340513376905486192910376067527943423455356467571721257977381520492591420426119101242344597930043383754344500502770971912064731691337953621830349722746043351103398546603245310013348664782283633408105161088551744062244186148692684393409994472160219007054159312563958972029770040044740011913311440607582987557630476755187408554314153750093613857034844173146577599673205383608526342788647797417851626701425403516243778628960978643723757810160008827134799975988415555124532592954327184690512415908200763464082136568548721449113623684756735614141206800044989406689472402821878436463298118001601465741139455454295549270932871510870839079252148025136048428935593079919322232912318660500711330881033398319261338260634445166364103580566393179323203789030276342568025946591911685164336126432072266475297082250873433340221992084401208043724723711034204843685334419166433263042781672615545469706802805560589331835244365241515242443609673037861790247414399944138249129770300098312944083107737820527241262297673367788470548559804886855181306907545408960196768773524460400086068432179990306364027832339609758099850095014796231918423967737557640824805570211069592429872218822086373074541655856452854238963320267404657017637820935278245719982405174389540755546333419076748347907668286453422753985085064926712893906586936808168451733674064663286821915418302331542834026374969645386601120219750298457124754359259274377154354838752642211685970832781931173713640793588177703856491050955632747262030328177809888082067837805166057803944043780348612066195214341421186385074420717844322866944718823729278342448257609782767351005570548261072190246037509388101289121390669929249184444637081679880301252607961793839341123759422493021090628109554105790887735268839059354613226620859425933024450236846176947357303118711970430984058252019016145681413220396545971316958956813255835877887219260403279892016027800527929758932062971000084972631244397378566338509411259534038272730211937569288842309203090061625431505484673620184118975719557643056533365840328922830424821742528919772169016823532437503595908626916074711072708862730796304877876122916582550693415723731706621737916633212904234828174535634536424518189594919793962070669995040536690781665123388690941335904626224059847227940069168156971347893357631603463470782107991594070056902967724597772497437223388694262694668659474800436548724180090981579884012816300002935074727303112562827082001445642789045175563298222555626396773252904257798734046253042823235731831268415967222433500919410885085918663103678969085584956448030988016112067467301434455776332686631693315457889407721302190178014261311497281907272242602893593952747082359484493673541151828739354257079085819117061850493989670136432915500603721536705185605257645113783488329489284411877739866216270119492834073958595093547599026838398197663106558295384075623681611376966616275834159783046637359130831258213594039557266547378231814706906038559994777432714803971463375405823567076902852734757205963529284324350461003396151214738918137063747679409197842739641773808150210468897984009052530644507264775680382296308146238566006966826722361882913999193052777868673362147605089384770183567553228043785249402545927794107425906935451331381726406895230780540864176306850913522670339242499181034939740808316893677735812633653847406751495934308333305181454240655218461472982564347457903151472924334467175949805226477345585961388634998241586461789088194147662554793865249016409523191351511371895817833215373809328101438586561602308623070350516176884601121851367754353925970521324363603706076136640454345863880696437191742819868450985030763366210935290267606223183058990166919327473702522905015992685989252431191249592187078108220830659925191801682113993841932152466289034976940892836663211821572413387831643361534214300752919301602566860703452532465778266472300939340147689642491747682484411495759656017748297921055993247844306788487095327765406358139316849923632558339413086862992826483294244027044846075686178310392208067735341061380542022056123598966122035286988096918646972815594004022269329950710967897764265948962918866952473477250177440330390334519940793279987834015983020322334305194720724900229303970975838136292865878314328382138408027923057441149013658128365577106643284289402952243616283377785794735458506946947102044507703900017890228952422880159165870305697341172572938118705319543493780072141610646620384803978943457624575454252496386328586631242681880899106752668199061838990529402876931466385446485971218366312045039072777664092819029563167188079628381261217210762436306646527470810012600876506414916386067466863610124842949196778086278313935914082223730056529730381335849027403381003512307602562801200678218286326296503303518432080949040611668347188330405704412139601538324201456016471747069679257358529832022352204636137229341204321803775564447456884294786959671148204390348677064793620254310011618192828896409726404130186850622108144299403596886394052729498003700561547362094913845229182543954562512836158203427422413793914427474897989708941608816750327799228186378977271772287529984972962634616353935289474386201768147039578729758184899722706607542918701438507757245992340317923993982076490831519956855734830565810021134366635504749454946671682783311741331131367311418129986245050548322286944556220299382221704288122904148941621764220797775034224466468475569600510672042041534942694263070337478767444705811314397764795312627406518439399854077730358785417968874516747686350240050758774877206562572448663035248176323462387000417322911065317704902293845620939934000941392380926772170215207976954905320451276331047178336406591337974714930046376128375728558292139666871914810694994307218419217829857528722315725037656837062383861652427258948694074257295370905559501850082745381099383638962421252888902121490162771363498276703646512211402155900045093077372782194294395312795363740451487195784582386539615159153817556102499472013561879334944627955172272750723836675278028238087112982232756610845750126632419412603544629911330851598896949289283350829213378530209763393097806229820156202711691949681355026870654359183352197227220792224411041157876896076193818559363654102969000598058221825848170559985144769051785195980190920054181909510885815804477599383533362116766210735042340196867445818815138056870761693856792124294458889672579001691155672330085600048606892128577248555864124799723049097927303730723338314449498340825135818831022729517071795925097848003094743145556300507151291964120258473394885790898832530281777343331565942693762100729512065217812058495124110715284674851932219853997820867839268144458984676865643578265596929270728954004194838578559664292178600141186413083528091494896509746250793694360813837550157294287481728629334834984217302379090053125579950306989979310950523095353150087830037411121488648347831078964366489557205896629020244284303902966786908731668963902473484750505095268670234146740948371443262122589872625801599847835630753979534454603986822703452941058944409207244159668901607354857932818930929063473147787915452679844953842610941072714193778873962689071611835334155164469736748513407558854463971020537856575142739141708395059984285176236049115726311687423929481401927881776362672297600249413801447708367386832008011030534461473023617754071728131066524806835894745112422948335982080554616671740862400740771940136510227198755601356007502127111331153687264040157111531220099989802111665458511940754662935916317025607534445760024852949231287714224054062565020830753526795440905736846032674013876608085657270525098197951561586606545254993512460304205473057492919655711481183628959616148324411268495802029272035300946787414781799714577709625892414243129477949016691871809750976636988460404171453633220161116881724425269022495362025737770434056332906778704628975821936722599325858097322586626878382957386539299006781819015409777125286801282809856695211679156209543082087108825481867229413565624902433986157343026673075911462880871748991464650915117947419542012292021420739987503334689005218966217600697677645784422671858559322009566815030064564197457397438884807438505843132075273058940818183780180658184689557401086862651556878774971992748254734224763390527158342561484060335136307764329576708807083791333768229932268987695234230173235202898566667089157623414451887649950684552540551794439014092591548998653537259444985510246477670924881524825118832178326590679858917840422940660944451596459230025055179024738004445362471596880323003664093831453200499932964357965726026095714614845647118132346000477165866391285452169556867627347975728947496272309812934417976984908359079924842819025889387189427331554219109799121430437569004369579143494661561352468758128790749491767206117260977776570307825343074620385255442887587557272997022499599476298815136189229398161776819387723406865361223072047329481654339552655310244741859554683080635810929535563886061605528805235113185610346405045507726401480782813313710221625621459936596056609863763710470965681137588704346186737720728867812690548044608162449333740101390061119191407240719664456917789803440291891309496441578896319154447934772270761416152675872719410249701024825800260464476833780709976411245323277116929332467313662342025562777624632984845945514349786826984376627009614919645781005261969687975811096659085772362413441552075180331173959404309003781768311953315130074837209989677646635671493047345412860185470077377673816714424422395192257580476614208375823648358204079016682456329847502665536813519632335524886303118838281908220113678659106264148617744352432894260137995839402846252020019705311758036007837729489813400906243069553398177065157075103612494003969323791779388072173734656734994588907422814601468111471324879299073479278687467027810118738890969303851957487370819300566384824770637512347135702148760275017907621844510572054735456811841567721793549143488532356630141899789059410324712559629240314170094709715630005986618845318831023660331870434083251476580243319382568392294217385211614046545576143098064763228849246166982758812294311910506976851985998345655563919642883650439917303453079981799800866053702963508845684917809528771499938598390869189180949263667981892340910838839896678952509457785324837457362923219451038836247087121115622074170711361898506138183968441169027481015017108598386212854276373501821943959084201189979413339094601098049830928146267570897500033911121231031148263278860191753530238720621553580606882439909552300797474526924380077310645177707417304065000464069503066649470450462571061675773200720480995518898274361406339133121476920957792618920321346429476467138077880639517077743806732912974967712373217049588035143597455914917885426218201047908060883023711926286553328666865781498962282336962738062616912377444303421134126680866855093434122283122929625682853420695593534376144680433075564805997110415853898714822735718932069036989880534081987658549885354843072424277555117899784303757414702550814599107179937104557119448912367234201461927072749277730676449990278620595753137960325158419159368453642366375850761691783376455586697556644402060236650473645789801009264610855293779234737300226890020442889151553319204753103101379718911638410304196817930033627382810461741874735745714595110097948350368465477563137920527619588355673145259240617716910371320892528047754905092332352721329762881349792996747448469969890913378693009201104387213661901428941839580135360401023782377736535288317138674751969371236910359371651820960687717718342184158062106356725989573754658515513276141036657507046550083599079627577138592227612804557689827226941138586680776363553319854860673093548485081893097461784556745170478924437733901053639437823444511403196403693020984404981073243275679557364256039321997568720899580102396030685876376384792574187384114959162240462288718846468224211921528370386156376660386623440535937302711455231838605178847314606726973980092573083745116392364227979898242696273347199700922011919152588936694691381791658550135396506035354041213977056421246628055018351588902608556214387535937370899553592750848610316544908003941684410498997796463436493293474370458668914056548790730202062163406955782524586600663802507061594366885031469965433358404255121658683897844018207416608396779719600495695598892914230485377639064909865080623573507466469803098200203811812671362160159806163302905581301739124079314267161296690510331048976038701974893236105709427177928605577124794872676062084052981899438603054011480737607999190487372421719093340844123405105507123563796902057522326923271557522433427758644580897868087747217649793268897304325589951465034438371005434548639884457446221207710375249203231552058883110282258678920253756767207577103270806045322427004594133492859288983812123248733428281821182240482074048181776051479975208886458277298943577386357594943856379115695033669959692029132505647346347558778985686587125554749226878716940819605742578248731407504555499557013102568651304805363618991416922215242481273534160252844248291704284622649897092151598292811460327959568948766573694736399451031050700045320433022674395002383643918179024150568732474944869493153693395636755422434486589409402759460127996284345853108926268233154191012451255521123036595622240905745717424309217254590417186563190222906020977946901822019212915542692052245453761108080820928410640253697286106788637617145997340940478689342133332714120451587885155472664978288427181518760405640300095856311638668773728207951376330403564438281174711995788102952316767501665582441991924033293597313716404690836827292459606656825962366143073888248763864920584662233089868916846399331967194018451496524474943389118600833372710086877996756309325024912037021489511153179343285831049641413543850402313500307963846474352993984664317781274257425677538875507381727894796017820084061190403884995495258758447672367948330509808972799865272153344100943564062719471888828533289134228249581651265046472270017597806445749735486264356961147822999667273224550705233281851817556570209012568777844455229822573090394581951577753539174897549880494277414613637879748961142643796154119259763579915756622386280951583030406531148834129658920545083865800596448791700804600539003646621649275058595280218975669573568216117906012356376688457861120678171956463788580903385779556881701831633851152400245573795102603281453516740753451291932466156331520318527055585492440932619417350054088479728917531818598596681087481386651819681734394443230728138154200719710710738678478513234214504213093578476832046067659233492692638658602671765276621672843582937710294319834650766328510973218150581742752409203188405894629824092005614310539547358109910634555524661291764761625875287917674575214633125988346128734410045186612324664295532049494224203526526719857783214293195872588004346500936391682606152267331793940428326950505714795182153363582593228502982160008466917995396157972326857052227280658858908337717515136014778832261039575549412837917223822859916363633568616039776901554279640467544825179937093190248537346379621279381791251912362202217389010483216132858408083613050251066742895805160951872779990752549690734310325316579458410798949119412330148020789167356267533728686902295427436745274197825653230427921179875482504118385155270657197471644574657424671810764416903218422201157970427799829933582546210201509803330536873858352649184595161698828943905234723931323094152400622246682328998055143345934440559872794838570398042152186738377497141530622927723451868321326078159544360469271152458147364774883766799983012467214097258107325184785328985009806958059971974732032879731777993259850496287154433841224780361719915458559292541240660985432066767513701701797849667606513744201173763748458545468726531162888025937815168844084955248887718736255560592529476019884038895744809634189394307699690598062571864743190016600509861687636055541376930558512144373198445830476326628565678496203305367165357423547842145737399671605037549854260772957285934120803801363807173130184035261838814933267676584809235439822374856421218799291237151131589414440474877906532236134082273931503479917513159973881967091179225327538351466072983667094109562062990197055747901480160869980159728579259845980063230777828934728762276868825583799455218643242092830495724359427584425166183239652742726683937471682197778356486492283303532352166365492484788438854560940251732529667853466322718451943537846367566294831221123795432456090614760099883723393460120826304239367637385251773465769845718926167538876559230271078353885510478687518045179514393192809304321111194698396292983235298014328225888230637560944007551377454474545056034749122954210094695094246173756752149662113148347558012543289697405877382667364283407791040157795020284768918644071591344632430894820909331881735878662437669819642325455132095761837218630031824999405347377955875380921470375246055446825184337850691419550269852328218491566598453719864004647818572394677824449585661064520624344093252851733079658738784735874678853616759535791047665025669734007162879348391520513718951748647461360750555767083824653050344134717226871992094003569234435672566766142019817401384936660528838658033885488060256943165960365170675135718510141799855861777886988070839181382992858071615992041034759847957294079146903814238919540096862508430437345667130919491763325394750538941057294295135736516538848442524136997810115097675167152058371881182728842958939696078622621449076700504259415776275654820332301270089516080464399583376997493538762484008404450559493034318632501870943188471905442518816299063751926434583540904816696002318291398651318883503003660561264628904315242765696171802315225527229402425250688535109410477659011368551907645629191026108218905743020168335339103437404104222523133500129594942154509627531034171106498159296359798049910035229335118241726487939248709257522999692040789745520813468856204498381090356896440151458655548244618941889143010864256278945530454567994416045653298461665126276779741631958340181451338260064545609762313680381228433663615387166504267156068102385447493401101300321340265619375994674716778932847192845894074573250936416969487113274892395714416485760320297983130304212939919631750837429844050174070359098267378261377033301576174512717234614968634282957941919551020074275525996993285764633570238330477620106460096979394009782353772373675110628609247795035636815690879247570038345805814613226119223481244954384368342423036283553705898035570976866879571077222008592291490330123941342933839225781139019403640940804787037397294220258163924860524773813092949959322375223935150700540190155123281151525856278599811283477662637883251361689927897545131013845818184780380105172707690908197628987204475335779661880395830984634925595341396653605673744642651431058089214908288833922337918736698445504309834754285182147035198387773101494924746145490266748541729687700464156155618940364413417382687156730844497967734155069123176011323553503901625845628760031490712054071918502363518958813322674264964014697586394786366435114161150653707457179586682313141709399745334445216500073793217675263162767732633315344200414303129565704204557588524579392861846239422210227436364596524808974874389295152241352383654332154521142121182760939633364768272268999460964405536714198277345786052597022614192735927967960366775589492539271372985503510966418113001341933750194098458220653810721188638587777504538555889161905529043681908146619240270028466838714297124979596432053128902680408476695165585545124998074088552115722877672428732407898383608293384935828799347272846368522404227320411741606778307518000212531784058682452101959180889830001479222747086710563235596904243477302683537474591986486101862154535207638605136390855995046640600457888077850550851413645555137877735574145454881747165476693987955606824599796442947434584670428197519016000137066561217714337799712902131557731349238781364471708695949580829273463361723884888121431456357816843341539300939258176045090248516389799594463553476931387559622259100860882786714186499911593370202335167474537996621599087087256508523975054909283279133294352542998777728617349951756230344805948536727213900952002684972677407428615439502817590646357652205198259354459902097010714814451253130581973885629782144133560097882560403288609566610321512418157031540166427939088754027701418052023542404664175507943652354401111235980379133643639123498438101367360668879919748709662021125986254234523793787597074975970248477836609199269898333484276449509663315100003213884414718727217979946365717090087808710210186450398664773135306724241475844940255371480646173271092912682612032149472316396019323180972979482928102719490190313769572649155025942622242610026605195422554519781799146854075327186743585089732173023005357660905953284006712407641643591183984603191551190428556868093153441095242323500722877514403366939959084890645519392841209818539783144671423124463207026369136658088569549766573813437536115892753244323041591926271309200009486704424762141665973000286399492445462584123721859170079737760782530954917748565555850856149990103955715219278464142155509812651408401904112337146553081495319797995936813524157725246756845933504854730693969789450572358822704035287036504338095833972954878881221532893426854441925603770859856252001728592512842463058510693644009633094198373469358353507420355690420755030900254718352978936566416521360166375622324887257229427421694557432038070801124792135652438889716109011239722640280076532471732039815009550782783756136565101179092357043320673971237145594947042525501903570639148011882725096376271515261492150494117936487132491749452708827231209760905445416315756109352989970887144954537387974330692722749455302298258623059794854976557485055043326885545004082054130386736924548558385843169450864305110885797196618588403056051827776849625500771274468750780829861989212775422863556239697155957902271132944239512232201440167423381762552339857007190936071074391481240830437620480997040747537116110433405355215667464823674053969356773376749579266527558653502049748145657498178781308907822447855990737605915956151044289266103680135405560148049933448646252834031065270106406636096037855044414535556118619609807188299786702113802922225479665609022199423559548427982408873094744236487250373217891125150422140697078284610161943357645691009611963508372687917305445562494353009646305300437269607836414136262735199794705324169338162171044875133347378582711808297708685450900263848778289226484417120823559765072255375459220874818767589704385322173520454999260667266100684501015658313523696456923798633125471820870287059097096601255066585617401418937104477009539960629252956019725930302024478301179070062939167834341420849258627749474321903825978784628467753389312872830081210268488914423950622000835083695983098220903288284670138751740669767247592177878933510270826837926370887834518451857152878817053498719424524573194462075789855041605175207058013781044435515217673021617543787800657145300396090504097770662574343480648786144413677221511977136365507660106279413087882695935294620764735411393589399356914147051262175325486306080246447053115967169990034811231308680937827834319071866173604200330729245765732978679847605506577148394477243655137245387811746680607802042089342625295626402725808620534501460374584501472890055469594116268935049814037290391213139210189805447975365796712843435578754379842671104048648701494527988861129423970970613599327084559366112123544838569530202109189563725336870746060384543772863126963862024504329193528903315919890947267157740650490278761638195019276368969837462283296121682096302311105714470430016236849564100396022139662545483123121692295853568353230070054837782959185381647232564369454799337303810928201063170003557792102493555685613698917793186739342078061745730950838260225124525642506083959850250528154181328106968362065287174387725001688519687090229767855449466275352372481824098486452603515550827802829549069610876138862604694830915191721003604059156360205156187900921257256172500057870323274533652176740540353385361445402220299512669134093523217032568731492347769703299034916520858579305065191484569464361638553815769736938801882523116514567340280089779886683807771482296682164755236412776842244120445332771663955264795727737591803690055748743961729544167498887327299837923372728543498863003878311545079301118222584822195145767209228342322670615880296097789726871234346289418607099142447104333674231769391769929458292204473367624075906489661237269480795679269528239468254366658920722974838782654467111608408843858247428941615266691632608959634053216922216579160298888145141838775726004266295189621187705665919894761787707456617617558619593673059735282476080529284964651750462842866838244582864082250375210845114024719600294457906155314067266409765555995616128644665178426176866098928458727401847565630224836608299761146244701129091973169872106414761401672140378734463374943546097399001347610029850094716488200216021066516653094828931099098811635212676103763229525636125204491933677161314395566780238686092634409114963035224939122955305060585472665974418279495861670429522947042605109430479114780569510779459453336897629438080100865979028390598958000999833037067176713345246243551687285885278274261499183874025176826035012922802376361496240477910837312106177009550833730044805843185017340409623690494184040012835843841662873548677206501864756955382776515783546174654345267080937185844237730716036300793762738798049279573997369753612706475979898338214657078555496268540646882938794815667438803184913667170266567905897526936410157128528061604907449804163625572488151071774554379574778897662185067667997172644385100765771703615936410932767672683042944797044414335751090957996715387432009146564594934628896757807376271928914825584761384255910517605143618825821341822683539685537900310004934218997853922359453434300212806724753742445068272969903030087275314698794547577393219695154102688215212128216296534612751130793887087697065389222344642812347676457436706823114935411348587091836802707499902155577005150132585890974194408408619183467517489252734019267816197571975783364243144660536534986369922158191945780830527173455549858485013841293488750489417660247626282922322240783281303191004667208728880829496348515543899385975931519571500435617710875144995821614620784306833030712530060263520732916856283012565068650694651421570213846802099706396828560103810294414979789206770259003052717429195139745754044982790134009667397280478242894245342202490649087935818239402002430947155616945936255305561852939762964325293709390108529625122897747229903347737691339105997031636280413897240318966479924206437880890724654899376142328411182873308382871337543699516208168219088697708309510612737686592257510421858323372260717896603947688177490610433524271070205644612640015331698986673149982445604167476111806568847086710518735218122771374816060143482889819520131579827217572944370221024552028751507666337428840015223316900350010151195441525784565817350815330651270879931114139141545674862715651159416092040221323532115200483923275659831242340214618582907945956535694888806310254758499783889103758126394978401904662624481712276292429421375178188853613247511168996502626897965829030267974381280110836876869837735630138009597030103313366670116247640787832154791694510664780968508481094226775596016061741719032832411173492524479539283204189721411770842977981653774535176882169634289190918698640001546710445849385779179860625768982404576780708663803639586900580611998632711840839717521486582970945877700364792301554355613745637515668352403505881066070815868232895913225797247045757231760411866685928661673061275272575507343547379959628094374967735607542035679238931698826069673514638429355651214858519850619408906572007116052796492815850791545524903338997334439678401796345868997493237100252878887869210177115644186815106690772432087973117744989416047059036275885252961491391102711355730617253855439731790828019233426123014193382583874087731371891591008487150254313175681997940570279659144241220556626547133729186058847910506572632467366356886798561707058313641891203537318318264778929392055772799120897200915702821966069003940618469400260214213012970498247267715431369172997386099284874674274771876422638059807951334741837387184781503885707490479810447997482258512776224179589584955479289420146256975800192125641289098803269582949379504795102339954810194114550591979074297364195868317860688247603383284034143143287799700839107821239503356264600557616088850236344354806592982214023068982976146885677575538818209881663717002861323115331814118342262479512688280481248988993722378570636499972856635484976477557370418641925444798804635709165390525133096123383493595091910850415759991762268286662189911435877006892811216251971171253852604646813534952305097611852999128470800969446546586758777503611867016184161630777232708766841411498169809213040912967177119755011976535088139358620456727366556227207224266684456112652733038568230389581626674833291704323409911910159221239647934651457104043920367975265900265243979810875260968618407084453941385418594341911448690240316612920452844630424614501651992205425016665814110385932917564790693599076633992637495902000254696111819292914092618371363737811060488952568865719733958484880496806819191001133248689245676223702048777265995146248916679301390665627014462376800820755518728784859384763260813548023736908251912387750155638599861147482626025118413572124629451749232610039201749981222732704860451454532598369826158666309203042642001707964691304689834993115745777969592015456010931085761291029382592034116472010812622973241026568020938934486799273198096576969531193554130943836857719505402248404240775898044368583762597018092684186078981706349751978582530641394177599187586331339476477888032776014254237993009831824272172803252765552791381222551784901355198139335397967551380259257308383542123063088247027932949902147130178475902529865278785694417854886741565995912079465777719726854752021569548053565386629968156525905214033146437382736972640941662660428089443587612350475600839432931921955293530598010418518050331818274250734827820494877155127026340596761622426865136468338651631799355430613092620199526306355931023105227796798628385911733147536930825404750568025124742203909459338810837194993914652713167783604160129643115400492185385849161292380577342312262092434905703423470338318456463880148729552118841159720321576790052479194300131260480641245068910007946959337541768050409454491150916942843392862037394441540199953687869260598715053067516673763922588014147697302856785030563605419650943552129184098047497506049547438831729450860208579384098752778802560031605783200580242149121266919742663807710200790916230698531819834061297499081015935099536141131442511402788206085219562135748225950857414291646104259255276193099359333114598614825983420574866544227011280664966817189558308574076858231891587849286717368473321722517867682667966174974160058721585117336830186248351835614328352124512991682301219863003586239011963974858585753091729278293504962637327360216698324766138930823573645369149608652128359976284329364018011085542181623688985672385141249440321597928926840036863242918383161721508971331845058376362092825739983946103745269720962241690869549359740061715363146288365967153864353182975298283167223418730489437949012205057582881261151605993998027317815648238427928259398780944100969568906936429068808364918579262948781487337719116379180907749966872795270931110750228089544623492162465674419604771991832722810327765412763369805936265915847207133286398809214660356846870827454145046402795802576631917756509000233448532108124386262418659778324353512372451462877279326725289490804700587077676190643807580516843632066464479446089793860537948132605799460279164732499450465254879439072791069196635529792251903367347983158529504908851956289106482598307796986936500267514673617236820839518509067784350863099285727060280298282837962198199172452910830630177230213235127264388030291034866389075330972537687327648540908737390308866475715322440922700134971293730026686935288173880720263407204499280935865997643892273640058988062129721481754457151621669749010315184755119944666107728307794072757068014132763171573996287082375339806227890598665503339529375235202948133652813765644251839291001074140049266214543978896981695590855921014999429506862864287411216302621314297168435463390226243239849634328611534422959286971037791541849479720485145410298687864316297535513514323490855989160523253801710289505003423728669029948639943628131665488395481491526547412608393258563804404341109841537212541290998726262320939422266273331584431792740360861106156318951622222155611074326953036890586753526847640789858169174032231485510950002007615228183453031106057411302273533891526214677717781947075585926323938316033556832215807977064528248504724936736941006959933090680237979144433516502397900445854217947166449689630077918594778189714875982580752766285110618239905625917918596759797423474202631168613948828304327388424484569984508151296389778325497975248156332779739610150575524181100498486392381604555530064236880167862269767881692436022690390068144262705595626457457298626591124875072685574612708399031407464406182665649787485443349450686567698735512829368851585554354158070131240039046928201045171826615732328253673303438597518214029487191017151289685583763220242399707924173303966335399286663476725363297410296673382911809419581374336672303945083323153523586813576369609589074654211792138433984315813540672741549727970477617180503861391820615563683156684831258206416315910218818541913492999904995450298450224651558942125832336290520482169630523548776965529599211808568409661546489290068515225594689021496630960725951170260677595895992061419053488779807363493602866551430157455738950560896300142796653249945872331085426742931231847306890250984717231982685619872946979549296573310575725368830749030994289651224875268418561755614123261892709776169244686672522978562721152084296662518196695358818892609343804928008633709777265091546552971921981571243625749397008151907085748557714245173202009498770802873533024616083649484583842817184007846183076667068279633159013961059742937579646254264759068022750170532819440058655967446410784600112277841332494343607698367222656702045002279715319076404495294762830821228349983456230584254525762618397919743596859089090463869727543438983638010137795922192014964445062956419024939702186279362719328387827856698723859291645333710714390609361826114287387208431778194503239362163991690816067328647195656230155410587430209725035660257486530713448157028421553039277905487410934573122922684837452882024113632277217142285267378204148302633000029722824524977721999765440615727154341588872883352373862766217499369735075035639657094536102108150595174423966788001982067044614765618837198485438853836325943964055798956290846012393714349638439893483541640119719675468964354558757953546578498806570715599897186791527250466541273460024642960562032815577042849805601585560305375820908668581235728312173869654951704867803767475020890845240197565358198485702710310426894034039811881263232754307773601517714801963534008189015980273170562336573008702401164153285055356283066821947058320806957455046175009911342448859627080713677470243190490349586184459557500412297426587923376613297939475563871604453141744367083319263792341674148586757325869880141858870698261995333898334011897413389054013452235024371443364760302992347407920485486530879582940193784191024595250625627419595699663836511623776680743729220142768925641930754093803689077592310701128167068789425369296668480304732541092152600532279965171181764914019171826521693916229174868163450977339806986303283143157971659969865111760575963641533680610673228941692854162069759585466527591472790747780329660924337052913959973956734091068546940787724480751639556476047565616579150510125076797831323841871023214403459139051909130391351162786080805160959273845134493643794001788502709113065775100378124194101121657731556951216530090789551217354635312749879103974357157401523912445892605807935722779587420462169504162502208175467501191473139936112657588472960942048862625606788025078973349178202382634401334854803816121532044429456336878042255950182631935833724088476701778656965501213513869412840271669288581334969497199906683398477331752423983468504999619026500146957210521823183906561294539906902722409054671107205037514104270530825578871364420732546492441215228464297351593601292181390866518087288220726679440193675245585705050909881560066641314638370314545093538931623854639888100574103611954259420400332618147507158918316142143013414816234382880385197720969392543339347457574081288766718628284189038485210390914983288730467406930576022328930958750488974580199137792642648222267360296143805130764410355159251275555438464815890436246942459080189720284933905117759346667565579614128054380354419667730181878817732898077044985218057259727888300217670949471229759970581410780790778306147651539997717799549201986795723533819100849511303705083141584256920883679812039046191065439040805993353391898345474185265294609730967174355678388875128371329127600650685007952385803572275001735325545891491800032023027214376327842806188922917264000475571667803285415180923753010646099333531207107014216066578556374876913116044295099179814209529060267263097221591142139733275329548676430365503989031057323555734395636901573530053358622184307590732872049499256247354060230681812739844577448892341341076956376437422411955974134667721267117795441191875641899282291428789491856767531147742936217748201240058129305201197215922735629327774674080419822633893603981167310416846499783708683790146710527648345954553033643294857318691950944939070970576469322300180712421238786029367956320453486514430058153798617065077789468636812046489876388611614214428877993962658504481477290288691836387291710219565309896723924059740031121092760247714239606168680127983462361944489872927621981796219286296066999765830150920566770428422980347166959272295664019797575655245140023657723891383872555395410753749363578190580927608178751147122307389935591394349506380897890468841496037114484204402435968317033360818308811685854358516490377437321525062533322509499894641826291168984697058016899647760781166040119614136999900400116500440797206645847164095253536000263871521803278917624503244265239841297600165136433846376523368070817584946348829363583830622685271575743912037041511044535661540581287339339428599408761654776698798412956635891430367895693964324590402259024350193495276226810867604418376238105790863311626452383571563229432328254086699108245187830470485520421816215189073676747556333449931364573621589086843383436649298649655931389530181121647065234235755345745035485699644848448671954296487681631504296774767469677089962261404772854049513431072349667708535329347141795376883597909227567255423299388022128135433404431526492427161777594049617824923169516672599615901654548405836947680130948743042148760136327861563259149406921597029145493600734329840585610706322353565984908117442941170146012549759024783924794486537911808473108474647294411952445003610358121410201080271284089077704731065849271253375994062242451475358159845429852835828008868619297209459181842285274854704547523795030398594872558232571852912826754860570150603418701042724028985049114846584705971314826599588244469987873299277679029150093089386401566044594347033817276011073155218323629638800980742839986617121171106763236747257162770522189618499640723133742693249609771303213636333796741792917449914521800876939172894233971313050301139596096291160804848152278689533708772166035476459887691845757965186417525960386825151594316600388141315098161983576879998427373341048403909920602946565801704066149729125928434908923444587871506566104972915104922774730979929378002635958455560572786865415662701602770617153177074150015802667267089370884301776447841263845926789535838541756055262911981062084156891575796922766393746765008469139879908452480296946920287951742995309347610155267463707185765913148745232377565948915027409821534595071487903774420967231734299760049464884398794784172406780794510645865241604390585459059976616504492230682232130681204158402017424499282092260931423140361181610793273648152828253308807528381524132122201939538299709918471075370502204997962673910038186817287627325544829193207346298274911400340789921139629321055507381742313625957166562862786111282244666656198186823023888844902172868766032374983727519961280029705059464132922991042731176067363249786311878180673187212162447143753383226197465201803177007604412243873916027300360404790851565495102149650733201127594800917934258364257953779785277361898436699652779565524486280215133522372835398409898217578615803652055081812134751761853647674435940915563697933003177820808253764549086768619404903061272996394528180442629159104414911560518671434029813083915825054871405028241495176351585016058669359687883936464507123985781434630943565205891493075500015515704153505642226031423273953154627703521911903291563367757790681256200595353827575973052396370780022023664071863802614805163597296099119285652735710497996326194626874298842661151482111932699470695899155467309160685266716854666605320227783518502821273034276214301876543165192274791202615520424393378814490293325975387696527527327971794987176348858756957110031865990898887120653203738938178983984845286627739772180137086974842635398859623003328654610930984999571704361950737334919961877320848936763214432562220133893124527767757771095993236728033874796570656131818423919645554615253599996907985160502443417888406878805161018378758768596078541852362666508671282124189023988356260549829987589890312983708966672558416023923899284596955963417165842234182535616528910849570413715334540195989466645106213344139614367022610838045907323105466702714873212465658167004322569284408916186653954169724002108378461847742285649535840020758877115296576045309992555348717077128288620219930709921872924633960256008373358455712106096381632002060461729008027990236495848275239781754148639712523748684792768882009731480654131878585452770297476306053781239129828944415601587930852516240003121158437726585760110412022669233276035885295642059851778442793058566216600010467144204387840794133781044125008142235303003823143417801754304537273331938189500871574010376318588809658509956786624305967492149403922433695299318012430059943467614115466392067445801275225379341824282824683133591411775804805534091831446962254997442936385238978103277304525120530926359739087925871261026990037398859826977765255097710419602323967726141611191722761889241120114191004961822094999890640904476241145465783614473148655736884764536168524081245812188392285969233172460382265597127572758206186799374973824214373449238828917908217769549682822420020100731970330002922944056046778510670054374070439506866186033649330018765496980321348350051418470270075317165742315021530666846787379110082811998608597928183075217635873412321264416339563994590130622040108667479532939515145576815945080779931903569892382602016025453966313663424201122171039323096874787306673229561321205977109497164464194014584676545295242385311611304717546734570832091681962038832699415775156596593587277105429367385249591387364097342864218658329738592831892216728826518654906656623083563572549447850738614024346720844465493915608232758380123427843424885061634916225457069574117129301837995089398057485686298804443171968748840867680362802910249113874866526485682136024951782918325768069181438900552426855029385815469428004080936605135773575672761198629519839144025870424483412393925799949685871645380660793769580651438559467497204030115331912071831333618599468369791067295829518369590968940108195122607925538376090855766006377613887820717354251384724509629145583890484902454936137510121681159047451838708217779369178239760422387699507957769518954121192071043310941364589730682270442961597183015447186997905547001410491705914865907740174032302620689153604601802822575058600073708902975233804654396810382199267104345321097505839039562016538923930753669776901186942774584471970260743936285275943925686404854675755174583678893566216243710151615637645789960327079530684472193982884588609675110490208508958060081917342502914878939356717836698920050877657947530745104690931880465638314187650542470899709628194482585867994807560285269578044522252950824188126507023295068581850636268419277229855596745325573264525427188028057664630602613492968235780040630674108526853412115749654586582770899894272496645643750894354461662030297984078231778778635616621027765914616411987940795319132137903101180335168235916211600171874214197895886208967314587943437639451595856978282573112712580640633843076060016236466153015713252971941941713634291061923439614483672630562583234312687890968115465908157602021706479903060879254600527211395783200728324695190554055676579924929128072521644343676536875436133867522878799422982201582455214289223931162170602176946214756385443837289286212881657182716854747042796647894793442193394305650235340917855280818466698749138108894656945372086648568887344223227411133824797521035569179947413787804724759086609557307301944061924139665553727056928296301282385386779518264171154137896238747454240749777742207746238071298393009601674456862151468392434593360876832710025439506036298980455800866061083967875466719756159536583310994496139037078311920409134996168796453285703473264345793042295496549226743914575358076410334851186785668034391459348034502788503023348681413533815266793128324589117580938155447632602169087487006969798085403226838898405776817964750457722281204716020411295281235301305311908476231578480773894301938720900192880436119503868957151787935078319259025271270376688303485641583109687770945255431360020246131651225196411757902089670539607066734081255050634796626874068630749032634782976690793432152373549723271649098475329736357308516224627595148579407411457985307138055155913818680603246057286434390978424277053819459523085406792786218835040379492662543690545819930048520618706723223736385868533532896345776172816856345806254106016991949295525568951760328461665763336467951265383580142624333227186018155838094501252630697543355744101296493552194519662155582237484706050366794552234633583148252334350566206391198882809374080711919817571682195965834082102927639591195952382238944916119369015962895086184435487277893388895275277540448113676141068313768169243669009231843727988003988341173902880335652063398497650244897609859960953826403510483541961105489707804174109302337995996454910138446002087125904367529459933405378513546555787789152931018694272544364127713570653415218013095694316489015511429949126705635666649616983428565875315480525533554954108936473705175362110793801415966670591284178547015732483638533392267097716802241487129024352029986918102764578862402337128543190839581772384322146578527540229285915360495587715117783528179750323080735266863568353412631529294787878349580615440980378323898417311104804334637394580034579952191981804227940794531825951738052512861379719047643257827138674873886331932127430976089007116674435716975235302135140280552364401782709901358056494329427909801509978224504313308920192514636566531478027277907969946723998061697912325663671973288933195260097033452468915289475408670400343413509893837162738161823125640976669055708922936379523295635386182243823720168518650602148587552281417822657995850040272311981943493066686289390652493834214550516939655637995826212245494330702235244063550156934705099672400868152173929887798813650541329098721892818558445536243864885414091270572372571504436329457950873326287586700036868869465400193671593518462970196772397040452456258738385211096156483352434562099302204985240167199421663984035687875586549353892516825462034033898903278173045125281189386102184348658844134019636535097081824663737136722888181155294446658243856102189754981263927778383361366186080492351417264212100191156710821350003688306656353149068972799213732436976622715769731525600050108758636382138699326125084984303461517418371596558233568017188863165445248924152792132464079561378357060105407803091848222398744838952513631805463839143891833753375946709137602124651575716142632281054898224848915989970295761980042025423514878278876514556573196886134123161387493210202550157361394577249923959240972895201324007067371917626965493425362366997760396705757189215058377555828498982163474395533094759350661043735730032094344463571390397564786838206236058637916554796322760058226681891065936023585479864337347865280768332605082913996007747353325460681532760880225924893405161322885905223241239181631506782609952515512723065156809366551374593698373385717999380070412264109438739766425551563379283972465086222927862128019769630432247269155572812956577137069654921031198907133516474038849790073770874892769649422579350822766752976339097292854696154678308738405261153730999596744547518802828840096699280204080158350161298160564559780703068194865399147418050551544320857403360138398675398078005154729829209645208801800390680370609908694017178987111072138389775918875389621528190618413613715162180139509139165116998672666715461480781854936305071052453203042054292406900973975300724705029283667969152228465124211431042646112125920032788639026381632640471158912272825492553905231584197526222675053427518733612299213400849146078475568618534322299751579227092264672080206651326983897749325570976859095303376800058485794157209445641059985563050097568600656601410889006640747449327903234650697043290520922638192448599256951876082879893661323373092365518524497077517795307273002281555731303029783412481713513437326804231808608331203200438937060943248925748759405972455152399135943511556658372207254708986875681157802196663585523851276248400048041963674585456095115919694668981943704400972843619716835506568052500341876195685835397681897321271772554200760347906698078517692959222325444453574601197286545691382969936690865126511457303545099847902268829634501078102675201831498753670890983152598371200329262613235568704353168633595013780389652554420561582780751102787523329519558973398556256577203420247869649656078372036354817910801101788516009055540703105823159728031503207699605995908229179699502394302365057270969453927547769652158791647898525675727405155898204001333412097450317280005087558361952601830921741257652654252545786256230071463668776620170789504813878705840968366642247915883118120118844942920497382049298467615850722883931449527973957985755004729366254104797593585581397991290430236207043050885422642130807053014444908569984255874301168282062414510493022812695831821257879907760345927747968206391286331485534666905494351914480465214698309833444761189966385165689779784203824504916849364569829260098412318237217794823982953317788998856950309265545780927067244950626953798389395709357108139752481771357892142218747127328298130958934502295367225745467636319541407938875552460554220402553373169219036269291824702635191188072461424747762571558548941699045904294468295178343157667901782533779899526109708564995591149119391494074300398674508987792476132917259595669475640272336992755720090804034654572998249814977843750303624515161189144236365074815266148109344636564281095371502693301511017819938101421002196535291973357126501383217595070880494346686314484880425159989396140538021087652511922122496284820338054610435383675877818472198098088416829088292253567176719038226668578307293111827691809030308571833891552610412260830807382347263694543732972263255477399434092287215101039859968151202326494827647412196260586568174718738307275825736954888844185201745445854102466676457167217989284968939764928185874529386737035529714470631246276414753554945567407607260372971922428633632997115535130139647678968040431264249616703384370455402674647427599658332090805033451716262626039013087724651136262049466654251812391101371530759262408264607020128899600127665773599636509625696013684224897233224967740403883367947195975672511777789432560255457072033181080975963740513479672240508828702179631231656376097627866795458390058626278083967919674782308294061982705099317543875572849981774000555329420368796778422927188630771342191790609480279548348945771078533821354162687068941509859883164160476629462620108471187338947821524650350895302206238998941690904894519459214340159960419063139344156874413170721907862529955647624475094266415777792350189626661924210434412885309459188000844215541286935353006734935316306690703979527531817725901843693965725411463518409548576344615448136089407738995201003653457733795120914380071848665184703644451945864907454757525458336284005360960246164672167396440530331780359739455732066445380015604698056509600302456187251141703638973594638584647010180781588407037410372009892959888307655101343727984126443314500315337607490077213064786050130371282713639815433812055450055166972365091813168351667111431114381661840982550481358342483237745658509497204876823316986640061857709668529444283227212999628620506300074425398706852272159774016147325035895955675470677277559312512050008650461030676280556065781502459397344607092151718237504575505767664725004089848101904800656546709199468053348498751485172952131172710228537634612781575490344157754948751073820078241961600323126037315770846073910413268040715614842891320349633082322562358270121068407816265881220943026441863674142425937591609123458866675601409393699356716442148048075192921935052398445322416401584414173249214204819014273886587416014941539095518176958652147314680020159315665712855435181891904889308503017423271489049635335017311364296714603119533632092576379722940665401557371079865066502698259230356120566571700296347218291782488235569712647787319162239077641959813983368995194009376126406242451098563567893537200860190579754381930803905656404389347629910502240572071987538449141885139104522611737632272300127019702733497175433932004813299691648114440160688562887354619876692617793075875642317504694267225621703288539887048071767468601202085806984806967071808898392104098563236108960364089804138408969310368068807621400647374088957227377243518717800474073717730568184635078772266809171161096225754246844848338198632860715329971289553699501137303861845945432796872850281224675067291740522291396364785005855850993255328664781295023678855317407621253531516640375552729821888780969934328887077763929902032765349317256742690501616851165586860330448326482649500569573000591879680333709134276351510805978699677428023689392365753112468171250048394260677578369870764470581827746940100099516139773329655719301489595049937596406545594641141105602653497902225410234108196089302625603730919282550311945168327423003647354331790023987349713769934194823834508615710903116222678122343337206525196654529714007884425904146071509041840390095350048544313375027106830242713741601200474087972828288756521740868772834700981778082464803003178568879450430444635745955103252533243925981274358486773575105437887730425096494031945465177625478151812583981617461852765326569137918911223767260144565254218220900854509521191847424207399825950850585619522253504988818979211699082968913979925355004651938015837300967559900703166382645124265844615297405312883791456496644333310153952325425947264927813969468388186612884490550904279390165612999021726181551577133562453742990520352989808316933675299655479820565412780966770215441611881875011385774123380298927269430995804602251969219303773248745885577124807522038268303630986079597158414698854895951683975611159051235258796820296651579826555629549198231609415634595074290454458240033991751936136665787094358500259358744724170992169486003820404601743868202424748602440439121402507220696731967480116034391408237283917014293434368500873981286710315150623341628956578585837130031577165012025803540084984719166979252978631223470447688741670208658200151242968402176863110881246325692101795521437644185711870508932087868466283900399170453825756437417827102422787014050990261158999359932183896936489612240426979053856378584980004758196561489603259223572696927594249839505534785773009114886023223711443845763894048388589989773617586582590916471042569054255234727470768152275463519551328203183778424760742299051197603751918583469972431676910579090111429100436840663209940732045283035479084781569172311351790295989894274011178655704720718866366536174833343261299471136839438244387187410963150083737958667500677595033502904792077037604622791702627277484924431748859320649562142096670725413086461667696344171298553618375244172878691551388011816311590045113678378993642580891966114568085036329745910760256429988840552185304384730990036161679986582907956397961813396751788595956096013208369864748606444488193151686136850875098425283025111739173035538260205136972969803509614563744773947408202197215418377035950802272252556852972689886099120789850417253866509522418483671907920897101908899627693610500969958735405671086027524706035447789277415265528191094651560985804743871116672774988346973835470663212929802822358896340169657158364388019146468426496913186083471044259774445527750424210688473945559011202118972887630741606337175951172784554670630607322295714515550064309928830396109631584796750894193550473654596947971089395496807785005138628064188309701570745607711153581156838279633316370947753303061835774388005727243500486091260053577875628233683155028897024802701886497034323076333551504579767428004709531454888244798929200127520753551320261595428597357103259703108591268373877214351289088906116834790447371614241592009389750842317673918423494128661651164293653868778720988174304473652830172352804740278673303126785112153295038738334700241034110815493088947608730505445011550209613449803438804775467652722484788704339825732445973743129226662487650172688439171996844230310538803727970859791987403933520567152667214041313665020526260136530693487611440284136369319944442292919544390443463127945338558659702683806142297336793489596326891368971866547089850717091375984646261787895177094111523122172494091075515625698430526873372912851283232863738034717840574756699639731550955357164634509581189269509936026451656578565070740773681196506504930895593914765772803602867387012576897201942341028794235607254262179893451157374448134302994185614179173935400739440438481793321529002571312772985176748602232110833383441235531884658032025304766972840477991189845010508913954040384748182920862295281300629099930906051246705463187453391521690822958657663920891141868763673583535741371459636595028598835612874767410650082801348119186842771839437781646200314560395593508472375375039562394015927636162031836479508199476833356422985240391173188733473728790226474746851231371479959584124214531306262302890336650438737498173338405149198982044748537295488602236567033024795280205280032464316866747137624902519364171472245781349097367988962117801558402171895326000139031392444474268380658131577705985484131773807226412626024737647610953124934382290646958399314061475701394001977266365713453500684151967383815371146376257273413316889161539251409644342099971480859020069187555427982599808883846996948761527292186836786828824093188098160911181492684865697220162213087552850798023235683779431854344708361514404067260213515506403657794100849111481217733683074490172074166650591453861329174930985394247010146962855497563392785756576964570033984127195882212792436104465548938091011457112160036467985618799958201928212366884137317265501931866882040183704204106726635818011914516110581850086789649829421325270860655244932734767913560494237716455306852775606888500933322445008444908779703459420916087136913459120732036715743183744760633497369732305661403530734171687851295763566980944924184317623842702995080106009323482819390073489673227972135433252937824600409541499561530422493890462063410763185346729226536869988744958285106695859353773352325956503516937493836444498616147998416379479136096858307408385120781871799703214387826517503762422953050578928369765644982570991493470108381010564472829403072218198861386638038941435221902080910242195845927953866056921049852176514205905310729748302304583684973827656068358721363920673418109684544077304293313850591207327141862081273836368442365405053602341448129274288202367495057772493655901207111352725358254089064190431515300442260009942544948360677126365976611210522254843905225903559874349679866317222025103027367506168179437597943685080230046941165999975376387541725494126669314901877782604088832140878187921479542481645390550875559566221602529095495337181768773136932605384628824143992541441909728301442345673265224482744768623353515917087196152979485324489518969448267976653031476611647586197133926224064210984507593949067633287367005435891142644975526743723342410047667635125414852331487501219667802028341593078513263570526842085245214695832673108523247944488843149394905943733952611157527892028990297174298031247916238875237257015970197853808577323878126164938921403461820321722721567394109579828447524122885534199783549706366830484524656233858488384174068028718888505499986434682393009945443518591264910080283911004458402697859386985872552370245740348038732652998734320735450722947808506338588089244597904666802794899264098548336084123754165713927734888980376375513885970841669486907386652177894492436790930573935810174823620953857973710042743674012656198498476105778134690921349405438849957894610690844251160579812701869052067922005526088064329781230284089081605355282098227520912408071552926623562718255927581412399263641486927972136912896769414139480529454659537205401973689624055266706230067969395912069770085746974171679662979898001335144076016771392212158034607653944056632623013569846177599078686556582300621189726433338528363987507010181529467663463924097396799608649327723065228130045075896048339716245941906933591091721901382660078444212137895008259521215964933087657873217523626332259032893803040250519871818602785168864159814547519279310904636704017337933676247473230608873431044918864425001409431679015997024044540813359833168656742223777703457081797538694571597383340646169561362139489743171559534704245065731360809966978312541885712858074413639491318381906231842311222542991046145247627649804503247802948557459221903188519932415530683435089284765865764774414606752073631545510989759264630364275322490806702108682893972052611225708327578313094317800247087874036717608875721174725289676879514438951190998636350876588723900694752649564928564725404020522785017442852363296653517685130435009196433325415722090237162565182269845516888731417929725358025484886942162376304839971850851900491880888075154989630908560038858275918246879779525176907990508972455429142358314877602234975277278160826880072260759775711880524442492927509053867013497889712642231888235547414659016134673619263955762536564606855238654019246438510522054846686239146825823325564184737564999388551511099016196943450466573102133026631177929001505089010319410452327551276769566057937800041154962834702068896674318710349726298617807682234156485872963477623254916800706716490993956473043882655208672016977684494827988757017665120102009253448938157016069676998976106878893885889373622011081860600353436577288282797659632368143054219340810638688153864314429148139063653912326701453926639132119557090043759206674836569388036433458246720497201134119035975129627915440598414334619738786834180751677528918768404940193869834825446545757276269889602710822858760936398644872968070923110423077867571488967737226421928687869691322390565225235899091006085352288063820760072508261927256925021721115931915078271374562370791636162269858858580969654984170765091720764087798636013295117100905552813920922067419439739464169697380507412790689671909152184717898600315248409984631936014040820237665388366763063348138557305232098114976528047367407005243347210012250866171612024850945725511278605116954949652649960051738184329688413899207702802174585514322489884999481033332672369473629674129340115136038993469558739280476274517489570174339637367808886579660696306387645003334402099522509868252632740187246963928501997981327967988133088824346724212002902718124677734694703987923165531471158475268114735816224008238771113049912358513248595704531728830621052128878270984307936983780390509836291029072392645971135145007962769168775439842524137175001371168811470351448855154518094945985016338079332951680096072275016278294365107311898603535606734776822493148270708806917952333892680725567945692249235981671345896783343972416594655477660674312193803243792856093084175931974517730472629102254547128987237000520093854755936346372490182059290844877068326583037568298365517284330003287447643860915243690690603690403478327224165259837678509014871498936143013955682329847084491376001000191763959106653757907595641875486514488597085134436663302291237135204796263498269100907756665726509815983504861670008916954414440284187922260227948390453032531661411508818079340526995692902566845967601572407272625357113035631088386126934892683819027740700600767540586056109400331791241327314139112373427595688967563583592961291155981918458921101338941144961857975047793588560979688441797868565479462700918468737450266580031657897033374943340219142534921952477629037626163154058867889028598648960177806344545861538854930941126160785702264541316792292902144503323969550828151778070776789295977121750601814080437868192293749978377287883293069592843383496197501187879267794334955385489234712612406445522268444869975259281147945897726677852639208027737912116399539070768645564108691601059088309332513189407566868383952534969493894654639624182525574501453147529045409715690368188432756721381108717871703830531115408654855261578505252658714077546468671463188908722775406501181510261572018456663935992847155148685379197890001017828387763443316195604467491013221101403265287654087236791217224600329181978217989940886085551244223155761429511538301666485117553581671642242210997640573650494989111139535280623952101567807192922751320982673075842897223221866448588777078997584648960108863037005752245891963706486824451059248020298437920480987695777794309957228589228720172436952476319717710546720373459535974428486843908357983724876280531454639575950130189288972444957581218677785389775624979872936720324535534110276652408145414945001663412700152082530582927933590675594211870926047984947530748568056680726048449948899248034431550134345105971704412591812259675294611092828559401150703316674775495411377111748642321537819213526815036174320860037078661951135517434598797950038251098950167578314088950161436277818180125906444538590319862036050043906006586153408035345874460249569446375286974642551287374958532049669292526391111418765425576429048168567035238828321578125969834224463216206889686527132991064897172003457182096729719913031465064216033209534758651100330376432274492110880700767559769830261377567554014461176771924644698630045416544224113683060901248169064496462082125538860953818882389648633811684123477074092334619589582240176008377901062983886926681631802619469923148079496262266631037527957342594202469802245702612260166278067293957016749627701567939322608037863450573824939841346771236036619981176492513969164760151140280149365386876749136357179127374343886676759823077638901806667774148905415285126352611998691976520633783031448235090697843356672169213419195931097840391635094573247814177092698846415596005390098711283121533868440442393388918153760891988741639934721264709590745159594397419583449794194989992133756528983367302357458541413948935356975393842719136740388590794022759541473524518536922660850061829915202497480420258786510978093180478318022043331098485859457651805694848581840781957768826809314114918512840272865374429113022492222699548822075550159443306675404213132214093573428619136827553522141742383478114715207285144419973171090291183161373163344915210322251326434542308179895215158681357211102248070117744576243242845330072481579218263986675422566112737884702610142742264438438380007914929228655099818254942592106960867269742530387713057025632535765474717887732169194845956564622413071014912506675641377366296120556133959429365322781906288930886111000633174362097748424464076369959331328930166664726996279459471402412985161792579176215885874618997912011583918894799755421121155690153585587384916770910278100081983613647160989506202136431134761920219688560684180405697707275358525836589171371128008819346028495817648715295375844237295305812605221053165265652615385603324044567004860205718868022909264286096408235436850459016734822626676036013476811245202750431578813507393806003886952783065637576475817011814698154776811390787711182056486912289677856012979047051657957483550665260194932928108758003597849804936307640378388779747356572900697402747846906719909093146249598049957822137295837550869790354739115800869715137436813116360651404941457586311586683553383007309737411800420517132858541244373909424169515684832427683693527562239289154469455950686526704140515058100659949129755970320651549379016484685636150859046888415665102541358163014305866919926607761767701181129296702345153008110508701187168003829130320524699837737764503444226507212338924273823954022585080770827812217690656399958058345264633048381326544964320768365217863679983889910652990584599880021596697567741916470010752471593212760073714212234341122573636386432242432136548708614660311221820654652880364796342114432266703863351328302608531617390878873976336145961201892271375396524797129627848045218900910748281791377465860793724028852553304677783660702030075643042946612905345090124270341684501342690200023005889501710531774594647592734123699189970690460492292188954906788586611107368079211378725791214125646341780771730883476340085745279596581166561534417695564303786539480726656888336942938198952350939314609207123485131846027737437857599413084571856780366701903855613044537584050821075692043972441441800216949333229624530003572741829153637811469952183194296227254854847368484603077284116018153766809566055520750668031830769439641228422444674515019436845607841531577441914310251522546158118296483216432776885747438579167597803856669620084193258464520756247062743044980853982298049552723026156795877454791536907796548341229134857673521456504843250599974418855618403395131592396714047504166230969286698907164514717624452095505030014581245830594091580206170152550472099241577338695241519965337096372236200326297506379328670372871187716832545875744842435882235819577774934297252150667241657408641796553125128167502511041405689520988283202476341142608081270861598704456890690361499225826956934910766875634759359047241832709048616399961690257506023427349361532455614312787961150501936701206894254690331370517471821485164886169880657406564117311349344316942717870193624120422742050355574935291186387903999596317884418376832167211728079692031898629252118610197937513478807010829774654334113768700075263289952683182815488208978962155582014002559020869679440080858093270552950628703396938272244137592080789480856281254139612939372117608541202260762943368508568752876880082919367781692046005745065217397725634489183624952243530836902694372978611867300915064274389664002423328490864329858104507848783342238656356263835601142644246849011583975561044293429336731414341776056537998152904314590822136388073395909739139417779619416125031610882684265751773153291102911201908900509540051182844365239392605901299231647354133125913607482452744517300454422730712930823926431942064926284507111142829857695676847395034423900811505715572527182456016272462052039062813724980712451734352569360599212805426497560883401301119928438915929303395956600611244441508014311720549433670167896526613325607763959876420834419166355131066175636000181182588532629391348594916384730672353466169727388787620042600466388195388558560431990719902487370688369110277625780419676904280642465437811463521382787439414450928556783449840035354871105629966216177824680985697243250857241493459987488567572943812896911847171905126397649994660393019862317373804663881583138545036174067523872818184721156252196740923254924461377067859097817233680105364985605833113979369759356386999971638345564218454188949197954209951732856906851624856312408718279564594932879961832406806245747674890414958399554108226628829174417492813677115865673977539716935619894085294382598027803136912423284881330990847958121922992925655581768441557508750665950369685959009960043769699233869329153447674270073873612246215093951590595100147181973454428373141876209524273098049397205435705527621158889204092313384884558252457002282551139282321392158695983615802455594015738870005698867235219675846587458018413686072084438355405399668193620574911933862038531840269568931020818605956547326372047195009262791875361531592055543133797258043766474560814213598931424216176860852563416258482804166021965238193657261806302923838175972970440301307614816575724253660937256029597407148075234644913249693256168959000188880261728026486082721624768977587490462258991392180814093625503237608687560117169470613882597286928974699470152761344160810586061645521088152874347214080456290965980404398857517727480671904962096067196971226967429240616798425178429185794342881245261433407998893553194935199589783611510077998122286511763810798773466467167294729572097650780566640650250793264341902542622905948558510995635404559877001961038323269076482561294415234705921173653250275385537005848183820625467777654361804241610710365353874136563173438781295862919233704962159188275573518330838214062421906404792213086029143042940637211953206115343825615082802210586152986457458762249187621062766536914179042012501844710073400692019210616498886138546155230033225583897879359486957327420929861911706921332849828457772133332981114659588859143978007092256555054270746411005631147746917633107988322091791883462095957311842663782610627101090297654617130616210722230779112694895705372775650233987596951096610170817784775996761766008600999623463773648178446564885313660211405813781897000542161430435858594425045769597707374293149403208762166982157722811737216252276748798759040383571504046403312901807408336836061060453216122253478539158686297208558780466935899878219907616488759438407376683067337314963971093440496492755907073897321304710819884230287504187016394062057812379802678854597316825978671692589646687549875306373618907332433660255717657551716760316818892481286273685154476186948670043016344767704648661274016037581930746305414830960493298904166673012479045697842871705298596106988623869683387013276262309347888266819214334026585264143527929357425236546567218399296294539746366101239158653670115215683835063481003586468340214901947795179487493576992847593822285455839595741215123545124699511492114432489336510383889762717578819764086993782868632866747216500432910650620491941008533676852938128824532932854041592252947962133732779412811578667344621952579483429634121295294542834901506857652164687548063072698147329972724957222442189063332287535612729719298411425938135278910222367639119219986399651265825831401392807185264772714657162194810145605347952835589759761370072050647437728442041987613052640548790553791199372469903989789668476286794462139629406917461654264752575226666023117930885015365606696550889373842481087067434281941196336626408681054729803673356887803203952265784969411060758524207433616899974182838934086864328756621957026691138997160405107950756183960635348877247663879855046721638020101618400116681528741039329756610672232594412245297058525224456211681702535874196559165994378471895415091577802017725571507681560062471195696091105101913182461439154586989518824181455179436439197152997859846429664566675329770775732765998904303427193869028569423429845123294378577677338341940930026960817000219526004291432073851398472301397946400026647004897777916162374401224749069303282604009738224723018856771056406930637464223425286702872118430226125566197728747835603208197845703539315260068676930869652646842435160352487645035177785631599057175867206687132866154965207736211618751216921745051531021137637292976189917332684388607488549266202020658177287718464371520205611488158525481382515403610984556074214984141829357137568802948269095953129753480434152652501036630364039211746163752692273791503154257451768353664004169542485691524763555013421332570013927180979953507532334426324579128221546562921806044760316234126855096579170310191226751710080136267872201469440706408180279063308245840956334612503097933085581923468375868498155729159939651187684270326807815507386115891223457955951015916457655695503922587738505251965084422129689690880513341043022762518495049969490435987887740395020439558384915583830245147547536154067083059085039913595672161428782512078291265322099669507873654157545969049322259930411828011451798184597707291546569440612304498832356749263154645219587659064782349579575571735599436051176939528748238408051561165863143345312965005857445474402176991768535091799519489204603457848052782497535005190960238137092788262912547644592374008768360741952157823857417340218108187566530175857029963288040342914449695042255235183066499632730007228889235047835261345281442172474441841917547731852452989223940943901702692155630788516245710803172715819036074200248667299086329145537929058361489009086490896943823152411506264848728199309156983028605430818757574102821554635588448385958550121599289040459609063032722850254587542827419977056362798407683608846580348257851884125311129361026490155071306870371727719696906438244673998514567853585788356488975623050376910947766947477212483417736991491379607952995340781084818942591740557477359530785906861147066207489844886200697319627015666478419723951199308787264246591141482672611969947693162070126985511380584159326972067898928393127196702617575033878281033230897836730980100046124263132903151708028987363147330373553293485097935495034354578227594780197448576598491476198683014479211633036318010173726729307865764318593866753763173277688784398738367869127975009455136335322550070481734344861853269993325396358484084473439920879486043684884494038015933581658126206088812874595119459114752623416030639899424149313473587630137091646138656687399822251748995743251064008073738484687822850415631838558702427263868156156307348258702336532198994335132672305194607331084009002245711266808199491220253537373055348575839419078492167776047143910889921202056849551709354375120616258857536625350765790320281438332037806683474967525455359003396683981785871759775155124796046557685911469254751867682838689574733913970725820232482185774261187567545946747210256519139454665643681321114231922973327571324682655772503455681782066574141994806621124754624722139681543952111982666616352013661442881594594653719796376705279482399945687512302321166038412275518165720985049763674414983898920668649466075177293284446669512085263863823685256333203397508669280392909180075617512688262255822773894291685667805523940441184677827286761979154737880280403574150367332908425004115563321478298322139501086994967081648123751268982260485655805334024645486523311153457591934590140447844874438469232676277893192033794343732621341976628871341616168549408491726645366119490904266063859143388557308420469682141772600550313565557782156126974388815569007004120907999693476002491320137874974928595451082702405841480157152549914753188845270872395672433410477071226763381011365096185588795672751155879016894190045672375004992838675702717683830867804849234981859141052313968987972224643301143562748181521934554533166463632400803212309876306824998393763284436917324373693845922468622598260766993762914213897926042159764924357954517020343497264678847571175089150720259852504796980572704442077265359276950870265872719674566209440737376450585258439835554163864134697527709479903010673699838299766996569233364470697882061851188695112308360389061567769946684769817559382285039208531044877918880774967071259075884064481584289361357789456321216448803324164219466127846571433756059171548793805070952696445943440447783196255564822827798347037368002030715595762142869307445837131082252656724553451145122088083656114882652504611064102895262711139608755421624768043132293412725588532735241393229293712798182154815293342875765518790020390923233683721843361154807136618043348505327872239790885174030635491643455410497677891987882563764160104947303156778802269687480709197698400973342229420282483895167029049634112236801999902919043790014429083347060306256574842330021987886588132702385169089802208665700545981676298721288593253904136589763676621505804813643901217911789931839108487238547187633511854508674744678059672401697828266359244672568990034728008184621061206949228232894180859252084522103206926697252160560040913358353241588645566956899800795036981296790789759647572149667130179692580834462588553633419841295856536361730987080137214021244692713679208367664160692559945263675180813346921383296817381702089561261477668251816624726277668788382357207317465196729781334986761725623781689674871828506105116875707115363270470389740575668453247968974617551670735922716972040160690173443899278312193837450851657834306802834774118380402316522794753983889237724642151304919103232967049272706737494664611166028348363852972785846704492251451635050153037418052177188327499306914606693479326651410241498610349848460448368443921635342329904322617966505427464673442409770473737507171923802761025274318709470356724048076854993268356541340721114705420434601949428774756478277372987098170587494516547855813628458092153268737757761609627609845545923874506700172976857098357604165856729891053678872528965645492115348125509412026655767247403730975085190735677034482919932641125217172773860765520308218830082656720005162892854446752821663446222684578895961914531751960575883038676713954115857521144924954144764750000877719910840077432882165646744767534355685155073732159476563823250534499318070274899955008069742430023016509626342528345306599750661840623804710751754267363292346172813301894338654018152664958664572450980192085513611018630175041766693122032157337337860824169445716738992779742480945531265992751296553174771395770562901108761105821229491718724155524714176140212060290541925496982634461067554687641917954945360831974818842146293528745082007283805252851718292688443286049767585983847986848261281433872128283474793995591529763004908524338672822726112029592516466249447423904347680791829339546318668615934461875169063889329729390838305250692273374665926708166021918136632380379672230475143534542401869808943403949350741221678160224751884236203497837135832172944833771282657623609232673211846282336339844698262110266077323643756365155019741653086335089406641800520025484142903566974013460981822855225201756158742613912451869822033845899623034273204597529309119660018715448236412228387078282689366669019851488857585168066580932096929393596240385201045100657555196543289842764863992915718476431337347617290038368790996028900317252400276517195101292896933780279541702541452067252671125718110039928796556269746557887694181253702781131323011189462501496300495916084297394681001033077494665011461314898446795496706199601948464130576885638320705504834554921975307529438454006641591239634888122466599441393958973230459865383740447674756814516050036728664408068434907324177107546047184423977051495618857391569342153090044483493798034664841224057747128854422314928217757562793050261586166464799667931801059110389637705178759052543541267759049290369997917101157475974838594339398994387028903494036856932401567453593530890109307805238516386419835570736098953635568445327697832878340049312130212190265648167593423050759874410489214577799990379889630146022589902081240411151966000135883065407148584240689443844330092556448881304400804887857626801046314368208666758901906886085474890491411784775588950675733062993312069202942378190495958743773919592433131441518532244692659802939859121276797791659736892757570815077990387571967277592733375353401509017157173255751891547594540180961005067632195052844710551379748114098126750370480238519370265188324723584859714278455358257829719094145713137747292940907864996325800830301804823867163012363149022792219921038727147879726716260528999036527905807759353620868242535002586513682196834653450754751647132138973359351897163176905625329491729295343418620061481362025225955708040708054138440833586480197698155049716737515089179214438960985504976494129673106036663659215828483882852328730074837115074874120784022118030457962767790603994417099628744964182874693408436373907460773731390455426159158631239890622466885496676990143623681289801398266396875057854484576041245414641395762620007891853567043451530931706132150480708610873542296806252603941290463949673218780317476422262737339211408548788614148403785666788539320792410870573651266592161311010870373187338114726905145730954112373995159295369684643856679287282896136860255341740722049014478282565616899070370933620360608035576689085602989733351504754095181722968903702976594243563324406166435289272774483836173032960455165834998088230687052261644709802135560548186692745863496967978757587969732668723156082231389361630290737670880244881708093858467350856291302407212161265901150438871125797222143924823902234418236546195815004165208291777068336908051981722999663707002723101831039113266390665640603340487444265627950499254138747510636991764781218149310650094517227665542790353528488748267217324412912121263205125685500013155212536973995149396708118503594631468850010837275816650776154088182647324961810242835439609845822066959376563394840379176459065004083200876004701312782928350389549495802427923104044795288023120045616980546146638549666854331015197447234765770423002552927089603371468363809417138831326661759838773811094776290654574730483464047030125920692301676472692031825594511807737955578316908397283729879189010025370524440812868708836996123872092601637623569809306005454571511031239051664311755490775366486222056729201334980152672904528061867682325538170550560346620939642126499679682615977113210438998844911725517090879711488792690301139306190181541480928894302100995985531815754586670184572779854812605921236541766399353450229627797469306439427685245321092734540525970470744804930886786863215525066695836991143915024124693608529917692368670838480502982228126287197115388406600174575652787860284053812411492254493111582312099674602162631404028162190012414349712483886209198142790868812469295705716967625130039016344270584096456559820783047781557719907775359096798084499252471454684944559855434792113950235501338168054069270682339202260308043191199329022755166616772881263893297325859186235927001637530643728194842675138627760014487829182071146248588676187950663305850526042349725171782866921665027633209150133862003171744559782861479353392714258485484712511097245375754597598905664021061716229075110361951960057679909873160751481548960401852030588106964787431088356707065534127432053734794236627154198490049159763089448780647200955022498689406598131865398922340278744717687902664248515480435443953271014645268647010799222416759840390428405790868125199258551513094026360236197461355112124703272685132031503248745233117343191964781979811358699352685015015788396118318653979873921187756693271849422919043219905992945947666771269098684981269417583512594064215199605831603393900508790070199361479518078233690057153892556725088833240455763894132277665880950779978825401312654112591427820455933121629811684659095590372782663264921883959148651719067717184495057107941468024917243963429531757796325241880742676380655842560337578964781759190790903286064246690791037740705303645903076189096361849998151233560598866103938091931330695207119630464774245627495061549216109038825750446610477645417361944041375028152707287513579067679517744978105761510058251107460034520948745036189326183613635115549696084888567102933358804276729616816102996893850805633309658713863112467948147537378313895456887298936927285172136100890374852206489599467347173853005244473054958182055833275694946363227588918925384425871736249153002726753589931826938288718235484737219573845590034557724977141910462640318943292649762819574521948080030192677580693899808283272503398659317584252768241474021856425246546723497108523389392059024377267818055897261617530095023810760726167478768236415465207812944955948995755192646943110999804854879796547918013782001555601379134804082119339483817284286755706698501050042775721348167840873978004322774753781471649524024546396375142252284545632292690995029553791112429909283953184218430047929587388333925636475094947772542280337334806531337315052468897199625125906990818784866531437292508609296334463598090315296509916463946829370252557835770592020351148720853854895432542688836244790862039212783211578681159968469703925846787758268076177305048341278039535235542463950518912603226271427524549565060177926240982288060474105040026366932990688742542109654662351114946483739988953734375728631602142993703176239545352342148568836324119215021708355434827196129236069036802003084735219448728748981381394161781242934649885703134723276033694535511152862026016096524262069958922593394807203026967868740630371632667408586420333579030944425406440792354065376276034034081917728196167679600163580051778563592203295629093018798563573944983293091334244748469159102916950159216715756145147278289864315097145707866370659977051042194446735890649485454560382494438265368970874145798761452415255099196038476111226064299442107926077638084048533138773772920343130910722022027888039486711089937988201616170554121123407987727680803322700342056634489022165593687512257262458679095028163202472293351235099045981631361387251847562874784156785465673191912214814434974759892435264844253003660546400896495839313937938408065208590454103241692121865352514605206544106617446141517433013710474734924895174077107848288787448502765119568515543073697856135612773406650217255150555680813371691655504462870335131354773344363394530344408454394179792170894773683529815315613708273240245833649252724813938635520654711645963180102865082183085408896441944397018948141220575817559431452527903934417961353263979704849732909060239947272896837695800595120742669845381831484453005395481164903270149841774899916165930010742311426746829282927156097725845947529033030592141090878278649238622988831695623375920621774690308352046145019919116391413223885762042069074746865789522075783473265750617648154520236170865548200213642027320846937382346317786621091374384835819709880345231736083662110453780185771588978127182039971137452174687386576679389482231098736054365284759941473990069618393757709413617080343158888820193962734430751487897509506140042411958700052318403057924374983093519339572942110531722355026769078728218064319123912558593895025894792956914804740940262382593509953889138051186993431801176756348773528102182600842509437991227138589323493766360767144855628632049792469077037572782835733438297325818328906855522876976736774311652246448895926668548249477132750643051032398263689269555931614808257563336599599142160790108979694747109405816069242231955088328212440449197541323331321371687472313908902691872111703858156690121502457561879339759312061415315267957320583829151265048972431976273755552199733178881076375946839078192573035876943596569454293407022246938774827125847698728162140114302132361980561817815500287630453933416838666030882489006286818601127347255678888779708077283227932845777344373141703883801341027667618805829084306041741524342912503846544390081632311086839299002313438349319691312393601914486565384413866285298876358660419317766412006112053895287729005114286970740341579520973931536138913940793336634845499727047369355023522900744062416946839589535975126394893128535248305809263102939424919681719908068588802735459110300188587808751510166104564302486260128471588584010297186536973594744143921510157267469048417872764018810383899941911567855860364808869371988034298270456251626378571217873419399930996686783655670007362792111263831084587754866759925950997647574021346183683429801281053002979620385720371006245595801887237494498400529819719429763779644972010116462201851267235606381904342200117219750691680948886087853437369113024599579398826190362238553306123888034984385253874113544726409254083435565864395945383402366097458803660691579934989457208920638176312468095438490244347989471739079745443341665291859236144649674042135008592915143956564213262422780729230475190399001252889358016529029255813920662522821891958509905919153728310560599178869502046211175512595105749227410841008451823451893628222965836736347677621933057195427576185444951593409720880925045065905822974304831303662762489969921246008202555173528103190042572177861998934500737528481379276353851381586096605618138741561197037922586592739505950061585877995208390229717802027070284311261462011624377613332602392535600826365661402044008055110167475776726989023382527495002607795688922576179700261271167732111127219590952588571199677831289623364756063731118304256399008966832557399678509580179561102249428461197213642344010222502278089215470621358713512478450054621640518813676197865046977756226962603124919767760935141287682714412518059182062057933144992219310927971423264382370213357552871349841625876190187838577842939153901483930513567578944451472935222874466567593376184198579769176093354008359180878607896077019151550851889323497821666503723930025609779603497096465044261659203311531220069101221697897720409257022011931201695666077379999791732394763749048755894686025463125759147274699632535801105165207098524555718580154363408167921224279248245046629378644705106308694670577822138169381512248094321576977477072001173326997622016154668881755220602456127306217949920116578426478722038381423504720400503203806599457517637375970484988030651048564828712368718044680110001159751525093544619152265566895722843315820001561650381818146558695649458583918976370169396291073968773870450435950904946556681115669507286930951099716931714292094456704096561934842035625329703575092752755155384834651418649849118244544035463443654840487275224727578842688137204505478882493708519083799689416828860415999374785095350207563774815761151504689590524243963701521577425376725127908729012561295300927335683792669360614521062074416456233789965391874430998593711333005449945154280309674992432528037632394451611121959477210023217817004599919107096204682676472887981970008607796648306353122327727181176552834623119199554970420015713935721685875414758829116222837137171909096965911086694683065559021790222578133051009654045704968319037906087790667931374470614922137859573866505271812876369521332899250227448536211695297899748955126371139472377308291133334202262397582189687574717298584881132737170092011134143129199343368978123264296406452504540805010483097013416298907370352850000309230824339354322065841805964301004966981473302078970294800825631161436738865109124280596320076605826076803195654317624482305336551754331892834702055317972706024545547381889894448998558571166080631973857685261312843097666356113276017204212075855754828785585491134906561187801000021397626102449687988136457903705049779642596634168042258479892398213388385560762670771235456283324471681701062464019303206359758230641288161137135834977816752614187789311961698556217300709607262904496451121207216976844570673652350830261362022156284518173771357842462262864325190645332257894534233304347354372146702832642357074570147069794994012725398566371575950521859312490724149984079462185819986636537355879313011650134287100389009530942470955221556381557803625622879390471489864290853355326834158150957536677399566898792570398522184178756051152863846327613554641163311684379691578162329661665649611897801137507455071871603802948554070962412819115339652594769932784061941453274303069770932694211002865142777974469744661035516273837082150350339035769883828468124057114558570461265959486418648747214572199489861672523048392833433207166378060225041773899285517294691573982886248513250620603794013334336263941229227562440040347367455967475778088011628274662134352269883138297513583393598699559158332035235642313251870165231718516150334276343049552320508000808391668153149677810217134936016884867032121840726676038314925826900375237138260218644184394304035533113722064303460560004545584828620696410547052861749863131716071264689795072205410521363750676794515479851301237279981957672093554507135833590705619841470744060449405753662139565422146307350326742440358593067302148432505010884426703542881864108828220998211448350978076186506043722310384878337274638415327987084578085060115892188699833377024696161341515282083518695392613461514187969769617097811881268795151848232818012786935257774279307484117173209244052275530517047135308960275576562791659040682841481416812354129090200096297289427036930569612639028237748930773991053231528310362295340439592919416333667269594608568722577656547585901909343530875394355401264226247952650974140420762728543686599057645488635746341652162424070390246807385720333052021938172634957760385253329471260687321865342271583203506439602620723641353002284689864195395755778398775552052155667238585246024793639949845998052364877940612087371247859336005545841276037836086036883453627560970862191909577551558144866878452867008512501898691618275348982569549239571290852857075059471773030808484116186000304486666205288734169889951255405549299789991220614606872790339189401741563382273538940060458628114748298763846484986633145715462640752993903391595207910010230722237809774512826137837199949382391465117293715083626482213770769677739257186090378422141772702409351918285515386455595375144449575764131642927615155739517375082608103602482453397097085802232261898488821386177981944268839592265059054977557789827229283591047646827235117276803417113412433082927435895197681172342451437910103671303719303164631169731508977936801102604041645990260496699286983219431763034467096268538728161454400131445416180531979922581371775524122078152625960432351100655021137799443159874137315354072244834587928481427924100987865029180991085357858079994505113704380431594732739632449172063629333982945625676292865751448633116566260083278797639151518700385723150969701304678470122663397741017568300757578521801224800570351677632845658859506741232155286408207217333601528278499741931568455939281004962166077107748021618056475504451581043451314331981381001530978234525164017575023492232500844227197797500820660439357270022900402837520195085782538570291023308289164717694750745062022362026020088026447157035901043202382494556754861904902613889708538392759928836309554103043994834989488260267619076382712925214634806049130711925208765912694901695846883686383828137980755397139882087464062011391198109701028327584659304609568951488994296113231398078554343342195272077657390560550259614671717684120141695597509258219883438765537095892747536353067259337093507599928879510126970410052660563126441795455646586877567295874139596399718383558652722376020041356599198244463782256887220079868044764890153775884683273140602995774162121643697304470173171759990926360634211169095697760163685137685625608859094096545144356642298853503605300503270085804768614514846092222819474602420138144137467527810235986237197723908344416201718594592329018026763030243294325141740667516121963854783432185981518900672181790835269762938851091315635291084829761996298359026451760724923631394711814612873275180505245877912422149709140143413188022562076339837549667647793004763636319968021992274766987989211162440233910385103616378231524224653221952952226110609214374754368122004363619505948209004612557017231387902278316661674506714152957857384209085150032405466105238103847871888888829821656342258623357872967652431311787808217290978383180157769815121903455630663342018624337524402695777268655646194691917882094942876143458511544332985951253483493460927117767489768988197276685647066871725580511474241924252522069332888827878603045397300288353308455461508810453579140895946097540459945979401473270189591042624508000097444372406582169017835153236073482612965400470732787858709415593631105542840857316096464503983830081262040984548523526445126926072280770434444661161313800565094436726434736823848332690967896604820259027350147145920023142855603764837557107782857071512763572658863540654291986728490199720435315139651260332862462983817920879963747793874769715317637455822506853858056434076788671860000263500222553379182741132526219947974276501561996118508740705442086165696586330285058066373443136424764363948722499185269383786756400769518414549474433194601793490495644843040316249738336142488785961696247921036983832443170633926905088378694002972614562683966192347622368666432500750475408762307007634175887151646513019081071864237692689241503329494357113395323818939974907824497349800912350569829578091484112420575955063126960275999742495820045691381762813003853106719869047991108327135289707718388896443450867710206401270930997391247443838505643217229759503662256735772992335350017625236798595023953641541759685315017154184203187445320004633759937154969893720110379109408166045163359613894696006503647911774907454689915716509576515936322744030129933589878252614900420743851557107549877754017409464032548981239633339136676445774252655272815014251554846329949433987915022369736740808140260813358485802278596207751092069168669746175542232929435860844803828889409680764599583804337720014873816489431933343905731289746271322161045142723539377900802649862079717321124791514175211508336785699720601893801999902403690419602192445513446583035586751697610764385439221570171786098712120785497437207141037229385084935890513482986564630270652207632935990684926980020491566458529122954274105969298724092750866426953278179711902224036148596278581135796162159731814562299564303290507779792985997232372822359232943127428022134817566780973020662668411054945131044697517121417427051053915964360959211703871308252689403735565522617337794055407747982917708927063031308370788499284937242982919670273385605160563435983802465304818432960238117363143711551019195542493375276788110811117906194453437576207135239921685662825855585397510220771530139538249632818731990484855628924013412710420713840940942419869539181426825753919587381611186560232915043644894996236545727867947710102382175042417416179888146850547880548371043887739305821867066910435124178991203299294823108223363453594515931861499762540451224952815360632460444827767879945624017013071357490293605833272233536146719444586806070993304323440143141470022211249638873707923126678451785976308267792388852709854312063509596944562476208689812651476993789430921249058669775745012523485482331376109161508318595509643908562276984544002836515012769684560049483899771527869360699316926623798898649872698338258126810560311579647261167031427272160545110561025166224105658908433362460245817001964873464241313113985408677405549140119724786277931970941015985183852960799108824786990842847528642313980600178825536952192155176336790533592624197907507616285794751862138599805000669272577492234094885985076677173105123501215507689337380712533810923068472751737452965186549922813357444138280071230204041725479984619490992927673289371839820651738299243284065131992943292298555795159210206358013158605514216620110503985833086847279255182535575347141899664630815972994764237121446692874226620238443219582905714890241627805438927379211329080151474023198944072289049006792692756586909371946225322611019236909498885036330951347791550218181768896754913081767293517134910921740749641166135551702141170279895799523830871550269871926425485542747026872618456789227206247004233943688784103883443219725036016871024181614182693738551688177126525503373281764929813520606599092209683788685254805773743393981376079459067213096383151278306141617088083422354313777272523038340940023092816886544916613865147059122168060557678937815438288155216442405814261257673585073604988704036287119358017129338957560449814218040931916423684117488673211992528243204673468556976770460596929548731494869436503439840772429446665430978718090871607999073231495991167963693624656071638063980371254502299631754692217110895860583228451722959104664726635198565838145449790758760501528426039005492438876783968472851270074725269870138210368286949039398666862761568402485917751110286772967499436961558132650202515774156434433289976195771481867390851646053599228751659849844262134386602511601192349744616637101119032150737452392675801055881100329899035139250795054306407205503108010574390920030093257410785315128171357885704970013178369099256305856007979458148765983381886702751452488229409665258011541179650037241972947962771624964255440932784939426444584947449642273659644286043675857213722435648571074702898119462177455566482545142011979065617127396416488754277794637511873965979998261716641501867749506576075959903207387811408895959686961355461569736345701267644200814732413556805948955178419965819936457866305138995312035020461437461824060940419349252630725394887628912656534154061430966876171639846311092360302986220101656568342348426699316189505871584109562315382871957423316586220698235654357850454750853153935033431215584339291459434350587970765522140812277993483170844022623850136036275028623636663746710869159022526080182469707868687626183737200598443465477875100163606049171849965363810960127708046012388055089029370676888514872660975014302573189606606826969405808846531140496966835919646553008315252626771562268862973860549812970893436740568442439725241895389698101213596955356435930239084104895059104733468817881750662968916166456901559323048599951051153064627448108299115417553529010963761936261722356177083470832696939851807826851173576888949003584128036651846087381671775535939460829919672753077012472937872009299911970589847281108297873330231626364589351260165581869306117909447929106029186280249154109650650422747023015651532272513216034170795213599881227889324156173795352786462353526771824354942508420595586514168648247942028990781186681751981285510743249369313754298806670850687433904106744925135261827739198669066530496612376270084874330148000052766904947423009583999066755117480260010963557493594610924735085915479570987228885302818198108958985539044756660332405331205083485778167636720810332637565090474975911310450186400602629845616606109619073815942084636574798687075030461185587873349907939978287563438153650081863429452723540160057288239879337078210707000831081164556323328870005362983657092702589680136182244361169167914061147252283636074564406833783249349149257338283547721607990871435242432408304403758546025349125343893768099576297740164739234809624437713951999154961394308747755385345206250879261444920873165092743528289782276836175390619634392921955572557507775125359154912230771220957444092529563119284398934287498092684984753516381202633629694970207934268740467107128173009004220274707173876203112467411117803957053830887201772037233451272898066199566905544989164965110758353303500447506895279834996186806149804905476526270573777272190434781077700694486765647947976464821858345553314789046142206760040681574080794802261723304026772495506962536314180999780341141580498826983109659575030991884830343831875974384645447298667763641882120638689515303398464871277721219128257456454387095716363455606781055206819776877000691821332631782521599629313542828986772004878563343403662787279009225184044871926236231943463023429092533918383155297947320407630695275038440986566829390341806368025215110088660942671801310689180767295746874360700315978102241622668430837136532213944157506225220300689131094470502613241604804499807901595982720220584768814789728060409509222451349470551486425308721724959020240291067374113574059970368571954605193622511594717988345970533421398728321946631792256843524173531030933454139832326874646303822743073909274094806714178975707233971445493413961839934541283877368899061339905910058583211775863567666278648274830234974661118534425740297065965357962719900706653166252496105104887717707109233123509902295683813444340646229838509380391806691718646764432231549934680211508256622937149990737587551493047945517025378776227476430746442670878647912114083339241559619538747682242488433301199504525172827815646274492602970586425878056624169183399133583627289999525924811564769451889763969545764743665693882331646246482724553113554657887375356143697426224721488880347398855638430165886588942918814302613331577853182451968100774989487103450443859727323842714600843171096623530924134818787411453378291210476615799496546452137765764633950090651892774852349955722956194272195225834720733953477326592094478650021109458350577029521314070157744427575884848254848728578134112690163544732223143434485837877725990475185183563120595323386045229863875493782274598156561266249811906115683748960449139667245585069108660106530044539065350591724215843391504670273797064868669809263504197061086855436115522400038606309341877402686607975749191913284850884333151010759437063166940358938761985918792851392416439616116239255667870894380455731447278243738982257409740988279889781150071301082119671034377652005809142121450481491330151480875250748270965825417596728178758690918232348383663920846334748730029880458805571070922981410005048763557552284618934308996987187029775052036176501662827427315782342494236157774814014271665262797421989129582181924663271167142738577914478246742881460303355361855122275406874179388727442079767705891744383977809205656881989415197971770199702085910952850989264491732504071076220876866783928452749073968107557647775120371918097245441025382172703056132880816123065660132462787483160550468276007488876746326351014405453405892456960864432728800338857245485228477219926488956844369094682767859701492020221924224890735934727198751215712354661074457493635908489514562467570187906756926562654159737820993293927892357003194051813856526642620194180574722848491288442617723591951209046247978363979714769883403676828411003554238714717723316269027285716877466403357977765480207579149252966120945064973021614648339549662509448861311234366374820170422749594311212499759651091690251232087876680820537385517104413358177728492799849056551203816127702085540489607244193228135408133602783492824701759004590269766547274255772111930310391700633195752830856422485736053060308587065995541723715292144004318276872138583245509904542860859368144133602741403929941490457655136471531938435024579206160705537426668444441006936774305048581832338763840497354169136366479012840747251000787314160444615592265083061039988202811163277006008323229424436691243397747471319849091055609309935095336070705368608598041229867870023528746604699475304912110016234592427071733499763661932055264324328602913206642726547052271262679266171967133511678770655470141739030589214112500934590003680162644172719059800483960334833326486160626110553229166494413711385537019543524097770618255039218612280559700809522411865910769716871985660475546633881997637338622667489183182516103646205407283307983672196324617760013026202697826393293148159738300487346302449015329002616999615198998390337723233003082987076820723435733041310301029426757618756276788060600097673193544677868137887888866830257449123112479388886860131457453644752419517196994650092420381475662229864271011698383803930401602815108050561497681445382320556947785832127398249931898687687318488828073038488323838332401288216244592729331376494265610195298624446972206712543009988644065236343018676278873139227829799681920531007507005360208841783575729402535267458395685542043099944296100083633197126882623527437793120972840584011563101597628983652443961983197436050620621787408207057237114989581751209417236260119889412098807180276099283774562030384580030799508888315768397906122233574679988839200576134673536150857264291943996510754207850116502666458716133320396218380755356861856146565382054614187476514087515238687888687471867962057982175584025718951902389255318621030602444044632729567041740467192198775901897048851577954896013210337727329307669132857995469300847334473820480604834685572572767246061209346640673128337113710815496260176826367043921334020638305820268086816440404964604132675112533938829380949030176647656867224620149732350676601750115039201081474185013476100332803877178143455480555949054389131567638516261229669243664600217097380480066075036357831613259859497912933435244679629168612827349227393489230484867431845008518761916185250835138580477388575301766911564948461526433000554948575710740965317769687070662109918978501377413744711843281790027887821872649726768428570483467883219100160184941964028570546503120090785893911028498584278111106587207366855506931390111823060915143661329295396625263665439568544319194988331783473256290618020474862430316928775481362802202099514178969368489657362701202387128905563593576206630480591833663247517806504737241590379049190525348323932231196258417628040628771905115882592981232925477339987519528778621672774416119093335079111933729409613679566094234883451514915951996006297880149549137889370028143587477824601604902867862966285760031058274833271123506736887745443751879718036263204728689620372471973214199735887960758055346620477609285940073069204947873275983654416191284117083856737445178563887335868978343766474813727468479196011164812574237327548094648908403129917540124152217637439517413070849210256843425282492754269339576635377227280466155600492189977562259933348862746556837801162360566659242237315065294048523860058429081278247691306950321177692664850624129714199961187239470511995168796187297747456645837160612798275519002502407537492410279239849284625737239827427699187573921939214201190866148197008974395994971972130850732961419417397181586092692264169689068670979291984932785380776609272590165384852727638292406042810704858586369270496576330404108414229871858891687975638780154995743098814841070886862437520594209676170840832387528405142333100790801252003674978839855954509506863255049484936229863975092048540146335474070597515590668980189164743681913139590454672253198099583702258716982200000420174940221095111030763601107301061791952816792536857931357144242398760638152301606788563735337156379003769106490208622151157822446302814021339082257989562832851839643666373772122540896852350964907515555440281589289117203824304719384212862308195315047050869190151685927376726718202619715456901070610992065189254445467769175935991583862575296958777238167156656824606798465484581421737087505486649410293674625502431278306400130665839970865293220525799295315664385506077714969596929835160314003749894297377378972941975422292542501880481137590497931953513957962653350087763110954403549609078585428577263072988247050966479662146092697987648768342667050951849003241450362641985158239547212605954860885609757164565511242792842262062661650052976147893558494111249086756158122938374280935027644444980599598340427346898308638860147094260732136892059666480319441903831982759989791291686187685574632871893628576939129963946143787503633554997224850153207067376608716751864350636151890972563736342542582921637222586288446877807603888657952643304499459310606870641792472889915913334199845389594294671870496050614342831111405966400760484937927744013286877791443236039190115091329201615026331523130259325337580688376515143109569295013785034771112760991447968843626053820509169580259419327351270028105800057480605761444000165931563139397908199031096982201639704328131749160839720187558674724689668381462867405789934002470228445633884915986713194398501670677433232311178777965686422597512708979689237477341396281208292002151042275394430011978217593163841925177424307560090304654172995833184836539188954012715783215044134663724630667646883356401968143989475657512777801196492403501687600799521353938353862370370284244694629171279281189524078906480211664452971834625528603673788283409523460703619077118290525290697757510102931021275727913313653763347098574956871038626672233658694146052060239898522198127097615529148321300433219610535569075543805134179498078236869844523620156452163631076504240785337554354951099951160301555205871819384866220084502392544440569513611825102664782230831809354191767303663354897405064762285363148357640419413864098722749445195588949278332172451785895258158346356488672905389556412651404093249443783114313134969063905108233900208085714514636505186084533299728720302601769607144665814770348393077982058838158930821489217552150089726948911720488197898534695103543450624643810455825382843954152539065075141434554551909437585988045831330827472664277748798911532842904893515892661871584384699301010053248777921676101418332761530090190397795300434937361207471522451159816309943327382758581560286144733894968009261721776423800047464372849740577806252646279678915039854499739322589303842549119650193367292413867448281029096514893964381940649600856585030822952876679090309963635243825122943755128315153760689275573441586287770363845895923214234800431966788102762232106389777595225191990701903082272145008683387966587497688306290125463067382195179874482862711491534628096214790449803267210870007550945532270425561075084625512889997557538550070785071456113513278615623416988588581375906934213479588013237945710345387357578458549899187863916739383708746876406132042075267931269823120270339309526049066513995625298344057930887783236683936874300449669766090636057809449832103144949026850931580195196008120397167658016291601730905076148672596539107968839090761300645651041469377069595296776373198031958948598798866311838967551794548947888744467430751946176698637361891288332994082846225153281813161795356156961723010406867320255412593137686105743675014556178269321095773019575628003805499691384695538450044354243079878038451632137180715202728778943528296127915098721702672500390910060597546664091305235767152177207275839468147306982863213380811498280760742438708110448567899665816530767791309768127041563569882089764442527996556319209528884766878072291622376784154211925679782896349477430148717702204912193456032139826172233583909649968457515368588831236928416357067910745458295470938945309844463526641290473436416474501904229579680627226979885349814619840014406733082766931863861632423816512498529295541368317260886285661331207794931147087303331038940070981030463775615955787015881540061222473840969438707405132426154581259346345411197961176976437027728075315274221235484489911850312043542641306781519948157788569010728853434841563201608288952067546271308604952987415495706619351561145143116681774145875595739606775223470913976994945319411858953418504282867471913807568253944196130490002269772725600618765079295650368535356295926141809947703593397429195141151279797719276100209105176640703652063437175427078660047041657416326064946894957871604084249925204974101290722779364126443964222765721597294583887598290796996054550895046937680701489914651508033639206827358895639019688246674506325072900857909121521995329497711997493379437066093714311839850856561529588762565483045412646297833074730354996140131907507719375583098328552712858159679682475184406306071950299391860745486791731405974090577582062295305565916835589542158811139657935117931374610125748383804245295108482895931987201078319173907856934931893794943113946636028003838811002732608790462016622511203582082187446846707473896686800053404240885204251164516039594442631611752017690198249318014458672158205245950920541336707018310679489918601756671699695134551612986023931246671217325657573780431996747227168583958750029912928097858039067267377282562288266485812928938560847404616714523421874379016757473052094878992250465431411840776176139754758813294996277979443770755380341988803214535094246633643664473585434181192416150700685208180739323889813556454391468059351650359287215767816026247139466315443507121615468467196772001755260012225046366045968411409086150105543671475872626502841757073189190295489800348592938061312019603056719217803315277035233835446306031932192471567570617963170823517495733574846311136478651087433693759518830137776106409209256135027450990757937629445987810151382321075563112799181365171294223427791641118880002852232478304790041665334185810296251819388062462852450828869559961632547135218144818941296081048226317042202228407580577855600989690356751142805234768591590437941478063946922450521719344637503040444003693405854461281355146285046283604487279265312708297826680835561759616390772380987858170750578625138034957522576504401363440581343285009062790652753020646230704986051593310646708766449113041036665438041316136357833606330153897080087946652249927812637479085972671327563425845954962728775053675496669618795768761786692483492208666901299349247839162603729155182345702049554112865736693715503383275988979758629044285585890989838882076334855796392984159293533516713834592236367675073388724455946770532348154364996692420511294351052162388185155169725462326708039017051756202650285369669423349255625434140882445698091824684385335505888557489550748894438466310577957197999990836580512793247156275154210133064889477349980637431366707297968207009748982390020548920844071907458078162387823303282060968313158920304273611343499027727758120695529460340444728739276827746236685681628802893819413809954899458713378022179451752163529281267501123898290972816204897588443814576114267202027529439608660799995054883979920256612984431890392988413892632813215901881796661649232114946106868380348240375007337668190747768921237626233090653553670021985991699045893916115561704160991857460058096766783032487590871671031351513535159132483109205895007463237551579319576053316527539689818951643803322567540635750568292799122776292113054907309844311654085696018496078467667059132702633681700846637910483225547977590413262099074921386432150341228523219732964683039141754249560909253380264066139947201003711872952254690592368279391074937593361337562590073501209102701583987849753588110263091181167089286784208179251063317111241399023229436788514158331220452586506857333702614816768224940665312122902285131110343965378368803477994833002174435706680510957062054742612748129567079067088335071481295885184046016020049149813473051220854608561462011521348654308284319217453062667492072492785374148353917970198603176554864683649008828675875160041927572300538418525485003839708595482846140333744083277529499564509426622145898885819618026016506138529161744322845100604983903492378990080725019280472929731128030573145681761654795683468972041513743125411848269995387543587177862633053022346004451100122222945723443866637293502570186257405493744018984798774999971231859006640099343890837877517750002894790446515149922625501238504849400919794554771525848850920177360863507571907043479094664229955690150836745515982933556097384573832698681423317947666214494722023826982143592089170700519491868309728611756038563683499508908287605558052689669377960253646397437585397726871058903477468749018296132386783468948262288501438109110543551177480113190530618860923734958635205386486388759889296524823103875510622526870348778973498752231757517028187184139852802510973082843601938368541162925552835323932225504743653558442585569608007059747034693276639870778527733933979983659806691145819717212689664918806699487576034496273683860251545696990955475925705638843764008653434890692355312698954601750837674813621308543431086010598234805778336857611259045971817876750000184836412406231150784113837759493619131889884371292846903335059060416150764189284788936039005705819359384359536709302890975588907048357572848920047890617588719080393389654885409122191059872528519643935850972982680980051293957716051887505610073481234634293475008928710643002412673132696350352882259884041302525840196838101772081405311958719284448027318268829090160564611971473097199268797628036593824493734106733751662645058782327353437336188846501250864360294405066973079496890252624279738240879064286191361665803297649794006441261680683911011341703775190614224819785420833341946956675123162314124516390786738182277486927421515296747445639472264704824237917053622365068262555154914183887665071184976253327997027199285722635233797850569496520153519998066485994597291378670568687758788279568678621025213109735297641816835193425197250184661797520847444066832424335441769764358015439064854937242555554325174793320422898855390308623752766896217425551501273526265649541870240599893090351112240590658206690443597594920808406254118195191242974312318849243986342480049381078723484738140552149617575583390163147295098255399858422964680896308890048099058837554562317653526898628953214190447616148764735565210908129076056831874162016281761894624540419889259372931744551310833787358883114618139898804132818215170591243402728643723553552949452885614848558415144254283072557159997683272884484187632955832762521928680115699875719481798094892910921905762240241121912100348753235501540816409513676442325001475442766552834104601498455207284397184779084568751396872075569777687715245307887822996184655892697064746009014140926010863901606961105289694026635868537612300249653553037038794560030124281629653680621117467110986526690980452210286651077689442178108793446470403110466537530519097736752958904016651997973105016384075576239910225321690020390239709874681845778344697356711445465890327209601001189928160061472281963144379417904628528196880279338829463992128480121823415531893777071180285221197923104065236806418041574092653477183805557469706435058141731028087281269201745214253462995334978182416976416712587582095565424952243467261074994405121230900809041023973151020639614496210193944200589408951217492434181709433420745030631804244036360466453505102878107577601895787142636242555596468655236445975439339289792017969457894075229316200047865497200867311986153055540224395547349250709666041336095541123919426930289594197491387221928251109254394455474473890841334897913788371946265420463403301648442755585152534173967067129805530365352088470458106720106132942287789730586058730853932228265466712864527656095130848688460044515260866704594780505747112236696121119327423333100937245546884279969613957531796644558060036015675227066274921704038958070773186883660820005431554737247643504073319632008639223724110001989073999406742812995325772048457030298705284832405167005509908113569815386433453912613464620149934969562544289134874531657444469434820968561411987717678468430745407474413296397890203383081095743869414097243750523490345463251390871467599857802602368904058522086152217188152596192701116839695326326769069781640271182600900948463869486906810069269101919600750439392600379478973856103551078694963183557010559725848656503291030179181890957934299880321779725940916763556423335971466644929997302221696344057668482127473296728084708888226549704134925592846878497361435804184825456063123554763455582712120902771914125582347055566414613088008817657826807166045347114100748206660055305206044201212119621241979236815534695801289665179852235897835551972925905843547333985537454000717327867852385585013261764753010960870453997972754086556617464911749593793335945658226616596317075679617672842819518765140297177820628002602955002068786541057203704533557231885186786429923219518926449863788672560430694625731813957618282104162738403958504816357234879658698853696267166602039786699899435687965847287630233412413517379741669782000061566304714103563806250096029738718940071344579215182384904500260498110650493696737060835676918228359485842915698997032802171272948228919178441541688349511479493557429780381170485897133258644728325350166458196947532265257886573121174923388701913554238049468534954743136769634203362437592148653007325770992088457435126793600459819916407256109564569731837165275637178590657440869790587009662266585013496457649022700191546217648648743883075378064210432731050084582664126724470020245909980589414498965470638027773016303043029579616369339568647841116027033321643714784629900414129276350310551691885879778558509715250835101407530867867715949037677989083208369794646012482494712807929876192601314380509440853648612105952677463302729365446770266081443640927123797095365904854407259448728597342434756838243994780125803737322184223797207602493353245844409850336302541698240109168027385673955839611033483733743387457919484944725999136787567063935831803008008481385927173330087050516037589487339814179157872229528658494320698570059238008204906379880390094057508766685676714464737741076859988112484720435647888398488778242156621932524661017910314887212481055251494591125307159530030083367718632123926125416812334455369715413514623816211950997245789083812305707565568129311939161795785317204828976862271428579998886937160422659748627990000433585656590724563441468879614035599945965850229982049006333088963261728557767220174812290208208834518663615147903793220578683418688413814441657151143268531005741916064752260621393809243905784754988217822917652231332104313701278896330801457260493075847232550098996928046508611505324753830103475039940693503672628184849682642382469257626537473199390511153596832765642171567867316543722657917090181877904727556204589293866930997066972608973853257832375803495655012751972646979072336750815090495658222215174006894025889138294479513948011869419027907986620851231914768371469399465013851969012760324089343191903275223593494311291199967623464480642428718651994969457096819634332893863690054932022788737724553012841255190226772927350763131779761612479288868039658669140583078327915984466981334197462202104061712654643859172144283462265102892405856826163982076287131352944714810257827442087250551650851057909387103955680456542840834279212078858899266035798934213204639251649533696594238065706530697159280932473007465204924751898547424847853970465115940429554915702626463500269536376400369977033040187792037131601278032455657093342473929360587869226954566643350619390997170217116403738943004967337360355190996744398924579069192063347866272722928419232723184728754492848151176208530579948995120893114156842562731250227700298157067727561293225539868723942578811651205131574138113323504256922140283093852152268558010891429101582716631134436264511511606132197085203998415263104205897294478480328733312397377755928119965271031156535704529604115898862243738757499036450819289966014055191904526318680636773580827603764407116599354267531414793257678232522327354771350551393754102724143974689611586572421525070926289615488314799619492942349974720657218385454411459060508169619543801811293619865645829041619933791582794766975916461639672228710450368538688824918594669480312207290344633945367999177032784242864332944818724685815549763823891238296690807528338536999154471694665024259065220165908340264259840220373487225035779001977431895996668788485400878302449083037539986930998677828965236785217280184383615565754103498588279675386983178203019442999125442712538303579408566761585214894417367644931686238929502221285263561877755628568800055020165293141061710759989472964378808858214895807603255328298593541964222281720631011840684884121184181149917350501558163469042171976818297255268870619236096968639081517442659254235344988153268288725242611622584353778538031738862131695974529545599305135764299019718101271546284395801410335138636024624678486312823338689441004542145390763011195555591511629893003111139955861004092789527716181727316476650216760740314330919720063525293541819614583924330244621902234635456244713278110122282639426637564998852787603950619627627044554429433120420497580486927998896761278933757219866787014537721592130811353132098911379531594368421867828178642217890493716869424143392468149161043312689531247080318214991228965246149857413321400546862515908526436824634824736106386261377750254014530624723989149048795010594005172465174131435680730077704335321803140733990093471285858768785197194146532745940160977950522457130638647445489307553362583612930905503704864950162466823205475126949519368301530858682339262032259703857489413554112695260100541985873823380066510873297491048646615397254551883762083615098299947051175927393128421962939606769369446481152193875076352731032343824394653645410586405130262953165799985929877139332045010687207357970741790032841955643373632811771039255490243774742311018296401956918161498441158002137381541692603977812614465703140620342532918022705132545877031489752254806854857924441713117223575754697381097757734238424925204261760101949366720726925126676225427809514468864267895896594067298580985815493110527970528293510404203036324660417039030664272894066937223741095544512786456814741552266290440635113585323824180932405270960464530981392693151982736637072327392022199245142822495038726339107774948681714779141854384811043037633490556100216218883684531616071741634229123375771987021827214059422199557002086898491070725136162206267984507509218202432875895967832610917164413580848593252273822137009492651095785230531805500163585039921980094127092913254764912918554859775080556935554865180318795687443317745533869284248618177994106137943039150531400820571561172166160410230824518999042338023285078797929713699241076845473789302269600008695210480122399150371711502919075760572378634363709682136120068996435864548181522324394893756646389056534951825735235109790341537999133022825623173562867477353072152594551754297024707923439662821787927338095636489345050586616134608517561001816945228409446824175941112750484421121672130615894318402864575864722502392825328904885575243427850389828998085233047648558510823948423033115207984672274952592289176576003777796344468452022126673104224439598212430270665501067523218428579630513882913849617327375729666541599311237960309100558762874029840726296927482144844311156884054758751030072406236160247054736941364148129541548156667160464392255253102697270939081708579950962620486962755691758807789072290397689462675857965110810206794874500711317492608391489020181468402052736366324869922025348325236535103573916724855995267632310911267305072698532064092495767117803901040167860817411337619697029881597294841821688777882712792490143715178809512509628953098224842534445269626521465521748338234173269368840898872712130243710795757224172656493530743055139658692509358472343972184448853776116314990636606552558089574687711592714688244619912262573443087218616982167635756413908316132078681906888049729755407325690259063379900472752452042897347026783384705671899681860142048474795263710064115991869658919268854159627732660711123727775948197853750355133737653706982296692014864859424534330373701304057236941035856997164069229199243059678916752331004274629667314637028242362837143112929111778634181405610249811408237659232858760795800150444382139120668758392612022480936214609927818554921342714185284243903290241091936385635041628605458043408128262968088320577137583367409541703698807090879806626885572921014212511349516842771105550835467892392315247413695683456116540155742365347794969332518806098134002780988492168670540967479564549521771137496592683442369687734803579559059891764253502103894881952169838448464880948067262374525035682204832215566400762657727613232398520810903948753814308733708651574964850045575589175938304687046541601671167278053264111673734019996623326497835235905509632374019845938737635707866403409486756553458763041035049164285610768947453360191630117936834191407286267685891616075014241042540002397337129064065134530824349144924469471412239494627424015805463255666633613836329579233567526684024141787449598167219858625794909861088104471261181977028402498068567396698954846870666268052969015323449258020446817287897851525747900633340061934071660149307170066496819744121166832369579777722722869420191121896836914467291707336212632936615846783399346485297232427410381437566559678805946202616268075932461338788091742385850935657754172136717691311241317534475803369875949328166990680323878861480045817036059183110408712248346440938710514428015027101770381836185205471976505232814980947144329964145666901144646583440285721598656213748131729882565114696143108802107716969290527059775160520549408253511630981269078347281681240886918065972010348525329140367856610587491100499432330217025969593871897967027483303576510501340029126798486316034794110504039791015843069594900668319462980818076181935322966092104735220495457158334101528281189940512415565925091189707335281203524210921201542825682138099394228920434179807790889068447385047743506836560324504991157254540644969731583398552560411052903359037017278507136274068402502989514156753867321287772882030374237064103658681338450778207586970358910304376178298325222730609499852748858573260470884398120455317417637736500105793987490156778025511111838969180476497581072708706668306780844422587733552550540849618329533542874003699872174992715640321408014355551140418971205403473719607881989348489799392349163035851804434009063819545566137238198802696708376190766184108010613332156876403980209104816090177165904710535017057130133831943484759745797671865200819587547291280749730807822148452267894813260986457066314698778527776657969744725551705969692324658266933662447501692010777327472827739339940326543242146768383492497062766255065157883021416752688833941003800083403022808866154161915773474989444252863877766526645229359098657751567871172659727741377861695570061921680403209528463881395929326484949209063037926203790449042934400620891713052306699172116861753938663837368953359172521432542878336505220280862314611808738740602257239901144396599742831729551764300651460553447049790974138165438906738500588816990438389443893791898512483773286911040587961610613391593839166651313758878975624219230249083326027321934522879266331748748893438349868911309347020030686321790432399680691411167249857700975264433011292425113219205892169144224034384437913821673919102234449394467955117415690002342940408467765525665418918838136620887408671061133740795327042534194361374703113598372167246223587697960539256436134267507188702609582409761028420527500002812780747140601175578706010642096408100810567459534151546708658189276371217683251324090832238713197371736192653933709017872515375109851720323001764825953263168200731111163357548028166805379320284568508883159039423081584587656639538418813019200024778727391051829062751944232871776180815541762955259704236022983685101284033943524825907413038051586654408008205268034165317320626742251160206461511454807046054831525377932910065578336334735762219541005198091052349524978111063195688910503047588408397547880249189262116813192560831568911643982211974533846920311014682361725981965558621862429560450150408782861527950740801395696701425425724282730384311600336642074932331078966054267035141979613886845828643304589817846331309885230228786748743030607742550311287525833648013390333840550467031148124968713965657052768248417482150404280518531183452921337685401726151062316254717349492753477356033808728488391953291643478404590264681733437142852623610539788307154098676632180564620550885929398839642194606430555562689765709697693593049025756106705102837374413818963339612914795490436677627445780986030794420373659516357835728553386977711569431841626266485439806287568991561411339735687226994200871800344518722078307926725098266159685950280226248314342427159829011157755756722461249657019983806798923090889932437962568162373184650158547380531504953484555008598524306726569096679760751112386395635980941916260904719457497318375230635890135536188606134333456430692379836453137932813483935388303953296250018056516161100129661849526690701691949704827221998237837407466738078722177266307268637388980256759265609700408028444452020996822948041883652542784654860500367762441035251939326465364060176362783594603343017421943215771420184456816049191624010833410294245626955381496713996510756411974005228367313229053458645461263186517521846196350169389275673432451563263956265042695775332844505094212642087133903443184301228945236282001778135345013645141370584712761201500430554612038444267436184585646981202971620380008609715435175430437480265759426661074627591954684640376448342619812872232558087292432079082059962899084364914217558592321652449476093490022501486562177490607876119440529268364868176390407862548443259915635619685556675955445284270425499385493514372406344614399878584543195168852130721316879338232434501675860560294627852290163190078729187185931888265032614181768752247418595060916403459937912751518992620330643089341033556210207709632837514873269157995553576048764286554438050139300177290024897636409634587861055436131392652240158094358342364805042915157907088442951538183844705500450506317787397518166092175191896835506723964087538859437801743261321971250178339928902734317537572186685088719458534708896849675565595640864746634692180392036974405515498757268379661718635854023219703145514002830864969883396453634965463089373814175435003021065406917684851067439191107848415540011004055970854891777244482600156892795553815143057889037432328070418463575707092378574946757399811802807437664502455856536452738089834202019746376451538040668830292705053928818200786332758003061178328784919223162820090273439763088918748939875621389373667465597715669263172449706379852047196541055901582887401585995411838851040137622959107879854414731495969249118474074576860046341379371402543186985207309511830124355946691104131665853444741785176025748931157510779246361310669226513980888383526714763112613697630454190280862012715312698654855423618240992840134610180776631879427351988273687315646178974302716117119557633784121997744225326603408690462192666787016824293064340284026781914061848593285439375663397781178225408641839582064425997672981402000429094381594686398558981156799931527192299115121998015997389786644700020846662655694880493691629634051754018544982680780495659108247474188871327024401776458449538215762145951141275758987437119334024285819726925219749723537676046540167763538163276234132231100413289614904040538783934926178268322480946700811554048379092650489564075670726824390339599987426574265530542649652274786475580185074933863497300441123933245130907883109113440782924032176015181973222816240582116257284578824006294418697594790964501652978026590003125398280773389335934837617875163457759921205159080677760332200766531161753029836004948003185919424648342361270601298423530047411057202277759804909693023355353744448960545718159372345763591458912028144392237268166383873259528446664092704182757155829118649992944533792101678297805859241384215158567334795421770114861292864853439157296310604168170086718123841504043770596611443356238600554122696530127958204594734621894410962486157193061875832066000228567173063407774025059881941143718413068593188863768512233804605085497211415482229064849580763622819871110630531200813947943299854637507890211740981472817563853585764301233037284418294390369215188709556506173442809719689998100864454719511221569225929031393996872260437672980195253858123919649053074551531794050774344115474017606739905668935662158338919704362830365448312317382086614418832049913777921853883509835660529538840220911402908978476449573351953610347958869583474607603594443967025711839763672015773936043109919935104340919413189352825374742730244022757423309705491638747179789778734684577057421819363100603228846286115017773012725529059830941620913770399020399564524539125761255512270121095962577137708951536917126185374336839367974692908259868647566363234768778869124205765229084338292072822826791839798427702558309460940998488581203834372626787392608163982157805194267303964642157857678214733768330273892294031714841150900099462384884705939444891816763343664124065206008987563008704958610411103721407815122753412243574443436580411521237266107642536872665838522846017257735572737964473540629326888581927489965100796535811174486778199021621878968829507267499240410929555614526076526746394113030003824275779023598325816041958517697064202658707640192072841497553670376108792845382736512248946716639141155091516576024665163185584354931468401704066322750700806122784279730894072906302069681790236687700709690180924286253252850440528971513416463344934011671713608257429832453124057205310385323498199228045226751920690134471586189231528915245058657937743279204835551464816701373231871391467097712236653838326705842243420718787054862296458563850190069773866927378078270990338976384886484077173532381952049354904238026851701588623482948300824407122239297676634225763082319658797796646900419615478966162995957138273557292465446526381740320451494214257431341594774356119389524200144050246935922873022235549052238213484778004452998572646048579602921581323631394125605182026547878430948966170306720707119939005408582049436347038647865067167411547317818727861807247615780519859737412164764966204499284969008777848817095594906003394045138631281519455828823321429031226113915870510641250328451472963292165531952551222691151255172308921996331666741510194339353343757003601661377587767192105180119508854126587280552799168808608599579648868024694396739696016971027498940602566751697078129356723059522194626138970220268644689925816693104113658594255002932423347648813271215086818837600604813308985364551086907337782569178492860810959351376370394843806645484908936736740018989998249058392417968244842493408149728397797503285221520591671862089212562017372593045982651586470243125415070526475510497291560430469976609193163045214892569523171915852141262552748730533999588783439792406123088748522475076934467068017974347330129270667478723084433869418045202306001298927064039596938079241887507597787731559180576580490709628870230090069264606910790620331873415082597519670634941914901292879309308401571636527800063022524529485285010543825891441036038905131067183025504656100613836949742250520242559461979569079030716980720485708768672844978109577087438231008199122961925478521657119461866363254264593434116746290318614465364101295919961558223717008803056473575012363499759794338767482346709839761612583501440910231059996225774515608170486165248871239947263162342190194625358181965978860241805504689504448333420250642932067206353923357615416306002606513331255200333399926213578662794543353332291730571893523411032216295447376967610407948711989426186659741359765845959040125928962224212888651815481070643252120889307705325005933173181075013542248143446728996019226255303850527658077339487984219177522172685084069005666102260443158383282973450878422377306010199599103290484928315595802415734560222100311160630076119453504721925523227445436471798860955020750766283150984668857246313524778349610089003122182196883344798287615874823060062365485396507212623607480999598465747303651266570793399525243207566527599087530017917063439078769044118111542280300764754016206934290657561771435005983794969281140726612648641278953296223230371682906759495987672142681137639025418769862319411763948336179667668251408526660030470851522908392813555156740482049042982788914953031748381858008528433174200789532744848705414538809575895119302262577447213984876776339344900355369708059438608905826151351092381478490659508189349538726812196169187693823008753362656021583664075530889748979286490627315164935247303566004469834519910236107323295614696826211561953333653436305277780735609166527522044895568875608075593675994497333415489783660233102865126089779167551283188926558676474793242686585733385831139194937679476887610962064219278370230890046720867069495886898503169535935649443127652194021945559073642063402210162214028098423008571545847243019133312060027369294173324171166548574758729415683868779669248237202248357930225492590043426006519948967625905187321490654221549298072982011852689095809585769945923330591698560968981315804605773098851817793000331099160839563624947758576786431259423130687295507793517050935487746900219386374112174775231905677714269241796870534485539940101310745149829441947215411241825035589313503105176495387017321544178378122575052099787990315435622158686872414049121877580108764296200607335495273792718902705903343192271411763400783327210606510096179018217948596288933505149447570253164570780605188787591227706140666600662828311267656560871825735996583201084334978049481708959422314838386147347136305216662546036391442446574377116683305874632500020965986850314142164265669273765453295128809565402910583274793065777634364061557071954800664583061922650784636320726545773288393246214095474045144689083467674339352503002652445920259112483415005786434701408978747000522423684135531694126148712125497248212359689905169141335061440419432427950537831421630387048314436392646515259229442077123185313538329850249491175437646654910799395378296314702316531938196253403563489552787320436133143406679485329125135179681319698174470110454647487247804276081346644563016080630679076368431926649604345997958931107293352715005912529741190923005803573238827639505169116431862945484016131297822599458763614569744035346140128632713513188288504840416000686497489846546762218953307514490022727006748450827840180421277848908207538653683330970367119372542902587333766742976239170650283295336083672222518642247017257508192695412167245187799704605751946817161238404231470455741573769681561228684411270724637915517066199163825513932343484867948373510781553422043318380810206314784353424426841235730051643164654479739659163272211611648362896954210382418048933789364790972876994275946803283062018922426980530819193978099055750384633254512035374613193567246268064971178477764760441465765123720124200648628618498315878475878939809306790794805436629718981229685705438456931803829066007587103700005920151356150983776927702858557164470660519576848903306520333526998464102769823395577063738913447383509432575628108007440376365936939587907954553201378580541321239059035391115622434877268178385951027820918144564405655423027952399424273261783695881101572760735300266052679850802912731181267321959541223215758594116097668101924514450863962398351465743440185798730434187946679386933950769610148776024513394549459852211674157710210731916040209169151159325772544731974752160243059255582127155283204758687865691278154210472558173647735020948214039642336637296208925380544298053886548727170145830696758235090870706145188799802304391917006774892469606152572409090225542722126511789483847315516811258332237685163442951036040565889835406060305147585545467477054766695941062485263868861925438977496722566321281362626553926740508652009292578158700227081878726595955263308349415501123185029372891396806546418728713598299583340794778919549094957708251132297038678925465659400203289597038747602369644388216352446645726893836835882358598049454822497468541833946576507659478170634566671100110606582731985138084970999950005407801650122153473246870214713389236545123022617517775645587528448365731376724951097186059304317962425068210729279543292186308572371155826663552411148985506359507625532802725086487495776060159143583275175904284115276695058638277185882456174132468244918379613235337275902440599188127048157306460366672532158874539301485107213246048646908183221379875196556699608145884708797609535418239049445455451035650030138241598617782598040263985199750442821542369783320732448819976226458829802513089405802083546834118595544862756041156714438317010340280280338109280684554505201412038802508568260857084993340071400083631110558654223671101940820565959280526912851979552909050314059064894920227377164997167162110374897305508916399686562739321817256014786812384504146154897000656127370051686259955080256018577947708381666895091804821143089804897081755328413542061764371087245031584725745542602877875364321017218070467859268052414990758838410789212654341585891031696632461515667755290406482856755362590128324493584231388015912010980479637349100616139713481352952020068479717426200296905659328498143448178240639033835077279036226571376717792173869550815863111684479734680052480701338386648697489942160412949589997973241338119323877108865721675423601401253559849891221875069352636000675441472126954629780330165898904627843473128919902834942618531054858414164640260198276251646788481903844004784742263730639548233198106246963560679213316619806497256467832797328399072270820308334584584887187676925154411368062066523671711396221480887623939526596548852501627226149026068573372011596848279376450486814176578773512381756964269473659661672123848430057269819107988551145456868427006506024056452315659709681879733791600048678630238738795972742260063024908319478862863792531506864884999178725080957641601590957881573205194855398231354867635538536299524035863846882790905494733671392213146401043427034402719015106260021252130786615308978398407031197857946275326520002027850428894395658529492553315974234055973774457501000604701570980278740918230490895734595801256664766804811212423104770382846369816962862529379387360217781340266090745975052736664958735148326659722429107496435008082417322077918072580824339178171749665291270470368347571711864949990275303878990366098087193849903433563675050850247784748952069437573537505832950971292415265282734689693260164082689422449315706294241358237308569516138836541265748226594853255764856195149035328515626730575633060780945250527602711029874971737578969882786777641330394097287719328037080153292779104885781228390342674471169385893451389344701655461569640230776099798044551608484775587178843387378410670660650523936163756934869741270823789277483176832582052368585424456145040696447866830426884204541138914766017553474733197497968213092503197461929185643248729269686364973604459031776269911805701512275751192979300210993454899156662162452756231803400149908895403123948439288678671503540537348517378533787626386612346569377476620768055418408500754067484946436845075323807288465036870813977722486856652162038144264140013585126461071796613368831003706903473502997051949588070410024690459199776187148870169805376966254707657469855107545859332477668596307667196546288321959082601779261882887729311130509968550960008495000538351500605053863890232825820778644018514351781427909431707695805424730514618701312992723431413392564396331543067995281897746837773600209146374859699702281563626394856413007497115417197749211477385701196651671104080607686915173559868523045901018211131075964131934999220495584217450199947707995475086919748734369826406502215112207892312697111986432736604501578684648983414599569670097518826710719927376460688006634233206944919686015445408023681303898578482366302321301128040043738282161920102668516960388063346719579103525384309390148776233145235572392744470133168286771439644147988834809445466620176057749182031900708634224807534733997812376713480742067625032577123060903833321807628377533945313287833986572519680478184621457375321608010383842939233957590027408168320565302374856146002661031007779722932788529669801734769458875692410918058404760982282058667319891501789521700455459380573893827388691219525956539424312300850310210521725488741209719707815900598442198573926062082282825066994860251486415665173558809968086362764238269065323897708320691103118682767530219967596822372649472567427265503230611717709068650511085120797003026667936197524000048540237356196363147751141828724075139357865380390538779746221215299305731737784443043936391802807892371543816588869677589038394353983772162631981129652528668193151337166864486908559509392132805842081742189477058945365747048428088275675710705954020781339093152637814167824153476351820157061225464871193632639152519346003750111580268384349428979010587753523605798010846824889756458652261168433331763382592769362989261103148471861225055414382981211655949134019146772759952329339087091774704363761404430393049869386611732182057815395875894825180062286308534704712912980275191719130518793907868089541054485646179098561601441914037523112670398079644541884489108521581736639426740713809113431449809244820995952956500316449170360435645918968556962501848017539002117507893093660988790982340529114623868403400430062624052106596245213641401899433011351232989145537857559894470486216000264562004559711994874355511125621032470760323857928329826099519546179763622119193289838564582453438688013272268999186729161933672414360638558743504222262654835536169524800813173471400507473883718429469867004498472258456660935657483541805141447782756077291438607425299764370946991778201882923641462592977506267007210606956132201345103858038379528405908332276950281326930205826921952740531527145673861285913134992316671108409983957206049669459980150458842567023878185421755286239317302716214676476437132631385007640334833146709098927866251599170465012474946099943462776014713968268257205283629920873642678109406025272117974299962850614770003520726187321378821385222518797180300078718639861824555132825455128872828429166952238604359919934748045673993514462295651915373489821900227216325782017544217476750817314518954861189978498988240359347711143714607227303311048586186217545950603689717777294206477413053019868374426829205083608372917580398886266964326471819683916175273869084321094161060394271708107670152040271887458819342742532896233402243590219084743852427105170714302415229295765743344340294670206934990404118181523050715418022940113757987734669767039321230751060247382569711456191280174933189636794831956334496923021801231373047544819822227463317801162890141957762732134199482729173555037488527045601560315072695942868365316976676110149061989941964720356971961194205404904539843364639697317001545165931959860706053583819030365147638613875721294300843872895849897587235894980358542057968424482832789561314252444111588723819537142157382875585316544807808910980860596358830326340277477651053589569203939895610210081843823145296451114672149008032882993865621712101221289435348269881157405382187088856009135415651579036599599897699646762773577059221344325653185608758954125933345143353401059823536623164920553666659648997113190213155374814471077378440731641034273303002393336805857565541604592540919965613677113764284329443356622396023908193674412480134438008194323457342275167928288518792970620774270615477099291460709490989169241000400434297557218903693027980195985008112173983205758628146878210128550124023664013314343008473299827013481376280571841445971020702305663638802581938528747822196047972294458715177788092562851561845946502899158541129572270192520396546650046756519632891723856579582512607950632859398887166640466912860155993748134859316500542798790235589525529134598082576393736116593302410751392911432351268444980145130398331703724982720038063344750818704028455327000853363659991192418495651219470984768053097621349697231272837859158637832513110317394172942722250437604703090389792307841819996982037534450680272565119099666446824765503095090569889960242288124433146674197771423943624333708422797388278472369811465696122150489429808908813206737904600294248164798820848248777348424073890054843818421346074184501223229765570271576583974065931813812455388173035664820734368860928770821770712428900439703386276740654026341861978644969583481243754966424617213761167338904430460770956676037032865448839036330585150453390882212261360789229833480782425507564379373632130393602017418224329419649074127194735924394965932747314636781417256496812649933430399228683297160393285197716672433178001690954876207214113128741243880101386631594460071462465829350026183177938728706966655161670179707288648928995017280082824984320525267271821768302159497607533733742815251139866248534544905196272677516228029814601665676941174990205482027621518045146099400931755393518433721889339149205969654639625224585591323605453702908698447553893648534688538915839026506205955417606267861010928800075607313601493300705172549041320709931636972116895703537114984593722025652510904139538519773563126552574279120098616883738765519323246554321732976993981333614232730971448087428017091641015512484315791206664110886774987817151627215335457659947362954379844584860578472490246684646895516452915586795911868043338039685744154349474220669146221296259750714359679742211031092898799258822114798783386594500810751149966170955594598538015479873053783200567013993445120503041775833856658367684626035137314250164321635324678707581901310090752037295392030868136223370114372941122563372668310132707650119540292007870248253232810427979998636883580511519870988640162762964869463355800502666363033218665070023354061335417823841106927374054622579799628281931477583040886175896817811282718056779435791781444909323622842466918929293182942821864263295358957865903607945775247946791834490605440215482195159653346703403939015522836900072226940078404483770484149770665024168296694334590611795946133243628094109964942467777173039996322407477505125372133425845709165313549402854020450268417660592857226994015139479722278220509357035677907361405743358163218996364730005944490482028140686779922262479482490841168142508888368505010302441751633023574564984636346109905486097438035000403018566512389927444219601876768246974389339208837321264084427223117204592934246600027490820610303100552508599714092461671735314287712725681315353619906448658202224056302327798560737532191445163081617435941819165951914938688998510562822755788329942656352295357229881366625458233149965759362363596971139810406112179264038749961731662985405776015576377668507415169984667831247898038018033312358573415282657088406869626056457177101632323369471011322386730542912553541884911770088952027006011387027271123111811838049592424554600479098244642090230406461837657592580215912393393598790643961951577554141063428825405729739896988203435910379178084825935781964467898532080668744083429621112105699426895943991957449368537248534592049939081961923946663704617022962561366509555368727350384220744430786901958678858486041145358267145966259559625028213595534706853088426562279440427599651932218291171123220441334068554680841868082428036929525706614626644469794746519899760642712406731783318201799945439935901032585220826481752539391115695986220547981235482406340575403190728754165207948348610021650296954675555109304998448704102351720272718263914376940161457723549043664225930413414213182466870907949923515434775719951535473927839012539344209487887859580978119543303806091432338364057629105370828555212658154625119114046016891511005317385580838100260328723326541203094144971179667903248487275723313843338983333218835928141487881941359490526347424747399293673429581003772626245683563651733865151951490923793802958418399804785143740476702514311129825037171468324674934609608689935090128282803266890131800557415497119894233344537410218929600979909334953810446505268460652748570899142093087004585558161734634624814923092305645092630047766509857279173827249714186376535250550372700527564673286252245169285081947767095542163382026501717518332590089820526545998708444459319841979569274104386875519686090197615281440311104691781645968751802656727149841182615980276820980532422670711466160153399505094445865033410103914687723209706592038867238634267347675345771063968202014122571764947412596695726947411532301229106007048447927219597364206332462065191549896131286044988979485520413701091216744284108531291410332949978432329081015013108926709597244801086328303344607409382198060006444212837271025363483847152289581623604038415596730085776790437611002899056990052777432545017017550200877105008097207277211354166575128571398869925001513265798081952145288771114150483977934136783721515474392994783926333132625830693563010966410496856434148917343777190541930223597834719347156930620925673197083256635056338791675271064131819235485317296662447725122328054168832732655328132194612245893808361532849193798285576052392648568293179468602398739695883971862792278153477746907210048756718284830206686943300986461419894815955859291478421229833028741026498113053584301306327929929960441412262082061652474888860547950533851548534958024484397326588514168298923002767708564524648627333224734872295014043286053547357474189708727532507962667216811573685847759307139004076357006285200640911705866360555955523547335167765590989015674875845919478172923709475590162339669414878231730022107071502079110057227022212088767912470741694333006685540931505945667405237812642688076388736037263895101027652073487847733811656902668599632155677246777551688193059574982203012345884615265849688843006618592879580151933896581307870995504809167187121845217663591424456269657571099845771361376355761685243980722960484855532562977198709874585454948694214565540314515555141461370529807211406632859904517561984050200883636145692758881464518335905085142229275535582481063228971648591980472694393149324656078702587272750129379644638223878169981804456579239042493415322312655571619750621537822376322833227408582409394297749316141712304977648302764043213309445812575570407678431051967624868991149071958049303568456469570692497198774107276842607196631101097753600010699128393987943254321436076555171012215168049044893777683857738321639213162107431121414229376981503566694916865876600176415103473370942355915240744039038239826389903580741505744692355084390875234933566264858187519036699237275738487818293526494713433953949700797132453737738277145890962934842999506945198077778802383792365750807869902292728525533394603736612757688842306994731118971716907820403643755286978767317740659473180443721003124240944871643658746230561001445918614554181213958874245174672223718523497070565911410060941245435049854831785217608448162154486442176193632599592924228207843222754221403324613301551535510619540282757758997117021962683800045885605167760751268609476767929659748046480855606144440414161117219681287127484548444702957144293942105237591431462867290865776443724010342125210473276182351612743862467784785883648604918948676927704885844779334782955435629016983618981979816665083783849815122220273940819635734600514028372294764869866051382110337644111444339237318253258509801972981812858778660446319323720569616939500918100029425477980983900191109039465618424739752564790739373248409155648991008143127089232573998892782921513618317647016731320904899557180667323465408662085405151557241283369792976731802598560341243687103402009746081430879072557952507121340724703809915083227984047635354476110039031829776080107454432858645463507011955781017285071572692267621119999295152743179118873979663751652367258790023431810185915758666994711811528715600103041586541969112105793833698738870112423516465093604104385879953043991781801036861959532773210168217129196749876383326450926291287118867853607941289385642311424349167355777721747312722998578461040536305804382565354729761857542070337321997527413704805815832831493462139062540721956000232709675563117782450684330537271132515038560904445148020395173178383923383440435460023819876301363814101346845210741980723118089759032675728847427143574667419465826199578122405537757896090882442069512112618049211671273315945305139386405289629159447893109419807835589390392977112845376293659634419239550673819885718509656356715278643825876699768052479493204541984574293865274521002218995829637801942639914517147292500397300164982244966648098227098641716973240555334580656061490689010933779075707536713077576153981232946839599468478608900187740294774228950359292387170193882585528747654303099267068006853534001215502165572848739371231107911304414933797891614825834033853028662194437306307885017722338441419373865802312483330661847510724904042776153030866177795363422301783574479372906552302275959172075342143449929465142733889302717767604815279071877755718477946692853213367478659122096925636166093053062318840848511926929542921252607380292068913104128713120207237016125709837385675248454418888166215793316288368260014862517096624988576360679489619601068430563830250539481803551952653406605150261971576684535247313356813966186767405822504636333055915160913853892233731289633222299751747372242093006662861485673773075487259167382604411364648397386753922631163615434805743114860619029754510572740183625292674515775562077988942587517879720060811483251661179916148336264287980161617678286574985304350783132994000094106942145589069318972817328262349074388997330501167046862467313702508265355128977857350995077526646897906172869307662438881225131817912017520732318311517445922581834430374532313376311433019438590358070709922298641206270727786390769063971180692155490879569347455098411259572472858347252034602484360540619188938540435057820643345549745194198188240723093788017291921984977678315347350610927180470948289788024168472776749485304503406100253747435177803358246169368836376313607085015561085758751596354541293765076843429084631273690390702760168428376161147585244585524047443241932219467486857733487029742921338881722759634284863478039618709178188809654822342730316401220939072218868942857974541886098314946515782849116300679674844112864952485302262882998693875926362711608018715277833976888384232902570372650056247323007632564733119757298404328412971270630573601667312358225808968171816109811663979373370780890679158369441611943465097785528107568639408045763587155389737115145853646736595319436359103318584560158992588883272414088761687488405555948402885238342088722216665117585588892050204710029870661448116405028405305236550436991590689659342861660626843324396059301996553153590981528580561581506220778098199158056313499070443454322451492780973392026422609409499967773022209789147044398912357009888805667440888027266733003588092118281135345714690139718899084659566202503933323901509893610008694872125074641668348607015984489416061187598217116389693332270436569820053492522784063707541730101830601052850672985120011426546381232227990135202351797062854588618293439792142676745802406098775826458505268534464867070540186445580943089010195615338084337564016997653163422658056703332896914618829296255608913517830950698870669612080369298279546324348502035304041393245331717876856504436336936048767970482252247015711896187232259757895877127444519619433098485337470802549042463605436716761211204982633042275468384829627260451764022993818158712128410567584298875960199483675161969891700151428616278271585351627657802088526254786816102921095930317129646015182189041456243770628882344190429411479041194851045667536704745418819490129230500105209151467340413328771315515923525235863275233407915529023188791343357995986318089292609267901433368306364799678418851057637837323731427252739683409648700030316809162670108942751302318869072412821474127385817516485353830634313773792857615258753475414485663094972166874592880431476995773677794925933631204633649216083977603126935535431667054091467427953850142187182495563909826801680003195797749287841797457070644581918108909545419586542718205807209508206506882119335681680934486426054404749928200020275019252379963852462540699644278694452398992119407879154749208219390139283063698061882531543537350198163241935005702976412966367935717962094672661165874952307521946193534937150417116553282108219539217479586797314223951897937040806545045069858114540918266845382966876242790943792800033620414201000263739086926767007433299263818952819377560827292658590897522774672602996114401524947482675891270604772895968797675899004156662273256894342408009213922361031056226231704910512642835283717207009394542041622210633593110828950177458829631448878025685516806843452226067301355391627000697956058139446357917792790556297552532803702420045368799055068145428634517115399888280896147696434796048582640385445251374571298171046426876186393172639119512791827960378577606640530261206591852103768387177661704606944501522539369756119755328438869931289407491960824445670247402365436632986799283949178988487329817633337781240100624760845086843506968366397237125310535484567450595828341637192294313619400665103558212440971624510097524275723784383285788278294236717152620042074700346705175899127019616682162485364530211784506536891579644385265939912073254588847790096478904034957194123588334969901329553835060305305369477012991769267533618256190522879083472291111413722848880150207932452986285312767793589508079435333680063606707315071367888236050423677301758659806379433843411623029263945638846114525744859983116243757705721278360689717263282262283579821233538497568568034526511153069826714163186516380531404012337626235212857285033212127347329704055678387033146445114593379123004256202506091728110586990390016420899861082517107034204156505691285259174372316133863123582861930511879148561845677507282174386478318574435940620101017077807806964724298689287028433946003237428866234258606741079840747624122144961791772419363785080059434078172081838866112064375948200917768742012118646063565116678061926026125254218219652270266540212881775201775101226224549832203621951835291620180229295977395400133462259208606937234576652185613663794503361530452413259560563993560883870645489053001879222572482651667245797883753467195071381780722812468910059413916718740150402898006133282536712102534175265424970880673135093325955115969404148329612037755159261726298447677344262066982119913495693615696338251453442408191293340731715249747514798857934271311182846692974540042849906494175145761760113697995169911281156858029909196678449217739670628403634741455099979688222645876468338649652710544678531736061874011607223138573696617589806832234441494179573275997079799875027087347086458891245485799926270861371057567966836563982967314641831193705894646753752231136931644268930097973877087294686423783162812050002811387176567780798141094197951287678979058622651952203920175156650970373576101435046491263506765918189199301361622918850440545753040439047330302628808365941518001273534206011665427271350306504600567572859208817101124214786811894929697310570567612545738910453438699807471871198917612352073160498307070445845788465451423305731252694277789288719835454553305763334931478600381700696978326116386059680792700981994194167536728749628753560806252730068428549344135833177659619610064864687199669360046041063540875237920908087431927431453401317558940663448240394464804671738739713893643154443479915199523659627327410025254740137045268438995655864349835196877066876938521391648299955092038970225791278109843988919842060842848231062298085982994400473647543362400412067372703875862658226609582032114783941251508593741458154544151080830778294664101955310714313224662547760198738090610899367766880577765793981817807365449207140741882122550480919228576291048246621274890873056655492172821718220085333607985821659188586890880239393442088467161405644534114113579380122573872147063276482567526034611054363763472332684430677879197900942948949294949740005366614025078178496797258450738451576308280403611074180456312409463073318936517826100822642603236982348404917019804608398182450242152611773932783364691320879453847224942337171094902815255410392456923839818025632815646938206607230419108204876004350688269463390826738159566507097635619136040626392435271700214065611962378256320675582239329441650853593056284710232180425261415558856847822052910253216450406864796242086894216981203495385950160355859933946328556947648246869767916558467874074742667996401442883598738842035785440041483266431504221106146713503370175936158036638745066679035415840479885971484740742060736579696715520186344512563462789522123756080010571866534872511469259546647785202113944762755281681364963553218009322421969229441281312871243216080555352910073119667735527326964243886583008647267775730942039230222420203257715096214990210266707429199128972480930096915191689589562144939373589053763609852695139298457183853360730649039153629322602645869224483945455090362038916974020866359080300237072024200950349652598850005520288772951905063073391378990053612489049817396744510026443081169741208206592481730954091740932166231966290350075863256447916705000213768914411394297307185564926050817937572516979683275771146795287616516245428585482543301174162920978396571348323188910892892791900231247832994548930278880340367987975674417153686622335497788247108616626818198750393688434741221466246291930954465623614274614514226972756525017744962589464180823890068903616440302567320078054881611079395416273481795688458981104227423131351835087778873701998161071536138470232833520970773720575401317427193126786037662387914252589936048846475075399465978754349671403083741294592657588699914254960303206290040927777199080845622311185460034194083755066653869061256153064394276271950186157923785871429482439124407030623239647521496887680944736753718289746082894477827431556108359731509066958868313700421351689635678243442170294797512792624460507837524441310981180204513694550340171857033379208483743129938716202509351001659022907995987371447703856574901058722938825771666929358417612344372702870716061654393468830451948147038069112306596542632916815885169121434143685380354538490077722139045415484942111872264923702405184104240903878054994414525025492711434432824568557024270572701787915332567443010262672729565327552280968785472835704256404192519205811833420266121195826693682155634972393757836965404760162219698744888802486817500347173175904676552359422161320741571190573393311916264574783963732233638578624468912628971807175595607472650155635933528655013241336078264773909774299108089747204049459578865352973560233345273953529137857455117212062147028972083625546166613764165101600873445297960739357908141178390731227663495822180602932535338833170926496924170031682880100008763391178448906033591652801633821195599267161329455164411487827196770572414970220982872716435598528154495715253504667884184255515573874899031469430606597511626724753371015635574086951460573373805124415047355663739528574036083980205601956027579582496534289571801001466701197845659906785194802162268941956702971521460399377855465813654640992379646965803006980081849603411665476818026702745957776111655886082860919516539149051293875027305061058481028684543264424559439571421675593321448723017631762139745170267464764465150319631389687317440496364212865056886017259346179571146968098428163399834006913736643694510647839213988970487168859702281862710408273532336645081521218684438468993959104551660857507264375065828366038243174237876194158341659741502366844316980380248313074773249077359978930549052030578191543290088177631320441187670158699289515071765357667942880815710599651391556828199734496707298059590263996482690249746587400709192384690842510895837202519186098761963428068054293041812158387739141297932634900417231453507878714190430752837585581791104039586385877730690459648041118424354149515240616823799666022344241508539421086707770180024052434654856189589543424060285675781133713479046718589155068369215636921042704501045341083666363040964623634074556633704075343811419832495254724768402893893438635508399488397859349485106021752060955133211566748996666302092163130267506585084214282382966375817398797317053127971715468643917573276217560040421547378703048216789126030244337748851192410297231220313093168279947361149957456799376821279672825960905056574975717341594197693473690552836582316900927759656613365920983067689005326460180992832040393310252340872162762060635173812417992309405561310679714194570724495542579222267160498836278198152689031352859647710633714331480027533426284755330570881346835269862432170400452572623497839411179382266321565056187176878713983435473279811732765225197930542113213170411805573528731488112385574039193207840030168212579492561705799842268253363432536580113524824694711688708677659982684899286868928424555269750132254782722486823206861046063943716981029374159071504272252002919412796271395842182424722559502644863247241991144311640957867491630386132878953585510262640464059297764692472520675921378195851536843780376283106548867008272630535489766869443606841346629886396312449704242016608858063709827177951065852829515798220223537282374573775128130817675451652457698019407954984767406384570870109261863736362237891352331888639580961411940485427910948601874114188671510538913080723277020578472107779395546458861368356475200300755970457602469395825113733959436387710108430238307510724770262042989489933126948680292474814340608207151801205938139893964257892839502694448806216726317432705395915199067210385139713145477505763507522710899665233385781409741322162446300230518620676432616031010358311874237020469666102381509473139666231905442683386560206178808519724109927189638046644484329368686349600810155219847134785501011213262970430522589552851142244277137575607669722640058051024250565550866764905486262213364908080764619362337367066362741559992455976086722230571817549447550737362323661853989868394192963674916317711338362573500075007427483156127567619667984120467908920829842004766415550620969741181227768157462503808524133021776705243621627078142548882565511822161958931486133408828762572945718722352010894264222994710156068124043542965768584186244022191659614657086969272681241331960561173346092673075134601342567215699563507790055595342872441485666408938426086592808600189001635345878094135945451300818824414334679461140038662209167128890206878999155520891733742263701184444943183493169384123344966320755454110181025570113460086570132458479680588054777511077927281773624113340364085089933127553817146291363385506099810420157220873038754350915658405072537057244035767338325525412897012732823344047796190712276350345969390554362665859745016922971113398631327036298496667949497948378713021157936961882518192847662387937037890469886043414410189868278241860162633549077724199459417235074841782502194938862028719741637717443961487365473551076867647187515985242662603339962954247085190852325997674185796655782919084927440134227852331984896007060886280109841281637288434231894648212891576199481240677751671266008525737871949464794078909305901391801156515131699802490661456741310630056899669278242885269557224544503956304957954899729100117403435605886987263931015518975311845467016709522175080095599165137756985444983819923295802988850998277263849053126265198284061094713084700374474469581294271902193006823198264383957634210381431752766446738282818188596108826366802292593218662206729807728321375684389142647618608504505400408356800589395418729656321571762967569665041211801032091505797766399285361050140352648292386840134179846441024999032852670427825884712768600311018567134738233546301948821511085067080517950461924270448805115631017398207419371932393638500382726196299084258790912158708386911172574014812951854220797580758859618162256372342089014965280015613068793431112695645248664292411453109394459773382440689121708775727114826075905159900527135722248772308857209665771139061652969879277265999801279230471090394054439895279646714018214709103974389836835166795848126011631479216146141650865316992009804650188020121807673651479824270947063258630417498289259037657635854495619389371815926821805051211513199382858248467891143714359298943032078429389243485001093777994692089140396280943933852734456858588037216011380590083768110005767436070021971894265313458840435941368338062024849543703687526077457972984857649567976916371833642891672671845677052101218062875349752170559682902312289693818488540818766002257627432390110071732584598936276552538524901630456691465852365092204507643515715597661077163471932073516438807785850038229821551717208286384141257260330016283472866179544716186455236317691185483055812857253090965690526617165977144460218339369640173984216854063064773964832331709496790909298791207490937565398752702669713216605066687387363025296686571435731998551048056832391222936953057938029428216836274805834880302255811664554661656111495826969546193829247322298224168103347502990993797437614411943078672202787370211553366551515574808785252778356263370184291222690685121962514987012855432098460124873469176023305502315330882701030058692723085650640889645091306556654868130671113091362890971197943252845967750020735028682132193257122727048592203368218686751396635052698214272208034649365009573317342867297813153669632414127446927384787781737943203821962372234773623363792368409627287030145385991454241102972335137082989794973317008010088110065956676931152689238468937996832746739281162667980036556862176398227421830411791904898712266229506702410075897269088340622757125774123801067417108725491120159923679633018555023852729511487548950987585303824873931636596886396455403521122005771193497594849168712781120077727005699929375974605793999335658658469448736288717441009005707518772433955223005178125002582757810594310580461708522440825834519830671233807563080381156094043213856910212703234132766272893816654891323165784885241554429478096762615515061516867590349527322847475354526504926243701998796080774549807335403472291862695232838499803273496405903347335386022993838828295969458724511037136440859829262845632099184814437689229184267923924728942807098040686367491464453792968107143422777262400832110429025241528710094939952906733934016798210154053835777998060507678837290340686813405813064546704323558277125354210530840672589036340544520114130738896794921906617879266394651255163020692176543054297251810021333126591481031594874756798220478962282113197091976851472750194708756213659271234106815323296978533138892978663730512173735232711117603526550215592807762191206089263959635216026883470492652093020848167169871897905136559620190008803593836296967613789648595021686440482097535726217398395489811746235920581163595704149396421975383553028478618262332103060721628103990227818945766978061022951655764020673442772962375512963774885421859825797471607726146372526429239119366850201865452158864470406487871794424049216764541848802965155744653366669935011490216970137814241499642216427922464270501435919188702849934159699019294507484247096157584420242083314072376709340130173016142833589417186970652704140101976477414569868437455487715620558878987147903475012662529231458733113915781092412673863314761857341645139402356553863694709639889877050479342183064021444801217216664583369981700126022876914440934264919776609285036887681436415473987922263343641338395071790740772112842356138023476760476371480184149093833057991052701110503534570803398149218546494941808121551728725424818790821283812556806072761642846496904723751687016445703365509411308457327763062310903304562304557136087458710220947006228875192910752634742994474294931258923313433073385921416145718214332715051304992566974037384864213940620209756161952265766932384424063272640671252607796257042578432527910401859638672604310788752184040712273429830440536610551719681075009771454344091969182312813637626981336788386468314418485463991524276987914240811438248320230516957144651825844896376862328434027341759938099366880854297138172863619264020752447124480925990193161766781435937697342703008864204540948934397891658358421743481976280121481383821882155965508462057692089080367832799052242205813636569475299365703952697951207653566329414590204162738694736072462356848252442041046776999717446096961333581767701948113996370109441113652339416802278540546859868358063419600637816887998472654389991033450610287332066080644638141629304029793526404539553288642684113786688821281044299728090625618078886243562497244801178519203029584429703538811844930270783314438528178913187828373373906476912877613539820335261796954965581175864749611824740453489591409520855995079279020239675006816021330961139595331404916377202816732561873411024033051055631339682980907347645360362636695380090781904002332767640112415141842675840458831110064725085401624452329922049469425434018777591837816731362135560133716725944319119594791670231945731661913738060490965820119068338015209352133626329709081947509489522891674753279731532662317631146168609049608132391311865399627393719557964769256605191950271809747983709339266530233762382321104463636545422316326836798204866234440352423808475825877971429386727019705430091976572552330146987228420194536475565233724548041213751369013172402300081227226179771681042982907485558609014578328040581212839245802529805339120761202210700972418236255742244616289145457040647271901471797744240072200528088359278544933806887672130464918498361278942354865488755828933566799634510830401874322487950600323430021256229974781969309431285596097353767145962323422433175735372848762509701350637573889872822387388852753371242434649388406415075365835879135892672460815198210804657696867520708204891020107696038127966592056921027554579962316345811640531661447370784156985816454136583495387566952899099164909717077152192663150648386715473740293997194182416772541426898896586079899033263091315600361641548543481725020836108560605072322144369651286826465364237991671456250276133788473996954061388913060315386707301730908538651905229937816305447422181255576397953053661981052305071167554039167781155871394366839954674652417447912897949760753625158174107999813741014518657316971712611009451247218884859813802340698227289711871418463809613682243265491969735366315501662337128307665880237693779572782190920079038364025113801624704453124111946914182204526880928424064277588852295965948057951292770348386442138079983703608363510295528892147275701465230282233558414056841664755253856695734035708684920503183650742103702000410223408997910933493358468863788340529656979402340411784190052767583858529799312050192432931178748937711680867901634587022440157057297721055702551327479376688192734469055995741423251548622175455818023894489431146052379386325138716496339557014032889017341747994849013536935076626242709326738042207712281823010942743369086972774523952198033297345571960176328556723813984483192808376560488383068743774173512060850644910678394249736145911890472930828301889462509733509665536648381487287832979003856911055995932078705871643723553077485164796401658875156136549388868267127929138840115940196420184281895773617460937764501793929842540149223948112946787064690371916828168934751171778291136212548122120735319710206082860746649938355596412351563081573001656328793111569757904454176686346546957119938730350909498646002060645137089504595634627982017351178357329680217339242227738461490064324466219160256977500728259949839138130077822467301070928407855786878146250205640776356125207650754802845130924147360224745046839879450392148425281873147694060551838559934753409330641976931803322129393912155528709152506942722735652614230908435254908733956759769920097626317937660079719294817991342536163913761088992076082303260572712515044442828569929985140551096284693860895972187821469833421669872492177343571617201278740692187563495226429987972859013033124346940791193967179560398252174655861522516772538321798167778633054648980303436132882656502563328900113398765029312048342942546535711964816136557879350300629493107894510628027682694415518544580080288622404568742276415176232969324752349949642576769258120640224128120957278940901797663762566500044311383465371969443571556104728663168030052757661554086638580073514714237160475563521296673736617040380056274788438817759257156719691038428462384478722514731675936167672801858112936571651219401914204799908419242188108701289398374177097672726717836863488439551004015393302922755425942699631691314542268042899168864705280486435119004482091217078638104005698376158582108112941334250630423329739677836645593343743398996568600200251997653375808631592858885392211657125006457715298471962201895689181565608803441977047961358872052822114325748119397316297915408843426190475974666700003720851265935017771649422099654804207536543928345752764025152860582106519143675842148549435336744805693883174328523980078828405752995774044577780243128048822664742156257359691263845000655192305848630989274007817645001804561998232714895779182102590156758592362620447459815867329789581564578932689532084685539145587541080073782723781264852899034301690762728750908347926434405016041492277895741070741945966983391286873192337458741874073202967526158815738185121036975033231599060591153555761208674282261052426952731329803845157976365403112589105734567977876022833690532836332936653041294499816745753950666703971571115908551374069569596153481644401941152577993599112703710353259690715170160438358664186751026415879948056321605640531654051454000299800768609814391457685442547154879344441408129639092775893680069926811676350640365867851377383789366757883893080305130647848370289815434625583093075397939359637375250804845006689451026166343237757099075798172322835834226825222701098740674838077176816256819729860296436668071094393329610658690790879083823303181298595537780992899838778285473483848717930729660654286962288529406669725504428751434980906234131003752535310361873054675898013057848550416067981981077041751160864916473884576894061917600859738475405696435837596100999108163774049544020043588743304508263701334474702486244906108408105568043212118150846848817969628096120869960401468155339227481941546342669018351890279047629491183599845149747276014421637708163020249678857917038615455091113379394052206792337056244553092759478126252778655788717644191260719218668948132505879081383182457387538240515887171603824705985194540246569009497674903941620520667992783922137461552392082342546074270340681964534550647505309643664379902439325694274583486607125942527963922468780814647037038287461969937172646531433218636465953954395660048833040724001374622683868859473290996378245867558580902193013026182873515100266100340851371113609240313427853742774333117885537372614052191345910900889038036031287023665953452302824202574809368285954826670453207180264596208098481149680000096288987826285559048005924639159958402108108855895639313514842832101881070294662619129281287734337694354838577612672124584672421464214941512112415630842020322180206271164275596711569279752926699662844022094068918876236991247009234287854652249388411351764149814884031139474464122459162270938385670133026503178726694234399881044568239571338962892248032441808353747850493412042014411437806011747438812746463394917050143336860292885225212899262794367168703622081942203553482084880002975654065464971044190315534356705112816375948264482041455180291786768369611074389383779907569085390508299503984759073030770191434945397964043503698378005206139439055536440701513513874985543967005931420067513636846064488946761776153458819677692104993075351145027618787760224583009046564765632020165238669129537518118833934301907409645086840848923509759042136249672966725413196470724751996972711584253945294901050916803089225258839761809198155292808462853436864480020859970690517188024186486104156040180679384506043007889047875944703518647560009742678361151809786036709313269233390462258886735230433805794426891789383878815089227287238368466412410389554483412907293951810595273245596693508016469260475935382162744713382571658241416540609392637476224048634820910794084348355172238049533021770552363224234719779145609666422028073709206192513861177417686240319558856882243032614826859305536536951928325839536386361840738175224183122052520307616113548384906277928438567258733024946322242286381560746311853286150523014936218691433917463207484561786834142999222335033624833141279661353301886997336330982179362982284728383914265847722723018483558656579486997802427535549370300408994246366748249109662677892237954377714209752239019493441958014411601349936322126437641598659535566000852567669880177744957009442899888954281825194087551283706780100220563534418424086793263670045520417502463217748023808637863087695045199408194729019489106299764372769840826723277668131907282475247303744569735671805864018686820594510294493803458743255365056560691203002513951119892646112035544810862732640309160791682150063242419510975911583268001041731104254024820662470782797291405412226560210321302849859699125369246068187179429527593543112361686807675903496444235221667286738094895603243279522902893332570297786369005150293250721918938109154188722842788526741804092544138694746015201530356736789561866171560395887586085165903671719650793156515898157136551792384325313849405073609851385797839629446635466134256020186382213800324509268299115330809013410380274370569417875374933896681682603613524367618031970606729443967059407223912338651696671964200428581869834818052883166357074842793931400783370249268595509731199867472650012354837834313803284178052768122100704790629272648030606257674267012186518378854726422494721160853679078031213086207655534848310547143986760683364775227341746804172935649584183744252457498947636140969856399427988284589774176048885004877990549114453981493696631980043360782883515173541025536074894732374229485764471243993611018885851682200113165608916233887229456084681572779815715906630313155212675852238949962685700773533099154200117704334221372603743738316767154198968350584149489165583838185887617876346452142457382428686940863242774388116199081755383918012811572392617010790045591609146944181800693774728670234105284153099462310875811212245919524609197074127260853251186619809424050954726829303243975167207027018958296344220500782541221691715091796915840666871702853292623399623056383732017998248907641135788429766606702598254923584059370363351429575715943354081660414140652328544063720651585247791689461260988627076018457009979874439378541302852712590528575016097261500767256289686382507315901338800336363706157866316481073244442691367884198212699759808068087866367045399036462702056698948974988520745160190795552014547913736560078298731107391536281713682823770655592028736897434406378535154972513091253445779458446069454388159752963634474809193924551549196519307918766977664972288981819795033792457307110739946346882159699390814379220733442211059634100267867247757870766851305866089792699630182070572700029291952605586895036870142492791990320091243320643201010985423477536142600748742751999495310581008922976429159491596312499164282478604981923498383131230602637396882474470491403333305143504672709173514693193766402369454069005131081162160346621628366025896922366312233544752208136284444730638954981331747670218335824203482418879192511052742369580114309191789948474105608347413810235933300972257667365262206510863959262912853738002887876268644728085039732086549022455758974598494215047401317413564105908704266205906946869693532916705561155828621005116975918672961627576400192479120068720405416758861584910468900835447208296252010374481527582985551078255981225181348538191665170855097665597679051473550773998954730755753193497066879783469705301547495231813116366711495027706010474534725411405542861455578540098697729815490750968816861996609929901182295514542804146020126998593387019902824153758978324998132162278327417997514621487273406681790695792735605993855696579024855802806038026751066247330333895569371944966363477725116487744118177580782114262809977484881278891052169050038042201298197573275206864263326664926904466428257029312195739992387772817277831364600396453847197648245976474719476938203212617775140141150229816687613916093417192682355734025437026046979498439120923942930040986223914360177574876168337373882179916913208528057980057113518598158595249058703267833919846320562405661944798484879221695912913570634962365140587079163840684946063656906032857317999868025278221819268293553435714842437639857443225197282693464169847184125383955057743297477838820701463135426769462269614875790352560405593469446722116411393894603405198282186465548852847106876866947436922132296602794991630031302938050509354570961630043689705123480950342778669069536464899183109044983378945205619928392750650101129089142402980123502344918672433207916923821517488298224907387382517933763924673536159240454288842666123111738543885476682518370432779530484891672341217577944915414751916439415611148260032594288722158526326874147306674485617429983172472034063422062699189190342597971413711880560177325770798743106643755258261771427660503175219931889325219381687714146205623112679722932135323404612380733534640283673254541791345781559572662551994414513713454897235140290078276576390198018038782256832959081356473998633899099960778806051974310137128494068246844338198762007586869616021399203806350501528908701034169548786515705295994151530796007142782090082025543988961614201987565019383331575997628501638507507865427496553528490615499711530887303355642547562003091094844136047946427417178735908401591373946080316789565959333543027319774792601657055732650928257812765222413000209611340815414488608623553711083545797011961727349166474940120217079782921599339715654463015461922605330982989844563186115360626835799975069821950689947237979881918445250035208701795158924766116243300077047185133481656853503045135871371861757899314530638873194814925205045040454536458120381848547743461999880485504462550904818645456231494571552133021035152874156309419886754587503679993293064562182002650531407347011040034888826680161435652654228320694782293189136455467593594017894971153158556263952884741848876356122746387889985183461413962505754896962023277269970461395815298858079343376618692826783552093026248519012134324804147117679836549009518006583148629455656750560810596033462775095203162753006970977122504523925402640307946114715742549712306398866778172823373679390828456164830201588352442450634141676256391017538470932503080328737310979187236351536819727419019075137615132898724236339230457157916301521977075764995015791384134041204007549880379565557162860656185746792220892815147326288135929787631547601603105514261487315293237166533605370605401877900016291751782441150856981749174197282350352269115919959356498761197702675746948113084938483568921149094523911468174888817620847151743557048710619996086705413270670847264936731664881582029013856475147565314205204862691322035528497284904173270350950469849239714111653114322778371111641433121556740058128623879212827669249124504454857885279256553700755325524548847896765240755490516769103616908025293882611896382164171465179226743728287192185315955854559714168244341584108898302160283223882672827310627262186130215543308018171033954974741942847474735041573446232692196814846376849865392229067253304439239915137758785541113430626693616339791229619064865463880924901779350820375475258733501416718824487643550215729501193596424934426519136527553030007700236051106807917282121509563254391973211111187363661593334517030483724884048248221124676982221127390985448771295899472864420163633953433174078029723496443474991932997443469244565711524059067551372212326640469653708704056404792645689998331006645724899835808836040534908313495941581657634291356923021370744017699983706832824670849192163680753211865907397492660118532732215551113421374906707091638301207201612012657924592928360530471334976351644294679957653341084917274356573749303901572884169350018588886905013257934263587682105583227356638485740700208658513084746867433767824044875847272074092121573261404259863443241637277650976807127225205331879715584557530211563802645106119104306964089392754384132899715867074874137790546282554925548002761459030143239919802920640370666262495659765566009497119133859528809001781014742278816622704196191957055062431761256237120403820747253339350941940532917117245829312568096129790833622031652998650882507201739650101676547313114933078859077211868318691163186269007539719839148033269513423512630373595046038407224752187759473114010627430624101388990667334946468896798454600030616949534817396453384330225940738877950939693235352972167237090664494525355486688178907061968975919436804089963715102637528850409572114251783587284556069476120474174756919179235458813878360479394263873816488472569739990122510700584728608905577374263107334363699828639539129016531630616168453751729203089144745951013464011041675479918097116644641697851117356332334345620568100114506919299122721650450065900153227511718917945487610857554099145142238101295359745602449810322393071848924378655483340666336405667020444719338121334804121724758437747425831011207343751321900782316529208661926501839971313595419580377213553742834618394104094764615640782087386644000812733755697646001172025073545921558952197887472746129333048970078547781410872135749898937532602870407315153542900743272407107841916531553438714023991515132157026005986263810200395055890705812209607671708089308430286245253308905352228850397687010829305034934690500265605971573316715960790244356219147590691398176870695512425112097334969472793032243920396829588753578430883594926365525730950478103416559129221332451747436579233739957528066275231314683943387744836995550231480363797334716047150570449338870293441046680189303649412200456426722233665284515432890710351744609608491224071937702235108830427957962719598401930835623920321457682152420834758131898428308285696302809139868085767595897175428126956083663690585207001679532140296030038571405842626925544822312326426981289510079004924723578114547481755393557524688268673404999933009868333959861172515412586308493148537312247630616937184323308168831569165305168263334091178537321676990847681388332497738400385589343773364232426972739272202297104704601902104326408362109700695327891828605206428030461780271254020448961028047310655901559062926763732105151186941981380878888716694303073487176322580154944962445066692766570311318613166798649738778123780781190240147196446714131400012134953615525358498216904797231762896792832735317959147097371310961817776791723892107204188715559337089590804675746365014459965065897815971128381107179337364923004646909160788591396379835174334725881028042412405702469772614646616273685037439258987866775306637981352186416682622158361352731422095586557834147468234651867517987774902256864382807821003676096625284882728016750093550943792039709292160152101390152297890286168650751548792719844150972736388027978464898500531962219943819781837976234697493302685399161979881194564494726290826174894007581763521774480122386496816784748809825795157580602976881639812742699646440025181041013179128519882288295858597727544779701437270129803333270585914071983881902953087578002285128072432010063727219341036838514498703363881265212486503487448598920692563696378130903432873209599614260453795337273782907357607033920563111441418262273220922798520278064991398399230436459426607901681642164879932646730731731861813195044602047571108834429763967924564484520253299001129422501357974500820436260807239542850321298427492919837638422167577505444357178844120763070941695473921110370570662716983321698614570728939487196714889339597242978016116924798414535512604175843685463328031666226783322678494902596543289865655422726457824596385121659973865480997290439258466675196143957759427183629898845757957259794107648745217369580798337695560846829674545071230449944354133185551287189466389002884260138119379052828426210094726452507741570469447917133624977996499637290405424164071437706256941857071570009121045855991980269130319738891573245425757474396472206947035248597471462866880909722686357084452532397221603882382967443321873095029739313324858034116042992409750958378191401000510461423569442813981049512597911577641161738635693717481222043654978160766884733946189412648068904261094187796884147461927842578118984041209329753726577153860460482584067470224610205722791273806361686279123901900367124008966916845532503423998237394682394294571531776357952275238178914657930198004300832641399908060707830585836077993077968994650266477689775101189168572007742962528279008641647170503399106268198482835814962419343656162288350159012167718016210236181635917594375426113365686485298211477608661862816338942446437335062783773833104793603840511634789229951806246928335500138079922400446340312827091548400322481310605951357945853248999481052917018495276986396385154924507730098930600564931614568172991357473017559229309945449629306987924599836594155304145573965319157311749052916309865167263126887974985838652725663879745245098755386163793650580318780713965503953962671175021448811533024907804080458260398423432985069094608792481349878573038795902048024444881146456742959763383609589499636328024727011273519776227253401392387904785405688484615402196986155517010505388280788158508653795364316710302829586747516109013350841467592101209029946694966089602742919512887789269399788459414429565473262050227249228550750866903334390982540362379868892199927120240221452939266709458290284576141881585625989549705317363932540824694142682031051087485409724876061958239919625982459533433554774343044562302142800510129588628835717989934615460355376356448991809518265437401776075799709497562048189128146468420987574851579402084402752437577673865731765226757143690169081554243242972861842165536615515398561748501592611164208023516668821732691294210945438097678543977638882786846718374241213755249002863134622689396610275786784067760354281916640178406371366790618645858743417066685016735097432015323724636628924137182702448470833616787083771182049496828315530821413584883800416934758740616171540125040811205851781680027279157887540242229296393322128022420655761687727551067270475695302336482326150562520158276652341801551812550577185000103658778231095845207509721928077270850626697239139548295718846886517300707773808942308426828573275317668366257349683670738715519545470291473410327754518788327120186819126870587366928043749551057364673000775133612779964610107798523010138398487655463110511237856892054869837033010744888214251113973212928508604805068726656460816914538151076955875321603030165426349484595911079024490578131911823553758717185034568776526099873350272995288044758728120981952944671351769406117318311279690716398319807702461080954022452059488046853603891119964787317466652006407784631892597857059675260630451729395230023181733699652366791596097143352644531010429194403547945194022759080313534135051915289729678975501395706703345411604562645687771051264254681613047385271872146453966151496572654790070017951966257631487152707041429332166224098172199743996352376609184454969733593567204355362698789927747074197119262321938502327295237356457040071649085082184827082080610634992185245711543181107790799049543248548401767837163573802681352035448779322174467300545662218791070008802812373538920538921099147297969321261383203109646848478932984537087150866566523323735271009413274340607098624822283277377547058961553911008633010927011506306255859970154764548108967402000799780884022362589285313694029938410092615114678122910798853548831460176155083298862913033396809482706731429748067725509310204582537486067319795309963197385274159592545393622754469256997150056460761576401437366074964859706798489481814486585861444604168963505310877793304371504459471850154797353146310612781532429635867152848377646842957772718519749831846329858388055473526470819182671126828797147339431375616210579271465834132473802408108167724121248227514349917816802005758028472060503502081159441086368289297160164475402821018347286322541542081261730729975258981906665938172030664076470747544358154546354529768175070472768448896689198370339567141385499906317309183293143138308073908939877935625710117079894761768681777883136002600727029368776059523128779293638637216608639904339833587071814518919267086083054189803758709599029288652877498567770940881278460835185546558387929053110390974835396004070537402648750252194159906182054238040170430728362955445732168951016611003339513218970002700488810566266069273798581605176842540715264604612216498874634887908466409891696865068017198729730072348709733615954648767411501230837361830285741750073125229355718028244594368629444316193253409600906109496699727255156947935579957578432398504490544805697753272033644967838785233990569671721729737139763075745540869795997701289281349456870215618834339304622123901255911572116902824540881062498442065344631354802984896885900378564000832381669468737137577865725700365799075265075170314246056020586831346399137973183103634437512796402800158028636473547813062112791722664983165328083373769382030022940863922023745765138396530128695352832572204949895937242982262095179931715670331659311399352282267346190334975393502214029068697457250001032997967470542465146567934663780525565441416401953632454204557111940068046496734836089651768601551513945080065567501274782979583263625075611176283213142209892385991486674015980483978017032127621421463801636449862645469934640198277227045470181751348291075464951212240360996431845293346717179439804014342781594529590609218230569909691306767566710760060788283987175828819534459322934394581250888939163715649535677879588412417082884768838803508506683465080452854271793867650813109262053867648186695918412860689329191882199641919637154508870616274719275886610822021477707361153548673640701425087791246829812022183159804014970216691383428898929848917331608584123223934498323827644382813856313913399326861184275374321313140871340443978218996934584478895054696466031370024102264975728437885349196126805602385920636891348244023086856915119665573383053407797151685665669248396885369734141378717046506421823256419919853327920105433341095380681398820565770207947814589916099319657148687914022121368055611191823009720038325594437907228429698478337100229952663562939543534830971581644740501952535101560761393187677731130076946324533536389561206159977488780944175562921424874586895196306501144501061401927107099132867036807823833761517436374277443546889364339185388644841396724865886724104754077634072131082222980531306542456104927841275975142081510713745515878107132562770203329921223699936193731722076223621716067522121056825623243377473785205203884323198167685413788958073989281583584497334227580565599529404130323557534034181111309326128705777830748138125227749464579668196531579504414732641417239879689737422789647116176261126048416274377929134963373607942816047754413371663989192523481478477164192200449380958125507208573069003062698130997502379029727780110920529720110363930624066436999787951687777610276827092588619371757605421373392531957875994562208499401059524467939866636296430734527284337331949857009376130534304889851027118447740599000204091766993955050394509802565034797462223186911552612781565584906799082627185119537990355248351020513850261525653352958073262123620010532662091567923852769520904842199861853838968027782952518491948220240005002934037947239863638078636219959596832356505953684105999896925972142019445598136753085869984903578329273028259518881212493900671850125012627251636487263442300984659333502331226441988563551850406761258764429147737233225716174094083126591521157862637269435283939980863629084552667223078687400423933017705183392998567576780048754095191488376536230122201454566120696491609302362612961164500881483843644538306640053861854911111189756976116929805145340521913226272820311352599878499554041029603949768543927260383230025548305215474222180258255392177114886674085671528017285112165879454079767225447049534804246256761452044328840622641806878367397783162864912418287375855203432486799207834614127071160888973852908946142290825639618741783753805778367408079930721999949906664455542618836727407640819617461615218960046380879222678239951667522184490386675792283801867873082733926792246328463609414555008222212821997855575884451483551609746023351540704545229296047880152486826910043234591556944333946075303630953021836882791834393698002749988260136507435037796982931043132987857198810042575778753950866418687761867724790479387219034765326696383417113326797072087261011367028488327641462622663629570368319547723897637768308001242288131393487283005872834865776677766607964942891169677356034936668346223902959187671397154346630691513129589508462437683918124915397718505777768559757743264273278734814872641161928752976234403872674910880360756259755680883082189868680795385658882535813664020232870960542891800328542769391824049307843635862077508361461020222095890570107894669000108186213698096728501720309810359981537377369730914996267320620479035386865513087689276480772971569224978175999333590517614733289624291634876045165103696304302616595658217102418046470059240213239518202853083603335657921952810262650267940720569599093820479881004257387980448395029220225033053103869510460867879996530212356552552171080758152394202439802304284989745180076789953594688618313492432356915846782459749297847173037989297387091582003153951942063004684167736779053761098217997426581172571957537677819310491141153179895211279479510664607895831546181678589743030783833277914249081374829634007281428771394613911051855945241535950863695536316222518165631399610548695792392864820390448557971359865736659362636564477303812231271574131488417650280990658620844288557021307868131376507215338063859428822952150509863409276650395742848114351962765805744334596215443224845805879807072754433620027121463637503079965334356675354410565209716044744736254461338057621812778081735452110622537913870224692072591673501992401679357797413621630588884212941499245022600589757751310234260011434015037771655470528142854808372754919766998723603377612068375099576007800164784332677982526615324328743156209080543096819068211773927295970139700458985480079629154412507808153883662404846823092288379966588098768701686701707771396123897930997953148723905797016319485777124790042149202954751417526873944967058661859782543041220120636293693095236269747425005225543220590098146711841714505270546211532885078549210380777740063492610860834133137615214900474428526809344312857203073087932140901422455208730302797900834764453385546220090234866373503153064616861482606235160212056074503652921074009312834509664558765757555039706733139703721502436824710191144817028606717330823529574992201429054651856602246662814561476674584177500326573838548554469463651169305858396477447464014895342387787619235800206471259909246132183058586388284300582175325650868763691248645755285889099576852600294634960899792620961281118583854087048998085949338094437399839468915130785407316838989262642724915608563762049534276232390575515944961870613019932419658010845573791116855291627922286878688729682135160407810479397937181496058863302796742721152930012181039601423896019922824937413801075439419261120247351670144645550035826320561425391053793800803337523825476700781064088244518681666816158778365017808135296056852217917148934595356156366076538980461417071853386095197199079975276956998696170468149252695331839001278897934863871563297573562829925924742683691918510376862389154611112782176401227650598301884671773331970893252911359289235346933716906055133350281359815841629063707923304085264745225395369294324977799732779771041107147463168584050430138338390018722601992286793351715502870377526767048279137840448211843367296380389141402166173317582799860373427461736530364117457324549871283629541959321984824547310903830593329679545955415650763024976268161337728925350130737866138534593113568329759960202216624995390012690132925828166532341697507921212331882728085698170006448320500840634134532371826046794142730931899778808391310214196338626897802618946272219615941825814966463831608064873585902656723723853704779512041524823808384633206488695013121750524786355898300060082381417090764332044540524051338734821465496448912953253395996789021605190885874515030462803039994644423447904867780786946813944468986847747291898890419918504823500156332840998242441014230006407432569796368024408946405089994286599893115428745644535033622913245603672786956328766326172283286717651093792031882722953789666864896012658967926486969573170364143821694410306351617965124499406412075211437982319987088230506657797346795752741668933032576531168706702968247684324552798918997375204464367475396423319146234844774034709371503992933567844402150585243427588155301445534063732222565018700919742351154840488139653999075042217559532773255724538868122378335019576870994478333252337333540428825609536326843322584942861742019358946843509731429948380192955576571598279883169680557087920404255469010650415112675590551227037214457430353905200752552551316456282676269148931225002410352539834390732526990553121312451826033885376642158849871540805879726611844551585211518263905177559541487007855815089359649018658580211214058295894252921314758273134899053341142272839919248408795314098380657702262645519699833369564575427500010205954638166091896537048677775048182543035569298494148250488165355176165114973728241038733851543625884302089139524893260639811968536951395030299689491909019349789771610202981368347445883793762877318854746960685980152310393940879447954930631933022153153108569550977867507883088991065375513118764220061522427228346492584255118375043365715809267974987309543024441639443540726859313213770305979455278765713263840582762805141018276034632996967794278135829890762663462625717044194660355693165154003352589762718017623223803507451885971829433453116483879206479019612455768735590845104452447295109260574994530580000494471848495937371313032951592329147220234406257689228033084605910340510035640961992334486698626098423407640026667850621304141509645947841357819229211710677377361463672224139573173634342460239558461817338836755275306450963517591283964245486107549826993947564531622278702935952728460501815757956144629853769321822241284859730393251097426628760027298488303230950931289734283615320220133472002960712087771664718163082427021835952067153649562599218302187310415989237137597514104678100233364557939122860061611070064849407240204294521983972477934391521161990942467950609315329460124245212162058937581661912936361950949275434336527903334313183960819284744945716570365209297064682189940336387245114878238484946936950976858383124745688522972458548815465643660564822942324905787837580338241328123761025362414261697996381985710579802703738043976212730576696981868763514323313847588604226749910833109763796981460365182576100074759656771370607248165026611968343588826395217393591737722293467153827711610443792424774217725815842635403454509962161062879231958669267421860148653455181556419204707071341349492129020287578605197726370581435906721158749612098239131707601968214076114291567220791442953789597404152285036241526398106519628005094218907354458140977862960404480342954909357315884611291103965934080651145015624113457190248486669533566476896571603217147954719212413472094528475810281601283820911187812701802436547978885126830502511813113937295051152508768674419509719118844899893593015310642644604280276866678433277640511935498511554582317174323987466170298426561621441979666588989536442373009030872614148353472233118140932595063887077456877376471646804169579380391786312785512268586101053314711845209975558597707536656150224231977148085413343284060380148393705644498908247355966018090539276244481364661649210899852848837721306502604690466780118499189142935756388164304692167219456277276929618742804337218185882529222633073614130113990105831912121546190850016279869040645898401288745668673933805609520488760037937605883542454504475935154840196747433486065745866303025008738863236078276001743321972645709897761332706848764678580329569866850507736754393930411837370456239752828394505641824405626782016646329943519832024580268625425354379625528397397150122399748842241914809572581625028816946951160179216385797799720515708534496674817053006698957603509551755149520892432641228106631402867525955766845329361865261068732640448080292296080319190359952020773798518846077611147033923046242692400186845328184335201057547387454925159057607995959523799351072133988544382544019191134925422424529032820450496512276432318172836449831219548824774601263493715413572288590365730409600286668415870689294339584772779066617125842261396098994270894808609195742812522300352262522725998064249703929627104380353630811155739241543613259316722303494297090196070015156523228462585330120074130227424911377612872098583461796285426653722690226447778086960808393657503928657460075812344892153561353357096837898694585914937949561715957996115305142669508911761399952046899811603923406138969977124012773173170311686719436472198197657332748610987081152428845517532625196500759522318979773013250798275584251562348590741109553526851933153650516388426380155710746584538783957942227451837449798339371252053319206828321458195938221411968946483441591265602575316663843839542322480856726856245362835166951161111274653639529277057760487170648238777344160951161636990686607501635986441507441375639898675333307352642880460518343690960567200962228841177341938374291405385849985605083915180173164959673842080548024645960685810733389922971297561972908698321958260670481621028112212184877291345452268540618802528326865322561216965356636502914066362699003816295270822463091797956475481475770732250841664948222812083164834024934105199332301441063640956099000374008268539482339234956741916372264982546983078565428537316862518875723178211811283396452174715956506893480566408792937269568240189512948673567113973864988759750951118080558925306367221545182098327046140751219002180126198769889659318247607239120738027236537837054100058806672777608716028742493487876575671947920453076039973478852430567046486999267954915404051589987501599264484412684369605960715399555289123761676594434328629751745066136790161697496206929510674926966099091596114651770023434460249534624446824625632793758181302944507287214343203503947399622051293036128833901345304389201672196963344949930435413018466579240636160397466816356460821628034476108619620544812811339491241556373439996991529710613842659896868406814144774101202155555626973443067446593632185754448126264344522586301459803184769879279334978832597797672095409481002646693202226735260516894125630349940965623222854569034539694061016990681125613246743430418614564196492432436823831326169680367657058339487627331842202743861960474065680327809124365601475966605526569314508552134916358219261629271732341563035376293491370949558863505824117757002308327272434387595815695828578427475416799134065711714141436671043773510581238441477630112380431355901569605858773003607907835470989205805350223527638872819428113035990460804139822737176704142460112702070225014296343855978224811679712146193499380527615073684572109593791595316214237395595158589552050041924284962604901895000691162436124603960492920657391980412350092069486568906513808147752374615900269976734584550771282831468105040759824378377438922864121103325346262924710451435381999660495319232844621273131342625777736551704474823768116658365420095498979290689498591864815063023344649395989054080754034895286666112290448672915338809809560410359815565326314699565329125127381587243873213040179277104566243779284755207237431902746133115175377330608457608747657458803336273492332816039556261419072315538704967416780609433921340177726479572423243575945652504924121960410795345651617382232861840288610433635711962466648296786599232371985544892208434824849071829592483022809244762830377930635088894049422504272407146990406343131602914781580393610876672802272509549134783362774397476116720412155127636604761993915154096976940871086798229985721142932274785779513174229430493697823344672888786401902253624188323447810506379235080219057154480952980182489317248793713564341174784549737510155619645732367969967353788693271397764218577060087854568988043366346184171708851602403637001406188369561904258921500858319342094990359543183709483029268540482072102537568244560795178092717983438649435827693442280325674738215232321971113384988174984618519825293517420124646053457859758329142133803332671144319211182650030513756894082860142017518406936160292199952538803566461724629495664706601514575706204482780848339169233038648202223102682951242097760946187322966188770595221939727571946803780090971673237067801609613813765954668601105607332747535344917699612884315237168082020449734104582635958751533818397814548260460600466742189085993755128580135374178226613135038722312743934209898252854972987722818028777108632608887515901140104430740199834068324393218696251747830861595479031866247229898153726629564106473992065636660087362337198618789349913048393085631626424813401456348608859429369085975732992286831952857076105443659278409010177302761507239226678995150550610791068796923648266061767591959338412106491009631153067053062774047443400041509566835318044110681531700093843282410680705502351956823370657759308637741903552496094060099239414943135191459349772226674038334831678831962905691717412910343746794577994195937891425011535348289768824527108057401795720283095987892890236822046313508482839071843156526892567092889452163725859667684754963930979199781834324980216957961760449791413451797025634869414460990301602510083166308041959328807806643717024060748018156898342311336568673987894185885318379806338436787714839998499066217091188611559426438799511143905325329117322231188516410009895225300392721573915465296015341054660528943997613233398560610515803261980693747442258820238456454028187041363327842005985944690620885057870519948140976054624472435972846846864335546642155941405765405506810692606831707178007210441882170007130060559473594922967731250777996622493953198569925742475139035685174680715412036985595100474261541775455071942117946711773995313249825053837933653496557918187628233441550566965721922537336643649940426266773572496357174887313872740685572321317659607923546392193446433738058883632022827794705217676574859512131328432842238063038219825156870513941123449996044913377052709730962144602794867334361030424591070215761334373694353169166327369475806700192698115847515139690200386985792513308722930831319598905555886787548072303696962887233467262359417168669993540643605234178306230332686966831408909164725491225519971540842591919276769990235327478118840750536117476803638464342909829400241864538996982259057870915371145578633887707894311109089841824359197595430515889693577852973880314199627225990076498152532964938491770846469353901361532516253810298003918173980106768018919457660897616859058788029204826322722808231561351569588202905196905924318827764395608442973395160510440858784629074439031640180709527819186450207593734545970463514247724590401941093616586738715575564681859407098461692698936490415127151374274438017346345519555685171071898447326278700420128787608489024793961347236344579539132275839537969938089549716594585859066226928027516259251596809598901638560773152961479978381963894262232268538056078698623129351084304138606117041038399226322008006848067898650027900412264409171994425562998166880747484560110378554181511828112661114655323481994001974223338623758749592540996912363549199321988009176419249276867012596272667276144435780684057913144525171725058054855437434010307586881796283409379598422504231653387120581545169269791836231165972202613102453310724850998563960772987898151252141075039201682318681070502107812050500503024049421493905572455814995739354762375871397977808655918586592076907026609051532797035697968834610994406572506989001429779560112816861769032503672688787567789389712301669062067050915587539581253384241663868771834705999254777767715115553772898476528903018886043854966767381582222229269234864584212213964613139716126050474712851599608625342504313025750968945038069781327175126463808605996343074229949265220481873651373563452595696328577027863524954837195568171059638377754574013498211510518595551626662967974739197666005179073543963799101397019431797333159790500027198683369611506839553763326564839493264595272746658970622145457400425079382039117399143011855495489393500262282392567717333190956096789619668660028180433763968843708816963757290965127806821749890381112803958550035902913848955424945385668068662955183705293407285408582265798229205110872762203027967985749319819949403749202051223800587880317131348769189227524851170624739613251731751597749658578097857065841104752271894155224371501595348595103743209220729236309180986729036292517926162833724789093291000307213840391003929415549187577440326917779978612458455165694720656358729415349388444938490766279437828562720442736546293909794880267930475983969690223031446314655543501351009014356904640461637505253179607606147190603174482294296760251013031509227409409509103012444351677932668884642182751586635188743138426927091599311829496925273783276849431014266137620966962442346480241289533052587566480280152548297533671333777342584218071103033968013692289351074589995659593737966492376019634399856750299309044112543493351535583774752405448322097827660363901607608968707645188549249411087761479477759435415275161953992227693675914837971614845106256406534800274287755209142192063419387611522782054260663050241116268079317996959645274231409810862804494763136717533185562473851860439561462481715609475080337007641364237619622797343288275403233342020396271317658187593393363617144093708786996163631389184247100053305995218349971328103441935798651710769851705484532475015759218156854320044384084197970998574728463582373633277678288998606915047553569126533257702850606502464744081033912220849769684726592947164006478523097060475760454782001666045539491221592130013417471545826127271611806953369542311869543068244965372621050522683743987951311759974813363895563258046392471992195314990477742372631410940444191255698489357164483906968987423259954862914668384786062095936540959305583320773958887128062736214153054235831732558818363032411746547361815607741200873989241311433920970658361802687572574590997550900552065997780023287677482734477936645158254446604428950108379531927360425472268140043528912624146404433671981042928107473479202737125031595721530728077765187495586734887154901514244936299283879031413340702466807689690025846113815787418624213749334806994693359099066492591992542428728119874624919665823183008890179568157604967148674339715519749332372773586501189484266976838915611084116209977048570211412858528879702094551140721581796172228511793077491035405277748149601291855157161650254612924314562448415933742804126434805748715557304720220749689949078607858928525782913086910852578878942383345347389510001927529105687877532606070470299314303616654397737009138473234397913726427714948261989907518723680052208095624373650205437455255036282066461999577338905902044984119420228013117691569574484990638920167999323062963856036984183453180492790683547312207729492710188688506686366127213898806222639347633777675545738149291770480023871092099334327884800743136324477332026453892126982604241091265218737677211539154795712903735785986865350723052746521709694661393988461872033936871897295978632865593697542476923399248320433215036829549767683878424166666555349338671850583887796683759751682564555876496454405261701154932180926964964998831412582982395040881711610380071645173466763713593032413047450585688741537641246246534574815531699832818016902799752407732494199169594388300604029073543890787333463222409813511009105371560905508851637294707500514064420500440578910799443194880193861176085954713970835256027375710119664787969843227374465025766117382303276874379959190040507352370259321038743537656581908169075779561793290036605017684971224238289321863512123539953529525848344975950309923605673879856073205121209457352462457409646349339070042944213567416110453635455941000072925878119514393384330213150081287738997781937921299774949700316854802141594504681355300451128769479333325925760609850018780424075847282804609314263124947323153839728470807756811529638186952916690089912997571391357350917357685291756563347522280836683649491148163431601927260008776207066794879714871372736586871953889305287014399124472492756562988574062560814205060881282493326045154758659874251426806351858256543709865576137742268122720988121562761954017238849666868652321299563853710814730861965559489086753767034880724656367306879057694445135700899480046598432808212628590570417393506480242014949984952202228888065777571933099788130854715689574406555137166759371475140835200274504128566042404825532004685589829590033209081651904371733658091242140013397152362069670067046901776434645173444897973192495012186824357219858118283760527806255512791677112106011104603095300265413024269150041125186513727451299802930368734536581953635965203708113833524305885935599516157406716919105460826844025031481337906274549916005565638100710494319361215365976469593692957390573050686979700585103298882222454419598079637836074552534176940039819141073746144682771788234879600704000074372003043479662630749253975039595200753284348062375872908706623025069590071632409698111706725409021906436948825836765925690412431292782560976061854375392653030340202204209979669321665048846783837880370906689508220508074761933501604801918979728980347545653400719570290607936157997468475761088308180925242484498631974010974475813190206709830832236642588093951442210105090756503756330589962789918845135065401218131086141439963916252603466608699294434523418514091326422916883672875323777818474530390439970651273370589162535063175431893215818635110200925889324887635369568708682154716636032008841692878320592673679576618998023957687608213618922736310426273150826024862781967839711165248408160459928876757762656839861785800963355759291575970316481194142363978034603485846261252299015750792783353213455606912356293350512722338966784850228404205592874209745675968472927189682563687992123543657948075028969751767049631496627482824721264987853984008592321301729678817153511224291031853553084222876765803170295746087112611444918108794298612146683364937214546359090680528487026391679277225152075836809450454737978969904722040614932600110418159167410534208877417354560669113641085187150892560545504570055654324606828778505759978108286379060878292595062711453676234835655191468410039185573465585852440903689361509762556367004522059346873451972434773329630276374125533615407770453726382347779741279135733489314531444896137769606923737464691792115272759216148887529391731002112009733526366235934628440746988320507305296255018833857832611771136498432914712169938703376455508289785577463462404897856951181928357766305554061713595526392878711455033237064700680981062174448726000064481554600956670228471361441573569475305989845465649564284612810409311882001867175407929200039550326607556158322939606040848809299041068068189990208206399029023326022845148707629144330300217616944072202591342114128432143859151027604969323829729356281291427903254376017633991492064572968022443432601435410872014360847749380373949081496088757295848450777772506070368478388917998507690632834951819590722444778609450528990502785628384154489680526982811034486874030576899635181059991918558009385111565316830004412881188951489235662699465399546093254852008502359869252981174032472842874511450368877811819055202424869738850024784587234624829967594470058929356615684795822983522778655484723463489041440977445467628136317104127031855557241925601846903896837046815405108965090046923601132605230079118522507028069115217570994913370561859188871509394069943917444825295366297263524532268648720815491769516317476953899171857269153204713200228305500216705947574545136969295518893465599712856895395569608018684033308104050605506248808756975893548441863704357875794150038597769902892174132772499819855847748665718985199339691563338012655453629800591256572716084387295344291092052622466104497160073454261646726542593019080022393257142157006860466417152702435006636746932704700243505106952449492672432119731458070811968981916663355653661486778853215364385126924560684556114651224362729188603690620347864152516054425770381873536289984926784208404092666851440429346311130441788947444803948073148487133381309103978051910833641465098033011518237354257978728712483184826524135628918578341132267621592337523950885262502758021466551844123791465664603414287825473830029534501165123555677026505688861544400432625914089664667178817732273867941952157619007931880210925393424434192166272465260670748438881967665766957480743826978556604184914765645153455277106628795579460707253635682607357206850710566811702939298024964398358011703356449189759273304869408381589586593817119206937328446992317883651222220718558294873947693339226465640282480774868983134882022207403986341551733099336463755668611457915044041054549896273916786505584357677550820241125734245618953211462210796835637483236525014536878756137619557663884110910925517196764427972025868440446786052773243477440742732693652483801683521283452098551107464700182256291351753442740163172740194627740826521098642185299518410693783644269649706622805011447405093196864494070113652266171543198448567166687839679779475573179246326495090418386372079374588032183283902546739882438636780437388018929785672892148514024489849859046096144814561706201621846256548677151563508352199329455452541095916784886094672089543979159001236626070480303823881443717761265643583148221751297948340480553878960989439695567737646491229379473415590926215992959441860795453373091599415733985047720500323947998982916161580880385101087843917638380579291125449010805069898569052307672825075410950463230931774656670757205682304350262274259335736648603564462596223253886626902271428681972262969217255672214016281668437492463064810101503495988951808172600572553109387673991784955231501069192035873388411570077961053704786258464648104111243276108992723176930966072836506813745822604792549961340461474008633436052049273315207814519519085995894958283587879117040630324579247648339562562052043034483706906436188361219785304581369213615257480560498330606663111313731540346710062706117199289102663308292654270442182198859472990513821175372375996989103509910485875163107860245601096134366929971349384667113069475639413596733275509882678878063250928666757215409971187657018453113226081179496957746850244002431708464318749477445212677824618605823078677695695561896599098662534237766169993008518890353054352623873653484146555085101920330361950716482017817803115988722216709509980145825520930370271536508018878348417536397126056505387204857725155089249850795664676708556615886086312142786574104960974768017820862998997349139893357573130352758590897163011109853870446808587458860574873677661846888427293140153328020016878992418052802116103203004821291876265962703342194234500640380049456642754164814326770660092553595016431916388983207711287221103342046514307283618367321212215943233964676519107783076694435870001120173566231138609810957680766551240381575068226649030913145087707642987772678464433746811625740631222829632541857029020577917467858705083507808059148431970502148910789189009840780688024042193773666905120759005771399294633357274313457699934469156818765231492845585464631062384335913643679993982659138435690774992341811027744354313174130797898133559335872424225778916534645142646525370888489738214772754332529560087398418236649805203277677884080887309414861541304355250041149346682487094992681286231118326541726392881426490404098303354991389343943900328306256691260560146592773948040404294164833943622641193486981581383713763881394888061105449353800965668229650251911489417781674307127949385392887261483677613020598530574095113413668093065543771622390409718861062260771504478305538689468524630281113097632221611935201504148111875396130821467320446403368684138485872768772974451018032867113976440437415282870948981378302488717666396186636359937131380436977606694103433094238475005363411066184516721293592377155769694176601234863838082546583480664638924049807600188600849752099389405426605324509339445245856761408648792984009370739340594387022467556659182539704525357191096139610771528561908737580103363889013437876938958218863035368299045852755423965396567361874414060765806483726710638116559179627522786175067891514272799079224101395398539294742004499933974299637102093540575554548740652392852065617447906425732093213288972073489892109585863601823151340999394709510004702838558974920829484952609417183755673267159625150702059491596962201808631869734725202351528158084342867918094836594249657131708681800929981483390248428818183450037820119252271793383607622130408568673369399824807400637473090680021664780776917528309291497021090846525829508702687299193760379126083461661882277019445073678256532260892256176102855783126248785966867747752757332960081181261217967371642410144218489662222298084981596375552558498962446062932315803169089311859313167386698851229182000056389945714280899470397193491427090046221983454011073905001206992060759810605599101623146966026435371426825156992773168606791166784539389976345730756821927908887376321706585807567846212232182959807914324789078799627056578931801178676524994669891635276495163268900955255577719205345520561346468987918100263289179462884844495046677523902921176139458932645797726224174473709726698196646848309758582838443392951035713322488120356168571197706611377038518257143177040107105708708194741305334111151285530104777811442849137932072977322480111318741976639038118493526138910208984773664566657005929942923876587177310699787801812044590592358213287698142155929108280521627919780604729957806696346366819082971143637002262345948382876351885594488209949195289020600617480132845451560088534408114572298159920679199343368304660589654230840236824766793368948302786915101599578449573422399156502969037647467253693851503591917330215560711044381432835458506665626985190935140016212275059662837007732777436334449317430498309302737905223146801306224337985610941708081301700616712733927457204769458996149362035793393718657513902044465301663483342513079026621263997016356714985259201871636380838672170516816730199157131133826874047281405199138372585573129268230738396964160218981239924035809050026726712706105117101542983838185781116504425518630092939823967999661157993219377757040553579758145445217106592053467794385431482752425368403322844252041926599512133464483834257344154186816688921375161511767235664393625157165673583161413749178546341654238647338063132452353682461166814466964210168524807111745191633989268380859109304059876687510377245636218569209794400022305058911974493713669778954116176361777494473942175746985202644625852258470105962457281776179134763254602480456789033051430143717852062338368986027477430832893069668365492501739687955651533345263879360114742349964228549084775373265779611575818666970183417962146750095493953920684888579075315955732948554989433905075195876981243524880115184544952403645751796369954794940991375975084915526176073699332181173437443827609453946952703115749518016064716358105586291936751535020528817649230456123729658093419053284649261516831227778416589465614654175769262514095087023700444776435286392649582388925990211042013759044913385659382432173162118021331958082618448730034629272739643459128675672965399781066496294487141229094265413010728116068067650242679088586323153612802626302399302553820204756620115453813783594642507882154119105161003425395937771323153290256873462886368463815881306181919004063647813161054624908909936763189203950171405426668122084895875659250827079845458193478741219864477958575860178409083294359938151540600803132216596599741194461753435459239871604231690257209918125221488705131398009244091517408787012759731088022859813943635228531884603554334623596125023324539311933920753118079528030760750284110415649852176342284789230523195817569907777543131658576810744995359835117812577786190812376347498383562089262280973245172709245580699396994970189431006553067700830479057758348400500028540882483869833595931371511623883556497481035080312710462071285678974788960504202138772876484987885470093584071701232404263511478823809426374140169737639450744122085749291325060069487285176459679544856963573438932313615327607507950294274516594773798725492414900425718047153570458819946207531481402828221997824777934209134026470978855307474567103321941338053177639185504856549840681703945036803264060831760026622226943488595183805453661164064747770906472393120872216418099157282994572001438495020214022920911423673469958013255743451700175653771169990584072526264237734685677757856570167191783067128452641489271238454553083587324361831636955535110443248986523189499731879284707153182483696916679043380329379645520722446725729606702405470806580580692928641371963308847214438637440202669233084501876770039997366978659429092876712481156844362578131667418428931908497730567897535902388305030161720514413037517394896854617161991177504641490657882912412456904339803976083374206154737263944351544708560252961976808183166574045559839486877474952315265412852747757434772508002470777534332136143125642543278338823298461600755906168011244435063629937788444939290012074429257283023370900416608087818838812415372988326271434143265978906108003406393293906171270531279444781830854887314697873719608347204128620147600253562130828874895242956242392037036190812659110060340585865529170723555888907112372365137613467449435924154403250423746368751018428363662964728254095111589676696154439247290123047746968743514947752428837516890140322344111326470900599624712873806130968753709828389977967037854761543287075055562836442749896116815417623632063304959188508764138285615017925577585253039609357015882735930923072239541692906934624858880599411007602118922022935302972064323209816730594836107691678771267119181344822332776955332664400910067842989986918509455534953580951068833566319213198140801936987100685225550686517146976744727011960330370217137301667584900529875947998248879315475304464765664721563378610043073621820794326419046739941502769594591236419781560854358365579762897423117521248464037902066608902306027057047023183008700911978444545701475307632777015617123854819901944986300220410595171884242151391164779455723973221975792129413937841056984775797385829638692651932089514359131260197792056004241122120661019820919082600633225499514999227275410679651796596001538425542429839416943738319101558704305130595674601556149995119626154945924965101676532321095935380856398418483193700390796382266099219668815083189798944443271665434064778727078859134397308209397645268058193213199648510682045058534880891563810943527969822204881979883806130380127774122189736217449292069934015921245781849143430761706923737832572884798135564700997655112285692373608457023917685164270687339734049025929390996798970264618744034306452666592690292362213128477036813789493908590902325273610209996909667943442723085663222073484917875389717614299842832493491748485409314196533185365789022036485424907884024687766461265462317983453542683228128216933945780402491068424397278269980685654621437594415044860545724795309622377151690756660401246761858204550927467617603141830354244780751586105995471894871149175309942376814281842856834408350770305720343722693295383738388253225540069989975031113418292016236520071750730625765633777917131457217197022651926440625150411235756403093751416954063476623712226028058883784417254461798002724343241892367632930901782528825343024336279352963860749114841155989943582843690677388689636966278653632291557419443312891962587773973758509030117923192694052567234184273441559935698360814795955921254368573932811746528104193270375547704104558415722758395420853548914502261759901756037074754273602385349231136169463151334549804990897394138044998309514287856954033921623142137987935807419880626520434989295063337680281378375907004987436646310728373793790073171886877627170189250577370621219216901562714637908981166147743385836853783778635948888250435886220473063835797690004128091818441972039799030233883689787004869595560004011747153629220743273611108726988552487367045075681896386636089712665275931836135849934921116499882038613417588277062786621362114155903514060195257273678878491500322351096540014049371746182383182772933025061742472705839900879331108670667487806311064809640813149861094436697505097516784009992880831029157460102143536356971976359318786604269840908013129055405162600753598651611612646051942801516072379263234110656875492087277348925670885879527068791353678360271923138636197259937276663843567273354061238513679551793461320861652484033408304946769842588403544843046508115707765575419284025589922742028866542749998345273786479680180157761121491521370169600906036769640567447083947807507756735834015399643148207760581292640012803237209778174391797560965112754750319826951679951021013601919760808246863699438234993278105150168339196283545412836686376240766458733557663467607952043931856147188794715031013977266089475146965803868731120014677765481918059700844699241964989107239689576786157011092002009597676032194049320423770428004929361889178008572907490842843471769284733998935677020451514643130025755869597173174464536735192595435704436776825504595714576396749222069426332492031261961496420647865042618652243460666765360734474166243905093887272820758877731338721509785353503072175341598526326598637909379601445560546235226666250995578367087598772994736391331555963930231861268755011632084625252650328103525071599433365469229102248991218485787887487666646685993229295452957866422920486645599727561654174001950423955521172540665464746666431473533099239027909042029220459039254596255271083523742095803177949178855444017615100533749783665468100856336480287002452775943666235756139217083144416903935122008390316582626240132594152575188666614327962031830698302491190439183415971675963159995972656484122225970850791690246798342890075969279896189068812008885591040815915594734656805456050134018633190028848801122909429494498740255719175864431088798955952171641091146655950210852854245358336955798916917382553201363919144028347613104041908493709908974777274092546362789544779599799705589526906813691665759907243444045918388382385595680529131179926927518310467501489237614683043681314127461486979534015965785822122299563087658299263188770797699852180460182591133101822541420255651856696714117806964384164669712559003368589379698108604313691086153732280002500590970091250038044521805717464089201777092872187561459669471864651288297017908895463163288540875125543132100545577790370663229475114457453593046749727469494893795490957346947361340351282569193161038253688127504953162311914555858589037240856108256853502759917453881760871004255623594085154827312886577898544774363725980248229295375665254043012947586888247076972280542878264922213853159363736850048794857073042294658454665060500818133201312400831318309113707067036210135897085033082225450358668507914954676243139762358487351358187398963018723281881859237442236565878761927529158225546720589795505174873977887692739694491952867584867703083591040334138724287247048441111748054797928064304079742816085085965495357825275771000942960875619394324436617585857381240886797427134829651812708874842427492579948797477993270040970473485745337158822451076744962807735487481659642124857857495546757593493170114861644238490739858565696877573100093279133211234767220305053344644558162534238512924942467732617919507883528884521901033193710853308097774430157684581431960382226278211799649650817266554615169534196178748445430380567338426766412582696315239734757629388181107471193013125582678886970187052435430393051518467308090496663318497044923107669735233401796318604366751303412305792281510341946547544748689914910671468162348865933788411185015173691290396951769237362664666021222878982038185890165835454356835872931487283564754110571901097956882998895559234198393611363299876021384710930730113347947824906386647680568844715470213808026014967797629204376793104770523816068828752966726812734060624362227164317261451395722548111864965125320941407712053926739973864931678577208806369775189576892946926906800324253294518857578221072654193523547050007423974819980034112602280560509620651431177696677332911146097436428794863088724617482231668446991877191768726778983211966731640654969850540408440194804711465441405932703452357766578568592744381151900406550158315422872180290251660767656207988001834126120959900002490611135524103445044852103183371891550917200227729169771536226517774256557303875476381115158192522472873762276183584704057616511691232778139496738900665624958611019282636747322855825296487827012347465790525814880513872821910092729904441231367686360076488260365637161880549824234646596726809849569145429002704411327058478920835114272614257592739455732766766718468461507583936075755720386100047264998358270784675083304730726582187968167930462257087616191178253066623553013288752482394977146502790381002314135121231114502298681540247225795676412311530026717753268059775805010651597999712034017761672358604927613073135305760728037437019188020062723337777715759905180900949660989772908606965642414629337805104987101132874257988516684394400769161315447632380160803569404635354629567521289495089512687565634356776554466830743066736956311079705067558655927963667008625819628443609018337621034858683669836335666721016954663597008428341181681579549389762342334699167340740402829542265768986379635464796161182859130050049061743017895298817574716236747484240473589019494103353653451401108839656275036944796716510868711082804150148914707650514713277358386495048961641970583961627768272830576120443436338226025584646425425723138252694108778950820523987997196412050149764013586888839873963395630762344213014902077359199112136466744373721606087980033984413935723845002966906231563626559454209615050012481520448202801713734038388915330690394881225012343368407379796248936273151164932959428182159869489553154185796756868812392001296084346093239788480620096892855402871271700544847915289392935041607153533777768093405776871250472344488151599605019061271095526357716571501542037179389309996500765413812374479799626515552114223819075174996971433128969581403094933233531823459060036392431357357945567292611407895231930246665534734714764686505980112822216638962409981968820783672177937003663785042514963335365495529564499775633536656885458271849002951414120051712841986690389742933147252455405679110953496172864643689118422694309608459867241278155244214022767423383298718716244528297245888932208527847344427866609900438852139761102514964157010528201439749681142898847281322422175093182546888621911709017649719807570204825760061053447023023003861024860972791762580631902502792584110985135376635121225629595268978016577835473296258499142651941486557246370095917014627565253659548482821380770700630130452850495275768074399400401175870000040738473590724855197736170720257083186261080147352734793804676742521873927622355785162258563679498134485843516335592800063612964872827025771340867211203536200384072570695784298427250477948110032272687167685178377009618430232461284013132205584155104722745490969360728443303647628712186394573806862525443387138483735164847366301513773167539508377985828032616349084963107602137137619848591953608889489174164580647451823425955480749285652139230008203965750975659407825990094086364286929077921402658057235682002620981348955540559363629727732360049964809608866694802369718275678690693798963716753019620557399759847241625723405683458271970939994014810553676693238625057963587736134319389237955280096905477330879315113273191059010846283710062508395081618398147538044864715812671766571073007424548246298723750002164019703078839707359818514469122820448506993584244354487090744469122270678922553073755645754285937724333438990891056262462316982706072754527551369544957136289228580437649058078105443883642952367807137161474631127396084513219032097434963294470188572127892623066847532781256661526996586166847138241953461158429692733128029184203507576514305017818037663296893250318826059552263119721713154179439511009452034164123088984156470193594302971566147614423473509451974500695296186690154831978219347754055538298543952579603189694403494240404367409951929941801453087620403849934632172882843057840776876974455864304179294850979372165717153909730071366824447826979810700029942209751158233354275345532039787909901057244253232008115883207535275821000367130835976194832575891075296850289790737945156729107090528020941374141619186498540693054838064705010456681758812379822562967136434255127849453221198919753043162582944061257263312213290984523921279511648748042712517630437954934559432010632133672023149924008583542882596979552545969246012197976491291562360124211454458302038760369467087380826741688248393123481744262721735479356682691845121621356784152250449648939791537740305816685319157155653943245847178118290051319737345351127976423273070757097436458981524957513589814369988344780321263046015537604832824851981812351224563112335452600976104832237558301316452186367933516960671281311371091205732633115336399893742197506212381561740716389758915783765767154666664685705777741775875655797804239526542251104243008369923689844247739434604901961410910147835421382689328389312867108394110485498994963774828177713785968321666950067190034884875775997449205654891769081742718853956588635959476422130563051239749349858024205102702916452544344312730999145649750649515411708149454737890684842475344455021585848646249940932580890689964037202723990357144831122470149314361879499652994825419866886265360283285457950022748288398040062436688497619453789651260958982068839786625382378679403975461288696725432286399247419159526363807288033478558854342648251371535802244932343993788782374204641711724457498293480623275802359184867458010784881977913387967231618417125558588868924562707231965376862256290436762843983769758749467738823065454031526438371495480115032265786380415549076893130933446592474216012414089096145379543189713969651337725056919197947200221000955383109517531590356416194298713502792164604382237192882363775520063776126422859344530640807065666304649838031631644316111553827235104491889699101671878222368163977960000750517333399508361662288332278159254709661400962366180943669061495175173681182371716342725992048753926641947026348744462635403598033554381818448640008215387783313602202008369908313484028828918365889103887018855183850155963581141582118763176515879592547373958693355053700255267425580507402968713622920876329847008995426516036277947664977321909046059459023879030166970474391934291127532902862271132969060237640344382478027204388384510863735454929650016948391640906064598301624506748942270640410311279223091665789510064912969268248814603825879956784335861148756467430904270150817107072625816447578870865438804016597698347828517960605307983554104379940979254970895015192020481389913760772163470548267090441479207656215123050792227054000682745454032690783232672634177507384633321174890674822539166799533459711440180725740265530649182129758418485846483566013626959290911645705837846958604239282143745173575324399231070801201211749545775326801619220040400686945666508735170735694823188856721231818105040341196264950108395991382187279447058543494360662406209896583698540209179913559896958988707064860527354900075866938950379432604571835218665286937275922806751460252301332856107268618839882355362059127684368277342435139157445703227521717737469036786682211313532000035579774778237875318803498732494574537818592920235141537709819607601838799471445695012863969719167075874344729266712601938991950591212018553033829257118683848583015718014458181487384686596868909560489887131528162595352541020216566285862042748764891655199224051579993544753484655575208659470771399288021926924576215169769345726989428671257218837063481344680809651882336992533433273125922621721456761041545385896063254679614545809381994575757086907157674024938529273966463976254733885198092489117704154958141307880814530256108277747571759901269545116770245751396167110171324534113043859627223491467654693093411417050671087144337707121571523848778965739917964212782892721377065453473505872091078277581082351219313575480378223969511214006878420044352073796134828803362607869497968860920221402993323469216482173545868554883034775073179921141710647220572026187824126622214003944681480163268588009439165940206999318442592403170890327453939800826255681798457615621404284986928616184874321926102594310279455676792860753670274274424410136052031455092134789077819128965458711685276031736818200645823081123728572514507420733818026030119184917027884986880830714635042022803100801286506292440028480483928554977546359490349145251200640011949146496980870134503889710001516909057256592947043752427797326969056531565630990090062609482637944256210586395527419829753110466140551417134941695823050183200248425009399355397221260641868744343406387557181957296208965850119457166324894980662731420859961916369006764589424145730605550715939542221818972422814043990138213011482134841597155820437944733708139469448807332939616184147573027382804239742282595164996126703819631511552241659159699720105716665695686683503269202911473998030579312297099971921774360570236087417052579666328139751310201310677311493409251629774071755407906902795110267967087603122980538574935896651314401721759392290818953504003164018617029358984968523615663034867707960565217440610342945797429527351093099523852628381978417363065162898885995914702498575217298180592274665843585569749970476709132164557765807815099321097646455589418187382171724747159821048728767025590772089179535468274274015365738207163384046784054288664345829089432902699902460224440988986461865867932006056082533275081470710327181723810824270274101427872248831034473084247693497402791423011154230948436676474732021384841857005737349148779939023416456112016676891296646433198314936953333731218037540765588819278896500448081207646493961870238365580990709941575419033347076367358147692723212382275564028211983345006103977863696502577010659769180234072086416046611248945766098905096884858701636558307936823157077956024690702429780179983493885555274507159368700686149662249795009648776151375200787413959853194522954108759339983458752102351172279901414114631556050592929388854738533482892093140771492884741196100531506565748760860374456259833284511477278127890870105254818709076821327423124590351062284081434148564153972878870249380537241498163441653296583355435034419063231911485975773011764710487958028437731645082537880927674112389971122954128149292141256551568627400465395902376104993767836634609885501787245961364813619117894494393371598983181235274834968624512968939103074542438855759385587043277330537238117854397803075504148974424842929330001390189939190488045627694856102795528883510159606569479259575836612921636595355700764484711785498559917885675212025339887000608215183985055764743899377739578997547808388507768235542531474331869471478053026935479379047465199159424762591293675518464951855923261850335159281310199366031337818663443457941124712392288247768534638109561495804301106994532454672537499155722805060773306037032710973653312168926836415066026904143427177606205756642123958824530729993876425849067176656845113619357557315597768425454873581801987557497577905391761279274462374308145788553796128204294346819705318073167307755432412298061403107155818635019419686590988692272349472275825701893849383061837410144300684720901776789609363254310854052540091222565379330350134985412087290140358295835849746278614647272909316043277526185897909743050984206770857488545294058764813768308458772023351945501756275843060443030037285276132080830441618911140980605475512701850424664895412118605514653578376153466965355636517922981421275512422625942012071935742611128889279742496768177412539189935757951546463652979657097733682757883638561932695117218086152486136565547370081641457725245621953112027861482179627184199927408953882792971125754083661474535978214581764527531146462265104683464398880347085752858972306238539648139090286423879904954647571178227616262319075654612712381881629366902909139070807925103106058719719805333627502917172929556079916354355948041347283209726463740959807930578215369736691549532014896511696482397697071056449711957610527658593446491820611490017018212924501966572748371911257392545671628778913788233929691189177471874039531849461350604400223767238966252944348721331732771295399268027443865992228249680918994921257698459659241456649021871157678133253206632729450224640615578458633195501021222063795377449300383228321036429554724533431442975631818942480603784386321135874501133072785085909747504431494445517728321148400557144834670787601130369962254816369374691163330190265746608193545033153325125071359700341615045112957539875182950376462267496393779095400743922057033302638547262256514465642643520271785253425403347783864036574922371859690504196154635307071589428665704666991976307632767216666040166103247617786083863009523178426926352350318451416495020274235810684360201916843319297969021128864180040243882316974577480481475079550029747111284064082813925922146512203136315059968789468702523040099823432133977079221474948778902568626485737581629648207792322637531901244060706733646145203557928387396588234971102129556705311200588838180171928230491112252710378008476103508285327718212443383868661559412566761425620288847836508977905108331572938334313637253818437559396121087541014979110777660341667220862388835491172615958124877894364884705153326560349445108180123032841907861519835967621914607901075683288616342961411912942855693007387554102627982842453429196703761184455844637334768848826231776443282832459612768406539820005616757766597545287227284105834937802521358955178284919117593169111556212328309124527328094203759529573607810522188018506596177793457734397712870775140623586539715552005966991110092958047085409779804783517861848669074314235852103652832484396325198356359492096396467653510462310449563254911519032575049475822178427205822118914790889289910606685079131911311635105673385186416819918474837619947901353555416310806522621676091152998861887129914477367896622582157311693585659131961155880278647462661120974309241804373792687988358105195229383772751815682538439797382292454477048303284960644832369564471939583343696218796730532667226909230239501558755402722439608729466286775183006696983504206689114898305039633253585144424155851377701041104770536500257815338824290115841888415733838952677448955926320108798962494172147878288423150805799835071310149173863920807151012256273575135564373064154699603018373239308549968220163645858666574004727259299745947972970414353278929965808710582006219280173105743473999786315885901302595041860957519017396034337319651296656863491254919022613442630895406452231415013006772852204263094753552071519909153971607860461913697583097301050691426430325995160609484827008572958873943689684126390242563122416718397278352567053296597080839998402083637410429744764289593792548790877049402711191561959224394840282541097106582225252981516648859063259036254126921440400343028497574045393743807807490673928558234336954410030844442678447612638873410960844017929315221845036049177824409547552368579246757118129467192669395141225459129676810013479434282672790574704091537603963095764676335630133637841259121382566089420314982679758617907898169015189285625300050458950573950397392871564784217252838951877586300287498332525161004896710478570480530479664849183871246420724428520396391560731133311441791217917867098557912757719730054970089890835979226621523783967178549626266959401873685200473121813997213829504148892766213013869908038936902030159671577416633783546463963584118821456746155494355404615314862017452769254828072628142605912866630904753816180657060782171831561668787006249877773317143788242491008221072734396549725283211115543334309411589116429844039902697930724677218120530850889641415032724730765276338752209557806372030642610230322413711301237602481287549990633627988603022483865344729299923341207654834733136101779309851695131419718613184189087323651317821238200880632369355436657093664098365172817596813872025554311333051604392174359148047906398504653488415601538772241224818076417213964899450684186465767788258290052567782427482622173770931473358915367316398078953156243834552459229756335219351135604388495329207068878381914322274906041599395207684893480348403013766111755794525455774428292909335296448784941649041025083382685392840630979760232313119194743590504750776110617967989165663164093360523977482974735500891068527911393321725190967551878720099138332400787288831279855683773777793180287052090119174972273378217505857595263059509228449135042432495928171175730982132749326146864791183484631642517604288145108810248221420783343944756199490000249607618895713446721826820679612286046426394084330680793163398545075843740969799381660703294398341492323175937746335273422360682638164180293453231335770305604700759052970564609847495473719917383186123368472520345389635546049266874863902380255167461153839579901992608499621586026792056395297164537517697389923729967511417782225276337328959278593809459292572554640603493795486998134847950979933571794023164781152425468430254173064064174635946981461063457955596771173911431115491633574871364974021824459526100501903001209195840956581471589093816562163390666958433550178961017448147200599469343617864044922632805056421198327895634994090920314099694776267598214192155003681612545669750540449566911009972076276015425108807968839362444873822048870262098865931333612159636229238842256438327032769336600414905277574876554092011791032498025869727367807342183965351907213062791312259544676052665546285635329797001708487931866829947813064580043297390623753482866827511893184429152452117578933531368709493162450877542929860239208740347625434530706682643623427459611757568905754901473894210492463450875936510127048028544186226152620438254336007624373735399681240670724845253433653445612109121280595186474209301862651434591898982851353126561769219263928400173002810290235460187905716837288140438719138268391308857626050870583015587231520907712339875117985332923089494476820358698189668844347411223057791072856931015806670670250678630909866858942434484165066945643902297928067473319980034291149373142473321173426241241281756085690906603651524408410887659880979319672328425260083394016747080371194462024258528424777459221360232919735467459443875132956190396504535897151405876675386266310495502046203127055434965640055429101916353237512793113518777699914400664793368850754027322281157639554288854987213771585137991368234025621753973847524093617663003765880128632843040633013527472020028119426942867398869001322833333164735481716303402598757661243683181829999315259184558184539793215428558394203916616192614998033164434071804976355922687662755116103152759568534106562225225657305422315226263581954100191942845014260412311461087457882866992860560759459140136547355880528948476139849320572131236405752017054505498606527886997797119784977957267988674280602176752700374923974678730778043361068199062593422735801873966248644327300362886399636828674994999381059626606131122804714022432806490322272370046626431458394115899707062065169524436187294869938307208542894192897004222551139810360394828061800821024588283496069389300961361276489881195760277093262267158672564897342275911486903516978559705474503141631134004104300094483231365935030997693044219730684187033574881017857053919074260734392155675529778858474393702381013944445726168519646541609408267946578201973038749264992691608369845552284994666387217604401945406538650542620054227384354281740321078797311835420612651840567084188670096379538928678587158683093543135061123400808886853680028326238795834923634042821272210484327695362027150021925674709047061449397556200287248868576320737528186935789595569992667590517534849015788189334896823668129919003565476166512731488429457563911907456418587269347988814050109828267238889170563432973765064377159956052790483254245157978180129765280936442712338638133063718369123156149543254748173662579452080225292977399930277857463118519855057221234145515940241574147474141604429746315817007627819331079814279518617194049038629433967559324920276399071164491975425344945348506042745607076155591747077761757904485057257289095301812098276507557870047372491927113088735378668073888459713079609215937693309769953457871584134195019706653807488978714014216166363359600394532003063775314149460525547521618892861184958896773251315744891895355728438953633810763127134035153201889910024966410570616086717768830873128251639829672098059353556867564998285602479738344749198783971536432215390219781585055681645092477061493899747470451412609215621369749781297330995941233099934257112333449156648812139996068060006978524287991403426734191998026644407775639181424728951979222523748825440846729832819815698603896194696045006372225933799776527583664034019830816037138943666748839175763416813092371929619392677637193324784229687001709325336378011368037263791250624910200649417378592648912341718741628922093484947582571919083901049481503203915030129158862548146802120621901669763146610488115266667962832901355024224344834785007074234173373108254896390548148372740719186676956480822063910170100232707490702041090353480153276857100308363906993882180987966910064345972313401203511859589432219907629108455758176207211588081173483601182325290827257860225669995740366043729042022173282470074425251505250936172797023754847741099193343111791034519617440403382843343977867866705056290431388139142774969362274935331802814229358405712791065989502892300025134284566874718520952891579290018604237340813721290791636762985067146422586480306553582835981005279960779315026619937570397610326035852510110454659131105632562675674114111569892029595283820497109191089336284591602215598049063490680979171225123444599269593555158709945720793216118936299869821350026583643815044262720454601281447440791196341781072785684270405714317912244850109657942405800437059393177275397713611214507507168623421662115829350586789575542824686409527503306938955205513575513212922689336042041446443207192272912194673938645891428191986508770532236099011940326552480167854093642612813653961489762383007588728844909994579780265774280200010053083947180682063388241237909891413637098947438162176954643959424300769075793022651505718169684219514197450630373713260988693836598355662047191625372251368115817314330503811015365927910317097838677404203054512077016459918423291574039237469132729841686217766649528645508020024375047159623863206761620431171837991751316082202796573631780925446996576381150454145514086461892660202008075223380684640304547152763707520828396433784347730286190506618844991609571477381286533755325926507180202871870816905396718937009897099105477129025398123019177033399786266780081099102787637362734804837493535591343059701073894048738117910961246711776860188281267622560150640658184781551126903590150410832830975642042954311380557144503448922618103834635902337210146091735043722056946506745188640678249507515327936896788050906915005315497759405216567085555073928236876580493200265319015074232659399734117698727818969578248708546327070214059625258636544977724395080310090093378143424131651321670833529221945130968831220171223755828754000996108672019099120596523764027638072976179076318750291626093997074494751207112162457600624838075714097058760899472889898280672673780698719669136432160478426190662948065990944156639447416980462302841862842227816662196633705338801540980218028233792775418094963462812154393537091760964645221227452563765514262897734396579323471077754603621464499336804484811099319100609933477297815761953713290632784378350422591283940942606411760848178331574668016807532236348114682986768830213756488856704934114384791669818529131891960502594950240399492016101537490170667362716831273395926956227074771220618017891747879713754765325446252399943712458618275658019257190269176158391484671470251903663018989243287248863277178926358800144947109827192428696484371926109372910109866600550133098719232356418236906040376850775702976982274445297904824658026456402988887055863423843605750866853192165274248864514425988014668144080365575131815938494714721669762917650437444571025418176118957529536351120436651671694261009331795407602805955514631181207256239713691300508929133444636589209762477247220300382343376704604543354516916325185269367910525047763764355975648091321789517057646004388122843162103506885109323064877787617490900525986363952616283551299439257153626030436235794762121740100141997185938628889768544929556398380518009742750930886789460946278198069415226998089642593573686977992030144654860038164311424251232959330810742480033260390387005611549512476460398307241938272051673815664956796934762776410374310072918080971494013137128074613542018633882821253273857814905623801634976060595956141099410806025584404170163247025155837914801355270698726200798707894048727627908176128141402504495876891179658828161355757511620488709460120357791565778795906855496949261017822074984497962842920868557927732721856576882041084094353020488968039202561328083594487509830355297052499371548605108034891842508883710082663181646987387342787491791008500535448183154730269804799354871938297661645356176805486789838441085710188273349796256783099480306470552603583268786257241637427927280639528810544559137822674426411118571854699616493824811585226660214911539020771391309829210081494785314777265649839824074669064305985862179801689382688657923395573103105039672881327250870537069842543892244929146721690728603561056889408187098179023253445772333553012585988055860882700994966311895188271576088843986267706041395265126914137959174816686148965575978645013514193506311324318465301244937629689211257187601602732072643538493090299804978737307405558836724947611760559116886410291670165060317105401752557943023622481461000191128964236693215347336709058314249369948293643405721275987286226954398186266488789988631636445142027094775077589452067140434189720821342736901183323745961160089154563708420584717674195560957840879806637410900530332920337588136306002414536209819587540369236262535666393570143266253655147460210977170624563652477184474855891519593685096548375908388437577411238142684039568869949339804651188273806032356237133758389993766482628901023301295338190617673107925723807086975927425911999179962806444805184990283282066370867740791091467880832343466708818223165478626020745751838581527983316798764510620952125026196699317235229195640260254468548348667494861548125399544542982347570930095049524879746794472377187506122517816963593109393503802521016661583184535057749481280217823917102407632827241988567234333961042838758516320356801322757984319111858590417215428257757748015634962550124103838224712413706252685046140133606114798421196374054122756562274759974643873871438609191171041765575611729305717053414636336520177446569391655944207839362908417565332772169557997061466147342602369010990865026183319247591552052185838723186531461524735377073454882575263669703118658094522562231917353538752701419681809743912088271346990221422148696609664964835552113029981958037271697538314781933744926442503605938784919736607438976610598399326942495583971268088465285717215635645282887629564242134124954257397087656984272024036470095713208566379154037998475028294968781188157124134966262482690089267230519241998380510815148104293694797870479833246727169772495911232671827978353895372641032533943346810072681659072450332178979013230534800275433971408467539309320500868103204114056737859528153176453470591421650940068465931400503744759195951682807295095570380965846214465005636482177614343067317488321267296915465325540024495383486326654131369619751199865196871734450430617542269805396274765256806102495047393547298629307535366995882629077438075383459432974055455635567175832590362352373187935141476697643829978442731920483093518894492491178216928515976351636961245898273309247486270071985258925342548101705291735123882392713936504910616916147889298792914282579713998592913786877375562551203811313483596487897854076479117117568993398347095917342155533301411037157958583684418508933864146709420506206695025477107972409453902971783551779963637606809107975093022894731112296895553031590764624474953651812393443739479130315966971517003599231560121284850376239761224571656991906756305298580155564907186125853293898226657023877360708871238116635746498621359889192580113296555027051517881185480186026709629349211126449382457933568155869488627458363608378387396971115723681479893841812378852989962652150688444909623193048550422976238488706782309803094686216647721484667440817931319964443413215927362961416231099069920266145445860370881444316525811665334270758421040225657939815258847173077971504592764402488444766330978449619529484243882602565806268307456990961647104289543945914941642447839987808388806487083131681154972116584424983836689819931233055021025439485365533112095872181043386868541024907478687700187016589813115851837823930330313838993337821529321559864534381836914635927330416892925865493593605163969442577795730832844465268494922033277415826902084563877110691237996320959783960032816723114255781994957036589617923097836212161748065430084896296241868108976873401062918495055992250891879136536963019032032438341216034519743879672695956728753631476116421026049716763869577345026012310647982291204225811958066971349077902103574298383576787094279030517825911427931863103681091074489957332652535548831088402177547073233158637517825620245428098851991727941361051674437805846453748675821988087744833841390390704510591267629132454999088947422502410005157979408555571041274878759522301455344330506882141211565163255341775598785525597739549984440280573627057227015025078931763933635228608690615804347542101526853694218276116664493640869053649549696588049167966964874663814468033969217614376903249678647212770773726167141714836121949528152980045773024313940155857269459104491881881297737581337295957152052676904753132908348371876443351847304766437074277074010758623371680340589580496473899562981466786161926824324305611428962300784629001911921097101291495948481104899631315932847607920559590859306722094801503456444439303579990530433089130056246741723034645139688442559400122358285692663116392442543705868313438771976134246912841657065961771458191556922977948343396709153468560217155203324127824977773238012714640300300798621018431544800623813548188240123626872562853609427572232696482220129724723310886880612395638623572206165362664503817169499044497382573039636540800056789954409584539662924829630495096134299448656957167719581530537767520754317315946639391998114936853573594132711901580975911045812241953586409101922627200065084235890663277496196166812001911512911886891138443045060621782868499834744550901640493116759004587219911016864423798216434111051917591339640011869022037127615138590625661344887742030851046990920123719349778382470141432783776717572214189279984707939329102959327782655643624923171320509380340107528351416847648717842628924429510285524349593812507787494724414596799017527552873246253621603809159431980817877272800249958803866249385476117279472596056573951312326381268569257070101443794193878791134838380532268251395046872193069648616893517530777301578162981599995857318825910254267164211897847065135227647986747889678959610592669996635757698833411452969628557294732710070629048899264066903090482096774098566262816130048887412059205178043227352041719599998711723562234166092748430652878257960097446454280435839619035662190222155950686934068357612670246514598495195604870227850067485746913139468192895436723213367640155314791328965957169277936077004597341683931999956525304601555853425457960486518388484434720646543753086148351727470450565089345212903782894742201636641747933246221500205518385761113517619450889064419822819169819534983230323615145001538016677369682311785160928087409191417675137471384552725723133857136879831909989747849132422605746950500581953646436059813153225850399485935984242928694955447156598761548418560292677880959531159832044852130638631326319733359485095959354816306292490250775261089031965727130976432424059089718927024334092832294441996820609311096526972944226168093782606806787425396924111799925723930960256739554526442787576428439470343334593084769477811784157074990652172573206690244164305291934637607717556357854735356324214162200232390660525390639626207154998919559650533333224201637466962986324672879420762003695979262644859900041776591941520291452638340967517511498298477306570739229229476824135393281133973789009186422839602026896557482423731673803397480087552487265540302473746709181864606582687093405539309884767121166437470122735907327402627577691102387394985071385530544928699579467266248107022825244839306595787673061635764795871969743106465433571163839344385063904864692980289413446404053386050960032865016835335093593283489524083044963967714656344174817889901901181061337178468615440321360061417212097124924287380366714934097577812479829700488417076428343725841309060554463341500553979796824352010883494283285717668694008984710402956479326913477930634208530362684657394689720425629760272282036090424398767240474934737595865870096868947692561861804229211051468493754761528285652756280093088546849121507952095773341462132733588615035994352505368160019777056752774763431462916267899082866059984583087605225092095963333492149604135238511652403856218056193014077103845461066358832298469884914143884525994012244322690349216259296771034084834311451596614770004054731918788482589918419182430516316350503827273122514521571955026402560923114740968331866519480764682286279929046622547659912933193601501218219229883459435947785285117370940225930196496667502946608317194981023968036611234743609573248107249280955668359963864837242433740634917706744797841059396713815884409824988506914793736274005887751883105012516702687582064184515647971675047619737381111061411417736641464497473270016138828757306161457476123557513681323257711948694238512708409441117929424614049348307018892160457177889044463030897892772795249793549012563686046693058968099215206610678065119582986080100684873381310484549156167146003966428590370845488963197846901562147922715984340662459763653994457961084682228514819442230200986941973081437376977459157812901268518131028585278169660776188146759207705433450704646573247459712462275649121757397415576780073843946666373790173437111851051581346814679761779626201200343289712536387396291087649978243408706992661589344642078917848885546658294833563527878658026153303526486368647456093969960946940385282782408961383294631104142686421147194944722752448251815637953074179425467627635263049785042429419531986703469753135852291586366738452755077895153561344295686673673581058539470208789257801545467626932342965018247511455180733554174748356456020296444258535787104188162851213284120162554448114104064925514345026094102231811044233073808886223052431963754703986574184878680404358542714654792960217307549901439924993079022104898523665887625718210183560851401804991927930085582598481182539089453125334427828679856108780709654763462472460117747230192692797020467758263847236199631033311921347048897131840612265212828165515339656308733416752621323072992030215469399751519749845190171147001200271103178860941640404821238997754741825155217388217386820456829733173933861367551577346627514622191153164463637333026454448161601747711204364973527216329485107285777538525474123477732262209694031780102852211040694669956282155974314428593966218423417172873639648613211416996113244555840660814397690714413065445311575832178247598731893252621530544643920240984565499489585643633140360324602725385374076759970556567908974095398248828819617845285911934062404742214685407093318847367041547459190839615104512016515133186657940311933709012489552745336420985649097373538303317010252134218100559162175611406697347330775656411736022616784772439778916748107226421677658211109128614424771474932486356256665364312429708953152397844308045206853387487705903359959156034596855226414367836407955392776468308111990337942732458154602029829021450897238850570112273258799966230278624512152707115154955939513150855864978283583577913748340499005485264155405784143420907971248335546559838272921064793548404343083636185895760027613157323568986795526120455730400901006039099078545465604297899870306755862827179958297650278780636286248543243377745242420757728988991142897044520879488812455413735557221530341981591798164930580652326194256606014079204268620372320245922234517208833322736807691507959275170862727610974846661089532315635313238730702964096778069156848741235466697431780336271503387734796195629641306213547380023625171046954294724997732890082899221303940800483986236662696472380325619477471405761445393858577153034442382778338175408887753573028450962004456699627239669981816718788625349260000527779392958711884452063468535508276969997718247116735293149315531365687236830390450637064433365954046831535927034127285780248591110391341778654210754350757914670422892860920687424901917736571845844980053417994527996870308530922515269171805888336469073019886322792715967428335912791842142215825646383431939484804907932014849834334174175986893429293038179618075603072263834127798215828263916186453281367974969497743820015928232867402975334229658597136579401659606287767758755244383403737468232950978199661422112529251464126585690893520914473193908778341602795593540462603219933306926860089001867520152485310724526651148094665112351366861465212102780004957014797834263952344444614158991094810311693871258097060293542111781083642721624523887902192154904615309640736654260807106946900938743792747752742661355461583439740767324761039938874306817432884846296431716440484184692751222209422315699958422837435293074125853795580577242301389191931443041927132850766384428194102086750314391150676801149188847431204625586341012650787031624042442206118628366906062528531792156597048343542293636521979040957697618621476475475015585405577015348860291708263297753665840835453111145768573017858189790159676165962814416699410508785785061114162273104988362307687889878698259406691017618384542624241236834596156126498623832244029416809936366691954601234587613134464682730302256416590144311312115834881244325104887146245774411270777805924210175243149444925841703781725356385977226927272689241822248923076023923666836049757799780489572837405396815282769651684218535120424965058574695684050416999678902128949615318686898174502807225354077812279974207711538589346195928584334769508843792783521943843709239214855394341477237002859398393405169719404448179844835117174195984493489821144027413574157413734372186036936805857943065174701309466729472791798200271128404516139092026506016267018814256081672175006271193305104498118207128911967591328089032593776387623801590954908231469640387309807782579354734102322757559333063540521607112573602767801680655330690918355676422827625847017592485896585189619903761950905060164091007306136833936677341948911116225774067245779126845720784152867346563600927294164595327686223532237049623251771080319944316111200634915948311846744470671307899327508043140837083951680375221132042272397152112984116180674906257839436775011475148957182393522852630941742805207874867862858025017712198500860266943483802131368629381760374397525836959750270531413697581050247638510619630784446495377434949721040683580298220980737015011996708135142609985360113430344491736831610557235549241858162890265300788184718822316900714468361509958328124857827720961887347731288658866981963956269669642845924217325690944566496010444904887240079296645718374143861999945543571563757539711436497672729268564511482444875164977826073549401214652949322574146557938160052118740718485451000565490938700759325286860151473045824916566076806508645609539443957237107807090988329541468030409135983331799666389588497822129714975080881478655416448087665858017990201088215160769048070688392177213876146302525696561938709126641756282066017109400538624335877548213850757350864262986092271919826864599516958245286439248023371546524951521004474919111065815227024680984576948047757076142435165253444669784084518495544154176583293151307153008079681705620174719722733117243763948498352361151876949165126467251607371063478508561322337656859867614829546743935557125724307047836089429313103055871796025045068634052273618853666360789504052187146649981320376745415311747201708209241845559593443901799233578697844432135825294343397614928656090289747732593445947923464615411380162512962342627023570733359231432725321794560908087810613024282844428846392399357879229330255687749261675923214379335880845131658740674242110853384390520763659204954682811835057170584457892505204084828291547303777157840411796523947617168178709794376495905461433776173273385462821959940457211448957288488942346177224385272092887318706537851912386670718736714083135797593382553700242442324484522445253550279153145240850896459554558490456730150661442552305923976014016396021072045487642471428328191995633175845532520986491370638330828891775088767941432491378544812235996544489925961464761205603607146470089013310843969236001801045291927514057373582551972465863522183155416848846882022846030161825135901403501567061839544598325608677443839824670532007633754858586138780803739987033096978412883482154254134511029543175190053011768843273104464121361046151647289314637877134809169614388042673216046120088623104585374142885031946750517855297882987191221645717531686100056301369757089587299047272902366142085177471791706950853482520401451894650388185446986453843909309227950390745404667667284727396481087895040001037720645317224607793879220037166775885089486028549067776204684001866709924622609152997489932935540871184060693766135036237036275360494476026675990081271276089552459074841134651457215602126694133519165221476105847251543066003785199223517963970018721069410175483631564949914667317071844311471521843714326499500617696682444251052650977970032376028653518695665090054215973975803758636768080686574921222113720334979825923670740918599804451082433901697852370962509687916791071093670490769724619328614668175997340721433357657334780558562806707373186629862282289518273139050015238703599274554133015064896879705029477402611848894288037846433976821926259763283301136805785130455688995228110264414006778840210971151743623298132334659077757167763325564249933953057056994920810461766220960058640405980443743995058909665561193410834316762059248889972650504433912999559039649744767536308035341771872417033355818832424765119440452294958819806074221753529085150060045979593434231385285382516918874897136667410067192840681174393245309333793782003182106028913450947094738412711200177838013788727217396860515288051107511522217890391307676443807204703524217123667457235939114904679154285486506751932371897629902159917804039569629332966421800849001576348330175444066869019939263571410722283565547393676401096030696917770674527339285142174917865773590476919644723924081486665620889540926825087552734187612895417670016622781856290954201230905550392227957875182881142584918926155624889077327281725581155168584873275286992230845292750746710040088483418734147816098065952649594844557934434617729322129751273487896212381324007806444982842030304124876323813602240141880169878558661943800370860480736544391134093949444987103913103394000676598393365856522999342080831146028334509661625022312040490219451635804002055992355911354069925551069831640600130968142588059963807072062140150816114831765283153714817962917243417932210867838938751719174098440754592381825931680383743073165104837481753365399990548747070321579849625444116879199112957360438134494073163844054633993043103517204196614417499612619739931649799340348868856906651707269958462793979830935271904807591653612901480993291567947965039905691773593645475378400208157309243172740761878933798527343926861522957006824829122132987842022846268903795247290966183083814236629050649585238189325062709215525095402722910699730592607606075907194784719748107809770371506445437814608593273831406662138944792068589316913202781607950800202255452010635893391456765247753258380946331067915214836416987987282025441172470029410505895276657298492867914848753484160260869857168145023924410228741517129802082725434689888135659762743409976252590122928454234215093398437879251573807194998810219749024554067131148020513102874659190137197603378017128033303754960529259439196729010630301835728140558721459834063131208668902089889309030976896084336820581585282827494187329371162317907628968876809234464898009114474640633739654278546044267861361439934937527497705315749397766483160104666111289148859556011687925295166129162870891292210844175679845476314529575140466906560067866924184672260977886323814602981246644793427270571619688766850570610427253912805901460119567756811520096295735466212480013708619825466515847041623284216787096949540410557325607953070806704185271403811873014389802903163325373287882584759072214400174411587085903794559633075288923852200327433924874937671096596799642505725886547481839890982531242912098066096943627553704512458833078959392872802696738028153477119819768364951610231400968776772664204060591164585450377659010599227498378986205009907291800218848786188005326954545824230679267814640076370448028234764167971128263111051238345858388665579355880389574940615634639545911511701189164020621578201420406341310985612231802132655991956812853998547796783132004699810878164328122028684596488051147633530006053371044617083524364160505711435641577740005258545203860739511055531574204218701476773736161630615881550483962034528610047906622136743106859267539831849647884852241364491449788653121400587734394825129890235765570325510014269639345894624536140990845385694141925650484985894756887622163698624563533205157451929817622437418991301120211070687565792481315438748516975225060389542158236385598259855490364354878553983681768276725303985076769360548834178162538371055555790718011375747904888031312899458105623451571128195715629271476480508773245974768960942801639579359016663432294837161718672745676381854951728615410791359033157955392351668390660469022196342294057352411770205023741143246307488666604663634820253806273719078929657642679614696015602898928755837745273697475057964215084143964876263257667300798187393476115676338805082938202185038043653321506796748451147266753734515024774044504801527421976235883747414391298910906346648077300248039306091586318002888331647342568456282643088472568451362260380771707325484312373920911060236245547743885728274870965425470494544144630678102046875640433558056622407906900284127499886287208960836701807851247051643796577939090524636615475676646024313628175087126539768095352379698791197822743477396300269750126789052075462207655870780225347016070043973925512563308187688368546474212494300747090913861392351680183127253109092203926723455084103442209931086227553305749218760519554138481492364354974758039608827766072191929792937039499371109743661342556805903987850539784822662119714327320398246654652036574351843160140792778870786081004379692469454097828373887418225546405189638023386433756413807520213569637080290890515594828081447252028603651864583830314570062170003623413447732584810211525030429628038396764398592488557388610234589756512734150680502437679023151726808959036562325963770962981377347394135391841352313350267903024107593626982416009958566341528721433995151146045871421759210412007461726691482917338777541548145322809818268305333260228103599621806721647479210692965419538604977335844931341428018546805568639456013805785383346776415021686548705089463578514627625965906059663873789406438610599893341848056434697154632282793943001499813689679726818025834732435634412607029710232623733389840718754102848012724983261729419926361961180874187547871871418854531017424604285901381660186820238542870490426976310515095888197858457168563220391346299893213488050267953388196473729194550784821115342163347588749578554742895195995785532109674925291624558399274051197676921907144349428847339534393249399809788446528963588613358651288594720151454147789996457461932863473115134956805500749643982374181701693909013990965675904785136645731061306949700886023593295691219652514487218338262753069854724712688336299332566140150002763068853444801557976716843929427093707956870175929705696834217434803161912009071413114896625877279959870733933958719956990117531517729563496052291286614438504366479960191483931055676055082999479919832958813098967715519992304579870233035697994875978365527492501696472473846897694618883727479092592941810761742548470377854106107925248587339878835472035207131980865210957885544748366538116299318760199561226806531188122255803300911330797406309307211718496870143351128109206240118149782944693211440049001789709707323217173543305837332985728940916902786015993934839853318035487694457489095384370599011269790712130007416859607181277471865942989534728199706288271649925777594763811889146432845818031047313743988848816204746401917442149667419791322515083132613870206379910788109638012489655567666918733055415976133347163409068396092049421161024328871805797467521207274686747946635965427847604300110505921248844623192769730000752561875505155791814987090760753385861844049290503010504605987315586399093028627757017385836232520294471034813122469702291009747676364324739609993120991232268036947101061560231693552396399391934996991122701509275939234134228350876402037346000982748561635730332453388425571270835866775143930026575839058315014651990713283594813165934155142834933224947655283452776230273204967171877615458190646042199935205758600767168973501504026684956094257082370140115039252316570648337854720801340064076186740157480277556137423230092363143339970791639546515813048264736818557779208439601349016201881689895985393860959167666283902101534305181238613561038458026530148822457989753329786627569010882542318238652441677674583692196405064584508256164120485798004528061404438382686646383536641989670377930176963198322914565736695027605433203295451105953608108088347801764218016739245045466259764356670302451615776788036378414084596004151110345863664368823790610767799012724555952241828375663532739668015206596720659069136961401154775709196114372232655884119763043315912920717206642977581429143196506014113485683197686548166484944374974457921468625755364781789947431582860986775347237289245248065916387874044766933508908937082181635484042677702193571187329188995980049114127243870698275797864298974270543050096248043273024562329979288007004500028391221950289273146111055430902551225495119772053967757410947598063436768140049762426536934556199148808819165054228555122302473730881987000550546823846595957860844371890775109692396413305286658451627381555057093490897266746980980134337576492376151918241767300763859747430029033445466616627896769525550955388367223668092639429702640581509644854336057331158227021519762253478180322259940871243661142277370426680951824245269717716863081599228465118616366205140214717668925151124843090228485827613070217159080171548248120715556888507591466500577192502488530250142211145891720213152345795105449760717003594939901466485039362412364530603090775906389541307735162281369482274323759393501890613210249296727622439491381534833142410716371379480479235241413958208054517737626002195567876639505338499470742334047685686737691651853215211495914770920200555449958308258490702602812084343864869527269030809224369259965243916346159919090137508482517116756279210924885119457168568839182118360600865326789991002200206893388704421951525151865787966659941069122407660451214420120319666632854409529048192857166489866234366590952690959199529059906520371706094971350056036261472090019207643641211436442853520967816833279592593522761647059114397698889888342711854840364590261495672738230867335348234101954450189215574098972512814116247984737289325266697768755772662615327616806417643711942934966741424379263185685781204786704541080947272519230165648920153601448092511053751864871202325910262190217842962867530267285341343774627973479256327499520908989871978293243319452158521095936398503982268941945718799480911711010676487008129980163914839726385284470731141769530622515517643932760594469180344767518829162750615516673642562249873470399229007964603705128943690878847925710011082532314241765309301092095207244287761664386284769902089994577498042587854519332862101123854312674906035842800104863375086156477886997735235465298065996394933262359156499288273561713163307467256516990218416397918440861148018077480301125226354884434184184787124028801653489656777458186153264860753008761747397501460937982108610222913456274104864043782062006993175926035748999586678937019014694534957818182939782313398974422844050023893995427761753792717688817733077705885192256845461253393211401951694304086311892567514434472673962013165574137607111610074689764575341048472739554379917257726445900872423179767713500916995267819518389849939815189104128449261961276093938502074380360784239735028181517806595025859582029818944770232992702670728164367242594185312305143049746267656797446275695139540355341403402005043856339154156413211127530393385027314455511940037446487046562737107146115939739041769290048973371872397102280402757145554641957172329152737198578052664556298500327191542014580714480478803079421945682021517621108572393875309033301067712759552274728979509036370520521364749878861730962287967559654729904501011253069421787412167081043147782543539577829835000669357495602849670658933436744154437122045760100611496941975368180108356909250918211126246795714007366378409857829982830917908947392098014353392928342218247926009718014257224150226521497167240788185279427442737849051099375844835853171547733488863346086130200636407128277025222740377845886002348362292132707402903319572489121491474611340160233286417636205973506877998223318709495955591506279670524321671603546151531895242289933002271978361792071969159954906708911507149491445456562118795897820489736098555520298968582122982045521708721792524614769583716607306073614030103034974729331271266203605334263494137492119079547019148940766976926324649817949907471944433514094383453662144001493982167291332632283133038244567432413319295135821233527131847791365499687067336245116893229063024595327456602827701612978454113941445190904223155684052131963862640595904674028326315510234485654961990877251457496633714519138923875811024770851009947117361997346589919960950968939479894423795923337333964419289308738762784804282883812546287453400957620892366912357959896944809911727542730903221133928164026971121767781741900172574830143634187712193383922366464832400556857360234068016328360311872291183679539290208996344207417141523176331666733807054519999918238069124700863240613046313330513080968540363352168766072319690479216188752416358126779993015036972837121940436704096212423253113126282593566635809534982473547788474598147749574671583027474772341721364547841234791784710948391544467881503628392061031684423583181496700878260285987314690568873663095066421919160392735985349393853584871230679865976280813989313748601760894555244211093205627064445436659371478059798381267036632844298406684976772730075705984549984188602115123907049144504298180419258787181888346320618090488938773275062973741338638030746325821773306810542134279117411615180895317870510219312389370717085193965062034861075502917109975304236048241265677896758448928880053286279418001059322447700845248197332962430812342003917283062328151332726401173204742549762270150133729135773397918672664602970579350035113084607725541442985937149863509532310792979687896173141916686881036749169160334700412038090436423733799219196693228922974698142673718819865480317263342195653686241304201523804608052943405424942836582130148054814063686173651701521169253770399235033019296083184232944194439503150611318913723618997782795179533757236657816297191527890775926036943485044526287843197429086459850665959473794616457592082151294187578521011835830788493971963032222073756318989062136481534320736884488990984849172008676632797668115153966914740467061018584980214458155751974980730352600112025186641893110925494712975641184491961203877052338472485659443631315008454826427226938798679698737117368915783583383084108300836198408671877490344610588037960061588602078851537153851839920937260382592329210033031173591574490863516896289007655209062648247396852663452818557298651286047759178630985919531745301058910777470249010345263954188239701262386011683166119762043579976813898636711770278454537497530836828657946097916811094667532852584358910527328399251714354446831081008927429343524772004262596138401579296258411183041682207664488395744557233920481112679897404237726079994382320991576423133342035615247327060366132028570276485066732438422384789946864930970473744978876326632722357198150984793654665631543765226291268496564743255437254881042327434464954510292749513245646400327909576995358467272492588541249879799349284282439917559593782628121016951846863473631876132080082386619519261615488216497198020147549002448540867256381383520805957486184651604034478211750960975003798100113501171064202110507690316556134599874055305102105923195202203693388110818205928841550609676361224661290498924296087924620729558593699071013291405419340073461375454924266902034621482429338868024931086611490241174758269547620672250173563835667846616883695960811550861993270529962998759604027619730150505925759414179939657698575866255474795149252869304427442023277255011244920653251510762070534903247723373832642839115959930571755641411506734345643584240535554192313268322822644266307450033093936057747090911914273564912243966788708353426948997422145789207261977553938142144274081771900193188155975360625994698400419249335065523856988382041720472866088709232099619824061445547190549082855584433113399026275554038117501424570964200987412992133249174191667305129312935286042975616915390224933265549091775873940324569513889297979433425392972497683714079377830821594879718894539547497155417269747514015542967977877200045396574175555334082224981445761260173646180998080195085427968579600579391881300794641901290685243406875137467935417257399826322466629712223522947891301541048625590972751189235892431068440381391642477688017022941732169992727141913134410317591926780484523784505546260907173198150784642802451755148993048734985763312558777230700666624270604407866969466869998369479277709058114489406100164774307273530172018562374577149479108853649423713830951595907712499266353207017527950003206490518895087250529090554941657834842442545637643365368142671437571503449697162794265973959408880875738225620442966337567730164370696084066790367126406114561996877723388245417833637368768900967399934622736061387371627280802694174199930478100057516035063072941726657539213362644775100145645742679635742982924997161016015956114169282524734792093023183217856803697840993929653987453971737128633722430750524487435262687305238057845209131190542286026646294569886298736045489064125663781983000776594435361080415812396922518363100474338840494665388173204931305217464890408330564227454774349365915645734741994202086895464738855145592230148132367534271583727313662079236132335750656424018276002844275033612829791377880946110440859584680156258166975204129776737487842277379224006831289763268585611043696253690290607157477972994473657949508754516808904865865426133053617258505990750042641460263595553677642079468772533444756763171936320146151385152038386845202810874390134468984380312698781620221826216381192771202578235912328710326342944067037931831463996921033125995952590288858789489571330711397147065599738862932945020645433356200195337997562180243287204514343507397047894234602115728723239736701890202553261782340576615975082084282460994500048616772426195101854529309719966442188947518173663650205207165276313999495821200058031088596213313009606230608113353308247491303361908908376152138162259025969873127573096342911082875001507093723715193796149569748317649197826958196420446320097823807136527173007872086560645757513486232033437884675099982950444114179972652598126064760939879019325830871530453107886408430815795424191367286858861138467671170505454341603689616212586468621595255649248624719315405655042750053038125420378581055994305755151261890533071595150685869695769715919768895058136673473367254084254122745884028718274544816435803514683689006439060518512414721566707097567171256537411508756486872252770855054785714228412803860297517577409015953804057956858628527082075226836358320502784366616309127316097633771034258835042537947397303687740570819578440874642163166225299506031687885278617733423889648801484736053554960798260016280406591181074913341752602393476725208467843969365938164025781932022622785763957191086364011159753796641592961314055829660282527048975971585662033028479864369545045338704195697965543476289985735683648203258595930678863492495557559722200886668246367898394253621089476482936757514461210413616957433821033375861703565664479862189786058172426616066433037391645535538747146160282270898543241346130943455562067210894562801510496751161567473215827316889972175129540194088810890157206864958559692320154721649089388721912561193321790900901569352350127567174992989730032305554305397330547021784189070153671215827685851406615451895146648097909731060717737211739143303198767085392315253412100025007016509418628666689638998496138480388304742005065422807281118970466335585627838080697215770356588745134228445966464890587305259928743967130676874576535152067340508211563268099193237031670427077742834106757354430009325096508769732659145496048563445166331988853451350900040525735190937858042465793260520062048463946770167622034289527614040520460864759001996215246708878272142778524000956870164626350989476877007308799191988844566262174214395563374739193953716181763201355899862267576808313382058344390008719719691017280053895253693077349182077352773384159115709839927716922270829642719181489519437221585969036626321179139485473464486481806896136959910741899898468744355622805600566388815331890395533801114554924374929480251178773904500243258839185323919268848128874221763575270538595452285036756456285495737314353362652251646004092080316859220317694345690545773791468866828985485169872757211950632065549988372542268484289237037796121715958543564860063674760445373025841873450434081516542993524297661211402710127233070063273316107305196903066111250211355036202228696372688507141208680774965641980415924251584025290367394003697691118316108552885539433740148101081468555737518044838398647839633851701811620676657556528752748893156079107682335009658626459126167633759568391070573560603477449047304193656904247326166747248570707253246958698513118082192265180849447570833777779545622453722899004075000926480436917160171444041958607568597352600884333730740300880652041662782150129269031837981105769987614200913873415534049023660146326398214556300071228308626450484062281845132851497717457057448960114343505035965722082489292191341624061337952103657321600785692382461390380663518589478354427827400150429252678777081230771252969933976413946269892695204829788170891674854700232976641563552367281961037256115530887818698065188511571081759070123491839432430523243816302153971540023253140344094131179662287630444849315142303303651092649603514147839526171386762075416513339915673329658039384631057401113502997622265584938830986294562771705913273603107610222710063257106931110220920646570442800151018050071475598713639342947723364153448176649164569943997589275583670213822796413757788676069594779838559158700709140310155568052806792098492039181988587764970646682789343643031193122515553267974933467588045469459793231475315522897096694971237397077880342371728140963250385130115720677416391648837524587772116904434418925855822170531334475652394813459633091985483148147657903537186537844593203663041252338608537597941103775520635044259248127414607630336193870863769861217410564076710046066131312077190363430138010966202609940498657599426375681754526466851255101716679724667980727835308073963842843347657453429977517607592961963563001186991508421590451790636317682610948972508861099492013920982829667252727883798113583679217077057510165589329391342512082312570299394960617881881516569872338411004290345365236340694162487506439942501930398333785781369305191276519401300305546301626586824328224798070039905942324189797960754418492692040714595478798640880194213409203906596610980543486764917150535166876870142081236632971964225554169577583944685961131322132208702583145906983151135858905192737589118173797355498938706146765450762314197269969051067985052356043405758460636323185489084782677067101573080788256689607674432948966547717867499258094422138069797385546299056769617144347947185597476320205411740723924082554292198721162625140484353313250612460396717722241015824873441737529980167877706278698781374755997121190535518026662728985369072361133718740427997773127635992796027519380953895212439242365982699289869157442258368440443849945235123220332584579718603169965167852217358970153895505153097573709312746325931898400352183937363420547078658533576540096979364424080216677137172488369872882703556703480971842026256336726328002990765268488034103860548213153092452412352471741354623014899982281011272652908035133895644146394846959826374329960554091728494300957196518086694704052691529787664451679864903183495039803277657793892415289448865018800186985737141455979402038135516463884560388645792407706955787326751328121154649993432748035753205676547437213176446562737299800225591431242061389726106889185199143473509340308190457298148141863104689677727278860257661578971050388490400193553624578208705433639783675429335598535293775511533081331788282917924155664259218346557327623549534174501921388214521809474041185047385058025999375677009447081467318201933150224759851119559339381124776016646744270761153757118169331302252489473170221729681448096960812811662806862102760037443892047451306565622240714289186576531469562636821084922051381730065864884603199410757897696295316512381119534626139193295613587558840469859421176072115194920679316723431138423222960008321338357073668509126159809547247971369044070318667418507649453671442508361733180882368523365076514359484675317404388986704034258867822212949240781802129133107524643135474795090184795603316332124910834208885964223710029227740528124356123816108614516039153923509412447707069396471940003730235873036724639806804313318328413758452073347384282491459818378422335730441113075727113686859375329917309621560208584656771937933655212661723779167531142680892805768376650967948233667018439962252849832918668054217352373015246167577270539453814305152546569082661366045473846785514232702222302417783537121597442758804522719612667169366394205986566287647172978069311760832619414283213602562485000967133528511369096132348561195089028607777237053017080661713729523091896145608402318761760325036671361058068477489586894598759742192262905774128493189673060525615139605542344569376594798429201528815071250756596534346238661153287710684136525458812957335919078227248063179640320209530907807965019303210700939289744728640754970056655210751436944920705204719216291526834172659060445448825586204676131102837148508810645623609458089990152694170913246805825847779754179584336336553307199651879667901649980280758235306308881109445961589942644650733337584836166001415783839063638381723268138790517384507504920033516047015294867253812882085677085192727193658153248633345580432226844207809727623835471450623725141632900083333045988383799403098549000535492589488082869554820945363810222373476167539297674279339822405347054600887013909448312682147008575598614023409797584142629520332440262031511537863886425030462366009691220491262470440729253860277439390231538512098203467624416431553906665092754564056917227060367263365910140836051265644149014835253235227424982637821201637045419514129964531844177487851320802719910785981848984038336750703910939594046754989523505019825895845584794580053226697282935113250932588693239526422978199821465145631891875926022169876866072687951288273158296105583106585911097230415042910705518650678482482856023489013919479126635588390224963359492932726459294742387204831670530741697064593854968191398920631273551978942918799087043765618564386386857871284995051155584082019090070244218929639485275111068954963117363707115411030707170373915991144813659477934638262239375512252451562262050790949490022074693845360761977538312832728694048881333849629961896853235706237161719371197361147738326862239453004255680991870229351291466518741877650187464187644909407003265286032096931045315075254629407378197381059714484117278809179245740856984853437797860659646156742575538115009886846330714411004915463097173523067559416339839394417167734396425672055767143140122759323605949790823483199648241410798773114033683967197293785329129533744636513114256822727538439612504573178540113993635548383782752733900588450173547870544911589403960040579826736707444135243873336945142150483455373317165222850988894353031839286254685564891644430715591936121378299256864842714017801791766535272686548140713142323919549807426352670931836927665347371822547584827787891619179773085988295372557161746503725086204898611232976545894231145791176040519155755085123657828074781948260231417770417744448955823185018477346498595095665342442088753294794190549418244709516621129659600180928204954402965994139318985358768829685811133552570428544348609526962300952842728822239790188229509073840217556843528622344656483727931849622193201345909397317201605066703284011711618314497500716957408542310804750621357684791621260647517426068648383554739394560597224082784167663763924880804600169652573158477444222224482560175362590241659553934155823308825366751037967912628686163476238530500437268050526004054252745148102759665656023330014659495763785725818326552450740472224306062351000679270838756230315446872952592730775487479310964392757914510422459037403927962822337585692676307702613003530011854925661321709976696117307195057105099713766376586055145769062263152327135034200708786805757725530895805943049960946314108612175533016359401780217357990089776380585796007904055688183372610783204586054574401862113350928676138160082978789690631132067685449229129747995277777725879623322972524223019358789316723518618864145806383593548419523630679710668611644831278570649764201584579798217653449127588262218547305083860041653393443871880831085445233837391931307001568302275194364307989806166372406594966902973250368597304957307003298567495473527664821467564894140364020524909585012578596791323414695506270171581454053396704724333824126305645466479723288839060631389605018307566295314610843324979507466831083113066134172193600223422506966469997022174318754992993592188604109233604451717298930527182016328843959459802667989186333300589864060427054242426061721376384450257318845807328979017304940452053678332510408797456892637117478008045796261589853946763460264380266990761623124043794582422481872276185631753660621505012361261458105870386011806870061240229409630704775793249578976809352208685445850169134425942755944561135066979411124552805031683885440565962694607798770508067353933741911643435435355194092136454633204162522096050504262390046634602265037124623540499537844497619088560139754648707322425597766835363396277920951947493057777412189240855452467713025844764613052062569276593625405622130866189621176011935169762042115852364728874659418201953415536037843530008256835400937005697172042258739016114428314009801468222046778956427177268818049533198225862999338505816143438320658202105010567931006209665729185059505324370571819814090077260795530737395321767066332821881879226493920232773183935441215494917856629800590356822374410455074183664519520001629363424743216764602873724161393167002063909093658401663762324318970313979124080627359847824001156854571809543833689779698976093737629303819403338827149288811511119837480443898702072995714202478028056607964687639781828303085040587152812415152494301893192414432681701303540728752459453210786136676135061887601806458255581610132929585467482402583194205001176655551417082563402361328297411928619742750766830634686378621761604296594353140115236504147223299041276711422470289931308852797485377016088858722047178744480371336904963746826727837072073122372700928793045808572546328622098038481650064117663763706619285606197528115100794613487105730431284359080427183439837893277832335058944462144901657716024677528948858258837740950986588711734243329525900465054557869431282729993506542831402835855176714542382564596198180504190777874533551386234836319932139135209327344197819539703534693685120574010697846096919792527507633274748883459548244506530597166613781319938334923583243102443473838410889174310790687518612479635169922016372402603250291991734959844917910688235489087046450937877490119686157405573786280728668200545558891379434646223702192684826477381825704266982303127096264157028973872198921895387106808433112099698571447655598063713318407393664128068894769918539969572537572074415640103669930788539847868371809707185837274515580695948397560384116831040265239587195014636982844452617712580196788422722140740737375536348889236661767683534013714286307893483793114408365690373777894694832222735195330567574721433195900407817559505567979142760693505304842599747580926987367384294665282075941219380341614341483389350741861236938755922500706818648855600640358351257102097625750198571286106492377748652993034541263522595902866879721476555633885134427883941189111875945788480551568129309776580081415270912482720773601351627794727932718100826427245714226212796034433380272794963202212603563466000975672916212394840654744787356993149770828431672323818842201217855899325090488922900468223488814154568785668157047261617017507369319950155283464892966148929837411702903812055072797472129718236694640073864042863118648737965450655441324753120061374740753947329873612193931361540800049587706468832309608602053340585845861216115396578434411093041141636485829517134398736378235900153408652005567528745076505405977852274769982023373174184735654398628831708365742455734364418698284719903810766366667913068456190293820606915775871782099100437945153813550223434713890860549089128770734865918440881174541155283134315163741539519402349339741807821870510114440241078754606004409163136032160358370257692828447003661062302403707455751148806884627200829405337724922904871704772749545008711752043699358302888601305126993020449478989929068919538221320597249822706787225093230276125019418731907581792207315150702632265441144585437000691124381897724516849370201567310991542179129505596581379412545897909089221645058732666069673223581742820548078395680759766635154329137166988933777934568254760445850491218844260954425883751172058265778233124553545842535969187195260417077741213271804260607048637279051626527555320390856186921467731905746950059030712463216635334302321245663187837784822211554200449055760196529043274065582343570262227986719720973134572626012677843224475697396571973874230950240755415985178042748415639509180211394577379074710684573554018079283746818881706225460717107093692376003439329847087212490092622371937267446449488269985415093078571348953667111370926222242304267371973411848563824607202527359121305456077299689049721428441581241981369100302941608299895187704494463174939392983329046540862951099984346701729576993387139761618536757562307595998897777676664028087515131019446560027073681630918340473471298369669121353885568404686714993647004416322462925502651546554284228001599284791441777076738622767579496065009016289854136666490335177228433392739633986744915837047367592070504313840749162442063138189390673857095970973003894499837528132444074952159245963650907727316976976297319798888080091118207891249291923726464576362414583631853974942482285137384151210469601122254428173407526080782963850892694678606562915177043606094033867819846818368098927352910388591452206861399426832937147418483852962280199527591351549773304184459474116365171313115126318422466830863361971538412054165342329804319692011349486356552336656866257726213550816615260158590422053770238499265032188617359262097027874524460560873238608713616872947707788497180116138463850785669340560343580839006613531937862606238767059220367500798471818927887063256259117976164382404207617842213872809231607298105078384085610800193407233499795524304441960756964470092432106413829151642971962103635180117053441278088196427827104579482343266382755946005191125549673431472139761245864067014532154398883073784653488099368121457449853143242394048622975898777857656200613923950309020669443876232510550762793250605815098139050120550020337408309548728063410850338589588881148478487029244800073194681505810891411592348123027091861433264250656180245530642962934395041987468534005402285505075950867765021920084624970803455323756060771181087475637213203562775091343376636191392339289776301866051591039242253001047520139674588253393499523449386832166430540366096987080928698067168884314491722057269219356913999220166025138283958303743878315599354383897707849276097363877212218350179256337857783732314534040181458438711903894382280140156058565414625371583400007640563493861168398882132853014259422766147615896533282753823309915198382663106839047966536240023001157797815366126322233582918815461127231820333908758312568854127398503176631049199054067644246060205362511861447922791194210796872678968920968737414188582437747516848572407603418658219549700528240033085461005917547289481652729594237681713286470048724960528986703168215539274988535771829899374505780352635467169656404633185437349063255383579240574009590077725484214418092663228230003377379166934684961819800377663803574411735727637270346345380577466460625880540584791285616936133926875015799726836421846724742462749479204584875627239094135321083916803580458889165186393483436912878163661071805161603112989755862773811137263302682335769988990429441490245103469790871662960690947254991081790810183329713001831986047917986636751276519999348495716237687004010818715959016840153827314369146501790938959166772569073470140019910501653171738379562345926662230488777848057334889107187950004384022086926992442587375408915707276501167194640145604250456527151426940465685512171313696506841201139438428782643821517549244243873487785719430826252572789474209551994440265859499653043431855377254274253601349025317494200078444365823446790279710364856277337977378508156195214342549217082254500331274117957485769902118904824027914930517220719063749788414957310514612197903364482092400657266058294166781820339363328270918196519130462875917371259022116086635542189793671883451183096442116863719629754769836281743841729377969376410048081558430322431472579728896399786529554459995509132569287075610303078257317793130697347416596914998564391212764377509075092911914868128820688130555282201408927451942143239251880990867178388125496591744147386052257035989501213881128438534899659114480074893479635438654801088085371533918162207722921558047738224868687241534599577694727861081300402431964449465379571195502981438965956392148540751343911909930771834831278620131057710896415311372129329498253946441186369326347034361877713270603401050519927526872487520193034577889166784318238681119244820878156745324624101169820972134730146142572240646883156281808879020737537084488637646839710807550647668633613193629298590111489670847261799408567607453642068028076663825389129195210331910495356864592199395478544612270275006956828641864282400016628549338169234498422332662269355784608288389070573555167552357145893786348951989110579954024431031336359198316729181413336204338957939070473130321054970540181228397622933485387104095929929754210850076018456053288064192073673818353463805595076612655803249043938493930679105512285993766123525938889927523903565240521481259555883235762824347188227356921658802380906177588545398785617625326621622860297429215911304344242568722017043536205640726630134078171643132475212888084243485242634264907559762346908669272388993868789965481773964431840029035487803625482016472640476158401342592017892314980778023258962900251149211794951037513515717526544870560727741736938585356288895350095182581731003584513321207800832251518365639290074959043105461734064241849329017293775248985838948255361185122247111996231138274955652071565050467681999723871069319141603233161262711935708683538538305895691215121505799193391276112607737366075741912541541318207317619489056776403351015023811049868278538422777779059510145685606302776182645994522595016728463698092122069816782331125799779482769454233507416145527467085064358932011672803980687074774246847123409680985323607712951350850389584876210566228399631577784014569479624894267686553320345455604442546401087591628444846009863253627104074068381000556018682632450067403385352955828311986013582098973038425434999127969731985397647016239737740379707095831375985664045924762528718899531607713405498775895109110464284809276866259003595044473601071183588798277259531429161427515671091922263724166965777003678251972583155046985090508886041188592277231262958686952016022940848288088363843069480575411405991817753940147493793657038034550571195553105636919663339166035582676245466287196545485550855106500886262131618452663120819870601336887705365044067600464110987263703623568940471178694926434844902067052812150201698511227174492977031544073320985340175807216891138884996528075906400543946422638219965868002559813741155277787985591922475259469205399707261033812296899818889815553505062704660193612852099494965301758027058930954474365869519830001102300428547725651589975544169180908007402072692170843693839944492449360699003330228139857320120965745911890128422871387663371090139688792259460815847352772057172108958195870107367923693980965990964882326716236816705979715938954685029369289226269124515521167420341155204598166275910093613296851433618379107613464765018133310664336342515424872306915044404958345411292376823650929205010965732244801096451336665691916953548504309887927076112745061073548845281500161410909637308656688278311261128208239774216669663895184655115114493516093159004635953941791524479296088344967845138666600127975090129534073229634714758078176666586882971447516841604821449407289266357286855271200037894537942883479834340009828147097228828710177016251025036379261395863752165649091726590683159411178485509076784738870949219710813056915603356236151042624048896725013845355645785197420428710737996164612491025903864992397510791705201182478854954390159787716106851901231308266300092950185851188269657861028525755529086766221026779604697921543451981778335544615247108520088203079357097530797400875975524297854812680657031666752358482549507387537412947975815775679677364993556592884670563734072559082959396100142587463458500130587413008722437702249403177582910925217802714919506950632595409554834949029055235286196084793225705991081790899277348723784363154923778797448139913955125020676683508569651682954210073011114538870715875746498238147874650880816952466110967369151075180103283848693846755942884045276445659461885143806998895953941929860335516146140267256710427253229778126135876613663273929259199677015231166312627386488119450513932588812819804590678882034451336739708347926431715074976384570937316575247099200157996763121829567592703439649029320177760725182807656574012018609555638327909203836335712142431831287357228125005125942628892405369135164484584128727693006207541086413862560194099537376036991977014874245959915499862200295270829044506627482395156279480475290910790852100591471176858446599442643378089991443285409698232305716191314739297450977707159595450680263873703865232453043918701564832300762103715877904387324030598988483041209602190424081375407365777391207890449008731213484360640022458130153128400436691039687892139412167988291027954328354875659049826886681580432635644174884237606147984353076208677094016066413440122033798375715574416481464879577263760819579387011788261404074866238208145357265770969812872314358085865230707388042561016181159532928202956959653316464405383061149905052394780384523154896006803616264362962184029135453567586548620366258707030085662387505611476163727590331747713890179245937981276598956779351871279493201236557227252964711420532979729327904332541819945641870781291928281796521590511995876990259259147288880175333296256413305397344186273184088974490558913333210083278851941943024763065947633486963852523415996959372054979286946965395958918921765171824763504974113869152365500567062518414093348731112192674452848656917852870204063152538207677283879206499537945536785493994711002546515933308922752518757588986094761235168528441650479464845601665201550641487900282023325927861526363040682331397113625646898847694952617624919024090058459177213143159411400505634150487566242922917298407698779083965318191062349513896460399316513318173615354528710531610034985397429969051587381393692550922854119580424464254518436763862726406266424635772516984005841826856021345204677811527109438537603534498633776709618529006632967256758407090181515615170449709497389751422859095534728914529378207881525627457188367242166517257209775853825921338227071702835611196709710302598936029148992766573851405615890879941579629037421879608570277870908793778448785804683529691563246763041041952846749332448171173162470704201420465857185321188991159481633685640209010224605543463280863388761780418366243954755834167591794066321973128672938721880609726470314059391767008358647455402063124959673287381866964125518119503786058033074998742668794587073370346632976067807032895540095708619459997952648808868056637390240202373979159415188887117920733622866388245053323468785367620970604820006566447633236999873863150778988301190578652337976013443298820174546634169758384197137017554650801302307998075434686160272878168971395663702128878051664290000503582833801973690594632541088726799415849839194598269342873304510616648912227708549807099174712920680734633976666502565056366594759981490687534490285651608587026314890598443484511678909387622274717794104147773187661104380063839052495515304912200757368602687943738829018568506755853438659715595564653242432792347442456065842044657418338520597487412787743948714279580071721113930604257332464766425460051021224022179886767165159343479994675221027199291500596271372260391563568051395900390733646958061551137132901000120110461330205847068325604019407014960136941475794029471644604575177732914458868930030665497866270496518181510601473636745935686841333867495418101902955393388272938739785612828399700527801118218198914353048997820747880101134466601664465281364195317876878137812901803122869779135874163501224208623226727054217583300014496265714714196017648805103735978717117819407699331470391225672534557775955946424938845806711426753868331841221352110172277698336697786690953106251754353909856285757959070363927841813865285524330052622316948355777642876535564501594178368666646102302633575329414042996787715282098405334904480917829491848285084167949190262881918931110076089558865794832591298156858268148495850480721650777322128302577798582954646540439953433976125683389419922927023194262906893006224004853144476483985795462259449552400888171109601174850809179500303208910562620627175241682993256572571224702711359518587609218801672259836470267931886337784110095439969664488281627528125691942322561328871792423792017350366231602524759484982636506728956987522486447994711444479917100786377015597640722993375604041288380221843916122729867936693535986620668512932090912534183332761092225260953054710157032897254875871439276574771162182388928171639346426321679141841183885266104553741400142084351361197679437239661661093186631547741372541638600569171987371234639177501949372723666209151286254876079324804362899316596541536049205199922525834923700337589297002114475527946382969336146868611948137592378819490255230549634576933471372679803339685747540669873612685629161016961437545091309813472045814660973181936737230487857174124788582823916895130620464942917089646724171693654791495769780658674622438588751686625339403113268465800703871534900475952742753825395331190927240005444891937742763553793216532175825661760588346018715898651247524387850072561365370736459560947590987991315031746923217056223061982875775669476463585482948692316380547692679368571157486257695235521113765331669541518870630929828763786539464569931207053025442913334467307520183559086094563993042306339253534649817548078511783467323050157149489755145458052267457366350849637899650275382556231279951087499209933851237215331053067091410446433711581376284754900517832626992315459233756449363254283313542119971465170473109243257094372005318436038727209853547223837990082702793249745864904999463542666247210849161695841387554533368319904126964265973172040382150721224887330955034468566047031217449158959168703169478110205456327941192151329704271965387330053185877372250713311828961736715598203497250019217667331642337919107697209946691462632766150685771847223932684076539153247788943919012337078749197095595002421894989423969229554541391722822017671379191090295513749777787496253312133317256315113558383639186759064597217697347111778555129452913003925052979029039955265191451897689013906973308363179334321645271605087429916773435496778311501645087162678680946561170129962237080547572003276592281783432223687468136785445841849907218464053785420373520899373096588577466306549882847019489811203004332502639350109904285857839997695170252080687614420424234237125528962726427169939874346528059289236209799740652454645553753728906462175587028607834226283093145496767950150807224680592133403783761062380610829067408370071039582876524529270601849365332891065369292178766814791116331448085581467868519118935502468387723917875740540007592988349405325137938911144506018285382589622724410431084857151032552254030832932837065187375218299528439586853915262310042399594969431457689256204129870105526659467378742440561118913974730332349610154826646948189601929963190275502359816332663940753860281244544380149541141443826198083724087807724351289108726837445470874965432843578825343317956669219453494984351476920591799836781814539205339871405223709912705065496450566606029693290561068305743817038018172577335758308131789709899920248270375580401397191371363984224819244531161190151426215077217771376709222327407424225165379839603566849462051887095007937067696780077565219456721601117426756385460226983454505359263136635378516811946770942158963550314886415321593847641617991569982614999835714341614818742198589399438652469836448504212159029497289771640649404799701645546021489067389191028069150232711165220437757872112699662598602926654384874874719523981529203355883390754151636915091123062119524502692784939034583560808446223282927929773634916701182465805357386184148628499286456638597715451369812019400026239579511215554178383923269482035785807936673869479244898641533393704696864660530488326520159685906700859289340405691818160411878946816555613625849450123447946230705129980416948095713836978849773793156429583991346133180049476466231801705005793613203223683390235328803522408236047730620619458631732552578659742618182348736988245671020203319772583385411881566139832826855923781553725296676998155419473091379580201369508716261536958014737254749190666962975358813500005765978924131420889989945409166316395763381896434901783485858794556744608656244109721657660423583952888330199100015891862642579883905436412453257821127238634712421223502839317465372928264037670112373148298814660105994841620499189519060317050118384324963537809941487699897517075678166391637560930810773657000145576078431326376959966450067590222878991394366988311742690181926295552034719076806233188541749624771770963410129799682446550999597568041008285840614437710834144071655223249389607153809644880091913421029638228676043873030326446395871253420684387794634054856557567652618231487769083508326691901378712876623843480280389538696033551218636703967627170432202500306379041487900521362731083064632437580012235487139346775991568749310392254940813969788117917903671863419527446823000217547418838447782906805521228880866675399109437847664099759314575472421601301051625723706487257507123426053996223153353461343497129637423329578395001896639263448640990798939118750066370326751111411879343591610760260905045903729174204809172375080395192401810280019557525616809645184320450635480875537884188187113725681608924206752280980674137910824966190311369305361952945034126284277239690877822877634546013425920583533667614884776602500120608111064139674001810265766575685477638856221665027826901506078720903546828678747574423607443404552035481746061698220806347083658412027674574241072167804169506891393236861583276044945607613856276365902121656497053945600126978071706428341127413727721203150768599786406495575570340867853178877154969044493275896713990298518243875794669264708794983272542333706175500599120478069017365258536974287140677883972377046609207904548148102190893087902543520889367388001895119194054020747895836654577299500043311733325024564960320767690634653924231393591159933323995084107126791818851400938647065513110749154431207521697927976789019707399418983993356961431368779775295329131158132355608138388935846123187350282002786564464893315559460913511874806699382747754782135410871576188145450471963106504354384058107437569677242800293570591830902875273590448416671061163955995635886006098744785027341099828713814092612511655080690265900633670115948321392008321201328686940621217696671288366890466808665913962174684878880630908764822768009999321374797057678362907708035400303785548854779322420360765862931768178317920626937311412450900970012971623207346440355136134860118270687245858363433073881912156986318598973155500373785427605401086981316847162983303661953329694794375289754726625817337076673917627866414188779758479517389248876719207344628920770658505346797240887579428862416907741346977923844389064685025774310761201423714183877195957748513208390169409231793681818371912652814751162909484655028039495582624862331680899556660068661390061906212612614370998605628742339829045032119005237021184740861580343651380201810083722283142034695207818735275010686616835004289148372761411600114184791041174367486135707673527800500428605032741615359312444400767701945878240145170089781106658375417093331834154201324895784744085680301708221900333604200585056505674523328028317572075871840812317288374094908261084096767841582415041217200224297830579492843184838954113663176779892681631608954089797430219168103414495665248987622607595552826035677967782748790038757932629271692063268607004039516623507974580278224576002419721280672401967117146618387304927283944692086543919606751757181061711809725272142595828318904430791549606727574024808618122641004829347288482800251672034975145268024988847213861531900259256209927531336947039866009446851882438116092063252847676920399210073630328353638198152449852181193345710428675747571965965366701295085951129320981480391811805310309350609122514340535897141649207045437347853942565501959708213911664791526191284244853469581475880611011406451717591464771099351799957238858069852694520693892257121653157221484956754570553181217072228748571166743657740975109100549272613086123110165912963789164913606511774156365953855294463964562846820773227107386205718639251271999323114906934882791346032048679057608007617876265330769807892886394167320825179862901724708339529860356804201432093341408448452062195385032088524965807237267126040324562429239559220862361791883279478339201469190116122747999594280923583222941933322367829445174722913244023105156018156623084484584961060271229023440144521864920968282351879122828804927166579532335883439412240892500553080666596588787809248475085789171733732493009258605198869173053328247494444307274886942307476891543717578766982411566011585008465180255115596476246254493532661426429894128589321084639518881826717696295076124498499038208047895532226276217797051990152291740335206510393626288339273360605315146616092600507734861749082247776192491181931961280048896625800624713396748640583909488210203165120008872475568853770380428641356622424291246968324338712065388005086546841022329699241452075215159813426259966320342979322117745080986936572727626983571883013063987988888814209103308686430777438425846308825309583351331731750516236101794311369991043914936114809429231289617605559627057818364788944054954461575469427229655758818397971279235676803536041485739155754254695145163165523148536230110326068820822665846646295786925231695887844157654911964127541239449431892666738001113038827211899133114474855816994717849576981803896514337293097900045815114299885509392502142335237531788473616718918244461187016384950510273598531739386998746836413913761137246933376047012713275403308703545853115329289248144303062274206342762836573906923717876067990070399111664392078779536661186350350741027479104334690655037619291864856894019764976627680966328947680828095770005782126352759424034062962919334279494152258924809792576714245779896885924836186252746489558711638419383959637830956902786018749334656110908109417535992132135210329574924837447528282594654876525794188370683903878603012071399588427377476505589209635456833026208800758822131610051230514178647912617352617515003299299650098966571357847143088645012634642485003184835992699220592241344550448541758172944923440349966023198735269780142112374050446694588113562579309116648074200848517736979241201547171088475854117518707929982090305550826722087729479459974480367241438689779910524676816823617049436874188994363431857910809889483899548001667597870842203736840282343007962440818309380246658855964896395015782352102507091153957794549125213020028798938566942412027865570363555763289185793081959895809608600019999336599306855767739450201205080710553319370491171995376661931793212609568764495167272464304193751833863376073661604377879739749702618358367481108751548165834267211992672202954672749772525838551048829563711083185565445061172033236445875432967211475587674562459934022512516153822515515987851819935327099933842707049378829565705887740668395907516244670510112613794357183342266452428328121964150791031221657090261866209950634610972057522788355789428573741791202102086071833533834772457839712227965564296206068006882229744839845897226591677353633470375712797731018592125603111353979523391408815399341064318649564066204972867443822866725963977295638236112971573703556984418527704260354547283457087875680580753310354053504438746960007588470567580761904435210170078754706916743826078560183896303296080973121471306854210663658569154531610875982524927320240668202131880815553841242254470778603678150312863340885839529842954756527303698243060273191785492243740661111252429433259793522212690272009977030103119977511254578414393041728190034709373310532920958718703049191918697358180034645711426656921886694517684277600036718911369718522854821484475274048077362628686438790170720744205847797994562116653080890037772238578437761301286577247578896457527120670705605720947691583171725866249813340990574894917614230302381566463785758762740225679355504492223506598989692005026878528758432418366504129543252145162756611876356317112976786328983644321415135460091425076921896422803353900083561343388497283238463560118237017659482645607287016476008327437991394971202617203188548233129629665492456186845102729983003466224411332587071654190301346016108234480374376608281337501472148385827247792683953480064715797181303998621606307757556298447314295335461779921793635943358582976146541869047967237557130956987327289016106878362303738292958615251245116330736949331411277258470926158043085358054583114641766669185733765269988205198670638968186430826316184020931423149642150735953848562322827930945875414775797757570801821904259732090488044910434180309488868680298910660080203349629038726336164912545221068686731757731872115491063225672661045539271575467754930310290878184354938829668716962134329665881242938805649737182630803710243039343292524003383579407371191195018353006722147763801122754807641859584229916014087459002771094494204343467685664613975627265213995980517840462403443990330567992354896009338796280766607938873509428779300018113420242330901492537764659648881294107997283213631368527426849452689952528697849184881925906423925176235700360116441821138846339162744294988092853048421091926410665023467549298746149329384582484393257230210617763293156529047282294077573068878716625044128200048907794637278129274811376801996199753422366280262585782152458274629448111824828025514609582775502555501545850881742127861446925288677455992740488364012468819529833459782907166250559775068119088488269529955068959963670174137027363050137354689073201703095426270365516554919905685993747248263223055681761913179985017617356428215814635737351242908293863219945954005633864623158524034101846475011856291807733138832166287131463339314204799993573554151271045884930642750963125401721651785028115837299722939644904529854760104631152788347235972393063560961253762931757968247750616385560302535661697334705030356151500942741673294501616587500024710494309197753227908448374887095529380235121882307582936803279291734949395318507171966591446870956856126416669207950651046121469325125493145668274044556812743481630849668127705050926996949428637629025218312975007188797838580853912311645185405396512146576345792413716981984170356563526076735321592977765789801009704941750520277574618800415803780238226469527556390580912200831274926573926596462298097184737216232540764436278498604817377210304248960324146683559393804713384117779559495089366857374109568494701695197444024281329073238177788762036659021534526841198478848606937654244902650428355199031784471009773786856571850481851342697908957455712021892532887606327327385338976136458407504611290768486741017016009330073356924916238054045343589856072280572503409755135081317983874407907474272864923956750517453975347372003927529769619764143680706322538838046556711604114193142994067116084644121725630798823216904483763252421022117900709999209534711091273058488453239250679016499980048535974306289883488935374047477104628551218395167586164728959498630027114208987348676574754171841657515323081341840885432446737474167389529823077249495513601962980911538952884518169569580079803161449500591464021450822950767688975052972893254425306522103500826700702480657983371719566261522616499779470873600667875472415246768255297618316311338720204891898487542917566433959012698582884173379947906122982258710170015114098921784038764029865964408539295798091632797102872469534704780048702412011836627735735278307063022982205229809847067762166417523148510714713518040614065023348379933166147590570529752595135094658190239001506249591365924438627433555366533927411001915950917342777726392357630956386008384498144256043322076545450561983288249602161767896646805304601340075968392343299715972801601440498473108368394809550202126162650832817567626038662869962631648020144826200680665581045059889357932754081477938264448907966277520609094714925369295648217613040838740539082598093082289553540777041939906834559944700773544459105427760075785764864468945063813237206725260433698841236447888581986392410698139880219067946786158759773308509236140854535749857077459247387296754031070230860812630198873981760650567096594029078235991743300256224126494527874972352952675141140338280456348874354460237009306399404072275884771886832937192639763710287677131934396899820202250951085564962715373807221694680828601459603035183400435656946220727416884159615842222670418789916274643232287216813593500849594363087832878731660770955867230967681864299869933328401359529575274810222635183267228816031531446385632568275836883948927923914923198304884122804294574834264027294305837090419343201438252945103600408855077366142019652736695101370059283203418138705951491521404828754899093495900684606623117887813478699652062016581327652412350034596188680971364258146269262810718779419888674940970209673271802223967426029627344463461214400019482920200263733508024257505388395103448494534421332874831885278549909671236065060674736678671005065072522861097805010765571214631025206734905157739368175088298040067702407453226443647834980210377530810121020888924684274555902638998704896498069056703199592967751082161922174449148905196327548684958429608267470188099628595249664071390269178176812727450352495328873203592171460344216726405576906120044075223645453460952628366319033803737088269841532388130431181996445320788282459012225072798794890815383550984697970404625347772338310286417952022117886717890726320522801695367547529207111449920360889526192021372031716224559090890809511010778541930605518328510241271977847777496258308019322951600309469744185157661748555807375210012253948661613615077351963668882047404122242761167581462415087414303926079063392341458533151076238077239751993840903983822934730997954471037180376485589514162264183369312961380652804906119779573692940924504948785396541763073147059487985890095354591372139025289577817837876798418410243557414284021914717377880676715636155597088867851858477166217696978329251446556884121783121128636828265494763358010748244409015110061246474306800544708838717675528236207001153346114373420133744063724931601373891899341420250820683143893650649426063638861185768017617163260203330053672057728474361407343099155316772374779158727001169978630730919897031163175762861571239468693696216049760447267653698790533796518270146357704178724694546468752379375340180977831178668255606505247479499556315476681147655970761978773945849685262544733233281652421208054401185023905048399821873596661999035581063002346041793761674030334963265899421776888656896959564373811734053741449853694392422335097637694679584427372368139360033132023424211379206954774279775353939566198384000769320024097263048670274076135580620443583466511212618535261112088800740633159249413627916902175938080558262033298796102475525597655175987159686494437967234057099917094143451036222756791856973980554325481136128592483469758691884883275812878677360014019944228084728433740593908897985323481148799867023913897471283069305226338806103278788667957500700617472069710555372352024815125343694287798864808950019664567125034084747826187907828876902811475802500850878103672711988591689001310409453238978886381131211625284895701412309825008984471516170740008576334613295539116645569559277325162393261533092064955382098550808133212903010528448719727507040353265961541328261978135013970307817532851083165279041079276906636656276425405252068365383851831681864403859770255473340590668397356314113891423388263293250786732549524443500484948810209708759113198767079680421025080623105182808533617370557942876544877201867507770766783944511841686187139525573688924724258565096066171705547437525333471442022859488298714419870080117386134424393422995354925831327272438737319543543348144497972576171553892515868171678202240672337671116132216371627115162743586450947466796601534923784840074351061206664326157295400685079375558839954640553311749489644392949287466930717671528907602512847116971909675746986624336128654126688650100671561333005234921004009808317516745745652174046662689960177263855664065125901104353912140330322898524363745321115005533970794131495066009867966929878782071808327756064812899560824939207091346532455735734899645563775719519988262199526548360786425244568258755001882284818323213319381250164890330608078081558052756259440846024400412436161914730889037510805862092020513566045816173180294586193405570190040355442049028749483871540501465178151129390557135205016096094963151115768279120440580695437339617499631291583487536621529629951731927276009218086416894172907677279407828992910953437070178500496339315218605059111967618955162123346918166393755548509014030370242354318690088518417083372789830166237114786055238616504023247955991950126384105995622406276975718697490904283796446020699608687187429909425697405109312460681890652041985101596970608331674800035685287778925268563105293998747642413775942997324775628293033037785466706364622926946984592022590542656733191360731929885406990660445732133204030614269245091159265399103523250999009358191926593344678070315217105398897084124783929042813940558338320492728363451034687739528414435141184291856242091613994604427609565914945066429861122918738118645447513171661352760491271401468825994493348442131034757125484193629244810694931850963029172930703203799681609983776966163884774219236818153274185686071121822475119414975429358887032887804840839343188567582007358400420829516725279904112421446257988095900513462089036212756610055751076459396782568788277308495648570640169196392425851307170083742603875200432847187357837527637369611955533259847646998705238070858201937955375752303872647286178106607147617948173238119874568540829514803956330321240158485299441835993635102317076263115426999695566432537199118891544045115732437689686381343068067454442364728404040936205100997205367805623352617697102544400834129004834893922179322514660285281525821334335473087070913650692437255111525271701201259673853116528562446036587686143424667721975670135937328883133342117764088179861265700804205435804130429308531078910461151010156506233049914798420720080204107066154922238141532769015071596721848261851047534240258316415122782713210729397941866023089463892625071591877651642971717777703352611823305741030637890203602779836023933135555183069087087201967434395661753269528402749308142814497144356808354953324793870453936180446812069668270834667464337919241805809398481244918351305957898021763044342424512678268196725657513706139610421723349550981479856159081414626389398773036530185178352351570098327223267009902434168851337686189283926540252098483139581123744669829030928162112836162111950830971393930020836582917913326971341458100299948123206295508731169366007228271180396119127799741187535092254806130545938731751748069609061086782047755180094105824760951436358465460328270147914418692637242876244116806194487653902740699179048955771796705756827202376402645737885699853907849160248286560151078245341667820524032135846291704560545704788006716877940567176315507623128126844745466118966465110596024214914125217724109312010634489634661575770011841032910127601436592574469783156493406201672875604853779296923439548479462141603970845070391208795668283025841311883381955879506139098437179536643443522479912799248617465329942688137725309292064583714780837215383958490515507448679486668550860887808808326523440896254220977134781751299145033153210119417221090476489353206557382663716347423912648024538060443943536817257278600707475181662436192359535729119445489598851841821263246045093174756669180367676209102426462934809251404889927012595715280700949177617590600445187359832112280695553268325435033956916781631447597957867150027219759198435699379084946076296653969955930024837629957327403820535087481580242733489879147855959978088966743446767025832828579159142446302088211220968574080937443546586526933730436405496239608667150305460085390195359512141681610209625653568126590147779821692652779544842406425528603990372275550473467347444777750138159433935685996399047893614269251746669705754263795218846877861101061412202715917719322739244513766631877991953529243918870197913172160012074084195587235961378995681852000522026161325746153039411955437217790445632978748650880503002303264966786616883820140637097030319230759084271703704726459045239419410511127195604071176130405255717387165991511983671269583336663868679966378916246403011994585072598029384232270659695706572396161758332167979424655200683150371131902909107654767513192816567751370530412435007875290346028547633144523251521636228272052857167230970713164942213051073558388003545119737259884272441925179814729783517697706845976009240962854472769611041262943296188131614238329113034626046822414578308682039538876760329130403824494616830901229736975768304309586449466148852194038753883792080835504973652118172969944723660157919255655720904239113947660076342507094021769067613192635625472356193098341618981308382750611481071858989025445273193203823583824169191867325363168434186982015867542614761871618119355481569703760285206663169156198282556124190560608830670796159614913017645580423341538089645131906405890604566328290557607218749023234380616432747190619961353603243315369923712271443444456771285062696553646226622406047781919186967863481164970929425090341049675173483214277199105377228207204575433725150544365575037394690873271419674062137389409442521739619187234017026386768010082485071267427970281079190786741320330312307448649254284009633900277212532061011654585645714734619694227808748110930417578316039435801733004751937795119286409964401094060096099673713181785133796117878371179247375073403537920656666530125472380457579529987113946040872245284562110796368455440487315683009314973648182643023734155992306702537188160666944882881467047680385286898333397955703430007063249805046848551941360058992310173731046923855499513485076991102690870677887721088834323856932448331451209821260534036578811395879925517375374672975199738280721379340633729205424461655457578544141727999192755313889273989934256591453942444922794066382644248988045111412451470340273073124986554001186922772906292927088765671885339088022127152166748776066683158883321768294788942982213490768653600241393704066755094600123433363412532585313465771805861018013308957204664642724724179938269196839829243463351986005900975933380341364524541282561070690617540991130317859362431966481187126083263347788617793727436754240954556549541705652772908799223574015907029128033067693177397405417825186877832986852742565784746602266920033863210662126453027526474714918442973627498076570952603878530148987422618452172618480863197324939931596007312072919004554325371393886826459000394569422753339018679873087205049874788775925973596908563628583898728643519010956337978568204744857717148741103323132599975521872250080996985235667805111965040129135844099377736394129454534301191100297250164969278059950537406647266471366343121628575316587190793210630394137654818112311215810392155459888049503238489347683094027451393885467214593279250352133711135876600492551156045963548579997580252394333840408780222521716963735540779822913691293017906819856302194709374814326032167419501883058704503486229625202458198506120387523315226026245066364138492387910785927400623594765707238883583619794530673599685853828427203386961642731500046212395731708422805919121364615239151295960547354401851219820214475594353647306604291438320335267658313950036967358611173667612424646357063201160811875285472288040703948311047706285887156113826773846817321452997439316884349276238902635368568464311211884915091557589652334945239716346069479750818546839168122360306957411069274024869808524127874119811558904996452244006930912384027648830515870252662796781508505435819775969766168904106775975395138581644099147116464750866606232324947300195073789265918339535262051581343889380928630914585407312009266174678898775744731376316104625815333278408451808231152412865673197886669491709846025969672255090645096583657605762829362093980225841250202342699803540619483283689027891258648258209759999435136356863679773346153052878892029179000664718393689524914619254103402558867200633498338985080510104948165349082321703815552612721692380068635494807988859432576228285834494419095822201118682923500061691600304687602606362029258724749371082714219991823711232323727617914139899938188841268029958499068939768731551618503312490707120726852239650637098286380924810754502460122451119620810836246279215930232730740751408469739408667947798530642682220964372806866227249755135847638596951357730921840462498314320854313832778044792680684085471064591308372980158753188570968691319614352599067299409483200520542476386800112565896300613872882201415503307840764493648264101548912993817565639428453948702996113766935432911620071287810033839605552023773736414754534694566085938320991741327756986308789528426622194651066854762141162272741491103078703381066923142984091527772370039960670586917776246188016931973955605662697495073052275725058871488675152146970178458522902375502276693990005238481315778813010031372454690354349463673911211680477658692563301251106359516303497307765464723039584334729176623362193525466467314215846381224179172256911371669799266395829990136851802206147717605021166159452091780269234186720893827569042311265632210634684379428767051678022059759253800062399675552639445031106187087429775949757463452674918542354642641120801895422075685402512659883612809633282881969061926080255500814931111164146979655711695586164794892824343729631181743132836020973241784702968200402478666499658509590724461013124874563007678325958170458700189180872252882136272751915047688576588688941817747612592477385019453737639347090440916309902610512043760569828329275239829330417788388242251027033749586305748954146132356426418066213437167346245803385229868761224965625031006456710335888942950042425712476433271677490277549927338200326555492743773856395562978353843141153470974553335531867099572317584530312264421602931284959157433311366449853550269353202299051016039979667678403098627851196454234138270502112500067239369507751583939406886772760685560762670044638496892852315887091295983369232620694550214291619359107713021203642992623894089680354739173362405349520266432057774048594368057293162129089633824086908421727868168538424553967067128453215620394477858066400385639358165501919790951665584795482650848783326390671464793830309359203639049173269488123699123007506383771425071624762477430410037564077497098508209392433932417999469939543178287469023308411394936940231818357784644150846273020022974863284913171771567904296892186116017944407843764061526720418853950032447055269183392274025553290978510841896345518556157114632960459826096061332290142221913958793218555416099295692160331019331835659625270878268281801100609969512826469321491336611717427775758834019526154417517804779428807607045285694747791792476181975775774852839184526055679823364828264059745089551091922538163711459969580552917820285835494591276729495055497112747026065556086324637372005001713720636789382215898241971750439593075230558896776287261426171674170115767539599880562788936783227306493578587730038007799421702179525504512784607568894824640217284109505618235445704646902043025928757005435694082654494002067739395811131858427615185611108065256946484159077273477330064809794000270518507973988172684302210282787859018542223907398234285740240879718302930404689324963040969439211351167046415737841873265849162875595907325400844283354832420423017652833944725502936235632105364640444843996147825957320788330962638768631824481664432447967824595228692177883818348887475668015266216025393305939313045130636922618662961792907874994771040375980060197419723458773050647522169684969263621143428111982566421311013563963712089632991261968856864504702706217745607224016379744116650323643282806383069874414384934466674341394278696843662792229421019336814694926338565501163697683935281161262060932226109684873889118768548438940882185683815686271125417291992365998110076362127488265993950159270301797068753013317513563863245257994035259312921687377964913973672091005816265629508787659211779261223335321320728967486584387964878979417546660946432012964221290345817228579771872764953632399083191296105495004726015569903675989365411854860203890524299648442430479714866498011723393006251152161920375575602769407350631121127137956364818651276429376040664961994923497216532749706872701796160227166405379413454846141023620983844743450195145300869639517485264033603528778252843845613384306545679031998602527161621209187961635302055840545469190087729079661936240635402530454250627302596163051185197583703073380354240913806029782316428167256313788685737978790136404346398176532743402590405986232932155100366219459653461443705938921953913117073139654627456411547775864215287992213151811780757520757136123735323027362131258245572421897195238034236949498506753772295108262001889250117630503597759751869724122042954557752390726108863566228643831582345480195252429727097654912076678519601906646678832531162370778044117320596037710053627897507214439941546599071018136045277512238945234368965943530122692576915216781000935580649819366783919380119171707833199323822149717400476864635604794260584344738263040266268827026396819560451719070155653052021963959880145654545728424752586318394144882057182490120000616228696279683063990922558618470951540164992832160458108728204774957240707773814934483943007999533427638034161908718487673411967119296425292066801633418042677179765188236791581971687382370526292375821157426454117255954484510735135146763142326967757469873670733431110756457993750537010109555605045128948349671999246572571071193955038910260005833373819948058543165584171156017895136240492712435829956702616041096552777657971913949622815472308506885326333893620752485224237671538315542331576338436289336712063299982548777843855665469456731522227495354886737235727879068156727756966242691949690950192448796694432014798059285955787888805777608670501050361732462374536342922513871532012556622667101967297044938897605726090038481716051303691109022529728855664072524486472467395951020094843028129606237244738430192305823079614154366726020212554455193819198296332648897515411585977847667927816295633930872359483808830889811403864064864314697777785353476951408344210260030526982357078552776698971982792481591934496476998122841937176533660510969111322946482938574871676782530969174630585144397590285690648232980255860138235036605848935276582179676073755456942952113694386838486100761174198175326108251060474163017021544867366126473207310335424144248929483866706954889226403107979550251327856951602473210339674443054714607462216556722686231364292477263190917635155284105624132707193713693621193538913826525214095399805859227389910818074539830693692794025554940928874879815166080004918897810883171142367318880677737154631558568946239813694527836301544741362541870130539903593273848626370484547703684828704109216494991911884654658737057580757214942362010215202402154301141457459430834098712126813571248102046325051680271880187071082518503134522333392186882519812706547215183333241452285871300217697091656885778959308424242041813269170452774268981876880490888855601253152672576353301442969111818055944305861758679547405975698094966654236036902836299663883831912270644886064419404345427262799546938300002469111253499949379453678726211103984602624585753083189332352274489298232729514797222051471767525070920256013766023908772859950682764427859247415437528882774101208099378520219355192248428514228135522976765134373868546286419008040704328330976941882690472482488280177857902559884402064707500258750230534414554567991388797047423273932128260275204045594893394485059868321602350528840205676739757442154137113631234439911141101904398849226157321621315252764995971011107508300257737737916250274625459750505483342329532067917657528414227789090045316506380158250642391203439972603244555521906190454753359675960638007932838385175111109537310272850122290704674975374887274494587538337294297958769632516150905361282807367875241241976351683608710087473590738366115460021482736713576060834074686950257919063159284166679664573601580378595117243664177718807587241865692879521350481392245848437586034496432921154415212481386268405866404651000096844281110053148719013025188111378220375003150135292689128588800960568934602803471724782713801859453883522827055614690157815956730307970186899513542690300206254856978998049931339300526948849757477059578839496713620782460724196043193378941386004254629036259097842085041354857371359936817812899646003584186676891902759364136660380569852284284663506500808706241148527040470165818042125826411736991829517005815311072562230553061722502509797684803545398477842268192458653341490934258200024378123589888503480840447064039709286001488028567978724199138856731312357582276564796799909168143502177619064228267938604903314520859363522466034283604848418074150648617137197608947256621796002822137678240888560691932729447894833843087110231530922587088479738898296726336333664797555538257792061487073267275329970394424285709180303128074339024131792815262503179413893113662143163771086891973351823162594174605258044705908782550118034017862511899741183958802116239414211956238998285040448032938464828413421461894924134538585575405221499231823944905974759212534601224022795057558266630177043715957380352197413999747684218433711369666441153429851500430750086460938198035398036627426500651742354694439581038646141003381286311236484326810656813320747957336890102493901181128516190540330973342918458332520363680507055490351029664550594930335411350148087688232839281958889683834542005063386501687459160456655167596361093458566586594837092184052143698693227756417684835754369431021035978322867857877103343897423696903398613499592320156605918141527610596604293737654716143139586334352779442239011584627801093886524519095906356493312469818687581379904615306747180497773912380527973562804231968281954946276230562139564375298186926466980352643217621524003982555738824107449172043508650820123141357199622675373636258892541469782828825105874910912056592467811769802702784648599270457330688852876949496883146254458917226419629084547958428909927635392165213267614418105012565296376689446649223605189618579867502400547591492573451558555563366197961218051083963812880144918080358053816863120711979303166213146939398377654947551199914095334882771174459490300191186143771262377100079954206554351494084957401460821132881174689437100749397647155380622421010724038614238391050882169603398968228698324566334553365808740159728399386188545184849048671266665282064709174462579620494429624037259594320706173645831491004024105356684849063838545450888801278854340661156003140185776894362079264440964883949974993864410022888777214467332223714998084518230893425544499758467547837119671898258576280795019121961011117100078086439038418144218771946885851355740290793885971215352207315979369229236094339217691097427296148906814322936204873426225032662928768882727939759885006008136738228626829767227840520070205983370946216317579830835250415531013238438441706786274705193109177243424364803448798552716528637598678588809761576859920138408684785756670120474977392594803060643634531240765043221158686125181695765792376535011837920297912322025012921309556666378279551581924458991589484779221822982708480453034112493231509205117696550130112590903637113688319932108589253000204455535183176178616565322276346836460091946475304930215047306506957068491743071982532094283046820712094269937489532419640493828716044415174829660147645168138078452458288797011472300830122979677627021640745465702781538030652402321029420066093141524843119888364748115701811555401034925520327125852612106245654687085013235676030114116312911973586645149147284710187418120469746253970088108443317770662160917996597662276999219672284750511421982821049764635421111799479965831314007018575461489568066226369170211228897220831571218905861190170580645432652252399996107934053100577236431143616028602301072689236227958316510944264261807486625363948228396442318681496054466518703095285741952706257189256105299305631619238502299182064216157038547509589794363300827456612034691551175455696465315436131911684051361517721290951504397505299747277436169295373072689152493953523262196228095902860549449654484422925865271530116282651206786160871836522812580326036726888380573532358082829836471779172736781041921568896903732116406172789042875087806651238079114020096941592918314025719588312189953571988100336390637973513018870726410194501950971624908085216669006268858642766190713586775264989643094374161961184955273710419023078413762306734637523351377057063934884803759061791673794382316876924416550362158386688277771704201789604052529684877313487764975759952472193455830047812846441901539760966411410622288179159889169732731466241744368373049385975848963051332527569364754283889534374136286613226985715065576710233745722955228233799144059700307128723535040425103085291874574294955419042086610138060664511949653050619902234851510149752041849847153918314383377847873088898538560142866727982138914248622849308770442381206048453788375835169466861041446886792287653240117293706807309574415094294309047553378166611042050296412614601493519661013196068900278905020413484867489705604068964276932967746019332942230259221370012057970838948185351409302179654166666239807795476253369962744290578963736087510735014496688585843921562727975834604402035237174165554241564126732194754207313633352193386635144608642013676895973267586818765812667487450518980494552354330121206407093683364990696769865639293727127310371428282845145465219249000063752353976862946644368031812131443331157452593484889649013953051356163374827858432795051735417596836844579853063585693255856656547197667387228479539078710676880701607389065408524015725494359015671827202824469653502908775959059252977508967345341647527117294967997424137797264856132108020598294795929265198469479695538971286652896233857831901326001232173671729466519249486314006146378678083876137739847513790288933631766264526870884810077680123860378644062107399101269366585523006514640488002662395316798567935456620832439302400515594003477324635647378918561276458322506276724212157508238977199621036087937466318837483521581688881237360717741695732071535702623012374480359711492482920189032711602392124605107150363182609841905130239733248566326519852381712389164266339152390681685431738362097471140775725458929519773347996369417868604946922309709420166292479528814934700532767908218606110883677071919109938288622283306446102396186754159876979563115592112046103515416100389593790634538305103634059837378315118278721431902412984281280942815404193053785376122404953007257614800885435813818822311661024632774217736553499212060463941216390757144081450688232115338497189643293310704404700506304408539529960084960139701155831489022636023124867524891559464524430539689440020513072185424119067171488792572363960800665431411491966096755985500524556010484425186615784790314795425118781230647100430871855174720538382562100548104335722390487182172260299693230472198845443214480194481662052241854557271465027404650246912649068223021710397328585796175527543056876620962438829630818738491111559314434803864338858112320311413469390429409070881110290805788257354984495096735126524366547636725512284223174952699801963763483651404742127408165914289958314809474196151883661493227487365026847011887595812777459043020285336847667131485385730109842303882394428791424203638754018343566013406456250024003152272708995759929521493130746300433822527620416080302217512440642814663780825166336257179809125145980779268229971495430462982163165259886834220337073591078261668013093880835139820867722299115360842732419074255844828744104056471929879752484299944575872258391050761112400873505581485493009735356868447775392859194151424060135175728790937990799945484274601429537455001446249744152569186324479019709764817946703853045057399828803232247658177537044889423397405678888766106439040343891172659028693375220385213589393075041715168200192401574463152687291146455149746574598256521788574603383402958166972099964084480813337080445848398654287984191506276642479216327227279270553785428934202034416585656075492587937399113506586152056965617028253736985538027301633598525298313846524078197984339137474448059655936858586044903046612641077982319541217006594238124897867268475330576479857447706125731023284126036133332635350767199286827317505358820082916987085737676490126541341295173109356423860710200545415143412564759064274652418355862815277364785784540916131632540411942896010814968629619390617203537484267475491965745858657555333879572440455149346311623720002322881386003679307656426246626292227933403692286870109658113838454625169243154411185201949065669149893859250502252026282864308384033754222880606883271999044197604434687114707734892684287505042233407924331002946139345491552501052478013954949419744184301343253548864034672426542037754296549123159481789839452232241126771703590599087489617895545196119563660101150042952295476957630982509295035557731537852843608775136707205974309753187871359234504389309083582868004871592320355851306505685612993689576659152830671146941423922550702471840573731871780454792772744380885011748533321378145533510352392412462065764053831216235482691049816782995923010138172142055136750700073076245447759542014985853751594567292577295781864741586643311513787242199882368746026368717142660236229812391438197918854932582766992173089477788293765893365197239562621082096008226534424817222678970992076337887904682580893280162776164683722728331659192681407548456000769229657051682425241207861510682210708072214452047681029341022138291754872302887051619564774029070393789041253685876549103298400292926770339546764719067698301188251550218078073958249815748409778633014944970239431920296051257440459826331725147426975793905145114286519374807096219856021320448925986989850702641991799489159145496477080953518361119117554885058254261758376899055769715621717577908974826195483101953795634484367771202317552015993329688809107400214747653584019378103484032927173899185101572061303555652572079371823156027181484366690979271709573708060042010096178589013034029862863293719689197221858015953074092354161006268108368000720400767774321795878113318988041627477614498988901150130148180221685573932294803391922235003208403320403654303264840410916483911057554665836623315570934352567842289091725542678602278838039463525819222658694676552840806515605650157444230851522441843897941476248924498462721564890020122278098773522009329581692725717044291563380439178852751716751284774913000581350250355121231143755988891761423266503748060411461491212629418893606237107632978136734201170119153175860116982300092095024048692386189653840416618919391612806253841012982315193931485458841921703878651912252124423081344665695215736801973870121115961962252919629548237281778098802097911615495812753977217273882087402171488928055087668938141722173454406668384782667657389356947174236790877244152832238116504903555739359032535447635410907552970314937444219295184667036803919201118919827792991572351084426332526329180708660326966405612225775132404750825845242614362737667453429548477125521736363793025263638209328032399625863270764952402915915718945068611820886347033926636384845759304239654293897734089102859881606720155633944437718219729470620886436420890392901635593020258707890911569017269262031961499709825197859695022293338300477967793456705727265564932766499801887216673768747577032548242142338078337287846009582150109671099323267889683641445789468936249199913589333352147714792151893614509469890780398623882390666881381120822393809742825342460767040639557028378957561432283718792500289561727064333472874724743614739418486982328957902146292759666519476384747089351326884373778039812955303053754791350559866749488175704534991742586126137909871851585450426507406901931796651207883700740040120200945621176262435836990613481500132789189812188952312980924671009458577418585501570522389264214190497718143204082169956091804058044810310537569663855227982853267045213760552429520036677894999629481380833592943217315256710115812395335426045504228296106574726015061084398412426632309768969548858504080442625574557943174150166828265467871553709429105774534568387901625521809459976305780375645596553273849798610871961837161737561972758361172825429579181755787830555445867731095815323459931865933964458911348515948690899331053345153030329090112222508460321039859360042005988692866856894533504254978104604318615098951372418680347041648795124031892573123882301411098126938524360899070267785943550540541557915128576286729349096929746236036089472139270576191873377477305902187273492394519139547787022604402696376339836252465013760737352425383472256911710850650504780695987574179667078305824273510804329748881023924912555239879402775768479177438753496381035823281144026341937368690852209884352442285971523709976369139372894214215075100602523609364979461638105561098764329583093931234562713710317764458218780916598990732035354855099441804660080302100208480575856456892758615307066732915127219621471652149579800578104591297227418138195294424493311875522996786886222909227689710215197571366887045109841047467052507281369504875804506933126309115646757230794877661248204766615115534520185037181739356226094424878092755585340108467167363843541542907921760165617204275033684514850143209900393010353496865557085549950508526656273256436769718006227734842817105891463616737277180027673971968309405145876546656701367458063806484877821331126636272741499391761791556228298345245642710170190034665567770286042526452620827079002333470184298986467466811110911242560528058969546658010342376816480109836276993230331094099873375755292091099037768968390839050105215522370938942910657923380031412161327620890573434540392083892100119750563802187212328995287402252593445000139589942120007370760631445317440922395603695580306054488491596107058017518239337527826170021077769538865648488009878243219049466404011517953789483305581137880133589139101679530570690368066138822056265889037526754581010955310004302767995139409403388271444284289815988965996695314095201942219951996971208822522601860423221982257165691259968583340032070621242330392470204416222837898406592175085656816920619003902907703653757421040817971685861640343581437612953846196775216036635115315752590366842694045443075031263211700663616777399599245935572417720055966496424758570682057393982403880453827060671625241974045528540172410490868455723029350285621804665301177743664026416566903541042454605708804791288612391255215116579512015731387710764798270120770611546297977274867503220086671745036803035901922059992909563859290871801331118729137676471372449467484044540946896649790965410168269855996730395652561181103194446069892434844296473167920906005592459906024163092604282375244766370084761437974426105112625376254084959239667021027932617400668023877972587652126586947004280055101214027655022712830543446467566175904226310428683015410835586516778986094464975841133452499094782418453372513931912934664992545990688160124943344875080884172569407887574225697766784362467664019435921444796469731177528527152593467558699894706073022457936899588049107373032399263222962440874765146402107170539352973819286091717586394845480839254438386819713460728298508070327839883400627394981980262712499207954334634310748411496825849846601341119862955794289293327404080780566717029413076927616885945130587761222612030296000193971238848221853598140524505754429329822281883736245504513071597533240727889844816657492001059770654615268492100778562681493626048179612379972401921163040294748491181868104296834588385721598303141288010776957174801003798921234582200278162268746688065278442506552720167880472741726863440524315038769346623693745905386815937425150972104211717894133393910682119699859888698661095848037777849221578737465904277781201293064309911052003574798499484194936189700589705069646520425379379304279436914943297140698402898334798984219942905934301111552595643400084959886105783031737459712114506721844520298332040883312695651092549881314171944582458567650989144485286821857430683142931100543072790773302800656429539759379383684094491408810844325525018742745675572167145873074118563826636708739349953131144426784166001925461000945000805392414047460191432505559963986842085948301940833461525113494414842777514379079420010864212636446683467432819814785720647412723317498827459652888416603481610225988623500102724267124943055202648516322681939829455146614136397296926628697860725177574769697686366368523910409191189080722877872486783449752838873313094223506539221541708155997904561331855165906466078590740563236934469849126240110931562506798603627482140861499745807614359987191136784466199222401057782750656123893703382564727056550478372754804252195741271517284308838186613316856910522277181905741899416112480950417342700780809095440813768714363982951178246854928694512378869810173769191675516448760338868907264810826003185181996596956456289178658514365109072777942042896893447040291495620624213896104512606022979521599456906561701928656900723076829919133942102552112611329594320439536832919383707670174133773683926298130887497445479393505748151667791485324996816860207544566759915196408822888213629035906185091675004352382048722992526198457850488865706097888651803299897409135184308565425860723325152332907380300306842485466612034479525857192052218626292199871762510355329419986393785628553378905799342723323399890576694525708423218435295853256932202384865401388357992083066120290149519935758835256011112066158452588950577876218516033534675053191402266041136142687959933931182549363855836569431335327753810440298926374278221506966031434826105228565723813201543218065073832414706389001022225137004874988846396758202238970934733418875045682972394660887742352343862500871545424635523398037422179246491025129448308133660378642711584760882809611795088738887029459803330029659507087721412655554981912959251979662282078351541298271849495478542472495114673854612469181502075536850706365367888126486285719657849816485202055736134214361242707006535814617621709634598751552925750547086548843439734319271530788303499847088081615307091079869315194517105755103997065928674604962696295885252345487247478426018078602195411832958289464405348534602245457816278536050002526937655240635196734695518068978522566372730452821400360974654806970631044180007279117529322929609814216837762158005671282578719380844612828230588125972884914378906794821397115318206057359077256330173412180479458345934004951603718246699553666329362788305596956128757764236400048053474060550245060472550461956481267822497274823886854574402146379341771378618750431706850324195397850895707781508684786868585872044318779593219049962391044349707097050183300068267144558163641015766185008855358981271234332820074576660433974549875811735270851547961770905292590631247264289302362417018805030719635791475745401913666024812636783891545291356884545486567093707069135520688748361459264988069749544569204036633287031974398238345783301551138559829746341871225130037647565958934389838441536009888416420247272933911316303636858959628385949711164559593433932754719708350609353623018584194483832826277525277687515168718305771359680270912419933778165621864364946906163491062618673843477985551944300835813032401599423777657143639620999728683441650551861138961557085692600715905769911278338843989742940046496446655288917024626403368908037295374473542485326028150591656858767422062538806930357889158867754742444129056393685369085569776973119796977219433310051702339685063929711166204866135792600055944637441536126882370484466878593106600620202240700339141148009530163510538991149759855796803520669668559604691851295326880387288074272859100340917952178342782099240857047866529099235008675218781454163039867910872919211466256608163286110250051714484139244379758834249975436566605056341050812221173512121275600309429110424138984162037918211015059598817470596432888710845916837865560956348893389071297157239403982398543279578587420553025857851758310766665512771226302327345859516605611767429019449891287185927403608335573947556844451339287095072945814510220731528725599102962935409808270668114129630412999885269280194483234134450784319709751262491984122697259861468207976206234864276954437560108385840616587931601498908592198805008862790142091819620530613133703295145641178411288325579353642771049601487796117464804559849181112271506366806273720941125422380813027908183903723385406987444646924660451196852822796461608275695673708650239152735009715349374068945205112274863552627823752705661937556815221268241460000135221973850293075714570820051505849648106450100522259164193059772478280853920641931464601323757422922012399945243360889016743525812364024911833760271386264469950995462610426837341420708691498114699806108113692688870567189628568870747600525236076486742655143629899240329264082149609820659599767351242908708104117184353220436188583801479398042651349960031508171722618350695188526741077385037849672118603631792886880378588220773261364437346168316915541649958855408044475308862121579926063127291290028725361373044569409632837704869101747686435195471154280266618269745712417582828356604459776841778660378088759788944019129342322591764647012536482715972823751497021002487697505698501025560941577158429663068893557083687528364238217235367116080968896185300903865287046105437153582932985013944291705819331163429047413945696880379383072959459800864399195389436214001171570127078723585832464860761213458469682406604162306207984578727707033694046330024215423296511325108853889912435100701870877647591754279178303327114424917946605911511142239775166893817887939571520438554706580543431485861161683408988390955324197087778759095457144425902453552132251501034134683128365750314738386993440737173436636885401424731425177814000460060162104346050288310931528823046312003938350092478869875232505849788260151112241734089543871035628928603753334806009187885729643788933894860651764256778003935287037415601252413445556916862325984905043497246115843901030100566645947902086628051818257496618740976848336496728377266926275664874237615893943168575468094241251603891059042739538634742851483331134035777683274941517080275104854141789004632158958214353731996114743413437655416801611344221746164314969969788539079253886694146437557581866108983704573649875688856279217106875915521833334171999828099063694355754819578882435153676427173170654864216428926675291599536703621943508984160859691309978855557026594148627679390779886559381459173155641665199134720819081499994730395849325134835676348242292288573202598692734323773419655539814997933403165908055770063683335766982650721345573493839328232874540844507983406645323200119512925249940524279198192056836458228088227540478447397932188439611902649271209901176808657736815264042122849667202780256665935313046944779878744949284375968415165804994595254021201309433253305332087634179972695180154296877006132357764372313929740128133238577492508997456951875304444428364000055914999665858524853993661137691411023555970963743201429481187056649106034136987162494190466322138241618054416842723628068963962422058897601561970729909265122979787222478054354574217232349221544987314432327382595232640110165255985087144144985354506256236676254057104007049128204498956668603936228987690114757060287635908301562910056720841690302728468204792505203603235117939974446747842040940123180973513120549722030779799454420403454733652184299070997525652387753834073229066348596254723830087855503137117650119337482504162175748305111658580700977259363811115382217670037356457962691676647720256996216593817780399858760144150057081921480928671010948444074943420011131167154886883766115305047358519961123262554039489252046836291233971272592215533950019427003503527391375831103040657144573591935072044658440387906366749219783273410617257829881847465029421909786005571460270015262986519748134368330378869404912746387949783581322466856360466961086462132943344016934538652428927979197320519469810077872676508714731855086243503734932971880308714844775881598552187492785265541165864975316808747335233571858746215181360076756369953654115546486883563589189285485778710464597349579224711340159072412582210449365761079777082220019573672770405105336603980700183778817757935889284446455342233501325649308760869912719051772273293697071892399376407086383288935347115147369712559367825645106997182521906049115075236252946942565666102666696972672509454776499837723969866369337280668227918074400104639331047817845274963033667748737575354865046692118944094319006146935026547893635139849921898843535153744660760941742619001625740987516627639523188624868643892238739010919689634670055401232208584293672712454169227804325376252799482836060720109843529658510181701433453161622729743882878806162250451422184077876279160313406363670568550271660702554479278032555601299934327893637788388259825650384478306325553000147760220846611865139324093653335744749487094148063531135128417848152102845019243345204376425239105727474394556639872123445134744996049536364328212417229372764598401301774501614965114389498127834843785781835730258579558850505262916485023152077897513213834198604721381259012658938438943418056567108660152144974106201235305907105240388024357361650371797460780407305439847339387521664378268943556371512075873891609234036305960623737172080273166076836329749935574801240209876215338150787411061043977046347799726698013980191680456951716968024176830327330477845867940546741813121234505979135740999531307234353707779533551220156435512466195298386538315945658197377700478639906291691689421741833092928756538148614182464686783514365223932986951024005398454988515719786502595257334628228616515668380197527954043921644453155752415108337980822143402886233636218816706749084537337637106279526919954095976929047600148385718163352676598514926615958829175888018068368447260312691108261596098561365450670862468077938414330404411180356724337198850334809373029556148662490437932617241112965222467251149517302467687182653997666515035103611798888872426417643337722834581387963024086316954158796860338119285229786469885818936742813007169034951527984643885455330574122127517765315391342773807796205571859688085954891547649019954869842290321538483668209793278726981316754486126514443658902137723451464547094432514964790910775128678345692819405927987888388120094183118522701293779748854834937462200823306866445497100953715504044282559151301357177966772975601140833080527073087502775374722108212567065201347471023770895186207662271607743507082701997720373482666277510826626954112807676553451050460221370728991024619120017403550753050204446636624931810269754033123220299762695999796796304232890442867445951372681141113189901234943841882800577296145174136282919884460260139162787528001691233109905466953243002554231720778502357584040690258735507489122945102128827427480400058262479468877633712889688629591967859709519992052265279696741934191451570550828792600312136342835307964085293081012626911010252499169621055714755897243665228707246730971291239691383269939794688775980997591941098831270176793019587210929177171369582688522915652412621419949154679391774978659583301858154657617621403266949705595559739885105166551031371592161671028612352798565700926770413323802007393456556021190002107703321082242876470868689076467599566894576876160615816813596792507138601525903207204180073537779894940271244887458412477197507032264023116695978847427522571625530041445132156310637742681715336939899817710330544624443458139654496885554210538884301879894110329322318059652202096718999650664138166537736273863907300097194004795514037281593403061580508192691860080087569823540257407697935725204839398307024682497056774287997295423854182763689823441037026250482532417911473058028723328368840537375757114264820053434096386347427287752977461693311521033042896111466704818403332846480090959824737570036498154408923542185707948389580868197402265104825505923964850933805574850276155914073883912845061766557088058733243132059401457100449754541879219854559069032098933186334188391829008197497523455777320988893831691670496232673198527791658762235941986168459518791124769558440564112868812091385152017016167523134062132341327188777737642456901292022738920223961243397236697606357227050469915795132305065327760940561676438472057363564023171440836677670981284423470605004905365623903787336350577820805033151921147013737302881733184755551700704250674399061463206610305376687512213690302142999125943340803880574618211705913375619385851671036541498564839314587156617996032760129432305660445399598442085222330552425034116770307292694729717426371833522129057069760053552456792197058124797811636158683624915533718580898097845321125762293597136471787654362974614491591774493979918820028737703565337432129111783604144162270173421821273332302120745682764106256563687748961162434835638540577265464174266570207339931478161869229097134984901570285879771650282116769084708999242931300934928429899837610856273643957289679004097499537923240695643812987395761946788761248978124574249226134488012260739312317715505830718667029942322783514381133719687234379992167424454867217014042277268907745143846433469845487669860125914884555377822324438385329483425528207918878154510790799999924529877908237795710894690758182149029268634205845199923656858575796069753878084800351112040806671089714451696371568256310483206519286398277990179708466520427628898428564107418759232081656437923852686943240573213395707333482241435142497054287692769279188016369656771818927697494603522100001435469656008471630765127249869308462529211405868098819085884414752614618247341167307979409192380230371311144164183173476209849258411276468225343726178210380958553128441550985086890528245174321818747376649238061210655028580705716585728054694901722317936651618529310575204206433958911146034848814217418225225177659787746142520569137937393195720460892528498737998869976225743275807557821828406413258998770588225152323810142852757766147833368757670588276681413821005393001302246469667429004938021202749917742515881065079926441412300557659999384693402752774002820200375562386631056534707668386853758037553980817139435421530885535242985982887546150275753428352152671229938074435644699632868967699749433802008787416013714592834004982056030809985032238697302895669203185933053569173983635679382982263532520453130601245885640597893046388837529976346885111417432625814302591192868565605018116467348586476057868343286075605809559492716665328850962543943433693573471194658690486082721829183759847450610709105181288934423518700365988324913055936416093148115227116342159676645378780564484690210297895802221567406620756685208892582676511688459085885384122174530258839484862256504745618494850267761968611487560635738093407068985033341896753178261568432478307895732348610271662303091653604909001619813044650945226800627965854119874975439352159307868378468978172905260503501461157946075726656606633522595703174529909798333638474283204442096451312041219145914590114768735772123327494546736014646168485423964863098139203049366476672359517489839197359757812892603110273874254150929366598942211079132574357107127644998258918566082228882424863107824335275280407532992010593678161528265584862633390502730850015176788953573053889718743133558307964028306169641759198792886838138941074845228835298579529822325017504736090673116078587892247729654565386788894384793843853204048727070861213507162205057507999044229597220982113975027568831884907112740175131028630492597469375206464243041432414258733900444558708192052929442971905088691933655217168131714902315874309053964383675268520223095952294497081233263116853919653382362703720108016111318639169462168696553969092865066814259229590890154042157671891860193387093752835977410939258120793664125471396371625068655071901135206612257220330387534250271344118490447539307428406715418883872648380015631176006499561416808330896680632692515510516662152272342608056868316016051950916756754173818481876123500256206749594999364764245562716481035770409737010177004200527986390046007629261001536947164235106942180968047058890906327578041152444346408195863635607998026577722882439601668456392890370607888477994722459250046974808035472818548772280511614101454812713102159603863352469494479419720878465689505901286921300405795148875849428571407723842032840201879025602194884040539886287646800474934855124122142193429311093517902836913215920907517935185624532692292715528925041451219363515169796394173450173334000641793087117220976791732915820609018559346989319995224863296417225789607958950300524728715948574033111859678885826679845845320685592369747076571468604191840553245146155620638594435066865228386917522595782129761195072877532886413693293372391979469236639405419239775917849846151528209220332503168512880563572205363389422089729324185073437568770119335853096255947594414988439322190243307503681085300155075189493474906146034632768490256927921928798424205263015812718169141243644114641030397506598913498393675091661439512543924299039326697178411795838009881050920930023596210561813084881715230463091958148612417369212871155296226926858016861668569591229023577507119622426857832421554505919303507706288813744621206704732592997121791786102624050361083632510716861612770902653419853475165684653683130634474869234920410332199594881735901333226483146872255502703296396086969486488915427147067002103438494606672815079908350513010529944568690613833352175186121844203340834180142317549553244613140715072305527604595026862915462277340432082586333605793730761003134716766447861698746337001154772262602947908518698876121542932048996578394279572375345106203403502753468838176511929524096935069366478836782717214533867401917397437123885532105280306702162005499167469330861985649189721544068986399409860009256592182657954664948635121418736087996930007067735054539447275893964622989590024626034698788180311516217251515503952324212368291131279406144999395334566848620939923492919567917129124816102057286632056499202520103740773452980684304729231910984729644324354104189004126968574206230467201664026373234626692177010757230959233146006153161335783966507227169844824859557140386579293440372710278403241965586183336788662164188303660919679526965512093127825588560462390501431029845657189441383654910177216816955291971139709954526420034187879917458396391132157219305239604657204809957271540286642812421508764869845531432426874590581133755191220670121361702997784562963753774697662223670495126207465404918591516510919348038934607324298352700191188820969142554089543130334581472181625755015400323782489791296837562300073858592546731534439392918198927309148787069644351664925552333597445271664013808613916683072096968558861769423891692926655163700754006675423602215933728214013303521273305890638661360107886110437801326185545772582207865642822140281039132273874335895732610515722861829708127747504782754800488720789277117277030972033973891017915892151045521898910273439970673747135170553798221806602151106664211571816660599344066177669454807123481423965107680398484310769318622645446826085394560450144203443967030990237616833727409477092708596856775910723309441678361774834055884803452518402840040392918411086546675894355820401051312334265799103037240202251245668922948836970660048395465817720126144676331483241889620880989840114729560479535519633650965206056240122197809974209795686866439717067580440441835507066053953841957331215889220213082305421753659555378496705498937586713858980433488001331402355742010622203695386854369974312743824750850487714154899279987805926524420622217104015863798860207281474495364772892573665427944998321960288524606103204969897823714822747646764561931663758488998166163120931013531494136157448077366309941395395887750192222944897631138037291558048798972399256691087267990047096192915992534802818061429351780635455910040097989245055964075053533886059944858838162240496599542555495076647648937482019628043921327067446295794010237693044777750478753262954849943651595064324436546574269236336183541773060161814284668448155669796684196125463599329131207002093465444993285585650985970812974151513880265653768804797666071794237516041814889100916244176046598351098846862763638656316349328910479540255151617842203921327798763490933790486717507261157734105174021846467635523229639153909108982837237381885127618438034488309616351476910291521560309666858873419861211941070871004320675438118048921509541701757820566824583365883888350783104144656689291390401843185400694832329907493866164316814436500530255040049657684545749779025104613473400029683125716932778355719830672446838637949752476642845068205102256724422061946597316332535853822251339722367401968796329875890112594416748136268361579507063523182809656510844257654466644891373575850335866586845217210890669808049807816392924359330429803553520366573759388723607006774998575841677268206952736191892556422810866655612398912571293836739305338525264578337417021883369779244278668781723965166098059716639282691184462266339186782592678559448168720691595670997029546650950584385336956379936146227399511465398165339519970889752790453957916997771608578152634429193633368087961735001420877375690996319037419035620873033706542215983466308503911668818529786118571435702277981010173687731424338635717357499048754110593995925864547432575665540676741949656888304650812388547047487838247219215409564026583105487467306743352683941633505274322198762425385791202797406860478732421773424512818739077511299760303552489270194634406554331339770699238967409693242941309974815041048081515955191569669773774013613289235689921522630389304416489794410776389849395165820286054685222189252172630998473720935386160009388286003577427584818036049503808833513063578571419544421018456202989074880393614615928068787600691835109074134092387100675083975222598431815084635806570497427714971261342085608683651373595919121435462465418827059099819221881004430088282714023307923577276587341075760547323513330568006208178293700016129753016413933045452573852669790849366408760606014650965478190033600450069524592902154491799637136603283670842161214009664940621626330986913412013826224274429384869654305382837582330907857754563750220657211907259825878080546758817882807098918737836757475954420075846012713351758203789901395999462500277950620792182486934543277311449900656770283488743482277955681478284554776159043358010094182457293356665035928300463600787631886866836989592989856344584654666130434909880753105386671076991737444447728130830289009879334775276028843925891585200535343460227079000686812684201401655939937322055332284449752708705353746559357116770687309198837499392048968263010025957793561698116840587433586763931064162206624162754121331144227424893052933443152171176190092355226408108058499982225016930774225937456944979458742046458875536307689633333250745877266718832765557415536545719896872991234470711319596731883392247800548964619770682420583376560286492370145600448465141115628439694605779698410808325033728364079141962938124043149145084299032169915786479528670989331097411359535480950357195337117170972792897387602284747793766595012225012093708370227235741148007794448191623738973473710035835772978187450895282449657645916386119837837664275940010409008200784542972929805914537714171147934376516725599438858400052528229884235589948607546746481493914410712950409061142069545525445032639994340512959696741425584925719378058597381770105848986311933536473796433935230024164156397894554058759773505247055868846250353794839219686883942119843738122985621031289166128404339433151554842504528732854736433550220216260818012662626268640983861408251965988082218177205552333731378296464036712363671556138319372257567802020587875511538544216485979836667602441578850859152340892783361940382449965461604353554923265992612523490320493525083213259575611227176603478132125011153034738029149705566935543134331102385415887825680790689938230765041961546110926939013806280446872837251906451782960934199843291430020508246809521750033541985503661886239626085744468589572166700393793381399160980961411066726309358348621216334220954962211251613117243630824230287889705845106835108088902380159845190716008326457631255279878223869459728323242959810402696907255018305951143848678326290961711819944293979553836239180687191980900581856824911727137705573182493049256886753111018865067382737145144249723679931609532467885834228622519647037176682180910096235685656922714707779029790092592816629459887274320293293456498973327363830901085319553820944615301491626836436331144549517706392365887301328205127637571602337644955205932114746735809343301752149571809476886451475114204045681547481184851383390839294017064099090645372153183286913946991893164437149938369167492569644737773289907217972948065346026617185948329942581131868019463341497332145320932542693464425806635387505729926933200694523732671153242293176497064193413498439338015354558792333513075936646398419239377723267921121759578105418387885460034874921340188980525012058822069571915445439213552189511057725999311364086385363164554886715818516927096431570533502814913475257332231499610681798326550780666961393681335015996621690766886258044377213565098916393601679312313122984992286766616819661669792147710057067811322104570969921671523810928493512834303274740613479307329130040415092791603918231371304812891538678896374210313332211234720638193884708611812886645642608836347370864114345157823095601746869778710795027888802722869168711942567245331600835576873339144362704114835400322097127224904418585636505094455646081125202150784203818622662626429841722168676704818772536773739787041006731965998206145809641819143271661548969771434029532105323659283662544021448508097255081405980966281506250989390769289921469221559327488013087701630848725505120747350201194053199674837449008165888487843342827365590425539503945148537364580431658662681281696155299525184248500629975008174330496824677597835704214379664703523400954988605107996970966832180255660676500136064672706229461043628855766732804175046024945252211636050400729328065551888610671116662108576197235991928865755862604046454488179659727862911971752304699824171404479736566352181786802630254874673174919128479797989077480095910478392229024109179878441901747837161373477100773692767823931008755583955095072166514124916117769825212461563937684623625728349172962632526259588781265149695164557241195148025365929486936497619717018424027204392175942788145579359621891913927498595242401962148367999736824722212901026397668569783287866988126076979653521719224637206029787165626148567706226999001800213923893863335138746960837637094684982255886273142279299598189991736132013504464151265579718442946044404992294146165191758215561890549747705028291271376185907394731308589241314786975317492008243215230501016964001745278575354780807863457455103063095203566720590162923906138749256186498182784060687724729559868503239913696848548425697224561922962522135650010252391503007079397773808234423561535172927492112623273733565900813891134186431559857027001373311156658105389495227431025930401052585949664951898313579670614080966387457302599873586218781155074660206386654859500870955870516967297311387258091110380711977575026939719982764037737836265398813318088210244490837507864624736458512365369373268657492007978949369222792642249747022793903304629974776074130969842581146685126239396435748161696592445974824846722161878860320595575247718623511978671000960068888009962849684221950765802474065560988945797390453566501461511839599224300805667567232562992516352147397060198041226918524896903081026843808199999557321095839267905093785212972440341171360944824271515021898251403687672078557347639525939305101430961098436419239688615239852631294960970474975090486658931913798063320789600580242559795295477285917286865918490296932851199804264321012969985019364943863777108566508000093217351545084558469243474494485283957294921110411973463700988385832428001844525255898787452762357641833644808882890716836509895418557067463610659570296600634078915883870618119557561331668208530992019939265396546346663936076692256489215570383593334365514258428891827091302405653325020336650701882962042440139227799829606152085459770548446684880270329360019515870396836078865135661618464547759057307107906136174178300033386538687579406359584813352603573463927618160338043698578646527938855647291359929210239661135996006858640477122335303463794521494863778997477480849034458207331024520471223343039588781458032319793182470940224015271767208903097142201368533716597831845846969039743097657185231659189407583169112540031964862937495674231163118414872570178666595653735666716638024881411024769120590215580228561931987176168830036929252408249961370361949031542538829985861468253319284922272469197718975158969923813078964145924945046001772128072128835975025032617257751786571138595899130158056063415080542794024179713798448457973102697511391949668162445836900647023272480514219118217349470405043787351005189772127709699885879565497303368885784459533923175886865904880427633723603754383413003632861401640317001224116522492712045169068347746366384926118461177084598692743607402867373688540245754563034684670458022886178575851448021193649379811242623657689076270586551058953283782421112950452617861589403415149190181833582520941540374520597096866238570401713581185008405566198725609194062394583825492068391748781619413482786899695963348391993817807608717371118332034512628897681813277938963643197841155616110692591597110050106798580312229937679863814879161322182006147854463682265056062674356860134972766283906245321493001336812169826218483931988632841596343519608032834426813097055040516855718613861966459477852387254541783470137826359372190791792907791649765190330135523552991588397394320339817992543336172599942704050407462542588929537073871706695931730866752226047701948213490507865772035632367271760857252951065679815313465772630125481381162609968859301073833726991137282026694109859076416592925261835558615670734930453277847030583354037191592861618543926389315422524813223617155627753650469517770204051735778758259664881022480486332587061442588766774556686156217931202490071192329649127190333639596769356908693071911609461249745683783152444646781834522336756560983095657078407938440986675618691843018948499160305994541506827911840045518905939180912334696252030803057011532931844818881181727816658966827901236139730134371530684498178469865100455382101327676724252450526915367038597382910753364390209333992136103397600138734547779625024007683035452739364622217556761028646543468762171016549860763798777720752798775101596173057077714457248088303463971146959440421222154247403477750828810027908368618317793314212420160357542149341392283940765662823618643413176714047563900145209861365458056060211494705093320864987342075233589553671476669695465770699414212196271289473141133423862849554974757689100244590549290110883963153987128576995293898948357342852032872359075639821852460122695280773722861368051184611909620643349050068453059821251845004386142266446810563144366654585943967298809997133971408882718628570295681413416326590536118971166686145085461456505776890964959913968691782847033678003972213050862939741970294614237907351444070743597337969726867603576488208876839319994403128029618504093226403874751187120921583901636513831058923731643797159417523239708496376856365854285675380838939102829891611606084243636582204656333368143832949323634290321313752775094356964339418217942295020874372050656613315139231013101919745913387671746218354862562241045367976869730921145130374690674775712068813400929510753379411182151777864788014798011411475292489025020076693281337896395664338332622282309505342272308405413566363737758377100499445732991087796353385502871974138342302862866816469469017296432844495462787611775265215260684348133143556873624301553638490840039334401655698404580631413170198448017010572299142489168150147640786321540750008654922698749060900938273454310529536799918348081105102917777305160101415207701559839418109679635656650049802638551554783013206590878725764504034397904107111619235416367271630582875274028770775961087045551492934223013954028999572996993343032057636276669898034141606325434682524208222994101647506028150371131850093089265858114463992058463696154342608686365395551823764454804357985205193972501509615764019246543141457747939350234810536000454002332987015778598296827151702806309157737797325478367544854650906201378207046992013625896485900441369627419624941676180570565617086046688056632173308018774967069051125733652651474679170058625155007819512899072877784999601132335208681334914687581915199602184695150960353567927662883446459709104949960390903842274765566178884449872661692984504908681046600690235865228229040419420877489802975056785798141036483959411212970453331302253937065328489348185870980006885406502856032170013383215787884589859990988697448180931073208029794400270727868374398765118050200208098066976726927079953025835093630338563919755422060404423127187740290212651141379197098681291280000669679244791586372370837336538113952769865598727018024723585826541774363271198602278690766407581661808659217238135773518578955253070917931387699269400094875825434971846880734496784267110227938841077694417809320401590633445820721230834370688958245523052474474421850015103928803532971559929307922192932724490972751726665911886748324109659666601384722870800802857900227557291197813337210075642383711013400851287722807973761441875194624214014961245100150178150412220739921017436456282273867963542196393896223437387979977459118922523177824543242346708319074248971931218797603002408110921865579654097193679294898411174049376564886564204240150449204076774145607017303739658846149786497877785749220640677953047258610380991196772271768321934882726642592239186691314023132661909519518392033708340408655488442697712906612894333134187494286157316474957456347540367516169365046675574201120355097492327509055217065289632259650974809337028083728720999355209558056722194185370577692022365111379813570357802548882960311270076894999387538465912970555170535600261636819059977398392827008616137342670051485461961347531445671708105707686081266235320671670690600720475936811577189359487272017777017810324558462408472474464787092583720063774197175931702301950797945925416916807758404608921082422556583696484640830960735264093313632867303050484564974472457397228625332705969369666017322310909922125327749518488898352890036384057556412234830502572577333504243766212365419507496079544034195519662143633421997548059769821152808863434867978128165395817385693278941455223261710783926784940974379147787190551835636883397619082656764297313566913663901684013952384410862477244029182166894064683462925214371136921014945033066683961343144810799187838335241756014146376949715513605539686754311060214151395579115600874368846965957620120075185673094258817099688522789891942536823918366357139796590835174974114234760871884844766441426621372069588348168983189403776307950186745322835550984326226015592046984509939021778003087588446789762189827497477892022443424174560449741666792404169360899532361480375577585622458326625342482678967652366417044364624422949048550985990983209643475588476683865008696012530475047168271247351323079142220870998021961687942952830730204970853163990222931250922153895964032648965836687941135316506746334050719571495824685338694985527143689843810888694159577196307096171746960375113267908534314795960839614655725079908844238481568187834786220705361955773206210632498643474961552309980171901202392252922463059929930212904506853570580465110065360649031639759958965383447922293029447890375255297214219394437138243352522113222714828566510938699625747851112850766341161078128708959679343609501403626395721236094101508813370837104546566373897092830260123596976796156770528241386741641133140209925528813846164703391560041710948994313115896771337918598675368773312579439022667210570841800614055195086231976232963541831945473341255323293107756974546949823968941568281384594301471080856323658395404265586537691859893708053713447002749879669178130118831035528437702196118251892418423318296018545407777006670140891251448144225602966538235644009634638908246742364590319355513661100216722208264772615686874884025506329940234219304289547508549953633696593249526315191642990983430842603300557436968862397007352287311816463394793654006289699744278579009369769444189928242164851751280691097733743845485211391051168624238376103449778791542368448713714394863382245800088740616468006229812639942297620385309120606403552460116466066484650523881033792525583599917381295422695110417257636303477901578432607488674888202631660559580120427493336410861458592305338511312551266863454778334412083056315271108897177069594620656878306567108366282624261554091055787051674651530043385574536372577366816201839787245272596484122695574180932031997814699925721630909665008737899253776742616854438863802613926728720140435812237118384987610608409445528348198953651900513344443350132721462450091547017139907117790924012607476640124214350634273081163131596310434390780352069419399749305194225610824801213271170538017708962356821304552967763786952510912979585491618918608520840468956326209309931955358767802546552223523345519432445352734149822524042135624179869853817360501314755584595525930383442485487831149721897549754519014181555237363813099533819060720799214926302631904686428123129260518834707923576422366929205740772090524360245388843077775924935131868943734995267252639561402634003485041067207241199905490207936218760019645947965370440618026104253284976149729266988626794443068759377865243436506008125696292977598281079169915429613393755946984613685707463018102835572868527362564595608322203498098491508978323029010513397789714504211784188804717277500980196708979582085004180235055046268302407481499729259603306040688007343117130596451957910519113810380001270764042167170074459582686283277529951582795561021724655143389989766035346692820973528156400412179203935032589807935440976802260060186949049972033821454259992911861956637689146183391900208627239260434813799057408720521546602905358444355395255562000533576295024906593445166503729922525784099189791165473127047329323078372638638258241076628546278946235209654758123614594140389182839560087658539549077447051507811339882617026271949883723041840603711062907144957035699870260618504303565451247238054764753276724513881393345051250320126348098069867286323464655706662374932955496518575284786547968894977885966147406300027211109199169224749375811382570201315669249691681306819043381719281479461825151058229477146191889844853661513580760037657546231855128812187529699188486959916562535556517389791483275473828168266459379883658678913595789893874630869610084199885636671817962355713477870389743551167618399488729906717781747470188101115477992274746049335225145129006192771852748415547577283720347066089550854112840829957215346481097121584720080200493404121110733444732312986009668735464027170569731885141423829719820631205423457485999185558932438317964839923799698573423495355887001542445217028036771604436930681085632587352493107426034860528416579457298307927231137620126621749598841995747019805350912908280256460600334682548053755807110042748090820740004755224497330500206876537271965511835583604242625274150266698064080798749683386224136932930350113363920160594013671757328717638600874753743985861506155288006775006664040020625196932631334469957122106554127233197236502801521264476707134729848893617649324891952731128805718728537234164817448341773228642759046332744250572608520697972664051942843298340114350555198339379354961527198401306603643712574653497135558920407768506097828330847123129609606484944961258461887300023326072550398391852371464261927407683496421541337198943127307280996698933463261690324868488712487886166428279233751026235867578535572104005711486865669948948009431996665851319009659700432174055032711580160467013518126138834197257819720856816889436890391103910465445424096675345784937567590816600227267276876186580167270480513931851143385947409247027788358564042512417926334090725645076260484957275571742172193004991281000325498352303233289874458180286057068999725481383325092237234825421591224788336050313923903693093900573012461347837633525775238663388486700786513553195540628284175702845027030047436495151089247600891276698093299220851078292806747561756022603246709276882155244148109820757711469253009001520019963748913735561236261919055063275244445897366112963357764265218963206954638410251890810009215443971885514896485918165325591109273963787220832867753318582533116888348589109731153736046478384441786041930183862505029773319468638067037012806639543190220675931260251022512364591653011992613961981306720314576896703352934854570856726744652668627475296264813955280821035450052011598846051675152682064230354713494039272758248920624876283242131915929882400834564359475929869559168078076536322548394097351119038108639361351547380581755082231536071847581199513103493396561464685177397944211780970928128844682447501699218688430661068820370834407835989673922451346931166425543711883240334877014083845188986829552492989940448703804315811575041021584163660782272271225509201395024096655946638241391238929407503738799118432832378090124178531990179580874876809236558196503895736170346290745891750783199247043146503197294582134331378254951445412008906206807174937512709695647915263051602942290040701081870910934643717454853363388840794529556141376278019896065189121078259157683901076198370083717680340022222133254288226304417770615505516257230238603851536746108481046588799616588427932447981508670542505073839016176712500307176108202759769496747817592038868949631874616178477958586428151045626965111363475234715289333602417545018869394263788921549841910323927125743422639890782052578989444075567645269551447774702209297552817870227218759959102624201031054389965861052799934776024194675696244391708663087786824741608709716724361546818878715085394957989954242360164087944563832810188228505150601213945324107165423775088097879412728933726045447608737654945482886906553315921623033921325914381590010267946178042166071752075286465481518593772747678650807888068885550509218549623761971578331175776547239330251022716054028675451692023997003681742998714137170385420316150607954562790609036557339203461441274945999488083697212056121264027675881944496753548660540516508184217941906936528597813730988895351927180302767292025866799717625227211773067361289422374017602116035951347069136708665143816609677667950428886018626412219325922111589135127294900384203302172668847687155095653825579011236053018178017294422010467454073853689326616063693140842116321519016468317671343777106412854377609867094776094066293100014240602778284487918717835125739104721747435111393202801023104662356894801027892655743579185801153638167854938059677154487005182830575519494087114946755041749182981673660508677766159593279987665619722027004898474283096298340975361379065759882141127097447419988220311186190450193913937290877523907885061710235384389798752635903652194197500035586326475293735598361211482937186045937579726524009368842895586300712999495118909406557620418525753772598296862104418682459607094737407838775579006458435134574710031888691781577838051318900794367051771505881168786878741935689324908816102339055571558991582138342902713034325072053683902055464938053613981926451974509674379718858791330396370095965718003654763174581212860477394039843584805566104917417450857329859292827292337383338226677959880231019133475263699139063012798833470638334239656510018978912124821896132157370328564582251004529577510378437530903129863628426717198984019366878811281998297072904855659095927782443881576991247353849462462179515185241558771702901685567495005342458956350866408866106803674363297262427922517831685954110478281204021455495235451137205106709790141960276260515994721734488555468154600832656289123248162399144131426990378517456129668254906085740333806242068707957615801045481941137345429940607780681046862110498476619017070464375860124870578623297243935785221330761274360830522463900339296496083462576170676323566646535417087750791966344890266453724612334645214217331534286817864226570933877991883909665896478388336839306521041580928725573513799278308769506300434164121792375015134021152623731097942346049786022292148319533262789027808577230167498036871565590904263045596960888811298601762608281021278432281350004487916016487978134725459249595813783973090116162187315325115159111325451143770333998800089745553416653427452432458591884094466669347938598413929404842194451423532818604953260646374076215561291679368466974511775103189177225007485440256843440180343820646348682354551931102848233795160899561983084437227450001191597964094410229703188687901751618820606500250340596904052015202255329579114852414098384854338658416213846568799339827427279043291112997226402713560711285999741915570035636091897554195536477687073251869333660956957272538611419891343302719819291587905046410091754743943813371837646785614234560405943450288664168122117999202049997827955814595441777487220034662645912842513142540697213938567851848722750693974049775739590026413929805792611831321200900574571153849475573258498742023581430853677060594546892273664338512563129360139612377656585630468032738793579103043899035032740005876217166306378502639935091397720583237202332113388118688385533616365175749554457023020243969995028613752882567214160230760766412823558342009660625790062172840937579705525287502443567343333586707835645959475870769680684549942090456957910747287860769212332823327032725887942327576179373299425632601842508894523569676156392984816669106556648213687816953917126261866745846043169408029776869218484307959123943583890036231091412806095498152935190673148021698096275395802438136534615757356792269843137618121181825322416805630194888675703162166240000511939176959303353479405720590964769106002593930432507000246023347378878148790849050177577416727227096020677661198733130907373434951146296857628325016549539163537161111465169599552971340639658923497897251463432957299822028553605095440840465583468418992936048509673267860472987285533871302276623683267364757055987683581887790416285636261670641179734202737448525905155174813036089450159472516395044167281767341941892395867731664424956904668127176757718129665696676524273505847933093296672417267732665241032563101556269840954935820206155417071434670938177731632749565626533482270619270597791919400444785247175021642130130722559004809998903095133839426146097176515136953294480790923008123622790237080268991263270857126760066235516812048389320683513659990454631107541679331554613467434730163852443934523462106873741689632265825899191495053170335434645418285218322851663529283002039517273255730251178200072105189344117226843578196178495638411480206467812333707018298900441436971722979409879615206869447553790544376348072490279375603817680197408994385111985477522494473510413323078418335612773767156548903649843699261074701212076419874341594336377956429560344578583511141544374825650668569302843384367721450983031341502589958709614971780962167026216713849770189174483797992213683502532053090806196342530633896670914865624897125116998636636791379944114534677913734664790088091691374900059873819840995572947603392024292482378481903303281511562684440811910688707615514195235694210734352066111760863274603585012601826601482630675600019316556926985429421304796862886327795930322317593180802246248874528815249855773957310600208041086253271568859503478280894541501195154215230468602959380714384861630150947746389274887171654759145671997786900895120073438069158470762132487413117130144643009164906668572733745358259865373509907400096606287479637816745308393475418711202410028166830194491232099845360797865917538858606708039811542039899970421788710301248622409144729306321419747102506860833091605406690923049905706541732945468647342031330735977239075247266989998416759435755823349950912335358450802625703083858796803283442736207432059385334018126060116438688515739481392568503937132390607609738189218298908569909178228250144164282098438111086546795976812257662310960598145370514611149658536316641222915444900959099719749420997711802133229590196646914329769069938375958321647652981428401567692867161628141757431869556996663123449129680875752404114290427675915897706450233396174507162885842698976554359377199168685168214065568855459887977488335016774645239046382081678076215874967937293935174182569511484454378141405534395229685272253194628939319263056562323617161847793281013045786060008159449320596115918913248026991914300880113406268655505924686753833767398207631667699212760578806978337905304742701920612149628210059027006414219068337255089095060129939457041470808674291463114513235563315354735129653904837662895478064447119701846680073337110382477566387787160783542679002104057605829131691695961079077373457413762695260337591042878813811095803046188359881277879588082956115816951931468040932678980420773639870925369945396186773260997122225709010377316865510094705135929853961091338140492986877850766299150712810828992955292367042265209154250494673102050306749711523095886812396321896514242422363046461296822505162302399183876453712136775862263405860249675124402242971849173853478086986661514699111336916341896566372514561104656666553905592759042347457475958840649772254727806596770983614642095508471880428964296262263377803068008626448347757418041266928979903445326933624560419466758261411080941734331514158848671533011691563361652915790223773579327236207189654325178949512238297668949224638856455743682294368473450109435694710427192455517784653371296462936833249161042386067718379774064069960549647962909766327305544036060991026859388477782451596412620579868859856651932406221992452450486786504056363127869053477128822679621081322787570288472540030144028711669621882108357212320131779114750140971007991008837766075209419876113561058986907321560831367421804232158249716392594427943657811745372930471801432007769391579207480557671144776169533084689505094595123630086713027996725419491714809922393871372823075083524535907980309089297991500028583011158948751022136589200774671972881781888369045508443934385967942775475862244841407466042556239125413545436070757021929039372989846381068448160394263432405876177012425242529392467562393549952186277919383158544130983397354570761875687687835211961241198333863350665929544447114951095124949628094343516691532196539705513586636873972095552650107869080892022499023842637610664622443672785114962719825345344494207199253992430198347128952732352252867250755296903231093662619568435709729622665162551122001130803643967483029850932723059625594101232994132513172045429134745072524511055391329010153172081543496129584760842267245735349483310098326482102880502138398081876352956820184193740469452680317852181492002076160702000476390944582814158259879784278033484113087351235716811942052268218887199982529516436892937734393876132111436503906250697102673814861166570059832635016757137393244890995488940422411458300730519453263442183675567906801982501766150484443957904467807164700839605262309682107083556711273858126544189626698040724914507720631007544412737921225886058302756415174207729793649749539488631014453478898898735081034345405975974108652801106825967646322606089471735812879088016701257023655464306203205173592529620482004357758535062227930620368816389783652573237763489007386844837345170528156131086388550073773121927640329763141628494894621892638169239891982358689142195842721942823701716444488181951019724738851327000374189377270224704596338185425247435575707582012334553481877181168621084065846621696070237269720507395228943809476668188322948451185888493527877864369169428267610399839879834269037558268960606802419322409087017848691571498568754197713059692023036877672173617956331565521150125423449673750530752387738590231915224810131165179909107952192440755787705472411550326403370288682956681242234498446907769272436799653621199120131411441780981423341421296732121714465681882382363912375912581017907485291091251774990227988028517314677440113299241664637321934739379707342935144484286002013598801485290221269525756199611850976468887747998823512073873712346083634110421903477561094723626448057239318008113981360948917402207857635970968818841771538504404931951742099566252539491140752469115481234569008384036005552537033864776849415523207511580243823223239286758408401165041649186621538314436028121436502237547497402648896445864237296724982307718400187679950123714822135777612844175729444269690103677782455774438103744420341515963610475769343580120689263167158383653080204277919063114968753313291131579196275484259825501562158688160385515123819873346820381836837971581829776392964443108557449928649720078392957067393951846743114730091822649078462794232147934206415991525177855782610862505392227411993114445335791330526312097496141104572878279407644949561340014727165828005902245433714186372663965750440064440015841429434415648732318089077280650531375724034832436450554593611721420765419777295840422652419186906240898170488999022184143819716656982565228243620901809742229490376768934883153217304067792019337882185070963816382506003708223794426807914762229215001403073892050348864555872072807571912567419351690470849107629785301601459118238230869338998451331971033142492193798785165423810729662483881965320198934426706519277011472966686636733502859216113060733405098660283255172845618085582363088797680943316054444031912628289171839219540882049535387661558411873493575243124701741805604142642522979071089148355787288952357259744185394819035440526381532523740240124843138232149468198304436969507338938042009503436480049751052015012854779808169708175410630458325284226223061658867159081536725610418448338059537851336998153982136801906644070326993453889811334187147160093474427486514630723474595493542157033068743977716839328736113259991104249216970059993992385030854371478985570610656288105886165837318777220309143619585887405342328861477148923571042655888085771423595742582994126020547542637813992361528484351310605358944281187306192184556336649952842450061501676129380585415609632402466870390437699505597091490824868969582010660796981952499761269003290560671213670442204230886579429414122409853961079177307653667365736891378697581164854059806965229257979448714483198413142925778143807033814265717431049046728175589589609346299010942037585907157646684377128011556031235813764623740784977673244760919017101468361630671308192774104123446168525974495451808817883857828628792681425592759424935291037458798763643775176283998362046798736478643917343659737443485711845737811697832927476898989394701170132323018256331625300130005918662977200152906527278766932533680805164510532629010231708808314749576280134580857866621403451697006895243247330844034693971861043932207019493033338086755844375850817070041586174273935868815387530561597201657518508244985461023400986099797447169477618505491238387796875047322223184162069105408199854402148514785057223515098743616609791103338496869220419667314459555076995155722671952909705934975864562267565492869097502015010336958430961709949905235825378306847616032765916527105993277071428554269578645635166482652819020057852834394589414653069759461953176014819450971834377351583819376863346815534139159248739955897377322179592553378426645231336729947498926400025821076170650934775021323820008359481859638121956176484993478335567084922340930737842660667063302316857882375839976717868987433377499418007096547297065394972492611866708502021336064186639649228032521406152835837474282182639205988664434138582134991118535187912255986511773636857295407902888153742309170584046345020424574329271753170306909732712745870414326217039515297126943322638336218339528363823925181342523855191848169213377631584473736221184067768814901148551937664221865402607543218515166473563711495353206714503250637723446901890530496937686221344861891470381312060214006053536502610413822149235486097022799492427663157498850684610234573848762755698295464391503819083688373195024458564592771725625127293028247385415730067585664008973533913431801196809667461317499319286051722738369864276612641972885409096526113709098993581418290164151446845348735084100130292059004892857102749365585566847606267667893784233216793224769555167198634631728798764723477746444498630099790132935912277574150811493826961112100798447327638527393149536765152267006489053585680562746340317677075382334942290630362820737189184989677705155094013761543435990985177266638271175306045897369656740519067765668280741181894341696373487053275795426358445697850694463784016982906728145449832543266218706318699923815362030829439744497019940605693320969832504188142557594867609626595388471543159210227486939483899204684531708659297093711095955478447437109216609162491783028326748203458712569921683399438260353751005234302552480602699542953261028053939522592890991899335223693943070992415306768993347060182644028631636107972142084656385180005490275068217996109644895541210197076111396941280439797031138148450947727595763732453439077166044430415382434099321573073984713933925488993330563770384380439148359242360555243842541025659287725984830375045034180576246698409258174533808958395261978934613821138355602454236819413654067359914952905394617263662858430401953239425718118616023171175203449053907349360958609043117933507690001491145945035430825138417129788676562437970752949715224054903657625947105195580318164415786811432492568793542068517239973780245058092332252479426327553785800737435666075083741178195821671832816273542234438569472540547313684326532021667794967943047832072681911825421287542867332518756213816677738379832107293519891126503640177411072006109625472724171197948177994341809720632665948227201466136059507234493624116704147753370816592292232128784057356147143241742496433641810238221597882533025360728345968606146318140123055320042085848501897001226876065864512618195322273429551305029741657829547603371418377544998908540662760851703541256473793382541452621465389356742723249787062487323426301512363616462021014215771697124380596090305917420334637638107291063128741948131628014302569695461648542493215874051211319488248977669959555050637837733863508915172944140552819437792029156416715022955094923650488884119854907014263138655336746256094887544730971476832225509664261819463831561015025117018662910886759471459401504893016963118332610096271102954584052059762129498919673802082716268473275092028949905063680089054928802272180187748355263923634926052572041109556238527550888330335984830267030351403972524110659361773446815681580371031892624911373465072975482474546996632677026508087791704837968812083114087576486392363959606063745206665431436272507551790788401671247720361625950321021435599583294740527146561790069544825707667958655295301446417330363969368918931384237102156630761608371094056537524059324304196342600680131255362989168044238492291686472328288691178850120377529365668446493746343903524056639898394525331332897491329556238027243620575882020484269480222997080841709133627062842114357967551637774494604714822060970226078558406965433395920516304426018713717721594861439602437774622779039796907737455839041133679961366508339130617680033768913965295643506826952953288042056153622662147202141991140307305602022934101931511668419168517816531469309657234449525978948693624618858491800455264008599802420949393986397946962199802637409026324505878756896030314259911094665267427795599818189042933678900799663867082876450433201260648515323114959441644225411490583832144635797297684192192481336812342877086320810412594699382248066788514354383392634262762850316029208629411495047987337836959880854511905744614264027384419882961767685700267811142665089779017532987647536401092085029126241210584867114815611549169211294152079992955290092697398726190155872371871726205532751838355706785313837137144228267266006055948917328150504222163518963768847308229932464047006885330286731528827896319871926381070165837725499772840527384896742177806158977658865618616052974771396799138676131104874948796380097129659577644358662708569607228924317463043618466005364019065059971825677649063008247208986062512422749568906147891909844732507868990315640119270117522944550755128600765848985392627209068181050971048982329691931820282588103646305689094857967149682681647473332244695971234329984941278752464226185733051322559621921437082894070509000715497073359593665001117066109427591068286407486585494127120802513048759258491538950045026243982029666768152257857008671140436343223073400762056427345419455228181866915938980357608324999554405762916411900791166346257774111782959101306363550555246130110362370310933863476916533311334469756593905955251796752070630672440186512433700279493469906140584569611532263657571637804279449296500166741325154371196454051820702997609162256218565795571325656580761334310129508236727912175263465456780962208961148833394579721368142849892986893342999455689853632573136740056984961856358856466117826869440950389694868287026755307507910521896805089990511021054002773413012358397445020686476445250513552233726173695969311990501660376138983966547284492739602410939324460260462047469630443006152645789773408338996924457199693648620853579994182909693826443791217375695071196188491562858514028745059047415654090796154962253599310587147975354489481371785951674794346010161554740305186067947654421910623446715035912548360932339047293926713344283270579218192187323824681314632903592943780761213584086050521570151382529274354450279067532366531595918365701966357940958197397947588819647842955830511777088455471288446966080473919231810125706329291793493059846100798893080751253608581205749285111437098556437307670662758902242174953863169700414806891973967342586903737998942173835964417214883718950566414097934574334487689365606406842784263600032146148860496492638528938801436139794384689773985699822690347818657980342466592415466014602627985733190751915469765653109205591010965094441686488730798410402386578700950078886186712775525598939697121100812723645428089002712904230120421963306526919015486102398395876920622343103364835329261045498337360640683443511469141006084786078794329777503297974814277587462596866348657028823696544189027415794539632821954594260625327514663095565822747389619903666093634535197104835125246855079236068012269239162849713528572104953412765150487232054684695209830206596138382287398205857264131034311858165005164497359265828569148184260038855671995109350064756382089012480840879475395851117315108985111568709372332245740809590397723012538810637395870545524717565991797793622438220820456875664194711911212259583146139803873458373992173221377092548381266019067374781588156388877109404312846096489939747251760526256894951679897523268828411227050888519185521031767481599356132080807349091485366433374759648185265266599430490921911085280100169424791027222588912947310561336487050324529377699624638973209595615899780156673028820985712967559005777495888637154895212692417701936665277294986717843705788596732027874183355291686759646349428362834993915935926867260961335349399976573182333187217521974031930973502622825672029785472697458052275696404842548380010574200795879006528558735840299028340012050192741497796373210225079385015059292278049116886446386611139542634799481682571026794078266244855958104592902387326523355867314535589125090271806693926117028987872053962029804459774879640315752614991093671777518210098244529177234835190462664566279506778043068234703237590413886716418238419153960330364857912698857464091792360683388931864817010251410168200021208942261789533487797685504704107694146331548114990650003776178774855009497585312682457711280230125892889624294176808388590141994209835933136732645840597065345756885951342825775773574748087948058775682901962169467034085933795748980515315587392923714040506731424912303402305288186212551259611164629668805969672265368795066904417517273175920683361080170144085598744554995280535990503275453645912555111790867250839497341413233115966220071562314642011888852244294944836069159173000735784525487983267573491239002274063829368081069935274594167607038240812273178438411213385026235342924963645031858896163852752808457973729803818681015953349487426347015540167658250438767093430166536492837672837618817316989500553494294269213006027433177813882476359147274356805910244636121049239609513099350885534219131469751112378268087423098879365678975966314448813734292087040643029340365562336411734164015849730434057297971534477586084887813196217457424147201930209000811951026912759151993689406633279458295257919668888273212698339818448392593829681612244307734628083600550294397548438655950475662471358326162295217653627647899013372862221348087433780069209381559810229400261422711559623372035066853590865060988592067602182988881981200121770723721032477685988577346180729157977592470145693782211453699290485056433669572719314216554510156812156397091309096021685192266142987314133120363180059043449908043575693785894919768895346205016287930739051407033114954676873713264500517135712473922577263023224747851811272923102586591307693024872440570013881705442652174381877104679661484128597927757801327651425807151773647326461648079833034477571216811241513644341621703164208469891717667611987548093770679810631234909567512293922335591917075105687867927908354739280786106834615277937012820497032929820843123451350197534883668829492092230727424338977645417446840244651860683475867527090056667100791080179662326118124457355945784294766744603068861115156047345620900041118598850342768616751770735347775198215950595708556927844102441605990458718975750178431113330123285245505255345968963897140877276809107920088926585255075613117470021624506551075234133012694766953219990587578524446447460265735650568369319021446494773964173542882536047506527267540608474735822311840016725714325153718514097005105343267520496515512615584701371288299870122059486303724914860945024844003329354081869913629282107629907987451567032433398405827888756088784007530757751651577760659222563081109140360928936577363548407735286928694876775462156716575355459646156621275148890070809708670378966669288755921243494231414897230378260659123313157329029254732182689021207821445084288632305544530549163182658872718066719819974676368894903685211562972700479764165363178740820256645981744441748425483017522523995481226486079487495508354299042566182121578040849825554157019456188363628929544960273672374926851139227142014945551720739681316857429825935961349325633235324546746302312071074358776833000336909799220559846591616481421968701170220559161447395136322991698068109691427871815453087833219307966395615602137673314782572041911177369195819366630657666553403210030820304900138137873999693812822491120799349765892804772660682387534351764263147929269090748741542729623278960708866457620493160734493453835916891449481611897823498547071128428554948106306258264407077107608997110458606013532499263790790954983429903117333066803271731821054039239081443688833437044912157192228131294295319912037225601401250523852096021879928307962501624215370115094741647215022017747069405180675984377320791328227351837684334595927298681002043042816453348759079010295573532028466205745976641643463203801277217857970377697342775570447519888768337472739346889168061309899032171906778223290479069931971492288091515512716782987895387510222635242969228589545154454163466157465576728656969239452735705919863121499115579169553173440026873525364933361236473066502184101357118662121438207757669321466895466628804758912380719402725168147158654417779046342922974844184530453714533515702625706365250214766381164577557977440975224927463335501249851478473185101499950841338694423758361692858446279443353337528082623422195416095496892343981993671354503372917919639437591303679745670146823364879183597556513196301605698480018662377304382912477977561794046309350841238457114933586635095244513618560732452604705035743820700652572050521205592616964068559221080163567599453037214895394345658883338855066892030879866316774894318390311319838159296286456693412182029901748736153580638493392000331971038310231163125523695308143337808116424163847049697113442027441429145267047512232362904126092889939484165762294012054228724741248418516064174157055882667685403808957283291433701912203940944516612315621369772665840738801219541045193189070748618535125143230637279813135460557095946950213384324765579961514211904466697081138193834373069044025206571301581381429407977343807488106204849568294186881210565262286918487043863182328072542232230571372951443435744238496634959250090971936670072182994923568744495620367950069394681224080222498691513989819497177817391501246560838528033556948932480662564721130960906109713704326488897374450931782737473292946689603069766013603592219943019841950388642239804190284359769687298307732435871471953387390145381593013840717947032030118283179068664369340093314838085793542908709023355235958149704590960542323057455162876462365116756029645537629257626020861418490610941084463185009222334456796982803030706220060427605227781679677621277970424960631291968278239472527331008312530777276880959437141935085755942350763198939722428084723273255227647259539068598403379309913854567935970653805178721721621113914273480955026175493413016247683237006425394679904992090291767939164854846100654471871120846981991344272578476092488687023623887537933290600191276995375987364393672785515274490380121704978403845156502467767110360340379051670623356365316085981384512644781426245031395356273128318846170453383153015559236410883507068012655485449304146115036648536909959786557295446413844686231029470412224401340291774731038841590772627576332613360773600539575065010836444672290511583781401916055683230156408340503594839552878552250938016605452803742934585836629146897533868429110685299343265311842020775682514373013616368379633109773914507440568929240547230196969189061489677583746220272815627367409840631749093200758584618298297116192886867364646495694398586351072503519415179795062362390108591297913655521054951700359514832005690086273099275556346452200224931657094607961719178339254078176805414994163364519817618330592694802697782069010633030430168520014846805737506785998400564190123697975227680419558442028633414491423441247131330839625343254510827954265754236240384503371807998124853241386456516434900968816864773677835384223273950251505311441640477997994187354997325529360514075123835383624905429146156649119838227290391062909433832547724993100619087071898624956127069746665177745845124146648086773404095030858451591424721462529454166881423253782581634856622363512372790615581172066753106567807417403580520673896151865625813820708745658638935827044128526399017324087022299044241163760566121153218236715290549710139993975934216122019219261261379477185669456289206538351935977234252752514597151517913000941342328508291513336051829712027906852267975576227758459301469591236876401514007273086902492831241269653836090629828844465723282354241649893085099481991906268848564285119277877842471812114150731304079780602859852653427140660421498987047429626193133238966500187936192686714640369119152665782430044947432238726873868140408404602686365610151092714205990874664232285746331384815846527752353842711467435018801684599677964995295058379761618842732685015804650488188785605465531161859368237304801271020964995319697406499925906446117654225053423130868591216697676236736901774175582197741917375379460710389765752439603592971358540252425385163877224970599290216149421922884329494888972041605079029200122355666160291381772243539394309591347608305883178143304903434056971642005212585174241267358382317737215161917664950724004419817730800800853585754013060441274777190760772782956790870777887644420637790194981510385499758800036729139585000908709229908962796200299386898758885271016879399019152356864948729294766425792629584903294288993015512657595848761401624664091560442852177652915613858835538348223556497185347971767012272266459672152896575871989688343843396802190145399439749362772413359490612761602972786672079242191190200344059611074698986951305900032070565305027440547476657093230691344789695415053727505200581441500156095506875970727610977480223457619217213006945730277044626953989971312928643840248105757802151708539030541006684537484812490000895174927477649965306518621417627858427997660704571381533340573776686641003488237864495473964865790112287451111825760770182321158687165292486959532374931113409467856377805466139549913143713122337953358122252300612334829524117899695787321711126227788143298079032996598741886273231226400231674687177322527911436084988425148915707131246224473334182272311904119033630671725258839662613267475915082276648534944716980246711156292875738981615307321005825889121481839103984352943465322772671630357368940982356316624197442867799091839663531803529926160046298804769965949076784209857612545255102742755001551430952428585031847500920016486788761558802796930976400847014334153501585334236782951852612347417534673984007287875421310503521655063915682757879315027915965411157672603005325736158673516777584527691590882521916490086714083175977460634912837612895638502714863531340706801142474796575359811043891498904259467176294812075331708775645633061960963757834277206390519482462098232659074248834303393907712253053835014789597084951992055752719824652727676844536331793187443949178563894645970406899244025069306656087864661707112669469739023736960522499158365047570244960541566291519757635445803488728668211896383294203762010549521824501796741475634704962290985226320048061031514035019200971205379326844242041804934842322612230728639239407104623175841963608245243546841388202714013118699653877463743298316580456885014223193210035792853148003708486191025284804099150838029911894125768235934678517685757446069639613222085799961856855478355332923801041271243461606240932019398329119401103784831748313173911780402198803170196887124035665679784164763939715117826631345141417814340231951369043655917617763026509334596583251755122881449373029579752286936906038802521799486348405006570486665907167159890860280369028255583288613123211504350975375781949453438489638995711645156461092657890358614591600403775172183586612006796820593130790753089814695306224007671700423576744387030428167496630768808154219194061268262974950945270319332806714973343373505686390964339178343216095157359590657950511662733203938231828179624456936517987661234950052810612988248413825987511993391319936965337032532623309351729289154681111125914173630982880418042226263334459792785411881728405104285301755662414057968204160009862733046253590068540942191264684535682727155758535482871376857993155785589691194996022488203162906988296374654435436243713578258740006087217314613104563022800616273584756154402043583929137281558051602712951539003840842919579600689578932656661188611539612192191422797832660681041387166751985398356364601910704355103810911114357965161744398880598402618103902771989616762626789675620627669330086311136859881274171587578398747204120085636408810767976911374909244679670628470353289505936650837179445179218900593640683802556833553065033909635374020110514023106074285679308692080748149790204241323673037948209751312833997763934401501551844239972442775878115218187095707127721440126658456810571153583353413755645505766934211956034055925125451807819245707825263686033564728331841546111792735568305645451769218012642024148804120486736404645491772890772407759441902117187258037997195224770764601780158675458422137891130360974374710798624355669567736994687347032324431054997052877272340926005999303242520991917147610733459199780185442658772014799849284482307767408358669867603916690465007663122250751635092616333802948612858143925809977619551598483519857859674543800828363339273453575142906205918551587551099949897444423902288961937556769932109484117411301904487398830839626273986346909363060370818158739677427346749378091779375107510618120057858698323782105262165411010192309563195840767224674505748421322289060774192450415010809716191300473371078440658167041363128147062343132403966939042547680775680212626221466935478907330833370111375753647575271419962009885180045265102592247944609603720323912738409944231477197793795357357478079592363379920140730957316402318401400832865242684338692801176826894553078570528379657884876339990150988998316187956051113576277205124948652975665280793426005175000655448551334846956682959542862080389093160634152791040808652421851972293591120311211386557257004898601957419260500831962543618573588370543550140486744176418373938500663369274519739832764553985273810872745961527832498951908277263308677662075307828404207897657420839423996758225252774939415401669953907846929877219665475409904125181523249910121474022560461201139044741375371620312633059789252666360255684968874497025501988330468022871159305917405684566555016031497709056308615048346443785940191355901688400018256400689493059776465324317611439303371293575237769484894510364611261449816676442517518428558204318015208572822982379237725508311910608302877203433204003517697585302957351084368414107028112725751278566692835198851399674957623867249289607673957276578913958373534075443540871660108155271796573287413541954458248014941312569404139623319928704199811216704487687382111997852513488650145492030461840818112340986997961177794160402926432167246284169395559445545521718707941334385071701632192103876712387692396296267928999601028595683698923091078635681792261014524122320314913202494773172258182239072539574465147749751411421707962335841357342735173658218478404442546603061546308905250498557164440751074934990399555857629089557450511018023609788680522953652721459038969903279260617713713648023904237606575284035675971430084888960794591828919481466158855305286484159144113693652439407073690740855325596165223065131596108064372788018900912204941786442735616557188141755109630901902840875137842959642905470776235709081084736778598961711618294185001606510238761569232977084078533732744042357016109868451630073813416651375812539095895330667876981014316079116469625005361483843195310216515004115327794072815133890297721896940571109299749849393291126664831674224285965282768805240398939475070394148903723370278121810415971276220230641169605702314361867511913719883516618702030558649717120017700613257790818809259123575436320120104596485784118276702254128588243048581638878629618444390450387094200495176669697381360089256865395997392606812224967639381229498902509830372924650783039709791847808731916823602866608982779112695518698315014947324289928799485129304024870724815768625543908446347299383967958558692894587207609702092158911398498126421487885266719586497817117378128971268858132561819266150510510955209424841732065221463984570420474740738712443507954165919821390805076046258459051096839415947450922443849019090773346204581091013060448182869366713518994370542499778973868659346491562381676441033740829788305171825370291880774169162977955667775517024693585071324261724495034223669320778453728571333572423245798085077487662055364842217659484679030887029402543289068195498718764803457151826007121232651248564083787280397025396953748464829457748214265102828245578833480819340000275507786083399147027445129429037056104319290346759903059599146613919223810735422304947763023527012343054783063784533582957953642040373107809230176488677295573819582814068951593581749581786909754337761525971611848511055098824655838715353353963939491016881009884715468486814713096047048594512449521908589129989800068218197921907883655808856261173543586164135254769023584251533124854527707693415142842787980549197394662701482360446623024772336758962324793107274144718981915843776712267471810545198124003109308110496592213862296845553919465488216130423520624688744794656787360788395749278503705860907384591146539180402304028733563132441681827458432258000008222407998279396589937991514923401500202932983251783729236913749498280197440165657306777617626779498066369893817858537025133852717797255735059295885962306793191133324752191927800191529893535208624395162177417941363330762397259209903725668784680830110276562399021986982301821135381493450202376544546871353040644537713145258863765348361231300607997882360869292068093598605404227274130264133953066013014672660330575884822527522550122952030817722370741955190335135561849828369764264804654134275555362099071629116992602332438540399779565454000734342310794366881754496588512997084863935174745463854784878712371680315952510334303903187874352884789471938713306935411497764365825337317013923138875864221345940639148818249122199253686377344105718332679509421647397528836738341357946742868954746202310350226508155103185259669475064441581241593317341555429308589004333722146564105868834471366514771859198852026118701358274194796044593054910296404214140546265743742382431277616653301628569913979962129730019658377463632807071468984348864712987991752815602706138871048188689278159072326052652728305431612552076795190250997679924466171980152676599274170616453862633630992992939492128901678272176219478358707506100782048391044067773683740766445666121958258709200034800957769599035209367409384150063962228372577974037754756715105262384920529326650817185811347784312046104021803744147284765105631516642124510321841267771220856760091051686279543349081332753415447158533456359338092979629770468248048040427980124976089268171896800686053310825449010943552855338275143275491148403351255033680008180214937681410607014864205730432630859995793401769903930634078869029332257030854219290948519148389069242442722406635305173764469263068343065198279888193491511356783949997188535127390378917048648215792261937478270817608659429908806323050128410309210076647727898362242226628029782126417809528723037228046129909495820110157736739609226447686758828964138143637458802717616791713611935747489138093807838044308784086693124017291223710136246413609402144671644619187781813926358079668967344095610840181151487892133274371261374914188536904663351292652524687443129681505275323901022813149218078337663013509614005778370165805567263843165252515504166288246924916735697303425699944472630981327921621634592888635902931696591563169799957756455898504885973909164376790590653119942176766982507470942849243415786030984498717255927907227989845176096032648312772870905118017786652817650949236055535980278428987091624882432936389844857019978012548292823230059071628295194709300947390508969108111115199145431872725397182869618596339985106477802179659866931815119151853932618225583193261580573953285149708060873666145840232385372719346294956695415580814662118331855877411603057781271405607459658558202030227277885752392484445835837161419964943210523299769478656954307290225787977372491459600854362922510192261883080812803018439686042570451149048661206745949527475185226526386115810554547152259690296078375764157522919791011682837649912674519675877681221444236225556351525187885624425051701493006481924273812294044895773476180299351064357949020348320402047571383999817914842626472631246383391338030308506490278263976983546410509791717976748910482880509708326102538446137509960000592258523863769799362556285264787374566618857227096357077834967566032052739315539374821504961522349988660394342147802580383248059486218193670500676640384427884729263017180585615616847146679853506888945920546066228617441552236400453876816767652475798405043962255333059504018289090620037048358780294657877592191785080772157735453721535263829792795646767658170214222903286454340077075663687626582706548620288852857534685303264114281988334013827502850520229669834571920151642003834011823550422077312483544980252350854032623470425309165297323131090646415456923466922120629376340568742060102481676434859740867188456115456856993058116384866537538284406879837476495485611744973972251132974836576366784047966003165425273243798109395074560200791361682570404549659426227609518689176324214580039188634009557256711078784666767858320853940799284776986448551486008096307108969031441339392681623312294822623621813947422754134093113705543922033511775733812451313617443988760247429789147626926523702987121047451692920131977181824485058474726289386894240971924283570452386516013527569360240490173472366472369114607606358209503709289450938288639954952727022760355112830134184510165359946700266846630008942669367363095117353845010770381410244787475391528749902455368289452682155884969740423543168371988089533621931485213137661743751201490007383090236485872063623836575336411500815309640179831601312981584776311190413553393884472257488836613977081652702055592868135773221973722061840578941468753418918099347968696168773038140016314194315840001003412075298466314878073618994201548686519477654085831297578393996940387901131874972862445441301934984413695086436701269932982103553421958791066272608196114439537706903156745461989117689623851053465689703223798105027177341848394525407377051318043844194197392689283068509703090650083095916568707747321487114523591879597132989967451747710110991762100931216900427804518232100164627378325108152527611673390194821201797104948104003779104623240269570172985047154847204590089210525037451085047888425554218364854553661169956964898177437472729107151149176948035123460212302080044626428434956594802927827824246165409864330180844072964067526278702153731994724224154221071891809100980345325435557323835920048603864702040515573146153182662579317993299953014501421462767586391146926624500346681293996882878804869895157686863543879592860736895733532784420721305302182037501013407857412829860399779762166224259590356360462367602659336637518045123082039585012070994456020836749651204886268043317226373245204582159097286516054501714122274694458006225764214787615200092416487802798049151615818644617877232165419157039718084639628512222450814788305696968817139155330532876098192319416898538545409688739621088487879530474799854650398726504287925961774285870997054195833726193474977449092769463893546923918881177105724224400625946630550965805433434690014772157801688999453073549223888897314569256110417649825668554123192587271766378106166084871955281885668601864918511536690758929287006903053230250296489289256596017213269260359756416575435898459540417066319530542475808600360161698065560772898756617385533824897349611020711221991547003503492093693017599639355909595002229400705850729637529067622190571906331152550118871274999685707845898984647702260263170383450078650784335247777845525894562108734873600994992705396230143523783268760276184046713506580848241156546448919476167937356880627487487583657385324577737799292394468338090254834560359480882170588010132286661498198194681179047837089949596762272662988578390932642013788145992206320988807259443023536364343187054434182753100628033773489820373942402173341495332934596597481589088214402486299276777635758040293627802705685036801755529406248457909921018750501429242765939023975965224653991989116334503452111131885370382979122918468680099430901522178359088741588426345629224541234524795512225195381956233151349114046346620858951185965332007365687897973795497147284626573082779977773024878068220986068970944083795913274750903505749067589966135500166359501439253158587098581384528719206289108065862874818387262204609168357080562517331022239565596086891190051123664989438916314793452680901198879768419903862973860930527788908379077903987398572737372863259322041042096432118651290913050030192358953592076238275970122815166442876685772926431111155219130304090713730286793529195738481422731462358552372788854367242110257927178869295393151000020194158308722342241375504315510071717027734855746993245844960618954309648061840881452894499999531269075191567136197203671397346539763914628024680522388570379123705653488645716250566367533219773891079167516964116210097651829913428577005842086053947267100542140495789022306764165427532089755303236112278147344242319412859100642998701871340334156715007967608746288194566613767182171673097977780904668500471807299871062642886480991773210439330735826022130420891332297937096869438154406816291675281251649167067195458311648405496124152484166445609988487742958285985251943175619341436687958896878074667601106909892842105486973491841712066588093569751284977279749893872614146798078129276892683522076461374538405331960679991098037505645279538029081436181828068371107126010363945942425931054567486277031871850864923444533868474532994480578234320876810419540093482616296980880971980816673633889946371286915261216468826850266062413739985222038991297472183389017151704154101147757970067163612620468293327799742886931779034857116116940785033610791426411386282315597895038756437576178982829189922053959108641520896627241678299704244089993425316680709182084793888714460016274168625937414302031983775158979310278177354416974153108751981967554461460902787263752526499297117531401704550048242913061654832821864884071684385850026731137995645776280836496178301326797560720821323426743005730273512834726565937997991877830677669454073077100054223386926851827698964150031278192223732777991016299012353087134183614963390377630333054756199533376614926763312055307911325284461414207227666741702235073077844690157098373546628938058513131910015977817967834335817700239500113958059164185922885562700834960002494181193793651124940085875253642795276250664123082072253224012095029685153299408420368039432657120832901176285881680514870868708600897693479335310924435334538661883119176736605364411332925582811183600858958729168464928009729084621743557686612936434917773581785016178388937133651020684128197788691406567632065461095067525133819099449661719049257343555198397847088226002120877546125922868949872008635343917375626517068046709978896462774060972980846454781290436045739340776731692181423928139052906535915634123345170038475405754580329160036224168428641276990844067969056256151768074219366414906630086690842021425356485542324068141535712325982233248674848638569214985100162594493689649087281991927225780245423090004648057138536048787406778507174159956561732805088957959899719180369941978431584962595532857627317331822637872112234539386489942310267866268157402980935947338635604784872299028503087788089202502022354224435622015627788103108696916897672235014881717662486821185820567158702092846474373156878756734822559635761769683857369410464183655358974341997482659162863792339392795721591526088809405799158803902248032091912718706028179816945905923796419268124510043987242278894628413615121834849598963117509357197107379038631668952154246294681165415095415905471904540515580003722191566834877554320709882129368623351801075833571432173805128333708823467044433602396782028455651749252709580390533355949777643122029856058957694216907910321213582093139580850577523062971193921931010188699637827128800565831667718834692217807031342834902818261248667490983670894433237141610231802505697822276917501256236479584946213048792691745528635863997176018675669588446065153836654507785725536294968478187262396552129448238282053498605771491858250622613690663111365876978370239286907720013449962187924960883409777531401511153011421835451658185173175025117980893911467743604622493547326577918308067675175674688745955473824759660338543266783402872356725668557451198372143114150815718695354075361838042725820244384178229746998263084632390959899605038436725614932089421835939451539147252903293648928150278098450284452230783556639310127574168575976784147941894273056767394646771629526153199633906414496330715961703420425788703599700003173025215841998203184149984964552246139210654052370193607039552045162845984367958164343684864373123480916809880065148944202229784440883865566814824129603384481726649296427678892122052692397919455345986136825173553748873216254964811060858950048431863541848654643154919537489145243148761011440463533697127760636035369627060983379167062130359497597009707908705576660124779035437951252752027741835738396876540608451233100619871188187808904724774103933448925403548862115577711732752423185451015129329978386740638173842283638443420321452314592213073638279643858221960070127349840345307516817587835621346798168482639098721537527207632140941325782789532908090886805275305988483978881409488693684345874245243569120551931159633077168461527267316569323385998704085875961412866937959550614047584106660535876680093938351675863188273099553072015185646420787856099687618077366550290433603402434872533299287179741976188145312943344346524688386091725820784208522165888894735503268376062583442003235684128800469511161969458634535775819028904020228173608733508281775090099997516197386644351338848981714219496859598809841779946328300240953056635010871157955072729756133869734989124513385423170364390119733290920936425295221722317893224212330938550134661035155641563297768265633304875621567673955429003027561302472703370221157462685145306953691900315355643564234905380180857434135830977443826989995871215719008966718812805403417937146486829306055242720151741375205574764212021383357442864254095357806316727392582037892143475824605358379965844714542310179893431262806168309376415908487514689049231032980729193528806388754682684324779939537998912900888515264612034251147801016471962959672510380849138553698438932316810929991908460141064524111536351640983151374326534361567808958714670691865928023981267688977602216270982233952811101478402473863493578191333649398350464582977225276676257714832381166923889526274013873922164181585351165761795172829267060240758068055520534324328870194143680014725114741667386662520296795491386295521149400153505775602690963101808721534872283857467930985304793899656890607240542948163365300175108672343750939634797500243414973941436469918443703236600050718331950331512903253820488772810240496048736597723037574673962574974096594742990873979803188961898978110785776493100254624254129530192000734936144897145905329369176138536066685571136307207154823769789108759453254281108852445528021520089350400838532623073467404713907733763557918878237495136462096295239717859920880200526501824088940184052124543312427440082971757789799057312781805496367289711790998664816629951812072887199535281294667804682656107659363929430711395070366842895898235146563763895674545394945294238380166834133053777837020403885940884631230102602526969121870760284228798556724507316858681603479345719132780525739154254809217252000859239168963576320044896512970705823250336026481506626974110802007054881950800461096483888723393226221279174063565585327413856138634708812811399043992783727992859936332101217447363655880641658368870280686663613583653742469358733771910957463910128936908720014939748270445024962594471042719344236572176165529746980288556241914951104047299128603472726975402391801226078966037642849467473542861076731181615502839589243841073700591937081250386157627439344791105729044903592313100541850865643780051514239157736952814000318316499393710305383835955575991448871750757491263230070870279086026676036466057914907736528632546946365050923994686800903143805015545748100314566532909516987383250832341205715022856461588254878340775943920269210340955265200148344820920816713630478679147130431427194712815462311370271094669324891518473889452395570241101327392726454650706231920848953478585537079137097347717662257647216982223009803090408058588666306494450931508920871967501087098800582038219836237602262307529855043065985111915882498545707798474758659914077971708627411076443090133244198639349231846493344646075786355853207084082196780185977395621516093087094093571548422646006085662366024585376486039653517395444178609301927423759371313053659654527311362452521115032728985051871666383396309767698325791560596728998989261555806552236261012929900517931675923769485928796175925789831912808846295088808090209542098253950690291994671947775606790686997114600453972584179587317015541033376776147713027792916991401630769381576372075989798540809909490025726928671255446249191845043595797932242243513778506315581201387702610302397995334445767877198554410174517169577739704436471076342251131079580735862848554578521437526092145349177424557839385833944569923595905773990792507873967449257226554049309645891720815266933328230184589302861578466326142447525470466263363294975013253510547033986793047283661414700873379041002720952551976666469427232155656690637357950925936283300389951749118662584530345965933363172792822981183943365277587718886201325710395770881537836539965759778000799585221766590560924167686602012333876074980791234626589040877845805810701185184799212777989515605637058190979813282823947250552644586314503124547827070925522778781349289070702152796539021932324162551379397165885916199468842816174015697713800919409199967843887308688376409888578175513278198617080849238775558522802453981554173280287227662336556086904991756328826645898759367701791802809110624684383900831663723847449584604297444377233827557567689979883850402884105701483059031038716161949274053891866646707643312334696727294772387085563767115516663327463854225768696223766681460609376893611226678654378283323342832261751637337859814797103460781429071469396900256028282860368939197353631762125138711602088498930038448035576415826045019341263079450691119288202579742335540852028751811112587981951674546126208297136215370259621373946607179205045556486806795846484975705029122658798466603983016620129113745625619323786742641652940553593516065582119457042161124311707321813393764445215738699240018752508868290628805739801174335513806361304124949355366996994004877142619736547854644966658129469860645572011205956039832141891593251598847613895961642185457935530197624234002526323443390836593497219026450006480661465042840425745854481290374454795753676800992675528022492689176681940419439989661756252498065203023756767893014014429724556584752724620314090268535517753020548328759700268477791894438003915840228685251477550007095842201945811836049836478591011150769059114138202564931269421423113395023825151728114294894227426031615865777952979217280472943310178695142018358369780258773489982900235341398302234295841421179525565959460684719256239180165073198145154425886995558644437266020504439842310404613052592293381718581565278646333380609917512852864105273172929248736481745528684861042174059677748494085516597251440387805499054596367589198990231895590685146951924740641540639907239233507415797601133139697805061968788954885838642560042232838627785331898861455869967519077126628188197831273317400546470640142058085338955443339207489110374854572478628619525034022333894900906719586913050042549595157895708742842818098856503741395141232862813457824683455346446719703670166403293520275861799357616947530918395308503340805019812558432813831938135642671521218098182877818481851908990936828486010097728428084719797179420077970913876450813963932467058918695184689140669326485496930985117265411370602955592703176047716861971791291896175808768537218940868708850989967684484882823864720920048589122986641068389796786411046404387312296348224031188093098989516929044343313315646242727170111188233203547200445459232105281231045547502891063513030000700322794179240668118090805139451435937508096277032299266245686049125553202124587828102078200657476337804038432753027673205898216271619761776973247654531521852363386094337338504560992343621529172500662214429811978949522202854886444327307817902618943054243429506136137545690937234327792036528722543336499576639879504931081102765810997435392473718228096834219702873094664321507391057278487702254114494382652055688561036833496773944920385304048691452919428688470235208773180168464092434953497864269036689784877110831251873496876874466271497445183467968162080197308300560386353941859647315267189016912804101392190018608496274785669679545688615845361322480708761405232863421451952453960651125815389783461585230374030347243200611993557352414143612742397167317925824379350105779137869811478405539487051895842741919612165442062347052477136895103781976615210760282457273447071736802059308723097941251841095084833806227130154925017993331078636693857544111829292753427586844578490715317401787689209411551829718599054415632328048308792598708645582541420842254776849241824533238797723648035732979965305082355127990490664266132735940527037045949644699881565812521185146497383263445979613744937079334783840982424732859593252657526356879286846717536063816868446538099700011065445416796508737057082142993229228339870960531787436605775700476064629253080991183324264361724549251993895986462617704981704157860901792977083423767674319980993734015001845653411003020130895134008155539800953711609151568556550367041111129760324543291987011142407602906986734003437084221570922126236305518525205936496127535303495340386196288921885120912646112868616019351368402677044942537954903535375731621117938581313015369819259521948834504607215033755700410331248261498807008536106594546349248788946078662861352968006989409993609895890959398557054256707306096998585631817335793256267358107766976486917981264263953934835190077992380340312443533571231551601571150464079603933889241367421342719451206211581530624130804872781193075139477951121070411732489050415010815606184769798407037895613442507277116921824346816666598072519928635687907577808219916317591617488564164362104063042388837526573825016306729781688259156545676150703924474905355771256051772907029930055723058105433738106625008031399735218173934895807224658914125738765566397283067794644580940123151033631642891346441024682015321566393273642664148330531776248224166530766677368520955522124652931276504577368512614507861452519853727506866340170331100662032946031928942222772024714457465446014126382028523772217108955984584464687142258438617347917292889636847101162226888269211492542324285846462727379904747101663736477969706616880262712156588085581444082083897486868160487387139343897986275158743159967571025361455966338783861893928593662777641718862883139881677963058243367364520301958078680464446433329069340319049595478425686842628521400488892671604439665175450198544869647837322436780005757274535190405704093767915333954602142824181882145723628877961243534748299437115135858506329855555813065061545208069030855556191440345889640215168521635327526064719399020883912950238984581954887882794873923484848745980317240046765800770111387076763628280313185358748242967847143400128841675858274183399231674527893940159241661187521622961510796025238232842851023703447602991169364579014324126696410565531813951174253066773155671772053434645980585955110524788615161449678860323139761526853383798324303238669651778873238647257885493246000038321640610406084681993203887197118089694955287533961019856683547134905839473692780680636428383988559954504157627226225510421617905013366427774460078946405307980753150244618420033549679601410357805811832065340147274239120918582337505056346161889023185429251224556771291173859558716701985187173812930206632558338820239827133536344311554869318906213628363687562408381491593554511548196639096005986924524753243128073016386638098105279179291437151783633072504755344440759298506922270168552374701028005433850422862076183266645644861661431218842870931075838673195629806903906446479649285331607678625192104914219166382909676646447115978753372068532993653042406278008454173059813229971755721290003705502087391557540300356178453956657831004864244540070386282381090716336007585970252926593124587158271243604095837723412589486833220937236701913278896130968809790590140366333720070772208505026874104675462082798035685379792730620868826649036900879690885098419353970358464019441386420812293129653072981296568650822586280680633205535025968990877774510405951685702619200991467007222692195053051910571738916734750335796297222539466196245182452701609606764941267666968221492766445138830137253784771963392302535471454965809562487835295950895492546003419274684959536731087029477033171832590474477416269845690105411419922505930275826083392071946606987432114072625591931829991269473003345297952088007266770622772469313170282356860680052729401170332296436852275015726372466065891222619953408589371081071767602804532414137545713848899988921892607776895003135047419659523442173012310594042162912270375814765620202272771967204048322212499711619631597385732510584779433866395404768302278468012350535072437926981629817561755823604445081314857085554303527586260312505775472385470419535473071602722982459137526542072385925494143912531745886704398450438234274579267206710623728231053038022225736736178739170121820054126490993253141591959746089312682068572634191464416108116676623765682931014842740194777544952440781747464474085225081737124477558436188279886965767786989962493706173359560115918703361008223187378616099103285447671823526208301775263392941107928813722232007335451244844641605710140492110049652160149531096188493906379375315189068994443086485394253184051755074112198908912792984978786678729200318074322386180158270854960288965111255748958466033953743389597296528047523794123430335681748591264791566802224970973651860710447045294461244970143450367048285888994352010211234350185534700269616362259287369112386406702359280870313451581834458478229638747573548630599330382202532831453895563683063144182344110816199726596271118221908057813960658407930359621014797482930565993280611139145964001235828386174147653641216973579669642628111466929446389768117417887462148916475879401953567883113137225947108140578828674427419017672494935397479023233530883694509952414216184684669291646393616549991025170145196344562127959569740319728355600601773962912383553164187116339397742623810956386735448350510559364385881556719236533837959362245016099379407530509308386040382591491580200363030434852661321227006831020896427746624659193808806668478656907382754775723387565079203048775972774831133814971802357267208524810655484595121196243125055055870964807359698907363552511843178917030223038845237410357326294002619313110313917201014000429613262376338339475389057391423132457649687356969521021576034655008208459484100856083679736648166411465883743981072801475258252060248957699895292786811349655834538567532366689370627476288363871438563494631628222068718701167388221509736943821646536370149734428083524363792476585259955546021791225690156629705712674453663332679458011208973934329652688725883403748783306094581578021014674468116949203356172181874733308587283480733118781298537000131974909638193025112350218312898903390626368439332475317834345895248680065415161175057118045981359973702897278374036793832373813420589712992025142229123219831189469195608076652491606913658572605859360753356000501093147258400454110151479140197655754113246157618049574621756606100640364941461876882528249764529123667573172422357883342790609874796833130254983239540217329595049993805413262886973992427621853515475029775332441257474203424695791874530437595814004406235560910121558655684399174902880096557705796435718633854509285608108939397323152145645214326944822124383256593084722622913884468407021260358195916657587483506518327204341100425466054224103060540422900348475874325724678226615260344036592731950285657954525934640331965220720176528842839339254582046208036520387292389526124464391132981283932600407444309728045463141586488097870311652985065938284241057573888227747108853052151938120497413963530858729969868474692726703298499701760369999402454881989850730422566689981233238171018451629753450774537059519209461727048769847099633822969460033864917020215878784672932979466422484815141141272811962977099365605302212340860263359538990857061540644453736273406669755594986057886804690625311076925941495459889816313520899858155097409969808165830672413852259409642059616102533538303259995783635329237229147607286027428572858574812029745188155277606095875107777038264026783256783293138199694178799936636935012909519941412149099652129013137455891265547670353483903512925677293217246044884856377269553490106952570562086522376904962477293615218985624464180009606483797331332197186145339204956894288610002145672303723696450756666471347931758610180962468485892545029159691275400886534099815605667631207026865853678608216719176467601132308332489887265479736106244565135304792492407714036107277513211061838807366782199801192037127480678097129949146109891546335108247734413476255131617391499673155220392002609838787358658291618786706033558950680844290394659608648000483763096522025647578580871283764557176476189037551182238277539486125742637586310814046404203549191305059219771158347605022642386773818627905019633701125252523460689857814925170675016665712390160823726251491839906919243921313837032548546871822432196073829087809668322184096208638110081442589108421950549532125618262109706099734805686044427480766216135401129923891989740175254521884625039837529891224176204743421966879348497328863330739440962604078019401935258501349658595608801656575980018776544912491569866595522616791955232002901776484093080682652714387489578139075024642587912179963734190757504885772525916564650768470147728318818111216892882744155851263239842657420053751209045220883386484065872280875840857791094885767981510788867000870724675311330578256185124524807789745270644040806128448065507997018262348087730446058885008884436839758433877280579459517361479958653122385872850096472306017835280860103537226824412208550106769945164851425886084518317761113405366599228086693120175539600530030651517465684347084359493482884101444825629082157882707871007383884014546143203793926326477127073977852501161165298880614323680120268022014507799452157432294393152251548199382837319566830317634733041196688550445653175271494758709753303061735911845688370306311828228948620493105375841071684944130062377534290353192966077446516927853522214896094778880645812776276631584820352851325078004269626666473636576164255719930641247998584712251581576840554827182832029814092336364370560868633008833558848826580836837200113056981454742646288445394390139067123163388744476239507312221702767402901489621254415439400594704186304858221845878264539708751701674420803513812492528613689712647719430858528167384481140311685095072395646780357042641923805214492945261702505336243636188813332871739382447105753099137947361481100777190144967631219116456071598678779542095070761319451099716797917338966313697511597631958282605783992903998369665388087984475706177431987404465428180673743891102297293204091682692836816021880490440441344568614072121427863922888768997251340952501317799951558605090392772221541279720339462999001840912698644972224653870902401358629440052961814253006115239782722601094735589774526052213680800934363977674504331888309264591212644192882131099291857957431854831468316996301658656274864943625349053107524475283958166027742824888550271044987011111302840409919564327093364801664622653059922988002951978203813085959566596736792081929751752037780560918005081130198882910726529326307895804704418525878245608011903807942650589515170495514458478457520044956519594774749036990916893953098128163843985201927987285110929543734892157556833810782074240487707713108214829440751022634155983463478015045463759473141165330272343420309415880483397143025309314957795973576532312734632796802496329651540118186158742059013779676075527309321614122920050324837897644969448685274425014074957808088395256517154657175761701232262865025501081796241814627443035529062259149014580529912736218782779642220242951589934561823429745879981800544139136083349221403107875858008810205899976248250295907768562467846757608428018868006506932647963102438992507094437911671011174844107680405738256716922878830282654389587781016520401346304147588681686814380169159751187039429344391245519954859645261331040052528916203801623640134897047767552147593884466174698225663675037975515375419200457205192851081858631567784768552408403135376113344303382924748011369812274767425110877845557832402693316393470710781242057665509526529361462390549399698291007892648381470154718334967283595356632481360811251564824317364187540159999309408118711326256027449648274792566657113334689012255295137276125656774141329538013571647539663342316011608380822158643479562788383529279602744815724392233577718606745028122968851746429204296569040267598289010056954412314439842131469743347723934433348311222422790773091395732792245469433585397616616250555028123372112294066576115183049692304226408818011181214263518152611050273574666634500393384529348607949923270216925668379940806847181065868021955175496717545584872410354186977460705982725194524511111352063524355946501475484480410743395653596078403808191434379937411256265302204871353061468836989487897039108324897540312193759361341390015437000195435173055254342152874442404128234901763711273443517807553091340617568850135276663948732613418252176383535148059517379940205845482506741075561641234167828955322319441628076390509224873481754432893566638151374758912960231422738000462362704974987259177949331205101392411324891484857981474911611911288344845116452784111023266980910698474224734867027291892103812184179589800596255224233217949174087838039937104914281897775116997674646138061742635120937635310431713743024936841434649099603208971452346427017488433356749223759900778918466218819073974783276049027895973161568343482240675623729523034915609769743187007910267654510908779184740470626632776326177341634061983234229145703921957358402661701365123621150527377965680818547579759892062179953116563621976471080024135131993761038585890461961375235998882179474887386072732084784678632501114487221290320300109504829470716758935343777827009165285841729627369561851970537048090380160751841768113560857749427318909361746910705568742648922817118533031676507472634958771179934208720129918350308004141077513756467786242087097156804595628103608893801852598974239445869911103620416418157795492184940945294266768557714253953544153570206605867812257967401960051069392853429758434189473624539478491971912141669393702910863385273275878907007629917243701714393997309363144237234781258367435204777709869345351259340179773373082527831687137105867983773643389061702866228413484421504176480140218243042620531765944975478871809008550447425982448591441518091843516111753375789746441167563016873403665987301725256836239187021272885286303647597963155179961605570188203576906329961591755944184572515145465965485681619657713585016241091716326861681081175938438281651618967526049368161588507080489802281200030580884213857282475117961027720704349109281024131455530065359109353607584598792359922248345028664768303325827055943177203632611116687013499093422719519544466193784493801584974347595945239826907621653197749336924424800941375257125214156305354446316841843851675253544945943716850731387092390249460710626231293782028023785752533239737657235441951266532483673355727134521435191544038199241126827305780130197839193543008219879948525477878406369994405108596535410875929285814655683307025489683370736649760330330499682557936544714592647014842649632280995597842183912962551531782981561152514125992036772011669497379217427128198389754236422443569727843856719220561875134064223062029030564159537982169131297884385803265684277237938682243859491880373799317309605827656068198665354642697737078664317610271620187162239205351258372927717172403957846583605511727611238684206391797495798067964209374995250446608257806442161009903344439559807787262975419726055797334554987332298433869273756276153667526467539690460883816687198891282602458435636483324348110738871244646708851946633131529730821934046090139287851024114629318637089267842994370433279103156683469029939113386493195694264402509920462749650539761232532032703318864165423198963876797681548607613949961505935237742994115073804508698279344834207272161411120025917873000405316048504575497865080494332461449899645774430956033693513880603652636704101470334275960589190765744545569833894463882259703529470069053371401244910080564647541763460297552671971678961701552233627192688629205556130239757946903517074784680458175844780802189638514250478924111143903641722138601382702336937414071267323932316356153081053200397914588656510851577666351396919779465545129121388474610208987378014717777755566463388359686346884342539464355506617671334327322648043906474962883878696255232326149692973267839007038866308621362037163078024917103791583962000424056086229079051072156711483144004348555390260123117009349825631594730803302290174480322034282493302716111196264649337263773738336601355654377058040377930608337673786574253419896075883161988667253286895244453966615274883223142715744656044043450763858012253568391821864756093775128058944465295735588454000737485796546593414225038109740012862122837486095721486964567444914008590469080887466079621638534703762983211817801526787362753487119493243355264448930743913681205098946155002033109749412261097477928003004670226230107842281768824173287895892915684221972489343239229096164162213461874501068391901789207757164613480802714500341517766335243845885618227593388463514161126181471685615595488712816905558610001265316351663834350054835425412653109741520346494925004992251130953679892976308261273556593272075337968134874950183931339086420448680141984801321524107534647107226161552610421487479617206143978605082631669845194732958506603968939185602223979643031113968261561114333233462710264019289892196710745917833824104559398921808191281357675886252997264526283178490776812639373844749610510268228060605447182140831111681877367337031820055287983174367437500809106174014387340298670638758228944462869478844429425217077027176442871461907693530178450849179914070953802822853139418855812788643500734541237930238447592945988598446095549427934175640983255064742201418592823232905101325909976121334417714730123660415225414795156738035671779581085955623560153121595422288106255917762151027644597883528045608739804088046058251309302552449459841329495496653028127503677313951205166659098386941260021510152733789462648082639817536519519584765019038482570972058352362121480377723830636689545500256181881163423643176724546764041257470175839604693139008803326461241122228134875491696402759761275226920493253654833249565013105342037583927862823991151958905843581940140697822403880981362196490250687118233435053411212333126046952930431596423706039150550652879830135421100880666889080262965784077818133877763828126447360174484553484896520215577412138614978595670186394338265695102267048509060226334065873429821124233126638013918929401354530379180950857667461567525617612950097818173665100370231408621446205292182563809868314963275068059699404270026057142522797243588867527395167608632046784601676793826526138480138417840294994076009139425469400203840054084950077620260942696964641685392429685150984351334644486641775121670608517549338644015568848145964978415886181278357431111076366345278312386974412972802925045223385262352848611500794792379627013264921693916673499629551391292166710275622369594327374699763148575236827854415624863557799619786147071958383958995317804431933988695382266541378026062363658472230919925526377506200039504708020964865235035357431721102408457165712790788036151081366731212365061371962086485963601300881267328240111086452455959026621244820986871072324521127840231791675029194678569952068802340196288146099950938406810554458205973748120169128199083093682384335165501707126654655395255335657111414435206352575391427423323419054288020549577445799827134197617957703798276935485721305898451297147228262810213866790741002558940076739514619959820938665490118118434232963795088418770521791573401509603921050648506483287733129957820383681771303638710409439488276373963740505259740316812317020209013345809775096560736690741570613804643878325973287007393929174552883224358623813260300123374428872346555119839178104872714467511578599556397988984721841048513874878654720570479488302316867510708356602333856880490995080633334944218383761005239011494032806410883926515871780754389434848091694626000654763852488829044834008248938730682122176918802553294472528780782418803077407936404631693268989101978875097810485765070243623673598829178782414813355925042146880787367467624792536098183211251936927200932973943585258687754473913562283060648640053371864861462141392592983576891569753047529338931421208955088201322884301251127256543286876291962030672606718172695331777349595825808549312917928161465070801123656388627888784789733774751751432424299385623503367835145376009236869425184901845868988269677965042813459078848026518092836157282146117168807418208712836953698324436084804029373138384356061311154210996766295691509781257190341823102098502881067290451121944003551974010996477225584339474254523225852154637466984093405989352041164761199016860215611100271384655427482425518973861476675948182126886149668500868343815466801882144195846726737253005812851151085651094139401583499855843689308007903920150353092844300771375879895923082427790039272991924477373590736518407762356443336181266731160357748983377011329422166389359911356858469575020353259143393511770441264143794608116410945749832302393308662332984241568040725419309551736384109171592402039216475985370322152056086996079681989659757112190614505838423717555810094635115671820638820223227968048853769950330026140916450399671530115307894363369336494446672447238541796968671245345720897628863341969258874847401728523158572644231238668554432562854090776397970145529742192996960694496462791429667148239394878097463257008618411508139537448688086722365842217581020582186060358066356834224509397955292067185941566034293943926861555720915608147975580821882204571936799281867460496830187161693830737164970926587384879303381106635351917821191824652435434496002639560692427892525621095247227529741082252302916524820104971089555044768169098232039278038590477056740722874452669503195279304396528465899120932052459514451473240460009179474647376287318361230958581473712095379697226967988532422824526609251006893225882655765668013110592184665982861334342739858185947065249023715522180322003880417438864357988774030413520604335020825803036026611925449273349410177626606770821502872469453937030543807278940888157405636473610681809910075592838271963378041876640031863112777019263732399018665477027698391536230713871053450556967294860651968324790598022706413866800286630153311814888734868452270612045208479406117317172914017407566269106845353338839836314673757566055405430508085117835450066031294362300785962940953655373870621199255306031753488070820896601101030416931576089273728858614321499868665572037247470698953113518300917259158253798121891845492356917623444058023562438711991810623107866774430728212581659634266234069004043098877620212768926463057916108382383016352802773156236184315782195588057787519346402578994547952016201360261455525123772322869987883604317296745167144845046434323387566786338426058722726208822342333242444027054768600444611278931881213591001063539204709653566457491805498398884986831541264732234761307084094663770900943182856213940218080831292323389097014574049638711423158668382211658358472791676832305178783757950682979111054954087655959939353466090634857054866994116813674927736558036247128457654511502266241852933447104451150462202492261113193281595009626422727316859530780663045731610297179319603754031428586438062776220471011727920736224357505874976669172015005669858382635924569433133731052877697414096672200662936356382813524302119289981316601071353409640409076872127668071598057155317662022521245663743362069538228635915472880478369525637940394954509388536124474827791348542104988670673678932525332798191840270567815615440130163472009997332671229326435465786204268650500660239946226990805668485110609295998914022956632970579291700269000369958997121748847202419744089770060218033561029669994060853882866866231847253147746076202784990545922729238306184697880135428264784046707754420097628543005523129970793972279397229420532821626063168218366973045553243245699484281903467485600469958723257945114189942242636227390928265093849995583302941043214042231736580169552664376504638489410903219086479620307337322549719287955826200818220202286095842878645140381657747909837760591829854827158423247603031140144459723750509601340944619381513151714962463645421939094822725234134138228184487624533654021256121725389865129641245441690795604970066473596821921273237142957614325252516420584382472229080481971330857994654366292924093917061213028956067532046835591866569176927225954979660675066972607907711368257150052215731293598969256321867317393252438628590515483082517976826536503193467795166189524650748370811651252796636537799199597771164800620104590351192777817740742028514388115203479614110861064038749172687914573666217344496049569667618890281061573410345834556848479372549891568072182139485839951221668928958392678140007765424554298739302041885820713746622060132720089225649418044668110313599901422871253322111040156274457078566147780349838464281897208744110802930529816297159701600176021536410680391385492675278192854607712587924542007957031373745008569778671044023589031193505837061159812860468893286508526881866518592434991046170139778063316073418273985949111554941125471541844949519416465236606944926479323810635604464248203846862531758323102420113245673130075122032959145865719183812522988447336221397341952989555705075429827001691801227778927645203614505451370929859388775554672837840355620786462273285724227399683766470697673781826655112687030697835536930010613922546689124345653118079515682028536947446079043026772499178547690873377514736733809989206002468882102600482834084811964559110714056692170337862888301926204112947846522703511784291950312437061909579960261637361966951613550273187486445817083808903954298407907916275697493671836831918100846640019514501644111534515247542004479232330715018852555843789798018693571314060123721684711811632323039806721121340793064602365376269939617941399369185687210333536757662316063063964655205681640118630544359202665194249080228743016559786995546504685481476422896427529081290124099204137138859680181224048603174303868472646729530089623639356921329279585680651480070228971790268101183823835111266493116429398230942355444816118924959162992621922687617840129017607119779334786267090233730364355267967265153565587614824485876718001241644604486146561320339321847427054815238938675665134783065166032396942870744188304388965129927358954579454295912671904352040186174171449258929166025332638028259180471018159434691322879587011051158388596195807313652876350705891480845536443032166625604156197267024855640074431550377616413723380395850390688039053400531205060247058779654049457147439849186934729571355896597677896300802546115067625533681672980314327408974591502274051053963772774963869855395436647428015745983203216450187937205705065004120485673546535645998506453850064261129042920758909148172590287670629548151450970005789709786846661726311941234388986182192959323387756500833044207814481769331095843110128489566165350327219435888988900547506158573078576282589367127608490877348888606009111176368472549121627643130899089541360188380688279219127668519993417935281155074463993977829156338497707706263902364714232642315714485035723440108565528944511683250799161634842455530863567940268627374727458007866973909655321256557709246986709767424122331953272085840758237585550719083026233042174514447434817774526842251543525139917513511724089654861937224225938736767306524027683432305968862225693828718511543074012445056808458711298091349707266474109371539912521371275206886502237190054723516074035058227163768478506146435932650729049826679810578945358259282658968502791270835415448904939968291972243318376619535140774824175893731020003284974299243417039953313492956538821991174871955003440521615975702167924564571413842045239513569368017752844331163820911183551901268383264057756119406000090234183444277732680329261813373044260593154835742455772006618559902082198587364403658597637423888299200152426925463681034066071946874253499075260880634482317849902798323191072847011866633124958783664566846737269759796028499277938757240586308178230700950795931045376500535866426188673708000193757785619750797275296834823681730609474814968265184238952270305757667272914234694980945956895728548449412994241377673856041316440813644713933902371202854423697944986917040877108513492246245194737326255137068645285128063275132860470313131744152798374399945080841152890116086912054553134966181685780159597832267043679307958835072031245353113331918579439048684120665385870978348111655974560731302691557018217180145738259198046026875680176266137711148982037530458606421388912374964335791176064087119538397260580823675073011408324256036615396559234769559523602961284747668695370147863421463270363448960261727899335848078180210057472828059637345710841311205602492350285723532882606337400729441716008281674977163689253774051128563377103160822419187756535558818036558255611597222119623354043591961922406067840594825357002371618044600711886104448231136153100109017756682099086288171513747377546645974342097655980212429782728272797638303330217328273891694820357697188057329727533130377001286729683884900346624177799278778149872185005932711936286807311240304771685871123145660217350143239160266491462688358256581395917716013331916270520455560649462936449529041292539277873027111289890051483790077469834065772378286925970757788686259025236951050470365672602831473454486062825182709159292199633624431242818594175885969137604398279915781003924235526684056145594049537431049997000065226244528460194371929482403000688193116060521408788964690921589392803154474896508658320425209615223451235193280257414442167658696607958823294508162926104337191867452487382291224764502603148491239839205670413235240261726066057978286312268693883404265151982718220494998565919605886902976806546219240344573236934455985391878111967725401655013708605957868519226492012792946821178736670465598410010759764148542365988137248046174482237275900636324765064919869345114503352716505842459403472261199711853938881421433687783908808664381571534086640626789987835590897019672704698567020876428703300874901119491388374456163743782021408928581300298998742249307877698487559460973898706076734616768931737429243465353333238696557516123352475105349839892556327832992876397921332586747527014703257891147851413359017306677212043858485333266197052916226889945775801792306668308434767230106401437428148461892917326421556293687252043380377584467905689152476884545417959110355581998339448206028200238191037386256874832368139414424455874381574452783271917450786750369716739450990310908051540295270477501717338611440372165292456509948516278201032065851751082792097885928373098801910511097562464655620879904316470837975942140101810558032230862494552878666494310827962955585811968751078034189839481451199847814356063318090992897908761267906337402067554136325877623717340058589588123253221416114166153840786563224359415428828971814780339013777891492824075932322386221177940614316704415176268209055197507259714303928710036636557651928440795933042618294940710480939833986132191849113922063767504774956634010619470220672071836003734507093904956810717207202830034094294823707874322466022519645240531393021323436282142181828998462652909666562791410229825489709850099382544856621705955133934288471812738890914168445064126739524752453722127580004242007473493455059277894422293381795077030688016923375281422459994714885412337571875425128903033761077064829644837764512043326964257650531033768225971831872031463162276136120744158607105453114462079195878189161293291358388213625072129009933057706559298315123650336174035297280278277739685814605362844120949305119026164684815934898671352024966497412257029877486094644047046701864617181929308411345116238984759281785998263613350904696012771754534399966436873012888963770477477140731287639138668289349083042873089249458469514665909998947011965784303865844696204290825003058687247017667976068042561540014478045284797720184541576500221270502342130496066138490139119536061787040841730688287860364318638766444664513437166759784978090557539905081614165791109446166182623118891403998599347618982090169577960577919031440584169764651382089205321294389314638236561914465501743959019204774746695777919408055893393114385502775642565010926801649608110979395752115036495310295357561425677252769316508887777578106742346784223608450441686494991636124825802167976744523755629631218236355396227649339817779051895590258552739892709032990130461847603137573420805641106094792920935162433619058926969811118707226434341886843657656180889777628388692139534310255016922521867634445771786884275472658101000311332157977436010178841468318018917845431625501663911442387067833788888421075582232510231745660842993526497077309964346072857436799673524434444873851398293220395737080724011442247501150122971916866954550304256789298155789203424540931458008607632787772185185636597357316150188601940907545043061715876721567177793908571838481177637553103064154220341477001464765386657247664718300332954438763351913609820616516614615962467036374872241738452313063211713566667834448638871045001886512874838138632941865386924680753280846929771463784150899047916536394338784004387459434811192035710831747809914268158090111664477501183204871355328476372712165245144099584576718906215511754062478123591022294098141856134155399126685046435164546088952502205683903691389280773549656074949618929092577047200710357103848236212421906164199987431519069151382929727542941088318676505087224128473787982400263088934287287548135720782318035210219063525483348631755566881670112648867925121343165817848303580693806995363728129140145353625885823135005486034759050073994755345635636675407426163058103661970224790792314745161837193855441287673571611444961853533631508909280600999731306687925279897297736025280712502956200033608578441138571947637858828221587354401867082619211044298735295519341293855343329638996182869687310746464767380143352123716097701349956445317117678568796956795772451160426591777430845966726654290008160527527990482927371202685522083414802663076635072962939966284319347603623090003206338064254016146029450508707461688531510345877322555182695092604162461806935064326755347758857623356507204865280634204932752971510679390116107635584088024589717581529629901509198629974849512340815337518396483174502160259574879318281237057062331454555225078582896925115219131350879967271390484424353895175267551295499214898466895644859260887901241614442549496539878162770008236394060865014479044924466683177344246446428474686973583275335713366763096641303801602905682834308899366840695443963179695222092440254213445831435839848086992385992732304010964086316537483220790202625132421485359667873094803402021486198499761862053527035922746058779797296539207013358573888555538019830106799857792032316130094047094513428206268176287355367619440525658084009151608141495321348008408773629366019742830178743696432542552355190914861313175641617257426951272749150850922706888341906093330390041304564026111134045796930299293123165214594836367953299795614150383618420896399853920570596877359878313208997141381252130600194865471740680401181633500957536148249227768624382424018584250902377355146236448413902115917415286713817948227971347525863540008994536319920268312445385150942611736160737833899212361662639701142495032771008419655673086817539247457795525397816643349341437937160318091346053889251742168991986883741770626166883574314023218060269006238390168037396635848069088102836495982442230711420180319304748769172427154189851575739585989201312556652384788596860366430279394807283078216982383936487098180090215013269199078363254407170332675303121459637266996995720322868629254553262125375446192097904294884335711419704192464398549438380387335889962340807471079351623086448825698174243311859563412792290606922852157498328857464277382661123833687499057716688094360920236851577230391887643846825569570626872135646383724234948024178212853528822241520189663031298482949239653384786248237419846482830328995946175308485956351387201118839398518773282903682179667172670456706415437317679233176162419672459481647194169203365798443397051396628579128091286254970619181084391694272109319441242636027716145283686765574046640376160895763145270387660006116831546953591142858106504941192436765851972192603341203396368872268366267566164958817620997989943630923449865358094540187521279990091279296888484812934924260053217338722805011796701807999511974402268547461243949045874812504545285526042374024462708815944939863313379916743785264289042415089233406290603802876762658846438154822676496116554422065995765589010352688855316957745500258502073552826946060996058781345093934340621763432577267809337080823249094426285246425277463006318185879971440996251109265413847445154099599174652480457564044301887076431788859570676997084763297706620661219920307183985718933318647219204074966993067505261339708345776246294905002532200018404164689623176292582822895282164094761466628117463489272149129240315766078316576927204422566625279448029720867211896645197437504075553226516249618559382725346435495962504271575247658244236936728099988259426043875355498473132132681044691510266318710654390607698755677415403090173320556663793198875645111317169963334700150034342305822385877187537841237982460500857910594941741481214448489768108247818869601443871619097110171817257565572530535931164331240795554410663315603669651674056125215697294389675016549093970460492543583588592086692385866620047823968583209912035224651820950929224696019193416452291242010342151179380586771592735660385479049080928998706577090935486526706588748230912244100301434389761355503382380668649519951208638233371007499099703912566086785405600172739101912577527049162519886084780865638922171031752831056966825064096142848667501316490480509007524685471644116943337121573477727451868902655358613258433594347313989416519457671904240602908470321280806997532277381759253752965461047854591678479674063203643456920884980515500265913187310516552126817394692716760069553432403741556313793627377922632590960932453413207794196191231271020845562239881622788724360916923476303266607945593177601598026454379381636241577344529106292514453868084687170184007774550096843173241147196738510228648375927755335965372510038798248969746460305652618271009448424514955291819629335151445458386365151376053648900340623500244901128177135257587381882815787890552452177659851244183976994113809320917685715307159208753391102551938050819916132750101660558998881957614384046798870286465202389575344528093012743129435289853258380776752694907324064395609539270971817519361962364450277794036699513550063029093341403856611708087733519977191097523109606777825086746335629926813975413384500737857365496334990201014880841464788634723258516083603690350498894449825329007794132305237324004722488304347002254395389499322364522563911276169352017029248130271344507575872042065860175395135944352690192976546541718897673410470435498455460712699217693018159764299692751385148844022429189310703395481759358357550730154137244510495236690469156342881400599121592792572475004810834491090809804527647511099530398027892640413868844841123659050931439849563231501834776102411077884075617053340406788338106453531332322735055565079041004864742992361680959044808566010763374990791840744281626475217654575939738130054463531048694375895063352645398443977211891428684472064880039208168290886535318937289229196538465554905122965231807323570122336779189072519377414338436371502242754113490028527930880462246591133040948665251412148044627423082978906178256450930855586447712665271041434416145606437603550635917495200024873644833879760734919783884160389049024551468310289932709448284097414732694835632057887799667957008150029150745813423831604096289997665208466999765898687629807044668717157163465530952930427594100867724220277611716722113747803821914003783495379284804958827028556946666431002454583840591078030395320264171471298289386380643858304002096511680943914305120910215267067687766239615154879729845914980309552757335939272315939434753825968649583823962521560814517872024442682246438506900953141215985299368228038958005013043508661609563082984487004566784612844207275260185135875314463475154417652339361004270445604555576622387608158846180671240949820775750886609537266758423442932215058258872427728685228144443405497074417182763660465634772312585277684892428241583044165731697999446286645951586291659482185493673117760027099560813360083073240838219164718542039958001900922968811152815555718075519908985683292025717986014383039312561354073647404880923412669899936189488430136256477297776339966210570509747960101444785731309629742825841081110051124006839095065253334388401580848341681720410115027103811739972451551357467562118901481185272859177204484295760748407084498906549579621023411376957653666198983622081309075515096183779159050664792527235321310786149195394215323697446074011389598865653334288082982237283128834144846878174866807409587464434963951723989995560749282173920964047230545210254456387041010114228666998152422242897484569841179365688957962326116554191681952877656810538897050874518863772029686847580702807582425154522146092408269106539284077925797468282407733408429734629422264214161839235541695302015877788503176366858620164022762284458599956187628643370768067131386776365242184974070943826420974256229984528308209891017013965658905205118329653034563213314076893333268414399290304280927920630024632610955755586176139533846918711088274920235706628413170196894433147707021180425728854032677796482652764878860302900939061951862346016911931562304947932963311109440213578443445189262061979045492657268670109128227311196199369277641684317651049209234905041780590504678910071097021584197829037726085389106029205149272624061211498720426308765729260930047044701824817202717098672884631918666485889794749308529431195422430090240408022389783278731515041853463683375728439433720941778542704725849183397183431889657044407300970071888759376461675612573875545103092824084181242212756565022005591372850201752245672200673059427268310744897792027099976279380305622636522937737192462928324503733446123498071616667457212830427873865184354746273768912222797678015407876806084876377666019307051675287155788849373969279840397955620980886991193336061366437391911737624457331493682084237490547186907567801970701098543899010430822500412741864533812271904758215053665403789900217673695095541222563287357520576528617888471696597068113093157212095043939715610563770005130343037308268330549712940188444106892982940160651097820074903897639583819576241959398108224601712452759672454562437470596200561738601650918823309820987592342959371116931890704196767237778694007401123016781604865366652671919200548155565027771906404724648701478148214189281562022086813060478380861191104622303623640820627078425511172915126705398609780237538876556507257171228447370637209987480031725954661380410451740660919532554987854453103604571942270577343617770581355295015951789532002468739023583057266985844806260540619180782764201894617119815149050546175613029925856926885764181420287828550510795438203567889893658314953338957677999087851791083489650634603751287281928735618366430853882837395527064079928990281977778876128044892284598501080906183213499648696557863101199357493199779054429734635022425384686878719192642057193666598945943609721736544003903626730451148796855295811479383551433412101542423483713103172427415685989768883682820174530264508811789957542769596725884271728126941973592972109446533771300130830998700884616099199592524263550118293608572143194230561434551754090571582937032000752522381168438320231646816579165925811084425181008815959194302159258411247500225205682225945390867066178468889831210062758403114424531163953761076203667389395533080946921966535398754152589728205534263578342883318478290108160252654637020444355016334862966183459849864947467754668542778366322085768818485977962669703103067006341556254174076601988569518537133624057696525765144619718058239126447234175186609693865227704101622515936592987237808689094891626888974335935672983142489243669009632491160928002097240435637632231077893730572278858395415781348978422996802209698585027374919412902157257045435269431606012626519946920033933918716883679879365922723954373478511288608187805897930184086244730843196831362514564474046305570284735706845816047368634085982472267424947156186796077666188427190052985009063802191626805684509292461164757806070740879865319260966458553252665211155597263998737534668242482131810586699177705667437855698059666367406562012502294162076796247594367257703925336654293729938844513678834021148364573191075546417504682870676482563337700389798768334186050103524823076602240684834813256314461901727920985242919531935945522099556334871134805073780660913102312379938504311117419325998136989057407766002910326589125778649034142722918534933300471231635928229977196028193965350934300949873415779226908420325999799973418920605908411442357660548355711624426536422020515274971282385851752441975071335134160966622808634877342489241860665764848704729231688019710425439028078395566099314790585743957887634871265279223587254628848074231802026872990411449067666635031210568020606293969904248142633941420653754062148648305803859976276133398392356181560581053291619171380557987012085671277269397846241648000743508878897298575763063745985530196269708778976488738334117516850006601678671462609583239846286080586248918071473169351716289447995246218395843656130815380197595829301272256789570627774547024621950212777795400946212334030951401960490349394002307641638395346341415766703355646563777229095065609238098044009798667696756205672064899311422589479700251721209647257935193893247027006418344368713932473954940971263666011944155039484961195841372067150964712632137928690654693356182241224552655753078341961071167199133476351212711987671969918440012489934072657875128439917389232050559344066133145061533899954435572209311760153083219129829383158934564196946227114672824915394526239677360990550632132542347104989547837658312923587403997278625134882058180892762041186262567573731672004471376461050902273481685857201917848886226138407396164628022571022889756418706144596185916977021354599879864013367210675083168143800014605561756832637297417182110328366045309884054408440797247356704791260091596638022197818007850216749831224777737461224227398388319895773228128792398226792390441178031059201446254922810685516150621112300628641415634841118357169015655219829273710476326956249773455974884342641605102232941279355182865267386684043125934981098076689247760508023964763079407542394356603368002577715382463208318262259854648528193211817829852276900823260183701179645272449620172393685823725032213817107711516918940006127763929574404169623481991614855311278807048931572227086108048704311565574812612023356244147362494932966090507412585054791437363930568060779776648133542865561699134116242203680990926993039275809633997374977934048064674390430071572752853094950735919706570835361575529041121900440652343810219880467214479327698210653083850632423809313813279352672334856482085048225897862277278885759859883048911708541588053959216029374530253679977669334737449042693226939286334212711596213228644133238901995528251132643983793244771711977873301688722648843149352007607360687373725350111416490874547427225007919330014339164447381333765711733141807642469979482512088537131657486213241409293669543274092592711638064324654398852761380059894677164263542719287170975035793184808525817689927644506241999871804558642582436960600763747947081622830875182669214836978367247396156389425976359957963570896195995297520022876163760469543419385437557569601938993408479691565340777631925901341458944961354342058332235577242940799746459346360107942466046176356269772793856982932838947557206389869764431062091901232861071564435077107869650915738036450465646805729008438578998249697540524773242524269179476568486981536725566834397299239816381385773650559160163593731581520824595037916627546948431367105401577388725612039351602996064672704640636811421991330328450453252387033078196786858116413184948386446918688782011441277544607812954687583354886673024332638406196938945007220596605235841643381107548974399432874508916206896269345026808566519395101342145127727313609973637619855599160569805030875884436193309494694957454874294591107750877846921803367769769138847848113172475171531572490645901678666853569593982695671211169643359093114808702334390849238531105587679203022396366933694921892503852525350593028431732517634013903837101409463262348951562419781290535415137784274153683230666359066792980130115974588157941303916623229471308499074282496249454186479103814574464450190618085113761034786967516924636847853573501105600462031880448520487789264997095782726509649043286474983362506453701667628661040796731137134774262944960438305591531098852432454869054374562472212849168771598618735965230844598483364553685368262859811713586597131341175103957245145450828402808147825601090897884481823505422385507029885084387672323813164659452567211316073447332837012625934689454958263477463188213195819657784304263125077682041756482501674329698026878235198890683193623776257461272446133729409499659348816917339309797392592280994402837949947463143828799058187058757901795109176624321968582201566548925903408725945601642785715731043287988167478864956292165067820801619581961312526561437221332694611733401136559909748775794714148929364598109011017579359697680531451393033747182537659410700486859396001411762227304092695033946975179440127906888234116189852112252971041816410706326310535331489126530796799721633021740754815248304081801270113671532159159929118255527533392677255730469249626545798928664445655476260264986386244447615406446914336568595158199093738270516196461574317353981817898184226408279434392249695415591554249029785022184758369279496094779191950016829727324973963478332965165399987673404612713515347979979075952398340023846665448875739510239707198211340290287141833932949895365202992679160707007099398932059178701409500302886398328494059222059112773929767958866440905524254323481094717113384151480563183301191776372934176009597409918341193438613051232049055831683039227900049998806799228452958349106800067242309846638646693623010458742380012779421315436670407649211785907267107171895701586998362783106059842082756564973846233166730294884110800470083304615905104896582903670324471054223851734262552731951658249429332917699328151420490239362403379918830773153940245263343137225901941074094715238431491651155556563759301573100317141603677777371232614825454287683830406117643647398352681174557204568824449436380817471475810662870292566286762949612392915616436648073580943733443909877057720997417303183973544631745968685570588193459604299741622722753067491510489128037378969854916373136990486833568401662778041540854076885515800327851501487250097019508088260806331715663231851482306686218834263067363896821455744956246370278742540531990934652827974756741149749244756875139120324749765346045570144150792463684960997480785739498402631930587607492527034682341078121944559917343479696258729904318629565130138131865157607738843116172969522113853598391692095403001077307869918828793643793332096345088077786710289970645739526821809049369533590793172877781371593545112043382540288160184024019677689361574948973993898081905368085070806182560848366209541277333470007804359794886922517486271439129560023199208600837666023904282292584357674597457127141830867343574306139274027671046024771879466262773870719788380764035072493301953281443900370212655141828161399538690032539720407483581413674015486871612431371169000584625808779501289900826146359563381881363236470751630059741319701632425418702254799064502944616467796170621167667000675871733133852169801958395429932053945356778539506815354417582188474502198000024098619430666977594610675138156861159434789898345345531067285299783974705494116505704687741348400440385524620702557564278891418446449104345744172120919532712003928002675714513084015355352578992187178206406493295657956786565072900531113755085396333721738482916661681077786722952749508146803642540927939958583463042173449809853767747943167863391006022250053283089377913877465101089295982783591569291936964516347719164954839094873143596089026400814616108132317388521302512123093893981112915458719843043490255286477891356411652989954606957355551158143686600927641591596949168156575816142334151653822472698030795659169919864008114308962589369046180432959015181155108612180085920422540072344279563232936008988915020369698677092470562621097699886336719513549001602893292980370514062811549151698148112825538634576625014398787726522170104450788711426905817938623080572311240523573787485860109529055899171040627947468395862445052149196606196531577702341464392042511384159314612061369245052824991201095685360923050200664088344215182416873251192445343433913451012493607719594721527690714702196553954654709142791166076021715153525014310660442217287658417268867790431247685103516965988268154261241620514621230160189980839338112728529375645367955593272777522292945154445802399679600244879136311549302304927045202957262924987811869526346662894360381623187340482232405252523415189652317889219666220098654782342160852550754031167423332970356768258356701496655201816925569821142819273523771098195418975553865444791678546324968896771236026565683551242411373617483720797353429949725036204372185975618139789590526093557313117606223037731731153791633142174583718770586579990639501755004652059912699435479089588886835243549308540255784382678055009815287215657608224090909499085782715302796609480119625435669722879245703098108928975660628805506744323964775854341305797744908515173926511495049352577392236033290833319094906707198445316535539282472469555398218730315348628727701265138800875601990943265194197484854717014678741267435052530461840867420567466156169417630216888726446045855119305847524724137227247242633203421231909145081476877107964739931441812939239908477732757460041910832952934559794391393621161857654411952759366208440978629656085209159204230687065375568764178813075789782278490319788442893536825460547316627488897312514696361375711987200655593011587335263590385876955515237659973330785029206195644324450334626065996019921573480722539198978290565977204079431935853833215559791774216726041906297453117520848357722504052867106260145255311834950614432668827560928069369020651511703171519657488799365537308369669095009915898269247096018724750136252447827349129829277447134019766996806684365583491722321542684768222302413053180080428292162524436240146881532468324077228649530486835597703726295891918071498131588470040949969004517869504720369287965516074665004941950450397376690898526959464230706572503427876624241424496455547515131881595803460672906081687910911052920888401470352182408836919458950136031681592346606449600938943978150700097655861027460168022307683418506740865980122495584689653137152569093561205020825922802405399951381575958880312020220428089061075251007125009198990128077226458355927654505710972914330706326151654322817627140622263197962026609028166985826228231629291526277789772971651462794009625007051152180456776221353183017452899203594744063932896197319590456117981676759453398096167347503103005235048117219552676941499593302769773171227177362692794617358447847592406154780255731988654215169092180446618027896902277200733581024354099048961729426258993822177277796437629403242020088026014428962742172989294625909180456524601493005369873097189357482822089752241079645141573485108006943086156820759275967258297782621511546009234818735490766649806841409281589968073797750999297055577525772064297795046906494462631959987652673658258698060334141069665982706882987316209984629804761112699482040187882754887277807614112665947842469183658132284464306034468192235961389400643609475077598399615250296784480272478041801376848408004370641513185446410019503997404436367393984360601125137380694599728978854353780136952949389079515379841600422726730721094008181208257316860134975758307123698129450266677403625463037778088174234189473649790722137540898187871213479948088802099843042370196867220734578359261705827567873966454445910871363837860765078687172230955510064411019737921155863089172005280298956898690586543801798133810447945791676799679040591745460565183864298415367329052100715375270397422696415284787372124470991011188299192868052057290527778434377476017748202339523964982444287426031900639054910267086207390424038677522922876077610238431013316493769763976041100489044184161086178924088947285652572977681614020894917227896251458585940765099364044644640099235216876382455306415659058449027827296087461838978143849646642707230071142560397595565451078274942099880598275449973744480187724121822994211456697695628644099364435884804854256558107666148547627384611446864124519028157749790239886531644130041533045892679978048291474607024796977834978775158195349952902200482862235081304487982734644828131564654528818418076534063523114799882576926534241562454805039706685495477521597338357091852100286057352226486870175240434609568817579703423019350062315772155855541821107686262816939986123109987611380720084628282997554874063618378069719198545779641865999317621524376435142865668420065329697085453738670676117383242478939420089402012533974384337107874623507561721310879710605054897223347581022583657526754487899274464786990777563630008255470167203916039249786082099938486704103746889843879761559028511341823000102597006603858675422345286430438521811715251083382632721033426205758560952381722981218400910715590976504631695838331062331168262095699856068976436826812221017907344801474506553217713167815266658990621072774863552190796613148651854642420152928847481588960306030521426153756490899433367739728600290395806241658464377268470796131333827509927241214143543322044487618252878391786387085112485345003250692517800748535421863340603480634312947978395345404425726844859500719163431101760915133658722815268308145853042202343357885061448082974473220123473580157384324651477143543104825490532325802810490580217670651155970367367936607023209133771121339537053019446427190299203323656527965892021869925992063013138656649482734307109469389098947804829948569038523891004509401645452595018208233901326687290940050975107449970557792530562284651538388736171251369998062985715095905728512297984268110075003410617573683886714842744425509040349862479253294692279481209569713576223362329283247905393137313331852109964714419930408310073673365252365771641026946072171266889120483357758534543900609779789378331001577701342729747143787831656811438817189126786259415008624843163788399219665123681386612291011291058605231910032222007380573257111693191633839883363498242216944899750061935386303829365081747338561960884884900815464863521906875749919992586786266701937701597932795186132673753520152655211225898932186173689168046098043722102974388790746968169082019511328507228122069379560131404479583186689239942541135855885646279389139214199584132986756010703060568469788194325768545441327190007550950944605215695051661739714561225981681848530214054327419330135459693975977586168227094470065527134711644526875244022292730855133506768606497323155606609221987070785342808111880418232561713203709398697489682340602859457895855479312770858177935862384857271993802670082822604819868486395445692989731838668478895489325406370578505732622052253245065189064397197657169912381777094867768510206823085716600224013279783618809810270909964333479677678509089241667820187617054729613761478060687466194373320185216345549498043949800867550956703340543188408352604985590535913762276741060417535484100246464636830285720130242199286159556199578563073926054919888015723469609715360647046165514810759925142774961801366526611999121443558466379488098939273720686341226801657785169027235538729167919357944570017266653474003031681826001294880953540425768696602794693581639562395452049753862139639323267275872681983671324344986890758893624915342859277481109671393593452139394415862122930331903975098184518101894468272566687781814656993839164480929433114495072701138983811750374250036099004983754046564555237447769632146287497782832818062708946127934218440015343839693531201234793274439958536135442719661822042039231416837879885843938463200184630394654042160443497767630382690793426655756365545947575742720774830875074050773025515724944537573902907290808715651829139358401898690958307213129468186021451345303264956601972028184523289098532539150303435220424757203419543753375061376604635725592105201961552509085395466226385439610063897059515021959442272605971587819498270041268046579843678218495272954446234763903938365351603963432179704407977808622836217985514848187279501484899992416548074817037607634728133215242954418905910169854839689117152315222936800937374445731861791419972474686822609981495596709931211272205811118645701573017944577558521180305435849536820376742420032544129453769634053819679881101234482295238988907183422845290073198879000234889275091229337717323430865427736844342868237267994654111340621592264528847386328981415047354545665151275950480727533655654387777700233225249855683602082855890887241045686088473298110876683418194194843179479999798948843466600035324327259799606907319659856218298879920653298946169172411563988319095201457341777739074445161181426428577169085423915549037992599391079965791828336370404996712525231495520098691676992118085594138413532504840804339975563752269499987677510257869231628178372655544099755965469629408171891316859175842289145688587697911956785803999757098652102992110952451878520120786644222194300118446485624664099207555315354902441886057109567348282904064121521313829315454714421676841461719764438524726295471002732700816149352344602443363178751988199374722835531086563718815777269031331072701433607752405231668984374789768861485429135639905126766903809358798626181946083196644810586610473382805707614847778826592846304561628390313864576902084824558927281718825800459580115481978011111270037010335532016751594289816548268400843680373021661486423639754048479555706795549017387904353949743712316133361598303203701071947550592242627933396615219943631638624637592023366982868305290053269799448905442957970979192704833634358753535580195589996819938930721645793125779370854805056742626069905628536180106221473893121602898084766135417362246892561980523132126546770242609806069262947445019392013632436696819187654425637939963172856330489679993025803182953218144017291773362526513275011970709804126520983708731235068575405621846103438355233622122951017817471323728697626350309708712171183395412220383920032003147091290705497421773459503139126801487225837392924461050684065355406179177129343856343203277515670276146324448085536815461540251796702328345457086568029419587381744324236386399573141249779369476947196731856219410803646496463392583111394459107493494519035077439944796012219439918003636589369819520038316574405641482542384883834237955019980829173941413113752782315244458849309413192785397143451759856854314098229560645335543073871806047646036111335422827994992522836691785831116101299243974762849337626893802755904587649374059631303468052519036708207795176789349957547917389208883235798839937022387311864408119470304497225154081443561367655715291760707825071026609101792085830360165387193361459589862241236845534781227786426522397328260648601499268452652841088638126626959521351781869404862638210289415045274139939421142301168960397542913761391334459630429094444992999791585094096965272804487984712491981809936426759665505174204171840032167564468772070679488714735245715730084209370580920987679908572892183663935558945464705872176087336486374846067754541612930220231744191534377648622156759568328259755246391089136811583271521200656843465604090051143034016708880396813117316258463026727283183786916987727061813759549440364345866734848139781520106087942053172015334190087744660330041259055488917372779418162323003947929105618482883583249634819389093849296186044265218628669944872678742503234185523354170527382740478228673031076417966806625067248855634901775102852800139214375025034641802117949084886577351579258145084575495260703120543578212929064304673628213476683692975050933408625876506589276696151191701978197438933347409635834288900359071400230508590449934218497565323131719106593221122038259752898691130974953863801283974037608748520114254558822559160577542224426758562048193593525459496987818449593971118543969577295812690261730553850154571297729870714728988383567678917066556644031578747723890159078993733017905296223475515066989821060019411110403772577820853520712362519065481616722976317587484073821442268721238823894418966317066434759698999402003114861371223300474175933494462030032575547804957028328674991288102652250657786187149062432590729592596110690930950109943826174660871285503372610801476256893559503058032293625657257770521670773903704761717297087572311546177811029174229392911635017082247543336741039420205292886904484001407451098699703160856732142970798460392809017343113316771969091291561252539095105861557484237949035177430985788026934887801852689764365615498633488310625569494949609989242430670348530489332632206845374722690380746551101925596548563533065299290793116093591978598572692116587730554504069717451014870370517454631439113273493701028169548991134779341662551935206561363484759689433008447965872877587750123279985996091018506386070408693513533354158578817482384130840344542187381240870295719690608619984756482664977816371860635540284895499685949216355682303066391315170436738334108150035788780394413512159452481626897872071659823217419394274458177563901915041988561032137969108543001060949753387152757977718825863538656171859402581163459415004177335200971817738509357092961429804117196586375823783910941767094222388309008086824075795359230499837233245555281151555177212711427094548100927573619598479292461525436771035844380991253760808983736816798081052496497076700996955490043935731430568797785111254519299375589421952430739624820376734372295543593494500747329064216053123728364832346156481247399722772066705121802163582242853110500963107432907709332986838516576780712561692448612218636874856500513205541379717230829201336879252636719248798277503550043095870768231046352214014656997065798304801340915370424740668055703551286119954140618244838028765731846722814599884110097038099182620109760000388014934612209666230925229924869976840834655695860284994629328693816030901335137351286551503528300018168279140220547484520303870854357702506526372848191216321874160934914021783839106874158225828517387239602883323270921370992708588227442099086711595976462591554833213313167559828638068021195157756680264982866466316061375453869493979018248887550817246052954275303012732199628893722165743311289425949414852595344375282108983188225617427925634298258133975716794150827624794180198041326240725482463875027782517754729792549840638247297784548852610245899447313965246663489946565250378960989053513757129405205272844250181208743987045878465444163125881045747694860130843537793092231871346534487681373796069865722134039868536664782182168050923546025817554812365974113246178018376043502817015816853923385005845283848139866049420877625278386137272850903039708981726594233077308903626200011178596989128151012549991916551456605280457925527552424757417708126586176292871315777584899243998880599159120171139789647246528655618170032568216364406376809321946046884659918439489530811062473994011805141527478093166486167422242413907758141409799372912192406718448535181110258449955439757864953841184712744502431746149946834026725722987747672663551545423359478792059775215822910876230060161036764256655996955003871047626977673640467042238838856308626894197688733773441045566281049371453012857749181836556082288296533056374920141962301610120966366805256712589563264781396254882514262075004706365077189011666385482918407444964619053289549290542487993085169237150830140908206598931800437321463986890149858139546644076891036940374127850667080718653993188803441488292939927000416549084358556654458501591712755946373205401275269130778773045628000829767322930461307234276392393164645125667151398589580181193478705365938507085264678681639407928240711825041872481685636518811820127504948938633598518195701040488498722298215048959084068276926778457739775482290660773227321668109796158703794294080157841676128918985253587421925878033993702035370508200577625940679635528523711327641321022200899570074538365692125427475411968196032005464208046077122836002733536292076560873652509061888450682476275957127454415681548309053771988369530659015611862684581701138837426544846737566964296930625507364212050281123918994837549698320221239706444798003399297489536327831327198883648903457794259181378769093724299435782923183388818774599473203432312960930499641483249627697902570485192589855938989855332222800669973182083137641022408121923538076274965266475956092895414130038806828100605063674844953640951764877564063469895497741319644051253624695499463263923922759330329854204076593870377193561502415816444525329876871527727941235668027187832981546655349016733576754194513867874866335063388931773916069238028397090157667396108508461482844767695984293709417174665929923685628944198906790135043156994816678086681111815380172072089747398966320319940937438492460415196628278133333498991409563853703914306287716745092903581583281917590121520382578435541815246957238677619014776109080298519704508566092796113298108021465060035429681240414444526764655259881342680097854321710102313124186546381245844732792037040893448867104782674895312372546769742461612358586324918939781274342824402535146154458962146907106604279374702177203610208370967507130443123871212561209766857649555483879570856183684106054462858606594430968650400793475655126976459410778429378121232081420962953310447907248435862637957300147990343068740193931425269651232764301344636010862531795221812333624173379046625334700860813245898978731199315154743755479426903075183413441991923980468418275698691960551641553481745993778232283333663145830053514271568492624343655694395865047657054723452285580979238327907892052985108602356717062844360569413486622456089620512686872146310183485256848174829708514590621342612044923180061933813738138852127496080692721369416354337972382216950813310331553407352000163136985646492171950192522067337718941639772473210302910853746213893372396068746588772973777207250033211029923475743394482914576639514347597913923824883097384215736394241978343106053701199692364723710414143850617507141440767624688302419309039859327220124088807572208613824554009751101552624260744374516630845443699642106700954110948238572756043689257469912082041850906071187672719505577653788818286112635180259983527384385939819147671532609018991241070253639511054060673349694841860903129684137671426980163108109375481873465528401441323845123196763628546002984249322491478879499034342540775618734436647385421101561100812508604021831927847024703405770904800279824160227199157662932957059946133205340372831440152299393577511140323910012517005667056470330846463556952890435880101115428780980740808130196527498291132509304828850619622323835063154104651408900745869048364013109522725952341191596070701080157666736982101713066149908982441390543369597491485622248426691944147649101069364929262475219828587577024276475416060372103724785695716792074548705244789154674049072024415211933151597773322042693835402745565883970133157099848314758508774175919970365761906492939403492349032253049002183775406936869712182476268515737565917439431549340317625126310665212007363562327853484452610329567872530842124641141127338847447408079973178692398133462344470989650333293012463634661415204983731643069584059638256770726840690566031283514262378412299024776821717420884579583985379008647453120819650633090617471962187341563415420244264987397127739588964946266108469731606528174257482350641377681920980568513717931906147734371413237797448398249067361448848493780193183844628467154941952611560605905618137075100494613387975946801145546481024041521693155511862927432593165412116295340612179757922321826143099449749392974252975811744803494325302786115691671711083933975878686088691366700291642907834867196871666554644902552643066578231762554098416862149906715492191752211300092318702091395185976475636003375364922512005760207326143215321859027826212880565542628072610640068896957417699651499762411960527054514123741100646676591391808241092028207156454365932082654468023582263691491650191252579569125543258526413160092489414709907926377924311759038922833580326556398317083740157154817930077885809073990583308377871195926286611808948454461319007289279187989460616369048928023296861720717299249725705806254585728079517717855386373831237470967678138948502651176759500321250390655139443790466316114623189209179668643481282326673409832730302163462251309961449455389724002530015114955277659030636879376280029957936256350876174339086245323624012854050385350024804501277409489259979337363190210278941998873686114743838947500265707427366673103958102539403196778020240140114620791301318199678969132506681772125277645293954430786630415117954945694652770298367650472369685576354780335032986393763027218665868578812171219503477719010316950181061570375689214191521348647665516963310549573755175950490629234750691621561808194547886502236809455783578091506108106293445968732652407898922115880175990802709299642684581032503166366275182665819701953343628095510849083573112067969149640341459030872111055988718335962438651458433123662130744459975956553239480006737386950918385356830855172712350325916966768178689481168138072410738284677673266076143107147362897610302442085330728452000593124298686532832738255969866988459976944152058471674678111684267491033717910280649785303040789583652635005757711303217356484207355362445692162578214292733586048314725829085090325821898963973829461636915776185976373150012747374182039319190459079994903022086296868558324199312628427266407697444583367353326194993492040867067076354613717567940653369409415913714461780625683982890819266695364551520604022105773041484713637988319258486131426441821359606990911237713624515700341768210221838315882699377137551695127939847240852762168771611776226582577005256607785265760836921138527667665680657047844412198617704116938554010136609281207727354299309954148594609573865437892248640004198243596781185549212219147650199529499814018662529535915469416586473679071715412257282611926172935128106261898989568057947284237849052746440007197514855002874321677431718779117225084913356984877837898601799316671354995967337045635362196945850718687389580800648676356818118962021430338902174054992784398693558732124333770034215819687352069607244652775176105289552521728640822286278511004928804608898381413265394816775053634937121674481207437138783947295423799356698248579710646230431902905333134858460064911354574879182553636128015675995391487033662567683329230218972870989461421074848175787464005525156555372062680966343511830721040645904367498353217137599386187138788607926074457874680712937544947296439622998093285182961824760387513534292762512279948678477636303047499019045003997562597480259918955214575222023950337443323747980467262556218493795600082851451151026862135527309895798456580101038489834613055628986404687218585636962356463708896349375300697753926842573531771536733215805131094229605031987121796684295423301928969212657964356958028229375994997470504830706007603184119435166854649386737738453273353072807668616433759391239587734610169480318448819720729906293297051056010666069347746292829116116676768248216224462384372402247724753078587528221280509503910643417394336625874685847199297253738815273764448883038068384714339582284467111262146591335505188180107543849295340129279659991451227349742410653248135070325205676387440973491579698987625550202906173434159308483137592150930673393748203027025020215442280377666126111738223564117144175856936690661039696740728516248625904212020999995949422472460134104049047553959060714239227549050791430826298483956590474524590046097779744333534042014359538387965454708396111898241344611460202400271050610103796273190374914803172313576119855545838439631598662175304230225632590832507379857426613853488508190351440495402405575374329638021162666922872683058216396618388964335326642409379779524022476220591944656378308004330813419377857794891513519580361831924215612875427955124412339769938467519634266417535374392473031276879905544944545571038751303493318260984865913195822240692239548951199657266202516931538134211367038243957236268954669684965134835912391924857037500685096635855535088950109764331972380121732761795671898028684930223430760685089529457110534520591289256432192551368066001284818433462034103089039999155724147845471136500936674503628734320329708515791092999342241188271087198496210252893825027645113764320370560764624742165608192243756018225979388143515081793997061200975141239164893173231592133197241239560449431339990271029488646286639413691004519787632432062898722605845092203321099721416374469056822408858415481674311925650818722160819038103289837834557458089038225427185340151735077116373059606993498570375143302390365541081362299658758671781684526897266164286106445059270454824543465576237277221667299157520188075776259773897103151408030699498090688600168464542435652749332353137540682842993783142918756753087712829250428314524875569956072353957623872188280887615088937533858642841406303062608408884343598860726203075307379673550645158449083927954251558703830981796420657304214040962869554321858961742810617911256039816800191706248903255880318734547513429819819566976993979363974689582268920245481594387348420975693866213485318296673506834194553649172337582847980447349473595346532289839245372279821982889615373926037420126597845262609212244745087532195914021400937624209755443896994244269200019002035370377962546200292213846238305865294076409588790734741812729842313895689285539400197108138799187250468761040398993542148006133108627468487259505636758827117807416424809232414354903271086537095508697588385395682558285694322358169078196104717986872678392293628462604040487233011030751213916398511261457428159167047773279571716643910005126043059872657474473275275986677323056845127861796581747622191950345933250826695649052158736178919026141440202999678687912021242297751404914311800569478379884828321720627536400515397586478273223482068539331179747832033878710088272247915682196405099256290732697598533945730218301308401073402071250894791487704120669035665021920544728453770699803643693594889150755331886103960428432290865638790982309873784870420309756617611469105764247249900310280097578254290392662219748452321638472911876607730384926198844308216458822046051418426235730304279660342136722738076825184200584285064680343919327864611300454763624426106670253986307982236521203908718821021884795599192921082812763435053423190055862913807997754590430455566487272271723433536610566797536863237274534776135074072032119427324149721955574394939639956981641248735674350761283056363692371518028548473063673110243708302686160194159164788778129186242198511375580152276373562227452638824271954542455446301767161375518575193019067062674192165769202345272825798220921044293060943373629314946888019708519986044906448375051725101662863639080666752845073025436753719564405180989336333683681784601908527669096260591032590924851587545404336571549697690633560931781624327333467255802999028739815097749916357071872184483880936092505695770392628097801817277130467321426410031271918843972792230820092486825564728460624907771488272689508902603262751838194667614938085537886682466164367773181032361838653878859033846705148395685399754208366816021483546844401336920956343300792486675498975472536427207293538078095795374995503357486659328237115041642089775459330078763607827141023371545285179511790904698408089272748161781941281565472730365260102376547050498189986251410117418455372550117110056611170959263201644429260248822310367217243116307352596240856194773864950402879987445883110213196399986669920803733385904694296600229509046034377308469191654704690617183743608354241253903863642193332785731773912569710036988837672068880306622750003219864841316020668845489558471656067848663542246385383726920453359038295139344114668253207619593516421495259303620347630180177561082980539382884256883575887753464573013521835953351308133093978002196411816210118150324993953108117976526295166349096912622520531556125782480249079409205012774906077217948097175960615117551611449329398575901685584501745976222119407081214726608879531018080833924008174522566392952657867427183460248866188823133859897862553421053441082175036860072216307751490738772387473592572570716084356987971216604819634964991618070811867732292764147547148185405421407414355241248427813841458539361233726438337808150749426547303872350421077280503668749057106346277465987199711110192818643356451780863370013250994909875006345906513137535277064829084341673369976742315383208955378187128515235214755442130919441782257308077191883332905350096194493885887124845857445631228886533523704806117357065005943141966942280461362580084765247774576275499922538196926039855229019702440219056766596969322047045865398751711984183037425602330328134521749529431709860525344387868757367449079527060721282190144858562317395483898550921109532908696788915542104320450308012903935794741668140955073602355232485133592819117194483343832981652244413561452038616879351676119025449161029780959366613089726037136622477595788178020553910933971741224063402710548754404541450728796974520518600253953706046643358276503490806927711035611165547399795732855500448379907665530187730127873179518275696382497112346284238777635167436932881712002293346918259907841801320402093058607269678290647729889272873364296125363638816112797527217519184151190764088758126343081816804477340759499226968622841944011063677172360953878387426862783115949329961344966172914072576118025008953703291655776350453960365820778880207241276096779442132205336124929868757918026399007705151912599898763871687654777034892946624325557530112415679252125862788505507662052800301017611967138846632892378827796358583784115559452983013749520574553835450287411393691642778906007811052901407368053771607689248663536204341686587031613040494071424650616247075890374895158742444217940387283445728086508813755789775625712389228368556987023885086277620700572719607292868151298760991049773966579893869026844394322344686769948372161930940786364615627927735418944753502547190690127195069039871004281886897080968961413504533871832608988307940008027024863228189672234218225273903279159773833747018807188303775818429747163902369183944700588753533621262478930845477298700414930291772629771591571359240923808602672777596461801693279536521189156657437592751989512854484863306534190997670461374525251937685529492174235599038513929635143820201223053503436862820537006945758466955680839394588442254588707896186961772573632163384898153623900952796238035074176869997376181716861575724748124239436529281907729199581901626395368930940901453402419660830738248863921994081650554736898820814499890816085359528597736531551949405386105324635866497264918029660018844658635763412208375851492095761445869090009556171342573290189398427301050404993519978101800778895306964560150581086821876345736338597927527227804475682595468772623150915155050116285270862345001797033199350225234116996248415428998937502334138584236099162726236794431701565102116922626973173183958336629764031030776378529525068229278308162080223172557553658817410575201852453206162710712498449363902317161896585558131314496692432764715581401889088942814353437586862370912649601009728244965904957267694355326855055122892590950111693142507713448275143183755491714893524546446383769221218175244920857755881756668547242013857979154197504135153548896629884935952640982860079082125229685829926348170185544081110758036463707741486963187064452122914921205864917557122658329378721808153367784369077659736459365517647027397449268131589094450422987743172360344032902304520317855949968556547518562936201826411526770941845031668336952438392634980309486758729442773351830295081290246636421162130742569549878107544898927710781037744689922401757522924915842609527161824974102896606664320782577808361145597191077266066235309805629840363363165379760147256799107358064905157599407087705291843328432768004187806740110041111401914254347313582942679353341593874517160345932914580210895845434191705439901690128652666308480224069673408590508970313708305327100462420638918408725515948840608971684366704457101924958978609987348946895121138778318488692299970506742976813066755449996618638887344428076565196497860906880990916964490720235271380669543480734600653900698444789586416986036005115836184546951318336228247542622839104011329749874308690494268185500449407843150532517315205810333643049840331187734405044873006747996318458945396484732243323334633399726772580198484931423004780954422614143408469315140231533316470525743137822120483963227951166927725759746376990582501662089280801371735769265708068362927783601093978138805845692859048029353486242723009192159830136194019697530760314034205875231173054907739363672343216585574463320382748238402421516756477146197484833286998271850796287620872663613433898204083468225805595267703941091427983374470750339000210094509936198660378883216964340001582611092105958685812840525133295946793004932923418108084913981630593678442564773839461959010082225668400308300718084707181499043881740092613871478986255472476073457622236188384822021771485469232144707192153060394643452796810296655599387313732595993319085799649107986976893406344386164092297562259107040628865329874738647079079398407889537229612548456946109627257394634536570575266150459752320617548341643151896656277582219625771275190427834940313841398622751673056903788098875021154540625715550543811707127930330972961971912954907131912688491161251705110162588783472398097319617251976872474431760458982600518901049057186836407527297267551539280639224610077585663212128184810894199226103408743456685097003934470263798800450698749904186967108471860742960799650649064951432011343802103110864108891757219560338836193651177459830222931240915429507166744379339129718304433300923351222264589206618272335909898857841052925185748103541976825294308693648904510061082569996574635546832445735970005386821337787678177767428406871339698486462104759623508565231001230345406963638325480150064351946368843302183148131557856795387054987646539732543084623339111384803380567126715162117062156277252144278817782822855815497741559927303987103901632102605362980664359445179550480723880851212400669454934639078897138320509804733486943777553197594641397739364249035803740943144491727560305850668509028035078836968270941708107449747342404439337453558934536709904556666079030770749444208270411568082508725625555099457035122901155314455267895750790561906585602021829723587930190907523563027156041944076712008397016678416222764758456733254720296406012604262299242450375153848080526045143928655771984251203719385238998761682792040063514662680621486800507898745866751388624670442800064086584160578501208505839320205305501426593142792912957381255662466324315031082030330938659960124558115407175500971216302791737454378876696506577451326484183252240766484075981525964346089827324370400630165582015743164605162208021465310057277327303291019183742737305655496450833289434240943805609621004828594460568214214957911882883935718943681952689689281470061500613866976155435021102026684307193884575757854900897604864827387810032744167308065962526153136485976398294266345877396380383304894713854787912797322958708278635212643236980695094915754137442453676783839334161413807006789735522438193905236959110447652472496725424839733724227670589127167965331080420992046402456254396250048738763680887369090308326774294910149509223502710277699135489886559033760351298905124122779307432676493587610116628230784172006462842544999747527771506878757579121986930130091873547653051415432629049044762920396274683117015863296853848653281030112166863153866612488580403314228805011679952593996984546316623357950274352466759655109427669864392869961911085494520655638454746645998020103390096234636052796871405017939870966788666332437354019251304246533644321486935161500835093423444823483681309138160412409403908543496607198074304936686074972542878394120425004125026167997494627199815028145259226882485948127614727506816314093935322682438523843963256947902556701620137769362176704227962310198005624027924489293081457547651522457546997570419125010209365334317177411218857846221543191188500098062101242775576784917262071591401368353754618724831370544583346973081060233743056597523909189351846589488671425840265470631710550060481055488719956343325074518821878273489767579074409802353434282298896732006977400658607557476734418935434238099118604845495899436113339026728655911167534229861926868888424572437718401386237090710812568816833744552011233807922099551818637543292835874515107617497305497121077749861012777860851379140404726055285250720817585615366948540882575579073380476275011183926495482411774017468101740829587500459841164343229037130339640347611014649821628972462602630742318961907823691509340419317798357964668800372005018841764906372950784819039731530529345272445498602491774996140986643150745705812137419023404622678931052887746118241073172078145078305022815527624160137213625668770279246811471073871139438041215357729502687385420746397540541161195504754054557750485415743098945218744299531367057300692980995891428969366547412946571534447322882963649525897073621593473180959054911940412924581080216125664313819219742845962089343089837197457820871591762823197295644616944713325404718939518889117912553206678101667898425823052541126835348773992147285682656456554082438591892226456373793720087950288489928400212772126198842767047247282161242061427325209156578600830669038518445159806853409612985188982264507755845619076503860811045289293491415049137010684417328073384224646055056112237502974519906017877328581406204106044912616218743839359926116844384585129642258632266791289083091417298411401178740394043927466408351062397577327242408528084722886189616477483600039397115610685548618723399787999930105377528345266772244528289758357656145890544270750788809742038923282044137244549534029154714326305930174230740413845429795310609497121027661524976006620799482719311761429968735828111585973980551629504784338646769849365364199412004019858540491242329543499123907265037250529638288045515444307620300426568087084075051010154597569430159383858034217457114600667777380275306295743498474129432962696163475329751096495575266300033582702634768806649889355230448769560057056650985761089822891009356126509338641813720699578944085870576474508247464070794201871214726862467609797087067347302477341750006854641521734038739220640617203688393111457743417420920390513227701973011886314113281653061564556807680143860886626279568632330109358468538167072215741700511439522054591385638211187987170442640951033077624974729087167485488454590025173882177674507501589151989401500051484628352513480316064229937330994145481798813468347158762180900009827942412987547999171639978649502721825073341553159802028708692162504109461858089047157394466462569273171203720186429933873927954531638944275703833632206506368899197646229451183383128059808275108984507232558706222015080460092745188795560451426646666524434322149189225332883373166339484180701846961087608803017966775338098963019873682274723149687971951243718130127804153091573279829989943169199579552787674190862950167202675702017444568619203753103907137357590569747709314441699982036914250284003742842239593151112762889261435941435790696469627717831282307771689513533373452616026152803143774342157504844347836920651853247968227210525268656740223670667986409121174286761997407800470164760042847696955683986844755002125104019482620935679052368942229851464600142403965787340671851206547300334595303548137765127777321039331183681046416955796244485313859285614934936881768233629868175358070303435308917395076254709904961774100612904007694016503636252594453360911463493448523217350030823476723279440300784654395303071645028044460179761302396714718001687796039992651738126056785388912472397974948254614839394181306134371413767514104913475460286109098434078717927243394903374794922657032323363053479180096823684133648770922458790222575804851925821914008280443685421376345149439166407602679963377100163899230702140128014101386834100516245024619405673353253652839666815013476001731183939792812778108265233522699368910284255495500458536731402331777203134853081126338683029121839156752681491104488397300894022257418925306905476305668744135576893024930802548704465307236609353314942875993432136944924951545581924723848137353745609636168795816068565600169383042421841412571245353289552886685125939359371033885541130290860394976423636643851898222529237892913224940229770519430583455904489993365012636142690340462573790721886894806493951913235430174128729729231534571127801570287259855705484677911838203145358998413224465029545750486648521150906155293654895988869883165814692851573568292353895189440501656528939019788813851757880460736748600000317959086560197368044519701289808306442173482546525798239818601414028387306051884790216741279468564765517474071769391285726980111680008460214004936490478559077294705480724347417817431300296693505176896615420631324884363361911486820955167384427176173563190400766229845037308929192918338957812528281856645468616985070369436018409015471460303842531595909770554844503006063647508350345026041385698501535046660131055011480595073531670348959449753283509276306503763019744207692657994672725587049195273515246447689597771242566131193591026083785481866661937835308447061189442803066628132936152034598447384845118993190946887148912855225790603481034811193829239485454966507540053637741612546867242660493041862423341939036008931137216985659047956381893011746723864057484990569756683541928591939329090726467313891234127139942815145161119686961314253961405559180310491470640857920796701775878324900792015871012348362354012954268137930717079568417822005622708776714489187639745339882271231657108656710935735959174767094071117508473481323878278462056382580070450538598368294518569284912716680966873483240969472107426824767493366756725659931381543524163680218183459702738488107724371858952754001552682180443982473657196679448583394084374871968996156395242164520751281386602007308052594188553676478871599524863136893330376285904547081427193774600334547604755943294208453658888914824920737140489288628490375254125733178486370896442666756644031386466928498924108758033787467369381115374207193100550209022356744064090638744693612917343050047124439876017440454612978632713162997708380523570620898915760946891512691056540862627141785979691192823539663533796212050149810453968553775870269013441269719866369223084197688569345039874591389397946469349404255332110995320799243785903450395661862356872918366544110968331362761876704885219779428037963612215084301928352448584984771036618693247008434449007816400961459326343257088005817425921796544054919186440561928624942966658098055710037789869443831508271180377151972537147134837521449127118180554849663994991180680738855602847208399083699127570613193169386456785664140468681371288123935114909428733009554242839657283300256471069235808458481465134298018940817290259801829661431891001073823352878889566545739145832534190920390535240239526074839642067612709560514329009222590209585082837740200785944536524337401474157342249176300862206888387237414351025755176553622122007457479918477680744984300228352030426550402693083667244647767982603774130859081938766863083701266987451812121233049167788777849890232455274405986598839924432923598595592091748730226921431227891173171042452520696315099007951335279429653803196486967572902365218844873428151516748334943102955150605453487694421177025230821339477386813476314462047402591243916248818994011915553271104379231192924396879747708760511466166542841187966032552289980388477865405197952332341537766779633933379565902111136516676237550725329015384554587525806936809808481977121227403807936839643605824035609142352122999420487729575346073243437431687777826792721364671719551255586762963174626766229846039414280077475951248930813848551456128288599882000694114306778610929908628964414509722946828761588706220177045115966785311614404022219608267025787787420481895823517385834692720140448382923120672730853584344437908705716798314736781210760008591018744689449677610757252972873755864102200839091664406254016929006983927100847682016051410124523036492125534035702624126784939819146019293475992025789847790274571719078437580202182375225289220911295578366893302014057631809767946005644057650711155668873083612706256258217324086496021560738837470260785121142955575778111709736291806931609887694422724405873580831953377976351471662962304315816481699760583472266355401150936558105436805745018300198169568014801615995952620081157279867623499399677654713183683164023312570908126405398252387248391785513199848091277924065974754481538196593910258489609211873687597499375816685053616543763215346551324429116569552217575620949397414050320111870323287157982445769427655274076171439011638363570256224897213057195451780232982334043086586159235209014821876227902152531484963672958223411983103100422826326047408415105326726314756809652579825222089110794885074647835387259120873961039467788172436943427498990878120078728059806626175727427878772432869344169167529477449162948648372697388330150379436895729757224551762710881204282371137012746585458957652347498228625105658681999633112646777182180294270344346212025115919859337397274319445987234839830149326351435127319833862850187496850095487312137030533399548370261002292411478387711650229792345036599496437648300444692360930142975946053485718475454148422665306175558272389810737412839818549137380002784847482397505739140381155716247037772475257514043452424098062727424111544561179714322872955237055051298649123746410277175415638293195193374981409054608205955386774731080113313748702472047509647545634915078126372644271373609350386162328086951593162692105953021066192940419306428856610225985587484638108697483400389087856219550021194631944193932560189001662111941717119890442284405758637879554995639280685761863679252763905971457986414909223393909381771426448633536250924311007056426351623179465883827434401732636645486773664414397742895571793854342659981523261806848117991937321968177849172198034404648571039968394422843369946667496527516081736994986949678197155163578748453938651745944604078060471527711069672862763701389588707366664504113280036016678710294168786380044875352645280892316556156416642434031034644463666605494746958456494199641076600528421162207079957962770610431454992689018454570646573272532592013520049911077664870605815333167540083749354677429260178734156941771583875985998390371887576698994476389037690928562679017488616735836043610199906400311647512629512581015923116251214747397183149308694772700695746903806367261487454126971520598421735113498128319562059903963336232354116838525877883417836861431420512999077118225761454566708632160503728461821941356190120020407525987730491361329203908183220797353262472265105667174222492798665293971591504599718365947101436879273517555612617356486007856723188274128634506640169083309677887498789311865163639440008686598843935989681675792333681651337810890712871441069142543148910231299780352563044244716633518986333160237761459797175456412211614974742073219820992671187883234981000821999517711708463100942695710598941748379737576005921822695028811315051129025010567059486742704355653513860798597778844252756900994722194311234589054606070792925603634377250868541162226496415433481266231316112376746362206103326050499312290758865383015414345325288975708287236313895070771779474023380932807965361569113530021816746499854084440721952048493729533844264017111566844424754595953211612437050626368830525521564718744165458847174633329016160351041809975883515966866739356357764528052446750776540082153391061024304304086619508847598187251932213043578838967296088352654525757883508986311972358295880208674859594686642195273065513887122610547952430105686150657071245911244466095749713688552475927405121246202203929635758069199844699408404748411585841347355582323337588558986265973189782610693045667182497472414159486926603434679883059605748679128412169844049442113435245583648421576916578579120009124673389016583277456495704207767191523560448471545509704785768327197097348274201864497649896076107703613323588407512931807538773814997487097560578312226973054845639523146530799449049139356645557748180764588575874703711354112740259738942228020884954847447675186659399504098296271324504023263913251303893705902954814101397207741477847900907753870897059362527961388235909940294032994749447896349588843156760751865854249082641198191833295650993501140189871864254539706430864710205327825925963714865363669638495018011692334540042262593787439988502419174123472267096188347274250512018750986891362166084791815472053987879895921015056938297228492055059091527618679879925660906511446232795488285828477641810862559532337365895714551579729268323361259157920254765873759979533254747804222025662596161143052241908370183335670905920560007514498324953122711616664556445470300507157571516473318523826851141932326055322345342685326992700356244720295980180964592839401461776566414973638648880112811045979312966375619274016967640510302835487391003079643321314406794461867772107726002726864252935373087246131420138422344787795670909241811139985840297717059693610951565197147431990250895695140542952664631442081104304782234596302653197405838935359946371770958810721158852240000706079958412633190282131995628035334189252301771130680789237430604574421902655337211944042487239082195093581813002318474448705538776519905506554594179120298910897239718555887911179927038785308061574374617616507554306647405275036353912507034735101786108574611675348393178284100267307627774671642634394234293017644540715805805559780419131630023722124742225388557054753508670164302159078529150419410933657862747737157081078613198294817458622774026039655493703374440113360485916181549757262255610483822955978019917744076993162766792741432804387929526367987690913916005148564495615283457127775742609431243745529582588586662639742178772167112323822922361428615318800508500692801900323301680914874721959382847969102839957042220876175274945783339440164278779227914434279436306035177098071471548362250629665951614812363329184126107806067734001575501512368188320067952222830018837906283134592683355857338774149549628201229114117024798082437549744177925398560681730197924237363219814679589254184712864881220388858295815250485824092590230190346429021233473789828990978184507708792342635210639611776963204133717932396138166374726380876967257868655335220737873228627965919902018900184764932400048575834993571678801846544217657763123232421609098088111032472235412698223701828065119069847779564751708623184519308028314965340014122899238525330040779855985046368178722859770498632227056607415039468963984019631328224139275681838280811852382536016277206917117419630611447875160069793644578372769011760327769867067800117061334948520080868745304005862705313335975820291023059474047708615182454703588182838337210797045289502835122660747087133666178708952530042069552197052927632798946911997584701650737310936247720826626487501368928407216168003768753683563085668634059410058423139866650341132036430417266953101033684666885447968298034736031799550695698603252592682912221525362657848997672844722871670392924503991741446897031195484901646919370826535883578832182075467829933551357006930453641266039571981598492778372954810675279716824263871526288782959266921628566743375812936108462042014866416239567654415293991601383834115738559038447546432185062860979305953541337983596977104456842644826407757365565675998933182856107933811196237335237398712835020551923311511849487119943574967702413790187719470101030913759662341223810567024070851466764035153980076526245630518291014011517629480571741844262860011483099760324892500316876898890631934242152521034915319876730434640346329522182786739880142654778450547964805046004201785120483379562416244712974677879285258828623118322516676399043734852534769757072947536869121335485394051125428180184393446880235740937848022635984124225299664714413833038639721545229535680295476685115802815641551151479911203528083811324190998678402488245300204752972147587450404402588180044898249326372341632912319791224726596111031745750108912650073248606604057163149350371383525054220329541398764239933567844062072704150177486378898745934833248360275692844994323514670116917660660089181401804599996461423461304340140633281637127675695519073591916291385873140170632257437395831773835010650824607046905482366599456888615009130513080959471161363765277981333912186531972383586879887831629285184087400246597664087676863361264207443239782149228738067708096990100004006635818313757141083206677212421716639697711125611831731707751927615629448502522021729924597204495941611422127561202112068489672920340230500959947772229408111125324512407798285853862995361193098913837671887653234351954756521868125886954078763336298162625160919778783166716689317589490247298493698477491494510957409276980062859238327603820529654002692020774434904264169566450944802166154771550300855641821802129971779441096122527484243515953198468490756471489493090662083266602049727086158548415877612080441616274989642940346269072036138895214016837143699896423449708082495207867866073367980641247021399932522476850935017789351041555102484737379281833462131818558361579174416228490389627242643769946762450314949561385192559202730740659357682202878456508426385994695784485991454756923691893677502744697365163811410016817641044538871968713375303400252442536720027155701480950710328454451547440069746133906706527152749615351477405462066153984734980893888970811349801237206224924385991044459128703296247683033832062875488523235728341774009569005357307955990125611219271284452031074478003258861573918505727658312052600205454894248385451549047400268515506141356147313149787475942974996622802597836224234283843913947892897594238727702414282556726119800603885955287015371709078070609281177997980973951389715598438745077584598065535247035383250430292187755144758036404710120002236933344151713399593606577921063671899904789268594444072187323234127880400343860158960521008214347787306425674431076727148977606326586531508858066944277166069516389343555472828711492058020515894230164295897907058937147910573611514852449558567020369037754506688262014203031965480491805102146183160540015137887672034871490422554905940135261197760553987900960115962554068294454136698790713397732677047704371817482581331438139579699320649446012837305798265776019009304907400190864171907986827605526535292796191194226904848262039006766027126387013622736877650015691238022230708488878174017621364562113884531827031743744751553181825191015784877228351180067761649442872684597564748203427652974836023226116872518466291440117320129006058216363044649897118996253547606826038693349654358037518769431144482116928830958901873618866567890170358349837180543295351400758039634352166154298277860831497598870057701549674637629863695027597984751919033279082706921871963661163268240780269323979474711763375662982492018165536777397314698958654868988946560896057437557084095848272287558245866904054953765070052178330288284753911435679283092424772299304282110931113460117914864687711980752136599978442986637075906013161121094258725984284134286463195661035483831699951480246541340983768863912687363681251043682468677703762966248514352225902703651741059242628320386563143597571799252673898436272059987058041674589689963824592611960828180149571547583248936121409110965208618059101942709858450479403030460824359821753926585512260401027991642181049879167889344931025365475452846570117369784752109066593555634261507834570129462023058856304468024233751127411370300432948920397406371760560708135116004800883324476958389929137114008036476423270824770885414862815568484869550969920664088773752085193204581626275775644244519346724062006378088442966022283286332248529932333805031888172163659632838938035143682691250497255581149619974391666194193499824143457607605047377696472320896679389673823059182826236826173891789584228854519792623835517200141064079750309151732811351885494209001003269575368370986632840261482833852857375062095402595677147252055229098808125410709905382091441601422697246238934820021514291194170652051682384141935411507385682142820399488666863566064370730037344997630052308524276031755057053976616290512113096341438659036642322091656296520469538224088618575695331445643224136710168728864881727288609524233745918901677075759936406342538022352484502972259209327870711508989686882687768807645272559744995413729701315417183698398100359650472604824963988468755032463916772878221382674568055941105929823975117189040028775419310950350729096805222227335801396259491650433182760452395776657894774072753578780458628037485818937381449964659875818747373913913481710891546267043425123145108891192981578676075977276833682920675315894332085612054260737522606685992751550706354239972147476606219964073400199047102827648779187194742128672636493808028409421540207972601151306471304785495973628071760754203019935620353093642071000259172673581017581980823097775986141840854263919117837915447098124640466052411335365097675017740762015914186692330443028006456844886070199598574345855247342725035274096590103362481714912942616383380329658286271713189970246263971307308183085251862912599194983012188859836162657224402991801643027575441576308280127472256947069493722239621357034376091181116362757671338266369647049441761038026462493035786749737837326771072770072127966426574067193487793683770786271745948835274989880183861793083561172999042288035698929862016862433931211262398526796175614192987260236157719981267033201848344418521259827823127608277674053507653236443052404910790523842743235569440695760729024811404984396325138664814029830857109075226804717352018819260275828450073000497393946019373551778117006416395805216779816254933385781829165397302782249887392321592544778570947999963195830307333258610749777482917728016334672461308854731007055941364954821005290963344029279375477438406051148589087824761353961436391446862976359420679441457926048376785143952445301565679379702746258155162476954415473165530670934690242070770746901189594932201074536314615121739190968029640375796304937821710033783062030247618138620609176206846510542563656088686875017980431432615293843843631811344842071591577765598620626543922284730353819541639840733312026380159490584804652097371923794909385642035089779571339337668808496697811260188864917754908401149224602975106131085089681516752521040071974716780372689925546090236293814652691788211859900724502222967580459979584078062458513683052036969409597769477122894609509303476606480082276398494731048860923430549792217583662339877746705101168688644762805129443855225054424110696167450762187100101829112906979649665685431385515481155329086212728470659903061270417589554539895846736730623053849899693264495822591597437665909965140225889448900827757582674443447849510534196743435699291051906754471534585304773789425230134004523930184036716687623280241161995992209655873162697463478146237288846205324994360908625117774044926961266713169240750565357409293206447483245333718914515509849273036784662404934522374264719540474026762504437925160184966294828274790073483902577539742112238177872830651883513106552984619131637632754556577870820381879574348326705587677670888692978713961908714959743965644366717543188551626448700191942253451892201614796041304835829431560835589798793652812924382099795759210398999549165343481499050552610083040656383728946531956935895141225233040153005378545838705540613920794088713317430615822956132641710466284215594055001653575550862292790024950070378728846503663318772080567207918237317856587522823161619744035224769646707449518968982523010900447132091964232856403136070146667057882594904982165299374337743473494837718976578913787935268882018885347702520412270373483937646412589935404874946846388436685364493079571639472000400452321060865928962207541052608905291672545455950765849927314197670486884364587576614418528092554680745038803415032948764279637601235727554987346775480589936958173000640367907826389304816911566053647627964185989381111147904395890400335776658780738262938345695053330605133894767929939575418417951066269328484582200523317821721943960542578009468738032098521026621436033231560237346481005562164901016477600212759510815127903216629967394526494124162011332458999992920800181916621985148657133917332763808920715182714997574963732995930132022364251259508786889575299562867248286947318456163098872440759088519554329651884156516827709682414621201389501387325086160347709594837576178958696338385844245971241365817907509961739861056493911671849284781050499090896698781624704768748130390738401151703886821245489384114378961637924364766926615035005819905035180630278247908835822637106690515689344599251975197579229590036860410214609044729563325597820519169829604683246161153211915172548592760180556397691557340759631018144929114830136958838732086223242295602091262962478436742077209997909777416153139166584693324632769881922902578773021092554689478335337455450388859521802025185858407651833067278210139705710288298503451783714392409502891739557152069089285929914674177464331887233258513430714756730246921489890628715892820183895729396867345526484374103932413042836946738018963597289929044230240845740433704401896949420048798785042223749212772493752900103678629227034440369218400633068315112824216252141913429569340319151586949164147093895334756817863918616922806237238176964526415352106315705999736517680875592757196229783057689215198692318765697777563590331596203295924391612117445661896895872798844024491566731809900474491726383854870505728749328296375045256174775434313805861661153861245222232991105548555737798313443080493155460084001279789269010325684940271625642211625490930346168352765177391296766011269497319158030233245632823518664592298758394091038971670540599980720459380343387835377489415864203686865406038331687092836995728608341314767179817755527573973386101448492271110926774528065336622317297112906612434621556262836061261702796122420125996673065618934676892489737810751441527082215949721176732593259628064554607466144487918008206272478184732694470085164615590839805794006167642646367133624690611047451217505684924692281939941103227511528480554426576935299519369150489547688249650145122010113395981756161354636531445195514154620240148056051517795995884540733552277787956523559141777020514476055435718789894993487011530877260581346656716210903388994479375842305535285462260214557867024334405470544758446117911277685916847612504243930002390754508366597505984425186894875007150552580652206224368562047362591303268464596710670221766029611131028693479276853707810006001270376478833176272429935531999433510060284402408664650273849791336745275143358472587665540512597946527256297756631319445938761283941159419417231260702852509451747105954916811323158001467709747375605588718096911775138364054646908554954642713865078253482314286507153385327068857146933035562765709439596297036013977657780108270252207096702073447156974506875814582479571264036983425552304264599715995196754349111987241484399579316007149755464923237110082771955602991056792270012044764485567347602897492610181131829777189060064350501397725254028359256326251417252351180327331234853747567381226548670780868839241039979707993265736206366881817900807722741105437412871671544368810716350048519295070021898339701917259466365973504847199774680706318278510024296788608772563429901651251800394732333308451062588184719768599504787940565682483124265607310876870180503413576726874363296503742021826108456407979918047495927531182721912609695431825493934129325721788052159580927206160954274095989711523085856342478951310784328981832394640550355008883977973478570054147547103124323056906661389648717533896140324616299227453035951117848102777440795604850485438438022279775745217459949799205043341432677274088053498748359655595818176627582445400404163390733386289642623519618858793420441175662744710313680410886858342617205097094166271869071830756837393462076774922513658718900133742673926186504218011971276739698656471659575648498221303978305647984483166181712489017789702776426859982184639395628973280418444270878774418979112672282529441003118708223419485634581391753621875490942014770711940677056519728111046718747465153745068108590959271200506923322831057796145324175363919400299138133923373109350028970117897223896536883555342481400824922165418002428797224844816433773358693753757206036782617263812332733258593173065767147920717564295013823331356603297192056329342961320131689573450387170179058280627826145791928792502611810146962359386329229826411450742879768705000378135061157709113623368563590885014265897877999149202750768603917304595592439300394690222499825003612564514866709263996327118074056785115171577511275476457704908555215827273313620809247440085781534178614733054396679993524058791657327335529365260075449234037420734171453926349842160718696291799188763697163385534801906562339759729863521115980572330588949797206827371057401445503732927269377620325475567363177402807218562421237008792190678872878083185304467487577980800295847581380531736861391337472831728615857467169857415769067252801995953734639696154626561746548008075211684723054255711919600173947092624797794051221205642628463001538128073132494963197932979603483727171925556716429781226226804095570700046420985478361607998904190837147525097028692122656508436728495355698946567533876960261144458849686180833168010332259450757938328565007912370874542653267813493641953096105606250123852986965466938349999802141396943204475741542022889862008503314142293035596316530846176700402232572767018237561471882118815461155757671884302766684210834578000958956529734910261489362761968615109612811731159885272781468183411726990096987698591250591125402199916876206509300307547577812917260390315211672784442978011589279641483969335177417191100639053035329831949080312380776936112452834800925625791498733901683660564169062745002988093069188668633091856190836809071891027897131975393204328635359656214593500751970090729789284082202326478198272711976255938845417115182278417786771181154224085256093982137116247618041864129912552813683889516178591344375173490008275392917094303065451923287963274707889372508245383040002068638305131640185158956486309634568671125374954880451062276904642717890559812403508988064350830002219072238783771162812618610450475285103700866200186517403191714556211586029917609157428427722717796267661688052212905771695909154429864867002947279992962856254791052996052667862928234453430430178943589728366285316678093516254128989430636158775247741064277730325312762535327880390787768527722192406343114419227917978597765873937132362780252470037794224219010818935157592653356479656249926013578517818600978659456131570235740095856016605593370678443318176256371873109095730837949025397213427045729568406886432927279099671492985120884963461610026136007160283467625113980668308002284733191533177587209928286897822744685201085537744826771116358125948787422622440161983031255474026511053949766480680528862739325551660447526537282318359954619077338714761493653073010796882479448137000841080154766013333311665771983100209334123377855049931189326714615969144977930963123987693663986660426104167211985002881295905762110582243587358531526153171891531411948397111116837520065162235850390797525491592780953556265410003708205394781771679495442715259345754612348575461419240294344360653269053327993349123933613227390734286509865097799396874966487712416813450241713070845213301578887588322367392190849739420582500376809797488358750611595126060224694192628171639139415567500102881271444532032891014993137194796242273114528804639237892182642767007494261182292564631264369904990378844421068761800018843050846737953022511904014863589374364268177210089744759747546030039163742427443068164553348912496705483501315274176903374250456973595757196426191421273929951055608081329632638801955950414152091925657566243210080646733762397266288775879831061839450152482485458452890460817340483137152975282390872441489641861316377791441504381462576808781712990446923544630629752349447861653295374125845964378662411060284868743796361758883133968851593489659483669470751389036136423879283923133705626043369937242489079233363728051873398981225945876508768294775405147728132657135513641181349973883527278603881865353508187563987974611951788665137341802581871498587152760802745958081505862780817210816871394742757926210988009750754568134498775988276007159514694660481263432750446034675454164766436407693356774203333509388960594019776830499088944223157818942881110549563506932385180057984273238328455940038501141561491940042136258186059054895444573329454358720879866928608140620045508108631951302089488509194837781111328550500573415362911272845011804324926944743495564993611360782932738256784351901655661748943625851390487321932323358017793878492166953011608682138024091738766188932106233523294399398559798668961342026680409376811504230434620944053425586310667240277341810704284972343027776022443738320360996571835704365692017241889922812442840738498159359406774970655403639245146735474312683989118622625459133984741790240030813134543132047600241452178465996513984799902879806810029088966749918663265808357904031160526452347747437686377425129495257908348835540464351393965216559971127708935098770846475152494987298010531207967043823126558829974239849344052638941323455973579792015044353616287216054224716071395203119711854954798969630298810684475642781431663087230197361012887931300377208393006925129650155751994371018695610734685899671483797231254627588511420198717945918186203987532456479819284196200764172865934766862144882114759908639624560113005528993996900764896958193425539151619162966802091731592366849083024975783187835857540679558916080346966058862769707597812025179863773666654432872543421961571458459013500451797539017922662405779674896066914388153104394234539601401528822316702473734994754680148553029921739381507954424246341112812073341252755212528795237497599457634561019571449549994283434093816150717052331320962810146277748459804381320366511716746857017514077232372484605001485199478006149925323517382006965247881779744000925383451395961163060135018849005995762896080745774862704026173734351415159687172637609442709290222550907757500872935923604687303827368104080821144984329874261939178235953458175694359862968193532723769701206773650884723367338567878061515585304318519933156602602462645265269801983783532940241144908644266757514638280579249813868122717060345332324141376793734875288323133930731602244944967788677958274050786821752196318667786939409881459605566294005748854175633981507379488964055645757438880937528689723186785976376766985247772688559244052356773091111850192886722394889177044964828912988675819065832114995721518758506874106072067099365655995819668541743134295007733531823169960275320815440587872619579272646877958732304020714957571763882417771798860082902809413956723319499098370030353917775907329698624304778058340548557966853540273976061118122287655699207185233932681161185431735165851104318191075830717702674400459038761702776767739037664986456056442446233168613201579159765230584980890993901409619635083873055360401015871174119898556910100003240974791049596059310776159624362534130146999656393505581579494055835084697342716974653879286592427745187960256888728232156122944824318865363992472430391060878604317921222193522167584921612656758344251173158544326942898382869068420848415601759909978776332792556036445960888706188231069672172125530954370129782375517411514613550799517881663538236868183440048386096622824910461406937156499498311016205748711164210079437985941257815314262014804627181425148872267616703678273823560074222588471889861841678616117535573051545192857415458620154930102106408302671852929947762382300806261866528729333814255459050662494890089432772128420530291777124006832960085647629251274678006828843450772353647321144132194413107916363198236542409207691704795995208201962362598848939703322997389599587250343721198440550449001840337449973176861688787769934573033998710706450835700565437102228678512415597390235623854637885379877632170663422681355201322719406924083628780204118761129809630269372414953300725519489439796837462053808756348508868325680033747566619528310113031959058069459326762778068159023175701150536875016034727630450496164884227589331150131948826892829973307900356853789987088990058197830624877780362360973349275218101240392034651859525194901202850223555447704651962289034892753310515063174638996757244761771742651589412142116358219382406060399892706189365058422391705349311817936525322414945194359764048264848575586125199874521232394064557362835492342834493625107892772114948802027552746426005309874536032613733685970724756331613994445029185838695044591999531960825872428361836021691553024467733297057677694090525572963089086540680253949690948638412391574507160691363188816241401344106083852837355221737329243446911011863954318715519494590160756566856012171240517302854831503311375821061520483236569998052418945923559593528323752007005107081521091418288478265800745806299802001773101385437193966324156913186595642981763834448081770203829713155818962016146957355254714677016776354657363479996522103951466183102841928217669534653414014664474091315377294725995472378241741462119980759473082906090318760453804776169055384919640389391145240099166894401743000635382807467281383543947356959699389566488825266318849217834166418495951984083616437115157821216537970968022686192594369695403020617162682329360826823407420702507870115750244997996274812164008252392499853829801125430506437906607699581225693852512745353114328657273226445889512966204713074062863481614380574545296353500505664617895572221623295463524117025995154086989271862197472322965367826060470425851139629546223839692216844029843611667506706364975744416006121188405037706605931103992648678269773520551412622350201496869788756458375467812417988359854871207952410167189215584368496540500279570485746810706384758309084580342788143866225689381916146015085424710820674922921849815129780412312676242290136980287156375006622221484643507823797920294677068447316041711143962254634771243532264867209391860625413994441425434082363281019544868582856571102911054874081605128343460883871983523670107186478049703380256998382362765571542280047097484045210933482114672408362069845732352276612677363604246861296752709621405758157830335495073991827338484407640713283804856230793153843693455482418355126638633170690071971736148124311197061934542811884205557920945717022484661197856072953886491347687954284653724572598757742538262058429498845501171951343782429138724608852274415517768050912317017088623019046334699752364873406654907011324382925264092256377058266704060241547872761539942959024323379403029450232988170018991671462321094165737244422975298475249954180135150848397821255280978142603574597100541559722793786107472536360709684915605818344596295244893153797208959813275234226281282346107465061987811025859878626333476960817629455555432834254374283512974538548005073006205950251844671656074336500635201471976815007350021665029556489272283366935980731020519540999611933066177042724755966139643898618028136569150262721414320052334294146693977438870392797083137398736900989315516940306952484302697556107242061756476887671585572671203433396434477514253408476345881958057112406973624705679313255987250159184684814846199686913360886468548317175661460962086069656687518662249513937198809565197826088265768029652873242457298537593177816727605292696903783436318581676203011236819428399065935103038609702563840901186947418025054360702458026287490394849420018261423228820075390124436876849887532132657636424628952342219627362919335750090699639462761962135778355050678055055642963306083506688239203537553119558525821930419544750374220527393447679840683986830769923911495848638113795926672449570100078876124203995675839233635262397629706234936436170504782293192613887281511490203869129093672224026466700742262780023448935495834126906058392923860049926059216301312761144505866736084580171615484743641286569062062167402939722373206074993100475539022966652818827657355733514395411241289237953885174848005614422982455243226327973325406279790934043717399017146638679475965489022398507156347741070950144167990522044701268292929820713667349103195058300045334861557049130622150024836879077034100365648194463861714845574667498515659277881812557633153725158324336882823182800475880249888965246243523024408579583897198361415483285389735463308291749282651112446065848244180570060462053011367627097218038596574262405707731688266076230295192081214333656294050839487979253617134531886033715660444567966170187010133686505656106684389522665481367843343283159453005342328342365589148853806055992758908609887017788246321185822989938658340474033338447760796587626052828780588201508409446983275040002769200087792125597025969360915472223604597699216146207660156190424157863429858782076145239878526774154459878861719764546674073672602450838443167982480896570852498427850877970753155016998203849306874320969024112676446662142515501390789502691372287152134378186853018178237697377382765478017128427017709626871802128752281893748282806085081613507217163652613133949293473631805649812368844615716239590940658572045789991365917762004810966012780449857377037095417930977333364036961557330235752671242258921898582352898378916514213592492093332928903798721350797507173851180216407131448874394700375051980844882804542973902965349135728472364218905662637149903105554005299604782990672430388153825077362192416949289246032969701757586912378175161147822497412663648577787896775223325395311874745263664637566389213407002289530613925376248680593680753749333540819078805039305255373223574560435365203470131367723659788442796113473733071211728756445625617769681141224626125071972845535163770560441118902843755014776228785606131308061783707320405787270045305194704711675037212272187220146969986378909953843486899778807597644192328231366849329510501642819132363966561293765805683691022886080335252699687392768611677488488080162484944117018452687452708707306546224692051717587703660074774446946581143220952876622084520710700014960367718537509439210468968649956778851247646625949751870580442946302716365938516386417120624445492172893083020463940390555552511674048735783735052057124845458223390880808521843318752887170915966424684053771949250502843930332950000877592828001884259078228819834553565399899925768491357902609133519358630824169337180288438878065756721975278284246458811184611225391863184382624024144730721957418386637865179719575927194548386692649030977935037446729775612764489593759214242093142540162380598854028925428758883764480251817684171250366934219734334372977697263449431623239755396872879141931969697121953875136550977089141099770273753259054841589544216676031079955458142130514644641153659648189894595013383332475432859821392054918692769597293781442888595127974960505110851514790208860419160032747686905867090992327414177428447700428474044889024485771147233995833490506995631778140362293046608532580107596000804594220482807658593029540091117745873574866742883702565229604094842416364750412219002459320318211923621155492307076404100542619282972973806709333712016134522254999221853808739060353258131863737550580434797075432138683198951535897368029807989172337003295789883436413703533491406481700565972185748866741397890435001545865093096947201227703147190645604081864857836632786937938718968222047261965004182432132208512613961098705813884883037639353102530300172770822850989457209310934419536759540108359962168766973268487890523278618173639218381909627648936639546755684370948485862347998100323495955372560143329863089155607318165155125192206780502116530582094013122413070682535801023223963864520195781750754379698868779339954717312684073121176553461572665966245761930908308456441816562176319106524129216447004940638130413179571401346872123837443054822095920456951037375183391727433349660646058030708844588115809985461814976693079029553442798935427740172677775454274581215544121368223669138455835644032746431140780815620103249835511578854486640378888407127473884770173494892096207532530517599131752565670649833199018012491701044163533196810176629464972125489740727398402075566437436457542625018560303257095028552401192099221549203513169970725661171646843110743496275126673440766960887474347180205761055052877417399641721163386045442139047509468046915400413884616161583569619738292618778320069709180327835346681665476801421314406916026860232273003754562697854932440360274859598250644612874293766357009539925454331377316109180597610296351492503268073450751761114160987841658650724411051704009737751230544649895932317190504587958050277402918912455130198047261412687557931345075227374562781795728966249515267495809896115425286313692110831996936651317044249078747094975892964039405431533407009767862640648249995090448542272552098724023611663482632388776323125761769854018806104025659753964571509022149970333122320343046431715570280417881557435360403875940188339739482327484881111087276028883459625345082970864523334575061913397185300705252569763593777224702989923736203340669737426270279251242298999843113101300287120555907430290359294379272013705298250848761595151868234833760680080227562444975843894364605214351866993372762673258075452863582477516469572390393764610620956369583092798197877104146471968445747300105590682275282609470063348715160710229762938002278953099451368781708142155459291503679636915004802561985995990437656467615884850525891723431421565619201759526992402936124233915068085085812930564415874980908273195456203755146259495969547534110319882599196208607889165111508685478007453459247233567816973492516162887523183239344536320133058342302847094006785422785924618256989251987017698182283530163724210759537720123841457434629682398301008935356191190518225680535444771689120226590830137626526691352239677105864419363219056368999708186298632536754662729388876174045086699511965211389368704644836924039433300205250369252023425547938403715559850439836741858748732097011147091163934421043896711900795041995476063994065639920626862492056908720445256893337036358027117987398229813107614932078773265353726244827321866803852082966510203859159213858248033265557490467104013301072950617639625983991644154159638622207108256783818613439365908142096554802677755678208353005526732296087041728189850018288332137001288133836726546696037302871255215798038751193391016036410328731249280100047276907815686869663742347577332642392032754218446314570609884862054100674682384163949612287403373430337451907086523660891772620621610611091627022433943939277784461011037669320584129415418761973339529266096723563895313731157862433886666195195727098731261040569034703693619367701024199169446558388323018044369700707473190214884589834927699337717587548320473183086897189779446848046884106046998351448467484796402444950809708146360957213277133825794194368859711243557108883097485840022457821794389281894870518192014832869302949052295350449654307846304708963874273539736326860548134030629144809126492351334994628504437404698373458866479499538542661996206469842635129607758177526977697375454412066813483963307728157194948052591050751599985153427052192323771452510951038860479531580910457196639811452328207712795091213284287255153778741644009049117875829612973463036663965630824724707438736876574755242325142546089280429841384280227274539284735454476157476615376988323291939443763502040366119725009000449415247845285832180157545763112304703783080825966201496276787110675501545604225442243862836786963577198382158411451484564091429744799778636073378969780254638170544497633513275790344812249707688564432754457548764945003275217227220368245488942104549401718517312414182236325573496722585863131463936523858572946867816745569246722067017296915070812219762674650881777651468467052691770009793572794405378586763172940700646071184999344680197302112774521112928062831721893654304353686018318509309474716507838616535713341523722577805024195257489243159748912976961119595476687107142340545844430280950184021287212370520479562133625249560213022723464425249328845982947217450020721748917547657594424908765023246869901784726142889710150470505587832315844035307960995499208147045787692947960403128658324654346671613160676712978514416939328087214049586659816505236686378400563666144536382504606724916284138672718870263223819824398506292822828568037824001614412974394058634580892511890730289318292345666039029448547838678084909407230175136374942823933780333345738569868866272217240240726626135105551349002608484251465380903590520622126467859927207349110356802185551843318638714120242342433595809152160992720088807995666730192282861798046706966085110040546383189619816792843055429196767930277623748996060807936896901759375847977748810721478358851395388043063710103534007803319214827924021002583850004258935132817537009864228527556170486856642980740336702444788999757912110377290415145903212238076750784946550551259228164752215768974836795091260746755382862549270911576063520878065519155528978087269290478145592296431598412428049420351892425723420156283102888386220065538594888095168720264043234948030293507897355929570767646926214339497304215719246421672635711991799440192380793522064517162848123812618546705590649748549804672538692083174332614460070556218966664168742020327328473914220890208863143445406246479569364967714753873770826573379152855660207116544635776692093090257313517730792458823779483453036009576350165536943203152829742672328280759451348783591369288850121693532306922482998617119345324416766766204216596145846593068550375275658327709903545745539090811154979972257705806075571862901145888238275817833491248342137547204686410179840157238066577280425421114395026031140703497512240268907035081237330512952586062661766425636456625687067307045320807135580372224981244841315177938186940514252498997299762634623846664048291185703410000428825805582364484302330882922790697502509565159046931406328146570969076764708219913572837122863544016643037826423876673838415048567094068977458470569610109162642799868520165881293360089294665064570665189011778037604951010830344524093997390817183505669559394101015023673884185573860842279134300943946143975439658915912379222616261424135072163412795352545577709445990424052655139643236329890297242726914070483996838622772255814779557181386328086725269483535457067022941162231688265555666948563113546958195492893616775752643379740801943777169552598102572573076544093638995887303544794917769165561321460395370487191821756191153904387468305901203053193880108190361960346085614208904395180902617580342789326991647853245996307974207873847036541799468914859879637403868120498449069548115996587368538053872156477689716812135807256905625903873556933923670117491969074750099060930118252109118010960778259937084371853478285041713202409021696984379029015963389988283416403816494877761451432578269166879651114925739642609507174605867454504176124932972298746476486391860634910416375417995674477966994909590647874254153235612047471681778527743173679230733901115638090916692071367387310196206834593930181560486686206827342562131558192110340767536534070837132133211854288751804224994000820136184424582163669668199317170376430525874956273663591841768540446884256868192358447407500571965286633692689501383153515622275987064522366355044743408951370669457867973861760071842143378703050577366752758826515950283801943203953362172885778963184313675292547155620640201754361214197262965957917947591507137344810731973720117737990376788123616491566134700764770246722780694039362660261120898407300541890264026703948591095659809362101041646715943684204768094281789481702504461108969538311352868874313493482926902964429924850546509715392277175732898153974004234825258899862616591513811457907355609824637118142546356666471947564639657908061253119744948979456943036952812336375660737250125962704024123820420304586370586722975137756480145347358508044730140232784632636076575734243172408804047568951129106316091035732780645169524383044575140994846341953564377876526347364035711075978027803590671814639606652751788898852130410789207536221772002263742852281796565954135627165030937182328745533819033444462028561648966299400074007941146235131139351017394450159517972459225924751687507311574063730998139384882334978328436503428395366389414646707888992242223911388223220124314471779959883770926350238629687218681907830285713451316168227023218944964642838960043451915182590328688243979256389566385126892031149971600568654931762551028903087343904556079144880363144942368856214437917970024640115066894878808359835681911394067820605134008638238511414877153942862468080116254749028659692303706153099067492888406847769011150744020588999727520770710888749029524853505379614897057860337161706547543015232768314338518088426820184701556606730933465027394576317142658459097636999083818894812544793420718031274623156716563873657253641447416043614877430623816221702308938384822559560105326204225899808546055113491241205953713476613315706996604238993761883892484249268572485673373684193804943959058175569115418550816620377824860575385656831045662617227563779255316289241057807292248122354224951034134784779305159379857523246938315228331606502861722426266590493974008890218684377455877313307683186402892361899612359234422238919534557899747049849857263543914363368022466280904304502820242520808461966271087312015150561073420960954589135426599647189782404982087978473579611096692828622270064818927490447327997420091222958716417739546056672555373376129021789428993481108238107051497742055748978180039652464060322799500635788222088868431696407416618503815178884890779372705753900191866883060133322171357182911466253443601079822447855003624038064835117197283667060250061942636827216841992857933060213635221105991762171974762200815658345070679472016284980094312941747599271821657594127025484462146285039748973299134831261598298326094347760907344596340535129525311753744515626322373807131324227755253116554281087016848570660199289724148788216948851758563470236206106687440042573703532432374906673494891524342083405628540487686045027890437526845294953947606434971412990799682557403085491192554845009018754226794507013608843656845856491100218904520293804540419933394058911710152887674297291661661951483834655573024944257678033235790827045129706828181386012325574518002812129981773228580420882308044417819883880785725819457514299010965905117862013355673118913006439688460923196781247845886488241113290760452349990464388454161329627412392267223405404305066010042365964061135231179469475818631699559788980486962326499758986267426049752118012274468191291673458536287910396571070024109392002359203766601175942075118115679350844290478649029287966774022208472987250507538825466627703055585243288160792130709580845223194401423112644407635776615341373706603091105963500364570734113696177628343380520663266249662831095954572140878256417494957429359038678065877185837344027344266546496314273961199166225911831205631558836941417334538404953081769056193396878911995921406263924055652388855803516650151348666833742382614629282619780809333124071355239365887031147043213602152912650906276501618569658424936871527535643070526971408565937206555290556577227601071216951254182228529872594202189472351469604576333404827604264536451718442266022370218945676065130194165177581010294356824688968799627101977284743798219088510999075588177186234688973337499431983405569077241446112169386603732823730482490353212938162875519055806077976604103813170457719508030364036619651024765558211460390470594032897485560088372468264156002286125404993536544062277033380130217507591687121801291577056890748263994478220984717324877004521263398934157919111495656795703647917464192460138225152889349411287276148800202320833476723896510731621191619491180648234084639232952255561228875626661973812850691137524461995883548771711036655081140638897404475448984625945381772092187661533006769295509696741111001473058710933926424220374718340123085073525944915232980905297337656767087053934924771575016393863171654091908657096518479565355679726248931888099078134606340004356181096016785250046598310364199805646181589792936301601898282810981019501826225400968902444655611913113858285049006001251507696077279269542187297897772096518106077386481179831108013413153713507093648732514306634599868624600808717343079036320483095855118549545423491549375778980420074865756913224043260997692262585865555987074754430330335556049850889588799909110018569118790302321180772412166012554757013128058503679099527977678149816291854890537747858147162872468344609106967854760476470272733598997809481286312693036296713143587067941267103516592722842408449687456479189581186028989830727271921305202961741453250005298077644696319044168915710156511759281778579114200830340581053793937791795492560817695135942584046577234174525473707058797021293388684547432510631663113357961505036176088809896719673906078987703435216313147134181614134513870010601549010999906276933604809039717403009467749638503243790275894173485833992942023757796643452552157356604668123839468811693027442033409016762149551986615653218231897489864232753407430661128222850951789677998217999677739638134762138812140178130839667297423809623956767187134178723498353398369613569330335925393809371695337900887754515052155264657686692218326321825545939801220148094603949737925547956234465330373634127053297201927649241891681172969511586472356275245469113002961415515458715928804627855537479808270709458121461117479476008262365197432461197147308733965636530559551651194898250539288471107510500187063308028984477568039219914700854763182545250183526828106952503563868650387501814674443407161935947243954191459455845293164671287008739710337763358735692786174644472213507724785121536301844283354300575149133882120880450209322835091849478459435358479312942952394073797317617970417558645918147648759373640692830537168306384942351829831412672115045384175148188788838178562861433031848617409571993768693197321663707841778437776166402333904225051195024619494860878231257810893413046406755539125159215440420273901629770210833337196537132549255742977323323042600033229179513115625076792034314833009686608096509370996771348589660279109790242254948861534657774153342843854926707655690749947119367804292939161041617287464564931432029778895636666793871793306585811557727446988514894084298092355968225209172494711370548933251420048504114204116910974885744996190721531975072063482742418105187858139050659235458299825550150352935767249016090295943815134064179966732299316647478955084347285985041127716736907995178304667567911450974325718343948285467332142771599830028854499431941301163937518804451165248940896723687062460247203990244665981560402913897239382779951848793705711714611554943677991660999255129795378778671394961119505080989733975921894935742410686875400239743891000169530724935193441810419221637839443745755516976613367243583970502511381230876671110609159965828960692453863956400236836721795759576452909698670202034374477442808179920183569130987164883163356966753828916733772932126178749833945959914905001393224750589818574284299142562034739654245896999200108363188576749285114164048057182018748608812560501215159081259999940135634784968080736555616389665435154389027658869459717423112996179582629488095543980822707383899569313140935685224783271223375561502956133294788998781586117092672069263161902302941009425074491179792273515713073581335827245750228028074523467246008602330719742726262144148330830745438192250245271211610362810850804948814618631875474996032139646984217193821781686248079546969519785781338704847132373765289517199338809110348740797794475661614633220616249282948769601613705182273309897456228717964431985056552844611189597675749802276901615264834622593554700464774369781700765634549535176544067989635806787808604271516783679516148320315828443042704367778146501970556628115735427770374290790428611836642796709136811007105818285677534517388300396411857812881523129277450462223977692742954715943989139184994781583469290124223878116308819199610861517264621543770248607888920388892527610459707790024090476472943059206223230884080396193872252047569728704771042511097221185078037905040093650670511409096516591393357206411986270399004762153563944391574163336865815939658653448255943344496411514513385763697990371231777738286152535715035353033519620396416940373710450446808231734392179623718761401177303725352357825302357832014527596949997683768746945449679739403864895259703063685404697629516324862841722325508598001645441153852081228557572551486470264570623076114292073268535203782005058346274486125290547921475011412154393052766680375058387858774183854349805057405889373461738281338695460164872938281713319370584911077778813928714540704344906575222971455016067139625240847429389153189637881113551419120071594787306303692792251008830625201572434341438364504235041834834936635209094118507898536835408065401108382003215041179925254985603027562902301747939214618221804685050146557361438149033918987439644806619832379211377833915098281056718201335220299372404196329265265341507467326932693134684636862896415769979829190627065876600129537638165617478262578687834402638654483099590124253766010450108494702651935587915093500258911043020823018490375544694082467607264289298119931824637714465108657968107444510804405340540871776286011707064776343693109563860406012000035236647904604539816784863551453669107700385842740570649150071916173288439161799542912239531839179443066948637203321419954473537634637755898400889095070700640889954265525299871827096020321387195730742478003437040756489066112257394951331688371997651077121578809620886748465955428092707001531648368402765423970713442068168384483908178401482215660386594248077946419666075184131256362107510028119173293294706688327450347648213352737656573174550600657853805035444075679142491971085867474312269800529124692746564345411142358665827623091175008663084874717753660295595577533230816510536128648263764589061825373412679722707713432033108547258012991333691711306221472342050881729454362864046712781096683657853728027740580672532031517141191553576674449309162037013818772808245532079096129155158612943643981078601297555619204251884891676325578141777013960848028775179004260318778092424877154280270598080018322340991221786320825907330610620949355877505579683001891021282268265828595288883136494140814184975841124776542731904893801938229498347618015265999178984647985516943549822490264490230281161853844687137033105940587302633772919574039781743854926740583767849279194601086322217776609811989271367740622212993430071025572522481934893087233680772502539549160144566851249350549439058327522138749600961380894664371767391362558502384012468364917047748686949579830554117560469775866711676077994257741639879316808122501830851765211992666201446957638574049290733966426785099693500519563300544908096632509560619354886581737015909929346312959265689649755305572414624387020807275236103148682581620569968310148763748833236125248772228091327909031884379124327733889274723021896959674890013934893673092087509225590616764265347765983848746099861469482396049271020734984621122302586473726001913835161473289401633185806180690741160897615530401701152843505879102201760693071522965874546977824369590717087564027069083374478127685198755916751830485447274897971471602693676665896831385426233558383692252888189813167533413182556326839586446812841979769890667087241339426029867372512450037869406250741350485090664783377663921177428612953516449814430455265808255153326388300470529963652094086717352516036442421866221170222651807976513758852800652106374063281897472262613089302361138750604066165240538116512040247791444314065077428501432650531536301885827689777493253961391725088193366065365169627522566408383084982676211406511886688252330010028901608983471270366522063614077615400223765988931885801524366663754145078629144920494968202712880920816717710766317976104513313100580721029078430742266567744428944669870341604436404219688565620820895351476297699251834639491614778070977427615483667382106086606174730319477396645813988092415842511004479121232605178407595044361589288106348126158310293939615770907764763693043502600497272884095101781793850571624337487315082054951342146335343404478293168286629476670082954930855068945143700186530952383128491997110522028957843754685962204305707410861841074570632810072103858126808364479981181602084737935172263236757921917599860656019492488024417205432893288777889803544067817894167562320933645202794838947844960474618391661919482564620473371305341974244716234463993958182160840743821749580202244375047762655849651483913280534555738115815768728207171414732861555309788463816063083685612066031959781216109367907225000707551099199092515996125471918079525639638048651380312935878266788731102276909725256989057934830564418675426711677674983914320832388501710993726755755721125177978885644935489983925595543588940955546041964566117940721489302783950653193848399585840535798908145192982137795313384306691222925704518200315843128398043728401157131669413894343956700121954278429502626914109663624247407518598221105468838725487076402076275571774974860477907266963413170866304147561215172533115194232206881746305613663164805832359269938433862680977193303300946663321777666015319332658828074167745914903315214387444726032951138237024354927049445893008804607919859862801916578002973761112915166294889845514733443607650208087557790317570175782405261890074091271382280750239226083678929208898465099723078320412938776034097538126049334583786324117378630062471255802252605024169475922793886503001325271949499427158540567512998274846311296753073773411052565938212068088105832514082006165691773752828000135667810058980436483736048354070493281958577093052388319342367357434304508689499948531594710655458959005937994128776186083029986962583058026660388033726033027365870884631471526240794073533894488483835121104896197807575394164321135334045124274939859962599229430602105500002334643339566878994561383514401632636203974353176525344503048518857019527373130736795809696038629978614770713858703595966990110977859753169562604046663620143863408692559439595232560862312179266138606204461363399814784740702821458068019010527305114379452915053493988531377379696620131816559379579427599162177451889982804443742293410634609323455273686180078326812351351309545746283581079822971779756748033932533361703578417217802015647657331688964067419456121490103586469276029715017202105324023653069750888906298133484609266071968713058416203043281624320056995928050264361337010565118408042899552899330862084542309099105396226354062485965285059060363897654314465827044181362184018357909535334176943330867331921121839493623316684046556780669887059519669126201164174068241740490404050963528840126918027120170562701065489967697300436451461315134826439194632465305422457502640468487336351272047641557989370909136440643796950632660203145361011136872628248604490774154325007733625710543347962935797906584875362513921807839835119829796249750021712470212963457079213293875296467374539425475095378075732053343742005845329009503984188606223214926629320667891638051347762001472720819820962991083887180984510994581295559071156087541110982429667360145956149047550585353053346974319807483898114689919578352629998444153560450762168761860583401818196616439599392156261431172611576968393837696745861752754493430144891555584898219866896643465450500047185650568030689647011748330036682812566401232187084402100042373001131508403231761034170593833968847807440680615564506535021144530367443668526752643553832247361127586256931065633624727712948540935614020883640055066106228080519626069193151882575795183520170684492153900960541965806766064082550642595727398805469736576475410144371429887050625073326594854382331489698131788024094953651553927609463517621386837400298593243742133523835066022662719275191265929027710793620661466757074523106236243985294942533444267322408481925052753585273099251529771731540583288182271697120405098988713902825509520898695584927530085257439982599274944222576434685543999690822641683600658849454344488381326869342440272546903340945140217129483513090988972207262432016543452885355932190493224948173969506938232777097776064790490295230460623185112488756780805998644852402749188327157229525196737243580739976410192617708546254663239361709207481712861142873163981161968146790080446007655895220766154983385010555075750676463218006622435564322748905767400141240712893475671545763055368450487894805999590943627308334608175143097238030142707104419863959208565642311752947483102106991864584045071701952555255834153937319449101022155272978238519156359198623487365903987169398911985776237722207018017721061454991200550217660483642748564976007099174274580514680583324571529637531979810914635944834575716501594410438959116278700665778013846420755969040551572951873246785516611145887886457603747979959318406200104603557024277716080232303779653808965527907830987982990032552513329302979077657963535614477447700661213921977464187218033718713305248057992027569679261689336454131115598243249058609869308485280635366609529659197732488057166440276771566615478484877165200805137765332669966809485096539281607699458072958239257182162003974599040370515616674384953867574972455783480877777457583126503989732736721035919134423280825355962671613707351011636784161408084090935043524472637021495606456134021324789064397604902830405632949266140893597685398916857285165649564353395042315875121360560270503470047516928609667152168444629941286922430221330215257227451765825391100883467036989108652361384376471248554901520597913314928377762580240534000998726742118817925567172816529437465534460885055123630762602139178265743090526479996874965535666175479265976637453343784940055298769891519700294996049936741229397842853435855926577331537625066334506615812304766350040199108716578237691929378097716736255475648493488816403613940372316843220640330509465090675922824425583335085133870794138061419100531143718863817001181064394891440124913285466285418447985135566164920405637544965861286522552869742758180482053442784132354375757105467700843586399181661584108294143488160026977556289709026437248292482405461822330441202700439524041326718591663884787907524627814472052846460177792646230573302025211501446132804247152833202760760945247907957749292343950615764994681790552814140675381955898983784150859481200843280192376673423554459483953146697302479832066124798204068421997684646917781023009283501127127237904818862963258278974175455384070994088338439514350138711294648257067256036069304849691563804260641640957357422605920309535927364934952467159327687912037487439049430322262505131711496911966345767277813391746275780035646216183968767620966851261017978784960002032456823749525696669679104354353280805333359444520407197482424073131634684081446952500455020464450690835781154831248455847583378623630730787746191333369497683116262889497846336720490126352625294848221507934979346910457020756463158816286748989424942163889831607297941531858863623412947890619815314636704181170964066715062920343704529867142003964871036649526574660243951098621307410973303186352141723147577491777006045501556142182677619309897339148157466599081025681344574654334785262235693604669110274982461943677864748065211800579236290194315514178830880426933326098970148479647438699226446475190522334758516224006400000496986000250312099586471953851856818946930702159402593710218933023970139156531499924814656789436233863051533086681685489616964387517553953359527187401143586609392199728513881202090025026027359623692139545843312283322034838146942766777845689138098807751392077113623418571231683848318265034861186187914875826097158902916508594559308664281056873982029850986101060790327587204726146841019138813565892631705727213835495030835230141752405824004761409447994205142198238675031187377669813386462178265108411646871966052500587185954092778342255494161246277211388260253967561365422432740112790126003228185500480537903007619261528385797505073693004467794817908077050945025650354844269119674138015214849578284087327314843729396731545403527936201520504426162481038920178221730554242848918917911918619802057089087038844177349911941366602696510648828441485124958347758308266038149298556746385469473493950097161782238537180624044134996527488281749945243313049001739765801452421940454728311520378928819645718999244788493439794293477903646815905875326505282905956046439693988536130564471773574438196522749448535344637203518434113247187591656155182941679099324147718316733214536820244346903549642016222599709251786222128247652230231554318577254553007505189339618412606875491720672090268120320838022626539972024213253265164971098250477472734145761465778499588328462839249072253431977705843627115838334116649173562155902091539859982969107246809306611741823891093817832717497616944266781310781071592425138551517629165356751405330574392150687863291600727856750524136507231111513473004365036330786907323130327295621219987711098116988171299438209132494928068591134167300373321375533426035213609247563325538902859892649368057931214818851966714311560502431291059748199990408550316444572093845797928784573218696856136435412307641493610649740557835853005560322154316608437349159193748731294863089824182558424087865092334293734679956863127362843675363001039446199493344496397288748444506325593684455042094371350791246866776489440416240373518909078050094102694435936332611078361598719697808796515881102846711943202382608623377683564117944754910279784889526622335900994198914247301367418573921066427146322102183291205579797568064909531318863233186757252224779958783341279530701253029501421762360946879501036256299986194105131180613544140261840069983637184078265819123754624200907194985358005970572778804933684448408729501097821225497437965406195353741263107352285592907146834482973642674673072925983173697788419431283486076176416954146603430619017465212739459893288658268355741890623481044857850358378343152499036259213896001528370684624316782920068125727263850273203060952097653282192072605263570235813270393138492698401300827824995544514016109984152223311051239632286518592835309950487637032646417475232369732739723097913977431876975374516784905268657296994301943435707939492963237250509430325856911234569505272724956046153401329380531458219898814647421875028130472167687916397510484940367158381844616172361735616296882448304312220731378032477801100433261207331750049696530652099843516077868521688418618293977675654020710779866363426570930286410031112672088983220295788213010906011449565019374820451156932585705227503060862366913165619493824456293967807385059301495800058739012587507704577840217206021432139943274394866637332591400321374892643749350310068725670692530019360194580434056185180902052972805167645832761617429355216663243206472512558227113930720181368127395023542283300672660184060400934342956823181220596095348268786202768969087233367160560371913539282480612796268242619214438764940659183660619399058670221434084101087497371748801313922953154977951609595286776761945545256497293649175459225161435685122876391965155116076112641587304571875226979852107976744872218224483171745197142768801411296063938183719267236391843502803727043203859465149454278502719770292680223371809508656175500209794842541104395285150187077004113058113963399258094184508788467513660103523061425270663621921338714340157599785188564946414790179086517274251972084136530019356503942414786316274271237003464821590165853932970518242163867151473094098132424240740206878693143707085036136032041381683319582774684081260121782986960540991434060699249824641333552595511535809130167541031178093639188455656641970499878651909078320512338051503444927466966208386100522455753574643279919835867417867944294627257961485296963161176895223305174966294972674574664279286145405125833169188724859692962251146522752646951903428530580659680312651445918619022599093483942257241124629426870577025706614289713292110513969895858624495979619113750190941348533030775041746907989938601837679368144535460315486556331924233880036820461714304881680217405889879260035110525036954553275605552221518483619146042068068527068587124441295434692657018648319506724689755715416536414782060212536520596864766831620828856580380244702361297184881793203658920475394022622164928495057481140676103520631634377529465604213123157730875593214126784249044434980904331636395449408677489771032254292274697265812417845166321832122444990312659916123218064690121477098891245700550702027892926758569831415012239453536276534499380259019505724005135788664556485674640410664180749340620113730534273681802999766969022415013204068452479652943912877982946061736454259006752928303895083747047899895878181413368395517951684864294649502744136278355785203983625212367892986715526015954235229997144048107242504891056983733543284159014285121118278154515613185674552909542431038656789895598508163226311919405509418158077827775639036420466504891261243049193092425319963573244605775894479638821940992307438865498805587767277232152216810191449615844811881164366438283464981303430608372440913883521100015023186479384096005178684225320974495671718362418827823724843120298228810625673043544013261699838602720915730784316615724612744643447149223065646288413546713337339597013493765243199601866221902135678429588510522949835537500229428051427183719292308172289472139411844511624821456940049542020119414443735307786265305554844381201719788362025027466134840280178191001827766344001469284389744902317804079066420912922917449330134016999678066795750790152494638972067419747815097112278993202935697187211837655427926902921704440400977208373576105144381381136219255239971316196956690712451369877271135542305201390427156364457728875142191369768808903146046330846558019199217914965504749153690384746437991027807577743150085701776529485438657701524200420432189544818598935162445272402867307435186255807039551762710012767452208604709009113447157914177745301494708616342279892673602946317623759911115257366006680641311372722713805558812386483417469692927166798767930153433387728787454702503702203959238521356830628521073508742546571352129995190279198654181608261924215218615656308550617464176874778460913442160142204644965713915890015493305082982588577112832811416596485153153992151615128963747530448946081524266048453772345538161494360228537642756547658078672732778507687710094843717915095322874449351911332712154277923368526670279714122351258443925237414497034117598914870310942757677328035203247923494951757560328157445241817170601641148823138706563382725639132029404573528129567259491667150842018108294080977646751593212028744192170461258882283022008106157348802768724039378916655065220306268799602997294968739424947246913512562901097659200522655924334824978857735869127167639200788300939389576855869405549992279954849446567113892906378864931520226249229885474450385336054044277359426403487617156872578791915676170292623683250464875226854395044508162613286512030213020617794450364235083576841588206501518138539886846798069014468874888486317993399497555804657723934250125418237784968493300565803787477714523374623376246274037397457421622920317273402116653573947509695413109012798411242758220203417842099196395192147455787213746404019430533865186916571520321074895846831616193440280045559479858754199760723946056843871859826860387776280949646759414771477745618595666524226374164987901540895859654437395594829624047607941802115978133915439371519036847192443436505420323991173666818102527514072743691572205908019721726559486329701837849617916315426812202356263157032923565206588223269400961861008397940264876515650746442426263424494551317648235739571706495738250369422353802968861410898211649771671611493844274607059577030997614017168104908803943916254880968560426736531808319981423080248939758694342664548206873448646122078705230364935694806929108609253943137791365208641119860762688111534222820384527024603588676589985667063858234206629582259662016147447465060486668912472903737500376928328243688831653968078792500197454537155158045710503231640110768687722812393606207578821475653838592340322604254455726896779279836331793314287552681526872073251054367134098470918668454737388206623876943706120217030076205460052858695807855549363348839257806217260490705977545731844613731526181092123685455085529886397540686045000088461455645425655904350633579987834717897145225532417600490941773496732525304709702221185170802048903578572683962263062593322680853872142875941338055426195873899992367149339158936674384108799156909760753374384078109175799758739228047589400048360889207895780665791118071106352221262058632714682473120263303718024889524923805276281939787678510827113833648227020453226828225612647053148617948129655254767007613092906800734493490601850402128710223997586237215228576611103916067317795036054789177098329288191566433817812809048042887616934663890509885597735301181372297292866172593450211109089406947031855015568542987985019013632824738264081615708283156628071702832576230124442689972719133396247979816764734827985813603683929804342239233759976402388167573983945643273873437921986012013165624629922262136711702324562486267802827041374248188034585297996495748211542073708487829298893781210767031273916923891038643826119260701083423901314450465651754167664747002320208707062028198360225447181379869247362408599148230016061825198401526964169556168012719752818345218061009432678983584140308377874254669686788878462761393319961278873057467140634182370291702513427445256422005690007702425791379469943292401363304511587616390702478092636736736787247006830438657733933701528809739517094809042393949726486684136850817161785834946448858724884947464272861308611230534334228800038703178185015439965632447021160602820576465239831626301335869453146160474847692133100064713826163219445431690145399986933553817722224574238109282592424551449435026676837344446420097416103014392224041148637061872779612218655655227504665350856780838639018687019171712049990493672133931657865089638305193749790833498646639580384478402024216585591126398587127438817519946274858165435774204266683262309195982328738171938585516090152168299125460636299833446105884400462970457948221851923809219475438834049835133861641686077925777802862692444930785685186121142205103585902142057073378097536400174123767102963532298392676601198498632313727831779991697296421699838943269006132235247010947672356581799292222706630926589462528586040263097314884954545687391069185404886335989667047460304621734336663980318372536600359301259092920458137613194740514590624748565205949234451573964478690422555368601343246982891963376981394610644502626002241091832468674505704564745020601925574244755627667145878285238750431069985705495662292869382944561668733083971040716513346635849027260656070482842047105313846668638440316327328773156707622392929724708209150871365345090804319617402102860546945943614403768864615331946556439574713670712248493967561644315565374559034617550959241325980191541232634158788755211865577604834290318166156462891185375031724100397084086342881748419457257811713977662036417163069245034286053500265099263023617496253132071442609556583266813859177457148650714016861365834015199938836526558493163483753320868783162886617334254523816431505417559801037476535112143528541756189252133184373791292990152282969592754230559804182409602068379008573748084433549567073828946893937070163872486441418963296168352423690279819694163686604000978965010192106115818310423648851768902910253610047244393717885040221486128910968140337154069318739215825264645386111366488305143031494462487968313248485928358881496108831348070961538210185513720033044910119028831293560537423627610018304501674451471735788066034846304118433398644925736023741861844882656434996619338494567623360942855595363234584063128460349588315225729853854220761977035849320247899167203515515580364662734584239512206064143308137654172684576876820495994772088439246690017935520002183690827886426289331101934648875321892422377498886768157256616418128748352624853400352931287404231036193738242016501060054254342611424977502968812531911465457351322924452690668689090698699069753816684098926705549333770352966889270868530467581239742509665090112453091641723074600895719452288849901751518785229702422488648976567174472367055701875819283504375795351242260736561164258824886331778826998566666143430958287319825377346920967123306769973990718288159796095367540502988456311348976007108862655624006004871041399046597288080881639436770369644654080983222536418792517367900701366471998006067531945448640340357428614334529318445454345671428147900573957801199937393508983088751603672831788449200559616678774315937428883893375919013748099337401067142087927064898021647261244038527948812919962189697817806199531363656873844255453658209347461891805946753230088403740041015007204370679165060390810624148728748600049950338491217520073580725211875649816564817292610658958260358827629545847621218508370549613478476623572482927956013763276489096080915769481106269835122009249692112643814443649138898930352825695994901149504950214130974271123098552295134685416437095613433385374511474311306920512221129121743666166289777880313432959839427602715088354143994435012460288520080588466452217193074609987827841135630208997577609302945631883802083792057159152658514222042078990964229468318479582099036726568188251093830503499210841718378760357476608929180390019636496740427477093020901654587543214535241897746167387275691239634889234881776361641822339584754923628023597712253808842470929401425478203399127092283782612014305471593565793068604982322243830681735318409712217702394896861812228089873042104243420849509815233509345482943208109179560604695184003315550314853947554128323538559451720341981454300911742600113832594814860727306089012197046134608080764697629427156497921212494714258297651795949657724653745772992210377355623675361426391687098021577642586613310134756959468201591242303036658493438719109680959373028259242533351534111719862354872599392571967681067647417346439772252270741048441240148820863931870966739157066547456670328625818978344356370382038717666763833991601361221911426876535399661434127968001241784044525819059041305635613512921728201783253223810520005421698668205883233605747317635242694076528019130509916317124214979118108330660335188256997150010365493726008364831362815015237260358742606991234457437108549754174024475474629147234148335169449418662084435973158519265521978479325025900036722213460009793559712290340285377483767150653345841188270397465484105993678466516686221061211523431694649031470277887476317513206609706254871916875194152706646858290440358996356142921094324930873444109925689678651498655766509784470904458169292000126422179071220857305176638546456420164407525935055269666790359920242779767318345490620062053322884812902969877539010911734316671299326935422783276306161285098618731553220064107556127874724559901581627949525533617258720516850383865834260315344306356758540037534215325334891778877500183056559532800993682989193730279135926343129638874691525573254513112742110325355152594061788719544149787257225528374162771634593098728672290679586748652371287884733707973742881893329388200961344026704733404518683122690725840673312652798381542493117937086717036345890994710430143281825126440675546557663380958012292989694455976728126924922468959077122956317040104046462153823447981586358588508563616929766726108820493042121042755899813873943920227156005623858937880636839859946002047102479464259743077146394456703438707970470018771713070714805541978014669527030665597052852461402449551254935406565525653600931737732497756655719412518738834184385249665500337448490544047022152801912616108909737544743654712635040778544913525423072105421723566307001677882887911587334807804583628932303714438661445656519640090570824498612405038649401037926176979610951703261127513268518768179614729695843411018945573928006055148627776410207714304034272027623509962655059746895947843564534104777832742035559298391158122336705794483682104470986138153950533304013734457508981290172637815413630150045852956755408729190482785603819834041570544418316017796344984069009067097274583156996701507372652830551568593179658903468952857804058371424664062430091700231643545075129784082979554278468914455494760036552049674250489088443237799218095066447600904230363763864532788150232749862081542458179319983584764448034100983671337332389754946121960471775771373511641414437522306660704175813835701249347986224668648250454671174308196695087910446195413482873481712998369213351742515804033514437620581450892567884853906198956347659015530255969866216167647016732631812236409238900842475674728365384843213679879326441403467332323160526896882457979161808684537621928312659297547327935510637480486231601296418368331713332691210819919168545802671035573219676087485542811961149464463769365928921032058070534600473792264714092701113635168268262124341387133708456166682168370396636054047297908418075821516504210454721067163439311254318848545469035156026000155903505137162000475758671024181298734184269837236563022002236086746502331888746849665792518363377752272926170786502518999962262487866194677417331993858870551426030970896213139499950098625517192187479753505464665609707235357102501457712163515263928562770517128775097157831884265946021543230000390260466484917500917314222634323118739111935878523373825352047529801895941987859098646599339609406861705422311818570986128408085244788129371569549987656864473469106947633546972956180668761833565777917075683956272719313130869820993229851559735596313193518946026094300689951737558738101080473847078668345757939933166616355512687787369099936372193040380687482114071332515421591019253314624250474423317787510949889928743604278510520655537937785818733600792101941089658863735265020238044936536736953774645511742047059011519702161743237796797292153761907694410562631685293159193942703719397397041115861155613634220985507772485321321123390342332555615270007629440883111018501033032947090598779321104324314212593627401989848606242928783260556930680918958847630114077421887527155042709459940262404318555188885223319005106441691154468015069062496114727996623685327365848794025922671584990071558883338454605427113699585552633631580950853988001248124203496370192156505965395961498422582494418929053082526029975798707918835129549240360986683897921442965993864826567081950303628238079174208809605616153317212396305848075062181035640595163939734541709070167243750637666509911912513126414393996556920883356052237571825422220549466901638148624712749096645394583235429456059077914850867127427279071871850330442481426536678808370999514517248105458412038342142880922191709913650873236420253659852349939240522199290791274664728470289094223026469560516245647012677181855279482398822949157365085315179880366531253721221744574792923213381114350682721513160151901149650026022263840086831922519362773931257522331851224247906874678749539570107603927730666946445688528664445441663367073766073650645040398452498932050838618128432128930824905786841270555006640929631036487920533943006972720237529996594958883445687351220221417486297871297912316559662577309724413557299485361423344523115767654630002648655356135475616629160159760853433450151802659517266400366603582857920050602760896524695001012174752639768351719703226866884228117073780856650397419156974360918098121528670387132411126920761083098898293812332257731449994279040884444690303441580967313237158473065227167723358450329236554261830582749971440556862873526673856924111613527451042924796487335651158680587470751363031146506713061905126784108210765438278105454452493283114316844643907611623605620032354626666979403451348556217643229385603218299783053483038823409273296731126555674492572265567986934890451384767055434354832405289630949750615352009111229593004182023690376917071201751009917071253197401222024327123813050419480030368674190042378376610311628497773390112313503910223940667827233915277050702238703155831520749206697014822325486654724725905500704545363849978135584650032174737280018053751137501620916251116679041162512759179722467277068418752648721430183194045766522989987539161032157065083853617212704149338375289901043680714218528240306176447817219168016509772756025284275499592058343553395389043834257329767940071436753991450142842213624890499335385905593011479785431679410257196247859530924238850546249431643116131988969403334870838252650891636897505935157831345085772673735789069495458413445524125579414804126466157479934698866304167764858223539098742397656351152079953318983536889314979826850983535463739398241303782659797923560541591492958934703745506388032218584176982359348387879233662647606795138957260157181675537370722984244580647705632886159864418265871292508498245047678163952441979079363869951481004969694763248759771893578363550045896854611007122394325121856226748772565625373354608473796284082876643972879889721861656406561820814820964447772380936948346989903414039311961799843714459460872177826329042849770957320270175472912168664374822011869689205479276442531630000308568944099398736410523997608746960643643959687383233062830677988497888816722673558610482655830112257289810183402160311476811184816532050056870773513064585493149111730376790422581982463869004993590449282644073173449740266876855030244474084476019110521358181515819147773741948993981232499496249365734604799363858804580369826384587591065982014569701768113184903361405105203332844505038478360207827699365756811734793118308660108323912307329369769584775004400063457040459225480911700839287674891266741366475240769778385467804273403224012635316201192042148533267901713837869924795634708320292153877870184032609639714392247427884219262699608396306343603530895841667169383044005010652446679359840543897980372700479093527447945107481194399831026828647701355325937260535969850727738321863212792693868616281442675180899322887246264485164734486744690015656964546523991941992443643682001143587883805925354115782260406988495129771262716332001703271030210944002471093470243289552935215161595726795854200186428158651160225048464032144944075153745954924641128838469052846024787648713698282359076646966216742784682019175816395632906142258176671147542329885088458338077155168908056233803721755286017431973465144997432904192506778545375501267830167365856017458830948773662290256192503771398318607211266219669444660220340637294274724134513362604647823134053046968007027321862994229037818521650982989889582658264806235363243485731386359993360420891946374042137130910413610284928763874525497059752681988294843495918985277551874945530365332306770679399141001246252919557020811120823451088142396204034175860698329380604297037245435839556930736341423440015865367236229952878379638079416493777348989340744966991726876492732266351078247602971791760323544734149296279825554519563303462523540963081557441291559948970040631795903249497916156680589840291627420178892327891955951935717902247134126594723395729247550913505249044475830134360188198944327093907974731096926242233479600331690213191491179893278112087629285680607696840171501728481988234904847795322683779585398153369602521432655049894888130289089702437685783640789153799540640997150529735458900313003535757069483736297118969224359190809958756051577390486225807313234749143659915647047964919924450765952437012452599076845522780771964338716557274399837735474350249745181698859173570418609313189958325454439082167160856387496081706939748680237724146220525049958799549015799550541628693926760330359312178731827103862051051096114056002793853037401078035904856223470309157286211262594856805123980181198384820359212133814515252444715013545058428414999744367815816770407775782066133043584888048947114532226296136568466442259536300341429311420074064298634508413009251195673966213341535382658068880333116838358071403592701340280811429847810454760229922066563150054174288110676060536134237848736736298557301608048906765622769739624768851567247223126100090741546692582441630995620944667029235875094924375169219038257600722151668551094456361873833630246546576936252883608512843628440315782646772600756801023586927083240145189083874780235145847363481305124846746629067958852169115332068960413185867934969956090322746226386620480600987471618268452864186401562624714934603252049874939992585373228873210480021874069018178562699337786822183226319273523183666172591225156582865728027202576453643945840336881871027012533358747933594422224726637381978519357686047029261531561338814090440011956821066547553220017208758453769845734183133470450959993813662968135942799710356738703227464012910006075053500176930842005745426448863039078784642377543318325252669799559662953434905044899590793901808930244815461640147456856711939658757889221554420282162727931741715109490087925324408876065340313851008391070023821796923991026928020686351814849212217436446691032269256415123225302446459799251467029440910848241977625922890727240912181711503289518603943185459806510846451934054488249935127803149805203405507886940694673016785876455472687848943463905725541497823416549503046504378130803177980391254366788061902647656196006910711548923696713685287919638778005142207632154983513431351592921517092357214128220731110548519251729876487696074221318156972206402649185209609394759067532506076561901273474117638870779820493101529964114841705835440694654981681677484453979253064229339393440871229000230155885607757205673113686515699850568925492214328357053207181248266805612695961404065389786851688738826744461168765482759171438009858103856402758580069085332998878607529840815534058926718354046249219638960651644180373441553717679290206425919020608552715623344078078051724598208332921597691527114106914855080651616194087814568730805861500773406726263430301522548698945566707021618325328824832848183122742616766474561912394528976631164139409784622806615136562459939892340255270515000849666772990197087575058882075735646661976229688631726456074130680322541415299453835835075404132475363952163716321059053066107511234694474779032388450195341539850645333927850028963690484999602848700578543756641316488950202056429203803205099961898064156506795330970048212757345205901966578629894872333230720692574707435420563787767995551835183559368374874690552444413218344137321589559430739301750828993749512772526032746110258101294654788063290665122346010725856238414878908153496660177318342945461104009687809813778547278445971138804604802053966621207730414188799827645222613562808105250136549711726119434372107222816561650027928377125736164085470926914885561592796352511692036671685567262377825398646516492129386395153029393918984730504244470405227340471724393565830723524052911377782178910684114732398213188946315838026315574011947093690944801260693810245128165038029577087596084345833838129412435777768164620352830476901544499593653524476959094577854567011848590718648229624604833002059462811817309726410487667926086147603502008524445166853284985520897768501741245074472325168837914953782761732180453259280890770170298630539012785886642996425367555453379417948917827260634550823623474524969193731323322363853495812324371609989993030261936715308475586023791497620712174339090326306697998623725499458989233058356806390058780525812217440938814365711045537907963028909265034464679837571060573344696738213125488879666250743785699954647596697122441904049772373945541097664627521904852322193443096230712608868870234179120141210897911557840834601413812827086848819603660558965953735857576230255233716190178265813889782150875404289376019051868110844366978540879137430014138234780605320902410581678209803652210508146811122983863922634495819867343191555629200700517221762646869103716844597958629488094129421015868054587559408508030803476542895294114354310936251653057610402718393678939217858927232740596733267142197380589370281944092181991791758066691058635159917456547976731530544267735726793419947594959053006214804028729833603877388408251910657025760846906581439264235701832716913459895354715954065203709711021412729052283588337988095713258399392702919064515281088959750940852977122324454035192429252505579958460607792603277425458165586998151802112704157222760775521000139846471896203804907074984518496850239860036896198024458147204742195261357095587751995777630407549709456648399265689262379714775264447625024282669109679938746644590814428508755994819130940739915637231836692182452785065552876178581012450978848346415238545392986160425821695461817052750007858024034149212767426817504052436816038816866194889338574552200696580691842474503514143915791680077631605757336506696949576871173805009287520270136236583362828575391448228269648527514983971791411772413242426118487436412001758469863398361164296551187866145859828613906145868933848362254144200596023396347858673540324432215726555934614047710175885035397138135908481268426861609486120935778681523494140818620661790476227944806268419593301655554781802704574276025750929494935077117894271207134246938507587778423354319355709238500446215482778068619365152034183404755033669204979995283082746115765391620654041622418388554302204787675132560557400075805897342524499781437160099563103258581414030871074742017599309445774711081815544493696354536735493776716793604314310416689670093099590441646732820620289701714383277774159534446797416038520675371875139683194658784504530126816630938507303618099204094280063782181590442738394888943155839104245377057611316914366181784144912601941349189622425945847251371406099025777007862163043076996858393200524921460586226121196268542716417997731352583925011472615360885922724625135568905190398839925681464718721415330719017315137842600465240677296794468637443959970667703191463355603957107851296251286920342118500452998110188935829648365113985290123326782589588946499483590237409948061646960105427757780422338688201784883735446433261883302680281285130812671289549596246585361833845216569326304617457056049061380625310217523017741152761333877122795104946508629859660483947361911540521087680638569508849700651375515641115646014009325688404424765625600811081035622885262788889400128090446906272743503172943265188430724540452164583857198293830777589686253309437846443771718788212677242739670392446943787299944136430802922735783352471028465002725047064837803596161798946723355053131159913778284610453459383722284587909116739190791820369291774938078076121508909714169475675511887358602133079114280446229329993910377301487430529807102399039066917855357557052452479690017709288847272033184511549232615005280076510050527704739819964540937493081006664796458195151918965460113257128147072665320232610580339734511435229959202227593876060717144296164808367354671747422274151193177848517953524439908972389317867857692628985588083210009551966992917910768778601927940459454676156795034681261071551388438382482389064786958253334112332318093497713303953175773263761880820789837800766155213086141960946504177886273440148143254174214659348754978823285850135823811251172701426147308589606394642730243775712596165010550959080540509967568411224291374047579145011496579446879531052708219370851359492597042165910151363029752398387466409701403881104509952728774399234803781397525095277979030417495781334939464153391962930795592519688988882584209053100745581654066808203207658118537610603114465564623441973572493037027238349112897018109851852417843718148817625078287041362748861702283367947519421579290253572165327766934430489669937455733685196260608400370952996190738637489172242831590105788839032663356032400690327440919347911510334311906859885134617922551135072926268226422140927011739759026654971351175673904031011002435821768010629937281126801675245643657012122405315032811923480695123084597704192427732788806684823483784110820322543609858951021067770229666471720165809472264229296759530647883876223340994819973915342988804805369005134179986860315194794817967231746724766160215559224520222834635456844433374610971890748014845473911622103517491105708118378966856814327776465998398820569043254484792036325373719301866710750540052398419336210695597900885877257600916862916484740389129311254762575492061792795155715341885201704774091783114451824253775345415971936360401095262368417452626867038960491682937639554384882029110166624939212260981111084034479829582114455700094519789275660196017024581797467858460184263731182810229355368646197999083716908887553842252694961959441409611436459121704492702618521458756008838179492470856271050539197712558399713070690531656752901302340346759073714369371576261772944154608883882609161717804511027804504263415042364329749311506683538702754425920122557884726421929306070152572488517555076823135033608157329410211452756515740847490190374455211232996194549380118873185807237082400030231188146960956137223983433151026448093829887908640158809663537159848849078701343830849428285400748843435457065907468950681845015485682272988470231483740504961477706602260295666095786207217443929053400987080546572399733755739678239404327809955960489070996695110496267128364695038565544329745479778772449025358106458058952934622384546669935998329089860583691692297101780589405029912345395286786295460184651587722901692178034448270021507999403170809920302225131052927037006727470193541683431014917143141577401717143388961989249889581433117637998980206389120058411852980258714939975797144624053407839869457918446253363415818774029132013958015790026409695372036623500901189103642461423980293340755701001902141918102574841043602870387318132500272713131523585439418477287331563985901037978277726105424671767271181650327304300513892953771984329553831103007147019318598831595769239643086932816654340168334335988701350554683496254799381693353893254923926106083304554459379249464476808247116316750448225231489207596431042219985543198629426297391322517659916398704535425995491563268604448457286569579072104949051310193365590831095407965925802484347999698116395379444691093632002879232272035328715855622120671482686378987713425838610508507609557193053503918573627447907936249521389055621863192811681543564361586060477935644249393495972218251785861172734538948827448566315302971403369264422130911934964260858309480133396522307344316680645553861437990107210659813934974949754959952953816044596511420524361981950932797248254927782592881875684645748422783411533608068796007465775236892902457590069699452297373475986085349850643171279974535060013071086275106980019643738291518560577774369462640126418540400356217845874594563467976164045879128542918936811743176762934225229483834196045489885572154113067977257533473708055006898302278648524276126428307076873129596088304672691315038138328873669488129180114083366163322187842093359879649887891786986974740740872183001622831994482546899776143938210122769438133830767195678153538680387775875484819499890506486210003797575664489947018649025433592469648093748059795797601848715871609424828118841408929101285370638410644009446524110520612156566011703374513365202296234633627179680193476961211444722572136212160406252967568369155610784947092806638732535651354537503814186620828875374177891064937043755712651871810954334977835879687695763884619709965961970154768370732796148436547554329678206505578465770285779218610213355898146378246758237572556349833787862092659332182684408067846440626434090506208119550874880187434484242406819619965575371763262300609415358691721399667963406293451521998412588073282967270629261991240065164813028474961845352756228801428776866934127859275664503856166465677442411025458014744026585800560159224622536987883829564959025201728409062478273656611673099733434152542828460894253086973575878269034267024134993394804589585211942155104781869460127320318119749796799651557239962399318180235187301110885340499192793439276988470057120099789933501374894887852953199109798893783150322386805390357403318346752994594622566979829855762451398702594864252996655656212973226650959080637538531088740597960760612288250944837185025558539739863536595924472912136008543124328442625616165316259833693571823455435260351333792919331127045474542295200591465451008731695166242186768571399978892591720081418045482983407535731320926793030269702925487159616582406577452815257533674542176916467458180131922882954609770616851999989369023242064702040297359720777193038418162725454148701919330368712215995564471416698864892001211644834923420325045883230718942013927125929701147859649814537548065164349261421077676623106151420870336094521562151094549574465505574526107034582057969284780817513415543902666994957316529739799648543203604898697422824690496182599635739098705277688068479419893370234847514380619859178129763183521049200564321184683796159429817320691661624286460806623545378827011187800459560183688873391191543267287478560536921811280392605431781295684038126299855348953387748443153893159227046421456844317032936030784265634205353183786748536176779857405906450407071452881622196118437038905545812647981778984918014156912886173665287608589047254631298277256186675660575452739756767392668525075520158375033373602721166912093900682601609099555562306186294334313380966161042129120784520311698175540007857578386388170648129749393985000398707508686225357320731085383580270351454511837767514257663640856792264701541038042681608635761243362204949668424536483387349281678749857943361515308862978038041411995399663192038119261016497162337706920098274027651298646223145584245579399792561418302814313046077983952874365129580127716148816585187070236318211512934395427497610158886165867054852090910400108982176823331060228903354149573682355518204318502580305192059604269625768077226119283782812957019091831740210867519413438230452313593278413447634864615523217561060226332890322482802896544084351896672062614857426185341850098384350921602096831694573693615627952811702206902389942902644281650080355592768660047153630052318769773755288895931077007479011694155925219767410115889253579667102479016756702137236940525882899044986711222735400824167979677499385473557905473895393924926184537414963337589519559187386421878979131133771698625266604297882137751407182971452841671420849431062834881375853657685884704733505409441967343232921763915904619473938368162780340263328567466193575296171006244951410383296484667008276865330282042031367241733418883516035735152586748134695540598781693733610206601172872680504699726899461463227917991842033130796103869685993067379918070302451110489426093481217526922587048139787447882757968622153112873004464615667597911218264749438839389274843390621777097048013735870833030733244438904602320183804982675312486992906785377655713306828424175976691215149159263369459687349715970385448223230188443816378514704518985130952982298051168835522727801602199620551302223278645801579037198379893332621247481422311081537250966016119363945273521075119190055883410347682237265459334390842510868399133130529325619732493342797300831597561246876694006471205220865021737282278164515675365952269247560192206866148690419790690953317294438519717563403969674291390088119299319143194606066848516197668855717539553779159322103299062987644084533707392122794812636678813567367100179736496415458396871532283760781519537249131556872542408569523636097437986213221289380382186056495451254623912703233584311164073333956650176432692787861191725618970786844847396323551543088524860641537711138148158821177262586486993500496279597053907980224945490931729618392950711396522465304702469073948987234671565267428597397551370070415818222411489760842707034526616688542792072001120902092266996601652984132798960299867975837801417202767860604806511499753835291276548133341694170921693979984882083810183039072220706730622516678874593654040292921856047110709841129058211015694097326303046195070323447612249162745331588297374590198182957798483891215035710891108282183691962284141911924984016676431291126936368026618143879451711444039472696002452968661429629980803217927493955082400644891974260556314718069056010781692741033216124575201223285792072512382288138541624688141156348331949970029495747450977826739991560886980428517316573826498994933196795906187126341982562418548044754953136766476976405344775317120700536457509798277777993651325940271488854484088731066361141320751088948038352201206672012806577273171788489953260961090850379475345641796534257842060082174225243488401478735112174952737117590290058913672077916492663047354833112378152891317886981502722724528973821684729720967229303745719912251277382068782806096679484970766918598982286717597555471834726330501636287717520741337266907208708725367624848585555260064229165580247531328399505937382029108314569872848584838609924837823735597758674410211184739387297474712385552032997584944705266204147080312483076378953461772517620146491784192993791909884839369769366712641018602008295213856669648778945110640782618988499941612078467249826859933189600879189928059846522611112243521167758388918308649323057423206313485414010524370311513497723413066950891507557465429886992853102935364845348292820061331408495525516538226303759059980130745510908848705395494036657984093099084624123357926711110514765779499859846861721698519141582839990270790176797274976587881919411345299416792587838376228128888581303912159203365289654430279877355712603572927185253128772002777642163896999513773477287392987458905827676906951808480210984683749586506452710761230969822747877803975472289768502052279987302082350210165493070383879074847220697523070676500467699824934382993973564945407580327821283913591107715703756491590315543483079401311548763529724363216431849184022167636434292611816964525219376590708966592445794038157190119552836378768010036321199291834759448801628421446005713405235727655877418343476950633066223522024495995707229937606255363856537931238367086300964551431172915440999225053795848025418797970994886850883215029909830205930340976870328697004601073504301375839360692953792616457346057503657564911394878561002896916639698531432324203063464373051208267166088020986465376797734379619627525673324011314366395464909214771093645435822605203637044900265230776487807063169524917754984402804074103047469035515356558142864432707008837086446322180488798254380290252275705706816731907633040820302459198667658953458973146900747513082019959834552321333805164863883835701704673741950258358681270870422473826415373946772529477491131252238513364369984482809626781022107738956855762133902998259427567477285248562700218545676603265555606003290394245477456962955448759798475153120097828272275946918980879324948178560556538401108673909474654029534627843605485772910038745019807658472925643032359147361314799285291339619436218002487767236847079223004293328304697720581123154557244813356122872069950064950408274853611109371116322389976192669048951429833177933848095409816267962073591754262205847687949752155673069523207119111573379691764749220042265171680157421312918424136567080053985541403505599533249756121726942689526830743656248595345157608608174820690081915591439114350994290382345349003246975919056219169730755417094048147977841043222362388714837178884110215109122387188546408584249054044002448245443087518990478697360983794438867834637653136710652378894306764161532678759234315248389014323010658624417357570383397292823803171449226150681826273556513047594777685400198146456327383427899949402796490940336442359956851621299942547731820936122429502041490656220847129291900433022774470716581772335903516837930815564951393812198335486488691347701122358708022528185515515974431267438865147002722210397383803111836496137179700173757028015084302044704331052638176832819777731815318498382939115960663407799632465828425007959548781261226410831910248382121621425826021078943026239553151828376889469254313503041439538561261584902874295633946914486537585375941158019536888810355197235415295300794409500487117279753933364958125972154266457223032345218084656577773033729534840631096280093603385028773801103108092248486228245230340452849229072083540142602537661813028592024407807052174685682265186461909000648954562034110708300524456480286640077328434228638832096976235561011771227073720423023196874888794300586823876500479218356445877226269713492188288649710456202901157481918237879664494005137397645937152646482482790545149495986671727131609519259628504625979343362088087321385820504562547425282525860606739796605943616851498954649656166598448454567278952598329795785861757505378006668549659979376040982120932163053347568007001833846973961814075721682171819006154566107714413261851500504230922210697932696170986994629663376321270502364040945731683664129416002547578137005934197601345188888155881443703641540074078243985648158180963381491755020509281653382308240870851692283571448627719315399790640307217524381772612911134807458427040504302599040034156466754457560126901305201631933494642105482594797815721086467404663107746983690561032833410786070930178454294225835795304318922704282367384774128244990059248523240382757610434164632099017286750505991798234392876158998841694137057023604469316096704698336004067873164397731125477917724744661205032899284922434453845227985598684355472682414810950041523557472683699042952159560104805855916742410232319401362812236896375006774908364385714757029884115840941403955622943660044786693583829863915086424968947449638582078294755451793016024923932158678264495819157087314043119242780454757757853483094901179522823217023559547590528982698790126412946163803246673908964744498661080510766635283076546997374660482186319676893468577282427793078215574825312073925557397116915435533063053775758305948092379475924459936267048486019450627805331816573322488108732116095873885401687531487072994053275021646093301090429470711679489292093199752188426389950659783528056345737664174931630610209017022223801570026168388119239422702316837674336020729295036362462991407071400012862283113053601709443339392745133627648767362895738998823461615095974752592466419021372012185123320511243039725038561268573449126623098668931563871861826558388462543768811363534873320127423981067434217543935410700042780579329089333612573483673409835732544292552234206287186431024333469439053018142096153221214352767660001955190900286540554065955431230630876109821889020987728980619441542400922952243387215451089640429619655909672658970564873514879936932371732626055316633180138191185667272260784071547986347455715802610757432799696192270501148826532524031720626874186880485276761423549143339227390261621656764350355028117459160234549687229496372076156654219081514138300843439086081157960316700513600492872624701100896496654640514317286972454513744751274474121318656546437405167737365993264630483198344144954065474894941501222696835115975810010031353810794117331391721810803222084653506957103521731349001428044674288401506706103798115027768038219597860437386032443061907532475671288853714019743629999567149685351191996623719581400348625019211595007227118549835906385871534491088409453514011068021184395178795394531454210511710923900134704054622413419774069947928543740836535068994014178269452339592114595787070700635332069257403308067883218201871542584804486618300129582967185346881386120668698589704287095276591701943865944972232304267615175102412794489148437154079333155295168057477528493587763306016407130559201983846025820834613919375169803274302507106184638701429160577488731237066441553001129670539972764650603166010779007265394077689645566239278242079238126966351720442241841192089153211552405492729624033406697626724300532674927421723516844774601864563816979254357730258312417951280421206550583640928732899722754299435276144295885874870322063324531545331997234233984184079699342114724278474497492886371799713753669334482742146581163178202486279627211099806512663139143913047871457022937571186867909629085832059467660835743087071555327073267032845017670131354027237493832220511504893399804980602890298940286427662614120323186939078837789215812846393414949788790834059907280531791559174078024262084352282114949812574050493763148423911747769942755116031908569260998584584811935195153813515430290883854715818112620202320956216999236195096071783157058783314666436801243258243458077651498835907382598043098355900793011677044442074606356225022505754397497566091167295852341231137309840965014586186501456046571949093103001037857029102617389064089974103517885766409451782917764668598857175471733211800091236228418602798054528760751552419838312936445672218243066146532351012606725291241649442739824302306118700189718051795396741646508924466269134840704028501135940401743548730937279175215822920913218001461430992892942500477014987324637573030423017126424692531984107200199921097289768521523272977075776440068530159507288371942424118256164378597703917853133567637593301949632959457717471140657309912337893867217187753993295157678841437658870903096305465335483272203882540790232858506448617492030343840973318123062882835422006457598832658701670325988186196807191789023930080348207639876916994648389208262339247486676280366678315795824524461467588494852870949824408000523330764215936692369613661842099543779279036943740647183524165554052592320343681099311084293825798752652049971335701152951866815241367434763014692731084186015480432601684899224946598035212710521078250853570146413178095522327463324370570203983946086435611119453324912610831092306333399222391700264895190813067380255916054930454351698625371694663679050894754560374668101400304606543487211815488843288909859754497254885010774201825360104488688507488372259695108085527675734431454377561076048784666602340604704409229214682544713964259335765279943205111439379666026345588080113297659115761350504680908452619691941629285318659990262302706052932884461262846531914658916266212700842337997762255970341128938599065169848522146152673487896654205448534793730251600925099870863927837652568150437155844116835203361859612997641334658413400780610998374186275702395622744152041647779251556378494153033622952276167953221094226760637651678376005764137113085621874434954931830507431637118989099220185502527970854974680254917572494440507578886815563254721842023935715690854268230493472087199249850693491074538690674521689884550709054946041692774431198760433929230152690249623406862862227219107679927466930505603175849306609950479550013990380575640606274158754285131628986524614434270229562253691132227835778437854882800938729921583592490297795520706331495966462236826018397080661130260921147812610277246095917719972339817567031844019491560312730470394267794665125228613178854557428658695594774205719352463142761143809670534547760578707124257611091881917567411368506720958671985574370531135759697157321301751859674476770231442100283630451249869945400950196293586370847361427488470622773522396046447958164847606549871343637551573260197525992875112697430567359313115580559004843948743970662071326477163941767920392992464254586367836861728351621584996642316159047393172897445911592071870758177044892640660184527133458528155322129700927612790781112126861699797156990522315679337359564829603015271819178443767420760847324700511353363670803873788609417404096987900865999744324278550209699424191516090118740142991815781604259740188097763541272204390464529129002832816158544753637611357315677516118642927781710537384710229919504977823771146867755674350331610721939600917211864870937158680076253883578037519101236342167534098176274864112675768173648869552866907355372924249479493064513164862962518980819573429570131780356852714140648288092911325674233173206730981389358280809455018531689401100132050466765599388169794557232945932613383211051359442299207046906261648148761845409333739391258886551709104820127812235220888437095262368839841538595002709186795851921908133098275972892190996277309235151374723030416925631898576018554648384710548639370115048707645368378127945536187450487560677803061466004608523596876656868008044777843816827104463804285525803056767308982553501890827179431408533948738000080935146961786141368157031726434918721047875942304129263056497582650797416023218452482304291550012176351887111118939679073496151706962359801544361644410729478678686961223720464226911117847650908077932717466463039438369399341602334253192534744507805290514394094673816351883571126915112476405397314838028231763909642141633956056070143830324085146221853375481604936936007868360158271811950100216627880710646922182771502631063898579641734286867697229292241610990215946663626806302290500419561254921099445949568881330230515946620247957104399711315528949867599277565747027318746024823894153764110378705822128085747341975631109109412183511139850813862167641085394167444463394181078028869678381900320878351222208471954631066496958253787876787956437776524148422162397563000606640367357462447537412277635852186596582799569235617851684243209520790460622124642072444171164423769003637608938217972235476572781855795785964305493753494006799985734658787705917733409401914651883455632849600564277861207622720536138021347813113781451820313021057125848521197234855836129503550278589851351874670475025260476247339474244197235246379730549776426095145283440178033987936009945865018206767851837271371167114048612326657380049062749664684074697740099156837036280257348665549124679161881333584629687573059575063662138795324543866147471867270645035452726149757262355311614952382684046349112683211892941927659252761363872845969555451257924119231199180514548027676115608718149109133997096998353112577252471578506847010322469932322051199477705704643117062820040337037770677031392451499316743682263433010988663308623308797439061419905479841803608473082957131684295547651970869950847843512526848417926673311546332211679897611357039806574897246293316905218303082360967638739776804053802250412526969078747671177105971812013440306675741616551499474336959873764335562214894870362178549684396739538899056265857974011126409227701288917229226673604747802121908321352932836610352355299810756893689264695399984574497816425023028413222440601880675130628421126660053738482489149698354578068282252102535878266595674543032774138828004809078302741736957778545868252768347330260202243685954150854414865324960944921488598201631887304166945391385044952240844052431599481092749315162465027286324788937242022275356131526659670427605946250343361800445621984835188991078091953318631588325093675946496907827638589192171383149095665258700356926477957489846035218496434588926662681936436120903632363227710235324027044377684780238124995702527762403099724382216372585200070215791901252822166968419610521145811363268145331270721495260178184848683077706118234883985213749090580900857123155598423017629802395586025966666348881766502909397855962345076182496760183641467567741430242087525084625875920889943391737455008863079064863876248324641365610383143150259576488793787666482660951042347989177456122516365703271073631891409945086441602039832361798017427579041715730413123985062672242965305289440231611977301145705035919788499448202283709543965940495722052399304370731742267168842027910255868711174648031363033098902617281284880046967222390608009709438961812039066079203795103018019175695844034695996628024595101665429188776558382740336169806905048522256615596449180621789681993092707274217168037268316774430289928735947959171249833701566553736816445172671951169907918656448923631725556995652577777948898424802866030894589633962888855455042023984460408243276674604495632366356973862187601384296633884797222575461612839261420393320671515084219969219436477531002425154786385341994065837159425582528301981579931658204152485025259766610558275417471891017253673978304975281393153420693988381761797742923200350645095437534044059120768439551823595121153345591608643525445805710064595634641134197929525358004623292065361688654657546017795169432417111731791441633755051669032692176661804063740635933076434122659496168466302127191842259242292133772824747115769355575707600174951305539232684064352694130377244567600967289821717373424774775625054587181122501315045634338046434002596694905486060678178847573205729396721177661317315539566894011972059833536650493881841836763196190128283388678702702716175352598020222687288127576681785080270036893936197388960472802818965237549780191907740785402990558156640700033970945373632595583619263476143982927727686226617776833366042271469272611256699045163246123967351241966176951683649500059335389793339254976535559550081478395944126310540794690498170965856441450460259226088102249716053079646616579764345357218470497820839135128573520913533142421957673581728410904827107581578978984288317687543962477783258878417036493559591670369522121522422480795265291970087491680848982488860033947225984829773407285751768446288357768516770966897413885746503398589908427018572975891208025294077873933083616052598436772498159198321851735439019201908229335266833031192633174740696638197952078406195389327348766974706282450478799802299888126851730370453171791349067892711402878138055032808178541324197597010090073400268837005861567091813032052371557562750873181383567519652615570071311883016501407860559588646940399391544004727843523667464951157650496243468784859551403752126141669371087927348487656878743834338765582081771565671902725270264667480964146617957562848779282818953156011036796607325247201322159912233150390356762619298105288773378389934453671074680635726110375362046209767423926160480960480676524566023338026239823357121303857630501198111607922576871985552348967127506562680458566530763194488242996230758200767243020150584617427795788110461586073200769262292530594346950176482959628302958166733592819181080784830787564300817940281347948776496399795318353243904512774154508930415942829186084817162662956010364522822586124567060904326813411213553467512751460892534879256089119227658757270306462810236325668191760940313706710829418153997164115778310178016496699614745783921832406027840243443522080928161282331416281548248976494852482292930525304519502554310905998092279836768043749888596988537085774060545242624842077251616751025113489914658997049991678462508838448820550623780893711068299966497055486216383330924072910436661028206276757795009698302417070858040563102789710131371220487445489039208815164409705554052773188992127295993452734922833391371879793556791423458125379138044679490998054840032508544475776212427044428492925327014443200158746754898252066576815552403098241480603387432727701118738365233504917140162468958256093503253648294907751232511037366250366835079901370658953467942035117077401964249224710348375571084226748726339875324759579029347105953655005289868253330711080799779093284210356308352321497050918289508009305540771306892155381036790350045148258235584531530291282339672381372742615505308651939774067445364327547464750729465293202172653310315434713956233851008586590170171520860114113132328041707448931274812073445885646669680672243282172804819911339016699159378506622768087077619230100039950445375852240820113234740099951370720324660228997953126808977816538728989249248978271436636918445757760591322740085475702078440569062794087008664045258240164907661725371725285992893564943436900898961257942784601119676000590627257782097848316231938259934059185303507377070955255021452956820747850593581565929979446937321706780231550088900536888756758569428642668036126268217946175621468042603888873783997155270965694420292162811487346385794709247708207938893222867920198376098268656791261458026963706944203204997792285506668847144777852365358436253018336227520401947735062288107351708490415485376699295304222412509021319902245102670134179538515285997562645049845240690387572498618466576836292783334226148365868698119152710292872790950825517811864028478650709289993210458418319477680795620552625641092550993959072646168580859145434941109712892694357635956591363650177422718508869339411170093920122116997308284569774314557082360015912482639752407555034104502143881899423002724208509250292012814321664255267268467059061878617163940351956680066340815825255625490124566003167882500001500361312681463895443986286682821755208493842513445200638092048100991243265979520708915195158786084907731660838737333289392538070781895390269325830101217926947464657039206515081319125227090891017551421987380792434449239956284588634333490200171522763663647027364989179637808460520394866092783870839852775799062886690125107402468878459686566983304105420812745683440188483397958845465702956171234893227196906697889410381394809979038756099301987896015824534502171855006020504590025396990399809351368590281652400409835896502953802553460913303031492451642770972523263420037595993413980033880831894978153627175919035447529301539950753670799005654967519053076375282152175335197121836097980348513926352810115229988150698548208624516430712034815244680353263304073404543728687424223107054131227540963502037193085500503914764545670200432380522968472251111014116948390232693926270187586890533546923434222020987507709543442722433908538571242477066771767141246433110255549068225362603905745554973965790004643498028556458135151290965803957918759454077765648683074688266912836060323340314589471937710291608966004618402344958354534573513519828116725911768510704874628606512610296307634403469829442171628570358466422899986631365028115779906769088457579419690986825951147798037058273809898469868804296184606469254172435031617412778355242329093996852045059009674918511668204018696110986257162777295679442579402068183158300997445312867973491601404421659911654734148475232208874310974665709390305041401609255888747110994527701015630585351632194355437334350158325157744053691090213936457703902809169581179174224852055836482521215724768679634374577791416800991861525498154130208858175892488673761301840596023090631723030341638139609963619995966082846464665110667372044014049511697454139423413513269806755622031701745538007520040903129065288115615882635210508435461333722987488106044075391851579198075463843392901416952391657034694058890743554612038282262170819522228139212175268999768573220302788707617212192163445339804741050652780243224914131326575567540371504549688940240652766207390253825650181970552617091686139580534312617796749577367832450551504946688383281837692778947470592792197705596010637855023403642728666869736242071517683019414991430958833144600205600350946105243332493703957931894977179176756231681150832344127003107485080343930184748891245449949822604967140527048276730529738592086981892496489949908046630878135294174718655911527329082491534321067667617468675894783714990406951669761021063810858522142151170340740145506880233978808357203801888846173714026605611547571073984364974361795036062521968366225642183141156567545308490425524400005881255824230858829327364064465677078041410571088948247938101808261511833894737108968937451131422225819512902452246817507274524224666931316495801275002239223988167695888400191663351534552776980940068520999700582487015799932588554362013824916218000332399290295432972667430030373734634641590450654183558604631786059455021407503880820940312767726340632057829019935553037368996288278319228150618273284665268489676720652009821813954429437863553566825920666533416802174622304342230239307452652635242774872053114218094276962611219665019102418682699244705079888014259675698433883348480415320451607221644833575530786392377084411965711666347860814536718350399347709511298282624262753114249959188996768335340105631468735698996715415769556880081376214492445595848473915855578041989520287723505515313847635796557691659779384478878565539624441974306768279462897586680868571098980750945333363950686185360154072674266959336905720272277096911393456162011995965895114379452999017623938417702262868901376458795518449987928723252538366982435858642517802445427541588669504623222712748064624556739124821701043880077142973001864643273658853238435416930118326393221541510489850041952737367610118637700730953041058319183975572430495044420524752848829818756910073103480439653820897920456065713139890271416630575448483158068094947794355520676495837939667231193489369310205996340683005319347701413683281756156486724196599322352942212500704065644146005033527219312289189042347958486976575137617648594444240372524551673755322335332772889889941431516795417023547008089149454171035909812290271795181022615299351252821948658643761408512763829993190860524853463579832656753885949376799590452086025065322001969757000753764827042592720869214368239964020129679536675015769404900979953008303878706287509363347537407882504561912792303245404181241882206976918115934935527974298350909100400993250195244147086060209864037549043223015749133296637773769030527292389659501209327539291713182164887906345477532323219001802990159848634912216176015844558306230699125759557849098393362339493790541718032854564724479970623856241072081666335919769932994978635545770383356099394999971577035900070815464408982250139698725586031367407098708199306522727601471878478912567991516525818407669871834310469988032150231841191945521902254243411935210253810074998565479510311770432035019716873871896750687739561042147329901761434132211033073213035929741679080596569940745645195270523833649289471767148198763799618938037876199311961386141382831713874182288053333898176431489196526095830100237751957246145237571909618209969161633027608331074956127677666077491702940611048499182902018956856618439085228546421992788473175699315115256575443451777379070174748051556579286128772640545752597860795766340404878433419360636175009450758325546791784194566061439414240396680586880969322183926070277363319410209599646317893240656607917498211772216444144750003040452705515081974164282049344001598839393366438910776314371840228222944250197857607572557308812974757586030608781892385574730535543067517985775484125989050289413174608781271260595709665886042534201029175152420970273089881276735453768247612098463852242144005795065929444358067854395292615571450863679166207960870929949982332298272119750404576440312498800863685969542982887070081181647167597803407417631591173670312142186956923761704197563365965781862829227139039793522783830963294843749183415054801937821230792618443172222946275784327941149269064169825074975553574245103367301904303601056425237293293063879437484523366535827150911629039847098287615815429627612060402274829121868968774055708112216954348890865722083195748596343797919961426078771937267624069576005572865425438692479487947333257146463207096361085447321978330128070330696169585537694011212142989639717705479858151030804649344618596926493561734223155550147760706321836166976603529915285066199670308813300189074903662610975952343274287711488922281991971324229498061727614422072115485266114620597509319763021899448215133506077607168850949045488715087888051509888465021661292536039028974434406060544072919599563354502981006654537187228438598170926818784955705570808545810529230676638202729403278069414251561169699163422962110219383943112390553765670840885073520513552766834074108548395341271261777365825125742099311615477062657357720784409025493343232255829919853239179207382538590247609111414457740238296501817474789983600681298769619980360224488051134773793238598948609838459892617548782676902351080769753423383554020709241982291013133693698980667557122270981141804490889860456093257627721951840545969136954233388403517333193560091324843303084303156842926632958283263379687500738552288888040503210343092930346643536579818083129352839039936058748492975980774056532757226695062983756608673354983177364380944445131731643607060758796788656605701028783907715778479594638892807351431516403514883155097986333334841521818887965169990240442155774238000556270987925500332368483783294891998254027601181619033098661333082598869691645204510485863068446166564598467424114001306133578222777568430690440544637701693470669827908340210051646117918095269118130677652605595608167803042253430874513141311262983244312936205626930592138992218190530072780041467755230133693787808792825943154605915876743539579082920164051629992500485648898878145189823473996278397833321452654539275290864866051310913141380198753672558421695912133300453696622972292891691441929427237674015477335301673227663420384524822219895990788882404813728000455723207374393131093476600617070933701105367542151228593904059749157178464352750768488247416691123527444358721483770383752856835108341359535461029482685899507321849365931049582083008923813787403384745878147633067733755695675548371172454550823485737752269482408659977893497203448699690264764290234317395812898904503271403145134480365579157013532099458698921637203610872566074974329041870920699471607378332810256152378871125039499721247799833884058161810708208345605597485490239465370388634759118202471744683836460412607433773732588061347197498224949468532796337649382879544297744767901156636040979494729114865451214060045620913613026053793261060152230740428125697978743972780791428337839089799212486422856128346042477095378618848924639442256783736626025544762392475429967669244768958210361341143478803253299756320719954619875321365875444849540097652598281853147480699667913102006268944205113341835708471600537936385226641233372084794408690621432386383150537575106812050488344433034058353142886241119683647116718752975392648488504841315644004235374253049752262367371156179855263429680784284188692186570230059459649059553697380627697083526234660388389668040312623139186255029675231406193426646782981665944789772631662804837994587686849286875871869439475865500556826651042616603453288497518964689163354084894470443988190444647349926536565419580268022759669683644962071962277104507548075557570479070020775491155966900207174693505954324738040956094085831926999648180084223916530343676785350676391876935746937784422302006572951768560766158317955210495032267038702801648246246435077104267965397275131229985529759199642414013424845542640692802256270276625625908490109725825633890996807233485625078773972324987474066036894814859326285436072299700549470300698820118774441634036075604232144772359552165694661888442447601434879293276829187009697506418501865838047899609153658500721786605101926212040819405800759197760218420426002346901061233694746578682234641921747288363774578947880290410295602756194410552619786776978928518542114702064229986620240810242356006959187130579430718735571485537712407244544545553819515158499592198097802862933383315959367912239959884322653733241032393096345376035216079820986348936278702758474404242185819652341254260721897625701730712282346679285078550018139329771539056163512694585319901096046507702612735985702437213896283070637334585576515045318753008124355144955743216465474284988278360825654054006484386877058520053410747067936754041217762919109759380210635102465107398154918959658107177550715875420344177387508084296875537279922435714778290210467065092817541887009341792513239358786598493714435300646406822750146507984772551433424908847781779916694676111855238639814592979905507876815455470770930213429346783355947782069357589177884496561882957767908931917449768571048457959414304551488919902598565591726881216366155438868932266940082022400756535380805250767516587605617528449447567971133368481002868471432082745743121266591761775942630224560164598160971120486219738623979028943299638943219769481124021324575666510817031781627584533112600203306437342267456695888419149663910769087371531943081131872352450450421421714555622248067746046820769646304049319316637813706883692140272714044833528406534549355036238288653021662751966837692247857945743118052077679495509383990967012716760970632042485361361733324644183126166067244907860208676329559928749983510874769293171354849314150917347102543832700015958012148605417271789099276620915371444623758980981556104358026597586844084876453381724904760375969468181468942490181014279971371131983031817346564680610524546092921048904833587879074005819284598515240994497380210894312039234321871276536058749209990260244547087223861723586945468024861469344082394276951496566698500387873250232769469719342486811214709488130519896527974122501176281893483449340081179185187975609482681178056756402711496800888520726153945383464405978480635658839530315231827130114741401068721905054891514404809572169880720061258393255634220794500109639080078957154469660053076818567772591162494168481371456064615281852282747600395087566284089574484047711480694172901733222503198822199165502692737497777028982413550249574295324075794277579882790931700827535951120477431234871187362868926865214348466610447585828294621151008851222963427916146720397619969422947328387814607750881181749932174834781323143254960874271504863076710189916009968694304809990700046037235667732852170105028751519471362583149453251252038866807180145134666511666755214713599628565602755023945793574047645925832228375072102065127072278750195629327732016654082110550455946686062171112802825948599382225776231580943648967161100333905889932437947205510667007128462935870413663617680549570759960707702500719861041014118230971807070169430598565755240730692650429425528660883231542245832961890385205651979218320583541614696665358394562905854982992660283048813442173137684878033668901453673927106485157690001428372287657252229796330179469929804380186851109421604873188247029012651234980801386541512577519215645514062456159777555602382730888591816068272260721737606291275918693032111217147035223977938246504207308331794828681435269292715716131347268638319271902345813233973944276048493274802170136848178356356195023137753211889677812018628886089756783351540937819867695913623383760641479201116315564631298776161016987645420511303026308563198020719014616517602875513391847277315634694569840195640304589650289791411577098363537153154623280858455525900869773830779194403420271862488614582476416640497254097643786479098543086339116060225629301643915311432681298262261571128501197905834275153698214092984358902460389903133509418357831330460012483105839693652432475822694335395483791335057430249116400249417499763686364399940636335169559487463184651303429802635278070937276571968429331380669331806092986350796416220134295702163149034196009613411977092614101565675252652314083296027018875268421376448806776241270498978489630946446412442792698762435729679248747274807046060027758290689748429377709462566117454078244953320856610113854174220600971530989559317884958119398021345938533769329574886203096573209382675685687262983060782753206140705607648910757913003555748189545837577374878993930067844476440421547181225412465726775958934919000606366694395950097379220495315978032704453762651773202015672520350333016978609516020517033352366587660098167343373582717179718382921804073340845032942690550720052925881278691192497702512896296080837531906466941150864373873641435486232861064049956479668964322033361955974184982953671441009957182044155462812980609215873618597697230539328694081968358666299813404752477098795429559673386495408016101355642062492019680513772476135656336155525703181473508096337745340811425598806572672289955470945946543710173193005472201933841425594902051358538778033629115029383794357091836848844418540303982963801032148537842700268079546044020827230176413236591128806063091971305850009545106173734142471433687174305284102348794418585917277859949710037699969716968289908419012309276372340661431562724677730391230180218286423723973919543033189585934835592216402872026746853229240713868910072618647870502037132113678069812546119380549224839334380031816543388832882744734487346436294833845952238758225640691848201238710240171139773542495048182089483938809217590208261577901725919240133846540058254072402608950070976995409025973820676401620746493288812529729626656827638181187706792888376651552198898321872526942799927578996055715888019855941491882392850663926123525484143555575266213826544771549964876604412830226747201702431042962840834397278640938925806791095080824813033756698517455287719035637400893095890977580322780949611700354719650816911930328384923871655519841724768914637777853980842436636772702363585807863085010963483978070843687150493993190031799623047792751919078693849485026284242322355301514089689650845725899997492095301290605275737394690056568315040370028243559545469245507241102439761628699266332375079585419343587242580524163524980244693962603247383681628210227857156362431773715203166401351884349437453128883991729284289309018804731975714577895638784447482984187785856799178425900375077316536411106815585401295937915877995467211796874485856686137234879884520167992324476756978366308536881693660544003571552845941076840107283365475851319686745996295845624185537189520791895796682034159783054751025706037781427788600723868211600753385296623622733443558765574231695844472541774609307005353890191168904735586341472391114289319326350043315577694943703119511544475068861971805308795474637251014167605006114822611567358984063232494637265347757982659722313703194918541449678961515120183972500418507830084992422988956838705421969026008306669460508700562783825835715936234866335712986332051301951785556718338631130520512244867185184438090954635485992741471980048882420644011886658720439415180923935634992502575233979949843551435256773212095044431643274089434285912584183615807163221633704038008259948353352630070083497166463282762349067694658015680125355319111595625798481432227899246316826492018554484788968918097752325985393072081463605659482324440810128862105576499684591288596812382889384665426138453761262828164217272433431703008773874655015302438651997385256012881031912515231169454023547706840629502624062193812696791971011542337569946486935602492195593347845986274946043843407097973752082815956234192259948989841191667296288840535570855082170654859322820951233067854275782811015169944191465439823695353848700287950238221859723513741344271474023094511103739387500035138690822896839992232169155869506594648262803243074301205527568719054990911830703977416575126294388628554555583535856721354755826187381244321886306613993365979140682023367873463664199970228418064067610108864536799261677000844897945378276520234118871191576989884951564526749662685909367373251959351670491220556395574478990249648934571345792820483748017280388576325149022606686603825727337654173450945199500215412165092980885736726943297809523509781965960672118520671830864238834485826741513754653004037339315017761306538900352578424556205574269591352718974690704912157592974178776152615485210379040457695738521859238748605696010786954863096596722457003414431574422707068184526489302763658452274078850381443995781408204115276912702195939495086098750270086597870633540781394721131437504105923126278612430299230909139293236155797887227263967842916442513913819328466350872607731010950216611548269830045136556892797601659924011908882210037821196491576265341105343416354830597032717998753528416036388124453710067292297094757198564090857507368314678735748206279517675910586117665955467476706171826258124184575110628399374150298552144797132147407284119452371472278034362503945971776460346537346086359774268082672607762050312242566580473825761811371629280237830940342612507050782426944906084248676557469653302823606630466215231354567886372264550063577401884283673828436032368111467702904515850902610036043189491482594056632343757156044348172508894693174285733373415724286853146923101600358136411763120379837914407122669000015005059333768308661520226083016465948831273287665116813531832293735386360018506871045556776638879887085146784558213533242640348884741137886180105464858547153350315743845486297392741149970127340177123261821152551978833961945344872340259844584962033314251200505508154860440435886153461470964533546103914994491861145957758336887689779222970625822576696863706622163373137577649526608456138494697682849598150240905098892072443288529161977693872560977840804973879464213523383697701113332159388434266160124970182043426836597711983717076226997044116136827802221315365182059676814445901043956108627396056762228198044668528340750118219500814676252197704639908947192737556259078602542757141503222957147532388084886141348992761718892723680984025671105032227911527999437548227184914439133129037605859979899194310709970793295391655625577477253589960172588946801388436089872879254612361176738298536111779418326336571896487851208979465831649373441115425760075201678913905955296665322430937501309371455155334500469524744426424947229167086722421144615401381945871486911179211967743201717411124037113831347525236599731079249284009520624627413497086639367765019318155372640895163188584601984072340489080570630250261470371551130144868093858721525155822453124975480462631853330122821808082424740269491734942139314521512566443355345330580537008184942240325381953698183394955891389816229937386413836956874997130694721265981934089804444082654150376570813329406974621024859378343307318981526999684821175350282231145294114950997606383267434971782471351104990899684896675745237417426443228630056499745616785934513587182266494541426240550549243623925334903179644574117046713243420437324603551008969000247155397831879286444522764518548772098756594129324405579654987002156769896456414451650619327267151309750603824027666491124434548726593093708236496203598698523017927340489579006071015650870984332471614218457183964511675824702277457071182263253253227861992315184816585649104755189546956129445815213231462075818049299828318628883342354534975918145369674877692094845120498496653393935973967782310414670840190215997971216292842049519258101338522682891246013768715675900258248430472531823599998845608451168663694409176153181686053240507885558152727394190374655504958751938605805477846321088005200086617618351514482455729820084136980913916446052594641368226510266624100934529401104933116721067154530576317138444469528053852288557598797095356533312870717071841217334332417759457232018900130401452000077050175473976307389471682238488170281489190518080641186713509742817132269394694310766987755744524594502374806253816102199943285171355480291226348327007913320953369915722652986182478164104123433968341505954042083198521786189567002418016046636863310629618058722780061965093433062695357262343174438504226939240728453940032056009421814756472896389555397238614603118650782389740870125323634067322549716218714825553324368442710598260629062390970121080055631315697064329769702600510528843164793058960850739840002083921623506790036946864263383157428491673592659914034435575072014617083969067177642122664638447353596020252411835816296419640062809712012999282000138602847121708962940446716245494138495844795035002334606310045995290894735092512543148340725764746227365825277619691381132168519916617605630266480131641339224567617406238548314467060684406393822414258244055210426356599242899920934467336450456479425242234757979342277419859118829342274212464919680554966552162862717972863859621631734185018831287993558839618066472268878073942565430466776584176953988927809500275666912227962592472171426795813237976885794219032711994878795759802722737901444844390170754819143166559799129875105704364291227224815601312711331771012740295845769829792921859907851808085798801509882794056944303687097535048057719999795099424068087461823824065905910792383892328686285886208246370101854576545782228640363752013835722148682226679120269164392639160792889340171646645562850595784440910200885934596122233799547407848527733011941179963901184984627646740744540949201104983505489889944536564991059646342740253172461788481599232097018854912309828162689010039418741612906786244959511069203770672567594952216872666847044904916251769673078572327450848679624822460639871870276349985651017697572151376294090821490154146576478496941037222831157982863435350551186372716841235788043512565396642519576186047939870819568011776822115352904687000451065098738972644729203835408728995951338979901685083086370196850628143477614823010142080695754616727517764324857541434887396771089419082117874222769399800697471675601594739238839868149332678487267747525048419799465701435974451226500076955067830098163054304755795599093831129983776580951736337651422992979515964844438952815763582555363516281978518181230734713140349010971315935062769235144390750921093622521895083678229731596913104860260734955882595709131802167281094233224940305668270068116782327855149205023412463820571410303676099163596314562735645190404327117760332063228976826595587685597560369151694547596501804098965427502707445565525360732381024694595042767788042524032797407104838358379203088728878071799960013337380304145319684694450140970805387946174347780147593805421822608108543737626417507861738547700912180801827364345889824357712751489551360489344930675460871191754003897116894994099594372247448397418328703491892266815221100576078579045588667796741122049779405237564372174577353182221835803337333296167462132943131391545835547731161794496684570336617469677616497548620976144959116082607742919889817810751793252322822004261254146620317336337376582714362802118828792512759891858894474402047254509141609048131656631337145848730984591032417634667613919299362962849192122732111544816203088673973732839254322059200219097499767085885321195083943482173523221492690751809601404834910435729441471374373863061032508496667763809233554411067905508756014183518456665471352056986404891023245111107975106631164390570911056022097639996158307348254444844206183674074290592791909544241173132804314536718414760101708979528725709238231235401517233173500196994338362925619894677519279471614679943656865214811153687754343570484961563232354894389645073593296174378376044780847156071652870472035407575909802791388168786640695293146643384635500867298879229204052612613624737227904084899473257130687324314357609779114306689194947787939942435542412533731967152484704299907767992041276662740572596479629559303336324677025758654602089067787313225493443044449678774285341486042026604326878549714676928017729979187178928671692894519031364370251510875954900195499924350482980044121599768697066830144540938700067648063109823200584903565712377054875611553480440996926307773687226623323277039015618255489245696136576427162411425312871466544919713808416695830465131230160736349592587678034688948139878769541985075159236484377781760301070236378853304806816391672915833975774067546039089272363408991746926539336694544503973848594021936879941288521423255704566157274764650974859140751456589360632535816918699030332665856762971980092309994088803510141950564718161473920796732125070427694809615202573698690466917265526660759794466088357801338371873884622019078665046119950839911718232525550536949442314704336862430152926317737079092064677788612955008126590501813591900500756161483028538681829668864805133171160626571955543841267602924595047355578199918285388026228523572140546520123604680903045630831607142073209783518163898426158073851934827526317816427176933308856090858819411428684562136186688875884892141769588710286286264017456835488661250337613520734052430302538303208802245784727309466157389722951302348404637701197442717798610964943459720608227807346157298362246642940402594370526855299590417272904358320293718265297076973435464835318715588984907966325432469387179850647082382154310189891434914108875675643570980478952072690542786066425576655001456088552137586373574329602695009535688164618855814528669238326722478310629703092901702903152800702232029156567986083050342893829359002780995535125844478087667924187289018185431135920617901079641593869073252968359265604718341123302891458727565170764479664270021214639926510449863405556922108954932189015911769542341015474387392112918057751657952762048446595353641153022782978538125385437895826747639800098719297359057982215257741810722501360058893508587338567527140681795681013525007545322475457605907309549986387765544169847750455064179749838047004112314381454813644548952901886192046014796128557769076802247488581795869107086847103994350755247183164842381450848061402727826584078324481070476991874744687709851188269941940384830904155244512264233260310696809576209048659573700328240408017277472804921682062535264219078549918371309168365058727277365343746775303538571072294024283677877601277270075486950756456033055403973014293838119182936488651612841228168693896656315082750295392657744707847675018878563344527480166191450558352757680601423936033999105506693197704615969556191217679717578832454569154896645724011765959070562745453351417442246062440321174860759735741510578053624965955389914816094274997100955076340172016324223706153035677471401553081834431383558095144713361306936884481129604096420495144382423509408409064290461199246112008484987523180712475535073850286840086106108105243482390782262449558126071989293968473952527059226902783068541932627498908402480728573273260177014382764947854447244633991008369131808869903807776137033740895270808627755305869649707337503227884938861097576789785474287404105896881672434795833532901600308557435258041193970748392530560588677211144890576720076411657100957675120157740277204090825268690479537386700498501499427450123598544041446859420161451985750161203016181297177662444161331786748774083633163608794230628181158467094754420991457950921327606113620972093978805807028775321606231069754617976635274284296547794031749250586214270785754380135881188269180014442504962165691724771428774362989235806958820303218642438307756217307404499719115065832898285717761693806525447706160057749584518098938691443769575470878615818787355150134492741087061815341282742061934091310748029050136011590506443648773248472421860851951870541610390381410256024543308874036183918461944903372563687473153426332572230756291137601906200811182686206661691219971113194729678175931877254881264662537886715323235258373299474788621045070911175637459101703427236648337610819287842332230922341043657080906431286900956041709690116769762616038854859440856353259470976950933073294309932470665853316493830821084707893685142129499442330566387572106666802810668751503735909109438165844606877827186369741195126669663724096190295949565349849693644084792854916739157287314219696367276667780741691686670829048822117985318170204512568594705143987813488154869656906074222023109330611006703389098778987156064369950272151186417893065437648126761887111407933137396048222198896187946846330040007519108581369626067901929659439399356662855318560772068340998003411132495333853102039861202839016757612176306485641627843300680671961264496729394453488534800462222360164184512702486114195308586579502327546148565734840262841311397772789860148181286384604053362711043265284967426291543813806485968223599446256897735994360958467015058174450646878709919110713120796371747918505963558472188699606152036934430837374382913744028054217915005806314160408725131334248796616172147837813442771168329237392871773254369409651500687823770291619254176721794271182179130022773309020311260376296036547189933322866581925193675271806526058641931613929362489404385144110433869026283045082573221420758284677755523041790723621843181325246898487898140072334962656251849698243003132704606733201648112197892518418441804567194084338100917804306771617613815301696109523700631268804205918478671609304942881096597122762589387800573495893187225366770277563233524064189884451865286796266115010035258194618545237994409753046127804924245848834187741544334912559107769518768830519195155652147125780016862899099195587215744768698123744457655910420745968251640733870667323972062097632372394496475023966439619580983327895592564312113860079164037428175347520875368777400884319952625173521100948126739827369309908375478440477949460303040321929963068975453591762422877109255306173733640553890050850385475194083573155475263336435426408479514723382919489793987985111654061473558346406065213443697179486131899606692500719774987440275787165659546121319107371343390900226114134806410147272943547593920944535365039192034083331892262619272988246452598506461065437711264178889631390752467763085910392947317532011330223709152671994797638798949258557637025687467503700689424099322984724636464974282995120918506969466729168624664576804874553413446560756797165106334717412043733449862252163922738280983644307627259238106145050390323532114426865338859327682409418137460725928692944685169577892682327381509455562421299752642985696098534049127720002769041683543555292279093949744778894440594379007677455787451313816487137999408186578675589556343800227150061736084729832194884799471135512543164895677870171049780692956396502896058462312825330431021111168664664129047509719034211861226501280349480461496003549569015568650884926287540392550584962730423954147732141191653611078473391623735635624993352676715522103094930822212882738333518944499404416665613811396221658731669261908011397915453923457764865062383957976888077382148187702008795255373521709014030785644340030628179927409744149430011609918644210552371572795982750830916719367579980073347890011286253519535950820855625531797597149741329193824766910567672601323882740525633383840141292895146362175092440992000124692010096450451134567967142067081173190259299282858976303510546270779155145255734852449385865957842554697627933338935694797802835235239084493163994296294033997860076618623413461301429576272465660452330081512277869468126550208579171874567945526622291620937952857632666078416483238705472356557799314889798813430578250792819163377270247192542995837311076930653442775321535681927120104928796908136832108414019587641969895575648572838693908861304621325165328376392859136907031856241672803488592103927972861237701234114134121600387795749871158819995746081765325162657856683570860359877199754938588614235025760036344890448974967886477197551408512462115494601552776690339218618877080400290205390997414051818146083947344311801491923591833858307673578282726877423177701477086101133045334445591435137969710724705282943093902045086157792927186341612788192718150353028493971728510161809765417834578445322203661782846979698432181582182228639733891795859682789333074687892116770347374331830104935532510986562445701525386257266958559393164605747435886780452269167452363926910667344194986298773641968642696769286959077048861269869550282591893151743401302453640277003878753016709425580454669721961574630005649932255669679043840907090721166273185973676303711077918145399012321911527174230022577793607240817715861571877252831398079173909466443904624704889524649336137419808996825402845454442779872908889116205036212717189031767180465645710249812996554189025320544309081653940150803894830586434406345016964433815673017557345543215241405854984506131186664643074050652198157255448183653736091961703171069037808272495620508933441276404183626594145966850109365439579558351686458216642871264286394207929836491638003479901773719949256133065460360603612517483084179698669763492320418845580413921065264334078638506771984017105554045643259743144550000662290860256957082812954694992958811034976736986140348862383092063961663301538576301679328947280755172771341785398793710872728154839235768956933241273797232416293642055925436633815819407222862781825469757270253509484643174842927427953280740221369409274381468497299908670689004977939206483910479204147046944752970565798126886784484296969737474535475957311371773345768821825524352895436042243392612511256854599471789547392641918673202586242636641939096789625046579262134871187864615550304185126214912908787181838883009649351390591884679220181134864560983970592467024345191766516231657291975400914774009123025578216637676580258883676387512397479987690430855503313730410641249361476072135856414710814753982927342701603220169756849604551514319274848353974954034357643324234970082231880192048229640342953206750146219780042011338999192538300139413823211025147594335757411600675789990957221624288164562321531625800702757783828581952898732045957266609487030262244877389203710700024349801158704319722975087625710268247930990403556745644046907623991596202148616849519102514174061093041967313117500612409699341862309776630061971230291444790906130840700879760792684494943403685389536173620843645392574792024532214608602970130477253613628470585266449967929463730283378448677611435436307421618929381755069145100129030568004540111665507501484536603973143075965959054549903193405923414416018673659449757293092201937579121442477026363501916257071631155254318673849148197894624540836344444897641743111594415082403531939207325807051203105438015190255026286573151189158238427772052840133755376182391112469771154780389784214083824646752435318601028094014811384567009283393066831787376832086456938605278244203996753026551780363371851386046650287615008053322651587696729608206647875232850544388955026607053908753835976451628448684551296544268166495234099024626636940833581056548647522920564314819594367692239280608452497461194462872631156335300481467488614404669411223081919667983896553120775864422345096930064039161037446757431480897998461956360330273822913480001592651650924844165620686470097555929380054929908027699773851510270485820110108355009685403613035238438422254935402294441191417285885450596198579159809207240514466620981964060746679668088123255366397570648476765257647553607138514278976716422302979576652619464194628804064557890808764432666483787425852009815179355846779449424172085349689338855242762901651296443008109834160223765532487305662221929099698192707025393212557399762047873776866139380346569056024741174791384490062008935184835506891052434543903169410804201194983044968115930929370749198994984768404161821648402461558155004917474793758907242527547448492759795051441710365103549336266637674037028137333397642980227898910344641811178846052060428055564604361549342018065973205438060973318978062086599583172475349622153569341826755794398042362329544234986506157001920121567326868226146980039507981918335675188100025198792262730984773077742412006714016345940917079167973838456999332087039912045018291112416910474548317725847545763733205655628621264013276875923532080944520220636024435738367350649529978025687519185615231884037138197693410940717544778937704403536122429142663573153730704937424278826920468129997736431997313138459632454590543068894988546549763827654935236211752202920597208487134577514243682953771874817901761491566659647938230217342422881501221793100299184992732019374741287286428683877923657281923437896578610783954595310729781517921149165195588569173148879318965967832196309041849698193464290634272969775798322348585757412212953957149524029350340232633413938912810424652860244117684902144847048544573641257089620366782630007534675602836978645786614405861731042748677806350569556939199201423160143130739079236428510717349949945995272819150082918402793353025945702542237707745666103292875972935263413595518286221176417385437963310269053858286276806432745795278705622771804311655682081853807958059040297645404461977766678082450628240550089406734785226153950684843683907173509981099876904582946128188844358012409502469595370577618751163055632699132112435709760641077275804566013927494528190471883591473618061794807713908658243402906151085807118402637360444883586313116741730055775496459519371545210241965441988258840782476657702183857235419712619201147053728512250423640986173462296913348550140141704950021163925425956950939259939109645989858848478192820684478606019836959947167885664444517705746503098765298757952529040477283486714275169108298520285832610843247854809669320591053715896235124298840647479841138036124323212058298915112263653928896487138303799065614104882828640265627721189487364369613978694359632968634487845523609721431243197747528331206121990696878484560089649582966356757115468994956046623581914858861648521574561451102074925338803656867473071323945607069640142315355051173394497250276701119896466499781793406240743404650195580614643122712748536874967430453291432614492972368577945464244970909575139403711409745164511390234612803250653093651765513424377048610876471545434491909174867098650941991616604742935068937902627941444666011260895455554634642310830814069294172315578162612618883852651265692757571460565045934140260185254026115044503858392597459964681571843744184414489899464098943102835243263022083018387883012472004243004692983664492030310061221145392989604414056240763293125563213004538478175381897990087877160153387298739043876416466458167281749413138998827960032443054177801332874658863926427621026583592323398674768819376027711324241217086232123117184880884935504484737644567299569132271959747449625787638623793157146492094108625633393871616050444127763603262109439662447438990381796983657535967419781005869635644683116964700094780419513214041269712569020650866757249522824909959128657832291647741546662960402944336227576844729938465736799244253352190237738767957119940357483734614134560278165750704872645428937772430278572937763376317989602984515291615928110752772646956163565397933309884814566969551236634640606002061878343683940782677802065667162329410143933925394401205239278012817138624380672483648301357572629513530291060417467727475997498112022666558213083003797240754182350952171765145296866732407770465203949382315640871605267037169407690592804369147866006611235411682389617425676335231153579560297044862787199363585074981742107672537847405037691318903121158301979120383738941663948556291650796955245523698389039235821339716712301910552400885617838961104750419666218511012368503409268750344210199517455936232186145534906861449583430469185241481100438439782851680737474953708800826681756174424870876542853929048545545295999609048578054084736178973765454483796729905320382140369859196962667276698486848830166048136528840279054779433218363404738200790756262766786122772603470166554996712929246975662481332777347943689015781700078149949018667540511545592443893684353496630209384802075102638472728750278500077640792020037703369298355089328968874062350703118386257096549101484159078152630792058573245589120839411954662482572204835384863648638097248947068825368173581920126428564164326654227169416861176430966333253302480157641568379898016984892880020030335423830385243656296367580752473249529111080864925449674701191896743528124503039091451778089662747471815056183081022611331742386238229686430104445606667104742407841756202825260200105469996478964778984868909475407846317492943996934156627311777186447878089020671204850089166092299307093822151387212082225834712943549791109027827714802488410698576676923810186877820669557077794979897375558670875255157307115662266599305944773457868794631870263802327040523204467116278859208643770036141610842750504041732224494180279076963551893164527512743643944150792520120125369288915558398050057210940171075797599499561114151064121615652706705544902490576779749141361805015582076831835447856131899478622322333831589696943969047475552543616053073556306225299722406677597995932945340451835614658131221429320341621893003234922230025895460570068557766360050880660785675501707564570836540419104365001148441854143421532681497849494620455666163124766872776649694716162649782938907835071436038287212553326503262798240675723817119834030241728914372572157797316155447249454510037564020163795683393124911482579162096312056584536743508241558483949193190688076771922728619869426941502301386508958046099066032413565509184848469538288150801498527689279429829240814837714440290677555700991793669570638929191076155295673267897083127375173528220297219098972447314263687213620550207517912083706490635674051975288201204785222640801297573091190580797376382630127431639851152805244955220846105297368462862883573762423856305874041015140206853885423625045224463256136348264686506229687191622722058770973152321810026890365800363337383233217840999777201718342793251942141920169830872151956180292093212655603751990812062382430470039309453162671771724327023346008961537772248511648600402422991588632990612240333069117689946321018391776914746933424609350503542966354521189351200047069852211033917798444932088078446222872343509612486586478295278255198563093576754619018430377249144033237778462228034410701482636528948386992049494226394380647972306670735905013748087196496970313988252460639846739853138039115281086864957164096920822573738830727055478522829530006596032209380110068149604618550377713358839706309298102310048066499145896025645708353923793954861839882622207761642275143759692962960017681746176598487387467442698791304702709299806980855415285709327832864910650497480707740170796091001740419246162828188961175841444296072317970029728945421393978254672218531660862317189574828104796124784404754914082727098509641829583296666790545103316821464369532402441826508408125973154774965671695580388380737439507257964428472225982146775768167527450960182685114435124961121747861957351496108623902593671437933689088025557019755279675055727965881274128603190875610459111939331086718940483781561105575617529816681998709596193450456864121926363368646324224890658223930936615200925823648670740460097320593852354318056669731750270282199124445785217778944983941061016876837765724603626867222779181802864182709182854140631289486794244414377191354150397149307486073004345632600333500633223707113071522501877540296271819172917861076001225610260282580847429060853228998331939558082952739630954609246739709069288350946991389295349019275274316682164619517210047408524514548072683214503712967581814610354080763323644269541844653648982078301437190500647985908012665610040256855092488681072478119700456673815211646297388489585099138095938093156638830896432286381379576158041677431914340027972887247884122811967115869798605139498787984609430035838304416477010299844152074447927779572391928072925957709897826278866518467402438880211367616843059748582925201533995668615907236422707546298653101276498738060342172147390782293393432287655838415505115915746931990140919028172238946263532985778109069618603600321007030328152301574186155502350168473124946116357898884967752464531349161140771539839698632296271302213110141278332953718582762469275167175950923364782062900512078096830375923690256898771523717710092208562462040943242997296285761553552327921800235639302243636700853598051385085154910904246381194897789224411161957881607795897282977239143132328500542751876737206261865956879021799289155711084250360963515458746788387431694664731887499844454863901391984507707205198794868639894474843558287129775428429720136802821102159535187008912592999923056445666413455842554598751746209993024728051834476766365542957318763356640253667000699147282108044263061259609522581357260647305062832605415272633253220100420642904889894395800788570555624897203262190308964410435591407943264397342852352962265761088824849845564122010814274640261029119624249172121014105188675420982331520425936169269671249483728006885092821360690301891771228707189257764252418880859977432831805565975126921750368212706428056920064034023631760595696687904146716585657850148765140027911404101982204222962150013341259261491395124906195738493800456470323012010310487875621495748770612980996925701624171655790910668223993379317296787999758032012718196037197678664875129788595398604169892645407668831996300581283114878277916855606230406847848899308483260259611982900033579488175262469952846658524182477934677297184161933628620849952907613708363598549473340328945269326154397090930422863542712986661811004026162621057335943707328568060889952839505064964320837122150285275546761058819017318034236292339108785177690543097424825829646270953162364261547479952965191234074221979012302146151636479128413138388768618280498272645879740047503757173040035587707476695772700001495292985454640003356791310675186379761529246674343805176231941503805845091307761073429574555920522494661760724207354787162424326382339385105466149759385534274864055755710148086563643649367598186813202008890289078859879364442313629896335796763587128052259441145150655033567800576005487992121246399387943967421801482686545234858332873554314993056849382018008409386617812351800978237682600987718372707752434830427516638574857684617331315005767457802615639101413553313527968777974109569571803869413486601140093341854198749007025964486183816782738119705243722653228239085610023974641055877226264545440234257702085072595564730589233842949325705197790457002800650613583024616637105559768806878488198986122023958104483439760789856576259285685982532137277061190173197805530509046371738254589386527524681645672679110266314437871487197647196675366182962757884826455900769012542905280478471730763190236122634837738572905910530366192312940274239098462347115127903769554598426716172815593818697687914434929613869756426500595943489807742148597359394646632801944547760295608965594761807264077259121724960894986167080744195615372040842019538961753936815637426811990429808049289260734778276328746746924634214982148251113423238032269616941034585953630835108608975467755782532883073866926728824557023897384963948507880326193082088539355293780689623466569484709660170603933498206365235594000068113717006171168564280622103299088219877723372541954676269025972452791486769046026176865061826029658021021667574291922930489493420260494729819672335794208469174068935055853418826180139357087981615988005617097016804558760780817237432769637781334477068953509638902207006313535127811054229158121115793002619278050523758452280139642058361956089042266083451325287993397360420994497784546831952507851552900443542322379244139263667150694260178993643822954544523829935547301522327081700582492650094807310568248049000811808058450528613752927880698569591302969819167225819614692170402727466224720394238866594036594327283981068948120762241469631315911033926765757045382829949021773904287039512574207478466544626344636357458188551851481899508738711306979716508934538155863270912683168359188381286682124345612424499224548997875414046394042674448556229106214587852720007242068969574923497399005056238733549019251959283434469789313867630863958882982588315944678238288790599032944761056373699019519342284627771099882847961226906156025258004167778420326411419544013091267776000608978261821713609318359145442130832459089587121611067771831601905878354013508341221586995212822025466059991126426367822653834782691194303496712266905920270508016603614966118905938120071848147420859059390966252015651536227544819576146227848436306057329555142778697759032887729192677325586392685358494640028321126607595666678565845907895192043610082701989294409862430995118455136799766197921838545790776109827393572483684337741576071499269480210492673451975160912579863474291694169078898400454696311623129029173618080968099575839173747815807007894974067723304285878264132375038421692242711084820582894530187740632751451406470568621420213017396313529032347635595693181811905573741793665537515087391229396748618373547177407450150415554146150972440882646039166005263468278343953380745125179613855131658337312976973034566093602374908914933274140807717877758609942039874336525933903283973344498154989438856645998184397314599676428648618223965185494120713150672899432862031739948379772072068070449970330317762668642715972812659003941672378661198489083847684901048300871393819569008292958152926287541369210270429654256878888079777060883584029058298440891376055466873056475293775585088516535860842517056877980031008531137993200728605388271516705768519858365217295417202834712656627191043446962409281856694452440409521179571039722023852071236272087957233588504915808463784995043047327201308979246482010251962649310657910456709071531235819309519778200263392884829556592813749533864888982119436668145994173499017599888476653586711351036911656769112240619790335581522252121457662787027168095591611775624449734025718084074171960830677206472995703369786262358306958220639834843395463774505252361067159231233036747918008183412945064882523123016876290657840513166984902857967641129696585720066485012850366782671076060729117508722299737935678646849881323933903662100317178388179199858706437654331063745404402142045218463814792025117519730996431584580041436963856556266765795613238045197321467337600729336158642789424955210239325294041003744879439434291930062622123201361831117486279455566549771370117978984404448485965378690979056395896868584834615968676276961533172589246434022221786794153034920352242853584080972173202784708451907919025262328402110100145611937486267209442921259221596680539292381097778690565170857324531507099645397554224751057737337297137250979128561924250966266949117116555009974056290041998767628356536750030452704453236807942864831397740202926708978524478004526810650540821731099933862344455063039056002267172710894365241782659473120356407649785651400873293827359878229157080241345080605596950093526346159881510907251769297182723773821689608189141720553241902480668916353546279283735288197278950648515711031328314747083858372274644120387673004298510521237673518570492395634736601757601765218278727609565745041974838170299315595288253529279479101217152613572864832010598543768969074383419146126445329575682283499063119217641792854730394386598806055450994583235888876671596245094482858262538378897548651067270303072108351554302986221666929661073697203223239625843722552615669225306049336483103080412545034520330113660919247249180686414974781028704504761893349639047729184247827127984553149675372144226741273043173736283430619611147942302734833964577433244678355103511490622882360706042163458717789572700508030229832847377544474673453943164605381804195303296250192708715077815213032940707706299745674583330617406973040194374610844928732374527838851885224413459324777726295598729670642474304694323685020325936131472084627075427281993203222402834751323734357740297756426494438116871433700678818362628845303317642808378419393782721955800855288288827334804620649499648625297048328114550233988169170897182868507744974239044931340747460610419859262884255531664445281597520115734499098427540051331766009173338211894244218171027733720637595891832149720297264097570692118417449584396862897495295265843177757821133750947509581756144376064276595974165660957508896296376548309540124511159364304056971900206075135180325122290935811625269827896677708450520873474859199331653386396598040337053283930202042480408459670563808127734670800584138364954586314443213930061337194671638766662066343044438216620605289415394337131222764380698951764620463610305718127314554860590698304620339837047968788578280992117136024174524561241764423690776275790318840545834304750145043095465095783985707798896604829859120357007265641021373533914193734702912636452063943150693580998398506273359796032467852933725457398031949057547362990654066757162386929319204927780553419711346704082079168205760886703237369162793872321893416179018595179453610930714690139870463742382544582400413684607595806593945719677204528621677330697815997142182169544215671606062046042848447331882637548213906849075209128886136044834713737864369524685555693664269532987887748823943492483329411708172639061250422971753816956089248860834474748077471092423017191324192635459556181570074779051471336492723819167734305854722618429948631561111588217886970294432884840238344939245360919481423203413125185842762889466576555443592835677917832201267133188256152444926638550187114983318657720386033148753591804148530261065953775033118283717407188176479237201776022400266052371225211742858466946281807147992235678853461908550971445443750467517853671984367548663361951852950166321299372892683671489838796720816627915074931989374911963459787316493811263024369570221095950684609590286961033845736347055895321513925292607880004499660971924855068097188702687255993488207647040562602189794743881642009291935681168715810619130918239071323156748443980551395739466113753607406385574895053996660711125726196979526807058042441150967332765403563060983038467585362982358238248006905800961390771360370388218397674945310815054169903841825308104422601311950366112726661976869051572288491013960398942015662609236732760132716383297866289263101570869434598097217296784636127511510818191242527392465318482194302963412966960321204206941215543294773845144461586434346777317440070216572594399326915779250545869526272818841233632869432747261346196432308378998715042470466587170931139257340155247142032879690128846430313155941949516456454663766100705930235920901058973006475224521975370187702497007957006078128131557607142251173534044717865013780505701806484154526631724166958273254620750812768602712851812748845858567725426478775868788163361408993876586905105430742565661445928515386749540408736672734532288412060204218211086179535992166829125971204460411583093851782075300690914348220169847176685387688628967174366373171833498740197148227396134949647354267082183080352798792295909784095056335150281611601728397121895270294182591692569446929044563844900279087201890044813734397740326995416399399644091121758005964955813427572875627086977596304563055664918179054870350090868963791889944685238788230651131377012892088673742151379099772336419854504510781886044170593777227351696321259892639059369504661503501114613077592866167159939420623487984824638512778139238152345708316274023258577168677824507241359963448745608490023572022446054013210843013321302600901133242595455733833067943093094774816520723118116123503031855242018465683618084723304012342713140592191122751911837054748462079129833348552377711319631939905900088467269226776452666944181747081146582169676171251680743204084314860768307550033767214995104272682244755367859921103759016490854332394644712667789573302552595356652167713849828807426443510058031512153453200929712776553764212259887374771765754731922263927016136466279384003346723400253236838913351012088853669433299109389991378131727040858242300488179077093026606159749939500400898458321896056115397683159350937256302888988297340734931150775879403921116629463372898135489874907627993782302426104021540087567008762456458767537044950590865848805472122548572361896227973977846333449048396628564965725644746436118206713211867526101121608357331440682631797505284466506842567898571390254928902188464330747174027212319327849559987923184432125656756503521905931522843432751649695730807062170463867705001689915466568872209516142792890237888730660066011757465633314130967651261596191047497212625120524125866450354071130719865084671959854838576019387838653145863352177142211102124405747925412819071397489951363329745538833532908956720164903348900010869071231894891076465706233510323967593838895654685468237310001379981829789569883571052989006569817563990160832273119586791167977103306204828881132647654199471758227695473201359384510514438836404286427879994652691717489918755666814516584314396392687733410291304587603461569701230831761217384787684235914182327233730323517896736372597678273333458878823336398522907843480376623545896336465828567545700802736809365460932586852859250522524522235044434389979975518324818085205121127207640506556729789121559186285049944745677927951550730142802114013048771979083958624061712972803638327198507741761854293090380114592608493658059879031373423007615454749280076363030766126017556182388140641175518483700299704099409635744642646790966847202008778038999558740119244047791444698850933698759710888493157106733757821128904993911002614388110368850763075719792554864523418449228508009644718151304017299960404762059672278298034543320633369133467518669098918885570310429050377248961153240584690985685626205822005046395635501819530942930642972985769325095911313565058888237749208491407406183000525855195329033150962262850030874474846060060211324812115240982689539380850692797156484310024857968643956295788703285376320260412197026849362316763141871941218483797685509829331689172640154933772055351065583213203109531775455470995945917390653319126744723825298872373896983750010147606927036284325591181282588081279781835424685690865779401719353137776970022151308830580791664194311296736630092178246250362558832840676979002282602893950330829516563083473773161872783007845857629421527900088968242530722353616836198385005449075581705157807218426629412215871526654137038032792138507136165571820691672528018471860126453853310679473122345599718893307195437806775958617030286833089209769177524767849537295000270950733437627487591039450308098700218330196565756830936883723190255312132163945329646353830264535851532841706233168865615186011939454397276439993690627718921868620381424756631773408527748082676392076769107841531144555796254955483778560113652144187651852949378085295761769015554205434446376259277862675654975445871077918937205501355926785598630495865988805846971388338841499944941964955563518440971588796695702904017172850891391129695505096406671257167322544597728848394302366674209822253872210710745518072957003056396434059903868615589854584752899403249164306406206709271662522435539866475326060953606798029493930884169904097861405285807153561687424188054699346327127011869401009574975277087324815343850975341486775123817549179673437208295085726066614680212770004910353087846399744224331206213985892018046757246974607315981806310149154389436644341435702562832827168101852162830904846235747525512285310994114021196401954456316771448211977053106147062896577673313150874751263278145229411957445558101579107660193527019755558400345911581864732764446669953593313623069131372818586052252268068723237602289222912240080231839352360974135307935701680207236464558494175813081819845447634514601820837679962238872443244005087555409312002675672157780766801878971233970407673575950968057572760156731080740304869814753823935440551263419556409931383591952077174059598837312342070224004037590056277403418460100275228300963242796334303247997964550399078346710517859904007721827185398190790128884572689339413829878209910307102080794225573778354588394621476206099470024874050235990658810224795649275826102121083992310862150007057899998974592120719394128734042574914690238990863861160584738519508632900958951833757974026215456707880983356723209315856476317286012712731233739898560701808102096641560430007072225764095576812139342371437809337115755137436733403640025295579205636589980752361067096324333211249656003774524162077740206555815738583828604726582022358791908234182581493402438849031935281490113306102793133410283868690402045232672316763380551367629929275612025105775653401289883879659063746109882437314556262576115040365694109027002322677803716348666032170358556863289672897221187062690069686763610621719635385997630037565608108703339832849214174346665595846428346035726307901649047107519158705417352155367143943996948094205774026859708489529945770243072073641299621564184292602417768519137968316129112254015916693117236016885011541065933809813820584170095226649562419202861994313483522098690157239080765579451985528896756528948285345166338077045900720770890111193177104227505850175601665608923132690981074722366414882603590086111111670334157600716363551566044005386399684175928527809906322495060576772925852598615835481098406375151186988905278635958081475232189730097502993002966119200354194769541906537068313096199901170968641859622694906000476191595177475634019787888151439803124557728258209310619163876884506177597170389474678934527868523072098205797290077351262398853297565606882013462804151280589970249777224818959475746813789146370603893635324055389420247260977088422018044965323841558185127935794428027668913663054586144895908396275113446248996633631645032484167900326616263909910318966037215768845217104253630333662491681179096857895233679442885321324785078045257706861572969004911824983321502399940098486324220146221556808803462189197315251920136892659423849971495928225690194146536720125210757498969765119493951549541934903681086854575863059847638155142541279326522167415265578608571639436963224841654607410288999091422408100795609488903400158563190985238733722651856432574049744808383181971498737258440512489771152735791740161104500522352562844826120405089008951831619334534630569373933209033582793155527659819506029410299668199659591745330580076736952209589520331747409288030865052678823838805008228824909967277367238356402337355680458261096370396399922288457288516822211591374163981650053352396202054118997102851043274489823294117543931128667512924572343214972753128956236563438623433956825843514357808565570334252185552654967935952737922933452301559606042222697542285810610025350775265777808317883007577145715375486930629766657989113401011936084483080046013393503845154498414918864043967934989980320550472125018241654515096003293250946917783657883658801239528444404078638960113566315951124848343745531864560993564595845611650317825750913870831680084906198833462340218073011627028895208722945980583415493347184498819062824795470326085106442610252107903108158404748671042731407259487605714081333845529405169366766708063833093715288801303060948038648949187226734886674868808515959130657467452650085737156395919346607219246745810966122090260434757685765862007698605245564084569972064488711919392753793640528838654765349340401345550675902359026556800480975291414301695000911638928627246046443236293970819648313310478156681788939290296697089385625969155928402372826883847175077166894063724558600103279975191128309688169709359696445702749997477472101389228839332799157503779391239381240767203131472191994418943437435852837112818773665631666469557387241279346777967303264135404990835541943588778217704325009818035408267039157297844281386624467197802484552567254716216537521856601669915056927108853751414038133113587371975117247743175656276611579217892563379664504960773801799603512305490559730603365002579465036912080316174963241297379488400891722598942730363842009632457502807193782156878262990040465828036732693983385587080551537824342458925229257279986051134492952032548939545535736722834156230007591988870633511192091198894610953372429172528322349040692270084735131479862918198233939391545162124704693173226439821694864970883892503818180504588239486276342803162402937640745431831635384164454801071176175583008378924245665866597794445948783645836846556884116905915493954679135387971055999636430871499592223338880362219669797250756391857437242956857362262780403455560944063159820455530790625771552074988867394377807133741944891109367277023400054136304272292537921041919093690371899723487499138329345409887235889862486417520480679884781842624319573742981149415695043270176364440098195891828983247681007126771074614147234979203577411472417884276743088591216032485239364101337901572912591585219883121945989953041201220346986974434033609941556451810015203305565850610955808755168817777487536391858406089101430449407387312283230971229138430236010344054344356775498542749996424144234145764156990568449675614101572052347013531399323617007985825866620238811265689091439612483215036088229551775637021274838722021977682772465805176609896394385024904667124672418691940781652125052025708859348198037782607764875664327499009859564593180995465991762773990056031321450421606125607157303354534354322065060247100390190777846507327820108048373573378301218487760074103472982234431249083369799932985463522275001336889107944609534191978041582325862607086260543268011586348595352104592696382879618859362130824967638235986395287285907223864897262470204560458057856183522357520224494825884261561748352239315760258414586381808194555914961606765600915372219722197644890728988264834194135712334894004509836077793489319703323494733089525750731950178673368363342458423104253213826827818493165135649918768324135768794227731040503585871464351352811682327621836477369820469844583438766147015518850455106986282203216686216659484957064428164314092205793720191092567889286645503615810964223490123910445251286580567023745185612787520468523476970875258847045439284388173767202454311273083877849072744889769340026270654254584948085384758730532850615983365619407704010250299698391801396342918907964700022837562990384225714911013226343634607226160497136642938908669094689543614628458109097714280773593587863309254788035908512993737813755136211518708065362212638804006605463436576987078664249824977960576794911876878893271901464105927955778142685690479493193162340092101161777554472124815573339205912479474269017900979326536529114733176073640117288043895829548247104586760984265721395962660844096607381062158989549567944112236280043714033736447938834872326143918370072748704993111190556732458497967423567927234857852582996884708951981867724843022708351900043490078691102673534146262717692399301546001490555832998261530137877727739890210506779942446231706687372750104846439786843082264604319795820619389595770989917352878005085575931062241614639784324870194347931550678731543417420947606589837241377463166510814861297011603588914742008297044616464825906222500293035206266738842773022090467012836907086611156959278008313470701371846407524249881764391514767729384424567298065824725223287783303585728542432054696850580478607863787455980727405825799308958477185572439073913250733659630579574104352683027282102909516001293330321429262284569179603069289083630595305497272312697891205162922739271316576907519746706507870860174813160889282073381717723792707703444491161385353422764519674243097786141241926882161524713953514142133977323909577871176519311129652080340387595356963692818897935911573806547961348648166349823312799262978572116142620562657336414124740967224776501963568881153670710528760292372686710311552797079672177940573479727511585483266994400437169165090131989424567763337507800500239520416961969669259001229835276762320138868176994977044967564435180945876913361960955645240678261796121781305536422944128040220529277575422105800481234569682403127539446628610829941227441809522290478203300225605111458592272522056588593931380294982443571680248132546993748956918410422635300620865436388692433068464067146781248674185923874096829399097194646946749246580129926276403269817413427599172786487310070477681580557412889552566056070984445398914495266990006884447669104335435532252654472989830170309564873303502205796174270109285527951729539318914685634857722693637575114466165525651494564984921635857728362959055112710788342693317518890351238394268281265450242605748024034627280500529560391215649468554215508953949704187901475103217615677611407440752223987927378151498325835531998884228416755145755118119537747356744660624823262941836551101853034443211764188230569757589604477211745761531926473317562359857113736228794229898412386253712556811441463431679529243343895217533054654120990461666425075957101426591821470566150545189707202755409184022881385689193329804617383960751333401990193104526443594215166004014779221614705484729357213319915730428980879344024935563242956110055113957444791413304114052744602253232783732986590250417473698610963937214449798751274901923589561788503233791099733587160201342006161048281936932615937268513673589656506131642270937872296803873726275712747149234223763193631552071302903008258200064312707705313470443597821650369621594829614718446480881832427311047887335752674934650984162992735644415540472368376423554580479303863012791475182344853955708114715116058626191334406498326042730935903385297085235910073533228082915258206152463290751414837069503899329309276027571199452458170288599655335160406248797456048841806366755383540748255274097274165947510819150829162644618969487919319734934405670481871386213289347393270784424706454168975416350808466320418209734856586741114707739426137306420900623302685293935152159117861171153483720645083499758710306085397264820615033895569945781151273057622664920680292806267488655787641244771860676498003949932989094142774893301775454646389355397739064007652033921827161715091385615049977813941601146521702083143791242178827517654680986382998581245343929957863517070596318494614242315333870352624178850227637765221245608796128349021633442128738777063754280856001674440834518277821372288597124957429288866745519880529611671783554879936699474114980404231101885402312082178122401324177565458331013453900758528039260886916452164217953279237339128531946694141771884257463044046354072474644908322202120263583244312885574219712410393099275046960987662421877499391324899950817445572067058585137215238921193067240291322569719982568771737060695647133459480413160604808934088259514274551543903791897064025431424141206587851872404195258027828026500480093211000140970897217739017095028248496608788113205824609960593732057200525873440347997952027750859122292934638936809776918006626499822184730904403569501297599635756804906824093532403785144277090833119495048096327560792709560901585078778544669734115381492307492831760000645776568884054249466396426592134513163506343550813943595786901134913810691942693170060056912718122896049926114492563636430634264128532284377595893577894648585517713251268361081415450868465224046850994875951808814252736454817487035763678095538303550625076570333769288275437605667620819298191690008869498194420452868304126843553309119480461958680593097549851403424779414006796528535102301541506413947522891790565499146914693233695855511937424191389509234659889258651119712381397392764904723116710933024142799406787081822194957085363961555812752154550680144196374981355587190624879125511042027168646879389238062695658830886974771987342872751442326608354482781879299580006209286438472389569888028390491903379375941109882867088560690309650924717288643347964511470278681986866061181921584216717971735298158663406123708304996856389871128847391427642492693491463545288094590699904399778901355523180836946489877232128041701517816875200977519102428710589626624864918797847909265577260088353416655329199594059718533606497521272356733585412502190267080544929298968067554517269027946629932838904504180818873564604484359848943452375583383532596299608327339998257526925044590154328976974437275646772384572518705755409309336437197235900571584573990311312074491791724165270232126272300381126107519505144002052865971492551466525886727686737901738931675482497326831124459610382166071588310784607244955631128993457889567976103489161857693214091055498802854314961998870387995689249917762551951653128532412643221360094560900053703393828666851127992098556293539290126477829995666698495325982159865187408993593560528277730948939332626638619704960318561599012657427541206488198647805329618696743891195668038759249346200085513902628325600342235564276868808903190171731748700004946188184053895053641109407725114414949309548872895227951850053570969319065254229185315942462745508541202728194333565781438478627227923784218119543371346795621789172020281891635909965374614009444896801813885186218085285376801713782940087931571012586895744540043263026352515260198772242023739780869919085119330664857314390235973876533409084508563449008480587236012455253096531672833296487228992121197830606608022434161010557403629274123311491598289848920619673541091897371940383647583815278449683183415184610385079284687257445133157603051057196719412098194874040819029439791869813972938037730971776197871380836084268259771590631572028349530042009760635142102120056526855667768886704248681687603722273943051612851370349397969193007706791934079280292689081075324152347481208961582600534750749739976344246848002279855531433308676975084423809752156763377516858553615615358859231252507905756825021296796763433617157269611280561183449605887254574713477244719004823409998178673740166435154280806117834225445895778430942792720565178347482276522233874688243520038341346065012272872854751715942923107032759451457838509296472491346541511917901638384705966570582602122107302525756658162771586296961510288857650282689444440334502198121879488473180653881116126540748319122511296506635756745392956571697765359123048418132549217427436553308613607136405285798674984511148127973798840905640140881397348739825459256059382456028480328496981197974820084439112243462080979369796497508842674181302101795783287862035914161870866251019309004646867423558517785840705868840654488569882195867582731399538334416283534894594048568780026623374659323382625492763494961755739197565519298697461367352243136659426655633881815884135878661459758367525885684718148347054672365410378705228708956202010677677813931671501791084094928672771556651165733570178937695994539928857164054228283173008975932970474829397230671909618152470892728824468428855400194765779697949050058755974455315284429349980820995408578729553396909634231089167419996381148596269129989785315628852414960448521394054008320949259023328767990128990293696823099675295256466759427221912051578607957907088345894046559489609704578239402494005448558395824832285275590225938055328103873952979640295794740602699066714737808911196749732634339544259900627217201905812504751884133574984360322255027271694727445551026918229152504467529247826909692445486778640023625902390292883716690798273225040640178879404743084400578337197467398053079160736307785070531845710024929214798139752595271521341135068739198952013007734534592314959746420297019224948591694656369479010400553823376952159106775515481915632113386421258986712100125363416656096037925304064803115185414938144407221026082630380058329851869010948395543566423109891149918248173266479581642709703295310275130756889981693724835843579368826412108029087711938563667741964121568518694578523564638489530339773039763522294624017735611783337614620261574364648286004532628306388523926278992260304745961322090381545161017550134180859598400890971541984050732328137762806603029968524430048038662726258711961050408058135019245872478229943496638883620965444591786958594020498561366241513240860478728168428459138142129092621266263874693711341058506915228296187539495995928873590473085771579545006619587758511160302339540424211250179358525480607744293585209430260361392032212943754930481855156077368251179841834623578625857994162218186754921499878699169386096084157917594004986398344526259213195503328253496241379205011790941252948326497571137880585411415715411715578282127941859770941948938071859695702757222821430839580523312138278171002816693356779591296880585047940362086018624525438673879582108016958823822857082821852952336158006449712715765354894401945064202770314926354813297292730794608852121528561898698184539026535617398069655551440216904508567222371552553430586315088568201583323341730087532609409291097875747058556638796313097370403278759898243889791304701799290700945611788355091579158898609639145085731651498582168426647551802486232720960564917491074542016688652827983252106673574443227030336840544093154685783806371931822211331804108174383140065011101759215562887082292323398306899123110747534979891243770556443012426682023470453861950421295351852812660591537463976097759184962047845136550383232312635172931820713306854704008571517732243485974237068716002585559040904674804258973191265118671317946059161998994962733669132273432663782009125386248556688979454325265324500000956861735429211740337143513293853852196340358139857936260637279656320793739498944208842302847501135918240851261874389722444578620815385661807491268477135627688221646673680449757833348095583686946458535120840555599747066294511559394881376535426149036906879503434778464235466792964093778739535581955014193906725996567327615044960791855187103701171343407885327140216411846626417039476996587008329306614058701370822685970169418530379257332163869916865259342120926153753421190714323129338746388482524881634100442337831271709207658166255099082061713196013150775162606670260293594259067856600808510913921049805409185505011523174220477000663920317207716580916987155810792745067496494239209717635534881555495422121375405339312476518582354116568049703435403325584702271729154262700846631530325106984674448782946640612647090486487555432911366205759692750381959109242831299154726223446526754386264834444925573314579780406449314871923091549677300007565919549161013549050899308629800989248813080747464412486364918899300535349868614014924996470458743295276240425340885188493004742508787639519054018807192038202362269967753768277005160876339633673928659966758529801730840258659381471945835997814179302772218615965959347529168189191249785656844911159975047178616243062658383252869367461225629247576801415207753410561837814671665326666605012664792753159090855139303918217669093865856270680163402360741460126087005345158752020397847818811077172605837195397128534506389225165278265551509459398132382892540894323106597794571055998734062390724844847911879466063292104306537655499853794454213654381220755117814629149333826192607942132945064311878382107953025436536670885412851346798810788416554510901595226115652013163396588123483871217982834476412003070886466973532426412198979859311878829801937091070274169343320430842976281480163803603040670408038480355567946620992203472315364434073589846784257915953825165009026200393997945590619265245257399596477546438411205824805862851064520525545139164906809997773878798378235798906894959838159899882774173697176669941748355937957678168180713130130382948297910036651768470404863983357699033019473876598825324295694223018907802134186893724872479467727580696318929570949908551436991039585252380669032931971674281551232905232722983082828017055820820180834562037279676780957821609897602522482282028317016256393060419784845457340262253245769519024347607140902355766568013296543133198201891418894096873343448542653148558373294174294237474272365658374790830845943521186923793925811312407578841914833403781525028240298114365852836824973886373098159640791303704680314445389946329451084168823695546156035594007332928428750886491181281613844041480341703664676911628455478218139940256288485225776256808851496805424327205460620564401453002776566696182419901209545125753607157744671278024134685846784329423642130761441440530905413421175881090479958788786426971266648893545313209708532220279126908341048977379623517904986263340404827513492346424703684343953913204457308255802505795204792719335322032785533706036390548832098458647688519741636058547792179873471824885058460989961459542500661168116394759310760715632322964099885829870178965844009763687824427077743717401101279122357369504958214734656695301513076392767716819898804814869834512525775559233762317783493459313628404767911490978056628228253969273324962398756541773805447454680357796427846568413782378206416401635229406930791288841422174791291586337463434415464917260754904157900914642792546279065363910931798943607766638222039567117486388398140832411702954418048511327058828458772733478288888255021473248446277912616838334626007496803296975625627786221050103954925162874095339553556637274541734687279351489148514436462108737204452549834420271803917843348422051492502982819705304800100227678203222312511912924379345945478025330705857760074537543968396502996057422883294277349714215193931089170164772098134788330098962221876929895295233670148452140559904800615325377759412121568207775612570794127990029964763936334720800675671213420522660634391317543473565917681945259571820536268762436578008438523660838837748041753365234420653178617708253634142640515500708167827264931177942886167302941784718722887011382511248844006172367234566686102020451885980997485505129216740834700633005837826591362246679288902552406597155738862317965955912892960976323036470454288273071011407156594529628184079914328222536998719946456983426646178408530684833581339263443600334370282370390235011052945586520481081646814319712546269074908542288331769137682516984384345701979884747108944730394771954332161389044020324722873196444633795177962422364495358277224498458480859773136871338069265263326181308415635537670014848667879135613624903651351642738303094781571819631962709480825694572594255135805583670177290624852950750862474920799216719979821082501259673362652812715157874406951941106800349175296870728507352767144300530269214879000543112580395730050568833922458717829923344192408406300161303025370213105600667054323637325656630466622249593908630725026099972197869436807622687707033861940291229537220017723267256644828355625210822542777152663832010428580972499823651161917895515705799475274222210000032698550819117239217223223782681040855939963932574852291777785438277206604876067167187274301575230630312518765052470932003280421301480227257300843340006745691523150261872085565438699197536160566019671651689593008094158449987587752539274240903788099860480551611503040883745773113044302141319461042756029565599573513131370962855917933334061027248588029794029316121582442958619458763639212233440679316060258648433849403553219136026304395798746202666381881997050219349565143917559403743092091530551714945358887778650428395470216255585834782520494436035976660045749259261859060148885863466558715125037096110382705642406179924955414221658967449147475409933478192018590903651577908567770490421791397483921120236677431359287742622880177463295766349130047426334074629087457261885825513015250078126990615084685634853272119015373427880141682111536418923868876059779336478008932479959691604954356287855057251874858987194618451981587577182875712756312547498638793836285165292027100712264391721456823791195991457626737202225409766129457578409265552544312698443833356822068543373530912112632917136652189167099167101873865784633536955175565813495021333602572432837374559271349229832647377600910627486184247658403507191145251825882232707013170512778199747981875916027908932039369095827804276441584992333783336172559256454789427171929140194815091054017945862295558956807754354730367404013743351267365853939274885214903488425614723027626554075637208860276179239716103225517980920142479013432028017235664808211344754930739612263557840332397659182226652350607821825474468226162556156596049416880507435575755821892441861695097523852533317888413811734332309475425121813054109760668346312678580255500049813427120387725116541838009888082528549946676134104342823331186673496326410329596516056785755991874968397199718698403739698677493488559882447136518415870373111955113805146642099891158335470094622994313395156496969800799555786089944295305268086938379433836617248976351577105134623453781517905879824939294943120371845677817945594029273896796629177655181594214699961639431324947400407468079558180544147748062960121092836044747039854702546971375344687384222887572656395537224721245719669954702758274606558392641681998351598218513662215801503704776212693511168313356877446125016600987797915100435559372463052511864959100241813754130021295586957584633084035183588968715780740438034129845419118500627236592023260659520763220000524873237658159889222364892113514325011011916879953713033415428899696834193752102900332792350705150935952106034129451296201109329820841296435308871408539916813546161020599424228806425316179807740152407255580738720975044610884254355281636498312575298838821312516382132877804147911972202194648297834179734992380074200153114448826032216979252249900650412278813494176596932260001483568113917488261081482610579076346114325690475348334832406034223312131546893719998694603207585159806691779338065229381506221426342857231486598818465622824057569587295772472075067241262922092144077982618781225579024580772048159091834050050763565555395900011151233073984137791397814143623191741336987023482891382590148201147560598422032928683911290860389799240362354522644624066749394614418170574983394823729637236781993117820235463077423040996892275428358380033947225503278868944562847505403169391591896586901562170695213824920739964938542558312571382061406267206038966507646204408795133425556853349849951579845168168357032436103914038040237193817041845582503602861900132090635492915779026732097140013854744882745860598743897439067811487979308808649699987881017095717605575386859077558367610397543053074317559197919121107325787870100552935320901588234949576510646305667998274484736926183523692189349851722520874637173296266490704866776354608141140751660457479749881839293113686438999144658881915352258001570510486785586807844353253435779382159526844579839624890758488217495829725219416875940805248743057243347682570292582534441945872222733010985762182137827451140290547154290519103302721283370759681237320945341468393371084125571668240847276884533216897791471705656175304250420071511449358629090388019240898818179213047297884889733329101946995557915960295369225213564091973333165489043633076130417370852411835411707189058142523333124916957775756230264914697484681448143949342024733114040677612028737982026238069758248734102542051876040353241818780013761403940256565979481756545539589924488162751414802854165051900643844766600254207722381713252517318482339116196183271690453078260196006724386103233248504459299737971939293580550242314691607881733803094538753910387782390272910942636997492973930157123749126711123252249738920853299764707485068104756485405584178126849610194361405080623371135972725184726333353381681322419019012482307279010024762174362605574007331897121798842936160575600200894220186696364710932863860558759620706519459458307805870774581643193249077572480439042955805946397684835374959141476358794819458238782835180769310847676457461176664602539394168759016885487619031305984551085473146338134538260350743769310511712288292508149444078556369856787098774110696737535297318191677685699656251424729071167199452051240239841582803135986434608400606124900592574921078144715136833346105028957944922397025755785707394001512013046036779011054500358370640536421711125338367688223442562637818252341978502149989269104586752957760506060514395053575262416947889594331888509892453150103545411653411005946609151474988560985970037546839773405164646280900552987464430780499560420822158112332363181658838942617621994987040211311357836342941637903411823368421275369532122404579730338433716047894451060911719325754242347810277833944179819726561700262944636084092550765156237690509161846540448890633377574845225135870673407665876231057240583681607613021321055087470069839849007740420602277776945236694936913287875496252029072524785544217302015493827796298917034100750329423944519780515205538700404504681778517276298602404418540123110076302137793533000007597973163894537539527000683361943859970769428185203326689802549964269940540810462537059397492330844944534783167758418145836073344033647451184463532995638231803314976115459801153687207100915243137888907533403479502893673323472844596799461337502862798555006024633319512242660185723195384693487892700955381773129216776994929446150431782161755525705583580403136444575086851790687196996470486978158960224954105609459732048908735674257067923894177842203044115784386998948798112896530120473969882836108908797101992162954265033045903293312797987137050323444553781750530259141110576931484767462632394555767839276768309259250138027513409301731530938418961614742249387713113558994147721809974411650501696457511895287531895734286897764488036153041637159596284775339331969082953058636930424849859445740558322218367901053608535516248356421223362954635747975491495878588725827066308055973856175195883988717389368218596607643510539784617852895044879237416039030339356137980246936195815656478468069994340255413046102902376108840882658729819507813795905608118533207208757604488486070529948741123322532596893368965196894056557816338786113628946710263681074994470888236317171667146371796112675371661581392404772395931955208403114331429108711336573332376637531623173110573192674580315348916874893061717487732189832317294423961859191726075164993270862373512063472547804112098074985764789121179699440377193079037003312973262979087962850841832096772982176720249197168027507760146339131367327382752948870782793545265921221312692314940993191824401775229187708108680721522992037381259922252096366770046719377834099224314071092073266991113114529939392422594492037889596081065608228647887748316539302856552839601678339137095163229325483360179804413273034405377941634781328125012888109210026422956276105596495876585557418862174677046298379839778716176837319251888989237831572475155076291352203505000758940352330623454265471307355801670074969559103967532407307041213865352201551388081868939073404073896830293991675295254734736443602818190599535759659788919970928557530016576508639050433245920767568699125610758350514456382266504271401299586411482318077009710998855249148342793562326939883954061657985905026562117543212864562285735584657533299572997417301315973501784863968137241910521282033161132418225336691173535446152193846287391296311955937687684422057361537600006344959228835359238538828544551841391233471527762876072361540685053300259616714477795603475258869885540340171728719396081704691866513114559323543250833876151543820365528866702400296885326086109154166380774194681320322681177519867334229668831643000230340816215623423621236941742435182210120521092544569148865644392326945680144878448788891057256364966554131074858162810017461912895858324164280179573053705355283864138798633474414735396489693182708230754960004601643077124704848269446132417600558943320272470463749422428861904163224699462302441642497454115935816788818010207553892854431690746319714251679184752145007233786225721549431090720256738160299518550620479865869389352445783143148123304682551781389527335036482624434122353334373069221158083832106926934471050265568129526808693937299289670022184657360598235985161825862014372257280742419154992239993875505935518432718403648626926228968423643596545887664756076175319615495358598223775518979553230094570367643318186299811248843332300362968674405529218509462780750123622722339574672230638213302945657029820503847291204383665472806469424837053994238674587094077091921109626443817309354381960712102330239427426149072422158063008357455653749153387328172564735664962514714417448219645613682619767888548502432378789779402462542494912953696113469123921812581916713979521759480172804576108336790928345960033906906759642856113752371879501674142515963492455725551783624312959057628277420155898708802762967617705998060124407775283189864082703549779033142315745693655985597591542078084673722735327517737256902999753824838606384684704706756333391358594806405866351211837498270240605697245867116588706869306339022508667422589077792505419753745948443295254821392329830836484446321411007048168359402783326314788963070685368209249293512740534486650846995552246830251115020736183511994358504491373635893587186981169374024540310199226402146215621158072254584210049306900052050871630290732151799998722201239191910752209132082195996071401869804413643945735550371970496417006642231659956177731122167619509111757427124089369889264600415825041454957174059836548928098182362633810418661193826131939489021469472117616995025603710562121358413121484163834851165439093786033202874981967026447379874226315655399594246523161812112722352518952946353536304548962223370630595435169294685514062112003801215463159475635659324793985499196231504588391710497346188156880497813826267315500253524553266642871010579902223124093702425577459912475496303753651353914536036465502359507751180023664169718373702884208279897780839884229171420274744204721440118863942548935970413362541176019439519997917160662508389107222933393394113888224105427736610253167757608209923484851039907799175689745127198192489616862693421844093917954300132862172606527368729397908555570090882957280482443929762605877228155890453281328553771755204195681399629411915771384441462690993771840654985529962423857067823704384926626406083557212244234856081027959442745460729085546712140895595985406717958527234227142073387288465047494295954456265781165265566251391163885075043917190250539027977417446285923381467550446870745245170167343318869827502807739018172968896473149034314953476882477280257393164152841387727299045481217227645939689573525260098715765665871195585309838004944509961576203806672044056169523811096513544804398093004775791555681832563204782365531075656439542400196981070213174178708121663371277385956562890730094560059072183155522907518152166042345277865013356008494420272215130082684967859007661965930649744052302512330770417508754150397337528277441107379887131867806747970967132441235412824268441897270503804014659934594358691426237102905659264817278848769857271711746046927170399886007219855340010166198897656862170314214705876921904508225443696680150220196192366880497699962023285444992759175364621774768956235865998932512312315179341917771010843172711637737806488123778403411279613627998563751975039968767256125889187059085421788490823282054151997739368219397326773597983298019066209062454369373874676185349665520263567688203531362829698612099649520243272315076132844717469002300159676137830792889633677385942583800687791362703194337322955587704497017939913542283510785368768472754971081622772721979085091981286938969258756840002772643043466710693516193005423942102514857820787958006150043677066943247114366232658644490825495870025704897345591133762687741991940594660266587904431609620086456838413375842811062376216272374575370135422607116639358397461947118039028549264484317541672467335454569475886734852084995053575507850507043459908736551103300842910368772809475803509717584492050269799385455160441678407265187035765254013107938295886015878647567527031475192054920622684455895301827399832102037078178081126742437024333699860925731207770681275586078481432942966775094857984751123859132923731199079140550225654942045778801006717329903180451126086281041315636473767437871507743086617493835684222634626335233078504737290316164083363212216131942186719045194354556210466849176435174598243540560415118645713336315352067919751137605820320990932002781646521749946636451380079515307775092526973970255678222764955701176470261584869619765368414819084169889744414582085529601429818340445275775862030931478105118652719194572440694301290033308094724996050536711787383301764896391323309606575267569034778450562841712602129199365167347075045263913617756465262770794648298647748351769269922852533319963551741851692179784149604865561151387456726829210132308641348848152319663931467356003645281693528528243381941234848618506439151363077228407475112224779249474091658533508914381752271304543288465357993644452493645535489293591008315821963052358987846078403942149375893226486042120132505154892258442008143971963223231137391435556301558931647985666361788196803235599066089600541774374907769011424527706376941011760621811815431487659830062905555116344989393843860789149884983185532828958764712132854591559130742648455796246786351231273620245383076778143620119542009708871289096882858314451165213074225508462857331461669957763431066152748657643707962958505595090584401511748807566074078294626080979830082956208902931984118197147804562021259334311745241687738510792399331254933606605065150560838770392198265652325249344277422066754002878829066539977208197354933969629942351329525745149737655612924339311379093501393973070054664954007572353381710841315177278832854074894217913401337497398769300609643291553818169346645766207284965939234252380110858496380553280789087727314166566704626943269353884489850500693002822756394895337171554459100489218120700388982677419860028315641656430851652285432878916726596502595051863357195786208742591694157246156695401206431518297357669311653318818774655865141036057142367736302450316341528070280782595677295502837276178012266814840675700005292781092489603400692099353585033134666162314718112423213713461002166289852264560755616849349503359778560067068352109687455554329948041142785606451455001660457781616019992831599791584773002844798032054689773766696632168642446367724918680084539493722686814084443134651385801174972910442116722605786586810996322756131526025802754451402693791821409523242181094957072025655405246931355454305237871906726155720487416915722491776964215988233785596402409056281053391917873004338251620922816119547137736232656068131724076239829918285414445326476172283140452812869610003439952613535986438236286252254474715401989949557959064211723984191002620756200956929084287907924805539610559827963774380172155640979034814363368914513128081892097582130984785216366771693738548370140056811880916059095052574478664951922802004241568173723432967509661521627557548621027949091705600102892913237455818341904622394285434261523390679893258238629964979592321127262890227405347827047442127330478131838868676043181388619653783664483993280834899793860716824013118292403928481896902717733109792709604529243664936230076370283964859030217893358322306477834693649512696091449835357070287077800370866388492354776812710971196324490935287065354708614126586575475505805255559402079936934577429140479327191315997342320277892579362612624638054163453613881982829683422860228982701568262398442882086888026779259829074656200747063429521797314149654625338859571336767960688193035160915097912866604100350451206234502273454655478899909613608241022101601042797330859640786508360928784238967867286255207245374762009753491832228443390969742524863248230414192747418591513806639486530374226611786324455240045673244414562968798462697819472615586171411632577627387224348268277664079675403775580220760254759233715293005199901031388604601115220775771937446712194784953771238230224616496453769583694237361162718538767917611063170194360205286780080751775505723127097361780773367513836352273983951637487333410296940207816024002573095723360526538577621215530014096491416730705803328386928661813622127049676415066553868173100866360133480194090440752212161811550121019662806383311071170000723400011512972300720631326697379756363709303635566708276934176842413542803973012666417753045947527109300368362052788047236340978187314149067533430801234602142078914731363465697065481652918057839151380065298318579836748332702652933779251392310926945691551112600042438793640986752192086502573765320453216063912023234303564134873624684915808636659662820240496438711771980751896599195548771929591033418589957970941201022669733698856841614318898829710422908267285739039683373917585705731763498857663407181213059637280082727220102144501946950337704718279611308321620871587071933987129120105842476914324628219079880703518200567319587944264374492789903313517254090454157267033845757293486476709166004065408182157037356697192083437123367733379441107593634806598773836277033448573734526591247440350528901738367751344543261290207660457401769948355382362026787368102229715941733131913074356887219122525521989786079937670740991104723786006772378311181958210016669399345949251006923522766237071443385981407126289673817487134840935863277517259053527643192908101806211493321409924045947116390423481769591396611385894414292652080360084870899193526627732617960991471151580900437537217908299544307905913050741788282857777971814627275225456326278654580419735029290048649459553129446971930902630193104813999215353962765473073117204585793232185731959488146242096902822911988677886115875907927967239670008336230849591401148085005664917375681969276667213135028971938982132289510110938221277135657442383428451942458877436403060560251905271375731917792131099129625145882452475091189967416553073577696551114012206319280268299856317511657582635823235801641452688784945922116050709976120646525249885273923032817377525149306166412940819447356751702747678435962678274696163582243878659282099533293252025388201178781090067726323169063543686648467227441867343789045039804167208055240156692449687692903263566035742232843765677299924727622710285961401445819792466955281029011876486475140816686541665229514196111113632771920504236070670537166779652422857783587917116831742565579003783387598707451370526753263527745741502476888483323572353082108060709830568370306826839725892406006465107898888854943081921476259419002786054766190566254774187459377585792841375683677164732280128994995617625385951986298150788765658436900297583239824142737214133998586824797707665885893492654941323018556821534048644348171011119070033545370603994105531749763053042879638452857216421619292913231979450322428433301144767783947268825373707820418844613896888927771623272834475171855129528893756263755867432361253690837069859334577000736344791242810568126516218290897030705369963828011825316417354733549703427977413089945407611716688963714484220510177590306331620906719992905155477994494496139285662058830507441506806558127607036994465196171628638740081412831891989548953746889907613470693742728942414673824113259396752674391928029174062318404204996109241986694122035562398648303227088109896239255660630164287305144780116280863137911736687568306826204716652462560918285548721993534538723677485266456773753143758868183582389855578677154813773899143713277370175812399560879618347869330940317365522062929460535556055124053357229619320369904698339433890916294877838229381455968683160377022114585975381838957990546552639833018370829871561609697829247835302104860970163373526336614321217482792249789809006691984052876740253032341364408652384457987213034948424537668825471758816757107064843567322285587551818495140221520410472909849826853081102758502087621647199867216834776762059492934011615155713263804959367657151887921660291584682860669746073072511658076635049610040249986281057327832869410068314518368656643395161743998329771592195488391411652792007317770206307055357383470695264924928956719670506269051255310756231011957944089814068024378164703798314975561700496639656174279364083200512688296675116657831026948486332248595530908714047948488022803328999699009552462804339462957574794705322212881338155820052599892207490449189102766055664668871305279506144607412791700176888271657872729025033191860220199262456864033466447502506768339674621927313156887682708175199434783303965354357589268348198011794520399429845547107188677521265347394262819805789723597593076882300996444697603507576938557192871103970860544953874022360159866376175333779138793154373952005748344060920087594762271999897728942954205596793467688356056350866172977875229678818330311601345704111368138277465834513275312631624970518517863987363265139315030810731163008255846622523659013480070448815094100684646175393080408045260460562187091392399715044798707585749769301999223467210070002020390344846369243436480098735201315749075797079426987047521632733258512259242359125503462155973040940500355427023828734391507207071221417366075004456560190633209354719402563388540369063595400957442414942021841264795496430239809976901809388131766588079671681628187145344515238653571019873280503063184051652958952023612289917605291265302294696541039182700539419597449007968348020165572646256053505843343313408056129545258137161751391852373208927914284970187191719140122649546213074702112913174209894357698868781053740755927729042490858573303728319582081866822404484662012929038017255338807233059103288941544553032517873546118864964630061719292689148583696040521416593819220353780980803778785457861750263138110326198390886710342692200150411632935542302772740277261274465332695662356685210450837478666904037660763617644123306565513497069003241201436488449869323994885879517888411172271571157865148593250349941497538491588572137804410177203252598359901186529076315794921726679078885974629544863327275040220020783171327553270685942275412532112370126825913243665216373617735629956620606335275612195909541089466357044556482566717913614934343109125703087354398586470141943898384101503684247802451508622212020558477953554109951767265531712744062725473267868371777893086864633591273191391844005296210969946557718247584023066651868998905103670784009871825735606111892559276755179151389876349313659893517702959654785140635322401012361737168177292072651898197725323073619103973244511425739880978441777122443657872742228986393670443896485448554922949088644825899738095309305867117043686173812958795005129394388379525288243221167548366744609377146423033188039043858321841084626450979657787023110681568389117188465986116742074138900534647483382918498668726057190912782522846078019920233478354527960354006900151718294390006963597527572890568733319030114623203607384755586341659011121975553040187134337823257983954740263267831681846420321890048295278657119635192054505600650646085842689448266661634024699017517485600722589936830988746968192743896229387486895524204898551173021727239563967491916457174709769995443887329864137290000207067735084533749143756750353393331370219792471420907808029341119915178576696819347285721093219364188664526643015542810931427978782961646286094038657707365449524557018944727032609010101093365638158505839072450514046684820511101455716555034741453538978697079348406932660637969998318728161008167993147326917179882804854383941207629488959231577108650988507281328775592512068623562457581272646912895008939393835752297057219581798082721113925114616236475810831590245113143431456289933898205729707383261320819979160672698094763289190658489622172689577209626770164361300573253323660343217810941724061739652034419299683781777937849732462960991503311934728573476783782838029764157857991973766159506006574381539702441115203666506257492397104265718664444188410887666422777736315553620388595961180839083699140854411501596074897571283217671847507816688275727173593671676277175381545172980529433783505769134383637981035966817034279491524570434256096803890163827196365254740316548296968681428390475621486506818114061222009907895231865578530139367734679826951863436680404587450655909116127608568258392860625631154204862392099936020282214072366862611296805589762163809960578768328088438466033373015165466453613407287425293201281338705874404624485283026518963936855679505720742591959110124280608291090187115056201008614361187232409035744585976295088138333538180461813440356077481678244639247270867365086778569705325931882711225054147502252195858068272603917206356416166717538421241621245152851290801378949555676995567398246168773929094258930335661982533838466935729153938559892239254966886617838391968317606416764894378563309374132023875916732111328850187422213493921330812001987039620167644783126881713250848484014585241143060849493564145832353858789671399557130659527374759343833265110263200213139213986889106269801333576728109722599694525718514615865283772893040594844330148519312915841979426476170104867360422806118615652118896439124608852206991460200121629117321727077926900036070973203415697989574953569147264466271625767313038060483011515959159816066081870058902626818164430570559942513118739705091564048226970745028515911105218478193704257736297715887871314095605701046355829129730232822349697884293786721486379978397618600577255501311726499737436368694501656973244579225185045245892458875023375778147029361658418328818798686458676968436102317017691790462373869215950609874191569001077680841627065891504787063308062137627161938854416441305757877356929311509068086515003820308622431050011422049180739266698164843522865551784954902406525754473848555217117117418165908646395624886800317219227280040160425780640212424673450480999817609521089734572617116086935171857829112558664353284370152938606468219561466445927558156287908558851270070906636023521152920223735452772637324945854239387979423887823754188503957191960687223321704349196859824169985288472155270374649843617674877798292448861286911916680298036939372178631595839323153395066735990229158387492333444674058307085256645188513705476036299479081441706497944493448236370981828254918376015817476010353820533204663436618604860228337465735756937414802741607337637124021283920475470170649233516362836155279402078518683292991868421552657404954795031845745848570292358734746743092846464822534720117901489934312565231451123604565736840433922172459152562645061223985092093177339059062204187385122739045107464755133278817838700889294668238676451445508771331992082765709282002071475545215261944053088148061092493480320726238326892481707170116870827250312538963851129159508212585754775609772267356763239488039673479196362091401903749114329805184011090731171739093494663764295904093412340230676559174679893577611111840775375834494723695574475174423674108994690109883988956072186313574826286221688602104361081556817212143613269448313576997596776847569536922963309916071734771291610354001247734264794976049640705852218831151731545922340139088424661244843323182696695475789055562763860038767973655368138747933813962341044215123741341550917032999587722240426592768888017142155235535942901937765693607754654432639211048886077303549125250601031490571031734363633037735275712908223945445787239146719431908166143553424628276962988363567017408754021516047956693787548472835991304777777454444097683718167491592006064184440280045658915779710443845227158220638923193624693685202791404663759326413722043622529117283114413851354352368976401726250408047854196139200685784841815221414712983768167604847989335238481963720318566277445797873604539050327972512224865268817362212353609516480960514239948955258798905283541872491849264281215884237366730836230041980514586521227795944145840666555703258852439855228864333405854067912917129640037844261399617745798200738904836128600272149045606743400263981677884349039441950043200025691259749250033592774861917338770702014629068872284556053397007398791568596461933012084322019402962120658022113634220070341610270648290252441761001870839791924610315670207409002372478584817449066988695883858929662205735417903018711883232619970629339899629213180349274154479998952242718927185884817151634107076774620846449750488484018571129374504442873183842948584501796544993719876974998011672773419738981352326380425638790004661249739511303835282149832584986860462693840457568879231545308889945320299792036256877056935456295990236375277027781213243202987684112743041248853749572140374914306787253346501033346834852027299361778897569421182563514760769529428171601113068477789442404592422724610608806541608248015929534978254280059999075320159942234577980800453840267987958540779322023799924831761777100350191167487583046068467218719344157460187869170352200214569001233944507065328057065524174746174545523937424480233917108818830625150643433019315460595572236393409964446554108248600483426605837770712404903916702983259310333454871978595257091826600845826898616252560915598994194172497467560617039809059975055039059118365973052473969781005129906952592681299347082237193186250898201277877180698671690475118001858694886119724103250130179690477173358219274151992502328131984404842150799610617107279751249480420346128296517859945551999149719877058708334332219986283173082513412785473133755955694631753020550585987820087216121141158184391401628670522095574944782506291463384550760309597809147794973441206012488732174003496589062514954378053969072506473725630258348726149559915474055148276517239708221977830095229328032098033485029913694867770186895414950629468188686311990547895456833262890263700454386563450500945061679799087571133630539452270964690227262980947539181349229558838509818891400057683781706873477467615376035519478878429239210593276379505653003170825844905886257305508375126431765294943302592655863150263565979393312303759634737020352648797728275172965238311795319916594942493669259833992515914367040903395944668169252076997555306331254700833446996843799014547134855115931380352284026758452298930892656109003406079720850717095235632509026862813307241200596009083481695749999656142792147181186846891339524266702126805994116275424635854451535319622945444128839942501286131422991219788745734059147648784629284942654593137797081491000500109151199449255018699591977468381470988745275667044016633090451530693394492332232302934350998913547211403411311074628524133924030801544797675768960217012258400938030081716994687482037454897615226882139487390017306666776903537502253798237951034963058391851002634959364011187193740252196584045659280204866391113072706442626487959930783551974959234110979888756381527923090232839094693383073187403999208395267015516836767858958182401195185809882130409092369187544147097510910817879787391881622210216720323560886067849293627840041050265174015020774135914881436292803246888419412962592432948508389066864388641579768476030025815360850539393323943211708738520698755021523441843549609709747589348308414675517988293680856742041699057263879800013766763683852819515016052152221599516795372560667698733370659942602373732753014925082084822599791649096674361125513428249411785391915122096930873786535902732039646353643250729330773619810713351197937766088624194289561777489507546696080907056993466022429066386085103711439330614676969293817040012713310441080965422135128875888615556857725004586088467953156518778673655110049443439187583369053036428336241200688862642693635839376020211771979372779993336723752307637528700934927557572373152259294431179933162383097312036457742644548872501134387924844815622582465418160611409176979413245563869744455367258660512713484563418749732969292060773838350953222310167230046522313932699617486029176944177107113364205869462395058589897766694614731100606180356767769522385481975479541382430152153352563816937256428580915920449984035942399043555563224761308529276237816037324293521577504883328604609183951798305433800432659492984558455310191601807243778051957266821026908094858132392692673575058538853173614398626955306014422282308802139300635211722425046756345163137639849397322084916097411118249921437918877995978384304355758082074846015808274494801550942520482782698128888630738404130759556766695660830322348796936845830929955713418441254684990486767537223542468547964702665685816649106829446468477104291331048297302717399213441844779734990958311004714500120616805788751393849435037113428003898092178358863767351176543634431125073672228644580748433202078381078809703044806015235098609845980287151988231093530778001330197726603912828982084608689676313604099865520358232653208477219176096610754920071984937305375573880534685799615301908626999907839332238421392249349549471987476888443021576755318868290404514761961223482584645246627750943795255302373059026696601432952958851369346125920616173242638969500071009104279780900422678331283601297792829531603780417192437615503531094729416450928935649282703582256326567850452466174097902087080211484113030192390296190932259970139332458636027036276973623903980148781481150572927344617525541380789752805914030288770026291568243090531287187443985182156624531714237623191833909868955740853554299856779667255580355143460080450618711752503017070716456606178661249441365513392417356888330913933928921120814885009754938589460635022161018725182627302111708666214706342966875754450641872540163058504802265500423582302880976876502918004029370968904933385278592494656558800416970469954906649263302219710080290871582521641775704973932788872269104179694784725070951312966838828084673009258161419874761401131992528096836300889536277207968134788170331535976243214478668471974352521649670995480387092553030709980090032120376465355851385234771565614173415549379597244053164040235721857782797996588593093358800235015613143144538022358038198060075621787401198163016172288707290786258889391388147165699827518276827196140257390293776764867473554186378174966027934688905762639356987825561660156067705295589973651242700520925617417240480579419759075375145594230041824519972832620062268397791659090946696674882642086346480400533332057074583266580350113419714887764558292280561254145719821076440314776985216774001516147037863272271078330151749790102568799980849551755813229435488762723820525014745813177799366577571020110219668293409705434474113563379329763850679950134613691955618446348815034220486252736173850121270005008645116232763371350947393436742223303493386591946251311970285415194488533546292091150450498318037944911795966315225296868107725281649371754661070964027535142252954281975765669217892947457448444679286780293279246782821988422594912236455545375306345631791161877303622809200316970368909024989507957310735521724367251695577466258192794922005894897748279976624444839373784668740497835448247479980288966684293779391248233327264683229885659538702494393992424505789325781017747037699290338048154441728307510396793740139540059667762421205766721784540867580735482867609622367662493298475667769309202483000001654933720096403445829250583117001129450896629307594884742375415290733147854170577439880604859468502324751259268121188032204733322192502819485480897360608394512412168693949633302861929588512764102511202404903925885406745184542538615056883154210928976654773132844804860426115298547977515772133804361782441729250590102918973915973988104657618085342290760815135298970155168009546651863193654627622004355140144690912921677096051295429141121370683783386286238206670529714447008352684652286489674578681195601227338629198336369344916250510166076220303507721420872001053940490223572187140859225566672070194638539321317540378923123087578161468560226050214881102187707115199009992390532139254082498120571280315634028432573306783412558702005316589824777959598454023945966635608679707992051295648770460394656818232693209169433900245900522028507610646462271348491899133973306443200736938661802672281829599595230141327442099840214893545949959325131892670179539188974145067758145416498912192500837711795507740061606610418060424780340099376535514385904862822756300260468060302995113627738581666583519460926715409227773410750623915947331278818309332776165712295133826116442972438725414085694505742443402443000860819081781380191628174968226261531282986280691680388135463672297456162642993149374874370457383430362965100007104620531426802942279622902723562714142190010516980334568459429600208198945688218941018898004924181286258594969045991477058853822917271581185316751118036760121096970373920018774474340718159581243915815035380859552944388589320355694982983473333976431244479425984308845139158166993307793776314400753302480769364245744133393198812511190120139981354015893885898521543041661990263600868579853966845565883083080236691009734404850845439387404974391419920042024062001992028301580374878873234503232927445490748526238446094981196176777198057572988481780474737838953824474727404555459987788954969375605937211470246921674292441661167052211601367989211135358573361090042127737272868875772134977072096800442006926888467849469501440972536126104819418932641403898997887219364943026006504013889282664509057536210708738418776846806859049818550299242220519040321975474411614845784751840929620819779895748717834568156993555470719941558892074738384114433902145337259996937344776543652663763680145685884832864482907390320896598559962925814541883944888166786347052028250248214820319551209131006573828824494660589246143578827164056980400554384543267984744147023511011398852431165983433112144122815907352972069865258153968880754501237578592411412953256744888807277070607044235070379174511186584323703657196920529557462450025021964185703051698059876026471637767757123484800155422381820678810052339080947955252901258529475527369827684932447263867012792276300924284854651320141433147767995698614787691046510923382171163794325301140404191096846142233502974508974556000472862135202415232088396924391720441707992306223894821928938510823863869902267628027258373702594991687332837649061433039364363315322917186325902939260508140968240147228376564131676850506253530450130039579283948577346204496231095354888588257193905444095214366877894633838968516628964271278771080336757568137904390622967239727547913285249367447388836177379353453982912579370277022887523785122698691219395578170488527597626348859957613125967561154770751612700380169779671773480406779082526938576148586915040740338228701496397440911139972451248799325792978616300383518458085349544839193985739441823320725290311004044802209262708987855195264993683789627148436109803812999333871716858856538679512363305052759617551357528306695729634176510341130148106753840875756229681311034948546701865897308952844172376654123992727427957027302244064524012544260835196031932950360167148041055433912505568605310042599228063554387642976707143285680579224732056699807288833239571399994644203452889837280396335873453835311272000271113137078000754822206431104936640469030251396434389079598169635371353541903977351934733822028056204810793347106426582407707910493752485122766568464297347561996555053834737790198128104938353321339255541518618240555303662315740505545212892751625660237482668617407934589617526364140936794280221024657186958414077502395115076411015740492503511133549396100389457976802474296255149088834159942413783887940162868117653305841067327274215163425679584137353555629783243473224160461056279104692579846153444700489476890485854353079179246259003493168317971930200547459548792578827571625112970330507663490704367732689725186617764359199468750472802233815535055898142408272054389562554602912499219539947962978738968187649011437968509282433409728705169593836857495005114044851137956370805252312200559125207645970913077162231271552631633134353187025817895976513789967861483185012827340869703297376170084362159323597643277731993463320837484331622642161265842672868582448089762098294867667719603738655058472645458100548919185358671499481544345620148091361779289786026956417282771616691323202187791215268895704942887601470590590637098927997765793133368985034860755318143484739764093064753153187061564096121464624716640311635381853342491520397485292525184541969472634715840673383428093788177405522261146798693630595423508805157394357583673164346504488541836234689185984301078463671373342562922813872210919433335089349496974808409587376211851138175623716139991463402970669501622460398334832024943974888680240088206299203317467182705641036672101549319264351587916752725070485956797008205427859755332880975883539813079762435813811427062055978370404000196320645516594183686716725099292243676172769954924151923308354025471678835827543535484862985069399171828074643049293334512479182715275402614915367308138127868941753537038250479626721296484209991951582907387208352119905816605595932984350809833619809084710570593277968614432262744389572542634047696169765239039328425293586778590342975829855739655810651487906958420690477246091448987718442129250438562165275631067070506794001364688149640224690066796687397051075893372582960589403314536308038766800803291532896860890470412705523995728396069523059845413578409617432424917325036729448302032681773147343347344860292554489474730031365908632729463417706691388660043813626212899743888671667792224286746518406418474623702713404119243314531909116208897404793608568750492775954408672590675006929730643028711362574699681024116593627079905097303544685843837157067732322607269696538008473618032185428414485853133494123820971752018918444069347426063381928324779901500309153354497696921755330884187775073916236430449075192218778411830306635894281202879464536680689738067705113764938280660755873470765386957948408891195109763828464826309171995797385327006606211469365518130100444008430391576336908503502625880494672885298436750533392222740129012504459225586556302127434737532148996909202810800997422178650083520318138091584413390413869948758071120217554419979199272474448317228421987993811103078769475528026193652680533993379057492386862240469277589018696211410852870373812649767008846079119901513480144770807382088047732070949290757069306138652779098404546460341220713309273125331294278206394815530136719647642697994757618894296180740778233384510122422756799841162717904217397530876804325559622238862923104434227901661257293395886201305569780966968077908984974898130442525090890390650538868796372786333182194641948313603985212182877179833708772291203067983366839896082251499084723767886598764627257835575837332965258893352048817169160563271913698860712358501546229129832835311574400434633154170353688999116567881634953797299297656676202510024712634022956270188182144379947834727582015730298932013534568185151589421218152989386434366719372376691769665525702218599469093961387273186306206406307117917932979441946543803893914260670519918735337814654135974707779809273958623355235372372837226507959998800244726590446063341247418009376152215558622290827295204208506127970850601216392844527844946479496931240452261071058572575787708736563801631840397114756937221581452657946728932618738192173325201761667805340927991152035802467956501167168472901603818182138193167685699073573774719320031547359606933210091350509008047351940066213677268443164540120182265340325146567805210702331334301773576354293329933414942860699817767515080505232736625583361907286276685440942131163736142966047246826931329883500289470844612660478813155607990193903199677961753843994670865805608319581509689969698981822803605092762258885939411415552671631435073343255135585918646913483418298761364846964744167748828109945671489895297630676144389006881866461574302123897684958546414433201214807456258988721447467793680646361146407113246340424084388628827933620333425179896467182911882091525336083698932200995568952422148689770848314911583740499385199331511253052090675493214913986119339030115806766527344397600612610824861883475337728874511627969903320074754727227780568523922522074824716863204618682598240147258258248561015784636361393327913863016720749863703692865839804880655769187027022429311655390801484571173473880887212194267619293680940416175260927037273204572890254601818948597226477166902641925608635356477626491495045982814052473591198170791700909752708530976566917566635286476953075197803690455017370683011032884574993926045940320203605087902234204502582919210440654600442871094968280502389603550585357916745762105222275348531079730154492984986532081592606226715319985923514903818241342126976719059050986957489209017677734817209381079332972390541148771846877384162525873673430311569197747283714699510815949278382787241515852501474617916429591185416435167182271259825693400229923779414919337927193907580260062483802638106185854868314902731009022041223114940261957236829767439355204936057592223183260397336985388569823258221418750912542304423272611616428406570002895466528706330398978168969152709007436715964761919894555848595657893642769967512894086035696478321824214805428009566190611243182564634747766831840801862420809413107484571158713880459366257295434474546506385359249432777993598785214748293021257931785878258461993458419049974499865170934911190363174610217032990757241744748634804802295904891533962972999642681779513364205068704443457053247905687266215432787840250978854496471071591752981808022791381560680330479352130860015471399100387206319268715727631574303727892329480357100983155945860034287054958249307570698544953550632497707273334131159259317042173377009078748563859806631266620198006539572511431659613480387178555288021763987761891427376460958104694353800960483224921358844475818356487524183423221143197000716568918815707218052528737777415347886722458689541617741381157203664265424846631961585539552256556936650353720262278248839737358796360514077927624552869731087430811705279419149906265112608563042322591251386297130921960174517791995825581376286502918834590143145661063200131870070917736686769076369654263982325207714538342551923882419891612929469704711020399598603142522386949682567420125809908278759886256067104389580338490863158185742556582103697880924485453135722862364250620751989538653594073361883190727320932004776372653243840245832794718068362501447784104835475249024955280605254265964658402760084002046875776202052920861076562768114218968408277129268053545016163358669020154469025474682333235607453993928885393969432780795689918345299978665737051412523462156673924102143377701794853828631813504426921283379391283829768099956023619182579346226183988996161010628246840560156660791150874686517525663366380066405600840465420373533876923125486047133185877984564204637744463808827800313654162294500487023019209434167062836047148910128313137490482818387858148853221353409815099014418906230319887628280968621660262302813768702063740593673090724353096066923806613833478685586664096652252777410607598863112708723047497349494422102966175181727637006204826898389115232116678074167673593715608881762346938543815443844091934691940567426656370806420675406246637188394395924121487310535101499219428346028542026215724978640187706538215470544341631188550711554949927007802726747409328728544012116730879932906835229775904950871278525326286398021424336884003440189237590730749999538454308374316204505306781956357391275553929663996153896323033446144715731813906531813935796898484104025079686048668638190136206252877258034979863990539130737769399592758439421790983592680847759759329110414095309337764562539897772936819733380719495942999215357497349051613406280548765529456899988252614091476662542905961570740906867632458956175814216133829855552068576340158643081437844254548370439830666089138820318093394003812950488596352232080911154543243804726283404928737425909690234601124951769797019553551686724219494126516088672136577837140303038830405553460520652347809416164867256391974192639877530728533863298319951304188907851710640959309933949023670984063724293652341119461426027479661279664879856644165193173176137656376677138524137294060495549118389605946732608291160709213715425427688813970133968067010239758310582980805219439721264916875423281035387574033001615208288476149923037975264308386580812254484465312023913338252539227202365522526135618303987258833850109089594244353519899310131495956502487061154814356525621901945680919957297743836440697563181367523769430165873600173840235972177887624125815357964453766905724778413966859261262070633633927773255963647846221934540138459630559665886574583865376223293617396167523732887821548855936953616250259028688930942324726115858420844504047705158035424971581534505665564116107625524293643120070298672376651166436626507017752402485498676592932524333696740996247875469822260540444752533035485247364294892807773021202759087206813208295232108840125897204537103217197517419458600503432863409050786243477730836173031521978505854101237358843925991508729278315367427552415069287328504618024616475446595231736595851040422752428525531211794749557996303307460445401685424993074943664279558250102354616266279939166545116941103301555182069036569287464146710544305069899019562234552828391611682015400726529374895964669896476483276114903090326925060277198754228716731559512288934071654937029548679560228614484511201490150580662438179357783493387122707348887051130244179130478581843011583870177938201072919989948290755252599336470175015166138299776462304500508275970285775747627526908226000712492463690856924139393808607055375782822273012929712270413429422179898166014231719912993495613213171250672827062590628601958740771647907080983125679955690310757932392373455694524582797982385578159008169195926803836908586120201532840316207119965706201508566803193566197117024738945978729357472502793588239237591854125442699934808572137564302836072383307545050658828902578592333844910649282920134144035470788845257842202905889118430687687087908548696395079461477087337445055299744979412739930447091423680152859944523116131848914376188851337128517662628735517996609129689347280716660326063553169614549683891121109007273393101480009178122130810587714948747767376510626798662634144599379125736608696365082616958977303442176372749803600843371149717703605129545807894991167787198165770289067467659515744299128522961216098189890677994981551369436476496138345925657870453891047459971596804743005213753940888038877391325125582929740108585509093496316014187479755611766925966557952645713117963889606855798098057440925790976577034363865336504104056843946917261699187024385372434008507849827440670347271854890571567180291237620783062264521187118785139389937060961564856980221320955144180319274766498603213056472355918498829385473735807782187367800313508442426355783135534768561149204246018204477343789930899632213964672809266275773279590545378395965464742194177870395775435099887882035524978857787860635179868844611586732385271031530497951942815245921023390832043255761283430462872775660679891752276423585732475421323686821275157202316821095325555543612499048157639464448898461046228628380489279508465868149594625264944562648951720307155258966338183574323976729067407489161992359636865299947136051471522097864315178975457421487536000809272615143350335186590505908020274171511536392171753352451761569632055318305459035965246879099281069188996791439892874076964499748389796769214311143871516826752459184231486833153375103319576518399749428188022001719171977249227234826107451698527993827094796430896864395701524333121821406764386752409011502987274326020829550430511479071182258374815561134201424470631288488902612972581671269821561141365119193977690357293168795357721662173757819531873400942369374341875233297037406016065607555684102449036923888361957896043450370283869967239570213887454424895165492550165155428446130612554138601900831241659692756920484181432545604313945596891391748758559311622353370753363309929042529682318303875239173506947291834135915482825062260422751946991580238235823677966295517354312478987641914539321736297786219391873791655464822892654266710749636957502103352373914486269214437565038845977300440095222697269821318301840409205803432385496328985267621171975082407152511860948691994048323570633257458260068967905568082790016943233683893880789973043614213848608535326160993247557039815613871181613757193609130741965234889139983736128638863523452457305147242776651082882239755922758937184254725072041215379964566243808840063839695474393850804209714400815476912036576582427067709421983754844889943486330285147445754024153493255030520189418889855722596728068833183376360147099656185769622705625538804386435570935057396656078347633516926081829493374046858434930414257232655227356431353130443649479774483694942267995649058468844589757226791363181936748230761368600856113679427004471101036499343089097284119993250537501118654584443947437692130453291597912361720887612657809226878346639670412584088236596498969999838664840402964420815608581333710596793212536539070417015485033293515893652488133130422282222649769408018032908182549496913132606220532916201465377985047549468127065653693571762581353817074094232906684977988923366365305328195697054618859557964642769909787001814401181044697641933013099974123261232446839100904517293195347830437537951871879482410870094576114778792994491497227292023762474708419138889321054521444350717122728044061205729749542503448473654376009437241494674164435838740077113128805042229828891265021691634892895701290854037839342307989855800978045546120750598762640306907821050454714856904897057958906926447198850575192042320404275197215193105614837939278958744548652111178816184259539716953501094783326146094103186933374824222077903598005259392973353453800530764443370867448599931420313541091674991353581892415002004097883274129425485731144838009872889268012441059531612465629673069075447422759261165345528449178435961373360928643380294787057929217464581001266782983431351144798910025209477480008114521395724321426297325107840224685619852742567943207756889483110453107596981191968389178710192384909399492629429668925171927913589190491115518810073047751916947462531892218571333179612822580062532512404070928607087612619581857132139748658571232693730166639648588673920192637352807553945127422766744548394977631047764608054508987778132656761271674926341987160520612627525711648458332035870449944430628228803260901843757694246983903493993016627109780229602364715701608610582907261813510226242182285342547564542092595449498601649375241356998715367285680216176535564346035930013909936677757381101070480076168924264065242669179324332352993461061109613993535227354312686943876150041460413094858719937830929795812995749170646653827452144682526919949886008678647715870687757797823779390961664227066491249514963187161230870343323931276888180327174321051467325899587544612312641340158532200272121867108116731241193286973183032514746970081329464263519721616912358404913214460215107329293830982148986055099342291919984208893466378792724414384762846082815653721182536105785098103968193031197565927552027483562417963250391851735134612716185899135448434486136436424142507429780595532631131512400515714503436550298563278430589095141580006307611636229396801664509508638062737509029786293087227629357209287954926542442284942283070385010564160420958440132457284468362242341801253503730953758073138882433016930235047042581491425045342779902759342148258374885737984615603760693757227306217281373360081045944503530596978287179570100827690093503105185378034269489711135292041232968734327517480143947232912650120444054603906146373818422471059723195371320161843783689009301451834596161704672873782112232203466844422895852814632575777291854992310623551063273990582067368722363732711074757414960205745572972208150940059959953578334274541170440396133546982909739336743733002068200412135268074609481317476647739822054034616379872423003099097715354857129755668295403085103934222327214738556123538798751713784200173121960590990468610053854834520040112003569511321323103560018792021166120544222380164472233240982942168259570304703148138304390168676289981658323470237976104769748080517715405028747089051147274026501966568080010994760573362388992114623732409608653047758790689785058268366685247805636374390965655204349541396456594677839805384933290592597460025247718001543127611659956382458858874821352931185042996389675160432759853175626292822032896746539308839098574839429175856912975701086591330862948852188033929821654272305154533654647636963302783632521524212843709577014303399688831875689602184921597786475168765602511997994349183011495675001861223629785734687378104386892489682224670033608632781026183865972851182675400094471256351224709697657960025013904832636083886936414457642831326503493153193417341562623037398059004268260383301976952295956904423397961789280623227258271147757567282057448946966633530618307769889193427124439320490309500147876668998453914324250202431085708464991234842524550436486644735214700302569379801127477431961563831537745209639426643241196818214932494874524339099306975621520569303659129319078746720904202494638114158034923516288205706155549272122170727800484008795492790645174990753032687916987390532398162319357881577335595545342641698887796009008165090682362951570232171723513761572119509627107051600625435429251084176976439749214103728548067125590580207080273343353932306033579947085875278518670230213714194015530552211133959510783192958023997269203716536100471203964136871615114815679341624185933486692142537551008247974551215391793614654932361015243865042892996331306755327296306467021095824445740801449169003477701274941964671930250375090216309150202588815034640001712797315662400732348565876923024531954462815663645188237599470821454239413551439420383476045366070666547318056520662392805946266766917310360635028384265258631895928182875178339903217552489905027735849549720040802557588774581637133928042893464669624873542013146863240371980791408827482789082097287990324883378808974389278633122136695038356077634145048263511540394523177725835582163490255651165244871294564132849820077807485255571907432172584968119141290966899808685876862177991730066150956650124157395275425313876625441348282210116823235762600057927340166682235201093732674820883225374848201790159802151004563061929954661498066417242827069194552725350519937260678846560428918210737270594000128719394929927703271931132990520950302712542969660953081017009477647497546151300467130222902459379345388717160289204366126952769093773388140533390027784571446655547481296102731352682215876559143042469127960004462953210726352333945066048173688124876279279785675926378037627124535788717376518348680036691261114174256919369388127405015306295266423442377226320538075794649860209024162251723524444756207020797467318216687808679666869468155776314641877125010271332685764847435661523328781794861254932720091795041452064197172248745236400772047347078787859926778845046821201579958774237006878723920173170157450515746788954229515028558927758726126926891791921676494903679885007254188530298745681349733697714390677430607722705116495955927223829023193686053070381707429696984598226924042533305967807491247437327253623836751323851921938566658950574464279834961459964249747612131660891044122866782600428179973848027708815682141855893680566974534315059516656045368533170982202272628885919859494872356110447659832072047997948526712091948916899881999238120688962948835514989631449791055045777895093319746047388514264098298642882655958205198572167377606125541647404302521153194152489250114742956467713952597073889619224227712091575794596358477054205245187273403040813674009338618424242637405173864217657025024067187071531095977523621457483172101239796303463245282979119442305729627619170912260340528304086474875067710475085774469853980511229091490310531152156027404970432500410159657917747010059902267928071667881070165340789811290973448539573232433541697187592116160626824951031635188147054311277232778789657882090648036663043957143840208151646069598416095098501446964666473411669871648341929343852896629594255532233255533590328177657072775054397746449947274961361820114049082519394368571827573649305830454633466898199633573647272931141083976054892609995056594550247377265677765346224774665428069331447880032843712522611182775203554033699911277483388828391087930623539354968278818633856099814627296591597498506877268984288797731155275028279173742786044419760126879485050651392642691238772367325986610416287001356115596038799620964491366692245985747388530468746783977221004956380263055637815273091686889546835776478456074682034377414420368039376105368640634773139672433414896091472261324071618912561447879436086323243703182393814240559584509644686721709254840039088203008224620389755830817343802481366334124317773356554847215335167455769852193038494437540778873007086704590605119791573312987726636658534850308906497344476040898651831527567710260575046638645803519387626368566778700973841175524882060862988672937584952701198381133379906488700487446610289652636401379291738048323231219803799265609117121305159742661216025512365397072237768193726870620841295467677743299419413864785080798148550630623866289407164354318194267194681322373657967838127839615313040168162488492038212703302036921959658161798229705862681552478537018225051925601633397091662011469563825613818001207030390751520649126642067199412055134371160832504717611426351537921067511209751152776007847672604628570931949574694819273904187410377672926430260973506698138660610050399107445437900289864449031537713056907125658140452527304860653899727506872668622402813305801321346086351719236941795756819016254752481663710571335529364054263775725764674215254313724753736801656550355151059297136475539424063725328844457636744137822536084347527472315760454754447557763821675418381451025152021047486098502865183437777859777281920253048286034891698862616310111941313290509817088149683703975838940978092565667475552163046965057684465513442869378650888277342279264978688789391047863169062969810167794023295260881723482133053604017530015556384739741120476280453927779233772268556766452439757864677433407396545669652986198829999620283524407340082435184857879085922457990283606699673105083407854569624562745478248637245379189002159497261601479021034347475134504015874530538244975305222168129433881749648447845901915107014956921260347894233388029676428516344070091273498634429107193404101030145373310426466880353987591652969578778380249836606888244007242118698704178230302023750163687085632535167763225966864914475358563956508491926672890329704931309988955985168317067629609694818251837717787206246691854914434100497691004999249628600656658428963447978320878565433881568562177761574480378371519684920717821643754842468708178927490100530489252033105159423893865903482528392943650543349782606502199709887846147087265064800389939606851230644583204620775342764686731295156510846897356954531420127172302718744097879332650520167131947682560635681296206101306068899763886760188433471002421004673653963624528350802236563218528120384684422364275894218988422487358056857952965869504829369063518930409542583399163746233064088192799215921302435504791942321936065825428032248036298507864760380203361807623477456047188792711521088478024452450614018473903197149348448286270328900862322729523660874434476170715612950459295820525022628651199605432505191189567105720564766920295994410445367135137435813942208878419350501822048682547684031101062208805421629355738570247105472015676474020593411744899279129308332202191457995578981766791097841673847642861648218317441931369142587467768352449535706722541377483626473333651530724273096645725788508097060272172063944690471590827533571372759236803433117705790246820902301973161740736550742659848868045159263060435846855616747774860754647579222182128068617988317469085722379179885122875559504290715586043464492925472476185532370547446581949277620670816751673202382052019027300991319829536692936465883418410413057236570363570196143819158330860354414245486783634210366609986545165213473808191526193444105027819022090707170647003424256722619885612911899322813982065582082619148967383376352011224315871134033673370452820896388516548304392817675474659178412746975017326197973579068006195548805535619613704740347937219059835252738178924298320550531612869137813620870457652337530412785199915997053616229193346721990849667449896141513905995191003835582727777987064973469424363646170907235122123232409873058267702932912702769364232007176371835637207449797732608236947728536619856900852673463795726908323649949123586163968249970273146939931377648492506725161876439176170715868279986373730311014205901190574932335105983099673818651600134978014178416396830067726189752890244190609390576924795606679499807250130735085000364909197922477098201647563816637842898828522764865349301232732409984574258538244163109585839250849676527938460823109237227952759503606737563607914875508318347018022532307890790574478633333622555343682142983396742215049467188190467243901215349009024452205241413815116419991811055008217004302843874360180424382849406913485273921668747753456420793387063052615863784321612486450312986858513513241923746471454185216988228263964597400485462199964039087638455334682641137826905881735939194274470255000377744715619030424432151748716900941721822072560936151783317072097623685586705650888308402594988902714603872147997598493760072362256536724191596322413994466008808431608529109729953209153820997345014584258561688041261108390132233546717332267911722597963203606706919366714055338255223086733348692294861688520569195343152008983858293060090205886359310807692230935921237004299168559931251622455876840815559618748082258184140755145647474763581251737475081171485274067965929804351538956472052211727706466737665243415459742244848086279306427152894520304524229577536655846573964031972888061607260008797819825233414945294587275306068518863463715771474854887591732222441003221707607670716676440658705045068173639259942997731056385154597118502376665964621123530432722164132972586091962589143828615826521111964355364844685875771701009638342040470572170895564220879979428596175266488971958058367663663062831714025547722400940090145190907438510725311138264353152337281417304994357561830927338735138088052969901765964305759956949945753035324106936725505134262760083061744770113469960068455694471685739724432619715716043121217895208437497362794960019331852623772987947943306758259264924725042902463770535679326264202057645232351811898168392226368564622718878857084192843822969490914617356058778486676420529862473577728041301040846343615045048275658836125418855449858289392000058601340623798690422713491169877037678306568130849925671194311368224246169078893116453941174786695369675281275361727278928924373307014080930968725377751207306741027568418897271933925334499234309945491341167690340343452595506599531896185923176868185819204409070473092063667940767490964817893694391455765474275572903286681917377470782768646104737046652715476612389197095723934766119598967457957511942183385814149044073170757134929791120728898381797660718939856960788867094544622104500272564339629260472572991248960976397218165417641755583444517434904882281348452264307570484504934613632770838325358902603275428520939057936959667243570624532300248275905049238270890366426929729563568964594635273681833992543138278619459368120070531189874160208242275159314532600927525640096831480720908192233242908782075649471052712673030341762510321337429672449421549962280279530687942864242492584902727889473485228426323159415290474911216101231003625570481408168088319341478403331035692410973249299328088282509690323379292306975669435879753607686765640139924275045032110075346150204451244341178511956848890788064867792176036799659578998796095761513188416630707688650400473114025308871211737789972235058730753044044033308484407028719858116659845836790748736340933278790200091434338687414244602218539389625906967771643556076458095771436807461594282619365571311812046011186493495998896831574707345348464905695992849898242171598728419394670226381201965035413003670438971296253692488414872824961952120640392933487031217162459449377943828144950136072533562852167197489186369412939159673061623949102262790383953050804165741271882002611873669321421715433121530970864738119932253048440559143555080325238655713394263102582673496815734694522898893072676398949997468644699546726253283700480516435964484058725540383965947284661295464712157116760665542391906901158395657192931137046534880826792966012064478192561764144363068884907080705395336033320857030977497733957413230659917327065271156794080870702047416263602234453781719018907050296598077540411196731540504341199666603551136023631806767704865128010347260138174190167800942087747553992988057706956361600850265783917858917270183276823134355181765807953071063264137271236911794085601263937974552843027256285815146924228829677473475563608952821307918143114837314953197236604609124786641302679661107969976203770037897042664053730187640431246067928823606808781394601348282422933750222309892751362925484429852153937519198328738260249994620841356190826211188493822184428301061029609037257471445641174475602903328690514085363403096748399056523265925308003567002792669404151031555540178799955150649535752638233474710724315433552006328033424106244638835459820946191666501931883457060469108274665669225875683485264428118021756578767615686312068443827532409126900623742589017883184622465235380265127130416698364749485884638182914094079529492294029668570951945520052379974127132598938803048152871051829944115549776487328668884106294085986836155967888053755152344663247752182072205927946816519923898146500932266411142511046497139347575071458241086954721888485145837222700848967534696438602845705361329528878368409429640979661142351411072492559142793030590866389515029557988972454313860615305951428412843452081596982876052147703339317456762528216908421697182314442768814881135499666561651581518938318064629163210832689715294131255408219868747261058201593085530332763923511684993334892859133878116841163970498338513813733882089837465226425523114330726904233260971478014583408647825166653673923699980453036269016588556241920936136483785703530353222260574883640801880665142491190004904164464481361066479582928882571797580938814085514224609395458154052217942229729474612427267908510829870708750253322049341984842799463998624903311001689988205487987375437079658295620828778752664519789394451800654548809577126036922973141130966316853450140259444839595615462468140566204450414661362219994943375954464033126563730275679892647189110044420293393753900803093799677788029495406252592042696595236386225054731742128666479076752299108650562782345717477788707497762607239769102030768176184488146733879241408453906880003651059835067341320543441867566256103354771564660666386643018590914904210441709204183033052068069530920019537308762691933686608868722665924112960626349996060597842170750468669769035853685080968095923731910367857137219597673686434152604677342289224433232606284210871621482270732650809744671098778810013252019008853989543066548051306321349800207848871868681498458000787529042313215091055232888557512133400107423632383308834002062007874903683146963333694994204427576438277787846249048525673790534154947580144671658624051092889906034472912184477206216201508514155575171599210805556122549245889008426625308437720435138420504270920005987310301174309123559544144624261969838386075417460323946666629461441553562819423588275716530923599542532956494974820145988726105533569698885260776479278619086692548721874546345241339674650303598519598082185766311090548371129037069245590900356887820808465121154841327087105721876221357789656104212867401536464787521389188926342693311778256552295941558178354511073183020814273784085701671609882795635701109468242975183266158184481505587528056311047182603943237767334964449035770751389831461385618594749463374332033541331054279024434098931633809301102600427882956450193292929754304553633803581948626301689365398835026580903461026268713420946642925251108833284223692041168848582115574874022169987166848700027865206704203307183866378304000558333141836865439509612815794961230540599355042122625440565410269617537186625275133641699244669014591798110952220561263093783944156980723240332986111040659020088194886239604022691254915145222790773003193616140209696038754232738509277628223070798481547729490002332764190453289850797894064568713255602546628256093347196404786867898184409971683967200173374966270505740931643785446363674097147330590879235698819030713785559701947326897846798393955170118229367365454689987690482327156028633233102822063324111364945908081029860581163011038916503903167388154772841937233877874758308668805569431384277694835059113331335286060419966831154638030739097249796651609639871451501546981791243879852990152377741588671621496990589540772301135218592563684529488298376242918078706385265264037200492183852772281255541611379874749174187422580808933614028282333177668875101306688269570816941812496284188703353135851293775059396180277692957157862670109135653798688960880915288673390464000868833002541794460567242666189019282112525322698539019323408649625391004263041639482588662441292364448285984331073974239096388058117598074811909778207451067461594884880885579501019329746260289287614902647487733791226199876386588231359809409930540595135688058005674900982515329704461151485583697703780405027958133977401572678154576421956696948929730297966335656930956722744001075084139968422477328560389615498304736223793383966388487742898291793605216930789937475111959091545645153871609271815744367183977026401357608073651478333656183939510906379548909205923297131209130701991070809300097622615780801599376604961018160233913778863113478638959999569903691098609350468395002059509151684577213683739787200269960178897764152222642515800578196963590851355177633547361936868025314072954011347344854266156842320389336556567840749707934890857534011975450555082612677971876794074604054018971389561569892186771779290658949361533538950558797142203149305022784917309045253419272358433250986550721733655120919015586419958991889433482106707207215675075665076112167186669841886425191616257530012003525498074620564365739763460786264344870875136663106408265984213568520230947765225088454523901968645184900544243562658593288512929579858101267479408187249965765403301555620238500415424375182937834124674505859437696324046886330291606227983013621396461001749864657638597065822174775535491142117447262476499332451015780685574118326426556972022095058913609770885852553329969066236356070215770585629403387917505034302941557236863991037808400253317599802005408290645592756184732761395144945396612355967554758924610368629310147474922647770663079819452943043197987379880066298899179611533965191348250092472787397488875952146722811078966264864815013873324373833660828444664975514378970434725428239525605669788325595259191899546413777557418013708963596594226603673990095058435214216250202607891784005424872031621183471721678301416526111356101342251705009796256259791840826297415246514272577136785248432902012164827517507976605770590694773949707393862958936140145419216265617561286774044411759608846920254214507712130642456416830200365249261580867100969962524152100182845131985285114821145967478047984575555353642926048701723545459866994548140224693589157156824201850910245943281275496434732693009231232711052586535170968667186538683346496979782507316482865757539402945266379629883477338478609876352861574519755708351143877677803408575049542124999284779064390647454230091528800863209678710459530913665157157981132075682572645177424160323769820367530696529576273017841128068497122738880603677166961509367180150744981759391475562183605865126819199326676821118675398584587190269021634628846524458582461202246031919969849823372193519255806504884722363262983843113244379571271268270617457631901556926695876204385283777231577846866380765602403143835129162253012246298445990147797388917163761162892558122690651671103029425360437153713175993963578970585004903380582138006688688533836800352001675451977934192183454400479589345967129093437975810768058874436842960878283608537474939913266817046338775557233003388094259639836185941970514337313925695920422128383823597467703234421591279542230287798839712536567882554626459087732162343819250170874973264263209049755974424970220374836780350641655387850522433681846370089472753893276271952053046223826878044482731956461176482310273968539588198112847528002405969980041202030881924337855424411985178417195327984922572082254101050689444500591493462406444118435689818921419368336972398838783759113259535983984950451642405710563603072966140656458981100759589222798144020888290008367508132263515748103147811079578885410580097141804685657484586982180563745762113087407638056152838652115149057811177384730202157127878489377447160447568120799778550177963730416008427854674220777692205081640558207350135103630970632484664910701674321711714162653951020343592130619054681191928339167854482168699033391898856854926574336317955487161533858279266267715802843566658393527118280862801255068996008655956955597305964682480162677824369496301747310162343092253587449306027975822495000487861304826248390322553235065551212238141251974656797911179062801793360303887189814396254890913438727009142006527525696152306772759900551490474940258682966914634286331522205821611778913728769242602805681065570266448949237913870969409771785310217928582067757216100746729781614252472443013705804246895203501292025866835017792232515867065267627269803785064617860886756110428277067971552787949919156051313040442670731765845565012556936465865877336041814113768355154380876632166361961684381304573619756427847198539313272058632088565310438283119113064825652318049483270293619406389943439022123656984141903196057379024440359510336752060791019562277000890656630380336218946470517940651013087312568175520066957735364664903059526063257135111345823447599643869056553315984949870242252670504375206960162356285680980437769973734289172351518718689287989851141506940374777648221289768123035005980126565875745512265113970238067441964465926025025455586255468887504660232305550463597204122130299894884449994078154467052093535320007036912343630804367752035841383788507626324642766959418497221703535456151130683747655543395456798131425497967182414600044431515015259635041335577380690718375746242956432289851299356219525469144008651034323092597235288976613007261701732389109027301773449951039294886036786793475379700999349327407084677138012519636598564569568469555147197320921521452213199249856070805307031393147717414796864243505134430648484193832308719970047790856365936198426665237394721840189184924148114357607714294966207164214661016366279933607936864852505729395807391709800004486105089024895835353446194768331599853954914610178975935096165042715568464026909701916827308978007018925529227703021063524078385459817484871164226205281085429392648871942686721972765664047616075729018847536640136493976365500403739047769206665182910684192490893477113468933201230904407626174304739356317774152158360442433324831050873762655739462178206771753080853806887262989113366899601907671173443156858431284611045840625724568414675332903825629302014160095576530964470482969228807873819614025752703189563079475934880687585396671823109236598497986748245452821727598340824236018295187958476722393484540078778051430709592215876090783392166973477279788435906323462422613055415697563204547468882540753636013543914919848876235188015400511367224300720807459146900337092668037342750706911133652488743451902325981606636508153078158918154196207165174600691111198887793932624569401470016679088471225438963829068962331175978317538074804456835416218358646083482041608922267836382724539710780377897730471681570955100945851226983641360967945892153869879974469006481865669221513309795524861201766154677974106305594303367311194585892187465848061047484282532083973669983449196535805753422359060004426835393811486664904049671376798240459847494789648154249449960803688538703250030946710746214116330634232666165598259807332341137638073010411707195269627382675464430150919412414383031633548572789054014389259885038582402452910561681044583708032321098578002676767410670217965452001526801143562334052842696650980651749495879322884903737321496346250178719441670403194203908041650110067337344381581161783922545663806510913210632858262450900148972118239259105376744917384529038400062332424876511806094334235052429554436506559509867945515934489996386434043442792264744382153674378654039171027476884130810593055066135677881235735055576086069217240048890415485178514864040343527028176009057342470749029049905311257582083272336826645519645671321675562080852222961111254684086915824055532814483192689834752030333849564215863807654737556080353305096040533903532589770562512546657125472927722696990160771044662363793868549575057333058237636466008545326344345910659440280793635889287414875382406667718728531593621820419154005984967301972779616883102769633862692146663395485596345002375600394883292182744011786491113942872862080733065955224731405624551710374611941744607761732712698001182362855260896252671704787734731718150959360374778789800125600445049266963394930755255673283376642903023539420372803702038513299139828644703348632579384138909404107869006010872130432445578122132224578085759133059923733170991178608123830945527990983069066960779526349382365069406812274585767163629752843326378581772052861806411407480155228443619973105092992317538393556529531527568955146061780798329055637644299728170029859455418399136805287352650940230544625002967139493800192398308432329790949562974404065211328409270051870323996745155487095999873421092917330664923228202963878525273155250834610670360741255672559557521390417615702042644840462237704000264929628175206743666719205341195619995871328347062878680420130227955475314331129159825354072321203524724075161471997151483271269169344494800775884593608910956836304592497028318489065180455297076203693390903322393315318957007775116659703922269305025935498301173338047453219809533477612304362614800949037879630201430184957885956758193804067341814976308734556977550151841047791378134454011079865272142947969867234198785608899897058025711979503078304521951483920756851302281688670502980388248336410472562525485564534229576963872303944406094749328023169237494132128535083131973403687686486482879338238134806604473680993859424621078961861082151219481399394229550215138150223583217974074442157688493167388086836092010809911959108370825426406446393249547342593025387476666441562245854906567392557415922039510300889297354053707325440638991200110175930123116843429672954153439066025483885080650281158763965101927630538961978230858754424304732292891230414342467494106823204349476849989221034572565135758598661798452932142842039715245683553320401854926121672745477552887109757685641165344802529924694633501621593325976462237937452876275470302841112932313311000410157131334020763672907125204001597696181656383862910641635433460720776079864736888395818619288749579802660444194255525066682341182918285623079291752084949693750693159503422779541944240721864057186955507352119756397485102559710250990986181108133546899207018616182209876269196678944167679731876871878263669183302503008347238868974558521470048853197007849747451688893495000280959185892800002094587541092806889824081153603314637084958843934593311584154688980151755057426195438077616234028499303122213056189959435927991004417920140324301136092755289928368963395485238224798639366009127487645734874536068631086407424289781149571118105636599549022285500971894014778240140362188201123867203751760492982097278538875993134083573205689804159254034520057502604899598760024962521949814614964944115380259917789157515791496212036443305231190810357926518640346131388685024204316974562051146931315675795282689104746331506904695391540730983373094572704793763712010389978854559887652423657225634826428777137132009429882429338796504941638591362227816822811077191907010054169356464123203796830801222283376434290997026009366774064367953740651675188679032362270946029800149597334676598732780072458269945128159033194139188092472884861780348381022770638834544168439741869455973975024362548286658001972233548659937521387523195902447712572923150560501059531398681949746514530330971730036045561568774591633645976993060489916616272473725374683360246312125898631951317694553254517964440549283787695389939257301490342308029009144005482553945879961901321247905766463537974718228975675630716980730095871886522588528211375192918440213061046066189493344417003881813446677843973142550853220192307241304495019073514584848905803956344409688201328617217534148473503642515692988474861949136226137654128826602003981516367977856041676751646092628784712435575298706130503497901773239453169204349813402727875061763405210939117642394767116598632228264982153960437735074027296089184154399580561429515011348954646939634851746350940661032856328821398555573265608086759686124356454122260952153825781695311351129622579531232375614826341439052232317083947397332191006141878489760768526303549125981899972615073385204989919189458722762299291395607680123343809737197594187300974811570787984960115533580445908344614055385473704536701724416993338095129845097308641301376043806190641134905541455358433679771779298967337707295794530971285092040188821892628773005442889970515855746852574639169915375767014687204481025700705531924035147343900198036455497520898511517434399692079060895200215961336481429481315171098957026156859094171173092018693277236189177294793829562721188859968308858000260473887728734917203611839170111586007898680421788085425248494797758184502571756524243841872972373296369285126442178864903441626948698759762941543787596077353825972804717060732468241277309710872114502069398585581394393710079146770502077622682512259797379666127797544950534448894863573122250459519334790225699380202463173534931678714454010171719356062784324985788337141154118371422327365782094063979474694784312149795780810726568162007655734836608723583789643467360237569027741317324913194921644866873557700020749386814932449304956502857655314360661900920918135556365239812505026189567634077751286898699704352434196129488353289982522613916361336182469557993604223518879261024601899001860560831734705490719435789504231881206392636024835857877731251295302512662682806522149963987561558824220129037607281680289810303226169925466577615026320273424669543361255019008286818431546137320666740536119950893626625572745531737323171587962131937981950923790035507856771312730105062974026724452653181765583028392554937848292437879070492529523947322455454336146671133161401826866942348948176272454620304245018811274732763893614900521431560746670625832601013345768616278780177932820329855041125847949043400377745034432459456483582997948935008660332804885752857485739912785092132171373134355823967756553528533233637613288059832982222410482686197759821677556618235560042375104651640446554138453738544585921502606183305778067161903935349719057544046602945739794317672525725637248146069142871715038131511889565574853139423979433971964304734501627019493568686957565602092162861773707371925756394159929711241257278579126490435623467496089180176428337596601072313930666103850231893696360243060872778882812426684686639650367631211952471870612214346531864697737876277279938425444137136985952364558192205654462124074203973576180146855473078702291780562902078439547356982606301334284217931339490088127189680564446822398349574066811631994871782362981837923687253391912856730803455988846822243707447142426811702051313241476290755850928083308188461999460088042902073157753858692569044312349842515441688240545525203240085656564196127304991826900101860737616446768089555870392582260208863180381462014661043379117414503055484187231017791306136402403318869787822006812658359594388279815994042805054510145303228690946065799113804549795874122802963221461798318252682368709013539189242694340418817762497815897512398166767178945664024241485959193522185708648413775914640268133619779220026547508880762620792327005610013194678468218880297938421608581621258895140249673657188155464778040249894660368603256225081214669759037731195115015330731304186697049550809041141571400763224387892547421894260148682901316354378666989023489912195196640542288465105007962160447166736045932110208813951925651817454769007272184167021330394234110933357581190748099991146783834076591521771044267034409954893271456818071094923103012876955090501187557047750011374536348608788609844248907710307581635214341205935452736784244143465869815391099830833935053620143327876783316950769033382327158623297696435873677435185319497566212907228552562848938933431909167221728227876092538181159785003040218530376059599105849920585587127019752314513991426199480511420722887338835858558100082398861071781479090900969728736896925633561298621908340335021833612653484507982713453703239829863942648758131761344939028534476640796550525513377708402549010959879075920607074861870605303635245302561968752180574397523717686762956114268708866231261052053189434645962967118105425618678479301532243702923440740862589143839503843279103507120732276722520341455389539193775514816890110569336207982817691671568020076607912354329175538014405956076064004195680992889668580238567854012206882428758668735505964967313058350995414840442929665949229491838510683588246803798348785789077958047930496553956240566973229624540885650820715420179729438981796165495143256285573763020987412169200487444596035071129814859039684020614281097168126143554963518602578558437817942514603299852196417514447839831582997610401925131310902878653940488173488809968553903821318682516404653774798570441191856757067276637204654788959591332574608373017400870257008143731176639366764994360372863379068128742897613145252873502224302916800596595061626615465271268768632730014946946120952218946389332651233540500851987849343767303655799651314829736766799183523958833987022455054395673142098809309149915408166550769454176865975864528007233170946160625142671249953949518851662722029674201119131454551621298922544894556833993704034521357250841721450830825616889521544989093234951182891685142406578884749695575748384123820315619432690727368400684047153241886899392269356093128185974027871899176858468561589805074043453116349358215681014934326682328850998576917733479324673153081800095205663327379424707213383053639109253237488953122503979334182368297127007453218438559094991775155167749638651428475684230368763597754102902740604874525680749817387774597868495204530029855540275368366592702382907472839888967193280690771608167682302287607819991617061687524834208924926729158252089965005530221429141578692355315310492480714619620179549391297391985205867554217354012381491887770178712418719028346107655834056077268159409538445425877433120246438438355090574308356833356753728117189719996538369207030624803990989268218564985552039377054529598604331497304819066343777018904195300804118438850792611488783060116415268216875674449613916580682486435709829954269527089845204161798212801503036036846900802287339774271969808773496843480347920244769185427394519278106465304097429054102559364645645310417392748834477486055584419739292716135472205156480629927333828858702708993909558882103183196865495049222354803628921273110964074171031634396955774044780625268650507902012153095396145524256658867296440231380052522119955758207781324992450513474858252031378264546757208960849476071998044117799757238084084421304419857900397678137229842323541808369727226435966436049389338208065298681378507424132363367411231179604998129143864940547991916003275867454669408412078969068185110729651474464294420339378916978038643848473233158747630723894063508506448808764240942120130570661638209581222631977857422282516243810167398793964097469438787712916227245524112282256558764744872335492450417509876351968685598182857632960716869762355917806314602135994397767602296208574619502139707081737081373145783604751653401105468832107490350077720519379780187297616013472217880688146617923293694086165076370446508752995758459723684544575586866506927849798611359299031937394522353115634648966550849132981932407252959245311377850128899737236882370543810943910915389109244185060543401474746059209493383756100611064603665619495700644736052572536426322148675482294876571103405422741357009792950106951243661923931996878372848694722011490208718092662735869890471609902238346728685757141995167511866930529920116194852271606498866575305225392113965353018803027774818649648852860590869261857196686514260287305671959658991244157980072605473894981562676809453933847398760906144320016540751692221332408562500186277630019190199296658001149149057300765180904876041418340141245399126471705515266574235233526231688816886309198144225950141276879641403528099395779305016489900684747499851845196267131759652289447314338105732663683600188687691637511739679115452586999207772424956293643498361324451765785274211359956508967771767197664940900573560447387863857224141660077340366498197644571434282824740736382709496324651848288042218446514486899258549139224059793808816487819494683715824974927737027585569586707655304085515340776676337734847702203519553808243426620045371698175903146853243973197457726352243405815763334532808387107472491678308893581184739877806878621216954389318835034005381662113808555567196914336032260968148504456017137156709466663141260160731067690905296037678953000378247192778057432125151040086664087958353714097918848950083601466814507407334859856079438386084397799336257572934753123935728031744385186617340646151396504129807569526775816266219241071382028207902083195665364883698803162987615630170451519559002649392925320682353210176352042784640306383095712345948859280689838372199769344809420410179051310415810138715302014867167892479460821473821910415095198328262857952649840436047665489699090937014317668358494062093234443648249991166450908872599130761455936648320265224317309689530493289083116039679758620250373100113595877699461339609910361495729468262798373974923857440396156087041174329258960651701348742747496805563717889728501510856033007982260256310481445779454273808226256980532017160673525336407918014585636610741688583426821668183437842582848961614070845834603872421962979737881334626935988583116998246179614905039939112983454959634789652357250469520257868021883316190889092451080215536616232333687773385091906635197964007164491492305904822346099805527188874841297913248568091371055467228615576542269218676179897966034035466616269119397570447850349394649026532419388016924886269604586525366160671012480032275757212420632777021859798834643720922842560186200982716964394263002801963715428417555923022660385078050758103497949348446878930786001657769389931157317940427758328859352441178113343584775005325167108792299835267451684356704794625906780608763086888873177922790385984081297521150392500733340554754141976061899817243276118921090039399954081294434245833692164886572633219078707165359724609848538578475211267519473052934380395906404508418950145391403988864094012278689215094909967285611153291037671402106399433549898098954131094772408804048615748450232112798155927218751182835829310263330681583883783202477485534181871993429892387679634959214353775982511359829337305026127097886391820308117007078778524021286166522626422676990285599331865628952080012612240001945658080232059285932408742129194044327497686491567827408283908878660872749381709245870793920018633364033066811925012710089552335644963216846570381594897303623974121748198461626682457095939928732077675217339227197079390431759374017776341037848996959085984175342034509178679246263318317248625943189920222723744597712229640229212714812020241363808734110707850097364404421659601035640260670975564895016276390299206991748913808251082558580621929579865037882212706079037770374792393299358110618823980967015435934690530808921851459341449115758025136894631897013895216653520788637137331712786873099646308714758220510808942606210401320467594894226770330713000792814864086124028946038961020370427806273415366751733720675440691868087255756831238397603584496848980423405024969967282345901193704658385737629251653783092135731853308669321683344397079023795351299404765993954307137180026028458710036994029504186458339707530485000854411739483517501123423124831859243167094105605653459949823172281892153119095273782665441678855299155816018988844740369712379459229160897601601967487827247420265674312902166277414519641015184400642700986517957691331171680805481233456571648241073458087363648772237770468737572800260033416689402813238930989185814762616714932566939992632502601103550158235967015499772476118468217084047856016018908477765134399073094993093974853334057198693005061536222981490280539659578798578007300745206162062425332282028697095792946807496948284429183950759848559543722837640850224804413245206644665394840302082630802649224438348286361042101594306615225098531021606242385103349674126896811604931444688418684842699338109575072373810780334691580264202423809165295142602305311083154616939556475068976787608475383372912415061182390154433779084038000528597227097891452095238187745178013962637121129187701844424582667415306129772889559503399781159999813703743722751647692495687052359231182739897655130924064066241603058427423183853576019854958776519437882632812174653056385498053573303306390358120870260766163534453072258403967941543844119162864325289713308690691316726185655429591750624525691209287552233446143096297915696092165681300350755025238702179055828926331156690639735801719206487025757281270855169624441887385437026669755139754364910325840765227404909326200814553257857755656292388329911036089394373808378569326359215630830400846772858764148377902270374186582693815568120688248609073358179278118157582700171142838093546555966307793026201347741970244582612336699254907343784783824921684864869243760093949154841613748436741584404006701375963224914543487212817372086119098180190859423260173918759407759122070695446112374252157008494282859026408838106059448293915262154490228977703182720140565783091584255123369357943547398350928439899715210007662444411561370455819971682664606740833424388389954291829227551310683904575526218983740521066598187175976102246528854467436661093883312310242694588745428169953498845344630285402745040381786860208371987359589321951340964213721625599960380402879313064016874169764358944920035189201642160057946122935419852172647178410754245584986717262660953385481237123137627649402177232561954805011306744644155887464031296268543772101036741926371531181238634412837819544715274992788424686171991202431684428549937909535246572215696348526437966507177220497274561145712641951106421271863807957369849772579665180061814087126148914570666441929457915437771491002653919884491590923010606371720957794745817404352010139276702402450759863747790349235022706841030765951309542412674852744578638411576729564975589682627623117591566572402048674012770332468705365799580720380764023600534576320905768716010065380231944946557940141952618208328717762515464772648403431267768414578782367312869901029492718942168964555870497087516686169649073050287809699269368453367803604328688482673526271953230255692186375192692981661679955830727717564406063411817751519179284707090889461757763632128895040509121374146535624925768844313468915405617747139704035724047168695689870803671443796887680665044297553716446431320504366196848858111664775159325143547070993465724916754903409009989547643982320054611424963379790209984730216235952110364429268192918555185178343803673843383506238987433611127976495376776650221711911090399615398889900549504304550280263689252179085312214386336289363687613430277485174417885896861659923991672386131463801252526243829948192558484140441231282590333071613498858034713720571199610097672499666530365534895737828991646645878325016624105729467748441962933635789669062322640507467227701044708595759856560400002983174167874368012484989547472256151677735866196602933468021974637332782038940031462472912802060558165709901382878941232762319654595636654376810133007794905548690350409936318531115670673323883961579396198535448408917761382690836853551089068156373237524690202896481497604527309537879685288500260999459303959904538853421663795756796133749887522940349584861172873157834467562950901459339777318173002730055807246710134313860701891017317297434895810342321475095118924021437467720308341681715573426345697646409137568648774264542110725906899721018880274479913525758670977163277829425297509783230507270636467008917199792427157915096617719407622844370887394165212422959501436128204768829888789324134233411535682547647149195647040295737731964644485218139116999577764035995034674487555694450630721143172072940320125198279841446188163757284823973283091421630938412455610919539980122372605615077400165485445448381909685127359967344596889766647461572582750859629564826997433228608944628343738590632219583679365625657667124639464383982436926541183368486722357660223848252317428880783591784336807010709413013378630806203274237362743992479970271325909872709639509631617553760572328211009660802812218156857278102380906844167792507653911135760040970205028921493434849005497016418739330881861818709655450327196125586847625483590189522163416811999793946433037992698878824223455101989386176242629869250337187177112390860950104137787726951731219489902481832333554046026330426231797332675902356172094966530297642999938031316022678119264056755927839545565720326031569581948242245270999793508381510547740258454827014412460361178358382862700850631386315414926803481300791825760188327703444730732469935131079070013180638774061270685700561878057269028261670244598570641322336893478708428365734187610116997091798062876741345545995345585026804508252146789441863097285449341624146791367688209894070723082394197888713690509799457839836839323941090892479719069424769715897984250069310652092369879051476366723768326228424490296599860655505486154076556812797102551655942269429324337907555638647466739121854077857177365646324826998366662116574518594713540918076523829960150217379230616189544352758752372547928175395383378261465389921789100099788965344216269230545250929645872856018533671284706191978096417878537735386714482024043264179793920542858249523773605293669675968503760257511489206403737387193453501517456842216076281466295768879911979216728379284647890334303808046237632476023170046306542562986510338103031225482873688033629022241681443804548474017936086098176136363741973603590856998164239019322226130417657716594463361790561776879061006183568766354862260209286124273937266659313639782927220520536985845186570484278706801701974682757648310732105849469834968305469445229684067234942649243171177492683511938666551391903907266978627124045120063575180141959795768587017051400797769268225803475856744939037766079878719266131358373432150467444791881244230491211291335594219268958284398169648022263096502426078484770100541110154750929489490424897101280030399661940420514318929793167579451150049138255996396963100226869190956492487514100829883130396589566634829180260564448302872252941896420624478895411012890956048687554022641542536703547429079229839860883127733702494194355742825675027663113534385600499143966183109110737428423666374614575521283339874979017179366264399530600434107330449042512838051351120183080913191376517527676004020989019754656866195196462777692337723055805293015387753565545642210102287784064815590177101030851345030009289809626130583585950971577628465838826699891032918459020580212857143495550005425216647315371856434784229345677679710314455416375109510094883621224279393113392430258224210829363912273219856041705708943115969330743386762109735605277999313273936948249927196410268803285587342846427231166936686261931236259213570234252102484232551728421973163605830016411348141042189210112782491544800474302564295714605386256574565851564141343769494615719657961464450856092519834796183890909947429297072337756936245821446375308894161385373455955425883230511042831907739935339106415042526922406620890993943849147088831010643109331344818990713840098300122398274401001523554845139640528589570856274422578178974250681277541088257932147790184016371609365922548074542592058579311212105450550523807083274482315816303265677369792398004913481451850589471572012440215854666048422169487903056203348161950801798621762684641772570795935670846050363974596757856841275407637627619898668410142258381207652168773065193154029111173079645396470245968068218596804217084522413351234969603016163029859583848646247941047533718777692307295033806713299229671926052611871685829716337438118273027354352637297311287364101690837755001495863702480959979934736910590789212646591206455794888181863147059924561024160724845140236478650534174580757238476733894456350057928791344483063393932277954401595057089567016573465167413621532038835498191494212882199770421096702191579124756938577943656208598483093785194438661895649093168089541616648539912226473426690500033857004174522662626930741955296077369905306602107356809649746513185371277762148557618721412961434806523554052336882055955717465862523201440067214519955695613981863426650908183612211680908619593239849904284467754310361392937718761400917292051216626473406664228399621032829983369985171120410249879448110762882719003823568372498340850234941492403300830377101998974540010972595196206892606675094484803936941570605276272890083342787279510870489869168083744130653727817678073596912222368875281784618836674608505792829814413524688122074749452598296530881285791125967249155559717093962619862564953022876312169989499632407266917878979755410043387672639665209790869002617540604730225851500731388268027222496351713292593681250340003374417354850451429898692192923552479637105408868420410697524798355945440179014868122205211289850563016847388507976524888159730465320972592697956642008380159278894023426994288515146466342764481110345139838642235302415099254500717197251503153757694077888035081335086204571992509810070480010101963337710537777222747500526900978812253131541484791095706134927499299015813284968249256524413313140961030284253617813944271310638622969617308191723416904240115895182333936892165498130204971351542690365529424579256933774498306175637582411889626561893932604437758515755129849097027413341783828596234919769006745150546091849263869002652092284543007211393115133435393592930052031986352626632674433904035280404593936245761797613459616924749698187184941262958781067967382343828125104830363115584575923217732223271216789375497495655526488592393115789820559507702637939701645914970451439673832741619114693934077172960308561931746374862794773571453752448510450557988481784223816763104951546135440493998859831731907429963988398846266274884079497518702198860359140024477439286921221653677216333108549515447443953989715368633542173638250128784453664432592041087344531920456169703439565325696657018048321336249875662735172320188045337559299135794496803497668392665669759110125374449214184724629863173309868026030148369674285296086054633801406864333719937564896312498813398915698907489558985635963786676224462464165186856970243586357450425742599621149245351808063933816079473252011871853831358957658019026374962439597842135938829860791960916391379476450247826694352356360967019101504481864797050859657277326791300717896770518541810074940768923962226568312489361850639785031985287331414440238929982884313300367552322069967880412702754487639524481152276717054602370588938250206742839768934936849498875293898060568377848957372545799076089122569872246815297424220820657140716702497331797225369093682063434098921398260687045984287272151353425798442229947493090377932073689495303412687744676849473740572743226584638112913797317802194729337335686340312630336721313442201070070918807618956056423813262547379807463014145058796152840342348916668983053507540334871166275953788363204053258452223386197943298973673969812755900171628771442327458874571312403570163261567827954950308781939908719635610235369479167514688018502875265737127971484408627150323995521338656822244145719762509113880209432404532802836581165624394986151637979564931359037093084730278436144948913247247977924114999235250555205617262420489736612122843210671297833905574076365344020834077925514761479399335372396040266182673055098656396271546160440452843833035992256704470286609288235092244412547441326750618789629800679049159685331372089083873033505967912789768738958948266025777073250806025475086302616487854268303645674145395993356745503399159528604911390961889910404690366782529865136490792725601188221418045317803022212298758160921960571122889465024972402604519771695614364442967975480613663038721547473538111388648166890984853764889730518743670185325445017912683711258055421324081469232934267504732058309153092789146643668606841825339308055542322574021954232424429283312871893540019775974894506427116462364632228404063958686608596045795181914199774293087111279064338023739595446386766939104879732281932697025509627306937473612226537428170076917883385742427793181919668943209176194565039252133547505742442104858403826741924514535108649500490688776896548350529624434769511999802376824248025672329751613391232086737808312694036927483341343352148710898170247228857244375073815085607695622182257297900048763906314689595449916735535377617874406385091663407387505890690965623340311625659329830575727555199008780367422021308374590815992856821604226401638865571548151839326308259320720148926755204683003512151149948073302229091102549750733955975087564409609577875301931979083101537941268984550560468346994965352850858880471769052808472492500430298747351711842143142290400099020686034020023461007949496092199582300335942030660458045337481376655815470897121993190392125322688747918480641697020273774846666966460285600957536523058313305220924351188958866419910559241531104602196983586039369236251141096064169984166435372465546279581626581420702565262646315031008189212218245207970596099628767518879870265626337730481200266115697651306211276508407910906011326501613845491438841700673492328742977899168707503659295315645523689156387623308336270312410644754564924214517038156966185497893269466164098331965003761979092901776848180859974492145609441743372734711369634740101575905739938600130394658450663559923339980542807233464195380289147075019122731353904989850850491345442401626004805423974044818657743553095016060601449357739507903515504074836606050675339661874740101647904519217903720136432243801905030638962475562832823412641123784511670493506407153445223526512897402755780044183902999623483114254967954107615328244864227126171559237480981589410916955214675904177613709681484240818522293092879979408091522027503042175111410045428854965728645451899719400263865362830388416928818541857896491145352737414408973685060923674076155096279976068205021125936492706096014321679283300626225945355513142563792238157166336730313552669493926415353150126156661770936536471285434421923907935301379155613289830797066739131368649378117011813623406028937104149011489062700196142880797385801172934190287383890869318126308673089752133331515526735440313574955091854508802178294550723627834759962151032720811007198417181332122179960150885369389446390779088223471980434515202828431318162207915999188592751688247012222016231195815991157778095053763637726917721713476183549725009287851550451295953037841498559192369108020266685331505896562927902724679194476410501227320106511445404590225685001212580320247835223432316992232738350218777598731733543183750900156480425006303258421890344457628029581196973455380329400058643552647059248842902384229984711757073278359050915269351855638617614503572006225953301146217054955936911871225093927953034520622735213561752078499167161411023367912927979491976524607701528976325297939617648270270254889874307522777974700095328464292486965367804753287528851625919440300041341311923324209272971177098565350316999754261029630802780390736898529710132866897310614678773366784275560565315426921275925595218624383000361264393109836041521936253541355125669052058927173254169798491233281586148635797847939870370990731350919850261401419082325981917113761646057071416903711614304131631298685388453692295347667628265249122779722914457477149768663881953240719585690009690899344442259785897826130231630325661437334713788861840239504794885745124723443353034058008859541047480944230000699208842118295553219940419380364877085361018922548637939228317835163539626078611025382202679008187505831232960210309912464735155302592471780305222406326280461947310461199802509587276237913762145500432328026301521385171161001814065730934651175147131212265819476876667515437651635850093451306700855252215101555093078543303370189977629435736815296010597163534028495124030361640393259685425320881755234258801951677406832220182738262091137564012340667960107168229284781320633960143822052826203780880913278296997941013245605170929905311310389665648770414856816063701227281878381827970983021293687568208039014954803169054399310121984935915984425491176770436596211230474570053239816655239893358978157691710032652477462707474919143729381696253822475558588619511703821305211491464487151497635535337142521514486736698646675366400158149156350555571332389035883599292448922224228201980886241754802064544049854863857547826484408130494921438694402563450519207354417551486352435856186043625620503150603171438497780311959338120865653898699218438788098395732267029210651356630879764865787878847425009003712196806185752529628632239553082098612363083666443496057454966527253816476234382996491637419300263059904109669096011490489256176457400407028711089657453290871274716809925566898187863936055992947149526841870581511519725928601879018922165095046377972545693548772594074394815059078778973362744246141860089333732345860745781202591156115930807238432503991154682361629147441338444801534925529836700185909220493899005949777788066671893224611499423530679356980140429672567303039610371435905225393202162045524717015320367632295366623766761386978213524928966424266276410068482893505784219087234994253747218107815320737739314116488494884055427677964540823631723914266210593433693765327448501472269749131544302030184394187062768216794045583178686532361094237206206482708276727390792187858754932742978124708470730695693142164067183056277340102475458547949815701440362752686500704752138626454987458421973228744157891282317509026977349793355779350572275164661803997295699514610861268453698839558492763166547750669947971115528986577949772370728925088054748253233154959006612798100123867536779237726137736552716779259897972716848287047395978013819095399841812194496452100372685228830325196090131223255644397560604710970074325420438148372193820521411666015471536548311817004423606017809870615856030530966900018933661287543002408531572803701244854802263529041766804242560398854892808970909669804729558918821572091292995973280744769941992258206266976288900848355408537262622863757241938849716320538071627154040731390469954367408624478329558486588621244186901644810380946412276112788180173016009940059935859531682272277915475397703936994244614696979915167673192462253768108157070990269968836056522011708843162859031289519041632060269094044039371233606590969758073611498658521702367248135273249772307899011069286029776793107341398285104588993320662702252145070127594349068973779786315233089199251897310549188470069792051234137955956054624960389368237051688424497661042370734501273796152304968167852980893948056763895439901705861310363809526480588528311939724818734439186330112161386700397721161966793365778403354787815520974871132399184843984264077361013653341545187542972235174440709295624648294495288097536647042453007260069211579287010939976701813521701386150393052368072623416613047321071438442563274340681179006835740849316869202084612845374232571962868163309817502024077205077419983975359272438001576966382248202312382387236982515632498132148276591521027671316790565728488784518482412775316239617774026827410916231951777240754088704954708188753368902427421734917713831000621766035287994288953129327759737866857042261293651348127976285738357786436887847052388587737130941592312017726015809050091759480714068761693287804234585400903225458570981612829174347391895100168985943383370204474292899567268249530158702650236950742740528896193762489538259193180346385654298241077338455735309271382979364706003979325367098076713130682667851103537379225275996613707939935964263236308375159270471817232395376296013936071308180576992083801993917909990211991886490708866598757272569220915676621725309573956473071871230776278929815017906841233366285586088410872023881564814247904563283745833548407825311705186176550446055895697038498779821470908608216793170498736016908084849183754067968383321042333002025157990341605389758575231712643327878275280912272230056341511913474483431570598005465377583139721100227747363602936364898981885804351027459979651943074813337979949524067943162084011327055862650324912941016908417889616307060503780338413061235844734150894046852498631688787544864553932995145844080280816759404325212244646088659360038298246042180453050645282381409202521381246752111466928915673385425038118428297123698329580489223573256768231832897268567429058180355256552370833565832509662647271926922905958660972571719727651145603580959723786801290805904573950527036156215636756528890109795924700820132610435543966685979421147603285953828257973090480962722272772380149917913560742117104575487871681257730371520914544429419882855092985827005941186044526163190904280965058595611170146012299770093109737727511322191809656772229620568603855490390578859505482186460688514658015317804626879261039394819151997588006118350200605076376231021073835737562000459049533913929287333636881539930607841682710810819490702487262326424010146330332145893033742899821726797525742325178767242049296525748317339731004991900690300056907026591529275733402188843431342360116856795994779188257950175116111230489274360425222921014838147335860340227977188324325689017752342145848157720725097626427593229082822049303289634411600334373916506103921468562572473760586516361413793821040809193544871867660003008724236354277701026249182907192194844496863326937353177457962468617081179589753698207760280135582735628865531268887490345135640504304073266734857535751436507668394278573098440881897624337114875896404985712827000665428585344317586964006275353109426100272153352164765368056477129035358369844507488268081192904765525158859823539615172879521527997374659817120894743555136715343740236528655909023708098547183636643502170131735503412681227805790709865621260430572513000403427291564379848488768405031258845047617811850070166177855889823806143995039989114718090974258032613721868180226983198800048081170357468431732371080885560997024879708962252702931276252569825609226046549500021669510136889746998911997999454446251216463139103307993079619116161577148836629694518649440734295669780765310809014097583067957776660427459920686810391012263773651721606868872240695164843045700674739899747129161361457936669668877613176182520456570963271532843610095984071556816312408614259958922117904187237803200795546972520660930281250271558637140212199293928571222577551093251096417620835191233004903058044861549475100671093895209497916915635177134211678538143355821786198051410765982566935964606558450138937867248393677298194803234796432622934255403928125592097315357749384839321344054348096122830917741673186606099135474877182738793184230767503175813880571444878919378768195118307868328196513775762954426583489324465777426928578729110193448786508100135737582475540661662248614479097308629956380824591347667401904884754354663977283085939674396025349483147704658828822238487681868774609716844508009353998710872684128211725672301066741842296017464801615369032000818485630229919217367529244527122156484182525885116642019692540770102880128760305185939538071436241458062112782977607781033158664964749152003504851304549331378796506878791474711791000398901410628832332805324996981002694585682941396171336168840047521294026887896921881349332826301472707909223605675539731965574483756602166084056650040231190489022834568188166884536279563164268628359768274718726480012709903290016771957772305274614567072752835994291772233423449924626367009499041302996194214393192105132854570073297501236142812026374140486187094700741999309112817107817165834777685059103806285386388673268500993472204162019201029278837820786481863029907467779387002101466398139435740519734372094428676429471891156518540988518285918572178237083648649621145755920871806845618821315349282178389371802420658990981431085876559802474858079071342583204910161739780022226858251009677262984554621628533928882519475369586448990012722665447536227278773002324007805510786262085675902932228498800854555371956877387042000741703860904498674947358954261133022693159952391897506862287864376562780242912168995129931602042979078215278707467117623254601452676606129492998649868112533665052963582800192084990208663398646249025582935772804395360807518545614408692643410826448862802863821886637464355756754866512728990808144099577146264278210580227987283744857378883079516118740887543193285140439694313525382288977555431029358821416804239289788474213080883113653246475062754391062130666446041887215301309601915746999336753685860354385166105886466862700459912394389074374676231054067444338515451027092073140917159463178043924287560515361346609158739354926203893306274438116597115060583352509401823587641524766126510648917616233653396448147121907730903122109864448695247171004724977520898622886554817455821656668361481745725724538246374203271612451621083640966498020777350923656023766910673220982653100345559318581839004416002193008997540522940165556991516953429211194459342126265760867060670242661550982932467586498189597652755400339642307277838312844451006366643319806007372485197565525603130093961167190508876619067377964668031292072287632343100546163765974094146048517864047928505288703937983588593584179332929961531696486475735372047144017716637010315296007675820101991322994034864988841180119952102901129495562858495487983540826029150078516096854866213827307001525873615744400522393190713196818996984270932990349141620168123443396136658271922584324925476492122066599655698720547886850479529732866069624598581954332243929292052614200929316173438329994736297545114353167016536340485360675398873322928755293313751092244416938334992193733350031691829518511005307268292013998136005082825296305128908910194229331795615884827665089512121406778471898117481612012147127345653983529716869562815285357290722835672075615161722682511917271616989504584151287547784607148516019815187610749573842613291383815561580876904316111256462666692671877706707797811541029603804613607935865668732371737686832326915744283080680747701529768208095923707948261225924810387109080793470404588883783967475957537401671825182413109970377978834171597222921159173648518230758701796331819221589640461007597094336563146931981539852259064999438480276334213807086215126233014191750010997825039549450832609934881906916602426305228488045174683049647052941713526311724353613229084925390290179505299177991310318238754557558821674140102754213608436463857942327449014963593198757128499251898946570528901855698264780749624796086943409869946310643882279300752113476729614583590405951002954751624020725800202789308434471402404827375826289980663411585422655010469739829787934881563996640649971708217686052273950333883579578176438757176072678794774736678314058149437391196242456088836452982688216507828912530945533319988974429516771568843256505318814463907739991247849570781315485172424387130812813454123642225000640986495585686463309181877057715475415515859427528319319734392748099266653180302559111389209826287301997913550683951062228334970072028751910585636011270720431888701134345924823836832719394176969595165603588566372408615267443282624072310453410717444760774282198271797509138959381386498659944757956061248517220609936404287726265300694607853452724375659276927024857773345320073481624141567836293095529219173796937445969635121135367655830188653133292016107889840137792193635441232376519046453307962729031650003292776623217235547263219514517486775242080346438339821653568063227622860923024764715098139937234784343769158224078879859712758826895352306187609106531516783896644944763400654920739395633706068210356466471363576477647942179488363167362841908468129192365729477800329411549778993025954360855651502984506897660916884223936928129367685614141526963419744874981959867763538276414867724091636345847642639928011546110731188855593218940544165571959951277330359939173980872032429092578939258757525825919575696514601720222503203183206613131396311935897824750774564359184316150808101287527032053581969386744367200007648573947330933746152433863428648878635850018898873961799163781275130967894689588248645814492017331210660369491301342376117187106629969588955076489999738556702416462683034320760501751759002826726079122604233288943855354094965786695919546645032849226274937221342269388790147528395243141367601981063777280087790623284526147638478425970092882396734947328981707287633610247314157594145342529701393450215774038121506327844342949041001297491296065428803501339206031485379191017166305474912407780398581382533823187941529770286308884896284316216709682273433638717688677624591414641459148334122605354680818738282273446137759436407749964089365294839593238175442435336601161993304454871352054426617731381726953359101797910088981744096872698429770943202622694489541730105606107002597535021132254787688119278334578733383934148739689989194191748366909961389678106045833772864417425865609347566651701585800073447348055438205746195113654566232711956643515460913060105301092133567422774586660572653295710752154752548978182297576837244737912402919226980538545293124348430469646284942398948832508563012414079959536394179102412052337474125122821612303924569114152837000176369977624774493857584150423868147164717226708490412820895758963518538926505941144782715632625125650074383058018142823339043037613875502126104491684015157970177334440933954864255515648198591431106256975994591120461588188676413927806492699131520493310792690678536513634988928964379771454022230748250749039063103110530596382148904568513400727975763066045013299885083644033112106561096026780709581822212859109185108945187742148056293800329963963149584100282447912027610368467936631041824970754433123482518494131223479037392400079902354935033576115522720394111165902683838891185331138535633741872361781745600713071225434902473496429461576079524220191263966234095755687576426710680343228133550562130891897291622371444061802536452851679916035163939518701400889542624789501678936560388227317659023192242181043262104186571989553673752011453227299062414994774618938152991384321877337418600824776492034768024147489714976576883851602294081430246721176927880848478337616042608157296948322730109742696711511964931217456146336232937263778487182654981944814100948236063463854897218281264962441634718148870502494982247780578448249160009511874230501059313885564009351571567147982024595202707317422038892193050237418391408617313162604828863033182359514681258870682000788784204370087036893964450143775406906498846851440392096981737590238380617747484579205987795713725831642724174965551580075017375750502519053456984182027772220078548391940736565497241359877439356394392171300372214303703882218924777495032759981809843568933071087992332785790462713550378901487725633951813356512372157265490410404659828949135130010953901181169112787470083085371041251347737655215966674698599110726530592307396791803430430299845124896596330430109346421132356654932954454728783495838263985832960051043799062924001352379038975422607203671254914966843149733065419619621662328086595340491411592243326977110956369737175795113416497197796976042622086665821570223423731551616608422545112215688402303422570926317445855904795225446460430483838353071945602664479013801309230597490861033655115787318884198924825622571546205380168339051210690218151158027823413293463168267770452433993774508084170238916440476072501700654360742349769745107474106682312461767041258753550621680080720232842886205597394269804040896440886808753645726511340151985121134440170351816365206332636929904437649992445879036928296563097173345842437069930138791668846448748286464362675775743520127969119559131356126563815217729775285546425438278702142211079421087215423472405934206711608010313532572114621937836218823620657153043658802060394045450333677045388621824988999547978712230930158889026112177346457964997646413036187651166985894194493650242764840552439134695265599430156414428528316826183529334057963336770838441241228693759406837452485567365468766182366871203062931845480301289963907158922478533950980190282083117930518435679597897389607427976097867772742635150379783220929466192930114803715409784402070121264384257105039167629791447637240972151227129187438554304250242174526861286446258211017685947664257587789791518556769906908412455671132911833887621398660510538462614820662952534982103922377106043854065247176822826630747271273237854593101539730739036452222792584644452943803700467039125350397266005247831391575063288657541807630182800539039070031585761559588835915056621281983235651092446307424805635663706505513369190364785393803198799704021929797867126146879737576170100117087681692740485243873791779706756756150773811038876157788853609322316152789589423057005177163272939734404545011625795209149566653730850640165448186307423609464052001434226601527182668622635258687700791169913569586019566394976419587470994818487387412954922010876686853612988013395816983253787183645166619490813940666942089628615241092353273918148662700597605159982234504208899370974438232532799813404784395593773074221945273191795228130252857702368728393869079990609937514977251915679487848541148586085887972072113908758805818609165861157119429114479454733879835000223898475623655433832805563773109324881218751220670838657063912053215890181244842639671568501554468269090406140609005914103507368304424849182537520111211120427305015284560442086380768453106120666347879015062979715995630979034057513585320848792410079195815943251261294234537168416498001217486916726143651490011480406401143627403570308121547960359988198971622824112512068965053256947252546092214262696713318521348480746789237621498111614462290792655684441495110678736174225290680624145258908537305047802595393940770581682012058495709545989253362644644401358670893981624103573836871049638928545891241332834669810236863279186225973903048208776593483102172672663489041573611621083163200192556166950432795007711262248491511439620988169598930948994360681256091281648727807885156945664106798276015668862408176714241554324572736049213199718583290070101660782333701098833775069395301178222991661052819910791572077204349880505192728892208346632468857463278800539618946190236400727953490019674916876211564147719743965543557604178176488038123113324169304405711989273106600669907385146369907573772323966302844107640326050759384162196969248053993519487304823686316198757259944731735797214506790592046698828361272403930145426617079625975752624457635761352704590122467295468376062132781685865951304105574261529244612333280884709222448027795060268447757578187508984485974259671020789930827147223342612969307842389331366478082873216955874760702562706150420044740310614305729765961160113047786346336241666602906199268427759835008634462119397906833791196123592373167856762842501093707667024187307321179296337580663513230374263310672876680207477791335022323061225077910720732477746499540018533451965445892431206201602556409443762866839337451574321945526064296621896918014715181157043072742264734735561141821425552653159521148405128066147768060711099439420188572731769473568908666378693899272162855313467875035900048449170506382253644724343733077156624703146439444660643701555882512079051065279562993175360505311822041859098810663967758764975415970080878910549714526614896967459111809134006708198229886426066094837255708179333778110138563933174925154891229185222370453911613021753814210248189699421252149592109249936542327444442155184383941317483068903770772437870811439606195209004318716886130956004609380852859816206369637642311919656074744501776193496867539442612494482169248377792868030071851299197958166495446108404229305827979484458936327516906249185365553576111488414725636630477866063584414916353817554223485255762180920868792780500752053778374211924885105978429677307401582149435242211691415619849293949528253781242376012426977723672910805685473965351693744120231190087917722817400430665945249079882590340089411772211904586589038124212272728562297128106353080774907292993402808992119079827423993584889558464736349854700226570853790438758207810602190448262033618399764294670425196383756734905029207881282217143620736803042916890892946383633501211741020956539116590489967290291569462757095647654851607119206576921649305918949785866806296044514161411697342603111274860293511414234848706556753858745357083057251270607529791012976252187714954704551052181414107880851172839226248409151376017653985312097200847735219985967104494680672483283219410977280124318147725307039495444933855362656991096756487362941688818327462359684663307011199756799878270921844197872911706412382064780280813032482895674342983808531439429578579898941376129253383666262391516862214575181961853934880267234123957364067874477292972923109481754628701141418802345786351201567845284563266254050101294237921334676929024610805278555701863680983816139772528932815373985602972021054947117346070783689732347989413647957239086024449124461642417597749441459864640372459480021212069241055864494864052516315778913898939898771774844654928913014919998797074577472508316202607513837133274202813290227815695915560693781149786224482162605269807484542673079990082860279098427004883636874651496224676048733905157812069471409868911854732837222938192743470056338258713675324390755932114247853909264304049475651294049689177465119921805645132480796708838897505373222892035004154418737931525300737701371098342694869196030236695887981324823269904705438847175090502425856559019743947096864985995126057907050880983921058633033552174648294100058828553675018812739969544480518676683725592351489820860931193822794382070117754316864980044998246265144017399511986410103314285739665104244781625063182545368499458953170092771510704740627548154840464704727268678481973278509494106631339836307183953674902135068746961612773695787737318189789848572726418296616526789680095616274947698690366364742035809406504934540870792559775778757767700809244187740629131107041809440989142824501466402754095384284168875737684633769038961640379177260945112849055460322842969506125984993961668040188824808608678665305526508487175600232073762385430034501657973402383024561717387436172340706138845832604546272321754765915642398680836442902384590018350409208622045030551608126333231173703098053731220301144784320094799312374224661967987674328154067155865916353763557036621656014810242893327364836881634271943589650562478096776673788770620634783793796385756234377924878224833454479502711820654047809048602567311774026563119180948963919197253964680755448134285119584981312348349581750609374504483583754146864159863104961159584934398853787240860253556535495910170835274130650140692749978522458349705093484773045253787190250731952380858568183591772983366288561241052058666379594160283205299592064104239538090327902017001815233504480946340223233512704769481027345502996783046404402904778198756324911014589508137258893936306402423355135557108611207100658363418991917369996660554552136068089590290369525485880020285795832946660345869129769382281789147110140823226544389358143736047772214126181293523888779432372897500167214190306432747385095887389611663318648546043379866555161883487840745992589242499798888257658702656458205607959580113749692355702308763328436007362660801613168902023950740453246981136302739622406575295152977678247666501437174495809489843493844426187836438745044004055924889053685162051082490341756560433655981381550064160651379780053971077060456035051007149812127322172964771885777860130430432637954282484439566675243418060936362835089835079084294537834046057009675519925561493031109246817645752720340624736750823834582762603327425709991904589763347480967740820724932178125223161513432803662540605306984280302003745874813563929322576350035569455875301533363729802013449249625184446943776676746148405666382099339344673757533777480439105871438787877393946944379371005830991082637330085920788068726218080709380853520558929288225277009767803477617138408806581948338345300046121919091692146741047896892208204501915579239098827411126493365109468140237882739862471158922313692381435126191410859555811021675719586632417424969051769263438817043694732600268449879648455116542390376939678768949507855973989559021918837193563816272817011408769233417599895866340087220317127738120831013145249269666905541386301204059468550525283626709899329993191900566902722063029978269827399067495156544338632404400015900095611152317715593201711130694764818175376502056549079030800708667948100829677610137617428617057122714086604705435821292532601016644326625396535753841405126088426387204851199168866756143304579620227566752122722195477083783212657143590884731196489133076766536641918249169468011688713393623309016549358725572597405088957675961286833690377224851796431984693036969074319138720792034876662652225027950066865424265558582446135195862807431349242406489112445850901957291289775460362306384366611656463926091314351335757053963890858405358586073664861587713344922612642366735855495676558923099001683812344691643936968174825678280381560084398003034297605519397820429263084342937732456926090522607262302235442092933352426784111533250127707258440435249690299162109493636659366341445084765439718222925564436548445717965250778841308161465471997792542010462524220349635169862285750589192452999918786101018070058005916487047200374687486988340146115203244863129178437010226699225758693906576262069834244482300864790363518410248270029873717128905763866078723776398506215750551392367228180505662029571336997608425493472327837214959087789898133317709819703347234728738362421851362896390495348167158840634717025177503493668966822801846282291610105872136667550375217344935001520270793792595015964832191681546241989902572124274856794085486890204641478715690119324386473934821217462169978589048002831102032873374903555292768107834834040450660102537596411072682271992763508463833749240705785539049373758372096281263421743363512699142447317487183424615276774882439298750279372371047396261984079984830415409939567844712098869733131404705215821110375325467318238223318992102723038568349392000775717467085122516109650084999499856330865579252087546913434407144856230785281869267946563677916717890396737189979771969959350317467452851120285870086964456331509254133567270743712387141069826262639209718723741545675543362828039174308256805652825554890736940184594910823830920797164336900666947164666673765638451603646653174472112168332735591700233745177432795667262205799695133774897430452796691260570910183295882397577446250022747935431319697093543587565078826496530138606834300836271709054360492296626876374791307143717796431096976842030194567691076372082816197267045812113672361001302954077773124123466101369136452329736205882910229227545489597340818386250867145835963536407694335705581786927567852301063451509191442587596124010720359071986527117712856332528754719361558159119098221063388969021175338421784802703530214757873103835573016232512978065878523590897296938436155401203360644085342116529393294793641684385419103451536913753385033839055365443445428078859835780059145355889197483695095624890526209138769221148846918414794161397686810110962643779827074364947890117411752971319243237192858549235646234227671290831896034681970139363764663442323262328223652088096977241425146199396848383628732460089721755748605515925956735368697323995361459184447173850519842586083820608571250595727075756931968788647679443681811352058006381553311668137121072409919954402140662897049643353100422302786734844390498835496240505704129735404367680551744173142046166158924642150466090538096970111085819049031788193078910229280577102502746064193380445990588545291123666052705757281723202269417343868366767116156615065438123739534430056002675869913799445465430859046083580235659553839933656436964622649085535899625487842638989050962537149119687081260020920840157176775670041585630644044543733057315702356730059045559051153305971197600746650658392034937136293676980543236292845526149299237754230103407183979143601393859607530656576695796826492344610970147112269006144218824416069293184567183721247113961861855141259744633113825866434646754737114335970221863822910268548122020969337050023381590207720221306752651987419851491253212252011169422802020913307270712750988360394283684816379701624169738379878400423419288822598155540579208926614988763738300477377281778065827890107665434947509306437624080987898797511695452207450842474678289631095995178044680208035746200664476040939002227484987517316530239709132880009818954366403608344517601760671545011054929906088263726973142283550666674430825621773493193084833076648921372835754420234111981912002391464213970751485129979846022871098557954773111286191622773215765077569602117596248971764677756957047156702915509994284276037357656256834735188794186412475607267939280401686837256954806908854321704333246565456563116761016193439235913862178760907035499958723612579917230394448811547649677324943864118406645358007292266514046719227350094969995409775510908129836593646031064704594345597920051331619280790062717295825306347054517429688744848714709655388363249352145585629612998830329480127194408900638768519380898718323693605616521777225463917120525013992141670127862602969678109306866542710388684204001549758831847268621678787807144585800039482394524506339062028837198472011255426854461039457715927046553155382948268163563263063388654562759533177695014346195301918577414681660468206012795786484806508895301356241180326469386899421923511339840590636425356480603744605863440029517499542432038027231194724836678519481503097545047290976085864411316709470237224236092737304695325822475817110790324076747812285549666532340680914748373815196757623286439108038012340547167398002999422402565067735351279708868270722909296318577057797397044718728052282199968087472744671436449208055750020363083740291617433915116053161584807633653486200382836251000315909544079144107885200128724283184794334527378817967828191630678180278194424073281570488859882992566900604163053446415166880682042813399474051599851666707626391178750869924871777441357838137927248692291312368991872976003093309363557523235598926668918831336279130072845787071488863716273386008330580021564397157754227082409358471097297011942121924212451447479874971146930851728515785816033346895161936148196088191868439276771215436262074218493589275295590049130419753696637790513106987599170540243108854110904559440993148464087883013790522262252755950091126289803821008833399351081300991345399623878998114058516383883672844294042896296529920533629627070666253583718913122613900754412731624699464242607699734077465011454508677185722150038272723452696815846362020337517934648141071698667092866075301827113571554926570117638163433667227493294052939362097631835821937932493646886436657126597203537675923001662029228807416703521478902242523230141699510708013452718283520133250824840370736237431440007414799420315940077312884714199388732763489321982194956413330038635771133271229743397020738169334547806667161690116108648171137449768547131197288699158289055783939035164967717795723333686318834937966874922226513783854274053914676172207054748650544730148876954884224336334647081326689742434678071371138551584070690236880474338228662740669222912015201036888815441348958709885235087570928441896691039588094760154049161125973466660942805032086141502221241908342753633710934018042290433263782805632160142028895852491439280556135414209676683853490162952411694503218235120479008904429523535748469763510043014944987019419882257417810181828019080900501559358503758662957500333580840843204665185791143123750941410945824988248765346143158357961646905812213941402702830423014708155170394252865391442986038073081011474735176717883278201789029802829685995044013731494638339818351531459475858923149721645906296837088918455240514057310073169544610082942744598234358226589369865603166701743006624921638207481897184540927648001141530221316514071948058501263842422058810267073677417601830219053000287753256485298886696279718765766465077396776434521486050890785816939466923275995843127923699122086874899909447813397313779697761804837364353767663468842847479531571213006296896850963743193687617102475535318078262893417206128538157972127577767503720784576742394062425974626184898124773584141792737121621675306778691743792525715853578209576413185416695832764733889613913698718352251003526080284588049494032444993118947086930295473611924348285234407924135754644608959074698588858536893011196552379843597519903848013146961540832403245392774860571782040309111899509449311682028316480424219116860998844103929708391424507979132038318053291415910959390544196864214176134433382545008083084364448818487388288742154068794439060975454301873574862494501792124297016443891744312086592740560179344967153379475527849314741187985471052585520630435561056789080071228965491703892629479470471767192533703336335858460671303802112692074255773002659032791564052885194066512534673763240964058969235969715525158355214549262045933342639969254403458709728976106132611459429260075587758443856695071674324059213195416813121667642917490495441634807611803187195601158189836928198743971842302726988247504171565980995435287759856087516515386194365261812238758101660651963845252915717731849034313988295631798865530373774933122239965513733450664391498903176941178060240395857490467007447413068353256978242809398445727661339504142601736441975984861142618834798040122914862009377995196172968803567744709532899381698564559575754247615084961198365514140404441189116851421796210821648350890356905739873429555263695570575543667671119790566372570608037077097192418328469071245801145788891137541760344815273299014802686087286339199679970064886525727550044741531854671680182459150488167609566885700566025147074551480636165560554023849857075391728889851663500244765345942509445643121264293041548789524713532848380112738410357693811125334040873135752540229091655642365195662898232574489530112711658163271812150345153122264968776684634895907888957961691085082569570101179219228470791675644182196059498986527622283404779199886936462674978987302016872169293670726618644597710494956083250887124826219693297290935352573961085789979775138721021509050778482089470138013419170636798755639970929235680071479497422308482381976203508987163046066508458425928216685791464394743121214502749032719158500485836860467089863961210954491257917111136032925091929720957563813957843937904524846302577770365182852314787252919492120456738879985509356307812536509210095662303210646308268327276460798951962360747335755022517080973478077858692662714447644349484732371244426434161622629505482854723915701832287792309770774968858660843639192576384355004460169928689639314397906128013227245743726752090263666503072324407732453233342955002677540736296172144797708304278362975837389038585899913268095145758730015903285094175102097115566045246330239745183235817198040245915904671623502593354190349987178453221491757080786332823894747756741971735013180391032242037050397608850066920660321966971973084560091989292097821556463220943328581508611213605250676501771679942710717066046756325478426465406627013592852671973227536956600332632139392137533659972008075379993721469274472147537480808462136105650494403502618566020268831855280648280339084062975751734082643966199326035137186133354497892185304181616601440541305207298873995461587567363664953141473627619390750013090088972113782746805154306063349831007598323885455289737668838527368278823472259513923241408740578096567761357578723316023904879732562236779990041156203849691183228670514706842707721928730980975022273251847271350951879358845224363553933644199635608604511835545309506546055406821770140653327745476469553119117674066120288127730494919641185484032568015766726370965196291136137420394423174422761270785474100953980994102652854551674848888813463178809679863051500458423294267932697332714290140121484805565748531896795237954910479878779141035001306624803106046582704689159896912379346283115019446296098785975305673434891024722138902299444738709370945362206203735992006787798333606091877369556073049104667662004846437038287110816685781206242089464536730541647855397557310666115442535838963155639783547754002038365017861064975105561193105242426525631359952250146397011511918870230895216788147835076511261529321320212768571447572048525905379761370800294987117430611086355236513058016289022804637929409140421316394656122226020453634340442143808869904765938602139224216401245227861182497408185630639618333220733840133959902277028744406601796848482278381139337529973355203057648943687234140386955001953729177088473208752344393572787842538208552357056471520005023188110603929389130499968382461359203712233819195415546450908786342029883349122119616833252981468074281956569325730415482424285484042517845439292858888487818634969726033987890154510211382834827094469867602925670855501010585392677468110845118637474022808124178136725401636608671762488967383668882301518314672249260508051751925237593676025841347419047208110365193616157119749201633125435339814589861002828601618879651172936992726591766630315314287988677231157826829238879449978006599776947935712636110306363667547884380466654244983179022194509990943057689342582750797085185413596105216376193898816088536346712944235950002482118890334466420566268613022352045361598867397896169930992016087476104333067982237342475891826232086042240664947995171407637339754372655885045099812509586066328298399477037801702227022040953368986955525908664945819560629354756639217275726893088843577245465140309866502768514520120857604786178484977517909615087445756113818458050331508223844550016032123490261751215861978491877534414784719389314337945340169911701934398343604443254792374312895190081213953239767851374369950052796072916194261424226775126782436597556927377256035731273212447876254094978107118493450325271919485931673402024863649197380738382084490949586815828273170532565621728943596672306187899422079621909455622260160643192517964084957200119721158406759103522138388981024494697391553041079408863044669749072248603784367260584280155472303711155368420559281545815812687460851344659983519994731760024152576580899376244049678859650477113106255372968087618320423743914170441325345318692435162238311013503519199785454339283094184794913482228958802397751592982480955428977606613776225553559419673888531687990173788598610797491474229505427360397960187412183400237052061679603106334534867806755110088309598162296691008708778417639428090080886561340364921940711339564809593229293082359339685885692884745573761384728512027142726297218842759824632178016597513150231500128629299288209661725896592422538080565624887777823066327169802354057835857372015030944227111053997353384305147471457161987253727456184753514641138204080892250622335900804730330014464419919703179957011831091739637635732071715208967114759748889023368863627734714110099912099108900831416544305820733303245295038520243578351727939634710844649670280140909785821527500550463299242803603351248872152543729955503795906999045798273328898645687032909286845432897292700756527672670147259674905909209528484835224006509787927576603504257767474607570995625846010537075164665874743304634005306775030572217156690058415595953520489991442546903311144772623967325909175864135221572795298070208069092703510526432618868174444078377984770557648415751792154281667529139905964353152312768195296325120061993626431054212901414964148613034452610036972842853014711122047312747931033197197609771907979615830002817995421713263457045333348988777169079721951862517614238699289633243298737417088639204621507080515478216701648458131205381050543395130049647647400227979484483758092485094666102018373387248413029171346099485386933703131293517021775566624580674666684249391145495374551305974652252056893517881080390936999160463754997799842940538688376197293584522606068230875821768253606783159343784204695312588455681331393034986842032377076108217267401245817157430067345689649151381458247979276382376755678634579651014200362104300972369440153056932188859964292053392622550561188851500642890172158379569854434990260690661245711350344792142667506928533315215563969467900521042383286538060029145612137594132603452927119018574749153951961298309109229685753631152645698409661288043276397289754874552601335826004708290505463166384065897954549107696232603390853111657973728330122134962190470501296491604658997190002919380946931237471085287111415120014398458719724986846450804435181170934551191116359726991394260387338119607573648193409866379377499283580417293879967767874336389401530907335407813219936640934629266706409426535825572419058327417323463875941972503653541535858797634585130590622416325074863825330380306656691489766602401323317085878484700427230705757455401571226414760752252494673843765453872309967688847323973670138852332535605201670128011351720892564949051694279493113598934327219212143390745537241524221971422826628433528690098159983284346667798629389248284715858648808128971449712797141150729987702575328068020835276404651769958874227675948866979830585887504124933912561599943375518051082593868708036340112606254651114445021902717696847942120498070977883150711560791191217753417415138597721802798326791589945947522566607779012462394081670709405129627343977321374046203835382820634548211542300690272219900552987318038402098063114112414875873419277762699151396661669522336049405469528647156994568250010776564311897641621642360364862455622744998083163224442041475938118585483539550954815072543191685783109427308311303316952551652915809872300456060143240938994468069454016813205624266642676794947926550181417891811870774182532829930916312019633680654941312566542074409014085522762583548780610382077709089819145890066341684057898408718100317978553479802389481305963613145287434564432481744085524255324838147427247693877253685562371462490517118891498902232175063188109983581585574374438989830018723847336097595283706911012221359880152086551539385866235450638420710033853202730149375678036294154806530283389920352353266816805169057682255191563496592619919056166824898614379697012692548872804069721387619477727375857417950474111217003163927938113581497036507753461441919373278596874110525046706720009407569147599096168939143508592413240167554961390295245519131233911867375988008184706652807586997159607147502729708849361351974988824840677517088575363184022703751373273211506987624973661677992670963497099146311291713448334288975158125057395618850398932617282817819466022250142459224701508592932995473444656059861238380319163809438941164615266425811864384150697256150640349294944448018765093994895144648969177128486324561450891346499065115115917150826829670876161758099774907302526205065121854366803575029266668098409242961174005549540325504102272409104017190618946706060456202020895373502883490185761195633805927932275235034517428147087818346766160969499497203768711286684885953039013253424443374373700264674822364683808026044036514577244970346636897388057588118818165654446299220772642160087933042866413676117612551786288108459469139712890916524786513533258372549215439382079911422642392182898227832530574581587541797417348062380971502384923337686688323586606550976020201279128529605892136268741352775977518017657681482767440226905457507726362946041339298232715686058911322263711546278517444937317009258036151939476767943932103494175216068104955338812351970153378524719739957549008704016866127018668463094061675230484416805514637213732972563762964699893791983541967834540426532410676992249802629939916532127280053585346128401418220903087485307550793844164093181418609883753035671157816630521049116675938118898353388754895186022372319111997587481453720296667417092468692429885910993454466227257344285818561724050382371710067743191961757000866029557891120921850679189161161387324559816511558750475712743986958205704253756122630610298986320197070296349814318942037930063194758473385885384517473969613554627198538719856448202773844424941526179797118071452282187708649741579677115156111535399323879224870143010089524371968818723251423526127829308430089249422421660401855564703720164273100371993941102477204029592495543950828906579463925810477336643574780741663956406775595625294861618953342850951106531214950086589715153437385858428849573051930326342572708778970663055892143019964746628762635231235933577672888346440488698389268408940698906234057176366994207760396010321676148180567472432199837634903727619990143302075291611457145982680371362401997334304405774719992552641403447538716975806637245083545749906944834010516182341664866698929160401422086777270441270761400900594381061951482863054376933149168844704397128744991854115606248812329968413451436918351579750825399619403971268333758872359767652451993991669200269654935644300563894867738338769048475473416715514946740244708550978033585537312814962650408561118735795956393559265918505836889596909871396707745467963505952516820446322422521277158760009018858607704020665328972963930215234274133721598793718260603626660520977580390601197690972135089818930600515280737689589743587643238723459929270844599456120356799014161971157217607802834261456193726826250054102770537809069641030918677199685853442244727124709238380984041295419411361469408969436144606276008134832710404578841121374117489842490775137886309711512817427716672245078064145922058731800167089971954935772947079780898943192321017191147250987051807521364351231311638887640097166084505118931618289991762889935866743805298455142556741670759990147257325081178030479018774896346824286861121379052493162032163416891536042078150736335156843259755867944123789964804737445186472020941246854626593060213867929932510441730213985473767944382677406905070469907328315191376130364562400491567255882264032562440357107286571330097229813561817054830678478551353719648644894031772894223136723493366995208409149850578934830184860963503876406430814665911420705748477320392306955753138000289478003900157039239988417320657345672437526813681049277360959901642519986935163251451329476948671246480673027667872207752859309780899188131039307930470488322676738003423281773020015198104535092004475886014958541186974482596384919796450930415508939759342655651543021792108549403431881832818261108643341529046635651302750510314447915134419896667556177744658620487466457211109872504416378789604555384635996481250050214960112127885709239912248792592124404881724987115461117057881462372239958701579915082860673817041976557811450802620687050471455708001313528879959149786027179159133535573079534044116845219610231088685256396625118547771827418732958216647197977821609231589742670928245900678884148958431612121987730576382199112793862321105531253793104394424000715478971810923182700515012074657349445137360823422311786378953542971069890737657396563672527553024006600443521399424265851769996337405343828366309254571792702441332443655278138695764088176181389771188433720961503641048371762338324335713441765362168410812338923097936416446811178822645500075526895564736412722161476073652962398013606915088980625049951255240331492259610347324791770642267991321490256001881643492898431546838011417655690224795272670896229661441409357456274142530240828949152055589300550595902148921547381952483854944546443284151135201626183407471368711854719567612427248354069002051547401066794105213913401679763000044378198856132326445288528513541424539578345887490349486979893925672477141852347826531974261614963284861528460083682474288470085011044017190075888286031529414385526787201315874144842741437004548239493781967068412743102883710009641753922344439307323856502542414078818095170981064588907559056975426536506403977880767636133359554370165878093063284090852889249629058109845400407085620514236641549331514544816220121992618939903758532185296764474381836990756437617423160816327187651152281291563573650712413780277800855190511364106480058899259536157656765778126187940322361291971363952625663639245680657204844244880421819850224827295275074245596017332809861775269450774560504988626194662048626141748070272876575236970203807979541648676568863130578210619086465162567297700415898649775030006052498162320152833240926838633570618728610263594641781395429946950185387109385125703950978418828766643694653894565693084680467378141546313803856417399109320876965313203383775113952792836608158830935699708374573033750945069338008466932470362439701258322673477057320068743295903634541104900211947018082723398770104762238001724200811035055709931073157572739232043788582666305196596413918547957389968640499570538587625869488218828053159472882915486396253016153494271592417559837014637620598759336519732224704383726673332106057657342843059712445906950434679233380433009468853735608009861143219923910684222121872372872217212417162127607540199609951376254868284727502978682502856651331090994353032166070799227799888685570575689967279506227329994725958306442564102664589386671247126996022134408940281378059635431029665114502763300005301242937173073669541369930054284592495484067079777204944390722315460182726429415489746871354352560502294794629367474585923600918617940726489852551171007140538225710133962065656086518368126619837467869458415485559116551429035390536561556395638253052936545027905464173010556598294894487114021755982321041267458170636522791573622710697544829616974535064131863302976681208472415952337763195172260507196531528510950107386902924017799611697771910849345507614664095698431608265499564252651757110463923745902270242028572468573262074641970273361742846639177705070434092458382851831733961257619132762658990805304296844690206379597195976067707049103824509248624700587067501621341849194388578692373745702042069604223858492280481223939680155639937517442451968341681049848999759679660311644603713061713748224099114853867977209973116420917352804111332668804712560194118059564321826349484500894391326950484060347946107148642690948337208932604707844108588781688839399546505615036351773249621239423228988074333695672306724166545650244270647683524641057635310700333100968080520540202088093395276469691503632067622409980857008429853065062843641253259325224628199193162576505958237494967884000736158986916138080122445580962013315048499934500554759698174929895544718781511114402874692170410261021798572239950802441736818593416573433646016396434287103553957974500069241910934402855274343396586103275647065962239312484165692082598227974690691555023187245125189886406986795949412151473942195361453627322054919727128805516126452192141076512382997756404909897054832760124006400680727030656313489139624913167217159106948756965076133790424275684671954888084379690534367868524005923486023736646524202274190063418411083656850996034084147407963281882390548560855991888906173565503530952372423118315374247307388847193863641925546881152275476723650915569671003158192285477744584559766512208281560108331513151512717930410002460488115612790195427833330221352840149266854727722374415590932963125454931509923370403433508748763418394803382032615958887296287855229545898880172871693380034822878521028878778233574630948922533491371547909177352607978207695010589818291759010843516708725146080440392003394934326231195109077372218379453691032582461724426101947163908102667411594109151393343909856436750781239963562832777248602928212930664353957298074956933600499729385991407256579459135001802119099066312651388706721685872863699076203344689983366524148007238609641030879171734349358821663435284926934718676275752266447873512702101115437093386905319298608293527579735098966385108541861911893787324173559942043689863367955828084337791646419426962052171468482999544524600138216116553305675523172200413319915929604500564817899324025063570354172521300648753408481406427537892848351618636784079418799669632529636169845615269927500573289314393837716344119725757424588835699854063697282694503556163995657159182765301745494573267664004925481453648930199859937277843088192886854439514088419328825098742805152387154302835740553850135201301957839164917614738502361181667872635686197245625083454772301186229985107549084413166337278702706063071353517432544350415354142797072688837421433716831112348447582368563166049779406524862648563037432751643574905365318863292644095250273742079585713708216221842068820235890242829128913891497899455884208673727318609488260228908787934676903416978553818655011870261870205665398587002522629950469179616027507926158442414745275447272962199211759251544727914069308628181437146628957995652396227108039318104568135696473413453598200429982210146075567338812815439164664556984681303397462241714824079033449958380578573193535373980970102054298680552887988785984752118169128910625101648676621431803320048185989358015407470904188253288144358790770688152046082887538664844141868514626819117220263627735827181957378152133843463857952865117272935812157484080489046894981108280640633656035152072869302302143195208949195044226573598730716333291815280655195173850548289160545644797351343033569759719364193238003846245752816569450837393085787865559562087590064353955774325762846425857567798065244200049910011205167549158198810386202801213008604606993076425214872210343450795100691169792883413944024792365106537437503303196680169118786035324854580260776639252409943426962438414591003673542044020823414087104947493476329854144986392858106146370234502258603398928417182383451027089987111341504669716087555270092374155395216687307658156098881266920536463484911809912650541898837631763639321065710855227562025234954801490440109509263591315496609651394656814214305872500282926403458398685026789014500348087321143079118471261503549766499608366034817829763434421630084986046403573786505490664978836538863129021184156198529793865068949616905173126725346677116257857855702358876421196124964217873302748654487645057644570966527060664062472093732781567189659074943829390636720387305082653344017138753128876450602381094876736111172415297998066116658080908159418097855161222878532937234655853168786588488567110795103028337602151215503137909541132306811295215345846658875282184073719909775341034827990874080808940638697055115590863228722904397377812065126502547025950496775240402105652022315668645390609819024714679116944656814745322076105179390283012833578538294773882850807784027252108040628185705849451380045034631496108923118188190207061071060584743006369828105727264756572123251787991958322906469519182474876583619506778662597650718596345086443868495052924428327597579570841495031675027677388106397340878516013506975680711600498956100347309069630199394345351622346773908700519934841694052608080339043612258706384840513969688276054419876323169371668017585135545733473700428330707722907906112651976612516183659462130285424419769106321763462410240154771789087689334899885671071330463095705014829449801827835840128262346083505304620031965429245753774370699960981055275442204106541047950626827563579111679541914947641429000361659933218151425868907063917691378825056107128539479910936615967009721135883715360750322559986109515228727712998941664219499559248822230208451311521610969712369611967968865571594394213597329037385474228625876570292843275519349567927678233492381470674279418542219629148806927023474736807910342682537253423747529024786844905968541371474161837046724935569707214214031380939458552234413392629350870443897843164553327719837993816851901790912243037921036488647355821942771043026638164872980660954715550430762949913505776908813186954165907605272598363379818040872988402439435449429168233199345322162941317723316071330920444340747206283785841602414177451971809620117123640348954918768270605129542582048536683034012292264014716546753153018921419083681213052124243193734671327674885950770135914549373913817737232070537988059812423895138310146375763295783033730612482277070208850629151408356957743511864563855875698661703592413549746170768781092466232049954512368533859927347081569658426882503345951795947774926733499604473199499755376705843962985571486933411549686105298781255358984239939006267706722115669018657322628317911616014591138112661690623048388306835533597957180628544217457896337552284122394439162578616613685292465498980505588946921388563537192288781536968454569892445021736421723150721705161097074414769346390350919098229711423393264990035023858711234117490353489676101324202714425245841208040416463250814441711860251885433610801514943142804323505806860412285875624686754089394140886708823769607158197465544813994621484231975881075144060625174834802989310423207099792716126316178185328860887714669354901057720432841980310878269520108473550839249674189279521564955406889432383972377288791080827626998221722795116601160523720031444641362599228101505710124621460854038772764960998416792530421764016062714171445543624996720022538537605264743494202603403589467383430851378696604458387813518305576939494578145760185317747323015860172214040764896609190536801379661985490517684001612188825460998486873468728606506519699204670116788244668445380458630117259448594816205558458102805111961024742076644165936725262126032584310320191115103716672083009504730831882670778567291091425113517399517626114145048120591480569733579083649030514011286401067074120257610489529593294925692896232318508351226608398512306688974183151254659035173821846806366756446716028246636718999679813445700991940236807844066275928106470821107462049439419634127254348599633028776370016813913122464261385357682473558466758974273626306403019179440484069304168006033839598091611441186587939329234885549672285017114605477287162925259185564796494440700367333063959081814338537816898954932902825809341259351808684926952921209052516114242483380333121232298601194094671471519486069269015008507927568681537334266490135296551666261516388517942314237911591058082761346944467980527734114622641313940245605010002088856790663205735178885604424058181388731274947730689033316318499302887337145079975528680081157906930527000690944467365809177765648819516077737805237129599082410822539563659103423065158272466678029023821446912979982695733481847020698655083885986561899836949813935060558288198714144121050778341412028610297655101258696169408714127552144963159088151614916522740418793091062602768876754688728392352535606649401857225101544214936957808209217180615765934855374496840960643120129700817614014220995320572307050353573371666755343379759197337456884570221532814072290237405546683863825797130545807242640407245395498478217731791618479996689568147944045630288146945782773894617213893986498881776107067383789400281919664380036056356371345107869714669599901376686362611777262927678208143024790198308893984656803354603468886934450219246141896146172648466117458267523498636903889027232516748094287163051430194649891323594600737852724933711896031883543178391303066146568052101888600035228446358487780971921990272400679294449551609502680295428202099362371093305517488300464475031585656667868809880420400392169528872190731441305738612562542587714143293053304880609108339394880203584102302169710891086969514828742298466879046016258818124543602242988563536596686212966456817940243465002062426944022562216304586174541163804396348648584994261668628548655007492350803615043794600066448922541591315383693474509543018993150323094161468060472569269706890843248499971626469788005654093480710415096746580936551563514248343841182065650728177544024037476823857137677665417941117530316670627687871095129362630928177281999719484247656938189974712553237415477149666454926864896550208916116089365398878466180331221383325736443380319488378276679449366862281170254438313987946583836356415442052384152241433765713661749379705237095426465014262887675336610872254169639690713049624203788563100059605106646692182530817803988554465302144741769011723835994587020425365922437626704838177553918393363871100944405981532068130711865066684544561769038081478329990208742169353969806935045290838520069353028882816285128577391012940570783266952437117213882300369755918114085711337290136690544926147206809454653413993576107072930991400406265612848742653763342483762487554305567259083156640591133969825498069451733811804267203720938418372095291304732856458488599140183321673792538086238717089843531429549556973084485817250431569635225730348753124690798027995427617433561541157678527225482020002198001490535274598559725860532613284399513724874535636914781430668362831869446293471417234450496011125379616130310712943319998301477655321037962530384343738599544539570319751642349040518252249066733431027635958156424305901116757681622273001947615681005773333799141048894480029139614202684505718741713304535664170827692866497363069700938219805407535021230899178776630607209814716448859205975370639154114386555051409282179419660507003448340785428640844307266424285331216930317686753150713250376526523247782682947810602376408653468853034313158880690297854752500023583183008465211578735474133151429740903542404301510228744229478635137317596167149317420402471722893555448761917613101455796393630103209005570915968298232603058715249996952695296682810600308169159174983599729570784004778200554411138270872761165731546470339446693825512225931582621707670452411004956729471385114579009609604382282164015358535704292085854613637527110502528696587336774616184281636809806597494377268036683452098297374274615870805263561037188663375848345439112921080644037403291696585539154119406144326157329942538636231715496826721750404867269666105498916713564744184331249527833432763967907205332651053882136191651279599563758462929927575420729484049445652645754530751044548893795055377122331227961507890088278716713205813539115906166297051888319281916410889614951356885594694305234338973799801246741002924037412908196871120315969614889641300986457724271279751276170237500221288231748975465194971640196343757681503971452882608190203400482446512631483004346823921552606154730341065425456117535590033129870553349819989653970212075930150083481963960471082702914681477588746611324689131317891886144469298671113005694443606797812498465823930535741588472530322065553085134014894265307255584031410697910007897812749978566093100682637127292089268441450299705057278685750316325356285151742384628327401178489600872326949879740984952904164218245292617678612477052731000562274409813682978516303321120897698685047027187945033729221532385314415868711324246690308358027607424844671692564440017800536123177260754670203399104747752654147338519705195132949673119271364562530690784292241138795186253268578364827541871842218526632834044016569970659991920539964815063645631933415406622739216133187913740030758039644221657887289597176853102424558458513593537975819839193874892827632360082336888750815097391437755285889061526092921984667050395585406127427741152686646944276230453444625653613764236560983356353673527786696913287509924552531163078786799764668018492281038324604135176712764671514444799952240317170010320880165750644552572246761475190686005559241601826919808496728659899367310251903625006595431655016250049035113403416404891340544525805419601545860639088977145900982340744320097884731909826990387228002773176766269772878575016649934415347220824462808873484180778614519337468671716625060316805691241450742620526762404034226554453945593071913799783075005311283179500750529173920449761686678826453248687286258118831505405983136146515969481234344583631914447170292444247588630331751798597152718310131662627902896422002343282687426618201034021967344374555762211325448114452521142698442498353292104312609827240127005806456189579444972332379255687683353431582208684809296027832779898720073066918111522147000189148757104627017203122017635007706559467007374130988211932761311752487795975310823736575737946963273057339342294949087476656437379443804441279945471633513764022626426769432953682313627517156096196085170367191419621524983135831854545620599514401134109368728639463458716432500414975725745607079722565373445268676578566598541912972014978972796987889849290049224225068059548736401463371121930684733251226783438680094770573117170887722611491935863038600184371408078072983931384442113549419050698805426077092400719941121386447483708112483170956792178318130687078777040461435798519700429895257855668597278508250812275428651450193764053010668882755945534472905876857161954794611372770077732250616324087200912903314568235482891126535646035868738645194901192604799210802391197308086236209493117137536517508778304472085917546089683512246003020735352950627027577303561115356151646157304583291582933482747668633325689143003091635472091128466946275036126612912483016412372176745238144991085775763439350260816149235426309871567194078060785809774388053657531369279920670680808730984564297603849749478094960195994155127978115384839990889648422049914593099456560809586227415339489388384196694644019089397963284094132381864073527931863894506056489385589138034496773150011319893335837560086672256406889184446989678515678486356531974646462766435193210200897385966451020812801401228092845890085377184081829312297664165861334440580738859308539311053967687326779046693416476267972611335594410406201775186543312897415133064228372954798018287165590034693385202437538709289726030851062682910450964610197596225871018767708777438193500937356184287013128951430551119953076457503069905221599062492336450799818952334971612956226749799301212244598652095886647774703798741593079772272971658123482569000254918326992730252610609456365892372637791623325431321190644566115173647683108387127294288043263961651225928329987161498864822167934365428700665444207778587644058456798072647282530149896389040979523595227528610092378193499443819981650450973237434770641854208845246733265219346500736278799647462377877303544514468269176229178588404094796854675065864375477036350784465200346814879453319013935811240064348282952294701792686354143588159681823044154679612124791681940117835747580071232213195699825137838893689170811059114508100787380177352632577510134975626634523661975798462516460975204609957106457832757881798315897564689104159595006750486712414712262461598871024943165858589549847507929295125130822676094698189349304192487049997827550932311905205082802950829281968048159572083124111212574816065468021980781228241677853790750816243331564789731575809367903020372998474936725778939123233893276385364747645574900921928485838299074835447652862917027593464671311411422349459151005440655861246737887895819543078620134057253907850744389855763403604570402923957296676063496343316452295299244750514780272424841146706095790379701472630403887113612079721288398034548820094840492979286524707044794616985197157383463205283902432590876709296066505555032569508999187793504300847477149860474932275198746611753305447065680266040303424998890573285361963937537288028312080811688111145955765537062965478954838234881791802979510937104347606873017328240746985494671955782955425044648072041127755217832812266062787810609352705457119172560599839051367818093263955176432544015959616622867806355126664221365401465010282141785175991876182034400378892657302500969099637081925508072662488651279563127203759189733486232958317835906200761499533259305680663721983938339321106617377257441103095823551649216495859903689530713840477451131696228121198799193206118184794917800256509755817216033944628015174772662517595774428227931360153796284129229222674437001450006237781092685135868691914767944712139157169269506988170955213922562910884179994793949556269628965535963577627017964196091493336514640728781683057743596619703972712515867109820111486888149095218749810538441027147058067883483172502524310108871309209688502718503835974698307030536120297151359217589019032906130699672053390936722902196436560104524032911962610880748353102909802722749409769477270366866312961147012038337639019774273959652474641700683110862100048919099019357073118579652406394368785700533941044914404544346584616222022520706173344957564098306408187747119727872635484775516062313955012934729485027730522838689058836996070617994506564181078291880802606808676274916371024600762834814970933655839768386036204969054246595719922758267914775516644041906051799108252827292658334675188086024545384159385194339040558886062368466525004773904368413672845677013562921740065580379484545567531956287904945327590366683877980107149876402809320593155792456329320344843169645177986927024268091981532436818632611816096501280908608127947905029429367480727387606572563565473721550807865900832883630287195697462007574019538663036030482834949896123991386064550098411574801810548209840633065919597552995403685386379137377722675510532363881140727523724832188149634156637966615163562237536252037342509945411912045363546258423246307037902212248375415003532296712830940206197978760773969184856377106801302785822595971624581774974759189873085592834011912872510730315124331849069357124622058194491665261863061585006986533292231017225169073118222991607791534919043151037611839968440476945624848196748674606679263234960588769355769473377894027082224099985581751542841645002319369159629198097301510179418642372091261007109309517509001205695102812747035502307616500795675344502730774540400042954838682916747164862551884810272750633688947535359350109648631415074704786009581105803385924727637329396087308028701701250224320292894242352292207033415512483265227252713563575988705636665710110683355590754981832775313535907022774373776822061704066737529781223055875261705832920227156160425203272631876509700579085145296331452975414371414097314672446183359417812458963693932909874527565735095939851834386181224687937783388057266470225075405605472480103482866078928411825627225571850208640126024092981608745328754795077318530594779466877188209975414762922220814861527006717076500960565832602773147160429575807856194797927473167563344568439560129289426362615608806946179413976990346784463845419722314642790845076624456998349301037017717757899751630455343390787629528703057034198957756384288298353732668845210979357522793842553878038333745650641696013551846565878810492359329082521477798235754249824873170504899613175522723176515538478575415029093058593865912307077489994449500586023851883197834895117778346429516231661474249701671399927657404593813901257294305240305937967476354296157681599438545638873437843354434558129672631262279735307494966509604547138766052638538349276402165814773519912181334793664189388968769869448562130768911039581663304537786355359796261591918619498456024052592263870943646247587325404109592264253588314096837298579102136216548510496336955458176084203055521658200144397018324063223063062649086017922243554959682373793985921547624785672365152838702513330344908228970885539458719569731302117641779762557671577812793092974419325353594174408668011274911683018206378694063137988450246586244213602507953601550835517409466166821357407320630692779455555383392980287760679939038796380310033525519736906287053855061803256359592382199666151625905490007274061310093567124069471186487274923712275436393010976674511353445093569882503330830963127327414850318115901896890387965479468470427288887077856187439061429842303158144533410029265189017927596776720002337294909984654206346813618940245758676176291423240085920878502927760046674692482179044412690045090765688557036620834106713293539343944212582540015970364575682898871567873681079038553379627305775961521316776814117261261648585899268456773075358516690520427978112167104132957282271613270392790714580027985390300057818273335894465260165302277364907472469309260845657937369172941494195247549844559730846333141424599723328455705629142959257349764250038227525871758177058095597791700612120770095560314260038033696851069433721395288627207118189564392457862434224415454571334011146029591573187275069717871824387624088057217200387851233170704781887271195565704098500349828535676552508631554642817049811668919445344999868530610396685891106982104786329369300367552449178321921890520365037824429588196640872229082268874931286857925671045507004961603333941690609064690752078986477240503058667506312171577410371468724532727268316490441385877485624892315685391972968175225471656037374382084913612091712074916884359898856530675634931810132433559518930204535890910865497315315814525789077366808726139016484226388910055995055943502876211584605343680915611932818296140647060942043780753466250213795941792833509164063651543142110770044421149050730034507269278739392837176309802755059524361609385421400629671977553457961356459870653115616013294895544805985850320273762069580499818737497122679774276162387446403956667689543573798237576774081599544466021994183032842104001134397164961721854288922902107498337209053392192247296977361180581803847596535759869084191834028949078788141350016162602406517498210018017405669886484202432494251616750371245189333682610427818496480193295550760072589181465964947876829349606812593590581625921918288920216643438062391498983917447355716226796017062443679931161659639437291491224501557805163471238707910218432670540206861170295436525392284148785313164149926982718794185163686348667906499689101265023475618330418839169690161759958216586504768701037542730015233443307578567565259213086035272355206968353132581065042027795876171326534890970863642097520077611973370499343652640296175196833494489096979855585003909143495359233127671562505531645440741097462360317908515263740651327808051249627026880918901259413061941133156507242776528196366156176069431022366666548164753107032402071011704001311086178114359489272225238974670501850428688438895653521870240107787733360888514841488106659394952640381891419517180332481215515992282205982099225635846180265872702510037601662997652782806996858759931174976189054930435125496248808495686896111960114312820270632330018433794937570259843017498347361689108294638184923047789560046294682360280239246426810462744110952168623020516692741987542712586039683554856091017226133987487803235663646110041427524694105614532621748022826023382371789904476252863796105393902309489235401148501671945692199692684977493951597596535732452660211649051098963305492248463760998294704541381189803728627706889841906589027425622644732168641173445364175404367946828236490798222361148428646768213455706589050962344750698767755205623684262842687935335197398553299352116579850777394612494264252140624818568431120880942182475232859178909997480532451132855947496404035855100915885111939957231702280342272062195772600297573359957301665141462232421923964962273890729843839849311173222669911009102009558735263328588878988730546824655753649063475226788315135826505634746781290069463471609156888590973489697821369498801363520503127689721226857798851186616633364503736270475828146808579194918333430365158957021465409752082362224681786978221732662528921808966599853019815537948021209275306249669181756677476125243351419152972817534764970919439527147311986592642845314072061794965744286932659721335930206141271849056732887857252938650497741562417702368191468472178422825956173521396373649648281807267002723088794140296669819908224673315910548439256293812333857401042287996705709093525717284573881032313746117793866123215047660916599703408102104796090049400703337736733902275310872027108905136001379525639976634496752086258656667238373385535722878431718580665197137499196152577617993996118488442165309375018275958945572347697837241141582522843598244497674010922435290200567832572322133673151032026916845960721651146642269168614848561100579180341996775605143905495795361778971721903272767420348797534333787133432246578969688602798639268263533247310637870367649613198077624279275152130818546732702793027695580381812902350815333738903196069643900434444324423520110109719634468212937380163832063037327389098686189556628026685366591822684737717346281733599936825646424030640424649105436093585940505862960142911776422175399172652304388628108057574010697380005006327537224737416318115802145418880573318717715592756413257302676071679948576956740612169778464438177052480941167990146684588408847535191349925012826129635130675826441637288243085853059035328563014596468138492155368857448439410450353068675390555302424538648151649272999530483847590023084750715488178219218079231643575426159462258674475948644570289776359832445248360257915621291087285357626457865910768815048828217296748944902704897297275201446705089454251325280819473972002014618225051679499790319868748657991627697961368886298561704847117183564461614724194294038496145723490962668325921743052700948690665194072384126918737126292068460692576012104290809990759626896119113327166513626404926734140624376353622470618094205411075286191745535406805955676165592639758426029315443714139479169351573835106026758477804218444851927402052373335355628580090236589180380966543983179235874422688764815560560566916394499651210462761285200464763306917081457526862425621186982961470384988825634403250789873033237815719081004578613580442810275460588575001295207492562584311686809136864328351562195169838270781248034297264348779819593056901651976575483526550574795718618409803191517371813318812106119233375519169496991661243947006025723140431437674825574237727995902955526523073066443506758254238722983670348790498555108241401660884687382633188460775542190024572318534944733375986036945429062975404836128395044688302078139419954798510257851413697905780002532404152471048637182825999556772686339963968778721748349092074990934477649732374799636761994578023626390585154007227561650358577997414215634639371354085305427125321212097851759464939387591791601825806727356104539199301283622598986461692873136054046071987204197410123036559355885101850874028167909780535222747869288473685628161285475645572530791993687659907883206364775439912333475051548665369957455806002615174218126916412335431002107346748954609993742024470432242727860953871850543611915091967481021825929521242744467807478306954043505361679651338146828502138028623004078648321299912490744217817037458373552201036584812359514495763896610319825668925703400249035125798138952165385944950688908515532307118080825275564477387848875202901947312413932015750870911057418272582060815561392563662866376424477858960860016331902849304450725513097576468360207214102076714160102199576835464991210056620967318771254358317886708250758347679356078726546677763770789383182514009422980614406540221457685892763045139532593449307397022140919214125816903045265330642219190534736684019775697081566289352288802835789530383313161474468891221103672206270755438748682532257258496674319511342390816830533335275354125767051417796142712152180289094632327231079720786373291962165716436679491247860309218369124119098320771942613193470202460299369851478023596672407478736442674558949394460662783274364166595140140751272306825414984385019296043778043249187296221077504385402497600179207246828401387947417317002536655735082473192965049674495301724839074688320335339638068585207781711734309356921463311149688990353864824739909872443127507646442938492293301296692651731153072002296023428193511848733477959627943764815778952938755394762153136637689342555957616546596762851078364983823943121545380671389926120906764310004609815335252897551243875979953716693270827698397071313130618260417212042682265186517055415802662818723953707372527896116885189458227755867433800837760161367074961263020509679368702550318953632461250590461664875223164057455156840762956115700506228417335678785541915134632270447085545733273432007902294238368170225779998906919446793973482839964921466291790106154047709492015149863381283445451229786989792588246840092900484283710571125410606430519649632462273443806464442157315426243315271128890193982735806001764934950188053002695604014505871807593601095950125669973504892183544200137933002623095527949252239381442113721457776139074333867091841706996472954575372473306657467664181837715663893729367656461247861016374274061981322552822762457241149126674626900538886914632446732371380851078481556836605972556127014004771291834189021214764122904653849721340455083667094516644831263812765927738169931884755815457620632374750625300270677806928899294126155197084380429906525521144846849902883740509806810007032758765177254235841134863515492296619263147002532396259082983054713639452403585703017955277554799233459780886070519651787808607345877663011785716308506269678958687953409381633987539549835635599919069913903646334208921855723513293371523848750009073192014407420823742083604065343452180661285209249070299896140574101834287021265627694729109197495098182089609071020914651406051386654403744926693905000677953665129852618127053297028950236937156318826482095417527608153582965156370830777878647857943826217493036560030645266576741568770520295062356959857712780540977929835626135696097525371718360109532812595712264538439388183894935872345237329706916044447156360258698052750782868608254395249108913667973145008458990698982468492178513849667658576053714056306906328694746956856499595556713668609993327666060100625823303182054290035083405917230869091447483476678298005745135118035865220082565676524673885847364115982377951879985946747639910073755486293621859842723054747654922404023565455472204359052924349119896968438962827839803236389747911293165923806919880150669267541973373789486636911782056943708519224973103793071119804756081239457018203926564596051445203013895531140320551771014215251845295885566179492870130420375983627141858703823849829462503790624079151495059876186747421330809744707070426918180081096947598616402777281115416381774534611857869847886528933697998065330352459111180980109369126057354322626801787688290556887053289651413867518436553025310855310633960118996938663067529067702956706047005799217013696474173594972906842451827813819990519835327489493889710809541125583011406922855982535609144039491365191911808708445757810738210135903750045244886331681156761984922600873862256235370608876079511917217857868342760239429586703146471899485462867110121594803299568320151809717914864018378882270297199986046238054653773392398096696305998106389560043174524537412082693339286053129828382215287314187450327551276041159051967177768709645397852491065875553572912118989858483687673893382128105005527765792164416661391647802007046254019843403833371121454131580963069919192811882642209407861091243940644011147340889663986268212715215611352173243684409778961900486846800889406854351313665976019080326638678243081352225442597799889056338007184645067002804783510615418247162418428640036057624976446233402025561272484552039929207358982859810901492924446004800421158150852643887231954590492013807804084504855526760022399764078333102096018692296496680153977885514666784701022044630842787551752257779239682063552356430106772314175399717099666794050319260039586897751384051892147351231031071298405247642229703596088945568897472195841590788901388209507209568305549543104531370523973546400626359472383141905367711451602574241158407786259637048255264724906574783086894957979558541176686297606136031374313742644526970062760588212015446768047706601853755776790681420816262938947782298738044562693165020159800054607884728849556471134632747549748076884747750088138641547998910934221340619507886623093997103926885420727420817535057979341483781418844815155026598695673042840605896799160805022016255043552133704165367363909039658597823762539566545442991596996029258403456200997039900752100167782917526032055279000737828408094366030091862150017179305500181776847849611628067157023535145022893155158620557586940034309610703214627876634182156284454874299681531291349384297103403302018304760822791985153122982599144561708700483422162933386649704959856059358164461366735994816445802693822717055536010233336096459001061195163326864193616470077149628670099178485073351628591505863996218345545514883726867762018509372001591479559442219051659692843345421529749206544164707986706212835506726619737181732876147539812487674184120001491752215321575861090445024511932796372671060086158843249980439426097780562490632153898201872967824884523686323922315921076550450362834037221637970641184682911557169359241981131523197802616675577894529190857976854630269024912801163304900523587332818855371936905590504304982171768054960496960968604842028211435812972273979158835535668745145163156641164035900684800555140996601568307799013649750936330536372343063156816883259436934955834185604134836734938989839927896047391027636384501016315841829498314607415152088786334722453528134098088409516592843234065071682629246220139216289720455109620314460038280610764705727153810028512373757874300383513237900470848747140558499685188832352275258151928642769535342292137233020197087912564183511529905883611279739065714324022754550384502942356058222902093473200550323999173694542703666281259509185774657799258050747219685658036371244514996767266266494972451818477607059855923151762193086579974967814181696572176564341105995897019681826406803019995850049484386549570524604538420610048037454739537587169128248619748166800837048573187541329425231294212067102179856245344970091599780777400053672301667799009025287369715182650202376062374014305575354633102802212326868278386776225378535559359088414972014059325096977916043169940078254144877433518697616515663637573905363334885436767221600012579891404124359208988452004083182776771304921767635347077053423290564719688520113767907754510510240380792066107095194188079393300571039540356579482419569043982152665473714226138823897452065399864919000405357147485144659921942953902199780751893882001864564388609315828372400996842581114877225096458391162855224815456032556733740006502893516388036693704474895987833013329510605953260153976265174010868982704915091573405495192662308340556514284005482730881599211498042214733179412915146897662543579054823158520819398823916076981765533060941275050184855689994908289890714783918630596045657008195580578478464800818706090690120036013691398509217251434012278603790692471348825137920807300588600740434622663423429942786939237300709206546934978999803220255980501602880221564687040323580283845043795327666632169530005526863008966249771329460126272038040186569841128682572028040087447512235521011972526572504731503342915983419042532405300752499548364137549069127357500263925193062129967850761812474588038843730673589757231414154862843704180350737687295069254266373025095812786264426754318205414511930556963834022759197889531103913711563512486225535824130811684979138724499193806510579982620128444360177027810289825352351835339877695088476202181274867005022098066911087283005455940553857288555213687386499072115567820870021734915380279584974442952342363239704547983198841182620482604023292152758676280227711402157100294504069039608253994684138568396129907592431343306856004606531471506896856491688933004461636184298044697057309196549794149504758865665610042054187984030359746301864526417124585656078271256431813533062660828827731358753853968923010331804809185911191080704145132423346176478207991980073649975316927815266702580760469152330010491840669158248161779601892833024878336627412197295364239512379432008835042191351857884576876389769683821244495762576365223843027550017355805147244254640175909674372434275504708583600063638128083619644854871627311696948915651993586770186810710071411521685300500129781238106182310472299290973070500953050994566943572815664836950989477236392231623168319714230494476418529532393001898394185959053277409544915612507391611717934629714941645723728487880425668028296355699338956320956879170637882324003313640850027589585382050232638279715711464744449688281148028217810316232440525345989219661116932223433565193072626987674849205116238905650254692730321606253890597836255410521664613781442963271883626368617126398750508675286226479795315879173452210500635355583842955618766922866652742107577958474414631267691324567645703362735086369179183537047741834514247066482885732221323277059575842878287233231987011474523814625461673886389942077377165390617921750068036058093693470124008144907839140228410457771984006751782046497230329924862083894457392370264351313152755103896362100264372718453278895684734356259216464841885660806092588682935081084380908118388932691026471048081395720489211867079600407745618208276096313779246359194098323717750972976685358483081098334226849370052108541622391311699993965796204868205342250006400430115760758481003079173288896138599492171119174438203057441149576480328242726794862153752051849564362453319572186055077319932140149164990306715364971661630293339944728108410315583383828398843851532680164795965567230571517739245680035812067056352181435517499414572041420766318209689174158165727656812025532391595027435929630517549931022102427988092102515256894896353357639876498941570381585231274797985388346085348391588993749559080729066710498763779634705087084794276832070671132148921268006461492622127421345243665435616919342422310597945329750888231473614490900798494148631360898320973804498459327011747690118691468594826958964572505210553132606743820921926840926300955051124008831627823985973290910292358649469926273105232654317115663080010432183938925263910828508803304671766228964061804612582865543345644846124292600196207386277685400096712179822510976467304034606045886616494415625872951075380465372117328847281691611606902806677889522316521601422653801852516168407549400899939330428251579344278991156903413164638899616794896928839677218445783303611561084226992002826165965381791408017574512418239585391957416545438821920849120211921654896611974954342372538997579102827118666575057498552483975163928109953277429865540649577620226936067847513633222375156530319027808669746599732204579484786178608758988848859003668979293443019783933122651477750856137613163041648892556506996589581968250151720746242695023680956990332458211205655049365406321422020859334719483665382922986645891228629840860557630256510465502199546341116485597773566557685438201900052817816236636760341815455282909263949345083327840066007776108939389040687263722628659300929371901766576483591516370386620048680543201986950088149709083863141835524380019707886840498130604377718212946680185339612486964041456011110663028824443474217138799291781792957396321512459152858632916673160093657237068719498742952259510030378074667265973910688389927955129298814242529921137174473975796049400279759764245906799409833013377311043464896605060997007705125217530786609425449242024142883795953017960296243047179934311252041826866135541081290353336488226927865284600743699391956094226869618147287297931547806071653177006008228230840055729415333947636840968014689840526865697042498468209481863286730239386479694774210286885387674092009295812962426088382883606254813672515083193372831642046404224728135343775911233327797902566035995083659339582751257308521746455698196501247206493630827478624929013275161955748019608383996540702541556399009090891218846528286125760852853175719816183058274325362689605483653640939585627636167959886039809190545828465367038863781112615403528276957795421897326081280195668020977352479018111234240390652082242006434422255018286676228643895910707030269293661132390607802578357268955094723284436437175965123422659704262620845727945868976355480465259420509821432026968581718641740368426928849039490822151152343638156317742856912338476139840654061323856169276509739018216128408655330427896799922341799853875744666180085104295059667830195347722964116159396167542390093376761644145175379901357369522105623259519052354782835595318220932114368975114074520349915151773349620709831817257976748909104418256726126258300080601259508820518621648395529286708684919201734266736850342875467632163163829827077431272504313554251898966441563658599151148824056300859114240950352949639674328607639461419703558696820710301407096828379126764899778324595028810967086693960793671151038591188108886591241212046471210707670007969107144516038968438267894046232642956445694866803088088604258145061582686903243599991797567962821806964070451085219424595594378409924031930545872827556167734421894129121735207108253273297990925127362674980026646309407977290992482571243873851269191732745516143261855477593011884014852825736439613368070113543855426435791036328580992883777284458041562829481353663701623428946421327438132693674385167859978891823467965005324963309555128842258642563853656606344380195387384220924435780520105320253693190685361903773130068778077279820485847861845151287398557071024069357318177632359053462103167603845183879021794980728237813576766727714062156067715621697581338354121577721478908186340906138220423192043835897425315030940479683815325119915129692389102456216395758087599365752517343179737947064081271399064659398146634488686626305249573563889604773251093981944455517049889907971393316593350254809047456100005579497959827236499395938926635091958069636285277862620939847064844664650540567136035229188854946380010645427647302381382125959816947098561051040757649961962289081231970776702571438544861585699268891239900552579884541017529599887507685540702252077961270282093783749898597857960128214096180845446672516962218330909440741339566500889520581430071276930943054429627811777874190115724116873973981416034671357314962855035867848673873837873313087185061407712317317036877617045712741835927515732141412313758610704239574700344060524985957186684742873833877291322184371703139577375461771986257978426134322587615026811149195574933499937062964786210216674260611296184058242183520401940824569528012010539312299226329502159989824105672244387778441921714957648577977581309544181367447942117317203984321688686263052885770331194693797946542884044473214267371252296577754238657856511127260706971416832746515362793745504987423353878309320809455594242106928510808322405808702472953573989763904128902200895194544860958812268637167963259355635761414254646922830051248988659884312341906991533077511928795749209010486042164325432680522572352556746657993561028583461372131383222434243144682001519531914378687442747433858380240132130092222945289707593528288301853059660862984742228037878254750951255013822132954861818565479909347863966614440153356523487866812198917162313183827871087737221878729228189626866386885056046058445463271443056705573644484767860273502250752244302045808604146099629795822434399872749567006823037176337273238822812251663072946610750609056495534481795110234857536669917157140491100640730017711927870634761570997655484159971511760745541178601492496542849003850497446733012665884309897442074333267201304627594671143450984187560743437480841824500556231383316461038396171743331439299560738043955175474295252893863477299619142433570918610166753362763346218347233511312429130232699424799104110402723897913711922977926381636749633701145290987057969450629334647578277494025171011385160704389283624994899069037849088559110674572059921992186904890926208151456108513191707096639704110916927612871030674582341343015595852849056148951503274650848734549002531851387087664016278219424386694371546696518781826657620336091046431454062992988925277390646010019327439479153768276416710994484513996748335621029994543251107352918627592400367357187714354183689672414047263050379980785162261001762966055620235458486882787281564093189455488068882620725367192365902971284856649346551578226438034493955301970119819563853202243767256206839612907554431787662515948067770322200423848532207734178577644414283673443574454447088289367051656175086039220643716836097996732109962355536794716547434937464203821792341259357153812211875733827911616155395948750751573692565235259327167630309626256143893521212595983412656383440065783143777137232694261760462960856397175303112291517092759473360312156403304256664765498486210387807229169898074441599884212540491118832087311000059866192815133534168934807853464146260673041641283090399622336198023773038939961620616786993535388922947304475313139418598287885577379286189206898331762015313612394918688958472323478957902362496092312111657011823132462548556791957846533858625565556638583684266592560485853279577768326685332046579651706646235498692400739559444190357718769986942627473255540351758381440749431105994626832088416759247208031614221679355566037204429212813086273410188857482007772061348757902998968727133319516385396498128097431703411756387935590376842480424188466707987565876029922637483467858413345866578973501003563238969952026717862137418124387337635319736475857245046908742508286832515632373762079809976947469683605595232409328051628035546604837691849606299697771094399965683051206239619366950087801120568221439445090640018092354691422296224490815761558933691452290660431726235882702911177774950295494978338044898906634429432548110889102530117664676687317198360849435678832411248647899517856255018079828604209374757609755927686455555182061280889132979841396013309202806166471858598187624423007636163876009639236934433604772476824282023737288812285473211340274048436465550478832139413674234887806210924334711392363191246882539000903112593416574438771612546101156086561604142292845291861412291124037390046113206484637306262830767648217884004744064577997449994183899425988408852244266517333826799871645693835235470841463264869754320021348328299436229901360797184839584419614978113009536540820377966257017324775513563360129715185037734386495830395843776854793957490244934964189690541455187923247499221956819535492271405796485436090627323515973766034039590889993064592099425701167362006105744025634545468808261622645566686019110814148145263872425209887065032964869912863395540785259370746354347408553748181767869857422577994714239860826576783369766430076338822079909392602831438844339190218116181314685912123344198746644126461829929318314504409310405514437034525150918888919214440366959406725326482854018664491478219362747244944393660261486445280619088262055799905169159780627422822194154856402631869144958171776611722885413482820728274564379885959577513489658332060027137297329586060641040807329144191504418937112542456912528472166602147721789142377952965624923036338248926057050091456517615242167984931985528013426984005229396125514567742780306972179041992312460299686747745289624238888637401463188749771047251717475939592383008080284270237874690956424588181955469631286391178322225221561734974988505818038082375950983210742575273181380617727984713308418835837675260677762966484858692092296331382256904406032894096346030207398078799629335163144653899725018983811491230203234979300037448902578638358884338194110937864996254267471676038365725222056232689107037593376057461669558367092721083281186849260718440542352259631704971427780896920804802158594733019463687956645477837152166607898416236562296546121387921225108558523940540066915048969382236896111309091570597727594595575994559030573008771727974230695338496544427979385593004455917086438541274541576171048336336492257421086531244765730458962327233605730579827943048638260235152339165139444810011848008609562043412388236645897914055068684508277113109823017936931803088776388348020895566126836258054878406087817820613502978873954229617726507137256902372956769910081937224497010966875426792899587433636178137692786449649175323264982279114585147166798540010972054659295110863776180201053174550744924129507187755130430880425048672976596962629931797873094015840756833770678647279309319874734901667087049551476983145448466955961962985893530670292782224455691081109251619148009191674328310082551811775482474788191705864514554064262477485662638146746116787373770913986359795653879510543902215325265597424678590615565540547590492719777349145378039612451070056516641447184827122458385063346534805804309502383742491412531924794893420770474151394050856152219365842229086528415187395730584969435307761438739141027896432847531124352625434531832635797885139892324753298630776592587665431838638244405876980936208396600386604665044050745193944786416578113629368038023028440676717367568731729533326480854066134643834036278135176595056177245884658040959519948660145018805753483640587896643201173791479963182491751566969311297894420985006715655529068377253008336088121057199899130695069115444933544896646693133568800321281101417635655929654603398455700435517226461364370619014722803264773769687119730258821113301809019943217874768919380079954075172023319075487896294726314557183878388231694529250783453199321517790444917377205466704676306809908379375766774481195540867931942830415946946889947310310648077059801660202196759454066414532650936237984662991826504629749237200723460639197118055841187037113690781264000237229561724485805360128621282427356082684761515310348501340845278767992074725391481927211260243413679283296253604351891422311198110636010732489772746762204191824496402598716210402576937197514041480937930390075595145595628809473146376670877451169235090063773314496187142966718513734948288363962383466112002962097199482078501119246617859991215785430230326413009614530626288587847600020835975561914229623038288946392167888506611193578693506215733911284124155531787672722338932034700046496176881830979174452025164540442930507874385703687575734640834922125285629371467248044145921548709992528603711818806393922524251821823011612547924989622225435785343523443637355477085814285954308689554551378204399285913507753451726805053690763591048163172922485340258372071644352326190408615407696307936220178243168651918970927014398443716236216137042410130454968032490661112568768808713246257284362523594615554534912539741525208948966361310056813518968307192955824157137287204047440533499100226612791203603628881567888052465128900507344349640660590448888341156227392908113971746321827318252381475813013433642013717531786909733526691630369794138071839349869500584074747815834819444371773717172240887895864503590079495960908156511327682750482963938370227966873753381207839390956889346145092347029136937090899241607812207659643020404294805025752307979233510661364641704882212553010698002681076596188104411056124896252967365790131529578476831240553396188727270579902831624823729485435341705244981237518114525668478504509565643844924832887701994985186469857800120384959265748374245374328216451322388609589744048992979504837123341451502145797997143289262645735750656923671648463149089482036742859644437229350314889034423072001322645714921684546537787270246528334283110765479340035884671806128916315788936834194781419300516759258200653196196731106454962136693865732927592091510937260697750869975148737110615372066525367654796690314005752822574703251559111127930399964260981616554616434530652882784730130007170143590186657200409353922780272612085209759817225334562794336608219666467545380175270185842506166259784588600985420571610473376263412202247668983204877023017436166311375372285888322857435511908321262175299599995371106548022985726063412523310126088883003935431668406991972155924143138976440492916780517306912276002259727525225401815292510937970779032272050731312833728287003266655536738335359577148646845075678095169505118599454513754740012182684709724059630817784817338748519815576221758947454293125954245952860354400191775496582732847064102930204904501250560932681249267486678508480633957900003431216368841201462003727197756482099784336449290857071716230935834578543214501069710059411929936273564860488941717951780142143522897003871015752757244613256117508331250062902010379682616660593451367292028620971911474879654146985127023459091590108222218513978481428217228607992425629161680031242151343518767868633384497906344727346992362271166868177650448417242408232576231149210468330359740099940839486523206965934829203200554414530319937846063480539183781478451706713921759801747402900873742510300165832233936438476603792718093659594333742894954283073298571119971471642120350445385707659173997949939130010633413541494381668094971632695526351097710499593215104914998770171672483920545037370882468693055520132796845863201376125030602468906350663917511862044074010296911724825812716831956739484235838939531153024461440365163669992778746332384154244007044562068330788905613053449723603142815240373068733462388894644466705959668454684895421277175619648550777254135231065209673322746748773687206645409135803174133652289276478567930490331000011826617136424671137061932939219542016773837066144313380749281565801961867539486150447275492328411693465952785986003231878169991808534870086968669646958152323134153461758571294037056764518890866360740014387514309282424390368435688116290508829935573023123773422365138554785853088313429749858745628414202328293815772169357206590783159350322791491605508907108716018879018170109164854170276967183865711351402426783502059845487674207567636471820533341597230672413646389687177004319207172686239483350268854640367925908392287018136691934666530429830106696386892611272121544059487983909685814310128380526594042355430413140929616886211052542936471428593066307575959926530923417020305927388456327162081558058028850896686467373172760397698448953067595501989472946806767338451558692697920109115149458717087003395581634467719984702697451740169078252364077179751862676093231533475077374071143820043812656019111696029356213051454081331160602067120455980390645833409477548329229939859330658114264886320298097715588165787114386073843528716629882742347132053650633314056725844712516566713231930009588670321005968175009474554034249632243229551633947519687301165838263642921962481976979332461417719360051353472251469036946150707004090958728965057554048006425486913983507002157321278610411489442145857356821464987503507270811161781462453261976441433149315022192433965462490643220029677241842891103724557075130694986432170912736438427229518539142373439996034102673477852308655340581839379772188114373186505294560740813459586965888026706221586290548097746026099869723649040116212507815262664023143288224926047397439604330551989575189015880731953926056582237422059981003378058559790696743396109203672334322918774511109499284585490151903886762882638396601228163800430832694339045384483801214625693599785373435056014102017664674969852640664966654662374622760566948816957048146172435187109352331987839572636277227333383979168605838523500879621715354764304031642704359811461870852603386919182403445472188220344614744671615912474063028168923340221411297976909541627367532112908784886529823482807176830121405539007360784752340483972027636377009852748498272476775024187630905898830444247357748479832192788915612503760171954234213034305564760348546794145982721917830358942847171168785170009866304701158625851894992153457296250714240486983318126444142926245235042996671023896756052354032691307819794029433949430976017018698071359525826432294078621882665619785427897267315038747906910322077735897191619078432153305284331951987757904622188624269595503320972033637148612172096383925218619338844355521235804093484755094925310773985716882716843730202189573354974195052163379379105347513614986337374747072035336215825922727883803687314426577352383640281964872636880113357648439931906420691835116211779021599660281636979100551784585846835420313940645285418719585068742921938157883681427724178845635864315090955778182208768246096164304431009421037762997320560912307775144696260780177461418615611569956637309866094862089888615075219112648256572236206246349813045345170039195644273077789323811800459140979381392848989950566552633954857018107411216489070857199186972559196272835196406042620756052696613472416527502097456155980757230397439194863468710510792584404282051155497900976957572247519185868593468852543819785029926846234499921751701531512734336803638420629133272469084397849266353514805964900508704552333598002687761872571671125764063270808431520699281411612984257308902038591272184044563260088941839253415974651486213453706219230505940782974197575400530477373011892630539328780789587776550881570315779342166003983167366488073805790515095177474582191714611390066652832895361723693328358990133214081459452074154147400016607831336782466331783780167997612280590947284495185845234632504641118094397945036601613627734922360125499788322785786705754335519338143472760965001882705909922347076225089456600515106017983988368486106135172366897271433599420018305847458147865780327598570359678626795586125880923312788387016841451767189633270883171095212778094400096684633596996217836324449862345143594519715270298013750992639723638398862172612975695943883639713664664461053672305188389725262332143723715564429982344809340541589301060315356725539260740469002501752655054468875477182607302942854696436702455485503891066456237507457819320691295549545183355082197111511050778421572479828376996790431594050675065297166310968222695687862366102059644109279880686152087450280676663423534320920280997400175252217916843373546128990549415377690877049426638458917858660009205136294751834499956999517426123732637790119981639202478484101474112909397801595163673024633622154868002831269852156651656394834767592347163618743566085176151593752491338521722674518589232356146157477785358016126449233362481846906929046652627437936813261258650712295305709238848135223441493410514576541737024341314683400007992674162396365323975756199513147276554045993270069717464432668131005888287908651490090071438452383337809107494330733073996898936821942378443655079233939098296429190148523022911001909000892566156880956689768897172313302227664727355263341970322961408204118201041420330026507972798235668500125254105030356048211876828258155385543720568035085983698394813836290764911441940026857083032457380695998392810932088631774135821907367229775587892826961201678861194462588176678331637906493831106970549537991629237176593977050747023253063102684071429675784474191781441274546787321282243613244876199017330172884297217012872820845206414423755843189186131521924117037968137406794627437361854223986734782289943422393363370047010050156486341623440326471824203212833499448511996405703916192470623885956353542844738805945047544805321056435676189134836983794412416002953721565229787074817644555121073067415134722704585464626751908992187194909882518832655370296397201788752622759824643356606497264642550810155448466430109971612214003606753063078701781462170075216653766774674181102648787350488405874212546565121286900936803944666167021006223323082659856127787960553443132578062871623421953497435144312843287723790721312320878809962831555761076796869914149053978128478228860266453503173602283850013230798583450669877884650767816898283623908656584910396972035590537700805775922544208110978741995320611292287422457372036425666263822264175788738382312809457656719384159744567034505440937060393036255720942381437212889937403262168605757924640800989798048183130110802615285848233622108239456481477383837489655862551788837460592990236861628126163619169100884969351358972519855754265375575977573728995184598577559207572334301919457698289556148299908309052403375374358580004519783636012477004328508849435723376554290169366215491983704205839680789992223814774868061672389222993723577373826751575232798957433323481861263113906511471890924577737955287229263209279017973778504153144047199719792466616273878113437275075088027040433775240494252839923995945492287334895993223442013308521959288312812631564180547628925052445235651149072025307094657062561686137702358779587433398416939969146509431975764314880701327662461553304466108876410126712644780987662470310352128439210895075435222571729446383815466701813788028026120383725223066250790343610802897626719485085152938960312117993270210080567542692786902785784660092195234712274558553036042297342535890026670049278346949794727139200214956281021158743762103831528031292543500267972116473035785034195459521963964214153703026884299383333733988351071822060744509656409894709696307262891931160209308023575417233722002032546823781744919371341522878865062346579143335271297732578567345962096256484203103218111921370766263340298042997186923309371123812068868912042336687494817883118153495446233021626177142936652498174557437894569533235851917285104397278481863912251050108871341697750056415665021049280574103179841075912241223668026501103894319081999633114933760517668443909119510320134474868494319666778952425974201902794625567071052035473959182579845788689561248560310459999045635811221584629029440392327339389394124089408577884915069400726554568045833126843311952935732968038570629734803128344640294145383504936991159682682083494875669439932541413848835294568363664952731152676617527686467442716205296471182182348074072090359573502828001948551844174766665114459395017574934942798877013981939843790176337923077175045639007186934716496474920279387985500820337904632054544432694441496713892866577892318003506831248642064991590680733175856686063356201448678473891594062416057951076691029028677112774195984131051099187220399176666557750383275521161463034028517226274873158008755175621323831373933307531130718048108007264589388377098927042524310893637942644238676217117167222349419990668419969014234840723740178629428308092955602999189813212891007162386938935598833392421556827637113869874664310745422132726688282903996527078073309647851995903932646070339096007197108317347521792230588323186542459229939918169325280004148239003625311547131686586522527746343590741573469872023979100250776537366182708080087012114635946567942127812575679677742771946497666935421038439555078851586515590948173282859491388636651718127242610664833835760626823311790455809912164718404036952325741054821429100192272677654057287061755584623939132214686483676537939602200855221265921818950530243588482243450004415437644951497820276836614273831070114594133024502777231936093564644822080715791734264872109036894054449384702211643006538585633123282944911612877441219755894195097418677024559918078153690942902194636473108035122793804412342070885527222103643042072052636378860521214800208862526847512219190056444630406107562054983005943623527459257081334279173424571309466593436085807461921885031010525433118514856644920833420173073745861274914597142761819023360088311572710769957111628963373670928175318588396068319548147891242315038501081060142307689315549308458542068008733450833350349512587489878157512956601748320919115824001514462844828129933122163872802951797743784162826381964307881033403822637100180816891725699954978408044003042719522062584234406865493020337500225721984651181941204463063261245814457686252996012615911839772268826936072827173175557903786873733748267628900005871525543153184332947578074326694566499198619259401574857004451188869846268200193686653228302353662193572760382773698913134650193265087308406698907653486090594680314282491211643811443016754103800358498429883210332781099538601739387117683372304517087788233615360395740987757884629989548308522754671264356795927173867267552757940657539756404846070416703446751705968860551865641442070061808021060519975844507395094392556804739222218683252174893638990649971797981736109856148724777054055804111842989929222266308908563042347579734830388509769859332940368417634660216434989086594612350892573551899890661458447499423649561230849745032444509474720352660979009975873066520710440058852698931640727421529592749648152768151902350001061362546825199301888783614871789497432162951977181587345264711045487880508503802829419305910671233513555090543322800456977709160185108734802467588443321364853275591233203133378557599465072968049049255896009852117794166217130804148365119099762511569486476178922851802903648150590084345676614439098719576636053445232214649680401298025905975207934309077063226392942433068300157120992300713614896037230762838032809243273082344059541202824679311984823071395628823921620725610327909023406828258032701512778913128915887957257357618103519169508188854173096406436386881821907439808939379403536771723810362030430835033167583850418706196503958346709192098188087095928092583785549831850641546929752139608990597756023282937536740370247991644606062765391574196181922732718710702648577480252410607820722956973291860932895717955431083448401752099205046284217826289287042580395953731694707850585551632931341644748877701356343245143746157772908053047815158774504011924594950728234093580712433735857196666633738707904463572263305718812766527276626468376556233314361082934523903081046074317466094751309535609097305871562301434063385701542166534107798914916238551884326738782773051955034040057727543020299449928009637473430406479666492774093827903758258146998256851491267546201041155282275712731166157215413198210252782281296949695918190246693958304703666418699878023780814435693138106875991122447958170025854314291873788992581569281924263125118173049813288811417062295390704982147980326698358278534035877680546756913369627176009673158969474532866117796356356110119755796247898325659915950604019041358067498361748610864788766109521563483308924359874348419591965762795687578181420804403248528539707927985032601348049731570914491120163758091805041888277204902146323725020382346757768153963113686439259357999600649618922144850589234028595160990155899643068633951332000213640896906915334876739983906723609943865566443371032199681802050283182453137991745138967739404984012954299784666470465157099411008731532845290703192029593412656551258001186749289153339055612737334469560151429705714292110774099759413706143265655606410673864643585005709810143233663629293566995818652241910091912822940073508944444307264232206179869643285960020597213103909763642119685060684095498899509346293818841956689403146237437472883290150625895493582492866997861958277408095461013338336695781272520074026202404027035821215226085437233458224663819707823489351094083338887453609430709301414275921729749114109902173744828246697248608520989988529583316805848048735753259852795528578841724905307340293180422563118131200673391279897108141596264388465449174951601389481601285998721477505259453700915883720708296345764270195620525721667180107155402579791065310201286875966709201830929594172341452669454624903068189504739204834632017652222977599745017015688291036051391773154220572375239790990188311486714541398172003042475067765719630740192284191402945245952894728654638013647995009449984414204255520034027282361417695295671067683947564908810125219976064926834710602760712192149000156059735226685174910969744403112549901003484311484553291958949231766680295389803929477198120932930660378273936295383901677328542263825937270315508370024819293925780862076034433832757923236403037058464091627702616965723689852804293531678673253921727212925376941462382762684056626387119014395570527534515285206552125929959865125720567274381592079965151898149478463480006253632191487872439467674849724689430197184798073530903899053524821554826009647173109125907902522401737580204838168309207935506614285630875897211504129289326851052801471111097078665180287134797459384627087999695708980804445718570204242388664981152661347907797372877635038399379103738734128010313924324409021102389610656910595911608032973938164765219463050778592310938581540154694212791927690181483627056641745790213911777104925323849939609814672794763043417953700372295932600900259038667364921803658470082718772335852935866514359426740858655314334868826204872854259027696797866190679857340208979918982765592193123750848355232206632332133791007754398027681209953086246689964574609743815941216210572403365022450740456906259692598761031584319502039684928222497018989922285168639495645547668023678033136714094041634331578993725940977452276480145679122142008195932202175222173187946193060724160025881818518233134898184502686021402795923846953135955839835803774852995525163959537332826303887016084004051447112427094775426051139673029964094271956757382567795621029489423437736245019854672568774728380858698963130535865409475789815874143233766412578824342255742322786051831787507471259524466672148932457471068027091721220583449682948477155699710112638009357155934027212621875876009842834188103802694593892492834766881753684616766074690815197876748629176834509303680648649430907070154813656165106583227822146601922726333924317620287748936183833876863130441333234582115400951006134450241038364146164804103369658233383358000434037706191328164978856271669197793707950863876426144906982532961907323547753429133351842903946086983681092743261720021295331148916033259473882646711985812399365500993947831094890350106670414858415037686579401113559282260660660373840416340695176075039592548062855072738244469342684237818626012294283541279952351198690312299339403532499866048762835958348264705898173327803817684565747951597907501352910232262642867864843092101649925483802076537390899793668917332859485594460477750202831300381947037464836978264575316630056196780238136736664035273131275336415609214217812778970887630590903751949284871683207269404405245981627417803592485133467593716508888683322872136673796050167799590757367928051156447527703226690544925638103129034934699281855447719806247301099134144725223562801058500349509246597644711589832805329176969178456286207623946032761401229581024783981237742726845305195756874392898644305458047676678758415760858651595994599093504170932488696496601567878779298703024174406658060589183200939309751424666550181981353235571411418906454162844448571768496937306287756445397803129134160502743047271890837066124380017977040974211636510967863019722837172523304104731267150325636590751476241235677547625313321578172451331669165872912442810662697255583343688809682686412279956450897606859622533960980182555581960368022996298541837477648482186558045086007025057011437385503287170033582191333501538470045472779384826973854468705834239713665009934275358805571341334075067661795386109163634414901969401973549204304817531002923801993370688862235945121550506508985788073939516028748346126501876057887645943621694147356558975726988459391589850045144348247438258580195664770391651621541354075498706288498023591624900408818094377114063597445218109816521380048870609209847361267785106470611479864354681596151869528068721143492856928087418122742963176742676561314491101510211074302483524498318245317798308686442780560775028490676076813679913972377785256709422781625596754505685509526342168040116718473661489681230266080901486630468620136655830940624107753677789183717615873708566766280824401315260512852429299083116743281442853977262801335989248115820555031283590084011583022558502594225190679354890678183350965136678679520904469580292357406039010577124294500641412960028157257299286004857898848453453092736195178056762855184456010276430331509361070692984124686439430664662055849321354999774442423351137513613099054436165244836122739307468821071085926480730735974995013148757197942161554659348181607008952807184261257058026756329017561532694362914343336369301120291046990546183422417119357873686408397768313454751848858483637584658233076888406969337325955529077989164223937766802344108710780252495714872246190665605307236066086051466912761933308980874399624216070421153806076499810615420745547434570338642613356259759168315457952630595100486491130281265038916194922354309520175680543055840953589642578407030145454631235579372064742388988664137378909079791898957272183589505276557044641464941764153585713789868785373877964696563262848773699107447004153759722887820507506887027633922563693551831432217931153542422054155343373561007719386194949078859070187508165712035216827702830020307526657853741588492490756332024045817876789072653706291605866933670767989531477663167847098542489962506421938744719839516325634968542598381463002267446079776053510755989419453215659002403756881737309798781486187332227914550355579972906318271637720931692827884072024613233455512696724197206713274388088927317092938602599356102392572561305324894224298504762394976357804552839430863062736165627208039992279297605671734115581833350489086715820715731478107266764155148059899428556206729150000459802771603620040391730121850543216732725965218683001257372695225000456445506762475277070037710476391225105417577258584404763158997138091171936167683565486913073820485665879340058075721358270383227227126903301257225283015005452232200050893103450582568543232966656699548711651831987757936704598900947483068867769434572011671594093926703205160942803707013213039206666981240432977012566530120887554189971525971685427978462002080565469616426458806786011453640966421167272656374992314952981672213430330227643403193920324136528349771632060102774578708921622176843650227720847437557168637488573428169881009504601988538163447887087636874524621909794323668380954764467186527813891197925810687394168981334541178735962915075927654738859696524842394368772770507422559575409900834867299756908776288838306263362146046967562955573561508776206366664195535879343343915747006933498442891812055546404001397888217790194352539756644091800806971948915957043749782430795428052689393331513783735880634258893993120052439508667986577307713214282227439065148058353642059201959545397887818722687386088405547630107601804318389098958012223590392940095085106922183267747434086659767958773892612836305912225790216523224620992626572800505742292889573593769671787856248799777485944183219402917404144053168466084559465045615599754230545241666224908034348190139286689151178748448569141314016534466313007028428884247278195770759799764866014844436644597466711756254820717099590997432375626648182019134297797982979317803490813073675806375243232667271271629476242544025641381376222102224246501773855108037743076721107149106120003316205845538817319041499142175224477150910844490472953370124530218547957101154029366120347606649503100331851061337238720562949381290367294759714214343231228150156214098846932787800428305000496081877444451999310811492200923652358795807738108462504569834342337527524204069201245021593551433442682392762598734141108562640626674214504470395696780072769829972744805096216316635632038391609491843833675614692804537881592905938228162784709101038937198884012718734343349367003114837900772736810356188263241514996102597851068798662370526432982454706880253941285465052306013885338061443829397394957858845260124675645922151281515257832071901877890735901776131332067289743509373422101001654265867511603941001594002468915138804524248461099983753801038970253713664293844860817317906996983999722083596766799240416706345940141008259620497683788264157466462505981008129831653788513571401864708029361237313540531635953562016536165970954040210795985428072403638182672522726731313299500298713704358123633625998804321091675186597540926611492026324662955815869681037461047735698334100376190482703844561451676568137077444437974393375132326277412276542875633256368714311282029186778914586146043962913673313434317039772844363686345706162556029742554297653159133139196895772422705240700289668294398743895841625459646727263243786035787287402264713472226408480572533229709663172069447217332891649512793548025528595881551216104393076444675295000405416912507179254252398588664878033924914732111395153336883429050292023680397300220502458899400263590566735233873506081371337930458384360991949313612216407733180293221720402100131433769127411977633265001656022345833225160994785371399615909845284144713315076765699461230359544500652854156559046062321928724276146750697432304392639935732863468233457755088649520407440307763948751265345755755580307126410149406163805029513993913762119977869715399170968400581443926791628543460025020031186816770385773177059362546639043040496509665811787525989540300055943646811783592877879026129985176128969942171740266102237099764942015777444024846222770569252115233328380851876638428746245886468543412710978508747189787540816166340070451742978391279887388017569199960880597360754814171323093709653115907001273200967378432712149786159503943384882737325526558026857764043054097435760097372083513676961041785593701722436524624770085874786970425096399518999068993582961718300483111866871764700823364252918532177175247957394740666371752756320118087169301879038993670361035501353455547248007284463883526313861954951132776564842427295470918865770612339274868157141539757612735139621537747132119845259955258880324286221822530686761161892889320676499024352673576215623077147420993357300784208267135181063195128728515793474827211914230550293779683369744165137721262839597087297294645231931074688844209969422925346921338790537465822228023661175207489110420779279300133878952006505058797523457286553284110233125859344618751842536331698711392922306958031321503104312812501173461359053987342532267315100066931396257102553944991532194621173571231978066640533656143419957534663652575377199263056464233767489428493717677800855084217799300535950230091529954084278109176313991728909061235468198383315440237802124465482173194163667994185706423158090858966132510375662395026572487127646595084181855210952513629729277116900673118991451168303421049713964751249034167389957754584803397095846131242452989009898551587888476665040412146409823815659016793264662056162046888759917905312425434786414399738109406511346465246376227181104484339786891667658419272075610596674084153391407995596172285949499364760242977883511266040579499299165227617947319263090495169169520409256640797152972903397488989176112576162497098154232255401213302708029052188118570658040516035457154274412715895960975125084165981426580998649072373593196090254120829700207883403352128372654079902028882491549620102541835348346176402893599152167226533065822908548872813963035406942410210247344303411647698792086216405468300376075738228347726217303783783775408322147006933853834914670124428819452539006563237673689018511304663878771579170466922767303890162020296688447202795988719175231656015721470139522881338066362288662975628876132010465542508091706728054381780580237558283082264175611187395188607444967880574049492479137206584540736585604145270593723415490498667278430284329783713888903380024324943253548247097250018496758051211003321714942992561193917130638633522779162206871052543235884884422546377902597075273918651864010519460317190390984590852318711768553619356052298527020166717428671956448697788614903006031574444570900706185989292435325451484647347740343665275852762426846411022441368594932927786595433808006756972761695693934312718133972438063303735441242969730487140416291001477210859503864020445205620466621682146848077126677312157219398346122764811489917085368752979701085083934829796169000473321701250598266098741981537488903598366977838146640788815686338185409229642677709974679786458877841576010877440806831037765352186669558850999100343432608215945738386278594819182341361365336286604296048971497706680659993487811133097916241410793361449662879446979479314519663382447305251941589244355612924063323903447915517088021127978925129268015741355117434442068758189927714793796399863613713081119775880267198705921112713948209028001272836700535719308899264085817113106641668135038520630435913919823080764022713374143895950849527394957659112859993443441525759871829418534513631108814032033114626647040477740392752517350217205085252659908714011686647967763837693137597354469126606111213302645688893112773190607990723615319768396344193373058197392294543440060338527028429799897749738582704826193070372833474195841408844998030475520370385208227433050326907237279621304255270199732129591107813925519644931760157338949608669981497342231150925911313095546360816222577559528675337858992705189016274535965257953579599977930017771127899322222469782683341625886865784466287590972426975228659104674302242272314948868150790085928796271433887917370844572496722812464104688627321026269378344489226017385365455539387848533780354286077975537076642580384966759919311173247603488686205824136551200423448589159978970472858227452089105669596592651158489836778371017620706395012284362372259637553323418489604968830001033983736265185278539006362729281121114670960750966798150772343123513915342080479153189893243645808059108187939431083033806953255513550937417764786926106756528713291005599855747983628076882562185752013739151652870190856037766839033087827895090954752245814036338570085772192204731206888714215960095207420933677021602563065876804251767441528436528175125374965644003890133598362867315326204656890451120393393879082036498074029748766995927673391347009486195034648195577303847305412665086308444730820132672022357551851163994036073590921762868800422865019625882545007477338638088611781343626429659252877992071707808368569561106109168508605403086579730872757536755606107350839697905466608259127624190920032058898379526886593151813432210242137693108355086543612369975667639428027450691365877262429485711878690493059488418906130272104403067857019052136560662390195829741062197065224828615541503100777577207454126535116886010824123565591664855966805392315310933406287712988552785277698420283997752141564553067022078508110517804632839136133075701283185424921801621996964724757423974303410915925914986621148241833388762939123481139731439623615876784616099677392244418480029797872995087556884081637829438766963603250534192500064361186346893388672954561726315881202210672924008807027001992630190340410049041934888573900799887796218647262906179748329306293013683071813095789589362516686434143567541189758119241925821565539097465082056686800168860238374450946589388833760057750881944436526560258078600119323820194552590559079647758721567523503430200705101201041110038806469319401612893824311832266384329785001882846190876086949745189612109305143966030804495390736275386332480694832788778976075710699450454880299700225703375269644744370307756649031192330127032772908238813074125212973326765279455169304167586827421126704447213294601841107831521900159539475046543132023955718785231867700444755847970676169713946557251038861704325674543586591078501947168113326837761309418955284738113964878528739197264485371483857086857073522785226814292357986925223964854330930698835685861577451666514937280989431329438847266196157395928325958983529552541187515271301406992667381974337195971693168132493452152168477828879773977796660317980169388212558354668734342683887839156060881327943271881848877538972433358645839666774452625196922722121379389690080980127571590090461641925748527735583132175089842613111938797992831524911436139081260370532207342784146644147450719488906411621398219113095207907011037939670857525307982028226273124806620989494343670551305173691510329735260249844533716627062243906934324936331256644689354548468752564033032506995040631201467161226972802619236207576524665016376712859693622881689916067108301281684860357470563913998923824646995909274958873568521086809874059255657743725738918332800803618487699812359421336200951170426529991191651779566795903521563608235029620608505963500978304324991545313840185431473802051347653835215496067376808805780850339822752415580207695411521838951621436441692520613397522253632539852382729822541933301350779037096026904470996566010732484608776910829138484524838271329773668682634707519433216303427072748549815986241425419806561830860178761492498435833676215947604111540673254150479593633441864147924633168816726875394987725141218328044077567454687205436588203445625138774662359032578850281735112369298438682480885089013718734989564460720891896010732494100221292690527664811812077781281126872417981606260102998874899313852436095557314955939126538885387440032933504093379400661670953107690003715829916415200544077012188061456439364785702860571323233443228578748236953572985346371416380012824989286104538261083424820420825762357638491165203293211344716157112750624453173597775998379920235251500622815425978511998864245743379401059100357819992795869407627759960069233841079655185502187822861104171846266179804617299560817176067975686259185227926952941904065940922757789309409420020920204926379239608805386949338729307211687114997474607264642772984180725052209872678109868850476697823164284865131998168807723681741181093631015864618577481342108130905716740475704540940271037983054153586229063960330874829328500193560191565128090943174785766658232120363311477331250014307624048102118394802688268540726967199352119316579602223582841757037800974005414758061409327873198904890000968227848299998737679983110295833982889262723402033953050595260741744348172232852530957037070769714091653337752598642392611611024759491614901869019500023401287802710523063384234939898542581177717156445091421360904195866648289768825366817129868789273788342052464125340381875633489215037296703804242569660985065348883348734531006245161573361216331995115594135234816892511734904572733411414996608932603428607662610025857691263946226084403148515791610845629547538473997641991595997548933931348813348254625445342601577744043840392038613011544624767501699191105539299833545869444233736008128184223784005388407418299165025652627874413784051545436115377324224964318090888744542487020831194036349781336430992254610689317747042472692561138633831527626321999934401916400775996607507122321816806347000121169588973882804021555598956532708507460632176216460672345813990960461864468186249366215272009763001136288346923211233148616932335587425307647518662676703280659391842968423960779477131732682882125878811311279392476424715678703537612420482163192952394935627441046410595383650346559316181145100415771786204708886271111896623055504923816466098487582994089326047175735262311835070432512517227583951694461298253888612403102896084117183059934455492312387271823101655564453848896743878981100595237161494647534107470857381974585115674628901386601039312824110905595323612331010815503249359064051395541933623539850553655048315995338527957548961877667209494171128800776595539631545737316858125659487046257990894183615592217625986030237581784212035779773851632083274405419909138525952429952477630013582935630002910033002757170011305665857837101272500901376383168766964124497908801275792190389401919821820841582519997006839245464517607564423582322670450893064583697336017307572775244950464861680022020341949283265111805071687491521831971047545563416743230197000656870375837091925513568601715494582458634871971890471442679285671982890546283435632396479769199980607255051568832508635449203585147770303351616337591523727592225400662235235426995834647484822676836795206495214113635326651316744737151440677808272899752153015015346618106536534451252484112146160026501663590695521343450768321888501284837961241155462516217788150656475957871186622230155967366406042489251954320876272680598777848303522393109902111480311391842673092865216812913543211123963110508221175130581753821208207793345196540335797452410352124287091889676983806983790528132698096065914324164122459375480708661748214800171878280022827960335074717995834297280958541259581591506014358654024623042988075847882611463404790168315087714371745344156281061538443428526257068642949032016798473683950526117793312929280738674240201790660114502535932463100413317201998223800185803580993027887545304877302015215770280383700655730561232480213938662484940988180023250047881338611029491863888723818638562285105843504537110170473843997074046818839350074880391438786027596602342869545499370955001595928536836279395796842259957344191302092540256624705270279442595020187345491486055242403038708376496737266025232539742222269656492280760712572248179337741394431997548652009011303648431882135953788950982092018211901269431299909885203669823383119030152350003013871257239750657530962108894535588796251828226012070294655174332943804562020693315610872620457164907890034612632970567895227621849429567529800320710853526734048741131857797265622259739634764310602051410569438517985526124934687449516554894434175636987978642792257984353666894047727990505112705080990106655402814401251066371158560571645807699711241051131963320832194248977396247575308141509034720004176369717707867260344083427332712036436581140474118226634450640870287826944005121468701006189089270517779350293949295018426185579211521233093459757449348295310784036020798581939883371512121822686736041751422362228331052972842002714981310303892152225224412524589373179626131731485663461411062962855518203799021146493091705321578885983516515145362593437467944308713558381116556775544744660524576060305741120545480499238744326693034613725408378050967300319822361568365943882205134426148037418878386624124858744436392328448541886428075146957041686982434315055230881427523657955220399444356936291899083334782451979378093291881112441015776683974354176028078682982676987766080151072158328563533681871478228135370195775801720457454059948895402067848553561036424782760733980807389915713548574317085600586300870569426154798626063997721018359956696443103949816820054844663555136161705635174697183543331792063032268108276064688867118146290822301293945668257855577503599603475535180979445727630120286224978548843450274865044632179439226665228229426538364295690101720151324002132596635471359217411948531676105288531290829026821547932280826497104270547086624719554756792511752195192768347797751436297565064239092584347653115239987724789368340267641487766255158380764150653464938459793994159790515277036056114861865231346540954115089310389786705973766692609914096935770275439624793662451160819989733361031476044271233660540203656623085307083944619170112332243387639083806164654873357752169314577489909948357330965491754679005705203954322896228529644226158144729224696369474797732624997939328244760297982680629366731365507820097351701909369616704721274203611172475623376041106111882027065379549304128663780090107952292695912044704989560169699153301267806293350616938979464496391357495985440287526069257363210812418101793056993591491501221747602520798219812100625340316119967877400206251704485621235928570993882623124036218191934672267929960326232401895123033730184823712156151718749111322343040908238580889367232181538611420056193619516398202134365796133794182321087940437791736049078031061048266367749735429518764189551842050312212659414439694794087580922212102750780766992704665832029829643328117661837300971955939284340326824761110331145550962437584843607837787070520414803519398185408184648693642071878870059283926468494630082413875293458529553462262922215052708240435079219238320946017900167999211871204508126538563875806855693692300559185105548772374984572667193747109105632445692827827939433703270232763216917556565000720789419990541712329263645202684545999019701837264794624888326807507926485431725691082541990468604603542096096685389264549580429089840192104540928423962274048983393490152382056230391411915272311104377796993996028182491645616878775342485478397782489505577021460567634242627683379104474249898549478027701505865697764623883312263445034326906926069746159909420242091562524496125733547846354603685861340635158968830355912635753679929594706951621163278515632276587683320693815297246979932368236218187891668972457622287482723921131621489734365542910478863812107949920385012023996603974108654394672104394975201327272755417526398793551204645785856885583085255138079969501902553157440940604845018130370824667760130883071518063925663753817493315092001108178167381013071636829138202212967797100097701712578281699730827057390861613097505156379498030682291544740333098657465964943651136025365549661264003404094177667393466523171013416390520656441292445577948585346414132173156588861384735360029603745715294326567342300931932739673876726940362408513906851682881466386194282990339790389861254683252845801111682088667224253692308332966765155588864636449104366015901862613851844417059261258524030593449163098515295944941583946954756352322715935437676620320238719495394039603006999788317688576662138328300104021997953328937500214012611478943440590108967152172079250474322418039862172164410215017209175416463337437653595435413875942294772229110270313306730277270930044983303746089140937865565442905288905308821144201973511066155685524770154738956362738307451671782294310471856394482469841172914792486899159098521695769064023633943386484289571022903978764425427999277176185662523451235934639343343391499298468877724149930753513749718375135365148621192806549847278548948213351734038380927031607166937249545017186165327452973917098669148300265389506560799669422645346623140322217782687191850599913310183648152234537832899677170670310260377577310715187632523052600646629984394102410382339889018941831248348957220471947191232287204569732571318298334164637396130930276103915217507196940485572103443730911243780295603843278260545505137724838829072513906065471075951750179849927057621767952357224831029367757545225369199024249414163142079861249737575534317517758765131059191546859200824056597183645093870235592737681482523133380961110091036751084856166822479965789182093567499627025801739222782141479029536594646736953164020830713266512217783111928343361255831236120645784257767917613372504278869044902666412334419115968060975935504640958738509188117811403595638551594884526995871674254034632178987354515741265731741651462143714530937841249660189921772171942879463684345678437144045702966886618528371561007888585910620482262770671573303816173749510210914450550306727037051689208007338140626472987913935745930278993201901931280878583554326070026246197760273289952732998970301528425953453707552022802704089455130068254647229610527937116644259613304280424083239349283386996437544332132652435420404169170519737857261023021380542826091528771365415329308234732469435211593291575508026657961063275894011582653007854170700778141092303735759707064580154508503343730436859223555003350764185026778606571484383888210301948119850698084378970198965508981775201770445941002394763555288327229856561363259794039920280509643365504834010960860965071481234641229008024456940476763968338699819166323613942608789324928233161521346479494740187099305330972412485538003772139197063233703938737196591338538602419887219801431687146423297743164218170409328232076556879929742925862722460535924116526775995408623475167018594279492824086379209532524722185847555986357188520228534454336787591780416818486750866508556819152639319581729114956312955517668607516170175581402445913191441973786200320353165665878319158980503163438198140655866303881366686939288588956636416182596057764388619866303958616093324627535012826717138692553235726175587604667470084772150752283796743779008140736291504910368299045218908806813736570863433217345558028452142078111337678006275006372240800527605390188662780207606804881276727782405281397725095350179978812656538633540040075891040468226344820073004800169817361461384753201603210289988074125934663740891770782799420955345210004057432943835657691689072314770177793003885777156789922328531795472901269972005742322990995778430571934546867034927732688589699300728296441512517509492169223701950633397204407283931139589678748672237982119147351663626722189632176343077214221963892367323748722392264867737517354144324479368607665085563608114921174686866804597229593592238910775677618835859459678573096209072585958722807571121141242224537508903772780921714704782164347917583095436946976687376967406756108057851187545863654291947490039104425550225940049266406195835399886770178566876720614956342510772868000558416063998822565420985583929060863793047388733416792081459988374249269955174370827204810816405988172776613600090045448895056231852051049667231739214960137090437764055621540497217055045336729103906332276861355110809799031194766199297725324992707437700475769699670159972329387873588813274326114953692449499992854031925623948224271085226951862042699870584274539542083367977973535991320255388227407451819219090195225518229659558016701574507640376510223823728150164108602278140284837953838890794044515970234132277097394281977773804832933530924655456156854267952190295029299838623990375138876423838939100385240857223574569714674280199625745457482637528434160878430389396103650185056321220647864205434024771446561774772234746463523831519765359265610750338027883863948455922487725747845786064975609412361760541769243323429562402728705945249239186540917905913137383288508982890819461512503507869485381428748694288634331167539854613783611707749790056604307800698665204216995771368969754919169876819043203518609919056449978424151803107276309087061505959606224183574872063981941138033192721955687823525640687442895940595707936848219395846110637258841359390258745911142065242577685559946463649784107297647742308517903961650840461629006459146349297092595685508672831763646649204284810870431559841955117457024434612680027770646732010699576375432279943288588802215737228689279506368020911673654067675636467202808727375013912168656413553439671841833890350364361196456042376250247366815570039328333567940237355740716050731805597906479103220492790791960722197170681729787622770563813529536789318606352151100370440961715983121624383958675385822383827553715756999396310411814779689043933263949786703490601337979390459761693665065980377317471334159527569506628477505837680871826515724107504776517810635985055424482894991727411277435246498033774565645354143814415993817228595670584683090069496101689752121613105179967855366680584578067325854644268140924234849996018849469490525515628644922035570351900232782966577278237982280364070625870941393092954583674521120179502181242478041131976156728511968854278767619697705797383948857757313470681380760070080787527409722289659665628033273026493087973002817502796301791508763964407675259532829788987590641410126353616053424773559823602521466080284867866550041784425832273574064306818341626111240445592680198537946070835761532038686830373374825958643182841006811276868025428724143705309345312609971528671238554353831676233931479300846231813493396060668660734049119940227432139935525508108954757209539368182753104879603078006943866178432575311346276497061846368471906321097533433151858514757427778179025240608317150321097339849720555695912161688806423205833562445833884928805931145727083691954690260391963569507797047199430664622594162758798332070466858181120003920875389688542947859345297186237333481654759736749979091401035662570130192247975928833681842538457191233217407052317361056294389120519102407955292587689536948162003779928265385090695744770378600557712051032359852334314058468535961673715165180082614180481973202386214737385439159770512092627772551939722002579448086506137141534024612117787676366228340817307601227550282504439023329860235404250195076351256049497245544290039935237499415127206001089183052628322309306420755747969137473432445048718235788882102044179463602629890077193539565701503287274571733835669964367474655864402767320027486112440225146841712358108318156220110843541304946850686741109696756268598988666972327495360973012247167357946150849217705237403370976599398369670139633813227845910265618272541327812427065791289307422414305562404123275510818779933458044325124557678576981884028194451783031199360294450266040097930327164424983718439938590737534587445366101946166765648461085354366992261982506530579121401579351907624770764831776790242614635120167101594153077641010654266771176785478390210496961780601912684235369748057615248828670240329193819079039139020415026446655010596373898549036040613518389503532300217662232971067778596710806427469859532871758177499683691230906630647394886161905124657505733106254794659201030878210979046631252461594041480999632553408357347389950424218777376569999995090496029700444033608604870670436614933518408087493158457105745838564527478195655262079623615161609630054106212773501634637362710148922182513853746173585264926493387147395333127518661006990975035944812645807263339190971207941972667776174161965173905805224240601797384583468736236249763976092793400168683909772277620786111109191625068276199813405203651158493626178940064458990099658954531693080857278428017485325145849544693629887347074626444912955339149388244200324207766520506013064176717806720792750970173286433716781440666869076524344934721228431468051617744768095016856345414644303706247058125154433868691846356603200041631910327127759715001479203014700305938321198574294543034199684917696152973892034512538100678824029278106260165854652572471800418195129705705168358835476515875948252464436148026993600712131258945381289161552769951400452351383605538283251317990092700323194128187026331926679288435394133854695833821000818522350304628549462054992397939610760435892565184041362701663981271677768785485993606355900712507076963872704055455017557162716912007783809712039768988071506624016823194167509000485968839848125335417143899080832085129477758358365504425229111108799791705500625532461106290502865279015784328141994450444833478188862182804117978540045963147311612276507670001491744363173327594120783971078817011959083126609367102852424439076313517788151934576288387711817432262227094012735834110663270935400328954539431371232914988431225779318980544986255594416943997842092398441975779202817895996990995624767553832105858623042598694108584706589422022037170312429203251297002718159731844775042057676594203729035388642490186987060282914369554525473001101096888960582554659528721928999165821107145488608693898303952475458970708927213788468589082492716687738560812449598600015485314133877015218186778778126891068589214409857730256827199529243726613053738923230668949842450757829372604814968555519091887568817454020361721398756788637472176240922540437647781104121218043188555634715558409219393727370803679070523761218600682470920268723403246501421248076821936588878674834615136763434651539085231821627836496565494548456705409139232706369794838402656759648507993746097587786556635152671765019244203250303220349217751640073701963185075654724637194097818769382531503949375610905846908375476219936621477389787179303930304580405323907358137542771991983919871489602995394610005742139393237743507137895995613703724999197212011012715020713993199453701655528733818037664808866616843524622165664943022003121242915894500562180213368666220630025745364995747569238446207402882918499483047632954761632552249686884290475955638690275605977930716345586690226736557909816151456837544534039887632505606583402557899799834652288892378173586731082896593841917408282080266876706058752915213912596224674850265620040131114283122188167559479725831609629300805320657478084913339805724285893944647225906845576831232442190326657278446101458011388997933701718535845986476877487433799153953239331317456881265266843498565999864186170256485067765802822113580274132442218932325895109280804680149367457778217651096289923756933482809011901935419491073860090515118940326023733674195766089874607740766999574655985527503135594004297751897984639131718132140170439644214682702895626566660096881989779058513465650280137042307930139414125977287644457610272008523740826021691863653373486084428101172315603393326569343511330025299835296193123620085149119620607809996265646263628358032465020163107190262308028076179967103244882744385481464280052531954809684904458401221244104985454612716340020017884994092917542833324945908708348583864084104323943521914226926952137661757545343294908907709319757776392501987578582224949330007895216398540489683246903796191270643814088359724224576293840035982828932056047655823266706352638854111713440340697495817549734699559667689144822054895171732117651553694396502753966346091193512080309712707762068010078214854957200340179834808425812190419637726720922565521643992045822088267381127840477385055354819638762655058470189146200842509409794744491100435912241713681510258444688792946457951694778511960195584907557454230017111814326069452350137982983064591198858263608376787817803680964751586380175707797268703325732172307112126796547001862559665613883661869534413150441827331079319520714990131814360941729887924129823562454190428140843944741761377632472234143578861229000725160650219665582475468763585386521348715525060992039094787537154537707206404048426133985782350796659889023197706745352784538790644424488367760548032419679590142544849885958228131409349699001840658458304524609429375391439688056938293636042837987182774313257036860781682473339903191823680473525847246171768058386068226015198211196203447372745262179884458909265153435331183888887372020560533841474951758410523311754017308017962276593519200746044369930823610278874212630276985472476380287082147092235351825743990797223807780032650352122546460169397449445643426166959766949254771673952467939477381479614355113194464093284385501432727783449384018824110106706067994484178011967995652856580357797194380358727164870326450074489600165154953762127817636952257006961104842402438329322214343221622673205719433114348362917403246011503918860967082692398563981884151142620206565996717865343201040978848000938229363557722897838701949903616079543578559603321232130813293706181618459511409958970017408523817251249283898009868198803379378044985163126220893562249276356603631120750535773978791275748377298352534573860843188862536173249050825083407288339428979754894907927979991519897382302545245166115864856091685210980150529946738809724291246349017487460550281903476166197821672524223787911493044153882040022267305493797048768537897673600485803643112513594187468918820345484523741156153090333140274462733491580017897682837377924364455871056473612753270935761882701436777851017745736798129301050205090940958016177449786092029591403659136010533004551556190975078360521850818724131425750990866666154730445739570018154912552752274722436045212874966802616184458797733091868298446097767613046471394418574322560417284275805175536841696559687579346626901981501346069083731638171179260885138453081634215181074630979254888055935773902185046944565728630246029570011374767649622312642195259144072928536466158685898434134464337146180131273031252827774022069271749833742416267227354315938553270701545518701470005232507451619171567325474224951915978993721470550939848325245651881256007808748221767645418014101103943199074624772772741864331932157428243292274461465881512985847036065143476677878585662498647589953032139646573493580949574360943121328462584178910035954609861838656564645252328141228542862249081609534961043925239337617655754434724517851945481800127009052379517497422239641834734665388509308612642499894332223901700485151812110782814136804708981596504098476563354804481041112452262354817947762226781414420187299034832434346834602520851711334570758412133149807457663504745425580276301168242795061535417262703642166651310939798468597880662064560560935643533615750315581594369495243955661808064207850460923890634769164120571166354638977005682691535998300017205726669105321288070722602227972617094532859547541232261686172331363519949429277008325280282834485130623761495862643634425031931266836188803874932314313111594148307992534374583397023499755923317199833562073113019637150884056739302149932794956010059348206695878316708021521442464376131682370617567046961659641258445896035663031441897068334399345525942087963172160310618369776974129227217222873239040696695866410200127884258197906601521025914048874111316810556966513216339486322527961358745931451863960256712953510701658370429697357856842053069663365505590598833934649623725837389615891837033755160173971570487719578069788285202519273869312343623772105755968110150029878755136939094333735236420773624418237075335028601602652602173639006247920863559299882075202604330539273849932015062424202173805260072218025106680008935980610040246263100857602261161312564711279168382741555350302357065974526122335625771788230408002484605318769184284036365697214801041357712971565217592024131724008191469096839237806566083738090905086622084086423030391002900191627532606919995996620730511860853670125204398142401651693410164575321839343216448443019099790591515835256789455539222844259457999215569645017037551395683328717959042140956325344151073639100680023080099275389248232556335096083975657538190841753596473286089040554436829337510367149303645243736508397094048966335567016196240193569660252453869057141343674269235839305950193998278467547238018052933923481759859559273816809605600742124588689200207443219020778371344733758026073247502683802995501870079934858848792858016298758368960598234156421872633398076072856271221399805476546784610368409760238932585229613595818295350310003144973913680392470872151376575662626577613930762586967635666298377853759635396837102948422404400886613344520450167865311478116311119697205192490017398131136771175139555991415898064970791388185636742462342090580013831791788616166785899963191537159299754778360740705493550087965636452664812172288354146127992179399343611269487292569835526660586136363750458657131101327771403926057823609021804976714013357048662281183913932199378028703485720444528242410987251349203616534484756732680350346578910458819315297639960954117432887802272875530008992243959705803425803814039608798175988781056768500228132900213684603092997005304054269950681865355265117904997008499720707852006296219970810644901058979144576691396401028436841996663797924444767833864272519952095746875466186168190168226009780714223341502650546443465991628230390168411217818212636550175840308336620240639578107719573777400406178182227294956098387258233777799538314228885121424421620952735842647806201032639682160679555730033938856297929531865325639756503193131826837312462756459916756248204420556937242103962476357585470405857129462335205245151011726180620614449022245032319534359490425898821778246670072324648222818550341878343860481442809203947288300331558786660154800366187486266717771454915486443540506616046844474388648609871911795564415856132899531380434107348820427498888220152460189660934688854780115042107755504384594038324901258996682220199532125143888696204166148552058695791817400600387947225591626108954845681132358549481988026810062276778871732194210096636169799850510873511747438040813488045219779027180236335378126717745715437477790898318984352668419002959806234914871012646802013994304182741129058043178625576446924163616618376449785444050771541346447395181017678988931607085763155763386563294650692382662613395286783144718510871225914360446702199656665984267704751598778973758471819132866917634412640753337893537930133409918726347549996251560109131605102055983087492799805476456879739824018806757817742517654013615806125222962142206814123564147741835322301189083359315511563253411182332977510013960157423631593743845718066368130103341123965797908311330894893909609044531097803201605785291361677640029350982153104452291325334827745866638805308713140487256399550213037065360464812832147078634475168488709550680887852506403187986155585826637654304742023015580751319828929973913736413299927869445614717544531120658070287420667031480099927684335597330257901529081440969409680140041817543982120155619415084879615420178826493259537071187935967759060702643989713160103114440071451625435494529573726548330482607446044888634280197029345997494361783609561775335085247814291035709948530485210548784036711342736459181239336662337645175043454312372931817281630749589428260317190352464877380976899605753323857946825556662172466934363784099727748135126890377921526210744390199601934893995888508725401321268528250608429649539358011016124105326497856971379816617595411544072685384411080771804233508005297610863559335880947133728339770455230711766849013173503992620020948115884170539637524013423388633781778520011068660753809433474184394829434274788805050443584656839120153868746004813823767045544090887489550741935917125177530441603892810609454329383617920632890750883656425545649007317523053016225205151214528716454619963062737795445704096111080730896307666837217442763571207884523411188820203300253750156360906132912876072353774453038750892357062183963875398620680932002591280740117155072025728008556410336752670080498023416404338327005866867280780244964238148820649761412298229548436875641618979297677205196799886402707584995217868991336250644658879468525639827868658925156311057332338512939543082231707795539704211576947208640565763259438511290634435533569287672822543202501570982412868437574491679002543769725062459097086367520915243087785536718634404109272370719720142823112747886280871341582723329401366875640087428020612483104159936057050834953728884689191912489539963571630676903230521172048090879559204293722479348096477453796374677823880995495005374434752454649911126630109813698421619873254365171158752246546385014141757406269955345672946366694452177973690582578701465530194239312971615495099078889700609280332990226641914821908126164633984415610463103982429776501101419374005186316155646685753436535976453733505314645082783832380924400010018759157325653489048244447840038835064854599738268498114017341927482472997782727583260673197674193755358489818743820989294036908600266226200793477437289359205412368481904924823908664007679250189790036739450136462515952413318551636503674149235532778318975525293475498374034669668970139691560903151732873941020460905260566999197705021209178577486099752120599192128019656619024497861313090885112697228844405425237042923899880424202198228677396568643777894018726737604468400217986775787854239645344523153155799766544140135805823828707658002294836548728107269052705358248643404445594836949865275818743745155266840579475940085606352774349119785664081414072453907207624128719523307083614997599500049151787384757838114435959172075059705320638142030263625363829298614052216527027885240893551126853111981731186124952263384915704546017447623008444378913050405728744989250276561409764035706940230389171719870954327384591053017312015341505237412576984937326468277571676012273837731178153583126577488983159597689577212336559413234374914539630159904436123624028377087540139134141577432615470447722148034028141346711638552775526200591155598629368667335862283506258333466349138695466636701481847904622856576213060210910024450116488803424692610357585084525403994820803286781712313376097400737582396413641620055867811312035062191462824005538041328324087717298256612407451528978174758564848430160336810861389964306208193314551650093795103601692212678715704136074434687294158809792453840536689667563071419131389022117735309271548046317718857759600938581804952263035802888536022125180138385269200129502548052912823784356208966807839595939526623720818618521262962677811789070585764182838633300263961583327604269707189943206345352801081979829832739273796067227475326562573352874075554668135752674957141705176571571166099787811764568157651698094725102414553515264954956001778763705887122474259422141759414218278503046120048832708639362971489148514692605810714695902678201055964359384263453649685724738116412927436120834829808313063475718981807827482205395885160482829334079791595978869908274282048992131681707875680895889165669800834448961193859080720055360324219936901185510361294560610349485560921571115208958787242539626399281569564445855712168215997728928467864871956878729713814184536204842068085005533452155438471145192020270677020369132785667779402859588581474486627466538388268772261003341118944965576811745463027017041318748727147505287310907264492064592945828747408881903301045065211908708399242861999074534578982911806057490694599354034276461700245972434888498758965033115164085106030341705832288661880740864392143091058846750870858082458590642641091235222734826809969877622569149103968359080806908241660552627149256967617295043957853064924858980843946508777130900210452660742925442354160759218291530282107165961770432722127597291038329591337282888775815219428088920329870726206292385422725730797108405842168140989970920549563003773890047638628982680412930198586639151263559135268823986251487844543594583738510219003072165486738946080286829926686593750850993838922675226828389739235874423293937857250710775520833888211955394094917605889582748172557174338693438752057756630011742250064538162218209300033523288314688055733110326420603366878059528016443771906924265670035594916000362274938828887819768258056439257604085782044415716380863286396304061001947188406517141294278656077487998630464552546575248296960713729870113770865970624513321660687906467015799715953911790600110027802501597010638153058979961388560015577054438404566856983819081429634843697869566961817443367263305517521903408474559396164952719740881157236749890640970585032572275044636978200423187646369338288423170562703695912657027476933273709767883936440781969207656947013877793213007896355984266398460202382949176325934032807160270342852188742208536467685616895955685492936412086253611526806866017266287297741004878783827694200001051888407480297833471040746697323907467621496085248355978759979682242572199099630698966351948178236331655275061399641595889666969449498567239480330970786188666852814903260953601990909964788071796255608442752330913574976712525561663760795334196005956529405732890924504095508680606193645538767017605593346897605169619879454927685964095970936743039090993808555546664472809881924209715357439547272693026200607075924056170573015602513901577490606149013446170094161566441973971480047451220415214272444757843932920400296963032141781659602545662441312873170131377560898537790020309212104715630203686450510515549430892424899683677942354043651563362045924134839545554794926650489822269498819484427747690742087918011792793464562516639985171201691415922103705822212454187269614276923225846347427912039748833347627787042381507031144686226559281038337294724255974846518767533416981254130490711780262733813687409563591126359091171416649012413087292345054190335082199567296930338701341913152031954133570225677512880050981148254406442295935529622338659366197546625469460915994233313274056182506004824756476057150040656475831291167616014850351064781246625475399453894592774104991167312784532013035553572959766794278651010641183517907233542773914276766590408598430578711093880278782689079827822626936391340977166932952172713301765405763306548579078609552779347293878633312266198667553781335485966866236469301828929368835643501250738046887970498596731562008486249967424908187529087259830265288404093726466810039048203806936457978792386804988367782638530362340195204244482047998011196174267611790306254513024718980661940674871436436232304635641064698408345614803732261936854790480457274377138991306160806744297468864095729332294798766636879264023926156653951695494968372740208655845631194646742093160309059088488457276177359361852342724510014428111307584307640590112690721815356425671466446489323141248259065405553567879551234558668406997126089683739005664437056784605310933552999265083648000361585619668579638789886155369374102000798785089719224245895854148828564532124238126604292570678532372501224734641082435509807506197464414766879825871395621625205028885525983813798885576293850639499408723528117318126107380108977332743564921270436358157385192193570438634902796908044416006683984416345083082731962280526506639119502429156444967747493884251096827161335314550405465399979434042297556102645770293934387308510171363372942954272943124499432941543296329728158883337531070648480585781965619389498522024398039069453028367298534908554106607302572985291052370067576396721803887805362364613012892836329120373867352266072001142308506366191223532875143564949615010288127859222912223545329284115522272334625921636866995120690339987660548950989167848756862206810522077540114457937884432862938642947713146748831703177497764135061056992938491115051393237082727165008729495885851422600990669209198451940466764179779888105516998532081907616418602812782356870103804961990159307583032398515255120819824388833728412205266723489423539326256274604938411803659859801107389856633629586726812422857682562601564583441518510703769209476825361375873605887907783083779128680717169698890581819000324544547411258239507420331799162900514313090045661466821604712383260567470972229640166798018818123577492812038292888403768758398788373946389119438368042163224511443401425114317857336161217986656328554871478741016560362689573288540437821294061360740808648361500785860779275971745551934920783799517592027345330962090982533979278685704824714075061807697211677290603242535813944160210668521881757573960713370230429319340547832049960467597326659415693881564269928564541161982194448948424664844310758117135496170457104907315199441524516159935105670968731408287714392092224536510268314681113218159218134225652261039508262459690426156327440518236394521532998299456892992495943835927097562361537730353264950798896170807198140904441423466492965714858462913860702400331560004804164087543914028221736085650740156497843935045863642446321920503858977974092858213884652411455316321803881602488844048129410593898918977594529900444031284885782229350968382902516198902205271737966704630244577434961966995179348192361307111196377268552194523147858397427642169712127579271700244254299030400673973621526653409868254202181545351027245971756947074992493705180583194615295075121774136883643059146765074379092165711468624066804359853374372206870653120917112043327854428469877828640152047769664341583967011921356127118868448045216460516307482641082101802000423346202746415120731746941204041265214391357189604038115690250442719735804448519223583168704516250001784161484536301925410351820951848934992488108715413259268253145747390401825753909037475324414139008266684233602559112972635633899030152842941218260041009701626786557798441751399357591552740546352796741133825797905017421818644868933591089518498358778737738386905008501156509591720758774979476461153397250277162103076956139428637535649356030077910832442476172071691734195750689301404983345573430487794352345841408469139666218624452874822566066447011245035443145989826641593317277839794522576263958542458862903891254132380396798185568120638894694656998046409473308580085974692273895632850496206939193404301903391829018290824409056764269471424637433781706320026458855572136078977721432684652556175145178386751972801144111549281197236166566687922381828677384808215284221258775937240863354199549062103343606774413750763043448193495584625496115536091277044347928433002752053157364448600118934916154706512034608361545046552212067849721131087269977367034297002573965891323232651926801633814645435122149818181107965650098458815539989316529672934133054181958212933494124979984988414933654903449176676551840594682765799905827150582450936820611431035048569310532190766292291072336164641479556880557762647105074297607360994614479595007614529280859964777324208470174331055431752755867746440553710361535220485709601601662388987575379446424509056501621492201769123466293419927243495424823742071251137121613617844062874947942443904481892156297336155060289142630082953571980052526814482006500722025749277254506608016674388927399410582910038002525113046924336818915351645440541392765562888605958312715259153174047526405313421169745120876434885854036918047919664988821591026924278063190141106565139065946276410459343302242394868122438878986201683968372341817160073096525185311466400658874293330729918838205271778611619972924461392624369134904357602822147984769602890769730943427778861566054641376044277730127607992663286597862321267214330065732775397590417993259194563565669167447917724121165100580774358603904963811588267238784673603882796018766925164593239657233316010038751890477908933828609097697830483816259969068326516130664982281537142776827271587291373243832447232088762813256330747245546768249746043638531322820311957409060856726506865435416794181589866727539406817408960765099974344400698075639387013368697027987158444168846671501309152004593752213207891645590480773658570252312287254260826296481852305033953661012391839811173310152049016192704179627892651600073447939554731781919155533688418871814543209810825162621690450252002243834290948810943107229487336855720280225583399601305578720223098819332808778022542434563594225592880019779740493320193027375911016759131821380870124763322010416681251428283104759253055625628541048248748136151626194579349449039313841815291796544831069618815495558157946490499903548175228753006709042811530266236242964453043033725846932192767052830040570725714457264258505810267015676361946588772457242435559647832640635262435300864493096764397491364059506019735921723233577157834639168729886832442904919474207826456526334789666136022189479066847812334166516214936755203701208559262360419173192733226289985700984848456127343684782888808937262495030928956528364992430890430679494637415712467210437059471776268567975264711487321355317310847501081485139718192389800692515385602942624651939748825796311351724921776255965756361368136480869355184297326251708716018145884787396437676827203159850386635545125976833474150564113991052675445864964490600483382115825858839192676813118256764082009427323280083607961287586421570934324948714652894491884308371195766020348434719733784343730224786327414756862623131797213512760296187298155260632588129322298327090705353440551972518488520083003117270463093051918524261368213657061180654486010965592217032476136552528779562895100442345504112879554093763277095555903011117489987014308585442079043822756768690260202042968899636726188857298836396976264334782314404916105735413512850169765610860308674455488366838232343136675240706350847990379378387688613052263338586220659887591296629395789292591087269361446682210883862188431677641318896287589218962982231532801709634835840746423963093188302866364512708989579366754943257963832375916870823283308617507649443328237285308915344949474787326604210299116008316753831464238582460183807386896380879298778898444641010559728074197757087530280579353797592537222366466774944251223180775147725158165703114183366617670602423030151314520586471167996687886717726319071116692333203192758047686151068632490686449264561926723811700623865496724882403090817706658380798631263188085063725475147609647107439906827561590224268738545936961525399649163244875469420289097676458206864467497427122851533825994466604097309894073328184942753779534443747914680976240738233787932152600407735972328463609847787901550809314042561311951334941787965715011378258789162695246474060259074901816716974304195407484721895410426633215274377895961605864483996265758186822495092563829065274610094971759260354270847497331023566252486083362409784599089567135583800610908986187430816441705198899664474946763883566840526584321189765649431304440302855026120711421973181824071036020732263679307164761608474829966301651938985120532338467446878621672896246151478093050488853145585301506881360928505013543922152409764278349572066057350922705806347989427941019977317695182216966301215107347650669167915851913765953012921368835956907945712169326707670226383147264119448565550851214414929451488107151550206039983138801348745837628726830476403908945412753227968476198858534887551263397524463005197035429809161797987269738391679599345022004968287278672358570967642138510767517763693591092861547008351534779590909805730378037261774783963768684945810421205154734429546219595966594358706132614312680568091338980226698646493785601370522322901387899876971801217706910039567516203685171669527150737940242738112448674631534272016066129161142309483249024273793413574954133847017685673983964817601687555868258719141799110787256487118646271533313891579498194238542427245230311479468132049327452832633221608136758865902120383000694305139224808693837243019876359258375072035125956028891240984172149968062045284222226866083789558466005549702415652840848663258387288434396969955600451748673563755293536787018050565597017924790567881746922377054009472722486087316743535957985939436212690817643961011090782275354127268289876521443912642537553966102609085829959919688646337254134540480747958416354919041687135876431751163906460580090745358024648099812436827074937820168689745461124833798256792466142420504719628137667167355237422642591810299978601141555000292626695516833483098649509317344381351674378860698376905417450719709670278952819962043917644571810935071248573428422964523880516038005664913422604910416934556225796343103692012322911128535934808514792672671732912755016410621770926291157249414330523657766267851488747157112470301291044829755751932112534574856776447099905369982276425572807358293686968482188414020615965397582602283621403961781692998650102505317765040774638517366410022759520842500389294834638431982538043691197118164985809618025047690017295595163119869094734410118267879430036794231450411580319170582836391270775082920055721348250580774498619805740093248620000909489497595984587922489484096748088720955986027231774856658601693793533646157838103945147281837366051398969412467636377853381922141800264246736123209491632084057550160247044785438137741590408070186257205426566204654502481481691435406792912600751496705414126558405394673417078394078758673367758284586297491577390001535577764484725575255130541021521838018412749341967142112534704495432172748323746621439122036841368607888696363834097914513619389064271528773274256286175652557901096436187953404020467636957331657712472263750707766466673398911388396074100141197887674526913744681274870682449475087803045798527802316445013843659487977958224595853002518825895214461574291664498645975341678384948204880799529425881740388870081311190024424078710430802114821407936165504907311648024025849385990301784111234288509781890093073291362336123913118514941858707282380268523932231162763879468401278804082542368547838402525723411851754049952459225364631051811223433385925136229494034698510277772807234466446653060876912964056669879501575322582100334425706797200585070367374873964286795534193047181441910500483182617533651887143210501900697002453666129933593870486728563656641957522479767520622448721029131472778067355251774219949628440774215539821887979316841885894153619606267081106072951195930426911230996573107455626532572755812230393898383547652055584263781886529564326970399488610521589631072987773659045473272238832496005658863875809183826793139941596140360322983346931810948256099582159980082350449317691888795631030924487315961090883812235230687544731959264644077174339986906792688310772244031921365526070134507978192308647884946026187310662233640735477296993981156862136064857787477046806113994398699263553040251751886987553692604027070873879268665759839086117555215402677821311485376349538797923031223408096022476804145073730498197370369295469282806746196180988453606717770658554868212822498454328608287932661612712170044705264818435895191681119167994187218300177411233345444421990628093408260659586481292465076639968239095091678914286317538084384186848750374789934281862302774611803607932597893261535972390868936483116828274361755613572511928329491300278030295513942002186722249976892044364960879891582746791011369791517550087747422401497343824773462049554290386812200087729370900511228974108463875595492042589340175064085622662667899988913250489651599226765592170338623569604796177050789345918460330950484699252275467449615000072958921369342706892782191715690574278169347985391427271796370775799903477685776334773488525951857843721980345219848287745401331256307109158579410746969405740164278227004668803791073936792124265549422430529281803880083901216376094811921125331483735798490342652992323053757752297735031869223705145570337685292699475485093104680795512220574624097059492335099071391963959650901748665754911388662306749275252062499197861151935548537070066321660356851144930288715449515164197932728820127886445281225433598472830753050318142999305633861393565968795720236713526755424546712954156331978551035380783667536132541501162284799265252545974232511013483428296341977041162816206479292983970976225273205524926217122345938323404251185990479573721499865559305439328859737444775266298825675008485841191049710848129169816707603825414219190329521636707685816694267563655544998124537972460647445656834318908368973875415200558730358390721759057735396402107685308623383427820329437566023649505402775083867233660088289432585668667011001236915862143986376284356527808960208924250699118970624033060875911446726150137501248181896655192064667759468600872755742295805531041619031456069598213999885541160641150557734746161654287983646586169410134701530805426534196285661834228215455919909813816701964833019488369901335820550345125656341547346592109182215256476437145238802237845413567080742221518071955722036407288656515332403652988973863537311015016394856363805467821095242417571630134097923092484906889583831648994924384860049490529139645822868215047473294155449429060959767538099439957098421502141500601358999058430769976824791651879796379228495185822820410232078743310222215167827506543902087635987940640578652661908409183261841560890664094580083110493913865695095096230952812741795538987425161838596677745805893339554610484949043070502011602555768682629847460723386303621717408080693948448024081556008039944997922501395669347131681490803321049912389510198869599290499670911974580285751442218413270569892660507110671051952841447319373854085558369202558503213708896863864319966419020558111704984880791137016670476199461023252837052495593237626014922608595462430124281171568874262177360859492591802007694121424081807767590437261120851994873742735975684261085706664955538697288807610659787408060163474353820387321814878976663865439888762591432429629403054951561270820135437078571246027669753347580928589250030546089608469721063335270684343204427844241650126802824764579062158619092123773377810963329803269218500342605290169209203561858751715951125022008021995236069780795476829076674371534340455954327442192815963605839581712027709419351256847358080972749691494419859362438583994920154315255999089119227430256260523466336586863072529458145233319407755115533632382118397501130408522276579977634575639721483554765973732674206115215585256107259142763608446834067843703231918956117928924087158528693805081813106120287378457939968228176415369169778118166370405341832453335067055519890231163675830740087826580324785074885610986460859560198279286736689154381785417208885375873903956892023843037951755129805042849424184676509645273426980902319763929908091057300823391316763629879848946031776167168454594865443952916919048027520816352122096807963290997497199119089461370376673387252680516912401376505835788528127667913618742339353502596238928744759174951445023209024959770551408976390802075055988957640708987967193637587818844470305495466485606048027451558964353860748220855947727778249768241544814825386816719109052457435606930738100724888588213962083010098928592188177354733982658496983304393866512348465332725331165652975447945120396568564951873231843104540812743995827919304361433739334131902599797491579527269890712859336235525169281359659449208480240888554926200399063236396701611118036650332811677370233305987665142566415146961374986739451711121970858990157752598629344955272330154400749868261085194070498342585251859598414649840435528293533719992752641274772111327902027503701557999036726156366497514147230215070114874750223729310349956658145356743397980872163724991866385890579188937266899076330494420262360305936904912448120005765323961689595067290026055244476869454315710053444609865942858050889256017969358812385472764574701689113966830638898062487814812588557460290683677611887974062518496242270945663488037567410419327991113410862134033196425529953725212062411587677590795299743574518420246841998066678962640187144586164104374657952751171502574978696500290258573331398425403920723474732251660925668284149860188887346398424954172718152893051088346136948100216083475799480532789782820713783000786312220777905306131029179984387121782072823880432284326932614783512375669884021955579912035937756403871702667736748019984523965978800483131988408034055607748209909514731858908922492100514066870329395943833521143963365775195046267708238063283071938479704599549077899968828241631736843927372152828461696509594703595988123644789015886506442350080128967619214152749039656216641448995302959395397721217365640062636102683970471789928753429569649915249324992743199737914909713182831484474360392043546964006714746447939670892268981595040578576127443823894425459888581769103474247837701124384486931023458819032092248139372103978662476064681008349527198056493532776906097315900239503932120402619506197338775872770139843340009176601021221101046104323092742836344776410427607144269084301228892923082540220707805223496265335469583122153049517815764606030524955820002528708088661458575557502756453783046121312103461600507367772802891626540632527522936039283137639320304517883840127311678833388379463369020993903525574345397803292047437724984763159364897145946679488833852941946129918523523878275510601695895646784386645419566456718909619405074289039904560439040705333145208502490634234847041965549525761305234476325626736564355857647059403403000144735487531327993519063744102755314072887922818466631047142861918504461769855677702661481079919434175687524758385221373453569615664013558800395191736394350605943578520462179877499060654579605221139298960699197961099592807900278983163099236554282692510346013381805269685287170208641815964157925273952750717175266908076980360969986527116831909402217952455061352432635025278925307391843691372728658420066084441403966742504838940932684000629145986392080837605447761756300652845791118841345427809085339078748115127495703222122309608426131342276310290044188896865368831531898499467233505855383276739786727405849464061679657395749064313047367115710959795941309451703113742634567389455406972819833415067921386647398827891978233495883309127634012591440491452405309502188354249016226876065201074156555988496390549223295667243827703149832945540138327479158559924761434730613195646882855239046817002498460232037978363286124094915963703686451096440587466737686566811448824283276271811786066221357990534284141922392047779055242052590916839899785087204088687033116497011935164154206625611118540410718974785326474747477488849235519762298671750481868422316065250452674391980002787492001360162611455365679612378531611358782863105565870769943547526501245187129113218182984843118425798715239567646852171407681487806619821496516485563242060180454007892334212904587912504796905080764955390820646020633719189130807061192398348519864894462624698403309091378725642381804770833649411809562298118705565840722727364002785004023063138658566419457129287179490258710463205051679404068976587718761933769810830572613601828173698702041558891181925278356223678341467535862521516030563893550083391003059153588370773520273110222948615444405257613624538033745214138896333829098566293848795901950732416000318999220723526201997521456981153931302728064231265739902202028103684158710228290951674744753216206193026277210326028155341915071814417598022813681541337152346716647292359176120923790717344150907486731047426997959332778847715840243202081653358265894090153919396392704706681721107417346951853480919909959743992226568119409927413796159366354190672657645138954555136742952438991099830035210541982317955855315834721183983660068325506315787400105167358775234557909084100649339032458326462988620331577629480774071297633707153789821296973008054070884032027628128690351834325090957396558263322951349950261720979414982376484464287777243258416709486079373512855093761413164845068263002410913923907535448216240730433637165245863665885308481178719039120510436460982627261771378314257545594966767805249681004812251218362063888065271265144799457927550445183372079682613228712363783018616367076227135202661326584789893563870671574005435567626488034459371890126169179945154533381255162441448587256355404506287786873634145866492698981008734444264314419760984193022930197005040048346958911794323131883940839076016736488998833046384277467532513474322924100278089759425341901664083821152216096077560113509554735893392162703178323409286369547979607447094787933650319702205470177274532934812302254445962687050214941312327698008685477532831987874736094755363135625677943799666160482765152991925365010159242271102920574239306621186452063971908972001924396850998502384410451606070471453675070930067781848675359081116251452847001295434942264475010995951648530287963495694267406988570698081760053624695594146929875013013425659417106033163601941335779362892407069126498915885874101538612782015735362006823087834936628622548252841728890069124579586871111017284255985783602967034775862167959598412132274854387224662278561714735338356793750960110627177717244077399946697756269924673694483963757093843212496523334071536511604538200150252272443246865037896673916716930335470551888614541747521884187071557501436795355542276095145057753836684037411053844352044095896727713054917315270805540628674544030020664501395814770385250317824052126530339067862856683717678868460354157084300508080710195111802112524836501622021203465738273237663345507017018402966121106814956268042070376899017245055035292824510046223839130853187336562202339898148405454892869111352068835341930162191609486321671166823890949721587380638669497347712189713441936605621101499677244603304723180955118158112753413984959064740450442017686335088999216533980391426419660801423342142817399934826377561475672714012109718872130618300328921586427673934563484719608798852678870599307055648723688209792496741573456162165732989198654185820316416920551466348497012865311486841479110810965796338186954735807870668326140678968732058286772907444975024136768954927252959194116289632485220394015819254918960793746028062084274394148229322263034956121964572855980524765283541631598276026993739764242899753277538836811726749478698420243565890214486864761806669368822095017058525264452660891425582587094947114892641946665169773761454991509606331256654461661183425096414203391402334438344443658031078308123666096645425286379164332029451909393785233450904779539488781734332679022260359989412422426322522700588529523509045224043965601168528282357971353690115694185419674745355595148372543648426989646695558012342035116049692312712664160235163854835897450461375889577526994809280732047974525869553667714211690204959445964858428674177303061334339804580473110968222192454216717866314344873594463932531950451779843524898417233271357225137062478020479649043964113617640147603335475425246347890081098067803162941600572685874484041013455835056343599524227453074263620136628563368810342560462453652525775671163248743596647853519798229077545585129041958564615699263065171238371901092432081215814609230979246399733640873781853905637421683935385614522078935902082153263736041450250737452965451628768676767580672109074321812240333614330179131907501842963358847553478965099420849415103540831025612339967155611409228840613897111832614599672559579335917293452646184135172515443054537059772050248868792765170914886552731164252796193038635969984089477086484142061749056616797492611418208131218326097819050072887687199651584436554668476173441776528462242554591995199082499952257527673984494166468520274022177391335427512035256965274862752907557002994478877088892892022979318983337664853791437443165434894547732335617928651334498513212450238433163287804363539625129074701217009137628771313335275424861652672123210015571917337078520883502083429227662425509299467074700812913634710970792425423327607800237072249632124262435933226784448915382188588640280514346103752866362918646946304933345481266149715117298172154338329827071927872203674138675103848736123162982443379199857218563301818979757981424393323125720031977925280708184576591303905332966446040094040045501536920515409342348177387340368330880299807938459897973940147861251057133907509895733694370151182811159358759322237533272637074795078654086065843394338141755727963519331446083081868574811716718647240159911423404645450535518217113918572759495967242626498404453218795548866426062279126728337645985394388366568463973865769350849797816694372826242398856270078427651092013197513907273525447154300260969005496884397303789596864582064783305704893737284264797978729228367368837624075343296773963837503606081825570469181739898180168747540368268300153016364980096536505487529697603767581272121484191889169375955289111957481181068755007424078375962291926780760433809155527681552027367618055500906045690787890099095652318348517814756249727695665443809439414729289443672531771515935748347547771032342377826511871858693707129792137954384888627750751765847914019125702929371374822115019401848228166966656628403407087654573925535678898926656818330253435914487766371071149580928904400798079154023532421127506535067171822997318497327598016448516148005793682538727492586590412740083955736220176276540271368303511619151245287058420571238523266163567721169969907592356189280623809273782907368294270281338331304121595745636512150150395255074057373664646067776778031202703786064317472318969614603428657624937827759297886768892119836900282441953317373807633838685437598514565443217214542538499750456766099418769728761597253815098012680072826012060533054604281087632083654355379454785213440782482587637475688664891780376146087706928964292364984897311463124049226150544298597946635560416060964356734371820003146591738160111867180520808913660317815483391400145218388097155607180390981205921058617577812466844959056636697947154621067118677131382516516202819265423570576061606642230587775181208833838455543875014487834991424316191508832802866790553337451679587288673046669154040191304328670850882109937225640412534902776539542196862753360294226884663094100524792910329048125990232251660843223140138549936302244657975914231971355487925547367860391286570052983700799982628233684593022902581505569330676091972481097144699849500498085578484796887444225017795880354772440374146629509332597227064224980338803623548044587559470611139216327103380053244848829077218489002433184614690471333378666600657340683924573309838799428843385580760139722037375299474614347459755316725385996436336965330218254709669393806972913763809204626967043552136388997386746393782020615966889924948035667662474977122877741644841418612310925039626896845237255365663803175012288181726590143696156366155713161564082829910832957944086363616142991249711050373903472154273099758417029436140073744099749604041466723332637354919456747680630426952516070171242110766607047009546142008006982962143362044409951339842578232258693367098466460914544658175863112669834595958963795109530938035159625709116873398577245220157944320296572797094089547759433027055072384303328874057825556271918748732631503159061261851009426754000165279300124464954960822645663909327266943508911184982840912225328980635912631917760616197739431259725520372677263059697118673920243707374874790278407200324639040823982192706313217301784561645452064655168941724804463795618659535064361095277324328833048954982803632907990660820191767297494966321027062504397879227439613245171103694525697537581283920549464995309207232969930638195643555362601472416740835300046403116088077226891920444843648195200118945271344488477433460180286325676809100565207022229134890993372102323390589377159297747361126314268648669925548001104940595988167990000543557952425524273853412738828721663423458220917793381345687686782218616728473860690752610222432985246549686526135259582221388666082292665337444757560870312118245608503229010287205179421931464659908757018761572860818952070064726806524741142016420584072897177877500651396208549341021726557353028678362302032294378629878978682247106277360907444144425976544764903945838078847511210644254134248118539188625975568476662857941694107572153093021828526029989090862898578801498708586928431851238565230316600938004406637024449377126430579644048755796686041205328717864513543997691442253104752111699200522206414054804686031835603852432719599736557758273542794427215284997494595179639198178235422899770692921568347341856631634547120956718704109778261942698791193713952354050954039588742870839790751944663771070249812989326415645246858419106293945844432011112931257849373333031946991900918937283163043100331881272636003289387894193221051526670446599829775374672037174785980160908454563765976856095545356086449916317637877593809448843744203092472005410131285656724573679192194321307255882527839870203837417894831551038198262051722662516506484987662406278015449907311968639676787896856847795176619357550341700896440537086729267703448882468293540396078605366250223609884064773329056613588074061960140084146029627452285497424357340019881432683590286409207274610575881981651146650566509793640359644384340775241161349435974872129081988212923249924662950130935923555075033616640244382773863881185499944721614807499574170370962156186314256531821600055719484615050399719759755336081569794655089787765317755702056446894589296082635084386992130124287539875517312362189826800635688988812906314929817650858628707230411630701266648387760129930604401031817936512268904298325684264828813624559013157038718782523943589848594754644189073637202863020441456147284329923861992769083651614375135650574065506335747628765567409741326323235969238610751375151645227670611149006822123045706582772080942529941853566761419314105528834201385536844883360734215009717736520015391909314838682548689478834269938724627884580025708692584718331505771678290502347071831349694284642351273498241027219619468569710715605735433921521523172042080739804342928097506707718314815581673354011597577245636547036159224868843421441929814522097826984210446999181489516826306246292918789632028429997216463027670264800774331931420991230192579642179800106035364190704196797873081566127282773227983266353240043289705863853841929886870656124140624003050689623535518820416598151389509139638480765696259948356893589256185690345299068749801596527709140442941282092481231722881926826675970917613663788914185078089644782168105803641400160855109009598611811712144010256405589613338711999026662801644499119052930223463028157299827744429787168136073361808558741066119871853616059155707576138803198260482725780140013522907192042312487192202356384949966362875028867863604435634963124206037355380378506206800157563889363941328196068366950292747768358636439978430989539496128635697567605283051483033807400326081675729412117387967927410749865360310252178964741509478663276240560272460002408532125230349570267771425513528088908273026562510862447431172614611731575232266079385513250134004960924881443198667425988366950003236360311257729971158233861673701064858718102140847690934451553505772794985638906075817506932831556630023204132098876752212597391569778227202239293845092079878861990234429804398992398019697478254234338686642414247409478818101026138357499156768225779680926385694066414295324371024223437846570811139366358139455051704503860113707706650120864206056040277464097638753864311130018177979134521034945997771037229652311494624036853038349219028089548986995557631854511432676642001963984224710050175086572038571480164056716685294853980830676886872484293617529375354799425442479141262075750584054689371629621220150021301104518167191990167232989817844506861485986098686880136964778599542997317590494368171480647625009108099872390331371551524924645009298622380510589728509003489807209490592705439697921996131933733968589375029607921680445068746603718277995396000185523057033581543236278909891529941445113778121562885955879955801774775197155800053750103125073005421318811881632577677989000136568031289827069502667910139291247211345125210813138917697571607978711081852772087129975177372048877686018629885855291227801958316201335734979480859393124082650219607344320045145100466126465223198703168233500539154985795967084934104430782618271573196280390944274531039296870504226216929927679278136648563834916566010258163312343540744598262441561154412825798676878912800767125454344324419417705717799024462630929566395368531717482591345137740581500104987857354281995479997161728013721510070972264651746222590155855998322948233823154839147951097896754998360871319198083900795962959349668566527878042519019481491054565132962781415319526141709714861004372349975811441163538421967869896647929142281458548556066716384536846214392293721177773429794770268635551884686274587227068336893329135197404929854488857660533604551686108605181082883867354206467118642155764513166170183302233253346809197366389017369289585620111557256009662145556784340129551314361461234359383889384796497908375745661707977214482695221171049980450194041662855098145450266381623511229164997933867857502785414589925636817876500285773828656566427669241790620540091967423213400400059655514964292243650268807082819348416151686849469662497696725718548598190585205801689108617719322739399393549885844111714762740552724349048857071799687033293523503086834245766754511261132471292701324210116700631263144156492938151070608810535659084075633009118720771034249026963035090559928298719354447671771614022220488731423881349121311384968023721447165338317027509127396878225705514681680466311130346666048965872506485942580520979957787381703366041426320406593392350053428278978300135305466387461161371086710641414675687149273838467027844303556037528807838972926804764303777184390208725846854756460924555541743453695170736366455739014685287858164406384650088758271668017601137984245710637181182974238331806985565150990919355559008988466477615356852283065853062382819123941290572613431769476619617804568114383459519394080921647393550534185297277562944746353223615509971770884585088972626256611952349185590862864854748878923396110070090157024424805639405900528209590524641079608653264053939087315522730447004744625423646721416003376150790579647636091081111608288649042444068545916487789785794413832413981815732617338443236834355434119198898549326680104031249975494234802774652068526164594420971471782992195956929568062347584897046929280442806334506699462408042036003733752061022894085202147357961060363421924282247936838300131123187070138207661450376823886368730145000728189139778127551681676284329681693387942752433054963754031318412585172700164371555748036359924514737861156180730438958346309177942165595385380782106305145372875817689691239487636176213111421818298803907607323715965801077517373823057887978353942358777222969898359251007213071357660340316186799472204753638139452045516406869265558861212467862854729265510350306450305052160222328820076982807796887068271441905658225070313937657393587635077928023202698567086874973524388476617343280668475321230075731673677935676463153353010561183297505863108940158211582475151433429043493806755565101126563814133238406945536698769867281311004692740204393527009221061397981279568465008923708395095213192761131873510046713366147419862169173630027122534286934076456643980940659944532430782163395537918249989291386569048984290326037953146193223186110579708780753357632527974126971472256429008665708368967951259579010118385724684694328380742366083902986044030175827552565601693631485478720473289384388793335801603060596288583845541866947381129277124123992750087307410602579876094844645778887625588241938616190575761451484758424801306814472605757405420371900333645983690487964322572751280780852591273823292691785795583553237187515438750405875979469073182589127736360966190943131501307309464796998450067768783787007755974728841348149069303185061324779576326834510184247853016787934128681678709346703873451365718616327006080467436378745814930449139529202274929958449791206544923841073996732401356573767927394150809413967707955619289460001255241611937203664249848147623335612951950325241136596670993713508076248369628643151029362148486741616443949877059233315593124095923501806743389349023225497652112119668838530324112243483056008327210983130153333545659261226853075956574569814730927546754149946750333911359255426127590380591320913369775435103723928749259550407383665339077623185884729983294565072444701896377217232634482027464473850884616359310529236358814998042697638324261932008650922040069155977078644027226139678271505071041984221345435487349699384670710928866507735806545135839883984282514249012532462050893673200413740828804761509124720467815091621306740620599093325384457376721149559924589857802726953002196785630839178791568089723582337214385844487705220048118071469996572078887425161403634834262095507361025381925570191893204611489771175629826050654190472479576671590659711209400030194388827610888569323838225095955356207047172462449803465186653250907207425828661199975285784561968323756616539548458102513681561062651149427887983400696889800149111497540840716024757570191299085285661447824276968944152094232963374358307906717002074911041201019554058112661625851873988066729658059354226086834194121413681689359905510506450880838764065465285367876741250977094538665202808107739174158363327292907825245838371421512148108067914391341249744200232463321646542713946245678786372820196880987352575049804544915862721284904180152190373251449237902246722651975392432175595176146715941216355019278038482004767936109803523077351319806515033081757074054181877875442993887683231909321748450232591666836131870210635992599594733330736088504620264115344815943522020172719956743405626052540968434108394293299206185347263350078698871069799797709086831931760624791682996997411435297197915780125420395140591443614752681240804058522652319582462607506458919666736116484711228647115057216507607692943249592676697653325723749550921088055250404690864986283294242124436212142978162725438983146939227715104096558850615039759933856236586993094423984776062333542993143231959676283402581786399881981924021793335694746774827064503180021693325612931180735234092803319757811641901557680394511714930274797199169444714822717259092673879688810242918518897616559484595265941791293978503956570890237226063788213147300139501284070938770233980455616193627405632233691407631010691154454352518798004361016858210603603056193273785973704404471542749840251325018766282092343735116838939227708443889832660155128632278593835460017341437750059368780959577086621410918652699136483403114295508551249167502439622151913323550877810304246152938968990615012621952862140647812513317841801234134728522027888198620119824287108995765185457464306228591203342751508605964609700004274164056818831043813095661775660630031513431630911517720173295420565663504844857958139692315624867042341368453996747044240746093825303373744247449370030708963214334242113600557092192864463261704804724998128552002689121409500617815215624579137509949556390596277902122922896994180239249031175774222559018429990669790827528978890951517025624432484624136488100285324177960748105111843243616818940138774865487935016721753171874417158266139989827335876251459584286301890091349896188207487554064382310124034582891502101955579975920448776752406985578726919776845704128198847849789009478520758454258483266121007856111361187306100479428986404592516418589970175128322657185130044581454324177830991296852849059340230307954230851165381485119601751670825736827204390506045157491539657732294107106600824540445256452527521249991491220505365403929312424227917416368327085721806928441596413921050453394582401799225487321049321737366913698321887177687186901543136237872041891355785715820461180455904287255604445113733982760764788944725261476252468574854316493154456693693864739583857472806210105624327084039923574511067840286817423273129937652664881626765431303064868518894190425886288441649437937921645510107280500594751209709234323684577970344622791902508889755205145981397998692970459853917630325665839640120163550854992623509374743816400199475581604995326033442143811528931341826336322354786302882075589341789662463758001300039160550942690027000638748379439728892640772737824254341859031710289719798689519643227929699664933931567219731018925684457874851017362914897348920078523593478132296147312365021531047959901890121033670009697727908192778876606556095331025401050583015974685694936199334083581374402231551638130174754515610074039896983342047003451867421781911453231881331890036677577932887840148171221958373491543401696982200388713869121865613283822435650887656866723377521970554836656043741776912654414423365081408412180458642928993082943799830003311416029647865565644267731331607287793393489469869511303382728524280242934904237671914308165584212318540665438208205924206543149505800979327410713678958125314955851415504542747479008809926233751190173264645024178122139799265864768736449781988492177236596267216241315103442528849796894467320562945662953498732230735682604836444419956078407031745729400361439195220141516809043595961271855298731774075786666518564942136739721316676820135137153886070457157995454492553906282190760508447614994829753962532102976844271691734844723076896961019998007843399164565625175892211055025960194515255681113510623148636883120461949730188900357970252776788234254861035947577102610200608492962303671733074328699133459720244071504574709469781331452957257756480677144135644817205365791129627642764792313835463667401313555576897010771057032950660350574344783305093438331663727818158813148853063358182529568348683128809906827499357695946169569951099240742811045678922394662051974370449889495623335882606851083038021565930715104453362533879833588893989089839724116616013697964486642162189807152004675004687511513624869691974241431013204301317573829611665220204300080506540811181163784267451101054046832080988303741829266263901022991999421346695247106328143962353428137882101148435018750822903400425332075912759742654032994595191751953087084285129718199376919611391115873640509558170023470106901378097950537673189658765463218233066711320175936608904848342386452758993434259182842137057659385121234161073489857001897111149878566142078568986030246223456619834030300697833576396814081218571718838697972735268251381579494608805500092295504941482225395354466354937311750372543888123079214664626072217485600388209392149163209552232257140997841648769954162501415452471484470057283026699890146375544327260706101873419023741634378298512666664613799092453996489000438383949392477219876108717559412730596377135599781263063487277795083936214776773819289659539657866962119455896000484781928622989878519937046703558562851228130182321912646725227848268282150917120295048336781841860199810232661883686097547690792177674075208965988951460359769331780254608256458900771626093781974839391916752960698524295471486902988727594946479162065655016695473131351859553273382009923546775169238532544152023303848996389176798191402175724413798210082201725738368884426243195596210079726690883441898702792220902479508780505701750709172666486799136930433042457462076631683699643838473868008704763820827259973953403011623077897965773983256170918733467949777646707827387068505933511316599468251381970282194553411247678454983876558388193510697013293792232738569069596366741950366963687800673023624859773234177116983481268899117961137700530779397139459465124739699012056100093717591145953152756065565208925664097383242356948455096210429983378220050608977715777420451931170502893490864348325653374202993409511135470452014600520756999681416615564276372610290336655510722236126150125422530821712575475259604436484023840406806923278915716477530012429384063588980003696871690941259370326612788832549548042048610751526582134679743394547312035320028410235114121158728657305630014274313377262165221659536579457951504565587277320701372621088862921823335468858966923024113632920155762846710222496506896711467449356885539545200731103050332078927953055817896988623598642726242446599734072698797221942557145179865460455612543460886619211324885836831794359240194545832803998254284269555250008877798960113763242657219274485805417885562810867348176105693734441246246861048524125998454646514527334149382707152595184807704604392966096053401585939833003759737636809674917128253203980505866087705378388220129265858257260280276326638883360123868743724004107068091130877479213345400321061797129148365381978769405509941759379689167047275903097122383755890900936532323979978067619672390342654899112735560521229588826264565436721276120516626154528052702230085204252882698936508911821089575006990468300045797823952276637136142900389827052054871007924347100141151523425322174514895024123516573562927158886139263760458648567931187271684789269048396522145221459070280867317810229187006430783440746984028643404143702523352365656297893636528138174948092220861747426336544765337125029700966179286978836639942746237275957976043416065162509634468109296446273083768866789015469389708099441704886642803914967942271887475978941939976969005283280714838287026279410214908630731896006783451174105546690668503787712929527653143859710405549524582139176029581893185613947818621977159749004719734191191373101562742119242793657228691855733965902415443217266202086132448222263858684388068567276633591159594651522201173058274057434686839891680458220878871271124003987324212771774864752454477094722115533753070465096055378866196928625608185526125075445672241054369180147488140472879617987507037433094423426607215235409743444519673174505192189279308685035893992259769442384338375077246904370967514163073858944446151680712869242526304561837242582130436821490836444354008600561529235559702092094001210695698606106172962396711136947712887241477056247030095700879257402887093398762563883665385021399120896270668065092265377198707663082802048221413700032800343247789775662116420909808811544621055896836392824453100749347202206714101514858248231410178014735350107597306453960682763342881147010218939271751594203212908481882443647051246983850821240194679399012662928285674898746943862786639105988655958554312597928023676001180240924685974624304944232324239631405275250750939852257492180758592618777864150483751318577426951002882297978530085311392537652552255024925746712814794841243697077116338730273742090025919102976294531173122252783705890300973430782897268291978394249803297412348747790916507728629753133297632866056079581063449811755465503733935486283580354450925074280515191222238667163971571108064524048508698035017019494007176975463510381704312072333996099787344167781565900669419806346548009812180165744935919136046720866812483141017395153925025363682503470706744017416744603125999230074634112631058266829729532703728445251595070637101441407284346207796633303679486235885289865453000512058299878623840925079490913283785323765438126221568998942255281590128412233133344826400148759598055009758041730105785298773405717482786102229330784328703727856486780701230455643367833038867567656859242116304376293587686471301386064281320477449859474385937818061422100393260876737955946546367234547701599693510347602219363985206642735911558836596290202533687657306378825713090936957140104439232447945464550344634529027609931241187346054002219277943982486162224672299953414725025360121231160339359843644478526754502648416246917890941239790259191712863045219749393885829692161980870209057312096256409033232407523404993913859883089230538968877802258942205774320540392706009186364126503482836456762948062846798292299290713846767580546441397974512394904450894098243288215300394540969373401121584413780186193864331198085412841145434037857112894878916561623991289198915772174227368478459516732885740242992585575794824557834750496951139263080514665133544251041764067255561806475034226628247725897185516146755101150730269673608387008236757883540376127079404663897187698113991379863490307628394303849941989785503257921956601551409876884842909643754898080366471617481812866874084914620381151521141284299333989123719478073811664299856998852758364410930271076889468597346282592702413676627858708563538163480056417478304943835175893756789660876342693511943342208367260238726442320775992447067284261423084194894555263550864018780308465138128296459503378648617412743059353392596746674552948765984238540424123315246321444661265244539351629278651955316089084179067799331221905239114171988140346366290298535287985991900762238765702956568298356295783731474685719532604337263290316813532659610729576173318316205122153844648212502204200494056599198496612765163526311332735042868684214954718820570933782029944832032026062651093292743286527079631995780870088343607980181664188327981029953127997440279625832529367921940068066536812590140467444288414460867292050559357067093902177366649129053920465103286697613135328357914893604096553538718537730152249184055400459529194346943097229745821306399018366454413549195902306010985281644820836245809810205588204425711602166301739156466819429235560629756018496832731446114109049501719288899684650933980434853564061533374000879512634466357120094176540262866707782160062982044212504599726077597600470871785726915150270646717166363945077994575710331563780422631931204388989104638931669860956894567929054079783354569602854711100095726211020914142005179713523037009292206853669262676673787673770192351152738300736474626651591847408094963346871816883319526116833594151501959743904490890400060787287288429296200189873035888913819445626441188385506771901769368884253279238729502018560145695656411921965711372614952228056375348816736350750948599884344663227272450460538394477105423616191896269066973810194974694768548662558844624630844615581927476989913746281385135369057593708289114702959444493777459988368519221165600774024803492186898759575144470767244206669563358133530110152354447432309567157986348941599356080303405780516077526943868474099559169961789765410125257415918258045138506954675480347669527820599414128055696771216692825936384154399024317797356468380569303866457089376850778943128999985746569898618727813156815338511492719062896969005117463444228489514119665349677301390927608491270398575344927741711013361710498003224154420880599915916199349205229291211786550179603257079341551029769425753845406188091267078273378396433505563168450238629655475399659880071835007674314239353816840621802324317733363267081082669486185042025884002192468741446764643800823173881260575563550155298709988915394661513424272829157164779886017517357378436946684188327216550108146102669461307349247095149889440984272713344515327028191671980333226503331369787769476139226037661850440528097196342191833191255187967173462992872818381310997695798934567512563505793691339063289378586657814658511169547408111319534636981562002853791585818113952509407075273416646203063309128661384637857822440294385231334160105654625900440519121537724844736344018023218990285880066971744819822180646720633612185208145681843492835662809461124165169623210790999563066809261941295499051903641673944939096724206834974556961054068661322347776177931963584256199711796386119171098001532218461265495957600815934803721227403810500224160049250305422835536385484143288220616216572964518685039413840158508688712285504966612679053365581825289536478439685297530367619097981686081733378273847145515555258938513537683726348677118626766398430083207714605614258738147996789050578390114425835823610466525240466753857012536177392282221025845681107604349734363119639110180202594118976313167608341751789203057404208946537266775165430523825875464510759389395463156306244373413919618647524453194930840134123074200638283592095459453704922358746418643008514572038340458555876173308127389676873543962878137358908872318925845820891271981492362649392512640994770759650998618633334041296723742909171990224982526514264569777527526765149744093442976236328113791506784335218917248823401939872050008800395244132359321957421448272266366695698884414099794489760109202920128549907409323183416243210514421051828839425687865110863222122095920930974825641528601074182948502082086198028064950049800065380421968926626156694195291436659476496947456972288670812385757993718211422063017950389405921220485947024380316294724576583729307678641728400855708009321906190790238941923263320201166853313434329241549018223027020510920720918826941290324320267796097664430755803500185604367294234199331221149281831661535283866567853508320605885866516002564239637731694894726533522726419006532760396761801179190083282882283841649048626403895260693467692949667801087248645862374503337843426705104893964868235937041426763079559281697134377048897693729893897963795571639254336215581946849821973835196753598154511429820685580652445900294466541729241412761958497980574644290667101360364205115569834266828513840518467950539765941501593218466346057709715079491426137110572276964365928076770872091707115339540594387310661509272431757132762269300472401592292326700455422715715865749470609220621795616507141979865657698704265077682668287880853839411121982323370181712013377321722759717288536236131257681733562495178809058281145372876162526294650888046406769767305166558015875126003757784344454662695401687197797512279344278592814474864150295792142910082395814404344102430813424875764155852491746477467012937785106010818464869654871608391642037146793766058290209070408523638465575271918068410594266319560716595017098612014197815856684946840800161862703569283580070272810611162942110078286255266804278100095908661768287399566995346971976415761676249150597045663131478962935372184600070990698174895253675119883572149072019382984546783990177900281376335681324805099806425565862433002213054461909026533762153370143689975966337241443951170854412395157232293326225902666643141833915855516023175831225140462259806841840190758063962139878231323022884853252730838462645240263946991449754161298772332794115342037441686432385731435596566859417303782636646426625781350712704423354002424304937780456375540942009185648389120311456935932064134604048135370181899376318581393206009268490620958750890451780574089010967027086230557944407517089258933445090944362902995885923348648584252821873726121431767229227393846079154704785036844303998602744340061976328685900071425488919648680193830098930667196328361821663030847434980084169592845498330890618438176508330902966648344253353676924681322848503883221241127844266894493655719560968839499362386260928892634651355210951657104072411086336113009709414485699483392734162284468401160768747196157854707661331882545434282654807199970773038193272151606302815889309498401539237925013102717113361701003845378125612070948036366675629673350633671663559589744227143917855869437192557490185222414298934237660096416038270826759249681075597056642158291702069315235577316797622234137433386162923482959774758397000338693894945916936741287415622021648981660968731746207432020830914036015153703857592409241875489606771782947372824773076768542122128701008513942902970868054101896380391248690133011603372074032857764634659983628582115978528318300679170068805693601209929804559802491689953907884886770391883306285694472621555786534719877739448562597322350830538935979310280248058283983661821844825050404746243984660526058539098279943569845234681373778068983843833875898295396326296522230452357106843967968958478952025586473829477664449969773037305048610770913006458753581478239797704368927422644326315345457344244563574597792236436636471044690515062831918141760366366430978498488564256457590424119606823018926065237594210990609818285798674109640141365625165401134089000619147003031518196633781885206317423289117605149449914411099384666672173138343099367297723943508870988053554277525035333327625769920267477635692647057629258761497390951395311318772967096708797438700408434405402816482300527862699535807921388515188664551007725280910766184474612495152605324191739037158744865404522139540724810354408177054838796330290017152460693972519566839001290930256753609360463966947816410800432323949418322519846281278553474207778489618153062011733427310611044405279960293047674421788831623765541897558297165566285504115959919666297846867315905338628132868552444800146429292010781057409534633260546048629205100078521353333793822558458523278069474214872327191950679503828939966868859977805482821986468533687037643123395710815548355684765385919075710567079385028254028615811077747143878275818682246720322170600742869425697810889668390891385326433252384406528547548541379072898926972039534508910687362461563063820666907811157247717911032882645105409178402123608985346518612081625712891565343103354027758696461881697375046281458520298120390227638661756985933017359530269812246586568487999430463869070028850366306077776568682685038914600607699172058805783488138384509085139097119846975302056853954605422100766033021195255605492423819187552452203277777019827496927818503560783260757725138194254330254644447041382635028964143834436203892706505967795575952574454635996852550353709897786409172142491220687757638019189910380496419903774841948738160852342122821885820737447144359325626248497866338991981282761754508777294684695382062927155326930994794862582574270071638574399394432574789823162450843641231638427627855596066055321454689068020404898195943062849069406981189233996133188802581283819729431146641448902978045397347816209576335991381804492179157528564862008589858688329394082939019833751128479141136361422442005189016370197443596453838823808764573751306580953474315270851629088488374332687090537811934648910993310826032083138210044645385253292915902884597208873150080777081601492807694831746667304106420706820512605962262264065306391512977163659911449855519614085220732640907733382842871231500765766370775171812830852957251892488393497077989888471160177962224447148675806716406408452571079603857366962013154641373750346506849359771112769788210557201208193977307619521594157676497895731429652829690791324346511351465269781087781108151070576822156484639041515506230433832645822949131448821546744470336406426972263415762611666365632973499854459956991724158190465298583560041422879902265599574891170355135459135007342239397144556863277274763943802479408426751210658763099927855646111793486499358057882291508125787759452973261300268721076117355465734941829427502838479127463119265446522582584242882982193003813676529505850555625125121359700773467872792790168435692559148811983601001403664362310351422665731320893964235214391903497424507050922429008787165301664349127865468803968566998983559405294136790536184595241549913794288647495951685995487794054629225683824330857177323476295382713210502229069410447873343164546132567610354201512642062258801761426456268450125435848882511404631943282313425557920983028086023031137635673237959484679908969108369188230929338661541326846694497754620963332427996056143902215290249641710987384077177277065689750678615128780682471677444659091498772149319997059005253791258082358830735824705935089854037862682543375634004262323466401542977305326937211346301240087124224840176263879402162211340609231200242939214719330913490292299059901880921527245614940910980421277833132332759542945133449130359230925767751674230446994844844426172783859887316746283321158385976447559816332823027925543735002648652792775846138537382242571146974697683675308050248315962206189440866345090365052937638937910153721366487350777727554399253797484825192068355304839441249228402214562861628364981637851766906112645800914963313700862525499901396327247480567664862580467602384527030166643951178285632613855724928188475931806173508099134143838435612819471077050838798501208838780744245705052410308176325440939365499811713760293444125177142211984925994324047587581014995944343139415615353498736686201438496604375399528492472533247448668476245494409363762557049474606400277660932915702290366132896898370398234835247610850657218251741429142680790360387348725299137573186553283203322178520192022465081547402629108333152630805431035884857778366023954358273410994925734428074820114785643177071518835605149559678300883025745461443853229860811383874253022970840668510733509974736579702217951303818411874099553698950313078004566736332175449126393414334352559760121665665339942175410747114416185423960514006001214430391397822673402836363172714499122072469628682084008564155259230758294517856360776484111084063376050049127867824970486408740974955367013496745263755733908400617350550834819580723164814135958604896093224955794988131745375945070612405425104802898378487058018235056800199135687364632453187214317518940663081460528720183597612010960346045203248772379406467284410445471542427585405306311015319417359860706026121528871788927813126284256923980580400747051118118416836336970532373880815958197677226504890289786714404132718234979647396464681323454976862276408394615795094984080886521958890518584246203403589508615713551661385973635341089077038570638139309751666868078952269398610598245359431533112069137847498493447707409967532949269452031668742221762801841044834480616487287350246271870133213446250124665363719034076173425016978072104588805104685434276726429044910816892630261751121984645757425934115141472371978742022445670722688485506727674758894941798314292835318915883536504460107367860890033190614222502053898873557730602918170362947656962139440352370777086424215753687610023518110769119963154062460083839430942249316345511990678873993489115976804036637909219512404860200130054240085852511767387421567327519880260773927729777109332691499526665619439138103560021176103590844370765629815207070674267426061476834643049078626431012786930713137435032956787694218369702366887243188100716909199716571448471044322173985032812361601780999923367628977447637592456433418773827462261709479997220867082703986524463222422076909698013360243354715463953724422821541948075581458139769221388915660768170170514681373839653325313922860411628080250628993180465935296693941607745380035011452406149974055647179484716869135042415820258502651996200136090602067919748300827870576048456362826590439756050289212723388953655643400373018296100000237009333291195997546406486729913110266391357133698011057102495859807337990340110845199556185780574072565333800096433416740927979684172997753135407956497614844249998628419817997023857586739987044143776033282433546579640396379116520023325339464628058193242530896229465480378354382775198379263881150955559749903680364886208383823125780530309052321770343167790045572281637329245693791887917890763560575249192572888899232235514792532168141070675977576292567758604714981457875046099809454283322612133686597004884811728970208031630621789517954991980802375966822072610177898440839657434053613876449529853012669339499482745402410651752694060422187320587144403834146910276607994802589074196869980588930789903622006705611816356555157752506936771823946356717941042006772917110980760766637019145657006983658465559774923342697462972629210506804534112302735328674844617743097358216975635435893135926936678162704504031480591417606597960833404673105759832898582059526858058893180679316997165273962516803733669244444204271679760576982876087478556248211036553385370264802962162515443621017803802697801070492072541049827829572732830579332678327195602149486673371866931266012814091620660664004502567149122650836774822813054416799149927860021598758576414918311179934810415849468274620407828947104700053518611514620627372149774330932488332410471493203682719341960600489176880227471718170738874627557739701615547883991668570007843706343855472856280288368251235374019510747551938857068376593418157611864946140696751520773705627492528688725916329935588233547820368104772222474046364471857851684170337221904482333867492143729140552682520535369500534449840911890894138809915569655586808196471540952705179254039734389264205603569140955023973987589851337785623187341945813104389370094769033519540708098600347470939377477144506042233221841034963179134022878488736391353264155312830173811342065826173744481401438856285893576941101937187325797548229037665905316270741874043645761106620740805128318769797014600634013857372030436186875744703435687148200074635647282815902604854783715315602012697467513936130972374751910791484945108344434766548426841156624135960354361471721773868090321992231773944940152360485666756340839739666138729083005903900044691615608952465549433781149210271970998852109139851410744716358917447520595763969490460839559606787862362814022548133868675528143316645224634961256013866898264998759357089130105735551331354196556037515939817049912368646612958077584231337117197724887063130487576911003568830141053095054078173915947502335423866022353205736854307796371687988711962835952621824224224154463178435335211428820963934175881264151253345179432018130064114926804728262769575535794686050125107586749603273277023901028000187754269429098608870575480956153007390602179577686345182446776696390127309609512361042788495870437704841253301374872455212411251362770405720968762203579487238209177966250296287514103673809194142633830499406290288568688236046141179007568797379315217242194543667872624896772126346280891905636433957573397391822409238046854620375624433821072578262754154059869443096894470962500465409122775073378849761583836664795396264074665687066397374138513445337891571621031017987504696469251144253326156878783161460705178564343370540444819464562238817759078845915906940307049999916733751728982431282753894224201823823753329554077015252988612590479909327906904355898742987090499397105763995775422924130203869312637736557489890983452950053418861463855240689652778003944756633690300078765669413991646047455398499484312921790600194302766499279435593714117141146262699264978960913229247610914002423842666061334170874119025537314693960730509712620644017284772673025943814114410150332000869528390179794920025759408552974873423166253845928215106995130396117238268676427126679434202961384420453578982397626199392943036859511096587867578143981521255336434818235352380904183241925718765324739702500928364056836420314413665929247137550514332323591214258483484080699738847102097586970908233969979267376614559779017717117412548546368659579263515314904340196136059676120099459433114767959843969075717888735499299813412864864929646927763953695079497544578217058931196953414728883414496501917722032565468198836020872221994502783018638819557054976171904195449350248764711654804704546960186284224775285869474953425066224923113884393127337520611432830373054169277817237335462275164635073732280290316691616429654382595289698303986645880205892416507191686885936325629256639023004354373011682811331830185979826097527616751686400437067871417954975840263411297717704010550014893006955060361318049061548614316666491536040467338476467341764581019795027313883213548519071491067757849216819681722310770889046073346265218650668646200538090478015275513076500897743202044533287153813191727865460956726074814739191063451386007710098257804976344352176359973141579153666757892273428306498730967085449145375881697031547359868792635437412297051959286182114494073050835570183591253924906812795110413872484328722699666340473530926729282118144254843623612251581027751889450694640752667834540487409428289712431423945510390751569424463635945835215526055409791881256155146842761632466331736688535182184300320590056901953355874693829342987605517556142032930044411300504497221216124594651289152143973619526075217015360421893482542448244344085518766604710785181291065745715204701856212923128954342376632211340309750742438402928513594243583535974069489590119305856467114048984501001506887506289633883251147269702230813944320892281911872414075345914894363142132146041959108513761021862497077716206240308350647372414911660358820399827892769509475030347620178237886148159464527544036997791414225445987409566129894915831691164192897718219723975904004844137659621631522855439258799197099280875579393326573819188533654332594288277906740049399206288842205167870186977752328191979539323644418289906938096931007603848091876959891610795903615257365562481776322507464243445137252077947676663553605847889701566701896838059419675323629634581600521221230564423422163756683850983780971319375999357205595160249859071687349661530485917812953510830349467808541788345745291241563142895044757317374189812269104774456645172900012377713692371911475691496830405657846271988506562013390526928537217584548346016547367318955653148677403494722514553606637347777701935349588749030194860206821027987354672318596532390614295975851137507358186311222789189356148223541133242881808734959435468287767457936346272772552027595615421938238271931916614775553538665333134771300602678975643591989406623134859554066695309192279789713742136518436860585371043516932738116122951011154642871795985456608092536127555178894702250472121996650216053006063524428610815669305119567483659381377797166890434136898281389955688300003167646437096103336424045101808151598776786501945305032681783043778306896932063203401854604982502397975519983182369250531641588187024346911519111897176939224401663228450203803416089537165008851556165393770683809401739283335376142532347673604251093722123339314825904517555989130950464317345206116795008542612948338529470114383870723029116187453969671533157497883772836853381089384629570610565647589564033189169405591486195099648616459125410568050627789236971395385207303442789338853729935297857692976977683961576545290106391321752963698251231966276071917708183646160994903771152075469400130273000431036731574307855260935827491215437446139920970034951274126216681620633120433011682602864860460645193606590029505555730373447203330824007905752914589867281275090414009509905928714435713333945640939996002839768028507836607860999999343569142576297142387248437345559590353648057410034184003810190198478361025451583450618062624022890762947561382559814837415219447007537187720674826585966424492662554061333435479251040189280173981799808324989014460941782532990793703604692090301654088603851747402575932872762926101169249359132370499598582400384325034383106100594889472479763925252230536156971667400972377720746001922261522695903586410043809109782100947672758209076512148292296057664220295575988761495601652242497346079157703291003424932047480216683525609666428949246760691150642800889034860547365852324533190066187140264517101932083735052230131305097322088535721400198655498835228826148227594980804888156080120146262069833171724484950465191039722692810110169426615109424544611214749266765294179332993624869486853637430451258545329110693986347679195056364831809032371334343298139114406601267173700429361935759215081669502909949680850759818299056329909363179884383751083138772764618839646683350608404263248040502577122730871102304148859902354571968286926017788082879828484203409329224523266676014244243799111979485830067331633477907456090794860454066335905543159776349132876858697976861450572478949685033852616832370511019384474659318023595008462318994808233103327274325401030195658514454310341048436878555364788718139447265389927263387247723174756199905008226249466613262080053111756355197963705255871363985721875185876001644376324283127380226339967907815805383836920576381350232249781488311253314816569796155513589665165227755741672085307577750451570376299718702790834882666836106546034442749725983471680800204936624615569059059212668219554316114662697178547580161948217300607469721362476946274652324016186956918460069142152780127759018402371264349789358624495910668182264607427872837110080067060001009417488438464658645728780554018211281752242009010462745072743334339481430183034943531656962386593398425723483541470438770308468986831894869664028325649825299876443398882137273858555143073957958621890102803077788952128463703837796188103028019592252178969562504913276284435318847246457071955464741671697728544267529078193448261275410784304651548994371025879282741996063111317326628462638841315267479443464682718156907484290664402029334065071369391994455869383957039816626859051107483334478863908282758836299869978341631312010949683093280204043446210987062709118417673779684266856045979183540837618012982322160885623839739104447954798177128173856202042482542981136382524715005594153093686432599987068369647187083777894915741338408196058731145430182053264135227457208507040260659894186676886175177678240043917818909604150517319478014508842476565832828981389191205010592444361986792718771767544905101108151980927523470573097663752782054443503077432702936111617474825379303126947855231300336285637958869599665428435661005588578631210919478142800874091432591449912708519633366304710855352540549594290472629144982197253800513719559411630215324253314148984770032435365055612891015209101228706735332079941971726424829130135497059400431568766392089453611998444546731458093964877743458360456793077228127003083550687373578789801127937589413039673743326267781644633295872879598741647202607140258296098960325174534113741777139232410765679729436682042264510009080991488249629733806526724699835560560207194545140957652962695754363014958625930523531507570571261620058699412458517361880413204335344855936868185371001020604890540450677269568950575408747219134559144214395338024458275462291398994229838101275074892388746214791627524496693440425454020655904245230040682380729097150408571205948812033886721755754485303459370978129146657658476439116883448981402924479496878898322291232545719717582438642750653766033416345414829362069342728461875141686853402521574960136750371449490025204812429305539862583929082905255576682925502297670914461958870429606608571949136229729051963357966922883847480974342817740777957469223562373273850651757642597554554251142070869046459293868501685563645257895623445744768322002978402268120655828553751027635008255207194905445667605808536404857826577308630122461196839924782796562690365717832054211383562451427043131176739425278828696631302717496586539574276019048265586480477822826880221107252691680169500316821011986808324070026284822433232730470965585798836746546889044564697944604035603906785224639310416575719374154811285051614904951663596613158577365406745454117942548069991268365936526867330418736709751906278481090914897090117998657793463662329132413544875725608779333036611983109165278214706479163773341861458922730935137216875231922416052611502719046218795658331881800169368363422564166953818919526116135088405874658101370272249932784684041405458682030622622248151780274230375004210479110963554443646114511225784510915928236024605409883053064227157560973326400724173315220099264359710198735188662198099392854093789707945654820880855492307732840970515587882336309099716512489481380173033749438903453235710807135556599953818182657760921073822336571884323180172064897249349178457480180019056161290210840521225090131717161299452167487722731292594556456393319640130441956300137085519442825988927243538793710569000499780470240455480145298176260809580193944941197506647861530495436889701229932746005043754557928774833892954060565044945041564167672762872247356983527723906621257512115025432889290439862070454133887841268441319094004287806420693379180510226920827081748473245156279834225615528675267503241135871277781834791863805261225440403253150887604881139048999491957064400161446371073448203547908737779146701678285769458354214087897657107188579323378528725476627246359095961875884505514815567697398359646300384197216351261203205240733432059970775798416339760875980453181792778859181663061191229805767982136145424483918230619356010730867803471791573098987573459291480883967650422388235596146084780819008210812730289677512185977279127875477184717690974653968368953537471666143248370198313990274912024264277150308279076284762650029149974867339514415772146275496281923179654092287421476538008187005684062658553775836360399430873996207318776109938078672527412590941575214144514288518388166507983606851582509717769110261007264778234057890313517295546615553273165344250747552418596647211813730398622817357434675516506647267463865553582677018531308553397974989151833845135217165661087919466949124798652650216209990545169381620292619449798805524328598514555979836483693052888346479230803182994307274185212875674296315653427057241944094716913318086628007507095528605135889012303636422244353552593373888012348964585015539308857021901820514422680000909046772372034007868404097912191854446466143684446341675565510347407897956167117052603753067783844765431171847269551169447931249834382737139782296967448993782325824506463419530248901989785852633532809688173593872927073233582771104714621189873013937557155851701548104177492986440031387357122413861816863811972188288276714979177067622613544636399112118553833476749684574423306409677222637700679114467400838983326906414130484704396726317418162093158752607503619902545997072887917805386047333298100222180693872184206830719714663058093907305887827947554836184368123822671852642530027513077470827820886784077813864464917742721859733177346011637592328115609235210391724515316279834191316359532547248015412843722834090805527129910241784241849554401304117766350789302856222116486052373819792651349792491862851711603955173524826191079776079671851743098034021674445064509879792059384203376894751872589193486803840651342740797088618302184338582382879326109009202381245618081121367316243823956424143536265802615526130031460544390278514491480324576789425171968025980725253177554612599990205368033343892307272911381747770864857130878079162167395773031290049979573358775252155712396878819227127627928920478756851821148525453963641095982529476636599141822998938297686472530284158209987523500146859368587207949086587602064010738774762284708653830184399516273763317936129538731939325812108490363288311204385380655957059277298463936776175006886895970990045065072289931107590637400914401296710998665858862642025352347482789349368252713872505503709757589320460890234176923629983946645158129664612887545889256836878530030950670170820358035016348992142741491505036213992498611363002578326742362810838684154072082670129219078703490044116780313836865437872845839742910356297950181776931056535559470140537797766502019150806942251816562339371786261150488386444704624797160838755787591306776287749145436268333414880787106553682961849639036815704484168598855521556376894679935027754490864003522031046337198477711869864988927641431139907425652484578960048571050843050934240712184985597529490484688934791284489209846236346326228719003432740587903308930159015868559181904348834463909880311076672653104942199274253004388102850335310039506715189610869915523136125353914236541918566342570924435903030345255958221719223994863908423214179720800065720358928507591869534808430033683948468352400936791741967917246275220736834795704960894364314111670619138143158049356633284376050337848596223815456283212225580474671477486277644707302627595740349434642704956333776232972547828008613984216459622564662456895074407305956666890966504417521132571744910368616816216758916248858171346131796062147068950923725160555919306946524920536931336905937791992710957141839191782129251529897069216183565746525131240591676270884240156156792821386301626254473059924580003972234561940846949320959433482194071881766570588935844617498956154265413795887160468002955377705823693527079181332638966245149699811386995156660761838633407296515109733184782058330145338139099331138882642892719694931299708708360711567123817145421397476492019201233686690466687459612780516721735532245479376789644665146081719080079089523532226425854341539795058172993991099792311738926657128322968239537131678540252258811135844273702546933351794949272345334626633355968863575415563602436072316769479964926217883603217914054526706457870517686111656948977959614210921107279168076280998882503191807506361569033258426779266357323906405829359573469012863317891085933131320370802060775028108472684469359905892243164230861909620509066606829685038008619616526851725080041490293546643832628325844394172327767816895232022831598736382995202842794210779320614996127885855908689252964249474205748465769181066224852752869105706709258837433752759612308898671185112378784680968512810832372726386554658512172299083475832561495581731326832584805149863630168325187955433584872473852015457236164515185527649205148608797155806357573286920862783873856344117901053132170280311117801208847208449566192045027594905602276502672303499910487057412496339327148771891161811741516295219856939000574235189545754689047499763820370280517290569302788438539526686209103547747467209094860157921725097212388393868034024046093411275920152313744617562479877033059491395872138250221339176286175490710970162987839742122872676136232217043339738824686253078912786619136524227575651578564569298138788078868691833998141507940861732575541575740140371559993838364132813868810893613497820670124868808868648688000301459020941820107661008651982135598380993663561712744862101764168972991189970705266818357200601015868358924305962479523787845476954984461755039124012415597201889106437864784016777207538716347473095256433265508908762467476750767405971509802132058409225368340039503043274701317215482299167358340915425447805915200200037371993701699467288547842689459040722471185399452192149734744248491139090830136913043443222797524532169367002690033414423967158891221381851198179069754787095810598125539506902579646925781962075535119322042824348371159941769416315104620000153209566190235408515655898552595235399435208297257740456865184165311099306242593473230152985680293165456317141812890640645999767788936104329164249215589079025094877469979278000412237023907454443845891454022664962745386047956082305424035665067849161638373426363478998161285668107832731806408992678161283100356120480726873831615469129372169211024537955513825999337490948707047832367809428641967566989130506151080864303237512892861141395613327449186788407218900748474606101352254979678930743127694103941068618284390800228563654694625466249558461516040028261800694229211572688154406692977960761987823170833715320207736425008478088357099869818974443962601806121074251048421303396224416731707320558346712522744751733776705352858344746355426815429144110486516444027503681772853394969107869120360340010926822719497884705673969142051842446431997024763764302186611972650564583336457796915119074542240284347811858769068483018153124228042886014515542863139594070379464142510647219242569947689854993059119322972329231612157246705534343554945731643074617161759813073895822477203185960174298433895180488367361066134924927043165410814991304254618617045251689350622379223703588666326937141592627095442509851987938595904090739894840905637001220370519063866931967880426073097200659971241795802709941491735165643847869599511281146059437780137938908515946048562151280382983736682038108626353309868290266529558373003439462289624725159024902548548704177054546625077389622008413711237318268902881935449914690961656385099735135082039959452186265540390873993280817482571317124006832637947487743342629138419107392948516466584779162755602235387345082177876216807880836404634275400629437347686464042421924315647822956210112242349049543354855832542463148192274746610923747518484134778614866650608192946053843571616640652259000681439779121598732413818478816838918069472936481779266501200080383140932805484549033831927754271527738302612612217941788953366051076845996550493375842613316386072226292580134034800609330537716833232821211927255554632134621439811217577508832650458976687053048680330312465998232274461175525509378844211051634518911989596217765133019568078532119629904155880918288195578025150912580699449665341091451597158018396078146230621929748524389349444943112761832825583537848761177900784360478161650636153201536482190753728477187949215633708887602404985989906227330725444830359868688826075026011215439694541450684813186896731351079432485845289663406914488589595206764195678896312043495021289333068067106193809597027499784294378522741126700673288622355095857530694710170049351711674606856765518484015696707341317117388606305872352148226218796907674731864411940973823283612971877237284680412858437538627043346656450285768960430493931053623463212337231476416400604856255892116868131793434023029655838604704487647291741085616611405715727495891165006811996561008187017954800487921670450817024922630309338747294844562122883341844792527700219074551799280432977625119580659910366615255488498640516999093697763373738118285061739905224057179924886052570928983406835449800764782447970199487836775685375691896751331932513297322706197880749614114248383595899698434392491987108304457544938135645803361950707958473492494911396249888779990313236013983913718411326651786638403002916699470168909971156334178725848125721960664921353724547186370539895331654270171512699547730643119261942526966815201304112701007111434870399511697597699096588830365189586852438233217611198831597737594983513682350437140242691341889953079203568350751001852686674013456260465488392071853451935867365952606115333676360778395821023193040376576361209604506756676847752635348315144263227254622752702629795701471189801339242891703126652715815684165419937285025751105669242269612294463600756580990149817243858119196603181630981946488322786339088347365644873265175911274134410118001415316291888231659122526007591814720833571779749299296600824193865193230079845117840948009605134401113874543974269294652318909960165048178921465804279930525479217860922759862097723163736061723336672393165395656079250626847087788602628289671106026264872679944047758193053402962057945494974707668617489158535116396975939411788337805753697077679409957745316420883791562124311641138163467696388475424131392536412926432389859976979170701877777138115991551680256016767247484122887903492023449278266642607604780840458233934981248737694993479453598864994176482078806719820072380826303258421418209936888156174794995030415717158727869790197983591596237976381527356147535663441403832157916483455369392496281384891612121607960892304622850360629644551616259182410342219763266626689306171956285719397587225731582807698151752178901099667581184498554180617648834203832592298050850491843176487421610577271169676362412863342369919690030946894443764907739610170469282144209652273133805882924688824878888410631890333394751195955750205643011779591953774839513815604632899961925142532164488519554232960568899946800284732435275167856968481840571241251954183973177094558928773080639989473639520693977288955161417496198945945437731863707508866343464896676407901830556333791748570897921338140980505694572271445611957295217085236301577346059326781485064222964817826230570561783712075675759617100805217377245841444487956291265782499870388526588593968963333802504117182135424954011383175292353517765000656758348700670581356548110226359914920221115160951843803903290559438855159471617091678255582645825719206087017889968961311085414536308196558851773867517181179301000115472754568962001329556939914006618268602274472398801699901870214405513617178380324331063177242487078321978664639965604526268485657233807715602167290283367431521126134941641987002288884386291167623347813087053685375575696013028467326061490649374314948344281346844094797681687927982497808093430572020499347439803940994641594107132309998601437878497247621251473043316834810381380648468094681292416507489789831831115198408056807598556334682967382508948028156381945771287906217639604640269774914538184109917669021274892420998235421825227708766759350245152754465695404749142146235850547957229275656267558270817578241844426284384010237380175609928717363148024520585312039498037088457416773533803611800509052015665190817667173865057946605974075150920878528985510503204851100372238959831077108888881310018257330457738924404168028111229314500173191240949538654142097045602347071634930155931923399279157050606294006796941229340247035995610823356298189960164943208117812037582853361969458127686895390326261892668258463500709770244830685613020030668319063714774909104871773193206704945228334143272551757619233200688878209207081566942569280271321792870296776803905332735737785763839441449659349832379619073008279900403428572189255116940868338059146878908429572085204171681480856024156538043506134597996178646869506302734654715332219103144907675716520570396463619765855137007961437946682208023155374272088389116577564977330979362871786501150504570789955557791642880923163684624558831680644871659683216511448034245504044713561915459651119103409950029975586559470254512974325041530266890356821474822049617951422122744557102193556988789817125108740822144415158971081852771682886300276789763689013501464046071942899019869689778953445414085682280649474162948014394204317902673119534892294681268613768731668372986417740359782086349922892941972009289489577244924828660337701654906300552299003406343448045260283285466983117704722667162035681168843471508768237139341672392849608855832612458673338252871375588118701874929578664548037349356839288291098514158489297914493328453705252821303592652433968696171472026404112427896690298645992825147263608472224758016091736846113745914259156576737347338063628238549197582066380304608720903477236568938670577433530690722448338691894616647918536657917222086262422803193128944874559659741975361550000385333677715322839374491585650096195405044631119401784141702965064309991540031012717655574719753324191430160007918957315329091326085746457129335972626432752498476944592706836427431083869389138526710579006228968319169542511677952957762124484438169846997338715685825138415753112202155812787521370274934266750441259387685779177575596968300439157236023218275346523720206376896207694313197787343836549982603450359396990893385143459300338707232912058214297487706573358964568338516828001614055007442208031597870326102913068469831300770922564786333354130071515420909217914822294867186388495889050292521974890032240660395439504965194798956437592772097686377877880753591767996674905461318036373491316354175162749457638631093630947287299016542693105670929739633982714087992236897124408839883113593917268546090594487248814499544145953358616880935163001170803870411762819412782793265648635503049168463446681429334971860356833561298765363243338218325216379934482869025875154860669703498292050871963339341374694006590618045859108310941433457349241130394244270593259824380275541920663440246188609703078304136665636415506580768115090732052383505592093705123054048080726488030788979170857466544584157573005645279771141699880147086159261225395825881996637855932263022672481630750573411370512501976631264924111611671203828205643349212115364288141706695996347796552919655262385043203611847202023746175964121294737243568436621210930091850190985376959508441870685999201912007405721664683072614533930350461641487393979498064390337533980117465219259188986787001147569524947769164870224162061199034769162598657952541903108178655722919781522336218551686643979560777942358620074918088562013497085664321698228224036617599237239586413630596463168806672044300810293821886820488435668816670454090686685984400230729569558962232234754895519176302835039899615887634539457873545138209045562819103198324122441034647825198356700464464705420528379500323766758916153084813248788094687473542276459263486475567832947134856207577222442585179221974426456897981624665451230716545552467063729309514502879223100203278904342458917130474060550645799536674182222123344955218161008385597258204381233750029857075773994145204013025772236979525389125485372418804845154740184924192152059142795847275841403170421159992063855544345204823029768043095706583139093004514014520080733724777063942306031504952517964717790558516709229168804518560083344771843109428064876315294913692006428048356142089164274900063690060378331311785560243549695622754101806607009252603345318345727097601588553836408609810652404119334712650681370630381601149619369998723178996651991580930863907845713180132449718113506776412337066396540359711458533701607612343807714289695212335997724120844018258200745580489718806398434615321949966758406548736495624679569121058500238372158662916455615752587916604365727886546326107102174446123685708076745060372132756332426803687240251000020339895483507286744488277466073052496537412611925504459192868307597180791923791616538825042487905947149688792252164809905969775593211538194704293250958406588091012792875343076081396145358738191280572810991152357586787715534681072216718973114872029505272541687324034423591677568765675820345229792922187561524236711868468983791351221786351069395658321331067373367463801489341322739385091223696978850549993133293580763407077986331719029226139017154597515412499172801878781752955388982589862160421313253760991920230570526133856389908054874068254153939304889274792409365053583329390009686315697216488667410729870149933232553338301687367407578969674081329976434606997804251224789583801865540440761683317855591339244382869562787659276918232460191838037699317503393748292181666061955815648134715966170193760879314449697530152868901539721792643478545876795276038638716336486337296488584754987297286462550594658790373150031220341959828635567773769483073474745111836929020452860303995064193918086399715493026898291877022248454089532731205556546154739125954576399476161303602239919528278898930431533525521027039344203936309561890911051592939369960538398971188945445453854863236247877965681757022459604831746381621678298774704346771751640378307824906511220623108762142394286757715002018553192856063439171756084174171246243322216101334891557600360557998486953921237606835153623718955485292853626467303060095778484650576933360399912764967404633373242405623771391779860125020117566317358359547368370738740015814520004437766733336051027904663268236391303213460989617797110900984768744640582349187081496031656815607924897261273252665393142128540985483868693203999335253089991990364582746678571561145548783420636807022787181242816642374453678413674402641538675465554156119471313484999878226399135997795223155484736561833973307353942861925867661562753432451470165775070447998854759278893391041798270576849448748084216601513145247822948069874161093899621803791681199770588613070136270938768756421590696976838679222919762053727220603960936358277873319059142298751387259914931048970593702812582491765401341100290813067274177283988345857384015779940398017236656191379945467869440873070520039751933139780358446239232630966109130394971141607885722373940042229036370644523968754244483768828753202383791116642998283937648088447551857657294004384661155064975346177467058082610415465709525218331736868655506214369533648988831348234925527441162484072757303587336023845062897920775248073991639052078125076780994131506875582517808845567749982968238722086423166841657228726482287043855364208815751992641664482481451196027350333193147081400183972168515963918816365688648622528516628676056156174144031383645552095812667811413721814150623479555893196873140357878613934680157679074431368509553811924176364596419162693801490792940758181797339932001527911706087320650916680116329004708789937267210603164241513212184864986191270509283311712664616491223474282867037599786613586933878343258240544666569813688945523259408748881277170504059042395226809750119695812361899777371615378318640947378956627574924136619241001291199985391066309278579968614546907401032398292904414433059935181478827698295092343851202413591816529680705108557829440555018081378619412722448127795274343159268897435106301995996835379641768233421159867161090559330616647622983327099631658715208838376899256185256147610643838430056886705037212856530877404166719663692626019311310407779243729499564606832030269202322194291716341467625107160285947780725329247813756349627170218724673500057837490738195885836740667069171079590583183686028369139409177013185595515457158243550865113020770896157713581787985642422879805260777798794080785214396383670244483961114099815945996160136714240703506630323495301011502540605255484356543740448315457200703462015792672051360416820706019286557531584339799821724601921127816446243018095595284625554422419661939929099555711250037341131792387331526281327579260119227266358483976942923180048846103187509867882929044511616370263347182401522644317088195037932510829787602194145749288767916678272509385413405766054544403505543542917872502594691636843717845931422770719509890301211040088911654755433158715454450057676212330162687278642315804236283033959745924858815632556241930067171033246644399036657086876317447671284221765349255788443008305980369558885078036432167749909527299352703172010474023126840398900105898159767716537228473496059968618311368039934887793903283074581755714330609139041423471634713502701022698488386061714399343632705633070083141540199845008837254591732970357511126424560585962421708046645514299940479365709922340264820760224188895859867981139061639834117115815068638712430383861166988214108468300731806677406306695518633295705645755649991187033102753908391508946902036486043544417898473951892321827341067589547697187480675581710358471057043409941818465437292736180570395546848537225129018818744707328261247122055931072769973273037596389208289777059129039309488482556629319222451592847474860867726960524114359160759272379950856807378236414608280770363232719069996464340493788310190201896613408560303218289491189933010558581046321796001517446597744593620811006221666368195608740144505252047297625262542629962358528583365613216389584233098369500708970067277269213915436877710355853829970661614914152794362937304903172928305956852309595627436871670169939258826112822279428238905112514045861460327873057316989739336198093907258191676848244969477487949457844509861786823030543377929796468307608420746542974691138544094394717377816197709172172086057959995211565308086962071142704527218768858521217984684495598658020403150551044222491657856849406464684383744699245127264922554219280750981144548654844028350886451413503942110351925145890932784828350533301360226248333849762647447089085063912534505149731494121667142740864392882780876176128556330275848434240943864050965730130278053794466202116225725143887082123393979100843660896901714462993272682234231146380022378224961630069302916566310199733475169686712804242328592693142813039106918157731704168010161753847959101556573972216263492720584888092537222276989669763601148643874542857664469426787416835429766884987088306459180737535665845655746801448038729937089276949880316603850265056651581310007995308297502171155490934006704867113982247484525452649263394545604303389882499990343511337624242365758594116276639185269208490671583116968003099254653559705939819639318264833694564337364975985786914923029667638125454332929947619389753457579146010848796084206027144574832981680143872888914054055020832655035024749155415139364126181845836137975203985654816300373903935671403569525370329458620010489581787794311358892455839545493681888298870546707205062598000755773019264588248324882552636129282770805474239585484809592914346060787183182108397953949193544122726384638360480898115271242923942045442736850649720055002010386466070451328142638640231668287570900123607652028314087687275613120874469973583107452565693951621270166403382567739696837962684341576554411621542882861283505435139602281651176384253153995973514927969412960445970434283796220954633038275255339909346272758368077203329951618820862019062563271950540978779871297362728342031676548240425052173113359106465543669517559989394746711876466170047737244748814665261539379587059289828022331280042203867616339000031229625752547358021699969225927069767054797495847602529137528699379982392058434384886946845802241261135943513219143268169638992317748060803109302602054686217631542247084866424386051661904498557003925426239875112295679332608502424658930861498304814029936205677251499525369087144241863514102666626885320161799572227586234890351025080694946128564773464996521661549733804677110621809488098364106618635013410567595617381022434031169951894434986370634154528971598428657462485720013716194826777379936815458876712092359104550445173293174121766524400054499345447830655637209246171782808270505187388620382361721007187562056947491516183535345419593634878592658977101960551786933355435061592554436479179433041489206664802375172701377245479876274642272212757145361624075007027038704841625279917081629961460834727972917388564986714050779915914979402847630854363629227867290705263243909819863139625527870954390040145844358765264288577734650863586887000535302995137896953379483793971444720631288734775778260614112416568141072849841595994442596582645691981608326563233733830823537597577478048336851684351408711095442788728453257290946972718562796155188559665927786720018418486461725510175039812693659764599945462871100933223815651194524241281028221544246468293199178471442906696200100485423348911854622887699389217404308365053463879934650057437775527628588861357377010108451267235506027082361689630627032633914606144715710363065950690544690714143769754602264416852285164489701557828245155163704063721487206097792978776521684447418955655693036937488740418276892614796255693788371898486900294910196992562512490252563892140221896576193807157427955351484072393911123376015201517695061318191977521166937661640921422376235404994996108814672959553643730811415742775306863159620697294846997656080763753723425599729821507637278415562165297376298482582852598149488118580144594864591295574374226995812552130698577046500383070965613401117892051069035857169820835519159492489593650671789525277585699060106423903059354535748335899115268595019496238567263915216249977177142996481204794798737976743636718260794235473943616259597587817713467139043521427404280168120199458896666970578477005701171869840398845026920943817751692526712335074657460673506546178570596858495324735381742652080457049134273561348641836807680809426607693364512369912452264335168813093137766384275835919980321711386225986940388153153264442184366805357535377048548933036994365858650786791853339333124220121564555500936418289511258383488862722681132999516453895720403418101073704019226091963998893973316792286294874180056095015662466701111335794539959372776065683468564734646889230868791025568587424652625745395880129813681821695856192375852719606928187223763522797754126725526443208872913906667063454668453266986529590160020107599216590684691631492483238153065824753035847291493479015215935655200235930108827541751922735238882270610120610772014236173163486052754640664453332328885363033825693308743560197960308739864480456658753479605117938129007300791857882084809446005293768163074348948951806923417219391423936627537774285422761222407150589567770973225654150090717625290628364419090871979024983875035653849684715803910128803016643004033299095855461311815624194926490891021445690738844555988558994563414632221798702101508575265915998705671351679195588838484339089308953863670096890455332703609823988138625231334178697983376097596529985727477235811013582891593050551056909274240385185242494505573618115869373185701658688075529598297710745190221117332939933206789883313206042168192987817239491045843572019982096493385147399821983002920303235414336608452563337078988602328110522340296440354200421128863317841282963755397527241528494083741448714191944598910648646009430351065726858311397142408663448562452390117338282773045030299204440081583213973239704327369168844778326782719752181516712011404742104178696544888915542559400922584859920658458485467764880644531832948562763412185127042967026497357978468373658675556923474455392266145977912787647715598961653115673429489085066408137883594952499772619039063074098372838687625776455195827775231647367838823419509958115789621882953945687262039577953666333067984947780826149050515166680652140725179729540874149934865997115571241972036532749734573918924280319232189819447300618247976533407080159521446616328203327115261490756945705807901222449608259326015209077103767835645938600667612073938678501253196903709129051976581869172690078000932549922676825030888476504609036054786603751597710842179493685574780595368708804600534708158478900116402818738600172789015170728226686544828418915176631534720873771673504157379171048590280915397474663755307472881553454387828868808688163831035391010566501495292573378854108974682392857964295831606084054801716906490435692712863962041356490901458275908903861016964783566842793140813771233146756016483659172671866049472251249218598270322427642449694635524710858423870522135924961602087032304354520214772089481321224724560217576160053441167790828717296814025262775215541280861007752631405685909905666180543023007959626225991326266287282277564287861133067482789740676517299607439670665182539854909518621264009995740947496426102624487179616619549907079501827189212400425844363513225415201439112476289961819249468739531488269037824285743042979454775860410085737162282269721795992254935135768831545097306583719680368981494446438832297720709352170180436022336653906784804552907763688953804061076259621589707496366977759816341106577423248697250986306626739456637370002788602707217989003169817498024456841652122063927788649335064986425604856508780097447294439892781109853566913916151491225756598320636609791818375068502388925846340703975641871809578569124920710858957692489922496173145432642409770910629814849739749941499841466114513793000616831067551832114364140285011882724070281136675135023963254710401189931759940365441624135958843914717634354780968510056874249157315264964581321269492368146257650952601878146245910291965905201677499188409323276745356119144093491742568084869725813944955044019915719387813944781573070686244700081768496699411010241866235076284174623916425173783176007826567383561370191241590088602219677404464390641361200518206184607192378194453863656746119252533793246931392733498742480771272187514002440638093434253101445330581273066080775749407432083287397087035896808307094502901695664583008630347952359165307295215075683771796528298876264886057424809309577457955979003381363761810599402654022917217066337154494642840208337140359768573655835118029026889378511190678489812093057416492281452806468180006419561944530355634376567154414737276473239871140566068492398844427459790988927225276995966652695961469859791433416398909212905039523202944744880346724801345484270355268723583711383493336105330194176173903917926065756580712487369510635134048625987156503497107734949202866587465995826979832550237319032145734000679447298356481749935052466253052401864867794558239803370127923421863319178748184773535303200112830805513512227832593296765110540914832808316427633274330349158523542199245211536761717925939197154543581875969863357902264649676564422915391428409488931217744585848732035664595490090392739629519360401723142978587040041988902431862170724329236153413887201410817071707366769794266981124846489391286055697719825724726295607775562661327558162775272191131669879539538814498914767416334145347663527705484127096372149222770515824129845072653711619637363308281989173078214461464056032957839338570003900616363833833628154120978797998914585084973547734011464940722905166072781797150736706360009220246278339321710560165681361748734546029397030030026441873192439008903647861281701816804984313699764900748395771500101466409470345729676236112067210131607558162590001726979841953532804614239953117711116694022960700015453934462330294853530737837414885088879180940931797590960078935300621825860128613333845149989524166487450076555798372743297577833322083776781803291831398347445988115672184383171900853511765761794125925332358531344958968884317187730241989396049430205897466871757450980877598240267157013830121705510343458521823108760324375441222318777834203150100256257409791830902162459296961820255072115828355934865405108978782562895862154656219762797642682475976678809268676059132527965872811510921401940654363669135877630133541033885909378247719857358828904701093991021132186372869959438155458006068461657275549844570545856759580734302092274187581734864224356640186953292418559131559244979254124854344205653477401140012068808603284355810592947742252289031422523276811271084202048252250172399582754658139843058427985405986831423683584934893782968635585700923866549814890047376966268235404246034700802394975016120863688442037145447452669956880283055473659094044102218712871898510157551503353461177235092753488168700776698869482909734598181954483085215748788195051348546256915621089557879012790316058063248616954686808413896212238442322852781454108782852400005662179607469979804748638214065332524988893316618215457395295383960675998245062518879392714789495606204412511730238390283273774659455782757505854681809451342670305010234073639298135667188697681005551688515083178164415479341321043994007806931310700853617773004652394719251057348681309489930813462010261267932625264308705304529601822468600974584704126122563757108737931380225746666052281122179827428425565075864732595492907465222688343130339094654852199356181724886907376210946852457381693915253505238916139675844493930150253381890724660318559564712499804784998108215396427665917574450698782363809983934931746691073738970183992116760379051026655993541314748237123757718371462856280005240502927499899727843991421953511660615705781979044097197039838791278096401342214921466514971314304678561007152706035180182256278833535803305109282007061933805079206305833874282460808239773145424254497867425341618304279006500314997180797001163080387556875168361661697216427348565769609703388150252019097484134767617406660932575217431716586343716752974426870673365928699016175009245661495744264161532145834643105103681102143562559312798807230974275399524033873464290691780763847932450553978479626990005621037820625401655590969648861501959119350290038335401253030337974684209435711213944891301415681674929020385906446326741420111168786483873806622185871838206927577449417008075721927342489778875373924036413696637261608413868958307645143401468592056504502043077024762710846937332114698619812880634510950790115840928194887471089947928069761769669524934126259843505856597855214953018312659203014667621531278237401945098715067298404248442532585877724070119056715059298156143733585134239924885720626573183568829074847330807398529793149949180870063017476116894484192679064970155277418666449358618051056190602814653797106529301849405498503510387569561129656215412295842011017932577503528462667905621949758627244375816480189212706319118237066596679838018022825364052498171162774082828632977320288070985791954926908293828546569476378493760633550834950059518768301754260847220000706502916273102965614716750508479400530831839458768202766262899120127363515790455065920526167596779724294977951875324619391218559995540789703259539194100251679962192053390989809095963395741756646990412989481211843389357087178224960603103955232455430656991376500653755560784433977201516361136318627506848456555445294381371513439759751804364033018534191189046447643596581135878043347655715495279760590973157261964598994888161501986289371776227479051511004925240884124985328488404333906172684440343716931309454782150388162984237401785269423871144933370985843591093744530651104978222364476552031866475565965262059725928143509105229942386236601322654302482013192209311576807341341793516050743828783660845878395006799586449431249673111467923365616535660682191936882125932361105154402133847376040451950644301701122165140412056510029718645682816256656635646403773159810059423087708570475260061856672748626640190438261186853199362353902098396090403606046418128460784868508855472839106776892387390057875273443832112860548007981160091679630224076801367526693946255585383139238197192684744888437669618258782627340087001565120955017091952267735982407115364521102035364070401244669908166037097450393075373820865708848555134951840726420138084427439289097133696309399370272513953000845832592814415062215518042228003514121067567014445517828578616797973287566940804408783546670916571578652562150901996346532984079838461844173197799198415365234624802643150663949382129935963116199904605236629670998583000428540016098184959424656295553393892652158493113918418310306754565463191246755288499924534746053629766656302262649695057087387386205293400034720802881047759079404177076022167196753563924688902742219439206030313068257308430430681830877615962385997112862851617222947734461571023922207395953899016150253404525960284506622710118265686185649016195497826945351749569995124650749744849641912577673324806602068787882333818820415714279735643056688746204792003810994697299542044573406822295658128563483078028252227589121321468415563090801765526994221346785996103241371277017532080465744728363444864722337969863528654005606886633141294913434879641244440535208437725866771150771130916347509518553002890034828418109793077180876625641741139247666573860120243055383129893382983123356991715861173343125670368436899547720184878993619737198054336711063139088684863238386947891212440717608625209318118142271215633935694296573357920807900762040199239735656620653851904170366515093958959977211471387800128504749097179402843715422520251056243514499593055688043448845269310774152309457408429480594944503558503118920107309293396261894793204179326716889243818006561782355448839001057759590361750342182988005904691662858882678793446180959268444449198742666621776969517777272845950584363194910965679616512986655853398918957971338420720089537391951644266319342916926506317717930674353290863363140580679041338984338306070403139289460752778867988863850957738562227146414633620903796763439406467555150862270233062527366615014856511439579679350228304978908391307601450165241204238303061051765332313420145624016734650356887152233167572674510635060036669258654762731969959423158852631085841201600794022115915176132896887137414948549265281571320664936671251959306494732074281364479144272319433249998739053595107735052349601030251331923762231117710354887713443785771853320995105934317265652201247231562325102595953352443030253999013825577394898930976794695959848067421040435928886519152658868625149701124925750805540081670947319619287931635355682507781804644891916285310046860177101290047801588656905965271380072639834269094568063922942612231040973643775687611779682029769063181662142287597743728797589133136353599313060289384322766283742761446330746824636468048525607010519124106473522916683180878127950726820867822794004571754812993520055882276660809755260978541574156992148000325414539509939099123321507945680046771666031797154685277889347436764683941478943236282150509385833674737033861583219630234791785700116189159057679184260466147294329017545891755227042220648858757097495384049328874939865968047535336125808514375951562726213662612656306537201117971916110395048872182453904930295174660921877062197909003017156505014436424656194535072047962405918071058306171718218007014081124972657913203805520848682383858398400903124817499606831962965219371125804995687295034096829150203974926218248293912103100797079123656802261404625188815770022255258189478722072733125517904241177836956599878147180130188942166192028548795735254282114450500774709765761902330920079421765104804969113569280584114611961864767035760161475438391844062879757701383906365383275247952322967902584526098159766601527511648161224442861999894948284560474246834342459079180349661734006611227399583954958598482166776469366189131075111353450512863041775815177646098545287532783077062021956573607916585122944532591989013718173352436867961974666680652574495560679999682574386760728192089336309239201817466997733867451137652143226239520879971281158919817936175901899893056472327102606607222781928852826794593139486167994805720075840161852105352609857373313862462705703348130314286027243496843967316167497662089267991439021560252848158662221689470194984398806135969758055562838529473635407386247852203916803714420216360979390845296468892585642766018981326521119957730263291771548979150094702756958548978015929581818357053248583047917359406170286372199770161278694523015153281509960726827354228267499928144670246153742701282702905123527518580895709415206505653386063629234316148573413301698241336868106406802767089753876867902494262200300801906964023432488518835902780147515174998723625148610005203106782747481938911580051056936225264491407121031373706976291402655095900980646014413097875232554737226094424503707179923428130991946870138382554739597316220502797204413418081796179928200948758314872139258859774843807895216204880676382845356117402918357204328584682877216908062383498491333711117260729781978217892999451693022887597102976174637796638775726787239336238890033506393745706894568199116269197678847855673476782998761860001907638037772495544273314502803044686574838045807959407045388635650658719594969679348152488741539550732442924079645196728029172954884707853045017816082904575424004840350146507829356604866568282388309094813012385451012405803336775442182806321342579347977213255426376509712472803839062505729220451247556825206176026202331734083617148154030895007057696493254712723494059819099648779858206534469030040456379567349129742353946144189474770927040733616905438086736603952597683200246479226896410097349448264440198452193949631548094801525904991158558600055219215481051665550036911944932500891230915244097496309430475934956350160288200513361080241420973270831337771901666904696479523000115609711966032414826003675817902149623677174427031549475412591510911709929016138487336728875311219629939075336709048328501009672080058346173276011507435878486330581801305656173568748873763869380422970622553190752441844798102745081468302577573915478677756528887770135521307104949090803611072972529653630328564274653405265994032652302936717112092664685966177544102953104123037114461520441677448590388303540596484571966348522555164946247111045288586359005744335960366876249814102787730013404619801487395067714782832444724113887187759937460168364199723878026201352201808339478144261131015035166750380613606692006779178912110186706905010100003034771503036690939970220297613115904631848481758006654871118279302661878244881037599392678310505946883140596912960815275902529138496308470068252699310156189624997134382317362513916746329216047533343709991821703592674854689695149820438723104234852486325433131449774323576480095150309205047689836646933471941605217595106729981451378043904369902455471890164791223611833979154233640810502028044036068588623692533611686624393553179410065176996682170962344247005239654191397171926325739113118341364424687320974617220101377106067021703143741587293122992880317436624091685334728560405368016637276134568587600894954466168446581083035205671368171380531149954431659147493374404870821869460223671316185052608087036711868876184482715680372904106910049627957932584459993358646114769264627874398911973483854547884057732527470152848181306699730951589193563057289396581300940782251891926069432011721940548042687337994002369071996833121042671102037768691922323926592191526743887348498127862626221565281731886141963980757573100675509459431974301279301052479425911376114332607423677041809817161472473151773905108936015124791494558274689511777940023587587475270390143643389438035220619417225801504828385024425358033467334272499595335072263599487934697577853007276054409082828535607191518044602436210632258018079092513585141131362928030392495243374502076813197092474624030490688046894014618530397829873096485148059234254825500152858832436060018262560071972266663964732062551500575391696282779121082855543417517459129432468839972293126500770023535847595863913326790687366461049484454888177944675647502035056975688269806102894790223071269569533814042967289067717217412293612579626634794907629506234312552831982735250516904699805371565643289380594889902720137177771271506966152963830374109244422688365719628067454901021548295874844523397049944092680401198589736356731989792081855878850521550064988550629531109041141197812731487038422890276663782832922208616521789827530428467356427487704123919214004481534144961230313892472310514696026551067747800595330836469376922756156428299627964769645153188647261037711391679915575264779603077944783552479673649266035112303052437698295976186622263877067038884519187755329872175957897803184308255537823696176888486753924847600162419903966192924494992644273489983861916813658984338229670191882639423336222087810113200896364985503648678186149398892319134769460841783962668084913897985007584416294348456975032333237098390891254594231812668505044687728326758805685596153987177128263875091560315902656025166870572740008294366885816410638940303029698783636923539943886285237048763677838554980336699279997208713142148217192318473954657760396262850855032916216166053777528070330587911027644688293313344826037460405832831832832043272335555093934424612894220299215010663658256401856723989225362081733590171417105094111532557748951629456910944267034315852910106799479087332441419077969425034003200572142788366479763708102393739576983680327362470445600316407203695263165641951506406646918604137835855346379938096758225995960909497929919595315335908884010439852684940076398564519582536122148907664036455870849442139599788961882395157201103996866416968303874865082023668427221177422691402960735317476347660099690377111686085308378598835502000258093725600340631469077069732177184995187297281119223026779818120370666713716270545942932078863091560570545115959180016990126444020798072261568481216662000297433903690482608160340407865128963704170005979325707624925924679498206509229018718502143834070558359879151088507354446985312296067500896872057378060948040530763827253750026900911135587236051793053614368205701959047957782284127511153233517184062071762856249686362580630938520970443859223700473902888436842243191867008062056448436148858460561061508274095185572953478839621435774042954821806249725768481213419860189947740305026059207376970074065070343841673493282421874939082518419119318603340856140825285573464771257201897895274085180295939517941305240722513915323086473151987443462155564907571131238151988469627934121278437793657740829219637432832410740805671921510632087315057501598286035409308793939968180610160484152677377363979364487667289813442271250012290816775422258338396903690431761315884849157931521577585908617647426932023683748342578554466062933764681690780406474610053807669076884586719817211021079676297614969575991947790552947450683740553040449266293379899455426498873936730121046612995092288580816559901630283825683826442378736616934660163032430191671562091310088153676153956478107710084115345890334054601019560248037589278632270235580056633690942042148936415293074470996711157942383557115683667021451723497184916247536985916873701151908040014261406719154940712397353887932708594813313058788722260591291852181444702486018903654876376188825561059569431537817876315697728596361389715173918497243612543242876763351853189514511220267100284114098352333233604695509863302645740781144907450446148703622853390294461805738566637556056618582375520733220167808468156031443938095922673101993530906937363931642386830476279557727098816468625652417519956756794561605828790236536445678192624245352555724822754212945842141220659391283011789242969773449328989448288651707135866124429624701852926716832855298498047040104164295198497292193350498445293130798350374790410469576469951452507392469286036416561278141951737740348009677809928532134998872472461303197634613299075670314543112852583020709013744910562491146107785604982203851885024804688647061875860025814340373197092752913505995787514622255333676204260489826113337682371582689503145144170488451219374378715195830779001095671046300396081064983234361070598961235794575540902628358201177825203535981241344664448085383973482905027003974199576049893399537478331219285430091036708303997821441253698269360728762527878157088418920084198121716758414139434737366455679274739198004089851359250231937130382867849011421378540706870366170247758023916099714637813960481289053170352115005009169377945991073921629863000304047023209581940849657277662974684798278738029429324732765947332418598796360898577307200388253145567284410733878482675015832909135041572573552642259757759668605455464752204718185972959468798296982512727552590479315406416793449090780275698063574751250260582556153061062722619259304333857010552643602294185086748719688015721597441054003764408932643358224826236108025882506126775813173420274853946427983787728098404168785179939826148274940756984888179239495365258288688741780675265665461068991744783398213149258223920737473373203894214952788676213258357877557779354791555623387878907633444200886776530363323368904358249631826477859490840832935573740443506546569880217368687055436797887342072047853392511322876083712954340386313534059717929024373191958395245504801366078099270361303105416451136670864530376716572266452293336846905266243397022908937066920985304284369078555653063016805614579623855257195178899795218396193411877452828544543978580849493850736240967013000841058713396490694520953529167758642299329787809145895330595309884974436179154954541118551259788604865645267026350588465209762630693091056006363849735023496717314152373253028063837778525915470251849072186708358656912178969096344478375945213591287373960360635956813845587066824157271332234850621332349672670446009996197216032993046730037222745260455972731289163654647254535086553928557284649486736480824072587184169975236845701595996905356788625106175783677404525262216310617591082682766295583708484134876389783727017255124983269349811677074133292998947631235576216943829454218767922021722826408961739496126680599016830369143300422834792394353846707772933685718341474258394110093699041250068738486765184015420811632955520564897575882333353274080507624319770975875826684858047364768174461620709558026237407552547611779570847245815037906841130090266646036501583604169592613089358951049041433918318201760245543321424624316917823417058469946434935737999871754060478357974466064678881519585796725436457443569923768054384105510641900686887866972860225704624237482819317048261228425327350782936283416618185731968691745512436265248417848008478166236643935503017697160441440391494397798469134598492355732824502024559479965687943945754695182276221756889985212888221694165661946069765754963523876002081676712914917886185749445389663072141500856152846704674748053866002975095613333060620839175579510578579901518271878728116204750353128664120322416012956419339846733779713123356731304191136727327623788360153016200536093794981180267023270240250890526594324640135040936810851228159995627485018786622498319879587630274122126005648914764738319500768648209357406116886019803729482367504816225050113279436716658003772102859361250784123994096142141790450050994404656047769678231464733490021826183773995535812516238825696953308180074803344187943336388287459476823993220330393516518405771229782793361725375150518011304063252358897992240542741744437065353802810554221225576689154874357351552404307889579317558241689815225074369602469949731609373852227249052250976543755467119099129200752118258805987423858765438623724796754537909324456692801653609816241759432985540865334889868849586138871168546159602376145729614664829962104434622669658208029708169616222390556176587180384859762271807609842425916803808658110874921915398723227859787016523443876363322506048977103580299352971948532723160157426749057551007093734411737994244193671269241366277395667919258686714531826137173989070280097374624970603595471103008448738441983899428080591202595456136837044882164956150476420422184502623399245910932172327987709412509457670692777121920112419750706642466152668048450913614516207430621581376561951909535517771734597889319453670026793147016925432038597301361186290407598815013994039534911538005669895573108977919948047557321196825961910482455869285599212412337768519220422160274263871232509689747742752757598099544260483749787171731990256627057706535421305688335878878598164553614674290924614272128794567936197963873657746600152241012606360866085832724484152096048924024148003513180829828528345093669330380437170027051757287999341543923277775218276873893048373401202263679347062560620740081953867481240892645959973988623838892677693842225164491239398633224593849778553544322209262994772438889765679586669300480700341977907964932437524399608325803679544331069741562535230620989202053274470528744120102858577886793388888516360115756988511137260881701789679326399052693467685907328554926537441827244081111533443115590401628260775891387535548662910471068096002729486969330833297855284486986425093774963273516699867154095242919168090609786682084328325029237704113269123336063659178604142695348714046815184705903094090666753757663606546851941703212584059377972419393203849996957699975376594959891932579824280213836101577008504813441120630862492170282756425123895871708484620355233814649860601707516243007185760439499517054941123287919102725365700360691841312460358731149883488236337855616923302572569198967401235793299902493541608213855855699529069883413750059665713632883713905568749033047620629148457942409467441408296830796418611376219863465831717040363557364039644352065948901349211291939643632165462481880068544216968612275853773962166412208141725166569551030920917399897138171944072834103876762180023254652124992778833996827669560044636085073305040984303915248318221726739159739813396465939745737441232703965678251331490122008749777216926592188632407214650515162564958274533472088854017256054102153150033618018592479731446743743748765366152634422657398219624395083459717489065208607807520932485184566904645485835935219337067202656014339021610216998273926941999024290377037701757226316334810740131256199065235620743978696159783482494439418670607186201198333321135681251778253354397055149409750682101174385919052021900047483658968849491547424607942108616138768777563628879941450021679023516913145539142802685612316871119188034518644499662667292628740848177601512266026705306846572001085892207592283281966510558554867817019119309765866976166007163982327181712596148626572645910756945671305418991308178206320965421520796761673988660918094313401571891390140362965011981995064248177470682878093609248135270888701317411011090011645340780657122424745784293507302435851261612805785528156265272140090632393350730414145039629826214608999959468683111701410351423225078862996727241208098074020642231137193497268775010102027310557713188335728001058477024460194266971467521181210994702637969511628542793717306764864861206300816906167184808231879007091150708835375394831829230615553256429474165321011993045303597883857858556462763066801251070144121665580914041375594145980385365466018535777293653921051422592904100463765756346419765701144121430967746165043719247821490508667382852158626160017705445023991793242813022074964358059509467929652717323360086223732895455642364834882226182203628504684945019608812738973524624489945534755159427487205221450583142339725136987669275773593196205796315955634543828256034469900665808296229142046509654642336013439518469733569042316703479486568126461104946767856413168555631861694447661222103290268630608515944252990566481716550282676671419078932862230571250225985619748313066736574792826644676114496988830026172413160499580801073284817259676041169116614150463489692558594642643949462580649092916429511875538521464011989580009706716610214280220611237996735788576099203600256151856318644069025148346113030014338341325726344660395083214390474293700995166655666256301680661112862654904910360515054686628405449666096266926772256677388175686092784973267181259075508960408484346368489055160955849974673113469171538905679126541066630315949394370865985387182490856708621923108207759230996806996168822300627291010954841002033764046803918965429387781942018717687820881247704082165630249484537684702949409125427907580514045369561238852899038416183646581217969055365376257704191645262111314598048336208626916768610741267652683275562134181682105995334919972891533553652369669359009750330472891203456152300898984370453730577337249335312375739612509324766843960366524744710339343720192290519448336481695910045851515503108850849349789340310038432147683983421978831227380345199397308107213379668272057218598615204151197776644826548868764313108380289515821395565026064796131230032768486178660383538771923053974573325007599097839751810196984219593510073494574135470892230296042867477139353037753725374205860566125670859858380059864891510665337201242582510076179346721020807858096962733603054046028712923041680679738660031137393590210918117371317402782294148775754717212846782515939243424885119094268243717083525902679584991562415693279887652919042400910249579556892932162577437733598392245058860683180974520544765594197911352243156126180965185713291942701483885008910723032097068330563995506225352673931111821364757049055834460945329210760879216039468600742785945696399081143257908837324997401353510183150406381516945286180233077364778430254609070856581546644760565554220891427253548958041469869493142994488632564729487568830169473405281464702220104128409208979723707006078447368067335370270121660332505230526337838760197464510944816635018871629916458182260124033257478641792892582608245514649959800295147040585953342266787075598761013181094989574687343208372710739286780276983376629880629444137610334849241675132994862855340771121414475084786444400127173105708815538950814989583132822210963063206190256105318727814054675075619459991023041715128750049124901860683342999510347595683017261397981534302187203667872822635625766844561168902583392137615488151609308204842397969125454361580401897342790924481066996251647819342600479133477889081139358053754812116650193531714829314189543246714587961454412537574928814607247191186243101295649926522444491753564756868877921214613689103087322619137675561004293382504710239350507390676867351670363988951416909686032388068263004164719921045420972232448562425597719962337598112163437144276685064626875198377104302654256227994381882008717386758643185681237280049582797010752178430433683489488029994919450952095168684827919548409883781826760368186790739505479936410964801343722775392705866072076697320768812454559235178085120579746464507212708639219812501312704427427592162687511348175581314337430206700822746731877261816563992408991274791430207460379752148156612504972687872811689618902538826844210538476100365138458944636307745921654859611829522494990269733241068816735091296960224335776801888157057673889872443549776953853552123502317211956714897736260343378463215106066557510683692103842668463294648842817042057374427957202192790579352844512048249011919855742675436381321961658943249239633851139282359661903742516274817903069121002891050834559818196320907748582246479755372286900835672012628623667384050750892834217856603242329460343186629640932987330489771652923902532230914125709663668307767165796223460528617263692481963608896689637535953720057934639734451965626352634484589610217360130220318366398328169023669923213669982298402233407896522579197910602493024755563863911346525635857431589320617872932162809907308518645790674888154404558459482284641365595839201163317744985278859674825159844900348614603845246534172183086195168058618922333118781438887152796227244330095780351801776550431458645836677107753998085341455258381175951056867117053380619174801027145526588701955121628438149094034860653824625588078457018839296411147372566295575577627448651475152044607979379722854956198697250590776404875644042010283755823584263820348216982979244863575173999018035284633889864535209482232173231510415014918401874805745543941999884717026937949500654358251336556158815425178955790736718188074632811185768829821424436221336775106130301907480616904847346608685136797709597664430081539845466907549063613070613074585335024727010868246686843676572532319643284436308078592649270273030956456277844419249772020768125126151285226449627582366131579696109729972357048261866307509004221441543996856294032791398651351336174619862820042821248938334454707804914443740836638934844155117727391487138573141775444935307707779871899846477287108372128652719739693011210155620616970154966324741809949113897874755158424746526992641696440885817524660680791250210407205884916401375676929844678933249886359727230416197162809055112853964219417504493587486572136301043551979015596255882368729419242381420882705576126976840051248040068945169658081135356576018475361662887679036010022530457204861534029584690096421985144442247651490756197270181837078409926489311494023117432867615449741545037697795995086557528262673971373216932117898084331023421343320782229744109720755167714974811505316930418865118406920548569677601272116841933382002076876455197206909666997138049032280307359047144794557088430295867699127865078433923850831469914095395062473805247219749850856868672442256743972115744337746107183985042254680994031742187786341285221252426216416705862409958342335712662939464324684180219522344495932829353347834296468463240741007117486018534640324828985939801605025520392214931504647840178621970527977260018785687152284065794617971178740102489745952579583912667945347195843521080621066458910816125207408481433917609962768442575570305063293363260245413849848024300646837927868341604352256691932103136994684991196306037640428639626273014423965871553314079312285402003734438615177002784744046617607449430529798229896699806787798488953121936169835866277232136160096896107701593545162983284784682664554672699446097024662091146598884951240444220120878348286843298849149416700397217921149187362608816788627349170260357941380333511532946555954331833239854561461969996726713617897874449019064213142404934775285562116926356062871963141773370427011541289875422990753128771114228761199666708956503108821776171158147634407171346297835279158745741317321945381359970249395698564101158926702235379181231727556235728337004893276954749397199394322980014937386973590378254017284964845328525371672450765942090450243129770621474362227122481389146117614482010409130082750144028494125200579843520071730798126705443022568996647945817134968545279554179138922045657825067686768193541437466657459868850666268906961260824422191734239379187675421387788834832116626581957721019786155720757493132003059145983482381489709651520784078262019662921766076237105727932557689041881621558305388521939406585015005327818823907216263926164279322601628167426404070645078337073850936208458237326561553727967692588867382706321956452771051888227374531825701872484303129481585216286227253529793941043531733826459921644843379248380710254042154128125626782279744830204064433055259593059654962131799353103053840731033133903713719182988464626325916385234933823136734215251966842479241842513066109669903075391381130457988675623847147387248236055132460709788763012891960743224694731927835826068812940917220557930788861558987053400686866461680967749009133231391244062771519509084788724195630006413989438126118373555846808534044135820958384679001107982058579519859277636173867115302742079080794892325089202951335183354501791981897456677402368423410668358241161959572567800375448768910850281287101661276190226904634584687371621689417367746010964060939527041316396900749517480412110741053280711600952528942863639989757035706150551584842830153399782850406486822892357832644183856714002723857901734427815709433217850086945067981921914889800053150921942998583583973161850981483274739032462198970862947014493502219078981113105465802842386744395510815655624683743541220369103451929023821460299568663489784663337151256840508660882514025832107424765328472439785829153804414733545028401364044070813245570115977962046975022015913763278300130289449602725251750693773796884431136562698784317794377068899707760243769254686000390388676344018540355816912360172727488351168036624835449354477010603257229382260125375620045096188945432325728190134910782454687153230722950147145371704132160819553330878236601791427157996521548808072625918658945263952886524407395042136184593581943711942951953112746320541427281512278228158614449936407030491786331202989317802209790233055046735713515575337479981352781602844404587892131250076581100408331974086825227124563310894154107035443121883391576603186953524188560353636202650215796487456145697346889176905121872432352135926843679965446830927983287297308683470634471578742357569324784617842517907442127202287901685147878008609486617308651280019031123232136074482255585988836379718147309869496467947535797940365081345289963466392198196525494889558407609206344121391667952030662758192452337682788186813911014833648961944884810964240044245505488348101163667689923385542088349586098291254178052194028816182630868969454856571174226278339731786891267277917373148269934659278752671112395622923000237229074258605399609363503072937061920996263609809692331736285810653180274257004586887827410972077480408532514471673414187869951175881148195635439941247400781668389246988928004967251377954613812837936404814326877159029776276597602267227972805763472399698655099384168457647076834129314005329936514813454525109159652874945163551837775317425815749781907291144108954530101849433908430916799432739958081694176926398037232181711028106870900839920186665866088755470868946865828773511935070044098589539625735299654084425865840193985944187353641658305637232287584922991438350066440894936987219372161202522737600766050235907992577900747122647578450732157479675891872184136014737656497710190614777557657360769772689541510051832122200916119923453430013516884028404620708674961329793505095753945992367779072826485633459829204491786691275492361335942861835244666491007093317802736284512873044138607026978616078855879714018662044030304469086013441780418765597918816206684798549926886416741476774926911357037827772184144779808177600777413956180531335894130188313253187147670979425542470554340019638379369723693419030000580537949721666642761126451909258824307303119434274238381662351255837390930324558382214597361195499678829131203079959236258586744329350070721776827547148300949530301514839655702570045435145875601378317414119428105429682386389571585635431114418296104136362048232039159293897663208275582421331998825119180943270673781255938273835893674681920530718940956995879970912122773458068998007444846544966332948752254869617681741340048516049494427742473502045125831830224050810060175759569258744618924774525568057439615786188250701554879211347267080210188786008701428990522179424194768875578064690223263146802221684226885199816028455980885238973134051066329943041509176756934882108117541003510352182671483011196811460049482537349143571496757251568866724496191597213973449967821879573611144065157764511063387154915006584289505968111490384260415016601996659331110920343822935175012667777201538189820453967741497388551424097025491880170117624020120717934622978551266059800505705389206525033338820823269886262029547543125301184801370151812561631113970685723726552172601957724456821581989085911700023643146461062422894791909598377266241858113718632930484509204721394140564935645159751313721743935911243941239773012257655140980700307212563606888303300023861641116116112507554836872576546489706868128424490862612341852647092780621725825983521625196564537764660176301382602943783311549877365915417644988939452631796509174911731526427158089445796464489603542057682897311806506098422610633982513305079611916644660131985194607522737743384287570004531329380290174991090076481199597532521855061161238998588929251737742461441523967608562091778279308568571878412195628976906232367714262617596271301485291185966402619332293782514696608860952045230520164050962606526435607446010189039886869124708062399572767931915303853885741035677954482289537606881488355608643784943453102068702124174414349151110549774427055185740677690225343732947518005054397595582090935358503479379686183045716809485136218714203877755549805357533105174223448435155447550351097899926791407959762336388080943691186695982464008467933520242942759529946493762729079099474598354571588633378727447628908370432435440289634645120829806585798798541291316789192887129661568679321190491573845514370260485112265893923974664868304912267331397537868978681873582752910886283738838003498133345738628312520060587129846307658302416087359147397707708094500736645445979660649205274713878494979229748710887593105712780286023756772831409365059019276232466491570077440563617831468952743671059481126192564025212181946791440576284157885113296370130041002895650383239085968707438257187437380771333513058925693311849255177171130427211721769556601268201555317883904157983383652935378303160786576078315539583661701041283207035691181247407122403187534645525977200529700299358566349430503434108733330421748082900533043821482009590403355766686580203564987360241979775490053913142491450671036554877185221333393097807394373343055073787578864354159998641066025598575856911297760672800155266270220260644957072422575646632299956939491207423487309665573000038003643646086464117070601213353804871460776199852280807540314057794090256534928952442002128313525494450690388952319081187662500008018225708536047400198730741988072166548409952719158633117618061670369901286110454269203853836498111347230934978937992284954928607717306602363318406699427010019017058507161138214758131793815528191505980664397293497017843652198643259073750960292000732302727551408969786118790450589346411470268327319604539875675968809131028393398164912861169698453119923386400420279735328710099389193968024886637489657142678510265138809749844451967956139712933015917420919651232032475223185042015076589830655175644805686803063023217359312571971063036415429783221568709328550115082691329200947116085556592285079020839544232180886979887782829339318017618993564333175781625727308686402374527346817636458828841086249351795681193621929452510455039448181298218762774133327524443363330026469025470283528523086074360701790928130956836208366512074334077214544528480716146585887450413373600362808755828462359202039112738884664682676758826182811113073839819500029749991578045787395978929424474409202132925859467790457707759482011927691647418174049227151759342236673234016498550823265840393073399528785925689694133580379395718536484377623916731312296296283064928398187703320726113015383636730142770980083009557031925985281860471664195976701720708173258884660431464026322842225904040238840424010261930444697480132349671187736654889534621303520352472908281941966186060892367102881005886394743171568969471894126815998697729257199609788465905994038487902155239868065957157318626294375238214935285487785570768936472686890109656795208803520755561985078046537830025856992042811800270505580112323424814071038697240838032603574300548203149097570020259457469980974670603459704042670640063344392403117969139606248768310011128005146141782278652102696868295373737026525172339626741297971915895087511424220071735777202547785956001463054783551617364414211045010978000971668627873652778507676428300209823790104249392150265665576833619064211452410030901362556395790006369738336286882193239616112053123398025375727068221758954825601574196895015788918102961815096851359372963061718227266606181189649991269848702602528521775726840394587879420293259365305709225407774163357151314170559342309919085101252605051500754105837542940011787877994290166813563135455373473262514792573439282994130575242562033451472310766562958713083062032258919285148186649125926516646712164487501417070592698034001932728409725235484902373747725679349857598903130883030283490153882418933058563837402154425688769325475866292195162073116941246021451692258798477416750796854992333553921630305954665140746734310600476294969595631315969749107270046143833950034251313848423464045874669881661047584102566735481429105252463794190563067443922233350905692602166788558502059599470175049271275545537066369136560126705216963517519225516321630115027081214521623343797109864379394500759266896093279029782659623886101382482192924439024771754785289125124315472811804319848267928763428928245421815417768583930866008196440859216009465395903195471111044259378757702854784938647849209737978743739884591582124029174888863963319298553633043196700017880564438739004828809954312409699683229792749695999885773421979585810314528739356209489413086060715259170683447386251854185071280098365862795639747035182197646172003435646614595594388115287124707300478588885152273174242659351734835405785635912092800523443801751371886856676404831404860008366516724905276426515982875686756997492518467934461893674145609189231836507447288935314127212782597595486927954053133386555211484424789439840625205240915708425152063576168034075921290243897195939029359951815616775782538404630458780048812112241518179911784505309496247316164774917521951712998312754574092503480302815876151309807423621139625268010870056562424349411396218928750059899238989751150460583687075552634817348699910201179052446069925681873048855616198241022290141042982393888645838512757322949650365552697521708075198781649885521750827233186633698113379080324855176227214639876452541791818573723986064923399791172497675801380821285351949496331181829338026845159681203601333583710606507395776591574322629140404658591161192156925768974267633977416988408257923417320448868147568032878490235909419395322289735352623295730021003247850925173413635168804676243367621044983496794047699658473270639403962479501318287384420403432779629009963442024516955628792826803689686741481900327440642569331109397563200178442638864330319366610342254233836053714894276525924402066871873942320731679117662980081635162223916703818793177428478589761731309796190283330855489717958152606680021142179328447464536650940676975113750694763835975966004920629175124391949888030347708312645889935585880801121023224379810786064871796679548686379657111570766830223091273241774151423739368101496062739809119773135247704216555283029749575519694457802374965881728886549554786003903373893792951125070392309361769196769353185353639008733534601690399946073247598861546855684468624883443505902129911731288361136679973276374799862807678176624146012329099583130060497014653540481551532177525098988378549531795817277544489884277674755200458427470505896676676126124279243377227290766199813496579183911169334181705585082043932764157692795458582319243956943295256140771396331109291373993735190144972980959155699175926090787047381297742761916968757070581323941720131832137524558133350951160346802741997982333110399106285314856574344125723082881781426958318232606406837343655407970137931576588099624713346945553247097269048285654916199340574572813026642449229067980107991998478106187993877293463376603432984252145523307506131693059843952187746850073969348916786379504676430043944262707104412679281483018516247659688920669263105883471258015399129156375923893754465739045728483291106738102878801590842454711039875990126017977516939592850121615661952256758399991433292401970759453052081558291371167545251037296548401967175410204835903767606477719852081184465124262439226524668323792713675149703383918729457730750932031563065542405825427656307063223927531166113938431430033448575607719800530309055619380434869229088686931507276659977904536851005215650588163406794549768080535912459817806897858384418964738011054787594167810034704455623474947930763205622882607324088356836311418285143004675321226951875401468155023257593004926828683518762972468191406197255890197051203252825683471215478434496863758855143064760129503489699154285998639911748447532697415353977170036032718556349084214779564155777775900803605343872818577625476967632363401587758394601605680464273093466848413170041560953302862303284602843888068309917961577155238987220032264614369059838455185145734912611186129527814103350042372575386265383768136679193470862470427351918538633358940803059032889638021194409391832811677039503939954189036661328602108579477177460913952513835686366473900808332515673968807389754065177891605702238981130705189357317829152723290984260802324476862532124925442722240888635340221678260900199348819011412078600375750199413646298483194715036069291406164446954945123112155751182732615604763839286174622577290168164728373178078542347689002622822320344351354322689373509084197957053888192556577935269336634209145878876546571391482782620165307672095445175753757778913293162496659655317417257791331691990010625945836087563960216077537846898026549184114379210348868086416149954210368463611640206686404046402422884535970821003334031602456767519087866650028009739413907052193262629925004206534885802488497484404703533100673446144684408504915896342219938508187253705019580613043881616243193910556994646268532631592545472132056730882264215134195365544715849056144799160528042200851073837118260346669035951777780784308272951065277807772015490890836971795086713274263809806677611024580455528066462836656313975834766298927814364613501306631943004632243507453420664683720568574639578963283148906714000495948751227483792317955914223699408762463954108489666958109293053975999676053941768492290853222679867106051133488578828778147479647003988468018979358776898560402792753822790840530842398964490412043330924010971978484860723467330074891176618423338545384819603377283166654775197832832305728572500026833796457125791706004476952960301099106431895542634202149132098696524861638078889538154212148445143619622264834939769437778849364877606405590457334732943499031379600246751015689507511457072537482842764861186590615711556008039282822811173768717687086859622350400739320463669513963764285819006172859370184896303216484906970153774157324233414221684627279777488959710572586863241011217691678836398786004873810234788011889551584122626431116571787087013849454558083674010711838983157657544620890932616802970826577482065882852853275006346106521610639193757633369188749503395541147348323791125814643267269388241734483398928738338165319701759973009640722050472852228797393819170319147597413884833166127225072976930386379573659497558269791147012700840236983931095847527975642477766695492819023106533515746173377311408387132772347119346236891050003722893883661060950619466017397680293938448509003139935370369697965183519501785834789236405640637773341971747865172446792697552421980708430652052367996524456852273772441286285498058870936710291184238711669595640410224544911355194533446453756375068443950212180626799951411831365468060055253923505347602036228047041287568826562559066955095003473104692916113775553077757446261463071273793092198722374860205935975361359890518819540684209748469512962518885525301351432081684193854187808657595747083074804213884567454227850606639379313528218033711158973112971002362969381629345127557352438605937332753710698534301870875615511702856154910568455871382315908159429728268969079515821830880677160002357350582898365955455520718518700588319809607382104387194846599448438377508288247211452622491337548225388828743446142916564289152446946549671765288255418349573477820090686442618555905118802318823463314200934978462042995210297138263348067889514444978772596356974788491438304746904774636259891907729996217898777969154822698794865214730941963494254598378596040732470686250405812337999071283325907657703309116750148253449459050888811978204360628299335684583050172532741934594032449848675754721325050244613511052589712223390696279132654622941397288970570935173887951933771561954009151786936301133785343228269046267362125052926420743912936834671014240145482804132876869332636934360124716293995126530839370436462889684745307023957172542527880014959927827912598768156809091953510871130150039107587960766931694925983967942405093765227312331658287542300210912167967466908274195784951796378877948222527108056812291551381600304426577894726614038051459511921208559334936178558199254104110784467284561733205396676006684877140298160856731565933852851892643693266670112299027577339229158138478618953261588376046235212012345645713257921427965651317624506035378872700850681037481139432640792398170370665901886566161282471192844548063012850464364222665055939107286556836161192673843780706331690940398292589690875240979577137493530065405612338115900076090477644567419174842732455819641313662262594875770224213218378845278178245525613481445688024094707275318827661617074450740600545773104802188352322450022547080556043325468341237095191118757574508115117574742783793258559460024252221583016371006745319355138223855890000255923988695084574917851761102986889419120450232338560991975396601435561588825846079607247459861546868868797945990312796468988286298222909021629269618572319708375453311816713719032687567625552832622008885736837965219415594425218770851145361577972681423700753190029177864044702209717075810075614384953065256829751677265890853013442960072836538621361519835680789734211672829941584717108077261704089887003304734735743799925202648585128240761115477584255640673063358949211033129262266230139799821874322229947469471203796671452100365890427070178348019374742608759694736101972989595777419918191900079295871622912519669286096735293131030667726577340979207863816261601522945121149514485533481953198031339455545896781622791768958388884491139467606761944149090290459527188521312423169770968205892274314738060242576374435426553427621573724731555166347846861369248527120760868428756332480727173515286223658598931274583983170441295122280997113953553612763127007057610573209924633489049294635673175232671793311214788698793090320077117251065038712653567758024454206768225724754163230735991908644083310305430011984354176724072646853254286264511829804924962621546889870634400567226814862342266224907374829915100245861690769875382332842414017987124637672448218811638711967112159267933560993154974049613265077280169135988008917965929850197967339059892927426683132610840237984435030451878119974735597873403826996272861617691154784072987415349854723108983939923108871507113132615651268108538694644966471249439542394885186979701373044196082504023589223553693737506817082609243016508908664004256832050197003191943680121169039485567986851900106573212582471571973497306699385661387427222622865649208917750247099063506856093245031552769053573734730940415504649530249340324654160573173453294127826438990747346122278555563983917274344471574202460087620589465064023409742712835363658233021341488261742681265920583477386734768526874088192896103047810279348220499280290378525853591486075141788048765298630622722925969581048329117933831862736112641316606562844040729502310593182835469709618258698059557921629218410574193871452664447109343161121641601329917298464524627819295389651279571089943367840006153844962055475176602819598002892669987619459694720923907289748407667820825566866158060903276546698838068982848940936987790357935039906432226369672655880697196243183306229800740066068021772181284484329758219524741666378848197090850695565194114796629264825168434442923715447310000152887184492573462866722817958715480100819740230228069313122431341693819130199334529198994303818777287958585565900950221101222771435042808834266494337100470411174995853801337414785654769902228168815566609193633188667491011568143411551328332108719700562895548802233865543244345841999770069696678695913757827248770794052485750497041161301601761708730245560679426920542403962481721215968160520330715707181384222879349165125320213397246575953603817781413869604957305750239954412397431330841478324254277261303989398664067930695950662540334223872160381627526039496692394795752790435153839626434470201570722214019117322844885907885550577881845327055705475021642842464155674456688521365066956242559500497416726359641615605492840560433827963916666824897038392612938691176332670527735499550954536085761131818164228071890352300907034914666867889166148922639587732404445118602682735585021616409070205615858758945751963643050300519223084553496180348276273749333855938159332606087048084008033010519445465085325343300136690651974365119379164986229541362866609538057326068480140217617325634409013500903970655343780392683727605940510609318353760516654148512090356339067569594968899781891040723681861891827075593928019956202565153945137723316343784889224984837900826133504040243998733985820925529960136563223268956333642379231966507458554065195427955233587206675323025654499239601286588044078544535988203911152538813821455318430613728142448277290322826620883299147117230572009010957958796789797211730214924587477345464985637385815842332145097575871223908569452314047144725678260831678215411728786333111760372746239160601776494595426548408157382505689912799471048223201663253395672297973533910124692096589419709321866894609896010249360594536749343409838232518682067069766256917543285823882451786270214061477133123220512224058085908598389534920307144929655281750585043688913253720242096022172925736441109147544898363767735448459134331582750759249526006324526082407320283777450021810256882143345746408859027663092938969388344666075387499581361770394515024202895290533359856330940716803043041384283301062660644602156106464307955358221810896580049088677219777624881733693115152254381084486319276820341684117087815902753003600688357754544384072081649054829361566543359213014615642395865299399400768460259074520462446829606631926595156960791951222327490127643394532471197268707017147017185116157138952606038860110940196518159771520962388150724396318299846613219635280990816761277009110131425569750199116785743786967145338259662290918953218660846748972811574772977306435291448364788864534454672636103206572020218485579387932137649426591978924239898504426483289355779197511210504579078062395687142599601060937405937240523759991934907875756189991206077955509854139877477877936999745636979612371359309339869094551531559375558851651027970368935672887019902391457094431930823626787610372088203366192805643933110103675231807073918416144443368538827469380750118496768920502267957110120440269915667927031129929573564548205475148129060795469727159264345469447909907244783688393828487024170710431276561953300349386376636908295895861921941095157972387289245309941877619336252932895521174928875375122019719839861410768365038497820585654647703725007245924676133119271979381009708884922711319853929403817621462286782387735134316382107240349080999376499891021593787885605139458769586494123042908232406059021594034465382226416845277589939944440488679550571420168791268793748983197084236020767606512217167676231021347070085183637597492090007655092878883789929412289784172669914832702690492221839103381777176622575619009879361136392083357610605472008394301840823559280187612849253981630791787116625105040295102612802381314519193959867688870250360800640867963000007083696710734534915081568695187141879373457589394448797708676693592636767016908965198277722583573283569034356735004311060168856189526019834173766070165329709386003538386918146462188119525807315401902120725144737097476664759167796341993565960950788257961365897846882799209840700550616939470710931191651273691908498445528007188835099100806017937973896670277038187131266990906070307491101077613487054107135611106254194091190218799274912208923844568823818157223195256686012639309666797814599113705632196810604449553544994857636381636799225001927101333577014696221093983393551623361886743369237802919604586006874172840235934575249310718061730329228908382993928893844428331278880753756372591391998078018319069573043317942666693550701317647934174103019853341270221119090879483153627100929928381245072680369455196466759415328562391204660566170886748325062947208915222625603911346551425617550769545070721322980674943549894826390617328883560815665542562463861111588841442851464318908043550085602307483121024919194603027028846118046469634984193751915938992180780514902677011766887581980526579299201788005414561252667568508445585233606034792056819523874823141751788260827429336384710955536928028721856346557309027865109181248168557782533018408994018867321422960367609666647518842004069381373295502577565795903037498427329610553753246046364542981133806697269932212930031131219997593357463683867722672546616992283321876423254256971389570058183596708759829857747797308480185540578217937044981744135682751054700065779208365665568862573089592792246898950151295406483543814022544882833295894224153716822275932538504329170889455889873531602627764558295938719338404392425101398711653024589381341868174964686987149874487239253564870467937301156491689238896205935239796468447245265771650140466794341208403277966712759931121966513781458814946443165739552482691564510334979035962414345186998967924259587197632439304302393296270096073865342343457906687348864357107623426329068861421141237453771006299525179732496233608744897326220129452218420260670523601973067338474351090417076483827848489762256008860424277059882199976626033773119668318704674124617636090495671138364596758607655610310770108995667522716131541471206040217036830789908610311629925970140146361685161431091560212307142747485592208082688106488273886856941645241975480763426436944209199401729641298843023328568134334070282241601413540219185635050938036553610683079294413967898465562494522129366827813395638142354223392672779179220348806872926730286746723406020958712863771128114314546384818029285893312224087709380459155649172048259345783584605731379023942071178872185031303702445613968343217504769335928319381618086434166574568685930516010915026590578897453428619017968800750166091170107980630693323324782467243600375142156938354492182001415390519680720946385152657268026240906423402541988790326554294027552770211365156304566751623598246825813678787008080669033976695190294990574527584575812604003445876594081751553665830825343811425023312212813224537357094787630860398422615292862498731719984607275635827156076980132104669525537612171993800914184339368019830053049758536242410724511029644235420783775995366604134270935269669088037724484832973246115502995783411287411970924996464998088083224104923873113054691822924392017505559621826167076371316821736113553614137953715668722789297421561007534454093631984000682268356481725849833810526489436240072242465779162761460954473309370094074243463281587704730126296347697712286387002886427760142377394211363485179535117496357689237020822425242629708844398280909932535935256279388473583798709989598398011615521314520496277488203326682886017716910446598199078217590375060003183065471324244717773219184701969841473058127040945707528946669036794355529072134747584571421111018879787864087996134253199328995411040504251925315245242430584194714290217698564069393516898669264396467263136353335933611397507702903710879051091275302031428640460815119884187836987181413713164864485570020328285825012629025318434950118044289903167196906055856770798268252869058903183059885275320757408427388770669099103042451897866818439304630912508219328821624568583046571875071148626607897602088149703843696958653056615346057972058160181436554034666814215737776388901762910608062516380244609268899075419894206683217130860591853296364902269424502988696222090878320496163896245911814482530846055393450687878681515488610654782020883337773464723345531118813878321541824811611057665506638971816670141150983649146842083511033011898590273911640006060832415544630194838410640802134966184595818993147117567973124027847605852492408410805442667090076981166731046560095948734518047476333648719404854520260308233165715321538551207935379179865883433148065327654192958868411924727798606241325115945751053864369189845015708301352861380384948457777704174390759552676211235283323923219413395449529092098003256914988245642849492711680665910623625847309840299164225075771142528073509492505711307134127027948485802682278782573160786229144877666688407056785538687921065865339933676246432952070042313834223941017614097899046653442648093398622200190095425624966609433568518305002185515220774608259708685925458209158131014556009413815083938566501998048000238704410353266353175443883386992613141296949877084456310894909889222575607519003903960359407868592298288568521238251796306549657455849545406574685300210949656515355186910372704891765447906516253409308456348405054597335230181764870447606918574729395943923547658573677721832179889879150436726250214278782260816758874838581852104288433935804580046236867772288261736784660644697243195744762904843980632630960762894206833227882525126296840244292869247332663386844733080632577774735793788660561189052323287595578288827099919582424817969615741666556924602081493655620584381680473474395898486353603557221451885431772230651264105478795805018952236858437681082995683643696623650448485943857961563336149821155392311697473119817375041193723388162168316172686994189759496760296960034843374190866069972123192798840871930746885502784834661676218281051514575651263438820343047427810489161159989279897495214606475760904637484316322293023392887998783961238237540464911943685519752718135683478423421285298596700010966181166141893028035723010033190057234454240402630389279955394509542456009431916111044128520631996071029169520454058598542183308998615767140549229216633997577929866325717980117528287809317706871853860105702419883211869339070015051664734937102612501530386790659456445654841621144266954237917194492655422167107131796963419970865129576443955216911929423586225789409570626800989344208482924526387310842194767375072507297050762814788553224276489618505668307648334080018527343479812015847939941026151701436808537158089937754772990993003629017960671119949990919723252074151669553252309208123418044331257199230174826802772537786732166633132833352210184734009555286546955157784852019033923521478245190572902782186618022757258027088908624638485965478308944523438917203261894565918463414032209789029895222226923226933261807459159605658022005111038203805315119381985285094031690971760007054584378683305459883144766933767389756520201548137554293980967156594366841215327150647009935966412664461207129428874067499668815110415567358937762695110375879375404852505878255191628122417782719630843364967844666187340014517505184201616424035322891947745652841892562337748478733408471684871292122665198138243695620022714518200647016213833853657063553011706367181056339559029127869893461887077578111435201422289892713846495616977496058005012304867840604079084818408613229585888944765957027525353073992695841403311049973933098802472872213039475086434342104412099290932188135689473606567074312547937533644932340559663468637406317061429581530760837978700764684606297932516484697401420554610486021307601061692735872587346338579937368806226672668746274983888987477217540000588364946741666891160036902323532210849653595465805278354829695225766286007789297978800357794049264296549438635229939477896796732109753280585395797886043306562218359350771574732327982574737228115413171281931486029638174850124848803719903347643443766401353288941128792452343685878864470837731186787656867546482874502512682102228243786815512155643011368342733038947082572106284563473809554979514541245498521585377726565129078957988696204218672862303721239617071090267349220783572014303097888671854188995866918127808948492180472016386669324299449460286468293481346428304662578368940948301199044381874331744477778896265739708724530389970836793513549466716555625461260056475131748512750077385007723557648068553839102921895384136762902899038566577425723182537511170583522052280741727940230257009906728310305652512672110502697892076103377100366000908209528118720084253331265268767487420326534883639830606011143098682048832200427783580842221404011177702961595424219935297551388699786292198687692769441399301455445565530466154487115323770704284666604285961989043099100207723545016911817580097986560508205567855303253061746841969059095397278363755660848200150553749346234381918146651175294899577086689064531159409595115506684091584360930449811467474909410139720103296507729065106558836756965454393942867779361964717999188394548512183890011231410699282228066765284217332115273978074060327492665545537610786029034359503892068209454098825190651129773021995130335120808713532209793722801810500705034610736513323265512236789751438471913928565873303919100389772741319063248381934446886697269578171502776226485859835110649883620202841489747146989824522032082468886490617054542496783923610612694773930504497250110373386545277588567423058438244415413877293904115122006976743654497667610578660670392300710203823243203289884083976733655157921600525991826764409000822459594579947817195670818100070205970875979967063880568179719216604411506800656040941436286244819465738267625373114536056375527313611461355228477194065244166160146865614737217956188798139478068292233652076749885526587313042366063040372551752004128488298555911938498843841210028968539141528347266062439456113560812817783665885984769539678762361428950186443261630992310245154435345193875928023223914300517419011362123254313657479216490704770840350672635173971861804984011047824250546817368864472525804534347684978852313524802311408432462763539085154879790928230579715627994004562805165087955913970404404001191505876587234590306338976391681002222460272370899308339586439552008059305830993556152550564946074552549217654281949667314237115724459517678778941280106057029163974158088411826012956625214643527031894176487030451547652169233622818570062123631307767023575238966787651203283905114559509822297082089706820232755374969686212703286605222585586617390180452708864439898027119836986049929988055035265461948873071824544352029878351988567373530905397808408530223525733396197779065552630113019284788123535574954094761937290852937978484128764026319051729427879401605989952155117623297956595615651672869116617804085622286933088960984320490033174295194747087394521990931904108718729136890739724669360980546921174896411326328874940233918127072524421719302913161185035439122310498611798851117751328649583651146878509307866106723111860302280050871463538529522444685615246288747826903603360942088321769845172996311192311361655010570323907855132354827599097255221465356758582195836584072096871878759480181213209082965268090781623730851124305053102514282547859778758633916438486082320014261136567084905508654028162866645195596290367482034702732651249516876829781807195307452986454698082178132579941655132631936721587475799644759378132801353465757700184434724748902368544666665055812941324811231310497422466999207568106678956882414237061276862018832900220060635107638614345334375817685411833155377798581591125317397210649617686586364382993136732133802401948317592481840261165308565955828523819163358502188325959502050679577035004045145893598607026584228796046555333591482699213134530055334674880281295764724006495508134188301028398702735436066922320829205417347528730666628199099511778854761504459283492618364147521631104237008277533647432833400510656662444720442969150803459822582306907853497167212877862525529184215045928904003695378332903167063103266920219273987390078017315068753382775365224751188345913988545777980905647795465997275942717196635444449514233189370994464771444306256163448376388755894495485944375772199552546120129064119897183331984801151134938326478233105906101165884922172134296826863905982452512482291840117364464243825056986641514292281785909035335210615384350584990546272524473039575298989013535519850093663488261949137392781446679580596750787105670920750582138440810124005855213885374469702391404335239324513341153834395637307067381005106578816165946883189818051172979683209609086873379487097659172893119817460911831510336997867868771620056193485614856062946483125429803260911005064287090792652846910606949367861985737138617195186523304095928744195481253150689369701799953350308641215553739457236191262302109672362204623954288754745506482760556515526798015316943689952913815085926790408739231126461379056432143966282831257336545826704396586573603608346529997806330565423760770921240433590271206220673232412673079858338355015346941348177315056438787964243222931979035923360880527200342475647490267194719581122665584008560333531041864005684467908630027182618315862065168295224728927936711366108561520826223618988907956760908797208613705257021510486997770219149552236594304690885968228099377834474319470141040073648532737286707086208024913189272643436150099014844740448761552477915701168069422983915355389351261891594206157571023381758123441768919826778696139973828205717587205310994807567987421559529360995545769838407017245539513885751228510825270434718704488561271166262004069180142592707842276255876522877493086219467689292058478936105181570167759888714307708807011498422010003734195830668128597062308356812884351243289729668141501226270368132524550090895849184017244801094446276384403735174395756601883190757500124228866633883095302345415163777651330583042257346585342075558355650054751483488480951509665206968987472117758243282267571977102170901139649882424647625123230993911388025436759662085009286715145040837423612252325372553624816669383030114643687738862395794409253907745665599121060704660337102058318878032799934513635445895988218986097641372205586104500927645666274427834256040156311766999910892770592315893558335029553214500646028277676314607113687149625474991358291726133265380083061620336643930279427325647286165583477829755286679434186797811866289572699219182360367614212571486683478047906253990176045320665532681984913095340400988327249039901268537095090705572545270062782505929039678991056860673482604726999502548167746751620417385208979503311374971668541143924332702711140366700089622369238509311464546414763027525491364076025261046347180535938970700711616282824206719271617435189814171951127932583255371212591794817237914911684292839452541404326913279576336782406755616009705608526493915715914776580826614077027899025501855796771995463975950128449943515059274286249380827527802452345215713303127728407660171994652438011936727708896842879725356652065098363768505121962572024690017402201886945803631095141888636622205757291689946203100970393996463860144965259851316046226736062744949551928523192965499764811981431084760172304396975788434591278142634127566034498674398466872297841248658462667001273967649082932899360848127799494799234664355357919699758240318718001084079532944272638803077534493783528616190558366459771778604928020873984684221136263792143157461606917680755147074187379939762725051629230626164693239874568948957162168322781418726610642651427291885253790149253761873927365693177585159195657628997231013046140528971022361673076946550465758087944034639397763103912337518890533533488912197121862060256989624080561988097363316322242109103356661259211814243339689521284552988275702632706916270084335718913601060604479589304455931766346170171027272010191863877466661989688018482528135335755926092551644452312624118600551916664722943423902069780324357359023550590549682706804258158846047068026180053712823845784684759651464416663462155067736728366370827617907583330388232516391958612520947584056043587845558002279197557329628260170769830480667060677474181911575928764647360505640002169657746821242439274967554941928621054822069201726824047764505979922645617756826298447656838143988286956322094945376620658976836929840383882795180476878261752555148837032549691957569250463119799220739842417915975589953297440076639472604773267594809099327621384865845621915089672353434702767268547968199053037020054693429606771885217669244616302878953007265344938716625862716219547161742075959145406070408308851910428603704063852786934798870371028378181443014041115804182383047864032479224872389050651347824404266034345314309229359395003526884386868296689815953098249430740394612512287679758892196042408731180947137580692556764651563058293461872318812518434073037004182724151110292746234697775326602173904877564431928694780177787758819415934037617227462867495916578634549157934543113508402907611018067095578647861329299281418920390550672439943405279741151834153350738789837435335811207427682224114055749383791691797197080379940736680049847766830989426881891985496388741525064737274147274871887988784627493573033531102490629363455889733341549273056525435642506013187433965729628120739459776229245859843102260147842649457813647828821183159694640046387453576073279282888270679774674559767007350893831610453754403094439185504042282672423357509375343141625428649063225576661942537205310150153223847198157249564412140606451393538587336020614362772465626793299324545237856960163738015041031898670989301725765757874236916170888882929205622076103762434478607675877006195236117629169946343804788290643185762071233920735457070686893288652045724107771132291825115912131432316481043964283859449416937172799609745876332472525395210610519744459828748040521002952490789467279755830578196160011958906887787672982014574394612399598595937745611026925198297521190144810808446529031585920348847757431840930888531255161468888665471209897219340399647777726965563953251503866304535806828866649509211414346112519406503470685760535977243108127361449149617312544929147193628825979265380757276894431254728419779554863386711424018206242424028778220498908740793412264131445039356671214116552558548564281759878380580201037181574258186600445597588157851944997440149732029157895084672435021184705050665201455116751166420351144339644105270784233759956920784710544870058342088140959281946014776330396945493923736968952944651847701826670587223363008471189500811207473557304296121289038191465078059386711992728608870102185692332258561927926640337601998010819355659615082098325580105499211030001442205692430458091525954535764798399941335911502988194317519314388691178915627954360151867651719057558393754806229955319652674079735435535034880117036260762099307067601878036852492476466145938384281185947426152967087001164409373757354408930227963930989876113054642562429144483600206412245577022095583395223847149968661447019599305272595574716188145794335599687383730188672614292428660212988522095643872311051245499097702275532749817942027905589825503104366835126905120852771902288324885082258828485674607264902561285538176074836828513332394762894050155417735433000065781325653697810067648152063678415122489473386198980843095585810257267423204573199829812384759048124246511291407279990779956166270443410566135225654882041746536032390391981530926914511351697642396074314893875699760664984441494968069921170714431270344826464457804309404375541741117270038191843864738249186818639691130731122845114824478871529961555976982222901040055979041992439490042959695223599349732749529416022429819541848388939832295188838368950535991030311599465848811878766391822273517505510196603772846089709888678757010988886331785490922732094378650763683647309594393276949829944402684619923514916292441137907391493143778089735796214350861811932172387029395192927394693762959760438671013758701389402747230200412382268217448437777510220617848051978695636396496681161867947606580874899403684476156855722568929107233431840546974724583229550898008444545451687138548987012760353774848141716298485031950563850875990110541908580735957259387960576138655497673625580313804693485924141581533955855352036970750259465015064897234314060400220921485832485638671217536709230311640563959626252955017740801740765917301704511280228976776059322763378014454334075008282089554570226863044890646733017992788839777004302854733946384182797816253456799578482344815253232468496563903462156731810677194103266690279636293256595633165143241271495488352929436480689696472800745436084398129071107027323544967809353786356856015536274369733421695516119461384659733929725664426589927940817162887893298576782274027725804174909464866789817459124609397837634575486484290910158839496606336368648708159374819743767391380948365884781225968432315925245866997283347234146896851410322022843692883158034082845594485215927779564386214839747627253175995129321344272947347168695156571212709301414778141440017328284804646475293007932985531062713481182673595687099176135739144988752431241211917682114525320175764966139147558869051033342426694286340796847980565499174181913755192666946233652382100180028788042916676500734024951011566879771075693781335650857967170360487405216040782221706943247477483371645991143218809615755860375842703033209829998731526252057824307178208786622763472378580783434030328203866793285364398923986065769494067189748204212188954347078397203947218621787020680761306503701478353916596263981685183067122474781450226122365541776630368478569218310542176648071326420100170746761954561342845141243345051960534446146714380757456216306457542150353447281327651888363874888442080666624323211220695295095502027342195922233300375485373471058428612053976276047528614284124355924639241125329486261384366413772856201275260026724272924694672577882312689408433997042426715211861187466900886543688735140858678028945563504990920750397999414274517968077055590785109652365180068199851674520251840315306528930001307175656387098696215439112171515472584787330397684813725882219249918580913275157222401441292695061026858564368615059159148204523399456493723243051575995778354663968423385407802395646955105358310138675932060827763589235059244069029973374133526517824383841151164417124283332273706790122144039280940442185378458273757192439363165390979186833279122188451440671090436605975516861760376392730607400592255883128714773426017741008695755156397820149125236609867206124761835213801538855010604992530124638194214961725426208238199284968406100112320499560085051836467153547507409630951014382564114344809555569382981749951542839576295344896501007655695094657524474627890758253870716011288867127392867067111675009022081689963374369302662529021619614040347414506643465911432054984705780447839878822272997763691758941202912665398110891495305882028371519078709465804995118649786190829840676109152258839692429574044341441402997797898682339731193997057349166598227207011918470252804688806124597086410195267147161045018653836931702387846672561630925956519515750353126784453579044695195225969469091190744703900105853901188241969425042357068257800402681920705049796756695923023959435605356336500991667082041083561900563833631435811500891464278767522120312787848223256605918832102928099467085674938136973295025703283153639036568235892229439215992044956075779167153034391588176076036433141043409236632644120521449338866225576963074314589827966134491459473572143429075532000432551671082528457485191655540819232039220622873798964789910878823306578415855595129101393772932401310830451529102823732852112552190531446698844464257078286950944757447718334138645405318249104002745687229038988793899395521821807789307978792837826449982948307268470473069634543472867561065947483800340184251180537412993281670128474133758075229009113329709427737862057235532553107844426423713039362603642083899533448277115467229286990925294629624455514897548942610946576513603205344110358227811492211202025856871668739965385206050960443619551341611199082531378627877416421358155662198527682551777186986681742982666672102012539557075846318525581589750923114474726238492013932277011447637134282454796452035751974794669956605182601214106681964603597186167298297796372294297965211109839540591405434777610447922866359428469680488423078612500246185609677585227994828406186813232107812270828584120400488418045788057010576393684865444862633456002311670000490417667029980258824512403626718493274898048653855548595874373928707971787717841173015830075916608228176103591752614605989811887281764430393987021804069972897348133048789368349638163367294265406147867979523294150295817239997162716776688274196390978258448862756918894437794535820650637847288049370070559138877022727131791951067682365441539950510645315543515875385530440667831193132795486911327314713568431390362607281923675852566248626947312997090634934673113784798764540940095752806489734895477455134345379754730218708985822766582453541178993035413913175096590140687946825816310029064703462731611540370870921743634443444173122123167126752393801101309255604941312219790867559591806560191383611464854799620050541439604350578146559919093832738604910979481861715044640563955527783957814569084981193288139673495815501197401040551879207108181879876572881814623355136384313000203248870055022491399908839451928076682960255638704366203009825095996981037008764235729804517759198371539073665474421809132884002962008632354626116115667078161606779192498566316499259122100316413760903462738181580207050963694163713070124722873045627027154477306492912041325212184218646122912966897927339951064581158096819803421716072068082445572062339962305959985054505972593943793880671825590170818408758089512437670942403196728107129904491208205161807124003163364247082795674225167410963601537134802132369736347740468242887503596293083420370448356173484909713732211717156492693976176254714576449050316139646675067643092599926823952998385913310306748088487073068534449166953305966897567060751264281043153279792536867583053647131926326259188420395852553045742244222481152757914777080370256200644005482793808942211492568886044684918901706225499254341624965329702423154363704994785972665260158042812154627963317792517245828579502521239794748769332387772399579188430877704535911464659855302820284570294053156148970237452272858682807338181674276123821786104612425650188375561848579647963168338671104187299838493165893641704172259677881533214446028723337305594908030294338904925669495924167287649814765996362978854464208662570061942716370469671797886259705548031208910285570355834101356074585263095255228582230497881020494442416465588731351765828827524938430041334211623237237494677193650140883087726836853747122164882196320379181634915260537677667138663746752266336323822450348155469428181097441500220482314329087969274968871967679491912381939850614903868642737378529979167718398251421956841054528986725520560958655267300907979070467095652326202820996953419882805893945498182728127017694730840957814551788111312916730060436995667859422730968300840052339839364638614269900201760221212621643594586831882951538667549308190994445651160145974385102288504733194184930533664483193514230892774177732919295599531600800317480091255136963470357804584239640321533451542086840546456494732551144891870465919847295558659266396498307157587929835958811948496135951074756318179058220467142779022599647684561544713897956707095122937553748186543093414413924222349450210233757452972681167578951802385370079723978934072192420118622390174932345150880088943951776023265186687216970040759421731794365360426665731217158389416748247114646995017794499221770677206135724940580453232658387056485090717500904196996371751862051423576250668183286881756990272229899678876309237902693220998744100679574602172921827737328678131776701988108881372498005222519834915905223295126918211683353568557389653394235326677729006505498685115554232220249245817043919884563933998495997561928929277061526617283113109910109493459195607068273275258276616050460112196445221547841247417769554081908078317353243624982158415527489740834350297425132627563257045165460813464150725506316964098187249897686508361589173558734877791251535921296728487023854028404695772614761368341251668272213097598203991922150486177970754908355990084985232855483924949878168467986371485023157541624308143239339327244535038068428620824417209341384773732709642077298777159658808713583415357737601246702411614241983615008498917663716875955692604301425721590497170999055597436503945992834490773025478240865694531905845574475690972675412517403620815388903694117313871627184991402322220614761567194375123932338064867016278199929465828077600683800655288232908193808577698459966080649851326971198114942925764915661530113779364530874595721917622522181925783687837904080686625786392838924998957318919990285416078861582067077408133142567114421673950023888907987664943451602851863005897926951982118853338244681402979533354334562771574514325006384277690562233847346170063220304398419742481613015540517918906219383531383989145299012711686471478224321808578847188505051467396779604302281258190646526832575006428792118621977253257252367936275205631994864973781981273281371050149361030281755580072704346332646696378189042322030588171781666371205747253422366465725489642178917824317044991008394921600569379778162989311192684460266172804805136863023872282882556216738270345409381435674764236011535153294318089126937508105977596784591979423591249100674307117363347393208312730807280265221178910046503290811900992294350219253066513232630350716973474053175927420795087352915252969121250914150177138398827939557415829191545110264032822557855356353092631640544356703853096409118981484366929815911928539420110703618575191653194295979704054341296690638992837045187534360768480508520308011761781291157970941457897452126321671644010300651879701250409288711083988308559516492352032198078138945529342634445335355228137161110383794932980493681731568656108128470066481810290691146045803537757446144104469627918481939143487539247101118378708942361689874321231117775173965671012796312839812708699680863115324518403126418901220256509163118056120530674431479920379576276965407665052020988419386287061675925621112921540611455245624719943638456947205461883728596755903760810651243749897653029400908005380343125712644973782491547791863478228353876034915601773232380964384335739177434868407279455858784203120103118151187637657668366484483099702465534839266824546078454033099266223069773119544828334394352616325302365424395012272729956739901907127805868542689205740421794703940302519489509720888712610349311689473733751126390537698470995933663619675951962203546337999750613981084654760668045815220504524668830021409379786967854706007884728452138816329423963061893736676257032950305114682537994809303380116954538685081232316990076217600950576887090341137024211911850616444761571765504186435834617999764215489309724041016020475446536594963211758818032323066505497339501463493967869433835684368643713653021300839676464589418719248703032266857767630313675924945030161951242149508999626010352923817345880296899025106972938095185510581156032014041254178665148870261163998674144710634709281758447562793044932542705960460723561450898507162488447981477037221559774720137615615362530145594014018086150523026636255343704007512501799211401264338066338358746543450044299517674728662424618759860166540973741061814637966192809006511958038535692841912963564100437812658141495257919384749089028012720801974872895623006488504979489436758749275841065305324081769082597880253020733050105599636862181745909377623505825775761828078811984895523921412560907231289237480540971563724475903081607945666176813860949991994496760661683467312388579129130386495685849963901392625361063507035052643071928905205304760806358768165811797120607962433380605657931464105601413692647270002437939810250723407038664284481717017080843421547877759464384995978785059415266827574402452919642185023144167051055398508672597676035065388516659083557701372859766378671616336722437354211089545669595540191681446778399244984811999519005450865859260899760672277528486956046337563357509414473979105028741419861511448436957736214865844437370382053089028489209318032680197913475661954320850217403869352044933896367014871940477470271859889593064575019750304632703502467891531395301263479276194772084356782102962031849760988267527326817592367063687750053401970457188797684272245181547699677181483268982734275190891726060406258092479595019948842296119079985601881381996196743821935851083993928636360663819834292531146153765077966086700644001913280709058258843548872793625820916301978644200906571052339565618514828556178239398459307444034017887150954395016546410818389902200229707329704523167359675846120443973244602185585262476721206023071848399032328199805169011532781791080159116932926748004498497970303052436517931466817063989121226989500921247598868920042630159772331519053196106340468026254384237607663299373638348096437273446661743114646988623910094194869083509334568617700806173150459593846399473097205637960781574524197350288286997403334718239088961400680052554292563817768911157545007892337231757513133302643436678883180241349881301591347433606278293409901261871579477538983100499564026531550313540055569186947349356334953501220966611591517286004629415382680790821196381749755280190702731049947182387594580531902932704349930741255371931609535301093442182149742271596551275784873863399872210557314702846233859688560489284549558718103472782184516537419671169721239630362924958435984713774102454716290607491532811416613232158437120889636954413594450853034338565501551124946608119267238187676308414252032672780610031702792358316301724562498118954809631664776161980512350665679801791207767613365106223238562519278421564150912553533404165450902430394517385763059993692159855727828149856541788815921955288921496614859289236696843545293385492280724931976439773971030940596610554417514368067954182198956156127276248646928846040330942100543976399927671305458602977339549692292364921550024758566658386530724927262183391691601420158551654926788415821492019404392679872193214559393448200941937835508230987785294370163369110736339926328253362546499696658193644310816582189349409077667247959284347244123803163778024948429958689623319845513117855413744418315658969031896385482989134733762722505424746538876590741530631683027296659269796868763019520309297356918269100890766927154770266047973813226547251585193429531700044151283140682997021975027687930328933464190035226870302036944562987408195722773685083461757651822424656890473696976650983982162562724729450945712957104196287424949316623122815285579070169601120035158664079548840275129104065284353383925501978989019917792370997710345895637891937312963179631431055019555508400831066655147055859118770851992691494203934850806273534795764339315260766904793713791888424014648272549034260676508515331019735227338533390999304962566630780801704139899932408434788577404335054833273458951129035358586107623766064589796770917027628398887361740209134529260375117585515760610894701770227249471787355556140355669063607662732207344652889313524081488120108679004834687188870321409030014418263536432522823108380922899463167006482133432444660094055339107271704839606006230697076459368852890599505290072355637622740967482910032918213307227582371605906501285071344930613463084454179143505514867616466573623849363827315053876342111722526964861958213149830164960604503289527522474444272580597758893276330666238506765658531899342584820516932390994221740299448316505113535718044367260511664679855350666401464395645261012592969339320557895525784539517427589413436145431372565722706738828974335549486356343841842677453027167853886760826092193483575221333201326055322031862157657770790626284269552136087545553952747809547461549145136416949020952565586096191976260576929289883725819235142521893920775366135176024861188267936391761644267350042461814797234604142012779383039255727657782812942104850341237018266858021766672718633838334883478124796272230671677857530884150421884992344794424037686985141026499149754037501725268857504647693366762372087405719237485207286844864604452868042302786339398209177856530015366517084451927359346454474960840496436613845986769049775603832180397844739611781371916746203419762968986705607406956379438796705936791119419240007919049102240992168699164078008253605021573211091935934702830407165524564446148660097618436898111608329444680028715411039637048258257871110858287835337548439563222576857000643374258924154376366805076858814051108452424285135158511723562200495577316576304112518427599425507246288407105009928349610060215440630675929537568441768264195218637754893991168094642035947463460270223121575485597399821959867031523133330710341685568793417709954555662713409038598876671787396001047716889587054687485941945845984260095046053524512498059752045224058748903136327895165438578860218742657830434697943598853604070976917321832952472730727065118400041992486193308256787917796200035633030737039754539077699492354387876153409767688741649937159406430567547169610722201993545356536777291965442710973877979290091834972889408510890135202048070539380741542017035833314195612929902019707504906648999088273455685476967378119679363880884810254042287937273604585570388271287533756342921120530127410571060620557219343562676513158293702457772150496824568882458005335137658912963280694563187752533061708909644872201933279540626269673720242401330049207452820154570990330103025685583376350274177827615696487000854383546697078089647743992850457737394872895829449256289565834482729824244829807789274259779728933166856058128370919595118429099452555261261109656436105358563201640100569427739749301344214754698367492895503611222438844670167884988842356951399701294879973573862805248610566002148604812583750217393108384521167659253632295582903571991888759510912360781931443038323010731799644572600194497363532446947381249339830464227663057397628990796673020849749461867546470302587480697666722137105548636010986784496118075073687289826820559040650211979561179400955738681047925134720391574129944583897083762365407803562933134656873230995493945640660539123618207656313935210536204700311394776694229048078081739236334856050586427220701618313902252861055691764551018291480515637558570766802420744505842454202016017948815781688511724284256198883300490666213282490790024947578568035724594961902617471798101644212688085200317688174908199177124589427147857687274014147184149590603558402788215598369875723701940291779201016720953215018303431770652465363257548589050307340747371872638943573053758981241570868014346046702999837495747035730787286041307639005974217796529557612864704418584221539201247609197651636548961269858617616919544900372182718130363656203370033549402139478759909715167419759865008357564108801485684545886526018061755280316742390516491147248467953347046314619411089047196175401720599003224298511185673233976832852726901448753403470975501888322222727682011887840334546905594266354659329508057333340152739817759584678847698666988052264396787834069442302893678218823523147066076309670439331887746891097768244106614190032338088265369953116507479208604142464706988884563296395016160010937097584713978331160977114422465303529299174498381265114450016796365087636442154721227296776089583601698417741899906305695265574462840650338526763521409687211995145131788030886286366863517357935028929406052091244709362398020641840294789746934067058648491285737931433030162161477743049446125860030522808617666587065151855627794822496202758169170174378887657515004281242052778418317801916008454696848672620212433435037236472120159117100327383230647778589078622428025511223352974518377397276568059887305532989247899220391899426145363307545890471831465396612991855503141356666015180387562459194491380348499656623612959848635726078475982238546773411270281983413237013216691659194669534313166675599941513654441889343238319372685846347189564238936862373380142396499266335915863371052180504404377623449841555263778956317750828389083503189430135508607947744533169111806882061334562907756884466613901150274880681449781066017395839662612409668001233477958028059620727428926866632775357870117956204252932747752496721086724886664262735978720418658339319469814929112974162422681552273078381341374298683228671961175669936552766939249958213719485252671456223986142868107345895932055909402024750345984604458551675158457183573482593638055147341881172863377509496183276854998516643187645842240498572214150996516573241721124507636971650876079368815325940132613996568954711629164324524656994205172121897597915830577266936250545494560664214189471375082756954723266612891664382064967731658509975772723940148913885012608133232751729738225005695949943743772683150527274485973323493942439867467491857064624718273323594860930299871990851217847219103606400124972588039165525053890931645952002224084281609318288660229176716732373522116401263328591149746967781773521752368386443796576235245710506140514396981105316559822329722886065629553043921208680984163122203592730939865999537252571912218967609607743806456231414786264030862337282671667811599421548250949345689154878539105092728346137958933913289305673331649323590349070548419225366050517447370840547538788699717752606746969525326116219376014109203389206796304950247093004813522082130213820459657823681352090470381550662834430955191945138802619987893014761112887720669541840543919292346688722875927845438492098115218784963870837185844680858752679290744733468897319113532980805062398730326821959509459744559566072296428808143079448835615124224457706135065154300324238788966737842518844009947941000957636587931109412943635053296527840266107852331949157287318335546583610417218703277671399469327682925263434363223381848934093776248039194180056740194565610804876151113344841168708599671861434250646548447205779888899801445848235238267134009277333463159359972438553090333981154227498820564475618255900640663410735400992917853081751917517116702899211334551458311590562227465450540733154638292881310623366054331991938926151876687973418912696968753363686397296284755461914961447865231107079041824241630698252471621738976324329339420082502178609469614092498886633796526456508856070689550016701409955839745876319146102403354587357352123522449598634177496250554566876958407812116939120723149092167830808600795414591917549371137446312494909518452188116613226667179412104315311213082784072661991073979214856979505051377981357219131586327333063408996519014806175225207825320554289977629097529786163150033305848604026876036999740741042857429030433110676508500458505862266078907356198867688012598531298283389867671783813734106283783105996209973593607518255279559626602712517108701870546047895982837156150792070281074209188995418128184178543269308120728950475211485497637494218719936092969140655701304472085586951069928330469585698342899768378971609231469049580616409083213856645351685914540913958653433675143365471959679180640746269660503044365734498924513136070963851631640296374288859893258036354747845139993502054304153226466350421949061652274153600790824393433391915337187674192786834373144256136578532434410706560445806325194257037782430895538534617791221312965779600058032835653905304467392148268304349264266187562613750232251533833096882138031863280299857899663627016063780355924092014231595194655544486553116280004541686044266107195402725150647366118370829600741625957753807698661525019139129623340098734614095783604555166814625936239292260381896282890275674703506767988309479420602981969907882137990889329917976032313222262529863869339079124012513361211827133779541991425463953055941317618188149233586310545037920927627588585395789723017953568984454262595244478765209334011731154634391714236074536969046495738516511391465894189375723213077604612305481904235024091941941649226116466012113862414038548550163918622811774106636733639360746160945625265119550770867060296994239499092953387709131072081134238468447973907275352013224020242276795126479785774421033019830213206503038630644452626771606169543954973640426805651745672866485425086194135264778636928170108323022249347131997519351245551632861042822361048110905347280712494864258375122408980054348459489481641454856605510600435047473828735799960200282261920625907477920464281382628229885844492856326820884560901928482935062330635011260258859870117922631825823921822057730571032320443446746777645118870642059352309538635944285465043885458997005712470936064495952504418029437857594481242627734705364189861302809617493715863531684241099948511798250267240119941903158475409128362367026072674020833715737492994058128074985439501488877977766570256476624439572120836477428906781483740933864421893353088861892303896005897113367161222618828909033327509498318186733545465257242220463043648649298088669759835908098263696795050352195062941535744077129612772489422589660642824708548226734357927133908043649180627964330594056371650980426501466864600435396719371756519039072675307158372265559380755660293134209965089262494321278273223043455936289855179836272717198096160120103977687462841850953486690814277905947892741988944736534698427854868053095040482871432688784249249003677918239793003606674964532016434108394685349031844285246005528972185004265063982634141448942627107971709757991344751085764858937464796152758680304427265059164601628685948106118102854632938351234612754493672703812668251786880441400400750984693970862937037008874560516490394310229644430210154662316637811467651304639609128161140327773673336266474764742239591404525228970652711344074390666769398992345105868020433868042040114936583049814580058050539577794373785851626824434609872408632329497783208381645602557928763614523331266794521896134340092232625168283962950795366937937540132364407405736359670699790683190927934248151797288445624725309457910794049503646315740918852479370552919112201534869460872247470700317102187252489760377035204212767934859560017428227304618037305203947195391473101260326455278477917137325159471264281862289439797545992895807160947139326481570407746089486335112354809497697681888776859124449870005562030196297136709152671565933479347916091761013924219396867450565273990731523603039074881236800984671033340658063338376567603585795450613434783605385245018825235796904518392635603208536504713828792792899108687398381163066823164266080990067872157423586596456500001636959727748246009349783277706575332668121094147087382328415745674826825561806619168181815840360529075605924630033341036120793117815321621866192026182796258914436489501094855506425712303866357724114264132733262469530039906248608125244746028863369984455482705283445800073973231885139134526042702601302197261743026066207782338829778232757633181267138031064117233420829713128807682014405048514013366450287885305485806129673576816808810236162941909018877845497718929863296834924179318021163705419819500045958449538260610021013969793401425519108877152201372479287387574674617973611387164021001690104284317271709049312478131029308234636921601903363064536479846620511367808282411315667134445898814968952419139215610032550093852167003320570518021871263077316223472276879794969573947836362829107894953571578262889695983685370792569863367241774210168594318424057656337398893341846770928464140909696512793482922043778360364415161092609127452437722841015003837821525840413317337957751972205932000597148610998320170247823881600969612582857210350178507014031077389934653225270615591904255970597342253240798670292473502367139303519408204340372144340791207732298741375898823968106136047186960625665230043552688703392828323369662646296197343807259925435233313144154378138036497665329932484690851668489427882402174822776690222512391932973469769407656400276641136240317173575121637602683665763139074662076217270039919290548566087183180425571258836656492092421738973435901970607999216201743357392921325631436031705991454180316867091705462143945694395233565926496206113490319353405676344870733128232762399338577748092749771024150650618801081538733877973473706733594972098281164181057568914357164214284128685697827155745522059668851989931210635675156596044376742852619424878877154218890263286310359996922944123108054028012579478700065706234242589413485209542757023279364117590718659221663661471877909294246947694139322872213759676127371252479973653311888416631144289829239829178774170255441288999410535167027251827577160405922872762820419101780839882244471147049730199412100162390289393754715683670818765339008871605444417565447040248626141908702735645507071495659173116502497176559962108967955514110715005434560307156901058898245737951420587749026903006308652049762949114848006756561810133568184270727249797259989966610554801985453256509666664250218689030867527710532115683600359828095334136419593909647478177375392169448715915458777397669819285572849617692240584366036852226132721677387560187981067961262746412370817498587872611687088971993089464618538323054350807706803977034521241564360133195024190969785360816082811840797176031899253199997630068382642397630703701897119901985523750848354646033502878806310156040302055307690796035852712676000121333025242143346478501271950956959766586927616966682368865261342819293051750423048296611306072653263318126742810264637434348471196789224219728632197524989030967287097725858381242669632693668062172619494664622799227794211570593293700679332235603662036589331738376662666921934557459599087639787640263808941527587498195350058343628468292426438682745785777414312103658980831489059291776459415808121692489482260542114599476865582986706379791322932535588674750843476740023003091512529645867792079680039314635099289258304483481504443989026189234427634832743215301392700688668135518406096522751108361032898114008980945390369367269355494763134200315624049035139360216893471361404456660796371715543827876238539387861512263898235161498568250652109799584879657299103551431133153110242035260505587148336915396726469018852362585669024085892476734306938569521325242706723038280406424341401657222577195193606865917921533592843464312613065005059491727051731294365143812166292645836581691688918211665675558818015970669517740661249404475946772096653346797191813905676003500128162566152320272827227264924155590809360775898529457061030490346593738323562459209144033726176693734826611549051087803008215483224802059577087279303194632290275430382982122737274516711795988007498408746693163969422491515806850874673965341193300797139491595384839266154121418802763035824186236884949644973754259052620447601323966216727892205305787831940597068432915968425421648559587183078745722159968866100334726227956166164192967874101662296027801777845841461036696138643805686468745158512145088711998922593828838920816470601502216188941946891108602851048215944852612323984704429315468501187532180861819611069807437837248713804525370371397516321275737892340142129890842744027352216289764580516221243994912715835008179810698334798783220827840518481458053687613102126429788740013167940684934076436215539540653742521803191993593309240374381461514899335278221225204686782363417598569253649001184701811696859911298352018771716667946860251358648686374228417485017179840149652208152326531523507514752719730395135272979657751186132637760561461222718850749107526173276792928538513244421904225962005345118312859865202633056249892915375568193770072724096335405853573180861428227384460151031109604528156153746185857832484254790559716637308480852074691084722378881550920891883401403934353700613138673267213630735723370269876262328439751907251764743759971535468636661641518834941594662303371030253438914935441315222302161450667906596742884974501615832709380031235612978876045325361422196981713297221100093753841334264119904549916832686645542360439025469679055866422267940646856874956033707440182775010856804346652142305062232413135002994994824556473028307875029089879831505530397957364312291759477802880365451929813446566777442045297307881774374696696032623982378915645281397368040285934990157016119876968513100738645078238969282498230339745257662867323582571681781717738997374988677662738096261806025050048797222076789498417608366855916470619451039268067795588604329545297940534545736049063640983143120730728260148399346027828687240763495545434324980379327652290260080281744301256707060964132648914908998301208773767066683496316770369118246321502107177048452343090412184315254717053106317208335273713290417124295788306629709701421239931567906728976496502620613908403916053726637883993291621316608307942004931970895749998180156368150382909991543733356520542178519880904272515287123531748372258344561950836304112937392920419458978833645123823797404213941264574314722942298266999213395929738617915201701880591672656187980957659898241742753619893218562053259481961682909602778222607432874836464895527019853717728274894339303908787999413862399360164045781665765100369603496668629040898971260075554910759713922838103959077535844340296482616346445731543222405956744446325884511024975323832644915287333613439236598047909959235412994020852256663403562936568874502172753826317327976874694860437294880085078613400652288398273667737972850304168964001570356473633690150492592449698958393058620828999952813841686707106827500511452702158541707711791521421334311350382398936036805148192112204539063107485655690932051642817545446337147895364290248988986447220028937191847415981474258613111075873383746419929034780189782531364829191844055954317346178889072240709326882585767087832258741556621470938017731670363152372879304378738529176611108228283583789308818277806241061961306063363860353928932921493637034083846904786032374955300575610266492790479221355003457098898490826389991619138576552278881599941057825607509448833225129553615226367340162982173286468684244673404576522319334190658982906146696931055476194432108628431354346123010838992761482496688513273856627930391733254607502023882514006035103101655735814677533091650286241545459194012783178147363411065936160995220638456507355472705465305232599942750001235293928370369186293384775396582409322808828426049019205121216785579769170793310005594131787620571908710127406089262398195901609835873086379160877723089767063549756678848932220967680476526059545170014025946676251548029550608040888075258610939864325734303563246248575046278605917629029908489510600698141149719053452867635932919966728686731048417739674684882620081972501206406679110077433014250394480087239452128795793394140495837223463078813612127045507258943465850594665624086097103300130723018946232961380521257476933371975503048341533302901038350234722728312212640505329916744202333496254327702418463956946645190355702640346170120916096331088633800757241989114021098355309341467665631932889353839450250515610585597665493983807511128540467925612432374559141760139008080614537169228106475450309759546097832495850271454387692938438569192943362941165019580968613439604325088039908202506249212653626732383332928032297367203777171999606478113707119751186212063448089701310010761269598163028291619308093731900288076722774719274543436626305356141015632603146446030045393658569656333494723269338313890531914491037773036340586850374882116673745930406083116013848057657494592325507453040709383903156393788205372512005063942480667200848120886773260349112617108439222609778466527506196757545422323632451320056358363791383468913168665288871633873257313834128178626913696127407284189999060262339756203409326063154085557412832653380916648356564256204476616684501023572806995482687079935505646983322021117260754808709305779564606128748087837738827078743541696876224293898946617133620111492652406421138430968446093224605265056460068067651248927286378945777370287740521287338962302566593461607226066876862137121528102763235188376575921684576679852882689659128446884804405142107785469024481958162810228655035600231674885498708120193848319613268133070399006207164952889284072803151356023412064288031204894918991122920120528947617415514904422817254922387311370505589507458711090348567346636364002260896518940891798596181446510503465144741926184662682082376131074872669940229706769854565984065129615765654599869578235656539979774036194916125056738673450971168305957844436584539276463351479749525870072728805900421841805242469574205006120688437446769665572615855655044301173173847050521237504082766839588049456633849660869889574713046304104522799309823719359912571782272027907890935961569196474168499715118701620315122193855872039190355249095109570381218855297077256558638149615527879094867632022564471565563442338810968489355800267364958632139856816449819797310801173492909688580512994760015486205376205562927913438940400342140721143269849795151823944843720244718580631323652349705939989762534014942205790195913698522412813673025958045460444864804178947866625343085146553824336236361867696996596249321526668007682625896002996687824079925001047318022776238760374956516902800635244447500220711909255372303640167907661594134700942895689908679692896494841471534639154040707990900080813851010020623045013038061310661479647184923061659095189787248524810956769030946232588477822870957677670865503486877840693685718154831526428138159325031607542819974521767719581743826095732944221038597717740964104731648476481648978829778928907005621578078851926233966612974281848187634852765279802265231114820253131407324171367912719813353604604695209646720207374526950030019915336338469894662217257120700398305940291923777172462884157988822601026985421947194265550928856538981463630189337448452351178031604982266763261988221324703660826427172361881125114722075351243322981603160933287158212906375314107249169990724573974944132956094499991843510516939123428498815918518116206471089938276059422698216618729579612738818573211841912361352601456923341516162581812746536306896315685864075468646670288233598043383047418082546499244882076034996013071009914474465662761002765823048003018189399008598248679531779425733777964453272195921765318892905321447063516173952561856704567417398545506492282858006485593750290503090752653621191402117963310774556163525615608637112001808404579891748989802964999976370014101505393207265834630642517266539165832216797691680770497301880477283257084859177334115587944869802035690229399968306054405543192413228597092501663264288452138759134287977103004745646913872663486618169369555035352832176964502911064958660787103628119150225118313561466453483737218240603400076421003533604882363065816907207054299030241357850245959014344610919529367973771104934524980834711003138978896981488324862358975193191121801919090744538286073527375235299328050524437267110091501227644313373805693176981849891384740483784727026833062953896318976772205251780563951333672345463177317541516437339955783433527060801809856793111641153633422456158865599442796009308449753891481591883817878256204452676611302126636925271717339266518438412230117066735459951040053361185333361127401247202230103859113528034443674049586973493017497468280862799336063484108357353247474652910884487184015352782651310951831412374202094075449094262208563551446677413317765679599284567834981687926026952634407837014409601438217317675546454839729068258967599747080290966720468718526735850851335365147719891991111948902624081846463810336130882760812961778625598680217865766727515745870156507405817662491879020634087215553400918681079421188472429771475620868432550499781854366542915036969463375411796490566850817812702880209987429318964260317037035528524332410369322413221998039875473179752277869972009520498590746274632604280111047257431465836116207191237486453014279876742360616362410199502868618782785607029386107199738885514117603073312992332543048948790899305821684489605583921786957307547754205713119989836872801659911914085441630403390902069361442259347872002937129135021668594011518557755462605526274739055722563166983894216364740115483452626229598383358406622563211500218587271644327056933616399382214584777986464725498045815857060610465227493377410108114216617595753401499551744126122006735997657435679052400237304354475630322176736873339434578765271769596408044570355969321251872618993253027107051444424824658072691937502058227987201723348233688111383241588209484448998782263774176096565358921069298757816530794711241113678206953141128103614539343722743126132819493738621934062746031670720305385939022768793248896417039611445251034541472071783496791150256094320485705190423347339108525037422623141945308376784083242576689272125278280897752424399205631306511496718191722085678978699220277100395979165295310544876536207398668397507924448101507872987834200329170494284988465395563085968258007780262340215648074674916660382835500020405785235869690124134417105661928556486182498559376497113848632680053092884864409515460436689214888277749791535217001355452832893548808735883596680468017661697497584749635596919776798916111294492016148563232265370446638248217160018619268667813183803199454130216421257880814378212220060318716277795146268445740629483764356336964508425942329890558354701168999629299986042812088294816365916122834019638624146483090974234157711078091694889144467937715997630933469278741694485165395261307141576324296696779065676990167551768151590568593971923705471560329874799718482479840410327969829938231110224274877784180165269596369068671273195787843734591036108860973226681652971601123009496993809831926495812235575678961120410369194615970722057733844470879726470702572892436269380899734356344380909076984437592156676417396648698033659179657676326899657793745982225278167666789489375630263821296509083376252445240080391222000529252197435454327844630586089090651078188346934525268768020227984225310891875287710994670468596136887257626070371754025325613360911268692470705660674518536451159139157199027657814453149171252396886040679799630927048294160417027820147934451438573794214173374366607861376631557985565096218556649725308552303528413005934418881125170648468158777552138219964292553609953820224570366719000362762330932746078959277623587921421747834128563088812426918660406539242303290601525145487712061057581974836141055786428304098730523806362517532922112065546373317347891811224847100997180494293691226960331764497159892932085511226997467912822209576057976892688708799637265414109106627509418290076745533774868039351674702011404119642171552558904312767653032584234372406799582485005808847656073739282780824099130209874696203792660320929247449712203941408991674294960909532181068946287997048239277161226815440605338796167156916742821846351361128460761287097581027970015086121760631580112027238552214605081033347976373831678926332692990589823052189332257165781741579676910650087335820652128554958690457543908426522693078458029929549119695323973440285669099349025640065825332998621786916692815966715569432936739420815155580350354347531569399118384378209822849961673693785383104650640231006562183245195948209113222844507254365501143955904454558446538076808500016770532250952338527939730758573052048398710423283595193006359539817555391076565717983515680156856971904739053501341391238917482976010492306224931897813380282769809238452738942088980803394724557101593999509698643367936128324232126981759736615190055299241786087353894766538099210412676803460465871917835177412045288658857647729858732471544926318315965457365473976713325169242839343960859010860144814516225694876705610283426490109269948089978627134089480547960945019497868529774811716181024463051600202414276819144491254182539860739065022897259701998263901828293564311717601538642315394702856609325473717786934548040032767555946090486036574318489118649718748210403469489910717248840350413329353176531717759994381766898324412716498803049154366929015162602935950000483494811165972536081450444457060327496664197547949699201704361574513477093593324846107609665006117808345975235252361321747661242472152976520831663477142226114151240549545081262823075525875531619748246305797723254499582026289387515688070091513361656277233105021197233159441446310110012038943737278371299748296754189435890691543519206349137603553999713957130259281323597354670795343529766383065141573316861676128410926452410811938070117995068508445872779701530433555745606308901268711219382125144620381940633976579991554387340857297188723654677096946016292492442297173070451554589064249382473588987456397502473595417678238083961160025081708500979092632062606006053073620867308412089651483743604524777341654730286106890640595358657991998839597428430384704275119106107858580053492137218241405561069766536011758946417060262002638657681435885054319328523613178796536137405944201749468470632566283529415008629805889269311737738879626079078044114421689355475657948683109768730137862275829470422011636854919894281900075370887857511826273677184911379454480073402702054485069195594226993564096114413600960202806496980470491199297586730173314368463353095650526238208467375664382004009734668937286712443775385069296985408726550099517675843631755591226854124277629493056322563600006907927084396931645878973105069229516086277333467907869015073106943310425680476938778627190018518093216852465448132795884328366303821088141266083357455103575227184410780501901981000515395713044233988334138589961491234940500032554339363454942003683415285749489328462667260971851073639047358540689449380111253722148784680379833114994159142162793860749129914357690517112066231202595268126235533206256735146416383267273198607010615063918539008010963130638197910610300586102546617159116831498316121931160128569034195442987185039621455768882301321959553670437064192920353659125461278048485395226481534054509709510912334285308170854747450390736053850277410253672445238974965406842946176466773912394119522262450430136415567784113272837299045512528297214568126732897411369833900362117930388242771197070452223677747154494221001543161436441060285327621383149236240315339030634141557504070087773085930270225673983225334515198254587816510501666510508285680910313870887872915954115150726721214032203908488822689186563733982055453714070078227848776730320301596679019616284796916400761140089494065988223381119135339079852415103322415571434476239471744459481942805401783403542212767133798787353544280592854994790127316946068713608256661973585467645789430079691501315117007490239274979258820821817799970586120506304932422624494567708820228634387306686249208125602859038819611827186417917313741073190423152771720674385963548761606608269913335848737975643539442448736737155302104008094387300936970051270861659176858021977947043060736461982083224160267326114986266342609372775322773550335305356017821895227765520132224603787028286513282474557595034280035909639001051430925397064435455333798433744557452218455026713567540672313453236938733375334290822017593859673119400227197167981023586697392752784100882138357070880010150791392921515706355355743976125196063306434984616874746481817559550158256460472654652142687741267923829308898930199713792895940322327957679935257933387626127656971406243514139360697787302795061822855046496540565631166748250584254987018430115285214768839200031553217043256903045379015422255332015467918850745935389891133131864032263344926822604853453417156724812394889627874033292359842596756146378637541507715579959544213304648650490484026494165757946221793480016888041988416798335919256556328141661472053783563111948627938752269316286723004721945529470695236812234409563562582022290873889347656409879382634644057427706375663491630305287001772812263372941698041442142105535919784887583553942690670241984055861426637675334499858765987709383616147897109147665186416554997163245902488268257724640738363392049481437725703061521404796900047319477574145716979053974271176861779829905679960489422960973974824505972807254717844845963826334911778750841673154726605913783223783528914842176564656387037371734755357355984367803531902397386066839707484223784027537559155785380574485564510943276773787289905069834670011400008167988840783717729135083925080061151352285098905503585710987210640871857567846839602764160074229985496965280960219469132238352063209767029633285557375971097292211025906675666009712479817842594483139622733641339479484075575073777219464193531776417109929777485325374601642776709865348972554082699170095329244068464009801770669350177774381159845441720047237877275708295750389533965229224236904515528474319660898098761418271337253569097624183286007638176736058101423922764843243804488451464690096239787112575527061080903365136867872016506127172767711777415994408799076770174767541877276686367925972168305144059221463169310405688132138269411394542060687022654360619885207516885455558562659352564199145498170280303474005544267788944951545255477913679478886714570979192508267670069745779505378848525547088934553701530874164567614417646732129478885933567055127070419656961560675583025281168630631897071654965029992658729764971060120409388547699205466158942259492814586087177268753541305286652792589210878785098953399703816710735013863806524042557591909169374508631191209052920778715083451211469216385105632963484724237247929589754987787035635350619848275217326966500833866922793222408490123853793918715805595349483445052687994225827857143257912317459805056470751382488224353510102832208748658081522903651671916326906443127081868950940344215588228144987299347694886343482774612931650113790231457279888162043522751571782284683541286182896111884653899317596411245428817791928477361434786293943009765859370476554112892805900660124917134178553055333811671654970919189428996760201833561952795158955529108388746756602652428228730403157500184362251401827321707889677020256939371335398227676619252470404544765544486254077200215828722343044031649522888640470246112268391815420686595419862927764797869181001514135316167525988290359648963445496023500774654827300060678837660180783141235839651324334964126483317207919559979378594313080101758365413554100748420167129200692049142883246004533223112503326929609977932325136522340618519810443455706442772332562618767194678170102964337897467083913239602708169204933949287259480691012215682073849960863535318287349443443905309643925534578960222562086743617437980713758709292127744568619233103533371640520654911162309845136964570974965945804474656644459310721290230514851447273949051163841243356365191584781269854376794320051765528415947404341210363488193829643589493871973963856840614140253865398057709781614272892113864990696178997094005682572385742882636046230104134965284365483956836585432675117395187468353769906689020902402367044942020830712971800810591976078828331662455588687184804591292134104350237397036648285619056921508968575922698564227065476173745280596914977782471159123368272408464172106528047950214843109244729492664862378620898255618386402676412486349776628146641139461745963973375534679833146826542222435024063641749344432737857142299488132131805952940510167770645584603659551072331875829790970041363836474297461530768326930294948263429993367030970126125472175939795206575564969632805209567240798252273135784570892034743974078001899539586393295399364921817325019929135970090542633880155525593827836094012419493687892987421129903249408003997167010344952929124641366359779395220992917529382334182718034707553515693432711791159534258817480391607854480579629904153494490559077719200409679169251416078843089299672819853509239268782917818499298111268928288937214524062869679532290586135776995488615346249165166063388144158586717222370594857944540995496318783096195417790287043418783872081511816299822474988657692336168462604702681597058594526470176313640347518101706247811539730571000970766366911816468970478204937565372495041829669065300110877489520797078092964419211748164079562059156609815522990455921989541637670023605705835525031287135007136730605456241822898266913132929901465484171636696217555163847471836232693226746056618069861845367697659474824373077827683517869577503815189768033873538462018202704327396106021878634820682500547538152964141839671981859717341023838364677710479573562821105785511153843115005849498908991711372741129301925266098702177783630481901326037680151528442935002775389702633313054386720224391051343368058071903123495785310247927248135669105441972527148946410254051257740163951073525937565876705546736704142788091895915062759729370241051555576115454607625252055623796862330694056583209611718902214649963912814873109788062921607589128769921809509775966788924532110819941538853449157965991443955713471732518581772197277359970247123619720873647980036350698335924287807505056868165674977162655724984666024258117234794858180563504608165588098055740598762493422313397402718941022265028700337452366406951198810728028797012666869740257845008746183934377689398035853941734979308783547745434672425095443956436145806607720626054807464046557835369454600121342864230595992588168377223656723197055200815451305699111480497061709996920048302714303224581450193665648228497168391676559584074336921063707006913986783009987833838724472478365899035628060727788033269285599805386569726716588136892371705391619119599292031879067576188242267452588414852076906433546370039642790237983499209947474954516582402760546672884982254630755380495136283741763812758790647812285362265161721493333561826763695783098804835783669831475508456433081928349808859855004247727114334860838762886935233609259623773483520533685098821867231583146883375553412952966918376316778591985326333689955216566849299514685650030742478475549099071481626910826854934239510800053863694531701519056064936986177748136591875878169993771164116655606731715245184037822483345940629444426471054993382954676987894208376778982796236101001924959793259622328861119691632367154629540145064326980341852488434614865312643775716021153380780456179738459349339827138464404741076323822905394840564579572328755192004693545411434707375748454825641134327356369398304827146320234736715716909361856949109763706059042026633146164278326660694956730196957698491828983947127426503175506008767105426100202515150917223546074911334980448736662954922029249858717520239456863379852472920248603279550525896128630774318479574569026747537248049403706129873051875363273900160342249978444032401281417040994955034934766960641717570262664357577579547777790056651435276177082611202968391638993219618755692590811754823705331617287551259696184144287779262495189412406971061610603853025231896121979038689359378144516105527211523455077333061829295206874205289633982127768630713369557435866382869917686880852505192045997077900465122885409127471320909325167459302452146349318460890713774090642330072550811800746152360644090228784688451256604221493097525719036182219621855178363817214550699225755346556927120020671697730291670929612725065529816837055104111622106202206711174900480282801264097492151177948282378624614785518965003548073176119808115943221639127905697037594512590160208817466575566366278427517363137218973597548257334208740957056100562577371134236118110437974927283685699273900786735110653177246388670992467138333275385067826641420711264258774240971733827664547765931408714704078081513414396575861522608209970460924870694489620992848216394604010670171171122395504268289779278627158198194129016392513303772720993665506966117291780263336769987205339497525744747487479544489289724717857223370802872540152840038896546732841907379224150296316448919951138532918157852366952202036270759686830719037707931535990421880597573762975375781177711316400670466532459032276520555294742401243777088675320420744165088518645917118257160983472095315154573974001058239271141157336588938183014757668724397197655527852940820884207549448971959962648977757621217659082773032761903719106417338867742233885981467309354811084194192767385031662203777850549200130086309212848600384001210054606626578806171260738398107540354005826937591729407368780317116107490498469528007060636251323124722828436746723398916207038609509929801996237814387885837925301688103237016228150514492890056390703429405312146442346799863075894539004407149265503541836577496928998936203302112360061150044997697885245945492306635029050286639495999562080779214765105958848383819017435935516222570677572916469323846175489824983750020769624908524740604443417188123920245871462311490739238242163586583253273654180196064709423889029822662908851740042118755067617991978983923077112483337561645574725486418790793259768362745765313822668610130170826199973629044286523705330495274898619094238937340284849534153185746606568239776002559435045337439397022421896298149577688528951135219520911480912229362341224432281396192424407603542919531749498940380572576982818730240154352060615728359812342211152491570343510715392787062966078773952440924773387267957682487054121097283093868660388831042714237944565579049830974746962979193590068770543760310345104109744837448294132132555617561753244987386394094812646487309597026670856185765285714089262657104372785809480772355515776671137304237775370668759116735430336677298352231728920947330326619331017077357568059317587207613824665955768647572808959877826116021610661650865031837288746561400313095658216308839752870447806583527914878951425618817979461745834471239486477476887986350121079590369296520253537432189173756792192195943508772547528210082736601649038667867471620326543753249663219862150787929683624540799823050925100515176896712318756704809356751637164303265742476960267783971766906440162516395724717459800368216134634211565776292987098315839557415021328944827356879390412940997565805018892225886413193109717252079140565643050006029736668035876163488209228075363143475004279464443875692908545715792305140102110860240825139090344015823838729569343547485785122284647053536803178933537284948146376551509805449698882040673012896693830199212369151375712799749088407254488566780510790049808868981828728250786758528875934820680925135472965542950475314390590717969842458362940234682088530342916050598098897162445942657696928734186136299258383397299272443635623288298947170957872304610925805367748459068526019735534262783946736570505981849413836338150774121349659996234359870230030496793640038777136429541276365130887363274378740787271470187512346789312338426928294016544733803404997161991551953699001056997399831471421092181698454970682276302808114008761805747228457618725107553502850170084383105890655567076156112961717542110495089815854587191342653663463247712298190356569774517964608020710919731621861631956139037966646695715786128819807058640739280640326884429209012748576372640588099113242493995763076827602372860195453388222428168064153676899759804115942317407097483764173697298170369096960407577013675442307080673973142043307231546656573849027740960449826545619182918848980905312565875475376509020935209220842479328773982991206613515552611249600528961846147581809877588572269391737992141317508694009500718611916286958500809114159918792817605258620516183164835536973787646221819518242948566161764441589035520735187492846883179087427649936891246699247020850237660095578817010317820183574229148241885434441993862475488525649806289370759505687120107113418950071581724367938037973273284508456600630064362774764814671214613989005196311729162956450279789583522047437651353090572717091204533482749784433818571183968103373354363033432783915168986371816615313123474686152935227919690959556945839998389971555231535903468059765816416258419373333688389992455292651287754047910976568207008257449471678089003375758055466795815523940085790997937840137221239003499751001627768692368887564110743420880305479041374802933351564309836766724015644160525298574944541644464810827438025607257463515119750747947668203281431372686215785480174669461911649785304734881817549927495625183755583752001672813468569824634245446571344445189135093297762919605009501961727897260687502437532499714183513673361277783574749982827689845143357365634227691383098348186670512176109387349279003727617270518248401548596651311784483803432609108458173597710496617875076797414054510483515699463410466899796361041101904707017322141539296345629911694940237853422955414452618524423985414087986013105036031752343642613386011378916050817767568467043651490148956651285270630770679666645231189944260350589455375198027679580855099489533956392950916095944295182061845522831792310865331381115893743412889361772109560147070332493048726743923633622004593062916007216872763711334138107748208063897176512892444864129337567240290533922004255551520837720728326689163705692966173362859465479410441104522910075823161400763738378175846830041358513408616196601627205709952588269603610430514481785828195890585210825695117509005196813895849952387394992940762072628918718931329569542435134230349255516802286506503444341871453083353819300931657030546671473017033219567954317874697685074963199190532762250092240928944056383418504420466840947081484877361378881795512811943660910265099619971450362675697000900643716099135561672785611042807272021392863051600695660712658696487578249049134646963012880182909667252477683685742873513508749016153969385427877237378335607302679744683382593285693440055986542490787310753006848053090073635616584700014534265954574320417413868994646814368379557327966331103844008960003432511502024249151720906342650463551365071681176506467877496773483094443951640854253560152311665659781050358024071271571547983912356072408870957794369531624819015746556114815297898424955728018502905547659057405650206490481029007184085919308680715415475873632229370867781711415223452730107904693075638927354728755616826420037413512081487860522992236349249647168579860965099658128535266008243878775023486103707921725556173790994106322206807950318503919557407807204422686602259018506922153068696149814180341424834592474694014628921957832679470066818340264655885818381201397287605580189043701775396955817959696171636846596929517715284010900287121494087124272838917625171032482753110831307499019975002578456195912169164335953652899069654440803240959624588369996860078896407097351474531199752353379203794356935866652628918922389952360099062315448192884285861785090512158794899332122426817121258168032697894802734805433198580307547375227365764664286919426362877522832736343037941307958112043302606622944470778979587448870716425725084280882568173497400056637323481069846740454715885007341356673866477321202890838004473845868040686220149535609864827894493944757132765974666300416172906748016268397730143671344987058683135543109984150245189663946775817367530540248813169783400242699031296809414744203351389130180142547145395403888461012556963704283133416366687646106189390575414881212264124411287584116284001107528808544983076497227415646857495095420789561775496524132007330216405898841762123074331584249739968172705511565147846331990790324162352528820434493755619147164931109089046118972701817747673589574577665725160991831456592110040576505680902845343841000163341088289494564867681551178274217302014999951250093277561324372264912484259633335026415934926204826085168968221745957900925287799650232848094284786465392132479746862967863657205235432334199208246529769086327829163783438382769265618413502701288141532388935974014812512794667087863815581461994435016577480605632458712951277036854263084316887232094720341514385653568841172234680728143288592469741249148121588113518344749642891906310696731428361915474687866236780723677317364634497683023851733754631239310642457720891610644905177741763842265014197765812713525113331485654709091057293618347646492187574833886532372813949852064066427753122679357331570464677517022157016994383490197924893581898984795870079260622512637699928159305348977282040714222155642302071473722631113212472088574801124087061664800755397730239961414787995732719096135943226610146895849919556784143266184704296410899139005673603373265405209346678864572120343654407266351768413343551746292485541223774396136258465026220720638850658872853477009135168773480848074703524264416504030585471766779461126600731488638166183337929340526092627115432213586276541398643299494860937304692211954994111796370050492821998811614377109156122190241056011283844813089579673247623296252227103521826578451715525969558342091704978748167362994104602781982411708996914538254219205248843851975638687164884247139828942337380051704606514917810762848338135239783858192640250455711099603220305676781868343642302359176247618822797985697714632184863305242426733859742292365470067793974974886952292476634456251975162118161583089711079792901939783690186000173157399046926611378084674808530882965249645979086419554513425628492593574273567843809830895360632103510696928162955154633683163930543670865327431419485683582316235289001226565341211702961003022947924821328915255719185766185331478419116711865420984625443511016225629476424254166484051174119654353153525871743080494504583517099724928297136203892240281663419902141024601951694829440460003590535139344705337110197959460280773582532311811099991724302450891648726321670964932708045229458162821612318692792962932991787811594703449024501444160718172280586148931817865285734928059766272708212589068087341082556867076306533520611245733862196926844856808780592814156733181052203694344797778022170474389969652585101690118856641494466319186373350818638872363828196240684935865838625340784626759855413949782765713960631084427804452298565021364973454529365217759042996360999700711095059056947455837643328107317018298220390238241204321564119375089738501637163498039808176139182414027876299178322390441609022344365717489489323181439996680992752979192409175002994654197315121669899852937774902141044053613533262949563319927141026229452180206892679714958828462266789873499036407975280551440765768942392969069139481705068627103968874467798743572256514967864625462148619286437871634887023713481835643047340703974724543140048774988528700707015680274488836054572239898645893212258497488411861097679427654357784376453603618802899629333910101025703690863193008605767210081991451050919107347993612036857972155578553066630758073299388364893781108234097172243455166697841085944369691411948549925977523666134305549855806575866986897366705013773001311668139439038751632650416013948936395517007644490407041388686371589506787217728898535149525771277005017566131571599624801245790724537110485057609817416636848150408644430612054689801263472235711073244490325755392827523654315717279807188518335580196546519499630206146911420492811341144934052825210885063072689309930376067602140839545822222518753898918129636386142433351898403846129856817263015670730001945114833606175586111934747973983871144971823267475395741976315924330775312181482024723010437387827723353603278717130422856031232645454583199285317479424841197140990291665304243230954196678553463180161607769460130804059252565621314876186525642689293962109003808374886644710851458821306728029494643420747850728523091398243005072985866021068427996661882665455595296175351004538721649001314762815212004006843108709766064518425635121131828459491011998929835193910317461812898880771557926880328476521734708131037032365783728747620195281041697794178904452997257773766897062188802921673571294622128563854996315640569525634040571074068931584345704332077541631528342299261749612511046041044259347239529665256537484176139662133604061637111884989189143375651669886813274407057876036255535265957399555061218957924311768297512751495580468751931653621628905559694300444864892282862585112256231697447483719043244210133540090283541671322704787636500718443078850131300761977161349867499625134776656339608634615606664926024427162911929828229807697360773775807420409913301803791654420068060751708982158309396366971598374550047537827826666567343513608627658131742972155651809257725145560150430629081534801440670005359946164953307415578758605022811103395304544233996911385552256472752330876269503574266559352594885667661727961016408511927956127714591538378610303811099929682584354612018878618614868861787893883207919814044679449430064386416760722509749442655861973883735291304812440597611114378612917578304097627064261731225774984151115424250795174519265165448427634021738595554868825526990030710834254076836359689778362441815859406797783426457941250661896168327780082091077125658736432710192428632845420321574236402246509853725100415390982491717648066326207998131311812086808389675827314574649683196388171318094078475083358917080975224458840269113040143409450829699513428655736168634092845624478358570870939594144152148974429683268704536516324540292318125764844228878448622824525982366335873457502603288675854018356990378487888233369259820349255804449682100309789560800386688789062386457790222439328133054542801470592358831481888484611547030807972690203701472673923900333267056636224964583263021646502979857783261157135946275503382314140661317034019696357202482974951288469400539074288347595587203519573639698621911717578187379384396933879033895255031475490887043403457773098606347595839553465056973803469114458390360357003641522704953636215314448385990833482523285378343217989258547276006732129494933091773243685235752991510732552290721749796383144689528546918970483195405588045152392927610227070851145043359397816714800343789023382077970504745171578465035027649483550633513079165025989225668382340990800252788820160924916222031767532592783824105063760407584477828057770565956830079918490441735705924994282114096657581663792343767284173112640860428022242762983623257537598155146007508051871096558259621936119436654071273237913522745574438003580872427267474941281740812474926996724213033294154539021539319173785485147281954982509660151291741336426218784342881685382822588345334109088055190667052913410135153447097886615541844561472109743200561934767348825328816118464255280025744851195534789480511922674111926610352136045845042403110535807267690738719096441021442022628774676722289157604210129540756269154340048102276234148634828249595219169091100545489471851906057758544394562468181850479162009983144130287985943803687389647936286788158077724416383491004447795533370106067077167123751439412169234665278726193646217662376336301729888505014588252581002321112190988916409635238542084173992910118793956725829573194605106136017464473438975498414285320685783549879641089654606530531580626982744726352043781997054999242654763954587543804491364767981535427526778576581536050123618938014647566727903464986036153963826802938543864222891131110967369750747333151932167374054846165671292727267675322258049071067094565801007780108106890789853460376246283274723542979549633188422604598671067951067404390787622185012127875832490860656454064798454673204810933301935382320503904701654776544461831802278149464667824248395074310667917947654782066866467615644375366049221597608445803603423792959460876423904769740890372206894214585950906118880405746860083007828129442171460950970957911189969772609620036800517140930957320136190400731002407001908314488101769491806412305567295470284267245793136350585382583881277689456362683099094668552012198307308339542034038483908658243938558013828294109850024967525710787989671245358176662100008264953460834908597023028215185236753315546794535157891460183955003632626403725656984346872305327104169411031675826851679417043534528724758898161269544372129196031199834673864730862226950827130494665798866800871878555961620749426345665619797258784345032435200777311709407512556897244958173740805182931354648077267904386895939740935623392448591212582653814905621282511071610243109357315435722002689730219529997727455576202201657673966454003673038057943123741841704162261374745444187295601709114060325792382423936837183069571980927135215180152491641449827398323450433152161205364534206888151955609628723206670497654683808138081220954247000644987471526185705733688401668166664814867963183855348023568070719725550350665214267798015478014834550827646278004427351792692820182914071464363255216605537560178225384098866016820342625001096371373637901037478231017753776234782805889689787255606679656327928730255376362148067234731888623067824474700057642545949692359298589052599515557446851878733091728835904910162160461047552575184827686557089115795472861633935362453863053483079150397653085006965783471701075197567391927997722712720928686000473744703582885865984085297507101562265323241159338283825390638991711419960308201182086959038181325095289480961738440975055452181682635333428013263095490265671100154407005574922591927817710572937885603770497292838346416976901255411932458313337557675672568196887935801194157048254648145996067598101825383413662714437709474327367847295354491430247334168680478566881549818848621405514214705465869235887262079454409542947850293244771428816907003874951173376298839209832907042355202288480572112999212960930501546219206829943765233430021737882753881663711516039467747892741807435956241176951957197168825747662758986909131846540400356540496920213419359802236197846453905005832820803529989124466759978890526600171985009818962020596147615062181041008134810855290686510796022117129830274340119654525919308541533341970227675144043290723819846539544463796238395575920530369374084260403943929059826619969643927563391355214308462129374032011876196568786886897067394398521734126563951665425015330697187313575435286150532625617250619810315402287906812876161727101179425283213223077835273211134770650654276099978565981696518400598436331697453197426672790157508869752086695066585123706568828969682040040876155472132275255384919806735085901053676226847874107549255670052221874107035778528581189182262714584325336647447451476557126902157772020652436265334255305649321058910123879052730505402499196658330238971747494885951024290687572576088334074761550081172931219953687092496600345189450107871150627009559766060529136016914811679783788307508424421914030826334640268227276972684167464019695087395791173843699954679608467061696954156255898792418276587558051557304710391012607532966314244566276491824726229590229694924414379142716850774920289390626543511755840405766969921133823446446050679015608446736337535538600380170130216142117227979961798618481854212296295061321255837327938044470416858877660479834702866996261404738801114812627112907933542705691812785297922512523168426073461297356480012255232915520807342843453652014178164325214171864403912284467062937654032428938159745992951658385933644693473787888612321825589640655457879393036583126063309502761221784117739859475068197976549188642859818665028663068627665296894864406523061678357941542584973196365064934133943808231356305482837578797899795124767662717980229787725761950718335081000788443218074868247868905415965644357184075897495311291871360825881707581099056414739569958090341613866560706729411774584128979848856119668643616743431200071362748931830659245495682868332016769802781989550722645929996946113736020707285354537784027168410930487060718502052650291978783484810472486841694098282638257749757424204220944327407824850979549534802814247262373148834924762825569548432638429212327907894390184427638241077628672246441497319075829131054370695753368951838797935846971556136251485803876008719454871609589055046776094248943997327512400161802534856347574730417576383130841227214323658280336438056971377506792092604957442365683679944720127998399889644009360278681346156734528534306784763936266393785000906428278763269394772067278260488363142936989573869754475622148601606363573761441179977296384609990347799326151018137668616124975653997170494106048632820073948678331219658231094395219921746039093127285694451111411558255426142635788885448197203799704054368772160264434380940737868139915154538835692713996902893595662440043625154070349434787677713294161423869618763085774692391769524545958977093701396684777552132025060569956481227263731373107257190038275644965202629819762657938684946674110897514690761030561840388514003017255131489976096587084859355532277649038397418005387989345666265660460579369035134665988709692162779149883433798657266083181540058346114167618911038609400651825886536820054072157883595425095693703427430274743408815402399545827629954771944955273916100955875184200790763871160350012064745920141277932802489056762020122208367296241429251330297181472238926686938610794947061340424335657131383992167770856151399317616404941118837868181204777444867287450921819537014040034692094329345187881668097637425022643886185464856675337683532869818746506663323116607855271536616203590906223657797157941465126218557748790705730303381677803359730105141311625700731311686042510068795449236518216503860558625864345489212430749869673916228661757207329705857164494540968122963254298486321400183139825270049207152372258683182958874956484822359971517584990553870881431166926357312698687395963432428167676125490804949313554302292411670872803404423108075727372316093511219106827665221843595983140210683025622457061558770006267578661213203206592351848241686744081031447541930865725747066286360508438084399858916213984156047213233122376820952221993291306385694280446732431155926006950779008421001237114350028789424881794561178158570800456413778219424339612952721975858056498009584123354621392803664758115508785509098489930416916194619192417338855081305866181966108759508060015454503747251602381997401557058821361734465502659662634091940956123333670084248863756323099482662712257072112971818654781557072429678758932455125107155996648193091170633420725109004092098866084988562249317190051908084053365949702040612927815703541102439364587969035522825628009162353042059958816038370231576356120628246522405078724648606876983065765654283401642093814031173299035077325821517693591389463294211882195107886076489815826536378806179813846734122353523214309680341576317841339189454272529067724557038795165539701422382825891708083208463692042491532151936547445697711503256955302558182884467689157108454386697043788580039196917135509688522519200708071978172044862499795397058356335452065373294479644247575877754705717558874410051530178161182352580007048347005377407879283174813114179202016464332908043251653032546976297887580770339790569350769182191793343642897849802621428750138249927780383237373162623915226150800794761125212811731757996586943133083209224131426832993163623749246798644046846759331729124666977670492818892031690508661904348863547100841717277661271979387636601777384058903295283153373719942357657372459431855788087038665594418285197029887629312370210874116905009627665368862042930401730081664837251986598174571634133294774391126787711707522081768897335696259565722927591698157321517896387781576164379559792021423059702614206435238029778435175982672017386979798258478562204259723396112601483478581162363960597806181563669434393218233858777627911529478906300602100769701602029798966554462016289661650345547790686801548486516145489290667340319989208103024794906241824202957698468243779431560223908422257853776828391537099281490307792458564244533717082100000620563742703257733649705551893130319044998652426049772995975486819998046136760397348280274560062102615361239475371722860673691776155646636172554976710913410695850130309308059024982257181060107710194557632466001435447987272056600172578032781916970076061221070555341903104547945819443921093251645645103208583800061424222777119230721360321925868957304014031779531637332222175972670853791075794237600387456662499598376141060358138918044543724398442688149410525748920238733600623935726009742739990691219753726418973580007586362849118183961975311720296192821365371414774718620560822411743939258771305638193579330093560103799800650503806725424807608650815795782257362637851066131299313044599534464403190750124631369060998196394757869817707034368721904910113680642869385764269828572582169604683946610617950342342405031250758820084299294375236864212119095584327677702929653061295726291639390589013243743268429586989012496850383482512485481056600305649423758258823738694374018484867925041231872735836481333554094289578732543043978582829836137200515877590222165521711885235177584525731095765732527003304229110444949819810186651652687959291999708691985660487903536528614952297591416325762435249078808879866624856438955855191879670444841279780129277977684416181210105993392524316667341437493570174266366015564447106871207080028239657572415908506642471463025987671549958927548898629381519340067939364953628007751518037115896138486433197232513320530553197395676976531586706293910690148404094382528626687333916814494903087560045899270833646513261520728291127048516231564315544904223586296759120864617767131625015442743373266527987490637950269582402917824178224258762555126473395584748000763339947123018757241315254802985051905091398286831178937651444549005216378030217154196585860341920171509954422777688574089134389635576190843440551621331501749557988844071434016090141068641648094945745572157455082894060764375678425525964451733794788779743974190617384976929130507049987283805345070861311226417549139411081581992595111850462677768172970814047147754152618516721009729487104803326947542848255764173452108123582763210158467704524483421610501811606787093059519775438400295547839734960904567248177942590958751210443951206408463039012263466896196176453814234434955883085558218079025688736059310017807753739720593451039167533728427804796029276108009391331998188801869360387512093563747740021313806250159974869622697452699564758648991104532426255939521215910680303203348049870601197438983448033828662104815834480090689318192590325957653610883488464852067206272378876618508819865190791151943282524576231053203796727051005893481363416213326540494800490207976924460391397990038864930544421655642757741601741760641339434370368775193157114071675117905822850422209020599241671854669569211208035942195619938138319943287031572030905755002560179135223220891270170305521512899001810494593194127524985358121763000271716601836120216995771385762944308412130590322834615854511622997413693750217483793170305942780623123428865939008384340547594776055870255927890344162813229584779955718396053245175143325235281014924668671908353448150095710450796398554004502749742400763820890765516501516441031368874122851424056666030179222643378080130724708964526398151036632263333356165883440464479939362543943053411001140207250449556080522409395661858548788640422528828516797902777012213966777782244309555792389816149126458566212554008214947660676731852214737119496831901369624504899406964474328335641415848399449599197812584779996226222146851077654381647380460015649401426278272316593111037270657423552742645283814939160571554294557882943397588768070184966863427367422041143807893711260020855519935075351650145635557321105416572696428421555721536294403259312770458876228876681073079401568526757013597011628969242848236114118548815151479039161418620845053380405223917603260487856429321227340510367557323689545722650472292095787008539351708821646844060993726059308159001081384885157342124858033626633007031146373588681784408989348462181930398639555011466080242511282076746945075480655479949830124848561730226171206049794929654393090859727536230172571589957349436009615515056294061786876233168158611384795030086157763921401163984873353294169403416772273987545045536068527720655898210730012332707493970778510427125996951288096264983806391301047267689787285406262713690433041456724994419985186481331725125941881417181400755727994633280360387391150169126223692372504105553398158030539802673209413971354882122466209276393468109801373238714038399297248464990759678458348276336266564522235935967274306401426613156439580142978524610551699324040152117494663591461005280778488160090290772987993613916567585968627639923513915837118498227303980814819731893647632243260568202527584638599944083847776484665842033556599235141746231967569831114766611240392046871535071696343014018720664324046847679554745953976179057045876645075925643002552367462812591254918781967727892568200799812461971357554753529738477499191868785970077845895884238216011621670038361979457919202604574926490166818965927119551435714271578586886629331827081621062562524267822731208501740718009593995567828941423473403241378332499710819984068640822974037177265037035749510871388154187137373513538192471069500696186225180377910853830788401234360959926804049345875614285127083969042591887009898821705768374962734847276721272981956198675881255511890525073573674110027698440702964574239051320935532934615435962884679534990576328453890987225048705635602013541735962941680039183658515407117798196435948082077831892475582064938740850435278120278794621702318329020562252310642486705375913312043715650063088356256589293853900173205127717017689904200297217849211252316750230780486249308573627334506077220762406152960938049907072623573291855156402926830033757996058328438904967176651158390118067684568075007514721730611963455602634952074477914631424871763248347269276196713533198441294561559321307408790044069217962890604188113308643026555973073641169732567472547144735310053021489252707094051836119935388064014462654481289172398381387748204050605033638972978452556595554818344019868448417788180678755889960189451065978642358678686592593605971024005247926971740338068871083737287174331460534705239067311451184880419826337681294731520602688154672708565583174663291802440683531643931996070741303690435560160436245392872463382644684896535715496169239078670002843635908591476810429476664286902939377417224780214327913817082260641028039514800762780134852886777398811229108100259078729716474593147665727602212738268863818667995430052527171264301162478417677085554792340832660698397143161332099104183290454127626724144098372517917778971263198771136198800388907415803198910763630609042317855181386637310569155227810515170974217049214819960914056754364267821287024148441025395792499795027585535535962691069307676062465429720550815493117511099440515426887364465958011922760487860392079888216872330709086377665335427928369496885196987971766273626427541206586514479402733213566984171206124311586948857542017118894597602483729609785517087917382745132133345433418645554751609861096811526816679645084469713200899458055620286027788671074550386723552422937610440920036870275095171320391248739169054344268796097789156013366635588044363983674451384879405918017961086522982795207599067287637285630077192989188183066037008939498534844960130861193942049658553671058576461484141064947083733891741731123828245141696642110530863408948740796447330374272808923371632227334023896315595323479309436226866197594341171145251671466228445405792957861837001708849859626599152679052605792504873898449044025846885427101222847230625627279960145644242385969950121714370928901860636969904792183921100030756837365824623095443679589169598136321096195752378021310031349744910834003967771030713391441285649007261984209904933811646131022039430012754609802955889213517770887198908811764846753801594440415770453022791073036007914620889203640857975269092994570199837836804705500409171384137253003644054256399049974264893342930337861340566870345151131253029889903739810429718543078816525329312193831492731252000816967896729839342529665560960033660056166289522808773306386826505736996145033612121576009987541599360576767320001306836797990159599661839792391158264440822346016222569485251872074095167689819439038035154384857558702543680112130751973969440387255846138886586749569691844992111546298682845660619671282692510599263898456090036055268082928546598791364539979405449450172038771024671873199574976731410549932706463008039601269519838350366395990756126762585021451013434913245735261452231086359377031217045793715166010440719362771457219482883610370109033306753264757635346001002015774816435218551845514229001551943495868474778884557456530595808660585916229598575628658442111928442925681668669398541175454966249750343398843939213238665008160528567100434066018242823525680503306989109720056972352207970061008882268209699893984434000183867798170051205569732984552399455663896857480726237407451358602307398780447487601383067350402473068516356532258452028370215533101405760836544624971388677376242859134236134344812689191708937744744067484324545540125320454062387698298869581675265192037270160658626399641759329526313147561519918943470542335650610589220724314573856986849881720506668524642758907917059809409397893112851124251141014601422436627252538259524078403714090753493696882163500110817508085776805045986733858533230469780042367195710623773774600988704680501326738560713814946645658193194022970175443475338451298496668340269033953105112231837261436960276504688726691074734881383326220499623904152649726335409793315833230064584618211456585793948357661007806889336863978201026495090443412691842413774139554554438720658251644057098147363458034419670476669560073154901939421406346298827532747182044942012859590114082440558179721028196100349907779294604440616837248438287480695194540423458922054382964841753848701327565148658655418660789578045032334797809166832705253150272322292104211293995002632616194637334889792838599999293343615226446903009088429345226458407172134126681552564280418310189319907447267293635100768106997498313777454946405797729714611982042163880665839416368317150963052002283343566601979128467836797142709346669140474713705237167734890892145602635074854441579558261718015276710764699254241327375436497940475615751595909927093801532244194483938265035911635660780384959397223576220345689029455385681325119093157110664738979234199740288448358307959941471677163017745076878001853566130757163184091378938717880767208817863929728143817197481890337091734225726352513388782336099614380334254281397266244545279507079061722384112204163623039920990305181278127205995899254015189559049450118330682643968688284608524005819142487652645645890300406790624115682152949056375461026352847773938102831232495697650676713646772992405979649985482819193665107723308560940691440059219540613544980841651921423832296995302509005793919310585993718255289924274606379248794149049968346304068325013810687697306789795958950074858127704589054274695162103305216749610309355506827344457713736652646258872623290194672572111987357893363705814970104073970043001069274060191019683558325839418705348341485178661781269377978182024036056524838348557782416610915860934628848129352836202252837816612219430620103120604302154039476311366029232150030852232170596567092687529919236446511220051400777805426110221029689962952384831682261119691517500562863678026544737583534570737974129636879801257937853903910533212137914664401473564328273572625251827668518741550490928440934542928704119773451534018018531620728610287051795594141920311831199806112606151275260340937474763809954548494688701864554890744474190003520276028547274738173301302764717854141272296103372258574837238684732869359985778723452048961619136153136177283250460052097126290839680096935240934421811789074010392752427306052895803305712504964896288076656032746512358511600225374953855851606253923510533201179898940200648762840213686680309909844302222283811001923963302622771832692936989483801586341299375193701093569751582037818666906138780214303835421814626515705100347243402338320331815430440546081577579326219362876864138299831091081794085619291654234672707113580216241946566763796115915550619556735140894365776215809865297029532902394888843654267980066463749285777506623976938579639092962681685765736347853134566765741720756168928227572202660591363813955338623009570523270000500830001912230727615698318119992651989041699977237427593142138363857503044390346581513671515496302122330265461945628191422801209124546305855185432808379654880597721420347892720617674298492163211568650985751311527192270001755081509066597465524841997630645380075692445207550415011558336521359665723502983019574440512003203987320193479318786194325649089568079512630691407676703116106790645249989983645042983917832022899190642841800273399302239437484191112111656951561408381818502784960635796193297156763222439619814742281589201861483148213809200868338023648312728081686537335972684938502808364332463958599654872757385193701410302007972279873078535232711037450921484993211293367515009101613472971522713351558814327972473487771076343199934364710011646718871753052782751529282742705843756436257986988308568529222791702205529848130514436378739039414303381385840565861766150283640603258185918365213792693339213360943640767174681660489967636597910609993659158044027552405717492982449836528075783783437557140233725000414314092004987532888193959968177330898008052117827066616029524874205906471439447664057295204480803535122123553623881420236638194637457240473869574225395841969963323815073280446682279969079551598847454544868900831494476397182676725827780012832040805329198196253199577004621089110867590760998609132824308563406481082255357968381310361747871949583207405723710377742392363868229712619598172728486484232196908800490261002572350439784967222118584283030379318022680503808580253643306059763892433272356931150253988661067749709444105972888485523553338263439187089608344854446319673964905567903097446809040364363779327140308790604719359152142025813584117963813309437821287816061093804015969752604936550135681797781295387314694716298926978722023608652339202074586573974034291764908383756592586875817078697196960145249341360876567338953709558913324736173371209792130639644165626457328541463797596047529023134933660848116870731661851463204009706203893106567118516519779094644734104546834603712417374558923276215062653688138815807335282395022766399150285290287059716381478423951736136821506552663064125687991749885518996460578675497812341726542150325732923854857356100373512375020543287332726498901244347429786210251410217910568802189485047327101571433051707584034015079203435525755282720039010743780328363717454681653490243237916368949054820242031557932894079813349962115528876387880970489679262495745492123083342781682983074204817258309138542171831287862792040796920601103372802302215018516200488843273519410043902995454454120325445934589907012781764910864544104179724884065938958323854127541133943981198710276403813666188598704078504484935211796205505939427131023856385775951718235959274759212462725758475761939750392583932613800207957787604570791671681661100282611456507895304721479868231119286964083968320954663311588586373496865867505531146748017147512197715793087239783250575182633378597418455774797540497740871058670460482640823929263787480478841441129868961579438643839859112394059538823850592348145869975859892553151622458227680644241561877730091647865755006800518636619484571703574130379181394369518016946852276378505321745858292404531481523649022939377601691990340556337061069502301981930986933772842587159291230245053914280572551774929265323231910933117465579453387777919385554666660441674776867983501739803208541571663378604891851999105645295534058979816471772515957048615333975394463012399975437956185718852535073663877563449202745441396331041782159446032555035212542399927577706005512071804175276062413738637749712757633465501272371451970923593086404151042968027062250365801783861038085836231935080416415476756038398638701319261116137802884117611505262411238921977056815988042032846770528277489749139890050033638840573868667966595738300074389612872132447282472591223048999337949923214250143039005654411137007095872431015890295409296662418912025231742303673959093799880688546536062132551273884870976053045795066972093554171241749468356946879454055811860811391598481991253473261769947384269332680043811294205181469336289764433369133127355384344582941855038207058847438982774883960177436407371290324194354963260091738979111212657573027433733649011415193221878371158373324523641886466859698554054226893258538891347599023270595123201798178717411419076336953536834741988538512971830448694275322610112328335599958820344280613762846027122658580716364857567707861794965586873614917680689766093845109097850413942125533097801417966575990328589022340517536808942040465426384455479280016855444621251022354187211197153517697567150756325665068116047562667195441358988619189768652924620870167580624055235443740159504018967827456210327756934440845867823880684092205377818887314069719386605422915970839185688228407913874281010671354755007988113734348525662785411160645068732020382467236763978463306284869787114729361984270020422445865823214051688693841836234354934605592374082759982966025259731050574049812587651937480681541965469485270014625421752311020115317740481977372568409023594886905408473253279748323381336498939375979554911589556290260659572108914173239347249465433184760154138252440302294313106849783120313412877894989697092677567256585467517132211386907648540561928877604458529688080887972317789136513037603817785765497768673280784879422988923897524643720789047754543784417486528929598301500419568479102727450103484675839658027684374224743872545216371895295027268520710215757558255908537163299493627828482434161938307511603836902690367331533064424537603875858609856994917344649841474077033499122670694194142598685772394874054733613230443796937014708738588727035944135152492615345210525685032362258162883973783511081537933219455408492734739803648577632738689897475666183734758363026990279496210809872185484397560064457958838579926419784288237002983006760034655332692641085094776666460501096416321175981690298936390507903745985582635871109183319164957353496575973875770138727592912039715137097488724425801935005269868777343344477012328478486294408401326127680722601034426923642615095647549121546823398330548418461446948952838779995868831988734872254556161209170976243171229799340231189845303966547045133937489058927953928416142889161754375516793402334668632047004976851819704495132918198845952188556057158035205722128936303809374693091700882707921839133716919548386983394412981623379804869484470499699541687408288185377294346369907299169985723428205063948854897008730197001377889948793990762482593200498933503797860368308511452187706197093290080552139238238459738724200179669588162258636568203842773580322293676745691166223772471493792547480912536989894899215145845118378164554289502507462575586806623697063772607983655584234476613748569017278857837862563326105052413588054172903697793680461633146425168411903527557466204910921944208696698636607097362267864338041344761885057412279280786571858059080438657500599305574645729981388022065062416659152920255619809834366517421380632476171159665474271119751794657544343096183024923715262891448606867229133686593152460453843246289623936394619557153231903840039310772885965852888281250252733349697966124633889799803293881374352710533508269721718729634162358548142527251379134054615143490100534922387901691771951321375609093154218491047724110263532885323699159158803923829855334860555596176090324799385716261614084545597911494609583407517255172522732041041112661124583881773261694077891510749798359030283317291143183343544015695104539805000266550334412454459785683631220302306102192735104743789891046741451836477634308318707133936231129008306574796503779297761601105267141055591105706372705257971612166981658380567643382246858406930808671672882146379276899056516299742813927681961012636819766555721142885217918816222044058479227920005003490778387325785083892559124717001162945358927300636114144759597706383536386764633352060571281260572624473957158928620051466386340403908031553755374023432878782235187878915901978682873112597315146386357717066617247479466387858601567182324741785083216426865195155952309077181516193664055049508557081610425034414349555400195217800575814174196299422914888646303199637093535952912785809650634340781664348049219174508335135850012105808079265298066741011228873892436056314677826391010170173136135986823806689350248538355182863026351974976745327233675458866041945416943330603736281492642026448018944054476402591371918970975358079885162541289243969113548426227013538897193547225695162598156553345586579983198179087368209060356648660872454007610695024472818737730547231727563430491300615517548884568715042192707114832598407026668491116162362927697471239801144815174424135637457512808775343102241352694365661559642805038898712696353998782065935325730582870588252461031969428793446262016756342539777968316845029469082441500630303772075309062017343097241341075724277091366637380477837348767419135408807026096436431400132293183012773197822852142538000320520041083197103161552804684062932820605528366067156429870140671584211245285263138577766904327634131643395504892936742857960340985262080032174871786789370768471131994373480213025245947668060136892581588412940387785183734758815903724259652913333015702859385539020018083553772621428900174147022510620762233936820574044536107876253828084067468080758740008087012299232503052850852022152254189520029715300629064040647743594949659643568041316379442221687033285720119681774465327683367079172467881191442367763380075003373848248153688025701878201617326338696507907017604357187432697191332928452139963916864571023757623434475619740299922427608237412615744838250229416428498996540882704451558988113291366832832503044332291730562430018354649826209020334297005639947974776062233770627813568046507417427391067528748400549435267661855200889976821909103424522474469139916988731469324096913569849397137479310243018900386812646794190725124845321729034090179056187415607201786645310923270013644921637044345932368281277594879502148031301984813916916905137809659419942874086647871359460480432068687665701812787564914326137798582629940156363704298313342509850124031699606191313130982966542269707842939603287677398592545205107989303664259081987613232842763430993006181431129208345863088896908435767743246841990460810624506495412186130642245449522237366389616737868915848954259065147641898127313965910082330135685538622941545492227299346409054620442086554727833799550858384451430422517006141793331463513017728699353880928848455348769486345357088875060171393564080945872605188348396966328465101345012550809426869980192539633217440937978021745964241908093734275591806724472133573294655008771783591996691250619507710472925828038040116754634071618069566021239445305953995061341795325070741617600854391282190338502466952754312270930706242213219678473912162651464869225893504411248171270925699994946496635605371940154471522044841325737081793945206621588259303820235912732664781560544367065713543322338169207027308212846449315785788587104298085724246799051315378442537011914440203241634110371112856622635728590555136167025174693793681478393605588759362362042143752413172193496493411594789913116914165266565505449107920146599313959216540644817640667486312076399028188722228869822715608336780701872337237002903665812976846199275202807276768857950188482679243750524917561212013019014788681322755310244870721188690768880822914481970274164994536572759610048597544414200660011407717134787469780750477226121893994625042328566870072748267510041862405886262358257158097529327917070474493451310663108918009082555585936333414435949392907467370007962920369427766387243724067871456701937577759929704021997316425961024276780090732526421117733773957861152121265944970651754855582414738451147162259434378364290294624066996838779992008707536225968069253245302631105153423264330804456849047171246870113845260156009025441358123139167060189396657463840609638888858574353228315890346128476429521574882656080131841055019083169319445105576449723061747639328491485146871917591569369798325119802328635596073232061682871868252892441888807373650045279620950155629823541364335071213933964652718613480850186615806051991145584426809457290558868401346287393600751666746798655390468909027972660598259195625865415696560197456170412254423006586052240633232598758120635659605230527457649307018732937600165837253683662810138723209204277939606297119742494842325991980141477476032622265997547908979640974488730188098558870812204506586865137891083800420148041406839621958856309402112197471179985348298527587645696540257454735276854571109450625129009160981139306826017743469299276608122972667369676764949726437494938413769663935648422660841194577220265975210542121277516468838511985992019728036063757717360554014559042307082846013692414477611095441063191822402593280429739439684125271545794625416724317876971279623103163973273184991515343184335664741017291156703657369851549187101401059100840239404470646861016563554576529496364747282934678718647722265227460665572925185448060756827566681436446490133640690458853030373251536524692736348206961688694792014535051098571365518732669794944955508042679038995768932030475633023617203655019756051314748724544402471558593330921563934305454154830537650264575263640156181435148588961176938415913237007164743825567493846500998342447243378661626243658836335470142919578630136089847777704188422528159180658956154002408855089911834504434279855357365406945389688315998103163898609094236169037424774270975442923673054225912298175966224458446227549350938047188844488630023038391216566890494134315548113302544859875885221211570546893949725907886704226231404684279532272305536960934544566021913553375446939787697010511450522012500672479569477483473996512872396220634417688415339536715056906093807650899630830839958494809354486791508585570676731699899351119517053705601745273146747941518458253432317102204457550164899497933713359376822262971845366725583964088394862795835862108340695736464135761865907544527723647990540166958126979244379280244793271087359148298432402106498464379443213793950480943407262946058112434770869693437179523248674275734374173276649054651996577697496475815780400173498300353061704478704674888741628813974640283474213823889744297468432730161367074541287523509061689969480026286301481237058811731116271838780370571634390792949031565508588818874595404724922519080082615388798476603312370112066029773041785178275922131941892946606658214090808171200453783984341662581380189532668934485424848823443855708822997354089395938191421350228464357725031257428149299808201489161213428678527122000563064239662900734229932472963145334913340068105590787197470176866443932762187617492295415318127033416913431493204412880511207915229970381875107163468747871926123475263907701286049966966033948754800062919872948334246263378630963358277589681125972929938491851233964304905205499833416839248916593823247905105115964504397250546444388022911326190422257662628561407197958727337646257677370980888683375995882422073426903980826313612022013340130537234939626585368401976837147752453767575096964147141854674180975903195452585933378552853709226575627677050317392469064072226595305997720512648555763550196308499597617681581115210784838669070704430665629481722335056314290858353949368323339441039436212499746225260679698484929961056373363156630919829685238404275779655850988444653145184924640948863616668345138476026919601960755921998313553572287113423718317891249015689078025680814305341525637516030538258928374997158248093072366555157818425641460667301008374775135945898844244520828398421253694609950180129842418613373483419125925442024776718621627790082041342623507564347453514020993862594687275710215471867714752937567211073103334740332848742099202430779542161403791265484308056091645886901440217977136560679375173594054906984704927286949214171642646758875615675228620622236178945463921457818545697326214101378861083214721998903648480414983023488066749858121594331868337209806441601474153398414296977148314122333299267786654818740012922766696655088414277357086652176208845448944148507822893776392137962597700542767230883350864718000407839908286023252935071273314936694875972823883045965468416301975830177938328004761765377544799648653399831032804664779310570286322982441339209316370448957621682708360244437071310610787406834133864420066666830087503428186683117883693594239751683561836544167399700712010637812733240476837953741287355160211036665456527369213602150263611983161995705378695584634713317818225329792273367263315375096581586111399665566430060293192226468359630759298536147538762923386739047843127294055036545314885991328409503462482815161199318911798965606168847696082808490880062050293956319392726780461788116343318600995070151638373130255825026883720812476671714862738014161203261471253669746410841561143837720896531580677807912698183787852639609594554223217481792584639115481168131837050120572775663955499192337700817316866111634653338412808348224422703375140821182224805684349649500042981892352482225688198176511304407517376889985135256696637139982869336082959857050245897407490739652829684570044808397957450440291132447516217206922024934676187086321172562250670265529440228431177709985317129881091709678702580101989371480749126185781731084218249356037672836257735617611678036972278873064339550995467394370546330303447323085951121132679191657196277206163094401356674946592141715690116652899144639463883604401161299112776378953490201902187047841446242687810186198461770942103457020403097620782319742311989258043381412327532474432606243318456969879450265321201672553194461611871356221265102873484390541587629312342811385273743839560702290731347790259481220717586306399055156299235686527060884168847282488171020398173816251855008375939580258182810164808651054087709318760649496445722377514747003563620219341532277563629964413472943605560595105152975593730166560087320045596700257031179826110973241315161312025168541771383638319369942473912354696831387026376911551162374162370619381005264061990453820368681882907408015744767735501518941634433908313660156931661009213091442575926322257042063124266817273926675296259849302657883307168021329268819881315968900736107096695532931101621066369670170427271467457392273639577751000730397406854883900834418388243423011567214293470745656460130365843788570602440064572605788121114721166034202528013100687811462696292652809479929237031808080166104277815489872050708007462362714069521020891166920792364355014213883832558279492752444990895939966721536724615740404855102139315344118337183453700963437143521811090465231468265822818562626542965367893941527497335499642786839527885550362719235118638884061922395972168013239308207643170917388684414640978489273234387145943421828649807934780417501506734138775666583587598406559322925254865877125550210912898650468590914545507723535062437199224679561559110828732539861854380636018735416831820002502613112067719062002015033946823083883267081082840584843306078973986565971930413408360080995267572203229002154978180803759131022036001386037638748438176297503600699297641462416405679922294883030698388212465630547361880740460701251231209647917704769889991625758544060912052898611910861953848738115061904817912998254760656790027141768571183479489421901456778665142553430220753253523733250023628349621651404904438147706092200910989367516692499671929335779944299454392148805144757238804676497985079851724168947575318353568719838554373396081575874303733540498406645073607982375435584318847004902029693538738214899217182938410684481835347162053246480215820734506351768054296122971646136780163520004427691111372401658079870370074331882352455816182196345081659927078378797884141409126562571522399666077725956842456803450783897194704717656995153208779033647302216031011627570634066235227121369415130416166641491130918929138363517990849391316826195545900670376646637545242500602793922463402493100599027661730721565778155170138297637962610465076781492181199732307396237410639866222980897433542220713754696697380333136090636331666150989651292371077513393192203870049632517610504492517732711138910887676135947807596934937775551433047977764413463003663305459484924165680979012207545726181503253945920934950775161168056801303248855656746188129932291384187055734146740687706716176322213994350676168178424062140154038167892349405015193791215034517041404958695071678474951496135888171051738966785880816228830133003571068768543812353817683290143076822460684396450104055452646250910934454764636270435028219618923526248998542019354536580244279629477577421329040675178450832683833472763116494806525120811474589933258003980680218424747389507585065680214549034234145267361212443957499069644992120500474824193994890635532377227341452198458275061046406072541629817174804734547861423220810684405976919102393115991225906302957165660136241369124377930413491267294884794629001247965176987364398877848009114526763494330802288742525585421836990867198710632371309391928364158341532579431937156841137013401178759908790386321944609015759764752389804636329634870392684003961093577421194615658737412262742680694846087868687015933307468902985753212955686916564508158036408798482213990717073892360186727883595709758890778889951281789803896418489795343297885641084734120452816770681310258729899677212340964520636558878929593176003526385887863828991393271693860782155513182421929249402404274694006371874719752222221315169405192590380428612405147528138688573418637877031875135471530761391327403539954110585995703673320712571940014593759919807504134236852533791117633363816533931911270385549228974896095775501388669351275162851592617747420866041973466176580714904721471294568181520089200398677248117496697278781036114649555933945876217187334048822971102119630241259966219324162410267450710565489886399112570607559734844506952182504644887836406145321644790460056164793435121347596409161543860303562342984400200055834734499597531692041745425238765599184992994580144718464237850829259779683779957288128997457799146771484430628228626810231510908810505651650887275238674730072729166898446500400034280060045191067843772777410703233880169790802712260883812647829562202035016069424214589280268041062437185261644733226100007794639267738586404317209107044000347028640654515294255408068016277771809866528662239362641627174444002764307133033297181801690576731533453259529686732832339450511753486254986522619551263136055892737153025083904128646248427451625974058720990044865857017566928063207542184388543506609239572178292716012785268937482888303582055925943430882660185965355013335868073326528149499277215670821556645344959986552027115949436634460546386584860216356640267722005688764164085799538914028937721438218298686001326372801848628456449254891962432859546986969392141066773563288914166643234524736436788546480723539240842200660299700106125641675925447227350782719499528623238603517010653826603201408593204992447525480180750726074360728255478815634693082963238762143604314454120499076302448261733976207896497572326899748812638497384520328282166678415987183799494115883735734772877989519236374366354879126706243632384543154138060213491823506461643501220950434318463394395053718224534453396861572805620993996942888841464068631756956608736266191363506241830528809516791628943530778414099346251250075760537517123215510712340469484781809738202815809363673684142317276525983310702620057757123922310170040147317005226727656515985228459977001690713973937835877310111830193308716472335756621233738382680812238392203248077986690363899783039521260349436219291243281915599555560068121732313115995237807040655151849366837752391198889615850579128311854742526337350235211107181890770507418347440856293895831543175664848834665097330891496029807343752484534929673658173801076253800516111440691985512717787479175286390458183375745416805079355762370772819072286674443864876433484229660099160564967278868582392126710504270162605443400044317435137390824530725676497511582915581704760190735396038037393270214264852507232825584447599232686082181757864662372212689379224410420681171117834265767216283120585846942859599914514521962472348613756381528103329031540446765945470993237203601422591547047236911591161314203423621446385397498078765167878365016196694008368225499715642115585191370389276890752095593470613162270063846735467833519985229025628302892451304696262112540313932139145463900972832842475401531487375462063961387320495056882677140528021246993667126231762110501593603274369413287682261668906007038948597236113340503321389075554990451166975602851066578778785227085246759598465757291942016996783291026235829901636716440228421512685310779335496044924325432017439289815655463355436460823263745627648488223094662993019795570132473268427794024014005459409824390026291671225845223995135905596382256355319551205819384507782090626768386655554829402392876416881817649124780894859825857208246117601790027771788417252306693181097122151102267734648384063158567385336835075290699290911956614539578840190248833932853758024462179195981423344657436118264802812119907949134694971990940455498541990473848836748869820144240772697561086407171044371828866917179704125651498901998579760771127735933763905880686346922580984956198871192662501890475779644976415481846088482951740944727645918891423272851123341980924785687406859880718333372356908059910203297464224764608308012088257890141868735168917916474476318330197857465099272968994461311071175424103535887619591535350059446101816619111675906330950402759114377239422501853886009903623308625488322818057919723558478026630243136353007690832633994460096458647134241401198752205935771238693544431662313410703156510809332843442094967556819813354024372288956856146108707316407059543891855886343625243304887289407896971224561106068452409832540697303560288157175140265029508890077837026340283370000660769414980319172205816061566589131775059691733943223751944442808295818251744860028503703842515803751333466425418146807841331358358954599819403230013779329708462080338216798107884668657017381029146497894108851329199929892770663746558550304397211881127956274655512726791356905361326805876093592462202438735560097770903289966489085164626929822985415280298307664877021381027076217028919968861849453396376889136776708665602122033410785042372572020780223216615912547799233015316509882264089078229492814750199277091691207093394359199279094017570743571268913989344841206435298136852488621916817988112631509610786804725664171964808506091631907335007121605424759141588090441357784716169703674249710365295515549121265786278473339296272083892145966753502448989446375637575150197255996506302812294771384654098406013984387603671548150655471908562964462843156038790216473516798437826319364750745526610466172970499527500261885620231745254448123531748789389557164524934403872930433347053138195350956541215345287823026538068955936030612143703259187522010389079754339135348052177875820362287797966204875346384953655754950948606295082107226081196240033388194002060786545104999762917497476105146496638049873479617112077110675566590344279934441124666688028416959369306803658238502395334561813241286621462217420899961797608584275365548306893615167273764890215356957285221684039975038559375840720451163616956119767289388209134999843151106936832799185522120709408320924557209373867078239883120513317547369664487251287960951560403993469600530555194065790929846927932466467099189857464176752687205163917052106043400804761555798241287056568042526267519756660080675827444576129058182537283023097173638289438599297929504736793991406546167898331559681685530141746164808577832505751960235143408614254666404629744050245855789910544356914562360822197278116775822050953332554715439663080367671370728450562165900279354751798210807600499783270973241791040409303159285239146226442683028542217093069806403806876868402282546373837150097842899888284603563034646626434284543538157427396156932099982858096716483623263982274929241525326719503000271783919288311411116566518692716386027457906093909136474570139472890139245100089511609205908971416377907723873427666423055060151394766507465743858092084974972263105964892832260022331939208097803127110512996640718267946990949851572876598218530986050396565291943432750240656730285000258475573894815795765721740382926144646922226745283959531833225950554205460335062792931202621440504635547181607766194438568567108403366845402705827146741226279783380783243914949866424064181175932417813262490268928247328533100677988942388019365026611693665785788352417425594329260946929148870693861975123847206159561674375439159785125257154295281379365082419593026593068805181879994967953938849388742039585386145431907790242398600291599730939086601718354019921409307220911745265660642755758936317760870357919784279015174246269208951554258169277673222325926392169489553487290019648030848043236155845205960285273116126781395194286048981757821247370639840589955982994046221649132146402150135229509452081734708982112944139177772384967460763671570935513999371338699762378090218381967242239649022191829528054376978957124003643648024648147590490359393742237354797541230126220166004238452916971293638217311911793841713342344605088787555714623305122031795411476091898240211525183142816299893971732405218320313339575290040343113727902644977740125235423848122580833426102383412651586374309175840137957052733608398130909467215868091325999521229631044907648494105643109647197264787213403377612082261043930139187706942243790555680465757185334317033700860901990282606628104794899427873517247832059505348860182549515492789709799778475400217660456848854553876364931228776573610156316005892672964988970618877460940445217884764214815711660298124892146652809154677153240877396613983184915697844979642887572694196850399019868198440110753814889133783988668036032520369338377762597744895064836264149142631001533780846766304957547016017257746589059298472869139258015090323505873097000792160234481660907278009731017981893935180425652860192312087222828548509728899216697658038802714013317598382878751496934326071965119070084631086865021133817408659317293053594384307668980197118349046733029314363890512451698308857357233740848406752367320230435525508584891968887520692597659907035452231401176885512422352291823703777855656943369392557834027300437416508402955259912116639848764830475920065400115948294266596672610164567526416158554718594659312402349945798859888327065965535272023493112653643245156418170063478988374999361206823074493792707651535662322025192860921629565419084526739565070039225352178312681732998035563834727539915775160722817136059455261891449719164605239046731823787364285149885650399475793928235619630962625386871138823212188349767096378382210345206219509157953600960684754718863249859298041541472528960267650374984663519576252599309167975535772435332884960507818598104025116952959797205774962440916415769594821495267172785003219013708520076961335975583146924356861327662616944690750390934808996336944326406963837396880077525594420214529946973666421998365177050115946019730174476321745806164267667799229211068360560559613195899745274149753174471868690966387279285279370028267960859018262957667109308727435211066747416314561167009556949228121444877129207526784361911194519727058111969516314871665601409345529366450488320462294464952373840926055780869875520809464304942417239500694470955979339295681933847802306792506839042936421065691459993677135388627054337932049398816275344016009908806871546628482295390974754243514306593195603117768749892025772714521910048695353112472899486405911941517333943352973130185590457838566962734538785640842989064862874054476601881907849561979944102496512114277577105980828882891325565285002443765897364601927425447217722809219543154847109291457186992876282113737366896852300554833482103231953579294379631671925730916179873347587483898619473151158983126936621839634652953753484352788773938820909640534125419949073387226554297031616144869516911214749541563068318987366868604331333382647238972462608517362613891809501488351872136880421281184654203100951879341023476552064046702701388891776650182683624972859385934419651634906800519583699498481862515599124919734517050384061828514605281195016139023097874772817404989121941246391317369913174023838618211017605918256014571648047513520922095894405682789168437530443947988577983589903212770670410525878766268566989286847791256534703350706960863797920602636673133710047998472913638010542316754811673174085624515516513551904132563318497395597658532594730408792936892065224966351990868324711998824981356295487666499613908082536140693582194624258326753976510297994987705241737807699738714240236231132040547364341097515537906873984089173290598073321035700989690285264686851043846128913842544815263663821066163677082940423934955029377181724143179795196018815548007628266516220914565844978922389916676456833452740119786568925170555584317556007840051216367141444909550099950749666065016615614817153383549833704208966333432318244059669257127838814931290954891236311861021894018231032794078583967976871417993030813070355695667532639782414878867995486970481511661233033520360299865489497095410233925921104114965010721675567712522163013746722456317041843210925322516499248162328129380816500421803125042016703987571835604266026499184278571501201684035551752874997197937803381624871621173948002812756436669463715073948497104678631475701293642149347647120900248247014635763602156858243101959818543851333806359854705836733607505803921977857898769479717612692357222317382640772597610380645414391688496442454290139719701614673759517700106481568862046829225420797734938039118193195266921087859919776912775879679093040781666660293736337857635084604198997370981356147919038816301825573213525589719048275902069517027641283674256791221175136160044403466275796343106157044049872652866453063865455596556917607132656116105093784685852019986825744796013557984502177547281903811384694916121302289844727054816778754423510563958604057335455051440393011544552640207033803628447503943578004358486263984966595034951436448401722870988561735399722837121180476905103455881373570865948575540564119019515214134409618574516948406881866068355942573266876270552154660822230943430123716526083586602149698159915078255835505311925245365359059551697554922324259975238037208321843709424992944658360365056932527529945279020253021735009176388899853063256221205014000597676464571080526717672932827912162161550247631492059179743266477503113183455750560997478090262703304565271860504309291455901659810621769224491473353213529133314594792309261343410340512150614912435738650170345569567637193825863388729014804690811006961666236405238339170093557025152849440310051371413980317493446574675630221879505896134993461490320674463662450944568120647506905276904168250411290495623222476093720518900415311511309224876981041578435934054394316681326728936038444465372622485142402161529125418661674536919064949100860152453390328278045799122928623299833385474197774706166847197398615174468529702973032748823528371993473628417724553013703854608076337123262737647323127033070087983965440179801635610709650874255767888382542285567515940274357664174747577838801032238308365839928773271311006966843681500114054813725149538383672987851599968183160409256983150045976503898382479340226038566645220276585117231692446805979390793691032128476652492475238835209352423948993296205188729171688462811044184610358790422995347406709933766515115492874328598903147559264317871791716223973682719884357535007947546971733101858122198680954315352004798405742333061950279275358263602847616267563685165867414404709285517524810864690872041797351917141777491308772845911691260517876500628917491606023881002776280587659216672975785891063355170594025203128969992876599945036014064776693043752654703411125399360220544898849864132508016365859814680776640690419749521632855052231100779637397348388545285623895831349632669545825468727043536714916514803185445881634413251719553460218750227576466134291860330631439915433891975619019646054898416698875198160795431654802897897291771575001858830937760577279899397932502816220492151148404413205333586020805813922454582460040640588571990756667848802533517709100527268756689742377625027150725538014330829874186907882114229359566390453663513518805774938598952086755421222761867865242182308208106574646059332693861633617689502306713967258012746690179668161958993984743769658545663716607573742141038263647284133282835903381628793610781359690766110593119925498656378020462618652062643592541805842570351488913057625858000362643988135102200380573452891025896834712031454844268086339860221018152211345081725010052450366667898557717416012753654530416703961467407113140434643130744873603313805456111431661127625276610292593636715499979569199703031685094872240305211795439299222054392594873627074609219838202169536347335366917779356994755655753367216887288452132910162313730104854162617164003157522338325841716767286793140444040862729285763320710605490299637318026076967503712854065698350877185796446035922425842139103938929924961937624263968280747530652798886891406012425280093055922448965620660285212750272627568005321245119810800703305310357006368361695495310352331358165450589738393550686980036206934916663850403166565917251792052557764870338427484041913549864609618269723722313710394747110856396731458884149832011088340581724688841847602588339368830703792716243970033645196626635186601228480757502873011972770040106441327203379770029270832335960940143343831522713210511034627849637439793086867865394386060469348708183181194087977195312398026854258751658640136911813279386579274428859640147312102875467067542879460348256600442241443626736039058393856243059247917277368128437508338311267025639885581137826157060017504562843504301600536486132940081322032273464057528034381176068781109209221098071827169674442601502611021180185057752397686054620785776364712069572757691926114471996223781903136389480743230953328177151733937460509648473781753227769533717521649846301311495700196766802980126750224989180654682243882450807671767328254613082611286230826840286319245267090038447991791619878391358238971733909158969918298987941205772287760986427535248224750946211299010291330665723723594994378454334651780830314386082984311902844520942243200400253622820201222967454089520125960910606602164792095234842544673659653924244575901409519971247905309945325808600127132354583368003686734169954746854441029564703978018200573290658263693645215463511485917712827402658718242445828086951205132363625229079634676659957623711741396079144596698469073525264451446365009806557067221811295455197321911009051450143023688692713513903338036931433073309232300264935514957134540220970289242989930913784036314883584424367417607224561657467379281410196562533408760576384608515381903930949884902020290482409986139904301594485978363870005240296974634444557019760062266684864901910819600658996626939042761044004560880646565056356533936174443019721056543407634871061914553209040807658689509669536256410206380627214079340294718805160940531306615434925446207860578975133872205795970658099957680507014778308088470425199825399851386425483189925429779154199065873478549210168178615007718948306601660511106002221451530287394972631412711225042720332590522108882580841207446627019838870011942324804064903005183331390028090012363297156514119771658976618709937587418028442968264815390041400965524971400312842532499182216551274909312005650335779077010643130727049844019422806671384024140359641286038071717555551730891807353655449834279505585763630351834175529716119018802426102384921429846083194851083613487924926679264374252152334074498265408107479350268195554347478143793361222527752364932126551215069295211808101810267119299296942906064598735199892073398946762170406390173632361702412668487170562986436869035104061599625527911285564111140512390756821092536984280131678228187486125528384049443019227141951816474170921275623739209346677862110991978177365876107406758099306734212090475896293538784520518475429870787362202847930121373762888697243103442936931182532398975224376931564970168506418999750687686473180933703361204867055576728437420001835866521393250900452639062302588872232030517547258234449020246500796817779831483140378828998619090947617925841266668597127949424418554197779538512512361444094411343494203063544062332245624315807532193897194819544608070176249250716079401480361983312334769580712566339400612400436610633640755485609160351619514101684315014551793245439082797579786863747099225654856910564034161523050193300574699597834005670731106105031664914733631888006906936105246188433312432012145254958273418539584543600645759967241940802471822079136626925624531087745520033660121930788906541276038920394247024234559874905696912309959789760706410467548427591471654828168512324733769594177988120029452385304995095899047912344699044312071096837312979072758937567714268470618748120629231913692442366515785670236273694407552294257566828481278257735898058613545740431850254667366063999413133962534342499832298477980530297974912001262086038340393324811300782598899502996502222089040987441914098132005636110560033692662633794970454652001334551124957204465778071675573143481254645958040641484783393478793353367152204834293944982337026889184461861413923296409775972460160409606842491499253215962299422987649479106932835641411678745738625001055581744593149655232797783394906496142343986435447418310800085148052949048400967924107897367743966989297920042651653355881010212640958401004634230464223111935788555773750753490985569976153043295515590594621749151582060795875151831751416547798458483582479449003329566050166889653609326253655516564624000183480292296274813339332882906001778813423204044013245720512063634311350565431814102232389413719450541035647236952583666733875728021096832519931353346651433391837544329722552364034944256394975200745149334919780255209000377106687367475949422014330246043962438197628610499863404037722831955765803794490604870005205999509282449016646892879293249055793531010704186587920929044183989290597613254541314477419986838130857849838731675909127602741443781177842062706487666512057563471003534203162570828906162351781737568739038734824255509729747451198399988955987509592004163602122153003692878659090020716220376925553556721304576853050000226419242146787489281952079050883674852015366506402176902895639645607223688603930145821853931531038397095105156475895719771913687512044101617302609485489696692700753120589128741349052859783962133901370821750595403655873792426964058138401854829027602283078836347502273622240267923083136392595452330094206164352506608874040110903448074407780731433230146167883621337789525525857875098891426401840089885078425549150541465049704293551034153913086021366870878610260730603107419619263520088712191635980045449434227435232300929909820403064483398706247517679601880383393608112220905683348974386667452884983279832544775307741283058498659844615570860911533143263838919834120866212495480442197958210334128039660551949422366299218049744722428287618066466458030832167000693224848595013048443800089765852068390238803009153054398457990664271075570461931135833658376104809020707563164456235874088824478743838051409431424430207572178713363341830519754707258291623036911646218170749485729938277566553997043667001977745159455136446491223355954222054071122472859735126563345392307625546203165638061149449849662431003576056984565092419313126090822753277923865565064222452342716919894900777359749444271264048200365168704571031006906045951765789213324851638531912471214091762105689383173294018991274447501152058123463888490057378024292960878237470830215207290760406648256885274832890014289688305539619503110169207260846183388351714975310038525764731813655436281314663740165073509982520355211326687220663670985750833303713211901311274664350782163123154772143021956942533393081735304733593280318758033594617417391001709453071682989536198402567619612642271816072967538327983812509405647481108680571698251597027960933550995799875446034535262752443663256539385861313677615533598177000139182641518670773172846128702568252578733804222586319965726363052330430367785133965477041295698769784498779839458779876646844777839246604290817988660254026020441888095250789639067543618291034669786224259559338836438923941467591449187785605207920401834594631655155826414054956646645253362317060352885160717467826754454025364853228241610467812717313512427637065041450493340928120506694338591862121833373822795718121077732139551042715512121683441160388139767811948612023307002759339843389916750721600578635330071733479268445827241568058412981170789692365785686211378606814565413661675276861736207182598898837158504625970458064525103153493939221308734252195659842353512858559395373139135579559423561861453711937576461591113607898560117336625267227155815463753672988686707816208182215507540268946824635349319220371425656415680408479391996647188034956893697513326172511579593497756712039917986296522337198648617073681289480459083970236089272781474492633139385450582771991326762994223887984095704839640964133572996105676704558971986302673807629872740460463015303727539685140708444410595669986263224143721539539749499917252552820813285021224743783241439936430766893629098454632465626662889650378595666083785042130343389674793320357799039589476340573562169860147051885225306932159870067530323747775659164378864734245001951337018201174967620255343837838717495553653365954841627907603515990800697750465222024419431942988898717947806538291658013164175146284983135859524790087470321051534473054387668080137430463108414954205253086400512406675529633925827568968760425631899728649892877034259136197782255750443386496624953979076809331691053020595362784529216425552822177173486541265398621553584446542924148242481875462892389690152055642395099453993515072936377844060219948186306042149208421413964710734632199386307365268729948960553689701140638502819005486006265354790159936535799484123807157311094785859582943675098408939135552656253926667977352189398240155600543421412089961123708414500083531779284764581802754489599948472986029120062336172927061056950624259610196617523260552191245371820779391634352275180961994667484403000653631856938427686675036115053181008705112093558704013045891789084853644296528484177184916576973204025157386318584737489521469113001068182568840508671465183930952034687968613915629328145639803341285175844951537314834064276674010208428974907140510941938903438255385243761765049240610777623005500723517006978395540676970701224736805643774359227830270433452046328891039624321877167694371932648240181097691129555301787926755951352429223461543300944982274619650427219488993521449647903407971057335015091245281099905400139845236705610038439789875271517434643783490311274113215899784281163499578239082410517225160047861074526799552693135785575862750012969790566646363471965715685342172346175594307580914566923218283939454208077078169078304642274590624801664234785704700690530156168299495360959234268475957369228038319281008837393139434160962099427757412224698734766507682003875514619943419889967346288580894830331538427691439743719409808935187072075200943673818612212771796301650156095978050124666377752819569440214904431004110890516829520833729790012983300454760420206457925816755201602021369251280749592192517866584430235165442228076918085031071031301902152784789230706632472392167755037106899574897294140860308994610448236820193963716669589606744599805610160097559149432721241858824682563276780177119213769898545606892972270508127459732520704211957400270353249103819647856724554482702240787574400736763771841526285251196438668134924642314854211011899377651561478187943632326970537102523018296497093973650734469027953168722965084214165795817686084656346873908033774412312599647005731677318918823435151263140380576887419498074989662753234322065000034287378518737003001595238866728443134221541813941972276666331931876047163828677103640179896149885937573951480569863734647680994613679289592258557107424147846220846835515284606374870084366426711851914732291450601061228023626715747042753433210836775105184014862282910385005797126408390747027355631691117145599646507910093159367697236769900756298381351300904874337510535326143467976867311110542801030109153862294118093533976166770419213066626682189449666877543722297287502668696640417110763241279430042635471960567118693341770865254947072946281222979385552944535713159850080976338473989348317446900627768894771398900539834149726538814607256028015516358191333308818670503413388723602399215067025658463273538569828721449440614413705892632142776306560395444346633508281862812986170707184144588973508691295912626211852592330712657010862850991563508853593168789878292267981129483445450865350369782027062625257977661972142019277912028535764340629014757414570693934325477433727264846092117401740361650627596516615133833203935904456805608139739369704409709441606218364578554646230053960312538210548829479753603764736744212714150631985055879292270261337509724501096256840041280392147752134534823375263156994249173559150046438983623657271986952796267923536366278126147351705542372597347689923725288125217059383570591723380671914211021970027352887566438318852444096658874167773268772210672288234474310471317939031030592255498439966935363356576707464952079502979807340607009226901742368863929727954981668200778423951877928723998321133031139451699729005225164232461542399939334627975199033669688181027277118517456860747218705764542914039599492610985211767502733498679477921238743292794542358402910516641761259040523665072750289776675418679086095682604887051714600791049439268658082647624733913014042992251946812176041231713300265054905754281536488711361772306566193834850560952143001746323916210714795700561192636225731050721053456642965562801883132287730638015122325408975064973809104833721241747175215173853489875931217284170773934119581839563839312134975782489567138322919766174700336246988558815643118977034802757095624985770705947594627790609021535950080599210081377150772975047873009519831230434200783628478673905805956637668304353954683984201677422592405067821283809345114100302722785424480586210534945620241822991070870155162877067689052338033901054420236227199352252592404799912853252349076099429331045761163870510896480152955698784499190773908556106372905209537739342757852753229277329133300655764158062155843888529687486327841379860096285176385003916013951678198875419461450756950086244408957667331717629113817408520492634752850067799427868643607142559892356891241738747641892211624760035926541830132709706712523648248694077167197714962367954453950063191794598821827664597825916143021357913508644012654620110530167573870391890543736607573199079311409166236700803845889924316018064278262862020760981997323097603572499877984371860736010863178131319069829123393790781545504611732180225744483133657353776869606441157536368099242151491577167669134874958922057729548400901817688354010161246840287894199478857072533053839872750054174159176280022712974226730786626008579115025163570321954458751618695781801555497680591603527687005853202361397418870544638014915064685034935309882004834341415839801659247345834306717226211860586463147904834605454205079377874476131930050254210639907926795753917885871712578630555045101283346248949785320597027212989892504680382936558950829495455886312471114924760693814582303582538311793330664889205921145348122683396113307148607042043721189297683075417482623625540839112674120630144784201778212335893132412295219407036767309930583046855840472773729546880575022522679720932273415460786125271897263055136980249132060649737955005109137794400549449283069947321257806094073994793952083971451595270334685089760414760938046508962062435503556226437058264623343178981650284722375837556722108889306956647798154134902072964254970302076362181035362209369605132638845338524098477146070201865060455568559573615693099920213157563779749416060169702605425018997952372029129476839712308739262724738366366811989451218965636285279838056979018526013018075707309625110002958155729807884186748005313245107063413084999550930840392290422671131595410242947831363299216831419377861187641426278010613946006874621974351822847151428653796645239380539571074229084389766074562002429792257960162944361545258737825296985735054844197547522458823703638621613969833604461330379376006024162875190431535077943390073161018799380232599078756760408824664090889939666079550878988621463744443414758889172317498668816019682755825952370741009864578903551115813422376223025631518680428089400390260601250666835291366186266538362622324180164658253178916123152281254341471338007801990589987121778582716580853003513004771174638643224112192082478045579548011831959541266844736881683065665781773799880844366592864901221427788453535330874874572566444493947166887261942062165694829067639670224884543293763823757581843975236861551753107076375749095316650686816856967916259695244207673360046760912546806676364769857114262116064854405183381899485666346177614545493120704092900713253357990027444155485986943859462589422373654711217748607574221052768694865868601046334679577009849910700642895806212382438032640543607792469033183223774634351194595048507629220130693275441307911747119673826019730936164336820922380036146380261193656894945629565390765349083341658033465944482250938571225070871898634701013074954200238242837764337508441296876623916499668661560196979774644682440128574202345188608799131891506860584705762387302769481043004653795807351993142454637820001488510806600164763363777858072717298751291970631497395226574940413983580789275775769074935096572610241118611667805966679725041130384796841289796634922588885547783617137199579369492455133841961361898659619847979249165924346542746009733586479382019419797022808998883471232635713302635516095529780464604848144103524593825317197448660168187741048069438117096079717603916163583454375549479738554146424390297272144954530546153494425762745778039837778672414975159278679692066167544393055051536749470109072870691438104453840647205675639657849292496013447222265082124318489171796097719074687850980675602427164369541206630756683875591504499421704138614819291401560397081108039766456254993944095757118209052048378476232690076457202863109014053103243965857835192077106686594677620066786019238352294674519343355168413465692430263993371802953867994421430734616861599255942180420877191444079075108212463415361362304148755100944468789852594739269152528465958771765535189342509549270294478285904234524204235960374515320513373540530681294335724047029122376502971777618282916707494427019614324748131153090299891656743191557962869580568403416717459485785483573505984089332646938050131709117640398901954837409687703584142287624184432930234586946036940846677217268890702579102187542484855658586469913013242032467923016386808433702844950475189674909881054372219495418481197016738154376249505911496434032288303392589201265001568820500189385490717352607313573515213764377851331709119848110161181747545911149267620560789821499506837269907368457742825248080221350707132587417731844777527679706119657269038073082144486720018146235230693898712206361015106945713595708423449216493265757545214600319957927166701783072314826551279846959494483527568943213316139209847199935317720401586617077397895416671600974388050541944184859912865187799122696901216002092722008445752826356711921373274883358927505415384215697487315311746982498007784957520518065887648355224196513399888724165519755519843781280636010418647956954963971443425643550536875511339577930714184815868845073062270849942384984993404191804476584883916061699135037403817251692320717252125188107728629095659371874615634948807421242273229749805949091776393576106871258335272200230622669028259592929147325772362181908650746474728853951353078489399808699884490013662862062982816691370869123972955754132926768336189663711560137651919154648404468324024368734278567849329234930478407089077770035844880834500775219499740820207989767871491572501020588165494693676151479274461173814535839515324353944748991682009207624339752954558198899666349873008152664143864132670550728285004499287915415728473912586734737156354127697558062667897658342727758355779641526972319080510672483337586187953593075612435813951754366455958854357336657649103408579673575270884828899823647228446183060431244188685516464912140440655409527005802068398203667293295012845747327897946732775253459772208123463269336249095359779119310214318043313630312954259605456790177021308730164859595415111587270100779991621575378573854778915665851649673959574903065808490475279876967348487953307775794174808188646719966543883629711663906829169197876588803092207106266077658415419298583830597173204641785124303070960064918002709125910254908202520753370905869107464502409252915715909288669868231940972614660776172672994879345318304843659720651996546963408477320391469074870389410286204853664992794478542034369089238623261689697264788322493305404370107972842974413254270616062194999565662829360604290271022051314296157570888252102261797547661157992233336395198065972787354692965069366480811715244366135834216849973070179433465192798079425366522005113554395186094743201993040151169910464431099252475674433831973799026890548383281118888728221301175406010814710862687686773687988712637898286240812274239466877554327745838710965413944595840793674513108644795768946015106463523978964856092408288931883739934460701500895466573099483452040629248640812367277278700803361127008464860510582729429778129168829885670809433270895540338658830473980752884641229281553288053527225353780048500699619377405637171013629734722671360944567082023655823337145415680355700939904056297667347750968831048404831073639871601645746553711345260358788325189028227340492103619206566741770431692261645084971583111245896195881165413043101057024136083951704044463939046606560892070555739669519996826366915499560994175765854536302291017873450555988202005008915735784896167266049533366152028351341598664735472004016852094912702244355603670327663926897753028550935922103422078827171292599497777317489393691743730831271949783185780848874685459001092723341063606845895280536610045053716674423439875040683710064759830958863802258977421540732079858435869647495180320246192595516012366205193517197189313751063683566966130035990339051359908089882080747969016428668204031629630233478553899995367902515874856191727006810408142352617148026443769405163559254190267888804323275925079079648025052704101438503622961311327304698424037665823189397328101301759162174503704273134713270815018398301235780893365571009613744272301655445603761532982550717563511102211106586393208814513793921449997381539985560857452583678702087848397122595985617126744539662075447011496083869793820474459602077275255298323402111734981914538100017137403819118334578802395148978354613300363469153677632045094624865257345795830999832920279801532213685668774017198850572140307829883698374050314404089053151478004374961406387284625752488755084163673355395413379852298252899499604188023735453277266649936277031258287043163097532477305199743333235855680484423759231925587833705664515008028933216242334938600879266353986678660852960200962987075281173813355361999741012673369759746215627121276047735892287778303652060156015028692553812976374981894494339008374064151584049939807335943577437655059937977702522594804579121698774303875936283749240505201961390445952522221502894605192202774403301727971151766335171040458276076659405805034573592281214955428069059579157286262692863811841689988691682037957615438027358711018312709666274617449453078956023691183352278696912748752907417225667844303651524828357938615555672683289141648265601239360901894864291837791215938959475100569467957834922605529489132830278071139840029945796235566942189085287440506742579396542938163058696950157770674431075787225817752158334160899532229509244348165172222146701600195221664625429176555392582054928274941836908390744927856447650657550781390797046991850455698564646189225392426980389829414509194507214478569153958790752018068235528412216673966436131541152054089420535571908047871621715759979634046362930073424669263838788657730616254996798698106508925392128308581923865507758578882588382286322319833297837614023076736352903570785931851206038537594259246358951508569036290651777964116270790776608820623877729553839481216491641781198430603141554683666506009582627340064450280672444153735538779903870768865299482572984939923892630666464019600662672056645328601256387883614755197266457287160653612739816133703969062019527365374481490552821801923778754475286321618938017845099592158570244198172144153759545618836590524784585199805845391920190842978390326434915382360121846014406732228088707862283353220794319781657252165067620789576562656433735375258316113389219292055435384033358284290179684890563616712064500934554855778470120170287946580657091151174232467533734816872634262447766676221516746981340738247230560953443914145049982316410086566416757771450621401597243535116502518821445501735328350898584716299037680441213406687410437002155918719627910204234917660379806506883804301708151924953371094906385295120726454544315494098420601472477796023878992501198473060181159519388134542034779718883119268082226321116485144227978400759222012141486605959313034105900882064442410570463136908026411299948585992680910247890486373406977738376906321200791234015281230104332445996325851600079819936085048957305698515212184519999867308484162923043220558779349185181501334983944405063759334404939401488422673022132779212196782470753414319686568324506865184739214681204970608317184059565125308206546898034354612450851516506456318094725809222895162709803804833146700724512776471375704903799297220409123171000709255844074111413535480143701276480468597539914643185684164550982503409482796220199699850597972811585565401896181073167814427859488051438755556448242349279753086771448042335588052657534387416309952617032614205836861588980261333679660967553427748167092422990547508151777181733884037567785856830525894274864241474299115855025705276598015253120048539994172708538804527529737221685133466679411968473856719629726325198544545467626532221390578300050281660630138565856536044106750327090748321864196135993790666060008137620719371272181987056783753822521836869687784804655046716558160195411215008340370095790498137791131128429477975031435516984389875656533057282164274756850333225332639577101701617783608240861524894526515327844573561987267399305710343184189452659395254967265100244997862863071383211865156133077380407648363899442390859534494536580005205415473074797610782736716737946925376373740369329177489166750025139285148780768589315126783172026680620864602153783261780095808685391481825692083300544606829851246694983123366366931932754299229253627113447003858673439210608766815779484920504282803400252031053101513392534542079639466183732737819757085070304820117205574239413882745624916926286218276602026555998434945482744166447259903819789869115496820966256166957614750671078795822566483603159654220047498741170485668909279974400862554634440936050029915204588623307466567356278993026616458980245084755226081142463227372502554507327981386074762757448078303949391438440734650036118437251441305030440961036711487258528495187989941906054990144886323046128573731184400772679042930872836591241073059229104370014546050104328641183104439492228586314977823730379850475151633212826849264537493322449695466071101849240253494264736740126523328097790210796251672562922733080570195981717275878747458075679327659859771472832697110919320869843776733829962321676116311080197442292450406396796417242879508616034790454511530330134527657646998081484007083761096273371712777765084020186592912054249675308609888743943848984798970720610762664223445857559134063786534072894799493644217194581440573982722209871514197143865852302070119940458950236883961008184996626197409492740839557593791355740069476230814572785524780440479648862406636433144840252297475715809094347801145329919530404249180021584530832360742505577116247310253639064293599586034480873269288784769082160694212901308335433263521961042865130795394900858983927823428253857653834027763670415871467045592798698918894548938826441009555747154554380161910907838136764049158257309349386263440381031409620277611168262472093842494637361252851165928750470287639716227441592185563121651836537848551291258032221614344219751400029224571410169518195745207777914374943176245775021124908898913674106367103644195988702720079360627395989660389921359791456269087229691506584442852005874691658911233749047480721226842058157753893853237898216589782709151835182985399028583434281681656020342728604154761947080897772428240845248484377661460468158482762102355496532786324011110634016031955198683290921378501335938524028491927681639869693574719761601779779944981870181189619023285623391622178131655126534573302800903462181066075236354448339666811498274621561833741615854629451331499938757300752770440741884385834210870683782894597408770324443202468942079524091609947315530157343841255556209913314729051750173105887911124911450864707907535770108494348056589473548763575830384892434607358650553803314276322079177665385691868405678326449199496876474332870867004054270489951817389716385602328861651082684000756251342567709833331426988816248658378964029747736693469790609771537556492144498448230146285957911130411620192776914181020053491826261348163253770345987478364492007385024083004633861775497129012796433692038377201079700809595582185826274379623103432164273447553101127961889926411507960566715878975334310758778268074792257426660638953292540037638826859379919284256821827458993304878893262391246685963485776751167454370839054145430867729654767569978980361466864224046443482031942919544342410474704886239829912587589812973863815023237726038374790788056748216920518448105655194055497225483645104448475363685468320402017608547888250035259473717152584755312316926049854813875173713861262254991318639355119953921210104456029645126063707052206863643455678126408916503199711156502214586369127217018285203837724485588168997266584494813406929615399679563089789202460581385788314743742870366588497609448961851817917042029895543894768680883828627666795868186188049377189224084575335169399174356854144113717515806498265283615982394471463675134126545629682224117068344561415670072669941901107807392405994438548331111041110338531577651768849521239492419082934466233388229459324445077785414189558392138333116957802744646287967625920534011490937818038018329220525556492910986404169671135782819542401684431503598877638622627821124996916186621330658163896990811116840025182700098485323435909607924125105428973321612266733139024921422072558612909924156648146944624383460741258810875400670087480048582536535831584128155870421435624208016166297859246842267575822095925526762276966448647242518958133955784613259585389547305267174529035522775487660827246097090640181965827424929279503168128985219290748311155802118933922627771828247364610238070962435532794151613316832478985203721115448292879920343569310339711164664852091445795497618034239308804356653933060008157917471569634747084510023523127298674289551569596430754798156022492104154343196810327301429884458264812185763225236848282958718112430527033609682036428128320265180493982460318735254728422911379794484473383092003333670500785632396045849032033490630794754092065042918433330911405402633056982242949186753936078704002944323417630622064008697545907312807104297514065191359422186267987123535198491979626671104782371254900073013024064553619263361441325000012818950906500361716703811349048229314242152817976092438677489737808071181036405862140620289681665773068753420427436257936437517191482933161249691665993320161746619716195837810690868378992373831610288790712774322407815154914111122058832237783198093189300660705135340083012598632330386090085463871128274328044138482632517602594531038813809758931543235792299026789249558201211578150466634820080965760865603723721675221716684039075671796932555263104067902189341067565073844121947414889643889554087053531357046967172361553925607653459039645600779225244261893082453971250125691499885482567124496379739833019471500793911239564232521190725190364170113463600050013515653855921431920008309956154907100894622738483067440519743957810953546465462478496914363697227819706540749361759156967594263107051468764083538395413449612719773520676305805435435597121868763555814131297626776855932319141488868196994010516435072594468148159000864664483417239507517829663035220870799007886447056680376046875970901715338471053919208768155283164453038600091055552268692180006290320231190201589517121084496363880317929488376208109048199567113547298394735487605277004942408896185110076998132673426856110893325815398061615157233897167101294008899080217756920928950998803782404928259258760880481838675760923035111633749363741180030846722496319924725444914779603914844504066010951868168415108337118152098456171564018247642491294121411917890262991003062710216203613773488938325879533847568366576223251415901475241601031571974112257285187810800419617608235718120757133945755159419260606726779317634590161450976873416030512636101284840957589824281674887133615286667534260387907983705683910570813982196647979898888510290069279149202972405271937752532783204528724495976641480057111473651795476443962507171318581449832493903880502668901872413177794212242982743247824247954243664452464111698055350890971934967827920687087412411985444879155128574355442205260484848738243180171139536430954341185193472783507658212645725594941205043737769551709430301293645844131396837482591205785854944298052754675585172989533122543902537936401519358858884465202234030142364075338708071540395247491220429743237275442700774601374303402431029411662797548431501190854355343993706694671981227631465645303464873119156800682087366512566334957791142836077577418878613734165472593940414901480836341978456338743527815324520552641047151954485255696800851044636047377579551383010613000797739478088905640621665607117257117152044214426238362176751896872428066353099337967497074759485467704881213414261706450364804242621995627690984575167280489395277049649124986712230105874140290644682234882672720971785385605784099040770675839650538117661108213404932697897599447907678532280585646829496329242437412140683713211577736847700252905485255594446855830060909623420458934109644124780966702713114109796325340275021625579592435741941959276837486984644740573927610389654368460532922240935747886660802476113357899233464718534439710533392671837884960564139452324068026852421136996930812859454074339809728971609180123815730124598725931696507930596934857037078260314379186461842899359658604118031110474892509178541511762569295266129816770637154672380646980342381768465290241134691772876212244900588087703442608399091706751466981799446816429443021990047058986351912905818209643986975645107771420087763393637016148707532175020335779855373604518626505029536437012522118325980886936126383169434254134809356590862043228498158509873601837161231055877250094818097734367833890491534485226907950161771290912759854972390299191179486357294953945964564085702121537971342318748163453393826607253747709838899936953388037520546516414530544957005812588320870334725987476959492083653959545577130954460390531279391879267717875150016741332034495031387317713815060862286870136256124615282793274573119259788605568420921771316138043226471152422727458205416922251967308476808850381085423322657639953237344175411420377098849495208126569074605150041736225382726004953690883801996309232557498617785109150508144500476268818474073529518088476193689955758938382524212735894838232068707943494212154755352902732903820976790276150739655856716676613615431884580953969770244700366638716435695462161961008828107651836369276389192240340784360587826521169304584574208765951925402864340631527777133070455894223876493774590669269576814335562371839614387855128470287185944236930752837278695499388651648786185721673376419757097400896968707419257369787814982832570880169565926507173960228196585766149071621015270044703369686580652168514647015432379302857291475739189257911758516105188248784039456116706636893592719404066282553882042712863899558001610492708458952938884937675856115221740392232211715420833831208999878065156191257607385735579544956985915822576811756528174603768389084722210423182784364064738167669441577714017019607596791702985649964803510278014152762714064695178523510238985005530495044111677899840969629843678207370600948636235688531756079784204588581301892283044855995554384394163105669992344598773154156553416472051914120096656107639006912745521084469864312814818697448545032388801710710096649928134103184535444150433647106829359080238260930985823007682148149221496926496188990184563098433110895242273062406113726385598800788326264152763077731326790240018400579879121661340667317748595474473616104449337339888835211571429309808450473339332056810379132234571689162975527892566341666944302642402632891068635387184781810314568241247772247315831459509851981752616763430600208534268736035846723335736068284675225491982499106305309982666874353305955301087453822692043470157809801223575990674942551074821897668502521276010540211802456126783001747268338466539968202358319336593506744902215666200522711299127035872187189019203936570356441248443680760661699145418677331689576941133972393775701341461531723213956003621117448660678957124811190762793731114559617696928913123808752801435300006744741169114831999552350965830020228446580701601934468455309720421186464707940615514880065048377031604668121855130954202221271822542121550394966399503534817565057540512587975212051927663901155969068480587131120605495350461088702146362069859392543422517565777145966316325501291555659275449548624237515089212821527830620799179742598144832769559193093134558648716275296898859497094771510767720674035891756734980941037573765227002135330100863074353086307906657708323339267374257641025801003327602428220658583249442991630443392179359731281748821079276297689336183191094579578034020157478803670453710178007482677111784143581448279794229500090915162362657448020105706771332347258084524514193272070789460810289868612162514683842496188589956442080460488736277940128542482001417004164381899892436105563072348274586416350579962638607581091999480971181140366449094201344446490180838694387877246874494677124096843519261501446818877821267087425603618671728635014558896246069816618308421575573757667001462616726121360222140158567613382994728925695722854134822131647101407987267652370018982053821032554599078694314980391848653589362352539319818615394859637267852058167925418453099553067827663729033486035677913231575262382771713494507478593956361692212398937742486874831436893552134211579835933948023396317214664876372278135820415621458242365475619046100427253132005311060595764798139262635199535947337467708583433140653660615873772783659266839736052052658754235465045379659702097358918448024162028385737594998511702598633823672821161730431416986782543639460408334289885103623591236099754532570496015113018745293472677040648397521311004820340156013489931394585882667046467119760642383366370334728937101796477368405079146512535001539568461190512662953253879833663539335691853972513181296591213484490002884474594704651553447559836227573591863107793398476842900202113200383775941020390801425477007590755688043185760275349168068085652742091707193485186637625435564350608251772377330744515692865909350017722179641198113516298519856596311801272068232938877128103764993389447071571050204791726144883313409092077978829225245401228394863577362478202316079855705347169459849320804614743148597663755493425794177133430911312669785880793267807744148816109583479541304157625892315282535588951242558707686438632148061915611137433557332089252116774870311497780527521941585352882693700297107795949983451505940568703304725016366126249918510485654319114296563178224734476361972730662690999861689021516817859367279266714092253837433797265795941125009118999027196380919755603714076505313496035664379956439711501645842192232626026156417567686097038768095470551235481671248714349395798945114153415709115479890565226844778836464545746400504438388868763227973226821632317034138216768916320530097136785889367490972771983738950269329108295958110940150784043219642625015347777929250903144380925437627252718097192260130521341232526260971887642789423325827319848736899850015176583260802144341650395814621236143809708641039351181500967408429722606779386533856833013660998345287766792826032544126520222818337586106542350039542594890745158913980910120661817707035899574928497900179357734076947423477934337285465192480118594977568469724582193181296897945507018336857784739318430250200212923042825080151950863221288174213733973788062914643917282257978372686229261397224090473727845026907990522496020353098663468617195506438102819937132918775657490578537552029741103431717945063342036578048228651960321469141724178257019731911801917858641889608555258301711204433321052275582781832498547971684726254384140955212405707786039917200530567910243509767608975006963291477110262305333200095811278533365564513873920627889369885373805922032274922205009888149173500150771021850398697250426060816494127083732388594563866710535118705070314107395921292783978629028932074013258742479968336228358245272101439306327990459411627949287375281656427738009557638978200014327535035241304316884202920816100358700185938988118025984788087652476217109952360745293748219646981070192466148309841384355397467397238829321714676302948150887716607909847422568483837595229129532038116263345571830026159292372600747357241055520083052512068398787169532506841073423137979300928544939048105868658900247328688779196475095437563879591104128477512421635094692278391610170004219863253070366729110781400652025198585746104690881157849793356480418989975805759750602508991648943045465698755145156665817448755264303878379169387561323800517762382757184683319118515211413193123507759378229748248488458045702465148716496613872264598355271590234012934863767563408010362220995610929711080158278213018452890744705311487157975314302471163199748770548954879950293658297714166644005805836160379015524807225164263214083198086334652232536464800765284125535486799060317421235425068874278313847767873395603235332862069749593616677946851887404255366970465726232214481771035702396818607134122067021182407705899679045261636120107095113660452024541528488008079433662295171299117369418236867940832641625466220112589603514298468670683056312789101830205530461818061189643669283683041774760390184367924967636596935115203351322225687169715263935369716244049435968284859927237377739041204375693644127960459600180254371295035284662070867338287680104013717976187786388780548063697487691589659743762204835070375750202933871461077143769262120753879605725152766616519169376576284614146544246098008120929533712806272393022948167635937614470809412647136624204598988727432955187176478991513477585433519253355829697596828698019781104182630575750169286053817717253150861961180860095215998377247164781942338682805502902454268799585080550460846001192762939178561114610224974988378855303914329681342490207019065032918896674845361447311175414955199257643459949474277164477296274825623980456598118098233958868763293784304872593716914924805019188659187673758495759605953985234201471717788825352736487706535575680133180085908444728713590578315263704158035685199911418381272387167978040483368061893303113565178896860564178434734240441920382794129557630438664890200980978528958659024919763647610330137696333485724865213182808707168417711874378552245459514782355634274971928788507941319715900966166825206018267443579165854527365068937758603546668017921071448949566885221105870374569604427642322402273412500664356955143379780016937415141807843309199825643504500464276655444979628581921539545967770884580153847449781944523470374259203097967289193724133137396960473518894071565496956236233221188259335027058660076545347087285137703498446377775405834963870723631417675856323685893475292259897834428728757184257580617593375603605318271113111220103327693022277671025871450757058267336617849142193487008263263841154669517820295535917504817149711122499852037633934234426719333253363306391237950769402485483905472563148081239873390499746518996029693167190264050478974089981881681340244409889166143604934323171968085212401956191209483964689533940553845323947556784689247189923400684304824974568405095688574560906400294775841173531949325203821679866520639016689237823036505301484112908476132857169060750843125540838652561723744710136491450951929565615502959874039546417467663106903274948432545937941440091603973411223066228707660067448447110656947281660226051427307948681278701517893571020380081902605810073384993216823532187358436430185172488271574732543722633616269120048301569715016972833036666695478541751245314108307625385978366725153985230456351340739488722608490260488004000401657884156564521346343090045635908084248805924187638405440556566765387865285008378479294094605539716499338383805315832824100028940941477956463883720252176366847133523095925561037636187360591548164863459475013673220752413759687752715257734214862150890403677232364736227314494913122803983324728509766899399086565826361061362248001495115629457948350939572656754474274079006639297751962581733913599829905412501019479771367936958617276994593915636274076095444489475696102166025371775248662727881130199811673958589727218004047297190825782852876313678084210945794466300838059880288014883523199974045641724133862347534445618330883241916835855702129393887877530915005020596249579696062477682144785530925399953783986128179570950740980421591428629774945255179274968963019713951379920690638606525453051163022896267198364002319682069923724302046472017532981485420040550182263107696433061347538208595576280334367738011163588711934382758246083257687800413900855769652305741925098730479333027262754891806096154276347972741790731887590673406909080738846963742172962060316186481114890060780812445848176556778989161377510173238504055463264482100839785527483834929039109530509118781736921106210665565172739462198319001077666450111113208675574912169015636165544004762728680065621950949478309142545745414726557706089707674758296860936082504313585666582911434925195905381780498802089700887600799430636235563670132531178117621279968761153993411079191070120554733260105599888279287249001543576649214382185266428514802288109431171455190323496919681273809411126627296646484288286209903001827110338090976860426066788780722786007720550293831246992289182640756688852608287787909431915405319926982110397052290411505555976830274421295874272706328599182557527990599212955504449010628138745845038834793103970252644957183066640275595947903436343143537896865365621986458501835065208366615201505465265162296158274682916971205882006858694222800989076043030420165377871542155142023972085751592520318083088737359904031428667206627853112060332118599477479354198561040373163268475361764482851179913230136494432646323090541119702591677144822937950042620886173662153010725958098278950774535432007169765987270940986283684384795022794348026989002688170467639823035575641874006691301334638953353792835742846740512747251100394476319185519938009304199581512098474470093173116729874236781909792089499525955086411523047866932685004198539640224421355682470975399982411079712567914405657927599855780001696437811220494455514301477906862180640763742111376304768340443436531429480543996829503542707984868750409538215936686621409205527240459300225368549015165507907611195101577665712786154723969451382406138950375693809039677525589362866997686329914303345055080023059039646836130000820704521610165844431439434068825846220582802572081238714559368012221257509321514463606823729825174421506420765659909687911255591635121218705340387520561489939501063987870735375265407011573468766221175229136952149923756773276370635564058474317307759847884884706079838734598522294681232233446387128152974905634657245492967439810936083416190681405551877301937095311553419065472096631494716803007303731957443145369789022136360304516095941429871114952629468464749256874823907332349021371991688220988578718665721865080763049335094199556023440512056863914208879474629354580581345817432726874041885991564637416079745730978377811021974136753198901514174212015504718599635819267588122190945721671552603077656572464315154972797960010800190332578690747031517419758038706579405413768830676399441446259267147841523748428536863021411506755479327495893594384641371573112967251189116650803450726514454638459185236961480668108902103690647906030827733535503243277618734156754982177213321428583805608055894738849433154691919569785609528261398049577733364329064748242709356422374788218610762727032721614429745054675422337502792197852612079051477358862904154864221741824311236981210071993297603807864036214765751407369976801412318762833637234437828470678618386180527794968696717710285278049333577530599039598357925842064566638878110312129582480031355690449612641294715728485130172004642327266561557576752189477785664724818721731986385364880183794774592219541218072650916583084759109788712659528194029075646065557754579318899544235192845563157571966228652860352131846277068995670993864218012459880798052459922777749999759980234042053370943455887940006464245208648944608806461114808392393694008478383309348070210609939262549252479817750006536232050403459535220573189647204374560817290321629953968940604321171028678622388366172625439819035997127374214054584029108619817623561621290645031038872709485265415581754515635167637461610996318639057381550496518592900171056143773384139011590805377986929483966403964308752023728154348267121969885947138798908522211735525067578583590349971585447129033418279695531010108640418993908552558588068124575314776949768514014061546305436582685465870305307390387299302417428924328501556198166735542189008532197784821004198985658018560935909459444746217385118848086293273517788647094831837577863423542665887116746603276918312791041920462136783017843637714802795005688801029511562351870917141353677159451954367937498072371047587489070657647709937441857634867988721948046160189750005059228306362539994598516156752140284420948356314988227421153180836933903194536105595843563222380099702741691866778553666999086780574886903947980185958441704666207385010320078785039294535267491011151974529972514784060924589579681395879536517545418211766742825140480296818648995622584444251048810428801302410448293404777697432296844696306687699994138817672006920295749581214246412300791012622503887002597022685052548259832406562314307698110007925397022994858232772385387202800052616923259380997589871510469811238951836542317639117205990581558859253833103597058397207179342296114230950623563483272898310719627475696370028062855229927633385846367968311572311597519464144337751708252740055679635909238714338358824980103113798933942452442221109147309456821047826200693585249874422014154806101934262455907526695741340818332097021207538480704103846330649805144196015216845972232149661084908759655973593224346429991997130864910875149147697677200481434513224342367299714968603246063070931679768629280873956534633303941716129912469934808361906257469991056503652327872286068448069317751581803825779014734996703395593618221642238511504727666218654695532048804126904719129613797789936698064260782268309977203785800078485635412703556770818431729715711793963594312867307689334860766266452831781064061093659054277396282668517671010191413303631048075537565863399836946388581471282063108322398226709610266826778940451989744267137628995716679313516652868600809523986036924935907490500176420169142950404890655454658550486320018993146012565209347647408974288832930669959353165597958423660201061265657255148198159326937423505380883990233217287403704078544592156899608038503920456597776722656439927037853038852429240987390175817542518419009797175841334338515781461892780328634415102562514460961510464677022277768215121750240961775193164488040462482808927947457561971107541674552048033650737689050000859189878605707897577242735036125718674764790083144159047929073183568741733093105968331931430948839213359316014064535263759307738596161918827133286356493362348873199588468649421716685315999312561766949474274784752203398828249080567835044954651685583791834626790627949573792975076613804100258873303968618535562151885738105102123508160168054496158336723660174856312372080730004642131941336081443400071667626761785528998108420020308133119840983408032968810746081904270856950093448744714854831083858261745225401149921220495541828721847074379942519606800437484752331848737625474390346448345309022744670339561472657223441902504404905169596807126079991412854694181238754016957171417807663420059575074723643768285940708192877468720901150602651210252504337013372799376759483654390766151523426279211196429456139975072079072044144537758137966441843747393292950902683198961723455116024217900050744709951034098506953622219103215467173925640051406049557651661135529405555068134893893054008869357841599933122986658371850050462455593056584550107114572673075971516722823393239511820387073270142246577418914372282453727100835674505085856674373533555942143548595070886811314697370867792688245266058381161462509632400600226991612525280235955584510471576803127080573054441341488675702504291677390096154088801459760847419943387008481375092715499988601916222122939897592623684188351715575507308805773185050403500296741197981895373447936356603624496435575398576010232268382004612316814704685656744146164494101420563290208887630537196505697887020729078492150205435603455873886018873904218242128992539095544950352694083850008465899385015071039870983843361857763794646842388646631167736464833439746364956279228874790559834653723540467015445452423692360288233957186230067323184339443750624308277746704608113991391972551898033778407060185646102167460862164527279294885106591668123896376042381274742182396220560052546346684840822187823926214240832343675788969238788846854985296084626718938973418034366819123101603551954525789421916006576182082791974459158118501986364517085356177637207189004700253592823487853488567438481778768127960846256046064826846618024825739416830606877619462037453343557413292511708713962238223177671866431612590645021836081570725555748426073076246234734755030827800947365573096155915785308369784913316325761326479243509177989975408337652028810976647100891647084288590737019271581767852811091012639966903940631709504865565207831369123018497338504119110202654455128746884311245000293785801170099028839872733115290397522130256601949693757117037554994598100137184629621525322178633661742683165464868142755004847406013221455103319343105574886159035103839843916463721391156691340625933699002675962351901780240281236270096861906449612482705049007694570966521395311118793281622084916764117021495758702113671723575297004713526828329977350471090622599162943804441587787646629181561219624019699130951843961887967777890593868427333363164369012080516061704306442664891163040275548663408761199733119519453515015046988103480230484219369401029811016838529493844908306393784143143107135369209337685939267350131800434374443347629362220156907106394242729847470105245582067886146464598752886235867461223228649626289593339659124328023872705258688240403351556951299821575492987414441727758071528466823072035063656237113941206906843766717551986102421411009537711339242917165783468270233051003093349059441295866890252417987231354694061768635721386751920696395341799551938147572917606055905846445635300282943535572138210338572379551353996869714673634684551735436174505658188063015874356527177800017244406926038578621670025032668943850290911221552873660969739240783042823412839696000087254802907137317172618949529911639256676941267632229765927803616266472083600062471342247696683219378372393025109193885336786677542984283003619267327906441861282379148492806191534452174364213910705019663277851267678058698332153153637117382325993215802792828422666136677440699371887532693626378719044719173978231185660509956006870605779274603312131325899702410920111819763042695192124863446096604474156951649165137462080212853516506023622265815388757474122302507680968796224424296010684122001440357889384833689909452939734485138909763037711677624136831989912507401161690615588393507018388895585174255598747873739145515441726284008380470296045851883315706242116139405357348161347945140574729119151022304660760838670249013616795858468598521164115662198401992290400186236573680293799216948504781862766002715233375534054431823577149537415072064038507625196939111941407835770561558062720266191940536587380874500231237344472114759943696174732749375613523763945134254957253382608460237663600227616056660223534581684157731517054880266341812671846108042780623381099449696594446312145496652789895438270789379698851733514858422809726732558578832502495749542355085389446468343814153614779520335717897009799872846644781722658812859081360225237528248356785913408855144439787894879337948562925600533621095157964133011137177149824503239510012285324759307365408162729369497441068571377875141539877676889713484271933470468496340267964815112982150129544078252362608554274781733113293130974694795880661419594794441261751646855419978630954148873443629180636254187421982585370856070084254583428894256617876828818353793003008156966687803019103260983101114374640094930065268390302829181144673412808575316612939028063075558371504350897109643726983036883158873822626623022924944788182824189023804698207079953027615239787154434193939318256433729767832412397971372633074324295481127718733179678262132939954921509967355064189819023055993842328568216820409871727661965695733975447593278596059715585466046124599762423482002975969534742432600079988640802410763546130773824211907804078634544042053306924243544254425805913318887763705067874089088458842938758610444573855469369930468570650948050248012595865959921679834447972673339480816517644197250013544602303051586278236294249004305816929071301712837608991427805134013388750547757507213364170285067964334728758757470838854249691030537342343481138949188971155677754000023942410540576034555816126160287331952209093807812465690220726362306473420668841739317870032618492711642567891866280931334272433774699297803028538726663480458659631468398478588335846443760302701583418777205693322697421402801474573046243979718983953330125435324541136195354537333281909167857359766775218989729750086806042315680515252814930378979334781713299721437488688872238963547855929893837956242255376124254941024698201536200255959257672162427213481052501453981916081405354922650335957999292124675512953185253183145152838157554264043108802722678639652834439731662395576688226746266980099087393552545379860423184043536247664653666623098348654426630178440074558790205435459537284411919270035763654968633527449573333605265625065715501761234277660378557722910338936999718936996981813250305108279912929197358880343350093825847080406221125498092967116346620140084600212275007587260892556589225023676572240268928207845409547966585995966350526742836043776436425262964786318247453156425999805499814975850333723829126989310355024194517915775377332800675571232026579526260038497319928442487829402581011669673210101519115749797327889532956480225323049329574200290569042430816530695072275328333963720660629290849136751730775528607999992827699568188257563094585787494300769946429593222339795222303211018984522004355622198961806020714297768029691764423861805614677244733762456083984655455792892155212807119018735954500507667939141528259782391111111471373745756850042158334752079338583809255815936673620109735249731355759011131458732371254079095212232699736280805357533713969271362010854537852813414602082564634309548215842703636186622831246567719491237091041069852141300623478564027603131437732191902253022115093764942330843725374384429707023460276252391673982816091527518192098018504853896596830842543745742939477498768764720798131313492622987640518749319196200884919516083953425281111372014376964731329346151358682832758197228948835562472068609836077278644349003635347806098735521412807916463928148502368329959499019576422715477611127590104832715014634839453688055944990883481428870779748027811955179761925070397727823981584525324819895800136028382041372837394574310862818411631415151843586361207694264415609168212300667075511668375552968504487593406747682613164345906140379279481025922898507449943447185959572184950969490177100657141064715706370376277613798326270641579715967674101256740541361781322352476127350619398420527015447104344844940135455842262990150526326373280813517931518591526655781373248554145346228548540781678251776259222785385348895957681111258130169654673109915861814538504764340515830374435659993917065143064227138912404233358225522313747081597300482959877534689670644969871218989786927170980196619838445495978110430426301302792998036638777426715515696671816390113531643467233203026002565320144626530147111480795184858550584718508125151599323014463899151779321563260941191685805529111811875722271224084482158113975334564008305715983104075765814814737010551043401589651835324520749699410496663629020171018732508802358952694626943781052586300969305848155186311486512133665020235592271047929410348734988659925928228054147095258552773224221014079283716312695857349584271590745594538374352990555490503837875890763946106207222078837421787529541369252602942419723312681876868149280393381693118972009819250426518318729213286194060740712107832182742282834073821922370705559353003071816131102354232067606840218139784295579852072659267848908984649936699365834498993762338963163730947929068919960814435585369758525864623797381114402623283248136408351323392018107842006320633694899002295778112162366556189033640682270148063834178618107977110033979496780418251029449141737267220130091513788053426303489419944929840218032295015277200004833822945658830115531247099415746110242709341842851541841132468603287426329129065809588656357151749711280317794401203070049171790365035526903277261493686876608280009034959494283508457629145147386639842070984744451392191846244816954510799121123216832830224933132023561688696177335227366174106128856957274204551410157072055189496031945926085024214715486099902293886765294159581383412516550563457090977256900750310312422962292581091380766250055786997032391822999669259452204732979514625434555651113440402161179651951471122619980834704631076954435261163628181650959305687348195720329494114874093701797665351128712962414170681775782153302162936319712545824264337787466638485656745617278171313778097354500184952972077703509765909204811395356546181220179836186812780984694126256951189927988123080218533763024968304672427738371303855080014467237218314929134747726424769931884565851153252019120367860703358043363819774706187270657765053977620363339431862252788799965566495659987399733910317642008331268543397447950812858209325675189499055538649099142470689948043694613959118591774849704918850655539451508499108512138098206355459178184399367276089832572423089578235374104495975598157080414591978491881210604139008788179589650759745651911294566749468361327416651162063789927751418336965252708880673502098970253681671298701337031375448304082323822288345389221262551086760569419110137713601584319235700864461518069460064240127821861936550924821758958044713354978008057481655794186154058189390773995437760554471409537968696053690875212024086277948010009403373112075805767798250740807605689454595306981608365138823702914456521695853323548697676291958063913599959676722124971338017543337017713524480042080958672258344840994271218188919984438052149084213120334429308967009480698654079049698561707500019396673242588063267917862444220293616817183607665701961532414344666940783120350698422821375951742361195043025350746152057244684383160781885517160939659943334221383181365482281594525707952366113532028538986919477241928376051196778825009705586155699635830304464184400319356795580812836442247238093923356363821994781177288374309997217023560851715060687003667394640606808046810038389088076782001360296017703823043422142004682359336844932331306402872339117935177168998229487221263730493230067661271293504495161118908979854553004356323880619286204011390682940398975567705380529546062415907821643776200515871509122642339810565272194185596869662840267615996122438509516432723398459965466923650460021416326682991278414584548748885108639716704299685013678336635141960924808955250823805685787560662717513343541139857999184596422540524187984745444337463296261588107726120576717874455184814362907184908658404846436921666021542989581369006806356031126172643547259025851748417305995202177710133006516625716669011489311379871139355160266067811717872722733479412662534102236078528110724367966917579517602291213500132934465209742396584278284420392696211511830317032601325064556380993600220474824269553731789114420168498684177219024371977579159115946995500241079282818130187985070222508482543429389458696853478998602432910870032351596610941699141787436032006619523225862288522677809066929645962644377473746345454078103452295352858488225647271850492990665254806876458936624121226013309221236308652041499041866486684244604723960781493202202741555772483343742459229532328059088857716784896519436707834467565675430569665540749606233111730381777468759433154449354476524468885465912616558754679889853332605596797945247746653740120629919613305065701905243129211891576284366202893136639444301427881625048031991566545463296376409564070053885532642210150608218428864490857566886409413277549667547172056311087925571158133874748892349741877461436196158931752113945267353953281653837541838493161468881017785549343311881877357039365584349957095663386292250170858683476599275979143567392440278045691213727660750979309360954811522909751734871432576166481494307869010216283012722139368050617317138246515575967156021573130902378043453214946500679242495834813515313153505988891781926040544876075989993017797765139711479206416429026324503654656958178769020618771577053822048264846649152397243360967536293125913934488442752542912104240242061394509210175846976849501322194330147116383583554928093230021004328492315923103900467756736246589499449324604840830097700955269400834075587220829274727125789940194840950624607161778368433092938334962670635804582210399837561607159778343270479056305487408834279027770669358660512288257635997245454698670108572634368664454236036390079869616781245362442519871502708612548197975176886891090919295073577962203466479168385564152584287998444042080574043154591802807797769108830733673002301226246450551227489811743541437634971338394999300907469707733213537072878452581768596409982853132975560037672918962829782221925365444389070438092090249549309282020954162421856268467701742805524705338779002759542098760289046743417612901938233177569218714071325369628436257768584169358056822025496601324860197623260391429870719821296947907737053579710880143183298494350012294074978772897919714433903038985276015434008853846058284137346790021948923162796786921110975014722411379751889264862473186374310436491150803731257099526576979109089522170235518428023427892642892957602999057472544445498718018708867254413844238767188771320165392837438691366632089599392978051557517562762755894066828730762312205319314951343857142455578372901830443612933734445595164881202160545143580451743918936309398564679215372780120731904107446484635340718199397321185738425736016123887320408479337761990127177981214231125827184644489533201192948202936484553581298551553908136818892221875562838650423661211660957479148588983186446693982925543777376521562333555819913695408300145896757611069414898754812907515951443366297700586132002692482345247094859649118055200852843659001281872533085190991976504452114642401791374568036943226367268094508108503582296885798397273211059084157689907506243022127766313485477034881364759746925781334717695974419229177351610590751385542988085848384750267587261059257361872534077215561584681946835710465842462572474338304298800331283254595012258473208900921709838978301868523426767763517279164833148531743405332553111607472735593344037336661051218133814537186483170011395765461401006345808168828937569142139097823054981354059489396810176042848360643829488474392119337347456266975026090317620554599979680856099598951330346802657212111878562259899701114855708342582996347534106304343284741225476557697309809847369979625559898574290563310667508339725038163574406249353303795075493906096293488646988201820285708809543451261687659437185646044138394643898005641629241459539382198617467278082716833393914630794720100310559202343121468386214176455122717912607548768020959707090590227119024038410861953322004483433737370901630733031543612190311466297705668775937862405828640689394161072436861065281415455372184020170163572194761924344046835744903346095735622057452220555224096749559066423996844331208091702048487034341411753195475538499098164025329425737694500517291206193572323504468564602786813623827248325504964283739009988102887521599399905030049156823910049580298680550511667921120638936106818396681707442659734523044600490857456470171668472832816850097715697664988808371539097049119493052939678266062639360341425710806613648839559789366880474484106540501128497577493975129509506230229875507284674735260730347172910713932689061741845703035908008881533786973151413204341495273269392054911522319459873167055134369434587412917545682729881799626037033949192946532540854547073452786098300655664715170358466135428336604644615478414409467005217920359210800574800895051331070298665604116534985391878526459591957773601799175160546126571885928147831448535690260311032086511183796384028257111722628024233816585766774633885994913282332676710460990497659812267847923871533338951560573844702819784748646489832765572807591994485757952046607849616445425778527229117963532580525939769215933751871833714998156396068572432530351038552241778393533157364084125641904146597152258146903630180308449963500355100012812460531649569211097774075254234044898057368016641650332838779490001432851897342377971585309281725705085296713682685186004380351082606734183593065256429028012688282732361986418306593665219861417395655143251865159383114810889101949485804407772853046058666446842786570609081336281307871045930176811248217390767970079054128741455812756906745104448975859583498082274134704946732980457239950740165206861918454333705783553077898484063684302076041431978927167178015312194194362504303776914070598331016082544721525887713354014846554384356638307082550279917242088593632873234935343489804974993830282328510941340263371760832188703673448901303434050853814066446806638490248902047173911406428961125528480049618246995091356795168662425333012702734297890285380619689535073840344106383674206986251682411512871009860161984136215255531912628228716809071598697110374063762547683035837761319568639627867021463796939858307023120302827856778959757355251469784296571483511923912768914105631537415688574271204389988423483670880233524980884845489601614003388293246398220553073497480443539154697847174203907041262851540549121345073609861210832889367600931374330416167249289596904058021236275092007900960124709748546935230745291566719952513037886949445833473860944346938200223435020805970403268323990306620142645824512127291121173359077112191582873092665121939079938512283310195395014235130260445112369657893012256004518673779496860189406833484629356749520297813092039507574078197277301504158336467378254692687228208426323642171305755019233210099209166793733937081411405821606382224569921881826303477049996388091075593847261202767340732461383079390872941336348062842039682367681956721298695645321554351943590513748666792062853630247776820019333936269815907140384669311029441857045513187174763553458245202903202585810497716529411800173259020244916440318561407380403367984436151918251462584729053222087141132895015110824603971437440676872573378142617319313624712995770727754188828650050370342183516319689471970181810343533860161896017293590452475204667593261301388372765671463374369133948877422555173932763575887737564507985191444674140168343001814295877908975316333839442515481862544526405725219443870814623990979704013929144254672899231906318394854256126049847295748230842250038065772719577228910720300771114050639594477261257375738887620835126054737860390233169732093189129448381490693769682931549708856136379313364898676266661072705639329934253871873452731565437699092960167590243286504184343703765981237563654501641879574622826689622363720375701732502356637556711142334109103811261346254107258548191634573547360637428829973079115066001266978559480634793205278820826510984567019716278057234026924310989233529880677607563380589823693403644200170542088361935591178609346738564709712059468361813519628631881815742999278871144594676294639356535663550562121459536112540150199811378054663902378923442690438688691926573151593533105146672522046157886564385473211361024361284325931768897607039890156465025209905541253009834713073690856946862083162005668101436953326337984189591348589025237383919402507279055239458633501618845722633618561241951775060095928655521821971903791940781914199672182619342768454628455876499582118841305226480044915820874164494487580899902887264458670213817723671784863606278695695561490502241505174905343685975548505946882267095920772661696901724106135343541518144169280474316585143258783599583713894461400064051195583844529535489008427967428273726259064373220367487575911750170295203077337651226539454714450933918205427086199620192190540276843906186576871664545711755719428153038870272393952785138402387981870093218456844010646417540377020161497201652687089480625453871243174236751500525930096509950663371788530759550933652616105039490129834968833475137192808508324584508593161260214819902995395341068338049721077489030445197612546904241181101273975467486135212089850680092837125599526640383285544017703003397810212054215977975241011499360740296108190804239813837625301474999876822937610355412972093079744128194355214660239442610903016034155528613837474810500572925738117653046754776702131706422193404705688264052032561907304797685339668325508026242203452692504524038213056944682338850337674583062246617284798271747986632880428083978929763650529388236406446355439131532905718217822549437900596214179695405352227346736298840981026436391754082028149697386107766750441926285612837677287521396608564159137990653535667181592532308195295826436160933241419095392843121397292049704508072014491837022911032184339974089503652748961394026311798810049424144604568475530538205948069127050636858771399516133260422762720405462429388950138926215223790439893683723021122816033038122805094068640521696244327433688304412660810765369457384938403203545936125022498223029785420444005157766018902236618757585109805127744434200458786908059555284663680739039380348669516867837593719571989439536746046763237167461297813193255056722212285951641868172867673067057741221566860624995447549204999260743588820327649752211121312405652351960997430525014162182526274649993584343294593249443025182295754159261826382597991081841384060160428652046434570787648737434102068314132074983515446833894403705498224493787439952470529385496252192376380626691411583080405501294194878741095853827467276430799552365129364268914356529737926291008951463799264203385540930209262840969673890129497348891649030803872793416100676904356097434823219900825738348985766409294131000994235904018398100138709157001077020008080098413786115378728816024257402813654155168291838010214451388940044289462158258801472013760882268921755277280094213506389957146942474783009394806524499221697067532267125429885424801470814789399875010509367466669325447402661029444474728245443292010653949284896390752336058458510427830771301908347244952457554703821676274689752231699539121070889620635797431199358932203607950812639735607201535373454033197743966058104521815787311899289666409650656233814169528672202080778022363703128423819248639808013029230160628512127076450405831651979740668817480852570788206494768008967163319014929523241525177355080536480608580052891767870673897617295721020308043678963825700807248696000589369446553380032714226903891265959167279118663372034207019761868801616242416759530015065857639438956628555424099323486232249475826333112025914293679497792720798761789035669949482809487072813257004978502490535755549163091338358794963401953876860266930549700835549750639690853928282921403482615863420572995819393173204458507321585526516231934361000272361831590266533207241613296395533106358973888287240804929771985994093724973194448847507458901735298804485132303532096438152434511323800643419627675233547536434295730763597089904992569005046623857327941980249432308435173869277065047807442643165595386954242938131988461667476604257430561005904331345797860460043145270415602401724134073620085962226712181523736855992899521513116368089313507072182505735321591058921237411270629296118967998436879642272941173840601642206054710842252044834268530535769522198277190986663739868148167667040900358492566756875769827123143573600253543612067549014945870082730579416117705655373228591909208160347864100688311629807123304811403869157243756739019719146528600652342003048873121911658794343668267461201364801612294151913300530579464502540998036744198241310750165362940439399041628084119451743226233381534043505448169907457056857473345316140761028830917062043640750685888896014562105840579616111321441046782339520076968971612996978346875776129435700624670488546601025823847485525624290292482523470823237617476949742941143877172685153171950046091545739505293240655119597414525565512648714260755747834670526877776554593042786525194704561645314444649542633788420842340123696274388042866252126173172001569554493743671191915819399747439336610088213248773771943377563428993311260184239432750510842930085845773471568052227001973011498868159768047288840348946269412198433485668566887678029756966301996493018346901882935729642700910178339958739894574033064048163798191320222587245080059460719753201902706281860152406216080298660242902363934732649819010919641619762247794194629068167376775955975836103506619702536818090202891913805210186580885203175596252083763979631234838323754245121002840775256434184281007545133448090734062827443687358244889958264353744216439038991042843638058782098788811059303104050136571912141721594583878420465792480458861669480917341437126461282289010577691031252586124470262644865528417222411406640459930215840805306904424948870598434346856972121168227751722252157657448269343966109656357316574938613881471790653577912306725264663484337077542866634518016206157227244170692307736651592968680696124242506716925822163018587679658306679809060651025873065311661407342612829075625322901696136477432591836247415529229336369910724204472513570197694168603738798333181213927613355596593452306816673293078183810263157162199650560391735650087336460060613585155830389976051694922480473745925663435206096927568998439200318540772870298479315398843419382564304416725526168941220277343692201638338127987207421640915298064168875375941762512100922790801910586244752691495524864697078378417259199992475633051491280443473550112184838339645118898836475715839880685032798077809526918633253950465980275790765090050604863905099497515989438919759854159419341815899560043766672813836701283255790321070890275078302121962171813327215388102092160153306935331172287147274271449135151767024497886669789105186801753986954718820278108584557903213175372899784845839157800800195975150697092432369672554851212222468125325495345471728970756974486890143874717712722592932517766631132075167274584927557192085232190246471478541189689094390952845856569337602264604919155442658449310413442515599266840022731369543454307534863513564416347073956316880714831998449243105334414260051650520458380972458037714223583298905916422958526715494162082676963035463663198406899733549444059154868984601545656970283234839538178371990317624438985771405791027419957682031171792938052077214216195450512979385769000128229451623609325821455489890510478449410039144523860306170397884912162856245794526494862897024893053683379891163438074770367286118949656254816135889761596337362044855921017710996446792312731357496109679965849480707410382040924009939412422693784842028030363374558068084007433042720187486306617977604048573246432391428829301203794880989727517709193677579376768756636370122235230460108620836663656321979270814213421180257599776155877079036875845897586565242516129442124678333141620869325894442978980779887188281134733782134567996653454863360345506253069971560238104269027482326189310341288366027337934168945160718325060125991595116852156186299326598195889270751319303106012118065759947634672297660787292178256140618012402656050569179203662278020926286844312385016010372256307053223343115646460415443863097397603740194064843173311037518033375481884230716304850912365166111637880291655310224363341856310914666481853629055307678730062569621528507132719605124818968038546112345306083966060269680537911603051585575080206484259019561026381454709051658353263576713960562646003272741597212553359361632011881952125644478094472841669733312186736859518215250753473441794763131516584177279106275728966689726758527002780379128301096066804742586587833744005342148744111429392152542989201028058384868483156955732150058525401773770617907309881051919213137482459594068630532470044682793540856534259408566596051429487073590544924729825562877248951013960227409852044400523148893829951197195410468303996284756665621400127046995346089230706167644911906523283894757917373853971335888807442744173823373445683075132312523875040408206103170986824724619936812592362382515354787774664353733056756420366308289029203234516243979749156009009864549086835708098504661932285983948904584117028785505188726177160321464144545680501803698880559301575686601752041901242751264986625354650347370367034648963308968827874965610931506135752544442633093591174848717778641017405771395793755936017487074443885650177500496407132948905611628960959868414940405370179288722328729617975817015458055931077471390113116316166855874314645772300687778940133481157785189175654791738472261150433932308478529309930791865602922521128913700484825570064900179189407977405880099600057319136094756762432281819992250688438735784468328060753180260210828000339449661286797257255845765697264544391996176996349177869822827427073870542424507008447299901666835681478129358424738571875941124999240326653137327699870068392161467182912942495915271204552457078277086447074039808720674690896544176717866594039899377256342218643156641743592426491910047723517479109794522973989096048294568054805648228725800739509310107068876206785655560511144774674779742500636359184207730239341469966269533407284409050272354471554100889587979331895295681659358103130315030883153365282355614832197599878640822396522653931471399368682874567036770143117342759638318621325131607301766003057544811268348558856575520442724421686784242625869220927806803051985133954282356476283573889735011845446808732393250107091966821163466797234500967880368459794035615126994478574814516647883103800828799233911098548235672375728691439146153252810764907646771421616387038112369349693148839372337650378143913637891845446365777397267491447479670401024390399466487557021185752067209339418867475450836387193542251084720519396403327302377960621231156213384958655271465319532226157605023169453434412668221598322266224157819170928566080798613858150004300324452362962602936845750624652690166797862789504333174714939152007294825557632866067792303922753906892895907786650984223178315808647980718629530941641978895332556372179081357980339589619601209526682332293409839870604367870672821703606430598895183631798353657637128579197428748129912167254556765415973110811248376712796656050249191813317077387075573764122402442943441685221370966965382723329454322506666331041056167995183452626605741029370431160465690828001959764829474324717985179565022617898051263205856656682798547942450291603983687104442088843284258622358501637260032224825411650078719125981178441116760751692067328357567581718077535011964866943571811752869825843751983978520723095076371225501184305733781502025848443908504819220708571473880325099751617765561473616586104676811042064078576248267290297738910247028214746571933550158846863312330258279480284783772645751432039234018417871295236804306196587410230032460380005693295196679785063296935789310996581701318099297489527862668782000923285331031294874187196656074853351611841210464951986073635833469275343425641671837393453462596146046423879374667303048704628403341650907205723332929393484232689895730808018834165068600053432036245846587553416911108941258337738309325395276682680141161793640999522531490857456409981536153596867233820248043009228693735274358542851482507179320973696210419124587596448122226092130134693459616245728947847757273594685091340032632339985138541082301745647967538205179610699473192828992816455299008149966788102714106125994747239717127524081928806971266170598898516281146509299666059736777744216108999436778060507202941119303570956022888470441753724612777012554983720654139446494278838219839768361779889465224169370544896368391187083440999190860633277203459073112337111356016420187403021090105769310649837291107665062679987120080404569628198725784486823439297564160992749717103799076353216182074149395516169395308029745315618514973087309895337087804670171304575840515712792312632821179379962660670691566498086515763475905304020500889622035177454435901759982250969980509860614517791127475467772515718919212819954191709814837039017976717564179468611415315507153718750984564650217196037886704456679404921798034045964944602931271447658079404672750926271167057998394071169632259468724879974833456455111368471061211062425117062861896721246573366223921866487128380478067414572130971086653208631024298346276082163076978205104262597343823680239324812131234855385608960251607465519615708746122078024056412581084755469088774109809498177360684413120778578774956624372509785747702205088448668557950532507259108284130557011641034038331417455773471364413322389252139845012379247625564212535863469613911145736850498266562325623515260395768468483507920841348316219219069875790061474634082057368951250794654821678297844062814199701689210062204350152027667856246209251210422032964207725967388645122110225004721286180696143159320318889074968572801869524156461016493297894137848167309310340459865217480347521195870796188757548767544561732274041429661660714430479281934999678682273929005389445413363026190706950273156593037893387934000611812533541733611243444797098499133031422074117033231760429836081158836580373428215688792613215790294149031918681982816321611620174317170799031244040173895134790687990246613991511437217544060117417571657790607343659171863363694671068981332985601418466817177992115099926572035382847210069794418552565534792952764117649482836349956877028541230814149005188263615176376504850964071774574930587250640768380709808625221062997753527354637840909346225283569428892530769318527216374926836089648429470940604572786014982393788551697581181220635819074720839506636843586805450276812682580246234015391398967171864588260544591261396141467069743006398673502387149195316134765499401027729841868231519926811373011197920826535773880441756224029603632998578828258556200162180748969653798087981793585461869709069412901381292743707905692409755647189913099692325353997924661014144834842062786370426732981389427008809249433548883569993255311292343796220857943014574327437157304437417886289658770887366741890506762276094417034823062359671381863219480650573770047856737507409915571335058089329114560694670948193315147025495301898799739438038090779051557096105072371310562260965614185374489756770676332157658662642177869368717246050822265349440493835564924746960228420613567828429476990796894995101677118722025904840030328742630081257622333224651181268660117480994314228680970212688446505895955697514030269012633465255112629165249376173484383361833902991420260970420817095192034984005035463414200610031671216336945428952618296488256311195782693154159052461717133480934467723302854797243680954342255746977379624200435025564222550919997915240369030192310902051081419605273644859878115778478107726326712956436880339802226181457019248607651247788830049703528967839633961426914615599641270629248299748011765665380111821191305130551671390119010506950390965988284762753591184958051352233347600158614263753816748306192304424539753420670235165961459780729335719996847846854826764756619758684240980825807559243750617262505030883423846601753281116311376940244344492054054944959608908135452708287935755555671059627525572384110072447779719390704163414201004406202217615798855451128659492048019246595347649097385934059448078898759442190473764209637649624261334614865413412031129894731518670919785508985999217860514344372333384304540854520009058596905708641921142235995703298479668252555363274311299708747112480012254072656426775306780705255119104835241409636378140943224004417127516754071732571060478029867550716354569477863588345230834516139083678415516755311363051649296263087910592512282944376080803210032017740277579804530402200258905303297311374962445510917152665391641407480484218388806820623001312828251729644965691063287963176926933816389275781929094363669628335062653660875708871452489084624767995634600264596705160783251533653404589982952188559302027116709235493221083077352206345249849523979864032274151725848874160565061264613325981667700545796264480139436998715576995749113021041265069091791480380180537716272184634575995168277472496269937515688322861777178629037415858833926577299089533053505742957306958793621813404104394714096930883461342582598841878244714923388398111763671876141890575967549076869334826319612963755375991612514301597172458688205029335173825736240376746607922484200713231594279036895509204950675057842958703565424963718167644991576014459566577869975915301460008982591253892564340035410095245655774926985846251755011153161973461660520653733322982936611135851918634184501744727890186326707323047455662668656858228857226919167383683230912201499282401470194615824911634134178735057386344659613030998429493857727520719552243056999876753339607658502869721529548075303515042032834900010656555812404317804184152138063680157722381879024187366795764456925968257061915670184152414942037586054318095381725030885278955381810708912225068951119293006718231830714373243282149192145655094922328599058374910163519358480939001142700837173329444980725078355622439966522945391445792873243291984070465106023685028193641037020467775747566611041988555193711711994435734104774971263805508509556081358572985446440297115242009075116746714210089845368778839830218031531640433596445983888241664134886399039929725944350549157652790338981081592148322569442140740295483516283278091646584513519637381582236354194833551691865445052856940813158500829293616893735247010268745365494019743500437364378124728281246116310868765018778368215675151100159711347330274515562416511907153386169290746553619414269779687611433825337696674142185518767575050837983286486639734957838851423289481038474245920682133920669540258301960534872342222529718541458490840963618155014978418580363867253317185240695941219010863987721144377502629219074918912960141805722347796304220628304290146568346754838918330446149989949262042486435783356969683797095689332820975216649012242314495263228161823427024933558122497909842710596469115097059896308885278058506512644704256832593002072911084026429606442917875050009530548594051752292773555150666040240328663322646601341158629786698812338226556366533709341822197451992835529378522520550386706350074721115429669214448130706607732821354429398361205163115744725170127987315490670986707580673071251793922761658575073216181244615104502531684614019885909741735849819516105776792548614443021933818089412292429181419853924933209743223406519249492179665524811432967613817834621655316313440164442563711141314744903480438365574013710614431112536066102093159915130165913891973200762525674640133250227742107912828889999876358514065206480272592749012782663764533954372872017623834863605570769043824339800182319393079833428709751256117814307461371241900058853388904658022071454921712842870363557038914531826773126295846446761964244919533499251378787835330820721579383199814729056249264120148455076454144179811581291785742124351754367100571213827524453876620119885021484997974485774268608933134211270564749738232784488197694383146582655481751173388492096518238303025112515288344866798285586790749557936537284383608959864358404173133668903504509084135817674537172344652497281820605613447129538214216860555315793066901877281322070802623646762017466640601438491550944032245097977756146389971464944712021752735441468504635170898981988755473341350671624667834003658076190708462918762668686011811146644369658646950231575717832902741331674701150470879212398592283175189576033022388096545279972879861153620387417724788412813519188822725640447714210693932982683096644700657178319963142788401481278570412716568418894899168714280629036755048941135587806777604980672498920816398667065310724150029846951159956337123409914986586113518448046056496745545357231620004432029362414717959564639759507329915037835353314961192171383370857562512916996769415217401720939978784448019263228631833461872215445335819168444376709238108418887251304609587545656248618922784968776362975540061180337868335859426139330652991094324635121494594112580840521337217492306158653024507923509549754786898199515754283473662253422525504600382309389469522238755966544641756737396964353818564400782929463730033313179594594844982104816630494158280945413830765381652400024558640004335745845299317385423549628367847713766906812848345265715725854704765096937361368935106783614263198527051392811945766261654703240786676670421542759855933029826183388003665114096525247286460006780616671858922486508421815206470196124479895810132908645407986276347877679331514879245906997798700770065180907410940436068725640600530741046623594833937684748291102475224990389757327172266930273584040264666490383769536705405002713101760103345652492464937625831517509589077054818127857760633752137910656054154705712659906451844818916849496443734594808139935529123141921852088893674726237490319763801204807203177908936651891671912590623259155256837798221953109536088978522397462004080302864163531977239522051395554231744438301628387426751885919800100014658300405097363190603280792507123964238746051755594280522074715169115531339497356450858527707003615578792853643600252133232656949841731670678919050800438792263333024631556408111303291462736440518447861193625530613047654819916172787399367049028891955054156913551853427095511563650419616817549587226157563240761615667442894786797325567567937190011431075222199977735885872044655163351549899142346782513379171545876487822618474757998212708029663967574736158105695490877672271646843665154430084287028879080768185335337375414589855942276775973344916284447965344277125773389893087823074276222445940235188906760786622141144083059306792880562485797069133887526378863031401184513218617705473333350717713548454703012953750694520482042652347301440911868483036349930432502367643429570952702791478111621937443508903121292448756298520109358223539272695187364891653460052639097680069604870119267027313960771519735424184289454340986391561524483434424438196241486293021675456157710685187954921012368861498720569069199567215487058600007417433996837481446940783290338322282593298482747595225804342644911678365449499492355759363558298667993753551502958518372051124196111445722995739285479174846618747052589309569907654293425382228884081248332013060824442831127491946856568868343394766350758940117909770666840682943009872607092774992515027893613396275655110199833646505255235814136977134971189561332204345238835739243535041172989303059887837718325928430145189536492946425085484044695190293779186849874099167822548536774899536529663608734334444007334774209497160494850854019234609754888570054825126387253842328923492210757868431968909062739529050324557845068617051643504321425617677100923629005581978448551205821025781098708588052860422434230618207594531465603127337135049354190190889911445772959147574872649984830025726108377525901960277659493413344691776651375980557417504776739377437439318076400274312574868147241916700930054025723573056397649445032966806338409904782954376886461635585250086575477648472953050334842367507082720926328149376908844340635643876570102996128459472647090518987880991192361732246697146008345712036630474248631853471233430182670760072641554448115199942822882557599689242786757823821455129898808518232597069206672289174966397256900962244839770442991766380264031337314077156133371343949727562232687873563569322035068311176640014300359939558387123345387084821306869679699170119893850968002345271157636664892265213077819738026792692630241736478775919451994383442408230137808285759278804229199436667601067781247310478790933637647469169303847865750500509393605747516320553896163573016898852442061023575153389788122685265647325197785960579050770374022009741681519212725950552064285189881357151643106484672104874183322210247223348124297754131992084227807148496898573933134299715325101357437662962959444568098675324682305852030834676203943176006480548849925187680623981893798797518735830602304643183911266835726611651050699641412465764798664087500770243226163154829480498651579468974568443554836361768102329971843902170840578242511622661679177908587432451839611204099955083062921186545814324192579106826671035245921539123691528929051134547708519331626023719619597319582599600000700773846488763096032235553665595825661690733985517537598594861356845932250664478544883716169165392256605883635501223341322515184816875689038764561768026729254311235704996461733489197688417865527961970329985061676627307494709926768223593152874659374708364425781077047020273301409745335996891781823418145852722282549353188088837696308780145100066164547170906849380783587736768277518237458176330878479408475115550253718965406456430360202632297869282474010054025004596141546272575433437858384416377491993479857202516595232627843796966178692702711411669249149748233511251175447847437316008584831347041002060911927266293471836731241483482581262581720113219408265157587179546009265211480229005018855360111818654717975289579729228534749561890909227724489655767074625074010835863711550082094933036210012502458728656289441598961555019429823634168689883471819594401531369987467642797594884886953607340789038803516605463756398762973058660011233311695073713095646557505776503662124229292721669027375777829618253354498628751200071394187720619330302460713125423520169497193175278801471283514109103656901501563845657710845824018446515898748830967268181228119322111370904602934246331672291571655925708479940322656343632066983222589043566693671181997716335457934602414010804766471434491607668318936071692960502096627304614895109463550624991442675998121822497419628757624320660548149417898992385560115905638973256973896958800696211066446924330527998163010413536382986469021178191383936131177110911690196062997150116907826462523726722400067505214686936954640387433727584802158196347953266548009190091065190551737688497744408264734954164271927899924757975933090314460766926723714928754230908013930617008941053535745682928252214543272850187402118910967023218099183728753628700276526541908652060057445603994436455748319875044396388631348991162261920633118794269799369082517766460865373210348125018105902267867618118934836223406898792375199458916757817897573972882826517253906365294741695697218155243516023005254630169184678742266610077709475800939845362113947260810990701519529949339636960349894105736268699244882256068495182933072375366382377789405214083404699018555162109751398727473752550799924868723578999692781356452189270062382070196061642839798869590746740137432075652543489958313935149543164058083474752335366969954768519001698908644511755549432873033678762591858050953703462717071901147275911481218941809086158099358417461440837045144155731441833662305591616775748396099469894884136621845829081448550028505285956305320711276583608730299730613604123757709093876488927154994348660281624282745817557813061600071455327921434887578703136924780968511878721232281405138317434585811718471772600005902607444734159975511116672746196568619509999175067700626215333434332752637984792319765370394216266866800394419629824948244958412504937723210843539112225125183102215566167167618134238574198941836021185481395345205937239685133864453727884181845154855941078977082681927246689945520206691488558740410386842090698371624056268352791262913505369229988600295933465637017371853628327429205537704601969412843349682791468247859921881764047039575858279505445703503967901142798202470268255532834482750433351199883202667216516963235455051367812188675799471118093016533378019954667869491083218480828851641759244587840992809301051664681864847215715041965158532632652259569977193625704687452251487294727105130076634140853187319571174000769876177294503318071902125047493842515601162921010612535346261924985496656638149506391581793647787644128448610682376903305644973217702955944726897139007106203035687565866713249814418996116305700285566825435385809940846462392464188859027389736560169467381939737934515994073107453197220203129434347986342530309719472728729371613122240570336125245348573814916909668827356858747685539687051862321526072900036595715632308885528720207022651733765418729150974287827384924714986091597488475550652810188422504658595610731159016300814854734502764054636618960474730263610808885450589946729882737800029982782631379456249761932583969638268854804685695877594037508302910454164388838557930988778362697914992727711825340105629744163195727293911361139940654698063673954244656134314004309540640343110093402899191724017179688710644079561166840229015547753047248448092041766441894226286871448933350388144076210538826747764492996649984573071987886510158494392758651327155722710101167580755551106189917360808622034974440548856729389809723513241510609694041139066840084329293431396898012710730175525060437994630963555816741612055979087634717051309817983046263500784569446195404451545498282920984397810647672922154858766746184655825962691028317555775212707076081776400412283796376380800057961428001343544785093719085004966208400162232688442656797447781152691075194489602088350606869628551361902911968940251343679827505029578713200202613972762780315846959868713658878332354494327130722363541594225455800916927164108944904138442173725334356867627075728409341912498351367059682516576346325412897244417653177481471713232431636577237041234078705289368624418879887616797912497666966353108349814074546160996923494481488020005039018741278835289173132244570025453071388801374876121255060436551193839558828983901344974870841861308160965690750704700010804192679915280821308940063149333929646874052112194594151238203967634131578762414730038474887015792583237603006725442325379421230357997132851205142720425033667559324322279492171761416192837063618495108378324533907113508365362079865488343887545792304649618865304753380040994753214028657694307015087470509470940148608196400415811496146709311087321570245495719118313474090411805269438505608920291434080154780416243333686616513787826830885274434223731932292767010788103929776232960575117733702954617752792747434980124570487531155241931242490881688615986670274527285143056972157279073438954485375619937053102159483348255040649389392708714018233646409636885830739466935757319733521415816850560386187081136827885636137257530280884008884490292691051420417229213928170305077174414055711473652026608487146939499133060888516865365706349541418696666784752481760232454445798982735198838301149974531528376491794358450863713351328287595617147367255494202880324807783969861369998919288982081650951957146612030750879363481647561641585442526865300365905229743361754521779874004898663983616911560899043513962605839537506027100696685457219963786172029152107205390500661527987601693802894278456658997752087941053970479972811457262826601598073968606122750340081842805610666854491236382027430639700815205399600236395818360269061558185597576497839472473894572285866725802759253867162901697227153722234676210788223427816445819403349799534836594962781072057098610826112024499707595679678990839730932085401970279734744298746282514552414134712616966407633169231144221784284809615763598535694505755272051304970963025413526570847521295521203017103343705052336871290702453512118503594101154705597593157816361940472805603960952259607901628882330741367010406447007902577620869810602938299503913994115309888407895391678628874674424519042129564538765069251118311594361490193378521652337149510165327522218416643343599698491191648716427247427838409565566742172762075720103329131989260668695419274499966580433453384475502787748375906811502993946407063617430728125819623916635816334849054479497373362429572528163471034951723074463297841716750280728687422745897200718173430407739435134667588509730235339012273946048721275077509772117357923980789735996091206142827900741970180646921618004580908178398746018417304348441938774620625270226736671974703452715152609883655348977836856670980222183858660043157886811596115285261383731178210799051127243147204589423942809741528782430753890875373869386308819502423463780542398804752866729076178600275309055651070466162473628255874509279128304331748908296544368117145476107014942074199790600807266989003291289285662007023626494613814737853085009433085930743814764395920333682554090774947253606002663985669702578955155431351342838591525256812146110274834356984700645034754922642534204231856027351487532295805995655061124130764170739612468125854311822698748955060504582260349933720146228488363499542008905809499136286874383292390848070834980576261042110400747520691047282617646732336402347927216249264590973178831708639034810892029702945148419904128530131496464557752806621776073270829350592334160099323373208727990685799448307610275715309290879430774398008516769462590561115085784733676741304919590538242400321079166213388893460535273005451295508084339676990536351115386911156386444535728259692766122539448823515461480504442056866641552969139426327324373882774099669124298343082532733996459249536176942021174548715492910390977668588004741310533345128081054716380900464086700845230410623953357892641481517207333366041760890004252953472349722396474230636855297949380127486194618648985336113512898794415441215818923191606092795839363022919317062248969140194820422107574976086565377847780465067410603888614338404857016416924715290970904038823185327272918490327501388984102442532503957835262364371805832899953011942743105893578037950043391496092988160010958532569225831969975685630572432795945158949807326757846414548675254866109432490019921576478372808723780388180535334102055772142461114835734720767750531379043380135222648072769863262358748318279299468872661732625356376801234001332148423510978706536040300344174602645023104735930690143670674153939854861912475470199693599204664448824596002775547734487087347791168946536890989300619026219507378278577404461506802642504695474851180267824003147867299712302392591642266205301956785203001209070262461093907107395560543619069051472481152374217637772992313637054596488608974584018852280894296193689819855845203847079101967078744802425234301700728633835358741866274212754558320808191758123571951640047988916726670340783974289197293079305311534512903759528940381805105094390243485629618474645088607992119240945392662579883325102696974541075289353033461998669380846280637347446551191661217862139852241940342642862734348772062365696547827851165612865171371822322240886213713205035927078852826845298229811393775135744092783938221608306604639832322304065729018969271506498398075404300565950556909674652997569219610067622284105998348187242439662296371391614822598269497501256999814731543187213976451324895528847150085263954565645901999311988109261486940830481257233546078213683205149524785464949905342849817048402715166911422053420021566989229380726402932794845305089625481649643019379777010058009275831441986200188679169153158632843647882749727989475991929693977411513670120500648399818039455839955902498338723392172986591417713152733175392196140299931442217579958452143997279748642079892071636627773269706017897779475317006159905520665530837679092036800070669328718344062415237950553031752449169214858287124789270060158039069721881261162911295468808628694396112969542658750172659596228174912748121096724174463168980229988179187747648160636780401248753952053750789664499522314169983889831351014249568482845106777440263251244577855290042706026511946822587454080746544563549958437559677690859830020923281024967177983729477283715175529296138802311903354569617503622405970159749308627586276778836475282080050971594560906183348936659656206074177651666231698159373067560613118613921463272131825116522470805224026301242867223421551159310294063919058150440992147883347144233026287780791262339919299622388054133901894472499014771537053390982863904885309203418607266036283942132024691365047131868131780263739504409190380110070526808026288124014852388792236390595448149801232625074850406102792975144299945083553101888852895434573350789570229260968109767950031107162849969484177632178398213827490615738274090425283753593472112069885520137878279379114795884023715786883592887692744489322611489392585790530576506168284418823300277546575568000527418617860551125728008410009871549429180346449881774113555427381884844896349407301715835913389969175850793608921161245526731556797121753289411810959312377304756073134631850176466503101361736907917184653997945657911532847416414174243864464676687990966545028504176319139425519668100015302972422533035092324594874170070816717709039780574469627882041482917839649480124086894712832675514139751999150582229866047706005081630224447921828190667167887658108581459799382086780135481584178185564072216343874613314647241453794944857995333279604770592471971096540526560207098739038719474431686039694722907983123066681811241163851275658325978590023803783299516456887248610496089347965131216918818639976579019485237700257355392065450300743529285475872007595310183161648072426150859098925882375308290557737403812986535626555523550321253246555894450056710334191714410644831870464351392694218126961426783433449566769362634059378937250044531480309367854202874340992389531351027518227904124126502336396414452537329297342039341616243365354402697372097519154555815694285380282079272696836686951012908174215417440616460207131864998544369105364586481437941367256123436348886625358058175105013887549407020924207069267057838090174330168711461383327411891796597808969266501077199372010012227678586486964271407127290354664707987625597461739183462637850870177400417569197719114437311860923346810523007627742156651984155465876903611646350979148715391637356770834543257048613785257420920148820482534617883167209005297033792632361838300831697681656471708039260255250339936245734673304047223060322521021046825615408726699253358224112572158909863013037407757052598282198193804336149598276106187174213147427995270812512119700600268280672727682156454412961138575085801406852411407511005649243092970373462937079548816321004684691290547595865673898756465999008380191529919994342999639994744429809086218979216559512519422005568627717479089461939473020369814069975504432633413951746640753302753567131525703151345717588745836560475601018923178031284667442065089082973509774772924959160713730483185960379922179255948044034258665665871439894361540525177812940301176304486131966980467233926086147102403814038606604294411913444432225150470774592761940375775868672604223309890500696131583067913664669675982395518140475288136733092282948342261568437044714237908632827702478082310164141300382303950818665978639642185184012860370093983206788394774204069567869805963552421909453725608205744015201861667392369511161128210919196416243611130827211251927488604560534352085336455345203816925187698727946493337286830757865994661697706041966452107876225124489084594357735713581996058386960992909954152503180895818406096903544091612581105885483172450374653884533151382248462933681106908356085803532266349699617771083615078333234275389991154902756910484890668479809657217841217802296326816547421688111188739783909690831690691375945961588948656352221768829745081107300461276179194597010276101083034923116278890505382563183191307179688607026775228138636549689741407848547169254870540828130771637471485948907848611433654975393453131016887589625116541588647447259237451004665402327558552959282737973598285579587726826070958828499693715115918835443073048428603151315548276729773383422333039057476932462141321578680239616368552993429991699477468752112391242248419522561696054645563140069558468106916090789836292261799831904731035368166615260893844570758300617906983039701594264976937032970398436769196754901501344166239612994779656181909877913186052822549336489185610502411064441168364192752417819080258413145453187997494957588330614612521083215127988488728622721491892110556647601792325833343319635308007894519506451080495894438330689085681984665536994439421031898603091128601136881978237747405669888237446727384957227590550030816289185175981234363559513979780814335526620084367179493822199528798023284554994189141273595927105067287436996179422000225253039240614960033903945098968339151723279400190680160765766975158829566626963037288012617700759670037449911138950344732365159117683369411229919734609177690237401227056916883451146373954113593324080365653572026698181959896919370916703842795034570418505912456412385351882067707998061446945442828732575838288596783768251928024237255857545311595327814210880802376189219077781397845379080629649881884994242133794261057659781586554827947968022128911445158041175009733776735231332844294893345372428455841000013983391773394666535527493760472424121579544945010668268952189964587608817743874169466025525435141184040265829513559038907807514610124664435261472655667739347817786579593921760365589211020374128877455092157686829126931291042503889514482195627913818395247521638435602200028749713532585595585569348890186574269183831106423047941524435303718429243144745864771046136333534829421534425605678014129694420572959737057534100583845585051449208773293694418463318550699247185954298060473611357827702407692651160411931487960997340044116349356910908827966704602964739502884010582846578113213475925398160914505515506361307269938939061484802165488686469764932256126705994307954412654479693776933953979826017970889695411583033018065772434229820289326952999787029545205884355855957222152721427195645829324193119249942595030885836499282358134628353960124080000262579065167952597168080509707786261081418366064617247218053551294345428312235959944383614688942950722600195139383193992276516941793845716668888145674379826778528431662844581997230966127440298623268593763432972869413128109611767456570891041534257612461421010333266093842931930085129843825554121320740991648364128975299804907538998907460661661818761863624998037724606581611031569235229646291324914726023988141916535985805262688338206553252653887319017283593189421558171393805200238462112799914484347866617640674963158104415135009966573023309938617385586838285151331967793973530190438601567006851876558639854141012774273853349569157961240787889377288533875953914923224604184132965048707793084725761091267601644098138903403910607071097845234349552732649960014093961366702562043614225730135452164650789543275332266555220578207561362055893530089144121964185955797662968524171084396662202641508462693465691878951828251573849818831044308788598469218866357080209212154255460605256606944171948723203789860425092044112982466187997609829957562444985822302784977148032488892664582176340484482001029073678149470153509199197701678085556395635833559161180088529693098391953649526044181862834986412335802379693780443308505594446568488242732403665582000867377802215095713105565001089225981340574488464605313346198243929137630344740357459906916181441382358319314641323227690123557875401546361260145621023716129207238072777011994251231526550075191960032342983152986612205731491110685941607788685151501969617817219204404852828910440926215771650347993408005513123114901641811578478253484542862567578152330263536286406253647458541450106141790864110068345265547893834691824064442753039814443491232176104273857304440886097169582211477980878604665859145251798954867876179742801456958752766830618938888696836319510863607784361445758615549981689788265737231759682315145102291213045594205046221295007363129602802922813585780645617637802860422452559407527476189242816595667061033038596894196895288356231417541544685626849949469885073261472293586268937010542133307112958815172485644250366604163059469427672939313411158662654601747305684541297915001779247058707596793477939992012032018776120622920736095497059669350784613129689249589592001200732006951721218553886959561400236452050684231968324083623760666514204730461429169139690813801015116581998744611675086322878865565007617534773278243498753726069629720542958516877038858133932842950672963370946780924158306653033718080938368663557888431346234146676490530213014562891366338336081967582106879679785464855819999312706683812359572170543736287865415144782779590106278779427675142163192575200169066176048041105138260005114754336161841256989636204158296906238914499021125284391770787502463542140116407568135483648341162551053824406948356002618753780306863422557208307811510122162654316594458349501811555239747632887647965845495522074782215075691799802462723368813367517230648734538663371694306791559104646598320431137497267900281485357992996306168343443101482480494768187519607819335021811974798159068840419468327139728013960293336993574383471765195969363247137607122065053598357823797323354989347811273851753871039961434431699415570876884739543676476690148242857588642167097080262759280307103458417137653597710435574536486757628048898417954034203743679293337299189822939874261637177158076806107958970615072407544136758234346748984948445564953238958144234976345207447793608697965710658618127708961562118399296042399981821887930833008685132347593230960133096499511451393223883839412626518944772849832923307835121435750738242956103486332367015166057904206619824138287176026389528232654784352147915941885213990159363895505595189666820390728649314988762796215506685055403432078391580280711919565106210697904947488513948143498556124235014504010233211847778076733634241619073505504110394696753558742642163746638472783757830323796036538635873479249418685192269057413867918943438923932174516622793755456163527886990046870798850241897692736042114461517555672344445153644019564162128456374877350183451398910924528225137573564426051339732528943841654548587082541808764232451711865058081659490107874331175970478021836405048296127046137389107163259074127125082581852706252393503847765701392265735857917276334830231901272897182156983317677886448701477142932958049278042490982832053095066074960849773725178839346635936951124347971920889787428640796700911067153545506981830153379284595708611083547758101132073500683750956596762469368126196066099989216319755469327234200455770766028256049456717943970933457915238791019558183056534534524288242426306118300474461059904888072523502468744862419525976625748838201309798527070682998718518765849953196220674102960726134820856401389027288539979075093340328831010670489299026090892466901593691124581963784936668950883896229190280177486268850776647936198995913113643243011266325739068416891165104224641937590691290933013138392560486652065454369717796497190400742365550320383664736462000440794855927259554409515619342620989381653153540052934787898480637773460219737490139122339904340859096978758563852386420208548015560374987537106488776310765789009163227645326100449969458983473732992959537342908282297208275836329428087840978344018254525754504832967009751505088655969539346223468999261698966434875129078117348984559663683294805700508542014246649141682420156172165542651565289567100790735436217629946192677424719618625165530210447964760421398709698990538875012011305244839189674092374885554787621403083286739212164894446497745735048016105689149735117280086467337994160048302293680829373646991421841374241092017927976989741932061485105926947918663463254546127094110382643306009911650588383117967481272392589631965448146600754457959281653371237027452330298522102753604894732720568365679259570628568190258867443632670656603454922695085225552050337020629609639123654466022674293414304599734165001668312961585066163579691695104233355390480924962377768675501661440234507001272392677168404191152073414884836645066283481780185902614318820996829996282231756584236413067648637784096264142842028186403770055983241547566107913282713411392744415595446502976992181570235031386838545163289897878218095924918393273943621869294522917387614369496805783913907237570395449170603510460948962154298755833618833323376733797528973449047235272904577990059063736951088196361923826027176402672783001810873750970447496715787157717723612028554605052191047239500414040311103822716276318311025727941552102542675520897390351835369719266443631203203501023062442095994095499004132773490326908237556745280593678711389301087068980166731673112092579443256072003072504328525437522284002728266042424794455785118576657527115215881916922327031193075533233089784880477664841929275426738057468454052676343322511923080395908063488610758177168916083713939709036262031895427166213020392881435670251415576106509930251423563623538685800820561095973295938779338323464669254207914749863520245847788016350197097221872007335719896073879893014896399686737444746634752623470155078450178615266596690081177988405801610731850241620639293364717039809640969909991254904828843621072631928990941953572446434312269040763042896369012199083642726627333697377349951715922851076685693289172279961779933858604107507314883788513965550545150307942374837286012126168728182740917514501422625824262941986399107479320795004310154420504163977109351078114791854504851224787320032549209076661813646861098831560039663020834245951157776401955027835938098785788310699767033364744024063393112457949405575981677393921567491982155625607297197123198748873476894018426256318127470728910660613144651204257158604340184593156187713463566019167089430995327778428161768599115351396050729889993528793879910296653855354390895365355583281695660908988973379219855206383607657418198537821086321652039541047618377282748816537302072385181453379316052432257045239200069545330545345984843354248752484879621664211226312326901083888977238811140229499424216189785297627234707609826957503092820942706429569482088592388480843525303187924433484036537591775495244191964057759990576136006233244686662600076182604276981414862645635819408816963298066054595184327665347931705580510658601768283003921430680852555430207117607902878262982947333133828756688235023590081358294247387404141166442335459603980484980544650869045440091017467817522372384054960066846222356348087556042877170835356480949663735248293153283740217313373297844709471491871262987291838737170249660141119664368310008461581427579006981342404158619813730309772104192560158452012295915065856597023993572005439250248138759553806376625828497085194746775824681932818880908766616700071480608017761808791262021558046009499975814075930484672934377085596231228889418812788327063762815371110257518815877861590672696086096067673249505841211363382461163405434049913075115978174490654286456474280398390424449829062880790953979247199772165962741317905858344393981725025050948897813601683436977735717046101895601627920074743416588253541052925018680159856872834080942852266271570121072786147802154296257672129262993766710372270440200253425918478609743362649997988268693142040510566817339057407700398656452479932432655936472258371934639349312225084229224228778409459515364076237372738249094110744228992068010995177190133153033158762307185499600528274908210353205932172520029932223024510156163287881157966093935084588876970147449981989571818645174066519586281654514780090029415341062354787015687687434605530478169184300586763532893680029990806832343377437111133657822343882062842583373076814401026591734800572837207111727744789568634886471684418886726404364833274184996844830917665262057877143493175283423899041070596249802102299476137685802363713124339483682553478496752218985613076257785810810735617534365978104114495838147054457004817912016844023892042832653357335991406052789873934835366013417232732658498782601789036353714451095935091675202595267798240615291433760516874487645765316042102924070796379905546734111946124710047835937906085737485540676226322828143032847976780851435609500383342755752232235920583516909108641814183981226702438819220636916688887676647951843879651489375557318723094552076854309436468832684109141270203020975833906286810518955562352520329226530896619219676818746165113533050534054330709580531235832760299273758243254778464817587564144778748834219532938074350672838712786584794360541974664196427616138960493010753479784453795364655407930232435010557492170656366475589881967029755177037666253590159086238390409710158805050587336407791120064864714623545611785412383835443301172377245294162518731640077571681036584009686751271751587489647634653747552467045416534477994108499982177526829018586104503601904452882485895242838624272964932952624865646115914667662651782022249613630559977482586071745375267276545468298985236582131013996778810382543763812931835075218521041985984415974328064964747283855794663368417046679265677943042437410723853578789310681031634206881536321949316150045455241993253237488042155716893609197073246475866553892763669016527676084530062084307174634978853022428140989051655348946469505506751489370953474288526481053450313672870949797779726076187440795287428984580687217355760884515884387919186460962898943966575937720730067587006508115287538038549378636551485576055164049259164138346114476785713832988832180796877228978853255502600873331913851069693332011962209158254027899790740945333766332732039240473451216999786332649467462722624659802870765728321345105220485645945542608696686635634757605345400066810541135861730193630060145163374243100763700082305619016446250093190145509067562904208669476512708255321334824395001414556538213791046152287515935402722000846526908428920532244176481294289059697036910901312499026953339287775692063098209066877127767934200572671331009336406900083036431358575272102298158489341783318020113458351749637446611339337287903524458275646462576068153859151877161293792371604052045617012215772905440254431296090583615535992579588840806156417900193125431225680281050349426930484222501535242266290215280850611284959989799589805233900253084945816994378098473534735045039433783609826269319645527863019463618763967287973044462047407361695848929368290342301717075351091534467038720077863310312870732888887179782647433794406996854356267337848656848893689153112188939524113310914544730289915730718585408212587834423945764463639196241209586796414674074808244637807550239869728743193041832120213641634904021810950315311471048468810109184417260610847092530153292520675108825674712299604347032567374142033322172650164431689094402609835532427571668086471553741359331211471937508700443091635549630483244454628615274667778132328191594432722951500724895080215938276739850433906928947254459772441336247622115072034184252415376758872816257578161271804519710748477026453945617862780056130224510115973371656259237394878499517525984978258078484161014614847302971688840259549509017311864258424402381197554837373783760510571441281794929401471018553403363708593723814414421325396466426290738993430002713662140268442053125603281830187763382693992198425113371555214213737393214802244657348981789974981523666394290112625666798082470142066891468372605585865359729608911773283789678590609680097376328713316930838992396735044139394693145511144211417300313895520569507152224663177344700047126728421868828833694204587939932921856723340584088496877163248054875264179112813311176656413738198967353668651436586929579366641445037239740584690823539434834630161269185821360011976439916924838749792245720079190716649646954415425985070938061986006028164286356729073148851759395401003201375379446557662619217996725860220830554209333621319888998590539560591571646899574597989342865580809758815945952958851592842083146429073532737584289120123110876127472679806872598337261139020429658720134751741232552397487675356524942928656028195127197360844551255082775811302460287583868638009874983727289060764098695827445746898073990317892607337750287927848073988712939301720014921506491312715082158593513059743631366772113454122996033502109297937852845815459030553248751111107848401231575091997110555661428567759455743427742064197503052962842239337529262149043078926708752721262649337401200888941670473669016675936632930028445604520423458500672850672800813036749129810134859449563651862027412349717237236766301252596138118642156345002244765016375379306415004885709068793030151769431197691231390536276599849734220382193584071352011178797754603472918424484559937718603041585085787899075010391221146722089713751641564156132715133453100601740525929391343765810904825879657427493621378300673819061203981146203339992031178233164006825215303081584038719050112173281067967233962490145039643720906471038811363148780918644559182898385223835202334630264231595641611300943470010101130307720474663528406490993756468329350272764493152159493817377921155753718675291911969279521984417255386324030945486663086098568407733263999290481897840779260059323298195135772945270076074903347552805088473708065726268203455926209067590997180157043741381462068451987645774044539392985849813895887985979906310693750062446565829487382963511950718425260735787921254716285188604294360377370157080265203799320246965049254232908236395913439258908337839426317647871481810703198207897485115733345734476137832519945711384861779837086582740951111326828002087890984687821755716741482478827530650684506904544985855277021643654858462946240575104076805246315925482907307994613129382080562111305055304593589484105162522202485443035817805332718994125283871764153633689192513723915336792879495966402006559684157482088316780435417103733202714183400260981538862934025376421764887953370875354637661818277557656401640535532344021340003833965945966616423018195436043642576609228501919878535495456035695551870061626001824407118184787769468359178463165924774698638713576753452142293460950870363703649141533334427614395775964518479240632966514805709679896636924917965226141529078800793513510641965470024387700087859962598372942076988913471172570140951482922715092029472334812486996179981771136386285578674512043385486101233275526892576671675836431437895707928750737090566866502700648252748336668265014132998174199050166827148902330337694925274720368590146057376766989653781739941090401566519286736638253801897296198785055355329988290578068171052010084622002310357735061318303500171014546706842100679536083593986041671914074315398936506000959543899533982371988369545152947929913021740970441940071185806980734053155287015059212522139503132018269593753914788299185818668573885933009803059705889818410903335931446205032110905297008400278102683252834484806601251189495875759783282033365538787856884819195007905188591704419733236584446330669750141165201599001403835946339188858990017315495589704651078529579572872290874622358483937928876538840115956266759846453750650192591292367767460792192084555423448148823320937901027738807963078121967170712981926958848592467906415593145545143166685012618878141775505175714671137322444194871840009859402143819644907084231209938704947217863778448627065730442416557275739000226291264186072204001299544254611049799709221631047598846139557838349761696399544745553647173854718420745738341469525108180376627010339842922377191970062309033554979656292424613767472493287070564673345696897317460093299240350213243304976875897566624126129800976178148960841956676735234692132323680492605689280371927248302014671803749989107454470462959369907996350245711985050571256571071611230137779440014584107455313522142473583113218505316732193112371833476341890386271691769627274198794351444399890890744727809156335837490060340756407029277367623556327523286994491954885606965741299794710719213534808652570129499714297905156085774124515532104878055717697185121920715115190098113531357379248780204039619795825209016642033622917251171276120340592355493560832689470807291153228382594093231101676565810744019210865705226482370206500800173358447293452673573015473800256229161129547236982134624008278938744968004157235030940157566640073083380530244012264983819134985663954029596131885575757048590875941167620602739082668319000442300936691482924320948770002291651838871197620742475123102334275197067458083271481000711962588244165902255750765700943651980696991819564990068305194346628224175200609644191732931006202629674919209632744461177672635318113371245151838388125751577911712878191518229950318704307722128826423285251289565800939056136677460496995900985725865826702103808315726067141662160918078849402633616840044134993051081613686852330970987730622461500029625533883179097782209398871564516331564102342358061917345755159289586099350563549706345062393525079438623259604590673957348807522565179823917308601934534200533192436970340746107700128668115735335537036794230176035610250993442276533561342616763226741304462520964759676899594703827301383851609799069658578287305513041956038034458579864414333923661533911012364674798756853483729954324839412937072026578346795386140653943221219005484636586513122460027932928879510931795736237099487360447646205261763668676638095445588217859411890399617698476945125088863845782567259781371143530102264989618196342912708277336141837627051814707378794018543415248532926511542442524405546861195018318068892809324712841377706720676818494428719478994404946021017956649709871099242559100629545930554115464850253268186930335681264808303048649735973597660068449247710209391525010140793160982802618635713002855065159018007951888161585717781198189051940189320677957625776041629134285831113143478937614915255591888997416336723283015354277621882315901130857688169818010771732403298077905706557505135126058762819696620303874587556116691161695492199411737518083787752637833799200558960426268094430126310995190457495502195304604445035490158326326019805810126809327480704263036311714173284045738271829627981409725468452199207280116726061152534404187799793216263935643698243977847295780156055968710684588958505429804723731273705463913474737529034853105175144765845109712455156310565594571522182119569365849233377947217922748004184540342141312049759462296619538425833519387640772030687935439713549829280627232473228532494394800194514248081053572762350286013403069855433925146363743878368553073580915683957746496462351255734263656197640970044355409835287845910898634985139853416586997043537650914260402053161606568656837516980124241524289183585445264972852574394228228378260494960120445412908226655424721449472493150400846464891446429438310100480841691001036303067139397744368466766395972290004927000042398765441057369907697520620557311897590683911434033760488206864095451788108098354728097966843588975386784228789570526478898932421716286060460998333251434769468144300928064855352148650219421083825071427043944866523633965394183534366372129041017871320051903509030828512630308002662628739450672549044975129428368841609005304743411153287505769399778696851297823959663000161693513678368867911690385510152919243994130190729481312544643832613143496880978203713496136285996555689577663422201041260359513331528310548201124129752401722646848042132028640210579103439811986898527065491984754569578059969793245876135650466630225070404909708930119074314372429385989040004694674794668596439713850178524980500066405006442336021397903347765962627570332303081133431619704604435730434841980009015305806668192084033407037247815101128317388986106236351912971594681594820194843072162583383321034137881725443306194345075690357144075266615059463798495407207013075935414528100197638706666103423543971717469278915183944276389930760685837553003601864487425847732638105873501654013344592903993105101962678122349522920484316888029301375379391204899274080071138665699788468257902463106025860429935837064287382948230901759148953529554610322576818554032955015626478888639481904571551529129650635599208900982811853762034873528036106717011057545250096459786670041735044000960290647898066886264062200083160883820971242386910433071342125599464637729052271102115708844668449007862689263837167812412533173911771680851949532227858013452370144061650939607400308521686557679700778993656728305190737549631815445557271829599820174580679616310647194599656885323716893342240999727495453073299657084468702960150582264945094355342977334823850696594074461836579543856507432817745085019724073855670591001660262242682159275071664609665287187982564603023788650857566180013591291438920139125677887868488923015530196955286811352893620903819869628698643222623652957758835346216353633967744700645018768610676276036790749988316470962235168253339750356525846761100331486601368801800649314199179620048920663838288692463294835731569397564579659896612612467507580727515692277683438662677717144861835219742549053421442017391418632905001086442164608323837016217652799013298724368568844516070504014735222615680610868193260011054536589944912353249879304714868093186039646181729948049531523286789546639274374072752062321795144492909483398625380172139689872925819201296311618764694550706206404029054812656677789639650682388554751921491342475452017888489727734814796520073978585186548020588802800983046139526243129406818237717437862256207503735373074798312040784249337899805030442307586601652956115368851610468821405349781514486005527485521380412950436412492234761311680873319076019317827420369652785983563922074717118348517183427930972427116751106827927655833510390255915283323866220617344824815153637419288717298005040214973661043757181385236392140637614894165885202799406439326135094277950710985375965711241508987161360131366655660691590678350222964533183113639369434585405360299650088517566802741441956456036795244977657624655716173149614852483367791399908778998854694840162908436066542281853128990732743007366447951260627669074164430067257555627941138415781878421562953306423065559366603585124688589153815267835181320629582903234168731800475918165800450019919882434383803392000402960766046373327335461323480536978433801535231476277971280979184322546956843405608546463486275929059548761348564968986960044751163698832002851772239157108539782558232130878661026152540816572344509567906902932893637098692267875337797953953679325125737993479022555934935380501113981070615023970696081875109234330915586454359987106709768517846659727549313405499655634077859982723293863576351049342480058477841665731407558838055623884015608487811826636964854438530943290380418683830136009900012658683247364092582263651575690793947428485514217378409467695207572078670768860274445388962866097367379955200332994399611375990290352696267573167381195110678490968183350712501259276031301678691244277140058139629106374924514653409759581474407365305394968647243473149020298793911573905841229542863335658402775568317791971158001955071309065637289487896223471690912044361461956389227610566382029682220976782313887280138316693330709853815490825232917076558516355739607785737995472249461864807283013946457363172101991481826935861903559858236297360321736407363597613630087566085190581696333766445099718668992367811233373117534215280615084239235404774250182811889991703931098793463851542388531862051546992268079325273095972399730957132424083984428922453462888440407003077640981304252017954479816026337357010805182078417582439079077416513334017123760115288014949403867466491752864805038915022873990077312978690628252706149661897101731132739757510169916032089008953651063338550966969751953852394432746095387682855609568773588669860444450370062728617613740358529988774299970475194226584357494649933769274305455388981782222918147848877328664896583241970723359370547127228133739170252448768633646584394996485748761455520866580643036892600786213727098876939451751389021784783752769959859341796187333375127165995017513678789114126306310922457343400871096751391772301048542490477689051716183925670848687453019999991238977550556709436390624721851164843195205135070855846021478799294278476508126956790078374928765478126473643702951080990885861998403629841044065420963842100801474905835083323909420225956872145800758197208898335576020423135774780076139303220098398716203644541329047109052826977476044456057401703058087954950613945438076917207102712859550530131715460521348102792023284880098672318190740156696247937887197688460649228988332426254050528551707680255052567260761902218703719479055983869065484628844973185673845322832139917914264700543452184480009895813086772411030948592279170859925973286049650904435405581477161452180005752012299096288248703071710245743361367266735418590186327210851688720864686777908923920511216209641046362003771132464208023340349671842148779602162901270064172229318184237691784462163948397108030185451560839435251827210661027025218243263056442310007492028343859886899551140819448363404456993389334407210880259741891018472112511357871515835196446185749005906581342538258601137475336720497227838681918393617446625952585653564318341813218803625728111241103845608256641908296522459014975654661696845999479154121947698107541582202640816005583359623191414201941661186009061268396748212422697227980503750057788586692047721163626468135920382506452065420872120788307088152139050596266494119080719552967343519666962097105236162691280889817339669133019477317235503538322099242150059814776972819905466057696235345694305800033968247600149477883957270033784310898438353781723198912817529887211619037105455596763563109080568471698218469001926239704298891656211522509142847993328383252242177038153000571584139370536878177627065200050683912867001691951523909805276612378871043421465232724393894907709340095174968998824221849393791044123032367671702303360964275878692637744648401016344853118347141406651737507547409341419171435846928338023255631251342492064438564630796056748019711294244162517588991893731260426660900091897025463102654590407816384397667890849366927636245720290333845288188586467906777120123598698065926205845822903405171071725584520864136619662854799162203123945042289486960817880726575078140301726405102728012506937624528909791242216989879253240039975750229817921926835549003623080959845621440284321613962351275310553205404816289995056750653661300328407427540283417859822323070916878272574359902938589957009583283240039968123010467828401722956731679756206386451001252813377627423541668090362881863825277747541181834812699895654895937659379693467510387551195749854434775972083142977042950248946187676124293045094154704458082784440227073837884984623403159182247440737672003532509194415477054510132717267608471390757876114096709940064782667622759715538078699537404325112569116408000043922877870514283848604418184943116397381754649246458615615318036809332926439215353335553387011585021090883588185641647082556602191344504844534617911625299420949807907030374937505869988833182609782362320124830755991052459687952875314152452089202325760523230477802876214042566527756200334228498882063834571583375889436546743040775836737855623682364663691450143090635811204723354431449813560468853460134190737114548240442882320218195832712618259750068113753538523332071661426726555882460858185643194682484381446525753774848782265753864709869615730679996278443087007976231773507882013039355537731943559999186408882498349599094690644835037107651410638292627792090507283859385721694504247647908322960361834416424680939203014529005778311162609257612737470076725201851442204794415646079615332589765968040064296654425166301864701780580194401913919360437270230191729862651566003967928742127305613725061173859916132425161097435427288021697203455350827955314100395376115547047549927151332859347156628963562740597130213070881070407085969988970631290151520975983251954124916407262660496609998430098008490455539904965936232610196831360619274813571258249210412323049110021493355848005900321857057626947173735766606181784127576510449217310865349949709868535214483435368421652250037690633203226797102380354568067465626892388103456395635212751376936255289511528059598561348034464876074920388566219583227782311096037553098298988540628219108758991569881960747084319608850766469088499430918111894512957799026772288643896048494569990509023275400881520586180983048167986007681550231342366476666318122272259605287518300983552054651686191408854134669736306805333897330574803417414130882607223000824256061171497306518681723757956232093073884157022357345822281442740539568727324410465906086374885098069549845755072292398255651695677197344363983149993501336108838188058529357529370577120102371965527759966380554243889557366956501787079992187553994140849291292995861770867662381214589314632416195456283546381292407876380330185583740078733588370707707810946708349663844661086197941576852842752679784440446711051235809589419533217998233069475452502880477220830127641926826785750767416034626396239215872279606571173591084413961299940598361102943453375708342616946970053297210153200501608907293260031089477827637067833104952143116714663251083594992452881620037324672574580106205488080433946137900552119173121665783257183654935006939800989206802726832116608747067857078020855585159735054542376187032368997556116202327948471872836066624871444333553442990377462085243995913990229776420600691895186977610441062532027606544977568946899377250417753368846179775626976350656902174516725767178547606925385180607622554261820545164434995541511770700568741877318048355771486857092586284295526780637978829833068126235680882238630904212835212347658017984050755997153996701834748804098549354312374980331156086501362177737375344505895533612473253769900119742720414747158580497940861253322744974395708261200690261876644169437381122864159698799913015889525836424280984406551815811584552208177088548448714352136233226702616564012669306031220244182130493601856462233679782125888406842060141817515725756185365619436627060085238145427350249528705468525579842120475120116717645870554376766949441839865668651410010544053910365594574589723715102654694486353220261966386853839453149767970423175736485528251900380459202636732679023395418178888676728865215536959115548696737701615641033646703875734437961892749742333522686322514106927083164405488143923295969964269134224754685974868313301838913605961983569451224020372634921038187698030718563380708502768919335536053266285320565552736798432095359238602237166144717926222042307071344726049726985226752970218798985389925201825247836245934430185527762214335091387914262392557135658647146312403581773425096558862104173336735671820869888705610298430063263223239358118849595365275889556253208286932305379886314558543057769846147290500321685853344584189257632177495080740236795715072098652819445880501030147716750694491221106370195354606088911371081259286326207115185489970499932468256758046936339786000559586121532113465742041264634092127055722117647790900626577297864154951092027960861310705497551291279042493867542628008698327900093795434675842042953127621314981014611730971978345176486945798945323176681296818148033011606715152930655429701813971699908513613482696692932118873842640295379131151841642798659956185908112792149627770781883461067938909750325799696615851095481445824553117697466598655479475691013393070999603350600510430776909307476838404641859543157799011061414336653910508816574381913377548108258148615866038198252767531757368084160353964746248924533590426754251426115422256222816016871027844145096320481078423432119960943261799546092647464325832692574407071358782652739813143316951928153812811498090334511699344915534326539968666560832108152160896314385876566066320203026797381648217306229145548036531358492203581367433205848253429761149274619132304238349856592608890253846800869351393990265262961466064755538884620223967377378731739668185743014509320458607505697781454757760788652482990651126245713925364603557612366834511464629230930877942511610246157251924181100190308414378638983668763401205225295885049726098613408487775978593095985981377148215319874966851289000669730033363960651034340212126187066667711537628876768665680406643976559818824200264366490055096352746678014913151362058412809319373513129995225820526444952454026839855459107740652372969650452973481395118865258643055008940265857758729923190900274965185820308525903659442766235601209008053853870925855039141410023526027691984749197235163631004229846856564669774145573754613742305945338809176522852879555780856660228810874573876157295805439980611756436406786213089390747490761400840034450225684834467666236110735139814501160443604702052690195608510309242209039202414585725518714491964683964894396794807635580567869431696600402124078703379534155491118884746746581796150127806043199329199976056524923927098311308488456931387751444188263089841504201874776022650817957274821936353629220891965132951119237468240918567490936026523225313339512284472465754650533540698814702610018228316794641835902958670444587437804269114353978516597058970017975662511052485716979382410384802267638709684622563132649406212910673464106041420684733082693114148503188944421802135752963196512516799123915257593204751035841859615325556958100981381449085206328910029139782722104867934440670390841236360513887651460031353942255216943021887321509270281429925858706685132111215396879530834607952761748279739905442900429557586423241722364902172429553449695451395472041531250393512450801341888483363770875847397344890031040672052536831045599801747107559032882309933559416456428141707216944647788799315373191385508414957811858940333540504853811758825023701162590445675201367165892516132681131459204262726190112303271660749316242580676934951034427440525216521636717162079593067417073862185924748830902127574970255819887737068593065334158484736240024416017471253589034506074221386875324658355231307291330560737576310765826994205586433335427510741555276568714693389260045923667767153073083763354981940784175312096592135954004680675510190993514499080171927222979455057459461163593308278678893278314637700877713454641582349109351509673657642861385666458847721433799709658971012353335825587200381829723567878807644806186308556969806796955235661756179256686579801219588870441829404611839292099103042947999864102650811490825324685168049021973318548226618744802855474309732682229669367590549218881974807036444922388185422506259356676742453882472575370164272630140457898734977536967474399289687217501108879936278357730327257093591511592384981181757507156303078006363098171225816011976154297951611992975545419377142518353779285610544390201388627438010139677307294294494949851199149148580736083208482438782120768266115755956369284336976623256186855296208327138382885469339895278372184663267621663050820030270743537774404227029070575073672912243383430211196393177757784468624600088987411100558067388036648148364178682532441327059320718554084597920900634046840344684328870002815560093261749075433054068646963823827114396864644090212623601935958940102007237175733117625526171983649635702350050163434097520970089970078902954566929663906286761155011249591805111590678464082084089296391779410738915804651491339959538079260387438292256483912136159236289382862928357214633238581412449082942091369140001319045309829152107904653586872875887029718671684806829594621657962081522018116859964112626632753234344038503232103987867913461050240644174833598938912483058062298795655241045179185686000521093712280800230565353867873372330802175102267054655790393421620018290833798418333101728189467008243135363618667162625415740157210248353687467698304045119762576343560098582527064983654227378714374057789816050530047937041485687785429826690859694102807769780337941671063222048917608170600584233917330344709746832736679780418503319481085801002835841273281561532893368329321873792169556395916703013349622012559200270956831507784393520929552771341339831437105444899982287440322346205494088213819855895835844669154455266461825631528765540665335796471892458420413462653674741124737250480013938606538674894145311065162708775109863588237223579779218247756458018772246511890465798463984626624981847441921864252026311558468333750065825926304070079358656245227220943473490778902512149130081763424908794374325625240142785469949099480258882150435017552833059357691673108980309339855029715970903472135671036664835155484421196918941647996201024660635044332983993586009772727523495710586731286146195494533782883395677125071395893559169162786378434426129059280739562373696614647236978698416913370504885676545556714261103592838502275213445807230435803789016978780459505261200063691678665505524026787571029051624171756113703599058275401298396253778398390744378417014732165087717515544904042533141412362524389221571793264799686631999063223830119420184947785371439773580935471288822050648613318108811508862566617470089141019572645056276507979686137134690526920476521645194128199500020395979962758722366196893433820336847815295118187854230532180075407261352963252085544863574077194016529907457621171440214396965582625107817456598616640900549176049039092209695997048626011898231020463014885769229158517464015899900256304551955329563005004835823718769369798610097799037969178871723370866760597250431935755808164541449292524185858795487352145939600830346768800116590576915617792326754448531221234898026137959078617237771211642285413659118755986079407306724297821379756548297242218253731437959980502238817849776145048914031243388715651880392702674620240813442792310369539237819287817929959757206659680131113956464388338568532155968453974295344308140398243191821090374045781840557947168851681313234359923828173516273984106212996236469161087527599345037973481077772077621466698611656198559245295392710213566991982683303113665332624928400317208597329190170456854196860073129632439921869643620911740801575380886836607907890503763937426626950469248051109524876071804563781139523617260063078084766596704308615075358465559138003430413199019459788158603903316663760911185289258987139285807827752451416504897392663612841855900583989574227034983696618874002846309893032556019338795707222275741511881980402787747168164626371076264322246135985461841707458351231024207644925668942661051256527764267619110818832748142460114415337237505873048726626450517128203781986844945435976129420704872869282642555502044524597808183223404483125636519642123674782899799333748168178059684699839476800667013370021548998401337964321593386355475560513371137904194702839612770175407569307253841690425217708180525770082136609024525022882283509308043077877554323144489243048422347368180432231355618602023267721298326190940453970526642383608065454898034225675330804447622391753941938665274275532875664463030499003924128291110123181804014129619947495107089871648297337948597028818656204264922918237339013271934208017136702655891417219492950772372955251412005296070036557202931646764543226550192177271823387750840254007650414321927834538492522209428277864687235235005317637850550849839900574692148646777068087620415901615621036534270088833078757042923248777067140568527192728203684617960377836171875997101991061195372815450856797017615116238431309241223188998134795082606942431869489610199184410531252327810038952826949457270983889135770960908467764433635894299154263954767460889388562981781801832069905756307523436782137796865486314511339767587308732549761741354890094358608488793967230480217802418959143557655596596871101378066701923595390525152393487769840190993008519055849382103217951605950663381590543386775775438081526991851259505086181187556831965875114025103317637859966244616454254239585524036563763658703576998066011348341975135274128588052683950323365153648810157647442135628704541110661529112771085256837469333484887949274290588055037336999981805251242099551404972136748561293402600199164396640601053547600185785586248483960140057443146692619078050573948187516939944678899842334748181394277766939904618104605975785297175866360544242697298734915228655068475966250495462736588477357403334078474782615655707129144959058406230394075757748748992894744362226649695688935801729576448307341190543448737374654539614063976598088517105848214651303079236649518891688589399904258016832590117793947110964742785794818528740957052148743641512613994213898806327008959815115094505699289035269772184892899392127055031902271019599124601526630705619000932847950481224334539044770013583398883158542136342661564200243262589849239313060854981010924612846453853583693812548376885092249623354473017794356244278050224851096727192147874584413619644118360927481785639343254054511557862853990654329370728748855234626247557681771573289055596148904889301729350333335831576239321466490157121888220352976537661647087857534865943736108492626729508384340999993761034278596130526711790284687631601164516059146522819510971457993136488608679979995886505979781321159260745304239940297682006357031181401397889981653755824376809687004346626038637653304666750458394366503778303342518991418246793350729544365317418792582704705325915330160528146575961334723547107647091671435314954402082062313796484775400410329754607379750173229606458035742220400545164897144310524280908844350039466804717821910377773881711483734840015606790581210778736071028485639711639677612568174350652323855143835842046677180853987744445721908568738965054007264916090916420608805883578621848578472975895654053340647739098641692461936962845444975809563890812057385058449053779571959822854864133086142744505096299459381240362908255451526530376478295722199378795215977853870671262700883075336623665072426242518233890821847947541812637600533743364458589438704707437816358478942594111299299388453788399237448976547962750205440187651376011443155294400992061790662859593603886268147646766060138371551321527531586526185982728941649636214404109011050793740917831943842605160909369648732252604129609965583363692203826937286666064622077475924602392621266078372451204209303345383544005716480707196829643781804168975708101812994460939969382053995634094326392538940143386901283746174305994396019268824638912314415049713672517296720529641533193827235808749212466428191293422404543573957810994222391850846083596344360924070654090813107179744957956666569467025395697315728777896897658664270459912350207411171925682236109639657787305212702810183298974529807192833246383381705082127358252291412875824287587135381431316604441557204097051651799779360651194005185667273376512989102132506177435812584396012368535034547475081733765483149794716550210066888425610227330391269629758644366493784132837642726580742295630240256129629581398994375588062214483551266533599161160893969953351613911044372227177290216129768449699052772076871520598687135342434811325455292722599577884089973743995630038347651806326709997174371274464344842081382597511452116854440381441535545542290410341566150879520640054723516886439665592414333873557361100451702398946639455170102308624149525998764861210363101429724375024103873070239642534671346625912233418503076013491376442991058599955939418347462417838411822643642154655887198966773736854400542224504940664949049091144006084689870617687544442535276176683669310490006980717233128404884649149384927171838305666105124847466809725404480941586423645257494182752194957451946142058222464314711986238508246732177615932722953696905517728660362537811675278186001609279052377179596430118022704275060045321730789708030454921079156449567817466790333175364433627573627852463415165466486524547034454803879111806807504642727443314103391319321826785866262501969627814761660396885694536606938749755600401563401478693090046085234405313434064250039077812701678084025918204091104485006994338714879860892168761465599870304972948838912441783794464240134276608557304311369744494754400434175953392746047344914404477149658650850048641325778791383754564828367127786974356626685742184865568363580049819617805297650883835458796983728551784735753141317292617497486217330045432545795194053101597570879170317632937157959121060703993666228433448234795981900935138053331809667553597834488151268488193447803867369817251032670164321185653951898204767211374419901639616398799132517438431317586414028890258818116664136655317720369843120788438265541329827951047106453411720201134428325411768566855793186903876136473189812120013620305410360277520647344414172950166644678632727981614376157885185796359404506182193559817252049320981080452470977391250786453408002473091270790253124894958796063933148482952069731829399272044693566983659204649368408569998388260938483212516368365296398976145230782679398038591210023388311543754296514944559197260990980820612873445957212357786616841900115098031053832741697579720792146893687949073167593466318179278108436235982815697065385720523013830557880511713855272499984507839306687649109186722124702203317367032336449960112032197576747272489925185329086922713199939428526474876083492370594200733815516879260834821385420688757840240254341092364689076245632259133681629698419450816326654710184235910988434437515413725057178357764011975856170841945050877753760632888940908693771317696311136605244484181729656548551962506094127591661057487730641986025283214359286689284979115910524826420898406077441014408054808881871051233521946563999663157355010021259805630440797013923662790088813373072193908879562738780231153440769972766148994748986152708482312798881568502351512537909324670345241375240014255003336168561604775059295817280418595509502202491375786283025958689229336077236864805356065227877147612389851697384719529049931343382170131187702648575125852618970152964986573897818260699189099205077660400736334403881317497773478846427537634774449254392788796764101566712471738562998083982254511104697678768406415285004705998261463577100886263011943493994877162290063809911524718665267691341399321242670037127356061820702990307407735822455011439707190466746009195972668325286971746071833845366801992834715462190493221227116381398096043249607698068899283887565531166193488939225407287862084109991227841254127652674050007674171727195806135311299218155172989378102470516347811311932763529024107744453316651814177127258401453493315303810885178467548020823818180893271281893580195428539595358916841307864135628045952798596185283463053637564031772794386934894121804547503675858335383837692197393074250116681935914501134746634347917834778582260329116386736468515507444877325591093322759369415440042091571497820073138853413897466082254583032366949355912960645966109795506525212306960332530175163314505164340272909956541063253946787401336067575804622742394891482937064214085326614868672976654810492096951664883924650300413040601378773346810558260785730562408578264612270173879432892410824680206656941708333641688976804515222388632085032789006889268755566557466519422914244919030342066518725717362939508784596280690175403918107866943071380258215485744440603671856961688680691413427280868451682747400676183478381373397226235158526332775179222297422982647465933752226090038420315771172615620216855937292405955768897043760036211588987689625042103752591595041685271092407018567233845999367876637234561327700142089870659961601088829119959313417621826696242882049458106958666181494138741812702575605771306064112175654832698180044684964181611205110643511467024676651781101635347380527177289996282973208558552820024300358957364288329932020362755190639397695686355352274295915384977239844556427957966253376205441782330183663564728135307748856741794997965598027116474546328266311464641878810550392391941141823324601951383698023212510555586588836853682284285451632886447246973829481364063655726347770825384777135249515442698590347293881938598456232132306969819055351433562708474262564722935087762323243629102984189223735163322162273609994011848392269594762499043325823993129858747966411615818160026357197918111226660141694814899352668505088603942971321459088262312380056511858461904721060597827334379406242068598020763880335638813478388764160589217079861228313339035281187569684803689539848501493444778272510928175510092585977137674793642935312058559287786257658463549325025115688928001551739215046344912143860729051554514227571136502846033496158503944526905465257636943355247525997225874933029334610041977722473302968386836996697735001481342434652991148496137560237693120574654927976197623991457837107794946145620327831732700377665484758760932365458042819935565558944634149127102274085929422343445086889405172317431661504735863949882064465910658020929800205219241398117223344368328749563796133307404064144461136982894168700364310493282341425103812066162112354506218552021965004464263684801726030849306926253555139678883215616162490980477971606988683173684429271871876740931739714030097953278756806723822298819225914265550811333986691812768688209183626348780207952426803378070368785676949628875677987617360591474693325945197142163810565366501957430426061962374891825301142589157382797254481370296406983451404785628170357079980047291085307494076441424091953391515256672007020198339086152280191216140178686010880546651647717045236985511896715266239691827115072257634206739593317597200503010244631193200891201415536294798476904460089329919051821261453692826806344563429575602585697048461215577770663950630041377342375897516302024813420594003651294050606924878490616623291983652843863253341340918571392440883986828931854164008079147304973204416527152438302146929932810732148826518684601125544437212225394736098857010240174352060194838561190286701323934652207652948714823531318162425912505742099544621113843927588138770127305612880001319056678139398885174826936801017896956817904715960878210733320261382451246365310002046917638859413380174506543245157649856861960103417542973512974359323421259260365377464674742968475900336731741964830242687827830998784164922802416139356369455253235390386711859448441988724097417681847503682690217034810550772238765484427283940105182606339040522045270096358196964430222450405814529484906908825846327271220412646540203787309688893707249858001904969777984007093551920911966629979909322085905559965490415929860377003753700434873512202318809571189336769243416297428033829078578397181290181614094477425536089039494482968027336782420270521587284385711028611228581556343291686171926219852908217958304638707152069929825763328423452578794829744224892035798939483549515862049453082031728970269394418070490197562359404464513990656841574179012823568849815079933066662585777040565463334707118250964580313219741812024608786565691285976008547518269761661171229110358395446104705936633085869507735811435321950823288021830183954382971756772212916866588698763157770676264820390536594247261749681346636810814590407426115290441449210315230548475977019471920499513333213555887789031299461582052445713155544943863097315307249199397979822912167300860763018177665874888482264639324350054553436998868507783544702517023668958922514196507976450879933185102171286172561097013836283029429696297441287366259424720559370187946092745239420677863137145589654046942355925393127103051667814706508289544707272424368508117494975270565016522343485903188881112657959428144708165818448292018147476691333032333496718690411545596290814983878812278551498202020824195754103797167286287920023227056706689796226657765419461935506079791317671106866003434259583384015269986835613503323232383215760324114640866101063592479480163896986361575320561737761205578974557523130865285863781133909985526657360437055874899425564914946582753436430852132190103470476907289496198931917178078528956688784525024890977346539281111401331691040887999266035327778646502758798423873732541694640569608638727541931808443882085374414513767980825106385641662151615340895367713984248928561757584129171768905115077368946050110231545581372564881314576799855929671079013621864489091332526850331099068849672675855028711900675742637779164632388887807829808781536278163768440982683680693908947386891860197683925925954559465167325659868211381375613378539696899246049009883220598024957126957063498850913698164953895846802415479185362559253334810059764464555868161474224945654468374860732517186243951757781247795922335504049236244819209755139862723007172735278214120522518475041240027198427744653305387187956924614531445900445788933451586490321459181120441268504127668310474657603499320630381743408096553297350702711158163704775085296542960105504005319962706413661022892892179074684348168238240687889032229705665643349036946258614113222426854482039033363486668410424570907011122992407138780919886516136506209571621988728373666450095910237235091249298372276634917800333555425363018290320457822487270620142837939008354086884881692881100995681008416479014411232217486474117010718890771816339499376645867950393935978918123201552692904421121175058256703697993122351098884149876332776886122746055988673051659699336016512320004656194875414120437241673206029027107811419935780669031871756040856787293768261665560963324150724795688718447094760124864057409648391960811810607572911314821621921234426381629342755976536273275248087742181076717987283993946100645624002571576178090421957933014478798291948452305685132496682126751717175908081948829729943369579196209705952929969356056460416393172732486585879461170580522343753047375667784503443371775342830094351366497895021296216136866002956650113180824895075738766269115315615963018163952489511568610960665234061847449918416961500237062325425823597911740544854220373774076445190940436304606817622993862106497783174586993299624871955712495291179089339680158428192837449382572228808298021815070131209153832957245990770323654882212009964637573120689015989093498938524164107396278630021497659257229647164175099045093003632762295578217747470413048791705838695761305359222965893458773019223962530982817103294640229640703343333405269544547751754503554673104470938054673002529363487387583783453129556568698849388421848506792425991985399183972431265831074734154977115512999864543684081034508239581880781838025943798526967970991624602830416017291128332853512795023095800159784367513994697902859293023437771855256796153142767902792934854115870747594913018184044642030046600995219736393190257345898445879804092557427825736422868381519379066990255337504372363493740667808174464143921540353024635143486894214998784991669307020403525038279803134988535656963243105135160120514399015379221811849665325535203624502070971623718114200995669907664710803710149009762211203601461292235227684801381985082624700056475550142779988033256991172759273877090944386141273900173697877599467153352270247597038596287818544101720398448546317606502789425310768327066297701559058793539768807966374669079120980286756841705763349004759006331441797007656977217327586867251547507042429565493900687860560266589171532588196912210912153689863394347557698924150668678490228163226262278534664722575889969459089015944949628150030715487013860967387830883055037245619074344312723903994314504574505364473483613252110217927983931645581712226116833271348975056938267513508039837772401486264188771491498487230621536911637228326032925311161779752883088826072219591522238338198416327482776348214802631843903603809835181905798964342309421872080241850115625045130811828205594047056309482725156266560792848126632667054037236156548043282037322915986088757557702695065194821206278127243223691063004622139803209073378878267150751069946059508969343362873548748697286730247267663315438272202894177911392542845459879691790369859164236645291171388756707009265203360115772483845383644159482652848224741240042543024883112140828054918592222603827057557022206057117880660203094313268494658615292491977717299856790190336204287351659176839454124277430244813295405457686157927811555510319272998725346240524744138293168094995513027810945397408966801490036237526029149910078566930333203204585580663302391582503754679189124605811971995507322198531071217336661020641044519453565456568868255384429773383207763469132830039808950259938526941158635557683357428062610263386399227549715484705513081168816267606938410240241296758072471909115660548573482989277977649449372144493566062009304861202384033447574012360120740116955852885019035193798425056990620911042791608697475724066112013585631926473333491842487988960878595194110095640451784805640297670283125271548639183446483958463319877180897837335669201157693688207501084279446428288913587040614581099426096127134185316208292127398441309516783620414679807749549640293417979792660559648228507251405048439718367537633825824885648643833688223320983082786347753428786657075690831312755949788721374729204359115761391826251843744979341893552468482725985889170221273213127906781828180196643993433394744312638241501189679332371643853272690108084881794490720261883707492807781133337452918458393829200079223543364056746266680187433986523523215861625727844474591719321196968501848134805264665905987623721586075010447781730850894913745466397944732566807096513588681404834926015661390829643310194760436968968807237015824947469194471058225240379211016074447928568944101590504086593353727124115474441879114403369039160300734686649139597745906637729339599364158363655200593822544711227254342660064441451473920402043437310880847760767619554126606824546131174234832321862110744884331890827973165783929298622793910850473618903767884205321781576779066651425446617373666227349969763975302004085513466443171956311553299080832483445339377299699754133842438907368468358328107871622871623969364153665130636889913961955741739003517481416246404566352576331359158706601839967647967494457188093763041003901724258549003227700153773459030338354558402954736599918835236139638514126837043499628525283483596214486968941461395169563163312641661604746770362613745525420802004574804508166650386101776942510636006688211713152570142775213976820294246160239415671600793551299052296991279891522780654514637561381489275057174235559502690355442919814940842943029032914602258394500105765808883070569929458071330164067739787604729410318728450238995445487968054938332153296155629241755227354716211728726669919620741386328161290874975913870151808073385056712929753269662778136997293347142626334476994249677961810235293826745763546548261190133009283438130105124070578797485090113978660402988783577855280080880953124862213670346098960740488933950387638651376597388983233066523713176627868748217655113332807588633834057685009206824115257442454755765792206547040149934678197275706567503081061325641491531779141280292709532307018629196667943679204345140714146852723867989103280687867676967316104126713845054718814755867686046397323510080188889789168170003525485467438330640415189621803357852034184687106386914064838233364773997751565728200114594370038828871094932186293415691481006599227419880918620463836239893447962044195719783235218302453031614870532412174458397915600740508588086553699742814564651673524504188317580831370204217763954573579477474018182943038913155065066990930045312660820635138660915403277728063988373090548857258282522961186295462376790994351323126536431473055080945847383073608837803864466770656829391885652221190005309767107392776620126247956256492291815854799803021691969935552536022857708861268503257165424919682034667795835774099428287329189550770892800572641494795132911260075114520728388732743256150765325201844861175885282807831890493275920901691308972825424218345434774349189113773086444418836403674558910550930320381897627198499361103836109851342398176762882325926068407277131936462229968755120094849761881785354443584624842195140516314747722269829217056696823976917666142655533865409221324214871634691374690586030171153220694966133600234341172365230893758274810361915819885393357531794264435509927240756330823234067041987227249576259074055983242643294216820649232323091175392032944117460734525112918381210689400611028885433295455447262858859801931170844143438573231848397062297940953461594774159779301884022546543888632050896619303978006821834102266858912394379652452080417594282487042184985817481249631419186653066956979640263617002583233839165941487420147961439207926002722252402218455123487543237973502800088156580904804706129552020953767682543048871282528324018829748947695997519493469605419030378482693894236434338308364130089333846530867338625077347340170338979738067032128878651921788514729275436513864276801296406572633814372056831596858869616692688604990709854169810813586653390884586395798522696675779213028577147913658460200434004239001137179679872624930956986283942101131396745274567767669548314124498288082258671969026104397263353887597859472775913963145197736353998050724628458855980882095531937535649213186485033477174049202992663406179397208540976590110303282410735886537883520721510256533368519697364451913206465374474049214470774808554753578036069222690088488764017626007203200562697777728716210480218478308973841031747999146783413885177463593165569334789858674965477747298258511148423975852400686159605804744982686041643231856114428784084740213755786123629034844799328389607795064376859151677968322604706458277664589751194864917351364748296777917715974767135929455457041769005408139150447636228969496043311882898175594678602858194845831074201026030508159180726889337139581569715358786555319370241172734887078638781883535484436985431410564151960180712889937338653368508721576506452111309340194569518725462400564117014049908173493996620698065017211893111009762370318971537825606822424410615688111363702522436855558350226026249035753643881632051267328371110371477148565555464524009039703088953816960235888185913587435634381254341074221791058701783259650014645817751840392680127105399212419077035140622242421837821210671682222305033706830878283258748585398554337536195289582062527022223579898689031594978877086507878385902280024252230815903819771324617933004820261403876269469395990789605388715019841203950696889934606093939204964082138282651762570316287495001551667103270769940900413543424125854661199569048354540560505870279117447368698515035962301881924722169505226012893474094719888581657738170826652596679791423536832121304464298772154488066751752724668267511830970227377893237362813472227380663366937222462444496129118102792308087005965498968708752361165591682484970098249820395183859618120158550317854763237193993940105581642927342270581997755163331994274025053106692511194769660028422196553100239312721554353032677952722359127771936363340332666960127636673346044321793151413110422879936690108064588294260296050741896049232672560648396225118565163729852168970504013258500464278817391188901568584644963062024773970025879230456446500678847384972217773720342812670327868547517298202093640249302077681524940806288572285002448211880539747824066055971155663690752749920469095566929329201250024789293736213537317585906721501409378508644933229845828091346045884855856235522416145198339083304917194700755012888377813335084368494286109304692975686933904741079676611704943627472728497889013181715248508347710095796870400743913986292453824082988218157384653593452142345832639279101442776850278329942617264857434432672970522754387079188312958892872268588133292842165674368955456413838195615068158490737957895352682577520449182048389576791456332506568228281981517424595261015219122300198485285075145521124563433360635736400967275971298259607936233299650889846461201790712941239629814532077427975707235338512645925521203364339393782775400552830638216890125033091683762495168143826364108351481091957971307840192238556997798203089217245049859146570532759745111292144034370860648425199008610634249938192263635060690432188797664158773478227115789571857183654442346605684968402000314174531656252767883974193287565689777088150097506442187123879406253769883174314695589821069544303058132306049293036668502648938589302834668112905114931771192912360362214280246317060565162941745904760784283664809308353719127247649225787452719598229647150534567576557350958041352209295108269457472675864541786024414985176078374998321594278765320082366803397976216224723371034106058186145863025882671165624213575415840002346799695306595145095926680806001555011612788651148491399443272702457609272619386601877463986104533165612215888922445058292919477951695797448096113012844565990247886210604004795237665437243523654516033339297167897582182193049985074421647927526248437883018552266771418526408557033148476568720154209939771134238569911127817419447599082745669238353377196760975685582891813864235533071008215592957236144822403536355258247719723515203018492522948767226493208803139929009653606227095950895777245740714327385245136592530125185546520528593999657420799294634958625129715265544917642632962061837995764303248097385404310156967224226166091019461729014943984765057111699550774712999221202009547496606990861570642333127183847454342124855515503694992441613053892447603175256680588492159400911426776508544457306396925209781715101571958385147360832688181229196085925037812027100276926890615656706864095604055395005450127810580253434101191435724964309867415628089744731840263339559112917203322310291244991826642174028074237275201077392099056758237042147916262740229398383078008490672220650542161520687021101788051917220257042979284628493957905395030966576888287924521968030168809449500176351092617122880998324982960576505576169433848879079076566840539060830960893002110080616247232131511187282863936568452870152577568391528069424281427268878642923533432284936383337244419602243760017717775680918707541815142828770263860481864659954162959145741296151146765722386807290306574527166750513315689235804698955118902471638491917796425878999768843041859153708730101029805687746972583704522872764387363490405826239737323931960761744487848820188083452256396985155300054677229579082139317977064694719540752400612952023941422239193574451925931095665453553871174031604705192955709895501586617134251896807721831549420972666490635584351533151708287684728734868650081898723572300714965433530990760776315996443810410273978347279586764815296547169767625280568660490015514286331893189351951338079480279228353157214969353409381367260280504750592026684578213941755870566773210713378533956765003831188332498014181676317033429224391963972502788727323005747486461640502526967723986282684410361308971544686056882833950057162198096036724241983623958733571531734791535864652172857102328764551295540747522273570543175582007371928214728021300825591256288030373117953222681283657679441056214351863483512288567666316055571655831717787133780100400544351739403261816277576117434367346384046483273668426004144026685188794127277222289842019264040269117937180703276129744585171262238255896811002772596572071082209592900536011137390768444945113446021889561972544688878331167374052196639226048049058581100767468663126743600709322441671972435863407677042646408537980055649535167144804939751229049857607999099206583144887474208967518417742049299885389520946875512001421866847189506866957507834764563732121440689946365368271757769092061849616000674948110665763930965435962476938261611749951157229733890927184036243331255229565964714807294036440480520526603136851310281515405451514081545968302699723065254130714181507404231089412449730866850462945243493617220155162869993171944948568220395114758513378798943267933720903886884952582244699990804124115840225802299905133114213571644206381974476384287196533662137855041168612998529051814381898287061151404891941541149404661226739678090502027496820487473545019934593579125690938734807244097914301800474302522122818146620992889527528172091897092682636608334344204976709023139534344495678080990879337301284911506081088844098479999179764234221474900139876441658912689787653496162519132443559261503251550997737280032899752873436846133802285148088742335945929207430867796628155216912511625159257126542966223951259550038503483752483642424882915215392733767716010655175058617874816503328423565328865838348243639048080178239746740658639259925827461841289805475076403418981760524195660557401442140719053709841868689073535760404207178951429923327223383595647319721225152645512964546261911323389048070657006163481368312140825700611239613904268061633384298829531136883832298525055071873183571867405142966021699063664324196338140330454010394789798729526114820933374335256905752232302510183666213725639489540494795295057272578988813743838627809956540082316642097056086265391024382951189404603953801233302784657685769759017412942531705926290031676275040220060152981724220452254789422327198033019149810956695016345011942625693865861919224772125755747721760991981384671514511461946267356336324677234573150559711483360639735600621742888799305250880664287362606594226567075672858168258279009891551477444760159405324309949628536444633175630711422213731372828797932653179921791134965486890165565380964917712396571537011765431738349074427595139211328975728992357215552080759837402746671354405220213614514566079934376212720099365596062076713951437093497575881541980501693764312175343306157056361726201405884817678234254892612306523582447232244250404121802436959303508672237263755091172015679725723475506544520886962743434480969273527761930291692081276952502232863626040542623423896042780233490385201083251764533349193518183727287212176141873921815139339200678027884334807953730113736853604086454971741572495465919100750319713281573463369814224597806493831152156217795673512364214483476402461788266834012484376343440145584838362962674287416390150382932057415547049632476753433167865396302204002714985070051051581370972945969870719715575580542536467279122366447957724999531128240419245911598458159404940258763986539539191913342301329879769065332639083490674714855408667582607045041940735091998446749586494346097530909994437352917180237883434548526001710311982778424955000530353089122998270819786413151891543807464884025095579357853797597333301297695009224741309262896891985314001744644483174381998789797211286378185329830814650727022762744572049413335744457236799043318008276005670971638241318776071211059022310005181007204328252278748318494504606405079449627202177198503320655720421000867191809474470262812424559430795474412609519979079428535162863272812069470097332805061525616505166323996573671524148107933066996612355491181822249010474612841783895872766638847473989873772145928929762112715152687836565317390516331043114081340614402716549487854606104241482275445433100849714150165087453890386313895596361076265947355266730457290876549265638222936932473086873608415440423446530666160454312100976567615620144067103733376059145553238603112796311426597377279293837542233963431929383116245086117485035769567330094669911873318401374733542929678889236264233839951814028549872556867962893486345291444951946555198669346685331353020667347307865606506795377447752601729406156976205626212641686473458570975514312013258511035274875798831335594888955707623995856693836952581661627501154832778319444544558030317568088772793402292719747525095997762079059966933929849143297891587451016068910983109977384178608613673242092605355727745644745579314435695417025540335380405762481803949332768348912206224764166347611361091467563096898601106182420953665486344363500523540681044960331231426931754471862999886147756978054748234184012663874502500517394674964420818844280584104812908772324555451484637290758385369004546298415679491952522631601452826663987903431590816788413347738606927811187651005582997137613705135226150411832884557931644334470251251272687206059137837057384017624085370281406751844513270195188880209021501583640205728296535824028259452102191149886227368350032947369027549270488501931904336968387086367717923484262172394868980310548125006454053806575310168997763409407235103145817813723033991759388153717899471233098837478224740182386117177017433717645184531656578151602118545590699675625554106763376956999201305293042808408286997343584895818736260660084438997811260428495495352673212835313714251888319281696744816922929602008917651448919108641833620064667250830430527264880303655034133974419741771006910215986146205668939398543588115007722587384961496012312528954874311984276001294093528109744835804772906344865243677008492095770569897149008760248912202988241128233036717872827108134245610107733213901727076145624075215287140987827301471939979547008745471526376368079240114596338172667684960610734179582723336538405710081760600886130214988927996902417010814308527983668100172657197931128633198251695552460399366701252173887716686798219200771205156441879636423760414655801450657252210353189246522241994938362128066301055129632942091380901202954264051107649981911466625869572558516232477104409035711994986369843668192477066796220511630319978116952135289388097094851704665848015087262574695172145960349260470882561290689145652348202224555087665152448989499028037512958275271797806003628688198187274133660503889685655199834328686549279352493663621622173288592731289514824551457680296520363367001426470337229987154761081202893929199174616845838070243780270367074351943140658385753104900507065626416856036663459338182741307067849499290348343447529645995231196249291873462799613536904003079312547618107007412346202451072818255238304999262094946691809348517420521399176085481476637056113998672419806384223469898213922988028444431748892804272331874668975075300797355150199751018345078750445864440226941271065220257197488983630807094504988569217229229402186133056955234720919130372160428087401842102128133763007363601339742241220300443482128228033858589400548811897964604527496429838379221477880616268821887631689742958286044665937634698793422101567658456433782856479881651978929058957220223907035582048695922462495658003658495320491913458846388191989427260371093503977087999976789507298550764917010996589758429125471460709773179399344029760891170564595785864311112795153842910361785895372519715107358668006040961243143570533868028868479321200287224046950014958759564712136917874596845447852959055508427056942916145325092995944637111695199666865268677560388641379447401729878893662261799850594626263781795347277418969938067274996995411481667356605307704895532589537832955503450702986641201222756443178639070758843750667558177506630346260589298716003030114339172375595314604856760807999926724176968763183620073962955654664173685422851401110489021419859828412604224242760690368368405228388312464346681585218689546108257729226470880969731690770620830263941648261006299051149783056654528488105765180260194124566854736194398837333656902969795095731288109142612263086493547420979063668105897564431912027687018904602954518699800575307109987218117330479596961998374211467858067375306143644037043040756112987387744954587692675882167202439673240352606120168478897745556016925294308132657830544443752300169341917416928883562693694887281972695933276062070299268501753801192104784576437909514927062173173886629679480083872068428154716186324833537552305768322452856880192070964454827064017662143534309317137885727133927516315332714313870904347191720260974575326363738777614668805005282529349456581507852684187407521773702177702060781396736718228325919637152518326356146042323311468792908362168725170649573316701905464062453505280983740838882505537355096138715269386967754348501225979640891796310159994829226145667165483400017278488125620387842745128757575466790178744208542046536470525225750789448477794754275289935170842730446299817715155074357572269824926819420377193455468927525574195792814961530256577573935438076178632743915664065848799320653986994537563749269869505114402589247159250117461277767314393631263638738030424648331931788386592555325330581429809708715411870573598388091862225246987845601935967683005296002317819436299849846547214763230169232290733504904907384755043945099566696546394704893931624929617943382214023726836301067880038221986233428379238560022209931069905789734526332882075796363069909946387757996398230512282922519121378811708018291192751267557688207936091786085003924891087473687450969313684803186966931755018519123625325780756887595065223092390773374827819679948308187081658582425038130509035140492457963442337145186614668774746685960800857924143098725229904609825346135220367261998274303268763185680987774559634001460039350036528190174512518921731752870929238285075824792028410045267054296580704120717977702979190757287892086725233801005501726217550618291591196642552147349033736564459003466336924846003414945530667210061682656694770663275354449916274542148439360738510059112742303556389908362898460585217875877412739513327745231392962175576607822758611613860700766030874260598626743126853600706461222004379507250437995576835168290692958573119351654001747045684910460264373637366868412889782766364387261426941249263696807947993692690211951670474582789667528619272912203706585412240187261421764516259157067524658295281330153935070051036509090124740865365126669302408364319001646646217386282765567677177238275927271953476330296317385841960605245344640706388254030198709541874345249530450252755901140556535663082893141647912185615156889174765580835984023338236686773521823687760265391311842384440877364654626455591091391912521310715103068656265765784960876149685924287957430261648085663314243364991006652631583711825995376151095758275381830363294576455247789436168215661662507726480631682832961270320435776235250870197243607238120961370012031633585982950175370017451836390189516073793706862195105597470483109012141787249406233685056325120089017583276634325422219085361876075483556268750718260761902767446115986801222419933320535178384677137439824320179723329292554035760015580604397169577003021003581154811303618395647952522160125294495806197630652360404439870522562211741542068615900957413625060309990766058207421619590783438921246470633529723470102814004994249204342355594854080667305968769099794280979694259735911488334113240342815047292437179360277003735840741516886269200289619547811787300779130050512201803121491994621029641851597035282914529106207702783595669567896685516303834844280646370743060395861927668071123514658579152026197661175550151647504633356164056126019704838190918196969760508171895560616508803512872394344947011101520610121033963749150356493849994963665313496962463929388756668727635059329660905134880181369690191364384464375026273451814274351372106486882219136724441990572127316183724820133942940430520607665356101191151366132928799273836079829425507998383722134503982517757723359487148358681464860567647159274296201202946795082574260685553726164275141893600456357699160076925667440072036076343522897092448515255747221064524058311000387972254322868110412292701383704696929728516617149353316248057366695645314484682616528917121906983081764398150044890769589119626202422880217498722306323389133884116115984110286884088132680457799368570739051571338477102193561365076625670262547244286585920361163531929462832430766068300873069624618697540844959934807353969136865888596823281903772023158695517097518660067085230956252588470877971278647131395041276380509506689144813843187005792013342202517362661414902419089280557579336672408950803058557608110961961308376954890339248096327633486030961285579551275113406445439512214614378623575062432163654463798057213772236284046833454488768553767160283377715502789808237287985964453252193331853760799194943887837404366716313204208625374593343495791644606385369558023020571220829931573782673120857408649807038645596220642065485864323492082622224774073386783849130631843877294090603728839653869818399430514563670622759588592645842003974971056781622060353073593854779348622686813649995610899495535509379630076905549468505117501917290080928375077847471899538902570601154050476727141450428149052177431235295895772948752842144481551500168374233205856293217698191509496704131469778453607207187904228421159945787456397009994766246707794922400842347047170559430250568228747471221271564485890268676190094261431164369892523048875462932404587550585386918564840519427299794607080804709951787182993293852317880909092477267695659111627168032986945108871034975586355532336570699090834865310416116791032488775405683958129161155935677252078460740212699040680654864429141775752436334297345142340401344067134551774507975355131418132542775373651420791100358120036868547005560581961028862056150089203722416943792040196846598480807369077972778589270804858658738731603016543093243797238003444923799487538448966667559444998164634090290525322524995507765320854441933684788888600268721497707970378436852974282996231513912699348933083798291329372854507400250139211570170013266150076151530817563000080180498851719736275115555364035637107546964373076830744930478593957008212656500855864342036853663244509572230784421333936844722385803006793004646786381360848856872295220186444971583443110366956091898497079415873616220112165793454547947549662531007497455387946239208584045308011712483734012100376558919294556069650624830822548293085371135627102569460562330013000284333001271251578429785591749088231568952867137503247170670347171533613806891154169082032555161993388583281087832560629393630169407059453018442013180730722938743549728642719213535408717473627533995364014145195029685138254433228975908904037220951278338420591683800745957075419135858940822521631201962210637929846523259696382445007799781245486365231061950673447833065763681023655048074551583390914252164338387167641498013949202276890810960532276614179136661817854434284943910449519648561398246558694833061977690603945691042001310489236243626400340389373643723666378762504956575043896227762583318522817314424613359015403341119126795099180060510068928513463100362863680611669485012224018227772356655403931394300473004990720985660318165782389656875332081726669849260255175678706893759373719639498818364777004064598845799841168870560439443815180506162402834947564191560179805877109734097271010237137898222920640370749992459837781632634999990161354519075711106633246916067468416560926647948699465530385240078496678411084728582120840341017553297766511577644472412918005740433372871007117369472188303284416614703987672624981942485369644562317405179186262111045489952811730313040108189091144349353144249753229780427641229408909341578507315467535688723992955240322454963629141300728354018198679961616086393977310888383160790460472789068559980659696290634802657825050897308920589274113448528604939037548859929843143506618099561213972651605777461531056259603791791579751793358131579746318737093309726590848677119955236854200085213483588342526864207515733014848934201114716928038149695252564893893856092708040852775945427484674848224438441977281786989385492613288668946071128637954599621597114772082190947702940209182284705879954305891379117545939890035151529784471661734130640453500781236851546316303661010476733509077595459561633172960071110422275659922030105692387220611104429074577394021342357717267530785013838187064369123564508779047659390898665045136033767372758617330123733562177025624982627344272734602998633835688717827866967184164602732849220181604848838797953303953940320335915298963046493109774369461574748084271922130775196167706056579560454639881438180893370163582480045051647153649476893775288047859487555399367595835632057568159836899888483945684162932669540117095636315067504583592319914808869052051029892184620840165153069617589488751940018455767125991391859938560630824639559012233333865221504618911094727607908534606761699006324326358091189110325464187743967837650327644644527433898359322981521212037790155243114340757361178409060921219026182228041080677159226711037373141352359840259780560916728612061576090671761550278498556764135087112460737726208176155900662456006617444532274267292177571520561385288754341603213206402955760443196870311443955192122366844981771528773802695216783832536173064561944317802550472465456988152507818943752818498243370924700278788277787118043050150720112076492619374939768098180766336039233547166952611012368945466086903558283638463320632492653666310508081676664355134472615254807106315626016017333153441301970462247190693676967817074246546909243386494882109047146336894467002578483336201377294882395473855565662790162670839706029775453717584352496469501737934855653002458068589926804487366531732210478164809216946329039517481791918502617729732778678583476068916410846787864247013147833945280526075849971008575916721181998260462187654993803712450732094920823653321620168305510765937091841794506556611440520086490040619591360899846565862871930221892818871811813508859095240153441447298453741826624525317051829621295801190232218720664786267334851243816276935270274047738451013814676056367563517449497456476766509591242384603559182468548220253396762931532320833878838896416430524822272578205264751098051307792080183229118631718191542324303464786552151873526819329928970983778847168485634492614402362995036260133459098247076207991588585084102379505480886472808983664404781793688081851013135678315228531470434325469307776396920601812220531001508470437838747129002637237134645589437716796987208345358887796371373249907910379794560190254228905517346931846263271417825923746700486112395096521409859550469803640015307286595435671686476296368785245100482060808397863995512735825361147906341028386088328074077136514090645522847542837521570719547493798479598907137853347317490529515005741260196700432031527094969705930870341692878210108441699767160446793146180811588705928188839176678321243737393005689808916326745265494263169138979588256649191206324200220161744538094085185078559442090462966964474531410997282987429449563642858586038701388994298509995145307751547769156341484850623725827543348555420346705425977088283435694311292662219421097735565774515199789519280362841909939332009992770027432345389000868387759893302655298309007194769379510867745419683116409819967883995091712217038013010999247220159090154107219861882128354459445505826557907389067754579748839301104961343102399388862819101471499122485161523940844974998505970442649514431743963515929029847518478679165869125466036522914364298228459264085456173578764727197629941973610431226207074067674826137795700082770767703933342006381716124652077672403870794485167529917642397044463870357447707399665635493703526028318690677474219803912399830348688398127925342187141038939095670168374576858251088630455564233622255365625502894858575751696079192141388774851188627295823057802860096588628624530556572041334563048877211984856056946813289690168066050454449389698297728650737497888640186876173867770948662315825022492909653200319301347408212534854156873450261692751806126817741154938769970224822286402833175283190273938479249357200679345531493795892272069894657455107467756664290625316638609624651789053898666703841604614108618208115547455139356625659217701858307102384981359273468865915619168921005690364270786963028240268398967967503688049893381772344022802866643069838948300106335366344055781928591721507290485277747445540420209200962845695755706977383658137444571686044589781939890523076978532359739709829819582968690177483457292939821023508820017889405830908773457192386804756378518258743695369193790124469415679231894120262500665733667776866495212313380043020324285877398321642312453869612935676380224057501280594564830000595551695761218673642240629757094299326573026196564897677277716139968030769070604501947412318424454645952202053255837033493306569489875153247980959245634117612999256954321929728287546701951771278175013130566621291035407874700826622915137468424909143351516266498621903660643768586641434007484163358773944571991976412035915895210709648680610351886403619326568209673846847901568808157726806975764961977089565357385835192024134917649722751865511048249226093644325516904800309983415865942954444699312647913067972063189969175640751014777697245490350439128001003002892477813735473280946714305870216139736042247298919120039926581710184357186245708478571526539060808566311018818928335320841264704560728007808536522954571295256645867330414507711934917724111229207895729051227209580413971553726448577929799197485909360199211751458848005358841279605249848505729122968566605324515999399118380349959312211568081972548151885862167397110176180116920888400165641162038562828378138786405282624216874993810073918536859387530636803452416178286874402013679231350719454826045587518716659904551150090748337359232681426421482631924414298447905655659260086017305951423618036666400929162518291735613904140600912738136616394750792499726886983920759916223568547233428831525925406816828241926413479426679153700929126828849671096154818169338998020001873784093028696025458502665234018947827267264858116138305971587017270417561424074219539466475555959014852086963129104748240467201437279267215708009292379943927197132269476051123770878228801620202766682589668902043266102917304798629087403400912764404102604755016371744986461731118636068366679482287387792565808607900794164946706401606642261059052400230823529756885655390317320691812947125794576794661526238995583977157873252996455607653186713271181829313677313384100313720067904885765490097969079419158159017729495330765465446903774055482357075828250042168918456672011757752218983778506392940345654087945268668242491344375239737935931507482358897284974705257753161615231306726690615108835650736687673885810638190342880068279335179044237721411954221485746264791358299584325787302935675410553778809671008065586517825565987989496826911898954145988948529214184106439963673750160112673467791583409046750854012440496003497059709342902389032885017937010731186729903410494767546620780711014438487032739959330492510964611970227659697926096778406029822308540758977759631156753266162874838729520504572539065544942833893417707445368420781415233598550340431427968748815933663003004187531318988929651700496071409777245463560972812660523221206599371443665412226972094064168569712512078672230585070567773274443799454923373020512785025965320431450579383711689384926106993701885048402686272952665857515426905259475027376709339916072223204969365853996127222907245326614867754525593042271989804496063385882982011973496011375946088884685614177408834888987384603516321710916503279375841009525667000675482861528084017151862620260492378739454836626774396519206875703308875516835833971487448156402777564928250089735878475794610351660833979939551165885611332816259490892757669858101843393851679882429384340389286979994307745281031663890078212460824217190303302452512645891075082016211019715041429372287568556905075152592006265468468924955602165487248365639678313756934223707182137063038434290249342429840334662514136637022377070031235131719588954027566643995284741168053986742901925387887775752524375811736216219018365361739103028231755341176167234256050918410083169898764044858938476043910463896532511857751779573385216893122820178151094865221525967138980538382006303461996471403638733609830652060785458905632703653471808726127048289092604155539603261970339188587147568921100271473193399684601092070351470819078971268356333659321369713652310132003128179577962869775885645026563542667007227307417839620104429997077873840550607582936338586416475978848611837499444122240160278343703918830882685258597722996634730943116316668949211819564677699604220556995735213951083910650099609247849709246437141046968979620431299074022444799641464103596633776081734751501767470428609724426751212626700949409884837380578095098328789448023530988289341150948507459655485829060806890565701766167537368895822832219229435148577163543279306824104099299992569007662080845628783615997163550979912751419889460548244728270626984745590797975794743865495120376837394848353942776332281218144330068255175990999217446541168599587108715661286915649708869296513488485943098716606215528071168756099014903295543809052009140351956281259444878184752053755144498840769046890155575703143448576183014030324140335180336276238974656547559513368562742662009304170025700119160717838974837780410304665969313909720142195385952552800379578023195607095794968056034481478649310954841951952062212970630260397169968435327013732104899696293949748418567665996411229793511081976486042367818503405120571724144507048249496656692567585552741708209333154945230968354438569194744382253134714121064644462173300583705935110100669056031808541082812306282506074022834975427341793987842440735053469618177391862543279181086926221130259308732244619358251310511254345009853451959374311943167909096589852777433175598656517092236219703424137516970916613902602104051522485843763652294352855723010571672150140174952394564764011446375622799537190909051174571907405602551897370538947220742448295464908890786963684428179773976755374629019020669392666118676358638830856436418649107179478853983120987006734670109352525977536846258340175430963944041725579268969553593950870060151790070935928713906333090789357925306698146028793964991665432947891777201291134333538747792145671427157754240878440940293129138027687437469475734444333756024081328877245284304039806036550377663452199108114966898252649351982310435374469313913756306902170573456416966796289601549869691887815827426715645618030027137622400900119682822489339910631317079182280086018337908532387576091799196166373036293622982444030500622610891245609928552318339452041030655418917551787573317021363088287189275746810614232387040324645150330489283011767399093107489298733740915684646688475430510360871039870556823176222856518239138784678381495993648728839553335825796586565090273882664709815830081918341401517116257197113880288865218264484754686522599536759206263830949747633660076229504167884117512574119945671541578014029107583197983350184251635605417877111496875497393210252922793018071581474647568283527637189231451975811811629642904751352282137351484195522806820804115468578437695309084965625058674673616380442700017037909520412503251936149859427232143424950544404786407400340255040379827429092666747391946547847921076429035539284309387950314790594265303895989281232771680998819882857455047434637215308614473603183582690770780396759479139023654937100087659170405456303802505711458551988920866941386704688913215726262230318508395516364443941108222870439920492665268981957277961506948986666814268665412521322713531047667100078892592124626095770156433012152136494368002433790111429045794202693217003479371868153162805467298373777905825727621479676426011283268193809586083269404196368515554923167561456586770559080439571734401974946793088862261343917615743076626352935634541852780771331001596325077381563847351387308571524774308852332274437471203248405512783229632272518358475018141199116476439441101088431020597904955488656607143452088075235499695969430310182539773025897023395656684418216872067655038902579084980609790432694980856660947422712750965664691519868163219435261585502583485940065375254238045888874060459060683487955588877565001669952046548393427616331401185074665168418420406970664755642753859938630360151108842949843548420867088843416303213938648282917535724683095669130134494921315065928587441506194404988826482898553518682081947733088889977727388035088437038915143401379747532565289317169180869760944104100174599029585573308321553852161767244866044180441960494311198244787970569062394471671469388030162819513843297269198837709635017128099373433606871341479429504793594939436350638658248192419107729910910528403748438324194621851275216565114067099256418985857807753428282479176625420354300620653093782329472895308434693842297915647185887924785875879566477122856681394376151284220985323656567498256715110417999351398359930939629763667469641811523895725944453689364105315134728538458143614606672365027394430110327187141907898325778924311002633404070043830719552198264661454230439695652237357785170278018432173506007435200000738616495451107520405257921423759921551961460289382041503137572726221483626032605121352862677182676615768688257183969331570101553552866908524727774728866182047811237716211127153135289951101342415767711070284274465902360457626535957094184888925077825849462139817181766168083277808348586859244727890128943427961485222749148385995762961246674387179838002335198608496183840601186111437245755915703595742195738677423308922781191452074154299458868276408600282040497362280900514799988003092070288454633495442243700746577184759441908163083433819301629604399978183376690922090689690227102666539111671456247834903139395134604511773124946428434187743884589359258323297848344143078072988008866979556596859963060013095087280218810550849961789152095160900171944566318530404499641176170995528640070343733572532959607126675347446345512469816007147029469320700883042518877290414515162019251152018519927696777946267714311593377588388583963931661696801898911673104272407318792089831007293130065107783927075552360349992820129270612623789145183651444804962458541994074026833389379966719705852507809200585448200577169797930414718922693678776525225820923981869439777396755998003904216605654981723944607956177860077822777956585403045297790740444734978067025760298529596731804141230961538212397782928134625786742273795875564407553136395708919548101350390512212742040178091159975485972001124472114254819238618658878019503772010293779625417562752396067659495155671681908096561615908301920831229686076390055522748383574888257180810147723171759076554172149851406844546821888301236560058298257911326375021552631629422986222049274296512532542553893641941627909322082704116407178699075112253044731210605047810680756448131670576338548661762750172034142953122228115841164628087526051820194766912163176207512336112850673388046045729422894770090235345451600671327274777877569105842493808025645901544075507543364389913556101937107696909373707938099487730659206872630440979875452835896669189408039871657720368132259357994952340010544849050245722336078112167038295775900021808528729756114997003244551478675369280723166825799834180782139792330765675350047943646663417038135866909876087770906700811930353485120387209585055287548343316036587539805060120712819242280296288495319659626456454459633914302859082152531890147031530840191986028355319239323024097812394132579040931434470916231859387939433649436170889197626182056787081182682360625919423531104113999409224705280828865136574462015353081989739632727851936925701702971888987822294550135995794912964835275256956013321974564499594786155896296853665527486386238931530086194566547625616455950968677121482348072231369312399118820456111125951316215904646197297570020767025345888323660455240089655838015400003086720551569511150260427916605284176101084336009909917490045176071508502210278682812128178726625005133004162228406879952998571765175991692500311638697583049102320349351492357027097688411516002014645398183998991974921586550353750908984132060515695057374548409361881531047964007949665684301105522327169496964703963729652650130245286500879405049742177455990920802626619138940683505724989969215501400310401836225088521849688803780401698748281256949893972517602831650449940376317011364230237617468648398184771434843699842530516383593395976949480547846433296653437612420586030729383150931682328495763377462737654311604000355138739889760766172553460738990064237664880310389220382167570036552247297129561889444152449251501941527642778366014913306341377614791267012984838694071814688635474217160655673951539786678742509756222009604337686067239968930944996667235518115837116704529607049171807283217022174415886599269466749324063498572713688597177139725432697116222888385358152471889040971461424594834285209958335610807205735955091270136331096836662654851169947647868792801789158075024848459772864225484167220505184396648690221965216049305065542553005804334878893212462777201241349828959224201953479999959725694434720578723315001267809625450520353020129282366702840636642959389838364707271515609826750565979463469271428516344617764002361122256378379166566486842339776950189632908314942165526176799931980797636966398506996324516685425774435097400744782378305325357724920203224783484057616117783174841418165153081757686584109356260131621373582029297797491604850965248233076810987517102790668611130196815222891143946898164482085968473711676027057242679207745380088758057704502357575029406335501637854364192402341986039020664574564518308791190421235721050993518475656613396982797394822309997101985772262107932877780672937146397474328035497921815417718656060177957940685540210833104469394032179078384878739483664382859919613893419548706396943274105916165852314254272606943532424057036014660407660250642340742466756159930026226990390509820387269948530346519822349306884008719680532476228674185916049562163481982211733087106861226546599562831478258713821398336010723647007841911066804311067982723825092841556378748406928126008093161683037130578153983280950345725070302629341468692413638961283394679932454142046364545001525429220555402649596095301615017544014587009623702018314310450501592747818236481983832528281907091975631014417830956648830387162555863381274907312299559110751281613710561646059276065440994295007360969774497563348096724524218600442745202871159840838596947062700193188748541769942288036416265326946273874561547411269370089772781558978681050922549309127715755114899498619605138157478990848403236001050357827696578751948131673180176352429263744201347809000165568399540444367894723112685734945155316880793242507293891999967809029548701625019718622404604832450992813108809181980144705030281217132553836803395703373663491443534754665147368902849419022080627936311101911159904103149021913223108918968108607201506173615397635583326486329737423355500463980708604739467584556065385863035536169830184188200077334877505231578784164199540352883975778233356375307001622360202552184693262079818680470288535465443528985157774157910104609973086533945291401920379860712606750841889364524146301705189765714127925444240190352057063440241606345714329209944618946779694872983609776662262265784678942660403956906726066852352347212221509595554358931208317594466195047066404614893449370961790302983598837225469313214410133373351895257358046424687079384372626773285530065889149385495881411377701910694121536907697023411165330530077123029474765917912870802645498339800743833648816924150851887443039427299749147195495954528497430595739855317554401969866041284500158970939751291871258284187290453555748637774213745952554542673734437917795788734701577791780841520840361283037467255064200291925119343601561559814983980209864368190028432405260343715167481836936409961772659234928770705130035225909632349405727238808316739836487226815501714855986096044261497093595318893828647217182127347127682251107148407463480730534170278787742153869979290689010104805720228460292441928573270306267278874738185599673400679060994061212450859163717552334417820674586340421177738277296772061238144618997773117682489533603643717303580425990420822156281239696396597911281036051925731837403012998176933417872769979092728503366107431466502765239008959453345684815712899902682903761562770274908243461350934670593037937889804038666858579160856136437608066231932858271713607801154403051932125272534433582287688255070256618657767734864285375110320172706202566935801463907920786437532093376213914435876573248577771734837484725595142780013396365833523660548751239018704003330317457197209456488945849804253590629615556076787894663441114140108612177597506824181609653729851149582655874258628787522318678922857304969874092208788258479512761707163895156762095592886558779897484189272374393851956770543830455307984775260233281328086534584569222874645925584801114147062147134974228097237325617865832902563360053848398958753109920812246144391381737680827783218347084776865562011425211399860780934756925965492082392203537683587925294091414672524061362023216908224969796795166440225225816709638569593348115239441419385097429698932468955146163729946864295650044361664924537758519755541551061030490447564505899596032869345486521246959937824724086913669350756287263868985074405976127918699253552830015427821088197940940305040992651846360638428307315301695308927215217579739156499063986603272841017980236804804842397400629381985301838336656627446129559461503086797320488806429518105425086848059490262752145267967403935041203297143637657454577593316271701657356208534667944377468298040223981639892304450694291821206856357021096853332197396732622844274313427946667407917502096719918054827159814523622868018840632109534855495432918854318278719423342705329073180499276326329348989021616969787150793130445778711094677279223588759634370381737793944098321851371013216382685631145509111809023693622289289927723102219372723975055134621269845971301620296484837509952547555215213702565067604017398615626872623990471403360284755931586923200558058053482835843278241503785949598015514005585292954897528964384841392421572005632715002690174901469326045225433247751961966732928112492248369546669987670825269015137035009889598810751695609996415974898788158281066129931499556793121995052631380300368336109523531836549697832219749691274331443688686467478163152502229899085291337863217920324623524373757429871949250723146772041563414733548671327541476449722081821228392546189423461454061387473622789264612455055677671570073262718923782935698250239038091585397430973258871834444396533870756642772349862594950622638214854176551079868305772998589471944435270775082273848567284419807968915487888066490312310931947511405370380461530756173093184477172132129183376756965757128359808518347379387662644357110654333312810001062802395457377737630665673924320974048459596193130441118989069612979415808345886262207511650999595162261352518259593356208105999063566937214887671918096539602537193763362565578091700845547378030273998500942648008985153406502507858167711625618256073470958653714091992086359239179862532647737854730808400522680394217542292243016123452404648608843751963459598987171792816857319674715005534612883398223056496186390247053873377494211620031672489143063160659661184943354659912913759268898972094880247289688940655351210149408830756414363726552384138346298626965135168291409465892046213808226682771760298214958357753822965638105668195043768651543931608484140880859297410881426898837545646838934258080066965898601529883988178805255864108555897646852119220594705516355308341788376164085580747095990032700837722422860695916641976699112358866779611737588084121554034237213933944126044165954169760749206702070256427287617921481254100395738988449870315957409564496878222164010086331510563461958741278265258029946633799474999356233963143890681423140906670842627300739198285444420402995857713254871808006828553283131264505633448782942371651304287253257686733645080127699427010360517813288089771802270237814819810761405729126138724156892676126606883592292698654302850586614540657881246645383362154935874081294622026324900150340489010119729927390949376406428797800237666731745562891869497014593026300688870232779567727467680879319427366350556762572864422429523344372968028231540615810894717578030118776656523452620345107488239226132508753667925932314097649334827418687269668823899743694668609960039089584942276636772519775663203468260338539231456871468637314629353449766584829284084655836179442301192480706100839504520731133844699052966597144488678657295152295121306301439828042401854258822662026887496766719398948408482275240485631268707319333227148391822380138718171014123166749537456494588456739668386904242543845721314668468054807125162146030540893278925791451366293441879116716162925725118259367133863642423839808189335365382036181838688730797913365522570895966318174900822289737608870609263436385437800336823900305692496833752611059773139150228275010979711619401916663586054346817035111630982999492706928079829675123825717708184281420724908777272639624163593013171513321957584062642490271377871891584090366128050872055169169920132235539074096054586517762542430896539516883106186963130098470045218780290532527043110075432506082830224898771391978723087553406686696210066523539909612806979947133490485379287342294958365009099574577447891713853237222072373542193262474704811126559037636955461288562140372370714506092085065975374992576707140414622722183173631464858025017895193798151159365853807914010009214121909512345578925792008808419882639493760018870932216136222805461591950219195920628725131979133590295638122237927474328251483004865540699908812278212942386251772912903639986991570655938213114160689487360260552297678718522328222637065100248852815949925408480572025531192791269117612076035834711149474855022161546351405374742428592559991824310650255254538207730059776124559514050502179907665596493159133094252746382818489796318054612453941236682958387736792222673886692409438035933713896400537925525746008626572417601931833243033726922277715021222595590771546074579597338322979397759357464429363624312600187712958362174374650398955617107504670211508962086022762846839625211172658659931008938640046294127407287057709144171351722796676352582079830655125348464288998307160187547461731344751520033328284677269871258216498351301034977334205200066443542101616102218242068165610021410350577848943622839941768806892398884053977138901183644980637164069376008988908824050667881444255182864294632602264937868002066250660665583995104425243606962154940556720866395127599661868690411888219760609085992190738151074815915531330058929354745822534092384678778556498866415950665490199257229703618974032168464303438180409991470486339673188527318523392622247759633952042350007990952340891822786262779327066217943387337653229239617340205356544186215914236611467009476076878739176686055356562379333450839836473927665027568737218347399173218168354972752114030447055002078447329805592791231005043087367662165740295136370372482593319928569941957165605405433809408333867587160428825355702255528928447493831154260869002680722992469201498201333885159273950542470274812828566583583269081839898284141029708415381226611720931232001546973694420235610735339382744943018759346266877732779896907337213159005357360317770712381304880320654309513729744615777847432274174960777100852558714123116651164329535373604888498722977036457972919677313384945649831383691772804085025787023570151363620586282829936774120003738209349512122256997794613661243547241991676224272043771622015249509484554554142440505115108536268486210832840399119798006597904390785621934041036994560781924477823944341152667503136164958182763240326933251505029291773598111624975010759951227871851325183903474095014321536895746481683145197749430301296700027815874051283889914289282416253814267498999371404724068603992201689192371615955924966751758158605221740851544030773002330361283075895836312846685445402768309830583038261567031072333738899713806774272592594543066545949088090133323614755734294270713471231382229338510630183464781249108886744248236823644911587933468562876443209593850067247480618215495370777178182005377972014051925843336801150543362619317620578033420468868587156144157831805655891667413115337981270043826610926556600709868914210323127261149214829243892182031578885669216322836571514958004400352377247248914332020051843058716880924056483792846002503311825163111777670682633599407725339699568248370719854383860837198214971891951342033320060937763754936249684351087701513806878265540202968987503823002607411823212567387347886310951556349822970653827653332366408054049479073792267128707257239659497555884368930870951119276291766865585438130796522601319324507800830545856879774029520478023637588642740709519639883186941362980030144370839356011001069551761676745999008701202103777003894998445391044537118639501733075719939246454857347237096967584194082357304721491242595050023707194383742012825660996928960450784696697961942668743607075735388725715684652920871688152153672362599972926601857761257075455195829117930276053460281265038522751792024021978808096415852881559095549456222575352220970301851494243531599910283168656772690911278679320003721403320496332695508027792867323315068346406526822476814438609304786679852355890054649657886336884209015876193240500694436741156622662336821446431614277273903501393959584901311105286423324597749154227869225557858956990499692833130854008942568476018798417706861686145289825256809424911513376251928747957348900169719446618891051490052439294234808353869168557700644328468305793533755698239943624355001917205010958384597221578768808668723048912899836282966826501621662964950042767703089475850091519386928461870366712774588659513881313965791275983372120267717840856428553851151132562200197622597314204148675594689407206195197613790135947340404764701597242408362897589309904192418725232696755561261578525617834875819632630352119077738549385528621514544657359907194755975267804049446410313017459366688247155235939730250870394946093653047824088655270986756021763977802138410992958075831634166218791355062039970354744743246314528204688762561291700810777447095459398649648352053802738504096473513292765859193092350984003148652627198740762249242833095303432338873815057811763364151398506891792543497490138257311077893299141988907261074579037707433696952487105488578345107428453538063554754094135297257183457408853461110400943607540865189296718445689834212090808352951992183594158340004013839910546447452572238303970005869402095371843493118825811128435897314013020835201991337233825761131054458325454090615716623672243238078388802440505709035656649985316478284116218434900213142310020288577440971244342576909143931279146273117789904714665228384443279089719624473438498650253004621598851547366808842220155930231346460177702572758248323194490310192930409956255190422688601244324195795681723027907471425280942769698256009925407114621277416064121898960242029330159020275298157770630842052143530485391655263631282904113491275797667545180049528703784278175528357898094623272281409223347909243109387732402304084243337372791448181017294532949752548555324542419279699103371780260995799547344152818117849694200495051411971668928795476777344185423018103253460854615932993026616910030937403716353550810083515728807281386356435783402274952448109946568530427669278482434439908349950112714488454679797713992495267768514327340866157022720249920209688963493129714379403885231021105266537325597883666128250308748395818155612761181348533272606130834980066288568504671003442454513354258426146764472924652850822578333269005085111801000865556085264359537590170745851303997436737119038867421873901496133830504273038455045304739169458594232696312689499068455935417381170632054003974916626094596584173330654728126860555563957689045878929891680538890919635346700274441642826376651865550208233997837404728092206108829840937470359830602587559211089824951405992657175817521896439732752296532240475270434089365980788543341118063307669855847468915826629324436932171130008831251268644463881850738350300831944909469692982134862782551073169007118530956127955564421380175366473368554566390721822856899719198270244778497274052980468372630624635949299593605228922106740210909845623701988214224191617715202827263777538096179468789715162964110788836590274594722528527139128311225981152800628674919644451158564862099521228090363024697135099150484515791148141255056627424305199242486800385140449749140466360072412793927686120321744467874991393662027548646908124746405696566848499507200087188261019841594670973323699646460572513172980267925654396884455274048062366144613268355873224522264298389421283218985848223402785552753716387126788519088732671533322822924760627178803274014663063710300258504627285129741531071910744444314113668525245730410534879673938987400487913419512864700536932238480775068011931229807291008564203757437624435658302556079059864788482324751545959176931901073741286428219312815174700382015607863721371725836424258320651169617233766278285623683051175933171611222971557744847508156079387709129767820346888118609577638081647226368588911193154482031567567737921602481626521807416521174900668004487800279440891924424325424901491501319292701730750588894515687814055824220866422062618537952041431929791480681796002162153318079059618059153609176562233833484241067471068559373144845414342354350322643137788113659024531196573300354067654503985573013495798668818857640895506455873657341236515593341778973404994947644615751582247759934323035514572392370053681811966962368767106557803218089462943583231074873069547390239042392337645299197879592824846508911101893939744708030027341312815226613585411316983638331749163274375023161653575991668445937923252772889882212840083025417363118328698769431772555978031897195922506133081574344897016492872413387003318132477864212214781176066730422100644438132129834049130193524723677833656739282532771293239303975415276710700072530024733227445374088118155832749024898454437296817971398270549194994487316796553408834981246452984275585827935426214705483065322154884474520814480193721123200157365773465579571420656193240871941436630338190368300138109610844680761987041216932024890522046444305043205576830066318313864343759602365605073998296142346368891848627383709809831048479666559654510430531476431190108011140546545172929534334399361365971992438694362042384796665920863850546083709045474766037940910793899093978624788903632729116466324895822768561393745422810702761766318798103855030686619560862232072332194884463956460628377596003142126402708861084742066087375249393253387008350021856848830837145801779880657239434091467844474680653608561897650781065805953588515669295137810624317831299548497158554641398101341772645219426573171633038048650325370880350452103203610323322173676908687656570433534239031424064252080166976082271750145914118246956168672037773644239600359167761698846579153876151242473246859067442395802198070644041477843370041238232339059429236021725898748029343454604721331192368666390148611619146548948279117100473576172126627893579222225218873840251322148563432889217679194168045382352568073210448180736882890495924816723067765993403890483662341897081527408318850678395195796137247755776484583818684572042445095567157797343636345474212513814145628267886820795261712380716335416782562383535160517320355915708411405933409021086815567721378422565575207842403391341376801480351203689697148268989195964337096968147977366756195498389971871259224721391184728600301295937917695578267914097909547248769868068474755365068556025607772309006062605347777622114415157177963649032947224544874937948353065236884913365439444293460845833449866553986480131351858223767575625966357478106482516931325842292116719714412062267164131521635082366551142243947664665556539338328230213891733711181334097861304663368673519052512981977695134851274912391422157156489280641959984378854391236293831272405939983016041999486236803815204101120351219714320640385121257878535488581669045514447956733572968821874709678858935127708089420381827258759164624120951062234062334026801346427856956267905565031483837419144460009396796561837163645983179337847691736872193491838390855343997392625814424448915455996149795104591329312853986063200848079797054598924815403884615377585743483088377011617918122631412133683682757594808834316911991367852508432260716638403823628917848105264574836901364106080882040857432686237431475355297374547113793654126160409864024048671034675642275342808774006320264314518799269779976198105536988056745430017544272423849702266983620275569233477825741826092386835860499313158567701329533485671639187947723004915068183229785163439762307637683673882550800282897765561429951819067231119261151816463012599826856520166319043071686989397369152946025966133298821089104312360833333358041069685398860299573713587589648848960733269641197985742703300147492149480663570015983900968641049875774940445545947171883754774194872065520500854002487439347780958410567727239292738678333749253227874179651840451841501024687143538406280069967019313952450903665063902540240475504074693845248652311127180231125993253201434270064745553893316592369728726884800898906750378324622338568466691257242107457049516922743492174992046727031000802686723313365380253149324412185761298336467865459638527965992457591483017497326506239272114977679946350454572164796604540482765861311998606300135732666547205000480304047450907770338698153247659635705223705969644882740889818280310751106198554355976733254621146626522204775399972556828090729042768628552687349084817787786632158982602007616687243624574784744592646485666197916413142529830250634370075615899909293912295415392184897365638288858461281837956027532024113344179072068456431317121837163771870379681082050601484668391127101479152603655304170039282256602453385518151605631823723851985430116233944964341013064379742429589130803020510531425320095865372968557670493670360839499160715287454292197330398673576805168505743208881638396510325755399242997531696899978649619332028380765467783775111318618352418712929704479757193624829211809642002516630062451044240960398624192322118699309636132967888656200229388343700570866663066135925531400353200855366895837096445935730779239383887850293768031693992421256961587296350227559794891593251616810199727047948580590475917893821279302921163940726289761278381628489991593884334000498729658545232450886020836381360610001936330282477727941806399373661265736116962301415514472368704699099469014852161266795634320423563835065956077334554304485555880851577231107390948044733355396511329260643605926473568115364527525666889201544631954081689659191520137970324333021638767063497773964490165058811460407823044867540492019969159250274795554129025249698885958356069149658335516614253360461260356315012529693209047267228857786114885732033119326661670718540852340881237553047291607706206672132760222959212356366884936575625417649579764998359687786782749860337521470390214836067295097339160231351045273513614609066479510182943490610874239422813502112797482429807668681173504419578807042604663854448624652906485791165550248930807325683451564517830827115164595934007530419277274561275212668833925637073649697069731507196978539751329200308522119962637352954046791052586128294999676895315754942270429819464140840708288586076674950993004691771841663185704491930764527081054367927142706193325838034069767726147937467055432920077295086683711069094614075849487654755092167219351173635400388497667913692213247917734201491710639080180711480068461983736063242488554533050800176774027779301159425422971127105868576632608976535110652697101052439630483535530333917196098248483998924730485407590487346259629358386908631215383492506936406861579065934365665769349422942779045948662415644934910887754259518532406483115108407800149871008650082091092133447035208074857450605404426181406015288492642810272083549554034510104849314367981710337543926037781868705390343290661989310017775780176481433373856017550256848446640557686513370139006986743228109283788396885819671176087283160346038930175015934304896614491231643720812174824492479285093714927060943620557891840840932354782194259827535201326567332939859854527188010709453820415690564763664534695812270341197667256096134880641299831317813087015740040614034723728222439478892013892603727758361466263025848847840906307060091991826228850679421307977030914145522845773641679281498895686648001234021665625498216798823770320352051368605820385397687886766068304610796727633459760866015475612390269852046332599382726365035289026014719076654644917296674813399591565733862461173506886104040265908216891543721519217183957963016752676578558352459740928076155919146163028659322268685864444358662965149722436247627886004273580307257716895268012769707076941328377815040528993804044317573521642029545615407587265728549794899705391219710206523977473877066070356238958754600673209136662770088506834930553007505962155215551220559290516799688783998083800652835091666800541086436664854822539231842232529240488090674205944926320519695332051732866767776191099357637333289683408791338226452206150626451492997138580119141361358932586472601314444908145176189679304842897581188031895420930081784177173205630284946354985012659116787850689471728468962125690415087912103546376112093678180874853662158538051079430623886868425482535289807056192276191080971399985163510979142342578255128764361031071002471498265200669680327113468750558367266770538771747965978342321618344943607979798994790775670562924866777111891822472865902763600474939493310199158694301580406629495783984480071215854617457508375127499376591263831832894245250999335670043521153922691632081614277228213044734301382317743576736759394096202137523543585014207959096762043604776289267906138787272302081939700038335827805605291904248306631075057759816049773556811964435918457397324625436382673588507787474569309672592507390149019745026274648321716298784995265435239817541371875342846190815028375834116053561624263279026685653355811528726776197854736434909943050694005528067821474151389346794060878624946714922528281797698989380185707607636539814786910284106940825777221277571104630759424872311267596378433273672582504138746861831847537776520566890827907243849978764340321111331970491694463586395387308980943665291760378177696509657900371466096188586776020812745262416685052791930296180800999518960868782644669135512036234089184244166368917918733826345262390264929436856690184851920771652301744518424458835268437923485352824200204051519052484955000152929994896134327051817110945438359865656406804272995830858121717791483515581674085129075319242660658108430763576661807616292497430426207713230966831255317916041550498306147900367166738802974919071765210520984223002526325400837567231626114786600367647797749916670604129846221839673871805296641226927817878458464331205753560190327271580214271435994762735212983153489236671172307864871511619418530215225262906192813120797033365161500265845214253639524108265533697815603884128851180254861474703933105212186690713330669772426545284092066902221284008060741633435938763359871211632073216904780598719037929331489020524563207362930053065260983802682835607607211847373120983500942256942059040067067018070685926414924530485721913098656222337427353153528400595445104860099870084273552147877555529793395236103979204729205086375992993770302831811533162906745787440966547874344466901286045750600193474057603720944249221426876291241194787762474122640566361633166401718236124803246691611264276634311605449332335846277271260163421111775523159401286480840688142190709838706407592855252218015022333419703362295530873193419304446087071779938548789687018800336928545184388213718620661368971881230056024364595295036301838319672835042839361676748050657493965713398943924837776951644244755798209877591395809688920089758633152427424934231075166090434340030202837667211925405395474522245218941439384774553555597713778433788434384643684279501407886002377787841458207464150306021624426469761601538777545030420716177566151653963431155431204189375364488443499982538720917735595530061376362847857343286887075756995304888957388318719714281974178568949984053233117246404410030471108708697853244748158215225806845749294062085306202140025951185838854415986592181486387878215824655517576244877161600689509919259191498696855152556617727221649680596076689639465384053654251609564853106811073924021480046964984082913859748481377260450235273462948024066914822448032945054536623074212389079347543627723237088991872305525828643873584540606041924395683955463720630728782824689170149731367130484992934376261840398400991092147485448981840495603055683898229288773807723428059395835247225863060426710182378264239325807786065224855193419921673664324544864507904766559941830595356481971145491021526334421127792177229755343522799773684623276434318298912790545389617799768964302571537090976205632995924132924224160763238772982298284414409006136865102839745445889303777920985624444594058034739569667756797409229958818781898555377570672384388030164598572735585177018106817540521083262952195416523198034329579955450534031869103957370926582445241810773711875811318953343720285022701793799415031391644732997215621412073186727564561346901756747376729533312587323879550677560827383563313877548272698293220492184161818988174300290922637356376422699540474574668813602817080543837648094362771982623245132950125023997712242860466901286189980356029970215756660816876399942887878588480984194651963500158189763123905902000957353439204468369198530082052079584458927442545297576297212302275573515954114365363463160851786162246406423605897715754347444383169547427910568762359562820138473835317635202127603818771854598387813335140912279243793399300096617409578263294384670290125170578803496031240720810233098351868537422340883495563388326326681795227299407055425356735245926275857437907022169630325347490578106398542674229100573374329048424183671728017191360437112642799971983619520924861288080061237601598747123630724153908771910753626615169649270300768062048404810209610071352246845633869456305636215970381754359541234024758683505389281533164176225974563309840627913671809672829626408080855853984089575349880687878905892022497314892473862330349612546502752255914487241245526829418927156315278208543841412686396599242263590614379862373143297977696060782686045655428294970941638853204524915117934670021675133512179330191701201893025764781241151843539147503092339075031121152585307350265716229068424026228813463439961370076983680077899076243225206572887105496184375353960004608209211684097114389737288110692989291198193812166766249672734238990659144899630100581524146580077295696474545612256937313984011498992497939072728020942801127909916122786502477755428514373026129750898194796961621215130028206164336516646054270270002642764547766638221748733728857644049247584327298990600513168793478563834641554004898144153065125204473487105492541398189535039066011274417780174895767679145413730115929585936108078459626804839219672408232480212733242965470236246348750903238861017236182457004828625260842120141517662066825558479381247085300995237742721164050387484844973277975678191692238077678636367398543220507619981598577219811970890216987888184989838488479056004372153659851220956912514510882087094319876669731858810887509976347004949961553080560839258203898593043275615391259627523404795061537750044881382920852820012359029736586329240306761176962962217259629519012054266960145951843433168854428165930567641859414646622585270610421278744125543968846701191089902474556023763878451007286753891936975724402447746801601391056709478439934704457542759026824407235857128435390755341532981846930661328002576458340628511825855954194834531188715758699694066016609518579849992597148511295872220322194200235783182862365969742219827752218160144350758011499467534814039924768475234848706707955955345886522907635093404735059693394163217379168126510855306849313077636047934141867301352201096749172601270786063265869445945442154754849034791355356184724743410409571271162719494181297433886944325265850390431380782381080971059426254303268351936076811121960969101762107698431009739991520730461730863069903093333099410541062584909115160127255478715887892741586637204208274968640462225005749398424435016942453626954554255414289175514616127153574601757046137444069194549840103291471025841282879603237974927126906727370397343808129220149506038195120442280909517051853986244535373350395843294888843531065653773830168014827915270397240802859290507157635163553916764568393212656552208124792440059237309386200789378882073901980256569201582464685252716087383271616177185530104182941973481938843968320979547961073531155745798482378821961694208624217209314667972205958777345969717663314371377638873397877126376945752926634054172003243954193395315645062700345021853453178524835478291498151465666565769104545235433130460040070650444909794829778469430196393102387091661242642838219936517833234967544472950920625332751822085088726569049960538169531076215558855377619791830934876411351202654559211071067709449301311150369518103138325350584174629391500817709125177700627765575292456509987934328634567289285729740463409318698638319734548262519943637176748863850854399157656789605218686123688907859732022265992152984941247863483131665764593164819155247317156882922183782363643709059066411405844390599836444007493734079509176011153860542502617441497905513587410837924954018187282514754998335477710410613926243581337035364522577920631047997640289848983332111905556826083219210756239457315673384861027843818565145091017434076598341544963500336755059828581790477350804563010510907729207004628129669409278707830453682010275495627705198536966629696138267571800265782834497861325068549531475852311307755047731802292891006783207440751759535551055567700598630702338344293047464960251496753605834647331122260008428958490250498701220924212497480156197224315348470188940333694446646939443416277239383631128303444129258976233059322807158409348628573545035839610624202215661559300503521682120376872356748264905745212191936257188325766676002726642546973678858273610801285164949844212357754751364778640789274214504205583881750488432833253380856699609026350890335125305150034395388664399233763397285134660914219568817463105218311285022226808903998084304749949543517876940922051444813203171032916543834698787948556285881354804430057378953444820284290914662339154797180757143027811218029923343429210224794498608934269815897530141139261560361170424536529477935184880671137734486120387082156053212964872385727133387422530778339507291439661356115265402313196396835457251285709410034099566863395729465482539086244019578853356450738043113766446297233138178184316416086724222527394474497060579513416646699729621497383911287878906261382612318181461611481559097671712924556177789134805275127725941680634339683651089431265450195217469949553833591160543888002815295519842505045970832755055848280629280780668304310134899970062668566725227625973343045127858223801265540776146118516593220198763395963898139322750987169549348492417362820053181253921452622861973904997255788447259100110456004564351894964016100670236740597418423521027893293516976306446617125353290587280120858631390985788844009438578892233807463999612010540882971454694800782439432640778475605234500310662685694505904637484270040826109968273296886581242258991973037229490169327953625589531293021541259707658756221907949454799696729524561979575434967087904375766804314018099482288815581333472136491819675461278806818124933215115665866605956692254256579993414534708808213744451392642050089852927423255075216594264079966369798135259111164671938988452163229294868940008560132400290805807397563758973501312465529791160052188551881849926349743993089715125707280305169512290695121755029517874902311807818931176195970128270650440043660148367508668823039239069230715487484649309395797594855147478888712772642789467739179452876556833583963332173361986196777314391755194126727223626619376329203970168960428824330307411611603371595430779430025342844821847998153141043019757930193859704937774983235621496789233524681117946893698589699718380175041912602335821789082210435026683706072319362321013980009684663592039498137131173643317001588756855935570985573248175546336909042778459802585500439884716627300064799149124595680918391059020955464047777650795269425623258920504626316723014222873827560474478509285740619387644992942910851500480520470867952682445013021543420663129664777469251059481114822218608275087547835738465140865619451624954332507739521894937615984313484518328717734446673141040022560351047055763283541087839903994241627535461761346755878576972518274162559397697155507343797964517390846450714636307524637047892179943373608816684672351077855094373151900860380300238371716559166711007363507207788869875730481147131881733592707928190149352346486663621568370511764833705859125927173846970400100731828414629950090336186313376192193156494534655855284975965474601393760408862436022682268462310486074640299781442971101250586127894138257255431585624746620322652553812909886634985080634020111434664894931036157375705113788623785500403640090877409974989873927716471744227749581408297755306801543239363242233434950599083421029731377325412852039050661098581402308274838500385860845141052548372993175865358684616607286981525603704186816120240140131448155269936666236566721488083124672737672701872730606791726377292816204330564674873516237805373707247437570222710519595241187422111466651076329096603796996875144151413816399005929775114634383685636841528743917670516258181022168518804213972182072696939072313460348373292638986882497436229843689773223260337071291765932130235141733963490700233842761141668019299763809748841296572094468612121210073269923850173755949299654993494023353563094773684861613505776197355237261997401375119951681876541296098859620061827840575032109365410953143710110354621948426034683639195720490878247046393381278258746972272051856572833790877433346985978337849474257116833940239125977223904342392240034137780646498965968302098900883927692321089399346807153869723264673104507799116510187331532708595305147888472003849508103960798656032183157691267920692044720560201217974665181932109155006928194627419929424521715415289249261917342414565603671932132853086032425933357235721957417350212501808882974970456258352799173627001464029758821025501870016141610818795290059253483683954676792943025374564797679097565998551096598569717058400205203545049377479084768182813013959257931398133180905336961144371384313756837810136018869290378142107114930633859027934773579917488463651694983472940750677876094502281981497938859677719295994423837504530336438536616428524917464144347187239316599208006279855718450640085838672123159635028174032485186574807163853078327796275612456332007895423442535198841508839313422486755090085497777912708747423033156565378506136072263582373061758798783980479355691813557329881288091962181620699495626038977033569924315099837090479096714598306508481715069699522394283262039800023277199232560741460744660068053363461793273842060366328829992288939635792855903480553170772447724574117299167102964087746563683231552281232666191271011230576722155641708540488519076900005494987881624853345784993366429443311366512522441339705739781690394639880675443490156059169012182915106133374557335268811245843927654429433791816630385790162830688858503884655740651383024299481777787665916584137410915205379129230731651390698630247944766741647189031162259621002185907943324290136658434635871526065307434782817046455141829392385952576159036971706304941252823967423480938815369800971428342735023278301967479036577108564566602620117228064405444681911574666259893849302991370756347883536570145828502293504923968119316430167766425205377332372341502029260623901857485145005638180490988741319562751721945281464006259888514936383691690082246693615396094023942357405301276327758399314983895607665027745874582884139044475704918649706265335665247435624835335117054699418855705498513894403391384146680886487965780283696353145640749405614991433050608497671962053345833393944188134217893350169118698524509717567758745047345667262527604678981438976777056770447012016992451330797334095447555781713424545096067388781248276628916979401263132245020008383053207904426976397578137288739584384556921841207807938592483498396626196596526634604083460286669299503271576922739523473795848134102970717409225539253989633065419555767208655981828635055463087244334293901923727321294893379951271765167890621338830596210973786353145764029791580625125804705353229271304356141738115814777612331750242889023421404815964266197889020224062473497030713925334895595607068338112390205220716040167619001327829942546185732718644747880232683676531341776018733891579125183942752245190656715455749134518014266337181480607609311122090566853421084076824693497092400534557330711386590243303966910255115645760530739308283391977214434012032989904468157110758383325474345601408621540796371704275793315398064610125915883063810457470367493834084992485781813151559464817126610819713020996787096075233771711330417714698773455855657520701332770580638601324132663979094106837961432213294480827548125326822340281107781806782371554266747755005621094270204113946635969659213402647326730058871654215254467343842686060941139311650430504728378450741976523040899657928594356467708979483084928266421277345335963615465519699660457432140675937190449335983809285108242593580785058736240427845912968095009750415155217799855635809343258737514294260306466059318503085422743395268684884972599985920546694148680807571530472407350384681696116173742157298651840832190061142916216710751577115619015718450282367142963752630525823545757051768449994693376773102116833505306105275692825544225759986369610358909116745750084775564600086297412799044938326520674059418491473355478486301196903635014306079558505644091984091378013121222480888749327440840697072426878944972580745385608662759639491365809381456516263799183627542422519915229065091848667825643445126869541103980694657663081962483780136078990292765367000721733370339918258969399813373347307970788207720264555244550281342466243825029436407337770287071581344344602454956037154687470723725891976023546675788184112719283955864679808911509430179550567211549676884615141190928841994085356787547397064457742270661306158912090742178726727835660724615762340047928095782321922992414295032713309697840818163510245452323534935983147185838501407416427077791109435490219358281252632085916859612841893163127578023590367803138489026145266702248544686701685700653297144355056840324734421481735630619483023347025862635754158637308611188597482337683596469445722494905963319003122839524868140903202797692840630439701671871919825990635016493314219617256612048508341311410803961292268603375645610591861398138455383890610253873476421425846131875103166704982922057510316515870162006082533875306220713316633513693210884345805873043183060618307415691463528789035626255462698052976275832909611785883618549699242181934592428701147615316035882985158659481849134453896556532477475556837126853804541266158198917051551020445727646730234731813753775395153872741692033354522522424567765723285833335604963357729937228673342709641053983612877827574382526752173639486351229136330142141703323863556730927325603885382599852814008842892077477139333620374251464767069427995732581173253833350921661451003720677768683378768553281474834893991033327884610426578675054476313283695171656740277558851332793870850558233161343814724653501579205940564504448547912648321147316142909307222536401144720714180251868309074759667800811924510341834768481158188796225532086119022443215593910591268793575068744554311736393150369975222776289587480072798764527972092370910677430372090663279578193972575381775058845694167663285264099154828485914954154491919377930963695851491445601602918544342296432317539711668075766051181117411866900237098015384478055591711092147475478963175522545324822098421103240856500569895944475197321683540064835701778844774738773909269312527094022546973565864239721543487558409462089086926940915075507793071143415438780232098683830966556036097593020058827051823281790444515292364267533430485917927734955027287118157128149025456248560077528292792915101717123731137658297432488336237727587718902595079628636178243355592806446929815512699824120720969922332694866835172982446521860376489203866743192942789067117981476087192361013991891503265443548579712921367069144597060054699742122212413861620421295399932591964898114611170890817300888218633357773061172090739444375443494733285420812142588035839370909436619018154371887607158761831986667192294704957574390103661550569576967343666361293151765659979185631934076385161105753645634045016257990653633956119380380473737017134117167685179949723168501006640131188158726052163025110845274131584706026734850280511629311073177786673171721466479660072877299054791684482598577302175137461511369863009365062128488969364355692627119259512369394308491855340035501953351377208159663284966328384414832537372297275146575727794402231811666341988085269492559630388288344899859084377095359769903739158199420305387418777822000568840384230200638462079037404736075598753209223626733216808599372667994339307855722208560794253269314773244485193170534101371936279056002257715422001851445621841007743437236645508239078220777280617614358069394992711554300461369186556863064913841672439527486198489883740422299346099730093784175232666018596768412207722902677688161724460387199795607369134680282528203565594927121779915453610804831125461791343584903308386721615442297104791182761918263806235441824159755635303761059118959366940742278263143108841635352810038950489984359337656227314891430506722207494929789135392509610229835067867811527274819731040492485795471879441305819334779210831619369584189600201824523718253100131335058616143213698200627649303164578688041592735823623832656693554891367617650380937895882177310599737015787739844972557152743705113758352231719763375512808867469499894492632757598700633489945739713214476855330135458049787224318310112360858555475232908850043120783816046248729147765443173156317111033609197845548426823448954244291884005534833220111540150410004863552932068229356535380545060238279209886227597893186808600376892000688087181077190589184998818317297667007490122201120733510945994324851384343752843206649630580624905042579954863957887352655944530571504367900767253919277623896024217799510443850029489377587582468581040721134299425462519751761429238257662371974226036985714003648887499950736021132404216305650505973977807045396737044875324336463566986862076447180702379954784804878952806029138137235980780728475300524955485700119063781591238432022688770379768857719916546432609524727837189140964699497908451119927352440338690991025255339201707236466019705272401890414324080636798820767320225734486574361345040532954143791312787537377121995819154907003627985028960706015928286196949359335390047524553714998952151517857433757648788432917318288542681049210806428540862283510836959249942597225441084337406327931249686147306419897192579620134602739297582913570859768913402976141096139579441740326115106235546243601845170702040279407367448013026823380720701199753515442751515474940035425095082538593938804269284711325851575464172028650030632226226968569865228879779890766447176736952352353334246517157417983754928645415694534280154734900925262689615271810454589281179522614094180520512705572644191297259334239909512891298513616999604401984811718916283087941614995735695638016373833618392938603957611039594949951037175583788808188892194712586705969520240048192232954075377217581474229022975104235417592993081780551059330499129042010116930830570803274464067869555683671360005284102904170595675885701854127458530840481542861436495244925361087370674469203952913954370753627280841300884917620952626184353279398673777104148651297880234639019788515399367445934351364719811746879167745497328238311292911200469278142531633490321307185811533391445679520080849375604893794960971542923447310631452429273085379981936715074917202985571470197939301634182154454966341236504715230899570934193846592853015207428548770967464475869778050315843166811135246968917979495692600823938126986903533860311599235459294505373115356541626565070148425902009873042140530735206806189219747865239301721757355408002619821756679212451410490137013070748030314446118805587839524280101768788239823673347048751718038177992559837713181419598163929030234931300034465424908460109182845496174539959639244961955239467325024482403135280970088369073766981323438543790998497358150189552309830306403989104594851863440988675390205626105484486722436962069911235227417679818545460709085061105211355058041464689547133563326137056760402453354595865851094605272006449777652086503644991600751697522780048475988403545643265130991148624679113944399286282685832491722066803269144363948864035150883856146697674666825091294825352716080816026451453689491928603991868561638880995043795140436031649930682703142539005961348511092580003628501616644648017672365048039570858800507008712324334853261772937997333543069075816627942839018812363727943828694419017501878675990303663403244529256651411300932849224628556605980316657143217088577356448648800541989407629540389541625080728395093047327492856037075192113334574906705034117238252721551313993969619848657481207737914098940097308141358830596753967826000194157041758318584214793893708335950366258004130394890931564698569693429080916127629292559090228420027179273323651158618377613337645979906080026402664485568999010257140909025212536827373115166474518186217576457905189977011796881950584568477800288661638781260886181082219400966551236219634530531400591029809177562622996930942842980088108170027109259032172908605258196316033622156465485758450644328925240813933963565458071457970049839256065960596255035681665949677946640652134768813164346639965431639529316594132891689718856445885486942295157644452388598173928670868082151658782655628330950035186834128263627312561786945480899443391724268470310259028059357865182366459346398636341446330259686743351569412828156458302627003897846890929211118898486876963432142060773180832461035387965246724857820718773550347375836707479443282506445443814523198726824542091809946364642485575490424630991067608832796150535790077831381205708290131398478032800528550195995200274920776965065983756042767533353595767291500339591947917172534687772074880440300548847026536851849472525088549820241130590140448160379640599084506263943590637603078734679899973858453252633549929072090504828911691098692497591812641288685477278846295618319885318507690608382125132464419971179953387559583015296087754303491298458214057124782664327397546249938681078880470927744556212966738316473260724735828089048919842786506186986628711972737823531596208979726411875857715166813925871953303786868164151131205803830403213092499153292897935346880662641953336337140440770181075996739426382797095557811190144590012677223313550145633985882884211906589542998202243953297749913866886730656621517582059602911002749459809759489880207555808990492035829490345666200079773380390781302872060212289173568891495426857389079256402336007941277759454154370809878522749931776530132871780776716541616484107353979233561662262964863875719178363032768364548096705229964136610566821042226416339518406209280251302384731972923184286658845237303340021975494531441418100330825252182630738020790402429646460423993814418800378174903469713513516199847460386532545415975204895584486366132765190647622620547817272191418395753577900806404748010911250072338220494928722572787866797183447466801415670471102656527554306121517983458461803547842453651350073201060506358288093347023980205912103933557525696827325079625114158065245124174056339757329336190035906070598555492425815456269683264474447153076508114348739103173514479010028677618384504306744440886904175373872684923863519006727405896168798165063663140870032948432104163983987193619993667217491574313479018506735591852079112145764113746823451978710126415905177565318115043498245201839479127000817702979717735192812168091981149829968777790312254769662835781503747840866552397739370798591494090038553218025734017633233526458939611496759146553784195606725202329945701675432987518930548943000029416642130945888324270719447372552652261706385424361067860094997192635809755618519828287173656519286098745913431326736274766984662821141918264713746107213301101699373183918007790379495643925004055160883929007815550860927674826257639624483150727407775139447123382898543319240445766431974374046797255009999721531546111431370759259518228380662152929841803560034584848494502074624018921888185897041876451364237028194944941589027403455654363981166025796277162414172255696731488348241388334632786083216800855961496210187840243079339726266430286080843608324897195425468317051107595352375721210801347824145850004546648967750950615572264690941096663567701095211381781755073775080563442734090377122126657413045068479613933718212522957172053993475131062821428804301371120214802935757380811313134667433852766911533826260833138305105714393620580924088863578040161541745982605805786643328200068385584798909944918212846940424645653204830892361351993953840404263772706194652336712965575679364191771824826631507200643641791112452467734395552781065593878611805405026723457959393558855236959263090218848078940043858151006921412727307093231155124612171703895554632830943028273099355453454066702326528111490068373917308906190107298481161696598532042346304774555688029776197289490583728013432986745180016979849211118707754734990412974998954715819606708232942085382039039338614553227639420761688797555455894726319484137382475774692395192619103534650225574233755099975995892787262291762481895452035964669846103849588353610742759048948681101211430510727861523024068964499129137620551824951483655361247417999795801964394010059199219489499431168364537492566585069119291351950098640812708064966090393745124036547015299086398230315076553755438441164174990125279662568787042753354889721857652178475411263650812098071745148332946649870637204015201493123557316426838885253333095515943888820031879455140926394566735696856452386523349724887031561503379508425211756688121225028663018114332237969828726660901389956341791756275621905947251849837335583054227456895011437348800263863445211452515441646487163840786369999332948369646179103037446472630127724459072645931709110972361033257370985924710989809675997925435405810119980346912627687324514980011726071454745613654243439109125748842564912947017871619310657157822500023091213168752295710182878840697366227344122842097721171266071014691287161557902540301010413995735194951220786048675167211356012923257008306402406572482704625797341813575935954455871636501576843722859907317928850458938562753278530957647809244591356661038464813167514333995715893790039161412091541037400495561136849692256917297395558406613187250169110370897043911981108339672001814035295493305269634422625337240285815791365335671863092497394542460713759710229983429307151915189081811138222691637292747521462053836194441798124035101587712204661912989201797171837245106870662677098905772588456729549779946659191077589801819592004291390700206525566576556533321624868324974607638330934524276671531387564439923687554982680616377274611547073545370650406979217770816365111780112988460166065360526002419350894560454238633660281803137697469913755364217856738380935870396803718444505548879330732017345309845181172791282569797782559030001596661949885224243785026468674616299963390235542440627321149981470106195993324257802232742337869932205128749107596218096957721004960230590034672525022994206646843176461880292642257986119273677760800314922783785896457009243174645980658329659774747570107224336682317767179689854892086055804253165707315856280504995012137929740681656969198510696771237886200313559258864565268806494305000459399342975684533937239880555329983061172430818873305977870385474542166136235999980580202013739809578725491669530887983481285341690677832905236572398347503767079355538970936822871982480458161711075706324007700358317911766504598436463952497056836942711006832329287961074636106377802525472544133106069429682248043908453564716059783848112050889415625503791515216470219439228040900739111437194837662648820466276850696275669615067992367700312392314529201638430281246431827361798901211477176629874315405733562830826559298921467172893344653239448647990446895694737373072450281340072569570939340450499948739019716019712192069289974898012635312654125770277355343978026763248540659229875141221231950395033996306441826003809511867260343300300677140851840019536374569579490534097213617969347578673151751139015059412463606194901600237753838462272800728498044293386974747325425600351882691020975078655220759009283906140642982638684106868762228304573616878540826000906693544287098605021720849162045791359737946387675351087266759507706369654379797435507275749829381972718887886259287269038788288813452970120393226070887778055010334691270007046609156668817911343810690134538596754791103058776529129873400881890910557106190287081867370741009108669004377575251425816775080263290901341441380852379810236363911574622856673874453538280542186973225442211176974760151798681737052870638461429409362136736816318518676640836893610165175926769851422064968561661886049475556799548847136804130441682357743405491347954058880067333729911121303649976289559193675995689465073520152186040110443766682785822981477937435524831915626815150008557588394731518635690709523910464260845713858948558492617509727750585443250914517887928344181003275371928832582241134279236342776651965237361401682898509508848741307837629211104657699825913232361168756175658898955982753362326144995072459822226942377829064793217659188164133787852863141817194741826707264610529643545559614002930206824637257449633227613080671164173509954042027619078294637857050289495857280780539693658771315526356550544464300365954980348743102742905139809077641209118434613368881932995685200377458314275008136757442501475308854652174237097757146897161922918002962870116792964282877981020433948597706529426916636705427268487100729475510868213762092664535266584514593833555823608439545534815164747693505183499051234919701552287626011002368695382959285762135437873620758334077682974636997194038292970310043250987110352646693357486760839945415555455366529134527574846930219815047791592949586140603852697585338330507163757623755762113760972846670913483169467386861751681301876774953193420014456454404614177601375083154646633958232567661278590168509007144638183381933258145591939280746035896604944081093694590304529104770480861924637490179431687106432363154558702083813731474517962183657445588713289361005268947478428824371036886229596023308328108068068753752268091096225451367651370170545350858339145827383390022387878325352303441724465465531635705598751543326069364497831987485413860881792640085395264504724056138360705035733524082591344681317754648912573787175943677703955036237755065853594531831982904477245868088799924346286473559450269953622739505174240181430987729301559704097013367578015449066915751318754739339816156379935384209576413259188525863207975730679736417462502619792234488645882865834157000670562729521917420653440130846969156396258596319019749621636671282608143441482063188210517165247571978910913915583410743303576167165028189376481488842971042731083409840590834998771391289704896301255967052931482038240167203869694535213802954065306074335538847967759987936833420216111753285847285545426948861089986597595993629474465343775573841132482471893350323027575628619499963361737678511416147442583491285009849146794524689894013409382526559884561151878607646604471679361588161285582202592155831056068191555459793757728018384968185210061077422014396302302034707893871253505025214658445779749668337281442711553021104726235900156621027618104670005370824642741114320132123718814492473441636881216034295807284737709606120870348785210681039841229657950444293965476496315358708291446848779557998675135975786964736151197498482909520249624157716224807048855180802021118891623863504425844521358289053247136105163417465548878105421750970225732332505540316752430506847171422129596150492940299668599607157751260984645282293193847649308867582046311033596276317098486308268583696251819286509043656832067343162290267998490359055923663547627692464779458733178722791104606943499159466713229045306218268841023382369152022725669265386089197787780534771896315866132448404433133006791370178811495380956157701660712537533209533440815835637268610274534523379468278212928230601282518383019397514264161525153854917073840296463820250871636456724905591767823741115608065639872655589624638046585965338836155303139598038106409601599075184778719922617331317544671234709064807617020865768674865967333674911654539315986546969098586859954827408262410018574104686471691779461382487797474281121702111391380267732862346652721316978886237496496173793787302810577365908998700750093108805693115237382106459161773486935711358118504872619994290869313524530384366529043332349221979741745962782845428983186667179430772973335523508964937320345633259283301504195519503195954411105661834520600986985292756275119897270588302041448252251298107903207538203292523548663748756419366663591722900950210561754177065339713133649284714013062261576168002487170520785529635009999379552508105280221746466386091748487062870367159618840248044161836641929398526548428163746818702824315650931836551335145230975992712739671427971751825024561642341605597532563498581742030955254785781267955089424374272829238211193616657412920734827116738096643751471554476497084432531829993342172388935568712361960708957593933113353993248096457529554606671203472497798479799090349671859851854041938176034469829130658086351211091651576900603614417888446266532512588489950893870735206271687649672005891122702982633366896914585466127556419321015217964674299055183118298229985624861124376089480281166786706071651936204115506549562028832642891167362608995938426464539617144845435856791130101174929113316701193803323964346682351796257046820077018859419552500070562091143873143760108397556482251427775652247326207072784849064179023279779149590303450183020677523893664941049471765450720187431861964369836469130365635012428357217091043516892848166626763549393791290585452832643557738888669894541228962007448346971866412149263241976738719010929860073107145086780196511409884021121234453465471349120996134484934260759110250927585132182844772114470623734403204063909341306836093017542736952922058348405599590788638433260644250698763184515255923390299496401509581575755645872562061147325331358587462749436678560281741798840410011944669030055803741749857940994184990104887288661134528111274309424175806056747530329292273246976104593137592347909523633815472015131982028658366379317975755347567302036069375505997286719337128724265192185290526444563520800950527892098614920762945328609848153847060303918169679894370107399075961018760510760834871248170751017498721359412471693330615131560936470782860631033314738884616878449973565307010844874604947854927620912883440057142899217602300898239532651370698253529451024613032932996798403663919305217547533880448264403471276571914607026192549336502560321685004471156121440104184153868981101851276158415155539911534603914002828893081036755406972664786608154787156341394338910384989956543419660758581588404047668395705759288898270310392164566811438969267106656955187231351180349195142844210928877268183547754258033126570674136975047823395293143898616452384467285855902238185905099508333050290126889763584565656880254416569669547584322925811822362172222237257861999889840088108551865833821527336253079579126105011568811679947602614356399156278254935308030395089930055330087037652454736678932455961300873947241651570709875713487340469311701762132469082386709281962600997522925018836294535970288653226881500532050855070015573874458190940281296273424976354907184063052089540122459819931194208253150260224773830009548363812691208346755468327648415517183196488666456125094612089179809332008784389385818203109784111814745728490402341495973616367975257819629425973421234329710359008862928378932259010474395557401622118862019114886906397005807370216976845079765727621466800058092779261092249673543064992616726211149975299475371498093575923193236766484643190306690956883432553475091479711472471623496382486032016740372868792103747587836284903342914654963519960189790357996434446032438174229103082162447842387044936060437262970534121605968320432539852311191436247654645104711643206623824598173580937764932627331328689709562850600086888817961731540400752772933965257767724606695742088988959981960334771342157052775528984779319163690845537989558043291353919373444613540754526099798382145731656257060308327636830364722620974680353090045464333714241006664034894353855258218151644693899694921900179576234495164097365779075510751014014931910875323272647930504829094381005844184020151846705229654475382772213815188124982221820164734023872016636565572463113361525113551880384085366667457959159073805447383215652541369710195846436514533423130190120250590794721421513478007210983344431840936484372356357911082038975468704088607704633249565943865247238037912892797153644083770599805029821820048591489475427063838951411418397506369592299956447093521461085021819985607805041300991163511940274219157373917439357474492787902821291127814763184080265139824531564796775327808408419100746195546180949767010012326804760925437751148164188827988546000051389269940078911874181334786396469508296185372059555279073493820109212345683288115834986832605260201233187621701589802592386647423145031251826017258944157519726611681385636883111498203413175140431226654281954817952756937647670703946295373140730606194725918684591542770102420341571599808254804606851436330065831403520012878194115752693105809641519215785895802504198585941429988642770773988795162427028420903101152744373830720974983624619356482834666451063131697785186332260775680022348313986485161196878452804074352451530099714640165680419301763432650283431148506353870849943923672191290741110704798595034469407301654722025310001952641280255424521535728368434551477304948105643245585454787423298801736423150505404620590170782910314879765534349502690801924972653088347378306728217963152916669979985351499081425522538367688964175470694848302076114457304141917962975317216056075532076797384204969817036218175878409634487082565908799273541949861508854595809597040836287262664489140502063300695369074880171121395544504709904433568578546050479375700207541695286432856682879928411198240080563145962772852448071533533313988132689097664016854777923037937706266573222176019311722987396322530476824394299785129702750217849441808096700877710700143408946376180296439570016894717700846451218016405832768713207997607332198777454181274226130439494336557970100114486037352335579416418852435891897029691034390515932662267780781952268618810883496820155101423849252507243598113216911957127929758595748497030868742503882059086046055116283825052289860361529757875034189778779479323720996975618164902408113127288136034914934769933559308386338964436882954024238537055529250391991169324212720534347487178250640598610438132180708687721782570639379837159249273007983795957084364395129903340184570947429536880459597707235223678166048886446075447520162159100131268509370577669619682700320276603635485138563747649394357807717920224124234173666120427822318737979438526567855302249048979583479899703158802536511526688293116956762274303972043115416858076538342605494154499400050173683187507808852301960973088855208961993613035774869112206636653598625751423598931856215671839184007902808679032209894555617478562817612605612285701522104278726399106196613478261119589212155881202391993471110634176530385371039409104948070108796645652445994402236515101925342958889262120168706203872254245921064227064003937049469085061040170044409998630729564677785607555144151367331843914120106159622092610880739049715710687844787146754991716294600998627217994281345092714979090268999396119355433837353204932451987608176822800491751074027198758217395020949473031119468857246199749123577513248865362653775385080253122167200568081032428622989350624701680902197167664148084243448935462078444754153737076934953511572648005499791079058467665483384100982997545043810951816549872725575972821097161174144408764903652777469874775618575983816501260707144151845626647951056178166386457115972940043183089938463624041930015479427030355602267090553346565982399209136841526090646537811585392854584975206838121135463328006946591317878542235372536500696935516256897341506669539956517812642208795561938183193728667744307603157972596976424087253174222421553802428177079206524180501500852092883783299445975486852018105190305320665862142590970946355865820217180134803347305673990082085654237710267200301154218553179771470816155116846616202265353518819410900298104834030905473989699137190439157344366998319672068404057933541232896299331923184172626541336955376578083603677148769784502127813663177200051485367462718733490857918314060630062812668896946362283113808810967295260475620964432114138057607658660809496922911667153414055442299991193963954804080654869369533122812376165622737312773961562073055160167484693361068781401986018967443771007193422370349451801461191441032465732144700320745162908066097635288308933092188523873576642400224616405570400055028785294144750783475984064737326604722163344075431385759164320476529776537893528884348511827288184676116078003843945772095209313206521924775000382951688643032044473115774489386386952888858730030032097719891147240688518775557896823875102908835692760801557177277998076006535524818529394730106098686846522440801570041348668185047075353490823003432544640575073331667083373748336487972715687486776740974295211876763725453231508244744431324183388571776799201343280717249828471048276197649987792198697256536024567786017396401622429049007360338181188030531688895276816254319952878365739867877734758481145530188452784328386182837650728353142049820598518745694219730172994946595654115809394489067416861709568606464925955048838981476299319135553706362501520040981081732806866414383761479856450609859284080434465633849871114790790647007424321439287833608134238855146314381768529642753296937618703169998326514424613951660700798042603323748424057147025617454465337229949740063993484667831443667446951574332198601483787139125191374416085722519782125897262978178939839187505517554804438144812916000355233411123889415372732377948972224077849592637004950350520335824198548537031128227853530377828317032187108957868385967139529704932314242950007657290840447451801486060429014973427129258861128299099829898439167094748059852639681441025555277676218148503064083715718467047936296832479998422837027125040619231337899060506303184370392576264104010019202600616089632283027405512403488266885933326318993104114264684841422693902400472582913109138532517709957851248134822372454387118476531217727447968197930458033823571802709832507812832444407197882320469581610832170303097125590847394824320420543269774731739855551760863463365696810075538650263182072201397703242114568386292318816796981295724358239717543985683031251845505828055394307327740791265947433089289752503736379555650205825186504299731644002637192649748548378454181166171529678351774649662995338485974714349591123432487681931195120903833640575780156000303408060416583375423847623112530904176251734690104198566548056211121315185664691275691541241341041626516666628227341982414163647137197382673345040161461256310144978706284997744898872942956615705155224665454402544001718942679047072625238035160634344511574939534233617051391063665218819824305084804620710649443525729047834579672340265854864463349427015474719267074591807725385269796622126848951947767624181051611249174396322732600738904450477544441528688255890728838986270561626541270525357536060637991151090221632064788042209054114231084829585450012526843621290997847242667525540458888800679338099477324693300490589093574228935562751104723335755210318150175532643503258910680155058872823788217269808965595028507888555648892014547274462047136891749167323206023345791181328902566452756643746582535517031624614545135848127045672605724255017098085035751262824033582637783202746603492602608813194696664176994030889023300528405036555631466361259694471292500405333204785346982328332785776873568706802070159462973402413662195459482853997998871067111686364688545098929987170135105327815142611945027843146754223255915689291579812218849774183478861618631350773039462409059546037372463983268731562619631144921900287738561556282412176091534128546277702305478651876800044121503509263689412953912620501194195007187003883177417322430950851013424906379268609333941416219797896470155121333588746852506620023168090511203717027460096435373030501959546774419268783456862284993319788155937597654860267320339629099477789689394398150126072423291891699071422972145386404978151091828871680700206235266400591837826356729965184214815849100045180878213529247389817369282769262990716570951794168060832905437286915955761332405919029973130214577261026020498286918445754054378641244761934866626445349606582391183527524642942546724444818977806978667184174937344035167327652175498092872869643300612145405136075997708016767610751090539249778238047587318501913444197433571807322108351332896860269314360099606349784505503163915118118496352825599631830139841398342137134898861740567324157503486194226033663609627344064096478589818137730491459734190790683272251757946307097822604061099466503664819443513902819642872323876591564305702736672793149808318622298932880796986928668385539814911420603461098412109098887427023266254553110854694260030836705673455279745652119244643353805735928909759591626807758548990071036209037913930328534940238064339218350485606020144438875357608818621450895910792353691186310932237501906729244326087887968010907619795594823506903254470037930225253826482946497711069923964211543059196702986629579460338857595264895713206487951347918888063043748228131799449948164377108757418705657424207141011311919462435123525024105014458649117167735272055091620448384174727718644964166897461560180611432265255232418411917862098755139145655832497763864542634746396416326390179383638575126479237628139381380078136503279178114911286474900955636629286575493119748247664620105222992194053948529480402219803751329884439816757204299898818129539161537213322117457346996658916413774712243638841386128292021193811589279280525197749046499335038356214407068727497422564009757713245195037567297591178243759558086260898390045839559650619180825794350484298501264709892639478682875614849642980668374921277861408036146965397034779909634851964207315071221349182558434043499930009283218705104154135628151779476803942764794273103032832716429019006727227363959376656744184984600978607664835745341866521040940265373285410682826980330475485320724460121341400295706809223252437776319789749933980463866050840432633604184000456151859221910521186268531718181506257470845079545710119729676760977387140235430888190977562923003251310938222423089012015583374200432297048240108626325322238307650232127271994515262648046796202505853355249725718444395071523173066131791170441514541604397212438711508452720736982865938305570508949618415351390387601042033304103035780361081786102960690256321213940380499983050901337177825121128387193571865275260867685393914572261474213531127334759243610364839334453355779439821375095162401348079952942435027340995634222585993500229442365024676743205851501752687022542149415092293930188871221178296091007056326741745132339033517054485210343383412493412853024996259688326095256361143983012883494076106353057878201908199382419044161121279024651968154132003465658635877361818016564547644724443158506336088105085883336005894687969378013412417429942484172055460422017211887132081389325802381193290783311441649028220143050957663498637987408863900402191923899219325632287383635337130029862817100413904301857813967937718122150955142566151845004135387942643384589422840904697729779455480413008425900138666735326899149361676018529637982323953421447342955389420460623506241902712260793665069380497707951090466500816081891859438564114020603370887823970011083696083376585630650974959452497353212840461244299122719824117409015669195998143160280055318189092065565479687014469251196930196875029508211021745702597479470815731514704247387984631429679194290153778414726037020537875900390394320085481576711008824637229562739274426444858377993166013824729554726880503824180438642390778271763404836015644764873201807055465325722354817764887926881880100612589575478970973383244977497661780643857259743450950908026882025086452805796862831783094269402100770020209455748789496390644791693522474463122799187984736530121115316610580415279160032608099363135807472581930393654792037573990419169628415464083602483174950179790815431639309967997779234382640218053374836640518646166631528719978088073438964734009571420855598827822045029609445980544435618403212615905249934930804901113703838396228920492617504611398290148599568624644962720343763366416866373590264186639564239314962646982142691536066620774618133629215718591157779887038948550216439379425051602591258316929091916254748912806717059925698069799949021618933399979497531857692179477862807117293935473160247209918176568693048132238887132200924366630961983990619738351480903448016527985839175097092498475229010611199859498864064915013814963418134862477688179934004050701800134262347555128378144893722899413952913921350391359055980937290664917164329396217221342715414031758355494883251345159532375742810571842684579146021043978779296816972598191455450038895160692942490900547502865633308993318325282993108205627733176785856617348547444916267985356085504337606332648822641513868675693467023882536098987620947173949953190324932517193256941060934091037165989182736366453815393162336305503945870454931678495014795749114230763360997229732760347638753414060678558815366163662654924515114743512169302771371544846226598546050129854427224181452522672011448949327422622551260822282205736450678466683749280452642104884399080762663326433236049993263255221728494340868447789232837024528174726207004398378622546908135988528562274751270908441598276686507296294802791795691257285397229846112587767928065380200478138080241322002446288975688605340861305838263944885256595838556635298151500968761974515574129806641656569218912691583199313462322858837361410215532638172461223530963286888253678541426043900683695426663309630244196443263719108207845973112190687595877001256174027544011337995958758114533217524547858577826628912731030209024436611776801711877364760003596218308985726787534303717989065590071627520233061813307824143302368185780362464477647565512856534827822010000038852478580348599335955152642050191418519420398958112534224098413978617948799981204573798339650310327884675943896859614042750190448125132584227754350986334280116573383027550216990353791925419673656589449440742083665772750056251560282336765305785630330353897469871263165497209119571893669459384216313218045347243275291664117079756862208250558166727597600936809713555605208825356889312805985058694912601241215943239571487725009519412641761331923568035385820011854526474721416426901161736815423165345767051352244472327886964492925191258236412189002865578240110049995054226775725422810607893968794184847677011522581145230938288046272042337270346437059665646923737229919221264237237117323258022150467061748086212172659621111424116410319170983622214600670014295638835338321758104451395753072159386759239415941095873120715484876440100728367466337937170425938413420309445403777316417159577913994410271577589376814481033672904540636315645069188299418510788002827079836142464862806716654697550319086234656354885459775685110519436398222648534036617608878457034791345657572335179169160802424403079406704877677513442798396802087573903578138633257152936909208743828194482304461129618466673742414552416684521208506661472768480307576223974192846246567590552738083731769437396037937244653357507013377816245833645557452760410583498283593940222416358619818828675964703657397861060029253077769889413046376391352733447170198441193723147509479737593306631757346846295363206868144638291153280074079962413705613184775213262693617762896421889729932674624009027044511677794668843202695024949147062893476778060915005684052458302750334492573165430874663996581094348874555439298737524405769438866417237204272203329451932963712577501646581420274727271998947457732988658504155623834826875125003338600552952987611615835218799694922100687114196568586785068739822434862270418034582810592148789752944938173636446392133409848421897697377378961720449998649825833856279458253738233304211127358708871199990626528607651062458902531823889776428625661141129452142386186181538562704242840989140582738857599363159066433924582132391737093515596483611499913496056243119105190919150270200637689304456287397645169185736710214243791103846429762469770540310321166402623472316198629459661789907234628017893500080419374679098003890135801952020733560858993452290444973314843784900281453934028716297563672452263973372379847077195673402331993242904871228391087611018654689603038953987955862116519034465534948125245024481621310268738713064581312356218351972968677083268334248843489350682820754157478218456667491507117327865554950531514947628317642472769910259365098280336990801330769933408007118702727465773232206170172731268949743703056382538939519231773583453858927307231765364022205065254814221622148337178455729912314354662937204273892174359273769129238179599287589703872284198112360340669648916105492863217617727325854282719651812222086559048739748153429935105605872267126739831859671410810893004674968497616453858319890731603420088515319697355331165273193838865906876162571730553518011875898214083862946071068853314071381985649063665900988350500397203184187012677310945228900647947947970631050525735166893964472057784391819661691369218880857502495699873400433211646627634644705977308359804220088914905854244408456262589037028025429175647728241125013633964532554909169643208484095002346709913365494709203882733476522499949602562834338569883892582154670643484467557138204290687743363606291153557279802366115819601137515486904600264360482784080548575902597358689294275453018469521163087454841696729632300442451499588101139849304145557625191335354508787167720010463818720836579152425896419167358715073728837007295585639180046409954421205242676978027560009870287212529172277039535867162670402941403510679224754226283640659441512463168934824529715148929387041694669331968118822730480280194788842188384288326777428736320934767178839800282508092052139261103115444511405202634144505437816618968731845279314188205178517872809655714317048951108751800333639883323227207541309439599349113469732890140156500010955595987299274727327511511798126520364126355064917142746372924559373931908283554619230875289903704669836829239428002080028941710058610782491921219980410715509068189604111264546627300130871466401902670829374178631617026661101971509147335504361412078664072889476696871166884905915633545988192002144391580574204920347338471785984515365807463876382355017279854742055127971902620847544492103020715544098020513565556448929458482578787578447543761716039134553564458997179067836198204326489174233431364616199731706325923109296126855439975162048369892106057145059376218889215597526017667410815485193080315409817260235286452719296955615661628512011101844913321191043004434305259986192120588210542962846194630490884267859696835970160231665897359586827218343058790461389542776787452563454921856915631944618615587347653122192358149214338885730046862014678050491024941873750275560502656889209259169608963468375580651378393569997565015957593205185504311019153230950514852407822928279104896709752261756613701010767939043446206391741802698500491784059095804853272156509511738382370507171032670208061293188222508338752711222965335014059507761338717802572936792064323032116008857396656458773331209944274951544893799416158051801101397565243645609097924229281309827169786657539398085604500221179291695554205752664544761112936493707404017800264904917712730923051703862107595463029947856102241301394398970768399089832786495437822281219653801534259959795981099661314648548622183232649880919654122604650480830923681540448466149806210736203940518479875688187412135454971329024991444695217441733826648890518187711275395417881549900259759575473446020320543073055384879791853306852109362851084245952633209135537400537619255483142511584085989848357509859345025681675081801083752281506481026042946837468417066589645388881270664864965455695784911535072306460500136515084316435134003736391524147481724737099528172088678359298966443990327087158681824829858587573327741582854229895039938972674615931394216859201702071562955491969343979276511278983548969633227708142000173474685341596007313991892539467832966912470835685365917701018505416181843422035914073070187352877247019915230741678783855295653796722695747044996024545348961720966780575358704704271385147181855380278695202255112821188539596842062497087514867396848402246806059477443690226889031027519616547945445113603718507311217270364763980229607107710171119488467514251033829322667746454545403711448668201865038768853756451031467835257804642167110992402179050912992149258871054358636853361160027754888380782873802586239684796459520660606779321090935284441177294751446331048496704564935637897844802681813024479039637425577027137148043125050558396800570147364036645747761276167330444765588279900807096379658385427700093439260547037316728773944807384456964109831539163310550890339122548300323689790789654980724564419716950477721139265784157240135699162684645835782178810394867536205619392761340888014287944454196444679070229371288214641797737202381659757902753488650480456253686276122881314635588740844473701579270261762689863594690416125113100918503645034654671923998603516757894297340785815149289829755839882593299848906306570656460163222415215369909296252970277653814787129893559002196373161442428760544745303695035139524609144911598956216639382933540377479933967695649641723440754701202197443333843695850941641738758639646697841016220903652656693221793117057772658826795382605809358183844574082182088703148412245096369086563563820164667113486550605614130041858521066488689231601673602755557350352409603309254870223108929187559027189817573310942122048719761017178114947242132574861837929116503858942414459417670264466295558741974024160010385968476335498052076996080343735235574048893798937097944081319597078284657270081529881464272587705584990054277216431662292333190495648587452257415340660353140289550167136341597991244237456802365080582329649097794116077931442491416948651984872449019296500345475700395134139455388724436876135546148771389954609075058708092215629382504384608898758082443707074561460487812201272607604602358165463235467762129167050028974436979824626151637026440579451160314164861066933176174358879952641896733786573165015207247135985913569261214616189710394149144818927935637115538194939155793770555203165899334520462097904801706650104576024415090994918095124735009237714678548075165723741426960373964551472593097184326020492309615248131831255889968492454037359353881491167824631106996639604892006074162357766058842857634401147869995835901584373851255361636255729190123648690984552018355825535224847281354277326691294234011965222343136873823286053780185885422076602844923115279685281153722848307427719326028442399914026860427282238735671899735842735509875617802914736265044946681685976186442924078045708911540008210352970337737811584195123000728473253497416206965126310274787550366645548368507800214896962651589718350022729295828359664293768679506674261883080371084821472062107390809333785677584225199352494013355770367731226395306962833655507386637165823475301006763800047237775701931703960501818496441260723511300677865783204269644615130978263719727303192351812429490805735769407668069412411447607965910698096534739880251633958819255925978691009283446982474472350061300701373894323152482714134363631790263730003377857178924110062209639946861959267448936701406622689471945978031447815541213532297598718475482504297972333166625552086957858132035138472934170185713582596457084245251257785602883719902526718556751521938277428799288020433148976514544855463302140742610377224291308888557857263835350774637416307654567850206680332860508359719744603305931048890894254634966277557091179531259297497346895903598651129155651782820281869476800965813708198367077680067057077455442614317850690791036406310431974022696952703063969725849938070230678815327508441795764448684018534327277589252154372949512044957696457458382463082897854111115072841864066164168659500482462873480435430867939641818812040370868217322980902958872446407644645335333902487948146827179286946722819316392494260521783286260603261745503278132333692921334563256767670115794989599866370026993792036689014972901819593352153721228832148553398810224821984715486860627229503527479144201716030342116687589539827983516805005678281274076631452251325089146574139562247612961209220208666735095959881982163546677828956360597458983861082976702456772130292430511712560320025721568646225234686447275683898740036223999124451593186783574529284203090467830111639245584497616271239743022324763787599674759037809431707130855870382611178394304056652080145263127442457462978819239150903402876299954283936066208233695966709472161253729612870974388955821103165260708127681388780602294621333750927780596345398396208139563841047171478286746641768134915560764378009417879711989302406781313430578086939824122947225960556652066720182877960156821529112876679972875896393091764783061718128105096488994339012249709582812143667838468513368491282949602149560041146691690122096853208851157325753301833919391517994135686602357178925486777579924729333029674238057925745800337598085074200592761917108872045835525899671850874719634699075918960989739379423792468508552201880091412115867888244388240837104950496775812933991218837538186353360952329786064993925989875403814227560606225898677578172459513709706485087667946428229335985260390003503809123623911664264020063080340814847414230229785249546280048992272270353598078825567057422185830744113872626704159785158382579037556414806189867626079840040270193495254766370669137179441303582198482144198694183540878643092254500942499984862470868827768360483385181168865768507498964801896862201811886169222440076860465751589052581901194931162375682459641181763885491705114986299062949369221186865470813006532262683085496736434216183321350864850232104107715109021928463428275558991401298574652734878285179198426036134984329001215610387437711790971278289596974604626492695146469094690766385563305084203816990704305155934050265876460307158581484487273737694594171354759365770099520552160668459607150517725369156258772602475331936304563965861798162056978232760247627644646705967839086710548638883120931158410827250790714084491211050989403371241027184744476126393331235203352017334810537086698317275396477059112110175246408421522990790163042569569441280735636194096397647799685454437115423812052030119525352893651137082811807492436537690182910938215306919881597462446086085663482707703645628104624192121537801263314379304987847966276173765624680941290139590370556216110523248731926618138947528085107474192746426511633330332939526711176374695691456525409373602006868001727966194698483780995512196936158737735105046340694881469555439867857062633326644241568249306134433423575012407643014813705082747716816379963574941878922038478935661799029010281973694987692530715326704706235891607767787116890254100834732521729802136638786625058933153867146609108541536641340990788558195536360511934720173287893935948293253660082363373172625790877999721662671860644073176150465243143759324821699324787336242282393708497468689260927015275753477328290192398021374833611526811752931025599683965093551363147095245240604575051103109115184450908112284097694507621365757039350906167265443825369079335780026972779217020852746859101849427978151735061204324965680213754551935378583988861867717216224642157292018452609952174788356831117131424988323403000257419348867975240213456917894654815157216551251764078000214234576839451577474858711339175068844565542738454001002664085924562302870519886668416475173201298658153351621155828624998643035344802728282430843443720969875984247727492207663967075220829679756757969107173190368489779791699427814311401256053352160491271440350093476399639014629065788178430134740808716246173631139250245089635173833164481521602035555129093618637344735465085748345827517538789903029925235331073564731066510512614402908527841406859321586331615739536356719712531263532475207720126831831547666839161937430574249399694007996784550055661867779070293753169847866381097031940863018061798213101664774332057104869097116625191821262953120467732010457236833324776052283871280232292477015668384524822743445087090448854699125589965745592942175961614185821901481116207882352550829906725914930911234133381507221754374361674438353365173519408051015566740176181983671284976242353072480809633021798182206896502783573758260757371157798777241140487567968192071075573481708949427516739383003259451409136871250736948370762287803748806643151608591994379282160906884939617700006828826120469902655227204692456032544129824638415079888355861844802900196491393777024608299823990679580684490021294692484895509332127583360081747166643734136634480106852043242631675194996165121074776611927325133086884532986674453359721607488644439194119439302899277715574100099947676274843065406752593276139627652640456800448505172078981206262488115981152821831474076347238010540358740916623155455289468990452980752906383511809870809613057732215053450633569024684189364157438197755209363204992493860390188926312148535883726402061200168760556479550031850856661134525193731170658675116213564520218106425944148381995423025220553865919990409430531873228428720834620794056898737821643693411200152394542740228482992412107461534782804145480915593932805539836302145802363291403110208865831022952797295818196165774302243230231287278746669245650642747023181900612718719170939980396402894360200791056430606852791148875329672556871540972781382914116836795168561195948875345146582687657561883876956510200465741764208158534218071392739937975905159139378024579411562116909697316934274029614141230299093989001181892421599416844118992033475145574972261545898546498409428991235837061049752987058940749192448002554472722001325226051255328116486622463042975778237948362572382182993980351327837148338735858556431115451153609017445801875807140689153859233494968816819190917976389654658791807947457770751144644206309431754490840071795588502269519827307941262268480985371080119702633000439093025594498538875460985972283740700725404063706008257193769605616504290745501820196259261475653702022475447229168427265497882617382142359142408765995569051428280556439320421607720205975550418496625714411285693508848946633249629087979020504242937749941440102086735896541486996907598313203137980059864589273452678367701207933432673710762373946561522135045889924098302378970095217155951426842641138859357196137159008338295614648733990961080877931787500506524746959708550776632094947323154775103027962888008121549552101485273823557915078779094155059847896560450351548542923434533462832313597765974801019971836212469771860938976040176489018846848190257284963553576672929309049437208458804488576221811438208827903072765380129991922478726984036999542455916834864326329376326244990653265169306999791921289845994364829896773535874567195623218997456087826473845526063136420452716288460405186141673641612698113927037435980224831801361487241113724068894225251721037018576013752699088666533743880689491619366816429363606194259013394687091865511863840283843515707499516042459108170599641581675780029658454916343024275266370771848903723245804288824796308435129706617829258612081446110145842884328315034183061469444221834661029033375156503923337661894133305807818084877515815979645900772386578175497038442522082927964204460076097456073530523300003625044258816438765304287885006852824723357176089888488649026203787789762230416113055369039729931510496314887549480078268900559642976042221920577855576979233939926464416224668589880776858062950825489834197902621319586136145306863264132322895754816000875117343693687430953129925882327950728997649559882484555675046649322906791926424531346223126264564438590843560427687672206857067769170595663593546053988930673163224683938244240006365400788588291441686296453160644762759489573934060594397525549523622355818183461654393353545490641657573202869629525243879251212175812644169327613686502608679319334166377721476108257484973964644287834562167881262039578613994720405206790543154750282350244733248757595214306837299326612797995232555080365871410622990085591438529099331362663575446059161900551916099602721770003854420336996200957214001033913958502130619281237123962327039554536241781325730916502472434308094844297095340174537052122730834652369001238920350901423341530111681772387290324311504633206403416491415078574424511639572021243708252678003435716663200267203786012130128560984966050256973589605236406854540941600802061237449332427228389252250464173731004498819288707070307777901491222925397580843530719503981612517239122198268905890686258404513887123305066980952256115506752812875310116755030522416525076154180538021563781767525535764504316467156780281789303721406301961277926710528233663697813920638935485208439514886709109407094177763679355456287979833651686454171383465617088939566666209183905088816223787442429706282505020188464490188453012671651163617904028074444048236048723124743898637047227971409742412833626325211867220929200367188422138627936555161063495202771077176459601224288095507738927633956459948809708777418017316569736079067581935232630323879933507292139787069056433698417836714059518762232796972435604731079409506921032074575318685317080935349147549785014640128507959642870873875554980523602982355322784416513964043360376089561109864678630733335725687828418100226470729509790100068902184145869662226449782484981809611378488448169785721935705846786375868805858288199393389606574125343042115405161857040590096386164866229437125602461639869966613400590798615906439681902886281153758801981254073795962674281178872067998092257493106021325349579835712409769062751793233009645220070630961774208876859440574856262343521711652188416396436713868633472500272907228479380016745404875761312408494286854578459636407814425183889545951847783334510325805678091960131505845061013732224460454994051397167687569327542372938799104976874859407900711235462246581423148247677086224969986377750716143754206312376739378928913582526786503050418364313114090800266530875947800669970952967413407389042057541299239913089969856870270574077449574428041434797200517825890239212087609086339774091943226631591377655113816296474759088423934854460871334609806239565458549344636620358906682242861174168916204334870943562134712326160753525038274291575307028992636309218829644535332327617208042077120700768140624261192042927756578207368674780495752024100838650517497824698133067270208975598052950246520151946626541206118194325328503981423878657684231266318557798288322380577972511893210389199666309267379882801694533725643507845964606480055558080041744903302496713995907187049137938874455693004936096086510462851356750207399618364409603427799166176645129093657621703775627614253323076471183214449745973833457125314227471166346905238649870239625016599154421115351247329528063480669150749368892521074867490455537783508603403287416700644495960794376847435974833917370706818558667995196425268626585612004305753797350470116282681349039890695711369834299627483741475702831738303469174633371425664144634459866688730996521604948539395173979086320028619447564362400791346322963722641580732749916011816139518934232939722746997138690615224091031248438287105847015740549788506765586098985813730573184225024318634006987720950739568802317518059156032599973165372396630450446678872240912792482974468066683183619710240789807415992991279263124280136965618940422338632644848181607241273517170438205644626122431289925463465330174512965684410778279997156814845964902741387025815109438630865948374944617557626423885977679116489188170789817466912667015376362746672800768206921787484796352281820594483163258864416737409499952222429520259099390904621856645023453534358531072912905401544771238044808951323775920549135369314141316829717447416367218586815489096254844372242342410296938790755853795493767087379504496764155747241963126183027057253143540200817162177846543714164492809138389900595133069968376999890524145557526280501536649164893384261186545338448331748764060759674391611098931386608908716708475484603085298174456401051120466280804018603300966196577051559656897974337296455058365604234724358419668221009819026788308780508479774187794472533802880738220506481829466368630969968637389358229358916182888406139897153180132005680566477967428775847965869649486858787995207341284534296991658257740542143579853102953523768132484918881588824859365788941496456732175826959560833903340287014878237973312750577181150215047289535424611868900883999852432471769290824711697552862819814414844368521011662969473578560359932527463910336271291449798750169149594668163612617388201334522846388548156526841357727068933277578432121606556317409692874947620571305165868118963883229753694293516608368445447853500006339892507039036544767054453327354032122980943136207705072688470441426416760148167174098432360446992499080291848083527847875158038711630126618691782926542351067480750226907834131474808169950301126239439274288706804885906322481030838042014302003406354677269470396579803357326413566289399891799331887235299035307389479954983084918612979366548432765648443500149615752862771345714978665528322599333455618220502486093516265614096201757491209446373764583012366102833906072700744675999609482293983080419486379052299568869287015672011145613339540578978563008523233312596051159558078523699958675666319499506039310190610697446497874813367052801082246995735989523066978361004466848746936627581101779176653356685258521937188726321846079162295364305474744503412454816087995418940649666101263743014070357523822219497669667654554843881062035640478121999713216735984605604881306770867253642197875360998852306804310784668991109712293032786974106949234578643161740685313426881521756422947604056819935799452307013974357093152329780744972627775687964706029812129971220043322944141345031407162625739660849034409941332337333961983688594589308434044537063299729856908973838922666278574177506820391786827860158400107815231508861122945647623931864332227693170472406937620874188719614181361921756124382228371486351491820177168223792469102681737925790394948398956149846227315309987767798278740532661879968576908047393711275194884865622101655773814861595156687663011243088611224426438870046278950818569058672004457687053762882395588881383190784081249173848964204993645436441505279537515482678739685661432131644782134043675827750505848351472218108374178762867232309816213246397787629779645757724297197808100516731098563470418544649519005755085278589242937073826297775905163918587089082618786691513797831607045796482352627043872135746259575455824273251981936456443102801849554518438886319658463674361338489563103125770824343985534240483632121414481370984970845578498175307633646599214201816520227412284123329209994689158213752359080530989371707450131403939533686345727200825256333101916503822454384987646496926131985441524763731558378619097169096338113047289554083788216124264242226694757463475766450189973304614206942276036390677746642536337557703658050875138554819601555027575684316509073202590387287258723888217041033195367467361829578085619439634476399019176506385321834803594770656470429818772314345059274384346419103549658492427783399101469889452434283509724117760609796430671517054971404436275101695002246214947252282189427783956542148784046025623862008971113521956555253346697894855873056482897442212148486891003186162003065062733289157353662873891830820511435061198543533621960357909053814396476470639431293093203145996670794559308725859968208842363730716096865262185781454019242437699936914919929016862144477634730237283741187841971594581048122676824287989959309753253199064609346688623485986733906311014606745429226040413850303706309933035530561884382713271989269240416798344005645354439828668091579871728290489837298140502540181437029831326074443146077068997130654758587016704933866825404929580674884200782442602661206341583526392589768753272205839481415895056896596139621763921442422495375797646009709329907407537759212962905630851306173581145531343878827498243922864771207949549706820382915964134768195076023912005010193569647932895923889575975006471627469697844232962036469309911175616852925195404434254199730683190479076317251620827901993261342819993042378796037966425870963779380586283903263929852902112312147801847187260927430159573729672681782459473760446824869740808268636087145897159243976785274754787718284080985576843043096326336483924650000043573391015965973248314783587437049114374760728647404053117909363783044018056592821905626885657643254680268213769886402442578225747982768374617960103933705745865273712844611990479363655136188314377336859486008080873119795181566285684871286992968316037123456706218333929279263328853750022703978651813356417561848192181115449844137841283448543405422250206101554419307941344892649162725478768216193408160543141040639733829150739109584701933931437953985257930829694862560547128380373165993340699537498558124632745767780739009765262486176224786104620419274587176259166095736912207692328240215582932639788423817327031167099420709367434377073986402031257816120052026170316178361235271285913591498432467932953532685881490530517045498148896955216828374812712820667957592198788239518446725867019484099249949445258851622697811811221807024731498505899618257450073182819672773822521293750377240265216513160611180701692737677104289646008513426523818296451480950172710347332572452230553832424481219196868473645640933631449343093542116023407455233695186275228643010187694653708703536822835252265353407068227507045482112761397020419569908101275121889237025314118541177458298272990570809631303940405625151903334897045741632422503050132762307618379254268780272853396196532798351212885342864697961441460469795856053691988643687791209006046597340097206956943312239955765969989084763667113484978588612913476089492658156485122177154424791828390443862242924532094308602800308585406310502297263383685360714197700907745780269882201690778460772593258627143606204169998426351429393489356114329076119591357022916091396892168969975808663289247705239283320427953082649347977894055504646617533201588249176963213949480043766131535284941042811877266148567334245508324439203953632137374307628139487272670147006844759696046006357428412904702158201129917730683177105626392441271016005561238515806816907809147523066857841565831903731728808163283602737430411765112226689124705737901902011559330357064918086601752093157376300459041125057423931674070062735065881645124304013394484787626135180404597513355063507671444633076770253625027717121565630655827235666297635684565659471946367304810516836190694923404764726562246085723880479709085779438852810286729283653316668598574279703846949872837091825661735177751477876980476181114927137688227232553197525532250897751595215009492013718215421395479684727976966307553736166522874406990927743175302804346193976697109284403764659798817538716150672621669378113118476719890629186609468518114499654182759045033738909454546723679008270692978124652904871571806722468684570623084157497212694587520830229415259935276679112074972401538168084253034375532910052921365142974208625814008177446722893975664264489129131482896123664935537917955146753753230834771809007022978924899528954676532828435960173742591190930409411321733842462943967875563580132485072154718597992597945877241918056642112539293612029910749289243676189693330897463081408957532246108263225185089068488205840691178794726767089843181098819715562254997766479773286359520487156974034947628516427323253282603428606453941366577103260333044842191324644865039525998728206174467511389431405718449337742333327636556048550455743764549354801188539616392227247658586271360162127901658976689332890172931437819049214021196940656790463323779473729158687221746020200688735388394082276265529687969588127424496457842881354642074049906061656587477536851055684767778358006328420546638375544723058719373920749525977625209654420715511592566675597372453378612302633567149194101882589131853467855366477833637966902533099559768361155695304530786902623192717697940090358939859948212057605502306750807177433043299463374229925409412245638026638026967419510060312584106456468281328784138729549795260540093851336292857778858213055356597416953548607631238545851491008696834848558797879563976474101117028864447322903128320883326323821403910563054888736485714938641676112460795898559584422734897915797312363674467767846510212210454607923629625222733286880286646152646566808253384128240271047661102203659620708566193380033541250570484279696464903901592545543047920079462244814395782059818569651080442332923035472822760426868116327519821224425843553126909339510719629796676282409590785157200311160223719193285567272954546075223511207860735998593296120566220175676713803921331476809713288735840129990815119365927774773564278226047449696730073682415673739579356250350465836479461576683933714338488447370664490235129188056326998480587056474700755558801132088989202993459772317190065251318229325255908454757500205382220299938573554709004516048979808884587890489503788902189517914754208479925339357513648761161560241868585751914448016972097313869371876297123828858803120136885663937448200483951742743020424947073786358633780722204765850512540544719497607252962000926948158337086469965494061175799094548589723020327584548431363249717910902712994559870254235994828859124090859764805976494955584954077091595682725812589931477760620013197157709208910572107180004684567825132679433285426413598308314391230840641571024462751498113945685403007581183976505156245415609433969045551597157426813772472314302997663227468417004396205524866087214940536896285608645335692080806396298113805647465879837343294592119909473964994861443355103052252318008498401404733126360491035709512816413987416766913380709242248147733496523322873976497238329008275708523839107017683870559028830581168080236468197542021819947267257488998045317575840275424508141953400776746307742622034333908954404838395820432772634236270624876039479212738724157658227633471685523664690157378092085061899222531105136619298610327153294980492782113819533479344425558587178078270324397892350476136541921592414429780306252910120159400463218651102269427397686743070306598499721775017016901581374160486062570745491416125893519540844093826670106842453805727456180411043923856703479082006244588924196174084588026471200892420452537368346753916804141405363743565583715884174458144646946318987561544348092882120265887199578140095106476386153634681421387248038976006362291590514957438851996757362050629810406155270541244082434775953223342681076973573694113353737714648891825715894938340827664630406926125352693686025141234389996057726510534487645096218222803489254760894990315209556993998629197794331683237836581546644471761190924048813592028936294437684617479107500730917384329908289983057252603517203603186484387722052841874698076666644090033316206851297574908820166558197154205666661838296573949608320760258178152465188580979807795954969321426832872040777282674306648800789364169641840914782374847673978445235713483141004679647840498659248933630421388126931805456370213571481588588646877975066058423003553639359883567394497936098627233100192224698633312457359514073150515260943233399484873322023128600533202465369203089905429125616000745129934983870686357669975102535671982678215130655541366335027676697833501578332241547144318074326282552130419586126920074159773888451520707588616143282945346448755824778210255814080520575732780479078681896982958029929129023686716316354487636941443149424763400788047685723324344547031137716090266634082412065805011412748999186056182250799337123543387305486237217191023554897676321462221750639528912680069704707404617760592439659125494423988773558032244118625448966927851293636909576824165497963915505449063762082164068887153281705252762099752671047586577999375037284888769017744323253898002760333715636322055495804777143634984277144306716793353186340573695857937741660453457799967461029524840165876141834621630357849272200726214915657552261398687385310900313402708463972252681878513504215321639161801830805964759564996496778850479869652484796811381423395196886320063084179803652857512959877548199207667298700704405776498129372400263597982972316804866869469560110627478421764176371003486924269259000886265753419798758583444038521412863823876670481489265168705843530655535977138876959490810510153756787286934524898155430166814048692148954241225636226134114792810632663082476580695642680217804448864603131863693574661139131045242512195911552208358911288546595154626881079628108655002430907067665089012841495895023211294666676556387788897099311870097931146401297432287002839104669477514356160340880234675893376340515740759419932575167082423216654851453760666633566782006785586443496980091450511312500918182198892374063998857372344959406296994644520037955240780333045901603281847544520152610573103415543653979883445165349948549288532177735742009627816324385013557923206973117576799223904232641185145200595709188335203352256894263989109631842384805912041576363067293053499183938394376221419758032019821181821918628566289848635854577814635743411542438371481226091443776715796144269402099416854203692797597907184842411218026819560193347301495549905516960807783201436337064070965516129263453706629908120633659472123009113242007556731885134483888381236338522573268850998876184015214130942341892608366654668132902290131494552053153442538879402278330407119025804671698575398124057489537140799653722935709465116107447455190892461651740014943046111167789068982782979389627694842647113596220709512440224744461822019142154073683860211574522856594679659193015890996810253707062183453450975163802119669127675499755499780742862885471261061275036511726514649544223760525016451545708570727984104465789435744062060122577571219593628518755412262390446138733117401709273730837092324663035296986321460145606609653682085924715309015181308480049249250012418811772092532456451645572862266925355626064981744696870179061381868253639169919733790180501167502867494958232951489739946716462139861161062401966828771121024726677145760884340169471726629880642359658080548291605056107097367924268435091705575035298900891126155504647439941640230697803996243166905215503181711569315422097226716230673835174932982512582618343266771458095025799201219450529112531983626541353258972603993987512138977136320905694592719302504523426338526947600460258332195184804566339040723913533152309689491707549072146938872729387371664271830177272884854345404326293021361085350388275426167416845473612894859875464098507721740112546310827963466683066210652323758425695337962124332904683711249610173760484450613263644991864940356502518386049325104150428458131675187078813061591829492739208831258095784861938845959957614110344579467796466622253780540319487028177484432608147995263792123281967231768657731430102101141898409065654668028855162909167529044325837406843543395343908012724153179351468458405795233666757630314446200890434262351587596852181293304149847657110788407596522348294862261960606799913018608816390882572831905660831784833724395703200824174449144924915780518792303262027877647655075329039317620991940609149098987691636151133799090532821115789948855329696903888998331021405966478364967395758709803931615142799735614246293544415738645561399510573485254743515277285751377426832531017781988750827920566394259371925177144612463873849920595095498608787522462313618789048079166115727305916352195755798264119986341730184451609154864137641520162215288541762803329375463830498123834870957628150212891585222438469481221219832434272341480496818449606862041751578585705716286602386035572338434512462712384840959635899379902671273432951671317860871675999684183378377184919122811713963836678424083039506424937455495773054653676612306681097031723817105182825890658859569842773361464553497180039456660432341367917244591136224640722762314033027157373358105593476049082619899131230773291572529959956848854481426059036182071604982352621192569328523900229664152324779126682476740694727854313961263216727045295285094718201730968986682711375365521078537794746687382913865911969997208072510223708640988764080830901731399735941184880187212679108468481230771311843401223926843418347636107690843830953821195699309260443348404490767479266253841784385799331256428897003813599191567082788522207165745692874127186196674979194241674649642879532590727807177157597890766108777883713126472813166852520759192844379222355255750094873507776218560062074943706936738959105248795123697538820671341123389828466087674663443493693437300774244052104028277131143029026787651434354149454331100504439862296140447457400776709719101011541076994583278879070166606856332845764189342430785296330176318017407922111915834067804816483868084781628261394660698443236876839347681080113745971954863147839342677765847701567965189268466599131599289254504377927283598114997334752685457075728246399112533945612322109329185202333013941297799825988662275400257856720668740957505535527603689484825994932329079107489869537164812538620953158169909485539421936104930909845087029623186162950136024029491028664296964643440266201800640020909980598935473655247384666947813958417810521590649101646386753050106306069581540634840719564110772214863158073786235713002756715753214198097157094598508342881183617497101900738521681764030922802857116079155573095390259638338550106473259657945630765427082539995701989214379121813850566973088134043309697038257352363408970926026699087381745218629645113336869348300547482169108001855127105783127138737091711981141061022115395343693828324222973055762136993411109957058284098400427210115165079527996660982488263745535730470585727660905341921937509068175797362363402962021169936264970223755278481834116453544055362810969286920375409071008025476178612368470508000295060839185292612107067293808461193435687074934213103068783412945933451353150031369042131440566929765459338985159978654623121060260204964087555874485684451665988998015839785580478861620084536889855739633235315923915625963815366351935746851115594588085707187808947651141120401019293928526985464275634166704074008784202558034238293958060770499986016633232215632615745534993652113625154164907730275165700824372587011961478790812760732577075087106156247873198270452440087246233668574662293651955765416597450650868913182321370495565378981218090865427978683359124489629508252269564075622316173712806411799424016362191509539869021367278504105967470149184652666023911529280681118740764857264424416005510142347503077069246967338986195311021188785237395305473932659876301120554004259951305161831255347321672720264450536627699242400419914897399395847878603581475029828017449364422028940585394898719485544879136192340298547786101116632755144211568013138454646894705826608038236454849850776542275096007023740550272860233325181822223689770783146645331634599048573619607341822026821191410754287419349489938717410004295918515729672058608359797008048321096848742997954530560793581145395980612693308077681980213956004249270390996735359780801588948166931445218015625947324805750675926347898056729628958674964116254639340687555284538041971288732534991014819600907862074585213003405933112476974376330716048619784635378924773206840201280115772145887147263397856215380469629428332940449913792264487621750581838256699007355919936064390726731934818926004442021179805479014636639262818631848230718145199202385295051410236663992153068398096079318480916893943145790539462459621967698204539803174665680973539935404316758101848800746995982305521276732234917700358541406682758220056474203423030481305748007734759558614639698105871486808237362042807581898572533305453236380203333442772144533599316796511210042795424484437157838779518933559210276759708901701409634293969230803101866303063441770170683294381527514682230798888160082957996405397152104183085518454706071091713558762440103976853575053851946757720734859941750256058147140082901167349539238764325251220465796067334747847898846471327153412090118694807295345192833692311290827658093531420586575082820357793299928802094114180208761338563778637274243613146955692685822716535817199417534552485311441858423200233126717275091693198100592229401428251126035372795036527000995253594795906688364851263888659935453526676956952998606153195834704415312045949733288994488772035136003073451247078432544671778547346402738193308053115735110292669077105045414603716079278632755162942327082000979433846036555061276184059403410856775021410048444435258091216559011102334984416025316932009193040602839852647105204887397299043002004577272550353146380516762353642174310483352139140781043521224984633509020382524061047525580408056463909904279758110595424803229931979877308215592862703559686035647020310673415027810559616487797835697471075972514222753938940163036032066448158601660076246372981214694843971351317586956212093153511469732869910666459070607419386882080805455454153449870111173823323981315836334267230335837879327604004659492189734370227214852435029847730987750921726217009652368705150246559961298016125288177621485112202233740532141541862297298918620656993975703169852299061677380420889490002857281239378284309132403232384251840874656759931290672499403180558180938753326794545566489442350941383895973711060340852974561803124655620935432784120115453250614460430732656293514805924512851220074596311301517305952881276263248369161215144686423369125933986522610460243090041530742387679511907159063380376100247180522873342349859331697152825374541264155680722313324413420433951977106587440764399502593328778468420554361571740068040076463809930028126006304044002316018236646163618131144669609864640387468717111632895184833200154194878745408393698740774201510667833931455162581870456070487946909805732953553457554420265355483707895130073052006640723106984755404323758337959218825958206262161545150007899771078469821542183064915288918745478380692479812934284259833652568393473984215531411235687800898198162188298381809579452509789104583517698307680965460055604776469653409442892371406836340577963235857484144342385081276236085490596917659280990585845910348255835423775868940127744084792054230753294601645461401094944496386682872490290336038465887019667852714811638628870036288042172363430899126564376848152356348645502711567829178333415873072034340900527613783026187325155234911581122050328343570497423826324902857949106223159637547747497498565304969926599670038619076314816077092162690975673155987027709766232672719315494848936706642681212855710319271230763551495375231334184554379965342240502084643741520655157884433300658273531761895841046016022343174184393957338934577505241508779998346569950726344383414549720531327100887876149153675144042275300706753054223906036344495928334557301444016069518605855320673262274429011032010814628549729688497683657912999157265287161942288025821741401450314614591453814369708839824707128427978358379058108640695382799297647644981643915102667709815939594835857032858219028558497267417340777187412165591752101237499562403109918957694815217304326347095503906424628163766180289476200493746045306555495415446774074347309740182200620291685741616106483769807531138886934305443439002304839703981981183216319785426219513839655304098156045851680730266476483570533295271072181423766906954487732126263144778268909617168954841716967957470471207222895624413918345836278333873740523984747749202847681706913800462570719307220099665429992639517818021319922517914920101332561442058731751800523403299990817950181624956482528112787792581058193155048815274773910159791731649546372409399128304279371773761652224818580469130598276750296245188457512467494364440353711086525822637203896390575612156663663204552758105827174246205788118663516857401500043332018192375100142168838297339975157833734641183895285427562647339794834231845710246227372075796190616944973281551888164370446837050946262557802968735211366777123004120932556397134574335459806152252410958545517751489771467717589451427265292559910074222942415534926565101050728226081516771190400065535149210420688103687713832634820047174061611121334491240530648576883167822417763860030495668624933628117497576791047536378337936354296858923335397972005260755450887239408941069583035753382945569143349650830134103112991966376896192547433507104858510909784508224617244587776754112231840687422673040367600661562549595241035137243176150870884004739226314639992476860995174555602250737410275361324248322210101537688841452883476763649337962663838117343945370609909849297083306878677887598950702939744203774471848892130694318421377982771947129322329147609147342280646077807491495882647664192603959941044702903353337181652659877521682392117101096807782026100812242934725048104563190596576398628947616838261238236506773670859556730973080368298523836926398304493111613633033394489671184388464054910950396673017625901363513537009002421264648333000218399586847938692525342519709534354304281473233602377319911295766544184036550750536590331329647082218545234392747284810231505841330411683894574312308727041674653969001193836147526320655221587838369645501296735974847927704667285191862461589925906309336664339901797188321489863812672792680631249415680320071733260706168822527467872014585798505259120120606535060646472561929889148357006039400420510769158953557698011776096719495339103614817278518171465467842960247469555055698849267638154116126168860869174427891673470865640832681163143129892420682353395466566528024105840904599586941418887725884349302386840973054399782198540786306101914239688083850483484788364659603201694192606660495192027433643665242578192399589692105464904361278731147197819927103283507320499217125895078002637568779311962821426342630021163345000381951640347524847957412970708007691644687805567975313482090354942145292532446089849605918032806336638341147786493748607654278829810329245270761728114828292085371274992232862377945334583643931630143815914340274838222271676860224963621739937853777852493566705373083395430785374236490117237561068833260638021078302007812442801470543918439316183953811810545333128199333404206196455599282295462851351733833932353583699713151464671576453426414098490542192935894002073702413872718339396093068238918365059894320284829133966241534790996998660869849741864476952426203498020979800103123475876421898780372043176440374533229412406596820563736545161977361191428462742574203222923539179394362447247985117403879050397516863145541234584848577188760593287586484769119568010812538299307477284765814868982269365279975852727128708897518769009073802461265278454860444762706034507280052913126557117167972105428930121631515666062834645029249557933777340378754804115139039881406873608329882482872507615904701944431221073701065340038760522740588774723858785038005876988731271662439485345868758103551720653513148112958306615344709590438109084828288329366349838988538440482539856237164542104416848445729355566949890362816346843766021833452297667321208765794462159408676892233750060401007536644697217730613067621958799197121264676341637898180759933264033551315079831504286782066074819069117326503380152441989371193329891669747831263974672137366095794900538046308894339311100073055955507123060015881300602185717241925039291467350483953196005129802430718760060319086068365848042167606822785426022814012313103884335016620542492802945988302959328915952809221748587138152502678070093311133869642375147518391277281440083436338028758467858935012698470199563851755545273223376262017665205650285803783109021838039563895522934019635988105147635540886457681208270697527757687947686192703881558660619296971400762181059744171715657805311114708794653701561228547302241484322759442278549349857982354471506936329961977619721450743159928988464521011004676278442418496445108944552602255135290665256535681167100571336990060608872874854439424790848984413114817794461146434570326246855039494574296432039112398913653933055319417180912693184177030325650157856805039024273874213759263608509559904332108832800822901038213749129659332482839303016151740343551988395341503890767579541113371473975174734470373974049255173128813938485975416385253754212190907838332083428888456076772284258375821273577719567010364987886108798243295023454147526476546503935565620404074289335688344267307699467549382240409260553554029875549485751455611789636469979183533548504460669487013120829033705619594153453865075929784709968129497345661660466607227131844008612456848389091756636358449718052439465857312783037088914209764482033575638464105985552977392757959874259385045165431414778033150146546364071907975742556198929536570267379763936668798246608469139484123557333211612457109910930278229213111602501288219442410103120900201321800047876367526326908847106719716758535815515614886353683733654610379471167509082296602344666126708678422626564022013667790669120619493343493234667489830764643758336834478168418895579465135249385303155141621561497333043818644356898291500837761263416226673530192223652215956221419789522459086592095699949342414675877455250382231916671809921851907917595128656070525601283679774664328839769379151134773197268859598613004896450500361410938485224721773966476742461863826329681596232080194822596205865814559612721966676120011033217406399463693715736993438158002667382010969146135886086728820718527899575563875198907691415816082169159822339514928596958032055324728003647147449013658088912952114185208982387075904515029931061959985457970647613913729467987515118917270113800072979505310681305225079702706268359211056903458401458313194820739954812353758774599114856263426043884008739246364556116035195906895921327333800869814991186428029340721756529908655963573121534381585418668455613996251163207317071251941198115803339606092214696537772894032620003672525244367063662595543731351992212429285129853059429843648751819686980674090897855179183333740916402397439289786406555171404461453272479138144710944473687506733517148810115739308408513099176491410497247254426748785487398259623848993848206825013518744455480059865364772323159165359643766420202277733876363541250206038058115609234557773696430022468083489011915058692562787914151413330888771446163802132808890652423783059956261518490662085752597902812764883328360318062186281392890149484950169662906971332920637860674444597351137210131937976190352590413391976959161008763148815623732361889106298598153753742941284459161488632703137269769230046667632767659545078175796885273329304147935403152550081472510384116571521467067969867498853903102370504832434677511837229455092743195359711599245972700154976790591028941448735061854338603967696069515103970310469061428258787228880998659883078171673315425870564634400025804047919283238160029384330841029393583626410680899605586039038664847805597275927168774757847160312175131110435858043284936938988765967316780545562642488803865769582755213477154153840279656778716187242983518618028576427476895769932323571789501258537462889270981537525741992604967987891477915282493098546412595459847429670447919747425859997674603497129093758953389466579548311842193053922241264615278095777700311049662801225043748285113089466384316277666026446371961834250471211706161541564594170373248822059758185558575277434147558037523442889958136898281718540818733519634342985502735309325912809569508097236527773294558050057936436333856112058522687407737493589044411752019977303501432171842587181529345774056469261517347044634901015716876731918305063195822900960483035646586946065905193683919216390380269238634425016273713455307555573354400042644430692418632798005673019475026262826684498529063669479161877206031880248715340768931257948852601458406268301021631998220749965925507815718599327123350095358783809336496317710140580178699146633263704877173533612748745283466764977281188397844174520880474324096526009687929667581637593393737075163891861811926280853710545599528840704492952095794708000053805298642498306469548215841897998578588947747160587881343906832352288000727936610403835803991265995972228216114547262973685772207003529456972520016796084066749336736976428924610259481937766336741054389460093607628070909336811404510561852252946506735064389711945921106253337610413919913178598510407433317876126656565089637820881275896006595900924021140865948443339481008280773735513006442037161734801972929372933795390041257210185724278478184306170131389428008952388291076978936010601477023765134274980875165756302050354472103340425287442385765261356596116585187413440352344432141486854379523781042777973227018328683468063821168880634258131755034183576577912881140135294719995891028143017755386658415827717667787230798313009538695088517237961682400521287150519990034824609740536226914375197243857036414964227654507835347819081809845225895610876228764008014731808543615909346293670947147526814049123771310110851227939329584685822334642268178383890276627110317939654584493918325763265560896862944485389643777338006911110530444258405846464141882432126044158024995975901406848944313837602886616856095463444908536550615057480490863177555773865069652590703135726067874951282794990098943410466309667096592933715906170412792746183304494592736680206389144726485524667793945876033042708521718320297305641675100318385263874587668841588775688118768368983323402031684493078811741724292264670916261792801656882513398955464913230515686628986123626052280256849610432345315776798886250415547019923922871075269350704880873399950181159622439480528349504189737871207119537294361066211281865717120079751950491343026649032530920930180230875771633156963351083264079716385180699800608357357434774869490811590932913957375388013754457647429969294498908323389238269353026071722563540161776327911419402669963626320203958544211286223135251221241361742638508619780485164329250855024385767649405230162157311795039237440638390848514264795897582698988919832066537584736896965648259802469818044804233690943830375825353167247084979237201867382483428091859684741001215215734793043146120044414016319089224103069435181035047259469039205343796487499210438595840983680991735924773948766593306771079693945173420406153975405186568352378580327928944356689134909641285425592720401863392160908558073449994082222542526913526579982776958138785824833433593834039505207100815552272323989301019310024204403685888226506378446012894547234293804450874325762436038759413451762878791804979102350583625527555915695153175679960885965697130471371054657891614874644481044153823800136932641136279912184600317103205676080998755500490458707829297899078931921274854465072790194642493612461922759933003818760888388880270117323742297778472404147026798935897588667271958015739588042588715283546752144039146748495134563981495205776169908954132778837714522833810319346717183399710567849854057177914177697287212166194985792119672577569961894727809577947778385438053942907624779535726529904616093199057292848666840660829034993533461161926270157341323970655389904655300888299711603038693601231650147618498890503459814642094017228254624161317674288625598066659876456714419165447714895683468486664250259860542747519420914382165152183321055284233657785635109267357171780341045444518600430893802055345821623495353292322041192293153586834992957766812006944002557652910850550384348568170933856901254520608835127919628006940182924523163667879034917839424716756932295191568764160434513773307694024110918043555088823061834706967453672584579595245809377386863455560921264038842404718990081550972803439409553273529357108484727014362681141305316753493411979145079031013897461922355088446627654927125861595464634155913188021139636061522278011526220402593592344219519232082007985304633127722077513739299934524440774352812140774293352502608912551697952594729371259830172785362432770006015924236023261424920783022740785738329771455375673310465259994778478377168331190170915544074900001912827109306389868381702289837956458530985168987635644547873673601138880079249774505857649592219955061028768127408766878576403529292085946956506151852029004553898316612118647177652467883609773412935331604265135360290085265309400746678775793673935581885972400569806314276991904254163939371063400779995929602730932074657027497648166336947661721096293499213025337644338596302677957030649135191608859285460300096121085386739150528250803878449157106947945645629755578151311965395570346400200877026979774429540946837188304016430457192517318397338290609058366683701891903497336316950059822854359127733806140073837166941531558915545819029302805068603176881449081345769528749640144166605806457423208698588600966827049223065693186388303861675208021327814895174121259594186530661211955042969753405185498825775652933177036889496340671204941573284865202392327324824952791658871122945281697610845618910411321759239546196880179158168377121967215762282737617237289213337411272498452910139541422354042106347737882591824016282785676359488034995466753136102673050862339241288306854689084974798610772565778927553968716768230659574320417784947141062701799630524132868968264344164517578077606375127322951549777754709651231988767605525078585793298483737648633648768366076209800362293357308847633250139521521238706063241413657259937985092014554174223554736741330607878089392073156021826630608577489546115239706367763767724540496855702385655973813770924790424333175939690054972114413865352906574970977581637301705725891223513296038262944180892901190234151099933812237178273527283260456843385340506461041831627983880091549540429451777213047758723033142778157611706536056589477960225545210347694442646398288792293657392136176391829874931160502674004549442836009654525323501448126110909172031859214384562430456073257403986094824032900780659434851566317468415280948925670758609463942802996790891009682880164245558471356211411120387310472447565476665124162570167590122598173537588612556706843502780088564266190892562668973484277546232368320328615386817206824632252552391961517979769775779634192720732708743449214115273979122102073266810949009647605778454163595342109105230232982850060395280905923090157744491860704986718995927260262973992714023693164267619032072825997894953151735488184083865195046946197507992749995614473005448963054222107659583706248367892691503655431567026593890399897728996958228429040507736283780067399726749420790335588827451347479471411951471289768022452233057409774227139839124979281060051778904010131687350984940826426833715515485342046205940422690228026290159154856306210720240699037397641640765437229194616512706568937454471319596901932062388435072076509713976166099151320265335660569356845789450609332453361885624715934683306063328881110285929811099372843433565258227687621246796232476057864518279646013018180794783260876188511289492817662296957493528337060854314419198879384971190267734349666621016619656164380827082034767585637470681393183012378483477784894638230385521550474043910402065654492368375278477212637976383700660732881444956290080205620917612871390065364358116841534474350352624525212925304022924934980999938634293889883244984271806773856304880416883664416822183158481131255838889547761515438630732582030879987061484395118980521738775278515757643567494987953016542901238589704112258802459731347059919212895663673095954778242515482479239530382878988866261486205410991907084644320934036719095917329383350292430010594980228429642250151657192747269181276404698492240804487067595223167113420333134115051055998052267577492208106923426915670442954777042957117692664373596275381171964854181274765203855053236715838478494611200510074560111380046663496698360377117269378948759758527269971927690268860269396194345131005585992165080543359066140582035371058701775785596899303939427975441745257203486938079419908341481553137629263691771421694931828548374911822187435415279803078659010425780776147201736821612049268906608494040899608219300353925206135229900188907487086715150434578840639744438539819025638389529458151978560080745173631474256634159438404128883064438143259316054140813405879375283763114136288087010747633231098779068312804092170558723338769376107055358331944002618464793955985381764320784194154707453024584189978519682954337181107051030210344402939203653324317933203086810655231274043369787098098822408531897430232790714996379967892406550827180744172279811703101953541114915320988130818044768006385933482973810511149716954258352849821973674360959043636610381923022338078171028624251085773627492106834193939684244146301562723945162275977028065103091366771827437701147364894250722308110177078973558325442316662102212086855810086741866465710141579630726951701874808700541166597768452994941717224109941367006902483264402989884265721070500726524048776623146620338524551378692381460406931302001047348175800017523942430084513893778514672943143161354764005065435893297968258230232573132223674242210425474307535060460913036796483455104449732939206451979034676485616006346816310902738142555945255711510836688712576363702188029546210659161913931208194105842641512854286275068946290624940229022864914576348825238436895584256712608089550230757939587269935166006260732350203217702725942606283248606724804403811247626107787758465292489208683087487279378582440283336761858284642994543739478084150638737500952829746878844656311943783625737751901769806247806070881479651687375445674359173642209293805158538939365196079090208878595983391618989432818980616932353608256339039929067571955665029898459644280408810240120074263276718766364868146601367753763855065579283418969657678519879744317845162252091644803549012029002027284383684032441779468906474403544776994038612968491710474173525950959132479549194400408817850176926351491252404136166118479276889493057146655054538228283189140407697632831521356762932450259282197599502758064523760374872947870214057762220910553962206441428655347682425062771914035199907646863300775817928520831922202671294649302649664992747182957725260203623933991260807538665789977788836540166126216830099025579561499252223683095039059134570685650218072366276990238293136505558699047524642567943149637625487626819616704293610689543292404778692464226978574842056959549361764708751674697560295278376918947184185273653459069802831004037245388343143229159546050255463082632418539288072481262707756221719562458161370830029532603933070119085788976487767399475227382665968175562270571015005906396043196600160724914722816431362771632360499811045236620891946998615802956697306251250875978455127895399336348796894526775121793894881767969058678079718556310460828934934386332403244415898120442599029581178429442634008126810047099787122710327328399211713425903995674515192211061990384930521035590807520274355267080665887318920960985490374089442468707439942818802400361509239858837506481773796687234965479471464914892180847052190133263544941479871657427470668339729063292163791122830982079861961911816814944782356012429491358778400216390039823557534778708806576501707746670392050441397079035086969611895606389019441026551771965979903073589447350864802638446251681500087607052289122173664450731453228437839576711202303445326724775392911409509346821224728223715543937942404319720729403731188766509462326790441189482268597257814782192062633284605114188536822810353319604494830331566893644991033857684729257445130926155172207500332451317864605379410378336462035647638250733616155585639531679624419934496888193519542198298399942327504723625953856225217378349088426233229247177763947044239756336705887852157952259808278171920582726732235904324878442732026937523590730177097519495345320295941722908904424039463001736296888460738917541017832675779285940115036793421704879728526529242783254282882759727833123045888956631325006939600311325172425602585543997459759368465285804922253913151193597984262578667725754237664795924402258335390398670389482260946819340522533217630474946511437456116900055635310734581240831719702919825129247608116422568665661562430900053292864607706594486052357791555627325563796300464922471413406321353499219061831228735381304136198732124071046081754012781861257073898660947712014398296013028610605050147659514426482623364572509607740762580300635719342108315504244807179561110227216144400631083425700076320239894529802429988106388508275752618249861491698090217862021057228190991203449044717539764394793167759689317633042212643456062115601662371327568402908151610113218412666736840434326287094125007357148654751927083590014920792859770697634355992513349926345025212546681673737021336065974573219812999100302318136808707876857275429317988777561485985627556606028926759175854958739643555287317113959508439832587933758039404644938950073028093131107539317436165345078938125750148971477658484283299370814955198633217861088511844006200627467402566905673519460010774155705281079992165336809214109513959765155744000379228742539007337069107803591147372054401862106696193365748393670441493966078465531457214952999821286284027420041736962990738307115270570081872053757998535163426468097204523399325356282645531812131594905187046039129110725300123993509341454342411006302304694264269120590877689519673956592320639886520456860065495282418499974509423830004266428899994988191841561334407260096925390329488825235530519160732712458461174337612551053100352521559998555307248286616895884100884851830869860766237006187937733224312740361460909266619705734775496051834170566156956955441536530171090391160261548437562850885700309465222831447858613645938990767624445544584348836192338137048225314093925183890128318753068619818886307391971198165860131209000521098620014048328488336976470538091511845846017717246328155881119943960333584181266373110949697546942594993206772711533431463639763459853400471521976349943495088535028450862995184319891416480766020842195686728387658165575842299690956959685624676304194992248224512495140394860057159292351060850807767448120045363632134930758435043612718210117384787042127280844466887641295124305640181144792876929294756849989785728001019086359077394749948778477442047380147326271446240056439469904896583454082019592562264129431047600290795329300287604585902955244204733893650644567589918684444036840937837718725123813168391182586151434872845623147739856638271725728884069383903153455775430755028813349581027561911905542063120411551627004286989430747385523134826733900713106086903193338079354389923470749925555664431222316051593888033239141011120279243624128088624340049135511428601929344517001537970810286677277001306165729769830404637236680658003039859812107168193591539032618766154617209969291590406076168355300812742144078254812246823496750050022098112537357047116349315802865631102439299635964265311980754317973537131212701163108154093280594537161510456061284285008637231776476900555847212896050196246016067021169149437882416381275095109334736543049435490234982177890094113801460633048398387839979379693568410472895595901366692172855711756696978732026482461230190423007466253974069685468002895662088274178535321358462241456661418536812222204726137519570509533732517637826432354066663211982498052330147575268636286011612925637316950145844733621076567694429869222627707141567452298697218109826849729211712315210859670675223535180217418929857215540654281946151816494795062419252848493413963513743530446357478011169795898386941508918374994046874007900426473982122043452949424291602706212227227609509749141924260275710496222369855022242143781644000676296785623460612700266323902480747108841624960105502515161181097052369633151410673155655791693191087558871066904410472424884799962807785067916217747637685710859072738728965298935492837971248750615285656255364921454878259345494023093697027206511663949939146987736887041516688271048573511790695392075637453759583104327937555291789541544517217463917139951165038556550446317128248458818491942524796706792265069352452144103717079267382872068564367397603753922994562901346740668266713173954957271517418965367646138818552231549463229290633169611711381987347214619060553242512654781944831451378369772551699729812620292008239943974587108418174189495340209245568316296194140182680084468499989799757705830040666673580319575688524218505405742052404054067895749562640737004677529672155969379073268191692289647696081407961477768248187331400829680234723466075083639860323804415054420115522569268402855735822839116907245968886298376063318183425536143687075802425758019692090101538523497444403024686724251194233127931927134022276612298908554238550916948065153489037591686773985425028384144702649312744477846044618202580322512430867939967578207179591998749962081956331475502162932541558630568135908047490874434600770665069887379960380854446530780515027473643123863754322086999178655263308643824936540041283821446368575205869770137600774654966884056439487292529747828133960371183863086328215949429105470186923063673701577422404821916540933734154245051556778683177078477273064018765141749760214922951078231807367722175191497807975063867826735914740108156865874171286849948342568056709361946985445160008682936439288952182318463557182589603423923792767511639076436182554457041255194349735552115728581715704672592352077399835184218443534225025350011209050670481131098539996133539008074952862967640082392333012450261169277237453002357264692182873539124937322582733734632532364978307129194297127404788022697610621913266703988800025497705210248667342355378778045158925429838108345366655006616975442015087550555290818269824652517608403009336001117120797544263852921119833508244295375466985958830435228233925939231613600526041410548853101713385287168751455482364874325459453826514172025362402200532531440248643293771000078989758359463843346501056765713769619643413957702287429110177841062458650482830654185555510151252266410153189299657175981205499576491234239924346564931099694419052931999526960695253102019605343371085027513622665016598032167180914254513292164612360723987670321945856695059282476559009296851721685952540088689109134241436924804814574466613481581991071504431450703156792423215252935291049439950136446780646747278781938404970420233475697952728686561833903459113157973592870209730740901147185651080570190395235421039201444789533857158550593407074649236178983860024117443441445712337940364051264968594739844041306302198675888225515856708063699791655270390996984275740928128412159614533351284312594973001350655216170073968495055996474523462761785163744274080479407708241156196712463624634556520374456052326869612121715338175858433962053360250883471151201046024633570522192541632690931747096763677117999260336153225951156870348505720725052938141111296138207619767544187411792538481507122572453828993200081205390954534268803900968280722250549405074187744888648561318188669373015335248274069711714068690260291417979822658524610961645995853106289999280415642720786964233400434913059670236696315182983375349006533955396078731569025214233985191954293468744083176230816818872851036430522669057453764987637401502805747801100124678778250967282812897196985367294884238224961155312220117533370541653825107419004573069614890682382548081950401676860224781691745161479264204260726799376753539202466941728718172347509279846440718601126064033279627714825145201303398803105037640864774634213237368274337788546064087526676565721572232832067414228767414249446136210304534970793066490286273867327367265184256259708225238475214176524448907169996798140828461239524614733276533232666028270060424073772833468875141499794845213961132581000001183081884652276407396446899684463262729876220492271047162078508111478097554427140730373448007676632508272397738946829189191440408363857365431830884228453969494498640876908095152306006164112700758855530503136440024083202313121121171916323272283287744735218957652884693583230459148068224535062605010110351637364280821502759969626155586303250138729447950718450088557428793879049751055489954952326786035457732327906019727405356920593493796694944328883058743956375511088315982569013426921305984683966583418406013766226341470324719941313127364548530591247709541573954962483058634454549495993019990221562079388934943295908497587071226529392746910194221632133490262839072423863986846638641070482621594883425797812697752447356115648948237105327102829989994374146574534311936852189966498636570452546304527985085339889840931985237248945855501451262117973390716409613530484064052081118168289991780362134909222026599406179527237297975451127188758276671702515988692029766705355036096915385143782837023490056344666723622672910602801684056460919075326983137991667868064713770628518057268233782349006724982962784387713448818114451699977996354128274987966886731814739187192364248568155524548097958348351250605910151663482060955715807642995507107026385053436808267205419476722494190587907382163052265945940695773865054306141436923088388654896664880634490286265356562933372167629961608984920032490894439821905789228661040281619765730910083057760086883218098000331547295016816215478061338870195225348689179140288733838886512248615931165090460923776101724980667382559766803838642513876663123399488826650985676441282982739571563877881652621220281600764187740385265383497555847358820312322573644207514984317595952026797011458772217695942777958656514214218227873858160474745519787837124399721792764015673924485181132474667053465684995998028379127992856079126082432093806104359060801551875142892524358063541593137820909478029903208149708266213942639972758740284211597042944369534773547266511302973502442015388569191027513079914954188759745352404475105150095276711455444839063537364629554260932391843571705292844794829280340534225700743155539292787117816591520439878852825610712234643508323392528337940905176950567845474696327390280835958480038832931474736581822313228242780115491008539092471983511066965887355307766824975909656048945654647145846639728604372769033145214908073918470149213890409948295470056810303918567254286008482783382161587049363609342783086858728211686327537271762277003419370371515122199788648186865348882374249100027119028305336799643644709645930242702201042395671372941082447364003190482524838412589802037374463233060385461390981580928510051035849117348065156273389613584521618338013183978531937952195898952218116459545301902901588930944453320724881947545480309914431553716493540165449698710276417636513370490945915930438987408610872196716247664296253893915414065314810458542028064736762051680267877201401904779141620496348487972285529655256742403509782316412592793079009396009572281613218452058739751743818296068591980306416553242916796071760750242202957443250338830884207929851030611174927968478311229570526522467162332225196013535184086938257589599773261247687794757970569916844465546285785978746598304374172807134917893483983315031785491996312993577942186380070575697234758939425403640294457791576436570573588765452870670880062337842238082660676698562200252814331081789848121978605386128491924430411105439403604988716030114366054415691393765108483808011359553160246348743762799122986555016031115530650796264136008025225385529471945896801753870924047631616884568553755944618961368640214811406470218336009589299808922727670795501251953698809257850390165288803240618991135570706556155914463153224322516281662574457404323540714557593421543367197477411796454812164121088655689935083229424322187504612894789876867956746517734482020261814750691135019978509782313912283871110086610243915190586260642254528669079797958428682071315832841634580460864556014529214460307282517610314655560039168227698562582510955122733727971154177158235345775275616903380436440451729951747744208313139887398696200598706911726373126783757964193877781245007837781697817703771466438246470103323967154113575235206571055716897314315750609867849428933955912642883777145037886564784470583704376639906856470090763186626796942481685974060809234430754585806603661747562671880374492093149102129462181405289954947337050062840849817365017248562342785029098507187473846239571759983633884531999184282741603401815420421751621880813930283688509543929699888337026425282860981224738233033304016052483606499893040983381321879015290635109019732901035690489769434233200259867205125110906054737705577672908883032482611649427158819378679839019934766870652395852825869235737722222453030733111063614917517837876143608909839342705219830582255116918136204141443258665993895448247335504915025013844694709796617022410362443447396077550166429476478508023609405030085170493135887961657568456283135645223475846719074862578068153375033812275490853485224897761489996010656621296486361127293285297125318719700932043405814210316493528213628346085912007133213744917136148227557786626947484769982569002674774231242610920819170073628507657537755466483110436752708005268428562037675071007102275022634815897114057460529295705298785651618679168271250594191484936794598577635447974395360452969428069360800796072940076795664913357249403338007928224696300927479542752554465931261515300733492392928544136663775915294098687569761153181832112920390509305554439741647040818367821001338326029410092716099258894193864407393979826681677952708152086857508937216903347967483712007059261755976566682904355059477891243730300370801793946608272642046434764385493687393036502587519074214247025255374606496610234531958539096619580577115153604986861566505025086921632527324531053269071848236352917702706263021030212054827625989858258694060730323192456445327466050750027016770806406277221917877893727946248290752789551310520051644193032310923766765346082688144221737518710195669115754082734060259324701000340180513206554141082644939525546502643409154437210237404284078344319230963425311383918454881403945661249139001980670436536959425823038271668827436457038753214338927512632934124046769693518432312999879524170954533984459801229053922784056575813077676938563370719347277631757806997825183249561034714355773458734923842409475041078171621329378746833332453364589051778835992372827941696773639574798225925073144842484018450442981255946690102986065122395237240792523620785059818669720835706219964628098205093481217436637864288861368685049810120505681981156909675610831500997436147419847013833276975144555404459904212706836659539394808459712469048229430595591769654399820880110662350258035351530559301713060514399835573846797413904835554986891780047163113182280577928581724767523419560856976185654188215254170907821003088678716094076365475231661379555432329075402145064370239965076179408050274049044652875203546798892811854039259628561848946670621767818526697553818048389488705032908007396374596744994843301665322747303034930910340262370317349624843316328095339551588930998478474996884107938897193504706820921927846425861498438621931679445558625882490458251710613791741823257230102467320720200629281850305583139366886129787318596690810918402192172906543448684330935372500776785620888190790937547204869127821261351234429277178787990301210404513277108775000370936217518823274918494924662398419982926934365337704003316498221546771775856920654138742689732471965681751427479321716938403773614642468578729542732272688131725021658151825590894067810865232655455985870725332107468071995011997102072087044836128185555185121845335242182022793220967160052400784267944831926993635780936560452782906600571548651956187113251433889339683072265299009795767819288040023943936866664132582210273316426371034580014733067115728157936207522288832284380225787765699048050981826559978855271104538434843628709478295510828701322889768135994204447925048237673134756906408309412950518447627493894358318901689603342138650748060333024012291929218666111263573390090043943031289033703478577928303842282936709603020426584574877661992941528025914180658863942277695799063943545373567611689394004662858578209072588592703329382517835410999134184895272197024876063742473470556894090144999657112525939116981529438937501317463056003967974706806305520830854976589181882102819976670639734879428039363945508907868355019071465841850520106126147210129532476542230458876777059569552541605080728904520706184316096591923741717126881419524531792831230522718238336881098992292591224187945158230414405807335535012642342576862417203865449706540547896317857513185202708978055696745763979828048574687288496861012595524123132863191981275683241002109366758804521392274975230584582881345114488716771041781548722758180674581169338382880457001374547810031355207667789341299024506798527773835687932918608183424189597165103282892556664211639000931317328686359176229012054939443442044057403721012414582551216612369134273424616019416887760701575347392979078953925537376069842110211561579255704048692942409745129938461135337430649630823534850015886049343712312780855011812039638654887294925670998740849044818238182698103567125203927675354905423993041255410632308186316891946313300696452739083192369916173337001341622596461519731136605407262906061165546191996242217828244683629185872890464293042526643338797060652920231209972234254388814741964042492466628732514138463219698164854663300481605570014994781873078177204686523361584819802660780283960663562002563164111371519281771017199886251964735871251469723544185403456435075450750216509638579961561676248036540577002151804272815276987648030023580121002759522999918018396130772552613312458178622588506156569750670729623351397896015585094345267380661430677376633924390982917362832528396264628411064664496447443821661159639379556630020359102827545109712294109178922099304994565774197208108631556642221015071335390508732287314944485160158082810613795172177803455654773257746834878635621732840037202764408130470258544372865505102689124483379640938553206772893322839351201499765642487065592937371099731651772023423322971026219225758638864103363194205813230063087701374524817520047043562532801166062755818680416380465823336470767262581182537591398842628542505561364536397822020446507201171675738094323410783846617445697962605670212490281694325047512648017966223725322461870225273531723080437908882645454625185288660789814302278500890690271561328543853855597407315260591049479953134115599075657923160453427847547708946927561610790043240804352974071037528255746567116193733093197452478344173529723637824699189287986384679304311203234543896568644173770739647281314058062237794924674649442617875881455464267243147639172876509589860999973397553754203623716397200692821201771851188759627610569452587111654389231611351166049375120697394945581514546931002689876288911683800600669164909865332680225035748017471671537482117259408465418819848338100764023723106612500001008185904285534209611676616753193364383444430206847824328773767446194896219661741320108325520404444397126665060381658298236708553749079434598493363168706271579067495504181730111813172162374890202993669491294823595841649268484759453951000359599165419541290516220015214676634355973251662389907727938149885866568027082682785423303650970303539442050771685280316636760122921190445741021297242737124705360420038723059311757094470913439187963482793073208051447075558789615257466038722954675483911821931980912412397738721667302468078226568716043025199782335470007221618706142450238451685924620688226744134423491535707319968412747176317297623979449900980723152476227906450383921998255694896483025963823357643510873989805079555257178630544216660356953506097096160335426756838070405230390301456798670599696853356734532430841800478532376544926092687200670148317524455334055141138628644783502355848728706371024479462085277819732411929600873743793293491950529008852424636594058000099131420630027250774558067234037832811926567088054791107628599130801611097889357038504291664100873001167352150132688133615823277002142901422149944113358403042072181771196838038718814253073926318595721024888177542625313700941838861480217296534123452995284805895218995260738866608545269980003666214350098156195731026420578825861136295827858306396955589753824852661790096492793504748861097179493729625120105042122247005983009843324576755781556574680378487513657251065055031650555508293324586192868117329088601582090012610311327220470462224824493941648826518795077956016617544602447220499446976585840919958451466464454386915812008776346003437258621602287059039317721401127118936294670752349479320122959321329214184918335263471175900952705381800034162078336477051709085165524586293122480931617386265000769308962160926912485848923732198172350916831617907206259158099251132684232336697257715364888274920253299017794097104381245849566626004197186790854913623878244853904219692648105141346125869717587351254184080570997855935540415305360836756314209617254648599039964763808108791720053259338697508057418208813487823450871316039915823185927122454649682588146376984859696772218172510822062502924561377373265247519556263234780959634488924729864847479140891903515824898267289818534865572342808476063596993058015275913743274121769468024210167187027307202936882488835412188560818318499168908773884039764248544592595025109969316666162679493410779625555412402737691017428395557450427934115999589789753431030920699010374711289367260593276299648766508458973775427498729746178031071511234070552058715889933275062792703722876907179227313860535679105192222596429010673526437721977409747263042324646688451256317870847064494623396449273939773068124527607309396298905196671187812642177628612935970188508755507175788516053410573021524582497150088777656255385178732556460027871781385906870525030710740330005414488602444966072802347073520210987348249388613105301865920847701386824000265243002137832707647056358636265253633407941701406698395723156760758040640134574887287828440458340779489427483961060800448985190271740427209346942946534985399658143033878803111746539045066957451048253324935118551053664025251428788354982132263534844262360049071081663351826531522001593204347100340519115088549121556136302399038331002047995212403478501463592477852811818112185217505388906993897239675754060078873814998003902958477519353540547327381323360931076880308823303235104098008133449992839172302235980034179394067094231768921408422895194315659596996092418726225741807415859872469012969932616428450966168675432791233537229533524977627106616289170736214394032766608140656003806857637015181663355943688006266800820648253432686710872033013151895965443027943549501108415887508751937478859511821586464149684048708760746508037820385709793947802761638869689507179224720152149031171827701929028221909921337314910556696526879135490461316399272802199163020895499974477810910009341672713596123891034175142803584165392931998256204156629719735947038951444759151226469396437654571400734575419705120578904904773722915270755690546607931982237218656781334119740881582973966651069195270674547366790510453901231340807225952463691379357790401066172546696956444945689619860922656976576357742864930553688709363958753429127217858817621283392330810082909374811148550880432351708576430954688868895354538231690458959800890097513215408478194455313598658976598023848281101713436808088893130309150360255899084332933876178162143512181840064449604520049638205515520636134035567885740437494069394399168366287990606523051909106249540815031662203722347976522157183771018802041449500183257041474584680156312732131907434101827683939759953515571222673260339064298727790106186788149838768275353962188786556563517419053900649121535344026141937170485541930969728529160721299360705155310081985134508844644595583938659901685577835851764857351129036317970014426027603051085924867584150427698430944444223052230334025657736696705469683573503047584232028316422016243054227450988952878809888426482341224671284629986842278619921729512346913438035470966830562647672329968621868492663536965680302697170005336916031429769380117872392373326190937482012434318300128760988911130202383021148474452377944195421843590326194535875474064652253710473187749570728360444121235133809676538878959757112316426089801381521534085647471224580862726399338850358364767748814907988296516407992074939774169773406974264288093164099124361218016971412370108852939946650146290608462767322265131559922374464916762140866189430732394784897833255845094314970680341574234514094157836446689287081337219711209457840865893669694096030487101597860168235073487064031418937561963392522821186067777462971550475657486657359756975323721107562097092545375324923241207992486150573854558462451468133772885538224779016504055159769233884718077851558223907536770049485214679690492780362463905268713635342420882193008046359847115912553269352191837584019270768801773407067927374794961214296376632261710131736541724206703049304961181799430548013726651764666736975024863989252778650553712554284229604662080836151742326794424170059875671284483950593734522514501337317935875792039184501143763312901408949716286140905451132555212094001468974399039669188477388410651613735015552472591208401220108916853776259884681149725279147835004135333321182865609272020014149441994459084324704959600565655398845383819361509686933413253126587886166342082698652070780398177213027090694144003298063044162116600352659425195069311460021303997708849891292834977242473659469600252000135528655898183060226911142773042400386937607501812315860677378876076196270861068266093358052252345781053527256858403194235211898116032855110054956308350425124054577392939098859167672619070488962072714853388357582702231850362728350115940746126660948819062058991268182931882961977085388329156362978407956154214504518389902715309689155091730731354838096919565385624025871301415402946297864793734047883844924527129629001432125078964280689614071847813821815142569468717198146473697808425726429799770835793701761041305773478584452930477997240293093815531666650432352816603105017848858960831360236673570645246897708467117577772654355798762642945977746527981965000020000357046488664984362524134090690921710876568387617595173052929548883094509928312418505709954069106193702474137877081497394941283578260218712365224876422590131480970955728199655491289575074006261964375844953227013103911886055772467236774768220576852357331158742550539246480651063769792898234863023045540681427627715896074343851003150954296458199124953851746347376376535941124379761722635179389083699179239606676150629447281471324261956915495644044487308975813516675702727442349133918496957959615257988292009640113236042726956181171858228260112875910052926788718627079765320770034028328575620931602264776045167646015898606635069229102052762157346312781150041153998842610990332996658944429057429374114740863260857758056341943975015076557426796065357928467264772344076315831384435499585836386811465478375400984327810452718382345499899230809774974775075807893676831677680152856653962871856577492205174607059155964652285424439541338187080605619744448799472741787929375463136077000434364537080170034488665949293849182537654905874261740095126968049572687316482103058138218405544248842758633777017832986565680510680063981026123922694355179245328297813852445412587974318634977957931562574890199338328523517650219129118262466703654235534087297134434456110624888122670237444544869440778050391062087778109830974603108825310815195544984230238557867101199138840924954841324238166588176370528349469783152632316746468139315302616203611373973900682829207013394296995106818356709316729588902003433950933868545433201580478022449800005409768325544807694592300712503651446932233397307047893944712730617359675397429537712630856517134764229996572336001955132015275383817329514803675901593623161014846515304158827323110062864955396247792905691508816396404446016725676770802101624501349861125392744651067663415095413352586708745777443633455266008653071443156824244470731349487099954382835345141393011320315541780665062861031904480144407261391102249527486252854518968555953311064442994723018898514487804271883139633728260509083137798457440648226910686095178383823694273688270193129253488424919580471828375852061195759295797266039411956870169181223832288397647631264397431585247153700994038734182654114733899256356517078306290443870108981159591891102171937655981082796203996306810751307848958744597965835789431229203599661516933320873467923801437413570924054849578658305981316244691802127589758181885683810981718314190954225722870385917140492961622282476481394656202966976940709647429527606665977913091987547827778987591562194517130430839173151728701761634625538961380841835847240516116200232142471478442632082836976675769937190167107173325360232704521497178822892780004281748079224436104906262484819483290217274855228167971931142233626491022486262361622320852906064813911607970873503383313865150025107356491736325158229493484201691993658592115048678594407175366675745244073591376161766560461902632030948234705727285128060084888661372794734858890142647218875379449925065987606317543448772673417407685083901406664733148374236852867516288988563435990853080850916015089307385464396856482942128420507167977046112607330188696720237041867757495974468673363887210122226419213883860960949440428245405653262138267547746091350969738244393171206795926363574952640999471705578218267603908618811737052656493397044593191169367954566317460715410054240088844541015867606693828279269506553585972041465880761497327096120289101234498277971383420828140497276927608567031876085803764040810640683810884959012748193697496234368168787262662645107054925316371872066542231756212612820214958859510441049633453633449971562671711298043165792163928474656302425965143095453798063528816288984418736458287864106707574151346957302931839646925889096341000690370204925429791458208188891355809402403458696347992016909129087496703550375382972308488124900834787008770390157842611142883928508289880241796967736012686760614474967045286150983988254557226026614273079360478060313343178094741607280471345908117766980244543318755856656062318831673398480404890615632375310215738639184985233132428992973941551545010238082508878041202030378290120790036717220292369515710464586771001977177397641674392978674778336238061113210514407088412980890506661536588946754382857369577571094741233914546558109947129194933768666834877687606674070892251651662539610443622263920525383720093415866508953866593697733290630634212092135267207704674634128341009892715194919286303295395480542165134242766391325613570395554656546552093832696739019857201055251817260032631578106682416049217487841855558808607398437344355926869200726629562754049863843318966804923975859166884320442074901224125018094552905087218397032591070745781900676717948515539632668052695047349746112823765131410788642255979386077764681794260726267595931865686482758654266150687538193932896068850398445871643950456291929509054746397651221886909699884325362157293310026293186984990312460672993527368281668782379873680301190576740186416235152993004435670547057425426599383580865690112055592186178692906066207943032264811322168694127506053383077618290356565003434325286135027566048092691050432273072292412568791900631655434478388898165601371045948271576342081200506817540043692235711971799174926189355195096364405815881641013207025906882884223359838497292635670674851454118139971597161088852506789987668771035734770075178969197494381723081197991570763873213746078859445757032607102107173069743057740104251207659156997886874371843429486703228623629568020483431696005330624347442726023328739820508942293882176045066901319839159823711333564625808628144938580745139548737050427050602979576826315433972418875957376560790339667557687530563761525976761591493671759508147135158533107453333811393141652525778117278238773189625118140867863687405661713249988681345790551174674227323396258312591687467317304527319625466064188450496966929449177009655403279920702135461633122324122529371374963220932420769134506206049125347841645958475731423279058491308018456261213127384784375524145550712073389470366722451198342535061467294353900519506126851432440522786232329638761487167879666907784870306707853358126708051406033461448947508562646342462815065318727176100387148161628274625156694158838004450845262093445006066838198275533966071185415848493761283365493069870783017217914100777081472727153003432861100260045822250388927964686378158126338867325268941666864140155648202797175044029705024823205314912435155577560428436496005673885018457141101085911207488307426504551945948167077474229059961929692526745058163186072478014062477290381971886602734036889754681945976075154063910344892533182672773860026894102197746498600631851446999227605945510296163120841813067869349133566940047476728610086057340094226158408499918104206662273860100891604912860206514490634794106387763956875898621221945712772769457407255007276902807816065483128815114877160228377412910827501222658346579428719458817088087065362144737056539457049477359522397671322068380296458779136246278095449366568944242713031318599647788589457951829219375285724880946323502469827848142162382568496500500780960678238464404121323005016151290851346291236708691542943155362770313505671747461861818495528933221392196686716808674129857508282058837226381428716289041342350703739396208824911085090354322735764629531616501436846366341522152965055848962578339803693257712776490749266392072571795317887849503894638380214186623216668075261736044332158522268465602571037016106469802256988245042763911832731594907379097262544766257528940748954486568379280623864690036989899960710148756803441881973333623723608529399872045233708416985594461476446903998464790132886712650443436228290892200260610268192923414810093335812172545377669659379685732434711276431141652036496156206834833274180491554076541759077419992611262253166333262086746467054252847391617798175483650165409798727641570878686528348682698129752439534321198236410845194982896051586417722324733009523695315610831913433455120120271468785415875900485388059030692457196969638786899449942745619207319360919719572327743838777113069578037768505632696923141819267291073914362690953581330735514650391102481937279284109318002528882193671784013737423074348264478892526739261514463459512829188986589367789059340758861739409650448609906507777845092578541250419841777486688477926691061635722746683729061058551016112911807283062668260239799355071851700965634567890663846608668659752514522102456856728812101012543751523768882684671276727454475423564866531734202238444736304878599513290796312560510298799337149440116286396951618475570844545887301425829696403892849616673809225843160822373298390883307903131491622810244924489388929386150209667075947726010066155591668721916101435696317762792630546907462052292740910467144702596060575489603790660054424245471495906375916134468988786233900680032228835121260899201197600269233164540567469717807330459875713901847916654351284843124499508655052334649586415640594321219721258389171732046809850236981835537058237128003326458329518306950471386051121987184477663750670074610878330515585107357945491829529836896310237681069469580408669328807663444946303424074516715553285038667085780603286855027926940137573448659564618740356320154975522800330199880851322321269615606002015890004384898976973217031569431536064046461172098377422819731457300302848350044688933910283038283071050874778937561943355085343177056719465925774138449782744463886092493323389310687898614355668581435458105088293298199605795830649016641931338747130152345474708383062755789902132784249348196087829204267972672545165270653512877218179823703890427422623732656143757772847153710987335194221446249126011848136751678085058340040362395424375407658351177331586394754817004550531033223486668076686458468083745913090684774838394580248665525230267329148233467257821445058737988463873651225060592065698578891324639476363630477454065325883330967316288611994953338106042015370311641547328515248942301152907602207105760839343481913752979402298939162594196070714387729366712245312781813345554173936404213407422202889551101997242552238888065945264708951359343684482120253816803737207070942830075466378566614084649761598315544793091804454937530782533061286852810630432199634171935202024686626704947871986950105462371182139625194447624027092089006506734137048107156432124743244594622023151733309817399313128357695174388264528793831657771396382582656196966408588886082397007673150597378661287736603993479019167331812003210205569812722850002298877158533497068092372759990876154612491157100180970270596293241162114534726347694886839339716217268311817746456301914909580510368917133524179275611441810298089605867931906972410607391174590168610825235944313665617046462522409381816600458796413648940440306219206885225719307777173004238493131098553840772387411164109849307774210583039844817492913490899320480806292174474340711841128403909976181716894704349055915797089922699799013613871543700037909885598479246167956811130892092376530809797228572701630903474644202326345068875546178261497599864821907027976913532176271075197273620780634337622550377670276932787907460294377157305760385759857878718951448797860425617818194458193967595108006011908393927422761527329497947019533347436996866040755753894918029886301972919751780195272053334334877981486356954860457463345232821259052780152958513641789914754578976218477753042172693447716303262675588223611755940803421104785549152363470224817804253559190172081833590536699890538252210848703392769311353595485810415254695388813698366768740147762203992703075428485407610894164521201758229605115974502265628544422393643713893493759016033466772078392854711641346264073062425998536282799307811749631793948993820333696382916225403920068420089181786915543822945743134500237501716583187773089665074350104889432256950856143495723491325452881191475560007589112343582757184628077771925783424682890068881681078187180502298979276932986660490442266232969968186204303265111836957760067396571706422829063195019613897911803685094250339128801297226876841950410946283112209404954590328988188059364195691550415555498787909030645294537861603021232930773137751842833033338504819366633274764436326515297737240241012430735364535347428008137952171839472546353947571091977023500120470408883511879490941392736532695795816615283306520982504216920666748896203658691629131289625118548393137494478646897790219045786064382518061029684438015297364443248382722370510651047516983252453185653174432898213383878765403868042693396279430443115676817592487891575752580537680458061121468088395949191650389299782801044645113171345522628830570042331869564212822854203654314461900977199510958412158833783148021118732329114726610671066556987901167635210202384323329521058546702237597150800807492361168433145861537749826391313709983676881497201046262100271624560568261863646848935359427876158003134882995837890115974715357696041062563954074914508092994761611284822605754192043649297100668805094408238912313497000408470660641045112388299080998135973007124620455621122122207218270841964833558602163964315269229052155492117897493251334027627720838087252460499221910498293190475383625024593981933250361861060434708539860724244868711835436943806658715334689340178160461150388855786474550758508810565153727033351502120026720154962520873416115212031739539411832302911937944040219758880545717649934639952940316544113856267712541981416767894278152409736204315697373597977610179566748424588524778019282549096427745201397767775321322293769870365824327739312196921266867407521197643671163321563666415475734801843837637459265545728474347195027877804000657210609223920269337170590016288281548995355431187550089283773914492377358486352742336788899793917123586471105750633896244470713660449875327622519974717201150071938412275573340654681793223964372937240469839231911339678171285361616472050414090510095099857344107512374757739743208979470682380517585504248915756176895139737774008739404358892805288609315001444244543346508042373788575311178072500312946917039527940601246792780388488822747621217501410571262691207011986934537258238062529909002464233758054006510186233420832440728361072701115169184303118510589461078249437389072652017817152183352820691534997647792277857103261484002545397579771408324797968098226903342194811521943941777254146701016629162199901776639169692634490426134509331882555307450302324969770751054186678363753984682514750961191554891110713409916224702667833212061779785278767821623561019428693461274620358170065739405330966567922270311924246295416221668582294853492276192885692469452726917149375173290181572064938145861253791160399147013087810402751095513333175622989896005318931394517581306202522775190433054698907552195918173860686016862364959986062503975828801302964383707422175758983120948767994463961133555536977971332285740014453210558661938748229722623964389086649478733540068011144895976681119291268589264285127231343805625474342182234861361942436572541719664467010918431704836513228556841941358548464343309353509481891508570545574230809815497667916005625495426421074902997842722580426983197155807592142533476233676268716948442324563323029973005724112625058813988103103633676684267805695526559019879660899507564244871542827232646226383935878534689393851422162848998874764738700783919985674463351130589572541095428171878020369380030591022087029446290300066691418384149577443037815528881470587369734377148919102693556002649427044227961369011307476666643079024715609001926910916409418694196513492015542819556092896814244972871162563604140900803701310375458541463521183936745963433202367809998233370661991368535579948894194810121914647388673804232806198170077887871510305448662036133504823497268441529387180394270002580892270686802184027459966663589125530663650906349212497827494735993077590869359667809930246322893271352772860765050123134089784260684155918210301676710629728876458696397696248168120110182379495428988039715881759105567311389700276206733410793649047606576151729623061895476780809668483236245504391931238850374478491981882595125323988305489070946052967064262864060879543782539865882875369341917746043215834529753956322212660365269158254786971451166682127554540907997009873977995481057981603793290971900435025958931709079618227867587160039320279689811247760772737539511529647126576740600473271440033404509244740461871403551469411062231001230327241239640830420027086678072410539305279784127351334963849851359989844796354943129148341974625325547304290380029858759498067789937358189124597966547414670915676036831309689350381025327717512329496836098784258330880374374816323601767239809430460965788285317960083264483531155243861137245752496192763124077027804557544737032058275728531796671131480453261601567043964017550387750136220863891270626651148989823336940826072495498357405173818727252934594665820637110853840229231826820829899597219635275135457412684462363326543378341037823816954910754420234628594781992315643759932307829087726268543995168065559291062341242541359021959874631877166024980298807530047062958683967430282184780480734871552971690941858740358183734674993293538110037356661406582531238810665460459228145520214949286010335905052248210816482967629784540686082437607483557166826103866836483414905097241463673332570167220635027026663655289617452145022628639708711288003714434369818944588345798062887458440608978817277631021340159815617007688867786504813564785680490463936259135921521278236289792073272099859400641230967241835257114625123955916822114694429927758242631584449132383547163690466190314523537328974142503567403453891600218399878454228835355007816174091291037574927158484289977220168060513424512633945358810474419810968599253725148574239409450900539509933416649746310726957504168892280442392346269926290711350417006319979083665511355082477876587804288460220207816265369788671005092748715347967007198393780199318714020505000654979596770516757557144605232668190585142695610420342677595998664197798731064035509718287339292546405838035668383641582103876314697832430532114917592528136502639032077698212858750788644945169758031458817917948547024273772945111685332284518089110787333528781273595228678957124270928991782451283739261523072700589573711448314467894339253134200547355003591159881895144168293006218756624819768343214067416328237133902951992259517904922778332726812063856518538203577860188520368227779272392861125029650671205935167368724944319814634435097641376792101035265714750661842839599138467652932581349911349127700217356896821940685719806231700530939694931754008824481806055322724821367517286359766708995082444821025535238634394016636785631288061804392136195069777602764538533206786693172155246738470408490329496593481743374367200058093646767643693297916286334929663446871948996759581278800246425900216291332846520676530757816760905229129396621858689756521190900994069728581808280619733863435762523507637795539180116261910616900313680401833267111537622709984461941703358276967062978198780040929706850354983365446572681865206171956924061837719982095799563025187568724446666299717108367852095443633867478513259803664947100533042331309818718245518875092322752360472169927059423539591757716512289971718004745651517440417343358503560415916882852978040913001353460741035463228378603719931348030196540747950206344704962138302956042929503293675451578995348051036511347131356793557818986338517316416267632707432959710041083135364742155846214212639302946039497763265034284180338053283139108858683711743591313480587174765311024674717301047781235868645981431737607327527616830210819513791858294528710598468422823864029911587931317758283140759422201236995890390690446669920344021787307610612134043468088460761951748200357818281707944595099224441985225056172362470229885298804332721606253932993188805324467700830941304055484770755697364900798876252505202213204882532216594725066760617525553129350582913273021624642423513089323979872735536258612141871803074854610293961706071417015680808918318274274208465313379987274317120445683444014073111646944729259667535188809471296245135797471281633010004515042610576405192708380649822656018508478389406354722666607049648152658454631650738592207283941616549130027514899881809720006374519478674461838115246335537532082374938080765347528922118668832784139474654405281218152778749288150520892521224293338663123404158933184203533159451130239140538574128321658563038144799359111433814618709130671833075146015193948170304523112482964515816576563065189976183061540981987679005447061600637768250178330158270478089612947977943196524157334357560643190285909822722818617785005243501728395879400686945804026390733924666673347366370377467688944319050013744133431546314632391768743002552531965950860498430425401355044289796463306004365286164865696485760477764742577615819727082339354501627320980516931224264971465027901753025636408560709174334850350419598577863945109023855145979451369760423008481462410669569038725336537242910445716112680363344485023600039582712918763073372938894688682436152413233210316816290034794120164148230011122632275829294129938415737918943572265231174440897470543490254101863420142261570290260732113850096094786366766426912677596596024520454040883404935132923491727111968965116453942948774220702718708031804378280182550252151489619905748950489268164374494469313314895401964416498658910181229310497925944935589526252833537135446734972139815189028916175467414030802163332672209662402735290163572938979660270699684806545433537764921941262103665729400862687152658320401971067424733662565789110730378692645037336058693044913088616662025167854466573006275329656120550646953043305115711255442078315023526812028658084063090578848883704698144865403111664019793639084125882302718997067906647750251515459101621087088034975102431943693633211522797619639190180084564577645129134020331129411860671256248657760494726356757690521653622591352129729521215079804789523745996993107686474113027482855278611519310037803459286013679486597858112813167014485710530153866479697446128269111718469093200385647099470936030322141201254368728937749436356402250397528316267166217365420081072894061547108224583739560201449560016027087095719415140588437289657256716717872663269936317528035961957160643308153625981115482289793152708594440784867871463281888405872027835375656509153854295938606245648207453282775703184828525457648268980915633340137104406394976533283468175490284278558212699838224240619049863985224470768913517732399141376931511184062928217715331317457585651441104882513237699657453736130394483509736643090792685681484232468418085465958719234674624766139915130200431763028799319014859307905835003988670916492054394110332169763683574042060455904771346659413335858607367212668966736423475521917903557922960351617983627511669044342210628895734473381742604761331247570294090193516956047852852214241011249933807290814872457375336024492871541199630918764959857800088631205520369945383589931231551411826122491550769036985453172272721813760675529823872112763844259674172181041578900909632749184168311902499529217486846186394547162705938790200034845079037175561795663154719149425251722981715320093626354166023573632044999799609102577298729583298832345394930551365372170546768671411963363753062712697478013263594862785184368399277748358765259700170129257465053542296117435467288931489455354483611299010802326397328716828865714685391070791440258921771900669598716170588892284179660346360988127594237951234729638292718048113762251221358794299110505421623391934752976392622329763263944692241810361637855182449496315361718160503995892802218058567386122375352789277651419551800857315524461244508905556957106679517528701686272459420080433062331543516233972962802031082610596063769628326430369467210683247048931522150593223516732153594296192728140120309173426522296639529964325320451688551380412802261941079426444995705705231699916910478608128181917401401714316740993166797255363173300542457134884229438109489865322756742349596760838568670999393332621647934771927413304495640404227077028614142917876682003634838359760777849317342891953473374997857516580899639484580009716918802175180398548008766002466929258459915998668847321658170145481440036817902781360873459651882598888862414442548926405520697764460608925416832022556913602206046636821913696030898518001373184188455268395047245120865126095155232419400706845218462471939778376653255653056370853432479622309833671354887175573562407202603222675168036596464945968618746616466457812959793422314152032610144330428786504721889960930463194951496731837159402406687641098447622817092068640501992130051263467801816700671623509735653090195299741915348225111789350600835504037977963121231115559874828753940935607498397137122432765017499339268526948008218560125705935221389402490243901488152835384437966715581024322857405160557360671906715751729795643936154821542086376234288493526522520025253618164063777731197053101365523369564339950991433413337663299769839961781520602371740410771436888523952262960822568437320834118704383881304751919804497105714388309135500706274885812192302613085852184947796089860860608564912106380771139353571705616634519796874491510407208088407118087381770028695518620333227181873089518026293210946681022920421572946915362565088108433790107378638134317887127824856260218399598955050733250311801708714860416953414323418206410123281102200368469520396653721298443621792988874990367003281446457541774776243780348072966148025108198361515779649453737158015157686195633008224311740460651408670384683319789449937213494997547901825687087868779345297682247043182321974763948144478052913004086761600955872115686029946366950087545964482701719932411767993234707778060081193081736662614027548938253354337097997027014095737727550491399167310692114874423724386783878079696575515844091840880539884800218181527232140151255748601686976718834241960440405599844135480022351018457544207025409293303704479567682601419285165414933688724192606615080096685062295303484415296594277250233493582652310848840953270609846166787231587661079896157821896117435561145747975624191971067050185414439657124321447736234911909913278906627168479875946231921555173303017384889971602361019466591766863093606614565567900088967989238503653000321005500467670609524682790346659879180339768567738396214115682186321241611362228111282484893291622326931246902223812313009501612809919144241318313255601635166661900141419058045037976213933611371553473239746254715858110772563241398713583844350624074472948708968098770640830698192183629522401534861221614807982343675733777083424236410394666522211590594878000935296051284496393054969722301970189635739105689013380598741338446749258377876901223167869661465115081087843195495288805645580628848280981758357309207995964134743846219278406205631973832089186251080231865427788869788609777464219821398234984207497450604088315411115046377322637224092438480891284640990980789149301584037243795249555259795422273264541183053150288694397576681115440567677267125822482807902000351049442036797118341501187591317903954488593324470948548914987960862026252182439573450806437846534432804018392613066672834034575701232247416662426244531216477081302914102827340981312416191452757812337442460346517199456504555005361478809737041142297496107588510358626274665062074250545195959542649982902527514990513401546819415870222843418656235236131256076538516549004898141719748358152453167778853415346898763861269326437980832032058906887230259045469656770094845671143890819268146944981367880795160330281539107386502203044902684068257785569308096379594459690212160133676980324862508188018549302419542617517970975013762665825311351665608146913693683281426468663958282967824162371158667919410988295894156933864462111874628631749174884338558796230003738168605184294887339958841556510476753912139400489498679204609760150777033988618408965297751145738581042378829995979817205017031467666286025489106544977379010589892957530516240258293564684587970510423698772123821627916679613929517877158116039610518106818360673770072832914141222351456477273094573433936037289201160693460788674801116201059598135493820090528905144503747793332148232626982591324374250161880142253085514061231623214323376947049436644647150826543911800341022207941890052994560774708734763534154141585801746801519629214491063060563852138411780957445753980895727457510030315474658116486105907077373219061276747038063791438090001751703270529995195888825571243603673902258354898118873784748992541567013143109914724692534978823506208679924427463762650494981776429550513212125446921148647636568370614827043155688571441157961235739883884717269348199094604457703060940708683783378995818137665758900649130549222048034877469259062296180475285643801761398080392323366542764622260128371452847755146431443608694599799927563895240803023892308384570060968350175006927331899036239832556257932343591458859266971967372502733298513670802678331715708821734817350486987850307732713331007913810089728809998334777431132755544718337597192261465997881230760116628529383681525746299165008579698389676107062215685697127322765970946385903488045637221619444528530831771082587809774641870444212388093631782084199698050167851911018724017263740809083292532411643861685262845273695293688684056612790668384190648296797562895282145016931734915799356022849225229719827767840773114068955876466417899904985837003636727097240851288074769659291978199205461625611087389797268620259219940645776677305799574348650450370803645711642976186074034481955632365526439656559372099253549530674326065437488918174600074748927351788241966817442690713755309772140590984397947656012875318796196910302814273442552036032594245983591751385725912085439707248861804633801891712492171616353495817206117583275001685742683889759438471067766785471966617789292693669551480884830967036656493446838240357291651818862609126062034988328338203062543259699050227069036463503212540053268094842231238304898331935940116362281993202755677225774115580905445339474288784685742727015060074964862225392337825332123549022919018615626433876936611237246990173509844801448890041022053431296407692420161310537036368898811876451104000121806539753698092827386955261216117507391307634512885880207784482213385698178971779944227664580697883404240051898948815100505634480538287915998791797598132388193569583103401460172605673808311467868195113166068030625200524278944370676768520337911023171499029174621466891796793630356137788100335733143831003929422146973940059509762380472392508288707842721166372817198842275267084203002443540337897501723843962785966792864258566395802935341861052487711243424245720574269745359256443214610145229508194699439772846891106364996594765079316428308704579418494918388190038028524977817385621413043035368437935119469644406596377018964252960292160235600198952639677947936234599930165731239280423755716174819095569603684063090885353978535699980561427621194391989871773890065807878940126564892406865816052826177817301913395826012796398100021592534697932159364074425861994285216413698152011601796098143610568828544696669727809114820867335439987435419626430771056048170668834812991023298489845272826177411857136423872751114932996102828430946704426666372167214763803857974710331546327244789262833511465548267024026568005415685292289927537941239007479507226908508637400389768710715109308179925354697608680414617010186581806142562767486558293057620220667813039117350926610908832183949183118718799367062305688770463801246059361671467263500942896564339006600126650005906985619191756928103991537651147687597937945172580559241169491312930920482328039969337334421337107166172820547087197365279992977410028678869045590912120265350930358133235573047881848505657123905947025345622729855268625086056517286053672998779096636110226507263272970429693460545214198392666616880966643764706305485562474912480523570518232517553604139693600668906648729894124383731475625891483389567152337401500872267169328075509296909300911311595816502842022524098639976883565859729264505725525326775250176737881356976187251490680071944266928430220840824153991366848098143258407610429423901013945690052394467384999989310174339779901945085500402521617375657849752481652453536905317222428411567264554442937749576667637916543571516535968769128928529427565366997662333614064108756021360272549752217999940690941740555284799186680044992454778158240253635082148408133210426431790882793089366288513259752734967844090979123934187284229400901292528843961773813047896028732671409868530047064844695147525274402685146151045357468308572474170374480268910138286120858250017019785240051531895770467911118429487765031621253223135797964127208213220345914630766104560878104437148842108976193552295947454919238862743003240445885165974757922768761016734791299396967008414585758482361721313114036246954318319845750298920984145770979247519607133245232479661157783639072454491474332210285080669102911899049130237562801356640329112316339218507313735844585529104260824976896921695347609038366677843253490792118919510421951345374666742429076287699853018338307641116902497114531849266552062656111610861214387367843265965045376868259667413468572666125408198265890335847478802199138345049013469788586412601759424453392916849511455618826624907805838117615100615387866441092304460812763556519890935106622290093361790589286398004061063936505242455744504209627421105042287452726698066354655068019600665560791868738151189817985966659770290589868556961430213392353762163844898394859985578770313612350383374281355803295512020330045676619747279594769970879588261449093927433215581418759781460802461082994871213767932616665082996484646607541492655631146468992895949513354680227579978516773542078253104760175681590628895806803914410850026215525156283159281763339049813056274475812155388507490309634044667007049979841025651909051982617190422668194950511122397423114498410364042719511707492024682199446691099839142882417050389470764831637793077605456948857033342610627618041214804758708156723887252407735519655620782658758296227850127526042611446951006961898265599167787493355879426432872120284454257769132418463203064835528004275935040001307650040660937466895633370810864192535975556934630992184823358903631012909885341050580604314163184398503150012162241172552033324812861430197216094691076204036146138881404942127354148686389845748317592326226574832674638923042779266748434022474843618018821930874354730717964602996776517457722835263100418002682631146371649164682418777795045463853660317383272829598009697664468045970467907775712463598285594979608723972583496952842890313071101189673390102037903485979772851568896891264339317335145610781149023799808318739534299605469795030054673256290485782661014859578837395177817104183219510527355751915992042984524891889249350511509470919654736106281742378695346698319070586438435021610817172528938958166780836054208420805400532919328048606201778156352138164513207884375538431252486485598411560144329228851813466034694407506232073923128335928395328768268137060125883216886865889395502464872818738100138021545692205376407207774931640286929410280496987057676333757638209752541693547294223461814754489299992225348162415440808894537968506138240123829305936495664696781770860065414961376320360937108820414487391888827548187746080552595688063353555332400746417485292502989156031114345732294104807219041730063049929112862622020534348065558842543379277266454985751788861550464198236960164243565873165396176349478071070975159359107798666925611069148348902478012099609116698293912062538072950256256975304447620359651457879685142014935817816328996820862835237398485042770857117364363059084555349746562797178163559189959174117530960694361412443404593832599312002822010388868158105305573667422183202976400241056949912088984306250211144609854416616540488122604219633870971134162356327997026771796438843924750324002230719032787689071918054915844664358626992907069164342001858875451487586042800357951601443576055285730123146082025480177332267433134953049234572731675798127816518094118197799119969275940164727750001135924577984265491495740764212440280939748067763040181634970078810820755300518053991808524231637391143247662744525239584764154188400049257402232045153075882294093761727612329264334275302384871509501360830852984992044248905693673695275542708191828182103580023535010821519976089238692422473965709787171936154782377150139347030617026389286174689552564818749930860654715313519146481485464350793636377710547572763576571575435848393870445468550642816228933683399967981814416075205361725104945392379111863354703943888832150722075610382588099261109807377093722016435166713875936363209275276623653401422431527770416472968637641514250827660113751806386878781027566076033924101499389809483859280374410329804848088799172856726994785810804029422351126017318719089866231089919940117118336169075405128069100742459470084928941718134413779472161651583972624037151309522699858550153726324251534546358735819338269888448352434756636282456908273860619739635999527861924117463898224993157233670470721382511370667507257447310673714285886790179891624849190771872216193560684295507228840314814841430555724186647439454168136575378018417356007703546356315245985511745223284026152814270463141195448760663036795266591072329398719077183475409615785807610748331448962829830657975215285686443819345839888051639451361789383629350420443677019232528378946911860474532015171152516874191011026171357553774828687967150014260442558104867760494763094221937903513559043825482424671268359827200795603520069556614918248297241241533302947516107555358196686848011883163475743117238063029312474850704065730443986002936300713201082087281523644614068154716893989560820649996938240431858356840889332287000503579608867097477608178831656753281326632229931123327840136475575944841611682333039072274542889870215570899777126375199739094718464305512900581820518953434331427652307353264577313571676644124713836960167737791545222014095286829861776020703234515797957282207084432401240499816460497248771449317699925297130705500261501271878308871293867900023782849268018002343905092963043209619418458787478289901143559034678332386338195859853133412867004971617005445429513098298362113881540418316987290435497310223761386735198107699134645208324924778283735676465634141071612318170171483548109839604428993915097825174648563191644668647466783059744676250403731753115623554880928165299986537977809454694967966301224911411952145668788043072871694108321997375943344599288157873668221943290087701732498844128946997088758667783268882863800919528742459993535362088306482208257694337261371952352748879554510384442986003087873132701853210980460172251524721569182856642676907624316721403861990626867216651048012045361235729414465630402240891915845392708667159225850447748466406498104968081054041230583474603765900999429352090538843085476540304201502062510107862804038007796799567496117149246358709150528446529955219030519619841536643293983984452145843868880708373555275932127288710875003952007812965862316398862497260391467930552096190825037149610231528735764347504361215271897685858929093683097443734591485046407778770390468237395166298381623734843104627938330492057308904514564456591017435137902324627051470559442540556299052603354922393114620050135058637531421633880660483675359053255116808879932610105500816553684872401728524356616265031802519391001887738388519803500243085332429785189382668400750808869017344643614483827165019068943273726198290043772009311411835222621967160656472693721204227509379638304292322869568267536762249692977854356797941436883144254330663998994371044751337261305149631971250590673297825054389685059286391397725312106204037711081821996847484628621144996926815062099918736856662193082780175895592900119262895351603975456768930781334404960605179089370786092320885087701842846344030388317332497391659157491364015096745838855049830723790770381179854721177129010433973841457768711022406843301703737750088850531081603651931073464909906340407892126837824255460396215737182180834948061789694393452188518238630052652779475023136577973072111575294185973130438737318226239003457357149547186606572431002480898447621642746148164907618615424008086311374946266350107328988018760429804074829477725047111043021656492682776300860054016389083687617852605742619485823450547433028807270814583553423278344815179461260523493567723468089869224474057137741562091518510190874992266663171606981105962674224668827747795385361426112233682217733483681909878813447051281207852054458281224045321568779574159331965292558117143776378876265749155159031466084959745644677380605165956836499719409153087327748191069610366516787473196550028509768808416379278702958314883846041023343910895923206603733713608438703431136265327799072978468950295377023010194589558518293053510477107816596152785652468810583736448849819876748228035979764479948605844527294298013114113030017529678036180716169770115623947713546594200548657737191864081683800997477869577464676826591761746881080691039371840605516834893091939720160227502369749947062475369969202776797164155057122740836030070814061151917229445203600804899618243415073002782898142838237773538693068018488998942910413670550180823623593393856295987650312834146684569091640076094966014274851796794249186651280141763596137270589769215778394385043252842060078681908399677844278788472879191811170787586202938486767568514520989391357259939040057243624708821753775296856145478657259602072172362046069054318451409064466853226868539227264828748870172254087315360936006214820627225454424063505896283023235430454530947370431568271555020557850515157171131797091255162238636139952231671901304919055668887225423260525291517619556556713319035357487619988098463507023242784969599295417820872874394157219265458163457923105858980176827614100779084670958674626138740633469577946322247425126365331306786864725815353209460263765460936029946745331850961885023730486235316446226066158398856732696629343876312261613463999866681860578820191291666079353811939596721083728604545249437858824719065858305158919205088077572856793685636864884726801471612837549275414466013735022562894243207485959064136544667463636845719847668508632569115803006329925337147351372869460064372431235680248700893032499610716716795330168166599418108643914387231338975082135354117399711806159943822291424633117937651444249691148374958307963195685370897230335568065427924491491232331213446552464241086802825334095695357530970116036246309984109527447717092745367175171587012681715683306906344462905208873411882520398790037546135496735642872408950476974501903163821954935168370126705986431756653652938406607537944337878224105527019759168160111732495637033566146765057002884014068472295953159522926943603644025533698143388055952010267808946003815488864156571550449433678448155216457558647825617406214679901663948088129488340603002101690654542018513888899313919686522414082586175236020975342971981846936971368206111051112817771128463238456173046185533887738795656777245575049957570535431105679794855189261759900695192763473478773541471642776725167695492542712285157421350337436763972540179446273832439646088335332972186087925938411874805338217413839659079916584126259605009134095127459963712199907294205939248446825974120318487628011864505088184669154239653106137795453594891696349051230909959126061763238256224525491543020272083143307468816938563992676928971560224624650679558200837972217010908139227440404465660713804571708948646816571836089637353214512748582261727537032576493480846698775598886165918023198225736975231742864021486651310925611265332643427061228507343843892348719306953724398828369449664079732204249452896901231230981933935480337671063576813252882918032194208228163883280180792051049412494842322770525302710401735713332824293528883048483091960533779093959705804935732059309951657055803095307688409992789800933303971887302065756764469020135220364113056867971003750307957203426615743880753147118986139218591650633278474044675203258774886175336015592021016579689097677968397705598933133833860150188804230848143653895110410322532677927472761889246906896606077582447535458549407051590212922112978623258368004571305774116312377748523075676456884483208083593814071279018934324163805029987485406722172459072763712143886256405531403587304931323890849606402455812956008516233402776254870428697945027313660829171695390277500689162796463505222763708544858261027482062558903976607516665820491742983362211721081180579816638065374572995588405791547297552280792508211112269820354906667677542604133963558132076394442009411029930472817329748299418473503256559620668098909622084616402529844837600863143451336744858810351852146460586274041331503017458808801609033740513999995871145564144486371147461099687060730839946140806474472081905080800174350219036972141634940867530927837215507030019980066274081720794456123783654973911916861739673198958907226820798586664066773109680655406626039624284372716855420465949337853803863040929479272004786785496742612718690165830756803819411139728235094408499272060099160780565416312171290202546148264051078431222120180585314448928361427272078534152092656661742130198742706225462704312226949176471494367377168121999341526735311170806528928204127698658359182203140907491100528729413074995600470072894277730868807016525536029301552384398996764216498588772132514645593930085349741676151122958485409499750635096500182972178318369699504112388796348436618326306752551465065882658780423781615527101155734905050964735658198168276615530404610143296947602384210207974064899525221102518571695539735296894046160644492350342284014906209808178989530721140757027572308578853204810206003697208537368214415984115322324441636884802894082413159796744502403397209052195821965362249741308423101896324958959211264359757931208027467971765610054674006152877291030305235901892846560264265554257349715842553796290818769881064488607029474584153880080707116726204118224424695630743558632386525999926867131866441110568011177765087899754096075970860611055068207547127564240517334576895539875955014548561800127860873894726767832677483385000150715754159703580512442410546656339488943204684823628604899720109088945738290026280748647904513712410912301573117239889715812554285203903244616857557059668889419429545722876050292160041570214619979058177788755556212765788133323567869352760928458892427124867909065535114524442948298265331158361131832821935166197731144846042757212627944640030300484199838712799948290821335014695992039318518277044311927905592796159915012937008012317512449558560376194944672660444673892222516436345839171997469788937248485178460965036426670670403907189585642606582297643874901777104226551007315528919675707971993520205932615306481333237546771892713227787311228772443464342758453866070003150075374769667089517345445045461168446527754227673524145915876430995412209469886920910792723591092529024281193584488491414335427784217680878153332424146267631203010798646289817432889711347208847804663233310186256519354119387750111347721364109129358816736652958492288552630040881529638983263170131363403605022535462019956856704613620563161714145608908437432069837504032944685628146730796170787406668867131264849663930513128291921494033303435533783269912372735021960892714641328256540873941386504772361804751117443395606227645333289797207444841798047779177232389777904256116460225413777804014204410029038887470759478812141699327266777870365182960009735987984300912670013355945739024082359804816471981685978385822649732601953563699023187021045717964936051893325018373160134110957272168534913493115239832106108655637925082373537856049372284339493280445504382352154632862282542900255558606012453899836305693789344039054139791055435465735110573556140161355694593884523638901233595939640942544333994551270449782217316035522930228643544812355695156288908073996899428185155874342235290916591121007754443828149751657804933380218701004277124685285277760360010621742546153390754109577469725307221315935559019606035511236223166128702415210783535825497834343870028746385268310210473979150816973986944324278324697758690261146548760160361053524226147109072091238696695534899087476081910632360355889809913831060627363127251375388281777492236742557191326823507398095558142479776502922687120630020201882020783989647228976701874994958323840456691689037757942876309443167318537803772669351537936399785134915154933556792829436820168371080592532780979374406731761965402141575499635659202935527907098982082870042563862571450984220135548038966840147592326924560873406280810083879079791093477808761868855351293371788608443731010654245511483338023843673707816734730291592594688861073359446076501744739974627849973561888610797576363469710117329175646904248509096552750743697445652968954599155672690730235659403001996650748930930638244949118265637909339674025878712685123809423686292915249210259882586445964361221756632981671843062852034274006224734842668371496946860461171738089390498524279937491081004932192836646242609124299219579353521329998973916189724659092734079074460865415207687437022279672624143787575829816279136450415146374415686742859915670250137221496217034540452118327420039777790059347515776423399666666155474633839263568508465227408165458283053181921098802719396680636135248401721244850984313868607883009409438643925456949382225505340953729744055306326191653048771758734488478269767841605583990395792083423322333944002799630787937444597023849860606850077335989171096820679409764748071097349849363755952639100270626238606379320217153121095126673023680760171039529240492485444263757892163295194557666478365760343934857189194758099188507354096047534017994916688622218269637036423691533859563834955938354787190303749021004962469755677814315290985257806279007087967803086790516078535634631005819571860575827933225187876235170455491799457827701376406928840187723581236186490576814035979479716168268563472119695467929986423928109962007636525007467481743158406995843803383636927101050476861738754615671160034983390643677678328617552448123016949994513134552373987255799228702385431449723423223779495129649819282452182591243825495518274326718432666841841162607045132209243467604040583982446219597668921924445669533814756095826429574856157509819280751003764245821966612228290470037405852526015060629962129945298683272966170066244246299873782366249500909426787612880213178922335877766809792991052794618593057751922901781059301136732436441997419139656567829125555241624654433283698968786351320348970016684783637523656578808610483910250236480173286815373445814654264161491628119920278760217778126129582654070200852761303301395395775457375228090121962824248598602981732179397487355001279986153177927618417259476790081488737593266593365558192193573308397490327415218360853454125418465803102880722237101037661922614665670611465862164991107673502662824788202619158196730546518471675966563837186279997057633602842337336221931621170859665676710193323786955683256041017234400676706055069261727843205240484025203031614277789748832918715893720252355760748471450312849470346016526325105573034959134845451279977475022886878230789972882670308377911847715722095737920927600381825276160912538806527674770935933288917694528727830831454016685844981209227553443203086245263423178715770335699456206614690127217193284970230595211430944523140904381571785142761528622246347533434379644072898992167893208806447863882036662820704767448514684272626721113899985864911919179772588067254950129629230777487275704528924741950878569989129520960150931835635371236119670509122985146683436062166230378725456804089977400551033949364312823272440399757355275081977440799023956801863516885704334638537040468128269723805115264055664261534568630723441295393027772883006517778246573921755249883625528776384269780392498258404119605640853451496075554667700024851274610121133740334275853551548597998334919991802766543124515555119647022882380171997242099427245954781996859701949126133735172549251366985751085820915724058653493672406794615869562815303387194404674810867469784864595213128362114703047583066560444134149542634470051651244834961493108987166131803192352827012660166385195021673161365807019294175204518857560697530203909997460573707245262518298325183241009758002134287112651609240537920935752418259321891808335296194278018818317845110522026887530135009041607589984102002852043630549749420189902033448514817465390389428384515587012402671014906201816500146600193894885629661085290928523336006811319680518823299522893086627317985999372258797077756164767423772634445556743805636170174751839172829961080286607300548200964121961943309021985627817627175688780944094120711730075197648220876601860123653098454056364882249815769076445369889818425202590008886153372419694297246754495418650553863381105972950583982439400737107795452771851180118298501075178595193901837806126522252918881212812882394056628818671361127615870042473006489989356400474765331361463989178604064034810437547779064623437996389731225554416568652071011591947328690456882367443017465787292848384093072483314166971143275727949403370150025386969355202226579078771335292721941780449031865326822015181319591041424360691716082204312409591249282579160469773218473656982066503725442785572317573723763151093748799364701250053334239719299408166144137757109432566622549576091273697007269043467752503934929898795818760719997025813964292176813931939934764128054338316876491907943327548250679992298897809527060287689656607278133462730514236781883107964652707050200664852807452261652618390868175441768613852202938770184074587098185788184865941265816558094817078175846473061990247505147600599322535710828520811573240390602957100558839728704177523129782457765962842140058864323965101789486783437932704942343752694484750991744363383557600410621913733140648735000300895944446108880524363279175358882852012497518015067332580590971777146001223978611689784686852492766645528858673155351760804110345218947574406807970582716419304023387686874967471413485941756762754385124816135923184368198898575484522969266989945824213296711118609601975817923234443653855168654683312592419722142433598644530869990409572682834491325473210868456022687570558663179616310893344701152787330343168225666771843358121463240335851667754793160031115798284202689994965655882461605873689935923020353174389776408285451022784792415207659178010107451512099813138987262397725554245101565866038774647836581045550663410749379929558907064875600077320342199814911948792309677203640927183696757457410921645577818257823728346640150883282017747601952933064973435109618915305103991307778761231411127025547945223688163161778623043570322578047171653163755562491137962505302728382719033203955066109699907936227880988826164493392345035621869556962030437510421996181929203596190730253350586237065503608402373285277163574168614180034717508343866452778679107876272480360381573731552306477459513887513085145631319486398839076723973908423263987062716844221898013751066168671365185940727854325082918284606688464213584124036163232171828266820726252279080000374262761042856042646255950299226617309910560723283440820305863560139020743204912943152730807934987155302175422574260357052030417576117077275410260491315906929992728600369555639336996771770974581149849719035993980005615900130091466875161477786257227325455334964765323757626322869990187622037705464871812254277260873233415816153305785902365304880927267536958280189882890550746609085694791904330787972129443192085856474772012650503999670086502228967960885811260142136350906738304308919858495763087102134834322622121073183951843726551941958636683937781270677534208459169172475299274385605194007635853544363153876802497994335852494987760181563853383221859860197610611040792761110474196720577120993621175104289756940703122444237607063387136286278588951565545950807329380125093050053678880073781440819162529897023776371695515300803092717235818735256927662654151475803784986255931181947568393658957458035165328964241786323812054796007959148327762887181496434030923079307377093882268302653857639163682687580142034847903988448045092913545547371981859592066668506811085144164295981588433409683465260662486039087299127715212074310561315411598542515881808601578822499668594217773138967588421791946541008428944056267220059661647666575557580557294810489970314437193448195775285010139656890225472346610116650362901815192768701954902808548847781766811151432385844567639265917643645162096901917767007326040587918416118285636796310538701755246729728297619410399604901528393164157474031567202037260174129128267270300658962926429361898123105909491798332184491870888423843523604095952334434384990494663108232511313307170545733720994741656916405972184335307154968423027514471485906017023747752190641884498057203867802958640589990488300568950629576219300851049989896289162997266395240785257603278534940402159912440453103637076319405880394600485563830597350339955340073019727193454987294179047300721540000555942469262953713281098091468239016239300436016735743930640564715310591757893484501971121624023837827407311315467170316837301142572151388889844544021819918843561889560843621154030388669063408830190706434236063607404742826211959378507867176449497453047181142944444587483353684575442743767056488067332427152669321608810498649094187552989659221776878405996369560018303989158832229576136144471132436316197247576108898265679480480599598407580849897179721387484807995351056008794803985914932898551276760032345332980370977033301003845107430037316191003488633894637215305412128015071927395115693071003528329069015858943754989397096862067239443633808280429628529459734928700896004803413184791228337500050293404784715970275058728458572391524303636885380318182401041732657085845518559038449790447194738694205404818356228986704357564135839420030548507182983262400219572629502282506702085232030820196165550818319019427418075611703959809941252628790252073438266174511736995503323009018521862535148909569895831601897661604510448156210805757268727426627048779735176614775232151970821472404534878702301022935820262040175533338232048090405892179306742311181114613159648377336528096731814228375578909207048631510253041486117880522127078243198612616925035815197536540369265372605297078814365385700504319779383214783415184474758318708842574789169503456517562901336940914346610361653135140073630352322896243747257061609466300377591233603269912280193047519758996361281488231912382563511913362574288683493747018888386535013972440284177597559469751724865617579720482915935108356858364198223660343562940927557970616746605052980689630403263565650089629865671093011010340823557942289952796337901830831627695138455817102247591429774738556914698362678076077523095420510962554599936290657403647151503488355131330241930515672200909006499283509658245641079841487186752680679540331984853387885253539391572517652668738440743996524942228735993522183361772565908085638535672281554169041681682946633915776389151859133361930061547565856349900438635314771196726044911364120433896358184888764030337656713383947059141205249823751968260228929446547904633224313406451676088294355191531552916359680079265098832836956151159038344595598630363327141029558578901143457871494389819003534659040121509960688962128411718985546454077013431343442466521014696269724083662145088691406741275865649619415811718625725976707631424702011033295693147690317098269106776454731484103380314514938500824689775379714605686145203343157928766088277358616256001978588616293637491478923388553776130881247578536426646543625392743932413034703256208387957999905778195560588651717268606796211462704192678364725323830204535517985733507248632798452872295722271142388622884580091791373437548994227985072311340336136790288819275558725175430018803427216052740442932159561045849945621519980464358590195947218778863185437849210684467105653397389057648851059278381691517386283571400246644283266652622350063918010760885142516680251165916845134885548123205881197458904773984543682721313556794985000055597267209699100956832184740721306485652573268733121721286525084378269805046015352419685987762761272974900923935483040286477249932428923342499664748293606392661807012906381008354954326253735990535901167730884876389732314009579861889813789570254167300710613501615032648093834434458166696295799892982039423193163269309179439987605080421826789737816277929341958246414469358415156728456643032059467335216310370953058899635906952402111694252545135187952521129630364503389162556350348287554909800028168397290396658686444901076331819028279078570292674042512538238350015259294182567535515314043517248689479685121687443256966176314733093511948251573148623488707177697803240423967973119530167182196689884310238861705785152357647390721371912768953854863970026752821216136127370587952980923983072386102392830363569643057773487968933779349159016475725301005619640145944844741571232345183373044029285323189420103549489051925528504224116150893271084781513828342652434587191373132358184742233268263066520453933951023541952454305838961746942753501100013840453815283955098112830179476246839124623508857144723904393571646468921346042412952663418541942164003915856305103330991003132296578377601626233748450424623354024235237601623535046331369009002330252073229995271777346415229685428402755851603000619354612725168574631531205999532186343482177891013471983321475435621440040225577910981479292355883524601982556004288777597525048474780940829832795827327824809103226037060788631634879695613198888032520763345893583250397727853678682842838566767115973459063588112129805295324707674417177593861776098857468579686525637597189432509682509527201227158714590819779052879790062785509632087107385485438775386757137738105078123317992924493786809658906459071225453894158060510744859238536080652577145917563484780056581583134301313654478355941292897471387309773765985610884796079678157155772107644581688366480873830128390298459284447802028139633587271433211678873876289472363061432000399258236275719226397489352795563447000618742940213626506352931651166145449326183710383557883358779753904393623206020732352222058966775353891927465973692699434165165902136786238022484142775084428869992303040229043426831073449678853966279073056342206506429083043607999177537821576139055694941197973812696842862268311236055425271649155827476001177344719312286492131915675690728903290327605530292423123736079881499777060181623140181643742595664318485832430125652132988580371081631759542342298660858862785909351588684888736112864306321767854587207237338561315933700434193957435530753254655882794661311057701082383929110499680148019764184945442759474326479234705820516330590471403538222696956782554618869936663655925345407640297305695693875969549917242240443135382963273053931674355506725234701050973033615910925446270864888708046536306160974168701976192731424675613269790889869201256271407253983220901971039041083032753350870420366081054372872401812834846699647426417125519513714594325047532461644125183692868967386474432429381515424421474926334535654065618171560277535603751528570714691409919537840687270093479684075349068142865621195723143935683509710901405970245204392057854788786253552911355196952496181538105274650180572296267119445837569699623379217205445224587106511355540507513818484841114206112039225727254659930083800646054999987402006285698232816867920328169465265326219895522322498959035813466160687290428009805801338120362645309626640330354999063224144376180435126800975929884792094653237402019032123088418882427584887042936370247349822714434906068068853971929967831595655830266040940329708219769767500074885906569933402459733489325544074635976203049457754228303503402079980693994397706329849246502895033280217432719836082059986851388829807626783959189470046612312574454889747438244390823720776729006491265183561164976314389907272361686007308122160526586459893509809825308311183751958709723933245287534493644630850253651928423068020967131150122051137248040347670328805683194729694184565264106281481712961897786463439797408180654721698339377272489350779324236718548361928616466818530626839719156261662929270115830890049608859035077192165457852772204022647416394425759219599289431940547520432262563863500100374998364677515773332949621745015938795799655947786798378314854447589426187978960315511903964053468339407180744247840288707582039515028778854993858069425296901869872348950857060854564688189156935698261462941237815185317416014723370399783634073869041112708134703050959894171818052809292308694458012985476148491996615123344922666074159887743415962569322905140613354708544764131999535985238955319900190885711923038666395590504688544365664237184512692923833048802275748134881089974709548454381936101125110076733671560387868178966893208688811337551768761174267956336353571271531233709841662763842407869630004535491902208136043320860827857160847236514202981301524548261303311204938940867014526623321151001859037721412582725540987537888992662294890603004486686944678519062415175587077403138066823178247582030877970622799996595830211924266602100030124137178139311542103525849498021999379642311395547064309313265978845907767092570517870509680909030736639320248741474789920450153754720932614852240392953950253313223943139878355206683946354736224805046713379788874369711330543437902110604744430447011895212963893522335553797145231664682613530099056379865044007024724121471458084421984674979437479547423744300472988169447821342491804497810705721324651413825129356830279949381384354545099496448438734800409982303382191934489108948792323698544735444380055134293108841847436933015669994480811340851845755225195022390414078246125520732239138139441759287562452480506990324203694302770560669969945559932517478452423816576209891946997087435037948790796666406473538096736894021410668904099417708492303966267421493941500716882489551903019836007027007998731957919108712632357345961446640607032837083015491335700253257806832454698127894608189380698824288489986025380018520878033386482025039503299043013673425509863502946820730518302406186047415979204260391162087147719525697592402181297256570028586273753655402788442862932770319925219186853958789064999765509694734359903736601720131448939080676993690318435880354766378217884129119645003282433622000829421409832765339504265010095456073112494241089796404018250731632644713488428095163190343650220074836289482175393295370053355106504425202381608404854238167941549742630506403710595358604211839332683696151567889581726299108757195792277255755965576008955906194260607205760062217625510561021532980005523202119850581340618643507485580922252022725242051899233370482087898580260129297690555831133750304499571681833855943809846361302018793541150931328084490032739060122589005659414182114673051976246493090362171453647888494017536668489863413639396669282702066332822961728026935841425801939263758439662536938440043973367351288658312895986190119784180488764166077113815434342641590334764193874915425103003798857964562851058254581425789076608228541710515358679868786466163602423178333996013704026326004489772812345567914418251713619239029000114427369264381030958440784420394326181851962836304549341637148802550566575399861727422282525609978630165589152297314428576703936071543228553493463218394572341497428642324069375583212780121988341362566834560886218853524833489209250494326577977419264420799173911764379392549056073361027761385996619265726147732359499109807567944920119277788081634996426319818959699534801679072499848393130028083751285880920240145676884133103530580755988858065280737400430408477564165500080128040029868571020264647058664448869870933548145690924614716020209400445580467635714098700370091199206756934691420338578689131779665954804718860278125411638197394030400516327596483093436746100122321106476612883888481418001609313436535347648370039426409743693128741268457887722317440028228543630619005652323353486755459318564070104789848984908897176645182421680084978892953194360971870213939533722852889431755037876422350738650788730372873018205714371665960445293617143117753916841916629384792508948158970964141723766813061249688042643014767335511276026634191246746909288647097747629311424541710576272573672430739826699344971729630215252069695481136110988463863042062436064226196470908987003601296795224543667793598777176203315569030840163605433721630492169605473828404199192091900163315393449745726720189281102999571434108579107529646187576558891722732378836083529283847894651564576734993690697161673362981831000296504133174250639867379786234658684570986051067840318181166581085846733546039484037953436692820453094391228704365070285059297644389007781192619230029829705581553343867826851238432564931044535149369654584073698714487696284637801263043729670309297237298615759335789324735815310312149967461370655131977970421082891958065800665685737025669983313058142744249292200407693328921769144068194020203308522337369299228678421150965729363858396480321560621947370066750622094065657390714308439736412036823147938310305024477772998726307330336176259011030344656777917072910832751711760986908172109177818325933056112988509911101215876549394858663780630276777036433207074116601006113799448833284922704777929186636662566463991646350728968006655020453339442865120805058988334181844203906818972956946406346116558840699505719020124430648675804528727634795563554703319727078192758239503230134045531223881757556739608418458808632149426219898226393872586324727676645393833457210727849452791361158486912996755503095553084025201140909387603161564469490395011433067637231378101876825194591580532560811073040546757902940123477245089911444822834282846047594471248171379856576437293230667632091467148925752825302494437454596392746918386617004911412948540538259674624332273995334793609704578589490912140591687253387073901541255213772584340919985966082945686329479158027696608883436970374328997906326450759552112851070466114886118088377268745444115639106671881844307842076132990657219773223526554210621215334269408837059469599203427672173514208092364124541308482748587412497426902660417039899115752150112373604332254122819735682252346130223704911446189599467041835960309612390082846584509095556911562506298772346027628816501177340918610101242885601996586931833388663533107455013033796496061807445465461927381832025611360877190146518712436794587852496746016161230034452527244571295209233699357797875074194068352491484644071633873962101681119254242969627670732868671664427319154128202794171908756135096278542274991272714295046141305753205764245543194534498058376972451881418796804299397100120004230231779305323386827990772146438940661719543102303501222883200150438800740490143906530235429771180079577586863782714298438290549863229907642033273326257775371910885003449480591764365886928106789046379178924373239137338068680468222013266667669545583364951614685951089816731605009946350897180621837934516964364469061037254682775122790295935844380015638334726474268472498227786649172088090106716518522165056987559811365361075097458198074033679977379325182893502400309004965857323110306221400941521003481995948899435554174265314316866457887943957881791718351507181532397289757092780834862875714527552686718666867926166311888910355260063129810610252944279910576254997678633278246816823860743042679588404163157900923360962139879733254420793125884121056643219629633936933657875521351314671499075127864418653071479613536428887019710758261111197176119378809823775593480166355109310205919275943871168963007018854816515787593445868478181960869611361374794511805047147767920919946965741364897266146595830490740515364697228810022079966484555013980869745450413139211576185648325216617162143995138721241944834597166377263031409387431870972951088635891586496528627058678536125227715711992269450317081999611519666003866729417160765074062539949569814283547374958701594102504231084897621882287948858031864249493095038732682709914031679316119801378761346981539186283002913586258234954884456705497173661378279700010013767951482709756154499742927285153360208625272104068479138251837667941627016192099055192451806530538026242102690422186417142097800089738205142621373764003301618243087765447113571419077481577758084459383450566463220007745648803510520348220348556309879092319274426533538899974805341766425776885127285220472528192250678045621143124978170433274399879333241350559208015635008811595322365066932412992084843142579294248395264963622026647767588007443309757791153138263939226511039127112054953784142712332698778996003560043123697714648775039230618633679767100339797917844307703706225638226303908399465884043895209250455090349963980376618249067372085093688588277734968013481735059193990959931069753350594297475973600553880401444002380865376624378782550649568067860040080508355289379859250889794672442511599865462186172986172621855579246167371485505454080252496076533238355609826011677030359375798399363315056910633353913634870499386475056714151844952640117830047027227924171335082868597467329762421828090186361227582918530068253148806530283369116759295349183877579743612383382771544735158272777144627146593905567968463736152986778790829304033328752277266016390900717166736201695259929511449823930481741605597980061142216537992499422235999318268008893706451369046154333872918729120564650107563058091512031419903234969077889448797654874699162157143544915058196652146420885299151439759488267769924585514465343761970151905471827842738744226925280092573440857499369012902006557851376315510330370705354311161298541447317367778749037687013701276930099730275404325987888050771418673432548025220335676373026235793583417736134411073015281651192487379653191133299410988625120971316992783204597769782192896045117190406555270675451342551754176335167123173291838097684094528378227613671456633943086945154394905173881106221137376903884892928589688891274104570545365438087862752944558540662185434445341187553077361540654993319732385816991805098096148775851204996691476490464095396503774484597407449670110255676450286873610245072736961345545964408938644086033060263150024282408469437849522265185428796541760679992532453785699335533532028135648368242067975705139658818374020140174091136971156757369905132455518323818920174246934307295656010070295067462575742815017782120072377314122867849575582913922858596167127751926499984564638534744524739984352635549352342811163638544681569125612586417911927271109434100159168104868354966840646156125245207939397181094647611616154049288769226724490416508185979560023507410063964441675772141160371888978868119752819882039272404415809135575003102346314597091476424288976110921090153446514161130838176672652423233687755107331767093409879998469407773423079540014821222217401059814058522998386253771077492073783345056916258562959680715902873936286807003352412278783930241385711683224459554734004579936074617941167911865052992850495247962183014980482662210128315795313145369299470340823977681429030202417138158705659333881556599238363643576851330868509152615453819080956879507194966843737713511571671895493707428204299665602541335189403300066445184111237487603649114440757375815172860854763705801566323020887279922213650341224112171349554551128360259270548980287457142863599444920035634163900419388275859132341378119993096932780394096601381721829048459813994940044197760737791271048203032087151562974223216568760903801501313228245144579842211439945642605288309990238387748546449621295887582934137233727271935989818211189678942662443926934989094423048864826285408118964422774103134347153134395463184004237971642212569550708529716170778130655316133617664869783653111959491682834896693891217060226591125591572653510536098472378056005464302635967503828778113212687018264921988621320543745256367850038014519380607790177999385010135972239316663268475876490014079372512619563593547511332889654139079579372293548879254883296789306976577046319356229131741229181977000424432102920841094700735852234827590036494788119052459166841142636555202603777178562021681215028216386430237275840911844692702620871028878407125073908215976767878396874338896861883656669905224360912480566419580379987409674580414470004441159010499544481245513340412672341400351666274458451959626444655594383983219398938094007276260868091635382001064620041846539688063159526381472158035011487215736235081033440987006515089292227057971647271879896163502189747417978593299453540711821238246828098714123412718335816713638729403932929990380264596538162017347892307526081252337879763182956033636389033154712001447479678094385809980229604325994169440354245518333791592293447169298385095243614378788210425259407676228810978153647486774535261980030851707837065317777821733981445750554251948197148826435998200005053743659531469503038532589199669804933345550196924228486040611573479291322293329728043790093714009169508661768209716448289841461176165851200239232242940277437186059037712524356056088508625727024749002861081149428811126368675488681687311518470613646435368745400531100318630711147655556650522503343835097063911816380819990577745996876996041516672310123608786120126441274088298021673383061697924412979377090912622087234476097918774986929519849141648275174681410129988270254370580446138756266756651551297902753896931244114744676098567355037859973316839569198165115630515905460673550478779285107597158307047990245104173691832865421407239350652796888605799064023295443954095920008263274645828341893156830965332976942071709272687163509479431693356027849336411871025197629356182805979523658100569421929331749552171642720514535870151476806028638366848564944996912377622389524884720324676097504978533571453380777638208735616939492610694653918019183866553190292533632749834532239499484791260878459378439274570709080940644258559291171994587307160260346390561538277070912480168808200586056008418135090230414793434318548301589752582807547443920025316906463471599684367261693574933818412447036796329471181258979038022435805009623374094706740449707212855568091533749391983089274742740818318001426701623673422517347471971596526795296630102061125741269761973692487872798192749753360436897337763118544985981117941676062742769114910895959829235489227041322123547609631995904447316787194732075757625570596907571060383236454393204584274428780981822696162289769071468370096967748087133949057468166805695180085041366086291596829309478596969390861486933759507974025271052976416204038026904732215905711322213808837496442779594460800903375708362639935497398756196401059460525137889079673093247316967327970550409643461273548157320209856208832258823000321828996053874217384967515967208672832134334957758818398459752809575492112053166977512852581932429965064858530455250189247165426373044384095836546447736607145887821648346843382885850848956898898644323836847297553817211060586328031702789177210739547445017685020404209929659480411148977508560113887687358291679129563922294551915466326328915423541090180827628096471102655882523310545193048840042765546587442444784319709111967709779276653163745268612069899968028871136168699237470437973865935880066205620539522230157087170214523479253822932184216903668057501492317668621257294536118616259393998799930453053625538502718619402714026888251812927535413183827816262821772149664414313337567990877149470017933346474673068745362178594086721101240812931195181282241524039669996889953008394144372710078732704869453385828727376277498344117828134469347653095551484733812080866844000551927460533900756838984299437540755751729194541912067984996808929978207318052474075843439332549947145091160585185555119434583992836487691650314426237748456108794013578989531025972523257691365945866690834686118332030368814691634610217302417652096221752757016065659539080929924376161926423556793702312182401933788934442281872379561352431893132718863024809220788606879327169244863437563913277029546399781994858712958527827788683799996053736898974547455074236481726194262109284100201269441458161709390589577087447846805501957216248908219791534140097805394340774728009063324843128460156652159869447995468469131772723068941034429796856797245665484019820118830004766389127155896424424854434545316148956125205477371503839606199019401804240018821141756167320767335517535293934649455716348792960147394084937151318874090066868848008002732932849844896888549269621190852490036380377841619587646838921880304102419600044938850694237496474514509991970100953784972913198664847356071921266106966029279735295793708703140294504294159538992591010325692327490171604783030786358139517883612227068714154553685621735889612981836186365513849473673409392936950187815296920301296103110743644573082781505434542408124249562093825877224539606154317373553109417319099235134002789786516658548619888857784887397844199669551293054518116861172169615821677992292874326070613955604713336558189619108306489171466806207925797057938403573480394494554112878165556979098264559265139497812184916878086768974684940136795521681950555510002698713908217506410007911968739211948837517025531255083024192210333687725172451860257556614457769881552660944820647025847701226757179651239254036952727000918542188404935373987828804746053942596981103978192718850599079757089311804573037204095278310707750727535493516370775362680576173986677476988193249009277252862163687370435063312275692938498386425859937668925372554543277880587838237067883905850901648864075682927935413554268625529681098354798334592385525780069015990400681457131430150861633724475182808083440140900676269121697643218607687951853485771836969547283464135140091550747630213712875727873232184123735005224072104907175667472246593696622876034560520787184592256965950247984508254519625372060843926299988395868692274117100154021429196759646402626626367815430836488198078513745152247028333376646474655356637983933775486590548784227012325628611279792459020839485245162009924037772462471896183713057000840386622776281562760580893583351665192259051027624637800371420020191619700659216838074098847744901650241846572256341964898441336560931508852354821860816337713268617227423366986555561937377341200211119813554450032565411355969300280853136376406519968740029008038520427727139956357324963252058932392922294165584561811832360984330570966286176313436835097566246411274201696987106348709384364540578802271503898539077269482369926668060473798630281574919977187067905155938614328797644758062184480429606489822294175075193738639983420213804200747256226132018014488860087757382932155356764334182723533413169441949373603823766946557182464821833536719471825929408128440759048899219903529118024580179625612819163477032454875541961843436921560247230812148064136091890085785641410157965831547900507338235473841685196390374186893331515527474493415506437101428194463701861055040063678332954987545001528909878085766750875193193768792101493986774620283824972911128553852814506835439323390464162396112240441503533736481724817409094423813555276223993875866717555672245748529237684468316545111854952997340356992256058991393618020490035062959100130107322334346761962336383698366529892454297512863847149566018997383871357926885235688544933589455671611059131734093503868264916316874928674558978208523913527364435307559486438725697293129057721719320006878367875848371996490182955977730522368078025533367568077686929018679888177345541635953626322835546078059077994301954431188105954765670559663611672994868859371490552305613803341608047842425891819121830012320816091781498444489633665216174952998787866989243503163424051398260793838170696840946187358023740255805284334285712288278483573496448613917429282153236741477842914427525271988599914850023005977041319904969575938402689306143052209601185427935769827876611836649683299590408466370293735069120663520762340520665515161473957225409485853159244939010291529834942310136169484050359382984974327002979555209134907969952254423638703743186638643004244664294847931800244241484423799634472896121255173455226739343578268991231011742708039184798245908301889064914400853948278305174212071603139831306345678959711332366160347610082840371510551317110885282843002288377871714834399803770741917869826867198677122642669911497670570116281939045935589638694289027703360231360145810918300204264276752908230695043096262389058178154527116903834615407799550093828634251759116283706409407662224880419383676110496366643306826403490018071910024745101368076451638587754328370391902645820830519196254957801092457136574829065160354995591590941543020275394672221689107333920206916415480629225946544186284416727151071165019806957831030621700062964506363531352571819056339431243068292562167815819729410158676062002153999440401293754789779345345900002371142070802301797438052756236588383970477251249383394363639186529316385346004724166251462727564083110674959871004632461346296190294852665945430341840369470078515720416151522795975411083011975100739030272177266901211762330820858523484440078105502289423269402486507293923952278529412040871567456429025385679529372912504732622392970013091572833951037521473101489670760695146419738642918621927682700734581924845870086434705363673507047410275577390928701262349368807188862131398264564584794609066637871912943391459902399509102620484555960460979816793131529041239281707425305478283338473693290638970669298212347399633657593301501137339509482523719337400028181849336544345410162121153832922940666569911390869734214864984478004862272089859799232226320051802555849342544326317777332728170951854897370896648771707857597433110260345889569409280909068293823369483163802921005870786817358456483839224245337020484560555834854971581369764064379985741254407973275244216666230741969328835334481420716101091714443982215835221938349324609875916294790862136297562669862764531458828207145251541933193015070735803558206742449541877735406847032368689337622814193528117682768758333793410011519473517562471218139195000313394127053182991458904187838885199542629759965472721649838675379714610037391037150051395503537356731528133318186461724137978951184570897542649764942961840932079001434832383692168913331334863118863656864937083989200776030828679220082442772960162290804974660257169556313639603858934605010773895915445186469422868398465844477289072616719611906183876298818179120878619734718408558585879069447614927797022364272756860344289617487329723035847498287863358872086851945219766141129168825133636764959473649078166477864223513952350549082168118390143628241057228357846301360863612511447872870202877366289683696592357614014641029909757351407909679508472795053499625637711282486899541107393284684096942384854785208855019570458597624525488200331633438989618838032959561600056503033009665649261646430297967153154994405560890768284043103288552827166840160118289632640023943819496660459236089515031796514948912612476079739443348270721670387239958612446823294098817045864011556089478097616063950020172465073139752725532326607716181660420135119282716151688701188157637174050667942179644291167752793585589750018352509665728796245248644613466001774216845366270750507174895202858665412750012982126603471910645192399274909707014085301557183222191795020864489018967104430160182745098006748694702400489319040289219034414475728116288591963368233561258543994649081705646457280567229707873926992222463344275181646779337263954082671077617348626962683337120717680825964358816979985940265004062758955231627282816342431922348156543517223476087199393232660064206096626196810292961368858432519300213224071178870958037693021513580077881781774950679312534299605780892933178513253958325868434730490210898236020358414939775768121006153129193397709583610010813011870953494691485429069944049158518454276176676460751170474427726356272886990685701201373429289187726627217138531373503206645628971699576840541824392787395902719781819108657285209236759673781119289256948946172336235077124609936964640544795957271550564604451972895521269624293556284958850579559872242423503267612703579580128132929293606398969281493155133910616729139167106628030213485947810018431123721836077032505494764749501322129196196882991882695931802726644209671557828084889934188920629513867457110270677912332236639315083731122962915766050119794328375897465014597750725823530033195010943165185188982483644450607679243384033304842195532971077291418476168717499386076295706549068591301047478845701672257401391043676770403094150552839682150287804399209662777128837916892460280967854456642584943392309012382609708961677779742282522820506885908210232999043572544146151727431511605888129779880879207485979275155372248687456416418218310768114025589206553089955674210232998522678173635587920094437535287348795593059514280410713250057853982798548424391804826656532073503586185258626214513361972158117519596521753507722745018302856418735213534660563930169876516530885064430707653471000898310835462566150518787418634015194954201134584548875640126761141172799044365125819486568718119527991717667153562150548811852239154364946627106662906341548806869170880367649093526168832822548310566153772634523869490792946935866704637085554946989090962278026594092674989832594311204949034677277735417318354481334968420566559653201058246551468752815877431975980004773923696744755745545279089339821544533239056490284862950752375385846385886639260602349966997826257366160749725280219967855034986214345658966708193617769918737787851848090717549874571138326307238495193533707688693635359775871170389922014343448342841100500653379195948922674726444796594217325637837173029853711111569534404073783750391868940542206305290086428728946529396410527523161651871812680712702326096332356563945577152547784303155314861714253782868139088250194916099714507891581870554482566775305651330348469310582000258302537778943886288407379548763715272736698314937201061113625880577208129828730638044248259762652411070469014813384592176803829449270362105254189230334437817932518791382701780890457954609302633724797923747262608363218509742250695593276403258858109498320947155610158855853472047502780093298167264145972815709388043192922451265382549220619838275826342298208096809106163486292292585682154190001197404858388083112635007515377885648363354371676917681779175168922851724373231645319087372413401115727409164783096965579635952460283850758667179882407926583826588289839475808672041884258247539489881858724376989561802643892191281292989561567299402391746801991912031758405869316326135387549687458217224242404225632786934980970626942320067910575086704490913713211152690042440302508089864489798326011242055245773972249742667912202578117674157475967670526196018671693118857257846279686024000418737462473430662959448879063987420039632054406025293481525666517081256003165385970447182858783294782236403945809184878614978186975354022158771954723712157403441663725345462746053857434590300597945501310060255712056085616849086626617410966060761543504763793272681401465109932721183831414447055381043835631443124123108574762444321853094837618405646217655301406617416811101136200358593032803664447241083236568706517511558301076787337865128111430097313809975406021960999845850546604427116057851283191299732558890679841845174873774024650450864227080643085813991208343119620689079640360485454929543241087330544864373463520551628739478966051944816832938596937786208204292784796676913984446940460792496729524810675533890992049441571056275359180383135265137034273062285248928785519228304453480243498599599729255376603452610475465072508183464663041950634637386566685233257477350655803404721865030281309881186743650254775571918438171792608976511444433492039202889022650308951199942356737616260543082433395115026858787443142507945541784121791433626279087016891245177534652563515916037481909107200857801184062952460422908133516990486185248814363692159708878574207054189801758377430127894842979654292749596065308486813182810761182226131674083461007094553351951139693208698032692882543034976525791667024689950307940763719948774277307824766177795648261142823263799437673291964024230609066695040269842058077662054521490648138950685541497358173644238289835291127671623262652187696302680659049250049080834071904619094438198842750946297016733885682874658385087432358023870933444201207241297251436452797759672599586172839964328393279703436026830429425219457484717216228083560578500077608860454439789709066900090097320964391470253041662388312180944781048030351155077930773999498543257148947531398044138253587642939946425975865951723214942345770682323854016130086990990209351165497134869921942658054135497581363804429604195166810972320684723031518885838662933297483859750489866602668441820269059734668038017640958023276494607983636103693505148046104668343251394643627643432159306743728521304674763131242913115309424296379951391740581303263817296852747660222969505263737699554828594552412615191297735873468543893277595864441468599771017040808613000544934706964290963068941637389961550476770415678486819763263204823850729577163611507377868163359295501415956213182001405809055525941316625930961305780006641584736888929047201272605529439942029507088969959351667588479086741488318341050632348274013210727584075239335027870549412210641111382744468969978699422219861435710697697377491865432005828819194623566828163250462209762202307236864803255218369708868591152037987095507736774375976413185610063612069561761455999548223221405061869479244495615805436924397537593133059335509301230991213229638317100370064210587290810842350212652569922368509752860472929573124812628782461156261632194100345166144392719607744392826816922372366102963732786879807858150713886532867649152244580906412583020330168133184425406252903884260130117568250091438572271224344953503258786587909456970666213914835180607236536594622049212564363345409261215082360305482945395923091229370224604000213127149208640680417344322796889674573124506721835831754017147816254986330254211575687597462932900884690364667668836898063834767562665617506602034148037471375095083950919706220283768373141490272558836494555238718055161660438098770234748147771963393897551872066511504881867963226414700604160629404437983570444242555861666641038842006987801093363285501939565265478914867803871864726471442449676749292820288730925276886427261535248465593727248275309693032907574968671544764305279842216970920335431316224320163518599787141262191483951380157810903125440849835738256389246997936994112513317510307169584531026113978479895938589954450639618254550860447152357058443691483363962660854776178814700260065447559410213706613899252581187558737517384341782425123973253547123797843187135524109675443452276294943787109718877933479355001392383151468099187041661300373750998625354685105193038764182164487650039047780694513626875195505706129155321825642931448402155435096307961374133410699321774211222764850684953629293307509378890081350357285666450443701342319160688610443470499133781954425283471542942618808326002343829567032446903478054648830841507645782306247210102059868930438492268553153771520503792217987822469032732276529236383010131743779124644825673338139735262958231420039811561742029672758299731634574748589255542422897934541589679121754841252221742898290582439587804100630857715185358088525111976969308396662202334398807931744732073261196899150196480746475876335590256430281166513848314132752588434680241980835394169217228420810885923623138500974445245138462745261960861170535565312624009752069008941545993133358760786616669228476466616827880480252676990564766285808031943185790946564331865500413207937752072295638056166347231653143665893813094500948220286039837442050224639969049877221150361550796436668836492452683312821897953411795758126157005210367868040113941290079396715064055675124325677945085637307279125184656605878921552348647410927202832502158676140777104193376965413378031259606425821093274645471810669525492994247031672168191809878809229303427798154101243597291824609353160202899382290941292060417431378989041614566044381065627205063528708267604833190359912453348320848707061943938751674523676489145096886603957680223004485690228227448047280300720148648304437555028651923309370748078842770923355642359563898418585561505416730059523264220874924223313393324968576584115159961863691968741639813621430694212464125241327580815524146795899922618297716047215005374514769233822095355736719698295946835416278135600693035850519183825761680104652431262774452119997034768627476997749938897763126238674837690855178513362097177984631633624978301844833761214187219559742390967582817350277214846273683618203350244331378038044660749042232733599607350913206782506706267530529627421224865668820012324403194869936551851437404962070075030501794969575504845277596450396675354399378899253582002110520759471695633383560215897312740903029086351398086639789146652952023975979935497144088300778690398896296268161187561654766142737730340320119815941820280188913527739632381492522144700714750063566711043817706366072677491667902713182845346053115728115808687361112338971445000761644886000382729426059981088198772965726635847653187448402723319021329531621089117608013331956697380296519051403190366408699830275507895136299722097755883246010469622131274800055071030692559024493852521376117599677235240031615663165118582523769483554301709619658611236488341509238717435648919583906526388742799859106424158559288910685951199717739313344581648490216388391851846040909813545233042971854515539259021709877503532745742344253792416551440970690451868961435212168365251772409698864298330534131929297414471540165449456798780809110885831114212332404437242828173865805608078196339365646531149496321521375677176514777995594165019289358006373376696847077864056428937750966175641793136662660123945683225558893832784328017082719903754594377309660914796751741466276688112808686420301788378401073367110821210834295698427936619936884004481059693436422176582715206893114537431830797333861175297144625224438882411462356704312537327780883786012516830896430023569327272260174167342053873060188377631591344754582329064669703610075683647520634377695306296677095231366325773090147595740674429905751793554593235497261247414550511975022880085986339758327254295286523217849602636041256172468301001260629512417859057630121444435673577390732982765638825494308853104323984564358763352149314870863714271257570892249859249566184742752370762230701435272555278684068604969026916978481598113181373919016950090166293406224801766485472595153033502934745044409836957495283601645023395324822064427931915825077190546101627902954332329515105574209144739943821182889197129214715897953583480949161147836743890484822985721793884975223774933729798169074884907418833566805652349153840007454712939057756453744744698778222627728245014063144838267628697680751925349094809279447320029493158612410263008905230561438673643805560894605663281331770998544106353054022525542371600941769173238249165142119730137448695103018356536753571952104773767665050096739306163925500296069692390059775662168530678861440792847263718317486780326778959984137354210832514570637900865382249132430153769725325454020188825303152923098070049426073027446766593523878530167415540904704491055972634348429182808914993414104501585273929092188985577368387930493773670812431776627106866988264346550323716586115133475420741773969323451047502332893727005809198014634993549087824335493826894334490276819215084780885409135625336141195344234838558922656906333531528881432267261307299527025135142584910139731379214404091231612936656384462370211045579021949299692689492317132607704273264337726903814526520534648340147962365172211599059126587540179915878841027137230403733412444561072467648961263817873921446499115183134506109769790159669734969447470256657297875577100017113689868528159386783090023723030639304687221654832947342416673861343194486007965696701847115980504570872881833138641208476838013245038884636539947639649593892585914784991562715302371647618238961987907192058831120145558355812020849489982134858389946841615190111521316371326127118730252440073561128921591066437568867630020781927817075856748974777387968157457740526423186316725755119160430609568288983427923923567991656666774682023310718603458821181908633073692474006999570633524013144834177089871869818966078275298873021205765258651726636049173110884052204586776687008000291641188883467224507252509562511940234641427437667830918533515514074363453488463690460819929545095938371027305830061620813169000734088899216298332175798834916645372754765766588466277744341884865964042186557268549324156465578015901198760735909947291622343250744001465943613124256033413580082693537177545729196814688267048702575316397892913180294928746809188987537420510363684252350235623467870106347874586451141933612423283721517623260447505965451400010521486167069563996970222037073957612863683117967701384573430780933361403394177914469457399850954053749485398905630974179244390379547992713792427218994349708823588157620854534929287619846561968964866704077718261998758834798504787354292300025163262089371007622570338021559196246331878322950798408533786766866986394418845811336481044704035483529448903538949968728098945876082011501897879724473439586414891049826573267329197093320557872015933650353477354635022677078751469055664663924412093592749285700088635490425819711873052367735428291591644328021035256590491041435000988894577875996519415412508600320273040664289891212479428388987031887403211722244842087276563558011554087885159659291057656369273235981048900129753668629442968370631346266184555994596797263725667758402789904714046940883320122828415273299983425883094714982783953536131288203456304111194255735088583842316467359606609003792441810301809390695552584859922284705901024712371104992052855087077620838219500123577670900219820207516775949742307054670552123492852083194160551943967566859117474043661479575177784015125714659998438058272349431045981250015415755846749409050668696038935694553756797107527734115694760659324986566529096780172123155298273838998241306861522141140013831519544910752311255706283048970386263149819479422358232843789372491464805017715400514270153410807927607486720082080447891927159406625079150487564475652105474679298942463297942003755560045314777206703768067964406585492720323115507791955525854830012222961369193995191407962825382901017582422361933726147330126775415563744712035605320637548719158469389247100426331407674320439856208460907081242925701180814303375779870714468699702155617337253913517064964087732602485160598661272860763912332471103498232892338575209125171824205852354932340739504300955883108145359689343727307802216293452925722075214917021675415783702802239764731560751198179858610997405731263839714167734730202991028518394830327145891491210327323048420975662508310470100686038112528704783397172266784831680321677047589401942191617485969065791378448202353577726833455826086814320236271530600000776308303929459168705832063182095647033810596020037158802862340263917110040136647981547164502158171481436865638566374448449347651480784936538951635666359345149155274505569625532112604810884860529917633186380019219621047656790621289001157666758807283749113309339337561091327301996417574568787492036219102426505286227248007345697151847134955079585513760933000400857605205473317145101476791731918972016896048832659397708972624653778425243842769032734127181335163737198742566375881439722739281545402379039783641579951737281286700942110318658983846142372730016795335867463234706072098305536740284452406210507102375807783925897033103876274170716674234084885185319043458944777200896152556949967913156004447390565617363758617973662342349203528432658807289675687618075864820818825690264073341763921653563438896784967705245127113310453235540741514637029280857315737856188218484249906887169480265152367013206916601403574668374369103898772364485798709803148156496263905240380278853996962326659254646696567474951398860308119966526025154616675902449737218756781487225498467097329185513086752326661745648846521522099972983648408830572116407638684559796872963097002924098971920757377519589743604734211710222165152870578664299879408936653398261828189299164933872800069402307253913177842759899869888777313117939980515475775636819254673313344098465223126699800532710260257097911271090843048324786996484802273977903855961251133149208235058377664118608528822663711034486022996572715428947007725490273239923704581791566409754767839924294933073504951548787842928783073969877891592411895775575994760734018287360608466452818409846327400113725656447642395008870984135090516402857404827676408022626602924694479992191180174367362737535717496119655389845537888122918545474192186347351140444852894199059629012085616080521191696536026352645804060058733787826289595830282698579062326307132407817543936240970592677063921501739111986737814110373963366651473174223849800657668688400495835229745236404713963540434275731821720800174223123615774064091025963650150478251405559378034307116036819850979897648037743069544539480724117961048183148345338996214864358541332600719398564324366744418059875662101306210376727420496206004144242536634600927695752429528834060727253747472146153530505966487422226351911661997859841984932236808248927471291527768685347153385087526778807359232460815629256535166334463919874300097215987160024592224940343096921476658512461177420844683328144130984974308550989859857991535073109446599206504261638776133908061408100533601270167140471477617963930599858189726722719854699750609777551109880378633153184457247220016448624850158300321422649506409674302777776261831688431079878483033578769814489186600913082905467853136393016628011609687256951087597473471127653348045793132756288577004971814920683165235962226694664387992519309042803488689464531884737317280633503825286559066410325852745949977949605834214258528110425624806882169622930628935652443441492384765562165241725266862428118424764658990174762869560684593121780655285195932016353652161214743964840879114707875944624375952616783865863943365500009116459664143260939869355315222142180870543025994997968910252112234901242992388077480130811903236224166105810956183823479125598587173801594415320887401862820551932927086093144099507955507481480118804876232647007426024820725564991973421267840034000372769023442612682588856008864377725265500523943945481828444784861627248338403254491635072246836511053627335311379922012949272058470412354280411529443666884124452042434112941283982935470483482741043554360386061755561414783093917187724882917461432016196298342966709846508358618077090242132071702524211804472874417023043677677185348597250143613790427193315425163088931520229764987538894987074824656015730484052631767507770280629732438335864608495700455720694980342322919298760754246130094564928986668363428683722777321993723728743840946726761870190674192784444935484516500049599043469640431655489585530656036472023578271684688965216345903292989174951917432032471873875371247607223394918638315145099028720158729201522225632168910786637568924657090483120608138732664049053431663777757178168248487286888599122011318348586291460330042418227467298824465745793487207453191898159769036653128616195929991895140255274410400579517047728189200700821706865833335536051034038395326957959279859130025893867185955002421038037419415312501366471439190178672643165903630851960767992919744525927348834920316574676929450969443765064094844623663407851755129506265725669580117024509214845945459771508153317861486505219648507774038920068618104306573155453664070441990486996328100309820868173556099979716703064531215864290628626152225350344958525011022825129770592925292774075604694642171978472949734324986217874512419756005367560636658403285808858796799826277446753065344302360401916869239619587414049303412271131744432527629092863801137739189035065259472219277742894218477215396141849311289141691921438358735466874958332981049913394433593060156701037558261506219306342216568808948061797683658923928260043676208053442558369253514851551933955501043545757658382924347237588114759947857182553710216030141217718079827269975176022455472740072485715469582381412012545270254476666830203758851602305625221970817955504316332908963955924010523738824122784815656227452898946736619130996459298240573771693426136317039640023796976867617094365220199282907683677298170622536606050469344082041004949992823910072017100580808471340624354524826513814480427417458049997595593291780698278982839545180598204885270149431015909375748003597666301876947699078439428054049115586360172488765199179599493475037137664600407638653671670445261618282796560018442031287834023216677420789877422722816633892216916111705011933619440674244661360756859938229719338671831662230833130589818121125158473916782504242162199414548659750136216327175494881904922824714742017099792920356619555884291625005731225356896996363735805368675658734787843526969116332073152843236108237516955050382892774735509520651825781327789956688222150963807438375637001758744822500263611410454325661625925628525750767519150980389353447803912074321054532462579957239200461233305526639742434787052221043131623344615503255152327276624055302716654928158644219237377038668713508239298496062867495093310572637347054868736184646057769809451318173042135986839964667142311482709642842132796420085136733140182075753643094718621943436080780655994131399096804890269242772577134629389650919033275584988951792313526667078265033260051142622457021524244075339698189524445053800649101837881847685002945500045401740263880258151812364079485048830685452942492483605686037232922044392518287764553633539776220979158659217940851507099844338605631840778043925545688531328649998272548845450001314272338767388584987187928213206752793876741599647934675470550004221938844750565884846325888693329968207273450085553917117504137320563896045388461588994506683771765889233733628790177237303226952410165689093871686843038848530844298286299821916320675847582554242691425466202558441966885165152422703915326874983578007741394379284452247879272404041522859848162699059202304594423374703980376057090643349194339004553659806142707427106551905356588667019887159320288583885614803348717987840855960592573267072824667790466301528898670162469241340091599792735129495692008695141565090289005035194631774085612773282298411415121386207121873372712580677801028869319373587176737302636941905502620635093349594581523719229683789195803145736200507148676211719089021994784193180150823062165150981688543795936659304363342443709877936398437222421990376183566759952878281941951832277344718207885940112692759147613939564358204382057969831008412369158934448716931402171936118960912607994853994040896515851646719663175459496256312488415281385701342445040722911605334770474079511170958632084996482779931882472983760711538814936462602842425846105882709298404126839970464306939559989331607051508996854439826479712864836944628636277596175100931888446085401741707925739213917492226579421684060962091930529474213602355480465743481186875238858980317466670541994567604095306643014545120538190935374221159022345788083563043056230205038952721819700056473177761634129237826167821836440602962083634176237297886560363214384655746546269499878254584531975412562627435329871440092772386201723198297012020175688122131567325161090374918332178415226547766732859136154291169275946211203857998842366361199730358322594956604489718084941498990105437078842931476561130299180327943358038017104479753039847085240296422130047906992664669326259254285099019599875335437313370153095877479819551737560029537225961909429552148180496511844717381827910695070404009191345026060854846862171081195901821235092457090497385422917958513099097920225060034254598057670965458479800199279029217223435648963219300083074642969486862774263856237752705409056961265998082237443788936982493917857394714356742930264644330930546219314012626834830277760695222184308836354368218102901606799717875246182223910296753529464699980845656546519409244217387661114948986747693174693987728246910097171400016850364323646258142207608902892384586619029728661039196225118479756531048473658105892154347238986601558899211812309331570263924877419604941593181410258654477622865048506728972077463203562163801989866324315661523777254455294426832083597989167839451877635222168267960677420754810215412156127741385116211157391195193319817670258335956747708817516892736282871569658643847091253219589382789328385006783412340512128631575810945567715694289709799906033201150757042382044485295007026828421144156722702213334339732955000958088729511151449320421524244573135155836073673901355962949540103326544961080370227895465779113004871866417108933611467351990742375929474223701973999486028755545675618530153262062317829836539650011852166400284321259247335142582832658083976134007427189705476404295787191628340738586074950026681436891239164739729266078770363401487477672581505687247738160839024510814454538160735927359070511947142512658786388480187076308907498950286778095634443223709264989865107745302529822438104977901690465134242924672724454406853053069955443045843050898727583368173037620844384016891454819871435928221738479370483311501552511264854026043533064951667821463194739749705587635890741278934313052149720460287589566247025171040018259125810728196727380410871454557217248112629731629351017289423239167782049496449123367636901316121692364559772574953486563969648006622482872875106890568397878712241708236625591618118191110269778805509432456583725118817769270240151981262958127421671259986088857796665314689688559271223040664057784997678418605034934212089092669570693367256786367255108959236664810104689460745617764474965148651291124949440731254798030503166890677798553611122387927806817304077996468829357736027172368530488879061834533077485845212843401303095624410660298658952431172436380290726132940684254560222352078928588704554155889986101961609654900712597026198772203453706177027815292655203961203795751311348615178924269659601989582399734167453278404167642107539388454515931648898160600385925644909596505295187173928584131612152465515269009898380020080573701006242687924727440746319483506711391192964463938192980867668455516130011776583525945076003445874860670249822553069000687593252634694920080069196862429844530384400473391006418086478455414020899944699241557671460183131767382034139621719814655885961119584407289337280211740736019069723696917750705172402770284876836034881018900059770176256743990225565812361133254836068975416271731253123573143459375234317811079087138716243909813394302754480272510469391285404694759396621608214053927416675655486102766180177584448729012194304089768971737677772318789835590012350379514752976891163901802267217582083237590529997796982771530777315574410125851307216956235024043205803500381074878864614607659854793810007451802766678670401070596716965940842460077698531190883445803685728327506163011209905971454333393962946857444076124138676110887508314518387032049087122656333726513686715853177376108119201329295858833573834952698890889463642979732801885818355814190397845198043245921151405770187328070145834118735263054488224263173624993360233843042611416942611687485703242640616381557867150731814417458900767131076218793536045496195021890032528826377156411316708547140623472020722440933593738533624627495820305224128353035940074547976398930027866835732149535753362259232189325808706007748656733078404405914569101548060348787880371827873034348243617096297202215564958924026455307004431409335584802172906792320455245402061227112736727989228686771620818386730111469869328205435071801794267063332977113313811380600945010043700405599331249219907573368562746064559984951735560149352402989390100082510239749882751293526218006196820033254129461661801492725251055135555520176191018140810574337640925885725941547562400635895133260295908309221947609108009542301314460808774183991269085884583703374505262083215008130705673403179933256423585070563565016649417199060166478096331674211771046642057370524435944932967412632950793882754548855497054090316658712870402051385561772384529919171964073229424428885494077475864685948470178751012174471372237705668369067827487644420162011402640156997060992245720777858116076750063126642761996436911894624817604547782372925031472195719842321101709079757298562170545985781604698639655425803028360565325342239479366110719507788649504201070397528281773726660596243343324849977727269192454816080263126901925176899940660944818658217833345276590037899341709910454838838822765871297212194993778816119647000236549239091246307487693367746460555948753636407154383799004368182242389783018980830944413954103479452591954924886871468032298716348739777968176609747721248663323206001968291091617587993154443672982508140385443355167950651905762471093441043431023008043911149987459327321606206247095278592346887291610492608521088776168838439383506019114298692137117654051109923561075504915662299399160082603969269319857612861040892634662763982691260821398709657519725021180160087684482663609380436851141999946263835684881725302266429214973880272063177062853087138871355162594254708022123553677922119524324089740392864603136914705840645711675168873917589417992718487044589055306319291466821968225805454015345145771141382822142274511097918440730989366265836588229523395434603989624939556844251741493850747150512584665946948822509382076009732136184842332174705241975790914087354430475539869390539177096642939487001301414921010742990843724211555480805586391916817301278452988957178597467179153577350458174039396093663347879355110832498003474743076549364596830456887235303279940543036415433727634124248865309122970027221778893020641554729351216608156657380991287738873841376259497244319392563739547379551113773621092170048312489397286489181591917270595948453252830639596562025289209510228935959650621526032866598460429195353172254345987051414143198713083185626217359232059841269295134151334294485323881100777180759625521088819470503044011246993815144585750464653648957843742139763869701216779432717154342766371885133892346999859673218263218199939696251876037844272147611376408555467360356313444005022712593819530981397003730068047507560104126377887203904216014112603773133330457544059053330314115644776127417413440298594161062797796846292849664234504146775306091760192642103628514718692953135814957057300774412686503069282127116815796160610468061129462204735435087274836171370987221304134356697291072612365366642330700734156578385761745305956825391016744798074126688398878734506176929475088071057659088687004182642302595532344263554607984784402772408720322604078234235300227436440552514245746961372638445134040451148449733185565649095339703897919533654460918195628479024110162711166960273489131144493695523586809627888941178373039694426511416187122120062830998807913249584222141758581291032644572038726289078868786515401910088192608601171165051542248504148044574305412718002827505546442482899204966765555544217101170311477071035501273670108980606049506878514054346159792179771707424926585482339014961966046089151730673580124173481725220456114944291475771282187851812503801493467837316629117228523525702733974401911528164682290562027481206720376098994509180465133745744649013921427253438737821365923885075759713057784593906910897106387958297309363016977279099442826698748924114567428131641036504479736685660385548030699336411427247089434235895481373216146107863468330219619262237914811076205454811098109711540883861395056911009026607026812723780240541212281562535667087496456481203700992756881824480657742233661724627341129134590647016502607637652933581415118484691423522226876056539728030118845141680791117886929462556694176709151550836428756301446812987618992913887184786705929366505331011380870479920626456725935805741688548845211999383270687672483343556368399021991168677251205618682085493357298791386178819926442987767318923181968076920497774639645687665959720859499667057113337487731726795797836747837342393022340421056447216976592014907375767217899314753994349535623001135765298808739957872491276227606876583171616419329536356756789764421033872065975191254438536059034484951879533368010189616377526697955521106765221217022345142922723715247892490326630710596651063447885045773496613643790985050329869567726044033931547605196180745205452534352827520449902506121656602602350353949678851510855046263900056695792262408816450493386019943527488245469645693778958211183969428361507521411043090493051941478292598676919725290013860493351430714394554204231719975773078671726623602446520059134400890077402539247495316933200774507472792764535218246881573077914238465468655444949100787489189470787619046703227148691851836810239322468629589973468688101158605494904224989837811453583139213755356742432032658734121084332468226811476467762214967534653559775622569408638014855764719670423853649664522478091246700613945530941803230893658293011233488582898630877737786792730726166144998671266262574921607362977991132579085161976024650983147031282563835757568669830297047006466211783000462903042551646518070345098180847333592611847583476611356716593741682102271186662524073215128775008888835327483411504798851039903085776785164359487805254248754843209206650444085011172079484530643569121505183789410648996277068633174625683824736529943887978886481202395581726431955094629916648594789031193384770948323689160685184568151803348279340992677836897682138890905935087375440311370849999639124469597487642835149989687644446327268520291650273877846912637038326925383496955177973105387483403337145097764080206767031509857968503428491824680673583239597687325978823817364749144482202812807068976498236142251509202806840244422612380309366841021999783370070502247736829027616473959380973931924611840478669660217695883550046375974966126430950839773916001642885079875064210181284330424996265224577977225299862354804174519476518430629215547613240636519662177988765305676502991114617035405635936987680369124788468401195043722172234268525328909874521142924309139335881821199800780793702430958597728249775281202677248246304100572676749992230481599436536862255462658345833122138907373266520642100353282103866273981534404090581382588798000770497919103933604824354123665999605691469201077114693420440708923075174054265036848409589241779092665447888182973811602026182408883835243980068514055380882178287880269179408539466579707096406523779771712057301069385918592094935925198696526021474741935237782629602545100438197128014105493111254484398202976538520813283360566179844096229041642239868599839660113300386965318793188858538012110810022877370107690126948625817022025634403168377904703875093725494342405231955306881296530535328320916927669583360161670044974817552269371028366021311501217882702937291723719034277685135227348430730013135958398760936429308304269440890170822918101013327266867544989076333693700388471769152373404600773200731452791797126497729290421047974029724579029562849065703744263363382213625450398612984468315126367162166558990594988315785431321810522123226445558892362167209833123146755947696453427653570227999567419665158376459854137249177661337309272502222119242887002812552766779037630016417474903820038144034949114017803992241446774211474266314520675558351125550595269269844912062775502053744248316905652797361712381554599394562201675538782098723440359905028914556345656665456936014817876835417718713910287971421120359368928667279043055732769406191807550551929363150620442538107663936243270950130664544274766497194351958791573385494505774709544331268074995766062707863613486368118961256228607807823829526195619062185211686039682549822808584866668702875553893660885879492383896869131197603389781646164532244544203847718799187961612886442116269333048992132006187597683516392314684342732753297663432618668115006023129724128489545055245443338779010654345705920574415648703965646672503383755066493225445865165211409484776732056696259121319615159829688312241845603615718145105916702414029003198423677659188197815240714031026592493941572233156614132303221821461785499121158641489717729825343595518990309128513023561271602076459528352160850758000025803784218917934037936755705414076736904490736247259932294330714772015883735681468697572082885568552809223585344388468551261660504662437745588177480037573164090395164441625930214008174405744559237248159450745928336149130134915956199993824227397914650918084422092382411741644985064392862608977187150830688536921409210047107358961275195210421535277853515599463341132798724028266138020569966746343263055461891396627227539967350199728001560134805105126633611264400901618364428150769784532993277137205825218850148781402543969160253150840363641995221510374462027104539441433258797664835839949368907157549090259707590449980964612771524454859678012866241395578025374450447208922378879391590227053257241797221558416780776185280835127966353085998190918499553474020172944290818116371373836319723388977671421524283494298000100021295843401907838600656377738951672953867618924209969218032066097329969177861704685795057216231368040968330868697874907866000516914590678766968514374645778760629277889048290089502593407738205157061635609388657642767568323902012325875888265499145601944781195037165202708264447986661877106658746315683253445333306464437418461192843713817310671438370002630016246879612136823679852635790290936408044237295486293277866802663696744013535982786645864070649082607356724465096624322592205456949095764977457147994286032829539682838639342063572628470036583486785209749294105443180683612330984332935194009181852463746992004091498499605942254928187738278989205615021296300954831756910710559810686559017740946100918859835395784611917474689112251941072052740225632056007745352778579880947890824490978112947773789160639752328914439885264420619245812526615292650514631008311398944260050636976691482856462633408310255326213516110553628015581522426384261451225638817307606411655022054803311658445367499271000902183560548350283759502049289863193117587501035375163423811528966555000139999183401563915820886788165187320825174547775783448563632478661272545965534791715971585075888917664893468181845743006103053911106517922978723930788362006890382848807450357118734164177493307676841336448902419644984120638462479893019882901535527027229985781339004416184685834698840518212633934777850611441041790149619971465964197482652228371375507183755878335341252785817410084105177155125610728161776486745688548666297076239045297823183701256002002354774236706815466523919728518461780610105269379262908553555393996954122548636613053425224813716078793748124795679577652246931870015676620164097663412577523124078882499679820394532342405576281926460984254139540646746453962767072128505585537099355533039308728433330627005722917226541154387720179301927791937094277193859364545525036567769057886995600291267047463961088746190950280829655570357124409099417255626993593164252278927990833084446151185643903378770484344927262208275658990373248440950399798624433627843576493412912412913122135995638304867027957661679135811298585343463378124861222628773084483294279932712059582378867433451541092710241442217298229632391884261850103636553449389247507850118853926259557649297503159067756164682916898154127368976166668834709420642782008205974551212703923427286871624341567922041159470155234632259727257730330643525466574605100577313741903793691319323724540525471739041902869652616200345735143471456458430611482206617694406107702609429289845426452369315921780697833926266082987671336671041946000679785329829843150156235409937712727182600452300471059276239760605629479276325661887897154866461174681274085603837389814959425181729796789154397198392746284087881525009308762859840909016453656676712008236405213953000521852946229719380827576360667562822306636241437662316348244854943972484546411319391610959289418428417400580829757601470303983624117964280840806452365586242460598406005366366895455103387398803808328148378404640726830257439230673089367799163790512274380474285540803617282551221289221496813823294087416086111150413144364789289789066628127870773058382579294776883535411335401017063297232722685981830152844093812327165713141042219187988995400370907431965326069750175700956019490864743849813304637162545553449823152578968167460655197530432091252879096597355421587911912186841877584000135270932325818314406461076060303113779693182645636049668567348727855535445808261425363879649957294112573273612591920855794199112824325008980561822630683737136589448756322203007721683462233971996323541576711939153925647567288984721576262665826855840014002095348161241515290837550795135656251257138348985426399106610370698616182649742669425640191125383759596771988519113652315834764576888981030293005532260210991416694752977180334112535917935146753738063355172445478233127254008844032772326861069772162811305007850392928524946598298501544413315829689348044621403193169706278823534256171180838805720829184365383140538426250626307753025598446674121158968212304806098104983929769234629871417786943064255940316932903965975956606606184264852351795983859193951686224166757825479265973973063487216223589318482884098401032902496698047139801246573825858952215083799725336351057883894852574046208509997730388009445554890353522056632734811972514771522046868375007325550838024549791185881739563718331112738898677961582008875060384950103805225840225941101412968458792974767589071726201705226614397783489653557671411235567401818791751974764603602595513075668961534894948835059773930450364820205160549617170275147332934237626336644854439074761001663161043574560160422296755217478419813277271971044460221538297157339690125500088040375029213885731497891848947865861525629624289211103976206935795752622975689606050050217160357386805438957983662069171345974597790538935530151585866147440182385359557229048078357433326266307996801842817020885208667465710764122244876331379558465002317626162459589613638993744846685064356076182271258590285129718590835826491416343966882476114223091945752632397013174905876347303843215831906993552324852071426476720171120482913558996062997588866000163893077678140315511392539290257030130493881902976978535072474023323938487985110549991676924042965896226666410337660945489536930201477850253944637796825519687224042268556808927774750583070146775649943720005721142912033694965709765768818348160076856319807693556731694861716419678321721365387000397696173668783231035851513368795201561158165121463007897400215734290645121932482978417868570514177886384374951069061568282361611200614996974750867456279177920099681645474898115440822348694470154865192236137888209383759164002010410897612145359649212766794465027249435556562113590027984331645365909380797679428218005815300889815276964765740126223884119641906287976797291535710762601477814860207996203873766645247941257089580263216857935693137206249077532462019592169672840485098811163060998304295002083664756805453794856973134792843844232644900291328820149763856361646193722842977442417104373948848568746347753088092251110204537628674957086405156777737281545380215982125439307719231825771668018010901111783754957849719077120761610614416110695363816437863475456676210565848907255973374023151020127344067623042024872815068316487117909969603001033204093505321134329813940559546769199988634418145174709099842820477003326280051408428703494359171797823405843367224593975019548643394226919420326287471524053463801629030490854187245874817987820790839551683217436469513938602249005813103918469010627087965883435633026803008660073966753087146901813629523296222561061315035505775079245994156125427454301138210064361490093707382141590379149110223407027913153114906938336614294921849387688606168270808499329822153567910787771013444409424600884424557026836588953531237892219001759199834095665425583803410239721450762347663408615316461638144009712791458754087466685721197892013144694840522828676147407268556731071319267740915318436248602189017047358586949356791578661324565654031265171542745874352919093589402243003060927981844950073105678146539166920322661808450867686092511931453310242545852244135349358726223080263803484201014985356109451413517874861151211963409645103227706152059015166772864446510886693540602607589607688019340803045937292260917450255451587755756488485897752589376339860727823043819880877380356847720018427518722603270584110368187402168554904865206289441804690517819210324791694530069508088860404626287331953372900244554551205233948792857938008781650759402674282803821779829116734627128652308370763300673788783026284760831573411209499349353816158091356892985594255330493642502596456216898556560294332825324103653742291677998866591029697530652067173053351334165915027731688443292384506721869198535690188406029197753029856468709419154226114360751408152413135792760836991678724204833270612971031537352208047797516798479127958052776995666224627763465799567392902259384633731602961086000954923268023503600884429702346917166466660383669562980093079212673082439696207494592334853860663577773980024760212156285957034489613690930950339154790547288397306067776796597744093273338357266603952937248571270998259265843607351553253348466711700190642428231603945267808798470560773310892850246149550022586444371224537844392541704587754466363140355816481141188034817793999609102192184393908302010573574266585079881246304476870167321837753410729806139451940810280136829898162425088210549401276154409174394981144328792314365092955867775133725287973423289932303765316576557900909025496376940067243400723895071496443039703141488375799648446799897681430358790471328682360440208065114565027635341714897404930430809625905243264676566358353523061997423900525129943146558367538703097731845170531528859847222978630866251951461324254000987898636978763861075223953139442035015454230034287959039958072033000381108486585426873272708422483596588286971107233345845494739811849854041530307728382709548558089681389979619761972071012920747039555891101195924543129225132477836708329776905911261175544892746832901176368837468559293265210085375770219649277830899110020740711105171018429488423986301963597110546704477987782278439007245282339547045938429805083483143686849583788156734891302328629925200095632415294886321844819995783211300099169486519039938761232595532249898064106985880546718871589490618091224566067941409214846522102599001148842343700501921134470411234589354439028549210242121592000135264530216298925999611968000331751920033635987553378840079871483661142928878505135006578654266082794228318632539270146215190240679796348588117676362608838997227233204093806248852728322748026990680751280471964769951963963705498797379699720781984026049091921276544427949143780777250058726747657039372695578851352466438716782973926259219802780142492285771367697619062314564324193178288076176773225662775621616751432216281866136977381562571385822836916795664336409449398412483162680531030709432932354609724929921128859589573677279736298342527389723957249744026015544881925400789477297836576061550208775710679246662481878969696431491200498489985968579034299277678091886996291766618940972456231553873006381157217757634330861743019161743023028784242322861709363146403651090492545951188753831267782566858149625125912285982212306397389972647662032626985235354742603296103879826507143664320752957366824452924209674687761936175714635510738861731507480277140822257823578630373681702780876520130295182968475358213348285182464172310344951310395751605683617357811202380742933182942479070616691889426897397325611618969394805284763973991627104643446543761879101079743930937898018490192106362740992835926248574087305969226846255635266754247286152126280782133715608031611816747148702982959619500528545298767774071320967831467456392130867982180305779041438384194128337852593466421249438535838107328001504689994647489544621190164640874088963457471239064615630028561395009291794237113441821417940434634543524372371634467970476111804552757021139776952758633581055266793408683526919402423634367485867752312921611021995385676599548189668563911042150339293857939821245510949461670574801746669960057772258310576265667675180592409205636432073584895454574731933491050060997369636747091303786839751315764514705989341524372083895861221676530256159437150002209069831275792110842684372070532662179649828179410555496020700539261734640001935473288918255879883953702022139099409939625742962187691008804845024337801461839077638293194736048588878869961972261995984222120477941099095144855349300879027902543952290816294935398925746491631743858191501156111889168027863251659882486082125458674346819342711155765664398045834767488797715844675080870415088085016328918417494124548746198387565622701051245077811549376944453835019481609701824278713787020401240121174506848528538414034100332580597201116791155046645794664045755506710687701679746562663505588406372394891192935392737062874600245504625181369928033088053802613038241974200168885808002080463589387785431313540242280734142817512570043136573001832782912317251986753055408891811393729106140258744498222984953345298792452266998341809578967070233828509732785108050831251165533223773276887437747355793395657122806210801998012957248343422327519541218568962527840660140273137991214993093889106649779335669691191027155909801929092526331365994142082879870857074796110891747902012065725372180913606391026539794547132872106443083299935432299964886981988578253379783454166503995137504243179452698205031206865886882768735849510544364189228794279369837096508640340112480323827921421703619698795015228845389039669501705683202079127256307526616221460454253237358310679138293101079258455657482754740223993360530742306065582705294275133542013607744919571402656105796773885444106467518933176125412249821419680820227448038746885608222418709533176746824399232473661635485308220487231148823832102490486878236440003683278534428536513137976387068141346516989697596043268206240858257977407843924720161215528375130288751975312937258428378651290888360329583485198135654453118871733712280855759798237264045958043366490762190222335890723128699788917095612646131606082311918825744175396985038209578491114042995877910899848183117547153837193007756405342782654846662697386615000181638064957714306848741419415815364682956616789769966710272964942424723697043705155192324110420101758217356501635582449714376158482510807036871543256050378503990043734746840179056746083656160476689575758403223441771046071535506135393294058311916930296545763915975382600696627298052133783579396844945973932240133051971423500072782181162678342170368726217071718897243275537568233245391960606764086935949966764829063726886496179224927434655863073234010032505623937378906187274183563150330246528155919739853949130656768463662732222586513388490729779482385359410529032004538326459501974484577292937477478060740593491027726858512770684550060260736520803172339585450758053293437569437060313986844200675303707744639274034531314085730972719022933383515165338314491366103930581740178974430074848660505080836049138014530411037798297693751684629794692987265877708243897003013492158597781966004979116184438491006304483441934915620371486284818878357523147275000464857640533089825515346134829941447643147612872799159240548987437558440255054602317241360733640683014620518989924862296537716772397489975903808120258400824341352277846831689735694412549316691016178702498261966053242033265486365082019310936600765481301400809626815687904331834788550355812893210334120739427831455236960751371647030413023256893010522936718758473290522444698958328266671947251907548690704413758153147873267658573667784373814244907408951601290230073471601454504255599686726971356736450950651013859099677347373392784135747751613360130707795517351549782076852954105179501094799986657418050041456302170727617422359213038855096347009413159333721888586466370244000503217642932947340170694837198158283989995546320804407502940865856952292716605261701787487596599790185240910465768075217667786591317079885381779765086402766359037667731040326226609068117551035547422887725076152660480646966083926801409361698843110249287792540063416483565976074784745445955175033472357240692029643578340928778333731260084688691818506601436337490978063805502110863686260636464197133615220204147026048413775634514013409922243577138485481641384609028502485872956335159309269519815775460528813638938023286319840988193601075269925994938818971551798991984900826650653280044403105522067570123412694651100319895912507862584375897981342200594237513237691139412180964771403729557007572472803358378179229655355437631367542237544152116060875650847983684951667903782402830726333401867790137339548725849797023053042236405259384077267014777433109036778223478933187238814113235730111587374261990727200843316012415684736174643044002861268172877604930774250182815167394669980120354277538512124775395505399431556780657671578691417913398287391831658490990935457041392594915567275237783698955570475369722250291747668853189968964579996696380442705484263967551383137882096696250955684979424448092876139270287943471535105322157233193312571784404766249838162106942315350640635426456430109321841699514582252117027086821160902196392159200155411115124392516428958359652602464334052427621955718189573879969398978743491860128023618275241822097447774672674693532548106245352459287082160434762994728545293259195288685689563872699254564025615883419264732896752941098768465299843936206288876590509446096428554342288604873890345202539110346249087987312927944130177517616607418459270990001316909122383334612584944198079216879983547323705857887900649733050698159907609534544626741179770514779420239004066333996393952809546398757316713717233563873481332643094362926627868001280460937026591159077503297833414419044053804300913135691364721392902537015880484583481752107533314370353410734889495339472884874801095244441399983099240628168495652614168089067621630156547132457865859279827984711117987956326328685079417957604284999816893648000426664768196924074286925218277990478353783180313503365834498941445242479421560674108752082236301109653499163404510549816337304184854698740263788701894188830716914532284317286490698555781890624283387560299063490840901325740981799153545942275154897364861778519877644201182785753615291347386353641445617408849329176694873135644503303790229570734176041648531679091217422984735162986852685605383675564637133533138872159236070071663212121460353543627069456881108257802329596880713539178045150875092371649917682290631267984475435255407961181244040029561324257883885305239989086571552540694037284414026848854712728147341752049103068565770110519303719298576344115316386438828319409074635813233095026005848497342331704893797556823302031269411602301125123052265675650326160369097869983734423800786062416970039475337890295941161498363749105201228004556820519324790087217409078623535995557818687013272962729233703008334884492572449458268829619804407133689950126054644250539781869672106000371902892705624566227273299168961665294529126159920504789838193714412755041139820502450790708629017480948043442770875257484645059413883651102385127448236902006569525424797643802051079604781466215894699570020061695777092500208661603442485122703195525637376582508055476122289917702652656538847982592119696514601424428995043631155149762131750617373608572866214609921539941752053611958827229882349487609867070411237797783446398859758698219332249816354458039939327853469766306163015408607542370339430826986393363102147744800153309887852184187742692455334091522381970967324896651807126555954631274234599913893229992265348136396663987631825204156342766617464836925611148957249912827361986859147309204781956637745397988278234910629690022126293060395306673203244878686544993689061693961412112732736092014390812620638235739474906284363779919614856811401447716223122886577054729252309517261596277702803646147078642013453794698584826962614683028577622589809999892651478988034652639993387730011919335765700891118947453921837046830137636862239689487342978285403681436398091245232791710431796166975008790576911605651480237019358344859177841083612108423044408348203857552338310346757055752527574906164027854215065671926793485017839257005954274245217556129296011977874217286304651773159062569896081855198218889087754914941829161457151688003210805686065735789463945781984436168361548453515685265145534035253903841412639900598640208460136994591730518764315193512005544540744287042295010158926017697730452181547455376737006673028443038008326235822886091968981574549704027826052036067935487267712546982979574532466405758043223241519057306385694905766959987716300529108320709431360857757665351111285546302244641788930717868163565948923170498176387432772496479890342851199385441381823286057128753412392603538918881382755868668183140390813720199780612433555961751763637545213359967672071289005124914410459212510733039065713625589154001129852217850005682746646279436257695974200946460101580007927079370906436295896836720680556264333199296702506499065313988492960346166725732633276562370348509394052279318407355686186854159356752358461899298439524962356536252946618630268407118617073640364368576372062533052151970667383564961565275770737394113596602676466324599333210693887776300367785761667483287667553405618174980481685101988724180734647582692692219707058507412355916154980276015057399224500029173846199844239837951683275308916167415466935046309478818997758410770985211200048045004021483605938589927224293530930396335961391372904653587920963277537816374590428104484113821131366214807677541219167403652547883001262828770424086241853374264825655619093003796368997263460605267243623483103254963964927298454651668987714142519060071649645683771901117450400198519328802340087251559572465488877555408822542806826701231803760094222477324379440001141537844793986358597515826098939465484829536451449578901814308238797848596557394096495959916764889756057698887420500382833807687904240324408271322974844491426012499518426420689130803651135491255679904651824112205643238713884944517728463566411676323176782760336287878321954199868538798151391109999869236769324469810683472838335154618179969601914937833624387789920798877459060493221937002718845780982465097184052871161845451993655057548347868451933944994515778074526264488904488716653940739882884435306168663727530483267728074044900671482803060484774776513282900018885371413738777515639528445203650027710399763012557646295357878258353742447737186565778761689967341360408037792115695847364963493055920353304878836486561651997794511803344624697615818612731532548008984517203288721522705342786655176702260341434599115643533685571935618700012126738790829692780562784132261859725418019766176477869392991484192586939154362498024930662369524516302028107618407913974971582747594671842389670414479187561750758607928528572959419359751025160009637718658778856010688300371644959715512189539151900162669540757207288670658782947323832230942207052294264453196995069716369680537636112125115322210652741676263311537416945699566866388967745160426389387524256308354132330240700600916599809406202300917104452772647599961908220666610782978165672079974684529971103036160283529376314933954622397592113994443274314780664179880689047750963352971299573928329091378217629166596484297834540582978894526449128062296883922201699506369187389037432126516554848017489242533666345104402923650429114321654502933171419591877455557460030629175814015132395885913180455749664763025350371149281151112705774416931661947181452506362519829786452643001036168499950354997439221267356394340756566200378524421022925696684114800944344864141275077493326367482157611191569688750461881445433420153030201926735799290146314469925911355616173941242820875923695464761772520298443631203950750147504122864010122018975403036110273689019817205938337365082112654571165186770424186729724708052569462264991086106041820985483134399372419831411922806404805563581599475567371223218770492541124068313518003654828575478902385427790527956231976501169519532932272242060730567202845337243474003205318228049612087120913039300489454133380645062153980306762108071298064239980447928066008147313761715905993589233773521115652218774118339866235817135931305428050438203727099658128754047085354777427850282526791609675320624651864464920279259335625823798850658044085639528779883377552602019198277035290388164994350471211319112848483828043304556660641551969725981251793341814841811737775882885498941473605460181917971669314706640980906981373920923933154574991263464014098880851506202403957741276030447883877295019924553429917413499025678916290996840994342762999129666021453417143057082159330597733496929009298183945295820757307666584023457169363361203845534884192996640924196113010394447100064406553301193249396079933218002433124054945138191589600985979110696898502114255907793583177905039687965895885917957230445618224993850947421032529753436375880575572906335792279723495196803067731460116433510285420752839788483944688892095623491527291816075582942612044282716112790881870683421298773312493321163177801200931245674124187296352494319855842686836622783455713967492572537060803070185365328419877432375145065590782201979924950233090537007198214727306804076746997592942285727562315043369761377211842804310706455205114275744418524805196510921272228220688741910306960380018460583283463447883812200892075332843905201790587341393576256041715663320319518998551456433265458857485322149849459818883782589474135094689047520757703796880389163731043707528108798078963857975240692766814464889989786516265838525485982194890330077489840207207373086795480537818616461676309768980668720322675581862217840599231531587126849329858404146165656394645870701412524462988035768365417924661826708638319380574605848435870380584175427373919309922280111254485877540080643262953280728160533861997406977786998427682287094022209594672579630711860309184409707328708627574603517750476730685308962290341615013406787881493594148696550873305050241240221655969233235244016065159195388577965529824066234789911045106166065281530267881971686556523449326399577671534834675917155733963434149149832964595548786154493482186451218467941645283758627428594488360921830069716939315839046463520023634600736426036862584960203469679014707886447207399525693462808954363966954071474565810741508665600286028916339791874073732708816117746468841617746997320553125627975134470001968194405338363079134625318197449549350356895734370774226448072754063713830721367780567152417023416626573060050465142497350058083869391052860091386413955427444586281745069438584681826283162188723551505909868504072096016117579832951011687688004570696437753900289891206256007960101483234247556071154134437576326040185878416400280641522756991101860118667634691993839800574555918174752233453415126349676301226668084002646308925952306894276440104560889210540041440012411075963206994108445803987735398186755430823734359658339323994398342511966328923037890460711388511848040947340853279389068215680254920363851634648694401720197900320832258744712406548481564301965095887783006774849973502418007220177345001542407885369759825729207814789631656421437322638752884708592960514800997618512072861249185927106573000632459603750240365275847935115388449727590008250884885801048867716499569297187507079374957461628970262916592303642019788166114283293996296400790929881927906767408655902484508812379611653162556829460932249991471822259875150284482655932837454015163765126476843761963271450622302778753500850442736331778403096170643279185308629237349416061741978611006685043821302933982910804687891286897415861188468489091892772217537201128269216996035115451530485568070378535747842031289610728772074849763161783400274168792010321842922578114382170702471381827573086920954408481694350975854669656148475661813537806665732687769158936848946133971525329729533371897475123912840239393611382491217964047656099897461276655210038933728694468944081129468553991985648755150580394917992660518450165676844337554910049212326799321958030355642476161691771434135680856170518737278468271521118200402683032081449880380749445977396588335145858338664417011360873272813752364203660600739669542526753544321205901695249748680781515824930719659576540016809670736709799281881332895838626680903979719425731900887837324830377526643618722254538613035880662526217588994278391599647101818304852897049813240680198974689398557236444855063826964342855278590604764859333500431113960477231950400949940511186697858539933122303688899704147058384826417231675404824635238405180683853089389140813873405402502936290008441723486829937381384680273774325840859257803079662765381253457818923155316177643696189541638314342954821914616682121308887304360669589997098596048669434218975778823752956240627077215826075676616759278459830157099398338700816037931594021627150370661892589982311489991653888789997806325343306758881921714821954210125996646418495684408381384810553583677994988856411425885224136256491428714026700358498896615621364826583069287500532113758744535469013220640939902304165270823525447387564938854819466640156701771873187093904998801171710040661785886479082380238046093190076882941607843298224678983427062015311281557470498559470624087959192356518408327853957780835494545528415254879153790418589817675768973437437579563804790815379066708685093516532594521333063933022541406974401810131977508506554060792537970391837849835189330680091700911053618478347578442516288319385862482298048109180366601710072714048506859475796824115803910094761937017382709764568078725188301839423272747454520935619123872754682615404954459159130410120175773127750952933430707249591013254360708888458961451151980167109468782724542906028438970633017501430930669548265892727092631829601261322221886864289269521790514243003346384986323641039003312374460258652067325463276947279649989295143777035896670341438375679203763688192291477163811035272194796955927189459290135649883262201861958365000034674478838243750195351331548488614329907281900255985687163499692936565286451738096275172561597919831779632649753484285023217423016319853359431945265823959208870940379383667163110573065724483426357672698566400999865190137770801712509973701555298131377857091061562207056681850693960779294254520602243341288450510134902468469434070008895031954960306408945895663167625078869701592410399154379674623351241139276340354412398740295761116292528207053627318240914413383566170520664505910287223279764804338778224779894747144679893993042184459861610687680561681679377399963428321394161349970814271522949727481429880709149438193797526713040524039085916397657245808652259850160697872423142629805565202247826421836963072409269106055462076427331114968367265221350368339211147676046835818784891841998208744577584474719049836600271382621046544307507056275164391897404694834211991853720593111545227229189260209828557980645643019165553175757095104912446695428982302245812469248883999856063149127932911455055181869475560266077893487529556899075042693287792334094974862836611512172664864022554581913373511270634924591703587593549502559750641929775145078174501193192434444774994751887921809248354581356586613328126941500399058314183204745628522274605675600142467728273088558267868153466710370626647729833243736982308622408740984507365911800830225888407617955347994183874996599473118035176828141898534833329434222098027507815281537826114323042025357681214170048161705195959417870133508212508810583351784765671229550081512955385755008153165167322105579178681946784975531659562376796285993509057487385768793769944238421169875169063424468862040862144277561301594216236679433631054052678915667411048759493705512603632557774106652676970432392001729808601436454408196463390728707589851295973249654461900608826908955640853526231188052354057259470465282045389402141039079175436634494210236791816756662934797631909599771541313197248831526036622336955016455645604695702258613682003871806493645008559397125768733522592596867710410769045017245774377521150753926380512137895968970645059116296923113988652366455096696198296700407072604124557916619757543317199784640966777642642215068837094992501164213377011080841058533534316922795863154357533650142970360523475746501771320243205500177706912731144870027840571297789542600961778302362575217577560632537014294131253521421502259028908509341519145300310855029261538136389720744899087848647289755326115386642223356682707287081002251163082061785958548979400338794408070102790480402885738279745627857466248292991986028123146261551695511484438760340268052249687140530733855867874226289983238695525858609605592112007728982105938875216712268299556715758887286379621570477092375978605160363849283984252370171379155876559859225272821971425086942229592444076315898125812206525204807107831295688048945616859582508047177292431854418637051073686363773096515916226472488622304606383320019006446490609468838581133812146103894698329774481697498311920757416229345356398532426920773557853387948564745519910759443347742352604616606314679576907235313096337951411865275529584499253325552258476883802385030543801339088229385737338078658943622396245924221187056156197962983514826627945349466172829635850391519248078903681130031020088085475906343514225711718964470127006041498430094016966318534708804796821268110026860307056667177732576222523752490576430688874596676195791082454367637466058885385419464357883014839922200766817231471685519908355562352571338998579502644608415991025598690101923833149546287385379102521592543951747218780871788897635478578217372287597117535728714360202355369951050560924687377466706841916693772054114161194889167891831205673485275268769535977766547589407500725134099378935542038304434372772665548571860868021413375262082875018046584036980554083970633959981020615743375048295748625944538726556374718946551246702817301036189466497327457603149969245589205205547745303460729893474415650328249421311915959887197489081859242817501016736320329770155297799840058346705020993224375920987483033654013901317369085244008374193663102712126882834875075906566425214661490399466178064817196803263952908479239325164371197509162127579079101881901768720741837874476381080750016953495001761109361874756619536035809476213035201337676552680207726695109308473013760414646029726074056239584695876855799558081248940947671833296366062387347068863235472895438084670114319367183230601481609435775862177670657546909111614242093624986563805519218300156224616507809045720113089226849336220405251530400386582315182720116052913848793478298115465808950597035404935911635185244148968701226733488968670454774433243260276637278459718132945248472384404082114036443131007312231224246758937396598812263635306217408646807512669185752328668083072974097787347912994632177001437850740241821049267232041884586469026943118962875093325900376499632730259097654119503009460932121233699025408411512862119474795256214825753814966723508078478069370542281473575761078742370790026655830068981307301724737361629243216498892596105665295605420246190275233118933858460481233707630254693382848970070669921213821081728163308192527887884020110578598595265746108295225056412401064781574420381301826715041826264927181335251582745987857347669439792463107590846596311874809630418152297571587370976573806343411396999679969909509759181231705639255237716727239307240234511608686335444205591460237325283357482328415495729457867137578274758227708862244671804852260996585887104001780797526063860423101998753782222332383349073640896919674695709625300004642271539789040338116185580998996681057371509179740625116397131940598110487432164472277601856106574044199357534087417484166601506006485910830747172410433985681767889708728390837260410737334770658859648121839891116147335324625003371230359417492869499654137354767174957928819283472398984525023838893817158051675335171260874794980313226066978650579399150530317319152742680046340628103039988942387065623018636035698023672225677408851448552961951961286875926454234598402718030379030649814194371733426176543655522767837787122988110836341419869131232776226785653769658618083548287380623709655613303935552091578911319069520406322494988852321930833419297425305101537517912481059105627554285688043646865597703811289281789437059563549359336001482930507909609191728494734828163713910587478259240832364784204888545477651422641406338968315025556278418092395745779244216812545075096610751196872197088329871106185486028938431774607765579384894149012173391254783544786443986828407054416176705902542421109987082845287912210968364036002264524070347446838526059638055802586408568902825928107431933102874855929267741157510219576445220868845567333317979026250206727275694850741553869904857736984976491213806386720229052522075480701341306538161052918035626687868927626157837764650864072673641369396361847785877256715801384703872253749756312345701063186807344412199859295789981867945931417019846005570918092773296517997931553124692416943950584934127951999738662292520273907589200440290932830825400358083159207760114217334239239687153589838425078175501739943670633239950412716848340727921601296345122513518483562620788600871402254821813613953935410576661223056936728378326465487615813377083950830828059472587032938028006196722463336088864832148068979015778253042805489343669601663114398830772941057795716444587988484552725902882098607893369876293626045307884347593439953365958197933254113489818091313186716700533165969718878609847373178027049365447646913562438963433214430131784603843061095175147553803275990506052595582663571098153094575394093134315374185297331102294772519553430061187860123955246743323332848846500075863555529970379150665455042519905179930381399219120765048381496191287812691332711218618383940722937557436521826643548258590760843592331863516736713209659456179262414847475227515961103230676203388243503435039223824330381779970714176846573870658255813377714331729366509465255490390332682577552113882968163307886569907924989849195854783498985729199182536993171239294154203896462888154678069331927445529726345201427257344458972484617855319993242054019666435329330863556405281209368040201839312003229983957391068375272536690821162303701846774509109817883559127805667646453592977176417967816490928424740979488008451863696349314140403392697808984482158707151323101343596973232045364561713069174439299784977610244388151849490408967616373152314607352003743762334919598959528511237039175295242651095832069564397960700062989160569592295154884094322956084604683830510480896140918530589656895790630280762637938177993342869579979874887694273960662369339113736004076982784883860699330305087387967308070771017977136653863511719519129716738995364772732197919400282369036486694230058558537862338862801661962289350506365900800678833304391055273848801558173028613208548586897865980410934236534019271055994124676008900529482797096127444088250004815430087022683182977297879926515082285757214602711523265768376642403267244744474318318859855649465337790673216868869191963413438011168166558209265662743110992685024735253438575891035178458742639678628227928084356110649520425500823046586796034639921042761004015905130172771264969781028829960957787894251323079266429699884211271962272370294107777430008751023506369235086711621765384679886680925297093523617266527457052191161545691123022558116041821985055457777201293984561270075452210594122065116244523096296905239767141454768691293711211208210722021000646048510664880870119041191834611451572311646884669952907742118711419125617606690694295317480511579877069624675452945405143730517852543251779723899151180212611140714457387670667241311632373927401676076581479910075545873001351747184262781296225847027047141841785786067426598735931424443767599699957050931276454021833558952405657390023116860414770806803694223640631797289297713712616722930330293216938969780989133711226427802196137340185938430656389453714269122120575220420368438156222118884829764895450152892748896191820976827568351253549141083101846170741767539807592437491959510184779800555663869011187864979865124101774720274170561611868483984835879066450156166044919902917414308339222506962178003275166931263197471485532989948946331331738796562260607810179374345453848468793815965084977133960841059040406356644907776140626343585284372008724732911420696598601519192976265527731316131630851305048623610299453463060258503365198604151819607331310391956349177361736883945738348474088936216551125706316357600891112415362992365821199445223056926859488641409637232642675971546744318836353654438652163417525582113573277872903217448719031914716278718733519262208264950833622078615796290733256501457036503623468191320837725395027364235307409171237465850258531292690434144958441247832458164637711470874366326635106962018527606292512333288889573044576587271999401936969519676353573661454440824711981452968932223137384090097609801520167892419098781842579030035715913464716414593721141827892603810257320339806856531135155906884860840433047231706787715367973833349689662116515270511861979771750542103295522931185547989710932449010295197862331247135518599408946044933617102942068653294049696885306189959381726266223242166109802993405110850271291305413791062854164553699896245247326889889312439278670384047691736155915175955325078973985807449944415920226013179363116512668246378510751941821542383835602887538884282276006879535183145509166158897663200373253631783343247770455070886136784761939576890540574467038039062061888865528947140534474591145405521358111942571223906310800359934339481818396377967534400606441334786538972195902270004456527995035433651300281899856286159308158640737349630952085839785830740338780700209554591793429620534542922285462817625640579316899400204538714286938213150675111668891454591346846397146853048403784267998333804794897896653174404445227288858329575327160800157705038417720792654197011461992574529855460109727291335578438955682651386337124380035722215609744767233595836906593097224425227794624302290665138841998297073538677312961945880379992939430111252661998916713089328015342229007553088112097488104199183788795086031424429179872767181568997304684387872573033405100034071591126492981965969569831439113751750285307439157114867772926999691555411999722601091775220822467508783996535310230850450494390290924635745146852908753775873408356376248152156004167906739942387399667437688073515479730963296339382172262703612465121865856360029536646933017567352153482965874421122966397066196159320133849303469917101922809920017181246877790321344598991972422230449312438224761618256134972488959801033784135915647204533075648377531670189618663705057757061782324424974153099417112204939574550640577376123534956157192577452739503739270709205599577970168098470678298516757245332258180483510005256999252309025774273345581128847329223277588718948932980777570215331391695188632825068610675296923705833287455883703690774068436783374249530514735703884094384954510295390477078891678400383531229477863085176240569033071266112479368361463567683307921610997686984556343540530353948071528203258328350131109234905465460794204787238295680331301191924136078051567633863120767910986633909534396090542926696909420431051341735293869681851619137874869252375212029769057290546719340342027323611526694198097564057891666772016671757186354657502052449328159013876177138721351735300320680455991234816784242458880019807478636539887852840476490240159062366723088860623325546534380465173260640864374631500091403439982043123205003135597100041385713634697977558037153450080148813706908356747071879831309095282327832160315583295215823911247511592279288559069578201509284267085072030302466548918752365475458521111362315390659395932896436989547466272454400171167146904756174156355937458397514498188699247489837191949163130799179903890461395513085032121773471667549088413254154865858445388109226078481332787947004911998335595733004206569407200981152368078194758339948416285661229601533491686516734072292736812745561959293978063964120576729740228616954176615950571422682666755953788034864564954530795820194091476498772442104810303752511706193212614811526834838893196073279902065148317605234519629490362085440315572839223504597707820059617847940385699444867959979831922672888891812449537210078006385159309292762749180993474196214076572995436915090144189205749795460703845106133554285483387794544874611030303271957097320524629396987160213040274028504910276165125744124927760980650051898017397283140133503820716328009126165343699182766867787589834714429236696219118154228843312264862648854842094423205529747791963483091994932318448611449667067360373420228951046256840286306193510282366503513768682784634873674791189895292322118163594381650446193727226787430950628017455334000080592024329353690683935111631297366656006998733286909828269767964427124947776388729175788396552984436427769518325212900325757642327873809695903600831677615149824109497578827273876941644889850676218177505942726837100737970109341463661781057923755544569761449208212526707004729279469895484663035249164787310383817440760295280849955154463230198265209577873957990451411100882990811323344163493270259890981262054694716278070635549159848312388134712994801921051280152199163468623016731603927520903866169749605848241052493096514961213676804058929666142015759980086418404871989679766043571781200053183435026653120203947325628699708175687553584839269135470725408493689887714885032601923668690509237482096204991598398789561340876117415138904866515006671200181987653735550936035495078489108492301635341287929173684247241258709038921858709357602842809643984864397960588383471500707877436762967853922675199028745641392956597063100657804404695763532165914693825297325312212517338056397326400546097792389816785943989110770055730459502436423573666609758193294965490808205059794536454910279111481608125418943431962283231745832915230359592933325445064042663739894357375363490917338139024268677844914927239098038294679894250537019402276881203634509860257574889580801413009418523267293682916226764980086278153225713792658741744087547907764146477188508163313577808140644402091091921123197768005484116255745175472507686514944611415111959399045595676999931578754286567368484601501792669570414563343515816144041636010295044371802348707270548464276416768806103364259741783687103572883303878368506317564139795341814943645359539094898906823194798823298178353104344165901063754060221232632968651922432600192969189920166414549045172977151565737463242410833096099259327062520180487909949748003375289622166433563766090870020092099614620598659740802425997221541332229426452321921674578040735003371559295997494311121614950650854699172383267902224191714127446469065733274352928798637985765444481436305549827364302064788977096145334169042654132983945125395030445864840935865106395349514101623923504504832579728303415746523732555513525558200714754402885525740439699952690819008341816439126040136574752200144252017374294693907691693107469244077366193166143147908081543545884642542079607441750311439602782276789951232887721712600905842417634639867611593385557851662706555212497234662054462658696234452015689700012218733348776846349837920740785437335828124517694311667044942711317285354078300151371500521979228997494324540719170546360512631796460136541283246488708139245624014295545979358302612495283426010719175418376470335299222070208537926577194368728213423417195205879437155923696203051703297201245781204644929683977391522729213458610234139679958749651018975840688385212625497986674968686986601862270385068927122617990925693895027660552616918937387044757599988115252595261555065228654622981068150125383933016243170646400097127407524693476544297065916754209642450306782500603711673965423321503805180829097447382595336511995173396260924946723796158320458191864978338984076845950226843395027365175016025128461600199408645796435692552407879567923867054939787738365615065968959899502010587816159444758590610579554840617450267419250034838736094608495255120937678798672446717797093394096194983726674018981446740378649032419395328669266061563516645414699123838488079390277011504060951759193983963765017855662648720475135967808389284872734798702168322776552360086872399054922330236571052760536061868562321643262306136932044189563717669558976311176197102452134249534003867935019206789720769786216318283525923996836431151783126117844140266787744242464447085204969034478443033546764714938217589005317671085095949251628938023717901425458020501944533088965191575894320424733287861858059900370730856317964362511144111802399505705909595737649852252216690544438729998120994221256112543559576337715389374734763396620280955864655915348984331477088953985301825490061839480673998117273058439194810131148306492729670045685677252932223140121829125509811300027900304835818314588711110119964939173959532199125223439137578362311737950314447635077428853178167505669442008555981652294890209794071032745229197111547429006180140191589138902330075378498278851901261163189742108354155179025557935745311814221838532646014067240902846252778216466756816692146423821301091506539349371195135903177983204965263191956411260939033067187442102787812529502121399410827725361554710736792700512182001077682906822934662158245111118250674505013653739383306485772735408449562671695928481528666423583199249771013087537077083981801510094854325347695269600748861089564204022056507356861046145596085258064779911544663823335264499201187284628829854384816575166616389561887489957530653473434424575060763867683515642441002201459879382191274327090397947211688425304910029489931326152790431902384122498403073278660201380052600315864868417052492422631441964701307666811147646353345011981672287487046015895120806950898137610283866087685939112830697755669738870501774968045385597306948318533779797764778806062925436546281755855579289321022458602629263060954046712039312203045197403488588750643960166775887400295003712821258356864266329785125387121296072231448369216032219433671096236869048570899048825771276973880429577300870819698770100072741839401504528940199380655172738725498802723573296470525294888588785369619445477928098103840970600308829683166646210265695091057717704626211498544844939392565564558676298418601132345165417002790112268213487364280849851071842288119058061698569709695170782983444679321524441637681672765958996373328571286818673061039490193388334694247714376990188745137113665317017275172340528162941014471886959843953048187644808535003101322528448706139459137947385330011678893025060286805666368094495074322470283549880884328060538056263653041634140497576277885934758443688390102609692823299372140545538681783989317643086029845599661379759405326647277913040131729345727901525405256558139979350273648504510538388158108278111955493875689402539350181714800345914171158605901622129023992855947450221670168442073725735542528512406725665352585351662326067184271386980496429220438720023111482593589568581952773848061611081290372996337100842872763640242764248795680938509333451679535995110272341453664198285173234222933485814289072223979804982601673151559969031635730753907453332115270824126145180570034836222032074312449264910564196566214095399027271709941160175181435921989542063038372063558009390315359767145023277486376830405072222209666652918690679113644846323719712635907629577303682766975801069290772964640276009538000100323162785635630583455976043715940617661798708497547331393995447882234326651792505222436169611259969281947102641677749107721770395600309407653928393047980183251123562209878909993358595607244159560759056436946787669700089150338151604122560857733697379936682864691086495635372046115391378320663086000333141040684599305280809329744151081869681925576369932694065242336966561109949342000422436244479547377563325701456703774835872850174440577784684486836730445333368764482500245623549258052646258668056313402824589454109918588656107242146408266306648506083953395258272243470138998653451366233560484501138759174677987154656862568920181352186479665347412589587666879520198157474639879804755315237399468539030898158315179037101668931430669049761408932871721893206156290133300642726045600600894526421218295595530125971059999384899710226405252940070190747935691886718899291221904025585177596577641251510543439704909794001096633644952913837594762904208855954820926863908470257901415418056474716677319000303248706338536009709823677520944781271244230903011195663848259401777597096108623929905137873479018460646999513012293653053856181531267526228494337588103400406651692640384815396732267829156495361235643427357236323265625051459690235212966942655581166819290091761296184222043730942726794331890243786751153263687653478349626030257205867377444829610543855429455363306696122194286625102862066783894358179103126605443239103298060217565668460467357406777413912907254594569397379333797462470321427996182319902280119904546591009079691347817086558629231895133249935865985999232988967361817309918963394960782155051828906757901654580603111541797874112167003918702487401001085875130256335580991210907154924192723379519839347253361912115633214531684414187475734559890995870420201820422704041825789628400602729776311667870381699165092486606098031263124653882618510197472277964365753524146562975565226742264180778756540829129226941976842393032219219904266216758390422068866111120411536272860625977106416049625933770141383226154204516440888202093902245805283606599892075829904428985819785940122472665203932282853257211315753814058881310972161455948254738421933975357702161735931593840741859537236800918090337183023018469011408094084069473180823975495657159136612635767224215877950886375369304487813873620413445420662992645960896014307793998307372548263728962483361058091173056022527674368775471253388428083133806409718444956615314180844055944847660565995929441989932635021105404873351856075049310216379491961238120461200554705144211947948185719814790225940565941966324520969315773613568011542535513859470473909764267989270527952046241373283534326582604215156464864048856440619996516015493441316658924120489488829693674686740255130896884020784594199624809670702570252912970696110665535142378354718769430785613454945692453140486779171308934228466845759168930038124368759589243304427163766469452353776624628834689833313315473972148999135913809197796311184246656057733287217041666791861381316734305107424533384763925012364337291255357939980202756915767131229069229728543022240730345649707973846350249424226394011660825613135811953894564001977002477056279962356700145407141717026943022293049420918728389593537180525107285698636773341676422395598295751454333149864543090632333537617003170301869894002523186749340707620314600142471599198428125558416643423771081037842586551050604148351267341226060729331943546242144629402104413863498237830720521243599933717255186991044605978222471800884255420572571768606738504610654467157755525342653678753245804804740711500835848761461563284585938657468867789105658818567730185175998739157815649397863224953057656646875993930219674998559933653166724527533422507730901350110649643609923871673204656895973674672581145283913962328989846090166188338382861616409540110164128571360714666166008812826659430573506833700608680705777619707194508230131160078218326818157860528784239577979163462316602970894405687686307368559927361969761814970702532181700966318785013671772194024407459815791147958995718171716483991062292997147549121149444206953448506392618055011931535993692146062292448490309237119528117247856056404117211808503158645558603361571653429739052366136653741157183819293501962049015898183659334860230981894252176082834707662832131018768248267695043997878353806873363574263789082011225174186339444347487304302978963084840424198342072584427203946750606931494877125028783613949942909696945593744704051769132570177007648463375296049257557809863369882086127915591477924316326351996115677228842868348737866862266040917600968141687111950203587127097858707839467286127580637116897477363407656175954899804956217220271973053604300348154949737127094357122421799646696461084543431515424293503302749777708429937387370053379280832562197593406440075012276602652912157097362850083595977034315618784699118188932877774438699400487137239860892789762234571055845673364400789305099981034674535709638123161342304167476864664552885087237936889579456899261756595600435694930858223420493985500438001739433037817637950725512451525417216420138531113796241056977170850169176181810789780788310054748262500160121875558788625034792949663808281462196498838885351602729035511420783752306849744398564738699302812348022189502416142208887789868229402116581395008466495622975227753263829581089817256461575965440841482579707285999183407126323208972165651090034443020025697323928614682048041533256782871443666101852474706238747503363590015754953443256763912820303513651572713291136719292107742719794484063850113405662670874441296563419320046917415521201524898852865586025476298519827634263084879394753132388339283711393125973572352370916811014514819588318528944234332396171663528574662875997024896267898111425687690036937583135400390493205736725626620784326995776695506394823704351800255135835915352883789696473319725959489094050071217610130054420802712081883389407050854177363724798353406682846704555056084043192525323566361744366449873553651089771786802296856103414913597904984612498296789116643734410770646949353849432491759700873803773844629526420286444272962132463274161151150212223710239977441429917597859867745123012656031855844809381453032688526240153736307516803676174047100817804036417940724675866917415679685672388561651389297483011148927277380240021146061317371302495123945696272643625761510519912485372189147255971409761915636196809312262795186496797192395271875079374330727380173734575314758280825292518905559823012866833011266843675898907997915466864111754958645572077412333618583928255746094027688616583719057969037028249705674094164951902729195173203195522799778574167964173821530798395459329688201024144485685230274170552896926256954049113582855808684330467939267538858554413768837077971851283222706047677198272049906300750345457820414881999831652414484441137322559112653845948090745262256601153613177882188848839162052439003328455681648969923877142034852311684251966049195380281647450111257148687415147664861960506028061743400244243171926139672283210352477739581961756014467999862842209112828255609843152036940964171047025478531278890596180081242831572899057866237429845541955814771159814965295862386456662687976649541121689193635539522191953202270836808309208747387307926634289759492456659313628770108992107522807693426497197668140070397856248763889849414756409548311236192015305297319380854640241787711085802698650819929955706330382269070916232990090622913828707136980587117179392708995826543753261063894736912527134959506629669590533052227625465152679034954106463191000558668067601927189665494352535050434544606195335836925274951252865508920424515314005419916460788596970520883697704182695383665011102257765905804826416150244782477605442622359332947924279589581735733812685640596214107439139942079813522710790907968081886488964054255993481181314546689530210600740304885965847681523291262708040248104455694303760314159937868991744019659264860834590832559657812764680651945104805493380652979619996681833486867683274453547672591085946103234083181479526924133638931135886025372811125346928017894783900345797232632758772730559288895629669029342220977835969200416587552296783734776585780296602856232782368795330896949999673113838255574064211080935441238655520742889966060511873954645419505566228205493657822262699298976930440964926254074217631299478636121582715933024704289884746300940362591293996559073784506287223895796120291090132896886563404065125827224952698670852989489417006021448348280205164762621829403587469668580832710442208413706741206892428909192350920869439490830029498196525530002702594403135279659029240479759340034993283042014016096095481146316754213297119535470159950106791458167589571239686507471312444518030405704218212729129311846904744438536245191772707902972916667574890315141647629326976428760226755237767024743046962357943943263578768297793055242447976476569862556682113021550472817350211786952380378929790363563894569470498120441307951369004462224965849274951712561892934817348953214301414650073971688821434406924554777953463843894546419900057029608317261713115485456863262473749161036999425231172994876042806135217463951046297013601589782177950225275379752611261178811573944498631772880656336371758012084250002923073604423317590891065407628124628612139985955381068597351132108848268739252484160173962403536007701441911023203131032468693204389708617615869840544237779175831292640892122272623845532115916600266181689447886127971175963454071332804421210873904492656529817676602668505735993993300195073848416082092190021037091710511630772793671789995449813917028254024266610964677588101645954877402388704039251792835627343253308902137564290224949741068814740717779261297832619804675524637885818177048964122214325007759033942029474091558398709885007121547445554614432373833673351375117868437544918479290693731571003151092204763423339840375162560043435847062565163684602090216273746244276668602198054067845570807935929569903155103540364558408801794010899365003759914239348277849513793552238751389868074245001851489943888999007494738070323558041230544435677407031086448181449852412895056918766923409974281771280852571637834746531253490229579261258389739016969927491855508303142423086052038284090584106224023454697226977373473180286639062426508825027654984477332190112574880340410310045173575908029427305766260859342139839276442108918228952088872230125662224155956525742707558843579144451495137436143303759499389698963524134014627565781288005378574091442083734348947125363561164496736801191945305622356237340900849052972406102632119289421965671813428582087996740123988111564338906152564253867920380195546294240597634139273029158107025072524540124021490655071728487183654883364085433494934959023504887714008491737767668487813925379093008627738454231591164399049149504848789723400837047833708487618869642927137381092257608792533549002149530710463242035139965785517608073928049974267810033327221030523262198037051911630259221334510154568841102374595627407276881239406113056434074276705932438097143794944548848814477178984334177235648076848127153136402556887503315064476478550395732837760443864496287784878164613531021941025151930426811331432922541575397946461544491342635682437608310540014647092674985526549571357892958426544947891649445405729582836784016936768242090107794841873195681705004384395190964851009728335720975469535341412577739993079694434980795251916390169468123163283833245459497340684948289949209077597175393947551159419679875821291085669656887589875177041851516468437291470844445270481902893585539514969906511906102875639916606202963640462764503293845381476466210806276416796693084360193408168942361737823340344325424524425517108868316095910687111423809275902703353488889388031953368082232939517784180830031523843132517140179612773669693107323496536567557471090875778156247498794251518173667358440733826435184312013828572589379551066199755303590422476802403743083643640394183846626190642346994312450121450827520972355449941446519087977581177569067584023956548311129634562630982235273544125756780849705176694110898314426706072083986927519380048969241315341058703533275893179618742563979304313782331333244433950755109995155670263359081013922759918118299540797097854640844300800494483920009716061345055309881492525970795157745028557487998803465634049240423305695007179253860460111654741352226271811252727215995178440950673399438295294468935403291164764168297593394530816380552185564620782038713989048795351005627335304366339165536994391452340135988915231192849148005600146897623388065204475877434530267620922216863745173200692324076770262074513702374636552338958725601579884446728691535646694170099712965569509722389728310626151734630020588125739100871669047306168513395072704390083392482288636856976148963580662242887294972200658820076444973734148045035924932456394384759291033507463882786611701706991987529369646655424329714193117461722910668781007971730158490468660428609354610525207308341678628551257765172179576052939929998121479931964633716790469715702521542777268989695038410287631159471758216120102621474524262874905452891144887922891484525387205388719883006003204059792163107364709579539560317522594625680828730877383439112990835360344847150630642517798951229346556853796103384182498382570478395918509555418178871332805709500298322651071824479698728889243829118932200410102198822014814062173275325056775795932814957995842577431725100145170721375793590297527424063516466579856216366365105394062809794902196816222349995157686410036389423313915007815080670372254012201193562486757186991723522844152288474124303822185124306729466508961346452873386263946612822057882937543632392561734919477087479000430278585441117892375919542099977387814691190324828561416536450326300908078938941017758739729302636292981132117490826364143165019334912309388540193827499569163676431122575955114088393506428096888012825253959823902496821576558111207696672717735272517180369005447038099053423692352778134433461661432188320671072987686000045654513083471629679469812342310115685828299340504948492016054716427709673892524204643828957785202167053042473913820216622476907563456320542114447837118825970647762309497339509024240654634011899429635333515184678682938898952639395212043458034436613402081059952822412530478209456571592707549163574908828805608763728980434877221406747407354385766083736285388707972703164401583478892641657147255044816161843640437893144108799818749733884252062809139570039328895009283501944463299859820132912794458426617804676702289750635093032628312635814794883474153808032793496347040994723996616631160852467454121248527519177561234852080621102979315180354229268166646530878259631670189320859624767614950416373516985538507617017356534632768621420484055039717531491391654494878486724124839294989772201505983088752931105670194692082834543510796941008765266331806953778385450438539435346625033546452859199589622582606617128038481831073268002022165478997040083395762108088758833910567028719490104678714164814105535217778007688329156247530153685796152112753781557725880790434881790588088206279991079878775562816268851581437514466330123425889839842962819912772130084717579456911039692154802849088182846701717163347742041593219004666155394644453750177314186623889313090802698449201937291778446775226057712751117419705553839067169147874271853517132822290927875947179421420272869669572784685121455468709770065340867609033367967053571682151175391881371575845977574983517699997562919338091011261336287668138175084388016381481691190522262791761491195042602956464492085927514249025873389508992113466643349426179353067935445483652040766838739556271767241778270844640085434501068589385194516053002963726742047038640425820920475229435923441985341656622238249830062858452453644662362825395811216960910925127517035572919276022169026354707987627032609931989290619645010830512613616073449107107260800656030201676306381573549325420466140953719501398726720776933890706787632200110680745514694601903773109109887944042002546298347222037853672223261371895428795447007010169496230997955627025115148609587776970606452068109722364504938447727644452274946771682375095068952758757527592577882186607904026175393586800740817154501183499518185972553233352981369722676873501504355704580148443186724843652972942333032740332943141464778662761636494595772560228706388679938230082781175138125357448880556584732283941339349128470284070234087537605242508943860836822087857011244132038411261105848435418696385214745976075127716601288764085311814924247260907293874454686734718377042919882048106640477205396848697169434633604894562457109528798865856593786059919576326595431219730045408858239700128205409405464991348453580663533560903572548858597689154516806884007329401377985159669724784418517686542642708063882936732788910242276995414998627680229561460875307224452822402646738201637811365751104216648161478789090023105319017048866664051806885837196293413121101305960160843663525751895080693369779725702236143504656019634778689221784050329985715433183952393156741657568375095712505446844018015290209233998672331885187669558703273159619599641271725650343443926001990198338796982910448265037223303204342830064733332162667237516894301639824690995575874430052678135695565582203966514399064452765630875140230085314874593720137024999673745423017238625400477357406120767391646451830086541949724772560568525771600130068641062460587085596787507930651814125819303432127424432742088128093082632303916913020064798489955223878528896548463319364787844566326095521590553256309610740806856744515746528518995155828925802173914918618003248308936275957501284092815111791866832930722592461019188300498599714170514708783758242680134229980048814173199278944230034595740760965091115058818867088016852688970019480615999662384807587630669672734815445125060988639639346493938930476104226792403951255789093745771633625194223053482957917255312557464760083755287057124315384067971495640723802395956626167210061868526271312586967499720060832732965347325336919749973931180721433068663160220770416765918475166809012632831933316288606027037101304890221278953156238136823675844140720953731094841059887544828565457717017020392304151426810789693389773985252200900164866914061488791072513636624711561615150820498635743657380850760406355512058060415582909466822202546466889022305106108049848309103728041555966926584167714505437847245387283088363031383598144600585375288711121288361724429811141045499386150623859549815892066359369030748628684924268916610844862907610541773946300054723582530416836429917361238748287696101705530498575168106847580861683890436454788450381780786414614632855493007320168857500170536037540064542820466657336958518680366872755326029138233177390325714061870880247214816425453476476428217566261976533269599926591936322839130428815744500939033262843583370676972281329552208862785906196688358940089621344069669866517610660325799277836330190813806155772752406782628771060377587151252255449771465417033606945968897179705209693013233252262563456378584581648826064245637563254599315099096505221462361785259646790898284427687846011556234213867060997675411396627252450142327110289109138867399801629580223218686202601256862773351021866019783189814626806632678560466885532785705536370158523531972119337008809707845661487918535928957539006715562629169222024121669072365078221016299194345156988269823052871330150923965603161919383923507633678142969816926815958808309401596676233821148781829650205094554701183554248226464029185531123855691331906272562550982896692050945554572762278783937443454923201332958323974498227976429538556954782391479971742619675345034910764703688148277368791341106193148729130320149740337563935986722005371325368708042807292335840306493795823861545039065712210784627142432043062163247144815378894330325668653334248327146255018679290529804385334550821661300866019803676554533633625421805080499327901279905236822797213700289257138272857867539932079458138315855842597032474560701033720429222321732071487974549716834313451005630514459173247220676051126368831257032320835455400303080933714767521135150622295744211214253859104458388239962236279367465795774523290336562216631729861278928163337605302835201390860598467135286320370362564620937731715741646550367318525098150743134188132178381767121804267778846504484033128937440900076327074548174913898293060472280234993764428996114509800366431838552342346973150030886283898734739342073824781403339859531352560871083239597705411640360213943254629057416306141097802187065385685863261184891100667868183808429498974732641673564395761383052986873614843374489942424948653199005241037328385284033382871167950967421437528791625079397043848231574505223092418730275796796531824425576892389676335137907856132607389238931834854342991896578182283643717847888786427888166957422349593503436205593120956416353325670406236741077548861047840744167005595709076581905638790808585537555596641479907799542408888442574098906553655285348441982231987307121331330799997270029858819261473466570394113844028343744730742543423377735956030737357520122188856900918389117091931703551181470304211068231475750434765433971452187438696239445664356381021757498309186986921537279362738438617961786191564410604178123316874999571846646093598898201883658386125148552125277409913227214072221917341035720481378193432380724497190222596279407361095160622011370896349258841879294961506010079037317716783647379898957052804793168312839513873921238094033506922115347786958837881392085821378435475089211853467537320334424357281423321121342232307051155439233233797372166552269699569606632366667429051568521556693073106719250420178239769935079201496913262199956541597449205210570418881220198659112462589579401043635929032173594951628638150749223369213715675855177939195200781047077236482410864181854300660151655410654509158119143946013544479558947188199758165515291622003858239078545883016966385506414558448073370597011647324513868152894497930619943799696172743978493334803853448450388737778969122023668011739870277222488296028909058442897456775315250956392545702143413673813361235194458455027003266487003360087492244509958844003571896068303080640573428637053868258294014898706064591352169234980448052019550801726693876056961734491332757270887038271796499050734867796901347669318588708959748087126627122631618622019291391344283985940708204818994629853789160451754691744619516922121374213840378659396421239584123872724125672049332941718395580776329312925089092827000775396451664843367423683698827678264417015882751507580892200341377109381564725409559315769016803226793418485725736192833756685612748107984140906431860918799057667612064189573637045457543785574723433077419967163141277052568546792937269767887001061466270702917456388929599566727243016528143847205856496960044978826687306040856905797099010377622006941960646502156147418987916778078567877208149762685232032821248934733599609504942575409401867512502586999349212964479787448508667334535282732106536263049326190530818086001549326066689350231653948509402677812726707379841625843657555146458272192457282029552644223902041398405846284576039983872910508531448309995595967384008841209518766999961644917566146660279582830220752693631796055943495530806564691772826331035358814213901338740488797294881916251767046099882747780030647297800269590340301427954587362661312399124946793099743143819976754774224203398852042646459677273075798724649033692492503996561254878666224181932458158947727134115016077896464714516562629635674704433356340581133214501775250354474975570358197849596428549760473339174634823322249091375686210731930888885660388083325279726191358683325536115448854571635001274274966759306206047617837930785864140564005650485344129149668113756354849507617233413126977934286202331927693888089539727715175561815650312935339227136065955703344864142541503332565113537305853254515297278464547452418571410635719000155197203086471884574726985716631385310984927016210900161687477157672159457621430989083384393544885764913515426180157475019002432301702683006654595631031220102060272049101646609931828276759892856696981603786487840390194344235039480709605924174264737781657303177979680988854995018465634267059668231303866685678508767894662707047514853732436001034657431368164009071728165214518221188447433879149178576411566936816509691496239952804290979220020862015128733327472860788341714261162689894687598621308910960384268185452291752016978302953066691640845962919500880138759614577423026941786727006889718965874577770022680971209345942838304128636756984937377686117060475632168397466193882046419994986453110182040863727384479856585785496009382877550504367600971734047704049546946743896864071615577201564804085751434201125470288623125921866668845707625613968685319645601878152834841672418974700523623827739689543320133706430730971334959759549834277916067011808975807658274789393288641196172271234736565962298049208380537575156457744344365571267623709320445644188567825954256491916467181437526466844036988441682728511702747243515737194176933994476965113836763933324325543513554930306821875956922006053839159053596513638948648302876242852721929674604478738469458455366469919790132415117956872217000785841561210648686564451627636427707322782487466083271010723125509848616905201352140756504330666469105934385570875518398581071009996158716252709595255256612339458942151714296927206466132024070280188070627091745004835401418420841428787837400882921627656469735449723174258935073526875373308858379649386085585742111086826896468129098413247711209987390307893321435789829459235116679148396716438003689743829459597249951146523813494896339847033141780511493375922825852879961897655413639124890020972554517108744245335272863260942833071122608182373002737338472868242089795721125689984288912308174514581306160691428798768490673595056417190279356016381353689755338501982877798437289725701756193677569001438307682213949115207018827418402685560633724361928916765517382402416620590682299481803636849376974866799584532244424123369485885061789691846537522981437336788162619523392413854501216674596552851530129612155722473011189663610513121622955432618573731418649413927484993002566363696887290417250984815030164583063381053239539612103725616815098525239386883899148451662719771264320712908918558889051394177029104729008267590248569745476334150355967987111856060416346004626796282814893158915945244655223182436083100425962242092834717120557140257672258952395860055145093518824919048048941864481775374088345248030027626758561121269294868405118589658176962559180220770001542877781275200007430780716016091475546839422833251509238704452863586936091077295138914666935605469482493914661050981708243146469905070703037909774298407417780632498714545119696192656537912703062103731917980150680286045808389712515073024717579697617927358070224855095176296621651480007423382264027878350157984125909886362619829458358798614836808443653873344520691726258834773084325420455739972528181357859888807653459596233236588553563841644880795649514772821312011022366186045758397266708318467313272078878328974232484287180452978872584912946170431024749024626897519033814887242515948633863777286800686595235738527340844229929305744620926863354210815890706344339840348404689711278735107649515959828753633583486919700535523912648634196193899979005668284333212691246595218057537119619355378184676518527319937504610642738636203221146974736913476688779078910269162476487953253078252007085721490615706136677535650546977057076608041067768311436906405092870570912019932636738800771465872027207466906322380539514886002761507453096582914352747769497967239045875276787857676977888501233157860598633020831159030166474639667121715847709923118053800868810078481272905900481995305064707196554952798849405423368649097462409484014827991011287864591803063689729480403456044749806682517335517114033941663659943766144131688068958674875429026257744189692337349621609769783678440487963042974582548410082806757704084699937613830455970946241404133830045742866693996962379448609703085103237314607598205683324169817538619430667890704054297646844083494150993444809506631391281448005062848212871403979102233556596875782190581682455706490565502586470804144142586492001889604194674064058652368017891427928994490732673793272536212162842296656501623576479637212925904696216263426050386931528478836230798875815170776689711012393996834953858580932701668446984885713284647168016608412515891505016898504851921102663446022107695312239808563109762215478403746134385220363479882696340434750366205660909498002795232927404395452498225312151601291622438143153068366422283042593691867628445296860861416820923932750732484742980522754126355509034325488441919050443547292347374060348702362921542041545753100959494903444619895713371667705916105074349494232514398486566181594642979237904966596096401163358257812873873087793673233032769566582218399344738948974822222067150956498316983323882657269383462095497756350371821555352434737426213157190719275176027607071701975833244852006116403068308288394174360328863272715266721447699064439628717303276192129519918272768442585495650861909041252450881832546229210862222418309748819945229677348174851208721263955377332658868710314624332616915448936679045383912824931348865523052869766016311913788929578152869633274628511178966183867440361921653419301617685274256951815850098498143163644943557779038041149734243112477389811378467701606127041739066113876044810108408073038638954162744102959951326337512825713250507035801792492216064042797790358895468953511390488131711397822648987676350319623789891961798205713537750673945486363687289279031147586529256968494087351085686803834953658900814080313064792625026542382589902822174142743940467878491812029501808305569507869811371552618486669674715061515265155035154265298124800431586677885649841464982468899367522307566337993583574035854013617562785176153474132674937730857098163989388650156343986618407207804347865155747178793629555606579856460927417973143651695330235510878361706644800048403551956894485634125537170838667034033838257914694710255470278153661926081217200348348694629076821596221773540562884086415190376264868826314332828547754520908227966802371479231786587462013407910375893122583364912984670472235258783713587889341388025502968309121843729379921953881321709870568041525458306021481510568344769034883082810469368525889433377111948379822989467204809246458991549763403941008589684462243551293492827260792957946651103242199445127226871311630957418190472741149631884960804738577867955154661552045871652299735490588241119618968122699693866903440486511237498153338991076392030702039747813007428891175075467033497682750358238082330438091677348488673930488053350247211964446902542167163785242959756558395994710597423865038099594603082519030980789962768918407832826135400751914992288557887783482948789393838101940630016825050778760620625754652919721424555093667620409964719955729980475389863970407772388327591094213335622635182348147673207407166997461373958286812853982187821922863367095245769104524002221649979111521477479422437406371960483605555877902158825780959793529840314486613175466362848956131701467701207833379194782208126049710375850780870585406084575391451156542822453408340836327025453415024750795507303526320536696342175924432572775944474354150780475658284493369839779666810554679449209440825889624963802833327715199581313256083689188337887135523490371228136029544357561740661951654572999093611270061383260248553113735969680027607466468950737920244549146198780023453831492448603245275243493154949078408264774312190034663808999040983196245754663845527917169822804593009364181687601720058157803176662452933805353172958271377792755741865730409016282319431319037989863410718648781242441859526901021650308694810674698505365051097409580609006811701199775214255442262777804446213120357378115778149758025290454535970962905340473831385447504760096365571110458264987164494078934766747902545822707586688579204557355710123869063568189296940763840299847841877238721587811839532445018997530956391510319090233934152253424364633651458217064100844984864874335293601418660948738456021422909417850000571344574729074931102019582558220323632380823692199059499433129111797260321565745667223085923710491117011874856179858089236668282858840685178704714122454599460865467663477099368969748934937836634721928416140226864389976620190552757090742119067712952713926646861872735958896983164579384321652249904805503313682370201249568936847143024492933324352221683311907484308140069787453478827341154282737696217020458152147856295579764608077332095411496817197822730516789008495599105765733206194400144892459677552728597333540676199766563171782294563654328852953086777248298104889994076558407421770766400404434016439585216846400751665839030602503750205431054011239833217766853198759797248987549808754061310113605560500402757078771229648290833169878246867206832078882403200866464115753164250331797199777211033963023193326761104212103969230292465377861099766222758833572071753203594586113806277932147726150454467122163171182443893421185425062613845841311338051144127056920290702711414304632435588357256565638190512309132317713718087579225267299099709110673752223690648888408100116459461953595777983755952394651930558528726600796733332470806062197208336317962354846785912481936279480904287801466971906632176574509794907914642279054092118249571299637102581924855246444183328195432825994400442548322017665395662301725135449549150623081327820489284344850781766840071060919171464820041966923466648441141089445108960152069345711241222759704091413805675579919493709351528595411284204325580581636172915816430920093165160754591797222232039374595199429114164541439022402941943675291261880036354449156403553719158340819342300463903610027261316061175551422013875888497778936530311313302386387944396911196512065911891342091775121841254056534976425746919260678722454219574507903593979594536031560285499416937287655064327528600671920810905849470835178143900911472554446947389484174868470714628032328525189619818557676005840491318957919947130869626085313732353120812148164470576877313308173153385184972871696125170592637618450507640120959483873315487963067067608397225550303257560372012838999051232240138141026346114409348510063267897644025147826544413710238195355696116185146938106481402870285520208482190027938469766370881192044684284496099520406106088090914171926870204559035008373055341815110423973027982083500452278831448983353368211766340603526529996447218268292748430905934311103175508588915548827888141370638717258509169174062277642160259585206399275848571420613299536240732539563164605262547027695815329369434028411776399720361894602490483771567342406104236768801358489668248471635628017212228030376351351123180846613909647131414344398643213318256175693333843186876000053915063484505100387912434695564569684160216391853142891827778645890656074881569629663941337077338897860688301159783386171915145898554828846470498398140425885447903848865881881543221691762119605126409627612418592156547617506413600037753138515464553109264138501392496893718585232660774891900636596531907768751301432869847440491985170666168163167976221393383858382942936414500429355820389365907939006370084066400685179227654979373953633709971311235762331729142289905124386454932388173086526566012839896839455274657467184943775636093583348514569508969448442373443657773430083137451226777108270400365317611631189637721921933307445651705448357952091358178569937592922360029776471817735625792241855991832256702513000060866586124535454306090583844349509907324943168429816793114329422162172695955658628073673936829395857839613773196692233883040087414377636127161992597218851287217467125863775797513509513457730912626301482149894350374558480256306979443165550586211521303661859121962036432136545420105742750731405465669595580665669664817033912879257907200536218764106333306527467768184705421441282660125219636369398578630293292388361214462541360547812009242733074563152480050348534372319617006907947971903699371359749666874101631908110408777889611490777782908504202076870034105087194072434754365834663876024667366574113798760590238745751567770590536572839388574040964617148945243249576007013679014609064563086173175700942818449719267798208673707670294411319033626658749270758193179826663151607308694393341360838974623513865989714680325613889438618770025275670151479672214053873705002861688871637406334351719789738020603959854720994715898917574603060392565532605547553945272400713166059320044164720070052325409622403185421012764461320079646745283065032034498242657560248961771785335436172590283669706813086461150859287060779786817463115296564094350279222313910029118409549272607835971194561821432570673867055163771032412118225194849107170857241614267712253754861618194654581678965276811518743570083685468372302278340190960392836976208393817825426832232422475753834504322933948478086265455899383060614878597081136059456657214517799334604636451920333271764184085948736700539186669568411723461206923353623155789691617502639859376938615071054041775231386493558146177383751472942567935554093021055528625292794244320330013720570332614779456575411552565951702354755429617109778308652909071619251819387747086951576505194032705286513062675580298379558792583585310887854140791772188775964510528409870692508964501877683864784271913072854975005952814092766975543681473523309316706417518273658886939594228740636806704200029770237490660362651160982924077150143646868951535171730565957813345779319747212411237809681418259348768639261352220316800685578387945182012123127777358491650926554851480619874110765623684843398233917037137960505886486005116003527904646719963108107227489562541005803794118989891915242334113720865676632307677548313506255044292706975160801294859595512133081054928742299510736599386470358593172382377441121227062634817732891084002749536434351139772328520429747461654786531696670570182512520295610075916287562210889913866258714163845708821589320874280419428298489559267794413472562455690848281052015571890191525863138258941504324129968790868550735929476687201433907035867011440289998497934061619723618060432125897593274313554057893969210658783746008742318271660291748152974183801469465049791916190271695545961938367908789221958005563262877782359642718836083360657229209972724248140037062648255408178770802046128713884703584075531776193409102235841360995823923783550411703921122636609397481063403107001518322599251869013302213875722033670830945873716991879450381056983606855990424510825871755667297685365552672482227617014119035249596276115731813378084263254678737594292722542246550747081674613349937188898983901857851525998167903146032933072275943748750042264951972600857215766062591090089414676603817521148570380301832330306800304202257209326320943249320886548829795340862576298598499113510033056469523504284531561152881795269239101603818863586009079467037086209700964463906580269242267271684172951591970634089089801836979981465376756090485533994774590559532738164284727063552609688525085004595507656795159526154843804146492331918481335081666650231196171674284243985447937396579540370220482278853496829834941318701107182496725446671462217961361223133320427722665164415902864532851175865961588538257022575358457335547611640986059901819860870981291573655763708439027553485882152798032113214549738038841198080327012024138042701810836001663873101585376844772602418147705245244517856777175991433470528569378294504275185437921747909890309627207243429789807255766778144404076226955648582813288843185105078191034188949706881033950600061614558220433826197452033633127535505342076755732047174564124684515713299882134609435100516148673086741440178286170152219094794848359529503875253060822388001922552431389447690267914285621362661058137069179753182702014581690945811322724529518940630053158127198371335238485950122168005583069857473922315388664415901382031122262640085738266320765522911164851956250734873425689590438373871754637513411269684286056164038409316475545778934595271952244343301196584552089568199193458583472814100903735091374318315512415998509741569851643948254704374518849288000395738479590898110752177184199324813077121401192667114610410754077437277360847075771960173988089957822410587190856767058616634801187009814954060482228241390014418151711775045425515087775184332001577390867222827511036012433747771578970401916966848638630288781892810513221893333220817554556092501210089012501826538449578576481155884521381169502297851884852095557763329867243065752755253036670554735919176179365322743265181490054149239352368517192939937262077375743608184670722611180413324105917499610126597657226249582471615496504313158899215762557426182457757920848120010387023538200533188454538946007679137282954840847865746318710135658792310569869169972474779466205993409504597655662374304384088103781548061702581763514019545092190747547810157306598271237112642363876141529853259438890661536834826840731864971068863417285953173282902140654345425231865106566473398128167554158664075789131265478925587182847067522108916307040032077480766726659000199200988731223569766646027437839884563955192054175978769225988347449999864387112762825581977843641698921730430008819061943511383090450811998427726872298748512439387371306509591197598337496063838322998933057239244945569782156289100330997078343842319147374018848272141094533676657690519309564232046170877900128744408903440461789527925179472713802901918221525215475675443825000001892309134485960922922858034722351405498469226774765920121057095239764292328467916959927884032223350085071883874310880549180291200681649366897479651626323893504455953134863290829971981953059156298199419578598908664152120365665824504884632229329465662100090489854773120480194723685472874258735794663758944852721176231162275937536442986054627911828882755445242212318970535780681966812146522900421360484494193232957055938781480877278989146036743867705121405369784121381525014815244159471719467456091343873722672566300036617321799711058543301284179390210300162600187115685955343637498833448382933195806366924815610949534365346240461716910650738016651468700824126232145370530201535995165262573654180198413280359742004581861072754384980322919623255806666100893445293675247604648392210014161629330580938534099730242373375889462780606959859544059799947596136555042017882378322325122269818645157134070913244767585944179913427990858931254714797410635154593719145416280500906938261042202675457600275427453161756863409534070906429817927330349015774386709033570481416965575972492015270623079232499472215300205536194369770859160821933497317290325111922574671829830756278750250743453669171885839867334404294126073651267646392947171972597096318951615399722606547465744761442898184336165197330641508204995636861647652446397694663738134334937087962600124126138949247038355297715992058058107622303513586626796874588318628037205961418104179304629949846524647768473714196563128299261394521226084951168342667272529982876713729569820966119291192408683290407555521674196787953933094014956401281918437611053736919255206943469306359415801275233955179777600827337448102966241871469654076670621836031328079152089536934879755425469810250005260735840664690717786307443895750379767015131481236513156656207627515638932645761718447668135202719302200169189944516015039080785853188603444894097170330930062982272805728166381679263451706525794924913698592935918712189848735704530571451637498806617165553727236614377525237063025480402898963712197072865848825956750458957882953212540892287390717673375161554741406070002015859537809715255790472511152528447192780197196198449919884369721820821668151413379232903047217167675325284059901732840120780218344435696274990240231654538684838208056931478246887876194654173721462499527149857590185682739125320301069102469653018904703571909711742773249459138723666811782393260612751595366078307952159091063898368731064796182400795727630706624676293411357584985001398844417495343324759937599589272799234514734752899258456985908747997557718699761501970715099055794566988364631292545912343674324964205236932188588895537702032419637832401627080215604299521179574177700740243807913450837805963754936281601670029710589766360574884895231728316365038615292881933104257647370859350227647366795796119576869707440001728417531431975926167284353969226589878895298019096896228684827952964883996461651568488001001669928974854111291963272220801433512371210778030618458411849198583880985364479892092596215672539162471274869950196366693235050210796163445774200934574250854155293004165428492484964465842170313294244353810603932630207153577293343567136402179102871574582084170125643281892282818565456950731134284981199885176443463640320836101722859288158986112240629948507116234605163367015063175517402044445598444681578116444615159351555911175412994074327154114421770450293799631680253029306706817472656811837726227171334543677372539970930541046971753594485756394077237393071631147851876325955526113032132599420265352313803013924565204749192309319070696425031187842462186200946915442092279695825437761831465034912531557667087444720360970116735768775305355262048234579788811667231275326283431583838285474966912047357286759681835808148840567110155446129840513324191704649571988842950372959686675194678555788254915864393740491524165765249246855494550770121419420374422946252194632636070499795450263768200839118491481859469605943062328984134058242268007942519235482009316601404821556414516215144606524782025615116974779615807134350334469419621999520736046715108809297999594538801946064329875739372700680237518985256784487841339860989235325017882559879284990837463067290142641314861215095701613969383799441275082073704917536097837796358219412294787427762392873688950297708767226460832418096737362477484339384830021876582229915022018642483403074189477968022699651576661553969896914696876959214591172012639265288282252592671925620535982453184827359064968664437239599841987064850096632539202650944973791979663112971846554860975005932818389875401523004396854262647604705212972390732468633134323282348427040732320738883297541869126787384149866761778687435854007577271235530350877624818496335876542599157064508161459664560624614607442144360158046567551928979982520647863130672548917888224389346371199411095579597781279890463000985231817899669428968023749294828037182124113894409134828101096842331544161479062754260992957497839369611056126323142255823441583415887375844302143551305016502569938307477082089375571753308327394379977859894058436549502104998690509275330237487395512598599341699356950920575859444674999833802344618129429345040861512144601033967703278965546938675097539358162340075761977996825702626502785566853562768238928959475131837615500327135661438095237750751458268556293900523814789015368692955100308437466858612604406406095836721005508078697007149005160641067778685076043781994664978140729252431058433870661963189901163184723992010803085585475693641887733692303018435027661181707122137535372261070118490630257463114832655019831389149438957846390942411485012793457463592878786075504634288135156481577046615977014738856209667209974805910751610347433913642285413907880869267047103233976762982827411257058780940642529924992351534223241570151931363844618330468523634273166648300534757755753717771520453173317277846679798264908962306651885050957896417359681714558898733588371500835412708222805104939518174960266511735706188920101219917565469370620306652562009389771409833745524759974720134041569505989301693602904268092224539674852607898099724521575565022375570112607069039557426863851128465720482999020204761476380185648894871629342546598024365560440478827065422324625587240090303003190415745143903042241353579175314028379562778684743971184753468662617427657957523236592601284560512443267948769034883276274207383548758198108995702028792733961435560790615646307561351770451001272798363911298411536790014942343192487290568014248702372688875292288085936660735986576315643671875576598973683237431708371602821848761685314843892622337077096466887733155964726476829135858569715416300006151006632020887583790709104100709909663118175687055157430100619841892877236461678782292746272436779359102069351016666037554528554993899620202144464493916712375448408058225373316593672700458052758793525446681527990087695765300728381233972269534088034325394374231790118547168503191054330707280451501744337557365883699048110439941966044782136920134744683939018343630738744998028626961117589685464625177374669243878916327841397230088263829650192070844408781938845653020820999187902381641329189671717879342614358972898321597908459554050033942655414032200051650430920292892095917699598263759193796818509735107463134723741565798524828007418977183367388601125544201930608681354356569964220713189015430456135769547164658777109722801215042943470606410953128168272352484298751114450320477675934588247008954898223887441039009172387386783476141521107148023905027352529321146332548065620359990694927020278169677092678968915988905160576899738725803414771047713924590728791737261808488549414869287445591453532596063316093999204176672749743246334638594755884867219722962168877646248743287278655235685804597727549423930441808809942638705183372955533114327545411621324257235734699564490760158049525763645219333158948264217022240391524353769392601725330130734230758773767154439571016877515229500265232147362851074040662811572100613757490701861381865676299710374618557550689671608086938700469914586747677397119414654573208543758650964764999908267105403543133338906037570728630577763089492270918299972247229578726942075674120977450452159052904515228662574107523591210900281711711850913580542681677644562573585827826013572612643286621484500481215741442119008808274285908799744011700235018557623827137129538446741163219647385148018177596053922697303486278317360927344848815140342707953874392374355920468982784319152902256475885532141725778196890164574333149252169466197108243741201365108603564699729872182685903744560547452685654999493733784321165551629052657929389590740192299185767023458095823154114781552526422671293480561120627952102405585223045261379924822369905383223603072881924477078985289090013879518981718405561122877887616257303249143864877114301803741351338690192395959426248596322567696329670601789414166488609315478297560547847882426405654328080991295060997890417935509673166614518310058720919570960896469300680629523969608961701149597414277855096224454056561919341234384208312551581311539191266449863755131870244954317744455805969876928899301067412238378451777383285922678607497004044021269629547353833777492003333358994553904271421162463410404514667369989760488344830470728605024809456926710922295760451698048176085104787258512545734867555440184199183411117057945912221307376443500910034373033957294507477629412815691321173595201308233101738637284676727141079099985855925280960819803019868000452489034147742557540139735927617462882956350001891624258513660942306225794411956722779104341230843424406839108433558175570763488614646945732420056327820776028718722349553904566875876230926149017969873573719294270637243777936445380276319882696735221617716188853307843772992469942220247839203012926304021364689378110666549627810263577542211472788365792252163573827825529797894824701649055027374490804497754389446658732928539816028010783824910327179405585258629897476483345638223105741708724896109372652545810363909413273544210427791679865311590524266708348954747474593501152859281482923642799658974359188105045719476298683803673046837410596758984997081158320633818104911587902777378225409656271532470949751311340864378321131818022425808939277639205668477447271357416774336022146706661087424978618069498365710369054913087568064088899934053262460580585363996063186513727197240999338663264756066562033864183857265730903459823871036940063755600443798106756776254451408437278723231527351944828056537612926713391167340967094827780953843661655749436635441126168223182879423268853915578569965357584487789531376171786403167959457472273153763286558696821860697048947489205703303524758764121870519957346280322865148815608108359244949166565802264606378268546558550753020682504583591724128439320637681215318401140079822966717661399099693554307505856670227571734502103123785860003315651240569443534534181434353254385817082415500518463444058435892943445927588231476549788818827828917220893418902864634256728436409975902338397962945126383844174703260961619123978347636774940015277089173247055249897813340096911136078369010748280747780931806591049891342977522222388931762954482975078405500950994393810830390152776749226352519275925082170681180524299502391978277985899496655089377694933635946330877020190838981861694534420378885852882491633559135766379983335698013064972072554519663679389252003234433780185262868506188303369696286116096062045320944797531783943702313800645520526782437589653594485565182675143942311620553400902061096282461083270520303417909742933886327629245296222131201544466700175513683396413579635920940923339327299955605340874135445497484689326856316978891417631278745985380708230243168616654860014891408947231177018594547781938876675832668024610873788128808058787772290923609418683134315991153292791646215107166566089878394092421230747560967529709551499657560755257883867794750808603919665497907923896514607773782994877226775680543896463569533433809732863163909892549701216266104570624921678492084839758739681503467253942321601209847603969696923713097454122171907933912244224040166244115288842386467905764748885596203742020050761977282631580750221734275674028662685552762697826526466046646232085254878505299071228414427313261546255653804521177153064030604754395714826908539345535114708731811707350106279066916711194437468838182431947370504476995442831196229436815361164724924714219291918643749979059915152867649252845044509656965618707662990019259362512033330793618827787300013470790003392547349611818823830976515788245132529409758097979013611761332288996450627760348582602500776314492805478912428667050981821470345133405376916497046843284835497472423670151551872911904742812078849899797491504808471264637264489547022496431806742225253789078553226054348834458057685514659870962860692300425518071511471846550321726760432336505752688422491609638400302972497240081558566791188221526474476669705076241950809431544643414812404857632189496628912001018298200203816849942764473472035626838313861199688101650899875537968664035341983139962004684426473273469404353273527049254861789160682457051580696855148109271868305619344850900236449753869536727771968031777865074489104370891415292528547389385324687402013127011437321686789718985866615199880352528216438473206380643074716250363743742268257487854820461063253588368915890303883715947768353725255856281233077580078895632801756081357935126558833219638136346602189742876586732822932223014714474185932957689829921823398361441333088645558089260489554873550335059769445331996587604333994290771092467501536295740801296716187875390795533888546329647328549824447884942876844937976938546015865508739425725013455400184744644383460069218873090463062213518089776478506803094620662830800413572150363934185861712780382939031992841276193276997191852199476302292868640050650984733645031312649009173963788584715708193020436145551383119697625950791371192292028782350202825557661586671244848302083991489023879189324927849029504413394776433916330269605260551734461142896631285918952174062185064807541428325258745080307472914322392893125465316434846407056296038568049213651310814139060598144513174786361930711875573744672451115947057530750650886275984046488247378996751272439248409966111423288948701129007497647505589800623080124143706258152058847957626137866310766030932361757969991167371381162684231101685881626129610813573640879409745972534773759387967066364945184042387282859359730762439118072551879590486253083568894895177959117399105410185344267329643496278307576065226086783305597920564323317341482687914914067951805217872300686968478457450031185130852533796669953808888958546624990602381763948681108353235941474025112111873017909309438765296951286017775942032836623750994571111693857338488466562614071940131671400656251058925663663416995680156868215637416238915739157990111878719265305357893289007704614264213344652764366344842678979916242542948737947495884938873558779181276265427349577552848254841414409846074190708818958189351506879718792126944878069137535657208584555709739822076008166981694665024542597529461276634130640900697747937503207732169122945038565880129442737950598593302382657347879428845141091789483502177132484707620377483778354897193144144921733444061022608525654897375469041700170364995822025619333433896669347900630142660859018388674782135219779668407815732800525984664189893960909046624363786807514526348959401351530335370082631007040910401518334757681773505329258771608359921842244613344849263656365708059024758180597356498729725758787394006892427255482884772536402427419112451842422140836067252794171702005365106407246344156256274097548784263716523096528843291412174105490924448767939175811836640493681219447049905257454302581827638985333943910619822726522050783632053715666294294547310579444798499032458538537400512989226252356632870029031830569519895856238486565427481037662183135952963939540202642026117990861992254685800949927107673029567527813776170704872329015848146176945490067914472899710481368072869865761909476584072179653244018647330444028196470165762933747127974530589903351914248880216247523527825409146259849464279002931954626561040580507075845985283746431105563744245153273942440889133043541127834719519035711396580898540305164256836458444429694648833091998448383342251710290862508070339322495048576054103249141358608152272985157409685161508476801454020984840401515345961067181224328699086005064869763138466171062113248327155581234281122984398247128835907638383506395973130323203095736792720780937545300785092738676859796343881031651746336004036565971063493278059116647832646531521027771904682486597030349323164216639911806019283073691277295042298145518383888568804620800995676063515652353013220403704952275077122316350785902305066535701345686622942584656120956555586203747772738294743023620365167571842198633970221809804424161128119900981113315384085639186537605821994091745730246156770300376054896532742310272847567952540377831021086286148402874832264172769080006361082462010467950756447829285655442004641290931223366533729238523526254788756489066870044145807810207969647637410215813230246257827982723363450638792149962186909741214714778742288411169382009770552658879717563378277778981728651876376600032430146723134279387129119937023159705070535389457923149531437198323024052872276891593130498766735140690770542194394118790705617706732688230397789941412127936447774718354890010189924489581205481515168114905913870523498406454345633689258060334647229643387999222812918830445656952848984309674093345929101876606917528885140014879536682793490798754767548713720121567940506213559007544384309783628744351014335130440270267178728302548201004869001224925182932575541183232427950980505974802115633727531677149301787211608024458375352357912152337234001129000605512369731978057482889609847923942517645234449553380941324090734022697731080872823644447418161176002146787784188406332552952140715958736317678281642454791344983584520819260647141818138122471646929303630603389736413954221796009486621716693643389789905071184937457576577909016533382469715835565917670405018948063137388398567100930015975457927603785117838794753536764275731915047032083939324650526560471498179420910056226371383926184746680524472692571840407500101424765090145943294484739039135823595821923348351133300742083449988893752558094729887567800655982738352574076709482666826345299440117199129486118590531689190711658441325962478668021943172964717668443614575369735093318902907319452795582878256856129096301441902650947421345808023090642851136122274714020226650110735239936464290167944730589641669171166489605649774719463793489871369531683718651039560600725272606090134755621342898284168643957229360946517571836606848369308512445843475698886074385813174335102300621086927196602053520151356131385579302253828211273194279646908950431789554225966130866905977699683433540942945875781713818381560063291681515277323353289693232711654103187349344456214930813209390104072573154081409329377403775334402203399636072305277013272179095485645763031396687548863699499457743626472864989068254489897385964196657330400609321760769045863552074477394979548243172738213135944623637007729284500730260197121917883850117806980667144891933727928960771654348827042610440052211670520395444363909088406050274245128743657107609510426023354654686736778838107599544517852220542805824298885001232291373500587563008638339656058364684714332582716082505853337418421244519145226668200489571063406108623124898194137389646755835300289184741250286089667340820233946583519006636929235656664822136776995962719363092360433715410925134882169541542480861739833394055006180680636700335886573121529419111503439801268495835529758955405534735523756980496123087526699212146420287112608098607725312773123973027180804359196124756033268801886528780619727019754293666311371849623374469708011711353308500041738731566417729678951389535973545192944269540635430190667925088314944000647584440938329300759805316830527852583964695372860381568841599745859347419594845091325084441185809020645486207861257501915433560921186992514260902748314094710352224004600741471005265086930192775516087277859761246020973527469775536581349457742834180526160925533881546478466372962040900337449733638118034930218816212541494941627682817363884952084683539873255288714903230923082096922979770145122681276746396991619891928222214182220587057592635855849888912136586681741126307324989167193766141718629647513303047490491858734296090537576947017102963962737495217700871483850384839724899396641573273200627117731121539589121946179743566785786556536473460880855310714876191686537031880773504124667319658713022416883657215164665623486191169883036178975969042473545125537093639718260533552135758378214164339892230223618687071902169586197114993383661931184791273099647590621435546846031581592714027549442811303997806547873186603543438764914832163643490441589710386360069353861828587352484336535703895846613163659169085125842912008918612164420752386176907124517074438836546088882326649220602010401554305187974880993487712324776219540475542731838443445508702302271148935952616182306744737354560317147586499011860128381172175932281063942108342693358428245535194264647896611526049885175424545792425137656561560805962426374147112009768737062347470660432994574085419740324920913646476342185843820757452193567487216413482894127526034672441051577800436811579444424754339493598330970787095138110621662939056454916658252438418942865845318668580748353824272127191343597249807406028036804545780994092167058695528473516751010565699487856508061610263306368991537542112905929000432655384305222278397972107488888075909730571954595163002302335542204802434361331700172564075781743972504818513255442104005610265147880993936502693962336622268393894509473612126615974591788800501382561705555362366298879153046918959145287700807818057802182708114661163526445264487533133358236968219922664541034009459158530227563812616843810596232790402207162691720635651446262995765137206825831219382570635766163801819734681966300550220070154916454790965346566123491696318517947977535491373579032793520172983061495622091074949432856733072061512284814538054427021763088471666907139343560560094785334134877041179748047385711476192653048262516494120961286235239120916935505082985329422144700058092934731005420818491816663264152962000942434331710303278791798435712433814214551822222622105126142993972916505192516934436274533509646172808198979087072458278452014119733320193218651320379471151807647468699895584508347601520850583566394089834020879038277049263803368053452486135308483886066232353624239079725568925083296371643646793523352845955797497236368543450717594906669408829862551820469461941797904050571269882664896537907352346984877254706657704956929666260206683878209554290822897808229148417643019630942485973479587520250085474302077813073341205516906877941577750158064237625129806314114521287832901633765237045138193437922658443031286674224438261286596968692383788098906822799181370105007880408094560179611564808135920514380466698258116879605142214519046076910309478996771988232035153789677973165904289244023882979804583550966104229027911523146952404809560572990632397773372461125146653067945689354264155820095762206783120761401697521088622699439550304216123589711353561730492133376507828408462806658961110581810041246931851771336311882775630936466370456018485113260900994123510366714963573715591334454245122597923732740465271559102090888987471990577059954452620766271796867563587550251125589247931249165423226343830818918381823197150441018998673534459673036794470868396647254532262607292253142391555251995211094904689917088927007289282639264142105843894000688368820799128766072941734518933512475497368860083974789852654440716949368475751317561771087647242584920702522260660705777368565757843131606609521731831714901778756606595458475508021006074419663513426457532246951847589636106873898360966596483923177449398848406023466034682466266138174676228125287782843782314219565307510677381335956544407292013676361122720383197871367041895641655427632512891852125810374479755521808073744965652112089328525307004106382333309911608225689289226290525835330360223296229016913000622836779147440503770804266517435772767109177510649524650098303653787732666595856197542065284141740538047595047953527191294265382994246822415771837435719859321605774910601845570933896287683561988493285632265818760638333428997363780880603665910868164564348469332775850263725878511678305647352305876363579947463367217776843245661720454555035891783124618550291811184786250654585982058163057999631491145738828047919867717143441827064686301060975769716594208436596651960054972779670736251359235458836589278870445929723743761307866292629582078348339156152545687332259385357424491470491057559721366360088155632234557926909332423914753003705659372991586078935784584673277492484137546411462746949719991613438130581798591582104001490302423161721080791276747008977392415567113256757924932836244018058944550864505837525213903430936881141423148078482490421110582990573413854706046034607879557756780632743496277186382544897530711541559349521488833075073741692801750345305012864560842364704184616892484828207228855465660041765714197471074316306254265616743058884981895590667245274416647977110397718582807296446008522292060988807887372547640895441082989119963109544808116509664084470175399850345343685713488553451585395903093813823174745536433637883027202467467102650679177066609449336478052241909972572325361864547228393880308466998386622449130652733300831246703345308177476964094336224197436878562249883753401551401063642140232370093782334544147990200415569305879534868013317820687123464654896096214108130204483822142559519179763708493988073884222009427127730883292204874996839334291724256780215539406683004663449075652107021090257367736706871788211169992492118730489697428474370090661757017126088524872732522274359427203130894967862848617488083337735388536618908180773192067887808318194640823586983907370042016546762754244152073007799124409100584314577444386596713641729169959329978000234495407217330094573298649168344857779128715655044807828661809933133012753485706697905040305965763028122725255726731278620665873920631387606451573212535884711161294181505720767593824427606516653545307082840981240941840814911800505240287099953159253302520181841743466521876172544117411066645932691395805931449637185501422231482810541945930875926746838187055955816515636193361796206045761628960883104834615652745843592713237044502136272696901652831120105306031658204708474523075120788030216480113502972009127349733618099321144555785059539141694682392841375720067674330557108379025560181180517198590200082789565051491428988268426491556009826856225754462161464056006058810660234700409209033887616157674700727734439231186670961590348655852942957732589509162270418051842341338086543525025179982671838275911040958299293133760017140217702904953070273783451167666435209301031357551109998689212323566924115329445893968384968495680824293209255009644216002138750451420880152624244284634099053144302331791037977889190954586219360851717949289489711216969000291274592293219701049170375174183215698068519180045151845833650969084857006308290074636093635022650415084872978036294615303711380422438328644064051414556655660766165349106809077356326499006790110419637220644699012161903766314719280368966892760793852331238505419831330854226074627240837026138118578370343155503514016631283558707503156892226366354009072669360865330877268495750017497346540435906005711483839677821037081446687304412808183378230886663184958251038204639179641919472634936090397364685814710214401887488775225246028112959516526956010046718720984835902468312149752506626679873697069224198637773265971641790574659076056854230217755649408692834705611942827180286878809998859496919141880140998339707879965054345765151589465567615168640401527530005460032618381093966225174613298879768784204602194601291596329684529317278971668134661709941089710809065777393777717944703108135646550336948118472293256641205711145467084245013851433804370722922070241189396613100677804945553832612863533959757703253870989400218628543520124620729817315645846850772411709229786242166562912150162540071231873437171640486914536783836412855869511099809834977636027287295029253078611911683589954441279050042270687066046563324038872770886923904591998477995590387067764758790014976562725191630367881124939128308365028353620235061750398581055124426507663408340676137123818006235853460641484259629995089786772390013090730823292730245803631819168056981665147575929955658750021383370437888882501463595849896914820504835319881598212030433570330122215996679778048234823454413617207556943094998597808761467520823599960435609436566692536215262713483202804058381063911960537279231356820254191361067011994243234159974816150503765602411118082722080184975147250802022835237038789903396623667488997393884496383720372296115491886829292901879527742973749397100568405925381641886571151078866176759114141664829636309959709976624714885830034762308672114966374249038624015724144048400109238800764421871425423446404956777346715690193304033013894244571693200057701285512897516701469142476377960761479982062545487265423811010359708959756863276052134636534270315626867091574477625913532438234360271753087385816570522721301823544424708190826562236120953084390482148692942103946351770174455346946694207745354515744610224981002173466059206236177883313765748454365743030307481980748956097444006346194729928671954391241852153516739151347166083327486521642704877341437021968557386423668930627711536313289903393709878702017907268498086330387494545626935268471848147946617842290154182059754998991836022174501612785074290740989218000597493846472982199691815332263605676198711960446569586802975624555937038672672559798458151617128688645502485759371207658426419162680986077520886241139043155836924118876495720248423106563088248061754783679589807336189450059568861912943368981133897632938054302971991488592301402178389709505835691894242165549421417082981811034441447200178746629207248900929097687579118008960889493868365564071983973252802253045889500400549348301179591180025890267071448893090443698346773883750109696441396212575897930995171569759469716395677502840389132363064906296933513900995247523444922316975515227110353427085228164043302392592181243062804441501098335331035431774797460303609448481173838269493645049308276982804040185752003899604348428987187781299452182569268018733554184490333424481443421475432305710091120225116545363471427524235712856646185944348124313097293438304153750630623403828180824693295989568227800126793340595115031093713470927069673878579105292568222600989203731303745162411490056207231678833536342337264235220329100680138064470352580683215326077665115924794579014204554087095284957880061954160808395373248512763286269771260419216533853270864721844118136640380049384029227446260962536794974195833962615356035643351355069495151617436398508449848439550884144694633927625650572455122902328712045065210495586175205167130997198625737590592727161921062329256089140276365885193236471827488851970654062999100916146129201149756179779873268985808763431603753930530077530640008452726272463970370927047138363854107431222215432507147796746292998159806677274424007339936448514279558249687682339298826892541309011758988294864078953442402888364972823694515610589323770298198513239701418609453287298541995994847315723770042705322993489508388188450585572913110189006522156136178054920521916725059061801596396538572634199261171193503125991449500016294359461648595954060071968480947043722516905192495286984586389199279461355112589042255424696859703672585790238389193657059500610858888443062266755543043155974026073301778757818242188285953753634053263330369519135793867673667020502330378749581353800608253376611737937182818718912245329077825917550871443463888582468116421974230165264302357009100097509511762514899146166882805753391989497291164867670064356691507959635533330765509525043744418785172673913325157346575464090856790630845419113482341254407565041110937158841107533593531687289997029850375751308715166902230392930299237665080017029285941585938795251815395880635686886203921777259453695335253853004878293124829014536955047609299345674984793855353668557677350555982336134004394280776005401492190705080672164296229815317603237187302260043616747537195364627043958097325520285545704902387118067282812038064424601459165877293446260661890607768388110281706314006871152709759613440532155495365870574142152168232007809148626858502896920925141629050600487211791323229423392508034072884479089883663532501732582025255673381370219223054231463226653897394203294336008412910485383640582725887602276093428318398483388339959209148190181723418519186389922072343796892416637500852290410605891107047123528687743932827774403793228574401298549820612574951411365645301030472905266127203173797016942754279448872266046999129020414526660982921580049483066592054907424172454940617490795486288210301347983648125613261168874082368503285252656212517655788727521398064564552631044701200693549689913841825694546731899281833996149136883376001035535977131149874513717265634085382440083578191738321156259670336597773910170892077828421691797581055559580533441240251533898100391001032424127655187514767380885407886295324174200577535247238109876853238806238996061728719278538045793818621936914651018214460317096755717590716667791202842202474003496000649328201476278130138110679600846360588120476919470423483902207236674764018662487325501443450679533056451763226341529162506096501484392203299899149346124707554946055574143115255819052749644048555958850800932103076951141495594129750326475572359198946051444071452078347312434539080407823838949878448089678295731406129752695850397879297605393919697187226890299542947382226246985786771269806316789067215020953480309627891016048349089180717776839088638158675186663523608735667509653170454763650014634877970689240456258162846851790193803175889219790653747167728249745635856151245699522589836915571948507552685726132805124881112069768743033702249582927570351712534501248686700207435013414467110959133440468128046712728330162696009365471005437766684324690373559462178382963625776111565307328130722366542738623888728106676108499297543554478363429753834986596709488237316693626791587618542096796291633630687400227631992955742558174918573084121874644797925155195986311205822424550750956522887692342935224271717477477483868808753487560478407841566515803530890302007322370229860125814948883445393021166995222736871185274347260145486315054897586769426290376366692667818599808244560373975334855577020608292996161732100835754714313806289084378413290818056651024123917233533394901625354931421698013786494719417834307837495634703552068550068611164246679305087541356004061119150358417857677380766814597241349122169157465899778287327953053268245362902790715827598565781086605650644360786086247623295949438083135513647439646367485752613681176132221674513735409343376869749052504424200760814992028418844667144204997626804684038248766516291911100438702059554331301225320611626655423294854259010111939346178366576384964047178784746594918451073787394932839500611112996305336500562983758738412969704435680017219356217596527135726103467133997487102721146517591379291998755809079572265971676079513586017173590283618225612458766080250881031835375681564587619581250163171000167789708116211126395785171694060711125854993382954202997509903707402556809108188689915763227086643859917158391351939249601683869689988521924823814475551956017238475462280683363989904778281122275104937308621454533560813311107839323128038136117667099398364760049122708331326717917247710566789644204404529606767889943461882694702959179049865072497424150950248521028691309582765434131151005765116609713545442144588325947813560660825332580773086003179979434613757657291965384042526220734345794014709221457007253442526879836946411044147637057719088323122656926359138157247174811356424297125251049752705176729325634452604882553362142800256935828719349500695863167911751964756808714185422373313728583591963551838152871295560104116863530367293950057018204306485190003517952415712796498585995613598895950296129068150979407152678202005294170659754666441678982329661277910228930468049766460774239803200395820154475221900990871699746112689665238448241538973459789998287794905743073539732615983542924565939103881597177196947040819721293377289920468516608005638399498847428813507695663799337716842367895827965307388764162649607036817981468702349311263892994610204203245023320187016056959889656838721567279877955525593204558581362007776940911684226506247147960958459900035238866376646993299620548114817658644723953570155656876790586465089056854218249283132114407473218507284393585846387430675467448556482958998481879903530027760097735631755909027710934478616321551938878951705099227038082571401258531292352834192143626592610020650383356462065518133308800062217340464449143315147590368417324947765040052578188624911878491191520247398695505235354500447643378367047015470956709363767078402740562268823539510727746824005759231182409790164898794588994483970144095697977394534253249680978549614184554270672569320368157892783930529944529845534624396841743228046250617782757694033788933833986500369329191825750237381359487637292043867938787567618336029766832162937675156005223581813002781146387374671532174361497880984881912489457078509234294291783690265710043761781449020214745919287316078479457326558238472893729969983838699422676063986292300840759454985290789946995472908392221720491381501697023516976573096317304194713474482343202416635473559048353688343332774484875947994076644708070545764905977319106726012663631618180187369895322486714986594534296258917816605430857750622564529456027127291729317779640442399206106751400782963210972439480620783311267218339233990386401096508744661517139676895538493811639293970192603413089732584051818161972857237368262852292902705825571358029640904694008584686229417536765539609719600891351622444505169180885415907350618749495105335855737940406352282912639720559544362080500163914762647807517193919724916900197714913107138573377179643276740431970084485357726991676478523301756838838321447615409402294545166820168676304259154104705091891383060301912435248850931450053276882638206396275400280789641585764184368589844681780056302275877727230986432111381246030296357371048306540210893755962215678368438474993927375939965024050768244137242732668421164146275358262943785052878990775524752818300972442022090809261946097827000584587481210884296512426194543438196390165621728202369786185134631140239885113441018014668921607581457863252314949809744259399314668213045151886635517806705301173963554864622450046814482376537044564476518298835648561240638355908302291784925472048733074043043623890145349180648073941936403757180524229479168896063061278497439854224468709683996742032635712200220999613669611404985308644683972329935258848674400323002565324046188519280603070064545847748673751669333528222161877905204969250794049430212383503703482074778049899926424149959456505711883693006847392924464842375037625762415843484983991993627335238121867525747912626649984299360527041489383496878427376855093146805773459758361215060092984014138484714043825199186477421487097345839073626414969850510000814053816571677627901254532676923543409939166702209574515401295140948582307511483657545367071100144643772370601479951461931754863183626324875285510948884725060340957551354983044656225239232183614517141992895121175941786432597668964129487365832644502911349381869582018077352044364816348299700158649551387150976447548964277197899120862174494326919489335364320413665990400220340455275663822804439504196128612102171143444542050254914856758597233583150475444801070970360683482600759761036268146767948074151717140746313783418847110526187237335615583859755461162125099512583629226028338097447616855773508111395853449369691544884731355251963493877142002450074525891736053884023722558764409517854115290814819374513026108705934926126733214326704736472923082857208898061138909133364847033385819341366131711025197738741218156376965087489724103590626335301941424682506117188150501040670207976054088391776140993521318577762504378943787660135057248135527912979780790799577850486567812491111782299908658412262986312911994532992246044291350286319830399195706885577068687926304664638575663530261719799806478882511290707739915322452619949293793268682388616418043549009192785176230281640395897053873622106497370191085441275059000828066165771469242232686886471180762594917535547268531124469415850032845814879750359985135230565157454212858878394811511386953786150395645895800626172853308807073501446885938972064613927038965186147465053806653446318813003116455203717621608488289277775150775333474241419723872099925432818561944455606480496897537500559630578587088730764074640107662801133957839308996531441507348165081554718894899998128129893922132734408588092943976701841482913139027912215656914913496200697407057504178251995804125785839724294413974234047638064295542244541722943401243970082975851706573937673352305269938265233837767396964017506187879785216021156364323040888179372829209189193344074842335922871744235615062970254617156829592640562854056868971081405820638604488982489393487352005310511245138539136574558530863192169807618005031437179456156860497096936350683299368409420723169565993792177208157332618328142265398618439287320208398991884649180639472133918990759520642611161503708039597817558367722286443369700140990755402814240768649982124005463276886374223484920644994102226465065517620357793030586956048635213170778447137485543557960200316179222224913711631029503081124803479472764836618716191976864209754658909752857336299324221436789594128803863261955678344703428570372014865065848067129982749181364291423750909247371389529746440601293976247385966574830918953873247521617224108834847464114373975819170578448539021460537671903225618777706920580644869666759023217947664841647641936039509964921464474332297343643369840317772359717431987139362474692636724180385422304870904638468321760624442693461499403253007830792501978941379288810987156635979920681057493019432854119578288018900799078467740301973345669590195274361924815443776325171853292366575498636834963634108895166595852325909955116820835615782895326768428301000164684952219516155408814465860570491349610913792985868207055731593828134286477839505182682051824268193999174759847182687811011189146225851393772212000630841012355520346284376798585998529540329413062706335429637360638455927616217087203025095089538688487757700350416586331668058941405779991285933167410739844172377828441511066911316443065796642704968667018293129986147415340063021242426005275342862811828981106421813381107855175210857199311278567550222477544509274608632790139120446688619308602840250200277202590190486311886122310934863909704705257156666632449706710693876559643757923448125836508116757113015996455040356591003256735458047189812485725144732434322049931768054374180631506722579706187733237399796482596820143154344635566370885479281369519347994421626672085942173585985604228620639213890199405867979142750297991865692392161930679938115658728830245190271656183377480180454533055590677872084445234094381733686621289958950106223945369082226369427252100888573632017535587393214111181350773317756168711258633274739295637702606120670306684039803805939843020353774224279819705450286446523359490625347925878305048750814180411579824106053112848915667645567088158130315918656933143041177087179093770252960404306484440926551669113941001062398266670254846144003320790653351498854494360479359772470568734839387304192927849806461667664224074664779157445335481359260638878380900849615270736869851855334840881590294094859353100921655803349877787012030026714812134510358142395872506300618046390784253103321977800144869570740410044926720605563667058014245860415650579472376888499571926168846739428905535249418246704984238052232819303862753415755419919661184890334156555910453179261242047142672186888915280097388172016902811900784151941381943456848613675928471171617945676900017127372576718768124977470183493113515526699293593858693329145036129651780608280739650935323655974196127905597551986119087484432386665060096047446973025276252968504178004273432279542160853535401045930908356546023422559335055468661853566477743027834231503233478001007778338732920520188040074129221564595246689716452702932714658806174398666992027654881370736562292771934941503462152104486805919897379508082152728706004243279186945115660010393469374416089860196531268530762131701069386453951995430228684967331353499746638801177782040817309368100811408658776736011429892756038984316974677442239433508718139545029882703990747622833018478864899313475444295167152587022366060311935767957357610363712420249670267042151104395809073458617278812711998172878863524058269187171514539900096834491327398855068741499275830433390286343298844255962111390888093515435500188703999802647830536602594850795796876060482209489340815278016909698358947313507299102005968139651580340028990517363566385395747216247211373921613480405429663178362120448751925961090893850974771594868655817707723234810136469752227717005751830657141370258300341751513550440135383579789032910365434616860697013302862399067005933383497053740749656581214310759684584471110157220326275568660295727385180290613757256239522710534807809205763671489772028392754973095597864394619224236956063302946560711082045075215320157531707073901242671944515760483035878755831130221112707688782651393304158324280725839915395418871523022252216672277057842282074408787243254039114905639471171514421685545158354350329776901732837492241532855754917540575706594558538406218493674587028753101008694003153836627987476179499266725481230651477410787836026868719517076889960096515585424416576850773885136425016675028519354124126420072837597408304730157033390381586965169551576255231566854366829384658320207101130482226860212622811592307335494564876730487818132512802654795875917502581378150961181199512665451655328210890606074338653339667064676834799958301535122384881087019283683864303054563277617957673277715674013190941435498135636216301636954342445461778335975831759378302289761326662228321397397068725192611212382581926279388640887213874158390869087859671048405933174205678663750598276351463445687678910954693720390107782021212306734982263435840957371644965154637699316440440456019757770846701264010387490740418668003925199344454010392611819747961909200728809243541878422966077768640501396404028089672387158061514358865533034988653541037209207742295489512113812461953009400858003808174061970315664643578402627096170895986779512163146461695206011998142921959162928300371635151696153278271532853789594860117212499745035148685803820675060103668062045723974530847202741119114549694514290288408775555322956161622128462286356151411707943696193814335784114613989049871221456316696403596551181474064167738231069086343208339923737078522788153003628293073459274820774819472173216668589700508020647558233327084460389305809621912691389434822517218638091912808870030837260955529997378166348829753990682306228768973766072649202862288134690341528157135631562548307394697960587848875307676022782579786404966676013052331775509907324988719911345299527101953894884906578650439484748107782334709264137617121091344726880234685072116008550914163981642940079429133188575740050895650407506697839484028430065336599278611890936252549876513675254481161721187902523106632579413950946323070242107688077213733348085003126461508183020681805103976499262736510629848712056132039440959757544673487889621350630203341974283322537869786475001787904579550992107106573076311100001721620851218552210282142548832242122942856456196750577158422063804474950440403294213769319887925371764995101301772694985690375033636918222369142205738795748629000027876495645037180299005966042115149251670824582545581979368559236904426163437893174564996211945196164102768694361136452267334804657102029959277658369962200031452324909767610429235546767445077825792550845415920040501695990264281454418138258748709648705189194643713771660929797384334052191414367372996182305899991855587151503596773274912908788360382258209457122345107774600152857700949183049440920529628711373327133323764230937213926082384987385771586229368591829888112079047000324955951111862361573037310505947276345221227732796837616120137429904810169952023391625971113428961380526867310287793730920331841188714793558679173257199760908638087302971198943514699695519915688753984455469326471035684142897522655356242596604157265939765787247178592455775533724197670022326824978201958221759967570043893100371092495510869467900731696308270698355220965609906104881193714922728252798266324284537459443083084664371931504071490845120544736088850951607362349615447430973404655934913693278742096427336921313659171679057158637193409219830203393632870490660173629898122277494920943578895445987430893488342280392483903510176012019771089833661727174515896207188958272998087378135000838484105558968768339879740292854558019381043779883825361912208828675699165522029941448885523936930760586148494925948550135205095619368634397332344460405590799171159682665452908868194036008134551847055830438969708126718209599944445188127682090802908251735074780754139803950853271229221993203578589867048033005885400478238280623943302519250478909369163889566663404203904461752605519941337302526998769150123492909549695099693914151709892030295391442519803718350870704507694697538695872392789050036023425381463750138056174924179119208763899814181853411266968090794963549565389771454992799631527520508536475457330071461284317690411955727568360331830277049787418380595023644562411039635833473574790782118410230767617881005557301862715296832639898680157895283114540814308017762182340409512575038984155015055527590370049652627622397687286646200790309315934725484206199763695321302481251247305184323404472302584309558402048054800012053649620168553988507010686375631741199869230306606719206116492067947356711044808101510966570938887871646762143726816152073642174309605181967956635399531199407855628804084013970262382462119813230607618612403991990001500917856069504024614941935760103543779189992317163886248391825247194401215857408885876600253174679620195646988060274471474851954661705209649451928354971783267475905365201445197967088811431029188586162885335536055512499388181646084018211685639282872916322489507908976096209480067219975493539967829103675805218742397441536609876133064074129161931383068651771877053722280558592921714156647778553507954330172867120734802043252020750943429195004277465586338999432281184621188544322793857810870541157444170649434583016546703162099193728883225880334889501139687270545198635601701453935659205308291925743606552674588025407401219456945936257799080543304871695928941553156647889958378499187022641060581005148858344489632045628583829091910331365101861602615931076983909397737935898638970151068384509794183498919106758854239784382416266265434259760274380615556429221225020849228290884346219635661523769716590146019500313293833274919958941225420732200031773225327678871405382214079398263185708462454859034374852901031339501791499890408439279536487223434923547525106427117575072703598608816250899427905656581884981881700215075135551993837675525971855996095414346124053158967264208107394236508571699614457607749784024607946883717680222176740866351523151780097671523566156814999786744538697359640642968124132408238525818089324230359512749802013312777468030237476095923527486111747710536558060509693485828762208321665280206036324618504427605981640744448072162729288408681205761544197892475074437912311876826750785455105156890347413761502166656516237691927243997627484443007824012094983822262697095872401577244275892048640772561069670161026376955019232324395978269199957399314941317400789642773292128723425838287244961239690607027221923830716522189443565198832787312099055785468969423478245418553487157482754022353978048809544276437857864056775217547686170296903318946852363058180274805033061287318155062468175907198828838298131559047911023070692658166373251719150455339228412105222764334333844430038219080567641009716035406418601089558360984881435943475628475490581684506798955993922529202771531930168296871933521551487704938651977946298056708141886822637329306791672976323163643573199105272643485600026263211857186085381788421564680000899903385161038295740959648599353611810636644629025074420979851665977553904010435959096093802744511365625886664390762669729779286726753655538273112105236175466629001159689274925340075152110542936552739800989876414982521487422632310114541043587497200562914989244441056029429022709005731750107187449274454789894776528520089689245915394063379256385476919450593865227498956317046557898615861704973824384954712711286964878779036808609061427236296889401712011622199374710543223916403951403600503458246512599428415631515974249523920511777395533690715041527967363354334146997703568542745025465420306026490254546134708737001077950178887727252161322072167208552053621934515349546849524965100874572198541794335995866002097089686934382266819687068427453453086207072895329419895350474747592736566098118161284502328778594773923235620935825089929555044200637787888562284437174677663628700983031813313812238622154414770274556365645081303567284541819976115669417367422769062769543889992300633258076765402579487064112225161483665890618782575853712376251313072591718034128214427254532739655928395653942030760804207219653650002546263792625906560664674508192505273445982131469735792043081822228318907788485500158255894079607142596833791463784893351296847084014068557000207215706400206370943972400197026731077969553417528952919429739648356519151275648503255011999586860649243737376531805163455257285809425348215448505112543216597646024707172033073830966550773268139527771658132308691575635864959904086786394237459928299489179363566574990920881154829261614269709985612001995606652618707552863430645034869655443819478712965187134972484117740964053947329609591383061537947875026116945163462097053012338657440789092853143123256755502559127832105471439084020568435976133546791070305564476085325766360428441176357410078373701951967594262380066859134297287834119897874166020319544772210934415258503400800450758511541154516064344119578237270913099902631135299661385587073501283207119670637537798106787398304836784682339263233569352337630526828218226149253003862774709889887363678278612301980979833142494898041724917733851782207828583583982721764090669186696056390679084762710900283715112690134518549903317239729487496731482273220901509299156546813708307184621878260622685329411143450460814072849062170290461045763220251633749548822729051019594556689574511712286819735905379379421378962253071811652128719662551277317256749107856020708901840845850980223640756619433494996391800013236723733071664624178319210084339108702893064628478056933980741546133660632178851785528675922035203309168438036825331800693528754853077378876103944691270952291990014791454296439329936224233589770590711962856933179697239490198830012580218665068872390485997557478515201287691304655383894731926175909664968088157969329381159892623435158723269623926804884213923909828877280523313891367331710473853496437739106411644073919386515549057990132730762406018168930270465816427835990863763027584514103765815503557756996675585283043562447748307003810275642852988547459516962029081554344640398080431801210432116206368984682303785443884272164312986297847301546819475341700114971002411061484318149307333532898781573302125212342754025273228075024003369530989448177051628088725851895570384664766639016650718632179596271029019172284981751179293693616310687811307904246484034640936761755563968926769534869625465740231127280048159006741198849929187149346351011549554094198355748488493770861627160135169737692032528466354364369735409537896302366917780786482865223073657589503756020644246669293586687452435089080230588576203633165199223901298730444162865667049102377030253505747171525065966218581361065037465068569130021613004606324330191702973469445245529500005528622106098189962742426443514498751400317712506810236169322392669362819149800652067448979252039102274308002674716782495757433832223755672960331621435384284527556338529225480216060569195399709226015775258314456139905381817407784225957737544151279344993318166235370728413216761012171750141225018830950955748932324489213350338437336460874602937981602343956200915799682671316314151037017892918255877466148244645234340677597600988583876963704348065392629890360484293908061859028475307761868156175886009216601283749186616499787755847360977827741626479081144755623520217106141035726412213776180568754986997810626309312114003961767840094085709321086759407101024715872461271608878620692982487974096523187684944478601342528628004398319255430253535012382175922290567512411984520606512928964567623231764599746398484993146063544644878312104743655772530947164654035501183731701191419995285659714534534645884133856857728483859429233374203013906660412121420405210928651494438323374908384168385644169810141374522009207484014081489506257634550220175238633611932807656084388343082305750110222023790025952127208377097014048643921530361025453752797143869484296093274351534920221371050209701162579265713605143325727313706491135217455028840086826236618088809931524059382159104060988637547932370371126393515285895225810163228808829372481253410207465117929645323553759112794605252052906368834761540964004278327678772425262526497087240191578058341776714499540750968943273560264782950253486164894452589225904391646478693561247554600629339149842535108618959545389459393191320342746775956677106385587875695356441505189869319556314272562978659142574409578413988369953688340949669789884344300169993329843784944841794020780994683277024931608296224793829086689561740613090224789047502122735499639803161274806800879415285831259582496921657339500179889419296492934590130495799372296479511141598086991102886127032302767353310605838806004903517086544866393917191375249711300216010844309828185248297377329590131048729648817910227765063347050019981462525230776933210360076253479416930393921512451269940113386121795704096508341682241341125944622057817659697607398205354393672088778333522866502298100230782157183000110138191442397414082733913814161710357966884016033727118952502817640582308816886198921470858484587593251790575425326242449741628201774610195279503203224427424137751038291219201183660351850799173240144534040398975028023652119968110497783474906619059505508568909689460484179533814651839925387795491267690560224792480845949930976380016306153524391233935234789002579608131346976751332404371309422767613500130470172973269725470929501292613013631554411948169446075595055778827599098404346689919242816545525057290567121732604428671181390856343052678366181332478056181278956570886703871543941581289493998215784516019001098884122259423179039243945688140530848297890869643384260901057524789746928044125627881120031827217313004094528737376747611074552928045279989308839667248756058963217566597404470974701658594886883696527987147686496674624362547379578222471381277410040025141877730446830000352204227499858178549267409895914274719438768088168217781642778902987874383713948323252675454305287413770560856857179573978094561532623520327969851550199583209647835015584415524371463498898876710223563419600489864896870759818937301743992572486192637713035535109153973967311308130449030725490695970779526845408095755365695221990685826216954222495323480869526606782134953868020177597390305642134755301911532580184397826514023305240347073588847825014928860981705160992807879280587240274353853774381974241620549818132235736395912740555958015544000023852610213006079126595540006711217051673398978991087431267264213694412373219864478255124461512233086979539408159172830290509607808900045252806663180237791402440748380171254137184736302318042624409321756063069278795573439947175078558459388008231905284480823600626494678034238646502418688156110212392598557544589738445368882948383684535153647261735185144847832265723693605315194063129037833292451587027376412604161164869455395831782180456587351454118657368061403787340085190361508349954382512902205215372099797201754897518347179841582453572930293587840449241700359970810609541284440472100545104808162221239583205700865982304325014982739959337140722761588935063358514151417594913606416632899292050802108338610710016881659428405834658740227870335755125523915007233800430669764797478946976277599945325025559220650360576837656407506090873162152131365859465436133258224588753650018667770622873225207155795752377330376965029986862991613960985199646924212646180299520494189747950852665378932479775023946836048503872661458967962762089150090617061813645107211577594441018768946478772850700491613671791226810771997946016427824886856588755748471658865245950651525071537915058113695805958186939737821673280148469087821934475512127833590070173425451193008559195848516987720670060848799675507068911014462528771878552548450260362111283215743304478900497621646486918073106639717305078964911688923432792823451898815996000568988650487401943224298196284488524652262770918449122328227710676332162176940536965670812303736180981851918484121525533801062906491810340164775423722323658174966296367915391398976916885637729325068633178379481475080369853945795242084677865083472576782495332753141423228595163394623706380542660987293244773973918848171684117758108576850190253745391230081530016259832342299366441275161325969981066141230282309730708775381458609274230280910588547312343526551654860277255324579366564483636334226120335147227358861107143469952857182953644861954692303812286552044141166741978632139655327664614722507440777810716639466852662005235662235417570960961693897283312016764273659235405243118925577577910831985821129859923381199557753603737848080089261334762501838841227812486303447073357191040588392517206467079518185257332715489500517867207221372055388936350177044867664072461569827723358346122985515154884078112663060745352837160375222673389569211346650524083666554048064706277255016985988167132272826731699296603569253647005085277005876134303481292744249451191434735739002983797989938953935018082210808850635761378872375796496489662020412611957818000749816238672449259313086622152695284990984410754981044821152512077297795963626053808287431367602308316707275493038735801672018787045681028475907647754885060121129462951767118718179985903480496370596961588035530579520294287624510942646331852586624575763429027677493131860125244497930898362780304873613381566527870837206138752663721708644174696693147611798272343769024052536668649199778015127721137022818262181346081943074164713747152022631104872957850310341521308637294296835070272512322894879325755486718118614357848063208993485632189163418554264750206194765335271053437873435276400414384805437936644688527689386049454953323654341572181367944589176853961609106608343872720607717442792714854019366653160679261947002854086621820514983891088713595235622343058374692565267790723377715499858712160905677503594699318619004431430513744671398525103830101992280792561985266324612457622424236519997285011628301619398796824633956476933070949769675747667510219016346670510169195374582023064661726607236278668136884284445860376679961830681288437989877028362997176393486670419800942457453829477683365750435558945453680787963330619439813896505241287793063622405924493948500563075480509931660359420609554311367481649987143993760291640746182552339017066010013327486590546707897014788065131479105981881281812887081796277199339286132301694332829633861990891261049835358120971200454446148208136832200657660222519757424183762932323592656199274400198212208402754663806681470500163179698374002722811652159055328054935123366745247650217082026607892890618476790950869292313229344387168748095980920980866058038224653213906175212631045533446977351468828530776399873838263125224418631447617879861986662550153031231865625815880350490056971273045819938557579094550768655771072249470314261474396601045124087282801256483515628671971252561308422257600875746213115088570395142472690879088190612984547147302959745038822319679326663660304221445807056635339802352214450304350617824063896129843981569291181264033903150553669862756820260089979119517576670725373194041589280265614393448238340414825135549487806364813840232593994350400496795158493635495485355422076701506429977647110869674114894117417516634146743089364173371732493359812398044652848274344521720734168110709360142653148092221573473990082776424865212593308204070728880809024801500476084231675059641647608343128757342363658449645683507896247738132235169640106732062669539244777084216723395640832300221137586462379784492598710972494011022727901222050151188573033498198806414420790160643449261172215460478355110019076993799182695375356273749746092753927528764180225252236787294746979909224355439203948382666354415502957910740556268797572536821011840851692573323212699992333096404862134772016857635228833884963258878824837564822111359504814154459025483667806346465331051212605669626608684682604457747047020031278530424993982520758144801587183263824843274466843400971725328953410462488907282568706837640416935916045449675887485929654582422169837582967318091018835127327335418787225020549705906220046854067421810407170849507220922239073252575768162920418631125655852999526017124436611130325435411725215773930715803774267519786299946570961154925642739067150426091014093082603072456358947834270611892237017893729343751082982964588303106151643519449380593838946036691740987131331680701959063762769896289763997027507114414125077912774661450853156670097778273270826760764919171861216644912338213354740864961252649014404254556514325821073864540168098485664567783261966410576795374263711120022021608766947821447555959021547452141649145232180403858953110223348866076215243648144067885246657100031306839574684176002490535132928395203296592818644750331894371931686941343040668755350780782866566211278407315018898446481566797963116238714988655324716714745191622164625102284564629459871415677834289121433236431455708558628388260974111437199388938256959183487343426607546230183588983145475625379478435644625314468352125639614853573379462701147823263875081197035752848039624388741147029178296629506767937015052731528541121460805608319105331924599580641493968711151855896524530334174635424055129868058555694930856965267271568098588702290757236555847153075292201603630085891167492545931299744160999307443195758274444737824633144908388094348331506957787214048984042656794194714994340513614429116656499582934408800038956409893992978388900660712369502057952420258660917663922396406863678461867774984227628879164952245903350735529353349980551066995744798882043961862712422608908515111954518902930108895618550349723909710766242479553779291950419361248440491093407260841999759867117952257846241266107137439554302827445955168539937633734067416002647784909147314972464692146923541896046076826404507908165484430753740545409236933126698551120827614666752553591514864808336111455424450136297833731248961269188200760599065946053116685525028113158740540991143721754783346667670980472240151670574747683196604967518949107179361590873469808907945843971391863018975112069139294245823273171011424595979452582095225254444540536190219274560029547084660213269093941339331190364395096906396262795267819613925775725786338065438768271524247053152698233540749561307562690872936700166824776700081204715690899890721337843743969950026631796506725760615612151799365273923583862707873899268365104475213275871718773457240196240752131024426863233391470680244289423727877442913257105817316264682836340436745350531404434383121319545000629232088690695265881807645047566304145999203838363904893794296031156290938166877119884515976883392813070851938644211875772634614957714104705609925807345002946944693064133182812607573423434344785128870957949221170989672937017842911145398358976690389888872611062159673206767465476526402886774087679722365356248030070176276865359976366288102049243616412895651627090720266113159489800902027947001119561774640916254815559091495611733390060722560524682129684910926224606267223863914164566723090421731283881897124371700135308608897256096384515807078957448825591178670709394404360232750583347815175112306674923970943943541547339480021373536337889356816523908403046793410327761409029592162180787981058485382032819130569928774355162020177643601275362463381829977187068433497765404181675019485488018863186620344970754209669827284885034954211271547969086599629211079253491507685663977186149855375669028532828599757728343384527379700836873248238088821522929705638911176680067410572036571295244683732964948817000755569630636750400859263020788333682868740542450239917602901346124734954585379902615581176975617092851713736293911336901583872715343243432110254019622228326321828430993023406944559440278051814606193150689477629572672286380347276828406223594443746998862630762122265196671087954805827713458398342823433086152973783345057781194483261830284284846413388287712942062658998810190900000113640968731291075712764509015688964398341796133178029897601644078977754313603831836255269651195918152736658155271147339787801034132164560250128799479482943919923170281196394549209659011700968710223798381674884424674730446547049429561006626270885961008931045352829610501103744850054414099618893214678453471472820313517241428017629908122397359631507780070465075298972508931305204478179601274493884800655329977184492491546986171690512932587607477085081260938347053950267549057643568527797546080816592335063117097226633256161768862602974937263797083888943729470760285726478963788730590695053768914015404842701559454229835361278674884667539617896579846692808788523608301443681284696961462312582066201691578802132570492628178329202925864513796276132449073113541623032168888659477702077561572290663752673481905840258561919049685302399994010675851169117019553531220110180614904040145616432530028356422763214837804527304889716724747819411143213816101721698069149724823741803994272864247657462946663431860800884695999702578840741038675671327689638655444081213576696615466100520986400351941260610539131539905694126324246978230622718213993518982385945211424465331584448354252077240687868329419558640640893682980230165503359758177890471538051271652117509026504788251171040221662061021009000982165386703816526208574725071716088368973367743830236158899806340622945405309598231669677779171471673047250685563757895256352689794804433691403449195770357773234988035031211067885662300847290546849435565221585019608355093803967817535471614692652018730279308352611857728276362866971553249933200490229593650963153379129584931128073961666460445152893354587947611800816283214228895738143093698483527394247307088854281579039317663066828880595877675823585724326238168929024013915639255657326857750903406997146818260364769758934604267240636500186055659570050791714875332646770188857874325414386160523812858367093431831734834094231113601854787753161572185297122412083462573091059693853413725557902173898039437336987340141589291440440641086922481326998758330044647624654342553658060744246515762978809776259266710998481629371899787573351843162435190898555706710165215473093116658342844462274428999467376685861554191282508509596046143307211963728886468068478272535969950862215073932250995340034978529766517494140342635935318508015797591279379343774738601053957561943744396437320644863830486466499094675028086281945216446281844271893214178271364099140811408470934099783480610394751608086690738794263453024657532727237833567303279767341580230793512272496110758562637848137215156856121426326359548984523146066812458016820431380544075252413611612547608132805180148579654608792779735819128433101093731461679474429153276890678487210224786013522561258185924951090310771283623971320553243235063949347314483852072879549141185519956751375446279680919751748293676713737875608100398466854320225577070881873827726622215384208355457139783235101867823891039574800928041520230474837292825276314087226874945016811501543995137036542174343977251863469314038550376282811990247866991253520537348474573968321989367930314144783571789835538919350096511298862562248162373498696298492097937824110288421811750976565814546846340941341756722598748251519870727419081826664795145228383770527275403428671076006233744547554595098275946432283125026150315499091094081946796908616740228077147618946030390938135074652145817228085612192104514826673462407435169958145340901656194158819562622767560250945295534290179507711304535286357996377292298781693288899109076082753971134061784162357960731820827572362653604828429894764285383995900973084810751848841380339406212563757719878580598209241308864696804829052367052258713696580715345548216595301713552464372467558937039506580561834994127655663380475805011569593895516146610130866763445467960817769882954923560807931447432879457765613718244081640947861083553503902367563070941165075738904541897382663923710410847201632781998601796731531551868791655331550312553747893131606042530193130257712497206960757345392864337567387577433263027150134665442490198470169415830873024938052476436199265358010656641120818276738095568590949792849070451406927924071871032281680677886368282304497746644781891661531333783753565231375957023126133672917658038399249484245125111291741136447585786298679448288382718003867262528402772850639595364204029572847658824469627288550322087221936031541517527023191743661086652814090457663134749099427324726602715445344986125793459977966334485539546070694302431862859281860731378928336482820973749429959582417035931979411003619290436264178377929355033917165186115866022514293023839374900952824901189293167621394535289427730268984071133291748465988487913102203202836034704684088501876749841833241598478453414726289105473678790626977995289004655863957945434909539500331495422999215271947117088208279474422678921415696146147821357158653133780099578060673961692400086702068211729248737727008609147390237976111911164410310580059660421253509736976218330494571390480325949957765228863298696882164706924895588228191323965675615062705177506472290383256173320134037072543617050228539595870110907934378699398247276517946373841055485991287472383143687030243362053420471645518733246852232418685708749234765481440627424656268188638235596122873259900286485794960834425133399481311386379783525951951547895876334878972842567598348789423044431697995454117355036932419957733045578504855293740183155787526149065122642379246677074240037562711735087224600296567835790567656118099574388689599196019581747675572820189330875482815453033916677222939364716049027828103725605514740621294166930247349687730414795985044801003382495743791652652092627888879486776774599376162983000483516350872493014812666809761929104391954255999615634961890434313299072152995555745101653841139871515106461328875460539906800631244883349042096065199663402800088328098726667139528993327852620385911002313485906434290783138282177947750752535116748874574492216909182070686785377525403025939096401072675035911968033530662871461021446561085917586082550814870237314563653566960677519111898180582782194754478514978678129477608892156910577973047736902649692666642208595491063756501557443898955861314704212701680065693379767530147511510075920969519387891460414635376421751279814599408015751542420454915140201630696911267665464970431791198976084956627670487215822184551769007741495707148980272651724400704617194686141395075810882095265873527620869104984866343102432350284784964956796086427131537657110969822818974848965691447965404769559773833344427627886863314794787538313196990708913540294836426643917235666296368201997889197567794536195096863845667319213367431746343249151464157589814720697726520567535762505925839182030818414030903100638800889881881275271547924585047671344252342019887049754150679655019232231618827686963944345424276470010753016777880051717332775079711634504928667602895753985844745866435956369066540153492923043555610229905638471761285991688235278508005516181328703592113480410460543910246163519074607303233189942750084066495519099384743681661558145032817921654606618572147118020966682339794674222825652926087324413088986245058124345845010054971793302124657511582742972171600225323389577013245128500462055519211025418056097620455158129053971651926937627325730204670006969463630997839632012163988014904041635090837645058407101176219276160468506235764842145535020004615050651603020202703567611937144230175345547862554704659006078941183652282811498195632277639832271590348562213893680333176077544736124263876615962775642289288876502416765937887508159467724318926560666787483385513729258962307520302001766642971115287135093036005527854329803130270310131959390522278977397995602808321765154404375868402551786478163285933516614640255272136436212806079530934850470060684683991595154400801998354831786807050269774572239177253804386750693195162308517491173957591271491042987347047344139216468829211643432844881175345762973459481843922035402928292649121893656020957214773773839924279915822996567446594621486443500878660731518497789439464643052218977358096178031887591664960740849108112030298879067352336533328747950965267633195569534033063241008894533064262196272275391122846329330277160971692451644279024829350062301189186842909075981134258363229048617310547471457629235214574587456284655074740054808592727369618144961642842661623974703878077805532250054696225842045606733526201492955466094932922910502267050432228107249705354415904684681346137650896199908309838740433067539286854390139410705182784780757731292418255852732051289855174769484130602101590919100813634891001808304499868380271011427965408494677441490694471303587925532626063487437971731965956158196134679435269979828809606724717623374325274530988789264599865854733234603360926965317751991700771341549952920666785670287644168932800251712705915399723314895839610672413973533931879527272496106813722474116458245195854978783262195578595858056029188752618778402967823208209350482167269709020267321114612653588055843442882892360547763578482498536282850521008158425132837019272346681765583565239788512376962973562466251152476832812002498982221500931046456958778618621471432777441447076381874994479773565414225072940838656641505924948235232499063053520953898375139396321463774304036431220031748141916448767406040646860363363385726478307627721160695794862992516906671362076056156478300052153903257112273886606918122179820199896746647181900537463039129845236807558320824362817459816772973151151198455442865295007867924879149393530445690649281745783052570791314112064658928091758387154836190534666423012519913769200144356112379675980575881058372137964573433868098997597973206774342759592216079162181384716454291952282354951086336066833030655620227877497428867516207396212786493044751746745623971053754154424291742788916655504491152220112685092724571732864717431553495717963623215996100862672484808639614985955003170614592910566589585062368074804733125797882781214157142566015722452528211391918730467055086936957612820336691065613124251366892500953262151980994776053703945013857310985880878182473847498874706949754667158446711333896570396228616623885296919115495311493931031798096422515783110605950848352486705240644877934301811622444651112526081735735525073748986363253380268594050108187420364260390227157840192813245707658639890249888061607734507100902456792108264001238707424126092571308577014274766117598419944536917542902130210490428223705925801929230573673989066873659952268263419641897058898735597344897845896042613295274782128059301302556037377755627565113940686942000389462481549876746514405342444675692313369762483131862114505825084883261031028019276501746764661485817702957685298503019917363815702597909630925801274538222150114172443163711658862113494029868285502124350729750233514603798070924617439866129269945552693301385987836932101965678890762927039933183965436324340453007564387458617934372761463311585364374389667687947474811898152161082313046630431461654229453717824752139874403278940395141719487424490616116212701954333400629251082976245616110593795176615215558948253041757612228258629775429707740425844007549169918366516592345969409064054877351295722151876065519378185079886043542048616792210188844542598786408981945214103452150156078816158228034992692236805049606915435029132510908650160313837792244624034940036275248865530926542064563301645952849154501875333913978131259110926028361148244967318841132277386808384329572885845283966771829334177615699922951828085508332391091717204265303042466909325898818705691607753464454374616634501822794213358172678602606071268677107562127668353202890168124250650623916815321133046874247971411184355886789493654220560499671401433529707408408075574546368367784921277018659629237865000007382339068188523529824021639999695434687368616434212296770216405079399982933856496636993749755076196033460587131770984539734139149239715625958158263585999616855373508204976481463776829068230002187343388240271995555748353743233853177592737530039445715317969084291739693751223450885741287866996516014257523119927836821159694027308558664650693543067431508716476593362029492558230351012702598481460237457296160951183679619143864765745276840447825819401006368416326231659309855727381331837790228335558676485198693154156798393006806244679596472507398003409297166741615081728437879115953273639075830645317947524557134278272568585745170445096589663169677063803365027476750537115624786077076114008356657802424366028516941783689138214756980501626684597866116243223909516923969782766868755079045974059208639762331207814261163284993360237684943705304492722061165288976367582755240635336765561072196833571620534365701079664245974922498092425901397733292106710566283508990340572884707436694235498435928239339865444495830073912115309348435743491473938153575500590181857458348752417813300644810596226048747304987310384277560111028475748849608392479308495401430900826736742269861377171729026150310029816541612247816306843826583053441852568363473732748137452076473773613679428977134488493592623276712160738178150304637026271620545571149282572563057160340614441954494845964601379491818059378258113856842018573850281372230790842087063968733802937778495718546907671513933570197841986283582974058299722687908918171042579817732419349170051233321824119136009395523136054566747566799794014481900397739900841985968791571151499900169457616193434935136673405386400838669809520644770125612977934557159037225853694303107935978258851551982507757346064591202090326977230926798671051710098154330756902615563954990879617360819478066824271437502569648647928998875918879096645059383401913829322413534037199948259591224650332854995076697270573759611683295782992640793967021901300863154571226634719324131648432932466333624128895842095611871261598032472091366329189693867619378793339335057834444298492832900357984484939511309164790112992288068967283717531248872417925757478343102204130832143800617706334677317615409693148945185523961067478496520295410278086205715528193402961248633152645698166559411579205946800984103964592362343258110152912055380335254514019292722239538582732102452749698562839273938078835981286132050178918549705815909371761417629348869040424159426938080368583645004789891977208103680974585490264191168050012644354880339471251471512152261109427813948935609240486876269542771267582324308983195487441304884189723568907453794971495352387159804618260793637532366160089658141619831079574206374542423080120938985174639290168061765125906275004136521879125219713742454266923812188129719137677035846815355938601994429453272839817496403405928929587767452430700915514589944392953533739377009956777908358196314384093901308063954815323392838623304456712195478577054974817310700580758116614733245339500874168076801498929927559326937449134196030662807678039561104026640077003826457441843373465336605888727385946931500825860623119688530436633929441650871812684683797378074807813731261653189700884799602705955136493304898424656739776012754255316130705995232630895898334990121317473478772847275024472649608524402194583761668951051630000620734631963829205163978986982780490613967716644544691082900097788487049999020853317387007035625926913137541642143218563721929660539042983370011886311760027999055984176411817036591931352046619448925081624846388960811152738212802584405141965288440430079458000199496180044028557761370187484121401296470383283355933821469818680366159120429707013380806965680306095913513454985572512975258299291775695237416889710620185733367248074098828827358571665487852215286776220935199465481274524831683053168513107294814201545236155225240534318441845428412432811063784766810261588039104213810209201978151070954135240229014293457133100808967697015734963695496315537974187779553520874290908587423497808079330876060753138373316065806520635922062503186766219482238454383460012228544139327495428346640431387338907109930478274972094900136532387613553425509257827923170521360836679862228065887847150676998156495395635733755081129593165624134863476835421903154326979671196028290289744758012190672893280325337607529916903724654944965820093132596719520217240745152755942927864210472282880144010010645614190201114278344836219898969701330894612675524445164425589258816506072694669676013489982747041075133173427603621464208526060563634223872488261863004531623236505068781316214938555258804243921701949219194383699796161735321835064008423268266115584691299026963184910318568780020934801529497710049104679184290759917280802281294637542508022443743924168935340458031406862270967856626296874710530221658551088325062627659276184574178029997767622029747130597358966135430401130147420000322872679048872444194535528934134877023399501148893580655940559062858724767667142810978899656115962491074784319939965218033025211318202349307023605055808515071441996016579855767127426614210510971546087962512861894074326878286964876289005106137498228463893918838382779276842667687245436446807411660603292530989595012451424406798144285093991002274363798772175320628796944851533041679855698524678157641320893987608805857539012437687639886775079674316570143781073314072617032494336884464663293376243225420468367891449163882332452005718619031601537368490402312637886372397568850223858958454116379672766310112894120177879373159574756683220390830422310437570538553373709662840462301285866872855202697869500408340618442619075223892704119063706936903089361550442518576430871047733673602832660534178826418859702129777751177420038085328322594127385268511200950497314216657816930968989752657791387558071212786707203353029789729323224623047295342050337331924424346449195559451673182237924535713347970655204419700554314288249364221311392388239766669526943989793086920003560972751829331259452445967555659632081470030655786789614283883489113716285547239931095489068707308532768461319655720455564413737077059755473409183831969658771194813325962481743149931065374294474690908246916720880871551024066824908761797564677455047643001085846387091656968710526960940062660968167303192487191894192170143400578432205709020566242158886092997338571688676509719370133748988045567338103604424306452082681402399671875059159877853421361942618275172257485549210895375601547389131214323566925814256438517222803581677863781686628296573276942637821879551166738281322972621546269292890479008216859101873642652536498927866232644344404453510825667305045121999067446608752325999024955067810457567608306382403906026989147523174686533925058312446715669758006328230387675036342523175797745066072231879374658365856509403758561555613962754398023379532723255718845035269369146123278691297248143898105995208270310623390571605547279615645269616298744481785389985595760003599891678522114123183743523012378712438463642627087216217912352716370901527472046965399389347232453508648591548824269149283367341366735281311883954823699638518896648897121923694911191471120118398976182415092603713827867946117407576733731412595306581456434810253604285134999939477343308606548989753700870476888697920380296117143898259809444580299321210498510016961380253489304725680850819443541447439153570250413087259824803993151459475717551709978992784955726198587510868985000456881077144913451635683116320569284450172444097940299885773394098362005785396762847388522292458996877883928890363027280658001503040095299468856521132583586856538966575747394470627872012394172089327949899017020851476216261645022478345651527455802892789879587191045302078604773518322770225997575062711912069536081319328190174903149940340414910236092653992578852934044945058218488258139864634692121061261629490873741692142123370664877448261750262452512967858189943582012521079093927878643143734015408318074496985709223838530707396362721400194585730096868084210776232836836012629620207932429952647733535789682022319432248661326361156610868198336239508027726666061738102365007959056351771653592846011487987314372090960980521749470443009583251506887206984622038018814022693600309889726382076807593342799688744524064686310055932644305116314999614840208231434152790461066343169221144555805633612112008895387990631864402168487573243339760643735958473056618860031035571898886888007514176299534244379525006921073240241551307491729034153552477831551005284397316329145274138126720729016984365315632727746173635107418336371763894066015821398298444051190892978482665961757884953370135268822062235203711092113509268794823856345829736684942855464737967004324499701989829907476467170107342258865450892608786413666106862411963997575101376937504453790580747555421945037234335123172336583054778657072542318118042644445286847711023863458929469620716763024701958689121536694513237217424226422096193101515076593008237881059633344808458160173866614875197409218113622110764494867485943951758615732386842232006596444658372339007820969694948063793927546710377861622779682786590790797980805962606868005089433269906716048149647599660128607895301692516139744388284061929313326544694342775727802671382303295711066633691547192996300901180839023462762915546945350497396326260817596230896811475068625259686239606576965454635100659126948461479572493388468767179195634954036656535674853059621829530709241622650202425095830097424883335216296615758129041146709886670903987086596351035683094314478368106545671647906245449342779684409669129378766736098887797889995871283683356707383032899974336510610402738183621832974356802571339215689743794162019850824127288807585636122459608353356729838288041461952576594883658328687529627287211253379688333052046693207009845189000330120518772025521133261697117259628762627281615333740869630435275567270947896785805704101198445557716719490220712925298155940685110870739952774984979533190581473642380122766523121330602511463796341615890472844867510536499900870968219496328817739503166999615581554857311928586267893542002311110072722214206680703172908788675191438436611532264686360756603837185114683095367635564173045185310291134694379027072934986463743903510417547182980185063886980188873044683629859919896329664070093462835870465019517989590345081774225126137263439893709268933901446763856673138764367824576693118030200101858164938750897456177548096082069637692945917920772657691013302271703387195475553276770720909714990845076593550496235432264304370512722155242160230574835745777116351374135973363685421974031332668650326508815408218890531366892829409385468998219768785609531223298400017328163583488972539348016684284248027544112039805727822656743483995403392345663474564124543189219344428286663290442109527722290406705108293319403882395762555316270210902989996802232314420307450149632116014748286857264832710309473478142532182594432016902706743005962193630694518630727507692128382368623651595867453604022370159893278632097821482325873850123944690242680702214673490860924476611837211159202236717828387785725037882759134081559436932787976918257033990847407045879012622140396034746446616999621467036994806933795524428913450422267159867812257979790194692170855292102584500435410197657926821540302810954773881344538568882452980301540970426515947752564396842550026976028579223242173263109405435080878912036998977246050222764524244105121232310786588417600772573267675159023936657019726195223304561798325401387151558557777465740707094012243151864510222451210852786756627491152168138669312556263635598594315105678622561558662061171989347713083548560567242120445374591952326747219879005700970102212420712554189802557056862438142546102429091711064737489035437386800596757716004267076999131673080650105678704327241374372682246875114073192079453142811100819141957893299993779328806785202778118010544022695138940971745100238909917672437638989888787983260773277286202492021720795847431882587567039396166561605978929901494521835545627889899743888969212682933188306846219610281286266458471304208302008929977111112071350488376639497830265612403778157782562961141057822257227338923069873498117906354285775068291480164234721535119293018234918986032048286139838166726127954068354855029742162950425135402375931278007620726806154647153626582952402773225431340563100896954188949523168071809303300202542839202833407394897152765088562783500713110591239032627391289521881315116181460694885537542875458593210510659823131751780337592136006073853236406568440784672597093902475499292591990222285508136961420884980331714847214725456151442808621327594766963277848939086630756442579934246044509103432109650457506721254589981572812957982798624938385788272928561677650615092798111730074251022532173529006632645287100214235710282017429203491537870362536914335183912515211721107598886769768433832993069654148795468638773865162416360085260018236033574694814171324680035827012812469218531209522160272884568460254688827690284298995239615603476232950052804557798026979172399770513960996833437716415479664988374248670324411271380195058149356379721663715430939318596864775904248628577453911166642139669699418816797289368356252653896157872680589599683397255549790881006956724262406468488393137810990679195519543814458649404873157839791816443091019946602150733194989594623552426185258119894563746893022296012680289035837344453739097410380011417183255121885869016415276605840198770398477072869453888397179514413517540323667357585599835575560868968916977076814944881692159086434949664562258674974879942895398734204574293403502844405995579936455522100077255417029435634139783825846048169702940961734238142231864493261663290219344450552859598649607727349816722751797430575798289500163579248946720753035108746915171539091612539982736212242276453826959255650377191520017516023477259372629396960603610543345139423832740021484592294852514025551729695782123560246033559130479059364500553936843764991702496281974419959015223222518012825668150125379770151820273218759852502885740701950057480252404403095633090727536411882425480300110677024706149852740320532411299697284800061137385379266736814345407558882090963684069879394372553633531505034699310054281509333753315624332399705698272546898488210215913212083983796581858261777052948142131151149819349211087009222094016880101675717215391690370146779967451984800902378562822426574806226241669132159889052988906335434037880998789525053241029626966455392743272115803721042023219417412634616786502882908314516424735028088608971775780367203763442033963985388774176857247574993608482728504267897877541740819853298309452943251683892353761183224826168782787381139258014706481647785228595670933874066408734997692259489602280573164266682472409416700629967560052278903585354128822843781154610867098594609283215548074845152041348175502041233980337284713236833165353244425196959198062577918604621409395910698119430565163126302816195477018186402107740318024575032446694111917644955047101423179261384018003565289054228136747643461563420483276166481412757242655861369204175023932215670859395463690522331386049853455336868904227816672875179625995926863951835713582313999964064513471874586379991000852231299853760866473633283223906153995446729582361811082439297999349691397412316516778480094864874046947675730669883837756003992557991554325276635762411108042910819121969633037441120463267924491073080570197777081982086252203407110535049235270637933899280346086714886885902676027692988049139001688928990849009774765647097105985230487077735470723880949440431891418693307466389949712599178834632634928030287032174946431444316888279342001043327756197374682098926012117558412169463982280846036664766196912871375645662434664007080621889910625557923941692746007941597817564264658718324246134311302945981753551579908125007010056434817467700217483419954266836054733729059687215337224307920102174330507931680733911818661469498703780544386924265015132128609650579033059089664575802416797699830956112766084895782588487879175786204376009510567538086887154587948885028556199847298455025783286905431675503668742662770848734968135981026556705422251810656274366810960200970619716268745154528590931673064325326418262892702732701794529497074989887234047736249338095687965806307496867325062962009640717113207820078821163506588604787527898335620094003637211618668809502049119914283398013362869833622226977392321957259541472196368509445314034520984695901051406058949550334031413652735590027167001032443770994159634394789605159293431522803715983586863321785956190000788921486438963183495910865505300203912033527524927412580503214138842373744019869151959526350755047052779701820901459080260532924893953011400824300727343692154132802467566963187909117032298903410631253960479195361361202803023094544143505742626191902788536974587137917090244569505415343229739507237555190994871600058848810492664644202242016506485383354982775362472641348259785723503593657071366174588372237391039555227354680854313726909342121849146497607221323649895290386056322501288183788811093076283838863609294137975200976952896503864392980099018018007002062202625783420502723510132786113821223396126045489209219497396638491600344023116747583764536334218595808402599460950074367625523429139072720086435247915339572473621310912795503296231162124897251457710631291572910709359470874899767885608072660548768547194105009504774002711190847102321108418503517067853612607273773987896929080609785097034350721199179857753809898030736131722447477908066062062455685403655087653803253286130042068636437917436347843459318293626530202738735717694500135307285743461307978333068863997784730631038002023006543035048679205283072947286321357777757440771868956774444442810056112180967829749990284315098292206516901540670234220631908915128873294311403652610382087522173803959018793753453067920887359209144858671879528551632735149285844000447519240356192132884151400973015464910560195642158504908578220298696576769755998750396144544653615966079738130669480687747362470300132554954377766547561770110952147555123461641444892151646528374505769339812782867061453387703878961965158955378354470757779064823726909575248574886177521379955772120005250894639422481158765616018974032528728285167515481527108144835379469260959142816629794979230846239462148276871730776857287534062333050906387967159846311609924810779940520749294846691461458408474774807295795794046906654219428457724744098541773034825705889128071189504365252616089122364222232912642091174231268511778864557596612959605257769531685490474881906804325968605025738322959917990568588679087003690711363917255168964631459080827286559031636545587227041948315644775502403268734647522158290936041191975898986330663059353608638383471899390485679714380210098766182045632313306468462544877235685716648949955559589441390362425233470189016464669281764435420934913328917768720967901863642031152791556668458655700197646316274500749090938960787047899238198583673718745653190083358854769307096111481919933519948815579651074393157582641128880002752021107145894193742430952290326951259184021951839445997768108404914037481200540783962912617985811311989704106578729711343494930104065051788891540813465463720907764945669686484588729775058022369763641488163612656967697234514079995939045166234636989058358555780109804002792636947028466386312317088759933446994267161406863394957051180851584809457764819704668214598671700669277999677814294283072833374270696571104165253457497131158309001661409224866323881909682657864829746191268487944582985198951654040499270212335030565194259215443853954695343048907850024827338796535903019184081033815121125051112042217388077695836644048052424285698151344959164521299066064683512734283712051849800968003298963648769288677398484300066152517697195714288061544228894469762241067426669207191684769053938938540938548061314813540191177756402278463422170044979558795929196615868775875957405454496759111119538261182974088976059828572816067344002713557130135278341576007161280704395809158250731726649054760505329187148712617227436026466957304822323637598224022646114462856522595558340930591819660674114514201331528506916035032457789087097076286737131226307036878346940483283190000935455021824994153701697529773649090228469560621474536968385481381561543902183299679728970930403457044329121129266837589331219271937981849459987292344683496426887773034027696505000529080931752615277690401331122020098439921704084255794176080117780937511316026871625267085250312237548265269736328470112679338390505731838349805968155769196345542434437787661818561598603923190081624892971298155272304939538252896296153120481423465461010613457993278593577441295054477589343279764201684820298731972672994645251971388182966109051118885350966571294022401799977548559191526283136354793610182818185742652350270597514805158654964791220023175693375021488891126444431079964429790209141138307172489026498622645710568977184819608580187732995093047903441694089304697950079310772363711980506157672310837159688215897514462127774938394376466931723163817633698109912323621696876566207855277663587915551151464668386736091615044944769221490752909164507684068901072929305239341978042078892969240074422587129044198457028569004911910543538697561226158927561948725869570481974682490995990605256997228748976650104422136683400858030542511233043741080269372134967032407299374898076837109490716366795503463486958004303085750850720810792391965595019297240902247137293274531528938046978865547669822701576069830897823513941264853552154895412707753157322914500156699360469758775681353562311816156935393005191312144449334022174978852486088711404980455887948049615019324235853961365886294995705252709260590493987399333785761265239672542335136905131208736728397634929451083752775692956849029671412335462419450478313346375184739177332725300538163779601641418123236944262834580087300403940091365645080528164175378370920516119458501911831207468101200152603361681489105246879975121585864634959786261555069312594327129034871383800509273915051965854006241890018429506641154933506979978574374764879031689290804191180078621224165938578615306347674946730429593691811411027646130664676746761969605629811637313714152314609776561328627906922480666415453251299361574064853519602269298549473097252683470789756072069616774159733872361455865218536639119363237776169560911637975958385785389311267333128437490829418282965109372392190664625508405867006798274837121335110691849686069975759580268914858548389830292563216420813280944307966686612055177543802742282465429626612319323143939431389512710483048822210975913545092368830652357635719688789670761056055896888937421477753960155994853618374610188673025856867683967832285181375620660204348832715119166303278472101481877068506731718064934562066839214247044096082455285051955942632700563921710442173826602739583192786545073567564371774066146037479779422460478713857661348869587707652637976873169386722173025838730002227451220741378795010047079070185716930184460742692868542285095579580254840260796868283244039776892740548307103697234333512571568458379476076169505358676539166160106102545452360523965061949888393437074529131165771094327423558636160834212503137298715231171080036222413456077556039601337717702748332117587256061849740537748436961108995159518398843502996800663358710028555009114408991117106392742892746510982629305169174068742743470162709781812339813997320330525096910424784911933619034960750138642351371459931212844773138325144344953060477047701497453635386754390982418834563692045975919427216270807005226153365927201131783217685479916393673805572188638467950631749115759277402973162021897781513051337881959285015529744869209901305701952833235114624522527238255229739236013139861203510786076800262463822596103791233999944439912007334166246057192935179571278282051055578366914871833647600752241305513360011424144660225676162247140488339534412367414748067559600421388066662447464597891555045550792147809222276180017646808991075426630200542804325514272318984541283205443061427349272204839401166994408440351185635332260080190327029925156528153010236578111896361103369095169040668633437276930654552684253447885905913103818587176930766741224025113894412343605659509937960636034565023561007596763019370326783305578330536601008491282029736254726135259742862413549245805816438013439238305110548363007792565312592156172265405298546376201779564611643233934918437495556627975151459695057595268735445434339223770726420532069147097568208935699235555898678733072976731406669074503174634963007516358354926802165288432429215305456373875727539601655812210835875512709680471459093980789284425973545882864430289421188880357836595320577497476516537578076722198451723489860575505521282154849256958080521350534664925498994166931141330169651149199125816159830431630050534366905637626756646742912746659331741598816501490356375199966901572696132801053839548617040472363366412898813322298873698024062308959353840563978021567466549067462414340056002542047031487878713069355073476614899872400941300513387640552565631599453167630620146711974524115054173047830481568329068699639204587378599706941226679620374865802391367076619896010924348366704794026791764804748387621333099185395760890433132354895214692638035212338537854294413919827756557171154885875528143495164600522907257164284053511843198594514712059792677482417761662223101306328709105206155962201796528509617552544500213826636991357617635884491165394972339346513829823830447229283930933706160106659440528884306645740504859056514155586991018067232177664467440065985754367746153504052962193492445631944909358385148713633795925452645191263929885378676875404896179975000178399864863694889739727952584614471332675373429059287589603355817064781553824244037221620073033878480982532774467526593746287890219709729320037593974624853855385460752578300820885335678067601979691872255482322667696289531784035039730953617027614496051234749276711698611536433603555373727346000333172444264894595923471642024424426504899938183747885356341540930293413725214495526192658336297509479967104957874788742101479051130008606648364986182548992133995131751278611168589323097602786808036639858834635167746968696664848101136361260589789876654282619284299821914367540714525783691818377402351529278860750997305475388922364701187862920347925565165989743925969585740456918463386435144895539579168437854945383574026477159895461025240578924507741494136008953197921178968606877879367628804449681479690288638605984875369442829184886635438150536101400523894027154818817503111636504909787972590461471426307688522413811656086673667187209544556003521580185459727679766023987334622397563843937852570971382517294454782519077139522864063070576317206909849450537152595594937211560823037599431793896927565843555937905861983831866334062913373406590496699274765749006005626652023129339744330469321068360164893489237210742766161925949481474442597712244458511972944491958636168093732245616700578263150102082212746095813624983351678273653916642202920315515667299545177491644798385021957959393730981975881195709736141502711273042412190535503171482933806608543338424125915105556885598440473609693674912214393285956692581036454963807594102270449574668569017768438869350315545330455905204825378918743620884363081517752287388703690055670476258985595343460173075946255159412385589782860599042047160402843776464299634843246089987137774474218465652495541518204125810012705938502053364526066746376796378676704606840797380278319837118539876081639046269634927430303114718227610423361211769759721338643839203159984609932771304537247212963898059124299954902508650112120583947783654626610435168499639719032772277147573369483100097296921529321406919668373237291325826852265626830338821096366860405638348095738865314661617901975010428782351516563867710389220218440058929283516393111007731745646118976525902182094302084598431782697067395999475930873054678404413906147786373939872258057573977821342219705547360312155371435382268895915573519833823264633236221986603856853819262762103439796435544364878043686338605273969578661550839886655879445798915093903957155141655417883970147673659346203848272605958253888312506976200007413519806415991246543718265424006884961050409535800273316240581339887782876320569113105801759231391499592664737503414811325156699170063508193012623331528251581348445421750559232521738351858705547468930843654415089948258855198097632959628318912659113870986423561166999726151051162925535393035136655447218934930704817609571348164053270248819436047674463758708270455611956443274775176105845945248091533286798350567074742557765763640410901812303276596442891864057023299169571111385668944393040494523748778906619513470464451870568626685925462705011236778629708984946325617135940292256470124383825159877303990174762638692994093329610101884239813624386095470644760925739602342483555253984760002159765290360492027647517290497963444522616064483562509222135257810841280058505593593164170738195979590068141929060391222559134684197845690733726619098198212589515390843920940556889012412284283222776156974691226144956431877523361316381766516829798414176961495799097284813014704308586812626106962054035418076351877780489622741742515436937128033153450432270939248212439187416053088333477155563048792894452479397515070398895347066275126207923344946556346171983331162890766298350677001635669133541288423953050420616384048675374178038854619419755336009600158507616092468726732455495741525313685303079064866947645597651384290942904417017961781548069684808873611198712671692556363640068862846993196195109350227823024282569031897526455980381224806879016707060135397036335732779385256638585752724137922560861833549252018638036039161763958357376311388643906247863301851003284962557177233424350480695576012809587387247326233639231100151458673085347321885456825502955184239985122349782951789091705300791395966752545830845970408017651529200677364402826857453875523208278295760081015791147398382822208723770697037081567018035688894011754339417299936870205123451643252583129777236950141493750584782578034084811445763693113275280251891323277643536455099119257903267131458505664104122993075319196263211981004473839607906163119163208377832613813273377470559133260142954778696978209217590795061216864883891451221560717120779491737295571695356506467966715604357730369955281550923462628561492866184609319841500754045452980759033214292941150489539405530200053448393385813738534432072087917772529247077448639497007218780737196155713124350338694310176181234636238362041020114907465052816888052100314229570852843221433998153698480007325666512088510723848209281276025631461289202851417297303882645715446371421071900547543295244199164041066662587292035973587180032245661226438260235166704178676672248548022523478987162030672924041682020595196462074099768001882930327430762413284184828797040198727470285690793239993466308044406841436942327037790628913897598162029738033061526978285076490971977998463952026830746928220501900789475617464821128881402469152308455604531821830132412668829451752373117493155023247197172419618664336461075550936696123632385674394554951393384188392937318273376312100518161937952183639311645858267688921796416862593573819290710046570029369921103707559872612187056788053985581545246890568927343964867860672924804964470062892060565078427224797665683525810761240458752913071741289244562642501147539031035053378224314688572659809700040878091742535292771379468856512587275350918720578855053805442111577374896476782218486576202665820684568193102931385122384102555519470882433775739258818711669850471051772274652867466092010188647339604723039226868804820708812107299537095055484266191284747372605462513282443326634267577868637294161064297054670914613401086464766750209998211407925879089995005575736772026444788049792525343282461155072510589849171013686755641480782540251328870768623240150042841836532511189119374801924091706956220395137353170708185093016472283822087585569980407074237554499987463725882580662692960726940925897462230295894231662142825911556479251783814868522333068092110420455659086391542419285391984816313970330998503164334947509146998312535154153631037932250985354311953069392933289072256507433591790662325908775705976662834115963589280192164224409811160176183106815413572537538209916041925886782488077900800757913214992588057596933367165718936437929861876176409296571718071951508982560116319029587257158523132309578218524108081747803959552917701020287054732715935280124104921370183882356434240799048654878628616665691783997864836695082965129898835159309107744135151571932953062655018469947299408971787273123901154193703958535844133096378717195152891385134213941876483153096614725942849071331628177569292092836160141133313013673098114782837589316737941249140247744037067027460616514839265034332168648949234523381756467384216863641773396323758941523110533540993887129101794803154769236040319945853059328443805905082809537134829708175778616623684832201188532923035814207146034663826911189772456796536164676858037093720281381058972829717066441463216313871539755995533057175372644732277773593234608609383770003877853786249817535081251030235806862448998743173511396835967803124959548166156370371873049714865161563477024324257265609693392311034143998829996552204284387087357170169746082736398345669682843424868765918591344487838251911791907186142918266106036714784424746650582538456754076932793520560149840853837798099241442076259977285162836812110819870660111647718056992083755204452309124739902825259375302947492174212628560410905853471214767777800541204794650713861549104490584803360885092392325642943747290719692853655668430559314113280154222930515460209172042366533224756519764282527435389021126592301992793362088953372925008390091248830523112696597775376242199675693821841886327425006937326474156115828879238716428547940359469697554857780519361007550764438502550135936750180054658698438794300612608341415589279860116609810273197405919392287446556719808493190899978545881969143203389403658806067424662850132007663441407989644963253640660446713273600636212653770053323528045509642892491008055095836654289213835700354875028541435239016091035520386677331770779972736144220100949459099060957742034898738846809509747472802131231781290384789360857976796123150371731178481927287730630352971958492411303189414544981240792287413075409701704223039144054158580726060378479051648293765064012664061732631672246560315480052335973363177356760490121660167723289114971683432637970998768256133226388334689840861827153863128705695436786368771112017529526857385699520773819856175607192484775100770803778930674345080980397814199611386020352428875173122924200868524510184634612489776381127093028500515485670305123778961536459696806776059451662627452549047136464043266542736258117341013989973295741276321183508850971543213796300941739571879483364652206920536387225240287293501457398992028839181998832162388453416468551617122801395377378495900591582628070167404565125897729880505297936291299420604801634045682906984516713590728991500649032398026567052093734200244576246619304445337762904618516167596516237779217949280969798769145146386960494138861886061599919471834529213296513350474612978343904638248459861733136517714169191683697104404210075370672823114011742931680055988328421801253381692212625938643457045900317293904954250871543788335596763055506409676090573633036716805266165671353954262765713820438175967368506207367217164503122654911944032726022981885374895834968861307769115533775289514178097206751108356334245174813858608349932821238953880105238509608536463296613430807186887356217194493036232503854372087415839314981988591434891844295229559859022864744152654221679004484363346967977430268611339184997948710755870073728989781269125035359220070819028573081497300563017208909185234515048134249756347921143082430057376758589734497895042580636448757523015100556850887583501893955295132776480672810896915234603811886812689085237864784164649158976737578718377856434759195734808572729010486211648208703855231786458541430956353554200714612389115826849798119115684150798869330751992863767430667148139851543926326954222904736874759086474235138948542196933664516102029292987665696688050762742419285354690638931844676795820033287787002271539797438082491342018951369257043524130139534458677162097969522852430737327034719661211997381400035544219469769288267520363149719170448009126474935437427402315026404857829720559714151779043333555327041952239009719302643950099472822149472253530846087189415791098158302804918800800583130054072935381594194308820047488715613243385397590940442263253582169183757527355378545938016044722096263748792173483994411819091144587335983359513219504328440966992554679568409943590458396430804120757764993208018665404362762061821514024523245249979627599131287606438293347696173884637272610207723238079355159064469706139168282246060967033222355645310303623580276277264007397149080401266890509751387585291063875698132029337899935381532044184197790140251023058850539447757588083375812108032987587740557149904644646158139041201648012826136449575222959088663654794187727596117934000178337040346053062530898115360492301684375576880759001689033228631143343837347897968936225394525070953457929278846320330844213037059412540443488450552519801641685664144291582682272644464816218772572365034379538808120682740209555443140013329446440866224864928940772908198897958188122112282717085012300643201439386708834372606669908508950891016227725040704543965729873186575061427376427682446860084714461055729513256460544415609698770692612873191982123763221715446612522152526536036568031066154504436019723999732184798720720450689344176231788399600056120780813897711591785224572457702651218377204368375297621533244431937125876441508983903655805703650571299539102038320641415698441511027724117982408784045299456846636034186178027847190084222776347883447081883695152063573966136914718882349653282426465312533209844999774471920796449562091743058473103500776915788657626006122454581810402565359267143817660747852117490477770084522175218070160400920165371858665230867775117839467429595775084798124026564053534747979245768278116132261319193199365409837574737259064191063582764988896201697420583359665185148010161106361864643840811162988599628203665898856995813567033736299257675576317596058582861813030386971576933970381251000946896877725598652668773332723860396550513830947984283715719084259735181009342399901765911052805861959954906926689716178494062292778445002178765396614285234754181141626909560658717529995763563063719823940034212226307261348413329247817428530089977359516343581411319513849386171835600769343069509469991980714605051354215479609826255134084140913181576812343662453665986334883906537896767091631713169123323295731670485818559079732505587534194437966272541462956315353990463208173505222988397976789011577327544346764858584586628795406359563334675383358095814111281274539735357186080368099673251543683012726744588129549878564623513063824666637994705404456590335268431971747020414987694470683440924557485239265346853592443817889786473655589891876647506258976099175220652962077513708308624484908776501507706173148183830881732120379773867955672831204870038823316789633992745617857007719834674224448402158970564205442368325854720498267879737305302293070599931196468120008904723558607308615391035624735526128484986166329492875020176554309549597509331172745938331713371664330797169405995224188183541963767304907878664739647534911240878189669363662583032432637497927462511151112752844429878752121835287358807626198423829827351849366040304471349000425076223773549353247448770731636124689941907360202675820424833190303564028075182444791074214267311412956406270423426294613493530701649109297406531413090425717795985167778971804740246643832690956384296931712999974026662205693394723504764677771854333514677263066773790666482131150138922799128037208542402028126103661018894397940300656403725646173704485528659405019290430988243266533577004865194142718584826384718031993988316457010196615624676759602795449036489559831857311346620077699891226745499675913352378733883459054695159188986635225013977847302726464283933620755998950718238195912534849988199737522937173311804817502476174151211953953533415887443092372361663426427706601764396216751154515835182085393417967027504482984916719139935473524346246111406628852043352335239216721623810042077479916595171844520371294096834584277866605061298663683331854843812712188205280476361189741703649505143664878522446076169569266424329497587605102220394764084903809244981729536501611908426863652030361561782100428478141874438072592688949650465136144168103074098445096451596222271852232666416534982982070773256963945504139459346437227206079243526073766941309035222118093826124027901302704415358072956467648708632518875796117633285904527505848005489038389736566816558382488801409574772821034849504308532017479604279645452310494771118863154284580118424891109389872438823013679223044828788047642023328694304453597488909662184863996456745340800779452678321724989410262788481034040822642128243656348740748232977910340187015951790188401185695217066157299229914856520945133033282822732090922279981621762709150094230885837934812181968211020559553296107560514460043341559221911671745598632507520186732355416618853238474927652636696466155367821669612222255358357334641807741809863391706951979206003304946186149697773414161493311545310154535824040894555019858709634719711684201903163713109451357462303891659714927549441810599885825571546812850231329228602843640739996559078965465886857427246997270588892787134036067053117498120858211892601625878909272048387056166306200044665762686037339629293163872801326664833013687612391415339228453756956426391514685374534866851143917085625001824102259382652316331862818043047459318072696187927613174298610715116394493338387135932069550103244394261623497573373431556188193669526161194990198992949243504435222863316232486055587705280819186644086908252034248504469089323510441554053741821636425733105866438333028711827355699427576800450551851980364682090808227967446014499814501315671756738611717225552833948919148739204158681112947109419920417997663692571140512329771448084908292282293316602862003036984896567107833125714165450771402053078025345308773894522841110597890704750068634338543026856442372846035329845142541344401597097900657838767310399376208136423106536727279675401920900044757592044931376742867176397411498341916278771010467286383192213870957753207236070051700290715073696312566896109885933460124197533275434676403018063431323307992558902737843881868755540765240264054843599970729152764644657276931463847583195044797914958695842913207742423768760357932581657772607331113579149619719417565416519828898109714720494754058638724094499278705732574729174025608315937823082620215602995118765037540149769241273078307364867911083830043329060456498828506622570182190759567553419569596106465012873238577033629929834691715722002716426032881747358210730293868913071514703512704135179500882179051313542662485475297216434051511932379820058984137229188116390354532033740658560104070358116003748445368286156431735499930699501711777449455079032817170084993313879773649578885085883018253531140097216532619432487650295365114752841455617313212749553200728324693644113802758097538611273659325606959874925168374335453574514003558699644461779123367174314522785883821971883934016221747877736178012361537566921866886652953327582623992448307205336836191167045252093456523254415627630321770440477457608172571198348693451217835937936698356519714833229646077122190265347591828747361580835419284146420582504268653335477363452902146923822106327918281360142193768801465652149573992175702271578569854576189055610379239254751313713378947908777798380853822520466989569740677128052835649585427005408469252288426083211962410786224820265471284743229568728099505925525768490972158612386506483099315559031820648501760870409212333414911735581862821054509112626266823326335376459569366108757899811900311153396270834665211001290877762735589303600676777435251810813266743966691073576967109081769409147010054616827993716570673390620097148936050094673212059513927253978442000408217027951946823755619251605804769296306620019995278964838634239624912130211186047931976785875982232534505876827687415169541081811724990992927381125429600274192488416422758343544619940924250886794724428999052182778073319954481059175400242391208124075434155282478255072164605043274440809423032845785140071017229442777903236419152328720988309075945385349400205631899223356902846163178663759934736927922184957733404093220572886686725998833281793356706612995882656911375546447096270179038759328336093756277646628394174717470168579018493200342782770023899751513640580898962992943890043689520703413799432548184440841696510977547772686212044342048362513871264843599266831573856476459959568740483392713076042219407044142079658732918228019411732266840529174337561290483323130919104522473246185463008616664876356583226724841943712340607221664914914424245327028547690630215548573839268186554239883734426171396080282374247921006468619974817349702390355247923654243597839966588212808550159844852088750010748129316277592897111107903681677277352815373745279927970312190364399262420213827971727162237406389889511629889116601441026845531166480161869925961625033912122431207762903949659501577000225178257544414379708301194084503452476331432438660219495959983037220636417648904457458416237577685600703378473158551556197019126557965449649373699878704940861055065464101321816123098176586194675781761700385007459415010562829850059952724165085943398824404391858171108841281824746091580185558607886282905960794663279944938786246969200158569456204965398427621271693534877109148624548350983740027701364133967660136961421271106071878651009699034077829116540442985864335053593859647349338475685046593234612406079914814305970395082379447972766325261809432473743028056624761461900169452144643525321094615368612184153907284779581046056810140194629760655978351531705243485084178456500973704962072963818790616829241259401219255899162518978596350944523798889632787638624871156665228404864794599702901446478924463343023951687905563626599843996548400347590480266824519131132732771965319748203284917560743759794041479503267104233853990934200674380766704722391592015990748456750973665219094519022895828519710128316101766578958036368342513427402238494115897473768634111164158383702560380392798142343125620269829237632188821294781342770861571092455575247463102041909688527570914430227283180096719930391505538823854970987020693160779914654135161709622277013666474990488902250949874969788874385916174471839133686653379199265578470002497090064477927975818296511041122445301169517137550401208483139043230646231093678710194146573525382164502358258607073354691899483947423209135557717556912084206406868812941743417207662946882698804548102348913100913841779244103553554756526826784569426152724766101794683750968386226793437008465089337258455707975578808007824601058924767531437499073146622338711675452704823932024166809950527139296416278800768715677347463937655156656629987993602894813390870270970559467431715616837723088655253277437327287690127659315683312142228288921544137100271745288096768183354101710658592876231850081210650977241065930605945636992614922410680647142051639182189712753638278515020190540803192661011353549787078581020573285464005265118073931141348817065884429726730560247080451932384989570357497821747133396216611863697239333611282253517470840987271741136651375570858822003559658994444361576043115836172528323013983658345772204195187418652800460713750156151872311558140273712551729424813867915591925863890710263760563304500868709145009532052265106919052501542418688056307345791877513768530141615817600079652012071577529766451396721391891412684657319434564610903046443742882436324713555146609855864939786275073744271430299169111949549534346765119777275072733931994538146186828677058940124798793303658067299029018602094097896308668132426660939850026747164061292215444736065313193309148374221915522446370038229432123301184529079062790500273277281822092681256851098011004194496401997292322019712826638010905782576091177995264798131410347698953554412503599989943006083662193685983418334253200690465817473513251902251260868938299264414347917670260235040046305070660340051899221861604166278910629630951571122014401943225407088534545441677659410800506896763190102474268202512261120430868125613059264630619420779722054078582448776360819864546148216602427028751714407758000896683092334985377343762491906713407778968393705215200606585851350649688981632320367016131776713408313436192639202026062043747477459109508155861906028938705073565312055478277416256505445888141728610510339580721603642616154699146430487676669715860942347653592515361833726319145586657799934679805628600877029404409646304747323717302744126750428238344170669361234484845839619731023906496362958501284632180268861497548146554007385854095922411452111657667881377624510286633412619245834499922866035464554772505515051362805680336954476780897648851035487482453439582744150247192251760882179551870418564145853855395020012906837084220363389066777621614966980071526817054981430042421061353056789925295965831865441401497477541559435925179981712887153347004685705860101213268794491716910997854252082750822952988292493263082803163240311767105788909736055205522621591845764386550208637369550459608107605302766855008362425206785529774642858279189674495111835673808002583427538977834573793574897539801715962107802497340400720533106498552923136442574875086266332397821681749594906681877980463574366764362751713548098184458425961329316542399151854825693273684434768074526045753977634315038332282914931401019566214250026917455125476701099039292958856401898068437097341077972710821058201795265279529165391636237383151447463605514365399551744663690764777312190131781040432333102033979414382905335126555415192196943251112631173101039838277605382132963730923754639654552841866640210399380918161973261074052559807773519000155813921433160554994490700813098955055116020853709964745979817118906886908293630832494573364358680946309909795574182733619804290198768268247129814274539863515474370303423252705375682414325434593973415909884710233371526118506010148227094871206441305783076236947890290078987680157043631812388495718746868497313129658381450506335915000807738340213889419794609618155362889545425388837368539229432431900101861644732769346575126494294676433275353443339101556134417711513079856137615971561086703128587733249174578727290132235236648328135785805488824604989147964568821974784907030655380282930571392541746904427797919881673853331961790222077126337344940734959921450962579122349364278431552084904167744116318627675646576973703829966783774215315493199213328416751294901231390689808451780534257836389080165756939659781843419655804374628927411339250142842572287721309951647963499306147367078992336068710769455496091203499363558265778435900058195958469764994071693696694047920902798367805636997535331240891704267503238117194011660347320719934718693067444672905813861259724250458370146937855976369340764382224317326684957869322568326409751228170539808005717214929812135104791745623269406065329083652338712736191255698537256042211264163475072395504785357020862147091648103316873522376507761416553242815522727949612262506988326550896486419069559300729071359237848766506103236049563142670913978989980443392101737790962598190433811093418140036444926482250634331204391337814407472604798854490920346520121080388535040222363471779663165851601311998475065446030571159405755239567602508490301438023060133831599603083270428609802518056900739647747847052210995642802677196026803907730093093162526527840192430166119159026908037194660611558379444354480069689547684195022554824574445771604572311861177635422625545366962563879438100095529749490152171906540370794931832057356274220183683178071158635345836592367170802184346957505288754351189227521375821026922118039087304576721813454165058395809411372783324070319756317090461953308902329310435311371078058078703321336465412516932302449952774191085163832374761480464183452172160625522824552539488809139654049746141271729393202463763820203121568855808591616850466010720604493899678620263959958033291605144023356223488556852354680118602603654122659912099542306346746607313753599061041203311171200918541251054755746083080758599991425525030035094794914398632907245133885622699721241679464290813429485794433112543042398701023172498784903414523463603384131091673819749000780610585064657987827089184268146795678242737815528622903486197396236554326447984354454188477631521339983304072203711145968637765269337515346848991571201022060022953739193792709028282234770663461887250012327856791037839790695551327690157927627906961322363633384020433937887865160141866324563843054196337255032075672935003467036557864278066961727784285505577656006822919039313110926435346936613478597528984041216394727338784913568551786733301611637212259038437495857754183186019598262138701118386030955763135982542552939113458237485197862061581435912811274143670266295430031187532279595994274594735960869715952486559944821772821050212663318038148453061313562278774508927821458763446257641026736587380359511600755433608522217555149834789744598399682611551595209801986839328421492297754184335161358423241215099705804780007513516461452734320569604600757740809866627481305534717981826972554519204875074526248331918149840687595020652442018298561404453951694541596343493537987848056357157424434910438441092059035655103785611438904366127718877130400033399455524951472402798195911261354895029099054540470093601411586058196227531654765361859812401560201932774927286755941906112699033591120351165247720235505711464378633260782785065388721719020038758026251946142921245033837575149025465245435220559598747977434822310798734151067374037265855239654934372949085701367403748040411216814195893450101922482278256438379751222916334342647444911435345646736415638443599934264531918988887851277544258440511781167965931433984256596218995440428184781706481574661331190180114014156555086063016126102785494025208112948733531831356784803237676590782682583752563641733791537640569030505279083500081626273786317797806511868824082544058699472308168793582744882247258750752951133344272635059325840560549694129862773606108711882568339720824254200940522011216745833072641569529494933168110627161199042933943011032905292382947266529001805786713230921949710822393299922137135657244844883857274776055358893577934120959295973218620098070215252845772625856608332643233285614323970947888432034844932705217957216316647251762925028117061642711880296302381849607015303239092418964575122552617692383048669457381239705485596088730556444901630493571822407722194320339623913022586525626147486031146735123588491625430088022658082281882150417753207987729808395540269256887115587289330633552242848752952326414976292914856386385747288015032100998643038056093313098916885177442709292555905503401748945063841690378832068922282514370329350726526910275725374844446637985745687967164231549520336830441050813337559275607610350714129944814681863143268692897930130928570773328659899050788775689763022371208516940293270035651062654459503324712930238459877560587371348610621948094461376037521428850438936743191437596174988286528448055538156192788844870295416682617958674962281496009086711921183115364240650724777472669505795106688295821766492619663025554177411485590069636841534328986662509562828498419380236842012536541980532058619954642280883513942869944080669967259253081781224246568196839659625314500457556318684155277788218017427263855294733336483318522166679123103353503785224469585908943998809598146006562241067416899434999355626456650438076485251861413278638543878725154583958253899813974389960293064721316120230211131554823427905662870396431049859640253776651211189378866487767018717934020366880278846829902412393561929024584717778714119542403522733191329798716547253631291853268918751289501835596990549346249580489500111477667639872110042832703434845075937978086028284101389088047626847131648302348947072257484918781743606986783416456786908806521887936519540747017906724447618916436552455250439814667549751200343313047632008217412672699074947931932314242045005355756171721044458144397046210546011550404014119713147873088711092096006808322639320568755555626705343695754305895234839024652065979521695221665779619565450244104565427759977115359118101891688166169652929801216845955158485726331130238560146035938852500895374372081936092942431569650489803274741100918420344545302053180848397292831631846450505204707695427312081925598154484464233166808525264490127688533994370820812725273431275227454671907645033144584318692715033705933045794617135066245142368115245922743330044711553153391011908322740452072863211430062475685530873328927046385866773386989594245030975585738445876245370121849231840134692837174211152612200717980274184432904690137969520881591794732593188936187053887477169836969505949513504590761229324967395466583280533261972327736778345611837147160109699393958578553009477848093109879807223809896540725553710909626291497732722596694344159964718498336494242257436483173981360868491590355659874190826467748144571488414867188864517774044050286958140745912796399023570601564386963826237636971844002297373175625467481473173523028598584569082794119224905881951120818291017542487840802061382423339500209429739005382074342267669473915859287971228535994367845233249216150193434212963080770335129002521003697580229245843297716994821279791795670052988213123464612395555046418493489517244330784488976696791960464033871874230302316323193013691067195236621354301379549710378962564780884179300465272389796637919316647235163568380683722309568955237499486942300542648952712035180390679914222297440877249989719381724449068550116932512007243513376286615534967574017182917329647084115100384977800319336378366246621930234455717286812428691277607915155764484942706163796536493734640992056406760369574844585214947499508950037716948955842423136441733161504216449287727886985533787123418133233650507115472915815969345961069142250846702801532630659822926066562758818199942617523961878523835595267304471660791220566843721253318426231763001201654602071617590976559454334677224080608908172011025099331444976833278311983473233764362156408671675403599292478925019758681047490838567198600081145540574148341051404647412534029584453116743645080263164000769054253074477336083435651390036459063346326471150385200376755459994407137860807721404138166540819329254083122264856493263741505690328801580561380110609557385544532457023436155282827629357446743794770218743469796624252712691253764430329185919972147491446763891271486097099075463046642209733743153683752419295579859957917510804481524519490259606876357901647129820532463066830919136279852899527152613688234093295438381193427974911584897526123945465279760919447701389912542605866083192095148517702130982077740513198655607573072202675710555778287133432254188744184853927884572427032362428213743506266423839217369068916246930455798834380806870555936056844646191190985678252918394681762575218515142830551207793512070314117825100126918987922856129595949227843507228513329166957186366550872223361630245982996936515348295630809102256709054495115213719755350227736072015241769727123766021658437832344814746856869503827415697380469026169882060158079825667551943763229903388390526436035513545629999274336913077921998069698923642243140728276308566625489280721852476281615744204418006770502719819328473652971713456312576227970367536652199852910501907918827258029207805059852029487681308193343449588628808136473424670884377368795091471026334137592333300913267722308252431042434534379885823697853225369122383627749984404656228193847634438826485736673015955374095889870442029966402392183063144534990642046765274885893079928011719137637874614678778274995684337885412956754874080439262402520764629567964853242821070147170299091082560262560553644288616104628399808268625645611201275339941001685872193700996819394434189664265843381583999339709712658714542799683724645234914374431409335638445429985777252240809465443798619568713688083596959584722345081199308930529796017750991225341852566023631485034156475091175228271496351202192360257224547040172987818383653647301078897876751934819372207502270106265847735831865308262769147172102218121043087136472007081784122653768593133317955717514824130269759267716451992858671488502668520862469577273007742259558034048203593809805132131809435684029242786513248712937178881656869740621333055203399592687911368591363749151548080348195588898330688099595798377061882793233870475993744172731902419743542005463162921008964916775366620717042543471679061060603562939826563600036813689416641099608603502345549743102770675764654151660910638023053221239184796007952053180917431044374929854736845225692681276982948339751830360704938991322722542720962684575353449680398271943547143914302078507642854864349149219542006294209515240176950026583398533921159013323514960913998909186256003509788725154291593186350769229876583813911385574072082258595677984944056552965061369968970952310232338272832621399660590520195525180265652050136964622424875048276415087809988477273306005956708051446890162741078427624482038477951455759639211619767476321548961427934750230074255438095669144473952246032976499136375672511003852787760813052573632364763610054486523132876879619565325612793698522550814655667769612579157916364795975041762632227934629551249234916050543864862187763445600385262985194007309989575858897178571677981777099565484117879898651930001040956610238027500823249248993802427476374203831029646077100433954325154619270043474501018726619146208753677992092009867875131946648188047620219843582261726909929717408737568280817749576001553500807521802734629164906590722689630823530960715481335311977315485116030452421091976852539210123697862607807851694310368557287058792824600258457728451885161799259521574406972111019525123187357153247211248219630413892148257462903087967997800285260220386192895736010626508138321056236996241950783951740322943948006106671338763016274119399374065920636585256793860548995334120748580526810345926454687441440477045500666315546156225211280326936660361588816872579749818326435395264257171782847626386408052248776653331713016628888662873324646269535904588085886944572029152298974257986718246090901558989193122901074457946304683350599165497815235386737983179468945722761559044651402867326989028007864607984018658307541327030459411950150067768415385134285446029636296518523765146595859327133551868201977496810842863299810939462900214326092921479676163267658103832908304763884390031677650239608888730016387024268889896932764375387149302202453606951502320834098262984959111610240582370728169018355977443441494338720819074457916334612602004732217248140171025767642293070513567915974273820250458075093664313088768854335448717628661096194527117740112342675979980537879810069232052158035980297430866016880917282009713941655060877244034977244973154384194144111415530947203676817120698183109807082397283687432288415639148490488281674257082237413266319450828590754811965307942893003508033496351272068529799192436427531452616610536041420562346542374114844131499268813336609281297711827949373460638819512976192042139566831024455251512094185062851820831161228235742586835406071858420191647653939192207122588399316896485934695892126381684526295922263481352299349081177294224737711514005463338091015507826410560827237941184014596777289345731794691048758183238272619018282406379791864429126703414076816274810242873477704497160719736570991418910113412339070633087921596079746949942880465735427929885067984784409069445005784776665476783070647405195972338824824806103004883847530359833266765951209630520117431669254333802731510490929478282442232472309075602893909404728367413159693670057628351756513847717440581828670666045576034644882516029059428760994521616840772824271071613063782948893242504078168241435338343990040724094281966938367801043647747359262535519486849343607489065131147147133646648005272958551520990803013097140884784628398406186958327859690100441926333305225234208509135474800641201496666072514128076431801668650539826078577355662501441259000033002137570979989886272398449640165843414852337473196209772645862162919071740051214924513376010418693168348637649501945569755882085184927279966958251095887535664396953329832563632090309389259535940000820891002643412329309144165585688451588139981165162851527173694079655131235370293335153912610964394617757288792919956390710324035900500651800187965718351096908523433057978913266467243211250219068734776726453771076157667187654394082907696931062876201313120995405006999012834877031601799626364057070795261207246609542823614398203504170441782181143965349548325299969640441183688163102183601452231147873984627697786977358597758653884827094626610265043460853915167952272958405885285913446032627835015853934260720566328781894808121865912770738991573144844134419808040310109606103595498435669723415378991665297840254292080459581394598575441858452778943773585690595177851117829637483061901448794144047590261388186780264340112091748827203424933223995544487669460250603281895210112713890893896759684253342855778479836921350445440596126762647982157502703363194974028544695471404743084064138715786176118829444403551976255386718830078629051841158204436049354979579672035731528153196436235863952974215475240672588753172569698703724638825901642147432497524251787016195913538052984281324923001493351156407846158364159802007337862172294777191904622932661958863492275143886961799118556405952943909217053462305927848332403609077710352570915809315347883413845743042349937745620812978033594436501349284591595763341768339868040811584361507399687049313352283594827756678133326698713402578286530287510174166774184015063170276825515449498910286143628592230625401924857202965331099243289538253394001901612461287579267202859719463653585503190247944826831382156885997629377455310518141820024635579496955861150937598002829569292324978363043321510267363809956305666965447118374091511508615035610740307926681009309264651877470396207327418135071173318727891106226289922586294556556874498349823166401244986303688496077470371783850639349440803258660461008848391965415607451716235259476053712340513546930903129649352211787969627127581433097619795456170094057220060377922882853580934412406687207512471232716182336892410151399527325825016865297311232224561779671076778289952513042541130789023569870807010345076090764319975553837603761001177976729027672718579211741044932091648952309303542290975128301916812001881953865530066802481311904969718454277974486595225943872830116494613082652812791309185945700699639294255525653671198047653605720500420402143184126940515017090315952892349613156785127115228683713443253577916054873815994327409823664988580436206543705960545366567088667108845987512770168915472565864772524074688504799733716166355075042828252315684244556233043699514359809088090081108669027364554450476135838671728939425442635244983636185863348655800389162637427170749593180155841090788886895935180996050887842219081838244395361807925249966713123130765773732248871215563289728413921886927268625930479946847943651282198809169229382116781754329504427334609220276970315025552753685452092245923850546699514181565095442262055058182061505254649957784343489547602924995178733567847941403738433580941424807830713200302186962987628401487109915632008417266625974220227470857283871200587444430967102485702319022391379152027512573710818216869844460715680849809745534210946291362311504748816229748679191229804916541179795459466599640770722465019753113218658644995890613776362356322653983354111443871321662605937965815692245270652116448684674696438376039128345224478208037247434307089177990179999286475202141526213769984012326881952261170509834742072346139424949887640198768911022226850342783645763517398986817080062300095578773804747394932287120006487673729264176126634208412452789210882935765319961918959443624455638914315382321372044099204168722914332336008290901977741818256255554618732930134214953336360823897594632876793631846735153923141780710951769610233380778529495145487660656181597384472552366573911242572704493422411198770720590613218919330297480797313370413019630814968682596239917839575835412028096370813356166444094747020375646378905401811713630884013036743087808640980775235663096420651489357365481035449702675031049428049213776279559666202409992232907651545191396169560291898427299795482952021054352253313098892604923349496241317195132130756279138269357028708557408644523788761333407368578573135992445998047868799384285265027872785281500713933448812444846915423889985264367700439904176955926134349441121001205540813572255695576115922097356655050508352544873816845990224266862524943361793453344124632035498371890817582904785849937480936704626018906909064894211659661645812802212655601096674719370566759874321622488306988308525096357940340465006967830106556451954692463750512340854267435467378073085541734823704435347625347944692544203387814878732234264837197747222313293931697762872889606990513931832645212588453982869306509165970971356453512825260920551735095104961930435141308437789883752227575883739274705646824836076350911163169865121392047219431672120953554364305082185492104194404383841389474446801381781475171487300714008060724728154346890513787332062293646764389833000975615532050502335252348319826617546544688225553838173939556354199989679799593344277694580634282969336569039715777774227472431177322620968366444578444257532380996269874911948398158311220400319355243198742701665838356349536446894447157362511485810509933957739347260752660016689829317686051281406425551408199324465270332515088720787492669956029521153767241054693140764661726321539425938913770112321517936057155952571627540794087618471695105610411128516666009395611716468711497673481852961674218342055355556846070139357669748143175530163536026523679104530823612022782375625738839715869322011979063729982278124664095949379604211057494330206049019774335703679174543702907378962387128637834575379736256020942025866927411132206144654956435015887301267488540660664068323596870395533699882582726503997292931025507933577692510170469778845906665747624321240500841034467085579540012082111956562222660252115749393583661165376855654781304843579068626061456445914364228762598418051210197239253081516798725316681615589353876426705046037227263839312795095690762159100801548836192238992668215131386094618399444251244927783078422192857376388474480205388827431232811450881062884991025948206335752951461358678394525176382709219424374110487988646342715358523809051028786365733338452672732593708554266121405654431257921739641318524076433138030235447848306808345113243595190604915439879529992511359048409374041428454396251256600595212918270815081549050750847112077893136177027281084156897770242532208504216371333098982739438101786101418227898576403640483826877818190504394943525387783027889392212414173432335879511111884097785687910832429274216775814087063738362775048607247063709863203230576608964088188453149442387734754701737305609295908813049656819380614391200650644661617671924030233246983788437937624522660976360562252135653683111210543487288861735782980859118294947521634873674016042986212283872563399637005403765503507515398773648521064272837359138932581092355459994620887244785435746651132105747816128082454084550485030138993256092772812602783240693904257176986110979174329589165271470891252010327290510442369966617072819492333979852762276440112941185088942077347556089570431837644055732924242522154398043033352786677810651563820401371750390729155123533869194825136679200956774127761335973405451516697933101750594430976988273732962948184604038732571684967970753725314715219658014534937613092617006744199117505262052250800553627415183532193163127172017959299520806700909945946663823857433905264696928871404493601686089373555132752518263273008631140210808533365334452798222615112870986193811200791206682108867431097458985047594814080604731728810794770629692508710786267118343032160344945604966904565148732363307395884082625923855042128275901767154838657952591454955363221139702603343776631926480096799801361206233694341640874667325765812804387750411113224434916052585898848926572779701885293920858644112712982990068749901307231405145984360939000206275414227448532078199463419486206573531643563581097851830544479032096056851908911517475173437315456032227148342988853032593763617796614398626642544641355960564287339244965733629730492736280950813347472783762213820157212306097586065956875267713585107330363286490376626440139027600045053879214313659744801121022807557161208957537396115098725640316918597855382785482332620784865218216159989560512567251546333999304511580089830617503251618700782428499970192083333771952222409162072454093319086083751477352331692718739727197689297111687018164890775279593185904104878255324762499539473697248184716273825235058947474902300680582781596456346394665432798405366893587747807687850972702804105748377052980360479986389950474799674749694501297893278265647609993552979690762057673038893772361880554259791692057726443121031984361244800363777560532561532265843936444252672808713190564619362806724827586354916521778608165356965552133065819144172524348476233670237146356877401429826660408651672679646498273284913721957613674463075625747348435884657979539486237850713983360653195299364530537097104730708692332084714091747640926899120640190246052797102895262563711410464660931173068467992845285932681758589365117905322097679593779796449375672530192207995983408784721711825607603119120341940674631273187579999705279708201844118860196161614796496997117289140390270425113271864344468777906453010644865624212381247173165926933424534951338565145205758304809223377291603789389334131749076807443596688571721629399029072656178076966952800236431926054168347110409282110816645465078263719198056355305476738153740400904558138215312549226748246695054809130720202877157036117856245142608975484281022371802142317816790105553936507656927622989857083377378361324737909623151812809384921610971747759277470531218136872061078889652723960520188347007291552191288862512833470362132730390182104524763521277169957849034509092012124217957745641384024705299826843636292910559161025361553411185110136593802231484121367465689456029654238761014416137542493001991811751495369763990236588768464044499102925765357483967966434836074445429385080216503516662502207906726754834668969402927753589381227349258181905437883404761394426831168921853005840634082021380881949127744996661420221762489009409201976942519841531165949784374434343414105096764194602893118527140432686651103566919287618301192524761502739155483122263135400607255949532810085200334343116382652521449097799932090561701874023967148324621473309902620072671972474474157476406398296334085158756142121149247182636532043673684047898907365834181883411764686634366903344440657599575608880681190947549567878439700649819075306856440145923351359236715046319811280903374599475292623594032874584546963497082246222134261471166478016481764495725202159615631113126761206559221974663556263148981140118159994261108206565707433242699163836769071052778860903274755603353482242686146885457668141918769304568770811842430736035282041605343534220277690723075637488153322303386300494428924983238801494045808425467161489624270157301735816218880887259580794263467892352555223850005520258770812038257407964086704491689756892812709780877973749917697076197791418330103838056559367005303285998005042527693475790390420957558999553632478021496779787430502422247540822882991471337540394683723579918289505732252828043479759860091134014756493480288173882350023620461225843014172347393699868391248916516848135647072602654894978430442462900067089781673907147741495411726173412317863572129274184879622299607589822480738165392307911054235711159826079375855974162061261342631426290704735716029910713855525415736861907669566115230238957842560585828797058792771458869558647160832884735830577031051792860369535874535988658294882091392927316285860716860725108120788512549903309020692123779956758399972053079079630643356131405750112232671693006794545228308618930914300058646425397569234746501810254220526413528649667522623131243906851302986841583742834145267795738320137257749727838056807759252742777095390027968156089065730653731489592089876261769534757838036421132785132418007365052554677792287282642963688797596241485658056247709846427819168902033306702313414662658123799120462429235767541842500063030042504894945959151903801835759848779798236383674972947105404662067270718912236528933045602736091414177654998271327238845206774457264793705811661611004328966394726444754245908787299790044244557522876310730289587308005053549179559471450692970977369917932865592465563930108736906247108800164358541887298199708327301176938488259615558769780258577860205655374927017140219331168851282364437967535680686706104326785272859306073801952243812594237548249404681836765838351736920349190272245598337944337235853431332483178674096102900650505771679937846187453818173058581559423958733467878997183003910492654917198909620293014423790392907607161003456826069782803764563435601121323042507966671879515923050067486628880277451606633253017422544542757885691249266941652340625347568560545998884202134088028252934196391335121556610349958140098790894363063466443980657899685118541864148425873723895531770237793957538648301226937263949242122407192788915416597499157495916992297793272738704818226764858320732119815053523265107873832880078641356045449544412689335189349963819322545267961459929571956862140471181169782951642593214220562303368175220167428189683123621396858690212146044706860383348365873129994518436286928689100490992049936610046369484089318205775893881050834416331298356724362009397777728769727008965060468059999668248684851970314750246582725912484276636134569594291247840650899013754702471106991288782179451790555434465466312049402927688023253046929317313561508438070735128780208157575152611797190080440988065964840746109028766332095053649369573329308897104595465575744021742120813828267060540636885549893570159519634864152376251473227163615528065335448457470510343256867158556654770388754434023973693469353795328309961861318526263207434598981300303486738154259401256338164943070985424905136746261713327476753448902805241438427378966207846883675643642591289312555858663133955976601450722612679095000182610190660621700368901128662897125739356242411905440548786344979562669216166935303967574451011747804437730526386636948932726659419070814508805781482199489605693264373920652544580550724271075198253999968626886926507351334126112684502695472951872907532734111550700318767857738032147446376089554964182229727227278119329846086191475800967403852854506131426336448496675192476550053265970302646571881089473152396062934504171571730761856086635314622851253269427634298788837347411237435788735531290299775587279139785548613890228553661221908726794004259353038138952690227078069175027137134726295280812132920831471315640572167776197530454846376829801646510377425405797275386594877067309642778889400565983093931570997892664307594077813555450522792911686914778357870169793209672475291965876677459886442579021065257967333835859568331634740923464285093524681559776506199357486773839901262463191943598568098458653755418763028438551238726137071172475987592521899266772936575622734662914100168224859569184025303658171333324801353811682849917177717564712839130629472227296125596041951268239743843958879443922318088761466936190026219336282209015724350888272393373002177474293853016899054337121411961473705532529086545508235643032420040916887279642383088164397641714046531592701502020484614568418117752392918393473387945667076124294539934746462327562826371001534113697963771824035256900815421781892442878101426280650045876321218067844516976067925916738953020703848137434622248917640324250810183941159844091867908861323748533548272263121632675196758083732779114903560583103543322051791690123725344806282992566215313851163358167251559160030551772574916968427203931950843615955329988483001420715337417677459468674555766503281477181088558005820221958749298963888821963217488283324253290942546586869745568894937262631412924119414168372625999307498024978659398597412795661567010907213469759278109378018742100718274165107805464261634842979264615533540317665387037961193410605700952705165125753414930927470764558812863004184457454310729300155005789946492450363702896299945349034760358332133315733947064681188770391238790164824830960877350161999819115708618734557406788280654596175241415081437053970553591338673851023711803094302657006731937913277908056931639658968178599350517168347661494365921863038947193490601406887351714006150113723864838374333498491030171878853757503432713816661453362860227866124336084136644069481434931263756031190926319904379635228896695231036802169883694134944829824964818657416331212859203487695218164363690442652375136694491492069037679346832004053263596782448512628159840327982314908817647393463301655657677048354412381073033532377948990467957066792699085532448590610615061289102299189775307579119587581123711181380927331011384795713415873312100225757242136842976965956666709019073634438386565403927443138661603713349812448190282905584306948364996120261098835262141690966068092561831553391543387362068679334807730187870253776972226311057731191152472763060583591817092980185191784915366226501621224938480996545242680823838054764141904877183146300918855925512932290515422207333912636588978007964838369321023630839824752731861812578468297734173712630827613436049679118702426150333236162735077905176581540043664235077737067258373424566532949281695057414804634915667494122607218634424404789001406134512959583453110347454074534654407407540647205076548452738861766278359107158326755758331251201253576110636783626762381859659213717118299404574274866777136087942326311035040916464707840467510471175094956085829010475010729412539520692562725032034410058375378395859608746192675798110844848694033808651812185775121156614359770692651172416826062762802832911637151174791879871213586546307235477277346717971463575239415420477710567662951517031225263572746618208477243606929169349447232107687917563315195207636712366774753797940590383186618900412396846707958789112766525991787933354378411278277786124053596930181778450277189251888032594797228457431214583321661897069843615727148872644462058345408495725788237441977481635705876127461240235912343932009662768888392522073031858741824768907648835274534985408129725386418251614227932941152689311979836749404411857509237798577057966535219045721822743825497444263252009871221068069207872374115055452631750045549232308837813770868843166598795914845387427402687146480993707574688351359044136454300366456387183030736264887300195408804816033762041731659109536076794944100788826981994350769090138956883249473801743074948258437196031084244174820384867371784036780769131217332525826028291724268280523911039514337680778662941858527216623756870825141373644662272471153307025588582560021349022907994453524763755323980098543856345780021435371273461142124217789752813338883193206848520740747126122363673454769411661357190919839704939959377007233306001338796153755628854873532224835624159269614953858308560207308785919181481153047614118587466679508539371674869846636317304208127016182718812002515738357900029976383843264035845394779283719655678348374827243315516798840483484479441811459990574352801598324628461307142775208885611882732928399516588550271687013217471266068976540604116081855138635857362314330692931729033253636013137262102891658874697279363125961493189109477169374826891930618840663713831466893458526106489748695223622598435443666047050257855304727508313243773489478103881224590579573039277711802493819797918916527534876424581848130912529813806400167142018194690751820432442896646032391272703631449241232271019087484380173027403941305336860637759485557946529244032539380247810833138357170690616743864170527674742058391435601226273986769503770135510222841721088240361210506286354692780036466370884343438252474734885053878788629612343528687251089711213551999610510899626481936335386528766400209123156122239901476845876798684750101807268532880056352797217573680577737021938776812568848826248080465554187130538291733315948309552196188702560453763673793629434820948485124118338977260719505987799035381512810116480220573488176081264714799397279736555549105537947728284695951818004539422081091985549860127127510583811172398337948104395489629882283483718317481973601345185104235842319155692627096990148489238538303723244425972644708760173026974384303447973676785118449571901157947774734893830451946025456790663046245435527406821683948080503981786935791418208108039053485102761420956464751936373974103722331130663890035002999728852242924276941001698673756506628183721800105023406614131780790391582809297795791409813016314300595590081169756183720606284280701435071672789225720316472319327890134851691051804009679264632501385508666611129046913689066251415698203444630152030240085780697745266060133110799204331664064387372373938143443411692910279727174312287328264561631571875349539348763081972067490777043821929281065820033239180706731130187137785708167110978223603199568621891563938020870632903249999201000533713818939901750664897993357080235676259058348653131376181227814125267473201035152703543709064626692974933871476597715962776935979704178094017987604754462576133391596652585794735268092213254528071575203417638996370386129716291563037730928648630767571873866437945844272838586982616154378147403516481697031265283409656973410505594092661694014968925923354597501969297479117821781665606232263488456075039323082211394796443623078601043064677016532160515515934864894211927967074793914826505186506442582929764099765495167265005991872156099035909130682829386757506405338862626119887274800220636732579679305337943772193340504371281526333823949928727968527310869400318129841736705046109203213477362512841301983261971428998986879233150134986359374797484150580376367129856018816945331499650493877680791713909749451067824473633699408340176677858430550541500043635502785068781909727608693163416165946618201788421693745701342816966849656541005169422863062860857740179355272719494475054607084674314029859101722654918226631828136559356498600742137745555340317925888264600710693097415678993094654567234983288380194373544936153000973525863882377574366002669164282972456033238401156132528530160858450472830558888521124166354197353168804406536413981965806907011078234441338082339910330505381372388724224462172855102671280305548577753507650730480036036244788340207818430672987711925382288697898109143044021234842744793398170031655707739815370328174665037777912256677074423369444974551996454818068622828854146035629804549483678997962224877452730168610772531562403762900214058086309461240087040200465964681432101745103793063795769512481366549903818487486459364281855509406765761149356081664656547968788205248563111205267449187934175392001008583518881743419301133781202751785875052788407692794958450623362313667853124546987526343209653605090502562635412001684078135877388640851355354451661430188817636591887747933738011430465045247392233681022689531968282005618059840490028500277697606648445159894606466652711402434495171829348329215269364543680588860008885284601415214319307260734006947350514940295276232990224353614649179007250402596278768448248278934587926067086008996610003951366102422322049454287098249486924624730764812258021992213756732771203257839899032491419061388647081373136458858070205650017360574660500203140449378883171557283188544845682833479836495892026550073867115862904797747584341668585188972489380104363130089082481407670882875789560707396329442045584624738852901791995113932785898273957962602147343228641632807956158651819302950673864961749285289293552865040933211546129435295265795591356637370239985813630480603002083828933539901676778929079553632523311548592447628583648715772997512514110522976830177359937898585820157823774181943252793849013119571173382853056443686616000798030373411575478953538647417869366369466332890505869286247086508296995531993687189606973890569402559909424093024528212402947364231166593689590857252265982770538524272787810477724563140864359217653618607503184458910359860964528957438843979306337810979700571387875683861251823510206197316885960540373207806857024662873031256155595128819287376466864066394148854166090539930246826935935182728049090611545809926100547584193155272725403261015949295859373934054307322284861521532316046902512390317105168008287614464876566541555535679517529626105610539364872843235610174881217732761963464281061679425348228289684557729884796207672439938873437194698778612268304392754859416106984155969739509003084092208902323981642241154372789052346250331919315891867031937960236587691486704359836829429526756602263099168836276350253447718639929535915166501033287992574033816783271182802131143808445608624857359763071640062907550509220722141707938066988670282604053859595654645230366359163496841261512500884714598207404251256225901783498888143451561085873854805320925586384339359387757822098623644047084745472254877801628408836202743429981437447733775465984786220417181378450844403123869171630321363803690196029055164385222066959526126017900740916123571299313229261763557390362010545959647632767602192001269634566907033259056398644764321373669964332585142568236155613865072243156348067874672442381376698448733048848573479961095979613209573216408856109277061410189666962425487541456652883475566508511745288680727478862794035247908553757595672187377706187223640544340742717925410622729401747824440388576650065607207059239898532708158239221744941464507053583447082258554990930154189962192001937284872113437504764772019890137968875320963850990938653591155659330707091784029371938010438364408726446382383559022920236855089743835706538063980620045888913479746840590086257897750847105420510776198423901726150330028644524483102489267580981827647480965293632673723785255236357705929145645019246482652936239958755073796034038161300440162580763112016971340158073889417075937805351104069977259174574941286481968469163635869422760601210347424884410018610495357350315079391365425520687055062116968783778333453034354392680439295810719097454816794450993585693484191996977703054248636071000320918664327267079383421178176076768904585501754758608097892214250413494689077782121487417043942847739699388831715835554573188862901591786844940361181011153710527150825160771035665747315761348678485046857490097372582390017569161825532981183828692743075181480671228098354865247378717229680862794711093875155025932521392268743735472157045976618250448754264695439484972409692177204257951856249312328284287275264651521216740949755509279670834586310336891567093961792470521968575624306710822466943069502532086832697091399251175937341021278442065389025708143736991959323561948393794618206947038543837312429246747724620323523766843966497594569914910608261919776405946473256868077325350833346302336484624544990960187488977852300104048342144962774303690707102339368384901483490379789807552810293574361144980501760336859815015567520635868235557201040577583626840172410716062509976104875503869461112532266586792142578300151326317625518468403673254779846929394763986779695540555756769754096417150319939439296982371378879201447855445766816452642172766457240571572640043330519049938491324620399977277772762861755312973044267730435431711220635677203846069374874461563035414084400632299914817737710349998377615259720428301306036638916875701182024814648957678962790454200498279973431192999811680131047092789006894339687517977662161473001347835360666726767061523978077076493379582645715080462302147664171761516968981326152144378274374420565257654298104476570976673811616423491858415270553789021806823504923544916921049893994393817826175371395009888945421028367557764834173419381259064637524572382595765199160489639869423438794845022095475292361081967283102558137461523697573518506442231238054119962748411384916283021263848241472788965476132032033333792705904155210464074329826943381120837404551677459680061752525721150955570231465121733103850400651467542063177798847255069317149710101098012218026392446017225566574109581253747526631325846789385190658490818397488674882833038203760534512225439679965961048311191419916575755185377328900720646559148982670453072285409247514473370467557847671927168275660000265394564274883483484584327538244466064371480315039760702907956919061442705018494119049989358967590213005217506854111917728513323685037502812531038502038361527672442914847884500303152233451872031690365809424563656968144904609020394554153107776276829069731769365920137801696859774497379523635692766474967621069250520412570300601490273937958778856682242939280480175829552773364958339016643703047369462345742739733080236247136125929144201018600101005255407810655805922242533538577676449118736611546329619815874300907534652294139379292563914944812055109977550672590090735710837707297479756239851800060820735402177701555610085457039354589608463847241726891226147415890496835526771010359607083673468303189419177298223344892852581539880952605440956431155026241755738886008177671901719163815380402214301821345860875695669036775188780137318055982305653725789648808560616285967564134783622863060470744440884984098104585957460909156092681606692845032857096280237186491300975694332131999373630831866395765898594640480806934103293577761346207044434714547896120002967723546211562124645786312762932796351472920199062548435894472504757583289155009446811691756633619190479671198561947973665869955493920182938583434731460857809207482365154451951478974078842318048645031940806107224625398655494253524984179904514873478549578660513355230742074896364337814702746712354744116184958041198575820867287457966530158415229010751902067614596717124267358731167068255491844097137009029914453892306239680124512139510812536514491961704658305963941081932642146715780341473057105447423032948522430979096994734781180425703711107798814955836629070084558426338261995125146485264352025588634787628899802157183380522815008343920944111253715074678713880176004180990309529086082149115615728323771453838115298791599198146801869625147105175959735692422434923435274944410098777557173145844635875879088297132970237290677038271898080247588328894152156565449574456761619674765667904071470026866478852470402090340967564917011758905293228477144889750725664460507366197795584087188019121176165157366563832176690295592176184776112187208166350936271414941414040331236916492119837942830116744193564765704506437363509907683437798361863591572985164291304997586390018283160033758146776636768665360256538060300416683010543839482324113101406024357480091951467854194194964615953740782881660760646761963780531334548665158202258648201009142950017926110439986238108455553982826080292916226969372275844194160446175229827175998533863490673781697627830666095839142122855602946109702392770870990445383137305335457982226358292849228302844575573453744256772315645761822025916335984622644425062285246009087526803627163794444575938172650619342577496238354497544972487641847093401749893265152573216185356384912762971347932954670999021105241431968688847275166352878074630958737484396972963256057865531656340241593249080127281351400787313147591299658466552799661852860636707278700456686183328504455651222510649112211825798727763722916669547869251291333389724693928666373929441406015064554374303078586155929783413478249067996274288727532658356139846125345576393169360117426390352912412615020587249945763089256721141936407573646240451107856189335628889983349536566667655185721486218365688527079642420236122522419536682635074272041766652769780496549182601822549634578883621834997097647400680400652574844639248784409564300776561119443542745015785641864420740087202608032903821706876193197774016627074823725195912076783842979614480003775586213634683585163299432061267301051917252721153527210884246635426975500475257740349448328553806496616637329635909710932723682676739287559392754324752747564822873065908132402997644127019709461039346315627465964273962935022098298504681492024425291385853721690352550143178516379327146732173478118292211078825418673000993629197815055819782152399414623858922717279228539292680242558198815310440983698602515163723599371448630851950756695778403343476033663967673058946221305243242086868886717499068283214730383281552731759331707985234572049561157867629319040400420539726805979628718133441354013103933571694234610154012612411492990711976399528533329252777523784872127018486843410705904404972392252565394420191653253829995117029963692382571778445609134842933075408969186907813254072008163483404000342320917048281702187260566480015133798642691967214536460185343025008456312636794208947253471861945632719934149469918243701098410938001918973160578564643444810954768914774408776040350686318309930558639318137926005912540919525626182709833919618013070547456602745256722254051016777752787084113353735149579608018036602490741822791936872262339733427021893687058813181776429769460890918935426310343498018176271591476816152406725188521923554358792272383770761434396964530922669210882908768845473929174176277414940693725816913762172045071172416096320675739065766159327472969752370027967517505734591015758528743070194791670347234728065236657325050308844038701747676198356731984651582057757766831177972582333376887619932867243414390353194398559461363207924171393842752394398095700996052212492164990579131776284785602358273465359451136018343161844158893736120916237059201393913100219663320829910658186044449098310365549584828479294314170269222735426488750330601772479282300387121017390836188613587635608464272986969548118107449061843891613104376072913498880853915302878038152528607075633379705115668912332874094297835393879380184361990999256189262621406925100108144544520322489562052553135890946149365517176747581051279745104412142797409909417454852486981649440026160522248232803240327312411136571513312224830897138986639716229933146790864672309689901163324944536183113772575213708388166270885046605001768970288406186003138987499537392507761495216162233566537325530342668786734202878208687306041132086323417243507827100776840049341102815579689038796617879131484730879901198717863768202493437474360628264434059220035571707041534790223851721921521805795086807563785941090484442608550523944226673729437685532363882193536340448250274657004512664449564878614896130973082574264736896914438646893463581174460023124580914740921588790919783796531753832762248286945158466426105174984689900518639609940891147412188627816247822701723606134447877923839448726680192281780885171483180268152616331234198972456715007386336538462614814259895079760975510201207973552962195462328920748543669860060485458917753784250545515293223993500503218706709811601249226576433162848864904762337688839260534931189621028230502042873565693579381683897266772488507013445252099350398545689380361603163175078575194651863628844498279209270316996087283215720444262887903116639458891590816671041878131830737605481064840871623746799844690991116885577460409085030072754999150881800906437472287061183969431099215785719009778650380614446332099939664459646642044126805198812526741082972724442328808814172283365040533273097186149420602723396882410188912454530549434871050563905394966009449265947817215041861974894776971795975928235729389258469140369857940258216733624560319083884263137625814794278524264642762093124350388122949610826786558895849452908943914175347643745042638958425444293759467512177631141519888145112653589835384301015199265242227495969410831883405507872225881020502610381750642908784173124226079232051046980106573972252559920539433220953947413111309566970059880192488745080661892377278358535564728774082854406619686307412090174632643531698799729709418284451603774015971510687656730214076685400011321038341723173026680917513515814554111580203001865014041152739066082168528528419549656531337509099256224161519547740115970747924136084599469034424426053858991963641421177090439674276751792401485938494308330930443819789722079211357564411972156635819721652786233637412453978803297140268231081991173283772776570250146329815177806860779293101763881080727228883721111196056807777091012102298100636030191091970947877131492701574202261461807732733477178960125640374761612803839476347912869810036109229919125354143735415126818099374482230814375371523605588015198663333309103274890712398626195612627596193913079700864938945298648591417955587524434275580842203966146296320514883688303015939701254772145458943178368686798144656842400976022251142569353159995925069604126777737486902632132751145775557549514244301180785266510167213860014779482060583075189784911690739494461610265455505681711559931166938826117567920263430917258681102621767800018765325686796390233500873091152509243521137157674275812361662050776676624342806810718961263007477641933614404100952412464724851751976890579027536707608778737896256387055002071244148877549318625434982277863576508947379218180305588015600395783800512286972167570485709735346537407052776023108248743079673433840565448668104453456222885697406716994431174723320742153972865630581938225886556371115087514582600239077974904100385099992445425973752315582840982476603703620961334938655539121416112972295310900987949455907161814407647951120458058237427162299060642530078264869217968760834197885818990969112947323301428146572428618054775428897560668182651092112590805461417149390874120696174159501033796885923252622495384264357579889479335335368658246353480167876110721662882163932932440766866177715675037593205178105719791303366852268065590467457774511423925643499382686785465624309381420383692159396924519436681936036604128849087453907879036951028439734150831080202319947864393915080120866731632735027571701970517239598923186991432386157586776551756655044920525232890375280826777180089213919799782738692532688413683349455352703776017228029727954940295390580883973429179361796875644273772589273594904323829642571782176843490514613718874249196477844886285423932599505217556753436019639802111717455979899330215382145451920122798702778959093034293853795212256489396650868718311520114657552867971262154992784785802905610359241722085527309060053694882734241079044917715994610194210473016000136468418441155567203951190710539780315361764065321038958097596920366298606733256797221477044839182233373238320462648352257128356933737075707812601586567022103027777718490124947069450607934486388925368880176618291800123531880363629317404262659418528261414870645713414394790084124275103009220966864725725870038710918886523230972883854738237760945269546642590453401051873189290176906830788737690798379286075083873882284235667112976053506666374253698782877818407603572058935825278167810321521245494667676979033138317235608642412817964044846273151847723320304058676914086489860149106734833809430026897096909267687438170072421822421598111211935588428592581732378092288177434209261045240970621917147739424336786934243432868620633344791730105109603681923420137208811158950362075073172361518873106864361490371114885227615022753884943050070854463890972025377719998546278744293829366446295981542052585102549931861070215137768932945230053813334145662053732828241955742069243853769049467036720909171961728001439105619079191404190873784921581985655217551562345906280825002965275344058092139446179062677301280033491221385465764872099620817996998981052620708412491916080801205558961409861858681022149881311075076259604386350163299324684176860842103337366134908948295077630559477086406431958869535008643130115825391846688670863687993458165459964372718248518215939504627293839592251514134853978700127959739923894565070094083301943299434865908749762537241179326654532596199603497934925019106462801435942321372033259499336671569829046413524922512558562854812744208495040224959107805945095058961800698031557343891046806678417536616908418724340606078232131760411441182268973763575417110888133397672933309518945744031451653567260146244701134223011467171744164030553522246936990376355213762730482391254418969461431343836048018519598132408354412998317794485799977335338873142850793200381867399124568443193816380379710264304882274873589883576486565179372882960091422983795133799008630255298245698427522755939193398930275143699215423949830097889319749731591001702463772843740156931676849145154376622714710150903797432290840795734157396023101239080302639798421704441349031990582421073883406473427539032564206938268219675031195944623511053603111635522731152488879150843237949644306812655903059263873070784615863367959659694346888615344340558992763774082508209703357147707254142072493675439360704509967881203773533485630573612280483258182640296154337383275551546454480533766302443248254798754184856386018032070328050479812525010174879185304547377504508998033853363822907502453586225384129240324760270048659309295933723866874187833568745416612149181791746526732243423192801867516328781844858943676188156932633235730206609428130702027206247346006190784758883384875518440519085563173730031348963291561844686020835559277936934389343619909686464010452893147281200051819842833490407362121660115328519431817786467254898535020745690043854534332031857013395154411496735179339475945063253083994320191148866593061197757469744960079507654400270784399227499166134124179202126711339943345398198690340874652311775851945970439691797785799681084710434742845854153168677870101049699895794661623417428769417978712553933635629601394018797504848327465874025942548179402617373641124459313505601800895633090007560336261885763551922563137428562810907522347615739882837443476955037966534402126756987493148713522730852855858583453823218731906859118152884310559960621818716745883115907574144516907788351096932261396529581295713169009993953967549201838475738279412542330725937678522724092518575216959128213037079016791913911145044605359883653972222263497562707344620953516813452092814845968907785731484563984291673844423245153669658260899671919022295500460620101980112533936086629857797257650152629514127151885450828115567744180178477800334873567215083937550526277234213069210669423868472302909416163376061699265139775825480413595896594913783603336283641294442798227527745474175203004201354508349295184180326496745570960729621782134295606450277442617553343490768569276998570141653378551807822098444626471155102261434525656663478692895795492251969001014357554627807240448839137055798268488760625602714972117013006200201242111957950079988379473518055069628461311541104902642225503715919270680188236526890342659429488370935197452019113960452514830584909402562385480888367555222452267570348704714939065577344771587498209320108869035993252124392969922385328054914617098294102717433116671713433810904058476506687154836123317931834027158953084670025557569205177795378798310942312902593393261392934731400458275864245668043645966291048278949026383974922636111759682177602577262370395241729685072483086580821586894304659187031802405709265227194518433361656397920680458719711446252407675066483273979072673176059701207923023266372065154402481888447768281342043617688479607147315407462139891483416371343682049008786167337711524004327156925806406663445110383984531283047256363732883027662004494391959616447285113321822776655747071991338310776166107010480477036711284085275278326150884498523550799948059013909069191739608152469572736516747457193359609531922098056563724824849081606894692479917361344533741768430263784917871437290391640668827702430169123281670825578481231092495012713014501658506117833121749060263670285664761272353128713671181800870721191645950550125268234533388069604838700177849889117910740215773009934072695369839563722384767187600188806370234240601256940903039629339588268527815477998970682835576683957340401721362192055225644150551310559410457497834859106063198704857997118100898437082678217805366956804865910426158373109570396363111468543403963528696595651368613504360060093543974774395153183667560319309802957540959844820157760196245763286558969233583233959919408738494238660912913542542552074221029745724751130148303845528194426597702368872112679234367870143370734580061662174907888102568337445533700715800272582547844485704864996371801764517455706196482275547340132000934512715250639216264308802137444729333966078561776940492733282762443514843956199821432366255798596401149450486725672756691654804434298728423831375395757989975432267091075736486730580805731096947341727704650356988005950778619222561543937839784144214921424548163636038880844051250304344742845705961219591308183221729167510026079980090836543377231592422182894668055378662400339907880743397402200709206587632399594028988036241450436197879269807183288082643266039107402691325234537573326695870889346885069258616239631548999391203388378818150326508397775268200006879700730892259538793653572591694358824464872836920647553551195991018365234216447944228871731652263853574580612302612840388263931763192371864774542906921970328149681420128054624322808424467113474769205710735873319470043294488180858508939500721650899541324983697462499892449085933787530722641216804303274016676166044615253473374094459882932264674611406819904589175597470537820486250137510441085344862367684297509805455775946272400207095715724785320996402525776063755503200768016930412971085480849759295450727389678034661570775669421678351844759798887642013875990692824702944797221529984173689245121497739154691778414581571078848997589703651031658213284271233390319453790055421026522163603215701135791293760899785066517739003964754366686304225455170411764709113998095081928289241034111678443324744973239745868287641748990337134541807057891004456584297753022473302177888403963497931969124575892891021328737523623015019211072353094275611392912616536702107015191385277151201136977109956391441564426918135520002705659635939536382839409392470022342470763560585354112296283286531022643276260251936407912932928966453731136588123058056624862521278885307027630754065544081097354552463826901746704446388801536397239557340337239584921210919605588243829474915207413219716614448534152429957471389649434966732466294936097577702967215212747322404682654408019257577853976712113666368179132479112728161676971167848049845852567051364921280787877205138885506198956408673276634624850689714196459890368909555019979161469147662043418380363990055424041953488796552606070935149029895741102162662667158895974424646360337881724561235892482155809513529167573887342649411632342231744036120903495097408015242093900315361430834513726531181758779724973260290727965166722694742933847391403767288717437646857944200585113446291637635564277619948562771114594064103568479019887125973182658439912810336291889699796528770863538920993251670778228261319507836015166452911316089472466366589678017472742130138903958925765005657291388568514888858139002947003147662982597943806948787146734243175738858418992048195795986033462058766796997753124261665602655748655951473048735727701427578720140680507486698492992239093257823014830270866304282799515437593188717129680208467521118341755860980771572329631173976131617833032385562495542047811652773021274048723036093456333000951291267575119417822502488844352702719632721185004261045612364558687459161861349533963528694984892686130250835178623200826927590314781598366402305440111725868575142497188648157673569914983713642580388010744943511684153629636703049455363821289770582356269406225671129484495009830466727438211411645852539563273394995085938656042852122793466302041635040539114823141941310455879880287724832444334418012453000073399444730381852001689582590277717198513063285359102088304859394243916744791776129857469476668229404364378037943376306012134764904677650961146684762918870477771443498278941334450252091881298197102129129230193958292826122265674457509424404434678421226227234520755801196706287632322757021891763200287800625602228497301233545757545750718138881674076056847469606999741023183981697253788748297361186729280497538815855607408738748954394289515548391429839728443444624751216687654905554409096584162378872676692354483212396748827768345481737384559286412590989305869182431121596484604214810792139217035873591011542119120539674095208311911300694344289791577117556590476369709841224966071152405696309405149268171420040254572603763155415795770197727622740003698385610657115433796669034175298436350851502442424560289423064586978053063037701153716832580316128030399186138046139591115850332725664530281845140148126288406227920926371245387392097148002124961306463744881778986989279229227590203010994247752193021954883041344101273688007566898297376244067129869588149836849345855279200026482473220506902731051290895378227275779485424799517642377164738667469988068992085642561441143175576317809451177674451155293640196462346794150580983808503996180008265068537191809701998175381896441371432939734115984019023862037446637756507916523139176824079858510660121846486052493174718147836654796164048199156941661452464462700396846543195936303639101140882057159650027959635179212427172952761565495349940739563286946124059889112108094903127238034841185588274614791493667076225352223660810319650745014667231744787409532379682117364182567541442501180716222817894745809584164716229515074464909707135545967925557976724268583873300678244622522376451862398578501805143302338474596395184852297701100563266559447550369295911770449530809756386347986650460820143349586099499572013771858363472688944442094380708560677459833809932656911449178929836592089372414897660393787621330524404291121945690542166900694412173942668574006139778981788022651350737163570437007540105629587768217204713599266441234342190939900405685845239161493940500166329107270743011494203534390549727653216777786948771891573906080847846399033013971049153632255931242011397477507385602486873517502113598042794253819281098730064445911902202229489094151076491569040794887628964943707013709588552097197374643328488453424509084626065881790946822030372780831517530726649961512961862140560519701173029392463860920767741719964799013530942786557091143069966965070383063419021735154350443157628855640356434917754871203041599237858082804757297678383134492643122506144453719847183553824459122775682783936866560784620035241801957970483765260462595312282036560748474863075367475893971762084109566533508388313116305445398260785327491056448470667221658996237390662575482019981345778771358341211071716045378823336448650608598433482641861579307240208175961433846858601245976364316741848122558966756507345609050631892882612941026786272915371582425433415738071679831625388028357999195782553510840515771538798863358590075874169605232133678828556996612721060039021300236974561735198469667814338768661728978999447737958642716035299223239497210167276712456728164321925079647079744933454922047291051888056554963555199923867234345325449212510314283496014437858267056098593378592161454269118819139409648809509282211936676956297454536867210169602588090996885806683303414901775182693390528437499635464849236141833739846364764290489877697662206961245845368930497702869051408531634084758472731132508115827227086230300521254808975111539267780694636551952736861274211035570338036946770268486243351512212859283963772980051821739143010507362398267088116233004146968672190888521453871743136083140335247167336674155957003098141945480822566391385991472101724766728214582346788182429435738710708468439380511350419895723937412374834196562401994520762978991727774165395951154191063071611644536523781544193964385017034671371270259955429172832155712382436399784059489985153954130966065321452640928413010545082061663111200389913195412287377865796052898378344764008690776345048938226259161502257446704529425796867329274518653943789972969261883148635603584301277497060950816116012288980754599485524185096458865540542912166857716689094573478205821977563858171487794414211661447135387799999106334752756981160275278352458518110301034101505444800283113481593533405978971694269215087479314152872233767854329521457323092508915714823618456698202744810710141713004547735014794313209691796713541675241768023201033800560283880194772721739337523951351109342542927535396132113311619291768526372787597307048303411811643962304710830204097637204433055144035217368086751779529777736448557727601861859037492196421557812452388269181068638968868756362297692307931359787419088869623805939711369553659322375110868517426218654806406515891244412369293624453916609861800921271601766056758004132724187695074321767541803550798983566145716016632905114316845024924199694039186421807939654638141509306404674182229155955241320429178677219290081344777125135138814787985583137047361218636917920144165872110642307498717992070859237735675379252058238582280030605345387347710538804224744719117345117829256308373049752864520023087136213271828027070626021133770362274290686930168233799311938311855753995084214340705668059464464653375090325375508586896914024884046766051793929917000473606555471408890813068393001025428175217096811264811790858299484025690248224821155408395656019039326220665096862968807203408415242655211546101011832993395813726599436338827510321114778242110028302097503854361122685505988269515832466347593992403285171359725415034404943158750066894080609936191267539388093442003625730222513690168562588554287546846319709501081636446020020115805752886438435593801071455073258553211697191207433900891287119980148064851755410349062067352724617451984671753387012775817867493007224422850799990826666257928952052254677263941253750263198596698765318354673904713161518617839663396111249138245666926964564202633985828313436298729869271511302037539832286404889880586907017180347174116124369567370959038516310048611129689542739667537996492492513860849476937754045000428957067325933359270659631700571648266156719339163248678818751884911314288765182859877924737117779469944769684954577945875228232667809774788396590584092813303833590581011555934653629927496355222148244938324919240510414915136434042550864657374901406801689610081158180039578001530708539308440115874087980495120529547899965998414295424311618932446145722167643339746442225240645625823596992388432402075740139304179443322491760397781979376421445194345055802071763967221456197245512599312645116639998013056343440704535516686861045218932618821666857720413899813836840063368670096028174634186662643378852170600777804163367012837806200610897183481470422416991129253868831151787951134462899843009028977269022042063031015915424360988365077977427835386516791518601999562534738814655977230475284430458593369028008584709080300691581304728118681741478371182284802838041020820163313406164958245379901153548401719874211526070088479454578345953351190119501917696731673333453232231590734488151171061334877095119733296634348794463154062454903789784912739898499947532406724040795658584543428411301401869477174733901258305218715589153195608922770221422364443218032948880257134587733324586780956372549732623406177566030844028446661939964176917398434802809498504296408011152455436118768611778992070920295340304515687756468608687430598119211810755399034093703120410642159746963390755716226440569829793674660185761832612187711669188952976498022109327286038295258083026876838978938211637894847120934922307788079881707734030310525389151384264597814353809957963446078471428512387513434211594011833491670500010266829768962801842260821728912565973127877410223588327712440996336132932121044552958172771528905825037372204082554493316890475258248794941679892243518996525973274974250447064473474696156505998941490884457670097278888942010690413423921903402451303820687297703331114323779108468491351852877901573524615541596759435096317890636939347023340739552331344597089863016722485444090129499321444574952236354419305627776088710352200168006781066976870248707947295362715470300967454149793075368502188213328692301217208399969147572586102560508283758999710261071313350524043569474339709255205596677573255391175421536333705597169354615039059312471642754931809389400432565959627764618072412021298054808364746250817580057129049712619794413027604566210041351503757901031143876024458782105183942473341326600687195010294282164495877489354041126439239186422266940927733613865174001885854367556346939705289160494553149366858649504117301222889250873831330414358434065228431839718054411165534189286476187545874015816987261826366504855445011071688557835823928233570567678395637621939236954789641181580502753082997661260137053507409722097580605715840628547548756069064620113093534531782093083631990201885831365242549776465171567046674345295709351330988058592066612500134260288974289673559012996088853737351639076346105588798502202521575687587093619170689922811799271821466944016662629100383578469811411247885530086909493967021803643007385905146021230312339783828218355635281071417529724483928832747164589600149617055380649166480670119931326753510749292337732887297100999383679630143188406754931133143463469108356147371248361106618141819291362609878932200204618684123246152341736727815667716771773755712610381816281683165739986991192598051556805005026753483788717335084904151975150912165467086864437283050337118576268466821050815200216381336868767442958110916993905270553296837838609542436190973146710425601599262723216784978686236589021245801646326741713515955178252805342138710562164722948449106486869360778852968101974755676059947297957667415142584912894700727971652049025080331888185253206550282380444256524810019739087808587740727424257525877579331642021766763675041343687458539035337679357882910635925506671856611801265710134352766296927697667758910988224274021189716108032990134428390688760115127164275775217762695910468864941798421235348474561576634456511243786494335444992999665267910154455607605993909278932672619084712534813798077576740605523562784875048629319980959636939336647081209318184922500682786972463394585714527053980802930143664127802574562135609727452348137342601571005856659093412739174967893357339600343303694461260071030716193754045103408499885118905243593353431488727598154084791267333675246183456280313420259255320607506845795726294618456879420129755045652252159696269126570940260897298506073936228469160546241009851718223603608871116564531483892749222812649266071729280363870834781212958346732219718412384788279487146249326806406334541607803684348532233392951723676331894888268006706959531115649552200688181122105014295116151047492850506386445144138073727232889398423600365926518370756635282841226068590928644082991776401365127998324286445831747113013047177766865957144344564823961809986241295962518747885145660801505812136531986547576356773328181048028386256956987593158637659620798807958604103269953363125594092196854918847328650638178460627880496345775984123097865476835765471764858198142586566654731204541643859779646199084514691611046939718846358102351641792390260544212268945960890741678271762026492160129132361783534923998969454711445643346308593734497731132719623761819678058117235861867487825487407426115451417147991309896748441223941846066890010277373885230058857045721232149728586617961483759929497414417146763461149126520540584483255675606684635542849707073373656875524519575095366420039172741889152872745290000591686213075479764283880539931125066560761270014096807819788645037533248865635476545197917347586854271574410218124946764838568229982205041244079749120389528426050101108516834385230003727202255327667729140782470997182914503748201770621067992240069067729662237044744892059484325647236216795463149706616283471789324218082347911352206284456262948192596250996049391109473749184465740108505249604126301355867563736641031058968864778323707105195212111378285039930454631407717892690750129919462588146904546834365147776679778437974087890911769329762634152775391698120986318736222979201911881825452229762605172776502889622207414038676267095899022893160715941999190531514429775990049368150667043473283743509768934580658918670787978606342113529339708908881387444897679284357762048907218891169948770190868985871616065949480110998399214820870174056934620166680047964233192740421975452049203210198787192796813089925866467326724717517069560542650465303882590623265526376796300088408001945933355330680224538042122310293057657092390558859471231207157650284302232217869318248117494212842951719133433104658465432075389593834486218344272506613823515499330300119041555097398316767324921344870299708779687622505674120122159111018125240492586113715776713088848636599253473156807360726063230713771827242306844664943157705006863269881846786427856999904594724122315003772397770663916325020233767578757375849900132622403225334905527558511801051112838894589937798316307587929956876441493107192351222502380230657519861851541756444970071327009438678939101187512487102546068231045820536388862503476656334713625400630813523466375872544636065885355604118061909769775805693576369565528060231698056145980845323722736433510704155368783472788893891698619972303953254277936957488301529397384843732905150014465552333452343949574398760405712806847000670088070771768033071509829134921702242894878021303587749368912541466811536473751256728452277286180582691046612845020070385708197931975588344069693303893227748866377051196238663361796085091402633634462433194785947363374913222800541570903404314590279064616744653016650114934452253915390425446666354876716850918109195502060729593576251932181340994286792256873023698245468802773108649617419521774405711525808250113133702279979188186533018103950061426946598738822390073346187709540565872171805358085778526235766022505344968189302098713204719457437334926070424448620476578543040915951033066365730671340762820900202278980932593748089309579894710852342345761771358453109636292514481366158983628947807326930973858474828005486775138699989158320851360214762790628255828114390018934053204813128945081392677629960854479442988729168160853272808234684259872015845194285544399903867365740884018983589568749644390249975633205234115275168984231969289894109612522824487543949749513202826851358370896633945452846141317033012179206746882013298017075431978058396925994610916572138550412089748068474103632997949077087668009840120911401504025160167549464983314002174833432148778023724520304037265806771449308779633297072136967514439216588095608898553935805437631687003635715963208264452793885388519290425664617739187683138872143057875957987726435578680412329369793322951181911576523002692504817873453341519621787212013965946310046105935938023931244527363898436393155971884187020729245306584403173833399510308790634313890856366957476124282476286899656195477679042213522719587235763858070916912890194549819948165602572898851373008363746402893422368646486711340195274468919054045127594726316390762394361124214685630607455366449176658664172926337119389844294021902080900283366332179939463645678758167066668398817769889179346607260392994141205632415522312679219848198856851975781758425767998609100138090685721446917896839170544653991931653133178953091430163981717034114220768645143001341229764452801664254838286041514502428267561179642719819303069893508358284024667017800397253322138743957441110876367807113644678818923116044035341595155724234737018472030888545838077888098479486884562581606230865651800442213355024545685519153472726012699812287448117238879882762190339920671920973724432327502808987708095041543420093900372953913223412043819092132255554806080193971645474299772845524760366915153548458528554703826650629322556438627874165406332935813798797634021764629757625810561970661442970842209799304752823840363894014460312631240573008542660546992305533941734679365500279757462678213148872391249140529693479369551421958337184606477381683483198859566216776230998019289645390990699299114302346755112825739902435146551410224727475902750763981508287603752923571155346921127908607021238321704982924540491582413681364075855882985016378410292529195893779153508300326942479770800178054078373834717451797079479397456966125916708975844434688615739136412284559409780782096088574553571967217537823607678213401420624310414874365039071177668247418709661066755333182555241444873411117931521080015015354268597053734172292997078701326048575848752050021815750214656059170336907988394480242222113291453074972842560353654485399919325839491031121244263798456828637378254439540008036870817617621005513318360281619080241357130741643392419624759319765981240659094155452060129124538141493633158267458357177487132255315787657685389987077840028068499985812339961735414537936545289478324959890739781563333080426859383273640712484133078062866954534253387679449833338202997966971200028469057731088700643327320730552988901437743635103756730691474876420710811698687512547860732830133713209180525464969942231569490004097418093507009081370801176031005503380041734592236351325850533935780713485075809481333379096783490452093359585804509127957720646228985413450410825731713704643210359753050685351844874134813539901588727620109032682111433362300762319630949844009797289751045944951198187685560141877884771957859906580679353180881247956426865540626602409835570779553343551890516359009945329453383412664113903898486085978333135773623986439605207169169662863999286941151698469510032512811612363181155746493889149313901801713777066601234052353470391647894159896709298732359027557485317995740898270403963275505924013081039590968625603879001278929367850973760711122102822571288092635390795826227714682449428358479205453184931160933339590582202658770470055380304489754138854757407472414556980974341348148929687693795211650627797421713827476585414448582882919781051681863479157663908552677124366269410039057607502904511193054853012161823822946524803784112538615818110213097316470355500304823837763577137639880414748224622507711586203515673655369276757592263007862655323062395634057660069144432226292176507183885892192487817541513088084772250546294598777832660665200024060538954101299732948161977577503989604673855948433086537445730589974607146778509961575132635177961069990325160486858674445127808575817602783182721325905648056346123153907259283926993849723125138375532932495032308852661179785830374670540000694636810484547619633797782925377703764330794016520838009073260384598457033220250951682142680724168374435496340410328349660558061032881160853527920326834246522239156477066431287115270464140483947152023212861077341559290537043988065540078077367263100265120249515978421792427301871524766350475322634869710177320926243918255895551144413045929793107737814516890157504063066523504675941493521667845812454359133049375112046998809826975437826914122367877524290061427903048732054641022561754663554751523896629132134604175552142427253772376561935517891016456941671981820093706135435323553682345421613752484557486294664272861626908613313802439956026303496831766207753639708419650940886834887661776184764668574739053107354970935171810521133016836667872134359669295650956122231356457546597554918286461646844248558922422350078589083207765514874996200416964340224640314063739734548101775614840992856358756439741099421330081556204777857484636897431301838957694228866536499630719693280767297649006461674101236777095691445896750069808133314200695927909813199735792606749768533557644935533067423627556529317416644296885067026007381064846695432414063278161773418834808657598282309823119184657630161208292137000300717626413622214491273516461210630290278160524274645088978681092996763518554185877276948268964829889937719484973164674092003950598348082719391457956090405139328746898767518766168534329646876952287150457088201408158252100477811964006073070880046055193948132371915784855101597347431740489051588601614306105324928226890163918376572236106599863757646554217286405104784200858541806693253541977392346280404224723345850749936807285517347002247509132924413917633185697299759779512489013504059719663301441803999926181558901026358371401421085250553701375760525019429807327571094857841746544123128513675763091904926930227789140107625097211779776370522661793877340036816494410721821752780576892260260018554188754071541758410967929447811541717288520548805573779998958143514130200330713393602102679432549873441980767362161168457394546446864022846880689729556274756114052136965786303531662208115583593919600962008196551081007709136326475111471509353883253666175207699290546395743753932015118191734500827800044370945271030994951223717433867452782151451400905562218227121188157402099934168512772447408298518708794526980919628124774294343371124609874352983601227120215267211800634467554209523910262728445815703478303336171769528697627922109129310323126476948361931290467019746178449670419526749853926099560472662865484396823268184413347714635855738038530018725652192272131451700225737442797333843841407337490489163075124397949616639975620073393892031441397397669983437651826862261372645068255464580248647379436123215831454709702629676575345326119741107678946519512864566589184901278397808366031749005170688718040931484691909952650597687217068844752661398640494193235876719825719901653746715336300895611727680068373577338531246917849983634481502416118353798572421302960282310843522087796133423705332022219781102962062061419684365524247119862422068300042179732698455760486668892964193224387325281092825875439967152951191646241720233049613596893480683387096660605677062704753620646812347126793219371341759454514383590305560046526137853422666904393732417601402311539867726688259266696680821943298950070942438912654350242629232638638809218126484700582398484998917578563902485897603771650675862917984446080497903982654583493183093176854432540775564452222218013719645697948401265703062767824556517730638585685353714644233232214205547392866548397524552666565027530821587291901718426801808281914697286869469217681650428424553319550245429403821917369478901171984359138757812409781659522884724824651016663189943714052704710478281864726712578513445980560326438465292970197730938617611781640039956155157860121590473300020992448085254096660675320468341952016073163211264380167380769348971109964702599510276037669801530917256372764772569918491298178784520320630094845214905642049600452147987771398821691464621905619579621796033956238996761714286487788308908880886566039412599615736511018516219938842467060272726160121086670022093853864296438224086398265207679668094889216426185163254254739349109549087459930535905246779826958822928243123051475805013886410865264767640101199874239453801184972870541059183472524893168236229249862318677307303286265940574561319131638017621752133603404755910867767575742852406802874170773058803481724538567970068846217359573463596824222454853500838869504685997969070818899578027398134372592210263403127846790177268208591764018320135278777075714084095497601784864802151158097116189667994828150692685261729467584214206259512752749803203486914541583425473552530884509486237399281663710031974973414066443689360717858734750361089295707007754907889798920600160902179561590315275867358526177842761318051532729504465913451659109828712082340532450628696829126031896814424944984523891366402126496559908044776023763338272019775316300355181964961476698156016302735532554044707637298568339197462126826567497993065934827242950331368648185388554104935292297376878224656933514278542759341830357556698719521730790575706876059789417583456607496802292698819733414541276293023817199736742896535824439686805010671503582279972072094512928773586715884692380787370944497842641055696372333653389282624429740952247316574277286549217448157589942702119076999048484211664167960523270523054812928892650329235270369684316535538431014345428221888809410990357354796498278948036685841097013531896468239180249364785274382969378980700924949456288585629159060280774610398129158280375565443108159412773703118217783262924903885507571157832360844771392985387345261911357456016034453760532959467060587539021576358100822779547480670100571855420961885984536172651449140645695530306267471339813581386878973856781258139309349363322356654995607309584511776002593035496966876763889508100134070730970917824194000815333611760412824185020122671407981306448235123672326832067638247864340611261510771742477942102623255674746612687585288492441240005078225429927455802110944922189584419192314724000752795798621935809756507496576297755264693818457525034152658752979583366129424452747705263185355525007478419680799734331574533188975303767890949587246441262349692097961397618228122359419761577732010264136962527544330019188159229627365918982829971021831458492557813534486562806577015404476530096112491668244109869313969460013824803690422321507597419491163632040824998680105305521156734250842869717955564227897903533496246249122040904024803369579390604949219883253807061997823694972454829101186516231838564453239689263712620907512250784957522210224182742905046815465858489869017261845652164071121311001571933219988414229348464108701471213676999602848806573424068996831649769717101421408941022562670641087003609969496301349223899111446860015614461146523410531563102391888875971134961874135787031512759652027474611070928731227794877926089548741766236041763280937458428703695954018397397224062367917434087090174616434018853422942270089835969647440205782294652940079827057805383996406066493367092685793164741584288133006001240543563465752610798113139818926342226565629287974395812209932793103233925280309091590554331264034101621044912430429175203840825264839679514630898998181293748663869835336408535568060868568881295528134915514173355318870530879959244461966033725508005508760773437276502132263714672774674704706781112312788622636358892718547277047141572491532216497660697983652236021059848234329887181213361058446124831506054234556379925453573564647482053303091725670155678430510738011898807836775793281830851719927001667218580273899092939372567914147257887986588666796664402724038739927293445204520419130058060997335685455868536734615037904989593949655748360720095436928148024566711552460842910890860299286249762731460897370333922176239671739244780394780940781965419109259766431627223005210854922979378853485240430910752185008671443411372572874482289439298038611756352168606144263059828121964078184788583158522275134970714691238876534920278153368015641301233472898020876052092128045253549982873643084804275369369953368795770234217973435387916691162228742190159609954685640328938315139666251289256260146770277527629216246328612230652312164629258513016838830519854872524699129623612927345240771756063881567229340142264679913670924825360734489463753296908141754253859640435686527084997680572221746792946269710889287261514266457149948931556600312887004794175113989718065551038018622154671011945104549497461753827015431809096842078146613062055856120153868889271926908079359965050762030029018858235519046546210118618899526856875189717278064023731310215761114064359974362344627860103023812872744401074231656362222444805584858037118649745650166316135516640926152923621060116005010547165500511104343433108647662511325895500180358311966079883586715252542081271086149183212460924147208962039109890300099637717999933109087334279839533336282705185500803584211714823606111920509365904312594219693836112999934807252303607561450913997003812674905334856634055707260777547864909627644024554079338865532316454781217331946192649650385246514498723524033425474340703364181133556361986974065942464271042863662711040845299543406035005463804895129511114063741208548961682261639790397175806383261433294336821274045647436559787962606697629422157087874491274129532488115262531034019295006114156655096488284253915122082800771375589813966216757551342057356621349863886346738973382690994550941788338120377400983779617095031023254345875965348653749368342462896746142499595632655613178346937309729293558284209843164946165428506985364653900535576460875262912630615023217944164320979858873817275312670056966112980167811553444569560513065637376572106072057232524904191081850073079993240096151123835396874332204792217711468644689685388916104665170603685333053901719786260937493508268914444654338167395485333065048505799234366867851056479610062260856919784238760721765747049708524806179994915397982042574986305986657041859271326012423836393006564456881115639385411648182877810391539321023123785619485280232445275222404463675046016886313980761621293297128145886002656090965221539410076329532465395908789903201805801860589447418479617830246918250571883356600814723993041826177308410223879211008804338011439846831722135641477725011140538453800677490411833169975476419564174132673729333853637865853256729335236650909307364594989729290786766566038553266562038005543174944010169417157468116522130600663534522425740452717871876614224669237997377452861729034393965347985876762742244557262477822574383423865366289687458155675651324867530382052446849350193461434182201887765425450798109015182023513137905083194411237047264159210346059448798825453715425822510056846055991966026287653699275461841785137089465981587053404535029158701911311545896705052564110024178710164265585269870063327290231394293361861971226726102498143211182220761950087617977959726186224535776727066148988641311723133945816042880963720075221963362681926931459417711293480312563245705004700626823144115855279917130409490357700683266471911703328076427152847362227169231005859214592251457922738465428438987295258453522491716352478627893059995401001317003276529025026445434442661819050431429946610632130541018153737558466914788827103119810173305742146952664939156271955207352266925924445567425139200412888762665655962385660464566404796557145666653052522414564749519144167544070102618389330478507693344000590706645835371190537111295270947441891228038390069790168605866091530563194516574432602449147203605853314803341585420782796248781074282269864859723835139736399434326841104742904770492801139938056757668261143108620540113239145805811446508899912480784277564486314381775580241894543971955851870829143958132823502836711018989995668116168874007000203440311447586249196939029169491669377618937453946228002656039687615810863918776143734386867447428495979130622526586448788193219397784887060962699230185036060935172066494531248781839275825879423686131082923371114754886253170387931998794264331361780486600339746729243007149809120146231940867521825186956048492062023692520025670616718813485658613512581130567554617415704879859951660210715926485742697580615824897132364782382531471744636381809739153126866731825012847748774942868670210252284410831576395202471885075041754867685678810735388204919722938143975952850914671707883193946052939292961939215142907390930426730683631178323191775243966695556314059958721757159888539113475012421176332852204678135255772937781301383681201521994784690894141125730227381927028096220897112128426933861571862212716810043121839676590508202073925481523558938932359088628152289818718962894787836515545338341043944026704379181973673465787095481456182213071779020111198509471561876225999363086186757941975511977636808954162765760465262571250335449585285059001004603539850476452944219412835396798688595099518340182432230256950908879701274181626936719245606199395613519569961920170425926485630972484645246521601153818544360497905786384353822276238672627622641978052702161817131259758857998576639580533058074044222227852885683439127856495720072251565195953077196558487687938188949737681981532330441226717322033662081555777460431993121041252095359655620489519377025684500958232346948066076436240851602311652847022614457148743126494556646796465005197523923651619023495658935981667323016385491518417733151650513672447086841641129917142503330310673190331825427507093155946975702238365600356108932540203647202508654358123364302494135028774680190385469327835576505831992718509032910865913325018832093743438904291573870182931604793024160785784553872366301651915624622928262400514990362921898546972957008138645812652267571062224000234989375263220491529314928396893524451921893434221450500128218649621181599333974514205859808709933296060191082068529672570373966420019383178738953348014225365905402610565892298180488063369267268245646171520052628638589684145757914300646698712791926941165944257140976616435923731393690297801320078814620919632463391477340285695392706992712469037199121502494924318523336922129986858390763405945394785320656310346457746465158148833503451430025010318063038837197234527678858979369731532631839593950487793227489127445829383332151686748744509370767141347078455926950161586947359746405011324250720984497790028019899033383374255654391094979185353537897497033770477144347603762976232104522807123035674473588511017611924086262799852192065710491353207791596603096781177522426670873377585391095336877802445775596299138466268510766267267197726234786348847808767801177379979702688144438576420775375708046036740609803723572890107065956932112518939142292502774734001180759160988211420090272036020145697422484073284822168031559290964016305378280703970840837391528036729778028664235842948513142137275220299488963209861617773544550762687607054648550292906486722312076149859143780078146616473433089210386872474081347869071615182968613551339814999945333712441680272882516015121447216893163760905050273169462586915329845538222343454362617550647259973990061262848224616024630560660722125166705373852453236904271813588683196324140048136658694665346751589188955652892755032093407895930957846722983836466415720577492441512302640757626714198729315153940939416805414150953916803927201812036537567405152369291379251059880784116788031492541964340353092136091429147851599042281323635128422140120445747941978389278782725472549548867426835308686404645004026067718336322104986482580812831335404106491019835792834803862267151502240243910842928006521735666405360359800292847956756411991336716258058176248616863661851621497423953161645129687272970127897279759627150426856666616423054762060145403644314967595310686505506151605018164327162227788586620946780854353769578738253337874242837861513320924313338260517892683147893071020273732428676043562652440626572701641880167850697968657537746774287385652424457445749613510204808776876710227698823503312968405668944267435865008475167085732928344226749584204335979016754414895406968407565779785309719264767000711878728577274135582207531690974309926274679406882742490381700938234086745784020934340613060922981099333716483752685741289880186072680509228054404862955411859390225687159302301132273561059043565482321133022193678836892576365967638809936601983829466202352679607319296308181684178564462433568940559954922886553478141549803092963701794508793161012822335478398258353564514904399705014993344541702679627220594183414849292894487453413146014472936796171409577272354591974067596395667959094795916821104167559730159822748722105684764911044256499043634933839450930901599825327384225340031607206368385155755435774065053756910697541554432045982427299956062060704825575302105488357332431791632436319803560010477520888101283122939600115554081734928441964733485160806241428100720180392700208557540525084512758626094098012844083625152277738299753414686666014841668505814891578734859097951629105940075488908053534218123879395341013614201457963929157275350484285571752800473496969420338916320820247222060280501060481848252924124497355073647600626328693464252681236445537571010246331443056668043451747389868719977067792892138505257662730003862218744872963885222138390812145639724455715376512378210849389167880322238661697707290863889635906519797916970931082246315415592573866737143814957945289437424249924830709666383456421197897231387895410871148754184965681060047795385938550021735663536308198254341965826486550112040982116052758785755330511728972242124033782019039079384813909508607779094777883572427929272495635247442075463837744512432299894957235666032646029823519410537054439418242528355232214773261019254095794349293114846788337592737997081486552165251939086365475454449001660632052938309174233294651780658262262805032321975979451374234648461081213333177596812365593680292820593308091376660990227217400496848882303953928222032204771321223887711329834727391113869297862242674180867338844331911584559308775909478882354763382040161629832859198890168445976952144854908816742124121053696835082058696244655787826910004365413479843148785406533613603216454600019021212423698268611449477336670612688404258912197451624803902815644898339979062925946153888174389595110072371414500206797007852923766316523981109309759595209802624122556508678701145049498958730244679192550762778806989466017534030214753288233890794696491532646325606222994145674683830987315943467593827530004063835059902937101947349511481584927620406976785576455030424982774211862961119144901118582547874478667167573385412832832448575758861173978225286118445889281602406104538217456249886355250298496796056824204240005891695464031867296125208636183466629895365369477226234844019623657213554738690056091860621422966523763933904233583994024870483827778433817917721239408881066933237502496211564592252536510080276325963523919471222531138990421925376113644633107101401684214305029292493004050117601039570023202370494525593686096402418495703929700146507086507635205470210983569303860377681834075613965758277009555525457301716553292770591365916615224389485590453469663785386570016502306519462473446193105877757209400385499421676188548303946809718135460690333703689960663915419424096387228000516960292623893101993254132329054957011071075907726463568350875608136444825414600534494973624059131953599998902094578264398122060856312572504149625308146699135362359345053164131765984316250021594635962561627282596807510930152927121415084075927280964068045144850809323746604083771466618561479260207533716765131578540063579356815063695593160326239275312538076907920808176559560281669383413480198287374314653572540116349054941219722632942197840760915324512072801000289824632940582011587047073798863146520053905500348989333023820517363129331189639858064642367879550440917355237682931612401412822756600121793438437339575400480782146593353626998262187235318356413804085516128558735243484025460600745031008939483846911258139009263505344152925641451312873735886215888903223708165407779431931833613042328351147246105890804613738755497383672381929856105924099808613560584414930962456110416296996407199994183370677575213559696586879702447427599003263487450220625824058996133529200319513493696307286446396131263737579501476806171591226988545403262090763854036131112591197231833336466796917131794074151971604459615000269497921571182765798288832857761863272609956983591367885314689120150456391162303652809177730979756438235505852813618819131854348883335910258678289860985705861592110310459604000094993548929442081468621764589942023104448668463328153197250803862661976838080598125905516403855556337593381231506986929278372895507632455522205532669456980567968938374067175832320304799373283753267602354112234173064562089602722932294342327652514830342833352132303404569172307600520211096848837253232968239285494697425057332493751438855767795763835086179482599474508351476790316538203437519551036316842788135330129399535490648596900179353427192026539909530530866882209119113973263100927505795349907194090775176939412594398771840398443937879068088372358588955318776992496605986129107838940015119584317581454179836213330192758270728237870899027022957907421309554654110636476268502290492832202847076201060024729617236966994438237620288610274456858275404353539433567523344848643135659847527539849504867279075993281220668936354287679203812758586021384054622860087634858402158958258233444134914428296369529358493295337025622009012618817192230191657428757196222380161604282435121148217681010927404463626749840311546204289528630807772606782923751936437921846583831087849194756195190593517848854445633761980581130535259612348363023805970239258719395142512793767344645452567598312838396797932043562386357030139193098325127484221267064462753866670513370145754366202527980384672196865300876261157253669230467924970075818536972416574077517618059497201561213900604380670518800662792387880531991286065242229033888941498758622163121900854932032133654057546743484975653825136098436600731220280723025810064605538185281896622813402333193896124444302174780972735546030844320417121246805940497508326813933911030408636576002884636951827577702882773565986337945456142453187020366988926444870126733409756093154428743717018672386079574077013260511196389034727980685547228284679007793932874426473137564436415764886017708374388096150971638668619397593169036904939816761166091110558073332435964951954530555292602058261868417636637787705895748633408164139903424157203813616754543889873600243356123321942921107143591990641528213160695747312441483999840522212445787706012264714779307291482867855206841224368510047461309076944477320080845709157732982980058102244816931319362044969065500944525053611951953906385236018898267155043129208621432167545628229014578751773234227191949537497311780025029346795973860176910729908753038790206176064881132814660307527760364711217840671204238352519455759025714844988542322641410825195566620226138168066932377175754769838449917887173169810260706661115512269967985389976868662360145841546019450566915355923663836844352066976011771423786360201237095041278467284930932857420551042480115729468273671439467503433628506628402480390822733525895453760941058273559816635593666645602180416404452499903099756905801568826049298850714413406059563935240815611123008846219107724139342161560888242345039475059570764158595660206302573590764129549364706736408460103716789363543847568872175876423971737327006115493603328383471714152622246362777868212074127023829354620148522260626628770204987095568602704285195925917711347139531053822113247671911953583570482340295985822175664653625811951843664120679019504145158626907624619164774683593280405291680332157246329935120127488484882222045260013541738005058343811696351109693417790682867588394489392069567194101079343698545322277694133600662370939493451805836818407505257782444258945693706736190329914801685336129222992247765424072955387423588883604653300244580178192390055879787671220801422501301047101286504530016773619853798143782663232683303264140670765764434109827605515057015083903675671882551132111630275548154251854337388261403619029821879218169060565886154454851548136226448980632046717257501608650972226369867173687113972893812637626851899863302015019703542455483548187565227713964836887092620576639881253397856566114138199195565727712357399185264152780521605354529685465095104438561902735397236602526210817097080807942664148771539255301655586667918280578031552737141722281995574417896595899394160149021406716898922943685067208063159578050668945179161255807245148352137046158858720939693991910332894448555680407792453015409256238022281707682548469067800586599244454325537455204265820776320472532808111059311694125226078221763858664323148687709511932947951259271785146977437810457405159727124515679328393472695933246955346947449612505980803045878951385176371973933507189639948225979379050795348640399505231408313672970518251751868198232935160948700826808600853209658507529397539931119026141700832174028159415544036320738419442420346925558891229458716752944437113595348503000394293892959250280142224742577333639380981771162654541781473521331898851422236913034643973340192783793947963280002421030225538263873192316584198627176064958699456351674726559251932207899760285676634695002665885407282783881934840335869174975855010893760848551108465804741108490298051496343941960938398682492307601589264728141220520635685200239176742061572500639063373144932280438844297258418490402222752929695727932823894477440773100317577850168934285747269480237998521471133259475245068673853045031111182826564285925531806992857802418538397677335387756762558782561943789680719487085293799673734092596884203105329514874682978714990015681578919996212731159070083559525622316840850500247589513574822804164221344582623805622615039730922544800711951777146071009348597338615754152803914492695690573930261693780853994247117521325751175158401039887427376783291065327622528047919963109291781981724718073472143644527752475856241275878309266667795426864805542565871053485185471950226712635172639963293555796759788937086273136034207181880101354422103286932929637483677682919105112559564979180057590487420581712620840133549130016817695425856214387316074633155916471902472868218268152784950711084870166304087768195873268259505957837689356786494021250131129434909977304528144358339037536108533673312350214338374352330936460101285252817285019659601615915624314560217516533548129683360799162956024700845176933194544021876629268557607154025670942168096878799799074522146988615090314891677592949742725315975981323840061297797455969350317698088611075360756756999905823438200540750132975232100428733890363586969825133777974838424931124885595278707956054428546917976428884320532101859824014606003437178161731184886401597348293295438813005762037674519829016489606424574128889379911936047477700556052656416263402525943223062355465512374831605664630274554434905175793666234935930594683925449534215454226578289212336058628435219747022278181212290883064029698665349860512494128432857513136036974226257240729646931657873048841967167361668988523312901919829153641317872693873292627156114525326788451270850207235243911671325770315732752029219621034236478491756477647397153210427411796342980624091385140109917451588571312826735165295865609673400375444678089576488847883143695482459775971416733146285028106337311963980945633488267836555599020497984744707701405983540916376280832375817649854307822527999364187927903489397367942506510894640423146465033440960726791887961799227184756868824601483061666783604906924110242529740498874572742643060056430672389784568843508175467505987046071638511199786957612784622109207088104526991172942728967411747514161839817380292762355467563305417539818782192914726764821872131359594368644974547680612031501206005815555574839994073293963824353838506732765044910764588192028607836003077261000006393861822991381271575253008105803029207508398768945992740018622351638173883697442538253635087638981624024045106636448291605351611746670292148209999407497780003344092955957526148640580934135316558759732706424627795926989953532213802758414367761947975326902267035767333315438805876154736591899663543021750835980509851772398999889286691917276640854584602226529009841583038679369182085262231196194955331697251040017163288625487671432914711214849804316207905616978756531593428153645366256607825954579070830836293466949180335816051612633698104065325015467061162421810039562197433680916383550378155275987060445417560393299830804548620764164942644277818442202121064799925300461179520320862319526175908178260212293769415153309955969580685841176479975315373674388430585348420115565493681088581998293915111913705075032359912672118378128399113158245466005122693383579231098412016829099408626408067710428267681777148816584303140500774491509437778341292774177175201931823913715185102758491469285419398806815934080053813426841875121380114537160848815432400626696118878674214798275103584028614106119745188303132828638578305779109273425772187573772971495097586066967682065599698874004347277652593549997994078843051405341772670293781707533614307593759285525181366738374238500801582656436854340310105140597009316497577246602149423160893561128852754032340776544854016648922578889400090921250517589971373820501884059301716207280822509730927505116142584576152077233443720634422197232526318429282072816986238986959578541653837384529423012723395614108666082346035228866240418075238164217246990637561075692388393145498098310034839299448504317733392171526559347065631382340466652735194760377678256799388234668560787596700623763785091141630536121511444322668266301291192663513442910433225527631779712184040963807013812086302932428275359277684732133508534500861685056416163508443007467970515084245556681550792544514020956915580100541716106806785457289804782451776134195617966969928307784545017862733389536163697405765992144580899785040029053225179381439922510183119664619777344736502132539366250082611167940600039181531862241550209216606338317849576307780123345571965927224654740200766689271363587885924293861968904926891597394841771351994422780010338771827653491441732474928884591399007841530325368745527074811413899001664463892956855561076721470120248081372327750886379254362890373282919465979380766849484595328625390015431146614411280415417936372901447036066938840810972750640375321012266051827071276336895163058069370285388576853240352648785399489484181988507713247309323476776859417403378359568819714125195029781424234188253680684736340372456659510926502480827173100324955135841033602257161414676735551078283400322153883229376012564461549600546900969677863388756336944169209116131208526397212021116615826116384663803652592783709277068391910242928718665862535047418924218527546667743898152530057683218142378968324201842391955789020628113547586763649452715035919796430868111531087816003515463240026860175545994285655349633006290250851726276799993026126626337212061725640268638781978453719114514814470494512519358983591439677548404304704160531949521278494388247242992078764418972549866613314542248090691625163714292220159775312273573567795544205334779309803550584913899141280839457943777094225966765934027547906475478556692748375158757933005970182447040144095507151374149250948043808958505839395544263913992083588171387286418355970174290155526356992737510044972751774098669141541053896294711036254032052327754407946269120650862404662171880387397507599391717576531335511468143884083604405065823047610688781279408362590543077679926287281723536557676241585093895093963382987302221957712824838425854562215162976619428297026510058894421022178354699996841294325268500595651893395462181056190004017595939904547057310033018275012317263495750430640107484920853254419379492589000654891469012929728759924993926925103510080267803759717988126821882842359049330194730937310897715667601230723848966753616672265336378215676765636731891184398485820705407192036555455400007991858720911448569923145523112564696610059457763530833980259963640253172372675606473401811221369415564296950568903404479444313043094051795081778560524429265123008474922170966633903120095311619877101928746907895701015507617006424908767147444058999092070838462545897477035805921639018746100934222803418646305350326227209466306475323115602033949442165731684000004693965114159566511917937188808500335322791682045006378556730597244924039501788007610038367542971883316498723357595527855729840760712898510140276540742308503539054062037484998946024428487534520816063537083490234163673914089060109812443806264235714170693280088125699960735898390907956235895747497139621949775151316550727565666083639633355869786059038669786329424185794864697228247671766732286203006355436352269224767167020795365028811356810702389035850760828634349509930237388722229601318542839941649445542615337038520710391349544546312985753959512404512227302740930039171577344602506696727739197146843948556589307409572782485237528071441124354033172293480945858555610208558680300154353932487674938069796557314215156073768504045523125924737547854956490931091455567748708831995032590271511736810263316929693945738739087476012741470665397119754651960507397432774331190686675818977472299528754583493849555068051774008518574519854533432924011425187749832528460817136938261600667161989319070580391169871612470412147118742224678824330531655825831074164410546527272151794860585152604158464161840132438164668017157387282863885194920550158812112896852116132940259326526908337768034763976900819565942980543001512197117446724503376014622012658276225496741673800588620448686589551305918450393220044917882843267434150655265019023786338726998025242442567331164013099739564093079908864515739038419227577544330814686007931485395890933352608296250614548735928877191042182719859047030271983836944499510742016943904776658346378566840453801212167462797195272529934919470806283727043694813335228043359986730310296741029970443429539287607864933302145763940299771381400761087753832049611606483968311229269128849018648032922610244723779528106119479922358915509757666279515171996429566304328414198050305749766911069285454280164119136968644961770751273598251116092408984728567933484733266551731016450822635260413972089999226448078642843025069067694619403332704056254736695840177783396913386837919073035690926644367745059495434207082789565875292559700439505019688005399302707730838281496247847309794476972759793937192780977248101177926442130137446628728904232566836122485025914342752102755072200366156768281398714326060067737653162943796140619127092203220587282691082030814665234272577040527309625725254471358203339686701981383357482688553583098711593562618929511677835009864895013857301399285757884707726931917592685963900192893774370003157047635110162540198407844445282076233538495629986380296529917906390113614199813528331075220648603765409626644188819832868958768154269685801317629726390527840732877288380462498264858081710326184383266725240512407869479789477291675197640458299957014375497503856348667985513336500404067299136725727060299600428114265196944185745716158150727502600498500338904239838048559757933966054672176260070283623812674231352915176149162519218077115979200058442680114662521845444958537960986009477254435472837590935218184285034348076758969538525813217038264133281175219716337409742294710721472384646662719954148504137840746028026574373123543965354348810081866828101287576689756222513275879609653669528859034389021707464226201507233827107489241196214544062588110821791543451604666391154300078138269146879633394653708130746078754398587209135208440002428841440541362611020149854754275978166566309264092792029878045974161485245727737036969599135559096586230818662489481074793861014482709540020225503130438069206722139238306736768952838740829512846872134262758541667884606894284803561192212381923791731463497831723836612274774010669147546762371808271614644684845522035507101002835812098203699768251049906940359166822222661931150296224726487332702227682369111652980945104270989324945347563427727664770501107857611016263894529000256377080426859755472381252733536333702820117215452714748905045440083824413906389264274301330417430707907951993034622949409370534483462731284475669945383731118944405897792188885951688954730853181509336284009172359366337261602929415658520989602980992674133675983762963791291887609086083603929901545865636503108574836393399137817305712186850418765246660379387144334800472511239011204812022244838079989415623479591713975594619840032376662420868526961109106140859206404755887525494491108197992777832701137549054856255152341458645117026128941989637848806211786558885087596270179436615985863536868138030898410824007110606683082584746491627170230317509467374798701326261619892972736290029386193243592546316981214889030167059874502621344543532067021928158861860583609289218141367404512569277813431157479858632621301643963800169553315234120021006993430758059487844783386501550942580608447356823778099968052465031530345287103974973350509025267954497791023788114922495476386443697082465360283953185801996828052431527114646804722100942007973815020873910886319590517470697595950073777356354193956593651286342643218952648070616036240006227006020738057489270925566777806533350073658627750236748984551146188374177826550425537005548374211321774691918941796965836148000064343714672053862146654612283142035450889211542090804779787967246249814472228452172295109407450626017809007664739206856681709912981567124906561917824279840401845446502276941561552228562039870418039820732160046643094381092317738301835790735196150022144506273109190897403489875243340328767380641365801038164170776951807238670885079336948583571487750028772386136048223313053122679358918545466657081333369772669391183226674749559636236487972191252796851142427585877006619606106880182442648165923413772053901926203518415126904480495489515575448503780440345578580162769541759492436528502475668514099018726745615505177485141681228033597968535296803855330656497810666258911306920337666035061656409762588014757569517844809774233734345223176543074006891701966547196132840045479954251700792515346477707491064536186216994790051586034750143503685736883414456528564581439822700569949411569976037150225547889571764979812549759474683159473884346790165040784803062920627298648814020204939589519287043861916068442992687713997151731460163745993992261476391806182259052130660187632718297148201108940393641997465616157968041589526073326901196547043265302632123759803790266718328660336517809425019070836157307511269768926430855384415772700626759213952225786557349036209374096831265873711240002867711230302041036565247859888046049960333282597173406288384453741295695623414773670336314722589617584323041201242214804319345368120792609886711862827625325171938279969311974544742508094267970500294034178728533525278911232781209838893202303705948818706282883531913693720377159581157342857172773544250058378372318428947619551752548699374289622575996650781566482640113125359144955355444452381473380091930829592653222488075328575863761587154925501025735533203930512173812381432843829326440028347058024551287002031676239577391052530685299508936156666719287081278557796545413364189522104363270971029808014803652018735592597354495722232196155120861864256680335650646059509533916064531491991538581010317837681729505847456906585362882743278332727825223255712900255501947253870596573383655380894408564831660354890442903400328420625571365533710348019731577321383830152030466274270924853494399852039600881911359725888194177057105596430132396051501909104595103306791214330166854807811115695210262215461764781803829498812029968725741292898838507666607576498758687783140752812005077947390129652282177742766199172754501249512335866840123065717275729230665954504956772107023784314671022220711473835402816479868639155874955317083067694392259189429920006496671175573400194634189590089367814767547338843964714817903438629827305651127625442223970500894105878679130678973121536387345192907113679063201676820187600427007709205050590585950521900014870692876914964774503756472123073247558384304720274798169684175667204251331692731376348948688810781422570320738701004706680923098021314305157629975242678723610977021732557321979649528613827469814340186686314321288727869086640161979194314228795588598131938691272911470972624077498562685341125914099666670154414441092183886221506954200194915274187438845617654135638328400336259553512123362941672482649036149224474826808020163666991598841743894240660319687628200181941553317152586458581988384684154123062590259533877074401305128401699249208133397664971250386137995642481468172393538624525471801030806889377385723828773050259714374495479180670378853947244941150583677931758445910778695658284779788219845661525318386292148680612108041604317676391867913751811517826807523182828191358688492626323315866263014319288704881115108350491760580781255194651963572862119625364413914745358171223214177589168523845478688857804084343053631728770474018667623618464158737557337988423824118065354731402850405829345456692544753289230315316002814367659029351362371334051339126297214110517761284195915153431460315233577332374276569584403497294819185338684636152354784621601936276896043191978262451036129384284694347703176297904804834029560411295459656494105484103943674223459410229435338973002264110486039103929134976907664128401468773758334017819091350137004261145049433755320129753860940146796363937747752915030807853828673390441874449424540243382690502004192380107055462804315023365028710656541826984465657025030378153260921651624057571663589972503938831845090376987497536773971618017935928707326107628920807565536571117122862031923910996693347399614858824369966025798855797582805131883512908724446861980583325816703715569814692866476921436710838826858835264844063415128777520864571891782064069866001972677831430380314003699979069713361287881423101630925371898798707408641106133522192606989842420183246932485077433394694850521656060443754778940501618197198625347905505797770412521190049016056518105977932402326949943427411995342558720304994054318199501360994855945028362922225287623071041573577403722575565704458467692391564793489424645363966588729421283915029686463121223636301698553057100080730385855201937230508178565302748602205144228245578967195476580045201505319785205000141078328414829018538436475792153019745369906668423485629607495210179860368690747668624674748551473195930021159377440241487067972042530864751444858193390654801412657160949267252309701687825182137490819484445230601993081251706521038702343735598298617603608415794895853908723282399804321355018547888210506175820556849338149238328092047222785475925963262701749592003953185116015546598981116238063211994371141221392049862752085380444254831670675775279305927777222270655791127001991718307722575788945518268672030512559614664295376170970157766544077433327806581690374195554251828730282200009722841351758956588778630323646492525586231415848049663877989665075479267211398281388400209676641221974470871601222390563873459485627985679748345408748162552282202722511180400852991013176446080494582213386855639035270984505593495262441718315139177314807220140128080678454284244335360828502842597522779957895893272499431953876211514346915393071021533301103902098478947897620334277462329533624887611921173365045187717991663656787978471101943771419697626046125397851768476896314786129626867176999261462837525381947358655991049604915015408470177181902416731013615724929604992493170877389595671145567743742410889415172809254162832036092507069188059209385342884037281092687817591781999317798095924071163745897773836401747167215733969023925755834087707246918482944637271287490943468993559814617612852644487164154526092534492515196178581196411684503189210220167361475220527709640637781484504777063737826915053257472023731797310952809290537120803583786065510374340117188889802636909105026523758061601956361815455999516055387332930769925196235051632392300603257016860794714319007008259008096911029060270867176568740163944406052871696029734037673615168000272717633872425169648640011346831503884446036282839213401814354318810530541904539630868523558697750742527196057111177456449243234162680095337877325483416775941484042421015556741639576983612586496797706812847688801491441552825026340566699273412962972295938631334709387300252309646451676665489093253182172447646517184720590395497092588573604806796585841040408732049919670725400334293483816291317315100597794319307955222369912502593644174455437181398660427279053578763290841372601339503734765753067521980867528501293407603759183032864113292243310028709544992752545150772979021385202073740959503043437139746080590095521396211262604786865981150514305693675969617919301941217852369126711918766132942036851573745612848894963497647422562484694670715634621872301583233065130088960783995191628098036307804605068584868935493228047014979262691125285476500330031845968150120423756175316705201462331605373452185281123998957428985882007218778442465481167185530093617801379380481567784645607391300868960550624131562957944845449895765660397033529257220322001193270035365618361864702540122551131707494449328185833203270089486497020275820451035135960252844881520337042168673808448294275621212038346591933443364180678497556438834509393403750530357594621903071873644663207910582231962363057449788480206187611023596569247194855326432557832750827406226983987473379423765268023289388861791671354082907118630562673747589093459248880939913712536330842635725559800559838115027707206653559964391316081831636311036134533671986812608402264589209073109165545897528429002824984423527420667946475980941383457408438703968436714366458989321273264755586767722178069298501401542898426163733841265176438618615892613491930713955857249838986981087445240764230448265790566312203779385967177168319755551120321580567404032609343295769507401803553052083119793185886824564342225237382010120822840023460534352371261439872545448770438517720822732941133643725956392052872739395182200312682890055986795259920015509663791776572703344563536042533837540677956032896825384882805825830122336586308801296569663397508909540600680908435806539612221955697519052044710981664529475865988035511676388074143181592137684918850869188619947053694418816873208523006240115801419067344036711483621531745947442225224177761679219768935279138339303324019931209011961396207618246799515846679465251657472400759083316771523980190152343815302014022950335114107420742200271555647214667936647236964640862162716300781566432746565519676765037104498563136291885026147839655142457156157831883905865397604529960194117006251451134158630930282547661821402045974331817538995411215068572186482466610512444196239755666991432237589978900470840479401748489544373126147797892070604492677871352774364450308762624776610742107546978771786604495138898465158905696030299448172868688204428160686808344707207519026509665495299090196015099932625357739799789324225472987528851941677371437776141710282363540554302959879675667401975320054449115900729495627930663413280776519928121346225335767304072148454811310066702882032448986180691163905851212742615168698191734823983535874981823219327868676041121949793353353358043771259270003083516401489361717447115798651455879805777002049331786052063069286364227781794943833933264319451254900337553253109518957915166890626148774201403464212159935275662266876418147377508043029752536448263170380863376978713634585913906753605774165196126364858456606020993005293512217232222063620555478299281610331704378026762334255142173827015080307214338569255555093980295317877112012514122067865466320677588451882230116527748782756569929608743878004713942106971633246701279570884609646155693773215669555667752588597195062927154429688297583814490442798110447681505907437244324963755524654831504969851523947001574650257209704680300701535789933947935523392753253227152961311298167139948421837084772006382445163250798372114628790770100699709200118784930556853902339384692903421360536977339963926465223529612411202216068254246195195698856282903906950792242069664984659133230281355797827000504353436420440355588601741875908041214133723895853987655828220756708946773505575487916588402936430893482175280624264932992753610388907243361186967295891008860072415666413232572491067612368747525505370474180034001731157099164762992104183007396933098082550745670041581877240489247766113104689441164461869453854978961271797297749162631662185523321670790119133134080375146496533900060381156152915932600854857371463517877745149149244361509083266166565296904797228557873980621929239045143712513400629854888148765076466382073028826585072423660395848606196451425039425761707316144981998567777578447203701528219579608658660520249571082986611041291400922092273258627076545598501869591842372576424986247390275398291004666570759952195449007025552487683590513374585374159787949271054254763493396834455260657811231003013077993198751155362245941246864743767095583679318609386744042584697613760984159289813843637762628830667262554506071988623969254295437146633943162545076161386119871876297094964576136900799269896783468295522638037146543645453258292950443162221087363326820339444154832177743355320353120194679696713726855725608045229791038987165716314110963330130745672578274514965085076219679330982255170694567565672250710955982329602545464857356050360739880239397846242464413913672507445764591823189814701002587106210639974647974978013794607371918719349253526457591467862841829860476735801072926446438193438673809401906693624591080492624491373515086246053474575715893080816733551656959306377211252049405532994072021793026318326738979149485280190103155840532568027441236531062089852086065469077237357423663416079207297727315039906907777499056639008559220920594442570730065208871969757617144620712237433071704157807116465793908946382050328103116104278594404014190531655144895355340110974497489661888076428675179940024660634032352095713017644963730213023070004868117645832998438691401297534708744726266274739206320530181517396682726578512223420155653056052805641591094502929858473334414483109585822716839665912447733554385797896254350940343492760086135263644099763034274607224852816693530752128632903431455606966561107215282100262388888752538129327137292210945280833591498228898564310712053309843867625141725095550044263865061424262575523194428103291177829948648317012232006933283343823451795567744767908128569761909966223572586277614996563774253613944594293310002282786361658377878663159420241888441819104386660271343454809266828848781204485842438166927471201289418975667098914999862088152999741564279379682332248587415902048992227449386282761995250895989494301192948960663964316910790145315878386660583867832983814944227602553210669911727917731972958938731070347732441131950760663899038658814497804401697553153531088328086177726928113798774765693780598906853974258166522846094027124197956591796308267851975787465184663199844743583759647369971948604350655914437928135935397417925004787323591314525602822461200946734754855503045604430480528960588425880928714091195764739067654409170578445208475594749064418538996747062146533778208636755487482972147013074620781492384552997833835235389185770501006995550476352618778732314736928278246922105107244569438433271133742329143034450036037814465317659629577144808879881675400528966087018680766707805861041602363877634145784563952607101562814885854107264214493426175161755821248053181946105250556781654406071883778242795335620276833258944858947272721488352368376000765663795248094966166852688984303938356114504788589757571793381274135037238220417841814813279752961217782420209947777402515922217019701747008275934030496936760253736199160305002341624176754255559147486335933307428262546119756712500931497752477021013688887456985508595459717580322653906405020653056670932990204167841820984620959258717134820853592896824872565141753616631735806405283177587228195085415710063398289022594123983834935353674989966616442241598932180460061834060011231732082535160434242853182334941619441529873596572195748366577091974520837692768499091522666904905298715890865704599586694682069833522009660166824534363631834155445336946948109638411705735649343196262257466951720698313862555280431103745485174227778522299680893616110710300627782972307224836196119313482720665260963233065676986029337450754546570812376117864069060969364242926983622713718939460452533097640639897290698618714773413223409362609470249877192514352216745318124597223268855727118032937095706436543848746993105143410349357211960182689585013055528780762586284538654109848901904327396085073073529812935333449323013039186473743739967552212834366734579439827700700842444537612431557767222415371367579992375730940015054209242908174812455758864411046204367211597678710213336829479876440185114128104816139062236904170451813099162685736894348501943993766568626891362486838469860142028435489657027371226676194370298662944753063504572140849955436591745677875225385016681110583239847444092550615767282887381126849964432471480699901023191694452106002856530440604769481676744076194932520005632704859198075828721313586866954793292984297873599527495543522474141766040089863123560066494936550511641694965266328263754789226655737886252487282192312698032257384731707547175945818494948074422318519500485223495132729673760179131035944882686781230328512396528362006097375473911458569895500247057964785225677132786884835400993677612906243069596091321035301474028166622928767337974857941993867375972740597507488120136817310591395284839298199445745675434460936279243578493846778744890636136563721536003284367837605389822118273452108143147639363752069294285291343276382993338157387205118498937779637039098447322977098428574297839208219040746236239342071705438478672238548079797459212266983178874512843457871592748020590167450071809624479540487819506034643953374388460744013330764443987934264006684743962540420079002821825412091492448990998018014086074120634410682171436678335159244725866552989647262990702560972196588693886326208466121975012746798341423239325322342009612104890561362460750210274514546394223606488700689924640555101070573122781049185950898409149799082089089593731286971650925771891608151037021787294104442185924941740798714418365774314533083694154178233517647611914197424030283962971820363762877119935638714474830610738559151032515240047956134418580673238756192198446925076904748595516750506545319783131763097430816222000289877554248570897208269288805425692177168372718711127878816374729477680741163459463997373770729420554814206666278900232723954236511116785004835725397762783815039520862609932596643348045011999803900640479526574747382179842799878961897585115764067751395409013734383799365792860717907701403965116692306427232483441483293744559476116552978570858604574169642293563135059082484207140117982189420044325476465561985680248293565417942339187572339660392974011689054529213736975608253836403584899880490730110218777824482268816290856388053915437977087135999021140484448095192299618943401118918249416109217579222309566477143251767522970733101497493871350639912828617649000694903404325328660773907587051862083959538897354173682918376321954199362864625194471155306038336772026721853974562287187954261231516665391328500777644817046168163882255128654824110704131330569039629229000598869478208557148206819741592915313107492446332467921320154734257253607191935494056229247716828413186423521996635734367169406684653514960924433682511307360625614374836643801888350734229119939613470633714486732482226968302319075301762814187197463427940356030593314110028370287772092370194072722328046175104562274690022642946775998005427905106925462237256870066054587530415343838607838645895034039989053759233435443634436833623213521006814300282559338006630163011292542125154166364694944231511666911326460232019968249971420627114825042530031207070161232595028725707275539721358948284969087446861371784945043467153258574556460758181665432776732308403768754436734637105366628901276419364181200603399023251302220254900896897342770269721931074594878652010530351733285284350311682637778513918798829192086982141883884320946999366158264198812228108864839681808230555101811288032407581916101493231016074454730321743597345687839090077873345315480644113878980794398428909820614476225103084364817226973884844242368836534326525069539959225166404403577820970018649442702959478023315177136546780268690225600514051807819724833259044993116152855717507734174357393869634671342568014721211365795644484805878068084234159226770901662081350139584737180713188009066869151848740584942041621154008726439859553894659603086401690832179072727246216158297708621253012433252651577473867510184232434324188060509263409380705502295624114616737733681319111589535158514951213827898934162535386639602930173298520643544656082833466701213873854253156624722114441509037408463014263501047544795427260669624094155781221222046729831919964248339973725315557842449249975749918278987438918553670676010835400166316577797572371964859835838560770261060640422330623627447290905572418882989517643603650727867345866782666084247598937358807497970384419681314059138102714355753012085106939898324680354349058888055186493024310938366436615369882981396282252481756523154577905657087332429385878348809840979551143484724683141325792533002890828355622352243588181230595509073800734894257604628980635036857531427693208354768367178987524401201113825189692752799704222617132613877498755081630269949318302196611867110015670523082506610499277001760571314442232665445598212086545398186026704358953610140968692390550103720266820024301532593268166851064589093555206637511182945990892776439519677493052911324330820954225203647312538478484587176044631085073077361492721488083695386396048022769736274682374329800381103790848830778219645333813574244337176900332293433436330266120849092079678216409248459988554550059672132971213902031404083406929685272820589415905942284551998430954234381655284502513699150620607544525314059100456852348051442848121924589457432492496583582176882427329876912211639788036999047452141260478880370193446284909382299903590778926133083343206159562528335790781733348109108760932554665037202333570986012479945073800522174910206177116470795588894001560752776732421614726245011523424810897989753926787135238670264532341692657487235646308364143189560394474710511049135730862616465873531278668717359855201118261906191089154991073143223479689771075095615099140544715834421794315918840958586926780328976125413159227777757708043340364076853685213490911346258828828343520437913517080128954787446608053639844673371481183545963182305554952780457237387630007732293354161749244684755004364203338678418309068128176724730919589934360265488464181251984517555437573549348702313319887969863736828873791054670597591487415902127195979670796715768033985032747154530380969545683311327849847518827891840591904346042968550792037414009446859597478601530749244122918609438269331801280896657709700985320285382738679806995805907335000978279660336936353919313526656088748178103345741287368167346194171968190706806037328798946547521505502409051263363412494690906460302133301365302240884720705827667400308303469826044207768686317658877910604874411669113106995553113905504454531219161028978721109340170505228278818302002519603933838719646398396640404900722136065310933766750585316124360332901067845395804299917064800189266868357189474843414516489502083804519698810045274295390305687528005893152591113940936460271752718375148767712186341314541533124476614129142525275165950655579672569015408134649910459683172865480101058629369614664991443564681316338759408255624974104089210394334305657581460176069347423332739622213306189137524398481000436085161973617146154217824316601807489366106660003064127644364535622590103566469398208655198003753835620396704892779239549098062426966775745197283162795172964892055943703456265641966710902796911513562605952792861471165337438985170342770879789798565326807718278736619894681357392849608300246449865687789323676913246495132279153677570841363276141324718687212026373573443500191482948068482579801029774163354821621761179943697707297262753252165419090756053245895816543342306434526070468973338934865030731283710125307432395427381159386407747828391743351406102496285220868482962328019411421594592240105876853374099620820635098331595286582678212103083935764546270561627870801518462821684898418219926636893811952644436752400087765354808940775785539833289383670759106271290184131701393070889294973310418298223378261370126637894316485214072658621615807345804625048028798946883144939823858606327857573558076473091421785456033553711002571152786556865289921268679189652350573055317742457533292263257303945432207168615392175669574964605528168344629562715288317877174474263827852350118464727170644477400187494734822376981065901333550915039850702220283048341230417641534008878241356118965507448626912464407196778267004239662559919124440156822596849281168276125021725816066703286415869192582355487422956576873906533219495285800743746434604320397118315656273978397593837467156935888686860051789867037914528776176538745889059564534528644300074339138565911026696070244073221614853590446324302396356527905515536909258780598934942189400699692398313629108335812882201816710637844879158903921890981663095606735754736230943915595574505880008512559325075691269795373475071921397193712504182685459879150490184266913556407445249980756981977642928297086341462874567008290695139867539471705794629129281036031115899546245041325058499648776411649164522335284353212876987008186329114893894366499328545814280749513566811781008981714541454595004622720413282025822447704711126336107708116783285820542966608326064013041594120307741151080690521432754250701376248233404065627791320065929871029448072876895978110649045020308348921528896291605838719344566515774666626322082084646257162978822166694106461619298304374738634072610320353881541832332882227949225096483268601101561123701093048011447919039078380453815355835171454802310783942880341878590930669421529794568074617202071045692562821602829893715956810663298784780986278771701577355804940686328117075256242270743863219995834180717871899925060161051842057118015152530030334689572396562776591408256147972411964942103917406315488346834613872366094404137039751648499602443962413743432896685254036791110721239977638881489234998356816192544135479833899293294550687635041053586223269712136600734998569649897768416865822875740376182796154434430940805233248130467474956276301310073374382779958267205153442922562242977668082674598744275341749935599818642681065197004731753333637145797680333719926005620837565852606989245674454297061508603187491733678968776982188834190779541055992060520478792414558211819844038447458996486541624558935728404881838268292310351181059008844675645469096988948962224088191323610774560659982953869685715256621710938428887915778384810619641623668219015774110385290544039167593605095050926220777312060025847026683482586919981958861206316585451922580607725174224020034674350771446205958215876444092186716092212735284747880458323283108811703369771181579033981740639193386552505182131492869925432827283094002199151920300243281073150226008973902730938086573815187074293629683982142653622506264213580472309862999044234151522559417832476598056197260578899870007907745227204829047677057799091303446915377910906152147239408335529453246789174976821471630414973405336961054819141810248882607144306099840585616666245473611749468783811868873515498221129379482408989900848597327820228652079425602658398323844281446720122109208880339946670374107900474362436379739434149951230530634601369817584613808832002564297624790643181372292373200290276628440548097379836072351739404638064994787609358644806027630919594890432615646537978641630345166603128602739939971208170054588967598097919285701690083781076819354867046341402922665734034473328829129885879124284645459200155593982988648702298928554005408016179847988909397472695548020317658056497657270773759985811460584471571805357389007816002905461340026511269954030602473895294274980362680820741272696459192836013926738283992836913760486482340970204153321297543860041290938547990383978603303964164663775036681070185247860706968378981003054335608851782027265959636759834930327995713899181623189035010663343914888340726941909513853386184163267725116501824819300312392388470152204272745717452823403494876572096123132245993735200984919528819434091561635610304687280265047553341680194956026590378935178941699814123968895911096276371670966285141235746156352874183902739581333715123269306981783184467584907451477313022531664138270443183526910957933272613177574339390331319538931743887456323580595124165034117590196166013862379153102461128364630102478602813731909307106904467530948659464365615801234351930918359590959303823415198693984144538116665754516852428711063449684009584755942109084274914231021901374476859823001620370148703745181504429858850376060107774945243677464290349378806325722806200545784637022409518221457259934740526301471653162190899172271694692876049557028001972790502377423800816848353466420242159922577761494762053568637476161755881578483110977306398598056064347326213762531388200079490577047921593649915065225959928890074939681782309914585485395494085564051225802504462417707566463374182871388100977410102526541977601222764623051328080447380390829393131476843233898973498002361323887379877116276257620239069769546609097958850086385792427000782861964709064594293403531611041926969128308730596391887330242859102903163424955284338543900312252909715116645828698292700675281103864532754000596371962095985216600427125860764168850173473252080021355539114510398716466896903304917282949040884928821114569444707772136304021696952779965436259848067479906045599363271766527996937322182635652036141892865070285787072415510455557984490846624834750271548486292557331473515042195963151207653274918870006534557890315343077079442023988380383184851420719143477635764419744925683625605337023089298095557542499520457788215434582770838637040078755659101449080320655243759418105094049887505998636581106990808631887888329076702535461944949670265316784359939427374153261899290219785026290578336627174676997667222834756624666957263954871865687591359750006117777552928229220267551977354502466999347056851712545973559608250562035819572085742750150388671418152560517453071847868729376040987895112992463660365273076498855293669474857846869070825569520343121030947840578855824045579706407499503053542638965014429461488905795827737014985993379009986039104140997737639690451247736283208969969512648885075916555054969890136343772463768556272821908134484944247204659256719765980912219001744411198811003217384698971614905755457592802890924220179042661541150962008238077585347508089829876528594869152650346501022344086772617079267689175325814141746629205166437609115323238089995981368425181207704289802128850616706397410944245524426553493959635431994261586571145641915495586331270253213247045038074822355770279445085732657337301533477723477111245436840357898140793929158965482309594102370494974484320049249856875183393004850956327935979128576963223344508916903236338834583178618101836134950807002510072805664421167523955460139459950623235101034814850663452142521206231790087696585324367310123646469802028024931846797806182178188608202811694551328776854693646577075478108510084722817492589021212969582937681355022378976538563305700160160342223132265353452676618812225268352778185757049640953077572659713924100284238709965721608682986722328538413995393184479880990812144982585817774394731143916023282714775927237013681932721504580766943926403914968667445449668870483704159835134295955742723705465856310038624949939354047115835598744461925749449850399130821900236064165004129367179857755607455015924874057465167161710443300367908474806329947316028072770579784392398821756791270589505892393563689111139973553540986622163260560822613829552525827420414386360284469647272376520369466283664891004966092371396834286687660974687392816818985576647173099539631763362219518959747302157227109631830826152186152606416037751071203396698019497002059465577902809739392918616781906823443321585402668300290337133896398358470657291955470370949114413383913275491390564993595558388596498963140180649616519225598383140620104694302828821668856411223523014014858828823364030556694304797625633687794677309913902650125225071186441555632074875219304097554310052199952555173814188520999037431701068037310614240964412598481462784373388457738013378273513603759574754235131911269126631482878083852336526025850348885103751676834848932225223280857111184597486924156222801107058335937455817914932464527844015149371497420515267420597611635635140677761439456719187737210133845028372988988293100859388039430119592076081366992737981936521090074726228072993994030147170293785582586608755320041140231637173167416393749987918574301166682931830446685876290186994713618921880051408201220548610541615800603547711649597647836741251622304761220343887483186359287391882703956584500742741816986386510011145437504898965396043138761138109383245745624069424616898908245254630379832483193084716628920241825690892722931111136706860479162529573657428955361555705820145147922505061765779584703516085449714665755628353384801527437152510541104571371021443229053827130933477436544207152752259231638076970714848766910066278145712712105878693121725784457005290856294685976421711755451665699239204468359117370904199584879333854070111432330634782256738088452379218883826673392295210660686697505711823402423836291507859939054989507712945695015916024341930960559295982397289527977471633769542998495588360706949085822443880958508067380476037323957846910334096350068627957767398260073285476263428165097957321038065378746940149205317718658542311116460362769019994436620876175779109591634607541584491369739710060156384957839848091285767404719481285693382644365277147909177111594955108768035817191151407638469642722466503415739859463006912715109062041380801751590211788771202901505140790750564422843894551641561474257385367051597731865871170947606597805409844397208459598868898715445448788003444044912292905140104664744138963290518995958627254438368996857067341560063628265329996267753616301029533810577864781642705723469604342273554057617274462623641423877768677492190075067247228923318632312171438695398400816856189351457470202525202604499041722520851641359898708518986639571886157541039076925859687549657268507789847352307111100098116308573730934327231030352022199884016397134044395418038574678537009394584259419855251426270016362155453241707252267148709247266977870980449957704030057440151044739406355294033458240941522326616078660820008275372388136552226993954635143472845094375568663722334841676208720674838722967697478026260371194898449351758836187738493995668526346657797240496561236151860080396288886977258325799164404962295673750469223648056311626330918018447282794574835660812106715670312904046886005286391243391489695227786024917657653071184242068831539159680594485727906538961740973501364451492692825581694728729302652523907991466668067871207110966640129592509997890909367253701495284427164725914080815055569115925516678103635839173616782028468837465013663002290686065853223435734472484714073779001472386741744025342824293965853997789459775054100337329354510162094190531479149797441216102801471621080207939231770228027288419388723620030782130943446397560898508627386959305788919746660690882312497240258619150877981496502575370864699325153714038981565788779225597557312630353819729124574610613328662418188983431478912546843411783227669551087921312474553348142603582374067242156650782435643411815182358103125571197247231111794154658750148620527056629793181944052326694244981745083945720785226364087624521970034014197663744471460047810556847034909280398155572607670273378894407801459950980232785042507791849236054480282068137300683668023049272645974369565222344008999038497907360404514633610081940050979840581379874343225554838907547429088291789090577248545195660580913233604829741314235172467943623897266750184008747127533426232507767041349576284025139962326555301723642784264328898883543960234563827466080825216686740724001593717702285332782604482178307988011992024424569339539538440343104538994948346234814504296254550215157835536091196105903448839507983825892102284277718410167999365991510992230881724184285915466612215440026918793033632650589182733716926480640731565584146076728613938160127201757707169954396648536861749586426837165961654860346452868259428314442136716025156445684304690820083653420223258874599255213006307478072524715706675900544155304622727279828439488758698415988132706885985800260339331713569475561783302640990647783745684961724512318055926306818817434115092286910790546682375264278376299576335212371663361235150171716149336918290218454708182212327599733747099238964492450223900671066278104644571264857706727524017924109856033342968410750919267747673476633470881768929470154896806550044011120502619608709280437064834203040271576654786319385200908500802450290607722747663482748554404443940519904796321649997014286903137229712461255457458820905335436308000995781043181114080804054116123042056647216494140668374527432355099746997687823278688202896878423301828439760258110103235221225553710798517227319397447791683500574519855648808063991550629889828361616726907747349837112388082596790263521871713538515600931501226896875269971596681618397773359196704438662087076185147227224969349721739066141352955701543540740366143024717923691111242267584696150500887202295609878731023528420856668382860558496846500737580793510581469990035429094910869424821840958872797345969744079806143713312166849180024637551916752507698014372145323779319780307441659319915263696080207381619582623196190385687027932243377663036715821681056662841214110717135732262554334325385002250824130314650613597417546405789079076848548006002844804521266280456711222066984242957871978506973375354846290913995399306845398274696478272538773008102611847194363369438699875514010773988607761442348748364525220434798467099068760984932366456086475742227365179918669043035999790940962934665876888305044275232579052623595824878875717657556936534988590707167111453642288368655720597805181837988937676166120319345373730597597529033759217265164248245983281674397251144970201407032142964849947811533478753442277406403650020584726767288913603663201926041475617405798383956771441751006221475879740695677939545616991396524162522730410065232149757147619380802377020963673000987607546349922067474140292555958949377749295963640942323392634580383622026320668077277941899603416592528637074709268058077152661634048572607407993308506677604615819967625081764079891677837805291508841151474304894869259725723422543570245185528449611765843126267056213016182831000686060948952495609407812080123080852136353316163616656366216409555347885038412884696140904475287693118372163467858765735523731900733596156213809428111501327914372088683048771158921620197087931665198686755498836945525080559966228033798788140330645591049183251735126015185848780171663415722798642474759056500141072201819002425215737983360650784634932715374119344514104827715110717443056255572138820364372568128559453212854583182852135084974520796107008762071228951231972621721291515311616115685140926798319366027307607339248599134857141588656102942335183851877174036714113578800929183498329989900993634534356645511386662358182706915750592415116244991423950061192092821263190098483187653065996449818749552740907576112695616855602237415580835106434273426356430373024031338419660275962956309542816093781743968502667096552733680973987622476518623476048772115674530947215939422230981390405455141740753866930581747301159933198147679745051374606695758556949484254000877363225626505252641195714258980265127814900129178777737793993202601234346355817313351257834078717818713715090946308578024993442783828585410861765886406037045663992887056600417760471512761360154305340062416157138882835448969176048841379320688434135468356148560066869732336692023847031196439638773466352021596405586471747107857482445567660736752258953122507445293149173212215190414541270306263401187206747858997730938423492160524319079468318085568707909332816085744145353564762607110178345384053471843889508762449398238270452402311080583704995126310904277221055965314900117475636187420999951991509632488540776671064367615277666624895266160596929216905124278486536645764648624332011399709047863736911853548376517611198387746842090667668993614159229633022005076606464608195871279241285293301705756332434532372975512526934527390130436286822276785954631839533929825278692449449014957447280326215472037593344093880670073117577870150796584678209214801887090487126398151823702485161600012684226414625322722861868164055593015257139266526129704506493312548709790151493336234861384855068127354693634681440541271212470026626778515581237296262432564052723875025405192987432946711784277652263528216642075639443531297289008013625921588532902272312316261049280239822391411272464067526174154190687191098380295784697016138541319596775941295352254207035887412013219780268542643824527523488851168971953747296929477804940615886569436187476985477132920018401976015772674566630844883623260742584515560277554696229624318591570447873052126227853223510369920922048397755510366682823571438083734503636404784498795762696474670240292985467138982572655238179979174928613253293856437887234695659811316795351754645555412437018309236644659516628711581082593635313606501615763477583052293998145840887149328855445271202206411726915602592257394052461603958760264756138874676697525755842766234722922846902768932406128424085345762203035552041186144871117865424257036635134992164452022640299728372769304102027313618286281919723158547147109890223644269954435303589846864086891416960783179789525374415679069516905698883572152277091490842591420310954760791393706160520274432894425521724657882254259380978016874646134282497734039835901681728478336590522301864671861976132422635352222654988250061907615733385480521172057796114880983839161352168426999409570852947304186703679694000994078422498662807543463127276021194488470936030460117631736401875314226012493058284917919854422287612846413389870625124562382738746512794048203364535389587450536498058692327673155880964280647661710944930555398055757822666210777251168131590420774482938946353106337774716463748667981478469717898801257086119278507860602827001714283131937947799315108996890969853863968267596993401513373923866023101372795022207695904868579420379587233268207492173078065685863073665283006665178803178872765580543347024107765685952214516482423337325817018284276080224451395658943295773596281193909322146338597195598785496679444457014501249562155008646130824244603335834004333747422146766774191271958138298124179326412663458746652049818540202357741252432809645252602919461258223479655693803427452525297594772927544009914098778174604098210028286078592176118508534691988062547690514840796344633452646592054625275158553686017912135854811652525310235346036536247819147804018117012549675068798567446144027372573702242925826709829555640959752160227836117905049594880058607760147514889773697837823081136620588882639871918784494415798382834529063578265513132918720772026045279295960992442607776711423772078101169497021015211225839972684029399509013311488760627876536072899202342726630076181299236519331882355623252651511882024128537389325671851902664618132229639748827500885940236680292983416852246249559286229253402769138198824972021447738354181063199460278720567658081502666159859323322416076526525585261660619416381318192635738127565020861174265983340942777957608340524123780655984073147924479716191384921880810549143271443362436543415381875628075953325355746675640189689778552048453756325004615264172368892245138499711072590741392200992109937480384636766653159747499988214697217473924267873119900425282034345389865126947185353138908711211693093171627054294450821666116922712392581993276430451292393063925100120327423321308987168581342468471696984294651653006998249562778750235325192586996431050897111670754550734256501725714695435283430366206139549252084660954259589436906903418950169136078179972845270699088133238890712232495677748318961040333049865852852966813900486982401432560490352134886925197115466282194750818115707404263749985910666802180549299718117217946085828595276358461066729462297951005567329265750460085012532778415623974867630465356541936732780253408807274404959462697184078437573328154551670121069450363028668057943218343619351556446140457542347521074468512504328474875748609367152800094457799412831374425501785364675532823177248201108155327411767168004185542363246480779712181520241221507034865715857967396437935207764073692495043200006412234688469229888186660731364440883146589001780782388707797669149244820879759016616452845272123674856307768232958056320564458987066003077466678048835455095598927190522711954764351880855370493652362048162085983282375221526037129636241645943438915290309714150852761261986618589907375778827070966441864807300052692035666572074155898358459880263038064267645027487612174507579044780573484080204024828145848624603241135988349446773534428281763456249871316100116455378668179725934790257066423031000952365096889056208037759913327647262731523441799164737760128077974536122240603677536901318818130506995815264095510248331023725139002739053061910383158450215804993223170774296873805701810785288307910456409552071745397297484762085109710951562552801492544114509306652151397807590493127476753393222468574900475074362592483177439538759066646358371883853990736618138260502073978236162586771656365165020143923791375193285876116568475774071195691844278827658385748460972532677277445001356431777896588241092748743868262977217432342253975504901902492918693146968040435174278241006665544374724960756609264396913765397468575614310375332456891493162828657487432455738765060420991273945132404969026977979007833039681209117442176169999799323887468712005669978758437297032216039090353970972919109160013952223756373205854520503337745494528655213347495915566975192980865055433614247147031364486500768930006704957480324581829458756124156099754651731052319515672205126037388603360513426542031500139691080535517027766191795606678945311898168657705909636096227726576285162560301870346790037734006776695796397852846305634971043763898009393231966325296295116442485995292200606337856616731902504649884514713437407660784366345986942663626724747689017161989892040357115367544017991004463351717528576595415763024650760313515102373523503205165138791140465107510691571541784511806170115488540389569494930805973530419025283288109025143841152848131116577513881687396628416360320777696235975413302419291872514224791682743546363922607174469956319582711971278730275422801730634314659525832892273087874174529425500145008145357310749416636810261045509231773071221656181848573561414047773793336818422049907609279589099222675591672255116689905896254326156772623116826054851139732534789609861327024152302544530442679856566563723745525020187241370653146581330846806864980538242927353072474561120780879013101070466556949040278820576296075545320026634355662982312789520581713665520377677079135449720700460794615778800121312044288913681018945653216552486899957078164729757359755878863938941714655516277112305995187549621964016363131087018774874737134911325847858490603571506206957763230253395553780850841526431241554532892414629773358664897320581890776210817788510857689137210024181560429615787066169663051293549921506725378704608259970390965817601838324415302714636429354532821851270828399133144625911516009038994005873863991850660619244024279933479242028835124601269018727996738078817338347698296543771009243323840111423812403250223129264071483172203967031205642360810988399414201617122128848167263102479759958256905033166621703911488442386829610933092921942747786798092385825263204928068851350189366504281217116065282961082819046751442256039982937510248450245272647188016126565608927739189303126162496505171564720232483694035980450312427240567116714916816104168829580610659724145209371203894727169467792849908778598995026062426040063938086421584244973070195818237366779119678092762232441598802334695290412393890450203567647824964660422553139374871600440362937890371725441885962862742863408926837179669373080040867860958494283705598166506862482860219635874443404015887882958469499739786222979669583792104449620164313145423823421471281812903136817533436813306677377839598278449618243655019953152932155761373648373352092676630244288054140606033880650637399086739565389658064949209664084152829338849831475913219631312393464232868839226130592740166813347211445872813510780876411352238241767416530630205355149628327558946440031549559581405131898291620773632599334114386127509905440318794721581865594058175980228390865492413149505358549984995642513936805780017305337242633441498445088433638077360549684416748038157788317552546262246115552498234990467024446308930637792974648353201822064402854786031866670293274943210261345616947940571425973466354538305478099560102469382066949851080840335302102323997792659706789617962206491718411518913009548863971349099494566885526768803332700255780527852370238832283434479146892817240665147055456791028957606572488711056659412776111590180855914076010618399408121333911152042523253148052922751484915339705825455462870309624633799496932803807761446509721010105044330042717929068936430016899460690963757858357694713135435546331298545009745003802763271796070103363628641099350816308401353215565174730650388725507413220578046478069155026428594973700231760699203485732032669885248983979982768619004432697549021065786530642944649265860586964204752856231644666930848331525551006839028450616121453903148300998931553958328873688039796832149318418047712319010833116163021791202997109262649804886988944991872775959667052638760595505975931408806746105778995313293983241853565366319194498986459603676378299558526997090983416143390076975608693589831825633464083901086934907842529397111951284198442220023527103529701436547096329984313529032423780453520642075615390861314291428008970508097739189444888801129700733589642470992898960114440720170447097687929123886645702185667592821278546579083025002849574162601526341149310186182684831059475598206630228184464680674537050214052704214704833224688172173910009641375784098326053027476648998178867779295887686354391641679828964816745739158684517975691743981878159266281695470509187325859771094661595655685542730579344018261338535992524974631592137549716036052568645025021453036047291452660340383737530454307562323084080252187252321452675082664593811380910748723219902075610269241255472522211111486993059413696670314148804509951250672437670961406065369190913404410775831256443545034619743480577579848912712921051397197793445744588583695750376824138881164928893393454284369075582651526298214177358140822080443582257659427221484543951330529070714798812379120522503226210250820896111519933994589313356509637056529566182692852636048086391387617661293756539650326516219856214708566905268624953761946085677544420214845516964971026063911086473517239531483506595770803684972837877882098405586474360219098583986957215844017368927194570161987690437606414654533477073859768897139660512774942739150304497411402198283451621365881371807381691741304187517617642489517035076818862084830954446510097897655099270007896532360711615375597983987087237406661433583298479329761573180490121610224967466909790839919314455137491706451509928977176514311290337373777846168493424996961845001328525054186114328273046535926522048526870899758936319531222631606016587239903413369292542998862216381874564908986967615421736774794343274184116581470230256494466483832620247707417217409327897108053647726090413710174196042697767434254395043277412723492220388216693616202262668985965796168484369226155717386134693157369294462713091653210324794785932981219933185774891851906594531778200538341701148367553039197676688000532811278098342443628267797135212213125915676872029759748758556962803901279173444922904091396983978125783313240579763549873595875472782858929677703349582512059350657309611933465999619095156800599556902547362819386801236776257093148027513451023426271426310065849739557585964812745133533407419312816598505664846374624036170918041267854038621926839698067819136372703362237243891397975928825463920910042420431501822955039338105431336647443171676720691286049112519563278645863860007969911389710019550572381028838160570283379595671256884281070982965227967670513020872865325361950610396419403615047425720196322563831956026825670096357772107499037985717476468116198312531453378514070087964872978250920581707587466974730323960140786371710346050844559285163755498267635866312502143410634522256339684433173057970065577344732894263773059993724811787000423251955436106112590986898299408488563481643270987066213668349090965786841037766317334644338389627636523728889785100463717233477426773811385525541551269785756282499262773951775395435935441881979562691518053513195096356997231374453479012034071147972658415005562850949679316391991931807189509555054501757644104985468391706047963780216489505495280160461994564462015810948785583362091190765289000295144828170128237627653410399638596495515801166069484982711222457327502195823343539460093450681085272573359380144276630284293989409193227787599738431494488913046843454867475815565508529720864553425915734136460056104311900796890273593472727671109298775374955144862732324488574667151175577368365374163206299501797129364271154323202371767084393677355710279217062485349837904679274460779665836009289950111997968450841889512327439041222616173888802251463032226973974315473491538437547230803048706652743713349469089054956841194151900095970186642253824635312830019706443311932894786342438387796033830629367701667478697167309779740554518741956085116987060898699950789385787299246886971806183047737333828418213478523164681872888621242207960189650623470037802233614548627545728730245060051602777535979046442748470446494689052554197701433370482886935789452178143608908657128146170113808944344763613782354488947882759795029839308224756581074529599407807725023911403778277810924496975575810160373017442379577618215305664478620942228036233386354907014510306204744241412792753636652393651100965834720292844070742659096758619181032262483438081336253525929131845143208504610162884380134200151683810075570454508179920033825929513305620568181980559809959684637805436377686984997332246673337391993713062143581457271478330786032165582397695410512289471868105422930291153583741265134143472457283795790383372153642317827712853766179591077885188804140944698021798830677301109106099503931066880118249527733183803384268077365321463799970931625723734049611263925038533125048833647700089001414624460747330408372196357694577850652868694156219671507870741237487067190380688051047432926441025537991457386852571156398096742833582212627780612716948267849580123468154689050414705405616306846515420846674738457472415373464606118823810573540318295819633537915445549386266349093232024618655564292649921580238455647915235613119557949954772998359328802240639153238920441119674952637707921922973304431003620695510158488918853225237838539235669241481992168246065856073365064429755742435573200342638351671717044244092236814167440027665659213544975627449475507087936279943414454301662329134279309897359533511198709980623911449037302598598210832401299588245554881021330322399115039131880574872408251646675135008568375237331142837630591587292963275998373639110387962108460249415286555240831366175536660424213252484861614065609143751285921778745571508798926411603030664527513295829430135675012732967983898771125966100336735239493234273217311528557023260061061868970047396428718351010032479629976161056930372485190761920345430782453892666218005964040708850475786487235802297408216497035032069016637636924992451325383442763482877856699895697738265805995838092914075604268972135808878889891984434985699971968716890193210471443590115218736683909547550248964757728146305788055250454623146978856091101547968537487213367645657441401328253538690228922174289790776931047001126418859916933422837757865526847299868390486545143937602394379188775187657794993857836969647340070259407750601241484081801924546011769392865335631465338524802463715507735860575427533931883899990262236538420599965088559825531371121095607655783538654960303171008623304591426300026214179564391479531045616651428025368672949083660757253673877700437804645745820451598697741223603482266078900773746902311790508162319410779177238778855652286150328174662583008556294165595854515976846444647738485995867431513932834876630215538938924885875008376454831803148874571850779948022839496564908385052930652219154043803140351074647675172787674090472317693567138057970293414704731806042787143976895077107243085200783720812258521773855876337951938418882771163005936771999018642423550361562835649742178651094037378352716989456081139631799161793436509751292315630134967816214943842294943722307886859289222252242100712521711006401165031000121852670641804369993403587281790740677475731656476422492144877565747850621011057483841642482365143562194979200873679954044730529801751279248382520496111422644186222673423159045176549629683058367447655879843545049155247138702769249468047907708650899568273284840920167572177731811173304241816107078988480334037286951719367131926843071572248541755429255683705831610182568648436682028817229486861714370775577834964339630847721705077918146304555685247453533915075757874352810838999023044997535235914237576463374961568738422181428038919023897609420457844521719899511166011969255171142044072335163556123979470660980090969372021489358273300392488277974498047736891429481614396388589840177515199748998892986408393132373122942655224466134335517794604510382954073766226575146504390343098853172072205401253312261883931433652085762737259088609970468407066608530516289329288022622686111798344094583533261929165093179063650505382912160188696467392834036958450479607130665418627874442516113550754051691790550484868724020827543784435972986419458072290882449967062497834841601603186561377448600911147440776439939405993212325355568779211779159005298569286656483573503229589378350382992975769574244741798147113935841949651064586787313412098790127530697537191552945032825489318334630723933331289858701788725660667439966548201329368731420407539436808973107025495701450144743157357455015901835035231185521109893867897928155614899684535774690263357096089640344468498747122358349985995314490526816378195024619353761272183520073136774797180562448395254273497066234300519915883526752243915451629273571176193139769820017356545318323476363937680205336970241955931629664325157553254984683859453422126900229023826497027588070644676119323943438672308840137822420433518679511183149487422019771350006038119656201453750011553100509034005569185371756216201715195712965442650415740338403360704311471958387948719364906217334629856018800932342438334161384703758051257451419642559760322802113920005260437396328602205172329418952200318284113187020533841721661761371589651429254051520086398013139934370407878905024335118473918054193181663834399566328427792463299106458781063699779604212703441715539711247150614719110157976481662814661392130571788157287076529814636598133803959407914809095455799607275734730936460410285403238873727181296465957575762103642415190357225069936022106080097316364412059457730595903286675729834564876274947815380637625582866523865011152796701821721819032358568540597863811763857212384382949469527907963372969607911844330360958057634591424404460471189059202490850964690324911433625066736892242424793395188319148303789213841273451799129756806364130153662442019232815053580400222198819736072933211355033672021605840493218917369357834138814337006174053743768714254210121384455128327651686514872842748931621561956299442643763531407770149445944708100829479772702289875524376963827504662070651278144241002546186797894232421236413657605888283927649053014352118896794436460789512382781098838236762396502290112728661849973012454584915489204560894409835652540342680273048857009563036452393693413868416654290404476041570289745927229045120569197736611893736023608381024602887244102457490972500215946603707694262978305208874354798806926925434588623545843212443932770576628514974397328505132071951063007921326336309407809108380591787058727948347922358602958480487745821337774887622486305293669795371794075737311918756028236876348643982103448396725267744664374296898357998223200664500659996947235569359018513988518778100716014798220948586937519544165486848040151047141576277825013111532959336847734713776517344645623489205794706058058692917595192063410421503828908990277193794161330584648229763959704082510445007061633962905784771426406457433674391030703806553097443298681901346135674101321286695599076090001479365723370591057625094692149888644429991371243740129883702471537953366043774861154316823604929664858232325011860026205201661467860482673354474639884965149306706486315523195659477958340627618371129408759723563423112622296471786873369543598445272312035065535089713530605573420004786633028220584838657080145889352968051744220617742517480315011865790555646584634221249376626247669332979627447827832473487770516686847511446637280607798821994308289229676961274072289584523576506921614311712153271188387776655044360251961957227358585569607871970195189239209742839735863864721889104353025399657015218507978776214434560503163211879461832113633107189990999740061527586993266926308071277513343693219000293905856472382729411737820368795720316863534188549837422288219103599228120984209361557393163897002744143405125052358502017720747185189470566211339241939926447070416579881838424396815071698397099890936086217769459767554690094819357503675921082283240297025128450741975084081684054628641218542275708331443990564983181382576339325549124544170844750994728668617444785738925932436150784140075093380599624089664397973403930850420318613493553016135550239697679157638576515517105770451214727891754643519159796820146232773824299625205209148178440151060467530634524687393186236237495975075669064496732840055627400986308040774688688789003584888078145579159304411110016328056404642510686684881718807365243756618619945492025088509756031316828199515105118355660703553979917455201860166925353332820288682974313390990366298495253586096866381641405388858920048957748182209590483706060482240605047075558529312041680160028436011102787450635026325030521234930271361343393318830121416552406503037173035724824188239842210220911602235263369758764216097839507900652433355791274563418397167912795009993225057226398605036515563580588566744135930882856629441579020612443861014533724067674742429818389974926552739036669457795090869779168265644112490503291174385387405295448369727987886673436838445862609915497174546676134136941961535087030199687920963008937587591252837106219253948255999763781248075176714355492309699173982261504889770414666258208382026819245909144726247936573670420766347854475275293048093791320605770562595022207158276179528576730216378508643279066212411492668316165152734249181855108995642661452180783491700548256758174062167928612515630882277525919535891114471936223715466090272062269767596780169252480527587901513225387097121768441271579713143080610106267379706655939709018327934101200618703311965509490948799671153207105206974650907943127780434868644130356093989591910533330825903015727679916808180922276335345144031520364587321441934396242211575133611214562773244613401073205410328215486749740865187516734461635385916938580315649216488106442070651342861780562766424369300708013908559930546957814936058128232448593755160769190127311880027656596568849907322571117656987686619032542018246910111496882130720454877120232875254711596388377706184282888297818481013426968388447153697140616650296930593886757665173112692488941445943239212574288630077722679549737075414943115521657938960252500699926470122649558504614124502371578469588514593447124939294423831759526325342215190999414335236712666238807992600578954639584452430669021855563914177135725547260377329704877777670067982606063935643150389733127320319178974506457161705891006464808343738285893350869348235542077112398299469660945468818530670482265087683487825419562947461267323118199894249082521265332450346428512332606410582993118086633883246986969461395474942622218484044863392936581872946011187222759418503935471612583761894432671144061722135248466287785190227405069416925228801851998854496682967610517973393962585902503769591141505171706114056848633623542551312763174975450164229358898676631714389885569238881946119179508489206627725159699741856383034320464920712233033187897048491708272295176928661543305033368019359842758457565162279217940706259785364673640877418174269074814434914023305385088612056720282423931625615691926228288203130226112647569730347557169462659062947572925222294170892412599835083339362319654717969682830172134515052681513798411357583831113818867538287835490823981628002775282292663569648289308487512983585883923093775101558826125772198012788468288594206313217810635415224790485958144445183025074120105371938665531955702882384331434420501560241428411259957266614898026396049738803895880411947920776890471290027008802841779366265551825013135068302666146499850214595107824132807753909115468041132649347571225971776676807037955338756966341783220772295018250124558443850821753439267878474730388066634456232847677501152188418423762855821842012591708623043698902584229477087213913615941578852083431600756744768634303760760549260555591725526812521839995793433312490026944990137585470694642879332566285532773401489624994308265783190837618490217161708534096642561902871778327398841256918055940412079183951026364963038646790401157611462014997990331333062302537124554416678689216803743989814984496988445131308727397003798225770254066550154536346938950376399224281553362354303084871854484019719362811137137796930086004178175219546407844714091311184176832236847410721783503168552696747040287386670011663505202080749080863125255471689107171747383428703455055458303928251205303527469636670624592778163534627739275915340109900628205164377175228170830743138335566932936698574054841611071239304811020710772708013158676590885379235204647699086166544531829416218433517097935704790553964379473024121417537979767799167422602083216581276374981650522388988677020740813317336138513865479736787351834065825593964162240165548065994768087926055576463637209971160796326031863744873862257978601242909520879992758596505795344672449988509379637067626571645563635946756622084784726363261248548848760689634669485255014489222476674223760906449244895525520139965669906229618675375928946705519125120595956264719992734586165669655165904782950161968284780628879650054891340154081493285021791428241940233846570551513428340667383929865843324101293732729757700212124438518196954394774093789717449046533068025209687835671302050774563912478599922685248038753381662671999012919892385193798948949384971380839476797175290075566526924343875274872139740874400944306426169448686140997637696879678710965893161273580913955012071964681776414057224217549630245559298672631411885919967099479318907486612480254444164048304885928395335964668206299394044073777331642960903317972845388705894458122018105279262296615810984795558843387461714840203060757795398945911227649943434251791866036956751779451138362291378134499488460777421860688038884423939643997936435984299400912346020479479822028925824906824615355161193579410340915202616112374586596798682953469099917481374254480404653725198521690666777651634705190237394886609489513545815163720374322529663738067307053603997345655257438028901608328486777495035167436372224613048426241409623627406133901716436882563348182966377374593703605857977486573932623399137398873389485051168539411751680661878505413766642349446435282085396701738784163837246263204280616356404427562000634667868282082974527269430550761080659147799914255510598351335440759789215070172427555147603670450051223812702951049839003447145083073040350740553052144453568978978997518318630020259669241153455234803533463132229324935488673573869620878782452229100457442987520211020787794497408545958494102985144273477916556313249704357025622750354172084889497406458509961078922490990476370319617289103098868982509941109305221159226074137397899535805041276323391805387209142822305247440430265632582264921836514266207190626153487507770478351666894599050709051192629386124807051183565796521387820487793846503414151494585482251913523218474685266737969239659533396433333612598455691303537729888728626650040118691719187420686782312480311452722821588891915349402634860938077537542421896228413236226997202909755317569674100304048712716027944989782521834827084918079079444762894501994044867556227512070750441946568271713908664502368093451686842622782074138371475312167898224086351489311249005130657349409312563975056180105632500461603737189647639137037239502489332801334226046727654234111629298973165066161772829106673928541130120592676776051464205608181042262261540590439183666142367719228527973197573208152879258006008077180301535777730253046164328752503581768998797410487434781908821745541067554434552181361110409152454784447396035637659011266287953173945189484370674726689083347495894597673521793779545041561446795110700501397347316590428334037752334216958475026229621775221401147884247190098267533093261408466357401219569512870295522565003676563236636771406183903374509944332933999038527166876572728156897866681124030696026453468590073931149849891078700366228861657090657302072736816154936494075015044767091430233133629564176878693770340322957725268771893647323438520599120063052394665664736136075720293761420854923498235332915866612584802542912546213452070390070184605617531392474328055422959469098693542391207054922050393605084927306728535605008563440797807670953889743294513275364987385849896275474529349562013534358362949590610697611112717146202306341035733350764871382984085405397873090003805080839114026074520680284948107081464682564449326984131708229547165066622032992119325515721403621751282585608464822564414540465711086664367391159156960422436287165499925589230622911787456207163543316176695792617112665122496298845209200919338396852674061526804718441070882461621449040093485880163112496401130997414490017364908494615179976231969697637018683459500725094914258798884556316916510538146100855416286327898125646930932063099965040733249892787389308016493880700268740529851985334219992441568076336679181850506677820623027667017855577242263143658334487726852827894128010873586693165127377417025362619206839150825623395975890790481484975679161867651858568334828337400555558965037944871792827605620691008725935307602246198989480149869808777840582483216332936541086965413036860489336205487579733891794515675670317449069688368924899038669949687932754221968927484342907492735151650900163512319444031641617652539153490068701091395061529484324386487378446428543877384365502333041903666778233585441586989350828844002730710344572376161461523099902019799629367337011280467942982202633250031325306401142641826950820564736908153369872333897888590918423402736668823157444096432803956307982270570531920164946228718584179867976651601309830941416455275057024760254847547451246525343920389208864232758111660191790484585999441604280941685501330053579291141376380987653046176011754705442261187646542697265647885907149525858822374383870104254607316438397179864611513101853088483509724000457301720708998926774918406183770376868057455885003985492474157027893177031453556608151517692751059762594887708539187590435723306792725453372409069086740528801656206856819191264584822270451914986192513175366345295496615916222748484897718090444290792742537902245453101995538340775470610861802691786964228758221430183248631394301958548390859708437003357703338373082656587086754120797740703448016557325928887965226365553486191891017798333115160048917109092651099269859524976394119601714216758456696621960913442892947349177544037273192364938309557291891763481866895349772411309589295569745518899757900112623157564813065879398595119037817692848676680290208259237145992749093765345714055723438128951536046539871498327000521803731526038364166707450074405778640489831994862834274671540952716603010927727451063220125053605041490531916637420980600095127605261770956642812029142420650170111114432010979030680850959757782717501289546332661717048679111113394262695839285689229901840929019151431810334123672005140766384913777408340328365832972077885432016359338220578550883857582415687603788883156211873787015062487440180556465733736867104283368031180777190072489459277900332739153215971904454627739675227164697666345763288411721565957313512014571815156491195565052033018809014472074871414427358072587904113014899997630147811754048680514366157018912228761712327147346557089056979010435399032502297071973818342295447740451927109604884404789368821751857834242139104420962610483760836187858561022662175206982924898296398643236818761556741435602744528829357469985656894330800823638899170532787995434789336610105685344927279833792497338620895069383046847190424661123061504331297536113861328187024585068930511723720177326591451823399892375391299356561245264865152140892775975804525354750954762009894092511517438458634496874373684512394400842019869484084155234948481956520305172533851054210179011967123917725992518336237911638087578372059768069325028775853073456041670394216754318192312479827391016569456549433042100813795454939929875788075491856651562039924884828756243495413565973275996560346600610728084104713818225975730359459227704600391615396299599946112560127453163897937001509781775337670670696948554258340771487072956867933507091092606526812009652363940915250959883861936122674666029948479060511983388787532467529961410797817838946708987177581749299081186441436387470416585265087165089769326456664938071670072075836425292194288822411083803147745862660495451349326052501180937766254089714730445852760756267589676037503794605762831339353070943582860505933023617800335069941200230231131886343861452079032571178901738427169528243041626733313581462271183274003254971714477113702450359092530534407463311286786405887875018095252449224393324682726027380030909841427865001107648125585598109435900834156745683712115300733730671827553599009176899156864176137136785270935815252900710034225820581125247288654007403365144823171684032651660942275380052184810694671966807706063216325224260601008974058313604901033031747226501944290493631257809353259013152452130855177650474738743916525730081071912039999113660148640788623752030866405550956215660214626095642233298963669494534211418527921799346891578526509359601078141982850772089951685591587705307927893704634306706228208854575098813519111038649848276486111311929824804747703516682960505494951170404344051930660374297117323416109456233877082142995707861864172228926895336431352350377852351173373193769297928638808740307516916524651766688251237579360463157330366351147703962849231421210701392485711727885162186351489458292373434834697389707203632288987095018480858161090168384295098520715366679947110722323682672739070235961467199542248039248345538677303686836436344862276500717138602495016966872058004974498403093931456353234717243029193241263945465516844601734992194596472355299519298427970255989181659593238272364282593477165643007102680147494568501317519852833244080070794070376675548264150244189705888300397923952661876813358862942833580410920317204276262019193055450775413742067418643204496996716909110881532493123752246930677678027283651918681263890904697439098902502596283345663168879084992356734591787736052540414256870505302264981751454430149637329569391774994301424126797966168135296154333540099133034953616172938185014987316037195771385560169887775628656969410213138658137150129449012375080894224791318478150707559546215677596010837030155303034942477814144299920184984039563691060472692198299160219076160958077259409560586146043566509262155471804281289968069744001368262271234614074315150193568599605017819214850207156511990288882716787982460961935728972409789352921530672159316279224399762884692128763067049682038511165414942493769393631805954379352797584280128129476621078515783029706199168563041619052678389276111666881490297570201980780152019808470180273065472375064344138609722836499296717262558557963778371275773338578783608971537641380601428281693713583237237334172694791801559975239193452649549072631306369496697254497607535712590967550616625865417866156101899320709120294757821740913442349952378178021230908186436563067952057243553006568375434442349170312179554156528413470270876328602052628538321699600086600897808392066692136821070935234160504904071806275310202624647803828097493687725919866869703319343822438977419719917791769858249404097914923309936315674902197893509874305638334402670550445087949861747256183618320281315400265426224599555870588460962759958607120912290253224820592887441890121682099134278609038615155489749425561587049735150838287099206601191069449471630000822528871479961482062758502492736163079280800853094996830151895155291268808361467892781117261398964904295302660845398511317237214491650588463687956739362985991579085016696989654663739088806192229690341786088342329953618633123966365278344561702149929693361120489099928791712472921402108722247573136832906105386686439992620887834714352218677547983232168666164704390647739905327287878104008499435326544531255355532087176615521441818042135490022156471850484760415746647589607179280353352216376844219111938475348213032522840353181859824679247111851689758939757493433322943032012367522912020200348778372938046650520707656209369400988673394944499491056421306943110792730345481375019764936064477514069671355761056079067263554990588263817124174706438474281796373835859539919136182240158513543420815646561812426699392557924188742704883120441362641296507116421664202679326910618221174142113214192048993430707164539862139298088233261362894331149656989831951974784598586923276799954950347284812541290015002570918134915410229368702135642468803638476717488230057302028576487821325345245607800334564330192027331847633560123726988360469692167722538739686155630991339995453896704367170632360676718928633965525868782891954514766456117209015004346618801418086495403489664498954524121906071416317904636778313077947492875756531943532217261217248965893980603835596183998029034150749972900053437622499471708447457608051482729709955439459297273427433342486552195537157507049212124204520683875839352392897360037504636835602998809245569301466836384501229885938503316773516303342485345226822070187467652036592304658038598133683082649138489659632189755772527392994512464517582492500660349016861922903166873910909735884426007088863820381403356469850833119396713622881412626534514091701120593669446335662333921147791879099463725757153471532523964674806502724121064543885945984543591903685034644344537953551130663723428131466048973502483150824976831392891667885502193735103005173011260222926299605901506985498977020735166460658877219191295893100572309861113107455092781137416245910969093737052405495256970114770366039254917309267683087960893480057876023569519861597826585720415494189900063903918893653733908122123133421381378158366698309572452099456582411048764825105469551961477610756684723586151912854252546388937672152228180933166575710174214118098687573247321177274693365899752501844604822366890701171398297626471037415318718631232238725219417530920530278837143329867535136782928414254078401584858506917679902051994794795185459928391552321343420754575431609149616375421939425889429961946266098669201191349864680712864224156025777910537660267728281628207870764624679254304912441146013477322036457264719926850392745609364937437367613988371522881341188812405755220424438939431231777999518271336164418169082757562590082330176721716397499713535495098414260656000102000082680331605655182967381547496085891104230707232296087470370494002510995870667924067988881641407515230881578223013697369936818025246392880285483676910786479487970336305080439586841033844175039515441145813522330644465279425214954614997410091454398923509247860591984513438770245171022278548027749873986983575123829137806760232280518844670265425681750820188280778975196916249126964271142646550044954556187015982890938691794646990451288329666943660946444921207389190405469988533384901159627402575073463310941608182144283600554286321431871076482365293191190251962291927071639119303431703116833943499995783312340621571016697771259493741631060442284629979093637720118494037700776312579353924725946607120158946891939911428783300890130686933935513323309971493749231050225327273182194926126458073705908674285590945565235374609503159814734641970594378400292368449630688601828436222282046591270677431190733227371070769034893466377068788533912259543293739188535643602838243701649908579697225823192553257227172015698728012051835320859788106881742164416233549860900527211711518918188858288565790470621886590304594154039380469085297593908210956766157742196714002447436728493392798433002086021552638882081504414235653485657718953667143307514056981770368721024487844162877857221444049338680357253804403432456467063216713352636492653421477909690737740346791379440698954333162680344642617470275109640989188531972411996114903126466646807134577630862615426403727805763407290818168925060621725037851062648253450012671369993430675188261943666193817916448454666535743921139600084789895848464943421273624693930180930374519298907279404443649608966516502271429147813621622621015494934664342297859201152331463360865506067687300954477395413057594174843105155081197344126684443311479858133480239923166226194783337905111506156729647706651210023967707076160003443174937887543923170946507399254674727635079579240376919399661833533463070612079777626771700153752136301575827977931046496803995779172039330724701406533522379357181619612765719346395866905117808382783565898624088178919948119112036973793166267645344298981685996161061160946783301515654740017257820161918312641956303310878220748621857319170603668162746414061345056632854379384087978494645144812613691203376654872424914356018576879185939402047009976915394805977282457894649580403625841752234746262125338223741145431900212528861279981284500055134878537145347067793607675844035237095645696451232994136952106565921062672673343629213416492501029924138957583628689993257941867690041437084963675151106812774588090829065374800256706682026280249578885000022480883333727065425654558359113837319449722420788545260373243332081287413717697233102993653536494566612294120738783711110689743726479440817440831051291497434353677727870368388573266421816122149151149663483879190856836370926863687277841988899811707664273653630565005058363599103305247310490730336616696042062376331048150073559737435213112926417585277531669360330355307586993338182012375978302266508294747579047818725310990447225090232208322407375722194872827840594070499939572156925918654149062444860649514488189547042579750079397015744632465486373279546513641217825972584720496592557618276400206401875372706564101765804763726442815287220912943175791866071983417117898406617971556057406218196157083483313565286215020147607464285978268232472411809313674242134194658987322006952010208068946076373146398546653625078840133403889523600527830191934065380587633563188213171510171726017542226708833061519769526741079322992392902178517309522728038408603996522466510214980703459140225943196522944772558434644301820868999525440031974498131834282621515010457077837659047154157900084352171743381438630058862329817790059806670429428917538721649640096261015485836741054055854867376516724923842665210385793385692467015913495897632733659617341731539472540444001196646105402220921617593374247912994365018117052567405953019528200552876549025861360027813641619242896096751309668456613788370753032096782652964944501026597447340955847390168571376850060324014464960827162908064766562785085061917971993944165876806592773523280624309659536229124662861151271199113824981313176233335015261306869913913405684293490652445064326340337392823785264099744531463700070449740629569804007998717042872884940190521830499113747733460204149180352946546014511534240600544138916526937472248463155481603080233357253834606335978840338134690707512319857578230283037334136820102074921617528827636985542173139559710114218531181007990067181367416767131020559279924887166693507311356879943402112444641690003819543820258595856289316998817301808031310139978631410928489982527585904272407099877066379914734136866301519349384699851598978116500833797857071921741431810898571938995120004596761351961652828008341340843312367218718914381397014900716812936883162333356376540926114473423784641863994718533444251496002571366460751343556612229732848142637132999407199998610439027541498589106810323226511580036959924031121954221667006157153629993580469930207550842984130602856305563212859543444116978524168059272126154308338822074039687510753605652418297264180348347205342731608588406538877929700774403697952705399609402299117777441260151997940314339127483093957787162358129830022618141188377846262830749700086959126160310955472220983560062401573512015764654795503739675092018667494036681072875545634075762981546669531824583825431130258758880594954354769674878017624946659095396570769923616663862549118428818498464428321036036032387714939643211467506667829262337175354416071939147829344311974124234421747002419842357189062721330504338469933464677192215150831932637662984395134611507790307083179131349996247378595345521732542002014276332878147095784967056736462940013034695600569232266386817171258730810457055953520106834073076869203151770945316643641766072913844342014662758991493762500778799504089471997867510047500302304387362412671836694021447437451462119033078665290083313255682914143773289801288739874050113341969621865384762210853759780233903506018346236851104781962814074113023927077484924744404546958253895491338672288503305754147552351475046185893908783035091603726084492736713383369351976900266310178018501707151396661276579847066345265004549858224965148307999158054012306248837412360324936790500236959888050584247356911160393229140925530194058307769358461071003384978435293741797457613571403329817059992610950306421854374725882648360944241908006668004978704277797326503235101607387039832499538106263669198921860666636599015834972485031808404318615592707436979177974382427054059711240112096812124578247140730605967466636323727012199271137469383701550682363871841641957555474720710932748745163337986692785441032779462436189270510095006190477310811263138001042670503565772012351216414228103939187937363313019112524644443776013298032213010156838441806260920945890527272442467149987648791263914297403205613648640215779526123185225850810532308001480997716900896958025436090766968242013586297486014769304510007022584532159649236714580722973184830247062127456135543944124147704552134110302279147757466784678870396527089816879126741872198513099098616858130641264231952608988766508484456004793502834050867885959326154869559977011606398433029430311753534287210600606163127630619024886801753930066991158351626921049962760544242372356508523478190932607894837942333951221612861126385462527493440333060234624291550096138016990655779602762701451311274475326211280297256368099767978778120371778803478841341964945348394589106239224989303147546645530396469457339924291235976245451746682131444132682413484567022443277591509305208137782381750524312217027939502662772652253385239758934109605415293320829322921861184689822877261417038845988594709398063472710807173482581673087800969811922523050958002723001413107017268720923410818871786344187824948789329442701710271775710029272173188986511679410607134731608558983697490722419939919884825289343750181522563211711919978751289085611793787577112548236075178834446395265999142110761770901310736255446083330708194700184101923566685777453455786358119569159585110318217727819000143037433069609471456776667786720009411182199287986284025207177705598602932553358456275755017227532138808220485921270581480204650604801060609911086548100054234816021546978474753946557269396479374271569287729344508731222137063848050400023459877318719860193057021864232430241594442049558946855577796405412990902082247393019716484357104710721708288770624010211191744412946084279799775768941048530461071240306530745979712248817208843218717595202398261822576566377706914254400515062311509987171820042724294009941024157108208215443623011193092476459888198849606590064830443062857101108880915162911150180406540382800132569747205203097210013868744461226008458872956384668042281375859254828131511992525370936738722130580933802532693528289960766748253338297358437368239716268006699680073395051776316146069974896152265154014700478674135752024665014249920977988426327031415051878142788441100208715615153502329697723884513237622908284666375228451819827406503134203030093535778872063447193706585209171442053768293720226668145658138892803706045089366437235998427612915898448751959487812537772844361197675529465535838130016911749568234681167145470645487832837704545890119404303406623991067303913389173629197589859890385907584321294488754123676162593419892897388899753813211993415261195304475974062503344682051857408983893223009494643131485203036156512865068325514834343409434995567416516466808389159325485030204724321815611828777394760180963302783384102415806088928700015840707889602386035561014565031390959745678571868817498964111356318098632204886967967801652804476727432527881439141972397715682235320596945203130169738711631344965922720800126919859676778802163873469545702785927787271441787448253979693483480073274547022813304937596764454134525540359659131388265082703579167616398091954420722210267416421944109725239159855420271044892522778770900082605550023104766122754100210347328034646151314367879463063034961512765959958636899316073924189099646788749180802300136805967117997217673825288184850795822616866690949780776433116237194421486382865526665594381704119903010483891986715147721123638044514679944300321972769292005481754050780198608053912089875930154104991821468047416586096837335872340008762650185909070488995004293300651602997834352104946801372854089644044267669146855466223411872377768820516783593236686944656907320268663486182900622022241967841897755859481573046926878368258462788300424596803988131983346434326902020165936625780704248601766696113206561310580689086716834526102943187397498995609392007348916212551167834377865245767155707941328631282062132624116469761727625101443897328068963102764616320138355557533371134723977566994916062403864699416614953331061568957667893745593060069856230885071426194451188965394577468309895652570247843509450887827215155681036072884167677916806856131204444735267320732599303005075520534162132080640854615222671363934084680840692338399481956967268941813758712863538741891040316588498577667304002640237318872741633071458138690548973151777782197370036756167680944488803186037091500748780684849746427477847982688231129709147650756554313974797649404964738698476001170297578811800080657034854642122547013787263394290830670987829301097654796082013639444675378604189768438703461654852511192779024665011539274819723755734599905148840821795589324352872938454594537091448867021212273681355277776902630740703844369347746843917801331224550926773552180175629818098482758422019383445086389149070891919198823951880684577181564862438773448034157872869724544074524154981174717871973589718653044167063811046457954529068192813434947682156102836287471227510959233067731892026838022252244752796767128394889023764768315472623760916414989981490565390801258983023583498081359487049125370674752292223950147475693148150077306501843965086613195632400625097425025870727992424496334778785506272281174590694460253401869735457982028152923299661103558018031560749029467654238099137614702648205972684960324768253113779056921943348607116191458326465860222742787370332008123238460351343934742684935660676285256669313639538889560348223428815391140891705236692957183058170723725076498670979880453752013200473048188176629725631509529306017821607356637552214297311604836731159188200005670658841822168573988356473381908444013975147171059653455543108078186439887378379241641691216181473838013740627898090408414960432682945391739152448924377636081864180925677775809196102484179315579634227773590528554196631258561801942525956805031014040396860632851097880013740206084742129975123952815153899222988514648933189066591344483998580526789917487587688108198672278243290917566052153805597290057375497140376846134734786869430699090499323564838763283340332725270937049584368446115481619255672818550107222404562416345887862554601524188245779640366689264155489566892439954576087492669115554680079107063446391918171232143832736436270705765080765828524115275455100493560895671223479166519746660600792776425945205634717183444034256861534412375951128937631843521871852774916847518528552314394998343729550999076083537453773347069861998279567653251877150966194556978592246095596265786604983372957952425485937927167623551182308922195876265747058195293621673965563105787042108695224067725046360721984883212550620906250375172879020220571404178798940128922092322943214100392797871391292139560481895725463245851845634984091877833955661986255385935512067513093207963614935190180120686842648455613788110043550597256943958954572529184074073490087319733660809045032086843880338919643703554993898463159565438724998197763645937449751880683702742285903270440688761064806227535290354842292526015645781042858353315582350787507372623460323999729678042667792348085518050804632859443779889677796749345228730734933346323425856987381242901990592911831047979003394776528614957961779058123055306455148653653619635982023524566360132981410804142271961290364070311524349226279304817431214059767679064296963155389997266133609460184247787941406800504790008343255721071646338746762159067420011504509346334600466725252395359164334242280317436887299040309536838199609855640585469421650989950979802139918100609624141420832424026187815835928416419043400540335077459676431016585245709563576560331125461191163498863989186515331279282190548273683113020359162691559929299780334164461788591106512247267105470508809195813869998786479693000052635597157924744523341864633894844437238148227857106945796273066969829444873460934985797175425240551279903228611702811496719075429432808116404783986404799500968320750508604720241586260188806215374954397401131283021697771172617094073076472378867385966516833551218181935664986069088847395191602308784792208773447736490109158539231273528640278732804910585056410040252289873778766853756754630943573741499153671220908734825923864386156465261167255829657573312513260325775824090687216706223633692528205866892873539192873009716179291860244264596350343507820779340630850666229329346594076323427825782403780892415946377268114044908137047651217403819061795061685994135331267633943914293073518366433614899223501223296759773078312295061738483210594160408733320587289808069278009132448055322696624191261481766598146056943093282863709261417686107869629539376085162599780670921802119527420019617498815961779186656596240538292845619560675805396587770853828790897269078593846337084039035958971937625633555745660564947855005949702680600387415428958966481652335442218908101041196693907651460437854526020829870877317729223886238126918446263776523465652774140532224517667888118984959566997690214058669913087334271161320619634645952343443416845314131915732699373814039385691312973777846700386067442335826531632145909649625973824462256423219910197539109355943856821451067237720694601117513996488203355912156138078628765920550713471756246734602570716847455590880567753147865197936326370167916030203333294731959710717264291160096192854475068674620769578546538400073069147670564008766380073092905047595462459305169000418777078837540157820766179762380529745736502226237719192519863810005006052444876081725387817731725783796862932140238185912556751337874001857413640820795612333766719683913511313222488487594950728205976930373725153516354889888845363754737245592457644968858389383205513447039818990550685267052074558840179580326210221306193295332130298505576821634093905239684701915344646715392829919597853571497444823371525576776820784254151145514394581141974904619387990375950986244547368957633720983263404159746671762032306584308957756806564379826261435560605857852173542833527064251454837983973584215752440407247929063954488428213041011892694982480675197278416883667372589523455706080588431021322660549597867431813380425810372601703608018317359431014335178352592834639704166340371416609836066054300378369486323305842447168448637554802211391685408531157364465377724708850483855205179181913296196470263542266612402675634323536424766159126180101828158139693504871320673181933506461324705244613005175619885502802423930426415128078851034354229422318947746972281882619462971938595115611050627705080743953551493930918785999987717792331438093110309315267548857524827680842237397941833793361074850513041733973352689502977101459208250762226170215459449125844759988787505722640649103488695665483782180190988544216223132533195665203174975780450731808721881199866757660220244196915164078263467413222562631154315302523302884945203782323520737891779214027866346268752562122724169359453018684375947070325424799445819761456151178129775272384944444051343841773588608374096388014596443884395855972878607214381926211695330184803065666796511614997762330103524882323960847641705237147336573311979515366811940807465379406147223590520455450086172095162503954930586467059603577046891833798930528225319319342508919325001737057897539421222948112946206294432839216964528013413920031221065025280839373212170562023211785857264901461136460164070274929513535075100344962602733596789672235401291643144957278899069729486030142370367059441014728500070459048129309599701901134297749713418920379388910628036220728014427057725348642288131242753721958161169255580096096135112453384163977670068306695423726366373632749572210303854217596330380907925164658372791520667201332534351203462485814368881622518454357000958522087131002029476169358836208816231134873779218014543503662417007170232511480941174784166011470028472311186192404987133658369760210305343807288750245021780878057090447040900652002652291816943100493217147819057020059861493075373766074479488435513575297742250527004569965555858094784373265301096311263683717970974647870032453218431472094242968972645835860893087957270977049616742157319622256445482419068925667377404725633882663942242708872779566259792267515212315852174707521187953872111356608198727848486071789502176887768163133933151635986619145901747184418729642339262585769461883556253053743143924753051191722083906660738682143161705785911927662602561763521654054786248436683065289720634988167247570486495441236606988610008168574310010061766367740262579855129897831857909751113893004140736925869664842805731595661895380421171997450449032487986581954782834787739960312966740800190395453261177876922211609780864258875873802645869891509177140792255752917825184375413361526492516618435550176856205714150930442209336701084499507404625953563472285065338948431789152325876862936477207023604690136291215250448729804095154869959676842835920481222901008511299357879775796887404763440537319632753026951208122799855795463910628585671983086236328329595253958744691198334911058058261896060521191773782683876661145496975470028187001549631973697798465516226887321270535529628160761020309062181543597815230365778277561953515847129933031322194441147970156423391896278496946150733416938715154722061627964824947052358225271965924835395091214478502366945147534608709019871100365708336225866940713070837920677571397181111189773249990167764278054435459441284381936207462902978142887257493141236797796012075030924209903889632348129971103713158226700239944777425867712921928075849335757239688032288138856066531046863277582719552417103770959435641958660231201616295335317907822966081399554276104457154302549366775973042585898073113560424195183098069730900105337916158794150591760603853240618513395020282372492734401352813780263982580654873980196610881377991915633791448501012671187001436054012520382124630630929606311125173952096036636338968493925328130506480899508838664129318213431856553197723025088319997958308388821623078344292901872966358333222762061038294490279772820974655746324907282531863344779071033992144653173419359736293054844954232069747112119119311791163995074516841483526654667409495332810465854382638944957401847025081946104988347389992392593353311466497707691882074529027371289470439724857831493468842559071011739322949952469854493026719995637941684387002672519820310232122554522624782978582878174326599826899063329038124708712463205156725450467865215383012324883671770995621147384788338580881735358674309872100055558531529457740297555554703789736091823742918285297718122881554880159510237825136079417095991687117877741260979231522161405580146803439114900880071386471117974439519601961335937086063972425741270405301572592465133742080586241801791422591581468964557471831449488035257406891571225610039908602719047222548264391239948772927526244517822124298492528358032774738530440921712470217832114657565090694208697371207364089915614697271516168935362850606140368066807368723902339121293812534627622689872028804840381487015895891400338402570721173385219688469042061123372462459963551779928021030601825288482505944221191375150542882727736933927588184825888699898337781618252591159339043887902067041333352223263185665611684219602307740660925529716321392094756026541890029843022452445935116924141361555732752335950554402067954240633155470320912997461352040294019562498122048737349488640719850739852052875464416387895989766723716719738043795184661211474270635513695619134346352407203073336250269067864399114696370417409102747095945941348241170260090550878349494066536839582181622771217697884616789812298620000463552738169573233525088135136084586202397737461836157731824249366395733479960900951187109797217626855146245631085090581049867215112554494399593899769736911630310427019007062484966335415170189583632762970178188568574891126606056756517132733745500558653714479539089641840450512289918342823510930412322844173833167144269033237962566745715881088426470949441828048197837568642210910746168269732730020843724036295056678500388446180168286425734864319245152060307267799147729967440860188887075779276734207304080995934043361908204608251587749199507872073362385019734000227015169648884072901554151741669736562899820556572816968024664877809445694806994028506450395309380604774742061449549993665542233404590956453638797912039706836659437665771557513916876351012335717198318338002337369717261494533988940979379670463675213341802616042675677311010645865736619734620515809202159513071754899957621779519875570374400864300007709226496803117740193228923862045705226862982705620972368999359259489731230195183064257704054643240096069371930975616281078895234370343741467712692411745387179729034776167478403240505900209168971555375364724710806653106898804487453872613052421944774388890311653341825548312003754346545753361160594679475648795672501197814181777032170552016428093487411827339854799356781864233533299863609772465410786657803222556712200896175238338032523433863373430115425444210254335441786008341743745547576431418964286569850963544171353184362713810438777748996021530761204572204460975003499323926677433804903719439156408915685600160533700789060452099038649609460769591731386382471389620829552100767622060142470405685999150313115623636344620937566709448890473646257089889411308865637572525746183749120520543747848784976057717036774793901178367340303544486675619965627511382986543483181616575070152345732124647081306524946531413390602651447755369127179709090922378827349389806627304843685530537987862291944911099362439909189417340185387362553085885419425795844209191989393079868412598112546719178741660050240190605426737674984622239871566797106682965384089970403241862847978612830431784771731859625523135033200474598734922720138439472814913781796671789743664533852997176761015083087671553160702179121920522691065507129075324949293101066370574356594292331313328354313337176027588379791340209163965093086104976144522886771761912915570338977060050407961601768152642904675146475932909378716809266221418448313273359329282433680189776775648002275536890109637540383305913658562441782692609167232283346600997619553192922171003339984119724476367789305240642091839203433030029144532198889979048509350036068104488611145705227904907508634890088303007619281242720807010323666606210220120997183767681023703719464557514776938021884643642357940340229507833806891104242669756109919889541906057522773909209210849380454409634562345999391584423535369951893466844650783955283118306073720601743835418883775988617185271717182467326068912223700779378172163524294473138105296652259144782261877973584730868891521096067342395452785227670678888914669212456040172507695446406308678133094060905784301604060960318543497449057476258141151272840193061688155971060064468953900002247987298817691305691001098387953476854587404658111897479251628750130460032474818203672257680959562091918063164864713248960260554407588510348452139331788900603417020830741257042169459119449680455484652413074727020630905388928580272981612974779999486561706676154711095419255724085467702714399301946792375929975895684230418787692444688012697014910029867298189738208190287720873792640724573482267095190296901952993288743414853756708515924037614830023496095852956810465435935048631985372109402013371111304874321428687872094882824297877591384217595140167667293174513994516849838723880968793288549597049229702549177916865597768879919323653358527796294787132509662930570354885272504853228823650337448395056356173352570007781169476796349168950896800650906392379168512054969331564018821588395820124867299020025993821346689655636615424011964981427634454851316758640869960526577417672100417463065879786335138618932689669614211892795002770854183266197497597719970806720010575900650062543567695645166649319878074229279528967841732743039224114210089363181319097109762206430044813896435298229506441522800916214631686085327506365410955135870910632466982755128011222870690357213737235899597952037899275676996473926390557080368740632096625816803902233795120657430220545889721114268574803710734285896976491773614330600450049664571442927153912268589010466115546071572150786877777144703584900425250458727406457724776768061697006326606173513646307466134285118046741041107434875755780761918856826153200087350847782301988839079494090931401356864845407734597457710901324564411171212114281644474143096519357560391952649511867096499986809851051198222863672133497664873972627918141982732531341871045169626303497009775757791917247934004648109958181480543488758496915505984164408559028303652878941542511993659841343095765687292597965879665570423640896021601578641491335429383799388036713105334867757350711065362068272224175321794065011968739451395614797294013368385226265223464654419136474031396158595017762645958908647368652020075016432545069499008565207578565843805141782048621864495746802336919231519482216058833750831473204355890145240439044148446210936042651575826834370938510273824777967002855349272219286665780084050957603059172561820558936305731367354467787522632508297883271293880316677671785069412851555627388640275485284810851081076602540779084293825347030383539922112564223400747981439399212556672054436107241735176579123235118761757169479224802641133866654469681947888548881875393154947239364606126168588685102782778235324464480255984033557359728624124181394278708788644416003312523275050477698356198387720965356069840422763882851336684207209688528919437874731456555110203629334526938848141173063987820430219237807671396144013529647761521603416440493667490867048583127868571528912469979049537183157101560354477319957171703575957190860596408940210316854177346141963778037644051600145214190021591672566558670966022412765002374737581613731006263873400056193413867842592406174260705883249973518407412028516095174170686484984753205666715649770517138857578741265490804653747714216952654552851165578781961680666689462348611672843865345004410334818185305652791244147380160459596978572977386993585030017677908386400674422526706700814719383392030907006767218612007745443156125927984875531855456742341025846041117538568384098018786564334352897406624387067706295516111205364690662695387353046991829977015684693865090604437268454081748154681073211553245237030832963815276433807130543377477539789857151834195581744304641416452174541164992252014727773009403709656270901975341568425532802276658135352404560403198527701198396091949274268400424361359006723898863142886358138619325445171860665356300471098177605134582818024205247948996969702713891241692823572562734074546899274305286862534485679044912282526839029360762756791219889702343235297742223951008085690046240573172249384818444816962889069823520124455541731386454897609635539687745871946615366174706866125313592482851291834192802689020713528401642000872348384067671409773781557659822232048964113865840277966393148313476511922515699765662886878802400351367454377607846871471605984044715671269383942517127216371719500350562984445464215212131047701601636452949711696358684977440789471613093272093665201314350667162144291754289119013681796140543469442761305686079136030394268988359337808368514322324233590767323384438157113592623674041060207868177277067870016485950260431318539530267626154879251857733111680792193397756005012500293861099830643743614158791845903931598141348879627090584922267952982551600418768946669665799196802814078479577076057066843608882963958168265544885983508385013357672088928461277844275440748830231317682719155099648147103367416640421516721774591116381528532058696546410264425646751007955789313158005509510226522873800543476971651491054441524423671599085310179770758690510915717973860691367379445130335398643382624674122673555710787368043190767300608757001758759350342949640637470457479599407034114243269256167295190295040628161255937449592509705293357270373559757859972511263866195089778535522519609369417036249851122373244109329494136101933594264957553516740094148279826827663930175502571811999880601145126520293945929102305317456618837773430559227594825461417552279231192464910456267373416337167418724839628726351205555100744941168963630157418197116501506605173062777886378760903917652371960471172636001612233904264915461302267510812910739593905303575636183588913619665132613730513595562337904042452338726008382009125556610994943096105565685932140145519109677503649605527745021955832647981035608994510822888791335016559484815971495180541836294250592622440263220794416608594981874338657107425870425276360867490113748336938615406113428561850206596213774968125320280450100744057620976608963682540950634954690156787341418776378807494317504546371155953894732808661016481071268051690093383412965181808302808304106442439112306707099548184869490413891248575878027452297988153463342540422227564202611257875997539345592207655718060441627574805507083581069038200761054085958429559063602959907365959601597984494230294319098279871243527891049111793606447179790261623069983245079284060937204644736412353722921961185352605592584871903316343520591557276376820300048504432519998440172834183317665353294100117794311388857149083838090474937141437276248206745705924527218089651722987181309414185907259883175650003658594107989050027026230028758087972609688207186739640113870521666482934445469547647627881022797917838620806907103792050088529055844604250880174462623539292220120105990674799213289791036311769172032520727924761607037224599368942368509966663319771179684528354519837767881762892031501285418789338542983302626782600980039585903697087121417931575809942327849524554219405201518419955135393563930646724951149837472301593194936475039235786255543371186546809070266775585789994093986536198300974166202024954956660357510527072362411623043279049881424677462257610285675767104811309217044808072897205874791739861111068554552983040379531670981449814435606900407373399808049601506529121139538577339214182151429253883196876600515185320570105936564176634550955540630144992897542366968776310779476462400508680142581788711353509533591197163390595722219675879072418672726970375297890245089260764177080223572083434531006490460382056882252068726621666921993200258064145148742915425137921647280198516566110790701896742200446338831183230429185420414427338574768871980911930819538860776430336982741649930113416141755873080268810381494658701135942530459382814950391230345066068496549898486021677963225243471011829179441092229516162163520892796687796927857882865411453474663806549718859787091341763470963612169553846970953043495350897046279798894375685746271781604335071187157984383131995765106020917133985738996141467772819398922792784057792122507384900831040412324431485665418595074976142174017544702678280706699457441662689566784565527085213521948050367697629537339306537023879973366923942243444136433411572876817399333603270743829250288820117193743645546684506563471826542737546086491478425790360428881801483777531813062638278712960746564177943282637944952335035810999841019754705246058706411141559846996333205224248257536447784996204031683417952644680219429520062252286156081994604772382431019676964461165222830834707521750642161385868085059560424494919893527444699709042109753757134921631206581986721068100755872380143267714426006322600321245310675282591171887300419793681164648064028541762338533418154715258311994102279886513518435503499382762254766060980646163786839866082925042877977934311104361505121442753130666141400925623170750155608286515504384406650423795330086386450335638304285013985177258609390362303017691588905853307325406535937288856065158967346737690857023818545448887632648779255647777052561664134105000477228429661887836538747130664539230327229653800848441247965238129637693222361736340007483327508771231331825655632713667776178071160808904293844230491478381225645974510962856274760482221760658448841198487173492474167270771767439586918354285503366718228610716942462050991099036925821292378996290548115525301817506039032718564510503491584692846248822192564985946997130553124782995539105349872793365756772378789594604358980208665625492470693789236306548134918912026502778665611569156380198735532490985408968746143796745487724977840481978724429766338893734722269530316920566540793495750164494781559356133901019524969150203402667873657561189848622306019114044712003282004773162858844853732061923292047603832066151598621287555614062292898335103248129775939555243165478141598522839265344344339958198656630535592136195037301498662954590187857611127724584940199597486066079092095551754046428628950727564210128232549205234679081635803756977428558199974344393512382775270217909061183747347576498724484244749624547410136701794749926718682584811016661419603215659073116912446742314924966315921179379902332932210655655902022722728864742005638203919390820779599838494389514742226818608132279565199299460638002086261649787529970055173542674057059261034675917925083981128764179403927136874748628543694731855004212403981966551075766388321883727624121487054852641765771392091519621452772232036914589493670998366095492069373479031027476228423988248797854104440681330122599785931529967531189565395516388962623360088772177852621763596221082396192694775986598187000452351467183570083356537592140699462403390311867525776769677234589737046605570300436118840405602243111467833048590500605425844092102855315490925491371071201731918380874223438700994868345721217167315271110520212908625566550967556030899978321800160920292565446284304992878444330411413197460646943074065241055960581419204876263234255040448988415731153751817342466318110669152810793103122683938195441284887668402110404610230887789537749160706642032221170081031383234396188861519334375916605529993807868734290168689189355985075115628361036149384478156999663977298279896591717436856019448380657817324546661437055254323416450978166001174942250204929898298342621431557756478811202685744506943836514154114463506229201574167854028295006982186668685805459069256229506621515529561916973296333632431757163339475485892961577922946090890673938640967760026854833615369659587028798741535114873037980021495125305133319351785939038412952208677217613002475458583823823815920328098134675646126752313347268576287139691283433541785544976580241762109661951290730729457363606350346101172113537843104264110426923672674185251032710659351347076201902868720680037075644610193059515844739199911832816886015228810546082872620965267768063377468104885473352157359504963517641805210542502289481378105707624410943307817379068171362720752250745345131990812144163838814691703389165729746132986655366805308354688811167712099497513531812566573858160590490761050281933744632841171788749324010889746828128903022339388646725605528589514001275295602642880006498101325899105416258596825764770845761669584847889837429004074328229224284117799797359225952438587282052256945602324419121214095524373174902957414475779809984566286721557306847708876383407746641462880500071350779156296219413233556256910256185190608692482010832365858107248632208361647336411780454970648613421575407173453534500285561769297185019179468204290248262902971506544420330328225861557120614451031189896440795921416649928165249746182638742732988021756206937422763869652059692013624549603999850685334561358876148222837414698450929887444034120853377143171133795994778110886281061924556617426657303381523193915639366739116463345968632611694757747983796074271920083647817569793044427815465758811686636324131533331710175937763699747937375435060798257723147260023915282373169115211854145273781736247998828012307497754807902427883537296855402373122780762317319404632144276785269874700009463388388038149750135527865684842535896869800954657919009616708975151175601158561712428104913613235532095901905116763258401018332339364762192655447052500977284623947203077120864121883224741882570740418933718471540306793878925921961360165035263999868379502919982399852769285625535696149410352352176592824446553742134974657954383864922891462586838972661966878468168062821434932187913516408497287139197270839382717406514473745651369275090279653280527843664745571323457141150643887783159046648759145449859658944287731666917081924681959780187276779736997843183550352041840371281782833653227672994130221255891523522710565558371160249815528732445591428172741559915958770171023634838161920007903052532781465946579140381050554679408087772192056754029129289292275528796494074105165133879706199652110102775213572088690964422639146302330880103053397759808251947394681093655656150255234063210739673414602101480606377701970417868131033487421009261023196282772820187020742934565438430517378126972477862116033729520818422819816403410519905028347505704032555018187005745090255928911038799977296016518639325463565652606442386478932027922507445417498211010366885443161326000000981870434628533206007610853687206130686224088905408256207566879208032903997674064755759099432661765640415498683963715036134092418995816268122131945565545333508328076949314039391303268778164509273862637079446126988782879864505164156969625832439972058099262216217007660942564645780158150281292168542971045930602085382064551820439413938153381423431801057383243839851525574458971166227130476983276819854682987975771907614720903307999794772795158805435170284710204828077912398709515331768973903833753128125479660539123942079703925484744625883805960224569605094513718560255443898037874574419689711843910165639724505871448314751342969521328324924001294353586193195553813218515687765709271227170485653462870635037000337558558161852320764583109468603642572533103216314257728482333030636661234938389747908769412947074201394567432168129151922475357312122947283488869838107363887827270630504683570586611637442102147978716883562922940555381015774039132300441043276022324880873191606387862939841691640797319234485917125346025140783492813473608525218195685234539035138803241833162092049504651078582469246132244097870204352520005955017083189796872383882387740392420656232827246755396989636940429695249479105492923143772540273011336798691448220388968246952635059753768517887751136610294983389872770489829631472829741839949216704804184172029245497187684328776828255529903955852445917321792469929789908335528028784081766433838321530162103336755427051533838745695319743621211624645462353693521734887592489747065700268365502363893987007224672470270364505882517306047803807369652370219220558917675300952964425979645324632040184536079382206605780441744193092709636336030333724825443841701704833088207166354785286533901099240002252119027298300749117061497029972244594926650933511580849648289611119766311378493657438964852092453448816537349114936301723820660508469815978936845493363321052384274808159484790550033441045487076434616827693851752353535242114656127644623540241499767002628845891659514889267973391091995927263684356607052893989338730186869910158707632818258925266434961609010877532322610328782153539127129219992436501928138530677834183883732766511907287241595853944115975299079899183221048261609192430826001122443758755813006333374013098494712678216204277895009043804236282054684110421424289172374734284123058180031280999271621880461649457851973599403252728526114312295813448398848391652478326529331787886699208892724867086483664503544841502982346760712496952518849011493205604826986385543484197995956254908451367595465417198833669104433402084331790718789361639354657454755023820650318182665531135727499485409197314664146447971639549045875799875315582733881650237102226453638659786084580798710667279960383488470554599845393610896404827878344407297959863284544359342833525132250968038159875786251436261214254661727565912882428968699462535454977325115375403422888256585395967025385121261054072148018375135440271901654445453444619739666705772611981312251531241032735210487536054174709719851076792456708539948444996123294038803589283429162379175555952757575740122643300412437213489890586455103995885679223080688177105424243123692407090908470955966697410509642760460802604520686960221598588245442068771497869410553411739567857861648750738243327853387740008722497407912220920755739404495858294780787024697389126080249147383734835583176635341128333728994366316099112921195729546215096615267015254739693974869275835536116099116530741620544798340005376350301350116697376039423015455259548521060233763005166518311781060961597435158041799420733237765537687517715906614710057928443008451123038771875556959781889170275572362981542353160606370406489357272604705171460741311976324792547943171795937817843859861662605446515263394276223467344244081140433835689761302303438959851476162234894695940679801901269916164846117262628429813675067335842034184785469209296986664613096739426287512182278696972538644540672737654631468919341824831324894550659670233285576298691069860791980449347933355794892436415902092473410484283132666339478361990525717545981398642829490883879932564438043879978819819375441162882104607265326550528209223644620712807602881052696243611335602318709172364494988612133932436629256759037490471192682515491106914544793036809834841041681594633459153692741149829317222601978193375410965555638083772733182402438959210778396635492812195367823278350335953447556131444997683976158161633662885912722318272522066894348921461255193949280700310115432638247081777900189130633823108326616432025797665735940944528939311121549791862100815169920972218422587393174491099681538783845632042497472110970302936413168815400286664833313561604790723942370961620736176642694758057157706102715776558688868939073793418482088276876192218282522608055510325919500870600291710544537846599298966636915967457004286641150805592830739927219021004725139040540344994483217759072150505626226196470306498660716191033615757145679722016018821120228950895211301608516433723213202743944318234908084121994071942245949638731284903342710176915144414249710793377954766294919642695126379121170906751937838401548947421638492606989149403288190451145081560442502487218530243212642001334855460255866211135681843435176370190989146525630581866493224823290379705180020761983442806188863786703674870499175315166659650522756960140758283167204614560383592016523656581367306390029114666453875909115683633434422213620656530772630117873281463790269969141110550917286572058428606002642421766967117178372171133208003707287996182972492951759106575247701030045492087738851164820285808272258030967480473351162386835111792943635255063383297347138235759586926296449001661433345347883613872431266987861771093982330075165833732524176823950508555688493840495145299697334100893935448000592454496310266848739257869818225046721316519941696279247719752836171614332391738853736901557014374052571842909161890049685059356404606953029106532346170542802418533113742903124399862279771107376676122307943118164882627974501835789880912456833407163230398680709758233273382858312664030210572883264654352263462558363931612873645390405588672261585570758722924530707464627545106353655193367301219695190946101313499276251362462061351401141818663744053071255004679312782064807649265904025582086240092014204359217573885077533978443694726811721229708141443849557041193607803931704697191587598090059505509277358664853484319439489496763672801262326968295188201831823366471224435614428577565887369974204416568693681111489338089125358134659369210317372391548962835703102997505096525676466321582650832920711112302796809135573406089576103127780685697339830893832426707139771956252475357257409129807809064167655693819199380957972325712492327667819240602160941715396992582789303821767137859931642996313801681549538093083046828319494032912337009109032884109189791177788110232427446748566625819514335411940952483711553395173988110176029937199067537348331996011072904188222430386717427722904841230840259290522177730774594202902042542396230320322985540839840668026926447378449630938364324652631693706683403120964843121642544033803335096537510032032869562243074957761229095924774837628751288404312101586080029562887188520377838214096972588008186989401083467580239052662464714066010815028659062183316550440263777438075220085302768335135295870310667985586984200374850480930469328275750892987190204056934785184049095529822323769535667284468552625471894140407742119997091823495706982048353670144140560116622283347255448767521217531067596585875385148833630720677873717314938512124333572243728891138551095648929074618255056822931208098540431993505218215131565644325048619978552505515170978503472343436456947429100389092535008292947207741036095122790333123085422563793304848030681133841890235871852997683427527483104382661757463604571068159661356490351415801846568415514762606449241778939528433591498638761913054547984407464445114481387335610119554428497708264451565301272782650124847622910577669235618825898295177763661260556388849956294338407186646297264420322014683702318726352901486248545142146990795593107823222086712869921036323698169308788108665825431984665991631439744771990841544828366961453307697608250572378418592118754295690810302188615110464102776113784262867403801815014832266802024169801420051980053644126393395071722771539362161954677032418422172134271603690911988728652327593634086003804920466114758539107999038502695389473661373803793087698908049824803953937430308275283589597345670675505316303418821504547964407953686633465652059566859810744342869164852828909105458560317318510005829988932295085640181811564644084597562898024992105174611845949443987193605668913915990054061085061331833662989896073370811445109163731128494762526766491734717529077780348260395046569829466082620282424991229909684944384392632635486149135267783985239632430159106665728327205981623040251436623662412936369157886624657047117963108486422105405354504767192020509963777300838506104462524925534781922253988314548745510256263882497474199913058485005280932516430580181507434416961879903686453610855398193700315995284518345655573541114760150938469546913495499606144329343528306599474421031169046442838067241934589487263838131190887163776206822924453739967725590191836933421045519348616838272102276887035918727536283021821625924264406509462775720635894710138871254281193070512441046865588470113819843390904574733668787369469887196297522928472458916137230645393478090915701019707380310742116986808204357554860930170169441373845618764007024828772748328853801689628690514709901114858113399448622015310475299023896359944762682346145951770833676017863958975850970802847698457566829171804200919495412607134776560222488685474656093120088879325375189870089603036544602705557499719099718031435802342962261943249681755341730121608434664719464883553448598882407515948979618222554222894924711186785705073115041364315742329986165235391203647041455035351384284123757021263451534347077098041955390019315502392363365972820438828073839239378877817658105835651093426422942584880808266501260848110025531354573225540581966347987047401928845520615665529812442876533064336151498976529519780138838987060376321736459574474346393248058942954521906919487386386408272083586008201637345694639599474324943595477345395726715686505570249504958486483314227588705666600384388790930471699706196754733685372407051603480250832288541740647853504929851576464428253153487254035959982558403637801980626807328236840982435160562655581989792179783611043115952530895953513583504414218836189947206267993183105523045734311441811275774685463050104692166411154565670941603732995482497652931859258161996832376820422001826003127667505799377465784355947800410343673310322140472560719314543226211667578726595995646257118676684509445797110424489758464275141547005782976363089395202691511656414151301938256269891592761533879429648297376830581946451128532407608243129965210402178350785872823424858739438338657011434068331913595038405828457108981749090596277207638203541795461036027279534686650222662933226887470586849798055449184062895960933451098034495094144331328173404550789720732714075193100593290700044294340451845846794614245826837922612430199786593929366288410569849801882138305745686374462086876580720438569781748398023766348552886553010795015619741277866058315275600275477471842958781288590449264245157973450295622434676374936761539908216303721857083652283805911223057202400338691790398967650903007179005825632674101811264163824483451805127948747336369051114338277670265855667148945767715448899450165839716159987076386992813413080042704484932887899976545734589984797746596332481867487303819931409526223374291083879668155804533632043186742433510906574120641563261147030523589330688124167668286877043596658639770556148034746831927619525154011071262805835275728179332446183418477671671776790578867077131633860072798000478479763307558033093414787101279007132182907663407308825148345171960039486422530288574074862852034494737377110552187555031205861478315477480620516669671523036556343846732866559581531023091362989687068746073497768556374258534962694510849490166749463178986643946688521753268452213353500602933684575856455776748835075871619266117928117359711230972067808947675805901073266198207523134623730325993689197006866201696792675493841514287318960387033915190229522869344920996345168774486947997295234866933572133874501079110084752699890990142080789397938101195376101028760814011836353728777108439541870210089340305865546910019473907741278235704717868902122513326399223590135269300740145805945714157213974361281450650107704973404548811570452732523707109761325098346346622694710568801824968592742581145400703300941579556863781333938124433656234245447506123056284446408641612862513805605446215387206601550016887413213900328443339508892217294629375834551196301519864197295597826352876313914943949176385212090122504293639544757658495141277587327065417416393024062014722907126016032339994128035028610121438558620490410591137569927871330812329077723543678234388746924530901553053328759856863419343635719409044937726445524683671323583607184047584084457720477446948999068296972707591254005670006624022899922598115207721816014762802711774538318859611557371958176332966383945100520953766061184201796724801954410603309165938119517155401316227447448155960498944726689476459260881447985949636903082681805621414502342122937756458469577791864308390355470757109194789968328716410323534604341892369378450620336956659104300069938819569740739463191586067020541380482922720359475209133561829528083734139048490621403767257732068503215352901348246982570555752004852810401732258951481406644355321666026994257102498781260886480236194493519717383798005238839252957374599965788220920254182392000190429112711634339228727780620225765914091268223947566394135000174391227703496609601117311716176448326420089000195843296609096718839409953232489965324707552168287655220555894548385758176489466378495143487434688996213851047511534479633049975006210127116258174032151969722483432769432764694142446428733497573990291954078929126951850665386710919459062075520266810636527980080869267454346210685642158305758406742563947701349301046306644915529488435868324623915959678295091039156751257177821099387744190862985405162097324997608376997620938274887443253083055720246001220038659807975698513641575616882855962776740866867275180792898328324368095994521426027129011530472071725236463040000637297083619180278835418062754574767515836777495902812003005488009552622545448136105146822065074691476274876248844429870653310120800071599699849785017422153461441314407101430172131795286240265844225607273891055116090755598030675611467248805387263746643457701833076311590643743345307404631193546553609153887045573518094346757176577913061168103577373117165453483610479833564772181584463039648333511682547181335464809065803040992021130070402859369135904855793176301393851270955705631970875137353492098467390636546769974591121263274865236571492278659391934204988539629144669767014623092472428374931723016038473671821252083973833435234637407108718161608541051346852675811314949310011605083847932336039374944845360196701549671158460612081858779837323026395702805556103451696501975764673636487120360577932506117635993533303898560311630717160188928338677763636812822977675683642169837607508661826445825533746367100171975453284978284499448991553757668040375867502847958018422576939700807769538571530394461986731329965162822294582232965098242147636353349654358718330302655755424813139979337864070999989161432099349954439126059113667728243444761581880232226507744706189744996613051407078001880335672662151752988164760170193781065434577099607677791336436834137975710813332219964000075833088506256030722880715292208369206420471466953221851778704456297476143769733613139715648280116761387155696614486575471108060474928470091675628907054178770661117639311197944357578528343985671797915969377261173988173832635283403358218441314566806109109361182243293300996753337331151684128214940448142181728119724820278363941094472339521059458875180595024605690240447607724513100307317357229525541051136767401886014679802723894627284583804719687523146480407879243603849834324019064811696733323360975797706858876051553480783207331641134355439513534708693361830787269079343293046952603881309008149464825426336805000581375415330614723336159967704808963104532906168226427655483399167951457315834449992361868414151224709042849466306421740411685204768050306609324386126607685726678171470288565890037375841424739215689249928731020575287155634408840487117272393984711755817982457490923885587269950782360375506963104089956531397543168605976837422799820411575668553172606259231104430169855115351736120963425276176040630857941542555371536375171439220940867685970025227410046118037132905472845179864064254517705444565784724573076241987043320227481246056869438774958425879119782063754732516130811101171976612046609480806507250731853317125194348811932134234390295443859420710672652725605772995306729894918575550978024016654654826516819608400683784362461800134474794094068426386817232952652147889826518891662429516074163871501288565056584040153291193157670224283209738373568321452585945195274371911542700044796550005718202158728395827652553262485385115582102739529327435200032167360053851210629046156976982762104936753105832096852566801428482416558168365612529229690225681734246821915846675611518917521493615049076925304813088715942176699943392785537206911830406008855685542721269631806905843442641050452645832301494631186707543607961775092969329236783460783026703832746181142285544797311015481204611451639114339121995930751238644280856723867962921316311444886897221816579003032417378151148598440227192962239712804346700045163865566208162780397612428527361574178270555902122028129709258952762528254417934355566783268397073482619048416704529556208590967923221692450110709920314771124638545036308350820010597087198997999527309140652659400585396013172843394400560759075572153132677480843292170179937154737828845019149819964381978808312868199649097254520376107390663979894904384818240746397539423239395712213305852112537313724866253836496048451510458245060023459312009013094030644377604377850965365644825403072948293132029542645491524763219716787950695402990841026357014514394009871436883408947127231956854211115054869841455729988489237185941286341168733887535453267493525000341960628635968252966027152515108291144767422846122031182529085761200418060201198180427328825745265323912981761880535761316552227177399906772340931043701031879449176900094175415516468944485374882186938383468736214597542342169909530155305475140865578796388917394566619412159158051171485380356302157172783454104874271539082039320242269506403738465915418331243127658865827293249766164660292588005816193401009127208983261976525612016035929942730431924797659672925995725438225046520266573650600914176796185468859555426455273950808833249614217573702013785042984194223254929011038495685746337658025376622287735576593427174947761036546595713808886120183924902697814261261629729006792396774260717122984618906997171465473973411719587059822532806398549432942808608921439319059051677023907373757025183163359191804553302056228880237820606902759688094355541221904996855898036150640122297973678753748706936770948401456391352460339866259936691777279509534368796420639986277806987939081913730327289929361697121423130145737322668535559103280894329733817443354336261689824685211919216033648965144709499276448328564001813450644600157517618319925702882864010603249369048478198881586181598128517378512474655426107263424483277872624647940655409728367191187266656901435689097351881085228282066072409213369296362246121893732744223118387235092419044447932096162795942167755658971053203153426151322697141268033512348605414582768838619160314523527215007381482112392147489626455638271008259271101835801089314252757503113606682281258571109724904794190143192576016305995130483968196299026016650051696348970477202192710235711959379949293952337551641144971641424795789968503931598498464669831345612637532981038708766579494282380533931197957605017030763625567045763735473413018766121248929069437098740797683253859635447744520494322305885583826069667492868607697117549770936915386305839090870437745212142477892270563988614754090632605720666671628148025841871384992022708447852263288040974265146316121330210703046920606666895956241764098886298784001907122089224178898413492854611201947871410947104394811031854780241189908194064295317910360804076620960449029098992453837755647670860924969814938825610922408963464961767770086406743396758561648026695278542751412420034363807953351274543333070841747734902066030896802792340611359896075246663763416334428578058119675967577230718453336553430042227830056087499182324418122072380895892858713705393365661939158457521845206180866933107052639398872884332682157582009446499077463281791163262031981174855209078687928998323611073247457166491008100123261521189757791484120234360178219658512022438615041527847531698833331672259357156925250274220159102524485993574348516899376425431460062768669406587109630022503150110124430802364869037562007463557689033929675877880157210468704644163597384545469057513869726785404144522598613790830997593879654677528499055993190550414260046787747313331357654842097846704352095287549281787006933677483900140987888750080329476827828338811638665552603463789120980101203033216320677378384158947652041390148107303132711642286710504087009489769700623920828869115477657254424978789300760989404576471241525620608252668586687442751016328561206361136113587602147906799455582215251436589295954785131532097665359532824009343708616407227839642388361681423263906041763614151972016963497954641883220632747010610726261326969428732258333406981210690619984340638154773825783529533878665081008253571702905598683542590289337272852084446412638027666013791149069732740412346813313232298014618840497475529295121420384024205531065010484575225004208311925357897715243834901538436966851357572501615033005645492147449697349798524634680180449143680074199839371696347767430458613504988530235034714520008269990813531390128256901045721835356920022761206330122096728863604503769209609855916978682233268596800443690178523810567092440332984209406591694634571741075174829407103602707317620205980617868193283168580048205372876676255957456673032597807258547260638626809033645327992291353902617668519357183862774590806200869870845309240560701850121888338953092365555505638431253645601759118210412161941414728678070928123586081899455539966281264920554289619106169998931811990470206569166658084296613960959639900212745071890352549958743177911057775183777675179888514093045769920433065714933187484251069416606507241977595286079248141202760211816633784459874047025726411488857185519310196579849094959078489595312246152041596597203191884997537101687157008624738314090046451874441074619926979782348684829436220507923177094167665951496205674045694374682795924295424385938232741765874465582966060772150992840561015013197975806417998703226273520303277684916099340572499648001624910953720431826542995869327732399176263375391641236707420415492481158377533984188702615708169420234394730597238838984680349886021079382691332109800374382112677505235139405297533496375941625597397409400387224006526210298430411703402663542190488879301187047015329058380538353895976974338777227699379493561855351996096625216740377635674139255474056478090548293633522187480699320346711688630916690214078710850822620657254069901432656970728493948020563322842749220230606322483737790244269693649275769148038879440612353487970742982416228132013994374230928717025730411543618764668222290046428029469129990411104942958765443306128667251161207206636321650314818056589243624729155881203781573226260183604640539150276685969002941436822359626467491939178189113754878328502568470122413872775045793011065675839849051474508666762986250922640347639685811550639283644335236557791084585989478634733023751791993448473289841273626197885730881457971260010156281310900502276554582031310037538163090235842254019183371034029307914634940709371210444062202452681365346490286247850392199180399251129711011350342258999355040355787831143593888801782840566698830084847859035906460072599017492690758345496164689915691169746520592874970183805188171120417530217249867803763442663144305868267458198008189303477769413811965813976140458271421784749212758829670887224474889081873227142957373448054000530736847344918722659188161575730022658941999454976677231685702618115106204332628056636853320502957375382205687237173411199286424660620959944816965745344642650131344256546240287237916873294339661677165302249792828114250239808260591499590846848167330864001735144975609074913725849016023710826968936988933902501436362106931144906057521110217158463318622584926962977459482984345472784393541658277467718807232110087467628856258723347914198404335454820410172899024612452074994339915619677196366129068241766321249584578812057610382008234550631088981027286875973989073200184089792099045815901121287602980256609866990239268877717070207565831903871339872742271593611063193660928906475372048392898993312590201057436130967791664422459967974380868494080334053361235241064773609535129281330170806728203168271473184486362442641470993209907089746788544590582020386794089453023383863781782108549687021330179887735863440635883555699237589769755078313102636819996631562242989772844509049446630527283484857308972335247737706043432729347395294764866674146148724110377746328626375611578642334049482818299290144635322065957871540371019154754347630476334056453687147971815157266766595652582561744489011039523505469165363616071552771625540727366750973900399106711068741079908058634870847214629644811073664550648331869157277629797947325049928435713242274033699166322380668543995739134257063920500435403631881395317368288336279409385989507882332922890261955220975727817740599661941847837332634252405759999603965759572961868849497147369468667021232624058243750678687078283591385507640293647691378367494368676688770691056823920899034378904979639964908701138203190297593233754313093492386298994641466326032347828931323681642812552686995354822713302271554939408465987630538455313985476072198397160622653720173115644121100325631325410721917938607817176918338776606583344560072112229012886782183261702790231058620112593289527203982625591543083852448257506563559390908490268370915237302083598256547599094845287950567503203960096571021944850875144799859115574879026900068070003836534479629245460458574166746780164246309515004271437121608281450019484460065998800737703033493606184063316382608825376596068533594098722164867876418818206105809732854462569217994529745665578012306184589949602357120397356503175268671989043773006490254418773866919488504773299054937690947560093799283402290149069708509355380364967358326213969873262354041604830707054523067015236317006239251543158645994747978835801757212615712895740129687102262018785926852051566492279414811872978157218869402621731408133423424408308723581605285924055434563371794577120243344972777919236782659478759301569015992061065428803505198157324087812802706016468204609379326920928161405862243146343917069017403930956702919540637034400255610201068690390732236938110264214368181032884478645095621014838478964030267142798324401896303545144737162051073551198194526969743146537825628215626328353447139037153932076446620257044780003595034424216502500854493893020741227973010853435529956621097221596277591356262042543264208233878375276057046863324453804311172543043063259067363904626720520994984227787661951446804876550786910696490821237332083222486519549442924097315481861914007727085686454637848196447411569555119022909385318842786473820435145227837478184670462907396513273498306180316167329681027220884452815552371914698815946788037673270567517131667308139927124611576460071212605533010681848635306479100585037596712447542855715126363462773717276256366208308273858053045143181953519028182827295534863593002030698979304018031317697006370095008013594644180420143892830951113139109823489127939866911172262757402940249249706668983644937321978148113586784680537622611656510077493757976834435071562182711696724380224878680730321956004722590907181212032396425578637382788361203097556594798425296176955670872598425032373160539260562508400658425035120723305898493665031997405095409630957842230442391600377088160971300307975616403991680273787635555765756309945554745572829271583905281060823282709187696091445252954216591733340922863861101140599503569468383835816940477046091664645073714241852691808301294154923794112135694455633128060975631765713717614102621666454438143042963980258194581811863236313947244086568736758922895782070746530725295578332228157390985259472125789762934116559899756518776154432429150628813789818368544721572710701221702710093907138130426790895930865210272153634942729984194562090565601933316141576524821488368168755468032953658376488030814907663024692647065578399084303694903493145225790116641895649514683226803138023775155375090116821074001429508821276303341944748304114452490584186800003022226245229165187937999601988622793662572242480919978707963329678350013526420326205807787473400271580408351360915500728571117180801785284485110674150446633365703133085830703300916136006896419509057717004254927877184076964431202551613750858554250688557789085042762844576404233488685489206743078605916035693041238775971042120036255665222860006820621145400251958872023389988598020536175799769835840928923048000576351692931700932628784281396690756416128909147635381909646680881612788637917934281379453722780972038063981844765955230833397311568623063480926677239264010357704822057676535076932253719656430908108168696913020929938005907536103573767100048520492401339910311293420417343098509404749776353282785164320632727147655174372269653587847175297582434077893349109261873592291583094771910327609230224238689255035633458887443756128611330627736210822197135692335958436496696028236747069827676184576513773032184629744052525337422855053417071997507145660754853188102742687388107162699498676082423835378883999389629523975570606343559198795795884648739727137613887160239336022677290818743388192235291948482633014306763910869710350970373345243021294610784976741538095916990518620152581530034123596866203016109519999916733999568677036786792048072246845214713891546720430144946342114578040190600625784156048986746934563256976553302130903446605968485646429363849843921959344581252132814629315228198859358481734753094317780474547819971664233341552849911818073082139932373909608466528570728945598296798511679359825624531439357056654204847076106147704139040683460074897177646020744776602508106696023114837434847291381212097918328230384318431297836931925190199843241867369069000171547265157772778866262175349942813673524443974408414317311627306527649750264791670261767054793648315968669699143522877396616445293116838148150043432051724675925118426813361628988953335549037891412428813616468267707414198974173336387120583695806566631115316807733470590271813974851518896363902992511798279996149036768546675236167079867585442590939144649920728865865517344815290459999485243277509131753757972807923386995072635747890333275810749743523724274611270400785167306570109187217751548248433011055967794939720718692864532609137608271291908156918551794232431570727552592803230930713543285261464052572112232430592870501443294753494219075732310976596212094781002711186848712505948625542812042531162958514286770633755974347909173301981969243003714764753382613613948463978180206467207966817177440315817972640629052803302449855004400549848916001145607021420119765676468274193639095166489252233409295233258397785819708956580551287015724004045143892645742470453642259739111180889303825539324856156777796729627773109144388843872645075456211708767711788496196333265787244329304410316748018928358382632452234975895217155579336045605443001013687573983418256967407137488572603178635917152146197989071438685700187392492960392079630554504510782571542370467042438645819718036391746856301692918324780906007328675096147841274557392956926125722121522732224412289986290865462202074315528275821835385743089843203698872755489852453682360599944979806141781977071562671676962213566903372740243106190400804606543931906979493613314957621673688153678333672622667494730326767398865984984519847850299855535640648293336891562642342465295783425756109018454529314811529393302909841299896349760931216874713178006131520105209315049670367002831621563188546479087978366242480043088281939042361146149478111890617591434735459457693033862148883269508423162858631867726041209622698799377367812157948648798617361753798421277954992007108058077997024992997715526108413478856135889993169503405601836603112628525234985190330949485494447098805516338444022051593616711790642282127714484768770003357344239944915192899604583823151954278061938701306968779650607148357350433575231844714373343936806229393814704031108696443430488373652643878768421416106397612366605107365418445298561456095607967715922261750818429660802598133821156201014911254307903692952065204576628170189795158610852252213691745070527914536084293312058954650201040689504355230496216534162227537209115528566252665905101469654577204800154164563864239142558761434268562517871282371109682603428383026469290312228278414078968499254514040626896870936290898091107608464340305509096243988578156953356642100017475985525278016065400269404694717140833651075420414294383044158017896191553522161954725389776187873121558602230518578239642553613975619863702621547165425129260389782682182583673756297331896278499570074754957560760118130641327945072771255890334723387353949406821484779823873299801413539902381470583768484715376880199422276857796583967002062679632796481552757855450786941075122304109806914350140847032933508875061906232928324855647268800678197536265888736254394664342266065057777374495779094537605190326959755328461708987272682539872795731022079011081468777610544544587554588026155592425513232205095249250363049756370940308432259141121149708928476416603203060152486508431122744506755875622720378017463332483636090239165740296210127041873037090424911920086103442127295804752286794931405737415522011842678319661505561506902680198625525453376348957711543140035303965192594765010511195079540616447120594432532527798057617333395004772805818759000308281750347719458182769028540877241622995164369118610502856961601615495260352683285502221742679122555124900337155509677983504927228393326361048735277909070281663330323699318340337666260656341157765834249621591349221460540104037181021538340366288998959370864152715059708243650764121265495059497466812445965096599467685529769824915456754403507575616094462227530366663846928937213811187173061857889124766413287609576660278271849953590934655593063566154601809146442763131582441375614751480044833119293862312796443162941598265485606934013565806478921667893387393087088311813932016540980162001391895893669681064561236070749648193944874607213638240623906118488251081778184539382149619080898404843701591550606377631670350340500236647604172347213707386172396920156359732118864418596718216631666308098656183360828154648651869832450017400608040616074723874290602524985201015017099025915356085752721473212439104249229524465394897527198687589089249450456809483456971523383167154611743556514540353972245279491633746333131807221589563036429344313238672861223746480714228858809733527804553278955476310502686060472287882421603600083645435960879469316409813630123197006318309309470641171634780938855484354880933127084309220295990198398104517215054473108884705486401190305022480105139217659245994358749008172558724980212772072781611418578790005491923162991995754200796606071440528405446328310771185324967119656490149444874917158611401095585557696180838868960411888600920826017657863895081587989231966186284538780305535471102223194710886303938612330088073354172376497177356632460918402143402547989473581721429146765855181224189641845463233762178256280270136853127762392625216077344932439515308019151512905480532234431150970968483234837178303411679058663521883214206993558905358466489031951708943382965207279856809640489622437485733852150140717811757304092820844048124684450238258006632245549530404334231029206352029812971970639398446871841215987246765249789574539974652196349038693993627219362278186100117123922093598382988014836776473878631011928186830860361812462014017583145649537179624526885224672742668279148966082872863818062760295705310650938854205293343815932347756481471484995920351651403641910796632104777384265576566751989861037822383007011522394208966776261075795490582519095832661027402850079926971382832524575892044988073414384201305784430736515656438085235159728638544565015221476390688028285242032375438180151685041567640010043979695926758130564317270194787949798226746259796703410013774487154610761176458320422150074206584628198378101485773047936153403649413447746998417058221849083532885747156365397011495111905834620116200340338285216401086564537439621124151453584532830140333472062741322989567337448765931412833534726745229153021634425473052582216607853089502278941376292483088727726644541615339491703605058737206035862462622469853774206718696221786400939975421164118304001461060020011483721148674977358056329789026743300527237810880986035068778418757686247399302181055185618546431290786235995355034230844053392698073299966557045590113972668861800812967413857072904951959398574428955185420647830737269885120824704227835875849763573549720603394407069611412729852767569699397179309823000646598473544380598299272401003680033121703587706031223940875479841562976208327870184246343551308231740435028703889349544217697565440534186318919280570439700828596960708226512795289924081135819741166617946685785311541649567882634421050271902940857831485483475801373774783627661640770452006915319921670477646156158622683710110577697408722452605819773882120870379012483092599021342423503854518075357336552194862001698888139301601006031171432320949372545095963071998560251039088404263523963944377304984886959741639102638415847521248442456802330729036974313428029454522652687950607608926119567768009532327562355298694456482026724396540987170448071468017476639588879766682445928219330938034676442456053689335512005741673527331505041599984792286290874603840591930911135081481155420721290768609787163069141157636064973187112323478957424297636729005479124483003280611255552982289127099589775395400372551765290574870797175810227601447022433595842103228998487189962742956739930176978161866268188535714276228348582729109957351889326182698304916360275327868086259535851978387227697549170402648962595456971786822640056516499331037285087419876674309646601239804773898401270038757845745692720843360217566532997829112532246197738916122188429605915047818582394683122019408030696459011026883745169002141367407866404249356108783178310521322290800916565197519938136653298025745572221047786154819205192576837964977665226717126901926551055440781896904005904486487418537212019761222622586291515321699476702685264457909981732192218696699220007174907051292696454274797092573542368183571046495545046589078649403794480208599436148879777314488158185741869548969679192067036426019917815785253218265283873792358055084049903840344103266458007793695174519240816152107446565227053487241985472346063198854730588697765890853546763575479822817464768373630197609931185107771927061958816549491063843902630707728079715603627035211596145167978064114821925475895791740191495987927931034184165523272618544356204570204798448996807300060034320829181838011833098726332822373885670567380335681335461857590902312049384763152962052773227640000627162287481897528020511719814314537335184351756260764736065369156205368086584335881523818275999750141659348665118292852995050048031651679619935306252764536244128856347036857572532693287825616470624305339704196080322167234319976667079524795516116654303718411848133750121399157124576897779810975920260412836970992944382434460835604970795738525614576884746419390475541731572126558480476766117855607310013261345439840448791351885713208431460899743112025875845892822602327109397689773495277734039191254731084446744751103024437225849896863270501242606934375483951882223813265641757937599553109978542765619423506302554364625391059508317507266737067461652067225261940494069177942552868713112923384762538912482406584090635105536542313488508212175172540700069257740528589529042221066160392527429071461395027721621150058746244977477185584822349074265061429777504579708000528979770548199344854314710497711339290837717931046351733727158999123830219577769051610369315767322536169362463220199455415524173111518382644417714756672908270981842894959444365079692218147816110477911008684956598740825575809599492322016529220992070452420978059390088320582796870825375995882726760103693747254752154445970154244801194345789369350660386913582547975481951085290535494776133701144828823238291149419127171758491588002082135868035739490695844782340932805074195852024089714332966861490419240409729033817531569912209123190646145821119580315981739313737595271481124775922719175207888548170034345246188676056721670546950438928131983886983602398924140148446039639265057244358184904253735172775052859246172211704594735145847118299552544637128616836651038585683670303308861133754452954500087576761330284481699945725004265933017132335157062650195474782635075785025358214645471891260489406470375769170885311296127245360540174972598143291720545502978683824361050126809313519832916954382085511927352577043542790553524546611761329702057305563163414304712101571770856826530346936114659458146459359205416969422097413575878286115461762843789762022757592099159510414337907216626779318073159218148304258115932076538304627704316771332079540161614199302083813171990265728195144568787879213648860665844196119860474048954627865086170475714032965196032412660827024753960490488004180183911226141676809265368219235614901842544767917112323542196367747655288916595736471888923661703694749053789335950188104110714461279175517161585915011865206975602893973620815176125791226269374668493814980157921175581429302689456206794372322585757854105063299170053029553783289547116548573714376965269943873328817473152027039560935508076959055882769662009953030769738123441436151393484426852254382600341538930416918559729990392229727970599142140141044842465284134416653139133701952094967574163213029736528789216703976767896704542027649199252084298515002931277104572392126746695508980685813180153959210435048799338012694162387283638709072494582296658654554862681774542987059525148961203325904050461999253497150802211883931381975062616316426088722118890191195901618549920590850981527325654097186949331297446910117292473992601275632743573644444954004087294278175967254252220900720270375454900785991898949527999850006360583088000709529169988607338824118793258401892780206226083774424078096180724239473557774521066558164632894863252810049178875221482284854206147506810227794139886213863920090494943804892302802939742387395444182379941068894968127661739797784134959358498282335955559513850922305949174871469492265230510765848069372133759347612280864684474419741914588968384746491163479018487975933768202493437784285929354252141196288568118116072303700448288549199281032699377327696125499306744849660015945635824070735054411380571366512553043618325895343572311873879096096492283755355158204895999473141331353364164457904789339904498248090282556816520079661388463850284532904494057493225853334995111437890467575834128001975716165952513191150274119241799701285425732687106279005531964317322785245417581794838474268698393058598941964593163658359684874499816413397278581005422220821697819828642413879966779144282654100656790719063770050808386326216208905291982511230806889762732996693432599607533433367176689083866361497196534378082869107270301529913803527315128076790865132440997788382538735365967477664143270862138827274235750052852604464788829142228663497436555318728684132441225105964300401101014451188962820032487635076027479613697035428821214214719863251513110064532081971941670015970405454720790410040080013554485284374802612319663913742170201308662632417869346396578168119031087409157755647779782398165444940713067401931709724627812330092767785064116480071893435807536442818750024536664013580170330376348377749737885931368650984657904880000569938526324986121341185348888535322105651508754756681605836958217642722324987930196504321656221376124543503124266549780366980146513187832977224473562591867051432845991744507986460824383221523077195611646602265971814706788907602384097423118881605354882972752289752109221901163861088095730420967020961710117113365925444898439393679073268195516381047225431183334499438860001286929011290757500096690064642078529154258433460843428797354699830571902309605848178184225671034199714316574898398750738637256218073010955056414247770708744032021422028555690405884828782897325597314020551723516801388770746340341252593042162334325497234887245328132224195894451071693634704262905875082287424877324174331727420442228026722656536383561479087144159783972028496928759095046788729545847754618604267934517093064439885276134228567077126336302802712543024635980495492945135471932572014253434893874316983926034388604489493576904969214477686235632784455707273365091695120076552139118329149495518790994563750551298965498392478328461471281222182881324711059791063926210946612070125752854122325529738998172329535072649349135290717640359057425303051343996714905496038366504761436381108856016983708245486832360381089704187865107018231926375154000899016214496693789983681792827523313174904930978399181330989745499298019269972374487190997637599366075724395385460926986536086908464623499660825831448805354707645456835715589555625109999531792643020815135519200260371333065767450041763697481991762393143617640268679637130107157489648671669822044374377895162678646899740632494469194494826155703356004569607667062740150461304631564957477156852709183827077694880322708019339418739883762113167604968113468145204599261698877018606683617500794861434840346570665257566202374648357322481786137273059291157167589188152142682263883821734786486950839918573223080628098115193203900219749328170123624212327523530758240502482775950585384307591483304745866270698303804470851150829649912530047276975016316769481548861504754362633885299375602989220358266434449169382965591483532712850236562012485761465081250113589572501993683317295299186214424470680746407821294215210399377710642577167076012820026429176322317942384723259596460668315115312956128770998736319985291172860682384615730675417022558542153437251658966860618028997519777707261154565886831250207091939450075759333414825581437963033184631822248361377491693100733362165677563474249583452608970417857091485481939584768844374131528045394739145691677347249509639384172600936346769507234471759937455856055972916350587169103264687846149519159628506325281703906851202648494165127809675794610424289852943950050633078565680978488338815712606809911662793893634420882162777792336796153584298766299442571607690074796573293170745841627124494306601466526841309222872526100139249640909908462380218565635722433421546612935178273127216090138603200341785440511683895823563726438622586203656861039013671309102078871471656809313621095135841949202414558133531143065841331553897675579226582853508002068323132502504106322769371573319839340644190596121960842115597216167550536523089850291994925443000175312236749305787828554631491210396461883312172204889092129076702787261039945405791074758890630859934328186897857593221917341689754821961141184429960795621491161184729623622439157608775183278816648080982682176579452253157272289829728417220401632319032753149666085515484879776611691237615130997825603894804376234299440080654445915254569740164026748980576815695278350935605650640270862153567679021935344123674922219826427728897068827032759545591653375097713091151849818271611957915208605554068922104464136150028091079051431478487470381883803155084635256833924834812114532173953560150804021451555631678392447433651128898619360334060207775293885653644832685191576643689146499370679921109000823803133986885649048236292617392548838406253634485877177638599136047219179233103898369477426899994025772996286279535014915499875639132556484157622844751065809968997562908370865739167873403272362225811983215374036232763138717984689564042973357431726416383969529229281098597948430482526967737216262095635378865192665229760228958482424076923348964870790622557584721046576513319873488052826793977350557934710551769524615772862148012926108271849882774764744861745681717506922104092908288233371228215839653313014440760488394496506897576181803297971164710046817875512936376519151274276265433071739056462625922891644358141366933349073442799512495482503059034033855706643752455870753327200607462642416433559834542958193194762403292973412277551763265706441066680391431509508118019848406094912347007666000727338085613093548707556154561337333091782316859713147394767873254175225080178009998958218040572146527675577251587079376514968254856921751464668027154970528925981826754300182622080000121160066074892582803535157518370423983829930825978192694357856410895722286913783871047447555447299179160964677848544836039935885664836128975110967028970976910322084526835003536609287548314484473898642842510631624187637766175363622454130605350118141717620889113097456378889581265491424970857620528904237914233406051882840435884593314243587980962716788040417146372720674686502160684822171524847967724434015994637238497084972234653952251495023984042516551836565213801352986304583206425126754438883610138173510411247656070731517368072137304571401238276115224052420074350647415988875743568313782670027646271906903615197360064843872940654117180421930543094593811031714698613787174641542683504733907144143523116453970255770877400139246086682172474620258090239085936544809112970439382420726134173721799451403542841192168215028991981219027524968327311386824700064976859613604468625947448642099978528380320838095750747638063233354343558376345764904009376848312795651248116745033224736045612541333674252489329839087550579190452946653935528620285684668372825188419380904411720000523825208559817103740010775196998661625814791288674307750287362314374397525682458007851160139404662004308518075131316756046798364776021792690158980847145896179970113966534743764704488590362403991559607369374971496591851292118005472304817774703294864957384988561011528521948600474499610784126461971950717923601680070941546901392566483663481762131428672817056447544499320860768743209001003293955363915779429766221088051901633686767328807877932888990639715668828173910727210356977095246381552151420665336065631328559584449806149157415157567692267711558835688120439587396573829077843640894478306962871538355404303977679979330354457927320528707764695054113491307581868076942086731762256451122072888453239445937021730821182167906635041035111045800658521010888796729179076162968360439634607214382476440505150161470679984007047809700196309278192837799293147380917155957374963771966347796472742025710581088033194941499297806062414146989996181151395881299494624918853291879370957766252598549261760693627133135760206146056127098670531172601044754362330027101921036706920982404846074731269572536335836564999245340727380189463819258228530271698564542637309936078060830071657151658861728303461332829759177954567518184796022127890196317713887971676048462720606846916628615445089211621622672652358823514795619059729018870611781156851705168622511043387775850948392109420803732399143201132073277405368166185249307890208289344480672170523561870536041223546271969355471997900215963836054034676528995344498718804627043526744399243460886712515710595307339812205981451118483485915437398606191754802378347999032994654524676066481609861896106322176176273634274371877940433946331282906910483817251207148132553983915340313283063837602319737172439988574312513193561665235954092838475421762077693251981344648825377947791457210448294100999834105795160441963710850653111207260845982063585440471099153797663494848964509035048495341342606199320950270428543225712447333655035136092381917344483233473050323450468807052577798561753919234304547272405514233696007152487820256871363216830175501799442594246553836695935998260715047646311791052669710303075002348622103668413326274544545533237600577878226981529190166078472079139759605414305150876166724978449266375775646083523352226360443534681871602416890880825324708166944336327194713092428226766765121372402939240181029746604527840998712328892669766525839438179231126767423631980678696648996386114255265057811536918865752935957350559368450733745052997975859933274794379893538004659221184164346663195717957090858240108376913378470826253960931386431235339834751280482882585260489611862609983981196320670696043710885776517942338565299882809276104165587121824949895146766950451196723303293769708559974142790560822473000469455343623484049472246423089499173961276158650602415331548664050036169413397641817619356911301430234355876165228929063276086189717539295116095437972741535918847760142043227589311584034949565462354257162452298956905369559387955623494701246905659779177450335291854369487071710766583046003433959339865717440158370307440770473177985934689891094568306206634636924090489680193085205274630075276934579276887028103805073779183107834753845799114884672898275907473384022111644836978598919396016739482575974191238012215243838862824930011644996313366175747908714070861656482435250081216418974982178684990649306259949338480909020198237654607591431182302931902545563829998059714700384081431174581881576959602913569504867498788803978217606526912574904461972237243865138528559416051493415984894559554813974534296057234445783412541683317169741515274824840078989869703344780042124935264024691614357628250136712729675238646679208638814459063900379364410038254086911190876019581694207075159737470885845181293377497366162348423909762181154583336549686901730246312733678167827481290385827358885198510279285863151869899515023030836070439365704598986246457324560381101868849753070829375927974251826962693595325273737339532234172947958768260017105295486851173198241437985760248577184329713376425113767175597824423158334501548088971520212148239561773870830390641073961527898467894088134758148063354467225292659840165750746816280171418696226963701551352619497629515972908305302827209979236417239219715403441720025319372348808696365673122922084476608289960780833467301642576702880926906278461762147488124877852536216353671258101013014972523052445438153597430321941577783378562456596643470600236448995736389178251494505595557972988179910852010362117420670109834312743963210104473733584283992036161006776105580201995358725960587571863796581539674508191212551776463662958190513941059120383547184486233691907359028224220799925735095141186547043758624593319334652544664971996469874599948300170673629413101045100151015320148030603933187233263020783432812821915825441234711608793010717389138735309031351123363037884551357590243158542503505522729834071785785375398542171918957184131542755677764173918597761988447653423392148324329319100620199659304118630025523507271063908675406928769384498074095517373900525494416548468306042580212237262245747050054479582573424571513512067805705326918290976764606655154352563989077992485003451749576118410596532270388903938082186803756673566567403052801867701345710262636955761456138181930573497910217373812247821743864332257934274221692444700529745679590660720016522768832953176134360412846475231060347481467674510301844429301688902278366364237531586852868199280455382831817957417356254263659269951718189611111705601270389911448682901187746161210772377263836095475486566038449217041502812866999282007396572806914476140951012222286466453219173491499298853996283936875471162548508853849887146084872453978409332195646901674664526517720881725510155459566773961797911838462440269324086515206820666319530251315015933749777944588958107688597946263144329759661929347658093967153910499602251763719543537366474246557117949073368367111182026939641729283413774653828166896488501410697388011888904724510653184783173584655497945035616638783625550874868154266952606550870316160024809006125542317895999868432244783308308897991204625285510870505236319386514367579423691682035366033684657158526885681016343316075605849550764955618165640176436292620640695204451600587077326890422122000252306682720377850181616860714821950588038483729938862126777966594639792119695128716238569480341749765855072916157205113386729369942842872432015036222750636476334421964241124972308198399069931936951370302236539432190185011708991989299511990185229408166945796024298608221347634717360982761613776303361905864530508266076900722435631281656038528356397971821239351999039661536437379586470091059935002715109878937787961194086800758045891607924530905265166592199668268561410238527326308805576413709209791821941302128368007202685958048023854194271642069211681832331486194189020847305917534378103502687747940023328476184022890397491336075858616599066420114523510407310172941198415990768703049637043670184421947281243179057236323975793617730431533739333941958708671850899708741709495111028669768948314155067891110734073025566728706389238432362116421093499003227964231814212079748839020407190907935642549627228326424676289508632060373208934756229053026774381723928627053643736288070785399456767024537900066068866680451912542935977695426773740621446893302960584099661432479803521423297455225955215956370459387025490346446104952643969338557187588524787729371990541239262073595995688988010271022734048538575417113287274164174483773025053440499993138123412014272117761881345859997120807079685464856064403640804960594327532080349170807913701481553055959344058114737743836642008515528789711398400607783773224964618719009359866007106859977032826099385158764544973549590551054617997138400467119731796435581008425129062954335841480410453111769605364897383500117138871822418095070558958722378912674188638003351195251334684600602138723126882478288245597418112408360811549802088127034227331988302413584745145932437856587377091375843407663870884343399529888355592218421958504273554703709867372339036427361669115625533463114957799660091875502573804097393859790265536154032660586704831693723167895667294662545818612728527953280329298311122609573217626144140351562797220704387248176113862196825152442152767248073183100732110251012359886886455372602102172008262001631129472408098907528597733147121654934933185354590143920070457636118892336569152323056062458922606550984417915081027799834639655040013954222463489191670107214174954892082232391325673982646411286407241217952009399570946472677401328255176882124430388460393132872637529118769945828546489962807112126123319566859577150832835755764713570060245968809602180180274280551222799421305221571423597386023499275555409958793872458274029202409609470790702093010130906551461659078213914213175745435187453373164202847171667100833248063727370170031495564155933592054787493763397845574591181980844060386936757414390483392096901582016909173682483450965502388026897028804968004380378008132764194429318939499922652281714003250764791331514972673105147289996120000831976799517963889750302935210950551336843351744372038919750800846428451162274347730151512293569575167741764684718231984474630334085698790296497758027115420850555076444310905047869082305431558216584826586406518280512958962400328821533130619114147656842929818798225165804493678826080915988654857890957841743142070466148104398212200449815786611493331064084393565556767186340195918597271132052007838777442062011792028822925260285675272643048980212165805977827843654163084569160861683444104382129220202100124548734800817103003547804611423062153685900957751922618276544145658531433526834504947071838850122564441195594593552473089995273443061611624869207682501820473863533665284033280050179649951673176826420255152420673762501839706578147569627954134457677223788162836662329372118509298851645094460295003778871870430339937813079722718939186738995818872663324533779999619935522601836543051896927135611662873867087743053946539254664711080949543863308387924569014136670938242204463299640820560032355697308196542929229321745008810173139148775888415236017190194847369829197136590481881831987809343348639443183679724783418938812071906210214997307911511872558667522172644771150184194280499269263985745667346580117301691654407026719797822166854870172846171411368208655148717847418167318645943372819150674552404375345849219673163423074567233382650009265935892278458842794599013509302777935490207548885072264802451408511170234693711699383878938069784706577865621100235821282312127307914237521352632328336843509648767858660394671970287738875030259135930702096901881365371241093677119759184006753308846870744069623476965433853918104422915385653033697124274540347089487474651328154866034938096626246532030937918361282134648151393291466669191942966496439204742599035982760491451809979657633431890327003758349891259006856832845614581453161531778900207587092940812177846424585453757717403832995110173342500423087742886533871995736744084626097775817767707768686863987101432912858218800979743158895779228369154158170002932228627787765439997381078757825844843491810978532649397578039789240762137491769483755802207407291411581226908127954483806586180897310424959247361400585182751061832738377019641930026532656858845417352867774209410343908578995447396688750660006863629616959577309220545269858849390610041507775816939698017005451384702924155229447659410721722303856780660223159247335013082989920628567115398049479181842078335888431626491872048830933110711774576964211033488805910972977949803811053708823924458575667961029947976400254513494729581248170598936134608366572716504154756790735987460373085467488530995543971442168402738976545358623545217005104242581495950130459543896068764565411926455097878396288806929786032552360121703850762399512664270083331065156149584947806463403968192690276919501450153645241293505665152618886191398996543566607712200609429932433235735703216177553325017980056105824960392522177991961266976570702302992018310731789082856029243070926688647183365964703017270247927535087020286413342804902200897500085878563261491240741536350059254524703567612285065108959934291654403515494974824990700818464586160346426636760402371086971451787611304989856390550066835612753314116721796604641732758769530768406188242350804427370696107731945665523822657646083769494476997194457356607720328260586954199038677501003471080937717467998406383107011287075564249210754069229586477097291665737650584829822248753362216205873536143346168945692127655788832622247203545740895672639673610449674778251694381039760962524194307629047073303789136616460744772715072269402874595156790334971227020914256267740261975971733916693993477953481116450748119252100223257790348096275876131363063000504469145483726912205646309601743221221148240775301060000036053728091850002938060352961810386847274492232214267618326087661115922145692591680152715932145325085426526722520770252170073929469573474356593046381983347062447472958220660636683762495859498156382010806973754963848504878107755669175711364145849593464968099603835197243250103688949408428741413664910814780404591381817714262893128813989387508602908372599008194386440807631957637965708081512315191914345823865777075667814318022331400183231200436553845875861465443122623450227609882814537744589989311411077967717195692552037327527356070395958074627906320502176219294736740839086933181003864618973467324680929086629037050354026494215349512653251371566231668759904538090550439278047320709630209747286508218110762715233929658336236744015044855381306459143756165251074867550570797389491706544171842694074444925951246873650633941916620694123722550982324443929400399983223471356748938518196938606299650006691398894386186325740240151813117573530325599727615226889758450801749950533565727484038522265606863024522130276952920236170169337264224314873079938811179286403133890510963226264110452072581508717842652453059849513375764520971696506382756066343802434824887090183213193952283808336252550142683452184962987544992287369661582996378608775762437455451331539347038253732052027043552041436591357596053440630350820091630603652303372299126173242153621386423855410418932050900938432712452049924606114730580742716976569382998956523910363779515527678934356407633963462995851345875292903871736157523372942552963976594092094976922513047647504006346280449561226909068624148885529248776341786606006688085980911706622565938406035737055292898982360637374921264934276939499356445882992286638109862884929162767586408445694709945902612220475608167409393662949247948260037736569141678778980842768020761383530160111411427555244756339242909468106980384964166828611172519138436424727672769124938210023610817686092421763407902368704297023696650640909367435397793159029148480199525143608702800697518896781019619287537704480202390701543155716899355576239588038894338882978174998584423490502156073654985340603731734028949043653569357429798864800147417465210948348270349410475729086717312016393809411493982013769588234130037989882999233183353857666774512516607480493779556467875166074243462074057012414759537876974633695642879419979190884410328058757482548794278316781264612017125619365823958283730432231257991284583875284155132477587684543242881963765511686680867214203794351199894784746348797314057812292399283431089718898983137739408154844448608125399261196986009380878194549416221346728396721087001295315805330182447818146629458583209458454918127684534749363478188652836654286445492079778524346545220636072363674551058399362412179534167157743446143607164112344743942066860620699628505258359793893615737139962571824851954427244415409478000972649813849385510143144676245814106302084868958009471063425601655947217930693249465437234583206382247884151164934864807736667630300842321455136630292691408140685207279042290503816236521298700889424312666367334311998901777684170423986401123273191979336433941663715264599873063097635101678339107156790059508530222836813397030626284142964491513908808683567949824141775322388281460697017772691032781331484922904757924310770993120442708309387843205145835382627181951718122442191540783202347616879765709298736703697296778103321464066162649929954661988899483913779178138421331138500898190888875665009388060349500082515273086170959560597819274356175511862084497458297041956639250729100488486879603132495558484881101740622205930920139081615445890524993632474000514280019438445108760999962268439882807343269913865121144332398224659147532732729798648536725737673194892940171348709082763502310454918750583312971760291247865433202008059410853349666984450261980051986478673759546215270554354710806655219770762037321006567228857243601699744872692941990882173601329479048544568193535114302550520059350982516094895059083777516286347392954253926324435696460119789137637285482125591132157381190322896816249310413413718924755787743602473708936676314749343375357440614086854747239388767822273808479786919908963272792372531358253552911794396022061628035019625704282582840921363493775672961402693516409986923340118844377434419923501054052585910264105197259760770228211278474851781063917483135760506893383556445955186014781641314728905440642906033067886522610637953253487650175663927295308388654909595228965171186615032304133052851771089160389777645769762243706006310387285177040823919444033929303240491494543953091189359692080293379455698067440266941088932823812952052922398704663188881404026539529860862498272553264628280987661808248643711567126674092323211089330048313050260220711254284528055223821763567554429842855749440450057062397136966588902968707955427545361538004483914991560867688337283930837638433179086685260376352266811384693472828240990395672667361791007343414939140326100982980641384995460288986203280937797176054884341672227877690817830084778678080566799539720011517442315176680353582694792584182037539549041562367821419028615428047119567943499260438986162858079134868231195466178836177406558241141175554884909862242799438570003971732188508443415458260459786441668800985444143256554379366268871123762516920887804978586349528823341999746825208913032033889014400474117422810130623673378969439432477584326486066626981482237780939048876622351435191270880396015971578723254645302482341765687006127026225403974885924969966262078770651405329173864209893421543473733972180388276824406629335979921979745022335005102906729022891614906166940074444168221460014328817921578400187605579101037671076537271425425781962179387913288852194846597522936787480457781082102172155208273216950004366636961927614193827309118074471491351047533480777743829354843048265557126157163854966588700352903666501616781710288202327855672883233353259451902091691573352243856966488604426851880868661101710578615875425499785860701800382220797216519286083623129694810947705155341278694795239359649692498982366090651587736374354640485399251003435456282176349620719971447393154545680227632967167076116404049603375085612493143592196834726292021349680764382551453888228190409174111548112513956076612009369264816234667506444105109544041718008115738811745888203912697911649636106947979083353811383562195496811705351231740553006525126356892292266130422679752215818269358099504589977743530662367237281941265960553401317692409044562363362573364415112995591854046269548609840197829396936252086512138434058529498074883584238036785911846121199954088898186285974003282061545635989712235232803290243080030776063260029775967503041512903660413533867207520037738234113346494835437999405365729521905486272681177046891788166603475635284226783087990097908859274106625833363763261012117264558528874478400844855263427210926177941912140787046649261243491418316779219013647613956351380016913890002495515957810721893631144831925969481376052905865751449028490382676014693015347546080143154264612674365290514113861376411082385272624852589545130019496302973326405257584779360899384321270488145062113163204128993034379929149722979444996743827790288957170788003487085305352098080826811262528655055948016422631234196825847154672725747928115326375175195251468923802601100916118267176691348707806176259607142250046147610701591795798769083192032723719779779136821168638412703956951437169775136774244544329138746922410574673229585758331574419903762042689954077510036053353503204975468832325317966101494099260917558251365529020534374465208475223236933928932054210401743231738677117301901949644816759791074562264967447940974788202751943052024371204406084992932060023622858146208237138117076822204596540492234117681412155938678142882821461776188478370349739008141310618247796923586012977453919144693724518990801993837930684863680382509328880771263844691410180880743468069277925972861141560911480548649520333776266350767890625470488864751938239465117441104700622035123957480473327351314492861086685942213393700917809787285549384959987758760711347621759115177715151732678463399229001919973600446081884528385886121760206724811372983655249728071272872749528267802670504523027402167734529521090107279795757709189041609810225133977621767617059664449213815967676569758918828843477742938217941868332939916273110077203698220053013742845525359421424681029727190787764697071816518412724815333787704437193067522103899026450620337563388147775712894341229164957594770569257858577158457524627587165098120557900845888195717384811953938768091983514289522744753826055223091781366398972156669473200872055999144236091113049641671707115626388971026131616427685878597805172066740213565613579279533099533897123757609006360727264678743335204885414110230236619452860006750411045328546551993172452601189655009600530761897688021038270677450698631789194184518396951372006152732754273605086285437643462692682199527833335917096058685172796744046668194715247886571111073802384861012887444899377579757345705751734938748591211885282243713486996211347824769880400621894613219497706253169431877192094638458913947812225578629725835226628861565360404782566815082914203250326805753842631876154197779035689207241256166692667933608375761524818701052097426972700568226514681648890019226491638067244957813640904688598705807700922184507467892510445519605107303833784604514307864244738360436749171396385893206902203267892904013649659045427589601586654054820293069451065982324306373000083104697770030888976127473113625727524425263187893966085881388154411097929409587693085341051369710132613446618723441609039127117847175807439609814214967510801661699129625882902869263031243143568687821090949234163557823230097917044440149688739634025763741042568894753591619249935079098772709942759952809203602158752454399429062432709304237209514721291769460252828777615931717209505770232601966969330216670070439667990563848059873952788158066570423020505929476981586863292764302884508793829477990555477014643873106937059255230283668663331140620244109507810827965517256428055152108873755102947204237929208672372719616369016405034552625570654677804322510827066668534571442406977444092368959567424818636087776679339483509525051843278532920682234293080658173159505413824482640757961570589021060380815075145204527652455369844013681625512501171155618828009527779966285095552244181631782824774391314213352206782381544139842774570414286748627961099254449463731801248082715749460033445136221487434877465603254849243753735890665891475264899462841524381291074251709363779823165435813409315190358832799744973247464585112270061956237455385968804941091013848343804921131054438759473276704355542068765799682405916801164583256693239959035488056804619581177573336096585552540537063568228654502869558267020483111483281808098767502768733002709349957587269623856979543657197507918045915142932960672294212774771187826674387635002999211997015509776564979826635554834952467511709727729140247351064965011154741230612178123214583191866197398136196939738105654497235777514583829527689438772869434668105309826866616633380056137971255600683894668541219619872492188876425332319666705269022532245344886525877385178259375932832559544292092645533059509164104023515233757482524823848501094251066241755726808733772795760009420246320896556157814517529456747151121773953324952337280303262178924407762117977502428343209776815157949557966669669582650003896020988502189909574577917617438437463528490088897420992865090272849146620509111880007056852827150643594643088787434967142250237584621898718396152980525698283753548149167596622819755980043650270843715654247983792394386742782311549070901496102100332634046917020853599698082055764102045763049489292897952468492735170819404228402984558885294071772892461381552262622279875642594131664339120415859857366266272284562766776289524660458731147593746731590914291882210597127879217909790292920851677583844275208020373479398856859278855312008744105594564800164268172360210711652095780313288857361888455043212311108577216769888129595476568986602598181406055883325888805777694408829022864191703714694612366640578391851145933979041750217141692989417793579380634472856730032402925110645166452716475398290009071799338080770459491476462996220830136381436938788054499318632567699598954926214080067400333934829225589889032103586075622592518834532250347829929798549010572187471771817224423289700928565022274433600420195790320289407325153175455110909094059040106648246832575045057468218123285753012944391028388329119024324505363965879797646262030985073515654513741487874393253322758913954841939061403774905698067720593175686181929643643341348900301189458419535032955103810662459726863815064314288529267710439791946765517673743324701416548418732520178714677604835099531721952753959042436995886271031137967917104197198940051293895222390055735829742714281087525930203005687649124543188222629222513425467154035522966642478804329903035389341605860154989394802751203129857480843433079106004672306167215002524196320071641617569223268404883998578969773896324286417844585105259049688716345194731182208012292977833707211514843138865995819055201690144755009614117710974086998685447699063962635269287792927366157452331568233573532068208944622187351938876932649050274766265946888103790421239573570410683643306219462584427723984254367355334295602257536548771036486364803360689009485527676055826370054494725762107863803867900210754394986246811700105456670415921496683858336852223895858818929714929692949480671527546892778315020367466233120498473308369188275730164312021079509459706547275583147631688920095309682474948689684312832962868794281978769341921143129907483450010320073711262897699076667914710037336955831663437080899687182988174051260331698235593113362105717966644132140347705131850497696509969365320899310331042146010276786671204485418063883765408946074265968396959628642227070728104592546714159357510440725576327788773971304989704029889061164954261210660572971666569375771955221695978861098100211407070305781413410678279461001920971900881301535753242983382521157827213251353856508432689654472732315866132701097619296523413437467133023161630341449696316008325524569088915600399839086103151575375753720294225675523263500395275024823868620649041122889116919081420805375467013464678418163198899139910572466254967369319287987392421238833712284475266822040084081391704042534847922795906986900906793604578936496662174262945762703840848926744217847598758788912514998059424641538139132466738830071623097557100275405579383582859454287500737968131166833366846706987983258381079030943176313816745361076041235322275975821426892422774614072700720829707234569697997420471155979020499393238316175284528304897085574933910032816813651448576090048626787985871673004696853873602433191653036926091334359569007875762100958406723200263846295446045845748405983115897878988257129784764972252950886742339166759962857255998833804078049984605450640786819177426530393693425753788149553803401803461821260564698384116199964883407568234251083300987062894994984291485893384756988629970535410830645166884016770455449485202322937831872971401936231479144072470006634137737619787536638967475113974047555264639112203078337887388139695048122786141436787661019703231426371681497787815059303411359248159369089202401371898293043930546169729514790768734746901361732566882863120911051536435192074721687791496820455514839800173418743282265867259035726798229314760194154950388373589568755349908431167091879340037980636826241593800886972848483542929950197503846069138898895777205207498540583776158946556008015143873938545704580474815583673423504832847490420822750047872219559989367642038563601920498988742072554921919882748483221405190256907539744678640877409289574528885587426323961500069780503586985346372755817962536065478732315498880150861127510560439662626843546111812820496136837826687158819008243103924409766120239581997003822697033637079899453724736522544282687905514007078061448017026469749648398155748563814304937593564324419360984270974226986774625184168396578209644950836549912792076085975804056916321276104670072733294401980685200822635189800666240666289651578429434620760264679664453950442195305028135790068940951006774213632947737452844009771037652735629894722065519895683375434808118657558341656393921620841975322573489097719883203905507969024493909498008552000947136451232592065137761769613797509739147468799856313042234781840878934183790423256306839464532233033125191546309152472491374157592432487652045293995809314082666213875939562497903092911060853121990557413285277424445094067407820118541305234593164580652884683504167674297132855473332155285041599874841587054498251612562959641597330262725990884951957387068597662262924579325728018186324417367453750533767817482454031970852543848017257722608446830311518717619887075015449179692696172462519995557967375630950421978216223939044552812633951076143320265788753490809972987284503545891674946948179016953096491843870373253263519454536333799619028931646919728693877398329126228902347997694146676149260706517735744716912070708746010950535565054096044750012983753744416261779733915740024285239771547641597040867322755096267290955005691244668999423449706210279310976276540932475000283639870064683952699153259661967224261687488945710381390229755677902454073274572237113363679566180886347754333749905328451898883489308375173163588057998763387116965399885724785983817067286777749449921769744313932367288066888825027494927772666573163385378119790801787488296142025683985051123530248711205453683587161923085282557622618716901020091006775162652614009092546976333707962995830334558970810163734312646715845532004831636066673924374093877424995215293197914551781073528754730216779920485523151116716499232666702179522552145433973181100492863312391077521622251974310675164765811474308597637390013827554277357693635872262379140560545009708355902150647900634231514680312575360077952017968529278379998860802663726449307688586226240496478117336364227652432088822439777102637032647253983839039254336835199277279291203625950832182627095828846133486475026827706319812484582111045646928734881321271781443298446503446229874978985548509333426764801109575472662008534467676257457179955327507859631103167414342449911090458401015712167786753331118650717176641842511532447006996202514398804710400173357576347049986633396338274928023375019762750559486010011230225932166331167074129388562133213744788912786482598663180881179438295383023754606761895162897721529321366624613021968911253105843177487509963206303914648014385891937215394829881273172406294659146265411637824348321319705709609543192434712192572337006700457035190601505919096436023121419488459484201634975639440851284459515395528266033077486635605416115201481192329041450528796641584682269683801848053007011752694645032745236895096942477509718153837373348426710219183334894192268320142322339543591352195647419254541701153972518277557745070316422268910914603514541801094387109269844433453075003404926015565191240733987575291872041870981436853324383537906102153758131722333458911195864833651136564196464681933894402382935849523087861248291440979352306407826483183358868274111719567420245030482676768028524868298718615619771324063836859030540652708716710302272553035360569605213272990707031718804692084114820246752364037496404530009073445903108661864199498034206815668047685607049791432059654016551180055689913928174462987631978139016472279671232054581583836128552529434447638409514782076139995355255033382995207015370980102734134355542058396548737857631815385924435900980510990937781956937696667767924328000694545236601371911443626866368342354151480234023635296165459288368086923025927723964070535604032037919647942469995623158426310378211670515477768681421576964118897385620130756592611145549204989443016206489456489964019627798266712822481221503833058004907209304803428200388197212799877226304380416930481464546513910124311567298181480164093191635104535015610938756623524320046998230766066375357029628355404687835057325072213576824125621773831893176470358909632418968465552089187203016921917205297102605440652002270930137306881282470921645712415469964774052332905063328701172201599263885771711823047750727028654893741970311564281871375604409875901689047813130501946126780973585877092762138426400428077555288281043897570479573928008988173048981424683311015136623270087042908156879718476966531319441280076142247989898625169721469284988025056696167279085621411745713837505260361117773333993372097243146241602234008845505178787825447932104092566147329354029498717429365966154205379722059451512153191290637161716638757535108007368875659951781266892395441889206331938961285109236828828780520950235739447185669813806573057397165126267641988160214781984861663745342028414816517823775941956361291606642685011408745690995255772533167356517297788094967664075273314713494485263411442383183717900385905701698067605965988571312336498541515983124194937389281172185236847001100989704695697488206091018868925614935796169714438820441788371517508792451729838044806362398024136803283495996606543754078708637313652614159314196823964768429683744953965812799609097624464958744402259297026711007730075062503859899715509976524977854912163356295066972490982718636004020548380052191247653914315979749832232901421240560249151070152698739229647592790883229027820338204950992581521306188265073147880373471464926079001795573990121395486699037443220122317849752649671364481487156959163578133368690669039260804421692016434719861145451628441668740492900037221327104932535294162246745610355397527788063633662837077437621376391888971316688576422054340825811609706861301500692020262678718702480387015902153857584453153919510347024216934061653378181009737019578768964474859818869965449298771098742861021350981404397676025675265343948262007047906233247453536024906890382671469360116349631981397339045410580995597981081109320458379625612294491342124211723315885414290097929664286151191673572742179407709290650524667046572544916484162758811177227832647751944062391752864329065662506581100335053698380023964653579959328878720430343895846480245528453469352870129527350172605881109713023421661211989293668147278677746328801518962849752168094774887664785699712865462179210863108799624808238680608783981317777491192807851979367912621045193106677121462269816687674247237443259914309141755607148073022952876951241588690841260481581236662554488420362944705373537964438429250554654130218616379334905826554302534468512273491305051953043184029076805926530055808769507394888542231570986903428902953174323885217075674942859724383378702425809403527829905537174552225227644297278387789811876744499846311935781111566862619814044442051503645963296732335463848610587594163906929700593456063197197202607774271131733233681538117682834566149251700042975711715305670740902241969272276713761247905160716513785384936331708478564546869754567320350240389003475002186571543664557533085165342762733376541549144450676961194633134983404884386936785025830848337687479006190327425453218151556998502413862582101811876552812529219198692839186050275735652710671094661645536971418105183366900764949065517638443821051523490807480147607871780945771639730305549343323981908291102414755352460626907392490045799977897424610794250154815383515923010481852921348975224045917881492501647568740373192465111074414829662258132100818536770684700407019560186273364219890983416503120868495536744001587661201662511167453743243051114129456634267308549351988216788223221484432895507360830141255681478816407530069639974045770046210142626899433662957663921431809221925527575934541721097272842695538958778461476940104670770915943111901001636669035091178227905027102162185178083096057884965818215966707305218587260864253169542391613105342065038285122219094211605213300337684260927681337129371189851681371488338022416098443061465146036649799065745395145119884612939282790088942882824772355641169398433382088140488668295487012149414656655149719889171504102837177990754621398003021823328817123934213991203367078910138526046475320512242309388543085690267544577361497301191767367518713312789658574854147978368454548946992891252755616185033522130339593152783429372832815841940163728242368311768600129628535075210496048512545924243822103476748485129588546476833777041386341964296324785065886383555783617208828105803296944258032685784243948018407729147149496294084735318377903932877613194912168308681974781559248704540726917011594248915337829859162573356367322497303017376035924929122872456681842932905035796122291957605468627952797246755643357177533900082381919749494216265961271871160284110544206577937708473604244372154806667591384305634436801738516384145041918798782395756851438142653481391921790118327751560033710643947201112306184009043558551701257036090592708524270532143026564891738015095111471370932215468758643417477860167775440970130552155465472314914635660968979792786865162078365270992678962372156770820477891919038092168539650642741925645379084499965388667431477113743396117291020486716646549586454486422462834519373571642832119470734380373207174476283649759797729887435122140112171263152770424697844168185408897455209026074470743452147638357873897011536751322726087979707982194858834734121022188394649095536910913086519009530499141879956282649795774754822634296578288146834047373343675305677245481520815305369997900082168241976543322737278723084583661684812660810055304039643551761450159294636896566632070841034263843759376624541716618423175388677283205233336376666346416513481431325819831682457585136088277354567397886406717854883013638995028024182829993421522055681694060238314619534125073876275591373622698656644895223460136891618169558697266899048833486538696039478522243118972120901936828578452887883280247940067774136106137971963097497059623967562840171966261942184517409127147000967587812394280605533836568077891633922974451976419772997439378805043286982555927861581841065707990309225610683277866787457247611919523475073896120530342274920947068059418800419789935184060860626923903386572724064784374936824185203721779020271076374150867851825765448476096375171826213250001141797798015402089283938421842184776532677085484815343394262669090959633244702596157348762397547084483926748935260801239471810092391401776328163148461677934388732972384579296652828075863909383827298742995228815545801919578462879191892550261456508102177081926189885726386481524202639359822941239788799744069335165898968823612901713869000410023091702629688374392602365479295326581781243945436536747344537587401767195424402623039645302161824765744072427298716791914529344618198834564565763775206303882637927284624037540057556020837098519077280606714437055073015191849838736878545373570689778539079650160461317844530663928894619802966225567759533539295660243724746475386614760166797383556807460922097112200251449276767923991500867959200589114745820425816156897254188724066136365338368654178771195187989056022667994953129100815334309566019383694096123235262799397792712900524637118123865527723998989955574547352426064121153377222873274229360340269626266504580889700230812163447702969307496623684507837711647707366067358659548346948833522009492196871238783955969817068481066584823993190588243990011900005833202588149049205200077456694724866796742772711199250164449396421597297940848600077875268555489759298742600626564357962201601782216004585838684968806464317930181483650567617846185894435321215959779743848431793757442142553366956525495081287334920846968203731619912238815626841295726229985552818509223210825643089875669292138011235329325540326334022055135202758449419928179394128981478348150823334552407782290291182340502321077373481636506919066542222747170958888983774883475223836472098330688511708600958730454587254309560008155239900205406920963862084619858492609889234447420489008921954655126601829817021160605392432395323127333044972288286386204928048484296440717703236926565645653012505881806873862000890764204708882069151953006048395159939533190341546548606211549345402581675384818208802805675444725103692063437262351195502611526755968457908588314522172707943185452687149381159326848558505532292002802286001534322365853052348034973801383634956874478972065696738067969737825012893861190966143965496687759739172236561172708398702091539224864089117826727213300520378501502920744088261032743249886446024495812731270619924673950027861043368631996491240657128240529984796080449240958280030689419999427182272311386421110957583140681924299102443513290258428279561153007286288278369788863415320100698514047300022070249758769622667380186600952801044952319824289481752556384829188088182825131568257579030146166769398997468498256323103057469806774902632155078239889621064245627034328257909694780070486503600252266551855401628353929550889321057908321537996144329868275834858776289161945108077378112889755184113254652224176644310494564181373885653916122519698531614836535645954041486158321391494831012940224693139145568642759588312828912481258811535527053860924513443105894452292585794523142878478080889371025367279277717319137383346570489656140222314287992983814898602068213671124074344668804978762058305878324397598847371036312079214596512276025843715086016173478503275913607509310241662719386028087519202942415076604504878701939404999261471235721985321108880798390061135956409358528830669540228126612065782973151028449439626512796685274773173462533008197917548635616593757258380752169748067552247404870081805330803911906373520031214460673796960007641451271397490168034198768950568012906909163298638809096060787314281126908520013517927323181660799008312226531834654228312143033315124446803527740047003787503181582520308630149871273800180582551684616982465390980013163149995451758930443374319058072198387178145501806684103960080733368643233701867933979777880454580159755817420963167458204198151852901775990673052198523170585489575757140469966184813259164365208263408160346896576405543517104965364039569351505417980849999718955666880422745114526007442639388400538121273754024141631933755240660628095353210765856567722526159606093732566910114735338806445789282514186992370761400690903592115329323201867455087865536519956257801756647690091541884389722950679778078356870909306799288226543373052567877028514895008590318228924573917857520096566481340947650364562641557417635069744037448217047449983493044757349843443299550338047365418927358136386333073841399386868302332104242889962163547340756515956587583036416247189741404673785317112933382905377811036588792210300213879820061572244317561605482643843206997335500154604176996179119457285755424850501481082678407289426567521695720480176128316128749791970300383325352623144620285375219053972312258392564162401767468166681102716271754104754515170823577934578906742445993780010986642973501228067275561289820950954379159595724891305187200310076626799921926391005679201793107942544583493148028078829495683918193109128005708017480881551187873516586536599382183556058277199625218985993202666299608269684291944294241304943338903925096577191168936874144646269204829053874255845105727138715656806981285852745540375334059030528007878403272154032785768571417231815284874720084508889848037777514022468969334134137272106332261875874010214211776564402173476101532007067724693535473115729980408867314320277275809504213056128497318318792347699751056083119224282951160795943090320335220235375882478635799834188267787708181729889981758154327092221908612445241207210679509648738878021381112602719024932041110421554937943986466417856194317010248067115875902770659742974506213831546908790251475694249250868509362179100682671058892509844078447032057833853628370577690708155927268547521408450650180540004251517686188753832397338076806851610601220449633368057370810617781287045233536869282713732459658215976475145117367262041370170775250662505235378768313694245932339919398621174812326940922304585888114738799815712265978122080480004088235652311288788411766439090487960058521821952974750647529875490436016578019838361469859210576814249940055299611864415832910055834379511686562464811035281077811636607958789952132883185189141117473304236212120150168836874025616730165452026622440088167876945555954158189905411305566340914435080140031607960387711071226114903257666826422674510481838296115617418559380762710034674442124937005506745302433993185109058691119121780681823817143262402191513987153941624501724270046132352013436521369558410794825443065855010467412263298019540825172324679785345739526451123465662827937642883513556322931440175436711334044378572893758158593540097552050198483207934538275896367015443414578239530516148751202095396596799228907751954048354153376840615988401875047553002673328011817497444922589675404812291181020774708974111648390601869788703817821858787658298760487470719508020044387765979930555510011174780320155229488467453742479332236278387174324691776176110969815127735996209188394326747609597946946582527265477363311022158147025216121400030565907711256969478246184611143529877045376700975887444147726119025775350361024548829124782791915186443099441780586161449486363469162182582933942053670913612725852549160987230838669922889121127739877127244919766774404842257896371737911373712065314617584666817130098462048569223891849001343754696813514658896330363732465997168964351473785335205450383491449603228568252806538836301401657293140280537858273650633076045415519435367636433714201887288360831479020556751473483105524246641641638883773882659861124200098682434760855230447821530129392491424913195428003687931645414518738526714083182851267317553449664085705211498701916174379237438014505395311894048838487862203963325706765566103177532147219305391197284320463348104489868938580285005186296748396536252355528438669883840083461365848343452404774183903899395175415845490360421010403215676482224119676303254653130924206373021082107736580610645989817092344070572893205034876186373836280421799776113701844676108367551433773456044785592248750075685432579359470408656133418874681187464960460531495929961542301813260528653236021412646557651870870411370140753615711540499091889303278213946263572174467770437321921134739596704096332900576957304852612643819334258863808300599128912944149985118019800328022015769434987647308920357451533258957773227798855399260888565943728812969361071324654746963504705923596926620426925011776671562940690112889653590521372569007565918689027306591439667656587909079739780355585692820337805899200713925455594848186011762391583289530708888698365473292754463360280236951284903308618808317215628725144633408131733056670860127557972065580880233866742298776188955341940192330618584161759775453421454971992086216807771382269570870052953456923861593490779869141338484620886544375299178022170755914679131314267035039353510614329162509633301055653300142953229287932825903368455877009475269334009515225632607346581393926772710701118574412604532279542607035305750290870115821247848678270236004571520072703504384767313563277110528115836673074340249061464550779211593002819555033539587683676899264411157534315186489498646004086016017480224213033223289866944182788252808469105276214409918726205102973238469286256965705370550272139034517913284074944577246702241412283453559725013642742545223997396860689297420538753900553024814680528963106598593173066573773849612427055361327691663139081029624619446933837822292731382436256406456247287148774220704359239600265751326486512153554299876546158046759496919498273078646200543419825902346038645666905084788223272908552697370346753955666502188755318160881295323433034964867326309127146509225858246847161906597912427373255524047456359484631834292080095318123128520243917606429344964448502995448945560508980351721873260502806542687571975103217909536313905184639649875093378479802225867144355052082641628781662982764273167800438161687389642041334169411897349257275781185092248183766612375953743959232692076150038155662992557349005976206613022141108124493988481175229745690359321260267393308305409337562813907405546110149223964560661211947603824598080878182970230601983310575888072786353841621517339593160489307831496125878784668770348806530531816888953741444123523180599500515995540423934803116815375958177875433059349353858005767866889299738245100573230001160455569618791284030440940359232668708374893489897943158225256656886921783026327808532898572886376623658399122199223448749690058826136123900385996532201834838554908915289932005976884868335754951592385689801409931510886711852096242489177429391741995423185303998584924742802548954933174073946187454945563627194998931871778322497798367673139823423045571993445696720781594337213752026820499455692251270365873321792311944390895200031728057579559799076418217683143443769846102446047432676143078496644173700800858186770052346888102696371962307916741326911135551292771784813999341540869334667078460485021371123090086611929792198397499516465348564496909168714442875783646154989195536686709578658206861652615243773133648739059750623256751106073466780075359784716768312742756934756145571581723931923713244505157522213123655653464306895727791286650186933989376585002756735052395218217565363143502708478668205324720528332318644924515848063152567396660560856198416311977911012851337543434423034542461217938430047476281264010125783556891183794544122482261850786059359019671746479445303436593912685443331631405526233480740747392961537599065453524177063899436812367994017951336520370978259225070734726435572248129989050088313041277498148864071379458236707244697907221967955338334000800469523297779481396772164602825095786318858232591614753258862931281619581842443329800774765696831662995993482580422269594178570878589679526388093266091993117009585588188493136765614829082298901539330394995181856272029935701888648041242739758315244306433015155195325370954772820971836637122396379108143035946340000747520426778079899295077691938484348432487294996949177759085007187639979070045480426251933038494332299001451704131749909671764544345491273098380210995091730276287875252024718094268650551635607754191588057871449425042769495306291736435996036365851005368330075915894606262155612723538298884328400453653114869382534411096142104411131648371030517278478447096640683385956916559738083461677457269055395410962953878229108260918768587596244090863333782925643502816859920128829804964835439034229395622758707625239870313225218677235019362201769145473810336278054098829505764551880770702254644800093031004536109504499096754134989103288024421859164161703262995934513902756065908440326771559088534617236843319929499362060667526505211996487059017756859108765788708947623182268667294205053738670328776836962703862431092776994926264805269571540615274495061082385689782820657300801450731236967329068073054144761018266393652210227430501800933880447453730885335334657487594397106141613003214418871094173250167904539251213187586646323022195653078651865698843288483389754361254843610699238161092308443149088243737639440575428189557029075779032723110007729736284189134980458810574087722040828790351617257671741220576525222078889511977459210031727604175291851777366450907725199543319843360727604852725832796198436585842545526346568592190889502282455947837896720510568574249795385022419728677432262319627145657753680225613291901448095348376117884562350501148640061703335486311864247105039577941033134905714378285565212739269027229103008863547134404342903154165964476118070636651584014003139464989899839258201769018942963847470292136906456454881986531719867472565524461705864925457153844595532803884083944687904352926824716128133092490410266486176648785248376708175836783107186007766064686867012953578874902780803879120995961824478536770353586654761951000940496363078728404157529100577502655703505363075998859072013728950568951950491791194464901831135598921735439462770187051611082680997024237566980310018902500253578332620712306658353996120646889000232723656048429269672943187722839688990751330919432147826434452045759006481837341220382119529284546413761296506609678680191681500947575630878403299433307151573126213291757864102253573370191508009721155355045290144063107357481962354380879817726052579672130990524071467480912849639050165538988889505723917303363593588736327907348517245390925884463713844677880918819907148891530354202684307491619777168724615254804535945377335037648647635810192309512547177795304557815101028066601138371320891395312266894384512905160487975723195446749157668767098926734899747631115002008343774095974397717177316374618058807930426692222257344221364587992016024618338824892535868053331572957520624221082586512106977842806637345894496183605357616570811740441207162202430238970497911567900176880756167562463526167247573263831362873698396633989802550618148452024885890164327450573280369698411686105194393280995891516863770270312362684653249767768146744463621834055738611547965502419844802813830321371717222335077062643610984011626673844713202030781800506082085094020785139529260890561539156859851355158897540387796697425910301454783793984397992007742596491915056503966490640748633060309662791345564756170921982206286666946064539263424043897162428605240141712213614857998418873297269304313142341390131064120477782736066516809650332252213237598432535347632589081887202008923275191746489717427843546927543384495930663676149019102691683496823086787581237468623836276327615299098890480790509335569902992196236959084278269163872149743082811393922077851084054160583424820395914666262755222563449941065008355552243067856728419014817473589842977793928112764523088637750612151182162365901040601494990747819737273025773472487933740261968125434813021592767486881141613092604611222620318410458993646602832902247414371922791679144479780760294151092562185968782225766222374223553872861998443771573667546296208762588792051898591220971415480984979490055614226910915485651454206023377024597882833839040652398343363611555929340810160010829703130361242332722106621927562001560180418091454723347033102498628258888442777300654697095314879559740984128959656898815749946150586762087634045327084565376462758216088286504279678972350632705096554067057459153366178826141783810493823314333935286461187182042974617512647228630614021770955853423054066456217772104639473069948541533511179876360824952665793756009192527070061180221575691491714746183670135364557272639791621421174052987109961058639854147605946177796246341922147289992554283199343212509262244008679968309908546503027270284785784890930717475357378496801542348757245477864944747687915030241543614558897657398007581298995074411360113726764172872166199951437365276734078396647292123018919334520099277924197317530473659337831016962230549246800166974444472029827685797417782369148835306029672255548783505498576680633540607786432941801008722316913277175339012708193737207719191717799302125406395860206870373667283068189274394024066445481591690650965423012834348144585109690860072154868337787193526092645541160805383202556622914798635544566785475840955900108982315228435920418630264948505764186094396647582711692197156627069336516309138632973174391760940088846124628011439637390348405731701245400474263561561863118002078986052097104516548566936022027527993630180009680088004711767771318564820506580801429547347154501906503430948101842091338006435253400260911796621538100597335474156358216662662389670449030494507227692447225959319677750023445305900061182796737051303652506400306234564779569824588431491997116057169301492723428265920979169808729833797276124198891618508343187308572172775920236626608404820149880480091141587374873096167543358451960510893628593699730309758834028028652892761771510611829371097633152761111419063583837313204500844969619128034791225956627948645271742429115150248938860138659802659848247381654969252608446464918232766781271746096720903815520204913723392994976899121502105140043151819464644721265263981541901359590106389429254412331278638828148610149607847049957970180133315131223249416945677751522213847083945970309326106351882903867617558893860756516162102837758646853006272027502752583331522593321351935579977399983352076825943399844684645759152977396267247244340234860606170448708387957951249111943375510903751694864327066664889703890366923692881804019892490196131563795256680123931833795338033729389797908260035834098270958380404619780189793747234559584405859063539846410051509858256661035684949686952501497150973421772550861364812550725004560042818295609758847302574096241141894262245781569077806064862057558096132993786144021905038639568673659134476018790471576685328590552181248843918526065773149650700851596236257711943309760208035482413479571923902887729792876730342493100741767760275189240468670802206691335172565690738914368092208091398750941298060227534723908424198783215754429111020792535533485212461407982507935829438568828517873880307132343601617455155064841713577462634086984621518846287835155784119110567843910481017912785841359694653775648372748642589719402473999311572343650731057078022811046524949250482228524536569929872483454912690237276616061649384551927868714167649189082425935646427896594784867908345972621894034463905773486171051701329305816990368428639026762399537607740765842906474999161830422274808206502002128637535540189383010678580818407052735116180074130579861666453774896014513416560901100822760888282332864838173957148981196176135316895397123022564994932580503042825319111605945902239481789276378981067762455320313666119114595893487367999694314464114097689258757426008959135531512751001351929706475005181244642965052180918695087103059692540951239966440110892433163208190703699848821806736336014350681828328359185431651054988932563330053826553628751649065078954343771519947238184717116808599507841412199188376963851603629709300633385519974798296233991398991236274808409821196569802688862862770738506885361848432058631890206110404777944438249764872161810911429529534125602855301935148534587171626772381243984089728377606169525312684618522053127812584490660770480928732790188722156120310034805963885276122764476819294223058419175084138610130646493728743258943436467110063352283741887684769230458758590001514520352097191101955665018030807825424311132520982043521100057745803703966614556378533421038400648059951685996918444386051992210543375606683310965845480631788324566843725062583332035045519834463507532835627748537239954963525865287917762996462930671664889362562747421238379473555449889192704089510440179987393915593427830211644255662006952421454527442700903140747253234798740676593219168535520756706931256894612868932042856685661387763884510588519380244073280887115703725453307144506144306170270807173695676382315155367386000706299941201380180804978904399018237825479770243685163714644782789394414177911033944513023421215304843484794984594138763639944009575693152216197704153436451301793301462972593021904437202295645252293072438553236024442788799641712603874457953494733660691681164660366508984298401596696309190082321556906598366381302574361625656425975909996464129338895189970421359535188802315286978009571994730616264461467370877289496659169570137046302941163875546688278840482740658982149799808132124046948303433119110860509440873686926765124418374449359488551422700481412742457571281819098016881492456624672674795277314718209315541877734913029615740971089301181292987309261795508019619206072076446669844757609097787473873161104025441755305810790148653998436474647041305338773104828057034503574133303034241394084845856876039678669316904621305839832059807659147051731724839618841191313523263532360238406763193510722125767568877726448823251687401135902605036556583017817499973718218549301087747544003138684642846407699687287093945881692718863986920168710793442376664366189845251092555341376451690466004369138459949527024051695278372083337236853934105493694824489880412493511200335327709457241020166797324720109840547465299135237867422339632566757107024106800671035300670188663472812449885226321986849694597464894198149728424607829558095538512560765661253201681810184267036442414611325620971117858775923665143862793413176597684216391093515684893260030051389364282996168644356150442072975727685515170085582423228864813110622123080616768333763339659407577503929173611456631104906902738644044183478885965090977339102456678986915663797479646526075880557195686662191652704585795510345456077720776798341575851275581535940183725514565300786751417030000139230475965833462850087743993715653578897194865183026221463009577149170540360012787872319488040235264971979296841636769985679767058133072854785225827360063006733114384676191013325243968065250760645515883544206183904248686965341993375436018944781669949435987047957295274619186289343518742747843188833263685376580685696414040612958036997958837938105097680648100269959359008096487456371095593706625115173134210658887052703043555173318902874396209125972084413985727873357597444549536051696674360556513180877195245957022965348269977027634018388149601020311731925786137020587492361937530508293784846459644302079302582614865078706639025559494892555612722744498072573208154325326492168674989006101230811771435987537907718247114818986606026419387315124994171271183192696826195150410430777386727739227291605706432857000575790521026273485103140689208212490019352050473417983975964794295711815592647440477403442477944958641183263683146024315661630014588192379327150406466598027409131076692524284021962662963310553101072711823488380407877474875777427030298707143896699039621516089920534850665437889103191105628784426166848028205310505810095046942078722373782375496464995420575833794087025751763654406388409933817091405013676644434016051442959749871325206097500572018583666742176753407321323749335872572007875041510610044219564817327090205882455476064344631273197815053647745063052362400460564587427725825964459016461574143055680732817027144300686270635177837909551250732141250643965842118146872231171401984594068133787431194244251778590695915059462493968878428914843291406817184684460634776871474995959779543964732042737073408618657093885877850781156494175273437310277388433496145378015267968430730724658045789569503202929470606601922111726854251951771172754527272383615448715087415835188322377027053506436495979926391322150327609729123402798343338725853966682267902126823115154956201987181184034047453468548025244009635560221219633617183443463165166592736325053893495350029110769206995789566675610961907728575578273960236740952339280362906806977152375629061170375318913618117017976275967536082831397398674952994997979588119701890817380018452916402864416110963935767839664455906484384382128001983577378829283603322686341289310550253015469163254907038747373338630575585909078433599812113283520988602777343143144509363032421940508268658558126040466423749017157827035395005577924377777403962654849645016592505975256562603731983800013029792077604054845178619253255112278925104180953299631010692876447899740358869567480788338108109559521913225851870624190185134260247887388080139632020034456081182906228886079976316783620274137180295436449358977060836467333759248772114036016505938502741336190483897185576467886016479128577812642173217519301527970884703675063903409999524966962028430646514733555754420885218173795184852858663978204502290144913728138231151581584174298625350999790826742445550489419133262735194247929513982518119258922934225097827879412364287083741647247880854499763313465886672506892975799565262997439789253005170396958189418481600484093894054510926380335174095882022212618260965477078044755477721000495580095409070907958075118487322094870074415335067656153352559179054927721044644743204385136418634393494101985295718870664323022247117836533080180681789722434775445491872737038487933538665133556414901944138077106044320930060580057887725034293741670751351416059401526935206706837767203551089673189491504039586358644907033024163812377022725776281937073836823873826901049354752342259362846203424674879323336280533392125896757568733014524555996095270787516440789615271254486541213295242881811581724622364468402519671755756435387622621854138680068427049286825564210192234672206185721561267101582683094093218030945173808229363349686164001978600000139846809667164896316248494028506435411391748081105897813910104048380580077056418487704983429189027603949341473299352044660815068251991707004510687028101414879263072811428502521562593438835938383578510732971613497468787843503553805683441571896106181968045366484366711873468267910745950312890564443829086410563121607359048537946169420460564943646935429239024607612814416777844490514089315041174819744968655308818866819420403185771814223139697745753138515052409788169729949531556959251758402835974810954957932189417948260321104018419632218050520958177656042335296748578372767566332275555520824022293026304268202205333329856137666948668222791013435290521413739471659813856490671910209387666125774035986060353545134211878303702457998468962834334914571623664871104482986707313882126855118653518289477185636205165873904687362415746507414767576110389686355103439376990397506391301876039425749693840216436341154919725460495644276276942520657879817246108917437401360423052365663926016076838542295429264730989175080184429917102612482520265452108515929944964499662920200728992440185553222587220131133462995987974710560368094397017940494752791766116143896792237878965590407538357000310981429703790234465079046286324214395023129532287493188865676257611912448310513675871851395885440061404937415712384639423582890712711926331618785815091729507026380448765628845934384730770622145329346777692638734759255195380796683776252636691334186413624541985355502030532882865490631981135192092944939549972271601749981203663345532044148222723738604752644975725871944054105889393189803852446180416030510866273053518109874588936409150503916738987569813289215511004401216629119159877815114177721368772114486332314641556420399241319059080495434126162270545044832131382297104712587082610158394267425722479922765284688645141734789888104925656123101431764923879249184502696508487765447747726448505327672327749534571526668033742309218198430248134233567700159564048391181028061091463710389908071289925428361114861185412628760163503456417099833506371378993466505495297493193826082846630441726119814582201500773575439872678951290301752988367807365125840450910228793543643630858448341650870375889934014014869492573997569689243994054371559698400954474772597444332386634514091294688552215382433582914619430978144496235256022526833901309376993791883047475777722467122948816092187981659482503719363588095032098244536671551657101271901078594312191588210959656605443035488989517201274828745040076487275309802088849772641599502411978174614224364425609733362126787304898097877585016546077625757237579376721754980005331923787486874874268733916013193320203742085328703886869229734660390134109592667891430646026740462382762589891169624344356784323938268525164138246342103540001492601416886587467128111553274963964633786350541277072783491019280702316598653982019904256154694973969336972888065086821289499642051189326724413952902681783726670146447277531789883739561011304043458606262104203512062886495632765314319800736186743715985055315563604863377993158031621853303447975681307127435601633654062234664611871697786933991850511297411350896209479296365113011360244257005981134391223835508516747689739191339794023897729922887240916036376948110087431091230055747920064826258190833419539489751343577074479710832164794548335773903159836418211941152434245304396334970047073422621707001153615970744617779694278410486140586092614443234745718642658479155152916611330599934511103594916782623347181398121912058598992867356899006423732671931934603874356284970845866525916091350958415128203736350816815261537504133768777900878705197616795834275353354830933151173215967092105592367271900519461336656910605280401543366567044959750451834827937545420127464256574885334069720387406971392633353128656822569905565974027222624724050117614735630240443933448736210633955429585557297792128607621578746932479590349554713739022245167259314734526498830212773930126246693735275381742120714297494054633261630811971216613699913072452689756253934776074467093472439383368189626968083369148595410059013011493259930809493899873590112715575396224268823731186053283342983806528803884770749345895357620777645229901147080567883686032665120373725792063363257529175977911524896894675886963147440838859796527675298442200240481222464065264571775030333397675214654393896131455189398092457796891277692116075383461469574045084955095849928502094449346459578733979355328855147191538383969915490367533663412991497504120486806362375942192985914210451525286369454447001086209231194779093408552004973549723351919020649710373331779479994133459108238737302465890246370033379208932596507300735251732559536862321143572447119994456441817184881806287341241713213092678386456047447982361357602223926251124641100102091595998799266167570426426573420752915172551536508864038752297306387854453844958272569006208226438598884167882068846094700198336465722942753848948951044384410020258218817647276839984504604826308285309743956128994367156436451732522812970234391100820084565989903078889771375249578001646150701184538236303237833995332176231249758967235854653992148143371308388560362159798461914230536574714208646203677415740432498447541262407135542893073918558391016576658039368077660507868457726323668716388892249321982749209629906436463415542975239292845433215532220789791877054003653565698715882306639746327696346199879781152119204012198101761570071209165121149772958145836544327287446473976380254565934289285240909477724143039500923231822145664907968732618182254060305176889621098385137014380830590497719087478609700209137496733486676019650595268884298493404066044708227208089566027016757885147283703809101061319513330952443186382099741672841708479750351495697007518508764958798288428503807054646641258207372951726040733050068664098406619280925820846007065727370381664839149145790021977636098136844627134254907660349306962055936481580892119186548258966004526870316355967746406907855701154721462658453618595793796268350499296531239976086653764280505069122618511357509506449110710402046585003275267177179362739600053260640500778135917648359278717085123384260263944546786412663517326126337044876759771616610005205127675283068160366617957322444788783911872206053768623010903796688985551602885892554284967820428062768143318286306948737152777001496654512282680600950209299682085111509842910609742576226765714903950120726625865697219295785439339638522030992218302851115867553059668920308669540229554732579504753617098034506994227619394632408687876725770910497534746249899943484422651592927737023344265706694640749411734238240989127829989786257418514541471025331710271028763669211885331382891214013154616152793799654433011568879341402546989173891203283491611813929306671020866339279100039676173595095584139777971936058396316235916353644839472341497138301780887335475561056808277262073288981419086232725109858387023899442655786447567952193858196350940639024607818694830184106251654311291126479603815144048245124079730491822710905884223624439240683840835245735781549641360570020743864558217669598432934940783751640897924862407543005083472325106025365939240333157884690604996331025271332814609386660496470261952243024228489483835941938851155792147147782053863986746012823189099853488518651560760548672655050045455074420442591784964538851585157124778389694447527359860562140854243292720780230211460593067107031271725164774812506764295064873240566839616879272975056164413488511189827916952956776475651051677926052186216108020032234763902724912980169782829409774929717658338898707449977522571303295133650447558236872193467969693436202419075396666823444386583025951550805036726995885381208654330052365627116223676629700919196452051092181796393376159705256170614370623124752523943439461596523465704610591959094412466494088467321184211790758744914035872877511943912473304531735674399011688869345751738601134878934079822554733714255804010695805471135526758814077919522602277085012524184951543512158312464445992675245179848577311988459761718175091817970620616437575671245884394535568472073333775537665342317046415796188802607176761244459695166650404573807370343591607273043579789028627284967485313515213623597729606356838717235727154516801738534876491252979675780101667110447829807608007276003896636615014154313483139899098386803824989752900485395937119942320695508209736180598127166960506372076868335559852871500620437748498938507377925003202226329602131843961034850932716939894176724832558344071044988961987531572377781430718245250147720883453818525163349253839485438626912124322557200098604319866601958857878201167797364059021076526242448809033527912036553745836728299001717942468117818194025020615504043844957693918191000738977375513197406034374751185047045810909199152659412674139391540336898814810324912276043818520132737343016454905828231172872409719199867328052069775899913522261073040111041650884731996564575758267592574355177889692061260654778691958523367959173199545237772306333129051995557519358175597861406862410776939295162288993995928535759074507086656774988374247838317874545838903027481785934477698533065684202620375381021696955881501322500145956304523557759040880262950888391751734532895615860823846114677839178487811184937158921887939235127777433135335616174606202457812007611826368737154945046766075321977556356254017305032626269875268041350331061535362636087406314359600800859349243062737753715446339352906492128017333106951787074941206554832814643780877944002409858049046709950796419151135066129875282162440231512919359691574706465912953476097078571404507738580473851353616381187153233860646794625154988327664608265959234639617636826601532161918098331703569542694467119820250550896311830767906969034906173331917949563582545284118552833394447816548789966013097210353085173781549456027423874943523855917777253004653081801767836100499593308459513165152329707941642300496763106828128843104003426302174494765776290361038728500244503440638755232890655207510597688483539033160694315990232351555084424395402437757737755658754489700212243685687289729348985374802468689261247520573013863657086638514330516790945786322091116172292623421879912907922470270667757936213430261624243795925885831304318530037050589265109419573569108618133871957165454338774585567362273683623524046848152192690415964182302784279251414321821429302374728807615401869391072570858775779993532507910102626743922226901812009250387099070614545640702090506208254950785761338995482590602610629489225238861189821026438694175378599969487769376601388500438523191917451171509447183994663315629737246560985445879611124506039834332414254665040931878557685492483359569031284696555943551847256971610045145128149692728380910143707563085991646125001071139381786755672826738270272178801268109760632318701455185429354196062161916789638269750877650829240492222813373244688358066158639110115147257864568688688082227256686425792434378192463159543914409057804247219447909963331425327934986709171916551056849812239580261161373439348177258662321510662693252098501386332343247885292746690901152911323353811469284229173268081267844489150257948097457559202546724081421924816326822911975203167680533777290905622240138653871962119375788740357387873410866303817572807648039397772014416690791162122803636657426418419216227118751645353206909863537232913315564839646187095599653776088780846528037348971075810657392421958188523469370041703597163100034406113522712166151563472062466467367771210869171340797026880987066472051426486814300929559042352261224396353628170348396878570826649017409335686277777618969951739043182860184137532426798298605339662430256632881580226655544338361603616926224596369559753256609630711906356746210623742183852217474015788721619010286722660219594774059595063079622678449340061582144493102897060375963178364032367292544274415810740792056943530557821441239093656713929319847679604251342165382223385326519757505186484085813652592649719672510455077184016478881404794619973390554975984015539386679227523015134801375243580883845496994072638468429533098881420180266319731590276339172240596011467063868005299916301546244034855063687192503230384105326610639319996517984979231199535552949059346036486742091190896953028210355914692247494189582494073997415635258811232963338519376754109786948285454281773736317744904568294674452538426438096309681737146630665429887835139399122107267138685320116618696369135228547177607569661217973069100821862436331406818696005845428420374303886211617116926781650687150032036321262553502373530311956803688544376276600170813298722209240833652875571539007261770593547867365946654903415258228698821713869998808814345373388963442594472606744606774097098382236219115430057400293654641740956770626157048052337074064218038541289130521859801907696841428338127673334869748353073509608774525945919805790162045392068155767422960335455859272163916501258305052069245676168978336731512414619212726103465659862079650199859904682673511223398057392767031646524343875220478857761956294581445542418544501699980697435904313375986680971641644649416210612385691371962118159330004480169980816706132674240331265279250278332383255563773643133289543031346026117301300652741559311091088451415920188159638284953862097107176731935614117877849948663586126319188175455999265715262563480161712129748698229745457048056352886079853616863306522169141184153278135551944767544380977685910249043839091035587128463314889850605918305294484597911281701522686869631475822851346025028530722686808036840770317036612821421132643898087287999013071057507753082604089793468411763728136264119083230987360989285265933606931981697490389457920029076253824315983197777641868606873194663881399082907803152664006114692611349270497073213877293549411459366610347812077470180654075400163651765012985591439609517833233820193264173720261073734028031054122267369921632667980950025766817212112656298370641447164789568777069386027532921331669630788317047105920700300215224573120651960264269296987329007505739223382184716027053601097529067085161704169105273796890017885979160009111890450282919133700260696119331854869245538626969009221509384299121510983012096913797584903376236879870609641969698986410893383837453198586483265937640552561578735801653263799711523327954563065718450699247006925006331349123419985497479027337738663343417645683212623003465967509979444571113083674259610980827883334088505263024354540681216487692868434539818492708577121729188435866366414277263912339718236650988660410001942217384665556735241676081421144771454658615546869386600185984948761258719394304158288887204424370883024064694440233216448594424366192439884926483254469986479275927202670265054895319523946680819972556795707736085953986295123275203020241704172372340108192870630455160524047001650985989293210791784108732281111142586006438670904552183460444840413219612273644472532476269729534879297603047945069615815367456578490708578190638348405893169730641136157301921338449416997851801388427730126958345941131161984081310699898787157643949227784269738012428124352719979004252812838424363735239538336401666038355110203116291677464275501174545917868946425883403112606119132222129946892796211967654340589519896746908551116488311926057112664453029219509882257881407571734127095688526324784912850710354464569564104596744867075218295829018020491219097060177806639915393446473324126391465989978326280691644786389430057461213839152947212016374912483591530376588847620030681517513336599346741163484789377819077861738477972309643406489615222410476890781969307613233519713046120325517585648183615633905576090860860746379238537305823298770158247562892871137055086879952611132517248457796102054939733831483430842236256420145756907550798904693790024259185153704726611872157423826300036564702168656911056062450757523575618446323628845549283520951952189255639687726608564243202690794143183755490816650888160498710727208323037192776258636228766493752516040715013022069958646709182033868182862440251447183511275163246913903834387759486963905959860746563694105839010564280124999523464206984689800182447519088389244582472717549235958646918637951775567464063301861462881405198566824521864220887709285830796867675869604865665835608611703934439233515993965903770044510806880620711550318650958244535571005786631901237211763520143032249591268775890780546518759761813271789639057713473059955148855479025192988888703602280608361508270961232872143505447997718241592323992992355851588373705998226577790359911079424946488314625385880932267822126917180914317806272969534739051188497589376170763212067336259558087758035416549345487417970445938469661232811563724843466618729507090709440700100318818099737705433634438005296260328822836929339213234103408570137157483035235582677772823055733050247830962831951796897760238691564839237863600165682166701035427194609308724030146612982459464891994623827215992542693562455263748409632788022064751952236176827126975269619265005416099280027467100183967281356716762422907314062839235952116409423345761894302682425949914912160592601124847255683032790260548689304914365557490153038411560125869559009167822721005512264697585977460099407420759303377617058164615026745204385218356439930707549666864516290503387333677762273135675270770307579824729079803486738369143251611318612168064486163585695803231159408319868082387383010726517227293686825423976653344719330934828251572547976813841502995566921215066377351633031499144638956393108008767691295635871487690372976729286650565780071342201354540007842605631213500365521875662643022698621665191722854911742757109026319645364708149083007203307892419731713184907454810774017769288662918714323619651489940281429981438803355827395738383711739616352299014898940390872994133539633351329370664253543575958009618171307725036568219320168978395101991492204668237946329996585270901591905409138508032280018095764547526493219652150495118547904098623941590156606255012979229027274971685917374606433302179418046605365389877085928640463839515779518441726057973767108161666365942050337185451907429382204028241673910471114597721754675201769618679585511893447512086299322310677428706025850587606625661026566239391369560374736981648632659190745407676475647385230938677602402262699614943624264239994431207671790713721400739669117008426198165670861097271445740379720738873913341210640460578609022542814064274908896850270775506817478643222073620145100522272074850938652518040619887222145803133853366628244158302456809474544172507005020009041383811684887219536528029430162159190497944176430792977606213374943322187106428628102213927713846020131851184177689758413959343050716210569072287634635965789224974631175565439833556323510484636631838886731414483358609278803024265352122327909639511569122643387176645604176754315108526443574915970115301093850341387443785370461047681809662712806162591239322965643065160870153522546162605508906786020514674577248405401058576241386807627778495756458745977142030451927269500482986033256817622702773839192261463639051796742895801606271001762963867690480474260287701364168211617201951479646277048628141228975281226611686088767755582313442222660932865850565070580823478538126186510207719162454377923424226918700687964257322612314360468402493214745527757763021436006167871730671098162645836856854811276873693223272282752041626992894368465974253861884065906550001455370273681719048625689887691424524276086258689234601266633372791527151699705549676586754401706156229323502495942571054301497653774811948787519766499580866417248757361584283773999750726205525663218427383901842487835773927450829377809580380614005690727196062719609540924573335022976054640820013547976226347620914550642012729351237163382620012432067235125649299344197785488340201691384601496342602856826322104585575931456311970669351677110033995882831356887929652575923857509281002496702356209310390814287640918759769463271116268237554016812429745430777880379961057932955706803881824304842106473699428416178509803388645577287714134216262457075314156391262986170312531332304795275839186610146640754506206727713347184912388081065635201953213499878651205214018198081379702034741627839146654523572811784990349085824209621932059748978558709455979708020385931454081744298126149296222887088713063476296989276718650111981983302173730960665527246717779953288569987121215599231510096679477645575900222160525332749487731606034042615805155180151566089996638768402997811233303133722371697620193375221189067742121434290016250286849053441453958944944485990516683430736235062644666245011324701419395619169186075704935101650562764014514490121877236183547505430622188546756500453918856413313907026518558278143287725035135947335891028513245636551089970435797115032774607984920864659840715554457749287635500862887848263695701934491161558006723559046394977746612137115186849896382463822362225259007035872452787238037677527274082694021975922540051370877901944937748789760072481764063973959804307132436811988016150757722346609611434016305667457382565124208040474604758218785346295223974218220004641222380153949360204476216084238835623833857939735809556361598125823312493172422709163697508980752406363331648939135765258759767916614880225599682584885268089695118408670484781125879574435723179560902460454272217784208991519666517259356474566809826909709459272403317507365126388434203265602875091962591252096080120721389341066512515942464472965304642957338228941172409053252919117920620370881372742762983794006697600162495763657587837658080408716642262684445805794492142400515916863167418370397847803233125268548575532160513323964721887302917516948054548900172048139456429283530696536285069884785763654078444546494761573224790316337766149165861003712067118498166475910196068187500031715434306729442893598845199030283251661195777010680622736595397681393063560634338715783765937305871001159627257108416783530888679497299802888792036810480708775355250363484355664793856312546970963831443898331981177030690414229362763742817935838062890852511772538633072010011160542693199882342011603795977694376536361151720546947686718614598460167143880289192191364143114096080418125209848013801774207377370767303909326342719167011129577716502688906930946289353295439390469553701128148104898837200846894555353217316964429457751426590324062830992481935401830711154075755200708232466219787926682373946047232771250765387260657636202931012177926988814769167611313599882519456858795206523102794317810310065295882867793095944182353791641867156179871883061209961459849321601670616877898493935180793063364136743067884600014100846527613103172325370364593645364033752627707240384621942989779085853346951061159086227442578028123815188466910122471720238165280180023385221260887939213373422913152682355244327048297647868669686472130441212557792947816702203038756477110907356348377042803346498368948811404167419763081814063169272229537108626216711976777812541501004137246323261749723361127761079015120816669183279438402076169915489997512832550538786946686247464357602313769053813771910929172525020425876445752243973426051529709386115628431036053252299703671133732045000942073379002458619435504936583489156751928586848745392982566863024026788898418505079941400805690839722278710421998748004221590759536383101031258129006148818090710800078315794294477209438481986254235976351611787124146179612626995083759840277140662730200224928506700084042392587148169447076641790214623532956294801211540669822145871809911012104904053670261477048240654930490476145812363712385497264997395453892196660095115399670246711706972380167308352946963464702575757480400800291430823401874966511178084192417507842459812884738423296090853188933972426387413458393793509404202501069108303383629987394548329844190039256863132739276186153216727833674927254709633000044673972497084826732244023600258911458247348725773569716927423458073526273481176046615593960028124183461258931898867416240926107912972604519445949036478312295157996593102222878468690873491445943503910392673765320584680502553628011863661996212390092921929240361831498939459786104830112534743098088897062396705285025926867872825917629062742038845559444970815347955091356066287913838493590600884011246879879982643420991419681869745749624049597271645720703023785186041526369729705601825997118439177981455093656008059519650829060709622930984490607505991711824419289772744178400847609639646959039064221680371347577441626752201627400102040610946377389567883270678299376655763841608329354557306949952462502949934778663767834384373691661554712900451790826579259919539606812729353290181389249480559708491938902433181914830533672110304307842733368594758868580102113284968259867810624625861110390748745630703066353518676608463409581769637254420560236036688166302275807057443958162388708429220538032069136383773700158703695577052934451988980045427265847950914982068800543367192352799316740196081937276740231661136032325301821789582351970344211150660704566087207790975537785886242431959895908961044522958371444197336860417194069881877394535185663054388101465085137579444247876916323352946697102466806079042627323493309206196142623062231436418996837461838849815245853970098817706623105652653235378755282351686371599258558206682505477662917133260369438301546064066001300918499732092368241020993306621788692760519832670073614980156942618717401383221846351322377073619162495742945241595331072131754016875028068805410526594325757169212789302811338224755820931139701530685849656027486139309482119784665392293991401387091757243855479629103624572358643619698039184065976969406045567986579850577274734633345273578471709002101370103061990915784206144386544930697670252628870480574528171476106522611152250430682827496891062244209392908438274033819480984615354676801995243350255658377779397844862836580843041146538666100167193119019962029883127769588128202848543678284920584290115289095644696521958119004549110564374515153531050791423104680430794301531445948208893799209813878036512282774365388489303008213889351687919119405664331364574558314580664579220697109894645436764799777928042091917623027094658584693403720668483738297088250211745965808076079749215528200668127525975661593142463234319506216904580281485366895576363031755899182723150875478804741295649078365550858055350681814534652969868615891023132220058943560974604254675599674156343588138969366117966534875120037971380675616894270587069225268312361484416110063690276894014407385055628072906571900313505611859259853776821085798049753578302399127661403574782019343031941047283771819255989163582340676183937811264223598228799340582699976209375096590882171680875633737825922557315447883567840761911421579437128052409957702900538280666892680770973411875899845249621997534205740938097877636043389495559724331161217181289268595242991913890539673752805973478399653709146718096285735519364002075080241856524660808569611087258660602666795994353300026937813466130053548003645178912598442662620559119862798685672880052026115108185790777859227194421214817287394614246785874473242642316059164238279642496363436715549713185387260050648123262965911948495379114285015864034036445822252028139986188850564701101445510193790197100549712571663594120308097365309514155653546158655543472661031793921656526682947769314063184339427005282762617283002023344558302657340801239004202023212050581550617049915298433374088024535761993491173771708485170497824833757894524709041406578155151241388707661915043947475866438476749788441892615332757765666176410051417666462124156539953169398807811320340666961185102475197856719849646250693900284928884080556721442740542541395888295046000885080978154872288867786053366832146744986910514434412684639917650341289461516157290920921314088952863981802113789587515165103450980048402813627809461135494474087472127016647077777095346825513471607131146488625915060753622192697618331134181091150653268896754728738937700925807323950484836429209368525911913783945396644108481210388773697661581192855313142245740244770293726998741851506567540519932109979238650449089987526081431122546288763048192498818401977597025789892480320696236019779222615734423145404012705389099991408544420149515199882145392023692181212462925004708078072163306033480969478008219959422123883030548494737691069056098303421485404908389529812864985745240612145567726777377128750988098519563535881496250184168251322848646076517658128020255981167611897416569427264670684619748823025476506949303525181202900068745749970551607883500839954975476367255093170849685184911974507399051158462502648495242983814606264181368072962092644004048639330137766906679606218247313052154599583597911387500121694120856423429207091861796278140237504829808081272930192974045301642163547763492208183407064179487041170352032756435268781345953373498839541575289379760492722627191765762009881801762189708392227861528280066648684801164790556574904775266097109914485095265940164294304264103119047164919343110740420508180766584097711921713907533118044401602829296054519403683993334193057169657530612841507531858050230529388495798768727631912735524759837927973879088373253226042263033771895155662461189751814597603985577143907743427397676945804490794870796820368941238520052553733039361914218447056177591582793681627724769675364102922371803911600055816260058956545299189517052631246653041003095800903188030106972969480603497001403448164190321489179559089225179359474960202851188968463336480194707810733562959719379240539415497633765915618381152613069431602217475606658398091384774503798474344623278547418719081062139592916014434641410622970623776543340839386724344132247595718944457782760944018769151818449444843227364649917878486241806969923545364194246065374954186816883743844290918989531096930655674647759034866943711799268264316294335158609820412918584216457571932295081868256095304001312782067881631297727127456227021754420780770823114587297743389647066395144119345746325404579507309209351502617646824973596787955194526985897616390298487513817204925819202782709344680165809628667589478457825487394116487948726257008355188693511131398211893777124567930242546818045336494089410924267415387412687460304379745365624213404195987034977345545845028668587232496934084542882144035392715862593983397394180086182260837998435743990694983753177750342772231408331437228213945973636830865035464014312241811812713696584611146666801483599404859419097612190310965988509173149976143483038261318477916049455163167302547812782358095494366142628696279909591738403059008764814977141765831551018343034061604600256116578151809588352654514354947530062200654932245929396124841158395272507534427250569168821203801242121039680370997967463584227298467427553913241368194406068339696976151401311269819594255048407146467008446188876748806621661922025278600171207685242797200936983777103620260026281620364833666853974842904078816707974726396706775719048980475108248087613041812209946849750261207287150835167754515359828878055523693174847009215052519583186772735713216041374792585220718274643259795565228321815006446064917296706517152028434546530902016364492997186997786550159767115340710041646240448764894546299716081553358896338541384966622727887922149218752638182726400597620764792377620508770531820836941366600132480592056284114740236702074079648673207593354392974156973504599999569410650830267972939321258680211987150465690790712869823819308468466000472944560022010196779942664067322155065686358727902694341000739752846226456915650132524463507380903460900948629216187162999699691142365470884766124911879284425108743071659702905395899905451532225881259942762494620274010233901562712142262972598579241975948224998187464382372416513414245277594100743147303758013307654839990791086273174653826472216023822483566012014002999043997580724447953382666358373330127022698451691946747632477798759619904380133341485797836759060928342487668432679230217316796773038723605940305987681042342161224301669102547572248393482535714561182043517312147646930648617546291186791502936339339804760738555461295004822878935877699968451484975275142955681649770806259577402402407166653529268281309312332242638835308025654512293650593975270323323982438760475867242227758706642482552628102471526925765800569835243584872722892015964314345369781637730734583541739101031679516689194735282462857946232243405921665639673749979207394981042649864932168905135240184807223596155482395265833001707293193089553620412001593891871585836137298616994281778372358131709205675654495228200888528648107566842301858557897151781244277902481709175843103043696581362391047590361766494543775222271503308282814053297586366684252489375805813692323884475655712872453401224100755595173785670598084614802803433963095446848845220449084612053640549247750543308349162671308316562991022717013989417166988803024153789838270537591885619402792843188880497895956957247930680595100597280669781764027782971185314361474323501724417886944070927153876364177139734453482957959514309309956792550098704468994006755816612796572653706007201011127848977823217219202264581004576264462686318405663940886889733730431200725827381618519760167607143951231559987058519147811229154798007637359499374830237341458965746771830035174503993331070483419669560668693989719791233474580151234930432898029020375031553664185677040771955631916016920664679720893363156484664627455804391777487677874093024155573028424734672432282562456491255011307049308680045856010399979077223744482667011918897515963813112225710634690877089243376872749634986488910104040064442498025769929430536514974099518170058372886960377918936809717934832987750466637365727887477622020427984615692164580908964882751264760136034573504669101824816494727903336827147931964940649049207446288429555510669130543866372377498339616759573363204290185286705999285282795174412470866235506815723750034061345974737084600845188003004381342146165000028514572612619529313690773090608669435460177497215127106204139526866183361547785673566412771587381136143482356389603786184354292516547551334354213377694213402562913264829485483563839925951677303611001949508299616481804333438470216143957352315445016420090930793754230027288804734138933603682150272128007283620903709096054317296629919465559553103681696247832024124938775906146497369055762785963692991761755658526495204949771027653368235269681481783989731566846758619075203573623643637086080282498330637520365037557447166644305753386059047695601469433110662705011042013568468571067602707424769234878218509446829856394399688547879685943022561072766649777073075627614716202439379592634782244997869915898560684964176051533117247160629488294518302850752093856009554200023348664573323605649745822042785701391899504418297890827143985713743424739936025080940302132871276243914638965479748740874395539676653347982446991159106043855590446496857191726891448990826471606467613311317885611933701038685513270002551292273986220737111201903243972646680068610182865704773530510669101763612043868234918643739878236081435515100670713620791887841855691641333088900913325149130065766787462794785273531521810164986676181090875791778118765758612335832796891250154080326804457622982013547415823810602955995317332586375204455782201864046103037508632381983700409509663182868760674446980427458952656748943311200184000193095600633706343277572603832479729785487750065930197860235425322106389571263297231645826450561539871059750368752215554326268472082171367559239710163468420931821445706683739920545710472419747476465686569795694335281996247174732151217850374870928362657924144537621186459299203504386182679259871086106386148001115939137664087082530544684784769816909912969898694736272524004899083170392899834777254009597339098353588274078146072874180372713300408859059601086769400919021388252220753181112852868593377555134492676251500446936877832602115474280774313496448041732899354280487925757501972999048502817860186070510402231203038113023083708997574463451030674358296583186013519271320719905532039317819965814957043198307549994334363405002859004861463925913014261906862455664431059525725627422995468093739115837707754083479181429108632881256765094062332930968981040307529665555583886573091570572282588058058707282202026220813920823195065868092568433825297319302260863007224687918371953373323620203221296534749115202571598207215258168596013336799620479056818812046819175977655483185997753894977320236001313135599497991477196116627286864573783269297376510114290759989565109843378640070763162807541453545572121208719812516306500032001670284881551669148500278975790535054414336535571076429608379493572021107234452729764378242081177975554103728280390844224899745900135751590608262044749770291239118162329015640270060216819875314851573175314798126893991605900039093159046614640817954627579349049225760172550851620311424739334694433398623714664198877079858667409354406107870252347813019057792419913872114881297097592333332345873272200897632462954589242975369417419619143435532491388136264986638342650439489233595377287751231814485199956165699778494012487729550099733791215251985485365774670677296949700083945723331361333957106494008557846718066490797556436157919675247673730244826197335598007791960468707348392219904919014605376472339371142653095228030061926015101721484527544455532068725661315816022867620791752046269887044070899066301326883688577076268570758432648407772666193278768933803061915187502606958024510843101487139735918567540747490820287466613331860556900466326345498399999967739836339585867475218291522908326075246215060764709726053300530076966809374297854828677309882209816736557659070637143079455699011409571477062232966697660800471282483378103753847669262994302011512514683865317159250679007842352823594163153966419365494529937567871041715177975803966101172514172149526977981713433520751816108101956047905984173785260526378151276152151065252496168670586733282935430610926754890027834869406826361359678954832006918350461543265445884945061114267558542057515509596449475508561246666875194859395870665811212411601673532679396050943473895717120019745741093610822837843853030490807599496914315670271954209890842121909547190889079788154321490592468145307750177401738489903642419663754888397524622719211046827877772937871018461707024613681284009752608230219905598993415273703824843628129801492623733146093347321560281493156326227150877918514768287855177050773881111198485437591834585825799029448207477820253606166820707117387697692871396591426745801986303364503052137832007306611889336768714725468680583480480760378477625307901102605324128972242999039691894413167443447738136223739167880743909209825497546257398836134213619243398645170297842721975860779723623034270567720737809975872649703379294743491192433944557871741461298396653554150704542143723725692194574026936094584223442265699129043540594946247802616955177661148578424005880245276035059172661443176455123226889967792870864514547887439444972317247019795159268582662127693907526398801984698002832578465868276127092522782776570698504527960071013869083145761705752693815642788342450690578516231935329495270538818879258337559355980161020337890287394329576160351524112912764423901532961096299776137311309015095203216402037674430762885440407050842384556540377485790633364984859881696197754892216824174461361043235921099927963682661828828664975203536953371782389309358481909062333174459149385521431240909784129989715875783517600731104811150802277251041312768064915700721542184691430061203508356683851203203572294394832331021854995556331082944280323440904770300459136085415137460341945163164841285951397567787433272100559467083411952228773318023966967610068562852872111684583834118104921448591289011406545893135048254839845136887585513464143900454240711653456677173185006815165550363495867889996479072293393966512350224068463095432142956356306277093479009458714624658923887390204231634793879801076523336384426825019087337103462652150456405371120321061824264454023756808644567767681833402532887909229602401438321429777458068728429290350468016658921712823858238730799582088177369913692620651178776249041583692107933680558524528152913488665150811845165558396283095065331735249486143002308973085292076212718596207418608290683698651531778074245948990270484747722303569717814547135379086500504092836586577317332034494088724640391217590577864876799896932307954420821516642990473867208771580301761980539150634896479078538587850434778166720898692897874037613790191668279815755494986670333975640548393612509283812584614261756337136066726847995159758775674908901265469233955352825084262777087183131555146302696487861812672878596759368313187830473638361163515546743986358763685225603223879562889130435954176952255626795379766767041341998897882851638108152273765660225408925620724141818876825339833591194056974655501270815952369630884294868965722085865689844284461250990763069402891190355694722598491827951284508790929942662509447260679385713896222459823445810280613056460615986353730129796920931507451034286469929483498824409160992673196735861727790991772191520245223181523190694732713395912090562503788174691298886223053335883673871839695193080523217491982929506754507398865891768313662620518149499400239289013734626070902402791877710748657733382718150716971562464010625474079152881631132794952333774482306973742362621620998628810537499834329416990460184402052562030469353852298793650858286885571338281579096727179301354458638869877698480538162323915789951945233570963889803480104082007167829225574667883326678789818584406835911838791622560041922190373653946275212139033233941114962969021435571134661226453245438993641173946365691002441293821769193455756919448753031204193397732930196842051619094574760557528707808921542440145027239994485492309281094719219731055851715046807025689738003248041514791086047704025342971667258284940533584417347649337033253228119563877353245009422577694565251306114043382255587246987204502751984788016944162300522845451730577365202350937349789922106347232053118175301631797311289842529314138065322619045930588015993123306525127329196988684933651812010393923198388116431163907157359895306740425672493386020961505920847625127243797364648603479505200554389632986676460235324795478623417426218145380172274977100441384158881495639278810816835393493937588691320535668293997702183621582570625418422647992529887786743792255512749729740263440300474982619450809789781830148158045605557863094714069867739708175428519036762950679630317685425060335107384930046820035103384279235141939154855191076891937157539733212115737270107387202878244274280834853931959338620852946606330163901750012140638410518764230426768911690454172107253328895714508699415395701625375723934984313399520358725078155366526427849880227538021725815513261117527280669407774530903099752665488079714338292939354566519516617895628564548128250898271722891662085579974560737522677043950283544916779203348595088731833213399576621482654694051159248795804402894819973678406552047102945816591875440856588193004656800379517027506697004645747562910693062366868395413672963686904234908393420869506323317011445353674911023794735038082339400586469018517594501165746120065932221245231638750283971622695742809349769629092902169546638309652334732913728706748884826055908534093550747166076087958223606229335707809049510491477917517001462903128375271280728099964670473369833499508982330004141280116881361549452098076993967371484924259931115537530798947765217747211500963930317258107374496282656116680879915811481276156998555084007561373381711011789860653299045273894381287549010157067997025201272621946381174438073471116085838989810034455857811743625047723401741456536093281417778657518483768935801490176530981432582007673913174281607503304031090061484238037090647481818419947793892544097017473848164661285278180225706855552979800850282390825775647341304257575367453450026036072497407296198475169310859441575642703669733511165421214462181821528056442477798102280063385319245928295997123688449942660575886355127013295205247771172038414420273367914460377329564193279203536975303561007832075149909940105353812358042747373247306597906004345247545028138588764231917528622008486768363259008877579445610884452219831971825014665650928708253845754033110150589123679299068010104731762750663608595414859465471324771507759601956030018043399875305278285332726331998225779344602397096715051784491162723835623063913472311305060402006810429175964423381068149523652688041283438862864278756350240345783548518287418088110719020606653066529899094554964433003824326679922614997031272591585889400346140228531215957318816996239697348618911573193568217475565341160821513590627784156532292542207337719982887449376855576513691884334054039548839604193774638263175740150545633274875320959633952872113409702498720029402662172687349424818889119709391423382102791485643760815325867616500034413296863383811592333721390112580120909114064903883072698127629081621505564337209543381083144442898620483904212278006556643296272603048065559380849477878027156241172492539292125410735803783756252364867774124633591307603350173133156155357329931605793893304640098260482647441020488733164412213692024581587768981575509730898244930379461011793352918889536743522079519864230955068355003924620485956098989875053735196779764506898783191671218335746699393656527827035946036582293233650834185624592202804929157759781189312318794856056526450539787189182978376075075074262282036022164893738868835759132871062804148161248196479808447961776825690665077016918825598694217055261123906446355698342648981316259603765330664349718118672766634052791683132994013653052508323417707249772029375336339485256228756861144133228454540389598495358760609299014831405859821365887036122956673624143085268171438167496472328244626883704483145236854068025647262980692792457476319866156993774265216115510019163373889257731031257994637997843398994645289138914863208025671305854474272449980354604003120373642578363388265850097839110275414697148131240875519566553754318455255806091133545495860913312536853965710145187923830953687509583013588995051452298455139842688617772333271030558421837571185644830946112938426598687530153668349544331137471950013883978623303468543327541572306623385804490896755636886249471548662627677007413983806820794224688343079541202045330322670650589213602112595090884927694548607987457552846315489018829126159252578283949933464727691109200842474473649642174440081154423080040992086713442401073707575688697300271262369469356845870707170008836394419809856676783086758181361381379776406853571833115786100086235572396614801276425230175964886857536890477404367566285187520200961532875189521240091271569099090908857120070117294225025588576789476108472764809002913190282280760325660169072769931507471166297790123848496702456898633914032752332839983031288733227692370470788710111492667229698459769183489095717750760428423387873391426473953471282221064633805256383227108401107067610227309352515879808196568621965500399578583500829479402727270998757540852726615649858838858645673407799166866948503065942620578329745376994980665311350300908678106322426389711369747579804565477673137747016654061516515712783656104904232530228960021782460882848797056926470100033647576988443472355830457719389557573002717926413110032158967570920597279988162139448436773539034875842506381101297278243153603405558503789614954102420302270458987307926228996438590647796795929036390968948570145922323096905118041597434293935284813774838856164363136354603755559204478325802105147404445462289313209886737907549869657602887782874571895365001419012331468671080541854018539533773148382849696284860254297067968773835191289773831299502929097966937608228469999849662533892202073818963497574157070025062472692296978743938543161029115122699473167951054825472020550157571947389349660277899345125801335071556613783764242211506469272808771974598356907365929424206768345829273728233792990020044450202050869379366175622739451874894194925405094709319970009454527493299668965459591028108688713713406614709104014647746828563174525937973488698262654116627176691416548936868408964459441009138783289829018145849934458972054188053336354592029132232005020194109158611907688789624836232539051200591942015934816712893711740420458702468547433779350551643934351701270058979437017178674288832983604720415005835169968743178815206892274506115370010389497102376516375206631140173871527103093722753895752326584589765047924256811832801789279530346230996817122023081966412884441588032973432652688225996919999039930402545169965165135620605564466353646957035441644777412399171174424980778161560105756530619878198892670106185286677485755461750572016964166088056624910535907820221573028392498468530914149093418153424596121786312755923058955268836456332390369164005112293110957627389864850791087366725676313512769861567521552898016891404106620648348817126869521009206858470382500416913608579868613132567901925980334913530923516932920724749616982141700648434538133365367625868435772935292024199031953537235092191878859963952216445453574641037284967914441705014181934342551208148547869659576848548255070552800190816831875310143845713127924531879691842129044321050606123772428234698640727582844991643976652022546104595039865431904267565057714651115715748666023857229565283646907808377270704398841792256111747201441467432774434083665513686043104826043404014906604535801196842499189460268641122905826170326600385351941224693275777842501741117571122536066545747827623738111395448802553615276400227510897222138828151799360476082921052739089389281021019475376307903573150374069469867464239232339036986811104833428312606529662692487330658278153646444708142696592370099026379959238738612504189271367310088309113470834681982185591208483674488521780327114466215798306563179125167290157028743223790269958003645595490412028796631740563248555418959109013665698562948843979999117134694619737475944547946890085066003248767839798811164218145148453621844255344990033030579457595620151926759574217718968642724822799774036956514613066554457110915248439122417563423958870637053561222825157960095114663473080375894838642707176344722073237675416740362020315264435142726892257639111810682483949567119530938085478110671377939077616258347033364508273781914142685232941041719547580387788992896969538629340123055738445647415934909510247001246661508261063898726197359928625033952975427378908174828700956769803708591904490949350923399977662918819083346438832637826160381022770798304166967870773251355754636011241644707156568914169908165115782269233097426942710798360068695313087406559501515835216572874215825738127011889156460173141801680705705821520302901639157798622277389740043267187366878477884289601293914443884683603273102171474444149646707123702799833623189669263691045638143307983382754792245529577494307642805444240644044464514231691262950794744770309352911826584895032176566653027254183120910321602120230487795029173862354434802118270278197031523414493675904913425665657156524707068084364808518728982380826759050307940961232208009282377801759319486347568163744839249197938208592742877266692699433168745291557548667027416391721249820433601050675918268800604094675851876431923543741363046257070337627632097190389724386752046985291559271229650513750478100167544524750079820439146579686370125513699395263433360408146060702564397222158903233445756735198913309928942676696107388710135488599617091413712736966363765478033946539954762816855093141771638181731780860309285838916789740637759442940220890383312413793322312100703571139557347768141556614368498691098789952997022923376125540385852411626189649609431166873057952825153703392883930832744622668324657282134144043559298209820983080801897118894289699058371617369358572834857155176784606062734649821950445920873519705528554889720880360277810439134626318853899804406875833263029489537284706308148965977666132672381271841659189253659464054135740315890174283083324645168076750381170751416850442970290499835904969400413074790792686888521103592019128684915665586263079596741479547025003924511557069656936718772390110055164297190977811953712905935296545938127439929965907108994429119584132807548029464081192084922401540404582028287211991161677706147810297581569939569610322029879124217586636218567251413396660135588701454046021547246439111742503596149033807522422069345430697714563744716237418432614347079442271982757804452153119052423326452071597971344347941195843666060449099021151146579386362147576378347956230353977860732831945245995943605734740807925283924566990111695309830776301150190217658557741453508409449470935624388612512298300009890669395842350976914731638066322436849816548355497625443700285140288304180191944790791606651087377857857508570277880809659974323043900685313732658107956971081037826013664623435259900217935191827640436737422328520714883166540048274340398749691494887688825398781095991291124574729306121119770477174273778998054835193399815507106853202966245197756193058524763247291360480814379631092465618664791409306882430908865716820968982723783294232239688108474060124894120863104601748644092579412048619663462042053477175236993647730590386304173951031033097300880819023559275796521701908826213076409077382201505985597828021056606339642180365785559932557556597760486312296499898166198122598962845483973005069742055332802683972996189876914450568035787111388460210282756722633658116497020363005182769048693861893703109737398176628483881287933206052839564271175880308581338686325329988449120696729273764402355889482451369694190741201622000795225134934353725951932120757698783123685478299887735397432302581807870032129025741482500188164788108084835810354144681960160377557515836076390047704427267074871826464914137413821605722370264481941368677450298416517589211107862646065336973847652148913529691010847909447906563524636598169825262033489724337452145590787266612677651527483036166416978226339423734451002937944594115759298963698042646900904783923336113876393965804611322749255457038928307345607912888968168618905520587186759669147431444770108661606380741916020831508253683542369343439869636417532141607239952945142731788745145836985437215382955888519848598854087898737026681768018193147500349280300267020638282372408265364333358555382712467027140097876506713938549214185534197175205861490108116264431246555898601634984010159431727788735029926833316219316920448753534478111530596546196967837053006179376675826294200106644596239256710573976031887168133342824490943055455952083228080843342869480626446292239212977457334044807921069176909222468825367632662591659681328914641962614021750145665480465169518866700847504991515844717910455827210919327340649071360071061396601321555243307782984612378145630362767900823674542892997654771873437599976570602187004298258152818180174455304822891776504227166263847157193922299164772657149077375402676472906012136370752382822700794975440756227057500910599517566226959633244367593828222611568690148815920491127383067532421201327398295889608057300301233982306945932447856132288776150621267240856002070280976883227267765168423303898550298977335442667662776847292980681643893026486255901611679193678880710318191703078891340139277617409368200404090500195703188450588895243871931386902482541620892960818964187190270164428398088632480702189943749613655305348857451327255787716211091601604840686894981868819400595421986333442527467254997934956787011165639375313183061189315125611303002025356228403543370098014049169516389915999133816356554546097765667774535775148493623213792881843892925403536372183200100176249114141199956387112729370558584393596541373458025813460835885705982075262993752067379969822412669626024170671591051446204640816127850641290742119257580778302509923761042901155183017932629616294008272428632146680593332718415878737210130155079715450369132381241954655489984370429019548687987741075930072467279121814397570097799882444955721527120826306499580450502794738801958185314752351645594739187142180763065578207823444609521879435971287351260304610880433963965049042608071043327355197580873795238022489765382734478944433490512166147918345321302062134341330291021979628641866005756223527497995388923776369793417117079959890882984414787727078333264356897622349440790490860904681224179368112593533549959056869337237860839903787254565019227073543137426398323206936346165851209453327550077081547436678638368077098382504274593875902142270434234586996501511420282783362473774581428198665690620333655945066246689790715237928187051219785340515224456250514180206495087686040907378576488697170629408915021327075822784174865948170935611159153220920125379909520928451894383741210177254751510278867972665221840682432982913014546460898377446568095755262217416186366744736478692777338887381624080270212462692377851442421069946952313691488407167401449396779708058376504501705363399992946308298831745562877794391519683099560524083498095028153087979003524179330502052173057311125316198941238392068789478569707799814318534888522642341406636506067271796205938171247386661614750434476359825188726455366008421077931918477814974256227900288217384262451605498207558605154506094177189297637916802935548723935452281558989940687879484266249482174864038425205390393025544685770130098634350673270623079033487618336249190058776100449650368171554990926432865608232095120364251226015977848908177177498098114682465495799427868962040269421369002093955210597909168253125983624704023643056337628012662414492384957267693131237545043956449027625203120462602089252137773883414948202771131221070155398715607582967098480218794501328733402650207543620280177386631062728175198690428864134535865108379276499410918886287020338959613208253486420632389657086667037319937401674099285272096673876819028846341376729402023802217758920075765806682011607064446113652835093820195015149233518072241632240229933408696521962865405301892405274231091152348648240557302502142079013414233724844769147973130801788796287566514456007590563579349556386031632091897510799664380391783139733111141469787198355616824250283129679272838732787539893540200717136023413273421751795537833096531876904240550455563601880436166182754096820260253170826625518705761303672180805265536462454609583971130644960902559289605496701139644184974573303020711815498979004946955807986604184361859294375842693782441175236361205238823423654980124983457551923005493169363850243063795890964153254714267669472362795867094668559137563554361203659670003612876675939074926486680261440532993198317409021946635751280632233129699329388579151471194263211353984347331122128002818304377195379509281983430502898344504853574373898040495874351806747650796115056447017105600417047971142711176496753446594918124743739654303012692000256095961463999488067789404380396334837225360711425066624238053982032843970349435898890541170842565957832904890274799740790725904123677361318368809092292575653016664639047485505434465052151776293207798200429637269591449689393381135648920429197921956946450933560477381519008572437445770693534095832013388502021287599672221883690614780076060948384977973324446575527172693456601110000499241332899161435622263788130249206743250621385245003675183714929013808173359746642707292266844914150628234517282877696763936632025939787828226661083631032631213293575076175483130195268243946600017729733745974383251940406964171781873270621116699671423298343645602095997647070337324122789189733526710561870783134027849944340637233472238827770496539361278253940261762364226964344660308960628894489625752379132463049324279087324686714081737492560023631020975815224312825295397699095193017707098851570014686351170428486488847817918636395491714936268417731732385178863545184694557761499875700879210194078269141577443184174454840056825024451093045079015013554210866243998688823378337626134380456473599300571468160543981857459363717845432101570483706362861768143009921477496538357610132275746478122828693106084873904616655663671503980119546182766440225834556844748127009995246628167714285082552523580673794056734588057017203239361708132863469960529970653241452610273333519682967794344120878270079971456163987459159800500040246085162219169062316041611553407507651378338600901493538765646808460396601932422072962428929757784384519730789348620773476385875940066497513011649314041028175453167994338679417321685941226385229752909583202595938860628843236007803447144213977086704276478212359958910345436180127488443752443263810546119813110462494896109049462940350492692195197238400783242560858795883498205316079749850284167565463864565837061810427530543631944922012527320319974251542852559820114703020454865992782156668235306221061776483757934473057401816046284552215820715314847908539910986875994043390295888875189517983321854522167207467496941614965866069649426712446646011036495431835011098847371573437353035365590599423993224383974026649445155065172657931489516859858619634622609625251874354426852097268594879656209479928276528710934391829164581245080920843841307278688113716643834828922634252958860346167977875391924249175714202768258153057730942870337290140023086460457173135995930053447874403826902708459373039243360961486400502081159840594503703658523346864830657415526548431315511976947290376193504309301006986176927518152801905250609044957927130203154759032773173761723623672296999689811970262792711830933260590544525693068892820690835096306581168846581677692628883726146411781812812350943187879236966227890239521584782712056143206674564383308833016600076907280163121176806138660924236832740286141372586334332530242822304091804465431821920042413326050580185003408727851514910375869174251716142204879525553807965950573125978496314752334245061394468963577945533922706867203422595704644766817914235753154662976351245152105733409319788828494462726808532670777473238691115149326059775863279263342423711484595039413811467545914666542121556689379206116613039501198395240202313071333064612087943843137777082988829855344279867411362976801996387734894569721534435833717409441949599474462107157555695552728652782384787437344530919986801647852881755330144595401305125744328792299742069417903687941307836120853356817689080973954909404411833010216358936979691808952927231111277497943139260685423770373037533205551183522885034155820289099584486733546775296316921509776738137569744830673531167445032149525660821295263925644712365484910854464268375948456063211472533834572494333927577964294038381764827396305711733706253849730656818477183436306754206936091331913879285215854208800864064545446691205192845609387117211332409698177888653082515853859346048526084353806254528610284961895486950057566314243448796804333078150321072039457507296452948828416957085227505018494128921132007524228128215787505622793716595399645352623507858150638806591413918318650804439914156044667771489363331025191425906918036449016560082032312977279541770563118495041525088988707906399960344765475293466894252191369991831496710608083092855171005387212895252813370999801755831126791983623455148048549238128397403342744899160921651160332026787568216514398277036752756414327022189076474745840197112763032054065445933215587504118659337878794436291078729746308343778932717469139969740257368928766929856684712704761788033252505357519136306973058243066976084428779054158503782062756290687143928385425907297678434682244232127638304185789373634063207168125741330833410895659585300628911471547670088192853661761681006170689713548055208536604534921337501317438553123787435468771627746852517139960323029230218340680803987611102935230446707342906639663856138274344085719590117714070532813523290635564520544483156899336202503702649743196141711517132480176381754947016466409842141747624139738085116097428371243811460669115216194267008656074937634856477551155225987911726371804901563620025008975250371835414548834649719301422700353046219981740085162991510177651422928639977082698917760459907611257482057946005118405196629193428509280036948664830062366412428377247106398445539579335130395803733770986746498715323977629103493949012391999834481837470982814832409546315035358779290753883173850219350892491457530184171300613547485243125131025619000236557506378654657297952611440538224242755573369373102023517391550902290614319568929890351964410775698732243867336167329794533572034433230033859721519803445133633780964659451623642077907528448563426213760187545047827035105920081864449800614217748609634786395802415143512508547878946485777439628122735084800893404937295633200641874860642666141553897151511614151453435217279575702355503066542960011866922811461645055766202802323637389350720832395867136374177173511725237542402164122938724236156390432003462715269899811958951077467238052488583704577230785452439826158096164771386279803206425853785738244473847364865538433762742524523788973602842103756303891325348823553843017784606910061476672549255301974275011241365801191783136542985267900986640099444871239311053883990234654090361792616330427882242011361979400624951765344550516355439986046162943546478364846197516062421106024056266115960953103827319242327897503015140430917878158126581852316968968114139112073200485357782935193675545345952117553048898020504245533703279024344623616831509153754072559748647635896509280948499557285719150613248065133649363231635360487765278743993356943925478133914213302153535896075098214043937181834366133514750434317497006080497477360105771593039313044194277432125073665818944458275337942212301580116525490298920547037930318994054902182850664050023590502955505813788171173820028190631640457312460891720010651755581839128214056562605446531139393875182869377190195901328623067380720998814040780318567639581627269736515624342564554358072006230913586456686251166771827543019267603184550131596241459418381922658367814217024658334210958951328193494825096622066340577596777516792970734804507298396755067113618498121438273310468943913900100183493819220725645145820617099924484599130222400551603331027489329463526327520808743294256411503861306424057723658180315627727578074442350582626993393176496650858724260114990008166137597903680119392067176836087864615411387612068131705324240553346134132489781276810380730636637745017713783626274313476369678379270904615762582176951685875131076985055867234552463707174661775508665660521239510987217006992689367907229042799192187315935128176797864887008864651594773070046298711581210792163587876764220246473587367069207931596497117104614243066776669664338039732053502101617055989169868353925945642577752478580382819088175684132114051839656791314835928492782844228341772450158886683874689037253702741742735539295819820771339118730485669271196527848588176980968445054881600197852238912811149721853279548328295602898799993797079364809288515382939184386253534409628368442515035725090762186919136163448015266093300831907348649987326530403794107930970651771981312461405938863838235520443182904450948423054893721912771981004082093671380788273156064290324112328290614546529652464328860579642239050086607873401879349354229202932753669564426245288767994375118924259280877063872176436164903494779185359464083342902983156369802560498820440669895170507363771580654439687012290544309246023861678748659444301130378752880365733629271953788275138846039979025978387950012768115679201871876166056120913346591070208665231437482887620987416020018452582156918052081166502917982516899526520963424068812677326962500570494861119107776047585127112056904511749944065023904270645515710559412995212978227534773437557463987272009368075670532016674456239989705254219746541820203235161828215304192542565693519847743651401128010994520681085740246457250345640593830904664493720074045481338239061850171197801886352988615931209106383028131325586075685356605184985371799723749302629804910967769645454374430197485733975737444984852426557554086305140706367851808180612670527119022833571327281993934835628271616298142222207396649609412333969352411256718554182860924012264955410080138506891126344136832518998599328334223805577061195555122071607467893056764571871267329149108652821351631478576105510074360280642864396496586788867153223183924947570002788887147337945613819830456839194640028831570428720496747049864486276326154342151622156519525550950464452847222383646768388098312042765874369288082068114085680173002182084921051475302366710634859453121053722487855130653655875333065811599456866185108683333869800202018559177516300720718710474328868361107923868341622507520866125242358897958953574949499902624634831650646780057389184555193065988708712713994120483750449446425921493103234694418704249832550767967366621970719610587728106500682001151500882523141295413515726796525777822379939412222603592380213822874779100579009120714990252875444501441335077459898733277381117176534174325456536805665410426767298893798378301617747882599732223656985871995996505269232699110348961909383443452179440457379453369077381843467069584416414047178861829505584645719108184744123604601312830520308437189210570691375224062742179328362668065008750650298159430868720717141099431605486162888297624262066982172442214108331100622471067679467620447825912994164439388140762979139820654811651089389659260816890802224099444221647856007818357906408991667754580800275226061226880988500776160210103665304704276431956579993114078952155308241812835161078591863129836142290364620300726435533266584814754218878545088478545483262357263188122534193730208117529606344764761570643144651946095631037400271460918109939835521276335101559849359253314016333469417505777782300580225423369852181241080731107492440990794334950939442291127659566808491051812279335807817212650395789627624079659701951308379681655032551006569357572847264538758078385553751830636724059629742010949263632251275088784283938743047856094591660897407992425013877569230045230015999244358240428969668982206882672746631846648547183166846331084749391798307213171547224633247314796604058681681812569692996593614510595495329507793222804179721530456714739704100115476434546503323370371576229362002773375979836623256206225331927675719467280403103164712708345271420748292967335619449227967453458256422618495611324301361074311070645733270180234056717342543483333161508102706736136366334659079073473935087736611824386550167105292046734735198510392839199447597152222307003723638494328750922952116223295419751520769803620437878955831285461704698129105990902317012372900016311849059340650134879583550103104586167428499890792385013542337899281708625138666326755564648113166929626639463097267479705873947734218992351683331929456560316436922077301447907077005458267364599445244561838537114915928238611938880345298383699032956331716083448043918662882776053778654616349817555853986800304600400670343320961502480560988847221424170554237561860282670694329669640987770429770231423308032849619430785448116605566600308162876056866149144783996903349755458682010948734752017875998373560052114919480947251523247478827908263151504225133812940107495758792437705561033473765603675687098754375581505048348435558524700480610097008195822407977558783957192303395978017484507470849575227012649943875547593476751033388748057492036553298948870280382268213517642716503959280147521352112792567917197084435738974866412676067712640154438656518809652493278790529180469791265511060116300816473876448995342755142364436744647484812723570762458413942328914132999803195382300363928196483346037874379425348098437562922244708669117294697058359190757815727247115061471875892150579606641746935696373413856878607152100198828684984563688586215391488809806890768179758792877635429879077195531036441668630073173486773366081326790217826781918537753364196436419729849978150557504655347968106906140266087021904916117157638089069861035499214950227573895942162237054948367776156691611996384321599520283402322139961771870020643054926439255740771168382835398880016854359880320781823283524874549082685104653430166106327644853269602249646387891028956639332007795342245822553653685343380475968203490480669365451386823487392376486214568524502306944111088178440889871087134014954363636110171168832966908846150829687824080309174164667238119356375640877799935603864916109893971170345520187124196656648888027618054194381759509753221183665536104362239484244811132844020055277407486677891812300817538617124507481439623071724624115484883007495073898545782298078271490638566209201239188368572597311614772237445800493440520807327896422362197471713383148995181978702543573170226483387435139890580473880390473649780512551490013490029288801409220003407300306751661310913428122981536296006626071886107165789837370900341130365096993918158071481067293883466138021555421474181877548883916816966241660491651528443180588802760995656983056424357901957591960882308864519342664269757412444541824612172443625282564665880370422346164502664177334364515044890130326855065909523385167551613438431414879509108942404022409456556668989541031926525962584621217915172508061645128275933127649997495915425873967294968565097828604577692350794770305671533729750782136038826965502829637959167394711058899857047944346858614119724810456865395013573147740756788615701193162640685709082855061416292473257964385915432774390552666436042449533333266397685974190489192946735232913492398987682978102824873509457221666104234241273174108377621276353580388093569745217087030126728634271354720177226323926519878869857593507078005189931093393458603671140264965067321137248594777352218896267795171892105387262920042648099484020550916633570144980890837547937478429532770713264145032448158403212915383110687610518338671718459063621540863370118303621727937296669577334785448729329418161177549065026385087060122532625788987704736391789935284302370644484782632156710217861089072286193547092766443110960970816917864574761655150129705994046363387376142912248497365708813113875624210324270528877667671324473015737845741259303488701050181299557934268617734839791611325645045661527634707157107629842321708296231496473078238323830131536105445519069087481546233759960039239917931418605106438964812446282249812202860426259593154381679902350951497910893739583799997617358199038978032194598064349100930728751622511468364152573425706296510085826603336043433906532209534020225461014984864129419012930588479601878743804231579099348235878117307505369869019378001252967468032953678503722813345031733670850425348109608704817676964193200740391775118635858462043595181568193405537566374886531331548661837779201419885570371788566407849898385837851093352100236999734706535326539163591888693431842950196901795144768628831243173356635156221719011382656274585211760295852106663398444827366759458276424541555651495205682456242745538278446178741466977413600667414142789843392335347822928206610266245116417746789690598477420273342783699676114332489089056519957863449001655289290665580787226440421367422691869396303175300178207209639062776642319212315710593615391871133190728978559730609665846725103337058149089724931922895516184849430735137724975859696578157575348221298759195151127767632094671771423598003701261775714606135386148730607201468749619289622338287134794007075665342590587782109552427457324783507905620310391282462690179924905921001690278127841828131202117777437976417752945690425933797735287719575627671626927743782502482112164138873965362894859140460725733425778414010138494487018289245904769634447506030492361550656449646845959402520207268126148714643225730586250320478422351942057983541131973335284907461640784525494155119849155979948328476150569490273422149472764588631697127305046913397202681386460830300789284360033656914225828093304223579129212418138461213836243668638027537668498537400719892636927128772775425781636390679192923424685692243250963291534158670097233178653659443149467443357547903222779605411786071211806342818034906687870689367399071321845434278836187204441401148859964389964325231033340603361484579915012795755012937575895638715368401610992065618480842114772252481339830204138695021108568249560817925078712877262568588014064006037635193788537746950987010500547233888354106922195091075424465017646439680873665700873506725774419958828743938261538495999596567355465126738910707171632661267660848255463049603175784347637572684870549071993708036499605129995651020255161379937260242591682500959578558485711376049689489512617952580105162549653494273696676037884689914038987193200513390036844927640648443625136804703762550966834865340129735170949295188252833475408525714050829434557184842373615486249766643471240710255214899073489196979468402169623295882200420321386771694889461614151723469032213441346005187364852189032306334034308059561845628057296189784665078751701776448700251107722728564781645397788894690427644876907957023600910777178264111897534495119831481924545917745715437119872336280267167786554264124066531726476901415724630221988769901928741556818123077165352072680603050868330042261982771042597989693362068363462156089052141900193761447478590635763083998455530370941169156083117616112737756696609125170621804924430120806240121028004304130875153612565785704348063758735690923500808750715831277412676130900956833878905706893865296674695058518490644998217899118584830959652335025302266904116052893761262358425195640366977955468815432854336849266405394029109573849362119465488657435923125229071718934904865505978468512506323254348871130561908248882157982345445763279123094230433766943139637028674388582490243857803598137354717653332468588535568764482231275640593757749945399621127602015886310943347300338324140757729644706823031800757995692576063914793585156166081606156525086369273755242419354775140106595009621852240709610381244132915205586349770093239146825930570767374923874617211536236476132101061771302269146706417829238904289018331053902728412668823454176925869557436792614623126250138221565136108585718133193479153313170935770313760555666077167953316884878413320493980870799453371907890469633977855039356586527520096940504416857842285129281074543441510953775505813301936696558349355307198292032971398226628955519299156623927694668487854438362499749408616943743133912600886019034813556981178025654316961498323674897758634716398016202562679596554016351576739837219413167350205636359894589386130549105974146747799440721544205708571130715092079972200610364209235759380978362427742968139375854180238297513041743848963205506391387960200171758817658268553789855391204557782335809090823903194062411274927464480956725360462238198978045835596907556136353440778957417946559595992552199716481777876081315798811757092819333317477855778742444404564884974253851077644441127445845129313398064057935347032077481352200129119977028266336972680062840161419692857550300440742960947796546585037883659142572604630227758852592465174065677764354045503822691095928335083969772446267231193661772240740959179047604520857596388239290188675656279931395371747054791202307966630676575328638450658426737352535730549306660644152796959588712162857805540537301549122699788515949395488116881808491529815995839528150144755872587041810740074283311725121897286053239129603381869632992650670649724937252492711343451374335145768069312256591831135615702521338690462641020108755777465997398937799510888793082193861909751533269222912324996810971149667214435842546799976868633374082040189076770916615740576223461789401440686420946917360848078042509732233485409206497671915748266938781838948793096055150985837145338346453175546017741007444647825802927631863767437640035542541274378629971238306065000796481921341122545623943520018015805534414787490075791196284574954925246438950196260362316023350723880428504559329030846386842190008172733875419749994825722031572853392236787038318113969644626398563658853830272862183859598826050923268112162075661394501210361317056349468901480369857703049245865150714043056459830646279199834726896189555344966672354890706585305167547799920891169868688042539665681453670354442080188004285296607513153316340377066136389182746005086791429844199417049912718247036444558437167103165401213250759833435859180849990576361352334047018472093266085986790724302483660531753896928174505621142677612749081301765959871797429446423030482920387965853153808851211514078871483548132144881267440318906994993194849589761816697135867367427186016165110870720379677318023115040966174975546467157908519669181008045329924837543147237375497448982999405898970909176329140557118961641083105919543004602230274470040027660221185839770080432811314271448511769163438682496515082258497522932335294489859368066636788879815453175894274918063037452842024098503262290338604066390177389826380990589229296120216538561354367763565703581615760613973887077921234546414174814583701906528927196012799904335658555348880353695454677129312676818469549515378725213282223219117523904783152448580883119756030563272059873631859941907186243868811996757906005866807907108431971388183974066502133380134672089480670138740796997646711681710895773736301983343231497694029816107585603546282623898527191160870236882096621948105465128323164612972242649647516307508513369027256356687201345477589690993003260027812096188593672797673271132207856682883409805506762047050401930034378653521165400770632308737603443484267664130281198356728705696046433948306157730133652755052559752740599403033809646402248808371289751300737308155756803267283040268861583799195353457467097593154960938731211583119038733349918642964067263995815041156367120609955641117607728088771910393966917892725497469495797863717052527522340819948582001589409190295817894073868536908741993352737121776376974906186089551385103626368930704472196131441688552272510617885972319186090805129253987948626578986645041196853231922428086630212442555343620464875304993214198614258113735357705725673673179612832761532752207080587945749480095859972633304065775284220919962855153087643181881207940862481057284025653117489203084831479080483014452879277769695255431804098912185578187232732518283507572681546838638711256596014143553373867228520611200120802581324298550535613842910611943020155356941433976316397001310330607611265408096613838281907006976720241618917891527066009915992947828261246764928243017646828727169564191853267243662699923043584545162389257151545115007262118740533677303953182829095819093774923919360227242240184535805492156865199162562974023925779644196783094863687097387880382642873199760499074592095103218562429373265285112761316609789508014584690079726507042850385067841661119865297978567906577645158604841698232106931436801858950426339242632632240657745390426219552679133093485453582298014262458310735968849352803410343178116243726004330759853708327405451107327548270788403677486953458060811057884878973616358146497705621847746348718214429773649014882435802023100502914059163244230538292795812231680044163488243802498539026867945031561274505513522651132966912361074740397262882598685891824464372981017330845751161631265642954960122161079271122724811938311702271058926907472485778154075158158414435728141184503462508063634232213518576862930368605230515813727324475967717559065787385074869559797320775440980128413716902491911541878298820052830316930504161892437510117126225225988188103830815050213482372970415927600491818255542443735375552885298281300710703565957842321228177956756759953646404480164826526546870468347014069579961392594091668409143523966963237538886279601655406696201680921339566646875502213285608122302799999698246400517952937643326935806263261354831039883308313316007544825877494921840981573105410120943857274339828593382606871127380867491266103002575486246043654770211067646234449902174663495932056949886319728045990710033261357840396319554386106813943957585341279479455079998038674988131107438754407312449428057963325655012801782834632201603823306513972547022969475845057120842492881208528440950891395860051977995125939925702260192356638800759107978840750759685974155651061642783500710301061031318522056651580409822439848820307404705663689141802843135610994115571927277218878404968138800276640903904607865629951542926560839096649612525583368503020095339590690735264554677470247823339401828803930195326541297093463048271156141416840892259491557764063890132159112454637292049875106646964041827465185630686514237978985394280386645926244952241244926417403956118301178320300948434675212930997671793737437612570415962773490605365899355961360656146222190154267467624656538302552533239448753858209438753511590230486660450100659842439976676406759341059805941900775818917396251419396440695071020884701429133129953653811587661874535853215846621793172425625571781199958651213724718861260294920034721469773970385136267196386526139809595849637274683536515627433688371652019343584673418579484123206692692826484694904003810646587762483720438576381234175266506702238630142897370063862720752861590520352004912644338155873731116693772566373386326523226013385110455884086336957268491165971975183709369356463673485765729367601182920023318244297478300053538720428001746777454537723385169568037456072547060817906234056616431215327327408442593363204647913677400132385805465866182695413381223068450819070758226088765393900325488420303919654136604449660888668673105073061770020920763067889287592681333747339087143668279121160997783688556984601291807358686857130820751308083655952313812980852903060011380839805715655358776812802170476394835845978319784108505100778311642242733851655415341932119297279582248397027895232091218941378971702895550058722370253129739098888376975078954205516223258093200934417279022711570059774091637685382796485339174138359959136184486828139575164613767136582603000232097515900982408947363054040583897369188238453120831808711014927140066804595467974888045944145277554299238147664830761174420262682925966602128115028533686418273014287192729101183915557679921983927083104243097649913629748341634144489266108651221497938625969274307500456265808435564375116934613262460910896350523823643301074367771271989003258041463341551325583512909075145358957608772957232716832916699985116093562628209490000188646498927986712987044458550111413162392040721061227895101542246739257159055536911697276163947131930572934387277615959526153052420830808387344433165063025843895142725698743239712012128433363888591301397621875301403308872140770417863174825068695894281842966783070384596731278887363074768543372462197108565146152387532260074267273779156299101763220781940907024725880085889382239596268235447602786901255030165486033863907484082662945786719002684641014856032060969582343791643140989195675449709829774444754470759460922024786441949784921540339194383575345505704984530709083190595325553407022898357015826965288723561781531112143221187559551048182282353762972603606572088106293311620748042471073997656550840540619809728721040954400461273396999521964341458246322347650790683812447509401235048899732623293558963365563827226028271768210619496835450566203926994928840087367265702685160850714404429057735840771209764720409186198057251966522982573793251956277386644356587444139116978237605412358299835622963107693691644156129287329541740528676703343588064014342992637817477701179077428294305601118094491254350768751426838753636707741601019435498169911353624398742076826670993281493585661490604868972995513119802656392981197494228594321679185750162097658077859830972341549286122768984976190951732010871332360161631512513350912346073369501469221423405731998558058663721118489452157793611573679922880709576833904671932768267031852380062646064619814221025017497634677536362342533103828238064068916323810269225124637302310101165170218168395396446844588003736494069504940713260653058449287324371513592021755441560657775028571479640958943199003435988810242228381471767991729053697647386081194708226086275204895613482249740054278112433257398769430377890025930981295122040380356615354544159100135454814228209489957585622044680961501309038526220067132377945478749548267871780550488900154123085752420471272662541703721806630676073293363318489732569090535312036316350425881387323259352022921766602801410316331211225706569498166757043876933251042030429728870734498103306107886394329559745369008607717961101577396625217280465346846635672985789879995736745291640794100856390554520287678029280610930511597683926898649891863242096365220004139709568658810773013281243850087012413801967878614166879354921131361346079750357881413021698775395413385802106330250606939502568705773244125960612662022606218778615019152086961243367223486813407661694035750022370097804169405671566978711669279091301568328023677883961601439762300937239671221047682154997247413706732243419523516881567216410807825916020373787913643266247669060494942461853088280454247991667707334272665549000880180035542095001703470482202561955119717501353028748986115425196063154522669317821547114758745213917693232945936065977566200110692602243415575608458018528493639331692642168229008613654553108416039633751546973681744849265367472553184933535032869465610052375661609281221610093067567157021138098350360594826900946307920736980944321273381052552834802951296730410508690541473839319356141493307149226773161990861899379570514409144075445267432163684070696625357003322125123128363948892787806944781838289254710521405246971513814335055190412058265594154461292446311398264732381441190934890420145931446486092444230651523560222863569280181500832037164296375109630279507997895329662625864656531392216375971793437404759107993412654745497485651457317444027756775267592601118546507777516856707645397991103894757812451690852989455190249490149403689253792779354028348303289989565665780722803917520357229718934899623456917853577202699930132636514827840104929922212286310285830731831073392493369620150947564568978030098065105681375847313405299052043207676324649866565086991204684902244342351598640329726742513919265380118205987625793169693474035538358333864624991986965435994527053611304153097830574503973843015156456193814254857328747980896334543048567856437075886083888306234960209610247403969529817016988804090995391628271801822515190444636028037435358335313401731663264211995057549117451147909916050880608335449857586480650923869395741527868226255338596186780348181712691210847743504283130786064920747067881537521255871274537022392503150869502931095999608079954474413499009799277611831459905207525350602831747413592146609897930343110052771958940729503834469168091387301285406864669078158304985761285465764446735809443129520066673413298130605794876929068753200368882355789801358620985924074027628655941466640824991816169162858873195988916386674956249432317254718893858487002309488513430479734725398912420601898349608994386153860273657447541828965494928732141260645348975149072167686502988981624111825024517323180634554664593447086579202798851305757404304766959997751843331685662819547693337008929728533415334720125775929325816645467763220016515585575157748410997763012551877536504823631144015848784925103848702035133601709273514212158499437145534085635336182147106405929687610735210122026882253477473661415762626395636291237343488465500026324097931959520753729749612551842425736667737097383381931716564163953852989852738732075037503986887979768780645848001200450499975819961951334842886981026114141118244673199091256814757019372742979892717782012761071722836148519101554938742177502778592454017461933839433340950628824775609955762980877033655940796086944084208890026606919998934083211966908443000273581746938882426346148582897704245548449209817644965118006114549306356881507253686132344440089841729491249313381880779140121530590587809247857967448336109547403473808059764878513934772514877013225273999893536216527480852885248320147897389774391581298822319776524191483542276639062516147012222820416985218599091411071935340492754465946521836628770125330741183251439008869726095911903253100336950213442010748393430223588684626007121484290138439759020817353015316839469943984947535231173208950152319806166821968798835686242026069102731897646149215661397006995058892679800252268230830360897225264831189022226743694850432652691385081549044375783439884083966877524071678764813667858056088023235062137988531136792487776358475797662883202791703860208293736460139918078006329302547763332644150244104892790941887401322280984717061349692973422814818615558147700609034316272899106232526938287268204426455163758141088726976748547009684288085567281246022624841865030273457224513493089209599188769942774637406932471902347120031384600458324225750195484346896864585670200051722433922786623024814430420854197533173631281966657601483054495899135406968787746420059064632971679864389888344396927181856891175537428183816424692917388545201381413709469374575445056138418157033513163942727414948950478833477068760279455531480658647723630711625311428807990306159276728743772065884893901464371978683739985555644352042287994636944427099059452773561870054787072165996405883068112252881302461496285920825747735831534587913334833675242046652119238749377855550816918721438234071830237711088400049652047387875594002529197914533569028019489872349797313375924370183750252953431906646173360846700623891426956618240016527781563867603262794549582746273770204741504041165482064608923865791214335485516691153435661318591530893064699166485346677980934366027917283236818759191147881334480388099351778291438898319003211733505106510408678403703075739052310778635045166528808443850893006380832673473974551415351700731155338751651674990842578636141646138738914981240805092277328440323154817670808886557829318069751985893401635535348460313356016088048956236912172416194691961651566670535672221359823262880500530513827472270653362048459667507720261379419970294673533384798238054827213511172173001395826794327493548010785874190428844298762257679851924056121527711346391996982044129213265866546943019261488039019783338700556909991032113519518779237717132473740622315534834180662102103077808036263362205950832259753998096965790463755856702654495225028106852939289001188060347459359393289084051712639234491545248434411383336548080293231910704700872765722150066119624428400537447951566844875824237632821360211240374395341284807470496790825255723068823130438955353011358783484284935026763609592582370164136717608709562374593800908920846078285658467505035437909494721168057951359383432362156235739166450752296433432488350396124008641639732295909468106271382663217001353452164021393255060125042718732239841123939271903111447003155044643733066571792310028596973561502186816566834646377174120204077505546031047875890358035723340371304638398737930914220303141428302206015201943305853102439747296783031892613727010603417160730722235703527482873742739883763512891930187242604440976906598855239841773902602053147250030501435039426896852205803079978752675104727459824119573578993317253954337772631529358223659882829000900622616536333930714635647146947004295191655459069220640474565601888689192944439377521570342924428795057925037481892348024374757332736794635063493915164945045332756591012988850926797034517127745149784591556060853680871359216718026408283995628577151578337455008810676839664064056810758691421737700356137208193897276621387797205631334270544292710163424191352701309171335547497009831849401035391035637912844055301333661140014306452803566300700318124989152752511069199312319535415646179559573172477406969172347152305161943988754312503227629400107450553114204446649810759506111686398015816224238404415312092455170771266583975633081528519427619302317287304173428339096989766023960877900742928100604412797854125160802830242320079381609265477704442516582804104764962658395689453116655069610346803330087606005436459210243497161193171314611241427920186880111320709227635551830606333781459656429739538897513527992509825309928731832247268547849669423467788890821492472689888515489260185923252091932887427327298962149128291443541654481813014093614779146001475371752967412156852818985213719829139847576731091101435296221080602922261468619559500015602591255798880016677040828493830917022979333060654375907638208075465336851533722147304975316226533071992277795782618866009668420458829857144456776232527853398283690789441245870063988779907924278804680648329311128427659542188394188627375203116340355587208684379280321385042810378023909860332708240514936638299617206467772240176143031741181865455010719630709425941994391216692513311290593542706735668427542621077628104037749037550812372580324149060385214512821999841697174720912449957545746487249390470214471022403116478093928510552389536308804706714806875316380907547087682505373087180018728648965175279495445373123995831165244633218512446308670341886237874834243020845494574781905824853427394183215205193978477550019286259484767141654128814778799187972119219378740382566932253701295266638632172295314348415095984878303735190506240387948978387549579898327431847732831726838920596293832175765155224976295323384843291999401133567108264905287145100524378207303554470196332134836031721299003435061740141757311613159271279733068597983918731768245763462046910058972505475135114939435832230365989843317114295180275308562962237363078047085930855029815697010433490418636990512154346239755726177199599783605763394978506168835528788556348297356655395246593538576904292622999383271052729927998092098860848042762884523369802973474426693599805694835824217840603573739085139154512512449202797272969513467976918098800600140758890949625043430268360052723197145753572052347711436053146957798818895572156275584252948319993779882277219312899864002968320059450821401200625936911656579150239851992075563717112648729584142077125048880709889035080834263041143123580723484135307489198188155261591745084058241530833786586607443619210965367355525981181524738415279232276994839135774861913037253600379543669379269503557662978413232748274765544511333309113876013242323958599451540501570773109307031696977334468695053283759574267595342041858022882531814793938333755761017421970937480918160342025444870897643792788713128940274347107056774608383757619365597048625815084835776339380719869030124604552917958444658258943965731035940031032054693178510470866908541153838233838635080441846037092601886442453974346340544598242646621047399368018183797902815041768863652808232233171304109696223768695944513070832772382666098258032816562003451552772784587600806886228746712435822683376886837467471651336052834783969758149904217961283591387810669253093355546371918508062565230686713646522612487712803778011536666523836918736881868323406502884167046442678138742179649251994399294490422631979572299876239837002957040020262926009506431336209848569827975531447523582355976413316896421191306511021400662044862159181482425311929007965553893197934756252163516269015984656647673946424827482932623689089485801114326249613451199294221357251896201343670663397124048387909606575450172128755165338861096096717597140689406197982315963633742659627087050594878853934773596396615740328460847937537608032151000494210200486459511466076051304235752728322931391196539101481553806464800262797992141004018531202924289816166913467078671740194363892953199241334367292165878174724379182349129224704274031776605055060293668765082532883450955670744139581446973938969327389362526494899492331875884005034189870875033331435032516287553421219553553283002296081390293597624141774273902303425463714859435254507937184919482714775534320442677706224870955915467247832741626954279034855217942589625019800896167965078067518445086672554964710317314131115572500693316804192035550598136148566474227228082372888448098244448805407543252960174600915260175566231204853302109239610395640857802765283230874899240489306988008731636964178980798169741848915999343279059768557340458469746079305431359630499892911438266930727002081054050938246635724212003418158662741036578379202448773600669973369235590522661893151206515069751286667492451239592456113319784096928898683632965415320563883158350584927781254243294246522433078140111952616316924449045261826087219087953662269371585710262289035341558563467481740305278170462073916252749477879976119457009368352810024365468385088982959364810499447956636989533348285920529193995352819646139439454326991332982641641365963600600058825580387475902370737854335117931835459396561326349757142798036992930506775714152355318699873075557957756917319498130454878389783776097893621246102841721017057646754068898507673603766054758598869044806269863324284395180948606850075661625809352736980790793100567705294946215452913423127763885648006082541906081802414841362589496447722538768419716770904580371754298650012648008199548093712456385622592634792931473242506526423745185343804784424459216896969017660877141972420548558669501387974101308102332951916285798417138247890390983562583285519725087480827388360106607812352032629070011835393900559729773318422056006626843972234635484590936854436401300382706075576175773223147835013836213682676299939122030213666046831203935710042163316246518429304715030483011950906895664101152637248653966355390280023805818119213122982278823158992474236044960667337873077324166479603961675101596712487121940795793523997755793738159551858712665325924687905660875357770887666901620770918385293182204350478636080648037247791995039310570807945163407253260726136797820055437856065415969707454549835657992241716279976656288001449608825594708858564404337630923012314610832251883896007199974037874574063097562870964728489346780065874936618076903173771325464724369085959310224065469865083027357269366515275850565249395109654703743750116488923540203692657625133752101268144991728590046588353110021173403066546688056389141555267364433758704150723011565409581617191356649926546157006074736673968685873313895181228171637077210303801749838451654159176316662127112450761024490618682154399352271118403840560331203881080071836702297156808079585294633417425339566626420858085310360411492285717997230995578782995332225506949176081529781170876470527367447761084549949454678202072213790220679404692692281140698899337481982912644795698730225137380622001093464697693469805440837751306394302535641144720390263520325930232679405435620672558233245522939464543598987834391624126841372378747786228844893759669973550278342681682621681058590306704556717138356233836788640672851462449502798440767393573059531922679913921002278502960364441558749244909126045818963154501739504479251918689915807902253724349964235954036751837733277960359110242731107507243434531313271394912309068618592588802552095111583351930592149202749613680035858879944501312422923139886583848238965108780754521878889376719539794319011097201886039612808841060672535539313989267251882922511101457434979619800644245938136346346876612337236709554619593193040354216125383214902464690604152698892337139791420340575300607665502423981415698183818217630251044436518101746657002349803268605492041170160397631555272545830553632019016815424447091864557716022619920995115146076280762796501179607813293142135376209569325016468790968903155617309391874431090942303110152659674993147797373088559303775616652980618487274176489344671145350898855786965983032252817391308202301584162797356419125102368631405138672379177199711844179490589855868576936667027432250176772159776989435969955389284146045467220432806212474603742382945874173446851980194689400296224394937378027545506749337836639502412738060884982734023651949409534801288871143831873202002896466877743189941916677591900513117016453477628352139347300798165903503462011725161979116776430838760314438884777040660072939243229185916535437138234817641327325532950426880589176624182650460504579416881053746995228130181678165678625142523000234488477667197801237416948227606856467905678707456329228840260112081345721931333988915904568397983487497671168962104420623357415064793261462345681858039678415792244597183310203789412823451041527852664795209237473844820459975219682452206793261618589964874672621434449924804553087869946662030555505268612808992182850450267487490619525155032588805089899506339999913533712954075419766541206562971529559429465531045263507115178160242813630772831030417549683023222317578690485210405271834227105121819638140404494064144158812242160787702077261229769088208035912273128169336733580018385208568074471929545987575158917520766834458485796118424756560105070291803097321975901337522145246194045188056899445804512212477670641283243173048392665443933152782565962958698126470530835360590800125180700917602596344540074890407778247370216179419603460177218277292906552900143479302139603734191861816146400461229809628813128776010716618528107629139321003854861127227944719234662832015143671631686936192672199039594454476571099100456072973179226996963746071678717046556847348113511604129688599301955318423206166349745582291765694773773877780436746440068555897862203185613465899731866190014619290430498874384666227174529547302033506326462318735378940943209944537776509315673963530668702858418141099168684221534359614266376534717327298814415095844440160633592326914994288121129863381364641339665169676864914996765201580859733993296523830620242837147962355560551118780475196421369147299532530967482957662686767122727123899807694229877628993295464404478123570870136698097475132955692423803415645691876558974369879844359119797893429271805651163198459621809850886952980833622758219865613731903478336843391783189688282870467872107487550068565648933962023503786543756780102023771326660815991013887219274366713640681964161983102077272330668487705048717135455003758822950378887421093445624296868587202832920777079372756097657004593369513201879229213456168119000520946275654618784859367901138132339771083928437566939969743222659062790118089356629827246724163068073197433513619654182459965317654496104610798328188855382885907396238596921133205708804920927522147905981582299542501974887838389422009951779622274268585618332732269642797044431276528769514515596418534162793198801421745218440288906447784086882326048143849316024217391957148702820564657956101646388981424743255952616886976850896667790240819327126477176963396512543275962861638039559438681874441535301474170901586534091562064922952925765956245163838061050034177643435892789007073952663750123968530363138146209720194536063766030830435190936178346622551794350828016759551697264722170529516846867663013894404577535314416547360538097707915632837041723347569994702680427787858746543433148686134101727812955621259253384437196764409365672259534566238087026004587497899348710709467198901884047979753860364151195457075415995415741115731872502664947669194566426860176473310210052072379243694585341948779027538013479879033166807683242900518687109536250303960831071782070577429254843210139397612311386999123289993496741776795443097191322252772250079797110855681175373704294661305357763441883674960774305761487408680906191898565686948035834729013225502064892094457084273952348717264148569504269790189123609691370029321707416541714954363580332080343698268363101395554953997149346082999905927420975672658235803309691308776515875526333199283135374531423061371732948530190813774721166136754336734044696182380358499859543863553729616043983435769196826904209395678529938902053178099240222026020046752768366768284246803419309835184033864941794675870084685078853520527779368446016658368435957342421475529908078612895261499662861976510475775483133219723839709161175417929867384561286679368662811765617782099097420358122729408500381350657476231928150969356335964333289481110327039125239018894278146789889505809534255573020756073620318916139853445636231584613039464666575996700908669587288943866293626826259949711465022226681526042210844718830889260788325197321628310725805224201684920483566517897552766146370797684768714114607001043960301491083775287735852083188657877309637345271139559054745721097595573020817736617639279219512250630476156438606980187970388252907676388584540234749438417964688679175840244322096971332738205259655877311385183455100011166157853907629094860912028654948922400087579627180124969289593061297253496589629901380460961558497149875011789708642811673752284063628590012388741137725595559841401555397280286069586764410064371007728790475311675537884390910754200881850679074906064252451564326205930221909312624159796194562633069603881441598195431011691000125935823454100430526019788196046486794436712922915009255911583663441261266519176554039251858506990419948792854001437261705677105982727677439844444394536991798153137334769711140047743404580913460174074321931678854951886049599948017108146298885314540287886908202696467097250839237797952942754540895771041091133579857366238791501863699385624184735435010948605345629719384483109243115209999269778446004287993620136808345595460553717825116648572244296071130261463033789106110782318794195096108835843084206156176063686865807668483174870214750605155776114606775583154657041312537564000348904915348923796264979706618275489788177310016039292512002379738481444107732040529660972247893005058787550508063289649922817126986701732983258218053398821774835757077020420090200228881368900044351571317663555636870275372470570346552411538968613820005951074149597604039608951081866302430334977330557805141425782902354614089477654887530293655323264344221812521232400826099729382073444485542309120068014680655502439679827595877276064310242514891718769070573618689967183363734526102875076638946493784697723925697302232759590169972431514158776481432997528813583090647660715863815059339394357876538624963377009259293200343262793375166030292228978867232457850059159410038971044977280209127240592373397816122882866194659500233615296100387384095189408176814904352955923782480646560257167678091597915499520747495609558558797345843276531038245654818579718940551522930787863559322290000472168367063501371568355377020789662194506849326306306392268360299195439243495452348654845381196654231107172462430797166301122568186965373327098460152312100323887796990048422318912345545291603648169988575902492039435315147848413764525999051418280218844131360139580411515312084931604625418265369802694614553335831726597339264430175689363417211411540263586041568941962993584921028704626480185898787016142999628452883340945977562104186901448409021296127219085268891537390706562574441358967805118089296486254525072421179032034701209955228932553841645389019643371967086973729894035419473039938280500354410209756111478705310119878048636013980724937640786352036924335354107526739789491992304408566340836400530631788768203115564141350080727026400065401760446732156183501226677943730057245809610344937331881633223613372557669542957019023658443594505457415283903282356299332445172326368085837270782938813093393423614938759032425619381394019562419339394968293144232788364251345816099247945860433158025099485547113496897800906641563836966884826210199971710561164146655774796661322338964453631069517112071248031220002044183052921358488457459511913208555357152892828783319280920869213371900532289511023946063695782094037557789571625206632579111524307990003651035277405688665579942155487309962933022736748016052581649743445965843498151826103382432836118828866661956742917896059062331658140882552573024301491133690835863928642670013788228105560530081385590088928037124910963180858594831649095899512803015466695887811175254418945504074547831593416906113679307776189580123092105119608558904316897522310217027622667501596849727665917055389849826201775864421321302391566166669037933125420982399510686020708510327805431871477097569386667894149519395483064176371964049206351122444831604620325005239470548741779179424314897768951231243827852265757326413562067978118471647801154234664567998943499543188762531176344627901175412248738898727811696864344177299947733312578606509701767040848371827876257536180976140207691762683992619275731766356981736786879628513798320121681921929275542880552307687506288755329454538220779579999355198789991391998730949624933237277562366308123693396857169141326071179621276501282517075290072935812867333830816235438746875764811131652204272156357500247298809275953510150070110027143875653183174319098914517500407798580719745165757326815560211069661729580345130019201762420120904560353062863132414576762775876057129976909096342195542378324077629185695268405296547059238973890641396833011635069232508792427150788556500810142306748952818355129085922315577761757309430477885155417032602545064863421489333437777790635826949971901302135054262546835477244237063552343165030449543082385321630649546959692784907099990815057229165393835182228197444386522131286540904250601118051410890170464700397401181455200327322056515760191245839428374245527088605810423094110205108148191376533466785436106414993083322328773916383815094703865259459047140344920943798438232246715096610067143073823575901765610587433964780047730998783429587964036636709014806925111780995987222196686641363783807007335118664283046984073111503961289548983232282882697425143581958450595297700595198126898477797834467908622718744702160338464978336039075431325913529667635606132578436951354991281493007754534053526583525780658521307009264746802032958181486499194585278640183218324393314869250519057482904588909849417417434353446584321682820567599019329885807865915459403218980509828231318855564382847931412442883100541417241160874315353527874283483567508244596868933444623459989486261679065114859468397859134352042824374978502180209941234257456143375078661227318349384280550001900680552600102744560478993705517743162610504752556695614765671998958659070740115349060652466570266203289735643841796260763922920078739040625486633151099923381051324938028652567250131580232022115478694743565305072939098832155707493030878023133497838320670541354028741479591552576245187570656019254899117565558439354651962856994754751040340797152162305791123591218789589710613192260332467452567166586434024246440915890750388517730849859859118797066085635557865502680593692085784825248804446671731190510038648623190551090102709362491197974512952249179701167604126383113019376823133625482760444146581881240019973555679012233033846204531597362376489592947968828208951936303094310942516110825510501144997601831485128386845765603109797626472332061369438678964916545358800999239310947908231133742348806207864231827938593856258402852807420657992816758719470041561596986716298550969369225351955312103396484854619707285872371449734421961349053335935089298637042919538089492589116173712430382292697926968816767017172570461141555147684231511171599225131170329554676604801196401200619891476541831582911164149369974645899631016121996570168083909757168375229464564796445216099627931571792598898303379680391393543520437510262174326127682931647615401310018212343350392328398995814688479402529846855701496833831766147893404710924591894567145489637735843793558952866447394569000417946263219596880274212464911943890305695556167806083842806433023014872710239936986734654951257104000025249465485288772246592465093462855625030705837792401623176502300489036085371529013150947825230639593134938097908607813375531878337431363762552314612781523765910597581046029570407193711313118966846705367212953747874942766798028320650472215864562142448353623805755817015478909925179991041594924447682233637398017295033664402820141228929085152516045743913711571937966367605082434825307623478164480856319126679308916942511154080869529191860763268719226133634403646274642812762545089050711796658496819865536248204158457842941378767753990767391622228108896920103312945315737598397797177875033299336764329797187486995711642037780049463530543165645267061837906791496425774194142004841564528741913444140882333983514509034512207281760872958450050015598042680276420391633198142593782997598931440644259165300132717312259701989179936466754933338074825877686920680486198948354359887256156124893361175845921426405099192029190623075755277713159148957744067627068359824426769362235747565186723820639179135033674053072793858245629895003170139437047018811287812950748244275255779230108686628280245448803203498474160455980316984779918682033487640900593454748238129662597491933779133525343862664309922410469416163166328776947040288458482474990945263003554960445121207230454740275938134042610492807936918684396561290357605410650627278604382792954416004239957543977726127199313200822803439882642904844309600268381764521611883695846681905915027180688322816716552962873190444133065954013684889090297872565024635373895115713665232271068938248398894700131022755923461176300930486194600505213525635124627377008171685197677651841240972440088540396917374350652982352086342502374839961306620513295596581895280901907220336238134645432985666320255436938566424663291286455764272166604605439599909273167858214201537868299207194950548958207087149912802737504605605938142599998196872981096654038237722296305711551727998544663259674037494135966126584486633154674046605407667561288020480988672443098150365814676847044512953482036384121270854738439528264105228134925218042819322662117794375000394944314483310182883802399459449241983017731965393206975142341783222240082620580403109251995199572190106974090755709046118569430001888643197245969067218447151219293890110047719516530077551114336977500685818995155517538094737135339285138052181932864259358070402468759634665927114668865701161246229669560838931959231692888024585263629620705723242693894721006949885320495806862794699313253209778043775246142940301663304344764339115895368605156247762723544071570457021092488607989557835321817927047213636979428964169726660272133730058812408588859977014324108388045316634679840395267551103673459606428321638093498947082096204445949853435270467006261961969357383050391709453710361587321228233350566878514450289432832437620371801653199319951185383267394966416365547519672348614646284993011224668731298685104696255499672750623813419288334378551970288904664571491235326384091187436721093870474935505857518919007538971340587973372957473383334452955301858581821050142117752512604643650063906378225658100968541602541772570189234648873256719399976241508147410551013631345395271716803735210120625569505085714002705572348017315564133457693422878182541786813704877041167960315650369020103358018572974656833111209940609214613107207250218308949621279372720638099006464452695647813041467389268187485354913429760411387980166942820567215787070789705083283663861653423369920489242516910764739207364238111291577517270821013830719823288584462661326268008181425444868691602791925987314153760240577110205242000754087266664212504890905368136768451408231717240243880466376037588851886984697258294531485306871940213984061426838500092457663646353933318152717265747137342262412656280714286705017631411221007192222166490531661759202461312362014982489039642369995117879740042705089199423491139069154021855381098939505924592306722921268259587576954225567464616691825790196602385057248434298651717889964214599562630172401726756704996925666710848037969197555100542244081457185747795723167080096537663594364591706575861176005234634196129560951151468230320563392507223767990354951936700935192945504033723901514949100517287665942326588046118431121732885267143952643546367949130145381291712051337941853056861858078713627332577714430244986079636622591338315480482224216182765528104425828166315189629530610337787910682726015289771868899563066959285836100391229773264986347881160859526434639806026518387402278323072644744241469935978614412951817327698885582239685670324614828323404321459713668334918818755139984293302778056321907863491795123471905184071557563194531154615815477647679247014496224898811877859019747384837528110607088932236617054247566241272025452954479391600544649230783998651298720728028909433839093668310113788046436035379829372435627282148778243599574387212699498161382697240360736708601908960564100390971179800912420488168553631780556080639495057903660337938334101266491872310343173983351521542501293284367772184116544185361953552716753593954505473058826878857921458881965957533842002570455023540985215686632503362436835752193815405954383897941556797519700909942760493966545805499499794130666595410224337677398489313012833062736436490162584506146189168137845970101119699466356503298989481589757440230834140698359848599183195809709552052477050469429861023736006181897588618487645610852318650370516831675140170756985694859805248822218375469576204805870766077546770141605261936078985994865140912010813696614201600200574100683487219753374300676108378172793977508793412238117279724971314040983140926408556099413812342763998293884851301441486012516945350508595559200452444002288884047662862105102952209500778750181915454795057369502470754048753178400006326874721228136102949841855310354116952577862302006823645055074828156217990194391774008590973126620842883283030008347532414901162034694909441399759974538154740344312486673533966983649822687009310035160908954355122932282893767433740864657277608305114291603649169281248335037833744435358777688330963390719633765277313904433260847466280732854918774872263702019178204310439487364429223052984655838227914199218842425299560662893456774021429724910818966705243509051890091866452752881887353547854291715477774020781837530225105570008202661462544371395866091928310459287345093586985527515784089985612193779261672759580587611948868368161693593225262602116029178650624779452496689623192861524714928140987810950211654018599042229329633009443869359438338805165367801729608111849586809779242258347184729835973959075908119410735135171460569618591209022342484944863002908499071848053753492851343514228725727358392123118873699611754683861494121008133001232911742775013229417840134187574427617580425415254712517846431171877707874824397160012342920947873102834950846659892468576176122192067692949460838243412003912102589479540706961224502266430809745960164502002096918574763626231035980853191865743692652091535706281992723107763890301677956087579264046399329666012352350577313626166810470671951627680602575333500636790913677803956765238763574195868765230273108223251984313149041282424199477872876360616249569766738677331154665221228696105871111943184354831959394292923778332723960625363912122405094480530384659164438352545113104914107743507023289744784665690655196938567118620787857787914626335092758688221393864752025140729519052415715678320270894362224654533856125719700077327139189999441911791831830477139357200966111302402203916630666055208970598941886128813608329952993987754467759157853189612258527841019791316609958956029743508997921708608124338719816042594871366460788245492754568118061543925366716685601701620931670727054168486568583799840887631093191285442543967943438911750361021525707858381031029210875764379310510531378486824856423297765648065430359757724910047943362018578514878674337700039566661939606659883332013937765965143226004398067796240833254017871507336375486760533448479833289455769732640172834610019341722052233785956179173545182595768575749616865474977072111964562675996507328772055955353321391437161952282876150687621465901483131153968123611591940099238393778774592985487890418225869047545667061916394633784963959581818431701646798747073340426473813724086261512991035985954116814769324730784004592896293413917757744266174435945622502052801492475485229083709145453528004847869082639706025671430048130226685802219152170469249966940815098415502817882430084390448769439095512410774810104402602403473142763277666995681929080959951998931119658514787271691307247972333105143988865347676115190811544173722502685206517911971974103670569700296465599481047189634864623031248353262779625307633293256126342027665287378102382839393787766406589653043948617293995664621804659530913898675546140603151924052378799489199530635049847520422618179952878461081510117535231417291006493439006414518135976661629666086484876072229764219031644812615177163623605780393520027569271688543635016141159314531729241667258413174431623116903927368604166795576325196109809630567588805603074188855227154571945269560079374462639195933784093532207050061263766857765410423181146076596065820277913163269513642410056128376132366336949777653440137345233141463452434261844348244229683223522054904061027034907609186830753524496536752976908693261656285280582714894613992287208936704090836462111329220585877176631474971548457206221380789391590055236438706335226738068967103168152571842110218051104945553973541858318221045649861630968957567579222255265529967627465424097476220500175162574024668190883617403533576732624537907169342259280974360757823492342276026548108299436398484829429643360467275227520372146101001268084384037464585381569192637503162042591313601346815770987742672016345357527579611892406810947024707299204993855072533440933241559847795204345698802871453736484408938581177190099767414554006833360189060813290622197043543843830039581449879906689188147471905635387021172086614645529933966559995907709907973044693339143489587191328756401655187974357520168875275605900763906667403140512120110999521229529431543584256844736863542615705070377974162533965248675380375791206221218961556057044396880665326303058361597316720679148914520597116246717709377235754887141388198447236274460458452888827762863726114512587138152684314150281606779822187629605260620819132190109576701612246401357562367189373595138065612767078334367225022413255918924093160438683268986676902152148999478591918393901766705925832383106937558649762611734671093633095948515774159260914110389855682950845739548163869974082350212468166545761112415845955137277493208217757016789819447834121879790814782150641894623499927227681993146738162508391379448933766137137280938335714551965572029240083093829366518435863120591718972636752750896497583257134354874258038888692739159150927775283450336450860924462160959899358146313887161634905056720751006036484288876572856803106107499441307044598834914553840022644866725530566915034772348058960741383571548015756950588211057423180614438912771073206352935453999081855202646695632312387578877063124548822201914418563813229645436862984561195034012276461483287791726255606779038812337079377411393996421840965443562852602183669761098381806187771988120596376196650752084811168999667570816717913945308030722120182491227638898464849877984984092694760873282551873229217941253186280294586020757000820994679728370678079680192398498708010919469686353243576031959451043021704729498443855088121202973235377338046483828518065393702085261803354608216473418070163184395963680107196504065817892785565592296035440024271777938530091747735502315224279173970345073608981089373113101776200280936256443777691403040564048868994598720404270535274813744816820016592917393316191535940379309697850657047687500768818127717170522308587252696731191703426742139885236010688284717974903066225625597182478685335349902940585754846631724505287585787768891034111597566485648000871159964458306061062198535435240540769648670298452724893231107117497185144124284486838953303424638438408803155283548451622270599927043436700725133176484201914619814682910133132232650729354186739088147529057101366335015272895979916336904753212164151485731745662449654296631768027590135685913991512412136614039544287820365974614160896692324396525763047352893205910310318093325006010338388607184468617976347730343140099656771112742226617373190372116124434560880583445403781342103579537873012572465370927477138138855241056822939007556293022779468810645102261940703609141250916188075737189236031175024343222472779890110860528017208685350011738589788074904019023226587369285061997778841238447358489564656814902102377943426047114137787861655190358637913051898070539078348940374715798476553823642997117314726056729207616744256708141478412932116528018002117609486787353100650664835172625843223626810389731492006498989555924741828602122065419930172524522439966592893548720192043572600586869139691281831040535941853683745455226367252473666841672828564628648271214673411671944047848494669109481843665114621335264464073171395332220126744086939085596208068751872456771297126514885904689926570185303454453606952327188208695344129128770990169984545669610945553497463621336100893105781483836002174655759606676149791991994559532995530602260027339753289655592914456073296858543040701950349292317939076111277283022633386458910720942021768316517093760097836730821470813296149758890045962260400200120916194298248130307533293005797688692703755462481471094569348585817079767654129757644038558530284394554805912590885329197969891196055047363527146912855471426684122351176956660425695481168433201683122769354341775641393392246277011817311761260673122756704014295695806605187068431254788884936099831038389099100408816395036825778172244442699499563826512017749991795659597200502716904949710966892408087077233472767227020085972936396748885797814551626051998815231359701236444726701806778925801750070131837127919833094347602504425976336528435149447654676287086593340060539073992213347540195232409315122746036757262341533820070280465667386492929624135000618020919820928736921887667589304272241826639864604208917250529263846637148153016127634069249633316824419223443117364445081787270036831277966875395156007612318919282594619533023805541780315181327177850876033831670934044482934506024190884371488187694839930934116860694370040897902047436720898315425568035386774740257143795703229965273463775934600195383540211811472146957764200742974721005342710674528745701524436860689855670001829119711846308824261989511315327039176096487161388393365240702737236551508470033356217257912453564376753237641527964063781206573269844048003648909128950922084244313951219193278771251036090753845246556961486314205734330884143359660778015335145063817820190271853397287959543442353976044220508924903199685849844638811946426333525840702179207656228622539169766403176417650717728325732294160233139449351546816660340209808291424112029364201032834354279515815591639788006307383170146019078024278912854025447146672167069921503233582303930417010347380533280690900075204339052530316714504940663118293496125843535447006410744318988781280626820406137924087145101114817469439891909998108487580816585212547431114074256260733147677985133128509524760542194743413611022607261347686461345248601436383742356924564590154064674448765747944323257035867029677031058405103245964021467188305767037610549722406618875525319620379286328952113774427561856047902971429180363679154537359605880388929632073888854163951964387467953212637987422177939720860783440349227146123007644429362554905475573711629749877934658005311959705045426262655055386041625089749683093374898068554101862446780249385549651140406093250098026225942226415444121447218388017258256435174875827570229515105807004172975747122026932218961145930280307068104758459171405521887601717306617557551233920785425846648459970052070512632566210574911813122096909330881790304659774025907162925530574298783605658238958094959022622427330966928114718356211813216629377789502563982863497420924027589442247729851107697782117132202659712254261038433817087151404052304766164043080034071725822908996493861169118567741232902835948538133922108987949358159706345579850973117361654988270136608973374215485477671871907458442112281119532329691012113878716045137678999073394088510372033287822582955116040468681676312168368055595431898830423105877798754578792018303813214236251614263112237678324849672565425973510999241430528314124047308930241573049105042199836403870466341891448910314754988657696143063114850124228694762928525539226659469205399154714083617081632307708163584826485289284068960110344420739269080392568265536839432089617332139611082550646823135265111265980615022545742572925979258220370165567624662615387846189515770379745143792023465520959832754570905458447353932364950571281821297117938194954554683518047454016475235942017745854645112034747823859468429674919641845846047583843930463740842840913657145762583378022651831375499879068902677012260180053894751894821935138032586998448652593438273550077272846843406728072390423510813496794047377241321154321842259920282617116773048635478452554956859296400482074676431299018223817588724632233532120356200587646611775304410337859636603136376187334335397015966301804529597547000552943629910962604789827925583693365777201960834784766298242400145835207806361431798271736980808550453708354356014725920494442509381719948448472509275837357553372639666216313094567134722325143757357178370973739478444227373622337715580324473163506647231710264664371070140343986557452567128840491502028099482040514642205681477735134042122969437443435032609185328350362126206143553031864643218488294382822698736487082093024243275978126825093122196922528321501877455426658441814533160660337830801789323032123739812416854861954593799191968555319752546191022092728965205420135905377998192052923826810768626819801574170027425212111519699384891119491649284080784607101425247007952680494287858601740411877229177394885606510431029928255579907481577847949855182872586394666332945285208621336952461960603000552954393782603968697524006662638369202379850120163332156707487260422746281521937722072863216012200785706126303562510569493754277407674437849704593655863605434449621876521100599870107069843223420695467711334472396541854811048644289044176711449155459882239296981190336991331353249546291028699959995202556066236736094702208552642654938721838112242565110911328349169347203016913450069374210875731465694047914703270292498255317184868323384296299679502012137544365047114194316084231743045882016112008867869810977048368125894026495043744258013197273534434758989607317192477101255935844394136839151603243637234188634129043440034909953276114333299252123096526242834137385021127670535380551561299410847726190802790370505745713713281417286060575577979629461726504577300502531218562396498920409658414316966965938304361852130121981940167643954563719491782310785011859278275284243300306951923258048287207024507186782957440840541049817388778526536759401468966189628928207604774001908308055268325541751048027718788331393208891676884560065857644238307998647589778267619675015054744764044721371191383479371853947855905115321034791081092882607531102051281901172046639950571586815766169116918034473613534182781313849621294014004797057896260478306678186082751242225830404374574100965422004451125498572474254762279030580494675164345121832186700728148779249371097335490665689704243264944942817552242327560282318463277100817360605209529939221721078187102273425352356383372655971581872283863458973134784570262998035336452544012128069434127246416933403086057242016194672848231059115948256009417779021484674176689878025501651752215777840821831325737752512264844944925467108957760623611397747865964643647127667864325857868792834921377735425454760747193296383993707127161591617029641652590001267014815729557295275493940373774786987041332449822376960574724929917418729982916044072802277445311434263731738981796044088500327492328548642974594349223452956548046470953141641186416442281952403945043153976894697484199164661675433367601981371825841122593327318908080236766701062170755088798944743153894012262800536340648607430993761879908505538073090352555447490836217830076848045298211946231559902522082581819641033777947816088644737655701571610733773250557014703060182951836915165486012034328171295962961307430051538372094670531015403156929879431009458360764419532277563329120275163647653985912060119318576527121020840587872479185570815528092863244108273546052569744852704261224960342709953799186251475791245923370000780700463623340149872094796175164087381888402469444456544993462311188125424181426855593243366115357530315735388667571684537733648231666637312738230788983981402114490476941440729084266053250260051085337346169804952568046464811755328257283733019759349890191410627713624527912121353257847543321958948571130920592288674455526309028793226054210195268084835946008603748872270456109027260387413598793861532121767622122641487015765635779378194644237854702604861153124970249294264900396446068709776001464186051602585272163940493484048954862208447259196613522861117972773613472547957271767545174370606138144449844542227768203145718784705782966545839425620982033417396887570726480758699246194815129157838835685952076301485020668043632523902582463852311187163683168951561492626846770239665903434393460685148715436378128166572321655412921657563380124028949078407364056016115304695397265239072359732522638306095264100586150931873780620984765016715395733964974799026236467385373396808106635850626759050488953146059667268902565805574716606141219175606191376730135402300611379732034212668496618063259422888476302273564399322320657212130733847878713663230234923655977478418763483772516800288761991041810348040125727786253189569617311010310947672987453828568466991222544145139037234012443804532078108932891294687515665089612988180842291401350242555732577128807314929802421557275489421006492201135689598760569048969689892194871999432786417347060865605191796423577400591376210221146302701632912828345250370148180095214332299706313640557930889923544371776973467937965838496955872249185627169143409401611263849163722059543073951103449187028530904525493375981648775641032335894832380639515374431119509420975564432995737000148446359363088246491071655098418651398314856338041892388465009737817721088485090313071055384459741461911624457317518634762932581432285203103819961200287252377769471095824397750491849019253938714386483289633069680141921880344639329161104068472434927949685716605810769143614593461807324916975960261586529358588309443387609536731922317475602300192780084482258981585077344224867724102523427022580986967035621499318181946242425041852927478748101756899266419788102187066626202653231651402710501630701325244511231458518010488406765055929763108912546149930500870857041966483800296930676833037711323323779725479992989981439567078706383641730168519558929530162485384166558783250550802832102425800404709141191522180497944922410212458866935820806790915718362263067899901040318632337621421262405353830233864480036933171906369723886317822803064089998686735330691016056299358021574385858060504693125528301644261560330006640291122932229682344708406816674454203255857603878931944946938193886935932191547250968495533036912671962578380365648000491962764326920809252203571215285590056224802064460699408325784120833129309933279058634220599146979558447161821468671965330429753617358887517796737315636176132998200160186423334092912970506170379815028391108109631571792898711653684841879397513570254406647099706651081146675436086907169958089266872968688814649008761059324729571446254497349615185493945713787408012235667702950426871821897528866569103683130528725497380588771841430603712538025818597861149311744491842438033241448331559115158360052656189270943107615506713304519375559846010021895944503504566458761030341579206887577730976413148608896701577499857333065843959351674695106437235712177218483321708512104952612926687070196751028216418470236505515045514744351237589385846872690810353395044258412397349343438307401572537575432621334285524621379871714381375789258114099017136962843522565268489762839016596411659127825090824662946172399430398592257132224578232401883847317206999601084043864142725349753442718057162462139619101109181389194075071190793387064349580696159269670724866366637885663126542538117664282952911995297754552156207388498208744765390853454669984184083554627022355333847246006433890678267869825528503995785041500648119157256223029894875298843704949577299662808468089647147031147500099010750239685795350842433064918957899067277129103631591729606725789464043673193067813054891186597770663783676453064710299698621425724483992075319520049580885366070723402332719613585305163753539277822546202132940230188095253993863777057750794104447357355395738645629312540011328711170135083211866815318961459553110817458530206294636950129486805724915006731916322099953084358176279161179459920241745012859448878666557759495492585088245438421469776153164883359797986658271240645152215871356780265470158549925936309450792823366907746867327341860783734181124420900139101348512024056068175490539137182407622989106960094631266154790428701036577203676564363467286505189626274251205421295578528497734367146739165200824023640408160702624801920729730377934768394932892617135257118527856644259542563977932255241864206214332440230202750413371388747050300978260775050520939089096232763464804522925660812549689423404453914890102876230242731278944721680374133055299132431978562577700605734765526248916340343069486722588749690898119921082522134548502862553016054615015852910603879125239444662204830565778025145175162062031819023977844488677978795728753061589867981169003012793065240605713182930985300859882672506659887879439344846264648515704054519692070583957543385761225447256503770591530996761648656178941607247448892965003875367498642444135734436766683167663964031638459004760823982361751014095259259277490571090513823960007992344552976762545975850420089552213600829748550023687068313048835456049422570268343584665908296607939166079857168197891518615120121030827723639626912546917104915172109344740706787868191162024317334560141277014790988550644166282467289560138238974090308071418083998345979780798430134095376522429288755341127507480278341138706550999458650111663978481040564957624558356099396246808805011688752071938793429775223995136995809663219190901398573781964510526502803922231897492952868153295766746798552143501447967341669520574043055281348055366908951385459579606874515166730664641430173689995694001257494030446009108979186219469599660579659938356739096746502591273577109187976773956235630404684472176808741129657338025708516358130334448802012007252132489851773232692208754944930571506526619789429816193731975830480099783033081055199380621404019762368826245747070585527433516146426976071449749321473535582537428911796955837558047650050924575846630237160924696837160201082605724402605211632152279607033197871872149409657276052154980336202125306913292541157642298077436047519894591120670151619078492420901474759867756202859618473133283571656277831539601853554912578162065140278934876459851300201036097616942755391508598523927033858665235867816920750865227036511456451299902059524678459620666517206209300951439873286138272832057344696784792034638895094751534943578971897605644560187743893560238474671533841386577829163592705322477249004381609584809710730871687473068704664664909447313587459485993718795585577744557585029849595799443055134139998895493078013522900940277542626351303444685434006333053025394359424294634471236218388122324180148255240553903477673178451891506210384035161206763219761539141225232279975941948426886717926853961484542457739110873688082823105889533125635567363083134049188341165397676431026471048853642930987530298176691708159227556101561507282387957095371572959489565422329986671250109074985968444303801684487996262599615550989672540024030278790427977004395642061915354878164919347535015492428917804868536050789759165148555777413533311366607490832964334939674470896950236980803381940208677610633904674048426696492847390586329864807698244084836265419537981137679367461475076299144162844739984763643468227341983782305944938527055734169248581060596931107372792262209272041030791572215897177587271006628566786711075338718712959864997047091620417483895388850316534092736792398820966899485728344789951074105612732638644318239392826184423293234006152319844342629863324725754377278408159387262152422480842635378782422513619869639467558377412101592693207038420016595263881243552662066127007296130109904200863900637661199896766433015592795529752785786832082261545859999243796976212690416613565815968207853750984625265354725594263289994191135393312915967984272494263455049332831050505381988681600178731562558349797362265573805597545041631172645527739033377288627773758869147270032094684088285253094743511349413526920529214104526862682385102510483922371032833082983156851014428212407337504078305301016933171191318831803682090451669045576054383942002236122885990708846711966337601399295197784256091051072513189058353626032791924044357100155784901027921758388792456720220520413606231992495784709775591514459875396608310734481949676351451750365433433063615407900096644183057605655266649427347633151851343066387364575661332963417587366392329260467916446724379664779779984866585503326833598895988709893644958444959364944757606125505663842087718551672230113887800161289496476270766940738824742880674143351743457891939428939806066052648027566741416151044843758268320441387485844678713044069835557747199234023476452972885750912499762814019679800855490252129482700958193495927612080599866991614654207101383608055772306184237536603735984523305698433318763385391030762358311463212055282804980453649668477270099243796511428452460499875314042029307424766067514060606670897773700843784404125895603525406270659137168360040261622332987402817396309492106727363372336672880142838669612465231183578036599916863384302962888130520920408737098549535572971575025311834546445434735543094857151673557542514050932200501872751827631613786023476217382117064717838426747463196494771583481315694263258624019940487302192744853016500488907695219544055813071981027579212519247952166322113979681012649879336513084416607725101280747093778370378174990908407997522066978608296602373640409887611175406953220355053688656154551009085127454166177783298531550390809949091254487733001163720178293951164255404959383778208497633413830879123054956885588744535549956833374921716478135968229660556201882838984388753278474893660160732208580531290750817710360632200727298465877842260717567078045750840320280377516851820100791469620737874357043807291125730827779687101382477954054772118640883931966709614289606274964229447341326010241299122737662064892890431047485569125604788690810753395190605608652171157805026913530440487993235063372697939895631505386170049941518933624292259268453610505591461612128358079735120774938464249027108081863691771891833794788290033604474804730769782710206991765547915550289804059993936599973734994338369361641540593671845924525423851911340763685360276820529067558295068137782399592285239556912400440104050732024609657704343510647629666845596791509560110306150223238047547551839227578523319130887594175911638184517981854423422355941836787626770756060644942120508928711885702531918975571154682656194365731490800517379723764640458209251806481307990177675712797040285286117882586737252392536883191911355567739920630200480410087977532744962279734352279672113874622049921782180933952140657850022599732096524134035740961023592721615896022071844894421081885464138577889096775855844135464490914018724078761375183898138222032279930143728038222649835874943869668163146394151411489809598149019538023116942313144569946252306683676810886830065173891114682161293397301756215854007381541741349118567364335478928051086467729610391785155721406221921324670822732707572810583705924563416456385006246406680476108571422105543361628651078643941232077684522849838399903419823074411838493312047568761143760255269104337887383124948161029978895230609183313068774016757665915484548178167756195662572447901964274548873865267920790472648176244002303869972178549950485457486054674059868424851723273426598428732223228275902405475654928538980971676478659998010846395559622066300352172290219946585595753004894271839887864388947778028718914142108729475937199110821446783158561837240290063778256026366613893007832562505223876987579783454561732027684505792171700326434618070125579756269620947329284464491567832591420707083806127062221361385948530693998588816374561623318993562016255096168781933835953144848775747576811033926124218140763158934926188898341276005313392237788163432517843871949889955827370555295073058789174489180923874203738574045983316151516636105026540591768805532367952956196802806599097791466435984428503632219880564332301087871897033742943772375952433978428549427270808726322672993323561586464999710631055861270232521126954316203801063555708552426248849889063361852768298908629780653387167386044378247033667915365380974883073378080980291288660014656796635446190934656888833831615645677727257544993689931703777560930311531888967879266658211963359284231846280363473534336273202563166804228836166785954039067279783291733593572538286682555970680440873207722430062110515767777584858265617187239358439546930286164476133142017252987211010039223090762845565920032240350985187380416592610362513437741841440311756947513513117231659943796885664638213616507981242746581573810267510970384227800336795955361615507964826177406720521237802597997971987486142109895749418477721030160851183225694378030558162598162743787061415940441430562869759050209984996327294727701665899779636117148342645380470403851949128633834508193506087755286265127704980743624845852115693089185886699987307027447267098989164858628248016081108207908092431874998564275137258327231575046196701837557031444173386475335165137099904984523202210320903039385326065518553974707260320547911446342790741057147404361414186191675779603850827621693670830557356114215299551992229132998968736993712186501230882375155704857744169917674229322294145876508232446729125054684971650874435931125544594487798214455038498699274742136170406836175214675227835469690371548872814103978698863346726993680085709724315421652405596825161730667544153375227617659280698590657950675216033925934085890739221569880888191427787614575654792578303187588557608536098067391377882083639061751987058792307442678967101022037075034852181940944953799158177791418999019990185995532030417691104878214476443141789033748959734309526385556161478776261179301556348441818840925757156056989159832855612720866107721961998133257831726292523589624735566607756992265884257394694459455792975869825167496404361141501850608622186197254283610053705135339704123247183944966096301050794039984778281837590904482577843187542937087418057609677811873686449893778234963601513348378829725897559860800628454954162974666363618610471599382213610785289311903841608546257350356498536434340953086319389950643517323952442563859749139385187530405526485897268168429102894085889330001904461313077971211761132688457545527100372503108172121237966837390647691116344000528350329303519510246346367364294666596467902327926861888764880290170569101914432841375903502142527723104052250059212273769520550391880482613281810812110294557993027695026565350583334718893807341269967192948524862454266945119703083841043519351804998332978069083611409462128388502750732282797699546756794724925946369725006162336689025702266017197950202717419134785476777131699105035070393947780695750551693393179984191890996154333458944234365087307655653298735718315159499968101923395920767755609020224754034953908548106583688442878471044152881438437694144536457930220280347209235866815811778731809599999250167884904568612668749346829503751853627729063646807777509941560387004387759593963539084544344463696211886798125408770536665307256830360452086448613363154957032889418030238950145671759010238980501724781175214073473348667802178963073662777423551725007064943495090346646738526986503200737911960853617891346031772366988605333133924728106866805751103206886307489158863084195004733481298341158863781076824893251695907936077809534552991793723783153365758630020005777018356789387817842943859988902164905546785966612740127014563746414766364809366262359737698294903692189051874837740293476606472191111110635650519806699124412288862511046825772579247358013157146003214438972750987195634394512037144444523648505043705817900269146844452201361313080044130784807942395363928569293714135467194553024215345814151584782846286722068361835089783262585732037974563225861371935760787268504044016149205610336635452912240523623498983478997092904565763001944082032806351622012779141863037475019864780039638728220441893177917875652473991413586196820936102692035632030415570809555394111185856855875513079815906542669594345297133836179160220914032126126268943138726179752403586096632341950915734487090674817311946135123371440885458057200402813456648438086145739313391311462530587682589223994575821237175846751089666257046601643976768723617774240426415193972844633566793455516530387743659586477037551179910877166381100208562501044078797606958721697606316133314881779009244151422156654966864100333076607959011241037019540752970236334227658582798141715869232370659137629963666628873652352697245301489714096259360463069251130132783578033829428271396760375388954318628412226649222108812261871528998014842374110960849320308522645549778906019122901088635372562761796327329398215812530987262832391226967050379654151923444097992558199082727643811773043746099738773304985548205692583137248198944948988568303643690694267587769141126806803067457555497886900296479953773835089729964919947946870462083156583514146247443740268955269214157993965236080663327699354465797867682152958012027365456103117358040707701492395098496702515643351162607130525743176140658483890831198462964788904963484421289784036200098945471459902843358316663282236888697027840118403496048749592007354943610203273823493244810589058289783894410565517731550464225673914417097696672693111928630475024724165604689379260787934738935899080388675556464272886426020580447063388190889976673996991483304197037015811219216056933090548383296700548819123101790932537859813446978900552262667667336219499042160422799592144739523750506006812413959522668718888211054332819691265267716878256474077907477651492361343006443597397385139276445515689672424659449587031438344003289649981393840410498366198648073017538119725930751315498774027224792778895617430180152673937646808215114302097316681829916510689982192812789256515132860776033111756309749172900677208883278734343890937045017900310108710052149030089918934126923072174717964769209648889544753658980200421362846328489410423343816641706322470671050134260349601764536640135033801617381102246571999606736584264070034611074340615742323360320555123967031875571019896369900652595485050476533719221075165203524814843788347995137427234553462005877962613268737447150158845661193850883942399702160359658359097719434481539354100004277901622051686284552201520064286321761403445040735673901285181706009911854461619615610320009099212435815866204409154732687064346265137361449020627860100259981620820509087781990575832667414031337972950686149279450271801804240002041950456061464262991892884980414851506331971453547777690416905166427431421638475570646530812464741792549892002967154705710448588651052139904589972236497419033033352370611050655817629449097768101753515030617633177636659976584009840679389541179912388840100731079890252896917876484431090750017235334710337886594266567998886433850676841789209565375438000472558227088851644795091072944744614422674247178564632718978122704307828088974895186113291590611228769973865080486952777244382626714958604562659865526824512464975728689592206911160083540225637596452305968329594786763192459720874302393098067378232883082836782238350844499719161335620869207027775500317215618914912002794388281584742242570058735748757578867479939350311903154291947396079916692245545950801050255283833194118288574410286324417233487060030810545733190415775396128643770591264020088868758733096085706898709857667653520779350024329414022537458991693969076203283478816271164219210708877716166106746839040714373589986132586709450182798710116536261960913159488664990799883400352359717910456204990694438856876235919972918421416220820808469244184079633849025267474656353640142709635029838370440252927514438541967010922984203635270071704015131499663762875698825657397403297062056477980138898309433537040620143047416091833053001632915646176310283830142349422435046358601382033780609473636439500851561656679027324505101564321001973044983253766378197569185602798708601162766886117740041674199802427672045834681094359394658812965267560017329205945352039838747711981775101603242557486093505156361654302726623896875916454857240061801096317775054517926509337180043876548712109384221593912120806510901803407106086720949309487879029021735689441105996174673647563011681077800311389940732449347116634123789283976200350382363766418701367907751909136113853461627498973505611088029745567683846728780500221734231594530828059002559823336453442709746173074671768515924590669096710513425028245507617666134514975468299358803706971634164513393210432589404099637554430853913485247004577219726129236007393775507086601176037659520278858860935681845621707590336484044444236741728385514382352044372318048208505692739849638321891763203192871295465071227858043240956825836311222383926320902457333289544111026405446631913039406282930043790689687507055700201199598636647107542131092793596336894446106324564768132537984992704626696065862488301276018338691898963158110815155659585727940569334888935622669187440899134043994278612209641512892937027180426046295688720822987991149451854423022361889922362905748886139766036923768741461441471693453941445195935936633924156311444205908123748902482622921163366391970402168366848601923085763438304540749276475658256998820560562029328997491801102746958954372117428234421862600020351227227720429727267183868750599434431615014398461699562411776896861418915643604772605640312704997255062753467994588313985260215131713610336949270643862676958887696087791052277912509686604674099846170542876100383893674844016318676748870353526326868576731427886951844656936262819410675761841929146188988494828275335936749055970437871261003357705856281931488607347047777726663066959130985680243285206551488080482772867439008057544829630902725011261064012623899720621350988285008449999519674966593286577002013647801840383035950353281318039758290673171608351577184636026304070159554077468341786912828789084013524597445633239302948552704190090916368529308993867819652731706124051789336337981151383044650767425289494843817011914281263332872504706452888912969912930879757711011037448458955708047355193473207009320509157197891427396954252510714463496761812416529096054757154308909115259191072909159070943336609495138034699294816513885351909874943528110867265378252814256341498340985835881750028070616929691177933139588262059055373086412754800888386178530288509058563722897004829495949285954490110724036366775074132582600494483391088534678247122974893851885199972020341713282285840318937473468670699219449541224951280720714586837246654675012786670022331291330190989649633270481516908302723635284246727411039074082486439237646186990741235083991264080224258456884089975280732966006633222844691679177959691928667490959236725960160309641167616294927683007195711545906159466138681017801905709372861459368890975323448213269668926884782311562269672778852183793451677528885585775053608474469436099306399274109209578207664136130598220629796034956633090316267037895638815607628834915210381499415339313461117025851816000833753913733231331393348562676871191104170721796040516833889991861768606190160680494595052564519367818520568035025771446867426045202163624027188576778466336507323055740598386749840616032646694081283212609311150910817116143869102107299811031822111606275344203195164932844335962010058612986374658058787193681933019703078881857239530956243302284797309784878587606107537362788029256938233075859689319826821246193430841866349951417381072029554942971098293520603705841834135387214358656880311931898345010445395934370865672598787097778477300928526248976604673020143498869578367363736051678940893262750667249075051797753122275040426162049276724511835521153915715300221504229033264014042261425283129894516667125303149223612831202692117808269749272108908950087169585903831339920473067507229848104398508173818038902344130995986911138785873499849851026936259652658458650498462842012303585476457180508424534241316350921458773319255440582149043160161419534487737380176064508333017209986799950865378961218709794194046862196173616227366342352149917020992954842891029087338397426072413900842977893330058814405251014098091144361879112078479407256298161990091997815481224169650272242830832084662599182210792525388571783832082733142045507836555509203556839085805726239477604702637553648948415448518503736168370875726052137135924355283305506062924757494542418107324317175688681658911505130265394839823675337512453989520352200250533629992845566941648681886344310418191290692704460589930935569747863701005936952542081104381045184479575850129244327571800935558230097317364168481075971207737225542174816799881967052584319874767796651318722635509675799369020236998005135108676487558279741969044181304234304373908114504144832749226911089235546243357202310825998888909434202932202391290355428980746840313968396411963838705366507602759046659755295810529030441973239171745902870847340998389016557941912415333453588019702044801120182452003956092180138935956517572248908067323085067572210179519124103435876170201121014296675496996860364625713202918773173949645107411747148730123769041985071455457517544476874110798045264050378700072075058193120991220755789529705679023196683207494227465192093211986302458009261173953635249644246207334746239461908180470928858121925068451202905207195441365790129958105844102402160317891119910165827518113634089904359031465518139724621144731691480464127050050686744694036477706633536702647896796755173981796904937816910164648486936724068228358241484606107649268744393355092655552250479244896769135914268554643933850716021985744739857901413388515674779805812129434490426888469346204932788281856995025648126558279261676050374853493414902594409571960407253886147876372368843378266713387060183964959220376339767117928276168222224947094120593810094963684786292168552514440774547114001518829153820047271488373454168870310803880806951646776805150040553810849642495101418854168543828498757047862558172598140935062974431673214319672050810723812799067194777722748459174576898972854999557569841212919510603673582997624793879521916592456162430762043506949780292895699694369146665776975830431069285687910033102139964205783498653242359293268835194213328277284048146857237977197744541958817882807927104765983986613852211233403113906196643626551982211268710196020931008345172623652928327068172786143899589729933091600335822905045412693324448823088716288234750378203518009596419611082684977600138577402485473101486890607783025506070162342386400906840303650450524913542679499762666326828119276153650753382944099724042734193290512528987692813868062420317140130623103814031403465519631203764779868416712907313005927914742214237115856366510242943975763673805723512753406006734521402121370997712340402369150412456189049830091690930634523168772417764410751445322657345946339643954228426859761151728196436974504802234543665654951239441595357770514452356780067854281787204650228470747857809102987724581875868654518294866040767024131865776055108099656473562789302583131143487815374156234770353865578463344152174126990161620901089656704314917920585343902593881254352159757276753392041617893088015783935615205518728489326698805169024619203594016092749032203137253698653689143090478898782809676658961046711532988479475904883301656690915412464962085839944921730464559351653668299365428308094611906485452981478264719611703672134477012672192957759461806358247724723432495954829129242613077099694943071647179196642715195961565520810047270605971352148042783961625266472056296523887014174393770041955278077608211496600159289832374997265164681222727875480599053546188267292991015765501787498038036996909378527977785098013331315501488558220930131162219577499865496799456878417673629154455824035186864338249198900277830060286912139389326964696546347289134490669935698102117345582995980713049022283288455670664537120264587092672480281833658577494834945171779316246845716826816292771110421846645165712605058776401261748458479456909493318748293497710068132555653721457695168499844532816151571736692286539500513967014817419080124453302715454609712876772095921342234232230180544843646261739675182747321141780903808680410904974728141483819126420433717277751593002859443194474629133741604947655820793524464701935460439106480307701968215820526734430699131010734599534943335076197132117297475688501106779942844043007906299642056122339417204527028340149581977432045987840774926069196859392397685677109396422680198540162873813901125783913816923046704799826120266610427584801711566168377321613168002943340640487386766797824596268937456875303423000162387802164698446194424599089916678946646725507184053452393976449453355668932938951150587792537418157642722086635077168623593444206655302652929339242288092302334732193647039516309560158964147710651074857753091306721556606835489076493734614848977104081095163875708467454555018611015494714577738016396205190446414212452727418019539445823226141871115143490203151251089085927924601281488942924941776954134972056630033453224100261780397764921195944400189942138249690658098075631860871938001927149027084674170519810867455272173554273263622396114935869847662559815889753086616607480066323124573887694709203307079282592962342922949610647832382320869710541470510982475329394650794492389869114157505272587554560191084136545119516111941055972008216015005815598617513212993702224471674251657480758040713347711984201928410882541252558696076890990349256629913996597975365897084275953645731521386583368768076137391529726249133988789662534349166168209977456409805846421073036710341260985669368748662561351239059465784970412365137818729791754311917556002142580829223452424153759112210966441552087885888378150171884071784939362226876707472503439280280666772382506852437606709348865717472024427909899688602401993083016136338361854414198433634998324233736275777954990589382479136041939782749478704786814937778426138079470949437616221812066556251027356954405966768841227943997659687991766186256680818480973435916316440632026003764809944379346682287301946049860345588354620948052864027171628610124872399710727761556770028868762850533212096583924448826072080706339690594198073775355262536378931893194989311455911830771404529655098309037816188164972015450078921445707907617172798566716480326249252054744908152388487503733981813640570651826861391173763329819475165686618733487937982564503327080518301516259863712132746867996260387758736991022455455993887438643796463597742469540638076322406568793444332130818838666196181104489932977126317314934413725767762931554135322671055958967818071167805754779148367484114037051381373251552282268928608400016555146340126403142164095990480434607726102469709997222112199297484977969092594335874233736430541632768516381544245157970044871398473370178239139678436085279285201676911959269673361847593723214837152272287336899748246218099539362660532154734040847612314751539373236077268113096863175704736065039915725748933330918759518966740245354830547761928488250240229790057201541198089047602884808568162261210802234948405799686522320433078556349104421523901386616783589763869594918288885937550865651608983104942645042050558944173655770635151481298542164549263947365129838905640704486774754053473471246205556442866561797948554426827108915815582009274371633586767935096252520679515951975268512657592264918730036816849718716449672503251910976925120270307456425879936626620071232198205816925642479858737228400968634065192737670563100683364951921920203099134900456675214068726154779537223993756025554964873383388012828563149159113506545938738370771321834588414459287837680484781459382183953214101102000264401895125038260813226646236159970304169716562881503580314953734463042934356302301732399392281004936057455707722663856946574903486297017232216647435911496483192560930377617166779947620024134473227643881823700707765558715606035773477631200939523948306477770602020257011760760849378970739714366795389157922259114012743834034329004197015933960354132967137670096895241409939274294945082437239142541564784874316410014938586704907034098569880428053048422580616507864605806726809372128821108433432475471488646356152784163907516135533578448302248901368520974774062085932216525751101776738352042356794179876449747768593099613976790275521606815914243696187519782904575185039079608790973996789684436297762676952597634088568561818703711714296191499344335062551397791056706847142669622877676235542092975040570652092795179677914921154927569417314979574626369052927359769898835036365540901537198839728194494702996377866812380240618522488431949427778998944208536007196457503111894969177934206157917556382452421358519588450410754918121805871451822527620617294227195654445550223458158073730154459597887333778700795019523905621345646866424396833101546687073900082251400117665176996428156076092450607146601550899557260845564113728130349285667877587051648449902959832181528925496849347952136440929859216452495899199648640700784523255819229287382367668986504924310906764799983812434866472719748338881381722497342839524913067997245389374364807551837900504973992577204608815853250882307646942255500415132188891258248063874261257968744766655408218997459316589315635966353091401333952873220596525804962061395061614225514654557815075687316367516999582854747733163937859494672662479840061640366446825712183392626982680599441092339274008760984165909209081650948138079810676090651856709209662942724851929910015580006402245593347331227179436099254129671711545659282396026243610927339130841299309861731633814246286335311720747440281188136127749517359429003999557730185629628184139455358075463462849260872150289877439954371863317802986603165853936258694829975420655032832754341034077923396162410597990228093709482474761108165902076119035339749714929574317481665679881347202375248398364357253016614395562081193213300994311690063357878772535303584435890117019989853113908830152659241952690472121780313417222251084152772972777337927852637080707158650332535800932801530995788556962179885477225132800621518035829674201330633749258757441794031928111066848670389163640425527198371261515428790172877795430476083023150191339199378753455278725755415786983934640081179729135636447593577507369141044930904241897754502649037578064453787559888016888134939144551112985916974440414897448366815035845264710131534371535445505847883010492039713863860271516754776191326408349962607992220213713051668073155281346426112664450960551487485545386947578898044155740864142768075163786274487152985434133599174684702787649046645830235447800007233179717216489214441026293103423372426128228096237967767598064768096502250953843226404221323232903394421868479881001460375215481576816278839446819230021603070594321348537126890654802671945405014881768596542817954679551292842635119657491057047455939253347981387804561868004346157545739860281624642559792604233505039390301488143542911040150590671706925861949973110448429055192724165512456093796785792367471887633841046625385554229245643069820551682759994670869467573656400775615674693569234707678734666839345992970318355167170018441694164103440650621874081308750354779405314764921364531395389955119670266881307815849568949059548565174538882694736980208318017122602991197396748688066089873217244088426229260273860307683852648826599121049253815093041407704826074436241561681935577249800735854515366542920241973812632474998412938489825077174490416348957869253362904982493665806354271478205804029113714407139998829521031684684915410713414576494017614059419522400494686437477419723706931337486789286656376077052287712894921754493433556035666923535633798675208640223245280081184631296317060869671165405729643353109026017430090477527180231545107140776425826792843696908602447360333996713936824916652152075931723859272138600925954455897940485055718315915224427222642991628790737734566137391139511133931888843677986298448778056452955254846151183781852209992767904513551670038015208548742215741508484413840646682190755883890844402289253577430397984602390931545487825043900114247086958572695953347856073663179477666638176063956211789320499008259274828939218278401814662659405068617717517384821577468523491037022704922902387631207547482914092976386043644328475919986661196420338810871641699529651050945939431860435810781187883142633871306327393271358051568490901348370558332901354567010561562853106057685440864797212305738462559062850023825211510944996281375972441158910555620878387984609352673868769090891494821811020379777886254034203237000956310370041253407678889703928558254830037468373605028291876205556737485307141262857436069048579710804074082451735572998843510776956201995797177535925839518030120366162356775127677354434788115916485880415975949718514309108239232898557580930818390232146610838630431986312737584843393113159867273367697371348463900163526138945329241414854632603885948967604173263927642649263957382870055067049016370456391905341249948330462877327494827292986377598522829523501344201019032376478159248276041283364910306779636364901376863768025436485316461918024157411705100261264020238425022737626703072295513813562703245495557101234744191011499952977517471694851067450938802617737466255208507457111264228527711721016371961556958896872882697743361308495963394483184140981576538842847684879175911981179725305725078620885569856345571368720503249620193939086768165974569357698938109103781889979620759661374488180776479963289305412067703940364753769325472418729819338593856875872393721965766900788203012646985170633494652379613512053387969124609296808430112752050167433808012263562638684028136248509696299271996360392921605689753216750964373135448008995174090014799600256990605154082697412328649578513922733869628597152487036620026312970073844694794209683366555827162918475376486771981564115070358534769085543473163282851088989410312422586362148673666063898587546605133326834691998936602765406164140812392296710576198368817031965619232396316637455543149753217425114465489250878817332212359851725591748765742666611914699285847977974234694591816537111000964765470410600890677937124684154175267300780380908829684819013461506039624462235583893229486374918268765314102688529539182230457139178777112714549223795621968820885045583026459245000549213588474416571796077818164943759108769171582844599315637761345080743683889092849582468564079823078327816939394476038390286620501605582840262511143235796326693779615350658229210514233704798272507846818927880738972217571193310088267272454178738618945641915804258463070791415208472631707022111916895621884766861185691789152462072902855123735668231854503041447272432788905840807917776552997325645064074306519194386958396765222358422877940663537586731937540976384166550876039452874701322007501307973626562444384820156743127501550582644794451788363229074394640674361074611493406069629526248877936854042777229572650424506189980592005720160246530882131606029297640050751245624842906347411199951013733309417299943061705886674604826815850840434872627083541342829117680911310545928446175744980472752009733361509319679771220935765336042761980391877575811388199201503490148275987794929699591653867695973644348228719160745874998397646217928467598812190382288602806717715478254198781548111117104713232382824380178629823310517926380424671519594033248083939545755812116476255079122652368678299082831453873905883164249430257008893980897875901501921386563282732003045716662047784964232145417999482738741823988166582805120046836681643216342460218282013097996288639576712793692536338486061990095330475718853200051958041899078902824088475034427138703408869737790631301950342015604697710627685029649656302402233036582955460073752429036919942447998863064194736034882666265433536762686016560257004252316226357123710471264023402978589743027395665575548459266141081421795820129863193997561355183105866240990158844325807531006623981431464827647879011533290516347951990548552617662125593103088481394133578693478318599404988578720557167004287029622771233862190200806709105608342903087099329454467396361643242157452845482381189141967106911217406568138137473250876678635705313195786404925076072303299850939895762771799179834207313494797619915066704831614647631466980806099295219626329740600715288124610064289724346707788648925865150491590718224629836923024151308482407022860597542152599240675649066223209234714940795619068613384478051075299950005130854359881974353951068419095221224473641867335033602154171955606651325303463750890283234633693675322952181652332351182657248537522947171827899761682044467831946550783438244295009612458441944386646413651788946049921524798874627185997898285377054399197869962258045144461093314961047168521861945340107524370989877821564031938236811076042560079702431024058199221362122871680309152596386602397128473972970841180033467904504590952824451525723094396873964320887119457241627583452722874756026064195966339318506794627757673552018613311826657836086216414444747336346038013127256956943065546466484500777074505260697905274208946027413753657417597111571632614194990159691675335802653415531606935776947988962710740628216893709502060284430087462823568690926581148119697699508371225804444332067759197967058334275842394799472002806795085914918102507405781240544422876938956121436882694718318297942603168520529612168339127715970352491466614126418829653509443422149234089422756983868333918633731712583501259465456982067608995470007889351930769418993904563535582085410550600087166786668919080339055407611472388158109736767915284991297400325309899105319725262469269637653874242287689814311557106461830777563067521599678192615161068444960499364422722647533457459745083736513586459290699270131646532028176265049495677777050159880977414316258883110678948730863420045206463550455877373786792283339564223266640451667680432923597349941180248419870299598750970473358226636575420050711655017702817402623739423122837384099122480622856726285956917821084792362432252100290013585855830931471750649989157293361385029149973425508995654518906146588188329354566655115822276772679355503436030806196211290795431842087783217835229558320437924362313096313757056945780947170227928760815052637904343620700743811715773496691656449252976436076389031158538731731341337029173396012641054999621143003201912271762197779518846107939698924351466206318026940835442618047925508388231597383814055445283862745342662323891486390607439374247967404872736357027507950326438493794809801385998740209645670009866442796524187261470540599794402754581550696119965791769855015982249738123751463495425289189335323198691644258445468788070240328890825979634220514640152020880158643586822709997898604525352344385263997081690925105724108873878994943975818456836461961164746481997966006348744657400652498111139938535554568594568483495200087009224391842215721590773075213053925478891002591347019530481037608794742497590835697491727123631167842260466863326866944500072727151159290186236589193789481672444467741071191611144436524641334451043066366448395598116507132358307378388092920426139674855926932238010592945198752447277532178160967534969612081800020672951716019416576055637606672608459478144419148140010197075011468337160027826241704623590030038682727703295025207102990622887890838432342915617370364544487449970623130700214571874242331271136325865262726232705697831724610801191192906906526559308653648051543928225018563578527038774011435691563094964806033189049701486667692066381552314249020767282548138031182457672566619633787032437010471564482828668735154269955666443649668531288975141676131648213102882904261119166137761291164357134710557475614585025019035013801003823419530118633443090756239920260501762909568346503745117726217805436408901726743796245668332921272128820506552664190229300421120951068167138352221776908258420803820396527554528627638057883293952843458963722507303479604768972213661571269714709724866729030779076412488505053053337145475413239325377518512824009181549372237034135855651007332999626351296231386731453520239743758063387632987233085457280141784247878130622753859548144867185130999066906823091134264821372443446401798670983545463259569801810865332518318790696266622229307593516573966022821647234478509334225547873810166604220233880769084567687121801460935633068049073830301848398085113743096889768081009748400104170435021242929994064400982785566569086151793156808359450762015871664978833360318680545732348850548759128296511242993537471768925925786684551481257214456538220177022863638892855292776595630783778603972673084219112400042038200383763162593589680911575053171385638509976498119978644790455479212752330873725140299213482033444013313040442270620407812484889267436552689484485778288256113969576864088688449940883538551646496179356389239024013427720871042369228539801496557714093740932452067440301558811723133248453112634526772463717706192903571527670693756920071481823910914227990058466580377216612608496748330169503968712305552955784336206070278272908920689631732936002315676133943873403932718362093216704048806441233054057032104478993396117464797336058628006604458161855461937122261534418691814043322229016457774616726271152388409477905357985584548348917733238414252708909631501092668160724185012097402423379921868796461510322971045486653100206975214463662836986588732899126830078764312417026237571929300734161565552056660824855769699244762305114496172417589195752804105700270814853502571541457178370348144125181847684744177598590917150280796563741635229110893489155484052051718426526377561652211909202272940943604164772053360779579574748653786203837630901934461559375583378417697339786396254647018304651736769289185318648197702667249134582003641565210171109739185120334413273652561829183711737365595120717471223030862267149299738751028083472038668874510372046361974181912805957631886708506492542048674930113115167200445729584721129832136392264980831647847534075605909718470288189987933895409568771897878686121601475893297087439151139790120415652622969920797973401479145987765675773404880456954740313235447826863177302422835243056403225084243008060681574893873024816733905471651180458861092416253586973021707639306029477616332024227803147072463862123189407891195078068826087866559195719040502159162457751262674027234028848167360695886745671978774084055010058628592612494023147057016182220114328106293679199731161308423418083486495601487550090640047491846032773243124706381482433646821072890267736746439315180050554787488272534437295367530629713278934093081818976811098711206837496594819275799871606829315011499748236013519913884617205110690639484680707772101007966036480691240572253164004058055663060227545141580161913736037713461507694462436747006439446052517076517918854019345711393008915664560094223136856088694572429601618692481634815347139535734301760521994728234607832418164302542866824185755829291892689269076698296145381053020839816496821457696375919029587735765254835743396269817092535099266044584258099637473945406816819383983616048812740165968414963372567243853139587379035381413163662998589002709081325863747567375043862641817110856883878809345308967144690466642267890445179483362608423423814043217650091716495195733622658952410622010104215555490698756881975626545166497994434753791324437169286554417261842392731716438944005715906679220158027869063653740544056153665309465117964204709928023301755162362640665103372355436957588504578679859289117293225984677336960743022850705673878931294769156573653497398940793232374847315460656327911343097784015090379504428833742203230311442853335172741180116262754474743933612327851777868553316540393120866218258692082742576307934933986692560854010180595782147304747563769844619078318944530814827616499893180284726980496833878055565968542666266958281306019694494631673309799970645659602414748840556554805351697405919149226516266425674122989364109606597032544481930333525365578010968217943063473133076226296255813540122291639968961823694687747488482604806281902325965957906709460015617051323138517914466741162234447762622403454250047846006764621624031519762908249133911475692709893550528963813242371860799988529708059265022736947919140555028513713856797602821889262143116383555050985421571885329358864986811747710040145582368128155189452825339719083376352469454641756742410507383814497123235209392991395004148255370908567656261066720216052074210078606919318756685938414521008472633888914701425187690972164829132445229086487908685445597072001539832109648682102655262165597508341150732908472846322449477736041030063891538074396959354525806684404756126754630316122942274515579913229709342217618601986066791503867560416914476443393238786551652532152227029392556393093688012225458934502334372829608138705850886946246628959327037552169155471309607247942959224798960747995976331261477001408582438999556553737089156243781551193697892884010248448637994679874698854758709126513447253903549857492108374649807433808684989009026541939945120485395472034722756693943808109790347238618955120885781057039677645307846058370807417635867110081581421306693797616925464463715186711712539840835695536387603659170297243250435754044938287308610159655636822744465888872017320100295625869613983447014480763426687784624910681046214101577938500538386516619531928628483766398331250344833643760168342275094065774660550787226084838899978722881120182428662901458482493473571515213218134514129200104838816464082786638603560741956692461285658290966345930379130139766023891995979092734686977048131530517720608725454630263304535991360592484363812839989132136695885448338115897341868950067875119340711922651542542460328490419769954820918413771392710276741119659628312748091051582858090537780706680794532675630964069332845037160746616432935887534906441260140428356038807126847638596367260710400623905264397302752804987328471244661550268493665598858155868208952590735571843013982929792126541967258253757616411850235163668690536257668555217818095030188416618051463735107671743531802348931169120167911486050497781591618678045411109755675321517667486321392961596728932200225133482277503472025413089954790682939519075104154951124789691254375463969462345869498376111593821925103532947137072956585830484902736793135005085539680556262439928603431112480324564972625603437546054118694694610231902850337972799342883781936353329941717353693668056946060646057728395072749264662921562301827237969903930581782047866517011310280640564134040253190587498830404432235399916579908619799266569783341071654969308217626788826247557346541758919880608643499117115460953589193583876672931684261650737269144592280865926201688257870951732396518707782807028729435205519901077572374988238828106248436394991016437902503428539436000684364996209843499358871714987585980188931080124178089860800699136704663954220104067320926067586764949035119733181582137839215076657091208022866933812089595551177724952836722307267669595353020496448130176505373082335127129823823563434276161813696844210740615306005396122201172873068585184932416513462856521063852241078563499546117535266110752595053575841638647417510153310155587247434932082469031011922156899675887729542934461788514638158221130861266682527405567849404882711707835520558254598572061166436959611038165917692705274674417936079871362675360419199291339261026397660652632554632533198628662542920017947520840805192672814557794020718347080080245347312161247747956062063456075790496269240031511922040728783485476687007113743693848848577107173932221690052317797834495419189015824285711125684802794845758683914358123232928293168590746193547150451471796781113720016960314389657319782809912801994225465416358769728638745872836131251329834269734024949865731619331108688083493613409857262718913999743288985354079138980549255764603116804357990538817859922944098746842924170217670103127532939474292888656473249015344068916748032453777237443017712114002939249676881218024058479068999080968456525277288818293834774400731553864713861681044082908259162639728133483963517485744701739301620231927927993189375749025190626447131472481701650117330336681619111671526414145876980829350727992803000676380365321162764011598656144002795051016042183724120931252586397819776162105616888309477336276687027978814323388821046862003942997962387985988821722222484168165199629713676626112340679660812728195574515652416403455617164884097023451679532638201526445791537671400059517383691790156679060085588321219034200383713314082894161705480078338132112733480868875800930269147357450283148806906408656469787484255618378120664698707268546101013837296483393662555772903285158079395181096146081866976956840455566064606253800543969533680504619860101206512564518842107885007917100394072004248913618297864337834388331337377596861229377544724718925053054644444152479982885688616264080197039801970183627414257600321455706281639286909149429816817184362919559945820853321849777419544854669180339317634488123386789800230270259775082712731738717750064912389866359323404666504573371233658434033571429279250843988930255348859133595042498970033911615180437889469591602965928922773375006826826967142434125945359172035010970645271849165948172252133744025376361124636937638507041776307210840643544724124661174764306088191258448825666165305743241444932066619400572414993151618766118168822086595557179241201313828124446672835488991804108597100188655111932236954672667921390982027132455078321573731551392642710652763871829026130787297321447852187851245135216966275195188127886991115845988212047580324817093852220827545838918456598520919604458479342658052315827379122954903481148222682058259935102378094395510949699479371328856963109059672391779012135341749489223939618455162947771063310949192563781376312020207904231095088088481522331422988915940097276725149336704989847555888180474125242824322786674929236961530533949329040544150351351769434630206611424271467963615530013914174915484585207431676424628410840633403941144184026451001803386844997241549426008405948011590238019004395927656711882678380073707256945684049293308975982411596176808712687374273603569071661479030803789757922651944861744908237909585313994744741145561884853206478777034080357739633747785822066142570722027123362243533159310406870628079687973270447800710310828238818036176077135566948829382674016457498261488114869471954438449227222809391056552682263914663930126163379218074903396862174230788897841953031212160814366697816869231800374104366195340633790265896365225901668670258352527163506468509748560794974717374512377589715421133616498441160280439059464021561823346746791336504847134760864657970011927042741469176837683861870055250680008224997661019411942282855353999627362072773468863025115686649099586795980176427414162759365149561340990013272827525429560132296153906680295657034682736051378078987465605807022238550368492248033060200087381018465988663854499515595852912302219314075147404064549654248189662836716811420589252873605748484774141256408121758228765759405461252595537029564872205651068523420110232454686915770604625420633167004682043698930980597281081683292808432510609049355200310923258737496850228803196628166015866200678595575084212410720655101171301941222818921352255281305788688185929947791392083422400985625211156119624099025689023595075376375257222116476577839875217205122911787107456537924733014729438007073211448696707517574888606691749405673270546751281742228625421239053480536400731027653572566977872555855043762911960371640265787355744470354736181196847759045044217621895760606831069566072715154322161059027493885282945259570883527201774556736554984084418940788389756141372576781158813644094330655901601321326722938111861982086751369385223825753194170249075093402695507062268518827770522386884225814381511428265173390835597829351007823609511992304610610048266041303955703240521597085580606558797155728904131501192095663588255990690144460802594015670698879474598324999708616474797485680910778668317907313606782916438057363647318503519574302080893066506782593151104367565279487331753893820994837835708027664203634323496977344629688513292683757724485688146412739146878617458174453388408243969006420238737417737082750154762981121228876293157810598207257190464473914456360950482639131658024971211171176088302364138812542459602064740804686953652029214159586657013986715552496611941079122697527674718803477179371702674759102695305676518343340699978365016656299466710285584043535740159179745677849040988899809957036888837902716935919609793208991135770105045396866223977297124418375274067620033119560518804892934412566187446530416592488613811842215850614390853530950340915027649340713392309885519591390945311134788210487378077181113906569590145439407866050371759970839107778926678328736507499758896856804451530230562538936089041921381366104328366341400465893034304996463687785175135697320648087177856599025800312825604586924512304059679200014994666168422901120491780366598361140942246545091377577788637378275187733323475919063059803315024794283397564269794922678252844915693746706900429376343842009426423887389526898092972417194421855557171940806928488315237651749064082178664639830368590353103608463549163223430892939257325683708158369708512087137878190314931859098728625430698105409392533764985402005696643405147586598064071942558227459881288335713595469991881659800674720277304605113411805333284495701804976959078435302847315814187919062541783891176915982030720083156554036099871847025362455655264395194907862621892826017982209654525131039003979900294645066577766743724943151151265711000155579719016925133212723639767132702717161396926120955114958110413753103822796484824016855615663345822603206967964317008320650378049337881685174669967528254099926551688499216662234489903288909454418585640576294823720273082110990862015242479485613232199929959776122820243581907459069510708875544531230913446330104110166324528539789561034407910339654376116494765542192616070536002705633580677755093299072599260767315501328375191454786232805346634637979532987186753695505140798148047186675162359226112474022988175642759955988136749378943114870938578197336974789776678921197620729794072164176936486075742984160527676768225916394337812986169764801540908594399029589622911985737487842885808878090060272595920398205565366060561499384651921423240076466864225013679789498629939455562766656943203249410887183425776262871779171620189627935378896871777233661828321291963513100901404593189863938574046500516625521413311508541382998675588079244558950683826413003980702137938105568137928290146031517322312418585027513474552648943812997047728014391159888279485948244033009241448689926955636315319287492719860368222965821945273318566998624145194509864481271316466133477321016435726664853513249299862911660063863225839983886595772195961283870536885724914721820868845119299608004064205084941999834779113972090798645991835908175719684554243088405520788748449524236361288826932274626078881066374690839925739201046848613062828827743000562011018203213705899940197010663149323993214207676950633852497762540036962620659950277828941337160028916235128020590641742502022465538663765924364202635338108882199774625528584090974899632847707188416109392693380847160513951759767270098003213181614241474277755188445869130902842548748831829509913265736724572013066195101664029783902223500958328024668271973142410780003935030302657504150766357867188911089390751664392024641206916583833478325007325450013067816973923077382631532900699675116138603933721977683969213643973359230382272092461816788886414971419089088767862314447439020980672072593052695962453482050605675948967508014508144128069188734243846661105006218328472975732763187683888074627420392672538604743425693485604481436480062304121197585031705968887013019913801338647427638937874059695015724624941000164789531136483418428750447184046339092647091280894056663814826147084324653531963420063488755238458956400799391963622230231442846287475610724544591844974508843613083072223932977991969203091091520289187889409497927997264091360854077364241574887531335922317830107780628695132634434270017040549964951179475211144957820426101685270958962768117534730847871191262963794576763750335204919051397169408192435327378834381122979718110490760757233387595057852585706593403648159571555448331764178121770100167034498043003172350322083127161441029542565726659708498802711456003288309685463591461251206500951348148958785271385548357823100639459450929736042533336613030720856998322855051108748133916981511635407046208484849580552592905000418458476639938055071657115586071692661773159850800210904943530902378722413286398746516768012273326591599685022325298499058591163224920317582454891365438806544471569354288302515641439198159130593294104101659580364179228864270800769115007827815640158058499119233493484119203379389399356378019242176577807614403342300550633288753576077669791786244121334906935914483521273638568617728779709428212227499411077272137315407170200107897213360142064238729693177851144322638404074501437101935935942177669548328923462930021781334837360722976610944433201622307098948868520377855750269243163613811637284283609307021693116626977789610753902811517905780162416266820544870741140157462514058866145460083209713627215357805408213470199765024390407592711416337718895671041836732089645027468183204395729006098664315566921433152161937240058774625736689652789520218458460499269327845392674075575795898606921022605720656980418465040417354234913408745267775069254270160708660315786549232959361741157155212260889483385271816138862295473084727043730036212477785266032735702691496441204432674975971003136641713086733224843375396740581415036229628085557263946990930533543065702927684337433682838038695942138955131567865222336935901530063347594279619893222322404326114412549031376002265148490573354446110437507300922090869080193449791180861154076389800203732549045151324395853984879708707449797882944500547317932208133687745330639296070856525419966200017073393687176726580410694035963324592587526250376669604620530060172827792241989558593399785413190247066820472890559160414513527147385362786033666326854238938336459644654545310214091257758499520664698566064375274487853971451930263921499434553352522603279490125416012387403480912078977197423012876621960473924237471607698191918253233387485930573085898426684085571234193874121877214780330927104227576654887470499919042460353720501386916245902203258113996154708793243117944919957969912758741455467480753351886894062805826531029996399379639235829082058541712118435496199202213544300991659787342957892072319711208961361993650873176214508411130746659828372608049151149432683265812382827121668432214678096183867392562829846804752886233913981301414851252259084205673633565062280847500277789366183604202210821403450378265700717266745099284194720215837585398783391210672922623283321907568764763360406618833487009215457952490440281520502278387495837617778456764957214407732916373898646966539659553591793199731425274159708295146928320709682167539095395665769959664887814963443873193185083800753797704672734400507604173364060052264018201370852794301784836960888701009333656755537912167864208118562954548655649237643233454540868703449716231748768884551659769138936153550398205456108675983296600081339165818727065679531566012808742835562777032129034816085337579331694228962304297681774678407014221489425455583449251057861295566947415940433006282823482662454236536608772541878500638328752224060595978005024541341440551571639142348745344418300965015487028037750947762362848768665878668126444071953593090931423931950843293176102007293266381783775343474897021704894046271514882991288166921863224328807037095838591584738279184653010075979588751140329400415089889668156827645244285970000972620434754443071456137294256683807724501302528379270814822592763855942835231819582034122202604558997741742396563278326003624354328001253636298554457128837690753182724863730231065005564630903607082363474245416943103882545138367004485953848842288586495485350259422722335847757018244527937211649369100183976165656051645542170105305650626493951407548628853514317970724781851342107895320433408258243974718814637861363086744363878570420305970249443089926416214825868650146525508094880627222024680274202267570945932268951441769732199976725994317624672929642709309085350597591323754552266293232933230684374775724057000412237594524676811798192602304993558697134126167148076269548830479869319721867021153580034880648272780686412827752701648606189075845890098917639543227430836059416370762158975284437148246245145083394512566457404074643464245054983695568062683629265041371335055000118832795104002468414184202631437356333689172897056691858242922152179441574488351810130732404718042755531388518283917324915995631735034599973790437303553988858108698928378320592528060514925947288584630943971209884359758605326668830116210200499004777164098830978618449402710038590153107109141512661829826461005681568465716942393602862446900740201402659397097814084339185071272251674772992479181548061755215465751810901235431375439325139489805373919340177344079311891324884519348657530731426038836733105788498853025393525863311961886269508451567854800891952696970168607740822948076842550204377226429488789858697724655398015299037543328904680819650914997703211274512834750112422970107388231016076406260315481071162219113066438356267664333544099941226115436571038793240782943305851709284416608455421316763736529402087329984251740451044625426435653985026339941338783867791576118434252067751591939936804624141515397950098788620669524357841900522718021570274184721055961592893625896533704260272695637557439342281273765314028112081454902921218819726127161748555309091147323280526533039523718554481148129857665960066497759171175854700360520729995720525344951575169938916448838505600731331766922387873413985645801114505330283439524928942170366792053444028082804080762269538243030052984492187347844061732907130346214346871145899766155247946661147508946999857132216914204265024560108329398355180420865535149344771793328783284633717456358758753653516563907249959033869925656944517632713321909914371355210439997086612799661827051243090585881906467565770920703999796200268323433596269623497226887440033616742116045686190747387686619672634840589391449292103365728917085423073142065458544604143557727065645388567995049147346662064635319741462089941319693968336271341136443346356318824992608628494122295746161334620321067715905693249183626944675809459807089609329138469824598995372293457944223645656985226509416601676261671999679238834915389882722440376588461710957044211310772664204111681112750404617791787141191316197919657421277487761434438218829901844296033321051271373166422315890147414576772261573638096531963320690965299347643569622890036923572254504111092138831846002297694593918370312652324057419768605078128170077713186276703165536384305903705425718304503614450234104730016370024492789190711280089303670628717679601433590513800284376087854036719469611348717991016391098037629397740571215257012328951069047632772766591373877247120728841124843059217603026445371687485627307782346969080717039404173697615942049031021063890245732523334709437181157961816066299759730340890903833177331986561764703793738205910549036837124763273711593299865672684845868905873897776960600335274608210918333993207869009153943402866830855033504302980531009465503979990775730808006397371338300847260800581365474314452588391398351136999936096514398612955702834807238666674385463861348412988336253378360263933407351653793852993642513917427072081275323251471316855427350098525218593493850971536939415840146381467443827098083691016214140577878751181106521177129675367969238894663194848456499027789680244578697160809999594753953070149538972470697548471493842849459563337377808844054132372007091539894585418208370957403268282994893123837168688319667751830779336218709677568936466957441761659202801976645116381741579913830843525956880866235704663747661129555464793373871730785193767018032128544856570247691909192041761094494586469657134945921905930645374263946838058478487808483470132309191204690780191002821888359991244342220452565402173232564509984181712048031311766514681899466763586975648401115028081785920964595888823661584256897498389959440985394901583832008416217935289149778394181162973318488602026155762128173247792906789830182383542785105225916023176962209899746837176294059690930849441184139257251322793997920748657685445971409044688799929056986485183239941371637583887836235128629494272224428366380142734974570272558853736899692688763427546850614618574169589038820014612833230107433861126114243071946194282983495332691419649562628208092490243075848417663851037828079970811267686404927285227568317206821914544742616169843389245542196722049074720021606039842990893300877515708898635857162032268698006909418149530856760601256850972737217550212175198238158973216738849114775117489770080660954283046223525333671899408851396883339142807572920653783847978717247672051504588283230053520782448672085521444109096071076568316501818422391480453789600352867544515553638858318389289746452821871793002991397883955383359935749343089005341227404405459613595845454590458570588389119543280094171853402856945560839025980570223574218581813307832469451548483944803768963541360785144914862861067847569159759307808691108961549621898219345566172003314619304728113322893142984257842559866080032984236662721619432637615693066441804035866796555681035930173669808036337316450634443210172140437480232064742861272327195579966318303381788368331904408248011279115481075802481770536232440825080975194921494381737592956503522279466593506273855452594460262660975922237523620354108460303686188134935791618030485204773573197885197304652102547393341100203043592244114311267489763143927787662428240333974318890254174981313325290474774646549349549882433912566277463475958361739958068035155234503406007798217161588563632858130309005515085698199885288841245695045090326974318378882493638433406295093310378182767404812481743572841373475778590819891534927230846689223099052524033437167813932704863806757863957107578339731920817943230530470581407773488217035350075884628371982184449349255156858101366827355484940449143770804677967848463311252304399931641274296810044190253350777419858688875191811879516797272235925570759653468135610923256617198535844673401044131991033548545697319746936669977248643780336847189458067330587985363391350229715896600641112755514974692622374265115191487290847798374792396727888176980254931345218064276582995996750853422812366655311061981021791008651913433324392535320866805596164689566937957492726221367797653260451514947843188079013212629513779871659747079420761060054620287971165225440582573173605537908672692871709459843030454700778031052513443606590478634415205330956600046753830340783432569835054432257516668218264551642189391801947643971845541223291019958764002357516629343187849691203968483994193871603577475771553362032882587493074924574398454214504781004897715957032716265324090443455323173435666904863880126190976225829932326658251621242749658946315745224406567187021351863843318771875806846473071466973871351574754744131852200356838085724626372095892869972974691326682053109463396777031826860711413004551036578172219995499725177922406510340554409282917482611676862543598757595106090702915345974496478792098810835957546463227767895969258970196199052644279962474377277356077237769989451177043896392507713548514827726003845888157503394233400939791436118775853063697935320746333237318586321775221623781139518320328463606380909660722564501645815621866895946605087200199454224782594200478413774993974932108864065283813669954897626727475649990268789885164489739345157585114412212947969757412672453541357475983835398604412562752016724012238332641672723769106432877898496671824633710780519180920161712869078962384058974347734698482877560184755336743653035000521511842269757155131603494729607793249633122305928234893037836138696524958950167416431582799680562599819477045293351842092332606109763190175776776376492012809340044463765116313704333444166917797592655552365404845202072587928719700281306166830364240570756632383645925627483070338959207121518703335041093200779270522675724194534913856769760257221617845417084519252388292358616840668757569842344644055869361944328760064378578343239194506441181554429572114526598117237051524412671100982813608917388379801872024841381980082201427717315382634937718100814610621786066757373774829094165926315743068076021510571421427296238213611466627156530585186400411537405019690093914689528482276755733593516878483511761725625602693907599826688740305937549155517517320044216243528017279442922901257406211098410282112457011028043475602621653211622543464209938892983745039091250636542184047091665293366358913825146992104300443032773334760448782054992709408142667550978988619266695594408881685003667861827613280618337921279825454566335043439100838355129200302361280365398048985502334598404374091775028832474934897520193798587492446092468701559627038826910887979810447994848023511342129071985005393205236505173355115028933750294913291928314230484213356526686682758863207532177785810328648553313859372702639424900690269582098203485824051688329410385675498797743794678377244495728768042951708163461169761602554525912082048033849579362509194104877004483818258388707209639502285244838318260959563460155920547813247749385994919760578890866214639083617744092403550449858820628325742900198931323710162710581615809788000658946224269013673019961358069596525617275043499668410645725814782551926180951951941009281738379095603186336672154202264522138104648512749689047808347371291566812841349035541679491653410995147094775957652242907590302460726404076505849082231308767365315163340766067085648582430295302285883846619294396820975856680995520039292006161917111000577459617803205580675469580579756761533610236909781657981156359381289289239940727003928751450138640350179325432255416019165650697959795316551259648913348151304361298374351334973286509535622737800630898291708274828832004329356018671213550251980245592261627167029599862599009949755615615426370632452401939499886863753206503267155294765181340764417180996126780193418477148086622697703169812866846537146308545018557068227129948726994362738361402280660271293107492073898838923632100195886225713920497360666448239980998296079907650753654421861488392647361503478604786118572979244021040182006770852268901126706748571063186112596860645080399762692540020355006495930824267441004191788604880311661014392701488928587463649780075871631530212967659538898115987853982093790934923538723976341072576457344920745838982843959511058063869743934667037708719681474964523869086993606479418283391209057063522427012862401588901774846682032924411238073679655794911974515802643031782640349391701763469775436946041424070890288598824557028572763322669275026606389865075693677056508044377418743148934391111014231044152235633552323573657424414987328168845986439024961563456968062002432508746631326211328252564915095957963340135653854268176328090996341016770607678610130774393109978726717469008555572757573772620065410327356064186974145205434880037817208925850120009561275234172013090754812839056625049725663388409555043822639567893532980937756181840035705752029970382102828924789663646057333446736840606334615187415735471656245782668345636605046024381487290355062684563709460837775210875869969654448735530090522751319856248226642976544881962709679598867663072104352925789992815334790495062509231448150357785099934138157502662069390417844578718860763302894009687259174712971094871393405945446534573308354219590750333100010063234323236746924598407790898523034701011677714847464394714833285365467191362368733754799083591938177501058218532764004404600276507549251066582102125638377077014623776341135261647214461080546825925522533894960052379427938235097753329317012133589628578369620913636050925537947542296870219174430769690236910467165158634250047088103342789282798270991308189119160964172333271257693933595599246780398713553834602440411981769717287482583625815239779901099052890687463730281214703903811766465625187977094859823566017749140387337689804475963731911135250634509310625309521950982679025433882546578389551592829068383242263887598769579047907304817239257818693227391302827683850274068230123778154673366501466784599452274055453334076842595727719713271116766879394765903390967241967263859473651770073055086982227438420044080394115461155125935479687370142572839174183390108881719757456084578190727907179927345084663475996082586985500645812163677709899419316319655088819008634186384532224824234386445311182909487964749015215106367020284789140825538283353305613606940120031436340417748423687685211658948259494549765231706912782679871034376085724464343561978943385618813319938047471334178728457768249899762347771493817384010090041430473489881107583870159438795930373189414696868128036407387869506862453045556600634839446382230599465081761310297103603562218348671229879293939999176128497076405887049020704229975751442434158416707373804675287305354756147185968818725043732760759182951143549445861974924892990320538175613720692129277323998679813206180269011982258899398101707677317717067355089198403573800413283821229967013898549246310024601355625643541410086093483291879985679816879201424158677653870479789149055627004559552223501618130866235681355810472983023449966017455804645823960175439041540751888339245893787494908565485816303764040506094559886851869231604657057352625598395576267703630007872677818910313626539595929743332536598825792873917502374921509642395213425917531550574772550171012922881943485129399937791545485525515508557628929395190439185857198230542249968493079453190620006094975428357159276117227687570260267770290193409292016823330470952822329594077650142122879847807811305452050942332481660631743986656104413017528674686544847538508669429539029776820248236604378704745104876312597022603624708372690169105633341690201103828020030239250676189377733451654441110520862382210221118247375770778109771068467323361625240899158165487228149306761833485771790294217343757029922317122333600594307022295927236403226770580918114292895722651102854739105218714650907421494388933105641884101539257753129309725170645065398313667277930557236202769571167193434197406511048947472098582449677479426727635444541215043223969048129593940626667261320873178985936199795482374046655243128581034102201113370932125340805569757643120327915129202497928506596262368515163243570723101966359923725411447482852911749245016795116644512611585939411999097201607606964755762124398357314176163721732484216011898384566127227955365017020381673223674035514595412137165350439666656444841268903065347654061393336281504054006931787629213495943473520668849260258039611750589969203251191558502334593912889197158546333985449693045393408302523993789862275548280139208938829750203240929471361743997569000378836741445644786397665514883471153586707575246570841331673298360129598882308806405651451238957876282052041668291804896122965361929922183354429103765005856837253652216782896983098947944551024086084483839157240392458295798924628687822129668554102332649941017486139265524433610011320187774362430072216264557985063426750275010547625576891371089357243116409899889481729182471150141345742383301458661530087612796902460295959847916517220224870387566297433992818054775654679026253455343947988731098259382030748962968879917864498298795121135434205991521232483728196876887483550645980776808105242753404652153890428384651891620087343725275438644454208596263744373483551291058578603145840024333689939818944570482392089656229282075339338643622110015682870741919967122719279355730783175143969930802042622602178570131993315811347824435453798365518605802887105893890041270828477508449148912818779554838360827942828028089553452915634997918316063196501940518252194567061124274196278183270171732261937943004489308052084700992176271798624799937692120778731983862457321898362159295684420509437927853384958270863996067972844789150578077619754794366484463969168171139202186172593891602476610419832050907895984996627499049110257099491358076246879969167581432482225848816387853861741450698309576621137877065800200104212779110433028033741196988094750943752949311224511663646138814670395922754167470232629815967948402633405347626584388252341005711054303774345090415939049378751955649140476118950773698209073632855459275913235600592803758816576493462121624942259927742738703553518006835615676948015934565023843591463791840699715361759395842856150182237011062495789292997902935869997180708084639559299695528959289618368237456437387962389976949075644180961019577727200205963080392040505753940994758069087063639963718866006268319013628677992312905127055265989740280466962129892328029635126159457464389911162458798236062054942565245845323551221868142006108158850758011095848077893739881373668847794344781422637352130992297098017785962109243030838026000472784142351193989527651067032459012075121510047585836611835557526034894400492060975406573589329676036327577009550826662793314148585290381232730237543436006918925381931078774906522079791186330274774296579116585578937754150135248675367182797382806262754793384244982241547001133057164581504544813310301645703878924061723535204481072060960943700494744651557708687151211761792762484261247363929625439011078330745586337982313858756537292303467242677428496149194402430038574900946735753204244200430740126981649868439195834696715865273710848935986072179832142604380228446172349344539438843151524027933744666787273196848184061606167855905381243747396977793179844829434187993631339765169333108317888424836647100976740329995013640955548943442588641132959747610414499407244805215315088764895157866028991661782071640352720870285792943284399585352771271460259522785049067109535659972552696114842506089111035166488239829925268888632709589020543619757022685800116832042961829034681022980791417222932524904219239995999669156727106583439337005511811552514264014485388022028416772534644877771960106980532645107776211138495106290834619517908170503062351337335147046013519016698485757301939649084873716876745657409040605360149787779324347441687179633511050140273982100874467893926259433423524279166916028667860311007499070611071535628381957445666238607066123684655306463997770655106094472202158132106409195066761212777546571015140262734323737827556088200629471219413006320551708432382588857307510776520598956620018524857494221870445004110849137371309843230954684268598894007867056879732833916944094794649151809578723982981396414035009819276801164216245957078829411367040638289942984728998043170022727013392009406678653642244587058835414286155167698996970958229101962557256171996293109456311229401083751687350341549133396579392141599655687817850964967031229558816390834689750019647689521939251477820983058110303598320747372577202447297833804119506525059209990872192460778718255929208411468353361666921639339949872618186161430877155222201174143650504298034980055102478737541213946103766165560223008775721746020415857204822752971751343119294146116275709283827560046258814324167130597652470624124707475674539338822115420046997239867231557312914691713427411627935490719638197226453643705256672332140657908861004330024474640979355525392143563392661558265382698892690448999264883397694183921363092997739461666374876597244779755335107851678871213318325786628177384312633679605016158047986543439982508275839312858442394453331193566416265234549525188949478216619241266836827772728771476353918460297550246508315542928264140482856572918369606508193768604064617524467710963930727522261171148705315798546171689757973120255898232170798831030841133776511221665193629631396291978402741841175370866722954830490894556673005977549297347473876907593414929265082972322464191575877156051699859001382585781956662221632328726376682099196204738727615495384655844986929781056304197493666218499067521201542820981091444159987617488868118225225306768882092072786433129734371684752932156638109197224845288265401950077507843277620919260408086668847189378191038429903501376773429724563515036052201434994670037612127121234927807138223965325146705118409039689805937000574476619221099806181948601116164586379552164049643753732058395581608941104860461654869944376042778085189329757186010288851324495316398278485640885658176090798112607328458768599922230536047868775284527716015921987372335888646220490631421942000393166927997692291245412931429903118032024371187412821093689248373835624307351638386232088925663198800324831457656428915722607293714219679360845990494329331103481131288926920433533689764174677284434423005997932340352510295948880453269637648272974103073501623747201496054677114035799943810278856366263464010791712841977960777032353461814612170996123980639177055929678102452019756547009276327804338285512489016838170191734462095758981192760116372385982868192739629705243174439608204875152866010786345125352119550713827877481330332917273973439254884710286333752602880427933927071968366567617570110205201551960694794847877560305114929468412228832770944047718493583354726541185603083783509565651854920880091579631221014467527040138949917743437196184329477087523959678620803741853075431158928021580808701380461074911270288929188009027668344247975447484402261053369487469991406021482722694521207102423012211216857911745289060952686901639462568550275968124953921520167616902288918013156844655432792816410606502700277977723607995111362291905130473769738753464115312176515543492880468683801489240399328437512765487806434473377054616951583215116704837879485082480112258701282471828321258529018415666949429816285434400002306806316823038902707971685760104256442209809586838097541963026627337963770324807067594493206972121348293715622413466109404598956966725857807871448702565345780041484715177431594601577953917965595326393430779347210798297960662777374700487998920315703745104208279916264560854407735283231774230818293987916707388297928722046491525856372623781044455350334843050582732243092290127435222219006000590206470198102407479983651726623419281770879054164073856265626049741980774363875008892495546013234963166607754826603107075114746194465744227484725129824170865072724549830854092876453471721914448693900904673062562618759871299842180593796592526060408088664374025173925309921183575697601151508820805214109993530062241915800926734522880935679324686053861145251167696705833966930997756208050472428122549180534460841320008227356000961679911683465524606709770446402891650520473402345955194785398194468591099185458656930611130911894335371987559433765723147718166324339556066387493564000560509786546018255663891910451482127456182764152187804685048865678233844544893498334169919926074462071010309859888681505649774082551043799292166252601937155138037772522233289511020332775355200610708648309355111146098883998394357704872580869661569468539266703048118767044271214034018754347111067318214029750667660894985899551399476868468961945277245391250745503906296367077595023019925112992477587105054014840395336831158110073035189472201499087191038263630430926704013409494237098184632716882736735892712376202632467669513452900699662484092509639986710321432301994226351096389429455810132166102622571772242686402332980663007730360194190775342630464199950372053599931475016840830740169882861323163698954415398078085634396369337295490636678120145851151927630493817169997266995539173147300490329621565384950460124787932579855137828067209336590887307951920992580928457832956342665005051768535096022603893374859013679574661293114594078624442449597325887938149320056619638368629364805343480180139742328377228418586516595270550140116282803268823116917837677669419618185386368590316492352337430519862647506441172415453144099911504855025078794381405687435217943355325900388882238641370136875162409250402716070264251413002942676342142341226560353190737894635886534719466140868685621052899833102706072600802324060282399342828834930230020817538574143818143249068658670287359310375126492773781709838726605931711320252688286876040973115354794682189696559351133692842647675121319325057827711728353505971272188728938200937382062686686019765935745320646074966448355201074947697661393260667444456416101225379082905117579382850302339765961851609585180837046229332746535782257026061098116808822029932380276567314754327011301725010048262923729853538743026578844482169722743064667117214724732023100965100803193819939900429088090919900364830438788418838861920669554138701311875645093834141607253673975811397582113654450575815407789870343605215630682956288534091233968989473089200518926702639944034909031308573280953619366814547428593333292240024399902309298060608460465708256717294985809877693835667405204040552655756354644425998854944914605692247038553061420850293932553893075490786781951516732444876679877490394849352485787414229508277951708403913213860007904262614544089815290532594749562306642232151645459875071255766672858157860206681401360625199724243718644613441416481632748507137033388214044634071828279303912664713669835026098216372888910509738050950486409850681748544103031494561085961569158681014145976714736019581791233138862264948032458252729929141476553242137535060683653861095644874566954427576346729589171803733887257709672995687212959329070828447883859417569748620964693029740694986211231301685102500554020036904488341373828396296142935638446534850158960707783812437942983958107066951655302007427540579270365743985639717360909470349045145248804479311191977008025170777357812458450890792826440493670043418903083242576600691674351850217080978090957843378924662160563523483051749747882121543325923590839232773067656841996023017561543787503098077902767659488126918622818229534325829268770723533974726507018276659274939979154529916783089859660431671121803962542720263190193549206176787558256762620706634552004058493373673867043568361399268674064292108896939437469545050392298045925752165262873891315607192922436876016159019013410372125268913544577642067265102729233839956947942695446789022100329536947260054636993791505429030722684671350674302419105856596497598873360703414940889270497831761623376170042452690267071829743359387820260679510124460559431121804185667316638379877402870127396562413760271878062798672032779377771221623721665480509843357844939390449348323709662416439076834344523414173477501010497492001868986526100213436576710870675869684739009665043973118661400556776217271704451286593203587401018073329372919133734410581258497265849842027295881640971929946400553161500660577186997455106498531879345689070272572025748074998240407770025583791583868619271717294985956769520220020017756982067731988386366721650489662972121155424168923118037451719082957583378436193614141781925873274239029300317196130605453592136053439295523207625903115623401803486176302441904834189513399560138068250345046665754002786254292530517545990434552083261585765318090589950916781861296494149282566536281714237680564944098702579575483867537738905128703072970486696614580383063641577973226150098538114956250407106850813602584045671978872697507800499930260870004536409549056020281228125854500219228950516157494051985313415299292490691513089433201661740682084249683550122587644065048801774435594025977983282096285965414020981405302968465885715112121468897065813992981687817155003023200119802404559802900204749784780889639560658897641143958525159920035368838226858365511929948915431708432151813194026065809319890449460561898865962988406236557892269572449842173425966100309211674863526888421080214231265211801963694348995227042814580005509209432798101260340027463188270665742828736586808204820803459296239129404582090884213698510599455463922696311754998232565063645403942166195645127340702764568378617757963610398202891732465627897948810201451117154064102696534644148507286572566615183841932513139862889614303579282487702120869971397647253106359799603563698402372589691833384067508453282225127315936183790590741221025463390905852564734950339388147884337025845831241048997546355599140627293372069451582948241706646613574641572784228115366285687814340713040752294987379783130754433431314179112628126008796353328151033529143825362958067076417204709923226242620035802044353214191855092461735959998808843102644405317220547162136135344861169818016981647931644274062005586199713167980347344802205653879956580157203974579310274629659833762630317365402190244203027374434397976850901143713918367667809340325641922810785855689245273837916130792816140316631962540861158369441589258757956127029526916699824289556052277223448981438192274827203159414417713984356674842620177933821039314814819114660393524320569541555167229520959849196750384552287576985512282032604866768727656668250313751989202190822730508292486970600481379534501721056601406942296633010296725535035480514162538000632952839539716257075813600638504440161742663253923999753572726131097231399191833145289884281996627828798918115455673903940106406853254561965815448350272772416160198201972180858584265126614564636886382438379957584344772656855984844279640049310584701524654160491928092397857313257206594882393220636236234877224385357480106319182767058560378267782035748134979615612992015175006491075180085115923957509617970751949034054675508439729440073177282229577063659257842570600131051653146586000804928506263699738277212680353283947642334579793794744374824912752638465826186873379593054583961750497269288065794801459321175603351537477966678456951894364061686246783918283950755145585033446141850411370547558684658166860383298828565042052318989820892470795135375971098175641546516716135122310790937815206028411697675023821377645995984772026861246362056859446179422417428790932312800199138865826003419576097923454070507720317102748344622756699968774682430033656119659921647969903380096564148215446304964236520701681601756570155061451953968340117506831974536369164869691066643711502403719463336620352059424446696032546542099179403833191671971621335026808391943616055924936490185945905650642189806037157123594620161350045300736362278340678325972816194458428913224765957095605564084859845505763815094604082261239716492810148288531080759056167100408506480118530889978518765635759874464567707945265372818739426368126837809201404077922001146744919133165597163569473384226426285242182768221788680154432936705196033596547172735887953834185393378097906561499628264622868894871532555570350452045592910628607799780087095262036128252095037297780313897731961522822302086603863970739070904331570563731503194552146674453768324700446389029087760820314193388087341082644725223199913339920843839562365673301865971456935926335930964058011443649061406905137734739547387872840815981569490863612391679758991542672230877207711206176487175880624600728402796246010415376725380908252529564949347413737395167011912180404508457231478896197348426701891066167362243396244087535665262633743450419117581017623311516088681696798124287521420097083386932818186738746209511144511447106870884757385363186529618305487987359632294360561220007877241386884429513592739213156030037899753476952009304929719086053652139753498165956796890478247703830254757192955837533955185333730201386598830087359965694344421872835666184488361797970159561748378870853961902481812457343514394763173326625880111878608729611458137082029699949830228346525585322171739262355274154193923512041224714888856405860717000345578804192971987828355606893943356865986957337544238320132564361396026410167363086131824996129261890912906636949374424513885632576110344271311534186635821173497241652042575833400408124553912115044228994768328130241809267267840337117870324789484734518976194572739091178695503173547293310485125925170137566997865602258958854221948940125126213871251121700224827058010380721950256166674457577485341235076339057875505571429888828126031515669121853524052552595918628067735726998359486469646466552772964154124410925540826621879437648355258509425401477014447554645374221591490287624179339714702721575728799898566154077524133021813672928436455812190627033589392224919349067531456421267033203343136103640359556023324481974913068354374140234901954633157847910338642794708710828981716433654026378454456844257438813814791395753210817441763961992681687183149895340755509601856862473222740550541801764944649113440820340043565686236191303884625151377928456315743181636323780000663161149853290876217536227087425821511417224039710920193033370278537151906027475450606665614100023452654373204240019418254135006540296157036424300881715326378266303607996942352412211634308704548434171918506512307300168655964812635474875054127103547357561068651650629741805077605834236392762722606741751959241989487790419681176568357210716146058402320938031201744844673908833856160583583201073707918225668484651569291031196170983949085139043205478109412148475079313177949832676135710183456389450680558122305080771241179956263822424842155550521207623116256656600132827590258496469712406882951570309658625906005883066051605801058902850647693885660581512656464956341347013572112835570211779095963820696221136020910845559361567288520712204419752607704034073572450552172150509388597114501190557784984063834959673339944775399396186962647091354296026565552434703422434988654387437041093392033630216612638124738024550317371964244213639051972532899796848821054850999315714661729008695628932256088274668092432208307395551381267807139364641063111769234148670866154185556374560000426446144173283024383764848487828613761270661439499778482030534696779293195712987516542571945970735500451638766854928373596990245373271158576619437552718830066753708819801459040626291398066558642758145118477333403449936977893931988918568743452905724208306777120076499675270760492125881571456324108411721894415414576415067240768726519739899464859049725146784418672318764602922648096608261455981842459522963372816368960542709984147636965764131851329851815078525928324041815677380478902052064852129498453279937277807914644266925999916288704596722857603720437352842249866499520019167492556632444202601291663011333709166586911370561256370119684656275543344822671334683927380027215416828645744194652818466460643145207882284414494868601200101151728336877840996188590464714675394522654195473636781963886842275571548287793242658112788805418332043844543784183303643090060869949940955043148023748893668519571147431820400189356783126926578215143836809246864238620111064834711699747564151451645671319887162393951251390852101675034701732913310519181167114648110192176460680642789398441464247879773958152591121505080868479536196876548475289594700262717908422457032774711400851589867850564884631665872386944254165297734820806216882309904007672948685040561519909692170739111582128715121106877352068595858702130982003903406634697287262770882503799301068229511718892942665921230175317421418873669350796328679998339800404008295033307119897898021711501250368664733541116644709617418603230996542399766958946392741933736731233759755158418972805700946933361308181545599850756360414164278122847219397751026395149621281209309098389550205958401407159784331264443588007210486340977477674601514152894005532045827500022007766117990058934357965709955311447936841285831134890507193275162270883786252589763355644663640556674088159883273892960433661123886712404465609523188190461000800230590895758963338880903327356530065693770833742228584463515864029484472062925714337347031515759002114675484448698569556741663756829534264634491146864766189093010708358787245776302318946148381137759228612566915920832632038255274377319953617086817612648461677582901051204747390893828049454572407601304743656576517459299864437934356400005070799009405381482630921115601839775169382571939914586394124838790586450233592582687086498126622113056479025730443664758828602648770400217516051836714818237286541653245632187206825568579726118248120597392818771169907927134400679882663571866691205903764054511908601190066500052675968528304507401103947916871884109571353993846321756257472800396077326074284710841986177296990726872570958070341399330921961596074355077284717049268734375157824423921111916349718389021003548258090916211272706834891254666755328498991247399874823696996490619273373543870346390053567830634549240447553758083909850358132327579419307505757558921810923997743081478691806797260189310408237927478436550569022546727065493670975185352230714091821927601000954071483283633464735092374348945770020660122938379675219545818576446746260167198031241408668950646767566884439645232257916972627747997455110375306275487482208911851379411730780601936144202887986570385626798660698851734471329045134019485024264005382708844630139064291446911401580341783121716827458069239050946653511841381139176358534820169810682200579614304690751606890975384173868890768861826882283069771094099672856916534658801404440632663154785378494880259100024194435641465982807174489744829282414240483125662879275422325997934929819580765665249753943707003152501508808394486990635072197782181473690782898823192986663860791483812081658882858153640835579866470681207741614299614136369093173400553223234525825387357035508820533468183571051683969501740928540396739552540594458131080750542756132706068181900966429506088990147622673004157499381403553325973164987748344767670765700459473780344283951616297846936184655762679663429581971279511934939194255351039757213204131168947175628166672712943364703474892603155299273613729338659147239979228873566082237633325568153581581575439253487212108762836203744508586369207150002999333962756878623557011582198982054708640566343351590828395393563360062751854177949942482723778416886076855964068354731782216823384935956152615361511015115022210767442070176699922831138625289180278439838984196456676994710811061907989515268429121263990102780024774548127342674727774355031322704521002012285941220585571603166216101176666135112351324773790401086580655222131971342731486858174622837061245942555506624594734557539192979892691794889590355910604125778265132660240104499006055865286231682539211887824112485011085475907848575079991222341252419320154234309879024398426368597709933515135691022820662719119521720968168948553364825965743833828741599877821063223381325251155472550346315168086714630769488936161492431558824659705825311483049327805253222399233211618558119578486761386598979604336299438891389115678723701397903249857930169296551792843677658860336466300396556289324149810036555493549933915643930261634734673324632168714979849434460439271076608631608014869725064540772829225912066062849361956397982614795833106382680268912425845373174720585364070711376569313863349845040260750601615517200074238592655909489169436112067089993774714374576715324654751075575849555191719353533781567963943244295797443417374348797087111085665928362054460731331706624143400068790525186015725638448693936264232813222141916375586527337345848072813277354005720889660448382755744938122879070885493140009821246999323160931024777437825571521496127153323579147120666317559437716976675872216570907386961493278447922226135355394761796924363136853158561702479923238049902146697705729022405655111255374514788729266083472092577922802643295012258560393360882346463310717234830265013855444784455441725051523323022544404014775867391381223605292040502802862345145972549737957468804515011414858341321915003833308406624124932518244207031175574000810245705464742422789200870775412921441799161180312604246763698435766772903134903061836249221270217068177446075396439139237762707941462148445751437670706277988001291706531258359000606096615661584629550070481930880626323092402025177927344153733675938814540352861818308517354799978742381362052930847798504311233115161353206194820069514824490383003168118884703151929893270777673180152568292110615689272269142836719163986758880896636171222976909666389832097469873404506677256598700917671394610890857279236034741068704827905776713930814263344053261042145119964895913802253336181942934747133614399412248204388480611162556365661778816719741245812419458373161056443087305051959297083336981743085329668793075188518711084009829057860898136493850128727337436104913726336037466145540819645492528931339052050972609583975435971405804647580694899239563619945876919563225292931950080709050340857221167700545940046003650715834127134860759055919353419335227314282186808065181220810706464748956239763734924416033086204180814517443222587813448494192708755724593557178475254410156528604636821835804505357578088178823131168074784994395348194538082114347628516165032350359100786030406548251730694495372418488649158662819331825237044883183537979798602089189687450566753042340846712918674063286929995606372780097603619449661382220990649553404387447082771923560214245331505681687336150120019237312028839141140112794198446214439373790770227414018758095972131112627259438468000627191693909833431469148300506632226148952842428146948029086952396471480149382424096149519164306033508760415099826347105225644508552537939388391340845287821830120144880623105057045535497585015066961412853159113161949819090301286984028320594976546882933745139969848171451272325749566899523240623191763819183468602765117444640114755858134689460672809887475932899391145637927288465736725096993476385031492985534178340362401672112958391735176212226950623612319906436334808446185314069955764592891215603731871736703741664984502092183714315369862684845336970979838576977507151273121364683049087399626697347427382845032125222429378130530662368187703547650521879106310886008407795556646910451999676000561931429962237844768618014372310788256529292929055148675900292857700019780487733796901036550367710656345040160968447932680954842571296054556344935113378212528375614043616896431053254861997256727963649838708339717116156079435718181940338210396670805609884386707708131942290349848469464045034099273658211000766362123259078750160590962879535256848828992516100534403976928592396642619787158234348734265816964124163736436228153066436287679658173811962770371671329658263637247318629158171035018336863589235978690864041740755183655129174252813433452145862350033567788940066173013732408345784321876554782619354167610521337243601108730995874861951416732679656521759175587960555693792838833945075301709114424160826206640511623191015799567187539895609332690794322258424989421083446356637362435863736252200021707088105340481558768347281464423855788929059397887923411465644550518477905800231528444556060655321107877276526776024015760875417355725931442915020843326446550002825968216060824810533625387474128181999446874286306253723074586697425895714556417088231069310328984814982725490033450454678436370458095061516901027521126863161435559598728274970022207320085558222633366065971627259982724008930421444193709452701588510983726230268647845219094010776710146864570261028555191406139538472421369493066353400547919541548860452232060167809096582504062755893545074635786779176106683971556410135492149898642325840722097978621306311332800324525448043396311305858897463616002656321797894932673399682916347722067870678308911016691156666577391339010437129522972296141548715387775245544207001735761574527580178974390100806973041493029833745716349335727157609195972103239540997992887998213352838414260211475038788616754569647381683532397590444582879171833318963071002066767207360636421596644764208409218118230929807488434838047967570323228593619487691242676645760659666771718797913703278529184513136198680171499582569283189313177075365144223222847323202036209849036665434812467901898263811619919413758653380721125276437291895308588811408638995320193715483923199646521908536938154011602120325179272163555722527607874794081741144809462534217821147261018836101012907516223130058025650822591135359139146117096804954738194356178911178574549651491799553386813440610953093072976433701228831743274895161032192473780739685169215239663269183019457680436284392650101402070951179036743328008900873950777696540162455692847889014929435691535450022474878703281928003525679659721500593775448437763379441902825963986047155131771109321265310337059028659777270725557378727063854233144970765865464137267958140232658843495779261543787202197158927586635037672962097758910716586854507410852250429188506514956855725923211187855214345876928172660851343314105704343034495634655549652266009468562315442314733430872095284861543790475967433012753057076918095992964392996604700070720525513036354323625102026261579667719514834573343890938850911106533481751910561762096044834392148132387896621188963673650296339818778997463807073060525424088403930523948737809431361061548873608735783167483685299469117029141113495843774877816075204598687668914100752688892110559553644090470044441855599746615124752395572153684954436061474321545417628327116612363261907919928965023241424150614520204369764672049172102483793772183759812077210970014817341324691734619896568189930836914513502336156812401069262329897692456258398116632707785191167785445565067792750206187829614934771503293847376364532932141815796325102248221153107366470889803825303381322276670500074419481408332840822672401409959967811613754965945122519081900523545997039257879060257801882162378485743815644643986023182733258740795912853051251960564327768553850047004039382224545763976268070135638878899143307529023692762920813543417397911197689097687567549773652221323839341298438665317147240692159608858878106436345944800318273703334574925319411244211867404763530688620075386519484806625214000773300725126114799836206674671726058086271907773890093897978860042302281098540223705678626787062372609206921316592381567873157157841260773289004230072759971551294482483167916014905814184862337423232277564968941444372378979018421938747687417240114380332925834816959498871752741383055677944749240297296866310350857224268803171097377332325609089246159618582863991444860758229145117750735012055243539885436353797427351759477819933017654080310588191520587691308010084163366323327805528267702120782258100765656603864479963983734733568655691915174656647686647497585362625296098405706043395292953200534273130769309207333382244169043719546458759195010871449316165602713832091460340300247025219722067465342424231555841621627182011778019374327726014351013952028579941979152640292345389030745411450340920444058458223179553219973628149016791620236998427952983024966917004825207762121669009564720905130020096300199600371051644085724694373904952494969554967425350678809151629368560897649542827786492382314580733030580323455814849253782093712416213181596166439566254437995637217384106100512021184883137278850536874606394395637771115580005350206222608611716555796973733320485897628750205632328053715566743280627142318942870738348852787579349571075311407549413736505281915873268514963940462772646883994624353104581614049284660742191236063914356221823920130523632290992852705148009713097386583942382475768880004254112223073832765150015469094491535412318987412304693505556743518107221218391723511836887359110240884303374149281401758546629459604520937857879280205494159621560277794023532999977536244770009850101647149687806790046996740043151387453393496496370827204913809691669837642640819120037514179986006969275105561934265786965533407411108702164883387394053917260562639107584124926456101114438436411940458870410825341137649774746126322006411077503399842531601561507244686926985754145526244440212583590426784902302546180991682920260682939819511730912378652708425711041767294688809992719811161147430619162310395210752804204568241304442518948468921065941916664932901231349881376433417531847420281994801517236041754152782941145990342244460826604335857993209058102017425827382921550284684238868920656403304757564309652851664001043014152444871327094109194215184783903136060211851646783021646123067119229516533449716131661638858157793942002383156225822063525330836247647026646084625267679239458327764238399809176966569965270002388307034520828634583016775535838647189773192894372286910736178960614183384895927863553886608446599010089816343961429311711090992918394835515738260682418772593175784404207724283143318867179048304306156923514004173633900373262818147069066715234541416601324188382073201252820087821077795052681393675751469736106362141619156944907852401485576600890185499029469089248919949037660363318929005480016300323959053313919591732002813565527796688818974627711496856695866644083531960930811910319359645013718061007964686138818221296668273718280382931361288960493865861462784716493258865193811173652516948487736786017704233799319961280434583126252813818341407105802572094316731485754374135453099998476370943894296336104349554562402653938792055669333046801804861612026561538762648585618362909077742291165358638282383678790642311112669304573004016011137555033803275839618415266928512912443506720353941628705982280128740076756548904835466848428462559592578888942263019138337482911943532914661421116758246052164855007288775572931656270078734701922404780097068249047640656397428403042771914569791852754863982718170018500520655165362689304684017839174372175315526342410830856706182517067404466510460100212520908513296855162806161966574695017288619215121597461599004897667307690131933232469061054211072286667621508670380664055257888043793055725461762464802007856270488805265601734400070776236097258205295613334637549210187893876910372943597773564991809568707732855851396909149929634619864434280613878442235387446615270948973544362464898778828651312551373551144594558135418677664487731893291608007285207121992890677016243763191628166016233995884604028868431598866030454979575956325492275413825500353369629421881730451283254659225716834299868032411110848835546387403783283682536755964855094990642067558547586747412786571956156793737784490882090103481754642352991182679747098644237837273443678198701701119772018120095157225659341419797021661303626760101185124640000174853664247896629805035984028530288746749599806545099196525916639665505928668544810291699551085863367257596350961092898402896378718034972386456584456522238862279810452789518743128189816508365306384027553249274887987283405465825195923277249738644389119452862953301369213609619738309990170236847084726164550235552402036485742556750287524317064088561961742045130435799731168170597777286249098972336316817375924049071539674069264236502665388416683895053908069265497417195766790015069537327288471702650600899715377590816339224348212807313124826001774092996648075949394705253569216945471599451632381854604688074895402100466247275783493902757037744955839201806491025216467580824547463984244771638600877737056995790484389211718281415162152832835984617752692635108787298693976320965630349994942014473288578843692496968588742177729487891270189525822852464776585735308463896190412594407543704276449730582388347928332110293692473912548433747432445294982372457690196441311926234638402693609242381593775232366238935554384786061158104466656333219658694513855095963299989288600751049547494298573503576423626191271533842844482002773362542820455847236606317953614032961638466121471925045043979982719547197804109542801578724498227394590227286594688798027786754131096698373377816788816527646024060248007987206755228035232014642493126301589214558197488490829660408543143230036570517404282796105943895653425563946182749951318638333760508183946377007189016399489165465325811355928205396658778579598042196585824767186709583612592129412917603217204857866421231908131926210617491998568897982227145831452825820086968420468817916644620854951728691403464363287435821067385355577719281137786645148361626314047852721541037050307673755625599380128644408107044445753101737937282811413971135207299691896748815739068639832642522158714231987449100253298817870942280075127601660508122314633459537716842189385247863834773667606296566631221938732680091816888614546744477745666666240938906376374538264575024119191493607800295207659103240113663196959787294134063958693390718521228062998043682891474932436442320803875608087026855631475639071882634327875960194471151808173344607556028938956974682390876398986648569252138411075060492557336117815325711502694604513058908560009021368468212563628572165433629429853842880093216166767452742139847100819318205171299847576862624526269012720511087412257485406229449752145190090340028746749172610322440326966877124113175036473251857987719166714926932737793979474963359782350566215699222412510870512428233052188654198590122844108609544477886022379831149168033567698155144629710986659590934531552898950370751820200286740856247759560526027218977449481075788095725137173407231897884818169842404943894442524502292180540131984398750455494300802491182441663782444498720496028102035794193060339863056704438959802571770421498547673721983510340414507029888749700041509794813150569204644868363844776891012121141984149754010243347817717828194253804980915395369199131016332175361384285835671024975406842072884262722340794842466005613552519372817721667336234458232893113009507238051948159130244401734100097539355675694896355794055185316090792925593741934062656742685610911576539489870243155474045268611592321333504798501361375548408995816606990942035827440234791398525941398894588690464834535686817262435513568495522479848928571439387997733729147214526000336130132202170059958864252823013203864685468998794278475681152920030011726557951286048931131834888278276196831944544489181317797705271428940365655448123965978516442770927079373798142769735756571225434621123571070820708556312366715101314140878378135771711651071987596687892728968874898424297921839461059631537764500605851140249012371559978853019166847105802650548072490665889783367186554604223394268529538169237235139967452354960358839571340680254979326041170226560382166703243496127966483097028305870706140050634705329172461551832497829986834523300207089506730592586188137270961687167148422910501567426441716672968268646836656787643281064253501708903700746955824026929058523814867530946858810077541543290774551579815904553654788733392132524674579727693601980952039317870094392933159369777229015943649709772951684130800946035287205306100813233379989041124821474207617446024361210597730952128548885661480589844104933637276189801421466485313607725518382720567294776493734786304991338551193466198441107848038126833482497592814857288552920813868783183937247145773246784750580844178411328497139181698127278459331537585431708323158706733337517041511744303222706769199424384750528353930478133901670160659087218206206647902323174266203306437191127421329667033257077682652427558017031874116035459796815655258934425168211217034486616826665287228864032172938678589909829978943723956667891201816657947953747093518214080121209666481318799459194315382490299197164754710617464105482252945665969927177649459068793377127711233609747287632412552170576105274331654042156465480488500916271715189238836876227438627411056184493924588126981698914201712654612706040607995547745912214657664433865912495518403730947544856252357540857882042093414476054658010296008343745361426786057173913773942591210658532439438880288109990525951870342953311077583200290811627658939598890894819687322633739952283942297051023037214366172811229230441387007505576547118216242924336745658610456462520179366353580387891012527293002634156410279938806736858470724485569883047787493312498576790199716719515843889750135884175942789572985589167196970298581941186185539127711259437629939161720974892271687165009819973943491393360382202539818816831432540571021970037019519020243239199211905070366936736315711029415845098567047498234316880663068301148058024873907590468913565173048320449771479133271476188075920280349297451135937497423190601264057568172209406215301379214369058848162520787118250070348990134281319519977082448178578611207363904225055523669404968293798364343117834280918441019972204891633343182789923040258692251081135569519174194356373852527194832442753273180659779642933915172213884415777355681407510069222357779594129984252039199156226979668274449738589623708883097764771468293664437341158451770078321417268124358531996990587458206928402377451449989859799772564333373249023094802536875531754192618793634338533795598006966408582561043536170288450883893643213220982668575587431070113697648553729229458823634951866917851543865424251681147080384152293110386207599618014230889198445606178784327547004235874587380668520921208610721370366093622478138547446377377223070522586627170837021183832554901377885748737091706982066734155687656826822958757128343963521236807913723654270380111671319149951410295607343604880879440891849799335423578792645520659440890214127184551192770156286056427702909952566493291270471328143532346806030449081666154696479338749742613739069405501797965410909448431998958339624655201130885980139249957423852998609851816109997905600012447643272932506216714375401628348784379119116568695771297519696312620848726765940062897382241533167524135616468499345249729301889568128677143886745643917336367666352652751277552632354965844090738864748072752987129464947408709315255974928531973799628618028968048181932456999843999412972761295934759438252411129454734456627232467823908202860638668195800631000498028731063279440654836712158317574753437773124810785301893491352359535928759387141498666877417264154885577262964991501215258525517528404344618905161420809178628603431344189616105037775844332000144941633771821648693101109003030280322329657664874667793168369035187672237774226154470448092422402857362473806177221355857126006612955939681245140290905445610951141390142587368016000650537894153393739910324847928734369002772904576743710472704418478748979781673553949648519920884499713078059197639544505275296633934837758290667209120194892703274456529794808163446029120323865262080869867421618416209202746658966333844381163393507328212587372943349842441593244616501604243337325160407943288538825452963663757642809148153279993929438402816268064527796152423348663239832191510956904089382671660136900231054778098221447780540934469410385004409321868324988775671013903905050290079824963214996759828036194289332960287920948261853303227910368450384732967518943409440465630165687666819250779637206049278357880106740047424669442149798884307273090290070120613415265589912931343671217116525229181310053067965749266332651492480925757770369456440361067004395791848776943163241869549303977433568413302753049961726611368521280392808213553491962793788586311114682876004314756894139081830622551100631609290284164016949137322763521254752797500720929346061134226978946182279011900746912746946214304912754253266959994827542842641074626974338042887340264143752091765069763641864731855662722291814881409676471496422902211980398846373688588123095872444581649656050062985866383596862074501660669200318338202001415050754583468102640519357943647133458354835348294815433992635098850118967549870438542746520607435529569271515213332588725196087418109997464924084034200006324449344979497844961876230201174285553398862197757260345107844213117709301341525335550161694851955348324690342222217444248285739922891293966685730119997641363058119336784328591360739308240253353455615491149630741677340795983435618574576077312054999280109167276037845780161391436194479052160673086258385546741355901922892184862451365155787090460991938502153477763308130531639841560512717716561931405315961364333561417526868169267498205148211699397891376830198841034321700760481265860369331592610328002544007497984292157210047738966433708746217909275697318326147760823484593613268090548289632326067575419894715779630447493418695184036973930166808581579441206498216612707462606547588980437093299196164837203607078972848198818970612112715959345924493548248477894682460524032851587099306398439878828179890718128712954207287483910078696777462304512392019741776631491894524143481852041380799263892538954078393348108039190424470504771650626566686606524912631984718989640896996050844367982884656684628883238886839108621951630987568277552486330222971343469110516376132726028562345449818914603854690175810400018836511233021068240136878293728836481784190844828897070280037124240723830988715148842621803987637117089318859742626779291034784133099212259842130185583950541533802293945566916755709574908627402320312609516935302546025191917224434583252093003359820297755912940561805271253529516164683461432900501731373822577614608739319419659651946206777787172511034297602428934506814933872104887033445709268478912794694011865267107186241451272214583531242462269843790351741376388613191926937796961364777496614657416326448047995696822476386950001696271216582598347487816082642713978976926021371742660858391982550534356844334583784785295593763883160014896056936788611957376270178097138165215398873023089636732045101025014167977610231119604038241834437103403897747606696188462557941536986726484623245913195829943622682990919730877124256649446896448084274526959463095597276853429977668781431654952519663939613020882004055683347867892072535524159545728769691510297776086926224999448514102143509585010167406952241214062360824039647014528639045638722936574394103717492751181091936809274291361466315014990583066363705067648246679093917205972569768414218927180837216489383796233041068675242661658264424851294669870406518997540626618341745408366402119298186880374311023844237009688429349239162426178907984645474154081844967509440990375156949647706811906011003298652957111371122644860069851750433761189046700073276254086183985967435836710535494530191094003935925533997237507629807296477301945724207464428139391562616851627847699018499164530430307674456727371712105251756680947972954886258846591785511471155630433153718776440554593661179707331574880107186648342816121000062512528903341587909254713333329837634037130777076028833260780697505039560794689457471982471295174675564194965500590038504953906397397225215828924987799196275904760185644529421194938447407790145505736683021202488840107220545413476304906781355103238418521197507172053571427791870622827777657903704420492612682701059647030708782364926206311846315767042245245206866634355257402615352494551225821161326840038229635477934993173013257266737393967986672355268122856089962251909924022480898492217819006661109232927969014772393110297208902637857210443910981723887853747718341737367763643966034958341121089999685793833247907053360335278102799763102687842123013963859201119326842657460119855678575058890939790872901114195252376039535881965995684482928306368306642491988435908003025368732644067284932092124580236155356167723281702427528106998859044674454882209063690071049441848235347352077643450263397267997352802891530923627804898799791468070959800620148896347368640631287586155708470480433851719393935553342169094457283736608105422208032148646044044790890911713433758256524846895308938991312787906777540173086564399070898992929025575212631654602705061695540610458986068612441210886704516962418894617072102565663191143419677423961956579508027074899888674636214221846875592867209368013750227808106953402674037676554142654364252569179198553372885200439068026755090232478497011199919948157582037622033862147211551835330177838627172865386456830912652916431392981488048166100121245734340988025307315593381482814637193244440680015806474612389926458165790097198834316667558620287432497238209639462958067543507126942632873393166948027336180033807319589793536907955059380608710165479673526940840406480593536908726749577793425924595726198566188501239751626521834552389320975223584929655122847742512776615585622329668771470132899772789595297121345080225481660981537496552392704982874293588650144468833975601952849572211097596594598822628133167656492435604015419276548346411718986522302460879146486881173808940224980145921238385922606674260287236492307122094161891279930438369392768625840641918953028826059444139361049151935262398543711609941711966038329204173256323163307492553797339687208231388053854855080650386789180776172362800249970205853112550648374505800179644541530425848709975068517789482054110052753137292801474211716280343375512521073736904427715418915324724887712111334698525700736373385872535666513821155314124776003599022035188526057713240001794131508800548640896021666631286729624485438993058746434882759048215876424382215620264903710910495984704249479636019348467862154090429744474942817513349383293324092403533516641547106189369132065712726308544311563066343301450900673061095476456313145195531387804412607753046078612972419502611212239250677775378160938063654641316396469712475446065190800803063533232684875655664282792171029899639299530241117061654952273818419957908105731985224988121053376859647903017529189117805671945910546792896943621023861207363114503394032546461720691482307023089159806613300767227280248119589190438603123350589055380824342847076172593237082859710791971776891909643632986881072551195766952581349934218794133452223032846230934102789047863266051212565165229505473760898409736910309153426972681202200749570090427273740968842213760817576996382834578459599147639465607101366656799406975232951699276024531431532317570673250350152405471373886121421585963603314407100000485093363388499009963654291333290459310253508940285127159417517244558727174064513617083180076584324111726378987971747061446286238615587026689738117004797125162910203989249287818893087776555830796563754313612087512909137943177452431662688583529852775945611621332201811525203334634711367364059200798936879796513058357130793630801170919471938460743280422014754055652266377205323399627197383415509117664133857037980625273090077087100308284874112822596998284108473236822750598885759040043826138981881015523396737206577059886669448224617603800014596854735736704769581989753517310293248624165298810629582538046276708343269709471406958886385746400239089604990413325827870873625730876971744328009020152883401441809279954382189077311650638891597201678887055918081731722177355544028039011429186975558066892104884407281525787821308190324807855182881937878721357958193705957342060114189848650396235182355935518690718116374344921931818810700524930175307671079928432424519732365345753702555274968531174530813855811338346624110633239895934635254309990799681176483174522235809386423059665908459686777466985097383336281654509243561256655850395688114768289203944355255825617446429459288031568351502420485838779569039354785351844641646780799750816605768401363426615762963844994805919552778335575256284585956168857055511374718928414944188221822442335514204945605281599714829096704624432879380929329131824991300135887533261614554148817910932428859865823450948813521032264859491692336360797020547967911919912229809884673034730189587235752243950758563425899344825347975131436689367398545040791809687733891767861424542530194546208963943124999773933644646684196016115486697571087455024993585528585152532222294039789941545634058292540101406355769662002331798500852423752823833643837292883955926825394769608887785129291717497257158975935910679831337015234263183255270271932991486373464937208422176104303134549933681305473774091306773967593824368383097174381039113578370467321183313354670326663280691860298305832597025805021051302754814554836677197456633918010137600102237270610969931390425589976186366048579410351119065323477628940380084326845630993832390947097202225576108271069498633748687499574862517185988901276345734345830550353490948357332007323477569863980924144137218430976697535607740209015662739872711788957736733610399730222901155705496228845649168773197769821655781596768449137292577898732973534668094818491458588618710494639810572520909167265527953814772332672220671024260088948197624043568293887064145160006334961301845709873322056886537566925129356965903108048638597177241753024622591348119029869264773694352155864962315994104507356553272529309971259027913285232603676354537783770535427498085251353007833769285978775908238470901500837904391288190399603761756238366966872297007591858821850712624705440823610746650745857448763735770901554477037943098899816718123989638804619116416785317549392087125368712588018082303259940908998399017584350331135355720683765275389504323487281962952757836626071142121751914705650879654411533242907973058952011152133215933322849407601707896989688394920697664214980539852346987597309431346202355710918382813612648351217157417397187759010493264466464598969309793962916201831265928555826212930694606802920970926767328535479977381400054686540949799325369020679919590004975010246194165172536212691049385103073336969542296736898875995395914887690480985329675430509491928739529479694035192812754589048422390022460669083098376290621460259800761749029629795410434348782898024552634406185693959564890879936137792593382264185162470845685819550124104249614622240985061402658582384478434374666023801396099336261843810186069420746556424657847576653865369071547729733812408188835665428085025763553949342093660490110995148577643838239773456956124681397858863850507939265710437019541571913451633011336127783023215183187990667111806177265977731275296532823306111808666131228795761379796713783687881848772065901152059972755319849501879337878027936534616741357314305267900838339689934780743301556529200837432891736950364690860720864186172891138127179978894350486874029226594622324597102068088324093802743495707639460250636927111706953079331397036041714976224597960657416458152457289674882100259124636967584842927850313550670988455386176017291334858816823649087345206145192094705332158105795099260678538623026728559730656333588335788205209992324489616760249285648617404395295144532772793498569295934044519900322946198523886607257605113986505636947723674717981689688926825442845464776821207603253822526212053289138586195547136731155764164925281609845598091628797162222045472971941358542007124668598308422101366794108767874865622749309519729528989288474691524035373100177934521056431982873020800401525243891098457238089586770746215205329239000653367786783646134334391192408924122318531792354671025631080389022485848977305563922248486649296514630213077191955732271344840155598606174820012622213637723444849401933601426126031253597874367273543583700855035799542128839119911555694877415742467128126835664468806922799186956931739683393075990240103375007401042393241672796298366062949448915960107921692557250241811670852705313051067757452119747342519791382933715887005733649407290926206994026229955689163373697085551936664753545109479176718429467071213314284676465827498825899171636581826451892786893178044298407862805554265059022919952973727073376050828733258800372977457448125719436050987745431973696784274935914036415397548056722368494783194048547827811425165604074255510417731240693759374252727984048808208990566695475242391387832508201219474615340539745852775141809778357995197460507472395339538885174099596209993020083725582917153669779174466893802549734458412919185208069798793935441222672524784993206392661783014482409490419977135058106405457981568101336869624905810856295641129764155705334156167931371162355398650932728686317253186607843982368658665020249166296530403501336766091535716504203419105180888530702638726834608982925560588869228375978842133361473021335804591114786579058114884098435010834679963554858506394315114444341683719646718352628054214889300261042856591050238859980350008539839999466968991874211124545047816968347418517188749534892707141151435269300123628444411936315138447463204415663911871102020608719052120612946440775071325732695726491792804131845512170826277619082300215219973770413498777391909670448286619607232792485056803602087607985933381895614319046069458023288087586286998623674700875356952165305158366738362069034372887882994361956513698332827114340816763428500745438455774409180048465114805685850594135945685260033330758122209627064476315065219137661045932951907295164089012601159040998234449991346086126676621804736985381598034894448379587376960163455490699737913739001209222218189481833340630707886655258931719809291767587197140975135706889956179369939395351545984423688417173651845387855091837819293053087846073334545078243040117704262155828182522094710489749213577436969169536339102386629739517370552945448578248737644538174258011641368149092307472690919500227160673931346296494841259900212570944554307509513802105689155667012290489665875544440480479583266258740518602193831575366016154637441093549838386499526062468322676429541934786361369338157373031137986938139107873001813528812011859833427536237211984249829861477847057385497462818922487706407571834502282010308544110716763432258189236340174449507877299015166477280352117441175601833705146161318002543990306003845024655762703586637705470951771833520778303775077159607034209655655044299296668012473049095201909749555534255752712727740456300614693076274679574659056457356217274866836393810564135284333079701054736765781746520818427000329950731702278362651533522039508609827581835482637935145718838332233160684206864072530469662937941026044064976432437175946499101284482530858974480508521513511691536883994704236196465890224320198699519322210077051474621580606187995365189532430011497984262722632667499957016621457564134174022467238667800422224599731515329163513440569035395971179232288918332677741790663763273252511970630253711251668170593139521410156011006773470623339308057668360729638284200855275041671088142382685750879036586332789196645347269318405862526839076337781840869817609108927398022434861474428217903067093911768165911185316906259024021839909333642666324743376447275650426298265196771246201766022948154620550888573790602730680103914516971742586197492086247172141231520581357547846776859266177907226009075947576081064566270759268611517593855813417561457434027142655466408366978511658258932460416762109734722659634610215865154705907476472748773265988140122068566001526756846599555838145441405457656790388951052024627514093980438687646914239580627264376125725927296839982450967728082730393515172905158616955181134957633299965147842550222282469805046003897315188640735953728714526255595356301717190896510208966176191487941311671938811380341128524356404357665740324456869689947996331220580139724309590546786310632085980911365545025761003186076499712856863585163672916956597718006222058704495176150253781738718563888881230395291833295853553928702350373519954139549528792394959650294431869964560209662468191557139992623264240847045157199097680025376037754701967980657647686055150628414454698872579397564944796107649050156875807823892505981732952081760795129487846445344416168398063100454074922858768891688767824614639793353490713895954550307505368526660387604834056378033172114733581791163587590701154628036360656837808788801439075231501190472426166324023814459770721499090929566298686378546290820519148773091738344673652144755944134882691827891300785542516655085306670893518514408629402470257068788995814137555155514847369955506000269698695384380476190661302072350550913552646597379362620701900107266148568886845725515617894258780803310464584117460311835094102571632507820995313668161333856445246505242023958610138170084442024724405279147578719243334057211841951782314194632769861968206546662150636017741776478803319466626703025251266551980052435327818950466741486097730388002343567378374043912607227259586291162757318217462959322481570471806199034908867277003342334206493088990176982035809594728630392548142731141939942739044697690697556918947341590755427880587953603331117453062898532565269851185951868258795092333225235712908069487169562811739489916510289362219633794825783141153116441612637474433719133071956892264246282278485735959715558777644775753647723923897691226139609056523028357652679692875860823361617380824007043938693103391491710835347589765516643602497907786236743248332224135583585703783638881874414719005464521271560665760948459701226693528523987056771253820291479124812325566088588925949880318494339557639105837063646868097469659361644050786399336722338721078045699844974884082306148533817591495888918181626032804512439842274226638487354962114831998648685077564142907880094749462363954737393460027211446986711897223065861586607202363754698618070898636259167372764783483409594064409657007522449890122800975907903839255518109546211163712840775029831816665473900171505115502065886147483616984330764168038794900085606151350007725414435412241551089201565652448073934184181875889736993623985041653860871947553576415470166521227945322180571755140975030220952001676168167289141123236461058145681614773733534103218607461737788172119739102442237315865757908341500006618622573884064474577616175012394415183974098854733882027303960754736116985636320495135433026996227625939788430161866289830492571748528010134586596257587888515520294006122526462246753873132195781860739283894851226340961625567256522770358277045526807616605358699353374366762390208011260420556462552437221543509843608800327205071529218157132609015013444190907551111986092837949241798318073188248233743144340792995192548775106003934526723633437216121537947836294670188508782193474162252094218465891454788810296217092609758317776268147451099017022935891818473382959280427276979154223103209474718218211859632517001743423527587826627896978875492267590880443126622170238074302880147753354474893139050600588660335249699202825645796698765673903016860788073290603906590516207493564168386165504588941515858997202061999033977847871524452540066824265416247558420157761344042310735054989279095875716177582598562567314892377241209173555083783253066746698232239272380304586661462886117431418305121741364030752299858020089740442240110223496660561829385299167388146674999120526970256540727695726233757663378437334139263929472855101815306215118901237196515151523828090374912202996312565915153883099788728238144010366116549160880375473089550669167833379911136769117339623870126155580768981012871602662400057018875210967012076165103605750371736425538396270424228167758233186482491603676957904182377075998929754488646880508210139807730486677302324489988327693281188206941479263756917559588263758753566187920958618762835143901444971399245077308138376284358509375291365793590612039340607297852433810156490991233385740841745342166404535563983271094090257840003714581377009530319491457421109170015406075047666783629748765851905993657997501461570151332340549462198054024598718959644166451074991106922758017648729181143287520331234065169742268315766672118714808934586206864651403297926853570521576985427104129782245053061132661430666686588956483952084131678563850735019258925818861061713963854811059898933930031763428600262626851667029416265357868231779706762739907114642679814917180965408422058580241526042170196299262257290696969009923551701710942530202002987177941216422273819607765472431178300416711518403846779212088348200134586504494292528597795363915316939815370371393406419354177365868568580408393703603472171159807077747752406593227510910880961459033450862348849864304798030702346575158099794154250887451443688034018411877835070028009479842817118647860078706082202790658815774320462215208313320737618562027105844629734882226947341816177904809332436770043835386511538677740996783633196887803898331444833345437051809730401821268667862039222249627988495563104897884095875877534974997364365064022988619137672025239757599779547187055569485948542295894387583226620242095403503301719315067247218494575322820846484083740584969638429358954905363854017319562213010112142928939205337434917970413225333191458355705684726814647010739292320140508891030559396886811822955392806582014259285420166049552228257285607003623831437368078672989252923748137613645045055958442055199787964760432640019999715002471037328431638709143741902618215592088854304550160599327325469270244006683796341658357788700892582933175504938737100646835485602946104020873315275439356852879746690273548451929121173813442317432274679868789812180256257982249689113870861153150855684630771551895008282219181395717786805939986078360216237848319935092562159047222789059343991580262322115077075280484672206722859232370882262280788270173100494111536556557813319180793977664247671016963984177397703179157340644297255185761915810763502133535450067691061443091282746071900001906950712335907510289019032405119094858144877771410304169493719651028637697057351242741201522629358432564880848806654828882235281131704407194243532389347809240084231429886356423188761779179512788307236725192262273444578293066058930276174243695534968525366991101145552048374795710979944504804042035160000560929390653572604048861159160620696646577349504610438846635158678223286874061868911524417647338952212170333861552883445362711918816998880363271965059745852486825157481502510513956500654192924151714466517963604496469318659675329101852353508340008805161114346938862527523673429972551355057790682107099765936250719252759624803652552910178871034346993599183767364761023004790573454391827514312978963671861152239194178505998814102741317589240391830262229037458892152805855805156835014160398808532256491441109022566141695223751623049517037791673998043351802992232186219362008811295527237940955408008214744953770637648280205432107219127688508438965275766410458603609701718741736985550688041094357130087097627971927043399006234248886750589680670995557824939160903414125221114571861409394796421482356288008125937886996103706232483997259441478982830712138674217741146467360215289680140233644703980218018590533425943652254208288681295518720838508084093197206712948948782192540684185643371819935825631142293536076159854062132516932903441567850864670288378877586779480313425842035704950685621189095051421415640951482462527014581030697941688206674531298166684841728698370329271319980039327450602079836072917207697222817365051170809787392747360553450999605691829177931736160607274245653796839337164490644641380222155751896397360538145193007637650159681672480907093830825711262125200752063633754299453803046510963854184943701784343503216847541444296733361786893595254712407420506708976603583633964930645810115928098646755759802770526217130137698483271106796195929172113831267523518921874065721999361198428159098037133457586724134551730666963342974711968301550077831130441583873594069366889673152813072032603936624980202546086923703037236534210197929939669728452644189181678939508905808583147839834766559272283960830152087701287895816214015064216318391475661000490043246660543819043936803876397743156910395632322409587926298690457445890988673292427942899236311668064171698947844147724446430514919003700282369315377268061672156184995330968015469700400506045865664675339012673768167841783730421807253919045347049206854916961848651224441627419620564747970118445642721501678939799709674495673919916284778314360230043838962867672000782926311653357021531540982411258772477609761057454799021476163024930801327104524843778633380935450520478372677063412891754127474827711480721098200988571570017887813240037458758774186983529576891362346694001469683585755616911265411505150548196827939676351074992027339503716644250348310505538931090281579297784927839144875939216518272179279646203444330008484820251605360625147913087159447844716694372248484431913077972395083597014197558331440371906624472593452372226514889736324642957248028440934148773794726378461933005599011823135850522543490547874442272163338856074647221900880490875594086369907030627764177517383482905779743484454828120945442882323000311532047532223850187379083844055088871751429787099725097888047138738885502189444129301643405193854037682055207756209293136211605994041578302512531380781031218053702745456316547653622757507147721678451012793283896608321118654083052900274170868481148447882597393942582566004923593257872908851661807671361830892698338255512722808259085096444129121453005185232671920937747558909341502232976436517399625751967074581709675947291345436676219755049915006937297789908538129248838804882234853314684720953145950136429623995493848442586792758552033040213554800127368005724255113041513035155696716618831353943017688367139072823527610814225714126444970325753920809881554037862124316386021454337367021480733366755370750050445291690864912028470581310929935610572160270570858709460329047726062981550688333978034538364378488557959764877793190910464157745014494142231952533545991643444966278833646300372517178174660020884900205356714255393370704173612670797820070195028285939544220438343946012746299442740125806651321727848832087519931716905554658853189796513436868195155854304521453788424815031505210267310902404113443572506855918041607813405424916513357837838739749874293688228334648392297502667229935144351327223186640548080362327709601362605067245268203522407110190418696836279132081519130489521347121795223867436912483238231289621618508718879586103566871992431185059335068622445188575768151310746373243670355359429668892569917596543188331275266464361674348411503118879317532235668561164871912581441592308204225342380921007303388331353709156471902221994565823089729527681421964618382708674759225928186974729599594477588093854815642739325606921055291796674305978475584478783205539863848031519755604813492148222211267877194362042691557022152753386646676414133391479012925842829861681888840224290965776117105115168143218689707252607142498583804953970199984870125750286763092519487450963043142490983623381700640102547991542436127191919876223125117274217136341236923437882394116594925395791736989146647874746792510443235780862313612603774304775765009393360311410121114893172440853663888873717487579616894898834968720691155133509529897062798418706809776443657980954775677190614107990899264905292059261997488127741857254623899534904268911610295238657751161308242782151779141837616266463634699403990042254679018678642590734562605932852556004400155793238728512573359070231811747402446374909944432759351179693793326216622379120766180641492495537524806859081174058506893381804203822841096630013366171778048538487976558550268856702542630547411637930117315396554376002182062665993601327548132212319135976908443393606094513344875170377980851242061403345125877796624596756940286809165336663658319751507543618244235566555343144081877464333394265969211283562482999683570551083956407513213374173663868320917375082860484129354669855044761860177692443835073161147346446571201219934638314941415989427293991968957250563960798397171239287601231436854110886404403304879666594625458325716141274261260138193569427458760959396479164141701608468904740245205399945347486905883657622800180033487493863602374159291806340066532558819076216227576786736214564431647231421449772732340979948604901303804106297983697385702814486646514740547212229655608624885025896801351956152016917806348972575545473648188532445832355454502183886401209660929197257117543250764653040591963319837912066649305358194586460159348614842635672231500824793413803411649549045790681008172963522743993422746687114698494518041929430367007302471958106276144132547382254111492811676125842320763259239608452352428381015223182569383207178082189485772750409850271243716361460926770644461612126136355705257543669945739942862681622052297428380598418695080912532391818215265352070630567079115388876246593120428988499900049312372561764141060981535695069780135404104018783218863392904163215097440937424417983345112532811785142938047240276055344195947260964856278463152807434528178376825879143642146453632216508753925052252381341838221062403745476447380313859077715399780748290456759871340851633369843362093932593782934349008997125599296202218942003868228771143114885911633144075991635990427959758686695698238041977853672164580044755626379696014876130150846670068168421543970823753256200762150720993828662684400081552151647091057173587103468521343148475563094643182277757771109453168294562991892064460000769493159153582495568963023372453880165147973168129711177185757160631058787900763413651973057633437205984558176443136659515641924660202040800146453722965337857241436524443339041741188158690326924873464308716478298569492209395404263473246386759570394426660417440978169330806283899189198022231023863530268035608311220157553740853573372780582291438640010765248337620230272320885982942047186891652855054111504853874989816657045906232739332404199065042431376577222281003431792003050079711992741751435162349151096731254167916596045486835159833520006266587447778546073283329200964613207486222871826152244163491858750293046494471967109081786272992257004605479732161143584001333880818846019192461142120562200377950824986226985224514503338422441046561496279516072699389717247014451655461187758123757137385577647698057780668712947915876592625919107314546411585320449948245902535621800953615617889399479988406880788137495883616850068199642281158816433395414529209793310234420086630962435712448016907122806580921564353406788446125078000079447088153181650920043649208018216165704618044457710811517068738440638665718904979444030807773360744851730685847691699056948570540555294314876550356056611339459918053996425704283387309304008940857224640706219773012302569012959151274312233968113153504123763497226141584428959018372512858612637169141862885687583139978229066706098484851957569453814950313269181204053559100545121945930873113257846063272401977294630540383280046318900341915422012387883549149830023569099100838102892416210355087095752615501546368779607711285422185182367741746981544988541003792003641699021542958660600294011561888065208114403516428319122453439133186952934862358251346758618586534583892913188984387221592034918541505499576711768843780546784702235288215898866959031225389958392718535396639536652028208735326741191220583811648373169929158678302225353271506132379300586176799040566869150256767186759822105198197161679146415788783922641767920377206016979149971169839864546169910531595739678817398888160677526535768941804219613452119590870170694583472701623093976070893288151168044493992624458063985623908410779654130487515274617020313512469058194009791167125949040471171368305591739996215268826811205819458678952640852230430350918232289245686590900737366229242611900683469228331970077477002944815911929782127554374430851399904876402584208704590439389032589545559128698492173299460179826495051850478186921105637713465723217520402447410969271389319526481704584983163956986894992524661204360010888684590049477491844780001963766745917158390438527811708978404435518037121820271319547593034701330907566663915527826878471483284503729872555288159436682738486392165753529775621805857669246172698514817997168273786836010171856982592709771130676670794782633379154902035581228248560175709240374268769100196305096981047722530271160094412807528509985331408169666409565885659652226782599584787214478032139906505167417727602205754922909288195065640150399398520233462840636189696018076880941115650150724589570045221024753247005825469961003740408875179504535640215263523583071265364547998409207482810774273686751462518370664276440888449493122461972944054305651227157743473748822629016885360169585801670526992337718586945970818741052856724672530445854341486045994388751927706444809161933435606156309130431468156592737928978667229170249219436079697882368302280252280761137680885151475416080445679568085333225419922066261107203181514534938135498567255719494740399326843570511714641701722164446110013838497207966897307840151521681965760438162069901783498766419024247498533170811549768840034425768198466320189379003884851024694421010827642699571423560470165521664130951388881536718514624232895319771464094210937390820045334376704878204911644568331272309507045387143525661873132676554490733872611962423199478965975740827690156245230827292783492945668006368572632881690334784306498061160245775134547227920939771183732603256750198831019648324629619803879317786833881088234002878201977826783022297881027264275291943459932740610474639280503623977273569934155748166587683223930734540804472443750031569496761791539691578383122680965876371277668784876003057960743328507277856400957779778115080357295866448067370820404926673285322973315311886282043336529283350283115131941953311062777887056047141055995152986551189704446426818093119944503419724223143937341008066616657438056114901882312298076974101438205235202227281604318236830819858512815839842503130707516692899613320704207600704652085297892318704277107045905941236420949109779475440551685928656576612122123621341465295326659019680103825335801351865644160985913572922715519472905391895070229140310786871602921183595313170304446418223932536996577465329815637391636017795070112444199519462576954808469405818592736227320174984577641857107397404506500277650262055407218825215107229012363640882598165702851144012330372835593969114279137591895332752643440947282793947187727784729059582263746010017998321178270500946887085667010821797982296114141561560115892946168279854071478263555512311275539101837138290957227966226462544643318717319446222129585962320130182815749434750708641691636165722126242478878022506808396229210490442805184781284649901727725060819364796650394132498929277310357547656097651683837580514347349835211092794771631398030094544359709535643855864430341124712556152033052582314229223027070550509020982735603738127253162306055354375180654793378909439317838948618106741755964111851348166653220215897169952397040336678052589599993599981352995270783584280726832186464900464094254939977743909960285162796279223751303701853520393607361434645988722841810975874697839025206930887488449943887212579623077474949623785518681118338574970213722365245772613962450804281234284622794485477553158974524484866830224121320462741954150450697672761878928826454825737217187434888095634315255521457659899363270465651806624077412501270691906578764537632181568267765881700020524991784356644963030972638711891353537677816501009148643764016813615381252106591255881731248819134809426755332191199482492501178091368843015699863309353384628639496102775787406853145869416559381366136246914200518509541258871735737379925975189771656110765335529713610087552874861578883977410202742845231229477634819158831176289932402078931869883637016909218457799342915444117748324146820322694694557343680572179540184959059772916958844728236751923078334594268960136817881249037554717546905248586085761054891168136297064658258459496078906350530144140801777206326382657186958363567506707668906613227246004864984297349092138647759139142167143134818700291169881952546177399825477310975783456245781459602327623198423568007743537216987873059363397960426316519078127764587847903842625612501781835306757869002526924408998276730202086861873578404807466086243118263516613705229485768334278502217273740527958496392251609666785237059714121636385336621161575803881826003002624174834387042960224535933845733888170519638234747094794792446180431204459186725364461228946947374908458538560066451881153344500359275886779403772936889948366059352045613965916282483141318900765928855727493936294231124424432670919461336245129585264808558939616669677709935835074895789913059102027003278867570631314654210322105543438422853213753274507647800302968901949602367250035805181740690751899861580042887905986467133676781309999904426574692659950196430275144982853263649222059231758456635832886353205390745660890851591414599332564807277478142668326242783418473896293707837916981717326448761748676035783232983164566589736002197839182194936673892613521488459470171792019213900583420933671286091270926626527351037955710089241111826351795731828695189847632672507712564649426674763358970245935336019445050666994136102463179872829558673976725371805461823805702537140036715483775362919799918469368929128040990397240690729799417745928730855490731283632357263270004726225420506652959966882912808303111526374238041248602733336759083908321791855623317841779921438801424137559307112456447927467251385675217380223812058521007311573190049496085563086640039313411694403049126974613615489184060104496947694110311567841686825649550139260903381514009488097163206345460681798239464092438339685685164018246383475472992324538048538378184751680141247598661030895875881075452104574392616423216808811025377853333404528779162889384767378502303019318627374104286423783451187413260292818413693835039993136328853742058165851447651039048199823414042931571962494584505936006499356459833124024870488980289474189883371734869728017126421322181510064143043216700379943131999429988955845734798704600837934432098480886133578899517575084711068649243135898727945327315721029904882769772639180038743377481756118700581535465229899095275426460683001731789664833659340340817719574285072504231462177723508831874743610113700163238091402967998645694531241402663382279604814613889052092900567027892176151297192199295810783933211720931686618752974590358522438157666967393785320109733644443773454553972777465929929975596192142575735565010943390480442091514932885472373482620780210931570491481501409679269612330727035805148539387566473122997798566005134139573259962112916415108984081855552720116060888833838385840106835804256985955735934511400512090478560943845044602456337172225124347790124933992698202574561326056487368314107157484061371993060743318001708127772734274700206968738790603167972930947871983412388632632956706593098080440629158630579513930113353488624815217298638164413629735322120083020143070938082246906361513433769670914956832633487073686338966382025093858912658365953734045977946602241808712960747772942441861531143623128677569204497193451436501757978882571605028959698273819502190526795867349194981948258336971584997504863038518867812596578325266121731566482933559968346152016042510161394124301541279072008823577806579801842389785813187283669819899543806519178573663442934031442802499634011842587947950465695032295066927835074142349728464546860537614411199703966157518917422229894216866081856193959704391252844296302705872444187064591994833507611247489051856160555736093036668918283226564129431927380591401350373746214953089112192173440028996537697069941259154412653076693435252040727179477074439213228633506515856824453232712378221336848920477133139288995469219975393526901291556737610046063451424646541868524665259543652846837602706795231228342955344713049288085828507523765031473291600081030025127004565380827940706150246265889926522195367302320401863206749326187202028427813206838485454910163079735933000613255187990269388493608428061531868419531759684859856878796123037737654257004692107613577817760608207441592183002403832214914374053943942570363031209387503372727895216002996011541389400607661006345913574611159130974133312012912632574528650675065422166906320026124491723120160996572331947167110030494850969101241207960997958302754176166254060807267031817330528940822514841223986684626810669078884776489932313327183113173583123995702083772089890095144753733543336365371218079739620535352655475854607016919593903766702853329735698985070939843744638873609311866892419237694770661993362507306931185101094160722750348070437122476215340827041312359834857280956403150708871452003737255376034623135599922546503789260319846241619879834268888893986743531590748191399031656588855943675300097151999615581367791496397371202113334960968710105355609541646354225892181028079355063704740146726964239516672911066605890912067268885105437311138116052895968934982756734283340633993757554583243899801346001085864683677309168290643283145600439985838878365355576885163724761256442871597688621835942918378071385014771003380052409045523861549946867410147395400031498393812796286192468515653773726956724714564333966646248381455896933543672573254144393994898279816703988712274584726621624788482650075742321829510899711896369069515203790571952321873083449037564410691039929247767757703570778431854785542141962070802999308648663613096207783366677536988660106271377705784170875393314964366005372494179012771293525947176133460631397510295194618259858092194827957263151472726497474615890478336746829765700370595416212546941291653827532075060620111950294390185188639623661169108321771187249902023867602300449214879887755850420290449025947270459484037676948998239835889260703489758153749127955283611777795625833923910639236782027822255319846124146369822914612907159640620724547001852992172249109277019225296861952739385477136796337449617345429496790310986450073980698749710827690470336588203065193251865378248512450621161477481052106519283462672565615564814533697512768813076278055728765591473284691106342146675903669826808200477340641271393757108038814954341114103345070901208824048721329885614382088766484499388505859519074374398306916240523378775702357382070151685700159892969850828050952344082542800017194436081316122053025906064626067961952056177479781996531825259613068215609321023770728423799064136782475036170507973157204831518332569976054798495258267825204730325552979384968762159779680270238258115649533461331637635859637503750203356988728365767782923974831323675493865316162507809806956162321736649980463524855128287469600938375904910200062199595691181222885702302475832590451103537620718488820225940405379685754499403726434054946567370176744922262236968248811965911181847464240012295869328363974003828211563307532975027746590396594694234445095842020160390914805964744847857165103920574922823138196154370553847091054429428152098870734416241423662397068716643447531962397019333338693494663799992016033218591123461844936082123835308690788423593698286255970809495903944555288388923804315829755291498503831105605598677953206788337897759028831408818084100284092850164404169948910656955969896046676980504426536432812613511292823896647158231318744474659492953697540290812913865451188725026637639639579862248888572953438573264228106601519688315794017728781562324906839061490462217014073127326816881260507798742825492450852877268928068475103387576816106373489591710202380409659104083952055784370819066602323521415016855518732541848838465323888424879279713335133334337891395456149660848491086719035930858471191435057375258881833870074426989538132349796710484502989503673661707267020586409784315171767956753555529988588936096117037249925139140374966332799035774231177641475191744191675046149134407451441459617880625154629696127980926858859565179832339356163123059223232836126725540824908679587264081890377386173269810970694454171255508098659706069951604611381546604563025844172109746468839423437694936559994762197911596176735823986355264215159075000631299895100878544324697605624796027142948594885071943337967247592175166850526252688673881714980312006794683095062935468786672811087989567243174115009426509001862621161546109700911338193228045442443000630742580409394472987497354149045602166163142323008035174675387923989367015912147891749983746359024978915799369391434983940185020347944699940186744104264869388269055434286758921291570379918743580780719457591149242123614269445330837685170975300534680847959242502899104139823477448728175071171675295734841807726986310837224537800190631968725017206031038908951265187710506936001006171716592584342770913490893968206854748978901548479321459512095257048950332042761081855344926553471194303249593995239811374942082973310248164885808461803447220246583668649793039471571573774666037710967098472383261770505458859047376021698587354549344998317990218440469171378326133224207469307398421165058266343027583577139523870614031130971628532641214736760670884969604076411570158745025442054400614100231878194722103169469777154606909785918770046299870182904790070215500535398400723442059910938706914955458452524528850574927656830989227052454146467320471283996388657011084586669590322449198774439696797966043621343929413872412504355889468869067472350299279850379798928668865943624836736097577332695812043836228789100566708646656654599393591369073504197882706783653489467734827194624964757343256702140337688861296994355888694124983630931098571691471965661107105253788906293182054025422353106861639874025997577921231435413847937408152217011176711426366119818318867926017561688477286798472476042457083270740303388101375423601158319903385404536019804837285354635523977340806059233924006829211604325970034577973008585409746960379141215194659257935887263531996531622641466294755833917595600134146560887394191208237384528249860727386458593376721671602930449424806232875864085821804309152523326508675849906877445268183729557575224090249785766180627204155367593914206131216032029904681570560970545173020503888697838794966091252753266038202664589240371971073192435187441363261155760916706471674373488689525558387049119998691494778852536472576899515928939882259148097339400948434588751845878308098802124699056348206917743810817607253479783814132273489437472262042533911201523531117155952826865813880108537963326574694722598785173500456342908819093445214841386540822464458529555240921157580560491133038208050756511331022645013157020351523944694771559587473592790582381226694436401463993310579372840702107175707932650627768878034257381725328638487807017415073062773786369101913186135261048446694943061315077486836466554593617398708454192458574053494838610973138491958673784226249389369599499649315349777243701078890930715303635943316524441423334039461087882880918793286030394656040410117814516418949997280102408431705342195837913540445745521005778508274026866609324378606483883131717965441225474740969665030981300401483412539593704296604190216606776305724413479830581407048835751937737387224530258889806319672346313460472623336667454338338167268769513657027901923125538667826497267538432177830788032217998753398685169100379731081284338981978401876770296007129505940957013275281336340314977902287541357753162640691474926821975638253026072322925846539639607523470399072691819313929258321947912932459949179256176608069749474967507728451199727505555293723821781766109308734022138209157502681662412066215640730358716431417354566870610842999891740882603081285434817606127841967514628581646047466561192302410840955845906553844983957244533938239586365145027952248032488040639434256545079371159722419191293654143444090575826891877485347165581040950977023991810933524939440960337732621144039925497162614951059832973957694174700898006821103805144667355230680906822765439000191566355840351493098127629861045806352676644246900004290574549105537103730375884374595475412005778554203257050460870916453181239092128345941249313288480883599833366889447660483059112770829312792116399513028585483208013095205107306770170468429353425624053902154628453210678363342855769033967020645736380850037269965405061254151601517061467022899548473761466532370323497178788979970104081326596664217882183690269092477536509745802371281323334649855149460354412264781453295129286727302162596383276413177158461434037931472317071974393245302134031540581916151576902362973931202764744200319197656121629567581015585151796671830824781771276481711276089396982319608911592827916491517003078717536768444876676150442874020817708345456825305872596311530556829165742163755987070049643718137289838772909748559573599228382182608844906008288966307446692129514200428715980828151931154513693479194463659075756457926553731460860298114350784828364682916878633177012334223440843895324115775021361101418630785850211833527119293390460161696201027056900087550522425894499398834372106427879650670116873005497335801361582858406076071676347631519405659328571726311965933588043318657089044969541433889475803661113539423064427774533670137282954286872192313733786916968518276411934723644975995751798047406467814353762465031265115287655741284674550611847610609030901493200170439270784126443945855985385813574639885580427482627398113458138655442618100441125732735256583095649596708660984163218723159518338332790253849291097147634320609730962060512673801827355660325961516358293353042286042400768051301022489228844724666297429099116295073067585587295858872483512916549239302569740552035845924236566133209464309352698110221417936390708531764645783954728802359562015284783907177680058647441449533017232864532841980529051904041031190310132409688536074623035072465786544611199024915934283737242032871490981047309702625790344614881972863857655292379499134966486414189565710748204828636242978472072014321227416980892046856884220964814121228776991764568153103383543121359939375923730465106242739390387997702771443527652138665929591909143682986697491233320017950866235614637017493317397404451497571818416493487444034318932113017529976506394781578566523268803107630444596565678552773785433011267751977523683103225568478114039277103528403238926347291170734442761119784119682685486219398042951910329954622311703074752794619898448519344019469357974536137611294866526977980906266470627615811010032395350984908858338431371827680549825698706085719630370394214399787593743286493686811081409240730442345330814681242721667743248057543026531580223777639336085888845316943216546787396441797081832777622767869912084695798955290137064196777571090665041722100197064217158791688772849182869735635590139317872707676555068442016714958022443110841389483360433773406073386380401732693660533279766733301830329013591848134708776881871687532524719341888971846153380001837689814933355688715623113761687213752360349650928103429978160170724060457414926788630947416571338598853896521440540744983396603544977635137147018862507269967626294174436512469156110352925640766233224568645549214093401736802965696651300060668427170494228194616675646228269239656718726645023169992607246247942299826772031150162501869911090959756125711122062790334917704797393556650557951273774961855102580880191088841371931053980106003375554241020515021043637248294952952658269627031864789625362811723175030925669067145341783951898334755769583259664787137877232416580983918669366027509986482000409717130969242009587743124755380980881416479362306564368756294097987395998784001934769326627766468914115179818507182471202917835890781025873605733748667174795955547854949277753240634030723790691213573861831439805871611219808837976162930339970943966770955241870202896076451085873492207369871185952211696103913090097582317619245444788549702253394096984589115325799099339099374116461512169560252491732628669059565680950444351075869931483517558658644714381245132649973087940093078759363551380677397919352748906191211637957382432694307421251290310549276317269880324859528046716022250539861092049370753769013542750027001193965462090564427624278339933771089463137623971784422301131871629214224132911793100356092286018374049985147081624867561514153700008365142296022661447712986168179864227936096132741894084898589054594542210530453001058287815687197297831321217377726461015929448707877067378542113265701478181755176612869335599256000784413238544972428233322717210883767881839738578699838217934404426438044190739309367132360069573079744178763041924857763984406021217338498976621107630018129960860818902672440547786567927219466779410250680005598867375287707805052723028348064298739719308738260530651287522223816068769762636366180098634266592240002341810478015620999270675110520145308555877019761483210309931469173164730256765149348794834002013649974982388838907430471739705083077796841744291890259989568716276093137188842418509846033588737489518135680473312837594896791541742989163463801930360044469299935186334114134644446961460592807619813785537558700671116231600275035665869129247701575970583649487407912180932521904543639454793934784004387117666926882868890265071714379027048110401229843499300360417946070679803040449866220137953023378698900634729379910114481601957162428973199239196818952212945219167961550441887820043735992982658361849936004949160550631530796804413600668382147934719265223410004088233603683238935892319148680422590678953538808277114456380588050430785606524149984160756094296339978846282236236853396700622182738661505112138800082319638814463858147016063684743947812423105600205161066754293422622511370802586429266329510762871106380727348002423928235596286205077933797853328543045171806403309972564124292788262040630581744946736460769581801679232768754977773778155285475188470570596380998997590638242893075341720518286917081893000369260353257701226605564137905125622001104403642597430446538844043675844546011916159119513750486454932916641389224721280896158522076391972978430915409895393783130573627237759260688097868532320455615589303672940435321780777950477112700008815989240937118329867856055288209200606578954904773020922564069174064510450896216867354400552347858930095548148884688785922036837599593379556362116234113898918191238657488148775190531831918902677854640770790336825880431981191654431323679830707682184459942034523779096465400191219712572976787266490347988494821070807443407862891806972430671621086880003428921184088987126720171146690014954016842438645387584569414786718745009588062895292473877841109084787996022915055051600981033049020926448260995402978281509287802910068622615283298582583774533225810975527626155676926112140831908224998312006612060790086108664468007549492192756154976677974271365406045940029004592014268986987244143678642694744152418377068386715747399201495532615013949244142292260175382550862247559398555277772225300450207872363505589214118807128327405324721287038110178828351456201468848573582158602214656732321530493172574514971705472023688171978030917841560064624938436386587430722135023072779621488903183915812443145767682047335112253753822312804435717829008269913292922293261824116861336823076146056916037366985279848490379349446149001757355765240236535405436390384663194667663043600416636076032196313217435504432042438586185366495855616873661973442338148078589160860771455926037993119561143320525348439009296701996389419431720792707602021581486055760753143517354507065723292845471732128405647090662187747379177052783169444502597612354716538290652816616289559388590181745563381298140960656523467228560621166595774530506112952111757150705650951690095370226768671104840535825281821572516621605684235928013943348187345004908448022824673917362843978832977852851157061602754068408132505633424002043259044261507531041954470135183261118419850610718711464957413728173854073026136827150679191287319514518622787680564363897521486759397158233842904931591854104069626714502684566225455411201175269060406649994209579737024960586927722673210833906650615990597244223863761025885819815279028230680922114005548536364048036903103306563628239657091328790143765021071989776367274206582614413911135159160819507796847874734404090803141248028917633195288017962609480976827628360833319416914032470626352443546346192920789370620700224350019557470918885395132150697381708794575734687679265087655640767601216828014038940057930307610259293077501694079730086684821720780698970931535139739117758844969684230305085300487872883589685290155051145143356834529716093368633509627767854724985158972927934808408129691002086851649067923394814380157166960424987826102299500953142857065009353235649531656889319056687249131051974828122648459004567441396828750174920705388555432023897943506147966114058669141619347540180823848804047851075334188988727440247048625002947747510406639275311988087795323577775293114105764671756933847192250393638937980141583764481375630771749215524845017837874804931523529430962289161015851902498025112528964090569287812946332698721812349067325173514734010002371897204720901263836125550841170311814762668702635861913497678802819687873553887164400856278499343525855466030884408711498846784544358296676446148810740430442961169967175181091770276532858230752116647189463099093842642071874997488425181834623008227073347000188732872685990249391633283275944951035079412857926996328629478170066872468036276803734244516947586732253302298674165826319731710844300842922905795026487812423546461990916694772908411325902730719186059719206582189697310843117615715601697664111193984873480526475957418690517567150087974239260402097196020330243571713336345101519078230484706067889215797584248686214491532922670763375563171842879798124118552272963064219205213116425550604131033552210155936558753964914798740245918713999232373341770471555971046488230399516874153491244070640977747071692162496685043055372907702118996648981857746958994436915445757807079918011022456726514411952867398125436440308821090237325507733940690634350205049798516452741148778874434036341285860475763303403969535344954828152509214882494632724164808262032284020967484499183485492413228511849484814253678829228276092553204012377763475256610082614978979146564450387077781946575738988202688305148089251491981304451644448766076304220932823383802833576545342261341533018849048904314001935061412386728342598133654343701642127461822841433070852111559115854545278310803643636099850982984814789110576790018267564854604475012777587579351010329465499836091739376742551158715504035717233299880394639450617460788318754948754107941457923034056214491117194227909517940017620357340099734270625520884203295942654218842026112410767572930629050125105248179813278708623893697246033523995870476635999864578458119485159031390613110104971003475793195703365142494826508733681069274453400487368775139630389969581298032790990446543006674132469635138059470112331673707689050007226664379866788638525324554951965906303923815194370534536656490511945458693520519814742926452905892508927504730202238364387975827778197543820645579376225446210614736075358353324962907326511360393926344612374642433692086115663108233081931667296589819017248784630134572168841048741084410064827014660894454638389897033363286074881364299886683324029711699239731660151029562045991842463842253843101466421517174091273864016708875080057447875272200295605797607330460878687885255330882334327982401997176661132894717866124262839938657332735299831588591109434880734625278420737727347321770518807108205932737867361814654901513763099406757216628974633240005452595692831849614897770383056521776896130733529122563714512915561457630581800121602848269254936452341458310886393692967386395580651144050620529124000632135676519200574502683244317704170635080995349990441967997866402420044738940647957219917012937822719252899459162401869855871366289443233430986752877730045353861913622570655901413937195673721494162637508946492125202979472878662897022193835470973726445616973199380578394374550101352619028951766552217777798291531161849235048763864041275086457524727567808023746274118600939530798727657487964774558288158073560822879722341128754090512985998575014694797453314180320868805807704624160419208234294611017869414512210570557034122709917363832889691861990427032459489654544020696802843749288320692814682315119330328056867768672541432851154964508429769028556447089378797162356544305252370733595880687927642469233154122671399577422994604021260299925725632081097806450583649278315435543004108096871849566134101384756673089790987994682544220003751988500186393567851400434134156698191822495173261932418384642678702807425168189099841618542086738003815972411831996339098665793542497391031264189050485797964031260438598054082261260114617942050876011990261674191429410432799468132438179487566949910548325981487828929175648641257535629458984348386795868778458101469907885454637100186431320809948396620259481060435396016315109786135171898788466199500113587532347728928306805600136840585934667214857111099568930249783446234747357887106674505977299889135661581792481100815493509920149849129575766847483945817334856166445147537516845408078690767508305874385439056088173889565846875662174918653127392408412973544369944422215890686852673546098967744201409925412269466683107437394657848277669351546882849447923915863153700630249537526665508595967371196866294819042413653685943966799437993538441763783504224362932273593539646290208534415595177151419053489768487777168908761977864733214927172172862484988225382278637785372239434456897371757872122012846786075929444355594037877459304545669582463743324818757522288669425128165622878872109316035860350373373270441861180949178966306678573768523245760426120339459839990360059207004133729303081519590418606627209590396819119191084378180253479583026561564225950587555587012700705578175371679341633852345569693863932967188024080080222187047889223704724252658824423715707781077850190529967752671290662631507358770650402619313635909199216713216351009544699538858065983580307216494377272205840432774273234023294805942395164774333036622048357865923309682272169584819407457666565248697985503621357688736618302351292460812493582639446652140381073479961845381779131888596304552420516731018034868813896562239792975642985307276851818532131902657319629534698585280270787051831761480113111768883108569896614517969326890619301458202161980265004162493089213131661817274471169010115964242996298029367412275218423599368292379272889951015596183046985778283650535298053826580783032235395544606758366818796448076244050634407861787866114982178982164273806090452500107693322630285598988560938228757447436353257430126108378540735094119470959184563476174989404770848128854893726738776954109057898493503437962288846583232974249982771555082040598728520940786827091091627774181540192282355480291460502673801033086246838943812694000140033355229163005055953293736617842578646963810744131006639621476129970294690883600650119219236508263172658552504212449794145259955121985946714897080821600079457486654944939883387954283132258841744487229198721265042944210861048654084759511599598113898801450549051603368709076830097303123684438050513369453590921499715325757654140243823342638423050466642758699958907397529642769895424673753207438764718447855333925595312916654661645213557856305465836547424096836870430890491181840535919725954541129404451105481994491881461174211924114484121449743371791569915798390534284100723000628328745684084564822585517197027465906675352804455862330341848766494870616186183317624643425582546447352097583062751207615022483024030985082216573865563260278581996035613694569842142747498041630023681839629060278507887034613834961027066242289423857852619914482163480607947522414413772946064866741004670636796679621018523354120694565532412135151043811518672536272540753946665911721200987745000691947269767823819383568632583593281052936028545367926359375056289487643389001350998992135558278398287623332218660677736022246164789648895555196030201129722845267572642593665075890589480391931248991993777795926839734462841454700097113581624762546447573634007605333486690359069681751391790822593068049272188865003729790300020690006707338554970491735054989352729474773981572994050448865393865409174259361215202066410024070279787424789829702421917221572176989819835807221379569298923076120842013578509934180089290275006977231593711013662656024086241812718310523228300866396702162156705034887638440784812397882296790931808326754197609179676345557943898367005921191078620649286217188619799542901822697944101540400286452781859784095109523595129695565833652430872768612974384965266560782212797753009344607521324458195031887180526049261695700515422488750084700113729546965085452480521802538483230212746706456251971854006206019338620172777283329537629107433690251420288832311749309541450073291936561428925144206924578921666770990873470639862918851830463531376950697342329611109450027399488981022533538848170832086613701435985175585862134350378537288501543867490925402415408855770845766999849336162912624329842737971503895688683670927982243777568862413439544319210734233658965497972216120245957219013332424157380660340551709911532163034098492545831939421113689952477396663249328537729712935868304871613967157133103605174455462593738282290384843950483418888461433504308143252471395764446875024665563152955453159407989361122862172312226504395243744433716719107628107454875083495663272284797143955249468337432784352560153331800590488964746157073277458052452750045011893750141124706095051694491575923870736376940372017823109547862305454396637799655597007984528045691491018040760055876932995154116519398403877468635324255707770897424602506098448715915424771821086403713009898242292845927901051718057825011004189193251841857778083980730364390443345443044634641284884089023178873447661932246034490608217493745807077986159058589083152807845550926519746686039522940993162435059747617150595662105096736457372298537158573356541715812575889649357784367041668129241482764366222311009394877217520404338810401781578426465291818851736834702714335519767306423642963770929835827443480126563816354891282795432724901916404517586660973117460325715903789888159702051949493785750552345598423031546200145268156407784940969035656670069795467345350477662672091952480012610899627774943122773425050760991809024051175400784156408884223325378973118262755127756938280529639542609710269622572565861602201770064581007035129823426269407065987596517924821792512752824088163925195416795173223304811729907232520562356643172286168875585642241573992233210061622941290234892278166832977847329666740327832611521912884514362680402866022591438548288314962122818194297708084701159216685364123164974609966102895517747246560896654148360237830386669281906389625300348248896621093798712177366060235881795383377351219326651512740544894629238697571484052673285845077711112258079455154256732391473512196135334854297954815145294980756992732207763763540982213564894623197101798475173398894077809874289158058965542725475635136200715737991180170584734168702057819409319698391343228169982346303598366198284120485887664491591155747620280421370923838775603363499233798111147964319797726978030120441314618825776726105148127168777679901581577961132682625223819471394611999392634466270864816408071655637810559647316656761736467941555846611013349696047278676104649747432613814180158357728582062717888445492573581265531204238848142433219759477492347132251437808191795092910307008767667225304604138256410649632543122266026054336571309748509805556378319019224217582578996164468063877533210403299281962714808686928567442345440308796969898030640755495286151302626775458526492004959733485272465291897442108497544137910234269625758241957947567710428041970364853383621806492711666518880828508327552817895186171849243239461463394025055528864553376847607422604835085308069931299442998488166699911259262995148209098874659296433306854373081612123655601816632650290120333545033579196313422709967672325338403760701822749879965928887876228282279777169201342079990848452164472635930791833901059962599256981492475662576292890061244500513382750339488316367201885454930231134607194917469239400298205322936898265355530185086507675500040161801544508826839858676180124252469319385426666128801920386797584054404728136015181561870373162403347523602081564145327852442583000924984371972923260383812972384108542616004127714825341403278239394337839355978711460450611797047360966208096194176378002724117018575538127210328427199232775863294290641044874069567632903049867663369982833816158789981668031002260476721916165224714774952871831991105107704526039530301594044511703195155197808584175763031164430423010289569020291898252634696625053055464165276594505678594095050018225209930267484508672903530943040693836796532482421574385400740983278824764657518872524670476307157271784174012118203394215491500491991390124029523527726953515487522090323679337649980280545728452584150958335054787079647446322151512429731662408117952428451985600462128999578469493441874180077729690649277834529126708510072140926681085939668691426475359073358082538762922902539623859496914400639121126282944537644138986744131542720900089104696751608503698575850393122143364392929362577434810035773181285837529744916841190263729936432430868183673858957187609002211256093284272574174386598923007461445932652212555886017524968174701451545616195430808008341451533927739323934001608405319970902147418372750887821600428205991895271150463831670587855059395702048821289015432352494103757909518786223078570446657034456719065782635815404845970714898072546426770385048758333807791042376879592136633585458754829080594282114663636000509091254306985586623917388961482205937308515473521525719888563781137440574466656704216911351034689433088220044126753093371731603295590437907763940460658835066837516535090217235094945719978419342679643080324183241607333829524130688336657878642043100578873840104622692571565497064011575785435632433174030481765938206081106947935569067352522740500224406684016756524192388834124626506157999221269614176394881886711887697846248224481163518325165556315531290399120062225835928289199150081092799669609886042487856699447001704884855778342065276553421805650251615393784578057079207877328717296858278635514111944470026535790639025315818391602431666500857261902561918044433501505148116738652311916899880767255053417742745718068045373596526903066593769376240052426479105607494356356428047735612233062700366610481571984619283024756468776211880140253254786176071296211474584675574040900849329415969042351644562073692821498440451653994714380686032192757460162759469207220951646360485500104609958288907443107443370709213393875755107945713293444278374031668661979504693857663619468870601379337668073260881087807593357986142636828635575887185216271635941154895721325283474328085712875747795499424948622421563765478606792743632808421671083111433792996301912790872900012327451604731677388862365549257816440018715704819651302453970820649688154472601837361145142192528494674889444742988877926874161991435207933430566590169242000724986299837284823776035691965819875454979439777030982903107460048644941888747405915342610603506156465598230346615957279527576180577263697603468830261515181997726972713600716389591017838166329545220914987214225939087468971288097647554842718274821766896179849611809781507656427505528551435164637095540847981131635128899999116839108263513703824725803531815464102363853777062630978258858975321556022511352506396090307761356134963726952526415726664359182060910075893588748089949199678298057385947410163525052310890789974585019440384741977551387799841193972393322200575735480893454518568704843697110413358295519739599379374013707365054781925556542102240380989864746385403107327193990102145702312648099494446828240523888975133161869949750954483404930337202423220033270271413705960261850858524706629709161674842302298452039378748390909715724974791343006920042456422972794011522042683280164260512203578033433818751157412501426720438277228073287159686291973424414136434248379991361960460848307990355222870310828590578043072929113484531825627320435605158176448200264721071815550657514672132514704699880011789505753066140540722504838360681020084366068083545202208966001237880320508499188904933406927472260145465664727965080906585797651145710035395521392195364504242178981500821627488548153801120927916345771065720543525696211317928623145767959313484237396911555869814624288134726416454188474485124537336054770403470237451124630237534828528532742431236130639220057877442977194660070908993557856912573939491966642111969814831404703336034099026324537574288928019352941417844845142085582671435347139483427702747102386628641805042255288269987800503796700355880235780220985413528660318277717297889605333414738283200981056742447612828637413393769555185597540737912778361451292325228034039097645176328522467495941459276137314382708309551979156351349216225473808270169630606207739122829160791506498234510382455824103874019684795618805966736344495696642485545788633592501489232018803115699585088236932357041385287951533539177174836733264088372460402282012976753245103179753656702521595373705898250227234271783520518731564031800262626959738541359241229477663381410949266484745284683232296881412388963287524790283627255142843996708308130302868614966624029932242143023508477174339326491185873842752798095568619752075931737695840947592165517133852015299118624653686508438850298950737825615852924598272603754311222053109863698434772522061551059131665630856735259957397487844028197319791655538985633650966193384626017072047275195208992404046563542753181696427820701139444448922475356373344205621861839474882027279644785801087154826768411726595760395537753514824053893016499473681573845294509654710314372113884470173547493321659665825984729054487941545479581765685986164915409341242899529547735594246156359632531099066207913058627996655509915226438155478285643765705676874476539460852316857837482985121618064897024483982573315738981613958772326687116900843730297938978706934073591853705303023205997026566344808516899076605819372578712171700777774072375579601466068134751332376897567607319757342512258327711922553710160726676383699372198939488108106484101798059670660364226142723399547509162933753867573040576419882074900833504030442744647418222279707593534354205803114966467727605705146665048308481637097913900199550241334556440499903750477950035454791344285838645961123132169273545616506548302980797322191173697654191444176520187436796632195766774961405530715235686171399747291425101420306302124508331980207657875201714013044921866543461377280922939893333792133872485135666903606723319413734086227267410323431518888158398921409868765934346749173313506786950360090257745873264908524890694368782551285962604267609663678698459395271487149265543345960592059690954181465665526116874819155690385900214945170477323758231490433219383816895017587977524293087405355300607754544168299252070711065977494454529393045081781617441947471898326381443010332171693479965522508884591968947592335492703517532784647385620993133578619544145470984745893300066862578925459516177369935626499597617682745492877018919949123770982506616442369655245156618552977421520040714853312932894886243355611373175353121298243605657132470425815451535275883090430793938824437059400970009029520902920457260959412393600297320516299141224396513683021425036334288701690194823759211061472488360435921913237368467560331837426302021658552309362270903876716479100995475463649951548100053888952912357266807390948415279841288867651737104141416177850174826370563795125847506329245799882955629564532006901271440451050447803669510240290258405210415897599051555243997655497389486729658815795322783095946817306472922582135194439473467305966426801243969090500469999887969907088810308556457776780572530920214494872690940031900140942638292920368351874612287981895235163889964786250124575876501765227682339014263567061914297642381622834527462438148099849452783170649220865689373088653843579579220016966230805859975471262886297186088335416666131046327179843422897486811178131841612320186798039901133310343896149532173876751486629957594205547482156196787283461786283008296453675474235760769932172337884687162667092577082220044692142259792802683961665176455761961918561736698842989724712455299163502277757703164127079819933707063436122492285182200594335031218409778372921593791226328509157945296941394915585139971384444903767755045731100647136125422829121903697012715824724082664690641249678879970618270153212491369826586657610561097021412754401264347143795684333964335347954610015999284890475327475448230975824988612636254076068431990211962402079453537313415055611645492609385816230117789769089824543850919373062536561472719645201843645165400996862403299100479192012841077947943240368913153413282444946995390892268018691173360844999805692322135284614739933444535644487650357561162844127650979505528844378729301900076311878782271909680111400745132499584246968042652901787771302468375615444226659261817933043194170236797571296829061335314337629031568949084643613013172249075476592311733118413871029545477883399302217303557430648289507057717909970824843940797410304118096495399658400743926325429845937028096104640919001076163353562455738479607742197462146726275088180618329573747205407253439149896677310095437087369922764582427827179935111494120723608724941366695378299910467360021319641325711443600968050079581502681447563093592961162091201263704312879326521044415954889961615020622915231742788974435880246892200089738091005925121409821091942957972906020608945970864745614818441156830653917908285820489657898411210120666018581859674415593477657534494516494150720007377916522705706648474457185788364381179232464322438248604469330742828200785383329453026827008347943952611968453941867922815077821748176682888314795196653052130870928598202122281853705712362784020070839525149727550995550310870751679110847929542526704047943440479769520727019805976854407190111734873209300590659583277451379218176290593949926931157829314704950919958744371993891084163623190351808752414999579117899651883696777508601582005565958686222160585282330154292951821118393834017494580062572354243187919657473317878952862837825067196996794455027294732625247728008413771280395663384159232937712369745829565820553133660632380974975925230645991834856090065259870361048169660530739747948616146528312888400875817282344373650814478219744805320545898787208206997524889717094720608349730494608838133172102024011639011757518852217620955682864175399464352646135556631959897958659747583451162260670319773598423926458580545766174065934450833492575177729849339896856748013404408679594979516851745987132743405424516420050447422763181340327375586703718323762047967771780405715975959173894787890810329849182653834226248938860562879107393825308156445644681082724010770321844596139527521725428481913349449219266705048628635618105015329152857563125787460454865833433060174874605146376993677647142727163802602984666596929620710730443092923825114872528383206059936308008355239350885628995888772241665828290017026072401669296856340411531677896234908167366943003850358791923682438198073061984696567440217566021674804956105649406546927923586709701116015320115468887637594906862101622732234102567912591130872130886387876567238036341013794602224223110623798434891970908301099943301379009231808919726848905672273720318338529591208428574923792722758080077426960560367216610115524273441746878535976289907911543013841773368522628182284221766712275594290271410725743419349167861194567434112179656604976850841076211735183686972900776239448490780272742457165014129509654158936325243787063277876409258106430098299013787516358303424298705730436484308373814689861962792741743850416057041294306569509581794051968556063232174311215187844343028952349246372542634374545775468214917078379602634673133374086545926903090401605112649672689049185485033363150169506168629265583931288325919829211466155860974666259228402171169186870356913817780577608512953704259874562263170327243499227988097376700129056004576521293294906254908981196513230213119812896261322164065488486004681309128049327254798424195306483067579441629202625272085251036060032439552200866352929604784640763740509550365168599491480254260180753340917303208780710563230734022262712905127617373614312780831550426012409457333625999330159988667075502427954460196070349104554483921086033772072314912124132550027086573991661618342762845795220004693794304366979039665547317070673215953186374912501344385799051596609971154997545637237870806560879348836046972315088178200921352740062240602748647531015763540802564353179784664273701984796343021209445287308038887431230391721217915315218100168658880361296392581015785460006682900026599085491656671816779822759803867675666357701535012163400004272431468448790226763927931437420788872916707024136156338185154392917521129989435525342755210275496919008130306906593178736776110339209332480256911797056984479376972873437515707345702717647848717797645728991022017264568551488310073835390396991066115569012930581023155198246140085434348681011460658779883688046451427805597210044087215920747838955704117761045965732597261134432895399487893728110794578568888765542458737465401508722790439305719431913611843129654911115518937678719519535559308444675621807545049009719274588116157033336509752670787161484782052542315413779407897393435674395231969167200189114360776695010262387981436501883135740574688577292806563275379240485543370812709365580733768615111494339269197033843602657719579183031561497805633167670408736344639046096817430516787360545294786331802609190804479390966797374177727338993293903522748296674255164807878439028057167779012681165597573424400793243617087920339047624034419471748536844673269571595827988027270901864359132684792042056714679401601129227617957721051250874415190739942730665870355396041633989425270402737336038627539245663529464408169276599800168515149730999178996107287711827313957381248808730672986160698591926144494181701307120460086123323244100076548169604513338845232068956785256667809779975881710057601308940892490844950897839280339575416353520976347296979248523079929934906928595728844194109644190455831309616899141585256924252811962686968598395665234543610315343123118426543868282413501157861086504541733373040489907378582653070521773964107338032501379559938875471919248403786325804245224701667553657836052593487135762457101362493137139210348180682088453846873306473714419335447600351173898867623510249466542697400742148172025737289020928213116851508589491718237957828595895379005011945240097467786084835599255397019365035093152787827421069953962269448179916517874085517188780573368752362429984215146902210596372663461718432065822598800247725213236014364749840624385175043700526450550266505116650689797016345736149181838986338857254135302092079058730657672698600505741718529037760454613770250499338859980001551706404355648386701088066247975073578909360816442244163963068466994028111340895411130693475978549348956833279001602544529187804955175915885487947711192783468807519054930136215689519198601125300382813084159635643520991265609616833303959193362811314078109430742906304987696524612585425407472158496956945462348306447381643563969553866355283047237352307337462814910668177063777288188510823842012596324190324929138829487565957135076889643132432732772206369536527987844317966764205749525091179911468735263048072177694456222112509773726707417921320713253343166381707909644397300043799326755122173146490990137939945868869928326733979216695189377836551079642393492157670880328071106206109956689925347156379322569045882539882549675260804483067591805395881380821330191352796190591351497735765303474451852850492273499426719004728538198052684572321532059128809258491635077632269334477311329191865287321866717496998435803537950002731799681452435871411717242832508192605333395882545982558873090048813578557738580013154496690221688372033326295731674290289818845915322721724102090938210328976811273662436162298113435675746599528402288540108984946271917797173099796683560242563688625725415908400604899343996182930537413938979845968371988567012620274752410138034487238378215715798750507346557782731408680854070245719765590219381453275067175756156025497227645780001206164290054963792723049098344275819661178172086971610891155299007962502893949775568747717622425721629932099765478742977298366760236463392147286088334543709686989864694622678037258937717157272798702588612505940232770170051101834289021092042374266125657328803394415342040097467299428294531695937827463583125779107446133503960120314247822168929733859193576239788394881697564397143083192237917987613265403709463223889385673801923185940124337445227360841157257010314416621663354484422970373670961854602526466585750712016030125829897025055670094002762451331124784326662115251369403914557400384120474144696720195022490360323722115400776647480624390163007758498001665054209957417777106749831170805221585068344960294582688401785141223810550982054474844803643908556000155294324298513509046854954599087843751714134516367303133109907022402623337910792778221637528277355930134666558306113290249421351249448303926399346504811959718625545064101370873124374388426154895966623701083956636480419563192608827163069333697009102840654264218888248007239289771360887780321982700558315021484020804378146624037866134567440906092431437177157409573069278504641560667440363349828007129565781129691674526563083069592807554016711735115646700994983133075693086908401114461956381185589996885724161898183989647489462673373917662386204629640481001896243364905750909166287697684915768357896705887522516509704844182004212938314725721223288405305369556337858847882943212972781932986079927151334231915410364441229161099346403993102097402934535914890723926403683490904777452146200733237863864965508058701214588055160447502083772115718587543405551268187215654972065273746137535790964314774232618930133143866883900173570329038899581868261784087014272907006767671805186524101249844640477016933038361869679708526591987627584845045756423780357624975901513633115565570547870938787615587810630993230470512040542947613869685786208440102043385491471756643366997253846079177081766886831925746963629920261714239077537588456899122052649178191148381446039360075407832008697436856205209436686490335641743387073173023054855069972044647553762374910620524815825922847407539153802454597183184953474340016126150843710472167296135124352659015959925539486614344884604850225220613363763079981055670499379590284246646376953705942816836298769308070315565284472689904961489999016694786582824840787914271279299953413073404131916828189401080244009187154680729882369430735924203779979015467208675315744394448736896402261427248034755900333985044668902336933404919315347528695001025833001679972314989883608146808661538986726777539292546910635931795381000375172352905966542888324217515787476803404908940828271866746470219824495321417461849817970557968579751024816268946308313181901405566863968642575113759070693056940547398101121282410436027548894530038586503169098757003626510337841572282300442736820589314529067233029757138712774194219984607405918877573720646958414098946705055165387511980342848867701644184046168255974914642468624114611953512797826157897417201941355695448990422091365143898762112315675894116284791473101932369555240153072304966697785186011076644573978658315465945869249325638984225195128170730150376775915033734671614570984265032517242497757620064772177101380041836891606980961557082783844697041167162980990850171616338925767025762414082742241797244288851789463846705231539231337783984712099835681258507429468503831425961613780537113033242592738583134244572220257480159814992640188553026706493527666436462764306757180415031260237640159415778309378901307190605206729624423956282508050899372329097188690625132513738685612760547682379812210029998408538138508061603856602607365887573591450304708577921728097553239584769369481915926474880430103022617632302273538220071934535996091804776756016075994157775425942772568023289584178629622588242532915749448067621821662773109691319259434813788272070340154250795966822259021641960912523913081956892123095475021395423979406164623062490697477601657288532361996990295650361432495385471472563126978074237259098374384583884903495957498469907035770014650398859057188071165170946834050872720136893128114524203246844092495184967853026398419865948240345922553909524694394059918038216144805051491558079521964219197077392256197641124650628215448419030158567042105100889640294065047627269228057929613021251517498290842078361946148562038927037096013600235331840418196734603778297957109220555815874145878401574856491799597717191470217123425182935936648102757296848698574678200917163300163047160290209361010010803424731457965403707841204680461317992957418708287051602991328557157476110517114086840327096501633742098887514338529316634909346519042287031586204344990127591732039931615545757244218475694535125721961914983837456446102782434655468798052824340409231671395937499217601716167472650174632303045995621048107396213517608926556122341850406244293580190491764251991460776034197617615905926405410249811683497034148666058727605834656876768756532300740984232741113206111680470318518915548300881556611747544080656668848053259049415404102653991384355647592198967322594273555839388785367322820595619613879778415639729728929242756791585291724629101884541766227265111063623848470710270243159353839200485065848877935831716885470396326912359336655861253528643938936231511449534818171233913852259092081362374536071932689498871630258761146765861869782132577120429049225645224310626143509881414393451191714662101612097761898524330297778288892039349697144070025868464703662668905167759775817127666792711670922499994834824017427525073162618225234481836473974212212388997856434700599424477159350326631986595983234663359653938418202915491537313296269899020347240164419151439394222750581220174412289369484138513674182271487224009496843399860261977665586416227525627199362917319641442410927463126377312578612589379394495308442246134297212952839839427790807845600961487916898044604711019569234368246050014188467118214732733096936774700275749701620762818941964034147743194698520113335131764985594855710905925305845474569215819598909028512985440627635130745720009727084877156611646797808617337199818151090801759424499986200563209630395843816750226952314234108119101605111891194469047070025419163385549861813826542209423764864956754705158958177200464171722736118519107834239850398848351336155820861526779772291608419802543814203594309284824998230464318455520361028058725248911545876269071527958998841256882293605782161494402653382453014506194260508571002550061963094304843552935183534448480684617861045318055432486293800979577818085037616081253984307974927273504021887286064417614794674769631496324335639266538192477973694393931575366014220884246752092927196311424013737025325808599295200982449238779429957866198913991978037761385358363112473407545964788132390135839853248022239301574553529517521824846358733567708013390756462825073156276062398215667797930534611657399035474025561626470376393922034898666976775165824595359397724540789331196837727985147360482566581725572922334569852911728881103395135005180616624879658833498960131648259043463368268205166439528386268297386782211245135690767066523771652064485869589254328319077991844904271331832131013507624640930855608368603566079365853327467359111178357701595267751526059110269719698560314183739726320494660574590054918531544996530803187424500454110548993232407796999619222657899006443136055895165108983795335658765294477620649257617793581009801836166483077310919116034968010584834724948762861794901235494066811722041976372562717121014573355671991506463160153352331678723378702560242580331102644068088118140097084224353106442593750846036570878146866401691115774124744556366010309386268102208823741709240583008343624463787698582505491239030049870278737616757209202722849254128718258090144402774522647609230187629973384436130950924840088460973892612741718274353964075429006432736362583230273480339539697018642721200113488591661722309923308890735912831740636483677656122800916552659734245009871193862496165871454621030171451418173873501863410027617039012307312085530801136962464770031289163197319085469233471444282927272810319256574586665858244480141779916285253631447182708857677285689764676855619209366079095019908838941321269749386316434695695810770855800173814983386277176079117116014597668454865364013817087617947130127906643956016530327448252445356585403773485481172377939891279574560918447714016344770930984650263520172589732548264991934165793713338313596947911330386828406245616206474794893487927137690847095502405170988272371350252757206334289032138888211043653133600706006188300243397391374062255294020108647732226822719815391478094905886350452333008220635726732539938553122656096676556349782189270237152719509342796589113908515899603810556883569248787465914620096788664783503531713994945177178063591282423056282902966761372805730726966391612056170400547105934386169046750565850502464693675088411942247940736840855772219676754449673460519145758832465631642905699886180828915709752931821967679513320671077662974867945712933979421935588075101465320412657769809489943207287834196614487949845517351845834606924443923662043030194727257844769734712566593686967763344042646582068552118413801083498260066244015142467515343595443736348819858275491413519583571657373956210048941942100265568304101905842145863005011700707923426341677817958321273829164779059841488269471513895330241402422542885727853791563609289211475410680755190607700115554524923024960933055360616873242690097859263256634746728239899443112742757076735715893302551306604696025999600289636298422295463004255417578441735854771239184427898377946991276945497913014922861888470382486429911911225317188158600827973836319047038557921516600840478228184242924110902538416811798972952704071114479023763777923829108689298123199946659241516416729253960167965306550677819373300881674936631375811967575920530992228849510891898418165403766799658740683553325172098055901345578457399775266212658953568219579702372341732809020942649725078374284062021786472281084679629400705855768467554428671785720071870759193968813351457834420681740310274451959049250272070107347303120189918950785219941401814267560449164971479478259709784753069938826058213419929027973239355091495517679547135325997791725052773279762913380106066050710294283405292252238214712243789597736485231414895927337795522883621114912555970571093854346983017877801987122269622088256275312961835794784830323487590326002971078558382011682249372815019474810281486097427721469161862320130926882706149983594072641049090432317792088704150087761623333017586327310562486041449883651578548032264895259590630883618011358518075117639093631846817756952711663400767974666715310220055939138505370183857399403153259141041914175203259496560192608995398177252359473327395465778054465652137206974926192201048481885511992505458099181300466176528344187266219332394675674589784769036676721576820149413588475211323636082904098438674817752758008926355304050323016140108481354778800656563099454856953541490851246270905524438328933692281462643657054087244559464840010738640995058344888894307516989005641309199268292652444993998693888020751283644382685985706742056455252124535658262091066055231920696389054171228734200617163704832986309391904504038174162687583491254304031257905802702059464459894119639578845078676074165942518418181768196806521547012277690595969387693741481478668255394562372247215709036612501626308378733036462202283546475225091628325193498106230854388760991651743260858756271836796879088729315017303683785947069323477001896702358985381263790241726617145323158492888310609110661066591043693748819087821397054915400388206716616668998257105772915613079153973994719832833386423692206312507707109581078534935745726654355858308184468905580896400350563132801883947835512174401625182748096586632100910846637267735031396471092597335629573133034881509180643396263197685618331163964931220315226633451967751738083070937516360761334839405250835674339813497486772223722691039774159796778979053457014808712161842489772510050746031427386177380673564055936438834049318976842144504017905687142579433176077080579811007096299438946915916264719668705991273483281463860524306822357884126954659823273908760077742999643738677768366343451081638594154483848547283020060029980971256754020777197397104417448103650665539449161608932277290434532313954857267128313229345288147729101479743204474620291222184071096108761209106012647544819501653433112865170713994606406358972813036497418656664236177961411002811636207597507765071234092984928376864934668468027182058752163032162004391507618248212523392173767477235889774380683472594633190867290300134231040348128650031702361818463264130519723426458461006477030369897354412215449226437655973312123143252102364593303500692245757584109401351443500806989224893066839279654045019716987469305812167793170636862520999195549658899288372845004199149141753715770773516032480953739025792475499810280518956280572034041726814428195556467349070443709593825977249858827454045845824045414486447448088998969521272322772488578577181468428816131741271989458110266636471607087900847349402616422662280218770841931984693515840411873925292158392354627035154699924323798903158598767362013420589717426561849232530277063108841820665008553235466165146445015717607711707989047794633022448792681216073656378142679810111787737049058014766619252418268364817098558216563936580823923963071304812681679922614610033888197808544094410227031846857827270919615359423286434967816579026799894466786373360604282737686024384179901394209147758316231892517652720631069372062434463173359524673882942065225934052122848634711959519592656459298287829385565892758682391521230174905039005728223065978605321126191234418983399919611444960248268719379620734251787529859805869063005791604224163694157669394466684369961909550806819742897037337529611136648491173846105047701956068916073044328836420839354198667876750189925047241420346772384050163980021580384181410353072248995288194397715533930109289554232758583157521256022771152223362737461908010482642621086369092565636917573057662043034541584117475438232672901970491102755819606762179171680179049588578207701987459709011184858666680665856998667728518780025394008256213935211630163074745354678091414561266151921626053395615835441116319963931087244179176195732444900074860066808373405526935711548781981002035421285971189765064107327113117491209312289904962080136789695316644737913074923400207446552652313561122126055482333339323874122758977078491820599912415399572978620163285363451045002058957066212628496603546608599421968729128020889892079001050072426778075964444674485803844844660547589089146971749373222330209669738330591508930472502726772500726581688762532955773834148078404665809559234000990126385809375365067987582006194929729339507399660130471500167765938063773737552011824895872911620610493159713204502023507684829316104449215567039424943567152798136102846254465358315336616044944086391147121062258309806464737586581271935185571221002346376201658673452096718616917173174142273693409573220681612917908956567260093022917431770374678116979436806089784801954324714452026667933163645840292277060654886438154787988614667454826533167262168575167348503377215692265387896556648181803653040330361279110429516946076902291768359969816265429535358150530110366076309754690767498060525455234288021523888543065455654859136474325308553551065293979452066684331416482184504303490280971767322607449505439835296673947892764490430709950443041940264691578194770451241224651542719556784084921125531772241708289993849876329355276537481824292420667246341344240894366565845286514517040818708355964372996503271568914757995975882784046178646642938033848443613532529253573211582469731850962077725733303463830278925811770751896082385461492136998560019173839946918151964831578011581253453528260679260867332581195878452091960086048514946496953540557416601596728321263081683604039361059851970613618135152194937680655021423863072401468180923585226952547954213301476064802016736698885073767526120017568553218958610264322428821440138369623054701830736215902373064380819921550692139631517650424570857762508675944002507363325504062439703233460037260474091548098646851295250492634351227541703979005969007591279846899248818124127877796457100407671467837018581684628730099473374606687111402075015499945798429572785432755588294753676207207969051955513355524722834895928508083537931718969919667572209860905611976579744814503903144068759731820473049533617826353099945060514541261061874606698911715232666044937607289133097220232742186282977061820564537147316349072953073988965766213009830168644000236230216460176296328607967363800989474991550653677936142045323498675294839139002410333490643123645736901464022725264790830386915916062920225880621351312588949552779741307484738457609624058391766270525226324167458781944988978251877781512515263028152729986519010309031287401618207601166733669971887648753448710208789952904387437028424364503297220195987550399230426767021187722278812419576501270595873565698603270083270343437342918511167141600053833448837531784466797669977323184570285530937551998405306843362574893761891382151284915529544978151886037637121481125982497718624852249614619705526398289496906544725051912855149318636033697794543849104048814793236389245581644530353350234233580749705638794489206537755662833357982747845739156811425511377898286617506405555466969604033556095682432594875457549858629008684563914046988770097811269290894144520197902598702301843586509567347421923166280350944619043224069043647079597631042657174575998327055762233951184011331642274166316780901751685466726240111752090061772888557571287831688949577114191033190251596745233402725821838243468656021079539018373095536291587966022434140615266826679000755656723062897318000523068362869360811014212645212942761591354759076541230637689157540932693374352557450460552307662374686794167515630299697991300091784666664789501550402145420976217276313776152136858928489830226246611322176740145516697065456925189659143987202390682559619424746980608911921041660895639796905645291802110750534761893094843601309499618187496924678051054424672420669120297105234879441462742489901279086827968574858453666510615779666443596551442749895865659537435286259158794562201094464467500871632871131103028600946624845135375642234946945028666295312047226289017383680747120235129127639718916023718992562504944540629218635665137220891776362647147457401247015804370191029279459825597539180821797844280909672062363723257805873819540537758998041479218655809282244439934234439208247526769114090485191731972425581236233596566907288577861187033867867524586263778383391321694912347965059370434635737171344893179105201322062007712501079956662741275950578971172138517697046479780363928474805728758595267665525166935771292970927156921428899067601014012846207314935112766784702843092245518664608776337351960180688046611109194059143151062866420326464298345508889126794725412411553606381315952746328793921758732841543897912295007438064872975412971239730630227255195772067973326728481508756096992341267262301856568115910527262747548364608594385681636406187970899282835542479757868880528272875427210342084044699653153508975977425126766827558261498758958664130846409412580386945017129910839171487783597180052292650820553719679169933525919070017559419762271721909443939533485799490660282052531985277474699492791041099227848055871047317796171967309156426960847147869302165260960094397926760293352559321415665679507623620130808537114568798385812791801276892410898737575640675772646622576379513976146206678484563191683192864617597507205201362968709109188753223932856322618698321935148125462748160317919833740863111741688866274698919284623118795258898486379228152577507839422929942206034494686471232238919688658999376027629085828410001860065663705307876667200295836478892399390169937581338875563492250770147725408147568200055048207739607380425091103027559948060643211588344626892233262705598143197771779867316922901003513428257351178653322119429168933585046245456646025232463811226825581026900142133510233836101458070967545406928583686288584287145147253142633012777684123908481693922168940550524380232566224619661187781532447968201340281911295349659518565202685281114214193315767248481660821220471306033283986265383678892009042897673901835473725936437221380268931158587348999968202864769400589530561223320582320502241800713375235339162081395101607829696521065523199332575481308286514077511535206539884890265296344293355198593700124065876285935081618068331409790717283768565093575494184978754839328156964161096204071485275777247639447873563299733799497442967342297217373448995402263623968507856655379737267725231327748429408776822839761321090995856590115638447626396514017890416491447862216262535176983597607537352610122238292794437955728271346041229332606184688196469943554534292665957702660477683498825315009181523282694115518397735288436150502146252807910017890379663168248473330387372412586983739210181016595954902604370759791107057820054289558086982481701893318248840125083256784050281311265546680402040935249756709781609862525584552017729535805888388085381114859350645658517186509669177100430778629053230903632315178489658606404944842506713077815705482908790651889530348054582586505666270470566036741116588261809795274193636385535852457103606814274384726464953467497553954098092725950489461506472850935237032073810432315500029958973927171876307728241306792165259561385849125604865685582038237183486083254698514076634822086634361343376547877896183408765927034872322820181925027615248071556879424339307134135620182224450078899401494124956439251707425829821427736658394629530730471184396201187652859417440189499229598909180258688646055475762431196208994615956021228243520825735234620449654542781431089782593770137544495604683022233028127693968315619004978488485856461980925078448490427654215184528212517458647721508682467789227786799997062799560849590765115479920572552663228715252603259172920405524834607644442204488175357077197193003055918121670154349781839077254147017502803082350288885322116708206256816845032639164352187711967876956644622807171274301932755946382258379537775439855638969783432228160504987613555809906610519312204276636623666678377309456593099055295375300947530478736905937185454338462182823519954249121655378180442265847457409763607110963759636162536439300222743457932258132957936042711623547661167143301202728149866456272177515801325055001430956856025983389476413975265764520799221590748042346744214654853575972588822741492191040062249558695903732607417942444254498574939297581753734208239795084845556120246057817775734905250461332315359849839408094175949481504510488035854714880176401373892009348684916694279466075543717180272582643900397733108132891713377398916086851125479240208164722572323828788657753862396840577068524766964028183803379246001961250815408123713617626720362502529795027273575007982964924106806070522084617201760963599595153995648070452824210415285291743358786693803532170748376425126195694521254924651832125199550294791438122366470907871055037928094331257059191836322456585999646973690690178954155014261065722423413188785539418989885634440627234795636331324628192321907165365191062511491086234579761864412662098385732819541423911856113629360677269095108044804702698709140309258777040507649638350978890365180323278945005957266616132428735518344819004474805867579515995217549692629907859847223128846061824358707889762650502755327563313551751058203202388862015597267099385910248156682892577564888212334769411281147356547625505655143376529576762667392860838126125986444933355421341577580970818329724610808805411862446056167058375757120176508527072733252852096091052093747431167726024426538735908074981105551740789975886187059028169354566464065278277074207149872793394022850959903756945001224791994639964871625450419382341864055486567512342240871742876117343255803978194833118900095762397423443932742904597119260313315590212860144603644093552599066561079065063704820130341374749378289335609365429329635299488500977836169529077996029186045739814325863800644953694106590024286904300159058473963770535518568992548709045669208902449717901282081902351960445041782113544125147570545324587672403455563259338605052297080721313643778743076633535126895031503489386958240906708641439073688863041761870911874522983665960560241661595074325755896939225290089394364331954691292264864143206984906502685911318404564317893918013522567587085038503910676653001380658463362914007936610640266753091616252847009604015065778045642532127057160423402497413122537164913342226442522894716013374548340725097969629860711308963024056119389746074193024469062961316060998924087239482155844740579924457985232103586636149920957871973144016322533937097521132810640486379403442793734301169825431908899296593833943554973103159819334503148026257146442193559542520224523925385438084786301843487495265613091808333352467971119046520849437500908621725533722858011897364784384766046569444183754058804602186169875474186301161875714440094304352508983322482834181995015605712024469645929260456817319446603615466010048748638581426162385558888601581641406044356862327245488044647801540123341115057720663231750971660744254765622724879347389943417043237149994675525146031180258619949593559241470051904979221836806868754770480407155173340353642133573927802006622177197873465520843538679632858714243121548188423842341176500754949007476794207796037352605354979366333920801614220728427071869882016943408186109698871870716418536552620197970516109467932178904583312253852305740455272282877506948837412494069513890968883863262036785982042477926404467123679829759234630152863986291557757689672572816303309102460056731734164716452532028922584349767287008047757142247821319505353797217988340820023202852495607595255784942618368539198680425413135579171530069062446934030708063125112367633701075233571729448351945761592032408815936229921367680940020686951130663200428700406437710616747785821076846292057030575833619191445082837039924345616703413621981563450082684809892252660833119084540232085381652097486856575841733122447583298224251886492828971039919826296003525339347312715284116101989869220073429083826648637337892625048123161561761836488154582953439449994779651226630069850012854415873961005020934414615652376693094136887666385215456039371153273786266837362629191912231092262985783265404897867686501944122235782026518092150875682279437898187403097025815110098914688642601282276137224191147745821948227324709307379303415649511401881960740154902248625285673048810484988254050555473648347472134130924601112796836042324540071896385884582394826359156823218519858251872557716374509884406063971799664553664425806007469161462691493472392381305407906982003073337958823293850167512948791698918627352712062476216247126443578169279807336554523950893546833363601578625270795724994424353346567698669703496707248919973136867452246314798122717208340033527778346467470361608992242372894933288821283091499647384555910814031192532435671568698392454586720181752711508112910349894892704154177906625966944432615605471223838448113441808810798078280131475055828187500182418187495271515950269402555035383701750349378838868284710885885053456742993206585207479025488584814303231068881218196833750523786463823112097119435790752238691109346234525823172038257162799010039201058037274794250803076886806144493948599248886891276939797585710004419188501983738706614218941635024883097234902872133680611030291819392799967439802816199900965526548744231839226175444826947642856386968378660467842435880211394093421573754859044195146676613751994434477029344060364414373977961512862251239482186748565856514375274241961844214521950702895615029811376296993336690243666230918833480820575432891319404717584190010235188627516778872951783494484936388669756602277085785108452119627777306896772209429646616024872503442758936497418579072217758182358126194303023894036235400884136851129622713379010256968929484107361869732988017203790426806454715853807591299095383662254627923301526943731189851860468009583789715898226020736998905139131887244679370143078468853576534405159020566802610357266637930768211285156137345961687192941520082690140022811710558260776643818958316759325274293257642017196139827223726702093092453807315208464283287561147834252164398406420566642228230001999919035386245058380708839415070178723933546085984440959315244973356431219378263499468438018347061915043475403537287103131939621377279433909445462437127716365990702305056119263133602857889047794065170111575571292318136984204271242151077427367696312569886807029391331535165376045884791303557846981708857484557779892260694744375203187674019275281941190498053249410878582109335955059526293978008729682890995769596543276866862538207079574908143447175510568342392099269186795139911388103194606908850400988503652852403512537051067354586223545312017662768605443217284162471791156280134861360564760913712136088899490765446289405017117713378534379307857050899819916894020014785561001436511428939045391225942192562706249390755260429288473490394940834311413596434217347795459784303994743000581819434322251341205154467432678803889898707026134808724777643634023377851524941439309930535839843969131853493474699410703302121624167669435294698093959814610932656077989230098920122063862116372976773940011164665698350657506391505033453515418598260662400140094432729044563190438107382774566107256621833669552240838659860789357125834371043782835940476324413798907313714443126803912619545576457096313948664837479097956291000962390700803655915436043765045147778261470228431722639179243999681037712221677933925455481508288954500810157413279574163093972095480069431741305837952612146281225051132185209965635632930262552117016467487562146544424447168873835201518216516529896419327425974344319653355078121972411894228563587137320806131606064379628094974776135614102230820950783021236204962803124245788983285261010969860204211671124241939842578265059408112496671078046791580202887820351980179715350471358846941813565597508430003837192342172179103241473546405531022332711031127841970496621839426608700986995167396535928860156012973905583917760509188935945661159122689949573958485346022964877198688288226755631529582474234470452390332769930650607597120791636586043933136941983158540188961690654700106174829400432236594722105346145282597360965771488322941526322906501233496631348396000560026258188770531971287789401809910145062902103997116130119872462430168834719768917646055725967018518265353964423268017696911238698390055239892342125003077887675454964071771072045941725066954544570412776781279694046240978499502487712124015927334395085257840095300425767506723932730573032995148825324021010984172392262183210656315612275846722759401264135572066096580124510850244439436433438437861444956445565566591607487714739095395532580194951498169597731641582649553994952337024125360887469592908514286167550516531151515568583985330172475340433126398460450420127904157232701526667226338604143157429493561019259724732652621935762122388505923026951955202432257180044695863983886471954102104817246790485374849508337825515756246574570048098282170830379768354654885734708769832205720164712222742901742130469891848632228483743069748053513121184867306300054696444493033968540196026119667868811552940734003425214429826032409752580952207903310826355802737601606328919129849035194132746298007093586165476427525081543260934136438206975463510085016640843310911767041853486981778157904784420163732397695750381033671031333745141804953038219183346168972155621994062521466329592613357759421693019816068080920384283542282084509188094741081223658533341832179119215099815671621993506704721884036394678287028003890254012923835340647731549064655389194531344916803334466789032502429136802236038899992647974217825481996306379449216070482205212841982111411455031571858575525172861005888595405637911361364103577659658561408296705856486763369985151296389795534675613532856731667772391730978737506367281986329153277450998248488378192686395729208198714563244190712213112364405074183560174610517970219748641359751299198250887967141489978576058776477131774479545694906746437382605185045994722971613359954475440788353673969771915143932816568036932885388462372894516098557439669198116477526957145783350648017745683141193343704686807562164023781820110034175784519218831455311656832870335786703983657681764273894450343411109098547581326845891546203958529620731771031193506302524942188236368932365531271002519858668798360470008870901642352482850412885562524808132230023397417666618643543911164747818980088978301239236002083431170167921748567133797276145572142062543286764027752421741611688293522071088462486199400671433397487780916338059595110268062322955424600535897890249280436327517435120685687569700689756304561338597775822594811471215052520732614928854283804807470766029442057064016121082018105696074612624778031070845475508208631274056337873032147548814254525250764229641812197497662526224946328578805698199787443558558675927381414305729667476624136968313576289300604774921891440304252657779596756719816452099201966176639511588155163053762775193739962945367030398594364938128391451401246237751577894164402654278223909322773414214324308557864277764548581660824707727340918274139615470099627670597547477456488435978788476960755114402726931923562779021198015545763706121487300456521274251329124175542392494853158732431084893512957761846317205163464751817119705769471441009484193568994925007227774785636125590920559005907594542098977273786420078975377917533842142850368969346252684886183669844084326593554604036997653537235882272388785304807732187854958843249618840628812304137621958443478215711110381054434088727119753631809294079827709934776787224692885952837708510515173934419591331983991084990953551526808231645780382038169761875521760798253254515866537601395741884826025045224504279066182655578822873720803221089154830326032190514288827465013409407015080688812307627557584728997940613736243999706874192463036656646234291468320033151364224323872251005784481877914509414168739217117140379223014224485970905982484215914378376796244597812604963096608979700709481699583765453556414604709972156743015291355986942046453857228536701604113094084708413220424883669519239002757862765756693091181428779578355993768999227090142234201956328999365609613639012527011309335424643799584196494684031836534616349058453217350081530136046018648919317485151455719067923483458514715485315602189878890243322532684268760861306799806415136799835848308613291566396008389417040325582930435847058439132744150827613982749894394200338709096357956244058343238293301259778826718371621367536687133546391571343164048235103774468029156483609560294679928319413649626702397665176907496796511233009517568907437106247335479654208015478506487517935109056846900093305014180914388879051031988460085872610453630279196731887676601445882658596132912911796192091825596285972682485241731656337373650758918503036946643300572736137479119465014388229559304934037015055985563265021843343751161925421263063582168592971188875043881962655816560967254116769876816777420984427193836874908765465860545042718117748757304323394048890499403575698675934782412236279470422321740526247663373297784677398594083622892970245674288040082214358940249586160890420762448651732432252097281186947021371617101085066714862027142325467590148986911239572085109319777676325929658459235557249435636450771103252069060608054211348447497740120485451796569829238690313146679330557442067951953062932865668169905096777644368722770750548926121754049283537327351385913047948026816339325928170115313700664275469916767832380682247758938186729475146163826468401795318732655628300625724638974911139580996479069848755978872061314551674436051923712857951926129012498588615497024897443441057051972568288681068180847458066893788378345760065491571404356803248445583009226156564678089145844486413534226446059261996614975049023272978367467637321640366275411020274098557039867907839982396234297856992333750188124880514521795779807624335368796514119788755342041604999120934722026343081264888824731143243992641672150259708926464534769167247342036736603988233010430670001569210817193782723346578066145326261433661661482630836679502130822330962385458372747283740656167732082923089891274933092490529767329413229636427852856951175059475187225040894164822896365464565117661319272207677368860721438769514677718406199516573729691163045411590056689776409706556495856334758965257757855159545626059681261081532011167110458302993460511524500442212248226494939966827294009255904577897801717306183334151308478052520896816332360272492772009635650564945931162956927961227367229565934586714470432268580041254389852713097367338451479981447431507465472919149210118405550637399052561746705012161090713295449545342388378927266194753134745893018870777572696065419359798958598467555724320778817563145516164047562520562760027203317326070963835963472802710236218612477400207889480827652693608522839009075132232975000405024916575631743575185609036250269586041727834012418282737874898525008064718098726109846837117240947017280069494934639938354593018406707475676115553263838611669610879065468572060917454458668235182356064897710110782268918944778983160393286505246719962100893575798905267064998623308429174849538799655000829831438471333223245691852751382381238449691649138442198422538339182031848553458374065884326317677614886179373478990663493610956477564615772949195774433626180597012798330686137232970393140483366996411636149130166645042067030236015478137491910119332519870362961482189901219847492858160473224434131188328837028497407582009222394320037048588698040130689162438714031677099568983983804082958475192242316586382240474731267260286542042782593077178672266764773867471509431831109934145922331598338629034069979952264399537068130863408613345467961661250931487609545404936746075296613001803950971950751197464124997049928508242413839124445755374538592072489784928110704386751618145534510952832495377592002592792546332712837576108693745763999387928215579760519320290979317404299435885792768699719414986629086248546697827956282186946934103073927382696014090452563655676525595293626405393251050675353635171104253961423283526387150953816588076341404079672129337507251111486708302926689621074527243249589933459833070998231129848640998879845930612588128975935591123073618848391512588704879218549591117140414465895766219516538906052903440020504972729971034310551372601481279946600637357142730292297385688713451331716146251464605539099390420375002025215720634865170407621646651046577742356098590975979807128968828301025399594720755404232179330452473853561777742200675433345041007267427565957183706873602224322235109789254995193474226096758495616259356293082213416262451459306918739767265730025669694050648600235847514528660586455826328251975838917701034017537053607185109977715995853249848849472292463943099198255285007430173141937949743696033602084132477029704901295145532310525674297872938829808062955512494083710512084807173206360369204097670904601983119362713635330575204349477747749587481776928677453502635095212059303997751269526948914413753790763984440811923133909187197369540607787057750578983049403363640442593101962370652835452237192382990734096693158269597456781301197918235515297437776496905065389821059117652226918746760738665944534098469745804490575534298559635207901035294861034765715166723726147791958981569465178452808245150673417475666847853348808959028478734081859031488949387617316229233577894684984966041768943769911023679858292577120483114782769166205175673102510675490322696000782842799976466755185428906254636076160692993509847866971534821063594241112098215377561288981172287351627233812616802633409556623921414587389658396310481759521990277625109802188142727966218504901674498810004936194957424126418874888051269281743527068381915667903593257510090076773557842842627804758678378842025122225517586561782562642557263260522985164340398679986527395969010945275916601284307147927321727382588072481580083643634450201285037869229039891765747393914207502139505068428027600058187831414916012834045533824345230080448787626363615607144430182912458538923190601856437355424233959370666955812331291490909317568053516681247718328972107677390121979231707920066872490517052098324458932197805714239428288791794780439405000063400994920684715715474647424430050619651936304368157575113613944647083290731840722107521477482917320905478070372436936211976833167166199028052493282995154599235233088862456650313876970818529852041099387221098147229129228735314771951838761555745315042400363812631069018989693193430986946153489341243430289771247588893534960657372193494616930440304004309844002590141600954040311793473910195969085422457712513311607716976069963852605732238850723746962913609446640736790972943416664233042831085551440900299226966693802976063094760192406600149307036514816373100292567495302674145970644839697354615525188756575293942179929774605120064501943379836059780111961926188377118460106619330839617913728922960423141458774899461628011855040402009542836093535563177847513290540989321803426118568071388482082560832334248425894354358145490420019550759249611227917331298581379529909381406964685409504382375155453902062835506026670897755918876561430489276547593013719668286074982428742985677038258573825895580815947744400876991165470126737063071693800396870525105556904565425782932622130812573570110358849948851136164863326826267422921936147387809048075053626259516413446212399880585071459279823314537702976314391046504704457974993169773204957874692837838629748592760884927445655127426651161700821646912708520522872783234056604230237220841660775725366774136430140842441925321647799156242488994799862321285940939202000307813788122758728713216598535346963593069546866581420470313305877434869035515696774855231619272660985113184912217535394249003592931451019535008185531690030702535200796420983071728405395780364662266313501664684957303190428881378733773227057246002027766680284362360293761288790499759075594994749133836820588123569802713516814562136036078914050506655011929836464934579019993995915524787415073476599629403454065674474121597099339855864934024531461718232457256377411393084531645540054047863535218031864803601172344186006770391663509952990674640531171819636725995535746726107321363752215079282678099068040117122119806801952506776570369382915308190414434611450694494835857581704496359001268111801521515083745261785798234755485247479425528275067845844123124341010161425571619146252645158680854264556017054812324092940249576526364392099683439564742969310458273473652013264518065345889203487915571372955933914875187003614255285347002157027044167754513341278970031230695740888021225786289545050778198470779729192782278197231446469170274644768999692630252384101901149996156807822726689857999811792759746782871437268325653277057154393525723813375463236864607436639255505650025771463650088967830534105107987237368873941604647779617119706981910162020316538592880387195425940824946261363543968163834009916405903131886942645428372335845437148540064912685412763167803964165732809559381631156911531908183307115493011876873673570213711483405121502056818537841787402254580193960836567626563639000423949507619945817732978056203345144464087696916609244784566568929353003271550064045653690958988880478951320842830912341404671245893327259615282584161247861041518159222368223840666255666804268929949680286910727175862054880366356615995600235317375390109149716622676846747766709110392766561569226820544951501682534029814673387417151678341048018636378808310049203561418473999201939669884198521673736360391698750497972289140969575578883643209175755897732376942988572028269955157734326158623547086377770150541815201367339737000807485548197475800177320489965013614254023509162807879697936038492781673602219514992934918489710100909763482469489420927867536644047508823505085113134410830790894050452615128871987690913125850624299973928381222394703587005473818274878776824943858309939647303774851731906572024846988769792557568826850751939504986791233813594254592483096475310631398635819142284606281748433505968178350694796107629781557245237851646339593897523680356337104454794846713651967158427107519459370151065513300318589602579654538198277510090023666388990663560728261733846275981115907573687528695452191066265359741918257342174561079492364012867768859210642815885891472857355177774431076454981894383452059808255892154118753399893571978473889663076184175604290634905922158425160799971706383680771413171567509520353695680941076161651691281926515006337881209924552445060262678790495190640705905390412689675636006116636626134232520151815460167782616861803507060499071203472517934555148908590561074755553768614399494315861435215770670064287291560717805386441263466140574572694141513124491141689958983869001243934051830488592958505990915674533612125000584221130112138068679020862081809795940010526537963458684649519417775205031126494189835351152656395625295284731717592201479996624242784815213318412882486633970918715475828709575979076427755493859407072539380490704824320829351443467020218010754792170697450243229043310445885003375759373352159697533545010513715914673855011448522713752157747788390239650001426021637405819195265300617154078927524471179732728044726612189414103233653994724707314190376047106048418368644275583731721984152850891164632829220406212724611223818410918639697276804222578463172276550103265654866751262567967295855041566112650661184611088709509904668323914102532685088352836011267734099914697545985783292056267658786599082635880104520596991136315886938876395021000489310103597114122416812860764097284193435059788176105754194981684032442301742049258205779606137177930285250715458121387858522621883178230051566764402831372172502813479542014023405734451144659001705970336753910510909318417575702649878882074909779325597774359521151160253391104076036253357310771297814112275758959964412655933153131969475686744603206343684588454302767797417737612689693085108970743473820080330519441719396697081428539904818174276687124266821844185534637602744167770540909546643479366794366195285327239695812391005874740155163903626558247754218187091993567513481949129018555424043501557259075507297620572244186041308205784393991317276956001201043550765204527957106090390395261726581739071031121793531840294922917945868851517528875830766903118274227787394084278171420901590949217437519538868959303481901264305926506996105718716755608351848143901778050629577669124504964689839336264911290558199986456749894948284590849160598273334977722166211758225896850026502104756883422626143867476490538724203004168741610627785198129720867583580786986435808518389325768987647096714279022326251528929939145103694761806265187029883996464513112083156800813076568492650365190099158518815492739511130994031898688020667974964266307031984976878574618518954953729213538310145538685566666649213444951239057670405633290634605380494687864299170308064198048467282190153651320040769917406654765391995300537175646926507995303231939373434481820505273440902509371407182855271773892740179667749150427618095356599362023809163264618327315658374427213886818658882133858343793529993357123742460513638858906585883272878690268580738582083140946083777996031734025378146210260836942920831001215371084929334545025467573362961129280569248092482635366215455375207610978627794608852822006692017671707878288096279348967278484864370741260995392871984997359175920898152205597832035890235025252462981766558198821083255221559369317007838117838955124800405916973195101595512474678996514099404673790738011872719896061407659380216719510343664506416017510944485102699428838926758327201913969391332731388616934278977211319831410426055693425225538061111768780977173770718740233794043551237244304207400818182188806409048122284382855864441692564101234574635992434272272849529407328592539630285656480886696519050453525994860281681496849909020236489942864018817247616960538664569344406550624045444473333646564562800335008150885820492966647853204858790071299876790307797475956865190669829434996509568515840108718435820070189633204108219748889085474378958987175229796294299552107865595630536397065576029321539624203972071603119698000815514904074204114112701971458044399679989681422399740466135986151067160569172002312659907406109054642704768569545466834583993361414408913300146958661158782326995980143734406291319286872996930602114945294066326841043341012191394842571693849304063104589876968919536518344724357134355443301459794147701886436923071267082783800687604048492084118702647121016582755177024075099569562500125373704095178429233745130682495806059875687727910747559334903586538828123696370325240112741081275619770481210313801110202462048674398555738246089732859433506252055788513644972011052455135803937580480186665377221140510184487301660634245160315068975565756695846886778110404104470568872842558397951933873651527174622445701061524878051120376119468242143922058872129231640616678198130509132598355643057988616572204177900413122645632097068310014026159692381219138178535256877476597020845890265402969548896126393261559031745407486693257813653222217655523271395924094017947124186477485003398621411349745140677744220703650958178052753575614214813226545807732339989428048888655996031084050332568234237774267041555797726021476526423620906295404103055589776882198046147993504114557515731991490101169885610941086552373478597679788086205065566051555907869448824711338445573010117694490843511290634426907861833780286411389451375108726131041499036880245977446992349465951617240542289426049683630535683288632076896556967625123685636719392692586387423448529155189576828853162332677525585740089865031910835102533773283637802470557036577748537987282095143093554266378531402034853325638005932942945825098828693482268164880633731468570621064743389779275212474035436629175782342134156606994185990323274155581169877522033851155026538576494094131184199259294294549595828558288021999177180413915850234739050685573498343875692753176802059237098153303985074393144678309060420127307435741383291912357840023325755885620977665910824752650817085658123288048106518648336011371878957506844401229189429299733482824036664296102616198315985219427987101518769509584642704102139726622018486169690103677061469678943012949639965381605305271679946759744905824391771553001011042183606036434742620217543496744119297807625621010989924825462568997618294921738570321566748546531064912269276198176424485412529143604255736670233484072885732795225540206740992975347836434322282308102996591748544943879503314604072536304650990659945647178259448070930602244390304571215789973694452953124237418799234486621354009715978216216627784885615620394751792581363724083696211611826379366485296193186479062348371771749905961394766816989354743672525062911569434719025242767968019431711133892283549226425579249289186363748102918592400849159531872555786460309360571946039017972217318193998574620263581291584198992278665075706890675556131749671524053116661440953766140093382276999623005914925079798433129611224439394576756218946079097199360901503540713431087789627704895146797508415442788253896680508250808836259528772631922061318790323737985340142125692115726324142278891134012651181001367724132753140481696720618252440450296473215463217756022179152422898354940912650741845214943090595770898898548931109288963253548680095072076522769776671866113123355703333944853928561807608414055525674929661059888556199062543689941173581705655894758749038083453177921627994980181512144611125794157315111992624599983290770970378010434982883170930898919190227063221207340706057877145745875508920784040545100980604680050808358014678652904796686150456055302053504496040417316670522736244783682854414280582904952927376661902926549669660742529917746851639224774753315674239722104233005427917483696964313314032933833362450935464257684571206197281988274193573218587456483282815712534515121995068687458079997987835342175388928089901989918269388762116196153952166085317236268196043867811886708284781959016168931361126760433926351848719733025456291745578506226032402383820557098432089678450733967909335370609989092576487667161296981326036510247858765142179928614652866902018847671287362827991254350505367809131355911156523619627424778140947511367041058620925107623537025944290532263830384387842367550582039690557555636252153590539218656833893470798043139568361616911254117494785929059882783758455303858805746583534985219097991937856014519705802971999428043733297383392781381002822405996279961902866258796384280137276162491734410243322032305443012923277000519537567211455858811672890347179331594396579993763204009064509136890179716133327374546272004521054829435344768158063659315864594158291895302961551935487315743605837322345442977275877201852312498576384360281582404257529754648178699039977698043989336342520178843193402032808458142363180965811286813616158895800947556550639835280953453580792545479952907155525398094596802403796834894061755998108388631503138796276127247540431305464459247023699256080672014216134100967859118731307242679892588160223904551838145880472819077545824674940026829579403688662753839321506444100698135007995015150439871755673039506796889243658816777674639509828633808059922566183208127786144233381316393992811511917994423498186715946519342747419273101528264517080588209817782250189738803057884825570343939338104756268830092786902962525087963059606953144581507156394418725099353640967770973893116246103285800288576602579912176734187601027936531689436141580017963811115665674468269125693767237878694239941407364701024959512737022867970675316576859024182130114080397829721993189088928357788827429219754570871244846986338040770959547207314214966475988547736217182987401730754956495237276719879092486320240289970096890743464655145511374967795978331114828563276637071616906959249085003095656033865648538909949070137664216714623410348577206564805160086541318378299799501976474745268465963807714678589269156202213016007921839597851624581251063762323514520042090496949434744232526736224607557670233804156516605337884628032610999835954257928396231312807445790598354641832190880962832762734742027612859607231945799372508918948654148397538564468918198111852965646382010850600088687112809822493144735850191885104471963124929242843252965951349758722152855238889293818633651486978881391316363067525209512018914923519244395377697701559657902628154118599667583565976495417620501905523132083309245566325970904274775499517612525215227595516217580050334016750006499712878712921307329042543020799540274082144835301752593036436537160894247609726900859215460081909369788879739723053429036069605568278780457352303183302192113779203562152334358359261386207387938932459748477217276125332646931586173751772718251099478925397588292762835704494196895557312095041025786888381704750201866843637853653835201032561793834731965652954054350049816402679344910649794369467111731709764365672055195233368165283227043914810538438166465064043358100898463584480692424101270063746715441350102625361565351079397576900028793974317182443655644270529465149737898552105615235225109046419111550984206759839256764697913678858815579287836958275748507124436769754720773097022606253223027980292895536116727738279209700809684153179641286864961470930215026002154362699716197366443687287054796767419194751318863008813765764075710741236132895443878021517263199367814667234695300478938074727559797542377797607045953666471750500833387776017758141604019330305669476950361683576819353998813462274268387922515896074516822667258109429506792171910543884806596870476894099081776846784667352196987414359479867454876366460442253196732007701912109442469663166701634833368133340406135834400733441940693026883803731860817169955276981770668382925554390942394979187232006793151470908912972388266417071869238315752611828867014170411862452085666899839726122643572536351212187702737207210785082876356156394948922213791375665458049496757667300109747799059252282284887724668414539857314639038664581528030581457857231412488566378151386423800910316511054948836360735288086080947837428837758194556755216758117398673011637758067996567380638968330460683969720920718480291566937354531236088138537581667534089199856033684768677942110673271326303055624876246665985866773169953003879123416899720496316088868425584935148544471235931542222008058071176947847416958962403466717905356458030852637836228530690663606918723432328025219001087641369444837291545772287381718868294027937526586684199149134273060708822388473908710388158467655557092996087264037346880544947732179002184710931586164349775783369374500409150804686646983652386992826858132236925753568686519656500282706013540317469272663616384075525442757505864740090366203803621727746996406033969926587852445460957245035932918250803870617717407336763173928708207483863777902493639041276507635783380217023223253831421038301167006143343260481253716560971305063559836297109997741130593939884906182715134275337041739845782720480222501145289343204927227547725469298081791221961725409084421387715853246686633565539733435763180529393594348718593571254511169687265037951437296699667165178411897563062823277939199302284759035553633776255139227123849397772969952286018101588403216807423274955846290510026775504835292847812894616754807439469063845377220938110759909858943211920412359563262922932280651032149299888378860222868922541632252401039181741226437365554455160592191962599591236596550602753117277190479483335431048858652825767931479289877774005927943857927679945891449199155506255765418764685644801695832430609826091838686772840235720499540019910072734339956378383888771478184547841875004383263735287117218368074989988283882427754340669006176801025515586086697520737097873879652071563402397551042306840436556718079349326616325531129098607230468023181150026017114358548278277922422029553096432614348764560342735331251839635566562932976474176393922292377315833257064236470699237356212990824883825495856720779804632486972771556039771305030974358988736999709838837524907429014680701102926791796128219989438578278453786347444273367350850590526839875547293083361744529763714494042490521608722683145552719660034950407081223260808093630911799555540940467420079793381883710416989770717884233953337555678344541601939298429446728119421866366731725615788840867933985867239904112690531125782950100251941894320378611547065283067180121261562383722137862187797817749624831466721606422469969037095965556439542839654245532782544066893764252969050084007146884037330684809988773521280656883401523686536978235396722818474121537676808710564088994404831746115845418079594710544152004539847662181165672542153749887325865639736340961473932884421484743552804185211524903610054454263014985725422799565547986136784921057763504152342971750043403722961535003474981172638202377433118838766486766512624053223987372446135483502863363734444555044432525187423857110801725124874842426712422822305204586283649568546183769879701071731615742091719451974320780830003990535922181895466583448461082353040415549528898875321446245026813118792600895980760871934489928886997038463655035409139911987934181894807290961485984504583613448090035599890035553685967520893639277826489212025998380796003906929251439856258411098315666150772654884313917392126957457668220969925625749546177458483684065803724311537663624613885140614228579601978064988751948181284231582231690351081046198921284668191231746018601718356970514164179262442700184515634292059257198197057852398884877728570469049514902640936806246050893346443496169773920226194681374642570516508989410326349594694232917163017804447358065553286958157050961365786587421221687211686077008752837598778455905909775328165975779320659344494450313093409182565749898699849892005734508936515776227097961559445454211814552719691599989217090568211827053414997664149835118673396160676190238198951846718075588890340072142404081233676506257459358717071560853970433363043644723086414341217979764999050993114020035236358502867344773343279862916122181927634406909069494836490180693649828158794797408609525654481330998504256328297320570279512685486666202328722390318316832873729045425733924363887021973347392668049262178474630774779496246053175890780614575431644504684899988792696352178449103854353480611369247226487879077266196285121735754133576350386369207662980370198289830855764163499309526076792311073572752475730230317745467466623065169574000288647766858842661466902952745411127227419962215975680781512055828052626122665843568294917187051884897844036545476705061682499743533289025233526766124092319130360465549878411643491078482833500069461455127828184122115104385843020970394593085140705240840369946892174830352197955830373309315102358140648675332045557521372631407110211573770189992131066870677522719706749843944641576347437921703596330304277224621727328896760639089173154060440094844598858798548984144102886983205505080171527367232351583331866123889281583854639439943205160507161324612222382329879352399573578707508425376035402112245669691754924767224943751690075312444009773236598876600441175044891697526669003198893712591132798938928580355975420616602504744394098132179956060353941933123467407008766087503951114313234857956257226767358403223781356186350880503976230877867446628542766319735008728754741420669658869650413373162456639022531158132706272773890058839789354122992943226856995808226605448467292265200708553894306596132983991938676675808068914554884470426992408907916018548130312052880843293080803046722536359793861045635217886346992950269802163357701978041248408971133476302393755845677846962598840779314422816780528578434786786473084101843668569235647938005149992340431104432319287652045825938186713263532886156251514168846000884540492860399799577568864999784964920121254763932337989254399974374224871773601311079723823380368576178947319005510472904614637354196253135564730287679867022603610427198884009133020454796292872282375809704192705074733100727259742767438041284881186111178854128290122923244982208801369252435785696289964325259704507982669660859903679929060828207396310024673323555672264199585469516887419587531907646290820877519261277612091153467474978093486190503685713237144752515055844353882377370806182181108135741109520210490786985724973278456403964302584070481339496566036094481809383357367237412956035006994378673515599059392714628355757535164163321549234805534589580028356490243387160758563924044668630566134442330507358307867159389843766469230608906781701417564408025764877846093394449515209670800579067613544845819045422551166557712154716102355708672888913694980673191685453567203902870483861995540771955936388345962573706145191216742933667824172178750418417360646485052895069133899931885848071762367817840332094364424592975033798220994377289919840040319535315480023175932055688804693980982638877901819770399584551679220198442976913822959311912074903574731823479701659239920883351414535422347435205490332043268826998073704053762762336864171381984371657460228770906808861452842692940235518614050502321153625208411679550484744523975438087773907416272833704872359706161544771216391358547395588875956852925220328775806911831390132579042043163715681946469546445081147066346652961496142605649918145203149447065277521186636246703843434507008829346032186437495811896686055027692400878196367844301948317813882913911575843670796274001186780686254259877805067208671933689371006083298829601624344140876599926020109171535831946495168342818171981851974603765238476859704573403275214539894639208021614990139164934135160588342314327843731078847234182004034642556884905153366372409477442708394861392684296364622096300004391034115998066901640885904658752163296302102230513624504814570273185658187453229957381655651633388469109287256974509501282763532660257677965184056097716743897294443709033243962103131629404163405970839679440660289109158771450200193348150480877033127438903971816654078289843180492613083236845807999647338989155831861904916765335502595204512247387148701182509472601502791246166837194844222384564634839881663967995669544777698617523118069871857632040735155556164502580932454680540891036564717162415797061346103283289214163248831127743047400692190310186610140149723272835255723134120160871629473270159430169806164475853434446187980292261695563257778207875373674661098196811614170745735197560471209405174720002512871410387874388788921259355426348081292834788527792120366980948937943806061521191088028977545525970864911981099926808517113867361528777824592596412007451154884384962187883398152905680705746351639075942857662670031325421339696246355796334800092649856359933518327025618569892926788684472078041875156394627977905323564089171598582020408650311984324431927219680462675061886403441863723570587307817903240200486259089207698671415900948333041407343681237982676800407922212548641206694697860128309582987891938070174969363597105760118789597038595589658715712436786289704330697912616658481290538731712323126549568775597232496293258671342125285399821270660497549409373831803400355404724410255845374798203729443161775717783566947917890555890899997183779170207298890025348160084799305512933994840455064959663637130299142824538947449262540047380471409611684085288304141855083719541068179181561376402410230771188216708913351007117167958674641453011478182291175360987923301441301584697471145169409145927820671532623861077001427984431704577446795981218384064679313851602547234345315049349365707855701838884674316903573162830794514612752302772465969576808590401968795924650612647101271493397881575325021618215351417640062182064378309985527320442155285287453231240624406214510477125930895470024515090955028982434533798795035141157451837257761978227062094843224702739845702797197198714449314657907918211261787830774940220731967533662125181161575777319568251071443703866298039744354232412177556502017996251719886380801372966213211920600036647427365064986310316809022296130534054420371933893156799376170993526684525322636327560255922790814458046698311174293917331402994817232706497760986377168586579514713376238991300610288517600940993633722562630694752495832832874983406352807710281531988923859138789262296801908732928023695113507851687968701534410027638900862971647528243205844851132012767509566222927666135563849544502355275357325244121788233041878233433406648631870714987030861901979777292488923086604036790629225510879417645053090417198303112904123846460848411961275205688116763311110681857664353652504647948229656568685635574776974899090099952313557247692876777660436622065878754408174680318578232914091951928108937911609273818328567515844908318833312849270106391646367950698251045744571854151853212598313696686609680841819471101894152002835629507181881748473732608372718007548116759808775223530231455876962670351954233704176917058148755137694069730132780553911218797394118196507171041648658197722492824865938483446229786433493257608455537649124710239241674231502874281110537355738039730083703514788071698499511792276692920400563940370935331464890295577384867390559122455800639050022806000528503088998113829749601665369973071730022536823756997753390801483787090753896269901447220674476033244137560450436182475742039106527289185461556547539080910526670364812318001855201558122375287921157647527179272085008392886980959319049606522338563211320876865701161963739801012611001050017599163180195772338743947514410523926638296735342370332310062942656442767818010355994388811279127975460716393772891254653799852638653191944768277685193627829878145227390389233047023561215508926052625581242407356817130119325696974399026734730092916748178823990880132745046383732120918853452894595521742497195066442887560053326554365191952721208030219072518210153595400578150261594900639333335978168324239964303465559081498911675016601707201029176558071120070041454070370296307775874947324972757053379362998923186997386013931488391770269692707642098917287269206152407311041164369825113460971298537865681056057952301406381029586705840595578272463274966667152080884413324670296035857165788739012184660379700186414599591239651763475418712461486782914848134820317933372642382354899538468481386174921324984885345593374934023417901756307327491256986800194826810322894041565881335803024592324369235706271104939205843037213494177062905606955893725959009912970604294352495054844811620145156373926681185882408336722192467566665199070750133951130244686825171282333239952386696701576867892681655107821086551619929965824213769491966771126236640264851012337049226835068283327808420026080642160824857566518013975125774797081213196339689802865229982895203371132329911642342698869904421469311843789274515015908392162860142244941790954900638085103828563541866871133990163805861889737612454631368336455140335211165994267598580741162367199603639833653158263834384343821993789789039576202949701728446885723463173785680207817091231532717589142177110668693964543477545408743689717175402802451602564997481075004145318678138742645106606054580786268879409398001163500498948134376934885313593703278737277748527120049392582463841570033812212455806253851315528763604701906256267468664711100689195175684128872423049427699976299348773127256215919252876837001463494916358578455512114659642808963365775162545485668449938193745266462840417855392261692246424870846234896995996337063014373114157305026951734403779814807864067647572009461261753141024120119984303388737871066587027295025120231522920513002477998590660733461380776507978415977051497671317928013801918545560220754334019409322740981251864888826414583853897860489746667030790217531789235525792292307937190062718193415048765172990887251270847769189591755790572639625904940227048013173296825859592045276512326904821455604346420863950022861788789435025951016465483687418320691292090942749006679063307094170557341241591764381549142805820881701075281466499801575419201238367991043527514723884018986456786353376338599817249925856560709220042705020485485020059012097969006388734305019234492417331436440252328456166345078257201723558256941811418262948628285295574699528273616636571260197916705783816599089860895084217915862454059327990790641523065196454977954183591315007540259337680354805286865608830094628364555228648159305088331772265462900930842577613355549992873908804842282175506867845545424273547712909426504608077583549039387916244002888475434783842153104983790891804673218786442489112823614767985384312806725207545866021949625232449917789986322370134874948012122297390830312895228948835867603565757554027221056241280744343139503289361126486126590418347679698416113885882842004572366334358953877076111568354571982464963360665877938258545654078102813198417808680535403702514979288317833226514586141560423455206741125230045854771412146716260143166302782120911442705763141106418470257818013208627779060905679377714636040644050045909241615465750319493393104208359687282465244906649095278117648833446247638604998995973453215572861263819786633046488081087729374918875286769517483327741845734944161199380682725799169490394906324170581729266597684338998799580098951475292831720724820205736524626036021520139269077377544261040340903972652901846276873780308056050873613649435225208175822813018082070298166521533976135221872212524433272997602925724523434689216520381677357569719774447161716385520041619579550049861136443005624046806677077219229876980495649502698269233421808849238305459613925676299617408119288166391655178422189277278240581247182054983835037861741951873672902119249470889454614085072062141474527995124839221202046453328496838405107358104025155350853844865707562143547996000576456296518004346656815463928141858369121306005743848237202050481020628000879192504133651172533287237734752601209675046953368194505403899670623102926836082353668807129638658434719949728908931520348600881658843830896927788330523622553876013073466783319505462318074311090338224649242133701499560070396496031765750886612562123868020044286613461645351747915009566085433620998681952537291806832586715716261376795076417465065364305401208054617047066986894820178198531987715432492562788860080395190165722683995298985186863391591713569803475388319942290862663991089658466546794235800592639082322923719199840186654497476931700969234562051563608439179261203037284141833652872463564332922041562220265847756574083159113672191658853764318798889105583824434136756161620497091435128038473064240543940549206574721752820461208573698158199647680190337368035639836433095563146307543758667668276148931882080068118068213339356498281605376039978524719239271524719722704087624973641338749394135258169532462681322429058316470699861248203613712989249066844442639274073601234872540418521095387038868892486443305590195706446851175705598154969280609020504242486879746561653505417045814169027382743525136253783814063597191841132120296031996931857504411635540172353601329490400437255066458859290216389865094256035453337791882410403349545906433742829476611179940818699788923295584488720342972923823791012406599635184795114324448800235401100604712231519152021918739869494238709791609947976436111252073398328006154883724337463474496420278059456197886642320746252580096088582334377948181654595164253300952480462331811945116940805128955137745524217143816452957244304449087481980891549330881295538088124435591466897260204161702953696282916198961802115572071700952317834427529961464972407265123280834804782254313450360439186858135525199891086290797298461159735394066858153769397934649094762416862819761567558876681020646585796982209470276575252009176214750012118350598466472948457770348028665476248004676754163106792187508305865060755258178335179354230553056220741658994733482001118634071615344538268701145169864487148984594899512812378632963283754876465504716899898336205579860986571272451332623453135135123509439360639441458530772431431356093674487727535006796521530338629657361633219975150826111241011834630535488492479656830506181238559481674637055040809506396032233625071353382093451116430777267448828151338229488858975027936180465143199666259715730997346264670901537545716932138240319421710376302199481611618599091920985126545204081369076989820548904699435883619308738641759603426856223460083006672392001768697123312597105826997971885753032489913691024568704371815654544617047838567770720333911161089813196945176653233863853648304905971016882714674037763517027851720679085016853908192388187714179561020008904049671748268235469539737809809435957433219712480136714815813736914030604139253131037317366865373678158751096351126743088191198477079324954640641018728167830001203126611734282527279879008788504925320036274249757400844929994550181631355649348016577988439480794496859211951501561124132759175248365815736433433832295548916247796038937736891903699657449438446356345263836522197454119434745395859700266201827318123625292677232340941485697931171520141768508308657223356619727987028878172843605083520152746148680995368387624892291363347194096827268380953626394005956078786446065297255448262428415245744218908835321984506389029334509264517997490442300817353317278342530276223905280744075571131601103275426897963554807559304673186687137826660460779832350775200103398286506333462838262161193045695659438795530440676685567890538621145317528674210688232622389772018087610922476076841838691173789203952401482981982602433758129185782197859830103470156425178745666118746605736895773455798319744563029598618807825867878983553640332976025027227394002678791051723681068549849300040942570501556638306936267223626596381572175078552634792528685693961570501155476961256207480654502014955035711647194434391614011430712951993544219221972900715648434673723746788176376069017691473980829033256646866216531985440361479876564743012009073302762214320616585511913535896863385939712562473992124363325237054550379532465687698465028380276247107025036322396509529219574107797713770540816304502838081868143034973637277570189034785148305720995949583193156446603975121637269436308532540452883687487687120473454473723154449923312553960548706768211086009009039243199248254799746007616427681631010711035856568035034432432509056029713260089729226679452589513469772871185329061058146850951741493326021504148661402450716828507606704207137200080314313799198345153699831600540625704266841740007246163924337127983900665157442029640416130319726132429506659019754515878622393427407536302044304506290426610996273365043959886443546655403186297561755088782300219299726124367205241433107541641942765059711509156197989498716294406989104301201065619970870177850213163506078510877318562610660805160536429034706569895330343561707823205627023228393174293215929619048601775310432573591186633894007119462900375771922986305461958907134856166562045929386164348116996580917258893586192757633990378060694012974223269087968990157062723636569890744104586113890339040437950217359632024293206154389771144685245222276111802983259217574910379196305856806533299161013314382952807555595921625580264029160107561224004914479467710474786004777995288938891359589251649103316484689159137702954024104982110198747121156111048853248575573303837344870464733502503554359936640487882094383799298799984218736714821497482018731002615845680101561776846754155031168597927164658823918411261175760976962071765444805648556311714421746999168577039100201955714068279109767399649590682148723389925955997767564093838145074516066456086525074179889935894546504514108059228827425798919899126175185279942606590428929951017087265536374395687013642588393120852451476983765938709759260132058848578959568076828032335504495652794985978703621898261750434818518750950934314726811118546663907979648153645735925715190729186496858606092187125578156810548173403964129333503482949182690655474550176325875680133783284955284952890765258276499970511022315111400040305199108744848473961370644165332465750684574636284938863895168386396379679662282282457559316244559535191076900119505421621915742479440088340021062217325467817588670101099175421160728310914969034751048237665692517427233700090124483167179654858315832137270309265823738607123743713244526725618002975464836321467479283683755307976752985755556870605970697929670088754640693037601436087840282479421629011742030487117879948073099286996435342204888896117116564143020478676812651811704390970894569967286216438475832778028929726820432803141703238985700710954968079068098074004616370424422348538451382087261096158330896083403333470308535773989868645266788181258364816396109665755400894819901977479358380102876222143608401200132332874310507010179019180327766660487084925104593677279981962209777786296706185660215233883814276379285306117413218509951084332255235416067791796758098686490635919023598789308834589787953626230092031833511365967867000568478802499628914030888685160023213920538473457373763605632506740831307058955580565114362554242421496209114116692401204689245993049725247363132112722448390120083859578859767631187732424385266255521737373219262493850478095436214606789302665285442039408659009819465612700419466553808759193964025123328822188372009634905743352821114289129643281479690113197951912940495616535569941037457990787449140435231183470934891095210464439781861736207076685455578440389850271423666648663958069248411481587442428412742515710369585197271657557994392332986447908822733496452793081584073040609609830855829640707480068641009433904203294748031810773278466587145222313396080601316667226859427739732719751131429044029833326937554120858500800796727963527110258706150472699762427632129403020646904915790445654915841509836506629062592747209021232848933237329915741418419957445980306652150986857154866010201000097586565578768191190235114954192317400580229522149207997437720055853022818698213821489655356137867981825352659333742145945092714821291094205373474785752082199774031804009073216321367842673637445868550149873655871634349069945073605599587258940073870758591295204115166993509057154252391701223306603188017214889178015351477607343506465964988165180139478818249520977224229724219482642553302025561552110470641265481146403817091189216429960653559199936737440898895520836676065092922335484220594816189840956636301473216938985291164060402232857195212550007423822125418825265379242761554806439136937024078462454328668597766720059458560818916357539251308990878798924199333359896868021198017237796107525795483706337052439493211449540212354932392121505684744117684931682447410680121211620506745509816200845560001925858067387900530250328010349147862177739332278157015041597436619481104231492931309328986605117289912371815224408250408956573666904376063589812302995397089768425104296692863713893022024737523078221882852000427595901548335113834894567239928889917817069801520236639799020858357161006174902377197257766573562423789284772860670753304122574848688511870115642300592845847811023836281857870660072928889167496456221241098656573631463463744668026796676500228089047699233596461583582152852350639128391860946247393922334975167509183077213302258977745581987494215200864823489014987572625058956963537518921321438225724229298330795372119828743493422738951826565338629669083322577716143671125556499761401060025107499688847311952318182281966635242282929115639510933796693265685696491120927436525024351265844036806688058469282646155334382119039435992813478954055886499892826742446458055590705075167679237605045667037683885500474558337509967175630243539648530295207937341185516965883734760437681511641686305586091567427117389420332489992552758347330890411233220012022328352280725957094933458601664207809516960150687118236652259568752270559019982230572521982886870966734363628197458595474786178573008597477636711791342449415935433559407056653058372508248146951173157609864904212917354333751852380471657497570449549623771795096050815855795666819353355028351217876324412302275937411520538643638486859317922298405820691796189289252859795834926637706994231975420305894368192872203615713336932773730348369659230018641008769833357254455981532684568706605801086950253300238125843364508206397515765181145495224507122830980479536450789536049511951795373620997691508149082497118035418274054316152918396988156930552249685535192406375208917933660572528361850693909878401562277091629716975399919037283826967513352361611425383112112794917682871509495113985581831462152330232739808760512431709783251648071084324736149853998745111581804766262793720375193212784089339316093940012061478855328965037947669030698733837680368336341382149543096423973867724846668283623121961195521474984568718984601339220854473551451642309033136311210969338949459409336532043413799459822497796370450351359307900054578719120432594678685005883638606932889412302894608535958590753315310515940522719884690950242763225959883299562211869085957731364051241502999009231643734115418190068980060588115788509158225221699849974838882747098763039895520242103504124852117878394262126784915624929916009317082837602521857835849313867539887400780303265012349477522976328710939160151833983600601088500873613318712583917325922472652845560194090057108317454156012592619857195244516324311408393032742923864504370293810688463541928426395100609789639488263243468781571308808305201064380509269164241505167668195391183340348673481043853335151437364567363867878864132505578099699228494952312963542300257915183128186612336631645545065207592006665696463326126841247566588415361755098464324406890800099168922222334799671924106417507118258512864807187763306218920691882178938203680041862197985524344190400927434866921687306209989844588980843876494753354467498169160586963165803058515022532394713568591464016851310014933311697411904929701952669198431033024208189610810929726182162041277127743231170489971806795955807477214677095690694976498331518997056697386315410310069052120293274317015866971799992682285843161822494376227063438596450551490148782620002349659006641402953926893265304604647001095825654293146369799948585229795027847818914905181925276337609184660865558858193662781738924142296218074540287133363171262297448314890170114626199800598338778017935739629011402343806455938353947712197310095472911286313853758962142508195927781851284538853011482260880571777958797560197941045057197469070369188449765794020796034932841478180325993770672081664186744212767544939769136932280367595519882299007205738113539597787651562390704819174052442439066120403129045360212384463476979565588416768408357548566460064062142422339932557017095825998535424348144346475840904254449816317507474741109673119162206681985013420888781892806891081922959113366822394300924926171987197956338482453503323992033089599777741689548643106455566541137444671376938319147016995977961903913041055520008207208822414602709554996932113903876397831221586811853902000328650969580876680764507472066419284099390540617933374167903659388372728579296229764719212769810792446899207146339023780331224677426049162741973200897460718778110814366548331350009832410054639425149246607658794250643212777214223736492720270815916392891949859108868712710766042858336005268717483132076124582872237628852253795693931811689819129561809621778610874449188468936762104813149823566546828397405614747468133919287349101996509515996861637340085797491345413606725012450955374537951713611031094434258541100982814061474559811188987349643870297713480160317839344086883217784589610936162538839945133364645796203542626042763862099948651937012511714113205951331885750576250411938050445499667316233741257158571853861499961079739756583231580507766407923769987478936882720456646053925017434342085200650409015852123300712182146176316783791329445200555662828679895287663730722129599740584862757246557738966547902133690502727546055773036027039220797535716776861904139638964233617562429580507139371146881719639812376921109821273362383816741629022647296799107086589832021321402626991453731197273412581545877822246306664523521399653705531181191376753213162673719947926685334344609953164157651980853415980587387872689547903059199901014770689460339808170413669212867790395228230785002875686159948842874854352995294092542624405944224831897518910625993684924961573691337589536672434392948436811869110947535739267922919568907595367600059459224820640963993544589599461484473567026106443603883391681423172644971301477361097253408778171522584486399206876258094420791560391391343078835534011562733047377391532130997562396946439083015729431497022898354636516965609282042288344473526746327224429010034539114224319630608282319937933120101468131130575469121351865426867106833478776729562906759107140652784478258507360010186246481911356920759023611462818668483321494254882965732997481935328545215977506043575252172257336848505229750421160884779301148695172623985734520782427126239416514652238252499305586939283543850894647003247359372198775891200855943404854323680970075195578646287575821245234585937210457987007268530015483249377484786461702704465327512942289692795405844400877623810098898370974146488574497996825769471190419100691192174368533511566397931978073588010043520674524790422689806544221870129873869234385111447864598089516641943790868211268389073256255164008851598276409569197428561864414849495981700920366311767781388375937630966936794175478089917842530406512764218599601840538978387339691946324342469175378138825197412145734175681317864977238174810528703572215114391943055635543868212391040679302273436009711931065213781697546735912980037030607110487405166550528525282758633342789375454053643983974659935551965721181280019824804403428189216412633995905816976222176075951727651430477627614717401134829455015922834205564673775279580103067397744758707166331387455046413969532924596774415497261133757441821780861700398250164079229635383003840394359473955776888785704004222616545542666804276004365993151866599377383715157270185200959610473221281675633815897268122493194662971629969788107530206709396306012926122576743527625195702920986368787422687302680985514225402901496862309645552410845233718894534343059745251875827273261545659470632863962236278669502634015900690959200590460597930758533335525879635476458301422595641206961150221845689129301783464192997166201044285253457415790378369452673558553624989769776751407165241321464626740975892886667749251521162215468257975504642090850430953272688821560742624340468764115513819870475729463626260679316464175957106486371479658011096630341814237836879917380720077328826931631520808868658266909931027736653220102759556331413623763790382194556443707203427044845445050819331940020914917908936317732666395779660565904792350312127975448672741631914309440509064760623597025238022064029221058808509261041725792562680621775416148273746030660800440787676730568463493125759495937149928100925400362352930765484392691275354034723669577631333861878987220093065090670811854504917201602238414505371417123676394932481467189430352978912637171046649464167955606848554739269130730481255920892992724726867136298403023667959014820867950152385272393018362914141173546437364924610527184340657445985603071892359667705836483011076616397660654591731562579981201901044411075915256745626364965212612763398628753271645079913543418920199219830051106553529788147268385545431291475646652946191886649829260400835908661485199290375696631569441152152068433408959621879115498142353171278523954727779037944479534906197768837941950583832611478299322683820211292903057399395791805108342730401987061605638818550086400948116672248406502486608956717474505499339891756153864515426385816212577727513827182935647653097396752754048109920574212781421582302755396176921064945382264716454979076726668351426122917516608814550827511888329774787799413728437963797874215600417313195304764893308167632547762885744241063199081999382828951988683218567015722561802079870582966133645050080814597208313050049526624036531941330791935458881279170212914350894757229198427775419521388657897362399618869268236937794918739992345793499327076685884085691818931479161248956674309305593096468618450715852346383973364641991976182582026784694743872263141508965541039914432094807972067440089415654946806306485749097622573605786182360051291841508907418825101464973920036512062435883528653554472735501888425213792559424910836877623988628681507456943042604480874299385066120881966770152989516233458705366737537715549119361295864710266107412057034673588300792761294903397180477906939488507466145322862922909678536460729119938870401574069779483198819539742842413185756460736069979524515716277937939351213124283291157502856348356482531795325605270106619673023097513342265873030998274833803623234437031677352747787848974496600459756450428926576322163227355436971659273493750535140382488422902297728735479025016020483380716940473485402131914987179170490900569866646844799173995449572512865698842812239037798414047850912311437140509411783555453180072403236446389471239772946501327567166173359192527009614335324462603157726968641221767207058307996896135731515145374276119381084311206376041158180934766269607181608051484651482289628158453005268813296077790049585347105277266375775880993609669835615296612830109560559677771228224556752082647586059562701899039085137414292610630957689381507662111301629555147978213739684562212720987338740786359355933516288309791864891527246683939281980158717329484750734433972896936856357226742069750813005061636000290024207800207053993721823599310153520956412409415418239532040526315103551507892305345035011871764541527406451496917170358686027220296327013227808400507025326769421379290913295362514719596863992473767954026225480168637186675490270898328650655789316963834093534717090969872619348538946096374559338294399263557630818558345460416111814875252020040991162294678048608722107900391020932265773204435977402346952578525116514169976253064910554479573466134109833453759425452068407404747193412591987248545322228702549742726712966803490190645592015784999568848941994255017360907332482889221988674728481210865041860986986692999169041259619217303391973032125314832685956490512719869827788846678779325778920452083663697256513537627381672421176152349502296754374918969396751428444252944199354589312774251703255936328946656032881501424997081987661382983014854164627890250750075773016124666753231087182586955284872315415163687086744622026527912285408629025460279665031360559500872965643126136944546629495368938502660702653385224473128857166215378655170597296287410208416504234693633772300773747974949389114604506675270042330706791979731517080504479549032622432899757588411905930963006804780377134867895910735788271762424915353293456661513689639682800492752239389869539968895312782455795720205336408445765963278388682924461747631338772832998058441658930067531205856796093775511030214509585396912712128758968507650056371668257156514470834679399397281452508881438414997295373094178583772684363947392096254491344097086951886928353042680126309998105772949650535027974459209847844686331173803486410271703057519907841776581709158670320370365363159249872038124233374143041074462593685527309093828709036313254772019117163340595221322084381615326379773444221859538009424436162776676582020309223620428238975829293504042912737010192383789189118696960986015943910783065225144666953939482680440965149190508723929119818145381535804124699023624607053166558446043864044904664257184876645000494169975377437092461497389100512370237339445379616666523892506367294457828851930706717469684269676045592438393377841172805457278367309996621065534386809692778050885848329628543226517962064781003685193625379766944033071769388216818740719435281127786907168560326245809474106149898793887822245799537893440808512923991526091792095011513928186433418410362900681014054817431510572105315503718953538027483431474138612828235988735152444866876175264363619568214707994235586266807101618878041707885425649041985920978846376189040016519753716800952150653356456531573940278803326221833899606088889310826969686483579094805127712914733295561417554121683158052054911171323455575946378917325557126524960311431870388748775705487667586922092382384483679441342625937109156462174116924113575005427743653979997050072202489907751489183006700636524487790086282980632987483034359533972783760299275472665391008344757758913762340928957368023602865531886559031232758988486181533366206722117620100949508676381500246940572204331184181884639398006751208316079267985043134307719786293613253500784643488510743636346567601720001080003382386230427201551303214435161897923724189080940818920874396662885657064563772897639929107871544466034509687189397094213071037032333868388702943932430090188863954004697047755267097856616481665405935009266969321977098726003624370579296332508752133539450437640526593594001645243008357943876075463358552073124410616799105835357668502384234717702763535127660536634637010888002687420327098027996360466648440672893664250539663685520988882645481404457023066676219819289042347895630779293337257584165429498689913507645094715719995876447964056940150911251928640792690998298566126252169016910846460253306325632691287391653324851280711649282271538515593378948017794433384917238484640789170747657122039268604566769474437119019862705256567053982710141782619888450066219013512966629284729508242508515534673040009367444552328107253788062501736391262657977197250394828708637979573472719714466074922918767542631589665593973490187458871552757815312580857844037565813169170365247165907527751470063586183405408477308181544972314628651612565238948683512850865484476189267596990063055545215596285439031471083064857938002662400854879977126884653240695797884790839962810946490089101191589936356454816895424915515855020039444356055001809039499448841035247423919774616222718549918136891855293689645485400363357418559465229641898606776902344831746020205408140399406673133423949547427376585364258771515092001743372016735684020059662133624296479227555263664877370726715749491689921735081189995941429281176023459635359356193688615700645121140659224678175232541360576783566018172014195517575500709620793496514051433124213387139318248723820756135529484871422530110660496149016826580158948178838036352047038718251378793849129887441609574372132185535325177181673222587495290462562124104642380020193368163315944366482486765560937843268525464662194147788279070623100657847838007679592089003783810850273407288611217258847430708913996938030667316057504693999278620489314182055757121242166379396532501270232681868262960787508196864197946960395738190038476553550001410005282382641274950483914921029239553186538808992484285638765820141405262585318755948300811076580745183246988154808498697706190704004635945728292442595837684867546351479727038361546072453176501612379179847293939834576081693308591804473360738221840247013156634303877582936036546472899601653244023309685644539229111418433298040812392085882813707729214476545869624541647954054555138471165825726782414905748753411143551601834404484831115666498850746276306373393349967423517585209981749813450805214436421898501421754077531722255767893161765003167669670635272266498237220354285135810581903584759343054505926338857201927085636617236049988961641648071108549289464647256104934931642625889591523013538813166558264537502357511260489664175635593214673590221582524305015758081064518839287892704405379852853441197861603177137879434907432085926607734182730831890754294872327375502039485685756030151609070504446547696720919934701152836400042991531887608240918853654827445308975127312708331148310016774858816181484658018083253968517872772327205596962956954298814658396514709561456390724475870354348642738968148322677345480264279206921215628283671238711350975563764565053994749215960996302837071868517971690283669177883708328555765490650709852562998760333644277658190580230018960211375883167970141648511242867159300811796962203944997573223692572537926513354302918250525482287198057473096648924870174079765837125189454785365749989511426331009396833043932103494362057561832631561551465404983539460393600251075385140295234879281568970959190754959234156838361079611565004208114912279252794218588956297557236655593696141624699502459533087698808265856966602386287381168397162824187260916619011005180860551607252139354339108617873251109981859452720584206971335025271914511234905663141845368650671038238584520226375219725888820085036806689788077156328830789672299145109897457936675001611364416559369001262881249848084850562007821973588040193858594854805853831963925904946418249896080991796839760073148946091139242188266251410954924472423289139725332278705866410314021859275142022395941557662034675393427596174600468291397129954776643278881730933988243221883863696580045650804428562030737556216509806709264804601179519652564111299396044135501778805739475787025188293696857046760416324375854282763916398587240207782144103767191012381700739025133777542080768050810984193610464448223617986457511253381946682645635568411841732385519301041329073045550889426015196393794150979381288592645468116285372338783230489599226979853633033032038351876060158358188707087828105935740110584108810914909328783667578987774130500802448111823047388787923840861716803577552008959112193790493986303291841623455106446581517583263309960878071331533100685148824709174707012096087169770516418762027968345883051241181299702417709432581704012733556674025362515790474364802903768746389450909380619450259188568141813398945799369358806180344814219402356942702990925822716748950296426902086261473390231512121980664885247630426385374779501351304811143097653149800508672007636923620025868225719949232691015212085052499365490875616141297595102217156833200093585614422113050684028963643099308638121977912570734261919560273119184214819122079904091658612275467404728132934638270147091467675262886605789199823021154406846185655894439684533464769270721378170739523727711494795435150114302085796849837131698169920733380439864791482023987142983468665635985209269364917858612462322333093496288683663132537056316891726641968548675269740508488527699856432011588297391097015575440095700226922176942419785648432936523588420338302462308102838700797482157242279832859261790007396780265752434241195111920917743806889588542985122894691608439198258650956644530071440230513918207786524014456711098692526032920302988497601775951346277836015560451293253863094528199117142080418346610870558625190322132894841932969080519516564108970124883189223733131227808240245012818003719753638223864888193083350120812878006090658263244292708013979383846933791802200973968420721478803706727939057687913297875316026652621893883064323683451587942429737600914259238464672097584293379529607947046624831532618279568050327037418174084381294253051736783074962327556407740781419925298016402456925919140287945876382433845497794363056895299921017245580142351744898148444002509241393292880578361337829019398785125941094073198091606554448613089447986260489502105883003848563919216384248462492531555913204878344034924950158549119494354345138680508592165497227640666065015845782686897773073759246853589173281905142535866662289917312745465931122858823206407058754931729289034634603871349938083188295631889878739115982827934713514388086788656632322509827501701084292619412469487124921333085306894227897787655562735392919695419022165851172333606296399690444776914611220392617510135934534509368911748287690938390688524759796641406124931415139704328779353004666186914856573160533682129433405554376328272544407771593900307064406816553499908600489667671384694065071553431515474114438035491650641114725995792426306661805680800333445553950290788252063079660738463096207676347267346796765101430369757311831247329740585422793927494448674610524660211167167729017255077978997126340833517615330979939956308597278081502161879997093124939070589954170257481124826066778992797997694008402893261171246528903564445895443670241419190836032730850897730396117388517445684168407911139710186234041196478810038727779999123010814690203198769096228623596460488503626260165405072765511840226790921313052736030785630489958706700081560653925372999477276762040131230007938276059106842482821063246285395896627988204442075578674956202634849375358091994851002934378848476160081146987729350962659316875088443570933525297743197835475915099129971995350730205965469843602182030519063153623594880901341987334783534875454863925046159145268608372156909225335914022117694654046084235328854547508605049278218689471041736054148905947813458874320669523148094884192447079420212772012109779931635504051200209523845490648960663512727361349717907996526102458893210544118887159496548676996498907667368252656250570583513847236192678383995893331050232060313703219334734856115494567848247596140272768442521145551395315826512763021073473051605765606750079137623869322056649298264055917853310909200288288277629750005377579100300127864635012721730561924926327982329885724291867770464337792901687227663434832904470392473846710331448190980967493228502958742437181781056819355733686124229529700290970197846829399449650551565539647555661718261694061195435142300524700014553706231714202870220047753448729792944543690509518412476186258904359398329411429751076334717849201210689122658520221344982218030653817248553063351038677942543635388895856793779576286727395341925637982191910988038067881969634911913650110627027632952399377838732814402539577212047213208725347286800142702521461976069619931042223732870141839593521012006952521001745884003963234745573818849067994822442781639046924129220189431457218769456708797670658685742328562708142872417492596745208993781029313084300170820514684151292937735575197447495374356100325826711698666079834224404184268958133663860117505391483079780039369489493821097965438607334298648740493061170720788586990848630300887268645723115414477425672183774247724876974244759420929190628658347711182342738612141119653926016045195020829171271629851938984476935917453206476771138900106297189570752638815667733592592401025733080757169589331633646266274115988290207980766596098573918144364246293121931441133933132663408555853203916364639694180055390358631905297917604294323756932032718291351156503113073762105451670483326030287510897254119024276224055642478246050184969017743880160677077624073645476370221828707720001835658329383917250724999329518371395495618437268797462441129332056664530161464886646024502886340924320638475209635855599709352427503441112967577926812395852378960281036987436591814161572508353716724724568171644697457798037718226295607291307313447397468851677815966790565385098663213084904453265339495030534867890113681531858792397606531099647969670642815022957533989057675732841472939748205457889276467921204626398180919041185700629345818632183722986539744470989811843007019072952608054165017257664604206068746486088706721632054679907660193072976477850639953431390113370539956603903650979889651548417227987061713662862836086160523628170970445785755919210060303788046197891965628017290276547938993583652339530907455179426595676870350347182300549923733027314708474686116013560314899048573692100199480523047835172142490471208849647099444366078616292769872233491385384802835431769504643436653390873288937671591084816684436990479690190044360463337123082090571165559887778776835016959674430549828677991016647647927501087223063377241347768003619593925709132796878081852509907252005941076954935324854897621552904188077321531638821281489041363298027244284976083221199500488923036344178107639754800570405126102784385174098640137526585907693864843866338024439888077191680412170365518162733095678955248214017889907173043458394413022638547490269709926517354656362683212557172629913029216378890110148980589539592386965511473128379616725690293273291261151906571133118204657571128966551948712664782824537327141991546024208064099019351621943459877050717840798576813630870573319117028807601272858966882516240326540711341560464270973701633085391939406025601884067082141483107095206789952362121034983013483710914183524913191290419705204611127506404429474232542302192290851814383004862122773379044859149324767751123365905281715690518861270176825586503378857930992148952278306586675854422761184553088935343907254557439394667965593109125704139774943395707201310974996203319704923519537710340656643754316748005191845038001181948108113854454324866033161354469066910878836012690200306708799369539514044488113089793131466496378416392890015671460923295929577337451803915659315450388504210964777013725956927995829230891992298702515410481123228848347558071449692695940613376863657896034367409642570139522653794587418459767931446740873416172239070453514265609745427114775982641031554162020216123118204209916008510308976264131634433297908321089373188910540388402812118159635547558212623749933314238469389873211498010106322167459716761565964867382643297048718870415911095854615506108039012910263930161656446074764070100104236582154448801347973289766421430463017925825339378475532310149957564987787245116703544108713759549724565494657525704379655696731008633248358960883642158722205703745223816548681842037065291753267882572759483058351636257035802279341389550620440249364443631701185131355205048240655266575435019711302383836751573582958056572613891472321008483620690752252034304605273885732326850417849841334758440679527088411937687434115823061139917737057210324527068053294047190480342344361497736161293030145950218302590182103924848418611305726015454312881511601343674230386420152685179466961975714866818409241195617675333297664061716609063441765865354432290412121476193685750403850394302765381082270196209647757392982183120652575505629919727921939657722984915408682637160807223495270449114768798291653763891354208784221729550816755237117180488458663798868103284886960515468918064032535613040731154891751737506912172306205814665720015543807774926715658626533780713518084974362252310258190184590819212237484397754955028456387041800769577157367907049500671729223020016712149627610702914600772889116100627531520697085150803247363397383333954543357983397577085521940199419989135146357513419759727425409324467116731815676185258717554493987658567384126117988163358897333067785915808853996894841973757091541579850305652632921718465396352918960068473491181348017476361460946910849300399727313761498231807360165404076504564453030683752716676803300553122243385008431480223426858964538542098201586770859699424047935382829061102275673768161720554382873222640763487760531086821704445522765858820568847598718835608600329969154933235776908202834055628656936766271279600551215767929500424716456960197605907335214801847788621633587760310709214524462253653484785959742707561088335121114674567519104631922804348483224018631214735157745217319312969062441882461781682395213829128396354026008153564564610773844067297846317826612192271122874765215063889983915443894295719459450607536488025756091056702914620546697509593444895367704574802720142226066142236844805588933069286504150978909209988805978384736438038094455881352990589050395034723930557248006968668438597263950918228512331269336855658579881819837988474570657063267131012959856733235947324990346513400743978998630707768039568485613032990444296029313826360998143909495252976039099718460402104168775483060901969850792828226919454745397773020349172721278510763332681536679735278135743263616907903346016679341092121666287943151967176819042051796775162843035997763424388256779824439214035327119880700196113260129961947339066802164866283130207696160389305837621817508561542021804476894571402204730788750772417848989530997273619410388398455771274411290986994745032015667008825761526927366782620972768713502901192567213419514311043584231521740410777936825186595376490486402459183265048043840257656597143132816959811377573154962901385499374921336332910152284426411340387744202919695409180567539796181031920762785828430930576266357585904291044643108932499107980179659862885532110693071628318845408170909839674926226969070371979508602565961118145754145301099838821097889930885527152347110523327681899449150119538487910504051994309525571100901380773767612580393691041488365826376906601219216518295344314640291316531859928030727659793410497105391565822630338419862874845634850612348511734778530472689588291385955451986561859323016361041833250662571456987645216253643990301308230151081434885158735891767179942356328137010742677101335707926480083929719121581402049922757249165246360673523271082246433188806524607625747351057911969917947685708361969040678251461695809840900407373604336021993998196301037340914548637277516182662660800764462226570391243405207254596578801746998129303758997286944135875374171837968694134967888909977053097544147512060176533214223121570524648169667215622321567292591596707094231302596877310976408708143078955915428477740401861842789513460902739362847124222972009814939335003035199596063705587159621455737809287318467301806582730857933309900216632956607920582932700056479156984209561780344147489935256337065197081404749583855825076449246284063173331662496259578307763116735691838929399806764024343813013086023067671170033672131978862948436396761608467701170118776958111267039574460018489252038278502388891784256319552464488720480655158894187899236132093809995228524746172384208165365149022899245601149409537984245422386546531547256983294298890011036364090239739763282046096727278921206862028900012790359195597374360125479094303704665374633740040113138631543604872178270582856099022446668601464707584440527332990139304628469154217115907714807543950981279820938868109430162946735132071352246298268684799587472694573762774987855545338513378222742500541201711533244053878213145066640468897210682220820996427685944876508859441580720907546600018311448141465572552071047495658253620406122022905611064288807501293150750315729541957463643271182173702050369492121881366560272930762898671582738953940941615607752125289714213297523906006729812286385050801941627192607238387740057189358750010304748677977017484421548852024459873590930814632184021259987108285487079411685057905811329608149661733544541722234069420654991976648444611764896369609668365098098525067975117608848621177595578475516576361173146311126180853287956403968710848434079769401370354605495081975653520204593689909408373763555775046907959187384436740671625772756882376288417231643068977386849649080724855111904445205864096660784288113477871346307391492713994045485786545859740084084249013549209561134516147113117892092497483714940228775607508631662375664599127460936139971687328560226234106619685895215119102761239298473481553952012740169530086244460675234403906863299299889094180907367002729395697053458861066748622105398026348048882611348742669284258481261513770716716335385429413271538657947460201580816809461695939588962210315982502103319541536317303627904404448139037073709326446522706429625223515747520869892309379306732124175708725457286132623847913734692396170277421693485276797599462207847480528257452359091828600084998389604445602013185401921722266197897447564139452119961130036691663499852862448013067053044721174160257927329695625399449656802244930306847954175743503313874283154871141363341719107282087144171480416121078628309951113643213567031467000082434589649136248806279451448682312416243805864096609310593648876275845477386317548113351892577415566185126211370472198818705302210721244481356412111671433786226698819377080691754939647690073492230590465855600250714052108563801222249206032188638329781458608400639784823903289539592350140562625857163324668393486537098975760608855781012555169745805048737906771937065325345475473886852858109363202571504941555497391236716014556302059289839887266110570893293311927257859877911488337386569142710973919152193023826268115703056268595603408186755712936373273194194868109625703341801013268148638060797020239275541733448680730638270543399165377843086936278342034295802549306161518218755454630885358822431664336661994185302257076535703187546491496958828484027323518679488586198140378653760685247403120348999961364483516775178281069629467749210636536336247996134330300140556796950003269030510102370613745641410451372203574206477770167935830283050370651154044775410207782543385257237595912352170579051783424290512362225311460261739019272156763877854157143853504539258709824924838876350574160136630829405389370837104588277494401366679939384132449323662670076426836581775318919790953236624816208034812863528004034252368783559254917723038450555364585946241779716161063940466165867701445366233786486351491938811169245161270854335017002233331504612033279127994421572699247369246719008661706615547626217722436176673424259361448467538807577701640348674875119989652292144617428044142183700650561212729435978868092754698166561692624278211766568141087395684102575538139573150653326880617092213165684330127453522647123031553347412166766724436295387572387346622037269047113935786917719303669063589850001082191533338932141378539804016404616397826351398060777109796007423649878869790729765173355036568924323294889935706722021816578129954054972347198784090104541809079381735634172297760735463950122656836447035772891284219125625963933064212477944777957905065725295936836905807527223536592145066098240519326681025354215076648304366713658429593834695184132778844576819450608359465899100490023651863876287162180480021017618638423037017128555208560151918041710914653921673393781223552219451227940482463395252034581762956473663235656014470616595524524002583676478243017546760966818249955244560649601064638507361247692606884885427689656109372083531400023891541281680860866406817966926102473020787604861670223174959618578283796201275356888522087761740809446598389095753258810082941261051758038855145398890509058793061009936223941787071676738942386534067815187720617764555100951075006818723907312789764802024752601720967635511277155717756204476746666886300375883746398472721297382948033123585341255741845205887360237252988137311566784361142047603100777823192066754446929744648583283071271198817302282656115559223478956389538451604195966715995688279073459771635452414061209614181715472124551622512438774397730564148107185742415023766298411836019043858461379722797651418931037765313160588272144666530532078942440232277017209739250219103841593291058494900953050027105006804944031581274966540541255036531316326665579600966992249783468924536135789651062813816106625534004439750430536691428537085275255006945796637432984173373121195865188598247689184322815460781528198470702974859000308653335276074439912336156917640846138183379017294281359668281361209607156294692842774067627519265216483575182254366162425659666338001751682176605509823462681121485081595060635961064068872469772377115588217160937708031405889994464863172583796450199231008316347263386350541351428008406880336111913446919693982515598266539402773038686273347766652373802769715895441310530075691727889528135571773704449042238390121154972396457255742558870917274085106396586062491425785041143791715411155688998873487145764299851176134803709603996741221636259023076045053019488877300166348935227067946171472489538297094620781659381693338664014738143063249709308028285129514123219331384748789536422857226885454444630341872303758450285881643320085093852664299767908195640301387692936663988210612146939091332740479008267096692441426323992367243961423477482149195728808321479075947926363548803761451418420562279508737937845694937613230920916629909412876241757336244156101582998031024303893913948401808828700989502020121612200155772569573979794036017763968897163459213540300950371432370684147450483661252575089739681387562881616633127442836711014390518647372945396969421680166212504790630352102100146690767503997323319251022524204799369946760179030247601983205954141721546930229092755676359894003258529058936979275931889791437420406367897851666851316864668481133161762783540222987424127634467283101387838196100436130242221993022017403870275168224282957577132348700706818492086661058851202159950453934754576544511569532388348759429901521396353448349184816221274421175893191524252748569478207623626508703695035142433229440881002740926483391690607545052749173965137490466096656582056898282488871573870307914736269427841594910136081242136167258211577198192350647979631606085608661169941295557291119028668608389429214505470300920459275927650189048537356573806831000356163852017056431332600412576176795447803680075544538997894809924878858006430708995187836158804361394922003256907979903047869361400535765563383133619442735954975996859171006789786532274346425832942668085031510139479945752919113299922213504818125962264060051846427029389503698184514029626988700115812581754000728035608956407565587592063134764318558248141514747111686805457714063134353106850641886921598672729691106832337728517473189519513916789313670031689372876198400538366358332254129947170107509535301910966302676536130518829358786683881146108590681375022205889136983598521774805985460340198082336973616215201466992334130582293242173945798742390619767024210823424440850913671370674246786252234428650217131656390357189553143543114452208245060725682166078948129587731067711206512344151558107425612073897249795261874557287844577986646456095928456799185459990377878891294871001314590385835867359841181527874691917626276651389667031788054812772674756658132428742910852974273151054549530466664948399462845770525589018213928000924215783843442458461797480885903752784454849339253238139760242740188389239994799781867507704987471731939380405793584356797055682797616940048137697291400658115471336450004504674284749168132102602317275236153952991434917397098996004033206520444702205773603849081956632896413552368062899450563054673373989807834618963375090160590229763469246005069689166512098736238343522553702845299806553489045400819241675596161538399590126155820548146034594397081127732358452656442922285457374191832113204165631657253728389945329204148578497072601071081091266247160318874330097140304200560477563569864074322507588263508925224289595026808381915359492009168705889983399255455422396123063489443877275085424611923173512254289753493648623765101085728225882075399478197518654864738669536468350031649761442702933683586943606070218223395406247246004038683189349399547906862772621394152880368250121135939200575017665214499562905776958654412195303169477076074615024903966809740186213641077184424038600118005443449582049473624912498158209525014398876498063109526123639215691877237442973536340413667814834333435321791535206507402372161568029737185335081347877503732305975633534139818715109386308194822274976891102021294551538299148970054990498491351320458945043554417387480421225886967398511103080707870897368644999069760723865524921755768059484205067358668833482292757819324882787878226529383938263778732337853022451203032474317995701405565574884809755355141976098683216594104941262258273155115391949946115861796554636741060555894951801774162492585965162331245626830886369645010112656507593156431336873931389768971270112780386112870318490722724578182567248321545743509620342342860954916596635251875308061704450013489949005217199828524017438211095724434269702769335135883586230002304851138769505891617924951480010752031853234857362781718698630189538211752440557409423284068199650028294553999859413082226985681540419468402359024974717055922990473957984953750166557913429916062590198151822982466816478899164025707169798297365614273427134742068806992069806906565549364975932571299974747646881063966278914510228145591773233846927525518288993686038341500940869759484407994480717857578718981953635608240958156842673009998059017517300780909214516540367978801853313342317491502982649723345550840780468123643886230322073757357427291319968655008955869882845119081685492356197979311721760321267308145527899556451060046535233386633580015737272068395659854083653176582202085975889174000122824550459967902659577986223855188487433904604873409191879643324521461652582097885523951158127126534818004493590104306977417376337979176933988289962910277849747552204295904795446192991751933517900704926446027902622813215590786597710936446977507392560331691728289311539933543214743735287770068642245128175073611964123110969473938275563563957049798461273172965757673513342297654389990311546204218504496000704674993705085955634210758421025402318713999885707353846131364506040767853975190506004598611728096229764885672235339003031208407146286500866354832799257202809175891844159369018949882630837355206088579645840141667199818183491096410236655038862525235279912059213124273564640418768112098010044763153287329587471066133678718540438528634170413242743674948831510995074838297567162866139426623457163082952431377808972792773580582718373835998780374980303424136382465292411648404823944445166178297659305033280546283314642494176479665878323528472449167663378451678539947392628203517702038197411331793061673869963498821296626703628569402951090609374220212200179297324098309709240450092655887458233435121945931236995437809972699994088337838749217691058076966034070526109529127375388442396663346227218399196665225795855325513943142349986774692565483154635050686524350580017477019393230758319176822686580676488116335452864491247063391917973089446484540588285200773665924002978574957882692646573365488045879533098365131770563693872655585784782209945498119918019192486754088750801999560397394576917208170934951539289710388250201000317189183375535684211686353957372599557910102677781974800944306486635741837955374243721449541711125983795958511789386330959088454655958015823729954380848826177760077901538679222000842408243550937449207755433158807445009759371230051738023761554254501460753858067715747783855510974016400676271600569858702368280401308616502196207778586057454969769431755197614820928989582023280071130347271469257507793227090920818657648060637142280433511783496918908550050290523454332435005883687456218688107023888651695287317833003753631867740968738547683777968831217134456544787621952674707845599153049919949193694829483216170028541191054033796601358803071381883062892590504803018143277102913186192446824504784475145111244525228784038569168280979975371896533502801061739038674119766706958971455793371503313042570003371338487164622849748484063934143850077240920917689291201190050642588844059555232333203421299626059737059526170230003863200613359148038791982967574480703707209834788471514860754981632989314543738257616517807927905923029972365572191882443452516854978411054317360997079542566960086546989621296956821058522607841457040533323920050522235979666715656512714087864627202170669262384335337749563648114285083744951684281545562615004753833804437019819730903041574540823962270588807562133008963581111379908537645556474714435904176203923844401581312633566630600991102189220158961262595368561650141970401953382307342791701439575810217998736955913023128484679910734448085681929521053492947862798958297119000176127540901771600361071951634780209694508127276318050010679721538612097892019535110281766363272179134764567851931014405509946242444135784113123430354821656468567176968281819074873537925520966150644997788224117498641522327156265768229246455040460393407177552282479468299863880929997518939179232757844720896188150255575286693947681840889237113660686786387234713008995971145480117080640886604013477373162992970743067047609636391821286023303991293959764559811020961793458084295029396586001502696187960210822770441910680010130584490816996513500963202912623222945172071879420865232264257700957562857671027094770859496238261085778578092652788069186011180114193646129831842825603920126394729930428580606364089890019622657496032263633019256712707968644049566685499032403168446126311601068784380981614555901347629191239403625023935604704204695268901668097028038467275462722394277392413535743854233017846745172909443138354365302703565983594959610255278398112589581313337080189265974063763412611867826441977506581497594644079984688560979949421386039948355480661143391068305618548452769835021535991535142547428695890211712594403487658047421211105676703366196579153642580724994373060185087593087424851128038902946884176061314200464720859681903187717522270786207629412894821189236784323086143672676951805535401149495140552898195688315601305564790476003876279585582991071535239371850659349529854124617394345680601351331919095135645425576151896397924175359876906812827744301088979079510956194954654487320118886525977612070046815864160658748915861424184567352005940150931186560642007338122550800842791154675153115701308568350998404582470179049731957359377843325611568164541803340249084905900408585542467357830259195273898218025947611401720500330994701000865896137720820982236135888677811659362736569955005353755967089794877881326753270571788758250997141162711542642870776046870593654302032868139559299467895736637468841015779761838607785570244413546210160305157615143485890046710685669551781150140044780256702087068249136187282673400378726273909161837632600790637083413323176852663750086731904871251375250506235202391891253485458903189654442916248493738946789434539140317277081376829224206574887090082223972107014913571987854989313089205058856350584621950416047376478581134590098934955929737060224398645689117734378851779580399460917416860055421194993610137172095320999605153071430619311002927793873720230688025274070235516135506994848263351100406733791974823258744711863649138134659071858512757697064524820163860080283124086519794088373377500483078226481591520751923441737528590283356069804207378610036703681865496929562720141918612960332306654945303184831934875736603395352089537222808410087902137424552214806645321927916997479059381579055885274483238740440723684927629031058629904804706029479253622250513971667388371433685242627742761435453783970561136250936425337313061485372537391767556671998791234759897228474869061673253094180743095069879996050973207674639275128028684220358253410442633589626158962562014300387050985397714475349701902148181892778478234227959564559817408702674000958489396031183321372517282974132321898698018607527067543439186517538960239812331847400629311177528402947727388795896887526485582234384873931887420175903739054344798508037263493886662280707715042744448909905184823864782438624540864912764249287830119220953868748759665135530721597235383733013777049977973930668092334586419077777686561777450149153730079757870865736741085906970524546225401827214093675880908482063272518922630586986701684709863594129892404084980980438417839650978977204735495533033335723411518386024250055806751167129430119703359951990131482655571877814506253366922078742324097912237528149354959331736240827978308650626970135952155399795370796212059060053001589611497808302306007069279652638334256438435289765690716007400269676892794139445502227484949440414486990024479442975435399129598221377601075595069111121329137383851490526520607486406739914704725706285410155125798218527129627014929548522436563888213277011860153779890400717622356553074792097607406103297578618346903653871694924587883987284110515434912465836251306511089870648804470852184410386391812134015538035417750087477476496154797422698572146156187261408179293530762316056221078237404100836335939687429181465539993974878881296754960445279127840955590027675431675190224933550329649902584868763543411756474073874126966048429816076304564772125527046287782606204483045410301612155425592446577549050759496839276007752490757300655573131391332046638951055371143774636285506725339362172653159513145189641482116108179972112282983723564983423494936015674717486631623000161612072664977433433220777946477502373931874699098512194098377174693779814897238088225776693308196653220997400001470414659562076579672930094556135252698419222464062007082432903573613877604676620858142973854147443726129602382116518531836999943670521764108652364653997235309501974110503924551994900617349354642162337185149775518532039521948330671683916423593401888732577895114568778571783125581342304689583354717900137201808192873637395448127413143254012409330327040864287926613637216669528202844127478344415364367332481903878359800211045094210396109523438069914633687179026405398665736647796692260587373036490026376182933802218563329413520753578843523884452374480300774149909654181981331327919956750133585266719515841964804882749387677868814029452796004433642038170811108049070167796429164987721956919790191064398734139351553142943828095573252853575635575711931519969205963385363740267404811192904343206110211690733863037752343779010111526270782563505659244879418117604554527303512485022720996245652277833320269241839176924183127496346196016766175342257151986888670766039922775554171607053088702622290510721369200961317469572312453086064134051029903941393830554829126359794327148435215972069266594065905244886026430556647265390667359654636299821997788454445246642263414339248972975686021748838831975452746357817249037891539662414363949944500787010752385628483953365590638480166931797424315710153756846068919833621540653415157967295654482699524695235118443600363658307568511275976946486301607235547605351685412877044371629750722512408944857190765379840160122330928871670967130655199395684848628342337099228338185565415126499286694152635765391376717868393921200372232651826901525669921927386901223988679618782611037310982277054936444326638134948123336048185497869290870786065468498198911043962289379470540974498071803036110524655430149853185896811445855487363690327360831206533700976574661616766735663444095734101219847367594041729058640676095609777294178390981836789140613304892592859075456349198581925525773625114984393397371552812306661513390930336559797323371092892219166716646874623797469540822563440393658984741456371881145578991256051220703073603444579206802138779095387911997916822171473617726293838335029506370559560642502831061744870536917406995344595999149884892479307831692825446523964864241682436547477773230496312009048920052788000986717005304819701791402356047298621669397748865442548027315906663410889702204789579742204286977476757505262498698016253464440610742343315119063746711085112707782373138288665263235976083884410044194504780206386456315005593420187846113230558693000187700108828145699254861443251821558632843862942505520464305137339034740640829986741625955878376263752746815589258221159865760340638457623414468520624821800284895730992664586000478446355923344184568164584592301021913004756562458424570844568983555687107828077724429081981417317919622246869558420466310242338634965380826715069887415846414963303232425872583417861978097619435221597088696965209586270492197443561485338914712281058889397204000719904782140310925641621681706449726820739543745678620330652402556977396211330615811808979718552103156863700343966445601670645124627317613863371159218012174398604827453785727104656717495956010128559179220215918110903588627459783789616196483870144784491422377832452810446030789208983257486388359626216793177829036187912614705629249346674472479201400209678677325448492936519041247540857883827840022537974991105802758469382858141005206893503962927874032474462990300097250092972741490021846721903520634862213885395536199842069290998005262611971369858600772764251589565847557577770266321226601925800818364643883993163770510579867104361483289857490335848809598008424001086416365485510366761292495964528457093811523139222706211843958956261299876460574549177062271205824817644845007881820918933073748189205173200737150598210036211130835538436049782737868039093053711472304642000835762434550473089573691457633457235948776508310362438291475570421191799525982979632975731148670341058255609542729697433233223539377846650121089432142603429939997272432107493095015472485153700137396876096338887308428402430695179040242175084464634726602320096614590157128947118481575417486639464541761519938518856327681043455269226040481553004032378819680776798695707985116911431846506646790458456058690520496886753201371791384870869500939311012856170135978566511093637343884102452576347116324260321439625210265859684375048237037599861797990144145528874420917447447732825656441433455217920509813742819970450172950361465721939739382381317225028143340991509810665066765437683871881438989794270549744024644800813655714781414780239081518439087893066459901257943056350371860357059206939249737472071688368314435991392988449313445438787523672997365943343235742171051323503932005329897060306612380489239673605080355479990489937574259256835906856084299598660128348538411904009988935028527203772957380171839383580542934489344958504906629460871808437610484559541954665678181402485950938070851183447813308179990958389694551407835216470692858422462739247443966656132054560958585513168631324295932223820507951807942723034439211387720466184788261703547946722888755915537332518786179815605735140764591441360351385810110669240688946398234814447956891716591595639273715934049539212380107049913124965038367207764447591071636579788617684152300755185431646806851387212182888906793957462338452065008568014314485385512647977562420270194927022845425989437545399465107941558722471039953618426191288218272626919529681847277487036116871764795141748387302601915428883817407704699504007664093618840446218843092589644144353243348756280006405107709542483081458299649225032023414696610763182305817301238477441949495079564665920242688478742988894640207731073770301833210170222082018790413929021385941828912710319869531344824015273323354743603556523604954928919529576089020146345500007604483717018223031202889860249994005749229483816716535322364729164745941824974168068351461986273673174663338482845591698358606560398698122795586013138764356715458996662336287463372415629465715336328049740522825648568523362431480522063830701763751208316875081905130231370057863792438694000825340092274722563661758216640056665060842309511151403794189556802434166220914739055002227645834272527356020134901091416592643509296828617112294737704982888113027730967101350390422488854031884522649134680280373961367636386223275138123129298953610606451168506499138897571318894151679192994465734642883846660595119583072172159353630199221539012627585225856392322046052554310903690394532033284024257033696556655421075846975358705820178335127270795069661676467890798822312955795511892750438901223988442678435044042637201163370537237576911469659568214427835768834642184807701520439523996725989218766040945309756785741025775369128538742721786232477950120734184200894815107180204620630248310199860538519850696085572134212963892100932841472731012776812445802139673588625473461651346096202675576095683579354309069335623943858777211805934383177306891421701072274517803747331074761334692252441878712929348845809605534844829200170752654598233722958670478129408214086955989290104059186147926985955921847429878736610885065547794771918759453482257980576627689101497075973226360531887599684799024906162256171895114799672664936389124097225640350868357051279709359664377826387912704250322424248301602017590801485824500304266294782886109276704838056511287687268932497136947071182285210770586352682176835422113798268961591796372527483244747510642254235218732085924506458551289131456188942842149380583734039858911228723993783848092545919525485922845187008161198145180293808001723595645269384797535013649521432056460456784157451161184150102843213786124573067840884807746956048151446981534455154896477868621442278403601860576026614749208557369921318265411477251845299433103434718435030474674543791055833571808225811165668023519165108449046385981164761173244431066843206906054015995069708203632853181247094137947641277037810989787055776310015064157496968370430098777054609794666410713368074870712592300517760902656084894496769602633884599318120149956523664349971103715650085744211640913853465567017463138630432905865168259843386759762966712249373460353668265140649280376780572988314314348488359865609571093000207695500741187578148804731222994781733284700079777399154444933846353499433651785006823791250980438984451154687107302568168881488937351389285467405459840021825547076245509506069318031142497464338151172039931222878521778693382340960160939853210122912761007101077328855583806850681663494745121071914149775137408358406049170925136928766556888143101069264009631805074723696714535596733491145685349089145538311586929574596513218646953291277263331501116003293909169845743201062583356125696518571994660973780987732661213156735461322658375531644285545109807806816183552755450558701681130910538970654306668757350716139798488228771140283815322841812883362491371132612574494096621161502654840545124973653942488109621672173234884814192526427901604569491435278304531280006404501382831861856018945672037683759651842475547877070499244287984348585972257401984228364054700371815263907210168928427677858429075946368467533436653289664488875506588213273322975844311103738053209084258706824810988793971331645773411501446992109987164612498996375920381973065086946978771858759824708740254961216482284348252898909855125856109330597175975324565013404044429437530851615574284912708769620068667189587764831171874045772295103958670732089139298849874333833388483146694641039799665216358752362833277823903271345276606514953736016863137425997157846950862106879845764466176715262652495197551346689902044407762992242467943358310438001345934914408251042859383939601581982759206499634771339002787552323339213854290111492415364701901897369353750820383148483915356714473666834155064859233790639453115067400086273162466565485959517615674248796839593624373447093764845630291422369112637949332117316194533559828966162208842623121746257350422742359635505132135469199894229514314647550746470102242902339910094513840690572969295449196045959333752728132523725530336618077424656437643478862285764217611955017491049837899228548762362946351942629269243559767371269396227101169551172950434920965028912976478105789602418244655667017283664727805932763961809161572832227364814023652056836441869190078971834772368591383892690087779060057004794286217930438977666669716275634593784629724442022841825817800171216342446985569458417177687076939370222142315089227200985181182931555860928940444208037805418862483960561565116928737994552545837787052936592166139879074755025605125578597638884192703556196351730899677751594408718445410988298536152581252611196156342496378775819707436825741475986930735922906034928808479769292187619606411457574738433312623276354318303595639492691619891689900480855016702211054417605027073351797380140912982756415936590992576547809915273575465405499174988137431946728615512704416760451242810733910463765892724152101552007861112684558579759776643299632974480484936863088862000154950377680724921601205771852359128185682647806151722460327762795235371087170060569519380965421703662075172039227705491740663075716689487806820486491929934050045925206268284375427668788490427064354929534729215607985607693332311423067804503336038542718378695960683983725443613415358186987514470386613779785638247730609985443832432521380065272299816136476112542457066659365799947440672643556911839826022636038205882956025898199174513764004445785441795786250312556796162740875378251905102031278473494412691063762956066606849777399082328736902677914846513621015206756496813139749915986135792631630907725855803056861727057826748598610166396961234262444817342526573199449742723758066142338100676125458837618054366669244115752996498721489725596530537010450287455867525565055208286447830696662598373267675574415190854490352467934612759328130140994743235271951081186348200440420660700710720573858699743647438368594232031665979861093181694526120851283174999547254691778800808193605233280667363950359111545774386188633929725509625321716666048201880299136848406912397084635619474996726265852614521025044943831775977752111352727740625196506341728118447037410146379780345281897955327643342497511743343547261786599680558294339684387958207904345045922398536501387994473696155915964838654364648222774677274551810134940090158945079958959892215864054048779368764644982724501281073671032149795131702470644262005154817965495151428926454868845797397301989192762248775618954907950937186380405869262171796750290933063702508287598430630215974681553132174228067221564004861191999807445065455571168772348202855401523169887441180081495247614341832833764761260440353184268925456353145463885493137270981857487468946826059498207077639903928386752159565735953397994316198447683670720248522240543541234338363169195747061941085456156228262164895587633244176094979024852463280745948303551108344390659460464248535703319343606943554633154925504209536960988507717422142769016027109245608647942214658817997039960273230458505827614741234781601218872666382489644761432869796707776510057062324160522763056267733185281039595288704493252734534471132339680513488440637977305142989980738023044557854836509878129518791630312903814001909946717672522801906821838688990618698186257942833229546827425263644625721977967041050086408925671783243919903052769497186219706578665546427512430895455452041112938565679901999496562439536027064016806848557132716831752926925843934676050041927160005624130549716837275217959013305428830015264920842327922067717812316486646117679461505597475816777700713033677799599674062642100107490659453016559641833176686867878362008227879763029807428908188748035812756375659977263015862583447604684192722887187761752653735828837194224869620128658245059336423708343910549440818442650429242403420504042497465626177004907612380142479845330178576656021001199253074282146207366888568886770740313912447247417825462203926928090684707452313659283026452577318797223269453286860405920219311337800256355198729116652781372034869172563932709198745052270845259068912104913778880787635047538162746330455616975738075819275286035054266031224046970200715323287804769004095352429919511835908863213062288478414587575109222708279021580998943760140427453160793983228764714446717625495302021853462228353504569986386549512043072818229369274570046590141253242373835149591335716278546665811584485401888727975932322063967516724097112229068242358146079358389770055442851889551245154045151111615918641810885070990428197861919801611748647999623339809524630725319877098994128986066585502250934020197260371539117874828178179735017590784669700989508280308756889435991266625116777307132646821949617764916644525921122110868368546010795435391192528273192730436211129823809880054156538481263030080961249504323519144949910339659474324780161799961105687493522884231483298269261682585631132040915324126820428268381032200904068172629163237276012130346992010017986302663184052595252789375969018288697073679497850056749529790092440722160796256489337373200011370614343018690228513864628949054247192111684461188659703167151314219790319766448716438627308610345773131998695133961243217507186239960171107326268545463254129099519958817808537265868919282682250116302337722751329344514217771410179438700132610305517174964299314474276903464681091829183868487135434658497033428234555694363936217074045959860513646180580455461884057050046436295642351695130812943875718430649137488950192931965379424847404441140534768146145845181700438017701094204961081028105878809377400643020330132195457284702213720888506997763316782337751087858124128206824925144329207997057957611541999802118453276972601777504765861214221617555603481381296065514931265134537170799028848433909265117773221719717347270753788293377158681892211269181581759305546656117201770902390290062574872108827048457353416000134120186263638874520817579247099946605398990191375436166744660757884017353954956925929878953659561208356803232682044295140273947302814504891707622543200775673127269505743847942488997376145968099401833901909271715361034975159102603838653005507969498874517714747841537186830374055131839353597510145757491723200464970125743243431936684541518740245719395559016694939356876641419385958361663903817001262502389857988455315080050522190691912073258264148090758992840864542795061541550857830296918899320130445174038830228404966318630796080405263418728186111458349367975433537780339344738976438277941369425136979751011793984944347460026110783952387886588685842989119275144229962599866974088553006824524370923464407877993600200150507264220849073525903276329626602692064723071995874071445805941210362603344811592849188423337333029785831313349814077220156604009645002550662875722714318145245349039251015391801168143696774772595247782649650474578523037003582164714999081267654490604507329113237497627083727928534118460242859565758450122534227347339969125299842842771431711688251295127488453055948948880614556116925268465483364860951680671405447458700737935272399302953474999458682598502573494454892522516305020129323780709490334978510838501620676265778297575636234607031479770640288206586109774086994952995893870452371899797884027321166735061372533407925290976551689088494264060956688896741402007563819546451325457589561914510511285699229291692757081800705661119428080897881222592896333916175775031988943098119005340154029508340452716137275697019372650050883049109482031790079507859353555634700198567268525473349680868836887678845103232230512563107539336734703854913623174359821173880219571908349277685021697105620426809639218504434475170790206464712624914042144950881077678600009375079358704704256117380599868500941693654037898175214125823085119595326794447001997854076995095972496938589365134636362525374769795200238117853754563806769064406568110629907733864027081993349249797604234117531297219911715955043589706487139791751621693268459595416517616289352794368200514143874662900459921094002930525921818641170156161563782890318907340855838174394165941381200808275617871245041951965567841898600818812399317315249976455075006902386460164688397675480274437660821076198521175916874661725038446857636656362553094114804192025955294042926270135013903022744468392320535232446059742505142293320897138137140377763655878411949318131346537530694058408069653302837132570228431786684841184049848165809444759926230174260010550483744577107622786061355009451843522223301821826150740229790289126862753299376701704074297207928829603085801714315593043820441635705500210084103149439128530389392147832088125297045906961496174850863850358869060270346039388255551409211356607656147597797579089811278397694929022697716312952502338519390531055824403215936980926648292008307367340110500850764312414529128425827794215581910300554986072701687091662802489214467617887675215964892717005186618073390845603513328509342888023687463451034125983210529777844870341535080788597543666793159452210005864561303630527453696695557842509410896519773924844177015688492780118190767412366997144674792982605735239299614181378250852809417522548486049120748825254688923812532833470502060144128717338695916257493267858443765590888069269262938335797029633759486861529194044508520895129366512341736489906829631464478964546174665599599883868298002099461654249621736197696708983538618696629688642023141317572343792717432508359965386800900378068797017475971416378955548415427171013902107044400387892630257200205804649590793421702714017885537571628988377358159814804510223113816774262835861495812887143290797009352283565388853681702142377138464962591542261362361083647938876252863703189193409320832708143420568096697878055186307382232669617766685797013562890218347177993728899812159769752658793159607322193665208267096485996684115246325387290026750536092823326295980491133905696141276133011003041782629522327256277311340960548344421767404524213130687562769636911521974061787665859203838904359665140463618388584557968978675430786452870905659732945418698770962522247923929644427142330620164213799112136024659125175295145228748907270280108081484871482058221306878548447018582581662961812796061487269616866727850238382852489960468127423116504694804873377110993628703657176369809403972493051910183331932422715758224046521186979773668557873450111170484820578045435993540870609389157565116423360189583616044091784568713678288448107316068689479003703146250027026165952594358611403185069989591227961329479918389391505581191120229588695748682515556658786184206317208216930885051547942124586141918218602013649286025278040904247937997599836276283064896315976028504351893768266146084870337807649946427026616624562100102640557855746207202075558781418837247732988227681928674662685019654536792810666136101836237260670379723705107034753085180168077134297590775022720898392814687381018898828072229788018376860446305805019854842576245893427038545485032601330279365834037276984710241658667081291170958784435435421695475410877938542335019574497921507819906377723716003614743171602194045688383836668754457277427537764671445918801828987330525690267889699399058733330917910052925417076059738783836645843470092882995895009836329889758738924578386486410405055622149130663880070204144113109280039356490861846080654756016622440459398075142878910702986131341623888210242236804289173757045660414255179620923100001721511367871039062631031200776350952779319778389364273851899626943756789063161884106277411989480108234104731586470290599885109013219922812784262534567412143682014177048465818678138102589540221160829591384706018295046282208826367147438348081585700090468998404588297533433778077045755814811984686827006141552991910395249048714491501601404871267098938381473082954003097104517439776973074927027549680553727482541582950697704630092632783802751031874327316600499004978712043850194619208092445485785818289791105772522877368372576578314166820042455461260702943573223327742515596261321052556395315022522057370594461625198801184358624436051446870852285967744193950866654668778726635236951717572438257808891571858411096224819952051451762958511982000271400241813302520698655839260139899520220125672897781710376426646919147392855946098386307222191288493589897083023803086474615796806552882879022086623897311773662820016212447658401394411955806981698018442292352353944013104449018428005650089716587788358259455912149946995576830325061719347026672821613977545320632431085665023363135758357174822051481670376598051958363563143696762134859348361320971036785294635511628485193747268287754040193042752109096898428440143693039665406390523538862237554457463406106989082331847547092537898600555956478062811654604370547707627518055542350848032111357102757684858468504770516298025903598223374821304504609617765470758997101088761554951203410910219344107719363473373280384171876019238954890023718065637673304118926936711783871886517844291370131137350691741511164173935821900877981975838757946190157634477351040979210157394172034601258594932866585939775174007537872597739538056495837334006184960974526786173204665347883585030666842198244803133983529930122615775457661739051644604683846126661650153900427275945447576731573761367439861644801871133628742537617704012516660460502144097255422281896780038707013137812832819570611032555457351272704321989999211250542805764644787593523296147741531008579647548341090647765874532436831617829351020000586296294248110471427698495941889620137082036139387292104215271764060792847413358336752382301719111280625944566662790528784283752872122795238300225956416786477681203005497122819042353579215411626766787842963961771188570123084934589331511242982299951281145151936776445567313628631632438003636482630393549615415637403378503758650066313258620617753489707039486436810912131912945074893267393286216897005806619379359456624693481981897903118507239950464380161634586604377337820804555174849217184013354337180933559994186011441538185232237697006382310282415752724649426646638319232939542439508235319577348905708937897640877185205284984998280469077906145427814849413139363064132681245012121001372609284504067583535617597299850039160319859123428396897745920547128386980460664036853042155406769452601439231796252539675098435161948925078773405533246265811222744391610644995088337197395654562962374553152738008655209874996410904145267100211450684958439625596082031462388037228263722576848140398010671204348381013315049086768114492359214293220806446626940310298478958708208828128570833019646757692048602231825592230684955553460988733209798296985924856653249759535677371568030710929805532762870065639538376765156951843184328185686992957502931866953684132411615553375809252117916953255265414816555305699016257921844510129837172061373380054740455039604013091827923321774679320410813829610816999636137943849363358628612241799690744950903925958016558052177573233208092840164195772441988689944945103520998129633689165048313450310060203311301212349126095821101616196046005477117911432067947935811890331792401825209311065102668535618645704545020626307967156928246744486103636033443818551193955193798252537040185096135802474510666479275992092315814748478536628103641778626541563138587946382847886853111590461676826103575213654034438667265737507158629628322735727597699874332810247344207586950926340130872006797656536590138837022565992458066090818086884093248065940956319711602654237436930067618865177720598552054523642111523965556787061019339984043153541465012549373481074436448629419708215905847581354411520857907980240655771631001300698666373616017121168358613936512173775009616966017425078291445501679766176970857745211198611886856269256996266428087084865683838007017042791901419460460100329032391659036476325251299063389975348810309666372172881406114867558237427016999452656500780804726509204540331181720291391486665536128182477714822918858841311870973788336133739660527418709408851510623709103924459043735195461738464137893338061834573916325232082212856187414498784457553203928002025885660558795255629106091808517264685048640453161990616542284463933063081125086573645669024333041051469958435515318174508252328876792907476883372204940532083769051086631920578443905280109242045500239982376331247868206666123288698964384907328605407149539618619737613267453065844219832989926143413530781405235364205124523183202232095324206386824356448656682630028663865743947202414824218585325355783690369319920077526763989572710255855971818660551072842251226746906216161415330826962979178204014525307698793713985371708217560598514210733103491111748760469208710187423507516493174938452454954864899486441035629596668922564970707677982615831119401820242795616993794823827574775609942827818990434347446051192466027812429524384533777388753120857061044661020333938120242069908769033088769032412122648090322473476751131167245235259281010210831374793366808822843961907393961828482533884821987494891639850664126562297773112456723342857105687272999284944913568303224872045326092375356950834295844490338649690260449036950358020284774502702994865798987174780113529556332882865111769193376925601467481101854511362912735532023065678037029653618289917895520325006529299557958477053280403548359859917542609485770998701701124216157532882432931145665910199603554811771404527313790894959988942770222063330537591112945585726113696964963746545672897956372516718346748066967645350690757640512026871861416628988927248676758305467629453723422883610395462364396742749672660361626968395061135155124443038236028913805773863479970034699394406757894758918378523364668208696988051546241796631510992414132409289409219302030164998374814085677443122336500018284573661205252189895380757788226391347575431395654846413004772424939590440312186894802246335375500479248502610521363378782476852883679083516107709762529196044550767598368554395779906563706035158435396648512441642468916444313737856628835754454245248417980449501377767694830299656000655860556256432769281873400682223655556621214469678272107397308744322991215184885643953988169871869986427672017249722536038208692044100391847313884051399764803950383324301039169805317156054585961516463838773717376660881348040297486975462249554986001604410691232641457759323469512670030257096860364097495672917993267612319574931784298548297601635715337352127292665145367769727145467164684089596522507103996217230054769495769274313344470255402335404463971694468460766353112991998080528651011011241552464166781162198088253123689039615819220822783415619920921442354685648535273844105357707420320414578705478606421425258925437354379149017948135123506157690037222965928167572733822409919037043052132099045305698235074855996155588144903612370498805328149056744167876133564256031015173596458460496998982472150447288067849788504339655478821616449842211466698706722487648430710620330740790518419384108350804145019923491253398168290392311656250301603332238445246141124629538920022527731952152210160701132652471795614379592278903609428684492243062367828622538776894422020211912567539686011483287859663092058608554006255387529476393735735717992611590344732773823480107948548581454340062143074229119292636079309291458260335268351495690727753179606800830023545018066522197181987060658529580985246519052649445476784784280543798742772704838946297656585839094278069746904265390341302979400706925881510628577601808050545996849301201099136149193147550871826967443669234685114236745633016627549009723339139058771354315518137105159316944370963392135482747281393268303791621480944437754395565214256915428469249411408087827019787661887471490988052690775027458695643864047921749738168893361085781217249263743527884516449224271707898218678220122155451114114087433237971370730258743671168717156964165848697876067418204875886424315200236400080378226713501074351249175627610476905037192342069792218000893834162120567086720074663746994731507582551772025583231851124668325569815699816602386638789226105651083905700655498879698559083945736501262486281813552600329410177293242381887936924787442729427823752160846986245437786952089753213994856578897296483007865365162743649427582256822761134948623734313311165280945917463391746704913878098951200588171310982103052067753812760916865464698815525092915552014523603936169884119749988265169908170305257470185795218234596723702834455459103400332739068012911105938007556807151681304044356576421606722575160368494712214849778840089808112563521897577470621521223249416693456161271599525087557782417830682871762860741455692921562652138473865631474863919027172640444169438072147111971189446406608234690741058222489956003189501750481928438429921444161748989563464369693448650563927542105144487040514544271509597300447741541473905246783862923564238766735277569030407173742835060259978647188554089103050509739275533141814323668891893274958166685589146273735323798061278975722268552280073949637814677561180636332366211794569910556652818831467551371492354245771782443906550579262249193006116371719954695385104018095322332199517352643603319228807274425081663423262000201327353302870284437618032715628078222609551412092655982374210017756447930476794681019628331649860532697459356557799080004268190768005573922316965751703268321960666761393537599154179961516013364830174826906081875609124871490209508770209057823701360543360888394615106745445315721254901620467617969019647801970922279500678586541766494376694863346066998075040526202518823060037417758960637742238247478417091128186339267012682504972371380101178223777534044295169094411857342967702707927506166246274405746793004122200149706542608265245629546410529579393117847063375645358315732767324416464768650085536839454043925897049887097877395391577522346061197939858398601524554500214162982451174088995981763017130694809742562439763946488888240094147800275392292804240703817137488583655573048960627367524532818511651904246035157196095939074964732877437012760592293248738869942634158129723536826982617059839383408846313678960430501528855087295235377702790714799458701450941215253690352275956939107994306380899169716382115447686821130202631088366404126023585332667588520196942177912942573078063437856729032308990019512803749505444571483741332198466886147947656758378092356135183615357291204106708361980656577246296209069921509983705196907498512348357787557058342353594094995362208373451464724490279940333954676317683950605977281775628210793800599917855796181695270678756680162771868362374603182745571516596523962068424183200303752540942498971347455415110099820714563787810279982162423319111050729578480541769753414490140418498170757524472854286239710417861508351918347070435752659359397501239677632022558131750089408336216550477469104618793300418691370020671516532525559357773881446053389799104334542904409116486438757844479787138027645073668645561274108848762496813953104455701440193491415238659564538195827234365424993120391848076954164499710639365571097379768818577308848738073865588396982264291794062111369689084704302158517316730919316174451182389114244501168354820380460706345729333213717218797316885721425924966307748819115493251282735602342881881424273375304004257056713616163023132917184756519829126208132474790457977358014776662979186196804461823176047369303695575161446960979053011205152209115983434140919727824986281349271113829398423682986540441495184238069160002738298401730774204043359438071640944037285526220242604329825087033254559020936319540962119236492725424694249285421788461289293025480449923341595238594137460263306026992418304690159323259249772488489548865518559464708602306135180368458742576874547378730949190404713569345371199938478275128900113790662321280670609763153391274568885487703457709342512993445913192948965690123389105173096471594752276146921441760881253082778862723940391201113215871341494369091053431676970442133707914797175380040176803044619490756684027602113705009568333265262238614789939922020445469936327621773308204932218148164917893977775294749968971378246878707883807804450417747358558884767958238287032380421426419762641077766964897772994107145785028412319249275368832320279491631151305346072843187271754790235366532288052508856951591492960667073804255882017030016383623506387060852101008166106917306181709470540664440002623000912905548335600221972302483618994756411508870852385275882883142732763921360579765229979097654183086022332790010266968591096309139281054591427223834187794060814532420408372972667849191210455794746982849493584836241681843611932330871603259464526702974547586820593277913900272295746105964394304303493596185692167311450753311907407573266987442078854527161527919858965326873482326087643744578915751224313242870317798579670769123854428741490532412104311878386315939372372445909488913451932184695417595696726760481219201288795609751913483254419474426483642024641913666895310701541285135453830627162763549942649785322595110941819985464998178636237643602454404608586251582027768492031881038485069450968607780998312762349737502162550676291930814970703355227593070021506573778062096165630003312504765056518441155130698370146401980779544967006257814524918357616152509536975619807611575738217592060396960713941332212184833644336250722486140025680673163071141767688672013107626848519994674639758614047355329234262357066305116865994219638439780675892538546799407254372906093857883037126272856913559804628233695873420434144434001097910386979452554077998106488744983348594115466395829228331347087661152215046458466716276946510294854977084739491815060409144183385723245141375962105837888560008397401415811232436772458255027155738230550252892514092158418181310417311159736884401571239849791539167262551239512354527328560313597471427953181940171350589339944798258687735209275730900563989874984538723170585371383259168175006312002716408259509556024857352576485398357975918323267761181371573761884770324727426626638024195416727627300852936736293040485239370408208789658267845155196820105911367253689286178910345490867432573732095691361522560901120914628401349716744414263787113051516418722411599101667906074970669667294276645924418893199495830679201042785894904414091346875609922468995990366678009693580270734922123936863583962343546573350884548505371305402781450864670440415715240467081371052267962279474769300884001202448829787294504728182082754620952498886570681487767558730645564182417961644720597811902324216915289447281868182008415603368976656490081316551839412398286131286634710664698618603955688444878066170667360574954609985654838741743746096503001321321411903765797319129493426518515228319862627131558184209421687597231109991552250844593763493378031499870768524223505862490586743007089635415353354031285955683991909329136881664921032816166772768641621204366673133631215812706644391689620380549626218221834422023928447525999675762454944411911675389903475609005289040227346930400278445906198184905321221182914178217642425309421159498171177215488966816172786163871759373074821296377004821181879700116176606741994880237444201414835334860004361823766804070220438160118027766975635770896208559542617816858742019239610916371729180578212277254692220714391717199033646912930107031795988909664284316682705539490711605642167002560994158763701644578826416033573803442647571666231070735262186540291750942864731574983581301080286376252000811704186444034907604365488889843798253115322387183507231405243030077504659912533953703995481861013446999736355326215305831901867780187783178186124889115869975462457112519882405670350487014547802540473348293373676206872388064192929904343710166343301667045147113541282455032299078674421811906512993137336582254669384167181627805393884647914993808535574532556342170134024394050048547706487497606692573698024908257836085526689951809592088239895178730032262417294430175276208695021158985390373153226425593678945065157533752732747746084906290938648739461296411617806125161070690042621871488296694886646860181480274792009443221824064744513797147897723565347925651545040044489897598203781081181004118663566708176083356144586891271560092661608086953227384835460290555986158761593003341055150448225789748638839020169971570915273401200312026070609396828372729596419517840218143424579830521696377055962594536367816388199921072651443535727637394142953068109068314121307925017901839682755098535213486341659134118240355776571776523721826225407311957739402056402324530884043711540642863056223893301967869422945228016152377572699774848079843134182291647037569663355621259238486845829985476710909113677078367851059346704337078400298544056248648158283189484818656205608673609441702789706020703593058279172871507991461681214799138231615146930565221969025502748006545910324285881896565183155500465321903567325964014123572820732503867492699156485074794438761396052613103466355531915947881584270875362811152588529682105818243726381239438670792459672409083592282767543706776168484230025778949931983893878279066531061150821968502346708095112125060924459541890419195682009424300639117629996570150975118470420696228350777871585108362852948651275418615820536013660619561464206474536182014304137674279974170889046544061817460970345406447660996030463523512415877169590297930004791831516029406074234516171346067789743743895407250388038602515875783344463618609212981521246760542125069685847026250336306904404271630248940494804551660412468846789078721966122959820039264919221004241509863102925072206779158215348377376211510412218012711957551203127832580734870186744780677634590277279011580578590596981166955911296834251688455291430112783082222704748945199109518121724187809265933270210279888718236893695658561903097382826473251517643545307449369232185912516396235199596342542218396677440610236700850102142410983173554909851938287558777365590359125547255126958722273431299888363102605146614258988254124777160575964316379433598086521605392060318012260511926190086033279202850911794378329251212891084671245596521805959606105390882277550394303096746085397692936597408875170187281372020332023795270533881830972495282315460614326180227805839170409464951388063383793328943666183459465232974832909237660315877202351278397335339809045213145424950784088869638423445308131873694973615748016742172522328362848599617199475916290613328608712932425517772845497546568614737554762155209513490069500968687606164815003377683387781584764541523915842922236706247905110994371610027865131236036422369770192330855038375693247801223497389212703642628574178062242381518267902826653789322921891839891437474208508916208694454095686483843787555267518203886383264655319705212056803500279662103273516497673258628209012507275267656020298627623123588530014968576844424934058862586457659190599774369102842400979901963478890625271699292314069061010187296692409108758514355821789849040367575314202967056604032184976321525974505380370952924555863133020289042757079373654070195028363592571287018306725572367693851301223783942953447881523580329807892533995305737543212688099321045710636694193938741269569275495239544134012807387323777019185901542603878730265146974339870990267328931578785541454587038464597204543121288717725725214437651760346933612795732300779177146897718585031703289807996733624721180686111763124584611041652798183032245700658352576132207519500203196523919397850372769317046828158747501907962728491076798969116754511277523345081928473833425295212780462381273241434793203783875780536807439729771840541390581111434990595208040147234805853502822465997051375174071689939085068525835459102772283109895779231840017424667479397938833975618601812965983128232229337860229484375390777208648093997675001521896451006997009002666681671146239309559152341761512859829830618044959796249347442102343515098638251380473826013481380329434892124569570475910745445715330875550368229305557493200873142071531289475231140099048958278388999511383600951737225426083176353265080772515391151122327706893806878570341988634229340026731375168826224641812738116592698046579891231634942254893154241152192563079580435164779894723181180916337222008940877926990100620955903218710255518384094131224499599530975566193079971425732506112078220687617298217330280268952231922338106968997153810471966286085172595673646542133193030924389610988379687216929452329169590388335763071053064417222559516411369137983023738751780845997689469570386504867910820786771889671489318511106744306170938459278418968925838659281129301566377956591233014266414529371369468967599603591661014546270391072504267480888185667039454490232157818410333352602681938420636354526872576306018733901989155180705946116313760616135215071237691453089751164555997258839357377643724585999155565190643358003062300444216661007301291184179114512275562972951924089264437738181378409398485754775275836486949504494845488101949513942460806581939211636412718546455488669771689162482886340026470449698223385522820961136770833211175954251670366389984992581781075102187890277794972706591975393575183768176761642565639164135568565514045838174330312986635409303261008615672839710608313271042701567434728271900988560343362108326473961446894521171264746202479725642888844184195265488583812219189984584908063651072502541486922192147060447280569936752047113656500672188630621449520309366423222924629186484269243861917670348429355055659731156562892159714977614523683238709320860505556458688149423725918015627959585278195199159890884453187179700196269610969647941597510924461798771337332441655686851014552407481240182823462793705785280968928868413417001209787187354391842893773694874936751969490378428938102098156067310365950558224329498462607719674021315476803946846324907937333807450599747945778578082554375659914334931986402905990361273041569342301258317205721074008046535459126066232169325959226212547821009031578071359005469106100079230123007895022558857054168227674410413009925247728646496607629645854672825202646890964504409931511990366813563789287712240810940453024098569805122283733959689161891550658938120170332110892322020313711153752926375192102934922034954473860523903102475568461726457344448723860810334211317561293487887304479288751828292316863372181630779447445752571016972945394953941554747846551984462345685867116629167975661717776125139794322474802276748203064900245849068724677210128858725415398906984524125266354381130828667402149778285407302520957878554464692266277825845436471919584623492990914787029590107228696341564844821660675523420560809424919454416167501410606780203844999488658770250666930118265032837708706347448920268778326565617613251148229115195932364793169883653273961360106474141431624461678603409515964964201629445054773510926853676757947816572012959128988960079187091216404074532914893473068330980885320105376543719400482245229802086358542650109446694198725784157452335514986180639414654861166676326247651342596690709793655524068835497668344503328205127749672253109875503368493324789882445628785601054347429768145768396974511570372304697862708141842851781340917956353514957402758148783313600099678071160765318187112927904085190711395963614706512756314437253578422479623155306420273761525034539139377914295839106205753165018528445278479266780544084996957052690244677803408833303348382042585894749381069144664068870538855677063294360476483669963644631907585493328728710434221667151618299170338395963483786308749596291986415733298893059821431923333430853765934811756053826995388807932185029784504952819748698426933332620778894674331336389646404421331649968564368115372632143068323911265391366866189629715780932841607320883397057483223543303351830105167182752225555003716356239462945248230295317025261501946612609254080120431192388069235077935645917095079785310070088968632953335953772355475120851135350294234142171852260796419448861936255323604758320969911506188378007400534647087726533725868763695370503436363627382784471187623010810340873916534804974286556592789289412361836402285780486594044858706034354575824305027647123249953099624323951890382486403390501443149026193004455464297633786070277554549676688328032008485179624901595768574246285138427646274269675818107802039254442974584149548518496924302910690603794834967348404679364117101284612060664371912188722095244152274834198112470356094599765911134068180800565213461593106250519579248741529359142608386016812344965977608253275712298112674721923425431338657542469637723409956626353637849465402884112110640462340890602937929405702859508333090005133378672834929757275951600710602189736104190467982354395677593515291232445444799691037295623306604367551722710721900630460807791090463791808042717768073153622451648530382498773637909508178969377154903371354644260642875782419030941986697433707855954184369834061197471228149181321851000677487758195350492716269668254676475890982508378015807394753823295766881812016627558122746518336587186139949334428372819931116573591232561556736652038575622689050011495925912065252285747550903301747101997897517884863338291834663458843078935008875229988596221768454739737428408133083535312882601250111891948129589110473855523138164990738118225049885430103661717391728830442058934161139923810123381841831427289433066564197395006072662724801145729708817127034701701486653788305189526651362789845082574836266408156346841760945851337980184425058363742681466573455067755993584286613200047015597431649706696557783864948555316622533416151436343885071429759928276669593973299968721658236145425836689104724567915586102645355236795107594603274610205403628819123003474656143052807772247439105558619465205836465925180535942562899443070534644130922334709559357356852664261006768961530888063354989887165313524581953334474071872965998495373338566267248307403232088209995492522400766697644595219535874911332246038685359931364535064492774702736507585904262794354457236509018645839932476519348267391091307484066798608490088415800877894778343799977544621610218963751518261679261143425285897708153334679136438759913485607805537310577007380067095342090155460477126454181353369373362614509332366594226084285607396348286828620895580556881138826934585335742442054795113931945448938941468260980015199435357108849467104621653458822936862572478539657564779363186783345899536876815064019001026147333469463006168120906014920608244271781543351692545647088701106799072490028233067776223093118716338599118139678811526757938420383688500516924672987197822861185018046105216553492385915179009860148930743076053439271850973569315451857150296099333040676550833552015647778911389585392861646137511178616961258048543898238785005910103378899879720323648459770102725829215716378923530688761880708484015715752518490154096919944111117569161086555455239370795191484642126882502420210787154644187047339959279325573599792565148929435473106505362254010165096438114558345297807530320877781714398418166665618812919351252755733499080977431307707481438832611325954722505287764463650266563425614021580180192068101624869088419858048642465018115033551667275143023251002605043761231233970560220732232733050431353461284168926250207730436725822239459236446289916828382310971413174722060758723085146567283719588977542595939699651533425468495781042193437558896458563624656582721114940882094427590855701104863324173661289116956976357508648270902692536581557561279818131295488611491880346379682459246619026377442101300991369458175532213404177510023547040310847919464260068057713478408294295108688131815262644133664494789356371083319080480075946753617836254327818312390283990849387227888875632991669371304760759481141016863502365855111617125735306294090189055383714857063466625618027346830586725078244201993108835617699225063135642068248207469326395032909131198420558245587156091833748146091725649057977924633337231143315269594914264908054530814015823285064005005835554532075830668329069202295324216306215296825407355328505564855870799686375149388743021333505509274555111729799141446182379925396910162493522330490052872942110110760520708964154460123747722648922194553571484695367418775351054169401457778884935309569103075532780021965959600752668589193554319990036384353840156877094830064117655287884748213086489511571765944589045236172911001678331355774043643231669530458082874296426735414240925477731593642264660748164141202540227055284324877318101133482397296822333354741136851975935338735648949381894928399103744933707179721596668156833613819286615673142902646189544799771342145533621916968339133690890035419409577745341283475479025799694044201374969192519512575108152959135696350439198430335903892846438249509900180536956444359573496348957530320646567060177506537215192109986807878677586835441849163186382179318522980667099133827095026507694294987424105902644267817580702642759101619769884203088264588380819688799026683300727735822569820808634720642014614362218235733383160620900389459791516400994905916997112641118708817322178319703358378036066514226028505054346640249695849702121622942238074958226562690987352423720689521233855920419348357935311430177117337278415597086367488641425908269031785966339296898181937327872346094257030986750684366077369446724653147453537434988463109785297299427922480218669082010251013524892040970693146961415277008766501355273611993327854314334188158636134411425919456999733159951290022782696537696908623642333150826258397638716997500447149518938814951729121657085414017802983036122340665481055385585071265440714364242453080112707341503120177652041138951974601552134165560967067042452831082395806584468031925739140125395566047128020171673246069424410300544142173552709442167255095347483176841447017402168412400456960249427388086373985786864213472041009218326859055190341187415462827253676926146221427193278749524414040632732301009368806350868167026648026802234046953490581573500841868251074124527408871889005347188538267144996735858127043277740695677304437240906258326396907776888537201468101494872169088936917505972441544938948217758195956542925172934003482010738025094175175244163902847738702266978332202383873258725955977775690495403981574951720483871097497711908893941207047696492031670883619299792963487386671658009012212550556289528340391758720196106139230426965834234111457881689080242483515702834380453362975525415218010661992096863232377385949844987641596388302038066611899671034855607408145564375932537525574666056908104394864695816667112466694802902307960202562174705420521563610793495179795881027709764277332735794289487755391596908520958267679096832352795134810173659832324421381359773916864913227924010938861761148015321783021953783521850090770759818441788914543758705307197212700022151036909709104425155499599292843365480671615252300209132698315837807814390220819383827184180287780268644794534351567796534724841713400892782429751273434919076532744195354398254738401403140383944507717083357094417158972450157433847043659394646428754296201049644578081754628540982246645885509011340804422583012440388086604895935921667643206491727203422822152486306783788758694029913721374973161185243600707372874846324312017410717874440798456934663682546226167749100765845507726931215787787874151295647183063245556840494655940221172636357721904779254389250849444666832165209129448186579432681914438914258624229959421733909151474696009898108654140377232722305335941544142820761506959488404145175520998941649784181731641963938715741008577793622512244676572984108187869871163425974590810168461148458781294212911112505346597121241642378506130590219068682243826917526846006509461604075989546531758097331606563667351911784952441481732171442541211141456096285949153009359937751512098930823157950043315833191057158454012210405878044004532001880857361030921954334846182437214217424173645791526384389095458320600012786524198233037894738392119024262831919330619610320430364575759214709936888844324029900040146753790622695263546648908942065188040432521659918632526393295943314889537657886789382793381480404322129233714220319212195311105961523518651840784090593994235046684484079772963445048424079140468526832574289231672134138655396479986613077075653764657092212007541833089162499683442863758381152286603083175112856683432223476830575120033951206295182069534213131023940644363530306688571640574209853098998473772611901630278916974053032006317919413563504421513741336733680671972936793481463854416396217598407014184947690214322783127119199845086872934142462944394550937119484086559501526980169207185365764476347030452625402572949326621760299990045391491402121040886516723129437014289085639030397049345694605267437550825892675824642226557269038134676898629192726923080972817865705558464738078629929205603189349545422436504285508078572118314788675628280737275700178111916320743294811662760189080211824649674814353417945633606208783446117793150135896747056551077633688822657661672035481867907813416099445483896486666674453025930983217681710879518843000867814779159628075021565048594768238367011618105498462103604193750240011209506784840757983558947004133952372842264720172333982125633356151029619334776061694453319129607962477198342549684704797114840888693556043033873133689286227713870470853838330776145103360980241803526116764277800185957969251213462618101244245987542276283210994419984531036284043218745572190070208991239754712690765687895305264942415000090272057047666837755060071281258630515145080843203404315016698571488205137153262233967642951321348673066384395375811137530587770897202778361346622180660135136080226666825542143749388569710044242375496521259861429146558041379539447405726241939196107017849250426357061914488237380897087967924452522917215668057781481025450068900929729905761836279244551239967813672647297134051584052852086504144583794371578870667241045908764659934156783163668675180851920573994411839307202980472430081528113085106952946255577926632750623652342340926402157264422388884885078921312064057390712631914398101174300814704825705756347217637802497702993288464459283069256244399062314814188187605229815798183116399551697384404986420368012226121381819278419911086417816395959528471646750957408829398621680460841674590365388322013628682383019972102239658476868637723541606353542439633374662437481341270909425638836797518031821968756753126027067193656467387236006837448075165149844235070334765796085237118411693678908643675865640921404615778182864489217029218851817845267270109754009608452985133728095592523322742708967022629413804490320145970926010903301545814865756754937173209984336846609193761289886693526126340838039357508062491461361742933730297305405519300845287732222898119796149853661348971884129265773154485053430403205880060439849258122551242590592390177412397718018810505176218237709785645345824443552152317870276658431065048111150930638591779895517275480905682647080745781331999909520639574701135289047001523982865065962332898404251403816653292358226704313694813029871370758993533839207517027935330252157331670834690876186928960463162973266536976061296170426886549370822023804410002366536909315846425855645394226662469158240242492593739789164894179656479521674756864069797029954493363621213371616269470195405900878447457461532710412229545072140766698104133439623440393454643607461268321199232384765110403506580792530526294815380223972530908087368746491905726910053618319224077069328150698395885263400098226648354694415584197532489848295456740154272995357104868591420666564390145583392569260125129715366880800087853566630228974340819896340089571712684912401959685883539640226767593472422875730997540838199601198789200103096221000364275494396593638036539797406290484195973792344892032546906372562740602739307175654339407159997967420919753153901721131744070611701872512689456200189659829248323476397640808525958822018884209640899818479078898804156182340706335775610782048181832818516241122941020239889459113017818868693568496604673664503459959969065069137866511788428532916412294303317034120725001744457985047574848465762144872386977737025299731016694098979063285305950304164460487427227698562098501332245167746377812178156405195182449367974466303137960006474410449958986734768480760558223361990877819784647642844534132432736451583654479340291661352285584029813055919292841904967020181596375047306640588737679797021273183100358724381648214103295342041780809210728167780825233456366558942509409103860152791287170432232736822529384660058473888565205580393544285699302775252573482212336737193663440498926264040038186656894358124940538335246426039739738846638644975135082872876059172615325273834966139126517463297144668550428575570844658183594960540923169517057551747611384197901402788565110937236893620237656526414495948270230799938132706032436425510789017388459061406983883217171003687349910648641202170621989477594286553625225352536946357474988961246649904122516223534413142961433170589900311431382114140110192010403750943650121010785940246618561056205264714409702616344919046252187218032683268800483741309190138551965062387714174877060598012654771905211993568614849718023998182689071946322492695402184857351203643300835936208272416529525237005869986743843394428121128719873461489520809349621189919963754822191595596020005853015196468127829180937776601392056986067593851638180085503078399235121014864561911177161840407661659323871463391887939091083297543679064769947896374285884264362706210522209198723210783055619905321903831622677963753004856734310413326800423298240727786948673997818111082233235291586171363249506976212461907699951952700507221298043609502475925685220001027972500098398817275538306799450714996870023079691993893842468550760278892101540721941239327151086476211632303643995216345587416428061166208043037012940000006627361453155732783380062233785183988223125264907369839937601098388877821947947513823602127747712166785301433458391427119077774226132679872166340987646482606170216733093227295432656865581865926917395595972922083772532015659543171648191337625122388903559769021193839738523093799664706061547180873581987741670967993821062834138378932097953758565015477389676843588040654447946638926465610725053634027196715694121677705913647916005842980750357606308428199170384334769144506535944313016346178893507908959464302252782423758002682360953640332511658791578292401164405236940951252279202810194203076727090291008631859873893382666032293455136315513904664764444404676709197903478848368173058265194002086660966590655004138216950842640943917647681761267815041949187582793192858882742226482669294164458180035179140603160238400949326200675885573545312001955586939871233860389291235444755257480149016853605002980594481317594620697448953266347421234561224267148499228796969035747869164925030763457324634764698976030114854981941845232104291876540314059404281740942835632799032903320432512505465252683644915250270026602919398758052778122588732538812184625537397063936709085164397429245723430421203281653790167429099405614841565898339880929889498098176529420541425142539764109887795678819687067593359171322549986365053472043746688417757770495316570579827672844373812858230039303259496255902623000679297474402666221591118692444908801428961985157426178916466120662096455134309526235217827523271853240824106095060685941904529873119181905213390589482088602221037552250732376701526472704997518710619354584590586943036397369991352326801754697511229919317489668757691847132095906804822124494440860727761844011658968530114325990001986211027271513866173860466489976427601147239235092737293184210307128017442345422470859912026827974420796256019193349450864736915100759042100925771821098740246429743419069866562712152514022791618082261784799609636497900593849614803773664715384961221934848779742421375570896247624257654991320124426990206909858452778771680133057340966321780958274142311464224361556447057118760518339339651623930528125281244817630627870224715403247501983799972720407753752616754581510201111538504442647125546368434138528758213821840178223597139063914650230740118381395816038417842813144150702167637759639419917467650546621133269584126825966853965193628027095259280656592957735045179545779977265907929611650589668654133144421710602974444529924815036468734279804240333336443754437587755802583655661774748527935189818488209404175104363586758451820843961240948526450951972179415271276931401554456595577808254590495746918430038375368276460187263060556361896954360283459974419221549660901224830434466859762989836398168565343185276757288195363591696238562538602401385621256467047873731442071021828335459328315390376155008760830818249210139743266764089599060529326893020939854266989448926853686048987392388801755622256417643182701134950460680390702560112956668640943049223192649774880072178977112459447736527555463274076798753317224206565838043656046361780557283980153156853907870728737093727369238131160064229881592635209975813996352447608339672402188821121913527709771474384112661963008742915094780944238372742442538895435445018525894788402443675295496687104248834788690264767739913461424440909958412808782758073177766464335848630934278838061286117932300715805676740188540964730810311999209017005325063570820281138269094364077815433426988145581407202715325556877767442272071410793860880745910644913915156040325005417283956084593372892692932685982690027635890551228683009009432313111140414037519067826016588914522020230714231850190888313877681463715815010786124295049800977019125779139243758957734923156169030387669220038538620944744844484841713792328264708901441011674707830188819716340799475278831200953323872081361713347843507117611205329910821076838675680721729320159745407512469787822338535456586792798420005340374161995867142811158616502477165106593743190931966180665722148051720459946672363938714862927138545408860039279379878769137439024574052988824271136479887432237837559671632269920948223805418212513382908003369312065542056455200316687251969552582564825850767225215859474733102976535312534007913469206641503607110519970488179352360042661786169625009847501212608521863644701819607289000362180160540427769526027321850419363462903114731158417295242153825259400712448351881938192083302998946351369126682926398662477720576750378439075019362746820920467017093631824055707743882168437028466874809965999310477323149944969494301448132199292451201610476924987125187232830233675561979344245065177039903303663637653230090687355531551086224773518322298087047992564219292365814206167862957387510737178780368188711042300641438941074348024594083473852125384378349639611494796178403187321347756883816010559381206142079369974419034844556940503969914731275362074785080444123586644264600039770284389849629529479764673260798387509951823872279478314963451889199419898283502013755678428852678535016961410690975441244136330885719497096951720288719561933182958174328834064500131480260550114198236917011101203939874902436089633307447061642637496478919540041478419705686058813220008780403005275729702607576875315153299033941985173233837034915366572624385726741170989351319688159629642386920092637084912612989536368864574366077064630165993966998878399011816254466569520518605281973093197377962397054666707757486622026573440172714397708701787948022896837838343585883223928885363134477234487847966443135774590382339682857641817872249303220596065015726979821575144421064807034294425281626337390936669598001786736394835073204606467151544262801758587863580544537686768572101993477234981877991100155714492421240262116760263193838056805725397728972674398344764540594460199459923390443824243769516306237109797209465449833751884541623072774398233163498465015001795609622159933299288591964187495689080480880471303673124447530839594924525427254578423658410092558954089606380965039095528608833719876001389841660616407664493133061733699071849273104901282344167659254908394398648764923744265109171167615840833335261144988388434662035722979309776450915035914419405820386200773082393986177714374905011026852247908040249936607349137260074620082468347934815962965850242500896792471705060837665126287730847147950580167322585245523225863203739112439597075217984631366568593948045921489754220496986060795636382725556192597485299170957587829752969319762486484924151616348307838595147374418369457344787678123100368762671945129543830950642468319190013441062987780962975372110489149728986267858208272424711265469959483932879515748236216257054987093832217796103743518096919781140063783436074290327482419832633104970973140441120907097734773513793396951264330639541188699358758845585768111961281777409633154404415180685686877098168509028733184183696519971467929771838661983574985532673985331795284531475903108479193549542272825108231345315744038109922973003641463326520384488373543299455927142733061470018452693975473852875122524343307167008581190988081194122676480036836708974788216274310668126469202109484721784184033890307049405124153080787977222195040466720483857388505445374132491201565839391276632267159692510900296076010716227201378938021329175284967228582746549201932951411571557085473165285865915350610391185022301260624282123981783571558470353021234731469637552981726270373935636804705095440712199306805810158211777468732519895679936002004646736441674873584405154182618821631425210677624801053617076470632342933882682174844367840963028174656526264284699166651142551486080873684167737539495572032249195274742884740267346520144756584215306189327402501696985684945362128024092628704187106561921693577124492274208175592273844273686837598721997789086715459741856943588833743065816200790198163790032777395214677286340036502227583974502255615794126100730699822532211835437727045017340995073417121910276071306871327071930097836432498697729821530372262208070441610323493346066740051658800723941261890013662084965706086252726889528453915064380797379855291803124971281720649045274706034828344677856696272715222465483734447412029214210266195601971824799734387337018864696483393641464907678283572983447944187228867228093530690865453823496826794698855813363048192732309706834274759713525084376803968196591832971641545871209183859949905466728473695823222293597040163239400450440301203271764152888884378625580321004126392868903244075252603307258913608566306637054696404154744021877426052400951271209626160984570293580287381557201659808243296019009219740833013380430908580201194056440976776502940206603985013826200548668115474924091966529578598485987880555641825558938903398611750799953551694524258860871772949457641807561895638464339466405971810829314129334847363041402600272224905465870028570276946463417455223033436503641197578341656413825241403823288388095487605065845433817598434531108702073327295838051617648786853499097143261072115796357770392697941903459376076151804890266986633356424634277157117751445441673141853785812425449065001685305433197359900082567796006114855383409989379684772172324145587214556547170786436446304872521380286200119865196797728309197334901842656244670498939704238227838418100830603710922662332964612825663877743958555350852726296516579609072709670258120590002569543905789105541585972101348016040257783799354806870116185151157963057068796036657942874861518711472055825468762336991073067147678446398117848569261398946486492988045923955251160922006619432122510155313851536295326952619726263890754062893252365356293810814682611036699730216344934274468824370534922089234633973561174472693684487464900681051880494016640558914862362499179830569781750574951163825189482122658573988884934759920919575425194132662469866666828454923432262136218494549709116201423927711631406806456188867782832151868546022860163954764753103195385229522037733819657285535527426316433567679045067428199416893822259934781327354679096011324918527165290131372254786102261172985693005659666173086553327677083930397993847762173944804747009590792369922826396197982665747987272718344288343864354880747504869438060357656303527269442669441279291673867818062087128294321570158554104858752624016597937885852470377383406624013184143112142815184723759161526557722316416133985020417780434609883163294018401862321846608820156568111553698590023390738848728260402259039626484064856045986127018938222883228021974675649715435450695584671896213229806565516784066066941612543461388672178988655574185721191803849680814413313332641942092399401870207773983058672681229535572292178417876393522988242516729397977249800714839443814667104491218221575918465589419245285509182478558109964218016424022005459119298243747787202193167403663400104729670329591902538808574078923816291355162211256870547921646742376602619080065858232249890696154379911368099376773694714661936215001081884763032232947761393984811612721471854789053304405389905874546058136652612634041713813639316258487955393325070843954237989456322438237089291484524900294123007591227255000226733187677576288728303443426112478078583277188702557758972718061111698798991763041699981735591739503071734311300006618605966066646481295624687809382852823315854017623944349673894250938964777341538193466526985805178510891914498764425086374438629462885866053512408998564065158126552342464248036615588061092807589073410825914991077963756636719183029523399004742863583608451485184459268304461702327581546877087020349973128429515252947619734118416429373718778270282599442887956276288109943376849366401641071477018770041086302383383831835031683459303825764208284749760594504647193477521408846546744094440587211938053335327355686535802098999006810077715086922468081219445857665082987107605737868993669079682966451222507599131826939591032230090309686328538717459452107562965492017894321580713408397703854507140093322851899350560445843453618022464180645560738700402875123280602084479346873252284315432635005994430724811609824479480958641137019979130368087096979176187565206350538210873458671451787599509057291717227547555759162144438757817571009497961566137902350024232035697113602732703779061819409021377981226017216949803820478878271596384681228587941770704963441815973246226913249718322568154709680405468839099758080626414578047242576961763861613655461980261790115483770525763826896446646234721173958328178711959630432718801820818597613186040024469020104028999851717033328021270069216276157514144654158168550862380563397032260820933970681491538443500599133890610983556688088745379447945112840825434811547518387450189344920332116644378834018584238100466824947647043489190434973658516020233410986659039754377207436921512420509355180019872663605958462088899212780978726709043459599568714462683321025612050988887826130231298164270965500590103057680293151504786595056834339514863422325312441162990615304102303451115420195116612049241520851618238169420456739569497066670764923647168007795661695654925297858085547938566500194619119011634875692877746278560012096624577711239501887448712704647035467881040812822721633772843080488763665728336379046071436002347649467407766256551118752913378288156799238886848077219080817222928268799556371004565304342039824589416763794216797641774895644273133396014940209664424188603099823646503982244409066679347024978586514908658264001439058215959489532067961581835786231798734660461046818522596281531711648659744299835379025990410865263828142406515157854362572509036234514680097314074096848604045414224276653687601853085095956912428655380757444952733586706354308173866454739424194707632798579488310150121395828740591254418348871635369941002501232572785107957760165102565152671325515180169242438037525285762842725393464202604778311927832837441889584339355784162716697918882892354824321331898865029226892778497108536028762172262418779911686292472736589202599765651493373317808359286711712979161269683299199395210021870853061829619336219799885601860611558038410308721315092341419459893066775215648148314955781021703977362699416475427424446015888847753139662206530467765795702422354595894824363328290512274740812604086612594882385370464632432288487205929157386731018250232226550119292777119118814430257962697167687162818369391087949416779245476275411047985641135780890045618023061255888219900760989367114847415217214223929368479035548616240910342692757595242771726728085158385091439477210369746728479528548295288134515670658076794572283278378908075903098610396307157163119059112854210533814599255952519806627286440988509642895842997316737676312713508760526246431041711965229078584235038669372705596620484569622621572506687932008259626390529873113787401796357561146169791917069543783374705349891937655007238170029618325989129170627499889505535869083386107913565314328602753069722392827154778513413102516510868325831103061293121222441315473519424794015745222265651741771353338746130366426374463125366934343345650950553963435150333171522881223246243368648234433171882924309293186421368670302022153074330153785086974984916315509886454430541601422236990683992567797752635913321636316206975491479952361901978036911479128779590728183957369923150155921174903475189367379702986303428715259282912741081094761528348492004176754023744480086428076922333221434259764591213187748484457262601978540594377821962900331440463914752560005136459321251720480165642345477862824879767824282944259429792733308530071106693582221134909047502044381123314694916236946849543748858331956609325052803010707329872557281572385642170732339174003750807155339026996223885168929252888518426426774025214427214837220831608515584785228955042366250406570308667841693192118116010201513757284268561157088128317689615210646779612990733119330693884105469295137317158744799035227327185068481108125464690918107422077622656357283859665361162834808655190658120937385232890945420552013846742219232555513081400012564706773855788605220676182296044023198194064513698518962690357088625285020806313973991725961273261680775939907801749303082123298625273243746288288641469620326887873536509222958193771389828516331123816470053649128085291444987229861940340242962980663549163081827593774847492934676866308149462305425923445285774318653377960381968652213234418596085058830080307575158459576145000450682344051584532750528938711183213273219473902372330648806151768677395118189974515599079608277977644583420279366178628632685058558387714414991612037115084291369621734176140799508802389640232577941228683377013881782585772536958155250875353414270753901084766333425025231444320683626767160352481156695899082499741518014902971898074108989700184805381714234953849424640449078007964848719098299797356361933974996916502877730858078326739416473394088720979901891634379047467184439848940873525111349431580244151151031973223725869514740361237558868576955501345672120915129949149647388858701902836509777692631507524577157829674600771823302869303165787194799699898377216674921663284722859285486676278468301073543787564275843954485807372876708202343904861415025181582558370489745605449096009538534583841598473879011514287701463924594217035477798966768167672365608741927471710468269952067087064540111387552265332800495820116023233146913679264149148838696266571520862828425943340365283220484953640905653145191214007143967422870950317909374010424922739950186595385979520343830077844447896096507651075267797106200837831317734172891833762065300202767580831082780272824804835717110501031494335885113680159202119540524738548158904346950678056736528708657358986893531034782620788231126653359316929428211278255893148205133062462722321322070439819365220508176875313277311837792730504353990614908315048731707112567404042276282032510776800465816296770782033997781696022162960263557462521388567346825136417673898326847569488054958950326342989590320627733941105338153065161838573412052605665860449310369689933757215509466169242040090706336553404660927966537330726639390957908696426277110975392137506524861950041822525793063651634717398288641997889416737566593808678388165645151462142867925015371750708914759577731639014777539053128239659358320084336597727066108495507419465287359575686403538705165052637543116963716511927439608479988440420110622717960838974102870624016894135324946041829718080131673256049062900095350211992275053863498778524651876915230256385424784171268638266655140238527172347442602732847588033147399146970545514127062978935063578465604090337314339790410259172062256440515030277886348163221744619750527493412072049255977293212096179707183115407905078932718030986569762711327098385877671097538837080095679937463461398795288122509497771955951367611700409382141087930079550084224600849991333502933935105527552877028030552202392767213908155955992342663419770102381651778652574568580147509382190324193549393965613550485179828503317746530063452268081051785504608470697570813289258556931934802316242944376450464176111580967366072233920582049827996932867596410111467507598901203877641874638631887483878092313990925412412521779033070595148821161022036095547267898781942583287154127392058532670679027728090148097393284169203535738571691606704492320469687043114288592752710529654457143884209621530862858874239733052034745529401440994462515121274891480780649326278383531425534862059301609069571823106958501692292432755750999102638152106113824837005264285913898382400034931648242540616136073258026399118835303879337503817238433244169077905011290701843557981550413218253623015409645284150220977544903313407397082049491484062886477045592922178127590975354566068521015381145865812799565154277320392682182061406421262494655773729857379688518007560996539087293015201240999644535488451406313054477448885320207110013681304532513776749525763971810263017776104135417568107863470822226413434648675924475373913978409247390903051042753662632634717295129365119502333223485746671129404529106261683869371864297664667279775603369956659908120341967884051112826863834131186464360209000691087080897258445576129565069386332217013494333649022120614248095986473640813090174582134981069030013088853701265611888896047328691070866121755994423971032087300236695434527493739201216146436614909919874450204406393635741764941100574945583605490573337098889952683664007609933843054666747767180108762571405504003914470378203447483835678513523724636970612352625816311897290290566117606584041020279219874377428795935641569158668226328533270793840916594892956284387266915949144054627989281450571149957726476976011858961938639858543946650973857361558677751792494459274973095618842021177746186468341765747787514756461339395396843527626486075915268675719889548583019532808843682874549564848958547102911111774909372819930500693543900020973956091681001414389024031646395570195155675889301987070519058144650086967588248700164593086722356585384491288948396586378334579656953827678244852837142964709113570662562747994342821360082729177480538164215135488362752898062258584709434202589709367195217202183247729333949283369232947565156699692925288100178436960532671034613784147127443865339961758622072474786679267662669570020051722951006222094379251674693883785001389403225813137423568313715342698389587819212205453010677171240820644998389505240702359630909179304747691509490295392914680520399084658858161621236940315366448230313039921702813503211545385456230604699709746363248440631746553110006615980417767268582924699613364678617749802329494492669946863885390346822791805202802805762538289917041069835837000198250543429579861140838985154358760055659193847909477714692977604182704472322530431120386887167821485118453104691737693949172175723485434262385051065637042143556549733240482257115203492437764965924981910601201692852239981587894154601134439905507152728231166652811251373266066639846860648068419612908931219836774334583232719004638546488316507392235820118702460236339592364731755274805347960095620893516294796539087687986827311990331876258770878750819070868648088291051995567789108984805720957353190837128496557131305797775830042507114871172690554493956346961452230273491069308458149337473746245759941995935322845807457885134982882623259850933929867028126409848221888052207458855749715450320637997494465115654523748865910464155760341640712438092856444044952592115961007319749199308621142801979893819579508991553543771105660340114445464313037250278831526147824626656504140825443738449811027020232063281040618211453975372036387292179931215104959689584273193969543761335756682452310796820020557580313611295808998712625833207430375497431887248833797929602177024893124987437730292195901917063315638762860767183700818429784245218862599219371795255326163651083703875661518391054164325588874597445164222857008352416932124470463741184307353050225806086937127759969783990427711655006806285831573493857785980603180191028102071770244020331798794409622919017656464346142017222298778722574763487747589759277001619069233414119121865599734226993112851491298136838468655910691448362334894418587054194595996805530745849827044840745429665720520740452887639558452377925858840585298855363244741005181395801959421894569083013760598369987270652660956453083554870543587899999501214330335819831077204824582840168135302127070987472148949873222330901592900455277196380813012057005388314808993010373931132823814778147465841131128889227419750230249776525810812301284167934193851422680343967684874975530099036773405234493349062902434307720814307221057010740199938511162243880585673713244800212932715525488651951763578472455527009209681587099994518066128170364621228025749874530403000728075022363362097333421418358065321739025803487624708054705466908890724568396457107437498068485151317877275134304394091035719557801349282000920568647413657194131226535000285071783976365999091844505417168296936131735863132310284243715556110059377228666046619291206827862415844261292748537884816418403492705578496532695359538309801620524702637696855212475182439915355777942493322898962123486168227297106186216600215315214585067691327802530163531593586967569666591972459185061255770129399227432163362855806477192350714074179238661910353053247970231601346795293729291570619619560688692824660763948914186973500865933064010364211989498594348673745161379102726832835052780313407915075104632641782168708233042473282117346344982385778505426567898219296657437123535633043994463906276568696746096378465411950952211803098178343701485478572002697977985406586048200786595016357737064702534512590286220985945195096323732909904561071605188136916859880637839234601849772205921423500962714965201562691346883591096185431112637781408331682701456972769481939256111060098403392439801363189577891972253118084857957459797080097049209953740910845923297526087452530168190767955984042156282797940319812436975451576932462857537642837261065808621457602050407259387892859760605842146012918278302637668956213074857530648600718968736149311330802811237016857243801211668092950913993606038724858788583146317717536551743977514207110309041787551656620717384132174832117196911377014616274093760308272263217763916258495801633983554385755641561658236090060219221716735806257242708014295592314350793613186934950411809175842390981341122571231883800543587833721559373828916412477037657380085783610176954850807094806653676847677674990223301487618630630834349310331918826977229750646487771263557932845397013018980224766949340116472057147804350114767971987078949653905588610880741694487257481491671537166704347821024234169048982867653629786625480315862720191463825633133810184204695167885844749397521066955654063709936195584084855370238112946651807210682950343661398666113384678735871159327142190171517532821188022182529184597306947200567822160809272133549587516614908572302647496653550186116761449326824958893188306805524851396885147930205846226522260480366300839102759381092845555449596807475072878075861505290707606129885712023888246890674195215002303032885584901908945594886088900025104107232922229133170262109750222089546565227195183235906877281048056701372165370704737907712606431751617667977611153175079629457915036966400915929203028678684962339095372694386028541494719835378207888237627586454235497579895432878852661009977575203778036694675179987745382341677355152661424657441570058677761476543851238676800034662889036604851510788594694315476769546120961706907357047128843264460091595400311968488647064733274751006762269010449889636782464798072100346402692903390417730791676391823971113552194381658398465327934792036922619499545416146050611726672117350704427460697730043098490900798568988272146933027214274823129554162715048876386718238411409044251106080543466245663755114915501016779983863864757656580702943752027312729155470924776912829316801943342105279776193012439999189851766716237788405158387440865898002951211920401818127688860792316213541861454079597138910855316794567760155094329941759175496389894265613214146765273083706772744917770028544463734641850198243896849255645387489232348661221738182355215821773996276978274557518081593143382357555350933383542280603589491080219148691072313547673502340546511220360371212087469060126013805835978931433253494680148218426009999064512466149650413551313551122893601199305321148406234131308022188302362085642450043565421666886994905149365734076286023971523923092355662369234150879534684622858896708826525215868128418549549832753155110806784883586946243033615374576411760747059155680547017385005381667811169406048749681467233290528890999452214462038486205670616055889201883564202220054088012304108915545611188600654610600806974823356012754823963367003981936064400035846838085332694062987847950808742863443233749602524987454819859043377337950052300981150355214351983706308331863193006715345463787022603974213630968899806872334101416378436394652347312797303760277507066331088905970152656802264886969628681375792271428411621620986622953934914236049052172225467252189107154763920615020101619499115734685804174646526837665737295646696023884655856734408087356187378269097206573146339564362999772530305917102031490666609635110417194897213947445544444165469822868292239976143350228845604829571238912716993524585122972318190108112584481616788720098249876154066719467935179049297152341223356990841916107473807173196360573771485611875393299759260268350996715663535911716777225430266136693664296886445307921254901300578290209725689494618776312914687124841090047179827600752248145297404145104952397494176697673296402668712850706990972722251225879262535720722522939343934949187383064005027197786000223856162900739830769818522828838527568653302718870508639323483115402659675412088105469799152081262981731540330700694782433911085805941878518759997431566367378082127867652451773431302209762219265155168950558872620884519520230041742274510544303256662999702783477479445180789687896630116622806354552435468753196382866982430219460602748601413642233838859869284236617780190407659068824419650805211770232620785957191136714474010625757478204368637762724760051531433322378752409331924999089374379407875773710635843473713455191479559780240226491927712446262907581006630555175307675838847983243184357518958215377817110503563178988232524065839075450632070656493025968576775295445535197524088733157151768817847270749934371091356368532497329124180556064938502904198319082531000124913806362255741974999533473400467007098124164394674275797260529829687944480282636407460805061053609879765134175285376521384720852705967279024702429496989741052822841709938419757747054189318557152726828775568049638308042267091429670210636621320695006380568932971208550827834255356666268540343459585365890753298130541227564297181816487185534540803314938884670850508710982778115426569282720540993880720121517151225602133067358376213793352567289811720830314033301846572453531102121082100964815157561263731566656884070429978349118526923734687637864353103022869374628758931493648994451711289448357675827198253693721667976481287721999044476554444407228623139086447831972844523710047855709882067095227231692496408469717003560267807450360201670649158364374988591097147235897785145016734497180736793252015347822494948040310430867233439199570018676142053352118767123881868259786638044024171736127642772648915589814154503153254864510908300371547364097646121417753562654258260630123872547262749531154929578867549142102856015856954312220382892694981949793493667159242716409042443352988104434149682441426740407904840109152925514588698967260432071710451090596900068630807302782507659930324610339941644282783785503307848289349702894982475881483564974934966244771074114340513142177429290907196008407413363441466001870350755271340526944655448178984844753215229303269713113695262880846365869136154634329050316279470901353041573698635781031050620500306434718254412458402413175616676973013602345952457276157091052512969507576045959432550055796049741045860251627963168154642642966000028942533237399669125529800748117115161427354106313599546750716498034121001972497039571141611362280954434700226972185729023707443336428029029983732954562432010972868964785328524328911450547587963070075610094837986082174457771045449296787815478255015386248538867595804556966989593893313091377821087495444308925045226840320884879044347681905870827515489158969466848900719523922376104854998906577809190106634095464575521956415027073295245734489074082058335554962533838760855402474121135305991050524799001950431245172067168628623358598439823452402621687286742377425209480251592382152231258290577879513196901358876605068547377446800153696788986340770673614251570596681094198029972214143083430703649416214109485517382765846372148666606297594410275799693941690364244929580361109534850613542671318273680814245902543981626437679567600507679498310322800352538737303665212404403311355175695016331262888259017744758801600186171207386473492261444410556681290066277119008401180525778692061317842188394776340989904859618257549900156259318829494119454120124752355586414198649611417854684156815622571105644924207726674285009523210933935335038562043798656724714046215881661801655160161333836612677849993771683015338285209471684433257489668534633108532842211943727095396009719963445074894949066527817434144042144783442512671311946790288194505832248791697986681516734667102702191036418044952881807774481516185508959193018611894648940157174568352883178509114376960300334938481729215867974165876652955156293915651326581703921430281394823698000361780038198208385324737966046056763252376611513673771019059879195556611352664994206186738694374491657118201095120720341399565174725875825476371275452029207932454589060584661046955328790756986063551475569257221872195868183012871091315402199003378301638220318542872925055699091519335009129147261598531531152108769134404176784684643184057850180628804004633980421430482800745265349996997187233177435780063594657877112470759789542167943954844578606317717631774620306379099922880352908938924833730069547578369110711320912159524638787269217147793407666338242389835968318142428057769294337242637610981679754052664364528432274993168316164254085043451267353901043194200852552505627213408974592392101487321108769539972941963521698605695721174471657406874696237034438266130279153446220326613579948836128643602823580730380912633711652673584560485371061094788239123254528244671923121959218342655222989276032011259919376587382386302547363597368091521446716729479597667678407804255675428040985159459147927437078877890761455758146184555856673216276016962480139808939533051753690894939448585217016367507146053875207513562988939013929512112947141769377407751023685455851599590025574823428067577925886807600767028134970847794187298914449021529015495866661915782662352406421343761544859645619964693648311982408454559273732674008972915022889536830246660377243116851315203796177969643477076187237961326448165937690445083268584589580455319447319483731003893479612246306626266895461623590811305974843045239928636015668552736906313212181327931343824978065474750531785930910566091421176133197982532178952327917255585036914083069044028953085637507776688329080175679013794704651077049359441943813257757660333803270162421709751965829658831768657018820383064343880334452589936914957142721686150425959822022660920768708794558455883936989693942944634762914352932917058853035660494789354135175605456311660684392893996155164292960610429482852453711158486624152780445293358035528993023731736963464393350751045474979155794813415647330080189777592488740786707524872838094415104965728670807411058419336338963886278599086077027506310356795877715619595591515410936730303582461875193903316691835567346264008362518519067785093028664546235402243851080145583647239761242870124459611034249408231899225308194725595982957931979479967339672240878352103248072923646216482427149190244407438300634994004987585050679087245891340171450140215756640031670877642331775079103256269858415320629679107233500532067925318367251370896260657103705349754774329873338632555716151425093226514195783570494014428157348682281153750344330100413886336634500697151858459964549858287396549553811145661305185462272329103625860470179056460348189281198562068361732835015224512069826425287792086486835627924772869290674914738746206825344201737824348265648698271212720553181935370888194820214091832899766567867465637378924220141905066814143650633071651817868909064718427987371286006415791875787593757654690149601876477408821837836806821260075526028246044398807516552725654087273004142692054430688756122095144908518384583069488513295259452012015856969489249295133549956908888741756817594202140458061896793159267718077508817237610308713433809793043848540961459357575330008778185405501949123477396796078650158033448212761936429997842108119078792091816163683617269926668399525754680166143580980337600541623102897255856610200572060252283506636605911668719312161386671466748067662414470389878475658052234861047952224311930547558448130485332856855946954925788209671145918551706938773127101887878164713328840134209578874730845032632429537921637751528361142755754579522913982211829230600611461660903956528542640520499910320180688326925962193868105669166908364727462350755947721552352732688133072765403446807570619578582590743604732774775286794273023246167293547258379751532056313121413412521813386053601823137374039877337766012758002925067662928417920072535089832146143471834460176775692625503725531943087722227339701540117627259709973724621671203009814420918219032672832557936231873645033512386777430481097504304697821356771591949825135901408734421936262421215803544206194156171606472632112574568245738016997777801747315223911656160755666541695590411429882880832781333126634660639951284464810585955271615479444066723661523617007894086303063867771916141217793183073175521150576999236026707075368287987023233779199723546441794874161363974301128112276684806757728427127803987171296246702086884580390030327841438376606195382872308018874057691424927857744514338323714410374748540747692602988830726288787343493275990924461333615260144867711457636433109854520050791729246489024659734067247476037376552269771618850020124134543777213986697069725850217895499111228439316611676681096679511655039525666872322450930488157219797098032719531460131551935870954634863541615250939538324564703919218797434367392934438043460321244258277476335327933719724056934531001391720804094071084253334964612768331410390761506055425846942283534453614608538867057443651968837484538411975559430417947607783116487081873163634173933090398224162356402074180393502534936573833776302257004663506125441663493281206678798814485336576173143236434500005208961440665591682264615521313538771691859601937868693663485452413818257824461142411172254575653272217416619310373930466856878718125474318785883675821499021855482527915780845917200797796729375650542982015307410790728326333824174037943754674657715778214541333403925213002340316806871225848274882593348380745775413308976542748165461635672724940026066576044547807117644513422816427148756558487897761850539090568527127453191037828395261216438560413870673784599359360380899326449418843293936171345072875637954637048320247082001116181240404516182716465896604529662256921061915229423740799869754739142521929298965941091209263914188596805455947880028284849820955417097598493874321586411234956394324118563386237666969965245627983821416635342991904478364168348742805584880312560336768110913441860623387846400820587654728030743969293593444223202279705640551054429046921267342742873224200178350923265125037355151361060504056195222270590732035087918346202464894597020299709961828261255869257810804513455827384949815667815036328548254034339763300567653548604821193463076209131735986468178631230544328754843178057232878416049716302092807640535986056950295666974977075705882431098654723272333017500256455090206822805342409120421466426292182992943295307891750754845252592656812007272157700290733939860155358942933733780193813028946611671320969547303385321349467249522949003686839441963977373234725086101750769353523201371610134045341858187876035534477708238987146863001665978561975243951664312788235968235300354481993641547426707263629434263363244172767980052678083593122726664619398566925648226714303263039722825129373245090416952750955957044408262411319724937498484088613195243701402095722567727716107564316573919672269363788388024209811932635051298461335515080437727216685806088183366333898092944006033428937566426167362295689111108349614390058251171149338873276522780498710290325197585910386539041409846143568080043978286556112136407496284025919103304045923739669370712285147418756017167677237429454254750452685649980236014193003346859034984512997513083897194896674696260984900220962075483942842508698772815191908500936171566155560518957159281503613434038837472403781973649278776969274308287199031552652215180285755385687392118342921557959940727829001197197511338289790606928678768882938575100945819814506730731934789141958259159586291420558647088766417610421306434200269235142154687732758111512892995880603967598337289877256972412746388417063102418853463070019895022539264997970729916236759640566398905991903494873592706660601968092575298383021015457050090412487788293038358792342869307843971860378624164177746906542273613445176804230935018411444479051280409431286013285226435761708005769062004166384878976696323919611487925859963513142032807904756491932123028228542393298312290680940781493198908350373390165784226960635427464685104866152294247088564778132232962196755851195642897916518400313630340341650099115157110283672372942470178619800601665440275556175322600853474065600126128403743412829096141855807486852186387521798295819952228414552040876809530975001522365873320942699530049112014934820162642516767537119130913075431769155061323379647919612904391855847899722051574178933652038918925603342944625975407368069178148941803410159914044418188809192275523355372953118270383086744595071605214418034358715713222426139691299150380442354961910394242559676876472524857675717384201909618926863938853454358464961437843521640601011360311098635886313860586798879573095285618994106047497812308796272549161240411599691362997557133310761636715103832600220725352577930561814052642400203899750464085130379614274692695020540600647875014813065436629181376855282156614125670499355749649461656348443967688182532750234557655766286927584113444965381196292339474921768482937891311030727626538200729243181753621100278131887304299447222710808002886729116814445482380789434925800157652552876622817547535453310990837142944994359119252445793140072161718170567659905968855927275943848262521376016065884768057846924026728202174354176479135004399517018772969622816969881909200276496881508324691973228878434185608937129220951684747785324198359759462716464933931995457821149320471593483888086540534803136056137080093050705892501023379806148344403220489412722371265188355629931343458067383193122941707676084609464708870320489408192526820467669529199477343902486488005115053560500530716505177308857814789860290668023691545383880491406532864831977587377351218894603040511682865977985188144329752330795019807993969249033758024464962979340337597289375529877139731327284063349171167595631914406239863556300795888823117303521372303386387549478724934808604454241131277663842434539166669051347834203082063955669113887706243209239223964533264831818383786015344224305976125624839012408008497356839608213770158590397660134010330983285691485913031058631288453305640856781720956758726780956673545989318820506138392726187757022109932020207157478086743247439491303523475256815246874644898325932450016780619855546471414114924107120688596307370159841519258034552679194532133168781173271156369933126568189943585866718326440057362461386662194370478983430953127650325813579082068998727013941048161383305190261768573332153132500656172936551650242180132161003243270402107418326382453021598833448053396058841132662784479445516125882469733424572064284786194681595785330179376908998598719155695583737531039557429641363118649816321820110837822967891803060226605161029808199315894312963637879977506049118639586973220077453656848863651683946924375967592898237969729417322628850098090475194863887762626341581607315723538909497497190967036010817408507463163767673910999764316506571609273654303259340522460880261874921183633842467581445516386953314542696899695966768102380043918300139906804205308058911785719665024787549303288686687005096007410121326588378569474201445765357984521285367219354663013381860790193272002659326208756642253388569675190445697708131905525280295763039233637823826807901236922658775510312514444009878588632095988293763730295284525657797060847798470802669319562882728159751322141950411433343645523868282494909943096669157408550917313560337318461184077839895229127230260502103607636744309072881494262524474258045552039233127282171394582282343077647874328138600468883905540407733995550467228365700130711738895079396021837718240902889670821748225321867495069093505931312717010308344033156230622662835536651358765060065376069767023859465222943077484400171175017871891256919522800179675281326641942920599659009144449531033634001105099742523243936960609821165336106749897879001921339525145989702494755133838887822332560684854837501126938897258962657402875879688569135766754702791181046088132873344457344649750707831137187712773076199183301601764429590451689199878708674424495254744016602603290251759433569565105173864613552531144276929993745178333409995423956178993009480484972680972303435614456027281011160017466525275938295847754679848186536721042169984557955898670806538804335193470181550683022793020843971555656614765112659523799659184169737841034388156289257222146651196362404690739715289048888677092176624770575433739231762451405956712927524000894096754882677346298177790575205277891695807414471094821584451309701740155583560742496568099980204734149901621603991672809279590278060447693400423952316082996347846305774808567856067606291198442403769368076394954592729677204290827909124092927141008938418626275550098769394526267552108228534693594983734618361841211856415587687814353086140649510208590664957810837430279944075916655881224560944034233176456166359207372265939299706530212209448704012909254821501057358733254345893039413580093403211923694957075991504283687530339918882768336092059998370953603208026210475617846003201561837878357810501280583822310742239743021574341388273799363977490189069029438500452289297939614406428066071983957023599984039247332300133558458236071209188254794280681303248967422378680420193292236581132557889314297445957874172473383850922687908521792609825234184126273101979089198725711299662159090291081577777117182747597968140601945743441512391826174331393730809575351477564925647234757472949157293630948048156675613699074826315795434648371205800577562408373949691654868110728097807291880772772359220149092211333953096477892761285368313608650937379306300998673459120220910357498150810011762656007244268109257748145669316758755845866474438803047810327689144515142073375185860499769305063695301409110410672012737189458560232224937745534250181210006773531134487633812940466500533654612128821939311962645142492815063013711535502521271675797194386619815181038357257994902260809771780012468161037609998559173341426172039739857570046675879023378466967738547177711322709797847882322656148195556707401370081437909130727838386209340698073214164016948184293354527081552174012453046015558071293762107899151794734936182304372954413077274263285633186560227914201654339825035419416363112874683332249605778569547563147089686544018441168261239450373219022818303766870701390848966490669454921917276762259251479912668222963929975789494074424747568373166606356575708785016672969518258402296150177492111437323259544050805386345096027225834308140568502870515440818946580819102879920768779996136542788870526146806306388787716388675125431743438614720706879793110602839609902630366563914165352850911096072177293723925494968778780424488620401357673255345717303471244037494667840010322516384751588821708617740333184268562525279094497396443132811739698153154349817902936783930442018438565841947651885777831007596155014814417114402990029844321402061345825365503340756557114738697482658843883635746208280147435982845331883176097707876059031294892614827332713194831505688490243322644677277573571457947464178156791809256267820206783114807601545252555705924126104645373495760423783369472717143018140811475745744892979058075766686022020370013615930154779447528576348661117651305102672070118776883289017811529758267627418306303222341269592534168506352455403501962557914967017315914520343028280001537561773077048607197602704414185762282538094041738904974175039319275609041730717534496343695334799741142970765949017439875481189084821798241786182650522102945148744483669382150423437854192150692632402343368729407292758101601619125071917159409870900622060901480156214423047293541819068738323443639513040758524287044381724178765771880564699008140072390265969018578586176162266878591639974478540174241652356839384790716062180632070934035725239108747590767268308403070112065588423805993706387508020291645641800305914577480974163748296533228650003309351694716685249286483110045074064351571090412426738369561701205460502139448213428203418706728025009407519553786087369068224697696599155330965950216669625803013151477678762232851568423904149485929234681921793457610341967663764040132491324674309378698655884421092481830961342493103443727435241498785564538970706159693406411073779608960601084477252461127524868619222293075904988001602791688992803990331762690695226221029610722249351930814478883355850898265659782715288282678344123201648840197781697593151033897308024250130171670807744050909246562361317002996475770078935053409587233541436855285295728033815030032036265116774540433772999007967405250902107197282729901769507895698558495125510917733344780143886287057832129079786144664577525494220103740467386826286994105018891189822441649156161688058408579465858482536219341739979941330964019872157146311736406741180215439628655814033138388009108722116750328558625601102142968801437331278569435688334030534085634383696799411679491637768960544543808985103576436002961415567907722035453752420362808819033598226545932667948653428342692776803938149088448549727257239357096274806103801360508554672148145057226404958391297380424924883864011830267996281052858075024891666269840924635714758593495324355144631169952050942961054278329961026166484995570048865924810447381784657536894848989041070397662318987368254725076476167681188890377198010290244033889283598787883578178571038302769484727928332400168171702010561226348726957512488302388733509733863205641953597564068347760975224310909183536136561717577448141925524195976929335532697237035887361295497557125570260068756487712710789811330440537076113500517615535276167878730053296625692359573157535725979205171322703780435306975053619004370603519459906247135589928559396175252182611744524829919062147708065969520492737996736645821105870927112344351916973908712835411651845814229916389790680459674550745573742001823196225797869561204538041615465808625881906156745263166112598686864605316922672081428371088168601276729208931696257452374661575560764640684390648235874930951601538717634185084270507295291047551660776422983090694968757965007219295111122817286314286810690578962127621511541282384342635986921879612877907912098317851935691685485447713856516460605835897942292984440592538839662707597642145539880076968459622071101606442759199802351410647599597363534612421972467221151039568149676312233445575395506486975044673512929070662170789889665486387297189004867933550378280884833063954552367483688653446992837359762309245045747081629661710044480041894606413478219313652518422562438677486010651299352474018738453610569375725060338835043992757184018724063323515635282435465470208560822097687626656640814289165804107006940186420742291277410011710151022698181537284031748773176987813356190990789618744617867668975457305053949993029880470335979967988774757856907767976888476072912644511619777866347127072298182107328353551843270625250542328264390066776797916423056468476789358080605547584589519147267416007859567967791309673604869590858895144551121498091558605981799948431305199084509671177044239758824688474895990202710853930610545869797429473764577608565749639146756433041852447842005862994519466040473717734263739852156602106911698864775633158769761970244944286638460303625268495367045268784655694747865258209106132782500870045546291554237379279375908516362556090927823689916982479538459856263836225345781933485531524267140098720458199643742388419573591154898623909181024199388998730259633759076782865929764017815897711831741225838276480624805668755681625449873283581630356549002284653441422221408131314600972260392184971776614929793948388789208560145708486921944426261989725146475953778842217809909043385251786800315770086286557672030174147544022291507899242584445709394496121251399671652338085551852544279924486336396914447826020488019972611897657277048376433847867601460291142852449382489995475398045390695889957053061732117443920569880889902307122482947826095354130628501149070407035740012754651957841725064269983944945562356636649635303293793817967922129541334793327763403904707219361384294741392325763070550541615597892452668712379244546349507346576863501239727107052673316808826182315895987471497131999564821392431165855906200049901174890593778041848605090341931740595873551415463430689163320390728625437296447112783105387379096993099021711468916778617472684638234745413185870846241288301376157117024688989220991214285465053257743506871969882693627211057274186486301158010041477805481079739358357392378397526128667227687024212507418497690240226046907900920070912608726784983015767796817182406086587805081812956247091026624309591338899344084380884852513204054389526202199925406679815967967367035540517713338571778295749410497667440459786130184694770262277397112655487315640068664788626982312947153339197445590593363045775620902703154319560760021736986433687074448515892712484966989080707492763900765956460789000273238694857419268001330466601801640982893893960364943170714821223140759557311674998871024815997254686490938510997540856408897631776233112042004011075000337978094404605717636846858404805430924375210686520565996903451862993569852438103964168478234933405266129700910575809542407100292095537801755650717117787943185026748113388078727730452064409636890980379959516464474377338732627584202445648542014216338188507017532855194538243473896628802661016255835374487220930653362722183836842899986124904567434221788031871888848997270556766497181948575171090364527501290191467305658714130639290358364354853275615404540135621280325155439005242418140240381578065124107721823701792001442394863686069617393793263858553891907980586694857501438002687596558823577487639426631589750330275983183449944028958076537865993167269085060755510923915523560472890593940116248047258437541995744699833700785434586720989425168000684689452546240082993283616065246250188204231017875230129685444716214731809571628548190277497602426320235510680320399847850807837041179560748226126582946343833483747704537295237561895939937595995252639422353216897366427286122598554828320001728665541813253487349219241665492059394280062949510750085009745861083826329886460046616669758108926390742054239311927084072664955590148953067587236006047818340536783514471610333501087324917307512952271097042341346782269618503946647561156027354803404666106308337416480551467691118716415760229109023594822939931163489338779251675763912567598935555689026740048774277307045375349025089035970232200526482719673665821573622008500027743352905167968212647545329294992077842474590186544082563833646476925199556734597537610886344273238567237497278891521063158599503495656540427424459818516078196746491862677477479047720283083345625938921820856259272236485991384994455603292837851639091574697519775477006535317017270452158236715561633864681684367638333088325370864875139450589747359373788455432170600425348921756306510611026689932510277922099753432946846314199118090741760509343992832213818348934990398896843980237387496341692642291751753185059509845379894569956234247898362455394652299818461191359012940250877365071423172183347081989722159785612161494409725292026097561799144284426824330461091597384711550511731014405641860291835173634153095483133296430858155972546540890425008174555506737244700847381008011301737095345479248327399552337503028626361028531687355309235726040306085955761230746165208216485240133412967506945266997777947592710346505749371182364637818131027301572042808396358200774098944222935531364506815321599213031960639591865040854798060006440975510509377714076899294006738042356940987314587896954640544104341121784574393226056315818383818120921449477536833977475488528303972564333120505583491863262706978472421647124694560227987594055372836931810270065600873025230524085103275942770864185199237340130476213330780689357343536343013976670490431849944336590469774001084461742047267872949384400012725294246917024862984191855178264582829247198424910321518387033149923007399964359176655949553583109630043313005073943328968414922011494075500736156754015959438724256831891632128346266461486537462733220254483912596548254918236522769605234056690957511653495081795487217799561126323930207714482910988681574904674674112992902080091144981464818135484024713136443900830558634331099876521007379930814882441654979446031628330851147495103541114791225583297459755260733044368276759033957904946788301121515783326500146181509429089131941318906165801942830648025778568909601322303737931529526430298393746348510644865878358845373888116940544129117316189609575562734995569547407198695726449147241116954963266532593047209840756400777143622323647813169763210496568319355410409795677951397553075388976881916453233335886952027421547464794916999003047391832535115154941877447920218517319462470564124820318330800822507818929770438018450592171168380124458793480930429781036200740150682630352694027151525230791857234526846754589456670691416104105549517249454407121022058709803811316369560155339488358959945748147408852246447746774704710726507005053704699635508520133597777050896980528508900548775594344515395620526606841701726240595033973484194714937226641646532888187810928937822318654063475263792764085623708242928473212838808718734129713421286527849342713780923144205240009717973996978162842293556322256716469870326545777940689925755272805018488069541674918044783749568198543256327705308026182663985599928552243610275749482769528807704923900705386857398721676745092766898955295943896506502090870463991665748336521435212121219389897627386654348127307419215858665649271977866378879316519304359906587803060341639053602557182698086354189896914514113434090311424780617362369319693671397952272536412999396827340376848521422904789836340922385070341378899602328767325553383279693155618989791126183039343272435464163326815394528366151808838069217564074680795501461074362234030538264791003012370578079700869813632247177235861911389653806835437452518954878850717353177520001945855004056761793214083413573688117055454388657677806620953321322804230669277838893829523670285733656867176617561368141573793962289394319479889405228361448693988491664871842686879613112998150488183634124191327994565115592035098535533307288403014266814315321804600722947659948116868941141294559343286435061672538369200233827175985820779240535011917341555963960440893874915328140382799340709070274888679789842681626257296729480815235121898898291742179558611498690308384266496026380790954784728667001912121228021945332687283826043584207246056755826544206971405890573295981725810423394545434821277529642972049371334052762204560154820471386696963770461519408900436066253635206905318435596730459799423342061202035156998136272885711637846713994914086004865178920178559342028548877390565606959140170005974733501044621710383167324733860968443572571314977403280105179648813319018465993732379095643223363775591426595091279493058688961022637954239534685645891879657948145086354066565204697948273231407923514576759360341346790922647581764596015155299585273402808813877576425690145069320631259531684225241101925901260429431167981449637869490731349415813635824778149435198025756411901680652135082057670144822677216064899231801887552086241881868232038959764859684605939274841378606437588004422274033219486899450072903178682018500670036957076205994315492164865150624892841949862284536097789596315925715558287988723045973924244312597096032276898198438610964877413722079288646563735576028604021524291861453155517871924037033608961576445267652167166740801986314527082630888732551209458112106424363238721736991450971282266112703317005365673698410076661999382672838414037749607771846430317704670252659858629961920455298378294181549617841620447575564097260750221576399544646370367581272361707051895415299225060415107074234678961684469172601175528330403245491034758636357971408961699587822574827028838323827939612677535218173678144247505719871271163408124250383229465655736092938799269451316253985121011563782685670137651581717335628892435185135913658795543572294131130358586908271046195106612798143061815701871117471294613299940427469779234773465765792640926348759793728136604081530799927199236273938821827273218842901286009550190304528966964282938931935021561336442067210539495251184934153079888282628775233150906443072764401629690355394543620432952560844907460040905164530784800098993172626539907201403964107280512103731539574624417808692430592244681770550494866002776065835189650511016815545423788509127323288032630419468485898174390858443728067523291242971869518450030900490079649805953061257901245165475984546589711193927190681215117417883611491323699866274327302440964457836274466335756305284122116164569554053110991799797285173708543924783009765795988169044032165617893814560565862466557164315465049379355819357929771080127403155728245150495016341904894132888317115851114442617282052286082463515896750439376573386199114343026601554457509063965038970327248528792181405103045491319223756065685350365730169556352265811400029354480773208270562976595726435034206013979345029278142961836103448538741441423165973725945314548882419628714206083803256152350939132850261657096343688989474215757496574018154499127315325616812144588803640344200009317327001125788122460071064076618155180692391682517536318152215915041223411719423012561940347895683643004833815885224337985927705526972695438675483037958855470319538523765676875568708707593658238949435068532110427860755747699657075933210904313395121858256090229697342777356318604448787790729277174989468272336249591167432987579166181451085573874936638886441333066286627825333444550825098636182646592151789245156688448918036819083810207074795830424800762139682424589897867359861436653316298054399479561527842876304770771975862572489523765957144845664305690044156977681634591198660089427210354504555850914329764280034872851242440197170233980262860504187425004124348805618236918271418317268558892173920117172115605774109913248782168969574738906832099483259198148584775940425725047697594595103161724409612572359412748363169105107238490562776433439023702265123103620473656755775360311607891952472928456326969874723426989114785803332066682069930453695608839949091410500800746150009169001003696898345765511621351684281525676345224261810876283446967845114918159531040637344229287087338473513163788121420715017416339510780736365203699478387938398521875403964475158802019554285625002246104746221007404613090603850665233493098249577429373723202192982602445833200683460621567623846616053737604658336948128300365911026614688092747885056876356948213029142942309088987372493316907267996892918327152979741602712574609825580019510596646400116700162226024767059544606610988394426004688614863603208031084855197805079497284807920270642033981903996304675089765134562915041326491518947967502109694933628409352133622794518663307422934643708845889492861641352656188567194873549035225960632021311654155366537537134252092439876250246836173184436058719773052850491124574618458880898832316775421204622623839107331503859639411393643030404160364451152956158994528839158133987445783101594312605020651711399599152288667525341916990197355965753889374918809550915374946297152280424936893496326450915478311478003340603802038167158727527804215869752029090570271262914112887824864900938794161331378972049116715920963400084510878211976859585426965995965623539566348722795727735434109041938056084228215180216556086868452668097883581380236288289339023826301635068458464355852709856908936054546040058059961563751577944502722423664366186569588285372927047824829589233848897020079068039180085292779630765139267765480868100417315243488349326990316912633616946538333306834927216135360288144292083223908404645581551594352395560393060283591748048612372440753828259512259334300674951309409957046902809074118468801055783651993576205315122045178453340168955273552632301913460165713580471093435024987823098776583129970570317346715705193927853951625312044720940618338328751530803538998534564491846070015479033075980515261224168018044170599284655555515475146050534046835953839065283192806580153479759860622746849853108605180144863028106063814035640327964446004663765064150977268834569059125598455849800672225119844704650401201179053484049948044308989173956759178734472244143248067476117388733473532746265611550666590802665971904335014672913218459550440001375897623679670402798416664650194446791703089366968105210730396663242252092087293437287131609844956807454608450549882452094737495109043066535147558417526224796281154146957862718279622843312568391369288054069569176738708067062334373054472377493733157003120729673659536989124659009646475151819944779727734240348262219836902345691416755223013421948781096320785839216511259319860698156944871568419089957843117010359146009998402981299990403067371648978482885200734553096696725098117179797802966549348856125650148362963488801757664625480458321421061038669674190990958590853850458004563702478537757177267055308365250660381579711388720943760166424431128418176729249702660889731069262575866978603863910101584693125016798620384002430551771539945275594545256744784657874253336246960922321280659190638242221453264315724001633662564209274271973990932276986446877664527865811373084906663302355244447814582354390335862061870814856488709795295026951059679481205396976707365309034205964193598360090881283261935321638356890110553646941017264410516800450054100920298667923021625595573955732971424521664314188652343022205345738191990617670485950541724694998456864843290615194889893672469226907880276634468663291242874461894779799746406551076774253104600470704913106122907809227647880439204942656541376497487249512733494205351024778691181992141564032260064070761214479035909312882352678992141395793385199079685919103505374120790272827963986031678322172936731899834593900159651738183857063757307500979613887968789291809828888286795769087457527121899655170070845370867731370224169427792466107994728505527784771853694451190979656798504235683770670364497454462822339767804603699944207487225378168156678413166108868947475730310108834301102523294465178567265823694540475986160869692399052882222027930522715622056530522338932895090320223209355552002217911758677306271300775002862966463023580296257078989586496708915116377043629705599326190772597244046681406709440091046028986933760820457473424534385031486972672153218364174709328375314846295317263391702737506651468909877346727694199668754001212557680663663500154919118969562630984881406562776669912856116592773751597324802406659985050577091604854826187297454672158069391312154221714478370282327126859136800682895193610119977243743195483805965549479673059563462301693683423496450964158413049591985317470849198857105571789901919601699969146632400873922092294315957428149662899705189405493121534244477890699559351563897683470384500312491156572338847063778194943104520238067066511298256433119266893530977773651447204605108872189091952014840943193058400400148381982934452657867082137556154659926695705188188097889810342740504150560799835399276150588064764347932561399851075461011518602201777401059111789126334219010387505099411265622175255212762964882787199552070171807694645806073935821570450410184407391441954690943023861990363189473666957635335740303242121342194268687500665399627359521178508293278998504579447372211421633867795271069968159815068416653013474909065621738047259263922264786428736899754108993416581453134977450579329028047865456270373411640338250416865773632280400236561285079548857187014858321347480122149898103794622716930907133252033395590257609732777683240693258807548297624854003493260728919302787462007821018434688862620553025741559995888058108690761397233684151209496710144720845992360173310203788348397310006621149948310384698175462184826845379899205174640073387121987481231395727964919486089840394657587331323586502743708898897119351618294529267420621197979266360389898085688562252146749595982181091704131764202246450487393920226335610739667086743679943165614906758250518263624500680857771024786518564992671157816479841523392608717659097852455486962923775402694948533618346428988543526879774706545141924896981784262274621704234805575076022742460641759504441792192019154024992621853936824797018094409064820973383638003844911248016054546051154045374880880866109296722797835003155253785561193392461580990208252341639035258757176379897434514191690231305793411184151232292593021620612656406917979050018062238599851380670646143975850867079060938928554601207494319680251992558311393279041436712232521714119575087639959193643130151503522773483980071279609727318537290484824255839037707728485643726233162609873242243602576198241957486613960414711138715177276306107500880244880772413280283026541392125433789842474203118098621838770422820406656905179234302405613457771337102225950315979421553005329908209181287960135942193609193170602211641478809868870499631941703777684815281892942854916372658080335981663243973256043831308225005851072125412436655191175063458891658116694563618915702420045434232600469433173539166560119023128603252998573921818995112630545320903453528305985495381566932326656046327022463196880152155456862542778293290609839392680015187333213688473717071664796943628824470511630901777475022754597235418628787147289298428628410170948639938760893834473872305873222091332949110701187228139657265145578007594667633454185243227943776516377077217599604390352045031479868592954637346300444136267888063159983066807332369762091245423614039058764014463960447082974293137385445676032527348278082575405400430743950450679434833319843443667247412240754547172171316592483131697280245009309088147705427566570455699192151211266296659492298239207230891757484003368747552993000450779794809069618688545688466684970379233673068858838082059085223754093038278842961481742260965162074714013743571772718464560362559038862041137523274305788384444721325210787077598646675115338417227186066364527233164404831574977607369218647095735485725549344782715757281300031501150929301904577845828328274337211885141723967137427100005805838787221295419099358465968454176227899770969879149561861382490307335483955941058726535904457621935126754955614018339245294907044521906440774164338292086890502346803554743651344609641240911889031782651610336815603115401152210066884619046187109648754976995038897677540979354755332054441223839598578139639510008345008353344971351146179460665213278390644727209578555362452145543827283325370655029849060219514214824461683374071843460513918746864837556830663148141355962098322673545348472861761563212935444665562402310266538025594099493415241232480289572057813358922404664693429817451551767850230271766810431436625891996113236628796076577727502856440876618020476480116981758952827879949716298497944984498380141276316195630010934101560096412225982660140629348617665482708343854222291540768912455231646591409624914225339659115802739591864617121177178219679768004242279801245078139379596347409789152802499663697657030335789620762070220673015837266064112080384357901820949039654759279463486401338104188783311817159935719112546984631708571385817580498110323121928377833235234377779599355460974230627668350220117099629392181235266760990908296287749838880805502769340727383208543820764692737363832974735952793801553454913291800333296959549470426173010696316403792026263470195223463900779451667024101809020526846817348250070227021704030088980070576818378972380266923321683442939231471418020054474375029194170935346979015161523609190597155581186675988440239157399686133049644290188685514963013094975582742201488725906860675008391061739434725400018229865263195668455690399800188534214176738266274956334805682510877218213550031893692659451453199505549096054181947781367379456887909316489658120783823937186788087035945448485891172289804150560761677451444957611307168536221129111349304949314179602312510076505104510055843595793340976633737371610616901366810074281839195216914558916643791846951116298577140015741830368886291977011488318913588519540445539849347458466368409989411481368744758399104414607516332046423866626196631544097925497316472815188574395183415828289319411498766822071203102256790278410681985260860433201951700828383243761739210374329818191905696183486584827440855943383838476928779407143179808839569411602960236308658340013153059649325525577082718857859505779082168486114989934361825235479570361866455220350495284250129467462565024218979764682065716960079323244435929447955094906217378414580589408757873786472226375162036598326349266141131160443034390857583402970702255025787446871795690277958773695351451886520092386293616212196744522424351146709334345113019510433389252351539686563529384323196795518700551128720656081293704525388050799630843296655499327792102670988447391629030932549906287209230599647536234906663097437975501615907879260754823494227130225106828468673672736064883467193614743411023312268382807912093953792454629950622744877352683793223496935814666451264137020578657615443955869890796678203389904244423231147269083588762814271306640765455042339643863531882246957921310006614495887711504786032141095833712145525632772479104023927996726639058247535550606200772660375297853408346012604672192607640139514490109140869469908449943997806968268001397806057758825990454730292321443055858244540371309347322821971651774248365842053920872713456806804061932408961926239975978817383580374956584762542592643477967529864839775903115554324195126621057450586226494938127976067308871862005591723565704926359540221842976327993333645830310797835618989141764965954834371027111849740507118127580169081846312068784542384188151879813773632292075472833820403904525804747946375376547884181720243466708238962586626772718997745300694421915157627017649942603866515362512738664169893786596760797023117873025731303150173477975749847364690131984928316348177745284557035656153854498691799613769925213310202460218194499369613187917165807211968253038192791453434805566038251435830760450812567945300544375933787640918953283401931684612300217477485522360733261087034036635572657348847692993325570285973810236354906047237117240379633036063181752317212891951085296263058793513938502618346027498352164377045127209765574205145565301764344506397639053622669679718624276229703779514400649036466078240318341712862028627549376679280948488167867402746786144513034634902290183342687790899422793158767619147803242691367130396858328015897588007248655711934245066438351953264045500418867627940019566659889693928524255881812054146970629204256569626054954871340044088016765530370268405829663497048361416238034181023175780755775913366072747736531656649185653837953153214919818569002509476929898188945565175735265047387082570677779128806809272737518677951977189902519877092602180875505583480757421192824999474790159146125392518375823481092799193117846253125261181168331303373409345129216419025114484081761180594342333689234764250502843374156716401046198641629724287047415767692796566155958223436745922475101197853733342463388459817384865936237765921358097275050829694133378937174977195641121912791431164714950756141581194263463091430540632204910295133299132533771820897194969564284245632728412349077231127392303054674282025272394618161163728318572169155743002429908919806967897303406819732554373151238743197159046456789847797758067176348717961416512651116980723724418530049723981046832221641641821889145920469161166503779245207000260944737845718099786714288339371298445572589504089018455208723220298027302505717882509953175122546808468359603385536809170831457760886428860373869865711406755140869416175129593959593338050458169741825199221734603636139403246157026406946707631085740552618218458958090693458385030695846637041946408640377456351599036604682021357574046132644323705316152295370375201605355292459959601688056156646107978830434349223056050185027745919617040966357994254066013345073083334998531679448846286428000100424988515393913284922858368110296331785340582012860750129433022301992733215919208295166163938804279550999606707502523261680453312616034231652183316963354584214353871959745308293309843903917026114305999368761943124637005430224525324320406967403880623374180027367786112015436520220691072192482432021167928780726366984060357286674272171248891640562282745000356290387541753452790853249252650465818293427799237731551969608315194726488811629374013683307959615541277839480069338538252899243466325886989378359607252328423892160728980766775173299510954340845918255562055073111042740724321906598392369089947064851648792053897268244611958729271123429356074047544225506805203289544691775076028108679579280536552385027286184528837507000032329788506852757703463589825915540550723661274028108540235536519313595980823813252265081755491435086046665911415306212236346626537835516336771408568574190218665851196820129532124844144652124618934183918508822963901475206907245970122578674732904597215142242280298774217153424372172715773044940665231827135060766347852929181150130230122991059035036791957785880009418985824569065733847660085684141863759050682389903454142893921277077111032173988600070639358213081000363769906557157478349664942783057721266157773893301214961024249546212872835093297178048771438901540265407498863611841285956272493601843013675612632893932108317862381836125617277828986488183516723190439456447251507312114261781168393868730768776411081550485885634184378266090737079558651900860723003945615595977516829305844465339616756294384681793663617027677626287165417356750527700870001300758223575441901858323658012619586707021735624333743102616732496239097404901313031272274622832835589553252813624474722952818430658665378624192154233186015921152411117148850271201568814128759976557047556227977176649808071849017121245736347471394162760856682626631591097096054598460906719099468475360070794954989490054792992628838362345623825148609737801212580739666546640829219975991526633605968854673045653740027327279402593950634959777404807531244849283463874397287364077510688325257161283101298227246264813765953611581869735328242858651369521979963305913809027083339974585490518923707721708164412606142622035568288919778106569475627735680325443364101566181352080156116916205424305274621485878285177394870957622025903004026465008139558854537711300767653258713388054205742540860772352532874608046012430625890460968488419196148764058974359768709528887496371131047718580484120140990861613690411778149260254380950909745874154126689774817607788527633800674428521912494329169254325028006907604661224847754717498990413771056275706867595772091517538877585311849583260800964603746856764496385063551339013475472452183357222708077775775510542123353462531305288369854866371502988671104488988147684181280510344736308649357721536677501493101048988850750333027623678595357815436512184665363449931291916261515453920346079707131758900530407132725867930608807502446628134461694117941051267536008126742312636428337187954974941806970811016661984737227262831494067242408767176016402758503223036552977186306258608324493265115212481980239736408620570080217855656662251220752688301751299734636986678960074246545283569465974743001696439700950191044785192250143325151086204070431235016797212099151602983438142970828927195452985205127653916835850830547387076349655678615944264269528754795638413317352305063575261888558307439541845951139555833744340530917542485540876093589962454655096493098026865267497785786636316708711450411383726261090699806724960317238012864760202529040625106009060784895147989677612121547582112840357853953531101766950771358747186168504969332806642175024639307356496419266684773903192882399266019795966954606771291947877980139903980919831544750250294303458957755229777218983030092047841317985530279068890407751917467780612369277102805715769121007726657008508004929379401718317262755080037747358521094345355031898152897411747878649414047051720151854249617193263765559157056420150032523966669777833911747040896609650814702811713163283132041847985225267508267740576736036712955805640002917148507467646970885395929931573998943408553764926223769704856102163122319253126984577449110154788114648027532113827729787300116377844056179915800685212019965928897892333483614483315479016158747646689061125806211667566161204620946627196435340151431097844033125827716123366536438673540569029807955273384270305139841391811878936408839549980989656557063939784884847776294698879314870068168130766631213753505826410885278798972461463878387543723175054780583215061587378972422626515939655829640216075193019233778753242265332523957494884139076089923372010615122840632522697133439299704581864426207419251038067184376809637485517585484385424545757274475439571406158686837205695238092552301508946196844965208836883427230823261302667509776805397267333335246051139038729773747374980844677922111492221780212268878163070009131535763124633102881058104051722288340003914337603581060374183922701914784844796192328481264190529354183540315776899584851276355423371478757459559387553545079451454994115049053635903030269797890131149486073614805252509209229772537895498061539331532966052308672060644934527744499422342822064510543974798540287334540826336269164101898804221640140762944059117878683858729521003590111277747526550480403396994390615698306250719552304212382791154167313648462381394695645088544899233059647840058878407337893080510768677574304857274851834148372220960529961392486860702552325997758806265570909549089568988993803464840864268628995673348311418237126483574717012638960420413795401810257686719409958647278571133219469895508830865271941322542041959951727804545713069608979171291669037564973053215303638565491103443484683439984030971173535398146608855444562281487200222385687178395535593973712507897710928564384627588110053864350855069155655544463692776981685485616636107595887164485232127553722765068903662416708848879129095481794266917919488176951711719717124287518975836249610515750092464279039016881117658829596934653544226236570623037553034871812841396320498588666162238155136630762723880538569987797904480599310373325333672585449858314639876689001829956723554015705713157201518774021029598221905461839351230720844633691677940903709762515933781911635403823385173226459760366305840936980256329372716256621769739514567428725614243132260040790014020121631793262163173206610421807036587715765494957387700905235760792569363509853497524495783089793997765324757148294918291034650239164586890675093924864137212738655985437363001853852631081833206306438863014102256397631031900926933961970303508961022572565126912101105163563383121584334362625609658410737348826710664054959491269390165413965551956629556825737850587060605476508618060488649518361753343324507000362665902405842409466181167807747827462681898673774154504313206389354850553069445717630861932475704396981472332548364038466827033609988549727137551124407599603363423918698823516364036580808994396558638451400056947921856595825611794986218428927232561078002692384106110307826515348628900542965941190553737003872838664454883960809704599612578391502517546052002741107433978024232335295178502868371415661406769628910179637666836185070897854085640910816593251485487089217060261973818133203015826652549025993588091432830794991296212281902702224030437587854435060684849394621956793994810941074553163600900588289270288322307853068034111480262609535338821628483678562834115141581591977006865849967390888567089410914247304430859304675175533539328441769334158175057593023588967189150444734259542389726284890707292588947535236873450716465952542470926954385815555534565343065457072709098857128120906108332737676419611544520554563140350154845484985210315396209571674538892364554865791232259412832814783301371423866229662271965242622799076398279334825074414722973659872342961285660711190241557535938635555053580038018660691445012820740865085632217909128873507158902888960645143554314182603259116972951679202687703874845227746339461893043752116259777029983704379182211463041757743849056445223008631655745233903104522130839276510810936445223616550847987894332219722072920318591950918758174133228570045817177801012266447951459806299241803675471920060865877971671690672900635242325692827773775344452331208462835207648742750221491455733000926995448890715258839295543283428845170085479288657251939182859090226922927983838557625566388499485055029630380124959170802225015661142933223983004844849738454495607985713189996916376165033757211736964544976943437227253516678430465792396373971564981729670359913124204919513508965751251492226803623428670673446606206971486093055858527750855504814429701517944856424063850023761691154292836629718706977250322091610427761765661039890850470062466142050009028556825403584026384307088835049262057995503009911639763810798591710333417218074532621242303617424169979952753019189628794978206022197327836572578032930960218765379201294133195273929426706925464883022573632435801342936380689611038838215011907845607233216395350293415772726952717395333961417156653287506335241125760784647104480782564190369708002797422755439723548079547125775081534791957606888031717492777077062154524506574909891431863525042021492941230020509376618006369603411271510124774322653318969182402244870735435634488184902816140844636324779581643665173798894272226206955255111711740370276029324005855940315784257720711486470430239630728028560836901902359645558165902745732420895870491573507587046163574440078760594134765125117179120580009319765762090445741442220552086563706015239559771049436559398664434240978368734899359768367247848456318910053191769341737635796339501240704717796130846120714909090601812643986527037510049598916699324729255063407253276187300714049781561729824349500683310145728456161526196853568479133351017964171781807963040419143841050675006130170190303823250674947969987407138416949669738774678684219774847227059193203306248868540821298793986248755350905483414354742703158219461914046253715627900215751856697161654092302399774072528332306770200498775474587501905268867839498833584350099284776944113628175002405197514491512127214404095237480890773420524627598294839981447962418476849225348017077677106468986514181070726792303240299709328646353523755413877447398894495127078128318153340644405723980391297689006737651946023057853653155472678793693924271282108831160875364743125676811102059196442086740695379830756986508620556139780007750500773226751228698584053498870871227279396162610452543648086606395094865951432478940482206741349906271154397040513633783100007487777629057745309776459222902846888961336735936662324855222293292739456284386171523605913080958979312027350007815354584869913877107097844264161935841667581394411593531303192589049114349583259035410458834320988408452450221032103275734854099735476771120007338827714963827560664838592902434198749302279827875334088486944047241407302979514331734680181521792399390251992459373596891188531421951854300600961546328965959905840809269444677250182982115676458350547943391566749780586894470130421933506641612448550483596014406507092180897851309137392151656658782589971453793852602282856816112931234215894749368298132409320420119902153084398385383019809202975506106035415225551139415445778270636270240029762740747764571338192088853159787926078311223607860100607888041354766996743317654981173278270743940013620942149192888144220130742557178275461116681990666295222197677344986764452960297101303874519906766070542845961452412922605785949363469920660164172391577543786811921558656301427268693414278530865335001263120421009434793166654941842853569161581750526953955726823925446806679613678746245809034564010018328026583642169931146338242336563937924165287207842874393436527311758429733859813612098272519458005609840443040606580426454634670759065427518525543912570962499743048529394595870509618350939954670901458055065916466855565381271803681338779406243263371409509559717517723395708344583316710345442658935652656521021952834783339488152723581114035557767346202586873633880122649066110058725292794682002766183158748686202657508188813430465377604306875444055627651093360527379038026733044573667354213439169326162230579593238753191425776499213961768869686129830022006000390174402130573285287645870683852167467682881928834867092054973159725804216156795108534108879353290490403912601169460178638705084251240174758632868673252062746033109737791631102103167843197519262258582361744967268007967634787182607346081594970223271090663913691987883119987155631290486775731024087848322433336506383915034944164644184791165596888526488957935890608822139191964785629234646808859035266135409385891680102294396208821346851338308035701820796079367857571001422406205958800859043617106728250017649710085138365566530791058604644153353988230318821560763819501887251869339829597974665177825211476459234223334072647470528226357297526887606173820468883671661390458237640936483069207831492918794097292253483995073695981398179082913500777215589128613958786670368995372330179645850158966775454896392140592466158669273570546344104256378345040892277396639350512158254568708613226420370664602475339183504769133614930982860937659859066068744073218154873065165960214391149640788997483327402983423864139144400351787786540885349440911484329516281674524232342009755144836338486614027339697330439596790541771831720184487710403281563748071790716421056649281329204303892852998850321181452157224577328287457625621546073862310458212010260406408626507614031349935030637750263598222483985810784895798606891603745026539384532946232377341822553489585848728807687932649046537689114711121288511155117549674585725349102496107803306116540479339362087576683414480173153953895922266656152938141421901381756211209723032185075768202878478905634802112398927024031903304155988797025783483610884611217173850124037595134344498022055489483074709055495747229671605945009680386411556569591370467671403642967827333533773627840494923324921312120394272909979788844660286468363116753318524222790087113224939215544559356175658700646428058172725570819118765488169510047380519288458998225014514966062354043191781522590004560403950572608303320752603693558765128580706970738480759161807713122125371670874972085352668592767870388757231003371927540368848409982901243501537903743270672748400623916190116712966751912763288676631560021683452407437515161643048290632515536748192864642047853037399795132139338611780581286945946714050210527901706996463649094350630877585057490929452324456716924259734415681355796773232228030293651253397701669864803170363128066076638623279239017630478341791587380461741978133006823769390877279727980787007287997164297264473295167598331369213453448849254690695355423767485252247320768662402947331657234364551764473795277680956941855325745269014567736557833467250801904155719845069941416973606955006246360680698886154072721760458587095463187746046229222541749632153607968166133706232194419751804516672319626790906400725857522284530364989324278964875772340519700764986394109264153669340005211801895143064090195036121227919321915498954989432570966502874799179922102826897067016529644428023863065253908133328643594811262270765498315394223393026866083246297392731035143370431531489543607439360618667170775515139516813304179127830766095726093843740954090929758655539389475684100605646791816575356866479640099594462671295165700515272490205683694397516043973539497728465420335520549819519004487714739006046774799062505189023992336687120982044556891811987609927063733449473302362318099735006742455095813252082595452656433781785506675707708933274640596424128849696283941754950035942316687844019491367428013124041234184059330088370184367098615944156322145701716521828800784269354581612958450067960773867133241645855462485886996179909597006455831252081052771460405275981294145277834905200059159121948854985910035926470390997166683192679387351731018778888244926474489423139627926133964993619443238567285959304392427718721784261634107353831313788436043180696500844150470342372978231757448985848330901047188175154658318297827730080602174633702585980023816800854487927283227082763471839390491711579184879873260819097318971630002326133025624299790616610646796885497867902095854639603031346617784805519598151973638177909966440231506315326318173633472097605202652039757888042783526963495514515551449790702223432451686855058868122160145139696505452237887096665939473265739016475662045825688371516258560821381757521084840639144242180250311990038048409558090593980744368893505421564025935973036510265440297484056580126716205393022355507753034224641419792870058116363980627647273391755429541814161139558613601653011797522854508053498420109778359949220150460330932996036916084592854501477919152417915751226731376084124848354383677340510953050928478943019110400308524924709030847022290897440630569607174975871822476696970911489394779689331813935628623330040935668493104967253345605507330144699804402986426033309948566511087114723575286308899647681825447369088960718286596066770561698025476389485996079134357912660075515792802118483981003962764034188654807828520018991533928482661979214615110599391433687872052822815283509949347688596584001673660530347220785941072598020454506533395397572240482537756574635261602771739586213441714840929434399068408134166810627170812859777969360667552099197853061082238703359125736334374261066600988371592986731820483215478729484324328423475426235724672419330745884629174132282273711631851381181887622445755298935849363151140404544273413768120857859560607434094880724442745949115908986462172840339398759690409248364518095761417019803776932328341635021416987281273572655762937077888779399247257878399482071650717209572404188939389192291386799518825872426151688114478230585172021917704022988008120073585651105993837766516242046895469240146532218968150489339488906969006210458159382986106237238112299519185935473561410150997730569432219526097348825979630860144474982047641796795769658342303146279216278116916109015480033170723050547502382969143986299604314296020002297988684049032204222028707094615076006271413605073535469124131282104113186781835491906646876870834261858899955725829025750807320880327590466427284783746443196045195386508084504550703572767392129075096333732281987476681370993098392115675561411011208963211028626156764877635665058145286717948357985133933095216848616516181531837335636453505364980712712869652869385155197483107981592138787624244137245813474695912474183740380571098372331673805653438178264616909531785002210048011922751539960444789915401421114021327500227024793385494421619974904503891845143626483372473159540198223250334455083090830621784646353284574298596163949336671287006479297055656738083591756880513606933410210157967832318780977262268027326036821454485096519053971496506049076421679698355374180645520552346760031207840338837411637372246994138567066372539188956141703322148178046626722026056979464058040538511075050241204311345815799612678245764410143956617044603739881272555113550419579389242644327274643055774618991196615681308346888076745648931916701957270949714234222252516686648353913846909416556197891467576776077440413988966979048281567627130821160227537537537334993320880389196424254119176722153581729373197079825157081610563096030703619531375822090086510848396078367801282222985764467476268914428340147927216192943978552747824063840878146632859979086983275510828637577133850136712713402317701834850201553164455404374895863353300351870396914819488107976392787708818089846866703087191755961896227945468739500150431489837208073502398807831085903715555672084404044311667183930954035336921574034575927553211332756892211457138456259736779869254444919730957432233248044441255095572618717577402081491043554197129545529348907241873557522793491076511148025154440610796732058730021706569380807142278359196799190493190010793575017788723989290943883160334726883884376416012569106242886214307977561616545423419659818693178196195138171097651001161014910404513590710304784492374993018360456479885675554638381310378603011049973226286453143871185222657032203701477535720778134453362115401094280539239753231792205815067562833568532065321421691648589935253385794343158954874089859197705146092309890124921260940374981678052670248093324010003399426622101831255327469445291471157751544826416986841699954248398682422255119154111541010554490273139344972322792324953808936090445031987266334368526977631687913620771342504677314503303594563663566448657008872034562498613619183724243618873172138541037402306766234711693201796818358687142000186188476618611488239360713437999676942903678820188639901279575765029364855172774100648251525847360554972875462894818609768316406702488382872869341026495406962571066421730979886509569423759963190131437675536076059304043125273533725784686747630212312475416967431410313655716832426288978085875755973788773151809857077360545206942956206915221288395407361002105545481532983855409758904325591437363300326669707259389675795668259506399433620096826859616816314890509356002519712412854111880898026377331822773546208919715010062877656207254677643891605021841451746079707093783783283530847700349610289134551927768249198481961779852749863793685179545753114132263771468291993892374678217840069915524972258024899397936530743319362117144007672596001596735525002011228725476334601738962325686752904671250163832869576029635365974927898793428260109141886554513660307247780699869026599779834119515769058864776663406961495696816105417848939790044219323355386439906835177310042540211335552144697734414471360041560745438818888628429463013830476097135961348355599530213777197881308660504432237266338778811766884859032136131158196810973273245037590828874234611711435658450691820771196161146355652081775598029713651052627516054303596254807478420826710803167260735441963765811362412080281882459627516279806640834612086070881619659990806238923147348583526138964624731199864978621442244392199096482619002765922567236855973917810224597924005433508901007935088200686336369332625044306785425769221036421826618763012029022433815957153042043371983995745064781354810210683186902332710754329143871763361255339553725960765593278051257603450244065324857395480249017085032456374684338710676347153950597489060074680280232951844790300186989703460151970325849501962434764759118684976090047263569874642856327187460148309111278939199957949402175818401719653082991207218660941571629622306817926909979602642169897581674377516090480310960559457667281696977034127448792373216229525484808696968062308000345071824578064805612126536327255888198036340466150592067076089166598744047365043918298010304311324487117106874580882441837199198081914165045354979422504063013912400537845783346611972403548577218576679230016091718716662543084581435655007852451049745414727405835892716615365578691654340814864233395639383842627737412207242682104554319514748988568689071837226493098013650486886517033253056037804561738553179753310139149253965531742975294311156834471521498062281067853279937263570018893516088809004467562618948262866341855401959592456909156125571774358474002642827867467553477617719518125240767130379907974418333678828131679105687957967454718336534839040047531192152469807690568677409941095056617465036890768842920024057684383227074230214129833038540438976459900582129872638045201357051127535105651863359353234732468922561184587783367864022654879036421496905110006792013391307397442759314606362302230222780711310708776836957825813135101989734204523158024495749719487298850825269419234820505706461959038238399245363241896922952959139649539594337696471118838651067185253659305568831232465027880036453809111559110984350716927356018249234793928465832017585060153085817641810207868696076879193170553590074446194387217687319666109467088631183756031068172747207887973122460503481946522933536281146411428018465278880520631377486287161522121757141867987635502510584732053592583298171857977254459106029093434201644655037903946362006456031778579357235942136327520947410674506992928860366879985610941499008118141015371293435382224420006775410824027058687201146426439463622613251062271118289848629154895987238286942698268597420263869266668732599019115135709963219565991143092311237353712857764354765277464303804377282671052388522238563426220578572211743898313021720144804786593124483580497076454655781542428843067518791587620907471118689127069432014066152780211463052541550854911141461187396758828481730339232488346621065499171063579210971304001342113859501970048434121942542075667185772908276592254843996100948464723262405958087683432595657556621613384279138775753268545500181420572987585405671266282188549317302923001476879347494196090618262022686167015968171118339897048150552211675979397617812995792389871249712148520911746247737318864609831962596091952058307895582489863898750938760401967577795161280198501273278714534742148397454156509276436350460565433233530315682453114780245353201175983134579878856487399758077269300214809973852656832389137684204118681385160387686332220672263493073046582204797897813793429101161982169323433810206421943973492931161852191997266034033955928106945081870489369383118951888750815570143432853795945098204593982484894195429984933021391163405108254164221011745676311088300182194628647098868782367199489428146427896561901367259336755749804727087816373720482440902587832214452130243802954708011184290171351322979211856135134636466385400913523057526993751670051431851512972102075653997836642671823130749060475474242652974510303858384270682904668915710596268766790825244176938377895994492190445563067051615713983293005658060961160615216650619296184117491483411281162711186252042213879920912943352685676004256316658908970385485200694323049952838760207192574354988826525515585844892921849218909537768903363211049709394441729606589277623678408105937037873439504529280771130282458167607566023999376188764340318028313515273314775375385506974605945879868303147437723308958712256414920090188268383509726818684502431732420559712830930671882913736082210810219320586064106414066069498902445862295132582799190268311011595682656192532549311138641230819271546834246217921577051711282276729408238697686708283997052128624880023489791672527419545112780518602922391257191644037880510055142959055851403816352355097379299550059193283629055180226062828412391200839911116369438934157905767929404037582968550466383146235235483341934818585521523243453800021054315835321800261379384469567069315378598716684077231190225476482936088840532007517494491816048945980794605578411901509046786740390072511959168494695968652635459282018030342210697567620226703434876058186764324703867576333358639161612886139431440396813513856975724303865994721996753454878530003676957503534996261801735710289358932748784607071891675575782240573165150916483030997143943652199955846433426588251429875930587228065607654640815858609503261422062954738988230458920405641209412620969777730930256160494240462931023917378493299781161480811162064273082572687556426781632060603473044210534052820922950297467138841461157501231440858902627923724540269287555718691909148850173144984023162125307654320450952126884073059811828350796812908628067470777159284525930651955929490765877067795067371676429909288949014696476726069932962448246876120927089734776490667874699048461911451113724758834052138888819973678502126334382728325462065518878482206426763453364448814463885111453838434268453538178548010199078542471473564053063418948246258584854271465662206084276166413540752833067447997842492123127373346581842292182420366790254520986282218578108118995934051118987386509259345080964027797074741179682207730439992861180499710364629104725184782200024947635604122058039279232798335819765348740049392013107125225528905119495717848161401664230237354571097749280338947943817968358678498649767527768711310959440299866316179626532557733956525387058035420694968066292618302286229126160228920579055307079238959010622792478840910594768353725000709649542665393737743227360163543946799251309442210602151589176004133185356951238324191466883444225759076562535331255798971651697315555383634316014131740640417835579350750474282227401023032498454765961100189281626480931789575619937765552148055372441029053413992517660765313996382396999695393750615949247014975192545459143707942026778638925123208187567532800926871469147163679096417977326668940008909286638143027856301378217794060644795323356750810962756809020981800847324412685394492970358811609492626149225722778791040485953654092550837425965809861514692130928799808122262996629519013207412360781312629173467112576022091670263603573990684774928230622489658138991210060589790386902944925544860657509471999825998174241756775507535869692969833216113081854148328014810596280399087357939046018488671401793972783645363940592063050422327560937100483922753836011255416992209953694619231389551253836651253526717937706469074862347906420982848914953523992422317567221044992381135471368016808709133405347219822703318092750040171497484239869332426812871272269449163626691721467194804927036011304364964299293648967697936590445499526908474040148566162300455128196195466893864152362873871705761706257866087035966304425096739931484792535593830218761643144162946639079634573094385954876636213033099036406740840842675609007999248284745653428567064905141900318778724154815772659227192543404287346607229412697764690535829336653927516741815650954748245340276638722124475862543700098226210794375742652836019405667624810328733150917715183139253388846910487420960136032089164482066450310883064188960036829031737086264875658033696258880660505682076195806837119170176532437276451413157610331463513476987038029148205050796283555305863479750498263332605992284544778431317330573030948852170869491744245634900102042190496383784055391139886386697436325396150938943585575672986538548908809000841053892792383407599319422527626503896565149468672107474856843261633864676696447340452763067616156274889902505686649858820263024098850165013534842928348272107726929637100205759511388028762799826519780708080870923357702383653507677952243022201685558629905295448958990236420540339014139806755620066266939114629018071234934928873482130321824616881341301818866892127017538466635835326012939698488508804896235527427287223626216040984422872753488717812394846539135533419552644992364004692649746139400723245178133144211639540003705815687549487883193440096006394755393679503023813091395588393735347617199380388100356873268631123332808416245823942053233430334922283330417695391241505792277572791687764137545217620817531022949096413659639335021362398933022798554660744365015333480795412613256252037233093185137610086585159798168683624753849629290506422872288648865886897528733375187944397128317168562165262795285217853668978299341547292191497980458854459912887653722418460416898930682957128664783574517362020749669418015985713613681742680100003537818151324225220170916518281149455148526675708198823422192817479926997281714156028525658620033363814402101342554051328817243953634508138804073645047994517338458720012193495746599244855552009408186079860382260201340354528053763377289764861862008611571536563907591701080239422189751932223549157567279324191042330345650290281983770772618017434376348296083094982982511609236176264401597754585845822364846673587679585634497698701284557517551396224740425599119102274369331220176621280706386403274502069301837268116520549076616309452639631788111688862020529740015841904197627287719034962819988045567579171697672666697077856316873550353578986388329343605461737209827481722706436399439660155331228702300269385795989229646633927153648062109955450967219291675228894991598192605092181001616095921854308967164295353413212874353191182781082633041230526720787420087139121412987859782642404284020654184941436503192054391183960875241367800488858348770528478204962371016321273758126789213800670292885048557876133064120888953748141473034518148866378850952910037578284531449261632524523473108634356999002462485411127303477750002518439333179980400135179117418530298067101294344818735349316954925491290768888647417443024166111274791736949593514694929969783240988434911569023176586775940482313418493718888522621497666767440420227404933216532002453610079464926727291818057507123977991901612449362343237794267956795602912755728029714852945200294286042608037928891691181262900094842779560843883255671434750105540406616263555501565010721877422565613324857883125985746861673161310111345938014809409161578499655370986937128892664354009147283442578626907927928396262763883289090783897399365313988249048146093158075283229661123989519228724854979434962730361968476550805235270999854849965404375371560656066887494580470541373667548943263817160900142437572676789980926390453410623008405656081644754619995795009451974414562381602013053374515660464020300276086540656760291960819709740623181238489511752738076655014865063211133736276842466884754347750574288225938431685893044315551641868332817580284870626039765126999573478152898272199362584118910835588817908997622393419777766739984002850965487385484839060027639055748495893424248394741825456808866640232329791218560977787062850560529660610945225893478969397216367210467931520894600140315101962003962969054748791295142458017026300238452854318466283922256371628982435663229936126565077173441600188777613803286342567594272351841358631075539698987596769085641574803539646298012596366999575389635899278608300254844438490333866905493963787582830706511095408679167437404832736852883492633566762304325706636139318774610740832098262143460932836729192604091479299288547851759849294770005397313963643953026602272313647309867234807017705760144056883029216804550715250861934933829861612954318432666673824395938903991741841528950337998931185647682850696044285287038310909948741220813355952324513578578342875691329426181921080190023677500783753702932774156910847223105320995168391481155551983821811538084852994375572915156918269536418576180093742512830703224213093736903366921624961747317400789671069303008849547674075118654869869726707275073765668638967017879836408667871450881963379272715909761058725570851328223028749351390904003385650549757808570272972867303674122811682193458129270905624911679716708171356991706137803809163997531050836093585285295001675343929181680717209722266378092378371430600761915142659130040016764526663324970518842784271645855301603382924479829931960752531833108212329048018901898498492961118034774764065446578530227700276449782051073991726529026112424410633828834369695680660933883741334240851313781640957192012357875201359109264743771440717101299959417291609382143833144443636811056958178058512761625488452035142069695484144877502093924056987958706819181156703756025407026595468503385369735575017712163065913864389410045612677858881957950376681094063640595450495711313916797453797193277799573009897967177404361608522441608967321783878757071856485904815730283765276246849608441494723002276346031305720203590134343576632305971046446615023113248558369751593163865964921223395247269545264243043536029991236989202925180603695374375935939415192182601085788803354648826358108638164917526380374148184374365047497538537394232832254756386287334272741568705685301351714270292569747214834232253353584257553126161235214792946018252686853517429526720717042002419041495031183094110201404502160177262584703701296367996774684091209851351498589803617904204584137949075559585096471849459976512929922953764187182666390427500545176367753856113200168851839102802069100780564759808177580634001213654259293608710743815324323712889521023004848022228252792155343064021575879292825584338282277356269010463275763612801331769848964053741055568731815364216913717339986733285548215594993355180665830000028880981004243399129218982322384371401674283386330443995435448650153930399051866282827013640617874107986901075723676062322961689888187588937779097798760407647866096524929108380055979213317695415057046382313855693023441890745575171716626695135479057426605356030075320914279494735673802750072676602176620615518610655536997987870975130124567852140160108427082873205584791054568165772964794691245795985380850811661970887664719405986255265185848730366745967978690192544514965539213197766908421699911166427753987532967601450725208241264463617413479897740891389524910608133215990955378251415389497033601406687917039582405172429207036785067603753726467836162235833060740314173438772118628410405396139535545544935984314842648879703849650179968763988049215937235673918929026957074241102649022361160087686533804139069983340673294406306863859898279785077849810452183371628847901822230647193277822534857755579291509649742936918191095690403293591400176099651704182075191634803522832616326249941624524638386389961767622755518337665555700280812968579058904808923138499929678783212483054064109750438828268334526727819395797536457940268533337620360673930049023798858112812309421328909304424038001021037521415033134733879596353855060701667924604535410668088422602778478562361421553891106868480210823799033888384855448137785457217479529149246776418160642894834052978495827014769811305135868232118160014665926935629220500876106964858827068210647484540133027767909748832660499687897731454542873417801047116145147477128581947302705094087645035231017635953028862934746127572758292127983195735536606689413075374719552885612250128013045805735614026031089041242677172911261547324666590255320369383832903474026279497215694719464072261446009566799002258722367448734959508595492693053686333737469103273499006950539220993669492908781859237610747437930651930928874890813325785994226111765700326278619855757921726538351399523782652690456009193467389466134313055146597218130190876797457326482894839857647030915613673520287152481618549056958473732236269018706245114361786665914260507465118948515662864222047973643480541227980042591589471589837327809690451391633077809907798687030314293712076381835369573352112940422447716963275503819817538170403050479440001280315975311470533615778245335371571255759456080835004622006391936358285006310103763370499553888616347405030836405109186966430274474929940774636982946450390381977221349918396011139242744334901450464415538101004004879470239001392240687231598786727200655899160709897078454246505623651685521800965506151180312525326177307804539016357089426376323126155086331856364005809888182098082640190693433107967503932428911891716166151855535009156240367062416693105663364474749381395375170084224950967770421102117242340062573444459431444011559959100170073865844772595966912647282919532405433123321054456851879712815291649005195119924665065316406562789203007610402145543716298266215895145144235661606073607026369076268949384451115541437973018430683624400164225536105345164413567871554414124350799310953110424958566623424862729391614393612899839865881619202336923144073089753784185168521147325052684948944166218524598086802776557887745597946997143393862597465883672744237330573868916956218433565446976008803484744454217753654246107447834006657015699708055707175172740111900981994720963966046091313127129988575905470678670018051961203318911698884057121736097563056561207088929509323938514132060183240214933748636819701374501328470054480026835376557282309984081686853760740091957438711426998693152152652871007850641402655453549188064384306572046902158677116956867478231351315117693833089622477587038637488387765547156980292361670024953158875515214651110564311723268001341266546660127485106266901869240507179539131763958673116784155969988023129794507608418065017492180491588238373085783354387179079925133624198830970366581391643044939907177041439195431163844502639187784567572021990051097051213157062322766800723149957314712932969242944246316798340278888345713371928885077024470303804525459621546702303627619218722021638067880766241362301826793139304744919653465351358611644810572794499349247347455727027821994986322307230735880699446285401914917220378862707865360978556460781133649887109982736275933155792224622212138880630298908066993369720000551411617912640759889262995267434805968388852425438190491635316933246706344524412177321704814685239004217243447721819042835002362593279474975591569004357096992307456961197812206300591220889042358351013473539929696760507996215754245944287709719544256557270757088009828459753430535499525534921911994274803386215738834152638497338716678221415929018200607381168074416429083737506072951390592927062745594053888879360153441852867385416951075431362722629261251298970110473885570221168885380961582736964788237291882122498242052397990990063789182166539197643325816397043440389243167797975744869731423625317810751349786124421493223389001076517433254007105279158352249825412616377843315758179203039369544417459271927708889653828037001441713526405215384689271310017427510938656001143797023584219880423052303189317836920888288722005273738615237873323848379434082814050719741037720891377174200836525487431262533106682227955557729581094058496780200957215221343537914608853256306135217570498194108062347598602334834585132189652550598441358592020232072339129970923184465624815362515474595578417529556614909782552384604297013765041672381262839008434086089378786416821801731642231828928412708227113971725538477977544931344799641751413328773529365141542693490076491065578962338878258524106414576632987714554305559772324626844839772440840207570540113106897967529118086820402616671874093019720382215970186154629645488269804406000698174016970864758094594738863014803646071675978502642901935492943172409522118558409615807113901765899086195145485889200651409610822508528780003936025895599661198848195520641361103643261495024455365140772686870327983463394102518015404555353187162971889713102998008184068145808195116726307004007889560490915759088958069365464552813451253523177377554108587978328100711297907246690509377999289072312656443518331132251317674518947699058652490002113714861653190510368317154485141383707421176640467615689688787438441260781479895087526643378838977938473420811190638579418277403791976981662344805465376910634529267404714975963090847353203722960919602844269885771235848721569944697766202755658273514097385115019728186605710062034193819162982505808099950382153266225954374058208606319177421731457361027656316520835724863293782571819795264108230976421736287897990246656321040409394446606900483387270678570985710660167610557541217908035512883808180446159114860758657839292294365427978862387604567714398126358146450960353817822710533606672587822398740585256112232350830729825934549484820823580540671103881973965208102800857255207763476217842531708210849952580559871000281122214110292491865665667224620171260529903013743345640222366344918214601675466574957861315733389607541698785646343948500456504518686414732319052235175191657773743288412489361537196745344761984652142866358660371031635650793116363914258762632930701575933957164099557618788526218956042106442274269656239330775878745332263082729420504599706700130998112187455887020676078032359237564421034068555498099755857137926393761371228993634667395832830687266103490961772117349633021671376121568404772005518917439072381670242976020935621217406083353684093646762795394032361497414097846770978618290015850339814971539458085974595211902938750236039883274761790588814229389124106555675417499615943881507350697299020781430808353646037724565810946897624455659707990646485272585027473390763834755552641850573605820202469164541345792687132981107582550572842034712172500162879518687994550982034844964947251970858995037377671587173945520332847142324004260918702898010633551549611598530618359342383804925136897280406578819343801938669359158031271538592816381308459964354004628154144092709807777605961900437858276326190868423501317683256202684988360882599320913406255020981382140902780837131046855224535820398037590076362807818324710505486689157822734766494568696185698862574494699279153814452871390611037092450374549442443149867354903718639571912010024217683311395194491171386641672663362697204583915007328483193207143763545233367351160943434081283258959462665229234103651395798983777137897570846222848859572730255102919273107204947558310846420077559610633639574767120694479842382849189749917794143981334244477964620957749376155014545440622310912588324359558589308865115419589249621420193723270889988613126432778199104805164266470211089252464237123211730251408317620973966271002232593308554721697712944697086001848837118271388734081491799962841930280400015465140929210423421357373607605128797985159661850355886658557732316419991920785970893858102025096291100060371300265296736228080545014072984676867959015835743813140286420771800786626592438476305208451826450118340515206735112135266019858476387694017265186696775520347854193515467679991399288832147053455284682291977495626231129567606134937697299016790428030200417163885858641271114361288337333745411139331073255151846237840379617711466230847276406345182779787359001760543044850501542351609914687121314067501047712941505330369466244707488868046655107271435663526749336456215347815590371254634279332378611067669636296582095678633599672829830051640176176654967354266709789021492711276562150646356836263168728892017038210372815724269389911626377946567356994194945916146295788141868370844588329254613220531972548595657005461173970561130399043444079065803433609192912589620959511120218081949904337398043457326969178759212865643223932264482028896997881935349838292972164137490065526332107100015636173085402500924200459946112313716465608062502212622065438840221280277427185652382541168803584394503745644242272094641451821235905398234904552160567354216333587272918147418337074638591537504436569149459312954341401482581656364795822204142603081494298945084456710975027858914874748980343904869805465142507877591184003869747046273668930064154209247762389533725732815235927555970531859683865131508929545439049420949639192280037077491511764870380759081914479505203226459582873765801454312432119186659399476235719629951745601428203006238353755383302875692900804258798409093604123964036774667711427134787025266798432041182431050446221659185024098096125130647597930547330020147559025467458613306644223360001517276456061988627592735850062258449987241899099336641185234796856501808074104435688444999993533841732024080366620462705515575476978647015604294504175755878793715632623862700773943456684139566894959953899238310860800895644289201719527266602290113773260105507486109136959169824122164935425199177374841499280077911984359432660604438104186155007196030775198420074660998623482190263334937634149002343146366007071823169746928831255231586257531233075535529973499746000193916989438781518885400879010007911266813752213870801487384593712059895804781085982177853564759170610612072254869205390286959723928255438207389974505959415647127452699214235464509249157924887355681157116203165967523959916854955759768199944089402866970996780287207998674947238175588303864103559476919540542161250293263619231339548661575484671634412331677489769374734079287893891986779753758614832705504653749733609737578521350656234617956400697463085962503359077748475542654545979986538918549877519100878855954148473399687829141419188285609895625897841314571542863748394362403016382074985447860999940280297352457884137643889146990944517838392037439153574869085587736537030821083333570447362164766689827689867829656741544570804892660451753527447775578293478103124741504102340560010382437265881319780359460693770024977774969606042596936894162900504238888991113777900603142805880927212674970754113672428793727169554082179488061941967131268142495500110945407622522426431886922932332594389802493710118185606125546219697448433630328705623047349665791714433927752822673029918587029651064349540619897028396639254396574137453246410622869869902185882580245346228190959427888025739708477540460913256780799572290796270180356568560035829056723359999941819411397028082010279056359363116796096468048792098569345315255867204890274509242981702339845257207758766122073843481400757500380657625944646199014496589016246194216356533462603752085549377691842148976240245398883997430125126369511954059710357416737945495754584230685226076891070121045270272516781401708165616771139496083026147529400864993926888558237240525648550694461716005345892327538783304410417976204849272804237285707540202328745094459573977570345915017371850107271216671348110864995968647126267351426401465848759678542181516877534737935307885963169736760314675924109378956097900590320825895557941997467964054166509920734719085818747615495286215901697059006370550772232663603073038527712717076257011758466245512641511298300642543077177262409893911635159850301841284354865522157934574490946765655408942878195546483101578795988799639476056217673113903448605937087311151252421615221161412697251119593892880543704405122290055161144323335400240404617005465535945367783861671805737150674349134407952902756446431469804261659750999825364190624508924308783939708216325015172074441703517507964287894253856368052783314052118601057669916152905399814723068073031804140849506129490088797334444300662629290526413310810547645943749388729271939861621569470826095377453862412515192051227660474158314404709380941006037273364928159364900247802699276207470773265895778031039902279178025342194766543378325033181527731531479036140648641213640138148444384948902599661784090003751757260852400253840880027337372906776748916522845646869028745306960216817685985925452738638487259894311288629341716258807915598321807330484168095738649846330261117411041438236000706447773090928141961879723757562644296796904995976598536942195673558589530853527647065261146242855675838312811191711487694547590106328546266797798325315756838636375979866497601749750384035037076415881096829684263252645790904848755120432374136928340930202776271913674514310728730429210095477156738837066539066749510686507278881646030732936307505130603045705880487431261070442447421195992511064798054212522672531570894143106051664033330206663588097560911220386171481650771309638885286146484087998593869587829165970557544971769856893370144685265209425978537676663259247988419529380972482751905220666043701889564486939589964840865528806521277387613978723725223302083315705267535808723260214430932963972432668925697997384084740379489941120500822794553966396069720983268927724937153037546659846495100268675233267482752160205532274901733897525666316544358759066141029490048712065895096497142191341554014524449280409768975212116665206830649733998057529374430020650469660773139090522056492426119320791443016837614995434789042796936183020282013789884200408736851198050030556148241694435552953812498486272957388922871845540392109299454815618856747364931202684436100760849681815534484027028686329917596958075722774020965339169671013673307851897297939043408710371335076836113024299826867170316877633846914181205617379867933470655869248233391030125810034325845677198564976818448494192245394534913127637676256215255587886674730324568262415243845021168365667115670858254023759949713531648548351719270550377130238660347024870021769304770262650591797599339952882373687664892842631343133630618866288067186918239424382774665634056658296990344813098053525623067327904083680620376076575419695013796433305166299977418404391404944852950373327784399664038674367046070555011235072999378986168340695950548705024499272572715828136502555680707401601039080733945218002996227279920556168517695793216990420886979035177098203104181858943526336283880820214703311866401464871731329255524239350119295123428030192122162929611096240901663996898235366876524113196559711809163451630580882155991508947253409480716638298713379084356795776386707941776788799122160405677854176654915647283965322624991079048181812554995272672754280944007846096747959280941089782340748374686250620645305678507013424683226797947582122864471741711660628397877171391873315224530746752355641721628901656193647072508257769033031440065551710935112303609536994390488347104760072448974467505897595156950858906696938158885025435098384469495237559993464197793661554597559867707221275142597859418708009443378902014661429446551463122000124521867219916841610419163059655836547207592486652510024576737543991681900876268605170967183808380826407264523764214980142728017658483045307674220344736031773355702236046154173436483094584188914637875291633571868700358270550338587944911637423882640683635786940679450049696312424863082695810390556647426468020734399290772480606678568251123731075321719083568633703672466649756840818203001777321923002489123967959536421225040016046386479598608950044298014866164758861785345117553766029344248726680965227049925956738651919073603160158643303167687868803580590435576836594262751087090486754910708493656768449493890108995866564312735256323131704918457924323338319496993147239529835308538379404503400175207273215448669733887042823298144514097060330714557024690790032992644407243640399449723278913690958504747339810155917028853965219899130068650657253691634831531859330917124934245839425187894966478790687459593075485998757111490577697622270093400665834222694676166851049002647574439323144368220712873075462342870662668094604582702361456795765600329023151386492426989374714322447951372675307753275568098723282020021548805115055359811433489111264707824005446000919513406658911528663647349448733659896310428535669482370131871269928335095846432586111718540545886102278176503201060344600979049702934591496957044383867467391420097942928814941496303858959138157510575931259852882288144985655673177204905163554414728281785499014858333073756053847960949877020115511459298183122207212558046733664239964348966000911460948596310447011380637697728134321388523009039160533597048511988971279182204372079924244154248856649714858385825630697287097564530954524984583730796652563202873629455273627760365658742044848413941536716922385274927275943536151493522039002680768356851461037498640640647281252407025456074043375042158582097954315867906752706790358146105074060780137758154238474609343033688032998604694127344765624937776363743363043695268933910405088402784749065395233439482002827647620459852005446201037236258541026010600827496070406338000640680344129191449084353092811806213868231456051769317070883089902070396564537424722778596556472589917897357921259563503248437198248160387012500694816607860134225128993755239879391341003632444144207442290270295458840694563447526473565212517027192001163989278719621478716609601699652866802371402651631889505280747495954335780458962605729553588053875784202666255987085446350745788240940906275101118204540277078117631407012506856181455679914432071883186991091904044927309831262674145824727708412957228472105575182046541985069331263088047450279495122438892908003455746008914233687499250483279633629235956424167142437262788655627599484824100170237807054429421087279876419235436478904912254525701284161200881887106208602168991968642167824190306867881356121903062898897570379341153319962270926686261516019189596449826800683993130541294935999921645129452521674141340286909264575162549949236480492444619525715964336242133219911447324244055048114302318216003622415965661540729647873391211113411427123897932832613706604937056078506682759225725834002369064350397606546394524507164239965005420543631747108100166157755869890693231242636752492958977875394104876144552028493512628384608746926024780769234751969822512513761371501570346574941955065743112762265792640950059047673090912950123847102432056964130645318997245492870965651229848941834751685730131588468743121685494911866620944761731390607316347251212825543763212657320123587067282103070247199689436863939728590587797698752562853730107075652596427022570788870163258578513648402340404932734275950738411519781788517440086460090119278934512693978889575299589694285740123851306459988259087434240168524632340768658813453042615580688660584086514307226972598016988381425518021439250112245938874888043913179591144702802688660291351538699607184798668592562172676468404556152011897423384569856882148896590676387061153413173902900756932683930584604735381077663591197892535235334444707510973288502001793261772383640934888760624631444906253987097618449461143148403721509349851399604956246349026493551914028834724509205832638601948492092615685227064246585334761646564253682196393644929643444185713064210093057308393517757116496941511042385709921430754037579591117782245137581677711547732879389319763543483478859283674458413033973443237092664329181932330263860498277413868948260847432551778449769762598606949952448126687076871373731202539155152141689161449737296696295399776403556930010668025635904187077760306061623052232826433002974636452942926919071706177525815929699341039853128634463439413390627792521406836979958742077621144357848522566549124115870149499125570484350978563712923996688109283651984402288556326087773348089433913854457645024168675130368269209262497474797433697514488421247884782339348624251479289660864283455432081718921533305237252937603298770913600605883140888178769541041592169596403398926714745267605992247400642189640138027305691596858491477569288543704285467155668935744186831553521121549095788910761072172558952420155478758200009664290025895055266774179656058203274699695180849292645152056206082939674147871201961341163090532411366728732959929821225206390652947924405617115376038161288105224670650845331081043912173682277997871760125147048143742934207267626924892664619057999026729344225959187412910224756245136105738363911543336447359991029085257436525393775918768902444665446651119940195231171822478819567730625135639049813055763488937026719667964483031128916764825799193314243501058227726027104393547831224618411223394194660350863256099272807494653864481614276997639705476069847502289498218624135442622668251069247538515735427292591276470174340196883598398010005233686851650612355890253411003492582578009652979450688883037287757948208226407557879788336989760752000475727713202580303455371672750258151739850224873086629398487812245511307614347903464757977298047188039634191312172550292900379486550447447013447381600263411471323082648412345040057608524690350116471790949803912222788827372669988796179665201496749326207680897180388988065070733092057910309198317381585043654508793455299774504873508413751613167281254290505087586892782358516081734441176720838084352571656161316329097152851594857239805686998561493329249397489204953308831178124009758533398947327683299557211173345482329816502086288274666941239952170847642653737809294067062169052283329386117077382003689728435898697952292744250335008525528740621580483846657352375912854855737782014011305824821358417893938989336042796333369127283710324011437125714267298567976274600125765310186022729506180379601347325216362529388582084553443104965032285980364484401806510433110191632187289116463744954338850061881616991242970833446906751256003820664908930005961973517471622916517139376886290810191042990386264445542140970543340829653249698511929431544543600837754067789556301982717729845726003609051583789401494250603239043711116741011478300777919153243369808593816025213498759894681677273023139763774110760368703116119838618077072909428103895937474767083106646886570718235238925880056492494646119660132927810526943601284742826664081088359045994535678234063134458526469187364171632108402794929685726091485165746126140438424843062311176022745991605372262615016314396271654136021816444352774226118273278111127071615875275101162707703677519420952150684936711084623199765812208965003333880443959963082964843301551823169748996637644868511270810377309446011487508059468052387073401211367933173127957043472548717531604054865449398628880441663953679319526196998077257291818955283745148075529926594833277283647900345624123139290243306315555406494235845762438402839882067705133107863205213881231184966336232264572974667976840728907291346506431315774802735657063638057464987511287911530678409630737067609715082361831057169626618277756297162367977523882455566971475448812276574577402126506544389084103921829575635939467592188414996611313598757788227678656238889537781345733790503671277867129651613570956150426755567284936479570970972079220350798143747563956574732084970098411923717714653035475102170663492975076340841927443504594090609953337881230098536631149331079053900311645354706326060653251422397960798238533655389148080420238852618898545659355171071874449273843643732187321008973452837169413707974760167268756202884711920032121145030636960849660271559518485895045277220571513231395896013435334933328812708893540159851487621475010008593674232294493395309125186037557114872653144711783084502323386043574550806220024648766666941738326306356771205344763808568010306158668947990665367108705877638537431611743102663668592542790229140455153983750888789174402372230313123468360586667581543559952090687044937570535638975474115139558419098913659387297026500550971574827305840405321844042387251284234335906562947296433918331677911748405051533941408196492780179523934104644556962384169700378120308348411947666536880420556494856481677743898238107573276255075025990006668569178020544760651645195429239097324486634091085788546858517323370900558638272216939912151688640609558146465919031767126788666404016132726179845433433141443430534774460464496277208177235122044162206713113742363381731209885443645814592079807982568781503596880093195129060518399354316989210463799320610198389805233597161832972429239082977597110158001744405805649178805496173311030481633097889731619765341724488339240041600250340559161840249537009487071732773217272066393285378469158591927922415657071015101034195569058568167331202538914188957073125459712168269825555692158732961153538326259187705385519195176841649856938573733800425812968658242909483692413136299964779831958624284954894248140375246292785275715008038979246407333259880190336049859173814125891324048149216762913207532220304899162089580532067595069510352669792487720281893927711698244354317235898002060399299677199200798446675178295363722418718206490488458853140571105703756826930613199383209932348649593589087932849967380576215278820464558525341338488370790290901568449831934277191112369019975777295615846413508702848417208409853025049581229928822887973380330296435744426104524649148997393074712223389989178224576088317277139399205582841807116722608575018968348235916740545864804622924771831893963143479867592071090354289803936377179563523781395678506395416321502058522887183127961747391712758883341255611552127846868461534615384230870155512712629927905178392496699611963503409406384670998842038833880707961660539430568647993713825853739007578680756422213427047003269882026488595035754701890683520193786347778482573101191777313388519532424687709196119426256170121767276911057828368728793669054033511999066956682904827530374604757083828952109180215068442826007397351768765038011723506617700017162345064421619387385659394980658290224888943215984134773291812238977067339316373907644067287910401498071951050734253600079753174796628019754280798817777234022496914143528855975634355668128806285090094802218014991805892707887204343723783275347310725695131782378317162707522400323918526064858042748029092986892563879558108627038583402262893934585676894986583727286960844851849797396759694104270505224140153303513489990144744086425364989204580368581204689911880337640034179149492602781549156355188338059355639668089013352398256268188598965691424558155297577137099220171623486560778944603583532135351367024274611909791236308002577444469701858521224290857646958774070537114657704121927843151517690543353647266345069774522311710895490700552234424176242368335115098414290150794852403360294743456879236355517519989083882004020072830883448146260305388613661661988101014902777280674851330634378069368336509634348300328020375497080181940399829310954673715548123643386884157577200701685006795983368012740242537206846653568411592681419499845147508125443490166965568450144594862794227091316002675917887034008933175850020236632516111111426664791876021831262948728007901470990609976738681497949376180834501657092131634939051939427304882111200466218128941976620357671214138012705199339393884805523159253747548080097816496846653085175239251773515426517119032827881582435580238014978855140171677375097628009015478632038010889928768840139373095104885949020834544607556054506915458102901633209933545977451555647553038217437215689347857353802208825951749217224115068165251678144771447392562673243309003294739578586163436998776914097351076779373782669952843720751065455287609047876623047330055101654959626324284712229092196488242895038098109316181420429351671403534867586869763977899738143111565708180043109228129601793972237637016284818870572983382739092581813649251430354481577330332366553397237576314160923570369615137242234141507207679105661955212476980883236315749308943247502885025393967930532278305084361871660759408342861417799201526958211226380432992042348186508909360903577485005289362952883534870279164172470141822368152239263663827229557067800108173057736486967626183581070012677180773301188941078285440226756559253217032787659102232087011048519774025526731504636875288093858159201439950994189368975130411547142963647593944001799300547192222699269800651766215952421668801065502142419741277686989101520828402977600603742407061459918929458985184678409369431460320215085027054167388794431799917292437871764051347388596327725150573983216461178890529482555648062685398089986893876791510842505251641993651900609756024483300213521093659871110524368382421159563452764150634975440168628681812548392204886239782193636121136578170211731290477666623849876075825443673426476660672023913569908457860285220480454021414009872299770028010394443119929870488361689904656305009481579403015752186465693103221195076599138702326941642425891304995745060355800831043550151942959864076092578225700578419304614026227742668942994520579470841757372333327689161209283608730155879105070187693659611125657312919071007246838732163441104035477028953143417730805426983830157775086533221902907374200591591657422329792164813506181174961325228920694977367201586090853304269734962729280690163471803723022052161907516855115452638224448202798951579125581712539566672361218597099175999201972735547567251773258644899136086220233209845851530738831495431754763331008377824597920122487981892058417590567066203274116069247268883959268416748422977831371733278988490099493036825696777473928266180753267441288695525089207883366515897299519463419842519026811707091147131444324198905764354922714262967367434274891783758919051933036543459048289410476746819762021537107299049531843386273998950984278486723348535675306772918031787582338089258115112446019590059191372001822289105793645103055647240691917988922366996521888631504096721745358793821799823515095646424226385868249269832210720926651165632623477608645396823990592845311699604238524618860022488603931319204417703778223083268308548460118715092956778577631823521918462289277867081282865222085691072611414859077239951123096107141187394933573622475596323647453044007101837407081145218851190269461105692578245970361007635686943821656265598802579023505239096248733144130224997607146332489522293028865471958994670724156173026160603102976622803558667834973381367091692514591018808041400673924627175817020367126412090680802531443580238152060758007264436698585865353491174701363262439601871161294121732150997077507227137801217117503438872468003081823903914560494949339059944801197321752736835970363593797824709961988794594656617265678137222606206819149853116115310552568776060547556206250868625793595591454263218207068319790647299186582617118378575038700134995834585960268366892510904930663274824838545036366718184937122522053504460836643760615912791587354421665342569741392972559307367680184023175664676428216816911187116886192623766359973892080858875138870769125384093846616398993719750526205544624162226683027356419196295055894744742972726945549612247043429265038550076835085239447942371646388846869535196570244292798256228620715611795705933935441977071010668521186273579278916321779437962345582277253353892623764316763921564869542542173700332110925335432664036839183658155312260551956830197305369372779496727151171106545885709200797743746984250197736126750280218472467909528959030664449070196548053600403598323247565235645514479556746539088998875229371202505789018098137361080959399200956556137878607224927083223240474364275174004447101326358872492162104781946025348102364533538771478401111831962850829138624510698116932026496301652553410056000123719088910890352843734643185346644351972979505629690846715166440634536772852155100361953891563593296295109843787682020926409165077036286972600758394699084051293919521368934909099722677250323798081672534893625079130789380652685437425788897283084470445910721398082692586907784698873865545846400816423779921645473839424994241588490850919657471422638511564396013150621529815466629286848701688439749587905750469203816350005351301863574852326662859028627993334823527352918204907008092060309924228351496238568499359804287574423489462269595206354182687155461508468452231925666524608729598187327682966409255958142320719647331683831355048617808613386727839121798942551285041171392852247966638435358316364352483839964884036259645981054801065773291809367500143512326614787842774960832134057405365081046550922852413197956879156882846282740391781576667458271067437863523722148939148633802234837179321597917947235672115320647609863394524122740686689518393293496927665857124122712887656425185230701781344813928939431007892334585728755753442786902500790535966791453907928976680610590842972248402103508675290886823001141963254144308587822648506534332735777345549841258290015768495298789738805713424789034019983141153839904873271185375365934738766353715176272246355190835235767840820151219148412450557400835369376751343025806716183067194192587553698949778127012769559318370714916927829943599034016700957874551169316000761735969815762261272136486199382354036954572081704524055902919730999662427181408691115441729173559569246820836315182504534338148122855653129113415509198845406435561690422660614601160791958915260098368865203224440038311982199526067335638094074663397294539821445855247311971371899058743827424444111224676348914654518477933538788296094129384142793716862428760878507063808776964692500185739409648680204104435778222536131962496560606559096335253595770901524937420979674757273240794893146699077551109090559987321961173870686268616235078453710318757272306308519736792153863533110927127528265329715145095098270391144206039804434383353848464127019017747391517350671684474257542972880303619194204137461640919769095853304984719299294759875784644825032937786913557301578079318417404873327275521330887242974143714270090034544111446860695961542253127868255946283904290784454949510456399202963735986279945817378098106445558994683000303011443163114854230391805118049888074907475229875326057710621599257274705620252310616477286275917941277800457236107607847295577669209199245049377807115687736294743223495962850497847765039756497079543388496831079372591505789833640411275215884406608264901299398183094157746769760573083544204996497683924683592978918907385244600704035075560084927093524304936007920006356574558336403657378194406712838097743761569902835824861270881612007604103381318238511857329682191227075274232474405600801139251745841485193855068529560333664004960937517924338144605326614325692551345253919776064762812747223042225854022140788525311280190823091862994578484957553974084062886510908336726229764401882681854375119709207244883485465221063424517007262596551923840841121433433605425493547296526400113122631251600020933164718603119118409919195587097473900328661847720474207947741513556417204689954923214638751547425997060132070905038770972859838363000981994187124796647398326328270416586013728680677160364614598273222382123663122383111443553022614994762779475225316071113711226993661909367918997432506697373235099746862858264675975865687728054756263470113282294739355564904400859476467239616360187287140419699672024414252119802516938765897602855297730518883588380081549889913431711904414475005040081062238140144350676063413327338285156580014047224882850387304710089513569501645009609394406042904662982241853431079783531314172921014329438860592777606517456951839256159935129326950609473069162791447616847667199405916837268055090824122711618887737273162975113154072005216885116315367178131177848817804091828908117534119328839287840772357773327603646677727820828123160415459806988663410022497165903824987671070313352238101253889667205311066475448392478653596703142963481363285333934745647467223251642119261122763778756036735650393008779326601857499020234130743996492596628748820483428753043693359837124816003936079092808347029402896091180646974720301788052239291699660486749149854933507689156976454015017831321962944135789393521723872455547970759115858231492495150669736866616208176040200812017206927431892109287912564592078999778472899159259651654763004606722500385281120013217256672186507511097602275359769256187206178092835226148790045907118955148711405559949002731960098051992301217918041160199839843957627738525265483920522494157396791069161597995001799100663819836139776204806057404634791167850236060946671764115815206178097739506235916828920083905473768665949788506595539906376289745080918946802470906040580648746125185453605420982117480248439192506167149215135456390162954777280981487978498381697617714025727090565749344234866512728033364380065182804310221616732311823285920841920956281952652291936661467731055198420776059560994501478431983460056437711674156124475958425826770045357699749164347568236481408385376668376066481822120852092944548814450001113581826915361816844741554996547561672771339051442264345826131839395550078890209898444974354828772067565812498474582308887989233630941700528045243594493211995312481533569113696833790968934855009836905580515206202129342376444717679640651682630529829928233742594455304428227545271735771497182722900868228413207385258455933747158290050073130660574970652078683949485178602168724858734161358195758543833078487647769649979750263427838759846755533987244169627733443337011952712388365609851722816385281346607059817715789666525007463124925366070924564820877896924893370620160469522257339716834118439095873550302441904877084385707666409276145490214879021993452139992291243738954141832397277870223790763496294899421530072157009670770983311184181298969971268542108261680943407322667990664300580261382840517259338969168662738496509491609288913272063504722827102882021153046609742821926656241472335966001763363566295585535804631491475744612982053770405099557898344552240729056491050876483443545091016699119945342410898886322320540837424655758627214124554570020301247332367706255585169495100043751135806237739011282896090589275785906423866511403209326454253512523398327256457036656500231353099164555786885246460552837131119189173397626472684728979322976404050745671294425660246432605914598055450430582607117137445565836977210497174004332176523286240406745833776862204915043273186440523688847610704882257866329150473457557506671650894219675073312329783902812079866370260572909610103844242187313217811256571415401825203548046427540803380048057123218482076249679400994815741147970027780798273459436323489330877969128092620776329167061801346764160119693777954273359527738764405130657229939556710612591889964136004992677041447418906557402552964354530755109058089975542387835183536347785766862392614396553252201808030467878696174615865792568282367334513607052711256640239812646742997163114815387720684804835270657835915438081139455344650995841059893431657119637019596832341136278676229303017134135942424776896318208251746340584251332318076070505771955955463673960700481553191135384041842323878329115543833223622462187226282247231889777226783973939926286911942260072017513354519811336467811113063914787569977846396192771226894371187670433491328338922199210711079673736193770117554763112000607105765949693514657010373842747597810174076795622720901778298718483561704018564356769067483879270350935983938754583419507582251272076344714009477625849364863812332235324324732798828896358964656966170405906369589956283119566807281635248900129871048149858941027363632605916912695128394746628795535309594838397198187794984368120572639681830844337221337061869584745909848483945916483486427935949471463371928680954810505122035468163797203730578366559567859880249234917212993245554031358629348303641373846754264960481536579036133408492712971344714857164753386352401938260808901417098439511166176425769951681471164522665371646834865606163368380093309937936286557039689161643935514493223315196292205998756141161558292708235235263355745006342686852696225826015515218569301552930124854390915819723263907056071131059597210815338841422635806474923003399317832755267135526448585015473507565956414023850286505595799268521768578233354789359845625130457472435340356601793675611545293315854705584506063241626450074381119725073212588924668590348872474221219697199228320163381816749622734370454119233209939795215211843208813817776544354624854358287745396544299077115228942418368978111923263865143226975599441167660069288634178633802957073316832824671615936774892658933407357644273276323363391941836858772655637716114366623711923597126669965214732047794735868139405640050485060266632002906797353181697427163149814878781870361532287425311345082712054963431260750158882694262902236615487779928541316380836879850787667207432984104271200875156383069413172515454834319458122699061826615953684059323667034050287776450902629458302439345403919349658975624790959115700234382018934317687490226702974829358087903668920484097771355259215368211843593915713691359948155008415861638652371958383252670552569539116769035940104071010951762763714046077507722653474937315406310607883589003641284144344206490983636889778680566862855922547100915521865929053013491706582887389694513626944496186832326593456457222062525671210146782354887745974858327608278644957046893205114585993093831425135724098072001373353626407006537837609616870337052762260218258076406561711483711049865193466740776380947529330591924548252040530964370156654208170960003783815475910648339896895373550586493868930247918061554456560278829263074731164697922686097127727956733195043847311910064798142383526847669845878414512177070046245131474486369310466777244215793570674778100396825184450610663350224611769653859463655497554876585784751638510513714796229595692811938888631872315399803294336295778855524083227341608173978852750902808451024396039146828902399073983542110007053511980016104721913722883053155939582959446279759150672522444150370488864206316555504716714721920668987510627697331649246057078737263214351501775913866860101518311402762055866226440411072217179544193908895904143913691864231256694143004576377447259301452522001427158791100393763026900008742645644469888140882762810782778762982941176501203445520399279102345747851682048515668773193802688119721904680903628989631486353798458982867521664608877106202722333759890846385359671779586882493389945596183530626157656413018972528589150993646551039598119118975398472538052741693559490351248062198528114947254370559784040051931440201546639174966429578005397655111624816966564715111833367109726662075152100116237330696634959026582380466403703318398081896772164038592453548765833313591088438041366396495387207240046667140575188418400176704757829885444004021583574555475395947827063891730098330982804106223284760928868211988130950098010159196017779844515783217938431716959986520775455760280272392627622493414935638121618862620439633367582992097084859248163025234514754749362094442084908642658995978422678013153258024501609043650045625132724943037648687090154285725647309012522690166644322687889178074958343891263882605520543137339386610246961245942159375976411713258806437909741102092116888003137817026196759557972135717411529853993293273632668940061659906834978199562415070303783506969202930839923271101483429460180796445028936824724272894839262145569455474277447441958332482669852791884587745078417020778590288314276145126551451058065099900013478591923739223759723154692983417235618095381082338676132645461688094223998898290273839850409703404014204137801374158011859541764305112124743328997916085403248186608223852818378432152070120321047217406681908091325747743019689306850439019163955848435241929086684774481080653883500174945921538557355995023115646542334250576811070441229005977719605296610151163356670657605776678125941139887521088770239782505779509330061113749256747482909267881732405202249617624772994381986152616932878270070133449444491026641627384262447923052323928286960619396901707888103021811598851711419106622610115362111616593960332648418627080206339449906171595799765368171179531268002473540125107111482970104430831049750517500334521826148131523871107805558573437466232131932328930116678037824558014759707455114358518515503169618684473151453351847281615278200031356666882839229279664143060656073434205601228491328514711723350188498974467377025184329649830693699496759379273866362860659203845959294664219276518026726429147186072555562997800071557262069586871175737965877552694980411764465940836372437786412524304653939397064284987818910640500629520796545941590465181918274479887448505040129956766407361991546657371902796049405844302426518454657122224278951117849088120965446631146685491227572531657363753336741823605088255739166378493934994208182959878896496039034883651916219204173533791176718476380354139934089688234622252757766956116063428712222374930352516433256472616209644437048016854854890982177457390481457220435077650564430446407430225761629155135294449348905561636876422679701741811328333844499973628762166108899467278505029794159486021153118342968735685780143878848413402072073101388103783754311101173369669404391365541756532377174951363568024175275626154585196734227172934956265742639036805643590667441513346706195092398504958100473951953734719310995096335326813223516984014620082762385287912315837810515424527841896031148619432072269230140589700468881039586453461647229656999238775040281988061986266209150447571662835601767184875720648245812045107271062112770520623211027850136118167960607890651516806887801930726544060352197125269191117919934550017751540492382004728370510688267140884668084292851583898493545389503705264508754209451509198973100967760989910296355629714654090225563322270845293277666800636775375656574119382599608810456038389767627909125526913055249389501571827809854161005392680547590955489871661963477174599404910822299683361348244633339847479321722832411717279221608882399260962147688493712745692562547813089324930454372858556539315432509465836037715096098790584812233291410005814097388324230571349762412484575781216003423992797363686205512639056621562606110357498939867068534209419353024685662139414251802868313663082638848259175976810638341208693167877023073445943321724553722718585894602619428802157450700545309198904377075893518001922397565264279291551220199938674045451363830814225930671693345677193722933776918564708219916271261590166048137045799693408952026408863055344282039296681309015327121182538270084620110663627234319841906169461591548266180398668475577589344631666634140960782790184754775646464436485477909080853638458202859912007047558344190865117243988889243844555097285171333721878622720897101227082918419187815393134176896262354008530454428804757804675280618107026280575770620428422264302845830409736102215820783858027572814956095203661186950010431128147347199405696326654944817453308781898468225109697191524795525632912191819683963580778560009962776532475287582544787910035905660868645338453198441677212070891923355956523078917282558545290949722641532685503566781867295192790594063853689270958481293656238149877867965376597671390480245009466133238968318166065738445574573957897730262664641254894677265058065904266111274940840072228785090521257120485667564820621210432418523201091462681119565440450141305455780669373044256522991908340191766008431744860807712568869089264979418918748004171718320894860470298884433085536580504841659264718327013857640154578058325716646033926737219615211306385462215027765343009685216016348387106366942833484078801201897823699699100787294330522455561319032348630117397750212991545611115823087134399150007957499362486789715634367270554516029746324112313760469062162695262875757643774853599144356834360911367709998672448247749726735908768914058657492085634555154613447839843949742357402503007865793112577935989125375342055507451382742750814630747838637611394001330276528721503340094384191785444425971051727646417182919801309593927246416816981031661412382730837539170189846330736418009004085353752075312870443687426370067615618642630934525497835625961600376761787939456673163857503900607755687893312284843269430979414068274428631279672448263344963084935689657088877252857190994206467069806028586995429683846922815601868449807127155690505274241972920379553491357276918571816905413804553893186152537597569491482377301161897669062151439940203333096285482739987807985625357052559367363984084053684929746261566582526901331719984772268259325756468673106287096998327415693637507830215226930726680441477210905023264235945559368094260220142654757761330054338144201315758707912369964801190010465917999316114925417039457849156788868808466208087824101403732966712694993319352766400824431134359711080387248771339629367332070567130518011238440538985567894974512779598908293750486376302784622672590187705012226412904716409550493467984981378425268506043713728602549153540941484454436116141768941616901328330891175294396255767730057401568655017773781896522853450654180210245929444356348363426106711802145972398380854556223902950645502717897858592185072937694351584913440314072757334850330591641947037472944647389973922856923232153504443985629485748752608002507322329988997390884831267555731187503116497479708907836367671497779363938799303483367108264692928488976093392971966231493421042475345456131680684570479472701257257398335799114096508456089938334511792642621912397782047210955517231727646057103998839143924234242932491197362608989416960883009891218784021950249669926181715265613786328439480293366809265181701710796003241536996903877486629430077028443299598427831956143893090626730949070457946143376484656805519072394889214330619733287040247466359044467908347161790752726929924140571238933879958634113517751505337189101081712951909637572346967573990358771045103513346794052676999883843412390879048960956037938178150206959944914805911836080564076206098277119065029132118682282437533478320236245717314998686944098360120371423954446084490475034975407770034711699639930140306287710515290373207349217495414190411799955964270847264723395304735303795488453341109489952293100649025427708515529470757426555979152399800595508216757297517041467504509418436676657496295012133429983300154496085533190608915500807128855435579558056985883738303759092501281282851722550393511141525537009087159423683497698865462740855736360693821163469082609307465643270297912150659981766460314903534652386889286515900357707785069158847136589346595839551280028622634896265613126923826251068637838178995181637867443655068936615536484298161308376933406161429484409440394813729223497898067263599653931425317904025390178806758616242944099028981474744623224463281200015637114109832619884077287500783168414455741371371635191407623800160956556250491561629948591588793281545209679127210604514397298751865865005221641376987199514029681556973260658204646985980119337287005182768323230679032778078947124780558335548272586896862636333370287850589937466346456518067353809073755058475982463471369440066711464176776689686784781826026502877860151554606461763839618248286860151319184261211375329174694654196925851423466874605032265388157895204562887240509926021550532988619089949176583074652020223073774230547624518969156480763095605900293845368472859631456066250747689360379377846994904519902855666477146767761345245469917185900373968457238814593945675157934667035344184355158312948448771713707424648224023753619090367424639038426368933239326119232983418319512973426971067936849021935677276692141281379383915336727628922223295567520532609840514256771562242425322207296862944094982846148266394838605401357166395392783214628866450861494582407268912910222925117961287087057696973479209944053690507521732438743346120969410729881384672289707102618538285390322991541306697780016324526737935934339014360761946549369095740916744897109183932720560545326566547918305655551801936398848243846639944193869620297684474459725923710454404548579916106327017281560810549882320729257995703723036873891456044218111544013794942531903846166450813721626082794542830406620568582932038003827463065772276413021443190690897499958318506946801067548091654510857177889509996383360837528752578735603431900505019732947481555052655467887558041295010881961170091484543193603434873855997608840344439582800638214257647943882799780738113234462812764020786449549479171333620997799585134924203888235238727977256654166662614954616780615604590547806736992894120932495787824962079672894293153991559495466008879932142330159986934908563666574908915465646073249541920241672100560406979743058388423907455591965902899987569311197422012355827131597159007043157226932009634389807077266275824306062896855978600534733146235109851022768249874367792161989703704363302052386320724444535487814012824276577841683503580563669884281057480530730490267960482734960461548416700260228478277061203247933378538440729223217062839513200087949915120411675809714487962719221697145969863899703668688297240961678335495368803411717169396962436315208197939859095534692668761165520418835906827123668393420345203221505454206524479509753869780551215226776598737615619811038647093822278011623495749696516786686263867646222183979764068797643152612691390030431876810715557124389045891045485094066103923526455681529056806075586642865003181465144093300785428077057321060149556527423161662902096426664397111045468966054122982901372448812041696325763726223061521166264907192861469816858112947417963310996355869721449920321754875599955718329064827327938879561643886606791554428132969971841632894828955299744216247862059429666838006121748200759464491230821296050355574945019856994637808409216833554474578860511616281571420249966013854482340560205278188921977007880691021573791072300540666131511099604089754668884801343809041116550929436065118121604794360918387520547145297974521204903861553932228744618018125237705848866609467884498594877378872535298449038690732862480187456007454724341185472896207740547873651356170973703809469923390894438178050527959212403483897184177625899690446426754991163532590220089964735694562743033666082583342927476536739536895434057452840476354294943082356107990729564128066980427237257465549643776556806133336709720731458672697374714517450668861977944490451925554532497834273939656924060794488070831822435772972458313554291277765719906682653163301704888272324089557074326580178364068913606410127281672299187777631037358568517471135047064367813878741787796453736893939422107698836464151262999699606527305378743520509957876048807242609951144196805331537793069625956827014062680790644867430126676357317008911958042007691597162409548171425294809987169909260062021247617404875809780715611588162744753448095070254305980588520957696524975599679864244740896475567889324212412174672079660766929377438313720454277879794070298851207804340625666739030166974091934650571801503077443928378691694070076093394529467788594257041927887101260636401237957860824915423408674802695350443898126850418874127943367189310059810104494981092976535770027198120904773251559358598677973025353069519481390129464538850510606932340673508620961658099186043715461005490277574177309202938024711497730641085331294707470626968376541795933546952048267667736761247833769408473863808229966511624717947159668482276077607969761257484397776191414021646811537738000916032789959088806997210870934001890987865988442617515637683974937850873184684838501999470085658988749247065143111074491914748545220825195948987676621573359763691605255545750442192890822868703534594082171651294765169750203298701983294551964079961657354053961731088782450092914405673299905782216940626939060446530227438975703521993013179998598980640870518712471932631069221555640045597241388203997801537076634047476838502157535292656876305641896895583909836746735278387989941978294339006590614274513821339217746952433054819230944820511557950291147350420974713173043588322921250713805529834963423305886846393674795079828729916444172831093406181984586091628781241029211069720155704158535422638856844893009331614447851936024426602822178899659933779604813310692967278743781399711876725509139068357041994435806546013000114342195140334746692343818000887799369884323711495937597937453090373330998442695538568408189750315162135761010835262546869443623076017785524026375093208301850622411959392434685491587742485317230078370518151166512950444573035974401569148780604018470115268757060055660751694317047563290034786952022903002797187306972148711482994164743510216913894335018035701970353328321541257600122341635605753649748266897883400471246553489947113292000358885238990721525533322333091023134681895234140525236195383421205028012176407462006833692601100267617891557465353591196165123347219736424484903620606963319344880634600788418364440496390998139485908021958416884269124778389034895788311633880067706825488474012098640623986817138313464746991578436317296784687435689707566851282093290200596779084978189301772437725133616667752299202562147795239024826493004690182600817789539622199247247049109323877014817389029062871954522348708760183728022809755296250784013438227192877558678052460721081581480062526292153992152958363128149581079979441832425249524219798628585406879448412368667869999602892077733404424250775522941567944653343970092060439745698913737781755314717245543911142194938161263894940497277134809401024532256685585970385526608093850850648203521974922242866674565995225065661809895786343820020225050746561497922817851672178560000465239633094154048132192193095108002175989848855541283244078204090480742583829730843950449827779812289030657889329442477100758681928841010178644762254737520081368754257478413308652923439443395437313686990330878234199581208645861984437292234321063649924023613792971576451028802028789381607726656225831335887781590507873596607154211391837338624786824689159829197110062887875735545142087566837419814258497093115880983555274888785524338847295932298001264079176109496565764223632803250373384070107883784005743672001417974279379683217932023631437753349712917899422489282092333490982205097228624725369908282821019844451912055868672439037026697341125421002244769625160986100489946485281766030321540917562484663961784882863932371262340319321314781628501625113574104101998449905475425420841361716318495668518543928789393788177221753720342361430219732321958788010741263834027804432129100126428980598031254844041353299862302881027682416048895429135031493828524572406881219812315179502384102371555321301159880267051542667669723981283792232944357458670238265894639822783937970359891304033234008363445691394226273914040407245663379116969334614892490430291474327614000769868410103926285990134348071597647718572758880019913008359071501542660700375513669523829730118613756026077254974979696929396877531727517228002888098304387906535532983440935761967905476915926592611296381647916554190986966539427079139446737823554678003918727363039309710670804611986613446112501472963328036621464667165802302361940022742935805761187869818304497800444936216333643214050945397356504164796044669699157086916456961596179649688880678305834945020918532244054243450058405630471280586297494085404416884590658639880628171037664875669142402393196124418790004697574155115087649767102572159750316883905541508582657625420289915541500460487933166477589152540038303375564242593853413299796698795520589594741689004890598397440274236382377847133270160111573240478678164767128902957346261920024899101814411420060820069294333077003514516706495824529222387831206362780567862183093037158571631014695774334058956129457012945943662894127934993554258264053342895180682235758535876218486097652615466628344996742372133595475368276380789518350661210627825130286516794134847358946922316793937028894045211121413077225666424025820068789396582918364490874411544843332852986595476876642262983139305425754734391284082947731823737997508105753065139647029027466822232486498456456640874784682087044962172587260784612380571312903895689189130390915763835566776816911479015254540214066247573801513482881564559725979184344077100018818137632524408902027353645260198054064773536287521965156280838364697523509671241100272796937422063729614732043180298406578424787547101462170077481414059471220653912337636192100742990051053839626812350126153729108878996075913019591341020222181221338181169434643392066534607257827913741041908787900931430132861453222071235141616804959340451792129782014930296905449962853022342897134261589002692758663852116027129332653399996848097481395995714099285220342345573408845674063660342294017940811961923309631757395554260904623390725037081838161882257996434975180118532549884627813469282194534207748010438372166231982818632840508857515244087301228376210353916211700167224560796454081644176418627280875116760191784504420733695576451554518422749492204470959701139168775431612793947116569262490753794097699316641562146160738198090623978381042307595920029739704879397564719673601584092188861177073252781873873100875546691188597085432283264706963672776295353461405139688918742948015038118407026212669031816475419900879662157150166591384654453139173345299279270976872480002538098759289079163210466327821595109065582609076656089116719468718953930719392576847390371533655653266529101274614609532537141092369613320152686572666839498989763932208133849065066510444003485382836562568892103021287974387496904159899494679715721129202010148098797587039906882461014885987942866791135980964384674969581658227902467999048905850879573717232075753442546200352373905554422152881386292393580148744353634124965235038140099097205341117754939131557053189412378833974347013601049405951148221545624384100184792639778625050654571737885459369633161217273058859929022817908151101575812546425750397006314337393068537148451834850054345813307279919836787929278925972959770730551629569301219886405289583899471688484081708288407586108846001619356717702879390282610599949375148332938367853718437916891191812353011448301440929992244922847420355396862688154444009420181594181264839816954931759063241662446719587663899582661623477461868612873046130838416500639069750552157381947734012177136472865333515261114437623843417351945868095813623937359477262034202265693627591669253280420450948806812040641669847718010913966860747466179180943740563468325155532961875172555816849988431133923890243334528280691654071294587294608525193131306590358573842555830281937402059694127467160730950282505351525643611046050683791227551514745866029398168260837896564314746978684396928629121923110813323104188455539395005264042510159627628640353487992611413360658827601063446160207162681119413020928675887003152059900625167706977172460399540001239042952364747073503186709101215517987264957604777522706315257021558045223287703216395248955570229702352174987057801539633665096379800388459939055531934832125221564809541435898418478790707199732130899160963190274983142303297921427924053990790741252721778641250247505720439470433033140704946984274363725611771426185502520788670249120451034261522312068972238295499830183938799579315173545470985295206814122620786011542681271282952255313767194764621016182789923119082789443299650059593128373218423680713280518699995161695194616296831940379626980407999713439576074845291759974836373901237766158557592601619304352422636282814284454056975369732361152327079499674687988527820214616308618963615824072770910441150730115173921349891024571363637588462692575162037865466234770548468694760234052268839312078151492134040947503484013099277978106842790551665765867577205757963792881490257355324642689093998344350114011568588820792661829320071708149626989681206082314626854920165929491093054138128864701180706872742893304160766023599663999060926178443902594116486859091689962871456750978370795544576259229826652585001710282517554971585001988523502019431810636678519188433368512332937156469681226724937490930994512416765890272533601877463449200877786017671918006218927270911455213102366972861782819890254259178019676969314665243615834349845659846222023977489143764047716779654218125578779790968733843094424664534537888356475523228039268614745943533928098721234277142968508939785569531923401750376892382935117424291124893472878962222581575324239215458406737031962844304764115397777025005486871326103052929827451620659665725300731633513029970367266606586955368717966159890656031606518600938569429504888038352573669688035912452016642481639191359668526609964231204516120146857885540048177701862199603409923737962683500373378946686212575886221511263914324011490434436608482445524028375340748866721308210985797412528668856527651890790622960096440172702426584528088577303581642266525434056295738968388439551835092644501901338942241847067668080204419926393941835474994061921625901350405214835269999205732422714550925510273436377866624474651165794577039234304544122840116159619131210649873045128975075992415661980367791058862744862252576234616430785701488203406806757702505403316679222855059355946119675129280038003496011051235867268907252005154214849401167899621747794558324125475181079293257013809517867439614886486934420159321231922204124560439536519874752678641260669144478117436966610198173205804756575556871373675516667652156684093625906751856295293245029865113914180545529837668385886712915372056802707790829295590407409855197289904637731430959716673591052887498173662163977701295650753079264350695602546526497704496830488847843895482006458340741862018029682757824408772837641243101409183638009811530615035547879556884004171419752465827890500317265302883774760076313665388530609187562114809981231613673682479528251754889359200434435261182401088318226536148718853037505896424896491363381385792888794492970885210119970850902448575653765257517183366823867833451767218277464266422022920580371028859516877647127864709784757346206609320979517806601878215310576497852377111029714968962209503382922504210048531542609636696600889913616836323998722601782406591266636238227390357782010560350241386588819936950099522192360694757054922615156877334709509254840869148976797269303400461515134466895161415635431342383114262236892832757637804749112075967508633664351925125612520614638042985424792507978536970074903166830704780756821039777821033338369072254947767205335901391914200166749586939987969957156957770572237774742922002588545846702741807081100843449053263872299771945875921725234271202040210981335991032972860530081320328856345617322241275097516974675416012591247492568045974979661852285406448628315980552226678093931626738238066663752479882119651238024636157821249869971978490190385581311027646672380733475944878220192792866061934788913216811638191968361548062965030542844844443596065549512527458314797159065805464354495397981136142333025336823751566021312347159874028966578879107638488208461828989742631691303343087272100470881047206007107311516653713257659035608274278676511751975676191941251044050365953250403779615434240281173644808981596985757301704579354128794584775248524933921805714559442060658058662018658437707379175095413174659358376568755993405520831178573511082486411507475438149887590466626068985487545741773953299151974047925238719324489600069560219540945169658811573143359678865214147977551551142777463640426915223093169575054576208251163364551810335338660547023272056957190246123765846935995746894653470962926976518127583521120499740046014635045596713562206839798246722061700696773855509556842599794116594616009447848443625670032604254674435638866894634814567978516697131222724793010418121040451449348052450991531451932111073830043587342293341093134869148198604632171016184488459761772693732658319748424965215113383970841264626308397761344220705115042878293650356374952924827118467909216377751928739650139282590893082026140424150110919607384236519777876047635314442676245139359023907297674238767300287115789290809308104490001779526045966461640820117496761640250859960388233152505620109443109533016238704522028587007906616760239325300763852384815502557239325466422643093785540242709464920445348191414220377069966490381535531122395491362323442551800925861013598769292567318647730814933690947932617855669364673130070063874737902534712891887132037337898423438326137720330590564233318951809133002970680354636131943433696182157758415896944564134718902549028865720714095681759839763377343631978865587788354788111076201659844436180000263849355648876635629743147081865373314394573253321336090865183405522311708606330213983132576255971877308825353023434571781450495392283942595451165496402379839736500158327381546508601347555398992758718930787156605460248951283666343210958127923451397447726039314020596477621463532539655723800897647256979389088451359858794074561736537859750717481243302812689860506444586881416683628849731822928208788620398205479573644859100507421958646254107332416065253315045843636339756472442463181228112923705656556506202363930161110198977967937593558396208790764789577926259068309157316979993088371057744342325803110019831490255440619673219016592165666992388548311510459002484115163981020699452750716031106101911864651920236508145163059138756808307576029437845585313906431731509925300424656588993988395922300830232353778568302289484046396027109088932841687591377275956803435739200735567145170128873689025872706426561308964441675147785919948628037525627119770933204308124134252844371418306767976368255904910078656682315261736259459488820814783018820710796112230968735424712618601401694880022510880356151728681332423302475226536331316038790395003695211030617467176621256554934381133603690689824132600144124138726646248319047053148574684975588726203340043101823147219615393381997102547486448515216334601194309527288890296690306704611664093083334431994479824195604989604365540748893932652578988538789747863036937241113542701878607615374445259933332576725548437675999011587580954374501343722497628430480115433025359371311524501776453655866958736474676830155404822944560141559971165724788522726030333674347682208125501688914237905464354933941964424334560261980353216944580860915312489829972710591749394678995216259753941968403363483185044808753705490709213585166450824114586277651734617806186520302613635399112925948667377984627082966930478492498174735484174565795794991369978028928879456748048455164583550286223961266966173280037414192232561765028280139089946157245564687724572371420693606736890467777150976017212225589791460841857344217496466539620642674151646840753993861684411579111717655187703164667703136186257407478947129066853739516431342466755365859820671252151637774192755783419094078976492446041992835405586005848002062925005306311853484766932376311463122282584540909745874201231899488058363600272189384793912283089180711206562921196154258775203006757871276484984377004102985725637666852599646652242722568934030338714690526961340553011083273513021319161052115174219494946111721422326824283993119970858638587669061633828899713960665525478941797590369448290874851578182258515151008823918010505911664316767729738553790696116736356801749802567294957044514976381459960792065740433779592144508738197792065437976730269777717359519530075812948724608614614163253728815175212867436319926126028581178745372541605337782456485359491610456560706078744417955419566961243084847933746390016324915580873753316239139001989478750722163828141293983695655569229456687216783920315826035910644305881236849596810822493056542356477378784263362023263745730686181697693535252760954145259251422818856829123448306317058391112578192101543631002702591960319265378500707748019226691264046849625119573620057461281242240638865793268596579386012607777413649291030702391316948421691124771503639031462536647836850850198013308593272295203699361772701774740747945574291058332326020450018954746118720300365255277200298903362714513900691179834027897303533064484259427924680012988929382649331742558436560762260243312145567849548639737440511255142770449253199105189396109222681964071993625683617225091968788868403191802010404894846471019752759165513411706179254060851816879433286893147303222996064183361001431369382936793273153081088248486273623979730044351764996407074787153728533511548877023986753615357240324994986997676880816125877970153853410255620904263908832793382619768061788506864019255877193286531813446365526550400886654805959898168377699160192145488542366440735612307908991470753293158698684714474605400556441026159277028606414046436653520399230678813801436717061954059288556471315751464412570499455116090208261317529693316226791299161674151558475836610868623539719841299381412774671194802641950509964526298840358499992607502323231318693346975945377889808237166970272014534738714585592814982520191362931367078157018800594878223930539455699800784258070488717831306568173354725064346380601117401970995207841918979298551289683563526950485471024624210375959981287886319600695137487282626321954545382349917258209190616243704515778627063416046842097743615484954394292709353564421793574223658405942116366118491591985151071596618174568892336022149760697419634674735148995525408126191788887091739257530506333345798887345727909058915849940840140968317159735263178497137117544025202944269149275157227573784625075564221934344590674751617585800617695664668190674702130567167336912503552710550684231491382910315167430734494342452371226743742148300962229228724096636478444597761442043866444046684874846364897528975302992465239002396842446803578652602143234373544560700456355941245957717798484932311826348386863868532741185070013292166101130151513220432960176171902803568345688266743691213287661794607805632563388024317020472660859691790647884535733130698304824380824022990937652468620927530024451116293805434417389437522820246809250046452605367618787097634180171195352786991795871355156744931965482138429112817666052070946611082688916314812201401657326963997465571685406651340214772241104414523635492939296707035327774206660623817927199758470418753707420339993865712077146730401054718196926718046156312871607749266990148405583830089271941593784126327459037162151592321732589706139537084895550151754924088638604920503923957130848863737627417286827446940319254281693140720480190106849307914872430909123595886433320971284927081771758584401341850439489470693307056516255091665438448185481732868778862167039569473532203644301457984088651215001038698975528923384354809594517081582635979920447223201620744215573090740685821453002344204065245943310037825356809755413612503545617902193772138282739457933455033969117485825113771462659333075736821046038514588748630156011517427830078619170710814648251492411170840759456466370455136562591400795022223068344795289514540066962290892566594179651777850165268636237305142029832082357595254273723922097821898273572055432421077661239642238863999370557425541154469888067723996451248816195888807463482059326415766799398459338732032163829996936557986745165031416555912341103119411002933832357980044411850658098506191306345949751529178660268720646344371297031720831901984511530946815973976427068194640161991301851227685638147318999534910069345207074960259201511903547223102988194709640811098881394515763425535488984597054513923542392402910588788405760633430037319464297595641307735247937999007404927181842007897730570679609199170609966952460086145010742975081280627692766582416685003030275052403205709905794822873741552770210144449492187977560492783025573359559130521867572366202128352916414392182486017661818842521349863462967240670494444497216376880824277976187733360775880921317938907883490616677637440088381913452551196691387779033126157616029402229940131532572395738983620431959617426275840753788586614875923421435938953190164545971627546600614691844164447163880052535260992944256383832121643953266099529838255807089087700941601719310101911940566796855674697505844345767715083517747168320206178264483888089929647063535462147752061099268869240002029916994988358593701581034853368857816977990154746325018017844018962636883126713150690228967351032504202953627466186870990357776952949879154428783503533124594394131727078632579217379468056085285739264044725562419453653827392065377506922648234757948190624482697166207335443845766867109232567395685771444992717123714247107478194505036853762516650958652860545647704769712794447822362122989413216201272426633530993589163423206159138367809862232879876080851312983693834674328834938039675505016535853015485856012663399068742518850409432569176857641879688954354816971855034852996577471045431405153408720826766225388583676379171346130839007977486447560952280617802775832294535891300164857360851056704120030988637267359767244881363973230790419655643329610656533323066627033898072714136467850815380269794094804426160151842785450722768080508573895575460228755631732595399991607966808511841524573944657821966501234875102104636234522437551404780053098146476153310441087684703661328329272454578642470048092059372969916002150374919628448471849823445997829162547965721084091076920844603479295285927132356134100943047461691451931646432551458353338602756328342631348286867366496639786354445411869886951573046306653794225533774774376894462576104989424221647343610041758867647304968513732666350488144878583259638967749918388225137815574812047613883653195232859746382524171316539744893479942182116136050511061454213023672179041267815172371303442764918152969215309763092610865066803321828461783250333813521956595891201853626008410290057939586143253358503180404823442227543925994068369716406023334238273051802655464884321896141485676995764545822204085966280615759975080959901499967306606800192789977070657431444214652570794157158723520586809578046370106925091583592162702901384043233880248522631389658925275223681382366949101208964520867509601943714467832437858040006444814170389369639690441046675628102790041136740466569507178284154356872823962903620210722510629404346851877067684090605065364869375267106312568815881318888168575098262459449522500132267007408592941243875654911774191642314760163845166551988441096884479287716283681592051169906576344151829092543077622360192130876045792600108403222543974770485001283072440818495315640855528294729791246396025389977486204257602477443585399434498343041306584591914213010508699248755730201524937631530708365327149623515046267073269410393114529852821707180285977546861622768474303179340054073095416626451928947462364311202632999109702367208571945526235942502028982907932789285091230815914770354271684030715217158726492148760153554894178418120102338733769824262465340172003686816259529050772922260057623224098410244951052629029891971051879925795673970742945968426988663040894395460122312043506608891672050017070433306082168909557786797589578156779932679221869342452146526914787394182140504284960850948233699823541600503506677067588907330999646285082190568584713979406425103088311878075871656393915616563026984241722292003648719937588584913105798902378019493151753394173684909587571262680136211897850642930997223094039081696551135962146896408598706557289274713427013632359888197466354166430300725689805721591613628583304080238198893427911050682151332561434395635680827888203654047633925224187347881321553856398982020682006678387606860674965567085970438780876498967614337104392755034298695588286199623667981451097079486643784259295131840739437322133734516864110011931309577772621474429648469386919930993230524632581050258031938079888225142496440262176645486202450583907394523275523495025902112159554683820993440494563676094622290645948971138567910944679773048826144332658258103758262678860166293497194218370632409799198796739454650272325288070671719659947084159342145470999214476384691400370675854714848881628690320720550741747368474480347182218023968173485417160961759124551490826446556399351299271171321025605114265027582188731942328790925965621936406402132986530902773577043220421577200378387320049807649247189691103652446505336230815529731447892834543997122858502269669545689705634195629418992641308142433467036133083259616481633934316211710628988272903900408256940125745383954771877654510807399277505160953522963245209896999699394150478514994618798310764137710457226069620824390155726434220887408109450955985143939164007929894286156641093210111319300379576980804624832082655583408519814120967223970318623772649543682097469920364892411637762562252649787728948154718080480898006049781299818389518535664620953249899598303727406070109138931838954344032457012137069767168233632446219458179023737801623085329794342619847700841238908697773506338558509843673732693724699919513546025427031190714179329891270796538987289226830654510256148805125674749167747576841148652780781324332011252411447442160487248134041391880928062379025802817551985791442103470718474950637822288432780838187413193839292215737553244799375101749290154415938102229795823670350009108456338243204157679472567897880486140238470153694541118617690792975738185007130887213459858336456463960434018062675370951428878294763774876179975211948624713146494394554810532554284962881319415143212217395895609196908174122163446390202096229952836285241624704334049799242233830627826289116330516238643124707408457276312664872982936231442981500824377929744817949450786894373025763634922823391580797419501090645874319196670251052330106462761867992749456333362307135032551250406800960883928539677993153835781517152827802008305795307659237143328677505198675815853731662332616761735154723547860630217872123820731007583633595340085687840645025091686541609300521391648476429439412699413045983647018932798941767535250196653611039578002057973273277986338291034990999786390186195880570207005957592743153080909624190866278551316217238662117185223815888572869458369128553772936206241123691063656205048434916803159163475475239924096888921366389586904049214384783971650543157040458998459955569681067193738156145888846744911156802781977417143363071656928860416055533994906495482968542278178895884443393608977570791673208177283475880195593914520422340102245056935947024501522500718110430095600751943642697096007892971252010108996715825591333707114726071651210550003134189622486933861942587176540228073206131356825029783350033162104822764851717209407464265270787944982537616797726590753027863638932134308400852445745355570591347842524401474277528877544814722891077041412119638295913819252308965786633757553868775035050279967501923953285136997304050047496780453759681049307412890000174976924262604448562032023888417185615354007442577010988500225209023889440490145172874458197678297987880299261923196856340465876956028509623039444429219492688110201797292502781638191072741513707633005577006585223792709855845163655261970708558751012209760773178456157539319337774148067987775598331173596209663425953774674478329332266609484162871169251346611130690602212125703383754591927934188861488577276772884654242755742149409228090765608225852012100463897326368667591762436463502280740496758087710028943496598191518583056771701568122649081291381446453598954704593160005186655009111136744496047254936354989373433176915650130629564826661380352125505026356726598098267126464479838767122150505577286064164098700730124996395752061456858015427479418723177194610501536637233106177154893469157980891909589821388753532999041925351643190438904153217198553180477222913887835523138241469058599972216937781910944798190139559114860061502552391016707750668205452452964765553042164399466018906351122565963083521885826047082650836190419967215684129704635197317370902629733458551251693439281192096343171760632786548827877000262681504714851079364302282862289813551373166277995417707541575077981075828662371220960989544034352977919533235699279538597906317667695221194736801773499756061145809682253193344066425634706924387757679652337042930084573680504400235435948421282257887713943413596192949728409002277997502440077030872690502066816258213907248818793803143003166353733486771085418196306732490058618163129457893653458641408414902887621235991785455610254956935935835125062881845512392109449368412881027367224678678291999431358556233571360610124266555154909125854741729740021148601115926404857456445158241416227172472637493327946063896812289127821737063262245467065263302801063701529691707159536299784973651625893884767984645083552587735089063678680464838358655613043749521288292690435265930487594769729301500792325116524361725497663889327239473801541122510399431791814725538167901787727762185827539994322470017539322134166956800524919817457827126525090124558214334771492369188816540545398093260033786058373995865776227553048306247532659578228578514949865464828540852352330074730665408790321200996303803416256452785725389638541087992773677340443582536514687870108527937183657646833197757549220636666722131325579271152949952747482010168731441827789274713939475898738075249602049321533168702468915027377903565299765157383338607545125933186427988043114956068622890657334854791844882294744700858159082616749032512295330391015135289727808557742112497151161059261607010247612184444555833122490049293877976353353229495453041396170979460340791911518746379454585642955571140260391435127316310926694202458751725205429074759016040206926586806486619257296672737108859792869445751243506174987355945459331992373183186686463960040413876293460462530167618043363466128086642237150574839405519830117498431817518123345391474420151715087023962933700850896409463761444589202152863525337904672517820117653370391204038264608427256533637626588998343958115496231622572861293684307762321234069807732071891492972538621361203048482763297160541124068865844849334052495461574762697302190553987733498119332146297892686381876248949539626029668031099337481766710066049908040463914038358092272541563676967659915103071770420554837209228945988704548817301401635484845404377837335097300705616484478460502376875562719531262045543897270064933514616850458782676036189216082378427055032048521441850100844130551607974926401063820018939081539623143817730083089955236101242286688855989134831631849083238685975566902184166308136263631655206717434524489557008697982684269844278982641226618940897478647678009083899633640351710452647782804664861143412935159376419619218570414471332816556799126096906784543446106009003238053105937858263270522745471514031342162397182476538576500649777198343197292316946136810827792943011734807204127770629327629714890725844205738748581409399185911518466142592796874802790194199385804631012647547973950155913171237348689393722778094736427317708685836662177311460747671639753007463726788768958566300421753444083111370701069368839818863349058474519360302337634777964701866909920585249833841196037369712492932416461467257966000099617002641546381201800480839554258011655699417943003053116869809778567384409849683265476838438998222223266491868950249361583729124133020995159563983613380854086208669934580764930416833905931213697828744569568895408576323315463721127637283756368913600332062011499490570255972231761453383107098971725019585590395553583947265918426583889510340422759676825000363834675106667692209216141192835718090312326163246510463957320234582813251043220309076054772177875024472375950438237314965707941441321514319086851625785164736446474879570169663596745607748459492602567392949502574376151147159395258980347195597904644334971894308137932867586533661530001850956970967879562074505150754423818998323232181601174592684416995627200997953084352277476301481991600243842177999045710395733249800569782363374634189205991466488864404248974500547920077774660208513594083682554428886890232729127173779340169938925723997565843440487385185728984082786800650551751351160251930916798336225809822314422407379285286227056326801936947861419102649787480630262823026122595708018068659373238574981156127751892836209103044103300342915340489658457635698382268424129237891843537466413021174905336384942140081701270022185414814281587740841747968359617991279046476689794641195393984021672766072686241326778642410409558465756628010157324872051801317841387578518790987561390571146466920737986081858443134131788061971534935496933424856194640181190065428972872663764106534819703766767986625576669817730488076615869919166870742590967561243050858271524354814820774949316500014395815527277129083413439836579366604830761411529978486043597998001006766525575010983392016913805932851467480581974180420963323658474846720522091723034862153808983316637815958549899220539581035128834469198451399439161715338326110523980431303745544029039094101834021398728805195890162860541249953219458520000871081251029115698634815068613350721618572167700296578214131750219268325184628161309905633703685155114911122417641754560503534337114860000549252075918472047344360840787086511721671730611923249945437121199003761797830414909499914806175995957064098261813434603731556072850251763019167894921040748370531967517950907285696668440582069151188593012981422310944380968097851572848095966235681908503803087027453193310272115338832517318904924665036215619842564495834055584303492674638312423334677769260232655095735560428790035065548574618790498334196794687155705896770704412480930409341609882587044674021728515422416139429472647592729141573950342391902037589782609558053252559629090276074642991184672219412296173258332108406955616864915219790471634431371490982080857989151358353369064887871220816669573916546229794757045334018887637452495194441308406058784013683580675233387814614613975522309987429283492937610852426634466488709736847878094531823701887654701599995635702763500383129224569654322731916181247612411380864560745154946288495827599638948818481706380903189580002195170637011279420091858128391471898277261354961833556966629439374460714782767188677421269421840719566039706973264191530746776581264317167530616662935512973944534985258607949924138697960992997207653336418627362540325706935000294200076045977254391944130499540039496757777043043131095743361469651742675770514162625873489054750025979086927135699458557018043411387749973181551124916961642615973696090142628077804887691519773079287288318430878175832875585317838737474206692351452945139791112113646088476262910902922807989502457613397193681099402863101016756470787814865897830662571975907843278946030112915211335616982310567101395340391308803514224547745183848054801220074820969707564108032677722531284085443446223479623348705408087676863412143489431209124378709190387273852375943825427945853867270838225986829456735097285372817272713945759295907590324295607378149883281548836525553025705530221003755293814061408383771778549001441816581478760507233375670902421645368446836519823313311791679931537225970655668051221808257236994498523552155069219080788456321433655659195940624177002568698574731382716606777114599319157953067831492313212759951059067341987200462434490515712562390065310732861708967174043811481448432557985583976567793341870849645219649369193242986229782652930249402382885503415162244653412546708500884813058413460007377697494094751172255863111934785565569414820711151504339820125921660706867243742317637589080160821537119848120633164526601460708180161636107577946995516118337424903651261303432374260043943962934668830599091649593808502845910164100699024242280019013558970726625556174078701386936505619615902081299886460370998368236285899846630334943641677765902724197936096008521732209011020339155926647731967195203206580051949652702755041603394903916513026685084902468171137203011803900554774523141738306851646268805678868612960665421049621808239808733677423539395403341039958592860155825252271820984749594001827845479675915002388544127398531825923807947756862892754444150489644663842709037626143533380000780470121789937185301639726679389692857680828347204265753358485735623025565974687200801287753332134063119314165358803083487140880904384036193611856363840447567591491649561162973144731494545132728090218662087728048577912759272726004755213151487872955361517944305360299896922601999927469314030656568861552298319495862015781885944851299220999109703322291111911515324913531286683618810786691148168694977458448702460249650050853493607066754278253815978269771503512527246507534284285740655449810856730240346617505648061706959198024986840382431965553658761962697316326556174670397970998937389198096780897493687341475617532479722856386671506192842664260942319325089008707500321348686825933965493319595929539939895992559861657351733427263433037193997242515563207565128272986487791947034073390674997128046418699228505058481079359637347369268530698940996661285151666718830406558052885853810145750749765700247112241249692625841239824772662526856823373497232255609314813507109918060415441927179815536787224642779644555947746483069635134263918493809631716831654663530721512175845735407534808207738752725920755667024554796137289963275218058483910644701395081541546021052642862428980388451860105447809165573998635230243000626669992385122941544019229620601980136717064660290467409476604903612731406390732294950433847323379901717668698719632402853332576360457803001226266553184804009066571536891801266630596797467637669348710266023391713818183796052223722806996704993551837918806899020708194907674696844490228658323315856701206362146042669871072435360065354720971320813331141534704224899525930050440826882025633335858220327840965551851117700883883528502176077484332651937502572047644844221860403454863857100549183956169474453791482474220208080067240688583975012971805894510590036515315965561530115184692412852136439472032928845534121681180650587420873387825486174427159097945817443853827472744569082308080099220572753487058058224597049253135867974104058967536388420683861247001813384606276258273170261806938030142831285130013563033769928582726442353573755646949398642710315778178820275899089526581667036369368632146078102911431096239521473685164849787452139132675294746068401615085611722561249393847799509566680576860507063092065536295745245893242707533537870349779022522079687868547810111371542340844359218884003571799457522129622307282601998907074584390245747188374344753408074627227291196548385996451745848919598145624045588471470168894255276209561510559025742495454502623870169296976889953639688156903716589325839013509868849887718802366484788721209843057334788729735992166840284616737455097471221466883176346271124495956932893289426221503330261853305248009684462284998487519806659339277881005722540798320036849255617632656210223874555041567761110762621945406853389419261507956179709083275756779099136902468476021251673987657187655527627934612207547596483339628096900173145810436221409483389907049372693440851842215420154006176311457351343466228136559373656628762768646688941905704660447779420630772368188438765158914250385570341862919276581482175613586850882543696951724371918103753983119438474810438802069970311768545188277335084929914721997564083079991543316683428474436576507519975299746026025445845666853164005937083106170493770663983670636762154733503831972360864903610183401308812418620294260717582107176286210648003247894439228318909370050502166468354488693575514914144289943745634444322762604867739798929079442415469229819843711939611280929368718040240391508926786672608142762089347523627893071012978325941702161008911805379517114329299660180396597128815866352705403244349288047507745431962033793257873328532402889687878981806757332001475789144541146452347481071076231779599848458922494931662198430381966925279010330273280381632410997138988771526283260119399275112498250879979135161820959683608287029006777370038758086527754162981437117657095068353010228508220430034590607819234869090245424705525510340881105565034424294547427653149348637059644653809009099537342151315304133838756731518885203264370132305733056052623495271913799130326783322487288927045804949746733225792913478164072922385288829339311018840433606706156121231196483275773195149391096261857871020962389394203496387690682373709160410733070909816695379598230043548315138307408206736133503558968071803924369686891690997092130984615468538943503304401352822877685158239638175739693876810579299664140768044742271399082340661434994278417779229707225368024361708605308716762327470315656837696708406267857216877883274997996062536747504654596345525634887178417927901714250904221849918193242927209183713501032602245896427806427820803606667351599372400238095511949092685354550871344429572606997650942814406453224864684732902762984909656112271595463680760969589346669638486165453183226762275115274365224196185127703674819306591376105216105893285383104745191144352018080988306284641572447604433092550994544578873349684190152670608615754025593463739223097432717881389503571270336793522948888244824293720203528120415482498217942389769163652111704000897803774276197846913773894922401950724129314027449026863597804452321382271755630934500781410807501256025693431568695910953992973494963623691553986159608270751172143151373283794366955155975871542445601706334524899051819917890504729607902979282171416261416844094110911072469427739859150992511706892017684248537608291663322341439887360181913582074333451383829070863360978426752198512997676784421524414694588667720346893385159449324600174840966197468173921359533247894078750965610233483625884899540086319665809249041705949868867648019260607723172151664844338780075485894653259411183281451625953239704685950593202996422668919407024330689864697438260251019634215671832739677159120403749919988963240283418534658972622461102271579634138198255167394613160809575213079175679785300003356288117674069731664746577582727865390381664652343859555913934276239122251968275734719585545465611632327377682466916119805876977366415705380871293475018614764140102943081813417902098445166165155067573750694529850501107854100003622088470575488210188487485490486709422576372556641745357552694650169321014070149900135143874016451633528311394272725107257282462995121498330648575950432873052113506961228352052098492510127220252919500194741048374835665273492370638867626938050618948698423263491423713670618624452667558092498219867570965645149997827977911000488066013823273101261941688451929565133533593176540150297254398967804392985946471056811307865779852302946178561751519612701196703542727492853140381753001893175489024036904716632265925250142884988093336950778503101760236633788093895833409675120653990663890719365430740412140433845004008346736461520606806076580428583978244775138346788586057088428319325781142989514614691780359053130287318297417308079206970187671826015357498894744931740289033584085259098776184219760257239048895250454959069456523994403295837521889286102700817377911263085421233328942726900699617296236303873536611452702398921023219744637715303814530492137688905303001082467317767075614076737240227525621807008246992762663375603323058175279170098320466979982360024347471170982241748521690096399793502817466518191742602819685001266132276793428533264330030884903786668111138266476286794510028377311044875332651173725845796825505840984540269950840575030629217345856445628669983584706334878446968130079878722420626348446794139081316238180584301625100346814292391824514523623571037568257007313056171897957634565687420930010476127723304844157462230291956230179227479901662603633454975413779510349880048610473268771167534928375961255858300038593430871208981801822593758367382958484605156634385961879958574394800524776621575205417206200736102742169685744129322304496533422912638200547937729397365150438380210681528705744704110131010963357857246518264776519686015655026365986135910434854710653288883816667040036504803526029183646563906998722278512609433330770319336117239809740854556632169074136106076003547514850357769950146844920572014727733643319161924371850086083935075712321498894697955092678774102013476994086397146171878122089197472115834939039546310458571394634712385923898374863657313047988047682016316402748897715408891981195825646868728917123204473802372278768105040078181728905127171118617003006573534951736064175654006522304495890352758765267362263669015758911573915265591564103310488322896634263265460119929344732601697483464658852913207189748396397812442707713588038579936523796792384192276935085948667417360997696996021963093829884474787266806249273288126333298835733282914289690223156519881467133681865215543135370220182824889297597034888939560335762975053641966072594894616521294247768795701079368368719253634317315846479081649091722879578081000721421717126731245028206707036094033715496721955677059854960665177865505316844521249819849980079944904179286259380996061707411418547690405953187060916507068317296296542161692661531351800768049296566833878055395419065877758155128500888038996676275815095579968887441200447549456953631286856548162930882233310408687190260394729903890612496474462738845762661798087347470538056247779691414836711013818239384744694375743868400281068874086456876644882121878923066261126038670108360542536221841723786407152962689012887501528967502781829835386708932546550413401592566352745727224646606096015159459112448203316311366416867908727464728928349583949744502607343112180604710261163305886932669369483228960562354433517005240516473410498941168517768072543207813135564458075978999890234252887590611354768435534009406496251520780894581154532315114498664633676152481123320031523251115488608144901939164191680832056544040812082643171776714852387983424943170115675502694408669374197147349414631170411639185909974642692484041579126635895458835876670556538659617221781740186105383364382146923135776479788111147245575509464223134938657789704093531647100802309480012890583220505523089838291784434907983602077637700661009447640327644167378700752475380399243836357346900109059401812028447523485136664190076301479227941846144833837131140132619704945889804225909973044321121494553165125841363747166910372242022905558007495413334545765024187036000895501732865779445543911227192633287527885980648901102375601868840576573175505063061493901555189095401201202305273309136712222938719259952315820416479336954485883399529755117130502241696928814510604236712803065696433169051113772311676993072341632217985358475574702850823338170334665099667166085472008396643073900333038590453389394302428880979539245240097524071749326148049938982974253343982692145118043035744597635214137546047852572892846657699579302640480663208125975839785377218697842709679894399544969947721171439293365503235272501006535613840766281037006413078496619870893897272615936355556398225179769832821042882651134563761643479394254483802444532397147147613314595715735789867185160343532418210314214100037971177638023640188420871120338188452109303011324950239862747610846513931437672927784707672921237332035749070245062484647172210592791222432703400842913238925661057151360336779949111973278663614036598233329341411860503058537403120486406801128574552997106641558495368025613308497528824601599210396798916681024511070730049237760770177251018961787941031461344179276985574390340534912484190643955843027265232932115382914898120551963323549932418959130221511299955036088840033847148770267774408405060544129562015516974197806995564455468042370335608884003375401791780316970020840505832091676327946726009402555950400317617736336610717493988546438720588678625049788366257655605618102510979703033605211666793887543028169799886989787188752979704230035015655318841680756879251357852494627557088112738282950014296650977008691695622259362404718960229389694352648540783583854686592826838090369864581939946007629104060510246269378359327526058540463877123152276396969192844480395253978679744742886401654807945656920420184117775741137623817370944119485603924329632325961117325840129103495211444741375896250519890307801014291849583861377475552752142751569435042248948885313807778628468583894701411987852127844023027311970672893723031242529002139536289237165047012638608321659910811436163908098008088014669611319387251076359985731448074214697116747107624550469344464369235410725322272433169469872322175095149965194087629478338531591021025815983870454418513785039285083011215494995451346341968255482963315351395291431157607910386839767402394775771915931447320223736713669832194457883392486308104847391846687460732574161335030010189027486692324323994600466371158997635969045745861908496136860132775005769974770184024727143315019301633757407335588911745784702852524117720574290700410042479945486032802916580035161925860119783788941970180877965670833279420313838218834956856433243419633285826983769203429487488394977128370802658373680208867804652553939408836633863860831587918820843609727269174721697190633723243427195650938961677172806795884115081176489365820511974004666909877916438975499044879014461353035189056526936057438000350695448949084851008003529169256873786918179776299620799402627215671425083635511558676761344521360274618526200858519609598062418153626452885785563608696083630369264690809680322479223715636548633752874590174261629716701719787727412543299652536267258880741226807824926892124121894504636531594203871508392057952186012709367898632082538157368043476595474217551506714341015393329229085791449537520025999391651582809902757204928576780905189675200801636529300745504901702913638720369297366288747477171145271250946641757691729205939239015806727385107500227718685805572985726822608316735363010318011578767381983777387895120523093571289336822148750220193682184341521409735499541993384342128972794425039360495447406911318415822669783835069635423567972165741480507929795446469296236880190802472600018490465779004487299390609930807625998396639573643237137912313997761846520204854232056555629922030576009122100431453222308053676503791310676005661450154250580365592771916529894475682564492559887831466370277005390727414308532636337690972884509834110246114031811555594309382152373456897696198888618944443173236376829793883567039164517009626744891190530160359906994559978989795783647967321285004228369428771954294699572401548305107726340675106210645740821077496423283510622137649159794535627914382226389663558667448815486244407593557313857467734363001239558232104099339036993623973588171297471608052870954911808856679561551763696901941123274522918103943487134492794525173091121900910348853523039741528611531166575376183375802507723198889119930382397533843736879679026362007366902936039588659421077103924111197238014957340303313550344705149790769114236103033018022016774572669748494394877756183725652321160662335824309962280259783986457007889335548499534685917024967318005009848461766300959953301729349576803132397371915608235316654015683683925666794483641846682716887192005096727098963993100037044427781573661054571279922696641157865725110724693965404248856890901942101620041046319196348685870719380675381931354812299012613269937556924986307129498855139164245465450152869152440959328857222568884622916866339587001784543125651165875461917451479770198371240267725782026181368758722206375662467418094733788229499256723343226669263285149051365612837427136695843701425929684809607701106351563040092979310077880980967805125908466286873540980226791286435242391295147818780645374755822513671340658752008312665149457499482536271637555695017252866134172891840745718884676654921275072453506934509793829057308730614954231645654346299036273821364062659475023099583665343210885633935309360844646933079161688801159245773730545392287325525458088906881986670414225099053525079834486997704877633214502463736859541414382251738025468168795658106726778017745437721670503679007987138811521556780097097757278555299083850664819869331235130757044920934537755304190969138056112673934591087490929504668156587259666739498887742972828035857190935845881369728947268314236109770355134720318510519662750704691490249464062577837618915787008228725054695175683597147798255043088009372397991923370605872069443651769707746368752694715545512541750729712765130594330250341351613351347490609455220443693901635256678138598687636073501200312867365826146965952342040034551097739785642034190851596998173867690030877780247009516139446804664020324293255756287057930739163564014686774906727608441636694571164592866825547839324724006790655176387522341088185620769627218471124980601094949400330431902544391514695276647286834159701426918703694483472532636260816416334086038813999718911106653991797072496129703183727173089864015570897031637540498453627229553517353379520826272514582970541669536814825997318917970460648674939556653847716576556462858145809546513206567576558079511407202990876045473197999464983152132997989495317768170077593881965472429012223083646876841976237882779078454086954845608568170557006091101820968324276238574827357135574277759459677590577566045079972633187826549344318374670165609590983334345817847715461335701503714132824421401967090724772412161675599981747687097160336341294150618166896534074602131505454426496492520618443456981180351455942795452139559259095473801834163388351451228070488732903039947881428815650868248148618694095744083140178712104388573766722334240276668839701920381565692515879045842605443381608556638712465694457360800731242292514328759576412889551938368041502528863684567172617254570864179280642104325502576693141172258321406729462095783840306637708668605709551476091717376132205101655066097602049164182300239836082392111382394365259407870427879180442160290439148131951207249274440861427856419960811140546183815828832881763039106079644489327145616728388502367714226987466091106208702405642553384466706975737309844653659683708582786012086458866721024650362705796748801400562322990520826538597598612697623371097353164106714261345452996294625077249208575691383356539838586995336808023397171602013470674767375400978410249657464346941241254649240883794262981945902861427361411801493313835627928535076625966454681683292424156240598306698956994754433957692067018704823928932432223239657825780320983507626419016927819029879773283665184136831810954566967714018380172096771320219508003074647054376017141133007288713692919628487560406424484017469348523291443699138329960821262689025415062436263523039983572765910029202260151138170259977284541199358396454047303229662521636296156566009355431559108201871752949048233771505055042089768200071402581921087421304481987835966004201194021330662016325247211290961894639793464045405218195206657766093862259812794836902086527137290801237636556119703272225221100001130491875923112185802728275403652772014526858676129018716275840546747792353910423824124554754770974165378536542062454760276253498800361802963778700074704366790586119066530872080907142221638702790516607892650245867163113435933579513479595900446678231111863514571388680938136198841833001110472314063526085118919236092273739944878986880367355925505571468077032704289443123638685478597905271319598957648076258175338671915104365313973270828613373350350038018197189470170102832696475169951544480445547888669143760064555298454939998524633485005210031872607174758688373759412222293110184845900759700313943620761386086473570617787224001185252247348903615397091074432133330644925142962933387432645711694263923402186688967838445598575195908570088210811460217540154710672309307705348408407886511019670189890437304211434578299571299795945809448317159725545981920943453586136844947237943546124681727018931493131340705899457021916664364956091689269104467199013524828623378036624764394181142333710532301786184386376927965449241387425434546036232837011266009319395071261045503119884178630502822787887992971515054093828422910403905779260315312756615797004569395957403349113217664874381839205810107860026171426047708991150205415260105986806671605330455876228978598762614625602871181796609986505825987822149251006535602848806717239533948078860857419994120957150105556144637441208281223281473076067745690528707387145954887538486100720793125266636190464867187945495655040976210327480356607124119735598232225345448702292326848409767217963419188849140787140984269202533908083037316186209677316477468720500569625631677128816135657140913634982593601318632954879402606496996926335248381892286414120398680973151874053962495846023589658397583073467810742654916275785672947076749146390775823611872261375946298977738222262051440638681289670830587707788271226980984617142021243875345948039736678012817425069456094353921265794880090364764048825074412487010006293635915502051408121477305562682804277299169298651266041589656599927745530175380441467130260967699436550761334738275072105911883575711818026766423753768506280345561389169739419194067617785528573210544765214274986885728395551759587745218093771207549272127404490021672150620732528716855064636848391407636648600573989628686783718444972395317286564526674164148214945792806973223574363403433953182103937411198969251344032611430488967731769278688357285812654123235352376840301209337419553083663524444302373067565135244050774768313920925838583754150132063620076860112168880018576253391252374602907715890370864242173992077334503783527901985725074066792230769296057603306431427530771792141704228144633577461191127288295577191817851616095571428266490944054534062477934576517131897615640893130659563633273716083996005557527259370706333871114269120552748681150046688901618104037251261984550228239102896290798933639607245608723658240010869486190014473729418105037119057127691423051465860536700437481513954106742836207053080167297342581372436093549286787839971889063550015953618228088364390643809553816656913704701939669742288365884467667359545732680799920725796293312727226870994117357635999312850673052405349350609411365397280946823900001301850409311081879942037118170725627330849719869775360022280557183307981929687485892491697639845413254147090470951987427687505259137012210318723838461328324233069816518403614061693229164601876231188875814466685705809577392069142659658405734345547399294660633087374405997390246506567373145737879032031896309905579552964820162521063165271295036326529615048274329725919778088377827285279764563443061834580988960700018260992108842128546712943782834045554027167347500397687737408107336385549179450188810682141342089036294939622644367956648222498849147393044712050628591264803808867954838456800995342617422380913273043933521535935134122159871193534271401807639770084857604212232897056036569384302920063606554682646619062961203846723915766161719134493951466329105682232314754595928264177631276235698020786223504755815959765383113285316368866321964265335488345540155616439538211520025780392225598454169099589593782620438342757796036894458303273749349499643084233292641119572174888903086302108699388435148306470060067815173204485885764203380980329972560389242863132259624949525153712750974743580663736445790780338941448848346898307184690947257449380414715898889825072900987217802950317767922309512052969565866400546645833234482396519526510579168050858572166706498669412826712466278020365367670627599765493578172838836684175328449178769147254406307414221718710533494683905816918013328070462615514413230019707652511202597133660520035445111614456872712447396632168435693899263676128629930530680416280391310552253488157320930656424968548849470802032673247021172517479010231116404504647251032823343492583417517608523385591893084794912573938172366037511694214291669869521923061651886565171639468949149987240854000136385452605255306324968896037712880317971388046324648648249210915271146778054202865456525147172965847744402260246821361357266933145485306496185361249592990374425141894988530324963708702854967921851026546824840590632444543809035770687671154541722072831259858025248059144543171839785081113374196494877081486140680608598541119048781329990955086681618761309720970905060394698552971310262512205331074277681524755121291745877103028122899271309382965630015089899916212620333753979331808253062899255812099111602542422846890652563852597803168130499220484263713146994461095285560026234990960048298602497259675396675211614189217577190615156036299196486137298822045694300752939128231475771257027978645095217600296703381369201937072820542283954244972351889177821422855091132831060273831626249718603653954051300058145873857280200592953277967348550001974852386615550139861233173719858380493607210414118352003674007433157042250055974379224846684510028168432060312590102854516961858343584328736923596634974345084863098349329244699406590441513760242999513598537603332916848030972009923963463873517802580631128976131269773532209623008672668507093796592692792907398332694761632509468456980791505603869807950631986783443430512364121734200466906023679354330321393771572649547636176631901344714721757885169784151916562516777347580379000919194954204116727677701683003368181726506546314957473138946795841052890224883061675647131032023715965358571365220282815383034826601687582239720676907392851189488475729576135303713893751279762475400447338070721034706413442366079206849655349495344546664271685196722205482371450003767660932449754867184195069053047315630902873617519844134464823810556198563201520965332191042623552420504444680217490607728124694952990580573285571602732196512610614566423981826603350477727006872866106138751695541930820178501173324442302154491472244388820974364506327930989706760445340453987246943517403987758742467452145570236819671675926089732604361386761769168029042677574278045490485800456470963153477872848129173580960662166917137492833670825843504284576647610370703190783091688381375123821649123380844998246169221044824026039273472078457978671499007257266098885142860590571965610137480687017193833318656519274869325538790195897091254697175395035773613573599945882313205158086533598810343720682902668759209150765013093214140935661656370725130396836014338112238918107343512296109299162906808508039928713072032921839953923479660736415254349333553298293321174356621683376292415576566670184625401068768780519541278981615759226416454266122965022889924539947136466247883116177263691870712583464477683147790297545058555401484468017763345759494363955060209831406320893897888262833323768632506723706132392026512736281745097113564031340300572122981851878864861703407430575815176814116893313920604892654571022555230821411584273585543083982992200166804064420566591990216763987562091701448401458609436383610636272867323727774299931256768841229882479867381514509987087736638608164675411431172777353240542496365711213390033240172988224685918092911814038347876006118820150602562316642675154922013212930254310761940430327714982308030776775623039942320176930573173241998394341487018075799692326326659390909751546313701868340416051294849867141824078778224977055828703929879860211240296770000967170792675481129603043569519352887457424048023387349070176272219724980896457025755126041495012708051701409330742811556452342424136536846032436950448158733469585656302283728557022226137324051796807693598212865045373255898850356077887651372671547732384547128171930813775005065300735105829487368926549650632611130973403203114210798636906246786988025308734365522503199575628263605841551246625381289378359454857241787834621177253113972390339403723207944365107333160194081967715351547211854965292761074225363679813819440836230394530829969256358998714710510664475682909737880712057034314055994762389119863364012169445966123443942989040769092921190090986920124508365360355347296347490970757702573152059445085232857088757715669347717186007737338544853307324948255356692288116549030138984216028747529128234160996890528296024824434284127529548670136067970123761330848762167138316989869937097362324308951304504986805179313788790694338102815089428360065129874596712257081215412645886836502027040525012116335901766847633609886917261059820933499208758962173042101952353998431292422447597295550746902120083696232980012508496739898324731497875859778176183635506105019423558250016380508103344433106782055157286305489960046379443087735571297417008982005467984137294764165968301410955226315536064044557206625287430615740847922899794354383162168171924920762501403580275974199193146891808102063244190154161285647374998579543512694238509759152921859549847836075728552981340705689015975483271217704052210778034018894991127241414896957997853294913792694493234872429296251524402328310682304841732634750282198815376323792821016807590066358071363799710042424347165090775685929448318220961111608314134450235830854317465981510072369152673522109320261213339636892668741145754670366037426103956633326618923427901378242853174524445882988355809669097208361502275123398514135838336388164863581739746728035455907634457359768906382953285749707565903185893503396205458007877704141505388572789044372757430697649553060285838620425431975704180651390570661896504466005619331877580453521678730336220338655053014948720577651599498740323778211211275317637949532689149807504416027035827754848488860432513428417445876707794456877784464099523214187088058046704655610804396589127832108096427833869673138844303418188117960669043825000873527696222818646930773971055317550865491882014501019537202206989912275332351866271966943168381375873616473630735859017602843481437191215698495028647406621961269723225968016159199320877126193215821573829945645158210547183619383146886307428571625398178601005905217729813731111125183320406920101651387838034782925864729894873110734608418678735317411683524125616479448622736189646039488365622211952646550952278952868305357490583988901086565243450933641018508741150537955797328015669300826701797264878795457943248303896298901085311861467332207943981126720547374175839043912381616957770393684958482143065963268585010215084335280477644050558898730300727131606606318633017720648682748486483666535813114244847374933975772409045218333170198315020578738246096192322480852637269917816279862185793919277970968653631816857777672159400641499176238070539328801953199634941480409531383140720648768536163345840543118840770169021666196940848549927090884057842110474153966528125602455215752847351131140489564845494426703218109121535524972390302906830180865763038960945433242546623790937657910818885057751585170922303890094418419907635074725625395523492489183997341724429005924572881555342777970222084551131235957949760088511961353460610227660683178505769093195556980413194453798310002894349313845128294756878661341959866967874497877601322806774732716897472130695397559754170558233731782506692583363276017595876975280963373360539623241904368612429246927776038627877620682694890039874274346705638701661406959858420210368862542601285867019085697120149449322185103681518599870420858475266832932664581804837702139021465966812621219193483078369745155784751021429134401516661850078107791773126197041271655472305145944862246600482713267440724864564951321651788246303584151817421132970636209058229572686373906650039619514953192434709727930465803027643630274548507935143621820989569706108918971771041221409707901255689401093443337092496478894195564413669933449425898109123620332171880124458400138180832524607767994810248088658672676442929142217645600204043233902895699498635004499532172533313709345416432076246670948586159513617126995511001735235126519346531885816883039366545002584937653888869511989833513812983407421126833522279547517644781443150229020257021888274500120990626946950974801576685246959171723005062808548975536586155968361474247720512095085881349358775107057874745449979029397032819616175834992865875334839718887446193009116171799156175946936090408140307004098109252327474819637537965969191933294389595877796165657242340291987993622528761194592444684324609709742361124311306287929033536670378805299377861387231233085806698636088535893861539725361300465860387238150452997284759855671383349972694289813463732658896100915798926878941202537772791323211962458015191734955567076453415023631245432755842851980146941440700321545010449898151631520160406121534150136399057990374096336075575259125172350121863274286028925203109732647073299321118200393400324380663106747855488107118591547254707186726564433572081301746183515836958591472504752345857682093506614501423230684916092552361233819089199411939108089447896754784515640551265942439754625561345563490797888247994481585977869761073755899797095223592800075075325213049859306432101425170056869561900416306939854479068543235396287888922707623249078657540785733786952858763619347187202445143597316385762379611455565296701883061623286657951540525478931310046837455644745209231846385647577097695950222795533139833928836182426046133845467047233418110921705464036036509062772547101834709306223146586142784082590733217015361265522171049607239107586163399420709311055168953267255234976050867899759118065327984033232014208917315638002853503134374064060719985355135146373849487825685374074305788049896085984059678354570984296175752651488380374908010926618783547366887747195017991967859738351908603604479188324347108285363957803883502795389181927040616402108027767341729266177016580708805198685847723165233121421643775829244459488058984804662405613564674749817253126594547745827151686239974589027436540567692814199018844918793871274169362161882121065257644028724402355356478438878640022149223399078885815489305460042922811026985480117189448113763302941906236717883805312607259385162231039378653080164765785757355164214271818612717869610051466382428555100460265823699252737631582850820557875046376095101058676183495424120798473040983241544088750129267052231448130971536609818170675499522380467508155301356563222732613016016896447194989622521289849970013594457620911359967495588932577002476942643892203421024129889635460178873683004769140006036217685887215755074636803979449159951437200363089342348248088982911390683117534244213293497314805664660993763623673218306235426147582717130269300691259764227086080057582968770480578155159959127250527601013008247997828890500338016207585580286562667158913119344335562881694948087542320787522876244413550415414404942683694150455598901945411272871110778002406917661955215363474629229543965629086422513761195390955197370929167655016393271526359017962904567168922166392555644024914023470289302589547729746016150798240547098126063131910710945136826153915561862332089210142134153352772661207691838165091592159902516820725539763781716855411037519140673595725430542116914198628833177402162132039402764406411072753719555322214562512086370281785276801530444833410847315679669640815162204278095193188925525465259218509309987279888310960360411509728293737317524987032063545992857728774660752667146621263798164608630339839745880361590179621514113156044071822482698321136773626389656701496580885580268852696617275944555995481528661372795990822765570656745003734696094047224283888886430557224847474014905017857582064118393624744207478299014080421877210102554881699565126965850787314116946649126768689308477463020170680120330598163838349501246175332776408160023220279999988423455502451773150196547414245167693917048490698868391149989717411538758402851190446790206762141211349690353240741869852340502909885535323064622189887791627629956583481705318904725544722992748653806283088406448801108440975095162429137794127729490554296349136926635434475020623473155347628509604586398079150061068305174977849835579778754137407109066604034764933311759924066390396893274667332132885599515932209882490636090743561920608623388287437772827787483903478627031601765616880425540107815563310493440207347452710361759637013569320457929301529895704472192954783371418069777069352279664697174485610450471222723362035171920606527232268285890258470203508882105893588489382868679136193020006022754212890930007075642070014304609769242909967027030175419511299428435680732771285774248728487085797758766032681623489637587089109475491106317606132832991453922549299454895096623145574528456901452421565246885483544905668210028820982891162632718843594574688677391724476916211534441203978031657024924758106453240480634930904747370827175427090504540840870499910130204299933713815060154167840960155512361845550806335924136866278669555429248266584431218409925546945524201567879902806019687723777633967760212909885907092498777422621564099741619386882386623411078975473023267534633934785361062641325089618924703942218976571864473908411044189515926140619431831777862194761257539548986079563711485854009967569553647776770857875380976272700660397478155921438553640800385327517002761735365192841358585793475945919783788153569653603974434131497011604996731099373394893468548400190444221320984349743530969445221443502649643610917576454047950433934313630280738397535623091989005097569729464432155757951981888498937525877232313355458723504650204405210962996344202570986736470227333962646768809428024573530330845014164420628786063964195596633681260217922558934168957003478881301342574948350853556573779429324427581185337616335438980138939860291550284561373434858247054678255676505362985265325133380126218730532455607999235804533458686923464647300001355495051936901269498203416894206416806118094310125115651396708407747157591379251837966635136815342724071954784158587086657547957104675434377733974035963266754048081927763566927678038450137624081431288356167100864821641639867933827130394270562242879007114365067199072800429664536629055480462338005169242251139837835881757661815997652801940420998147414100911509361881127475162582169618591910922079693319545874818621600393667571752020238783016948586559795970556530707025068710633730990788065988991484678442112871498234014407100711653222689369445274184841142206702911727974809704211967295110579558274757281153678656982975146656471923462965115145327149989894294547829905428060709280697551376667004158954235733683067055249892586916790626297451313419849494814763528001238548765636032887927070725975918813864635313118695593194299033199103904517221725175526524641641778136390429654646433306764304565455985172228326645540069350889655142584684010660629859142327515383040122207651042891310214708956490218193609267598137094380683148624986735083944093602832941987091855068486307634242857226962432797326146897221050386129776304727238256379129807512181065860231942975766149513569923796810366814937290642500262434141277812571572539859677217224343428837437598243199115694434973877666932731926329554310374115863837837996646418256906694901686551380932805322753275140055226716733727356183120916888393852351656730803965305721084548125766985498722106408237992573397335904039251974853563717199103297825608467619496469546786781457829095076816255822838732115922692631607494254920486563280096832940140505120861249723250633699125464976492353420438585229516435696094016315684751702603126086170061929983816229175181681557524727477427386455385875507471104100429016930639689632560840005852428962777745406248424099359027483478057139111091533297281930025921155985446922332075661132911111131968653535453681723635352463002489724363382225508013712504179068457817852525265119668284487477531211513310610995622602284494864350396488786771418568140614003263930362322742972358066575986384893201179366007402089516202156122457787456316794667721372615845883607250223622179548853921015903194299040736540367643375790665872664185916158067655120199230922051751673621333376517625677074825783265079691212264074273060115924831183781982332014890634472894688017606234065042852453713325583748237856760757913884102540770003101643315291737763938737189921146307181003495979345036280174877763650815923744225615203771649215098075412978236160245526634531379883273201000797475797213037658864564082625763129707557346934839061136714714888952371975659152738854809100405386249566337493329388184743068682458067500422021124452143581710979877061201588799621223240448259649162989195609839344355800967250999996624026051605999884906035317423448470622377392028893504441841432437156286454998366800051303841982680428407447672565621929223029788013039145244755192762742694002249488471761026023746794126901901239466403529009315523881670667340266153074573925107038627188010846759189370137815570879345905308151575190297575721841115080733768152254308826468923609383803428748537992872477478896681237657959202593020002271430685554084418642794282306192170844675178354214884248824612050846922378425595789524738969724476187449803825255537357964855906560059301838544411317012304313478142936286685168566205330715675774335236338444715784239870846097249303524176018551173023988069815091348639078853691444273401279540801256661242410375347729788472249575552810409774744368547875511320833969966241307753416390038025851102078764534941164207738722143718142583912975992792872387099247735566700424324595858830764732297001861816172928271897409115988877905291580535622578520995794262746228310603314219961002780506419376184996721638187935638872570089952584622862207862280581245593820212263258419918253187149589340401028254884012531928337553388571317415664111848847875974078480446597610132438113891444473335519450235675226613694360479899933395665127974191971645982914330734665030378943274924516692631111696834548653195165054090829666575974941765770739343341685849398589216643633563749026979244296081824803573703513921446755802460092706736774299460660729221681292719294338267922421160322458344026105606038835463576447849491196471041512178564472619414938186241614730931589310886118966906780371509720136796090811582035457315449701334643124118216325023098795253530787801561299997098150664034438666389831430189541050148462331040892134262070342492356008885444313701965180368276896346333060657938697476854313142859087262596371149724766962614538773549065703796225963407080825343466064085968448194367047865084250554804928440800722092025193532990150827976353016003279811379001495757958330055459942134800612464723677304013785261370380657333469753646152543183354911103099564906703780108365142956302337614215085080820733086187695596524369513566854063826701073491751023988498631102151233209969695001913499434873794337157681990048801918607160223096178805284942717323466062129842552205604615354337010878535994360104837789470549635819053491577261019339422686857473386024257403425832662171834679079966611858722278806070434406179846338253663033693923968575754325721347285510772661863324788731205716292095773321543834069327250167616505811045899209537909851936477099137343773560275653207767468077258818326200824379679487126878039613528100157018761387018114875803554681905739989603394074424919802482431834675061102249739992415086553010899480723237805871390790137570430084907797829759273548706181195886084871955614546493228010417345265682953158404630964472073039774365742649991614946892286521365014662009683404282811013678163217254465713813132384722170045468313204869038310501894384300933162556646450727504399012690506013312063731633776118773074216212581379364674235033544653437887422883764681494956481119813611895336271700810377278757908094231086252512134424123690800986017839773237326736668218610888125824619194401643725607427568949320714673369140078630671416739158715737040099684871605066979146299182442079742190984389754599142400536769048846937041442008469420417502125869522861358364672540304938283636175578230535411259125909400948909809997955779608145867567340060459335578977873066526835384005283682437382054047406409599141038356807429143026874157513990970361204842602797377318598792204553468761353818975061109798218326445075899811904044137033265892523060109866905452472957248131257227758910627692110538868950440271710420481571034066927152102550086586694625503646017674238207779775295367992116957034722640263799752498800676211815260036006422516414331027969993698567486939420073184671830248375001409737040827047406294833171599378208212719371989380216174298903811969093505800292514369059480557184384423489291245256826722740414862262049020962945519509922173488997600002634802433274587416885737895901608066376413690415901951181814167427767565074705498657953232535810641921071984953508552733449214634818918790277620553427939428120026173373421595507924621397940433395761914375868490369896148202184113901451129658393516177434207086166910308569657605298198685974227404590898125056264195561791297045316949329113262446113013821242350481568714922822340742550423198066367639149510389055062775750445154515156243405681669876630928942879769314709729932909142947537100747706769995853490492345895712284362346847032702511959370639743602907681689705677700402099888640898402913593192096138255500508482966517323245556194841191959732771455610994585784523944038172058767059101010074174535474670131849083594290883170697558200200199897573314909542232607715580287392346204894921575992248681058646106926663884131199882890173615351438743283134279960574167718444864579991937522754171792675208197654848531252738452358247633675734437828528883080464505696824167525892571577797894141238353068001548091431485144276193380607389987541337793885466109563552923397460391880655460017837515003835078260576241164595242308657075779215581882256264491083415912410573064439312784234404132649041278432034759020677915200925041178600140698659822867205474504144089110024446475661565450395176909383826741800370288085225731611727412909974104337694192233092611181483505469131162369551939689224978218912491855456977330529183100170321814108431011944003978648838372313015920920489839399238961322003998341158263965778337697203095469381357701879069839363810560116418594511557114518859378707132433114184260411102590459967306725884104916669002256696359889702820716449729318530261083009402224356258067218759619994765659858287024153180251970532156364652062920596636525888134689899376008242787023111704257926573235901775105352625573520325717690012158253002893184768903159314981041526762290949891080512329407224637670067960200554447619918801113780209008929356875504002923148864492749299747476608315418101704581867159139457156335518108206651913569239336668582096536166342975018064038163419517781896735320589015210931981377343509229871173392501205924920106350797119760872608938779445939922478075227934879641130046195475348763999184488827096605047980874181045798834229050707905151019562708215930116271383783533389001600078398072458014828949654180159602549072091540900212769816734267987784316930087714930726673243768910303383967407266701277028660605266805212629259674977866080676831123686728457283348770596036026963506103966525056565617763967093177300178833814160101347853371748865150297214190124376255285896824380597275791572082694012686837512630461308704644956443940736370842379115854501060838053479401936805799149949331583219583925800283739564362622140123420034016879407111529787404850375200164961002906706842222994616873571423699824276226334578760725702407385228442632928199279452598791565162432388497991044882045173965120415841341290190979135213071908802993497195833246734065698896708811770044490638023932501675449342365343058727113078273908540048788292954285426437967824549790950834333018466602466618524262309269975304458884512800194973280582187653854735322430382726085385257947299911483399958568307603174472863608556072361834049170099431029348221445727548298996310779796492295870949098632511807330902461297751090635599185018452362009879239081430737858826863226482688900942265364464009356620083956885033201251170255427223109177938778628705437455706840383227538527753416314601426296593755405005642820206912946936455878812347146731452259463260570669353169001521333797290516264050772294350286075121122955489425397480683318627987489902267229896783499330913866468388766044334419821601639484679782989359732683233701461298988475235871975774692205757369781413316819941664063763650427286490988546490631171847296742257220640422838786204113373945385443353265374845595552229853547008054343896284424932876567553868559909752290350742918386080153273776758321116420021896935153674987712264984541387114949839938488278913232813038114229427679297202717864088711529545550557026934412143654301372168523984761765360711013013919485939092059357425354062757235872211050430387678556972445097569372668538085922356146148374727060366497247667416186075651861796495912222933709006528495048941745555771383417653008857916537952412884341354275786155066673619501085519279027009299076513846164538995244585349422006583264300981315454353956540651988338224893832299063907622098535514502014531570895219367717290688941405694641976456254993344842029992961444666611620928676492525588234903119504918838271043034065818910989209476042863653369004351168717802073669197256911500347375816092681649733202486350104563168411296015244177729171433500675540902648909582211626426744768444108932246827391328297986438398490831721831259718562297377263493257880862885397323563510030214293527491719332459348377123526701277626622078624482666699635769188359867816294113845471211437973836017973745052949425418085546336919376867947522590872197385903295555092913426773952630824687966084994386494916014037377050556364029891748120112953949241380660070855036243576556729424947788001329024643621487161176586755228631627234581780240640035369624337357038028944725454376595483653566974766894755778723444669902920291298831678243911688516717743949302794666472664549421396344170201013436992272523866787651791880228849806238100181168252212331312601779381526358358594798742138386374612854501421062520926415439165237897637406215867168566456862185995852033306885446980932133423532906826688181707782572474347989960477760357829488917065713868870010256672232499985325484300583586874944977869731169329531013015062661595963745089837479790330391158442464769785090094132424654005702156943869627233258917681889733050202633078610701793857446275665523228058919268499953256645940221996681497918824921973813405801603483327333488681282926245932231021358313560328700127410011206628850096360898213436730727370784333328465376345274175096411473232351870001722337450316400027190009255705292147370555014414870479882084039492681323688612766133568984354683921703830287360045513869579834024014055702176105182978942505089728627702667062579727276258694956893922377754032456479732050205902372121155015676353100750125292823922170275798167304831396392053717433327969965587646750465165014879584106873941695154228927814578771127918398814344871109156034632046045509029407203507325307874366555427316602468915906870808771181884413633748330700855664963948277263317347982176470210025493838005329333558565527492634809610899925917952407712809360680646661134694615563964563838904528183863930069968313972989029749838958463001938324817909355869771977925297906619036782368540568864793043496823466234689414417577627007233932451672294885014439643836029475846726660259036577092711319408517630698297529219505709896723884916842543941479240705631281230728981032380988367975316031645388712610777354390208575983669107119175710326295173282814525505370554105566137303445727178873682762003358371340648314841008038515777101400027200978397414080922433694077565833874819863051881248918651917180874361312777143984919873448500025007350348119967538046290226467154591322886407464210431839529121773942791054206734768376826757039259187391972819972663053593123347054545124354281825974878735037505928371322700919876655018421171884097652414102076564023386230749226229919286658149508598767857170214087096208614617778231523088521551817279863476088299734465204572072475102388607113190316295504636021029731003340434864713946102436065296746715021478445913021883247591225910979543676210219694791753694376594469398350653855619445143381009692346063229817993202947998636726363595949419305322117752255609486945908049937335329114387001132189877617718619218103942348017121738397258387127941938341341641387286559983796178626591037604405299045655802713392492328698746367654083976766254305714046414957456721404212605564369884823531038086935091394819381915995957409898164190656523323393850077043616121565709655821666292849659314064391179313817402870898100073470399176781496065478437527721966773137075155025537163738407833443745627755656062922821612205533612871201263325405374995142790773069208498804023954437387604900784866218485499972971022883036597769704457651016680720276161691061573055948698682531199290455281124679731342363030496167699274455342766904803312662243493296685741392744904915438517208825701811993095144882281905074612669368194336877965614062404342945321102428711816566666554964463294264274575463208957252219195764574914088903496852493674962361308905241770757518784198413281472179777005454288905195426709070135037957119709781795853998224211436564171085953313346305141468012941118650372031862139383286461664766236498748170718676661343181887288306840408372638431395296647830628512480202791835878276864348917340780597938156941094803931388641715215411963514970465159407286657781627989895285733858698764238909656284653110955092386641968931305140278796810762754472866375518888953625239645770549533626985100515214281748364770652003905595055561978583388015834612763064064982598196773536598008487987944591979112869502396654991706288592078120177413050573941635888023913434522021453940929527234785781522474824636371737921242782175640519411035386006148459015008194779599718881352175269966325495745443207659382994052246672306688029904598279740395583391571192991617522149036546202647381022336101704758773836386604071854807063762638610303953596884242705756048096181863628524566216731652065332361620984446434644562682486433604198762285283788155351091770976266811851069615930345569898951970955047152448016040124391786684949619791935215930194438373306960296640557655473148237482242214772780800407195980814230403774639246465797313635547374983616072439268069806369808695214127494953505895425130981007250215345425986772016248356474201913519581468346403869763633175147065638229298164297811868705289317007642944741164741642739631883884079388129194398494732643825082903230981165185729388693846924831744901719080767616010568083116626342196338337743336852661086734799611574170080469976267053432244953949047760573473120690225589558733125506556395689295971478590822910352686106938305114371365827174135082009023514864662502943348364988827258959176658689636164787521265269778381734456275453979082551533908810011432363309622059983551538960622403640410515619021026370569948694096861978154327952114901649464829673058283568284210969083389295665973016419662657906090829561701868069689732928305760596264228877906986338274499117732159711310799287623792936980567617983887997777369461018216850714088892660374770960424196023481394732955573245201975319850261930541111733274719751596891561280911798414364010837404795948595366133231878135183494108330444204356876781265746587386776160480431992312065763838279464563207489516359490779838857967669288390914655583620908384147611403053241453511831694428306070311446981296127354620032243473216866248481060934921062240578108391644471141764485375196207038173040863148782827950635784392399003297283995042471560142337819581817287073527097534909406926075122743257541687150948672166037873483608229555491074040321026456101073961728876870485940959312397973710561897045410009646350965657617702199857434775983604989691358073060631193660640389084383364201181895698165860479389683818811959094831723765050196910506677628376782333259614214283908579969214479603213995927449137304142927523310519027936235582623364278638525319561851042076396146503790256118537284540111041983188540748381666812776917655761400624796853883026793573484764322712028576129401452234155119962211096021673205825245696219553079264724679142271831377433873065704413621562062193610207283532029852884267171716361987752271077431626363426984156580201370499017920205529871001432179909219280750997079158651951938003141524416572364745296222939318177008270129438572042341207945810516678257015200038463707412546713093381635607435020527406380743911129197076438373457929909525571662787098213046200426021750604677350952741702745027287650449558472320915785497078149269263894814789643735255873590735429994016163941842749264645544273960891296506597571588680284909522741289195760381847748518215356970953859863011093648731039586492025571535071341100739310925261840861166888453157932828044930261631920895899298725882647506525687702929377047201101839947416379815356737504135548993897796371785736688858738442129058104396335802973494948797297395853640520764046468438687484141384378885992918547659648630724555695978760662160276546161178190640494396976877142632398467197077421603553925670541655272356689697585517597454588748851128677221061696521683047529248358604991853455312974028530537607156756017751908455631721745883089973641387482302059870365240770568820356170948430660376752816465243239115192193086045448801523761718014128441733728141409015371998220116508696930504840150138121816317870343191488803800915907391449526858441317003129330191282742694477614563506092251667034624844178511403665383645548195299926901154665567981111248092467601719380331360462455920936458009299800116051311169424525466416913861970358376595054202312135177348927610387043726828160835884955235499604058275429742417283244006269811319635436013142848025645339056157088874548154366466065969929279895616798142481997848013017525416424732936027044054273316969324045536658199167896023078874116090099644081123227049798999450531164827091155059660973651277787111879823760449662981061585227349966665142626850093983068648203997436174921605738613672669774117129169450304814475234061889543021376316921915548340059654552903866441402110924364928392166747414574929088329810591763588273498340435418250508826313380495955037863043523912389708387997093129495928336217955968472259288067173510065284037156738309589383780924655772679141442557433462187863634337832615103493934903752057803567165203343435351124059363924511576604776133373407087258998640307783747681786419471608075231181597384440855934610085166817945206707695276676213747335144410170768694627057727758942643367263779989993047050257924437196094835096894496341508052826280511150049208564545413057065061778788066162587682576443157431283501567458919041214460115849258706181390561873004745428742723015108198033893591311743755767247756430774967165104150100969485643488106235387011317340739671877761251663006693614590186316875694446265505652823799266972042760875128298111752865397676676925959524649749860370453286026855136186987475523494936794882295079766370476160483105169993512546348023472693887214207513292684984278751619684888348217298882966689542716834753177668178989462489040795752540061653157864623821303641812603156520410917291457932021491122109285297347556659283812225080792406327181244314183934249965259486350430984847232931147358472164876025195828114799888931829987603481990043944473139727233442055802360029109851819828808410952265788281516093828760390177356172171547826115989651145927933743115873191355510835998844756626973187668566531736717204116449147686843202915864309951466260536558719662387125889841712484411275712820540830846230961710647800525739465357229388013013980846192204795153548786409576175245984072398164058473830324091569327953683064030804971717852653758820849790448496497960874223968482202734973342726735552253840074144795314585670447893187598185018083303811052086347197372832927478341993078398022539899363658949795872028678076152540816031870577336189314539727212054443478905121585277839198009776317400492457702633741896229571571342205199364988937350281713131224000300444612208281334451825834337174761201579837475977508756301116504790623755418989499813700254378531322271317283628256956604516584948000878222215648565600974187615793215007545457205529222385812548786126828096176294341193468058108286337986601006471726183306411705525775872231023621213161231392941515124802680395160972939718412074803287942186056903934415395377329816059618228592167164148063452133322277373457639669552301131382516072928409911172398876352805281421380626005321569999390037635641738573449735812495566397576528750509698988517663713061362561352887948670474818619981670087032783695829892305246020877301093486079444598827435985279609972095324266043691094291417827853355873210239217678962629646667579127529113731390677014816874477713652754591569456376232034165891081780993802425219448906257145480466924107154572230837608246896457216696259095659223384624633370838519046979396354933293446944854724842773708647365562026308661447871222666279733112109626153592455874994107158091991039102195320165522411503007764857970987854874512008696100011317767198471081973078151321135255171606268737467352375956140367360084500927617233425473222984870026885773913106818594101413582894388994006047543787530688025911517548361163774676331191634278379890357972239731614753268912114950265620745123297734128323979215127303003555459194739316542591043712003278566057064459990214777360244673739240828633613509397871123902854863194485314505725658446246126093506520068497437779465894671716151127247330977207259968903973322394708284319760484553872481411580374023949372580801067058065580077880175208893666419673245988334348073669822234108132341087365696564453410020404816753295678069779425239344157048536814819919396004261975238148227818742892082427682409964372197784081194396825456272367564303643249654207621973426859477297631183199033849611330804597901685599570892066057303883583039133377564085783546303786227508345588846071144547954095817215208133725649506485717960528645686483860419292147427038553878159989665733861759436074858304956454712215932482451910933549728295409876683315892050006256446932492489222517830304011377811252095803218662402060750823575191975488185483116685986666179562065700889209620792172720009540107853586872744976287589655463649819549339176744401349505560564190132209749491943553192315249613779486821344766711391260544543829603369355169699351351105114405954528791020791094555790296696554321528745142693695720861782189555665649923208119109286029736960576610059157193579285604321492196004516660496702967130015978629152015380418706643640060364228932201056742840123895199288146516655001509475626844868225704847742927992379486726659299462938892576413260199306156760507725725293511432380849292151734449671550629441755983405861128738772653100440310881993032150331818015307173523751000071349879725243895104734695851799681074862627812583193300165275608772469791412855290474821676723683787253159631600282117088178640631880167886159009569835898138866242972777622657581729986594325653172322676428788538568810144610031770523121733409225367913637183136171006174515629470032443149972698940057730444207909547738681162618501791751521164604530734628354821558240896032332987587544248529617985969918776495922553036431221016388032392141329488419080675905852555270106828361889721093496724586021804596073897950948298234244405132828656707726908097406832468583799856077770365705853469063562995298381446706790772398805519168296534639204584395449608246451625989674011210068258802069227317876104149427381505604323587286530771332903156909699709982175456736154103618687436262427823754769140640218141403056564588009187297140676412141376244669291691360151159721289197389295082633897627941647303555363112928547986809909086139567146883279414535465246776894770029265499269655311825541928834590253813164481932086527713851416164205058271260141400389717500691039549054612008426775487274171595704379910277224792335271270522946119317986397548187620895426469508946186175038260673716806242178712582267257811940612983232427041347058958740887360901280872868934930906332926613568702976286408544429396646861060501516298210992915960559700021383275124092336254217308879432827359769434276801348407981344247256502283287157137237790487637845207431335765134034644728651368827793917097249623194441441431836375987966477973193414362993803411460411423139871908995394859315467160897003925683244931618062244056023598025449243883292947324190277338667152503133702881590545431989001911369538102409403697996818591914261499143130382487570193849327177124126850388890355055928269165743049747144624911568475605685972184475068952777247435683014103777444146783174147780873895465811860245080037609568828627602896321657524519566345047756697743744450292135926951426440301712418612798827967348514855748797238824652287820881084140452546268404634626540485499903430056455081312846708158796398368798280290300480111173480065486562551213768817556259394383014422234855804126367725893091433183332778980741356972580005576903035153902140458502882940487775829419051442460339368343134233522357990015123850373177015396398842699752363895858755524889334575469657825030906755424164789235420301873596722759186951314411110809559808504022033558807716314377670405371265142795770171436320417118829236882950681295130400274647305104900321203937189464045044037995003746536623835291466313882615103600526340567678374495265242141902897039287693236703764167701761632039745850493056136542950456460182102884313587545571673137616456287367288307609211193976262291770216215094759686752343638248432695106157665354650873136489786600884324738999110258889080886926819690773813984156462832118568774782695794006913101114712234455619177379622981568793913425017320145917446643359631424636954979706995892702735321246102662249461716619666316938978297612964182805883165985797067975683170247012239227790006849856506177070479970293597526462620767460318992688817164783067334631902333185702605531260505846494740010581878185110928807098747822006329350264057288176880414714052406166828325141642073009088216265583256411197885393902555145423904032140304696662765098899355647329843680344371576268939612102150710638745277559225614346481773261706828492022082251400314585350935404021653381482486223592572437355236701099757960869503460155887611878205439856481848476756013483704741058859842526790663008814079266932281385472056595329077292841663615543920063448263252175058378692480451564469808698338312784967889972998874420466020366694680047682354286836432962405886890993838835259563871807628211960039315401903800747980271530933127783487496672535282764371116237552371106723347299262480351495907527349057173284712844220801113457622611776028906177890725090709896226667371138506457173062709551454215556243784344011868066616038164118688146133398574330958946825014675368613546373835040707137862461513126870815965867743153024918369664179816057073155669310995417602298844944932782367566293080016169408719253727323790096043062555261514199077220692967310545166649481781837485765456209043342586700785730350789948804707085487263567051871247102291306828067104916563413871844138201731325876690674291129858350769498071342032556398362092358378695593982549814039410028136621268542894691371805965470919206593668801422106495635178439025471851303407320397849764623974009950481894389146486851418326766535835180367852904562989840022066204761030815118683232087021852001392063930038383733558005252242121548008377062869375877485275403823815601729935237697893589287000564539972404761663512136537930718831560941384136717505772435815442676545550717068913305376917934332485819681357942437743307074195938507207858792385416414008328939669126990921403929752567769080434915318814747964229342924478791598358954375200063705302004395382571366929043109511043457073433033045963106716396639866658873900615548548290559473574871693959087505258213946266803032070523959152599230121097953798577177758868673948926475774846098598388512573654967440495210079781208949536112675541628486353716936347416442174240240175802761379280293973976399198582915962596199082778393282311303148897634277480801386407107246111571386112171639250820177137939383092945771342690416231672956042431025485234633469295847535449590316703080613047020673870406708671282535901858640492941651140723725324052399893440625518618348509891378830522051345733747532320666285746475010416149341238665164707624951596813786413818149025206469501637046755028913014999672109784883402127688419063447415069887077849141043345080201787543128946688647161822187465495377724922414260202014812414050225124951932415335806089560131751412102456099820891022161765018154599489164266667277967002379537877422862081736599020819715628991540177583128726050125812657589457902122680926547819733967197604049768302946568302640817288294994758844889969079938162613988747183500902519512540955593633896208436669844084187185903906061494564233446722694688670193614307646391710290550385660918871516106585752195668400605176069872043976486931827288444279820657325885365749787465353800580676635464564377483025817834458366830051369787950465101853753520637792619896741629120402485692182457010629816505169127813004687169135057410348889646439078812905115319127397107149188441099078751972303816453088994694716798347888994019918785261686880605554168724550993148354599124710505122213034362281639540287754713266699965766558895178279817736793670569776164493225634484836046435912206039584167471572248704005055588734688682549003432893823923864480924896035974864903967674844403687884686391424201747479863459993425424664607392694734448919863328288097893119657982702253985669594737244451293578593164088332263071707322976877256276206887776944406130767067743830972167437613449255229417352652476987414834499893826360892793939802659283017857951295714918424184293330731059776314423732366738980228563069906438287547182417983173071649048467487468344658160384627444263365475072784269197381406774996799769387525935625643880917420093847405711632564808032966549486406359074015515007487892079495843147562034573320072290352220114764364660440038288997624542867096146860543203444857723235079492115910594650819824632081662123861460552475732213474305302904914411338777633793185509526286898413248488665797004464952614121796349583834983094543745160580218510006763744693302166909191314142513474742829664351327543533430445448009346550133290333085381328791646599891139559627886316187648110489674544751988394512376673318164326627818213356114256810973921740072626376696443039499771043613043982210782694420472867680278086015667193218547286863862384452768445051090423326666550245283994923014372943579164983057408325895135009211981093360394332821365675136018035135435213417018441810558412567148247528164477739753643083517868355013778275837910893420677427696311895402175201292250890115993884641748646166786359248770247235608950250763564705394944480478393316092873168315323544305070036971987010684542741432107303965755957451660131803105228114544816647682089388045713533751002135983050897206115616156431724388497459797100858288165594284267875451671929125716685826208656761802743958729266567101332511946523799411710278697892539277556169731431779899070592630923015452267483432814303572194458894676773263804573477965094127524196769006550907362128666692797287043859762528128273591427009263781776767820386483343296303299463066362490313399420157709019346240314859710409773071770163417686417841615866764978450290694091531959297865459890642918855905695046916538001969265611771710608222434721404277742499595980530149955881296116660737183705939303602500125118248905151937133796742218651566713484360267234844949877590555979007088645859751157717540820781750752060601049973737576942448342103085346339504744285030797443809303833264996773293912624594465508453556536568142661090825869572709972323493239901780782328036821845815559098569541857796430188222750591443101910355728270067665428642110971855642299832375233997142620747176223268561011941390843093245803303332110740751299241579868142583597501223849069836026270559984923717308327174677233985377268119573354429054166842842663393255119286100542355455218597641842024784912185701994758875058226822279076314406683519731570347827272417614557703134177444345850402231046245683312447618963382054339605006643383209558830429806690050357342447077666759023041716007117050697331060470285426347454616813090246687871347124159897509521098485847046802462740745501437183744673201799674942460939150859114836357275961802709937302687574290837294496789643019410934472632207127316999056572872299052230276804371111245429365809199850169697739279556582647589468972637683659808769253721245838766771677831016395747270235275031461801640450334970201184144775778610101378182006608852485258751197014442005103110380517757221641402008217762398466277360471335299649418415358896367809855395174956814341936518765717648074124094839815095007827821500914686942072659054193064026162179427239836597931379455798658615379135573547917472633001829510009586293926898468516276151711047564406793110897099704829437563775303035419602238745235252625506383496274383600036755411666444666091822350728653530909567061715387771667307836367247940787895664649834154558805760358460107975836948077299234182441113336067571282152613766395956724381472564473753703334665833872484822227033709071296169090961474999257043907275838093143824440685886638875358061965225494964240230551332342426981386464498771782026278249265017621527083831438678060551602933081783702654094285410510480921145288277710692753660731990819760846772573625834188450672959490041181289740588503422890940721560694251327420839469680602871929992461035196385716716682557391322745574761093675895618589802196425875223540193896047101183484683069136218232426366387683160262989043908184605800393579097174098405303815746068737938371224680106117193435270268229121534486265618789502637097112404769576834842479217611686460019887641921646728468222646147862356165399584336655015317301019730167086824403812632010729263381774353849283912398032471041645224202799627878994052364867785733646532106374676758226643661826286812991030744316347561207629426374332768896340195621831053471376176339519232889964291503049176770857192402730625724378108825865096890217701715952727406934918522327915397077096021519872193189909016928156519738747928919922115650777966257935745365945035022748217699609968149782288496288732303956146274984477721527876477302387569664509631914157941286420434011017533904905040276751370983006999259926259171125906068585256194845535051586994690156557452024232111865727521111958700521213450775700144238328725191903106722654578505988597183816361617285431943540798453856239793173105755771001511242745746288852903525375797142768690911373736272925298668789931805624133306628316842488339797321058354935123445380932238365628352001263208764380044458067568871125269424168157474927074761029577385279929313991638004899971853519958584804334768485131713083754478661920313689600938659404324239219676896286082000159440518914394745314269858746053788147571751164617339386961707931931775042834838371327749986743689017439200868766684997232973185287848805965390802909768141454837495993723256729222774026862981441457757611979844995927443994096899913271235642368742771766690834227674969619898984381857308566565366248405817086816031333716788988623340594449528187607529412883557110960605819870960709299986976657149589935730579956617547215067515861797421572128810674315685450059654149129825201762424601852944959642268846848152452324686053746927278239979647671904363705265081829654756649188962714187130073477598428368317780564180464810995006617113813747472671963604036640378696907185156390486065869848552428394771244697179946810633083851880864953525170229317480857776600223399684918808762602257405119292437040011593364710194787663435026252238918835975918767308969688330009534005039096106878320382209083282570681866702640090028530048299468151622012982724115717084850256022492426634441453279411455188570443434798679864029164371689943737659748420122072035920390307872371419952347602995688734360973747668895836417059235859033709366056390984055396373901725253952321565881904348744447485235317694927670122114552610979692002946746258008828485113505050737170178823007968732891369728829080864972480883237180835496861102589440170063562487436528902729523204623982275979529449185275921113044112887376468775518431119389039473275149411561080813545868365631392642494853776702514094564011297995728052652938804650554034855458005057818553828770616122984841578806690221496360372204351394948870981142596906499555623352347322148386174499281216454342070437397363227251518904503373641889623030179756277859748406965174870715806675225285792376441255083733805349049118651218268817426165731383710562764292084072298603223589984635421229048700600563420842147781950733338874600268665812918617527894962232193466632718479180755979190953422736573602255107044965072407341578227090846099112682645446951136246828074706041177974608238561870645168858605086061421336762870283804654972406992049613381244357836333274849681510480846885139845223345618850694683010070503229016834322012756806460903230881719717087499537180495347280353328701493941430548461473741132467922282785824687988606862748501189418041490694884883555880820183379340048040807734866100346932021800173823923396364384178030194366812811174516561024967711092205539023972284956153911107070665989971707901960102595865698096520826902208429047187036170557095792864141140762557224198661873715900661526233170934252338331671192230946052020382572021498335813427440054140047531594987247620694054720453881401854670506803269733345532047302180546100943638962152785902085501619881215296802674153756812948051078330877962096379627622846270635668950040707683427732747567544779579263197804824189879334437829688171517195361222143887838995336396487488274359510909584085132166347238360711909612719979145136358083633727225174930318496263421321080658210761811504984441125613511565163029446941975176514920090591216186234165326097564228803930955358775439486967992648016325926939568105288684145605629773331515919470830659992038219829443139075014260353386753635705589429933581620749523595105251484224937635809321270117715989850811220255657174478787999054282014929456495648513850583825427311145042696187889538555579045782148665027059422976553422912121848705363871062485244935503972351927955928402923958460623215193701127479633086464833551437426413137266282580015172489856930110462222493534829973155029604398478512036383938720501597076948706268695378744355504282564630859804488168964026476910311766938431022648468495313258480460715716658782388859949469620060448196713355844721193797157823084321147912324248840160955482512538052642777939016833344178489317963786160607118388419135294886688965614635999374379093350783092280540933867185051439414385304877647398094116497080236862723466792655476605202119771954659589676105884231898976597886151082000848407655209962695049268735548074433390673522668945411006788798235253469373819453141690158744048429478225301594775535256947312640484685938940258289790893847624264947727175164438826448298632402474996491326305602413426639666959610483641319704715098059977877869969444117745768223300597491581413108685642531014396074135337422663791421295858357458596592457304288324094311018277394450629820550403760444726231261539770810224985493711560510135964340487999739923181351446951543436303508831043453923092793160283482298594253474590538068022581180515454141372732684672681311841637369675371437732802006317070817844683269526226378957886088322211633222556422260856749228317190669530032438489375570104500946445414197146076898972543402578466084555671553114000034501913525059852662430661099065703214285429924162741511618519235163142343928948151313279297862524454228696369083733843002894376401320705745540281751143803327804181011232515195710381592664583495572414522754901304217536450254749016109508109666684961308605665672627438030951980006088339864000669949448339353530504187277424761257908380110179266951527392368818841932283304403448833909969698115127443646533903871220371317779569783301053032011710223083088723023459648673059109974700731196956549615248342981228871957334563257246199013651395750234835034618766661088559243762378983794676788071345004929381204972453495260552824345804613899119650758830319725701527030860383880346933976966841742872322182700361084715473172441344818847886385019408611178586737600961006041256863284825823510975342753937221541041462019262698820545719392951272191406979676933820678068342398842431295401079436373926069953871693158175511687318385224953683141208301120547538967574074201098348230498548999660021096075289687454324228597363084010313495888188760268204467627125462392252452973731047876226218392678155655255925328343315530532555324330475138172864711767397181546239653808586954855848404157312297317894494160675436437395979316928069582191831758067091668799377711951012992609916484996373806150667838159732452643604256554432025746783073482044909705859253007035674852553864186691543055546447893647869393469193566325950421051510720583522431933221864950614885041196095088794682424177029511138419106211938712506408466882633812071929305220268148862341709162077918126334453515672164494837842896375768772100017077619653380556158527512291748258440738417365287811443419441073611065418900492812441426418077918077838111891978710912875989716641160069474476712676741811492171265793416534563584039810049420277752142388633124828234882664984849579377455933932225023542371208995891358399195795941415105040235749246580156170938771808024605741209030856147475845405091591479064943642376922466116876235979706178873368681988893898481120657828056463003373598760159712820012420575892889083643121887918283828246674545537795249522073422849680187915309172651961807190445452321539203491911840463693200235304133725317963979400085434674078446525076649747646369408705243455814597652652519104693117927699818519755955051506234571618716401627556304441386958844994218377372757273837709665965488565334577309078328523229441544357904060483269352157422032227365917250103569144888982603910296156321570497092103659653063555271340293383449271127057557058791910763958196521433576921789686498578284330193333328202284688594723237646429105892318704424312990973384100508237359949230428860242527413433482283879801992556995512720206693598665932765310336958910048615957839477228079892133554004023100929431505203252845735355352808689603902075442017854670372428917013954829449463546742872061211449479106286759835908488825605224382567565757829834347192271211257617779667102368252204055178038637503057054800998156537035620776860222705769812650738953993541928686484248037587330824285617855400417872465806792579550031187853550536768188905545709425308399897203489947119826785389938722344275252672097598458265002811110514219800036638249080604134618281308388846493585191977190522479279432023993964733165037744846225832786982356150357239136558873403341113793772442133072087446715504410077070860598265161137013725872185340374638117868685131093177744985829219462099968408555310098119639600196007354558854011552444691978315906855981757189631844287115341269262947886215837696179637572544962135658835453170631434484703044159007079918683766855696586546492733403045847635753352942374257977288450843269244082686280784348644387246216670375972832758044308906312291358387996065336756927985795275456007867523676053273800553180294886218463961867843467817230120669123556994704753120677722702080113509455829821319420797431394003532319474875046088576223974835454934374670579677298280137227086417166485160955113739027243738131401689227365662068118513804230774799136459387916680133679830152078421253188002330018846365534178277599638664224688199603106737203920598825509482962517134262659175552407275211418187310835288543511956145289006133071034584417443986905563062897520700102395863305392974715896137197653291101994908784266575575549665211646134837730512690321329339092081731161985041943211826653844569544277642256792629714317287124537733555826807609182103007310567251197722079439076562635046653780995907221441215378156737144223711324330773650839212019004644014735571181935428329702382635302338835681700089091614707167480690642201558162109274823421512128653203005861235803651960677237796684129669126709950435548326298262758424207863273158896390307497928352506616692533740826990696447008798711462053378332375845396219726389504934778434669062019222748585004587460019325101251684323481627675626352196675415500697941911877499109056626553024235295854574782448696326622082478219940040198785813924587205112382812669357761407635465161588003121895840060896932207358909731591214996967741537765839325922059217924950656616532406017382865843843815819355316330457506953828407315381700365420981734958907862648194054016856196079677683095913223086456186261366668509444748295641254951993938865954372619581521126840604470909116792047574093812604284970963288265595810380706364885355847825986076246641867481507467663166410762887230411331008979428021324854113240834623482154965166634150371872422994823781945906389937488248186346166090349672547193484884956266435464900741919487328040304184451333823087865273290744037737742550529854268055416277532605576361373809598737870255588269855286043779106253736078514862419803938406295041293708482425396860837271374067238707444543631277780652298650982403060631121199875529956790859818132072029954625485067607314093481287157559294059055309459774678912875828188035540332538130670637029854230173278595110143902832097324299339722629935786997921097445287893412074203361846725268073876143048852605396714398256796120723156547267077225089170532645192220838606353477567779002825360410558535491076083370793434618603384377853551770498252440945664859133785390982369386624235457283000649819930786613643686336527466683994510731639918456130158310965733152173559661954274795140010285481714154165559643757363060803383965333410058298389235467449950443124605554848528980915966806505305303241650351725839293820535692554611186132420960868742738881716268136868823657657313797088623766189219560892777119421289664701269220117662696109207283357172840257518474280096800312893513735899176853900734401476358848325606623285410230272508708372964654292822441507801592247555034983195521249874314410290970637611635446992992186777481660135462192202029469648091517864033909498842712625474374767495984885378713145376020968183516225203526608726896425556144088252854831882348394262124721446567850078293207179056341005640830355855060451138994305609278825513549795595499038552454315740732336269617808815650960593892217885617690546933993212165713490992255655899355858942872043093325795598864319666377665342249863247154489151132757720936425351929131819228295880654597224942074765705294719114996313998141526413826275910578724078087425638208848146588340953586298332069441253351278089437249134032732347810125436522850570938805222245809315213799725521675265500552677320285291521414693123709220109512403026743074116095406530495063898446862782724015740430395331806672422566512479801299986235298060429623097340845420373185140773163057896284734251326711392707163680208854272897132883609124810704617176880531702675500151261249128937221637722441221911155795010432959679720997139749533317405668515969398771220469608519358239554695433637499924788324887272723071062971668657251796722742183792515748563273808898906319588245898637965346111119638386701012022023548272525739076750063308523088663715975472852963547936886817668339568144952235851344037428888466058984312460836712755373611485931724294877648755345801179752532086977577395021214564224596620490910366746517421429460687518223751594438076893679920766183140412158955790975318264230930062432877167508149638723009889192051978766217958592142900114445171834691060726422820170835166082115721766407394464048188481548605105938934092556359037296651506873251297089945837139301167293434469415246371765653735583420828858336294966029857004890372774494561969108968310298057598210259213057684111012978740662241545547852066703751378607705314060237584338124508116997153659104867593172558657838458215868731623195638034309097060899298697981696727623838687467563826110155164311838554869522987810502595658414405168337236685838301461804615284784065656320337213536661280006291711224455681625851109294152107921450979076279933673132169146579998471179066428140238085422167263885406440101447512815355338277051615005263643993380913174813924967721751140729463278812225286967613279316093558483767012529578566805076050977265345284721383423189524656916197482621459492337888609560735551459095273927950673894880995022720150452183601060131636107933466730063251392928163152389490662170454875884407979253282043143330511545624743755824599800941786369292467639810070337967923012535606555576592617779655283726852271816919071264866509876344917159734892051123469816268063246017232209451733632079040919432073180242166842090641285276565632883894585726395783425060429657302870327654661447562017832507704062994721889419267038293384673577961388862624501251671246535725577954299923642414365361290013740508091915351496096005133609104240317418727254496577027532504885754427623189109556399043388008056681033598182752624492903117020768445050741079073063200897826430859326201001446155764035024878148838544148375080350444015698695444211542429937032457763953475354316031303926591542348077731009119502695336069083179872761011694419419835514723082248302936888655788528511197431601039421246876611400784445141032147446713339896811553551804103967137886473843310120501944600431822354150088137227541750990160492059781543766018488215306330886636156372591137830296409648660157696132953957929127989954734673617539747293680210554968451314895193618962693822767062926955839949314234574467786185051958941772747100267200609626560031300859119778397431437446536083305257681707102686346467983631984840325776596652855129995250668335217935002565811638427307576789443179962489729645811532873029100638893845774266167781697515410617758683892121041408032072560868171906790267187674180936238498293995997114129294122996032017540877851050534760973824035640880867606831452961171954658096065505880937549704452434111220556555405669395587079959752437067525230314398613662361165847184507972796048247568629273915278480610296278452476137338178773326793339755797254792065507077041189422458682168610169690354819350332589516582050027389762697181877143671320385174177923003611694093945270617360330706838580616933354862804749040258871095434211074236291336054708750533424971707319201777970075707563414671325401337244168656830671545254591406305564200749623662950415913969661554866930087434667485581249532066131911868522512241795040067818622725431226678854720991708476881476759457821325904639396761765575188254980730685041585499129168028839333999816206327036931569533818872479571276404633541768688443010555781328235734928315087796046920607338495492320765639099037913655018944405365853127935727986027452081748005815657864667849504166251257630073078726625582429833841006590617087860679134836726995572207677486508032073173012235174086630267023641654955680617639342858891210448175392855241733186668727038763964437398766567983616428738037360767026612123013897940721583647088882471362967712349286775505852030942872813930890255594460438588702282195286501140460990724208840390975157286194166800958731964753489268850086308885349199805757339666113301920722421046984701104170156406128125024161092861834650802360477343454323520133843164928430874612999956706982494574876594005333844042175203298355587372418836796840764343371670550988243613236961574901585634845874017286946302742587333992290727414024479884697777527813034481063441585929041165334851496175423046990177493690416296182948070683365231465068939723830149005638970986682742349733357368297042261269980004777633536539150895565823941256841590390419884838374361753016767980003853484746922430001552382721012677694905668612914234411355148244392954982779689852908779082720387020217938622332243259437140356935669935374112620772501623556901769941978562043088568515783534966076222116433132965989969926618089287642215638710224393882018234309910792798784954445782071121644234184862136130263576107568710932341958456316593892065241402237341808331315764546164958902079492287375298009453353035436823702055571406012457909984195581818589441163489400924044955993817096547693297070101029558085802261365326118884021512921391674349130934290507287653070918014201232422279890083403375828287511261381230134086894521900893709362259674234366899016159937718486464457869169002737086024663152019370714472431320796892562389567076467528976637547340621231361594586433957109024068328941080273182931381384018439592758949189644626813220495988039159120629992970695572650594906801878239554097613976195329271531721221637184757407771298941407448022106118953849420464374462700902101533804250399974717466776936398626792416467664024494055369621622125196850590566738533540115020791000250102260672143491990430775485331267312973846111638595269969468143937497544489520104529371165414397724635846481568432685914370490662783724133270816105310624963582525768497577470809475409971396632771846119466771681537788510225476752763872550940525044879364377273642548966888684615178476569026179246344727978135428398312156820601061423483737987770452087581976849472233957066849067456720214101612879488672532425568428073126251156465257046148175182658653709023420521708065334727533259767835928317966398531656083305495744127897460348366675708175752840816024009847751181435465449666438363332964793533351047141125100008219629152819640002129649643285550521825153210616186432223588775364228472320809602246849399491876069941243058252270321730590618610933149945173857141115682428394239974965421972300509993980423642261491826126461524371691562969004883428461098406810273966423077081402840074209945848659623459998816819268080046439513068530259866817546687989158857507105215670718517650793133503225725861620117483117894240338313852836201871800059244971854746652491188242444762453177095494012509228265240712352983677333399427579822174473790815661337428481320463653752655165149367525899590850038164820422496558837351590287930229641055707796872729025616191641310367555596680367671447871785387758503041715184066654486385536941646171695803007671342008791427150338305292296157808644515839470765892006135071530133066546685828569761119778764736803852769758654358853812927264298966059821285238854219959348412709554362729322062890192820558962019575088183399280454972425530074356060380185589330216652820879725793651761418314300152419225639952307934288572439046640406189267314513084251552771779401010160822852631739298108793479341105143518962780387027739967712235667206242822318179558786435608855394458887042618999657965645634777901160898984805720694259026052571937188632888883609865162175168841705153903485113875862765261278525829221168034325565526776075295373256854011222302660890854014976022185225164351983527927875267321290268668263988331171609086757181022228028202235255746743289278640512499058530868434901057742001736855755373410145161140579351337630279853166417855451949711316453506229196429659474834152758455826118198430811397548884862444127580768126635049392244011318285380753206918972228957486561734959915112669667991649744054138069853285848770688034144751874574376910804836212748322469526761242035143748266116552256029548159982782201904577740873215655741844287217585593852986096412253042534673605957105778175784011816031016132089610000708117585874322768118902404636941735509322007356537297771057665978378843535957950790091388365923066607628230496946379956982356775742147882650841182552294096144263630888611375939138975526797921786700084169831696420871441988314730200535931973542645319941490273495819687590234386788322233795849781513695822418753199002716597055197531336150202551252866288034398386295912649074818524411230795126273473928914077874488855808681245242691386627113541347972555959296986575500396201813759907438375172905901428174007253697001503551216434829603852300256396471282255372877774395083502792883097393582912532548242364073408803568073388151725922354959754997882452256183716715471625997283057951902724258523626403163423316085929232010181772674959069355548480762519087334251300806631186856343011495784204167005999697833835186645312493931732888607761142714946454029437935642779496989860308782799230309282310898290954529906055368917522024677219981909423155059288576140020704581113735151449089892439332498329023883284837719237501969124181308644531696635030280269259563339123198712082648700295973270570592158467675960921262462899879621157681842835977204773700555068551976935518866820052688392806727317282253620192130860075396587948284225700134518656911352315917088831933864491908629193318381259666390185340917193761874641054220020122464244362688221836616818640448265173138246484802494792314510283728719631627514368430472514968614054083394442140019241652411554377877350346146214533004445547755250156167208118714569217982458741762788081372103432926568819483929053660964464380596774403245956219363948107967259657551662090013815988008392974253011523216899628792786487893839886378210586991115966040264785198509419339120811098205117459963735635516656622267385930968022032880568062513636259911767018611243640823687394952425697267322221128679455808425461754882581000485691689832146764352836218871654108452064252703726966432301088229140918727769794632786972528672981838472392871004041225043780256313532301772208312819542121823027194363057046811649310245244212835584211645781763514667546661951554864148323257016555346786070095424603343579475399458817691408467077142222154474658179217349857420267966238620928472838547346538496919413947698793364782146987524129777898699749035202313375146480626190612814876365906844565538908555026993633448746520787575532490608024157366047458781684150530250010984046822889872509967998458373086534660781098046652020053560708249673095908053949920217174128186600974672281147945255098286889323339677873338779719285852641340201479598669633033458882314225072651697162315749601732429196236882054804647863583988292470661665327981782824742697072041489909777028396151590395060939533924471134663232428547992656711423322217807690984119431262515493132987016544416576969593511964285598392926275077098673641975163409145000427898612250070788592454203461069423332655485413312125470214761184054378634630397059248391787544648170044244133240281172761402029186446558556927136998056291377935572930348342608098631665435048034240566133782237746121050419874394003308301504662746352419716933850895596674096209450569655324207552992902183729837379513933179183495465355643617682654856579520218211017577582569679015444166393997920129111442221390842482254106405009045838109541341601897104472076768413808029238953840863777208195223385862798101893548047243257148798962129335295957653407827185276329389696260653822892965904560811345931097237880433616751377724379141904305628443024363900148879438772807650675678155448030462453247508239898328068333618853836554963306211627075583169004669653812237241767430626853672075381680513003047768919339984137834945837775506642635461234125133143631465246229585327383573399783691209421755191581628052401350725132691404985221033181929229529746103562145679181713050606842553408839644214008651219565559432540693461077211458966850782651220368115589285896458805057863317919802065653319940377487770596119342183039595701237453645835436867328889485807910988924478629697496535408771042445564839784580142271862500910734499153996251355305603549713122706584828778638416288887114979261015968859245588810227113973920348068458096614432673909992042749819408539337901083681164093450261853007257662619725727619653326562526937090905786618673013866955458349211322615663072193624956650644851801768069159266036164747487654201919256103011139371865717213322715053194083977392059591552827232736133601902988716582590484658538276281960111565752580209734126882269529311177253348567377224978296787397816059731478373988241961373228580065650939713616021656303116598749817323065074486338303789343451078437521412255354062512594923469256949719790811114917577888281880066558888258367512640750883367313726530328312509655554440136874143630538354220991508905986330879659117367477796097548516381521818868459465914000824495930348814906583386678747631764372295774853766113967351928482511619089919766314700110092520732381282627291476861727230310755018368935902222487383087794162086557242543836684293884847615181264853907050267777943713818727217650474158191728294427028319068992460286592371868769197964844392142049246602015109703595401158906032757589980044504393869986759787589638804245830667754361665475809292160649952133599264503638980284018306196056160834512631520386941772093316109558552076805189689021735927281328450869080805704774714228641792072394570665024807299153259161736245627221092466223480002023902434088484168929310471655584410265525339109816432092329587299988163723677560253985470780862788057147568871926009839363145103898586580287998811891902933992969068131297493190061468933685689740207584134859477051985026379897445912939538563928743432537973487141208687392228676711173252671681108467081239741117262257000757522380737888564634607417857700046229973880620755564875027057568483135323145505181839282622684706095626154328329219691865992197031740858997217523857335168047052159115637370883177494194077722430589404313855672035940681532094257297069136295485284852871791833180493613209590129920765956519274384381104960018282068116230679642949651143871044129728839471252542603962502848407326605951019647060091529923853249998405103721424612521214409271002290162633380611581063556238420374641038088453571672117594798697682609223525785396097081692382671331226595724913281969742326198060196266500996140895921674344805869077424994879751985230027656001807628685485359876248448887213361417122052518687487487208893720521211809350900740416423092354369795739787991475676155848286241569659216722201587510818302576212316263416979029898070023195342995362540877784826489904633921979343364367190669655764345495705154216459902100094052663126966224108347865517978642157435476887535742090924991176247644140209987391887657352259438904116606062990042009096185576903185832916302280328021683116456838110319525074789580056650385875888870095661740899221626284628836009830438954774322924338579936548486444050905262814146627259748386607350948326099539085938795136969142056681508423515716233799928153873964187129835929618405185874365701941497542829309768694375071738478214418019052851943329235856060077084003822762864019186849812656817454309871525269202309346309433497863212540734947363902704820662023688019308474863248098439860658894060820021379151053010696984519392325259073696052147443278252134147908539231238327005006016746492333769359301867204561905653159779850901406774522722275321908279314652530133205229721146256617721742088017174285103700546195526019553757858451656804350785071376460072871736415498680095895827673473188193152962464290562409265367375017320131054462686377387368683944771607691535508437080759026101849454926927558188936567883217324638891318274752021204128817205363637661764883645633231458060091682001272368118265306590706405336857050589265455590163548965274289553244362258013108603995020100278855854756261381471545597035647090240043957743302891030348019304950618805808137306390941002379835170439304779951705614938782711146571280796180012833982898125216849454526767162853089524410718528456968412813231381539486842671633850503508422498814358486412074299822308612808387270125319864066184891573172072489921336657298939162735272400171746879911444681476093319250638110887049787708807550795673339100635368883879280787389924186262660510675331014927893064157282341084023624398823186331371870370181740583533840453773813520196330690391893869533246710006413030036062701064583151974586909117534652168408232354208744592293328608629229523187470281032891097059614814250489774876369113394438474647770187113915214165601240921914903784772505918940465266561233297110034668281631838870331186771907229925292206026271461277137317183905625929511366774942870374953009424128337599159403496524367150914633688052062534856844574726096063492922488128135705514629421013982276649396563856759616365535428984256868096511146375555294042158728707451118114240386705129190189545975107779862253614066743403042835328314042401149648442274256110247089561080712094741325836298026922157415210451171003658643021752079660586713490413444494714878767172947293630002617240177993483950984300524945395641058860886796070743237889448702342360802144861206049373989126224552599675737519503242966416419051197891816662506012604281457867036758312804202796557165795905120499524217080051517044186940499701641771699023689817896191823961105479423004461413510117251360367215271910574193106853952498120574064785930087775934754819559848911166412275797937997321303890815391003073234434504902744448302721703387322184073900341081969832719453648559924725689032125998215243690385692623039520978077671896064411814125131447843505391882477968530869166570871948021639653154610879868141272772446689622583052650335484180451501538564571112501758244068794773937659673090101475833980034355720583075792050524625007980197947185111983972023226039666802728142405930804247542397539752586568038979860378990131685703221975711610378579558389838379973117986656389788433062405438212061386022291595188145132050715996801758461082345465044165185079993463739778647282932960114660872866386131527740107555631715173846908151541762437877316190471756513494998082161687934088147726259602861866256764370455775019171329349663349612874732464178416031934787968951192945927254571397055304578361651472801465109157977169833634249162515917158314922945122755875052817856355070806769338567475728015572925965116406888459398604494775903602075454063946356492009305782814738650036976358230863895971730735184798838693429867411685429039553767351472289925828327320254294683089302390629741471909216844650709005002466524132759313915291197565205480055688234707998089066881480652477915126254006083159028759724768274120646040717812596063979383700332202184581164141836457486413474455222703535664795275680068848975398802269958101212503458866529381426215839411191833809463737916665771549486471817322282869636264332228238878274854260078844815309156653480696364110006926130988375458982848588688480599936068110147001203465727628889531485722716915697472829173686320775143113558943928367132697373218938583856568480631103927020777381701961135577418557777823446560536974666044216508777737559897946627112231872446789940171856115911502865667325335811516912413563799075210252907335303073762841759036118196564027110679869609541585251722919243955529949925180868416756835424796764553742529329508618010685536549695956910119995438103762300531835598213060230114044191840200871021183553326740539478521146372832720483060733838047612810815503050561427688296392860361389794414055431301688399450527761943519255746605120955026173304093995664035954259028498394716703866382265958178406442745330157451181983619443205819363523732020106002979275873890247236512738133205084704577616709699090317534663610741376972025322199622384702776436190292724908278714210094292482452670759907928308065517298875128228384024370382260916056004871330277559490297975037075021203352743583622770134934420387880232464229868131011031262493690027410669210743553300249901928416081222201907448721516344225802141186171603346423242407678991867731831498953049691223740142188852307777189552957077169345815596041896568655887263429794866548938228075086899855412839780725841373876097382741076567221820530360865467002279805453280761805203325746136986885927183061457629862771611884339984522104594620154311219119739833268103812177291649336455924277393851455626502042749309328795965436429083866175141524004778720875794018884569736302252070810502150253126105036480340636900760351293866872171093285577714805651580963632007407597202886198382435369554396865692302728393459600171138666898305570338625892353528898060578206871125218203506664567669253230032119420881734794188340640109672054745561693533902492306257363421012545866984020923816832350133211185189993117816177384355595382337439849543989357076881844625784612871178056788732611155077646866112753562035427959644606049159200910192392624996705919010735808011122754384385626082028268560634033277786509448323399747651038552211391815549870353217689167084955651111493288391143679778589842617635662018929243405091353022494269937167142547140932996443207561590229902077458778107963729977370833834193827021340742173601766118460751131449754435556869965799684762774852005127323401134758773087153530553594450081615980115792845444368047849196228028897853677413075871836529789961024430495804505664169702150519304330249785502989879767303270545208874845068254306522794420189602632396404267134223876422187508440255715091043984526717667662741939755682096715552792582441493409575840604811780710805960064369869589008773765944641135789694863782519214203344947036441060250119344162507398033003955026982293297341883899936930204539745858243532875293305453620817554983431206306445265051255463776705137800736456120430624024671645343302185815418317724262034519176122647434672704879234228403192667480460105050554579780363595440227404649474161938468369429767294553567677558042784441348632905635689291761211329363098777507358157849883073166928637908413566918537050488395419223389197570254454858165140862398463831290077080871634418529889041217130878897683473071722721906772639146414131245609625180375724166914744283269590666220670951175474872088109631913692647008392069365295473953478356481096655296697580724062797524887684350079025079980844675546973462743828072331445013538453146764285773104655192232966268184907832532475270187021170449439177503761673347014668042791285659719085182105028542792781215620206203602085563166002909688054348073944708995125880655789430952213890756533202806243734434687595669922186902333734993362424399914865832124336055081811510804904164616765761379042940159510103076291640030972234143646818133934073563849705823676866774946163383004894346761011523637449651435329517144691522153856257121407744498185000304686351834205194961651808541336839542269949637369478958982229962576698377868545261565509287788042642335420898580832150052757029504348546256880999305838086135827534787383265870307054562598592249889407904027987949535126743876483283232425149448666575311128134373550326299050497982047605259400070144760659036745430589065705695945104990364162959414956549333652417600926851372675017221399356814496912551209020464648730806799275021658810696331387019108446044369608565608401433995130211386119929741257435669120746921903341740661965516858627870701635520719197796880596155471196193181839735631554092028333022166320423894690409969510047010358092803368020855666216934433949814575472092872583160210240694982503730998094148056799159982350709400200635458575302117137943298269393021801436043959935388845909729189492692255139762134201604261317499075862761916921216690263321300873254881003140488772990112710910991954347651872309654761572393798175261134035512344499050644804243175924806748000450957971803285992438533174259526361807499675838406500432254714388300747335831630445445432530703957019755920618390077202742506731005581520819909240280660558522271839890493333898204585910454196594525561011491983970924426163448847364103714885476294277918584364903427329811548542897396211885818168072253344554339686575895793957453560314984933640584654393271400104885105136905330817558169219379379239984103855493230319434817445832850410945894943381984870672814462220588344203954828450120578323850446631768024810700894170124499958612490216846165912735616844805699410177833837270216913924946801595555815705000220514233614358073148342415532437851939231075530786518117610955895983507620633165306498056022181605416811235490888978611964314923871512064526930774731367172094633674758124594740034796287713654266728537528427145248506923701025909887826384264863232763533065696240621337964295196166717143554310838121833775330087647698921579247404429561323672273262924415340192680861343190198814581881276909362702546304162560892167630801618813618182843132385275686172727790403099361986616990365092720604840443476840892267096017654175310221392189428921498684736965197312795869405994223297186331211833917207514224129286757430609351380115991207907959012169745387540843699712085257428900577293296090904914500628967990594692162969715346930440815149803844301161061094812494098855107845997099145313279393754151783539356515596073232636078653452970863782321554421136725014406983671161036093146005475650842119972740487104134438271717632811540220313728338164444698384422466995418400552621891525435690555338472234456949109211422224698765942396011788257333232811855188568002796268283438934712373483293244742412317496231462488862229456859660450397746152608443182838794957853191915832689343755438920335174949031865036796658240102041222804331096105931025270324117742586721653854251774544491354930999444140392364492061961517187941032479954014176481898795733021412421497409011571878642687557394446869182367550135580391008285057891556386344760194303018647343363299692270811458869416156416228105436211747953670736433832918508450640849383111764000545139866951452507224719967422436202814043988300927102871405324912364749057724898348168595249805188268916077114432401120365820190965361874126111163141752548345491555141613271445030072958202383566792725092757914137631555227716644918441846617970447707953033549696918479860896938686037628114177950956442108704731700166871382274689448930317489365530559267091961840841175974554356650723105349964541593640739346605317087927438756290439451448568560683836440655700137071068669678417541754470991136978958591564363320909887082926476450852801015569065771573686118689051799931435294136551482259580688976324942779733725164304603888022996265881876799878829832194765165098538737504058318183532719489187933963682005905619537772762700205244118287099461815626476043065641406722813836021794071721848004697987639062323666806462995406329816196394204478140141219067868871646506210496813457937858738325941970719279205712670520311240020859715701690097549226411417100117234893824174313818569776239471681028050376055067370592342311037822074582532931361252358076741530779860433372778698305741182357384698260478580598905902364817571410354666121472080720380506169855056495602068668735359504305343418957835064414572192441440595376609662262531771782568826387922788740060585174256154975885702870428564890702691816592035518373483420702380128221851693249472714470378829613214536923897260380042954230390014412255437322041871064015490254436192084473814269578429503649737190274619493620720556742777865945893710086262238709871367634709477778146654585311591876223620631958850576881068177489889479077797481423211991937700565536396174957397400035243882017176586146581973617417055223997172385182350082487760301336362111275901896342563387355147812078119358394668409197421803472799338724432176358447846413712947201519972880035552595873027506698063816918418495878984840582788988688552296391170084768245550722183679972240353532375431186569090733916645277539630153305042091805464303075120195651892153777574812004798674241602387317473891172006786328695663335163787675624508238086520392512141603285490630073233439120715307881179752277297689997016685834061212381741542181483364033056706169534325091507771295989920203757195777787054529285405665637926532166150391390330755070579527014629627526024781016532692089352667265837809745536212084643519334415299887716150329227327306957466937900057306148731051091754541826301143188618067668340600844530375023701791394277631188443254984317469679554939240856553077010117543537095722399529763708505427736215509056699261012953665671743688162540196294678945221695062998980134897089334829968672908803866619051005168188797553474978251119264756766439853901813933881708661308839586758882886842704585573187713712983505959989157024504419823304704203459518300063526657733110687323624564333763950847654013799483588012692249671429504860421060155686143106753989891226942264431900898589067550749627723674343390417046362807676435486277182308916198612735831725091153374307596863241264159281684254348124737848052466858383930761858402504112082193678512153430859736124930654803643691572297619852261652668168356533314410190025132017676094325084778590169787867209324692845726364342956461711452309437283285862438316968314096556052547068949891961606431042414090766650506242018663937502392780506450414006387778084438728343517221418876550841367795090837957591462074500761477895891561184660039499669857986597713678412606932987314166717522600434857035983909663157249477608101590643247174838221547361932749744525461083020371549327028179178608350473706827648368266977164898036154163255874594583521879146570641293044548706422624359799124284851893080631583684009373162531806010612772497564209865052545082239716041658586355633002636096615067545030002912814523370631712049279455441740599488700898630957785846005264656738289142939995212871676607194053309356587361589393015507281263154112335906771968180332467947082594336998253765443388054805039806351948403175360161128642933758970631302305823053230263233966611949687693848775140516254786713581159963080917385961505077679614272754109530724519462242647207988278061444148545672254035406809506904073936745740293069151921370422839241040241553938037042099655674904721531949110301717207277129776056719733153829820201804286287175141724835758686381619129768199452057442394418775822503194241866852573964492424537246428918577301449802721068666502597243001876021829471738166726528257981291889557658851759631737321031280393598512557400466547733743801408513507497293933443979205230130879089053232858499031333499660108241099442324579422788486754004039844354285191905526930741422192811190084103045541792770935971931357675005444183916788599232202977338949392109922040025088496855723270178753671472437052356438434300848598693601645829512791563829880974113640682918868577192386841140271312438941023403845125540347829797855776206572198603653937315118438069630345331484538497458385102610670349664026614888991634448458157366218867670872912869136091579793124705269791811824125610394156960756688122488283815484218252739987210303092723448724641496212277413321490150337711421886114201245514282162005896594738748121272734985942074629871543196247898947430460313982537043759940593110372490881359145112021441111082700933380091511914797506033868721346775777847470073547772796607660450263124958172462927741715545751676912594526283050905242880433402503681311036743393008223722461047251179621437584878714197498593988796395862592189695478516214233489648365110916893142898948829444970640965519970166385125523289677094182258223640246974954677310547132016187197239018166646076846476107597948514622692167208594338243008617777800693499949723180573094766162876214247346273071028109610181610920180181368960004534340078010802475699362297594100089525595219131619847360913199333355741045383735500797092551879713467189325689593772897599661666144505002300893647494049246747887911538654190086908619571922316296439283476941497658193101599154500673856202859864428046542905324723186369369255807872421992748177781638700252641873803907609707646497865213700401038975249000933094827081078155516316547046448678402426213602050509494058569840987793440902444366762011863518487414792066145833729248505996417087066066521071453249164088513001462222439102236279039650762877567590905342446987587630849201638111913020632984125395920454884090009684359803880102972936032684312387232144945088824296771880615346147551500409723590510955676058904894882032148911127543970199697256208787582403807081139715220325273450292804157925224719278663862034721384668454575460311614158902684510337154363905490732480016929368216976995446038538474033713690558598536751834855114667429739565038824173862170743446257371958833695034893778432114188197613223506852712855078660118839818808396012794390258681879295410926923801932439688576804084609955140407873198209903029573286389898436194157123865383084708647991759321754848754498953993310943624337788234487471378628442708264063108895583652373547071553280553371197148839992366019932068952229711989159802889823632055778764240692119559177035439068432122429651541330849841886434127286142753841993592859636463445217889097144710641978497701480578808119683280352919697366130293027581948558776611251424861307144503152633067522523248598838509143021814835649787918543505868748522877679606972469306301484130709555594181132782082882544562456033582004555891614663781532361944228964137229010052415754593466882850196220862950995588284549973464390754381864075759264962082038250278896929767353225105467526615971011989896275470954580161108643061736583468852377004639476878014307944854083152285356836937293334588322265616089096963069994649333483825695968435265617546704551892868516961205100749134948216050106141700714581941636962750539496990170173766437123814491318724209719131024785443043915819398216338959419422766756227067052457960741549110144570848179299385818559852275995809857262360681093534427734640240951523392866855786143046280668194382595983888538947721231790528741186821850371912451786191083312924031028818364894665908052295622290314595553951355564029762896276080167919069205540893868304678810984574883079675791129395038740152505838453798974927343012483633161516950799498644446217008645116876105296201251306675909819258703796776762827965735974640394560306499061199286694502411429017765602809080647222044955169754433311690951055603116874398064648358103504425333106211491128852004339251135249423736554231975899972920777462900494576393584629003127058589825020761484642932099711622804495713777519609315338912523694350723266432813315759535878950956210685939648180727122719971653801155676088424213173109071999331980260968136380546199588009129285977379775374368117999595988802431178248615668191200563894581575706268512694859528985418249849452938697258986923526566957438690479460142558866102932523338485703501624436997882715168269608776337188104925295687648722860925047430634634946739252364606011219428025468423370929860257960566575350489725095396121318062371582890196956756113247882344278611786225888253634837515780510598372389379568306438558918834236229044294635413316507332241783531073331102295429465909252632241104692844585831120347966548579773644886866936699861652494046125722531208589894186634729546757464673092353421260763322064563276675964081039215857524709943425950582494631874305804217159800327534409292922289716873649821810302421471909850153717624403030212884847790409573013617707846957372898218450981551499739084457078946604533444421395075327143613144052384422076854699148257685250529125541492559049575322091413282319915445293256048467554734871371576469615591385357738467793357731608876992015394628890662377204985967892852739156752499977273858710033343911859779418516797275154945433196475076690203183973430375721658723561190736724661171724615584542891925686500695816904746055728811229389846076076673056785924082774586475060079495524220957213097782437257852846045409969160029906680681863363751625166931727913448173192090598138426489430699845890906107122526758009118849514020675520624886280937974941566270424329906589020191980757606964345020736148495225435933505410927480194130345231853559695878274843567062974189797067119457231123779932327769457050221729107534893323815443057593733721235213854932482112500108300047706783775302984672571247652660238212066506574688932461471229793633762462253382233663394117674521574365913762644550667339972833457776358828642269640137824487594069367100359823830166267886843953145948050739993844931865303848534811591263520426777640175681447396301591645966943674152255147239174486357757855964106980543411321939369931903828921138234510729390767417163165094752712318030328240820385605999063976826326349352059999961054845420443934910107819849003378823054450492061732068211637261012738538992723929966451846075502452530010728420946128832668298031951088963740667953921235466547305892400935404940006875291366121677975341340153899933967951950782033649710638617507226273993111013910480295647384162440161096884406560339198508619534978181783081399540650762417375467452139717057870122430748962923246115350095178755958695981457595109346767365295496295411834926435606876704685407034613988404732201142080088685976049787432449778850051883654877718947368465324469096256837066537050095575214120831601677627900355197128613248324872506840938938323053730326866249747907736991426864606005634401947210901133118705152699437002148124378643098685470089474560138600924379549556653301109814152280926924697310735431829224498680214876354225453057745402559411151390225371308144198677945870876087267922042474347167928941605045616791829636134967423512188631695072146762431729976761985212276966492744592935975896478466189587017513783358941856027969150768246206694913466146387558183064912022572908762508939859039140503397687954756319390529395724164192577004644111396960930936459240608447716416178398080581052762939171093169439398175170334600993441263742130674847547373266965001871660314162183878589102029005592261570496045152734492709779607655473714433103251864650799396040418299080353236535211808870004896608537783476161946075555947602461021716956921988791081669537914490662948040006857732338941030962464097763921429982324107931215703046875876106551243829908908779384670123442268561150613286437567764181870439583918526477638984929587655818491766891630849136895975048112953388965908340810577408195248572889677047254324759796937675377562580838457004211564432870714383736941261649222772119977542829172599828315557100873758247826575216211637181482932959497383224638791861514728897808949782467678967111996515172977283547842126276558388018759573065165259063410592110763881533540911222117736490233587249573564805352592248683380990492069046791664820896957305980618713223036691060746309604421658911109234452109709277413670456639254086288112190693157265523299720131649496301556334762137296228961827341358208822058497275415819484735107295680126748721316466217383516521054019307370434339026558667615314897435775352681613692584238841611691002418266591973722997950787742855373382364048873264525195638989297997030864302058010843731432884897948657330075365631262262519041703073155315307438738606223592613931406460105026087272519797460640945060044786166397532928582144884892688605111879053706423339539181056146238560659476750140163332125938772714665981120627447792171298406502728182613842378457440579112890038486660989290280981289789759451250500724032372802515526541971908853784419351940208066050843465413425022399295643206655837312124004982253477555064694216130142340844294144548561818071560680108501273518398247207021033212928651335581340255214671952436215853666221641224420608538758008846344436371925452304970811669290295332724628356978253703311246687622526819257230016373691295205962763218512190912830895154143314694487660009225361872233892851864539801932673013510712184897409825507809032137631063555010979284756927951941888912139439164906008008978262914292428869857774688347600279000461531271157344242360293863892473878428891123035549492625475140477663842620066156655065965721453456999586673407240229099869347502650403123814058996301384944920207250134526494150437730601899763549806660946859295407317757939340141635302121161180009484997364307628699364330495347687089435970508712931475007298047658826389154887308920555321510953556703297089636413058270721898903723073428042144848171030363598849998005382138538827774634347963920797100953880273430886141514598845130768277594423415115749264707937160403877374136269415741462936825378539436811741556631402814557072806732105185121354795105273107952044096085810058278265548358495468491272214750084914815006872125274124808011779844981708458009611522318884303325528657606763566537715806915655397905412582164841511652184168946316854331639798706164389671197777950180539406376588826526417377718214773531797262757122325612319172443646724827177545779291811215234103324314815518168329646804549957654541117371100926659283214507778118095971161210995532467941543049355436933102566165533334855080937056405909430948261449750420171074442843533553715497868215466328577082942953855264798638638443848544630597032177830893559848498158885783498123977637376159252832433073027215758635365777402674572165730980184649600163693914170660069604872674626647511965424353050086992363849203799623770923219702133024032786420126087914442807429299055133723733061696330767563377210005098940069441798693845884128198965616770528334533274109123887344003757055782711215589411755182895471089846102016598165589308994971233610928117940079697966165729469523404166299138144403560539096730603245624967727390600680273769048111018489073785680100074941572265193029257710042545014947739224306995533586337039583504192295382692278506024453638456324657218972542363004139531771426670697583589062806735725163851326638325105871047309270756772799393069819147921995495670065193640327283783705894652285325156608138138777117545824120766068900531702224229971584557670788476793035196534513869611250371741241949583421025281831460989283727778411898789077323649186856277302131702308987940994226516551512388190678383545387402255066031687176679798360597801540565262661216067184264281635692573356837441543500936648282930277263677556983596635883260661637174265209793719157067333866179022807154150327605196325248252480496161529934111367371517539887223387416754511087939846772212379625000996615604959151000667979657699950707782412993259347743462171953243573304359240455491363589495603198038508984282507618211854222061861076459955912969569790431464532665489245544598673975688541154099766540688941540498249090363764893433612289432489416745995527771889943437730105124092829947845351638125950495514039128664393559242269177383670354475830866433194174730204077695381985059591476667897930639504670747695925528608484884653918221163338152841837277890845874425862790548350369748154197753000003004963632043106413570913379036764462762667398722425263565461337619081886448377342777465104321496913074217759645204580243125646971009787625855810844667537692899066519018176987552892446661666842737886641408729476065823090910186923865135700054964166754347138320857646104537701984144526049611152863633780261204569213440857939004911980239113472535093626501991865614747076516431473371941129398646989207277348906039859985374594528845146885783540150929405677910202019298831836296173118212247060815751734092120204196439702317207407553725549128794455795474694492109459481845822333633749775047301782717190657333006437082164126963186919129612980695092105904301845326312656425856326712775175877125262575808204230986399431019608192332874902743976096219315422420220005016138743804110360743312036043408292388392174865908092708436192653878091084566562264653498769664447460740679922831161539477156768127218533910134466345160353793529027518233295061261527413144754510533327834333230872897611407261842925831749932697806088755167766234577322794469864211479803454741606210875906137110880194437645832235892093061812862526087042326087958648463444124951697061035843423355441534067617862976207627577286323733815661573812602757786306726254015280342473498642293482237706642525567472308631008135392824066219903954305563555767014635712155207195417720690557598983011494396676917060781297755778001730606982983370724398465773189352181480955405915126549677070176259151014740970152777670755451522564180129151527621382685805573810848578483583800460343456441132806275152345764444946550401898140014972199940325085823647223266979351010310843878286693879529847608713143496504015527439723131410560031327128514052911260244155135360678922875139286379548872859929852384189273922082811168073823278570769675434636232445821227333238909280470303064640938194321805879255882839096710128784830788083850826335987339277836380688008481321161041302341936263103105358921446583872525544295828623987712026535366371897344074965567330567579188124422277400712585491670352468107660039670998337723872037111433461859575486233168570493685036730858451550967729140197630611189084094376433183714752947770190077563599442539077407088748658255393747469555188471393601378309085064803469758019633508120811453905586513697633425993752560152978025702551667109573720713066225760630458818207329412468843858653124948496272936804931078086397620148361622525520925033827955091988330694030946869313707397679012995066906572561872669792641068513714240329738240697514677785453496878563705032916639404755271527870846829753572823946171362358992289928070216838114960255329627043528268489135719634691898327022127109036034988562601939113444435106401719611364630310251696409351621280128479901418379450398888946284163340729880213979749986211844672598338091920679571263609121028049489470470201535400268005371567859892676654116811640665578478867941108589622773625560028560819255360100359780230395122257382141857937867889433023540892907677950827971259373873012548815002640815227998337199660340252398931609469770986479514541612739033655736500566830006114811325087106134443335030100080865922775166465140141516756093257700411613308415964627863911572964433312906789075323183022320594229809476414992697532672740080212344210046010988531380131366539246492070524954283575014321862309759570793327581073633886750135738651398933285160564390720286325117455136687729055308112819107843251200831656204727545588175286422740393874806134407127647005543995221814961760603140965648095267248325179768497194963905613580168419286896149436990106003071473511457052660923424233696404451584398649196062268742916180355089951439576394030314056390610931308881066589555817848878816205105476520248939636677187069595651790688760826871702608921461151723631012667706921280493980433057586277881031231091540722464321988291693350040364302382585070510377405872932105901582586225093168201681460642992343073132593053346955596821573156331865437007602778552397378429258068708404088423443840835695022260093411174142261524594055251782309556852248711183548056720341859874923969257630422866149047364726637340840077798224904962468443419244534061449057373009159440045112757715748428268620640628770064134072688490715573777280246569107994743915164630611449273391642519067601341009366524709815777833471536464970286331013236138746051789792199841900293878635209733008225553169703423920144226605302462349488755477141298433811747719936673049916913879709841187099051832233527820114119138203882028392811025773522234928425824190227414588435055406871013190698861982510707494053026918480425865752485127892580985250236604018212816736149994926692953201210764467932464138255414215349920038704552174170152607419202569980386519139254440421681671931718333719199744675604494929021810211817158467767355028648932611259225123533075948839940312194203522308727884001272039664427807288162195866103355217870100322908012885822812566074761664841828383549319399457976959645166416577397810088774256161535532536616051646540997627917449484393559809820714023681889851694706842024165128489030383482400172461309257947538833726320285505308652233610715983101107211574440203099546629621606430637469031878339115434903077356585877716170495288310305080909691309142138750480415091510550173200451578478006406802739840045918298232854928640485809015424711958898162237402154974004294644031064951084794211906111920943975401484212050675192008501914439050814914020976214601322313968288520696531750365328190904211955210871341214669626412822478816659555667833733257354331773759476791087785460721690409322313365341633444920270373271598049025899888776807040907502098256041365403898171688443675697680190606372032412214485805603432486757899876433764420924512541652691599954630877283871002849288280122405305766611039599793216873153504113156468789061542432181591590618774133734588166704087366752710399054843270088879124119186844324108295505495603700328182022606151584777328284926436388238191334570267926925019634022752503582075699550413586239639480171033111091616037990821973430903597930875147822872684634671299346464362693518399112669379515029010908433439961301797172782553167309277309015742155056795866587912170405688232071365823104166424309713282738346384529957476330537942941035934363459695049336476155933779503663791832355204455124046977377315584779195790257562672933043059589744382628759757611398866484007769992536443003838479741423449341516221412783327805231053398931372716388653340969091718204372814599462301236001300168725321153292693413868899099418113491698062424154056225051591097436358104695189902082192308676278405204380120796563877842580974670940307028049940323573562328269973050274770529704259162035445888500358658238605125467468436101981019917213189353877198104132686491206078500083731584642362657994024589846278511222128477850956152501735949584575343594082513384498557465658318833029633206015258913009001924513312016357771132948875376083936582181505265580810929737199336302141909241258306623204198651912302321345870509284010587018326316000793073862921923683591987550477015275126192004362285432208968815206245653397501297354242981346215154578944466465914064767013128359001313948084276994916631425779183602536333198856224620608603527848258553404882739437976304607219253030885637555628325966888392094117824670791082498200243460799899832713668729616705426148100993462031330808738043106107649983575950445199018882982004412046405290538173093451342570951336358737673901052776938472001552179169068748881880434231991853609690873662029928319716208950069978100530714989674273896727945463989650553387208928414751976406528606606660439614912374017903505510788892032707435414866622517060376875203576846918821076776128794843131723300327225906174567477773922259991510659409935797523164627030227191263340745963853099169314697041748316358661461243589987840393639974883215997445606721522810278539907625966938530444116174113581194327352688876287526060084322029921981045584314809181907086663233710372048181709754594415553657404124044218672767344168343243024044089920121666755155120547379837994818223612461294025857238121156877071375741160120026981543714818705321377360908895098136291137703678580666953543633327005038503015281604966241118209753847258628909272459294468351672192035010116791087129320641458583617672010961195845530176422766877968363724317301851086738903988364254808821030959768182818068679254050415443962486259265009196330815098439839376654585652635426173699614590904265777763234079005600450195561529729287931569427444296372837579247863746068827135715563664699661733267641671129116240658531608553563033189228193420572369808645439366572332820646207462699019904034692208211094516619960365553842034196294206346261846772061928125122038307763998132901118262290209322630561208342818710481953890916366401588265448589716423719209341070385480902634690208097194276618360979944747066524398214159813365049344870111463840560475969949432520058076606240434114509829008762412319210083908755007610115492068581812518295560978847771201087485197978641336814042578637721205371931276052575071152677582863717045684168185269946442912588138820413612696110504430293949090784646531295676873594979848412469733873198459398059551217784262853908003538060527710183547828746424546691609242207425253093909710406032344684102626001586850336836929396349951058041047306858377253193684712517901895671400167667197016646139549534122333021351487048658199527577034207454096839015861452662715815649900172884645694875328506377718796959170845579090102465954690100311369289831677295014781528893479038151533048949704224815303461443438294724151004156587874589208752917093475840315438248313847351461888583767382615605880862764176271234163273024295391688980163688597939110750589320570561559509598444790736685094903892617627741863625402358474734408283010873224670723030616775050966854486034189247835986001114337161800844047742729743911917371543439277661534221475931635206539645102151971498529463033879664867735585763544399783492282399476281321455215970655975915964014086313663099859353044332543934239581054020403652983643795396715922892589133810081131554726572589419662223269461717130255404386220519445442781514080784752974398784206259496940726885485516490209519338372255382283267555182098232353216408377789954725714026746659044948651429787785742669979315497382918695830821397541267459746817834106922818583317018672899294519777531990719984056148995221889202370986034274784722522636423708589372923321221504663924071189505184743460183573861695986097926665568539033065841805732237226521102028711854067193270674322841540904972396268139252134360115375584772029611899765402645024027854825049362933157207115170828424507590107072870632348898578900710871132223792803557470366169912133248272397158145435502432092159846434484717673730939064244595504748648511104021594291865527689922026060403350100687788738106283560040651924529696870691028543833391166619831770889740254160678131192705851838733017188220223174434257568154150822698876457634189783355918012073896967680128585917514953121079143532007981791363769331024565905795072854887025830694461292496406616693019516379867067331792162458122123443851744486622799989020757121947597261630093121429763318748653178283956540912509145202112511098933825127631714921523280162819641004070363019231452399744359951398696512709211258872876820825276762515889308465076796143698213018369183159811515337912855779298928854220954784546998094382910844054373732125483883890507939985004052582718764033610583007599037714015458302440693215274176080278592505722200191717841216984937973103490791350799083826350980045818916154955420517491729314271603344517812433150931032868731029184290851848721785239871491406633488211914690009595102561716077438320527755531194292160516857597418704387479243832625326886258565708922318014472064938242771447293161411399686968509660281967034001552435315782535759863100760873024769431465867143164950572983055873340928043784656586632261428638516926416835450742172280240962817857834387529734959622359492284887091094138461059102866638324253733360357883640390903584698575024173927978795751418930722022415653174552195988047514787979833364479193888723614020453290275125194373221643783583672454083174043257173006137981581573396097981857423266994735713787277231335833906451157275434528946046698454104485079040859482084491804516689532141839477262802418487472110127412032834027176349677017810452291843859688059601733442747134618208317219894104905203692096452991446526355075780673971644763955769848052965264289121232996751398083613147495882410365467565030300941369669105192886485760128230882853712624131598523810875449175664939116727733263668902941535939081717228764393956920512697890030882669231677285809754559756496503974274518012503342380690496021406855401030584587747015283956424008001265761166530072430889125292411082522817914621926141787658738910334208321731085444189481821831701272011078284477772018159216983664947390845518465521236327455508633520427106223148255464114465921578821123866518557494157199350220387523342075214424382469974624955470227358463651838075151862237668740512404278363762343845494285358223066525020993624850397694596831190642451008268569330320929225572910198724265244967441282343518166244418952486012206938228164011655280526916466528457676433604800024428434176008775033164620780077346588040743439708641308850020805851703095162945949955853560389277072353195126358600967387290859479974872840375786190342533464469985843749069397966047719360920843265711932024536768473559648180832222627241984931123560979579268347103362757103220198259268477338090634864894347021538449892659952534664234940455576448483488715120811400629694464698138832560070838054158980299054431501199749561628079369222983716231086297768601690195527968259929655782532529124926592896216181063743220735673746078198332677292588156359767240386323212467700985298518927023039541366549448161901858576717078250944250432300124318862882748674931065136256295782590417729486889744504532477708917950403071629918112893910203365352634608069286689854818005585478693276003991166876845877755633430663881438564730282324584971452526859314178838175934722092074608982342409384938034175385218635278504088930743964198992427268215749581817776818889066312304641797786016543371089815453532726204246369899463678987818988426608543484245035501775588172975019897996956556527631831666731584314127659714331241919109069991524695911581731157089313407816017801126463376716712965232022074089175359793438346884475370771894618439602391406346936773303411842558903215897055242151834259341946301872783808295858592832966073702850465967614363726821580766564670236854723051438138060013144541740312818831525749493145675494140618470223657162377073231178511627096558580764383073782383154153132585309392908386999580418901060540116826346624816128552441188023994060317342966107432054425836438560815929543578580225655303140585128702269570173490019063419163401152626764226434262615245321020755127039050590540162278782936374213855068649486891144821148794831472831381746052175784421609455906389932617752603148549382977857924546042446920809785991429822448891290667406468703895490094103020856570240361016198548573215301568733586656866947888389740193851507096336777837017363653137009240668075777869590104673498718223998037184260051646975946324112745144634209661438642831054054930539644977140839187951766211364892361166449056663493524505234931515590111422845489916354693666687436768119552384693948188180979594138389347155780322101203617254837512068811304449451872820242640217527430435095583198772194045048064433195087172600655449966426740802076119435567505558138165975972307574970726749163860532629488400461253952304263890436936444663540720509657668876101416839243257334115108571465896415553961910108294369594506629053549153086087049024170215306272644531738677898516622738597185801812603074813163793682466808662949079372764073437360062700916487629315247621084728144597353034610417478102079485220816820621751794489842948872332090665557148574318191322951633647838472614529107595162782274535265367595486936676555028909140937067633424414669706629980828220168834817396208881546244494792990184200078842969744852730553233751159325788666204221801424685493526922729434210516010429311122988037778542504774939200584767415793721382972346651169664673865696795174047076508666375614574914058467713194490738881703509402060383019446692515355819707977246662969259689953301218186547777953640638402866456379658638347132317634818646928228075213617596571906112424260489135727741080585473970706869724920521818271645131924529490903381212649768078811457485340075358571725264470546292725223173162484811997590582583587350187616926913817819317894234166185150692242722414755509332007504749011340241193353831797191341961064331189983089347905616409331555387521706149452772756178366638532072463316832655568074817818772893473194533139495446394858310285087760729554185786654454638895272238314870483380294793411195120250651429301710868403795238227252860363991345061772352278322970921278361906577094357413850274671298807293928172728700300012005992512290746399307479278469941388337462672931985996832810400768265639710077297001569849190848912920105763585312635375318459467792054384540305324670423847895569663742701474977091037610447490684041772770766854223790783603715877669554014169239324864198173905342100092576630001707024107298051349648768207436278317957006782596946081198691387916534131421704857616609404611589447008018423243613380682035452293594234055128063648049366647561934803834724968859217121728528858817011683363081734690491050051121257399856914298232199640734056207275996998425369671955850702735846623908076548587030318220257695289823289019188510669319818987346541255001162243681857379300779073052380191926955163661873407964289220594041427297886762337213707423764464456731757397913351738485769247356495825124236878628796763581071280436539270888183329570789032342804615940720524134136164145919142332291861597738146812809561824423674050020716148906835167526427616173342760600964668438234044676972255864610073237002072912363360329208217971718429524422160086550674661717074294677292468952402397839678783338895494118890019268084471756149271721332146938212434068526808557620277842184697246551250037610606434635133569393714895000285775467242099169816560758540762921939757823266296348022023075263554280466878730882141379616327998885194222536465921106120940997370460859395359635851000394698604844704810652096487839338234980685576718917924886483088270133374805176418183524506054926282985550815751241875139511218255802569705569327334372497786581310369616952251469679389120555526882452751359864459145521002819488379174206953836292931349272956501803290674989838798056801688814718766759609641466739443153366701461864990118733472116567126960235882690151301268195964883948809988440181867356559363300066350286578628896725211070418084859396043101613615738720778588756711699492144807396894677612207422098924363921946484008544765897547633689954510530249547102652843082722865425740219000371257156770917899766417822556815499113678963209360667036772614930598885346167076374946882596782691076645851448585119636490819597938590729791774972376981658858334845559519886282118532229776815914373931235109302558429815685154763205843748553761459755411338139511391174674976939200117401121792438968958617881853808023141484054168895068635832085761280738752104699695071580970269929994070016753510350132360471421027589515351639913058827189203791866428995627672971745457622793881917256522343688045900050731107373518047211281858663158547332419730391128321711926403911627521949205040585754521493384264579416976107561516925045437437408957916881745455397483555703627164924203375066213963275154476529604998784472336501200096029236909227404536548151064009857499222796657822581031911108679565807990835887106695532557365260241929110947806976598105750174268720160298133992267189776843319150296690015528723846002585829243869066187481538866047085309579021984554568913732697447218198427652729570405788206395452374015663717512057233033542700526599268108959074025119136911407448687010081159218553857658851695357652870161422792437193411905763950868421055194901905783268827140310196600450033879393924946372048296939719312459630074356020833330832608271210009729548848048236236252101742402592073268942964758753132852053086148221685270250089655355318109003039168641445532861191691303389869787930334704570800584951652217236235945507515012923931476180135432433644401246543890131418189668760625367201957698732658606498209676290908940409842615943887756973750964161121056034447460083294329831017570542680800715793949692974180266318740441261101720014125384638441366871556203486330543731445416797462573178053503029310885986100553781635769742732007894311698265399597545546844189595898718070063581301799834963944305120746328689071691702633669079821933183567803316554492061523761424338893475965437442901709556021361752546884380726856269481985791396712779086592053811403270650960870414315560394355251507743334274705564889692685974880931847966729220445185795910971110509247272911341563816892442380473592708284460354310372600881552601292902255015946355736464632493245853843164217247193983185280503531411564864663066793125967130604719884731772728429894834559261917316801314404572929167399342811102015217790245114590406499736675181296014619848859667013024192242685638165939811659024374389576543946389660723428730613219101307073244566398718556071281117036473196363618893519503590393857351588563917209565022786999188734730294644940147030136994439106810052479133228251284994242517854124831773337762806956873602298981311577882689901143114976342423955654737274403289501067886566651856359302459895013387400712571900551581534400912662888733588845430176379009598457286701905453972980879003088836558400588865638635402305791606933753013073294208376310149020266646897032634755326852173396026172275667755197754882156579346102421315756306288741845515710616304776842876694647287543876373342648275456224157446089167680956109125504129507022811372109309744236966381659807410268740002269556452069797572564899895447819655154267475629986485038817959050209247835007734858450534482687860570843450953284127434862617230880847822974140942838696712963026756621490819682749340469336976654761413291829051771242950054878864673797967881778007560699640080663316686192375453657219920178984745217483677358516227543968810289860287052282532946101109194997449564374249306873184539947434682176398802494689199644570752614243598592259179940017425712445260393473704704537411840830121493838016407939785534754288957388868109386862377959038799576946267867426290496642794565757894703413688594692319436841753590453039771798338413807793561264485701135626631996176481238775251695178095534342742155431564842439223558654528669082280565503385758450024944263019286405643735866466887690077627304702495978801526104755486619851626325142488256699742630737181145121272695432404794297518565402334102333334649012893582859332358531042735885562857892236431942581823641958081152855619458609060043511122917913640016043725809211650934873544127320614561107452280303792587938993465380963557005738793757579077436501937792118708176248352869982613248750854615900563714554709150424411390931326146712304649048639328758643375777307067052777017389661387091672852398596288404085839863951651197722476815721368684470756844646635100012490439153390790412737735827710708400832537641903829308696637636771926761627517745458569472914172102296881815356209597872177795834509455167452958116703772330607876132833939800137566931808394132410109616628167939927767420359471991634683213549951562268686148575365851166444736799465315387827900627520414130815942647846240180852245843694983965411492786856840027129668939051608580626023703807393681467780259058046785123389758836740924826452509181464631513418804260770894770610454939237881868695008931598081919485431210971478782115687348780026683060585603044981797404151149498937939542494338919221624506542855684384747508883663040024144345978715459264587753371345315772725194042032163187856808933278681964026263312847097320938478836951759031349280285046474444682398690873053389510901850721733905301057816142999022075374820017014359221059219320819016604068039191841984954837351948101500395861943257407969977738976234470632201025616534053522200057287320788685203310023158905375896826202739842923883594547929879479965913576659769608329926932882635159505382130616238845098030713255161579104820751066499454182245836579651413576163343557647901108103646262059349470433828677797517199599646928661663043738131059031938292437446824652355868232101471360480617776668450846931586793957907933524925594958230538388398685684966492412640222689593687349793781365857317451940861455527534600544963822922496397632041568985265752052137834391125000710790472530091357386949327013215652078380629263216154528244851610120582666070926080371300811250578655173048051169838804029065831903151376735067034500563680755349744482257487166354419231757343633413167651339888649669575003810472394548923389119057435012303394443089103603135999945889549323078104208976131193151791785149918317469908246608418972148620389074682101948078462383010493407656766815343405605738900589144869029004120238428819673086499324732179427103509193852016823505734505562301985715382255406371287977882173441793208661730966427794043273637561596607296166029375880355231385855718658282478581639437272915167133658282134948836791752848006597578104622734571721248661449936557401202649415087440973985419517799345284179333975319822955191837358214784518610974239685828667855797008577523149430832998406276630324631456666962223207691113327463391093347123041714198659394518744702680484861448524786780671016466619485018748718145621008933421912926874509666984702921436563050903011917228041643907150116010858724354983256324260143561753466185137766411516547351741166579518505825677184898565436325049105640465916522311680053001563593279453303621982729588900677576726189462622516031841327648272463266540515042534115770988472483497818771494453648356876659869045442349523157421673270276805546817512204709098815165747990224454973828781278075377902352888132414774592255954466256104238265080468893380946610508566163150841465357785535596032975639638155382050052324954069421726684218990276462558041679317124780310232062121069022113552769381045649160774162563655156852543334647194937359663122182002609637403065249330144089843420898194527127533522392019752127409827656292758419958399652933877125835012292154617341917911360630465350765040396573202333326782838926315820143165639509069496591324585069919303056422667444767645422150021729574753202879061316409415929271873123288203446825989214033143247488391419921986490970921142480018603462550262239549422947981202451341396369506065912316827822216378683992566515794646160967020070278131070539339969185356875533956278775249424327333818334656034859494726391645697754705303057807307740909003412175377812357122560370816698152931802284809331576010394946520986335218698723455728759235385381412877725072356517269597791357520655503040676792027445016821424179830594502188327029781278013793877076932624604707797017482282961211967867470054181630252441641888930623248485562039538500345684607365609183651980724755183990911507477872882496012393622115080726031015770614106760013688271333585010738211096991859152154287217431716822759703335220932980579778953076594293218078275617698010323006965922446058501320742175420934030685827961681323507662521512174150565455756622742433723349633542831968422206547830724544249847044094981541265596219924301256271361728747928585525956865074462133693682993271810460329912148044976686870226324324582128886369274656918954909679116186563810049509259346248371347858021157261963864954154753233784752727882442809336108249341739284481526670327292419056183327376723716279609736112598116979939892104245291364274151963891460111822923132454642800196796596481475970334083832988555178287080235532860499502244406313353880522148219929208389967687860032204484833373206487062750887948893980389892352107696600146046204203382935309959700417571153312546886474821531726460951267492646568775767255143542144450811525871070205245460876323556693061693827519096896340934213590798558919526077517406071650294657288570421640077536754430353880214355669663447013243374946278453128649836819805013164205861602492355787257570928503046401205781645259077301238187679006625749536973980594096533736084411816894314129457212753508919593912425508747660065279580901467804802967523607158661645813287073100901720460256950541391085859410898162005672076807778814791511397669902030769831359385526490717774547510637134630286358346807296864648685556480879939706652102192404101936123376492590770093034084005621348225887040049447208804311598186876449311961306927369611068966416244207314599020612888868398599841989904223197164549210419465686357621489330751774553307079590496282598164043510032049857079035516924100672870458027092893540430564502769892079146633751713125729627790691666520015166553603449024523682730027541509442123664754622280393812300631556390545848130946643011133305474827321447369283496944122000329402829225621184869771074898545395595430401868403231216397715429307324183975504293608051183570175739335150167214899524604947252032853444304082543045565327342890095943968336466658001868763068504754613382040388495892586924675057216331140966503926154246244875250133226661370463203281088633141007545506485389030293148048207637095420293392729807384058558189321036225116276111715027941249308695568462609817111518063932960299417077304921922733065306853267433597480429555526133411578567109373429278403502783370052414698468912961501799188450959335165588409453027063943268563508704068543266946835573646899644229001799730205437738775958937255482147411144712650075482016039723640453726510584654704164270579999613520676301304074069957620835875644144353443666765992618868310092902542854577664006813222119705581754359339100953423905432823244462695782570266901421452579382736418043558272319024885106205329231164811514651888941492675967516290464336995772990733806329153548549341878900671089161093311888709817381677311634206730973602618036156699779095639411017870508141443370101307783199000454995420805554860277240614755287360280741285417643349098147262225830604156316995160136220247969274550249359381889328506775419539632724456517279899713250350151970552917608405028545464492285753528857952594967852171861974408329876468310093608734572674325527179327038313541675308168782155176382395090655450715959827332852417593282848976274134743635632351301684447311500250570105681409398354228376220488594039496203584516470782397423003910366576408744689043971633167086764200048836153858109342132527136900509628407719135378503917352536846154774089011723132345334473414083637081419839513151294481409719638677560738611234661387141340082317119957312685849208116795783131647288337260211160675101694979803589431754423929365299074225826396103145427366845392834077248802660190360538388068856680109805250357029509784550524043427359790465363280314695997052074683606566250410844790842330550169526934724865490243269698652181318714132738524518487569906230094166101149902603083860852419639406596879976716236528488251627710774142582657696980050835535212696561858248195483209726499564509086170676534794788942314675737541069713249758765173134189486229531076384243182299407225679151201151319645153165816425084171113542722152751360700327674548450420783669647332131792974973895008055054583818786766344149115769715905959011483585271700918355736314257566062282939592105987728243152860292192117019045262895814702914539961594559521052081472350422967118048590205511494793444317242251809924296838108078818859740679012010810051326067545341310358522835648228927365884067907799150578645467330075217400298688130021624445563314870633080760064120649057002748100785051072226828422510477814478261911347003467688775185314297321198246412226062986190588005474010829033643964974530717588586646993196319315192549953495691385595411791514685746264574727577030033066342669424361561725577023243467924161256623165671471720005275564332714115580940907963696306032308498474943400543079215420939315166615841755063067993971109397888057499453140959114995287332339598450680157092630904253445165668407886509982107525960152689435802896060151331545835773100559858884555221450118832630121488366742757042556058279185052789149872940217929999777327130726336145686839887053311096805404402019672031137198348054232172207330426574149879408106621290195158196629828786623449519717176021119759064618104562249825247714989070515172955025723419632216790135702334238826234942961101542696334546294479526762327967559594403223348081111481480324664755328449209677671273752117495873589567839102694371592836531954283908228524511837275042773742397290561200714316531386809680798993726552189767975135685681089175056047183199839429987055714972962971511956437073180690196538225969214257695046496045110681961693655934671478365083195193661718390753438491501668569401168940104373973436960236968543939731350885017099614631854475619402110883584204138140482803503955211886106935612209999650043650566272765723965334658256366106790004588024287357790773979347876207040518824397174721735669582245078100510106021410927264472594268512970122558611861546814597545383095121383262342715764824676843945340865015271895668435352790779658120094469310785366570631234816308462121792979959679286274936571810959733711818450335531746627448604059630583419983156510850813621515618086161016977950428637025202839321743573385360872387070411458706143161666601585353469458261616177138220534791652181553265504739157651412770570993067438798617293663406273777256348045994067458693487497663622010027948607106781575915863664902934257384040979710192653902542283058286398021766862772188559081424668658563702952362518811186689898567093050852825755592424126219872113589818328908744258559781276843096158703068693670922778081244093903385215596137745581558150730612513578388050198409209469913601389669394188131581973257550849704262793378062904463227433758406809111652237997095688219201007633179903034099997382641145258863384656046525198599708600828954924453368184303493502609247680620934870242864502432448811384735117481547277328539103139012991788803337484667970261514701583076761656909123554108649661288717042915748284701893180979968533939460455259275810877625118620595798613150558574830232684903321385482359440638520618521491470051746724656716441170558319984358658984070205220624522618882388695605893850517770052791158094430099858612516619169707299179931344159840433731036359826837178909530333950608858130045280064668614397941698500921159642218230468272582421205540595741304380650287908141237973900931451329572636446695649600668304739787981828319930479805675785529160031064849311791191111455320090000444849521428628111929367439663739928419523637154420896065668266071176786446266830544625399833965583955649933356815164654763570207388816901410420782806495778813869090191698988632419455411579708605778564846454967725073116051207244337243553748435939027292936623825049552308666173686307297454902299065265435275463352954571445723156671292979104254313130661496506468664990686636914595743280384947502960428233550916009383843694626241132569703663728447087720370206717044437305651501576789981515505211700536664884264832728088478628365069441990457563741708919510010039216912261258802723923681353810193099788185694744633721881059749940723300078408385548187352301294114095581422072572719509444996135778549178056301709331269182741362084132346598315801583570922675096485582027970594167267687177501463194734785653094965442999381500092325221322469052437148134645277756750246990345905116627164104005936250825743387855973818712583821480367788529737602204780688520484544424572072572027140392298792088998331082174931056141121939561878137273721625636510356627506941520186067713992189603941284826737231669712539935324713512615434781788491004157134005269079637469299228139416825475864213381522357735306268108910191925637371637383918963036698142755715920727707168551547860881777813028559776965842238931507832351810831325476856500362496458372863054017955785002287202524196789561062049180899793456293147798081807397625624202112551112533137122765020600068085119859974412894279213438793243509838451079360719734250139186126096032246580427379889269303311728725093104701454777431261507196825277895309617193532440923554832632060506052183304566468085222768121990569093871997252092040018123179423632469908941287091909305269021827858391793768898891603744765762207751783034441073923015115555748321180392117606098711755595147413811696104018681050651995728774807578436659386672653026065785227818238858811069534845665875155705879104544959298662503756628152186703722014374351590421992519289020264209184330942551122673619957502727312929446887863528339608653373311499182675611567127439330255388837549179594309385987474218702877360841444690170876514943296047653744004605436382892006455326006739827326349379857470365933315274837312964687071841014881178278810682733658447659648214472213070883269195505008838654136722576091337859091217460406418245257069991948077425410620983990086950588032500326762459368295084842402111023739084159803959388272724576572501755544035112977850719068536007506055184590085582476633461596831341418013659486832101450825268912794001216182736651733034034469593315579268112671256954768788315779832680952731678030749559670952799124767556473609195795817331361622777122797677536955255530986963777336530228431010289966098619621419489633303063870729792244750468364725746030759881267370847040199765121701119799439546586048746057795411491052061714240186634409299448635002471867503808077611930114190286466559534242806493872936283839067788711760851319470591200801101981596834588999852720495403223608955852128280878842580843226550522320085536450304042852923915145557064253429129159879474303017352956341899500525858575064429555675604748910888057916393259018775144133698681362241675060314164587065142617749233533118388066856932660690965039917724301901791611284170730076888904073126007254469558429323638803021521482724945341808969840535915848812523783923216251698394064953562308886845925445344034320910618219244777630682394648491787202891884305397275189848018030373605196694771894118052101081488264086983065465429366004500828551155658875051532498378067529004220767128010337243055687731118281615071034466450429974283967962733149061767531371496099249258272259119116287058004551806672458693571821837705523747143565624711666891898020543073981151733958103134030909467947429394572423506454129497952318180496282442025884177911322271367457218367387776278813532624656867454332988959734555212652323105768792784303819289757629565251079711751491219463642777550706570471940051874251121720179097847506272858802777217805129120564550056799701622972011265545126997695720005247166696304357281063933850584136849031121705694435722732655713438187355519274619312230645009032046205105311019973932196019842433063140156858208028759780998885093777608189713920273725059749658270765536198928378710968014443496212070368762818555505124210911219894192337616964480862624891650304618340291384549612278864941875319138957690478704164881478526551082075888522711831913787357033809907934305321567447123609262067140936916820447875887379066666933665448535374539740081061048364861783902472437071807743847045474576019441754790257548434395976029960144385370004678631145806932447730936337119749832930024011049420110479368553465296071821894418668255113736874799509014922956438313614045249041771621117964191389674696044826541786917910199512741387257990134804896806347644558097827731782645233863704569683877353291733982676091519294167890478969903290072201735081658377988556702398428691530292523071881800627378321450954262056423581473999718245557329038692419139801660451058216432181398289392829585583003441845603044388113325358081197765171130136487235763690305889294792605373889710206382962348030561019430535022167782249334945902558274643896570106874677909744604643513182173377808582231445755122416761005735617047627770621585530016416301562643109401965761833800208838583359042372926718883934431703164344004928018605681922378279868666929623714529022875998661452235050068241599973808527195378507314214512949325677961887887708139557614772584715215330344677173313882531632651625979676964844035570467492119437035025112674158788041911633674975705023251121932594669145338353752461087052085271213521598440067522938530906514199687790414585597048484715375796260697347898821885496027453097780816984219118825701845640860435559204584194115046612326219746573031311331251613478700036957685863329972806814977137696215201943014481918335130133330737969021877640098219324200065674151458968755688069704438580619619123617483318996949466397019884228486742384057897529592042665928826134654053258135290626432681925885122717607292995231915643222650583360074661069940983379049521040969027477278423790911010814302772869699945035427861231682227439267595288731813293913039649863407166631834586862899433499442506580581618569781116695457838071224973515588577984170269746909826511406206401773518893216507904613488372087534057320047539233650437652587791942615439441459943540086116268817743718195292547690706702980487597339660892132289801015937253871223868056240618291073941049681963759183597501886521105064366500120485380869944685323242305782450774595889828169108543234000203689952080983065147478829665072618818696464048991842481668191399996719870330739209816744992408724219671547770608727896668172827106616994919695734648384068004896843351306384791297441129498829248783898892168264439432968619413865846228212317637065818418257122589380535446868187686968534584834555074582146026908746250644911471118468287912639652847146771511310063077001090752920346315170707084951947235311388238023923150566462109736387239522955336716532982702896143716029494780445747689829524139228371728886069922963433524973379607043841751823516250057869755229219838861219085725271893055063048745616638031383347829953893975459487720927480286003920918133359250554128876224252253713239491081926576424734023059867379559242343924554886743180055670569532100342768679359992778109747283753567164115320595890118375227087457773145876383856080314225655623387950718184893576470492332970165233179348795213685076161416952138427399243420263253349978711048413211027293596932411505734537213347341839099313345227189585546622477209955107917363789568822416783225669348858034286475971158599296471156595652821561238177476230308751370630606853263969761852584722444307385247395719284034552886058204391111733833311743609151452623962809108472294142360001128518583181845868670790690552726090487280091594481737689159841979246974985384333374558665807773541825954033691028891967209735439046017185399344564052633716580106683490694513440600257469289806553836762816696382145710979386929700736493358757609647241878757033069166990838907872636449492750106909814100755356723828204812386878314320978691211538210947809069143597109099167348541644405092967515595482208599219417048091552801100650028787120189647029713326618278418161172625022911996874502767894167134255855868394407157783595922363508933518952035790440089062009628490844117431739158878226513862041820973382569275150141181641136557404281902639685598526106816915413389481783695834037812511407347411299328654846780464616312674816882315032552111733169413158090153229759959710945016078747703475063146516502002240427132749881308107986254593459279755721325926293036099990755103096253825069899385253399118606566526734558421674365082596629061986758434162207165796295815251656047988334457311434354205879941934075321680531545480738141532333800574065931648686651761244701806362864043931235729022279125785896345320006048644158736088105143636116862560221978178556932809208244641374193570213027404506659228990657832315241280322432110987469407422080921848252827645342895911734028222368935601638864260718428053677131983363289279550955428265078285100311024903621358023095971677247490009170834096429525769194546939925136334912344957610498380016961209077748277175254184211980198176290326487805484111102292275446705970493377438589300098682808421671895405793408320051774705167054727150390112607150822582706596801990793458630888529743039563403258281125429182715672289004228579356063268346110659148316630265235171231893758344016023283469240221086291768864226180312931449361633989714271353551918787033396387229009337551742955026231142363397967801382985497286723961135645813983558953487947433340880788052477029140429470617743545570370691869103800166657173301633639626173147863888755168165163865679589908536036850514037753338951590538275914776363711878835152500934689190468436042612139735652990014675690110929164172407139419782272696960584981008217742941209632594273313973022700134167088361422467968715122614458873058332921059906291382023199992305759987672792643713941868861795608489155945292358549715444020605708269296817836542092204204247409935585714571872320113251218314902775603774879215520605458168231452153825917572211319389718490032051413788296681783880563636073899890594292059036481344721887519009306957728635847470262880654160104398695404350736705452450382588735551782351185235216934380213122633214949837833561560516202300218398578804698387585569545248380914655221890208993455308732237713567483725271061942451836156047837947185951692474468664678504265817978696694749864050774722256375760290139322829681887113959368647535034135335477597598779384259553700915585457411053247000933869472901250491045725051994840244258687543839369642469896195668040578569846592847922735263373673155302264853989209083185330380045643815629028627546987870933525201031799602363864738774591051068720126247329044974073391106762505969981334918918011466232387677178928632616232843042458756454611382018765794621356598674221693785973915147810288756388218961936714303473600726753219054843050593049796209903788167442210272870123766735152615855624937210019293992314578683465374748788792857675685931547398858519196080933035261331873374159938489652279082606019475736203659090424873090834925752482254757919032155785076563242832544115015447030744663326979246928843595549382844742537702174756682001079903608567241935469092377910159458139959020286092242810950479596353587331002034811057520943053945425912623403581224200478408607292559526333473096118816410455970696610250213997223217877941823850083589376263167687857545887768542369829503599061056726212574011217137285651746006757526180971291242261284748705646042274216807757282856534326574546831599405446987856776751668243606372161436136235877721995320071695007170106000676018944023441222907323935161410530816749094994488060732479398467204617948878470376419279586606141953290817348901414973839962325949709847921317165150906730539083602726541065652587820006603222650955521071581953142055132740801605452879749941909442239998511493688141993595052914313714924673357613317406098230944454197224529431463015091564866018287041818978332041701469298561429283847564227005681119992533257225554863711479715074272561067344138690724406002337704090421053325798714750181304293148670960579502584533218858024634821657475826469085453883006370986575755348046528305488794113334983444234915205728772914522634242837408979488412752884958412147288365745226134147031846530599744931984570984174665562309019877733811768312476160662949199366600293748088586114958426681965923370547025563257220712597782581081655536804947452964429242903515730747535914550561135408945700632195571453079830489522840051625886784233078611532462596612443953131383989776069113494593254065801819157879355501010396864702805934379296965232726445482144378216189273939433095054127638264795248004095833828235065019286571095963033184150322817429404359482116075079432372679603933635635910353662130590190039632076122146065356065459232282925453900436105176950755100292571772816970032216555389536854634237142564986860710011017756491947270965707398881379469548704309158015500479128540647278837976796570624526440998772907166628842665630908878300152974749840117795024968027345507806072460139373594184522033348709408529329657472856672059511203715997234800349785356769959066641940113363671302483377608478701390336427784061013327116311856144274776714310903946034538878001228652385195230479645132390957578531349464959825620400587235911070354297779579757337269740945937227178909187330465942600937570408044787954660420147421963996619144078533685564444646264564492094933247046061886657627943578557337714202243026503920497955612662452178621121479600271561952753649416873504771791743116887564172676275215460837010407475472520348661193721256550553285460616287209836719613447528507654322870793378736075537992396493182924459225953752942073571262962294964776526814989728758003577183168978444473480672070856088109042153591805673071872054605140038394154744769163089988069610395405066686752731439212113899537433768492734742834649320522400775672661702198033045428801032988541937899206975452403579358135742822296103588277984853804971010018789337758752027570437244843391038791694913943895814854860423949213727826536545656029411686121948731833668449819235530427974609011403115826808703617282845675581955972326381327207412594275898201307913401696529879484290610262219709753159348697470298139485717699947384906542083329382364985731964943702052739601404417459734302350891382885927857437068684768121153774512525445968509090552542413100760294815042985477388969473565179740102596879540815409042994370605002184068295585076697523242849929542793488268291972867329827404681529503501847606533586357877032572342627225316608871936857370674852061581635756475150586656983595716662603970722744201751041987842229034058038066853963848741182801888933118138202495807499821726318197043911321846710037355004443090565816987717772267695981139679488054809309866881367493557739575708140489460701825464558214739607412356671301347054898769804619393850243475741303808473736711749380136765761225273999269230311579793248849159098140367181319440172704596203706923888023466716431049873826676635526780401600158823350840876923792895606239081264280605790809436161841655459322819733685032151378340748276831243013016169623837921135042060366553788874492733370139435798751289341131567782394403364560168291370418001142077086563257464714612056422531746168308594526246113003136249520600893164251591608066878783242035831925409538999591646299069164760635664296377255098739328671771253620298774373223845984051079735706398539916070590790938437339787713272371081419662494098260555603954048483519134850457154998886572846078159755996389134773854106214742741563660421264762695687262316424115243259764897640750408764873874458815387499380994610736619416027935453668551183875500384554386922765411966683672342070664812909913673471440674945042701776770193952661248048803385190416933847394187426066258406753369821328327921648808819723008348472658771352231039362709905408671338211373645739971698701108808534395097832945997577745996114647324950696831136488847427593830988713476653837085278497665288147665076098774771128384609200542364526038934857802355569177485389759515471655561239621042831300967951628441865328519238706641489030953458321269812242129544619202058182811128394470393647384641539749487454338223348141589445049132949313848858635046479763476812943752248360074259943915431525816879392788161809908875158419155611654463867907174194094791626314475118190319781562303276883166452508350449198363584165026317103182592839861495414886951123358416423798636778191441431615360974376599873741399560639946569662232849542853748955988623075939444517942206702670350671335449497724165130298666709138101282780725810852071329129333283682348114336653372589444414254294353797612243370030255227718260239041173905634967497991778309538800702684192573818303362453582067221530703334612076944249275523634323445305020155596111800441966186463395167274646735998542719152910012565892374288517839075615579956098415441397896212310634333509023408064190143412905947506090728643465118479590775237230017668391102365010083216338663379106112372379611776427980604355132847686225249607546673383859283060329030850954402938463534363003316034526595684975683588554182607489961719107389374589896282689863474183505921345297477611087162700161726862747514598493851235458309060682177935291191058727200350635386652726733880362188542219397030530180349589601762098337048752511076259960686510835297267257261225956278963968174967753176928329738242767361862785250730870607770042234485377015518049599705763487653387518426736914552390862441998832312719649248423640284005873741690619946637015362419976286183419120441493754754792637623626425496265583750937651077992624126284896254887784407363670996628913515135352199826681949416883582975604879929254100919799932497357106825740229502669527185297329330646827288238400363310879576511969588312962723247871968208039084530860374403493818749081198433595767791337245145574015693413742747795322113066067876922612010533105462168336810922261327206714235912996322754442212877015772117368108438337535883390789146589672344426360898863619236895130127200390288781986666925737126894188278170356443608240407024193361206611156705431974204122128756127703890494877846808776171321078590558147070147338401273857221676833129510205113154590162275244468188128743222316438754979673379349886796372206283060199136493744150214118323737949928870642039393396184008703031063095180227509208224298189404518067633026422350785356970933451876733341527735816128770002041692383819756192666398969472682030356267943152914531362103721194148328310434246598146126027776035801958075382350976931960273756302997681946777279412503921144036168649700873614317648591626390817729635693095223310224699471734950972607024767772678420907489971720034338854041910006433933520138391306409686656707562616062208786965975496029171628823557081895959472702388967232731256132866876714547770448458279192606252635772678361152492485231341861814418226817893322229578048474581391378379804642285734829942856434698952066480886235267632744823938544824091136526127724031370823723468153184690354382211057127986350648981991482452718027298564761742758912505964144725657850690317517650189770266317813744656678011603563093837679348276946540247573055366581864912856271220016651080906731942665954859868434216650108123026489523927325060609292750543751981630936447008430339361777059452032235012127594849325063635975513253295020678513901852987533158792503907618890331170401346047840546809597783699498739822759975643513536856843239844818824061416541816014226950232134542519689965760536403393770507037711923695844815454177805013496055099600135196777386914816633401021876276746760602825786783578269140466163066664211491960503032120656812949794578588335161347358396561075265599592074506942752448413794218981149135366290258511518719683498227653803110701982453483059588219768914991677044758205291380522209522107940076267066175549003228288836003233638774615572861633837738823047139584440051015326113154090017091850985897265402481458369580672368718131730719647535679379728117778400811083574352812743804575066521706961977420134679611579744897960978417628218440441661566426743676553831617368526013025523523183009063231524321596416375444486381680291529026412354041030759441809597912565886155757119143163354879116953076424155580583696248808842091490644212905062605988082853165808386013328984502526986308011074227164702326655753315231095105038602258144228958737248282802671386022092942789743166966008305456033868543454400970659726307374276608552090877620250658125092206232594619730951115860634803584170658663775322083870041804226163953941474813425370256408360557796639961403792462789845029020126347563981323526571798100108477490036911013354744975582093022519859783867335260647057764081985160650543530419270242668001250447773235736489008882026466205301750603202516478379710843756883696991473180836700880972100571425828219785803654007567721913602656252917961343722161887178007283916083538463948877067081945758194066530158245410819352093009685819103440840589837651650635148356589404307793943926674091356490301560941430722974280670392292633674739783479495175611580684148190866541190123490371679658021568145405412827827632497376404203907918495114473228661268816255721642118026342815874128947188051621874758433822246572111033765653593126199637855243431210619324529770367070893820043480471505199150702386987250353599899827008524997965517219579479643308642644801245251157209778380505863565900214669011860437418418327734134209252332990967122783775758591536248081131273870072582139369114578860841172103911575897269833564866418976115787644697379077496311993716331759556882021739546932750614900582472807463467059280747225638860768471879912992786688215625952519229136991346341481142411493308758088674463221156670173696541319726564847827301653207232366126637101567636475511389530383392104437609070426920166392705241216575235384371134284407903552658917196939125183529726223204347954743906397235533120391951723446279748501248796598894929831847816378806060597988792693360107882591923747559183861926593223837697506690422362951832426661027503752210867594735595406013289052682311432091208512687771389795260298644834542826589550412437853365401446920907052881150906460667364908682386678972470761133388088951916143153510775616993660800477963186031339765993038033030304450417869163264799411062194262260915556535139161192379175591982211236850512376934602858878721126685894969812636173527317039511666069395984836606936761534802159377769963022329478634850157515393833570881260611924113788073345027155767590588831506748385374386011515776138578777944379793069607505406125230474127782272066270134949074841602941150418892597644051493632985339049285217245986979631282640848567055927879289241555337200348296809191834424353077988268367344089515277745621395820276157500636063145174211927680957680444641223454568123927792229783049675305856919206949865096137628257337240947934191865306694226976077690747963388920879958745683148875097168187196408420869335976983575642233597854840125396165305461639375837349588621539509542907193958739733209299680224687960813357726567969518575374680522752727347374781186521796423471410049482777219990568548962685145826150191740972629004299639365639620078160361551933592632190158821968760371138550831181145132822671833782795173471551619645831176786819055105653358652037949137426079325226385643406579195354023399766499813440876028167113490524831597738900958434116507999747994694770232616036436224551135588996360794798483057721007648995439857027203126753894274045906402789692163948683406300849976415032011712388357341103004188044953733565988704926936490711517304330198964172598010017144720910366780345356167250381672634019157653602179902657854775307595533163680521492783939284206817081815127407543602418944364053536179460833525859553768668044172834646593721288508619629235781294535808531976310652933936195717294718827597469140401829654308413413166023961013461823849920060398020563274457379317226393576361825404481028547007011752127771661190019339336245722061456721404473195874118366222424152034013271440826353987149264787223911656718035871835323236316596751078103641814111087707722173687053953343439824310464438586263435791192696427107232396407533748716915213987920078810235031212722863758554383344650709089267825350705224609297026004702798315235814164211353433274551542933466115224799072676233131828578543874949073279860860272357242163161257490030673693355334847745543330356698393483140703800639674627499823837899465583472546860516037759751819281375098097170646856912244297459821465384091938796342373845142022295426246037485632092146760773161799341329241833683617742474063066565944232662472181603074084960268607296800689485330572604660244598502501739799699534117385162006674219183152917559597002913537603998071760604213251001124108186692133858758682047683747753944284200151069652009317738545259396191487937671905277147133069092634709647629569400239707121391363128895855614952479792337794602851236797514298344380502059856737834896147876681597557794101879308458136430018946542146102919300054261242415412928367465469657080672865880430005960618626366494810771372680073117273993979348194113608503671961881069854478952379278641304697662357679456780389708107294898838060979740045373458058230549001360492059109603176706482086505433074164457512631890794271505499390137184404773892188050817938448198581855593264146591865386503453932141930969054925613909133327477181861954674787193073064062193555583672634879485424003458340826045656723319937062106083796649240216949819930276253733146690021453828676404003250915827501931566976479132631728972595825526413714167463899373325556208539694852514665534718476092105559531013004606236232283717470481443466914021560892177049634766778378675453878467154509212905295291392609304141954553468535189591789702501787654857179420667628806503689987490502527945080734060053191890450884179445766285541419913866015331065865678954221314756500408542893743909234361655268374393859502472054811538566632679069924620469895055758760616653052564862472316954272296873940597300247917758506120335929131780232686292679070805845686100454739316643040871408024108058257741714007007469970976562678908126928492470257008305985784085228804194949223988468725969168193375604705683890690407294016993848916867995036649245479327453082776537556684541085801772021200574086550362513981679189785852898442722700513242964086129816871343853968319594022023439955065173132664521723383135236770951133501510078502052251270016590933923198233639907447372579535858023377887111155488127887536864339155500023172795537811706442945630214187875992353163120651140689329790485470824887074144784067195232303740178353856007162261018608341086591388822596274928395766205381723687385282478660648486958595526614548218477068424546061769629638390158136735936673385390253155312854144998240480774588333199770673684845681499220465395255437377752401094943881481565406566793632243376308173387740031600083870896059983457954915226375938572815715875967700330110586958462263901540705391165752225575159468418074707504969108556560148398345557705140998585108387755813193672288090310903602964544454645075065766480764724634599682832761002715137932172549591766475185035849596784537100183588068698174236353460625515268095254230931060243432630776185058626184381623008711764495599225180872150268028676103703501727868225473000451523893909839498787218256917918573008203214786483811436318557635041866625237892898722924442974859601535661508279522599073215465384926019096741681493867895079921625716894552235566382867631022141066839564533296989762967692697959877927937549058040002558637111366584688943965266730723704851734595109998335795262774263802649039273669338252592623853714148280242381046795309733649360215019214159085806763453839784581945338323249985108997601048491844895594222291998142956809106745573622052725582715096017801260351482679666468343108109659132965996470537625741604994675335766888251471515938385790555686771915529824832791979862765468921735033004756756139930983403862447399093211601010393090123595787469524568217720017250018750011691470625248852593870631247369992843716881191819928721640658612398345241752263517724004709058365084743104000475695354573040043134982227001405880589487392787010929824008953680464612710277838711645514282045435037861319194690821604521708244348541648428581358421379014799269938481492392982765955268098824938297183314953626064024592766924725947746282657060364568484271421670456199391834627309696634623665444027206663583701620348677054999412867770794956069828365331995834277425557467832618198722194670737776707356123527546915342595518813308161660353192282718541788829257321403470741912542490454943273280414710085583607807917235318552554991066371476957199421746952003115375420947245686743970258143871571811206038481595395177622807292088054514855711877317659928909991880588569196167270127133180375460760944461674238970762394952839933193464119567248863155616088167507555315835872192617403542330337851457269458058578731541792850314638768361668941913735404909843842447286004345250295690053952521973282651012459165391346418667325926741196867484732315162482675652196706926731049859570042755841451653533374942719946672467440121327546781211622844048789534221842052842141367225620883289697512847422095204220130206383736552218093486478144959323952434341577585002940205218154006590800158212132830765898066079435734314390066158314142835861641671367719839082494860375618484270391336380508987920537990805355837795309531599708668091934817385866749427501185918977584389982585087411554246103495515271557084286478151815120818274426523775415216341607020424912837598382714448854121209861801661368542928644925789198930259224653100169394906181755522240125888670397852939653005072782220923878315595782020423214781076099183535366787988337108666723295531178717622753671975034208320590394092200836585768365912384255553156220514615407346120237567620833548556003254685559532771996234422641845129267102153033981150637803688941782617119441266888137114324015712827978194456282206095808840162641079506503577148109687555486679404782989642437530167830535009219159250703539578897262913096440951567188569421365266431843245130302010982070070442676800503168091519717773558913163375114741981947087090672103835898030928297520900444913072889922552376428090916986500970861748986215481565477946992156473466065822160494216290101515527672947372478193772580638930788492336728625135667047312648492545551164726927770320414744227500299002055450718680788043704951327441351914842597923635299529256471367373711838824081917626084728782258639322162851053288787201069524447099757697806406036724085794554117643235856980616789880816757755029898741079484390644586868183353719499232833774662798871614336931301121488894077967243657133542466485624309823360039327062859244703217256921545002263420763896066492251490679728590456864180230177041098939504166175200678734943103032654631761806500330106402716790619418291552840239314859006961554951166015478544057277146056593402124693592005208837099525367011756347308022984954865042801623980714691755893607231971266234078608583822474437107807877220833780259986577596603379357671370491585795125409350667699308983205155531096231055082728956480573566157919873337327435267654360953824372700463533627583169455239341864615598191380870190936279683876687641306370177476314077712190654349580256633006152834012675511548911400338924775411290807024339264912953345165911481175357670147014358256947482078019687050940613669930526085235640038037753308188463304190909872559510547832870952313007378317407874781615576359739927439471147473726181289307601048140216480908536281430217223518214497601673560270192993427216663451047609136559699389886501771701222950828803460021522196450733699704487697575961373310032744207861488101851770220591425883948427076995028356647791453456127255903163309326108074791349386569615030193334197902674755923070338651355234558058170467359388748700592581934794587671209922366356358063225446187953619121746436488685974194145057667321090496846793319774445419807020764844569205816868773822015233341704678333282798626450187719976396965384501709849114370449609822301787771631771332866109647184039763510873064860235477041063050632996074370874383421287723820588191375817874793032865293140685499039518381815501942376609361530102229195835274542031564807046126281317513678005995842162933148219450818017870990905107992194302574645916067226416690837385582111553176305694492474654179300288131333713200856653901399437944293871136827055911229667490718329038627810482302233415565047058923153864021632390200045682750733537993047267415221596451941116280341597676022110140868877832226778264402205116236852805720592583821555489816369675996764037603146202337181238115370830944218012728307017316428356584044483401924364184713423741147384418227759269812223489826403720034513328868783243231703200030368427179900282149015717286431649620242581869139649624782869022684542114329511667734327843949900269427261038828123357756664593861919919493113690296269212001236495343064697669895623851999685765382505869396797482665784654523249984737165763851558958680475771028520392035733549523877294496634253742224217592172167247074124337997277502926295332704009717096096265545256360489783018289564580985742857030425465053909299775405910629032464888760568254158067315576317504628216363141565094566844102432415292335251007102194405690370446968491824445585123607585263310481172891886848565344100533346783849198624390441217827893837286875849398902100137478561344241908962791731202094878779947980568357171226571398939698471805209825159822039567754521014362895547908605856928420163043618309360365509731554991108589424370316827476299658029084968708374686674921972446051080274584668609172784468194375071672514992342434287946404984519513051483176023338725149852858329778089597637923486116661961771369963218706790257862444288278659311144328445859304161871430099350014024972006349895846634609021455983905528972888693312318473237007808941300249260432526314481745315007358131712302993998010738975256200815636864183352877750154711671897434207271084402922778805838883141871619219817544912583214252091391948906873056194923305903336758259876240926861793181896727625212105914169995210998987529629988539641488012508187624755090110619389198032279042837499860720614476143036921258820842048084147796227316460762477566905867897737568382438864480565843808810875914785025678769451299693030723508190632373368164472123465387448029459159974723443284750222381940960436898270981514870085616522064258647225245444172767438497793816110318694755838718333334383759612246388677854072612356257669711561696283246294529898847641011259732319678635489024783670387586955755861819037018222593655960808580042956226586633560898234040345665130929513433632636398488670795142648664584933963718503053159567235495062386577209176338583511450675180056036900858265995868435918239974481090854639803131350263916858968603258546420497020687080758544310453030284357352083498905988019371447708168031870562794361091592822278903348634629179135405216918431952878525547305994600948040278434622873562317741777088277400190034434232145322684218352746361722763565537871151780913524730166392506448933105970336605636391002257972800729757557480022849310999875787093633557790934504850119601981170279879823710082558978173900955074457239402516977429048752017993635364001812039220368124363818187380799749677004890951091816847993374108886205844677214647340625326034715755590334855286328943604517177951952447249813656902379662236413791744627702245687079697636734692946730507946684439055798841727357120259251391714915796357208637758245027975154895232109658932868262065560752726736124712143919427892597279631287762073755334338483775612447011996588930045768687847335654425094735079208934769522807073928465583223963538829601086925119830283209714675096674334248081422069944078921875183204789085318840885191181904363820073448964400812253208935596048646540865818649392655567543817859426919186765712551164235791090051000030275551614797395669978319640697890335479608478154414856056769841696275461838560901144982436958205465060318933729535331262761292567654498502747455179617120771851280319515890874700635214299614562557374623074869726756002283278318479379450019272432225887034092141377244607831429075904658030742661072847257460329486117921954416001608044803114408033177779421142729733245447442784512231575870250748962516345152648767457873884767263138271749563760941156478120497781085540783566778021339387056068084916543620369374166729431826011149526036280917250573759391535678882359455277184889653652204234570701348566079075115622493365461694088786724446966081804639589262779839667448687733654019775968091425519779483730877763316809041130195041134340088294352966310930103422531326528679452458490894922635043596562587689273922372264923836591878753347557276372947076325907784069296914396662063860112512044701526027608764395591945478624680278233020272309420812257780855777822999031185182201172049995297564946137861270110368574509113810948892016310752481041385393065068023620109131755404520372922655269106553848755082206932257711471400321886600754828209822819473326827682458339482231765036789858825043625039737934836630928504861548640095466891100128203257541819983443822480613000150398960703955406609171032572405023539265426751953375662962830811635721134605698193277425307243414883875995766878355779417502378070364227996115826840773549778948953430263230767541146737406200140705785409218252811029467403874272335963421258231388272731575864529677563133947075699338923292530049229034677316661036512370889726831341904259399367764444819865887797806798752094759865508082664294538612257471863951161186258141254708652573393512897426221089916801214590546467086187009403666690364453076752498345503543355533253694160271527673833037349271288775278973611412553427457975696737217407245603748770396305293281160656346452858734058467660203006284861710226656266266502340989167315164176551450053557970787287979576547123519462071352507908450864244146333884967440676663150633762949190909108309495212330481012592349278084269378173610180974010360295792410383120052038482774251925515409529406302026584002694550161356716313729506903279425988210060791782653928961634082446937362182862946336739385717192443302569747045893215513518247706057279057473034036536914880020746958735230028190468643320255018464092132971051615819426672459669935043170214006624166729250578138203605665175177973272944094753825761840391289842225177241018390561906048000269172777903039931286742364302349825647253180094670520619125578691558703595548819727860857166335222140219525557646503722795233554000243995476608249812885519445445490086185676682647704907374798960516744059590547557425130312994383965324900122565134792837347693771179921065211729141705580716628379521763473849161437044112447602762262772558272614533127624018910731618866460293943998731701025491698040781140463236509743313384203137933679084615854058636100450487138711550874023212605344996548932068128957517645769095687847544260458820913362336939424136681840759485335225555689762387082078382071146877716848094940609413871726654664197389705971963357166212099590856228581576268098270160740846727836471934686225837271225972747843789739900831337018955787162543069531669567544039366253935976756937448926075497259509139273574385635106994772413612311954688539668059353224682203397122234039764961296368112697375479474077463089130859924072823696691808686264893820455221427112586120867622721394743734597175009512058063551503497083351062080296333566250952378383070347975132570680102207948757172554720616021335532129090266388606448877555003592417993827994839581402253847152718541161649711579844940571245901593910441657210082401539088953737271523804294746226652230323141372567760954899362398794866634383642227815700966406870833275240166372163182843622728791260629072137817247253830156869866804598400468134442137532942554715917300933776362175422484184514461621510310057392710426818924919715078298654981141867808647956848693398823171178560628626615738729697550322938549803746614439665883919112071390464527114243635634264029070120959969762853231945148504256263425373942422119201446193440001729852731651889065366135087533153877823689621557146624289108859385475793543960942966421907025009696837559858450863833486715681430570262582809401847114216114809830511816226968661390087404561138495396458926037060486896691052228742763762449122835552894827365801543019342533047694512482503008563190147553178674398553155497129655784703999043032031726739598509699013840756188628655770378621676646484421683103719245367551031323026685812552537519943770570360527120254688950717682056407302059178079375003191151418189337611900357062161058030625938979293627681834615240468460589820865991605954361586515570016067977510790241143100368434284747681657580712573833727851628903151081654991778031241091128155809782718531645426358651440775433737643867185402569315509037923557993681259576211015311663481494935097889720500631825372067200317768665688548515280178945506360183395172955890641417217006207247664564285325134168076194725007492944074361445677062489834961880176455021925111465073327856337433963112383834305007929994268283200904888826453592439813964728962330299397849354195230469978505506290167191037390217590436288112225335324513694463824852607723207147233338600946247843314919950975994657152324110093267490974152868809507842719511392269067147465988572888198454349420154616922317144918514542587595398248493381638811502593375900580044327032665740056308513578664440777769556358518600846795820052823517108015620948194100025402283036954728149181376603166326700902656278833639652428453333734408191459189790275814520885316911243621319072725748293354374259748282171897278152429047455207242936228822903404797265986908535867253616690698827846767689052426867556954298719941289144209666686453635466716538212104595976655789512463542442525631475014935428400355253523620638950160090342197851885749115252114547959001656127011227717011400233624665441697636204533518678222003502636404877450877254458482962212850129165317246458774366671940818933889487838685088823183283202914541750397187841736430129283754331440698226170931824304192885143812862525287511169219612377453426217889587973560588915999821593809331638495481806815381787073786080272184988938543906779482665448906811835192031678915534420111514462344981728733246110204110390286303839979981163151243579846323408003194704013038714408134322153102909244730791280170132283793731582787471210681643900730820308667068301093992309491107695556349293260526718405196910629447204011547560942185763590853035598267997828473654896342402390069167619991023213647818018799535509721139649143987359248494791605170645218824881734674903330091616491300980147102690598699049963994502247435978614319486735540413931539479462426923288481512342570832519333083377966520677837646158560150301035521921835370942477492629012561104305549621198211501431343859727885538318807635266415693652006084495710282054713479292348729261725046049502908162171891867443651727527434831156486502990122688417283677797456807241569332315853427472453443820216894947340461122414727913984857650102810561471124561333406106456466604726789210520975085840675324259839051630490136136404729953721227867310522467600229532396520188213470970999352201063407840531956182166483354090947423582637296494538819774782510250638637144461094964416697270273223065061064153114687905244088383443259935682840484871998487748219681387346619254450965144924002581852752856896881541052331250610264449998835137800180978653732611557236507714062316577120794891342520410210572471389267949152081413387338634912905179509610698418340947685098074008750355365715190058756280645273011230208016622634473193858298017079089928711702550666092466136199894879012014778406036986479191527147516307569696443967192709751168236911556694108248463934079322940639468724885721079957319662408642517253325188793840595625716276510213907864486655166720971479148714427011932167050919131748045491496128151532713465899979652407325513764154937838134060957554279394251111740385307061393301651525551628819644075607285343630906071880732195487292350888832932002972035992455823203472604520323639211091832546384946558534972529826108169707467754000606120761322321456148634548606398025689933991855571737293187571902914606123739886714313180323826850563809040604313658534532474890964581041927967085821349551664222822408415082279566922189993500637924350349322614619176419711115686011927747978242470435268093973830205088305682189042105182703577920626499309350600055412932829653362731785578001800044530496315049376229729984403112953768862494777954122287502445262977822735830760478630586777958681684009502898550225308718341121617721898011198577283922025120474398258528190448980662092598693000161328848287873510274301439164955394359795192790644336673466006381299060050877284497583380768156149677877181489680455389041638372255670592206897311657788264803702480825686421511072583641467128867103536934139731310920114876066142672706311789501320944663364092180575698739349064783923964669383781316423166448592506741599162999623141095981588300462934667379559222881594529749382396954550996912902444226274312821483870816345488799724981437598452383022268149069907925345313240931399231942967371067733304071648497454487928170460638042468676095430105450985716154204037466121712292752521109859693155680288694711485099996271115643888927711851067328771994396709995427088763563614806228816444727703326290690714520347442405166537281052624899690458995273395602573230797698653273105247809664551456018008634228188452614325156330820022349170409961352493575285658937197542126697595475534768757612023320927721303919103003540816921337567426344138214768324410625542817975502931145598172740597715723568744419213173777569281396164810968554972734076285814387880384682265691512881757753611417717933372289362888498270225737667698304593335954165274761583144195404189849066620056782795118553034081950611134137646991462048531958629649292668870464983497731174438154992144979989123229585031623201342358086760955980171190680424679858236221563138569305317928077312900111667570997263323609406401022721081483885099819959627505791693682254631080452357593962811420954509475069829993306254856106716976316629244833327227423566506202745616224384649033815055314455912386091945210971494093510472127482946994538093872520722745855481058513647248886885516556517910589252579054377795146218419777921330034218984883884867170101281360333571298267679948267158749988585143375407141423481578408810031221369664788089457996334723895604685334011838894221495294528662060197253961669856263866696499529322773667648775374822949523312668084527086173171239501562979451991542549249552272189451110548905948218955276380415657740785427418315508215711708320415245410089723611115522881106451769459822787366835396656185832833419322741896292616183015815935999071188320572344469074624474073294272632692304124507107279618996068941423420115373176023036812948400956428185660905078976928194129847002781610104012881337484735511678720117889220196853815764817106011575314602124254124443784079893183667542968747553376814160946231398220991041045264770154355436526596950396604744696656515996709120944165693502056190551428023606644130287389136969237499666486127002125698782328119202917332019094543909390277852208510822585281829560239349581377512233180845338884238957860115822678940404029387661453249393601571073366082359500955895419538710160149872424693866616890087913246025491985553025612500829321063870906359852450721707916417533634459668350476925531605935901302180031657628640292959226410477874553062267179417655755205768902286644338835501249180930802580788349997318551007573268584426286307901254052433869555791695850068394557698791737042344974116473629633901753710234864025738263329983755534359956441991037311248042635572198714242966628282036424715595890832622706120826573542654798273358091260345930109332999230156374663265918083898746252299513848859841868489056488025813005782844272312375444831036320494439001138922243831457788840490820081128288613933893091584671456775371908879728137689681821914900882735433597955117207994213714721340320977389140547810796596558268362302845176406205846626480897634425950991537443465442997787534654613934373001532152486241019276520560816874592620876048976615914070828168411725158839117508183685456855358845904180195378002609975937872542697713254991365098444766792810075316381908378239718288249634076177078191871641152291665138735481575641141538542649231781560826117864166182938716871243897318316263294888340432647897454759875632719304408768222308765721906763964447061223473469736158755210186160047155207707624644191930889865157916602893683311854495236041993652526529740811799105001401979226301342676687151546980442585176694326183456217126300637563311653532898562787793810496161781773857052678018402624158526256188085798012878454423904189393180297937687075972825892288261616732660949112430592672580922106259172457017278047961783870838865447295579757560544020082983331249728485249003701007791708700649279935443441570635111129137365127336593098355524446052183019413937913079312123318664611786436637979868681547813043087191860604338887038770489060113112828168428750779898387147518840895988943863167616663521259018236003919964008481229679262973754357718200262430737437528511841710943833522752791338695664402627857162450297505460629644341941917200392640739391473735087471376804571822266218736091425300443125876832652121305680961438351954046591137814495097314384746948376928104578251683571163115350222819365620204086880944022882826099919365433780446732964127960961912264195821790302592045809798941211505530032853051172767714484981833532756634627566194543542684343366740808504501411424081605061356550803629038629225928456003654083158359300070173917249496345539176051516908636115677933337579931891757104372846563472065844443701866544865502633661480846570678518828144807152922357109358550047494687455844757936706973189067215502371902562138591023877260653139289518724875370935141379208991975779348995184566241437150068080522066874698008509164247826881519591610205496079157181627775133794604393109441824663634664075577757881153535520350201181245833964195577019217540801257212941340880433358551854829199514247805372971746396351887517223665586399306593375287164996781947418210184840014926045232167862312915162431937433821119192337081731959319883091884905935925104993693805909097496117102938643413744570690356601397518795485626499177560196355971278697309495369603361297882036541074509616034443701859964186270526477085008641326616151007029453498117610302245317011155573702948647126764272703706412439800816151325727291228563010265879849359135516516210044487680071979911847508040235609865428651941340878948958583121974936041534081545679062534116200066009044077071184550559557566061507998125061655173456108866606449290195868071521361758024267171666954359129668416985982605058633554697769295027228880819218976208505633734711563113975581238635196679456555040005136265849711722947572986251036167361809130098187934582704444412666749126345461431201962650200580881500530490334297764842753789494937479244683933034779234569040830534905562806976577830250380415212154610225280917781433015774293390156619428491827752129405874360575179610241874422342836888999409504166385715236307121383139273853281035421091626309262815480879646976255172216251831153646145108931104259342852539616330379445340719654820118526255711089963774685300495757585522212953618341801264546676075432853090176042129800798793053702743180763326789305261596933084649927369961204204155298455826527521392894138926266142409883491259709189771214955450590945481697138653372507671700163399745181060198869631213696954073239940325339727622622759132190266444228578766139004854828224073256367426931293609882823709568294021468603556059390985142611502569819665858247481594520254566006866552490664843909714256130897009288347931058167156115474467586053500776137487581503550661331373104849384277945457310438908827172244130559741001999011762063634495724368770060820675950508501974606296724506056844466603043027661900426346042930626232150200117183480376891578585416957586218709042930338003440089634164136674648556144433150932681556571982772673178177052935383053308407745278369945831089663503582416055337747315574289988191153704733344968693165635690655695330315925312181305564979732408506279145422307754887901543195637136652498764160630426942842392962705488025455695397295198045090174617081531995838053819398307392842263644192908764059660349581728326774672365666214401387926541791412690556307336578150692646390321391285645564650311220110396335686981212391755684489683715210155013781171569324106105798257129844346472645231020311303747335384773009643517823199290312987163615256213828230018346396465512683678307706688356172239902116315956076451041793404728525351354522167894048875707547895030724933003843825445933558246373085552342311663136864833618181863851322591562211582465361235384467025093191305723301186515430647216959203155870019919822001242374116963992734973670598033929517332419246529741158210274182593642734896821653288271442168743175347787318164000585002298030802801997425065811605601018892932293786408117743289551120581707200651871798909253660880163081559854238400326525360545697728963324791908420577700439146413724972559999816774671511320857999803519507073231887261996971859992281168046587345591826056774764734092860227143754155771085947871073888556456986428041441447527152200879598316067510038542081098939847300311687272285207588516938081862513944711610670205522004403097477823674540965967741251798807343092275278769424295366647190461424663027885682927328691550328679148680867511273792476299966409541966115049476868464421778120437491596191300050486173183508643404825479664647994013975668312799070914968518674339281840066429234675828158176583984231015188468315045188936468776361429798924521006432527803556394953076391118981815521728166723515641441027028951562518694989237416047987553264551666305064423923498818608124108630171984958849245677794794689424219120271866428945646163172597113008459557742915797055455219096986346085826573635261360591472994004839352890993013226970130085361826685022802422625892975173003753950036393178142599855626247987388476795134569127031564090109454032708348807195410859469310614642553425778469416022377539692204726709801704463628934205502351920866651698691596773524714990017920296089270400211697986792332598481654444830609277122197852406967803027657761068382045696397571762958521563928185983199305560382294216739429502549597282703697422789352239723895286554719810135108711059342316344562697236699075581469528670149660583251242744786760416146647866437229887626579555355774921851049123841525496188997684966552752767272558714439112335330018155409083022020381053434549068653071800717948339424077728754594172888502206406293812228414064431571443471295424401448268223585179499901245884740004767571592473680660210219637675548012796594381306419669031127242711683361219799422701435854554013764504109773964627487397095775830298123562012159013698773143807224646651190624631624414190542421709949293673542277888624738552515198133742353857328141197269352435407669493161604091369686140509726233761664212224588128540051479040633453975286001244758169483836503385719275589604270604875605285379443178064633279939562096067037576453561452631623298132933278630168511968369805617020380260549273704751543071869795793803518767571493544646793382019342042076887688968306038388672788307836166808506721775656672110138326158831538929427959843602838969514302299497929074862932785306017295176594768430635898084139263807124807701758571090571682530267965973209672744855031295682944750071707093933809757406347754981164514135759211816945028407324997200830374627641820991103302332166771674413914331223947295432291010585802798903320076486344115761310978147711691049228518178823909756296078858632386845594989456660657659617626398623208146313102398929847768471406377944915345215326207514711692296752781029300856945505151426978946465480207094727426761580645495285821015848635499184123150628977710888948385778927210596710041843991986117211538957305917931225379347869219131520380209140435162269252024757729563198724668855173282543181690966509935895223205339146424706887397348082230513090205096798992961076190180572746977558240131849845078654846874608485430893956615963134211991870775993172375876242198818906901152189130958996913479399985036335625425059515294247886976276189655680857973446638447697659850835598462880987633157777660168680718605337307880103792274537293333110834956965676622744947378083095981438291213076282001391254647104781985269740421490407367575017410654310357794062615422661238689992039146527988369631112334042484068848702569098686040976798451425875481570752439983351896400180361826159698492223567997906387416531855374196745759175981864131442533184679496375626309424730953285182129098170434877099540057398153821214733784233603252532558962597413169939767790122989934846653135716462953176451874365523799514935786398480348493943936429869895606468108702116651946946003522879470247979880567804245322737449144486898813743107453238028493175140007317893883393349170990203535517013204589303628815106620888691291426760105795075700135472404254100603922804321941881516979679047320487015902728125092598528979430660806394083141049907532034712607151889619729830562919904711145660399458894475354827672116753664847785700478819291301570363779773633313904353196893585231140003211921049932046871158256391930793922496753598913407278680001595192179520852519889923902141631559516131267952355213450302072975607483402237956829565350906582283940525590300822444767989582507549262778446783384915634427358272412686998795386097632259206858500254313906681919565482707669510626463308385246921514687960492619267314243677234174244603999464525515954893681121054558292125690583378253677024887358726735484772060621913406084347925579267665526676997801431170769060418569537458080832204901987991432884561512710428268064888633882783667366282323532766345078626440855068228503212950882719525745427268255212994949183197799356175405576112166464499251397904120715760807332240536694649218449907272248086436429722608574963237879182999543885768096463249045676373229031454102087837113091748211853074310028079062302219119826019064575863440092557497293230056775204959987237333889675522626352059889032671493031318333784783720565545026799878484521865914265701662933733402545813974847895915694528138744888588962891393709250266440906354044983169259569557885120887224914730624693443896800211335032558515031898481341151340626619689318829931335743116466295943529557738412942956629302712298708106266688139659549216309568830487870437164878798672161970170417664214806783227579064863215944152303153854582874479266324831749699841922042753209345575477472445321386897592078097085336654673516948167480464024974549614259483193480990878612367535629299398242354743702045322741755375854980860265286907898047703603383180308185872646580489976575292203071046949185215979870423791747032341309786822024510215989698366100251257998838042308106493020359607714556128442248723539385610943808023913594664254497125122154910349518716603214277999166714535763922253269579812859912511977943387656704079786385771174092572264714121869365403707358845566745080889729332674984848182750908151822541962378781162540061890601470190070368863934695406901075547190246030907687383146230269005048636700444443729680367555939222564525527049377004394843321376758443508159258103338250532818997283201171502902691838166701074692805870867819287140685737577153450897009823688283456889813053799476963473583902326310260460927297625857089201929255788402114900352801412943416248247844308931256137544956463698129882536192673715680990716979593202667094448080061613267058943208950678565153048855062883141667476976902567230430746475350483117687965381571835691545097186350808528769301349087614023669081103066288340740321073858131342619687219587871822524710594049374251701295614360857718150748258703567497576530182920484853238215273938923610458971841038294849782583452698401179048623850824889927961789465658700690842950151628609137520604409976587842685477788527218724302673091292271587532666744353523971740043235208383435258349850394350867021348915426151389525499086780569400957027777628145841200569186198893267066540831052266303613173114235679236280669904361314684566454833139974763417311148270984751444868737064938542193402081630637413536929294400009615538137525804648158453784196184409837082739819539558144698519372522453605605756238323534741326961234615821776096538920414179763485354528819525414460184929727086763047331430806501762209838754731646440157025063974367810241482890565921298053881172285058985634610063344327005567422277290083526953474154924147966255707820144851484151920527387267496164189136212490174623546422124381640373356393486743400751370800546880946833252606382678439513562873874604826844718300925611533719179655501534051938261283139368699703205122699260838861557322712813176863999620761110171953622592201953856329470829553857740701606730155445587539932974988904320329482324230695185787818010492344026484942541583007671490483388961545330981820502046902353330886620991295195283814088931657626115667336335277034616378889630074265597283908862803634439422469454564257072651497241605086305628839965473024346477458301569780641029835445018165998421591199980043437535198563417300083657367489691592502403524030462464928198877147406333532316332116384958292592172051640915101444203751098209614493811223888805345089464079269273478833262354684181524291710470658609357741941886183145639375765562771521436251979971427151284724000364402971845271077293621646361200428083983760876585603904446221265161798892247250350472148372356936961178406836743227769091812377397665022053168243112144839181454772304963599229738645561733359441829140309328135637953143602590344936028246864057736423309161486169256991350693934601972360502721675938558395947911682999624718132090731980767629775480310559005093009507191712463475321352233815840722697463452178804905546308157199130011039476543995370353232456279913536139851724748940887854438850279488659543784008355913047104050375280508074578992827791901326556461889697716787772691815041326574868332227112726252139801147336534539880188510415730726103832581737410880443342983700157230774304829035599202089906882748221773384735476819427542549453948928889258674933287406645634208012084273490497295403134668989031453825799699355130870211837867097895994458491967020212414022653227596628104959885018361406041174076890021817445192426186157368921584255188369885536181124453203240320962667858706279237075721487928497057102443043644254713005017207500255879576265165030606902881995487020458028858506706482827429994406196231419638470923575497738548505061268553828506494941829228543462544749061784205880347289831190538501951087565668639747178179555139542814524474004809963823589978995255309444298322117305270053203639598208278095553871472178750478489881567196217977008818215443304843970580755857452819608409462832195385420540105401450598759593963580905110103676291463667876524530162722454732083975205947270513984397430489396616295484093598347079026706994916241862918930465697427444453860560494132520654993992186254470829988070746529815289394448778276388478487255904756088579794005757754545945649834137103426300551308161939539469047480742382367570220712447392578711962380107858695651332213955315720222241509792537651484112935490838636624700616704450758629518968066767400966802803644482616939897087291207315124616702759305396602428999707828882540714921051197358683349172426959644008480620935562957579810842272344819551785751451052291385677587316399622889779128101289024769748302364321836581867868984046683900386675010739813920399424323843837831201106495087355932678771834553676141125871176802928650217556469164883080842622890933487866049675648208092534802568104983870908775036915486735718540757719834159467624847176273458788882781152835529915974503402003234680914849370765422335984695880286836636699130760817830637514575003104921569637991270054031544050212784489497745970149595878816106113843509296525122224528794509809632404904035245777993536420421332726114058556461947781453428250210991512320783603125030917479388950369314143960720251095946821700783715973154728065362120339995455103552034959043627824376741769580336225536249997914513548240432442937266802816100970039979130029807941545617180880509685316750633280864964768634574633571542878623349571410305172212540638716087716225066764035267753967265230576162047911183732005621367419664485929301032156191282072805577252947369349640810897771704822332051219736685132757057242798835861017643890838445766549020958460413102554986700786367166404075408638886182231770802196649717601176368296770154369361943429739538313361501247210644084604956123877383257128398895563152543635730959515055067446202825339973233025686208177193745673262902021143743341652329814232260805399772619945794753494485640339703576636077354653708295293304886165539158187791732383804435209566892480972773018289934148836829029590837573502073287393069130163087585869536732967109745018212366202490363180419574040925456063926216991411559271600203666180285634196225870863969562842080380221473697222074116280156949235620799087301790641821245462658314865841848282461837276781729460093756091775501829317431719190851888452460022706777341712134565572693982596073400067043097432218945868528265229966167327594990235850297518010070948530117969576960287703699392695826398977581483258977833070807539582760098817898706750615212222196223581947365610569331208964739375581475455390583469262283515041451213668951303882124902136517803739197262996769513029710009050702862064174873927411207222647721861038541050953901513674470228487224026672020997375439209396861634079089993439192625067332548683668793498242710584681708459468567625905151063776730351671816027360072426752410131001841703276136446086714825587315137117880986957863353115617188889530086186701186992611500679162090088810317700698175307857630325656440119486808210305490303905292594084309753581561294751119606320910580821027001520268801722625736600129038827494435023679870674957292327565898601369690612533235344611133334556720570784055600976179741799853614740527455968287920146884998722009551001435643411861676629085537447994358019325271448008310593945432287939288842546069603352602455179782215510564552146200406843098455780587342070720689447473423912137141818737117580878878008874425427782738903796502359984762655127508866090052016894712448387548922203266993159866300800684536637487740497900793740392504878312133160476225048618476058090040098427987299667176130812670420971008780856909734015448554355512197559184153345425831218261815280992329673472546698120947262647837100807508448915648271093050946823320007246047462171573776779666987785636765139307078120623020367696662609364535307025731346826818675294366741640575717605720614047822561826757105501091101019642083778923926543092507741143087386872162093549384458946534275061105397003959195632120651512038748484974644923552661817966943992710891225990210093351178184382328426904312758886415650814982183060635314179987232864434970322982154811858777382145895645345710333228295026838632963398574594126447926557412947400666969470563283182785558484518970676933592452516643557116356436115848864289082186833069391155151515972208119385816188768913839192055681854116295611157058241220536836082251953048783459282902117292350074185109828415948266546374651774503270371502581989250249942680021574236823983678806249850044316906320132736610515639351107778528730667455643811353037175742756743471576655680107019631995186408171740687690863212795722827123923817735576306787744647794513987564218636223078773104427241276454967928303736585695963993141561329773765698326061641102872968956201871679451321438813293043775244621296966437376325840157277332471438079646510094455815299051037560001979646549948133482069058688168020550423137396456362512163154259578547904732121373515974937311832896397544967478121197590292471393163672251647150055071422323145549961395966903081426003474686233054425251012738692353786909733083066621652301207907108489393690632468916077702377039848817157212211488108751199865180639619400302608876060248296226326191367805565814155084496904238087835960208814416663000645730462140018782197155578968031766240764986127641836672416840562985663783514341766800509949241627366128754261987999088807607615777409398188699884058846174104321330177430248438405157141374510512896500661465581901738275160380096286303711952339404120078341389052923564782004365417574387666632432828838944600025225965521804438291383505933269535999565301073581598324711745293298044287973908548355671832089719765161467899289687548390464592988151711582650522649460524934140211044080327590534682559820710628272453690604582133950223132802155788227214704042469374598991469505217818836354969399457799681932716022527649025296838493162400864333178251203149251236541490543410866314048424375922067224361348048615653347807850635437298748216532877412067269078434127929558389730661475348072864503874317973052294439366383445779618137388499990650814561357439591324556503222757328373689920686323789722085039674757663647372216990175642700287360457995967812091908569363017400244248739871551741063487695876240034046077250422662811041197711988563172302353299933905354003831692033290292690029823672028275711052720097565464126562115890153341569700518731039081826507976258005809259582179324399772672795794840565334671890526716523154815387340756901098591647673996266418702284157262274459111861892283902493223891507386406956671815333588727441085827945078418013623370924037777276816250786033410831083164515618977445123990374844834463193815024885615651448904405375895548088803562836587890529531727104888720389295370027662390652621179014698289842343683661793664231538976045808079419669813199174680142581476419661770701360323604125902022045745409126848064218845056360708973397603694173220432985551505102983570915808562584601076220624141072237035904482995268800405885223627495302952331115297164594023462637218934705039020314021946228726903091982640909111179091018362318069687082089052431155144428322223771469375347429202826602880621348146620686104341986686576940788103485947225586570509070137661118709022301600386040089415276803755933688607762295414333819858886311797659218452563652153296123264343077194280191840229114397654049742345239590413824584254926083021471774979053789741429014229378614415816952945406839181501794739604578265237014280605270224796089907115061008169689323383829338455100466401115242251752998475314246608742547756436382558047143068775372450885411631882154498898190966020234063075705588564519871155343320993919572021338047847863899817284488314969365843728037930979168637971594139567038137729314763500600249434156384298776833582067229905095229889399980036858608436677697125123955123492574273403253587301569895973693536939403742254989020579851716894076144435836230911285170811177501048850098631705609661872811564944046957007002357829741577637038891942732857475383272395782263966047289761419288359719759374700883106266823408808441616729706530830802550856875121819172349320596760025436728421223982145824750439291123081571309571869962993538532551352045312439501409947709514736659588528342942043244834330957952030368311424702800288953074540407786895327390204974270318822732760776046024027259093911896818323542182802284851472362762200833999481309323260666052503438328870797268135222932860733733686121864718652180380914625935188022598712577435864977829072132246737423236339432391848190256102789935303398084137304569966283825565674566696882376209011884110443604645471602754473040521297560495207521201216589999682696498195960899876422439163156339962005846908181425482281654564455031452484190791477101034710939443067658456104539314808540712861247985238028687818334122237116444841866648394900887839018724975738800635590172175308967818976605968112154726122173291431707532379605210229340953492426471844971801038667787420899401966350976760311800162878459545039961262442534451532239914792601209624201381294697858218743877916326029049535847939548800435125482564613657008521627206799785451010983139198072285037587456159759227640357038953738838798453947551592016999858366477917307358900098914822898132331564564524521514054941841349795354710989794071585801946872611037495927333754417864308169673387993093169734729770988866146590768211326827385268949476537863183058122815055412201864633113261456716422508421420569613890036898534322518083314105591243618992650892987905640464642149223078538333929294202700391574555755717350240210441779891224492173320927274931317349849411746276802080505378335197090896171126745796088346604023039574257187374569381002072102782598504710480488086946620439947588833562143061207612200854565632235906949988484320013407675448915426226010824767947660521890658952069767135910035161539133543637466781352686199572719743855650454277381427429274136066589321515410196180316586945695618355289879721326260687677880975531410250676173082029362297197236374554571201803666236613426108963412611199920138239223752201601113591215254520422763112640529438244298053555548101824208493443402000272332398934946677805738656918219675111251030761821975850677726490186648458861174124900004551390792332344107567670309040974736895283710785533298171181043123590095738662940729442466114981870471605746101552203893317048980166385267368341925627394000851605492802006700263000127440363679098739266094274332407850903344342247189444092896065557350635572934263682176210601687281175207608062928574227080110566366701910658219236272693767287629258793808162495586390504393864005253234395531873419351615372525987593406019850966800235271122633808364302620981079574826839618614991153376268055410997050323260807881436313741945534600333729105009201060016778075205554576306610590499839002917620464191901983041013581607302308304346139176070606576693747638872969639224077529433333211997900238527764451120453361177785834526262468589941485870310454394168430896699208457928009348724990293386123193527125221514717163737003371319466264060680774492100503272360452530212284981390146765442516995867327934756012107750063145102907324769948008286823713855958656202564043917024782191059086687079019641218789503180221195174979355345219051502255381584398944501428580191530779210842750969141840831862060373430518170730390244828418158332736216169002996036128922491899513571090076751577237653784760851724869770905344999415744174587760534110280028304967467307860161038659799491201248649441381998554782690410750142697083674932556739017786559154248961310756863674659307093229853724099918644330527354439194613561252877618976338330249632705051343316705828399614591283746605611599809922892758874156549541323092704596501442901774804216243851085609794237912039121035817590704924254642368146282411831995005954908644832458921861846642465117229952838866883018607498491090002256458166205415504217566277793970332983669037753401986406715001172584244946769507194513417020997757991957988799886356255327449009322483844161289329266843680708717978466555360366390799638441137225685450298935930007251978176017473668013332792317960463864054098171080342920386174643588630080454336505343933230581868337835778500034320884157343893006277597129569641182826715319326572546040740955266482204962729986005210533365480254141092497209292388273505240742599543768848560603639721967384192390758755162333242108017381684525512155836829245220141185099375181666026552945592447818969864946844725330189024504053166793261603679929266803133508096232767199957373673164482148819472119517973316575431665904120784071063972550722515283505764234678095244524709109765254253751270400697860343781608881256154322175296273001157270781656798448753595966965748230991203760574210038659186474641929772022141639452560020570715489175408475873980846087064532709137267594218330922098097241312809954370304141655569050035470057500512267264994246177109020322464109010704568164329017275531419309845154052745110767663745129780283325145626086089479996630812897854322219062097410907524528301441904269190961244797416777947833162599833073488222816003609918954235665756309062445436982715314763726822459114142129459062054258345130151497718926396033389303328738876029463820652024955550088185872085166789532208540229721257449256352134075668816097308872971991049635737035538942332994140879464399090737370585810064734681810700916645762687192502932355258198123127175860921614055111662511916774568879642562386977138513221875574974923681291803130574698987253270887345393883429087541684133097306474504834018523467899104004570134004896746262549630185313341602573024789916768483484327549057011460855897499780670101585175655824614303973598394427257213305938930490392633613085394071070688884279907171148455306360140924049397959457806835780115342303511552221462531168620999713356982443843818641526951257673527755609217739348416546398403055248401089914376986365106470348572840113525375098103530993279337352502139980772418021582038505739475191056305037063044369132304369456061668067061512912225618585170337706762183128518814544428693746615272302283952824262843421624369105025914535803387262621538730444530720233270001021876442349327079116457586517024920166454007300835273783136824654757173928628794201662339356919188084928742460621920401679814926741307057076771359982877163628367066991835877290601154933226719466428064987371049317155184910316340914331796947376084390002520913845444767006322472638305429484622799687729838180501787379034607106840485767723040428324464049576887081286307252062420420846653154532322609688103577121715926356431635434540167962577929661574983307488787600062803109440242508950973237428620108507548231014945930027904056493138041311655407502518222318793483463020402335331433952998228470447278702223841628584048588276586098698623159550916557008178346156079174969935543966543164882933289183120488193889144785862761786534249985418636405712998751561169687136979451074628273596062195268830614853604714454684526544384487940999213482477351101551965350121739225504812793836567057870096866500835242350072798873870167880859063481827216871126944931119429706446097000475941051878546664244330004059542045057490320602197357552215301432786855441435681982055318061036454572878156719715709753927015869115553065801192919233180970217177973450178852040323574538106823580515875451689682928534008376329890443902294085373954639479114343289501008025752866962003284424319947850266412106062261787589440486776856417479473282119029821135101875586128097763986283483364677997060316300072750455792205998255065528319172281657699230462377979519033797392791046811988181016278706923022307818488985854829229628027650558887533270925862726638367951919380305115796934099224423672472765512674167939919249065634858452471090939850532595010514108505057304023829709371585148020408162128618973894077906525982344265533045891565866701767476075706973944985785566442307934323851649216257042206088239233322739297781279442191972335995400101878002621439554923549958121005622405274808819862662200021371927870968880340615111105233899374089596557196921334713336807823894618476695243367001007176251633483915867320630335930955349706855496959627478795510003082095102694609751597653897061050861818456697252061431783375232776027790639085084769685254429381636487641518585794851502751918391630399484666929436301633096564552254471957015741849694989827992550465368704714435440346965717292488248355409559834175217157064597216049473070440393983876057637041684686786394190687313246757205739209722616623950971406318989544967961369879344589002574640295415568147058596849185345490208088955707348499899500072520356826125694933916977554993677130929688819848184669714263817801248878264346220895623049536958150087723220696934310346722207020600725568784825683183092645834305709940352050829055241501802035688626240297545098869213041289318571374035815604569218601931312554493978618572941114017590331419023640194159141597727814781340248845677125891683461543722431119298805716365504945789581221135232749506746800705097398398311944880282269595026536633439748908356025867577923271831545532821377907092648094904883557503663009284793441557208104609070860736088605937983228247921098088804243346599831794158215691979764871451542993420380203516441423730836673806188212233520699770442203100384968627666881442217467703354857136995055915073684753786368487112391154689330855962824250144838494862253187923689429594915300217972925723407581462132629642469991482942428104566679672256595682163566783924264347545758434857443040543315845058630836731228232184146778489220051300879695968747535608232237966401410733035200865557277937480149550282948649029574195746604739188660786590855267752986967698914912160450338530199945867933097876849105716174935196046524995224692363677539141145554205677854826932673319975449893906849485443289489672099186149953484990278238677311142990008659488266153311377584423011464290039559456966064702446644395681722185007062407138661944508573729017411558059288807300648530529867879678813984006100375099974490662618835496644262937365316511094470471397951797622784491566060006218376146687432880076917440804262298056387834905120223021055364863943483499456642563061382239855591989182089540042997445621248258383626985839054175033177651961531648872080801122177987726751627457592638443586382240023073725808465382571604011537961230688783488126995700009883017712657864407234425710652775648231099099871682890008830989353872382449977488331557771846076009815254426047877442368327944575495565001444896837567966109438926047407946987372792790583389456495761636605227658216572143079429156943714668619370194613792847617644414578128453426279025697284239986873567681738103660527155536671678423296660129522092494955900589878004531557268006852951608868113886661735908543836210033382282518359100185043602157153636981724917099965658749732024278776102006494784483172012225040600639344875642914948498413829524911410190306824406577141924774832689486479543074052280041691650405311423774227072871709264606098814186236942875425559502214118410722859371399435689921852491346711696218888159024528385739302011591554135916157699877253883120467119490292056873759640819126504536197093188069325188640296899987150781509629241023147448659023247621328166080466407209613733941263329904940737279935593770533541358064243875449258456881383173572220527096487783451575118150375365955046679770485209301360685428632587693456016810375619060472522175846115933267285954678133150169385066175363360481191466712552884926522243574103023643082043268003321028802497034275844571817510131979383390209908144062036570029592857671460876230008984485062155165951975833552283939617578234930441914489401930454947518591922727167318827040236914476316946964511570677212631511953618219912935810342732355085399247448609840042445490454729873226398950801798818701289013339608511427966717729245222481592637144862933317519177300113448719398620209789869589618715835251018779708530469295612352107002174833769557103837634408066021751861455124935148872084814635934670617358036257520687466964960039601257876361739295505998311783970416168613866203879822416422971273157963664122134364881997155740348419331665997890811011975121912797888525217741536105830402288276713853269895668416494924511361016304864302376609361249487808860057830520666862849598608502118873981768548166456675194692354299323824756868764208898622270570209261627911265018454049214863183518116258367831302483388608203951884036541695721376985420156679791383577909029221945858845528150795606125953117483906409054590025086597789278955694413421131103947017994570648669422125796587118124527922805178771926797601052235406832883592423331249266417368199932667947028836340093424531855852611794958240371886465495678500718001178091340053831359609875249485761250242887682885636858917273681610762373003397854141745458126327210883481285798989855386757153042382861567140279507661324441178672322285018212488778252169016763572154048317955401427012131881209288999304786763513968964457355213475715575256078978061202270570272040160683697191684152895433664503344682788523913658102600997544953536488925883712303222376478186189518350009899217191011257340742177426373682229427414601997708505119273428273024649918525326038783096510642003578555428570008305956843510696340667614292901887570721832634741362154038133234411817702726985464662638697437993898890741290481657038110531194144006074315409352763357044498482165869207365319376806197872448139552258893056411198860067192313879341619247562517835155889733550559010968228314393638719117092312307979962982163117613349244078005950330663214406855443610611138627206436291408671998068391058804342264258354998218747342181176556394056686132080927957692360426597569167187013696730474336093881189381031001332967376481054252460987953582747871470904606101927233979866110031235056794435628049964027946394435651307951756481205683958668071692729623640482084212924776852250887494487632172449392084300921448639951983933159312055342154748923312616329150303896600188386148376077215809493017292941908770886830420498705194903823812211994161038939502268771908917456633327853653597609627920238317178036914431944069801159850326870618999332224736798500717968315832717050833844344853572543446311648118059303465360760138684684859230239746161826088459557775012097135760323691217747079423728601986173847786482965731272290284555257769381996352138314780590312648005990553427787198217810165071189978811267192744069982790422469430325354088383180640916060778494920306965451073463871259080709696463191127918325964261461596053303262967470080242391261400873961901624348833569945195066706019039235057003060115591477331535043920560406480997946326443677159708606160975652334901954032044580458820732368135420143324601429254476005304602883171585179872403443117861366317197679665259071738902457409141357660793272553195391618181010370179365775876208082430198071315461302689195847794699825322095858825836621877164466943494318404430044862190120176060154449962533698583116636065791455083341081876888033883594532984967399722906904325715262081105430455530695946496909232314149289350500457346053731214211110180946064021361044261533708250661605965853735626349604558804713128055296608066906018101881285024058011794569997679219696461536822550447108893342226093614540896147286238562702203911000081841662479048263248702965018460927235616290683723947884869626187973525814917096944812152742887562848323350391582325274342554088723332449505029426718370855528950775386616113634735605931026922306650754573090042803974220140348707082294595516597562351905323127339412884603545127411912707531746001780623721252346035812582494100360988839888576539068169315925740604543123231203070979582482043166126213360625599128502640648128462020030991360837712759423032683179560965835008632878808514773068412722751707798941409410007226820280145502692967799289434720589560420883459658262617634864543866129617174779632519333119317133800014016289994239721526752460767051227291060822204743632229067498655117618521962431020007842994099209541483888708614089687038613615770415004917279538007894434667637356462913660872655877165791112102091134928972903404302703477381784324204220388549021368065904286818753464225189227057005005270263950667065931655428584378574150881913983922837278117839676901073173792678152614030243283970856961500830160885601702805097965640796104432484500180288803940768930890575807855613837332838244721740365530350488167349994228229313624747944006840745065211159724946751325012797675373825790194492243333532256433423566580059903164980565393044096328283978370932603949083263579611251887167777272852740145587374686649462836457847228943510780067642958480975350450316671868693636538677454858975936414610605059766388428140238380691717543013561103867682758126376416410462202419692605403782105985635572958681382830872541548800550849973769001554886359851229303236246181243200884900512537826263352962702243679606683533160657564406758722561717712972157948673368125761213688743613786297312298027045465020153473061839503472773429827102685876132363748430811069922095132387828262212667424866542051825363680824052231807677073425191278034649295935665013875938381777294061001021636087518489049864975821992154458559772952115361333759493559542552603833176542734805236686782689978794734840925514057089618014851445439969883867163873052952712333586678994737313858003631908416014070892913538938432689386199606655050502372705577051052158008581983096872159248565934755057630548360105472242763740267824089463486250352921183656221128529931263878459177174018741204554717761577465422153231265385400618623416662251776825585437201265504675218530893341237110595401661702735103396072420506703966887377279167616494090320593762153495599532306221967755137104066062723662701116131577509970690894454623554639266654147328631655513086530239204970076207988491133738142885442974462342818913648035460959115019229465099936205441323524781129913106624439091967492078147639386606039060315474759867430998902683960816345980482882219228790022768234191340828792601474068461745948012042041738001528444180644484561193843255610301396196001350222570083948669810499078533044167176497584783739069372527965300354713374248019843594069176693352862849502236657151379927404898914962383057113040040851924706039969434109988285687343236182214058026264379763482419675760111501090860844435651109950013166481847841422324929776757177583527008654670841340231601873124168141784252138727084562296534940603482968271306456387207617031507536233583478945161260880118342125487956944244398423593455581911830845880958580706181184016454077387686512237715193473889137470995252779920191166920134326805309121872658356050729000458555953225926050781610470266506412870711913273054072400730971008882571346036342950973650003195109634293317501231407706227201672772895145209303166268813238403283475849049535347830762383629041853939927564230451551477607764662354000332609083943491185929548292275594349179897936627217690907706838472440573806374448444119593625233157664634144645125685212829993158952572809409299735092237215691622819360455192674209914109770465673422349929922440599952739122862083211619949328844200438462285533338067711854341059635777399588051090426433758542074492252159745002778899705462874295763149728838845046058731235266709295341543414694011085055864163508446056515608210564411686027120033188530310076761444073698731154225775918063805821130118475718248610318543991534581678013577488119969870246239153614581710288872300788036006974838785128230722528285863233662367599504574042306280823064268514604417197618977800082637639621968184405083455317636831417020678476157419418725673656061253092816357016293859736997372887562880085126765148155778128139266529411972204944382761535249096039816752022940282285592234714609947793120990173025947414986880700521514158662895636137156375593139280040327884590971891433521623281372286100139402319476152370254546065983380632316239017498623549749078923503656522460940847744973324597981563453535974063119735617216294231797007113678272403585156588544936860300497183407096963509159341682513226969992100722075095621884531329786354826860762381658592848143617623725993603067045316021111166095486206015764609189362420038375472425954135332798404183304576446156325363128978280414823595406096498998092083883758278113541306497430284161386341010557920837952307817929006676166289118495444766228372221656103625435682521804055389102092085884286220006919224007723370619112871533042184281156459216057818689614977874111352380865266821866558942844014852208283640119972169433537958100329393029463743693875659035627843338427759766091034448742345430863914149335814956798418546791337326636228326275790751600233793655289156763124848469878008476176386386482815063564179342481561479070783587213362049262010744613154858781401631313605357497744286321947506947636940211730250574454893299819243563819239525453057249941939409743840988876173537098347985546114700493978017634483841999958676997178950291527645462358861513810521035686608916109563619589081508721403066415578389772387272095760281320673019337626737262884850484797779966387077118133452468553210674488215229030254072487930028694981410542873743310953712007576599478551538302094039805613379552739554922531998056346203700182433803562812487802387494936434688616939597739230114764237240395342651616299751529801131338464997915651656083984516477686946180529823609252583096307077201536754815030116839334370205190566956427680047898149491804671544825398163417146736122958138533766682304023422203681209910151409328725710378375979451234991592673464782532429899918637413751413305577067833999244818007191838180049354110795562901364787322010319436996969508843115479766981382399345692585693417478077050755377969360725013621835763078599550482164903993860455449803182307326124600477898900495842112946066526510616810029581679028568645735075647693046230297945680408815222727117641011534859318532017482794921921479388500479449885442803032706612998144738831379354963584203726077680405135513911933271068237604534558109282034474349974587116478076218550069129088873008894280678815141959417229218343066799536931350962492687201697652469051222006068653844146926679223812460553321749756119228243376280992405455313845068345785462193313054711095782956001339665331508548359203609837306597944084840108640545180931795396688370981660426481123660185587067629799466426814403992769638034036963022436103099842171644996223182923995247616396138729011451878927693190427492289976332523370055902090346525279848238743066759659984902823381125240230874602402424327935096316716128522230162958873813389920220164201912754698646572194398490375026405288129426203545603598537466634471577973093703769795274300094065744463613579566241921266128143986970987564358615950928498976532820257900821727700146434552346530366952143581198672152077305527849708580426528167319956384509517312595980206765462883783361146172921010422521152573459687390170492332789411436969252249651836937020907801446028475019583385693265331957668265666052184944676817925956875195693557717134392728914071458239021377691018417286667373043160305153469085327644672232540912312654704784111005026726102008451396785289613572687965269281693206408116905890613461365573443914939454542263904271734308149782385179705642169180529485185852098623602097240258496444206077618038417940124443101501774268957476344712978070207274018562675941642127451406828273274734857301935320254118197389001165676459020724058814871665429097591341481310654813673086066809098744183180901912077023658600806010244475525499893341597005527838463597601835972979315386902509772858402157658792053129600692527351237873720872388156716032752858586889189509774985714639155029167478522342755733476787006408861503822354657818196358308751449813480619563804230175866117946936382956796519342774623670307814099434815688392556811668135258054499372437324647263302358850342730732324642938218037393284777297943482336718395619289390162931728428451041144221229675042213482996130966245091314914741697863795751319158000110876168280975250095260440661427454991554540268069726728931322787691299022429633542058188747915550541002361430497008086944151140278744937725559500227270967980361660562058992116787824515595680680524698282039587828693499066322571207713660753877974953051520441940025508670259230249220552799076932292757115141950598150686174105042944831440527818742742183074855560999253688054307244604122474213645043647346150144102509641852830467756050602183212381346253384596891463742277980132403818414189136139488931885048695551220784865731827819927962029883686332358121051104086440798487725130461196969849722688852262066736148211033936442807051051764407449254269017410925981139799420536368500205106638692421200886971303513765823508828114445170207631899828464625661147068416996103622214504275523218130757692050345861891105030321436483971580378607960928307084211060971632271435104061931838739513641115509897679524283391589193421056259655497328877366871258106205995252009399854967941041560746763265543692336052894198827639238925003709285759465064577034743715823591183101255691749414281416965678177014101197420377718396508681290887040106634917437797615590247512387709831047811426316327267612255072173341259957252682985290615337980610682819905420468340015710554698661758565900079592089806020750852602373603245224937138044346836010585895338304292400985834030702681981476764186118149452496874315064040682012145331044845989053793521951585468954611773446104602202770728375517186705257833942647312143442051218399254065092339812448536739877248405254134967314218839380369333979041937507882428015692205300714611264397949260032880536411347546010356973500862605762118646016535019800926058439149290863155543590881365895010441330722334320437168994919146527113617307177962927287591508732196457408306212509464845261886007317571037149997713318044353883851845469760446520975869149886987763816855342822890569734164785525901375375386698053444335880306595119488555287034467517394120250925080623872718525220062996652156095819401674589537918853580363715042715042771896090350454441624182625359679703769601736208243617753722474228909294767823426049445070477320054731561016677052104493628610621474915425513062166017040906864546071673254076966170341514463274206478756001921017180847890170571260125470976046171377900520298031465667520046696017518515082643651477141916419341679141716503793359186428708074842284109542763113909098044918676929468274767463702935557699385925639382765786010446198254914313474724135191790300129876613101722217431138299943860388014341618755177894079988440640886935423907003770938290660568815202380477920220842509679633499305704366687565287129376732568878351156267885212423073852858141853441845043063606492537148103110215646537806800210221985789259094147140155150163794780751548705855301412584584902097855336263338605617451545455093821023297719227678066242311598982769555456279210730091833851729724411500481841253228910679512154476847862092300403093405412516587915942379829382307238116375478469310367923105738283172015337250614426177874665945828003641774988045544960500729725223917509285107760633924649420724733599050270443387191599970769557186827148655284121556728074214564385257455305247463363292558599785856571614513876804180846157455689514974388853322188719122917900933884378923059610267257563501548265197217238679436982330534221006491644814591048872323315333125349735903610166720387776482972564766578971321285103422482588519529221528640809261573277424000749005035624343640560588563328050054308787035057852993210054771316513720799887731754855561137810219782481415649579314606069939760244191922308769935493528176400448394904371061894853430529793144971047968528081002213134652962603250455815095833353880532486128079633698456238119329315129316204816121993400619754580713453068677217850007261295233028290752880997349173826247753215050143279416237960120054113290571817727648131400990451013976246896639620437210728882675562078003064987880625108474842284039935708385691445281591450718558046484331189668487332702804570596802064858506281064869930029774544715080319311096793955351165119666227207746570807195403455454821163634647683911910413354970007322542956124672824989862525817415491950111148047686261672582085436775402311718950043442475659209910989710022159501988090993453417423480017808523676404364294130824934483250101305843741917720041956061270671073366593409047380967719203699647784595303262014636268965338998267272713896782411571477873241456520516128557749267952590261012287329400293188905333407802715411811795007609798083766936155393587657178801822953266952298167701467706730741946116717095085180670249351590653010998935354607662125978102512545792386699314827664915774411066049275985155358334186577905590783235334518376435258352786795855889254096079707043378259143509693348691190518584802140463276235582047866278509849085671951542623419150108778489669239190288981071687235284240360836967531142567711396569600438821924728058936981047433156301108367666596081307967356320690007102944503422586938590729367909978681863512106944479026663866391664303744816288986919974870628567663940815204690170748717637921937555063809035203960587296091088402913907217040474012699426088406769991906368882378904369836520381463519947651295745216700417066809337853644575425336797434582578545455786920039627090798479281971171027690021464024328995679498849009863747311753147625816776699535377897214080539074148778797574631522994096468680911146412700627350185839302080237928607316741051813341233200772681811320708361739225736648535721419921145806859896114666658138722107067699507600270692797625676951652759592107352810792309156396071966208016534268615370334147252846520973150089175844642249937202871761284741782163094567749725714590356157799933099086367205441027239897036117574052228844710550313881959238342744844538127688032813900223116674848212154709861965099320201671728727379561153208128876313564054495406657631869651462596085405005650894358822312772908414374338293232326999920529224294677345153115622615258992804732867492202805129937554219502533688830841314770880209571669926445907144675068230164266978664255584995742218481831461153304274095493758929497375285438363194339450189298123413771089777155136252401743778884024335470742930186273862024994205140917856516338114779600995153466109160018136178215281792437402629697556840946136206171147233782004703141148644790235456623857236390916666647057756492183323145664592178149147671193888504967779058902651591297596839578818179476113628554711649242522287312917750138005427476253206911117135027150747591653175264583786163550124394556343551558273470509268612693378301623680837564527403355141247578139957546715803925737528982583254229945169318499835597098239732181769209437706922979034260478396770266090420203165198802683355190640367349259532214227017982219118830257477101216772936655016847798192109621648083449893374839377648835206911664704914207707749274116278220958583037576005974058509360426916623191767622869694958721481906189168051050170016358692430990782762991889746425605997103627497771719469095656208112527336844076060195728953356895877152594403011361195282844841543765456177840445364910691784028944845075976209405774056789042911572383808368363364434959624233336405489225898391671239901729058081600719019931289820358124460521161297780380079560728714566762922746604401339551442157552379679451229777461579789715875315427607204921626526008006413713697657478722950280870781460798086475457287368532325386307301857898853540429788620475242152487035428123733195875644633084975166633373594972128618912544429168361585808874918452215871935191050720293643433719977506471636890732183053931892984517314078223828613655666016115905658427538396379923794437159862110508525374937007090311753937096916489250454808154212892493245451977597632133711912090720779836977113882337137052364745868535805431905151625032699366737950187213808680058770736689625309063589013859330626534121300533998335407186572209709440843482947836726871724837130532298893487349445322526171868976183818960648043336978303631801488328697351043229543179512927615321723639668824735218871231010990420828478567307301498674379763464968685363838950175834688721251618732638977657949000131134879494472808111490022327003734478638726716446673814600922439101764000797371004089280272121672480920120073213143170265611351524044922591720479221477102250933228353736832773451975512408747991820003193130279551198575779364863508537285556641081267919822173097876843484129763266862073065725541996371405057544826174422241086692788037727986798024817367631767307126499762921236036128667487476983995846091893750411338104209979176942816581910474253574535185115064219989244768261826950675360748574437971223775120512611352449569875966346474254409513685329233377192446891383418239212899702705990776946232912791242339436005436912235155815014937605900439403488124600425146839593661553769585901340534002017018225257182931241230007385769670555927075228177133849153816660749915772628446883565181706083283638258464046053268287406170328288636105521994409827713364217266507582423753636599388171410996292021153873373675797271599999268096136862448114298554340031431749456454607172959991559642632269985596721849811924830402393522692276159232852691608005335886304977761900937748849225040361074291209972298560495428591478745062237054639161817158309421363806884170134077708668837888785635435415975506485066614884706514969942959915579171939242314274202237092142017118586790291039049057548844106396211225134172944333006181237118470096156327839155548866495003525484957662694796635210520489943125144064893413483715728350850242303009436587113785389625063561516415823931081718873663622375892154127778841720296419813372533600687645829953819510203343049215582845177723230470142770342353314224300884098458075134116696992111324746031796795338524366611056596751970399338045925799777781491491515052976734111832009237141118796771982445384747240415161622630986570442459044726260553935729579951193301531483558505917605602477429108186623392615647658381423907493791034523352839095468182641364794078989851110923912483195116724324408407666663103114430242420731373291232305426380073614286657563942559142386813105186616929260626891071443955294160810337898926424494903780763863201849768329751419201847840511307406634460365583536527152951473540588508857908758899421331525786152593095165866537299033464541067085464468167814446297504269847950338101712984056598260058573435210269077287569959685621023126135529033432719602503642721485582539186237402535849500427610222646867755679360181110678040630013366541917542212337985928757168382032307206483910355472030568911834963838248206454254666813662655341318456555713987226127195849457285052861924854238783092973055023002688482305986950995627768531301889250459278579525296138608152844455550563018820295354562128201091203289565909520155948080029357284448462884401523987200170241570553540517419483911456585508047498043359865280421262455830536178339908147932025413047605565104282842680019610914678253238759983526650903637341871784936996352474594905221866399598017294671004109404477408539419761409689634546641948482022150241300570395270131745140457628613044624215213696288367046213620643467215368218638997089146073856444863596770126108580169370491490587334287251586392819499905723971522914162269377832818739554456041272401294673336026534382977243756307362529256688877771720108986023185275756880360933534484518236747675860860253895182793201014073456369403694262873315186578148286368058481842256159488132021564141546484827385292298951731335206124750204188647819584078814464510620906784426924287267385362217572244993767802962180087028803507189610224960775065890982005163414724781128572012644386023324908124695927932410609912230223809218206546668935296223719259847277145458175410653654356346299485239936356000023496154892926159665949180058782235542375618501978681533487984119589157394227214857359351686248298630708092583087933031598077737178142287954523585283834852066080352486517904300964942549147122833415417834840390112865289430599160809436026881498729357250704116115461522307192828565497718972355336902010885310774837129956835945362661107989363326223980053756614353062663022583899758317100801279515378850297459958897326498171019399106388541371259581220033850757201760592788627272314366267041129379462338976105052789813387904295579231655890086296195989516337516171748402651972643037924668447328148145746317658385829859924041072733504985403384408322641335307456626927643951631765681434400907190191338688508793758564095787187693801069895243684611326760702379744889158505659504020241214925916229132046341002780957323608476794099862478859043988230217359544743371273898236473891525573703279650715431482150361869720386707893084201697769693295375043912382382465632224191849533827821038806175573171771725303880747221963491091293693454661144938625017934197148330260263718414587206519213033946874974001038808110665283835658139690644149931265180418626139276096439578912993941896774093078644368606690663795712325276512050723008527054529185344162615129604918453084958390388884547540231746014095694056500591228679749782802361873370170636531164346307976263973419877541682766569698678940392286884160760187191313433822975826092735163433325363331500828041958639304183013705303073333954352397211604734599506511115909505839685396548972774874971077546822938352811239354822588516226150103353258274709567393770830595898838890915188157045568864189516121785136662669744947975990216350479597744837834183239135979222572853673253623970868946350406859546403983253364599163411694977849307185177054029002396699002855941032541951699497789980682472457960812409142452314968073192517745338804695766107334713585837708704015871110276408292031369961987749727570705992254402838473577144894287813023652143585292511818866104372324741067181842610737465125950141628122692184658308314570807605758908064288220675104238315294737299167078679293996329879251380530823554487441386404874007836692112083815197877138793500398606522805896557310417718451870246574452854000111885853230343072674973983858745655023741112934592624634438271205292789905994453345088120885699519957137306290555166141698191240863149733857720681584648837761066897461016442724109894061928880680389882641493719406141925023317903442641081499009476182459536800008035852220930073985723141474839925998992625596499813366462258963483757533372232009778222518130460788100247762679929068252281311195102913783263284625511266144552690202456884345560180124209690987822396312284293516324609351814889110099926317851785839313617635359570021524345905655766951855156189163866267789989032523744223997397739233276430846261970215327917036767666946639717183006796899177877577048244937219880348784820269841328396787922046755320633537192311895421635649709882798294795803254323624833209456382914278149005907413882210790607805678025598141878094176752045188780182449740337230377667860863315043536408421419578372854720777335328563414483523415146239880774986762674119549925864736784208997570086579030550251996157656310704968350030253771157179995313090096152978520271385528801674193880497723682261245909328885775096956147837415720333127369700977009938917322609557063400785942836269926233661845205084221827233131189900200563251468287411092879518194317648167997570271195835856645836636144499858618658729584681048390271077561023453780763396422860420481667849793680258150809668440808124792622601621698968956509571179554024662945134569442212038472649514341558731410067361683186271996911318050102065192514221310060469509629373466330948993170744730282018516819612253562087545078204628624275705996119664431788437917877041044316013400820170636210039654005924511052701168558845470765627848313328016148731778771317259788987431802912113315829146501093624273156682243440362604347306665607380871294051506065844516155485508251313693104319243024878069562632676785129855329142127570958094829558681749613320908613353571051443276220214706573841168367304105832783729693201478302228844075200771757451963161260838297474864611845075478481173224940834146748608275443471452164323484748869645462507620248439663499404922549970463780137142252640582164791352460491163436324344107774887505031962443029819440595885959690887985035160293524200017133954158837349518239761252144696610872342914511516217792071120357050890208536366985057216183090847670097945535448144019883184909896056935714124594767084830228149332565347626301120272943062663753009443395747702366565565655268845988382507792724622470717285106912520769143782666282722476607148663349789203577195012785238315618278898692592635167910747941854047446036321740552485448970826894657177787602317262572554553985982926784950186330520712792211269998757414279460774150759489042548283255101155906113775538591919177477794197347307231245104910987304602752151292929764218940397211870913180342490294389646986027288630237913788250694626995155251434153760930413503545628359286255347849848901074761165586239037744315182262893478918874188055263360689391892039915435917410214669287530879433293525839309733380899369498423977559451072291611259157276299196191795104353891762632059405049067961389479400715835988184224749330307127826190885559036264919166773508747496662076159745887103147474819274988525827779634546770585379796294862805088463952754936403987328422146003369543551000576833516485358434665439371904514952665162885987209880585322048849296511791831269836420650624264152223699636837618222092716642527321949009324510600040606480434636641996336764446225773598698053929715845928480468846377447439388933099463419937257762639590169569838060399687251201248609826636677623549842654509269235616736968793135079804181720029751814378541058351697234236039163491408083143375105028680603897328953439054140720142218216522099726432357338456292497540084327446692908047525000358784504205647168750071757760857481193516395223666183271047973962190922746539664797717160816903766289812444455485716887630399424857457412588369324434828817777100979981037149696389270071453495099507620055899505359476366604018805938040006618290603266787902294084815957669148282960950415802284904014087891524160021968514261108921473341293833992406702408176490480126213572667501649006310134672392456597689198940320004845503886965229345789056305312074140165309850509135905787778643825129911416173690369191126405033583108299526320589078438033283614040720405192202128868229094773786646230485474691697369836244357854436804049793012557972673124628705102486479916793189190135399890428549486084440656819276814447284964614827678399395966296872091750921810327259186979506566562012969902877142097565444045533324009166185432840719344624296739627534429112386846996544673744792207673142878766659804840137169534068623829365108731979064500221591325115176800957573775285320116897554954510821777179789939660261201695406908829051274164038461574324059007307372718757626013204778148515336944173218452447760757261134984495002387632632429586487369861201929262853839075223648747515282276551269565144837480073391681269486314955771421966434988238899666850267250859446805562451768136101114600486397872943907078774780312272869423005749649052795670054678370996450475187323155180431877893375087898350443183357747706885531795389041925112273105686540010153606268241885571485990648213162320143738391578711757266411478172041681872878788546134690951680336131730874858457169711484050698508321216695495438278504566236418143361676827942447887115947532793043209946749422518875174178428528179231456148303247202855067401300079759600355356503571617846377881458590583010227514829288444246050811222247902892603525878345426848048012686474763082178483327733412171643054516920214724753655975747486486552373397493397270284830948379962532943311253313811684697659498579074639677708985341531754622306821245866701998659721074127443766139467825881206184647782780385973499407052773796269013431645274380136517614753492263016459132095313057298262106583594499081971422694422803904730401700173946400835981689762793190639416031850732217116163068304733622344346276698987829860076255070410383883391089877798358302856156344936833605872011327635214862978967213101366927167862759954874013854931654725382946371819447733050617914027714076320828740403421899371286960642204736156959013688846212588582060641147367650428721332189697432068324502293484638316988508963071341253844288245654216087126663284386598445037256147091368345617188444698703174542492260139496664705769583344980227051514246281249896057349037073183852254871926010504236112630152928944357203342235066289868489059941981413879134238174990614087986045320717627705714728209687653711119770684481714097286744942537143406705651811291766982807520830406613433166163503546984884768521615717804715096903680258979235749511665274537318329297816670379938137791887275823077974929683803910975693838122508138788432274537154959779007492137686936577818142073930723839577633475276367803195366326363105837239668911461867097629738683849041000788046583735386770441898733541238461156727977908672859950268493490137233358028964025029930439376417512633605268903915130109265623969499293774020291696323928138735583335789105220618407904804784372081750327949483170936722491809282567142427186845303981416202434670562397345271566051216893994704759294355142057015504088891429636423480676140606255884819818538284247053222238989897403537337978588990227839585906155041474584455935725287999720246126094292467916867861248701662765925118211173361800318541973351076888426576887368198522196909114424642744319080701674159611594028227253092737046710698254431846129279308372672741751357726260411280082967543351331019790435139679075618709618162354291754698537814628108656549757347530927728488695650653913829214084045442643123146886572567649162954648374426482807310936410775678190145494878908198438491302031888286077921075979109932597812110537733887366704578699682691225036315760368860888316042562633328090800730304217613039618117432709408490683169279152695090689698911374682514703029203866338912607504957833877059754792220582281715818307644087796166232359284291978306708967616071351321175430010851851276298853934163061838618034427033475660287664753753387259061303588723796646969843721330967934440394651461211581900806684336818616554858031074708488113554585330421151372132414795856875113194587526309316478891644059779686185256481025336043028850941008746505946130841951093984960643373633502171828227872815083095803489560325300928436519303079104261628094038244569502274671539048023290722812328376615552841064356597313450331975515408415883619329457893454644269800179036150548269946256251882342156347141426906566873919306328661492966916330449889340454155517903000372455009391281003970995361263192275261907672011390419890838536030051706470265530478354702206735916491474663205553320835181795864213256474495138472632119055297810935287489514962690293346774572358435023473716767223367954854518492733813643729611800366110074841979243306114283698837144765842839701842154972340420643567238615520783104602094337983086607607848260440708457763154793535282218480136417766756183531565027882454598716414037849887370493649237011352666045914715690255332081362698496506438435757426279453166050336699511410249745277965798175807862705952529085427387857117583070761606416664380322389090079368529038178145688386871695419793586357729930303957238777742657420222954748547614151817213129422185682495387425045179128339255885116369038332244923032412419374475122266516768674916833923396250350077719088919187643951798353575843800753218175821144655253857926855496075266461126631026026837644015571718869689806187095826866996459425834261744637202779160280734412840218684457281423750216540216906672791070342382516750202268827937866135207824202617324560577520590887371329251591824566349773523752010946325716427092775622521601604731509116199628796512179737508574333377370938219441544003272886980438203921702510959571876731689520661077401613393026917328325716037071717042275408616070238567026125107112342999679211024059986332038214251274830546700662967009065347513295533038612646308959666023701405085888915084561926154969736799131271969028709125856862833534587396035453866334913958769734006530026040992947100473344205551043666277683182369310441443346793664750750135833122512000990272850586446170383839454754741978702504812441572816082490579563727470746948429111046248803515490879794982979532794747247167792517152253773667170055953797463500908839191159374657905682122617096517090974982178044064085710813323651976968713343920011858694143355757331357414016787087939608193635616893865392338346301926959291180848964064068147429793714834483126343051944898364614884082476702136519644644418479076034267112885190262504530419733992347342991826538894052272209284139209713079050016493169207817004197694249023566372064571927671863141601362521559169622055815405444422459941177446040836966410402795970301225272727989679055989518721930791366096661659961085320978916593744548987367214478455413074983752037371412637143658175927159782287758506040787430088438172104929102721820751350448490378082260316162285494464534719757923993077293152684476938015228618174220303083668429023844872154147896015466767134474265236513739376176978797334051299994809799438864889756487701196045078387396428018145678089703793088195756112203964446815327501350550508070642080585859272166761356599106724540593290888082990672512660459203312040063902470870926460731274414312266895894990852017436536778892366811654529460375846031583961045238855196296326346868370320183454842339366999496214902158503824540679847662276985024273396530962931278397713771782147367433344387164623735746626697448459916171971492893914402102784682506494381127267555459702399167862659625539473398927668235730709362626690116373337231281809450659975969794462112056904208850297100653064184734034945953879531798368692907166523127075441930630946562503808670086880388263240491338426427928610697426991860456954316550601223337069826005080045980096284249502612300404799401949949923896354834127680601030836392179401101222616761158535503122722734192396398877662761344507213632199099474044616606031070999297036301072233840814619118283894872767502469658594399694704180986662724473027388440069545269343477684196068032419675244182478080090990375443871379750845824000372539362406281316821073508882947626640547359175301031815006256261558993322918059199623988801006116990020556036983742204076223185075144099116728994935096474207333707608179929703322830569112264654886386408313578430315698785467488405181941882619100636800830289532979841324527622164348695422683828335369756042960041889389558922859656838835299770566840362174386500859974400512586715337592282661997060978648614926470508149416818608909923633579683780647340767646416486725343434072332849263063337163311643557443763313626020880032667423254852305909273521689333024120209697993647839364482777822717156794962934144918214504426352875616091941683608432206004645293529353107944944633368310729142513676633446724695822576879812662884112225902722353076863177647019164836081300761132331236863276830259266986082960431316465995595683048071723958137589057498761177407277986120762642512953657597973023002318599652193016371708220290032135547417556196050004357149826730138657217365444734544849581794560968152066027328754005782527999713441203849729918620540410363420989552476827988480759269909683245393049089799384859921043695251731159596839966665893697772408322200945806911141362602396607727899792065433049821086643434487686971804432082685922554413267359051031084960081582499161255309749379968218398760008595381202349818096931661158232973132865578768101428067798314181415751164384000403377248076202747456388883155641334477514798917889376735552810035063030410369877381719971292881730511509903823253653458589926760722587210730278197280666544407375705025835754459513861286685858593804496135547315898161253367903557234208880256636155691744843478321182516130689343633274984827553696986010431496601464978417420370678623078603783012879119209726633138169861383206807135495397923587574076277014637756819103948182733007443486768941156491350783410480397313090201557237671496346569005477618337044017998781935952225447284784508317823240809938484095297341759253964061692642972883187577641281797717207902507057810711704980670117693419183129536272641584264939044179315201490790712784279574058144386708505176634018028711346785847455369670805391867071785885422457615163343723033847491236582649105348145094149990787496389281803898066013163272848666800653021802953456374859212098966993847693910944421357967568665430307154168624277490797152213844633023462634372381607234781423649572557077242955564032713015912833441902649669851856009911311575875512041002708982722127110750043194484202666181946586179395122104335770968999814488859767091946823083860186502675589738600108994811553186997819447675305131347300981627658618971452098545116834684938537929100704177861927443235107480117615642050380298793755177480881767767699963922716810634929615906351021190229848589031090913430117922976231619206535063753957195045056674563257624351836519478145526818173283627739110167079519321947497073569933447991208170825124840972033340305729814850817184779464441654479570399186552831854374604954103285764362500932153310678863969051540883331837267728460134299639051230199168425612676855946940716997784534252927996533078297092612479357577964829500104076194150416653869051056574892605565747491746901491490170165055866274986041968097152790881111531180203663091445802320326767745292379837289685368071801019648930599836630714081433131056197938672904822510465956709381629136951436316424045740987736789659250556075970472283938408165877563877701522396415201613624858936188310831509938059406522976499668950479934687797133378145691115816990675761063591330656641768776642771349722406006840055006394099575808391495542108099587799778034975236014993695968530963564805820973275245617855344596113274951477393049154398206060375361161466986740260058902012474638950206057497634639846404869492208059133550379321330033157598509663330487871675250567122237493140343998139460546220876464757404406456549247706907412009921755343404637257088461792223527307692043766234901235508788617707987310834745180078596248607734806990564862058343658542383117428430993905446962851594713356095766736484221968482786783441248666938536523865604260797900379655843218667786725945225194062313646503066957819546985006005429969692066164272948637303400463585160620187869168721928714590322244163177901018645049201156131271423282163123251578681304513090406194850104249583322088765138480827028603082750213881112618621862336404818739622804575090077747486911405641264481129616738096481795041444203210774310217281943172547472893626594494274580744907156318832933059464032015142237322377495318787076782081884701799832143963428647199357106421666195683641639958520813760667001719619275807612524512467927559985440227455106178125059675427958473804612143796820340162966415538791518808970098158110895751209095747687537800652598300012716412803776850931128446349838176658798937950717033023266684980762775889114663917412063408495179924726257094573262000228190648179273963538587814426440966356428996619103425092604933336724028705036258923719251778131956802573668743287141794053657789113706812677538228673453727699875589103202949886677332224157652357315330861689980556400151926363371062682113467953451282377482035949255284139074901890424453339635204956077460425364417733409268197916956867130270889282778628446128446139792950313657104711948951014834878756233488293519983134595597178322365847048914570876947584653638551318947637326683317296377469738687041872497441963672321555255970658112361574968094146153204880825982176093330216788464713163858528768625677527270510442522292310854881832583027595479904317215420428951150782232719857713900348245215420486893951668643197080515315811764906686808640109612167343626564657891900515872085810893090380458292175745186891991944254651764810666853067403867736716567115921913327031372998240344822110417471875398811108831054971582364685825797435114621669261276181934472086854174040909255713497623918670397009020471511393850687715815873979058827014990752618230137574054267825527705439425524235928059699431212585911234377320829148098111869566829203292516310684211466271861744109115119593804187036307772151259646458446280690073321454871199307433750630656258964579818587746582489409233196176346716593812977496523431265414917911423057681640501540419435471781830526952712816032699134732885047327034938552778331044809563634530039497532298028938358277376836253195834383185432931671843017852587693904910335659561559507422711916472093598729810583178101120117362051409719514515823661178405249711430072344368039904438790175805060852444397748994016302570864365295958436234067896350893129742140689356575777709526026380880357095791388756912847604929462603749501184763135724152014932793539446686042777982605620769835988103178764620111738459346862380115930641481885138885113887129488553299448461508226768955986594339439490409171012422424179565952962603267837189329041210002737673254497564127964912177517034326665116785188547923582339647984483827068219478511332198571354877560979356161643363365483310705096154157592141458117292689687325049899313215593359123377075676999869662430342047449217746125786613504833152160533290730934672073600425456123664561851427740313794876279714787584486797158747118591690946361037544601210169390182351639342015475773412392382283801922448767372686991903878562210421588913695260404066232035958356170703166061886907772530658292354937261234098274424471344977567002982575165217645849741093179828515581353099350859483022667236947582814792855595193151628085122333403835391224800950194674201983453729241539241943062176129473210025526964915564734848263564796796695720080845452933233175841283304472543977369588158058842577119016072576695955563908944953627105028334777026460981996565537615136556428269570754509140074180000787261421909004125740638629446121599492573575794528834621700688283310227000839243263014146174356804735715034203526959244434917167708149073843625842950421676527811187486264921088161670228525234919823433645874538283335508701164596314792984035687873542729204114263746408313300898470413892502444703013799736588673028864683063162180903177359685449656293047848866376020317834871783436430159528366195790763463531950925904098263406672073488137608931285768954541373054593487269177794018820162642591331667175333660885160061374815393890317244112927741601377811061881063155588584398983581881529595044025709153768961820744871389025321098184252321961966588909665048771926330786351388365933662720534740248179343367437978416545193668446810828255568636532673340662569010658196274269197889293631523679974046041845629684538287767307681252262376998438465314119333123283972544777868490336146255707618590666026675771159904042375656505492341253538383605548864243738364845280764254376788643884618488816746337062087512058377843122624298106037902093246144915083688996667015248449296937041628180279149360747110704300633021677117410817792194946343052017024904316033752010469898562978234864156882804187044968283071229302160802576941555116346415638978123178535184692314412656238981691623002886098114315967240400444857438680816026257567444965580333442915422992364217782707168936950773862277942662510851374846742038079966562507773896416262725052505076307561746541247909353668573253591808077216617606465898121251764363608126102749073478133130959550596682105840257315511468463485519544867851819381877363478844708610242003905711687783542350106123593351155302179053402125676107760170890211143339645120947441451766877456312941271464600643932304713706029297117409399667275268382581738970807088075728780222933797121385405007589465645466100511369849396295980210486336970423867493238028287375206645777835260423208355106379393227951832511858327360536394118148433370692596205846832860847708482489704595062103803974902280420194021079479338175360766093690868887298131162796663057774773915233251127053614606849800588519506034948339216549145474504227141048373449745459939220184571060317511283953893202228466775646598169429250026392480828540898925065526388843395787663595794242825617823241219885605125135470628892772144432922991905399352378004416308517308147819293118279291563792392189865841984459886003404644652033498548619857064625580835477362223778146763288800523986447775974282608395372551750955507831724260091823227544566204211634170804174075672841697281563996500451779920293763048922147360183152030544541063213813882058526783526811593560678426372577023446806476132381023445889075448526780377470423776524426001993944222234430227372423767037751311804244467266809953357834302131505818926584145272543453355064987320523078665023842596334841723579000231107574365146104757966496641266208661324826171809851344880713856963183114565586303802849066320907163963013725826354046310791189950924532467854970988821589770405240386346852708362377155269573584144155171125894328232386580509426046493143509986526344264045569834156863985448925145655215484911117111787248960412034868721178500220860272433751834522788755780384998167710428752585244495676958492971189198095256241407587582112230570416417737545992630216194113328093644485729433897112324911524296968358991449152054901208919350776686578870953638662442966173130004791173922477095194400767743749299635367864919091418900919229596658912521421697875538435189292716173889047072102358501860512473785508562332037187222964637560758019382322002857282217593400175333995408520902451045229755766183241416800935852280756025812950166308685211163208691277479136472645021056384158303481083009454704910526371004614984424367585792376561312754093009523175269430634758854821235600756333241382462989707701920086866236656558153513296060711053300407930520543390457758318876816277138619774267983754504544514669611843645529784712834425153173057897017593050359784576093466612863909973153393931842019278219444491372290933420370022220871298647792097842765035763720305630130828408962632677069444242719316188436023427905128494943002133235847648466503332458289571754910976182398745849383101594646604344184891906635743192746052967376867504716241434811688499261489289741286088401493292763341792005826673178130505860396419729923099463173490890538030759537548035223337508615595642892185196472520767863196000667032032855878339298577689643181453389718325636093501896810576913183186730497872812664704531842039958059079583698512326241549142565811196284573040299980824677079469921920761280027008861309712529194974133147305015684023179822761337692041360557501178578620248144260510371873709000060314921841758369733397255194808875341981838713128883657320935254557068231970153764573066600807144787634791517135787276410508151713618091476338909072455460715511331333720119951429767521736006659795270674825026803343521076408059890224038621847150455323054759716264881454700477524342610430108798092063639540590338153969253147037670858783124327986506618763337459876357501951091730589192204649305037501783782440942622877723489449301377587227305982875640528161301185839856502702859573419026477588515980168109976569692878823092251324807081581116226320759345122582289001030472032977161002542292564200281643123979621798769964808075084658474574437567578965414746083201480726140432590558330234410735847131885623035013477997688969974174384620027475322011468877934069432284331089411548929316365669899511432979488463738345625413861512726744370750673816032185032709418999682361513027236738892687075607316196604687016298568843122329759004597702780931068282696456036309655617960192810087525005101479991920328589324312669085570405401695854411907142163234953591485361217932748273461132565409124223028073789391958730529211745069674456977310648445500540565316329013272937908912091258623840842609536430264271782894766271658224208092302664222924042728828866359496544970035021420006536054852749272790153853648296387930046370839170444059991869735039078300611404073144890214817644539458790607048474420220470573674590891860219698637179696645359356899724463264682651604254762654923651888893533139498325060304806094717970020146996274305281464345191267334198791268053927225866883214313319793440303869966213205238844244363792129418769312916527780412982392326258206457414804878082804749916901183814463704660434008923433885464060354812149955270700143496255834905786595405600817793141323658935817968863523546150585443892968462036775815835781713792422760998150635847058088651625903910558437617615457153603390649244775852874763917974332269035990276621976493048735197012767163622425470865630908906901437793076389138238199938885382301432850376277370509114644461013989011785717274483912263364102340016403691735146370013203919470828279286211435117262319397095629394473507922571753719739311185291395486658557049993600685146300895210537741178873806887940966862282077171705614245723933338842577490386903149338155164352834703141222280279170977614933448905067709851917869259580946566703048391759063528126390476964474904249581402785090858965983580091583683352553103855553436598350656681288043701930222204407710818739521303453191203291968088433731152655980275784826705073741565789730167372425200713554307299585242130911821617897894481633450471387307439973714554476467664145874311209834640103593416223329689344516628548265864884304763646268494719310332950687875879465470306505416214430299073243717503876118295817719430599340751731201786810495768098122942300123456618183375872930321554150688121869398535789416780266514776501074499504595885327219388004319318509678458445138465537726117939823942903726893409726803161038017035400281838646560054219937284356633391909323436869383524668008229118518348983596270183028321997532497695308247308138815233725509388883310274471857041211492866419199493307270388019787847438419534620548477809166365563797517216156828258983043093074846711989316708522852889962603180792006853245868411529413558540371060158091630893760089971921976831374772049914019442973761532161788394514055090723927880030460421577635265896536564737474716339347183715576080888180565054741329497021607049947841899549549636275535285465324926628507862741583545321575909306253913287550968077555427459488829862372797867053076331484736520242313177792813283242046283927511532009907263425421702491455449260535394739819778062711351837434535527451949043396029075937681834462403673625511616910792474677611361153684517191488949454140685678405426395128160025908868046767519801040965317250627783406785302427217761635225448504654910241687950323712552038514138809059271052310401825641172336777171773908282908565068479188410330886387844068193389202747580412792496825043695924751067848240880728381161828181617177271619779220550981789137626502851508854359834076743378073088161313223813226066592163269930666887273201473486845663742679957714750978309204911074399524857730471716937637535884752651093063365660998136517640783108464158073983831859680268533189921733144748062866773636507112009792350814985686642646782990334924020447821626229892859095130012243851192025208307139560261917508297127754921139641543221197967972289674873293375911432307209608643228015580981197905715692927076283087595745161613966627271921379900627283696054699579069435463544158099037332613882300728421831922818768134777748404451173385771402355393441353574120348143786437201974762581402596904944946899538236247936869425542887019313777392363915672832748169468867094687468201583971148360910671005542482761154082227775124023521591595578520952550986774580571579648569540436468820525341213013128458645345767794742813630347278426529306521806817739510342586577874859682588159189381133454582871360648070637991149205437425129330991248369163744478792404146149645240785746714836839409882704930487692831305195798397133176924421294971122370392630395702863105652091705161028670374208036193712680548379891251674611448797987776577979247146489731512763651241688062015058612202881718891807345108540196376437634821144112986864176380753100063955493069508402150642517241547161549695977082064976787460431591916827016664995252434851400072942598796235512682402013965197397424321473469940933273187713637214751651188547358949983364527472101537435865356053265661092213172765977481829368240517100816277826654901814605115860765129548912000945710649237420111543725444598890995778847127802450638519268947947301712052952522190650358026908589480874228270112098506054161749466385252230230141476017640657715655311477889610179313975808599810586661015246257823412633458495028208405997807047192862930849314480678491982667646775437778672981877135945126915731145108813059529748925488536362134823878644100760542417011785186582203595803635553712723162654497180826333435387446226745311847408488863930666226780416127663938138036338919362279144778524378758673816379817071789507292291081819074063797049229350636425624103361029639788913439932896079272663797889041791088938021173596864684722530232706515380826125242083675048604061644300056290143178000500639272678552900605247507831567682426066658915644275281450483976049683477415501067361063502115358614736632010943266928675589226401670085647905749888902836262887797882215032780136609767903284724225520969464478757129775610209114265608581210904164197734444101396195808381317173001530060146090399749949581459862017131107361420678912921362518387166931232855911897449716658890335895035651925635124398747543321448702580758778664639784549787607931951603187958245738380350374748935248953526757598017628601226708696478873298603507383768096137257823843865636706800715593162745731241739412886132064319591339872205094923307257756065831352356104118548293641845143760336092327661393078292218609036572334231859263541609839099089810576531733393235002974283164964338514795411433767604922058451308374015401351713646769948660424204525765764438200127040969644422241355900426608311331044564573896028355420548697854545429531814167269743402468170720230344578653278783643821278525694292465512096711460800511221190170367050807607234484248210902848160546812956064495607513243938190567260846914373220962621094648728324380707688001890398048450644038590319965846453728867030285891670631490897569243970171521122519564295264497870581032920441144754601446167954394092749817621996371511809721629072879583440435803965161758097438381016269132962244311002780554775557934353377298306844755296602329347859147804232329656175742288313533856417173306918158609805600540395924654546190033090665437763716496012142629520122280978150990507237127052697370020762395217594970144097651655767309571159015241046568286268168816002272012951750940935502981385156518319815287689385753868331333236559600496089483815374711048936110552686623346730431905669898629988708295196247636685771092581759235602838192078466090965758019193779905875316683764818485121817508795224897116032319421876969169831448472231363227943519867539203995208327570367257148880494530016144117129049901007536262773722438978962032333176781960507010111261656156047636095559555616321732533479278778704787889243394904090406377531702678084179330936242921103346741262979761949743031548295965225735835064071875732405613298786552210208833605749438449152113975275467604256738717520721626610109010551496750457154233173387665617658948653589416368004417302982223881526213900129451586956571651623169011374700784820501805176321577727451543409812399894770515060273662862059236337742558003286250007671700673089144744534072420803989695621012354888304989943315606704114152325930072977701011597391337545074256156745201078293164996768833511232237650182980885360979445843487174188646427888976108469185553601231782183329622170164939648340937118445285300373414595652630942386891780486468074195810110573580598928323039494344097527298679963299419986191776291696725563883152533938161846341342374247096940141786780332855567443136641631782872300071017913320825146574382245575540923718684889531499206110860506926851768103629669198732085423207632210310677601311944849211540270789973362798999624606246524027250762625735614918978855465903401082490197652280543630459812472976123444443647553426330099209453772941890623132515911423366538852472185695081080639507787566772538942520577581249393092882913097704550730718203029623566855910107735274869061746851993107412643631423304480866594182627113322503847467982067111076060176768557112476651888055785249831582460479722226078913256764170202049662994050817435203566176381502537390272955130491298565080199805464447150357545737835562801963639957913502591550252002552280398224802711629793927628408200066318437124933903095961914042770876984868518552390085159701106146781527110275227167113367083566297356605428132769851831572630289434993003662342294939192182340015673959405584324972927150776226873781842322609788857106306745734866281751449122061464890045763380873162277256963529166943902729154276323191536186905659636850413204826353291666395381661751911901653554930841940313538730422623172491709040411835199609813027922893117306608197577055492348940965323597109775770977599215330205680310562171946627080322051519115016800623856147186610047041198875027942111714440742814888395801947085550192840335193997210961578724084781134542004582714760329609812509660725502336131166340854053710854091913197318695224346657279532500092307598940717886415568977525649367812842975341230334482300084354576304068467571891492023069123267940514318472590651889109047233711156756730781659346417571552985169416037455286535787483377284934039290201129786728629233217882131943268048204364387850361438944096287504667767037222727224238926854012966232465910924651470078567617940975347522002563985974629528575796906286040011431499231519553001610574573774440621458995833418057518365268281850375876872247563132318314853078907083941330390421173311821293015493383406577067190256629022442530344049318944348641842029832389739236084754486074511471337292155733394256484406908191679592499163931000773331530295968074342993039718733365639118396443899479284532421131347222006450390385290629341109331724675886761115469286626457192200108317598281532841042528242073895649298660222353277312001698516475998558546867447884418443442563087440195332404699530309981867496810145658141979887218139801571414406807854273215236032883334327930544270222131204502812158376484255442233396836414121695454787789020726338788625504260406572889605443925761174416545459180051355114664707125095841058528679749759377076147339316810393548962380031498195257111300281867781382094668172279372767030228080502395756238048223659494132239107110759456229527963432142308255619343506020673412998825360276920692894664631202380803525469084460238885440252293415162145466414694609430502960920812405843747155682895797143635852628321929142076272974498568610623789137146641561147365479436228986136078333136135698761544710873687781080766034904517147655185953373514852937034932162486349056631031388545944140090654314238000566159551091657612759695544590309290683573946638913578895401494150816283859842914595229691249478151681873989798422931222740844956768396681993615460059925272184651702861764222614819497144044576034809685922881723370074578125013576563657920215572041186922809858193759978824557067536384670090209827380691280769544584073288400395026766857565709919345212065701113140640805380898647556815978968954402012325316216774293826061511378610041597385792894061131426178116668828681321732233833127181450753460401455478666864233775514175358510659019268329055760329734805121352514469102951393745116664468875173859995521401046190606859760890360468825358548995611286995521261394051669683681335283484058329897372764284401875164152915300800657644594185222585779526949556435704371804800660021143366847104525878225200494768108321110689738299362871261250119458759131224557314446719065347372914785366144330598400504937953853169854726945625674968833946297641646067834407756275198858737195624666886758702122573740762918724229300837432611702036166031711318991607980688572344685371122392959150804501835472329508308364865771518132408221416611749052863363249132702061785752209477143649421473170028549441687499928471563249812870421121403610714870987947897481163073247760628135297892006009364156055751816912181344278616476640672474892461945224893852942114710355935398276976845738516637088058264977248682226498819075024104106342050131691239299245755326335923212024004633767320011197289362160355489000337924170591005939750790454329478732370324919451811054647367896610312302337725558343916661406132782783373367542084852621679034027510530587619108275113631933022765917681844687825316789268084832672706827217640589693988904011452874574350289103502301559756513893495128619724648059455875775357144271004763639175729588248052425470098012788363248982756998848070504268725231235968128445497047432798679489462454632473475591020281627430667273136707815494982304959344070251415405418673617869877726783079578253975421797436285592306671920126807536046819272790825178313023425449263188164041005639993300829870785145052575043186042434325357438447036158244147851006962240987266196015088221770028207139413195875991832024045444109270546059748916142341126895736742129494100334095727692667900321563698785999864621933522533782582745461703034127682949251358311292559788485854653274031962503296515533642497709059777312745901760173488142059460458604477135432420700227544287707373313435211031941250884212807217084514820547831891524516919657148939934697447063458829678351407266289743163686600924576754959006584813988707868341807338178082716727073212961478974136444362792500411755675044768816053988873734413454881624030082101858081395087761485505685274793823396243234248263337560742519807236241469606254753373831811492556557785078123009778706204052867993437037477355951122712542175523137700476815423107346879372211680534703679978746174768450986499692315233260144111065553682265100797047187136153339182917257892296712879262351124277350743518637459049636645493928283905417404383312472284201075526189976896838205919607994984310485199926696422297029330281456793283334244870914703506654701050222018287160272947498345156102082923818064848435960527743403377137010873549585464474850157082139197156238127596739791572837842347241632915725419227257788544583086342006999948959446857373258521868461380809136607866254509917201930760984305907410246955078563793919398127640877462432231140874692671195460005175325991689709028823813140079100135430426171577058341596504835077032830490213582569298006928820451207272014704106406854924680934946163322551191626392650857942694927624527787596842507928284597498861212530801904703773046477632996976644707394046914467732868146615708158011639736619730375090555539943854550539613806287640434576626588020451362694692164673686105802046453994722008297610831929405594434634676486274755006908775525765040408770607717485460740859265168348664395944512288928808179266333552277252546038135422627128962325797800737106715353230483398075979346393170360718552592138233512707614338024852534572289649152134493354591569351649266438727275411873031234186996417745858003693247513797832351550367586909177135671618372189435612139005920240864241023548636018009534859382061049410375853425500534092342274604714579299639875585094500159228597489516856640733340959126134952410879994443962706198607164846041913282370273054790030933700296761462787989549493332149784646153722959448764098512821197279177650041732375296528694735420742181715523367299723335917145477204210900832433326625228216416340239451271400349847673670632376914061939721271497883383698576846261324212228585023137103253135534266356104646715568711321591187894450760723548534694469951140376281507501272982096502160600905661792932028625475027310459296996503741086534391062153401953887407992074440802174785196098597346862996478157060928531238346913148647803486994532485716379102639948654517103956011730522542214446177103700981488455345868425116342381190466865950146179268719639208128781857325194414106318471613232950961314823158737119758735063908911155116486022784876496254992835634098109198720152047178888741393217924023879490816045530009766450325834356633502013824765686715542357120802689226895818779802054087517971579454300280691836872850239318867460905644282645518752698186131767679217583008572292583055975233467722086444687531031445593388869726911847117311354413648883592890789530123607582397049058966142291094327385311152410500395844489787830511570180349962613113587375508004009312339575460850173589556224073286679936571167031301726240003692210102133908044950814384907792815983974622594253937730183529841383097532663544112901145710980216402678352971409414154140335710550581008004760231112597465303622496246950450797398863384650803377280681282340887231333909567309944618610356974867765623360624045906844148938720437795948787651521131434016707258307107066743623049377843875709225622092699927315979733471673279184578698835597136939009037727104961357656872790780473880737468885771930755478100471216382495056089287183918951518844486164724098809797353492656420042456833268302046739028740836309667239330231739071202284359155660760673905732951177474551983083065096136874458334098770134234033760320841256997866339085255821029870930358343240149022532147406670260348050401310159174263468234588934280312678272703196190315047346428779310052709780405979453402983632352509064558601463936614861326607244958116270792265341333275400640950603737402804935191766875730135929407061261608059482130446373215147925337734697853110984149239543405317808142929692716550987668175409134154131694478319421732755409189313669661170485996222789326040923060355679698876113654703045503459489039793904296030903035763697880364502281741005268720183977668956119686709223752076057989614461334020960272057377490273338163957347281160766600297375423454464340505597594920063798106003000343540377228127246723381246133816785808744835363053900950714037918705822607646920111827527215029800547910374177815026873285005194838028019644383521470133856554787055989014299605122154278142984205970490841566579333019234060571000076968428531604960042911795314716836112074485204499222255610543996141453458681106594159065781668437847304667351964396503191311407815214909824059208065258738781231620080882479700771942326765699709775370809070830204583488958513478569381320586090862985003076823367565637536715000740956699342370788833378060502392922677642231485001050260856749599501317995527811273717589687667734174808696569088158431339447069318429030176023896275071083029974417444771509863165305677380509647763917198426112722695206505952076072830307551468964410996222129092541940346074174249028433348851110220450763470380297305676873586840135575074799485513557261531812616763427465421720998358591860848122503904484864071333966914309371642870716730210224102732446494819522932909067879839728036055196853852146016430402457692542660740667615917036779574562896194807434881212603249339355858331496358518879550989270225848778292885337345507584228088268792016633786028163445406642507665545107987506843711959748009069097718688655595656993052067439199813907866180526110945942237204529310331871356114155468735798258595063769158836834286283509729491979407910880743383588081766674922357199521626502459134508448383932307110590873612749227758010073513307896586794965449263744016970670064356856551799781704887753302519866870751226517383429830232725490457477506214488339421233709668312514275308072170280323582030213670287891440979275464929111019113519878311223056262859845751074744527930452659627973302863357269716529684858550502240323161087444575605896749490097308987271825986271979456812351839088819289795504563343042196445741588524251307640504953768185648443619785221159192209611754294880160487621377757791467272091556085549160386264924188827589119657386041199389524199162041832474040406658492853609679745743601463412528520345536561652011217188726412808477567468470846892418184235977309765279790205425248359428239615475355986886400183198738231765138601756715247766574907700750230276661836853784339430750887203472537118058924238150037060591167560420944509110697216908858606749520736310276359685219097986562492938683306888744136932617374212808849535358476105090431171725222255581099827974767262928312682060135261406618912331596973602436388983327678352566985587481791822883749078963536528097960174430393302561021398072238452808541813388301300881302924359103482495515617296105364361727071317500356219930857234871874392625727768107117057808739854846912391320040329875223314552511712843634953234970856078891578482775034073654547568438463456248222911646568699214319378904457614182273798987380232271690682666362240214613278467082726788840447195928232147843760635062909473853712322772318959437709627437212465214799431737336628831629082325134037367603936086348430416500737822694252066309682232078534414357256450298253608268047763620779452640818428149344694435893786214173535347219344846320690778649312592740022482854115168874990503226204120842321564199383046171044805988845123449226039455529342059059582764509411227832681979643923965232800354114887687221262613860854019241620873238490397253139898080542675568043556931442346359345947223440859774924882799629680074871581936689244440721177138268970300080498366417668649661212504950879722239947060593138090947354476928649118422618602029694240831926041899163625616582697444908869172963970054311563206772724939848687672124961815957809433901131073811177675124261229814384144595574723595010166387660398764568671903918996773702056275166130324139307197577982151466370369815521799840494132967837388756510120970689990357835183301295603027380279079087796603688562043941496144515725550179474348007984698045738645539945745615540502442813263909579061729465591234786858503488317938280750330294574213830212679131685203982872236910095326748665469450982769781188868625568582327514864277905084920513833487919802699942160101758978510199756493742980417543198119999812532908911198330246720923302919941238760356761954640527647465019732517618302493202390428278131653260150859571881174701197287701296009981597305522950082497306684250561143842902514156274849677917480319409704695203511826655236000450535008217764453763385967503932152386111339809315767597435192146612716835474384146706578103128480186394378118794411698919820283505532312109834144159535058380690153475758191501607388389643039846003249648550841567812917244174333885796496452689569266420245279563338304714162591633252846185786567146982190648990100668609606299684913597518235094523038251284035940239271979194271591165362172109594302709689434023369084182543480222511371160614356728720253105152278663847479517352453452643296832516664683142749463300460142345958454209507823324709414513811661233802492419372601458338398108559146099486151000787315628423065217065577727494655396320266463159419078272242225773847458553886675460243126194020284434191281569696013807374051620548946146256779317229883572859296911713199705301213659575062894594669969598281435593768341785072349776085808435947421254019566196887931804638971608032484941449564432533009464191511433003717984855375973126228985535137451744090875973040002308474731747479576772655606636566823465792980249779086950051855934664543510417807847450332678955974181663866284486523279133508506159132978467422995637989930690176271687001127935142805075514494863161444400134514503546291568214887956968750969164240658052358493505740768378239676996588277603065965178948616572869463776456554040877724888198682147328085719733363416039199324762552502720689635630728760513197268191411886357829462577930320503540524839426693299809540400289330475458009517652098877871228913889572001551662128668177135340321474698830136880216384858693662657546633813505710783389883544134943413035127764423595386040895407837651273532793676408844226976128396616459921944600572058575314608642672367286733767520068800927916816014839640810820087693609759247073330293586870773090922424108983140960225833761513763104562957291156746945094014530360116881252637164378201885519307315642811447767593675983061464015209585820614525136445211548713333468131872956070582081038023207577352941769534479280009521968863567515548533952802131202724750448190046060450615775089555926806129793377001259162814357454461851697529005880906125970390943323906959334963742626770300353812347213833453171676468367601438836810556604549028976323994170852645338274763339184609724144373887781221484732436086365172119032475041741068613351037280581172451026471110048174572847547333480644808088099961710894598591854709458999046756014691026509727090814421384347246317396001913899911275328196224772315982422594801196191479992986561797392519124338315160310786650813255001422810806498385245409712936693090309262182128026314738437475761248985029930886295330951737315388662430957532317910247380207681146002442450184874695101386783895726938189950183998560034011205682891430992654453864375321582306383502296737105434596483558036216886645925673549736399288195303263755155012802533916752667230702099897510936753007508175770039101078275844143977676213184944715242874822935665344101317629939604955538191689502479557805885398968347860222964413545530376361213095665663228342647607034113097983206589456571737017539600564469067450592434566480461905212104258235101879094084826614512680971927778508026438403851839803435925549651782981178191634841715573934258282847570040940377644477923986789953468285337713005744430428126435323442121544418170448233875281141288129510721918282579457429799374222902901271274797986009383027076586380594855044844232258558830132269553131205552517636347478199766779199242207395514008559946512115995683586469315991592345219485185109147214961520507522372720060367400755677993181215533206983886726081387124480099754399793532102494837921282603978259140870464696524629437527367399037806030715805160672428431328143626884317382247697035577036825753725148862070847921223710342835600133401437202577440611966517909816462037815939682824449146210270137273890769110854298241302076448098839780646586671372795662497328195414714346691760126380524648386896402906200561430591927240622026671830110751460422769392126577951670176625228656570145547131048759953962863689576291630565567346975152614299859618037316008704567685219263741498720665740321544975836628186441704418315895517186580848034254723353226290164176049242468193381858260388576761228040715718713780367078014184735409023073758397358662337088679583165045123409470533003093232080244830206389055853692604777253465044425509899943611527392611249371930776266362275378519814914541510271275727403286682244240153298490136261049547791683166203847316184590607997498249467591040992730796682541175432674815582206489892010890747911569122655982134338074735807857729071518637941580154451858009980369938017806287452442822054213568059461640870020784612505880515159683334620769694926491557293471030595400384695384035631411470643235262156743029713859626865807934752793705278285399631609410762288059320973996898120075050044904719098555980743096932900672128902431638736396353357498807767370615185234215877384285763771588916894150722658701301381484692977465462444174321298456568631088830138044184377632429458002865467558478188554249510749893049154340892727592354801322564699930039328819584554905156555391048196361861316211987721938075876427578734487755862014722371984314618765642875821706146458336616200381152761475581778787797994953342258828019173258632822952817026816573184663999975755487417591718750562265252884146525242830235032164994949829615210999981914835432561687419325485804079948624529017461577405950035814616218817559201725591371112234344806405199670598777818427781890973037276815271148819661141792423261934128853898041464170658620467083146923835140592265605596476087431257678859271329447071534243617121859250361530295639327593571290962455126013937940187317458865618940047331180252445000159210759880532900303109909201030784585902086916691716773854077431157681409052104563545800138259048546698295350403275507937215302350046469794949045659769930312999345275347381313221536175261013465377665201367473948383200460949209503211552519552586352997132813331203893939334983299469525449787408889497612867789913698538971041650872824590043926480774098786077171229600935822306846971917346301962379913183933183676738918525303998314745080659847041790982476377816178013617569994662394731411313792810572977558189772591911365856425387992536512680163242915988628262669792226490528492461391599501313644122765638470469061562421875729172559122257190180439855701469497961989446903812820337432242018922650185200094829490884968804209229045941357343165090903970811494996964550969350094218440315004119348459101539447518169429670470494787380187542361242548653468505889790305857543388315333153206791334318747394213383058673767865188002578151466222715350249088991135772365800864157317168271797980175918749521369149503986842516467119097294161202484017598710840441350167510500202934459189558020322200496083911442426631454956899361664130198927658290513844492226030903116510370116688171753141479170846318049597210630542406521733758428257440363351207777756799514109353610632368704357133985638212633247735844819477101339561104898829944476328239104787040483418323112838559459529854404453960392553761797966379134962486202135674249969674120339807265221563183577071739801912321125410385084237927720382106810300610309178740667287713808182802624448931228915303299492795904448076897743776469218564457684421429031948090698951859482401625917775440913171965158211731960034447948905073981620753192258419427966410336404157152818597780492996838664021692895463333903586792438747116520270472040940388653168093826029910311631397454084393891459891017042345661182705234435027302513194628649167489844792915875777003030711814189076629879011433119755906183231882550120069651339114973110689600344692926839458975099547763243147151857275449056762427282584797033842486653306014294162880618894459041243349984340132034683008130370116034336673150255916067045840722489624966100565819153379520312139572765266008025205138628253326496063020541843774765268276813338621612872423958957256995830369584934577242944045804852298227139569881540731402737138189123252853097890831084274455926099874372817476941797161818495412217825207576508651358004150492689616875459932946273370732335023482268198990827558171091242591084932379284085030357084558811058035723458206260412560964331728349873013590707529107656511772420383818413935820661246065206666844552301601639864065884152815038006224076878234183904170016441371210493235791755935110881106869428288616930450555829008447673081648562180032946853617006348817432081249785265756759946546978166162548067339233377270675817927842362733622372769104708183335181198684139066799376779674443780575176211023127120019112433429492632532622494335878896167332559379050240066333291346626476731322466275458610798596012638821246668519957984497038473004175393353018966016443206996696866646066362219220635373633261764276541501132031028652430189809781279277386136188052853084136472102501739499031100911592930067380376176605747310137158100688672109156161359416123460775378438938210855701287067875050670830113606606217484250838656433701094381654807985177836996036992898345685132188151448067588199518686737445038860463161781012852984726149414695805999264765705304325761170487991678659077961526146745807755831437161726327215632450950554141344366051226169734069141165045712202077185652330055772117009655266914825740906957969286247334601322779120957738510678750524611696570212388482932350028725420159943094117097982983294445265358439752705081348005384704979701045481734530042395405634439122954248016977917293402678814800095206575271779090217707344183864686260902260897335768234430585299562483904849145886201936052177275510605147242360385390044405078947411593579668874441638282724473744574911319727873274947265323037555642263807547179389257409449077202697509451253088394608203586032975874930719098029501655332850753007314502551168194725260556564304051684059429999477559993176609399286978056498190855325892729178274406127132279023659573601319981808827973257307276522946150934551414207484953112018911438415572392791531456528614353213384289901212975703486314543042184108840785605686724847955191393203125297768759575688634071581258906061642631506049739890594488978798224781496738162700673430721710534205436303603241253413154440216667444624937765032247164455980006351504122797561630897871842681734994322016485034077175259551722316627616778236782869354253481843514259747573090816494597407282526330481662547322510523158750748291010804611821977514409481563629982350090079564787213880744386907092112247336870827439122108349735041938717534335352331619299137884631350080143226345884443000167233737125274554093420764030716350547233690724463752555545381506292778081662331468455878463796396107144619126487952690956964191019188424303549006480036938598580374404778185157233425785448871089247182810412878762392907484992343587396240641620019094514316040357286574211196020949676093053749090372055827842436516441015253039429032095532075665016937442874451109466082735505374609293597184695582849583748714505481371707599626003521218088869171452018432611092810570529525215824440713123708607835459957863894162759074830732524748318278000135214803068938186068987019029689000492193573675112050872504531226200374202642048713936010623778529662183793088142833111455415649345926010435476323648240734882236739222874846735490943418120024073744439407886702388821441979303073361091871893810204306945252032046046303593485088596737325957442360913245190645128383781781343225744718258956305115807427182260646109195460157832355361902140392936391414883583400631185839382598256072310264593961228885151500102907851860205037944030385745832711565498486567539572572571495800234887094977703393659869466100288892582709075940093822367672353060094800479584174399000287036971801520442498336364196421192182728647272785040942650065094200588292864358904597249458261145006340699260478942372846166949104669862718240267761642173523313533241953224184567831324188001489394272051361884206911756479738166797541536338292152367381387214338845997911563061160379976450192402906874111270390232228206937234737614093486512778808786612802936691140235715927431373738471620295183364135685720869987704490876289203778841053098995119301816797630721041834830263483017354505607663912052988076454787636186857752074791970114227135783603866780078749135765415401560474528410798403175256835588163449089890236517044421559048961736377957776583270149887266642954689497556478856719737500317696962943559486909596694229890442885092718492338138432115751109777859466532562812738828895837279257948507468298896349106364724635992840875067310670518601792514336370089739366666792824604912477168018129805013657019066957280573221497804900011235389344101098395677256697622810470697738100157479061975523883878774943500230516406817711678876663090451116980659540332424756502988558598602158422615237414325307469619700384393470886673714154599497303988330020231435613626306975775174148045005386976805213171625899325302410844038679279803976673056124752205857834325570382657944429549266948624550139430073498003556802608935588319194036679802690336419888673391738306732609311698079981326632543229298902280130495567399191647300335328808393405303340340516367808910609100545672387108612180441183839305420952027205031067843403799637732205540064529207553736358668662369845294615124111500329072865360652481000855826096214117941473475138557215625887076158785186872256201338679766616343616509396817862329837048602690281947047397021860113756230507028027922378377146979251830242839051158882885805994655088549459178948122440213249862202282322714237224098107741695361701170305837548201118216181469885410883868213296762547263642714927624045799465480449193304576293880729189093227928949904412360965463141968989847631013248906441771170617461406047815122546474122182816507528887923136586138543318376259908433643030750449443746751973282646731890116765327823872215703082317178596681330230528142335836306113450473142096295432527029066281200112774870567961601957712346060056147762451541378889839345480431414536792910275166504657373546931952117328417127802193331045669620503626978824861019822300474544002026848966075559992937019345099412476769134246074803684521236077488746516234099189450653117384069974417749377195073276457162930833678207859498522287245078400339766466109925635936379959143417945674248481982198356384861430695947276240847925903377029460337084269640781295267741180712097446655807947495969467189438776616588739504598491335654837851822379039646539108931664580117338986190465484797385276171872565530605276762047698557583816460551217761381934351081820046541352158898380469661848459869605734631170734249076241654139105235592317553779984471279534668958541213997641733383381551096681008621223947126585000861187839346887768778574097977782664992315188233767552614788222932216724630606148148676860637369981195677727272491520020964346219410653977953132477922609715173235830768826751122468450141662977120556424545278417528270761703368871006909775853811161320534518080681151128758142285348192330075124422541289469891515206073731689367952916958391959120212971411756763143848859176519651699200543396033438070567882754827262944841453029271294902152461151087070373695984566612612691979239326572160214582625271949336519667668977323175329332108550517427677028825579386401109523241133304860150116720417575026983101586264843653011053905865865443984940620472826173377817809314555410962946264028025620241889229056642037059083510266566255042644036802705852573099643068888953620975462545517382273165938784052911500022644936892934178588109727994618784020338337996758963624691475000639772110597260170771627983323507578148015767112623913192135721861031956417758298955896709408544389889660174781856499914649021086499377079262671076220016179583427895240416794434319817779763519809026209389208290213147246808792753443982065546594356787226531992264845375203683756959381034173305637998694296853029183585138612978764366950812063189717219619507278447814470248725153378833977954134054463172617763456180781026208778377621382530616267011832547521647900978933129137359773967394290166897776989460365430915881347204228261711176018644833489688971460650711283896987672325616330137137837126042618302653725753171206391023463438051650525550312987579759199360895733044744949626550466367935400741803274551625905239505127721660107995721597645301851581526273058376109172035299268741075576489970502706467337751812740547819890343888124053764267744210948178256904291575411667738564196924561725077837988023639360511669456444451557966436706304763749365247434326446710429006052738833992038615428212425558997683761925442048135806242064728814146677724270894614047743705450209563083459558882791682048101503745063234002786269092690236133110693805257468127395432631494869259850381263318615064908805297165875476780328066801412345681574140651070157481851564952244696354326951286094945830374052370044064769766488176294726069561736899972739565022461814104102041510060630641365614869167322160573803585069281155225237608186334501040891422282927292233279706224020351831408204304913767848638522721589676565587629353017000142837728794403969152501587099209100291741401100215398715223934355679306078934766453609206971283557275991022770094897273363537302756906204741069429968614710946417691198085782412172407050244372392411107102775537245444444789303134292337676098578586400696380042030427823950304738042626181389529579823759272139563784309919915848965500113887588851842095578958641194217845743742933372786707001615482288781864421877714752912363173153846374834006062301813974897407158835649489478445081596179120683530897891830451126416629358970839716057639525139166442238901466385068738608586937266691413878255419616362638645074137389238465291846380054531379855960746690641575371939389026467744285854881355766214115779587566006015237132631005721062912668185107447799229236088319676235730668154559186930678253894517400190351189867328165359405688636971671930675238128126697679105761572157852888120150783382517945640374208896524902906216698726680816906387376452155735812028323922643156476826507094513489125123198719112993904169357376951315375737547619576195902408416462640749586409297675032637130391016989802675044346468492408907661031450569785448982761619226158514067207676069579459917671254910471480655924770441837510793852429537744214157615018459169543846684761530669603509371894725962929747147674674280357402188171441274933264818035904799035653916829390668772906922937049333385956441480445596380821754823852046822666307922878029106477693578972210263470394671378531117736643005117825190555246434978647924066672134052054393351147396396683478109248306457928499301400249798161304153521359810251250036355130525932147831016238646832418858976399179089020853387314881735289713865440765694760366167475399990265224657576397582366548772176941287140708300510748506998217705406976896616159341721324898529379592825490596173626218836471724052259925460034129959048570457626515181376223606480087259236443406777607447109632779100541790979004368457759149719327689993425025112104814400444482904539070084575102146234662430041977441482982102738222052877970233313074383952280233029229332272735658978744432738867267094928835425639146075669270677210730189922301102523957771537653988118948048888147485440219554089647762800481312092631195572638818105710827743553675010079308410008389095306953297932619494292314046692261797025808276200161538131300349253502147724554646213767511879173603956145046375653639538149413563637664865646049835007331025140987662681486678478002050834491177135661053338384963040661149281049339951771842686830451609306048619185253890751912299998849589711524939209846278001634337460252360044290076066919141842256711103716284333562364289811086710022818327167968610650426833529018310774796336399628270878845447231526226250211452164111157552496745179599881608690918747876365907243220783964596930448154921835797071154848712279469863867252858855424095095687775995080880703831110534579118857542988253930558278901130856431567918175405014051387659895321286619103409296326356692797172797646838428565227766088155178420999004209349080308543105167846968825096766396844956338181666396774343531052272111090586171261554774069802322031157137359963295620502097408029587734821413221887660561622890709920798194902972815871087968171056475496134886124514998759459676686480858450161440026010996568774040864287516277550115907147500252401063835653812426529815152146616505281856054006138735896591132213124597219020384175486086890009676268991002609482369344228393368424271038046753709526353268637376488617640536241785375793215422787193359548241404667975010730815750229067777383367291969996295636591063773195855949606047503622714553158096937092721779518613123527102613360661289759137332023876378531821017722761795960092420886148093748093800854649171679255411388843295702446067856916195208793198660391479582083165411086438336152744238943284972083033921507536677074957605933807155135999240524343486547336280702520085987015679584678034027866231248449865594058572003088303585508264493422371121495119261582018821272013156936908191908906046466760189006751919400714091577750547145137615696320037537098018830862475303303744255876783018021523813661180386617010380857322342475149622937260191673268281345791237888041431635035965183999203063851201700752144789904753031385833086845246870722602664042084211468055771435141057580772223682619999013443799289184716902156704157184656209132270095792610147121425786530307066231125538307527392179982469994642763483432709176021732546668204213990586968457078243621827737471510354217398802958895068921525012815020656013908464628986836231838293841597012129777977063297811918212028166802726602330081233956075868342912340160825877018400689797295724890677607701550449438587689441955290039773756844345831437285696232097422675086915172655788983922284842621212143637422785299421967958630931165488242698358103375104971970447004204773374455598288270880399006893432715260788017627223692361080044967775548392053648825876685314401531753875188053181352037416312114672388448779069643581254498068781563201934487056885864002759479208629173169473018247803727267060587607719847442250043936122742937076672450029293269043624523102350574785265700583555959002736285991035335970950568242051864603048718573485805290632466894126938752511986705893651056516050657575734731143153712492138089204887467901961144149942081892166412343691491713563362496946968467675093018087914782022513946776272382594288533857461554779152062668637449374086416427457618003542111281458301746289541566374805571336820223395027304865475486809256193818552516087960979269238901605337372518657939322781403920930230190607556449336610468734057576428916285118915095793907250034358513640168966493539731759717915074194008093200054983682062568159046150396362095931273737855929854222915274145600099873375763207692053660053363149903582383536718693189156803401011285707117486286533645333470063213219952547607113316647979282692718664443992881706539163959338243331464158939694877460825771475956360351631279566008170638130608675132016928419454148158421244409170959870639796832047557182460142646800785525901392844616111728096016116019337444691905742469854789689037577225690609607869594377149299586864484539079577361048291551691131682750087856013960869959228987885668323584777555444203850159610651858669270860067984062993942032638268886333783735053810740742734706974830190717035287785549213469877455524576715403382222695288896305708754871060826203980849623118325584645432351210494217614852016096776481519285947223019101003995340795751762723134389562586320931105642021620469937263064239872446223622374609711161504369896829323730183746270807408410438601218724049300764581224473316663724556606128721968275060765136600795743478733510801998875347983069492778332380784061689739170051657656863092936425560230611687503538417126525274656361319421370264940003129002992434793001198145497752471071082392318546761141057006442974747707769545847796457295322474052419487370515682758501275584172408101352599561349919336055353948481323288037115785678854619106993665608654815859533649515272601877811846411729376971098155903322185396176076106209226983917027402971634060585251362839553911369169595845274027716513484248845748373516295281147926212892085504410787047355121666213373566238442310529563942578613030750757812734878463569415958755923535532728802160455232867383941266633945402300005608340905898801214892415676628861542620196380560161634726685333203752436214856599848399403645229247613445816096944414413082018610244556125022709038189990601656223377053916728694144056017579943584850314916434076370375037764337322113829959173681308065549403954329761910924157535284122158285195336175126627345214712871487088409069393884603546657004972287452613266943403567170307870317079822406895848218405935953797441248017560563815470338989625114763406048074571651860365418306594481296912909915622292820660718920329679054038714556132755611733416336576114229572702019908042892464785225983469879058701946334905186990030403867619681535216016241277363771952602041761815108593735477498090813366215239690175734979526141078370032705497212231011353721898334637001669376128514815818166426408638114568256978159217231781189270855915914515711012860289366950193080844034511459693693939555416390989001736250522479350689924991189214054635673146204415697521808000572704405663737797614601331002619886037645467175234603007185361936968151526194220706315445499445978891421662566082934994767814630828265286837790464963825421855097766892357578938577645536045818777307023975542221646615705088908843441253027815242297161654268540108282832951427693179537002164945476338399362616017971493815907982939190673222032450579035374586544791849785095205686759747963486206999693674695073223376244173958495714326816153907407928651949454317160817410463961780277526463898763037000400980005672422349011940915128127307988873976905013150199063956820977228543272046696877803490139263825619372979326104610269594552730026022728761703200527839233580641746202320331443900920430163218815358068411798605894738042516945880740652941060785995518995871693802031925747516938737719547925907642521879716291737854440638312683245669001849182700011500124752562082092087843024185773174955998409806274938772423896032759711922075380394686513997678262253944337478984766401059363379998396463745181912584489522122812475854796945603803436256515702677450286395777813420052644349310514130392329297960791719996729657166207350543348662103741915482272022046813925739159632848938131155181872511477767600996073571919832230043402206363012605844880858715782053716581159891483814849228585873017158000233062182824462611200739285816209635320161165334360497543709599427908712467576104166958282459203931714951625414535232319436978728812318916534832844769891697906035458105113518399034096607539471016972025917252941303446188307383166346559280301683463451705709459579888413218470619275429138259803577558056947122498982811123196493504591720533534145270309387593451079786986725204794242501590244810114352085700095970093308481775910186884992965715768712545730900090435554891180468331846957188983497064205471401368245735444423483695992609534466390004298771165542037689975948097192499566022032760875288278503529440132996258306131161241490654279430572759533140692500892949645022403132974514526124906744755493567389807063003494138162109344759672454109979403658957382507388327787953371578567784296143235626422587271864737677153243949670285783409318339455377222480742238932465231939778163666294403603642749376270151356546100676398739139589960659232664735562119188011176000530732852107086057150109896811964454777684945673331333998233960670020024710244617941974661146829414106576799711987569252597277727780500816528471190151418440092011327707720688121716175575180185787083673758266817221304750704077586672987001477265581355929532344722948270329549754143507544286018220946652120494791390600066106581394587084091984259251336883334787230277422532570828424563235996849491562581915020539597404952628532211950242653302030500297696616770177807324833057156389058390605859076463229402025022957838239118798865902470176988942309034254725064511536572540063153035409220522476837036046774032000906669467791638866822378476430878666456210831301325872331197727288931381886341583220760825468187630865467248973795963132643822420510688228828335860334810333893497289336294155807866959103236491248766911167285161732277290696870233778509635840084226573526323417037787541789120277943547274988078283140766121481501209951575259427527862357876342354746466003063406921909228630417707038131747640889841464062313407865752493549533473953887725283992552041206193069336257306258740185390339868508645364691360742308872215788192139014849052465675087243177090985033849487411632787854793281394314395072010345347768637460445676022938556331554928205030417830627937510188520131933903604060755483467540570893370443376673873770167603651123524948241972306171423792883783430530049018872461979302774592001016300081973879564361267217916847413680826404075732604873939943419396712395332263673280273327158642716313065903424927281216737586163243455089698363075085594878356984039171833015091023876230582022056284576318081939142287538468491859187093729007100292912602843245378481064836825076259975135324766337690137165166180056040346571814152455443923145346212209352906539600767115383986384780637595720026904004367292460084210955365149939616512303230634190317375788867327382941895404798408046964287566295139129479265821003855935939133678511449494491934071925800883800755627729693588842849217552701216565687032525493640401115745520244841498770428342137370525047248229349539632253453910053897941060432847103026182099712152481262776052862347708048159355424741923890657623670682934473656519497987376621959691802454477717481936458168114036537273981543779069476101766438478154680485077620749391311846272365262521406844503795998509871009709279519708114484916446093808177557433324371170431865858579373706002284456710776026134429278959560771621541329375341725334918966515980928122166660834556847596627073422607062293344653544048351252273779620242691833864026095693998749760910920932450065032443436215727593603095460374433493700109185841492012086587414554930615787061071663361750651421115549994248989255138270686209438641852041563328869544276079036981690980344036322793465345793325818350350549433541076939237071684412265927458930543741654537218213674216680724024875471669197377391690666385063108842230370130930117991545559474684147843377445801663320320587503049672776246339235279999788867937863783473316626781847939601958461121515054884651444114526658540116789741271448189322765637813788608952540767396333376473586883110745632623691550194506797979708480521644445810329042291184644786055256523617469574353224695637604818164454033629052913767300368867064400356330410864716771247398937101276837904094060635346880307067841021243594012888612201996833834380239978882788470962258321438770878378819817377354404322650655402426645958449860638605683964752314070883647031291898279225282260118200607229295061772370930976123650885735459003588533355908311664346716878102484581879033059252165037414502842384004626585974891921498800331519128059865433115216251602318758140053284818986676931734607998648505403085938529851458913435330072287640028957241310715358662406365422147667176163055748679092872195638055170560604678259469962988223753120503372842266464799441392931074887101021448658176662098545639837295996018209932425643318819578571764912564832716382850525448037702490840115845436318495840606761753052474968921733890485684982899716270025776352378112344795099762669687150565442200562175749331043459011514581757194237652250280795352136478673231881252112477418987601530547588500840352117467909148637067954368975517016324614134584487521493324119779180466238575733200870829890863883950522161988775711437594431194752744489619972322029517474813826838436638824019209483835793307502126356705925352279101367542444726102068276620889647055740659624422891388089731888843605447402595649396256511448075802062242154216748063421665759186929982353700847456931438241365296555950963774607021804543556384738351326485156226754438139527637013472550944955184934330590061061212492218752408838132400353879082808952318014694927191523928502600844987232219359074870053058951513903567507910056363179125257229927225590807762976552398710319682503102950152804713184290666297315645093932070695945629428112192699247261344021093301436418332214155636930848229200276825641483856596680692527625791301023170757284948268035702214628611825941378707783569670816325503513320668761711058581616404532961495213339933077590446679127497788302855548603191747586464398332790719079783870870140755266929332910294889450148791372511147883364839754043514278546148590333212410192106866857757896988020371188620491702348212779585350022504642853122448102173238374033493297803313730411766463530670616692184540318885603217271025599402519070770561389690557971451807263794220629148816004777280019430187503560495872505652590041960386031131108576870086955661705160181609783776730625275803511790047061570502004596060921586721411221349296433383464757687005760196437764921763880903149176284895076588232554700751735838487924514400209601199789895531272207473034946175094600922796923389514314353982415729781267403585576685941739713990103790253818454597458479461561874609643095395545710689838151285019844000352210083127572584724508971349825782171301740447055232893618454695563001165684887318330975725789015343821792295961948085211031799146746678329012698935767960338607401161407872305473181639853613969333272197413271960853796849967480590141436529449639904540692837128118175584034031404248093539080584791255519128305607447797641955689214725442924712229465668661126337652481215347435546803942697013724862107932440688892525613941784730095324773869457763754589347750394045184021121306345064844815352368175925851949157141823898555305046444508547779056250522208802616813215285684929266405262839787022312618218470557012791837799748382647120384959722734354145216732267256655838045406808307352596108425832393177629078686820105726201140990785940227082064284575639366074647605338336450306119784515513004533590241409278439509132596599499940434771079797267516945616066803689815843529346631538990546927438788096867713290698357700810243284382407254440044750784275771326146273566478117137405340031123663410330508389541445136953527369858288808431283137015448663152991583018614187215269506649008259540183852808220208675711582477329136600581854185554235883385319458957138009779192951962865092580647412729613078555704770857605438211625579099234417827989301520429328810873684409345684327912943646219938988895205421467417079034485086777810015464872196445425722021005095783882944069736128114384806885723493671841011684895309148194926478644971223924453616047758267954689907067507114098085065669029490782943111786628298297577058727420702815853274473435526063119776066067811656491390885736560147960347332882349005742702729153150483289317393033170969781581440091453823871950947393037209281187912359200560612991923752874588678014988657889594864614870320542529321764960015265697247860507220045093755061799287820060568686283439604008605433645425706046998361696197042206059604882680621559906044754352210024041909624677821635547944995382228471173503160309056791173183334289350360180151039471006496185226841971006165102074752419493014168842173063326003555238630097052092304339104053181725827295071400952091204996548682566667223143519893745655187097988451018480446587645626889684420339120587378670193163080634016477246084729499922167056589601154787130793732527538137546631610283548064812141390394147013759360392105124629029710629183367498219280374271893693050327476387478553119688170659299207514778251466742142994624085829801724525572026432159345376110765387448020848183688190879930216279141434485584476606778077719660720307716908452584183009776831305053633628204985203700136786980213820885460532995423737662224579194913511291055010718779215619265508785537717761695397434313667271950084841625012010591349190793753928354730513478153262404171302620803791085438621548991085566480553545358232948365210469153207696138596303738587966857711471384647902807158301547122032324527663998520757304598617437908102286015943700069935279969273389027926676021211177436134725779996143174738805628177241476919500272009904561060401329276874243918749307319795409614224481719879173621418810708093269217789891366373085039870615140083928019270162281139839427061169196468112698560926773300053534063725716304806140008783044661485652023004937009644172164578415723079444954824537098913737524421310547398242336179273542355437734043747868609742915760206728858500364267914516042980647683143871525183434114822659804967668361582690965923710301538187836387775226446678409463138187770349055956597171605192268735183757015646554572523828568336202948283293090056279467889772382479482336593438580229732297812119301434071733091562879955667368928575401125332868635592854405490189458937063008777638775897953261025449864227450046950488900020536398714197632767735364197636794305682608849936617031096705473969889178997290425265483870482036344578629184452767595718556062476703231924372702560577254760278277280085845182800990062775228572388477129120710775747784932107001492014761734979690620900143626007466920518273175780737040445795267934246783377308096901378165534830279985962192521130495119293474780143001586363018154804229924531032573205837228861221801790206330384657273057486128542912402686514214330338753874434985020231490168322855681389314936927442502050295063946353511054402334549852682752091094860484640996235757681390364312621649965666825570132763320564632039324406716159484131391941791171160415739535605373575538090060747987113228216746883664026580401018933414979108484788207267296734034842654665718885421472084366386017790117404677594930186205058309691866495283008262210647194757569393813615144624586648173312231085227156833386566981553222966912655070597885743889927439897310624466441993679258306531099115144660695935709690829723637434354270324460250231755655927448743957326927391881240294038620648932284812706736782551351257499391840115027473931619150345879570669552889068599640586672471839049880175577359284312548770907830995441037760628158877109582055308162935313205117245678609147514138023978349404251924309231308521761684446515628360265537815409128820216441490774030716256444307570454507747703985253876971882578180286789903585959133681306982187017537312323788019615937036677483519550023852548971395551534053572200380344621012972686158195851550612158688564288909069571138838611858273329003140639587000809813487251614734976863598422574515269622000176929227602863445269940580044284452166625691531882570669026416841041260000308561605070358188792446434444552158174989421523202998314324741990645906172052211562917711733499121824710069737632878930925502375473385048034659255843522537420213092317132085601472839205014025388870318266898824307989286303818649113904457954086878095340922244278906687464340107444946048879109819131860996919233396797000986280257848524679509527693966079123520091949163438374419921825717473479337310367665764853575355661484216385893713900295286512217173504120045138589836403796845425333815138226209079377720164474335767823113204695902739403952473850216328713812686932619057053473967623306263056447136381966332869972071012327936158384726142545395172948648724154530600633069972604144844443256403458576697994128216223092608466355343689768435934764318984517091288896505736487426227178949439727057708536127226466831000922213124888121256636741128502564972463150998398219676056710611038596236974655307956178324482814198245812169212646678841995660123834619274744185862383348898032774258820862754121207611931593410075776286738063579917242850382450751603791035051811119456460886783062045831631377112802780588790241189829670172481419526814282726218879273424976173003554545710286125890929998452506706743427832238418114659249671074191701822277052509441918038676344735155327627407297121718595296265319754613266992777458271900809812605969391982966019722993628088962176138463260621632313929059692523662840462822018334202782413473702347514999885202994362049631098769237591548763399470798867868617638435363862027189498168951318190878507611529617850171622931512543876985285819235153817632179208613143069697146636439785350768162779502443293614423137475525224510908881933044103832756147208178900158053379049536664999238691683505178725697648155217719704660972956779090327290250850574591669071383182632662905133550131701301701710720933055981678071939043443900360116992962813625010963609278973499184764316898785716881085370751097793054140017330889130097553627683140615670119703522023642320197082988519510664711743298419462857408083359363826881387604469502152627706739369604309044522192368211615159777466144711659153467959853383706660588953591318504187090405508053741768411899298277104055457849900467170246849116125333193217460996341261751586124696256988477432019453530968235637150850133532034735626577915919208831886942085188087375043511086700768592150303546769679944271949459079768427320989786057194392261934025906824085037935466202543673754915004709514789421527985666696644463109777457154435570765392625778509507125118805234657652941063637497526502771224647775015308683209176368886576879530185904068494038041070995095941598993993311852523470014687435344896288234864529659894842596454360545064986500140987180076764205523668234760124307512102898687035446101875975853089376927897350184513005068302544777495597964584443653600227132119179380096777408255698938145193353779453827429718461241153077912502605288893278064501725941395971932597419703942312159285458250098802468911307463616679434513032203928149628761159962572533783017800013376134188163523984054741435545853742685403519286370453644396183300370990466571558554643015657207060403772587217315596654229408706677597606330285448699705159965158159501368897558387440218568740275029541142621828666780418372654255977663743149049554395037399291711499894943578697195706389261676076581778515064382533047725903006107171693629863273327522158051902197320902710099870426619200129957870206045681443718055996395587286959454519946201975286790876465815548349811807163154526842541763118160697749534933613618198499045963401937094459971021878061382497943034234148198190615577111396758753880244744821244866659853201497525629950374418099227124184636028880761554922933955792520171542237393867182538519539572520936941323586683697883477740615736022962934655439284082988444776009742194146733641970222891822159331939187995714939203559520360489412876219723696535507865255705783835175169529446734279479766644539884282244623754319443605709215827692773057332341594802420090804894523727013308930831254412678004534180869830582549071671291840793136575426416239287865967739666844705395120023170181829188884982281301952168739666780827245944146703786342253306567387034617191568675096230342391579661779453004546779989986367407493567463513882933383921744734666658421840869102036206620263187119840312675188104819997247686689811222070584186801966979937188952276842314392596227676257283982284951310141502024385136681422542425866588051928311906615014792705135614958571111836398567215527578415930467689403860185860954605690456982064243630651441659472308301484895845382458743243166692058196858655469060746576476457767795955596242149107637942659307902890384787626408397099303999538820442846838686533557041305557132743039917048061138273484042703105050207444820604660630777008564063669671080382568861803171032943820221366664651567032458074929797928913294115375351386786019052022528306700632669000605068912529708484355566037036599519610654068437167737790647607089150846821833660881988092848737968035211817723992820579395217237051023207923874237959939678215586427623611228001834559616329024790597172567496649142224332217894672444794996110117334437916203618602692505852959252687274224855377618398223187556257311433165423529228898193186376218917387407242040855129798980468649777492309167691276535594992854682079967018029386728827792643155719380087975133237321686100037500862941795500346247813339924945452069430157214417143428794317845613796849834880001005315336820282339497089139304416315218259451597051696098268473507690903080991313984448881902192922884153723615493020208014393034419061497898832848377802342002699139688257542655152807294160080624539014239530472603307210309022509927598892834976587534486801670321620544201611182849701651617100349089516624272155573690645329643516061594917861528476441562326634308397520406106708952465279443157126979282603285169623934301278931403287729503720107432808644960113743442792955341321157450336969573208088695082961637078978909150015823890629531153800345013860935468281081244142616892588047973900836304207582767701600427760711665126238908783222947428848391883895198867134128817540927295175390339549123116833955215916162891348157918798853351383330332168972078451065109518536576695910000792902586056492144676821927376397745288323916031676143559959359992263268523613972423808321186289053772631858855288086085272907746519125863741731737151973980856454982230934125877023534533643908255749860906756331131625704849749884899756602183711368412724153257758184898020044175705333755400174865417584269182390450993482835669399245467891865999042282873623106418118559692458080353905161444825484564279968516693879847827778044765877168510685704359617402229824739890926923601711234326824720784678800272474081786599761474448074099553432608911719860714377810480490019178083072573664539160787590482047186250222685142144927712925243434771503275955907516867181324627329099529450851538602698135207102995200553169623307731784845216781007007110044126996911715627842833039585931496822565525252225592787448600270219325144069340809869551105009976404949015635258212788158825157897268170863425645681037485875291968910476302968347559194719493042512706171999298469526023992488352520851935168728795391125853342360177959258847042754341341349982860051473764458536371256384607190400069352981798544904634662238732892484502458597995925151265082367939889411444154967950734007936691108279939750780689777861102498282480629330541745835400730141467988031006632783217677213555839853993987785925998887777995844100608059246631274039478318895708226511518046915486201938215957984359553484582949206296627661410103070030968782875003606625098216745507831681428571009734720255220907714668616822505658916434765794148704356369490336526799538885588754157863427424056022135930599689549751564235071310641008621698132095429606706051725111282026713719110847714728672239113664588917719741461500123956864161491282103822317678984121913846117229385872849884504976395559330827837091138942179421819982908972141969579325484202693442591256108935349424557405883270205100001050756129184309585259139146816873159552578257539438135369064158878056577887006049759449171857949497356805675112508317118393800655066290959663547299045162067400242181931888390767770981467985570633981143305240904284129879039554332570149633916044681388670610188011395569710762643019438455856002452073526298497399102253726418848908074404003582468649466006037871744420230925505345312293177418936252315085152193132042915084467433389626346274317954282255901574403636280518804223009091278993202038096509896251670189659726287537771190559676179101065653034061075144093090397836465913044943929359283508516464754600512093706246213761557870941359384388699554523683708865757822725185643568236138902925743626325480683243528439097506923617126240993414648470498198435033666791493496204960085536170286804644282033390715671792925997112359387589542108292535346401963115287503032099661156627104905886118937951318475032563502305281395422626496898086174693747945347359444207379426611933488713429997792068932362969232366700194732047847118700576207063018338943586575715122499075859118868942724233433114736232875484892475317811497108915456604380204458425728160649490735491455706985585017786928510509699405315113141241637492097687380683569164158532440070009069185839211062033913306115690967715804167864536571676416485401387709808126160948071351815980248740068701481684201870068886162032205401469456572715401113467763055726299881043604996267845486498846557206758462471079319251208717051218088828459838930438245959404626166626856666001532203833938357558906413951288397047625663258181932239141823116769388806777866433061130760849858418461662750240527553835667890607178285996508036983980978737857012947480460303790912066433207121010052289716989882505282477735600612421664389086969985930193038427802145387300288122855645115130320902165201833623754410439528237742937856860690050937099577893909183003176923247859084342858927822566016449279161618343508954829197951561792771852428925204858239338316571559109796659541244164546667074138470367774468881894873233401907051004984592934200498223180842807968966961891043733295983043395919557251677099120058608248329146551603588425709901435031880942180099242469466890636878576052349669111200952422164285107169180354405206938392265132934700765407246324089040108765957606496989488799187954643792162199949239172495273430548074296656104191756479972582478759138234450378295673630666627571110900345120360733304482850053735620300634425865034184981507277794677683109439991754221412619714054390473988283803768515758797655766413646960357339217164770177645126154466476753388252043515948783031359014819715726839964390140487752387147495763618597963492758727228212321706930134400258363527819775630861732995842616094659202556457805210101695716620333710032676756692586201970000923783957822238153887834816773144633515857765118871359922135438857269694317452366965795692151731727578965120291707045294129492171568172156759108372326147824454145267017590082263597423278950682865086063869073041470789282369107560476445754358836945922138001578904420604396033849502760446265872241738329843377220093739021881072366187883859469580945038754278847176658338306525926168505092602835139137340976160359756284578759459119767576106969301346088338828609269287324032861059317455891083376378532594223509640688687239033462590440339938892017441619227839184042030414428264869818007405566359586162255516220436103047351932233733117596503467042836933628878134898666941343807607770989754378291897774095625733935300425739113245960000366423412816726982576362322373241226114939706069891748325607647275479232673567242037901642571387789637781187661613548995932114499352630158277895968129874758648894741792073868825321441407376570687258535208169653915723205164314007772220305012169802906740214798959158177747880689616273789186650051906265868831602443088468538830363390763403934381223829367946692203248159699684200324611316490869965297643208364589601506078995198734099951636677254075026631883409688820399140808597606161237103304946766168401894930407557226025231801623884158036055970900023380894810544661300653282786087317807884855107371759153719744294087411644265944063601552374603471340937595819883915164459541795568150867343625562897845602399658610037963413215680608838846763015295112048996670546897997346513327488750986828909368619338183005049372217397913131126150125021041939692971057990710187631514169514030406218088879788081781108402798637175696098619503990039545117803275067513352707753930705335466626366507067317108253755249486676453448476151222510753526082761709738219348067366981932430142856623065167419196505053490214688896668735609300113081905631559714618452239632731732810531058442104436613241431566512932217567924847084409285613174134770109421734786618345939256431718248534837798425560699639828109878997137891979967724216650200240620202984520248998800967737400211029649295863608458138635735452331394650210941481551437846952049364622038744034202635218646175971529062262876159738555377278864336626443798348258187188677505488608928355955800649957130344752592199433963282584795832866262942325900051223037819068974565714484313658422328288378637275200283750150245535065079488433309062071307199110810735518338700367375711161655957109478586443198741089966848451708859365579350369690211047822526288462253324857257387204315771130488334362288169977872543563049004056987439036063441693507561142590600687152609711810520787168915546281728873625634376689325021981675868018225884529928753274836779727280764348066769243064461000460274544462836604217035199793825678508507341478104611944339227406410968823229778495098860122618122517668508192215081905205658324623490853257448909472179607838383642048878108003169824223729094187533736502567991814506118741236073409897424318890315642916966809666120558478230016060006912035372721995815666015179645149708906214092576861917003927602967026719548926728114037183744604621623027812358351497657131188046446784168732046680806205293882010447421519987016514473301389279103194913343112456522619245280008474788633260462975343747333111097782715763435141585104389025778493560642753127586212697458213962387350653976580323508366539109939952474428788669791861225970771235275193921603683276769785171957217930360751446363838551745806578162851757330948419184277733571983264817890241103352925648333008080647930742843380601373628547005854692867762165990275341699431339476472479180197382337160065012219475836695985496679231787454266334635391932502748490057951912387408013551714454530068802302512586694032286937729961838255966951255684121651140440649105703335436831749184175003240655597689292444950334224441990496453309985893769762674282672351034163602291859965139364877457374826399083435620734762629441543340943272697654736617663777992085340059108030176635193425164687156875914680983983314039186916195633171805202049109296441451843698078732266975484721901356662684569628737344547566563652511968715003909543955875617866109869788693209213636771829979371752003098443803276968544932354303505253147971875371902741035143560567095757660562280094854764209056985913981970978822017977617314919228403522661055477747281584451572480656654991810279814855524883848669238288800793759966677607773526474564637210369717041762048098238074734417244432196634567531333797569986164506900510224367047074741292983534880985183068988879954497303996401093602376393964920388330460303987316657883939486936738782846930484632779782817885710375945435292005493660681543393204131644333361752421124435396184087880996193399658353569991649152730692796390266771951308559071012054841510371359282857476430622154760436682988634002184706678323116490957962308960223195724193344094538080681877883853039031129777714026945068863748695367047784874675780477625850543479527400880913047552339704142461384734610340469378342237869005690232236195428118869843763238001719182514981488415136985143576565738200843064218895045784116089747624811993031508004905474321963721549006906336274744511508438785999800914623824684157210158500434534087126282303854852337804937843441679099942632650533704481600469857648769965170095463891506632584132352320208349857602427366847900041020199454852475717201824305766065155852156507628781631111777961465567211313263811185451833003021015948949358875249831593158552693851831795552598017378443798846762551197712777380713782757755147012959964928070145448841955149090310509473263411252975130616887687425931485857177737276700595258898188166580438846417493921525162464083771858536305605431714541882452055832280754285367335942393317610563989788712306695224566185627639513479572225117592991386724415973279897539135401400549708595062253484093060773842659521020338005985317484233097733032025517479090789804013527469312149339424910854617472439885560841618474277124531866103045814699451481966779720303857393727577165112042816801997390339572200826801589246668893437810990929095742822335721335672603453604689632129189840118239769061228637582695545072250942601131157733929541350871226013678318211978089527093447602587158678711980210646124580580735500222561999327368156808557371091996453788899756255057472292766563115514363946371894796432582284776634559873335362134575313408479647694535775509186948716202802694043264563781351027829198339224578055646212542308958022300025361342545800687297391104458708127705074872208613922277642367030727050897418700249060426940804192971308980074319962216564739651861609406990800268108946860269004051497714058006926118379819861125740421230074694212839962148056560967406064095492367203021540233284578793234829633734620977398136980473801650908952318758817644126482719157489530174008717038960969741401459572463144129464068367872441803112804802704310790505521991021890948447269679050695476744057819003940633939756125626639978032194891811175495532418321876196198817014670835340104037941729661624747067337888023709628284275979567413247538812852385943326549238269944537018220889031835733391746889228070232969925369312753329105497986574096820173422466915788645236429821912470289954954604838429703529282967658573469886115671144813096509834225790769033111925263878697931165834065075340137213175347258393860588295797711526190431841514653836980405988320976399813637153574014552308523624054293514949526792285346225826864382594531688806927186070430510603308301588022621463230089421030088274787653989073008081154153542192456263513535728811305705047858293419809631736955669641213995557632349733123502991318739177647097767556718821974109976286812890950240872498489081344040033579001136489857903807323970876348558636837923688678966171153005093507990751444700746371905614696054187139762425650233799442800250544867191542849539452519382720526304180495384538174938814464271638339895897156103789792812347713371055293734241453470203098605983288831622821022978155318785685772647196974614730596641586661716410872792464610457986234538049120833178457934547594250641438624819055174195164824518976013438018078651481474897387130112951048522565639425985563696062969369398515933836315548809953368782361791370414096661622464002011753908245965018714096697599753404835229354155835700698123894409783240678063133228143823625553297923066814385578438881074207994383174804196255491827190164823129009448541523140574622866609074227987010169482696806799969714255485899595204409548030826467551829481505028459898262169761926294226898233553895527753523411878514645543179936550116788968166127866555197074967541716256149382468822529109412107614580269323827958997793443579692153981592784273956981526487639329407298971924912702376360397769088233481613661772871319039743372394691770064667829766150900555162009772843705321099648529576516870332063093213990441101957232982076063444556119468170797847547198479133699658416956566684752698940936953553710073586054615027310047410789049613900761376348364214811607362048068211200157941829832122914814133618536406091699963566231627393220425599927266503223927829558366874421083237743191402723389700102219538451203105534171985389020620544734892410022479857733671043191414219326454345778831001500447966175367383093523990434432293970850017678093333876823666148532092139474397881143154611772547655239374063706330859557158939409195957485275410288854978391870478614298898228933628802119599026138547062663390183615532608961627981235782671320665679030813581768839108911766582047251843104896850583695742247339095936049026876822897292839948239560154396446924533134778767338921216431059781829529401489253602273993556890313566816097253456629262205865593053311531486162169727690587233261991622791170721813697462269782235005955402825449085020189462619645534762989059706632107897867613194449753312175629288017336909807007057287196233661255783174371390110393985383320326559638757734750925476501036486247858619798443963262030293236591534183265322107549763753581492004711116342891463482518666191493356048413405163365701646088742343155182785795029803345097816740475686710970368516364520966743514986713353655310329634601805123610132278896762800898389474328821205383704008999697978026738378969605367041692660483023859471750092156060647005909480125602001808993530734533998876733396137831137809399772448258264290220485072085758584950304669349864071303108510992412166672956887499523086708115242782323845396992446135734227911969886651126820060087635659829824335107372474111927725118510372480658776829906867095856166526908393063948202613841254731635781527891732275916424880217372935866331037547616619404120641075498363009862718039366606293861394640621054166270650287328261441253710536048093721040777110420998109228692992109421674411209100266164541515878671643754518103145748394167540184115564090402003445194911889362867700577485250857559858889338686366005665759250212327232049787209975362047584257511845176698907353575811146038303693087476836784841003350305729316245662781244986206396703736278256614064068891638248940825220770477016738082737269971950885018861953979227822316222342837688626892285068112690840245426729409148579519923202917981457704537158020556706131534671031022943095990165279107179839995550368410956083694455957042383440432876940638495070032527211683104490365053059905355765122991290361627618997340158800650926053602277899408256272770565962548312778059598607328464297944392030824037043329880860643757081097605445996734470427259020206880163281318136464484528166370885653184058013342697070420630021258485036610804055580176175058992090641045032776705321948225870259056186235170002660839795490359424800221588340997413801188809947389929115980942301788994952100586552234853565808172961294959499635848505988983484054093039579765807962281378666902367985906326986724249659307041820497912347579805885311046850874030421789173645836178290221157023696109427848099100502701082374417310472823326584455477868635566074821193508603791031030143192690069977617506195630665960986540902062103964976389762658792135217422390293297375658812456418504118917471033733909396053897770109237520196975167626609416696077851888428074888785969199776822982046175246242847230865085710867114827688328013991635825756882161633167840972205384450356462961095518766443059996661505103473511475237994355030125904448616860928892652479548812994600243916430478692859804312739640422703605932924204984172521044228801644525486210757741784265833742377961208556260493595448881143432445664351015932697097701397415516923106253981308997240009580572318712165534520654190591105432954552624684508474784273754924519775059358580030226672935277878926489191108344689639252617901783397479401730611738262394650884202518959958975791102012095511275849922999381969118042669811060710172253692418374057163498834751275336109180655110133285086874074576163104848968610165975313781100187882284370260396298619922800136896296444256129915539710817881708887258703620229331106659524038660302086728219025664279899436261558743763365668530400862797525654886658477370958189798290436561538607678971402393040881597845040382202331178118955228627916146507883306998691589555579738393137173378029016374468879240564986922706387586762584919330609363160908444588942457551578554177023810741085029035167712270255349768484956706637348904252267731526834099858325431067268569543910972488793866105069261488241091837158928720910759111758566954863341111061834222699253834334536528404928514117239660875732715967061006550698733614597576770819177812746741137896110032830332185177296444801959935763969904613157008358828551772451122618335290344406390849215643716939742033350923449802185051190911237757430718343427382340888692653841755205589843480500673198699596965575638604421361146650181896592764788262842156776750050529542008518501525763948295805373295740261487650755716751022987006357827037694022449474350118054798328433351257539239295363063603624260531628458766497236401783303842648154981602999070788862631089401088913022969482366443810668116931421209657089953686855109610239577359465165363553379695252399500318002386651967447995427263538407052330171922980775977257983169411387818767002710513930503177460779106037639674267557873680031481676416249775848395241180222364626482263004788572533930615847246484870057300117947727263949976567810672934978100551829553252277079391510071822308716759191135855550614579224193899174706863193565692922058800076903378793125433116588535763602516714167147330792377330514524637122405153989111529227416834278492882062384937383687348646986757079540901168349869291204308241421044369513785105930519152037786424242444369458723552656952438174967962705644363133022430231317450666534571373434453914134578633191246217729823207769859838895210855330980920312910518475708211350363858023356361432781794095686122640466499139467507568777816057370571594591740767497606098333423462863608891391850728814180628003500169425312875676729994534530769455879934069402577605761527100938605971672405699801684292026512673129471153665160669846122038276404156375567437584122489933660264195894470308689699052739202890799296919578058980037296429132369362829843899907486551164551992893660114008522633040142193147764660258315578740372148938353066616258986696800487818976915722988724649265069673432750035063887407187147550022468596974472474864057425915513157762347590648562034116597485436230216994960609186477049228496191572859651906535907152505122388522877205582989803346986168956068271207682866724071810049105695486687074324508761794884915317713680190138978678814342631138662262213424360178025153771127240285598382175811884672339385203798596446200485847889943194325808841719701432277358993955094738903263651522548332357250087095600779783755381206071889858867621443485886200689907961869715258255304898907845769249312871521130212804166821577423934043421583618353756406172872000413654041289594245443361214831886648988989821805571817989466757084968231311066112310098046254857424708987540030342012110095769571143644569347732103459979629497741485355821425210621698714169102404107522449989963409928412309206977286886101856785665536585990874774649207457799431997391537235352261123735570971385825420297211686400425204046745716531021323019986818743441250659800806053458079135461659664390964077923635712033497864393254587208437223492312062074764740395867757561716053910570747670922653295381843026312982470286545039874436834608724559403479800698147480727334119870422366141572617076157274887007926464283366911599988523526041708157391819092449386104194808223045832450945721869758990406020992824988728279250928970810179894241799122613363635753769578215386298679590026379301161239770535954910307984296008446132501725941595394500773794454028936120148177697475814352964199247839778618538284915189270799340369740688637193813290892776051523421639168417467346384621538823666010781643415768143789199770722720226846503685663062657039788662350944226666423997758403110968602303339330322777230776746722617826118518598074630142422114351651997122393832582278308374794817588710509160158046967350409189378964596722121349109931359266993251373659412096296110239000601682522951552446203658284747577989796044057401673599491747401949980880579219754297967261028031854841425192912940668857482730137386197270843614550283479156530421715336120153216836395533525368916170422720832394012505378855303773799485934384204499786450760081441462078012391953299156764966658075901334287929658922790116921766617528492013469015744781001152098364397010553281289691233655919891227405440942878692932944826108760100855422523811300078232395640246152410079704661719868501158504134106120930891522630606317492345855765096527665867908364780435581831197946729027936693025737516324777908103795557333548470634080402046029461964636848336161763077083243427752481743143518306638858981920507512322349228532634325333464820804083776683300163555865401628727457641878952283158186190035922357707599934694143889539855060972216769199517580039552066549652824621911362492133326503661636649661821590066283150761988516722223643267115988383529548837209981192021749370074438305369616055659819543022273477848994115012600308915737832629322317739816458812578060937238336891230119166288460563162544484123904214776455549325837508361255794858999297929968147101918279554995254530377201739304255283545500580725472070113541728548342933188870175111839084872555501334733618616349821774491357049443610832969703583853860484770499526972203892949729038223332483442734767620534327415447985093056154780639241596091021430860358774715713903237797412037548390743766265522624215965574209288858272142412408306292614654555435006353672107467729079147448459095744842575444177612312486293213082819282051090096649081800806870054195931853466129467050759228020346653099201091669352747523240511620597933085778597387945916503087503654746938304837539098932396098971037025772823236868778793482328922319694095108704824669600618606825236282164631450345148498881743014056320366310825071054780019802015649701848134247077612969248515266120318865221245297274412737798569121647946969293335550912309429520846006178564741917079527443740774985279890463402184376370118160085853478248165648985609610197495985852701373684812746791570288108334762769433423794721590716159986710038858109009800450416501471923906926560604317039810079439423285316086945419577974860539510885456159307770167859079184616529932037188516667365796262831635476016750956638906726811558198914427628487984901596716931294673929093773177217180879934600099592733757838750456870691686164002023210833147513922315494915240690238630756519480826211823976481280707150297728130982856992862355104241728650572911047063023523112773042570550639402694565131487559690463480731938572253725433174339780638298218834560399782479058396987876139940961670290846266813756701700746983204787122991855279273306020468532002202157758766208066106141787522750148460881647569099955561692604264780355794343421011242507424535411475352170626897280376677513665248805015115462337290695690709962955418635815923935074175364565418796181869181258365455857729276562318211903749285819381334750325077017579827563719531604428958791063438158128763951368237008671210567459248896939366788396555051313628208946927300568973394830297749915139774544458500512275664123713108456806031151360170675742617714891965676689702350584410938590013506992269128201413562616940241121915078117250534894244577612883881171681135272156028360128041881732832403403303717883394907130167444115492455763177918198024987255016495005950064248945261128410861050682853715119551522208347768425244952832570582518514167743254336030792740374087136850771003227250750718093530510790834910236845263098286435686752078706904701299670535223958094167591674431854596044472280713726581964296014508472920488787481276179970411849889383312422304009003162727392863531314730999395420146536562534501629015212733895071132413352759979761050756825111604740206652006893408053362964579400146324213869434025260508485749270057245924241548896375261795448973840485280602979618538774399118817677527246493470214986882036696075868979209792328133805241631242066161671250766860718308521118234256234398828709744422706700825017781245085856127308677865230357190195048142345682310345784714407456093673857206862692995128339497585349462110246967875773411511455365224638496778541065122337379360856188846832709835788493379152654125734636281738093184860350650966290564201558519141488171865984207376015620631152091887179311130087499338650650572422819494456487512842007654973092057496664555357135736671061722837445263094735689573376838915322751670917157115536290031561255537899104175340004018219970769347413367222915710457361453301148471313392009613206976294766198470659182135318480221591810716756229691431527063042554966427954128908883501855540346973643924658035212916656458468994940414493577355558507964092027836690841839234120821470659975742528996083443828826833988758609323619281390314800662253873616964635104406544439183422259691910777535909755202635310842373450068122121238411534566261531755399970150677774485905616637831509038241463043096750166408971110612529170661096168535167484276197924039210390517224992162669381503664831307169616122366507866679912727803018683230822004250514040509321391890208783208135600202358322040798692242998859493303541991402751833769286193473135700160400733305903922258283046394098565014019284292167859396427351028969516268546308291359109021986281456102085786028260599161653103651806267527645015582005254149869460834906020778275677084469277428072691762727037347069595100222911387565079688320939067756704788983337294796293066200764185257278302193852421063661538202523424694348608889112626255914587439542922498803286169481267225434967574543659217726912426304049374369652650527084650325775595079334216790326715316626202051429211339903328803746977912569173703173535333289678824350704508630921522977777852567519963489058070799591273435566143316486998081453532422473868261149858694036821442312547215542222473314533057441031956069610731463284912604810460813107015289432968297089268611462283794011703650087765539262754614895764201605861348216183485672445818072559336877180496487702484358605103401898605123872049718613505893734207170623886162390537318600091648705404440448657721354957011332770283899258531781512623379802459622427735966983281943613496957304734577857077702065573493849022832202097904494245493041947203664483360819848925415212540409258955236980721899117723269040958713116129961771432247039366018976521610718274963704749230997704530690473586319459132869728973063998633624146740159857305061920651964562330174331650780054441396461814557899693285923697303857386587622960007151471267720235677169613283099786016307208122377925034055541135101153827371514170013484986653958462157946322998310057181804071585261725401788775501927675868821365200685248881350980673090587591992860462671625848169516695498265999491073065950186815128989920130926435615007809349218959148684334031614464350755414712143469380314518428280121904483921757901358486576719560505073274140706962294599987797165242574371679346451853972432453811108829802018573894995107295646261289925642298651543466052958445584829678394590850772147724671382432449636781493182585629783172439301591671894840687890313865936942963566804659534086411747915672415346614524351801429358016640978761223342396606422961927360932502869953933494420006086256647195322530506207628188472356533287006283260915788002397512679370885066969503697204613048014609439299039673875077407415445510905804639505925770050238096935668778661574197047608636684505113903915718312931512506747151084190336460232318729811734074308035748045181952765972885978910316119246236786262039274040490929252643473797532226298444388512382509076541111201900713531577646493196657267390877170475003559459985861415320073663040712103784632675193196196757345758471193932441796726315562692277205515715037301545047539721877025468361214719178683642075755667963793020981835156160558784565535573486532577233144506351608890873589930098222408810942572371049739470300523464596439630815403152117773183084221015822456321554626701240813412980192977638154113849196057318359756131961895275316309485806193360342763702647435546363252061618849545464770446160133089062592207305135097797059654915566336207953505566059467116304627935833632581252691118680575438997556184488624348375590973412880227001189830618724564835853435517527297009028551564673211768830208210539773138430237833347873793518809698195345903531005679105287966416400951688692191674853688407447878544115285219400049962670336374188782637444063783692135135257916796276731333562020154778042404112911423505997613100158711571480251844057824165506887468512908175166263179379346043530134534850104304830636984912035866742320454969866348812975175047889769845896807472693904227374187676128553459911749794052027092183773117548992554648572660668465317893341334506370281355427621373238704148357284096975713387549062301667438730001156684652021982971997601824600926203037429656400670563224477331358505405827148671909543368870240910933017219037962279043913337409885060016439811069500335751697617094189832862235151500132633352300704856667783547657121443157736014870794645233551524704696458942820738778419885832131871804889214016221877489229496181134219096063015471955174586739930199853016300226052800064071535175015267873310742249479825098537558769420290020698143002572474377809539993614402203112640291206461655580702036935564735188839479440373164621205026521382468316016166436326487628047552666024176299130838178873512262299685734519963976723615971081634109383895804303418442868926641012973272967801830828886960833629374367371015310427931864382029971372256251344235340366769627018015023502397545199925522008115893206168161929268498570496057221885440641672684419972791114149354744647543398219736966117856501931133507497010955420313325966581435876248409903875320937023788825910047991712536471696325227053686413173071744812976491764012693438724940714002517338739511444399805587346945714901508787286709905343420574164054777994008778112863187558795701888036822975050326101374835655056298440439935067488306725729736498583595792360815951946153451507627616950804311388970270223808097879633033635725409189535122304903621599120412692800574692439006276234929493644379161513092579858941008411110736936736577633463232814835045714286149296805752372797849040973726358687030241497145511983377110194378389677082228816083471360172799582233227617335660878847354516492206041386732011440332842936558081402735571628213396287744253402418790844609088906136733620709609437519140064327462191847982687608363195043781569411780472291131331151706120751295433814742048440934816022394520713215848597099844769962052372221824968442109120195028263830669698492480817034107750079906919369214765230586101117365994180271207196020634408951103140151700198257982202453738534727574048428112559558140128234602444006230418818671485448414105420793746559229929482256943266160869330687902536135758466935362240212039053872784429495157419426504291765096693082180507758494504988892027881570229021831555273332507770759382854545624182017579887129767307357989955444535926476469423456349212604418194422431746926959490707554915545668982366569850272163642462687590536010669712673874782517991396002307521572949330569409673904541710341161002436514593312746948620517918901044408375741792769778497412309898025665213527591288922707996368814223459819308672560760407011076983099795967330763746673327926519428952072356144627670219904855635567260717976661187197253974949291532015948984213176299707327146277764309707926896391715461260286614931330122660822049075816402082612677346363378021132304147337641014305842418448487479707645036769750710428737978960639430385320735592678018367686381121924221457011878696527127622100917572045494345392170952815017520343535498992593737824291367820824002063448241885575527992466250482416063553162320617172529907439099958576874519731342060637275202573079822120535033143929149757309522317089054376056644053781362589577669353996354104481232546252396466985632102296344623517708288508544387494437733795233666299067466060470675755265558642133345705754458259014309273158755863098458380828724432887262420191364607872974923230337141600220779305278013092115899285726844895572126732340598011877554713523459255141320233118729347727760982213648377229141113340433279669154564535529156001713836206485703926166264425117038061764601064031248462464961925674183108382126445004169481083001133537534567323962922455489170031712186463003413910609913015548360839198223982884771932447060038483877716078891903829028182259758437906187495434126709032468893410401065371540737199512312311513806634835983125136713545333970356059207846029342764049709860196359666033086162814831213927893105749654177232715927971924325883346058445230854061694981048593465583031532373659757172054759129375247078135463052558838916935464532221937957412627388016156719039075516818828986220734406049806498858874680759594294970655062858544130925655215272683550071515594317372352876940873018406923725297130221392127156332299661618380984889987365318025548870452975274043096384598783596908489010136228796355067545999248148084621897488438638663527025548153705522370828966249440281360742391432450405574981837619931697787952573446798994490374589764983186519901817437677085351260346118458537090796103058619612097179587288458590076594922604301813094388235220594800328682639860490202218238334563071134440996569790559324307686356068830452689479612201515691218072276225273021995751437766182452226602592197260459457622325120812212502080143250217630316668396029533800967702075826035833664675058134964216231669435579719131322569501870874802210195797041223228085446300289414200304827448977279037463226174495416852751108803130715132176182098379961291206786158200238444024314651540600334523112811260861738188825762399403785915673003043640484670207167662792511216099730446114690956129843477901492397268888006262009293706855447376495599369078487939491723229116134423273195377201114151404688598145878320630198853746776357225692413629447744584345194241807974338885884200914298948133459284131989776672958839022045707181354248433895997405163158317408288209660059598423887128490481458559781698576733424675279927534227249903937000415611968347060880742196680599610291298877802618391719820421449718838854141388628557219752825333587741784333914411402368911201652542616653018464340262305793598001739882349834335907359585942876731926979793886416303562494106132712931446777156072531469400257140646192227391627464532295963527959654098907229029015207320280493461185035817444699468695903906301263426674247197913934220840316580760867217429390947029027435672325617179735192921897740830898568640700751670347613900459259001846334070178850228755242884466810645054903706607945108132893909572051200154707791148350514729768292666803969632395346408060008172476676917266407525550923466145837268016398800783762560849726218686393304373877963317856127941811575463867820893752980293388385097534404504570415022475228786923285936820911392929733677934874118089740603202883046382871779003086320107348738849173172569494189812547970781442062019956294346209462708713139467099875832424166754377954980381616591216111417733577079436348306070790210629332068527528733407035698982343696214353092118305667559099414045270276046678898459915322735717507946043536656787480694995984242107326772356356136889077788940538269024991592495316976780556837978544420257877399915535275517295748264082953781128787934867088921719827928524824303041393628210148888888955098604222157327532969281790113065020302113592388216234078299923703766627986773500850343217384855608202215362725639139008269304608201372341652625650107521700257191376310401206221502332122972574038023050548105774742337324744756115051519305641680833143360158479404521429405770055703261507497005804018179398539795233315672408569860109069516716331867301474496890730350775047028521111054764511185501226474032754733199002869352702925380216318699493054690545793971927692540821503819778254190991371537158778831622109904236236185120769730755576967838636041861582829431467508536979993311229775983983663042781999010122076832031314662095752869562547424352386402073785023344464638903328775111827222350698189508209195086922931875007724985968718761777764573953378061851436289895382149151230544789715533796284151513682684998568267885501546902956848313005230705943492161255981081732979750212242427634045095696418852847913915450546715801537426265818034006314543059330053012849526145455992387539281025011888408828389585361424360469608023952477558553680213742829407110296736987823616310306863962663883928103813002381829636556506959896121584666303603116950172687448097347371093707109903742757198561109775777491538054863142653649540836139774294511184311652712308490013993340749069441768660563210497144057094352037564819018768880414101537732863337059650430873399217682626023077957783418199665914118856589245863661375412459823586567841466566906950124576863870127233363519604094225111659874958751019422839966278292362786064550629997006150185901128338732689702837602409800328641649020118508941410599497884795345279867361298465044842673457860071991997632224381092517310671869278983875166986935143489926883807751879243949118944474486994120639171400825332033257392174874315152140008567043511726775064855625764591987002964844033911128977587037142937727014293550990739095059484571207718785743659737528603155623230210327827337309972631995007949043209172517311139684977357681927973531117103992443143322830529621149856277118257649783671074329934094442163901924103648879543028408486443432221916184160251969400117442437650903758014794607334785058841766901247750561188436607447608670453300450726006395591047321851319289130808403458030665358957064172043370231458633339294693936910277743204029748934553965630229343077494695094560120388488952717212662098597352744018810927593077721363308145399141060754626017857938587569045487418658565591621323042419122557723521256442943261312867311027870415596650136532312510969778560951442286712074326847851653690365203222185352166243236139433631444962210404208930044535861426645649883665233624620940320354621012816919056802732047615567170535069851968900532709487121995400622827438903226134026240131370589004973743608699151938308981259524927840482856365445285161607929447390291853238171529032554244301154619212754990037256282795908503475361920706015469488554119717284776534239629363143608565264376585020367483514484181064597224426509553689849815815178875624177486742983977625899391066431161362594636899229598682613998798067974773429527413898570248515801833552878405438571910988607708262523028114578016666782950677553715235918773232092448292828490962698684643122802725017986796469011089647565201894968037508176824406429427687017167792640156794864698818582099443593829329241992291898561994165564314402367047801368229633350285701201925463024748736573382389942064539949226482626221056520213532402309382136617531278774703388300325423399278289967453645141290354010656120362862199916570090663094853223867602714778921903081923252707623199259194652593240979627324563590073016783710142541306914478370503778521282484859762778748934496936728767283005688479108455460058588588412585936153585209188068908373090731176274209390450630026512684407494864155753884409964211513068276207605457049162432860911806269223934183001493050866882949811513967511106327374476226500767308478208977943817528238947295497401749902545598098653077221629745231766161523179907325921639260982764861345255602980431839036588071540233517740274814133782991513372435161464059891636707634027965853526829793085004409918853134915509924510598027400788638278930356456520448418387486253115709238671506232749097049037077817748516413524974170254301310428767425450045112054882367100421378435110614356916516235441947285696729855775638197578565122014442305087833264148474156235872167711572658574360875037914225973465155252732424162225561285892394939297811697256717103434196777789232754673899417684769155318055669418212440731959526633392228343208031699655374110184954003442803040897555883967448153648720980754070120165399046278306491995919384551865859544681159596437729889553150963683188314517466963967821476443956543702567896580157672283468152477272094693974860663698857647121992342432263454260232323895154897067359198607584791753479433039134188515205298341197176821207180758810073649926797149625202256780598758704072652899612685663250073702746429876504626555988441380285529261300777384661331387954079127715007312069284191405908447748452781935737686981869037444727610239449103273517594855587339790719435241637762418840282670767885694728931058158783472644734071987219560790506037840139418907820962693660044325568537656348273871330364301989325496674119072472046982383096942531413623614108477183131463784200878711346636723899815903963645530141236659847673946980550858071722504357335346507913825758595580859302931805609061202249969390883540911540702001818446091320361248447656244150617771378222565431339913280279323220085393340516952476408797075945060113536862601173259593954582995685041744101482725013841860550291227924946750262042714343419840658883135942643164882889278647855642392554739065447726498321602257942581683306820224497915247806444474558365613226255264805453270202588809259698087788031540280524102355056747553674185120799998266483126214646337116527639528169242968959111487640549676891057775523871910646228581393475085772395921777498874248569662353331069499466453649995303624886392943797350782690233209471635079229577140890488334070104788221380557199871585060180159115975253653969341160257287381596120709884674052677140498049575696623794908263645270637810852017836208020627577922134424725157743222547857434813817770486967233596953268203037497731897369054463828471176364423150128374317375030543466509065293431461654602572148990107055260038553495303382370026225574126792030647270829115962263869645988991318790214742297969616154702151360252117357945820427496264612336165747977374238327716519248166063675327547569242801667293812371687874673559018444809457183981642796910955997343110916035513687627087576027373156300402541487019644417828472836812534734954377797309563869401319622225033993964721215789999336442651740542098881505281022425118396421648897236174650347080710097834508641139411641398793431996910845245870296362831404171443963642350024270884053899552511590426058872005354367077513370848851731307798686420479255694870760592661379425108702270708358915998772431591146825575417500029924096338911824570721198572257729730772566565976670868003687351294867045509929172628330941011864672766030574267193090739743744231056012050267252745585306232951487568755468233245656351673009192370066370762723971429509530272439401357835979772555196794420677135858082998939816479456438002267323939686120817801756545803974621051818338626347849757383713057790886304288922293782198062500540721693084807481514890280140847740750301932699478553560497197896044824194072394849676641047974330767542570072596197623331402463377216146522211381574862811570752522767349091131283346605346057394179507238863171460156920938593114303351621455561963912268546334938641876800873963852129442193069110995640282149707865077198105505399302213563807083219335750492319961190127961329569671933333611955336119140545597121742746172289667232494972437820161269221610997288900151507815853720755270730844914683189723519825797256981363055710701166659540847096025833169558501813404187564391075807499943108064757655458502044333643784730345832016801121913513328699750408192503803956890975935804224519511987118266941141089160391901838728430193922079346632561886001011577390218334620631416127888245058852146688805635582754681702239882516745408848366647212081851785727119004681689796024529810388097973751082675384496680127702021231437299789783413984498088818475425410857775537939278583943745084325049217158767211483618136244588727696491510615525990522268588548323807524352498786655841907430317237365948518426260731293418126445499725823236212299614541466506725934181033715441763844114606907210720939077284066175195005097678012958572465062221200823746649872067989968648306434814652613171807564660537241868537943782621298382369099752527265013783526127980831193374925083510254157400943710382522690831971182446071581139912100245022869301009098219479079275331353326827295108047261475264909770251594679465666463038724792417579492657012605888586151116571088963714189707255882264583255361854663208310541654047890479058082484557564918979256183279152053458447387408927762721297348349113059313874212741012274400933580342067295398360524972002659651059221367393773582488712882549202647751684465294560428866255336308557920193325766470555887475663367573316693260035275464009167274533474245447207862504527354543642061688658940254688961668179549165147007267008261984399929729182344860903292470258245904499154776706512330871627009993888768658131193655316367970587291949122215386041636618890673743677958176003265935251731480784541483607072754375352257423021570939660777996738320477455105047691757310557559362660902288059418907888791407570935830147157965049769419540728497434692971399746433578704758948259597564767881029306484976322260960362735740371184685537101340176502169989586121378856936662331162472078121321710140822587137835307919313123586844582003203737462120024188549559737443462543604413351673778867167708689462724112815997890737556726625167416835071417176782660075404534314404673906018446757074349621333343890428023589908003094229131458466788945023441300402627344924036834034333782113811716482775572896556219255153368352728793921498886528372167050859692187495396028491954387534729168721567078634951689865278315402187090358523740364559401461058933085961043122049007820097604592875983539405949374464625903164937892321717092803408294502512138338924631064403332978603309766702989545534023792259573410831998394055156021925600054588041529061588475226680573651555806065892903342235881964153011680148176435731970063499056688373655121852206139196450836195117524503775119454095200609059285100498841652616283511534537999825660249952634328392798658520477890505102987867379468237093469324506588634241488873404878685486083957988894485841990745503672279437474503287967391760718548678550114631871576153151290570845532696967322412677264761805467129599647869775586434061152162385843681285956782218365727059969958786751731187815872427175638511058031308809279441852317275430086138908488515250321825627385370456481865914961706530820006493460727639746804232241487794862696978193622806343770800408577450859486457801057246082199247393420532282597473044623387047160286399306602573319432957390530793607199380281893236869414047491000814389717400912799299738794486787412553063005323352417984268247518741597754924264446087657688542539509481643647445907967671969263617862603016135013531697583120479814979897541826717244883363869591264912143949316681355523604913305767379309628707336669202827549675461485110895529972854036917935831055558439602972431182138050885133209398249244336283235338238802067571867737208038072899537783226546189454230604200948926647175661359594813922902783315993907316900950322466068501005894947467622134725913805215200462768218345479981205800641335680242274265014501122483502071489377621545663444191927113684444722939214026509683274428705677832265011972980492293539741574113371531070604322229569806352753724256261603458798212346834001280882798167805666230422267240319465235145299491878149347781784767019258743195048200039603013632354561120350536121039659695316386951875545860201423042754176170923837213256944706462681486144269678450513072341042495554617830261552881088474143073190267828419183771695466202117034151270646233569562565918332644980082756714839781049870815157200535507477974889655723083948494758889544080363466287731591568843019266470645333679760225676447054961558997411986808029410301093125020781766033108616639235453303745271614095773425072969669545232304541078159613976522227534975333147303985093729343996581096076159483678877306644839716908606244072377077559577220637859134927978249869194127092214604412238895282764724262121914520957699062591187010161692012524349531544615029298311529667398940989402290732992548225166293633764998982059335839159987907826894778522658285641256903214123512094109980516491324864509509331411077527736135654935040079724250606189228847631941355547856095186800091103244294222279296871441303800177841954772399053600078056535681929833943879070934342965538400555444773809778682004701563587902721759907801203319991003346384822635222703916717668245515523733642765385498581110388204686788642661432321495277720500295740121337987688467199763542041609474387690059536245484708203200424474194302054206083392174217394537245929744800109721517091808718660910078590308506217338930178498033444336009979990686882908146515152379675669852216089850311302928804486164737317118889173290020490422363038324034055191268732338147278303660053663403281670824244958833044023441148385272776404168453114846901832955669888787054884445654807192475746360042803722054753526969009220174440064768024985949871621356113461918713825372960294279516774294241951538187200708074168495275584849520738080405358101947893229144244687045903696977333284650499441202231574393880207641996304337306083299557422522376834872255270054597159567205289445506835827589841332086127536864381797661857280966883416188022046465650847119065745289434092198457243354898085246715241387773401566400910977180402895944950773318910056650905104643650886326419737371876458754708337924957694400313476345705665534244409150895725313324792219862745488399895408765611137127707086487856869205423185212336298423080701682758182842187208816326468852749330551488963720898586495862114799148919511284164842871488509602052952474897984397499873187538654590636495750399617491591850327615170826238261420786474375476955316298084018783076689922385802041823738993599557268319699731234155822203015361616317339925573633559331005171483499953981216246523588702036559310739919377468842606363527336524732975514669856859748099507190925071246595190113503855622368934174570844140930031447409609288041737750002070629545301448983494374814720682510326970956321694151374136276496794679209158466034754800438329836452464018524097775735730810503702155054207508823386116187065742626361473495878306077342021089094278186050149171065515347421150215672964650367245633378892244379079520714690331231282218520658414343058291380314191242664848235843958037368459906746236463748371653950394435894524050284484139897273788357632516354701592762953427386841682764109779345363759673034089641511841415816150341670896919099145384194731767752475829398691542802886912220871313392747558671216842935273020493078605931169783203690980773280093817870305844187746631885048689481518504714756282841240763845232886641019600748891538757140686240628168734477719539747249480504613402138698744779747874143309661749659011600204167432640282794735724006521691714423110161160047082625720014117149423852403591270540064088614166373119404206384268923919540976258697658545240148887697541955119915360082866684662980174421112987239803357151641465876495933545119117675301623872375092984592358310680173511622697737927517557777660337802139360411317691644252205345137102539443306869148547852649302803599549692413750640121409222953295867909712347271604085516932954727521875550251350553101235915881977982434330541783314922635448487733020249939475955919005697387589248611794708316806405553762642931781218675419309476874621081237148168244318342940788009845940960384310796096341858633948151610804906812750263466945598390245179358310592427518983441332142164217282664778124585853224601252238825433842222110047523981174827463628917029506945290106799041706383817363782034881357968905905214863528669845480076876865395209912935076792783598967514762484356508400738915794291264038352125582170035059002799754073386646958323242310343291997237276414290019299199670196096417835822627317997742690528919846916561809003720663920042733612558041670379003108073708291603054280561061835356161923705721905022733669091014080011909937704712520364598490294420542251331250226874127545476979442052474382511089409221937028644236504502081192602912821578809102029513841165375105162251383990404874281599143631561156253470674139558989792435801019475173494639437089397735757367783656546638631035035575562033639699963781241416263214577878229287448581683035502812065064843691490980111824558469100582959338091689496512921553569085571857630641598617216459191076477144119471354799824282524944643494916278676214688868375314654801462731892320295248675787644607580652050148227819284298038056176757097874917598680713533240568568235955049938123575081464472632321818421887566434072903892788197354599485128804541482286270998536986013597169540098785524940080855345836187883442021289888444032709841185386902583356721954515685497612802223837793828995821484184348101806834269858221660932888934997565706546600620338457509922018830551833326772134575907155096454111820026006420195678678143087147614817788393615416677727378154256438909515822063549375001931720724638513613123803014906378685722004084961190089500736757394080231946228580439156657556809200170965727772068143178386429797010861972753753980816346370889219767943273016264189988478779424677450675280577735306714781727135591334208357089264444534329888620782335254697504120712434243166566078293187088152491775751961218554961992363260195689752695258126726898618110866414221216115427671407295682462560397626903724957110385130237634019026201814320923674211044143506855881632976721752221186690853027374874887166713805478090310940716334039855431895979895031308845664311342078715296426890200947123813877792371055936914886463434634596327496208803258680461721493833455476427041092855705361673826278619324369254701091208448531514013357065768373927061359598386267073841210271752453852340260901459033550394207037199301846391713576513714286665387254337155926217330012685591647151533389344662501392642473543894006360349725979646882808439358284313110183283923206324425403645933347729293714179185192543043158523260317627667352227798714372732069886065177605300064593131149145165266692397237172377964248240832994983821043360675267209316166693228746283148789213778454773697804856306909518897776271070320385206350204114609864648180142242721615203402036852587097207602943944305575554673236391141469689150995676616650116914694485330172805473209482505637486834146247470430686503259250121777797649543815971391641622293581642599558950262915350045583894645394867785100223689083169148537097387286232371321905698109938084515939476134860554062469584554169578436604380097074236964440246179971272651914474437574031084659566609797033959725747197477269266069712239874521485061158928987243607839616403315550916474248408334444820343501748272543557714047850658021563189693782687584936237693664639677306549561834968659770614431321194087925666011328887120159116363322494253546394662884364803818633562361774501109349948617315964253536728477094812722642010754287116702525232738304984418298500185774929652386664239796841103904784236094094442269938137302898121843761859814801637410609281728362977299758888561871597430835882595785881676825095143651102008318423362378694718569597199952115605512995024703506353708695485134398125016321824620380290030166534447776199280395077899756070032604497980928223042353339845900382839441104036774677705583063236782388846313537020422770071426118565874208011357299677884642817921521058729140254670473460382465773351634989292097645769480805340288440835829477046835247456684413317163418624591293975333066488781542299457825431277416052380765479539239166747552341965073291236187955245661792374257545710700755354937956957105715042066425486610892400282806824772522820647171238978615572904441341611654893707925935081569543700630479780855877050529400964256925986189278890750332134105592142862233590632125769203997478269792902979511239942626128305385557733747295115531299953411762678356741457380433486535742419882043166346587209344294026907630775461582567877329797941670791321953211360997347448054221345756827235588023152504514555097679997293819473889951908044316693184170636941090990878263836752406642354419377957549611437370761501111360723321203225695878460328435444951331077118660250798784216994916247199679845927439181992379145711603853024565438190089358794735760177277968027616918523028694684409041630116096848768670287507754607446861187200459258152907573649398393921832900485141988870287733966602727758126710776641159856514872679530496789251608327068529478661326875526136297368186764606162080073690005938541942062184093637495915234087716818284565394649853538398940922696236517684364604352072363026459190888415910627906698321145587698083916116578854420683343093763239308917130771623517458846705862344021772102330451348837613639409847466887239636096017236994623762712252274205475833708633681992624341703382828176605464610624608106594924542519824568306944466595291798576057275374595291402240500283973016359781631209802828402241932425724777529995668862391940671368496686028442616663031196405768285201134708726223736694441991760557328418455889315431664578265993598736927811368412169159742945548560229746453080036104090143387764311242234542215741860045809397702258360358042084762662237924290779809796494192747442558408544065512590437380348752575755159991889572433186158420160915225699782809126359035732670712459358002824017522840011334004704561406788240930967231898529425234973597047974690646814192513330462672649277673673225852966429956716061004249403938601661317688149321922804313004943760322341106401936443441389271270701460271594035271702611956211021325183372482874480635140028731849906562137317665847853037533139147222586929415528196341045018922583190656811766207303743049367251172569009408288073684187804421390098279676492872844882339266960683130759735417512119490631060764546072058957974863389317948581827153324189304280357321721078370460042096511292561419426549300511756297555962325055710581596425723622628194997631896215357339675147636094952001616003816981087688477376761020467843020960658206865029981095989332557158458306443961128262885416276711983964103745695246761789324337552161296597314310668321182833348476537105698883074473125458057916518713285631847298869783168432703474858384901004686494914571782978988731034885702865652204660939057804059464503203802591733509396821588452599409951602924433692941759815666779299730647523223966133403375251843864842849849068688305480268603932633793608698719810170451854468789212093147537871958329689397291970737254634327318266056404714489692742517201596437437661784322616122668499403504049222400831758706869251617152195217219629337574480950858864350024330186244179297657260411866428703952175651873372030593620715978004262954332727821025316909802367709050390623163045298786471905099315572257602692121857265102776738448994623132799443519422959860894464056942606055259507355655681441125376782390844260587643737549205647077749135272272048348072859872974173199537382862139047634789252419472103273652626226293709053496103857709598582165927431876080284445019412927441472759900492802746281746584867738132954753646735309070599591242215939110295832116737351542901024364694821775709574523139983899846670020982289016980872135648643763248344478998301596039193718996274995970068140193270830947313994586632199571283596081280283199974347987587539779422722870144802737650686764458726159157310458384743414556957710345037860763713174216431256232254629529094572822534153425683316770758487298041704002990129594559477805646488991464502070620559808432642983215874414624568426774901493873249710537546105680478691475457595274804029326338471335083357165511373623361567957902626343593148356947223932965471706453397129622382152377810242330735049900442675009452298367405186381768847865765648742365854990909858559812230145934074272303215452150846673746353139475761376395943507750817507509913412473316214646834194253296768727910442063951584457210950270452236645837818090199583078553922630762798326631177000452281449213995469159124858912628407958642087374543284415628369248900369505024890374672569437331843480961727980025977241393674375866247053853346814810485897146126928584868517742553779401454214191496221846297224474057759872091690265561681834921970456828824991915304062324672687192409582612909889017903269047119167973259792900303041260698979342723480516555231789966252387125118785435454400443986444853103304869989575087401917713269728148075368301091661315970642394818277628266010946366490800023497474983737984393597088040395236513321762617472382480679990361770831074878924525142610017231999820765428768313481164104527654830625678006722518485888219286360008366609936976887038980214947034820973417336647851299170152289647462068136052004926220450778625795293276394092951138755766888253245732523465318092083483605664318457708769790907952919553520589837131699911215792764458278322358272212164405911492520441030507651485788744435052554502166376307648290717461701338864575087924728516306998203723766986707150914287087368172734988593807645477043128777290670905265161151557504399787925598471777317663162996266653986610523495919056824122181639701565074679411742034098264360330708610337450489555277437240589912231770500860004558211568502250417300928565145738095428127241949161960066016625396024108871860972547558112475931193384670902551696438242925336547267948567423182657787999139113621914621977251402697307007602256956651622110508189862596903418423365059714824163987747594571280046004084063562115713013009114721400416509133353478969730792733023932695326780050859967008702278462977867484986652866347505803502482898396274159327341811076486437220858579386373132366761098124613436423808366080502972765255733272446035369832280041715852218784202408171630483162825366012170002727864557606453305860989831637243767008527791851989399167345846862327762201155047931563322949051723600657994073442040400757189913095010451369716619101321679637344762582729173590723347212458649767015355392363241350041480833421708933429814844238152001986671699794434186658193359500496776317963040581910181284341105461801912239500364433209219130431168486412607136530782901600381582807280572106367055348153462453150573333363109474818747522700682506361560201454998695213508885859052337037234280193251498964504674939924263485795603037321473227656214144188202059869524382725759956567074142525021815881653956798961497118867303556730229764916050266301621100364124916326692753657700160594718021580520631399163876746138187771310017179680909213943081228045236009438530985585166747708790656453825799102033116840479967448905180070089520352670990509680184943213492182810700955754369591632293175344080523399823483639276400005962634045392280908954174408069577627748066582522902110867626159902645880310446837548600704121433669720559345980786609494092957647909082479668023560593076036738434051303100045666914498730787544595650944404653908308030065691254625283208028307334065251138775946608397301979554774249368963305920427744816292443601218689627594942798225811957602599775287900380852232118087020452873725485025412580102614031221385386361846025949853885072714558584700282080335181902412177316508014138327209785190848975719625976018591095214440798274024071667782136586095511516320806942777398747699126144645445217031832726187350847323608159791809486845704875391726117049960054882597966027398137756951680603725216331601164460558003335220598507372603247229749478820079809917501095600457433674275790094146020793905417976739099313436285488144754028705060744567057779846327234847342160408757962236598870146733896379350842227160774736011398299056981646749241588006398980219778030307728245927168361505430307887561740815815686570858044936974085699575057774612321262437914421699004240522889593553463498165336875310815915889450459972582124093378355478620127477184225471152592008209996865639276795722628203987955179741959377980387539032935441925988174749855897032476903375836971027268917143114241841454241831121540924249568683125995758284578020899186945053287580439543887583475527848040016102984024316051200422991665295697679901695999854515378926220522995798224594167544011280010023308371434581932351397085176877971248310190291912448767359538928460715802213983332676208851674617791886988292128417888473949574980671883338098635107807842491263021778856033836479150121239354347550769223950562948460551084742641707562699175471148662323600134714999028777570284054438109724596037972201876511799699402170070175173806682918513329363313683992096278963954172308901395230636405666446782349897796043428794074828771287680130829331848319989863424603065835172419224636499943462536911653171163017176032177631454574872956526897790185747757118695600460136617198584780873205030604422137515799495698307606833858552037531800774172450909167008859122273344411818844263308046688369254961938967038907188195252233983783034904558586158045241003442777463601687306137248137965829105562349369349226574930377604939187079673791054104253162936631969394761293391258339783979038447304530808681096610768934029423703230587843095629921908984321934707606201337251648146053802876999030356006291710011967910193372232299183857498154953030928037788951833655319739364315535307564286707587190363657699334436284957936406908634200927822011936200659979450535780050877280321086309230074558761428372772265729864265356661899464240761157042808555807342217011564298462130805646322267044769029450427159597040345862283588317860139406924981435051531808979820212777311973488006488194527526226315816597748378490720412466170085633353695128524803940954165705933471865563065014161273832248588695618576062647822235009351477998729949573783202106166776832015873097767833877882797996154617305613004643385374183586576619379101713502159369381700532912164515557507217334918669529716462128401704301662854133392731442332071624650603498227632269314274206034224295961165311124162049066138128377396929797745919677676905304956075226622575473164379947412376084865251807456284770088680871670729027659382549058760323638520472270012860682078572767472547169869629805913127870488730986233276225053440822681064762275260348728838752882130367626473722807333688401385562630590750791023862097621950422259627622126951083333237667634408167994283492439933399055146184974862341939933191133333107839895719175704975742080180343008432705532275407117723032237898168313430950496285246007430191869921847730577331680128985723398318274871217622121101035846077042951168015196300067222303649072249711799222118044939007507918680000953166125478598667866722057046086568594911138016914307818110405822689090585865168649535803634953336218593793370856461366757424505872652936355311637380721452093159738390070006542883742372919533637302348088163609050401263876352231342164018741827668361356495883835380208390747792160136632598914120839483842335567702238343960607955743003673997545013130657587862780736294824660875825337564974665421472263022267439970836086528327838091194792342223239667266660450713318479105467757736633855656731008467893494483053559266824009687711681739767688887751388231973239069191790184004556964113999539032226042394651173028558044624765155582795976222828582413558424371605003534013825811517166598262238178735481406656405441306331172337179269440949337135462839594311184059790187414266617391744137348326488921088222645827939460578388557111966382332492039031604969506626495487070519806864648833765023397662422887960309900968344545640318375384298107769264155383159095024187185286566346083725035781901373617787461629382967475049902817031015986625452080854285626151051722929478929410869524596138810740301014759922148709654799351724270651562142638477457310399052513484814405784129489810242285210753657911485095581998158832444236359396588696927756511792365935970956008596622811684253689354751709647069558124713484434085117908378917815080750438303186064662389050258073925491019380742119168171542086983690022196927602335378527442083661115149980690950323491063359726726119644157056684857083680754416610674864931612029255288274693052206040695268821457503417356669493500541990899904832549663738995447523900547430453466931802480248144827056481551624234609218757551325492091325151916678087246018628239131669981388788289109242896648880812207818610300171624844387942282115244536215626574716735719999258324585412432300622330929086575263978871362157944362809437347157717672528266049311838706123669097470427015707860932640247789232379359267659835428723183115576733305384820841630651358358887027757822425428801825791716333253612023118011265928548081423169627670345526997183915143332877419881562799925914957357061285941913311118038634610689344736843418041751295639831911468358737312047859436675370421862369705556875472967476540620501020838289741675334673529106193668011113123121915125246542736652947248571532709049800510376100165566706556745441794825486120750964758507754135321625479515761482899681604227969501753486416266162355297315904430074654795422694984538163885673575141988824527203158297259776750033986632270174550460185441119090310418725312786039076591864310469448740553704233010791516947913537856017731240844535436989031709385179694350607131660357960371250476248941468469812263207997162424655112127233618616074614128372209498458772420742659559497740817268261680117024597467827626596797062765193826641051297758397608618942299172658622817776482633083854520989946451230693142432399374493821880393584782527554793298354952372078901623552519834045220094479058327610235822034748633663428328681306049516195251808203567466407761955677464308530844150676405301915247583301299596899218679150802850010969074672413162331753237650945274898513830263472065865335189240239374230286844112333426535735516653533844679734933754217304379449697668136145312351696019224423737718219119435321177350805582040687577198455849811305504228650956028525968639538663405059032013710839861327504556549608846887397602797388305271534759350552577310395741702441656418547487510190347777445352974535341756667814189725244229692150408796795571414265496174944331670479576665332270612681937044011970693535619662886833308678231092739719595911138474295195933294617747631707533281932827921996258076605359798336560254943796457943223585347382813606363032374890428039164325782529630872543669548200585211799518090221346438614588371106367683506436434512323379894493432126378566567622202256910032922277511459048601347402243098165248535584897464877152741969241292897413205168376723744871464055604190838513831477174038529647699519271780186786635392374668146089171474004494612840504219987759844672714620840091619735989626475129389658957126739944522803530683931092940140380617791721798131848567216213086171914269146641528917856417423165358795423606006497509567770047892380059245928441784959305953589371673210277668965078883754660989155845604665241697803744071962283312515541212982674997687274308764959602084008150632595256653438269481627470954289295395389867992722208697267761352843757703063604464811770929854324785352166009932222409297271958471436326750986308214272467573880035261942697627439570983650196778169429385142199138125140655618385219583905787428125168283117032158412532637605824597051441096506746175968998035689805131112911459641986107092829799438787690142129292295250220557212583585476509911345138835435274384859050951108218802967150163888058364674138973968878093920646845927973656624304565925176010603931062554628134209367032558327177801912762608972984819607853048451782436554746349303110066834716282464438108312679358190898471669977365092852459931238465135483296073554820036258420062673439927017417187880927058959268078533585078881046270539890396052664998108798589283858477630214931620426279461157286001770034660863943731918201783026852030031363387507430771646473103990599847710155447466976176433196105110903092928514435251678036615274754626862652418504327867267833634964521621910945376065882851239724132383551381626359960466267648413881798903805108140767354518526085709359600653586157671074462107215686286724860488189414677404104055826419820419580980367874400043775633764624803259421277969662605112063683747638699831584637520670986112191207718434403450192618563103634092884245795745217735476194575287819114162541827539149134243913490350309002196859588124895596570727588062887938519256221228708882795937814598754219663087580211790069989558790532816310900732912033052031984272939160829550327263343329155462165981242540885586946948802612823173136937137435017928063724637126081576460624921691057838200076163943837986458266494248868056891962215587284703504774354199454491508333075761518016221676011834223821243886707039690150166925422183880538846229587994725323965170264918353568773142859531340750274654237897447163607493910817830140124397350272508899975552895787975500816479327681244019921593102463277067995463864622568041513704555881451101463865675234270126509592225651024239100321519401119165385263942499284517892778308217385216643926230216440568539737704914525566426311679880148457502562732016944640889247816251119896444906749274462112556001368355447799201816737100677168807381836716937802900937111228362869758474475524137581471514251078653680562244649979696792282805632269177691418086672386596489659022049470724597509460437424030184956985600573656661834111955330212974623398851445812645296227651023038811156515261885868950196009216141656947783609450401659636964227682399981308542111210268716317419064759593792480461505157801472424095863023016337793227835027186828592646190581744249502560314917277048577036377795486623409353541181946816982027127303971816499338912645259419571426781256642244250312979229968282028858528023204087612153156795355640780079535200360840086472338732037266288761952653818705608698006161938713179988672251312228303325042195728825879349624999881045865764710097830891790725069234636106809488064878162274027298087634375141943880042746028401173198763649210695460747574226836919606511400757960842248021121627960476555433583325040075230282680463341376576010335189364145880135189692670697803940613342435209099981222967517408295080934912859591693489919942346044093295639805755369332376076955707748839826278903840235571934564977849968704478358018799875872592998299564683111803534397748571538984705679206616190891733936837875035049623421140971355393516847451172030847329532742585953400275454943373591674606460891970240499681561002449070203940166757967697522136996620585880017615920810508037789883264037846741718807189443793098402340224305278006076256228312774567470327122170992336230421784559801593128584140213025867557968563148969585455282881427894817122948856062602771445113939621240687234524508432938277308936155096267408330090520007633800111190887569823339803625728444411467242436453640335955381601495560755043880304435182585599407505733375838330062919618843260433100606886484835280113051761540606704393342166924855323963312644117448573279286388104970601325682130236405732676918501674389440651946155203077422405939673483473037600947641437406425628736070799419605926771926234911100118428633797455823922094000247654086550125062600936797029613809623349597064934757877834337854847748922787291464160896413167897936947174977913038075150183897069390078425070833209638740509086140440491241419315333430333134721389922623567648419725037213478749438077029071735463251160523716558530224755805872160502581267162319527993815309717320008555176320004952996793712099010744292909841259452500880479601016207044390716713103469454222636840184074050190145509044478284829278601646388406301327487971298907076738882593802864811646989301307536283789874236107860626695439407557427269612657620957285425021085619734055630473265660337951221728802725186692215790941600143115743131852710793093602983031276565893625139834631097068318970656699743133230675227970379315361266076564550038465252909565691211081928083557297846412371212955861835265351776226959664419993078580038014256461040993420743206070341461184708991705676468990818854397719615090228602921309493612509060298487613099966701902354811771342806015692822446153045703275315206299608421178148143847486912113143413112546774345254088879554270777538478639570908418931679601117779324113959172216081584350536193310980659742341511267958446569459451451195051609565869102705063980011935521698778745931885819032232857219569139396696025412250040718609924146117142447798299845772936824431319392501595732483309879083690660616175095223669674239086684514156415304485717668684203376944034184527697394820960040107263876801519213697854959386271144190735752631910277513448327821922552186796010052403732539049941257281039860772647540361327494474264655063707716503370526187617126899291612096346153825012921325741114809875021363033164460842141221723134392540253080392095056393852434308338989875275124772985244313755165818862547401980117616996346386376372037964272033488633280393785644773660085607240779816503395206293932132453656548285954438090290200623197236434349307594236168577228212862346096604666759792607395860560495647580203164704452977861207645124437826547880900407179303336711592653176064121592483730111851042227020475948853973584290396015919919684295007154428488810540721438669654362051276954206611626919969336993359887077201296774777515055518019148156101570082075410554335590573411276294332695547440822924228770121000485903426893244257156996451988680490350260328280872397895095222354863161289560485654604767009757771404709039368382683070159898223101874489127457280634502170838691435369632163874329405578923462218601859990260655193868210153654653454252146819583323750323594831454038448723426716074074281272819193541304721162047791429562850030464939222657455571735413129103070242694904194637491797450051563122325168761507693006423076892538550119806032172827518861682874347429863257456609252871449997541032393394321259461491499119932419326057551447766924222997325716490531982302268316526450047283378630006323485691937932535621680241834756952775467464351446575448353664383673815185167673492657759603483549243185144374459679973554408522367274034808322882984848333986299105816672118380522984858288979159559062274589109837242583609412665618468468800555324184305340178067158017240148691316662341019984917910505883034459651448269052976718866435556597624891809970761030125565591440147136095130037397772530022200472247046076864051480185682235578343295585713025398779651343236368630626186287692931317438645544252600535931348789675989665774463011585418917447296656577149895698023494875028280964385555211270286400834495211702307125871753547185507884414936777337271646158146858945186661374143931590119868569744809467842945440118883623028520476078438543232682839338160465614050629443947972250942974309659472555014228668594963946092452441967702919370658578363636610457768018948022640622407137052095388805187615151191534518232346167979100696999487876962166873026293073339694001884996737989634189514211452025533897750406762221334009611631843134984040496369777062071033923892812138532321573888489064640722233377472995559177011873951818496429713570330613523156822663120370329477123418134172245142349050243915498693181470928648031157275202352488572476745523181699996150576880938993821494643407436045847340344663695143383297737378455722892387502713696803116920530580594610679823530039391877342311188583277164328825270165844266225693343453438676708213177448166776996896537494768122123166805906012939615926755939081063961672533896314348941525234640085086388179646921126650178531398787870342155449122029472462425204016903909294306389501860471138851162596717874538168156593010408185876798815218128447398438850518983642731549579934901130830386777273764391417530695495827163570435371238394300414094806685853746514605353247581623458971204062065982541045057724278070992966890204097818713245609930945893598723832468934532761126815486729599013899810979374998581873861507775325602205479078633620341540920764001193328801325475212369865010521670082177630053212609212019760682493279840687448227223093738991357834535438732057171687664166172007123708653651679257435922947195085305593792702422040199558638492113590200658715606871041497303253741187563413338117085669755963235267793959459665822193201642459327882192316762533382586413068026172090425509103281266880161603038913243538356601691050914876573409019357766695717485180772812801365833705609517256749424799228437686949309941176645626398931946941187341405963280549921445535109619824257412844070771952138996799911700436443384993543288135620216329426195257130344892630870961034960362423142715059459676601593409528853275420632527062433078305274109814553062483972881357771665286803879264316675038896235749222720223221756579293673330747372065761921450414272295148361397326259580753004936417628824855295023739376494390942955079247996069599259568187650736792488223639097056447583151968791696208855197386042519232491082320742334409961332697465848798164139846532632711272554106367800659769275215102174252972196730328647964821172990993444489760509465666798091742039174559666439217361567218393021950575876571301679103335643362856150138076162428627205723359134352898884465541295985268479853035862376917708630725507453137808629715340717816187172157659442113444321443631586258719752133415498561875808447357368582262800218388064427886243385702101571588282850538844979212281255614051585179619402392739412958731930880897785665239345761918171310231434588574469901382823629311543721639666672685433470211545108826993396966097749952742372872591256882447058289643404752921418096428395926963703780303655769347355170921864883575976058046169831552137902913352957032336068477049852693990226718680101790740302604416736073914584427588202522913847866525718513654610525181682516601511939592261070590165278975650764045238305169375850563655927983399810820484097199272860373858656578609658690356424717097131632806743678146197567782788557519919060538205601628179258716857925519710048747348081904604674186155772980211566267255711829697127582732735202018484588012883670836255887951771797572503285809835717389514450613978899246348279892036113807789207732086176935188967918147640631699472883573873854304695204065997267167713898473773682538290215269288057783337499275063434614846018878026470459650393590991523913588896771468021268213544607471075617246044309416692722418052293268054092477151035194335850164129717119885776567256166105709726862833305308733902366085901051158590920152541763123195547014961493185637670893193892272171557013325675795830988423203526341360738202747243309616445725497642165315867298270764266051222062347417230117975345220048680660356211051716483187025460928412896107839830504916930115246463500926796676557911503811270091999473074201206524746578285582577839817114297852593279373272210897085316695293120762134922828039997048349224172301035173560023825531672596141836583519276154434686831660532610577072316122809072633990543910152560764310762974507541673208844444134466143131158556871778402973313662797383894993141932320643631602211832030481542292485429590676112612330948218091653104097719925327225074515589388644539283806401542521421754685368868287588248103031529505144510594661691146437415271214042279924103288579552296410700582258334699201470905861135989986799625738927208060019594096911309102088044312157765679404070363833737777688933514528135271432466612519474849763797261120142049543875737662855089754510024952609381215696567561056180856113913824541862826648806254473852123828304347349321063077855833844597369825439656971411175016543634515221364404056740159407916843910859130033902936042479373455589041195683641716025094338564867990049248277900042786341676651169795999242427883459155531432474379571719809259011174209407904846797613565605348924972198825689512892824560932451382251002701252547289985550788838013292647250406469024133726878655538273093132185555402736438899376299204068823224207497289314681050541117164904200641958352756448254718999703313337914428364151969792133248971226198289759861789424150271260396797896976039835435173030777598206035823149222314344678848185263035336264461382788028963438543079934621760775459232910284364210668374105011494223477287902829262447364145049173863794400708058800087449685969278337859230101276213425173432395968745803544792885955448758967971302844456631280685147443828761222848490306779207154592702476939839091371358004879604005079552600418638491379985289990645604957624831758728508803004854493961437393502427585391370924664831340329342078849511670495803940618945986747275121040311276824007581077082521571067479316786313356166148688565767759032824113124381928396876943219138055938184740649449409157022378217233129775765423988364168364891535465276397033306509520160955737709037956716197100654129454270584768499031804171068216973988057550134320886649251462819974948872595604895447600973303755037264608186980440008754921593949335376534454841352284145575635309901635657278497572200367127544355981502035032399734876706856253986491217382376126252543852250338152397559102497478302254080995619106746761922095464108043929728446104581577518720955398094502543630487242143550666624121700220803273923316024290578167557318960473275239860121769572287793317110185563873848357219562092344805531578225749230329355224405965353687866939020298418898034372091857797759716717448329479279754824038683287377614968879567901989103844719373197431287845768605099142974337949566788993630485147412447954696001884852598344330635639483664999807779669941053558314893775080794525587450173304283499964411116515319708546931305694639768439434978105140320346246062521348534509994595611903884151102202433314129380394147650509768909169583338372317343595609578778243750882579857958766990205331798416356545002599033081074377416496280283329473282179944194155225117469183681955513384984088903797048633436789760796752445113183021591909240677955111346353617107852633258989764331396144668134461058704192144721802122184334684047954734693331215100806406057443201812249666216234341705476906045355188002479486570642857348840069571164339498981843566886453377130190152237809603059118093864683010657951788839870483293791820147155090795328551650792025706030367860559873596225490274935139558559827947041085090855656566481554583865926577989501770332794777562493717415870342056249015209011393036605794893239180594994704553120738863303592738987955024535726830247363924397214922963054149659527458251559275360709744460336825329224357924769718056759814557103706891389655969895697373692994430966120968441273510520227895719791796001412523887673850559563330893905224802397173675104699676023180839918962579182069356801646784405411051106077772400881834372686866733501039091430649466284864544295428403891719406930932680195473562624174559740281145969632519631018941947363246269196403380414787237508924353459992213651481153612219088091492233273029260612332683021189636432047642260737100640047016771422025734632214640397201787073713592152193972686298282827281210209409498431321638832054994459561850511766411035565365424115017634335656635730007068959966874131904138435340418231272671334028972952606853660207106961641881517795424420825145217803351244071520927617821980550672416706479267730113568239750551298249181329795575508922346534697149073376789017486277143855591698786887234937128071893302858265552821815794116265166516428049438012401355346069426611707046120538002676529229607008075372596588458627472472697544216785983674004674373637369878973956877865341374516312178195513336151201687548604149026162555836310499589697017347993013425199213782809064317807950719432842092323714565553045288878972802337352348672791681740499355951013070106844657981792567982288654672777671050456502220437204533773765997286037021674248205787325866419986748563223100949388805759311301927600589570365028602671747381601860891018640166924856959693887340484710344072213076044495004048778230393162597214148260457290975541706999719010165789555766997689045179391326303396379657439714211838697396801561708913325397887126762754569138556706426524703296321260396879697762400191237264450941372268568367201802736003761372729484899399717524954569663737746516838869681824098623038139174128874006103449427701439685610541286855821396025227169638274999566196841873068022959588699223923324776780753357976622302442601329053983991876995333617204303683385115138655620093431215363919259740790576834280658538433709503020053818843069123634131544821011383232380119153876590788854032886867239454207261452673488644392797949549088299901962477608168878478684498304134224083347640912872594081783328610049613456028084422206294251912299410967181611510793713029912054891889091990515000823873507841383183114616187031688499704657151956719258191853442301540858519250209322104103652528476922566231410463934154435443243740164212210013360374222739952263398677859044227543150528434699207817233464752390222665541216897658218270138034670169447158518849970975601275746727349699180556176180356027008467759199776287837760243250381677509456687194828428487749176465204910962182825071293720374182572268774446762073876290735834632777498762051995894530691592535034513302902616011364034217714698750913448065143965551647886260085342689315035361932339653563474148095877171481937051675514426552273587497524054150225804922480262475919516823775658604870906456450902966024770932408656473343949837263592928287250010014010097866890786269737013538361350465852605802707568645685457542917856968278201134497168228808306932119285232022324356566487932004792392678420779460321188054787082209562602397076720035454776722599374274843469335888253935436781635761787556286159382632451306678684365691974843132845649777053777234721846118657126468148625645012182678038475343292386131426316318137862830149279476179316881100968904275339216757712250368967850904752316344801269607198193589670715424394827513037370578774935571656512497470859229179744992250016368225548496721425108641649327734698508609033797034651501336240236216557630259597283481758903301959220649201076365474243167207582215860943279492696404099508226975355265846962728101039380974392645422421416065394216445360155517355003672092647544263935670134809003321021989173430812295742315814239831355799992782754579153426519686871150478550211566188228883737359142087599943345945841054663673010645927749151032348000412679351212452575589341050718549444900224014157914283139564759197588830475411452511573319355460655260696630461819442447694805046604443804227919282301302204431550036228772813651640737256222886564874017469302062034051547591357509854606225292408028989477666128018464777343804583016778403883950955792148181610150828391214370787446781784650360264425273813286128349431657485835869046973118786718580887657842919985650093309997496577990012851908782931729314076192809356231020122817133793280006028878434026086540796616322044126511246922633804457668355048489395224417373185708571979096529765407151648841215550040393887463580646952072680484724020528007232242520120474425318553360216922667198691067922404871080483105219077824855914980720175431670921820874836661511422536240717719990525443700503539292071367897250920729123843060813944712878078866461629469185926764854196590143878832471255454011213333430502053287229687489889440041763254338517524095132461841824937608138952346347537137333320833132608805300709048899033273222379880447662070626631405602619722558602767851732420922561142189290128352507082440142321992795174692508758584386097010593682792218828769788594214606919632341984179452261378102957739892887867474787549883401920961117743702693968975718144967760915518374823670904470742852643283556451437839872215381490916587757206605368847297251270394156439637953336255164838174534685272701041576279698980759935150246300395619636269397803359162354605265501286703206602231792922391145942352680714496751967849327407631108114677911210021192875898580724654294935810411268788780669310953773587444419223580774800149504156649318366931600446412210780457008614621144835686587656003100331769616372999923626276336334842312285899053024553596688544174246049256827072919523682115955265376537375182791555801153422025262515036388731079700455325460395325025226677846682780226532184942047460879159858397862004646700666585324683596792106473451798385854955443336047413551492708691075615559628124176520852302149009201591519483327374650308543880153122519657723479988885011647396617960307454205808910299546082058793116662688997772889137073432209431741990666723879850253398010671796112593679392329671484809326480432416042393241922041697926497025619863684605328682957375057288813272364938129997419101821879450431701453910204148253439570285259402900656410935294483302872439190977194108068101594872575019779168758455074516779005003611714736463169361335437006896610460426877884034915853808716770780788926319352843548635587492573538676393116177498338113479627342925413667297110401175359189535556098910727000649490921069878465485558079116862149748519663177557661264204865613930690000001359669341530881974444149502021441235152365804556831019602799728233855698629365056483245172841589807033112121144807947024710242754526777776602081847193643484919943964937659587959627594710317981136541481368647015271993424911299837464332093687770593079444186211994208953753108288650531276100645821990653395612949905113485172832575155220440907103152127235618674020818475358977919634893942821314951791162868805246062057550550972779763838351165870715812612430167169575338740957928945633711679270713286219524736718831691130793210856537310771744930309010064433419433500977238741848690423919433275532737630802192935818361330952981329617197534781483981468097117700656329327549453248906762126920656103817835068379533947110328763733487012833291628206291275380560116821706060275526882491133793828858857831744669659049068846743896990405213071052643378395105734928577578412677589741271863716227089703151927157067987524077065667655172409881110489719783187650110390192362006160624711026138516688495407760718862340032193963910976734220922535724974491853158400730740681020578378421946320321580557527852049639387098750791417505670052150295108474714859679798611152735568322168550527872468023174491262599307405816848921659304989068626546476688454770293842161773089919798624253317676293571814804744076398584770646498711503214976920989460341056594259442114722650462479177004213501565307518536622990182146999855906775665499557132368317926220388382040475151972685490927794835319405868502256405363937025007280947736363664089639032805923221725015313554622006336380700131147245422036422289645900561306883191376906221980002967424548647627616339725409229608331303224917793124194461775539094674743402628925036403141077564773173919114913203579531039809479644724769924478324992776956621200118893664609106169293869264808652068573732639808468880942777607855476364474043045793086348902024447603089807236767828479989012127898619405366885588531537363898380964500305480187406346732679483005251596249430176633970939819081200937044620430148950350034765335632078470257617894866100281793838700512311315099465436829526284317079216996215208941957438625803521508483906863335636605916638546354960195026274187807603536081813507651997606019911909241421264004992945827940210944536370791236994082364267413499422213111285242705709534233314710948730518462254019645354386487541938925078377285577547150071270826999749660370700812708741622669029271448179318924359025419719785980528028834957642383936321032806318775529880054946847899812340449365054104200772807959067910314004789304403086943812402279931397705229103945587401495710809904055870196975668944867735302882979314040730493181510419429481205622686404144545867405833036266467714222804637295614914541178100167275632449045551594260031282126332920975619628145167099296115231539042745418022369182071554124918563259193884426504351368880544114707135457588649104449369370790761672843902727007520005704632122523973330602201555479694099020665823019256091771957314994020965648683445060245819678151043536656436791295120528688424230309534771108526645639371687493469613475696495756344446835462310529441355301480907182851322401220549414294005407743873075072700984787794260855660444136531832939092779252480121411403018207241314717006424832323569702592343059901857799047580633898882250657403663743703246820419810037572534949519688586480770068075697632106881623458787875678984877023848881814704250187412955903194341665409716374644779899160010488650404084194786037360589996930849180381894388599650902923570233091580204183752210835504011624628883184815009705836490895019142674653684696450883307866074130065886586006026509059143021419978304581419203115506649093614670967738896582642186966761352135715773122128904035333995927034832514741396619879991653808419036827769454689315671281649974599610563341394226462566928212582859281238239979797634559047794299589280520958660797342480967093222636688595599934614129073447365179616362026782768072478947954084344405124006026324231573487363436972290000930184510352056273469181962230884981431069740478829000260957770549236824464267003466094876952837830120267044620638161669365577427011193612197526265211035315301084014717071024815280153040784566791672827574056879173095505512839312778433582992912564705274239859521429025626024897063960299315763119681803928089078176936850261249933185508631546530952398111794028486636615936960058497551368467306601004687767314075401729455721869560819136959037090828704846740757725461225503817292117359511693836581885584141239616025645134674248755639289613786078820124711208620806629489383214737372614623313291016765498358895711291560690406873991009006220527798484640391003743314859617423819856792489795974027386204364599648821212729794843676119364993810945915061103332089239936725755214685475407689936736826820620044014521936583553093942107767427613105054525710962700282704878225462245209366777575515243343960602179905354930338296933927243083828826126725351317256511127763989854711520878067933087597026765949820663996502691548574747955359954925710849486673080951344065189091930737418585272961437857305472766764994503002283605242461162403177976518859189884671988768471741387826701314664911465089264608787686322478304856394766797652419182412709121034703159415505453236473320590133163327396001158548705740961383033237166305156210525555831443470394964454582821347805911720214888084250935592559425509187991601495761364245552103360815454292185867483933137663796391625668125663149561030352052336085448102561778321591991959386582895930320098172244932343126626331101930436260905817353811674169751718483343058934381994099557462877288253635257708823446967401659272278633345480355480491150650517613292741159432056319929476378608799076143251275036507220473793376934493601634572728272962604144310492772669630721720286543207936338196884209958903720572520937586063434323942196815035602868967654671775202372175870915095898231001525859537079593267938296473755932639922266975652749330947755509559648648743527524330872736240656151801044532002997957717735819727747218019097952589866597822413880879563361016668833278849618022647255686879206312736447482236648436038492172156716684870555069129951720652618931585276081645002939333584020222897133873618337971191020872639545262650460377021438674388094730969803006915705396680651313791054952453354849383071844154013210671458687919870566392953501630027572469954312376589780330367967238785387025538384106474166922473368035274337856168185812317797120029192291980644203407188603242755318333063588655034637359740795373129720851219715740053758560939408949463432751959397099669030962614773822579296901944828002527985696467576250610986537621049358603995955289641046423687549218248940060024622768332977482719749771878613015786929463897405297422279819830328397395099561382346297260336737336356852063696367497805093728993491262914093497090361622257748483030932521049334987055752272862052126504901511507900624355879967985043185825483573905725329720499159778960415786143983846481256551187606756573025842783510961409758872511181148711474094347561677868571760297213269586279892527876625571350433818313930246933525296252992941946504046374291235558930594713564613935188052029126784336074288930598730515875097607682396456868911600077092223894558648801924965535355026199548726547891689785594080717258169010265741299120871103980911770149801195139334629735431315205387809714386466073383004837023254365690361122657743346609626993654926161049340201312718145619753769311915013038467105427764951007105198619624731700750872604911964346282971014273137332504711451100733295895527952841594697869950240990739740053397334023605302669063097555841940149258015945537782294034379971400988030989165331222245323718906591787932799196375340773833797013549609828045720195324578130357122377323359950561983931120587359469824098881487846405684854263971582855449921529905018024431957822097075709844024983166713392399774969274701773090571364742032349031138362375446593263396791854732150834120657962075758596048027361685411337326485306370111527211953540510503699872998656843967891359205430758370970629651182109205722867275524421606738012165844010403701829905767303564199750193963318620319503036671496173700706852885393537043587924229335032565779127830703475520011334479025968905913137099263347796987038812584366761209137017552631718083197107686623633013085985100596059690681746937737182668592741597531051396512696861784207878502749185199324355361161496770345755365320920937008397810964579050052502112100865620800420050621115207002734055031512437822947630305759551788238942784668042819824001892842529665827568165230321462651465135353293625204576860185130109351901053867162130078153715634694091677806293941333562832585570558318471250541978702729977286549320828227163985089969483618714464379984998246324510528286361660310476876339142025633745076000520312027188591960269658094891192025472019934757031947506903992130547612229730153360343402883051255546985534796416619290535186328913186609927419876532551832207280315845893358345640820911507997115856437776689628132984635126543080324731627945016602357096689319769665171332503429654760609938180651593936010728761147770829365589516657310179997962009771758946160983226346953532659321990245772473497844638686717326879387076285187964608927251597513012222497156474762885065659058161023532028066688101373329817183437079925924344316535414796963402527409829264457656816979433029476993069698685285137543333872560743481174701039104189212089563964402587195447644048537916860491668479769612374875984474880434663639113858305405129229935948801592480143707007723757681806398891303886648546588446170404644494630230082681691409468066406293557848173957736251017567240120723870095575964509364892450603461816614270366034657479824487356664208942675406493972210401980071354509123873360311268820484132932068404351114682932963362714729914472249281245963842506032057380252248258253353631677627675739702725054800802457845739949858474288986671658016781906020524141428955429381168061258246650226789171790783793096956616575383739773085439463380316154958335189811619926668912123037509212618689300718333159221049094223985191400262426581600728168170669120977137475118507867073397868796721111710671705456600750590391521595105922370898012123093495605794394949882939537558293289837124661503473307292826245445497918082375747241044604013645500890730950434172382186329547958553680493789469852255772700211404990139051601181526256138765796893377603603054538421014166786880812890360405511128864764848368502402515823030711754612401584757783724577028090638923277818778570329720097074127521312757529920332094795880754135601757384310939306386701010032838624883670969199221825197044176970977376274719325467230080021611588159843714212139621047628842433912291701380378829477820919484305628339598056217337315972914859922079284979358622933667810986878336902304754628379275785710694718155965212544126106087949440524903735013945613337030054814297380885681433963919759329607589666269243278066170836756120010738271170703880647437973035723399115203231942788258212318520979460906951450402253468155238143504220791935295907536503896819702191463943981014502060103792324137265274771754432154489354109705759812987842562148609920911161392615322869765830501848442334063903048159862294394437004887776930398243872928679566118186400665843905843544652618968895528198314365203753447865917945384259000693626699135957358838589663872955616012280551733842918699902852877023671394101414729044638625747863343101752743565849647315783234321059137751128280849761572519018041371982276604295052674764385185842593220992770807340233712668175032644607727168054756735481996327418011143464006521544459310471349954234930428462960288553920327742950905806535871534106559563144048313402797711641614570755421883383578050477611831833240995588450624503049629497379936024040547993439638288284253517869102680027459258153141866970224793712875714324996622058270547950958405788587832044712685885637957993822629997167116727694177361410357395655896379670620995826065716758015264911921290085133691853541379256932030366185909038969305664727077732183927761057569142811775619472431494141714579108304386425550061169686125266206766867140701964210616771780685702040811117239330134991458786064805697493876075273136015051930426289074172003182693040660866877074120651350477322959357979214356014643975347427520346112456285780502982120488282587167431315111772130631851250893757658411202766559144384864853801607345939696640080544260430213631201568947797140207737590220278297594059510143763577600932653305435843944960873200440202454048516394788006196503740647290984131113627485076514149870556051378983708580981563992575851782622634495013056386374899485651857300303626913112342880581177205991837325455160080695707892611326771404448369982029086494334193407040284514081220864515075078326357052684435759148249519959216222439234435890677369544575685666920590664769113155310919031384968227932780725198144349151137181044533473445198361432975812411521171091049055370848452676471545030919871093470771983266244654678003406683402968979056988923811136965565562505237215155138725995578243758115866171083502956079534566182719471593566012639975907014024605149367408507956239525953407124429718032854890061961517835931801979010379819303850456805810444687342429014922358830408569198172593336519178845406848392246288225485098451913706974435432275832169440572646978084231684818398842370141568728234249362344099436161139311635439920477810104681554117056564800649214327725066787063221409410813041920931481193929168834872988293883069645707568573888357908002294743345376213315184316010420791739874444982384760308100952330717846292074479348606890089941121055119071194767656318349732715597505188206614118741086986479358425514699640387007779110665701034027123186796599954850290698113518886993673158061993606314054507403771400365814109471998990065519325295151684214647406688551020337013943834722099277891151315647811337243080675590244815462636592296863566746637523522401390106762835605222673789570753934351114063199548997513885899950481816404776348620991265791647173040139321041812969883337904466219367320201898663592345166690245028115854742105899128314108744697220509265217632074818605023995697049832233978305157568708263925027346506711201778997993046215761182086963731809118978753649887759861030719106064651122983336457863654668421565770049846188510935222292482176998698795689739107465431704394056834098180250845625535187938598045353336156325308761333784633943137316921219211340524730648375521816968776918496274239802792706327613703995482725088801003346367818777831720380996881180901984226961498522118777143713104730856721092584597931965003364855282699310213179597791877874607114425023504359068904680058124789133977247230908460186489152772270151541865182781243357060959526600041440049217956390822445691819002562713715352345312296994318728450012757590941110175347444734745761852273450151183993342021873715211881502555132283463361415636017562241416965992664388119679242084137642643952336478898114059963807095413718337171113230955045778222115659444443425879776059538653146198683977199834338924522219351759673177842462433780610499910802720226516814601300386590542588242134465423351066758673896660810050371752644728827253062342504818006246431668057870159979429312451475383028764662612160155579067082789403099603163318026075107310877651029887504182450020143706322455362209055588284829379699543871260120617165580274657326012646950927961418475169105388096831434372913879135156997511585047769129565897377615489811804924646447509519770359044231624274467458799643874263264257147675373723384163596213542861610803945312708458009962462888879969915523205183889559674340734926773234211890567040952144103071334888884166235333184969781220243188405507583262102128773646544558618952058849713112006876099116564585686796796648893710419895479144211567879337590161809063377355871215209048039763362402556018621175533536658649247917679123177215338636845563969011335078442379515814485648532538666203575070003801290266744929821690520223492882435213277296581399285320674324785304064759717764831028796299291647818317850896908241960777741922403444022812890906763452601414833003416122399355987156579121370093450369505813004362235708456462525899472332890374716788031570094201665110407335335543751468727180502078603462743884771699571272403578016755725172806684828918048175185804275716664452128385345371120789942149309127238126754649881315998152278986595472276684658659147282972792410569473165331298209259407202667763399789263311445795178125512519090365855916783403253553018844922562219116618836976806104408356586676440758303770813489253657767374641218794828904903537127636459838305146504010989317181522448065228848111873454552054240485418270942455251935899731282282712938134321916434278458622001289255344471898331945260066772866996016023805779537198232949355526232469180424628013534048114026994533313937668363032959109571256761486848255844232989220321810044109773749358629098527884001206882870650171611053470713447916367982638500653995638019823777012291692029315874860868604479197435729090258256142131640408033963069068326672576517843594277417495608838562983498206281484552254795386754764781828062618230538387166886787228048410214106195174205199063246636410943517136028979680822481460703004729272262744068429427159200907143983786142030758409436122410092648882964308477634680780302925452207138994300573200191566222474688075593816157326361154549178016484107198574231083343440789949378401436550418395722400575790610106840114024822579231153742254801819683649282852368327888280284924140819657108012857010306388934462321797691555393839955448269295881195545008394727566471011677794103314772788627171246577406410105562493399406668196576941120628791493070524668360568577344531865532983644610249009669121841285077914359341122043631412819420488673777494199904763986815872223028486509452734828108546215420758719075321552214194269672772642496716038799973649328961158985786443336646432866164050119680564978801604038268023596425163425484363282283118241296758862528622233726261171790846271100090909389593424825800889708947594281599676393442464173743465259364518014036279415377328198805619370989727179782747701545845565005369205572955211877891689407605493056297908864777223656023838964743852168637840513156197010445026926222890130703222798166236614083938859092664367331680511993314928311915310425604607099535511068612059222839677546511697228248333195232345035076223381345751146399091316117557332169275863305377460011096823756164981051981027579305493303317519124153050501918855211844267703256947343982669528639024782344695723543393666922776370462028584737486583808774661756411322200155061347197674348938237628729108135757671510645872090764611683230102692411899388959790336520855498580799391839775239703121823927292340113172192525025184195090472462168624435154979085360442133958187105595005218013093946643433737204120771808455914722225397227892034565219961837259029339634130608500293341715616912027933688410302135799794470629879751948189894587345870694372616553718490746694705228613209197945899687188417467631145551945155459661462153443652577119816689256943717103802568698252198317302324143709591783977896906918153505726145098893003425996358980990592244812671146125819376585092579815314923439441772818156541135997647080697375412588228492509823076125312404820720942490316651836114231829570702847930624204538230892880551103864748646814308690836328181136294871815716016087852245965164764183702799414946128804862608410867523178144310521927102961803719734300532887457760320457898440910952334045611527175152641438478133873477742860621033372086690720984872468172049801720830538438073261570008837462806363609104152970165430032273909802949475502131198151149356372567984659311655731883275270229281733575791128080317436994654319873085363509792767595661518824088260748171855037100915644639546524252906766442766134612762249132832434713852895632497835652341163341131349135845585778242178671351517635745853434803877402983794583288834667554520302404643426402800143744615784629512053996131745566353512791800365771165012369920935415148659811101913784030700531459481743846653382789307514019993227866358443821634014770390174172431134968554978284221706556611528625493507782315560572658560673592985242412301043996932736392790077574690389874656946441555837745462917951963151986570931984913373484751012133709658237736677225727351043746184186185197952995596608969767083372644297849282599054008142644404559679668975928739415042848342908745206869518084215924839339783327232460466133311288105485083504300253014227685419078076818531589312211421345120818350973565562244624460158280571098359597403575240055326115412198715935901010683239116584079013813211633453309833761264816964742473462958311242358177501487431316576609667432685999643722767033165021160427698148661440706004532404664665713068674182600147047641092904892534680894143572300907254707724196739950388781345009896535773116953510585927510538525562159923720651458454768124364866452717792510618606279404561668038265837185748212946724100918872432722552056530393960448463089203578434761605660677566309111545204681909654587484609182987504358918217444383277305469283765897455802857725729390244134738144913559813584419559969168304089359979895338567936254153183840092951398267991635671991104758687147715069941058321215062108130098642980282226033122454293448823930432831247150343611392070848118117445861305253954266555803458468226394231033051729238061628676870352973038217218089417108367804034060157842319836726219786676339191805962404183335619847264859067027464456668043359350473681676949834533600017138830390061735545051828986436388129211475842884796948516050127585860313646186208066029746151648118870616249353418735451702054482861713058316808039008561947721821229167167759025623897491822798411053021550831082524204029424905179946081346572766762329044122333913647159388452825436842349821286288614488624565735698090312363915492556622825256584284059199290145844124462394325924308533149952602298890753633449597426601956662525097758969568009432587032843665904010517886269200222767433825542874605059519985322370155883816762632430508208486719815748138269856015674397128751604211085227324879902282872096490503506952787201700939463903854613624209575007586251309722404792582773395463795711317305281057092569647937100998493060408690400586740304653067215813693319166338088539608405044298480859930275093804839001652821451153085188903730199784420068912701875169699932257637307236399907987422911253999103312274758936037426864648550191500608382246892899852417252914704031050613858956608979224391364449659865511578032172585105965688966373293095648969382917569421443519187057832944646825392980907609485944044195447576876180443518137640755893038067633411545147446910595185564576366550701197810325522658439158940236449775557148649575209132159931717532163147564106536159127824642445908279729361036667744239245136911291364846944030421369818356828197511627573418116800563319118887540464977717096585778546103982507550955990098787893437453784026922414044412621616332850522480575746250138059480504404229908041214467689319684365536455076551012126413889612478284810800471751946946893762468218182317910429663860030121134019522065537834506315319417951066690599177569010178888446320211049353683382227400572334950507900462609659169207420812414792483169611134272613755438070081473631343268645225763903390195498989275095028012062495331900477474416240801879191416579252320262915242324737724825203364253075681905767774460330963136025510766493395622134686459353614230494053666581079691384053204971889448758329873429658210219488251003361437352773885874934687489982761265898071700963243198306652382167415248512258346405575456722392317421025757585966276622159962902597851784997298120385462807046651142067306191616121524411021637890171381487750592974437234988164325510695519561560011877560953485546955461668156692111188641548908194496169540807958130634782765536450637709942027219309089699493539239522112102449690453450244804825390061373058754955559290324239256665499194563093334948168873069816867314039341428044388335563258895345921679928186699883059894157120062274791578330064174648003606324970469414737038626023461716663184572551617783939734702983334755550693031036266648519643603963230998086456400209632996354001563505358385644761143744856343177458198041251115331879831284164233433927546675152589482587298034132292879388652493100888641770787891912542310070234668863749223567815658375845593536808207635711718757227238843382801946588950507658213838135940813100690132595216717059224449664922602565645425991943653804066667924417358071383696262405243881302245089508387571156758340954802294230569774731786043372222792007506229271845285553017034150077929360373072661685767276986370544147144384396792487218524192054001862066013570291389341767287070036480652993949113112011166782029020926823561105031996810917876485463601313279886009253355786027067178655563652994055661942126548467476443995515993585750676345106470525640641255857212798264560780045648482404783307117977194019473828700119511090855775317909739767315402918482474911591963543185963467930958447471400473178511813101179378644014717605835783920075391557148515129248387549287396301891020999484434516454458747076265239190692349908770536030281860818725953353284387646466494974153622615123433081248679996930730679067507381818636717378220636486866042610854080370354801750663086513813051062297700969109142619293105428246475022498823407230130941027023958451549138168959125685946394295173850507623348258310062990309524738028793396863737543442744542906327723186067139447206007100541708825211090361175535931962326346872078779999692162345175663321178272465758981774758164418692194097989811656262906517177338499934476226123302860582641571972018618667544090966534045001008374308952429519011373161526679013672907464871860430402780149292517859679809064107008284311707979698076394131908337014422607459442550656424633941742644518637443745833039424269522248604401949402952788762119541586235307930541684142841680505091530512849410135191884402807752492698654355021894892426115741594838695251084780566926274906861399937198954902222220959745530764089411939161423380356556279958794662588493442540687513468095853521927174725948135408101505863053694310027271994026760768994666491798725008083149437667995578932012564945203291701614575481973434538336075699183503129616087668739430991576150957448498073204245253003030991715633434530156973987232583436876472499961696442391501394579391997398892059479264286785228179834244985174846506861598530191779584181742053750576143542495875280185376173230504602100610242994443207934760046844886576769388499094949482432360954443765299173820411900110598716728244290975631680553938084934960880722423892066486713771597715745565051919437514540161448333300184682008360744572970403657606956938400140168581426145158510780681780116086038417926855173241778650134771654643272225415879476525088749652951802909178447271416106492265465585190462652709693877980092796830249790619478575484627607044729771346350264320185656119852087570179566882405058223674201976048547923826736448655189176787232221703587526162399084684859278751256173946216754589104627462909771035206633269731596809088075202066734355350164825520683903625725521315485854033387706371880872796042356053787886600100602965870765474799475706703108921504235836319505494917749968303345883947185568833954144855171856544845743049337391901566299561046836883738191522759580204041471123437132511892017929778814571061948892821926356953535314202606992595741068930515520522682702999025618564316310253091612620175976389269707545715326354472528100178497130513934707298587576510483686432865328772434861468914014601146590796656651731542486884741421294459853206845260282226021663612663452274378774965163032337438665210906635086970839498400618979061310137569520904312875066343320870896389066652807177023927311535302818176647854719741984118554570917501267287257580777855079417765975316008446938190867830138523730736050724985973484347409685426079443751809427373350093567756431554509332933656373843836514750204994877273822368768190154070075293676772780533965230816623485621543055737638093530309095771284569825409521428110792408232859752327102769384252218645669674832311192116013158468282999591454120896206991429576192137394981535911071553671661678249678466138445715472330798505714041337235289780229424049724713377634093805670703064396792003384189835052345133592830900291974680593950434558686620898299991597709735280914143197112813038066698583840231551565132413804252502193597434448265208296059839256135150691461166769875169057206756384774585287815184740998571247619651133196922423396322990167398500746460846210581852964500042635365124534013457755763623919520065163053840748936600360088143164775441607231888036325718528598130704977266082690809369567048297097761811574086303936025383123961366410743354627743659756112633626644892063648611004803626553214642839025763703839156044140353694330714143751518056453378824551320599551120142871191678859377504122104824631554311867295552885240759501438340326253487105668172082080695359966584331312262528540773855552795576796719870843904817866021351105861427023021604738861222771443354115958176806194904624925407404405720919743442156627700137224797597246565598503974665367045455561551812971861781460190335271098163053941337606852055090491298502047968916316390346263508777283067482081751938481430842058871972492856570202782541742629914149341063082171572552801668844787458893225830554436171443141049136865516328177152311851143663351986996562738897788622135266759073976108038838866184822752148520367245998471839781404910498698943180125357874696527464287731450279944549552417575780947124369098566868550448633405882758642696655823289547986911739456243501509556067504143093062389421183022976200510490713754655865142852225326762464909422062815422140204804678112401359179855059244237824333591730695498340901537128344462116588060094637109925342394899359203747131698023887955469127792445018406979020303403838478434403491312834543722551274799359756514283215046590944487040056771161964580114020950762027696042691260687819371668804252713955713003197904705626006252267660202579752985757000456833556690034839855999707496647964719802448226319516861474212942659851870378208718023559097174562845090802893212830530790936380930021856453955740972673034333830552202462820135211019321913863092596010175141138406828528628839114259715847462107353319803243762610196093631954116512377988315240616276607867142030479708857651975526049410042976266863909096600853660021721012365242628465327708480534562217821834987237453775116746754656092035614086217023254881841713314675904244550931445108561357463346049617317985562703995227742848205325650563354266365692920036683722491111434589084442852254336784097907317653446725266897406658045716016550690611176538827378289023068976649807913996506242605079570581957881962821537271500514688244273949893400568089110811137069723973765471014340027028189975489660054355336339009481294016641646708793821070046189040605751404388029016476438299723361531768080087210273626012085088495715093792013138706506089384196945900296345274942517550995405671465584754530910329478327648971929978595278843512386623372587898658739801403495020789877449190148610697239284263205662928975610769859366528203308942684392922635467301349452231905073984056771501750341536663022301804001846106670488370123271489569541994244776220370839109400426679525580056639055312319373257224169787576182295002554482181177719655396894201238588338386957791272192557834240156069431450913207545972244804296684441904331064929843716717623699185758071993926960233884636649564283410262952006521215348252401369733039747013214566097744691958775131383615461020922082993215052500653356962894051929217898355001380942018307208856265475718759027603334892904187793996400034483097601444589467914154349360388246827922248638947953377864364051378382190936724675811210076552327984348670913688685242509321478000574982409820353959249301985989505498604241959827339408763583760306422228648929719911793574379768800701482763490849688122630535324820091835829214819923403055134252286083574787366752077732034101957685008483147152345997943081544731675519443472409466030162268031284910910014784267080159439632176647218328816690953572548442184526312038060279700749934936497272711614384710484874640297627962071964607092090846240454145378093739731566416818148218518396606465926145587537036906492890312080881124423708144877314494019397289344425648677518823145523526023379654344362350656204803673200967792978286372181479347420154089105566149387674709448517602860528001847121086817717920009472110364724149825414401346921315817099037561677682964348276043301865460201349691928088857284498864240622864404358896884326975350751874493073175765776844889745530380422412440748008567726993632534378415791730261968043782103050710129308280159776655630399399926255851477847258373637233812177489759820899859442313812136812756451934849090914303546982551652926848538322157832303036845495277948861247422876585291741174681383406838252352783594643591706724885203745982009021159354541087571264283684473593740857816998831075077964892529558720869024001354917187291220014985609177653142957295480291774128697867081212073955760589797919652785459438808177295376119694475392319187847790260099627188613519200619054389326727462907555146069527441989684829961062697892926370758107777192671120578717276430539366959913449184801581114809031420184615342843162939198721096607718701876811408019610471808303686523042998833804734191939489038205183663063893894120856355611249308290424662624867776654481885719281919391645392316198353198827107540384965443148952935238468643493798670873590629369543962813742571480269997278748159322084674354089462359205157737763449040618389816139637638206120075183676266318672591773010467817355199855523957170917619445325863923983667959846511414814608082484583644639586615725118819837223969006943179720979548193671645667287987273599786463032409093591491674977008684613228987897551389291538012835501773866983448707170659731263166449005982308723100211181938943584930990937318781670868654452748252839902462127139346740478623430320423278625523360639437022488231697029206139297149590681290274673765817451641324862733011540977481612021094368311191666935928312206722663841458615274340622848330469996439853477158487924381666904582842254396367827289665751322059244168859178565120820165340868661536050345520419701230241222450198388088691067532042553054620054106406120419969602646646154670085125629093723815429948087914201736903360611380290258612951258867400961322357302452639970813712259736007027990492681955092194744696981624954395221849771449281198559184706069957733082026767574791748903026664918797000390222030582218855286808209134736325667894522959253419213521913170136532437592665858067753698758481321688072721109095026529756256013430386560653459104436726721903824534631503853506911444049247634876238043716983410980330528987368335101000895807313322827717597975182066816645578921827816181045906329558292530725236015292985933227792111616160213014418093235031277606387520519947994759397367973770246914287817934093798787524746886715173547097642780570719728443297786049152705508332413201689774835073311476350395476756322102282005749370430729920350679186700029759533628754956146573018989112416068657822668315441613794476000741916745819043831989798829305405414653913227762965518084302010567017496429141428478622309481982525997897698927835922077912542462434097884667294671191024137752019878287791923428699399554499473529589789662195411243997565544821872623679080041955842014744116310105081035258482062442718416281582343133285321616786452951940357345040178712447963275322267991017749995387743702790087990544611261470547014305350090204933327755278758896925002305324034417262295973625354882004860643629447722089061705253379214922497669036286704710805417145107894932009449485704107125608415796466874741227272156651649265489554204276755903775917623578775531127013080140215251496205777195083721773514350884090123067573283596687750757420094654944840909391097116823490963139171348272775095496097345044279751520868794910735709089473704675930915912061224240979922190038516430497239646479024679771890006293426305116271942268501988481602868865558324510276255552616070324456644484130442120558490674422994217077040199412522144593523686298209770196190397230115504871607237610198474371246595879623701087287785009413607924469828109495690650466850703713316284899507646672141197456265985135886750769341375148443202063648660984729503817732617575375266027977071529601935095146138067437206960964925211379630029914902252294966712782925590463152133933787520703307794879132373126319471453343409770679524325944757109857983472666029061868174249346417329108967189974590325843439696760336497489681017914794596328722895197859291409434519171409655500644619383287616283307789677309580069451523757550350369426357112937666074069064485300250086311955558706782217587915136237596494182330826781203219599913917703107315555424640049342557567873084253941017982524605334249983488540576620111620494603730495387132193078348092458655976047505561652901600724861879328085432809973903442824431709197186851644821847307127931966805001350221485954236225414529152090441703940578044379431420741434889237534901349896013904723604461316117856126114042835011880758587796089670552411183750155905065891434590120893047472361979397145015931937228435453189329545047730214887809149983067059072162458608749903200725507928847568102401404577876209565621850278869392087617790785363956852863107380327100164094426506545691315341605198338922109371033669072440992597611894318039083968183622691127177081665718927783131576775276444077199113849140780069035752791918637110432605343499075027564716122321003328751618273604992945496501125860426512072272441569842639476683421795255864243212094545271859308036468255963932915489725590779689103719477573086635923020356412030204727224775794052469195255712263635713456482408499051239129594227420939661795473421724867533848705395421364648249133748089676763884293029562766133906508808311417199140006163729259631728843156976973419163920967966889656970990763212503824619833700756971652402573688525935193273130075745509054302492640539529206245760441326512030063835039163154192808068241881115950629397883266035299491674430140556658859828005706204414623315602281353399199345743617143549219140737317637545125791401985405700581294567664026986030849123782579888496760372711862439039740372304395641143499032911901143807673007462928306263854466262387253966706097813718517137951389171470901450573905394282579719247244804212087776878002011380200987251338354683143409253558724200823995324045612078636317743692520543703532134593231582879739401337722454007066313340864405891082843005315278439897786510417101292828349336509164561779218938909399542144997172114888638058910428316607008783396454689699705268765617449481134671106462105871860876866148468138122005921106425420933584164253769232350387195857806918967298084396759412460880737085186255814820079525956684726454558643234639029445361200285963581608116464425268244896757239514660614800534993908999364016943821576973323760968038685879978542268969024882298619979956523904245188798090849030708546963441651979644459635733931659400497940802037236459764322694209654678031447573027340130134166967811668046922713415651393505288314726462912062882579621697643552928918699924731214489073203480859558662653683390489495374252268800628622901646988322623214804244947167325143121975339487987988778850416334852083098909769041039622320862111323854807263285978243442783343391425564470076416660950455199484940884727006535600599086116090116735524428612899155010794879589632972074882988421211074624211386751389937056875346333427688501943038168887399734636736676790216784060245871985782292621741273087348825421912617466895004103811448026139718402154182038902562720006287184666656292440518748462627925016503273664125955852492764785443100733011536807850908465846851053010615387312752772776192496891987415443377759155424033210819489288972684086444170334178375372173009601124858023607576521201578731417370331611212519953131738450946895088705830435824586013179558347203749536122817392483102770373691657893114462717179639764512093872377646039489392352780156796554047324768082010675527781586667047489403515542885349092759412904445126220878417451389564884930712628753360051208226365741986473890535244879728112795984543683733055364321726163121634700859244162803871616974541807512161510286518621666965055052309927498995036153091012227014184978118022152845874975737893127588004842659447469254450143686232475035687747247611057025811704034481949455407956968328364626745219716511176067165420629013906369558288432197723672045303092531313929211188082794668718977303604454417387495895047176630471301614655914314405308614740514383878313308937731423372841410783735240559799784003892492628248345809410662550185442586394619476811185843348211733624095403365757088123895913095735548122313626472516776184425207150536731087380184050626105644482684582949356212325758495281678378485710688468443579512573033020094391965951261535285519787057825981747783864489161556638927542435608557998151290197455280951503930588705308816682297230672923963789685604985476748486091624137625126778030674271947753586935868839314698623134796984523046100024256637757880921289626433080390981781595387082874992901327800797749755113379469222496095550025543983168858643529896610341497617656372587227348324447754377239165948270251814383450422991424052207497847473859705931058324068153634963561516192930188026016609964106925622873461469953877541245624755488492849892543456476733002218787444627266558410658503512705823588239528620207164681633867956132347625087463660469396657453917783266639064987222428190706051650351862873507054349874640720822629805987042597903909046873652871002146140971813366187507988067476411093686203196827725005957351738165077846947283468425595928039278973624776891272532541208169143935597841593021523316597897079391646492292413404560874378898698626175780290958741123246826733700096938930506423198529623265068183289112284201618641734095269567619483861285335882922830302971022657393410968624235123138062171320663943727785113394989105321340728075579995826410861925945808728500480430926016449395812301328250543416849766489323901334245416593603706303858048453665954088270575800772176040290704950847977310674847511031937138499437929251723356561161123998132124500673214122615778107706923264593898182710298953203907063982260681139950040764708125387114078232206200186131467500943987135203620304003397991058908015248038990360794473570981881345647191046985530297842346577297350245709379096934067523108794532035186480630885740588824468057402004051641915461878555413444459362406294489842764305350699127038011191459666506748712074585141657704007795735436548935087550948372343065985580294678620156831247943667350555442259423577264186533383502227777073772949227369554968043343634073106701729940525961906765306994673657949464664192974947624322648996540937910328112029068420137788824500664091982627299341809682731192865804408540189278591630649104745391857814998379570409350835680782574359680072760166353358337610131216504271672599920068863546775801504535056944611678544069871063920412544430921661095147365936143138133894700915234519677578679925832302865323034570454306968735229629001982948968128193163890311014066345871519525778826393107282201778174262408111674496480612757676124688578822171461113088846737746452267814487536251620592923803937685155538894172493114342693292843716059558722504098394572967272182672924417309612703056325529698003272536655563184449706182633094459435825154331511156133968181768163441892321736866304173890371738905132644001862314121631383834830062656353401524914751849849681519745796790203224369944412489610271000881592969465947702739868235838400526667572516445362510006978222538099205056857278635646772523476378695129553803794282859830979363441050678027177369695439198772252623614757636422543721841579830124181904266604585912093869907375155379155173773550242038013518103471585494237999674307784416216885890190760169251209139623163222040241635203777075655321129374883334532306079243566126166442221648404514301528927245580484442901411133298696123058991614028157966395961501901600395354490018327757979067747068724379930539305245978329911353034631289308428801378849757868941633469659142045579743302549404745790261842853964135519739691033899139571447534766229530301870049497832481914611181066681589253953487834435866708200139593523979106989445464556774255438095225870996164239601230462620066142188366484985112226786287504927707686392736996890202165068606689191005734330242229798952522725286396952478300284204365893210772439950646725536550321816324590371910888118861497314925002818645174442668131278100665313083036266686240990046583630678290232729344269881813402081348521159546288042046326409175584858598683285181585866842163313562479745932000336714647682067532540213475577251737777143086760043586350117397184619385414177357030128975197973422410684493447628862653576499706541302669102044030765985132599593498039252068685304460967333689112855073909409561192916195410575734157593871875857688894384222293141930111026985964280001284303788901050804329349259377450041726378772389428423837953180022912489390272139117803919830235431499074962587934358977211442024987504671930538327503804673039834519154312823594043216887165511444097828979849069698867568409850029680117758947885996208279169501484014284078237396609876743716791549871542275750823085478148179246857311144570662921862393343077925521859231452835555250717993171996965230696103457080848421868060188841549009412354531046984535830251692052639378495105682218074364741912714465082160715515609037458910488852147941305508340059931022991730401593414889327804516555122230295604075194396262388262715264587923636711741709639180603054346863559240421587851011908172192510062777730894356938066254389927854821210762552119839151237332918602439838944752651226675444567491105760795914063285961158083748257044616116651051577211404122411579186929825699017281658098309284439474081917048518069350387743844712870884168957640758188242064012758678541659331276075841001282897811789339694089952826587298999325985767713881021946373269260517160999134261460793674895254221740179214114208984111882132024520190390163135861755744336364520610425432147023916220889507571062562126218829378660906499979598721954636407183572654366242858017494998621244290133631001485954090244913476718168373467820916879223576085891066422467147982424903448680242612835542789513061841779477389956754520127269336661666626431803400336165664278036883573122619351821614172140205085793797594304836442947084246809888800370999229509985206761425268256078825372276451844622360622571993418121092521851974896272139925145286879131480456200009321151452904350199383305591804474737471434068380854499971319264383979727837744080581928168113579513393414223212985567178616217381331834010067122909348654783922947837889745550651516699833719066485756499287076641796192439592002756104573724741912045081856138812485749494262746030118176614406384675640492893800534042028759051560811412360402297563417353080176450172866327143525198665803095435966429133391038170156665377147903399048569517147993605837032326113145512408872446668274540657604261591311794339555355855549716625011332033591771304905996318828827138148019291028656781829342918688186006401226028702740904353587136854774423569774779193914420684841234748965168398751687690556163351973328756031404353542650209993432664598020491959406949371613646901766100404971687327389742198082846383472182830857431586441071692412181504118259836207838989636337674853042907683801672730163758630025913414432392372420856718380185928254944307639805128547315766044446143444346678522299918038459918599814716383487204189263413800648781305086910249903700667155952846628970064221713096963359898140824663431589798752061554193776697629423888974917655812817472981719542875258283392818074948105806873313493872192385841442203823053571158924638087784678465617196106928268097525389858624651958028333078230434063026058904727436633168693966112749908603593983117875849777233505459407675866835258791127726069393864199123607483965879816565322417545989934920911962757406057796861948289346622644631868436223678262000541648189150767956498319941814535803125394826079848374069892300005504309915796931596923727656688223244954974120273783924993866523437901062442232932231981391724254920848635496282320442012775073189509686635113163180739027289576160973101634103692238559025413572673346949745913944779126018583327010539261813538772389429174314000741771129789856557729969307331563686701339545732058975488900356990146991419996700866327318033642279765685879291661292095973656599631593648078934227465647672853272446451942423126458193726379864206497073095564420172637750889132528089879144304821768408598309638743268557332430435651565120105984758864214960012774845732698586686681708852873056309781039192223460275888708167914349436684121056706559551168392793286537642147799705173693529775112810510834976458506205327996163332950178167520612690341307016488829087736827204109784331026614169247999156589788647439173167076404334606372759239153364355173498826039328869796926393506134617205508294633415530601211496926375148433636469465956490000317693240950561413003695663458159696130758994900843466696465920160378402610591317921742399866826027353017971571767918747958447209824725692292390496030264656930991972224640233533559444662020198270800439878411874220614500507841374077553089297116499961361685795308086699209098260899737083944149474623090154536426808155889790719938736800264108118507808641338942120713186591387162626801563655538998162376762555512191804280642412414594164362541597223692235607920469114247284819537319213721945673285256060612160857966479710830716895454038051680709036728129217793321174250582199213212646223114683515468258406792164592850422955670141334570444344024017536328023605941703770373889442144467122559462670251571505787458075324922024251390393727420290288273429049563787066964651070572305635874685899205323597706240830915564446300384454574104726206283945896929530948437435793755824108153979361304991694077792827706965088533972586015383741590213159538261260516750474871354792636182522902804544492764049119930917689098940946913908214298279591009329931394439702210960386407417872254343618964512275303052080239802797021680528272401945701072447587715528762777460269917918740366096269630586979937880021897453305185799926660490255848640277500758278584551402606710933109316539844421699194987958573546835126150181246396819087315196224082817303640243184598660605828172334606342573953601925526689515170190600297938140392934201868446400222719642767663589755150869316072671048114126399333366726900650864312379909846689854650493025159505666790492345123783208518613217928605515870694259757380760089068249638730375074985055705151589367372420368422145788005553154549763846067100287378170193638553861575438297138684278023275959161153473137683787614875494978908033742619055706558860799487126639020167143694694453168319263857469882640797834637089918081464212937973854147759289900937510817418223002089686348640389806799824223230959096548617314727819907001050966823810497175245840224678828527575047773544849757928143523315287547501142314297636489400035171950934156469899567515478906219189496052655676828539509051916673906583169951780955366037033305748025275047492597477371928682913023737685569307357599127784104192217595862282481804105949344288519712077160001063686149169750428051397519402022783244101642897516616632807176616367935710055485548025828536125621910098937108695768270846279595550728855590591868089755825659009670881888208814726928015708238662151170787059618352106160324024533203439623918149181358038563781327747794273184008970691542620452830421096842649620001105448263308306837956644455757179277343326735274530144484604418829498018719638619198162177962848392934507989771959100260156650144625771952649954149499621448775166180196131866551933358083553034473628897502816925878765156986168469795904117118967124055386041864275851352378809812894865500861443465660953731670937520695239027164714636557702945565288904173008662026144374036597394440133961181475279773705366751114524784244891316296770247728132910591511340870551290955084911807722065898715497663287492526450918696829773656309599265709752816147704496665135950665483004813220114923395883766416843862787124791855484939920831536612726577876781019156814540935808718772097578789135578574228785695859565479209044217065821147996423190273323553424629316156167998832303289578151846531596949398465208581250850311449852289946658695828543101646630916582229634893077850970319375667132101518734693619652861694183982200871042045827353853347008728512013362084042366069977259033032954241684302811875764879319176731930716892693394281176865792404194775089911365149338142424245777377980703645111809871274828781058044391585747506822899824609898760658074071664743378353596616641645708205320585832740070366824886365955789249624813445262707114489494229527322084038732040571510412625204205911399641929508699564725342907909121283434401320730718214290801792280873372352099874966876858395369620487402983029782309643779675955952906079956173267462293192866759917058461091768098389513736742027134644803647931327182606382107271714277889569828358929506444053111941813810006165903837226961444098630507072551310504939996406141465406850234202178358052042128357785442229535102542597097279424841777578128711263267868708426951925255721691415012690449732442889768109614008302443562450137600218479838278672034334983411134622046020772847642099725798998802870274165374526187079462174226005607451661271775455555276986557999335480718558661596718382315231035542516475164829795382652574306391495870974720726692652615007819681283141794039052379093686225651603209741073801237130941454838765811113233969467724838493551810577591718666831359675044990577750874873948889807487856336098594588534707296825577845413291653195743999885963692719241895164724933231991178517458558102250280407467183915188455898143876295161846761868558112775993508845196754841655654967709751966804597623205397725217800270632729484611377716872568552183230124065256706943707729472669039996201350518459450806720433730989549450439782578715169565643620941933700218160738656178074010120710260807290724522982783915976030376229236246356364471419370058003738493778421645148990392226065066075941554640269319748736175198609080833101701247392108994377489886709214077826369415909758071060671206761787177530713255415867210242626821175077052503083839631223686416032509712790748630880867119023170902629963774037940676611538095300575150863403446850900058028285564301145551853924626788030375185958686880175655805158320965482380784322498977446956285097286184054062684277935004579467532036860935976262080569620881663394846493514060856736789519328094260724542871844754252851986857412442999679440587987847261022318127499559504855089983191662269216756228969608582522145835791364125420230784989516161507193339698135216384131121595046624010131623600813443388664550746213539541035533075221004251375334804528436612218721881372611009452454160444413806575190907012509098048435309243300324412240745356318687639100053325636248331310397873402510425811848659288969835455433948251932651734897459860549647443040775787101495578512513579395296641709629595048150057570324694759615140667721547813724849603200657748841554351420618414684006262835577571017967827497258357414980822814649738353100721917784141449799690258437946971752652934181986018591413124734390264989729991980561679964444729098687578666171898581815887149002023545083641770298301375550820545116962318438608904256279516790106778603115177618921638880675857577383604290807632660599187322973632081322078772280855204009922915320916474085557650792794017932281064158343879429511138948679248062161197724254708666544791469962085885276194818149587823260930876895471322096328753782273470621701272500573342350960051704576422370800830790254592017922045680072625640836918070902909461107063154636540140153994519490005200682486969538551978107112134917133532233666761380496074284724501950009532931097607498901098901860852595619213080045415083589319127425541596964908874710798228404934718413273137417800781040789679535916932089173438323086589554162211426331480068931290597065789621401528262979721580095115077765567102210337759583628826399231466700960373889624973701874108603572157537965730781146515095903596195305669507000161373312292051616806756988958562270783576402633210701331562035173002093845027239459756495657713172724637559214773176254116871105511350445993187589639797096189598677117169291178607551468781463781680757498192672040600887031156438995977506211435951146749587685328881124115219778029201468257596844847288030267088466478269047296316681393952424493749675029672363491037382988168115014799986673225676737303398015180936790331311149347031976155055173767527172611676286847538930682350236296378129382933250898209240147335231620636817229151340367992680899855986686456426132373769457500873485677457981568446474116721615860979450641144731561616236716631752753051386557996130806091648355961076881123566764601813598907179636126433632351713484817528124669027758076577688161478042849530755072727931431102903468152721254091525731807661559123442193937594858235125274016724246688947184870623718750060314023931993537134263479719465134770495389891655820737720707200269249918602043407337265107497987399382730773178291316077778661443117899421994391133489457325925332269131166664200410175855296388746504332399700418971236290316362115467573476924972964100124323682567801803660164413535751981990904552387385791223923999381454073905436512613126118918956304863774255372062139566450137038350632619154522767277809610078978147664936347014714716609144362926485241762370244315747876901242687128639288476505621507007157449045204437427594623433710750239320524240303438108191780645294849462754904093215510150908411566674435915469560360718159322042192767525394582930606664860494249009393173746554933463896032521367358184255346292098955747264263315756431628309604283648181626733503595754960981870901484269557140985458050050015955487293284948500441998016746545072909440732487263624520703402078432092412850911282918509600105928133002784976735435778920217540375265092238663814295120697584493880500020600170709744866935400549794436658560155191040327715618571718242957427649324476143802789400916697804626271721247589945986873927238880438481883372037409375976364142896010959703843004057785329235145008444437260051273779794374981392867565675568535486702471497571594166186747630081164870504266381597133289501614275020452744340160503089732288482215742512495700986346111080218661752680640549623016473824007828660902300645565764707624703320220101577043982694920001624609455240574070445718134003211726198144256597359780604334811961220339839043206588060457911585208626461138840589029215399379669838192531672550696698004185021294248690064204048872318865587175097108392517121998541326574067126874849906239049658073931840407239188331666629083815951726854119532037049079835577191301612921600852972436998673148867961559853014953117693728182731513099863239005674336403626229411305482816815937772643974772160237181686056677629021362166761680181343002110238013605497178107846990947791717181958121755040294868354252840347037536129188463386428559074973732983553221907913585776646601722134049138660082465772700867812046163105129304793641637889790402686444044131512933283647301257854963413112154552648770047018154049521487845312744592653618072518172383134132217512192837621310065855032109379952775781958801371447703223577701404394317830096495772269246147371070193645645121166920051858764359827728139004014451209499102905231018947003502975230973189423885550108353675550734088779593167311483050117943459654940267810380277346455807586473294133576949499944367337671119489888566299302972977090679431623688558170554009916325596136582232845262877392684254671276426109553037659902962463018506769082035089900568225710986258358241720967581456701336726629601974937830891884014189782863181252088308216667446853797750896569845156158946246226617961882443269685406548503084060451783735001346898763542085054783039614366831727462465766866027492141887217960381203791401996109125182465367888932891597885383220768051689930500804803620517834467644975754712817369184483453674031803575642915227053558296508821988201290966282858361394430595984153766888444442293555921327472452747063221415495304469774973997499939753809320717752018776066911432578627266439617513182576188766337875603507508147434577887217127514953226478613633569859047211292303773927810913827100909146092055495920412574191731146882287228763423847467864994791059464085932679656848365467441542593336591454105471787420769328935072401956888745310205182951418578818401388187913750336833015775662629400131851740245240667961204017598813995053776046306060133723848625231180937164488912530329725491619802824602412394890816991697015587335155509639811372737641058238897470726737839742131803963184228586948555947478917651635366103391700231837237707886283810044796590631570137483290803696836242033638788530366122973629849355378833009361026795875613931433117244717437593215906606022276042676771489052420310940556641363427193420112048830826422024908861434119627798262517215531455758758599921189730442168606883007623821691973878672722527668670839754185176773693481477835948270425427965378084366199204121776887219973978487207384277529501765993884596894548636224112992581092297095239381345207451235505982712091649412578208647491576846927457836579094805536928654890741895773637808355635215195512233525809465522911524617357514959236731266774822107017264257733175456672385680831422644267284892578331250434072950801692902587804489308569090301507163278439430656524695935998931213850510201705317572601175233013699882649083552693956213385515121762184321156056285859444819022750165287692068499983563714607669308211359379954625314220620076795155527760223715542421336550742770253231959604282465131260292267574251398946925239011178792772741036581417151648801886703182877963301527260354847826586473290894017894116752590884334624731284233167737986658857200408737262183767921413405128412395646196256450147167163969946978654587353472502711429789266073643791624904489554670844111336367519519527746052232394710616717960996498989415546354420414133791724355514662295322002423387186907210754224050878512552456617927195956008294792585929581040624724700432679546594687193323750410175267329292727486623650573829803641707040705759513836955635635007872360222624199686638377515627167236130803395884092301984779857074894498248145706479411236833431532727258986790862356905936368624193813975717609910836786478646942032360116382576270949289181015116329138280082395620187248563394374862577192425196374980723642731855381786178745592390069146181884571468279981179609204978381227958211325671827265903576769524310364032372256017212107163626234086454745911597144353394726597716851970453435684795038447631863818268460959692262558160561097716218737117754775097762633453238152636343625812361759659780068704674790351051002846297106914055685829733279586669341516094076802476110492057167291970918117399978917903892327688434814418951133034872825407141254327160707609556766434261989319985081667515355823377175675989962783086440583838729656191526338517228440639535912800590496690939149497972551026207243128251535040239361950971355132743686784624135678918746476102536349231453107606157815765636560631227917604207215983284148973715769801279492412881861719541384654287003293107346699182706342811634133180223201483289301810719748940100286513372483798478740278876440930353892084575221654656593130511809784906516482497462230677775964178604903775765786583930512297616435449186851634464377722137303061766392008414856142641090901941789482555330178077119155222234209871367669316390707079740278189042051296113013066722846747263853683401289601455044036253633317017583538150432728511308256161204461063422157529375119413754353787602989082816635848676448878206881127268021199509961846314595314080815628205418509539842087756690134937255544645113905520378212610425764082139081236408762468234887840456567670446080505848170211066623575762101708190106273744210221036771880631079379448280619278386406371643802891622133996037859179449405007435017678603031221468916340202620355082131383494436913235912148269723351996658578181215240772316074549612480885459828931033727418463218283570688636588803002551865474564996390266719576812369776631970865987294518566987283547026926720164153241104282529274374703962341784061119546824357760636536249351151493526376294578035551020476773754014615690637892536734408540627063661064882162838807883471036414349717722186461524264520620558600646823999542311336867816579527994339553437342342686873239961850219955030306454993373152122947308939075449626322353965599471205183536470591972067753787971524545814873019060395832385952531439853435797960976279629982725628717940646737550695691584782398353005100389016045178007377995588570835017197252750911594422558158414060949607809186732202932254898642795345354226479270476037799409253871664653341168514415778555033129519314671800254861570443977243262079775718920038348503626857670702845201945131315977919105487117091741481489479751396497190981380098924227762585067807162344949634355834614657720942511722478762256588849904189622709376184250252189781077129182774587893708514742955012615749249933391101213969571474737542126153523799292978629490959075228759041621987104054365131267669038424980926544103672561861388397873362665197426543578483205144446514209710753318224404837814859412426564390815688044515721338254295017939025752404858957491925707758406898758768401625375343551956865837480197290536577841105435723059453895911545007428471447652495763086560002929295176313295711953404139394822140821770599244625517683320214480000125614850907732782171079390887859388524146932575184356946045969024223316219240752635473319718322852889200480832118643408158223756328884436160269649805569126896043578700572164682743898958186723381967272638540622894369165524328051171307553947923863140396927629034388398224622620469169991355025040321640447594059914750137875085048585908135848586956836457348964604824274550830061202398294728596881602815486965307969102842937646488956765468437542460561684467718386321190645016164354209275949784719890737736266597657699874358769112015514018315770837954011037601577789444094227727852470332644113708854144375921090699384458733131998131864985252292052206001356416970012628121916140939998334097943614306348404038191427824079279963915429744080992584224830444109806880927674407726351851750264919232047732956430968256069976623380166126923321655281064869904061755989678784811249575717802849945513271065077579500078138874926534751156621710276641572829644021162601057665568355775288236146695093038901050091751510455105889898351145044580124814937467410762765372080846303269971750656792945194239622614335420523290922038111164222954414265890982736554502022936732283913841771330481427862087629080488058442594251864846485220478825773625427040185622121059401957782561327969152008665844456908176847207052035037285818525350790305028678250075980752176247200780986639279422062194189399314535434591656476906278659863650032704102213141695316283337224433254708414681676583727765403922659377042368304044453980235177905582485019857563075925740577015982811331735082802937219281243156600522087784051588550946744630133599423486405166291750929091577089327146972338716010072078991851108465920566457841459530799766684607510022058305861554280834239228650070256678427544935608624685248059072653812449911210023390751296365499258936864740063621418892209619219313317503021126823459076002649113458851382737704003392954613972432926775019557829249915829181989378913318655873749648670946039091064085350845028971796088226289316217744518140442356778985094301257384434040032860842159183997639547413564377569914350984086993493824457648290391666272005937966570798141844574031928596430694494708427404133195985788886445287748395502808575511064394531432826876224313271729952640278646533098713997190191818885826560637606300496514871703403298000946786407376376119072964743974053454833344367464022910574290618890750703154885911802874614767414564533441553178099345374064227984302375639061546236811720712029407475888795066530513237945336808721092359682896807294226940366745256545687849407884848049225517461673776437432854391380732899643669790650145175213413611482355408955335657635722585017623507347161462740001651983902980078806362551491111589873384308157249242896652347263411469680711258309431623243516922110562194858067782812371332661990712141162030516282418614715698296917318356745791239665641793333623974147273263939445936938315565402751572456210045478081401294370681057665742492925936830424523826427903246543842743825605224225769197920923799349968505998308451865418919521226066252890321004645900870219658106246843488437878552297122918821819549158242642731535962114546438015456352169522127554214846144255387491202699995861726333228183874345734697473135197785949515891331416181732777971509124338606541929882369016857558224104542833666571373974280832198124008608162543176581938224266002644126308099918113295515912520271295331107313732677030257874811133767396503615462641751110947315669710655255100856099933670988634687794351383404567889116065304444646303390961506873099572023132340782103992124644370258057836109959761911377203821367978318527441397699750193571100837898994841816686726355670021513861328927556154512231827206916317202458544663627547115892315505983604300513668692472621736616357118899032460822190614020233464235450384497261014187684465354463885534954397694489423147305153996059149342540914226564770385459213502637174476737888339205489581303960399402836450521042255630771491803372068894045867430788742530382834925746676372926074337282649626109147436150337939124195415251368768237576483763211438794989960684123504700209864929206026997807707756034563515548522708700752771602894179440707726584866964319904847236732229900169374400178690716556126013279422352558556579051040061219996124096777976406825805029162948483168784719919181220280568767386745119423695209141497608344946107762775427062428944730765763895380167251962647046135642328245184231466570008753139526418367046435500367014428203291841054871041050102594310686624961201247569435699287891445223314201401467773819169152333030937664523671426147244140766513347489811288791381152167370519310355996370271670096788352542105959022143000914916934747622661664442036605553352415934035577002012966934811254552022332421820020771706751070228428694899350267072967900653563347128302934248290206907365047434296556908124057352538245291704664746874714900150648954173248879556703753135949272928975369392807174714363560721722482778882270673046120811225433949275070635473439462470467494282056011835625124649673743356293022809216381240457653785591791437535092054765692140721202170230225385879769234981255025056276254798177739443602326454548105630349448121098878910322779942178038689661678001978034333547344478691288977765597687172908986967046590401552950142014436729497860917836223872406661723980781394863708707082620924014119869036837289761086564859858085050946765916197123930512588698750370416085388789128757393923138354226952276247216428384945330643015919148923125795850592397746099707919663385465589403987561849165322179182709319580148671402761917330470226822989688864216192835543302969721314183925667785307985514363480694331163197783928748720537293513625043174806047512891604567620475543655574325576996396492784577504612216587786591598529503075662133699766234141699687849572512459891612908198684712885155753873543610518159345008033229982730972589129528240010973545433523059871252738530906314822657162354777364192624596895848035035761838679655912502042921142447085118186948862460551095420239500208116981697460812872128281534968778852194776409166321070671602670643586705737299283339984498965949807294163225317103615922971699646496298027599073502801666652057698407754092231224579235952042863245270799908553067148565680187098485959715674935459548399098428172772036426074361183328667410356131894227616388509235939527725884740719535725443850798364876154105045225224917680427133698496099597653259625208226129008937222719337117743773905836181051043916034037713902064768326493863653757691788246068835370912383199214987936976904545660809180318138521085510611022895021765551209903652637368297937413255865709354730486375082882594427889260777409805161038450214451428202004840818556299591757047180224230359548340709733458237009326903181365927118731945704241126271558127937583650109680468716574932254435186344366399640428344774865167347205768149320546527651308852522102145402507690944083212811734172849187046844613694024029966949776515615935469675751485368656303247737987299933487638538937373394683071184715528695127051385472040708686614645878394033942308626092673935699490491577216546163028258171535550134051549900475922939714654209236069993196977336115938078781066378834647987207676532897758689917450218558811849784176286050010145934567828453429028187624458822210278163069181176648967548057946320348825001504764850173389930624110985010431503736576469800199501150499034581148374752566661238335585775892898113392799028413437764031125433769181390323688489190167946456868618490339155791402594006484661729219035024706050095475047358473017873675902835221620887013858453975860461527089025321394575964878407569446265126517841441060525177774195010691910182534781157849764827015639091238366266088986728216933601584449897545555914371084739765814040430449258360482877841216322506291889288515205879199410910098319219246541005319955371976631142690067916131939301159774847250202518569550867157823529873544389965258077399925314391768615461290112975144937774612844977197416184931474230284866623460817982848751513498620792176979460234764637730165752168740164918400450795993119028062088632014542101016413321620477545636093242417095963672546090706453677769676353425171132230496160751343913504570601366817221614128961421617857365482497028127046898448039402045727239110899252534996949668260885185256378706693587843163091847517530044358852867584295558740037758336828440798554223741605875227178850504385084363536906631912767669751026798431510109660588379731881406409229490459729603589619942292318238759851619274074433469004203832643257982689710600031844537958694222078609454816306722894512613013792283029484463124563738756193478187345793896636417628552121602864936297425738245648530503525724318773664463087155968258905822630606241308704355131128037177009773685263004981866892316931865654503317344087270353485973864849263966883819718092963078064304904311812032667130802146197631667873910500986734848088563091344163825517302398994573629414907236744558065775824176957069643712910569289989240893395630519434802456742899788550276225040201436772263205569992482717385031010097558432737785143677523094907212786148311895161868970013181490632156465222120184305743331802926637024977407825187329365325786007629844625120736495057299482148447982239562777067254419269604174116866010163948764134859116692749957422496836397026761024683043634006289031704857771563317850324812691666871293484661956306526148596961683426803842927783782985870093897971741925039367622501733997312227410742307394254973548769859305768070626901691052818437949402316471223597327382099270180038219879386384258660615734318661808029600239952007897998879169743003843783617179741559712118632442568018826744478364071990843297357196809972925075105941778633095705380653265176364919945597049464747553825582085323548732082496945047431891098252065231681160477231342946944822254903569950650713680001387126860734934062768952584727289130278796115658924497242147686370372621665601879228675623961365936507399619111112341581082145156588960748252319876683124225598799812969646472612821996452324531784956870844709452041871783872841415145032152138829506791923681416453416460287231310609419250053114982379624621932408270589340976492016799054287027881509824756697978100075480875297133444128402263516291627419991559475201711074118330721839992199168245394036153355471721132136949702524890952334419346028036493306297802821143108699150111155670327300851866221173490071956593478833316419170907958944791231918439498950993037199962910668966289999049270610499432743858896794593571524879096708678504322382640957857481152701930569998996819300188118460747236138511308811292841624368552758110520720390511905138623174538042849573052536780078390442419810016333024734681273317223801333526243790940944656586798088726651367483439191676025352886867690284852569088671505899894829807904883538180237569789057349167941964127327588079175662741886160974826742508143656735435208779856724686191718352568204799721970237156188293222597640096522715064365445052849382345488537179318538220987851017448085296380484304896329045891500864084567871888202667573388718964859507701671893610763604296852254629026462718119388229602061025179840686731838400603037341108617656611190417344183420512435150634234913430158120239082778941740633263631568072489499179893891364400491748181411276447860861653011563198130921151408555299367029911914357218331236178703828322951418772214289513729470710831314786577442586432643397064052073674766389900805782183351030079205473243105477906834152089337078774743696279041365864677582019875706881987741145822275930558410175846562296308026412224959039659659019505645476825553021504019862162838057471961542997246515199066003225165639473919462022280673723564617817560933762159021565595774912491893181126927479635788622255177758837241184889722692478242952722543349409682875297805107057862893147373972174191692958557510501373697970448938904719959049469216676523951769116216697952832773780161482035267728148034226489360746729522677524180501074765177278136131809185285373733944475651470966755482975726708882795578258025129724920495511110327715741656288664299511638331888954078105704651992585495337740658682786942237369508367160026907253362339705462674603018068950530792876744818798215673844622651632023669351345437016670300261637056805074637619860109423333902378982076919455557584090517988485609382067346301157483033038228371590998551798404876835893260925728454963484993938905455137678219363421570519106438824293815406825459377661162070303834991276347915871175881115868638886615349359345119039455458798935392117073796453208690704935172313585398872440054782972915760772416291537703928264557229726506288238752756418351913311831014621810717244766867255248087101007730089225263830043919392268615356617425737117667280100067670170294169600044508182752742854434716104173718096024383064249205961110338751808345702405425686072359148644207630757024366366988365191528345438135863889658216757953508997978299369781001258372992563372495781203494778847563053619937419714847872865478041167815998137930712878588142535371674726509012343438476426499268916492519028531020905078857566122744021745619312851753292238777005647947653838951170835401840144350080946009242610512620295158465738700358433692065948820708994198867714553859427139849758188319815622338435164804065984736093438672180217205137522135869476930236704439599870714391716531204002512629727864976637576510113546273074562115899620750756812279226393875971310654312001123422187551818152030282837117846229694386544029296930942576884300932307441022735476952175829722711161698386517662094784828455639851849984652817737814178386241620992730359480214670457970155641811149826742869787144115324494357090665281240434192148666080108448631998434524414969104929291638471186356553494518911676125347102139661589557790998803731949362392950547086641908142182466815097172680427701577349467260527018943711508670989163047531243115899340982158063721463298275652094346127044934755302217508386894826590593289201750309638510349612743817951646152358858861177718730345885897940463912639924127128175683986515040274524995329581364281803912626886674762447932820850788822690698104569664672261057577378954203513374315835025909754992750444025388068864196201953987147413226059256208270373692720709066062461955171555227083530500336352457538534652279147174864116030593107577781194815800703508252302476768792761502876167620941130097386499926349183746742081748199879446635644955387285373261536446967867733267648159679412900372516821492706551184272426704892604739848890370408721530515713740692992482645912855819901213462090504372310217085211753348309403368506790491091419737773812658498565366439729780668964169038805026916419233031808028717361868362990305926752742291673863144123952147253887819305081478011620593008847145622235625771467376596665023239776298320544973265788878508658884481196020083853067512175507823934384260967814787001071428140087412383240644446909984669428576777425228566773293345252076870121774277985507022710486778190022951981407825672697564162858227070154702203815747980636621914329941706780686848998595848931341713096118707777270430279854970795390763332311293854990717600923363421724428036993747784134497683531198697923228849268668618204923723223500938004749716243404647811194952732047128810348920903009844541466919478906217947183561947181715909382118305618292272229363376419458746226092340176233028168591675891857541593927922838125410783164412198029377508919542339271750148086899782279615137068684693666068050076384507756498748077588926359047551006836852552444135391563337377142792777481796216027636143179980195134265631304426041665960657092031178920247355748996687700988681029650761838446946028216966048960224079567379855147027902614353509515851155855014851994038482692870234694233883627268315109854781087301832764894094768498102397920475989870670960141813048986459387558744161316685739764793933419078513279864462619131399907905788258640127516526070491079134483857486184586470898571623100072795531096494304300646832974386694303292394200919972459473591762282264274172419424612697010660859688883782171455193958405733123161754179201573056341288986648613872699416649782767007790501886194954277603475903728206852465831173034516799081501988749736552211451213112943220019628432299198645359492991567958736238217568460452669733517210469980546717730358124245178435490730916614768038361268907978202860712767290747200436138756176759908285960662648530330208999843782204730998784067700898978665933082210581992999246491373101632530383838023489587721773173497494127403632552090971905285159011397844176268447759225196854333927212923306235167380054401438977345040714496120002824048689353775534801768590828592637381543641699363349991801691956458450059418019172508648054960650606500238342080425073217413176356242978767499679418922211145425552882625365057537810064147148049390789035520678030369890044316297137371137158033705607192214851186469290218915420349668234001275357639898148542136794142847572800363464868995044439300521026434102555325575798283130102419754456720920801885819623246585638338278849207037662442165177520249821718826442728672373009626462168645503671959297624474525951442325902176295400228525839590897852894478383604125817865953683214071087779539680931206755931972281890263955839364696965752588807828488345634683313208293284899554653295255306967114565873338377789645487935350910245306603464027026015402343042373493441374774683076841166464143295372098758122982325038071658190460142958676367905011216131119860797958971168977345265695398400551740009179059765825134895910172409438514656401342343297472384876443936429272683653188351639705446628414980148612187159560981468205099950312549292623193960635096917539633199658537674110292286457407409450151003318468076435103751182068020707349423606782472576202400197950871296007046468785229159923151047932709189786448515286173490245502659068859862430569187757165394808853755788363143529470359864351873074677725253392720837870522269193413372332975003772904410642846842306247338838467035919304121632430997114238110593885667887465741805749592027661941470909774928167494173976062203155225249677504712555858796542353001892188007513141412749501035449234161644135079200297299550789839413015343198585628825318828211679389115354818143322940054927694043693954721576057042160687696164620379468319952255099148135351212893885762310039625597336050536791522920920331124167826238741031896907077404640941299540916790955358678500579025032713450479573232938650891374241561007544279643531292462146918777647036845436404773628713510075967609499617745670447801158277094519249893789229698160920390020677005441436109982228416156313006935001234659582163292370299154099328882769826765324762094507657758093324669828207750721293667525672347565642488522213558752481749705024481088011212775353184663843637015751375738903708574356166741903516042837788159023965384266497795592616271596910671113161911936589203528479675204315879699534142355996935125829527093393754865921798535202297281364554013100258436120469092927984345986415815512283444826896208164686799977937231385132710158175873732128989704383564833889887919059660549703965956925188606365104586431416204849723285703895142521920060538529094720981785689954372421974750405882895183525213606816297105345344871089006902396123929245545586361860618416774928641929461694675756591174249090913579291866347449874101299375329329114910271039454358359596148029244579688157861870491629553355398798531225941331691296153539467317036071803745408027264171919156936998504549117792084881010678780698857312106514233056529724103468804859393579831344767722488909030475270921808976987683172855104927474127396048715842614357132481198915920799026379134035406156850045422622440270900287834765982802567435158843795930503883353162855954492265381664339858584234411297904114868140093846842917602589470289806807452694632752748877743124171470847832296380531175564755178278641543445871366001737080536276062890079314125887482728700065887214263324812106516343023867435003260741197181780250727136988102715004481497357587511636311159925840692865420030672459941069103030002541748261538541987042958420815750273350523636509048677087988734825381806298551297778609315000098481618547504974493493712248506630363553340300808792494115983970191779184699323636174635223253392494785552148527946491542161270395316086651386868397950723476400859178409858265427099501270582669439470894487275799007675139802329514973227434130660634101618306612924299008995113713801461618899472566361149781489928269940181176236152444528978570271178183844223772453838734432727006209936255161620679154616023807172312666272310004246530403151838208080349180061918414982236378495753462158224288213240345698186417616922046779480519940720647372735600649840953465745428549348331706469752152409818511109840535656801638675766542933086878540463386779094084730355326861998468262802574153761821175926339297763525884621914262061753683425022323363999074131834223053720902775931111457366066088227805684054112508284598950208457499919494878668976612702087707151249320461747772779734029321463519968404561344539174135446652409881110575632431901843454598832680806974580360734812541020651392877297342411861465156257464903359724631039000989808583570864511768937688319642909261943255191287922299503321211082855238523545368670631783733846126863117216278572169511296387590401014034847199255812139990294754436973249905318609612753396733964489016757572372052782471526099580122467130327270774863533364004300257343710562454441298209732936040544927995221093599918660309711515327092608102528780306206698152965549206356584309593630319219240726922891213131461762610421716489807706113230231335259456071562003211148000781469443581526257763359259597512531121725553218874517620257275694901823405358705163448949828997092610538011153095047000023715060521660492737993220831509599592301112711849457924444480004597263179859813066012736529659161256281307072789539162879757573715014485715429314523065755325318926110704719414049629859655701196132887603117552421177757180659348399308702992521804554142016490446802514575023658665809036335857583776378577917202996764305700481682083633257236586812826719370622222683473378863669984572191231419092140542194062145403834011272211126239313481807612773166422009619629836554773055451745257778744092381685206140644792034708142363328443615524472552210750202429403965028490596404104538555648621968692820135525352605754344546743378734927505995954849063454944275053808360337103871473196473196803752617512082319591297353713643598422755708822268433158225396472790839065053528990154388812381328803828524837609713739404630650450539404102568412080560585409450857995690110824494705465768968322546861780383959817740709007447860325006112699394804382228142416545361810497543160059360125773382647387123767781588787977040178283490638328820528936938287682997291738790703724681451654769455845946686553913806822100354186878911350690483624956769518693373087197104584873241917247272159362346335003415692056902142135947684279982053154898122305836517014540294177468422405271719303024161714599069121934555524000485491888221585783325796263446028618192317206984319009292270357984806437785221218828608417416008612796433467860055460964423096065506382330400734819296712519359294821668258971122715733638942415552752043460927260760349273334264435904429384681071734223097471452224231476688181972197500617963764874394406576214495912840508046626688645430574805400145421623701240339303467722039579375593599182479951669629811334048436212063929039494330086235723101286602389167629496454093730463133342392603761006007133968209261766718142237230122047875488611973006270733442413807336021196300574267184690961067183099794990812487288626192007554398403829746898512292061125865509758721212942284070741909537051248148818203532139164303925554491476512804525815957707447327996357407974903937246033328768047515142435784695516894403586344622080147919309461347512919573140484342705167319564303254930397462918657862314516682923791475217427814490235402966855122845953759346087477645556541345735873453842909639361570503207570692165140447753154521625492774706453945388610392454131250863546010846388020050606003429220021153009267759239997519351724662667259268875605573967983003283446834727609807977984939045805860885883129834767642022761788922840443649063593971979362564570518852154263146463645190800364272427220495916284363800320323610991363991356281115890884323948809107963247856982400345514392350969006741712222690310516636220412965581430976763420773155904105970365501094625398823004059708684519062238276261718420011997951702685178138343945243101078793877931517188374813174015078848966319781418806811577218407955186518623177346616327690356636583489812817941619739788476383699696453195165134396988525170814369896541016492815132749681687655537103296197673466548209251938127552364466558560326142034592103739455583416449154311172563340861946861378591177414027591290724476403219134826871449140835451118222660691675772622924675492652442665618324343342991639568300882406358463650789825366918695695284140279155350190616122450313265401183038938104957173555774042778592020271094693372213508808657699897092719218354461031189769289159281554644399928273334252101321715359049512440951251051899802019549541708086925124911390333183866198213912082627635051540717295779359289348583490770258774282007135020849832461509531437630588665617754465394560609327873554398061552182389893482955146213616953104900819846999650234942893735548576750370281213675261881690194077301634976820058883063939437727857364891155615120351419162769669902770718628380749953655650857065010362745629383623111305546260517682907300403816127934693236067997763057670668867350284616805460862768450129185607592888375415899890224415753967015143184408505611738756866425961720618759091642520048872420148084659127221108175535137877592840693964493129921649109515976302670309186171913579932260716140289287408688495329792191004208389224667619388463618858177871266975029523665719709657226398376932626305889716064587922804436185337555089108633632605759339977104627638187287612768241474760097894076537931878498511534353564413698498057501398318858363782034467433900231907252865826501480664339399382127449732326509041047333308652244742748436451855631766889298228734172592389259091265197720136650040339191749086186890649266967241973728605474355939926018939061708613765162037373623401600818254908009501823159184878378838903083151917996956330241487004426588117763329477377032722090408381505601929952689664999335284014344046101957622815037255247788413008156303628584346866838871209689120426222427255138010142588234416805723119857415892098679156919385433482327502807832171309645586259437878069361990138421098657984039378711165539895918960611199073600932418620724513361055246244329654276258356676736361391270538816361580159326930086984450990271107341964581321032067215675306698729910167367649381262098211913434197793109200166891896815250124115597038419133083687211475670857590041252515239980281183110266988331081625189781234059312883710986655579106327899610310469146352957958644694978687170699826125254699663362552925688750497292021405102518426825408558078766778965533941628841113843199696429597043892355627202149957381756772371813016669638305832815935886581677854919026843499949224889223162413500320276112422545466714555981036787988788652124735689477663806494891683968177287108683744233615562637918070967762003159682470008036405598401628536253868849557500524255947371138506676342274321787002271073556028724487030561665588782846213596487425416807565926503274290585330342540980990750077871528517848725379357834654359054422791934208715394776313963578455057703470445429706637620139633040179673926456769028371945711218313462487634498185402421934231261544619773255466948053858560053182201755718428537383400528252159113752871391464966077371243435065857173963151482506646974853796524425170054533731612754751600374543100217217480347496890884611392170856372626198670770864832705212097713209874554508824108223408762104670070986101637331808531900110822759251753495445160064341483168307726296105780269253622757418978538871696688631563356980373305365760067697525071977743854031469739701441094735631255565409560890068143493520582934533246636635523177112757652457348887372400886482700279892328329485879426177403335808645294090160609676668730619195330892579370805195388629646716793694638582124112594230722625198885732741231952509387166895487831974275880229685041209848501098783172930678246759410404856727708461156682850847953629697319119771640553717061127601396197940314468180393709763817559419015111855130903263628287132586473776340062063739413657441312393172092035133468083078783728281217733538238955043006078918011666381391346503830266455293184149196116997472426122541449866504301547555306021426366068593179799365945484907651338486257440630771289840490340058068270426072943641172794824201320630570223963676143840226639009015079188323450516131143806161947047559946073835107477561786611004614640936159765112922124104821963178575901464064153211458724715547593396814807215078924517707540908917455817132462313849376036460139658119044761382401151102114131529823903637111443151469148636602818534913017075966073002616828860807319291146198971916052962301287854099364201216643055463657795782587203285811207374192409136795316195652947140013292651269356152657468086875603005312709819172980384984791536304096077247118855637423397556636160070014406172764635546059884842560805948776436393470717199869505217114592849734893959621229329718417118142964579189854236179684567095907417748576489183192240871822421131046597765589942747344097479947933259472381002135818189209478951747881625153380843815735976630458629671650704839741580469575968373282581606225274961656303481496750558276366596202185130181004144459060343596689987333400120830796380943786736637183226166580824062169007966348291757459283330912376587488601992345223995911750740252154731163613836049135271195343459698910984844792810642662523831410406324469430874782775789917238773613814315623456208023625859204914615282934141900936441323458974258070822623394413150555397520519790804667534293449235419814365289301297342407158557183234084717740007196519623111553971207168813998903031572023228660946477132038308570133273674124058190993446003954036534824196872889282595010681357545315645671567604037753112308759619405529122462649675597813658129301516114485800098657493209478628791452847724954977319087961257653859416273137223450409263056079746974248970287173463440616327470199265173191816764646247436405290740196504205191219282374034152329999238203762911104205018451362084075524270131750595171885092676748595876501001059409732802419528031207773141279901148325914731637616970065539207378444060083020334893301347892672306571150144149575430186173516752164127483628652228686498189829240458564577394474219138400610255322672865489481524780057319854959980521993809441119160162428844865617669696292733754088041690087352791431532999692629041932353635356423175239682185979767670029210352796853409595220517303607488749339671361819087139892533789856359901633487373123665782911989453601402866933965785733998526629924178846713230012508639388923382115927821226536566343185835431581634124912182643020760489817585111991678876897771443722095115009840004098828918461386909342991300595521958417992986173236590613830516612710148157558468863147470396244296917395891259464772497117212199579473612063206853105802947453249724713562739604452028599007423783714139079594565654220103275378584693615794423602469337509325660051160032400880996435220468988672335940435351430459772192606666060738169770735051518963246460861207140621986122426604610162953257813705634061559331236396104992243935331711629201145384568839047032564178455591467171506087154655840052803663878147582666856756254329224907884155352839612492320059796492062029991709756325556883827500536827583941128163326064642427896701553157201419357611538595045167835167360399980257755550165882524892899566083296340350481336966799016516802831345121480854941247009131483222146694050002603927521115176084537103406364004469359153055062793265601340395659840609513562745789159336486923109484246122709182340764445136447680935793413070380473827266242576619446927509145373704286604804949790282756224371451584869564937367338307206186454729451396055112291846836138715648815473901189929417037065403379132998495798358924750339284711087865167285815712328369994511113715731260838489761222132823008978044664283974414648581500835919129194782067050796111875702850057086145589572170186174760849950972199967874366145003762556294623649643967747023846032650818235600731791697222997512051808838256788068147817305639071952497670865947426242896810948983176701408677649947064678024231295677399364901902165948327178267715140741074956908602705066052650362150853243090541954227899900584999160816919485711027335423732174160734439918387428648391683693893233566283472344073397538158971590309530045843492975368177984209865079193728172295560563806823730010358548087319670826417640636551391102141374636075520095449900569358997264585875642737945930625912347095079996044850057547695906047889499430278728517888609925222576363820754837363152432675723464994932489397553422488735084627370162794169477361500535601986404927366334747331568053117624462136350059177923560499337657275833880223869473094762379922452833927148248960974968247604005988805011159291622763790421028559704533278592291831272742252959565920303187480754742966559766760668803169743233461424929546680901206436681657474393238326174798931695453038644416991503343723503692922279794130114618265986041843007716459942315384797194249573402501072067383744823077771727912257044661792457943242663153632756885895038541163185889215838836476205719788012360444519872816439405260338797709299340145924836673880202015691333905890497229648670988528181018641295991736504049464772843524109771663540617700432799413132301963225950713034556818776662391918327331505597424099405674550234929963804175920787201044895663083250892623774037121387065716618879448208536101023495921785770869403466014401985052732687315116123138806892949342637853640831397157092828880188284232678809866223967084377954931591564138040922771734169836311598480167820887099907321983095589711978678217625504956308501220544848945317616358812784075843392197221002829981550288956179007590173420991141510617212094703781752201061047157633578229055991795265256005582072569636386632301940545441120375679865922111037688432768351203714981701019935253318287442198959110729456936722544844380439964918156134719148507403088807687747230901571587341375204710265343366650278929645616141155157509997409638031547866978504745363391793805160232179679171803906365267649588327258627122722148439390125285839698155404285570912167475760408684961733487021886949774390505673555483419026587733649811076604722707832376079598391912401414547647885407105831427237593314107870447180995597391533751629312736903250961985044311282806129793697905975907438750040716109410130096636842917809210361249461581615888829332076060632313022053793166441548731616609639772743066641278484216089304244511338937034786064324726336385715495488479986594056036531697514483249589219149287720461794638054831986017744009134879739204760971862880101425836632435785129778326608483312641650919019532798420565902791390415403353732689150960141755093475453532148598363065938162338144865304251924611234509816672606552112637692432494525570808484272186427999878144435279549084320665398360371046732476104512706279440704444303909110624158774636273148998200527277203202201426137398067555294925907056647531912173710841032887208420908105625776395204486415935682911312559577546323616640056656485053007064663147286395330464052610663567064760630975508078406221016094496480673363932288551952326933197603049064203718075319447394253378321406157374900410542634685073259780014929762733034998939991678913060022119061129958475796669996071663553259580445573002972587929554376675709093046682112213280035994516545931067530765877171548514689193375635933704050194081784937404080355165020487795670003802952129634562497862164127447563382291895006623838544308401852028962626889093856099375564144557163783710696547381549503263651605769263296078316836698257976493052580726322566015079195190149579689133340429304690840367748745200311635124660423357511799807454258862515054655650527935405429648244613782373985783414239467689872137249829942430579039781190450427831284811262169642634417429023075019773545991684201068074989376243310930975820054932277151187120944035719453324173711351151474325276244354151860437254030109674319044606376813673377438323199892479848663339172364278261716716805953789537291806431840845849326999819318468018725207078828621583782871582982423407150695544057461154501246963049268214339648811744698497960201077800343232933664532960662513048409738774235191706526170596566399308850804598456032748730362554348318036851712853445291356466688521210906387833328757654720675299616756259756292590821493991566493759821115294898095609204745437865394749425182718213921339465556447225346137573937354197524695820125192649466574479863964460236359062354914069521922010697551564095616831839994812056683627716985351422439962567403746661765489753166739558885297450048895137971822599706157898434488886021353512028853403908011767098542832556835950369473991868985208184769151159654778754083708702198513361526671537360966918281810020246835064637654841993916026343332737332750676777417051273221261303155097870007361801071960333228502556998300612693758148136367151514094362229044210680818692016526215748944808577051227040515469896419912698360401510740244989432033441544749107251149110145713163037980001824682334777946254662563620370802429747165079742683442458050178679343070418747107085430162855213939684362003604377491158813335342646568902053276346694016099296741707142586141598788505038676333753464241891637339491832666549805313592025290766280632826990504061768465735476553017971499963811388685071888354156553959017414762154026122418249077790078371645444231077029865782955073007491594085946722733913874152416660568507212633534557373011349032018827406477954400170134060686254527179409198267008572454139788149454513049558180298572982430959444073242091612892962758423159291196794351301792966466312170604837096353057088060928074639982619799250855496952956944293693912256676995315918281306918167150891292888504480959385487246393800052521342310270752409621415718681322458232617719229876383243312303584300751463115238455463865784930271570794488274844343728585527579115640455469200933052988417940547388237160628938633719674227042157943950682212449715468971314188403713573420146570120413161359958910417575218240252083731085312131687051925481802059374727950826871801799821471891321746018494010714546031180061754106464095121030595920749604719740728959817238228563212280361727146642058445534599296021009915288764267633924121899931821790931717881631295741739489608089724948716411779646727757548510123696163341293608978266748950636509164410113523230613359092815368953229410865736899261564673643151004506202547650223554045564120110177069539651870099641285166092084834497942980465048202330315503008754723710052578893165987539002640971553304010948558543660779276613545669407652620751391442573431209887858053174573630968212145284597255178930655160269084099165400172369097180300344658858222701919628478056130987266011841826768724076026301008897300147078792023606540860271674134905340343362838178576144865140441997424645656713191762839219327356685146275029537458835396798879140652804914058786705908721079790384195952616590409429157181268904651388964664981787151955145666601195453352515305901538638536787259843148563911386016139261087610331282463971594120395850648230859880423404692724376466921459337803478516243383364711222757637943973343977385011439567317406294163885040082183105796753773097644126650014139047378110864665109170408029811373245355109960669466560912267721974285579039895913215313248259001496785365957506315148584971837594803448878808443075985487251948477759623979560072976713057629258582392063628704921238247837529697333305418354169650221580214095584502727095554559274301632095056071510344178547691294018180127839184178116876476458340796595130206864138096580110997725119120461719978595419142087237388883647277966922690911294956541304686946345168185233151782745188391203266523928090241685306514539042140248478467726155264341539822248664121092740427478621144624637633523726095687434237933192540718669818926124063463514379122109467957535007438253560431819436480482938984744905697204091565457089703484960882601409747303344800065229280450207869319233693845335582367232766022540379320375969568692876861284970973325370459858736223256421547978912959123355140809649092609891034024774792499093584635916644192032842239385029674861746738112684418008013442636610395220825616989538358658716331253333914006132663733422091892459197763232414360653784433625740137015289803361932063672440289923669019111166510495059123283526014644990986350371560322837963727034313968753505152620087545294075595051163959870935261475599881265696109884066336905405929306530773667572357418131465206792521685594622280262536411076026811285591059774486491210528950499501098618776798698105164690280730483387106787665665430084436428656933623752378322566831166185348391603193554954646609372400450591468100331822182520085163418190310587105015232448117765312175877441861576777270571117016478170758889713284923470077138551528608208737870778419248669395246212563506072277656952445293249933435955164153599716474231485900328567938490644992698928768543381882236783183331191577940587271297207526961587996789221392399534423002826719421047174714495186489640458772705146384776342924964697211370446993728831111067182443048475607747659372791172864904482400874049611654986354873268746591158452374612350048795578866941398460897680693239411715609002278290733204321125804114660978808161350233238912418610062724047268339112844238902142546144163121198175404042742743212286125049347684291534739033205827234162305448680666338904758812493375533450355707916115221932215147360926903262063654667114160730360627661223893391411229750728373257384767482557108286576357223570064251516132551475738556308025209337318185809464169236309545878036725281450062254327269000170214254387637271898431100322977120216665748012168088166668393643375345257127708535442108566201784342354629590257278440939658537501565270148210503322765368172761424661072703934964798579403404155382458820948601930354641775819501240110889705980342406874496512111266685834299335830548307817576410389709965130867093462354105719982104738492353773031414036011615964274849560523234876558426859352040881922922117174163850129315787147937188253977274369896398842168679407713979754741220904455255662228130568881680567574960377305095289210866725411520471789508530760461646604009529489113750842868281082174543770836257889992212155476154833037577896402873769415882880167006374405136089642956599068577730855049925457618139084906180288974368884570922566459831624645843237251535442240156878784377936350817597979799292415146075511171326477590520622527621582561033231829226000425638956410012251205077815432194286594274379096824680810047877110476077173036904619673240183812205291479677845286440671901660631351877846275926057210489831534335272578858905268390625739907336713454557182325174259381113980989012918371098845562659319290952814430207089090570652589596764586062120001242735841326277272612912855341575531223006718914619561417058718143396089192691783009422069274913695241887956990758779355063329660278084142859145045968155342788734300566852166450283543065893164447506181405764092862842205123075870463787814532070302031154805875700681671816094112637422173596234900866233197735486463745765537992722262735671695602712949283431701506451755041826443946504887906233166722835264063958088163487124823378191154482116503924800370500895782131409630557431441512206856321601752027075906493184891681852694990968380627836925707762323010879353383248164842686478418320776759485647292762493065511139055199516926439671120627129606710063110294085546868893346648418502428027141768827123052611711583351020770338591796384196089349873168232376647314098488545423768539142976028808805428591034423270224624622809038494497443636942676738494698009929450673113523851116939448673666893391633399372909987291165662237421528666886421351291854374749315525580159833104231795814220994718564586920653712152654628660289166762592218118469302927706155455687512800937442234747391859578697227633344773516210307365467106271819899296545789804568043938838678106912812537607411058513669798846069296361189920095628981786467883496544928161307909146309662361383492102611091097026971578716922335239326058484026418234477117966922182984835938781088163112075859158747750088983666078131058649791584845451262808476680323983898141174285150848579514415636680239427646392691721903327576135264668268829916021816103991638711494671249421438623799565183722220176350810721933897644270682111703691223608958604469923716953713073584763183215910897988160951767727096965610075058108370546410499952318643023175235637639297254210723958929243945944727578158473924183059453224801961578054400275832784905712796126280317756122826692693391477318651331503875372898750348378357186458034195086671131348366960761673002898043911953687351338904314823727386317934273434057939045017555843425787032806582822412894713922997675436167076986069872185778415456727739411440086317268794566264244791625655514445711798244439763503161594426485976857151323632219752157493705297109719977563631209465861346781871366717463799654965874857694925338604380040379526290466461152700981830860932283629019539410898932938226329280318524339916883674454745398139677070168567005929720677850991655329366076515177283046672517202311189938774539899974562085785500583123368067860593007165772608367863815535980603005422212882655518124131178236384512194776211892504435796505029089116607141444106830774999061680639701956093271626378129612465818798791929797195178951628160552954634865776487247814581897817681968388444513412475255245444497740392290410096468911890252632235174735554545027337948193263732921371096744384461715027910112804356146208665490577662214174994496744958767324282339345098432479833312344989170480704054730752863066522165487392955069876967532070519688804446661654609448292896509216612820913541609287134026640616949673981405339636463031049786409843601291479261794527981624120985172796111186018224984576374624386223538518192036163883922181744406173080019438467068850528052528725959140245100133539727604030150198052547801578958240331216245637480922478998121616937038487836571246469663255268653733733501089857789833056415094817964452357041432928786278315656105323738442703448968572780262882074347993272540780061099368162304363330452364074796677356811754816360176490671127052477209544702613109745938974267968525121763108617173061350392036327513408187785058331745471143294603463773602112146634019695195937898990989963453787660704407737408218159797610593180731419904748578376587093810097665250919373722153949562037582921869634984927977516899694567200531226614782034163717976448815870368933300762813139001916207352651630036584408134333899363207858393206108752626033502680582321078866209297619249414745610600672482374222913510356917232767374875307350111975584049016486963000410376447832011997240462159388608007040476613395670621373655605586924018963070213338699058971711837621630596395985966342507169299697056382756109641365468844888015173188958633702263857400287545108195155378376954735161625214286101823867245680942142561539476726826675637597794869054109187016146399496376687967893211404153050218837612246819668590070916464748919323252010517567821657179229228814592742244065098226836422299537594704502995211173260541104425115037383755653307436498067416006793326414069233268674070670981133470847079998826899498682767346275380799965499125919777599282080837159680075961891025682608633963301757159200358131139845006535992452839004010695657687920885337747634503299002104926302571521550413351070482795529515524865801099313634211426838117681513320179233760845241466820724587705511167812021677730646985271076652475477552562505237057477217538022013153063920181924581218345231267410248450394594275334338628479184227260699046357719728870401074658677455394077104384898670934645195855062850424425514513959117338450788081377845703719211126311411120966732088145801180001542269896418627979017112493972810540041363397667181434758716914998703966705960435257091874728866035533269039319313457454521718294307492348959259847555832280176794196443569358716943647729600230930281345455319416063598903997666415450775048444106143069164622991674939204321824093832170169330840222967621192913848566481401952353645952540163986014609640548221632673734812554768646355145015217945470478566476472230798807830485080832930985645945660954070772437247847290007658123649763757917715638927707883053144784663052165736365234105109637086511461200670424177382688078278943777918564923661818352221579619799700409806015980958995023176753277765366255664571773251185789586758699680156876144475947386047708867881339909099210249107358190555333933044578435076464666436058178489067354592122948138665740883401632217307774944904283044969799864499744541953795557870794618958559066253432270025817846858293605922343552124084686187417758007875010124239923712385352490916387878837753760715870395419047492500621540164334660469447992445755741299633002076586542827387438889601254418671002715128498771127722584797163831680876010267578697740711208296267396690706458922066805683991901850596178418558201173306793589239968617397964824748296878270219686517671281919519650692205088139182550750576957142670383814579843613646697291149678695026150521422283261312535276153263876156740527688211168717992650796582322538833839604119054821636147455270957744843181364234227966187718699841372182660202917214104947034023361276864866074386959579627386689782524259075539171027181567311964652194533339307279897441842881934251353255313681726332504626025127452193316862612507540323313656708703800880094733451919799273156922300508795522067350905750774585028643942606476885197766016635416893906172948126843320299668886872118171373429507857082261293034322326609169957059774938823803640125871117942704635770062927004392800183972773061721317566353512742959765245491317728149304239042508478918112445324895805280049737896128204486114485328165180524866370696305055051055970336177549771659736632916856543050845730604797131737110909233496131544065593414876854383370147627223692232130017331452549964666765388469224530993561672492212880546810040861544241776499211746302778226078457839710769481477425857261675024245527660566913328918953610527359095682790133798633470214325995987904363715462729547561681963614719082494505149367423349893942839082008643125771779119328215703254966239248985748174868665188851557241011779573924206078237908090157215187191246870230072210685704092931567382801358299246904757747031283103716646837893174333727282931330431045934885826095907992056763535226730240819766135381406917810324643591929745440537762314962736842452558845673368474087411719192620716511581223924208669413612815021644477497605890466458723648952864879268403255339407504303836928447817790183675091652961095724164824662414226694940136327888982957544706229230018036808026192293706693053770599638684811567656998726392387243832925748902814733854540122573286591178745152629476289315093227590995921357837714921010746221242929999152194441042426742056342287497921707501602640909860280927463795594521913030585526177309033824490131283040862278234858056464386991467390097011841003275616089271205095397199516653309394630588509161700648495951122679180078229846092780239503956670183422458730044930040513821294559433191889514692366726151889517455438169456932987393549134551959088843065325239807713656990307563923478639880528426613396950300302381530072886478291234940062894264126312772548665805544826443500070491842093569315477738670722219340988858159868852638005144694807254749485729728103628545699531306698302733068213824564424169101439726568391621880343612342826203669851466290103675835308965416741958146824075006838489975535794252851129374624643491503158677785692844500695614574161667198610240753824275362443211107132016809995687533231232450996485720037601885886604481995218316126781279957100403695638382288399121962046144535924624713133328432120527602791222726421858297412148579030615060987476066069126779866251839167762983610062901952710637165686132392113426241210528721069061316074083559609858647565477358877844705479840561168548593749534479830573603944259867810213995871015327045125821207436152525100519486708520212797735536428609462264909985729772114193741126530770691967210278612684812479932600104417326301818165947841137505547404385513120502503777010459998372229367077497969013447493632950899454187161481340806950088818375897972063096938398321703332891197592813848293683268545231621520215918862760485113887700929880501432904581493070727663683904705684960447164352515858786661526123827722280296899674088235341427385130341554404634249869611774169519921839921620770709562582383526503645963243059278540876308708614935348322413058025904884644546941746893042832533020983813425849668792845299971757634028283993410297395577961253537548658575927633186279126510918791176639925563361834831867943948743549907719709405373787570917864625408589693407279335339980819287183686884485994608296715210664509643016778463788970948137995743900604195532693779284625484877462051326997683062397971067046915532135501041184984407606176572636810352912518994654767593031508614437314027926194363689023201421556110616405813816403447843230258023466547138677131246006230868920627510773864781313032309031459218205997950963049230921089881833279741778739265455631855348223396884684103347682851120280712658045224141605759260483696684359607154593382725281500586488169900295847350055067113841977375952634807368024230939725120943260434628509945261087612596952194947247940919471003881995330184458843452258072485289529057772181920456361191002120921512985002065943271666962841496145483501108883787025817714815539305095638841568846729880064654971824959549721332950534089098946659967247815513660674415027361168491099793790025203121940998193644728220775609584585016686634804590387725066599748497869621467933549084103832987713695443594723289114226753201635004597966055533909669415734168253304633689636115884336642488153230201061854091527836352393310548950596945007293530687028474637747804590095133317759618889947933610639056816607756777140524220982968748501575343278958830618313616324437934119846685312229863798214571379038506115695855263647567476437293203211884848481937631582525162079833717662773160164819134689464612540005132829310935132195228522935458545311054380496574248524855309671537209328775793913046813244151953946702945240556855668913704376381883818442745479853961703128256872987663786092222542813104708055154003140252259211226232572127352833873665492590290533650540515389956756391447800643370959350774283338133458020245553843144567350987590607200959387961649051421697547105149652679474679640501174898689444465263776655447270347568322995589245199226224135327802036430137769862188071446464045015211333421868019227277003464390309711174484860996715511242692432014438495906125933820817264342578253242953931507825602844665685367689165211363653511269548647090541448076701706296336909403516614100991978593285748463944998224012239425313645602722996322525729226230960757686497039630742941556503475918808093935802361578924594839912022188499855616688232260899812268705056866643503188012175648931480983447080258781714944543378188526160948236148365061774968692945778336460693993747625540583743577150495406799325120671233298041596797612628339616684370286270624393335812077889835909969014639914923657766670608944331145240755107921862395902466056258182910051955663264725798845525878005311115214957672075368698606604143520056890583714113994084117125386786140466343736679725000361478634849447776864319987048710172159482439619340288764190675522676248556912082627180510006616339864777960654554777102613555041756823267359197355746083011582712874287221773177354256025814803673130171768893761319315936914537119482879327311325992232447091159705642317878846889708088805015646044624952001584096572887970143181892532491554583066146530328706758665893321498298136361344575562633510630944946425173674047594752201749505137120375639828564965290217524328263587850404550817487318420246550174546555084442902422089913009163252701647726910977093126103199214859120910612575920365513402530234018272386741017479721465516044510892402979273339548815401680210168122972466797755989465314939950021635498541397467738577846647103364057723616722894889083215008448149703577181286982734716671683685289056224093756041603452464314661237421492022881499774193531207244933862679671652692874017418884024552478365901336322053605207614138695873016896356473713110338299251126965572681013320734794332953220512813405073016036240961553048588745909668997402248855379594967068401773104995115199833379188020721649964891591843217999041138917317798784983228714716247078845557817273068734146208176485135060975319940759491194446456220701495628596065797764144550292645752179740549502442656838684734621863226256471951841975358371007817918167728834028982524621695563911200244992204273158508690494763166749564338528607598219144557723146523707067453981341399070221178507656914347609871378658972467621424371594358600821955324095346432063396452573464888446687546076769195218091769469218021510381342161200112657055947172978517433530702195201327130335763701944931446759009226623573147004033038223250595503018775843274122323298109646051980833451596664907224103549736227727269443965836719902081486141749819034317232263010058773851714161970944070016215340778910425526738323362852694765296882417134495157390531873793258189579924552498258634343039323596743022631425622159576104052628659203906377719461798711355547988234131994541716788946914820503833168742966894004478754165166778835990551679610557082623787897143350334939664710645963556669013916011890999407420692681541172712940418049588900201457758417959891486417238430521808267782706560758462255955998731246044522691956635896221958565892145338491286438527602165933171377282318655717290872584258905074104054325593510363922276568767159047742282917190436702178809164523926306873030929054871482267964069186544272640461891448849329543317048256532172365152234068172560789800085522843457991945558883813679207418922451899559637348959628934544850282358384625269498698916008866836632087832976584474733635554967464372360164902189133178273184576228873486805702421383819298558249936840840315306625919880012595429416180328761311497691546934751846845404947502764411801096981668218087642309680120526451468655610264264022174450645971307073641641754051720069224648884376772120920730422215178076904784976160276112802604328488279441551112774252609668031908154090741229205176874166379737871095264607390332187395734214605806615617963196310065962940021288730763441619315668212825423879897570360068256219042678875066650759540915455623722922524261960876041970617850691818902362807260555775887548287690828059007923020185461603137009303348040615157287894319811938977496438459028189790920740482340358581424771036791101512787670945648909475504975601680734838770295501258714459180065550652360677196398171352909810965660821431265252914670528742443090704482657219771718073793237240158633801458428636437630988335121164989733238928498379292074200096889063813666263787030828617995359988086558110397240997681156145852680916063753667571800729819885121802645760055863990252419884798208371157882544844877773092455007870259029182485654365367652817849451847832400731697924283718518973576778815958187380102064105770428372463919562644220461470142118629270416887958382114821017636793866874696113342704990167871925563900937443461131209871784853502120158616995711268865077110341850573297443604051328137751342638740337719878431664545740143713735421289129072525991297079452318856181783653201185171631715632608760723180569626175428948047619643352392298550805281467270920981166321468361587034164438138472064765524016050875371608565592952059095307183231079805987005175716343950498648119399821544185202126994877931095555653599374664040054033568562532238579604827346376035036507170651012199281362100325968201143386793363786116812697337777715893821692895546266582963881825283823269539945397401302225492216937156992396781082321216666803295289348583926352417104330833575756362255634159232828384061964093101266355064029836015984757060496292239804268399011654326339635797517925515568237160951040406767904194336859902614460158985900340168172465153046688783627972306183321104724476368850967532323050650744372356028926349242340315569373239757649367425280201339928418582680250783141061950193672145470473663230994359530755121169034005320479358578759757672103897165756037624627518958267229391715996214052688293015436382893878318266571342159181641349319657792646858244914207095936368382268296773416593126707376330312426622183581078199419322482783783698958293032823967192679521754919636853773829625897566252809488391463356990606554601527485343080340950143399125897137075681982341611243674017260005828781096539707706935466527807634343347293029546375946435126291773013229224839251672321988745475028747513858439830141737971465122166538619092993140369231858829654525940471555728518363828448036794977336124792976460991364545313294700000360197479373697226205124036147458216636657120542500170964014942127457706817951950101711125353690035949973280799768924102754144937583782537122845333758208951329481730983299251709671675577650509677333821394350232719300415076953874303667796830397281662184555263161964794552570281480629257961748683257681599394291448110353203038831044716379101237584678855369281674008485889578384275490648796008882391453665588720071461003647281506236279604314541160437096261663838548798014428935004417137329406058140183727423379883126626600152633582362371707677181076980605151891961832159119615733717514102059006790545671433475788797183819167894201420994329018433719354662238897167862933899995981797413289581003655881128957329527037176652600680775833504131496388532053768677196180172266944567554867007916453795293942761086389192972623141114058012545088810878336982165154411593254265234142287436007826585451206285225615375082972310862157011810457795430125732403124390398972362628466933409413265814290394879272661767502652267926883790601301625646655522908223624930510354437934226630771835457976724756529367278477667178709844294997333475804910609817411603523017044409925452801701535572116235537628173142902432137686671255450809340626446550081693996272819803464717892028204774034141817523976219755978946444746222683253141768270852750360603529484567102701527412442217772200211418115458862310504678605919587532655667822574059703569044374857635849130274234054490628638026566316430558090092154518683180598804415888201841836667760166215973659226058823571790864168239152663551997545222129994180815695081796194977130639338100551678888599931397356450786649161191863190839083818063684272253572199610186701034135453153004390131613842345346524342341414413784790863166533050331877689964058176228509746350612482949334357943147575578001710214414577039638899267761661086502826233028064303104288768957649485360836705297938215830763069538479484886353724687645943232874039708167096356853203244275709191554580028952095328045332026317976210584479880793999430948898467449345823653104793487458799011984321993693969428643540947719285102978366996331110372991181127586615422497754870546397205851353201541769219846744908338808602285786895322929094587767630021511696940284807764656239564850781523597598356609271443677352418214610007203209649839211252604605647585973495554178631022678062456975652665526025902932844670205660271857174265767251848423960587287946981243181974250086262365480768697460502405084550020750829667736535700368896647842627350016978411167499785310483696499733588356636559408969947161834782650378021127401089211787403535875181144397313112268209110029421026784527698469162762369539339061406223748334377328027308282371404758154772434618777727815539404197965453623500296939620875938504863286323010030513204127255659490785653324850177961303793467176029235061771569425418797539215983396413727428249678594606504923943508568239880769293873136552940487257237236575402547640342338338557779328063255046752547865261882023569679950161304691863203874187283247114841155290015183391698871678688502288727541616868209168351890424148091527753342855096342399809122244714931785953365020557365074871470379731825347794795274668406621586666037753538319063771211904194147767487895659781437270099008868898436761609029995998760404257213262041480919334776097813164405189877674047726188353235201060052403767767713559462506557195011249815945410358282955364101586361538356099450210990179106630153450312763771774628283284735742090137429188409026181170587418689206925134060291171141019858555549469751650841713082204305672084984441931336697340244448116929367213136545672714789563926139721885095444014413960497478922945877262982631228937046580439150231906936031888778493470279701949263431858663452304621339690561160084293073013282259668611240901868837737516432720980370482001379914325090006060622405325745808288814774956307195365952209153112862044227063390975777946016228690458815291291262568390607812167553773568393684917015656252201190060025939311976443848924377094244747626561006472133109208290226544839810424052254999330152437413185848814474786122830645424331504406929428089483055386467832393665889375132302051758480240604762068404697384957325174057288898417589205676208998862194744786998630540459899677069698238715760005182385842598463141833081058277700155814237835782174524200426577525140258806620732044524682209719041271495176256567254734151361455757359790785569224521106253026117218819465877747184296792263970566277268910053979683343116374377189145973403572374982351150967900534340338580315409337399535439149002645149576526862348062795241642472943698210581955864363349286069493561835426140756321223140051817781599798091193326239281257359285594908002198215679236420588713733434348768300087523667495441554177476903135798070050050191086576300984606368173062470823125593311091235489269708486196938542597169729938565134609017635184608001490393049624249573140093933594787423645785164042675070071382351337438044238357811307042861955880719081946817056986031441424434712127646398596723320686822278240619412219319725135941491370191226314466734170043709335485603874176764928374182840582381875021408355773679126617593890521352208650481843708023415748742528851843517792951336594552223160185585082647825258747466486295865977130344795879485404285168085066624596772434202341476503455529185629296665354068728733073969014099600475465271725250177259814941282412779108589047018129423828549185428570471367384162437581336143083701256080712172789771047501014163853714614922471168023059260732769298827456050949869395060555624077803085523931392677204747128351613903614085431460152081590619688841698657982476165885567087012416128870168306303426504723357846455625522076780918125652161900915206837103178335630775671809190187609204356682270079997277904010037993996831450074113208311471902493829571571881889055814583036737809151460099240480438445321969202375367109534147330580829034035448402654064766134409609854162417210864410004962282223247318982233295827754559184728029350981986306436203257947437379613176161734374372075156335154834369177401264803983707558117137642187883570178569874094977061146936025588316347963332169928293641396214306601592513127218765423903691927134994276865342455123979089791671762042536014926471062373114868130932318502039978536025744359556564470178540065286450098756651915939088080440606736357821833582765346895459120065806672813734402432015453854018514677098399255083951675147052282009906844105171368729637956310717951741413751967885602201658656594251226230347935291189746892169263511882069082214477579148867530672332794583029201408671097399653917251802069737521765203314092281963431463627594440981910849832957788090278530004239080453826353655735055019220063470425274190978902626097273060981090225757602474192770607693747035275698616024038520289830660958269008338760177895146644795251257121869344411541318561337199263014769380991472670632044747289598727989550146169752431630733625528764618285264722042990077661144649900157099823143202459865861841746061981713385599957154115672710516070757806372029798607663336058396941140702096031830725821598871597380081125166478467867424475071071763378991871538073250768319760486336562537615067842915140521867961584804304868721317420451091022651666295052575662664419705437017939263414669316344786131733575193619035164763677118571021264503321265526392772080096133813486814754993808859360578593929588461666822440804455225899038909563418900618221713631386117122742341060251668668401381276089684961027646699912890415797415392995305032324080571723729823375085132767362005251323446372652371868324927513485278250429577051527522125356793961215998091181268870571079790600058812289329884946193550109181798275846630244909467241091784411888608917365158691733215841047548839090976100768477924590017473509767076111196621234856025666378220761156057673265735648387291284439610076186127237630243608147794245538528623269922319022296015545223043523773917667710499822226883906673215905745573170438823420614327150193772828602433782839004638720890606398472284937204364859244626207167571019251601375168187934858491506381160819332500740931020971386416864485849827948203449886299378790751745669149844549438823623287655132939473401763809516887592850384995315338513059863249646053982698473863536266446878101592374920077571408465931285178765428222122248714931166974406381847199801871660649493403018111632532956877380340362164489079468913628809237191270009069003772176540686613856412332274669074337578003594576346789562558914524836413715951369954852883471997780074175387617960795976546286152877589788379442127771952534171798658779888404119139606995111676737261833380563192106209520941367084910506099293236334845135367665684864164781946397646698656603116217221809349470612680296867254905163376329375282575657581190059569597108846593047190666520357632031861569254292960114254672799455112398430960911710391735636196575930321449348163863822206465654779904177030052446852740633004520933279388618687053615172016661594443697409363041613701831070318475641445078147509340843241168036228824965484743486703850908263957926736116767135971864271835914223321663175889050799493306009678400978764438990047563163814428867573303547386654844859063514613296842769637219861115775448981059419074063321166144811543000539826249255870741737874779093696563726998859439816558487221148263350895536139087494541132537481155780584689320427466707912967896553256329737970084922267654343976284154538198459709057872498193100500625295501855595821543820299120047380149868695427579910438391939917266636985548483363641105037785378696437892719501746383894415855692395784909938587420542812937558108303833394442606661667524549940973724606128245891305615037200857611322159357417795001031377582897081491749408001095216720244975468553330941610779090052202460428237013430339870820470627566378964002869126349213693552166166578969723219107912672788982663758167758589354292350869636450949038103681100678853103539112864757673885533798814853689986244006205008242738909048376049731825711817435619826798274786265556336672667568620047667952385935064282611539502977886182367624850417212799606970473458800213016209183772678007106715339002503602799246786291197750352865403591797630954838909454665596167502326874034319710097302913983242428257877128188200680725996176575581649476983072463328244233419283399737192570689604991521335024776317578655923718311267830477083980940691373016829828457577818407840609774003094803359626701885229788203672297861434193214727772791511121728198439668375164239771179057023710072545434958607779535161616708460908822348296320162918574391138548101559064777970275926419631115550729244960687935330749364685361381673284383872377224798210049876953003167832178099134112251921080059719757838316890927381453060630769429030207203524705591016540915785210125125672743179669968790358105668136453781213717330149661017004287643372284181780955806022628915073014893800962416517252136084767186969629745459102921585697471437642287193714426018824205278883174519959803359502805200864466216123251311060303395780547449504087364906724804515322702142562302104453597163477519687348651512893897980783625804416247571492229316763296007089494301370990160438908388375598638279602111064381835842090918914358527914514813350829866296147593026167821503248904833499011794624876423604051425517854693666814545244259977914187120069004636353921196948232271889791907668466998249751936373710908902444991223701179195217568679795286776884541806379634594114547891011211031599123506260113515678042825646168538280293846429569521638600473895999934510636272859401476980471117734776514587312288491897006051231841857153896028430030468284210757133608151315292389506886925163500613444131767938721398483021454065268354651721761076176390130417543697102839842746869702019830418422197969765393691239192460481834692777285071100399234263467102545435303904338119344348156879077696716509318256730748203152363572504141852247614420895767644388692920684755407108903727227373374332449135905189560211111493367749450548161169667795052384947712129125548381743734412260655608653521835917931763584774472514320418969802629056841018163288752344592436145857954066834990236733984906987892508336463776426447462481859160103515508845660864573236727629658499802183748821106665993219013966067647314553045909618991113851488020511948744943646436075202678244696655353071054566880276947506743172459354368417414122668466091492211679723313659421459439680010748192665207351075477424055150353591569589850410125643939069088461072754863319993442143478291397086613590328609189448793900257205279723484426918446114139567234946841571528990893310394928336736638375790231410471377971634729240187092481132618988324717077916297216977978332795302134326170991889933357410733216797051912939948251887793418535025567004645259958278455988444091913671036001153362548018551080810640024106963437978606472622610390040793732429128149453490983579703256762631226538877281408853908096493960410650122442122301245928358747206513406878573778417380572357206238097076177369011670870927295502089623972807977489441055705746103318630568381991594597971607953821541815671454252355644977841780709066577698442220367842823855727624166985846208124348677036158018561893296777100862798694240219280457241201310722773372993451175710135513096925011762013939910204323404034596003255901125629671814007059741497004776077865877896128767958401954714249222154294808209983906894004029824461593374535039028957120472500758017444258233064950551978230402816273879479490939137955450118117699335313402025935860269125890075996987331585418639380645511857511752194422965525702318582275740341114992130311246272569537947568588089918978405295091089413898472005555278447631055924528252306789655210864267947378643347899599409524203664159445066788467579853654123890210671648178914407364406777502555214240824529198455808201125643165644811088006973663330465450168993864165346647827795871949101425930073894013626127580815647262756197399026426322518854057493583544822750107571155665978997495170800684054119954287886217488648460204856127485211474846854537371895311854450731904905347421091024729076701234020708970722176554523781322684889250853841449111768993335257368931500689307988819255673763078732253640548789913347278245680395455864605498614520844258854923194723787289958983744346712550403617301431283963946429595962109258159127582943736166405429448262468303027623851715323976993416399385528389499634048297294657919877031283345011814379232748479193393147954416603904860159917096040296035077949278828230128351138740990525642814158129441225651104780333033445148978975657734874058868104162537508445435867202486699983873348601976052351992774301330679209265039509949827366132540733412617761685555066657713268123985058426660506444686396266424108695223653783154070412986225470887216619155173048039636096742986738601046435864909850285748247590635362513393386884792122762134448074284017523799998459163829828745313256299562530867216067472263256788067278082560854365374820227187355872048961085000463360467676747750626962108939079338382990670592217599079111454226799830246791400003011464455998763873315048227868949927428971858616061124670929383390203153802844959034714928881457871469703171976321018051616928928819539397232875719024125791803813265577347800146402192068122497064762581020695592740094055995833950506814194971811509824636141643559395913330853959293318964036864059032721210441224743844124540222126173968664163439311626146217400195318655777813828385658737697254145008056491045496579535827221464391919992371855974726768539512398658481770159584562028447675767652660867726807171354639193442627233524679245338653040539149928851027935721325860318319462203342623672270144371722706272027732424470222256423713921837254014540243602163103617336888287501529422276274034085935484343820846774541585814863727288015882831066773421362367649127270613903666455837377273731200791084776506568351449885418044394224136962351470064085934768013221227349442481781293939177127805996595141508388281503695433445528398277552133279255044418108182736185524657522654202695916660292230386414877465676661106087812610553366708343868177053191096565358508615867086007233593652086387550793478656559402508673906220745653943958647827509714543279410859281544679522153127065753126022764476348925863416909983555390012230652102089983168414103387986409968884413265547505169958892048964096997063329892656665388273529232609291148913121778529632521592301173970720446891807997165376047108705029120113467183442346584233186925539716008869759845946072543464974273846011928065533025284588160666644422247080614828060594251447223736273724949527405105140366010182917945686982890529974218181074462284911730706468197636575601873683575097786866603330015556279309266685402927392373637349248533336890963110734994745392134475998149337811569462088806753689667087269310237437601630472566891342046122162130174419109042129039729399556579668879876342998693550967648325165927491973080051607134775414082789623929689568477651031874706602847594940613792664367447871281741919736252348440502928409947181354912596265995388647294601304711093189042294855305478895867140809606295306483441365937898596374932937556265025847460314294459942212297598902503370935395008275068165964858689888291248469474670280974299249995501203928536162493688117597155271455640631292582668734126242631622079176212048960149100834664405930339432499596929274849545919762913770224848344216845668522174688768092073792232793539506130254555721783813258553050870146445603337346761437516793656473240399832379784341664485625458762130483144299497558588275599916165017879281587066530155061262029517846675455648743426589732875896909355516556115152732656048988721820142006021114932687066799353540241457672722859217239362700891618341888810984016740525223168104174172731187200138080961024631539250181752069841802121511211261501738428464214900670071997960073233225633357546399534567751206060499073752889382379868593383069145111486125045471623258838233333382811645070999735797194409706297410255328274105189615974273624290334793525776914935416689451688022897203482931282364936797880827203419264379185026271441177261202270987541364087953686410616724111722753253344456603381657411414010350063241794746072553719735921879639786388386827391010556724458404772334065212712893298686049900194098356065307317206058050677724279964444490706924669009136370767001488077433649566391066128917630268206498499014328325077406922485665295347704467058095554437690745471749702533172153380317348258644430394611644085487052931810004611358745154942691745526646433186609210007859282253971937988029405036122898597897226906894312749057964101418043352889366928436291889375848500650491973447399980571278493133466901753188449191145520000373738320491250699564058196488036707850321307751403093830464942104551485158515698692149890690982501518653418404287355546245960836235968802456775732460516520167176218175242274391693320167236300129026636816655602384855464347821834104094483709056950457362324248242673127712589247619107995191569643331792109363202966584137892020960742246271866562397470281477820147005110003171885443684959237639606637291041517517948414453477318886033330638250782586587612972546044378421342353023685555568475375482177990933124465802526244926729793107064708589769013143860822654860233685906551558699670155179842588540656358605110890499044716521045610765076500931427285561424167941450802047676155671988867047777348426475446261052848969092202622219951611139735984094738663115528325766490057334668588592367851431327142240249482294176944296590096650544597297158190702627678880536206421841624831301295496246309650715239839881484847437206209853382241373680162194378152762944985085305603576178276251456539915916002153870712889770837622611947024370732286800590927800385784023177034851933777197502167740621846558804639439115759296546222773609667573209455336340569380129454539373410109420506570424682436794554755730014058056144363412074986241842542634849193409744290409962886890503888447233393648784965861195840881669131818312033171406575096830785128082171792718712663211514971582815176110404713276044847967687085144438461502950691456285690974352931063855989686278575321570518146885810678458141093516987185711767000931701096970097842087728228231273321295939921965771213584896021119754969809921285205849692896292324097129719592392815773731183534099491895310884039100793833092656028318851535543984021310104105968082273445160645060031142155414790215345703262208033546296803768144327371536783576436123659250762202809547403495714419149118745716079892301887746673619265753908231214530851928698622645247415793860846846098678303607693586026504089017710205831940017054276208053440276451402426862641651936459539102057582491561730616755989718484518305144750389727032187438640640086795585161587389839118943564337591029379161322721600284461359916056884103951268856971590626569088838021312523974021219077424501929402024735517251649775505137072340413389953513461187000194234058616442248379099529380116979246376810063813244563122185680489245148906467507181157478570784081408262777527182057985570997650113029671322828433601846035664390772822453219549614523845210821547251383508556044829698793612358074994784872029260252918863448207310386866609603993242411915730686817633360978308793552386972163774073166220947560620456450914634560997386158702778167185964469353976043162400398415586765103888760247313272719273157436717033756615138184530942628899456644965977756890131216195907586130657947474367968771224585689533666393256484553842453221265901720538902407412268674508827639303991881629376955195041693997157601418001116098126776709425939037802867983770588182129534866448585516317893154079099107554646870699426200561782668866080768188230091093459458357883076646629542039888921288458048820998018490463831197955148605056647565142647727612806497858087066330175199611110683218923466035240722230814257797142581550147889198879982222513421028035336089257799351351150659311472462081743976440646249035616032850934997799069653642498031364578323364288580094937364972350087749418078586836840161746736775597649853509551037025740920438528815538036075595969724788875534014500137595879435941905097675231837890765995911953306777437107899854436395010480540413737032893598123712981834671691106488939140273248651807214888208595898118002690726853282161404086724370034233965962817198851394995977720319450278852054094233034271404233013184849833566632907701165336593982686420174766340011300735894731281578186293502916051518501751779824418701328080350041266763387185115433573492906896243735590693494536156446774632153928766457355708347180984431115176202092357607417443536290814965436858407410593525930645224529974786054422301520417848549236291835825239363063094036016528313391757770468513946653211604354483096015407311751423727823347050008505881286617854590309960340144042474702186707847988301214177177969961919002531842961175140713723577588347613402599409402582412364475089461197208357734790033050922444779252284885219166947780355180520982917104136403164776264997146202720957808358535148413303701039387023995980575254876091404157334021425601921248056150524490955401305067433836410621839166922495513347726821094358784456076996824039826838747768958362349501304137884515893671727199512728053798591213629677845043400378701896125338541649632214458176988665669866519694958395236927636329204376700169190085985623638550948044256120014033858011176520763963214244015218597070506042969310273153566328430203169964498923482862486023800843164993417772840569484242186162589037137186333742889744774598914329637988149252607048154627785793431860395577052080449980213951062915206217590630666155597661444947796947987259188967973622822372234352914190687871020535217563455904534415792194758157852731547461934632606766883673916074125558525264511736709797260592177806077959789548279639900729012589980196345570167975802391146291273535952601852857328567849957815132870824039366000191763916783170778531283750791183344850167834172437290695762938006324379235617801441410069010738366566779825370652001035443192661242716331430188638710178014829593644177139130593628793212978689499925465472376269133633986394822641417530422449066526290040952253210242344477030869493021138048255402880582673891638831786985553135467902564446613799550524269391728693777712489399497990383571094387169408943535887212041443671493556700833440226066444612058729550012859202964175950594385209919538819345888606024727646409092598471683310048816292937987814134818704461728708290529389944126163309860814878888258411014499774258359044635850672683141947660471594559112725030084718740066577770993434309168023724389436708755802901508809065604190447071577390649695194961652479944559604763525397374227041777613255859251447431020739370935264410234350843259653639724183909282670228860834717525857300378757564638726734817625553025024114190185958365779025488771511697583013901136233499541831509252198616944311728686430751358186578392282739908764149452764457433689830151160847338307482818693078091378138944515000045284497074794373686082556966357862786888815284444360924422084301371912713118149401395727905182183821117395618198431356499892117259039822111775814878465573084686864359652350644327363170326576255087700016037053320092705635257281360947245781889186118681196631543380481303734268827541654958043929764526932963572443623475558437946363556180984173453344788887019183273674654776239254698879524380412139708694634593383393170766104034535409112261788004708071439545006545381729998047943132519306322285692783913187926899117921902850396469646319587251169860855246799433556882665201136823913559749185806623603914360433193085845618052885692545217413240761086804378200127343270828125263001013052982654672897041070045621759249791931918677618494451410268022537178046318289668031980972560202182276749707627785959939197529154439953599218080783976731977278806530336457881121258261918599542833165376023975061824482894241151970654831128901420042347353517131859274451060132434455734692663955488877683154538852473635708900225170202043580272373420943482955581716021030263389056452250554563843892838570127718542894361504909861913774721837371805047664801680401578800006302845799384168979641168651102915426761599193040656535875226941304902710008714656546018637493283829545046417590745147869721971490540941960746063310705007298009195943096656453108117946372241752713365231834968824434927509006032001151237714195194487789597726019099397213922330503127808863796474230861385726479013954457366691112442918990425844085080994833541999450923954454750424557950130884478461054199582801943854519844086184764059024347383835760379863735887087776906559518636714753832659244647559392942966628197171321913545072365339203298865640178901520154680809130175998467154048588211959066779079009391474867787190800953780839289206775441483078815751305931131810865309539989420919880356430968408013773786332008108278458573931396734110738139541351160267869569205782030186318385433364165222414434936445849976683083538793284986985041295836371216190772605939824050670230753558574074568625835956504492411202864987931408968800370232599880379220663222290848704045331903873477578759702329908912793329570688444736854545048723010456439692265399780796776345696808156177605510962048818322718522693588594459466865919290514536346978236805423006391322316601053471518913236029057875712329219986956313899053601119925744189104149913439886504021386272417953020710238359487112412090522545210427300650871033278233349150254125718982116657154481521860878739144788528160027540694901084355796125840310877619872061391217973741136268497965083029546527215619631729948881057823406074849886661164086956304384360479752111668489252797677960968260476922653015094038047309327680443103107349044403961804500847714388640358275617469486660785829940888710620723468971897474142883948551592970562137721756215537924745830740067528015229537224831651815172284715556718837849802999124555633750011429448923866349415961972415891398497015624071578861190686550750563214374301039005641284613497362819722828953880553943123184931524826221262710090245341877413811220418962609667285255763857095758800413460964266522471480204619174090245125368516849585927419643155786719759098171988374558651665587293026962813252635551047430984733736821307495577512318478963718674298717715668878699346324068200349592665345181863580040958119141357475681082213029493107893105533689553656337189784227486416177881217461037364154743181614414068395911067803376382320041177269326014250700219849540398925170843628565846902467229378041307354557381780179537174456125073273180739941620313788759280230869225058703387469966995378284004584141687813478655027501695024878942719135466720900173962787077482292921271881102916756919395869104290493361984162494597225032250763299012781171766295909480197794906035619356680739600423470744052540453545715932148613970016023861002744162796482228184752469831659550753151945109800499572761065655305025507082987018195359297504957474726810713102035606183291420726182815841036387483838384621616837212739013336203315155045332908140373814081553041177469346338067213470007225345038193573667684827866241039044758270859235692802254598273650117506249298680986228572960177410095004330878841174855854834758766351547954547577628683097617968877955374920092471893720589204971789670223824238024072562192357620488263097468282884819441171483598518876776789994843296298486589548195175578279007814744807515898479828907768839840529123415064055632992961062804828252868149745550125229970810658089824845320419063421574461521998095889432099153080825851568070951182410479169956281248798575928994343995204749088704514905914083515327389327004117293479044208942502635434598292425982763822114401677402642441781349898772025859200084974914036660954359946598242416301588815107916347099198773840659633206880557019526898095769365617519894603585075705727459109269841964140563212462354698779028414465836988621360563692681706744603234986938781671828077709890780965088751934504900380028741346802782886275083717292694579948943876233217563905547125911377077727682326639176605824618471380411596718618424347991659972966284480746454530501698252535215559436454907059853132355045864296560169656612950026957448598395543945041527298584062797385516416586071462479290775190586313967399558909727993699335402219446475404706373293394956894240785911386465735026214927682665111974290778109909597349646460238858231873304237518557375359100622334772381696830536551782651421684604195553887472526317959538586935367165359325053301049924900866552589530450122079763564933763145809135917498454048068424161956985846004839907354372308424655984127700908314689057776455786162902723410693754312942249953267892290264918798064550713005558467204693469149734669622347065937633839497159303743842455495883832196214527150531322709026766186953841800410418139647285929682456729843544137472292780757066652648479175300224515919797198194344842730462355617841009172074452976695330477388558685030249312730375382632278595846630096866001816272733111365291444720814325839567515891252135509364811056325802596344451206406230763316501447835207282744217246775383695969973462557518333813841983854162225327030239134697966329350404416350298423397168568327992010226426885027026880214342421462125623135174255703794747772860638486117836512855735196558478471376097386552621386075819416639045315670623544270089990620434020908816428479190077236895076343513959752780727638940148121018262413684608443501832841914706742341733152465691273256388942878857221480488832800272889772702920653377204767270301229912339834412248020076946240568923439839988182323922447104637096617663918339730505720060460781028358858675553462979911841778671215249412343412947930015401146190432844442988961108113892280138656957220032090723838374791327866047702985572723432573190307582091716314906316769431162699595181121805545826105877100845837953552982732292341015262640042927554262130393169123711626961991190658652650190758578215832776236270685280203332420370904296008980153133760733130625647588111546092449509569820560392322485299597844462522300238709770325706597556042366579192833290783091229692427834132792516896900801754385685289276295017212985393114142744900935514031894669822128005752085470662053109366734680134530016224747693074921365061374439757067700205794466822152123335636702432945595667898364197020307493423966474444948702256934115914729360038182021814829680938595550967329875323368153068569440131370954827516633708022465611344706085865983484853032047523801385947967282153114218150058373535446601343372856766434289714693650965536580348897088631106026019541140246274060911518344328069894173994843440386487303759410193047070369379843140146610673584007204576565575739123893689733370673375767560817622469707002348837482575564153816587171984747209583955225519274594949587607336521162043847489857831784804160055917477774108321288811542225104033727253905351883176366788464102090322800138847835347662054680847584197542604338486984355801930358007984792012529666952169279888293764476169268509841767700377362288845621839158303106028140085318290147347381016402873328055476660482842552804836489528214374754589103166119142697662116785202585415262925915184103087820388890413431133803485394065586898977103088228182577715327653375649723092179158679975542811105100456937780799029672089290427869098402983276130363368310658361624135625872301959098643439189504531718063512671452783859250640315153165414179106644556254792508924520276482944619356447026015469996164524945969147924666541144442421973197958064571629893095339765019574204859916437226321997420450622409243840620952247181922195563889585658956375640930956581676034534351817649393207091114796024219539821213476386521111408637907659785890860275505074111675761883676650440643384933398887848128135514759858939318344341366323446059570769877662981647430450025149034978427054787629941791757119143493999989613864833523634543259796725936105540763802172133183277219645861381368237027753712362251162435549485793050927108079013516769038258019758453452497620165107973716039999629841829315408275527161772188171180578404076848495250276521560982432909407154767842107505888847986420510783142898199105093624189538698552026215669349375100672210585350388162037783956027735894930018206337935494725139328371488201011314433865620745179785975783564556283882029573739859621572044088608175159389715836367035578628245594729902376698325109658506778023835353924581987142839542833300282328026418791353379829560360315262031349591908463282184445976467741764199483622011299322588249488588943277610317197003059648329153537105683347827524873621074579916757844413597658874422314726615704186651335368086228573978796427712373056730615400633642258477146627284039941018470124845288347062134112627620154015936685205195353122443077518538485873057209102528220247488647455012487478315110561251578782344192007640852411006324178869587767674523073915107477291731377128469313518376912833203645236525780006832308803023332702608823866624909654892229781581846963441127305937405398547490082596738877560386182936857766900274642889190276703726093974360612623700989404261971810090049960163509722804335027448954904404462786077372065423022963326788819703413853003640892411071780989768005954105815780405379975384996236079083302043253161418575506658256994328638645855348467469736788493517575284165788955473563719737220561039865566290516385628070608520079682468731327803443734679532469547714803698833535926818667159615381321163391764223621757737469901184143917508693735406121750089626992696969419962244173090513827450461640288953715900906572327904391340743182702740387013242281396217915194261114400138765563555347025244848467954755569735480780086749443676000720574900617045278989255978762730849166889820058975439496147513989540859296082643785336831075356560978698311542651080958350986929768590948375565295084519399093393809948384021071185615869247431706445204098630026930941523053559228013345554697913559331806615506933590835666542136867685637859095196020808817804505859008597378082545084225642472296240963734828020332466759310834272711030369983697312299539827369536424879295763557229592846391914657216128555012197596281954342375624805753042255455347638886035699735666694157455002454356466535815009598130078408633759612679835890825860930042941837547717791564234165447707453078358180225409126020490719222023833776000027087092866429153011151208815242399630888420895858154934296667485544547291282343897256128719128975023110320624935102332669289877585403386739843052970008174636876519584397117439911639769025629266540851967872944248486255439222322313353847966346656421608801492743712473866040920361449631992784745519801770080885020230994485987319380090001884698079468419302419638095927142766111579038913132434604517374203361241038191746721561187073660046174057164659667687053053736219526773961377921069455795160614963900094370734009861323513525612295487344546985614263390350327748049266300564521397151305607812703764495150909002922327412177196074352767265616964532493609619204601379092280353215619297536451599534517232137042924393387950709453090449903546171682741145874120733491483287330481900551434329249703438476065617876424089544262985368243490561212991810632387755465801503814500079418621111194344871747338466518987021262959486423697391821258693530723284106294688471710689747363477682772226562967082648932006366471861780589889796151354417430114915306110340958451423590975465868249551360949173130275383676226221638839341217214180132857568138582128492547586611904555830820652906233761883764824907814266899555479647739856091639781791043615021685480572446437371565360041022345758436982897585687321391830590021208392763038686570045376936572517553010630213253338374073307983610244865534237937328314343420842819090373309963419370342087244207122334113656251630686051539919251569093755362150908009307907632208313443268031356155477565619623404263936586776851594976781692973410062989420050147174102526083529457854529769912932801989115499259867335045235717399441349638304713686192913333501004713317777376022927827069276233314752240117044577765966212551447621168867041480051885882894605476952468458726033786386312277805349669256630485585090848489002822535098483714176539864599648633321925015579934109792393909289634253800837918647800279479198901549981845989418908384930771441529469236587123542771400194314351074356521402338526353781372283030799656047862465299077705798714893105797190864889067631924841182896406727905816736587814160977327713614816102961955050308489971366187102235885705723039757841918268755135537859014434075090725322849618004520181508043173497805158636096872304770993455985202019062894630532611962707629560542256523282371503745173250949005436148242004517411440288329203610702062431572576615070161169589713739649379776399527844652228724232519558857182391823338937164196864084089801229261102046855580877271814440524764676787061540746464944221282318705404916353647401059366100292157452139177932386855508137786830487928105713050852613247014823197165646659787534921244169539111306706338623149045339622443331334952947259570209115890347963596873667288087326527528029957662336018320434858896889148042873127570526840321174536053462533563955657249580231155058543304163206043831983127290095569882140152697198708299818421610682852962486412608513049810895692915282328845038865902972743538759159133798733244671432087272492723903288906943978756399093014594982595854977340941316879564479348276913310247852436647482059324242021891673996983040552779800487009539739075269319756032007862814925196136418747790962332196717509678808382764409406056238779030630937645706957087031208873707891489946170051104741642532466449706132367504956693596608121956474615969497122009626617597202500315100111422203111725818915948007929166211674724455328338333466998846982762790604544530093254117964346348871833631177523640617575353005485308107840494665755896074694580782773611020180121036521072328689073670468521413263923508360639403755394986682176897262201721599003647275458862084083178131677977314894409207112294697125667627381661484406190661544995368215139075334908441544553519262409429711619877410548978404880266924077821949366587278011369051271304219728587432526617578478430134078980223695815800221593619183403218234700175523907810701724158773524843928575958826716767645561652346565116901153912105718541792913194725997221665376787972840744667631740439273967807160636451142959182071379969363261112369135832005146787301843316882493665276746929022615514214940430504377211747691412818568969754276392897960785441616341885644628769431963720333611618097517267676911605886660413957056017970718790820096440383268653947624111353272126017407621358567842765524185318561999071045842710505455428966247465753371618551022562929073362995857501326760194656486911519857578974890979221240784481056761622946384338002658381652393444083502269462703746066571928101285716565499539738660066953917097732748404320403125272222966886565388002380009952599275274456311717755666091603774507437300370008505119085565120916685911592758288997051452753890620215443264104296280066511282854421359899416504707966763523479026128101682985383515548430395983810691576264696052056090185023691729987003904746051360772156086298756897201836614868118678707421788300973414767308557206034639948248992205543143477140507446546859143639633009667520286616809945703367360541706901364282029211961265040106168215006739815141587130764569466159556917893729954073342249212949775368246618118762504279333825233661198250452124655484255834639880721401171043563885015235911297055992201943558600902501451657712834618388999461376754772679548374063089405154588083859222260048364542526988036969752603504514425612561373527957055945669565288692543300390088938989156616504863682111715862100797708505193482779409656853559021586877612708602464662831144890077218388134973840307731900355327760625848123083106224073612343662374391787103878518443674764439267351338535539464697783792453493489288165541558168488577330654249857245554119923653572877737529390652398767157089247824934416343219942547438396404356749471436410110377329476252056897367494996972302494261375563559423228159164120579568411620516445857102912793625473414841452636185297396135978401165073352963038939856556958913836276653477981656151071910657735942557731735555267759666872281531611885664041022038786605560944393885302922099518024207369517974702456770987712508828464885775256834897475050734248201120808939769529441879417187722109550353490823200504208495158492037479443952652852116928558179360569503716273522847216518935717016471886119886746252572580391671620152250897093143352354608768901580904194263669742337424286990064865146211299868933564615064763286399348189782791147740926055497799661659780662079694051632834789204218849486627563806941446499818928362534131496060974708043894652638486409744017786875304344627300282459521990235412982944623092000061900115284759954123297015162315379292205444806418680047011033862724521314308136726237357183835912281047580498190194031269808124461552607562296738010929509654919732703384843940794123947241795730275732115569370782040256410795715560714685999763976511559456280649890430179329766414997687877338616976333916294678705449038150199409210768237901288946369116481719040555332820282792387868329740197298583304635030453177478103895885077363224425455226113247952085493660172359367240797884188529314899076026082830373338018089807974021175354905024537249384079348350581364252161967744427531616695927024203679575950838028551936532722068307223467822699197997607229279736536919032893996672134609181145938585489909081408220644313998588909204816765356662085698318290062457654126095218255752597071896658197849383178400996096596939927306129377092107419212823270702750533470951938919913528358157742224215300493636229146580116502113929635250464960332522969158898989108216722890673222475245037914040258125326513324180360460262838762425159593667796321761912288481747633367041981353415520486167558394288581161500089461949701694103165099491350540015390499759123031797801139155994519101956804190941110168692084889224623872175442770778666875882896612693588549868610618498368093029856134074606762177943310771082671560135157388924327125462171936545492378503876270037911994118706024946094112576575528889504365710271388658675416556401711832917237221793398612251141508327467037195980205750208401520426877165252768575009904784813243230263497941981765307172751948585123764054588112004203952407981373278195467296115537207542406508505850533431130317700480428825433307360985335810347265102761271339270216551922698476423557443991418336333194387048104435864318170321514612316207022962316405136908670958033176451667245250994419398149728734531989345241681313081161302024154030139519616580077208377094276345869533953153289079243811233523359041070598361758302432823454825198780355363530209144161917317704892675891692199223109562743446968957630727444977620263626713772086766487624139375874964447269604331553319248142181283529240112202847438803215208678478814007060360735534188786315671703522730681815377752042798954305960685604426020389610386495327379690427138814801209582262771227098826762416372764231983587267985448929971589024045983964369228286189965384416441230407148185771558292621787655651125702753674921815861513663210634303729514014925337840263845510276234871148916652411501353015954817711979736376627202698846702947000667521972090241786068263697027558840849739641569044212208964066503296465952856280933816440961851958546485398945924405254002697714967237969613559166478304654545334162735308575047139088708347785826174285540360238035856906952935661174343712879671595051165022331676940861421791133839706292298027893098063099677613721445340983177305055745717719951144439004067338506933421374708792735242818596791267758619485698862796443790365824281612222473080790543373838532072111697353930744127110698371491460279144541408150834113269179924745524929662089685265489937310586281620569861084086470090952536989605824418721116831915011361985363281138824798556924431387519814804855786282507682808152614297954256814280831369810647006898823577257833452847021467585038750656880402458273101740299763092089296315990664662362389262517960452631971001538379651721847569014645361179520070976285765354379653009181567140082465843657685090473143499303264374242047085476542875509569558023277104567277080225908844616705726597326227351534357442042759263710047706421634424939387944339350286664827023047673428996884062766896545756035806117781511086004544871972490394752183247817444995124780300274484497333035719595026082573434525571772994212838777411154904053946542117949670585484049927414369465884059786187895736489754671815812886377569233557731182981695816891091699220706337509181361393690322262435614662009095640461787278148511098842488557952899141289750683449195947693074224975420338342717028198176479630557315293035017793169245756510576448921535973514735443679492680102850885293066189210262019140099888496647358199786485094262685536135397684445566042851174931890975147925321001413082085305490694777165990604934373168855923185230107785353114741657453342416310407182040727136506969037886991212666221556164719996925741794679656294314979899469660156529527305331974696789763083713739110869928573307234355543585159505924262406858627864443990039948878970289576756010868682920954736596425708991353506561926344614341798068991431349357178522860112066731652734950235317995496376867181183577575591714677112225077174150083228929986285529074074873545726513725641979648801013368888726675410705879622227981848739623126778094178832704260932761805998114489357190560078414778783317096024331310091428951605106606656310252138265880829786479780535720674014319405918510470498031830296829024081633045990553330564257535673162981235007849124447580007173029480664041009459875441107738421539347525025095600612851432116256229501553849640733195331615885193499098311219530461691259243174796177335924423136891664781711185193768836102703009033696899639749781404817318275876265499290879129248744372111908398189488324759707800824060986188549580425679940483872400741576289432575352576169120443180693551891153522023723350300695291554034172608313522334450810754058273880657868019368018898608365201964840466349298421571177648233321460827070778049468236362538176672299179963430677640802002663032348877454957952840702878540807585266700425703562148091990129993742790430210501019476374066514294380509541714910739194524754931079576285846695183393891343427274755377967532751111626771851885641945434510700296403270853061068420676017647940438597177519775694415039321696462612783811667245670109868623900873992013331245516471759723462429278060443898964577660375321009327699846471790418157529736440697932634140338622930685168019905525767823287249809395971596112730941594553368707702478035965063068076187915480110515847752030285793104844383155116762940549136169903193053125436351896603770217990653331421689497761266056737109322650738031394086802923042623092415346077349549527809318917432316902925516309172243634914498710964749078707674719486164017032898963309329087690272909479005494657778454076271732439526931124003461243910807944968288496575584725205458366743392678714744885091788297505937431416962056419515266931228804433759003107741639795900667512663550856780014359875721941006185907847889688016416731521008033811785862693507919323314740225797123703994565744735197799580438208942595612279968823117967989488361239970834550089942378945511444547619175426434045554906105865948200713963282843976384341381748829874637688608673519676237387055390233191110795263326248183329589348781924207650480961464160978303810633165129721599179239939200026859146151719127900360400669692145495538289904797236597669704586166300606608003874702241838380307705328966196556586157464285298309328439499426066766933438637048090706431458476943951714054008319727394180975738196405387893041928955670209153880642944636148056913426698633999685866105428341709294144208641237876214926509868012972791081651841360260969254088847038402120269879249363211215348712800280599441430030581589109430839152245071224211700105862258099188690303487614617817666990045860756246226894982956836348922702845488894237955297453077394113423471611783597890064505503159703951469412543064269703584712865109866094764025306823702096597852179304369676558144404256119256371676336387238932815567775901194517876819946242666703126490953548045234528457260840858114690404181007992672831975265959538316102014084600065983541960999589132136306723843114286115392586785487939624109735376687665383979009732483233229767156611607145729521699059103249822236373221468139752911329703905354502456113777774361585555158372165921702281911844939759372776572178209751843898704239559008664503530579663090236080526498531795255786475807054212652760572387510415724879742848326801524389309264740027369055091453680937045367017251196158823410075427305778063122424169200889569212576457796859085188007758600637272117422583293936636317697018140709567820239891853205585063812645768115158940465906402288182285104720115216276888372305909894205533846564669200372646440158234375637257254340853544590520991803900868363767730475493512506858499659368225659082247494079248412925353996710425619900980763618701815392551723987814125816728467501686594305435641564736401768889149587731696392452857380123548043182250060124275064778612866436666740169708150548159673347851358907548666736427057052672826323369701011034611965698891645943718631693300052385539366485523012452400938614076452242689797471837920045504823673180764541372601994334110437216171543886265393268003912126754509304436266952920777803810786535333353088833416405263819116262529927852433349162712334102352277936387298937374335925959271762083172538368978630035593876625506016665381422123610794345815371883152869172253938234789276483340272948090286341356281546168391962614591471538518152970231992687851951413192994991287891387480598111944741106460759054453495184772958259836543930052580532031911042793812830023622489250783301961825321106929444198313265892140101100584094444222180898375242805464595637627326407579804669616688456752221983248432199641682826769945184223954251589088008020233693911304425434491147181818339277707120920261663248622020840701402148471495952246749435538224779620987441731121542371195403102699386368504444726829569297637938849931561618043378650569385841770191511458127434114605618840174057931136585429659965811255471609355966875553095506339718032764756149180887790957774032972980744168553314310971970095263188983960963153969388635254928972964275860671740464765819311349385140526353348038293752103603013536667008402767040549402054566081914309475272691984412894562242883087030003698018038466537230027868179507763811983136605141034429973507727740247729471247872469661875075149257907251000665966103894097772094098286841708668282836247041890452140346234886677384559648763173179027136425477003359346268815256330434887927976106343538887710985550156943971507135128655567566899676593715155587346274117407032240748133913043363097859716780757586393720801427354877079966858294774153722668195932989007997988118910648960399021206314886597161494100455142155806785903365357512012660190056626844843534510859448491114844316914346206281685721203932828243100615222518886536930139411021881024312160242589096350479856017979004446098013673877639899722705222627724867742547571406248042711642223326942534575336084991842948210470646019019729894059951336869802420031914581114632497340897127320368132279697728071309089479889388452297088014153107927136429282084438820346030677919251918608292354381405209835821577410710551868817337676904218076409917065721467478470987237424925288741559219584243512907759664165232442153969332912381116214447128612880213679471979776910166284859351091678678165877297719791853967030937110245065283508915510615833466656824487869152089268606292333783498723545116184377351057717386863506193846937342830055125877397228548498638760262487097007567736421007922284165232354890986433972838883284189336970880982879189719163088384241713823104970211691273786791958743977470895119433762458671653267846885350094092758097044024256050570299654635207710106993650372856433528916946960012172103913806408863409499920638515293629452670872754869067725049005033903159513135862274171171887774636935452498904064438953703071787684739055496132628323652890264589678131003464084739018715020116946553142209800657863399624638049220456553136023929823387628417645421293644334969178989892517071094098629093728252503037421914381697085166800163247361621242757956392971995029167136458178184288200861207049687048177138172565488505072453062537668200936734492059471814810797593298007397985009399441259843984183662415195213496397123281876125208075404712648026968365835266406096726931276910667029880064500103948200847152680880760023796161779616294728638876921685315897462913397158693131899931916730406012981129444995395247393625007423467529252455546342852478403313631634746672870782471919729153642903734604936350464284898981701060432784596250878643621315404251850080379907021116458251995758585001845080279605188732573915092997304244395185645794438021925301956505584939940966908566189782742289762137183391762993714603950676570662099326942097492746399683645628136978740634185960612992425192039187767437302570580112027532897740458018114393849228231812422770549333902511593890434280506109369914643315831942253642756017701502842347466062383725715318196757282404100225327731512603973494829714543976494414988825940086779552913981706242864893708939167640960410411278542589197888665669351484628421161890004475159204515224533751341274805410104688603481410509671015029654422403711263521369220283693394168148732746129735921369838738263065419423777296639915976442939674411703503078570178793561329234808686828210241929819439615703665871386115529879221180846113623578743110437797808489244169894229909989798614124010469432589973110563591518657704070943605093126995628262406264756806307918497183244471446116092946627495677369652022105605718963126984796633206399372370823881961041017161054607650991545542342959450729838205083333716866774727908698566716310804077591655683407502522982945808900145462117764243195604121539595204596636475177436271022607727732426993145502034949801583652411963434599373532026607999882584356591677605332487606679599635048259510158012443987044423206764832589240256321099215610044683671749097875675906026290460740996541027356997005526687013453196781633770459794935323704387901754650389030319155849092894524779800532851196939805762665132694428180679729458420328700270568918655680715942478358140351590997791953079540898605368302573382673617527398481654922449882783541747079971279476183629337423837381926102399921572062694752210728770233580271268411975159009660164552015814568551731623131074590998509269889347526475875495923726698522103217186732199899380045253507602640273710302475237183661955015906995073647178492882160204820102174643093462466796555182536939390997011835604371220809670250392166827598059236341258379755042362845072680922489942581091954701086576157049848862493461193854967423707915611703926548586287856312001502785452714171311970399841213196767438520624226192009688431946152909768243536027188627383217040061863070009490917990363712980914928640762372694752603344666815843018359776010261287963322656575853803974176265042627204528534380167310913199843827680645374303136454369550595479735106450624757807589245889295161015270263551952108426822360088975620136384630348251821775138874518482300355318859357622291762562852042111077992935787506310318032019143598478548345954246857536339484634612870535587309945357739462369423854362755291318233078927709445147768558201918863409996533423611655923816762520407385181087909705908226970956407315388947685374539569906228994493850100256585368114621909370211272794603741304272664997414589969561024154611235540974734866342848454078167924061557806321811440854772480576306000535711564149542493677533706565832128104265031545409896935153268239711276198278228579157851265021170614884438456189255382553755919632316470696261860898852874777130316936635190435164185660398306182810287458046348746318901657638573109897102853872245306167673351017105598175331280237870839861958878435882149083902228744015997753445806202066700294375773103532847751019579109949191776914282804920179630992223377094752705488938784931105877622142233436859408017526754939283583296649194799742261308541059036235225494533479228823553054269994298136433534824687758119044766327682035901316568167199923546414487336316615553768426771928761993185048894743539587401425159906219691893026148248107587373382216389576330891690729057500821880561983236199991809529239470761390270080740424957363225825448299600555014047573062546360336551470060009686750604535556812589619451042497974593255254440680053302752850564733321283520071617218114143794321024168470990142152549020591184086686962217695660594414403258706114588141705007896574121893725638013491357983905506597853146297402448094928198493852389778872998256102620621949417202946436164601279643003115416962878341039216032772409735120208860997331455175413399552723331450103766033884271127444273763214051311611707471086963294281419285538397739451202332425189856125274833537625561758172675657896821009961257835208499829842002690995048414543206312413320747355342859835358043474170940135933913129434903879919024947933355994694158153184713173643717604004867230153263109019912681419938682862671576775750477920805038769534520996977325498872298350676255448663238334247970438184464738136289040515579324001707838851864493789633836297720660466678387543326335930115169281866484670705997113078673856235929277387732620889935010808807914153004696999244039120311743868157742035893956588034103426007791545802300891048374569346719116018954711254247216362379833376071551510420517628286974812399958061600557325848801522253445201456890274890430366795444466183835875212563889894510102451709493054983640180838194674454911776668862447831306396666586732034338511517068834780352485040517955818942577096960910025158611598206278059694521394944120049415689742071314002929485985024878454504067547028424978321120479834435331459104753128665983522774312768929840297573208189097205631278611265018348064868304426548835947652731407080880923115871687886511358204648140627384458691440398756763301339002496170156077738439984840842505250729570617468712714629354589331185609801232766405277472739036065718071918626626832324854983656406875247520442715228922687350805153299928958364334661223256632294680341212295618690935071468286197414795056121877433531329320635757779200123759724596754621745739711343510245568554674972565765739666980748863886827738513447864610596382530481489122040461936847914121215985611020116795718830611683630459363330563114636759527798057593016174462892062344197020806279149809656964633544365849351126915572081846544939584050038039035184380771167912479684975483851725335592494158660361010307155918622119844568586947107317548838773112264217838384481425765559314385465978668161312959431194244308986288957782890191237828629174800931562172767807599237994828561610371256081508459740619731909279239741320398539536026645124007741189636474273736289734376769591668718117347488228848683332990995944907661322266166028251489867417693495477911263885572065213846294523442254158298881142404511250842820173422671318197545799478253619115386530353027804273911844197221519692830000440577806437193268227044030157433528123377837588515572018027891399160887159139024711781301914876883015165297626804294139094964514032381264548381215288639761875287572368863791009363585311722235330711056673401484845684356794554613725489680874785708107864815965420398703321578513412265182682552571448202306535638210710989218449148848814652775709996621551558946616525345708114023781328066177208371314103992613242716582947219203101331798610472717973246530022809714167351049125318891336183017889307395844391727344826356246849267677623494903117755839920861798782179996392560516663803032284358643396814717522137678791777000163716093309478501609428722368764996305109981921468417032949613416772101989844230695534805279673806945068994136916378848401933467216645310863803964071026430893435877875595046811267266671433734913821303381531948812725129037380684144929060794313849996120753266372197442108793162836823736350408113634659434751747299467797423516126684026150499976973527512644552875047821496178732671401571429460086367525961561901300171272601180047977281638509500842047926477255609363206345685765478944884621512433043433449747576104366411278860788807268883798520928379368349168004689867207731485775725444032844725354307435009599858501382658396575622086425638343983448046257663253859215447926363963966287647830571203026557214214185186668257755970963256237648447925594657500446567654328692594147814872155277336202630804208564361406258929091631705407110609530766372215075555854263617645232437717033039780722356955547911573184604466166512853298946061429727896809886542147269321515968027297083752879628861989314104326257839617226069780853475667992094973159744329360870167837492531854483748547823774911399010661902399809117724402695207030356602162615474035851352322498493797483134040551562096658114274126625334080922631455811515666114211072284273112220758088286724493975609477800289222701547235583482378840699199332549064614002682304116006296274053106077708607816422033101856518414655799107357723060730198530460892948163986034509755951880433158794436281668566362108313228053519423109632000583934759452720841831474753368952715115115753741372486966552633094328363157160291521105063037456171791483734464649021080090684692114579320284948265402885716153588229102117793871065957686688351007078804750390296653734891919474025866205619496563649579045442065423430089601349653153568632955976719881706980425773473320071287603042614018733213217828667414530785028547529368729798032306313626924132218260698331715116384380429221626469708497298365019137246324243395856920711629236074628645664820087790329328272168723893663309407225402367667627201491882349833264939597212453675555307600910224632947900190305459267312651385161711286198471078647869569220013878164930510922577121255601925098382551932254940741035526125191547075847484375067427118601773463167701286888628617543603046934150956112898692590812289495204897017260717635325029442036890431983483784134368596447661904973880114652395156809978292028291021350222421224746581015136452132400603546219931474988360110757941897615641052428068436292429713885826275527620798223957181166288621725253601042095726785963592245627826065662372995405672458539143525959102070429960681406560112850797565069108329701218291905654343198075539676800249152815195774236801839438250932647871383605457473070614605160159080911610537097316917659749638499514817467945963023596290823108027963916760560442772904221643977364023288167230268070855578969546248109606516008452276940699409063905105805897291289332243931724327098838422756261206329575104193300257984688812740357227339352023066152417892906522581919702163431807596971533343395483038330891342948628539209734854401389721602066022163355273425061522604807658674455567941650641295018229782639993669813655254423225826161790598982155101041341537393553492034767103780682604884516508885253410489060579067278367002273415039967606764418682999097685898312671516497573672629393509402929258572810978034801620351979240876643150994274504920799345647359187228109921921631417092341768781350649940334794746941449889601248669127796340875131159729539360068526867387604466482783084018421938968362400213943916223563037109536525904652801579905458097983096578291097303005148692950649014606360334046122231600995124981918687826609973708078789288048270073489477566941047131334555122235496606212906736733543419126877618582926935493649925840561013593384893664523002026085566011842712748091947498281660279541210130881288962873767818546373079525798483465813492959661251349232398154546066309090430905091466573211174678277468303111506563872389128621541095367704700621969845851270317220135427174812275269386217494160034107324618636502682941874990034267920511675028287912900737249432145855094993202512505201274393480952110215942851153039801380634994069296445966770029745654166315239128653430703339236228805365512624878417329001656204869113724287171648245489765258237143247465158463778068201610640369216682468133809750251186565720404289237140974983519342981288965031589001917930570622167558112054974235318249828469774678291095918532394174603094844301429725776845539149061958968348794939416236824378924206844969729509187565122714220673602936727049269718232591209902201642216678646223820795819265297954506955698414337947948069442784268431056362080275454684769642440802683300566022476275957524834374378829064596638056588727464154682288085741978268452103489326064816225821617400737596186296723569631082041781224914858128377345525755269920245465194477055181894740083929855857375762083064514813231786775204741546012714109690410809788397478914813173158324186464406093898891709665659406591519724850101510479185447731015957035811935802397944302222166249538486714973361882906116535240253497245116268679428492841201869650261054477951237166234143795867364220579803448818756666290864090792864472232576606014038746565838987387460526778447635106292564741146271988022250581000462247216642423208423217171686736596891391298803266232859884314955594174595609208853569009133886225487819145710483379370203323776758863410218971577482184893084781740364109249729131667296132672398520588134243613253405811589825542041038123906828853889807632803921672554048773175265627627804674408863684240578922290766030835116047639980338396809898363544932627335322877292293697720119661445010741199878264672971630656192630887264045842942360368640440482384675074566010798113915913025973494709700775265704322434879090541753158450123184551837706861227821758225788149141667774555628980221195148822474000357428125499337159724016921855003987344777951025044589340378678103786772552668328521631167333718090825347317410836324735729458941696523521905802504441209402865757805321025358396772204918818180866613932409431736878204119585912172908801461829405448686147916541002645310465981388891309701443027487848201667467114563426268655897498838994613924591732156804368677313761448307003642550993826945496109076019884084322329387146029399455424168043617561110235312184543867061322917456661057918822830670437328068437320282241599569481166336804761547639226507018138151802908883011270019460310803682063359744691415722815050045426411208689093330155965416999630612434840674139007553973675098427163715531728017634499873881773434845176609699533630150598820530738634677096661485864853017137272713313270323530044328551668740131374734877227380194815927031855432055189547979479877262620362314116530849369465257130061920552998995078481620775107613884943485939992199775881137075771290801431207245994964412586639685664381961783479089895972764486355400097594217161319586926409851367691874825014986071157163406006648402003715330680794457767774733776228999246311335364723537110348407856798787230527578764876653822856352901565575148128167927395112333060246317566157223326851269539683905710012291708000355914664566923212015524652487366627770415520168140078321639056562053149740121078068125012939158327576014895245615498585051043806293390360135042537979662958181367699556757383089797280796536402729818090018795161697428435873238319311622956593267581817131828049580278188070062988345870861814571736782748064106055946331583490819361071505620824058326290084018951224959623028931477676614896055790370945825447988754077280229672209164049347292218977578681785226425154357118305977064454598614043620220677791383342288605467513507300000743134807765355047745288758487962206580237146905572377400525258770300638519509746385157813778738655931204897981259512190122860894536350561098710425181035561656673665619518466905416305937914299091996577700725425456072199118811323339153389470224364308464434536680081460081895180806315409832478408945890498436957180007826206926159992858310298769796781309822418785260342110617286621148885157862993440087413209964871964936431465813868711163343625235506011226255811603193361043381554844166755835479600297720482234879197082220379442803831268703486538294418420137007618571892763134948192907160511936703814608133657492766958979849821054022134722763611006566538059856538570895719295881473122854236020320146884684251605074594836895469686717724666093614594183582850056944845994382632274820964533775049816372992060206340779059856853327551174869530473238258306819414236749208951766096776451528031634505124839396109700435476871644297472538390251050348331118248518836465654618423050070012207206716225268925891932160318387128088675890234406966887240960492274558864762935058776904792753907193485594531044008146107302529485544176259032571288097177886443189897765799258339656475800903891453855375614567052462330444063496730414292028173309984903535595232746366483126917923602448293419711041534597986523469041199226427374009006026014038687906266605250395112302604197146783698117012483430189567685802195072415414780414602308501041570399862241058122907249371452027296702904999956814514270494546054904723107060544610280889484770170252655881061508986698361837613806187480853727627181090928368724401705141674036753776343551017833865568016989011123864357176597387709636270106803842047819971495751693963536695852844955663476498652585298832482097433836901644240633893450747389090204707960333393520564338879684538152118192412504913516164942799280623952898399352492930440025383237223163239916793803159219356306912127455514354547087925632542463788021336840497411709598250910805572605168291381517807432273498983582960977527861191880708456689090870518697739744818327089602365637032172132892304446748619927972776546382578741661941944738788812479101546090712456464979304565032317278685450727206233417307014793434689178570766818968703357100752350224152757690885094853343175126063847268133735362844571094267814095529199447475675498199534039331299786698330520698208617998202122074011309299986157929190583519915006104419717546968950887848593067393200145629433132318766930036681398879688519660221449376105886264724351960639706505967565102212104231075509090713398960636321389687435028452239270470990146584150860999461535087813593781739820751634452264799856119760815514013681890758797537792932315165655364944872853603415181982242520615161074030329750637077936115590015442712875341298255838798969475718726780666288750759981889867519103361732814663753248829150473745663248180619225402364586544152743363345844102280644722220708198395746510381472976874456573841192470469597656532426707133633827831311788683979980491476473240917514479366773167248432340252462068517390591692222556273483585894654207453684762584460333648851044280263148788526391128178094720721910774896434545791689115606226681896390075743438266173330009379318752059914306742111928628207696710537731579014610260248577492131515819673820597815069153223011488453443827656813658303817433322695342038385998905952039817158670560756237421740951375058448464877616917229748376087695512428779791558057216117185247632708261388304613178003534021874638211141798535680429874928012951876250157699264108966486146293657701360749149269452872733115524432129167455105111277405672012019274944706038688923063513604376233262020151784962959570731141652614554969477891553597310635131342008005565412278977445277219813151422262799392918746947633599765536122449128170157237399788140319152505867653725423820972600460188308688486685254628272939811077251674566008712917482874409144114615285299354294074712625112792438615696471100637882631512721105283513460877758483929798837094182164295776922380866242875543012812423994272402411489770455581224599836293695234132904010607247468449862032478648668168985214413467044704844532457473133113124368257552958144323289075349029279495053889922644386478467566496087206113512588767270317968660902351423779215860047298436297952058642439825188466713451843838783153475296688248224978931613974305583277785728100793208536265790074641558751359811329733643191408609504569884775807701011595700731433972403062151680825686482775151446842610044176847157010968116418731382388847236400928266316288305857746326790470503095276945472651470415621375231112871861536417078745099042540205803086022313029032132274895318623921921519615838810741224798410333633522427039876275976439619557705743388176230742033805303546673480228807919458140677681297242642550568118195685077766034875762986384295007649497645811608208035440433665836221099080237757180394840319829132381660727241550829989090175523671265010372924068272396683348687855489486834970276670983989688259187424892127022241605642154329803696232685626017109055854668107912300784112881493115946202082964493743463780181342196639616996380963543731210258515857344153797921068399044416292047765295794429811467465863837575075343326481989674420635003349442498934235102608868190684580456893193159680047528863688216915369706011714039401899978889938133177034707368146337119715075642277472961643135517975002067210262335454952791212275114235765492188765212501081285651135604775955106489998975081306475533085542976470315758582453621354198527649282189779794196557369288664893231587337746113619692503970150583882605391554126390291092848326886860076997521523465888305154195938785995043863025694796389894058281627150635921687806007755953674574390028285555079695329534193996781218564609217815933162519012650753435471264750601564986716242701350457859292091641380664465824769057929981803526037049884186649054036802757139216152637392865638340477641888073867366928270116819881618912301629256825809331933241134088169279266880125283306920759957224243314204847698782980805209948460437532976082486058369503450267469543563338238989294363687693491012592980305211105273242731545870892027131801088526380686705533298671542626590824700285228450820118131956829622858342647014598592747558573490299539649088822006728815509057747433318573484623294399837358577040372333063048130488516943671104499583875425705471681324475854777562924090476166420339997932576911908119747842195550249815306389251187112469696711756805505500479515849454978914066543052753732359285756826071445524627151028770812644823672726809110178359250809525834863321642777963284739506087639157058160483718154282220305297430302386621202584866170522518337703150425181073095668288578629617448224390090735960286905583948840589283744139595769906810532162384579134679749476976507596636235588318530243519517526967315844014184836389288153179496331236561377061269339211132028561206008666692684002989766955122875839098810028155569312091943110095637073208716040837442827942176293787358251270617897685031584820798413063200763453550497022384745959659794987456070581244377371207652388971636889100581496800572544744073233030135631516607681134182892153265426936308903755029962528355460926217101173487742737426747014186537775002722142183897352667656401784451391458325410467135915050411734742504037503122428352649096293639390140302383578195669796072158737081265748540717697566396619822152702083064611770920265479394439062811299722614293224223583609659034214972850521748061202717059547379319836663069438221622365079257516905109851439482370474537153183990407760988217195583178069817117915008038418192674474792687259387025332392888268943466591112788394421079403897818923343530223928208602245200560280028152338263386276085040514586560898561114073667698963624663518824239547924978055334337766737364652003196826069208786267905826296502496932901116846696249302955488843200992635511100468368090724232996349939509357799258264618310744071253100350311246733841555674711791413133898341388182648446052640871511226296858667275246386733046998833381133723916621180060554467581519701730182492037836437564293933494560573847946248289624130158732496082059654480545830074905260652021440091877513729685852020038736191858674061472553082392774317939916499345326427140300484650368057020965349050461296279326738130673097113874817157575150702022521431104356998504323860842892169840285378574471805325113835705687349758177508136605328357945095794336708433108198159145276775796500799115768549489480877369755753636903709103829335062347345073998417210253066199268144408783081236855388064814546355304257167292845072181570065372429229446871645913323939231103072685327316661329705165610127146006571466846677884763798150756086210255640707856359105776589344792953739399612429803733879230613373001929463373644823930918017285967244974363161803052747367516156533965700160487689671189633747251888214955591477207354206967863654949846389448833518106001724459940968986574397721272832089413004533253482517877194343435658313350230429263664654443283114558360335918523084312027143990058623170051701326386833219915486222537604154547449316602413412662905899656191272760604447500175693304696612541610158266850787244166604160345586407814287365707924880795610857365847492696662095552939766455440912717198292208761008857147943491046225861124134707928191274929096518752544201927891520699461385019672283175920077619334803587236258949760761226059022326837776802526118592097508571027639569670961185759841195137737825738782332487328432267808929738360749453928338380836830815547291070083118234587268641392656000000213195639015028785592492217048583692404001623148841507892718367085887734182711603609175028483639909526517454710600422778019802155543321853625818438715171625359136540530753820932636202425135096482869533895618451979566926129017693776965396488203041461684373042688187975172251228269967477856929783745941245676295094397828059151941670567204563863560650683937860389694746102605188628627598992393038515639945084816843659820515272977693445581444657029555559643152710602814247972498433355336306776992120286632756486038460830756100271687063364471506050868224173716915174875862649410565652719758456891827762279410874618753766954676782974121983343397199333861175356804514244755045803267546535862339569470235137609125140418093834516560461403534073349343025811529495473856346399422388978748745518375774213757197227115799721220912613497736226748408170999505181940328645041574968721724984368511289867857428557221775667755770393249539427730907824375149477510011297607156897309484442403065086554280976714767302856138448793278764791379971804427873567508045869258238743059601582200830934751983030576425336174503812577224365808055097131681081478025110946877300610271125058980773125536672351319870998797023430900108762139031824136588444887540844511806493237116026054603800752731846905237950979316582287139049417729937209667006888446676078406659792678595300757624004976658679263544026525744431141287835205549295717719508551157444328074345172860508339990017303875432062288610734644616164796041279903771485439934427032617509924384564902215930713656580269346714954969845709357703341754892909125628277098269459726989619050010149508041689713168634398258853787925254568930271775687479236098603725644712972740165293985704612874936761334504712370397775272953684568484748929856884252693438320180654512534326548725677156570472952393987321218012516557450441024075685825152117812111147279340798182840449660870697784945533889008203901900417942531815026111242609133541519240674252081998022646420933443071947909831940642070441866189422807061429336010084924531486320051431908940404142269809139039835612672943133795916745829402755120792887201541800070185337674819965658873757904123465586685831983639467703960234549434903040156373986287203233304563155047989803578141019290959363269809486626972388253818714153910582787051203842880259600950537381323407119381300014401125847789845288627737603143613146498775033354311079786817149092255020693048858650218984490960443153359639901151736917662583482930779642523192791908033861132195946614670996742595159934363729048828915821954856020474021112773199095758730508684952908444351706984115207815095452710611040318975809392343827647442818047700570667973326606776687402153662012566472528466112626176363981334186563292624805585340871839886661494443020352160302794139207749117126384570824623648231977009509218892428968083170626646939159596730792877440993295240497648378212789855088436635911452793623725290336684871171452993857306658648823002825715023737487129647720028182006368856206758240014532473883734637363814069535062405012115061757013739648996434408926985525658703582486011882955489789471085440892365188159493471258566463754561805120193721283565072710929711097259215779252944210702552260613187451300723977057921411202627272560291205268604772823424053503557850153414724733033572946003398884113005910470535807576905891016319866763970835164563626234046726892353013842268226683774092165232174797605043648064517577443613017738829450302374759892951423279612422530146169891004391740335271955167766956654961053763659577750111413502458350991508569066779792256004458014845753045813495535473835764388469561963714626873155371725655914129196599678848318923987447549890173682334810178728110992497043179455262403673272222067574014133788818434481730111772819378527647060043030020593467109163090667302400083626717834930173234255252419219591995344721201331005837306243720027884559043156529444525656747365009977236586655500854375497363770630462283832892739943751750735097170691992784494970307607177772460440412739591191703067411522563858878388219765336187377728460218944082266653598134889789529625659150185154042096727056603700251600095810617740579393285161527041676596932685829113392679880949027588816379115893988049418075263040010683515887009417353040609475683301967544354881702630332886298684217173571775297678655617501961655971171289313866651294835649880315107722678583909110266235104641384500642252259974182989399132194852514935159965546237852988376810694533222520502841397701384162511122094131250636476374909789851176375690595396043564690929027600960329045388661966622400108318341246055496145812556657219096652875128853033447185526697227848139384041794339016107646315248109599438340548752865292244082326114631259873933954779203263288509742405463473224412658290350827003588895351054013179538829659307323515214236061015725720565958463646999900179594694585671871654379119689371802035075201068412580053906715674834344746577986276375234603815851606218766015051328497581067860974880025371571431048714567624481517303313556753071575872111931923067714279537490801350542024116855581429806570822474382657096668625013881865589665094450732740635892091913319159679581220906412492528072129540454703743510694154122922006888803263045481068039673903784053566158189659089513200474308448194445442713829723287327456183949394524596885710732007180196398751607375654344077524801845361307017824182219188364094890283003495694133120539306010056923951798719481671426653208296788045731233852435757374292083721480503267299591020189795566844671617770169531922861833016793493976146638593648345906285718341933983415618565439139519851518197709599613905725068843711314562351987577826141128151019695118053184103902237755999029203959482174469523350283662538144172469880511130870336431643638505730706644263208341708706034275340338543603368774476535690926294820267024472948232151397886421898859904722418421154514007052664047446353688595887050447544664318151402469299913075495751652696801986448191057758953204079083043901002263966597949129473683857756238869715643187774109074401405784927562519092467025342213300056326783748985428606730663225284844729366918742132006144886955833361981407832508726884181238243160323684659818618658937592912187784120971604361521634477569109690578029798107359824390129429255629426512556381224627941634683410895861722046525917635300821549866907929564041898781448304556772545309715596841736740787389704450580062282051311461657637893323153791610666631101409968937010584474755200564538618738016799486504676564280961537690071524647780559401065551874006826856199501971580467032179215595226522866071897931317647681165701776608573195814740216789466700565160592893356515795663477248223522459809748167349817931316926245881174576209178475348928245141116807457949596654709649616071265019810523421545045964881591019009643561799209064370482632159061218465806372343859275851941975428447193835072966854794883074052535515663139577680015438976086567107860488141746658984901021196794284576907930522784953806979764740890888393945087954956778097728145522053691291170399720950833820198702185266201126619216337617944570376260436529142908618351062486817855915700485059056236107488803282529758071951522724201717226103903585772595051991291136643494343133270960552449408171026435799482982656140905818414222674142714446223267276402403592978185628256533957525814820379479241363240663527368775551882061978945362590540987608239945920384042868083379126462759921690706153892900777028886616805683895523609961024519745647445262750159272238437193405692152007759288342393007104432003795822587317815270697155750760554020400569486110587415081803698789844045193906364577894123994931828117276814055811854196235468630552248362127298017909906685583000926929503068433432766299489371458841828386605005821160853661747330247920429170402791638678510656088156973395085737928266568705005161284116880226222622260836773991855573036648313067598187071471626314834046829640102465724153489732774101465669652562450257600928286152034058047632507438684906061972037172849400100100709432118051946574009211149093829033901162797514251929866382452377442310613123281896883197241775363007941287593650577913415909083668325345458770349790521469508255505260255204211493873502264977370158815649149772659322020188759282533767674401059412292439827353965241045739836024801011060130504261824219854501349246563890473735203259495136747828735050207387578611719849373208354351835914163705610635571680320011629368842410338300050505440997713577903161026427828039966474380025627685911720277255659428757257874726547524869881169062125970940814431682159402187348258896616333787891260841599153419882117828067321231528912094940214519423561856035480087086537005864638838882288890673508681978738499992088712884105481329334370672278933587113611019431787476392715764356727651926618186046194261157070320095459079807710262244843799017002373674422490466612030933506309761090974293931207408570043983256146516701099153960635334761591324672200896078482076289486314479795646892152143698220302517343396669923055317718704813125923870203667232230809170646224534485303909922571306674182901876978944371792945894449279839163393487312055835525035614707695682784716175330273719766065164138983119939020310718240733069616853180597189137214052244934581941106940669331549417869689610498602865321883878139370099326572503690158496145452485178427796094143326740183997266979423713920409221318377902023553218967722397852036128371704896003951731593581377187548298491780088480183156223372670116207774330134763257746635993366723759486759283159166829242983246851726880803309985232305414650730662514949794366958786613817121961661099569804312275058001005200270239916693108245211458896018530020360132155172913524360182140180523166317203256544601414242847342440212757005395292383994683710930117958355309990383930338299289508230211318266684049678852031807757529477249893518056423760124849134121121294350961320119438550819247766539102412694989979431952535301002130737021733281662483067227843976558236502082018531720563128586854225655358564460965028575546400382563987552701106199143047884020272064813397845653177495370645823138352959355104722657515633717826475100729874871395232146556890649674654132634869844108944589770893742818244107560363495355110182069761867279949714871920930192731392413739770722129152362397589796489612671111630510102715671834048091999456983199803111328099038365603194350764154579468637285271139569822461726702014661297973577879751618099683191745543375138957215800829713152520591874041853670066859089821440109662112219587775574312670924934484027376770974024361878139319068278425715767991851469773422184901602268508674671548574791211776636113393969333937720128761961990381702719499258585019433377524255556754999373135887125901886841877057370016905438271437116973550575139588095153758751535183541852621091685688196531301301995413607660219512329031213745495361353080548581654153231025340863452279432784606788845080610056871777716136750647360753154030160630167500037824892307620842412506521710577701353836956775329283020380882526752959661982396192500595946815472431429198356194356452939279270051007237409216304889140738906895519122528088374466407504827563851218465964887102579503586704920656294426597372607588635207586947159032961991937121567877575902527998201618862655113667766843972269340904431831342164319155641120408560599110054245099498981497003911363240620648139062882987638051487217973086199038444142442986270309590018791203871379936543728901251247343758118746202823095709131712903455407905135427282605339275114429797159309774238317225138163489987863813859503465130525860397636670506753683625629817693342222806837300152391718357886222353195854263923473279545244725987733798533469116238170478424485276455962264115968503837556566138753020666327320148037830645964271623950994663277802069171558686373224838760489474734104225624834948374580450150942503618410830947992734422312122876113867259622172984463444065443402285985409620248882635547799390190096744834406978028217998317873782419943741008093125215272234655173981505201430458388291724341582264114217661972274353955967794154029458552659645567554266597092125169916278858917630960268974155882301627506472140850654129057092395729070416651637028648563980289426818740375220836610684034808540891090849587874411511447632927369313964139982619269911066686347547637353061070572803076125464393239342706286632112975542295760500185708277806306792412896771780090881011321118066051984737316266256612748395255443494906761131740327218974674327526021586910778224853806971509449583092566587292803323821257102442283770102461021443431618251017520087249760636180856026809811032589057566854062627297323967033894729127059274286415957319780245394448537467908453878550432895706787100785966653107844138820825176878568918733715249994625098398384556549946931104936591487177217293113449538646666851560669576825456899817661616625872980674066977997084284830474033931649568140490074500469433128126974383273622830135473594498075972570373429127763343238835366848238347868943910143653319221050469550692473534744734269129607512600170884758001267725901793499353974500427758068474110287271292778751213272517865490772518384573572632888221366102929750985914592428679905773021083526028493051657698997465146916869445497474713727545485540093349809838134954266690479908024937082637329764793608735149555603698943621791640313404376866529856609246103663171097256332692735604333299979533908336975428528690060944311441605163624809730392542070569381211940668183896963447129691789576884344589073129474985841173039663984808205193879391345165127783913597504779057599872785944518242368792581203045704085899807659195979817544347857639653184944702754015919695159453756907692563787378282693994715163598101246181085295654321175092391383264057578982123097385005874367389693814644598435427009533103610104696536538060615332875431290237937640976104742233431569743124317863334649275227802288073506323924662920214617910781864863577989124690629325312339591636506318066353873263413796034296019571099884344073811304389132517821368679025065316509623835004446633329932659628542940590762448379719796924257351746892679965602694100860039134315959879263525869938103909063286057451247122732686340265321473118210921218615926212554333772414828648948427388856794013360688091674206691805494022463201215132312513904293745839978339385058568056585591201975567641398405870572760330554746716544432299276354997665376035752796047861114207469317454376355399782532780650203677729497890265705062860238735317295999230915204315839445820710997897014348859702349622081142858343342361385480939586539591512859996676615867667927803746946486181336464856851630677042093066810792950569963940238544906104898231594576580653953033678904228630589041230571302363311863312676802756208630665673582881114196148798253041374224167793111266738817181093452105962248987955989268259120620630749699452805269331315378255800263334298868234154217047697970341485795772510949099960728465157804976575190757557850019796908048595832334407834335306940011712736608586912659421686310573684995166194883760708206519840980917411173628879052522317058771710732721852385609078628376376453996095049847930732967163140878989293725529431473299261757109448446933021961036085514785872980614604271187303586904249053957055800902610146133641413623336408542466066334743079198602302982013511984996965826452754533865757481918648508402380517510063187620989752437194177859969489252587148136132433737055458640622567630119489909005950980106310942493736260084134637428976959697622741366855511590234111309297351836717908032259397763188408635647956038239467447736046635382933038373590182974890914805522259433739467792781334576197292321037664767860639750785803498464816192427882166184919760813792959502513546996643799067201434504318099910895921652376839706800943020860956156522851603476892117400229110529942685282131969447725072151121813366212917412129644008463984656630616703682981042554103203707903072215351920562521143462319840432028894578013805820612835008246108599271431964015546425551245877965656785969623183201178723882796723415565318216231314821720389890284855880437875440565327234917098695976703937771665118007256973255735302004748291809328959531497852239880874764340763952406604241154815996366795411395399588202930299429868951898280177668532666695007179833100708650339041484140203511932937089494053676015078092453090263565996959477356208573809811235296543265327582567774624028638064132229725930388183824852043973804993003425137736324822690844528881170309881757165868754015755946700719890923719647985065855885028155100312495666870200305093108866035003661969259510573672614709856642587801881097179591413140886594366405053076927630546950791159881287996743123388975528553700024755112570675188036297404933462795539812077652028941918525786069287523131461333462739180892864315428192141633493349626718991844721642199386139270836438863144162193372256533707633530487907892198329807763615342789348789386108271080887082777338499805763404738885559797628092561030788064217800463856115368124447908171644972230538038032342527054325383751982164020256249808508258866362118214146681096528954383741318681872489729391448062305110042052634502734724013795296731069078482555312783524641959456178909015555344700595201932606645175788666913995631183038967256780889904947120911562500490708998376907083276458797738419975259565828888377835419996359207129066451097796727805758020355535132822366015988832321002372535436966890435512422385509883295099245643787944820496939226818231823457727169293642111016013677310506041982448673565234362583204318146955212403002694719329429747501410697996005345731540437240302260304480287468710979802800454933054098065327534641680232793118112913391696707149396678905681101474643926332397595775189739529593605710909743514695961820487096784634615944552658473591040444658517223999838281126375127088835660445300958118320679100651668504993667852517643523792791510717328577182945942620917409509397050082199730537084814675781140467957377711829282920653280856981384679726854984907384162220876734024753611898501672930874158866396904170195237775894553155812065500446687795858065449239570872281284135377287266360525912837562745167713014103468634740005200813415147417259715148593017723967711448098939729933167425647342791465695723009491637693737528261222740918575673480087575475624287465389576253614907805142019280878722720333901959615491455672738662327979493500828801477003912515500380748706280496748241998285923790096140371359655197814363297502821582110016207522169839111263428668292243101170402573015161679313673096264430814346002189985968545928468351907260177119666328291576363434379720496517094216072614848490777682385970564637808699936028085871132253870640310791657526420112856858643910242794505267339458789165368155074938879516847116823251251224527621644847861366351376272248237507299721114938449781721182717151200485798531577512123480992488988932079554096384446827605369038439015072964067062687528516824763634429079430388577839391489923214888649608427775871077496129239846274409983503553192519281562180529974973069965987180270496077951106458578505176802346352295861811514475620034170708159879577410948369289694900863605909623353305684790536972849872995872425019912089587667492157429945432104111627483446226027339635074019916037190503044904368665673831086497608599383876852268407236700134270852240221606226911917978843461094335709959096890761764266655775933529024827245943833499817096202761414753430380752335721187969257886818623101333472306799723241096896395017761400820751629135229907346171572740404714176079357239129275995728753219868996510799035758505351092771861483583447183747272757712952077271579192324832659184303913123521295825817010397095081200026240009870035634449867791921523667127392128742015108307958696357647369473736703836109792243230003736184627043249197716426139833577257834141476720894604998173849010248109047957400976445926911743312790101924107626806447692657509829139535823152846936863015253559829831768258199141155431107101881279106387785083061675827198867648680579447941881930633363261829641681264588560272599938465796267705358027249051072605675130489760586861416493835332950519105776885768742679233597132987108578825566469252496222702163472662432571379481060072476274171594343679522001729693719780462083608731230696158653278695071743143953602833666380131269832137545450010447357505611243635754409546440433809599082727711188389157327124801446960923322829844185391745151991260355534448412890757963818674461474013387290683056774083337605834543476226885931215573475203330686677400010559898109639794058386914958141910584996454925404873776066103394606903074081962126035306450118365820082399888031706258187863334441358002459094189142263156398757393515614113227285795967185997922222428595500117969340534440685156212948910151452908865505080911078908701587946397401010053408731390316629710753064471421190110153801474558032765506525396806164685346762301867754564635813722732560101399486828915730874666909144001219629668265262072090260062185792277865383371213211537839680854008052597643410380804019035807542472425955187542990932890953724358197582175994006864446337200459122075045293923565887277562857867440341789147535985535074262890363711047485349424284089308639007676810673046430812590708146387533238175818278794802568920333490668957919564873984474107645798263662160510035941855437726196071029306835895500073079060243914731257947666712553085127100858939348137977311407501725666765138679367277533249961335127883641154522945169220872545462716055176887457960019191639167228723103150059098859623647850505755323083174925033496091689302692894430966181283006302127583910473850247386233163510209830681887168866922832717495580996279615515158072381692914399107236144636865262860342836929132048975122253326441151982814833722974814454342782880420891636605340397291336141243604692962036247387962221441072526232810772701922483457389482017514737192435992750778982310754024643823386251977434171252506033357147338505568900909017192882622981211664303321378576237106888360208993449687626085616031708446944663705239311818407679471712700860651114816257680230288647458156386933953247316062595140226523347237917149426248157458986091288452495512829527071362538388860386673188657421765050047446689799827242599504248691086390019031106643001483618132123581944276936995477480085803056570169428739883887432745767779295680092296806769606691185978981672224789991160798357748701006890690049646298117364832822615756008273761461289704726692157131362970425352871301837065068058074549458844293166174058354708567195955788491569916810286522397743229193371812473384589176378013800384271904924812929165117502283984715697790236145387606506057414398057946054285654996257462341528186246295376210333370444981919904904990915485846556210721771253900660452718662007658577746999583993673719256526994521967072834634799151766001054474433016762779073580401581379216810012106567615077044536407280323981642466858082678596576291214832280233603497210359757468121015960019927265206355112763552583718962936090584220145123809080082089800723502790926043256595295015373372920831144411177025361990154307341397677389662485135380503911193423547936568159495813685852599283781360409209439660054510913121497629544568483383923577072897837574658121694581276875224503455126151780406979654830816959580024149432621611665223670698726542511925823974246134121450497867615975682182390431316491274467800741164618250259609117167626686609400841011678064381957960904934350946918447877353133392978079018788643400468092613744634278490566412950080162685600641698175720519725732546848809545172223939778755355208405704854170318700766302722288095921347241156799939331447372740998556835715048386842986094489088302893972520615091931675806565112984198750948073262968145794921720484490583011591699997836882812364670911396472214763250822904206384247156621072240308878885378225286869515255607827352271660288668175119701740923246434542475256406118803330596142025265267721655810775026483119343555792144337939101241296764940665845332737668515062281173062288531248917932122843026286977203424885154543620960504351921527463878194055452028622493793521222027999738726649864279275606712738521238543057672040031151396869179095384539500408651847857375885858023752875442601590147323169057725450460880522804211025404807079759605627936899410316108443652420765656485831872635871234705077044863732792887578705788063100537095741216002433093828976165261005176212623890720408286299161246094873977255565210340680379962923226361765176700738948873386533044016254757843201712792791501755272692032271261709545536317939630913775067558470375866278030255111930703611890928666030557915621000287127909632191126112958896796160229976168032952786546690637814027295435288769231487119403436516151680121718794837551017246019705567253739644853910655310952022166484866726021782758370766114217215806772829998353893382881963088777217528423483527630935027713732565390379225349419367034822005435633137273204426788153191766384284126689456158333940728637215825306556553914593706531084131588940832402516034526095245381162962727573791173928517272388844484173197884325968557758604983054485520268595415306616160448815502648591635508312529728043684395352769940407724910784746784918236621219910744013672284682455204953021253104943453552261171789246492756845790780466634567367129082766331359714582849374162388082588875724528913823161431965903875780225547825215296978452939235051361938101208893188814385757580442598250034253998054746487966073339659083364716499477366247582880258408852414996055395657638859750961726068428046874984391297308592550635637524950140715934946166933807113611634936049965085615861302561869396310181383209996808897022906927194192035190465582551768047297343613913415615769624969813967644350175596737986367248731643429947569606592652518990196482692104661199978569549999896693230802816110171689798319706579869116647146955451667285590769546379922099976950004557886443122665851732307572893361124017130426224256477114462377996360016802553474734788246495190545490768478891858392544422143425336882312619650537743943126130626213024593799029788891787676269820761032633628305460822694295513883190572965470942493016407035592901356913813289135927520517513295274702308727744776545466119597941389202956779553048897064397925150316821131518062670130881236495254672640287877562241420139039844599847486306133114715882302434025598055792256944604656478948259760457887702575557746500776970583061968279926797330475882014771914925227892150994177318621072406803642034172847821390925143691069391772501523294884892318404843581336715654555099739221183966484146552775891682988201261079136865080759083835944231662372440706232516762674150307488886430703696525955638048407011316802994844413152573221993034394606199961257774186693482628148739545355452303083450665465729856928402361979583410478001386324845103256936463745789334164469669150558417159178735481251416419383291920840713363172619874965039182427792446049509437509065852173280296701080465059543730141077334767751908413547334848112940152198312364635055960519166203883335256425108991002682887763661447684195868719143168347142527603827068920544952973177875981726465261060089167774693665511193768103667549710643679427933900855146796323738242059658033915426508624050202476791499977922476485794144933130175338605964800590140167758794820171562816031026716311189848568653133993827492182536274866857383490808472225356269227196361944930640852423859062781539118493984291092089782756982548073133994898637136690576495796689658428620085367449056515531689593256418004812980670882018747567739007114980885921114480459719151690300706469346771191746784025633859551406329721918435813155184883526736978614985711673982431749510556628526929755312785761230498756690792440069751998969274222119708230410726124941459805280382339159208016288821855064122938224616136911392999616952070235978642870340513418975448651680601933459272770661267876415251183736319668291430900526220814394266991677381136948329540539808555769742967681199785364275856442914219475551004376440643398312555322959044543592674194728073129544374256431133804419677997875821450688924934416140956324400874846078273328095292377701044160056873532205848671925870476902127070123621558263281137227308107093995687825992000015763584001067225912536130858182853793629441205705203498651655448744637135359762562829696843680642868455288313010271428833811595486318977108477180465125258929323812269462007377323940756858426609337535140397776299129631405275900719827134226000676478399806436970654900057066525964805963307806350507836946608506786442863734503438676197074181239831165323926097407016550258681890819476513454240942569087747760989024224187160374048772576922240979587004884321986288262328355547473099157188458770922164009785441045089690822436699548499731763317258331373956196164044958405000706854920095269585722530205246286294680952967795012661082966224718569705763389467094728440180526797825712375886941630452588736504285655997477148541496956190300862228036187548891998723891581484417900848199114767445289692461570977140090773586519680375054858379038789820964849300361989317007783076536067325179178924872995736004548838056432854781451466717572897939840410509245358570040890308335020616987329714703995723355989552213885378493412102134411983101477722363485665044902243336858059370554699995424211775827778159153834500878023779510259209634797658835808590457037590846929356227816119521661436104247940520262132061768403909289925118134634933548095762761131311591297553635626181425011899294021781548693833271593808299584634964412549700120067118326270928262177612055771828933764490327265470176377453464901586959395643782225650999597502625171670087189345532439959746849490826304766494440303801972367911772068065376034348400045874799301356588608582172305330796681207915292118397200235860877287982689142697189530053281075571396574110073331500341196024171809170549203901585897912348203697696898897063602519004877816287831444636104985820124235112574915392187263983534500230929216877937776392888030281391110092114594871819679748104073156961969517577222123389982492082764820250383907996649720840895046141214566888738490906080248452065339682049564499047225916462796483632294587346905252187776141838686211899607906526402335787809777449430886480327089066502500455750802566349588082760729659715487531918157719318766239508933295966518638018843785432829432753903621317094080524823747550659428293237939858876740551297651526647393588984094762291871361073411836218046905939618657948872319149828358519190852316421847048638751724338941641372611046601294929186779011154991056430721750688400274221178692453556539124319899325223692403962082026359821409351843381536398288999842943781533835817623009776569514878776910563503542775636979060478270360032313698009525703317814590847605008166114717765193018749915721122701755380387959857125860191676052457899104151151070154146957909406851611128580109924986353786773768831199339025534451461224488042749978448636757511394098831100592490856980037441607957762066889531809696743871341657286334376495972003138000238301543681487025869581509735909551729883322450310137407358930107397336747892698855051761091907611301440552476470003709767718918159621199565015803677624970448081685275608637692543620738512047515414627254129813385873031068697581310823815693793012378409330273561306508920747642126656258371132912960301845234235647860007585881174530207837718059195619680567058662467352799401494879903037084295972676527422125089408247597093388431462515752921655060159468860536492220629711717567001451202327805982871598323790188697102727792904225826909905894037291135414712218182402231151764950526223250692244203759786180382108740537938066605532246172796086297557576545030989846764758344410758220789150333020296064336196871534950372250346462942880973180080483796975986485947561101869216999136941627291472659511212612374001784347387085140939990341184859994904722251944081283149801058812280104838372265922941760235878036049103746501048781747132046651201905101540108998412481021989442888692152891057932604621805483498226382697738750038538547677023182255299592743246892854004015415253661797736904160057852318270139297198780222162456274966360028668812357062601404922957123707524737574152397522312418724349053546467387820950363801679011948633961330535244195667082855265404771265060841694712146099372088603287080060770670573018938272378307257416864223163251288629317387859578951340569757368502270757201171664277268288108513035334585905980230044693996171113283475943734305752527361124403614764236702977385532803928407719679563173897746229672848855094397437685181843298700458893073364193302112274109178348872040434135756757497199476654872344196648682297152670395713617349113426501416862007657703485738445971142123578897090708278910531429037431637735018224340421675500481489548759523986380743152162242437997345146255046620498780999530706652135625207968102614691355376893671526229140419442577819259786516362814476033037166271090421786082860625794380445785066563821213441775088961446848663111182542465654447944136162022929191699282740474855557337793357913286829129065910788424481268582524267904625302668826890887572811258840589038746098447075392753537505629313459465542605803215074784736585679994894111972114093219423501674604915741776816215049037818527722015339883289581623400548506629372400294512572229559418965565786314432101650051402061840012833938470497313128154735623563461286748803087398513756686272133733120829647006172086838539204450957478147325847133725145735606931477959437217373345330788998789328810800428193913676086925755036816447806648821242849792183267003340940358435304871484477433673063799808544714644966008951637806947670759917661378885173173025725746061954416351596912216153237007602103980743063280207898791272975010663558351698001026073964601893202284775816660822287689615016898528640305179271996534016678836773263566039540551507794198838204188273953448716390155550234603374565598082454237895505615474375807295533978945042779512788558901950836201108507731873932974907431583369603710129022250077892191191297395062320524812156843191941300356694364007299127405208648186720482039729862694499060219564973993035790202397081825824380323162479870710715590807497247743240330183324848897176637076730153110982732294037131315612559450475144429650151801545031297372477908355928202792809409975192190750981933009607852638259754206227685519630051941349530401376087471832431440935495187758387306763400665530806602763868837442533689983432471607930573167133808801214994715003502994168343827464324079790835928425344117879318722163061324916026019868252700635072059572874947764890623566519078187178096186234189950966376154346260399983839642109339060165246301840440560950349870538208988792548152703781528331926944767572644150611773251541974656746173441488513682182770833733084084543886607313046422491541680768720135113100335027112594800710028235561987554713559047188527220634164051440433900930042231244078282505843663347623037144038173350394540647452049477570571297405503375130978812871201363194976424596552586625894882378418775595333953292103198174020033623623662353012076388400423248900238628443811371467011082813251386204309200910662551058827863564122334986461729938455517930544211467998203302232579925953815052298581113656663193689862595184113613076837445697236871426293857243251612459525193638207041345226735208923361471285158112759571083580273372204890258165954171380173845468865377716338177551562932168987140994351439781966257641332809251058260832047465925112326321352873694150950329962441046991398871176703789830872626755551644011330426916379146892225743528409160533559084269896285361616551361695712233626352264176424455184320043196036097711830464490192003012523649573828150900806330226659550895801639663309323370519628712346715591648196540997998438389405300315705519092667917861903436333160202625922482944482715300928593424883927183619247376918040349119004682269003244367510080291340151300906352431783067421177866256505641583584286932745785322840328430434686613971699680370672244296397150596400333847951577732903471068961445970751224015879742667319051316877421175720109188620812666281832607827365391692183206767242733625484407949196945101199904995555479083504902253757809574601594518060009116514945836709987843055447054590092583707344525082992711696715621228645143684391820832527616852106756233059241515448870703435510628223100420778160343878613176494351070939762554419870852351020673204698807099048237130174606304103742623165575760429605573757858816178666246823149107060681461035290394608824807334631947321830084920937019008073161658999888074574477852711590812602837088568964585508720531495087999312415003781283316644323354526467999376864989667793927909585132860818354795246052795145313652491008685732831690962440340531366859400587542545816483693689535389161595735944207369475140169859357199924689125805492932054174850489687041650700467578911854124310522864201046896255743334607867595626520048020038902312717042578430155709390366194584144818246253193653757814045349381259901401359791067859650668021223688294513673259602811102578779417222430686883921344412103585625153898844437446456709492939895593517211831693754877191018739007267203288082587922024199333584747928123830046835567925732534828200284935015276780838701995756391164614211243876288110059182351521968188433916585737179272145590777409671961587629257055296512462353301828948971687955822638649342608854321215391054188567352939554002862187665885891040277026124895967281318155435652700122179029292219019623777392396075906870415649911269826060138235851810294624064828458712172789412880895782421678037850998562074727109341868599031164735507049714227795935571963730483650531655422136570364987244744868888534149369409159393444173576741255920642599096515206306217000196941021139442978440535835916636314565433497192325659127626220339222026682270969307052660302339031972228680807858771717283309974284775478517047525789992394539509490154964363057906463910981332430469981308115955559709263724546561122775576410635407940585817200069002191347648778408893817216361597520614601064640855371041153530585010142601222306937034874513410792229212908689454605271668567900984102621934932506865401967367099607928490842407603733797257112158533508531070189258495910585279064926582330245704463764980041242928436219109764998948548521469262913974356773158147969124513393688329567288684781020810971415417840061902179282052440522286601527417168575001259338591743872163296170643705927967686452807005941258297217036432033649723514476723811599698840959690407312842927993442747430289490290445724282910542530053333444703907395243696662350199416405891417348460495618880094250691984969986907270134158077503700359605682055740753167751182984772009036144612809804538442730782056908508691899564018028716059454725149324903150902049639599692834970991555468711647461527410215976147779747501938728252316796831972109942512814002929149633828085828719470289404883299964441537315783971595370280995313928629243192655575070148624652252915210024732368915981206952364701980205134889127837881024141309132535854264292403745248885938728379408275520440161031047945011250008110228007137397709956132178898596225753917451818110704158287444992253060141308305699791945423639962068393112692184889969863586150174712223668833207759816817069516425603187195376621476777294576308258705359834712103506932374716361147051543950760995455148679757268225137989264790052910732982181184744125341339699870222698793560302045159945009568782291465052451968343081383808630745040438271855494905147563666726895866047839257517680393536716256394119022363993066043327936361028188645089530878333056133857770956217375609322257072533105540172644086775137448057164894951363474284915405738809820402026368445324430254694917479412370834560134477300629400549743916261376124571454401078373878056124068279404897461463705418327674237691455729654748780325130896099898172656928926851729683916965780509627974606321512560975172848598137597005733622666777306599560320413057028019191332797573407610875157763908208861287107632970721886786313325316585348027094835592457125996562400716681653013836132563877240901610871214344508112138197801262580845154703705175291450944051272240783121783035505930963835782191333766364772931110991692431680839847118544231445350513803281937078858092044219420505541933403938521316439527248128868577566447649585184504571458103648273296644247939781748899704684045115739681025993655854724457977627540050116988378751997315898915178999834392679433125201804037768028929725059714075959049940945241177510846126184333278828448988527565155683202517235954605692727639889026651690014765680498461459922442569299270357450264391611843387581953101205466699806239905320048246656293109282193899293030197771937565987194828689245211805401290724774649557158656153377720538461435821909243166909237782369658984522400356695963619246818429701986152591099045371842436464892432103878373334095569113776319828601100803793703655331189864443053663534843746193665800119359189651191452659125042706607574652909770105968715626115453843293598049513169635158060837430038507516091052098667956633836765309276362142148931852181017807497383524618866007980380301371722725435848222252143314497317404897834630827888530719457538073276214357081057941999459365852354663191902938167003564900862045784299202393202224099247372259240646537556387866851040134506755564147391283469950072491128563426273404067564665043986384946260523292912948612969255732452783723212500155191246565152902795800637204037939442694462619518940690322838075877573155778620944786443120919579540555626559880755266613943173389191695629011036775233946004185104955238491973822722506001996886093812088277699841774598583245444554572021106179231008536138311615637455404340708352362923330361481827336523874453780836564997158703265939789579943994668840873733231734774180572097741393489430057684069137004495175947840496321662386025462116447388284218760397858496031840334309867311039136666459117024265700457047850786903318158566867726742762462096984175628998840799147899006076475214912329709722102975137145132348372527665284827913733448571180166208448019256626015690520366472804396012935328187515927122457190064748198674102288958082867371138092604848553295401190173908485548898278786167403863036261209246822195461114870311701197248942786354409691667314996758237230516368428652099675653680582731816659356955723198594874792225319898337051303695224602034426461350720434783027006072464328170083296993447100402734488658662584066700251941843917146540637714468695036819411477605786154152553883656600088194344247508523751786261758082876473559261343930764599448345489995380915559524267134967085047605813807323321765326050501673529307811229579387316849247697676713349370477128317109284506448927784641605123332136730600922636149919873732834765214138506981086484605080460179444828578612962132152171916593714937150598186104808889497879711020298193361212433370502569626869518656315370849562841484218912861145251305566645358660366722605915121134551761413661420900200930656191879333682490251190873976697346528411837644529058127695963515462001937303509307118028858429535173626652668517211223966534353002573411459263271694152005273610723537527530056285197017706019619075498517887761055950142018255479696559589628019047599578635976090087939200686389839799625707650833752559770810483294238758254818947667252688195248754945780351988160832862522285209306874579795776937448210875250991652728924115858067142331490703274321241774432054819949357244041834658623010441886773952276985778501116366469990603146608673870084414116447601188605895448562005425841689178589977555881133718599812783872620334739600243050742048831664124976784967152400386385031837555562885836316908431049653151660218739508167851088350343431130995967795169517731574835954849746533390636176052298622912245851781443442354496656876314415374634690607228392780275182705147447111307712709751764490415594683312488660262592072779851159685282143645699406305465214064916742213730956587417057129981009106833459187426171288974925198885918160824874521667315710609180632261737046973564385575626548464101997507322886366007577042677437658196470298496659164405279428591779633440852750360987099624155880786624772737088200976120142931720236865940008678258880607527712053060698283543255927175540022053734823298152861660587193420371447648843886607648128900689552246581572374827943769048307424804758641473527459136808263933998816384483346352489110671146282779596965206413416768594846823536901249012456981837519229588223894021834144748892912938020783791046139719235479984192620059371583600269401564880472742992929189302684771931363492616861300494052358784279050801455880207846868235071015080437609547351867930563650821951041037560717436132536069070610789333559664418398474981806499738682124906568156898049404442583658669031831805242602953903197620236282713632681349095975609221606227157266775093878032617190895793505799995038449268065347230314378807058207414010053793072228627640170015706308879778977040803867089404641837455730070304139596891408833830776275265121406539143896278625659159200768081783254780537969787096332831145853482083306644267532881460682392957401577506417270480554328060428626860543249925804112565930299228807053449749905780424016513834400243590116001655581069906282750368691555889271221667234300565807031032561146618313612557899002671882381904987256494725446260955893950693931358386881491750410820842686828220623345244785307401239926521558328981089522873147684581717503458923852034755834884042253547050069764800305689840343618980155242174698365624704967279317996458382519897033782872381604990743394494432908311031761252273644589845942771830439891078587629068642295767889281278223043597486271116395001056567514626484519709578848296318935010019658257187314671007308861660332655177749532739624567434554244465552785937365946211741431367404458750023269571237542262516887044217450706275993591706719270499549064030821721642283051138327300399191421849928443215207237728016086233858206087723274210266878530626231044485000358615294594075560820479778556636499348383936163406250404446866224600701266323870050022783354193419212988079731745023858395244106926212599223559923458428027013974511041344856471602240925319411736948000188125326827432856064601605750401494999355091665090870164435188301752166747587127487233559328831098513009593134488101261608725281910830009318288547991553098748898914926833998725170964683083765514154895505697806426423768799300882230978578018620345398532568521423606390458591786885962175035654478372319086939913669947557155042197882105123386763446769192699836256711210672333100916695413374536365624867078384575000339859584883362737834714605317957567429733059753311957181784151096283990472755253700315301827835152316907123283789619584613224959265853600727910393233149268658974653679454455458150070369700270707746554077921276558326665148114186497500281647103639633363850257577630084341910682169823229465303022809243761657268443370151555851451847332341869635971738005862215896555663922096380897357935036852889984339117941305807964572656829068873416477992332104062756839888129868616365699430249979143746161841623753933971896171281030178608485368278851989548972885793533443151290089786842032295519776301768205973722342737450789421451181994461806295901880747560864800734868627648886749424392539000871240690621963008779430995336999341883978774571995135159831658472360288304686738611844085169972446931133930771527565785193823501148147314442543933777640920299048148949019756462081955019395383078877862896725780023982501311364669612782634738936105120115774672153483653814556734768117858028517542455629063476715142475313787692692589405789533750413442154016496005866080613648579501797557501061941679740803699537632604095284925833893347544682850319860295072175739042151227734593441375465314191914570905969637488814830666070670711061636534083743333860944189048245126039661953295945031776126144026459717944279280570466618194251343753561663579614301101264485598899459212311323160161998192533346705878889109393204329839961374939918500123761124715594851546760752459345337103819050107789331991671876879586133364853375698351216003239386030788179992777193783760794838830882744509636422264446958970088272607954224199370759798755466355701196865807484185034885407022496226257460848986334844241000455570123684145208962806185458478382861186934083183378124228085724816471821701298263044627771848227392140180514294851802046008120030355990107827105927203178854957728991520706365224397776376545870054689088761936038781669779536020728120761335425903284401161863924145756690046392064618903130214094359229147652582461624470032919628186680430566615900908374668909965960391620920499141174428783458178380115384338230044450587568534070045694163885431352862022778294036870628105901516807138654736712555469096168517785041544001607694136127444868623772669074402060453069307914230025568335318643264981736185655453170019308514419574402494236703737421781645829130363137188265351647351975218728668679000558989896387928614215638789080341554425321308818072523548848838442058899732799771500759141932119254983068847644506550119374898464847989620431136468823916538033454858638007800777856547259922572365236667219108787418105538298475445367499692894303410807407164784149949300416929725662022881637064876313540776506924401170848265079487168968844919473410167976223581151578893982260788625569290106442611510227968847718302948231730654437721079655997404124511399097833509170331790591600957710757944554825040836183427658828810022877502163831646955833122426479120431925670040430016083868468427897208298579814749774102894135493645476990085948456355367523410561905206801715232153696901971455838306380559664769258846329648660485573801732819499947649696751224296983694238369366182506061183623299154040718001697489802278583630342570619538888879492827060106689077503270220893443327354874996878541313224866784191474504988763025195362487385001109159807652166062248620896991194087294952461883160350946034819594126378168660947331100733516649497565560696345759115642267724677053606476608472059735247982531306652018358741913951344501570082403468420691866195228444927709732523061834260917591917099159581238817858994848383590628733426840571000910047500018625100912993313009819471965107465968980397664178526090702699968143888094973466594387427552405281154920694741749840087261146194760209935963559648095179555830862064826780718143716330852311402123925633974903950243117084881612804904319376296794609414123786530827997329101206187522975480659388278783752906497717771455252490405393082078505887956049811910923189077862110445172040803296444748189238897721244288562846600684302722819923343356075634941888187614327877991492715794668461640823539117252280402850417584794001680940539867391255119865882360341160844350632161498238664259137813687072654230365347593847768953665842094994293781786751275714554389077058139486792870243046999726542165213372102933008310356853389020311705537062138929064382722580387645412476999952159103561754620922901844254132483790095994601935307352488939624780142498262992866239534437324074975157717989069826910892252444798399961817779246584566985304076153449121881930607266416324251105314730539205791622075638539143744268652975872937853664631062162329892903431355574433089483174445503133628704816640010518179623672625457278003058841189944127666935409105175622849332089726694678118783662672133797139839984379803035915716020239017302478407425801013209908543946079112491898635073338676804340922431237839272786416055513825438058659647511945411867082150092028924954732778088758739325012286807826798143408020976852928274269032311984922706064274212916759592430715112057144560699201793751624350845972705007292081315712711036378275632199857503779481162570674205787894712079852605652831629083953854977544808738045514686499474135953793746992053058098988921302151651412298393642197372458349574663832319223722751625769860508620738611832374019364965809155111328454992410278278686988939779155991219916359731978995395625570704078682878994158271145443291668726837829270233922257251061423354202550329766314682147211303445019406522937006837867309262538925177362909887683491161973364236366086834295913846253080371287275866256397249690654364831372862260171279090614631418792436734236562903753428370015568315183222806942937875155725845614823220575220947816684444269671878735732025974605203007864119294081632508737622241580832051541769768592598991500254347726884338541846406587260518972039890144105043282053377222288636367739044401016090472343379227418425953313030109888590812295237740891000503640691293669294767934676423429199946730264372497833065539864665098292314309648303500420645905737821142144863555939325619940780402550762444716716442890705988420188434271505426130330319970137661192004546696766347121009374187144681075440363313157416819295853331412414665173668808949655932570862368998271940498874223569349177387401215949986892084392846718441558884745716515656745082399915492718842160847030590302727978083553249830596421600257984269520931760347415662764800453067364678501976384361351212511202000556421069075291359509735505682661902111371126540651709213438421172184243123437908568365160567427635480562076489094037645086738824700583442031115609487849776292036191749937315401352066143956973419431182495956909337561983122713451174007601511292939715101295191714063901091694074644261030955242246529310409661549804836542715224022844073657117011864261824072218768610922067407942503568223543372682306124263899582108394151627242962442403059986164056272890301550651067448639574964929419899893485824719574166668603310867152759906183821034344373611012003130935333640091295659861356446964590409652250763421640926615036390127177677039286169342412941825737654064714206008043636402611042712545565389063852479805398687526276890305022123961130199627568348153273242065946675886452724764053253663693451485700683117353692514962817344236389794647477146725918683741272422737446453273101273153364315531181713731174983056820085113532711637915025563078576160356459448268118497719752647806864327066718303984778996540444291274020863661856567883960321780538598209836273384656089583366425695816071987094194056655730428944164532108084431117031611540514971292716103895421515802877440341099657577087220754631647109606333512310530189651075531848581063800548114734830191627286566290617269559233703434877955968207069339120015338135030610488092755947057799864222289134571100262472401014599989396754175483336889033405063747853740518154514897053858473809661161383690361764364268295464045472008077315487763838823640176079969829265307084977369959159323259815751676743107268123808290153145897329901971146136785985218211287419360186119199148486821719602424941536680920945061601914390258210971012182471678160245847959701505630409232458235484144232382924620274789368143696006207422138522856565836909264792870872832885076569989038063893813215163902428165524597068558955073621961310519607404441866083042774129492795309625660581696137588448339822139397412342846670617774425117444566005319038424493710129152458989548839508966558405427083321677445768471188006208024211529823858454260099926914137723714413129164423201848881568430238896984310025433387672515229487742814651300768648102367666936361631714004802602079309299855503663104039045904678720276250527422527317780188657806197788383474048808946818186619375567684976520680119178125275283616851668857866670590876748957006722389650081862721990902353146038138463533945163990273316097985027136153059099693299112999355008533206569201771705481644524408533471462324677815125137189246055554467705185113574539498816315337597334938581774112064530051991810163160981992189540346920370640846922951572910760353608035344820996978221869551457069605902184924587689959870255520042380288406607449606623828764655098384995531894650252782520235282206628817000080805525961755868638363244527637572497147471917498517151384741122422323547224620120951102384433671608993851769933525831797567303493360011222995854670318588816393313579516695079960781768424432602448705676028525437504372277655579270666314225540340221899387892658059393532620090901885449521071758688288762806034099957849725139282119849867489797441021233558650210273446981891384183137605915314800253795333610718881367367531219439451495584927806868090368129523979580057198070802392261429847025476089391313683005174229064630232557283908135944680556644097663021995768680742494092957105916361016567038255809790180373546937197372061058300120587088193920281009023631431692037741907071182867789328004237908572307735954704903200600080693813066299935145325429376067490005869451461209193629757763992312290022359311177664321520729801540427138446513049630362256350825413140215128219840073036496317439603045733379509238199002956185273494501199762052791478207169073842257799397566226422567527131061121248327459318727619178090588610038559686979056756046384643469053903959354469639877872605295274878865457928793456154862208920785505538076304460887829501779995143033187931262111651272712621897462050374013214726407483218624674094565592713475840441489496168624094412678169076530986032083969199207913208873485324691653344985598672794378671935483771854212840086370262023518130755664804606684259619978368805610038357117997987963237079178572187311045639256800994465013263291150380363634453976202666318391751137435951872379423998362178054481801523108393905300851879048441907863745533429620837731180308738146805510470552854247145616134849086461947019470058153151159233471726198094012188344046772396449729429462605806203603555587446490771643398426217127797801105863509859316749959774863965664935133274228476155580459257836230329196150170257703769750676486142424552141904994083802758058338945984431757355612057222894610832305387758067051289399630206589700124612633940403286433695080758743347953818797538661464184036004315637284274551161951955660326343210063828525222994462196870925353121632442856676748782578246375016241371420842801260649874289745259465390898386468414092710681496387504715461025853080999761222251384832689200262904187851293221907231764849493662201858411029207755614004725589821807894776252802010879905301642592651282511881098799705396925177994346513118051772893046684512385085716644782158726304829618835678344858973163530815558764549742682213211407824717223190624320690133452902991158015377885677341471007920912922471029364226212517794827825978916602570654832373359727291191071824245261113020078889141314714515555972020852438921626747703350993605286472239115024035251109441111208696852106899583513227103260089143003755296424941287864342749268879268061984308242962972530746302327653135968632067214376152119676994482044825082310831566065818467636300828952649937681896056032531017629339877410275305148174346066284596701139417203757968208590737976550231237823366155837528130501643212030909294287993056112615070318329546062312032411131035790354339546714337856473396331226648422314885204460980363607385665473883725028442614152298254071663660364787660571069224338067132095635619510043482598520928552339842471873693035810388060900870036049505597430084670180107606169127498546358042083929188173063618257871582804545816927932359403408938082110121677753370925450008245232758826821952990317751574698970267731777439808997858164424841858484933564841327271880081095990045025784772078836369282222488919674348137023243326088455361903909346710892140073046661897908152072755800038978365438493273007303644752167750297443212662494343314387013669017571019028125922335310059272060258059304019327948993513440673974889428742529825294093213644476178238595635387155534618877308080496914239445684081879828268051934900206754351151236129297737691369981625658133592162638489475298533052250633436052339770694811227230271086307468331286259743789742857486875941632425085910024952925577082562441642529468310103237006934664760254955560211825420921556389745198813286753895622978825008415211366829337423005509235175809180489793841311370406276627923898786946399306513920887557083989623197918409420792527216498338881293377996776761232049651577297387116496206411432439577652447349245596818393307874096671573747188178819208599355446861394189167145441378085218574335905926886301038213686031200233290577996537041463569494187256557537548626659289347712219255656429261104082279699751606751413522485775519737873154349749090879972590388482138789311247344318730030040321471798699057397505072069107868538723856663216963471244689193858062420039644121706837904095845775572597723964790223944747996000490873804386369933865754014355160167001355072146487496858125908834462793274029546530079132039504579222011376860752092668167978005461074521224942013058628077874446804183644124576712000938667894111633159252642512806126971047467584133886889300655907892532075653662263171294146748727951093145794655837930875991077201858921309140523373590031752363465158289031292731424411457315766704824427226248667206778421063310907898725816358840725426638834383223617423338589914153055216885303098745043871530883853156203886769802908327397859546929098827273641661455920737046094219629387274419471053196095203909772039827067699829666068074787211641727920607525391572475664006642940004563676287771960452156516785389047969123864055361451059642440452681952154942363130346411312039666754372077312661591891184166910569517287873989211759602216538572927178401998658064497461987629372913151778933718648364558785238652080737784366824828123759781399381384089236885070782511967081571273162400874552656433646365494809110565920070383743701016107299870277578107000097375612051792412392272072579341074318988254313664717280875686808995664078589336559771656152580055796631295548004923060909045450830208620015637464891684674019625683031858022754926825802240661993272154953448062322013134664809936310309749019784894726550376877956995087159130312788860795693812082953687284903080539843858946578817562348104459595504623830936096664435504231082643979168987630517791562003500448133246112237354490312761714129726044188660569687176112695826751426399104850043903220666557642340185257219425571345573440647281108301270887056359838301086759368495016050871640900977005032558313435108944709097080796868274704437963579283679740775504239032025483245740705426751516632297597052898391984239793510850796289358766029360613869933283743189866871406027889161346270661597554657087076476028680252996212133065440447780348050287099864700827888554780764858816520011445385628416430782827420127892254060330047842702185287249983207075085600560777103469307394087907788175222095440118633780958338637494806897012831917740434948125956322937094819408801353231097115314671938162774808440353557969756721880828236461476605062859666811777649906757566275721806818363863013335289866379278997495672302230394307004711470752753258252207014443001530204523721476960953298455495936838481035439768984994555633242742116571318726872924857816670249977867402403926115479317779148797254960043112840397325078244350779232452593016538233558562381117838302594384069437651014726390109665390520073339604803697111551255107842576016734300099508936113458178371871207404445428084844893448831835655177715697772373877317382664079575449754645191800796141360494870830067146786706555854701464648580638665428409402771985553632553360561426468580237971856470612169949567048664207426199316615841354632947457102177126772455411582068086305617146720627164617444191584639813105898177122677759964952514881865875290603140329013479721639285882602056272608441980818120703782700614136256242106628338963896797304886492064576836880680802242450636686090459078832763894684944682052173522220633893729552031853955276355243812948913839968199946645685641820591648946905656081744516304398820106933172133017698994754675692378054405326121490446971645531856850592027041104408468206569662526126486808317511525441782062663132566753011737412214900690644366187520953826527199428205141953640332871401943601833640562576125156160901659270910109106217823063984749692147435356906913132661780397373339102935348089671764712797978550625019419550316389217465589231454652049302503219483942925988680429684027173652437339634207791503007864591992325604077339868830249513957394775743281385257993246200472079211814556828530224179276830028320072587988669555017034594001255882229328266972168236989889538342988623092369448720194059376993915080122062183493307620038688022651787852276588970709913163728629734422061310053559388890694321637870565421330955562875342472619378522051938198862738906612313417531803722714168840070964872093016653442147039092763202281010889895897056143457235477841869930534710571446722035902109647191873487021492612363912503114798287829658288390949102126803975038376771624207136131429356792590856426530192171903249382433230516236084103752325006736085400124369410116350710245321116787165050650302853266313142879635981658716546248909091491590551326412021853653083550127129049838182830645506309922060748252778807858270623557986580677464226658932449003188780909221645051613695043937466585320624227810063566083628126095924733678144668018226664264460981477418532360231064690741257837614637609105106414780459049532375954862575664356383049055844817076781172838770934627987303090907394354150382465562424198644354877588089101240054103729839654323312830800992719150437869479664692165265665363878761267237381057090238197657907284229152715996443542897327333179966627998495484939815481259015076428617514525046523263957192428768439389788112972681642073904918184158531715024716634592291726766299311974910799257856652695524966618935284478938235665738828368385128605808278436895141254475946826864826125815138140465704727879375821070383590235609605792252754300403742443961735965392870351781825415504025848643791947605786662614957808084158555188785239314554898486018244037326439889408203001971870927495944978431975107412941434655063262618470200323572112885334250403328498839222934409289841336102395716093994011680606561993576227677638082724934217579904761545218403288898724995988179078364781820563699015770231280617600609963033132221406989981378841441237624200768705802671622667543402329308442747486200945051455892993237346105272203506044136877687768159423883832411724073443526501043311967396154362087545670771199770481292221607359753775981460609771754828471958966196332050805352474584024760197422025476121181446231972585551863668352636084499296574560945172378272394528914527133595825801254394770764660821719504821181024450730942289176670703895475246830462315915758167834067978380995684405732435335053626837801556679689465991930717437568622464768416958096758459921865489729130638917184449780156385743948733945372539382651434803484733870846136318149730922679769575538474135947078591663682286695615272031905819272502708970751073955461003856201133157615547815045137348242277208785788239435530981795478651712624276764957244871388571928963686010559617619715740656336465126896846481324113250143643634845617394574336103013048551055605083081211200402651435160774230752452649300154069055802375692510343949797933421949190716452226943757601674176537606244643119779728773026133056233359199096150084523947860712879093515177736229986589078014270452563519709541196734918457299868253554434516588764254274829170777329248542845180237583353527634632279288243058783566600898563773903036670426064566096307949562555211335628636366053040047977937751589597320546200378730094696586927724599825658801953236356709452299526589095640688721128274695721584457285977073918590861917114760885468750701890979784357495979116577225323955719359678398507484780900204398777978288400105672040697728049443479549875832849358855500382314646747343239814306649894075838217016065502660551090279239313660238075076369845594731771850974585343073016338464626108465167411619902380137128606575475237896310255369606556188770396273842642908778392972833895212485507258053156618084978595455261025697145204836722449754504936364119384444862560254005819371624022802271445031572389491411228072212391679901493597233070543058232573569708816481431060730898910164104971199005081664944648183487246841954861187298374592686862917563427131085328177330863427606683399866662645381905434726326043609309542349690066314062717869350213579546600388151413454318657584518559417682510053985015862842054718560536262732329406354806384954767468324088875022138080563678890046513998292765073189074923937172267827496318088306078803151467432717473940180047197889357459663356218361772762453575257774188499394566578153626237579329467367447888201597134773508241584926541456010840077709276799659148854560407501615529825295272989611206066742424237377703853624836715883191279711030062170143221197741000356149116069991464263916496480726513015983783270538598802293936458548509564543777466963116166655786353458501041502625257373662596469486924656984709650358873858007074560050975556668616785191228800914045494892240760728437222081295368414853942188913902483710499221150880626832341332703997465784507788220953821400039194132835844529544912937303743063205797109104438117695818869510530787662372185706441000436344407962632255326990124763958596089026308260367376250235812342662391433395767077155387383240689754821174709754378250428508051279648439742089047748752885102387984395271426679132320924623413027384150443731277720114412012353644724144163058441533168131167823532497683517534161895167080460659291151353034979356666974797960396860129450631980826469638411864908358463395761657153192442068675624150190920458153999833139368360783715244914732907786813172544196590989512302788634028824642973727284057560987226800618861763791964485593952579420516256633893489407070184832097252132087407902102152419579936613610194319205245551245106138124202332078386544351515617279310035628593577428914380346588774834174473117367985221771097113280387944220676627252308979615452566080036006364931276893058410418302049051133944604515792859934311268355599523196559028411305136107160544851355202340798960448150066889494490798320738455927313917646292208271338981241867141308872119539960172711424425470195599433480035258879087694833194180611692890307118563971491652227933840331550821943776484323059424985051604346521611119137592361273626089177477679839057254407003908556500008539554551537041545757613422502645894621911991907857330055072195153577881269029949232758281178470815735574348721114080731586732905390796550133366484268682266927546169008305298275159578303869071532443597797792327466602280614463702110267724611404894101957173957499364616964412682447025746661052892307952009433536287640096952030221009785579490839545658898405670983121987226055854585039670290066922248361020251115918041595237785770777637342867674746896487305223115602879150375580430771516947550020896683931222028338619624552966101057267748756992591644498908376600380171820349542169696011121661119220728239985052052344600389477362322761221171863717023429834786007185147295204779278956529298952847498481615038523904001026360955574382697769335584751636382045450497461114885104231393326774466839224357700901913970492877847135360882693272279730981764279429111571926130000101046108534289905317224298571799786009924784159699680701894922174921581742703968168825067969364028123714358686728190623220660837956882224837848176002544857661016380858980942465136276949999712715418336922843016717410627069475792057397035972902867751509751670315918452275318991833783534839681419486140934373668375547277510090966696296386476158661140607839969330771530531036605455231824195038552959537579331641608553948154634778287167396819502814147103234395569708732514641743033677516690107199350813900610950626692039213193805760882931516892778196464568294832573481460573135146104401408780659140609743004886010903886233872610995495732305907023456827585096233995974355354648456530680553387396202713287563333172608812405660810092227052657189012778542693593823163086279987279855375609247213590958445357524638274186168268636944150234058293986952748403599619142455444311938743697378023475669813035569313567830006901492221123245666050639920457898267534417573289920309924936188353076148456281243893098533718087566594191563474401958055665306868655827001720098861775355305905674836354580670817865919507322816959034809541402749607948388099873195766075863489486540565188788113827770900541956207576319829430688975875653751357097530559872052478249048237666940473106315582881787944958660598776959927667123605246565449946516318386555978970985819505515867805161965624308005456671587867180844631671389239354815572763403699563661148375249571903229297429214456459062384455043103992947659318478195557352980952451650472201901814843156304334605626832044244579310614913243837350920381834510626984910227842964607670358375660918866044112879959358306596482320887087523648934495750124774867433459600285399096711582417264453106562707878121619492646743219208660609578323424901028238893662979871390550188141020627133428991551005217161143641498853317583293277213559166107780145612629600692059142738052569700861273764385641119729107433382928501996603504708169619934230934431883228942662045966947289145484854938672527571613064494783881793977508121448329547534241932389410621021375385729603161501550049742767757640361685395306322070962668992075305108735973153838117426422681365126099730376520511735969331545938512202926710181280317989663574422166369254018617291514844342267209400694487179669330318450908025350308286413243011448559093415355174910129640818620322027329912407322318557205595638555262605691598565834107319426195199594377166631270713420852446118708290315503878077563827498762942510163701513277576828225771418963951050404885915800008858592666737298897684483886341594126863885442226006079445339356344140483308550475923614187791273121494583929246471775669319336299787622400103931570116757639821816622186398423629694858704885867051593266492287893943776872596775735244896987944833399656041107135467331598245892025297039610229195975694608562873703124518762403150707081607434358536047326675174863068704545646107987818062721159639951791184213595765627454147879972755472230792620352139793950532661930663809464334506590484539800219322788290008594353517129771709127289295792903094307175885947887878116370640659867234583918358835417231484062697355064478639332715584342809806568174795433562367777620144316543706244231686926155719231135469387529808807487651597697097542495114918476998398593543574407542849574651411719019484687471761386095457165675888142643618131865818560668795425513692426014029171441675239893553242184727271213785291006697975105887555806611115689797802470523599133484457254561815274146603940827669245520704805378139948747338362546534490944595073051000609935543427101972089665863451227950033486367132857275161632931646602328346809043307290692554420457790193886335067199825658609841160967773448121737655430818390931589485000853931207656709425133058052870362797477681349050887122236297671361417866077471388086384317913882995102329760838684652245463499396335786346297208798271652443064994949870693674775708133420926042057703728313879023551702446602500726749603980481331493951073493012124867001877099485334887766685607462599244278005005878960166544118355066188790247322388867143688165859224209688496858349582561624024769165158341135454749921332709923208298545221550377455402037474226261317623326679326773582495260683927675220785057309961663448474866557775208587520812442884485500962532075224104181537513557280835627012415738653766701937953289104430580158218627449634138990520403318710399082985895922279361311706506584095600785653836778956863232144702449735649248871927143905143368627517610855860370397427176689935050852048400155653500668918424310564497757794275401468468571052610898639708039185998812265065989618938015644483829601525387516275861931679114616904812045202740494361584731686291106929842932017006492888910066397366403856170663058313777514571983259705747603503613469601762957096818287626173397922027595463776121571049490321536470187928016250580437842808794463528190259204273456062475792787129092195874510818646316633902594059144066055138146616648770360208474362019301463511940610951493520535119344655093710324751959437080327767017197028205712542389868409698749794107657403765698934318839315165320133194448723617275766523699207931330628061938485584947756042413063954766785050201414185477848845738809643389953342274509432000340778554259340961974062602137279506329170427545863470665416766005894159554652368952814866002332469950107748722847838516497946065882048858588265851313448509259293504548037914839669865905554480667090927274083362245390733004818511508002617591787396340412991922629877420571341614370990083557386013387815039087861285363751732191851804052611354151300474804257221715712466599228938171815127156714464078091978989573095115529307081558519745091498549028372430479465373598051379091698027845677735853403565516067962584580896367983007146080136415134088539500387099109583311712599839713482578394966904825675419490134740204410114921907705102848211279264982460708727083448604351003489348489920228025996336328190415342121264694023971036158028779221535974894178040591140165050750243120766092855641647188847546763101108831664874406141452106544881276670355362196717473718318068363781361524841147452327144275263347043744648460061632500218236300808884047134336621480573451356710572586815329952234412375140687353584920597988149897356149111748198629685625578194640011660259356485511427382534442703214114517437741957057241995697119089007288551035408774420183281971936045025461883912110785712612926612835713504250292367933745690143436774081416472822281824981808631299582639568373765033536200773244320634723538288791739658947875734349938440811351518485644014643260730984032127835528184476912652610136375035804770174067794959594986522869359930246897020585029387000284670348590529065166353173708121962287843829015247812691209337589131712977098692017176277532575383909187764187563126138113130123101921268514298308388466399604258659535654875521032774213257219116919265923266409214992182526288039647279986682616520828856934954536190699642778444357648049292304510922986809458471780279040230535946449400095239432160688408051286179326232897610189952210829050877609685914813388206100991967818643097974225929886700999023745797605135908294071901507534904832899631489840050650273155101826931229265459287998681317576334734725266084392685917734431115409930596562596336865034697685380387954614044453296690480961680602063589923404501355180168675129532187862172941182846286376231472286411236790804003808181108826688012322442206048366199222071419502513260127768536973095096871629727779449663271702364899127162672467816400008818324671742938545717477751464537715641406852840314179180016906227362236396846934024850242288462587985863779633168649085312007114242246747324055711707713470433213413223736150965127713718936374378531398910980082997053790782247943301549317934759008982671875981420798256249378458956937676432889417323822665789541922516361942845440066718580125238742992351141651648586519562507079273239358092283415859667333452326983879757682142088427299893121945821919570155031799555589581595465997171660202705355686958441624769176785100106828512593050782157897814053202421118275717615910444104187937906360101801852492055462350384114171387524420882559384289433926874342266251487372218728098474738472498895521390487976272777140938277322338977167044217885606397082870741593186533802933108242240107933872382006982847453951679579447961661604905961878959975027834191447498051222984943494262635358887974436739595507230958082087875399218685684414443100368634864238457294475207424277513120299474753312031908562106188626970009085202295885229442570357266242543234403165115822029398294361689972718763683397325467577638339659435921685333708269645646755200482668375027588497850541083917473771665029956741452414213868245201392845894001018375512832469109220966871584257103351434334677354192238922306788940990100862507873576057879531729362626909429124795394311860113293775881967583296218958380300132807666711039535798724689639885921332342471867199212410114026224736272085863603863636830554466462889452520378765369834962934278639461577979873072937209433344257143607078995702257589312084421219621818534185002560774404511954617999395081598478455849505379562015767096856953457596786431640681952158441628732416020372120615699953089089638490911431115226798104769686277466951760163863791169432675486367052386945025772374300081439794884550793506066938630257517559218432460492140967158980696391249392820094753258289012609383421173505580804264248799124316109885029393423011555647741224787878523913308922850846234636278504711593535393735753120851928176418882348469365156534384412944409514113729193126193745562773620312633804296679107091114508048708249524287832264230613017802113850687853643807956231452308671599582463801797145932726213932536574945903350665796590417609846814808821658848739463018908727710400552317408055790286835135860640160959430893374470954486703854965435522196584444628382141380833344454848553908598454210755752024500945585933372239861712045755068725201320631982539648295544000681299822971559350737934430245391703330099741560728770058839443571633957506204525244496079249130307080105029445016407289044140660869115863358679464404290086456787606843088498905582587657440011872978849643965744338163496406267986351492996174312968438292796670973720230550087374074628798942132985598930633326342245764079881258555782857088089603769458793533315086974682946289652836857416600861513475458877091310692156465645341639991430953893792968424187438334450871061251241238198258092386027977314246911723932161383688143136897509168565928042171828747617614977561564066407828311085442534983308716542061119931119488879533781755659677374926309677991364851647786313300483149254671839432641025837244595438554720173163019331031047059267014437610962237494985256067883982138876343653476958479788767323393780043007937002107378367678475940920373705416021590576751837359619755058483403072372762739670113628185339805644907154839878638725021946006893757207250137416518269402348758187281282925465752481157997426363953696784409577777676988440955462431029054801711923791513148926780551310744753472335052246034619428935542346023262628802237892854804650319775203308250999274284589319739416849585164745795052976086965414885620384913688662279348393896818325152295122093568947403642555778888916647803759501312776599281089430540266399333326415648676826991434483420607960054370184060735044601831149251284648569626798850730233543610660484945660003616725212353454281066368958873311286983363886269538114499238194275460619078155067243635335992723202231731739021228192856620435106379457397123059820572697596859763875314682638522990018293025027656567730718915648465627677474389543816347465711075312590135823511528986540707438685671283319449892601028363813804199983508120689474293474196468950237927561131218208819409388033736281726672690650881133616207788478083856337194760315363281789276368211189600640901317897097701174261106942820772780952968806361839114660095370947697060962798914207383002693977932769853098450027155349520491018505695982558753249039739280981068399149006727007464825419313268933554899381312620875500673553801467574209633366466546681898524118187152298432762008424688990583978978683476188830208438843884128379940681658317731038335911049917631515771435980207938380169305009185039731700789469721085084384112470052288025799319147207843350209783302026177073572206495150195706105190974503062114921496333014636681220931302029613941945777479233403994659527195647484779763986966503824942438044432937213866674926436740401480446294164894967977537396079930241409633395211944362220417205776367437427364673395104247406426844152973885040704160283853564114988746066182238697678497933441096787844699534776343690635999088085670245136124600640173180873247601142588317897057533020645728300370182760832700513337866115088165933555385240071480011781962899056294146523884732363307681754195992350030273752175252525097159560724259523505781688097319698968546377924057495636131794994314275042742502138278736350705850163097653065507117824726925985456057015428631017930026616120219171841203875394729118315083450078131685666399794966095009809825856172516459558060180256650730599652426492481846744362160045830197594205215204159116610490314344104856906167701816305921284027059010883246274676715871691407843574180760988371860154108116047894124684717138275676808242071385027210586696571742482522238050609080405510702209858054315669906896949965810323875466760498250648506367589232445233143239352207091105055340230749260779229850407984843939936015181094901259880258192313210746377633098572527538640597252148731827422793834818497273835751245393706233508712802639111268899463087664384047427741502736993200845167182086999177747240965838126276170711810164306743824716258672165541001575360961448503036535313476716688765240268834801334516706328994501169619715560730508683514175026919586576945379698656708846098890723168985341462551747350170241124606933720958232032503593883640957320406659388578825831170292787999427875713040750381956898920653761513305581777826820024024024827016601125675076183408384607072836540617030024368103762107681544707700342882884095732597358235966952439165871804214491595534474892126866210628371759548981442560310653416857240738609666668635732713012499062384842387476949614601739289650393151088554357391803236687565956679099845141335749461587672275661098966688946618964083125679187668481100675235479269638657718465340665801706012258389214939021231407837119939204169797489513854188788896990390972154355178387129476658094182068547344625234519252036207759733651801204438128654387074635291042730033243567897684111197448648611051686450048843384524791546359264895585644191645170972125034028317321556008661165027936867051853419659464917038980598911904225545491427577425668729975737630466219038289642612024924892807609589689295015331227981527393593835189330413418947951380404397320308504927150407773019555820854523735291441418308679413954137788215580774560443099704967928719341203921144621750017283765304850652807229835611679429466413987868094593780911974907619875821158532599878075987813289529559746331843207191118481845831416148208376069500929986788419447359354529973000864281931444504261241822489145676834691236944767569836823218369946626945177379335966960913870799864363507277320082374146562767714963319652969828080893551425197410722143156024358189519090435088372917795204643331019112297361538531342665607759587066544354274031918823880624730869859930505853262493374519208307113388904464768698089455282565171886459173916842192325396272947258471825240341112053460840472832178655863717493706725577441144019610857072112958035457694813979645997903292053204221324948061326040489080988055091135986632053605827376171440581771129830795247338126989598180877949652997095054477505819658231880222248495542427491407464309101412534282347102944058228976225689111351275225025375951793055195717315662375380225117898000024807104955121791405084037910883438137176971119213517467483678953224667425349006830426227969813621708695977105918514306301927071986476137289053255544069505782224313678897480737797660495405784922988755088842937395534920214337641181130385511572136057083313365174032223251832331515707994492386068209915452974497280005528263368226748198479721122909756887176969351836706074630416233535636008499976948285209216787984102588793903273734690661989550614834506835298842601580335870843536164998793947325589872758682663052599796174087246373390713226736475196440077883346031807521087176495249147581154333761584790529520230956551082005197834716498315478458515815854222634403467390510494137489619816627105918957398567179554184265491280219058547063414373057418719777419307875895969950210864417669108458711717643819105652387535786874589320817913334046225251919590973687280711713677469710822299370088776092525642814682872492705583163108272138614020780115482294740724581498042526200279347253095541254774757736589726940379433495142741286742072901839514189251069475772703030206958319573904205108851736304417106498678054246973084413433713768764386747345930324188911481852090246031641511757642651355124671845926717253455719676898788057602040773811965034121546580129506507281429615558277049648920434136755883186646430826578841209474290639945565252776955748563456578881126724908145880963089052729049198677534041267721491279228752306312576875063131435183233964738223649831610916361656177498786640668842739804905545115097376709772504128263445930809351966100819986726006505286308333784257583693199379188853402779718369823458974965540956046602445046089639889789275245313317204255625890249130782667462425364282557142213265387943029354364098139886358083028784977188844066172276296118688084985622050487089899032723699869747001540102921079491085508519811078121833972986941599167329262043338700174049696267193738533527105692546296120095287774339780968515064344705757521004830869550390279050406834688586975400687397985796518353177815191332475286575230040069158541090713555164170868435993713544553859466087891628524975288308607384183467422014552106281435017645328522725659898280879489925273037894168816527160462373363774557012880756065337419212417554183446517873004686759902540808405010984554745747085192396097762278693974244888415118667446408074767422423857271881578577289556166141057915501065019273728590927902553184418872800857780455389944947199434920710930115100867283924179915571872713641870117155520828173364892627636162968063049906830737728843548148196211586363356301407532033212248474152755860923098642076424106757191799335356122752929405947758487776825394774453404544037685015642141284348971810676634724899537711035360612295870391237307676679975351401915720742451877763182872557761429995563842795980437934925401420858374437782947667416815060643668020022472943781371793582450242546958801315487433291971073728952852852381529094817124158455648403202378753809876659187278690591722040251294567440283580321712489393509667531166500419350568379215465147829009969195470744559967818296609896852090049424669195829519899032068314141995747054239354228779166949813789131199709237615414846000636842189061819341733110536791895196320133908475508015631191551657888786835925169833932727882159159045257535421383715560848623951789917488300846751406886362206533435165843411239341812753783336329650350418142381450778251273678881576076841187917158615868359828417319003818937330893214896871032871059336404893826276501370027583198109315022772906686227767578724539800437553524193859088899085074922373715401360128459531171621570407376662193961945270241134278961988077065328174156412273158661894349450748998005813628339311612620330668364576200088853127333268508338239396011915391086638141210748473237827208264752156143653493461670628253083943154612759875235686808400115724919837576687617119912346687022621284380443809096861276260975884277558523260868805479742608963481493337469709119726709419664182877224233957650164796897731806193022032676705588522575969244579701360187695897679652599837438131318093814150215278075392237485354299761938373798508403643978051581061674068067515700521323947406861083336508567690863082576573008698606276458153974772995630307198366747596093979125777874515303968037132451418678771695222084457915589020779406438834767709141566416673501766716763404644082100118128436895243713423436288564035334953524373585689909175584956146664528253667184200859021328349704395300266115450777890434175433490330853294084931113410695524453493885570828643921116344073404416514998528568669994166491569389792993797140476539908805995185953406366275613503420852703538949005523807450462175744911615673532121374552812406724495141961141799163456902132993271915764468374804435446827327899768142056126139364388403516858587508172366111380901650133989524012282851936476585449455998024988160802546130542512760509523763232771749223204501001734789070870564911856604664911573414798094432203310866305648684315116447116167539240236212112643937277253956112195304554860417826034400509274196590683376443886086765432288816921815973641648572046328242523198861812931632922835693340407936572490982024654066568346142841611160761341830307889127787558086414165148977019934548725190342541749980614007039099023929830234769493056519146785883450505825229842164566916145014632856729220139633128501050288371442475401457283773575118371157506196388452405856635542704966440013163571307586963437753401233727896796276843331082421388684684008500715043105919637770174846294863031392813284499549018417033884486571213011817407109614715154738926191642240128703303340201362253368324104956516121812530185350470187380241234982993607625634913163657544607094689614505603857869558011461151095014524679481290182919836596314241145339946336962359605086956056517201532265032196646900027427904298579698196766277210562144695194985515747995479105542336175747214487565548622061702760581013580246039470481259078049442619712415454524257964502399344177186747160589533209271068696700023315223608652652089612421502741744327532620068473115129377801557140579971716142491155162651862720783782426583028178645672088412421403907503801786839511894310148686243944806945352602916716653854405448552189105806295014307521474075058058640485498779140441247522352948421204215051827156961849480584746948417903352831713582178668328996641019832785897711234919207329887233199414031125357906642827687941089741645242333984854399645295449598129935315232610810184676305944795182556456744242497206898206250732524263384114571393612768803717792265510561902376524125082130694447107853628636176131593720689465296070440763283451964708004633108048375610720360118928457799518205773977239975493228111297464644049207565053005382516972398651100088032427840160974264890705253048646131490352690611691798521315215146434757429356461897370881617436121011936820098730083079325799600392559610350012933406917328047491693073177803212844145423836839710311586636035166495569137300854132828620018910997012598431325977637549010204956719398608562961912022881927115853356036824717341998391852400990472257594724399437582026473262459878955635189776846085557801698089212898096180662772132879897551516745305766887873304613659279991684659818901931786939265044570999342477054414856390572857974485753754904770573540033043942583613478686122809255050386268064080881191569628895768927455731997136404024719736876876468495395206510278202045574743539494852973791030438855238139044714899813664930300651546074035097012503763330680161096711662598155903306024388358507361670625207164586114927836169022147541071955919908620733821141403473746154891362525829515720668140214712179963493940927218731154018183443256648134862316086988509593042644910670509851434200539264068150283403955325023142161319446629042267390488939961115778051075278994973627193541910886138030443169217609422451264233254982235521685674839137696392360878817642679683881697356001710162832281022272181627838748033848561964172048874984130420160806361745536013098177380517407263971872931728369857119623102303462263871956518591622801282228692897176275625000644667835827158162185771043934640564271808207381404031293704713991513426062093493874919544199147211316687298654034129125850303350260862179446992984464258920924891381877256406077147779260010317836377588671432240945203926905118250708312212568107273850652988733861874902447506378672018906021403150659643749432876342744418154304963861020521503703708315682830222548044461818001822798155421970540048668856595590734594617250170315231547713125250252270226179239676945684744961011315280457361602164128124894933270282502931046136128651935497413006164156653020204792415387767416137619751970252657314433132450479456746256339865839668333073176042566423827724787891368192103196854582992712029905902549745330299298857556157787468797444454797262637269879581680860834118898720704932872659309282276304585579688528971195642723673273003087469028061287401500475602180162293297298574274596944831537454151500833962395327467404582142155887965812218142674041120955657566185335854886468291183555352804096579562045294345739191206450472504219350157105843542779023371602323237874084970534525153933213220314867017623577652900431778860799032220749814469211982126009002422118734966614248521092271242906372143486244112683025067971748632714185727854663740951609957512689389726286308068967176074037576706204962950670357189333109297026041290177694952805498109783600602966027547851893994743103923075133232585122304218407030129548168951532796310100590869454801399726396239243489729481547891220047463692456132843877572575589447400261660566339574126294783654195213836379781404448008325581520632023569036940483718028774902970594253694404359343005169390446301887932621573923992038921246158902174760915732597856969542631097604862118693370114183648596476609401027406820621573067820074752135449462471583598119218297336105333839313372285943182282039353179654925504728882607578554489701287050580103629934345196658341787760694027569143870893431768888428451105029855794975941286065298614155616557759985668953461988003729092330536835079101033175469898617373467913920024409284940378159180136349014921501412789359912632460903053227745892888178199081287630373204520197746457327267641326429877657259389097898444828404827029802415922346487708724084073959066252230146369451717062373286580299879713228531039749751281477317997728090913766190448529276259183708596433943958671017352329888867000210384495171890916607268997209143910333543452704994992855587579587766312626419031032963309838335054771380031028326074769076118860404977418062891115448983125608283384442248920604667102215349320304883501605246528421651731951516737562292877024830579974878422821428414457897003914898730709077643508427941398859693027703889239229568282174008854978761217112477729567845448321067397168935941609284878709695470324166293714912825114978856623898613034033630304008586672446993826299264396289316138485079468583550707221430869310811380881340282552826306101474934500874143081998800320442527635989051147901205278878524406722521632901588254990418747664140400017786885077506312761172318194359912602031533716179411385234234121333880315592035893084009269297794541847960945838103617604087385039504133383043630066722898181944517333224491293928390815223308915309253661194675264410099584855891623280226024729389296749451852839107232891652275439985333844432279384802226110310751724044073895027685408331966121738591136215660056787339443674475876615784527851408523603766857877957626722353143735794205913086040969487590293818180192619942733505488501416299445173768379439465355000514620550920753389771437685290772234340542164598521005240046200745581498489553754664642093196200338113031596369398657003045741034633524111284727344394917162561607592482879470750489750908249208815014682029940245776302238398971507960493248970778802424105233730774294438010709601703902995399905287005483731432225287411907337140652775442647033620163772494821715009301848124903021963687701087168094464191210973447384052974784477348509385650038126770796532847594081669115550803533730530869818285125297050206858373722145772454679749832336122966502048758393070264474546639689808307858016977386384793797230557807517742519360158842832928005860055186473968228480336434745745332100504536612004503624429439127344891918357869914118146983666791800036548663343528910110070090038797676354476993427525907940771252668993649418963901098954939599024518114390139496582646314535615804659834215695761291094896333077412755250964962912249601360138620573575948107067419700531203497810533037352616062689194513200224049250148606563756067315683261880888861566673257945485362376450430276873668723193800014317214270110376783412401273575800299773631728148412274223230917039694219018280920263309269982190823264681702689019019101765527837483976865346901622719595775515364643788708611535309364744937848229560637807077869804449859469345239822255567084951165534013928268569142411201876833593224915934915790342470501479934694558295966737160105333811484763735265880045546740445100173378735858329485888747798708086730951918356371502861170540592683457995089140919267853017025788477217005363574777081406085927845256725992081240946629837000931974360735685239897563661417022570180614418666559404639930740282079631002693437918576982410246663921639238349289361999073030752884104221642851887890019274454410412071940758180713321394653263249591440611238768551655714171983905391182733959248698489713275922726507190083561684896559677338842677283121785522061367757801513996695998404627031791552307469268825878604348688704650317355574354641812107286601514619734622834938516907445395071098488381310101684818875394228767108131682189523892388248360644356593240799806993506575735530328053715309564925505324843854443136486059399046797273305880718027140747517019052693852895343422394176164555952734333503271301517170416614534869022877067560876121348072654841056074718838558753154786212677473065232699942358282845745835606578268594073249627196852207081642495210725651911692120004529669712053018933698756811736713937371103408184481706203085192595551276733722434966812119364406890003231442321290904966044717755923807856284258136858423291032330386248076512898005302809102117321801895549618151067293820169759656986809020509744063690540558535618298544754685449298045554374056390594269807534182825420333005744613703184229526791420147150924366465013068200727060730692326072961452108952149767554450238066513157518145746814477355334990082751359855888877089864147944637189594050953387064365690590547850672619082328823925188072358291694621088676693674668121440633899550774596714668715262364672562081032922308819359270150037221042676136165856593440502421693191424229793305022911388370368684982966552994180662057198188128367218627066912235250578863164563785581415536959256045840535248627744054418896298868576495154771857742390890233945989452068754605472319629454579628962633008633974201568318989701246218003086950737366610607959241590109882636912111272232032736355334391301877389540820069010430496286785797638079743323974543404734022395048847777028244976722270107459787070150254835240235877822716666865360860816161823662842767271455818468927756842812471880030684007071001474873224945295097792513068597366491274030254998629774295607825890724712729989925739434051902460138602808631914754371429559862520241261011375981392712043247070194967949655075747008385128332007931495157964178543789570547770237557956588817238970418219841316828892493079143963909607718909022929123746727796220524534579909760060002448546658387217074659310589703140457591199938716068017307743071568781427249721352862882749361707548465288983312478423620124454079966607672926711565665957332162852918635766854086971277395931211320752998979030912893315898613302874120490192234890226010803852691929687245926724416489620862408476691508276790555439537981553797780958335305152547386760690888148213724698939511805997086900818638195087256003025616977199980015926706615157730275864767589415947392864923716703729587610604071224723983328228624309752337235987890690267431566754278734689765470972238299842802646081602009412615845906956537224407146559155514614932464325020101049335976567777680213857782702497682047242856159452787643085152326028562474526189707738636643226385477290147736973241658589106061082391010240324513019798324784093891340090877479731920742116415157816825299560423600321881067632123099900417172120233277173377074638290815979583290695680475788774869367485317475315450225377928043640785267321145969512682454291522145110161244783029438585877557958343025082354612075880477238803822122065293282661437046672368484215226777989540196032612913962409242731879294816779130785239530951203682944298670650339233773888692936476047831604466797222018890540478961628355927839809859033562374911836505037446701544125102957947742685821281694422213942581126037978906683013332730496059005215054903917932046135717823596258273084183835761886303616663244488024950647754624014886601465455306594977959726858536588986773373997890724065474191729350198649986804750328308590210605974957450068026610200759575770071947810560632967260162014890881291592378466474572182233393673471205580288412993767405668429417701487342831260030230765544855159826597882252647357449318615819880575275187783461993044456248409248972544374991607803835039059225507242393008476832056900885496374217835940797440412582364869370144264334480514834301442300163958721133103693103997793789018229553225729204471577893583420626542187975601548710143915203707401508372629845992351162818413035456376132383336913100131148070048952150922495616270581738832637064131743123692078243690141671318334823664400222395156143227447627280298028770366935935714059024582104312203075984647043473439714652351082484522155707608807031520489057466840471264244130555682726425977381627231478256825484791311762732764468300093711921536585785562329827821186708867754405417776452136487403863836987171414452759494704756324128996693721375176924670834987144731964027639825262804685753504588870388198859578884490751160106214277149460978382874406561025124647297196414258312996916759482884378385507040788417564466833854424946852349217624694708763885457019047718784876264895068235089783438588620413204026042832915807852659953026826338758718369762305424638018870868097170346310219108068103308969298114949790279993666307029938694216383190983002716239655768145891141063750479242180609535984134998524164888175048464012629375742449006982245830903031393676586542705828845164046682554572637585375028221581920434749215356170537114868834725177269882879392432175370179422612065089598601762127871796396892805427887051936255091821701641418781082231608733491946250378293891006334767538823847415833325740333414072111595849294857725278469876078166496554717869225204886910558084925660539975706767422860489778408406108572808174294339191176056951384263781392545289897079034729618591004501517864303277405482506370676974510803218907873135723725576926244103378471296267091500352915739657839927907524398250533637364009031264414417658094307508537526275671243463077831263617675713082646680192222008411604222037224562301736411263888480234412773064504193579760835540775786991624484124592425609389045404249939033055702428427967374135244604604882088379267204287641725831826021041075322548608685443654840617621151590681773507502912904321223754853940862235930721783270748230872595532338311269834237322751256957271782803559851090526256984788487362510719613059769715695343233789287004235188013617136160114945467424721946583169903259513837280056671536032885234762097119119559678886280206129088405178942087903995270924552771602849603461855564613911402747347474859272352691779727880733956227900622827500943761058324562876949549177275409637996272352298646137673674584642615852754753304312671447456999347591867581980535450776467338945494122518048016609112687020318317865469068884846511974936830389764125382989884156071077994549513520126893415837176690102359678978079981923624389945366609056493787283522796360011481035219067548674516169402533768151881997054138824720996234251289934091373237043224163910685374312250366988166468697925900874677438226881357955085910881080822985629676105029756007853184493878307361600262843784193209961517143032278168237219304057788304669073653138107442764821766996351559880057901905959016068881932723989277495646237714067467509905896917459096018052669817197073409663001516319937300945926590876262368105557601577785571345541383702788070791948405693293994010370449809831919396919588951156023259841720781406619361430029740558964473199786410578938940798712175429298257555878228828629631205387031123636176239501785370250080889305882518498812289355022041485840596049414727871047085968354872984343786433489058409021485240991613841775385169181614343535923588486381385843576152492394818504414225013490708065204320190485889288589048108447136230660623345385960964895752658218732508908826903122150663540044848663268106196115571622362602481282874692053683588845632810817770234315378308683685213379699439671989617591379230918782468223346343396284655284768162148485261522436295105504883456804477174678700177884583269278529731755869310482009247332376490161454862029085113505629612227493628001953893785847862297526038985113392690418424518176460374093472915325355725608081449017612437262129520212237875887220628358496867912618280429858049128828574081529386326604065492994610073530591527303428485386369836305549479443379720223359093758745904529914427265763268865587132871173296653035295028685927451685660972235400186829982611825515162480793149357453028755643230344271751001123059710569575822489501635842723544980875005759354260837342402335519841721336315576725653904985750508391140525431763453480523164169330597540434381762447033440946354894343272464847949177540315903149014802027133618346514583772386386807135580666268759237056778550902840554852779249959208723441806784069612674288272504305973347724377377912169816126165293985431763939157606648004300234942141293492295595730192907249371453109854556975637723613379159225404581255975617651114336936618126309160315208454786801047812649349234176605430707271685607955924715233802823603272880060228549044525883075836783989489276812488994615488723750312628296806286908958664250283917879643058618457566515334345594987761027889648601682245015070128569803213138157755816387800000637669891320351335745702657201466496852144142083564222248967151440373521750969257245261998930862228925381492262649763847223063332761428743233027923102552807562374288296115574150871567310749607543068731284172456495129939122037072215888752676147255456349716329993059762167427338688936428573000917378362161449451513419593740658993451108307457323106415211465349389589018217445585670756195408867609838288203440837234920790783042776089761149974637755440470841862143004492874272064448260540553935229965624383718029857526328631508595062046758765248724079587605002278734309439658599179895985932045271221493505723635060117635756230777942068021339923219263578265337108548882290548539723723386354753914225825485325199345671633978415006849185495811122371669200886448440399940283847463277903154599497513196503564586953010139473138186656723332057506847311362661054893694140878682497042538173019474705836574261182368307283944645223065396646927924058548384678487505934459733230131959279090551400154909275087039637834211796055180791549922383061341935591845590939715121016417336342400614172636913566719445629322278763795299392047970297126683599973249014336227751642414078981540264665627427605208156891470305540024241888291880833665619905258372160068896511949187806157065880797452712924319979593140754179889730222721269648569674758541579426992351210055789696422434764044654539001008596397139744429245029865162799270631484094458623205807839652024057431327344356189529273149552213982316962926749328053788953745169278424460058916784129773203392555635707318214100229056687287289162233117647513772061182735929494716248583807647829293849475894909158423296023873294375415645828542461850143303739599611369116327528342129261317701404649812702676361371734519028071646685141590620778625187914762973985685394075197791756585843224857711551304798798282815569017055574934213854384726215050248034201475357867821316429148226453943605458278046147062348640680632038793962461502461719967684807604935855988803755847122715243874666873017794966910399051954791312695980515318248404995371464027255486040109555155524917252102794399142295920165674492314277585106572575324480143329297910282355866777787697407536254750027124693978452138380141614471184479841383597867005530155909083471493921131192155891615987852455830810548965332822808977455794756810804835315776895472515136747343761129420826689393115508002552023661798161203018228190978980147817698319654987152123650146544748323773862150209815865994509186632096546583489989979599118731389191251631103098774304158699355030447188944694433989674485910243037471810233975361178593779014630133408408962636552729470624730513972922856434706240180653921403622624299052097916446979773539896233694428024666034150416024579388331824209469782608506980322430932979691553047776789629167500209374708808130182364670535528315853673854194483360466982817599485357936605439479336852293563310097622499330612897757690719951873210551736697906397014254785423945368265659515380041157783655375447329574796072027754091144061170402670271477722441242990090056074844819619645532036075803555735667335028951516371629911886320641988365531455713716610268222547935867864440773275293194455082335324840897713633744423792964252677811518818661275457394824070619057904963772786895502182579819769424095068054567013638621993958335086241011632615143533103251359763501788245211088240186381334458502762271832766897822201847090757050946072573849649564367060936917985079520058954464928894091281864593389793714456683385366150025928698921229446112419385233717491953008957107222571745761162200762755600181941766433187175514383924338925697070558540788438798109269223898974343677926123528767526485487985867613050958143213459781016758700290181795528965042609609290788373734101994525900446429185782747979086249149616598001475641116050188457520985953906221604796358836544811679975301096289494537349043521541321715715133565768367147807837765716713672258534698809783392847566468024524498347200024960009978041215058918298746091780573920485386199285198762889213491294202239826634716770865791678003010677372073423425600002385822935238752803139269202105215699381099615907932990759553772010506715319284428947298312172622229578687855449699416982723687115792896309661306140788656223054999576225767115636486616792515957942116148770217070439863531652953714447402534613167475347787108868894186351259254625731538178990331286860769613284125635700740174654311689542046570615186421576259562607928509734646976994675817499745646855923718310561799271721159261369380996530664525036393982644737115688751468478590183158228380532010943009618619915522728928110982772848118431087738348419012855302363837793481268813877952899086978044808413251686859396331516913630984614036215512950501534959215906627291252134004404666542376124822585056963413467922917839492983377505412739008647000699211020792664895616290765390835001135762953305227057696553404931175681532411803045582536859178543361842035577990469529852392838263738997154954369948676326773512997378761378770861151465452264006970293445341246026644635860533864004887792497299199465263485964533393867671710192602281156305974175250650492346938795573031064809310864028311788876682298587091297317266221148835171897827272673892596894958300652910513091653142157765551429151490968704801365112298118234253025813229639604203196201662897354410875057334725602668397912721948501869917095071295556983638873873639802581497964178935342255879628415828291266655688815171703219413647782688724556812541307513293279668520991147988591617017394810532640607717659750073071002339129420953671277242252222424736326442689331443805373190707089605621609465028634922590043061017561385767016281270032438516961746336311305993923049843139682490003431674316909162200424090855693845138023319129112439072063116081520985922457371711749907897130986060785391527192299125246199208901329846232850212904990570889309547498315038157121790331478138821773561059940156928510462519012382119513074078730641257834930792023823562550507170316006674433319674109364855546672381958457357202661504493776269571892819317136106604307660386170133286601871795424277468402507498757259490019023693919771798635666311355821263188597286855434382098519053137640985817692875042662544253903625252418185331937922396553545859843892757183697869300126746816988044663436378360326510076068497010799610604087449077651687956764073841907385786795060884144985292512593861738037899740204788643486696504492349812044972492839248137403873396332721823832100021739711047692394944910275231454073732627887273754578804013371010428186113008545400237799504268432801609268538346190633395168235129898532275945768712532900584126060750028302218165842718018777012743603872055036372598723807705438304526637195915267293070472778806652193353953639524307284520843624748466995093913951169107651572672061715582952676328704339872780480715967075384168706589186301415366658899119825311032481013097244658994082578097523157064586581834370400281548317533988274750933736071887159492113119503720098208708938189468805906010671335508653017120120347752672563398163879840146132119443705306990645532666599936911768622983872620337090146706136132258814814825276428410579419212067041147440450810147221563398654148988132822118030670127219231292339738572909100762797044315668679714073605360256175096365832530402010617587455123933243986925534139015816615352716768434081663349468718802711306112523046390069690068518945290727307914368867430270099600348635660106485993378812870377355712955641435852876014748528031058881504818543293674486476954545691899018459038082029757523294470022216083937149939583922181265101941416330134492440739910719728891099555089766798820264086195549798901599352164211464235642039729230829361617398807745067826156675170338113735612866399533330533484428519678044664322070763363208850826394760701941699281985764159059418097993846304320160246028395458251934121827285048293933003571751400611328787540124786339299183618985685647515691668814527919399411499882054059815833613345300942787211429692653504658506352424320222467950474670722270147480732257133170225248189464351723536350304145065675515064024157808403388405544299602059904298902679560052368607090056005724559142477477800213293276867160827720351745891517205923565553801735123395439112465444648013481624583902631880738989092321109695444349367624531332587054586816043572579813967997872676150692160337703281273328826684774333677824194438462493208169833619471830635538815093811554832401726397905549665572089731793475192760518319519833220358521095599592003590600058084345226674283992578634707906016320250068831055145179945030014343685901046476851152761164309494598041499511680436688648823105771558818781464905408987345464069936807154364296888743044379741544331550479467677980838304572141292224239066772635178955463952858669909506639183992794274513826482316602162573699492859925825847306385774000688328679963145662999393701752628793964362240543097289366558108233268333956125759819115198227737300145333509921137458825556795026704132764798998885633638172482321403482444628429504057131652633060441724403429826276320708814242239065976360082092272091751351181864326226285565122805651137093691840848890652191636318076514511325979716861329817342818771387151915461849884451207622602230082221273587755888302487949384196697611598641486336304295027028103206502161494203301257269388341725140414582910195311808288436887478364237500699170730825642717757831616125838947860768327449566972372060346383551982686746604086996291881401520830717951354300077856232255621433335475652453330709286392636651611825884749938633392167419898650155554064845666550651284128411939650590896959678932768500709981856388451949473115869009121826809690567765775887217945486252981416871903514011136641544915644318188070043827039158895904414939362560651639997560880306823820049876284155490512262952264458337291656011623188227723425400612202908447490979313753198598747874343674930168427876692697787131044242316237836949695079363089115065412313845605364023921939267275658660192333134713713971989358162316493598282849992200066070217690903300454428867034980542738195346379756900191722361399606193647013626467974509267056173137415966202296770175554320683735451773442460714729718755960109852421715582865738581581619998475160921858040804265222438677580236192502235298268599019414359199364904121742267983838382426991928983246249494175571933008095185534517200473722554571379027987909823067443809086942553283594448878038591100412848662424768640356811060443512500733227833690608354008682650245938964370246130798283772210887249237159653505478900704198699723379260256560019519164366708735368381639047530982994701103559605912573048214534089869585526861148825177818470909534403875780737798402174983957690657525035778204223118097727594349359931625794421846508323933667693272757458679645610088184162897795360701873809532101375113761815137767778667136902610463722391073240836758292311067938671930876776069950760261225652226677506556257864342386897840022044773607865971366002938614701828834275892018051608357539925555355830388042169288376800281015798623034743046690869896388126215225423904087075856858727217218208048439368817072373333678942225551020746363881635121745496162590789938545967532204381213681397419278030349994406152768687720992244045887947839001096221825835878449313558547652049697486545983040019698722468616083131230630697490370382249628020898553878542368361576964705966890623753727115882890704677730553022413377010339913033670637017310166300047312229655923377817556327748227081231998554578695776517127572603843271398595694592620863852915164082211000149272220907546852418403693494166992871072430056358104698207785609045965025515937229142207530111609250484783819856619786481107523806302777253918478452978758887933413508801651614697141663733577066883619127507749024640502227728109173728568824501624695865577602940616218413565466955028960245181907449421637642754434778759166782912980298577362721194149322064435060462364065819425268958023928911637778486794088862332109635146379758640175929786988598483095084064871968787396221688661317237235102710077993718917847258386562746240600643860092320159590744063541672426937284954220812936617653494446631757790124982812109729193740242907333205160661077714564886719939084711141854227035981844237359641845811699811682088894158864132402197837264521106939421941739374891184833373551250635971036316385442778552360275937169398927281035338913501857435940360011741545149182465974191660704159862364295228147722395285557998608416322496754156561388496065360934279841910269006956481339828562984561848976109289467641893875408072221352929220443758810256026773562047670387945084566443084711072205198764065307527860902664633181398408198327194819373258640932814298637450868883021407461930209818217530453521500765531968535391787387837343678362512593310877447510682084331682855709066732934403722508718370149590040830760932785009459738939768811061407194860033715786918745530384614439087892692391921777948625819846693284911883845994628622215148977988317323559814385565842582960942730908258823514784342631311257233752314442055940522061305407026166404165354441564523515286086583094324871317205945077394506899333881152709830276758345550978986917216039081054068359341447806504977164457651765732084078639689503386920482207531556442932988498650135265165199938030792262249852134889088324599704536173295693271772980154407916375278016493572597832841584133672999653733104230313855550923637780184930825483688072702829047285368576512278007537507420924997828269557935475967645518749109969694782738485616958004670597644466835084029714909257962682896286084330358856893792774285046549288679227172655154577590250763704779485367096781315939740943357387880686013933458902168389478425723411787282122939612906234386447552617406393437406741191813413308507806333830943341012770571285169247100351813991282620771561663385253464473212828636241298906236085609830027169427920147832253782109701340923458092299407106775243310365724148201049748398008447788790901155186631211381802940269141348436528747593613875347058249863423921923146391832119385710667905092434393335578021599181766779615906021184041474629385131417568661379852405908325842627756260869851864642637008616553660202373469847403900665231060113652378328687520200017274626633437395902784137818104724048428613565376409721110716050457799577230475530058237104181287505904497947122264431650495548260324174419967700976600629424405676731966784838658388129005030601629888151202619837650053247345472924984076306363087977579208834437465997912101452878193183095447626491954197169507024716896739533463495950967778531282878776500063095702748160374561937683982095201517711765810865997963963549023762789742092699697368872890920415417915463559766164721163026610731906535142236841820152148210707323443892247049572744962266355035085991701066259099936481124563851929581182004465841023312627466825208986758684353600099349920062784487434749368898280548249257205952959453964533744749718478699542931447737184087045416513374364902786446659576239084200965555885910990621909070594946194073318121083663545001743801712555440301176767000276461134617485588074864341632201670998659751352031975558655700639410484893011863385590594474629231697616203916635725467187852976724433834534001929399935121172659783941637756209997503257229847259838842885599177444635658592657790043186781709556071156906694746659392514599992575886373739453690644792626594041498208176965500422838866765352278671126841529802142350396896564069738397739127105882640419776656695888018102826017143117192713044010103782967158755428200898108161635316244188588919061611570638039191096212411214425623162346753637574252046054986818644451189405684907160186346091104455962919265759175362027512113462200440057113677293260058880513770528472519485989771385255552079004971948324730714589538412173818138861403164267757082739686817465814205444190343419345790017677212482847395213087500263978235525833195718220195147298808205947361518732140903741305078329856060671232383353594227205009445636755736397935087337136380657113799046808125492986973771873418149075000787804525359758297947880994834223630208552568489455030239366291453644955635055113031670150135114328595084983449883897784658489493656859049642018534007336750211522344914585818418685205832675631785650181940682731159711083110570186093549315172511759009955706416815385858458713791823348122205080379014627574344580378034185712857328550016201080809959966185506405841308491454535717333346809679365353634373182978664241906813261317147929386280829242106239212730107897434353630524581398280339249411027353287635203479735158746716427567321431750206518998761788097070799261602842981958913525083114231245847149193085591088426752663347008626511791600098820603787454597069858560418604045948260633864973357593330559358059908842321236084461837272454849113396272751526733447555539060343875195443780673059315621638998970602083113571243999564772260688731378034513043426809769029424921460103739893223714554820853098514150172146307292870518121330986358378332839865280152258728183445821269484937429553719832366026836836756997329708871587738580672284883536600215758685034171832760406949335293604385027582409228974975521879139528497263566232999066655433534760827439560146994688629705312927162282175933854522138400252325924305710549655426679265726750668383129336296018546952620860771191072946333233826104392166848701433569705289701737534956553367968711646944860664819377932942045271740559195243252101244354475737134090961741868271148511732971546894474680784596567634537150440063275236928512298812375196185608502330856088729817374550104021102635425070134310397116468319905294957905220959584934339253414028492888703709914919162874125364338664259287192808550059994138217598138077562776253737782469650471104558476034448421424698856659921753530099104922626626681569164861341433393586819854231476547362149497798055619561267187208490267994452312360479162568115530568736557154490906252282536028813390138882140743076501125316162199158810673503922529438037273359623218658037221514432236952707981009300907031691403768517350555852098562240079619346814318344001517497337496429198311051740941230235853926038566286559472244195030945823883687248481461652619240157779662221376124549637337112661318698573589362462210426570269125960647104220513704786727269638732659230630356275290834886029828857257245531042821663809175565104084157561651389179026436063392513004070865316242656410105043683913516252266934203327126336585531639816665057839505357088774845629521897823535936458301053182364131658839184136615789999809211848823010260866787776418763664250240769352916216709629110519772025558972601099681489907810495208547638355881456558501289807077964854005568907617650477439940548190302589064585116157781524994574887737109075808263340200613680852294955241063666318437173753358353656713812359234414849223733317399179381773211959779795701562468367968699917090624501163216974914036010540315907737055110933445723027064643127378012684755950835172687380740051775106575888994452256850191183979056854608691131681929443133739800411136271824211756807943970051112981625777748959524137126672633410009139557653757051962435467572549433365163446424801404942966564150143993052733529695746560774030586317879039466167067917729650551980630306829515063934229153489714717432059710600295489600441064283527893650702530320411745089834311984840245504515559536529418641224005723484396496783708869286250892921785368764611928885337867497202030688582600796955996537720009128101881356221804829932594265159070082764095881996540278478609281849756019494190287356205703659239734174688275070890009923084885940370645507461545812081060587309783575204665987602032784991639010872620863287752632748491419952975347328106228092607411949543309680612066755797190088179639212873105159488220932871079473028383128788531800022820143846750390124285247015177062553325316804924968906561851022951106046206188737961321698410722375338478804467586145026054836979667770203754441213182398193939583777393473872916306241644538172317079189050836234164702446168694277231220329438798355535663002457798685445977343400411701847562995731456816476315419078063224994862456461178936528863600550063782421365715093240989837311896977833538353961621755965242310938270676862190486865545672477401794196028032261037946213032918787336122174687604027076609179329944281203856501883221332905171634517409406887122093225677764023187324711179043262664711079923180217150569666938772790410148705456155748904726099065452020381296560131612624386597687864892304038221769491795786707156163700696259448046501505352585497356152060894005333823613688000314527791431340894745786782869460621273071264386686703940805250908380707751310137120615193746652322398034501692767937013923983273202130963046399081537036966537077159047864481211869696244408436866508591699870840467825484374259748922458439063878694130614933824855700442093543389175931097023795363682256862006373070786235986088989586110129718659717838257893488709384241385981130399996785129962613917203067333559196894716681695246693578016838879374770356382619689208384859291343856315802528306396224315008564028686968851241292333294501132761919383298180051946959339912409962139532842092061846375821215050379652654332115459677573207280812848796397120286790713653772650255455440060699473333243177288013988272325541810186865017076224849716586742233344083411898913681935918526999260618343109724648586634455098187090040801472511653510850245695250364175076630331781888721447154440417015301577682300495202531812184962160414463010754442263526623946865846370302562367369721716610315655921800846833251071806467620174309976606324431104642830289479770898789984338662118338427215110775383324372534994410743387631648550608148940570504638904114044824749227992089316761950474556983296157718072335681162613168949571580703767199586287825338680662154001637296438361573857634914658302860317259693264968122424779487286991612615156310427651825248751046806528446781706725669293418357414540180704381354210696697115444085818116792849046123759319354068787646099812088028868120036610649585263751773282612978606525172869798699132304377680883823091565081185073284098934309306887652786531302061717436727390237943961978987448455657502534011272895695713327778092803626334449998868849963049156530270665122746604475140307019704669723818862584609010018553612710333209082357936292192231597898702421381675752346771844651382380035238135056504974995586810757884220503994370077850414185200261505071911577392061790903708758728845987112440216834797635504537641347088629522851487244851068701746038082770975060584298730238066603451988527905848254659658148128344848944406542676831482621554992823315859290529912352346893211739860160425395648974071422708882489447643071020772511103699626239015065320151372372204922846233663962697501660576653628754379970416955253304561694844963341332559817695473354145756075403923405657895521705355189489432995117982035444775750074957520547362492360167864885268669783684875512594417381334157398982976781111528022305564775898077316608663782488840608083030201449574064488235549120341388855799957995269281058106730255440248606684777514405728079053899211861989970929209243331047309633685109043989141389137484428530331647046179534782644363556004012520400373494786427250358189792404754114866322411743672866460548168088558682886261100865424769497847210519837266973795334159754327066982132453924640983714203116280698517268330768503363384141788904095707521018289034269826659886875667149543401226920882148212003272263091194390185245541088159925828298904322533484631354332595232659671310569395806114153559711224942620461843829503830807641591133586617657760056872330962422317065733493158035382029816653471283300690505458131060319999956010032711856355434919785252535411702615140492391751364677888081780567900788651633085303882129445911720110488641028860432468187412897661652914317245734712308433438221216179592415996741277224648347249620613941712376681568309927496884964320195073970039295780703883219941104678409201747384460789589559247558431646252553130592146535970966526591939476382670423043164832379463502786151175557742507007308590901042804560462761512246164097705221685495246169345548280747784222935826846947598230738679510894749202716095963642936882610371097215420040411204546849015171670736538013830549683438116986101822306449295038527382280861225069356702200989076557665219354693940828920324821817425385025596511691890014831846736527483381536743771661692865100966096143585170291283334414265322594634923601804365106530051939187633116089162564791532809306724493511423769187561192645536628868319289166104591969687675296524578340672891832430862590769449002632220665775675433387434484737059165024679738066041665073597796592465023829635949215226704053587328318632532108790875820866862344755593921835419343869620747989035729595373319374889351339645451641055174898370585693196644336117398443942986838463258068369829707379621212795637190386830731300178184809297857170287517727739052544514366616519255428732334510907526543956228577447206649692504945047326515712076392418093557570968676340689914987907459455337968615830571214461638893336471715573142363841814456050952971550629015242484363575032449582839530033034084334573332525470052419096978497265947288484032900207730812996592362505421705365206332699435260109549282872937464621166133018011530222623382988416448624376441352270569524179588019682682915605715214672782702985693630618949341891138335883144323238816776089993796093085136874526792008185634342223248094789281661029929576658497185695255316301575541400984016238811966053954626614582588591043804871357677601507083700191603753925856663438714812625943048174737143880687532322346867274175010211942465431871779525499640172386048322494443263445779146833124846911852593026894892137570931492748997659101484421499328977823206880845089345429483581472453291753146798158380609998640820838075094496901150417821742245389784468779814254902643133334986298074129898492887763426497202984019905642422199603502349330027390348660919581676423156992009968978273974880619422061240088274398618404881166843112363962834258218980186874524672157188740962347231143715529223717177921807347249056275862794622323799027926028508729324468561257854159512042185362581426455473170997022051904658037140085236059080426789649869693447665106341293311835518479088409904791477683025846695270598525554546463590690454738603349019414061465454300219777309119672737754653712823157031106215658074819519562290791577396639523276122492952696684137666646549946046632933546468774683872230387863913842524304586805585820898670457284579554319910872036805796104645950303565881436674928797147842396101099023132193577814875488875590992668367684445152368451831191675123034765036918084829605286976806903563920891871484232489456482683520282369199396972163267751063832217496983503991350796599769584950323917435398538269636395713434661480985536280059729626159815322667313406651669229976335152785311412946297749203631096341169524051521803188473115147399950524755886977088354442225799309004337339038754759135876673082360204805753531837116837184271650671144499934785741314400559191252506456357052061453916536899445451174429839185973254082046459852356988326600548488631187237204246669452829412360877963818415663045608886330585901803859977294819288613162472803070150543510351137863904159769315734820181024877574617102968070665316132959928941492466829295689176815095191122613315670266818140617327653184471945030395995829653118903555847452420338126998843549720212315299436873960194755798106517656227026020049882376662767487945202493249020137069102984605783234026916368790008500071625376510951175994826459336400639286313378728024485102945781431039843528161941606983656315114016354971626041401188849520309358213658355896547957016660073596061132905513283256837040391783764070383513257081362095772690097118800551828198814200320409771430266239647438382555056794166935531739398663639972816118468633320595481574692481754634265483289073720136514912341968418648412846074692363846723573858415280586522978215704694235480819619020488367531145818477548104308273047227300018196186613567930928205718057489936294072002549019392249053638024758733110534946112099559825119556175763796356929621071458016572245265302045993987821162777664774029655127931841966665065423442835263599758779195049300190790237483263217071266055546733068219842677032579244040643382835355689363730410337401338188546996776118598796244215391808519468640691496640620042035735181796623221170036372265083520469395305799468790838305604377437505621325022184585647306792355831318195407483703345548142001742307340916426620478779978010751333124892683249648674575197208935810042073199777651583127422105514902246322779557094141703045207126669695868520230057120242436933378545403168007534544776794566941782185853904998799929320609661847280552193429805957425161813777549230408411509986464592689600116232382478985851250135602779092687726309160974888856050248421922241892252788961423186956120939149007727289318439581846230810172005666064438546443619795353153626924641243780840968346447221844367296007379045610870166421246447417373055419221750922349542315055770846443290542503484175747470868202212810513665751656837242115876894934384981602773926464931394355641511582688221235692758959753731675254003007994800604344823030855729622427180799594347361823474106021107464109612484705996446082016074543928354240608040922677565974367147793310122226794745582950936088365307972116659175822686307702482925420793946524554880434825313659100918426564205676128775275466069157489216638662610334132594623049900515474387206364461827418564267617975005835115994012295935227388977643515804388833112121826311263619774775387305244167740581355850866044617584915868886372192403876088120834947871090272689030812074712273242129330591451779478976938076844270798560208710069152888536282843783485409098066509479114089676823477346652254215575470007875899659551389088087945403768272489460431013594285085760007678607771668297595275279349700472922375320787922754294083203569970479261845411884097462934451537670187014186142340547653338823412743310100750128909345239326643894783095836914271899911984178264188078394345665369196866903681611347733885934067467951513835822674285711117868143582249527981284256384926946927118792617389230930649899553442328343888569790488189449620703457393977587287106676860068050853308793612073397968915380447088001518156347604604163925408606281473163916643863855419368055363732094403280522031657141995207765964005340875035970730702411105364053666455494950892180705654927389113066160459409137545688837300661497893447662973507841316973074411932099311917717478602055182041354413773280162978434687863199574770121196623561309995774552622712192270672286118614987567689472762552726257180353263057382688397106136175876478313390236539205487257260551410136783404368162657927016633541651294754595084350517098498473667105723660329623765575746060973434727800965472592242797946384630040264457976770499477070835770996946123360456118934585246247918743240399225235611048353271595216983099670596273990084099450885508091994749743132646229699865483136974233786054572531279595184818298133301528861154451792912533279803694262877237009835695426268639859804881472685706090549995707152295852856163908282055543933429907295539229734618430987011420982316329122801287183506645529742095606919879378206829669379022515708469327647028809902378638596415871356498365596574497515698091363895867318521307360329553348996780329096859136864010385528450166646825064118497454197354342792942223568185877330680016051760546365224749277202082072310031274651187669941186218674429892993353080486993541478989724692938387855699683504697950796831584389558110591808680346331104292133971254961367289130000563071194095710634006355302535119785104021288632020336012455074719175111993340770840995980807866615344757161134257017991143528488038693045305098955581958028783757835677888494064161895062836799309282029742830651679536207958805786103037725450134429573008288392025505776765974091522972422374279215350910484721716385711550932991845032578239818839737053990450980824146756514672201145039387576158590103102354924459933781579062275076841959332284625334009961070854264065358807386849912028772576567550042207241623633597827427000015624563395539484288138007825492717101250544134713894880975574801941699831366350367205083461040035980363401098538557766664624643536307804659195717796258834122097739570545183866141424192155115578480066556392464000758235970479103055811362855297090073900647328906073371725595600577202122450375326118802452200512242172202252932540896157154020159575970678582556953455852246347264779972806033007306656966490003163225665722239512833203056016479972520965771590542848571053425658128999170165863865849883894447941264019972343910468722786236530929308904671110534104620090254026630136323613184951955682017019062829857625172020956883252984584193819938421808923960247860663450595881915904996878161810709636026467762178180107979350253522741469154149120288002372706283832214296078447314739683042982895023629756227642762936248633307600276366552594933931794857079496871152134758822151194858864702114868965918558740200330713750191946041423944843346295732066994482685622537943579184989543183223218716326698875757004403457942016874566649554275970776994993757371371908609377852057962560810863127417286225431605574836594596931627001038689261273384489312645310250669410962931196927871535173539583435069934027767115628918060386761463272308575853898629952353960343302600930527535532894121436998794830522754677071302466789343344130272430027485240816388921539873088103356401241135314195344680368142064954371595553705045016751173893246869018899951278876516826267688440170641543238637034780320727033179693522448041556821237595983404672688472669511355596446209682104178373293602178987725850814105617808416705173285405563033623820576413772199995992201108365073626965266297935980164961177347323383112078805608441973113272986511199516358215355337517820050510203789576188932046315874555090582107216965555980923181480212936485509768655417409168290653835432639572953260315910577676589275415047880149101466269307075878080057069069460116820952157950450992738869661168746973606527045644549194042622514316133749450512610743996010492290332154482395005196589499472937973443435242377911709744791602133566469851439626949808439413527188872135195184132395841979957305539207901116039009684155169008827156657521887236720797570316997948561114579738806648115444689815282098489925966502706807824450400407706881161199144714873347856924162504973387528229636328115926940486653909912255873448316913901885937432991539816220330746741983829286851213926942451171609611547335368875021557192130621685263622339391198793243713723868276052610450430355973625172252774300145624635388211004308018595689184272059192856681028944334302009612443812121196127189708773843166780032086691590612751651140547094661001448163224855548959462179761099840416301635296094987168402724648193801326495412618911091260511543951527668815930212983947628781910630837891923407497753400020967926074094972401102556732553022146355652921392436113825280058200623102798489404304256392871197832287082555305758199852681804712030503444354102189378364045450407136662722261047632480242998817758312173104291450970525792192161763982724553162963082441872220109645094070736637051472728554045032299723357637050172044200209449397897111715231841679635279334717717967792897368996345326274131943991740479855114080784396324873026028004269736774326018921794626877473063584184707299894064374170051691950038918702939410533822150264153438268772902350133144093283363500377860370870446196909695218311708017934122859500164040624344242016118807090713335670391416162720806457346335524670803130988197501266467663455897015849528069276946291033924399159012328337116967042504563680787703926548972736192734747092428683068094241524719611845158103016029371003168726118865003825863043831825474381729975595253284770180832224293563394658542855723120789161888088962133576650287676545937703255096766627222989095782220719288376407749244234971571109504401496979447219513475296228818018288833211804205299638710538064335571717248634719837212897179149774721834010440250722461012053658729650271835786536412738427906042250083984120783769678016516285784440128731431742961517547352788172672467130935581090940325440483629815000583115945639204597286690250833498395266134859948348851583881480719979573646906178322788062405289427722773056267741455298918986748042640117229648759713983938988002176647817707641373712241418427888326559362283027163234114741851113052514667226720412367928031867650817226862656246361206463625272259414246992685518661448181544992608128843704037525214086313825308483853361405888387639349928026810270824534023867195604866706539032111758719051218163213913087991015332640189170263689159137876818769658226993369072466682002607965767091497780216947139402209854622621596028131362512631018549318578927946387186820686070159083455809391031168814434255012320408673952747163362501412880610844146128393953858139939548546379122189350795563438458569652122236871480388600628423451957125560505970788853323514313524643539339386175888003370145637096541786146617179261823557062690774763901350570016769428259167655091904567012132558092734452037904479799438579527476032569792291458327242007778267623010245300348914596634444437695466400826667304544262135867220581294531917659954193176693452063146427301329371822611588113048193813006128099950494075426827375896181146077091091081949870043205930169411144856163396821786696616250183690807430838019849577207099625575536651753594120889103886222752751355563081766778605811483813726572765182961451379205266077565158538421075537331461497388175025898046995953860118018459763203627385766994216507658475239944913085248876395613233226330517610431462667739250750041850631862342308529692433978737054830190502618465838546393380722550709881317495616226698814651052906823868266932905665393248330085527826283401942151317748465692634718720828954408078277977075543693053278885796009076446907302584985048423697821704907847392730554488112821921383697856085466174100123064569261612202963186004782885054753237183450991815572134997913134168694068783210654461253043704951776641844202810496204246966472647333269873028264965641326486492289141112836657141300067059651550000187681156688331759767485758402744477689678443398462530475155527246205206167931920632587640464605799337756511872182616042188193117002614919438228108003161103789191470089731418653375861749269114264266080695031415979078291176940701817392543334652965934160850767889219766285495927835566076207457698670489059649408352317792362253820276046854728973811256856491110588311396145627007122814299990335434774306812719325817389773223549850276539149670900578101945983781806533839768625153529959917074060928881532062980832406612061460374328103382809466923245628819612920404084778865660371071893541109785284795376557699442448112176759498510921549153992355416189358152365920656255797092439605564660641307786097854712149766576384576768951884535116635519095458234552315945357084841588212056125430883738223449212393509812593229162342201665485821125861824615543837842690908603552506807519659358172861874086258806819971351290082882275655165769631759514015411358627439094220156306149380780991924693545131193709540811499304760687625170299899572238404235574043173381832739527842974542847133410241252636326807890645377892964141953730146641123617035940027784461729517137190750633347464070778427685982166137295573576731162910715115517631346776799348996549516483555191436418094563384242990596891104680507239811323690470384519020610999337551611301232316243566149091266044455124562322866774325477770655448937714778450564528992400211179253370900690415784778524821975057028099718989937637376836618956014048534863324124020547609514800314983969598860447573976495874634571688866537049000907733617586469047661928629594448375435687482179529263022975127881029683766869788101420685505544475292556803366208611263988415511581539530809119766583365194338337997548586506795269657172653392653183947648406924720837816873824705582183449234842101578282649868181855834771141831926771446775603766066199974652837161903332940720811831971014032387540227287184536286110982278140959981376059757246312194779688414230871716529283452373707518615178871114858901979993320084760553232003794221450998780051257229075235226233997227944614224665728265341665864315182112763145118966343779619791468328773673966803746665870448707281462396908415411572662271113672059205930855462230191233441163020045437310794888175629498660349874418459388871063428841279151034566463709814853792533099817915636777678349106553489483234859879940162592839304624038917807382196415016186080815887720988234525303868628183003274109676854499772902287864443245809962383128795770414338519441216525036876741007024097953356052631994190799027664215427585464966995538010694867296841538364690572741562841997203989895413216678029439563225472114600063325869366216990464096554447431746712618147650845671051519646907972674405207064540085764768533435532266157106445697839367692023082918610912148282278755065873529415399129028674098657404075772223391040535490100570514300572462356609684458160527223952660107309252551320728473232716615160609343633658575172854476996773049505500622025695557735020541338075647979356433990238015845009907578462153954590165721705807966600912371497988335500729898950119504316170916902725785268343821635071983217297813952477232551098900885925366745181251063315254994748247635983233934749856663313663701659824894570107045750576060779105634698595213154172074132332478420276741211840198257434486051004945248687824121355926437389572695018613129224230239158129076919572879176712468951823936974867283627267453506588910000559678441517982651062870813974531062609822040733505721053057314675549515516789676347940390969193506226400636121419257357934594769553829751942549269434617084899610129891511220154838555687341954820452598565904531479933583501366085845523072651551753406365022484619024165253698358387263743700420544724712600082570025396295634071067028275662326106298773567283138888468522674619654574071105299993470642402302416474032378906241838792189100082027356660278603699626593184746335099740071242840980329301418300635006813784144160738603159886200088159464598533385015715525785856711111236865402441720044813368184740223076776940921842270875106503379502813635410587518587904628712801964039725260121104044144411815472788863972168602251440225373393287003591880424495861751976097712977650907415170765299770468436745629750842790565690698589482100517709600519114716128009313432960187697132292399207464318604059586726739863551647624176083905612549640851703944577930611370907943632978722434893636770160021463566426413869248329350223220453618694775925435136569418152836257331766908997355426638617595490185283320876812870499953341871431288723864266438497604394678370719302098835451315357445578791228513209056678620414954872807057895209154063823248781610396746221173702160322416372322811356907087237914035027644564479737462705453675592286546695697216855978192008484937458502089625650168324285924341043165293721194383291472178653941900173438220672879244891209983661930476974576055330999528331597772607191594813024740493873722052750736108297615342862409282772561195259538895287726181848139415697501672867765386518189718447905839976264596700106123377474969422092399402678688606586238596293608009491578171923913434660589571619176169560861249214418449454918946875909273835517398170467569546610427719938772349957538850605768754351703334106231864819202543460389866512350626917901080070503153172391699594710885337346266991508056637927901878692319664242088307640062573162969898211987188407223173083502089056526198324997767245042489354980562011790082452149970209711073595868159178715783407671455760565297676309072539837588611342710804860888778560985800666836475130885949474283771827913374480817562735945822119647878209137051250252017393037446260579358838387287582510394763079464766044365119220142276455864563537114011587062123183525421388391525538943432636955649402870373693711461389691038815454441731486023281693981411933044643631444949766167619808696111262997105015070054997642336121902522455515775357756450435716475682891344262929326981650451893297242541888096281038800326373277535768992872164811503146332119597197429005602912743150819979025936688845848958040294614098137663733177704885638523202073874479790295463449827346379937772284276037477211024232913421227646156448272140239025127820858714162512876198999219014937088713616660162452130668915642279323599427041865169493572208608023957288414829219351788590087086307743835077480437886121745274206695685636791532230112301881628953505493192133538844136947777794087519682802994421421224051520677215368114816081148306698518182764149073839937550872504502192610110776304093488539721206847812741988727016757821416139105273420658667488892809638062990864664438048201318891199094879861355234830969517763996037303788297933753549075210855545447261088504410389945030891373415617356686076773805806889841819530307995104705383159332727733764113741271982757082648722765358863330971790346738549036067218021577910753637834967532766258186110691443624786620144390187314426032980868175954270235774115233106093894630293044964580834373195986236321636135165501388471739225920089408247715977667932900837489621745219550695818480239441441852343292343131964922704886983170308069257418237162921475461569546551066968514651029642998874599741481621558208636777557100483905503184351778046851571583195617474584206500638266403539603462930991817956306106531368477333932119474715754275661947887288661674372072968085108031156021666733772089489415280453706876871417300383076974389275276228793998243353383562246403468920275514988075911234728206808673341639415567152308445643571867182515865571827804991861367509718516588831893373820756730312871267829745273616299493948117972245551743750760276110488723371272862734589160173004220212302800024942640603126447669271077571469075724014684078291799796014405850972356050042955881732699574420542784025222359146782930857845400364414688233024916022767131126519795330660240290195626226586370280657842009315343879244836751121714489963089251963287095388142951771843909285643524267409518521189193139562025153391977718324705271494097951317666512214410635785711066720408383692154173224154412202438361801330549158021168416199527067001012822211552068304998779019425299268647081149542931843139169289085424149917790007476641215730597137846715637662360726724176761113695789245521869720628743156312570267537399712710997223103813821261733590634300160596374301778403354437845733037392620956647336084091649521443769296460927974661231745047510240166090231277025071688552103866007328464961387231827441821425630740068583186275150902955711012580186165509348158363124683980082696712661817964994145037710486993586907399635606827520599747562376173337920604297582393296588613568159825081571987018348890134936492844692311579290987097603650126275117963262255910265877728325609824899049804815365387963925325690768491329617188548876493017397519202746601003445336444565293770408286589071382491917757320428048741544953017613850748197655062183150267602209316363308559178394144446831989959586995271225002517852653499353500733562281317773581123945998383931752163877093217859840741253143158441791010260813129353543934274916274502795448724874344340026132502650714170258147917013851076164307575983793676838068241871349968160252634785199510307957013237230628260913955111885650273246378454810509987357773129756597500751378852315301088210866650107027741081463960009449665179425704263064667543678779740567729375013915832019081479677319516502799703765551350222303942523052997541360762949476358426006653912215478449477616765651598065297116658414567965370253413745367799561875851610550764845744781565858143699318434459906433310052930070951842161919801640975137116785022792303862495182239686452259871352341950530819391635346011953759313441953799515842147959054527255821871571290162326754949981019839521013718035128715076090187340480184900206156090177200827941300598827418916763713375410437321298120493608736237809867325014698378871435597753662241775251557077914802976163028168486920033672364888493103133419857630656111614560297144102324200062093749707306763458349178672915390985007585577664165232286406220684768804320739011241455237304161368448757931807263282973614798602748980061217491318352234061025155520053189794913287216932724820884934123444764058329078172911170021937938592561267382496038771806655712341903976082320708731874696963720638712362411264056590109477022030560213057448404469002523355756368916301992560614989660727944431870274933584746457084581419110764392815616969758775025959100128082849213343490801425727687471922404838123755351084368158336117152878071811366850548301453108783407074326829750483775153801664576891116715692720717533275363788118993410457944387195820213626013871122021417826817958178808928818672232574348942781199277171630017624094699656727334114357190416756404625283134898520476737935043607234210394870844646088954253981139570841655847539556321733423709942385048391899143847609419387758992750389410008583901398365211496262447358880003413119119076296377842565012273156584160983099051459863113672151265122498722408537342186386205091976564718512338416582502537373995967373074734975515792059191329754216923833736423641257156723932444779502355433254475333036795876591312932923478577679357206322918418153905531460996401097559072215965580375092901481395062860716937109849187460711290631568308554976964369970862836251440591095410745323699405613062199486213878884567115607263510671032876509854228486974231933949340660966070042101246595319777778264339435560665545277123115174375798504375825206489660108047393599031418882450916305794824311734922787579514234288827152587228621445920256636198135532463593369040704742782433698687272977954173944581069411770118845824247615397239315416545636433561646729324820963045699816647964470778392417665586330412588209324983521201731022026170660129551763965380782036342584738642404772710791535578865772275753147128840379527542770960659592839920992467578830771901446121036548174363319770715706880473777912666169202668346826849126400885399760294234597272104333955377730980256822093775990146550899294193095831863434581576823953658088704879869203039739590832099557500003295075215670743683473400562979152344951614959102777593940470634920066637448289637057553261756946908980696072255758663220377376951731684520775741449711937121419969134858055332249992275094434719648869964391793832798859007409400998504576184660427155213291177245930710814369015142769222184130971782092311608664382120897855439256062538458957131428712426174872812604921492793057952579382023609740199255816575847542196098812684701070754159665688632111220255887692619697290057116493825969283105777145049550353106688247475699274826147676018247602334269234485853906812908243130640769863324896984648993274745866258712678034288997693362649618424300807036140434507018887666933316166236681248606523511235250244499031104878984234023243670612204528332379188059167079720183791856346770792525613909679585433431666813624400258150710929123672226928836150627982669989173196918642669859531755578318425728337299235770451083092926889907976056605911300290541901270819296212267786502899956793820164429135393118626579997637182777231864913311163591355481343133343914736285883975821622031593836122571236320644203837609892734388114110723035765875341343120590588178290636984951331489625449575921512510884960469636119416752690659355621593234025860049959241045963954785388051065204061652877052242838342717598756417249889632671282478136300867958649438710746441464165861838526694227102105838741647671338980942833714316049465712194100239720472720103173836741070526889782313622448605573015801921739083943868343685068218264121505988298989645600347711498673020865313241405646780587214175537746742967487435951935783252067191227012148911761980504876504257427011991151401074558605731030843148156871534220006972008462387022184980217574711966686242928208627591517985006451531780944461043281566453432450622692280948283920583095874574297185312561143492636732649886012263903336297758369881972443868262854238931200490361739455950931501213010611314618788563889972314276141907961386733216314527132502140138023006188614022960137290260059738328331114179436193740742966885135253140411371595188461020953756618402700549740734465402588936672996313501147941515644532087784833015593170201204643297172692252458290638038003925756140188919317915693018855152308217577542353437539055728146169604316849503352571657706093746291901512036494802268453954050659241689855676658475938019156890547251844152330260855211035675049483938961519518385178224252757538201190242064088530766527492930060502446296042250860685798117707313777635680352466563023032804996192301536868134355507812501925445434370853493798014046734379383691084491438312855127334932728034921176571958488475550228128047080745123143847334230128455976822920560659798119065767654644126494941296209293637567169450694585806912852949272607020230981195771528326175613472669811472135669654869702972304796175093927647550415124133278889463360565941929283625691589151813021784729917394216667003378235580842104026863383532431864108932918707870852769846186296030285241707464840681976910854044004571741106202075790540890604748268272865257052007043171845898139331399338004869016510823498986071100917189988423923672086152365042085648713165161185744826841439854299720719785405618522936707921250813812000805624518737632781640164920706478416468737404137013322421857783575297484252709407137438049261632199582108021224944386202643306267040230400464715368013965338102981736685596117197830827218221641457008843739423677381223564409224508363536136274261064562151243656536252756383523208092113716379186417921281802111278007886217005152105373619482097339349697079671080463407872094470371403040521232729181920919150911419839840691310031812145353906806777429303201342405388476969739829286819944710354797661701967451603442138652391203239002205701426652105517324855347380680177897323406548794284054964745124184773251216363879008181249193638485709316890686432687559648776727440217417914037911634953537209378546178022997094934441766357080324133340455845446495239360030478905412028429656836594672850349137475711531296269790201775376281884135245551534385399910195230271825381499721153433305105364647310173346081505711366072808200357479096721793903860026387866856434869155158726085643114471409205850765488209979218789418156038310276371927283719170537328092439576335953113393224096965542472509008589485006586641513407354509496561091465850104756686956185785862226188148748801801076492745428072985108526804847652771035562334369249009339578838367937783771881088201763201160537678519591125182995428126191910252252909404426625206746716704562679061490679922245332782957430710332583647891201366720488351737927097593013849047610153282980608864048725317595677772944536849527246758783042136381486515344670557416034441388365949064925867320170943441251118950117241234917370201877159981513820798424963638306243408533943963840732824192967332758429284710377391541736126126607255536104339943924393182728217225817453642968365759128075753651120235049736154121277689404765078078435492773744950328957237664678726995851340390377745975795533108633692405177373853211611815620813582531623640218799446312778195173398011634511716574675455300366929608357074193872216525975559237197861316871138736209718999342414633133444131858317990072565178815174113089513673951665431889595707869158612945926470970305969668985106413422236860928205865270585742803902333660199402041858977738301349928952766292710232962506991799950689508455452054580470757513102176373195140062576311939736983532114567490267740951597074459314766448979535903845411283620944737193638951739522617356543608562667552770300323605203507190082810232907283598279400978474828254010477604028326494247537760869053813345183749144677959106377455069566607254303428454136432221497290338012384325919426748705170884001033601031283140086126450940156297350961058906258647920846750428384179632881971385054616661468663923689498945753250303956300938277577437483098810205054539390177229266669936321605538215458762945702845065036997029024307743213467282847004766090852335161349256388625895147843269732578662489571591651569573672068676205275026152334151927717885483407813209911929509906757941295113326973871393156319780707717230368027550728522040751664170622647888433619385916183026992997325834690877224489002580500548857744200929522324446803874240244869936689986927746702928554336429850362861054883600849475071280894212038476228170220697407927258877017806930818009934140218813175359875348952051056106755965622033711143547359359952406729050406961983332171799386008333467124030904333064024914219848221537820639152653415638653240720808899995381338884780233473065236426109430714004853408790947844181537881515179112267949344276243729634247258412072979219351395399963347945754872058348762085668788818755643137934338122370743982049639586637647741124100558184383499059907595998726421743461892945597659498519786194090759362201340471155068569731062628571194636994664293915522853244900011934754212687585464366685810957834378364228729549686658959965141846367002979091806178098518215831036272266244264968573192678960361616663463544015440271763418934962351556301279552650598322512607325963161482766175182310893841272882028779822731207442351525386129263801112063921089401566141359117811569667396688766736275196758427137884679876674731418517556920604842148645326924824676587881980520487806806103075323546755333820644621133759860377313598698042110429743114380477040119492626603098752803620701936679315774143036053277299137973335108629015036870435411772331059244148331670941372394575750193682831694361230121177673942581654986780241006815949712508204875687360553264790436379092623653706994504665226724719136421154491859586044635176930140979358130588231296979133505012179615821106070093129309894697563803238459257908227672905781125036531143634761224334527216680239911152549964080810164031395046957497916333342622376654865886633762724741640306556683882985296631537042135944506702510271392628278616246572746576546181867287445603534286731538550236994725155644780607594705845297529450005052855855237141264464152010475022603906935319629926725964972702858784696362159375240947215496381366214756840754646531252876918339310321249648140780387180666839413952996261980618088550552832315714809030022056425859553484833685331494466078627127533810743639766354327862449223888893494640536965043393304689393916753813162179796531187956398872036599896608029724264091506414994220999021636279310645101267197664566347619927036899413726483638977707036234367585443880077623877292739677862378510902428083754719245924064578251575760640241535488282049302186425668062151965457376261386385854520955784625650672747526448833619206379085569057966522629861585667140848067053247680546380541603687077913526495699345239728919450152352593592295502138169707474179334140566055991670957649174118341260072681972155221528205387428728622890195432496274147575544688202968964979972078347458063530573908679106719086361321104455283988311641079282670469808084045450720908201993814518931447763616036124012359515438699229090476195591705299655538560939821582111626533599107809105330287497255449135789866918399135309112009425535513856387331183745342433666503033610388630343085902457737042664542505260816788481696052034008069626282551770467658407986156312919341841975222082022105723391560027624218779144849115245076912145323504118000623774129447924500752414690574790271225746004243467060922649162196400311038294115973278786787064614456637169868707601066208941656641503088448812706769223579937673530491193772651327741269951144550381679568439623489377576727471736846149364147093482837610129635916154376874923844415524582589902110825455773244530563442715001159534960002354619071220689900569183397137960258976290145746914708681982442670157306970284048089132690228222434464545451354335274541561936569328690841393319493360970783650532031139439743417121038161412042255226468927351449744663268135514252061012598284775357269874670691319037226134730747472087328403866207980913103800979845556141484737945749664491929221298617655442422511296867844722442561028653853316131641051752515426989932872390761815054944409764942919464274205551205269355131207269748331030733802933417249541087703535902443669428550262309785424073474869720445774248739719810365847547851019406444209146878295529920320868328652719984126223104266044539791338094612116534847340110924207407803260814272626766547677640492336387059153943424450437581716820580848376680453152619283972309280690175401772475252503080410096236646442224685548268941030514873484413427161865178679253318408276705366818590158708537868840562795087534267021653841012035988503715845634611891003365326059040221342992511868422173562152899702608403986688884492875481025011953776560682412883648103516402476729722191867978476493643752352620686634458178802483070410203241846508828676358281091910068342975223156512086570863444279067559604974761380204010612265070375995074339652003736826212153717136178169567179993018510481594886695558433534956658285439957120923242599551865499899610415749368726622205689095382091043400617897766589986412673430130315157360240755866925736430403237440621748880067708363469745899700214168073317294406549490886465329351273853486965485211028210984838715958130920439039065466765581699261071757411146073457447530030765762596093027081526426522033892092093592543303855387190236957329596670793000967047039323344947241394553610610233510911546656300595286411794061040660097711444477406381827131930685568657430873123875643215453096416017056171292530873264063500964833072989354796576269414883339521314896398483673443723309621601065567637580822680585738748065892748782608719280132037233670511412289193541857176689198723030684524878317898376209122357699926975876186996771802619144089286954201385738027801177672187829789109279181495860029846595958763525698943610564135415811237712566247565017908212721388299982031228601798432506779432562561974405542037835191577012919499456536356650597912262489125888466721511625252648936731830679106470615812962805603204155220138475024776485052685080498447509790153404113648081640173085234071697927990163772233114603336302953598540307432624942463249866938336694642540658207746483185417994028998422540118434434215399832785341590688035621087068856507045168733288668472814714097002228146534728402445555123393179177471210382374436914597553132075805060160345051727150453737016688629721533821233657521850487790696588170099538938773361733242578003304890842915158867361668105285204246772003927000656644486343490325334736929550174524338862496055681020302117489550445591750531469984389286693438264676248801831123206172455256629905193213528986238481417705445900340335048851121210720269754278193529075045176108598740487467635043813569513442346696697593555757786019284525521639119257556404937099372958878075399290343400777681772262325763520775781826569987500091924384880737415267958097401209564131327499267292904601065725971071848748995424160423764507338855792038722991183822805406509885645409440529605733580445424141205931596751430725598767750786695767219292349214955503629215282765603524182731292771575427202435970751142785371845263832505112470036714689974376421996300436929145028572873335084414500368239118836247835980854272577832403946071376150569620897250793732510825150822969708851419380473646100372499683330544828675132589535666446317108440208430776075716980661910144515390863386767394893069260026380349212429476051290014856432365394049050674096280397308675763716421529597324104285474978204469039771825057894322512193847752144477060192883219293245120455079778575884067908299546844489671769350422992008353632890384573863071473514877752398721402555237606106604452105808910349142933737334982043052046531212032930387346069514494740376394654624837075204147941983923705661447164231830544450619341550949580566534478150559730276437354931601644454695301455819956737835263187388944283303037817928213298958206111146896122674483790949205934386920819282148674333926137967159940080353496403058745170430915297116791324995595141435056960840633728857234206690942948161750674610469196707128902868041096718594654940342516657564353714688228141396090275568138099581060579696383745534078442237591324664601990225147655392640331111123067445618669812299822725719294952149140398156132606757185526346228221011471357530119735384682059121526153195018595201269597089330023273998981522183693219539617920428378740956948943489506034536452497226088831589317405196300439945059590447564906325856895365824012419429778471818646675965897387439404914261635242448655358441455577607946485278159424046652218539300364550363055285377573827951276113640113212190859928348131186017728179803766777204333343009928655152910015030224461670032448782808561044940285754707104028114752808171031391269670036189205255458072643345847363834399305959512196017493675313751013358287582681184624064743050601331838647201017213360911442870653172167660285770914490248342766217625123011630101061511897843675706252756004845960589326520133354785596021879654347970293377612124278124393352095646008388593572327905909681941135250514259778288028508439973603590435083499146129804775879970427125147012510872986537254468154684667900795217762158198716627776949469465956034612096144907681068903220136103389220636296043236094229208806148065305560775507341422592158277734400992650664809390406899209037270952825878719516436415352805625090565791948630925733982353324990580777974205672927201634647455668271663122375732845993290851220425564574620316069703293746304109868895727951592271354678922100338072040534354551189377480899009401368447568031795148364696651836487927832535750336248035350870033419369228657264852070162124696941889567595440558309259116230873803204637014812928027061317242332713772203537977992196336076764790462753987887665349578801271164881665535134244892576487433010793642251240013005527467894544226875363239293732733628804260499461199911440230985945656347858961746784684686562272357321089017973100748653754798431280037063710576639880430658327363517316689821034116902113354377571753377913519339943815060475884576620702325279844160377122755762818298520414032791240640772990163374113235748854212216221775481266261757138253626705989585618878757424652728815442146943179951830346349347469022500871739406410137595895120460367296865661131637073331451541863667089979971500066464852493409323115659496348128864891932958605819778941427567072340447523977050503989408989965939585633847087322784720657706602459712958338683934166007584809734061469795435604227734208938642315747359127444335800690346643636652360311784221409066347589599016420767501952253021673877575847115998039321903742404880008383566707505162465497377085803622023657682136562490381253584006671617064150147115755895007488142547681434816156197214767441670224220153356122061506842270661094653488533441533930105353741093383492547051512289551774978895021735076316904091804768298843482538772645573433576008447335733552067233257153146244367788405744932648523778110243295334667639319585419521128390520649061284850286047856254118463923392247711455355600899902475989463371706409013213391851724290776835725809308393032815035088063628501708311765801776251827957503798329039400307215778451706115911950985121391453274402953858368241355420629226296468154955968824174755928263615503827557892973380570717470971264149135508019256605525880437168354887280704703762708671199090753020686310317314179860143623331027137231318574412556782178663894131892416816516347261080867655363199590178374030514394907996924217347614308012969438688198423369046112887441819513514123254510380910367529777201765102780005800986386333061640783314493283657370316047392203008212351685491533760290814192421081014604741145845591012844699320703255820797162532151281219056399907331747142023877522658210661264225387175736801473770050505602297070013971900405686559022742835875314663032426448631871173611483297523793417258133440817908531655699775779089870944945843355496751153368835434933163750645981972956490293933739317944983401748675858375152710915811052975869121157560608295443283774407950796298758070417350989962849561820020989348937037654579088820598144973832052291161223419688705322872617147188228961957955201745175419860277804343195699941160404175182851722183036349222736947961763272425484471629799256066404482676314178052135409645323571986616521828480504468908958795776654089876345005399360705959628821228862488821307480067847166635165152097222664433503389585535508958074598708295165382255610094977014722377646734237696057654300067410352067100358981720574694316534050376996832762827010809076424888870362503925136419842420111320233092928661295553967201801910666919261261534843803930298065307535428051493331085642254577045536072093660146599977914354012052806560599304256014625537093090210299624941411098597675172957007191167280814814275875376827764057296900567273210176332878554326426528514815564829992051809258196736186890715939780071300701363262834557363573028648600407615485549943132518346574907846842084497747987797592216905346120081934433535916552881803448746649707918001817785990629166967977330263151317333979435922721330439540528348457796153184736531490972507045191946424989081194021815740755669855102471352145668016706848576535781645849772611926817355000820373334034081542887196873242105297350540874594308695110625977501949294563377566872210096831171996435034274982728337020869194276078392548101819617320421092229595120472575748865064352540826599193921540933948821316988019781661332265729407473884818424674384281231586551721595719251238762025684974331001003763721722423382090442496630777304920332736528808499548586809530448790450807973218694246499931072082492502230981067463138075168054072159664008969493180585491976716155084264973518835615923311826084485111985952783522680489113995323227516458637428146290317969871921713922711374714637697674359035372765054372854983579396299583996696032770830997525016560847813756863828115651392699543489394151949124820766491643542950283236381915418451660059614353933430930037144624783685141437115268091109832747985530526048034204855329166980926105492402533269172350173146821098694245414501146275038475081550022687574111175967704028823652488421770612548669494226813975783653047173267186427493657390976328619141624900325390837804829548315578975469735031993033341179612001963630406869196401379132775705218441387362854973037759798511620958240200781944827918159878067357600702947453206375354649538521372380825215031220522813821093894246556602213364930842199577605261088756196179845924574946106160698658316970332912668330108625095422650123971546303960497531432408853139827470171846000653043172400265931822616045280970046743878713762799342381304504250656801942966213981037853063776480065262823345350073649101571563004875215427806042088478733210545353476333039276469349968292471581602359206182464042657369888863449932942070300140931790578095267725230492731062008329646000545410615807430996701156634736083686465171300685957378753602325448317108502325281777740474078823358276878142447240747800053311112169067775123078648600890553438628836894819779459542706577198549307359666020738117664628120955649137738601277499334441800766770534265488889695020265939087170511640115343368898467637032647462379864453335895510742952921512646362022214237943740852593858973623551642453350173687300173115762515508671259496903311240005839148731368737552504231660243271684857608846508695200041353344895534452978877686804504178225374377963559078969542496634350024595768323531550019767289334645354806481826775288255703805974772588077769957237023215011184330095079796522632410885658948900949613808569522588958474702348649162420826568466680195306646920340411471967456750662744476168711422390315223924202642182000778165598274706160838907136354723170880133306558096328751630665194515014364010821385797934268848391051073938553152221983755369312158487237696343821145252433675170836458823220700005279310561488785427444297043540942304065189045223348758109409820927608865582697153244588715995716444912971585473308378930259180505176376070412734715497131002416915591242848446333480313992476749017104020827655957289494643476912136290971454585039566196875413051660646522180891979852444043842394356879293421468397896321640726740172487310155584137329323703596548350354502191502180004416790141972341114957445208230526090729885984406033113707049077400742281485999130513427984982899706334569525548105013206914868930408755573129145411226083185778674334501794940813679409264385090425781777967623729761831594276420406030730622192463607124323869334832405654491838908445166674435156307987802425538051770579722044272207111782870220564349180510148690305408331150802194348029714586535697380577821581797750343370395569566352512632217049389073537640917959096281610423031280168761594612201713716096345742894515402063017224180451791311361581842091926795939782552172661072176786789026131122107827714012066058849006618558635722736013823701493187012360391539097105861859543281140672620296561566359608333023148209048283493381141469997830367679441247507261497247745130683615449179247493837653000282818141779443424165526164978579953109380171313560738139700817462038271677533889431853947306000765858768751853632154668383918986505291705870091008910783797782594754490472563672430848630581534666554566003052554160514459206026559850728819363020488116950479405279649182051044392625422784753702237081132631626025603320748595526318372078162786251863118789972151521813051354358853986369347998631258194258320827859702016410589338550927120342650858311032885553218991054684016149421075426337071250426681624796011790853553382782514407192486888630702835509350858255705250511782145659537888500514706295602753235314376226230006037779918513925374513749711084765217852705298704348468056337246996222293038565483734199908342868524066496596677925537881156670223912390067312150399243112291127502998475196606376579908737780101303790876744797971904267442982085072824704280987300325720705657393852588874854942891281416680784295285595014988172448148308196606575657724514644308357107287470117939001913159731460469926998584595356983225034979396347889288976842103930101780639132813290188269568898028101192061021300298344496821143643816164676528573204261094641671306112462265409837532766758859721198561987874917990137801360106218024799376404824345317293634566341894480832394192001538010293732804802403402972429316191415394059360842428197674220435011828027538720220354746934509505954349223921144163677310501408600531695003549564679769981945167628576993819936192462164108690452656024311015210322442095937928677504171575679842132736779845883398607288448995319681822920690505330718197760627582429226754284918623321774724732176428757745259831052027035217721541896251634735437107912797485280823605843983502021117144507737641111530653505239152099449482807362141004081883711884266321801076311134874395364805969583586289108963127855214394245439867870990960911568875929354009545495135007025728308611214233389488352001988038752123281977763847774989686280226651447780330161580130968242731369037319471199391478533372906373099614605631072962458509758289876650766650075103339869239444309176484462381491002495833414738302525060309359669648070752747546913389464183424989802836828893541427083093083759286391622329772295900841982135515023965420147720958929937889916345979276034997940564638542806105769994742004150579697202183408011445756012614436214790443856019390375122916123645286443068505454434672714896290463020063547205900234772453978290844183910472447085167471342682298962303786137303642261406363521506111807856402911860969421379978822407045743074335286274298434662503023130305249446973951260369151216711523539266771676679302093083590213748235441980828670268839842912223918564572118372413808576149669480825959442539413682898522867487159045385192206815672257631344033171009224370411156985940870986620087211173392915107092634160869755770468946982426936537854611823967618303501261237144733156582516818480934212387602660177972846853192171094198806427103074003190641519504357094851320516525576616360374835272376124662563961469559758121021829399858384491709893059826767556301374150806291838574518973351822043996803749067365788314783422536006737991779820046216567566649544009008467807443997907032846995867543230597486692572325378107841057550134540643492890787446685837535273429467681768231997207220952341385702402796898082217064455883243317931696610168984627665497709416912139244085318301242127760969306633998641515806533238092121858104482540066725261461419648957837679246839412063567289206924722005008367694521548537593330133669018562804225708376096884623909041676319558593802156490529508952884685518012500656436554969803141038114906120597948976579092980401124148379609809375921338832434518356768833753814262147816396959498442615944037454653573228760703490712881363044974283137126404925516611417409759756794017836426314274451090988069903969705936849879048008608295371712889204985232295952539871418520379867944343631238858615402877114080105161140438175293887452219483646775359576874359806595561350842934666721671114804209013854748855040095077425392523304588449814762185026793344095453458633187845267009235995703214507397754414558355767428742148424196447156276946194882350739868136010398032266550589975653482298965503105859898196738821654139439671683917974007182146725985156415907047510845132468229833796705037315174552134239256764293987251392932242925499463232847280944891782247823280636376204136380957580334484586914000220930349984092911520190656076138071170165129821019331752329662400696734977861555581023271435642167168652690815646285461559866502558845926783637675029237675644275253656354380380297505890309804637351777711999094727890631719758443243856889285435027120086945209405855714889906643493555007178409011376994318120304813248750785038627096150211349045362578520774008628398946974638295818419270369773971032478227058678118278328254410157628854304691209624430446849635059198825958454522188984764718689473875058361084818877997040009564119764660184326648281325935166571838795948824258269944666001807318858273686427811975666907110562688911487222413203064185628026529377999393389422761095222043457369715984263843302376071974396118847704064735322440829059649027496675950757944294535193499546259349043304626203628864682203451699218521783496869595654270759214068476085322923719027257088495320169775114515423149248171471175133150038336890586303293887320152089876442180143957364394358018778286466988526462855329833322284527233248851152028204551474120868851630746762866018692104718973955500502645448889724390251076306673502797161582465930892212748787039656423079994562874436612752595765295110834215128135472151992519974795263959347145032978683527034418894604797848782812666155451049764527812989668510271461812058971789829937989729881293526217758632060449906352056264649722491953964416477069473759963841881974633176141266058935178612435704491426616225448665956619737231897125572738148259747829794920259733153807222708689165524698352772094142961175337532257200921522946496730005060129049532294614164101595016012064264318371017460324439805371180209556616378710766295007385611867244768544186985434364214405290397973936556091093966014565502408220244599596198875124349829271769865744698671590072942943853020078046546621939589440453186086113843754984279018577706404678747628542936745715705436880851135309567431671399408047454237472064409302567503532583707248262905123186315747982400124083838453681505350383764923405053055140381314402551852997254902773026168187319396278697544627587265743727850247899314482381846401276066164082241729490270378547351597429846994880630818180482316263716442258228328214423738653432200129165622604056620739929477992517120807108368738782463168876049462093048882064893041539809859294394215818141947589529626363375481212337737970976023327997710464413827053785195693719486837030029313017117591775141034993914831458923394129620071357222347384729745899905865866506201774285209166420234330343880097001442392791950524122883714247413264967345864648451661543948879275660812945899657554311405001440151792190198161862465005619610272493220565748605730426581817565999927212727166406807044290589763908257685994275667223846042419501733580628859265714219506670342738855486232179186433872590089287949436300692294598420766994351644352533387621501785989803923180493145453213267520945105979042098455262913293032281134277293701569850256463865118130445465191383157504212938948891640691039453101523422269146127397106989064438921811519897056239454175558629586453492765363437660272997800940764265780957103375512917588318562111760995952357333378590730726165107476233084185887058777558242209112243948264080714507687880685466239748798875566243735556072075475445736327134438948756169389027199920980205361395831560154731763184746975188398700160242803263492364568175311122893375914063588488827383262855460238865806105180921929895928092309451515971798562765121173471659602128986095983622147140850364291215509825755843298125654860279001745433539435254223787930910388190291571865499967950810627041204355373691477671133945792987685761114007061042276800139668087799741998399539786325197311749730472231401494992913203929708491929084903863220833661019979764356411950534030228516417334184337350798017427097181033295722415559704304328997163447129512343825770834878985740570311652801259988622653685091412146232485302449146672355805152234183458236570155547808538804427765510618488731143611626523324364892547557379507852466602349993315510388461394289659497439737892547236170317997483237966686392019038922807721274230427324590297725969183246664011616924820425213755033811849429725945411253460530815651661328155329111413415295123591135700361102740625328703409594376174499930512628465325776172834101248104350287867492452919304723869427972813581680826086633318509687327064688312147558518418228601210493587060676079392292558926037811405143893455083615410590808691461588261036034231204127134961205182152845842431749307980721171575022914282148479589289393585120708316801308199835105724617785807588412791130012766902906783965167899311600141406755747508844630130968346558395316317126876421000729436384219512843155686100450301654711064558176209997450426009534019240412526484298856545066052059385724114524285433939385120777458690897123903574866193791808844260593019137489813609420749695610644070135389015613295621509202428034938189754187775533253424025629076744756385859565858454885572998450730095279383992153155691090602335881462189352273030425044426300918300316112391715056775306841145468734736576711809539364944806231990640403868903017179759248015543409703931104311217805542085382980455011093992208185217257595701070064364125540620978623594567658948162657699374070435528486241161710573437968513738478806410901704377575022529070624800012493000835734348317835005894652163016079068719171826006648054090212873340875954912199360481388259935197537156765418318325129581835995422496185388342395888306535096931589881392588591288767115834074657109493537872486439021433234591299257648257923009926272861137108178606828131498674560566193245473749317598958126128804589173114054378696381044371116886093960507299431161820209821786319973682510255470589821904538663660384821632393996269076290389293947709150163810992392779604794435610467362120841328390759363783334736996288541528228979644090594511903775889926461911285258625499983746431551773384493334174699372583014909967797765476857912606072625889816603958107911780939361127598183284907699783591185503766439281813680720693630588003418747547090553135541298469844040876858810987664425627849807080988776667263504083943999535169263273075506738707321731547321674579254018615016005743134117252631827320131229898817097297202627266633393592173873051861682434415502316339180807689479523685782244379556517251641713217772044905570348676110735522823244529229793389817031251666439289601537302840323471109669391868146244599202275715896180450465701131732675124617431940727392613153353750164793624186756322737953662212502614442337946015152325507344207887433065328991620312991895463858025086073228830846071329816720448059105843927312107937056413342510625756986944205471387329319081352053307255902054537560664179509125819798917668096091276716329962175385629998740028323436908740473311676317927172672602452199322891940182424845984868252446668038031135963833976453655841989432479398088374156290726764612093342444194483369415497068381246097300843944392966256345353279322144891118583939357493906614541811427579194082811862462214007157654783204121220130273217822175276389245271269802830715231906035025221064791075213253827483593202314415717880499621852863907448321957098017072592269367965103272383180078386090382497803673742277745370432528182068953760101234989099135276539858144364367960787267402428898004006292828885091872566334147436189311124014258608285978017679402935001022116808154624544437100854535323160257928132042467271296779591973472993058645076214445818175471788488133098100046236783855140878780532536454038195319954948662893620153124519518994094435942881259032715573813311479679030390823638643361094155414971392333094731192399878923195851393837169844539343336431900033722841167163914491868103889692454494274878134255486500500978665274827804805985586430113488541405611745659449566371439842316165037395998167474008368290371117924289841416984475745716745448149369706068113197145834132121525333500014952792643556242195098241089541287584283821227867018970608483592930932351302605222565092371861142870131309541407094974525776677094226663165205819686610487284665310128242941303868386471544838020610850024934800924047114708491083651962679234688614234186533618282992963034555824025739875277561003608725677459750063441937284942788393717412388198737724633969255246929274940145501677624201272029699783240889887099854910130889799407559484200847228636548272634723642548886721408116114986970126659582709462607886094915679033106236194705466979306430289095933696692039010211598898512803674873634751053745671982845325598913235188376300720242759089819397647564430976006755496244631838025566879018032069341669019843630454844422589502137902971299537873979023655574115439753409281562035747480832590854774763762078949373442247528381724353557264073812618919874416900197474622854867737629693298655626496343307178136048985695639735052502842256190258078910481441506120173724358180941374936506195707480610275285630622128019470354142536761327636297473073863906856103491537557892722811710210838997467969469765532438048567236511682583942497535902813854787854863498058601735475112993502341251043675064211211427240436215563591376971622882743307025356352300851515942202221039866744127003011678920480373922884676622279383367269004320118864937314310090124370691409606096846790458663975541248757648852055002237859504931186370873157211162217348009779219815219650168517268545436885185733790908354043643249742519125606376939172228132812872573643471744988362775708316297260594881591139485632087882275339586357149089063609368319729042613582338738856091593022455397473273237947901097903234956448501157779608785114716156859042828765567165492503336168135588340953551658093128246839431704426259013577301138504096763975481026812150403779225576556166640934759747786451538461498954750579537925233834966803052100402564769171694797776810145208599189713372929993791420293003011786486692097837588776169587252087149869505423812694941119258576431715210522164653382102323048621354885944920855493155262272736848873107984148013750482610926510520278630228957127429446208692570038082639591944644243694134468888425425326267743391190188632394933535837903670421487315773857814266218638493142866395086378748494268421090962198728049131250296597107627259229560060025437493352340261208568270499802014533208295385714777671693076929216485787470747549029602278799958569298770113894793214505769374654772036737571874390781473446503925583073865395063368142823825021382769590856333967023962188468788098900834966073445537574991943601908240013792125857594999854530410121898077795215540919268799016095913642353620286454382478740446197638001356089117440353231332834455149950141119191211419838973475673392171677344742809581320211527050163393525957397718529456959345093456628510161654247272307414245843414258452087417433252065454942339171051838017594726657392118651835450221219707571415403557410415082305174036048826381109766422661498806607643660034018258433762564650629172526431433417748982125120165359397506000224663774516280130048060762829817434693403866432629671119171668810290044445791104696647161771734339820298284807732757373428742058533780383280724900251316952842524639060303261173320147561675795243480480636596754955665174891476543401000235503326315828013570934243226729484365517345464241058650045253028396199673222973492898744134317518138477247677207397752405857452571992949728433519604216191953684654088440729839767966386353343518691835502884944107440663155583651079745705331095922970546771619863172834760499773795002573856530853344501450318185366052767229140572961982574052465739221682967139076915845344170036281570069261518722192136147921053172349551774546617510979296798649125316887504568621342936557666981211051828831519235659016864773334244317963418880527447001253297870529794693517946380826456702116783203076296013102351148110297952596979665761608085019767829250091963303349377461796933023606657834681201294253094253554854209691803966956681155322407234686817898853279691325244580234214846999562277841948293981165805884528679418942557088829940593510408511585989224210055841759700642549828972852882185064879362129087819802821079999853072180435199854870701245307219664824655908993231334181661981833491064039211320183816067474110787793248132758235764232829505558954870633078121185083442526006803831598587439316147844396613992527276213402056307686939342332031701968068488621774221459692816391004071580320091307898212910517178269564073901900780746766076281474151021724010327572830751218088962815196902518845701734238184204580271044151302473847015292278131413434393151371678284475574655129771839851992816416651416084540206029475702086025015758910563677494593396702800762705782293664138256152428832730327232155425914110825754877540309193090149049136097802029878402412619354047275424997563966809547487955353555756215287636720545806867587986398211785918693053948879628076018150165336012990934056030632664034652431207601645952884508191336851188481633853450871629085971720112814263935690466025983131648841111549274907795641663739148917833104755805592333194042901971570820553635009792798823212275610810616293057629333653713079408108060537352894261108434207014684548114457759514576231704674386569527910356925554682718010796727470741948416102432206660947967349272754706561665655345374727043334149686050949094561893579910309217469681178069214734861895802328956620545182202048200446214624251089584103241001036156360907937083787343903641242673217738219423646706536136261306719748235247377663224620957567235126088994766986161561550074468743909495599417733619764443310052648110436436100549689114749423566645244921714664552775079854173044791588843928524640131719475852921764988420880976753098448356151677518509815439998567839070228315305913016625556445196872878852255238569633268648699097536945677333975307567438517687256577955659666948043782958701559979489921395517092584768434944790776926450481367048212414519945891790472048998508141066698661783368012990153464914058406872978493059435176064126290305084935969632398694702888004703691964140521599703932989959657420422529387503461692546738158887676998498916155470439265751708179937643552634353329393773788448238766456392323662507586525296707170075589293408101956894166108195379112803993445965644586571981299353198441800854412164672419510592820744793842372815390256464823059481310511386449198243813051278624523646164873215411123635360513731410245104182494180601462557525216956135449300672271031688877731782729611390488631439836362758526592933244179463485848222401169269933632487123821842734031138778896560745567615744581351420348246706370281492004390370946467889918062127592663602351783798246691257846451329031544272107789526944522387143480633017226393144709432146340169272248914535736526918862851375670438022906947573669368921103865660779190213458148806728128553678793208711010463829768262465327179531760173502212260471006606491813093618635764797961087763356714956680737266843592808961373388926552425736734071513840100226962913033574310940840380435215033887327413707778933555525416075543324534496735546278941528180511956400153393481870475592874687409749470323285511881638099410719941302213523324554950625745881358600321846366673668837202003431738986096970313643153763951239564983056745282181831609334701557136098905275562971283865600472867759068712414455543204475404018266923872558434618874733393998528428904167557262489498247738703883991721363698908656417866009160849655362082536698757198257281774301819838235546844183632691146840157623116055042619150354826490157681215728451432624943705390380499052059288109422217080475521357420059830563333280308394130154624157480483765170547654403566620953945194361722169732527059868975480888308715390756649780213875651584309651057127323986617506447726300919777747340633297231182895965431936626886598573443877630825198762330126089612938174990885849337856798176420825368939773797746152035509674738019590315213851353628123448629605970974676352434644411967622705292372739128839997387463829909970470534299656405760894599784436967035169572965099454795699215483961137944030805171822236181078304491758144454739274062610854378365829076067221993890193315300842237986117875343958943238771906347327538826611638321272113014872514567334844627271479999547408362088795232585983285555445375260958283689939528065374287636962114275366073652577906573678058743630381810822547206901194733652500208622831924200230635535625393564395320242169486340297617201046224023779540689804650629994169554928654761586677816339480865158733684040084393773676141359980346037087685115333127779675039998602631977407136593853744059861780708814769118229470196585469893735812502855658632351983403810847850629269885445884273018022899930432025895801815652814918994015116823171294884471964624286261655706205017392409844851498031385160578366092218305172700965571341374795699076550853993700132614677397974055730538001198701405515493182911842046383571815371235352467899211572574793835799928760772642037567874818684342900690053120513614154167828867219690890951135121495851622779952820999281561904100462387972211296773200224094911745399969487220878345921969587675138887919372929622237645959344368606435706252024591024399745200209391025676305539172159380863935897963451701349013291884923851804123394521376460011531280386228076646006715972356897442394632563718485998515449773259085842534257385731334674477197328075994268031638308403333434444316449105066460610244335308598434696310127008656220667992348700067548362610423003989822532014610411225097185232112945480596910642082216181362107226704888835240047559790867978162164270573847135457230598713940825894234040246358361147157072285977371744555469766082671364232778631162151863078354017658201686173038467935445916477707916492499757968471202848722203067841454839038487860364059908281769433430274379371930944995382942109734905059931170559324062632757097671077276625878038472491639141382658824655905983310303631669332392526201035476362592735577538984514181357869633723512264580488369159504804719546747925679759553106629064597960954702669945236597726567439837120107287797919489556505514988457990903010334344349235838290324846101581980180080556313667895000591922109190399794257154841163820174163188987554846343920774409576756585145596017466231843163859955444019407911502766296322036880714710938380360476090127264617877076417331464440234164427222568693049968444898630631067369525179348576878678279586154663542835506467309719569589346113909664464930529328779003401974593631696424351657385716018954515708841742201211498566943181019197708341137419360635562473282653833502218598617631787137520286427241758840054756655977601141876037726197992125377121817278684033196652472144444017608537891050499485925840709341081481397056127485476176708886407553541151862347907828557936252574431685953922039911111006714454905586544874887421407885300493005287520719561966789245602833581219065949204121075566936588938434694643623548046190187497158064959454026349585373258760715497472096633225089498506500561394430154819589141901883718766079912801430942419800786235783144078570515297411851549484966383663880058821041321610822387119049041054269489278539513121937990791382841862313381070088992208403955701945276724324979753495241492867760408880540090224229430484621797658850105207201496584176920728273937962543285884998775149477103462858297746389303560402979947764269389759554475304013738597170755183454259588086956357744933498948064431929612918327121414248305780464803861284473324417630780978022907576202409007880135267958810725359172187081286892806387555997638929481825273562673322781284846899276405068686999321345479237165653078453107744239513974274288961718141613074438993684348042987355381498945291122344507453207963578449520906608772676193678349253969217507910947359520898855739285781552299828180087651737440961561262025128194046426914786583386266069273386492345120722265569824653303346989799857886860564478038231029963616285901724322377462381051768215643392961383607047535267073782410229295504155614991778494116450125751865790766531474299430718372036686067831287758118843619968583294654352414580620279532432671965149482943494021932437496021929222398711882830956385031273563045019320756768294774128399026090336744285230716549931646975886661390241764483915327978241133296848236525336715365272368516488155277882535387719804892938881361206493302151148979106713652031976965005163705264889455120488938048826178201073969821308150182730595439701898489080306603877911406833582549565307965702488937479218731976990696897179462033708292643815862917747905627653682210469494055541497132845778211013302236391222107156762589920091063810133024364759101779464011807225299463292424910042184983435935159817414722394116296715676954382662045841749787058821156885540000486366600822837102740818614646342016403402395922564644890754833081894074764145724061049482799410314106360221047497082655334935531491298648899516020394252775471254898445975055524241680387485503433242564079300035450988605600051649400910648833526182192973351435942171100613507115221664188720814405696998296731858654019727785190939039526073751260445107103019031960755842426253711956602726628152064324040176663604513565011031705084141904920249038964343888542312107335042786294830627215129948442239332466842524173682575600718750286347430706824151517996891198549531642675754900356790217059279279248946392284090441330692599829192615421917367371871244282326567097092566322608326948739256428159304790387869421991804725143311382730799693287260880410343314150771289227639890994310567695545998466003823890048676772702361210579493075446463432390595605185117258461003863447089061161568376892575424491302849753851925519223890214286313617224620923556021807552278799986484372302302184691139274965379310421482924266002861318512745396891310420338581419933706288396027442736616253966039531678788888993885327115670835595875264922104365937393376027610369071665398766133233107464116824998685521746391816643897459165203496717235777902029369036756851348161143921134111245946787664921303528148747481733630196756956205291236311852577521640527185047984935778743244896050461077629826880155970484813303873984633869627894966281130252920035907548583867842695015951238667713673906377550260938837860813999663010770048126891545753836562520733782281842814363280821906850139878410521936185518352028868824589481465541242672694157590244488270727176589313039185588969181799857230105251592201691829663949407624080945698950032408672815852711079028907680329889651351646479414104189116948671909119316629374654859369194934108318533334965956863029931012559430553618728853722945015944454774377129689579661503123301736163009314854298794012719833381917370451268840060426476621900658512773401298349375584222252414515848512420316606203376492259765661350374590702485962239968428705227969547528743406984028076035644779682241422161980219701439034585670758665280091490721564266583782434974314802923371420689956991521826243251609870250379956000965239690407983536920179570023957695229080143297957343502901300591143605873020292582715012184801188857257912761815732956601323770927040605796019666588838796644316950953453779311364572491032283074866221291661902590025965821045928888035456903880589175777203755098973852171644943425106744557370337264125177997423282164258791379074902396370766354461068184679624894675669051410598714182272580348572697006934329970310108522496984546965914207013337582530114648967012211334186139479039276351509016103250124372080276341506776668997921771591123512205198948988687680886437349023317168207460927569520231136423340141593429599263392976538873116666281234024770654447565064927369498922080400961579601086459223409599433386265687230895763225949975028031972373914209336509054758176717013672468917844668984622199693543285350726574870042046723886522689827139957141309638613964229707689453406273647254301410382170020041700710275136310060379279892575745336013899464908757720906675546380882382460005041480365960131276027561607296188464107061415452494247788947712096671601465701732173408521444344588867865225642462325458100058836305048088493527142059134947023926959568558647955931493472922780983333812321745780742812653910580406712856848265303331691405735669828755208027607994916570140645040520337948342958956833132775929281863630447871002856134078557639918507988023962349625292998482798888268823739174716775478571561790793436443673977106882314791018286339329370578176984897510631097326443310479782319524933044646462338771905059265818659988654357705787770169115214026772086120244649725104652098447789917635775362766607794621459469928733138799106019592639129492139334623772216237682188513707637664576623253178842817029987995613231172267496716049328500873475819539681216037182801893714098645964352811053721741201404370775384128755729085107194735735174591779462885693119870832117807635472268210321055540983122922431809441741814423764911444187297292596642096588951349659768905374849953567660642334059381210391728254719351198414561128899873295315124723463718070754902484352858506591026099078902586773884665871352185286474874413427708566666226892670672821279919813317921995918345439420714019852550854690708729056013201567935042854313144797076191461696745436556454208782600732514813604872069932465079193612401341678985852374707307709386271721168522022570108874682550730936564034623732118278808066487414991240475938447661274972108280170626507144553678245569431617739188356189484729843928740554032377975069306346095584481112320621994160398419283511451859850522147849690348800748993377701017652789944001954982772393233588896193703053943241631280863804093829031891450891063976288723168074436186567546512997508978386002437062773159557908235329061697936763149304349370386089216497913566972252840265319944514861532424244294510080291554774537575143329698344363995285412579692202394134906573211723215113313618813672729205116989021100461542457840691420858353280137737494210144902280199850841556126409395848702632827163979098215252067259276361944358733608803020893666277121673221700905027320422298369731873615774534731632796687825878203815650654636081108198411055912227581528961639008199546792373864859298385213989060628803456672670195475682773849695321798108673101079766857307075714675326328048136191516759383270847440979042938980192054654493098183754281897121834178934978763672832517172847444846670895034182209935983674068730196742245988995145830602259389684576548148586128698741096296521647332068586588732845204911693725308369847129366382916793763532109519186274053035261518943993708310766756302083730295161405480988170100893774213266377610808729539954197652463200816815660620263496854752249589011226125088730534290064474736997989562860404125124173765139781850672228727295234981619916129238627178189311277255494170299802338531281723483631504027982862197663185327171487657720894149396517894810414920604313881765794746836334768877608552050969778334823269031239223537273929658722925078508627425255663046539943496732480470291229458609197272504683002618895588939391679514262185596310694860107802501900312262123934324485416086575306178522598682637642591751308010445665723218245700328952631750427335152425447155956486621651071087807461546740503821941101632466882059535143469561818329806073136349633941654318964304332922043719148189889966573803631707073699120056335086480689057026346032237541017209313691433577863847068609941681296525180743447110681656640298801378682714471955350375186243885657739145340319670239829096050643855209216416680692205115274948853554795890772675283408278725237622426319692876320554200740702923470439434161274073704303846266451324955864047526588804700083357003555037280768929681894840659302917327801816645936519899735152804736075631794132716136026344530793783196597280625706207710953304115241566608169216505693817688330904490096739752109700125091189362035365334519675338094162395427409999670390958471711173034042238051497663248557787218303754705726675378899251903568416363882658586203080281262461782460662830128581210092863267019832009892830669717057085286874206084157576109557556921156840564778655618926157979173801052617271321153476127031467829053222492987784771647605108886468127074497434319001835073642546094368047966381697687833552394534491071253099797593724111068055771284216833206465971334268200209977372486740581572203422547726824859020368214015775321004900564653279405647296924738778811322324182824951747574143179875546701536803285793919937447454900072797453680798284722879724284709104931735151505903422489318208863884510964665584064704063153750956117607374881142066371073994132092249786240138984457443440397368431784308698669395142142935049888561891973417748852345503112698671448892264185023832993987110430650697286957676947874684785000551785461538891335962647994160578034408601097042083000863254614420718913226180921913925348583394923764424932276177646692814589575095753005782675785325261623874336034406217303682064461805610270351641901491822029298370515635446913563220592050376821449970687502111954772538723840601478885504669651172044811663714362248314094756570664385556086766553079421580741890796453749569040306481622416336723002838021190171255351101897041313307029452004041324758509481388821214717930882348955172821319036521018660381167048452939211957092193048759588470794488505703624164658952679655785764902453455116997442747771476977507800635675539511083576040785864855205494428660281445446937296775420152400268216351828434855862127315114534202731380771580381622505583522293238167447405344606367520283197597099842020110133790900358092943459966246172795334781877232987041069859739890855931562957939121722409127521617440893263349613802494178900841012787350259373127560896645767628869782224826471094124721225794604417959553419893197288390685816034641530697787144376470508933579826746669672785357831566056467140436500959846086252083692530714492867020917488988587129913853212995472164928007680046620138651636900385847314019089612284293533217232818172646210630678780335278034268655402381504257566086281577474597167398056825185503216285676490219771792741197703382068794389320473738740185195095142983470900409667882619007891059752617781442033619817980411077422417620340539944288379901896262732482059745540738895036715869543579812014241268839562475588111402015104831932700782468053781911914443945852146303522034108212018552129921804573156415503832972599265942967211250006061097276807650586587146322752937194115110394284842396916091458569831533865057166132890539851075465749823204419524440955785780113286913277891744869906474262546034758449021936379347308796421559471257186389197430276670563046692932464781329670884570688637723207664752129521917071183017780377300487945699286353435406137962824681032286673751547463760365090931170685306057206957775832705014459817583779439296623672123230152626580825848163350903706617541588073917511616353561768866477508797060602231154282816010299887508438478910818323194548043469607653969261740050423764303993510204093070854015473662244875795750346305934296105928786070124332189145849932231729323398190401543685106342019223196196893862558310475610313122182995857883292471112858119911072244012177558882446904282812685192754564905009577284160999793748524297481965749655469432504436421825856868170251374392953421767869057904232992575289675340975493214737265727921628408877312918815497831276598114187357069029313052992188548678084226319326408583031029418346823261011697285667978895523554815059414696325089479397477720961663416490500525425451229176948153281144303989292237200562850750143912783476152472583106015952696874468714101036708517077292763189971729527814271311493390057488807672577281202392059305910466581473156939245019578661088281069005865921713425795874179625113980162499757782668218991190610068163219984530703009948342356145600236952285635476557214164184712715371042564711991598150295272978511847797351691645301700209011693692105755467908345578807781457876168202075816016762147550905786994287452347730352665469046172010533498812091810036936741070263453588740516919597433093347787497466825970448946778986062950526617599677397126220010024938187313342924509805846097893031768825372739106624043645152946423275726785331825350391354919870870814370572429938435386285722859763510493186306541601700388167366217164709002095923466727164784557096307084010294939073248452078776082486040117479564889519233634407021672305467478842360727745590634995539212666998013046895907087897634890773289621279003413908680048892377085918866427913305846769881753051163684889580921806086149782321509626863594497992068656558073099109179609944436714793364584217615738421476352254404953744785643016420007196582253340325552823622966991596474120207150974050903640881148532933113883847183989851887529669206713166485421701862600634803393483287092180402202532435902294514502872042164481512451417646320970092718441525748854328799094703920632969562049203078597730190508915710373195391533060521816865127588457663264381789495293083302141697966906099355959070384358618762942262605802736486796799380623934657457177728281154843180402253568674700267382491256709998122918125169565572411252494861786926902496228507098526300913862854379157764646668353832515890631042737143440078778561442775565727232573956872775699917140375512021857474836222741925284671608038286072741817906402280882505938915609415348564241195667763279910317465992056094999165243226989070107143667078444209575658250232373552535571136978230965698903905725759470814660655140272649212245770093129872780483630634204575350813225276725087753195922348373033482754683340055908931982751003513799364976432994842455973970908285276250449898977310342261389664095025116450296640129025045373663841796683057198395911151130553136307090673458734647123727551526303005717747874723517523592277400817731879819147202898666903477064343336891853448317599897780873886273398043783628497800112970348813020153141813071098427611045663898485788562042101948333964302366809009919846108478288839786402170374252637129489187703868483076132552787273302959574783379054925887288260351464093365330702111100043060534964255862380989275912452413698205249261362866762563964006260124754715232046689689809684182419112018589064022592101575179436186335321425808980612864616009265281870309713320002387088767732858497026857218310945568647398718079447031819436092190686310275817815224903448407975430214076006894606460831410310037149083265915182015171835685482689213114603034473757652008388304421151169942692849592999853998254562973130687511289635337799161820673611764697553966613250271032083778367141374369599572550737407266697705376736901049793293599922211516932946275168135575072053214369533401297421399807074539753971873586373010690392818166748353177020032986199432649129780808092683595877098397315442116207363089285923028927144361318784333018297287779915176551485018011426403292755777054830841917107855503034394728253985326053599259883718071396594471958356282322496273288465187693158706297637455966956171005658822734935563300525858613042228803123825802342030013183928656076432369777022424177952108845694654572896664707165297518412987080193463427845490157707035711181170476029978185238493691745888170797516547035689119671455937296831477152622848448180356616751886088604191255385968615210721707556882436375109196715344958531262633133551218923764097239927281370981527876742427288337116213304835124830431207598146096718180136879379511206567964637439737158120917701280694523148474200317526762486697314397932192452925711048615830151669302277152281212697495001455991424011984771628802607086010411290717121166862468117452142174008017236833352674130239517786040493613822425742143983300230229656488266692690310911397073465076223918285518427452201314211239068355533974132592368726691082281044815314789846506016064709593312984358697648103342003490965245107557956006819675668524488130843390387410562814424396086917478378800248683333992844924839888303570799659877164501796109793455073502141436811106804675675471170217570545826007676734428050368201081902925735395328568642074776678150310366593627652894611328192084077537343135815012690112426197635623791923374453624880081945620099308467100761675916512146840695692628361820304784728547784420922557692558614367299069149658774345484508857316178162395332898857443809553872370439966593927824481789737555057838633042602755118192936374357680703661990205168567262728332766401249226109376406923882480618163768489280926809749411154496163234806326348528460785587122714075855818946483532818325268525177485092717438581530364215421639882949303700686697801475951138088355711362435987758488170388976493064274528913862565692863684963672297470795416992872678246203498920452906449089109625934280099217076103941535924272664700850561589934857580299737022001635998668220883353780688345665540815913125289512646130868323400051752763135029384915106317182869003975244092104808735815055632663531791299957565044196750190202440511004928717901329238799407451581548698680088328797332738137898838108953045477681848877561384954956727153604933235793048742513201336905848003255456419184642141126265141506902708283786947404522609328874679637250994235629144701585129268071803734294647442180074073195763388019285431380985410353220042367334629360556400385244775021235827406728938131599160343430809275833978922701698676749744433121704963487566464504322400519507787222693053707349327102801786054483253029982032886854125969043033821466660676651277217649229908242759450389164748432488024163911143092323311966161254536492588968528791873982128632637713803048551737617238367301904696824594103837339128087853135887632299778978439929291213862487987440473686335682458790865836874095520771225457473247824208855237079845702729995684426066771780041570917139262192205227000495827323613182746191648787383050946944843111242056537496274562418452222615669976583756378381337619615693569405332066707954540416567647094317473823258883027351647433362367547814255650015894491682843919136496643790810381497152222635901689688773759893689785936413295626985637448330946569977695805895262286180088882210825623467825393373719953567319199395411720648598236922672651509781078336477290609443720127993857134905915065360877272218959143563516072750307655747789748760037878440120521981325555442672694103145163952585913751625919070375432691509245693484235849018513333188640165227355075750394161112113185098351395293485433910613776375285786151784530730692885340803225080331939044465502890976390190126500041348803766432267200434901924520163732121750043289140924288897525752836297222085856630353147806642465374137500616285542279493002032378635518204975141912898023322674065888555747569431300532706611841371498375144412156265151847692717971272382732131927449189045551413396903276551126587805385767731710058236224013099736666711316964943192284245227051786508489188999812211695963372258418709504807535260481958419812621189349649182622829350022851660385910941432646884113163758875066160861169432253276290932938637034660082358639664644769514957663386361679393264932302740353689148659940772247443476639312852293672808591626657116218108218448104634307453765345837254653778196292465067148690057118087151844162605167374400204397573171411847887004976267535788394304021431236174244659389879712473188769855689394928377625668648779015878270045683922295041940028430812901014372656137576342807359314157600181378184926401874851694017574477332397887971837804659426769415420161818141842547998034936834040821229383242940669400282583466675381292935915129482122917459589387673797246078137540793078341280055536986152592474990779257385285029280985203413197329013029488686089703264001771813581530857654159500658557042919618015964674067600822043101688642655541232370072670238797753676419679395984550848564629811485708071763977539936039072357057803130039771204694173550133619845890640529113085443650991591625892945466680938870278123314834356373769858763014644757787992152963910589219331066410303521422376143297330258120139253223586424912182297926460521286999463196663420323069487521352781049688028025021027437383662212181751104503507265986511353515561286565041937441722265384945703273549224221447646783815678439711398447064173387109023290775086852477380671613938067595185664150188046094544183799330838415293689452839705056537338915842274293690724534331399195410150065924543033173052265579685204478972367597435973604880306466044574303760208146885897570932311953151304847353381043872126609573409410921530408077803519573764059005339829869413589920921853017782369336135425288219792271291409843498242760385365332919706671937484611138920851416613005227372633335605527782686870270157632383948969465081860349084744232361334023453758243097701545872079439112074867718398137504728778372746975151570185394187357559083034074103787116520053454788564627429002855639827327844576151368558995969093792274619575930273677936843660523585838444475918936568214700139286792938262501734983424001330805992050140545135087490736507053912106752125706721936386864295110544859999008821036183412862566222474587490189864579654594217422126218266927264070441579423831152464106957898543626643402776165492739933174685122768884355567254888368006602539016009490234523721746462224971958883114521047066924639250196364187581867075857346864192528607528266593890442007617555778060353752799466956935019051091463145001070369070218048957501112121045322683593281099711066682252671820872102262311725564121252036539381649864769979774311953034309732224093035883550496464593846346813851452544077902540521259211074438595192678851567795575427675960577188892040962347544354635832253272496076790063370457113852101289716325995991008535455275153574080984429986288084769623499811009816054883000932420483584088035190135558619393368791796211494878312874231802684431080570228550967573071731471058810882446086632497078925841367064858198276413249697047370255333088913213187596780589406532562464577843594725624258075013749054595421909393405468924039931269511050051277152909140148278955403460290993764113443481684615817789037152534210939607172531692337303108963490307129814465572259393074225194094382975488702535048088196220360836336157821931641752128622966505550248673879490259276739103512464947871414678198863892302221373556566577029612132862775441703790868372862105156918129741299786949716801206856922693572223872033790548238265526518883915468420450926233602539586945586880547040256429905029317649561637720880294847514493792198950387804142139518644572983947890655378902950231810948764410374769544566125109387163564231213897794443656686361558290489531871647630330509684523381125423343951035719850164179215091378435016911883341396679923310629973332500451024366699788632213150994506983267755747294157239213294407058491047436909515424060570198291503517267068076320457680347942579237410353759417166319150408015529893126071655366701382897141315715296862457184013850375186546055927129489112383807862566684577101174354278339720829238267744586622168283167711823016620809265273610286742385098923969333248922502456071307350204608593511591703524498258447765357164863871149583230061620042329507846005060521023488745928545697585342654210239713763126599833236370147570866010419237750886869554133952862822741516994780125832031533889900432084349914472054050911832472331625409082703126085940601578035073212812135518342803215948974998864479955596448019915811669917713577854304266939811835746596462633698573975979149098583189877616161252772826004326283265768366263157587340477363808249886891795226921061101646256805520949980400563265586584114579233442667585543853015908302947638583729518189903267186153298664579988643169672416096550723769706985364931353989956868732517923654472531906788438594681490698933256784852652253900888793610046475200664176138287127843611218761687098129785488503893797708156770411668116733506881154691968844533040280765150488676368128450619046245159722086055366889974914420008586853093680678835263396497074445336785362473341753099278489899159343878180326966627812479236592623093867356452273237952048127305555967055249156381430141986240322854553668296119518468918519953396516028165048910235066187518128911873825440237458756571113845739579584146951064638068509604453040764674995282681643455295055488035277154933431295566346908711397847206996194819615647322129557384660693781463717172634428789893212324543565072547962464756988877758435037194097443302382688272400195035206326242269752379221312771197427241429170963566387868633620959446453491113296441614128883218640884421455363544083936700049797609266505765415738201452651808697671511294391079330271038769156460832001597553241530799157395468623708624126918886621380796086148957273814814678218083675639046512659623071731258037549781332265711584401595847558753675388127330697455055973833179293988545645033054437693043738546680376640434713377289487284192441834776002990015799119228156743852780017271028500372055719591570798190211692124699148380280767589751000190073112901345089661165275923218882972958076201301739484233169539278825902598606753019999123025316942986028935526462662430495104569543881401146468253360639915055187029299184624989226941479694280004455637078199025091007412490208888100076521137230673947068882577428814839692056696607123275175856360741760912818217048088319959253687587747557320217906681242303747178523405377378741842143099962807556809134997341030716604046632550029963746134393594604924880613427572038178433520517646741737964235906825872078220686686500069164586918462991472939021246675700306650998087878414190082114026111838650811410160667857075717526124604457286128477218004760589100746726406100607695399960371045470897673279243690029691297708922880457183801562643124357274237600319015689368743170328343215809656152996387378967505783885114026337627972606360680240914744022377062065794788576609244505482876731431792163498785756671806254208590870857419837180262000829375252578113543967743790098275395205504533730805383565985744516066913329722722862388682158658952591249057157593056356429562888662726227760769062792964231037376333746665685821922591783270009622835188248033816241055263309243610098476341673517748309457615078625850444661420999949811053104005593209842138547273711636177790084718019033475156689591990313991226377842612293465240280866030060426299768685955918673957683060300819268120832862021597832562775889030156048964950800681694173792034128903088388298335724619422028996126391482410400587531742505370421681874298787118186153981475176116749760910682344302890745117448952086406960869631570808149729728077300088354299406741998120020403537262846571812719426474394664065426659779671244709322290540472879382450191193483134815596041676283052508350626647820765370609281698047406880051895004685123126069354922738897532002473101690630158315290872258921222020224434656052663619892543292717167869612445645303366859472267849341065822695392416205794467303834741769687304061266779271337555440880496177096905690242462219341134747693266813428114722549069961640394524878320098987842924827862609276525994446251450057021768379455524362213977750116476332161841091570041684405895613964141149964272321237107796307825312183584281080771015619755763139862271168276850669132724321296800353763169043598492780618116910430382797545398483532247262691432277042151658372398619477062314301070527663067780482232120523697047012580261961243554092564902445110781147149051023316441246495250630031455323378405594528630418568440766883513003293602737598240658817826176090644921368972804499491887503229139657888423539652310713996239725444759078571414867245097919707279718028304411206151838030736574328836169923873345230475273799993162637492810232517642848337925606965953840734976915987358380581642149687862102762474919794993306864565518936144984866175542465118038434437411164773232147917117350163617097525641971685373220212537368583879464242362766704966818167206172726711160095246730416500273285741596565234362408064456933742470019293454195597359297652358893169723871778410842001726051655633200831807856234477280934252402336846452201136993140951595416382526418152688214365371360008954248196542409906689252556489791843769375790963179933930622790782363656246789035615999561880564132694842164512403648506128640571927756499204542382581870273629507007344732878416228430835403247931874343095448747492104010845056097188444790005734658839013188253857404594774675920257375557437338582995833230190605028514245124902515183664084182500325014392206790093395778173038753481359541104590716628107575777470036813078084059083616473403084286431462314539355712125501820812673905914223081919690127364845166821492833874931172786497811011094580709566302395823876042782245180413590190273911251371851687118379336161378468567770814104741014980742980556677135052444252094640420292832105194269227081261528617316657940299356613442501172688527738453911488035108630875315691704887701251652441209521415978016054882699164511568439693182915408007067212223607021699360163720334441775359762395522724781777620892718893148743378205963938286913827836569038308160655595922202997353617233788805723424695650150017398036052785554086150548675122802344994483387817088024309106369012097969302276604849239846475929236472209680488193381996243359716792602692582577327951831682008794285558462657351505435991810212944077885529405701686780486541480471336860563735007113343528758386680383981063623032183110966794389410698744471178771651865847815905644754721468639678559273913353051006335215137289936141325606240525593141696577897380497880010477226076529610995611783642307304645169857319668415893416352774759993434739957382558069908546219462065542619681390208916215585031498090183291816923921986186339229856248894527710720634695941475342893312099059198589080107559494755282386386585753228543329791030150495804799406706977010586619564168123538265681341195244705553915135490564309226820173952743829087654657857098640398779107859790821692699123033403642140952687412266758299472461288530052482161344933974700406896625670314709278341773283088697629377901860545575903901567879553762131583855856176021501121190335791793138784711873356128071387399123469806463428688153949302905874601893833382285901227794718153394364577651550972335359021343797681137857295826848227364955136003877344613409565396196380408987408578504641328519127748678229161375687035990512281415821248858837024187075453742169566821274493965994163577207874977166188204845304843728807701396178637644982909056122788554710632873870095734689870430015854298318848615124286386659490189806428809801846120054461072621909518897169762736890339507945537871156846807422957083843363533839269610579339237226142156365091247573931962510084825962567804416638747349352709199831709703896596645157947578756931593333915426104688842700656328793335313757528352938979173262378052078937386089000263364263506555018341279674609818933787875707500336686197544623873314212950983868904728905034805035601572338249422057247073118773400222567191762742153867192998350833412395100878380014513406999172936896239866870906174525985540722938908593340363881388982780422446791950291496811834943959520579755103168825319959618219331717647239899174231035898714173964694860684188655709924054220326516975137833128251320108050014824558920661117828029214920495373864459459485666706474003074866712739202898662649620130968014926568475082423560519317185099982788358560504672561601849943647650460688251702148919429841627610171391221171405265945731920749921202514340707421718630244749034467211131159454654126359491287815981373124391137298933922270613987761543595709854965999629881157132566943680010610134691899270767304516995585870280232919577400154274965521277982890826260759610473194276211768014684006673509209568842103935784401739934981148261522094029186637796143529080706033184553141090771377797014692188418109266901581091630570335151548454304680064782437763747671235293121202693226987486088344446933062141206971443956398065863618228168501859558986567686778330094951259798911310255125110291847901337323267580159910876362417255127636104792599188425444549513969808074236920277979899956655840288861313171740202659745778467750273077952825931201338368953929337868127265460162331775725014243783179297427911057633495019326505807375104653712949343530975971172833131275426493944918156177909213102937416122286452645491431201462633637600164230971465940301275022454936656551254181345040538719361602116584701357383602116029989316359437817451808361041394332245214429637406596687024974915335985646124819082386728085002944249099664472342815790658009247542970908840436693066064509192119063426974459455654565247524421194365403223867957447353351126298023240481759578103908951165185695855377804011649052841016310087383798129705553433322547596959634028039691854599136678763476965704542136439049853291097551984234728410713535916951871067590232585221494779534787156283905972875888522658747611094095664176378257095450073081165011040335417177920672119267341722249810936695529692714150903559509641523455683830050407377229909560725927822517556741314844428469697175665258180235714770973583432296776435083075006458835303724301674818806633087230667284287754470904739961819469082660851037320097459382241987282617745927233697735864767476005077272154721555594894495038566577749193092905730018887501853272643702445906092266871841459184293571863868171096455637850647420880712288692199698393849851165526966096345067048786338324709083634674082550351227267467209345342339547296299232187242961258925030132366191577375960690115908986052361454340329224054871076902018540294113760669211053170492711602845439916076721026107540698206279136828776952987904726179798917867916740462678333238145510296456586398123652012187904557800188280236293605083151525614044759114179403839651403321154997950565281367199405747108390732246556680920096533759909360282392157952242922909874367005938097772873768077272689293019122904718643905827698684789519975982479753357730453909088189614399759625996343078251467973004914554746451746752277704038132036603814284614148255049604316617933232228549411314359869102556401167807399443889446127618234254305209924275465627674955752940222263415041751056622000559040215581124746500593690826683853819483531837381533342635391831524849566973640517031572134291902740176343369769503451262656088617856403312989593605361750778739411305882170229530787875382951413287735000146982573501770901964849600221358494983088245123846133655313468718220160976667884041647365684037112274975228021819637296455038902593371778364474289822414876038273388470123135153263430778249563564324145281898829804138688975130854042770365666309120848618514455243586387613096720191529619366367631887815691372046193487417718942015418838732843822334562404351207552939421086198235715855734941825932360847503274150872743467675791049081265864467621073378773265546726702472415592989561370302574338961178973916403950271599667353502535532225226936669544921888719293670988109656485256494728238484977499503624601285766838692064899221988792639935239025527757118236212413412728973335712311051989545023858365005614853836750350780707951304705354941834303235758568902015700377571065997786401810209691220432825795343460074283129270595379320643305078172026084586077516117049663292340057177498972937935809121672301795297793481311399371759479226186574499996632034058276511232308387188297951238087177463173761993172991409389389712718529351805156000317603956988233440469046103671335998398993860152116337045580175047495116473006776404682894305070361489285720288875580844967641756745660699504016983666029646933043693559752127433376870284234003817214288204644886053459404555305068055617940654850099420309182338937480465432373161076816572547478843629566242212040102859501803665697881750966990222854893752061525790859312403513087141599482941806715361419008055155347511039194520029787917495781737506286940805091971310877421959776215913722475777991732005461187248244787217704724345248714728144605376124235644887610448627399866473016522975646915851077452980541042878901112181019565855704685200521526153880547902731886090981530776105712986377212806048600551546448499768255785971584369133557984965569802966140105778847102057578153944660028833695376683207304852360381390943433608009721162064281033032925920100175210424782876716908758848062642227980024164115597220720236093995808672872151240131238153301733256234835002664659629067688991870966421544229433632816587426870114557859009291969801463913366029499311333544449878073595727756239299238565443259029645909679473732834515792162012487958868224547055279973334449820279198052687873277339428421359114200962855547149326010404055265503224129397459164379522761575329131804852027922244553054823844083815968017068686540463694204452906142897414435681145263994682190702212086416197773260097953303376354157106391742079854492704948961034930199158624583252883130586617770480701149797000010654656869204662177710506151522528899365845993733714712062533868913438766091535874332106749107262026841712853648989927115272903162778618773921784746001225754130147225740039638306183878408831219776158451306278652486506116098636792552874878602679167241724270042997050411031505331637756744106031972390443386754662952817761014257665116876847995576895785129896901002069247305018897726870899149382334018690775138359078432203630853228003175831129936215366126834037309521867894020891415496125272723269616420895975488931231691535465808738818299732973239955343222053120779709273962099679842565804841515921719886888006503094030640659374587914366290869380659991725491892380048202346911327759907349941121391601292000557771652147474504428698583395780382288013681564992394823193028623229073582135984508914075983022220128140688073582137542237088876849478153269095480662968652694030072744918779865725613355674359493915344768558755019792127108240410973447621829270040243354084312544479390388131373966128983055302347547696094311495109814709340570893986523360087511010504403683457618351750903250109227783083874305028262774708681674049098908990825174158625732822552385072294462742193639054260861909297834588300970085624626461171152304955233748402435379810424385556790080916893366463605533933695090248802329821047621283608618433483296440926023848101901817363092821597180469730418750532396925915389949795771531936625531678582309413172900216341151003425535106658961725686219177375288161412597055955844211463740665926198900641977182723134746088975544279721554339671360230534836972321118803967517124267014429397220423003313692147785405409637356903902956121888977652012486701637783113832929095327467640666463354624653621310121093388850156360759491966835009145736679040739970333139113842844695442376134870753870704291841354132764870632087249711463054667873381942904846161652501873725440154466613331908568418040112554328684995911843067362911300093598712918807385469237401433422938387619383290118707105355404780871829942090109809898337678967873871404827939999986743915861466460039719229373893682506910024647706093017597664848648090591659722016512485201239386347132845226890759894986093037320103189855016015341266561304059809033353827591935399233734591073355436403266836569452519642922529958931346697860387340812949061100246549850819443678843651234663958996112500691392670879575260134130948594164146680892693553660084362433265442779288366458836362904722878831872031297985819673833564009066687826366399547257039659096779620371836758117513253063325203561367202333306339417221568382551671742924905852340920329808721786377083427437666885946465989028920330830017533995363832699062961483659098970804358416691249445116457283374771628940321923909888163546606880543922948496853857507006690192457796074014980432819388880836699333671005643878637269609215984628218535896436258993946767031877736444390117480198037393689747546978099851263270199632714540289248465986258799662828937582991011481300227828255644632620479907516210448901396006007420657966252738390819541144743804833079258964722839736881771580855861584922034506671895186681755378912499051648797831243210046533787198207113002291305749532769920947258856260962987950066406396743393083797832667076278219545617272547282597542665913819029700945813070723904895315962105120530505959685608237104275979335136209392295403739435180311766816938448082458857891979541688036770457494752095744558952862560869317124184023380908421731965752038107271771707686382349148620561482743971130559235842104496273506199551907950197224070151458486817077779372499863399274936327713986544414598610057050699099159548056101305772458244536904981950210382996004046918871216577683467837880490851128894651066836578993882835033987110110655747418238303440341309186720019094655958844516344453213317462796686031708166431210130431754739621808807365043470605780495127934723499990954027046859606075586654467680892982281823598179711235161933165678185077216963333678920563685705231190147101996260249038448140348336791638522556599396880465206412851927504606116515632987839268137691397490962171324520047376399906186398531682530330966138362698203837961386333732985054084406675962831811826922188326490686786727393286236958624746179545487004411289459499799017052288866025306651555809092661606606934973671387666150921969456846738587289349969236264227639022615650536557721048168580105937279999881813767653093925903683771700379758225519983739227745126868149883379043813715956438297723128457410807272605621518064753526574462100162760214291149447094809287551265406004896536471171285717840377903798297395952016500843558148020740012234187140967646833703576065509473432131543849911390554211994682398609646958073693800125532351215368846485818637153899052190760246646843865106194736508902619550878171107530192417413568371322909147713755034467317024307050543291247508609004496709676989759592412484074912394652890382892197597153736897632556637041634941430318467273547239901980925610027200913853695730147284750468034873445827311314184946834753145237688770704291324545738671650542200795548440328790932576356032907148722236148790871560425532199080893045554156552461120774510483317020136150298453228637293781168777097372921895550717667812348055262844579327155669879272263085640505846448605324035657300726701911261249231292985013373023019806189744055407646142100738522459522149372729154218876821646624517478015943836894343914232349637234541338193639434331596779266053214295198151477343611064570916010468910087362103159506228935735971043959046578711541232649506956937639814509313478805859443962754185791441321309845994993870816280778370629781363051166109166686010276365239146025594589829769040842043018375200041586217113229124205336264218318783655764513088914667050453423909756214009521739573261866831732363923081384430080171799832075899845768925144372879191502820320825683675238489660544420246845692579400567102542009521608451100892168163742495829104881317622736834604498078170544770564596031908446392651383208788991287821703550781638615575248009134901732767928511977856915825847855280822954950053192573479509271940250394426810725209824403081696915847785549030096347428673560179035940333565900630862742704931882220219518579859428935347331379833348634261611996820857215939665905282162749546605216858298330713646769479549383433255282739101962716046992616123044904186945952137480579142706592496381050889068605782776701303979597029525329457729421777856723265473688127927438509010348861713823839003247291776998140590480593382242997455032632720400322458309344947299456543631069564771398953834122167169166482768651060859175826185780468696626456063884116032425225641172064099694639827570050389719959555225379955820185223402902512245789071069925186726087525071980815686169692560949290358407934585871846221557267036544284505893958888720002289782914805494720257961976695792502876590880134757552826711384049271038156506207498071224612667160953961693420931401776965016510070174154133106855207977090663257347637736971567015524299493214123741687526651773310349569082674284640846707140386153712481826354874658013936569844050541871720062113946218457371109943024828164867985909964566441829294856854735443865984858593538729217303673935308475181702033132532861059591341656539881841856144001907431534884762847439976651598116211837196681215641614193283806105792937074769458864811562598530392211495573252473267271171908037773310475279147436007919644668106073584370563484851020718161471120269416991218439170802694081649733038735673850966832030187309580784786242625410554211567556094306171439825846682229390906648978570103619077723710393269357298114784804387814133770999766740587303258543477846082562937495357469784161750060664305242854171022052100128600546983095488488442624302499774619157484096667210509414650649659361177135694550181642956092908206405963157682966994118405248894333991499013448656282721695205604069509256189489227016746825395790946355760844026182223217018127414533114031970727052068563294662696183003548088792256021097245679388567216927147593740489574772469046690109588183774089979277820087585234292881958007781361489472715870399101324803457026179349607008160195597328463014866380509210799432707935449967986894953211772383551922979000925582993073837553202651512410016352174363165865267551946377562707884421351651378508961600804437942745567332036390940064289823933725474642643019883568730561087987841942837590209515438414107627569506215218089391659330655338125520569712685579219021067524791704587523411360852011326909676472590362456102908393456407505909103377883912554179470730844858036157990249533536993588143529523683793805512331941959257833424256219615348838880070748832051262980070176686262332176845311445578331248439284249451261854185490124792545227418165559437158339831107493023278328271587131794197776894921756241297253801409319340447164036618870041920326879255712246140177284446400142166257709827265525518026238114895429706525233272741189423294481080778507444434975586569180508072005748904192383550874537563791584972911437137812078097717744847498148576786779063924747388613921151258702894230469738186619121687885449368317781031064785401179487810334343932528614465970285659185548645297001813078257857339618628861867391297806558174988442101501522373822803597085002405783299501507875610564699829479527729206278055357599239951426940343215095872883170912887045478171984981941423630167548473096281290045032192265594505633623196302979183931847046683395577550981918407208043258415741580956562308548545091402459177113705362315194801988158978143285506397841815095719135097617628281673629838930755833348520324822937261871235448538134119430563431930191254920713939405354320550959498286119890913325208177379608411511496246606498348976180089897805496550928218701998628800707172289990921444533790589158387657022401666262779941961101050042387126972592268797423003977642506180220118374154815615034555948054077563251181913496812724336970715056071410534277543343399115361555533038512775270469330233578703278050829027033151400287471365730068332649415195922422060462654383905729192915445302201184350777923582207571784667033978181564581722169291828476829919553144721652316037992913452702675891185266549895762022281595927359409199888725716835531353991324161157831681192784640970896460653031146960978787141382695718461939747191958929453773208681029978923762729544244486169321093011380822828825304737888962679781409478191208431722867359409281463931421506320506972854360512622875881298741731610628710403821958117675411407142458858642224990668392843396374607860916984697662434298840717042201994904924007857904662122839071924079739950243062470860465312134960991822786765719142876740219983489040517737320834737847244757170151657690583602591501074316105174175323484215497306432922661932282489839564629768555995194102622123594695580051638408771285281199172673578353543356496812816049031692764848095309728403428917836705662094608841889560346304528486121223343195824998472839383736184060209550732922992961547178559075659731615612179648136440004293639374680259856520615717918129685467569725323402543179114067155557861323703299267750096156425156601361638916657148956282637672469941511954650119409095351285348170804227379608752401696819962324029184874027415410732587149084953995194207995663586790945011396697001711222580158177829969425914614248627163758497437975967184844105327541712642107936828117803510686954898302065143961880601690028158732733802980483358768002517588251674311449399799216926518926004034468331616809986226117913763626602474209958461802471799766084582028785201783720519176800176928455778578361363329504169590743624542130704591127631243884426355043563771957791500341072328612976412208710193694157378153516061891105464762885417346823753616771875568442903084775824085147260400516228019275368375421284510989480009675345089045493111990568257874463473912227497343731992880694744360257679270107499011677675164939028465628081988544066272996489983977822947879099817544121002208842266272357121472014739485574307473456809100436338332127933012364005064457322044367345810506861960027534127193861969934488400368325523614478742949022330157502040941397611148027309571711604350488674145301494676437755912230840798281518901303392925067197344337632723063163045779427775855352146589128503009318173884951593970432073544220729224212681534541942460988322540577374065127120882891601779700244531114418257466073646452911431880802964283656948797485586726795913231034935814747417545251674521989164357733057750365494664736654758755623224832427984662616489732816525493728356311705219509453127397962937307292459648592765670517538455465029256001690265697029713890313980015214645431985151714790125570957105778350759994159007026119893420519768411550868504902310302677676118485741687011031166479629404436504734162827140560010866660759120951851076352885008057023104189941913998485240283935996769883855467778370736577632703693792968154875201491069326299131453293860795203131023234206654903734118929056926044018982718838529436240008330529044591798202675993915971309377060323559231730739175735296009615453919409504540151741604292229492069311301883137849141149481570877408304052113155007213955786875277360368282443453772505606057371300355919625999805540837362200189091166830171067047202700151701158156281065983976259274701249554348120135465714420256001078438572881092490508493210532171182356501848870875561943855672979782415774459129244676765447593259857460188573737845037882371874459777009338265631034746298586284691128495046863704364326245388912040208304769582263714536177677958421464425740045494042271229478467262807033761881928846015203804644878766412433362466374182617016591421956512521090478925734932912695333382745578762481164349939735515466260988804541574645485832240108992399259145206639782801227934288087720381490345167014490875768304710825670176054844640525198223532672256373070586799575633834128977902014334622198036190590648223409406129170962662341004670343227862936297399738826364906052281179451383578034451805495182734558489520345338535441542993396460441268854797350783289919929073000551953762183237546663592735708017651240843012986546311884362622155908418782105138486367867089947500236402797376354309373570301128817940037568196057597874465310209547368966134586051428069859839759826464030824068701456240400092164703673544575583557327875188942867795037565741713575641274919379502572169775298688201434150969360465451616100760570622729001046125292987763710103060627094035694346678177112788119595691577593333771213793011633620392406549424183352142865807130869407583555508753196926589762371671464774568484060996888340748389126918021867290730504335855624575613998548919655695182366306599201652378486242554296721924115357266178739412850480125165974230849010801221785980783578414145135356260064515395062260139999075025007318076208968549671040090078418770395065122072739975328482747386136919819439122024362948972230681721900541898274578032443864042907346054233506830373305835271276519155911232412696760304442622980353067011294062547446098527764736826763463796039194866174378286976296606800058746765360023990790636659201388695924303561967329300301097517706977478035962383407036823334970793354434505221906936683000652985085129780876720073210659898759930229792920984464130901503773322260628858719028441953956029958190489787955325090387659445331167178573527614431843512821821223888435071228546330291693619175434803997306328744739673247762741835220112806919182808631185080995854023894670909702347590552788084970783758639224544777444899292207085384725064278121000290481727597291220373713261128916612807189965630083566245563916747629559621488320271086855098757262486214002510015561844837030058545901790631989055625396619254730736327826392239076685423525437353555258472273825467102447552067181673545259680979826839212632710612620878327621699814236534809657462348491658230320459299238958360336358274934064567577141268473069557451803842059928659137225871431634533617833065264909989487169206254315545978526733272389723938752486975262416494611518229907916287790179763728777321339067854133785502257146639844139609224423338301250681639591019518846807115583272058969382915780434508787105112910321422651905383056334117486193796486714984586488628091948202213561578252900189705187072448754169531862117743883118920286892058446205184460705224460590034503290968490431417243932898915378167315082861745762841160328841677870420864518829288022171191355784879515296516184914956503127790287643191102215327099850026245937732539167534016263667337835595457603781398292978963245067426075593655591537709166449219882809931947246080872774448696727684764276325663081677961531821369500368521793953012124697433758379445012415785833938723849483529722222433856185019390742047933584435328293137911135665775872819449151081432899717383840885779600689935259221739898068187694794587561046864937845258310247867774228641354279689432886575809684947929227189885450983908936104434498876210696004083426593213617049836195652322122301962229977126148252079851946747609476848381148110047311777651571361096389034554774763592685177081419783924095643301022349006318491561250447419462329166779033983715563680261499149512614917641919857741916021526580560469644409773713543181794009086481324329208278155966347220099042208365654575487529489318029371692685430356868103025069395301102998730477824103236555177998683609544895369989716013315666860084322209722355051852962498233333515233987073342754937541530866441842600695426567202379401754994671290809649440832396592112802171990805875593936733986900625997063102542689227655110299016874039750452287732572266240058422412100219205059742525614687369805138035869205801751333610716201605628155476852344159279388853244870924950801286142284959946741596689148224105176814262058951185695128681490105112927451180923385066463675811726747641525089327909750275018845180732573894522295146864331019106229962485598516648923145142891880081796426376138527259780754109338057900131084390260642801915297310605966180362926481304987433086730223366635762496718398259363743409981891281744670972914790091080743524524045193180751234223172528079802885906471829167221837543794445261137281905917906864685682569360089827354879259816986099810508818641165884450436934591287529487993233973875243736074400748148604118914128016755473977018302295803101318391399435854819841395086576659620466083943593921169654429560991095458437636214763321832847325255477420708569350393814269397709657872588200449586096899361976164889640256319069463987752392366246497609956849785924728936632149339072074432513680549842603912056310355713451513717551130361821229916686768535963249005699536665634824694357998249913493735989182893288704352988521254453181464323979872563964889886795046834510440468921449749945820959691951352484638585532653919110796199979146523107945171959853679845077863809647275549066982931078883824262526984276491533621235693547863765686039560929468337161284617986104500006337063651455452185031226636338766996038096124882830678305893032943553437318951936160787930974412088131297518906732885533708020519777977068035373992328700567387893142856904190061083060106184892670363732402160740621889074500824999467562391211968579296365407481696942022090489710891140878283842773295440047907816964946339210474159384146389149382672047184226112715348883410577758515941471999428789375035907248164495931066518454146492078842672291604233216053998595242234920347851841709127098219330473207702773456255192209074997447175425635430494377053511862809826955294909832086172850219150928731780216327489866762602708646159975001640810355746157758577754127089293986395761284555763484344768070006782509816940296366909639036135219347987415070408064512906904055625050195408608689956940314983662911335739323574768324983600096766393034683996307606053195013474546100755992652201256388827888520137509651077570172716858874052162253772846099003170457442388530150575859251339267274459550249017057932614689429022679676145934792408015946103802884674985815066981650488556674074031672352204452464093259455067185642586298216061134973162709810742698044708763892631658262089286158543997975626702756616603208487978372786831505254563197324083400710581590855277346718952886133527182069437351379897593768706686295336783909020182444382149500282089927014906456522571295491066547360675773677751565713133675139210317517948760690202628412067488745157382900941545824499356173523947478586088456161557219124453015323524717177826124913690877617462025542844235490396470400651021204452404360328955821834720861238680482296330012840110975858080963887187168679397395694308972130078946836115238380835732018857128019693601726762335363778016019561685427195428077126067677483611843970486127168661584400916678064659284081692486888783746794485107208713592674167958702743635992580468224047864809575247508953665265910751223016353380196787723823436586306652669780090149381375597740452006887809969395767572882067271758160654538899131335810420566906342550535558339996654546655334127081015434056451325266126958500002642663917498653315857731272917595076532858629098869415316220272729202487772558147071021731321502038706849297938402505781904253117532083619679645291967169953527132302264405440827379969067800114998715566263522113233954260525702609526664627385852406630852791345489286637609257699699268832005476601550380217674135247017366536883263801778712228838401903567435438976107474480897444638371332243565257628339704601569722588724400045096690130244218119070660324557755280145574124489602015246109503419428211486500607957207010190775609101679250332599644357849163786389758216067918979011831521375950310803818151202861484297339765329703384727749559320435284371515848636835818205304375802663395724214146493109505972906383810872720436328884021395110634407785565593654305875592771603729817456477971595551336717078098657038147861317992311463646442470469847835755913376797731738241548880439984162405127368785525962180925131278218835864516235061020148149969088073755997401009139004559791539840061356275033993799444446465646380767678999645167589357549378869601609925238331717749001984767637585889234379396873641657891534848114189686148801010370424101513522522607856236579522645115646068190015435381524734828184775882705011512740250102007846490032078676490568879618337883082518372615526028284303360886988449528243319779462969321730064363825430419929571324420859494108700443893579802246264266142094572816234273978318875525355921240938547275788769800567789034176652058330915812524346235679562858208394828478163759043641894674154991451316805458895322798371391560453860575823008306131673996670511439238497758422172796087280883187340236949617073470114703404134940300996718592232872466394990790728890164394767901249471541787117091491453613048588818463999399441233345176303061546410281116708408777462493003733939198200873704096089183248596285383091106627800957088396032093502693350231357907340314821340706526067344946204961501037462182915422154121672363721342027468562427564836524378532442900093433995595474141926084463013118334553476321526775522378207700532068659937513178102800891038740721219813672909672601294609925896690540238912273193626807036220032531773801323635413967397267016109433440799873188081320998490093990648245095677169458058397983362947630782372937076337346297739252552086735842127877912520829862794662598617637166700783957317447724669038646753128772892075576609784366636013845792062295267784105292449017910454611484904071056644399114569472818464617811017180638064399716373007726650740536723003159986743317755209128461232358586833877666425570315798903536562647364059194098022486432568793524844852056290554873113272589291231928215301759917806648933306892510365970598558081511088686010962663724753444545383048974243637452465700760152369263154702807748345214485158314055217248096083756740204180302388088289240751404453469427013249429105945330842447499649937581546050786656603501009548235599873192959348665900053364961709078027430297483281923616489907510619985067940532334849381556562333905058218265168799187274625171019425321122274672879486241276943574122397178708223988499669349780679627356323728123858510968931323900143354697999993051593450469725763932570806571280371509152997667933583764104077793255652814371541026259777001056972378279897862832665737315995507538988697915185963323428664723239090893096102232942965235518618058183174461957094340908866340392082885876664153071665748736226609630920619887798827414026910633810498283387705930099443697258910893921258811914921566269130304505514772998121261081709225397376123166913472355263274261632191175359347043605342152423209948248537364433241966267605230943119812729714846579794192008855138127908038025262028491671385573840429708540752248090384822434801290120574477586174839988547548308022035184395757406799020708792576409283499038804313175368545060950340701262824518277098343470690516856910706654158592517671914262123381107026700750548362227615814991682450082229538715535090928465265631879269149653858076203548539126694275662179819621077973326547288704607707910109826649851464093953199021189861880791743293568133665733734466236319469742289255485024270785019319626484499628943061431440547714639129689926259842768241694940255930236128842142344711753230025240434924543152632429195991820614989554408346194653542123586290052953961006972528133044896366818012030869292517343454612627166643720692267708876618975500140828993575355240976402157959794382722341076500927001855176198545731106762663617661278599595173519404188748458320932172705009606399193546916358631150602424553371439427899217956885246250668124021592759639463054618747163027784309353220675696340828536982891537787194912244967955216746804131948105092108505300706551476291287854683376732828584135028296671518322595697905607984427079766329356747335765278542833714101158701533190903267715704773247237387103010480763024630736555503148628451833063309129312200603438773239968707686192047027389965441674225710073580565253037581387159225057260866390102862772809800324964243386569237045230858644837441711628059528969647333880048282951671853082760901585105049522278497960278348595581903035106596215694576109318770137298538167489629472588605642872357997248859819592816674592312030684867165161071193819242669326447664809484749070318898153745682125303534765937754665179844645362296861612352263042070837410097472707293984336018507267859382792270960934214004303447796505362332515462207952023086099300296465655599402052589125751845846368858259503346806884160237502402228819897781329176865510211390453422090356433520576647728385879741960416543679849982930278440888760014554555917357992390030487600430705167725903022592481194246057916008926524567831570840794398350995331290885465834889245332943407927347923274043210595974569410472883703260497534094408676331433697585925311934317980860636332624180565971348227351705713449578566052285514336165146634928554709055687175842799391821186722404022287580690024850599436857974320381526319398109390128873746383221399146738064520069647718630197841792603674322967983061482048465826854124266382186111928062522583271427524983448392774256346739526590449660789077977234047381938277438504359077903291361481521169667039998901204268596636521309488866400196004553230792165153451054732586102942755753250905418582575253349620250590221846930252697515005310837828401676834490048629254755634109469176033483822175993876078378339884339785573810601700863950598618365781371900557027601164772973957127600248181300210526105393295088238264812716474496290859520979787412446446988617391309708403639146079529119140734688622324726506790008084382669344867570180941851254778701890276887473280777228707946234936020923101363170408592454095582799216359934800699649354415363848525335359362025934049515707477132745170956785479863212443434806220309549737965092056833532241624419194702851753130807301190666299866595151671165383724348246299489019317147483710520809166564754140052971520525377431247615710465423733164883345939828425107389058473639165097460926944070815281737974602851988806758922514191651497416089646084523420350443861850549199232256081752335146611295260572028677080138795422100641373659042195624658624382891656719959458473084954212938800316635501951946550466139444405181655171840564797770200042587515405723636059933191780149453226934976459506607930594028484348639986575191573046967713745515718938576471721233301144985336162887552727357279245515323546997835356968228159550496263084126464734607416694660318400450542911223657970652607156021274384668072001458561653173042668723937747715486597490310296629706733032980944469065362746400984382814277407927906749296302157401915254524485742026315395543895903848259554569079192602340897458803089198176757088682912244548431338627453055989280411575418310548175389141285510751101540924212225797427083461761047905234010287085256887961711418719336683516821492409252257891087175984856388514853959339792528822992341977257252138688521458313275811646972774602718947939829968723344242045532087461955789767831659861613976874580561984819808048810590501063938777175311520079370150773374555939458836153810165039335395672425860708316750411752032996076276996591584409086956530422099986147470541054114521238097625410579046579782218851405394153527339450898133599038895637436109698468745823523781827906598373540555165628808866773235319143841650229578615896698422589440638809633607984839371773787103269742071671328472812541200711400006067560187731423653349800996664186720695003134178758405057988506149516340274801155314674388985927347217303705995362451062008796479260307663500032027694847436465506901379773962204454118638942549496324229533371543112432279838935064140997980695776336753328238182153601316346693177235512059260541676903510051225436875719760971442300914285105819761669506417418784467574687409623145252118069426058150154672052373645837069123646220554857502394953903990348647398543432362422177468381158493479641239631911533750472574336354616018380657053998690624718378182778301994206242354792492002962853440134521913684959135000922046164915314351297252146563158010289640140067854256200460952891784295822155440766381923915566826498005020096916354976788717623624472130744079688887980740853282576066452871328099035709598549825689113895504443470253747772127838343950141484849696616874010138908267010053116470665407781733162745971832859438255988573514797726462434039304064853312621339444070011043544253211336385372005823438601253153189467397361316774648023687824218376998759214093952038334229664969439556790476340808188519888096114489186387991342737745635664931380001900581063134727101595285487207778472671027601901601840884897276184174096171039497681611054009262377284930345509312581431559601648038460072286723694544895785299776063724881762433392375154007963164022412598245969072576261053581552205219321943476541743966864053187938608716329519317592912801153276835378798204890985214676030116365459818071801641105852544504669672746059406411579576833914690600446107300236718169462782369336553955302546904354712838452703110108410905136659670211025152950008075955811183498260716850998569303008410238508883258278406512896836118689217011282474700617807623148834925134676645951447619689623657093106322030479281289206318216156780435250768673599805016753534789742305523984065988858371919724195733356290220415011135445350981289249609788063619342874269884735440701415676203687865420306126217458761723203820761937889800154278028374385806556250878389625072123453655877379562610357511041039776616735468064932040523025001847052202015144311952433065364424207684320060357337119946920603885062171156245627598462657835730509683163571528102096354945426471119221744254787800805326899786953428036896798790907020967242159921234536535358854875191446314690720890434480798538947765772598501254101946837271003575410406829598679331128306334095737528189386859780445217804014137590173478021749250239375969392216205077407968422626308221016382831326608573092229535624030832560369521435237559837141029595243902302681537423195142320081601083035874078940656762316314393831034458929190637107865578570153459299985422689874300040461509943375649723038230662571533286365643878988175021372192032312878794029281052937790245975635179947696508932348316034734904074567197393383139818952404235626460657165975536831597666902388326402128149497571251992148816844035943134263447202941670990536978999534358049703603772525858280794511907588775137219152908214981208911739219568349670471065446883041704295087321993233733259309124197188416737196199581548090814722808992375963799694695106535544664858456348133211006308876620977874599443987982222108054445485287017210348273412224048800379278546936307772985289234225641314676385672262174543972143097545426253982652896266878680806408713094694805309628428335849833846505539345483190156675303789111499634646998785010117999431617897088281491480690143288010049646312463997386769581725958361371611846635143438916973336547401955732037034252226037652825742561020726778327854165019249646830086380066271578447361965927485177261763976212335523407332555265132063471495880374483832883294143284260995542727797571113146784329512556468669198122365004936834377670540766999895164963382322535218833885900415143696819543194479010717430406900353089421626643943871419818110383037175246606571674126632390084638123270379871946073993290145436437892390376007214497205799261101645924838504174916085940383170205868274446879595341982363137466167795136593772177160367634893246303608187780730309405488963800029824811220215504000036356549720477265600200079470638518370635049568921403365799015515384109352695826192223046432965492335111612154258673345611792576718117465600394195863638987643585915488956051514272818110327116019032681598256098631996774259678423389822586695710787537267397005148573775906837289272245780926080808503704778312048368919103188945411235651706112207112800402649864821464111128661652826238215987401179467846659531661313481718735582064405509680203292530642946722370916278418406794968226494201942313740765442971615192394401618388059935598761876414905663802824194581178062690368573334767207422393189407173737642890464456291840367567474402376851443676812050753484509205197274642408621318505095217956522283800742149314354310665638899334434248347445658625696169214567420868441278973677465343308861577687681564624517297886723807963419420812576071780717575025504873032206081111106398269912069550543646706678699485836407227448673296113984361688163491145933265375714933142976257150584274555064553260052695817710304491174968850827148154850486590730003776121494375452975034189686445776131875912688168906492286662419444457914955666810190685517806712516171644303773456093247058152530932190945070970671397855026985673718824476632912144935396654670237975128682487251094382006297478041997049741361768149246822147627324239195423201589094729709749521769453149767232679807449068815115240117174802381667714192231412301249917858969212867912970744783500052520511670925933241755737076056507931101907837362833027681690125598281040069228769173396831723786638141172217518107059550299389322289926231365991642928172427569719961591648442943241862321135343988054128619458441868326308384362446903285992862255697485769180294979412839954949282313789470861507640300402787605366822328751293973885158616145670270945572159032282803359233580397755787175390192251137523588318236360998180028664103171348833791907692070087139966544560093683739191027449242076183545400073387656173766596784302424742813929414314240983438607622182410107756322983201492130951247722439859790907187913088007347672066558508267559082521350461588631179223873179623014400972640304965789726615923448450658771019973050116994224907884773036883746380518539932838023859655847896492706320010005396864142074810853239583092148068962211646241439987046190116479707960434632579412460354292782278357874699597244712682778483212696362157340840103778311939307385763065850786261673002545309578820067653203048361207471246527188871410636462796381563350383727606324964302313544229443094102866084667065979112409717925917441593879767465520517610708856660545883896063663691792651393664027880231986083172751484804460278383113277976975454093716681371814029218009201539236571310665337924353598920304624861924587040290756287283666637358129071774932838666162399713383734345477232606856229853351747870375591396176689436480616664723975190947919506085924297959920096063948389032802369424228345452295943854472962419375092458877880652144860425993829340115172493801034069208149752698409990673203084237431363036995047127351712695631887139299608318990621374986690153686427574824823873086307868027680895560991858405018311829346324215706745930402956925708114731933855282279009012306253623092318196186584280523966947047612264116951371442032609096944009029742500814526202217677694318096452408969234446513940939688816098037708487243870424095442840549312681993406191439526560031077598034270014988932731935766961904446463069593213257401614905452930092128255036858593951328362516909543876344065042429820974882401314515455832501373718205139412147306660773373663704913526561126775470145757913185868772636034910570570033790191730248238137534760734291754393826269640057074056943671929933182937199694324712258937609268908346397116722082917967583170417906747674072313408779931344141883217723119901376991167060324341465051186622104360947329183172610052295337612215074793850035794802179888897095599100516764010429210249738265639356364327196487972228214412351178264142926563577418341131643887022809370672590251137538068191350620155548875635773931558861796381382979519499980467187784527079812784610557977029411277437486069895333490868799807884247924828900527387075335340939830771086457118617554942538198908795804730903156629087541264871967994255779131851858517785601097617668813325078923669932199693470370354372379295166889965623938723700206409200450160916760425155038573392767417263189428097068283640637138522740379185931299286837166985912764124111764094293731639121330538867473510290179173985387454961283632853567793198227618708789731150326471443675393658859305378866851822067108098361956799824712977789974113852445075869408893533778229652122373617514757485858861432717168940990580999916531248582820798729625785904617079012288720706947094702448989332176300762209829929099209936534388979338239482931917258930314656791856799582981417557962843181538929477487524095681577828039218539605503477804361610151659048938488069535827504069876525451742535648494281785490243078538698474695026879267762471604283044442898276324616443945628137077323410990986456423311513890138784886485761126662156236261797929342063714742953614914912771734280133666704467174224477861844486671338135285137165098186631712861474381475019159993675707755853756457466321899145355303889029585929532869316782006945951114283117066152399648738929547495229224053307891301034634490358363650740871469935935183448241207868750018921115599479738514788697451369826177571238058853708051440163962567198620144470069979929482922376943860713924813117162192407302462723389145670964952572856728126292452650887243379171101156854126407106171030541022649987648151507399467614330648930150504438196973026649518603167960702230972517806839681788825469573012999814055901860631265906582008479022039210186831095044384314495156516997812029116363922920741947946696079174712446719582892166500009632740714896591583493602256759452807526880692957231892199862973313166844863107816022045463956163495545797427271844905438255712715544692315713952277333958177494693218048093277074123896420116411953701532794925027585169171506255728204251195259497349814535584534667953330885703578148683309164884096293843538152678161403957033878213364397287662755990866237677137671481333240286754797460562704115631670694332882428783234818754049228993571516065093744127208172839375396550313815003543994800856121537683551968893826627154761927037213147143682870978324767486919206643952341011762358186111625067073785856708926368605977764344329098091717573240955047546193138643318199580715169802152604952580134638269447608866033081310134964041204770577659102888977334262615248574504155630627072812228524471567415954320713400811383027975320826414526468796876588472945940516136447703624958013170005313673233692228881765659160965566697771981163624981582215754091184940547398324105975071676153259115750817749084375337075880517243156130791817079215505836462220708934565770281871483190544767064426576458822004200343682652039185284958160138372753019517334536116667598055918625440692043364277451621872005694786334407101838027267759826477976978904078924519879462698439733979397106479960971531046778613001225565590899092259802437905007653831497696740189376148473916674687013348241007855125865745179323839157602843919826061575726713880442809416552469581847119687343246046699176234788666226367108816183280977514044102381495638981621710170269669765597845088250815542592510813137773206568104524579945548636043836974804660414159715130831571192857949555221075615952346010922060590198649590550643581083248688873484472173429661805623387271596603562630310448266417414668575444673075008832215910814942439880370185902110069753002782343345377353848168894281487987155524845921810301575619059744029470624447571131519989244267921891567601880644397009883669153885819759886464388027072608790922768858248223920277676749657883279874713321985895946825348721014831275273822975496059462557952294887004184326894524316501579542451832621123604350796865547852076882728563601494458053540485952901597942046407857107725279185749611285942256979365189537950365422738380200230393314278199928061253453049128868092246374939269066672574997585843231164811933912828911022836387340909804132842726609046498319043719390358194871315875028473677401833974223074872913211162059394244085702445922183358069823108302095006527979720057309182535341571494966773528771745788758563703893138286678029969422814476826252282478113005718321350341121394725980172322490064091855407556375490987014771338685409347324315948928646544579511177009964267421751030470624197082558763607227213672766121837144452969809850194811679549257731044507667832728853839978148243712867335565631724998895385412596494585688849734348050265832362888191265489512039188533004437876085344942514574270776686048760656662409803825501113100686724029376885244631363972917932740880394774501058977251655683238557645141193878139997995191319167914701003099657385179225038129968277217023806391695144436340908208042068263875604905625798373516099400297952873764815111201626516080175549489993058722276301479219947766139870205658644392297712426809837614988991876752057109945735008748751638504378753352160739477096345202149634443893317417479753661162182795787186371493638261902780546331567852971802429792551824821520078388745186952846081402604039471745763931642551273275601562492757702136107679635727318325278014984806748292880899202393896085708571486259371301423210460235711526483068514449888607497331101152119436736181294148833096048396334360896208326708417226243677000791020101892622055858142190262537376659657300819985185285373587814601521018434793455951551828817412147070442103917850275277010342748602593955016760416854574390754256780479280352478289996108958219845106490265014523641966414299721345975382412804087769922894384286805991000271360153151402051963307985179582998336858988142783301346415608996128488249035352643804406544392283140690019650447822316351674170921396174634574590102289506242426445794089839258327029753688879321916148030459690400511520890993449171902531439130886490573820516361935626620827611948946977843339034370451850337277294675404605541184655706580088655160708965255566115164185504951778839277693416981034392499108487512792413615543338733913359538135854796018093599967452017562338120260912553017318335576237054048566582181574359481467689153872556989109001268629780833536983692706763340784014871109043900607074311034651957391126954518458987772410310323497521415231036787809413060988416240844576827615104939763416086961033644130447036200002342250617123829183001866906036459721593344853939424184088591812627385407394420205914144549391426873038727519909782757328457796052663007276660329429846244952557810016832710354294320943463854713750617260845805038639882635278896898932543837698898917451494995053461214258338950248964839361757187348247265035691022509374001047267210937831029092444068082831823753104520203992049356769077692467744299202144439698455538319263187662903253901851380805375507912418656333638364900832402436362780468805495557273257362820757621500457193850587120619869589726583122552952345843914378566532238862203408101547216320570581956290211383343003709626835130911601309376282409922378049625557159702356140907786762162566226235129945998251266290937614194344780215501134847793355323319032266949549913243620612565973437329863814202930363291113331037194412385352137291476336681430979786674585020838638091650577368901271033970746855383501337529611723616412502574035285499786306400272615559020460466601196680518974921039339899231064719900319215428343294322710541157806890429137333149928641460249532085731939258414040646358076510718748127944124280250836746260171328766797940176977147790540453261272248681794873057612033164955323782660978775813613928392240251813000453228560544503272669155834377620855499956522406307602152307336162025201790791770559133528294587449539110872170530337764007698005073839964743943072759585411833408195005305696283829935590967861060781063678353486184736682335494337226931639137668911581336875948876176007562122013132382422735911000319194266598187137659010681128652323267771429679866307133108885417628560973995235605787696310922890059278585938065088166578758933400072824033440546813559673415104317892751280051399916568630164642385650452843202196200541535952775910572863588673388015576614499054532939602865904958037706921993883671421696930631929980786545004069861666578314896539065537511374201798102574437870374731376415550181657066425735127782209265532188584171264963240882513837348662318170414484698632093475069723176845055757124142273040814102967708363350849497689724828127921837305368489197608976138337600758509383133993001870838370338592694883671310810335003410903289639694478379352927593423513336303796554952652938726518599641608246204604782143252095582328821587489959415358767181686866895167218902285797105881502514434319174101085438282148631055661088419749298372421848051175003512300683237260468097830882387758563409603136941469257481373084166939139684885662343778723119638671300229114403319972109939187310327384688560730384994943833826238331470578940552396343368796157425709645745813879223267761246090974306760307946662111110907260387351119781651338920012724111925289033050557312121778422660382484211265608723515306525397228535848355485347388576158325926445363662616729207383500795809334289972120799840352701150716466769565621427289881583115245625577174799145944438664985962874531552542287662614507027751413960223468311729403141923645158470255791454186292662810699995532153004120958961646773945828406671452763386153229550886734676858946947433510043233066950552806191242455073462499492245595594376943635974892621869019306922953010738373933824678252408630608960691583474417783899790257420121416483275407070587942966065937038998932947564784339873985766976589120182316169614820921582191143761629492377999062950417145619437927730043526917988194473205299175524797657785520048704565257005149397283821749677056070536563803558898841415082636522621347118572535074267500724175589286239711334973026778646397263338489051223269706526892889995627771706522282150982390460068936792003285470164039740194266429646840782891471416471999822090990944323250835824004129824494275393965816870984416418766955643418664513489549175390637943817614374657044727834085965487312699829844770923618577493158544960546078520402055827492928079589154460868381674329089166689026840764289922667201943417685112776567789742515128997290904477150667506781472836452582590307781819974902293087407797645566060468799133112118581537916543176917504038700193621082401321209613503735381705600327871287357623077593170018502109915726265109493496154552861917599157956660969996141597766961163672857091958656389764682071150671321384350215227202286513992866703369918655272308001343677319499886936956493743256569728193089008543856515382532419330463943306323589208540928283406903608753632428664166321050692694690310481806055320626080034950317845447454520587078618562891015223439108914847652828461239521202747512334460347667250669155151059317025818427903213397345691682434012944502338074116093716164953881977769921368651672505058915176019725262308199252874448871007175168270439667184315996264370049586069993520969746593931632296662337907014327742303514392287530007344942635762637801316955152771930725017912435330267121803214527816123249069729132291483134775334328400361681864665553838363369974968603734244650279080816589165399070642711064507173982474745546707019805018982063632191384256112173162125930728701993924142403262859265552239816691538997388554348030430156256066536113629159587919304017621008227732720296856206627567431867418312094427960803890364141717969603728065479625598483331508821593131863798555223649566340582432545283568189552214342510328935286758134148595244733106249965575332838024321073496442845522920739930210955860803786950032668225047856088150753430689427114370510241043851968470711799014748032092109256359316435941386214219162538992879453330190367197092279172790016140393564810390979047274185629296038108381216720738685015078405925753073016717563535631275218395586584965804434195333521296829499917321580306072890381433289241710379740660676234894590795729173826606362519016538267239507972313009063124163586627942011044971677154982940132398088040143224672109862722465268505716530073356576799339635884593579339576225211458195841185973348439699146097743024184071941048994109286761052966769705977673020869238562635338210200240478384123011635846088919204873023445300555441422476058955341770200432147762357947259185011906027037420475068670422958616427384867053121083416509282595183720792619073124521965850583087837602488863047401706904815927533704543731592659616241265781440168534551660025833566135361189592624442347405270433781824694722808668252448257868232214285324153514958605933448262304070339911552669253096455295586806939384194517243191986085282003739693096160366791365122998107139139559723146508919397781091222085738151509827733537255005856587180534064727529491993720317942939963426784467828878887338270655866515634786347591373007561693741362928463978294590073562866581315309168893112310718020969751351723481209600763266836719775031629012870428213178134577246327620852234278399638219941624528052165283328077503893430020472946303192700349441204782337227772186550345154177904664672675922279706827173572694754001672110110026698648726335028201508173735400835149232688457933849262064152941156256511804587149655807695054702086682194106117230285535916369407090322930930175901035268321793515038326378915404839251389537656083150582152619467636977065047147552043931793928011212354286422799070988301945512645922505279316219614311593422908823176979426271217824136758804327967212776700859664027310109673855490021490917911100222020396750149288901386764460305917295866895153200080663000353266042221978076253813993102878625130991502891315897809328206099670417636324562096371506304157895729426502280732432053961050510809241071137357492441258430436379357638033311430616669191176708957759058941090077277968721903293644377656370523252795179221265102797038579326037936908916881407974953826263613438295841300198831782853793870100824512464740938325914693800985467507706964909897723394493577442928398022411916526214958097211193006913753249989798217725473268810271240827221868002391903711702406666530737972101818414353318376546411192655176690550055881851287279113678912156415403591419591030228250833143084832027377467963021069352474099962059228017328629779586982746156420269253742504245280328164758846224299494242985013289296674079666144430608254048084811832782266320175804715394040943252390557979411228031942184440988528876094359023890276606368402222986185203768206410423298793699569488141627741591662283855929837755313807095340780089726752665911406358980188907370171778467595217016627706252752248020422194763781813710570822310411597589750133892634993541174456934489705556636991535862780881466066983145426091239619725956702835034424177730301982379554970075554180899871469227887838912179544510059905307005470226473101719790459038425115635396232749548341454125570493682849533190232005816410565620134279349119160370164445310452485357095374169710744221829688698482825837326187296400518865173769769614799558038582643485091735668161632658380787388408204582010059908213608298389848481646119482816546601998468402348814929216998044658064041433870235374269341991482130486360255931280317627584060650771783970323537424112734982669619823242005363462537494714237617363075644043549472118736802669798418700245730172518399522350503878659333382225926622215359085153974607304260074027585113592179068059530521228729177476886858460851675930637271776061027144157455463339681509390248254294169534057816822821343933446784850608883123942284432611774540005319928913929727509622923204655325969873064422243424223794952901884832748459515784282089767502337116540317106295527459788584496264250012022786866420969639981147689500423799929311731483880270584187076260936844338410904600620394594128808303818338158750308829753616300882349699808083048272031673133281329643754372796759912987873577497704184066218408921274681434917608880551262798894158915065209271733166264102472646714776751316758588432817985101169996787404657710854985996754038140669945223483666247827761206837267051871180348450193647364435084656596649796670704127551724581357712413919877961202565466248585837732813184770478316865644468646106466253895621569403309058771223606252568594649968220267004795599290440120199911652770752648737220152734186359509004806862346599213212996288488846289503805212585830165903783386846420042768925553028334124811615941914582794141678061371537919082952022892076630061729605410021761508524496378181355708170350233624861650028553743347325424933603822004950200907442998825391570717072485451889366858315763926184100524013634725822328065315795891327326760232483554643282000138005457149353801732215820995952959935620553763343307391468323460615210903748853789191624044476488192138981867369391602220089428180052405785466031669425550024666276536875661432718257458930498730555828540791718580758440338408373007468942708204194810807155442906896460980716413305269288005421221116681044638922641369663957777201917367184492386188119974958631353971980925736709165944388844243134335240972664615664812100719908273090254115721613441831379838683636196317253345366084176628722616674320075800168667345264506028868096568901466208207720564884087349219850908189008965008411525059011895446407816145151421145428580561707061839649296634581433492334842593383689912381156217744475587543130431900755914159248172682742636589966016662527361900584860799780096451383223536375104910687253997431545962474155160784190324540049766374900360015339728560294886744346807424806932105098308321909261876937511898950515538056233941121119384275030045446152298061829387748495699261818097899595794662117433853359262805997256644463985229180502601994019868018419870017537095527411369900824849956205692482598845810274892034026375198297236885923562652020965949837351168475813138009928869078120923825452891733835490884651981965477783844735621050556348608314211679689883510452906254467923640101698750326818349640234592883939111060533917083998507135143889440063196568025332460110831848164603568822508722468911387487455567756178805130797427918377505703334155091892094462739932545194866754999058845371278535369855623518326878609002862832625032308743971428207263258521129062091512929653625333874649359364353231321497400067248579528480148842392233380520483849959112524811270273056035696393569907290370009337819990563298431225898083975924247714148414117554402059826342788191236807363356721044721691550655125552165303483893751583525056315337925664557580228806006822068520033516553219860805850418393967457423823443550278570195738073859727755705536030739139536521939296936440556579961941645881002922030150699040392858873698559392035848476071625068223057575298298209034439438015775439185897591659291387672385603341559402946886229932231213110676461932452831765422949544984564661024144266640101859234254054965451148401148215762458978562447906052207119244272210667846935464507041875712563071141885716024753133558375613907731309186531152207119889893185474356806356838359721106860492467536011419556774540884500995274108449343524559053701832695578187591163146588593263751754104709884773105711435118114210357420652864490022594182598192902016252016553877274684085695250126952542329857093327349533964364665160121546840245180670725530625566345629736840349484061038042202466617809378715172262373231954004495197643353086997912957416152144827032043193409300264597657923953820324216730718049004677221244777231560016902525206476024487764277806307659307081610928949525151035897077732245037286550706127650517795072453323993305238800124568653639541644441076031683606643651667422503583126886280876711230585870650127883779315721420827564255173016488202437944475948568657911213629841103302388760303585590868203662188191060058906527343495837717797333128416736301552024374290331979353701783805199265503599519177679361935361603873844744992666555810572607368478147100074670427546023584198721018153787665814763936754864125480510231053703198272693120357387017755429899636073554995669129911699787545226986560107809077715338862677811998505445409566905681710902824763700127297573336307291208075911605367167671565392803427414228999602037499323062848341274422023840067580159581356565330963502541711919694430201183876217660230861206758047783171481794222014722624389181789665873821738212262723498311349395191756806371236479379861211148945114462781446870355549566530798796273974481971737346418977817053068707658831043817257418057520678630161816470828664826173081553294414716333666947663835592888412077633732072321473700604880710813463526906031152587736624999498865949560599653271232634473217145541289987881174675936344014179133631677323258259472736884605154532119886913850980306278130492469917744743033035952127741579731456222383653717017341514965492984775774572994871800894301873576409206370614986096728935495413473456365259760796988473855789135506077851192345884666855458267398194443982959379712101790831860195028073447470523736318483805210820848368849842300978019240865635866591098385232832959540953283537134008465128033906676678921554748542394958486334117135441208372875385898813416051348178283390543269486117774237029144009851979590465393874770217361959462312904204122649530165297681950826293226129663127163894855170237186658092907672548391773996510203445648390297640942352976982743504357850469200983033190999342406221265411515945822184104687536856411479018987184877013740944754203866659278854957717283514954970738495171950051826022920309049109760732425310689076403188532774239944614383818347327279265076233978145639514637943078651108104986839327436160436678632318292765064099741166678266108915835890552637776353642005562590583524523403534846810781640213748030112287291318739276762140467586586122909553629350303682782537132908704389500725956746376252043723182863932288352154293594088632084283544762419389662151521448383373469231410767507366964906406995585615270767804209855634640614609107999931272323877300218387963370108250900291241661726511441159560915071843348713165661907376455542444454092469322074702954583422404653742911392073845009820207826503200385251864763172646291344490120508137967662458795362770705168198235932316214697651659441640810274534323974712137145318469750107614217670080988999735519305684611088881460475144287027004941658213377981007525369221495168074740757274566948019813166059636104591455359600033984835013721473376208088239964092808460868534545726265368940449226016526825224550877497217802682620026937941410233726141724140424522476137450587986644063598400508091486018177675201177704103570662768938310056824186953667434938281619652926713754568191911769776021954405173714839185877718937486679034307667207489431836038717403116076916514672369572544957026289344288082397087778912673243330247491936051187953030774719961088268263275046044892732617282410824078392658029496511637744432223657374410714103208668051445909839496090815394954701583574076209844984702016693499897807610628523948881838739966063115604012370502237538096600774755622385782858575547205581984742735388891291187402740728596862409108610440446318316642354851011048019477435646002604344687944564463024087714485476630903068311615052879150148002401016837145977719678670226511179183852202968045273898519498372945894682900535231990521256551335051602640266666794184177910475007706672790386091434950579715044969469975177118919295560776364297285624255061871960822069265581399477611973800864370378597951013681894807215768635609871023484326443192334380604089034779924274863427456356824814848965516306302972170742063318030639963236233076887715140461057907513499788892290638951604969708391540322540427845324559489580151712148697899954781798229231523373720526495024515344577932863974923218163699016801587616419017408983660012445049587185463807362374240317484048124750725085757776228028229456823278966130666245970007397134119077713697928225798630819338085856603191733892571630164181462833681497503849272437923317111491496298765548139333348619907769824918559361973566097118094408675456516076579944852156706966843168583733662507667171745440511027020036961224492009669793870918049342155175284730181327958554751554157362115507872162767654322379566857671527519020195533432069177722985961357367332590934504988622223015068991030077194372905445446768785274488000612548025719939870987468058681294626111810698784080929164772488707637172448391349424888444574568850505797634338286786324145522805053133476121331746181000935905520578685095063578847565116146181832036864518849150712443951917510514922360303999444564913955857479809996850957907084048925586840399022493743030057575823975081605431512396838752797926023578927613906504350284233461476884238524459408567552870591417202164470496012670185927918736983524255968195281859071533264375002612292279494374599375820538617557242198741496304887610749200111962901104991431418207417919209056223966953541797265833055923585669794135777585389400281590893923531402877425222573069237783426782017224185993991373269902553954223169845839911186155631011198686588837567934867976060566177062310816208167154181699976600031676913540411759543949502810616575956945626794153727764058210413621647966968430621069798508565472299759269316190554690061290032082108853241993508038744588943047378918812203764320964118153280692588877345873923591391160726204574610969774164728927448437499400431192058928894793610977960471560290240715309816485569103929019667152366563197706722745096955023590745099190430063583258863579778030259411625281515653962110713422577529836097538573373520754243541840498435523353991758734858891490503437963793753572584876204793062616123008920260950420739215221926201396500617434484156656705705365222830168780356588554860099000297093172755049864373313163504034170988630006479266430617307043359567948367764504692066304312736856033436410971259144265262585982857085654553192133585817624103859062354763764223999839838329324659856483848870203517525322054860729386390150134025836867094022444566164362344383603109952264747399900613838220016618274079564811622649943368276811978214014460344386054625709751939408033658886511743343100963495533009665394462499587690764146387024472336681396586476488394214155728669166636811109201310555882685264103264901064680583408498015838124959295928286756148409635585807717439258807364791761422130190114568982115638004251623890902663800449642606187946619452982823485663029935388559364838907123267229655778398479600886005166782684290324313187700933952608152572767020290504708013013946214260295461483789658473349540712935745216747516913239663662013614877634116101598171500638500509831692370218927710122859705991569095893931491712953421032696379417932224873246437661497800817963082787880646522388013521423828373698787410303982531959934480044029078901208306967475380407923381678371994889451595101351604825366866344830916396549000557243244273547654901512302381901827154585591117533014523425394391561052805359578479205559843563347262288170160106891196646489148603873705867493734060624222169352390993317539394394871850537662375276875617427098692758843237882792351817185655440459449621611017015732438198509796494494958789458050977868935503777118661775330900664216179626314331660677149799942073963876373207414335142416021729654649866349078138409276813617933057522301172663760165477241311252751975848161752218701377598532848040747157368695446001368414601929637361602881132742481717980857731448551321728372956396357269018293410355002212604948717408280447681603606120893437775479092973917468939311781036614525776350878181619898592954905303953855496402920495889420357357715616888622837199927266366647269456315245062744290511658635473394738537307548819748505290498867349339271988187277913622669319619903950764959007634514008569742049113045920337041549230885694561575725376444066537159936529751342209171188361582214849755523715031399397368517640958152481007672233646244159592164628561063020371000653580458123467700696554253687588736669761593735678242160118126376023932605347933023004934219641830503095855724040762550320852986825780236633720850007430177367888075172486292234984813571462901105739936546657530292160371913684311697735939231076456837204099729385942506201555457931960396062232727698576396580773169223669512487557450433732420411310777666871740198311959666418387232230213212809344958159410230596362754690451240924820910294662485190679031598005637614832624417325042588114844881777222373646274042901659535825403208572948533143500417996464718902778150410761950312446877476811911377670407722514582455978141261491132947655620587660728025496287956038727183197114882435090805337262873117993067408747443708182985599267838474067136350180769503368987974491744621353393454447147527818765493816239325728422440701563021907728490924454931061207802189950212055179574970204614983957185171114421012695934872591964575144089354133228274726693694726998742101203960911842839447145789414004400935696251228298330906456691010921165906187507544389083980411787213863840010542240828914718617692385991551693485602827992955485992547172332132792811944926248735202930548348132920632048599711943441557733890111220145822499696227070930190048841094214822818563376026076517629042132731207050605597295906117552538727764183336891935956498044433226467427510082498048278705174551655681949293781503486911151654408169371683930805452296195826584281086224304373657033560612512530025897869046348019873287022653888304049547782490485406447185454570329135119941926193819947100442482959579153515660107892162629576526599006110205914145100745917366115671292369218378153053687429614219375964065946536062116500328588852397836808277263008666157052327656556204927507405273442596200329329383545614262111111038061470189398645248837384945584486007343983253911998794013767479912341309087062604254258097140130317711319974920000265462507112660761043868169823204121275939331502576915892350938570117990557481942960933085605909196986180705145345017493996923859520476132932769377094859839055884982185302716341032468020961698120768871127764587027768414147135686805638309415145772779498935083652162317840884525721630386182879562717569377947909671595145954475662980843932742638889349809511461783695349883332358185834866240140558298058298852006028183707565010072155460975015948950062529650471746341464022861146310701955298465450210074115986101037549231023452827588245139170076886919522151369593044863222900025568696677436625786857267663730298591853906314016040618614691072724519934795290002544220482948330213233050592904015572960602275191180156332320611206799844795179763727582853204107004395296313097947444560587500182413194892005961816908553626941461233979044925299140281895549217475052525848012542374123301406104329976870651905809271486162880334943949505183000067872179077204341139334225420224729883299003592235901138510199068617037964621835563924600165450134084441033079370193534998741662666986660773545340001735553163643868501376577908147349238911426914229121897265485560220792504978019810687085997854284965771393502169351154768811200706747463867553793026099918960311840810047017717939313116042876377616385303916049832233401652491171312823725881985473981854783384888141618486524345128585645946818774609189687657171835061953172807233253609147378360767560555472919544342938014041974596985957497785022086003893227131412754248354902629519808252576717300477683697191357499242856728798125572828975142555517791526324094660266941065246325813970618481201051037867385216018013550387508863383926119449503770247078777937410309703200223785503076424866958231459191827370735928864269491795001759394991784372986173479543577893370117354699734785566900430598811346536151215242008643872436228069631379370647861519121500503343996955612296986477516864276025900581466861731821807245070677072397355809216554580912762095610419170775863675621140134235468349021191492121885124852511178674495246356414040201499190360221942020603506219233257939667350701065411615318580793901812515799310203879784491305973839019272484509032142667010701017595716359644082231972618375787582561271575193093203634755150564911794693413541888630249846425221828431166543095665154808906548564752832853687758649753143765361244800799842087773765963560742341758271138456130120381912404414284324666173869457487364451636757279269178748236186647239832598130311742458234354642330992463021946436322634031064575206902566552308436487651075877229170331033563157281612527131436362218509277468003531084635080868739098265245318812445833983441645213062236305935424817577595939215919902137576411339896982829681770830919025684547574521358131346104011375731412920297518027119934084365601414845228721275489259452527779064611516301044350640962771843415154564798710193375312933777748078737874679743433533707477083040725592241265298972669230211373606769781810162298960674246735112932062610808229708837058073431683334629220679326455732305988418473895090329739331421822230396341243187677113647296639775644931397278086850079466456615138780306647489429725204865232350000991714514218459515887406865219284347606628689958441620978570370276491717862082622706335099044029612950930424921879648897223030504562909905694769737878232614245398537071434768188811360745185941560379907214110671504538751457972485131034453730280323612069761622123855093219241158979713750117393389276228077571943191877034612792864992574242099917219740305221098290482956266111710005108597861352973576786788231899858316805149519465892831896528824173467552294100985820012119602826584116471651125108210750368473819698029840579680807420984967027917056432865106159816710447538030250555929788634952530020942661052239567998727610600978707984180580185773270213308601134316857073679347427886593560858890576349216315965890576494218555922344370373290627921757508687908277605938806654425760709446196990733971769040167039534690379215584396740010622699403814026150710099696472946453684709593612819139826915125415341022445707258673734477274851956481058867854143990107167209910470178876429353157154488819907487848989214545945566199057701996473087627812337554524813967158816102481145821835537792753509293920530054290036705837256187180204391137204090249154291916397110295661866757064592282618527611459914794072859254852297501759606703399082970999006798597221541142177917725938364988288433717460180081611666302458247291117854527016497745570683456280148617930118029610436360413091888210877782654378289161352310193650420122915522266654825512374119142155548508283294732901494623558777499407987670134793477617059779905682305924934237424916934149717826635505702425880859470605981693438776819760947538819544976028722622955969267288201876721675329408261753687686670817294050209637244941523865747540166117100722260399793323594106010266103817373568407349871107646618978150055162704549928383986165581266751229247820017594492854382980677961168830831694470970827774635330120266711873772702924771136156744241780113962061577179062787262594491876962492650272236429227960906146848159672099083469070224346515005036878418497366472531247299183660258673701615230709430165990150891670808109286484538177820813929670678638193423424215507976339347556995430365815851415174272230247601036355810334728321144668655484952803657817072980713543090792584210356784866809175265841394775263244391935282992354138675211186552212239511490495402090509617759482953580943116144925698800192220394944833583690010485065535536433092087550821901100334254787587843640805188140248187767376472363595165518837078962784540851103521084871371683299316241266599272520164387397810989017407341739780694993634348548152671810711256599215362262285943472020644728919621817222514587745196082134492951180845458456653563384034270753855078236357936297346648977063818615915779061737080244809337406711619037994860811124123552229332336880670957071856432908324431284516861350011734405208218587476417425230378068018562677270647014245000370273261207595025190386242580986461074207686082623867088505274584661285178103049921592978105566677234566757618219186446187350735357020674897903468926238874359928388366727893381457875074698582945117167394765417402998838446604654800851979149588842975224479650703678149275219625559278492150958862626144189759398388427808046200971445019342258724194039246925310668537345344796242965618149976244018159554560192964253313595310414226263021691740930177364990878545335109758757269864540096389743381160748865907027448867166946850262999258184766884558529620761977586432502130698753864827913173483760834498881897257316555234048532243350318941499764497412615593417509382151442868473127497191318297097648636080926826284366878871262168473719447481480889767707442994103425345093719505203767775778941085973799414899901523765463559583340953584710336631042222112790093920824967766619602889113599746356793519747775089223661955206809124084171092124539614905612525193382295864859531515438061644857039308139760200313544370202204554755677456912559902208313312139884188392138961899230614429619864616371236305184855930718142844273869913727561142786511738347655366832890263739395653643830272924118865402234478018482901575095567847147434927919437769971490670445430165207276882783539219615082201254251220576738028507131663139643460888453218621757203994957632131114222096705783886801168619458016467405432492674180372291205084310742501780816538371437915852400007546765040806777769642669879332198467074934508288667972990636099848166761245455545046580961030029656538173067861941690309964048923943081073053156526689007871302928248701553705597792146986081459140452837696736551365923821923986186871394112573808770655478862583210906340387430703842331443586288809682936626207183832034893354160222964270095379397273428858246864232585179409402311494734767053604303872029881255507057347598010799360383229641004999254361247698759273643937801462813545895742710139405560966837172904250290756387660409180939172989420971646805440558354507743748393292604173417928546684895597424209793021124696968694087575665073784034301986548179717282751966507532193317961057211929375556596982430909192405719331237571790854312192500152092105951939646983497415641106157711587955974450065533694029924559738490700274894686002157446994815530121353470659693269564676753673392015803828834412158748471050252001568244336558945821958391354904670128056500867361599597153881887117163454411415818727742267957362863700758118816176018487504403905312438219940153868493653127881107924902347189684964940191359909186985181237389923474517587735160376656626086500614231679539530467293514612230152071366165018291700076879408506641114766951302867421693242756586227947427044222236602463476291284382562698962820811893900822874722726580885113052054562278700135869047558601159640540151248306448689747705050832144730743273825282829715623250313390479974836762352242333574112663110465755244861649302339104081512788853000373858008324385431316564323902759833166428107381710919468133285801409861509947831537082356121442286178345288547974664445455979005322516740307934469137261847508824497216072323009408409419759690853932905841424392427710205884893134813728124130383458145794798522384434655805472198150198946858796216305437144301155091970179932093768826258120436797770055404583029709950507804836468175280165584298487188801714829955268744607312374638945592994786437404078323769861767779065316847505403444622868869228315056708597201914216248343611898980244940007104119137245224641413690645183088159909439377909978621198955018003333106700115816230871574090450376001126825413928421474365902316265501293220831218608345946768538043337802437522104921624685645367896501531948797657455391090280801214382948357747382822219046563791606835040817577906136609175854360327489837928284923281283816219053694455449424303940986654566275836332099677375690375900419867350291477341322689720904773457539923047851989424357823348949537819523026655680507371891531277209423935141759442156058583640772301433664194995693419653452537432007656276982334006002494917631832558995708623088356903148536465514647015719577587334549259578165846009725388407784455797636010789789444017391761892365805548680536064213401582717004636001155232865356326563343298155558744070172934083947265919934963459418842270239644947220452201118603891472625837072176024731972413746189659682066319822045790095168959757972093185302706460484156572877915232756586158848297870401680892776634948670361352086163292201274361864582380782444161083679240383759301466998230138603781397291564360181763113067952626026851484864318506450286218666208877473197556396407739958800853808797824107628826545668830432669489370157665006033146444881593635777452269152016801493086192842411298594539606971300251279521699542516497962745144884710575670798291661987597568327850178806428786828622562125079006408180842984927982922728791665529386227236174557848708141144747356583439390021456143112532229715179436332381148472386238358933248234071334141432619441996269191221628057465003449099305970181426458397973886473398556223271140557261737881952776938026949943424637421434634030593584374059368388173008684205611316717540902969057313390624314288650982275023410088370495845053914012850432877494938240547841271547668201957666162964592041251771336531855033759072468952483537859665065745602890041526270775278723289493294112559896626377519400198327862428677287984228836625087502166049391646883307941409323904465779490724334488124904984515364887542402073064810967622184292384824369887768862950040093613361949944321595691691676082502356936060418920306692035946752364800122288918793800384893414446771701992047354396284955271024637744073819487434983224036434876328616356373716549654828620265222762345851635036641277477704869150339400946918048693050099774880673302315073002416384300832190066017087499534636493611935382517501430829989506878180696778180125843828016779178044904673824363316240315440503650192402758518017130125719136484009257202842195511406167918057455517061206280542546739438563441606318449300612335661874129740340976138175252670418790713653450146465944389980808007765682772774258181637408300386957464610411867223853889171560243054737005324841579854168855641850841450478218046488199142156968506714285973401120635581955292530478704072472356416957974473327957403906776701737578497965307810619126256132689867266145617108637306788673011495890846797587002714033027875171891759013979381144212142702756723696881053388894603965894046012052790265802012653798670637437996349610226093368054489556357596618858198136911284136738814772756067272110413126935837572339890528532133716875759664937345328567463519461517220263279734977990921225541400430842238152098595246894592109194702312136200524963605128719523035691715160938711748494093732571288228250770779067749889557418401925542930747322990295506281926631114042762326196268961279634988397398433916651446556610508014748180200148510676392262071995969014794945112642328909634295279478713246962663542098767266638987106565234473251963566558955725126056393423475132028779849793328494951650947935203189567718240307104361189316189716585506169782104949878341371613948734816501387200042434379135689514285650351967120728587412480972904392673862245735501423889973770427442298378401747306275313789107461132628798232441765856994444688922933087697706657895915392414794159586037861226641627368580813332316752063294875829955276592781424048721163273575228867551412334830847060993511474211165825678534571678295125542735377873829274417459918710935813458063869289175569057417391490949433184615047600405332973155263622212353146839536221819989361047187596744347391764074223186500683196091285396845690500941136157942415414203681641491932810070618558043420858841285674425019788917110551502169323388623812538926075417733255479751356565382789108147068098701315413380146001429427727268056541128615671096304198989170260036289801184448931242462394085311604120909530991571336363038513802607202046631042218571516148839602274619347015987849190317239805719773591395837910169941086882075277084582410941512660748983517055794359738406714293853505282281205334299001320871642668410215939286961141241109974124664315484092263009670706572992143391711699088071279634833201845324621811225367674877757842418198072065374797910729192916073333645522874671311359281604468555671918280305060030174791088129856703987098465651707520277884643473016898770150632380973580969833834475256139376747962154756001511759024119298306295092072697484819618372409684285339057829604872794941501926027500265837939332792004684105600326554868841282170157257780992161378051362381167621615287444935849495258758687929461612003724947432072678083307195186712901949221185926558927000578639316006385071627592469156296326950797422561943346153499083430339846900574969480283008762097854520230131035489382305104815451595213087361480253716700144638526660343697206133870267062247413315404134216472074980170291008131958859036921305765670968571940593020870776249313364625198168068450279755450849085963761003968701429892487514334483239049208324433134991738365448601580887409341919722392095538945444017332816410720225104323735845423806096175258741938487566495307595005179555938625771254574451915378654670319180880852918054820244258358736135881685251147981347806843413206186208073638027622656300792841086114934609187149236914480970743911241845239125436220160154390977473740005287046965848527276775968639052502296853935939342957693602615576352536109204274647718297199487060972779868139459934069734835355307610087904800320988002188821232799188842803785824235642426364675106524148446923836425194907657257850534521795160817551578899136304301607837287682475043633364991514541661542444752621511906373018419430983544619276367877084616533814353914979220179624821746660957882289864400300449378111023908302145803018912047707354792452240693339522691757401968496704489320664584421506865797692043879823490584423405005613278881450745945617616861050313004416528995735543229329971631570971440001758567559955376522059845941017052165641021039711333637443805227952677707686684227377609478043099948354909097392299938281580700140343650981196486482710523928615355753700604254007956088496943872771757619818526678309745187698060648802903810212870514513071589061654453887498691171130890929894133437431519565571543532409221832590569230471791990613454891044932233565755588137497822599789093852395346120039906966189417003808382442039234581849151344375980572486053175550846249254925008107187381515360034363105011558951107768359271979953495053172126339639499718645216818808823759254065423764788690829416571731924490200414287885542451276470619942777081529965474833858862692712325711339497946257905399117405583390691128099758218079383792642962310638121422973417327793348758535340560915977218586848936862966651148301095184736484339695007592742653795780058214929960035225867318409841480293123174869248871614528511522958322755916799714612773885135929348242955872763366443586440059506519822411297002813687756432602212447583242251463717325279399157920281355332294787454896586529400010077297847149072928444844750564044328046052666180138634304388608355598468937673949389001518003503802062766917942386489941476451469478353791032772041993398026206567267769494025282083929169500959575365033766439499733969089100838047876084882345213152850475577440289284954390560447179473576207666220955182371045307499480265870457115332694626681233408567012495390951042486677382318979771268517201503475352574399811621729846817068731689990671812646344384764220865342975005031579485437449029235738582122142878159227589097044281720991979222168165651820731457155201835488254598527489602483201241851275889894395622066442684689858624338409641637098951921247363845672096969079839825638865156073842916402135679845656376979140894664709940455299479719588736326041863427507636256723906207726167785040601397165337809608439745266716644003001262873521806784759169079250287399789690889532766692129271099138102420609152608431260003162187204615113809315546448481625263441956495666629870320142309861416066735562374123719609177020072989187328344425326671502619628527724022107069257198677510116560051590279167138998863963641629210327916803028944354726448600423470451221299636094633209484185872085592034433186495563065875424268655916296261519421656923924524039391110652152023925034751618715439497395400789194758816383648154564051916102503603536630481305583561776409569639661815646396435988652584079156939810934322455684126299020457959282898992770782517098565691252313784530360116025542496995128219535567136463904423285599804811970824241430909935934772837029816745404103336903267410326735540920878219219250455450215451712520816126504239365589831601789501089679290365581474427468635539945126229413662066247958915957833506639219755286530574899426907105752881907800839221650187707737573693204282644847377613963480192836691612629933439804272346817317626162010017031969664219720454847747342206611657902684483328206807951950819987493462832312133391622555241791375368020446115661047791081376667076436893596601090198340137357967608877186546767179254032942872373320056524751845200277909117787540658139333041652642631930517778072623518337299303729156597593334136937470723027045865209982549821337663573097718289672027873708249926220097247218411681983288532441267321877986847313675285363423950247083894802667412267564139745660862507329584186872165223035608103457600144390826347259640770996049407446175957779706582314776476575669601095313858669388850008730903644871991840596344189122298331015757369521533561919445913281868861741230101541105484335237175324758507036576281924287555798264913993403792314352761376792526210951487447030714713831188482316685637461332297631128656611346860251868307432081700349291080910315492188380870877097529041555408012722790604466776244509567538437831100091031089687632759223513262854047601028385289195484348658679406125405554127137027802600053713451367740276515599719667217301756778651963708769716508407514593308255795848998146738697209067317183501776539132555583629684687856339566091163963099990590162757084488414027159469487390734242981377471730217764217067951650821285911049026480552104108372194515171353073032559623604763002581996549813134754958245966396139370847571628345589329158567886544081290135906052632714408558954628408087626237395542905754937388311772181143331462622458521578131949795666102678894300565745246141764221626774885381127086956535473260061123555169442653416820313285483941868120033779517314153139622170470436269178846806027088573590556990052527351059208359662463582073048836287692065314993475718364587933114855184645815614291671420837878487601690241794574331424562122498538733392949901735100959062146187418090643454251369334285365615312434596828373658529205885220265327337362017825217174632200255149651751417665186214154138319161722415174430166414224420838553500623805314685277419666275489306481035014751700593620831629531777676433600572402512464722130924843842180109796124071934230238436807359573857196538670709748739145507158843835642926358489486234733003507754495433083935323189898632574783641821644933899498107348183733730911168330173420741666698442634894531150024335359643616083058812460670612153281974105188008030334501645245064409584920319628938501095467697472378937623116110675375709691772346819133002744907623807923887624246038754131259791879788249056035512956019705060608601712889810440450644654420315720345760688443558915181329826270405097340830752992575916258393786085212067432428142938888909378623314193287848481684829154546075317674262080594391926734747287647264250351256676242404674459930704265204001044432586127012810092852533860643682121193979435591200668254294028230774689851783700371985328053855503448033211731449862909882396191999656437379395936187543074134909406234104204704506417494530365623948096548561096230310408944627455538579547877813562048081985207231579272141833485612920430393809187105360312431091685295333952537333682818552094075491594032539607192530956285365862233991465037449560756314573249271393918273447526384588026359233629747414608300960317212788696774413139671094255579956868391071881079471182395053799610473514966001014442824987751755422449325892234065703983575633724318383287903376858130243930457800804825460633763219997985657795378629980197629303012876787634228630064087596367644757087456864389511247058650544637151162942781507205558672551243680188211881589728115670210968636411131606556064709011111637835415540306334253530316754974362470297181932964960198459100448506755846965037019144946147116350420703703392645710861634612676853253563477380413503091983958715435414145876867568389758525538628132239642192027852407120454602499552355460104669908367803674467055752510969453922039485864041682819552953691164651957707054325206055550841019452717387750477727257605483508440708171106382872436465250858801846148712711349331383887746917063122532271262550585107815530560334839284967774057100339037070862837419496722415701741947313973972325779295681407329287975893896586592251622920619851294051706129458311324218044672563091073745988904866450360670199269086570562460898858469567611020991353248146210467385296408397502455054890774600327450540904233217374055148971193077962451769203818164295376432738390127580640711716449870075366228865097678337300651910432292983355975595367513096290243024223001675084936909119550884067954512284537322995841729425977671973735875840371740812396351097289888143760132987651670863688240855225902370022526770568956886269433805791634343780975955994635378196831761990737725012684012720932999371761366769225359895379492739572316670070885979389216591518988043145029599883531360308689313378947066553308707737240366387629565129146320495526252579409957918394296998268693458494482421370985747077143609456549211401567162159379920926555262778173147902535758985001915782489252226472410931905097322348316604439510120684326656466930348660853933967536117854091267509026364128034995021448399341281763336995567414630210685178841697892267601407889368790835781812124198003997794839423883142275616223394608318247017710290326150158786221452709279078497623826437777161958680564121388960630050910244811434070622025094463291694639586999131790202748174299722872770729893765630692819459168734397039883150511947110711441302473456094922604609217399910014250137328425582580285022311780512198394358752836254134200278116813224072656910850736250600984103136504324823954150434521019313080739478128909447235070369544109355460193334556476395463787316224758110655159569161814243634893642018928237524443086956131988332247116210919529470640796299479275099380857973621072349272764170347014357964352049817912649420617022030690023877823368198490449586382659223051767983137743463032618942448582737763676085960166390524503647107845211793544173434245531743687079073217017221314747864582062788131012136322239188405477369973572499153317335113399865528386406434586344240829400491075296156515894387876183752172448214082305698628723355431347862397310788469278091707382854550080295982649357703520240214161027233567537577554401859433892382758364418419139078918110057826904635380627598079706608770387724982910748593271900640873014847432351381979460358887451319551665983315240277829881242331400534352359219106046899433548908185089033342819519188703817883267421646921522363069538008787404756399771421455459166160914390917739700507845324497440404224467782684745201050074168909019346957719547647307101472030512492578965200044311408740221555810134257772144786389919787923722277048502015022935381733803457738349657313299115825219688598598810718581102015132783844653887383889592420320956780649909664609986265669894272526711209909699482233908526317302589567229330036141576676333075331039697499751932264337556197852051866252250988747367729998019774945579848851486201855627026093375374525925006515693421873311685046376331912587603953407129052423063632688432043789073967642868051622521441227941804813591097578555366923504841714427617944298894383109265871154928701142749099647113973179344925308118416846559226150115991309078666373714998790812618815754710293982423770303997218401251717840973061949757405682824471170277962409919306819891092663416447634621389721380404242214565660068165599018372497181578732213051778572352626139125118530842780844996785991134689815109588061904383128407263002645123677976658710819139800254149570382148049648815423041448259323351216171944762587429096036863568054357382131050020278954086697004874443661084408023953917047561297170271411980626019350919080426349335940620337505503559701112631773657538784384459930520105072936230499144807725632630818493717962920040099893064619216440867928068561305566478129922878461341212547808996169031107045035882516531855229048655764649813257099398313184065173784513019824782578985376086791752716938655985078826012885238008934912237069196239832089700967625408412100186376913844612672896667025113038672484920201473404360295217654478374431469839602095750144549744284371297948555436069841655588159447748593504771381836121341746191502586719202958193326461701769543668075547400552313737067509643614064323715614833903678413741221411132138310152724522472127986976300135507121616217650763855069436711839934045323947762174455002103756095771911205769082425370187264178265774874585449272973167512062106323389493985584204635157943198759247662684339149677765482046160286642678983699468490234338362301908643149331202102493404820981041159927303607009002591363820887419976133796123346017609805337749173319828762299041521161672464746449494007963848881171770439198830451203944191101832149539671284135460306255932731533197333298914459388834644145857774513338327545887178302426339922701764002805998790685709027612474335134644006588762486573383357117110735198563632984341377978790189586836198469342829558039678665053527997243918125558710520693395503882398862087902282657190846872038473395729572550451275097005816373340168796190770907414298263412408679821881170903771929493628928901230895090156859156826069190211181170417528302630558504022662845546936359813509982343854575670049482316156260862714952249812421300616916235404940818021787112484043947667141345589463566332174168843013232024147362784238202679691178890398365526883889202437325092715253484633940014543190885550042426331979205188783828709743668506612451132118670164641332258793469963777850676182387875016388517582123487477737561755157102074145387596265071216890018739836341400712453121730467892921982622647407240519867487452788274801104669202421219908143808060510781299157144141692631684853637004467197219224109253841977711974712109206245618480734073204122992031130009820752779518266260960653536283137351964608305202049160857623523062093391061996163979914282598725183347896693818247687276915710799727716765781450080973580471971699966493542654530945921686164689907130948224491013990157745581886780152250651599359682481197980215368940533808856144616513102707867865319441230565554385276207986155695058232938887850955331317949849415369578511283323472897131924353706257979280122600459052994170070821339325752560055545159916432253268502871984716091128114849846639232571571126275732016955088310711046085237113444455714009328761350171200035868264799930513105985820122166237028581864555079692467074747795521167822152921553136769880153443629804477480091491242240746557759492227993583802640526543330156324808833781428421092966770311845861213672778723783672921262346199513477586737937500474812262641713836708616622808886573371924933680567794372486498834930288536163917335914599849222700000391214239297575483006362671362256945985007767971936844532888138638297496408784845841260821625913062729828214130156769523300921789424990118040624604570983059704624945897361779899353674977890858334052966593201302919612211744531240020093813253647214661063660120470456227659088877846068595638955808632694699772084352694664862614544743106007043465613889484816654569531485228121880181512932600774357371697606881648280673908627860383636455080247237631468983481641819814650665188476998281539445862148390217825917291246607181594283445529643137465972356679448056407399552819957315829971462691673223044600893668524263321736994319675065153283218213633484343110477191888865176954824224529866761809524597862591742641124073805162073423207050951028324508722643463248449828077918077730051403187977847089058438882369437252151242309477266426780534449423747171402013627892497485225888375551537930947456049956731000360061137921494428900988587623793946132977278866700002607208808948803140215956881449210431764362331863762411817350529646756220012518787971949235424528605130271331217068967052244154926247942636112157044540725441690330568709374864241638368773492706327088685793645044313363714666198549465863882895942084822647251182464969170446737536405853317397965141974778851749995982129116951487233525911098161963097597824004292378980840345387181271051011695455935354746438532150578684459720732252743380795455685720644925946646810802376586577813357395774256334912050756354708629881564741671966736833826385751907978388397897953367330717707113035193196976270383415012149199057030129272662575990741412909126378150105660363425418254656556117638307634163843968411687840123251187677050749721913096275535560976600429981498987380921395554530107519516786675267088484020294256300248193403193455224513451420105428680037489875696787740224710563393055438028531019818946619063054420628258482996479706479343786297242996524647452368535845387960215438607574756299021344245236756212771540636246242462361139938417790513762411006162470030005497715744521404502897264145788458323662490257932997512740265545315540648710493768405254508214016672700542796756174935492936194218402947141271223224881197577983837458922353750134806727100127327687355389188718369661696761478148551236112537080757491594412467302265925098583160899762756361009604255503150907765821913263029232223911261472154284272237137654207639946143453606082599845757334368724963037657043721333569683118636497885927773759488020954839120129157259312043658993742919367463193899952691035862435385689548402643756814801754538180451051375169009040487094857911827451950849314695276979907276522932855440908827790849841082589493865257269184756135649651312100894435259781143487699784297891978087883908138916550554745996143682703982408845097624073965091795817309349516601382559466300128153907277645485289248917845257207918071639936225770650035807794242934464162472804668305480702402850990496108100060654963857960882934824386220061120984771618747854992911878022132663380390906764601358359288343311294462097815857492056972352307307069668928957241726414070755715177033149656340066598430115197192314815609987634834616556147335548389598102753260925638813233082608903398386223645745121176381098789684711688619372737349944107513520352761002896215586716070396596451024474958371195375574000978230484179421498112678075412154353152487911234109151293117737272154546078165023099147028179666737798276503771640204670480241385475664489573381517126044841391401073363738981775890313743447282446744468024918152509775623523245358913232294861107872229282306646795951889703347020301802838025509499397232387356915967164537238719042824048622667135865079731438005111791452410067519084175190134259638380382872360071131574310079433251571501676793750875913630566129803594427753073097676524372730058284998018858121335737850083694096811974371654710810001761013944541274643061129118802091085343205195196069110314030220085373131263076105468229041560590367909196932090551364193396429603832895153141077372468360848812507372700111374186423032581717100757850169405441702320894522200294083903812437936676027145136592622437403451646228831992240334222503316796114690839048435989182686194125163220082872272778242837995768716791885738277547531726056615520941749336138903644184878601085489075580909618772831326127445307965292184803333526537947597476023232759354593180584222190794472569120629949859257302185263351196058670525698515517405084264395092237161155265615476524760858853446572695330444144258947770915674790517745875318738522778759590712760489501080305000084249619327346640200784751175985079350676526006776015854140455089562975202683996038569353996636282168318342925571397932240076521732997053977243765335803616929787540056604278681580856299070326554076806087199531202984742232532637085336646883905864967739771481134205934690993593904497127369718387113056887673115969615476770975895701206926598791367559316739761720719500810566464893314005110584096468834847799623434191539906153453676120340816552151769759471615802733319583679914602345283708234078463098872864653793222341623372344680062443586552077619140512190274425132852034255405198109364691463671913637585238548281661453501097635078630820027665954378471977237552830958218151109825538093070640150226639221678916531676140880421751900721044727123463562993796590594013558722286505361377016264375586964189734485998602897773110528821959882094601344771672256218074669728798592252064455209796730803772930749445975049357451617290695339068910496448579682617281840911177643611399038526136241091464419508404218533095466893027921313405362102972907981031779474979803628508483006722008634860255189364777907274831050670708133233639790740427307060558019050705996467749310955831190979722611247288752580553394074720428085737487769016480445773259684119422143053021653421004459498670072513064950552348365713108520192355715413590494727988772618430686209612757154271634737444477717273809194826998526046801849471038331384967473336628493854787079913886111647010309448447153634805606683776171240076688294209083639649074798114989358156788948120992249636504755218201851530692823454215603404471073058423450249848818148421302992480474123425831696741336161971463112281635474544990596158852263564657297022497157753858267230317325611251551340718356896889429902984725619193678481750513952218786959659197864401561867417059928697168681101983178956168451198456421722171689821009135389597914867129781341016462469821562860162290876259324372604345775112339502305641925357436595405392704826909052743812148322786571756605721851584852971816563244881736348809878024992467006251991534257997162079217783785629505103000282042662837697415561063164675827041943907389304135338186840352581208353149718889987410255788865462025894803220846389849788071632642630597498287140415023947186075636700982097811830941440462181746061170009068982033456272451022968910791065932748562426355947347942015390745170376219804119726541133094562131032479205629190778976300342533173992386342021922812085037430191867445440514621293232529163894244057152717036660303240193710687855616616974283538079891038578667608811070888995234889892890627225118748603187042920062780879016601460509751148318130353327460693558761127352385783499202115054347111158031728102458345929160681233177821592077513661215206766536661624945861514046180635683352278558603855284431110483635565546080831195808970541280054607041013281924981459823643970588220294310675617058158632112544322089559697533807271824919338668660939463509334700469901252191148686569317085897953226702310281428024608010754456917401921500404145480661680033155210805023718439198692724496241567539280924789334136991589866043183100819277018613009982288042619903184779574470812166839671427002299522840166292848842531040167030280894295127434500894755624636092521134472315580289927910301844087867659453247740954378050674262897513167702014789012798356670982330051163449488919363125316485559086675788294229566985537474894717886845072716447727343856872713653610259981450911186910202648622120921937398753645754618251018119259768861272017069663596129439541810950668711162978276089953172872877959754718711589477317841129050534224440728070365984585309773776482590127983182014223340220446303506651690205258379861995585183518897390084688500326468082530514280299638942105865384971227153332510611043990438373389928968680086696275929468647371703269436000000439557775934055407815623153920534218471776768778534065641223306928701372579199430947192412506000773675166116259199512104910136768453852357363960684891740405958572144805844729456013683694199657499561807733751881610999285255018435860468961658298153756596515882256665302895750644290922648095872121923869367365372488896498988730972247850998667930590204662456383333650064786083106484204431215249889651194623317645540198609366118148561523129053556695623504602063015371150501379357474701687868877641255556552363936237944099191658890255569347205398941260382301553362400059792023983353430421658130673633305656066793723737486550423513816429515714370777662173091798431273901413176216790890733080086192678275465158228471361676726172704217392361366477583179943463306478860210766966723331090146991377366970326992913627424378958268149094850021326926884440492135372816717847903336404790624781881629589155129955400169698301625250033017408569943188026337685175729801873339825470529120402084696895854870388910868006365543664606662876483683667208824274816384600290331466599101495487245165590879147010481285777372296182253411052725991747305419949499643522782533012157919606403403941685448237793318347504888775464752587322611117559062568783031124409254606616664565438821782055790132348330778755253273203446959834691521952567111049576374238844076281105638637505860511231209407842591933135689875767479164369385820726537726380830126787124105929996945619329662416222974014381333192289495863434531501245674389046436991580813353531175935387405939595182534558070895448502878190258984861510992242570477035110049407852270757897093531186852130424955179046387095256928744440645604963941534001453650246271222884827701287601789951486949352785953485125369897552538986661057819658434368546295486875897450465939291838813892141026732878501899622312502369838019055258972990489550705005562201693734569563019648760889156925458891943313047452293656974465858228651414800645511698620623167741779598531261751684986414441278893145428675481028965754263713049163321332049874529618906252148783616945040817854272926589375565924873951785575850611049223635306886064621478507870221691864609279947008466666342620240553426848839271315245197147552903378995723445807817872431817652907725106380428998296411308580518279199402133268000442863411573416715729736089807527246070091156365268325023315693123644144794429510342502572578367285781074819694012363628606972537209360006704266032856781210254585548930522898339657533143790912657533810724580834885472267319146958158470744545186562971480108685779178440716087488851804831878957630306266566636239464295229097443991985562317455915176663498677707370707872929276512050185513834594584395589152483271187811243384283087620130602698172295497371760929586212547865532363842145088627121256715663339083972527364558935353529491045021844256930460431420965502715201717068517555242967352782969223700329389054250166256528192188620490828344393934444019675269685637229460934982447945054365629503353672624475229989367553487971252758218397346173792041966800248127059545816197885409607333643734289413143726333560096469883450486155418072621772212988307966762022763619146283391569595903592448594586839552837005302798579078467670969963435458628985487302909815530892238294265919613723264427820981963282527303232878903549014377636891720732768207410598911493339047564718922000217549056834777277471016233342701528914593538754457214095389936264940525277998270425278196519296133330496013554574987690048904111518056654816351001875316844906365125488820001360717884495209866611433086009572201660901437136218539371566897930985469777761689341482745916400643187919399872616662763154721043045762531393275851238120859663041000508554990436731228678082948496091464664245149833203432763721640411994645207504033729427393788826374155514358306997233869827934040124381225120592391035619881313191788041669429018324026813482251759369688831667268655101114596848835367365983962627093719151376245576720572009724354222467273607710047148762856300362025405229327397191810779434262726972760511491887647034756891282124246973152810792019384721415354469960959530712459470033088016935914843884719156503390897941991058729813885412648022072798274658886386187188141916211519692441613626312541027162956289058606841579115069130520477539280658705895737727801570972024827589242558318840694624562343075056401967791071560391146352348185988022583728821490324656794455411395877777009902960775826898319617320139762721514060666772491593602174022544179069117535050895159482687368505394964177031980310698056867091953429191990161463595316952093225733540150901769439430110042394629170807017134535269046740864584871003187321575269673336674977935082244486852412206645643386573410399084808159701860268768429813187467642383284718668847273363958092931787640047658120900384241706328577612968109191558848591313353097204020982060826225841867509316878143591790527020877486664473232531881131914981030689204371619155781179769964964971478313082105337550701112044546451027988171082275506627725321865196452237073082481067288745287521222914001045034834342715349240460479761087399309528890677638863513954158430054975943697834579687106997265113037934181430550140447706517544123159914328183064314361448028036940907674078089430389265741192770393340935291182353379958174043858106274897274643888053170848545589669885319613613361311596887362627986812894120711958162944593164863130657207421200870733501951619364959556512448526984534666102681300566711691249098647863942470191685197929110231359126416900801483053108411216621787248138287677723550925818251640837285136797453027276212969500632529739522555365310448862112514962310105547891998052036549620254443349982001508203752984989443612366908623406731441587855186409256489551830517781511195456781549667605159663880622906263889986860739093546155214848041756237738052232544261465499341637707141218161191916569998593137337161732729282118859964718414965200792648144377669067481744424261743362557805799641762546265247504741957903508048380908042711266542890631288838964120921057275074703847848353384006485747589027609348242954086116497925262866876989348060847885312511749726475185820028084964723916363671220405822249396369122702375437149090782180157161535844554297803190031645031421074691219665856128878579030806075750652318131284961249483980197418216826223075648358472473847567463437678844368803710995985915677095642060944322382895315742452611044439996717523603451372645660177400597108137891327339047789235074600813046265233321102303754571669440391400997380418226481492310063720058098903730433447346947275708619754255390291877813229439554068995187456777419126758302841659558114636588599479260468613982471461697092192134282039189040031901510555732197588207626721094735974340419099234198189690983508391947991274789137828195781493931145993144600864775109568296666564926787989250811306989344920719795041942471254009684746628262309339778635779085764128378814820271979144817226654576189607362545286793676498237457654328378572083181514029887766667014106248189246456723650007002215877162856560611187141186795519448938569870045441126109440198333581699045804491865147041252414570191399479615380250700065179857988733633651370627874390948901256987015073553019096828842606408046512096484479641710838745598593224149255655999864739348246110536225770061016889842143377997129988423235309944996556979001520749166275189806776624403036301234536582081858058961135178490486973819533365426620396256030824596565407437055523154051973601665137238369640097504380876982664375525991756247105688201362954780871995620359420687285682943942221157555618256689171920824354085931749040847364816706801228897501675413678922642050800916429528631441048728635831033980944001004908350491860690379760780229374208038875814443762771541689693231492289645266313797577669921019875814427072089926197828906724794256825650452284386742508956300795930387355289942891334969244612530817252175179564361706857628334974625494342320873676900833548042553763626754822443208115902883305341416445505554474972464381253868199374325814867001558850227520857079280396014773638467311070845728409839719347675633568301062542494614852588654137192901791524998256830535727638010125305646134227613893786151486810276960816712218561622227563605034628287997677362523306220509706061534963240777964474029724406870658807088930579505088170307256993213171222477425756164123162033978201228644482776858434590828398208132795752576585368555478925893809602787622210071543866036768377165156251949684877180014183149144423041399492318853142873495662199351282432183440742278277303254255241095468702958985727329426284658052467099754858127276620821925781787536840167788841983496185216110239121303025000651366037564591176933545884911842523825202149531391372917857248436622282861022042287193331960251864435797285151151791776656182526746487251468382021394659634166110410971335653181921384414641004016558602247597240121814536414953267912303521997553627751628099924555067524766375205065287042005957380531696742913689135750944049235128996180675450418996613162799314261548883557463255010340214844229756813732751521309823290941942408611083427592778929692449317378543472827288316509565233237736624847582730005253306081240026596200561194668367712975346740725856151136570333431515567322053992590175528035570872677361873171298852682444241354506701535379569661672712199844146419173950759007294568420960528333800252046542056422163210243745862352039219194434929916564453982477565486877287999810587465305174118549932524841541532376182040291516653439018219594778177535399942758156038075114483146572418682158627685688106483626621829191790274225492176435545972431456052656763884263649559833464662245595555268430372797065715310471967054391286488465757720916421417753316749676154299048719233103368938571689623884964776378741679420911664722379910638907368606084537658298020580221880236113003220326952513518940931026980644041792257800024199996712958555720190494773180748253806527909303283805637512352688831501500111404372200950070802093586359243383850595184076788217409343547516666308498034952467573099235697699892714104786123328770879874553941015616605091340117144693485296804169922994589945944484318714234519498607419882309868185797616702714875572696897937833576831667092523335622256185472690430019521721760220244300207885973383518668398870361739159535138614782676888982829810027000440207880653962983006746751391902787871907085226315348735866761021777323980824035929169853376633332209832072662289955946749909178169363433020863913969145940649062651973356657062985644340777040672244459275397387963007557923640828743622358698132856401248468879146092419903979125077339507567370620996998094506370444687202225150594762977144990437017173816063859714016102001066065966059848798057787381056018761132872844742502503909965277950213457989086453991652440147543608344886888258640502318318734019101390552074545438333201015242277858127108380374886177898492021205571205108560115492911624918618712278735030402161269523752511620355773893487531729263086217495504946143895951930198283941770878972782808768136527948772922614834241419282748961669144271041620411337799235718196961519414068797953171977086018329066774407472221707671334822085787798729920385469440942673128935596911160283840019904301894492267063628484313207829602242093405625381578289013504521927897630140806795685467839794797725582033422464670432994265086573304771332280333713207659161468925776813881020978339398160379983587498043688161542108382755262879107101800899954483811556112895766735612922870606690899353874671252847999747123774516562964474480480442114938377354020662755574305323272064132908145847705903072569286469565194080822790500200518072447807288211218732919839732911721218222276780929060226169470667873121184221954382533204884624672966285902951195710014834218056353507811384307690795651470731099848580825816152344806389643483306757816496661254782268528331489752487087402651997378090622762939954982237477021143201824805047571256488266079741156978696236535038342684384079902345930197982400428691498151858360594278546512372520080646495359087134631697097200524547771120581998815161112520543917633004704086759586555470985409299022031817638533803795786192353135384379138494092745306533903203812128936401573640860234199391923457089371196108089282991073546842319452950487079479012765745633133250249244761244138023071841263910932416600446277348942582814934808925378015731254518353301026893325518245817609759191808851908383743043020510726258035372429568921467141197816085029698207963988964032341799039240267483375666513859273182772224592070679551835533056191877326440512322899857379300203698251828037115952013092684511952485731178917084886542754309715488176986156071799138719057097389411675018706184632076327752477117205235918163455852985305579597549420257785207612084063408255312116530877173377819874198614677960617245259435199895096373640129832271806323369583954487722093654948012416304901437877393956314509867071901948513193492511341209360309963965265623754183649394089331717769187262104276464468684521034669969544686677034758119877678261913955114425563904673421509778485612824303131476115771407276344531970799874941642190246770353466318426752814280088664975872349902159231266829751904542129010868151625429516704586904010180266099500285822674994359936098261948679598495951072827842726254916569644336409427081480088280198902967594322791476671839591998908537688681132900185461608162945652827616919196145400308834764399696222164944922558538901946137282980140287125286663115546915435349268990864449591393777822590778627616941698287860237200726047863001264183638076835333777098019390428768862547380768659067579944279392219790147161698530751882464827801865278633512927017773414313389425112821125971960150715381196632166082629384115324140659582385213745366102337375293020085739237099578663906389098245604194394038387168620933621271390113072762821329262575312787402919435048990119131657526961306372504893782631435153995580423059305012016594409054080779992639923769722802562821455991019693570902900672180073099459767890580580566849393743205670516269887852786866967644797189678336175640925243413409561747352907764874891158924610084957707184444116698398110262318087808139455077195833914527929558388660879792169783226534624882307964594723216119846262486160118620348897819132695474364620476388884041076910805836264179217719033618389981459437580575620211104943541306848102292618232572828782932097117499543598146865592593398394192347385723292611782935752696731061954773150852267324502448189068541854206379950739540102493711558903302850030403794555392826350394297919794355303608965750940642407519562679250930508962210765679274600691392292845813773594993066713837480909579034089308732777104132855996169635025020374783693219376482935999142638874599536698652892051025923235718972779271614464967548677723571288324849822678618022733784783362115192830714613054094525578152534564812232503293945066066173728428424879716163612341503016840401564805401017774146699974296747270268268254089807155259612258571706537854678228773076230581964536365065247351457365680323263401780215424001729782240588492523748141383959904157162347164043922823359659053752186389397345521466069900546835590908103951005251162680695516746506996155304956443345316278128027020430829479466782785814650521703914959249620152386997312909298008230643814057229168342811423722552373033238564020490739409038632017335090783450988379717866330802089688079879055731483299437719678713111533687219156879041415623607783417974582827533904137799126882842846287855587303243679578333631196121044191585969986880049860798190451678688226596133910407440672083285701008995924180160069504287879171413268934956557045119089914583605367252283015425461985307063601566822071639746721611383219438829831923597085176776018348536904330841951141107179190155513101988835776610018411611866451037615073992429608145461062073847413033902589862561617476894419902796902078663238783144789470209210100385234675337032777997475504526268629879668649798889469252698288287139655149968843099155581594247794389633134069173442365207333988125049593829805450465299020992438298547244169019378884618966463651514422521575618872233610004810937406647926209329976275565659852641847051708788654816143529568881762860589375661723578929193885147606796840066061133654202902832342325767089198105891596043068158964723585319711788236742581159658798811297389694274028952247889964883195373618068696784828511022087662205233821358675260849673209161466578804650250873823551681888783204174195375985973176265701034851345837724612056605855730124152538679804536483155328357170630294172087470480529242430267825438734708324322087399167682397503034766700650234106413543284205737919468824126988585209455518595956750584343261706989783167165160190439614846296689520657520723260192715671288607649192994917142950434726343507119807907434391300462412965917826952272389470787332509478610626836977073871527861195321143170160487292236389324402471815640471871079959143988323357126052912554075473556550739247514961813660871130720964595324189142939378516327319831012751439413343268754349417925906702022609989231769346766549836467683263080491596876312888625086962417579805376933431859747967511350483817299812893295910063906348155376631534176734697336312817667910349158171977342459320750482202721708651301102224298430496813070596529834552079019969290480167342458526982228129815890142491498584898923309205019159373292432219208060643657326714945295042756111505026053808406645486813087947348565910400397202039032849140977362413198617449701622903810705788229572481697312783995783374402148255757539774194054431734222407177290241627247968028966132960085451650863709881291813152649057551729654766443081992375119867469175505383347532676582376721546744550757381823058613900010881989878098856023797989030134577884649125260357549829245815922173035742496748825315501266463786171128631261765027682502437578219933508858127597497786528049036255768966783584634866750215761235487642664114680063893388782182067500773634600893153965359619460346231380253767093612792512203183523477846327866361892921031320650991363210289445026827638343870890009627619610217770785737418420780630613744996490135505497697020877980616645571673771704302215428512554198795149519562959493784869640121612197827832741258607228133017961648035499204753524282317217786317579454863110493767268942222290868827632022431493944956683681917382870160356750362517905188470920394840010232999828787795581291949437293024587659880567458575750569281154445688657683484229907570527867105786023470764975766738805162515212379005870543260002588607488112880910649332916034929070466876896300447102790069852942713233816544857360142114517288317037156617154420518488256181932184902989604294973774939720404366122046319631656705020703429556168413205274110476492596813669269564635665259533630000438941776730159381584806510395119163629630719490864696762828996061670445649294642067394962244943404910840778260902453929878969213970362905882559576013818549200736768278416953506337192173656315824051364171541127712500773547838048346193605112963018981519900855042820416473379750697847767099486970490154496567268140424055716714562130973208667053754185800087218535849540968972113813556470198923387184522169918049278567058883647620414258026164490481034302814819882612019112349691839339111789392031467972811720547253419722746208327173214636200259700765148492993065335574503833832471889757165582330572707911530796784117866546099915355167786307516715477463084217996540289129396490692032345098321876669318708780919267644646663058644054831239616072140380133231363144862061624205296909322031267533853904430917723439980308732565714530356114364682813775891091662900683020298146277935702623356408731545987341005956939251931909244985209108893018125113661160951529457972008504864777317297117180223384574666555156952467798579827975566250015564001423361364148555232568356344435476876586350082732020643556249472115946815288664272397132582276987934098446765483344609553497914003322557988925688329351853090409774088739914509786138580742498871053939501223752309356455755366468609485859784055202876003244738542978834717992392243448755138182034258572405867433962389880740507195636901075084610751519258395098618158048603020846457022712326304035328700899291925132385805083921816598610827837859741834651096357191617774384395624508151646491684771434399648888380776969811202641906819218379466569401727824133145450217232102406469758115602271750179108070034691382082109641431127798833653016356817451785883201385684631971501533652418049457574702464769461866680217837099187097319609567778485287133922568757870243619544620721802116521849326352284779952497804916732592444243682009636255146177380869401378399641566833128827189678312997016822170686933222142813387373674949968736023282918883577817505754143261637713950322371393156076409784462280839924761862843891842773908714009424041195843060328457886015584900081130068857754907185282832507217796002667999324527894594215617274754650572000179938180466114666219232720619549860428318367466925263340795989990778964008058759507486885721522537345472514501657295516503627974652458673725462425423067545440086190890194438687142841911949301464251274115669775782454594110410612496984926061641231638868863080918033113800383918515996214348120585448624239997011180007439768142625074066908185298759285071851104013528438398357343984326007531369080146166975496553989670988190807376519991168512860825001522392178394404814071869665203061897027390541543274821474127328586534659415608136837070611745045426844569707801263085837111496387205509575009735604837902079122322659024704272574828828835678611193913502970398453213649749475476462943651002733070144271260366818507377219551723503492361140871803875156383013681513943715961611200526218628826344900242570099601821555429918883515279126940122443640395550169422916053459933696266752265636185498542851642900102161229783447888947172493038438873797315289794120797645985362566814968757265712867160238230207826913496980817068195565144602566998738742569521689936470693315014370098213877174129218533045060937885947912668449223871130463143814323238936770311899487877950697757059027661186412049963916224844440746237527206292346134697098711108890652035074539039761497852672136426840749412920559767775675403627273747434280437433507434869796947642295110593241345491707405507659361958950902752709680999522641667339989288664981831082372029259629039959798801186906272309936551732067270935735344077611906553936112156002351603003066696691408541362558761127172171348073736024510553280510801023667465176002205213198322065950804679728236528905348961470412253948453079702516663864595559076053218678128467696135031162242266155439724505931406244105240690334187624107108208662769745278960812605430658961748587814653723150996549123473045250823019016190043583274575839404438439023354909987481716116163420466875578341251462963278470881620681520470041630163123121830595174143754135586005632382495281498162577160932379482982489755126195654329945382648238422567248321694477829412149735754986781930087189588670455554244438288903607689679206708511574431066976582254282730565788076777164850906347331198270678710983402576167640057797781435847288667400852797680583108404306245190088925357202219188517034957475092088178320315599171619618573697954677859988120830005792810333871060645354479630264579815263837319468167299163862565651015126535876270991966166874825628639542383942564649791660388006174922456237078991002782814127735428175261321763022862289702317776579899949714366440438655864228367194681995467190143594014890076829962401427266539975609365026769778731513970582693172047154797069889945774373892401933866074077520937749028673335361445891510856280257442521256686757378991771628218975507483730293057468268792879801271788627002674497035022836245775396213584004129256356918184041070638768270112980654298062507876814488491315992225393507950692612588929565526846221291662459781022854717116929014652586795280255035903604113143753381757769267264518687327274899579982284313775013709927595794461617887425580081425887778440974710448455572036875525547950011331951470336725494482698753130157107831136765273693935635545778629929913631512134353008389788485953763479797735412030757229328108477104346317733956478744896643978800098393447615907212816776046895574579180589436878073339085872784475270985831224218452685903401227400197501713306350450943810323351597637982282035904823930860158747689205474090187323687357755232422398320661127499522706939759478080279836695760588647912585807033748409555455565744078913334796519321284500012492650061546989862589102027507290135071088340371216047034512903367586038434838455650478557800916269288417959037505370632804656682118957282060688849554217449924531872983684027199925968866684982197768489018707551170948608927626618295284997016566036611115793929999432684819401274082732301661618344147639913189537595774454168088465617699736526694180423536098788879585371526599284017119851830143621112374011116160380426934848120445678895421463921882931330319635854480927988471151554161613199098589431031299745238980508973176060683662699326543433095004767114580502619542108001426197779185268592088121277802921874319159806544281202442518777542223842667101948400741682708007926032721037297631236069725850851498693302758996494178745586388791063812070442373389538375373007527965217556852667328918944216663212793987701847383813872176911383522265784321193559007312763527638779134943689420596164832978419034121657105662029512724394174183686537944296814781676186853181148337693101205939145225483077371445534598499709867889015410763739772855042117211606093253018629421380310076268909228992323107472861258189551698021485737608853073921640514688982126132727742712698220564219281870256629772691305481291607337791386756009002263799938488899462648837863869482784905555295859289613273099571650200664714408401028753880910839391819332386002011493615206320688671812695664039440731856892670580340096240910715532564631177754453519589036330858964970079850970257352638954637510918314105339589262523965601318043616412863090120349504397846946733974190162112517212346281902279226437493622359968011262234173774093320822441025223470378410942492852230560778715883300427912919784547286376434631472152872116589541021027743483559796492764446065644907243047694166560983542460680052416112892299907308102469755324644550715975892575992463834156889026201826078617773332379846796960494924996142756112538693114115733585493921354526202663897194481477928357235965208733979156373546267426743878001857831799822140979760744615064289028726678457927465101252140162913047182809778081887170443134300375123190353367837173093258001521952645617999229727105573953262050872705862490265669101440658291824631011982827062452218799879946330736002803680604154096240807676555277173867443191794831661452789705840358871137597695792233238645203488411514130725152542176115153688281047419372761538797204858781357055790574895387976615922496037509890714353887807171458500593867364412847076188214179456268833275488961148980883480814223883919470256203274143534365948204929662070480547454560077751554515070268398834333497133077813970762972387472945052273421364436925762506108597244906247186665186847050022636525388354539952019956112724107349721198034752014960998821325250133984682506881665378315476100178720441504506008532579785472653473829076915366801370007291004085596896788117223275747785886852956117063129891414773128585984049794568092143934084741451329602039667683124117984724365168664461206202192042227799581036680261074737252377783447374917374216908160546357184846811800466176892706025005831164392876623137942408675486625939404395446360512675089662178850288394347327761701686499998827700213786765796459850623123004576370160389760494184558454283157157166906479677224277344845539599218371516000889717775410486000947760605862540085203598877316126207423673736854703201436292533549619984736114440889149288251937358575977113128233245335456191562317883632674156661830304592107752689765114967419222630593679580375610370715339064892798492221087327910401074383570790751676168169746531031615876425688109545352699470591343265429379536397042693712718710723116346237558096533293168437117081335564993353537840250442741476349734444617608054029774897564119399817170715820466244418012969220498482448432337952879405033082637614070324507530435646638980719934777072780166515535232991273231351485121669185074928805643792783598341842801733015018191846960338596029309529923325277732829712854895358980686787132240820904737557989412428174874529481367103560079822712070196280797338843970256336786134865663940760271331955199976472025499021131778843973282666197754007787790579050054684031051608254615851383559358276201357819269116506922376362274356302608656507371401917145202656763335956634339350648430197475717860448159158057290959455849279375396425889200316156103793325869399615268602149706789224878056762862742046374773496612573526152902979701248859660431667028634264538793902263300119201394680505628636112117616303936427216838350642527497015586282608302621150172421190942276464476192263125164367018110822396510666103709369544225875711258818467673662446566841739744934591266512055130724592466500514601710888890565167352461744776651997833848694767205050466929202478460701797559142192578772253028142759451846226235504966688668322156724610379352423535072051320714228165895216855583552850995508878354938504049328575072266091762176076602969196020532923434945056508921862188228326436713272307091519547341194508449337519643102279461613266118090866484190334513531131219746357456781954238467179847920551049968354425188429630811382668131993895368725877590567013390719310849523584586911488380235422013475466514593414946622215376590628131330925710250239712933356231888843705455267296241230744192772633791639956198319774326022958537379849237020910083192882164922296175893580475946957703880013792984357482103194237059111981243004718616116055273831055508388449167720586693877097638876945692764478082513744269664705180268793581639116172067330595983192033661916780704332133648069408617200990016177016201152233282956823647310245344366884866572966490384972636344315882571026055469876438645673149009115027644387453459732801515755473575568519351719820079834546392761210021430257047347952392784274622821430510491724590388890114490554801297925140608770298308215208391672485603707825855331761431271437361026244124520441723814596372734957493640494064054124831370890934277793312148379355023811563093764241969452027417266335400633694702226905939346222182707447086666228605203021150824880214237664918782632688675249306586402993625420238406178250533710332001298570306304323431044825669515341034493641648276560833482537499381764591105178964851821572706699350961792489555330150655977567129515098430509277221674008290363635312091239888505486867175383200410532726986031923957677055081977333555614934062092956464516542036624517976959167647042244841180005247833603836281318255710764218392875105481036647042652174758141125473083322851695073337709885062778664250525718346538240512874229824589123347847468967667659500841947736741280338080023317409037434558255254210522518034363248581966742186953816074056420416582818501397266399426253544185231599930168629966815652596974897260332150886166733915609836927497541137511455601674553470450010055257997080734448302963007858849786963652376019390186618767684441657771093360698454111741320499207925422481820540566830577881122156263477261547907931987100261701728184328695361001676792345402957716408645536327248406208835929526451188151501669376022852658823179663809993693213221168642498145897626948597209382717933379700960582231663409408663878790355896392139414573078725505331229422044491802938368074017315114355688671779562370045119768429760644243052315031348835694412762834777435649063354714058264459104302709640574701796937663526512040764359713344950805041499148863293468200055694211722201471407395674184856558695143598011479061094447283778537623026284616962177068848214982990271160857217985049546779539923190634434651905342599398037135235498454039690034935003515206694498832980175140383301850345241084027959602622688175169241242507701709444796213794826508620321899857534171785591551609793059666283316934441647943122401097319505626505869768976677680371011077491075448671295516579685185324292544266235156389993399592799181076460251287128287220838281873843620537019012237241809678801812968923795835797170450608459908036013212952329516855377865000208069202562535231711808081439534170766222074484836889143974548606439303466499765431247340299708409335885278728846813206308835424800154644498855097493920925892461535757733044161722835794359268291416062477548932455091260039194753707869052049191435856552669640369592725597360236103685042175783029752883292204519325793673117859728604204640545532346664519229173546321509176515067601511547029938570987191830865410731336806578564078174603110596303471695449851627197639487901498701292501912745852738381585883039969301763091067856721833063051397395592894017142331555765357369000815292931335513788545346691936976608940724831033955594107268181282434645869774322243118836848049037233333049833750405291617715339121371185465967708595178661241202025519399957132554370174148321876594169246308050307289459564711395896156367198778531939233144342056145290814020872715832537208904383052433811007822500500508278592327215708563197580130338425045158738135351980310790152857478259435392795198281980489700047555538541614369050948012616892299550396955497350974329286919392908019699298099590113370008338186857994581690030816904048695747008765615730335057950258322218522504488320464328398429040596703650735610745275831056482833678926366578836492376065244111959451689836392467933961880043187735560589992821988841679664846901781344939952377646121775939876499050458054173777671697771462701059607021154506159267848276587633426214021497495063040767348035851752307177127339204596586426022498119602651198761078313598717621236577237346511604246756249823790003312631083772512516406019405910346002966734040954016678469359874311632525895919334679801797116939860122467123256495930395651920448956966662697643619247786193180864491448175331696955403267962488545815104382885444952517433117610012583558054810199431079238174743248214101617690637590741070108717643614680423759059344681904727614904732556281965378055841946316249180193758253135684137101119623748247270718284276431311910222566067885004902672076681019595231308563534023335948175565814568209243530966894205785353193660796369160921008688568776808535821188885991335925718304910504116322405961232750645809217127524548340304433504923280003842365818372258245703661816784681609277585634865934543626477529442836157820781968861451492431872382435759046900958047444747220707520729353600007728912320367471226576139009995973565707378601683373745783787593974988424875277383830363204511317627097488183178357576939379653119302901935047745921979224952942762707368587520929082265870109346092052605155516898721555095969016865628221808686241603206671965491921340454121428845164608734998723413813862540256204183400427056560344958647478245759090070929040827748046068809440162902863350997056871167208920564500403365761836319823733380350413921244294533829149084748850555649249004107182197918984157778531590591509132042337795502126662164700287705665723464758486680815016059387130999711782523888860334598863926761749188351080592482700268049312902104643187874044427224658635648295282563973938809100477835684574269915702356239925983797779354331512628216511015178796979044336130932536944227652153306953331466826597637938688625768465934444836875280782431577898406151670573585427794534194113566945340412927275741014943491589389486628386509486727907610313714917259686762055428472138639360879066859700270265972642677239005657665227943445636368809960748332622882122662950723334948029924642954331438140090713754287341951617536970639841112692208376698627654335044116196688018715605023923562542344627178079939954463035723812941539455762853545228788304744241956932633601254047051369200010977066924815371741353379432181088529889620520451121794567130859484443645526103311356799926436635645385109120802493653899625247778524479902768048666185488126687630029109670756101360214278178457056092818426559263086824516450524392086332844254136860386534292845598537811686764705407926859267935507409585800394403229278758947633803758812096844757335456681853769910997824034824767908829979203789427083797673167036275674239040670257976624389290638286932495397661872309935321161298159510088651133900792775878434145592921972635206002984754456406187482759117716806506879789440771396186844825513037709302711847207476731257964601349609240756963399273913399046889247959592673915479253807375753219094438352344689163623171305804247533643541582787862923407258895445619252114983391674697852445659996195673621837273272500655600736192004151808876547174348748876384565094265424137126444489165502671173004996480359091429865226372356688590936238800205339553972539654826856629407654551399546165497171251907213181933297375190764562553226729781953321780219279677667918248575216628308623348778068698606382706677268970895197179552212018634218619010056954489966341709042513155295520503581633225065790715016636846165565345371235770234543933348907131158746246296573108961080424512950846409530101862791322733938646665893913614335888081468506429692701996450618273053244589554211996532885264266621197160079337154463528269604051138691676124827114080992379399443134319365613561024336151408689940717571141205446287013526642429487557323941059785509975213478687522911905816705512098019960484171170942652635262359994534910906653882183911961631288855513180697641687005479919100323793145630621194337963743681901745811153426569065051851811085654150533184095379198604272469704221026389307922602335001605843824251881998374083201575407792669426541263417119399587547321672727006080283022454185318673117116660014442380457923179067017752183654965027088844589569366946809873841239551945308712243532377195088000142785609034890183354597167828790742113017063639189280688980337837354061957598630277757871925621393054293143677618224315447246045093217762312751441776631011739291167366749908670669677304566617357765979522349665877484668500549243024960751355320933526165489649453719189876205568686980677965455291497801163543482374795934602083884398356773059898597654643860953438052576100307776347801586462239910240150435546804749062223048892483100698305771564625779135182963815445150323237297043785931557402390254228909737137482816825054767795565759167289510128946949451297934944604922958905355027168096519170356842024501403442861838789183173017378190462944498692590754420147553551742953779156396959089600323750610435934020426866001271709670432626641143843629314621725275205051656214051680661699586539209109523304447590530394141630393043694283374481571033130407758357352681760728380111989152809552858277049528147293995352454738174636982391911001978128486065031081851238509336281604469980324944854512066281228176925266098977595828409770386818721383855640266854667441741276575377018685767121526172584440022336630743306846212745643447627105994117372539728385771534563844503057892485206706494858003070541548034659574673352316067059241389478508495698249511824635435521075560651248133297435500416127051297783672738547718306986137286887473744361654634232969837834227098014473743326359171056156733742568835733017845096948728987948237390310142254428821843559225690516321615988054914850288677324111497889059253735650460179330399866339584397168438179758813062782227032252988474217932725193033826311853585859673442408166205630118417511652281514461703390502318198401341448752528078922901220661994137661225475991134056124631061982819820784876681782093350088933206558381474389028432731682723881531636370685708801768444315373867661567105281596647231099104917767036205397406112152594763715612032737985809707016960825483196901717082894730238026366879787542135251717799676910285963476707094569229071230589190803271198413985663956427058292090350015142251582807980230331675707433593919359806468866564381932009953325809186329692041814609915925893365607961191330736754144037195104948152978051875282604220828800474419722950353277311852014685975483259811378308013579632429729908258378909463643796647904951260453884292305236440367923936388755174955496627911592286177328387223974237034764767510519788335149876129106936186662497204063957223752623438640168947014689715376811307308663771144843550507417896456185233229915184555831574683538607663324015586006985791863453672896932502980696680049451867365415643442214879725158871642695963371290460555874040721667005050820273959997127396529354574063587524045282440374134989420606721151951330217164421649613046203909620744182246534236486358487830835430889367840739504943293060440774455963264611893237287245925960283388413390650311616870929589403221196555365089998678032127486718588228148249223707265727977341200013211644380677026604435610596471053286195789874740407346752318681856751427096156304720686130601816471539495758121429761897334226864347567010961853671926333677035941438894255743914346973152301000906705080789526432843063596358544205989544140036707991504022976778653392085417180013086609635514922716049309123397926117306228295626466720902663963782295855180888873757445173690064676859653531328709549688965813941845014568248755078645145878291106980744328321235402839440058519417962943715855232109745343550268002516223242305996096964374150770635324124955592391652176117376481469069205927859526117546229382972523780938311567258893320486101339792096940811765804497570387448966224153799714566963473612041675112666853460097010880605008950550418411334862427197001187361080787103531507985198215642435859531513573191698038149759249032552588914189174997350714258016692991749523877577956164252816224519704002009267912552050178884959800883250766998008019512025254797489197261779193302871259608470606315870040324444950330117735892312294781291519631920456048623730723592684026794887329348330185969892360615068926652684428874576157253122165836873007371141766096416397468813152885634491229620770604031872908699518925194551301269680526563507550442028701054233238617049082379875937146980317744882422744530290605974539744276338972490689002371476417350699411492748241706019286027688320038220624794444277606842144404927002932686673462663677471061193338854663980365803825196465402641065538111451093142945147824316367450702865589684033563760883152782414793526422226136033502538129011275048631710815481059710969739559650649989212759137500795350152531931811345209557017322082900318545400261642434774537789714148552219615550534779919895314191256677907918287062352635103571147193665572829239784055715867321819515049328844990925712857470521070976217563559779662982123896289047471565398816402112530509649054847275784733231530946649196115319424447822383159118989093314608131941790643405955548036579753512751492389445076835697927546707352958155039951209995009459306399046341902802511588530501335584710557309537269515380721632827353465707452298904001041882910612955604198301409644263568312601694866029107966842434751717813436932022999744965092125771370187466277666860765249317448876427103170405243299595255222379647198705529887818611141017217860655727588129592958159729873676214428895116301297444139498379900687768396848642316516958697970704585111236357599910976800975114168712861043877248764278750857003724311917422913282918155376526075057227673392652129804665095623232983912428969921143828886323280870422850419270911207672414042550301717390678152412830879824991599609560035942564391051425597972247550563268095887482215264970073381953273399014340139049447476637455457748524439624183443855497203882973404411853214246559878440111963132546790177783559421832494202054848577650333456061029121584157630333277833254286335714338785217387596344442101305854648175250759037756769447505657841892779051987827193702884711932191123490589528353429039194153779583389367143095435539813062129847693428035013661555307254034735112894141722935901595899868286925035890035932363173899790331473984517620678275360657357939098482650316004985588689601733889214041237339577416924207926240093240067700613191772038111253152523197652750833601599429957363273106106485951438029386301060217154094462137310938264618347126224472296182742806802368931464016940665888899120268403860836212618431330581138587931289028896599615300692900734033825722978063205242540997608710759349508850204114216362979307823954398641012419109991770984538884934163970049347610940524644535836607611592243224457173136509597258938450230305198721082130786914096545203752113729312601450044226286317210525678581598670207885485869292104017647722109479120029675058856739988413666111713162538656776844913962260450629011237022450593057870850013078581175694134056107065643302036741744969790966048754941302674069844354608454723924495862678545384525308309733431346298552970984252589228041173764695558281317125922852424870924330390112259080905253224649936765783025161829499246487652840800552087321570497410561059005112437726826494766674567266098140529204885638739317836151308270603395539071334324683770817539284103892658477265015920532024649938921309202914794190202552778383096542349086247292165189351421774737101729672709162205585959276332480517932222321743468417450516515201490884321143832581386807039538307798422105039705144294250090262939698622480263765660860140095757253954847887413867384868736612029859511851587569231137439307416476104382942849978186850106532090788079460211262147697035932727446301722446921229740222124227270953694041274501135700943147000141558614575429036678390636579120657716516550959435954687515730319165976324344426144092894953355572958678172352644238219989327280161946993928785784870572822413158222782199420189800487359056980693438630509124660821047380455161167241315489973026136612414743511747876321412592346691109625485714172488449721632343712322938126328514928797457566675473343635238711276843412918196236339709708143515579100907080143896401004212969778460771114946293469378150225549988407902362357485422218891268953371224476949311450443782450085764725189477251339519554608474550221235882662148959124942663343925210460576124659506349251001519902471059549539785757562974166910905480589580116643962091010037092741682426051054312176476121494610489777169801366755463616051259517165292201980865791745960778968930913843658539718713306870160399127686317884848083260118828757999967336091719713107794860686704330317373518384902757996905751622526171747882905425072455405224274777982212133069454776099937551055799725851436834864560723125049450879249816309123599064706962767475628598808503373013302714712300523305563106640555656463522843840440379985383691024325140562187894279533237766378631865638513465880643448779213535950829705369459730073129224922086417291287893562905914812402118188463434390341377806232952705600041199447096343698561499778298854538206449996108391162904340526818811348832156529512809491420710331011749286807359291484999679091705851302372895646845318484142985116944685417213332406903731991029699556408572564350082970969681280809172081822839243555632076957818771697694556126213703076971223331221014582309568702968645325867388058335230329930182097419206039487960763274872105073411858948096958353226156523687674028279000108295888125779409817200802820793009794240251373313261506711413673408987536907592505324490651754731101766448755175183183767056348085946382742646441068734214474323638142759134070955080884792527478482588869188037131565423448965455068853851420894361032580833176899257353215593895395236612056015571505895462112214251942831729192249814062989953832095941673010330289201958191465270549078150407238710844501200334567687058054854863722054543656738420539554334257786582744475582242115757638256725253112299656779457193726287441831159835815274355226217203396471283998469057182797553719299686945291417214410408538353504238489600966243065207856269228741003077148535075977953337200274117718310290547524668251098668779804971756703002525638300630481635163914653716789121349840227833860176121658160315597419448693454570066103385523871923766033394095244097723661389584119166395629496456110315709632226999408572397294178972626437697883195480406734185826289790092967483187619246870277079099991186680655140017618848417696150724947522893113717413997787148032993996809936792077757399879558736841075569622831232947363494726143713312912330919741702523145710471865515511968038605168879214869915625359015724890079682539667950208864512742048463340777713331510422520390246506837812711763546983369185368214019796606141690539457676616279876179835742192441883390305031317182569682045270350515805007078498201172716842100130130076572777833490445535668393590359244531077918574624061234245257201925844595891131042545739965128499110202864994097504694201963823015304795466878264146093377778535566803510486177557988275994491897397765931602919914636636283849139892722683295146534755553768975418734956609674553524182073760897121042781473496269602879414131709309281445982308209449333221072832103605951302449251032167677309998781731297615664601137209519748612473663366335939633050060973452674704610454850004445335798834020011495013247343299371670423280760893932576272061570208857316700128322812202246019082350660752877413847196622963758625186884269801392669796207049809586031101451179759024054913898836011095123349898443226753265914778193592652015680049133946098662941722460454850518174492590181950952713492963563651668832675757954174752112204978981707011248457865448571295564292955104423971376961936472933595994653577675200034402200030576574313180963024583929835922964435811026162922503174107958322083205408595803325316424448309229714776878689152353525874226897452125726563240748870162061025889936431880057966515303778680894035456809514683064297488238629388597691353700704136549977671478691894472758548316257026205860340887355991936137254569932459059583080455870570885575357158507176856767248745477746979762729116353430143524151539421211249964198314165140520088405198656283848201544741446528894236195037655473012728669813579726198280292502142400561459080525992559994215326645738324434118946700557331691644924707943166072536623714940477309486376473036683527378848072676566045255773654634958255115274939027357145479726211695944209730969842987015555421521770274047627666904383807268682460093751496422168023236991334411534731338083662796237907731158847922536265946596582433116650180112847275658045377582656085149702401328322200220983143528488539456247080959044016307437720978211410731386497792687511898869743297675630060966340806248114521586538285064804022680207194076502028531632243524704712256151736839799581325160571555096435201153757424603389002080395636549308189461911702764584095620186357349198279799821722031907402854334811845479885430026643443837756916961053410360619336198549572044913284965609813547605637126106899956794723736941465144018302173572324890109084076714441663193647653482121622467640247439234379331713807423550293877305412522783383534458802667955817204593229351726468044341572905800273692918399537423145998086468116965744667581374330673505817384655405623573678313284674308145742738870964261557288896108432173780523677224426357784832891370322283674016011724507141261178317754045590017612644811917585788619852251076073362723326870536899328630061455269146560052867251326199619554628494786386559388017150479848085329481715261854922896356685061725277888472615588689652908179983348217859582243473485751739647787021386727320608046078467045579588001991394998200833032900875806264182191254031912603727607959763677335963374890055059733384634977737062056076640861381873414461731758058764822928079099088858081943034588166196773269019040683953467273397723400945315608481445645732894624742437393512116871936680973726666340359163973182447356598864084212616758496912462196523275910417297689993069495489413390112320542351640607104993978911191877397708641413982997960713343500136737232914833029004357787438584898929406791198192854565397232883954953692817490553600450329621233251341031085423837862898898908701156521958627529859419402714033501066308217245226908723235961499834245445908894539706906674550427564253577456952297500609240825474321152962135443405369032673250601578446016613793779226949109592707159523825507091375233298833148480397212822997159669935275287205234059841568162328280280934885009051199391716930304037997935951710009174234746681544955989282458634905047175293692811367120825418712272767410099814410945260246581480833219689929593290853868085023701903323028014450474005074450169224366502296916737415210397733774205911827090223160167742345600134054649170641987890150254447580660497100883605906858711285905538843009590592910689123755317320339228656136880881859387357703024752982357537044200599573897925914778861236182019209502674707802651392513843416337190016400551328991220539688508473790216162374593061990376821653193134998229134928247321508784359621186233271536294636018261774443309945514873712090874487084557861953521195366519499914684391035394446188238072270763524720328387133092661265447354685312455729687121550344399980676645624178787621449004346512535190112368614522773860583185451936026604992271880215395388240126040648909464527406929971881410932887152872722759572671039618003790689488091857016195193830826287441627916768327713707059986758985847545558878684636476333337412129528543470480381394862063214898188677274054090612295048429313475771064116546907405534247929475013961437248287843581317398143434354411704688455384324625536078560211057259394582093466584738530161530509420578898060938636739887167954290893701893116635749423470780991186205392182166008401938936691278006493900887982722384094013755865836762610828637758897977557222909887962084062823303007196319969587472957455975780762559459951908358901558131275533120949778722664465520204506196420210872230559615313348296883705979362491822656843633876626072494722369947676363280504279927283741741445318703938100897422803374658415439119040914960115097760004182769458869265417489977510376613855795784098150584141096052776073525456669554839208719566729851325173348859659155369774675611582025514421527002696595998674397411112676956593324256495452929115176092608784471529252485254945035825058149549803463181707595053391737814077110291438468220283914709205468554872352588750588720461002914014103608045095417151008528757609791379895961008956761921949321869532667287045329683000355881574760480991431120837449083327279506073667794210552862874215270460968749970451065947460724017169892102463775032517433235899191595856463563816040869238901018396552989909861575302269671853981756539337651473601870394537262487818226364865585084392175946147505725113341726238956284744605507753746410593584752252493724593839480277184512110162477059920874910823856750154757749317357906038520172661350810130947650588860708708417577228196056763621817906379384788143135391989525643669818279455153660308156122582883988097732489472761965700132977997157809780504415495694215515286805858895335957657456082915164020220552015075377337721018097915965587393442997648798530261900386092299561781010493225415106321724665231250779253487940413763830329117767555162442303564067226169175042999112681702185424608086953987643186625362799829243601679639356715194187333852270709145159129767411677313294422433820706242992799543499271663164681785278179518726362457106821897278287606120937861355690130237347603592688759013374284037330440335246883662059736132578478755184742343221496614852274358703204244975870424114548608596533204205916867237625080747049058683495158218722107115252279561662018397028861946139236212487730318337946558735877028324763767909383674204446949431540814509244872126395265560756045020374313196874210430581333903614987337969298435814954793037311414987477471614721990188709374144275969412005256614124969034456793602921159717631339798062910806408968549128566218882235271247734542028843231335530013195804028122277294758067065444785166666771487527492689002199115988853782350743984622422302795616149242569391524925704666169032504107657571855460281938985209835055561804343670429142797060704153703791350228748935412707462397520876056556401871226162158643373449019395594059457370075461941325305225841273809636884599888389985061014217928338667346661883386163680827991628461728712076162322169746986148717828671754802766393881807435792677768270741430660541919888913506567366848453659933469217216979506047058679061030971720293015212119672782283637803366459940236709101895779710294900931414244889010707766330288061555897405070792989662065640592529321504844767141124301724319629855405158712934002564509991799722043986828659757060648601370849080072203379534762455494129509427309081436813305902297505913421036417009829146922451032222847963320444207463792046196764211062029146281852252379601981190390749485825132627022012118655233999844816382641125357093573190197201167290974187767267404778000859731526824513416298325235357094124766577728548386425349658184496289579839057354969674558731701439061935436544794556047680691272301998891357929785981915880910204536459323730888391094865099826112916124353474841466070904777752219083086883526686394956506586264856349829964681464160939044587244837433932653275852062195724451537127913858830957858629117993625140086544600339462765680128575717278845758968384296311279035505494362183729978786938379982053132766936261158891349165042815248402418282948328478074571443742650350328273657035214016990238395392917058809345394428009016974554246135787939981361400047643893182781229789839245018225138635139165488805617204207906223799085276224161191129025669403995957793205409231591848999660833887709381026515968955550096704193255767265799354050881509174971372793166790667185134557151104086299235225726422901718776609760735178887562251554865906091793871041395010133283449053183263359996611069158361039033276333173609746635723737793934317014675916020931575137801612756899992889513111788735752919304332144712645842474408106792207864022796053272016824209183064347477979556660139357448363800213111141780633068335635612679792548197680009521711938849043352909492425540041112137678931140857550574769887990176931099751558920995874630387409840529909854595722943008648397719983254276739237811167231295248867027597951825532058247884734146891662159240085328710300040628297635730561053433508990260334660640962758828345671204853432400677825454451549648581292871104382029094669609655356563755943815883567805204608399074858336776766450477536669830318351267336441496167859109935300405737292748452984124661305761619676460378300064865995752069777676751466680249145435863452700596120060685477296654608940501471003559795451374676947331826946057179612687228857372625501399851106241811046023347295326546225999703419750282224747230402559395104962151909745162059287739664343000781495611927762042805840736112697089459193241008934278018709984458890087032742986094428464160558589774826138369796453581816678188326453662771764901004609896999622168712102641345114637066690774609946461864770929230696214292085888436216546871097823097756920720677834168711419476578529086226816637628349972041574993743605969307401523556525338663357313009361952653546392135873262279215715836015876885734718678117111608343617942382466020575029030874035354617300220572138849752512265691874700610882279673088273050387300472503879408228540440584886536172003385722968442282065760551170970904608931802152352064105599762988696347234361018772297531088463568236384937813109656386637222130291872307503123948167543664408962745962823557801919496617016140293518117854833366518436979007679421941380308545136791047724136313604147633241754191191491178794378523256129837189519298657448967369477759702917271166141895233084310808789039622654668296884605919867805115414305131392284876357058648998430855883361815987790312570905251460241837158059077001346137988444227984359490695572351241605770238395680219395651695811352991285514232156605324450904079686079684435216706641599052935108644811359868045902462757137720673410334553491265586105843898177096383176709599120309506241120343503277210866534517808997114771423397467320333621618917011139552929152929631115613486892686651725809271139725102407640605851710296788629182058331755315415288600516227746128017680207841685538871364687595882776648018364780210495496420394455529761684113979251676784106381750074021265781991194603027428431598085135536722462172301406678280326958847778640015490997229954932783349200295723648650696918097261258413364663808256138247087321506088172463348148042304478858312761001686968688548764235698801911078291746540598060725714973486810344911427604162496864191910136733684165748089284204320104963518348593045964470825700491174668629421405694075781840108863509730891907007838665600126754143629517445418381703530139453840819011556889862527665259026743357866646210093929657424757415863037370988847099794173840147635812960932544613693838291636270222526820350914076683483695536288349262292881402452890933503618380147937053228071095582112943941283083227620403817309504998859124310784833614608494600150552213581690591523587465492901016692062723595241035493070730271404269474180985426058689962845698509702392943542076487962519894120371525522368621007384057343335294123541157067859525658048556718482948510082277582554307851372743707159588640837641148650972516761772472535015021375707766567727706556738507819510880456899838469831648470348513747103491959861660415318211203387397158263322970553856073936415471468505502700213631891656999674038192625564544387390703180421589211418619752302085294243848321506337297829599999734943399119413465340974358627192299371750910608052962240319596742621536426158032144788644460995510970757377908100831900354830419890764626506427999194787201368591172261671756634799297525461175138520969977977249049096822734602877360201955589569250397026018550732512644327203287510078885415737807072191816922088417298825053340915081001891245570550767970002443168306400369845461736455147814351494299715314914827038810401318318373356907521052542887967268868586632724677770382648515545861039647226922350379455562535826098583594418019622289040594518523428916454475693978417500623497170577488195607500614608802808595207403171565720369142924611805912172256261508650158107890317030131872418044698049424175586100338230114432835692053120107979799345655666422373600791263077469718959759168502754544184039506204262823466053006734666483734313453964316755684452081761644782910923880859641803020088531854111996332038424238665792218474142166981414705353129433433627230277001494197624824457651323914397015663931745704515093628148207974537855901505002751256261843436121118140588591390911197115522279948654707783715194708367218784342242467866320109102475179195746566584859953869469259117591153646213703719741702934253229305187706345862328246940511459194709296751532952798949903523664915358141670140334876256504304167737703508379269046776609940135993227659939624528941551635240005721522064304932865594183548258884225538044445068959934870140983633716799041552152749797208753482467480660450073641578623297756653306115248256932393087765465765723659480925955891493437512178431498283488736443072539716477968088044087389247959773406617041707470055583742716809613362344878542330543622118830899149159182011099492993398822678640060989810061261373524449971228168539727814863287029318239215601460252067758561720893331479352013747130055736731361090932668473052260262018809629640195790720147322619184274787137242192985239638686979265356420774026363351252834969294535788811762346707052128854799878765895237125383366315826509100660742981086302367272162335120170704055435099178255808179842589560312355161912913951124836522137586668623325009209159739258183310278508115007649172231292812484148504103560300723139424499371393433537295023599748408227514687908749087145021173051652175039278124751011685145217369709253298246867427903140787947458539921690237140972912234997976465465061421174082928152927380595774014267089178916512337491145800476340144474534535608101328253084799544362114784992085312269926371466628334393836216185698120298236889724166290030894190638772133759274538939328184331702992163231377585968097447497254517846334788800620052119567025607240882070812093531081305092859826012090800661458562516746074666230149309637174380916343351897685826014032831497897960531836317767496378155832111771982235428626298839602984285370976944398290532601660117176269911239608887349772290842167096562992631928983941362010537981204755077045007411534384419400250147510465758394974545058361786537137854558376976274289403908857812383504075917198768925136518779180255180869083396092777312691245693112976517283994953184772980337434481530079605812773852854721299663694488454375882308811270204906542198349571860222316064969809241596007435453438580474832448860129022675627261750033108675012068622696339889481947961232954103471932862988951375087531400419144232238764415721948482356055874717746844037455288984915520081040716718536812245230014137296771270490670155167007383495871660312302077853814019797985998407536387454029152042576844480205630617818828442402799417464642586310259246064037048103109215481868415628867201218346188995092305149178944431639176449370631320521602700679425741521129123371539104781161759958954017388634639527511864177617006257642514639331920536885806870588654892323791462217342470837618809674929109321574600802043478878958085478735399236544359394050225671218781291156319202193601418286160606074951468327890268521191776285899043190730529439261950341549344365756421525164271498640488873288751214915506181970680033224479538769152652093469175337226953248334831917287209594310366029729830017685481144082990446572294022119362284996296654312494978774448552193960506770893782082300993812351938329711362880789903739146217384004057529087405153256882879017913588979302399622014172920699284760866022684908795861862177816879947850342715705602579577570299516094231353272037517942733210483118804102082260835703892055581080385051263039158236708842167563565423821414891960188816315916451721564782387526260989332247795053299551543317447752626768862180683232271020767931342936362833933951209779544118145699159037173707026350660918097588833657934260963884450409104011771606538028985640157845018274536455138510683872531610964084462841202529532303575475323827540550570879107362364162803088105116373011023548953585244419418619895799283209723001358998602733722220051029328092004405265611246216280952573611374602441437934456494314265820486476420634602008719155729351377673934044212911568913258515276420265163472355358331383420516067706087920211737105161868626964249833740356663133821712562599056722571125721605551693609574653094985004093237063098139467282214332657835793413747502930578161327270756305571529384002059267182603031819517255797000057408013646114757331850822866531014282914510568567920853146562359861044516620606505804609999128145752655289574977402168489342773554287831808748239028038243451898737737284321034277630786837774701451205077062999644508922748815856577623891849513084689403857046191434106878874792401203260227868616478477814239594613558823646771647210673091519125198971874296481569638940606802907420396266451758428691065706634933276586459139222843461233678339669319854067630622308865702544119874137057703548536883849771432408835377864203515217741389281066858364035426104586762389013158240647865211845833837815526325169514718417524490259445573854340724632608749189848276705411226313050277717900246372147327364243648850943990941319983593602871071356069256978644470765939946375281911287956613593968744269394643465964494076068881432188186332999752850872163790458644642971225430559426376425035318068528282258317470408646984138400088375995336193025793778072583140791428614117491232679738136305611182743003037289667577589580988177071466539408583343791019490773692710876426515049874671682065071793427528364303365993092043912368213197631237290129754272834506162936004352937107101752657909549160613766550803530065656756464794902944789440972680625916456529035806779435131657519922416819233770246692457902547724499467136175678314435226963735267424569831917827901831954165007765630199640565257141061459935442525006011634469683375529255171758695187479753335061116483346320880338303662223167197935627144576386175083989114703815070278176669803049115480272356317205187940315546964126459222745122702179931092531830584921562759875090558046294197862309547668845502835367757741526761058319180983654631244595167237829687306247777176017257623360083086814879799798061217196695199113107285950512725787724186101623154789789696675933984855590077483919451943250014284847410135209537299129111889089963478347165695211580744008177078507766851165397639702137988961634297319460565554365475187552894413602706325955079129251126824991874657781105997798250261717101616610221511331051702600127717437318966176447857663371765910522504754098497836600404428513413798829689570111273228341095056033375693841783872610592747102441990536035275125256218432031529644675921792600951661318763960441291634777391853728029485495301112085116370347635212271498142597868550001324611699371057426453248987776674406113742366591482413819103510570639147644046487973882227349383186213388078915332643298371616287016494864953543836993847590687638097689351882721203046483394254034544950332258539001410670317664519037959018900987041528954538073881427180491160028178140305159730219226409012966039381522669818431644980229906774563310615560224539128219111373807061570272801502973906065720976946139119352730385714905016801540279828567618860962028663112053201105663287290212522403172125126296407803732529116422229017656215994273383636668248905054736922057351774906556125958075568249970885207632206096200700063427910570940706002361229025164568871689209151959234567206804948914572092064218518185824618211223920542796257211509719701534737307942573498728447670816635681142913339221924360639078814289467527090372063148266765360571793026680514242449104755926793852712183154786721786612615397566469659016406872590924505482769067400941139067699623378191911368195506207301010939983073858679864075678379244775857043821149555703069644781295415991559165020944317101250318340021836397938822614260415116211220607273864853651208647026234748800119413864697483540245739114819813665558967770930954278703610673481717943975613317491814279157454391624751684689437684426770045777471227919198477018223110995433904011853259930378020322691728957106036805229067572557171383175760007783587935081842028750390547023807873296969967555556051586391370004547933003496510452223038208035809550973902430221920117799183908096685736872445416754692726071800655399718647190939131597534568802884185761450487570876937852001773638190621863076128038356218975152576712296341208707442681816051700372210766841188149700306614996100922302590091968197389871748304344564362744723764393483309630062509483903381060267691504564671103830431612572111419422009276226830308097902583035229391744343603973537313370749661925232264842958056408453656408776127899277380864108540595704795523932789172572425628449601639790955563396331981400439061398380428025072354660276212094217549354203476305154888276943854562400884524276653996103997206742847863033106604687884184438380029991227811399172973998034736613014517838120850939075417682091239593450052880481705169308609803432630894102744736895977356418004032375618150336061092303182656397702512143330533063737001665117832369834911896010523163277964111995702183757974231722309970301081328828059035760566154829388440114096569532364491153208157132321208697769251449492064878290656809319606354551341242445184972118210916018753673951982198524755830624196028453504196202231289345272911005273127071945201784710190242056340446629293002753663120493023980719797257327419833663977033969490285137631980796841275418505284785434043599645856981545509280830447130966909587219407781247830680796521831863520938741345751833880539851382157877628639364446819483418772243083213062164425167298004932590565305567139083001136812420700007200532558973157673175323925629905168225725192434879926763948263970784161203599797229442756673339533431059977748870786616452273167768636302324825955523874583409296567184615157548064245397126866964281447606291333085809982320847208240320745714729199945120369525588164184912217125054297446269469386379417259273916560607467224454814601432557613581193916031774047187083421243756170083485071370455206591276893297620175875220042673029467738498850113584858454102463696474261475388690738880402105512041288556593033006597516843587828828306712657446191814862846198818306303255017004176111367276638385141506905518411147424162335025063691823157049112290528009178701276098530285027832834892338412274022180207110556646890256185234442791245712332957454430842759494223161072528658478001205538662821294750856018964580675644293702211166164718920702567693060099007556625671018377560759537239533340069283841457239668219467739439829341872571643192416988223887934342411602667044427554871843714714918656256332695276539020016107010807772409579892275727580662259139063114952776519205356405009468760676833921676424048614636272215457392674116218780959150429832843338868912591973008035538133591120630982311541888259944468854220927628554094897681052924720640869876320188865267463459366524728253342341991505565222228814316816756342970339078386117173876995523370359556792896365914769808395325111464803910357142883122671650056677660086905677251109269213850184933207750122109816399294326282732072669631223910371364765573342579471383274653835346428586251957281063931799408252305029444335940582439866741925691797477914491323381883616587400616005561721114016233023980561519770042993795731123996006064687053722437747940068127854887678425655543120484864859945692137783941287253140471403304628555843235146079567063230216226467553697560345289698885025419111046942548680479034861272125257631483721263533137317184723360155697659548064663499129352107308404260937047148865588955219685026631148436201064417336949583876196150786493041886444515112118307085590051447002659202631526928832523112050027661769913001061591299418282783596642890442611457417390247317758242032169614676217440271973655276599595345088118744310887756162457910241219707246316758209431328298404746705442197000047195372288278732521945891818092218283555175254458232679450961065147795131593157997735106651767451001280466087539476119978194962553375850501277217238207909048649296240000196915696852640698073488249980042158257881673746616232298795644031205438931442089484269527870446780366685962617578775626941721765766960539472323368674942193285143870148731343880720114270330616015219215371621423364715816203726890254429299702404975138661242836805004316046954401459071484873090103620071390761708494170273588998127697978686292492278786619520276590595609314887464291045215517995880365618116579179361948621159443448124984660353494357162419355878162789332021661943623744346656893978868824862393590418753339075447602457175972883129856965008953471245142701582513554852677168362311889406553503677122807760595293789064320196870798366888936922343731141605531987898509310364929396078665269826152976464208678572284409475461481060809008869572615519951214114394369556903915944191550293912151441381849833371292264651460288248091242140423749444878130104758883276161230098861299449265423896736498484193907196408050533972046932507256919942967991773125644870067372747892788645118794433866763223099903297802377706592973931231353764475600358507132923239828791789652653586532638829512737913338566697397712215445965639904046567696179845617195050890732457808773547934539547674877387600047654649265649843863728283203879995534369881044374135451045335733211815558495178376727537832854080427704972020339753063467679342976179450196349371494065882536021286273052307027158990431303179460823768020315902127900625320288077677842371620601122028161835135130651051292736934681890493329419454418094656261799289750729729354199933509583296774197539455158116804966449313676457210455888852312441101928949331449395817744092821784588892241985926413937876311794095927709484685037582322308452859535679095977207393842685555775459108269278893590737232322592017996883416153284138595117162371251370202084379808927281550580688835176670731520931903588679487147880773647081588999238001078791802333284209247594417646279155692854183783023660945655431496450927311496830398824786316817862919682072944316310602197428398137312583148113122226601837168320944787364932742287743881135693075587599871131766650068340267850502345565333796835915498470173208851799236179526209128514222741735074696431170456693259685804691098714784713934969333983581166198140423752078683116840309119001008483150385655057255586953657389322870545863820507451307054154372025308796066774870737926383886420732337245756934481090861207010356530617016179948863489783004124360395095139561211779464346870629869667253011801773780077494874579669474274228716715387191298491078753483478682931114654290544252131410723082277953396397616095306195299056740881148544648611832635378967349680709671106229397588149416053466629333665950004802147099369669923377689862312368027145802476500684635611836565067710531956266782603075778169635713619954548442073130613758212960319444438657189758003809011338002611833473196776645687586958513275190111450967477552481624985600369681865908500691033884736602113137349796419879904421508700552761820461540180781411355150993749743572349902399711990085573014483315273871508308000943341248127686359389952206508320961419144391833874498918025079783147394132874831693293038027336224438885084318210941508327635272835195787663078351795824420232256522648865708671224659533383406857685531331913923234203701945778171219311931225814788511822623040225917036471419417130856172758607580871863199875353695313528044477578397886045279734917038652327581851150440796632922950002791418194114684405443693563885114763466487616713267277802031584204678835994366141910920343645185978144264778997072943474238247438676395650686175761440522689687619769798174730002674485349004158542113218500992992703137434609523889987297854339653571834746254830534441147852875887018680478987880363372317522926047805528898621252368396538272966070483882165774025055204286927241126239739906539105048690510305619601041427613188282062570925072244388299217032483256318102756549040203839890030936449941352357644046399258630085604650659935954420708973290824308737355180431696858197705407973563102027687776519526329846167234148983222788257559797684167426582896446385244640093777484808354258002143898895128510485696750100241708445868930304998386286351276883245822991548085220678472658507331670269764936128969364597743407914153405912396823229398793007669975320893502775481434403306600107056515947870256970221444876957651027969321530990818871996605611897493915612604363824798318060022121721804057885588031041562293702354716698328244239106208902942283435545458005030757325957834186729810783480932954054985115681347189453266638808425635138240884036564018220309683919271749057699322531143025305662455895862313387499870751206472616368481800036325020460992722371961551768577105751631119824429774068984780514269607038088184818851164896428584605971142146159348304056953336013624748665679833952751525727505109243923124083475862195663183805859658958295549721505648797948001638663829382217918479220865325393102866867589899124451196639080973571342417212861795611921870316556147948582031993268207377444093214562478023156932279923211159604686316063647650727518826889787851009066897909860802366981724381870532327341449768975492367547068623253739989705186870699363695298025927952143518411665367289120889940937802392742851652573239609044354965745006395704223516445551936734521391528112428246524685831525482645764367477689110774214205351186385332937602809799208870574299398329809535512835011586665765683426284434141943460635312052737436739729197171954990442349831172102458042269045213257958430074372161708511780118924586020575422221307004746204386912107138885735036340628727914772838279284401219686125405406040919461224487347477774477733719261534079927290299125584052129109381285492289858586160040660308650983161319940017640373571823849857314507721856355213919536708457219674641504972417556744316064150550648306051915981537409690457531330466724258472230005224242436039539651277986088897697913008407477546788860633753103008610457877778082538542988161585135045641432768051305541038596596886615171597256120120748342005858456268434865467219086793669599669161321655358029476133194594891401554945110829952522124593508897601258369109360463064912180604483715484004283937850002820427019534970898745368231722830421528872335560590412510677725487014796246075682490797912270722191808644803253125117538815806429571804097048763395097217546720645557564277926480988243795518203241751671687791414962117955090999202457306106154031785252534590758096935327482208752924484518159855167854734039511390018301004309881296083997536645367652174650062712628454211176689869933006902441639203835339015752462278094025031085515389805785260595566464358019084419995787510890190589740244039575616761851194121359731445376748362146287534472722489781355753929094331475911657283520886099170046229084196588067367570513306088113996791502107072106993702680896858969601690406346506339119469242675540409334178449365278589666239662955143358357283918436420233658233937495484995490333280665336152894773694730124824864920258097564388572548763769607665889427649881549226364984787302342348191815480376133400984624994319879982392832103384468712861440667610258579246058015514711236183539026495709565441665801039830696011395760229527773648952606007926518478166118048920914070270869253688402149843319356109733454764394176638123963197664563298603303378792931216984297693665539020636197830884478187434774708493593532890116901378756412893830325234042006583519389502476671367054980574531231896298985039722817647903844780274621249619864659917606455195753261268066189994553655206602760034122802515644563346659995238792817789765478988600798754630369496773128360598651288393174342522409796725165518913085558382469249416815146153434329292242580637056529714680203046885078413321559812898387992638795480242879790037146864175439987702839002380452937054125509887542307932334647003748205870734564541882053371794924367253290918489760978426406975174149526079710233012424597641401779888617675832655135974841492577989378741750983742631460770955611141927476831662336234848014436060064138302159260454627304355014230040781580260819309541963367206127180783154213614152555464350267083164141791071779509982273880115665547793645279707890270693013033260993957858209349396140985615312938536007125122774068600021711440143259826553696852057621583420956033575489509570401753898256916936948498243076449424153808191878192250831980113899608056510193915325228881231234321181098283505803462721360010748139572205282005672751639642843284795140071316116107193811557245541794595417620815545844187873564568320161509159373546062922340234447356986048025826562072352302935929084527036098677831099816955835405124209046015620594086802406162816031972968869845884128800145090142994760074968588900160939090263764824137041093601144561132238622634415819653818843375204071316662652551502246061299879166957635985801316915525831594096879128799850718206206292101381731692969445222175116861230742411062762063150471675913595924289623016790005631983901886971545915616888145245121684235009086562195167501149397068894936165478571880826079614317672648918255613578222506265117267782806555099954522419030208024538911276291948360973678460415552733914687491431084807871144935175423538281116620960753112953562619422583406119129501953483735071145913642341648270778489322951364932566051193070020474684240292136682560261833483286849238881344877571969181162882706132327665054518819420176045278857913389694866208653365564532055575186370504353489960688365239773611726698610460615058192739932671226619387790146076747723636873538984447952052712460189979326588040405898611795835614076879854648569217647472527908367020800970276587155580849941249999846604076448138883275230514397730571526807239979008628503864108004773148678707498531252730834752138192729041965462623561815749117292053747715503496375434851952186830022002819694776388640651880941615808586891285079306275311913409054187323617456346623185309919337120051755382466054388677302528435475837335210994020228751077898595048226787814321384534213912228365004439667431564877135250566516438219394094145677630316804144653829839806805312298360403526414389448061582780938261899562536980373517031600680799416270042187439309172967167492317763386199850552730110666827071612600336373732546837701683134390472465714783874094040503562519609035707231777804232174703179996016776383186713595326062887995602625818625235601752017184593266174160720587282038656465252535619785425051749000236765739684811624278934803340370197262035143746792297200855325821289367534021088172058638484044276178043684384384450140533824665199586313921471129477693987939442231962732188961941406976384079830549673385189366321548275971933884816033027647617249469848007578726192458806707927473748486911706071088006921239924225420053761684739481426943535110006643886164903669410533669646327129209515126032898384963147131132666374305383969617913858760363419935121709450497549857563135687556409270973859638257730937420961359057955528898307496971984707949845342175755420918543190509688595982686485461859928459213807205849727622206547907620797225675458848720743835153991167361458739888421862899265831120806963024297613594079360387398573743317685630647613872831177667941457999864436366988099131420925028072722149433969663937792989748951056143160547306292761683850245350049343005364068936138169897188420261689575451368714764023283418749450093587948209015230618255660974704805117506583215959441628860570289033683275247299973878134007206494398444789749401203405718210097689453256828104455273747164188964664855736799476974136222549072032846498888483036149804937395764539564808229055247410762622459483679231441985559631147292964150629255301307777055050938284461031784723919027270174939166162915471310853043529319235202735612983107991489582700831091826291938858544174950052710612912131440176840548703390355224910879608369864074664320381864784584918930388049976785035970162844682162134890225359113442301552427038781311075437251936957208301274443702424784044365811265093329134975713411874471285392792153464764988738303865598654552918554657185057549047820195082904770044057210979810079507105063040780486126089792846798336167935650651902572341025094355453089179100128130783386544333738940734259784720871237307855792423249612932925637531494441229020601064239996841397700162029675809854048931724235319676913056548246770004419240357366076280944271433717712324167061196254959713898825878049405805878359336319457657414451857913877379787980753136738297406151914328747583889859672387102764955739509296911611281000579633657348492106836679150700263227104426640331149353526487519812554930723766797049923576905372828889251423503977147950770210634954092704078611161138193692629084656641212146185519572247398238240797470968405432230969146873234953790813019372025255096674375715919141770571701148323707783491967100508443203394290755164153646057110966115384096892939782610544236167399403908203536531304496890907898424352253484937621540254267052749663978153228189989558087996691364343486440813431745764143077396651259608698600238755949333896243524416919792734323795041896597952403839597098761803510627755749669601931877155772688253297055800823384881528650011288438192699199320298455821213526596168800508922803780080671938967352112195176421375835242442204591547489789757091172586941313847562151978098395052034646226447233752723548141254710590907181520964114533315146631167774710101518990200591801443047752165695980272765129581254168393001894097827975835307161329751542452452912308796943332308957836720596336538735216174803744648877870662108335350529344106103069318201399445542526198321680316543246952440198803385699438665951783818159995501290210110385397048283611977247602159565625368202077144654581342269078564273958348699576411392596663168666932976704427300144449464343840510618609834701800612937054945629865035048936125091411256493481596066267778402057517592827043698966478128799597433814987166080796495328894846261361607578281629857019658639617202303704323377632485766368320545729712105469741803058597343788832135985906728450970161305120365207922131587130007938967288690947736868455073768947471379203714452709552599939919425296205878555646343976691872364858229797885318687159017133672149380767123896363614700696314084101124369158139690015862729880462287598517814142904713293521990045945394976638566548222836596388768228794253729885192781341655292793192698267833959519847871500757350450916238393672103618187690762423453478737112483845265523786815638910537893420711402386329927898790136143043255652756923797980991217542153845279848928999257189485813970738983945126664324404182543178690857137489287503386332640001177132775453179827439707953212994869794395201337160321584434341647641492176479242294259613081196205436649977755477655525693045468145383464670169175929033262635432362880970657886294998219301641296998193087975478080513926010394250595939239248529666120857893646782259522228758825007251592102555483617143897481057259248903056101067749674994452520282226737140305864576833446528057109176034261237276574966353963986285318637998006202572845893311554382709935736741492570248402140731545046373926489613008640262772732319951020605876040254920101699123638395399870060907109426531140124505749235035218031513049902638946335760548023850559455258415346587883724578040784364979531821888123944431815900912880069390580974638591709289891713345729904048036245643113398754588156064805945858843662449063878007097027075645315164701618875829250886294623381698382211953988071237436364677819644941225708794791670568485516074134101725216421826345229749420787463981789596901612332656934169213994792562037356505208563904860056750859771413561574195773361050874511366481743025521997923956242729298673396032407453743507498756798205783841340014456595262893694023597379711781939592679267825051192487050761651816008123086865761556331575297005371948048353400072210394882570610963819252247750812025194542062295623596506265443549623621480185628817206821039226672125567167818719680142582714860459981071016491175101268809283502419783947096797834449489613981869022502394609335240701239198600732296551069854501426271642486754627895764544363790934198798585943101031779408812153241473274637714112632869277491941161940009940242958671056057903808497014052360931468911635958739467639910035920722763014448784249553771410144045836305195421956323315671284650530253800268986878373926234249244714385427074677125434343158707444695753559898332387375890811259212302754353995105591677342846551904819858817333587610044617559815397179458633810471669842598482793474790753794953869244046610536334304168865979217350557898646296927064749120887183099280247165999565903122561852169433432739845511322976671542907590020853203835947170063623274577990274601512019501731513630935313154387079311773310966608577100276283041400463555058747965965490377122350157780695757504521994856311585164758915223476090518682318342255110534743339526822562388926532236290121494716054551117851121878587133760839357229231992096310167997284327095690005143993135007443524000749725654418422323429099964440663254051902418543855112667215123007474226460102607619764556407921840556274857575208455883473173132326875578979193353050318688023851133184998499621008170964194503901158252204079680870455188008285423912059911264069730174937407427726523550467134148346375212150105742701117956125709105832007073959831422462894769568575813144902204905071912051475726067326397646218678649355326073197531189064155439138656536839878906865263619133256371035248035564042765998246042555308148687009466103255995354394787250378744289788421499078405721992740019749742705410329072873033021188818869546316569824104183556850116490990706293629419701831608232228349006596155264907955937987542394757692968477358725850348453187762916315112004729370317966655765471189493003332463595647899118790347628663165354389844920328271617402783289976913272701461928020618003704405246388090768256550659825899335447646619905145397896935401966385746729457443703403008245648297062371962598745027797422487268677499739060651660377973473417415246269977293567201339356961835833724597420178838378794536851116747498255616700802657827895974037702181329366298694552459400694002810851919373379915080962749876837288642003552575089952080000743735377476788291648721307154628434524778136880136718819918301609294988079546667832658248454590632417950668611263393767546546681287391360832612884527125120291556279102415333013800359191850131481935287186694663972394589548211839755141414163250445457906687937939949864847889532591433195781853491425013574727577171300372629358967246485196317498486800367559749015796549593298427677320420353945255030858801793498306046410889711212465528593318986204399623858842689137247112230266050862086568220197674792587680313594404211513867300016742588301915934097191822654406217036857711633171729243905390240216831580315349473621406785817695753331809307556211641855172229767336496723120596639238812096632753703172904934052288042781858276126909819002820000135499269828706758013031628201276452954271444488444049245192852070194875351459551245251320301129024365160293116077553954955677662759884558356613300333488248843243600423820773785631302863411721618158993846036266815057335299684125839854564580784278229893557901107272325359966002338662293991083085221462345050537479694709610568861520386828914099395354392806971320079863731042835423654961353170258876841126525499649389384930907635923616884614983407277056903510207919832836536792064026092755640601458836448234129733990613918161901712709041415333828698379917707445920133169508113465237642182347702439694198595095525511210529041245193133531300962365545711184919555777834796189885364796232942693391700364115821575786354421381331435663051057473711897991039240077603671471570876391902441321044482130667448538518035055374119268622718066130750622963211055395654405114905486655964778271154211363024752225084319333972298190394197378515215885831082973117110276654719959504048926703950535231056247412294809577983132700244574212969385776918756072664786568879890835164281580960986459425941866613886277889151016634651124546396449084187707358855160035028150654841799608167662575540440609409886678675786259699996969830004668472736220428591741833408308387442022989407063563120842104673132084485985255725142043711496559700492683207903075318913930931349318571194734794321954945304530733464388821540995650726120978455691306776906692991605697277163227378570209048776065642598071302530902110513048049501864301028503495572974007201237584325226223422235707376286217129048658554581840775482013181921872600267087427210564434405991666236085194041454570127029499608397139336483994088970628221413640961207336441879981718885941362007618504262218155827776892425526370886767801661197521925907158662197333653779582523076936102546886902026564856933482290371405140168768479593563525797111221574563673385958003014059712826841459629080342982990004736077867800317741617109651191470852687814123076056376049345793781641281611792444988100508865093795279494543944680177843844110983536830824352563832085372200521968220926632062245377660187061117161649154245182307157902088396947584565487626320445958887802061044187919660676542126189841158226159355512082578765621907075537409493331083809483454129077623817319205172434512441392269798667733123774034204264808446977308381957343135127925186885029100360923641158841295888783856882033248092531102676684563355807682828447634955398019736616424449038807643639630828005158938507132470974457571781221398185014634429211985885119593450903746542293866022322328356370773200485590821857266150378972189454813435129443821722060015205154433293150328388682721198015777677291325142984156569536770493078677624444735309088272378118023985918084345896624525798821293547291886428915354010986351228555996313343083490713447244073636215810923242664457793409082264672377634359878261698216441391174706551506343904547123872024068153122974181084094552130570357839401921085796523977596621864841136500626555254566605696895338826674649261391593661661306901213018407104752022632655873488743392275039303535788308736879285263420292397136153848317986349402426159786385239345049306190671072835843650045927937213511280498422343309835058879381243817755340420350133813668222287042719423818579310778040738850930152697061896296524813925487636107546392077985475164537720945507646733582799601116784184548723731580438052093970406428637721269618829066395798473931294643017308091832788812031604233605813930988562948785399640089304799124446210956060799978864536376184084680262591275543622985027238714287801082140361625839002973004483818097359172188574152072630355325093674655414613533551342999046622341768959948309113639499345116835597341677926462290604341774836682958527246427150971689589720650837066603147595490320787531180749440536162630581014757978766455535985160311878405449281669957002305881965627735129639103078592917462653335529911497640164537903052029864166646349205688562170965946545200878610736973190563634456310683176988273299188241418383987461142845834064809256668654414624933084600697684429944441022131652180061915821586620560330120885735301774891847900188347978941745868617525709105718436946180440633427525934916774863032772445016301305057819249728812317155582242711619893828832632882740039180430162693911075946929388555402413883302543992277803849174204069108243381020322619772328047679670171656151530169491773375219470888295760825202693183683123186353279771325701409468525284492932208313953536654632728134113303322526714163011102672742200674642212804413339641713032089746597477600396738545366034574635267184133878717395481789437164949476716687687255287335144734825207963947467831058528178396323773452502619098352161351306789408521513978174417688377696639846822208075831886078342862845763040309996270230890969102907861515033172271363870776302617134750647791577195403618757509737393327482928170590730499921800144359795857025160184864274100214908434450660870251099521600413904211171971792419531194275253316096591609910344938485219291999558830290983424985448512389022427836878769268639636749475527647594456480905459448317523144168514927383891632025769971064499652824105645646539728819541279666724697087692827795512445054120548277903905167456396015345314945475568141231278643559373584873116912118997835057073264196634797931018026359484919438815231907722237219011557895391564666378508603078057141176950031578694913742028852239729341632421784133280115380363628961209250227133751861286076003576957101423429739015529776718738962308891597115047328325494290366624073178153403517465145080603155871484288832306751768416847938664677218356014717161850983612328364964616670999252424532353368323122462021097774440208405469742034387317777403286778194704121338333243626316975128121857982461732915546230103067030893178321720621376012892325419609742347161791390294614909661536126865623879108102270312316040703651424228663193789163923373120546978995302956551000887068459584588296661798470823754740563738613883591998732005342292264614691179282338609796612013618460308824434654819937551232999023748339057084189622365577230545910473414686494737140038656036928468693617220960670951365972219870750424327736527055263890065511943925875452563597903754315940792581310717300990643854962982319890520726800752013050519953906314715770802583787502507040227688502218278659442729628257325484353493665841059405109755229335701581204192036649741009449499759017738315551821767271883763680831571475760329674058301997630529490242857458668890261662187189682511224190465208630495358055767418123657946125056518384555652430547165952190200736077580102299443335287016463461276407010053490276773806172203329443410649906884074575972896230715826033944818866813827222546081793191862249849724338635421024578335967714271902327939369453130464192275776567073294050923372893658563760226519465425258992989405062258228832939802630146354532446492017106184054638027504177613159566169921944138947620649451372655285924819641706138549518354330240791712121822404059482621789662749390157346192102515144497475460117414860202403051389099322166700899510035809793514587776697580912557885438016689140215472388219817709784826493454450566988664848523210885624666008104775690554372938206728431627756201839356712955665501237712997870337667084943259699323685938064673559363421713139851227571847444932542794711055188573694960709759209561234881209058600344483651396598826241580229205282163000823270490714626112966037620092594719651660386005649676534399224843450024836167888733213491643464557512324388476969482989806153130820019901099841095553650274735046399406318243926781609769929094724880468863314068378178581105440663690320916599218202748065536876561758457575578480696873700233669707466149084974674178217823439989464486690917294841295125800474682713453160733475804805130378479744819374845572610456390501139118470655046017197857267358738536141371355515941552234285081246269494947343134821558862409333928565841233224951000637074320707419928281877912678266055793766696022651255816046402356043219166024979970831500348310037140444637661852227129080773199001189742837583367829824779613250295837138227148972898601784781817331050314942568874429013257844360341466754135333116196332380844046609449874636455716725021747272327009962472275308998882571471619765802823545461560453241566866694351570259328556807378476591602481246240459864146936933519171364115375877324611894152995621686395203450028838986175318962653317384711082977692393579400990653417486073616764053239986138589339390898747183098904483788381721352219232666889475186579037209778766255000829316237414052157601882460292344951754640806451841696493821647868396576643772464333906578322354573871936675076082995146471183635384814958081194474727734121208674487888187895540086825144287489941674994793816085366559874408912574847058472953776399535685621236311669321366522125165699248744122662599488748265168110534141508797795709223858547296515562086496117372752164696386085316370111140519845184476679901221029304719095337433984796937157683815676795096288613566817834632473067390922491028147519288661192478010167119219913996891905367990821842613413427706970398940780896032234188429013429366266827274589423538073150192384569397514699467073407954686687128120992062940548131662150020807824168737606967032693318040354076585320509398861476523549746427286109391929490304315120888017175126038373445697171798497831956944776181486775213096327211436349953314102221717809793053813871962236120787978245044552557465056250506408011955392979043270420083471196961392472396956114654008195162351635659511507153123717668378643948787295627299720516503824262819944363023437468153997358534923122885203325835708553540627848143671943973313576632260115833614209995884792212305016467740116209700329947429960232574304237054501671707923287707083731158460452138287507378926072523323296546475343237205145254293661951348932343253130761882627563174077068165569858885643821809884312405879862403644067761495004099139516161480682558855697808119538126136594822961972330265409947168247362832485257683718930799067298553720521102005570803785412938755458106038990651648623631104985178989080407969317176549525101913857505034281435052808081067713042936256307764926942124497927360640818212513921874336754091850679186317636422174836861234597339172788749052943984360748927561862415229028913276852481860243362519746527910357409285076862088639197839941885354205873237541715904771431362794345537771240887420540849709836768413194097689911199809246904782425305343786945403261649852962106322450461848353698392819827648550712167974148177417939402067021584211165136788522792068392217957296657974715202546715938925792471385351384071668119556470037162511950267598283385924548729819109019848504575009278299900725126253242650617709556758207002607481027973541013475099167511901113878814412260281599570977624318689075886251594700178221128273600510734331094217806266098163486836202706576613367893936963833635070045578471841747906055929382412435231299995038675373052216290774271612569951489367408084612310774847029460557554176345506928155055910902227099275200616752925073684932124246557249625166892256185174893403779531349324631596331386299625156766684038801520657838922041387394423537429068611081885548795048665637084964002474501367910070376717698830160397888986948748098797013724350413163811920547151051001810924216403619685511574910002768242725888652439749623756218872560248189212127145669015402639223998814667895247460103171856144797348586048376200478725730697099068377349205652655735026370426728275827541788938544569067817836269048856118205965691729668107698767107257373903324759917244692294737547652284757634875930496685413585590517245119910701904976383418927801864947708585445959464129578217212508065660260393499645727117503769052552561121765265948990104240615830390652830570692308033445847839187576376361697680218743940903287436600922403809401212406382821833302631827566169580339040509878851060834851686884853997554117142197126659505707370342831947659750737702670646901515691313140424313830632443817646322647681810538139312134139732046491572019746260121631287962021943788075588276795999647482059128674530814484654088420505936916485854883112645422773876584288638683806324513613294120971869248401938470187398255227122477275306259377827565326645875657740069760563275238486646026248304336763424246225143344918513576828033353673346008991630135006625831762348883313325960619831834238076359511214715334587963020359848436159019108684739350544232382440643901849395670337409916970694420367503121356689618333927746133589286319078222709786445323597930941656271555843713872377882318791484726698881117997400012793248932720888362244541760516394104314142697061595499509024585725246838480566652533852037229585428194819003359635044211719426167307113777270709371979693975388019110076852238527894818676405535546861301356115536937067967227884392713732415679143784817197720929941597481180792144739236692745001022325432486605974280248424012502838756973085495872381243773046141232267068741944070787558935638123180228860226141852043240326798714829973367310698940762708046863872755709235048310495026135369509495761746558610161900239912378342832157038285914197766830249756526655081055080502248375412440721002700900147308329192528728905337702051702634857044238698342232552564567579797651306890889217386702456493433709361027391552727613469828793323082878163139955253083448841923389033304116445901045480115269101119807031770032069768179580234156922944135924053109399422953194047504697840112293976129630127443370931149044554560694140321968477588331456549986718817932510943789249818072290370859943000749156919310562082916207003521511653928618529330280573830461094343112214273236527844599736775432701468637464393206422942620937511804235550272644994689284719829663343346496239036231993489999884258590847842579272456927411281724168453744095566464992853084309442369395842366182599226927392841591131731465951086087456559771836925888971349622485743779175209437853848797313015402924288989255922233358317350640663764246074758476617653902613577070530581704752004627897421036736499168966718493439857628947556116072860708904577270851509795308790118380754116981236002973819592144577369362686428698403310726881068871053246400442038042206410907355397835476407171903141237211467386401043819450756055111628850931382474404633598446269207730703162574985330479251971803245054252747362213682714881142224813162809356198742739079255746492510548711514856892816240402213333412872218979377402875384563684199635786958590473653042414783271730709150656423319224530738359287068583546028634633490964255493207262674423493925240064360653618119003621910088537164181895264221959174696529578106139181094124334667335948876584738984582615706014057895654165373862490386693699423084797567657756222579812713915892848761195538926478420579575614300726648393326268410586860468293867618980464586366461003708418097152624596700565083024117058859084749892212137418531207199983891365656814429766449487770099866744188043669610057750856000482188750593577679143697695550708213513525526713994542948279455459399939308869236829475686916252943543544166177407562124868122415693733073887782095482523565035842617322427923831893227588344458352774628080009296837073156203614941384996472337583821098851979123305419891204235549960907952790358010193194919778887052329475929799760222215252947447260160008798012646350374520569566435841321824722172493156821992757477341236274600629640871223054417551460709747729516523061326579484757458373409905569266730907002983055152288925750219011440503449556206394406792678987638975292970598670850329678462010694280443755186401868785508739780691990654369993551259058035783622821856906656669683412751532832247044290122389082732578781721913856458278410324835433978518241755930610871608997991667579322234878677462372441164124477645102997535563552043290200480811555331331815869802748061622274065142627484183672037200962058008451296952666964204855046470317855255379652836996052544546721752273346135281453935764295488552977380545357822142584876187429090105938743084610484169758966217863245153105187118565758772704914937244831992018354464887538959023093705763003472442397298107224872159704452737618802673139531501731928049462993883753453185363069511288658511803227777221774977845775800526451316332045675095267263520173656084368887911328096721881630877047470952268473088306289826851576242338387371811599991725096330365774573470493187727775121145286104818759296009906353883982755198746228702855219023584526185679142999184341924251468772643521757891625007781883494492985417336536628152514122059636227267344447008599550059418533156233805117180693534385506300471855812859959617484709046811317486255808650521012502119792981910914792983747274072861385161446156834077903672479466018665180930910844001013530580528484842558273522060651193887650876234583401566299540189800805406142771034587237098174307584612927822854084731415098491888945717618235155996848669773713620016706413095515792348849893827350526143116031499035438691313058394149249996510598355522215640662011747444714367089006552570186810526222462333730881709750902389034777394084941419741404509206670970078652655373720210546129699968624008364988730471886319374078921647936639213913220565078780396263519828077353607517427122437657183930437310420851563223834027164605738763748989372690348421162630568152041044938480880605927337272353489246922512678889325622588617852021237671114523247931342443219920767812127726290499863218978777665321606185052553334649902403564180398164168006112422867160317383999852166560933712566657291326023503340591265153964727273775794890269392709164847157986628615093871551803720526764612855790563227225261651598146791965689069545823942521582477951111826348183696064505527057221406867293499970412862635333750172409176920931594357882387041242717883749894800884833855608518608362806127000683646198842198398210477772973362880068046220541538027836496256829791046878085600780089177786892360266821243267154905837951467135176861729168625181385832505975461009249703141915167713610631300869022131923491043528742380888331558452970336752527438667752668684438286455990536123235266791172674223303381002149440423584171047513885002463470989537099255350373752265105005479146725696880590696787081755300587216102714507972689961783988504404945191031754628527148000429190260186942146310258529904961454290890545984438348115605239848511649130932878119273129436214164416898352917540099057984447040501946667258585019001473860077161298689134787030749912841424047562124257595950595887095442570968500308281360039663502440723281874393082244107420520482595212821381716326354154875784004846586457280110591528190917788831337890102877340649689733626399783766690444826611660810271577881212434329770321202291653805768552648068899931378806408743713365828179213545721449419742023603512638157854326070159771267832315012733170820388069322525423526289987346933369194549215770978854785020395092751096210764890875035982577593531685325138642875686343133781122513137166817064846605591721934782963217261781328677447868381305658458531643869065414571587880905602967123651973239287947270619002393816271812521826814688024184948744223897707054371958226239335375228985596301719533179343394612042815690040119540130917482031927652063319806070156679246123826476017532581256869198772082162309791284693795775991475591863799825214737054510822582363855647523225203008347952071532853096251863357261276330134073865473239604773020985200307488921283108446925686346548943401218261106222208663090088288487634183931012110555609098414110519339562634288828992895825564651583956909656281216647013367355777293476474922635091078106877776204260536995448406450089024732696046912652196322211301625861263437815250248810394537623121541324295839881031735276150042511103537299684280092533935108182782262857462611326011708341859370795530267141549366076253310974958567108585501228626386709433768585709698201478638201586971567551855025742701525888819577727544535390699954303298684324477892733601479672505276396081667259794632985984101254304201323320285080364517016938208398803276638871085987151778043674891849308010611462384751651103769348699340459297617586702861360136379090815177767411722106487051293442819656525702106385448943929420240766529218694921686506725928357122316771032076825479232432021447707534716037903753737367850300386376088199713520377229336026428074643239076474558539902738943394751644594142805726655060318926291332509952607616529372247432014563869630712459834149183162803816305342851286364183699574281369396098035273987890983319704121246198401112273875383832284318151084076168865166289306372474224959563115001655284764321575898508264048389216489900556202008299708820364822894775873708637626659122470918262993835229766417685756693852833797353225830299591800494814384729586262411317509914091252733940859274297514988394006172035811348356013862025476559362650140167139299650054923368238826564225235782854354233049642640911983288080274772188627144673233573832360870538117526210180072220862206155380141457303708574386606010306442235905463615919806488676144023282959173440282580982950110516780808685134953179945770215872808982102420058980983834180330058512943582706300221616730292745407573411213844612363982323291584106289872521572606948473283120177576110133614515962017470621282427262162083587632052967422720340021826286996239937587107385858787276620932135021651566130455991184176087019454034416962028542411483754200220956161132201571093836606716082435311410151355386095884247799523454723572666564691653260054384899662896980616843391425463937010383543976960922912497275970240962223347497111584537585458605148977846756622511671469128808076394162689430689429393945300842455340297997202864062270817973741442528255266233438941067622324083830031940124074714886667709534331290617898735525560226859348988126206055869239329347768870660706942321086416419157029189858460114605160114548920088131169739977001343943021720782949349926808580035194976982802957133189330333064679198857512421392837106179151169684381864541149804922584511543668056241785559952007677091020132326060490923518119077363532337660148909075107593225654539607213193858388616982156708706088529869135437125306292220055077405478814333884469457862537836987082602595772691767923071176267282536350189452358406559732256073037600071078602369069030273799720166249057397839494102857058635561961831130538913434470556027614169376466390903526418982483261086587614127670503693156197819246097828930001105245824841543799325233420721475183870323702621147106236235824652101323755283270854662544995648012123132480052507877992529689298102442973701470986184124936984185596033511115785343079747787392018464350781873597661062056938524265549885328358241430675384270694348031158238830106425272782700221164621585446441177252922113041687763467900768543236533243467611347801474724772363543143060757676886424088059146034333451106676356522139139460001299762894941071660547952161707546682573770420040371274748227229531552419503806561007337264547001682143277167022736687702474052977368789113742921787568154485795539892022882557906515151853631108669681911518289486981576454712879133960779941923013457492157623190176866367101030765800695939214591484603494266591497497271542607889608890799276811125530347885518360456329454673769862764313268740326039401281756183419559878154797454987397952752747504039931400476631802392265191093124083255742078657520785269202649566071176466864829439475111570866805385619429232124672127210199427954013598365925659769435772220292372403559773011922619418737361531350694680480920112333452551157035170456402073242975328844570515896980292966198726916966222891108944546911977115100357665946100030711169369594034644480415058869400067613440283889879988512046820275155010675148164315031198488542332446931141608674743299239173109883998314352601356193876162613035940853781273936566848435874267086677629023561706874559919486342811491032227011786731762178612615987997668474133385484730748870157542436426898739221636356925170909820804205137981026290103508507472506633921028277196572312304704365392595337772571257151420214452759300752762931113587103095361670693252906926557489076711585596829868998941763021133451195031355219703094733058360523520522968747075496918200893503298986863424489730210875902719187143175295622727270925849596673456971965887409110634501134360894871496749918137752400800450022059021069374601721333874368144413461289644677185484742695805221436981240211774162327039584163889231080239015705642811137980698827775677333807357883041065968776048726346586257829342228302291948527587522538854931167328379330858249690882826091346784091687712931710630714688711164207587124447863484713957342029262082329857055522174277118595073249457415386038406929872150704762161976513661145210416757322175981505891316289541391230205341918283675938952502581765845270185069538747911552892228999850480253693310132437606249564839202299188331591928277722340214969916202684988725743568734631017074311640826030706613567630764347301376244953126287047611197942769570168821382350273543078565285221977667973793245496735698536813319484505000029545261661458134740882004569908191275160710886653661444579060954291357718991071691869903679831194841089541260408410341821336624860531649140684412202081691588366767000352408671403477438100795751467308528632007423063501186788618117498604219608573014272916947414930749280653981243150670681635444418353439012201982472463251739468848200744292793471241394443015222976182602653060173821723187245994412562454683209361182331228767364135506025098796619113527057972665049812421937833593971395900578192394206044425381554528354807410469170250135965822542666170810098132760636678924626225643932938654188427576098351412603234832030998394324175368625717540511787050381979710343815001224897595707733817731300611821379565102774384403255142988880534483327552738735430267042328650826327673491836854665852950304245982675542786597360065915913905610339768256398785312116102786362337851724710176043060538341261222157632582085453644331004014445219773364018994183552828931753219129467042723195099244896794722921913712117104481249997986615995091698701251730667651191161379449733305851858607578636483180868649451354488038374996181162271935835971074104156653284632449874509453903742195280970115954735384349060104728719327773607290801516799052085658681618068424042963432087394694757954211257978996043030179597403884381759003237448810439430540050273815895917062204969423371021408144260699845099301629675158756475879468584313407129473411334771317635077139191112133272137159455024042011774469263574483955973156296523655956854560692816448120845826704933536109131180986972986791101025881072372887399878681128690686781622458512063463111980142508232801127232180326348851815724331422089800741636530001773060518986705324012509025208537479594291281060969404376318391807283479193602715506677545761609414435468699079458822846779592467109024948814226313728990935784408987395249702440199019097992446574225212399727190722974529507977110854522464953480743856361813146240834717970679176803812023810742980102857427559482313439333892872028965487613126679074979895439401402330046867276722781932213865738531727277727087783574604105602905360998796794201396501139672088458243617544285624064619518945617352648668390227176616181566226253567907416433437872610629707838811482250952194798857141877209982003683242519221026726942452167754014136606509542982665149607498073435222991777021691495935070464031771715769361740314208093035679686010407180104305721439607773247729163733513389868803736415030925870797141107732702771069907643683469603108715956184754372183320836977508800328459450724817940507497269775674329532319831259047270637103353927257320653818847858675033125016896899500024070735149089337726448858430594093472710772990997255885415362456048221537834135177308452292730845639086763940423092337534507122846796142526813063886386819930440987994227640738216543424032688756766485769089769672271107163595265479630458093532659868894404731105077853660938384928131219067395205721674876167878280414016629525409322306259567710678378244613536659936246768504904864142888222584648241050873890786303097599056015369389779020015132365481196985459729905407289214656611954392165997127274132364536966157731506644269490482406970952259777780205564060605188224552433495779050925172892523175055533971524841919014600349122610592043470715842847223633352701303965095056536292134749957470495510635282535232645583074780551914447314693389289219347614278123782722228180112565994200601645104237811088263929978166062554363235471574273334604129158217243990847950020256316433956118785087583222976630591455253437933636476738988671593879291783668025701628209113608305213703735302497948080068289551179669822760397894906103689233669035369897200475444920401428461659378225798827023426551398138948504361150059043616151198364301660387469713486014580225545421701438615780998248477732549153727080680651496787043981039964397826621738871927647259154501319203962189733983775328430189328722792580340183750977423847121851515237557006127525732869818259684284450977730937895146094747950726594446728701785932523191662824260626214067040222843673075786689824722380232133183880244795672651070932575041245120017923385513888806739806224107970295091672323895583920828990099805716143699647965272141123760159702151320839461257541248928011384192839174230492850012456382260756866635944464015418133444966705174895565031549575136628826846170634280617092750077433290024507904610591681202132257458923468411154527408807399946689423551449313426830109911902741902384552143930140691619679967447275451060001195288343122648619706305865349874284868154688858216866299402461032002736127171071913200320402996608002075909258558644220208181059577126866976099096014252632177616448301181185277166675280458571075079657922069577813794572398870724621099124852782709335024929848055791221162657524975078835002748030788481678102120022994612861964007951318578576595512610384781715421807866515998526128802573843905812019336177263988179087454701302285096091002604787836444844038610402725394973429221297140510071228417997449741116925224872574585132656579935701346057189969276252057697061109788038631368269320790645005013069886389568902743094734520076418712494798951833950767797223799970321181771979484845643396200327633406026715279517549122238282786537424000532882179460372092459817508777514061825980249697012946459552419618684138920525874715823350629501806137883319069337834548617907576231802886279642482830829749928334407109119498740538610503267953681797734515977860439513406823356194328430302040956302083883333953163241986805264400776515538592815059529454551972399587025985729192806908718391602611473411321947275713247627493287159493828745724514891829904079764521899064034725920773033922779168533031282996430577668409270019279201910567899595147680050008708862185918214739681219383277873957725709537433277984501916484983569509315500237473388487504980115673906108166444508643154739128015743087142978785652512488447731737694775968307038831693968071592853245618329771208566219491942683072038060478256087475383370986462086940098490013088132332334857360615557827974980481294333230749069976285858811440148973821813907288116154285969904424771125779700952067028102172177911835884271421431321987810158121667247365456239562678424888375783734373597628280416123869218659028755732526476997625796405870901262718752481791132104171309237981989790619674697728654993275246995880678939555075028609152880439152843573025778775652137634090547473895064297251865414666225018451908824159505540136634967671825416134558187085746841162000980968372818625659043516826654545645198438253803616506245095448787065969981970294183671913028249085020499652790344866707178061916636212397566333267171490373960223560639647212572919266534570490878677148219469318504006404117824485578394121884643816464530360657688616550236394066946873553109314128305625185198493517055954560998824380606516776166517111594428829664686037585085159142758708807621013360324424354769222460692799308867644885220624833030849172061282134533894692236791949160901880257247767764543805170495788015718588834776672031160782079906583753884831775262510606853179114332774139782229304049419426452285443161894820282707234264175186280635963736899044010965004393444246993289347338881600589972069543877776130528936977912444073158536160626317672451766511411796234748376973391112548801896479631899309233012882120866945126794224858303405716594560130443072277319663211875620685343995606751564685587289031469490843440741351703692953234757402038781064839913133132611905405789834673791918015070073964127298196263049446332138370345624988964542445683110464535970118265158209881436128350023841393496957537895044328837855294303261244390002558978186831017957040450516027757645986699863370264197637356455048082316535599036598066447714592523602864473704656789570506284893797261895541067925558539550803185615500684182626210569439890748327923407705104863922454041515354577958423242186427555017995751065223297618756350693082788571223731882462881946163253620094137601285734059355622035552951008777067656559923883653899550895251792056855625551715930570659512028149874112331984719225706059199533692831039219826945918584960427141399069684246722909702255798723677300001453983920010127813671005821798030404997699609553992114407095275245656756135070901976084140799884069001882242238460339860013592584403830821524932031828905199796038634666135887971617730266258215698635213459395649866047079218793276323573530468587772797903554483035326574415512893098842613288876647419030139659465263534884071098537711697642712437092190107426994386402569784879170746549272145868277951070417289220704679734981047050539707653205818454200088896693747100278834605189093695000689471717172141489674084158148698756366658428867169186519188795321651199240425714883338987818993518723068378140295002171857019988933469277945816639107219924913281192139575733426563071566089821079169975478058714913546450068271465694807240126346718923851964173811559721994616187593560362745214835938211405775591714074312410118432463697118243130658796646562018220201228123385234882044371522699530451535054198272851058629418546063559407557884639769206807720064766031359585534177489549610769167626244794742274013546456869938912292282205713216656965962219448316067895546407699546135030957700528892601977082854841846832033210158680556146019481440969117205874590861649609740039543810900219976732704196384888492181072486355651998301519949149746777157591765417818542145649591844019919174338948376380887271946737177528183536436116987455247145294118221197632927049927055173136962798967283629648137694559302616561849299033517052394935169981381795085517393483111930996435100031449080183489329568907209698658810438071618724987503690452463063650846019769288507385609193985101670383089681318086426254231786883248667784391217366965362487031290513775918027075864547360317293818171499700865921772550416440159597625467122425944581345999341737026951636634357714316456130909514804597753084209413204224066299208441843504005447962564630646398521676911534126782876769990306222990242634844260159729502288587957632726269201000932495388559999316380334759018142205074138309352867870404817603805329159313569652958017114647751706357534919040325715251627731629847269540093114358994878023382420137694538365298707392593401642670124054386984363174611371918493998373058786781402951733989863969375196247452208487451787311917221968065835388538221505034384599841608187202284588655305164232832759850709256810553504164605220234604343151619395218644324100724517295184033414782966608735473338399581269552298609985748346316334982480775566080798964461653873721385993817756843395509171924017448885547831120610985973772387273737295522687709938250635879387442535258221674066985194166546803412006555311913148189357293496614720411314078471130865258417995110665652797098541929891050913771625925956960352170413863471187829741799667014440913799732182557647996004500827049142856768650975260350219827474802726880297027156975996549383158535712810334853370175657888341926633442542166326041935577307080379028871866585691536631006995386065021610988361032360509209301888792626035430045160258582190767918904461020079308314738457678403178453793079257215418552566399788046308316349038330751966879381069313340319157513164687114499145800227139601279983160426632632508043066621643182907058131240692921125423541974467235435601932119766310696221208073719394382225619070151683093772315899762241969696022371957139279389074222410409469267792807384755627164681821464528646913059630020050694692493691594020239942859876662093311974222690683871828934624496051167302108721134035819082828186877626758637326550607342077715421295840271216189565704848823811561909853053194289348725271111388225506552498351904846199169030566017192779785929822065017640161087285409095698557301224104194217510100395607250507662300728050132777191666253176741642933966121841553111142794203067169795403862127826492401313690516897225277442160303028532505722536326172673253084227883090992695725213032562190631178938244987827236147257205128350540694924471074392764545568378630902032578284767668268730433254985502748864820315276211216153928400091222277954007560764947770805883722024686409053012617905121220249332185924152650843972401830860931657156570318890527166814450154174571914283559199313704676911884767552257952238868331662426618994102660596502198826017940899920412713319139656916564339468643998956620911190830223885003619675317992737386349313660213094039415062715725137735959679041758322127485703125315537773441176898426032684346447188604434602730401105103105421204134163356197797702110286492931043107974821982961988093169989159609618015701872078689453803475409830377648278043029447648342243427212900066780875588747900673139972891624032863616666929368642737940871195832646392516985133989301963907851621607067162417620945094806966649357879017612993573980941789594184505154147882880034208976357635530945361564174238501976188129346783549765868133991225097643628103485594895452426948685994056571188187954661745346419840399787030472781481396072720482569469153641683923291945876025189550875245151441035176342721344217135937327841215230480270348020017517588558746313819072970175775471576890940919975859114562768520306370081152781015229141459523781104564260547423220377985148762435718595834662829278651831129451266800927520746431322754122000493099357415271980693588661712200748926143072589711673319228427408916032144106794221505574459642242072291466909603147149585054878981352251333670586093673459404459682589365896167874002553540855310782815061963707820377890018033976519152802811875665531356087507968497530528609286039846787294943273068158455496538666721198169757028806925186994530369042835263466808282842448659804553578672952612857294173332226931136031054809001357031563345575432999797333825258048965071324383248826967417041558584442705016283523096222992797661881675564459022533517378880885712479983477737788496884549156469648630193204455094437040977587152363557697512438371578647636756155478354853212850154426924549776719083345894496093081911096924406760593297601391765450989262737394395330879487569000494531359436489736325244869823811591212694047815531925263897701573053951260022370289918035273661054474146494610674837189310556341365114847478259549961441707744966152107318624734927742806046250372376835093896046454526514239691828495271114521241118409246014090422533565532268904594468283353413876541646636244164631108932190624648706903979142137488192462827996930977743565051747349748661581548576605065988050564248816581767111557038839627770458573199285444483694009433772043016133129484104370642511785355529614547781290183597333734067529523120872433105932183908381881003285789428947602011180818010299688331305979573955687287897376089020931229720604234819390625966439521596188147627456208311572473982377301204529105418051549451889393924207735072937004938610734009023610497453747754065048946772063318024795140221175744883606655949033954566136600920427977841175171719045743694163094587976473710401069103774528109976847008964986891040628448705739629787136693421177115226888123314373898777250578492199622196116055815919343547254324862633886180475609665708071081747154534291659254808002335787902962630262505348317840089082527837050933882952275462188890537321674780850481029573866305568003070770905316989634931879150487853320547444320913171874325071511317140651564477809459703614657421052561918159675305363967304241929911794766570043458916556606043230460296636665157851909414264850275695001788338187118387141831969339703589095040269843012475198702086612537472757621766294773527430492120344492414444841129340160105960580605549116794853154653763495670276489516853984075310926932636455267496734166559429265017601085823588593679338270120740974031133668641837752730083453457247088524873671865537395737565054825112279306126692726781621465476234687980220410786337075302562945150067592812659347725723149376108216651547732705903045350953922867226645295819233955931177256657382719882194461417669640557631966689064096598360836909678710260834758301767486646877671675000151984038327313002187243378570027528431626391538798293067233334085644433600844690146477117915145772057621870702280680580454036791710281197703297952895125290543465450750806103051922526652345423220536156788865317203674876120879038056266511475575312688046532402805419595282512232975548059631764238689674342246328844606305538049815558387722554445890868400677590359795715652599804819793545993599733489499081288146498816818076721091068404090261912573998585627639861415469523428223116134398742585895781041626399831392648718224472464478332727920810861149615959424420011882166831025020479467610179079766030530498655001185722813109563415541570924950972029151863826207210286404476649867700048969749773907476676620010584793268976387549565661354441115068234020213649493993933052159014798347565227318602332823377742574441752811131535030113852192386971098936535638744817931968335190385475146435787381178799220161377624767571395356678151298672950499211970387379689382939176377700177382110725473478063713535242547554690440865487705757018467365413558431207077940938868679776647050783730026566499478931231692709433826115896814291152052813914502541112516858293086041303817465072947799596563711928236603115855044107135117990243378800121177286838698049376924590312655698859477594722290821483155201393593939901005751665252282793727853429579790560535397220700378109923710019675270649999236202250726325939869967482914200027490249446550410581340079344939610815912064836040699896692594071373622752928396596797163574497626191637461354429519270555838770904572745017582317975353154435959669164851071451892400276060366064274906742295063254349560911519580962503757127561252125682383599137685848715436098201581625895333078284325257227389557677538927622452389224205564957968447457926880496787642763526609235636507675396152796985072528454106482712965312679590595211096740253810538346794705977149071748717791258202317421834388103840820935455564161934238770493353544058287991185478343334585992972027807311787638845435536142943852939894064099819806423631048030455336766593779159599565789468745072806500286602135586117947757875108358356416995833924975434924074934987362154386617832866422915261932675784976116045678666248908094587756360610629343041978967885209391551652132864471832265990508547039197179011178346572844026032177262158193180350815435152849925056556442689752226799495020523844225299815924333595064969080429504446104974242264646861463187971157815364910475039888514231136824685391712991403260942309921450007771800597621248221064928602399883081570287509917373929329425837711263037717943095209045986884431194060584424688376062497136587374779953543665179312688924981268865390796019454873804847710319908356039557164683098613027220194673031748756446268825669379485882205444907745714885719978883385559849482689300524981659352399471815185265926150721232478268196741114402273503382823707764275515718200832971263328046620460186043270395722124800594120996360687954997858468132838295186268930598986839030745346486795042632967689152171174616312745441564813586942927436661955825149485692727692922405044751605031463157568772295879934964109036917554746978315472255006561002494287954003077743651707167586898443676487634094787315816380800985848417835917533047167086157296107451869297538348271147127833559481331848886943657668117227123335842918044329789285915078071443059298325347860938195144227785958025957236813183613655133776394224464904339015830743330830003849051404563256051074465105537658763827586751042830248234012448124193033355414413823272720342647228898481278258421008124555533342870868960280140981329920639701695899662376588934990289668367184157007339451073675710992027450195459795974053348571268143607966351449322258467804012230653434357779683414030826641336450704526346493776350836409195052445854750274192534019226127235055522318553247761955513987688189997512801070494455063953507951115292970892322250032494982531305324674400335392449112392553669793644499986218714727860685612204944285371622216295199327019673806350339655426699389573901260950937084419899869098549484905033651804626269529114160441405024384804112700987929150501454413839368469021242576209876630197052979138891832209115008576126763715535617245941195174908069295856650296713321181933269328261391290164483751933136794965553485368420722620526712039391731145499305005688920302528713186684949720226220257440953595183367304572319203106371458179979206409614546417624193394936075516227300100962938931152417316978186384945559898048047406000091377918005657373833727748853148712755976082633294665329076827422995466550796073940527550933435601935479934782189393841229594062038375009669789565187120466480426306223789859592444316817356223921276436272418869759361267317639327402886658611580997832394976510241414851736579946273163830384346225891129284775347258764382966964822201140099442902244145353286811320719947250921810060591244643522773631189291396175399353262086467245056413211377067735475156534765558036780607946712274666510839940275641142132160043194019860972668941821222480258749947579657379019173625158576903080078620719444500409657979921541484671915299274048602501969073707864561545279862608597161393020678059374789365882722331361149621922745024781123103148309180634939002501374427531628621528933394093959463913061257344177283535744674895006688839783708315902048085179467046708299689049338355824635288394987932654329449812565686678592768024355070461801387111452836440658789051090133771951576980529051610554016585981994771971616593802038040978099250651423984748147887489248781909523930513865881626400534768287545081700929637714808966454198123740229517404803493940545265473958790945902574483314790982669882813705936601214597174168867583508233104972514230943048346768370364406297409727520648352306687328951262313512808998456192688790272382818490017880201915199946951101128435328243975383865531867528464908169675907300486137700189997128933250072407388817731467844559018677933912631478589256340415756633005413770698827512832351624522585994480234633168485765393594884218372048003928323537715676034093958773400664763096747824838587848498800068514793263014843259786457844775607094111215582912109231352309987169524336033164442085515865402065620142998384196428803881640239601620759782520833840540778223770048750053415683192261901862999605099631261505785827212157867320667378347871545233765557180712013437874801121284934384749739362129988958152217256757648888648779867151964664601701230693513503981322542741528007556858670492232836047949216057911991058072188955695167585227826954010133714285556662308794776235458355145675145557860700454716860643233889573469707966033842184756533708925811023831334002045882463939651384756412583802683514412722042784070022781154765530090262844899765032443223028086756221722900380443939935188159969017319068051385547366208866669725243533952874480042285758918328655543828369138743198795044684972984842149490544894157698506575569659808215214520751854464783862774987502747366819454865256337059639963159200155262204226911605848135266416359135906874100166118930953590157975771078679809657113800067791225494389472986940217973027337859000382844566271386882111368057769766760411427523660397323152614276039458334326432258137140277544403066812455210761552401997933152106377581175747983196148049051711838779363443161364253752348878207173106934168392537596077413244009273332808881034643304539942210637710108281255811212996933312401920649852155523455327235608112604871613980659484568116379623639638494211876427164318562574986137671128078349845189433050849472183539343988874468972765577658262563997250861256336519090332327221190440512744154329789837157948596643481227616660104338993277914864030636893781151732290533344390119894092271451297538178072938230114262860366241231477205486824737251266015043629386618976167656191806096092415731592872796406723913817845239778577592644420210899131176081670709618646268655811927882982854584176969261480012367634733455523236984517209385777115934000735336160361185895957162454895398797935202357426302419866298978109020513442611267133021910640072048955498994538137425186020148816760782512230688449008242966576120727569906788309063133929026932867150668317762406094318889679411511179175755662245306206813587137673255145579252558504684260472858109275511280441721328435265747617942053869813920361511067709202098750600070125047387244253003059214163388008317259272880291657790297111387598179161707881813902895955716127780766421868967970108936857287544359713494606158148963674277168372614412776691286090572185272171149550860196625530971639592416992146607139583555590790082333832520838030302489184788788288242876327659065233324253374345635094439190013825118316608538841416237443867673237819070249097611497226497497421525120790151136855857954038930098024746801325742047657467303707684353963881963150413011796220567910433394453793600392742785045882410004758011025275624552972232644126160909019765266357899921363022612235529462996237533110537000540280827199811545057097295679725702017256464123775568040108945542042469728168750518957170570719416856151773226799503061386442223084433159101306004102617883414533470532641484871869357011687025284589303854729734246676829745920473875028461888772154371141211579999975074895184939454681557219782153181507477813234092367145478949842563600201856819278027795194601443306723188728308322190613232535004868307498370896824702854814792958607414903721975373751392517819655805595287085307039733884698339199732427630635943365335165800333001047517590874679878527848654863947940606553161754923854582271509543779337694749267580362168952792614917049439269669633176818760527663415875917880508754065762328856545148701955643551092830030122186119258993743355277992174054304146237162559038102037097028731990249041633340043356168492111822802249367379485578760677008499944589401224160533109531652423038585602574492103869045648765306953115749443687952483038943707709905275032538275397480618951180324067423255911249225085723712062575817282315471463194735739934482896974987643516061462155147157050979217560748737329985688399593502523892582324980705905017325823104201356014712181651253397260038638172894409493465325340832685401282652064423405025918227374765431939218786082441083393822409479599028963669655503329561917490994425776620945118968471234401847925862185786951721631496152189770650404696791070881809622688795191261117748338336002994612388746721025305059575101306742412551496359515743419073091371683644130049503224538371171660232369581740147377229492813324304275961457819847918241372808347699612822584574080601880580726525416323360559474261941972765487368869415842927598673988230938960894953300682088958523351924672595627871697160264432941077948654442384088120166845334082250161136976852544151074376935189369884652108232543454111217611453952988941581680941791927943956749198160032435455683373564202636172278744769627217994319379862664735921013480413686156241260238299215378167481742598378488312718942371121089137297775593582469624733685248776787735602171894202647338335844003728883043335078614774432649030978631143797508735007151284774875439965576762127133292639794630357632744751578447934709032998823871000231376942304023623830385418583421155606969508533850115007574432817325481643637049346031274919197783773469354848832910763840962965598728430179132354574257591692305556417444654284344090120189837767537267385341928496920590898114729529133744176723216522451558481035879597992281286610468065141608620792632062714054816116704439727667369375399985236329999335351066166649290138389161445825037661067221195067944595374722797698394330431793979715959159779701512646071495302838392737484843064361489923570759222677287303295791853465347994689678936616920478774294730777417176035720569635289112891792419556284052936543818219431414744295441310061581440651827437341807443220553756025812550921331922151625476510357550711025344366544657831269043327305603898759828744695502679214541330987420772200284387007193160913780064273844365649295748847953600555998566607009659777083860948643304218382712766676031904883031863462595103647766558469672681968499798189267174292682981854254585205640352535390543205542294982805922940082062713063302546000442511845173914596677636663634326258462724432678644727168646665203496298329174084649794789914875969437463689511495139012799164937092850524140607388635803677828594746986471806005172684495056985088014865282671984000482649787643442541426189073571607846877242167466019723475177848793562439768331883940373752439414767411166518665213485225520095336009102583927658418633911075897636914689510652478858188317283215192511116128880740976884649048967544857511547022008095493990712015100173652578486348440544175881165738694360888208485076315132308559125966759693291895859291326568660264503189096562746433033876635019243605189161884327559847121520614945389773638234732113118635315729039260976844640417235314078256501255039617540183450909266867747438470170720904354469873164171855785346451934991325745906959935962481003352578950553407600108371406084407413193460038266902770292824357048009152815164809745619063063585951654432474163997349369187937161347250418461097635225359319715591030780702134476373739080797630181784448639604835946266975747662493315560133179155751515070608051261725280272282134118448331155973729215791773905669956055472245112113473832229493750010902724470539986090894165781190827567045219742687174619050248127984766987141055872793455645773081423030022599679139045220285240035521415410472045113054211710445583644776846895179204035658685586110967969171136925185570487319634479064018412115420678051783403963831197542368524503574222275660854535480507439355830004899231377597190738501089750097684680905831866400857390987108938920570027779455397910993368717534906939767976993648739787319308017942307456183944045312067892296162546484919493180129799933296125541675148055545348067866438490669535524429099825726357696680114714723616842819738126337044473413467364120638854396696870373740150684540058674621756433889225495954490008709190833028470579748060336502648991416759952596425178818281296138703575402364910313954986699115533702740455677899683062055992348556035489903616458115696010704961771982421817849401497455321895573777864181712316549963584077155539366417636154914372764454377443781875551279120122933672709356080196020277355527806304616289100756695091632884015492805183856505452068706811412337406390757760574854477751735903754104600654065536744371489225561549361046082375374892101433507011420208325240587349382943095540433039805082622896365755643240174611920646030899391205833351940513109883519929068080553416540289585992104668107277142154232610260841640362261394401292318021276230249401263198978156820043506114291080751248738091237856808481026635805226148964853388570884885191925949961138415848889538187471366030313084795619407849185838390789771033709253444157511363988806373149429443806146442704720495453805298536825345252115157372419492935767496020911771777610396057605653924241818256938440934267524073858742721273883344657477032236942099513478617514228773304526754835395437889659309078152589922133416566822388300632906124578926542783838355782942051690270301268153999602891959922018100308166332559408758174830095648727571161191352276882757817885112242277931346921007958029536301864910192981944844806995165882528095959696188251199473999921110394803002734691460742660428614203466257885739131844564555117809283141763495039174912152412472740532809488780076102924966581748459545870371459939438638122694863031505593033626022534890624467047641917968621821393574737933926050229885669656700942313344525192588829136294331504510363036925169006339800517585719720117944562954845156296614113496325484809181854045294582157690608294103950920170005859965465879849432173150401434969681481571755582081855504697041231135817954867579929676910434581577317545866859136552769863145156605474131943714648102127645488588305316785487586125110494546073741385953837604391770778069371947561759917387601935169919585670025586211527518087306655250830974399550151584108291759437103202334796009663814077956603964362826555967990713964320506256641221068399039451326276326883953187935077745480328419055404490766649010238404829006227161566191526148244252059026841624842283330097893754145870205385641481160282576260764091192897207172553907490716100622836714732299313896620194281340648865944200121985814746953769635949102489049727539383824497708197268082963823441701370345441943450047713066372396451458148579419720226521510755242474876666548976228999239269702832059828710124655476133719377181801305185855119719818542687916760177131632549506376406918955506243446699384883921501025659846955837236688022259918682090604373984543223285917832529221794099988762248045552042547488443847734778044834467453944353272394371769198443228349889067301123768659193550294163783170340799445319835476326994960627793609941421501529467958186924499097139474709551024039436714592262587808749566619190211131737346553824694403686932668624658503046653771121700581819093177498935056645529419866403245188111610487012898568513251555248417126678823788176623144099376229758971594191747332903319547711744303706897318457258093991988741741113378672277464416801356928003153751926440946050366029973206010899572764566841663944004193999915785019622980333523292168715726378597226337762594063722391410799996620422241486178702280720288728606224516369261418122224504888807292574285646618590742482607641154287943361440804205648940806514799340671047416198843055022240049972069435767858059440494882242569613765414556826381206392194142071170657686475040182872603699115996382103543410433048035107489197101464473900479923842964950248162314293138135008189956155263056199504471198949797424152203476131284485232104440456143300008723146536496396495429606273459312073102104340237054914780626045228162597966804103334128964942176089197299703783967287716240424630223649998835365498666289425545889396671335849337094916701146336407171748579288152625774806762452589024873627520946759851504130988784756975749766379325966864842842962824941116587336439382197600218281606559093504008772030651013363065715947666121672911337276693568598211953410252082133420638507760505149486367376117694100640268168341530086217147266993908753428284564834470319496425750124331607829684631953611409436119768020389526959236761939477861796691341693551900480861349486017219753297858715448414916091000670975981829717971946189094977966597787831563348581243971468383790847370496616774313288401422492950574771013811862139825235944758820843826998454051582449513756303394146427111539035614675589993120901942729127860513030201268075147193395107766047413893551206016772836610034369327178878410933340691870250093489009572975724705613993123410702056744570946690360037858470039161173112700253051504358638509032714661521031520409987060439420921649373819644321237976919592329215925463969239603633027732895634521239828295531170648706776199467865860840062036302165375948230347191624614669330021779323836356202200511034681788153859393219001930375185665653548756083182183815246322439781310489954030489718231457344184930271677082659746596702970580721533067124517006823309794604565738185314558821234446648197633215493780494347899498844794605611826603484811583033167760472465079042311699837332616252169651421670654928639010327890893010638745612431184699338467880663337088091405648356776040519969398981242182724160169525795228935313710982412899495448248960593140012443853854257337863823503554871166309854375746660959511988784759305783277064708645688841451565495440103788759464034543231921926892532250605335964088594480053763528921301932004743094566355212533871706223395589714940820220209258735583132492056555689426359711184580079804724673414540312277000316041096163161367617523097828811578996352870990253822488149034150158616690179018299507514569048015346596426286815071589098731827034302088954168614287532297831241261220655379124430819682713709732058236577619396404127966816754397526296400344779783126958895904939776614687979991117941109156428831064019722649448141121638303865342505587901124275241546590274789744388178343148152604025409277911265020852550274143841119948308677413089908476789009628908114844072598014748817042964711144681252983863542759821609906785620746762712361030379864516374485688593370294884580696385128068471416941097241820879946747465211516137816769833350395893847649143294807391382227486755481520884278944980340872344303771497061247398272717698408082712324660355760684665447651672143225720643857703914071629246326649707694716163969195823729604220357429720088910416389946608742472358505604797107842376240307229177734599231471077214219976532912684580505985983397943564344796074945717972107168569515763008904704099519714622098900946782447630835962344745075709970499004802996314189745702447051946210380580067364318157236649331610348618794612282332812269646976111401537389150254363843639143197798312580269956076409559076119843010456334037662190216328786583149111469316709001478051386178853956358816601789488592780576485398934546743389063464721103596428301635108579746531605036126869410306568308091923226461080740011423299448526887784841643972686461052875818437177371059397241067810138115408446868903325726196827630582488947928526980510008439056979314550437853138667095105166857005432751828810091413959859423800845433571914904562066902223875811685786606068487512544019003415763212611670280282922077871175581297709590577340187737558472797016591250219093216115912873032339438210497840342569863406312165664121833468401091512555123594161265021992490499486194663571427028508878484598033896046666141297715185694291042725803114488030944126568876050544599109511811045774175317778977783474898627482486333339890707879589863967727872176866845057140196510640186788340380996155659746164141449734746928013780950566797156372371335115548527154156614496576173719844469284713811741195703542405499382634584148634112945660400473234682181796363392324732188355661007694968524055602602493519895271201359768377571071112748447039809372489086547224601595227435985219354614513600539162985463334664743738664150657584259697302390679867614032542304896106550754841809059651564225606656185412729441004962658394773395188669351986279868519605612359933706276845861479855163521490732669353853506827261717711695273090651965918023119064951516563153268271682727456405185464466036056798579133396988116329694298216250220609036254695204069987505720714129620938946201328303869036980801833205182990492826383152684497219320737188410112796937042241393465731256152588543226728319181805415774287611848573754609808798738259605927348202938597836290655060080034691588123734134525362406773868047752185886117321734295035850888663290429792423949577382338144953332883397024996401091229804560389567123418796369927179666365152344160599141165525814728607574051746661102360382521024164527074839849948071081188096469369069305254983658874312724173388177836001434117515967595949264023391623312444271730334488694491506728700222633191033313708989070856292692568220894176030197167214759805369200403592818720035710056749603731911656803544322701516353267172735288651495066763808477977551993874500987042312796078023773406021497371391094808172847379499315445745941920505775347254065217085804039985761288930098080877580616645272423404998909723397386076833407096985447354626988715279974211776178100628796157334925661479583222358264404184264404598171009593927219433234474645431760665330367297212524190710395352414207486419575303320516148657985436610980289688214454920600110236208152468259119260763455061621697267461837496834276259120630641431051959685052124901455335935720237932555861032523680107239994513156309232278342885118129521982487042016248752030014206045432345135457822148606044417847082990474568743715567130551810458110719574219336683929071542934044453983694475957514669566777483070469023026005014170388875067796674269116557486534536889543441337408259006068046274988640331614269158319099737436660230383214475675183591327633657516042513217317805106220346890981614137984044462978592672060431456003477553695323401505347223691804720464879866481581101469711398161277512080618453167607588520471563908663941693734071142064328171233366366266145254859319115804049455450303113755088207380945631202483513000615754683700305872266617968232851260023043925998601444014596063500614082664452317003272836133720218417622240529141526889647390629318657040954884798552662170586750558039671203330715459244113872591855355046669066858056928677505483669157216894858068978915564169704991554458103665853180364404941493602917392691227920589143111751921427818062154526012491686211735154875153535797963513191843066211707700468009613570752781346183487188646150310226434226857246803818865786308474802646914813642075138976256339618834710668964653523119370201449727116887184003338921199970343319525630676668915963942489416516592659905142363868136591502294396888164819902926512020596447416372309429125958572319631140584530054034787124111565625681445434297240523874741846993731385070679912829751723213528467602171874985933452681735926468735386527163816250817365026534527869218138937219986423005111035947112584998803006046444971177373473286406388641393323415000631709792657531594434700386699115059908983606394608369581739602532849627299203802078787395813844274852856182674159103266314403733209608073265127368377351344131610482613920933220916225052554768421476486410914745504223162906393344960589879361718818841238238270342267819594520181595901632354400511300331356267162906053149143364214402223282190716020205227305479824744266397819866716582222248036301505765901734109223316632070778269700335076696387896282000150521961040113662733907072296300741604336814293343187007412783637697641822294098458869289282756139794187523568889319309560993948468591316405033130550678421070653364142428693234170177749070515695075181411121932448711768034705755648144960695060194350721810371036049422858976053457086876766521944741101174032796527763769052416744221137330432230077461134207563960402549322322638547582111001518485247219769415997961709938308980899710328315913270842552340453219177220605083050485768127086650705976297003773205409452013642395433528957720636431193729411576040999463316527061923372265368154522550666718380350108170167895160698545512909651749423514550046977685230004243350411499826303838733824899587094132710760264796089549444971142014571289701898484836830822527848120803568164664160744823773241189975619815069263352148708809281211569881601041604050896399543894269859016933700206687139646226740474059876203815624217539981096276262996557143784781755947331639913357561095272123407149254640145059077654582819918812431522100374044111448398636695382662388014637114690450683829861719570736439035615907066422075031092198027224375822737589460830646626535859599572012390148292683373691860556363239416437944653770997650292072960649092189887966623781109332357253415181835090995272039869576879236022195650788342922520603474872499529219720668722312277314036300328764676415254679456522059873513856043600175713704365498929206488260087206404543447149147714517331758333224954462492749658953709901072615732486149845230187772224882877840338610057349545772946654489149562140004798603632859353833093369232710709492434700798918531307802444742481101627435777777318535214850212339008218161716133532905031754119837233771926685397645119807236302431594839058268429139207859193224995085924357220302478730615036057753157653232448927573094060667837197287707712936528104302889840610023837045934755720851192775692899178205348631362765675856940328803861805680931887612410873381995627791078347556880676092744634853007078459574281511946142277179828498946419067895169950460508122904044526472827420904226392427171565001704997453129538924067018372681809638277197375467471901822330211873686602692026321966070483796185316522200904744287354757067614560037278363743537569281897703009642392619860802386586608780528821116957223174038559164893240297640852234644667882367139260438755506459118024612312114124640125483801874812846181587271834271187464903695762358928083879307103402730567194576099696075340146409771668008511000772420521322957690899919323892502786512046968493097451811401293717314667442202121111523813134411913688874198889596378961933420605065232627251668243170908962810588352018962621928294073309653470725019530479397242641048411811054153543549132225077276680482335983581240570587241789783237193912290584285584112977674671269387617630768743883880474197175850602693793028815025181707892465319947515021235774277362366604607731812543682199636335843065645349486290545172330007890044366191592125810234652038595605847509170799610501519574721450362780390518486317372487859197836602614051093198125337006791691987738504292504945696174106948947551054974379908021968252226683173596758426784479198686739202819879672888589752520659211702299112558881125567058145848303577497568424667253788536653514869351131091347559550135867086680274275143847775686627651455633196451980462558542587585048756900828186916013580171330135867134579003689360940619998148074489157879517418589587154880143125906338416541467483631589383748595608707068967070562518395394341049692907201219321038564997349832652513686144500865474670726004709703860100336059434440053497217185724631209313144919409992082851055998070111499104710489840758070949242884508134776445641290320112009676287603791998911008061719013658207664595081280716665279894383081048051012805516488046888191979702336004431625554926829652940531999445180453552712561966648672081607172093145774026202412673082893893335570161427267323664756999458530210153923937938601089617912498425166975369337105299136086747543135155984724385597694106555642792584804675903238933946151907434791720961065978096129483540078749575446999116143507366458715341900456946202880194772223669195312659157197568016616031000429329417557357761087009534238043611138725936665163244837739927885058538782939017171423890122653039440581849766226290925918544924036700674880599255033380644621578507531325713305737476632099049860411655407901905854196464200202656644995388814967370707685765310168097176827676565913952924259051008079437512601189356370126749993093571335487603630918820354480653033504625256544566537058819258375874942888049648281735883048530611052781999422042900033440009501658239103319281447354405354629733014401341948835279596602252141867005981950615064650688987803121545472056165430145161716854786923986619195597625357849288896163996337655425871916307075452883398480219455406423884621196384050358021574490563045674121217377607523046468309151911408466066466932504606909442571475335914131029066275491682477618694508767800783240512137713132371873990758619638855529007648449988024765594746267762008553637484200205991766616744158007208434847926075285546674355439499464939714889122282662673036180807367480877473154786724778263323083598688987835489148028199148751907582040536078323558137178932693745087733109190552730644762230895022377939582161645259867285045868325143856853887711361450470198225999265722764290844841406603474791863052443712913842331837543381441788062553470230974190508730029385883309221703781947867016181026036614639284879875506450193864991257174600420162367277454031985157726738410956280136205044343779530267204278294628814584819831076203052156682762826844586681546556556209951965240643895711768341087213509868070407199141187796467210713109769670770745496885008307698950428702988727273496187979039884326682988849760182313056386538557435528426769940497037895112959544739097990192254444079768837524352184929177402613446160002690658519850503943338060176666043251407921643615932962003422832515932337252008213342687722540182826403461603243663202064370842621914499776754399506585866188700334058603970609322415554464435520879266469367602083502050328011961714439325018378012747544166954813430568113975703790956972896289833707643797310214540669679258827674252449211612149847274175934151102452135551699689399394625147696372235368817577333087588134525608535796538666363810271702489541298558367857392452419630537234460066924318972197551818237395194487135936205213249449952397187057502220246623371988353256686727761228091891798542996383806752297642323336078202893442827588146459139161759446518870716703464795539196308560989231094314087350700974103889082005783747823008742341518921485583263094287577113983345349566145336688688073986986625209713130074330836022159200104493129368181831191373494727487676754728356775406737042614183776144361495158691189934837823819046331811119228834322941716568625178566658741095950916662327233674370193979217934996766308793208451138555942199682852891397841339441482873227877844602279824511586367579528788957994606202540115835869831171072718814055640048168954743973189595713389728937985724405879785396949887899364214927972621553130229863710245780965138999163480364491829540190343034068589241443766665191985310885314572271458409581140477153114928280173450906980342895771553404286223483073132880846980073142240801005992741646618262734539752174854200769927791540016366157482942635449545887900037395294016099113789566288938529497033873707609188365588211034738766486169602775929622301057618096270504671399547286870325641736687268551081763824143057465627301914035734431547341036219006502918310633693650096508104255657633514161374125796605656491446850192460052547361456954038623616054386258010399080701539472169852049089200780378652745563292525498353490287404743179923480516491197539183296055966752712718869415505097116930927455380601962185385351703317632880458493676243871242420285219296172305049727516293591660768933652417881607760801357451577741779769991541533549954313670129670889373151898162804988809614645974675046732816405853122115602314492316780197210202237243756152001860881559957434039625485176250111333889445869195618969040281004942701581314143073182405023966384043156705467153798520093786407333470803979006674133463740759961829503940825733605313048145962943394867871342222093421619786063081878440352680123337070338514757393078453273920301746227068078167819148755074663461595243239694043548505695975496147497716439326748685247286025286543971164059651072952711728704752041876336740274124663797977512937935613775984584072855800983456566585393968930134353368201926759831332905864250106031329401099722464903316384645418425168395331011422243116656803954822435094040956341134920251702422082922017096688046059183521161293612960777410660848296834955101824181444813812807864108099175523737704506902042936911293090044627668546899945349071136933074830964111768700866872479274675151682719089121385917768333504184633761459423782713337438929846413230858507227642342628747595345971004179581712737361851668940662147584134968358475036598943461654390869966266287214845606121504196962040796373579005172306644595836927282224378827296256371826645510564054051114790961055488966235614666332669760250110206558933876069052194558070676937676626817587640488358284413172587392969686539091963731837469064241941551110792776303896215829309058992068683209611134185332471186844511375655051228630620641636564489096197425807065341389522902999011104314292789026202396009311081343925085802966626099689356678636721147532319034379596412332105803978298578453346127736311045297660535109615618874575465250682165677584220770682066040119457501111534873083975573307523873127390289283834640131003460451004237192799906301469364357078268059494710405698360252475277586652165401080504997860365412902283775682976724013426268408955559751589243410286197241044213250831692061617509689326743155584801128253898078573272227401787995522591274849453760283914749244933342841673177645751584760257397029327136260451019938852602458140003145495051780363353355053684139902658704915955033906298866440413857482695208164450724977227788938782684845367614452719821705695688591344745538709718541834905188218058627653976910240976122222757196468330912094059834057828599733399050894660884905973936362092018513243361239604384379930106939069389762203871795662528767037644800819901385146811085231017337043334841716896402397788211000113946741974060096683698724949044108367798859835410825974900436729514956736965530371593529281991248129977361587569998720200725194271566051953457533425247205054776165223477888197967659111974880364125898189163864128190376582001283058768573096559979431582136914617337294808970367624062501894329882768873310478520850152406867484908602987810109296752283527456320256807761503765531440876913993347682383845132264214532332661462311801420959840113108741116410115817201378919656996648126966281715179108424098311571616789533879956156738570989693613153132262171443180512905801314359334917638497638466439074305159990313812242650342362913253818069424853765772205365828508057857923400328583918138180892184510128422408255621936657522074905832554794622441762417103591280379176507277699934985508456929700807653677402725169512878151747246137793615898670707690190097671344325495124219107459607000834536447792624113448914644604320828083276598516651346046373668624857395648368023786139160043443445627398652589870198707004930517742410045961919026068833213777680364084568061723601282970007553354661836115808894468742576672531354697485331431303287233238684444664306233597416659428449769354268428362689244062924130924677500682677374661435747581434290456986615543497932249372061331016806917124707501716918961304986878667465669177783476279707406118250283755915755571707982100121868575276200194465325140755385238844739723048830198344344436722036644303463214123216786100337940068186512792288383965086222805000103970154558658083557887769503093115589298525424098846421676063135716044282146116378001048090953135629395080578525747170994467059460909289685202488567394715237582281291330279055070077644167176720228435490993935122732741803096404536158534787029439283192914963799115413212882746279841561759021773103364159992640896637910348106835215226194265689802743141867724388550113159963675552918512268366735079176668017054058032161500827314861501685623110511410233518163838395009467483072563480653640623856213660696926029250832993358220624792874840714610464265195081592816527013340828237126456385287158557055210356446604317301877559088157128963288287724467797606431951181975262479402284290147758700713369736820745003748912640427486522932958280189468322866641626003616894509818280673810194258970975973329446224614001417937244446627325063939983005022470271150050649321427713913635363487213876228372866611856664063590032643064417887838033525922915662993187531142282052361120072518977102548509315047573672646269017078066774914769739312793501373954728256560450225898904628849778838350355862349324324185042259665685725950568287658353172797601616493278417628808904246585451084183540575505070125040078319082724944543156947512432316645138929804362961549991250880573325792002500424819323417402335783440356793029044202778349337749254694627871432812042953187111515212987546614781736930251847884246590274083342537085457463771244293511744359320272343447258061406180100048544360586776460083066622921196923866062848080578906079685761125963254599030352505318001640205592013867258576156512522128692125685242843160205031536685167318407426904415775119866070925647142724590568784386092296954609010442508258752165166914963634880637675786470995741264647913860480418230987093953176935374068271474858978855257366555890131183979916106866321659722345985097574733464100029227606285091801211953989432705120370856824348026995404526116906284891503314836874059219754410219405768672432434922720891282785286960869728346872193410269862429516382135125650539517023709056726869637164109248703607650500577339989007697772015594500136618080438673661702707696280687292563174283604238725926719584971985554589358174971285350596776156010087363302519959463605156568629300989613782656853908705405714539088168743789115886292931964452382540495046944584476165431388805034722492357395318561263322704396081443135667309381202436086953970655685925922007577858994826487861770236297504779008016316575319729085293365511649844498951291148815563624852608173331198978076339026699837130986972139267011562552058308489602076262521278496615502638389487470099434004682479508540746015010867936284447100373490562338726062448116930846115111715045589614967489283910427808055511873378897457663784957502735237349791195199570557592273464485645592261014662663945268875211873536073779187392386780992980730738183665769779061378405601111938347903010681068835772670632299610019625337734826864759714216696767085410389540581446685328777480632800472145838274786165657775688287323978213397210856407048166159759309074827993741924701510309915532709624711568560823765761223007655962253014840548682176374768208267879529969437633693727657012685370381224427984536871184725556614703327526659841439512350492609198202719108271302156936597531266537814185436717287644241975025762446228332665109038733446235036074804728629483367287138450769691689214530689740058326692693210852670375455781424138566343938934781238077001123805361184264365516981663841795971495165529754006034757685295227510976338533916847144411992337710370296717518945162377872625448674950940192869398560586636111361557760163206685121182664884364670446070535251204066529283215822638001282456060804028655622303829785466785774260820738296206727672645967195338685177627477127069668909931073091747377839341737781989937804826411286792978809413168753287649704701092229099562603293545690927476495054446820692021273497505746461473057033932769013600864398349020980242051270171747281612334112059819975336469928134333991519206918827384444792917835349904269129189526450725879017889450703860196701893362050210191198333586760833565080553356721784638175120447644224465397329853404724451594623347983291624991366155033768224907957523280498011981781846777669386596601876960034230424783142426425933110960590876415634806323763670347903980365315871736231474658829598879941462987947660837503408182686758746533438651663778691696501040345437771262114489124795120402590454549521877390416626250306710330590996071549064955922504321202811695167935857192158998784904512240426922483049114676957682258424048786815617794823462862944569050144423505045371619261756161900034047329163236195128180529502222353392732328857929222346490492180016346955380844881844955785197543429700315092583012982509767995487287800733240193244412152908086804242163268527630322011753893530588553459581850202497699348312383451931759673063257369102185857023797246328666273928075760615632250208339329312328476917544191781817180171734126617342164082035956728121398435429270367492887910548197507169035823012488902003059427220661812571265449720403436255973024091000341224273105410558281570368114478135855140824115993006348198783989146556256925336878385793675513974087103061612616318645656329920333629140496573644404458767423784832686509333374185636940888925740768993020191669200086303061542008661796623718338455788461897612274179625920705301486460961109759222259233130954621818705897748177748263470048347718841775988863381870778338782425558385327755966038383721438895003361126237880254898839232820085245919171582619513267885278482520699647028996662307245455824589504269272987577512705195185262356130595713306261519146289912020211103790563634362711205888375587795733416490320097570889633594061418049603550958851879999390529936930822072590298961558151374183923014618003426263419364086873527557846186044470539042291985235392617767879020104954884904795053756567723866996011775669993797929192290807028290387256059932492546701800933179716552350942445527040513553362497961031580681709654480083611002208965092734371296768721587352221803856468848009820008053925706334433103935832502530273816986485856413737092166503267561073183063630645437960860363375782265927867401255510393719915435574914725585110162147910366358659025508268543128578919934504765182248470033623090921339776288666379765721741962844994817303219209053364574580466532274580203932700852255633210806755356707816169366294211968841906220666622156369928452889352286478969016640573992854923458768343979927584735006184457721714811850533363180452665852054177865109775754214554025145947005040782913277546384482960929332043493432659480703351956655991098374756285545803661232659000990484140070128413272020616395020391009584602106092205608896366560966170909520362584770538182672851522919141151603507344222209323455694476966072002924786967331699640263311860525859045870436248209817312225083492165688152097875748521859281385559712807633019291717403719255149757635349748180799747906610303862168622779002324477177568622724077985421118174320760610788828822262633383804599933048523284899207755238802578062673330690531101855044472518296985574088822677902828892586182725106480372165277281662319485353650611335859322517615063928908942310993808666945312899559652437661904980281342317332425715680088669646640913412645804679826067755494662648262358176578364890869844037732740820771250487312245516622310139011881935937942267147161603645590893081994593475054287103824306228845550841911432278442111895221652833246260279383439506370384676881965850612766225152529087782267469320834174198732158504854991122045708520143346386973561577147293510494594902659336886924733161418495913895320078085118036655847546881377931928383220540370431754117783064771971821098182379169760069571916748874005118483849985532821995784048593056368735068475944560431054263579486812280229830291343654820091921191274353636516829020577586714665281295379152778807027308827771435602739454997435219421951403445954676692069645874902928673879262071588444373630710094976141297019136470799633077267418377579553804876217471375942441189338921663492198418319505286157758313319199091582932063489887156367609512834688221141892197756628318793092047763918143400329567442357238466837828290138381760811575159463779217714377709486523468812809872885175812686424625515669853718785055177247319248445343591905334568252324578553401946822451153187203219547121076040097426160728094802584439660974985924317323844214034511606546226103555467487551401387434693905876010397523857582487051461242076711188677797238919491055394012274380420338008251621267898184402831924240206997668252532376056106123537995975991647223351340254968253701626329082460866566975804598988822582511175349599180555386054078640088673696945124985084337278388719058791656153988999910647948161427525443127262279417891496766405720205833021108554414073480824282974703777770526826012661226236008673568159302357247597627508970506979206403406644467180044700014546982197923753066422317388956800630249224967490317507505239637224360751875270540087360567316259130524086972861010425093105809403846791911996551556964981893331175190973795927448758674680972182531511896185633192874562767370547191510167776349322221518230944087958748071232441267266503780629402578954192180014589563546692257708423980813435567109328428513012891639623205505193768528258841848602589437341178063676760224510896421172345110343078365377332954937080426338780538623507589882644300551551439150571248743749111378622409466272635599733912472616151334630084137647817227212673191521873767485716926736458463738510604945003725550227089407456597990858886900948369881172649140986298232515108826387278374050180861136977773199487222613265308041882109694563349725704174424218339874184563901441781898185394270579447510431127513676583674839042222519728251399801563100193195293244459232432108231962596360346003627616005924972033510553967087109380786313897197939509279737527826290685490660860723532022040935035311140242732984538661391641500369931580941204868819932969537094021333245348133404120969029989288747772367307783946279000136928882794572392869162230278230673103213886922922182568350374048890783185638010835264137789828800941962270080475096384955092950073910115091306376248933606357572255547735773151363219653732109490301946422915885911572276276308792253977450005155902170450027764272224489847392601280552855748356905329350844157634064671199895433512465535680828978870865515027062821625512810235807929966435334485439848586610470882084181337281416938878865857098995804517611987401869925528962770333250119081454667634220559143567254909917719699001525635998607570423585471363833043181733321297280019843849560766906117711159792483952005258171744531570699120147482380672626740239796089676252619636064560921323160037900533036481874191117968058381050341534539168044543289965821777152778042239787215336837715283557373998064224416325936465860575318505784614753283487932400474496492640395616146376779776815673070806370394875466974240485089927654301864193592355768068572469480954484085013644323031552087543338500297564772208685235886012649616384544883441934287749239623989126456275195274036920368109886797291042826932515190888268788175481010652122279703983272582639314853960865852018923776673852285265210005599026753107246153672099460299453310028120275906525265081658529015182483421623298052313699839658290025822064037766712384966176945586536445219258611197939585308872473662452501287664928261433315318280245512203231430542240044842920419533438754135849839473946517662016840400214245092040135931558786513632077365403330165446350371113014695451860558528977678751576767096853164728559345087628156310457116520930758171421042434928017387100982727844215370436751697796442881225491429699942297056637854674739831192749674756897878972338474906096152502849546788312909564654088728072798085598867089240319542831721123722550910485346933293768839077679750959906862488694587830251455180862809529325114745433893704138293016331495827703633412378304355086781524014962235300974434260541598964220098813383358397172167631342746847587749733788817034746711538273370048724493840189447070426643278037433947587091708057428965394775841223972793047486299199991368335888681734869615608783351969671143035633124823222432287326247201573753666829287647200715849882559657412549244357889705243235377071020908867794615601093331200771551576129235365419458638104493609227714577743068647321858163388738339837391657541648546623901352990365286620998006558444584639504673665894957782213222655399928806079743256825718831198016837409208682661613985157706782850839273076261622662151105894470415956722973771156079212700871105581931519992759960106458781914468071028000290088121265800146761589528191710660788106342407383689773475065934062989966515867777198234169704471913724567745550625268698963184728263740524394165477451954716362163291339545620818093181583575810952150712504297842931475279777295233955702310357997576053176217560792843816406672536912519941811569940637529977975005661430273599055484378036877914981858062076898120939572464832671132044073618951602564371304170521443461912585606566269416923865250863494001834226294955675409986971063096431553052680203163398586865198947802752965591720356300010851087130319759821983525597984464816232535862199210556482135087848235678758853050340445175094201925080577353510816872445693693161382057276950686845709470579597452638135113709941748162669096754630716227776634942943505781523111800861884719104375098389490060635778246610566558677315192664788350525493677064173166350573358946736532953359896224401468517809503014150992334950043397347525456649328088403927171190122187240197191772728835315440018696330922593925953027327206918125068466822451076120794887362004547263923591922857041368463768264046250290517220266811810311945977846225022040823854952545125955241948950729572177862346761661105344331655520397548357662674166532839362487850655959288502214647493788938602227210134705227965253094600708166891935900908913507482280522108967932817263379699878162147065214865369696243070380686508848156770605693362357741286404339291145179539368342127969044891538516914340010291248554509641381542443125858365364997566652911017384384676011125068906873886485151408008548909852747173399054173170105763983026277338640227981638583137169425055407846578845543780549808133705241343837662994421178429108677218888126973997853812859374272049480635938143698783773114270740507742957433374211072152547882754938582128040269581314150932857361263553580184178714323590327985509054552473349848799856872095723692045851553175973583808514325566838014311426719457643513300722503452883148376124131802157946333761745775018566294395564605071792174292565965833513470707591180059289781377023328987323428470170977964112595114622950552905872117749982142354622913240232510395155224568657506070096741416234103014435637620983102404849757174763390330412387993982838475276146031835140184487271320318478545022607508983568200828205202119486518041893521066230818444264210117803927907248721388707260973178653002664715785463073043159764717564787887873256053013912558294403115649915485616151260422333188374512820592994472570602451925170984217789576852295916897838608541394365239534649262823794440625770415117301052404320549657531791408708113182574369361024930567555048279934203435289630793362200115682398777549584062977888704382167020884114829231369315877366283321389507060564112622989828089364993835104180700549127889068120228810071168308957707871894406667415299385620675418704570343710331955113951691374292950532365125716180289954099061257748899607011710664320370889811093612943608139721451818045443747640859795518106337332667419842797132339554309049001456904899697377084994528578411542986710470721696981193751038863709048903595955620650161970908132969460836218063485169109684402329835339006210841712375457122042738533245391705254134269140840329663638874722170964902531007849435665050217922264861296922501458022531385636764563953834542067258751889660670209306296541331919692803271405564330608139305605996027531276769104033979687115974607546967316362167691980730816421174330285978134763361837556169842470404396583442197911914293236372706442704780491525664881673936387721952657237351373756489992431822986839343528483557452754676108025398543039644502587187651586685167146582952629783123466039672519346483618620307505067334263621133745647150340488232573967269112947264962005428895439449889969821506006951002640370792709144073437655596196553819525092904841472243706149313301856068433652662331804672638484278670981011394471425306900629677793272075952330212608209899499063979789426096492438500860359526979968156856457870556249989433829246862158591938314279179465176505910415261655128211853460121624679186817841021098835924324864197071900091271108218994862382823988509572470248919018963388612060833773784249599111536109024255232417899643823593685809428798936891355217631146436268423918614610638976101579558291189041706418791234072639955069137602923807490432254767445747465818735633845800274762977843169384214915395741938737189273243186460422765450239386034288891653359891706653393009261564858060545716353473807973555576241101504520036546157246756111016909502231821937733355873187904198193674748558713305829787807986542415171927040197391260215765415538656253012327850961315368100766033507066657522786458338579962209868512315212578387479484555933083237466562740977299152516285452932476419706951672627422553720527336120989872462418617808542101829084537989831933923981928209646033910436231124858533637881957346253640790613966231343351767946736878175857491855082162859761365992671954495399414290918722300902915239636399535126896342149160796499988885850825313914162435426834534294195694617877022384560906246584489318135525084897009475673857057210337640887980886572952716734826919566743052321319512577603667081689303465280142815692148104836531380119310187439470278169842368640330112621919596435226808109610296616189491588271556387117989817702770338835583124637298789026529808868378943020749913256828192619921961584381958698628338741770998543015999338679468699000724423621638967313730589920738248175052874627304533465026072153562377054881157713900998214054667561904528552292596259612814796098848763930748748048247159633289797032498377337546398155844325783139086129142178455747484090923686069850176256433604185563625034568293721459217329169095520642765861564005307178378675645067090509764686047142904215116353005412942130356098407326561643414046905107453076193769634725731605789692001028951578930518983763805695317674593420241207820448700174049683368774467585594197205283035548740449687132609841625689502135024472287292763816469412856748576604054825935380565902285374774319842022244263060772951206922996802507939430325514722332634473097278607909239391741799256136546182710781145014968668222802786294311464292080220709963436226786142326368011317171269418298980933645674516677136913928503568258419020468903195157422296780145466172898432741266753073301784834126638643461127214552617945693528886676390872818707170786474409609303243767784681190920286758613257014811483479334907545490864898505840792943718032411412824293185663688219558013345559868874055743829663910779147766825834916794393029330463828457222643645320910024196324223598990603122378914837367587488051942602696125039428644185166299076285413912518215273972008574353122570048802577880617955649432946814560885850186478812741644653996253610148859605401517994922011749437469507889889946805173665370718288217074872476404719524850301038054047453825007692991374107150557180771932462823775676697944599897557522991492308245820398248564250792676811267543253233211701757083951982033523625669511345708584474707347155398627414486479279916862655303745271710491475840003522045928345052872589390596854613312663838546263280447494728130802505069656555326623436160741788491060025755686007299652967598622325022365817290989531602565764482946162801761217881059899422350908810976502047826819209287060847743314678069423537067681963526026470301629877938988679892308191337149461544732846501509249020201099727649859078077624163964945556567180620311759527018204860394110941363650333736589410000842334644210636029896371797857387208895160024610561052159076278426948098253094574436156013931276174741823741104508701230718405238862467525878426105985627697127246868547152694328083552748286901980010305864071515263079247618229712599065550544027403623429686402162875848554556394032200677308738516630831087778379997155382365680617549695766037999637858333777958578489021858389620613371418257344439027424303976370769597636586042079524190195019449023027313760651144002041100527159826793630411453632047033942972415461422474058951329298481053896377206643163511170014662165385605243793388339566177078779708532018138814723193856319139811386717122748951608648830878199320198736708367466217030670426828779008160718245389167123576561868795684384202852596882685953599524251664344166191704575307411857973237261252965764955966204246179921736530234704998443307494777451850310176030942313373542636700275321819476643091313097707997858700562403017606878660786584166378128745448476219816639849586236950754683126806074079786314438814515996566759793804333738669124642087265932858201785961001518031199882835185422644250486272874891216593609410196412768804129340152238920912231173229362273461862975208915255925095241030524159122891535775160789301689685531880383894280730307015959669333026736074913590155973906591892909526518328567661301585810367194271884741169950863352295886502798588431916361200939355777903083229199196931545183881760136097387887292628704386327836849290699701163946029216242685476909307723541509786331468485059801922812691910485721772396827034092116520647016654524346184488036370238510935139184536774066978496067268996025247340100395833306973697789114997280416462056631484377929635547801088116986396765720058512310112745610791468382805629680039959650568497809434370770015019429676747765475627831638416450578548958147876622120041223072020605934383562764910184273379010998650621807593742093639355333355694517509266166237165191650605714624238469265026233084588759336280048496393327349971786452734969112254689024743632032296352956043323869713819570233355495919336825041126329384036004810886153239519078346162249366915564373750256435492868217416210429586568128543579878506000795093367713751983146854680837039803642695920130060126998130499443262284623826527089387625383716382958631884198976857981523544782291072301613922672042543444411934405435106340398036532855242135978272956453784791267999445405001543971844684197763878653871968170903023141857618178470736699981741992005035561213730059766182861978101788744575979907828837511076983726388049087102688310522338237371845368620101100832784494946276048776284185218622344451547291994264596764596193240936970148225806036118494611403230275823210210943471721757274462842364883547699649868166267612133537600806221214238512470356546922769792635626641996396753735719819779286091011035197979063286516515107164181786584156055152620953955215274680664691862832638342269845946219393832700372435165695261769636896909840492462371087081308521821808418300369271071897398260239737665098584668015260670708524713847766444136183056921272320375719329650072176616912647217558495960552201644013184073554891337283570337729729562464387484275764173319578029999180673559416713764310364580799248192801536310291337133475185844786964041566697435037214440663980752366165881328392475490924428247121671745466946347287267938579587426541391265928480960879767553660989582093336053836182108078413659421533741150097085826811612196760533114245430133090257740321192218683316238118039629696654661609829252642994427157375974029040544022864357683326984901735291699812857976586969275003682822037807104284398796172703965506823882923357562625663245590295043720746357707816468015699894307613548951333530290764389109507582010714439647372776540103372120827179482516164727651232593159812255452477468889387446358052716186606626687057181269744659887039568217057498729522230015691285973392289575301131802618217537050061885640587063596763379822905782509255329420721231485113247509299460518783330864925828849881815713253952709401293646833438380270748676578357177669919498522772408324630297258962861552350781589539431914779859084689734819904536663007970929537228316420030409962591278456666332593737994726683797604865570463670813397417922619407875538062362279642882774149839854445184840138786803501211619885105192275982287802180899436278742248744049274699885241964870454553125652449226886049303444813090897976348560641027662361154756680003347213575055439799736586472356748174652563655329483335634217876834745439524437220672736699393170216990951826607312798142304693708834852946126082329717310515439502138745259671280479229523250052766504769778084085739981993965330320852154438526244342494161875651524669246843432356327072614446742828520450533568085492991735560738534337278533846964933940928352598907935267803107662157518996591165939641434712502957681057084311385671556434430771390996777449060979308607298710595208955412202370360438721587811218762635094939429995089942438510584869881256423906150365397273269269470053666345208987037654369749377311265021093324182598189780255081506558207887584061263606386178773059279066997624249421763470706796044415384342144637254453136489014386518533830118716020004226186537036247546540876877315275009701115779563339934284583107009525803788933950602197811284890171496361505312975877442310996698426066181486543772789411238257682464820929642745601851875868652064403143079019547760224552295817123616467839672190851706748046315638510316297174264983624361199497521839129469152109363414957174498899178156335743474928206959301063062703246288744898787975153870228084767841178923863301785895045651219216390553928007688869881183896116894812076936461739896269909024841431928561177271831902509715868832030573643392690422520535519982230445955053482894352957164363711408136520988621391715350642747159108056757483281759837242390209540328019165141117037155446960462310094367799059786111660428949203312131045543745391434937214363102573943695774920845736243446998657108929473787195942824175930892576759778304516673078423490062152626766060745061136251749160992584283208351203528737242415195845966666727048085758730204969078164652600627069274974974726489567203188173344792994292554406851181798692355662589230783863275132222618067464947364232617393903391275181549327146994180336861626614298649947522191986269702245843318307354992610002380074847134943276686834161874023275379774483939784807218413017599651496992913452206775236590406903144575421852860078261437984885474921894252449899089210900975052191193310952135980324076055450013781527141048824161956730011353047297424470387189955137280448388600116047777346687015132053344535273977623738138327453006818863153564336015664672623703065661068003413103823121255562734797763132024547212813765190033356317317103897966894314093252189117020677912713946015463839900868980131375606551523760652577740228388018280914755306625225740291248439975178023178216910411300301132804674244117253933530047975965121587306030692672564925148695089497288702160924495215501160890123624354333318313630685729494205313849551527637284228411354813147599680205463768614957814072060829798218140472399479656919166103823692677427330931177699331889287978555840605848595241379331273005562149136507802226782110872392794257093056224261836048184003542786584275941407838792620678228961242018731213781415373550419948069960578386006185195198332669633614366595717556387997079009584976300665699283149526625784725050481847395190401153087950379269160435360769114540414947687499361321450848543976744470664110628555358625390814668578591381163381584419277653323400956135200429720803461725352615194279928330988472680312557967979297887626845894751818937746735043737373680780713674186075879103322589779711721818600239025972208415767457192275427046520762313244888520312944753229808579849781649883502051158474197550470643839464888253066832697674763202145021426416522753586937285596896246810342130533157748952224278250356457598585237785886208287788977794058909458032572401078085828487594441552069497610814500727227761659869472409078249323917904599798838684780997420125218070406436393006389775089575849682762028197118120040837619687151959938335918077924524323677853313410008310790260491263289004613877535363265338923920957407915806016281052678315770971702694653741050087567158331329060705556648957282904000380031802016929556967731587076353157416217054152997207894445726961032500566536187711936392858157120339256494050626333889587506182307074966894344313641515752143612048994325958024827724550068239910211964772193617090237806173719336794505103801993525805992117007463474897697580163414221029511636504657573682816581535190673181603909783248784244854468087325810484088762499767026209780783635774446360004804816327314632021938805432438067962813955097780796508820407208006861540247729092667704455333496915812384832295894599935169057500731769197701970260118039218632389199135437680252374822986665697085251593722723288548502552077119944496292638110367562236463572163379457538438600288876099732026070472123076234576600193552568267426945366019064624681805708669812853143766622851258985645962887128915748487104714047736287151459318157077220061633558214467759274931902999807841356295789644221107160870848381177731808345606898109640936430046235777806418917639416045383680558550254673555078162489456311122582042029848729987579878224973689951457113943195243208999453205534006378566041538708499971764582900180568596481071511295620518239816476112913498081987920794805748905576183241604305156127100280567617140332601481113577175245353666844227184490629301094934773102957347538074974731177512698494323944199014862818822667583904722639041403803531654637894768372641905576060576796582650791862055536294064099702681402291727155850194454320766451054240774193699417817426244682229450045616223043252919812427501859837167714919647143990296403206205838970334899452222948943643612899969466605789456150060917671491973209136089079538952230045518211014665600612392918428161335896425997962020018876548988919086035626366620687098340557932947993620105707608902289815931492335141506857124959148589328899866163834147584512530672705231922095443957535617135403759113514938339219100627789349861891111570845247842523011637255102634795235118450924886637277633348245344609821252279660302479741210896109248199310005812811143871378368767160090479095287706396040640957862674474184696455469178368527015281734782907744272981660104812020647904936138349406322045349685040577554850345658174371079416308388065539179813515997941758449024309369655236790649168812603886927650632071731953178395919138850688800178207661749057494491009011211560500818977152746430480688986392441896588010977311689927002225851488695134393950571850448644417705837874667315369090435939202190516580737173760413056598735900599747187072724301039480842912377581567598798381264544108790770518332080057205765057728078235444592843080947670348437149682445210889949948845337475624326630203700048910510950936352910892324243173596029337442032090052913034426086699132038379056794413160941755326387956756700370806581149020924613319525103908197284786146117668691585549218820862772840682509120102002689562972610363076969873995608971335883373961475484692399084475579053181833746185022106149285058490344968618577937268602480967971518171200913903622870467077500106626188075571455841585077960845831730998873773093996321740414156644385371177089661940641234675308275103391072749172121861944182999568312891275597165747616985883427962450030157862108668567816543921073142390165318605384437135828744869938256194611433075175502505175641280053249190267341785036159584913429957345085956269009649919262474368574598001437921462341825748564713253182685309787365714608626137487402266281775622932799092482177083709304519964868021970232357374990141291039066221146454893728992684526429073268292967124592323252660962421729802275017837958635026605447604963271064254830147836845627584586367066415883633712154797434878654961263710420050011552180264344385870378649598306409220440400114462886007021509390893599821385788834643360571591700350896916632104935393459659096311826647716845574495825459221544551526531927338145957213597289598480056517202654661941439202427308796039207881225705116565190064847023096243003578158712489956307316900957585137188577523095385910331950297595750458112213964733828303824420288607860911783230477533766611287322317440177146499154081661349579344596543191921331748322104559842070925662612154383333053729842797307945286368854065951150465484998510279302163324039199669937648561343792168102099761296524868767699684356595761057184597190110503262144823100148611950509968106453662745725843885669851563751694177343498149535446311586989523654085131506965416387209358962174090351873307797371893112998800504091113054623467332446550900822093922927630404114941586527027090152633520076795151353223334043922215933757082275257536519493563715956103601540819426394088195049388199074555989029376955375001546624492419342510195370188808192590859286505821532457205513680462823057481121505518706426239846235914325025418749031994036375794006436951950299033171152983095409354479479926013006866193069843037542866863889864229918525660360738714238068740763697262272272027027698397625191922551948531125278221213194925803320599196774008193310487607290224625864518588090832144036561395185701382873951222878680511167832584248419420046206379045820667585477747530019511859482179535384118525585924414482518650472145040677503075459261483392220166779527666203428468523528769692927181101962195346333319792689107861178545090428471452966740626702609458804542185760297186680718037653864046643418081316439899297948961262305129830516126897619319899310984498076962617926265977020399392814183094587768245386891662385475988095307989633033274567588908039968644529350086499787713451549174996161316087299386147676374838857617600008885911355727104984876164237501047150341253215920785335178537999193378241205398907425585566920002060164655084691158827716221604340975398016563368255088500233165800941119272004591272379002506004412992041966526364079861957203216640106076779655184336092554669233590115456541951432984313393875686614458010842315389678269438484492694449202773802857430035844047815835834319603885247270539611441652036311865930505012498391812087466502025285766046505551072877212419384161960160944231757891726326502415909477805531882216932079875853721005891712058703680692918782356498200575551445133867356792127880553188420268555041738397981740930279376673403417224661945403405810976934946374603257736527804405089877881035435295963983947593196991132020386049692944888851473920777411678393106398703177159846082693153764447906283084454572334362593054374295428152332756880908685152597613481208156471459126002535920465007710727948470331256190196617372118575916902792671754679099878411852173776191618848609273120334989631109120020834103691836787573913664046562378755120953143739171285573858913997891771909373225146511405951171116768150065276480232767390125072346643430711752973798273292417173697657942291556658199056621182455339462515419438887555041158765750733406913302828590881893435640101723862987875792129460574862419055239571417253745315243060068013382848524070377787503811414549341187544650746092143259475915167674609202228141294210625716734464740803854313896205048790607141444524222539816987357034988344634183141615888298864022205655821011376005942845014583997967361303547194890511786779896857629662997776022595776783185304115808178595517591212872224467627456778542246114382472716628928711997878109389181735088614397129968811235233136882819407882058682733444919834381020412159451149463573973266377135621407026729631857595598655911428297099258001312342106568422835111273073784504335221686234664853622809687976086789291540876026698046130316115138526299258239484840703989833428037737736891599979903856296673039995310064323465153503190878836567901899746080201273375729081420508716418413002683494162251417181222293752726822128757437490692604401857556301176162950191814091413725411034305130680063667152890851384359451627765046718061713178872057580570120255212420307935184279371216040279180345211352200804523989732055338624967399633761740425789728471637618935547909013044584015572330313402345195223211985043906412583569888094527515066160706083699617154707036976949167205607943245861876834103921399603317054892233759018521300469552336875934850815377073303391260420571716944075261416241596774267049026773888330797050063600180981580024383194615158062129478084598078010986844938838242359723103482746173989878741869129350390279592884352220263318991944002771773665972191213778679701362430438787565673348848014547721275227077057123992222901758623360275639738791151397786781393174452652163813506536918170940114113328013825188145726092053936815720288923531273584187164858042307813734705132913321371306779287605834862741585026087758051806074291887504835674037944461619941922922405733775590207267969679876180432139255297726434160508318312733253914634570880176177292719698425334951594298575728827476973447453646300943714403352863335367632059140331271100101167906035767886545506461959295912910141367924411243786319224909340477591178163334839198147868310887309155688425009499867437574471319586841535005948155190596392332696233366820787823513036409387561764637717787335152591427537290594124792865956083249824493376498744364700453930450772000643470170097147806710987928833843120248969971732480704950429345624879332711276650573662150078094300164176545887443883439561883618216412095487558026765573936516170193612759408289337940990356497683412758148562325243865314460141161999301873777412636078601294090563154227646877626681023982466558755013848153161205650832970705603930111963997945483726203022113909265269163342662390929339891499805609622878872190027021472044497892462359622418186058636234546913074293289892942364423913177558317559641326965176085848246095414641970389535874648064551981130198065114453789482237515318395246060206449994050550410595131949380245576630207435826688536720521606779016331228829286423962769266177960884054703299306448320611351773127464572912882631215142499493576404138888121382726207784282889810267767390886383910447614773848993819835221958578076373461358183140422746263497122324053072196055132030924508429640965365691152090909275681077184004710492014904209781225197307063279401566087449762195286025875188615775590413652078436848589294447459662830104100193621703725904783980332493643778989915690932187363030026385768780839769825049326485168343920040219784187455588568047034078982989896161521243874906678755352285560269336826459196656171835072518576119768748458668102787809955499932268528733518760380118299795071120208082530957693931576880924423832591385784540412092974575240795604758044669335543150309391147415314602272573401315336247783211236996462657169520577300115129034792652424442279039622929589450838694311329203184961776530437906541552973559389038807545728075823632130889550851272713005119212844613548917623322633766934678439921523244159277927247896105868450425929404031346481503263184059450014618132453012647823523141299159662966630606077499665310680717252333865979249697058478882146835623617065717990093138669840204483333218727828689005733877161802085403301092214425921837517341528456963053346766495825331067171669443689332167451630531107714244619133005908782827617842455228898175077604645546860305784236619892878610387232540736915323987963973743539098810548020125051301716917685156765272298797743442579480625909519931008370596259915135633787825588285460710067774546959539344998722101209770484368821113375425724272631335829522145147075242918621038481942902739687838881336376023741532947069890414245557249455249571606725309567078124923545828247250812997598009557999771445647997492094089233414923758342491644871610057233820045149566845121523095803091501444364529593879528124284266754915783911055134450207412257872862148386257351739836706566289751061191134918202486604901634317870478210145318254977532227530272199984431400956196445270324002082779723138383710070225536283796933534016562554572665348652324446222023171603267721823387499928421755815265445615852405700935559730519358816184444835835253069682742464770460141312780645152698248005807063430284024740609952156847540162697848510130695475218129793374938179079648807087486246298669462659855863894810916705636808715704358474992349552831031858967563032011998511405511512442428824870550829272970796697600074762376441718211646798087059843187420580274534500595760230498918712583926397097435932398052303119961438421052198905893505999951783386077448118124651134660534682594696661597186494102199904073719247297395177904318712395848653308737021571195569834271134879011845236496889220215342083881028473093753316168881388744333671865029731754259515443810476132007554914557357037531146387810087748497304421981934538304219933695208268330925810367885411405247044994558702768272490850265903505284976973690908772840711785108391399087085192737667168098329020641922056441452295113548601928684980170290225333859531675254002079185286499190417082355136610125443922528151298712610109392363963424240791627067473885005094909019819271907125122027894364280843680432542722433317016029100749399126634015079831449971132737479605577333396161723619588564002654347989647773572117271508743083091633188852748046772245809855248412620389215065890997558106477826299263568143303514043624409666568093751414330422639783514777711692216885411401217787043760822690250930167237083195086435094060442752821513883200991767953182671345262017631475452593486206625627166337556138492564928954000514470049744153179604312551558470174098328498764575153297929346541664885912506638685623871263926453754823954781671156504068259058626974134843521607648672497307130038574412668811548184350649455491340806417403401083051339139450176916689059824814364199161164648172820540365806111396308024543774646937135508037376093550148667809494341077983515156159722329076671968916921102759911292006088526698958371040786285568616919015462068472530244442820109040564713046296003087062221103271907469613423759336599124106561838774723129785681581037746316412918498688560960127274018655786898387007643230891599357761221539076274009041376104803903194364032780884355689445655143228348935453688969343281921084361972503531322230423043727108157991630558615519604689574979244208975983169300932892268169901186118168294528462363364788549925098740306294779269667404345795989150670296881263677133310976677502042304120431077716301929438830223688841109355465409445659715853688833859524233658952248812598671861581633883481867305774938900902585219863402644639940885829906582753786182938338236700847993193823236770921739638361055549817741247245830119005148789620331909278444091509754617278582347810938650473093408947136368627481584378633620330582535325101576070892066504403852616846145021605574087141963277357239043093601956007954466761627615090716311113992587760326254009514227428078459494439548978257076192331360417750615121189436636905309908500203732911307640293713597833253275594526277457927058884480565594370544500998841011204697614524494213431696167984071865456604983977184430451265712872365461783851554079894871643254601509672323885175056276128598294114289227974702672142478824177017116406999439628805760822365088210037156925109972032429749425173896638231403035418221833112485888709275295744027917153729388668038224662725105173198448848862319192658156005736463168953370743072883720746027357334874484845503627794828014339971539904172973492198033422448088014496049929945532818772569534803668552405382829552332716866117093108058590246342368512299598094638301203534942839033744650637861511276732032925974104618647085373478909092868875489205433752684240845612015763312479343484973845445454239342709702114639987306362050780093558259721607317489871059816166907899132763218612674446872143460431300169175165418290371874720769074498047120527759446798576533256081467843418046228912203585316750416439907254761354121016428987533534880796515721463248568949339255007520465087590113529280131730462794886643343444850188023788562216841156713289521099270832119696786504052389314663174856827085439326865038553739305583278241758724847771760850140781108294754392542528873254404570818728684924212383500884593836002298049760567230081533884021945662829796941308334159457387469237955831623648766456152255154793298632638633621727835651408284187022053208405939459243113561226489742826630096933424909434865282268746063426949706915265675366844517708173275273380771624006300831853220924473999981471140763946166983225517657172316638371537841635320455489729785874690031007808539427234892710530131811425133657828971325397684381504468987557059269235762065745710160857532150223241920158969059744947533975067836402860181929837131305691509981873215354119151553890049399369138115113750207745472013603923180998775414375888148063582599938188238964517034504814439988405388792892786253906912803591128666485789453973520598415849415251466538085059541463381551001059056525637285010005347142587624093991146461213389489492062579897948987427749379590100629219871870221212035567997719567980820839579569007056020659697987702233754065903586852110812073742029590737019974736487472184725001068456564595271740052302013360586319452043884962573517922748347764157051796753712571358368369933535765610671633307942460047693087888143972938849988292806534908334357604837722574475734526031524543848216948087275655554662890261464588379359740995075588388569433295525761221368072901531700906252617125762314859224537631837435195775102904296041403598388350079031601095629784818229049389661742647437548897122321508562166111094808853198001777925459476541688997614222872461684675137512855409601093086198914323179891384925125736273520085337141210546225620817785679490876097479184694612304824891283000492139054833059303566222077716491912432002284623047445786477176208326745166340930725784825175652352940578865977349528620648963848084872282600305196230440394873721790785972114619975771922368075149042337045484030715849421279462916323643214636277910005838299399158624693209044345923650922849813258807680091540016929834782049448586339614416730936355626712901147344852090158086465524610039910648403340015292026071248796055100403747429219030868388429420270152599487807458549663528047368057317904148474897916023418815451181372936126876535148876192204320247921265979982184835581984341553349157682241190507331141457047257329172524435040597398529995345395399959883846373734964077573516201867672220924960920496677332795201442869453350101973890951671631491336063280189024968122978135652938354954661147829148342086330356907598262540658808976555843703237223853283783951431876499418168230991403123369342071930037181916993735297610665823193774756216303475735343560288716732200192250609583907429324865300550592093654014500940801844371488283714328212898734199172552443016017396491427796455089296459572364381028819690385947774840427957286573686110977748347299930518753270074790649357419509127198211274030321451727412119381228493521968940976785004132475999781676165071314108927881272119255758987932987055041858746997469462658997698515487956187652294642098374810267406603755620502674236663108830895098042205313914695217469251192791308530213143712769968051962231479225327058817045968835976292059601266411742376071130015556217554566627182253570137840820235511731162382798362432388993717300284349008460642658215357325238153409885299785928914556130265118698383522542914160627165020173142937923604363365524451339456394101623934704736332038599011512612128349979782782876736790675155096734914400585806304785882987676379414002968371849229823369188808618396061922566701897001245051517512378007044993545858087071664900167269463662253374163479875838292398725826317993163148847214360198742417493118724378575012744637710473840308559625525561364229444332410733688777929589887280325320563114072957182701019131252315979873865401509395968133955659784871803193603595021615707105165289100479234715534872879024687654234931718958462605623614372294634031890790384970886710640687650869482877189403447350391750016057013592784124011689835830035522995088718537380758374584722736178743201626180552712575918703976659513138179841337468338881305803001257222103114307506789109497126303796852332333394777201334690990227529817155907734942055685850973069484834348413615496746622049071497909423812170917330679114139765463348492515520102893199758810896933872075995206316232439437524301833097418787419606331452119577338670064570298636011100287642404066581546540063013053284622463748062854164340544295461944976242242817077190761820143701184790658608158664554271724626942670172482814883229746949294277747030234044672954814906459920034267856789732056956626414495433387892026814395321484639258480117846546307980326910862787126966661516569686232959417013288028871567234896380851420467006618617748347202016779103118493076491708203396019238509369493064147099226266185936946538137054567461450046720127018058061190004201137463684325952895674707177211904373309287001168301616216826280010972723942952407957797987094293779437101051961879588001873726411069937369934248500791051649742650741209235287306991433462012939868348079511134612540682659767281516337192125817091319649500741311387206744304286256013195461345698664102941669134710521001006123342973909489879774886913418549709115727799942720099835731765867563296609612807391597790819909200622165715228849793189788133648031227022979415060093990589175401805857327396027667748345549656646972409296433602469067537065617092722253007869124076470638064025244481288310626367609159466680563308012148116830123095864590188680443038416350523736073903748700465733771237031682961006968298755859359319228651361070674856058060314811266763528998012481622012576999454896725024248354374614609313190680031318552281009011000107758290708902011749670791580508733082872667489194989734796338537297352128343701564666411333003351575123134728549796894366071649769041235784686086399911175860028048288006406048299968318464055055031543101938254615846387447661298561840100994853072450098659573498002060374791145169334982756536396404859807647973506151196515433319792034318103096441269478596523703120351732272221165513006518842499433685887504308745208645760033269509619917850066068633056254659756358377566513168096224932134742631321853103768022304301884936333332172116402786036896267133436018043905462304868576519126722067756906261257436592232336106584615496328977463042581959553984331465297757773215855504589936455791512068897291971910661649866102256777514771594203220748546039914818475188167519677258918096127254052950420780599665287920489797155926598613296808943273521682099640883467384489494432060846874114532285271101157549088752348819547434941466511639014573010799932983904094664804905845252574064650544256468064900834281443800029704294485202777385810517872346210187320699844402190050444606044103792074239797690293686530629901687026041022695426254657440063338568863074063012356187239861584513228069129050725550178938288666482408918945279326290750460569611322433059449010968171101933594542597989588282582053859038707181095983671670676299679891608326316215899235174382703915686010259918471985596430575073236292709887128559793840318372565708952087092699550837661897246019573332323250202909110455995111525766776278423394735304461527965408537487981995206483273623723733435431118647439275537907045344277873300831248444082071205762820441674474085168033725405348341818052689357170455180908319158648772018043613984007323073064968855533328060755971551704834987561526806082204699497752280685789302317631320203158796587765557514783660825265104121141069117116718462684426336615635063985067068192419704815273490539508494753513874359485369917894643241695207212463016435999678305020709299522233927718037536337957441852682806861750060983280752649454914049024420708180519931678308334834493596107792274984892149167144635930017995307303721935541602827454877096019054989911180443723425410584858871598229900774012530674057904216286300845844632343970192415828925812469152757342645773957909208975603534482633092379209682775766610432633432935060827863396428061927328399995628563541536399703529594719530221082610461279018293260832503059512152717963846095346602180838054631773520192109395457309810525728891345387072831513813555884920990193026851024878286923578697967606332516242841426467145021248412879113881866424207149690401264368459384840287937559516783521288662443469193023012061884934487127319419981818793491799510323265262071362018336156917028774152343901897190755085498412850109378094112455940240935692706468826583763056838880591040597059837577757513593692033983606517985084463780551148666020716086073760202375234370546233229870198154324199316805198012801491533498859406400102347129225908205974801862934847644369416090650647146204471668447554107392798108562468697756730064044657151105527055292886826194804228398863426870181382907608930059207652107660268482127047660990027891079285373606286771537930566596899315262391165230098244601460410440045703175645793924694657008514201875704340267889289717582589815331975668868841985881733180532721311077446737320916691517650247954042814135358171648854178887953961674167288236263689015802445465990187523086643875551859132615169181030285560391484683832865738551620340592449733610180001282685032701506221928994498447347664183695753349581983152154206636087584177945015918229661887752876825881070214101288819627668060489966761806946723861353705603657202264949831696777738447643261703699747165940623211060113731829354887066219652223682905061953890147798519047521598765257881340808805343152091606386708711335101561429361374061313739645858315102011539157593649985831909385369263658298362007905850220922917220729002082287899396472411059229935225975372409558591773809952475592953025724987325831548286791819329989977303639448252297223148874860498298996119706119737228519083983170566183193316539945322429336955744074244739021097945576740732352862520752077918882734218459183921209009787734492200157671177616971322461220448299269406104733286611619537232393938726098247104202911484407224554214036326046875472676852033819297638030572370360556948410675052852305148275952287725841648195739197157152206114290319917709253396295180625882923039933458819159907496631601105634195187568830038373880853807190114705932948388564152037833682244636488836497398614449028120693193346335409135249727195011050135480646412187865334332868675190641999943046901173423731448610826477614389718356595512953879886932559163489995137643605822025438472094036942513592625677621238908575247001127364838038077208051069204055458276708675686928434392534885452097036821974529688177311623949676734197114529548910307570176327400921523311746160336905591262340812192676431271404289608464387355902373295895256301974355972135088223359320900420621438857822003310392900787053030168924345758243794112571015511512381998264552440059304146485140442397914346557463742805365425945929472267088797425032606698394806877312528730748421697250245900826951032855793327386789004326021437161384659755982904638152394805392864887015887370886483091201695615603362510423365660051470254780861911629063915927335193158633959936137880572312017607058690317897642491024318855182261550248554264085111690010529598357528592847391356445871307815110933644139264004505190990265025113320480533184499976769359900669584223351106539272694101198495640413369352643182893231553303412149012048242656078808900347331086490827109514582280960514310974010680207365767158885058067814250451267948821458817389819695506677534176225359863703018977995472344139556823646116787311976954895014379117182056723371699401763674238207293736123787469767078595839909183024435437790215066746429755026944668789022162088690385019761843782477939736348114460151721610240133725781898761746344851703976063342781295046739435450263675214040644406597913601471000477997356916164871587278280069786304716620687445685491985026470870717524517263528325180178160283235985009828868153521813553480278931749350535300649686550063094836634393238136215090012406218505102225514130745120304963434457310322845109289119106531304763194116064534004726284155534811423987790910039663019072619874970920007984715391431230159654910399966178183574759483081127011129259387140549966381554085956737023155423993243325097128482580837286239331512747851370618633047721780293351190674019197578393049295702705798820479236563394476686533787061881347811070731828723766339483002441895786040669646268206202742919679129009157055041203903186886354648427055725915251427928541182124034294376246745988879680025147243487941000202847232880418996539686153415201872936669821791659273783909925234666810171114411839616733121414420167121269715969473538898392540564614519203264633370214627872791536812351914530413212579738749231588544987137916895043488023347134448971685213945616666566740644555939943487016105328928353824317357727611534774930122327221916929607766197181507351801826747516077879987780349933351183312174413366661858546827219634671921018535869290588728079094970154573379400477764964059068736599010670444323426670973221780898809316873138497274502834157260166023764360421362120763111603557587705074052456002515935191607702170215027433751452422194112266584873102762078485259800693232854531292322935784659816571541018986041831801366423893922135011993694859409654902359129498971196978995275709071755739713250377737345735710355343331413494569442253563269863137210982708022064657201684897765909879454427542515792288231989991791038457291813169716925225752176208238348153056309005636336773649745273552356248610972195631726403207724143763127681424761635045765831183093886575228365264432336013904361966310544206292510344580827943953452130377861751292859457562471289133157932290064070666621092507412619860161377692843069576818501741273471361703849055251180748375421117114207749447564785608071845876987091911345450975578767347766689429067058201905414752990622379306551335158101844659909727996386061918451407998874988471684951291895469161201699244878563025258230676339150815435350406312540842346794265211275834180410943358633425536804149845286745331641760735779029944244165948319646532132149107494406542679037914941140462442764918569028735945088979376964148419418144479024786215880992381649258135383495116597211450966929335655142544715334104793020280302023813385456221241921618349701706647823136773936538180798995282575820136082785642580322497761701437745064001380654654190992414386957665718356357653781036405736922410582405404721036882140496631324373324363902383016840033057805069946687176096813696118296059896940592057783729001570494348659468042957933394761970917336473400184490153756634728666702459840099120139490828649102985971395936841028702454176997655039831808368805214978120245029702987323289864638298756146709388206758504383252291306930946828695955346667384706006135998598274411871283283869649467251086387664151002735110480319199573296477979993050558512718868435492351803827590991929993692256841929584936739694660522096937716893086461375329673797533951929228371456883338741682161519976974789637918445060365926378989880489547870804852020577199152223330193794002291752162041439558633916483717981212505265849115163650764813080683802892501686106698943459394107570476090832119105171463014151285319523294133469265001135692161709428056556584941280647449946601523126386384212574020822369667146150363795901213518176595024588860767131851724678757205471584613385447644048432175212662792240482907410542693240910116603511376383156478092044825740295055182341904327180554949395624537423948296504989429678061327681248950044557317081513684931818416137981447398537938273483837408983812914507185804806913272621597502514408864447742656528691342001009213404205771253120422977188823481100897039713924192026674042742656832665555239269309064558208920461923026431510574459968209513922695240178622506838544055204884506312604078211214489082691926158365976954158293295194456908825489666844622623596348658499854518096813726901816218874858418645650621179715666390810013638136286482428038428945709521353813794992810518429658714946738301106546054528685220342626720914943888891347086529840438726244792002659675620155430726186974458254648135827688006231899900025558298429173385562667832367706180515177547076367997215519216960990785306718646752277868309896460484725326255097472661821675573971403809020788924341697321998864417724191468958944352779369235047280041215772917789077976602343570929010958007506246711785933028624664858442231658181876950595583853699248444437253704723243337908588989176834035813489014132628800580519357624509225332654292804382520667345970377098854961782006091406621246914264676424224066735690050997822406877240812084613289520916809951810769341624886849954555125053991448280920913790238670745115554741069330349692648805010170672262828078637270438674639760032871136080279680772326861200648340415191419638218229463116980523102795952140865901034389060463372325480274423938832540414572452489811435071412584233509476944789963623457497563911869743249705190509644940541265265893827984383974257518277239090082074623214997958672895288875629950249901757301373902317860842617528207097446072424219000762560122204134424013972776079372064439446854209805320735034185763807653373672549602392565188434905177462147076384323313634162171103595459215268452241302012155373660825222924109553637250870156318321315598493424965915684250621143306338874512892498758891125242334071175395288527255170959594954628420711075688579618124449551555272738084729086998469317135161642990953726174936550276603740032950891185901872065533977353063123381190605203352067638023813161911787244547042041386341604039412609624795812025106357461439253218868803601812039179227344077503326725806147437023022963802651063162584797412876870052688003288625653490868826435172790089498648670575530417936340462752092352613541117049573834709773295360931687492295330900545242588751835708818214574198151122993906348858553566139888509353435892528752370340387357493875909013762576528450044862240399814647370125126816889672898823043908367950343628856838506461435050470381098909717002748211171271886532122125248719189236737164387236585768469071291189279131561044611828696976986759089309713365049940971091173046317272211652757034938348568555429770630407481784244075060717609565796188497168770267442563027376493132595273331066642452934117522806508318948962256459631173095251930650912163217024801286944715917127860060621089252627978011067702803252152454679427840003565399663482093201077522300219085167060717335320909235823230000613589964399337236935082069057941119828126897418869740972463451409338698543212227248499803794001090021574067573986005934049004112057425546318197329599627698328745499522432230822441937407753422881686474710229719454087842920645656446714478056127478557810048760577798051770189914704643651233708145680396464710846085921064655323141066483113518386961415519695259483248254156931282651425303677195561367980402745957358118800352884395465197764422230112776220645167314672854794673367312830025497946871866375478881981828183955434978174305029353952490215422666809269397215103358477630234854529743607944042840365671273047377567018133019433662084998212706992892319522881528159757676675489616927057522066601862879641494351745120039686093420791474259983775680566105710636486591170505931048626797896626822091527303492351504809509248372853750377051796893916386855774362089128599639201794402921282092657071285892109622079639965335375797885869721305666518233852622620869721456032077240326642318272917280496050910411380539771005837568021566247235757432501944336740605839670113913315819811400974509024194481048804183198514071428924640402204536075947312793837558027405459455721009869457888958353476462036226510773052167373653548253738871433314554750333145771498175118308124893315407763689958280519327396764486681066053054350531253343681310965645997477301615711316543392692402668573984396706489642714113996772088242823413459393978054291890093879418669681014801268189067980668673374491393926049925744689763006651438636921518481494308930078430367585174652151626133588833028998597713624905620197114851849266816038237481330071271987933775327701775908060899417634581172120544335259421207969444566875066755628770006249779524776246988604305668144027891910574914649512421224984987645276513629335695297466791772532025171329430455806987656806567568458636504272794835384254431703968605145983139756591190686449795469423088706288878919880087096631062183208416889286412006302139218770516942928592899623728763766759455208986981351512038586255441086487814529029197996579746396947887836403341588083995891756403322868475112834432732889807339402667460676600100747061622396772069891409057418038499158085705103222213421878803910369420165566027691370701066036069015579151101880961979367646976728861213897479511455279085218461234439584008541340299593209940236724744412684438334166292034115856072228721568199697780396374678635004535967427308230621204768901951423226691408468117542757323670423354978414514557456397065949054786793568242080594209710253491246931957559564533394318626477258832417846804030157996104216976679542025212737766266877309755051834692010898637627019608937300905800975853146185569747895172467688841468207036853728841416842054120473732180911863033734666824020488089888712368038721052587028768839626584210347147694645170220025322749938961328365070591996821400365687560179750808468333051819256425619168833826011876614295861382198828482789815138371229202094877730940185333940665879359457553683386645592954507488562611841727637439935981044148330406559733468596677998934545361751724925143168917565776660407134859116762446508379169488432948203039356811204182019944787499804412375927164514989737609213060573406455417198959756796639749532194937219467234987527758627847120850567992855375675431900002655513258387459954030272216581646631403489464905811117136729677030244898082846225379105209242136856469063986674748297307305942056045653839091774320649601731133465791866518724167154225505593281278562292031518173469817538503728615861948440857906892282823350548910319112935071764701390933084405397480098177855557200214558775469663065550613965037153345282996051331981709262367991842495522283028671928504126693830710680387426500551163910896607192726317515380003614528964039933551714675004193936002144671105438034763085396143574056588690985409972148296557996570465245758332191437801670398190392999397488793095496264102537698920356849421109774867754933019551162556001626855574152459770258054022459643270574085088964818735161545593123204569695692197155418154812045705714209753761486491623370217407627893029859562240341690104307844375121824156238281569179503036489901209552799708745714282517115038439513840253050221467159153174535152554257611189029350575000514857175377402238324303730690297845281651263993703774017219659921577722044016271046491313941363473635942634305531254979346731045244488562683472804909090267660345780520492712429349653033758753248499584324231100347385584864761068362741199136720457599017207977609957961262330582362358353826342950133844888896065052058870027205343730450297984658874503294860418920987147544969304876020431106053937980036112943464268897719188706331643526691267122180572121013797096601776374697482789962222407090678383487481011802905975887250892944502015870243838838890075189169184480151341006342091007643316846794181313104312589998388185654030033548560824899918514470748727325618359783799880455308282776114452921607596291728624236026475722358023298698689779678061037652149513745417295670776970142577194260824194409596083052235483525602035050005530120449024408884473963912651423082719334993855758229509075583964439101008532626142556833484669651706076430916846672727725070739612887724003388577611025291253455857999776623288396576140932557984433198148799100290332494129321026725853511490964457512747002292623321892336153144823958139487722713842021273197343123404522294962078351398437559462794190016280554796909168239151042713413210883961927747456878846543568018764732868666979556622896371342553613127904285599954499444270654408503780780865262159012308821811491071208680436236025626812103823604381041057938149949540617452466202768872857216842369585934408501422121588372429312386602701469898917411407057571803884060615062015770225858101121351591931484888705561378781913665796268586456686589443253710872934553330148542453997603524241033726257379918260537503046661368653394735369558497025450165294392777676732101150347536894105080756449225396796590995205219388571537678249968611072324381171137787840709625042316831342774695990012454538545685534709482647005037470828935854014804904688822459635548155840134314177892045505654713627555111483557731998957985586082372963603235625126321758450224034305651865685711052533871871453579649346001875962872119134390120330407102051352276790868471119904067355541839104836433706599901821132430663676958649679526419204358831462974287753041964264505432162114265797579367159968654772668438862192314927878677188750250684469035149050478237589809541881330702776658716759045332987109618940206845523278756853713597223251905651449687412939114879821728658663554493492760201000823979369586456047835104897406290684027063403590107086280263092156402647350778979716562220812453562010386877454662410459486979851068660693265338178455816030656670248761702031395904051873553213494928449714669842041090380211518401398768469995187453195706208205601878529588973824792564979236502232115906515103677013618090765748318698949794292574494558758700096314396300841727089785902550483220095052546274622128291232610831043419920692515099409866173716007763594315284766665879197457940114655314630431854966554035639322666269286012892350080673346049798759358079973385061113592909534097190837632486544291358281411889090532531466294043491275051014345013936909039462417082062650528703948697982969926857295059702959333964289665112350863947077469449707425239119573677257471036429101362038175346510735161829938978598445807811456349993019587532533687140409890370340665362556734418141772731867650738035985745978854082839169443965953766619329563039098155959484573181559546242264290045601265201790977942519194500184434646000561227345122051740548327629757078572861446453007079545174475191301523810692494126853408148743159496389960933423109035921715024422273161669375197498017525861070806127859122569522655921618340569569857145756846380342722276264771309240569401516444629755550125319408469863618229085702619861216827746214829117116661984232005117932066668848038102905314400400848322882337496487670947625826984569264335415923981175144896062941130514217187221996150177786870118631210913889944706066822251062939046172795835776250203497157692280567920417933853964500760689586449090172151955928079124830978730941102770072220819986669778349850209005006400526344478750748139753003897110266173990593441728626751107487850991957991088832108417470783142515190161962959157037980348546197344951717363945138936424003679987730222086591509789256898562928826755935413718198468728073980128705801780833346773171317214081947079468057901448864047923170856632031590673690466872863392869626068330204507720755729843285708998701675274844376370296239312812659683710561503462902463503086697093480768632493089263524499710432926682177226051386897705251395349049256969091516692807435535484935596076662677605493337376287928353812701117137462750578765819591628234733155478633981435346014140038594827810663788476989337519663752615085477604906028661454810559133723298216568932383700180372670224940310341792545041368400184547159229097786163849574804841260661536332962958863935195446508838825063067315595213306615181068814569246191492666119469436291561906797861158559126569985162145411351239763181023204994319836945203843140479526509699989454035113906572705292335726864850821118168267973464933582861629168334171258161375326651402644131383555924218785845996482366612573256437931696248853140951726609151335913228906193170778651301921830846819650443703260951217108736962142549022477733018487612764413097091235503335946876898177094590393213526487171075760058657081016352906012612611566979637285401506149285474259841388835504183730740209993064886438806547453205018094092108295177794929309335923477729461461832972106987093215462445684933049412645666130694496638643045068989841858233213428444994566098683102058955509305232046988178856138133755521733332846845636949026251440547518186301712829327434901412749668777203711680626727342923604991712031732127845393996868758457259456857740198426559802212658935332428804600762423316524992194921536817002471487063721833339933501506421391689286646697865497463613223078153290321503256779697715896467014213120629746126019740049055382935899723749759135298239712999334627666954840547440831683749503454269715302736869243057179263732303135783879200781358041842707106748228433966480607255722105000116615503447036766695148903287465461841130039495301462950526388200948312418544158332231400355200355338501183713037224636628591707458465435327648343918649138131974509444783035738820809754440825941708969217901286388608075847058702983948201715179916502640041061940238089162564692570793490463924676017355711080349671069381163964946803782508728435221195499513894523980808360412977326046659610707002769237602850553816719318627715147936770549797217847271142181512772922178678352869013223224097359372915528534764212116849925966707296272996608761036835376396844980625235077270624122414796290673019416662539654721246103291539966896625667604665425741183329250932633302274506026744189038332051915175264456707070104198262758408974778710377395819833931598270330602317031685334749799735920852517616034338231544605658679851965092509706950260206828094930957518961033663731837397615756659227435607076175868222805985672379600814503996799756721193663517006002813644671934516547514985970453991387660126057368270657370245589923214320451809242379547321798778984953409321329061001820698447535690293704557700781016237729876645375165356929032853049735647362453421218518323281789913690794814058727829335446190147646676187518214482623284531471270667160098557670586131977407888710818595838552576465724024732974278591200859879554425737486158024558177745151916938369278584001641824767905151267115407321219613167503258672664453893014090588876878934844299549788296108111996782904890444115869914594357603301100146996854907263020509696263770544568460254061752564627885288865900195460357782986897636952562082966348551690439495796544584387865818526676542285977379482818641472890255226810380395678679142128398824330320068158168484774024903752034519766293272944897863106357405045620389017640030851457574235236734799617031781046275996170225329827916051822467365404652337398127885129935322203373407392076291674733812342909877016444856471594722726912839648089845438805844817786445242665285496511418894644710614557090054788335097955402144297471913679619373751651572972863186382084429641705252739460618560326169100041300576120140334069569227459603413924295211327590398031406576776384828416100451416544018972684341522240418001433720022182175646899583284415714313052999005733850504960272671384970962734760151732811004851023250718025294105077602930765034541416132900261396581850968518042988022421244894348329982440283026891147077405243609659051044780349121085727711673400472421607902871990162095990706417297430686748511923050949059285495778377365677042991583126574367321703837890929723168795292325616729057003502862018200418439194213503177936065599071089862261518018781689675372346566212633780786616959157925271895568795014891302016392373955961350140819871146206384087446969904943219216270757501622277804410215090851798135785921322332659760269009058327380886121716113734611803733163001571353874491704017592830631130578535728015301722428977765816989124981860368278622515596661137312170228181552418789845904010908509816351706182678300757490597117697596050962696505539106666256790246521382508247155238447278963480255644180121428668967956715186944219731088624933952508137422149711754296042719892100299110064971165487803031163014924347517853826399527733415140077404956280842128740542245761375668001023532670587167082575487828531552157819501189817007348084684748356870273288502070354093000950692371611861421464672421678673453911564496685947943320673391801563280662883673241936859304875459448656519948884887970450957022751557169423939839380558503823941272818044065866386731595457270663712749653477376160230596810474939640128712810057684453533565689014100340273304311813166381832388194845575721272780799717124486411277281821162592478673308475823155959586198297138146448107268951857702116417494313827668242604824186120711992446807635716936950081013868692004528256512761373794401689704267971525007074274672924211280832370820018800335390513195531629087148575811603592782288162070521636332154374467029334911414557811917379059909993191654139191887605518669899280250813300922844215745141361601712567569522697573558209728238383291952471525467903958579253844871317244900985189963732573438226205874969501808081483067161929450772131038355401917823663326458781538207206758347898621988979659467851527782970493811811971024967180943189516908198818470778602714753659217837679419300082745618520462635094960784625177802811974039897826501349791200964765328727204099968246007968525365344633008254646197336875808117331085505370418548500594902322322094520799515425323848982019303343042678330687190911291150568348830190687016317526075136469337965966042449793495964539021517496867889828109203931783744572118108546276485973042816817385576059936654112663802935240192744295234219858645468645131241657228183667097813062030983917795746564409881259955075200525911377695910845740486533394527505660550251035589058557099727027596548098013323374643833577972021036560035671008509942685489580546839951737207950048918061251062943771483514580216934830801344859429938423010999050350043208904182995456850257187827742360242377909325649101134061350930753105213834609310146852486263084704764450744751969318980207413806730775599490053343261926781373690004470701658212472574518539112984475892956306770969140813528140481599027531828693994525387439501271694465923213461243149449837461222455222939664504048711308910586402577990019764864107204814147997893184458251174978285829166136496684129788587131516318495436805717271120700071617998324230346790274272073169159241630404399095409925398888608244417277115822361135951440599324523106902659626623531274875274096719847487633211717194914060586629724825055034243768838265583958069669537018203968859151891547961371011686378758675728858628345486775937602777749354590548511866432282553371938377610992084861013641200854470844267339388348275570596876882883421490998914972798987495976333239055622327243560395736031695106470222039767788010055072023985304985822980364882106611993067586915836495662064464433798127132320404825063482951684339452772983031269657641794046155713033870551380505244837596116591958200270146454804322034087551315661212528316279778277716117706409694947134456210365299881362187449066442650567000688823112451457190083600271982898429247380658042544464136214143123581515796845826133254163732948858055541816550430372886762509095889750967548926888375242889599700570874450777271583710229059517333286120697429664493303329394964650668222054313059754697613864229251088428539317869967153652827852407775758332898334051161277232903556149058797178472385581840039053005388577048011628240068212259760548906152266306594545359669989475984505451286813864610742548217863882817838664647672005674279819416943642425164425157220508224419564462420575089480269099937142950350304820547102318584114263485583823026609849884685851475143401094872852219715009573846587608743419506422200189683708832827488903551557394358620167218349658635552654917932125884546954808464801728863069122364683583961448775385111614836917934003903020452218426448994893460209182051131522004573083967453422815374119486776569505756740928108005376971012203370560079903084503393429133725217722018367517405691036410457451164230041093168910107981675583129363613818432305984286489683220779171225307529356171339258370993951302110177132392403868231382988634858471845320789875737999223296433043727061917883423012123782487315803853768555838478193562190271063171020993925895076063532305533633550040980488800679580757566436722373371779991652568335126164653879052815547654761463390989075909328391781572579922638980143062560200071408408591951255703337583741955638898406376462282476554614418091358719928624712524386824202591226203159636633104608815482660424151673589038626340897029219938214754503304855743596412554699115802894479868825054106132604465555741246054918176522014755850980839633899554051075351746185191759332057927612928272584127760715671503034043275843327041245717333864411619459136641092791808950791396213013779503980809709083939495973133131145304382575839450155112864351035891507189422592847681974874685913887951405125830101232287866320389097692544588106373441787781132431641400293370180788332965175675101598765009359623280763154711316725328001403915123689647865716913497119525470863672719908686226853994803323623965560890668567295710596690724699587022054877271240185389882641360855916984426280564691414359013441732065397940882738437769055456803278208566177250802757902237615019653107129036337054547680182530995156686665295711884819719563720515660668059405149933052514323697891440278711786178969883523621513967304878983656449999136843709270156623960252427031667726740701879610765160655683982508860805698266918486373065166727727337594761051112170635227289662915128277328428819345839931737000465099710573682735778520478654609902298781503885676334663354878518536447349303073542864538613830581086187770934282486468179062074108066132097919209659444992494605056772189135220039417879065783767040845129377444609044787218809071675402600836812345616661376495111066091205110110679650649639632373952887051438299644972496179990376424542469000430234697663251165334001546426841808877951682705486974839468434444890781027765516675392572255916646150728462776781623371351993711875548863857364198725552374145633159889593778006396927513062965096672289641182454145210505177270545012658765132497507048746243859392035632030188306538654079054754032881061861607047626005186679793549712261045387834438995476627866386982647461227955474074665988120389326484786111704682859158198889530262122410001656906841431123942763837896043633957314213143128308541346612962824650103133909376540172369670303697688991288443177378037523223152106186250274618073872445076171843198546097320066709230654482012756482487890802435436708133335106626686433865827357361960774000106773649296318807188362945637521613837873555224312722373250032232169328114884286427296223887696083898413640166246241685730533414147728753433055660876749721903412263066138495231221051721560788953996336036337802798530327263065518221764669638178614546107397869486926820124507076915234126304547823871633046827704113640619385232718648213446963526670815932090489023595451110965670441934717354995378554054339531120046509014127235264448569165355800969852457265316836151965667545949518306921819255838769017085498962338820043805802671688402769802928756874084909648121728784485805046844964401331375392137803342070381361618005889613381167617694157683707417393468622497443773965700950017635390000316826319021861154823505391843244676828928572701584968665778511164624207060888480921175689746569548299980506627053855483355306074418657923908813267231470961248532987252428260767421285490669777322353182052377403111043428106163024778283306994157210241188339611202451354306694976814614195325358525111261625037569031702034129726812984557407915457217268727114436150413234882988206976028026311257668629303460267610561422247051752393971806471203077512255046597038932422435639167111743072679349054631679103756152024121579076383774016932702562673787915327729670368821985943475964608747561964797548456638396999702273188721614794297422552458351850682363125665136692969012314887020249316937242805140955810553478754249840425842226925651576555097068508563099807496750752339937828193618132852486281809112436279893381208182067120824428660533266390496127024864409361516801615438825484141847446447189442852525223312650261113080321342908744935520967263950437306772404702592456785832671530957450900618009225505569890369306914606265467185414144227777916372569197221007109076378104020572040968257113850355829619383841066244000897074055040310772476872925974420891164623462806721679448688033504037062827567895520774887782320706994988338175833134924452333173880328907805752198750771848692367675305164934303152193378393996856697749049394654039758005586746973561269041466653661124547944682198265796627105944792862122037892063474064872233739825483182629906833687513467963374422059043950583489829118617462034670135273243262076073333932074483312884094265888862844936949627105684567836556379135500218970418333630805217074789488175847923499969436014171415362737768443160124320690699545276384613153021922699830556358977302881292644112425949526412481583201302765317321949860379567242738272505147839596562023283092427505522129471167798604002476651649059642319787055538999868105548517428615029692970570129297188454777741990859080225375521298108383054933323070355750598340704301127311023006031251857308751937135370039033236640143766065475603265834621239898825887733762854388068472061838831703145516231192766656070077943809180653331197905495807918415621380346985113395254539842139015799323192127751550473433456649120414644455363156339177199856989539643941226081686889724140415949791189449129283164190410351964880630427935860350377302748361613112923048913593667152936896183532830636338415345579469785123014832125710969951011461226266590285946007263972505541201470426094220330873642855495555645290729963101482899896390335615186390892542167496537738676985727655911833050134959118537173787071880624516111348931988865397650026332330310634948744108910289471496512149632148567844534780580853102409332530221537172967248693081247078569290213302941336094998266208456959867959635710460725259366579566411191177401279604267839188249914341309448251686142635113425220546447301098877618690013178394423287260508692829451364792408895624804238998264993343121210942983368467670895130335732789016775954338754985421529070508194147615701408985104771188672171390395122446644561513696134593426102802746635317379153809195692832060986702968804884435356870314882741832577855358979775848837220757569100704264146705620434856277702401599962967231951814512579261307421123675181566251789799743938987678985798054270116555801220548886033969237338297160792194862549772625398494701314203706440735268765698687342336538348019561057987812246496011658659814295774234795355180784157729230965232442505801628508297081492300635834525444566672134500323179111911828048175844020436425484859501992720712802059567157806545892457381513875772025498215665203050267777516593735899135382837117925088848950119215792553687967619757439672495276576762288075010611574021987105712331258152571527813248045494018806467410243665634283298213769357936881866193612720266321130718098932474991158101807143045528057700017775801887989278782255520021588706367253484818854343270006188505573476305499559703370036873875432881307357061469516345585639639705041128943511481864215953233413261811712614092820670499791160693266086844640220493491092828463567153145606184394818581600475800726997292209220058915160283689358157441950294092680189871469480255583381337847626786019935523677302755100938043828651483069247750991218760186818584618522733829567746386487738724748201143929075245735352783773446732035094931648746248229108351661722620851542848185597837404013718858620796966425379193138812960576644322626568204943947231532405284813443138771416279406279186375132786754488163566481236280895712797648404124970771894972309608213510355623107290932469405338929351390641360718597564596081785532974818802309457587461624150094290850208590318782280485093845148265617352813811856587220714367011195283037095234660115432348607927450704024967500947329483283610668354519220585520687186499884836623161067763263541918139527179460423700929270007634545026387391772270463217848004433705147749248298746597385968968284680021631215261988173774182968916145249441194603599296246627339418031300970765356521158578777063676049025595233188590446467479307248146535733853370336228996363830500486058559398246914223616017634333119080348956169731509607709417127694532230753511459215173384595792483214787738009170173831618608559569144793915139149928078567594256959866791344980473842685820796897280602625460810608918822228177015343504218336953839086170468659675312991497030458477348424231371500236234069149792379043157034352881073516796876704646185033764389049860940821091489489134169142289443809006513303988491656226351513744038330297451163749402614742021687054374782987185686409512918785825578759053775058541604647381234592193403795598678027159667894328668192301247213673796496004458144683850686957497980304267625778718450278328139243284785577963354766550543300053455210151982078425106587462717158254301267600135363226276905200964921709668074457095554995772843469537778983567754355369993881504680726442447279154825798236973128763442263126930095246749676221856319245090350125886615250041505039357007723500948759648327896488976092178274449368528939471325473528929018051280626493288433552924139902408855631209690211886546599337098836108991679990773770896348625069548927862626734875949616634663833583078754219983925767904256498069319945956687850223897942514001104846990166274772246846466203433679111117102115813711665129673253374697956377343291038039410833893103356313097571012232543686156120374795271090005906443671076790451943648412258978684234081986769748658199187512107595058229597680097966572553474703009569154137223846404056085558005948664792649118273752728198813395344716362127282722816580772616391121949723503562167863920733261559081540231384544073193910272667950937351633625392166042249084776281406539885189457030663668103151872447571486701932248129887412521294864610005041899832567709432986569772272409060308578260613670767055969205733118011140741404723929195285463029229302389447200625936943721983386000454058591395299763964881113491299275854113336348114366944354794466616773049031143705265896506940883117095843823029435959791538267980772532367714837345683878761326162847572946633485988512387824207700680295430376323073200405538125138062159118498461999160936355942178402910537938592950232254255085185659429960216905073676448963973900457212186627422429139831674422035073082605765635294644240801448399190191385094870766051437041285982074233782873615213921458059431224531617684157273465085090667281699105901485612966867769597811872252772531526521059550454228464045674482835368380637709832187175762783701255060522594369008404905036371676109657646978595940894874316448461360524472422780275681037118550208633327254419528159103371451842022696347349013310554856500225098831994343306077773949980750186031098108410678300587807830495705114266467610332587594567353306070542975229458716717051548202713370678370497802644595440775769266618768312000947300751757789199899359705635950801336886832098438514909695279690044113902112838987430528352382529303786468150047497184313571085367779721283828496319184193105717010230795720240175924462259888363155394234553860515038770182470072815489702100090352045067567700468650914875895350044606429772193412594049754350449898543548305773203457622959225383717540452471642058707642050942975017774045987165814447937592853911357470904316071700806608124149060412194440337207582986948948378727587470470106873080219930264754960987838427326214713634437771264283571066142779483566736461143219059235509881745994821493118042815617298449451300871544121495128040475212234006743609064943055321037243246509341997255440534461959819862162426782497665363691419352878752761093799511490240341211800715501860487267860044742345016296056040167530408137323000659652581712055769886225326391812390111896989401778436682944691111308834105366619044623412612244812517660373861152715339539546267660738232648948633676341525596667709061153525804271957554408838807845777482790777742424058875862497742091152101426555644534136491478685166367417096047597783893789877586167290059801400466350134005431941744885248284360385526923191126042733226410059526999235845404835876526995053046325347262793019329486194580866649828488844352479064478539696315689083886323206582089045461424554446731759883137563366339557514693588565542669537039432102623156998029601426207269330861164028392576223752525659594875024301240667948187670234955191987663680474621546044749779522330666200263757584514655911586948934290935676350253924846857162356834621621142357687838288457059826485789581765509326995230621628522704227879180121075854922433205726853504036631472714812376757137862615634453672347952478001108658482207790968009820654147245027112113075460039841775053411639677337140405161949800552806134055953291860591453541073225837654510328975681211957500090465768509213035574253719878633086250334713721696728501505766421185514868283049246806113514388339113608548850144017168660771289294151520872198231577645168424485144421498251196004494849889139838231707373664279709917666136892290966044589036338427631253294636459171209634517902316413467652065691333411303895118460004969995428488361055919030727251402348181878553040803725821863557153737867374527791691386138507116370549299877761760625208320441935854782313635636197067098676306477015797596700493576325711087828359526140458156668792104220391134696455182179338072448361784085461113969670301364618083615086353260934290953025524620975322940301334254319168587616931849748421788693085630397428556700123869561654132476242498030502697570563878787347795413121311944209998301908483971504872337451636810944824123055802549370494272838798776726770006628144790258517363335985239142795851563336586349540690559625596623477959938577607722419940912035781970783092991138891060235737095244848326294685698852718309833075891556860194126489343680105884698907605203943899315813776133178178901929494771921901069362774942856587542287764635965540049932221898814707844290250071790232578397846005502135987750733043658251764578562646701632710321592370886288067390977688517110604687184175008869390579432040364858958063850358584340023810043462620201209208906910788424792597315254556707881228252836640526048803292252271374084283621147955286707292617853798764026949749192472345581811703676194850842055673987455028720698841735379288925474669980692581092799283987979439252561800145619569706237410412971582065611773959353612646833897811747442580330193912818227414690544011666245328530756760339079628035299751455582020702047844490762706003744237077466702174814223424791261055034169256807246530560332028253595458783317213820236659804610031112827808497669183926202656672704459505729732659084032457138335627514894626346951463601584467143353199125013175653134313599756088234384591379634613617544332006866972902272076458467534222491457281831757477609172816741949061902797420260936110798842359868018333829947483744092000021979387464524321822011162862056593653992342326272089224692109519750838963838879974810397998231028195352289844532491902393232504127382664351394906479201834556228418837601887637189457530920082779025181283698828923420431081734469360397184595617580934974659190588930622862402336873433157024517672485853642863795499104690930983556911618945705019257003665416360636073792163254162379433229403365929237061310758561442711361243651924983399863419972968022479605995021361830468919981760047362428556308578668771579452733480878728675019590410431981666298850948325377331030034054350940616376074193905198644912561623095205098229432331175129684808574443127119167878128020362219877761313001511662538044631579107557629582288351733585777997063703399073012044800602082449869575603774741706775733815171923237163452456109260822078296412242926962023991000054583383074420671167821058995464950900508781895147508771505698232892038821051084795319618798475316285619931525106777332787679393055355413411580133346102535690811552631926941213602489763083660998906362649378334810440589937091668111013853602803556773634541769505357016224172498018711134198972613562059351763722161560919530963955541903454406800385182962857183244880349175992016015083626254500218538480259030284268515975580045739248058561586977956085087347340068249828050938412758855691722178808808387053596589486020042209222137625320735439381287443213344592001749206651313021223861393585876573499220272064169527273498567563986016499403794954404619273151312521518691625790316460346418769036266506485974462408347290927890974656699913190348509157611757251342338243954755696016967138899125909959918724994457237683136583338929474839312071448341586533713998523573626481924339921432847608763226048160253107258451561403524952957622729214264591445224584022700700578262957409177857690428978236194826104043389657905684707174441505788325115993737697671764291619943974111570720709692600939760895949652483048225353272739549548603887302636499366204211195345521976470539663768224935797901370634184654602889563380780875687421344532562751343747449236163723360975540911422298145430914910512615552678782933851012032895979838940702803929729963055178340157504631598535194882053490674249355646054728624984522001733292400476419089437962217665715764117204141031003339673655997521236512601387381226649211540437946429875134562124970397020606631117397187043115167971078212130571494154051997674465560826435520984390525579319449237710080321423561731969503259231424584553960685360655200488515707560186159063180167556972717149689400154811975886822603755776089414971983966320458949403872484325539945172058360162974095696309365194751657141063927234544098562459639652253870181514406896776793100181102846217039833524112605834679973759744433591893852122546580048887812055441001444216109854307908815383886273406036068084904793046691855351097938474874268044723617063282902256438488173162260396066898156658078117428163021412691774594102189094168094633646719736966185497610592269148494426556720165523755834778911977695287756322395465105766905579033396153871983549427540899423820798678386814546662980266657973595227679947308864084706472544699425983363362321444013359397672714782000966708421132461611343538194129664531080884291669276103941885793675282356008797623594127210414286131681206752233390904065907081281636951478337399416648775578409814486820362439945152545158691681136937818139948832720585936898857006218077665593679346068516980708527052124329200551735002960697720777195668387407293923349090436694425191124220222873923094413646651714787778965303749361731576494613624077155032658052884375941421354007364241795034499046133496296439126541903941577289274216879795842402210164011636338332741260423769159054533562487499681317377226391147595947956636058428109682803015767770168179115218358462700605206025687775798007800553765030848504649120460993868953666752048194145998482989266191986630089340832011593243869984899027568373871121735710372005273891695460417396120279116796668694162397643637636115909699735789489098859923117259006150054058818177033824007852128361421353764865229252800909306857758480755899767107052813040747860215896505670583073137198144345632065605423418403839927040207789454111308817783399276506421266429129366181235229229863201719015611167387211148827926686224163285146954981263866142081060434142889137011117723824603548299625462941973751830233492084788640913983089596410305701501108893375493685745517223869800132173096069715571738592390151149381449038723452209304449302485240376125792792085768318814459995365779334652634692267543218705924206110612645776611444831739211325902582714739748881829908225023253485695110610678253120592876505450920449496290160550381328439170769643016125154130168007209108849223764528756258345688674320740380909099037912843635450969754760723999530482595163055673219632914189873260421090152096257908890839011777616684676200582783659647417997190758759018003109365878098388324421137470226045543552524967396555338825005673574402776624615903608228179412109825603516309480687147237132091227002202171693095119537171757857227501855790207818697107876516825341331805715592494497150036911827297963566801954089084519134820271783068703578992223084548795433298030356753350906871171452900757577827860365227663694404965162011139908747593287899232880741016565089712526282629315821180966768006198411547900142891137370457826558840153553953601515540218065711220727198008473271166636853034539590034673596963463398839840731202847311175256658945609012193108833551604220099142728173990762902719314084345627244248663241207649202489341024525169188603262331764842252781258510793033596945673342395098186486989734032917545498906816131807798144379250741785228832453202861429629208938975612770222933622663070557010795039129403647852544100340139018846660729823169785347806915182708951000650116543972912482233280568658481260548728569268895048987338619298573996142519473996798455796549371833006596269936569181868749972905777504808493420293237635757005501938459591035808658775973464750536210466799808840360017099360937148329839692298270952618751042091233042073538628944381665683190708087574309042555590235027319244573122235235172106735043874710316050776024150612848841271442848062711693710546906057990493463085682553004677052909072932216744616801507832974738974614654649491073374890806622492214706261096427110673891812504478637564827161100572768179437251010526991859424330322890596102551693957211753408671244789299552990127513185028248423367960771548230992408078952948627899698262992270593620380225204358250141869814217603523057962684633861545016877528429672929627830321200290694998323605878559266454453441539880272866517540038980093029738817699373662925387380650659170297050163425111029526943949435075378380745218260282921847155784664513873837709385695278650275448984556612872339455538060401832089931578121366168719105418067193752057223408165923407872483422602671697342949056811091713620055507420599939958250587052863217093467947807103457202142297904842259259458939896065910055625419478900352649493027657871743234201968115402806324711939566656587107782315221833104542121707601203121077963647810489710540104191916961045344048790319361546526151034316859817686976930532240192563108498494617339077853489734020744016516318911912442985842779005740719823481229635008318554376912067051936261272984445026961323516079673852555074534951869646959195408646426087002767894714687262401756556062508165099528443633106036490884737819108081718712962101226193774310176000226470495000348008584292533047855199456842923135275288980482852107452552107747975387988068008753903587330948266425272196033066379462042002607386295959573036042285186469147345683410467630978428127198053470224429857340119386890719182786100291340476359828953833113495317931543901383230891007303344770945079367819542599292684830036678274670253226053191280333576735160862276782106612155395998948104106306085691186148147116856750416204587345616016105217588243057837319987026608419063347693536878563441904504023698009347098254297181762770456467872666580650411124106808449599543017488123886540349858040543275548966312213072648427960898196996492125916237925170573648293111136021759823521307634270034527452078177022566437532891328112973559716508796406606879895365060826314896610044245141885533234140071927453305699618900463979692921595118172847145391301129382304262933952756245729695524614778114498907370720296506092101660377603217165965354857057932997250182122358280391493271983459981773050909913763892403638161117137632048162408492484603009112805109943699663386806381058822579809766056688349622398177996924902006014351992163997702974354448016416365653859368003714910081217134644189786755198699330705043532168193163356804152720711991339184083547295069728015516722834501782420391427306415094101769917136892705457396557231863168309560936853664771503960622711516297110475609714666734524000419499826464039880048636953695964894101267624951228817859617026948870087172967990418864061694382585638929435149881505031030579990274845900352849578349515889229600085159129188792315629503490530417640182753826480262322522906708475299450299593188969582484061027785460435893638617800791502878732204127382000773888864940113715583201272976548401556534234393339726133245137760034595381328005559091216545049183949674638203516329962370185205837017061022944405786288031175593488932303164684852077004703066355065797701086813131477091702404473538049974768564277099773757869598967795639205464868874984432092377103855764681928481242703508237630595651868493139706484386523709458434595077295411630372816813566685534945407040949834797587948265247353824938603216630479709334417607208373020035120851069336388306412225965508143497384657266136222219055948404100306741494250522547395406397297336149315913096060367375290300959146596154479551270683939216709020826674979922206341672686510119638416273021401328882190565852302826340387287097617692484396361263406764236646201054287617478378012661186114742799301536419115936479350246044240411452217870588620419750411638948121888677121676427148057439474124679451480963644245202318532220557470192348193333498704829061312304983759433916651697782870209280290666071093497247633275506637265456836799314447272005585804611452960157586252635165155122022189275106590623061269150462245602237770635645392841838539705186906168375729054504924268931331814750388456961898337627775092824962851249214211914652266026999159560337693604802944127326657302467324346564904740082916369410553290048293541907806943539325555818271965351944098484146975851223678021942824291542251285117103825699047323455624756727795333809112544556296920994458785415555242674283918386151269738059298962341829318198958823002500804769787945631288185225231759979076322727838978825347048013499868683856146332563950669569235028003031407182370538679539049402183434488509363547225173741843450236117710962299924845773584263385547609703135252107037293335449192581322502059196935665291835863212630960289345643036319594511107626383874193444280714398920381410373737412712705691650056248891138053059637306669503682006915024361896816136917531801957634354778289873664425456477867696840802237262976761483791353398783770339509517390670155150481591338238631259509557646925954891924441454158786756508584221230833130494514922608377437914636829088987986254665074037700357345034026365126532179348694949237478491940777512348410058587548993923456631095654596936425872556368618995564612803878201845083835981913918175545890224068527322731625839900252745091353345695480325685942323880387662721529894721235545105508647939845371606023338345565263121947401548511810900337902815784021076152568376062958216322396554904174866303307282414852908781212860879641629091788660907695763232624865894670307453535070037875693138012119798838770494968752855256691371887077851047473825692470743259890375039134476982040157553632169227063958340262771337920882749810079472097745551028122534643640458558819204422980359973628166912771220617731914661984156519935308776368839430619365136841680160597036438298872537656833999832852920885681305021508800294648202309742625509655384682858721975528296189946735872532189072770402825123306249203895281502625044504479979367851568586270852200330208624872298045724421881162473324130033022603927038704208647002669696378839678809044937373403609827395338143790922563249568759393338309603075488036615481874711891317889308451513075694173326272868192615459924582085099388906994026010838790607170151098156897954208324879513089450188518766961965853175645642061269082615671143174525185504671532766172027746331975393706317343738402575200566960043617470702060074290181617883060918562419040916846840052043456988431122989997731506405194459549059774100612649335840855988854906603549560334168124861585004514877213787338515562254369537194196860595863218202489474331421895905052246467148064400567010929154289421025767312180787678154204350450066894749391656198704353491989857652218762841959373265342207525511690627736964721849568758866388819280687140082352625311351129388482361006469989397342214912554161573444215627785911633054844788652332241039719720579205648601595494652372368474791787739545297653844434464808453583733177103421175902883638642334656448060096433263386401165320921915431481520249403958211440071238376521592593694362305473527826306385385421023851096246292363369943774208743705302838914508579947066410649580132646707331817217678982618728623515148236084867402792614908409179116646359370952608578294006902260948279127595171140293119273802316759543981693365629794099981404522413815794365083427458723736136017488899324856285870235185075556871235770687829629697743969936761902973427123673439801921464671435251639151030514831035921295495984149379614766312034023250257513066000053429238419162148994692222618448081986066047515057642033029814211421180800952422960022686674340333911968115620765128601274037057292217644224515617339988697821265321758311687816344427888610368329995714504567408004534236683118188843948164630753831138326804626026976014100030178440862274638156724775346958426771019468813937160420520272531479000856576249371055667118817575565734700905800615074635469340928430565274499782734890653059234103634636329591515614746007095491546712453380288986917314208546963130516579220098935733029291064735482646116546362666727502870895543383422827892105600637076373349918657683060132519280481862740678955431400300520725659616684265799710920715974372936658450903911453240176927902938435756833806625158548947986143069335880157837223342638028617622194208897350485606910693609977491386656574129455950595918569439945731933704200506838729389675357694109219906042151604209962099209808499763947526936033121244463782343349201239190662137506678321558860728966443081082111508525558859544721068909278177767923871197507285076454075447004435410807985634084606880922387160429114827998783304164038629315275220699028035053310436633426384342691001950862498511229946475670890018868535158002438035969703410447794675002689622366028812917454449492727956169344492480593955417898433060515273877009973669051437029087467992947406681233665806229053322433439543739411317542406689043014080693316069963066035963684613760947189139237193638176772637218655407235486766548307622941061208251495733750616521264180089593066073322656929898112254748823501990654439397335113817118329180662607121725856231434368018501749169290638467298176065190136511202178332931213673687085202627491341892552708831071862971084057407975734344206656730015345497502590332247647348945263898467945040011263183260456351094224315780376312876327859001521636097897445159571781423242657125909210725861820639266004358142384981411809621349137435003090747325025266719411633572934082187846301148895441811353727915136380336145634291444777069007087304730597275607286980091446611282331607626860438720181500118144047968476256571104901778605448401168671195376675596760310464245059368831685272754447319400079595657814445007598782587242280306594766229028566220522186586686557898717401367155938247352418943784476965079611822240814542984420719099803689018735152779669316043492411776615639908263138291746648836101001861199583913844873529501954703141647734443587451499063486948089070407906906463066340752279905205657478225862791445166788587898741977874637418370943135667728826210155513859080609996670628703192635492343719829153439200916533069553091967149336449175478273656481394918877584985447484329138370976030953792019104004846090305372582837540311369299661758491771468696979177224920571060392245253523806723218479778794618656949756099025379551091374020879726202580993496570255005834770115242639932679137698646931571659996241299345606221760524463708465696547229346946443737661231093728262712481781630344046774130326153480806470419384221607457825204645523840166231144019651056237368858758292709928610906212950841743750929518191578217435363217710575663003600181222585317561043567013190401986937051816511336132334781515187994374610239975058714712581532122945641441189097849674978824388596796209532979975815458748370426139723442123663179435352090257692044860596736092896422440215473333316803882220970347982534870282703765396775287127871453988414552485310477629526759209009539072012129027344679347045174425601506721437350095723796305388272818339211978469964700882796916915926553591791733142961040336311990091334501202233950233614204233621294983328350115761058333123465209860404762003170161022884002417359675773860605874304168690200033250709503097724538461356913777145943711897573577062620877787357911832553825250928377512171782520730851519401484044980309109166121617403969766729602157110311668350760982631607013178101331886926800045548524495974621188445202264723667872743345506061254608361336452898110181079006723280561415813441585326634468193207686957280247739188182455963607988127293199092152075212727302269754998330016511121295377858382162755614200326960422369108000527680116172645300972137659389428167522250707554767091945731807982578983914116434584537035106205886409062596805861172365366082625132450173871725542206472392903845763480491483919631551804435709857257188913255194179127132873620650185531561975376653529203799067571824228886095404135573473325786328645761357604023291657909159106128119169277858396809097229730144951644385836260344717296552958900520994773253297486396272113082593853262345796412561480300599707261437622434639262553124787601527156095483684671243057985645173124868500028773188705893368826006289204631576164847443958340441235531565913533220812007019252430266611605213840076249038248342960968234293539302735229463114648091772550617979943697590402628226256333934753695584198297702777766884785202572306550513842761693710910036400910233343805276624749409436703500817276827126111941391654625428059203742765516719889101001194074264264415294238694810031097901638591281455690012237369547088064086755271354181801212550381299744811703869437543874901720950145610080946935527749406400292433596894398769248839904270422967350349691371346431791161615583487405727400912219326779469219197264629850191321775702351643727724481466658139231827070855149539283315549785878985094095703548040619844701342851271139958351854296779634786722026560122691858935209308091836024588257716513268568371616020547938622088736519439298634654964992416349972159855920364736673767787891153903546066693872606054137329392321801654173756911369107926854872409392790348865133626974432744744833964995874292773721246622764862823088891149461608301898546524984714511853720944612008978288070235667528082501653179244621132935501114290415729635209276837886374261500572948865918603927310571844366600051852418694218727481575670711147990559977990752777279923275448811093527587053880854698916689279163760512339514299083447851654599978422406074979928082987298654440278709364290906140475535297981064099057633881950164555825994908790405547091994033965842855296345856232068151235129271435582117219861463574374189484850036945713506949196838515289033691880292134456409380855461895436047781841417545778009197577057277967153588189715563420721025801567749182169511209364629989515803097229904126762313199407497888038999729623239946982858126500918153390361545131326126283245330424058879609752410354922498147064261450631171289553221736894435635645263284925302810618589708408672156642508849005839608160794114155001426689674300808529392111671460993105573568098254840938763350986689446776825554642362863736622496440069608149788877726064886016314651244085924666587946288989001970973800386822796510904950042785979324355426380233974756537414706452829129230210807679615961444077108111314677644228989639891202623688607640786768878000311031193624338497965964555999596805829145901279105349158859776946388448414734841316303064476144734103665696891090011330202176919585098801981209051654444741047929500243889482877130227135303834034512254701711172852097622914125879025945536935144231559703746682481795353580445356719359513425172178619145488743147222283517882753398460256556100649992799661666798229159266390034782977525186239947816706466877531425784645685019623780971395696464773423606597077909160958223100680303992395329820801790263162405187504686954838505875106199069502536291204071919632787303747534880922433132144346999096014371724259880477875617783159771028647561175659867041367084056247484033046741424081638615270128619731594454205584814248946234868275578910761029133878462683958920735927594721450893290632261446137025674795112531700530396999114675702663770555059200403951917387640835957615337595399570940635452246261209549557165306615026528245895743178808494503820185004109349727248720986345760050596600082082660919020464086887458217203676152931976855183886252591966885576669192962218255499704376835312629495606831789746864333727258350914521908734294205695708239501828459934933881886491894138138899206181673292768459477306376614852698618437107634174098920021712893390488842333516501694816511617417096437505960855210786849691791074247492813201668298742293593266635164594281092245965653229669195793425402079570952775067277290175284848997924418203974491184554770654128300395444831673970014043173320852573650067684452462652483039687686063846703373216079094161197220838507868264542575287153939056378590332061758714618091155696399054149103392482195814553966188227953047360148644726405166470591527116632202182575422462317977004700233866545677099884360509112289201111657920506356066985647664715906978971814948340939223884674088755417793472306935569229930746147489638489354965488720222969386158667060883886360187347543858782068132723311851017112519916022835285290230444151251250366015890322009289069731519995041515933780440862824657074875716773804666221600565483154962092785093738586472652662293154547440942064492845878845073768829561937015029056522564887542924604615476870436434140383594996280448308347738533298239820959526748838228919654089387784800152597414378708987459000573272293486134857790615971812496546852601474900846472023354879953330352625943464187864255452051698229709813077545126972640852658152886913427346868618961053603048299391031364191773289605159235034538290281554865367362754954093927950363264284763856727192771892950037584858823878119069895107480274464894767955486944261037231573122838712451898646944877021890482254891149610020881937467232402872697227264411166365913950766827958729986960963719812164230277486274386914046541047272415829440683422445923311738409878432084125528415544439163427964656689039308681007667115380914632392794574188332777652928365157397158764194079058515299620961533747557993367443547492836454550774108655677176799460482560464625573671953833322284956862659114922185592258925305178972471628612675449626466891853670080560487966369333413679621956353622494170001523499481824958639022430984155841363613437791626119444452173220742806143789457438666540983924363220311445589045521371783942150103973079958610234999952061362335037817012207213945589467842814865015144783993160462248814120476456440483683555718715353001677674857989017617297729415514114062828508455298987269212592080635139124494430412858226471098306817683257564538333503619854350049184415256852415798041991413133992642701773057576764057854328062295260858487388529268928943595693648519568677021925453196744802071700916360075869842495035457646223842563394509064904025973172961113243446989745535106950288750930919546854082887750255655018984163688307151685344661679442460074740621993168551671991090422759362384412265512418618021226997185524653917480498072326664865397320548430599659107796027249438386188917783581062958925184132941130832923119445905265584759417989182585514021619090426154087756376437136093055323516426940170972634529767758937642580012603415786392858734430289661660720414015709135983476330991594323587770979778750622252357195920299075087300873711529559120537472730092577770811190952310220648660375789265579808914598932672757103638597264386774282887905541119317017747138307990334360014743207507560490601707255068512591883554449929498935560144393167606362643790094091981613364916644393717916658952454927741251141087583322571478735233056534922059251279062760128027262498869377304187694379939976037081936936079766666927856192917752024342375942650218776557473554972352896490513634907743579493438424056934862997174321886220587134226780029671605922777715403790723052432159877074128185379780128549679824351280112669128339209965612718837868909484117375645636694127174964668893216588670863421476557002774264687659962339044800967718432182740934214807286834602948985307817184531144528012060210096321507200782267761977262716056421265610624644713964889879539411095785716331021403912320268240471754123885369337730540649529366867277272485586210758932274033759968202913125540581423871034337209151720233190374902508725560110709917297379481833952742619521537606682760703232140709690415174270420362853123836143194484681551396259488000782511337139224757783552778136441995097378178201487512065306336956138591260650232973950739493219919179780138672365653041465463492407949096961272694530734354373239429986237373880548527990286363229856973526503194471354784205869278524788352534676441447149259282142711769487564860927539316502222325336325815302404419177092039651150045547331048724885983144106885217104691841376594636819198931611950417636192456697047549270558234964277280376004205266777404596010842628362249312532521637645482890787920986216112168945858531675291641399100351786735402035235120646911372126666285998237027522093776154082388688792533401639224650348603107299799356895102819852829078072000531885020229711546971248117995835591264371565542296869266527569980786945282857207339596014721653460829754085468054891231857585906602745864768805123199282343864546270977509598854218164851219602311857458918075232848244024215004757601134122428928425742034614626342078546166713383701599764867016377158013160238907812508065908200022530197342755326690015130584751737981744900458288672941030379078126967855659685776455751044118352114980491199976644427158928940026271627340145723018499658037044153938699304239966929328982074902608856388871446013516588015566659046831997016414133402504084690356578647632326500915287555291032348391208317909975113156032961331591230428451799811735024089324561186782509500892967987349456143228502625497741756373295932801767664419369012373571827117118915291847060919875625515886276600097009158544498693167227404239777356878311422846510508301364413758510318594699369586296260284474944825838229160304952261749693426649965525452829218276052655624656300472828134550384023455369866723524363209194809593729088864777312746522075438641590213211357037468060374494970391627862086231593935625161457979589262469091284724587962643474279532215985572674416727856080480243552810381028062430061761027613923142389093719980364083644570909588572955384734960639435006125005982746909717998522417173588430447900475535525105240669706007437312598339369966151670979185537779104040018369505353695813922127538484745253784539228570453943441211521656227912755252308715720278318107699194978919697322341137969426739319367315073530927083167842714001062800860660439662527051952420532193594446139752039040648300896777623905689868632459043489387715390437397627628923596615547823795549931950774566115265064536395215129348226013869639971932515865625652827986032319522461015600132829229437666460915216906572659023255167455200993261270389206272386174640675930516274409843540198999805877904449179539390275210803985116252757268985876745621922063058044734763528251317942003067718371321254673650918729563633412338432327831146559578329536222392874665775834664143999209339768329770739604344750234569496707710209046185003651355243679462960125100128580789331275170430599033556766729571415628032919113276161076216199761140332080407527698061687650028593855200648165127962241412756411968556167581985037189433368042306527312319963311722014687791709453638043752334835776220167414787418014008598885152461993454922128499754068367900465865365057392493274568387183470390670739713699418578984728601279966297197940631059989138631436172140581855058180172178695450128654549376638802039583182100566993704221679003940131854511650491196656569516357639557847582482658467238218907081685932324370126194616804413108728400454404715233607348899426807013778758471034411235512678614743885286373283282066618984601600585737571947817282048783365014477175563656364664108795980069179099835662325199088176449775185749891214149406062120818493452980144945740774336867324874423732966352778556490256913847648524217356215253894922406142492697323039996464906621280985871048394267690642027018479186323961325905126783666928679846609335449564733589582199723825648479906879762571034431221755005498498747108047128882672125959384195561360969034432644137203441426564807115789337374375727323229844631227693640585627639194017232874647391545777227267538501170422478830602562813359923828355327648681576320574244959435078805051229730914657626980696105759380656851200543218031553009252320045774903995476138680018892751634529281656725409860866200575878264869632319160257222694016115446285022286585739137336631081186546423559661966482290451925433736466948459393073633358246012151488782865054101622141146973339655139803422364497592450372091740094472705411814314849326127136824618914819287483276567760851359728410258353209500763122211324615117490089299464208767481578948232830343237677920897454751085665355161746594113543286907666777280176640155116067581295519423038651311035752938241930391828303287424543552276018434520072466324199538745462646382956507252238213111328163028836414111293018542877593345312846430571509643315408963274152510082035455826437127621375395937583634080518310470304054427832523191866129873545791564691907373201425581372636080938037407072869593357035028790246942848710174695929804967464461870641151501940863874502387682785581948995152773111323006500717739763888202508053159586532038325011536864166260789812361713572053022172307841221221947810042346706406692415078531689797948000168547686599654673377915118907533388063690255211782000758580494377703709626298372051352451982009272047334366347371953077158800755404261149684098086250351663125544399371055986247641884761193260417040144199495611441154425264825706027478127578644490860042837950809733755761501904755653697326988350571246214201251473456834895505380393582074836040370363235371194398345351502159544259390925467252241497105953636045509794829623792496484673617968734355162996043955351205782749217300875779889457804327554323304358187575014265129101117478247981349907895211724471971371811406523396520275563656872918543178013668909046460395766107659563182107555916133151365547817519716541581922543387282379481952766080406803413201146077856562515226102207538272347147855205131191871642037537983558599468424070198962318278007679644701276874834987419790286048827571219621979883640324855277736050938476702533888342971160666791778400412198694808733984558551614723790733562899539542197607473779721954575766918940344764007842838632631223475668126724357951499119296019462357132535960885399324044916658332009211766872021390591768344237445016915962909704892185924294455556984759565065877522529383483581715190270079161628431391135113073057443367300777980876262723715968562908857093253824254092312489015852218632226670383374804475816712016384954535461712311992554885984900423917384827300759492795968956011675167003312090782140928028240417713419597366854497949175700593806451497688160173602029688574555766412553649380822454640914438166072752282964356959423941873503041091792965400718678165645531971582433538059778507492784245435104219428353392278614008248975090437826676410586196608393619321821587890154418572688829105502870073907065810517910560431001740491549687937548261039520441774325619511133593323951011217404459058626380217891586964565584215283154293092832402841432613756116094072460134102748529660323278071434476181116692429553822292018303381257781709428686340879515939863258611313761270746402162089105843595775164235291547470066366900071232524267127024778936038995959461135456503484083427764451056191112491643236070219991430258474845712787483876120170429683124826483947232240844132993480240890909373262099982297625904226945968597886612486711637252765995598456162911526229026555355538025760698422453457924207656266228895601707251603762187456424687347392984679104505373272601503205851488516808697826506948747778895742117896597340757632749972006699305978725664673214699114051913815101691253817044377299711273229276548141317119091518906894588243681066763997982067291981122942604285856588520895256545560059358955206168152878761977418545096775504954902412411906992874828374163960255063014704881840298588567719988062750316300436642099935456298814472017136568554168978362574749553552139343080993335739751057567639902744157095861770847746383880542951382813848471530994227563223674766847723867922445976542688914351301675604284119312018580205764391475941870354279778389282312992394861131187232077157671643007478026731713762628475673484699297366967520113168619604765872169328794197052548792584599486124245329817180189157210549736886742165736628843875448586734840477527062778513984880290731000581335784355376692814849989157056346671104136372396387693961661297856285769460394925423223213754700268353242145889280685316174368973587470405865274982293045371049407632757468558032201748987777032541971303027594455679161041723747790714515990627462220356652654569852008948631848146524032910426021760936519903198701779498251043228066487395015631493918558878904691695829326055214844951441498976062394088512196421090730460985594367473457766272722247301443744149254448174937336950596926651002521369622729092714903739950981007378781249529149143568038545966581948881682702715021094105442160861797840909487749731166070864049904230804041995430993219065405892501039154170192882324445496681459576523387027713900191495492460777018337210055528849425908129180823442118780057808341213849470293592427638737668951591354744250979403064835095417948350548490889056107583125517782100320302939463954051950735058239383856589374479382837522592184267807109101350380479225994882364723066961113769804109595228882307959251270090727106393968035645484988226614693028276208228518461450947456134011605528749156300529757982255227406874861116775806231657449267264679895412879643526331113971711158047173434869780724048424897918301820753496268597708891208542835538888261706959466582589247634663742230280749476179352289912146587869075996948614877310562772272631474833177737074737846598678699612398679902044550277997381137310111348850701467703625656701741893295793464088009158345352653973550642479706371034024305507255833332081492750048067013031080244365111889012281102105236538371807392360571351994515193465694799340428014045954432228438855467344859968876894152114294690039681420824574940894609305565755578175900357997086583984341141577633963467385713767518292646356579833635199259026364656897783615993671938812414563108274408039157762070134214712435023121575378482622121998145610846992636355013822717228684697023815661812503994884333572896495173866681810786847389629119743512901177115838843286691564780847959625134710056416232310892221378319282763629838028163507868679372999961814724011929039430872755449610640959678660025037915696737262077248162150900707820095758148107237279495225087506175233018001651427728681442687520842386988206886243057592421282476987055184243892673291547278122981228657999377161485137857271704312179867983506324510379098426045038635527607882798747185532511178833860353165665872292148609206539301335592352850599146151072555436706163492684307744690100782222445276527945426704074611827599938455100812440779258968167767333865172129637915601586202901243121114173420033955608774659091890866061840742092779151909841279513803943536159431247692475689082458218425490129836743592217442334731816563099756106546346940979448193620135535216015027473496715762201687969098674361129528801846992625477512163496412394076966768878062278013600643629381739807021773809574607808097842418373557439057346236395610381214338251406343020469555623945410068948986781344151295299195875239157425447929439606843805089301566256134739177675018601249639521016260760705858477884733992527630852524863446274965815747186826462577880065868412012480472431002657481825907686982536794343816323099573404157364465860729142717133370599297035039327380655014178444594240975132617309511472253730263170288887692811117966790904034002554970715948763903330604337327225284361824612049669596274556315976742754430645358527269810841250319900363708661727058570291388991496967543036197311006367513973612548936546611220016598129508720563925119598535300012637145756970144457540519054940441828243957865971364060442676545442471643273397877858259047771167143459187857921964110375433122377191384966884892886282099408597063432994330473107489655035361476751679682162005989229254477971964148863418242849375570437732547820350345563576327913928854300704642171042432381835164631093895324983691658751960647830815552672755320376039685349740938719852282716729641327348138207235260538394043141034846458799576800429845687474258146852454618856382120142605688439168017549064648793622435335109996523733000291421117472429221020215897126635750524324810562154081349237284006543181992106559771739296184870026244131630641515536303149467966632280310864478900947902517253318349687680858236461046907157563436284460970262527100531840745769880560237989984919253477261558119984031677364517945058183241894443607353021734662158169376203764541940048355323095025084548748248768953930289841124916194410093240950761923185164771633031551960725098092561591630316927683045630004065733080074370538897574748638848152532856493563246524143732605898856806356455602806606567732169065332347602843342678841327686707255732878742289759672317539141431365145676478159321570679891567744956696269540499858209140463036078330480701745393288179131790196910716236455858099637988061947796030230486651676216843588037500979534070312968289908940170193486429753009026779455775688705646807275685300299897146638163297100621003184262428791578965386314360202126191101611850573847449917593937543049473183294516717974932344655048916037040091282663525272874734612386723187396461623198598677155878688072209961090949538234558855433914110032657302179086932635502253479150464495478902072993425861157459427481180870331124683238447753632440210597556607419233208428979643616396318847648880362315349014863501622114143604846885957067978900050719547082841102287652030278125101087420811554687593427484666084623828424835111559197490422288355255098618489016749251769208468111391038340568410136690269445476169538699372453546982180921400367921198320610991337719284754358909827543851440217310161606530787596274902949245709157828086529155398578299231806132716558993658392777170438694214294287883921610645963415667010834732599671792544451632424968706925492547043933841245921905870479849869275779452367220613049519009245490861776491447276634132811969265292368249104133625151118849696836437271770371838670313391367293518943312785181425941051146373902014471138628971468147880850687513652933048904217983206491177463470407784277451032409936125084719821930317192307956579689309955116370403282883515235728373824768695149892576593889497318823494031634776928072619955921801236060639945770272326519616507761823324946480021430713037214154605504228378099344745185065388011898895998379373679492598035703333185091770139763839056447488960537958805761111095044745356567328443228900390832514862864525484162874354211746463203438507317473098041697505838421237099755724620497171246012744388575621187386117178546440175814368288844109603624938914154776867506902225210145025560134227453711289456291707486996030581075854463225826545235476606661075508556700640784899621220878108746925014973078624937987886755367603444702817973844124533886519920694100480655681337792012946888426304203221164680808401439901465674443359867446582319269839567973490307268987543251425496392907287839133325339159138706276773294923390277576848197093889665615608156250357062429989974273577788635774241937212698213110697742467621197903586540236953945935249404593169782132168717005746676331540287571707306273153060692973753473441670322042961015703148250196996328625109150201954425421895853749086719063395477014389237715865906105816529583152945649983242410738521193052221277038417853553921818789585035350515684349620237705148798118038355210566410303426458935821263093272592951270700962793987554305479326535821203504087925549917258540170899491540907817328304563083102786342769426743754517403421296829220852625378239889311091519902662128212357412927401861108622482282520647056819664143003785562256795604091462777914193222285278209749996599453294620655653842179863659315320017869610601580293820067829269311558665754919947374672683334463851846705781912653468478763113292051165976480216876628184202481507056850150524166761714060595951454113214520298387024404278380285807327756516225667840037469803093572678120751039924439755994110034728583326417238836626629398192049745452784313464010588440471063629502093932170554422709424758372693466283455078785205013061147075108960318960703843569361474350615969505451864141529835433012753857340338811645153801296073411532643567679884564379848566591185038707973375998643357026633256958631370773608064685723014194092946837352544030505187055367787453388986026742104917523152431318627198730915284627976428902588349460775855941295115662547958357306223478006386344242302297493199181501256110398414836764693301853883734891304674758775716188268907877824827453824679293322901680663210342332888133107193378537572252318851339319577516772074687234290288553241120249210895143150319966088080955226849676466933657234589857216513817119421929072123663847988230876403633600492115426893229954551088022849058686311909820622899198531665998968653339494569541735587613995082827607990654452076376488737635040874091249104883532291797799293374871721366381173877214305142596982653253566741273249076283234662220138981648800965584134838251074919131842272328768322478521448332923532052984857848887144105793464714400772158839075923750140545162242523080653911731944842707717940594040560231106845615565715197303408197050316192628734757347375006698229364291960872011699149163678831288086023715029389152093379794738236555005355110859772284387039616870205028956449619542120264128950122229699830579800960861507472492458067258663015037087784252577927790719912643440629239770096994033234924802596924244278396196125114258113787810518397977735180166333165934997550929026615879535456164933829715499699315243926365245451855542585342220259116164291866436594050654311365582483887271126604717436434126397004548142594644537115753726675117696759958016569336688309588784349502237778047816495489356937427312863967023531560921882897419705296102849960462861004957222774081009329342210782480571120488605463099718380710186417572984046535302079579077680269198418995996372285685456772289098440613255799205009564704663918787095493787922775956323629708273582541508288693344054690156085253412756753727563390655916996417774489535219438219329109508538843046620000228071003384295655032592534446516383467202130122436875902416241903190896831189633637944622402599671457199622654288532817335496967270759314620860085426819889651931916474947485701995217468711491237212121656086051291763356400212850122393747698079467502902980144552985384706849608637808843740912498333573528035647560527292724739999048090959247643648686318268645631073296722064012233201270477570823522299003121323986841765818654254169199116994874281996216722384044772270417764527361912924405191513606528635665059460733698634775651504098878932437492243517336699298412057037234971397387261913108961916429933969285886966108160022042889502495827168782444220496005357320871885098590188596914731141866151960489207637585579641233698546788795948106702978015939499551784589630395978641854813616468528881110589441660502261821494747612001721019237853995980645445896342252019763777751854939441557395838274968545016091283150119977012775117458510612707946761907183906305845622182189937622424958309644509850510410148758107513241612761603179199319541322187469327793876708360532003600770264264728392106925026739672153650335352336892649621519593036828434212003003581211271434971444407272788251444246383959565311265181726429508355987958212116127891928876895455298058698868667811084550903097889344744715439097330802011081666422094054117858325909820125018078167748555321659715541311678083279280185937711137237240161099189328529940214645556988603998211668438118872334942462953154729929402766416246924243502841040767118501918198511756705152916329106903512778592717479024404634240370859141196614345155734148629109104028512196060277243771492257211921835872650852157471716210097411363207224026970827537937744661994299976843431810492178003321492254038141558997825864541328584030134917177588659602546764463487537667650863810128265952883312567176983579330401821243638719230978002954687893369848088315780035721853599609829702186605977454999841935955416270422659729129821197937546870836239777614682026847939553391117634514831380786560889323861141703948262438173900244637976811083697094161981633933080981959351693826890444992549342828106415913267324060573688460262474611079436557972648330234475619242543474108530367766334561927161684369072726128075822377785401266531788296531911310530271617166084922262858648777896360961163009987020929286343988894845108315280184259761166010349167490365521003585152105506588111008335792965815075240871236539190003209150350521644148436577274716028543863899567775866283502760361043054037530201605789580049509437224852227594818210371699376868903471817801391285491891931022649889932687414977589635898995686169566634719227844056065817189184008974883053583056511469259201089347110866226988181910891333512881148111734297031166149081712933435706974628379896008945684263498088078468748617986758423760553686156745091737539036888446354617602248859540893346814719794753343024202863513962181662536053877035222159355878579100087280006387105830797552821041846808653913874411998718522894999909539338888643691084726750427237645574188078653500988867861757805008870745153562847948165197232432965869999831612888319070610868028853283335003124382888614604627716684241978615290840249653572619789561327676282772815988969236153347240610461844913122822085082293616361367129713655746013265304127843126454738086415258392730996723048849991212229541745412132026844813742305199990401526549613667824116872195725068992316660827500843615033394721028546832074692292852860993816896876611447051045816251985427875579629330145641077064897402625939449862543968864820748751590335309121378052281824555725155264331838867176956927796641275850475969177313044178204399242716143790187874834535797788808764538749679917092659185762096481705915758643721367309268349099358663523493904068224224583621418912659524227245488589750417211322187496973976893035581749232013318953017225119225418166000528984345793973800912130695756635272671976606884631989757969157340927051168349532821660187961863952107604653301406812881783481731567080584836767699770844719646313058810805097223657388746161083605649923303719380223219870677242262484613089400019743983081701070782880382230927798330476846071087135248396825289861444661419231251193710113696656660181258178823431164208100948640673756260142050074162071562732233663182600491647290953757487429725003330449485433949268394746422515385980589904448793480947932073889936831081470639904849453330156629642603416690627676337947253051193703598157746197183595869159723459923232102201464618538346545642015569303413144378246291780270001022025394181984207848389202323612703848764093785152939061017311640825600731413469355462914865792600537264984048567701023577074219359456194817301652088473220601064310667172160029155321757696798435192196256242073242043359180199139900353381087941395821909951785787164902654691398605633511672878224736057923925629403690190122929260835872281121386982109881482250171394561932996490186836124419571861377480448025918425916572448107480031964682923924301676998506175831310764362302579746861695930626035331321979709881660223019928205437413880757423585433993034747825199699343472585445795583630985631016860257890100016917218009145762575753639397042314493193269560982260935179536089563703712160375509869690175307396007148222061221685961999491870297659932796646085238744735890157406985739213585136563101424487237882236351028434549491332493736175512265377813819937534714851972895146966064374087032662886463480180127393595637887358680375373721863218080157007947311444464382641049321884887669676461300291984369948287339789388424301015446338297854579016805118197966000523830972232956732787478802655985269538901199528546316524337708791354695421040579299780320715476872389113429829791896871419926277086554092165931023943064674022570991235341934081737338302130559958054882307760465598199285361321481039543758498955411777029175844766475722566515774959354335452185925541493260091954504938628472528091281890715009649768709353564499725745600755967418243799400752623618940560837982924243882774794516527705682027859995831447914597460285813034782633947722981729125494816397606722949261323581198999682386750939080083149078509527891377340102288345422700781463691467201297459137084406302363861775291035338301491605155803251174373871047649329663798664792373467703304777104040227636606732155464231674582446576589361449887416820985418552183968826880309182950346845535940316843184530130511363206089117553049180221154604850183272435493469137588018273478918103096462905214366472727498638432220889771277111854804332698799851758649813222178981129008560189513856824427740264144959123396015028146720402938426135598011755328252597520353772328191165282954786683132480397025766145551089931489513320015043233489633599681515119635985019534843056963686875582959022650222927377806553817228892193828747761280933809532892595801841559350875651392674965148802721263395747938007375972175727263082287633708035889406019407805820014401557354754380658914141606167666439339120692107224349084204926046252799214393084942977558418984277310619436322539153271401655486940180384476180573127962780908454870338080027584346861493242874713335414905402596797891941529519748866151113692548053001980478334387814964597219283360701381680616788464538978621001975368663002620216658859771450824148726449263267997898726236305802444315361338874758751694647025830738159237942219406385814924230989833743799771286398613068524732530509715312742251175917866051503470030086973427606242664851805531876206266761299071589452048476964310620413222482212378683708053446378276806765589177514810872647406249294312251794724060830046378332599619463886546960092571867497887854236937456265976489370597328455399555140276885791345486976879572085231026097363505581677848083641226379412258499640436133338425601609761663326870574135944934951211907495532820592225614757048053134859475780447862113816412369561223156008781189422873120810026458024258572190201852485941744274738165087465329103312849168362644946891620608988628027225585453091307455983727555779102168531754596052428430128974400027948766669001546729607665125313462902386425989849159470996690990333815233628039601199615361103418608786850735814567343731085917112466193359040097427680640003378504098897439650851463357229418390249150352019966292588844927224388437405048276489070488977511931024129433358923221735412532751121061700671434301935670128285572905429986831084783785240526008448651316851687322499172000410521975855404470651578479227036575882032217375248871923669586098170496028447136678643965941178768424272185744717912584895816425581219957788995714409356016369875454223176307154281885534532231393560013601328937712626364588784269193757702669858022137856888981787158464246487733767050095378575976251260692718235850503179160342072518490533789369377650781017672248617248735391501835532784142087452864191842964217742478613249096539701543854095286850796396438488017171232326086679182545552647951316129741015522080252400144322725970107836854279812558350816072152096946065912397521241218990762813893574058111215524865039927270107285922651015056189756567084802943829832681069282333288355421434576698227859655649835915611028018806865032837831838600366811228966859919121327304860766006467965024422013797736526951282548906370839622412863716039153867282781709284736571832392736455021846438602945645895910760542442526338230007484520326078093160629329416326145578709495210237738215078360512057981270411162862354623666975732165857324930753733300360075803564803979167755846439866084927307956161463714998022757066120548847249350092216557152709334376814279305832880152846949833475551902379290780275429834979978346619073882800281049035750888530041838449124478897278497092265279757693419418669451776457820203099822371465341177333536881601408431540635299780889231593946052275556596792085565881087426504818968356176210966939646244572255764517350394229516526052524732679866070269694256357544514539644683927046009432792225549735178075539321705867313672549451660689582155698473125928654060327874302679253708460948997748324847360318233883267883785759321198825985287696192146838922305659124441627309937530506456562768581942157825403404421593896913823242966988209278635255774901224802589083340626600096021673688360002134124880699222385290824640469882297490417760522600530110881260668661734898271998707382892981913999781392104001224214963141600336412455002921433547105389479862066440232569959336437974188874222586687819500980239974716478644850428343116282438233048881618104103655611982011289656919995245187741969331236757619397137590915651365417926025602307152121907713443486134954575264567901714378204718843944551754023847666090508162577119307809753335272318902299025159870543378158791021666948715031314837232048162416308519662966157722373399845261572511897821916304764977152111786091438918030426914718638745947781834231078297921479538606973245694925147814135131191492494150214140926093709430722875021452178014849807347095299457273250714198485231918946362205233273887984872458871045427922681552414713206745527350654065155129144540342863876571584859091298286370455505640222911892839729454182507685694672587153472153439167756722378499608570500553264166565935359869418150044949205607631189146853129482067610629073493419589726529800023882574190622723517229135712227058186189331377168792052373924866465452456359201978240865567536238910373767380418593740920391207491484869438415396342178409796871077942872786600337659673055470058731721631457866110135501288228912382164648609959132770113889313592037444224304316162529622282858303067505024237288466682178562071412289266481170749987228484635417958512267211754403676505219311257849424637572549704191245122979662644434855922496955608829406920842476951335817967485319517029941794420024567485826117613194756099654156537316764417942948903289802533975325218405598788220051310870071286448594327794529384250346106900882998857687586660224201657340171137333988243192977965523705148860473191142259454016843963751977963597956013890254819541518914977579375226212606279791936014688739625033083461338648888032011167157047628633704529695376094068580031601840584547900496715767912996513460704213735153199162480570240963479100885852463117483666463846938667817836773823413989836410061511632846577800548690317108079234584301890753963718195012599384888471929939023151632632786152799589478680734968509707774163600506761404193212175093947024140038433377190433542173950624950539152120668806510556768811991615864517323309214527900860342214237020087761890305219570036845090558792278724179381093045025309501528138699655457175372467170846391709066399946687399076143467928254290157771899629176581665866371399430294098446321010967997083144859352861556700695390946377303244890334234889432150823654882435926583792009864402212018263992767963600458536017046526323062173170296203350275675239867530634660372846544216247290954927646130367712464639191366413660092090561156443195522896656987277889614997778712072777922452680464956117482402506850440368411224095841679479274082926452195889598481934340755809868545924007048464037727722211972273629224478982265862992027310293771183753219619656203727027354856420007242407537261141259706304436151419312811290085840938073299993287826758071125203628019972785482004965608028521341553970083218240841629806250311478350845250487459843035026933603223206843314994736934544168147349729112172632320566612647693410396044855167271833572733755808999150044444744532469703938058427859873310220419786220639052605272837074499366822446191137333614564255466498763845135322562392308125266977904506690104857847287626477167579543779969370327768511313667290977940090041753546229831956091391802746384401702182371811065322349191475125638756571420422652488862023509363930454297117753696415741062267320376857476304601827572514871834398541577517177259619574609043355981527920978603055652010389478332368368370896311045700973214216267739380242949587869991283369920261461430189447902579276581834308003722655160374302334933554049509121392315874945434112455900460174684191970921667191069041633011437808753405911801792166866328116630634404675710310162649456308407444947165790900566660197860516728049746635820836748842336842067610586246621918105188872516576296689989775495791279135225726838051190825590302325552762856335619151131405124749927988259180325219239762032855209594209958707962007749262615895474180260328332736363279161238388881459105059165326811338156978142421200405066785143235859243870106491624681126001826812476946121604786812296926339610202002303772565230220691547144887818891526452800290460739067455176554072501171537342404610888168354985084007379041802228407668980550146309728389023026760113243489121419101367943891408541500958447095536982682651943522667444541182115404092303027499913661034217340888455349619645230235153170127375093506690314280605706167058216062389828472154451767786222763472707276288468026657749196353847257770173489862925671547000586467002714931548098801149765594946562265295112165969919351359483057473692575582639911247196931450261429658362567942489768395068968452466640600777455837602522490794100750708431414862817439643222284411724829319382203325980335479131928069850186143481566076384852490925782330025659528745795613806096866941414907745631299038899348682963886963019751798018638795442721984312587950740508543650892315372858391798797991928900332211792402097866188235814072743826523318642744994307001018896705268715831878351550143374680479832312524646103791071290760250650921425070017753135631998269076554543025870094925074802886741992180057975911779654384105668844226049285243865421190211078983620774350495727887046607228606238213337136699610349953394942671944565457803672706387890098557694869247211149124184884591661150124799133307382293533393750359162911049569950767014666965729037726111318950121673430818119923948629885970363041891392811352735532273698891062106240317047323172966131384149555150475303156441351860168061943937357193058366839413780822038621314614920630064395583361218394580657089004132796949344564925245657728474990453619967216654120277713829643279264717382980594147449590428262940301743408983614570724962889308933112012345497677281094616845960666329115785735199370340759948113260801670496607165844408060654053363546841094975695893238598102627223526188845176880048342650653680234942773642815529127546996434551948121727305359889631886965907515683218204331522436203260636357008115928188851943310537360436671473303751756225360964488032161650726480023731973151970578414726293222194596257386406171232463805851673452434236088597885791850829853837195243825525423890685087530488982201799051402893013714400664184460704017966168435550044787048321612295431470566308461774318131744132546904662817826380764290861471242099190137862268299052865796039680014366789228943260873145443559144459366454683571638007716664294445785292187335798154589442558280652697426016118959338384045119143512382381104308168727938457019492073738995874865397778687232779496730949811559967630586251864567650551703421937066853502424814814242631008711083108191911030770426840388640158498948235661358013189452802592504620320883773449627230534309492736314760043082895431859063098829693134735217764811041445054130273784609708762819677034026152532343272309659216726583403628667344375326909200145166085955998736582676550112335470478251520513682716020362971833344830766459689287426769153504407631277881208350208343554125546620850765389823786093783300497108079728436681319996547995966135082991204830569100739064181357104712658686355784178513433369998315314200606358535844293619512323439671643128961325655743780548972619361813013691371818461062669645207631243248104809477511798262174646047580299730589360460649974537447144598512401126605472059442828147230104665144984637314695797279970645862192715999615806952204503026825316179468640195879995742978929302376750863515031905837593176603585669449596418832636851401717107248528877241573947353017632036647028578311778453387298442599541940970337616660402327197991378522436226332052443990065380868408710103099897383900918567128750340144235602720461593735915333401604800530685482668361590786418479699666451309223040552734494222068134027374847352986373200188448244576980679335895171990007745200235244555887230132963315663471253003121914359371904494841367750770883743735420355417220208626933005289303423713987236980398195504022648561693604851624069593859629267023162689232218755846384139487121583518696337938438834053448924674684725066796017987830853795067484753845679459111547219854443754323675579843700309950674902902622387326753587033579587170930957564301440988027194317960377602458994913720844166000101133334573893987922223388188590024826327796050548047472016097423581850275242671004487029715713638109319813249611965136860874526263532049007451895940464281217071315853825877656011537726166736836702656020497422627988932083810206155519610871569945500462488804495996742150559280778342090073518879713369753840893982740581396143719335927932429498437299613190067590583668823784096015990483499643012685988719458207881024729973637834484512606275374007415773711211201778034553256965500200450895808761471846684968628221405722596286166515070073473056231030521177194404621050978612016693597700349818535726237371710140797944300046374668746189746478717963092077695027778156061467899418109533236740588276449844378207227303633166605094971423033157542570397084516645088616092871410356993536823855286084119286190939802247032014668196596187081950827373773788629474762444946154717664921005812282181400582969848655705728163697683839217963107514939468762864220783752549079763923989067689808227699558638495057405543286759097135645238685593269416679110991146714081990802669984175231990946644419256322813741328465339672650389944023113359645136573031598716739362587738520951554808477671018882962912533806282110897868161382777616368410304726431523396970898509127982242643587735027018685502969806707385655034948359032934437213820756858730377853752807038334170898388337863390963432092724755925781100087312519444362010070467261987480603411433236623160158501241008501251022906086031033948652148115319302987510782245049598482770989761630110502929038868740210928393398015652207011348436495048149402587708488079857355021494711094643974321376145977581184460254908568035989533067892247171917118349233250799810420054809182714047179033435995018771258715715590233899674244912789067772112118815906893998836140341129673546960080713639269366858821600031651979094560506941862539138378843811058333376159449392190386978256377628211422134822718723391744203750596891821836300260255058714913465752824064754457607389861880964735039876542352734679914156611865478928986596435334215007252899473946038190057245670411005331655306968748440433930956545299897744434329070087410578704358467456966479364109940462886372126740002859375061783631336312872644935826530214475969147906193519054933512230140821038847068880397892837277436379823207303688848573756127350802374452212607335941164310927959002820246372496316406534180424031693234249031816238514609051459271512238081290525627085411771034637182208117963108068258635185293192067696334914780641003454662345219655890858022448534502222637718449968350950304672882387428626975093822991532284886373611985317174814339698122428203208611098727081014300620616137659307043620995384074285511769473671119372587018861520539985606330230229739035787991529024111429380663895236599119773881691258536932156766276150413392186724908891698757558096491527305392328615742516205772325514103619990758007690454542539002961988003365013621290125137418769971149117654517064164787800172564597871398113587285172659552646264424440928267111085240099912365632603445541814766062239562327408500119339952745018248123827012054419494308570191140849506683810954973853129782784935252752082604182573370240410511003760977893367600551908592156999414346445955749625744187314315074409716973433731292571389661290131345104846073909490606773468326194495053881347675175314139201999723044083669462012110839684231829088240745838566717862139910221876189314946682154731623987902121999202681330812855280622614048652659365628974808439482802022125208253656337388171404435027340134272036689198189876641818823116235629281577346535986883942390573933109743568825323260222287639530968509139709921031281278530831835278097620910756111519208239583893613088182569446714270236348754210457995148555314521352711543455001820385582554588731012127797900237726190919034808188725583464465896594388107763254672394880232533753645660150954682933310889513209936196176210188205350434610238063779730566412700655353758258107348245564438343368322604151634239088284241265439561434605388642972477016146630124263331889005610558770838821388928036221889878310649669751490801068503028596776356024199045409690483465361343745782443817275320516399009670020306772278320691608522722348722937814120104987263285472565928346586947359401079801307580765214460348060713085139788400390639002060903184474129110623915755214463181784691061934574690438235941002022097897811179801405196150104730167917919423601356592509692411017496916439029184136182881321779047725439939271269756507604197746980793024868731185305898452692915724579314462255773008815016325106807631721990374428225335093989428923234720379612047492801066546951112105481826189851041782057727144113329249886057874029089515021716199177316759253180983844721042102456546071060624548636310010870226557725424110637894447159317327410885121779736679266417796835312779795414456315154484176280481258529003191792065340580931545929018963616081570106936112685024200893589844969382337298292184428990031391408647013546214830429123351670597212870755004597845161266100077538088618749578109026552054121867843924719047394901711105276162189072976981648021724180731440801864423822829039704523565205527165964639567523869705715989125293072926693245750194955146367224336733284773392834680179987708903623505535294579564769424806130665789930493645279422876720327484257198503614660146982891219538355543322021438811549641790613610964841082289565869392430952870207565949185411240178572161689321260917659694537429145141319308494627911168957905847889106386965841791986419348900157946836050128118759796088208150469480308514426893202476020135183304839070735031055733385655086843644198752507214686872422092197563929629944188883550962389743009209198693191729190914434131044091195368076966627074043257228890195900670357491068931518859290568031338003024379968541838269181993993672944656512210568270262944992465247758216534106490278949420275472343943276622608437638915259520591860290388066820280244089478826557868589661623600142511881733429217902393708757150538109711395289505197717446515885328189724964223223236943268820560085214470608138908018201423137978025886070390675346558625227720244426705732131075500962674982585722097502331646911311510417620552431169917969312301735016558760497150501451062071936281385220430175692121095821960511426552808099276627696500321747051886502419125747269928954046999090711937229540876951231319427005768461956986321549956048950228290393505753670016257938104989833931826222001242821910909932531398238162474150311224266881622399163540293373291317138374302914498905751018979715210785572001620804690948318008254868514788431052619022854989355737739892244178982806652122530716705913075133145542727482333008542107263626081430726268359232031415578848291652164696480747051401276156180701373778739871322551526817049225217334672750950970732579446383114715996662179204190794909372517431598775163119069612672173977001307671778299175263567730366042398352379830354874904319851248870917824158740357850986742775487805958329203653768596490452441690057284203558816824441611559983859102924250809685273948668332629851951395186785696144803017552246522993979312530117653207583380982767627335471970163791351882073790994423706215663649867127771314791712537391453668588786231957787905988332514778533186365815874220273730183662916021696316928684441681295865571085672652808379639273090379705889821965370638486413688578542619562117830721910188050251937610479724593721490724648481612097021767284315196349045019005248074357241449163373260734828023639464588356353959313560151172749667294907533119365728902815790711791476326745388866776951420044522102327978152568882052796271877548676750274779904787910755838447265485690811044336755064684613411435584909190765748963512009864716070950485910309024911662140693559583824563222748082893223845401272366316493065936758378877486799447585928575946037432858066306649788266933456970498800183412089478373794169188611314501294834169673802306956033409956042204649148002318038472005915177954111472686224249209982380408813370725267242588006256723603924036888999623230523438214506439335487604921458263871797297226235789257476073408750972018771929155005662480638559553486470382479179920479049564351708823396242299236828432938209447099782004645550007709874004079404599976775687061572604541596242503061093440667275473772920226242074071156061724074140725105858226513314110104669442637220959685123892573271914160880635004292573809182078650669390421491901698198749737273040473369492229510908810049881297850613057504762407823288202936630536987424018194857616430125404037122280112462289284270456783922825136731765173612084442444222812660122256929137458721081030000813234007685315217846328136490098099894587606840686014909817144831999398221645181713970311965150988492977947178439833803298573513467358063132847933023814410600026779976578904102152058356230401076845333870854245814639925749446206201456609676833114295207468642516661013767895260009746255567275515070499827132381318398806011446773609741899206238353518844562965207868482424689404217494760948585473963073528096028425058385050941879718970782452393283665603521702268752780026033023821108660715414369452552971146488861748740593957433716953525861075627570180521570251431435950027727310247093522158470870634440990046162082806130455538811734859035488488162224868496671162192407279878476594558290850935682848777119166052007139325928958954621356409614331612524874613310461178770233175814848175281425916335524630632903705600810280063186275238322071250684489629040732293299188500718239856351369456659316749149390605274942015679467638175987997038973113493894417513916630805124398707293678127834576820902424468824297506423358082417977968879106154133117578562130703897170448840956583330125994350316582198722928557016969890007701767881593462733098297620140923070224620761956930980666995728532387766161711674674986177251276130144124329879882801625747771324388031906728041412812448300505739350382105817555994233528958746753724076703088049044241987865616441204436911539492277897379437547666429077849823506353888416585413467540310148401378610721661999064397120536865167429802153954581826935903861376807712366040855941503800020481894831400634999543833099657563854245741115788358588701761125442192174758124078737476864269076957423753163548430105517686652560756236703604799963762979721950749569863978940698078099776610275284600638909742555851842553391263904277243803437563109430777582819140131498894018756423119553794257858034209398500560790103728209059214225872115898873872641289401026077110063256608871633149583654613577804145656243600149257472564832391920033086261616863506157295835553541355796077712539185756542176589328508381145117882832051389607525815475123498730498285320871594859598406586853704589238530139778538705107276914619486038804503010011988113998646977448272761864665937486076787694418340180276708695383035680493873329300346041352748610050761850606093505317796710221755575372809244533578833172794589171558720536693266044578017306058920932434834612098659891497325264203678358098255800885894708582777321869417811331199733686548296964622840405143718516629438701032350789992756779875250044351001203739012233737609792367178278101621634932515540495477944671259051764685540318461543631525973322690603537972902556798166350472565703343175597206945571966866643721581219651852575910918659287226170935773330175678732470437671479349750499695985122050810308178091929432075269747929185724971467990754230581465146837812257924206219727613709081396238782507331580259788532450294891184621527036231329959037444868271338015913957193538116556481029486093031936512344287305473867408142746433571773215117351333427754313233933350940723619962555795156446409261637835497584525996925949114015813487600161426598716342561587480103190681841133373345143174431604368272993367014216237343413315747601346784385342228889744483230613811763720444366989157033924705874350142668742301596898725684327412391028981228636656357941080856292374740504774685126019461653693384325110774653961570798137285006127270911997411792193268301489147261284144901466957012646684305085888600453673049839824706663181944278339500028763281465361058333469389002605465737801525343602697675128560566620742294777632041949730953986085430436632832033310975115773429697485284630438532140743714663938881762544383356704591299431012831794217021458294132190786203712869269778881422815215350538658744130987312677648537099199887232168952327932926964706863111644643984146530279216369222716818459752982104700744470199663133171829741873059062908895217872229596349594403822564818077020464463689801185660437552193710253535971795388274034000264840093989337327393274493858043910515155110932211991413333330170478974113253301897071840984265017261789789322964304919783610994367091157700056440885156916565202394846314425661831908493488549478991629381950659520966825750380945950345542384679282069176493036926341785886253575864903111194310182801125900378769442933008751895180490057368364440780089917322816038826790544525650928338377976860395222555947099734743923455401923552363707597478873924851351254925583632193874492282810716469813736560628416074475654129381656030720757797512912432709653216931380069477186081645776591460354019314668828249165018682919606850117317609063379786599733943266667314465560915366181101690556869155191687214932945050889001916067455885107324832481963557749346276876221069220834104713053097891122619408876571420245242344955050016036380881873495349791660535632272556523695970809109559836323493908576958392278528191273629381929380736287185592209604631735202700156176944990279659704895727399754290160646239269450778563905058747259041862159321793097221495381635821630059217384908282462357491300950955180493076653521340673105335096813526238768563011499479041183702927037806855577458787891088124843292134322501736381430751623079385363079612380390808959821205878685028851188291732798044903807234905832495237201515296434576857188398600633052394739388722940784638560401373008896620563435962598659808581082434853850349997233134259594062959291614992683383180056134561216463763696913126083604567757622391386643086766447150810133408584378707165057176066397988962671586566747272200256648984604921702077745757613720512389766479225219696119986891085678974186389094984016821564840784002875781476952480071436883218445573761698059335936568838273791132845775651244270223030726442516358661865670996054115583158234388346082175882594001120407043249226309725275985739146100418941704607043020030402629316086460993169111353511483319693993503303055332672743490671114926937975826385221164012705625529219701561339468418943413280138947461633836285869779813036905546996747816041370710423057163123140091815820939867160851182962069694641579220239963957215671279724967893967439002378973330817883387819421735474780266345252387706541780337852550739936358426128386831915675512987814906627283126397041105694794141675039297051241705184577658978255306076764609270485559626357846471180561109592367363270133849145757325758522891735277186845102315942299721036866426781797659520302701524935286033010112800716834663560723384562619849998288270938378245238537613389873233971386829766608217600038583920991014794728540679682974326418560134220304041831031739703619492427572614134436749863866779073503512020017180930359131737107644570501997611733305274779257754041861829712661306119956262865655221111392748302334837018801714353075139844734765281303043466185274941215380385038765575416126813171363335027196675008409798155323713524227712833961959713332470548571444861461813872410856696702589369022085834875653151489527616150869983580738159274434656279370755380086018797810834565993227283302097377278542254806754745016180448332662865047705229742499861282817753287263219576899328239855227665511613644114482078714296163763580440447227294038254113437829254097360583688917035666476750732265221565257301434286328404853214989483165105393128866858533197705217169718976139178448236877159017942779518815106193278281846831029310276270933628351859574717465048380627965759608354192095665739314501002722871034572458111313262575323758257604147099900433029068642191906785211446529581262673898513614447784962981652402479638371143487001858481641514702077979964669774084217453646440721898641089117886893530917510102403263806727222052210711873010828351424332159814743691464902418974037305735064019202253429284204827246827013563795911232351611839590848394613771893587388241749952141688510633242527788028724762444723019128974502984258161601529941571349597433591842450077322912622923236162508304745543769903297717579755727139588401205636694787725849617391757735380365589232384465598984845001797671586491527549580055457556503424357364878567309683452381458407521548670039525618705754491292480331566280310565648218847993274593263951752424609238854898552797783658920922821003624577235659658778923520728744612210305784728310407157646480761159405687109269070847308294640488755693496964071316521232906840053262933365130830546004050983193490926435991548054630593911591281019195915667969342220553952328393344678876232814426708561861290829452758474506734722012074159182879713299200929826217466485377436472434588738961973218251784533055166231388634107157629329096098190138629668491276243588341106055307893067992340698977768991144365873137627556862034477222104159546952227892348781937455514534893080606424580356730911073824160349828079750928988453366232984313528596269865253263937552860871522493345444881044788863007252887497533999949327019213092272460046302820221777992475121285755272805257582202386607285617906255183904836026513251420078933520308272530622894167276797979623572989269676475605303761522346053638303489274465749314439426001183050386652363902313104556687017805589708821612270300699699372815072673138714076658641466019672943240393770372721300182469622657303572855528608032364799055578189339258578028464432818447109446808567455229533423245954725698951707524519332537996793529544483430198201547742448455451006460241450207939484942094728169141751036448528820512736532740329337378968532040657048018047446304089537477877864039247267982338365685816443716229364111949784586749650165394870223998952716448310014437033738314805611630310423717736897787065968510743935405453295303736744516738874397267800379952032787450157926881697254126113716194735404772285118140867916148329599156014191573695507296608481972815319395171435740617843488349210581976659705462637083861335837932408365832226279561698691224352580754396479278118399102258393098242128918069482448664111411622767651969518749681977802973073695729909589705775343986648348272212340305861332878467769234893662051224776379385135547730437376114635315139375030725756732556230468019986419877189795389062607800931063833738233527572300476638329295194878530400695683933876796908827631620855456955955499100673965355802902580637941652156547697298667879983063467323850351721819677678665252665177449292968118703066891997824386992424378125025174674275972793076782963805350472376396560081771718458506915002331429100443559004453574730547335628380132136966782999730530820263273098850969375082418506118542125614872891479247487522193779962139030786247331275075015057038460621121554947597086873333537373186935273150220086466163045867686655580462574630229298777215262170822325652747460452348020499445929159807004845149128397033845790944472194368564431502188779194893526744064408384289926469561992004332931360927242419625945669840399889720640173568088150679444336666958622159272585272285512012415781689215166709073593183072886886305312492875405406405514685988458467751684392982992397852519916820337428671477652391754365703957254379949930353640294276793587512073085114515534366615187692112320791358590855957187026312710058367511967255505615902863055383871266352675037423221382826193059836183785478172152805521993508185889524767881910323009219083212068393481639614916737302595420768780737446232692088977851537756018781558115802975967933996721240446649950032651710727477357628727312583163850352423486293114305293879667763866733577795573876064238336078225522291713594899696252421073430048233108663646339554451707460037296674277963621608608016636881903816775213747494082546329978383932595328885053283895637829470866170706870297282336138513895769625721426434370331005974455021794706896297575671033667772687732779466575651691201403805726522369866060299514434272996853344119370362024802688021157791846550122914158273394085315171235164736606802287734572286058408156312748693792504115533552754739422019646937711158927666509369352743509630552984702878954252587163447206405089654172786296121323446490623572892698449606741637663431958692044947314509380339723394541753051437143775651857267877087706132012943283183026839380788689950521338330985952261788653821073549818861979568361661654054234203079433120347598238674784501259263207807521134586576050490261788110505525287600505728088515346922775878999567112128640855779087003801397425424109754864649087529686253649819138225081815756573204093129217946635025097826541821498288834158708165632220447107906471488124071972391995451815404129734007014444556253373244017401835686122815548781855091409622738613890965409552845952535197847596534727158517130180055716805970648756824360350129703454704258149044045804891964801034123847182060253629513108477008928270200760538514540387915379053630722101057308919415078273149507360867825559286332327957003225117079916960071084159687249589513337704084150586985747475881306159998241064132398323715762991425000495771546823585155794610311310853473136426227709794278661760479735029314464914470079709190161158483386955455231547156177718799154082570688689375740813559751315839426311581944700671826402131000351451536880243938174608242835721775767933878100878552451620169432098832175840376634489936182704411801573947771259492454595208400506751461853916847062821724131970539897949708372393928949337771647096276302810231666629896333622818178551678189143464247217770637726320479245497135655229072464905925106422131638629565840227542618242406267251242015677297059490943302515791673406341332541974512119829024094120383977382255828768502150367339134040207917468727089731931147120171026033571790047170253569820422498995142260619027136240906642751309757841840269197104015884368895617259300680970494634735380694675733140627203331400526569053687020977269135775702598372171230965432122381875573434792053686468291384455472613586324252962781314939296376562286900071294893289871216157993707057919731401991039331130146386398298315472950541459623905043354434064520180075949940760023862570130248163381335238164603165575820470640303694343626011647082884771427290936824392663689790616728825982190984785568309410111424167250172707760237859305522706262939007012596225684044254220241888378038571106495700586279315929923848927136106801235090762211805378283547998363040661468918953692718068364609927545586080899751968555982540763338874571081962886007075307826895179387246218208942190751942921807670013363314392799398954785472757566005243699350642720881620701926058935769264465056712851328396450613457281214065322959178433468446996823725350088888529677941166799210124286901970323855354629994746845486922106588059070484784540021454285709083192473102483406627931955331626825324951691945523836641754897776467806608673453378371940102649438280026861743889352822317116822154457487067767693118889272209559064623143562960300502096028089203888852302712492493005988433751864943297121112962683645685428002962274148095898080943019066107908478869078180982372780041801492774078495945670835332751085539429270353109277941367528511670534312989214005210817354212622103825722538552574231067597683546553326645717945553845370179713218776191487634215420736341056741062291188789396703110588504321658805824174401578682186380912689720497063282845964247214602144369863534286120823589384296106552981363036333118677054328968694966558027846472357445522441018448520981512853996208122927967649402385952871474048390738512120387506449964326358445231111006868275310066743795881878078556064983102251279243719964568994229686455776865600392924868662204321649402355058596322057571116112299210696911096266160632310299469594144884688183034410814723631684858010307989097778411752326021306246682596845073447189474897597399408207970020331268050708425223346067583310503568664500258954546021495662842491044583997212944274387269360057122381306418599571376517321115944892212337007085163254365281101712858558517168275857247051206777659294323320592640746010732653380026576281843663570281764215923162430846602239453803618472579991366704195456561805205622959155403082348464312645227514183589266981904556608357262115296031360204511122576631864340210404508408485623164656179926635317904171827015805728481525831035945970694056817276659162122333722570189131440160037103145494421527033936452028691170175097715037072665874612825624690928636455262524968520393179775575104617799773562261797296618602024360119526548376930824136351883645642318106076359447543885855710019344071955566169681127304818780894419183901243772332132093583479754373883605484578531702195051207639027583263945740372788348037051920409378481857529861260938675977014635415976894229581449652992933440710494136550206286771341886390741008728656504245554111555360741863767371545070780775262287413060318629600343177142786121966550895990645598486387934787799530404705744041560095878169287653245116824001395374713154672586304392412463989743717222046688476125346119787534793070937379079827263267935355463400079710066236121378228060761777743662521241251489279573046671764675498281500142373770987122535158455702174537718518367004308025336410338289077748677560049349099274485173851754652022373775465105965862231033279567848306236861823736692610408209905776009112273874811422847361156135720243170165372849054409998392691530649881831518048464184689974381348772688589562347612886341279471156143669303487904451346485794679253911642008267864320496648109989619044756733880045921439345168832682434387396605012566575454747891901012580574013747157701516083177882416565261686513151052062869351450267080113059319131906886044031374572713029204562507133890739383298471087292271784101777852836925088225381564734631295518082883248026972967311791121774921027454831927290409668563531520676240474325773677058524595867480542248156354580193997275080085049845447048791145339638665795235216537461519051798102354579115165691267392229914831183127535762959741968060301314301950297914495290714570450322703341154289559166494921096591263497522553709859938867084089411763732012198707639864503750417988113426474772932445051352127551892085972212507257829442128126557559154974883944445303802881892392215344113992106703381997872964204246119476428245536605367283691424652677148252615053603749595009798576283189899086305702790052447930133187587588599558926385827323006635491085819287742923911101799220487163819008143745528066396037355039873190727576825980952214178717582387513462506246471398153681940119840225123149518839467801449899639653008780464471791156048337102157612316058335713539281159851035209577601875220039328606952651512069503906729178389551296092951598975851951414725960247614654092162824253131244009119948237462267985802021387762580737378490766485312207332144790487922107815031486546889911523195219766371677222827949690589205263887816255234801922515342321432424397516434172986224656337450479994816275997790236665825039967251893838582802314846939856740787037920036613806432159188081620159167230197084748505042928141588543359169131032718475555461581170850053305777492350804394888972595192970393482497487863736259608515328405514583466055936324875948696141040147753227999210793238623984751243326298469535729662637636422925334631578322065787638621217405286350132276458833804672150516991532187268911976729423269774805842278089756659201736397323290701637511468565859671349774990194654990143295477061143865189119667639597632131611746662946257081658888381017082071824635279756627337579979406854974874228949526006019396527928712447951569317100010973341334394823045260990132245524774552162451462554043372861326227789108456067528527937064750379237131641703284195175338512759662575879054895083008914923216278605688010866090485838276237411221213390131692673433930239026727480914358670511637054222250139457069068487035363927683328308176298260119646152439308628227258611806531408048980516750277742372550957777842339171355467325362221427256551926270708244772987142525500674126657652075947270926854081744297101724240441005977955620196399466681199861073794752582462353089626233040845288821224371315340122729737468712328720528189074519773417844730947561321604707540155965597206314792829773800412651343601256916240421674201756291001179521317021597962571998537810554456642069030874934106042985650931111872681284884579197663048789632494679645827913519740000888951512498893680212270456120536573197481923037523432929206984767131145547010913245945910416864470576320700367672018015173760098480775689749238320717790965967356100886981694270714009318481085036986972157419493780321046848769582581881630397027763220388991662270060408813524082458367977414882018835425716680932144984898971642071545940460439484156810449510304353785235480190002149573407836083431951039616267704723380664909979709507117574796518870604649740094587861682463177288991861003954348560792950930134719246473460799989862756614979966964900315528383564514802690533266336499836613753679142332664886975857478972020579517388702469260193155033373084789020570399330663675648536031669146363698889247104609734184781925995884743811024084008278371683341226647950644213317798957798739712207699516981024656331307728323334173877346780870662261742835156003377669295788820535059775893743518360571953157477095562437317750032441700771005802071131484778382926697847753308811064328986240794476089332017110783730780702841220424339680980499575375322675953117299632092458771101675393138047134974796076436020704859169511516836604962060683016076362028547781714822793204778722570560222678580099995627641593493833454641404657127523710890525092680963161503901039358395545866056332546686784305951100227000975416484727707181478275564525256193005420844001403260762589761208995717598834745756163930975301588538035967474556916384168884211651884987068260055133899450822333295959236926350317007248575580195429212597091429721712642322160946034593998738202131329186627136275921555021950306106325126637479814796957279068911494128274275967681501822365082346712066949518024212122612136027528438633021849386351959048036589071345342505996813315032568540853148955481454607245026167154849563832334415642624010951040953452495051810900828945061643016939701559743979473062710066064347067867729772838018895038376121109973961333913280866259601530038429567315812476879056338294839249352920508181730118490982733797878688962994444773907267350238522224207110615708477195243439482899255779169547309879583922763266657461425993757587628332028637248083273639940209751390773211089222922543336857795251087432268971690452174155333569201040340601066530315072524413867400710218653835993483701473784034305486746908335377105267824472936175492520850869573638602009003337304025626971815383949245112993360586147103142294585062262266321472786997869880660640769992582361296828634548982556428928173944992597513902506387550967766746753555522438440549194557807147615929619702988302382228098321048728414909167435531879311426241366247740001059053180117124038680719740240307407674360490010440101337104100408542842487240801584938558446352851457309628470181522158879388576403085766633418730463223655010540391076713182449186915961928416846960234564463776083894329716739574737495921691269787022550674783680674231475756729456665446956777766039757449010656455280409045366591767039020893080466205195177656463041250823245635187484734072884842165207089349024027493630779311583776073487022159743191168177636115136937445969326508335161004198687466293045509145206211161893780793221372300529869100475578998765685795639975386207024689066220091109417342627008598092559045654243151096863261725603224272474433489584477007314130239818464979865601229880038879364054589678414156299968434097059151178864624603690490394522479593691516749154912939289794437360012874189796136718214721342484747667747131173167070012207530016882491363571785822598046857745941102527391410696436830755560667252396862507731257089836695596901730536954901661883947709641306220478850709377759774486101418623091825412336532208765032086164988968045404389451163040732250216727473037197738193325136326603549845726787113883685125990243745529169227516294983821679355324166657460825227026144611966098637511883901948006486321348835759293830685042269188895299102520435023460137581003919855288297309046225856219818788959617662855894080208590556428926208799030087819341503831124832517058331717801961682563373620448756038504775930840832882140915150035617575774846001751583939844963575790611739269332452703594534566314974090236707707012341629676357691154830632307297740081259111871903429350909458360045495859744772319024319294136697485238517077163905065774931693730155370789999166346107809172663960729158956850794113117011209241540633416097939483996819141632366977971806961700013672657301626581648942337651050745159599815382805439922178952797336753376891558209208031435948429971589122648679916916347897169736647470212500454315488883794528180504418466946346980022433391225956088219708375196703835292313745909338742155285285861676706632533875956761159591831285490143355823824385946367215776010438168725867453836139507222862591900878994033935644718231503338939179355271211326580319023617885572176426193853687921072729583624009888796780972676968195900698693987180119941967126059584259311842154392510275706979763102232647803482946908991850876227343335889286309504038074132589310743391717695682601188391110015654091607941910712663042617498924500455933196633053377548028560534610614994751402871650189925744899787300068725831027840101579320777105715567302094205571665621885649557737096852115954020115014077221886788498598476376677672127505314756647587407823576437421465874250583376454845831038209122481483692795094008922092060128568887056483282382073919165565214735604692100445733193980620816052264409259460613372790664364182689266120255338929647971520512771678896556698694306906213769688011552947885901181113230737387436167828912630206617558607711900563648696165280547539763791433656656292991031201273632803907293927167084642165022178121357111175235691303888688336880070737366637699654656090895693229291532314893204705170322306878796648333460294737490171314362930848100038486729094218771035733506772045943139302627221422422116565960098026586215132326803975152640615197780758546969971397940400038013083170687574261667745926964741128224780563857747432504660199083344160760979325186103361541259125919986168223228697148134522070238905141148513753176707717670616981126786942111710277455061240448498731317050167248867183721920525631321750500524082335664819117411103365465198877839399960608875816045975032747907889285355933546564759829138104769480824121144621411170856257951690273806881423591900829085972237397439752019055689102262410815031072703008408412294068201494982319560473765857251599441518340849888315752395172777251726014153487117693042776920438247908761385002292966893436323918740612125446310560133637382541325835057962202965077777689746276958682129000047071086803525219203658988022152610291381111145796028480049888764846606428915405663495030324393164929791780197302027400440528443264773125386747013664852562196286852232076730676288906005741221918475202693344338465284600060804258173865122337682533780635665005206871836408802119996074277192583009364254594060231808359306364284872839356264801595387123376641926612158311241244642474260888426017392193587051855406534897577555919941979032362736290759357947058812721855670075806945913915527086447652613116357969193428268330723884976615204859552444623715027169652270685357519321145948966684048587940676691424123965159750908727346731249935165865066202281695782641898108635981466292806797035560461233294418655937054529282454915292261266527680366985125496476622457523342954107141769122119072143402739465869381692086641023962870708690259795766429465359412377904265630211906724995470443964349296921448817342786471553689493092772233760181097288164564932592353683367305904802324822129931468072909998694410710270542168866013492360002264485461498493769896572779142830350882463851789129430902551086621011919038922534472454045284154225556423742522113930773815731569629641043218507532843632414288764406123844029725355552824201072527074576874990086131731947525570770745548224587141369446102339997805274360348390745796792392268679612928784284516134740569506481978024156806336259935371578150642063948438555704201195769043547410906637072486455532158248240149827927877080839754981878359655103730775357418309066283309535664150853600275384411584782074804587254198509671750028877697769447763836926805805519221837118108480136189634269219352238805032002491600040325962987612942099741721288564239728964473860806986130744584615192756367512563942865898454056595231978064177678529482393269617518412795925474139594868970391132672205057569488092806800326758252216086516466464399160498113079615060352395252113186720112612058063598528086992080474874067686090059957119926220756188881363677374033194452884338685231378921926263643244628013530018876371955905630915624137779609971660043514799867192546947558303981102216750777840952649294623712609708388392778987110242028167509263425574876263700863546262881889067320384075661369459352417959743984285961165635136620186692645043333997826564911151484257435535376426334737842818047694925128241009664067085081021333289186941750385961733758531974518032825859781502099964274133675844725509990613487721024523234869626382709434110740527132163492939841671794743751415656551405803320439721131774769567684200463188360737074859646253171422364195463978656649204486396674041397592484485162632869926525835252450653814222470816748985757554297039087679182292592670630208458920311363258365691408357865840754659909845020648306341508827975184671866380237241277201158100704079601854660115056755076536987200244533217409116721358739237328798734369588099206333987171356290389495549373774145227219495737087101088075777605247585660032466906173319947802134047527748550592622707890252499053123366482202552389804691060345879968100036535101003564427151885751185552655418268615898134838443942480997506208023899075673294205288698373424673076753879073304526007654912542740644592836913395011614554370989718086074983213908933634538425699258929938252810038688642079725247175426383553946565357418402997821252852151295189900163911737087771852174275368415476814188103963298014481992425926502624754598846892908050887912081118820056209019391793566613588985861186873964893519343517942888162213882134918098523632673568052381474451252114154288427501073607276239294496223850846020500053986844731175455414548668619967047660040363649645937166212298042279428244455571015711957419046719749077728812851413786049209860027665002862734708667645529227673253464639826654942368723776769025022446477019831662212044373682855447903593305616916922973732023091451500842105399089144205818984329556668949061361185971223253074317200169067002009235928774846676273830761701831614239821886540499889881576777679215948831600355765063920573467108426344224216173689436152464533332328177444846925237037787108045475368663734462778087918203275317563718466621336256645702222286664278821641388906657881750936612211946198746495322780005466408280286105035647026093446181540963397873642606815820251628999173161145773798444569585985810094915310616011046463375429037842775301857099288355749508259255861221548536549386540021304311329018767394787355190295999916432922981799909372638950112929634772346646701479397561526287532431706801791492640734387454588887251459320236730693131616711702894851083740924888563520107336794724995144268941850125471783016102944601272437024808311849617553094304031474470209268334795715072168860628656934137245648273795143247578856923868998538404754427408435296426386247630168064774798069247156072039088936492968054525997942465079464999571803842250474881150672360971836869705467323016864907745095519515460560493765949517100959752573572243382473925041362073221798872920906201018120611397115030768719617681287300147855728894606151620070186088472553967296414711185000903135360572958856763323322933302043442694729076379330277142756773780818885145567517251596665547459077878163286580808401879127566381090670190312572958205158215673935139343860422004461418101250563443485153778024503866272493465222026550546549581182007910110219916939382435958231814017061935204729695156543770267061900092431375683216980453061750764058945410018708923085609839234819380128213985760533294617245290973914497076975211277894184456856462423395513223922741334453821014714850830854760739241228119152972579664267695350970464790975665217800932284644394955952146819978327295588310518031106069230275551178465493263543711768903724741726290971764972919503506671817353068484587258390615980470584216770674461236918479093887192187857835025483727435017153124323639809903013210524791195486468178700145946036246067581077158759329596458950725566028500240505511059157612869370933097873419622813269992091458965488160198078993907046901478532927298289896067170544945694463097078526345249656573039088775140286039390798880631034848980036971860040943466772884071834882404535799270724798832932949462341514194467835250904052917689973091598852073088891673392040902744044928613380331662887355560884662634878577002500500392821781085558239109207024254086630464509644469062808717711042116116880225279395530559018040456520534632952832271845932523809128628901275473330564027705750845221601141996794919674214383269090942706258212142109710495186206863608823620755868083508875141703226963773565065187390380565715037205487404457094726124151278414760029373488656999518563453843493663576845865181356001096161549010371178960045143948001153079812317369443633055119259213348094181157809723609544951062901699649522664377062823151845385159170662549307347628994239612917321888629643765790411933617467587980281764116926727739332472541126468423157184785798897046472195179870453912675759885593874307912149429446791451230256389357061226423588585962217877104287811673433764138833544331740626923003366219276853293562007809454583387441793792648932446886639277643167868748363403926320945855110875652313115851403440412208118115970671690498816227808879333318582195435257489792035279697260444938243080112508638014165495730277285043382387090172687807280383296670947541426156967130871265365396219969158774562785766679733638688905893733320178870686793727396540482874023150004797401501474707839332068833263795321798138475082103922519533475856233384134935348761121004393605740022628959455359964909703508552727697163770038742380741017385720673597347748052916087948767260534877524766096376273693923873108143050770446439724726873237354478830040394083287201289613823107311507100894282664344811919296416676305779243323959695311877777608094106968580488388106244763748639417010147737405287079043493520878073600483185255769939051392402417547962483229108986660856560606489585172425044889179438722960264589272047411091496374828587717743755883655365979163009816150213043752820581445428725603917132446895008173593106837445280612398005380175978620988412083779851882882922237755488891276058862309787675378221963306247400778617583960286733609079217801755666720632825114106230266269782456836839496784946020216084191818752663882999221158182288249983421562620148296826634952361741087128492808262688874117844351919754356087417854231179642425160751501988651190461116537961588935888477415209418521170263522377164909160747747458811582194233982865565756282154798203558509663183137798702724388826770863050515938666242934620455613072594761738620617678033264957067759582332570268191577642073847351425784597540660579556848562124286091318975657578235665817844857978927817842158043754185996998587805006698228673196928013360837920634592144896490505878334205448910954512364445683561113358147284043575654858384853506431087384732887819559578634659727941262237065330183650886463517135279171827548200081200710859021208871233750246523180400917369652889202891102774184862656020631554954281156452237628904210782905370725265004965707447910222993290139493027715560086633204446365871218454664835703928224799603014028902029175216160092970379730782150753030470681546365911035572913039793196000740240826581408879880654234077349466742574139729020845116644222953681375636613807185658688193977562423878956396352794032075438488203683308366467777440783174235217022165378551345741561773363348806302277699299741960984396252658018531070975415351398695660689561679361396606416186213618442670661871276711005978827665622817671251017986544882934976557766069076118921755536815044688319013561973556818078898650721386389139208196041160423878307610322243943898297475575176123124187658201017889227104042857133164749431464613409113852768506389985745665552986157521042188966995564398082477611402183449358718962749390373643231968850432644044675798920900750764578256519042102950670274845893698861415761312006866500797060609699102765878524857271112934468410605129490749502018950479661882355177119015592380205879241816208184587763250955800537091676315722027808656061424061907518306052182663938962018970433640922329532618371615396967305588516102552039670964690402781972802168805704247607422016003248467541761877245961262146539858947934306776020262600793442203869805327510536091316567124477465863238917044154598395268168112194958896401809685417308696268383904202068601787421419280120503287996765110956097248536688355331607888600343750943683660799657217635832836005565864251973190784820211284455908416297580923839083724417794573572213330353349380285915554977145780556080505609457494763187071280904076258592806996643877664323266808442463506569701979788597205567758132034290097308229857438898817211099097539990273536930892795118649109217254702620753509544830477325382028593904299653397394965030826221429678409584628333716363089594661700777181470783910527418682615610258151161288248639273343815044275039155765770894805542132701860905983647134585820161348714288750600929215350981973804134995310070988717143275568339531081350655119862063546941433189662307060975596760850471144227917416751602295305273754827071815211337243002641377039078162570552174552067132710581259925474605571335738405959785801316233091162396177899293881452174097835128069896623538261281869615498570845823141192718851071000425874103757342187797001926423027115453166025280933445112408226649894937027161749889170061114307413191238819908343397481738054630229670119659350691483945385430326389460956909837194514074229740420127160901002140271227912531288177491861462690457517771679580707689007606985101539613002277838717877439710739706121730676004095629464313569208025712275431137185130645220563817234674077204250306009806976155039993187088257235394144455695140842678116700874505701019445905441398990364508186840423041978932862732162398292755337455464578711312818593510270784119702115389783214298580065418747257656816402976372164374436797674428194106931015128024712810845791874993558277914126659931934396001630297949247828309911303966294643807119198674175846100036464572209764437694228395566405028874610229304415056134051830489824513891110597447128721231380313854772844497704860525098817890056036613072800992782052546296059424903327275241828206002470093461587938554217386197887322481922890755566262405150189275237660229927818866833383423050577098096980795490060028899290769721998500908709865221759258077670053256731646698219498601786323238156843041534817705354021280047573915751100956496518025827246731878678860940629668295008749843175407032750563554685419860581831154240249964367892526192782746034342468680107995175960426804337936674551479766052782391436344096580529249732325671779617581038991108508754936289678753981178797394989978802973236534408847630954985505235166363433804248458326256229775026759857193997034902141920152142212660275817993719089572345706109165579596809257759958485666414255933745507307115788129657194631130520770095683479319108130262720236491793817994006027038344112350425674986833456725843959705902740953248419060301751495975450497805343597382982176693856112362227680818704167047476645252125236780406068938520891616827358023073598614327994618352763318047287762609207811696598618085133485352868561828189937770833796648330893364819436847573004116622905222199012481962630127135621062099366976734167551211115080926529821405283547611019883292601654855612965289480912365988628652103734058747090098215386512596369235146300879090970681310823853971255005634595042221944839297958168399917456163226680577878420961395459236992453808787513112976977701143296059719082197345012455117649102921929618875754366083122161539768733766617034755218381583890292885266150930298491989023286925830221982645295409612322149190603204750268377824823651074621453617009963324870491000466283894717617396094726700937194832086326267059135155681870193952192150047277931643294868103805860082038884463399099439782959411409481512849339534132615822945297366033077015025593737624444833106767406045340665427595166097382379281552410364303416043381430372871606340716206573681088725962324895965025495687487983228050647837060377292207063098156970848671784818154269545310907063561867783329746066460327041908768011670600653519686541164299074411333996366718740457600190401790097608844735741210488475850406548166581882244542133989158647904563951109931609108873671555857948345301582855291279396528840092436401138419556752274563583823454860954938076137603077403774424361476253775797815327583923077748565020103184339653615192205426798748344003643719629788130717852730095421007410978837563572516727466404073084389623930258218362208900887191449926959689355347171915726053624241439864941693351878111034763805201521148692929720008921330718010964354234127536342889513513662357392455528552085596633232991526791791071443347285788462695018297379256419858042801868128782694624115995870073822975718025889870576340366757493600277716088328763475644528980959527912921532623902248089934623184253977074282096409460269610469735389899064389681919525648013366228320908152105458847863063082077000723856261095041334964500535933594514365132294401491149112629393526144214861232174180360048177101846139357665476523474356653503591081752724588860784974297611240318745927598225572401570124964090674667972717971782770347695087371729897699675393825913760472315052136180800035433187919675619000942286568231856285498341109233688998160711288231868911373989108288106036340275705233156645741809460408401926830715247688063852574211158268681309316065768677038546436214438161497921180378037329794976693658445628223172883399313657735634439847151325889406287479127494355296315539717307259795639608363364332547323629527277079026029422311762216586322709469120314773442886694263261690203310737132089383072752750392498522025389981427851414769191946092057759391788120040018641593014130582990097022864183587073155365871310963242294856513091824511712740421770930405901870979085425337747455135752189001267214626204902427321601581644717904377986121093386524944612102875343908323940069071941189113081167099005531360811549744843641664170772437150392781146861284577864083322675672273053804300077074568535445065000458079976259249027083229642315204454101077906125171748994958456672452128459262681159448850970450699303827694442634021086220468833926696363839974654352077159259941751857130471147228544926453117042978797005493566949770880644545022601231614996552005037233162979275110078697318354075176704488829361486179525663406541570663695557418564448630536597733205458605699950079094832927251030259920254116301954125365902043518382298145112557652247517673629421854307162768326407099390462024585514470989041950231992123988225064541294664699855796803268826764405560319244548228671401679784333120633034473951993852652045992364450256824374594239476955407137355033962615814597064863026612858127871471551377961919395364658645289901311976958383171630363393943384839282837249377811852352500800933454128337568382189408603606658047608548913983124887809002225483297674577543523153973319402425915293707844927877044446799652292321709907062569543567024445774523767743243387762707350584976299739372090622260755643222762399828106040224417724494758888591422189545345234988881593505635535373349915021411569134685920107401949902529234523073779992648022146336662735366564922165641744234965668714477587441632046296770676319827218027123685342760202837996542060885133437738895354424281022565440901097185194368464846573983321513325978398811654316661911684897123541057810345077059253786867125158856915692053023425543958328108909252919931767336889730337811817959560731655116392169162498655301173333992002323118921393957194879585288129061783879341574729062251632351080004655679736487423503566670341407779316744296142233412381893941489150288625593133736178314305092269400369050095957810098548169509289876735450870951017584468294926423692990762840068553874916704729080327959933885589522792891223307195974297497271520588607765678776052202814355178659131168484878081368653832777941374630821591317409911829415661764712783046857853286390887110788372136697406408742192672021276834955098462247566579403487527523865667795231125249474830884338096693172492749136251556114377923542823379088883037417012999369125121610337860111889028800545145741602491962833776626909866702039033465197804479341772956144138611454077034851939012947807594770962345504627875000492376473893301278704937840720868524717548092333917483383346698126503647605868465258234590013342365336769555826057728368610582729999946356760367992646069822708286578584958847494514049408534804312933716145060983009857154277372252498744537799769530487450330254218914979611324481333338134966863808868753440432144944340787703102761087204942927448788481539923713328713978213915216956260890464443589692030702013160745314140116013082624865801057607151711887472635879300322691627921968482959071403212433356693315440892200022195301757113071855841563101512425822137262674328401752753391820750675864258187803031557260989397199328188995505669978103824747849442994851809859052179249035300614532953398826173929162520874084438684242962191971148484847992209068093185946063281604376652379046698251464327318862483907332812708084572244910551287914268779801098687155863487134470101961156670907913845523710855059868088866101428303488140609741985680213816371363438661257463251916223853318304413532962232935152060322232440924817254522141367539759741262506686655095068731281835241143817382089712316550091991502075435304139075571840856380270632758907460004626702429928735846969813147232276426321131838441232870769805620711490447510272600419879572440749910390824766722507156625382490118220872128850674643346818091526493159045134742102084887975779389115218983389493706753119260145374530244836717932993094304714241185644876153594093637867548680581045027966968636087283529507432788275074561179427841441759781324764116762620038415814352452239824413193141880876233262108229214232113227449513942965245170834633496165260572706174155298766513656719658616571238875254860642964869029874921727700187163931195780527612647582145222507068245828188742578273894311668430461796806014833376342634939026039708458845798426687444934871712215193679547821057257455104743908803585237904341166325849476543993209537699762578839575738962806535685645074294304272596279171478801929477181137157443375076769407103673267350651409856723533923332443052833258328357859318924481750416117472925812957842806467218337976069623074691350907058875136647959739224371869601465959760227586068287800767913784978845646141724585396619466135414353588875840328717636908418495555170476938284807900986810002171746201383370149315479822378818529256254925751186685558431047479070683126712796987779139963041948560240620284470675041007648564439226631011812587739891746569368548887218573732931887782029880311460512529601170819184356071655908312807596105325049512630909125778264313695091484300711483739087169744958711479091447785547891460888707884545896183080717002871407659331249716314328552624420384087753009540215300386313970616003383442742138481564331806186278312444263790600280839819524174225028657021072690051787067366066759243482254268155517740557697995866794870038019026337576080945345058875866428349925278694367627358877312345638955616909069595892108020632959894223672030220961548117491836139596465848212684572690064096462536248315258676361034468170265060834736388662374353517537563411818622350198875487004080432755490392816262011000025959366885143129651774519133514924819742864698579752806827114767688606873404467197491517181446309119319892800135351873896628423447874567096454321661510852752048680471581480561029547729041439069242749234224527514838462025093254637939959596796244235561548413561967282419537918544174327288571024440738853815439164788205863291696890195528124048116632094638070424347362687459138436934629174203632063286884066053414206433630728142407738285143552784613190458197050453449699163717635506367318298681164477736197719565595117005816426626843473753176023989171762200662571242063998243192128396630603231152773912354960526618958346354916257514326593268423544209300896201427413633450945068410102314120453628840079855182254602352025478506490761064434771907069570793978311627184297738073965499073972797510778930590912174189399683420794584484695782397428664841923848301951377000087485003732639093817292964426129260208168607401204707170102249660482844048175788970800149321440454580961310704619705583403623228551993912248493757258973335364037497270569139674778165330284017828956360825533913284066623038991645273387239418032310219230868540650319938606846797576363752850744482775396661510541251774668388736863673273334202769517273999741421709788954247994117779664064957773503220799933157343479652159636839985692123778047982697767194295319484555158171947487785336933377739696051038153258694037238754519096263435613314786930936087198294526104013887044317386527537332737732345795130098007625482370815807642636582839286570942787067234495145388697144365212371042882711408460461341462146234886854556017023968160767085438111649429859930481275363473704924000229908976021676018311858876881621932095941313301523880206200683174541689603547781750751573351135361525891500061432033279629761016965314733328320445041917974578919179466838992158420030670272006803112186582309760683153267492587248189599843624698285446532011377435509420354683883293445189978960745315271081259798589179357511693911373375497304283269074681052147756715218749563614751557304672479444508776568051771740031233911047960759989975287255132382262985888905755240134256661165389480044091956989685624540395912902528922326788475572344387530828792101880351268145444927555308855219280277259887066418566580068390443650140320605575977766650366387245771583917692035217095974993209988048979883502968307490272865865790003626311272396423635429097931715071288139961474878490127822127343200257204280859784462917557775727081708275391434005503424155378610769326677641102719809352521696512427164177188230161634073501871715697329824876480593231855748507389528653754549576975922298757460693252022832079664160380733157838805486530542910126949574383269296003797470272051610101029989238168797751228107047395783397890508205597969246048119596153608505698368662792314966599126209870455847886077916045724546007860443037391604148008618396998629995034439993711426817801666889401796007656351043497296213119349766922919419566641137311974091536505689151702145438813853902521122239606193964024765818630380933080115099692672975620418024191833691201932260081045137108944107950075719258419168377080788396143404337531629383041370084269016569983254633494454916581657470670273025719661217918631402827444977010260793463778660403873104287941892935578884735973132305110462175865814842043684835072378647482150987561541348225773475525628442545965902348771997281031440613195243026663925362808937909848671031276384793057431237617168839029995162410343843820350487711005621150855143630568245741243067192575106311042302076105739931716075699481420021022969999513877744782157063245294683141956166291359872950772545153500833807700172682092044004656679741030813196678486632566283694387452437139202616883718440478160565879049596066002302506011449595874255894144465700608291607408482385365194164045745558511809210022409391295230782588882557935004081034436197214285971570862822017573768635087200839709748422791702958208771934416875438562961600539999642041862720244388892037376034685003304250598663258143654476308071890931650722494746192305622348244510800620442335500688488278914005536446674493067329974434254176951901567984563098754411230730806915070535557506989830841753489425539179393561619063213112203856240240615487109211742342838174018204694458712728839363781346786720720584212107541934684547979374460090711153572194216955199594926361418466156563265985768683397408009177171490963212804587789243260481888318749122804719331514274539667077443754182163541846066643241149108274102901584418085785063431045224503237397626147687689803683818901971976861900593805462381101069544091261127442057386514448651519680656166466912590282928345847690011656684044211953240999053436298395891154350457691364697192558090043057700392836958036239034454548091844189576983793867111759985416939318888001212684406649474585267373875413520388760621226203794102534568801373584158376179278907239355011243509545333807934156432098005662283538890611192556399242664037642610428766357876316670940593231546788819635982201354447485658236457677104874052515406082799544078219247912249114449002456876575606478046298970105165829744416049230895967520397827381990469589724712036713468847221781868774166870688144106005561547170145930565292672269006455412525479495578430566842796953926282386782167824136186221903604856389132445289024900115962766113967823108022963243134678476709152680998193561972530787284181050500627790707813647177309554061770678347970666196716775344041536243454574909712625317144963177398056809193990251803229422493676240545753458143334891786094529781881875619632448616021617774290808542364620238475533778667417716778113486294278348540959586227783343380668973615584298864715602563110638760577215606469241518219289617219334860106373118534420388935832674294664145211609496267597946579030905903714096545300345273840698756008158178416473653204616158199825657712052764243297233288106111481862297044861202550915403398412366886744092114992618284989586634456576844192116581937645099209071545386299993390770919390899692120203233094565061132013962506525710657269411478811141464612680751625113922175892694595052340450952904792487591103581238248006805691235257667295930712313609239424974577201934858526695723495150925641705565528209871380029305998129757780038330009288282607040336636658033293318049339718574821878381649333419165279339298601159317778614094885639580447514277590810906060864754469987076644652674388943066982638997278440910124971316663383897572938530465834818819768813982798384404760934981310800484879473662885540541002479496565032138940321583104384632777731713382417719479251449854292628301154212048279752228958770791713538080907104632663693604243038954953607143572328326915005581730835694743016818800396245093434417734322059314196063496124738045702024362850198304340604259982534643236781537313504040980467537080610343687744845772341692187857909261893729312942327343617514842511968000601416409209676468091564670143954830823836006419838574944860058705142383589498848713517255054749490750184074109769274205316357428131081125597004427136440509307882010829642309324506988980076640034687268933034094383621800118723809255095584715668622900251722481182139758708818941159153775799528216986684711286741807025312021022117495959222961544501557111769753664211046050094795880565405456429403906365522501052603932608913361214065520799411417411380117550260597062060459431343136036925878613279690270103138737979273949073385385787936528917716068941386813178327198024996398618088210682379278944516780172706680425848885022473547270760313179016192328206974187626672126305754954913718956615181684357200685124148768995210067501946772590720120237197919381603242398497402597446670989324267553141013680522043997384295519020972284495538657166160432093266264092035375555988827445089077215776239133149732204612031716350676898522738296649997777524103722419519934867562993281201022323311792641662795244556652118361634408998129209509714313429848881241269301285971957629109392530403831239309096525976540872716737480456315789479531313872353328071754295021791321942979198479548879130904158467396491133656517478407548448368218299420960976979276795729425236149049592005430210805121112215334744874658748860414375833942240229341320893227666466981564636480695900292126490419261794210072715491602261837600148590722512231458949344852801198139023340078994864314756470463639941094495818225197801822537179465378408307137943926369231772046389353981298053743653980090201851107380448641808259057425079631508286987802400753227568230889158514623103767976302374979950041823809211644258777854237438911166549013333143270017419148988854640085072200954636528093358936637448356740721836827697650642175303334900673520280627236392177497325479568982767686000817201581760302695065851542502226893591866006381477817750869113771453282807498341814772723349213228173681116848001742283505614953896380262557563232872256959204725419471702032407998565261612161078029301112758538684516505276425215546073758471531048409631322746588001353223792593403456607326707187792875879358510139252396749900391327258697347437506587636918874166246359845541294274886968648613504213082867460200148614407173711713975041277074738453223086930567791989028597597994815005921051736178789672033259905906279216576752578205073293051200432729431328245943354941049884730340715895977201570772637543044673801794258579648433455831262954312998307830382584982382464373020968972987999910136709243221498223438892577843474157905491276836290692391549054446075750419983912796614456473371516322182741186723555881139210543614347342582837804696846769147825246043158824730299152575989935867716240952815456536261337143793232791995164049090946707873933574398847768678840158977192537323403009676826355097742406530275972087020550366103553091290114183755466270103791401557830081095507570266490566305175252677586639209318322027816414355617402049007641243170803324304455446932178517488635496623274600586047427380962908035410314928436538510831067852542683426343145508067997704859360597999225101756851251703190124622240589381792609895683382097091038176021467380487714250828260315998276571740895998019196378925024083107987674726141572543400667395481398467952375439216208685911845868414833829035443987901824546818697040188875701877060117877028789693074510027760319611310253934469293675712960249857619777777343163452987884727649316975581306262728556275347801949445947580776349115222191999225045037982880800925314152024791986021840773621289829530955219180565043588307284192910331458164863439081341340433608141666598801118949780990145734522548441848836301019509141134478700320996114868151083276822965473701777890652917216381168243199858830690633885687062562118305996715369724045861560073669922786772787822765232911205467711174817470798533687458033603633590477895687260014580110667719188015835262678196613888579443457606047897537850595908872155600646609916422888148992773742555222907539806061899942421735474152498535340385021474380849918813790373135819637975853348746811810462756605189083546942030950432329678249255255651760992248777736621207273223766222107704105901216706760826362094591321006941344555731425785655673548655487252384969924112253298602901729134471638829276795518543421364322484056827946840769930677704470194173659248658137071477744466657756667140961503591729428923363577546266224723040341838081753924981665959846368651347346670784374082033015136703595917810601506051080667298294290286478589063069794307692229346844042574114382563384588808892592390162870733277368744499837390142982785159277808327893610598056434323964636624778708962818931318301956696535818706173784547297619908406828911179749376802973473406701573862191280942230972701746133054592532008122334467195852526901861354947787453546148842352029654281222551218789408080231041402155863678128578757977405831772215964421037407334330507069615254132461242208105707172459207040945313799010781465242088335503744248426109119848799309149549541627869688520161741601998912917464253330037981847809583357677536664885127619504398824836370885548480495743934412284432466257054656577584977256882267353710547145467500044807978696281224359917420390836336970972231685380157124889955561935387807774490195546791130871340846104445038429522541776384395690097819044178710106689553824201605116471573072088305520626787739679368429388339394695931182404616250990722835930713790159547359254644453989259156371060913706019913271253406324959277577906663989688594561720426329641501052257522889544252813463064013858675076280579290011431911550552296470808786258030720736597426205547590807683251219669126105313846793190173454408562015882368761676304287809101427029655533566487991412873934514373194128777031072565317284291480565197946686726849640643792656180648972185457546282192935943957251224000232511867583727108786876865125005513461809577734181952677805307306367652208777422020395056619262208465493227497126473554861425169940440193060411334581160430047266293671672828653245072672945066630102928609308833397538032240758727415845516964182398047608061250164382758208835574990718634468260632850619241619753301852497026834106860360182032838265393401663002135774342561618062454917733564598466906824553142234971373189842122887198912646880665176176376747799564481939050252769120427404566109657948997836929617590357168605491528048386084773415087973337795813312460288234179256979081777476299004370116685328248075945135699305948697352236481480397498418782665457332537178113932761949343414051777114667111907860747991334064881566952537788964750897565117052297226865451350035747739350104631807003734377386004127120757093142313812187597146048473543454128445642686090696497769055753993204565181685032687339210363889038542467003620106930439047172095248317620774208382779790749592474594238330306368720965736910702663183720495585725332942251005910646242833626531586502257567162756591899606649220997133125329629905183514700529587797353295625761832251037548438746962001568451316383728101733091328088826471844091983054697890791728300224279486041081963114377214244128976443634472879921757622465501197211792925912133320370828966212209468508718281560873755132707189018506087306265955353600913821783806112637060472378199071760517119061173197224346349371694989273149363094099051148385471367580092117593935783201080851889990700105833570339039417912521954252321654419052828553342723267281165649130544439084603854173050481517183709198053621720881820907957911391372230522832762062083794776343560286553611758090062791692013875657941339846592328985249548751507816551035063535665565134701529355706373395333927158567463478353229822319888988384868280167716198455221605566092344968008158867485596013954460289796144665776969043566025603253310793952922908967959018896708544867315625274532655161025382177683757139756353297903076975992243353227529063509346148742149510854458813308469147629329465866973270664900104331777526711797313612687047599124969369384563907450066719235991951874975925101916741593698565744135755424900824648519018679010099994546355251828535590788586098729090687073203012428223512189544760604295734283728756206860685689839076375278293367309190271609230144714609551307812524201576362760924143388746608919258360487319793296155223580486173947782672939618373066112196818340734255079163090246879120008648407609988312080172835349756855383539041197469431976558820030816825276688194080570138386453036654106775391960599573887459801189080340437842229867934547298548838527159769431156546544768426041974405498606138643747414736375197222001264200352207335415422637309053033128362163949734532262545186850605890408604103953689651599208428081070499491710598915331004908972537463527317664879835587771265488954832909877448548127360835284892101679474035652979127941823021220706469947292063164949857793251322216135084771594683092370185633241659969072675079409519535700853318980504533268133228717427056638551215279011146382934401520028623989487261742281896594927511261677285846149624045435658856905376750486203914477363862899182357228899135300347935330991211614780345315128224366543527792196794763001211589191691196157057497470694728431696417494930087522043746388601262793277943505241479600475186139839522492976810923435032102634975327690496701342702482029216882145255196597968089623577886605781830388029960782901909003490171524169471647722225117379633017460916927268453872770498927096596837089894638575661380989194200714200062662414661154874857575493425604056637471366175651657770577180774024976756183998692802291309641833029295654222184235476031688933110035290589753738839536575111119179100071967216289839041948875323764819615502019932022489633573150827411816381272722442158312899993561639474140197356194273561228649434988012010564144428628581441339348783260644585936598009688652865030740866307450430723138208456127458220792158038874811977373163711792740486477005760934429484995547571876221131574520774334047419539660353886012845331911750923687929835998619307339918911826683503977471743537572364417123731419724923553356185445564111576441773474450664544533849994932274322146315389533479156929543315848750863100352916863663997973300546710212042638666841423795420476200696127520311882752964139796055618287031167445426751211691904477432952720776693600901287440297674141895228454155109714438811978645518567543392507309515058740855053047269585119121512876749677561031969857782537654224886772664388381918125776223817306869211299903698073492354550450213104702296844785852133955426228012083247137117184901813120458980774571135788099409639731644563704728068578100708937873109309284556876429120803830876118401458834315020197824612057315629173671475147199896620488969221316851790537945656300265522032963561623601533787181873615302364468682017510952457786634940268474113850557942929640211784281983560829405775233811360101342668851921883169002462805387316353574363128814821136893966625612967339162834157672454337459063487304551572772404778897127192188582511109157259721921487555819827833138904053089286298039834380591003251227328240993934289943625448736524533655905891673146108329044814835830788574885339690407653271130694498060394303411365465326764482688391309456347546756565659619743636994434428649910475004807881911866034477372379081684350288555421164086490897633571896234840552152970089694101289440249974943710994221263780065428517167024335417492779596156219493306256067125397964488383258685790025643518965662968302458066005710681394569058068528226853937033997576678841433974176835951989160355426376151357230610005355083886499219500442743382023696157441614095710842527479694382792628207155368641679397308798456571255485604548346354815377141530838062197413295285021431353551853662723314271321872520388441061836875505845502649411202062077846148469384380765157772773417011697452493207571772085799473671073041380949240409950969012124071633143730070445158865346845877084667246336435918215107321408326575715572102578901308776316099809897448895642086289521815786188234586566081559677821167279562132847094673585771320861306261454439650073791937803764508247838189332175011470308709175034559917087425898468900617021509725691144839593247489165724810823440646777729877512672542341698618267582467042341503788547960259966942428767488488067427727261825277692001079094134844837551935624684794373404301981893022660121625542785474208360868189208866614270824993450053899836116119828247194782917947212090269871573268816348076882128630168362110477787713871308542635872933157502509240655893492666181274022315272833926689547734404418156327772199893893151353129598004771638222435680250240487337964007696775157591574183943858308820548488385573666951276432795921445217663296555800051017534041948564559336503051951624359885032583110352851419508152018674745486363595209879418466482204618953578801790252003313467969539064476243372971156324284537783241431630981289152112268001505338316998599014643055297225391658210225240717066511445916339667323608238281253678517200126024449646293806303651881528053291792998998574858292959488173972750522201693656644086049424916646938526291523845858204550979577828837492438457331028424099428204465100143016205206539932333450789452439313516489653710980889067509439771600424820554093152563679237813737691249196036095197444120529102588342880674911741837363988810131093646228067705041686456253933535590929408732928896933362792168144944961614905702903855586279107424812061837022640651339516313834953346300161357338891295375403739511469288957414870437123481199445382044747719546632428158155678449561643727083513323776047554257610828891934866972636541614011570668646271351003453009673893973668916915009613108694848062432219556092229111805179041588661983150805530695833897153035598206513704423982160781893684177345140208151600906775189456424293397843953421284662573398015266724059929720865078644591552907370322807039427107767337445748292537987988788163994652927347779766867533107523684701149130911052880185857487523446831947688501560815524453824750511778353475641181417532669655710169240985197579942952871213500135012633654298616923862215765869508021662535681123943000615941495117356827418041232677294703567514125951501570125523837325441552175510768118046170308115744594728216742961457067740739331061979974771994474469196417122686699257944221514005664660850259299567523242189793696994338909505515387211981862932994103810538996341146613151150123599687846089292318593985385446269912326594837827082610627019365787543617970558951761990283450173610502806776842525450098605416782031088921680904575831883007441110076397420539316730678539075522192074133131438355157195984442801752899070013767927692988356871426861999952882364070290764335217906210503442990528298403546282330814820522861890827308854657660877923625946233629926966816210872836873489846651426559017654646025059211054759848268647536307435436641759683227083584209137695180590580087377354463430408444765558230827838570930581395520750126130898352638920615258498236842661069033214244440023025233338567268756304492026404868974496348938583185406255291191035900713443181121034509954918767484073783595541461410351188236097446459968919825143711017336845260258648616086410918189401823503983742721180666482758583476015103078793106439685683964014758559437942418112562369668195604787299167636117779630804018102781096722995438134090189023516569691332428630327172671875863346116002147011517913824809474272986848458493697018664704766113950068154227081722685266267942792419969238010500663828341430928780099958736938504052103606188417492222121323115056911777430072708558074971562584588908977397557150377955028598192776344517125658794316427271489120176251385038522140813759345169548243943079151127325522722355894634272149677726647751528641497516288985862890158727203835919218129793524172669502438324119687875311052748175834671983618679528271903893727574687965134652187050247177195759547229739736656724868460509639977114493821813033351901283227138938712429123003873969527004933437131545848240765451603379577131030131367043095876037498149793092643722983372097815918947027618118882694209172368053308955401860728591053064687125986858241532418811886943432049449439416163836602496440372166393253524582671238378228931579925379172060677547040580040409057699979340975460512721347283105153915656526662704700007204555784650760797313680144704961136270638970867216005548832893998045949373246807439393598982946705518485413284243327676901029396323227257407694728302214541557068668788709110177164026007483825180592738501414661399781193988069731605496411286642918508089252757050953008543245745018137201995684150826141592985825304356915229469426202568463619901825085760271122353300524852212861204515487741449287191653758303247525245432259113928269944425584127557031648817393204502958453939723930032812440128207962249053984269733864891285322267466728055872400996315548827821357428272513104215349013640657045746611005925829259368780734753788254716750330795845060764283222172810185581307720275474157223123179036661473020175488702136927015326111171860018473516212843118508193769121730008829773450198120423711159737704357534093441690467368123496678521187755974668859078121324299199085217562490609035173472620629216878698651308698865249779921202402563250877848479270080947284143866869611063180999105180282455837188077502580488334406363902930006169111856886801008862148891333226747703048841958319275994227842500414920535938006063989748356021955556426964177228333264636220423547129761089976102532782795878305907395143932165159337059249392330904072087327705625924493413273989219848842286019093558660400483193251943194893606519602897059854610060986031339802019123022935862360883279558962789262073902985742683410628787576598227571582693617739695548739924977943734450167924010784040084643945175696913611939389779785781470951008959218638185760913918531151006160287466291168832622003873103500581317620088812991036050016317377156896808018196782733393413512310554972952584527598407705343944355015289670158439540688302279883470182898437886662028065981806342868116251123837035174382931887429543209328588840771069583897574714074523557596060325890266155703140798362282577394939481957580488157026473991728601181888506021910714871890150813862750649478100537421021300661379333747269359902552075619172672253477900082689898461836841916231421927218469226218313490553153801821872888463870835412713257815556309569942454478109016865748167689831733853042918622036546698577124480052680260176440131822942478992209464157416486542979630848821263450662606549347921706882939228097522092561458822172508964541132751463821703634055335194029990285510978919891249774511637247848899861216983999542118138597835783797772673684777825050128148536189001101327703185962052904968986903037418899623894547739610205029337055289315014908867469390327236328519689349219477614706363717294370909642615778859605767449104797141866780277526238720703078174707333201512349602466756040499456743987529412649703214986660862933178271219614462682544147352108604094623154726787869749090479268622728143409779353208664101727386369712621015008112871007827990203791062089002443083446451609587154178485769200369250281648076443090795072348077763067136423771107504389275551671768214713729779056448063330336003535500890589066505076661666167394529135274219734760540023889459165297855357466274322495756583063125441258605361588759183755918108568989002754403004525904976695532356629486465523198226982285366562427760817717836707043590680479775633414247064815398551058102423314559183902208675619333256483317429355263323098900252341684978660929069101746004595843967723428096705586146440593889995071073915388257545627171634781326258891290008525983883947259698778228870498311446097905158240065265019164284936631249868839521664871860969061443716703860953289590093614090003167379756176845185366510016961272736189357239500235759941540807123336396307322511893541838884390361425183613497144120024489157914355077694808329877129744010028554026929766783962530412125587632396192178473488954220537653054986011694585367956858644693143448300521890874208910066229725787449230046177564148667212129234872733053966744376434131949860270872883537247303101334666450096013501341070785669358472055650539476958874910745670761334735197686732594986004736708947009922808232385149963323277229816225262976770872016733376360312722353249845489083910549853755536886566405369595698383874985604178363702263947561949503808907356919052846009336991452990740494076401114866019162549372241062720359188187665703506447720713782297054795186356760990609301194847621057370319591539470330690800825395974764144147429622404935322424316381126412867666142569310393784797370733744263987306142171992696642469567291268672512422175074190340918361320146913504460002153474312725461263737463100693356722363374292739022798131407128605854100791444159482758224207496814965392729919303156735642236708847615165273995561398408926518649067204834161724360980514730015085902005913935163556809174818584116299574300406148342181609229984567053078288791094551364938411635557430518232835760255814522110271470272086321041911831487742210400648265710383908685118668882425984014119116708345976280434322494694156335728467748687874182465121886697497509631244926388221039211310132015623768252783230542308643446811341563082080784453583138249481870176185128943030848064535352422178402600853782506291197378816847149755364425790140058499607439694378681960857317153007070078067360701323414058962686618248539729510756051593075543161487197363863382187115589588421609374323901049430644591559486954790570044256552090252970873494693644540435525563642223154674148649153580776786547751913369476285890007714031048518622071918147814794048914345924439751018148797854132783544674261471047010333491522390274296318109691341877676113884503962097911425373438773366500197234503847351279782702759793524120739741625742710570700974214296882501068206782356315744134674735803702903015951474275492223213590311989614968990124313344474486783951845200523856585853335725666949030751418764333952984586489826033133870765362817304284373018141597779142871797194671184242015192467018708098450053057772218738784585285526984772723521660088023595350121126337933192148484894280606976469608262792586516366858747562011834558812963712719149928434755301688701853921182557340902268727450746595409625243512719014435691167003099353479883011355004181491175087554964893767075938320502285033962950758951850318337381003341207983725130396719550040821376284114449169183724336739673261455842042425703492752930561801905732916503114943486689152451946800186280400785263427059651992913610255956633047573264165666869913463678795789391862071707041653403033516196781876603897112636085298693883100216396635463450120249045425887725941968057413316811894834904970963953117001983092435328616093700460879221252077822979512850065500531354289429617968986535362940829299910563886914232055061987327734982261439499376135918925805946321221897100977771035778591416417198811486790998275024127139264491613153241765893464590239048738624124740979337207236200813050924649175162071473695759672958365091857828803606453403958168792518728735148634304583254304838550773715532873477119580175453965307810479248650948642759181450440514820775579867158001433963963089968199341126029606369164856322689971379059146725008450759541406082552680953115581927306102533074034910528741135435129210959630776058759529413389288676321459228723100294819514457534437316365047371665526633198241850740709843059980577044012708507083374947372332480389925474845259786254548161596742896482005579133929122429110043126091407701793081021519572325268483978808096879735611369257041035491388825235092261003052852509071051683786796012229319882889922529280241513625195510241152590601641746284511885486827055780890719656752607359014182241923486054110890109805927336539535072969818930233418310273246919120456610882989083836201957927838755781497210190863227482113788619063895788258257215285900590075195930318187330223870116497740065353484942300357937786345506335792783368576891109836043531407655650397696375310803647026243554511415607845048393641946935995869332990264246761237370919631527747925154940181186422858904194722816793198736117306196357253160965194675090523323397773902437211878143297231003142849879262409289574761026130191297018942708841177042475081396858809902113471943559252841005569240301509456405675745806617950958809774050837943335130614085524369609139592959896756439113154780824069841047907308155420525431418703351157795974368588295306139621845320690336457546657392855251873130576973568906741711910177679052841969746491476780468389510947552280235769510715174484100131906028046393377162345575417541548463962309529740906655440779007484443938580742649747498106527988136283148758938677428381211392962319512686256547488194954616324456637931934869628863820104528719983844020010614627834671073399149305801659800980229170409173786872230346944621107111680243008458557267506298597600390022380210871451164991172158116270381257902682869845751262176911202436815416661193494710158532461730439094725634819517132074396310219559355208141519682441249505922029670244619205083419288024793520338077181032805707121875860647305893883940849375962299610975687265811120675382554112686480381023099486381737777114146953077821236956283944920109372399067683367012285364439016498888964298345661732061976195957420286582781223286588789158934818095102649732624447284029030278348921118615845241783698781544587159225471630147684226368109867049588942856529356692598569325380448698869493356206095197708826288434067983962520681936917920471769355638064713132653243105284223990332672353806275296153263092274176975392659900647172426253155094779005521809747794473121634627249070492063891150487416798008352328021420881181616886029609801373558355377178878258426271910169216047759214929604178248646272526515822877730073331122901456294022123177373395466093853788047891477551572570081623454171032399599503117713951587564832697873416441776835762107760295424635647322284384549122954122517760399243660725933491056358695073300866175948271978082820773543725418407047815600664901610161275388058907831441781642117727654371965007787429991505333437787237502794510776873792392650064894648940708276971381344800017692452102989177736232609097672778089720293343081928637539877618151969348708507668570525222488461829884454211093263261491778831753097417183644252297853881436360390131008963543401651962871545920886756357011571414822862507905901164944623839387720181615915525874276738772279477868106953192444823583930819456901051151528364293029420138712976992165915413322511386211697352881238463116247704748466224956469528171288514964263748692436568484850147390343102693899652785078311354788204275003127680056980354516218252281549510913815697900226630901982753011563420473365590613462906334989268845328702475172678700606689933830532922863485821934652638261358771050914849823334071201347878502979919497256683326050556028198013580433482999764375111824936382593258342944966286243445633856582537532813279194697709397603076427432533096719945671351690647362157262969879299982347143233341766248915526608586514217886022993396959106175124733720148945279828224710612113725205497307053410747712552792481705968119859499399901687842999012680502493453068140802441494359712438579981405103304547959919240595274721620373616983472416161326041799222661386814060937993607111940821574308777212903766636307214708523610100005929936688861090101294129758397876205849022911478715159297323232144462492650892313000523583529456035229763644885590941226113194540974726497017347468288911314558736065397127379722411089491229136632590427421948226846941956765542323155055048679628653313342339035717069374396142007302935019369396404678390425438996121867307553809511552742612848169844251731820469919216187070002713909367601289435633848375412761029003267275266212746898478248875781012462497226382324315159968868832554408211588912524335419328488472284547819421995442631578614284059619517208860905907007297019568691379464946908158854461094934265697505175949377532050287910072354666343715058678250818120502241433635112134702043183444508726205859465701619473241678521689788816664655669739601500634768764930367616259872149884933504101599610931167832790062920528878327579287414544694980627075714782425353440260510854969407006753045727692079568335736537958726599696131865038014857827059891363233187170427832681892106185128475694670789542850800104986671095099594086818809930611897298012333413507101409830633920506853966291598602153495244022726160816504956653334585397845723270887461368162880952819152052603920496258340718822378479960246827071922797770360120180379014010678522678914982480240797250295896420942915776086525811301506875106886103145020060349910105200396619873028404222367947507230385790034575136303912059259055468541372878976357754282874292985221919722502325748774853669183174549914104689625829221142807267866037790298036882979807488914463398442289553612638018783858181438377274031199748422861590808190094139551856174520622651965766017983438692955034017199281127482312187370343169055437472761934928775174942774700064776407815798788891187107346782314425925310351282499130343007591903547351443142912201711367040633553010225333451434484391893698785809353188291068685765603722144890504089502428589957260358646321714952815786284839972935670689929454573053710040087979456468566429509505384474492546304007047881194562447396827684669653068792436923793637346435217753487778341888152766817850921517932086692534173436095833232321232114721304127770830244884664975930764754124757041557407160714550622965805461715204699419560751233237445842392660885671424410486319818005151976801610232164303554699252395882279125970080465996963995566017574099970250661898267796109606612017549635818844718036225807316038320230647136667934365047867574099793219838096013725846625526779178215155543364342952202860659744595106406213760205432929297544346451787274029428463349230655994621083093892523261490811977566310567462232286683451265156332250926308039570241631847145887482275879642770837853293261339804013306327091520213988812854776253505824960437169679010597761634565232809395411626781627386555092075694747845701551040469436092025598800467122558069043261499216064243448006333259187965143094290141614235547670313350094033424369991641484966688556003658155606250763484913727700196679035069693580972757858789489247994483758001604282031610277444457669829623352015948529585310253111436729913424551540691643600673718509653069089126651756422416894776524538184199705241916289919736071933912706809043075820103365818933616544303600771143327744991497601910281770915206964870195066408850733620576068844632568604000650780604329042182832059758644741469111591375782155870994238379617022815690765653282939448967020174154371902202681962736839304579486356803981432791722725657039065236035756614864201506443745613052371781858283939350899130197925564657837817125980607814179674330720711432452404353854687597521667835897555187847329551790173846001089786100142151198262118895384430064823710078738126450318707446046718302412552802265569400499139083347808154290496636786444711668180067041463591133895906510776445596994279868324459389027920195183922379926871296719864295762581814801879364280384880251693436910770262180309281826182954627283753165691435301930476649779571128627421185256924853322141445889808353548851513128450193544829351433763678980578136955995427756158158900697519981034917743396242164831094595982075840664276808393146916927397580131662492920539750382111706541441127311718195817063595262131138902544447031924999522532009862078970511087420811748463718360342700558014739990088701791353394024039351723661762763972275548918434265535970014723649101122149888970078861858622761285296215188785420645612400638162702106943822131239737898140531632750772175035985408932624679447226451583233237107212365969546968134411265274755848884940225579310637749903405784582947461974150781110321459321646244442597849743249242277280712881902625654965799195268087394106338504815641133087828102928371702559379785573890127859605855275317261263178193793598204061279651529631293045287728868159080207810553128477336661677914593622502658210062429806147260813175860475154889579276482994053427917025342304821185979036075718595262040637565493187950909663356449237133805898825127797420350916688316694356784220659937974234397813373047915089426350811471057379433364189033011296246690606032972502496269236147856109696336684534061353249765392608174431688092833509772912479826942701795053856195252346012036211531784854899589766169868946957939106940543737849652102807627660347302408848431910059108281317723081742331251857290816255925670621752858395590908275008698326028238301227393096922247111500497588432829870045457469314939779386189720307065451440147333625340069620234555726543719751971940175408761076914801940954625793362074412309389133856568840450648973270327316536051352122477472167426434404191600342388733311995802091864020619518852366782682789873874078922585433895018226891724462477378049477663576265033675527631177018183981546229265961758115390036996443223093597204663576928739266485113968596810998189190588210599895958073375320273349008056622525229395397475749593340847057875665656404210206139604037245106331503687677171298846915635704171315477433478836883720648362590874170201741163707062093642553388746705080384650005486883912172450078271499542393117620412987098620850460879070544183364838271517496096859640505254552397147271546130947165005146972347260519362967761810499966507908140458873278964167713304054463046066648096444751054815078131837927003277169345388253583841149388009868045778380273757985047191224947596762928496434269400596817336794754947654830454268488819931075470956585294492166569241499351498905618714490747833207938261744982337876966084148252004726720308236522992799469680304066048655055089191357470596526460435768653625494393785625178145971243907549211858191520820400580415743686481430891064318747969537316362668275794133940934415923369641616453075115197748570810931185072657226148184089521826033936803735875589813256179428102010932898681254995559496186464625395202677449458957303004792264707595021355215826829363763611665165012106393520975209745336058544571634831465718075451003085595870946775975559396971273641288184285545359654236066469409385845530792619056525164045965889881774946343509542583728933499022832317813534286342431344518542253095023241103049962628314538081330660099228207354258946040554645250358913625251824507237283607926085433857246836949065510707446770270991882612418941442362149183458409611492527438871522001464938377045065980744058161782874758213035378204201979935249860156269279885272962980062283914060412004265535059213224887731336672707199410487407674302982280984564636095638624877559795845289142744163707944207274778547848529345710459281176878970088116920089843891659602260585453875301515973563040807694222944953938952728541321794702477046903240461855588396650295028680955975357791371733096335301159145453342420995234217988028591979601976941407439900536271028119179802006973346072197188785695430896391336719104498619540073329126309453742484172323896661530379484556414606506760837171870601724127949056343334183616349773402813906724850470143586200336054332799012276238651650655093622085436644129095039603521483575621582345597705545133338587325940242920251894173328898609791918431705099251765215223958314569796031824219885009400486792059008605934529348803545878359687278739749462508601807455637832502783958173870576079849547417957809654625077323135322500641576953614962843293808630509556435495167390479600711455412422317127979168599289846444347793684395427814318868607569065602969030908762650017593186825585906583005765659709700450509454884980291691399759573005488932974265250144050645607428600991616488408289734230269625745295685728129781658243703275453327714001771952165131287642334371832531444460305456581180045200232775001412511489567744652127758896357847016869477109434156221607949438731928526469827784721841004889993381641091151880354908451452534417300563029702200957669503668589923945575266662549711141906326296588867207096393890263484033211233302372420950177565978826075243926643274657658412731954999230121957764331097851504367280624747862377564373660963352280190710504411432085115047214099518985703190273074491558792164763393811544369104934115180162285654199698405577028955345775273668840610738374361581269892633509092133134012204455487033311105521516959052938311101465390913533152915687058935503866861571860335892396265245386192378520745394134770508570691716895758410529969001751393750810349656281637438382330487883915449444934837679846394337524047406498061500643306313287381040347723138081838592054184223792997087409417120305037572925424753301776719905165293101509683705985803359357682159061420468997099640568954435288942794629668564532001395467003950605431054061182455253923772000486586671410167945050427665319530287674740981621032202523178190876782451225482835659300651623709852089864942465921981395335699208346565088587315940176771174219695953134677781001524513976907285537534995542996095922729576102797735588306711079735555449806081589186370849460901785355582351775853943480800413455689810183751581036386021314837142375430760461181887647366118265262478073381881491322769196764920178317051661417058641628143428305235446195546720821950392600014221550554850037730980864960260321031176758418797163496232199292634613377735026649469708542177903480728724306306655352192473507503062825636147216366582835660217555197961815688360711009148094502294732669772640734518594853496797162275387731840451725324353535509154908287665878343464245099181280594873703227316615613554089196937896082119365933294143588559466955337059439919610720602737646427878780678600704177404399093792953054995270087185334118032467760764772585669600021181381586740668767655009456129570053469968956589994744463085697847361857856443045305412830149016940445843211046939539147673904721132943130253643018226669614140445420895348552213736347749997758704412520539077413902745831032714208075347565727227855580467953899386676787747093343705793195796097692370859954382355608471039021737542514256276001331049122375339842023459122244750643340131319841625558135009290465421610886402868719084705538709716980633768379504534179175526146421220063137347886602516506754865231483009592250775229256985262249549432350052394893971592928837249427972973468750714707409159039549836824423664078626125246858370585093521774476976406734833791532814055171762125294667876397957881766534283487779450959730618126232150480317080172579017588893210760038848984326415753218533924066182905820831373672528179199227707614426413183506960885533815848827520502162464326766919782520253199501299186028500093809403937255160277609801836151598379071665142534108202457560816904893904169079325171282562933204735178165982387564954904062811327641136814881522145229253459753791164328573722043457032065572200820084029941377833163284764886878164396223428260443997113565902114540519888381840475767731075537609504256124100880539412723333549587455383445185966639731782026894277771323707324610666352586648923445567471703585538230447757218207962204566347142054507018063060512285315468047531900980496581894974261393927739062794089218585416371878117483584466403383299819000284620886701255976131942539012903512110867999430546578787652240215789332495233251789129309552557263610351844486712404369670133844427650262198557721900208120041583992420728784884845500830053472313822352804423631999096322358063502269245091179142630618723456800581868457991791520947871301410437589993272638843664906669004691223400438831638500358363798718669172558630817067791355213540921746566477017470909742962454797636928013561255958275362640601725382006472625623302805546585090602233563112063391847114426943249549412326661607292971314661361817980541218071865474738677531438172582486508619135733006092790069120935245759999289889175402969714002060506770987855816259095408277788708588519728173412528750995159186231487134097892934470195770449337653403785188501267964625110864406639642204093129958223019199692125510339671811227733700817371463208574283487880877223104170635459711025757292327572820843899968796288727644638598828184328263460842026676705393718186149133374203345223371821313013361019527834624908451997148641747676518118572971182518479792076543319154575487632265113519673286152893261789596765396098253222874336401771031816849358692405306944789333870414272098916608598956722726566410502925331039250040554645257712805176679736355181996136397444594948065991145127883985804252959664966089527590112354064269300833988085254638699066152957427773748020099899004349478675410936129208754823767374269313181819402974969109834026388943917083281061607886056503403116455409998988109580644482728881784941394579376325840994293110631639744011813811632347504913060523333823662527594707234931469078305606864675017414355321459209388669539661574615430056515904149793181611371850724572935452079170278905636166693378467398400624881701944663814255558863579661604515092979931561163510670775630967840915431012787964931365738593527817475883694466773984196930923335585591307044366881598492164420904238285604131842709994861939796028288808712530016514080842466045938816964102663936120294128718790578053651363974945066797324633647274143572118545424186801128801224658777560214334648188081019101427237175435690923830875147129619432948730107292388300278062513628114872443723102703953225951374318594803900834410594086370726619077763914617997030474510047036516863415421337149819219759895957864664654367138231718616657473196575223021201947629646756440172919980264601145155455333177177312010951824238228288202734164435024074962168563895122423174396428727256505653624003490854720021028662102936694263693800480096298257106174760881772927484071987737434123252159760995527608498111241293957263181744733077612959042052708267114804675909705045756064410473220246462107096407021152086042635009262891948407524116247208039550979504933380994346938162508454938280119929886878023231075524572055238284776743801860222299647023864285689537813563073748810829379550105010456598450471624597682672665379448042384272104669493922410736364593650211055309949428150516755327437475979641213240094182415266651270257977239385097984038126834508984547268745534601790410219486029190957306014205888067498704002981151309127719867752446468063504923219150115875359713356741646709900649837572049838424488890125830665359462911085133079821424589808188728955085910929702989767940072951926158368342110726081702438465528697934757797089839162632187104089149483139902556795232481976150052239390511192183425372930679615050493971376468367173535381328389071903772460031851848942091040240569735978256824713702273242189621406575321597901670942834414622194519358741532066448873005491486712353032717346965161149240157446277190461991856863000657757238879183058483737361201600148866069290728476674257077891660475780987007078177777038663580577060608707240129133102421190178520645583886646850253763538150579650921229773030297521633195921490061348840493957259933785150918989025569410759007549771083445840770101285924294422558781611073348704754827862533753989855985026993408444153666151221586958489831162092290656707781641540666426230623561769515783870635971048738280384308799477634176306328072641569977077932782479984993730510643078464476803268859304346050503303717193652251818407552742196357733630613267975306015031887125390695524116460724372893059030874631635233111795480413605874208190579378968703771011470821467781956994895371592262896060852696545115714358471714291915575516369759287830008987118673305716096295813320695045007503501823958624617230146664416423743128933722952524932319716595224328217228932483866980765664730459159477248061689936510644004181100731469210930197455192707095156089282806573338175293116508082794867334160084986948842209739003823956042633476559399505953380197361871958392543285336092038417616231566808276196587944362478743392345998432838788938372439735466623297452286719759011364469114554856622342248669706465602913804594885689662068239968068380316550408594335135100735127746817659170691111587676955403257484906606110675080847641274650293921280791582454801941156616015082337549009702237711109906905466079832886470164636149868132300185500723677516005776469953754715535727873081021679847452809329864825256142851142333716745658115062929771709804718595302709931511314082174895861471021990958413645673262653484755008808338317510102341310334684119125856427570939572923199475637717072295336587019763353671009778929152831981543879349737453569022086601614409761342923858385977024511905236788910692596166794039287212392524755362502549538595173654283243188965685800839102381550424436472239171618981321604956956811799491905219476492396595359848842291801019052956504364941403428257078228812283890511196321070128407989665232795698210737048405782267806148930842138995596562797458398170018262698103371894869575403713678052678376823200180949989712076937828795069734848282165988955449704872069217235275014150586481461362212764826810999305285390675193506414762146815038373838971661340142326459241614317831948447062339271410458850325708310208043717053983276129063922879712577230909309807238014620416261956612049794332650800933206619641756204385591219231591058720875066634508997585715766381919251418021656179076191107172466083745456293186873760538158563668318739145578854475849056205428949811768507428084283161287767931724641568009608581225567822463991241994689811246513781442856539002721591040207947730207364910232038332668812407779082956907844763051818956734992522413658530910447315464286851506172336741064977630629125883741714203174356389565306814834570702074950929484579549506408691144334447389656704491121889064388961020655492492548902062324719550272645684698605082937159451154051865090179653084670429951774879145425536713299050294032487295419553173016156219419079058157279857797868450815735896369243220328933381009795987802428872377678707831168170660271179327575414796746070199705230185842689912715938633522588433462157957207352748333129695430622732428062513386176443454980276295421102041930137604051499702112967531489398932995677938559402143525583970627816348874523961310195013198345350607434949726694385363525382115189043590076936524770419512671054618211253291350178922421408549010197562001696882288029886625257407839864759975882209328048614037914942141263781306903285446286995009112360638175891154655941937972701770267217148988238247641740332056182942568333383585841260258188293212140206976395665283843583126390774386907798927408293359504057983140908915839366865171692783996264619624999120077300488187366084786457830861152068574654041398266443040326572884210648195274515567568113206747038407261713463303113435809977262743390121719684135700022541699242687748082860885471406536923841546270602975264428855847845393991599567630468778913970607004488118648831728620809618339553107078015403724979655478995477518858478033199730521932624875899611482583420748028080046958748040208164845193311797832324498085776996838175977601154074508412736948999347536232620957582148708054869973125727322600340460506299746883610446199260401972195693826059767418910715194302821270371789977662474269156279704426431734095913733369720121154482205368558270764700405730856517694437842318383771351497392826052224040360648733063153446377136982160536225054813083723615120824833500742872195879810689124406069175170146371267650797610902843723448382761877154484590380978367703342156165974169055152784703771743415041570193274366251039883839965659945472125510375686221824758395832836870585854332421623074230964051023369465937834645331254775496959485498773895971294403516678597316814713210925329992778825194222324882498911200374498205570371783115276206049725338262553422989288929461169088306260648370632568540298020779534642004685382325449233891495826968534948287527607128435046599458930661467578163929996756556651238360376124287700228411558677990393277981467923824662235525660759185124617318795583754387151086540523709483563104391953137089457040883640463906834741492825439103815441968239139981461084551321287060911341978107883595329575727869906141268719965975151349694411830159705142901702635273790796043535967466109460925423479512751890594929244584606472822358638008015768794544574669742123992013261556944388293179000832966402354620058768059934577877046345907821610380664467965498063322148839128499422782494017898445779388288744318885091608139774447941366080189178009639682667460882274619392849191496909638597402765602804921943233592414373306565925123390357510050225960007404866988762134406974138987654511324074174917773746921059394491151619449280829578356707215289677468466352611058300892811631581222725283522253119586949472746211473939374048673087370921062156868514583593821134390133023759677190044998835216460410831346070882672763663876923475681639368513070075705667266875963951047319005878228323842417561413816919289647802792688022782426550837509479334757775719564904754006928649020048477302098706497036445740367204702256117191398631977022010701174887928002854174757066992564264130710850043234916475039453020011203057486982037269055248428010346690867100943283346601130019188266638028830526817211107018541308283108394706183250372879498925940111972609527567467306656961295785317811618423697948367892764937276739690449029861581804369553540915506678342055316385042404204114388652721156210228729036649436888504382400399822022611336088575763599354550965350114171775121424876336087804295116068867139951430123683905820797786404081670666875832718897294161167732326942926546158738554388024819710678562960441106437889584949192247345273887771554814105438281618764583754853113850191643536714055307397284816568512983774955645681567554890166797265626442451194546993716424939486279413793738389543364136613495340922871970204886496350098847474951322000421563664200182860130094475718465105765257324458435580201649011036064921272064974811175796020103055332189934840587684508394921640973282142287910411387695469736718281286931240093118416917601257577769630471905423482603832415667998771522592384477210006419916760810675487595155466575398668802777513923027306666486160508754591032708882045112254212105890465078492975382905633849923513088221180927730631520775954165152560393330139207113721112700899279584425393438667743246899577688059868901481793768226156784724952267981287786120831595698930233310089497821536481224765660551475634589523392320719128102304389234775077817357917320894072011073158775430707341686865441436000212264211621380144115929336191774853467807227710725153880028255630199596979132119903105534532254175874580858181281983975409746037773829096546697416397813788878963875862872740624135112624878664734143547073194221800035428749949365078209780939153310826065643007509714518537162197379684210310919703187777460112562075925602117450383293266303338411209137792695580566038521320463747962909585860797682624168370526435117914197036826640943068130141309783310047743984600150713587988583686989092561942442173691642606065652759321938241646088989718044563535341002845673577089988671343115747432280351896998162354955629526636555756130318589725283109068758120177344965283150370229312076934643846927397848087263957857169119794953993890103951626983331605481136451497183213187029662707422879137186810099987497031356983457095036211409703644665827722367414152859374413375560218122416259890494824159585198544400983464349438906956570698047118295658988521669431347866410216181177168018697408376668038657677581437209836039350951073021180764159580109600768866792514044372108253050348914646483558907521667701912549729072702925216456919168042355162231984703970984345382957674061930026920010913863746372043014930673353893346321401651585512624750050786134375105550497925828420782859105930592764490494668576685991536454797027729741117253481626929674039382582338218899298818271909203867138436966228857608230205855665464870710477029056494183900042802363845824359671189059813040836398264577480760218016227295913076701866141116552889109093741264764189193495928907625468439711355847363676896335182658893160074487663858859250091026062101600210322767500133316520581431931800042291850208909812284036973350038072497463612410319777105900406381595236823537292065380275561298391269442648462364731906788219069497751508758793827491488257289831814944448481284999683493512434179552213368817228621218846152533964237740635981327480849089855097632421048911041354139168334640920274123627858652044930523792516535239438897359041832546996880066847127990869869759407687807312488861358268504146670353017418633065020568946385548219944797474787235470508652419589947771855542850828096392681250493075085678717803648531340261958055667808989081197754545253502685435444389421662799024385071993031342144151563808525471640491281756772834268285781417734561158745677410728424831559100597792062542464588066991319656458875900444908940981518596989743659637296569902361004408920366718895389027641793361741215999615996524769700041885245605794342221436409612368262388767940682784610505152456336815685263496686637065031719461323259182618773221828242625625947893053068731473825344723995135247838583518838147115314956925097962331539191502230093413915652990758599986088383215505041585983833056240610810204685954228077306194101076777382400489481093953334402106119635248556510885329164376512625422178797343935418352407872668164304856398838356111440971944539709578769519898575315674701710976393071605889492369126251798667977960681884152240847385786404899728402703463696955595315857152535363074172138764597395037464276713401298184456059256855222426191389031273370721324230726377024419368324388986918115285026133875504593248783399428511291196692632933326677058701671732210429190950924611284935973239646314568435028023402325518308494875750466846536645226257601047647127279440233293466206597406457991396964495839604551264045480155214694929058017911688520016507005303755084379538224129853368709312732463752426017437125158375670125473892988515511120205778107365616637582883491385250115246134145250489885198290140875363004590192964902767438873496708899833443487033596155206529043404433142894866445104391062655368930273236089636509442340402908648092037499981118562513775401919044214509498743377246314458754155823943489419097214834410621538442072813404473822736105355772178882031722456709928618766928057565875551045766115990246833509221416663386101837656691926973095733979160576300258463257486418209650571680066546072206653245964788068229796928734412606470977292540151910914664910442212428563117281964825683528837062281025988618691860554173893326078095666177066979233870497833559009659348397656232886759169731960857853415284537789352992119708412489351025498649897954887116177056182996297998075035442018930445876675927472126954206998888968681804012469616972536565038409246024354654507648196903881688163020113765865010097872737584203225584518106184715755400978097845631761181283351966277287058833754359777094125291023487221238284261107595205500967411838368199923395098262875806427245137558416095643229982966039209606434585340196001059188439521085215409362769588640795848616807840495140749096085520312515267846075959932922046078554035424928470168824390435644918967085964041757945921791250779081053829661434630577113044921302668472371285391147374850172101722394736985435601359098886406245513807596122024261040285839777792711675371165118037738132333571432406286150093406719705140806033037851282748959247534906963195682549470365605096614623113768227396265554132370937388678626098219037608005854841419810669230997018534934227154833839356068398274979550499119192090992312415881160878996675974244403384440429319260063396336162749745617330479734639971956218676554584196675365311021912313297606277537057189137549037401953949875974254223251223595620649564900442707307477154738281775407983825729753546918968765838882116474479508489204105239494744391526192386736799546120063240222937325380876946271872492193369493882806207618417655846818095660419409279213241436598134891821618219865620258484419606755589632667855037853221980321843047197746628882730419560419897455527576764392171619309137776266294090964255154894784917878821755232770490260853552853482450141645455431862020781214125595257514327607017748059979838823930491122184280368892615510141334390579812386010326182916988905594596714576646513169646614684737083305350518597297594486232826332533308290929020797864959179732263381512855673058637784451480186183459361989773612519467930550146534824465212145733745737710803510247983804708887782689254961356728227955616175704284514386297420583440342362841969850072687935403035914675577670397605161649091473460630298556249821541919889296478021438761173535562251654239071730882486239685647633290310621034331460876245200974562157859396606872668577298430041671372612670808865480662343280740449559539023477212127820564278294899013880595070187640600081457538065778926035968419271844436424987227701586114727172487104121504453572633080192798603006950017210231438698191430450575831315774928680376577754051621336625920925512876102610855656793581502074574480199712945854619020586629595893630318805566909153295396902764354001612379018926314142548066934896299460982296980488196628654834547803626427747619062881768335877903271610082688481389953894097327706480301651819813977860878717186690023943418173404939775659312861119265121044030647491128898837623091372898193266861350606462619296456045533649590347664738721552027300003886758919362669886691607835081785665880506582114229408702536590827964565261017999583615489790280593416249031155075227162708685752966498500852796120817237483139597887767324252540682000282645885234622639865577465507460568438180386883108884371229961314536455057820040646387809725180858554251436309923348253938246128194347401124517419430331664847631836824289959230172246449498511259744736435849339235826943923004017693077146277855322032687297646188217529523061836926142919376979107503439454777846563188422664227909088875058109092188556908763720351878841624204451057366132185733736425041738354433628708717929871738575730220003631247450876568069223338247964129453403369965514847989081594998708408501532862015130651741560687875154123420945416441572169017248448712366624363405038627060463510874582511440595826598469364516225060418950634433129218685811531271475374874951168157315937756283510209704049818440507568303488146981645867205123117533342898408739150415069606404227260077255343799998966779035866095117384555775451803040154288767068850059778793388926615624488066180476995077001868001227682449428759833250614085478292510435131465981357127099889715386921084503146038825566473565521098480278456670459867294694104704284480716756090750736412367375782897323688421910165141719554093316906610005067646660213963355392824779071558453833340472107255756403836101838425294007466709348538410103714443248089490718286923602217307274891628888811947523298840414051875051214338832419029977426237196041220010803076747819920491604291841782548771163408982168609641094095385547495940436296662160383710324384577095257811327843244407015553735731921979688067784683959814237196766128449541753740682421788186103025602518455204378203795058449019731824166233505755130299128991331423627567858273671085771851288977298717482293604927150851450161678741930745108435866119048772576583034020001801054887126867644520797674109948310941176107361588586641291786481303063630674584702431670348217636415428020047806577508751551193051437429803088771320926594872615364455604085854336380244981305660515246269948240516035207613333056321970166813561847931489215653907755546812404990737505774539475649805466555373308871076327070400526422340840006699949807222336737367663950273036501940917518034695904652667656167116895828630937422577139027005392418958942427224897560168318921992059787890208623831722879302170652713354198109560500334149074066600088888849407842139983679762317947030028656163753826987249660118186213984849795406093498464602909867452218055952715372868042639707207797926139943711334478040105707624650069726681292772727863140596524813433202865222434628316748912583829491445270985022112919869453048365838387496961590477620334711615316206021647216285750240967657873537161191789008534487031030969578830964700264753641799906500620597334739593328688878718534752453662674143942502119713649006550891587603932079343582193121827003104056764499242175647254073629396458011477128677361461838764592302715044807330144857980863205992672619370146594309038568313227361857583170636225825101544762257132331438904352530739049534381618939261616264423608841601588644048573988720092457667567703954632205455831594502960465679602191460020666932812907092793242096394435626527469915803517783329104750494001690840334325722065334325851520819906079925233354767464003897925543501250584878642773174968198203183567781715953682906235535041892325297175318563830638861806356363330464956749251410268183595377868503423765926790787731490804140290693398369425977914258885757305577335812456679063492131183314475070402418924112580741836043005142938406215243490079433684724285118925451936787999506748187030720647158660795495506050576674119810447151201536132202258919430977017180286032064961028807292725072009936223603561028733685560333357432230773275869486346440449489585481178167400773232230062839241543767579823900958620685499853335800784590589262842541746165101601798829777500730642627760534586247979890182425000051638749131330251853905825847649583240862021734434542578956015883356377743656707443173433286178857177912601002680985766389127635721894720583683137940289781946024873311746024299763454636028252859078509416477033177791483413539188598320023539252214562144174751663438288118742330171262689484153937557374059284051759727814078551865915473098976263273058643956536121093363065346512467374585050218110022005083972548570958790099641840862609190816873281019495372465106454449810010877904225988556379042121866988058113153934232909494637144339011529792468265677456598536439608500052713099444961093229201384900593108818160014410421824709404299224645227246819151396279160610767893532046158556325529978134798051933401496176979242143176233209411577775495412865079077650802716276822981540892561226006446151035668332864609028835117304916568339786282409425616406427798930774641132832470600148072517339876535454660457671675664191695679365006989677827613481663485877877157815181641054742956922652089846038943288437417640432986467797263590084944273063340682238437833567237157322127138645494445768486637498416274936457742151876925402675919037331198675355488588815719880473092987112724614794279420605715935974078969159389486787209617386509153761456085725527208458618465955315548423959397320651680081648521165829549632120339603313909747171687501035503787253509188874841850344196945850527288831798478687945697066422416472487674496129109465243906496151508413747761444547377138669915493468469518171513799334092152342663082388049630174002683642703246021197691782539083313158253489966319485123679427680338090869641123750554431659984515488249511955101555202063677575825013977776759795990731840529698437905047956458877398040757535065179764108081713037683264336375962906187921870592405036416326281288795027257977244069296810549441724160653714193109751664246425212888081600353526121345302324703480350929698497409702454558059423675304382619763458064781832546372025799427313681597374724094659217947323534256883660251704383811613099899227101236625096658449899691216367919308969503001805440832740237275148716552642050838189022223086058305942617273316101995171162652698912965970702291079472102357908076976989613401221145796544286119397654493499335416324871780080684743776079857597877979832222342543044475428103152450058275239759681087724309806929813740311021642276015294501970023536328312832332127705622304648990222399852253102622002279878978372196256750749686719252462657150951000095512497328100868100900631481343088151635030334309235130265821246734268132808720705284755467276664143271849146985622442376208733503587895430481959836471616505784116170239350620128404922991955099978006444402384280083726732112867638974969092654345668058220645167464465472460102964627513628618577104248647006857275790846798187141626268712343887263760599349315926327003924823926315320508875635556563900172198845313118276465840383861822679966134960247309601907066013721389305538562643835451096761006541640375301119362440268484313567563100904427373802875977420695384976018158843422405028757679344902892293822055396910744225558627313316053490907974656275414810675059034819673409962736468637862653982090220097878145913289210402481332784144459048188461969593861337850937861784682479971182213180407295063825379060662432306517137272244831440710075209322042582083533621781452770832174346326042918499959628595085416468947415811633537322924927892386499779331150811765094173179012030889242743238210917392064478248200009480313286704159919334233911986004859977250473108009661177793618072702473723679358221867706584977840883057599388555483976854375914340855317377006290104431575543569150446397756980376399107201419956727390759713878155993979015911882628811903674253053814263870722508891605596514649795837688369750780173548248626048818603571819564753381486673121705676793270593061466109276084597053703850964395603286940117781841380561530060151893159194637278196726248262868186712878851998594633526517021157655591038399815535325431264083946247971213179766288564586009189406028500359229256952200295759898682435454589859414981636973477306136181677192868220228629037745992114678222970512909841158748083472774255722083459936550491161056106353780987901127579708677082473416530368670230266421690242881259874010340251402420460000348288459923198507831295306184407375555741224618369053793598652601130652244976973870450402523923389196437002284687415324673630170801505233035980980808780377776105911958324852805785431143941588723744316703694213183964001953368883008768172962167251349485365832576598958346672877953433017960643137980428590284380427265812151961889907771077194685765279285331911860912185441892739059734777766294441649853598050229122120329601338062793687652797296944049613317729475201461474280061129861926636363658763993456996238626598972942916509658782210003434225144954621147486390412670960652583658147675187506095687475353284323541345581758259866302348735901835059711628310514826231678674102812737597601709214559079861061785032041516984174240476175285312961401325303167607490600701897801304889789146770239320975042825615219871558358898142952177956460694583853561296105644607093140884293281748896868094253572185653696202445478531338047997204307400147849270699674708634394030136597904444629832860114473283664484458989499729693056259224863307728539892077944911874172159078006424628426851911700301920783102732902885460468630090336009375929790695691091692467938233767008423442672110842062022144434094256580307868328079347192597850305804837339397590850634585541969508335026700260618848738671980027900651702634419052861141465351373058315857271656156596654978055504617735173658966034610105783498636083775815291972781396137830913982700795181866826737620497126711354068691304009467087027123673224995191163439914798547528525560370568877997215435421325029323038448161676668898039168729465479307585489846843581375685882401536343340448434312673323937942081193972547402362555435914050519087637842374927889024655068907001368623911119946668221217342106700648010410633896895879159540405708420083131590427245478600599003585933363997430858053770436487463399099580500928719854239312300497180920911994911000852018195716421206942651210027508429313188737196956737985888618503009897367351347608195395064721000728465503287862188880803295941627317858052634081494136297661641633728432855695825140378989992822244192702239348977288944930325143026776854182296273563460201665693058118730288957773291182940987806831875352464358301921052585069142516660890986873832012720155386628326248056093704762473960497722871530432212141533324849348088568330317243166906023796904558357084072541148497267334282498972530905131833855301063674143292725914731229547405098220522006044231989132619616319454504325631870999276755458945504301298669985101673297883619297860907916185861205875784671755084523328921327677667491236668927584237842030973623393443748648525366563563418064876575983544365492300678085911531839470919771725169170454152083531026330984020259884824174093099199163251717836170598597009693302582857579264064149240665170631192445777924973054868414330802049541556535870520848434277182351830060233906160157773899673322810561922045002731885331117643246486589542168150350770142033201576074287764582428900959018003543620953589268045650971529204192725726986906969565339082590982999286252760693485137842188343418482860709292621555846981605622242644727006774669206559220117451687652743404287924151828855267516561595636998694568551408176543530567520229452953139882696468464939687264533833701839719619763427355512484958817110891423739880185394514452496081425722271668253544168465696630130256932349987532188322730061069371018494744977755295980778139306479136892287384339846438995380149949827214338007371379899484347680148503577706914960140491715469632719808367871006368118648899198430815665967643984835221358942277216432779010691530150615981871612244338069391137970777775260247938703854489386781661783833502130214779875237225503572975027447019985254075012169191850824880940445791256620862050284673254671267518489965188211803959751372127168440239674868649511362104586574205004295932563940958393823260751281442532904565822923379586345257117349664234307645682730935219909852993849631493167589803142784258788862133000318470765463440136673612135926702963895770314732313751443317018669896163253599388404732155422479700448248635747462451871097104133276316843422425057662940224865506023586519009564523903891528015666917915536017778551169164143940952176627404704975440500811132667301152263245029370298873091107141854318517445386604091334912115114532850917454608389219117322638005652664070396249933939275701062123397002275564704199191356525571825310720271506117193151168569716916367090905801968820776827793705301183298341959519740501266948466270367733044613132337930853750059676645511582448085179759908159675748849225480451270248880102624601984816628202397401963976461528755579119461308570138148181973713767733428366698471665331466232639134832459547533639342786526288999218944470274163301639286765714828313656014936607639846315722244081031179600220898401330429491075929571433431188021516082409744821483382396479490317084185527028446716500529935299317587164226636030833675622685116146737676176244494495814491735927670257088628353293678858165387553060306507248594797950004027047097534869544870175128716624059635033238250840121355725166735134936389470406787412361153396801269959038481786230688761781908267225067587456288900301744385334388258578428918774632956593779050620287315527298971433592325268353372970068376607514283269777318699305552856837010351978162466761347457262998488926974411375549225008339624422055893228183367267316677947806998342459281553837768036066730085041724802470801663350893923498245792585093763922743093816013789860437705149081081152765544470106692787423697514508736607175744761324122383272789839065007622582173407823914528392402873482492416836573455591479203470474221796265556517468980336438124027836990696225062675299078783557910053553106174915891673708063476779653282917439004516919257757113414813984332883196527844295633619014735782040090238294789512724424100264387931661718455897429132785900552656767229024151878886155838379986201604191796658665479902786070117739262454638321131866338870900450438852787411744619443485744976270307186000994020778545342756061542592753340177371022704691314525449253824914893001526480678686719169545891331901496155994742002789405177432999080283166350522199771979784673498689752061348090112017962852453839569691534603037100359629156756132775309227814236055247597530549274116949698046739502699043119057825497673998825726223729868084551709285835508273295362193691010309956346354641760486003536168427315773779473467230808871443583005605385446152020930792754850940845483643603248195480104824933211286334762304901962401416540373192222930792426737781131760185413825688115324318930529560643970816110568154616194660901719346043105823429623270973090739931741592224174557271770480796609954640746290056708509809309576478901342093206443496982015192184691561386946365841314930478413306889605717452674602946062152654130677789439375003710863558090100632756518128815349244911623952303158914819318804638447268870409169518743382811207356892912893948696277940136782569604480654502855733397669798349258942941682868247600583731360879067292143227814927154000278335811234106409171665099077257091481877025120450233647489864516053090167813509139501005877161252971205211224150917794808239019198205317897778304996591663021182552167750708849780867495339557893822394091052230091030775921823902325711738234765040243048045640139415070176376843934565948167466718187441758211042996739061471644320268049198582387472878620794671673828589780393710231986706215996716674977019232927460007309471515208286987898875253593735761082100042837634891991937514112701998420355899796936495674160313561039773623209542627525202431026047132658874435127764667562903699048281601125419903718215540761025774566443114154321309121563631543753831725720764707355734320231592010809550841846942752219397386632917275525789728401627007217946715367062991411564118640936732710302269449139975149891438048239484409226846350932073880643187729342402834488465000089489888204754940295356583008892967445376340858885011625051913871810458608516404831222662829602481929827881514761652136913030481261581479642532677924555312906703801969772473961358309626641375753384151306452141332376153951529137243138722329333280694535386151477738398316598298071162555006462799350681068998151445381146923223282831412265762592746555992252381041561825764276145184469204466964431588656587993210158367704638842250249827986161454803706621209267072520349232250456541431481014840742342245034916649774773823285485067162368204614382620684395280308058162833486710805393729270851699713145483053743242065668680176598576710669647687140075001001480959288895101393988478434501333072774059529000652380022650703910766378175855389572669658722576120363826841182905997582581892840797890545340008105325680169239808604626373042359862739567393995181150158874293396508307865846027388394314211691757841498015120358649684342961627239576237691615544315665126131376328012719894190394943273517162706046794187369710079829800575689035823546406061419032700716600009928443940420189429848820408937729742457184859719725615734476344051357644539922502119558984677554705173707908806819098393234084733381924116922122994552134808461949140973947584272175413673054236985104409560238235516831152360101574077260410266478160178202902679164019783706819262535999804837653216600443016922975766597812019913050003846857595234026659201235724547427088812980117277162641596401408385028820093672865449818283354498631245075084999780952993701010098806854968171687622315701615479895611914827582875666299190862648991275117686743016072361387784524093084750886706540383808412410719384936427096033086198801991554113989409974573233957256834483321220589444373063977432183899968651618863690630365180572552245947393454755622845621206870195962225341084111436816453008290989906949793384246214910347700775538386505135924276615061345556775792311799230725128598842832382803986939885491478787567263482521725402404853827648291531587630624143480680759412424588838480201942531342057474052522581709804129408242506537575722740232899208519808254977064805624129670273012694947609944844103519169136589033285324111791965991751435436376858240019228882576649179880983826142570835133569693386565847723292823033026677229286360560915772176207732761291799163902813016650758673345442423455567509659126539852703568918428071712366346775132490786604788974054057219872648413795969628827534991425634088650171401401748551263090533896795967050059489139814152260402697029862890034590936705397288933089721994987146620859562778318022334903598518298705004121842525135222710973877374534859915697055203784897557065055765045663493877213515170277166651433929558230172639329033397085305062961447407101297135956382826503105069670996808221161144637587418430293111552140038879027491184031151752268953350576990430011391435175066458500286344434776731142020508118905330905058474328122866182478304320734530073438958519002976814618824642112680430916893553198753773496410155628358889856018219248756129311347850492661354477069113479676104814093700208872456441524779206081292663145857254568370158645947657542813942622640406742417366113213805461248831372898531663243964747611530198953332692709950569144504544425373525397062577067873103768770832414637474468758025483975467265841270696768208342313353169260349038081603279837191658145126915201906028440253328669529901174599691579468035154549059729629074610960474708933230196391883391272136761631014368302072541477106275517747382811063693967795298658443817908800508341215450114151245126271545060629374829330271807573301383543846086028991097688347016639271124263931909324250065255791844359432456237422522152289188962168912777418512826150756760622928292673470185630882677010698162539714817599885487449122890926485895930327629448698641513425479789548402557676887492679806809333165033217334997606589598245058342047543681172201722147455908159806511306868307450366127928664516430305232112840126759381997125518695241934592260293533413741071811419387866555362751958235544964574420264404995351770147137613682820560017829999278978371753833444679059397875748890455918375144040699324579129910963559206562403415832540895770697466750450696889517212311620696754783092350232246629754748583342425749183064391992543450534991053656671136237679327023630275864995718581270466326522339480551505211400272902377177729605298530543680174779746105630113875444973812953765075015979585872073704174824048567741589977197391092463308828458759882909182911677704135712675124046999082787132182391059314420372153728394268876395421461880660433842341357497991002950669968173575624793973022938927024980287874286199038241127768846484581947908281435023825758578794429766124497195270933480365699036336977122776178899949687682720288504257287306880887774719294050987744659598723744466601756259542885091721077969769612661604316477798257013648513879892385380860025420156721779503618201330298997434493460604149285008192902110370379179821564339471558382906101487048657574003504442389749046007980399521901199834302470494280582867808685407280119214022292390708114868006291816036761182439593180758401197198830038294390322678564883482793348702048670510615311672145742102704357154602527789169785544959258441078874183495594369630911213676217939438922039805962418490070335649636994838655606899546390749732679112508397769529344043094036555811543695086376239703297086555622003079388357254376170589204848171088858444776340018682419191857435228780035705087692804296902227454270437106187135297764573068547639227534588798653745849125980039920543342713065127445104881153872190400676408923852767912393384003365898122591066197480034538973254793605193694130513750572884371455882081082165560625377169599260602520089196443982594804522072781979321784104288531658637072642763471866385071691517987037954490619750163839985401990403710057641541672832742691261220916285673602827423980500368804902878345121107457281802163793133684615610611526318937632387207150847795361630538975635918166871783649929678199446723963364499653176936515818582103020430453980974365812721835853613629605371565437763485739761030452756284948470700359333354358031294754661264807420769957747463683088514126280471264681449255104348426127236042373541476394334652196688259086366440356581711765917238019414447360857120449855625230674366010562465196899708230488118028397951610773239570915723729236619994347986915795823655644496572344825249147865593475331216507811097435858800557329457812872459983853783557663849802315122085804536740900412339995845107456395217667373926241047583751252634736044504945343787405357026355484642781036924638492253358681409343866602427422919748896755814073300330687355568448865606942456286021866588262969812430847869037503575127179007015004521414217588797112587144260587857287252369181331763438121098416516129528943552627243293369212482064932897892135565370317694630049554070449174086653916194506460821400480078846933476582853565232508679944408338174653491505889797484195344618238809243180240011691735706575741431349871634208105135644671737203212436378785571933843112040774366245864515908310113710103465753134418957083207640495661107568654505205240946582852472099180183628734521904466594448486387862835939296638755535080637346820272958014849474197166359647591856107929080335608007953043699749079424527397804209233849826479189937741998450784157146714717379250121312741598639480773277670483470709468236955480798886909044825038413665128136795727621308401324556737797917641769131787016854693325540911789155771591459818937911270158974923449949662932315274495021652054002548490670276125613593383982033645478618071309138766169504825693250845930669251509585374900881462082040020505565916507909391934782790902588436339943711045116640895037164629787972277106416263875322934936838377900987452075960862163419988591748270366428968117979804528511568379725035393053653682858953563488003913590249032291789171237722546192548079190878111812275858917602962819861599416536878984502166739419095826842161660003842456062598390083346066567722681505909294575919806092956181616075793370644521667912946299200943334779403595242372628420538899068881481860926696485095032508236552984741995238947154120453793085234653089815883868697564028866581716319533976381639555695365930990011403420057544993737133020481279734755470324279419436898771387302230265492214409456021389035259383736722330790198325085843796497117125031388424368797655100700004368480394660158257747070405465844989315206809893946461948747131164976058063095777035800493296821342604045665108298474117873933907200082774021628328546960464424750919854049887022335340639872833458295706785882231840487241407295818549293860232900309117150199721174009146557504935823501373954811073288082661650290731081939799060113069812527981082015920953518471038901215120839221019486694738074512569703572989735062403968467179013993609168861107276781869137664974739172158003587062317337550145333782313505501808736896259161096953386330919585820623054520342228704444785763612960833749663402681029684154588688060162741314323143607696609751310084572240443957158904201346181491640932451032172859642594048996624809144936731887355388442429667577770954340582744776852218151643563243724249980994114390418941461094158668390797228264720366307196820120924881057408753467235036354518441134641957531403348888384038102794784114873568056709732453221760268071574872024877977176465212585480352099247580667302367018187980898427335643620705785576405849507515305303494915027792575723330880068292303848065880126591709889889335223422965857582969917615394848102207571706531549436577631210643142726232491007277243252592300477119345714958000013558890778500649372343214476379649740015147920331283219355918444256745654006660156748210896879751717343393406736860947212868408657015929311225860567346701780388243286595877122978252736985257836279319264509527628271179626851756562026039593529914830315710015060794213020228153575763534271053125586202716005997915146281857415272405241997693802810803611586409572649047981998864152896448861202944818228941050903028375545807793637276318667218058504281345748748362764288335170793934175618833910907603099470417480728035633529883504700916443985647781621761587664757037291506784057122945960961943184963797345331702245773981263837999266714409408935533019612270671936376164177569573103855331735950095468577200698905859369504512471713084993495281423985880110737910602720836394737587834654667118304416997432539506331844113943816222146238680471432861176207046766426491629566891782971948338924000922121533695045800744281152012417494271134761209392034964613942592381060551282167971727157158137465296052788687986973637227284097074170033294452652870913462621018750437291073734921230209534849168553448660374047671447549472610602222906914566297116661861698628734528224164130638626117632752612358045045596937418111894056023272218007396321833904242955690386848635871165745662713493920887756699584715237471613147571334665840175506452939993552428664017285288633848990964356751212104194227004117891250410369080663939536672399558994167357003540467309604416377420671455406959485220876707861635845100534962944644093977560652829847005439293535143386800038405074100587126471304562921431520087616985281035647404456802428237131927904566420066414566185220811137554825653507819678581866424195624408201358817702440445250901130965540638729379145502084329316129319174613475608418693509957943533450584612539911689898823601464351476173984802550148465251776226684802847214825453203497590013845431212800528393409272596428577864233103748032532631560727999842115701948580636381184398651202064866828766092242603223727069550635600608119678775331184963981290953957393093596318683151657524635082981569407974355237082927512818383349097486323295391035470607360550628511440504580940892562659304669440632205824032478906791840266993204439106934486583173759213533521969263395925555034552569587770516206938989585437106187584955571232888047005467958280202396693118812611638581235381826875188055598337266443365093705445638281055243733758943806904240865154954663990395036088581164562616774738168316950283589057700323107970444870967058343028335848978425323016129412064745887543550256740619700359288978404194513105637291347953645480295966017063091592068414644061541443737749175363099294633680674801473190250505883282985335813892289027750353497865312394898645029335321101073148138982825094279362197669587473241369337624224308965601566273184668074421374878885928348969328684064401593256794550365316757004259596147530777481750809859992506998619884777481742476948540238320253933078604026268878907187723544823202164539936379754491215906330643761018629065429007664356924825125074363082455774878208905123029335456705078759448992503647906597241898358404367535154367526524036508641583945018645361442670326045073693418354539764065552317856444071580678759034537835689655219978452217504025330505323604544963724001342321780758937974243753639212209319823692523337599443048517602913540790061090061594086834628115976161164191630801194407924363212161830841775091395091695870218412456850051764716201357230555530708017096028763067662933858033627894877390335704726381490420036224412496057771996582788201608068095266502009134725187021490257584669872717114355817862085233611863827927151583161097032854031086863092254251969689010744145174038292947515323070504953393447467112687321968571872279165651931241485111442321373354332973054855642596143228562697099932836575944449465957734186066499156106240808329258695210692895345531202372166144587678620117771386629197790716767617774079829325290990415696765215949578406193232623589697573854313745007041147660363166985452228577580214613507082908207273308090748918183247257795313234234397114892601156545063127161207423550680549192243976785520140150541936436815867542269471660138950845403118516823235707169832278909971972106312811633560266996683833069061632786748976668155065699025419354479218612858129400877979448322051556937579053796269018190405596074708991489935024361584703610605789803517424626362398250123620634083179720368296526357263779397622444247363343397807655100760714740274987165022627284353036905924107370375273859446655095749859799223322843961581213562398142584395319446265541784409752240136453495988975774453595835022164940076507183110846102237369786967195944112870845612144482212444175585216654173861289829256677539199054956249268543939643343000268643537743421408210863460654012073142639253712550223838711760470554800418756825645041969463799139823545165317041897982532792773865724181245821552415757625898131214763476683629054987609954669205788221209226644763550029281392985856169886149464632043138233412912690341567114011389961675124287726433863947238906437521483686202240526482996108270068222322523485993651294150252629550245777437870309785295977729499598069939277179853590288319461141636294568952321223996406417606078256292272064669410398209735580596241056382100932274341456984482234723888661065823610732077558344747751435770654893168354389957064917588472147599740440748581023957364866016793316683738283111141241345625263723516958006451194227683593090730740743257781824558849496061383864499437875435634851989972535048001143533375989866316341769327507202403717073277317016142502283030911149648795667162391198718779987425636704200365792683292132009361358000177388419639513580315151983529394150183381910762980689640844218137371018673448353701655493288213069076783170184078909769225632165717988409596116601166470399213071591176374763093947827674071163297197723374819655492580840874552797869001463740771346505774693713297672846092451806358824732925686758900640272211666244379858763204306497760995929778568982625275829319786382636314960046531148250409135549167418915453524067255412290146378783421075760281589838233804548276264190535298781517233528747006792607866074127659030844662119350067414515178577112844268881014785802508409083357664159649445861706694690729450923012091368230832904012439014501307520561711444661946953014917023109260972610173668741398632665124433974131872310581640164625972307334546507815113074725391601937373509714178312990139243242396907600632914843093689348822296643277583021706664346593285149361645036047100556964356477945242547327752646779645813322817752652268736418716460813945253854770053858221011313970608367601367216095483785649401399959615092522317550688640720589451896285565325083731338023118431739296180924026495332615398681256695882836716597412710084805286595389584226416431776593361656744075956516654418611546442034329084812206087235688919078423596073011921807746483680855076081900055990154265963281265886595616992204385635223079352308126941678675485879190625735677123532776924959402181629067210910522413335012151632607909189906525672069437696266126410477208236444568796941111395165375266390110489007905488338622287750006170297956028643788984007490765666116596667483974634030353051098597073655841470599498021157233869105749618653836144775796778278817731740358357813911196194826038044760117343173592774855660091716470315938275323784997955062919427407567143182307221859072216413132934686791052984966244054741309349989935499563586826201596741084201943665779939240584184592345108401280366348780868810185882712759560506279701641755925341721926875465542492260459730047206454689429714050882861835196467807730140790558652104048733900443174156855451126761634443367677503527637087489121528892058043339086992287628087693887773592407906353600350334385866117862083157982581796984121052857475023060336723442512747093888243537932033413716974963540212586335480044328853483954975116824986269269965138793366262708337412062865524791468540321549831358746569841558811423858694715236008253757428481373875427838997096050097193496159231343483064461986249098137831108385666863705046940259489353415052466398040979142076139937877055580400456555092027792999783890226325993710191173393623907727171717729967790362606187829858941444243077181829852568018584056276281964291650198844459443862328795702918502682933099172597734465910083621558936879188335750089604849384125122562161593769786111568380984273470856495373366590298477856434110142550187608705025043906585687513116153151284712427035986690690193297636343514396295474422100164822827175682761814367252641949787918369912316425113950377848828979298659670382139367017614089317573970213153356897542135888387177955264331648939729462754922432454557872287658878654604374020463702191498708870457045245495829920560742929940440446382532368459129328652857773308951150281746798309183037871245955399598365297212568598818257802351367163087636871253440754714190461255512294544789915941226284880506115988889199777401165218724402864573925203649179726031179240933820949536571798338615134779909805557819145908271065748595674321025411184115872187203127426214832180403730348250529426070133398877162545917944514370159116197194322992449881743152596704587819594096863674443632818007018867670697822956808426672695246291124685372185896202285667539172899132596491449414039461945659420632392414898839195120501712020095510018102522507172467401324826596399856360442356026881752725457665426128577412106086011516297075391595954477930817991003678914764080188562510485327830916029647892150278567976129007051687120317144584476748437369849545211839403416539946781511010436476210218300671511425361160538961656169906574265008167659707902943062586397321526520483716396842043750329393790710597365473274078508040598300601957836689412006195517467158398027928685847578959429753157887110635539064923143598571735422517573486280550495169262790498509684287618707656669996674568231834579673058386008321053929337039940488570652676182585000061172611776526909160036934291805435688361896778909421646133728673892676025416651216367744919676167058876402466316210840395277876222207428273304366760717733688774915096040463122563363088716592699640483594517486633487477706549147236942265577833239388539109721464746116536011063270405985155939400483992155718585681815248770660158322458841581602047930016588840220519328416625786172919442132086060031106431594663523465722493150265150725528323568873962450099358486084441502526706887410682742560257891110279602275315309347797162249942914807374934786403104836589397018376517536810683020207144850768122498499237909247681599699868747462381056726519947897249681295677867216684614050158045226920243574601140006690362251265565795203076181361149608582223739924680624765913277436967904428791681585521836449768672971663812782159544273572114731973449083797307011156450024667013024418692807091545160364251209878282296191007775071031835242044553835538005517478650019938108354508487132370112665178045600415335217744094388328658935300031336354155472650172418503831569625175974311359935852828925115049878955516672414055198096812616699552768009115939586888547569866250219245300733307708811816472964224130212839301875834656057498021892043620379033250572237342237037343853937265551809358461659191798363875370188690951238926607647415734065971626426392361106688863584357170939510040711467085911348642958639684164696964890647645718831190839531299514337403235105707855357076180991903946269584281509420954567537698152535710558857816488868474256178020981491113008164007365830274762954902030627728964852716042627987740979154367738638646997751333116182893731076456636304298738539641926800228993704086906443726743025387125243956481473433068238850678001669867629268419504733410154944915506125765537814206002168020883683169970328648358927042970665651095540885873548920696542796146969135847732565229554405806401402345286209039565569290973112875119862000205001219223369912587991919400478193999886208982938405138010572070499624928198779597170845193009512095602885255965743340676380034674094941717643499754697118775004498222387391173198567175773889049600299706233471310458084507113049332466620627668952117931572598259680282826591264472368499246080476040654333287996083671157264414867762347454669518252350989133922693724255744709235127801691800211721722834535939698877691300471242625567590217818144078597821053637662525519373429099884162221174348632994220031915562897358904651118527933045960358801060707096256290335469396864375989569297375658223692028138981366237597417535243890309109705873455910284808998298488874083397093170817001564639462208450221323917179887143168964053134640467300966546040573802979581030401799099233663925652164238390171538456658276213029589304958380976158638521301965943275324092771176387916781990463790591358888570984745407042069239117191702114540195258646063456882486397576157893436779879236556810537037702625115747684101026995500502952432585255226611731336403352980448144544482482489570684055234313047173087868035337472939806780426793112185263084740041940107591197542082269341457790839501531234726456565450910477180458356807111899998901653356276048188310894757601757660962047295204504879475843397531650139334074440159824417197060259587187824623768034374907790556619334624670894938553294864469756943700637041575067845224006155265924204612446282308146103507282584441176506388901646215433750935584405792104013327469189261654319908484185087117662221320667751909782258534926081499081560215708055944706377312618415057292158182851447303798352400148685011287110378511015611522377433097555944463196141735201278063336302562372657930211492893551712977783097107718274094783434956093942278904550988160601418133072437239389468859681418876197468721323431565249826774044236152819013669706132928401659955156740417418027088463898855655571179782466562179922315643611132908881736980238512974534178681649005577195165851906883367047961075562444417883319618318122701904646421190974715174096003607265306196965678445755192074562624275387426443405021265320072413888635424265012271543902201049615650713155557409789389993077219569773182632969520715511971969414899737592988971644328485727147893318915297628580634477295762564936748794247107495034405193021289884726811285385438681957431507035387126560377853261479523746509236920096236836182100741850784099352993649504889331463416898022257914681126101631846018352690172737991471198017560661973395306326121983775932539839633234966310984876183632810574552797297666295701641349543068636417217598380051981001390536203303221754778031604798976022933989590253932813404883577647261020498583274411409096001676186486177664807623923813397517852929649846717524868460051266991903516685039362728610405210645885223392483131528693875826638248348646573209409907594284804309789861116392766844401435302665956209353726035511050740858113994753288647379520359028780936196140356010561767327979111697064419014067153203801985200133410433647784822335953626889027396762193186939511485560605758189660113404609838036840403550239044976523689708944176143750813113898102434996942433349894852075229221107483441212774633412437668988046662885803856486297026992324634701224382494550330389544591310836928194112643912145396983261290905500565558200930447168753193595530905298194883373494855683264928651224490339126460615171973754609386237947168443003203191482336539781428460983681491182167712344155281179969754115104202710838055395952704307820283432511032469972496215509926205793548029528618215403683330385413382855812914519190551878664934094702908065626426587932891501380962680958843627735335831543724778348319668379027661441349004923136038323434229879741275672078402596017225831763750430021046626060326695362297412283906140440656654559234049976957661599016598861151800565679492266267117186696646029323642521816629098984942852678662476062545593446093044980311233356454545370387255028712594873430084195788246308704172119379071460990697163461492323693079764727137593097779305471807450709769712793480333513833549730451285616184652957382818502646537872741626405445329429563354604998242911047838172785632099483867401633218483611733757594447592538570084109358279026129420126501527057239790286250247100442216360214367024682664678244624989152206741652995937239758212683076002639877972099026929078186062415274865965343258164234988974710519236337643792744346794050604120865168303984573277904476986157432870815391539640135473937605416043853061519980591066553573548035871593254896630774849728848753200299109814449745520899469853674638538470480529408423594960306524380730618621651418489108491910228357680718097910964814373781664850944610028071876758432384326774303296523194563932387166926030967207117516512665448369219097023016719609298203399097510156403434988693772639213233821460112476753994978736022932810719304259519258406309099862874075926179357504505541617431269011493266199777346662156294045056007115053649764211467773094009067045832062260615842654851166142322238525476576279636805260647299809600377836779682246074083219656727282215999405882959031401486010643155957141952589376490558394970895415483517755387900959097660410713090004492809105319787085321502419659808340106179925297348540254411187215755924190770340803115339330876812669541469681190602355386917449041378451876206956586584121404746849401756387453593264992775763712495042904720240811673385670973456795500910950495336085453969097374586669515774150052589940772921588712227842484082880533666385352462201617746012066751782000777752237187700939397687197008829939817212091945918690967539751945875763752526778817011828558685908884786147313093524873695963611679764454561588012178675684482376201236826681585585849431062230263934501152908054129353460373779855411895271430042039224219083363892337366331156094259648460569182627867523913071828216245789100683515312886668475000729338314203881156650394627557054037174686069737095162982948365922040526742490784494020425959415938714857141754674066023821419680889494589168835242543821620708142734629103224947265292194924221016304550113746388441479435297629337531508799703155914447974000307579287818394200358405221559829676116813525192937914167637447997449445535143424838223551159493259262673559972992093412624652434791686519019818422662862881160889159004097929864216523279621793904047347377468781841173718319310738328903552806813580415058670194268520818748509494642381429665278564734577423003630130632605785412410271556820714132221686141012782558434399971846972583041777258058346244699168153818992197260249517826374653178066289555884282639417967828420575518965335104662296630353675777243840900045447290748387319046517469363855703056038025588828315710563106652988420609248721326544021572436910253424741638975881870525291976586495005279159106006490332291933951535728862236485144390134664868904107614606500761339959231049187762796442224638828912180680497508761398493088866929057855013502353544338910876177274984443421469013191368008118000907505190250669170303298253037342596671881765269719405286875897280528132106845833690555079879626639027159320407055027057311472889553899555964046790712929222804236998680134614694552573909590381761183783570375021078247554172555226202743327864232519914191350005308733974810608027125293760517158545675567279314037090485680876956925432058296030710330407009889875922789162236496794091082696660365352692435501923244202541041301111084287592618863912593091217104715428141781141377591583313448461668195390881261387778761929086573817707711409845110193635346186727996605320313375087207217953559117635115119570676372286732190328615882761824320132101146928663874897204143854349280181138449364032984392999371431386610087769901311537730148272823887217241194720719449775760185357469843845607468102640989332673246897206354612700780387420461694099063087638072678026010589423337378674512552801786100895059969474425464947699691118165494128342393745000708942230592744106824084941535966370023807825818871793449304295049002279812568166139531630860786287915419966334093589607976004890759628807940065410563232349558199329752075696457611495834518305358123071171074982665626530218658182044131666913871198374855411013003282561065980177455285527175282767619898519740173756527404542870638081446776385942636958474340313399258594908451817895756820605671614350715207857387818388623491688773398140977439730916299206374863256929333707327715071833339189620973874995839581821347653594163470637909332947318108520787954176014170432321285595716253323684121595980827192692908522771825148803806699815679372792204308856208095835615612951295362429826952161466110251720217738066869548574137247000628015232696664966069754047657245246898329104258081403571304264254133729683596605950317119690615299726671337104410284672953264012480179882062285767140333999429909142753683427349118354143335677850381150514229785853149460149447767012311761349164148393664874881116055307510569100792756332044271777428823729339132161305012398732571340984376445232087010845141351767640501642534128739007378605391626015295910959836962373924806568556735723519321302303254789235928649449323626396541768101312289867365387695936778008596893334145060862706264186768156428603810555729193184552933093451178434054213706743088146548817809664780633022367620244686897998905797372319239742084549460797589500309514777191050130708339219183848397303622579493249986576033270940811232851399339841697035498400224764802061230936243619995758748557652280602616125563790122768556990690921005654660049822494403055371955701352939996593630537387672418572191104233784673708118660274330769849996884280735182179970989074125583364091730826950036576710147588709122833564869613564798750201296745091150593314981958503238832437376862543903619769413531193168396549919469071769315594517147651543483003738338786074707637185266083714660582087571659231637768944100017752061993800883467386922732171378475791568525608037830819218470819534481451852405803682362018366205201529501167476508486754698781253140356426205321260244432876768690545584009454479260488450665075102775933334280398003503700940002840665586865429533761310572423630233873572528229906881477650309262925874514195852331463602548485003011237039488774567632755154125111581100878806993277770905584668830801957477126500209030093877783740088193417197090165365692605485786889583232918437915215751341096815809206917871214484304822775566609942345370441324418096191969833049495759685410531548061806201856135157221681420988480551960684404150134829863018866531133906543911771957324501499113001921874392807084630095211748260550100192232834335941190067742366672345672111773710091972211311777254302551719371070996142226174313564422105768009885325685407922846640289783308306762044269238703818389554347357675594280197668025229964100230442865985394785050475081086687605011788345599789670857601911400954542792022178693728525298943329846479798276145591919823192388412484499175051758790787930018151362389882486662655287738349835559013367922335756790112725062168831345718486767300637658464187024727396176937623363241114571166277821200308983988743199854101001097916452442892654266609175154170463123059612897566589004234276295403055969301358964114594991408750228767633762744726852540991187772018269231264401337676875040784687186067762318274473199464759693454274693780392256840433983062672815821335022727698028196992268052889142313441377020716927983051344472161852259278504267522244347459238651097632927839743260024835760770749080775611929409849839907580665897216453967731188838166429914657208688585770823092450929337339765342017159233590426061777946779299473983076563906412729606579660375084377122975124317975243032504261691024589113243265104257241125753331935325060375288213692652676510629628340238098895430830010704302842711310731383982766455441779973503331450188198534639665972614288014791324181945486658558658929413809820502541401243300895332499406986621580194498455806917337739292728608099454511124121396009054315811184148104492093465635887510734430528846430503201938599219918103156489188994388440756989515552339421628023382526893744124302487236868416399011763211548881865694511929409809120347243639653420319681201111443062305592269565423724213370790102427455394706963073729312042525719228077538229090152983438136236116712851532148055436568143056373831057977479062037321959956130759334828768469310595082973616452910271458663161533086328990615851460776200142395149508910014135474027349246538536194403196788159864540372445998292207326562629779072873016987352563626236907046291203009108014729756673219111998003896188002747472724745415561537242284155320701776167446952912617724107498045589988152632544037694913421185496345928403639286597633266735239533590340612129075826525911820234329071706386921792814012384649472886523631051930259480651579676934923450484021804613957966212252241110980661148331063557493322086870288704441047255623843612462154491954491384818747326982732737345562328383497048678300187659944423320615647101687269722777041602544785645849495032288541083718943909537692130505732992148538543959647769945944829135286694961802946875009578954746743463929837842886545411668360071075766473384252153067662457766802645606157840973903590509885804856756191760207895737363317902028763711379580083527655720195471027719725914827672015785729021525290133114341384114073605271700742414300719077375338452472137365979969390352948226552648593620186892869544993729057420961195730028282368660088673079604853318317615552178668194184812377345124937124441829221920143706902726513661187882778827150091537437886545144689608725215828644450124260643035223871945126979784024819171441240538687599714372527949375501172271647850331688237486360113346641669660309615353715178616385310471315229256192519444144094866862404599480657203949203022894164144777757404920400864655113570981594209350850243977614338239707171300525884385402289476350266609389837559132815452767673938370028568763946234382150398254401902493452084948311991612853808562330773402166295915640537987400022007807306314879295398666359326820471602668147836597351729003483263153432799445776709493126664063389231292205698306971188889901506392118278835387074826504253309805327871233450480391077090767208025488427282266136781715888568639792382263705151625242787758545084988058258076486451865874661167394974470710274306484517456615306981186957268624119690094382779123252645273323915731638422599042285931714049860980723538719221529048494615496598688067890283922391238166416420539473626023726987487638350001535008942350054730544362168524867129647073132219051127021065557630939878220379236322544383570332251708781972302413029281660181401064011555770107834075819635224709043842087089687825110129161319715322468178934709012816091291937798457434503857492639838477819600080257260098098088294831449963666470975149669772069467165065264096406065642827743630912238380455719767590435176817519895006011918187967588709607156616124641803787747328277376244907251802857291031911483169999287511561025584673828484667153054096427212215461662329520879777627058754615921836623964138163874540081477836331347671360990674610319615328386406173210613125324721162500428013654681320437244085615149638676777790026809350153330812529223772011907701807167969443675429951411544352799410712406135765290806247026372567363370408862410138644779722710983857223663170244420180788697484909021455905860781900141324711802587465335963241501393107792845622328543918597765384403308497834017737810354217765785846740960945008305941895386243575804575955658507264971351469386045876736026845541293681789140795201183929309836466219458073247649751497343615186715712053257813046302382134588293805561563504076235438015251947890908538823682765880959668091483227800064031906073665308119670861342959938141244128562099342709899418902751308298255241702532511119555816673184835427490055546322944951791870097778573377343449184582894554318552812005744430615523176524925374314660449742844251601406842366413193762008928730644882526766004826487710375821045522665817659418874830916373786733776550138914251166317263103873914370003362691122522082365157374491155772777235353734155324291080738480076765736902100475943171962718989401089084107307981401538802735565515953424211509385566913114766187354510304491150989628384536580283857934980881982081895956019020448414244246843070180382112715384325814285441657852890756591771809042082463189223838940292219052997399468858617085994672804968103243400886390422600878338682969183672772662787643268800216023445154693279775179172497966176657103375816601825963373273081517887213906362856838230245667076212962948149923792907598411471896605774342517373609658743002255634795559327677466125495311385615931846167445387779145794249722673872230162580517284092127137026763075475009427333294942581779173939115492069629983644232236713382254715838063513691856665000153886276053981945490675568583507961331123581198551106381330650735549405802237473568196465669705449291222501334900715468069580655047127958848337619820726368040260287815200121443358606673494801934393755195578271562366614239907769951594645124084707612299222696162339532582537957927652786323381554611123955159995623665963865129399527016635601381409477196173471864610532071277098034019088227465953125236831962515871579962572773016548134342741886564198531367040342167480271825720481671821114928907850710805121626068079026128350864075047006460900395167726664947826808797232830858927379703116106749641316637704708283625207042728720890633338645231566760438266905217610289904912889186606586234492735881616041755683093270773653249300223638023305135309567067303219591049076192637717503595585299692814824718885895898519173723812681514661743502871965827350970369015391129729057092171353495194328380815122034686861954989355997407083858202744833601614823059787203760831219902085756449311112161298333108999613502621461342487338813452185079726122525961856978314688855048378345998172648210567863945528832503240028546754510847904151196805359106514424424824201988722164045771760539886968801013288670738133238241937993538933525900727721095654842900236884066694685717373219415843734030938932792281744092824343138091446692039624934004824964642975766666905782721369497676069068906347724527501706315481286408243819958095709640100688166803225134326310240452280301566477463296079562843144767540381970948128311861553877112670815213834945791039765758171146392667457667856388567658847006495519138119003097895192929389447428377730126563306845086099324703821172766603627924809096123078769936389016910613365142586200401339714121625585672637551762272795674793260777121793934552046035807069253897939732840788437160665525191166119599681032227688098449273798163397398775414952982994586366250863252565209943663825812066418585951952251329941638830954427826016133519236049202568503155276610148636653283066887659601713156959847985406045617636036305372669983660340429689987657877354520636957655135153507936108461539501781904887730673899088545405262391245759904203638911477657879203668331098002192248291491438327537719705324705989108972008060915748673133502467677871391347267748660231433473525600025167352494951997020901641610716196282271074520779100088515913574081838592456924693845388707654520956708229092228659751048218298027092082697469291776809457197012188911091682721610017906118541177405904935038114940807377613524304174181966190113078937645170422332692150613527191018862240973128875764586588248237023876719095549794881570499033920100035849232287408872978719477850772506735267506255694788366347674502398672945278835523960754088138808478221865647161855997465446512764421337992535677891418268199589311769782230264818787043931162108144822572998657738624707074329689354377827341754456970530723859262812003217240526641472757316671310927619933447639289658841077247405311497373639869561734556456541835404254401187165987448584741529538579438411988335219181930178792000466733306856142439475766014209426527341218401387491426504271327908167656093443626504401964751600414414563201618517684302869412710575611016282993972813390544259059362724803268103851429750613820387210614902625443183358772064874670280030780755000209919999926538806651373162600505752827688439084359794230668589493334052138713541105090887931129881883746438863015412330124334214168722848022912489486909667131832679048320797130518139667838583093349542255573775762434404169462627795200906140943583744934332828787433157306111552506521593943782662370446296704448338637727345970429579407344020833868294392643362570205529973955864626616037882062940853844529304073382053738142719843270129716238771525491978727896807912851610113816880930647790456662853887279545066266142700225163830647062128644556713059779743050689093564342443173875473204406171734754373761339650049661722197320516735026581196203366366866231522450890044333435977067072467925566491028247603808886674588802331498676764303584030423659202438457250166727692186332970368305495534436556024489856204225015208349896339943198252581277799806641918651256918726159705491480226274920239300121137937074406330272867354798786006593261519050978113731887130664853772458512479788542314611731509525117920868837120626361572814755815763397596246276235056502583644634922936554220292601226893493023020017947095384937629983180177458923114506978939346731489250610543931621922127898717605128390471558490310471219510101304837508747303085992075400643692570513916236147763685707687204751813780613362799049863359728775424237491074293228138979918709026587988049786194293419143641898026991145162484700855567971450352622729515271653621644730829106406281856969593454195614218812318423894253606109725441168193878078223050210695858530465317466919894176821257220576668886188790639858460322633522515949788049800388658673053613226990734770658133638306791016489542101174716689187444600090665265678524012199002572855619992712736900515420067766136770794926304112937584341872848343363642692610777685873033160889679058830308387296069454844512732882703049546348836498419726715031367400540490286128717607218370951181766880159439113111424785911504358846314711401848631814169118657715629102408218915820992219186499072003244429653793812234240222573487295559802381490333647202475526494667471921544971656331414534899279741211750803617744736298307928277304603375743845342482459892460651250128797963425407359128807383093219760027737406928527823529562510148648347129624754067363796484718012951074853095474823661363647177009279633530267014362945092505471868450794765251723499203289339644650257679453825448359919436095079261884870663675838371086785176456734996045256880547687185676636368807240118630155558397773126776739153422309949981716210713401213663618048912437967868229154026494113498150513867343325708684343902154476820900407783710386790939592274816359334726356792165063334501020936233533910946825776848411035463859673020771735311383649913494025415651807733318029699252644991092274204699502633258268206415861871078709245328744370889738338774454549671245302174365621404853425830034098373637657688514115030615406165335772244914122122123579173666536119432938164648843629639553054006955727268207168545134590131084996707510615028152638289537805388678082117295018496252136318317491055075167664359097303265603008530849654654132012537937771512018213544548283379554012842857717131043258178315661095459297706572293168368838231044731453605373791148322744427266184461223424315088317758421955801648435555723668454127001543010265927923523927418860496106274567983310626563658061250933746033756720342008460997853310223603505287981766639508575743163693214753844741052296335803941711270838418374037469705994768822764733018543361271376522366302955955550791728606165875696962309658605976160669882287433711182865808224121555483379069855648292753789441541576265965876230959376006222392792362542447508279531018387845679060920696477709188416320225863827593064390683124589344306494910143078584659902353209982795165700877880801210591876258216680381072669024665053080856668795953072178392405587404188522511836732850453000104156206873191238679717415321273627383240427148882093588694127949245873055651275443337365900481853615976084406217875027584489145251084705876136900513564789521180284367702600333329733176852329377973060926000525333456030661114653149468697032900615028890307151228240717528568145493692656166748824132394407288232699837281741987272676238160897602527133952262580579005680386495234062265576933241277115287090844678664365883232627060240545018837431947418564484892148283833785261451264615637061210288534343844971650481991038187678743497983785720797742061548825152301236934537717464321769427684252409456626426707493423574078925634414317982024219001634935731554133305697197721865630872618240396638330547333821853834975916362733206083502606766634912011772773678612198339640861220936136888456292369132195343360124131762346730772951469073271337316551347312565194934001487403840242224090589813672286485230571410508421110843350776003469120349506298389511613599655648326738045888728900516796575823076860441408897813572943686197781346455692016350951085504027511897080689453397804565706865152807196227607951263383194300055244521648879428974368549941083188318488094530749392653583356407444558672413363818339959284229656058701222500670673044370210814706374243295474356200876176243961607751087631854437292179395951857600366465019644681075857855061048636620254674680784756555166289379997551687227803440434947204197012296995211245818791146669278171467980539651077200230980106152289590466640040769016581915469064799781864359438031553335743936278495999663667060172176705827355717769066184239010078951117931354423837180269470787479928547674503398396202792472476562799420351539342214859805860755282555834848148211249517205843058069964840365001645541768311995307000376145292574038207370000376556798971468443909450883918998516639683202050399783786789333653954599862704834869196682710106949694693675487265128212350350612268245240500035552760015605188737659914395135839466764699960850542718707292112555636573719200288494704527074115582322099617330907252497255820262148615015705380552147656856452752066588796120743808367367371572428110889078836445222236852828953092326699877103323614016968738111270192776021663822839472548567344351976305107862741824269947908225567179293660570444682006734237947869453967690165582377433273886586159736902053556888023946377771111343284757156844041014166359226406097831513970470986325903398821606665767654020311603701987831101033127970121110072834879353104306732330435452092187188157801556423741061004664925695826934466866612385662897826683842335255799726046905475610116590033414529535929291858026320595642227172463448422122712295289758020203198552451201780315840569320220163995059575600355863403652060276765562746902776039761793459059700281443113243843419764344833978662793630764136220576167907777290208497785517033570347346840443315163614356581409706759712969047918365829335854038207408297472710650537807737700120522614999391698861882996247517267691979815174687408679752281570953747754994061453509147952492782721527567219953486231874442230844386719085454618025755047504366095379608910320202688166486476506618369368277117361475482391354031868677793518225568855567212430813034352650670685621475636005147686109994969985876891043619699656067712768184094948935945714228019176277584443337786505852198821396630768413412526120351849489025610175916259316241294510528845340406666894588925013180029677528710714661148687709724154068997243386397009455154943644150285585586535840126716277855905093282342797286347776961752967185618519283263052890439918161159359417672284237972313780796452297102129473529980219177762652838225279404223204151735722354186102717582138377211515146723827229990637615390347289059389079117135883806927115360192873130838487777303488567764144271483502459358155142971649746754582581225078137721567410215728324344929797617529593347847134261297377617520418462646711804137546613225885459265886208469173498317628307776873138021398255241470086668079001305805971516247509409344319198372950003409190682778600431105835911445027628262146813249346841319780357759344826048204680502821314878563393880593733109055603078224915950923718585108392296341318699416692203134113180250843803023688483780474234533775050330688079225419435383341385894509721613203606697792226423872652842060494120248834467657059852662324661185387062514744455899388861651928339355519853858899015634767727592019501451245766548146223828393050110560092513203312644294148832338075566889651745649927672776039933424495316471009650043253420025442909717796819731538560540691248215110783751965701694147107831976991417579627302374729899532322744471756885145927543532547111435300863541142097047720573272565581547649407593660758820382798764015124692077008197863408340500331650370175344788722343335400033814494935879050694936680465711328802331303082244590243189929249967301764966290216079451122196445865202513382992439149755602024677522906475970890701756850627080899943800344066177763288987272349537744791841430291592963167135954485197440935467340984758337118467042346906175343310009435966654052857858131970446428121422344017774357484866865281013420361168918764577476484919263752498589793268828287325345698088675737999864004549527423000555249363420417486618128905626399514371600251194547862723527057827434342458236245182999927454977151690713115948008717152098052498581290938050071093419697150907294073626765030854558034824538727337090231977635336605866770132819313903082443012345347315670191668545630277716307819879513399493420281473272466041899473435866610431638516656667689494706308809261131883840106201736612579975629057631340967556553650810162919108378734834234327631341650227243439757523474346294520712955727828425955708039312661077253517841292738663970768126262380546940430053496878001161410601702659479437767027749569864068235885262563261104691321128802120565587151349292399965981540416167904112457171513674160187671438482446048574687029854875829070501974180061600488425306245793717609213445102729651092922166517916488043827521353258491891750959339166082659189360785798953938166064684240571863931221973799931783860223260350691147535393838515666750451948017509401838460888312052055037273852110263068316054963388160371386174818865914680750966463794038145573896856835330689697187943269120675841484356572871628549835559438431263250382822522830677192537149390414803511058891226416635510028353354979380557317153978747394518094103896829120011965083861864728077464009978935964503918174798217483271788293268776937476399442798518982305985988939325285437230820678741825326366391088451384163046823029258752175304976336946270594298374206612690779249807126554716503052279980519845271358298057495533378461674602003007887931805187996857296209095910779766793869153751470329965840665685636989139727571914286652959056478952790232348865632864700170927202117387329721021409445577819657081354603250237653320512185979571761212159504585458701474061345419280152706294666076623189595283289165403824293788215115813231236816847550621900763454105955081160712693212060772895491450952341196322096075960209294201871275883483027969035778671426229565244656395228061179045562370980363904395447689541641277130911009679302281364187860632281770961237402580870009377525065893121368172596557840137939338685574842068060188362339857969803383374683621669470970967218333475832674218903679394454768588155028142218177485227568111189799648391696320996089767737438202229731068146634901623965336656905251096350196814747430398164523562933211609364269384289765560902199973327620844732674193471756885821199260662209177243630610622374235734346734854528678209664238315361433413965885643963396559263853662070945003114908734889325652584927943204661096440913360668127527381910251702576534408035147600212828228691296533454054326750881422590318693540453749491349206404723985913658247845111897573142323618024759221492815515966766671694531601381051521300718747716004066237954955260164780894102916601337608468197255172519176923985897991653518835131710743903335847838074827694899972531912508878050245396400978087028548863967601439918217576803557868086509609873379287202927685581393654228144804818837013977703939755530015925160756852567699597628477523765817072950435652024779122195147297616114515084749262062818002265904994869846587964471679886511857114402797964060774286951126272004205958936186303455020645689111157810065400833448409175223175690245376231885474429009037350431569944589823845609045238364716505101350039624063566333108704248496397519567716170568394023034832812138473997464160735831273016925156825385153585564855096253466844388974415506648911094376262677629425698350067499259223091468831723164418868562538357559584681054541668612704757472612383617720087529884238552495976149642612886947150961817718031260598922054697577258250726018888208518693328866689433243061549951837689689200211594481815833736344395411829776043450193895994452446924874531730240201980705091643614093204933942854243263528730312079029689329226261507583638337981316481502027160371005575641128640349244980382394105924357969515741485139393213618906975982958832398962931696628261987012779261564808112943014614422305295856392406755187351461350037471981754372090948006054661649859354015386378803812057155439658961291370350114401462681730406336317624591539413223379891921553380033921767558767769554603342637657867186726103089794046579055185842304827410884904532860265750280369924652788533281234277598310954129953092490306857168732261477108362526613854385934312795679101857677191333907016732608540969063973078432352637541910999468921796646635353673362437800136835444160149230971891466115373850051168300749273665694934183482089383884448839795598013809276509261886322443607277007965231300224698741484511650778816093452975971551269776813216698720927648164587977311351462010369315787555473567541042401030804988644199783178602169379267383677095706329535932740348006884109730251535823850892234249574740208076457445445692389137027214310165520371679989844951324167162748663113474419003330906406890408492802950398781914462308074930230461581439453947986540759218036072262298569525677050605502223333955892935118359094471199229916861569832386661910284248344202298528321368600105582575893941063339866345533245018506101854927516153716316965018065775882071990887083058998137896801417818540211482211031257160910136982437887446484934971037033859272169595533503706934762268651304750501844284657927590212590363565508322324331378066138484206172076656031459293484212442833749762880956864076198929201402075040637036549013589160530438812328487620950879840032782470992728908217964767847456863586810502881377873655236007744344909108576940291200259802106984320120409625470399619880502039435438535228871567964346611431812214572766458201453772280075379709878711598723105840143566959676034855960374402106758824075308518690823562827705638641953207942907423216934791975638936131474515375700981778814056960359295293435671449952888191818292363976444524400303474039739798165657709210242632386622923553113092238810074225076641778233135216781851813470907351193506589681508834412635604153660605344893634440650001037875654265779887888424600380173678113288114360742629613588882520758651840885375212081956282666516192116455342606869538444387103633346233950094631144129418706942179441263443366201861794631310614402086961918162383983616433769693770037611337024028352623118992314735712867112441508708643350607178135775941520424154353124466565468428228787758776748034335030491425377484066834266098810682951787328370078210238622464531633664700675415323680942309066590998947346730159825001490022162460402292698707765759257959924022090233053255854161403299117426472961613900885825498391810574535964196240047314062363043592887849464146195770071327071772659591779522021456121523033736584136140255751420473256305098469351578628320034240087978306336325659604772843232895955076350613905970679087483265585678066179689524992421066143409871797615152766308428051106383605928217777840577529952352334943976269648101195478825429006429460682976727020471459507654812501683522493173244861761012862999142973593136929040599753393884249193160036139302413336737392550776175020078242755421453537756510461051304225385099267281339678156054625852992113891578250273555805275070624737477231169986317423139929207416461815497220349217082622259032772644682212841670557498064861621687472326750522085825103147051731154174189663277645275945014428496204332545210536326853577978545421323745695749054204073577788121457517637829893982833946928435691438551413358121424663457067172002367850101562611717803896468288225406739326409655481306511560209048397064032673879274149587007759408863554490721258695217710703458791868886904854979849563499124911938110738098390385034872268446736608606605429250521635388193430656441519847967072378455903132695861930250041914193641919773924632100620797967526481504106960691918383964720286943589605204372143315019661602713837836058831645150145931773203709550627389230868064991367089376934129855753772286178454770287413521950256442861954425596578820008962964956295595234677816911824441445334845725335365310587423389857594099544611916336581183995009489106130687893444652467348659318635995481290466820118886302135498693078879393637103005620291336258542488105234043206537400938851499831489112014841430444871560036520363039417236285673081574484394232456112716065828306122762002221285600732590775855442105729467335860150947443569042364042967281493239300228721742887169362411905220343259206793890892561487304186814835930260273443911153559281750931914384987728715392411072395894512238068630178275904001174708771205725144185558526981263981202760164424555894404067296706455928384949604422997107331691722506450813305426336625839818551033321859977182521960019118412438891125903161417360516651261410757618858330820757742070567493387747300168588528747016559103751720531249095608893869018933619963106863583319376275507261800452418015973073104687928312289535239487504638439240582665481257878347560191905664776394300144680501886155039059206603435131926527324787902907997755058753000272636198820919560819282694680701750538896889651259885720950817029070141996662656667687072009043326587107894862205036501820020588691719778489035772505369103549215028590212357974938712552968504013881537188637309318288198589024290585671166383873552149368072326369607604045219804610219867407057036282583228823089677745858627864306870320857518148342800451270447313210485871467437907663879145198949954221156434301199140269383551250314647794900289198502891431238600015533135251802017567324651377049219644190655493675833136941168455666737299847613111751588442683990325786391661530882574130574047574156019117422750119078726715757604890138196472484477365784364650345555824887142996049429373204897700932786069108252616562165017460622006142628618619253728762377480816262387533623784075151149935426024754075132527347798058222077826913950346577546952152009276493377991597098740779605653576743420303108298599793082720021486193330004111328166562750427810285930132379563851888517030575517172533992884501262618023275110575704649203290140214139827118707359384691336451806330346731539208435331616919509332248074681521928599538571666302680573999622449899874930653856953290745661168423781477267670623383643724364262329222665534186635096078194064811789877731043041573506936140919876365321299459802458347392833407699006660041859484424616452117375513799493585071732098273402133614728523464556197744076688783087423146051961694097391792424072013147378139048988162729083500299682571115168438385702741777549105511133192663185725114706229966285844028885307241406370847407174127148944035514273659285583353477099343515355996622675344145658470574770404301738056190640515847421600173016455011574435955736492702978227164222640793030264862134276387047214423916846385831963235916518411194729429584265340884060793087519140837545825502615138540364230707205221557569051984970406795539138402268092497657711223980962045031413401291829530767503387672356918750462281094112143729194772665699637904088246215162161083094493750147342060158843843650945885255721814342761840376163138173650483501096772865202540745784151409273184325746379783015861884647339702089902166062908817892513164350352676806391450747166833881713461489590510938302037567923957176174727109695217954063436113065764967611292155330394870232978219776364245036291643799011378391949410213861065450303838239156552336154726183743534990728233460362833243484507563835969361124625258431187198659767702698304992519118857778126368035054298273141073364850666446004406142894863564402519813604804324422581842000487102359815601919754960722473828443757329493372394369948109701059082054870021777315452042789065717813841902527116430904415558880783110439305332930106028242035366426147902278065117446362524105541784007810073582594573142111579443849019317958654427866222015568011432579203637720410681387835836439141818256448908562215073996939757119671723650129383541002145813210460316143771716515044042178981118388918645893405971558228699112729631522348436103154076361879547309687298010788985261450717686807786123520565363449371735868092106153615952395090368633410174948909589628257823439026175918884305485524716557262884311807316032840579855880578545341860408803181380720039873515592763670505043827221354760794057933087021208373585980328316577072646751032734153198254803231670163117163230215628452597455184958381208493917239340816942349780727271706215096327145629845681630144699569673211368349345872385449991016823100703967113363171112864299095574608323063709443835554097179835745235562934863521479448396666444568306820173394154155177558408278070631953889208375390907830673058211489351529321336044028805348298376513415792733922144425936446632441431426603212996332804941569031563313062491666479951619573414527835564814234701270384743622233935409655706187412250824225674049831562733430358154070949154759565788398130445523070869603525901791975474277888608564742166030943629703870401411123768315084955443643828473804597455695799078972896110977451205959121127940315735800522853073938502282309167281273736774433404255550442355010904706044279689797741258208452995975522842262546711931329814284345163637273994932637015385632354884967469082757261190637544149139132124087077367909873868137201651640445132118755285093197004388146965496417842458814086542201767949264722969538424518786666071697150009575717132987853106462182111822030603467474121010148968026683364831698529490649507068875300079468157071208749100316477316073573437142414821389218614278110640600504725956979010312192819458458297576828487717766856704437375775528084958023921731699707828967299502282886837911947162880063440316472182477974529355167861893002675573143308006846301627160106131530684963113232900794379675072359451485265983123934345314965155645325768444658936093020604310873724541716322193855634635803599522750946405673562153570385912462186714783849888729630707158703666015069991060310934210139886177442075906098918359864777836813525640784845057379206369242009069045702663459239650318739004527946408359466388200253211544312176193522812352967641657923048071434689707451879711953138343645280118410948460765149778695184672587279864094490496380836401264414924945871406896458167925398899189697946391161658142280954236437998620471691993093821912728397162053213888288885575387576742302624595030302836123377998568903964894842036272314430908169596051425017206053635066365631137609608605570336221289258795131596157011005439610633920820889245212181807775466500356081624280155382930427403075205451068017720069122110702842306177405272046420128705178067989665540937547592099185633204679977976222064774845155851545197314477308035265080232489198491575018895959671260387316014785595287860887023587654473910717658962353950112931534492471261641580054565710529472957676730086542416167621407339461011732682566979340192539962972771386545807985353607608411892376420581078353063876077231667016308930096350549868220753198939761870487159416199654059100443350715773267043672554028852718900020507460770133364292264609450145208999886469492794498464935231134502262384307021030603718562466457396315483145786945633112233854914086022865682497346524435583000060596806969053275139343325356820090534326316004808204514461055823219917297697926172860738239249329386916543556362657726083020446106015651738600307935102469920038003346003465097602571552578205394895663733851652895747723225579975405333668816113898477186197878138972470077064769332744476695199839800282727686453109626724561606256171909379263026357017245233862235329388822036079549460339770479134813674116057849080464396396854201072884080794108580656024394115644680798660168417407899932265798459754447533615239521108349019663707441731899468895168022557671292806088449294013963931834187368945415514098535390592583088523030744539448572311726524729331191043236040626783367724990075062238658825652145739506069764046046583874734363495356998511017596956822983275133023825026298996005940527279527805338897361894600678045201106554903978568672971728198170043851012557982123392044685672800013086402389705832531781579764146212309147595499351943200157764170555237181410260037226735546191147738943181781888625455642025032216724429067324128257837669550231380119254848749993722697483354352826935454506046916409470616639524958218547255502288797000638521203882261590899373729693482247756223425498813848155664961977923642277082276396740671792968560653402618487831607826171948930178449860875381696423858473551450517103685897988844819497315031746074718929759641674123750912492632954872481618190356543174099931114353306506245962491973200538202681859219391934236093982581262969838516716640292783806700914721077871797905279494102528084097629397104793298136635642256412122212222211420527618725642235535135766263253770885151064316741700593334957104354035151905294948266510453270598917489929541979606085886129838997194719400436672158746081942482621156510271939976847592981772167080227789303627651431294894432866816823190003515802214659965390168063786501229251133064122506386687055333008186212576490517871796822155862847349514698272792236634700812370942301959334950804710168849024220812365957167668926743123162694097079309307230031640136890684267893586268832045985287503214513972265930490389639281931415227892353605292471184275488870342657771959121048035875528142394472534087492709874449738774186236832540144727379196064817766986486400309132069306445640358423531917525507069697951731576819215441875545719478883770279685188274380233156168889181278659683128232298531896282299625318033905856601221177292625512436886311207359079087995819449531020833122208626747945307334669842811677435945113900998033419633066280893847992408087405982589903398835267732991420337305611334370097515083652978369983479167513023319352644100513611337007584958810476375976465194888609823226990621561438479957272402681271931926653598507279309037269136118187819598824519765419188981952525300151218283175505644010849403117389934061237308961895701539357679484929662207714799536332118846048014232456016654706114087058920697645897764628400509754498643146250747599916197320984902358468239323405258618456621042486549960372121073379324093354849652810141015601788647617502807060509625268632863361803989905302313063342931835866332208295746150302525124672200215747537172598111110540264511516510707111754463888602052719993394635331248838251086838666957372937674707239958433950564450886339066000113847949987253580017342926933291820532740905930235668842436496165275918006778675137527626589665564472046292023562723124146646990251272814449917520060071488793096455572769861357993384940441755162156379138572780894859189015764716183267916859918794927676705993566174270562411735025923748475441789922732353325442952997619250969330045499449498486761976386727289625398596995094951015467909637520376835166062355116267691882240687543766183331562040263712923413039038119251819360719840455555600929078784786691276970855246020302401623731369726639812565298894122130563225724811903466580849885421188100697582437315522458741290830669250964272598385392301978531413606665023712044791977006893582131701990627329501257897667139837616595444265487703195707743417214902315252223536152534877438909731781696712317668863013438417852788818636017205538984583265433939070279266810993133128091084758389568292599924609595517746088319957503343033550407620880572367364612763705384805016168751675038771637439536519214378139933379922358495365020499270600820131209611955616002433434447955053643797525816246941419634591964755004936275654983380520265257840802169247702001625855902481295119315784332369080260965219090235440671209894211929569381016314206710174748712752488238432556348197489178752364530750122286232012184663172499844018896293752671373635720850519395714828256838055489652887446436251668746905149206428082130986377443676260377069481723774733560230263934076838633691557920281838031749016652702295462698793157554025394918261090210870765629582958084526509068235027443449697964283955533536605308349298325698411876634541737598909165157971005594984337311136446763470506197436700663421196662304761143311759684814419711284704071821647487609133205252981793619268276093443574670628859138516104631869643295618147587899495204977405232743592504624582807875699321142893998547460313409729381724167374380177338929155759685603840064807208098598527330469515048537159507943427119652866336646979541448649072795364397834367549014730817785954052284247424270401931156831513387228095779870699826560811759673188580811619901632879950231132880174908820515481143595542383035018981884441973254041370132408608177819857407613917377389464502088544734558432268455408939280761211472842280860954173123041369499340041279714157662692576416322042034326671714199954742823080452371643938161701705827607259444478586501320374320719510819746076359337827864319757899428869833339833304173425713051061298808763361048007402181226861547916724631932567764724002555860874188503640749515982840794355741835699351755137642736559123671915481891137975142565262604010335578317062821662094800947942385684682446254012644675045662594294495986983759240504205408986789661378023291586653935172159170197971561929904115540395848145028343760317055670338940449623325821944371346805899122624225957107667789478840486212712140558417739002744555056125628573252137105015660225747606835590521467889653123340175920889999891180573638060158946324190662793471910839189135681757442076858330028299921935005633256890762609940688805290284481660908463151283276698885223415955152322566613455159528806363813392429811069558788257053538827483507886382610426096906859514336300410753661347651528297388071850241187498413302055227206757428363884531631897858229195165061097734085837705165241698470966884864834301317891818874220924565052722992143195722294746454084354841245338954262251127407919001019054574102898522274385639994435134130910173625984559848352030830897758867752212448562152477582219699193022844162553072652554558646859400400156249427949742592736715440053475651433732272484880924485152495964540279442897403894635541950949439928651998754497103414928352488102327103297791627799220377686249748641933387659209953466136696937638198653567289396361254869434580900913335080447706533183958129332724616186388153225096972278825767164958876566141729201847499592115923313695318280372568800008135321537998475493800038814851848083965197542029993288800280496988474364254602072903727550457358075854844851377757333202446012767193489563454617897986301191540623272647944422282703610846961098557184892441334318898432198437978278768776797307954345159078819922701259236658514623026587649569122861061641124919698104517637853761446128808145012924998144982084807149547296452728006207562955411437231577177137212551713000976162457468855168556128629557190499569353943545148695820974862554312011189974433030409520190693917407445700311806974665831141971606081846261870667936844901908106997953655441999315896476492985987249519989740296108248014383260570161848778916703245595775330788353359064541941117481914573365880592746368059452167495006291390734891349631439037142531124943042625656719142327442017098372358697243597857227961390968047657009354181834567923727774731278798691209176492597565946703197874260225114164314956374541487081686485423945183744217107805100526306338893169665945671580769624962427955837223897669389655381593547600636906431417085247037784973323274032777009697422609635175255470026076484337569587041729639810919240572986192769354427950308923619441845176612963922184918376274341603616005580821542747503007676572229427877157337580904187255633415396113301046392757917101913679134575127378926524904076050442472295676563544203644097198712174071533252771371221389454194229739459104285433348061165565518568179417291238101948902369374377963743820294305557994702023483826849561753736815301447500070739760627760844639897399901250252949299429630812560032472900079077609811057738029773813538199490251056601510686178738373336686446945688951294449728992627736517971399506985066516184649476213886717316916481337023690856846863539258390375684641923579659625241542672355599163088011567055984361107538653755030246245621314807636497929197323532188513572738389175838480456218949498416116092240348938528113228584660725095293847621856459585818806859975561000748584487132800217292851572946964120386960497478860614416315080975767360484151198266259774579395007948168874183585700514525759398996331590282611805840823575905876072359679682547224904646704809899458512947078430894577353641749736098227665608825229327886369714380513712679764029053931281758643739809590757869999803639736335839784782347595013151660237747484314237501148082230760527094186959552695305099758196575196754760413988655270297931781924733451493340296254562031852750758541863397949966283682093166752957610705678435071017774097737097640651382465332085865496240229742832780924308130857440668685266540367708110698162700521504520109073420583119183326147244663847587677782951714472340702592376226666785103262094046285576845143354358130434552914402760330581760156088429417446017510963948126564228965930926963233288997400427541723648428679960678529673723592612435400604401948762590715211016026682785271315611143533991797224315905415079771014382298177915782424876409412457440670451287806757974480578037346509066852239347382058200238060141330714544218816748206480496770570810856843627809433520209496371661220302964085857667810885288894703320152934692385454996895443697998726141322435494081399273728644192346778348628772362290743777619732768680949509817562968136436396697978566841924320947902164475471182117469756062388536325003836651769933149445951763248291530193143477155208556812271661276608169456744384659953830486099790715146933033526689629593310058380586352368150108040386838451968468778296263527880019047161604282327693286701025139874673166099910644359337682039542391491476094313752340446741544530532277114796243818738184425861730985884956637971943267091365040702444930781636870000749090268501075464326632864549957931590039672046621077088137008799875089084304895193081326358108872367821770211179543811321929504035671570226728884205615917005923253708049042024059733575395732619806391253902121980572022362920152206310803780976653427355422617373978763414597756737943742290093341930111853846053147490465227503477829569368576565807545136528354934484571241604173650798722126308123901455024886213447757809192309074422217163953063751282274852108288365816545587945340919566830185412038155921934312943816784564161432838183197581557916388421263341401685055665547511853774680038370162330508480111902169623259363474046706366704614015867139379143826729981284896829326489945239715376750791210317589383144843273158081141658226836158342626736848781131365938690116831467541160796704186492739859641357333717041593846711035313047998876795535352073721286066072019625850524304937275506467825552639282057246814780016138649882342810336549353117881311165025402285097368741518073054610345325538289304917488122186936787448218584706974856356138226801947589550059709176607600626520609158235629279148941647964856410561254334232895178219793926702064173082947247259889399554250551297222395979497148154882288850520274687756106686558256527831075744908666983745679964380726707136347893056420040696150934810281385698118153540430100745153701479451472711120549673359165048096067750780133828176015393490649061374031176388915390179281959248647955815110029804137100988302912457753509596451975979479018103063803931335433021914486962722119823514026197289352530635584256263348125142160319268853335573773148288045785926747975555376220739436037663418493442009596525477395581539936286463401370847218435501697987829232802645768791623788707526993856603462240072030509354450729559483796510706717390909741439094816848905676391691402794200723925312323384969795600238314845629029225847896734960238915810288738484693204651462344444294742538617305417172788347097039241555002268704422867390154216433877925221716340514362006500584259356980537715317368379135812085055416238000287142601660206138306559282285060990510797741970149182958291935804472716927121848045228174664114451440376085685749109192397838109275726729297918113212331540160199155684935831413851982229641516427690915267773532379954432140737263324482048317143484094250888671013105489126411216402364054597632384348723986407165155412282576028687477203962489013864002780570436335074460205299803460905594091394066713001713528652489260902500102483531037291508980169289063474417483880781089134554512737240152156172963517278084901840857676376124185071635486191506190292982374848061017838473590727690468951258141631185556922167883806701801054697343894032258008791402771788090581408614411978473115412576156118281791886390843774503551393899119748924659957690361824297375911602347380258939046107985371265540784809040014461353575000078983948593070640296856716416877156498120538747558755798471813166539142320303620588940691165607421818077802581751635099409288765641732789094713055669164727809139041224905381996204593475703262470208977925858378459039512738501721758781476943400556090229646400694623301531690957355094983552323442505907663559468599687953412993983289585815519861140152013203780250356441679664003521181152375326179535060549042403946523585071828934970694293877547674354915792338922054203387740012593485608847092762166315094885544432130180674265326890803589483137062980570937172710361794665571274916195838679700313463180091643711823502940473397505796381509946048581150540848221752502950693789447960937124432060880895287255349800861084171195421766987466112290948989235426123373583345866146566444687594451996181557995744012082861604080792127017870950095871244751699406683950781707932720064477186117096456120985068145599026685027507040392183901153691046411982922554799562941573510939209807567424664980699945383867450584444903302958878141804546531396383389402905944760144763667976457582339459520061296951047848859959815973687624610233494341071965019194986346223049662106071596267347491867040712149807375200477047844537859439714890258291463632984128543488604347960265847789400959659913991262474211140548006117954483949332247781803859918429858984426240712972706039465639400865309038563773721120997530598898607918344026382599528452255059906733920317513070367702350967677984677026400058080711808143180874604698797546753834320720941376944838459564381080395669699626165195147600428392484214239805561334457550870212010620587836759171797212864864716832561924182816014718896721107649891641623541744818933517007902690920188108667224646211379292063178094608469244990491322029114465021501793699406761749670606547578931758510891674399589235566804777648811485132152709704704018893380256224263171623456239831586047094928631068313906448423567874424738316138400459815734950410206796883583999132237211579650381740975229173147141408527965437983041246744742268524987804851450075594755558157181533486087992901549986342706521031946431492179117056836115311236724232931412624842316008221750370519071964924118886728473110405276549722433287175077778456521724077342367990772558555370640712906642361901766824476963721950671150106691621626263312645226820747103715877971897039978559736411002009329141849272951729965202804998289983126224313202694714550306270266577059958276794604970524424443024012009690811214811505989457921524580196886022706277148865470784920085808189941231822994213687619242396622687995551222532497861160085008003216102688255307792863920004123215329015264681683664669195872809037656609294997975704277522356398647544834595659979130049364355237285641938524791735130237668972046091972089777660194515002813293910790842726402361557955634098505326364035027865909090767484271376573492598472227501772968681738406303074049389836767848414331351380133094303692046735609114003941007994720966021936244614558318189938897159955363955972458256548269421477259596845207989328967914830514857351823876270812407073530646216955110361757767259962480403570495547344069337260792623887646122302181291491105111400162357544788684964256711664914672793586747598452851375326908425566877369108163360658931158999635116574938532492945923129351678629757293768712406643796940382703679344633496350642795698317585350417510506436997398132857220661596030881652677911850372145131050957826727727498825485232853557823143840374048123115516866015814037199097045370293220689415969943797286543046247610354447482547509354073699286795704347875428506708184263793262620087725536246101343027389577984479746165240379299431703334042696157107133235303262622737311069961091623923178934450382178225331335398355605576163623592384302806883992530064046978750100203798573582751564844606592513712277600809834030320592952393250574414008967507693107117427516320244063845517155398681228148791615233931362076252256570204534290542921620488142840150795489443179422118389615220103031065048596901463176241791500565431324672922230341233235960015945989070275417600136705772810031565671821273620980517114948743344037827568902240353957131343716181493649258317957801272359994143465630901153735158893481987389920339751555015405195507213180199296086138064904343303799541899680143665664542925769000500023356897513895402610084608349907062589334760887904957023644070742080327954912467097205222172363350043887957293064205354707984461843282133190654347155824052211180401847872659950832261608315547306273002729613618546918441608191812868694813991481978055418228134719481470735829740445624097419989914681265900132287490586740121308667549571471202070397484242060496891557586381393899322488746246398613724725866211877721048661505148493308709391192555451332481295597789744229220181328474983450362591605396164076971905474621485505358540758234784939038720797783265407485885435817258727672725410589572000922991988365735861807066999135404328299914614523605138211133391917258566652387602787303842300981348004738452541646229692997435282490920644469212102268350605023440234592676430873813791021223792352508078672140110928682848610496689633135545409856854510507976730034132255877519196668665830004248005308730275595020884823977976690593430168010883488693075562191760506891293388256601815523261633951595778114869534492788920784956789766247705853263618139080227318234468521280674826946321828267424313159258530000164112772503233260657928605458458934225954025001799979806865344689148905430444181503185760783236107245805888330406178396391716830916205144697507315693852185636849864292764544557886510341724797470181903356342932997602585674558176010800938524131010162464341313178776899631538397826071541235106846845438043707297516177504648225227408093233293639542803896797226060847174710346323617977067252239505596743590873355852920341832460081892738455424470696479414498507088748704425162543793739554936159445939663968738532938807888958562562690584956108047086782335494663882051280793018649274691281642415737256416239003963814173103211220428956766433043849272761868555044190451448999896107325530836952629901925272030585566438983226088147088749563702482963040447808309469060190824297992231522493294344314726871238294047633987757123323687070369043740518760719993324452237820721115025104395039867186177830389710127033917958203471777716987157518251029460222674745798433754134339384483404605554788150874314090725719732266505828883831508146910727137947555326602467266055348808774137719031290561499531920552718116577488280004109536694200847602572614278914672397355910098843074484648728948530045971746313156200401360206077946678505687561027755167338415729668899505319028203395879145093457182601030123333428387855895282963326084478338463824165675540105054407245554007272139839424658880509019377783269462148208402727818062161646516964434300830183994194312437076969974245088641771564766377316095016865136148977643974787210570908810794630913931212544974583908248850852140278953474981198793432425885052473283645063147817538702185975352188101107077295246774252308923473752171990699066061163880944873259284206374729009527599569730962687100447036092203487017779324909992340209118651247975182064693201822115511817292341359364004064410776304298807866194594146458104658606997918396122477881589954520906863075961688499229492798943835873121840106698409826748118626392183869415288461456412864350515598919060436572869378577834811760916823221382932923096891763139665483960862288424622273516614585218309851226236746817109982338875961028157729397946472669994836170618780422449964646300343979371200636266209342327453448384328052078512888369894567251962249745492415111762218674074368976908154110385989164174547409986174388138285452857620350856572125371806187744537567004873140343951222695765732023645314029995869448802945336370190078829955623102842352484754505923517353392127014721319201009317147784424104826569139759005574588814598409103645064501712949742880270202575993179483679928553114922400891805059435449643031489621418189416243347320206896034819978386190392027132732734913536715323137255276683178043531942238517776786103290135408545795533539847988791587206949555261628765636838650207326593032417746091888350634068940269615373056584695914087597766713534806790672520801378675714040343335529376310679814175250429645989620032105941250865053038117319347330863518346824993644295554194033344177506579361850748811850346772470988908944766903235548656479194826988384354476804699671022117942127418920759530955206358842282123883108400915409815383888632274831376421514110566857110489620430819826490681162629158607751236636227345190629193376539031135300645882136021134359863809988490256412470086708158851354922040026042627039250734817542700251046629851085954350033702946609866156047426536403451267399074122482842190584174257762837356592637405461497461981207725154934519346956349072283961912398083207297510594505256503483664049114577452173660936506394777323280639227552106147090615421195575797573539200776251377852613313881786054844618226485498118733560409328799778102305810794477264098305409845683300999685602198064992001410165473670826178368186761345886212233011665885605417863372397053629585541315844365218011477095955996093571184928068568091011589738432570118319399078270666420893075345453381475992790287058282140018069388248190426895225478353799941610126427787331640425521918836200788464805898142498806221071096681411911723808565688596452675518718428072197934698330952205535748894267298669935976676817682682395516781685131468064043465656872269957498727496008723033902115166500306345605018074578597406868073774476486829437066823035800041230155528022054674982014059924337786627150564603734984472674018617853099920419002500278849285326755777172297125170919354256301703139530431864761137427806159791902711138491334499379953440454248478784036983226791817458312440335603417008342336263760466351096486074624848091441967170239199280853523920356205754397070490604820819037914077585163635056151250997294595766358943769865241545704815935533209005607132227729749283780337568158144054575380404065040862118762245598169395215242088512371151706270256661157816649559501929762904672363568473425937437975074127197254895783211118196241733275015478678296243698472593063483201174388762772795645801396437375867382586685339062746484843179219514252325464171909365290201806558876411393260037515021803426485705744831989315450042981970360375846723640546423084202112274856219244255834156192411623368925775268082305655721206700596764574672526873484975900323276601912560576543789398993624288237971688947972080346113378515080675033735651491176777159374577129959707009956764970911148987254349919070551425882957940341573755413414603525515746614475613091658435294649841732634248393703918793691941984730018407613128797238491431332037259580167175764085989995544522078173900886875811030521041950574308754189757003492461622443271520626233836396758633200063343714527382892951888972737592751490066103645553806038251569556111351541150403502759865302661837169597268710684434299454978851188995336324262653400566828058651189730977016057782614128698897719880129224187591365637738794220389247184483655027087852020908908878252625199800936451375783431682772363503816187752119659189650255996322042585197148802689845570739018846494892744994426821896174230319082481189946237568191427778962818949468905406288288257869172834375892361046657011258714127933018978005962592842937626668866773887172789364163895925276527340780898508191717451390747270361344274010082815145027065589747354305793610611469602604415510241825723750302528978248983209214845072379895363262937693726079672389485495780227786944647973112689771266917443430811599350702944557899249074366591659672502090736733935992144695241362401932682524708143895351748104011372486330827185085927036303819654547902249008717101568427761698954257511699606025198721903794409207178689267247664349699231174288968878084817791883901100447483857733901322689459472655549009907591779038649773905791840216909818339128705587538396456589813462430517223965433357489097800936277931159764351660402951867036403155163458830031669765233816413987569254373769371867532229158820490504084158683488020617830799699118096684271120638624830799183471353459817936766015769240340216039263771372519567908492699194242924046171656640691669624283215317441546382462131730799695848877227915061299801656570024282281788350615717564414947978132632379573018486076222226465532242647347214945792435942300155849692862121012490435506617894152441793929547884766902895737136696847336241774924918433090122224080732701103399391263049707041019212138420801268584917584948168928793679219642384105194562738381599159201191285199110013288180679612346577134079994444012445472941041838001927206003136975453875363860672901391958600034248310022126345580557528545576552907518002133966560374271676292722969671419292370669026847549818677199308532266461501270384812692141375961567056238909345024746979109754661475976275396085296125620298761504281820454068703489788583985360864121688314858414738216476201855995066894415810041704716306526066014317220218369104604288767015606695806511304447223550183582773595980482842264825810257889630038864210604422188528015038576515663632390321934372186110209293439817229398920878513764004870771516861806085290158709480496734722409993891108280051115916023508545890064034504386040149840160690373607464711635311293377460441523892016794302624578998955061206635185288041844487796791159830896245392734310892888556617724877867865621565069454985359323585915387854815625228315722706707337615797629096742177124411139428205385700691361003044095113089997662457003923439715280164266518069911117618124289839130995957492547445871295326382421607135967973461447513426416379808099531692667333420158463507804649853054464913772313362694774401290351485293354713782609841725522469043359277581652987898433358079461707506358798888204902311252750329284392282072275220577829303681804526375371457957951704477756571692502235710732673626860297671726507244797735052107856213717763904671353109738338464398116013940785644807229551551700554488280324651560430785948515650059700505803926336624619672142159271888251898540953630912944482673641134979731310732077029945248356725300584563366952654446503058549192883811348688142796010197122920900531960697968526367325645590456335803154174853510160303770249323027548823249181619068749325564466756082273714209814273200105311481566550954691808284029307212397160139357505369967073298145405973422679494408614755956122004165967215132741796250905075826106717310245062531123511586098451606378387252931861587303990121123375670319813878505077967819992564288991150404448648472982650260835035866104419775859424366732671332244305567118320530643776678943277078969915655120209567946618095450335481560818303978729975034981171951929210059538036416560081324832973614756284900726836944011161188272144721229775721025859668616258086928368870355682552006118891988226648968565031389032793114233216138560388483898217788774991159369689809020513736264827528499571379277611237506563397145256042113595785558267309883766782533170786537108724352102840334897237920976738230750094103898458308947336230188334792473512939846650513065105492341757410874798176286930728245419913202216620329818015012346213398897927259304141270718584852178087514108218781912200767808357980429237451625986641811575337565798604190181747622132008393703294582034642806443242589429531039129714826224036869261458846355369676746950589045381624957652562004547818687934965296146443333775975723500164013666537326915606744208747380420368875233148237434004350639284944791018906710302469743327959429725272688347302838868542364504902767250809598628861591796557619259957953009846508872276973957743179171949361836431272846728437572295596731845612969904049740462749948625259262981609313319107940383536017211166052664947817867489509021619635575114205472656739683145062212461257776848979003309699379498058231883779288054242383512097616867667178094346275090751101688749449445279727526694031166268317450083555037582702545034686985063622680330615308027144378379442597027853378939668909466757469665169283038889900764234577140025766117916801273865567560342372872083211391806098336327752742807389923251837312407307595927980909341608992592299107953380272891720985361530589382553579237890773232899963461541637407182499475692750092920796809236206274672700266072961215576901046326922475789027304403487708548398294633141367847094742306470388111158856342834525713511721075799713172733024849893511500426939788240059947933275902335295494838811670840591799465539057691455735612422446621812112101033385919105493415732029894001704537997113322633165528121552870164205996260363733661195091940374403329190147982819421851530781148839695452748727413564850897029551428488431023984688847478303740844813079309022500320701711387396974517972773505239312176244120072864756988757369532011051627282506937033668604055931952768655568783849099317719570966770849770213882993359341219936142551552021855503401559529541394065121057790111945629660713549529006361359788949740024254425596383205645563246769110604686461031729051468924791593265699399490222399378257337989768649400296823147445003095036672797895183588413382065037170377486841665450885480302125349249731719438855919130065653065699249346865923839100541275021672733506980487328714929341382786711658703750051581384475765269286283918965014702863990443622786647330611664783141303948427079304810559848856791612077555510893437782118221963568317240598415449836221901014883944238674022930092471433857305220314659383946957347442007420934483932671845378928103356955287430273427610293650390043898156172376819687058553687270824450822468849167068573953510002613045281180298773205490256882102728030887956641319190268790087082074273335027801912079638022605966654445178198393621585307887524491735728621694981240661446069253364972492461861983153284762941121182212186822626943674050896074282420618559328424080759917211327778297595260947089607228053613853764720637227311005975099520449885628506876352192219330332517924514040626187080357353504388330844321086941776115031127663191164234284327559875831328827474065733278934364000329778856883919867143796852084842580868119058650579450477493364868053819112501538959069863964914714169978924188033769260966208801109126189223126413244050860386051507983603495096617037022606681194024182928050247042631764838635235457230235286168140205602548567159506971841424753026692977682270072063652234161789150791026538915710020744046252412800129532262607465313904539844240870781998759280562529739096744439654857564871134039866072947036978608800302702318451853841257332202286134405986489694982561663965416257495299109677589393085126307237384577612830116450101264532131298155877792753847637641619021585360052322702034485007749526719514573344985095451554241509901333395793183811803564352443410360507914608048250377089364638356884169371115355069637608719479740821559013281682422444804855464464248471745456820550686394187976665522495118862323164870751827236532013185363738340760176697729223405131034181644826862275870223115117807249499704475285383825725533706579433289010456176510123708120795902559703787233002778099873295363408994393157612699458473765089650632223180682212346538732358132536160284238794190306389675532381080148953842602875263722015146154747047460692158182532077528801106937089098313905288800406298059236894319999942480706756868598825299336782047423904411008880387971707928277761081073000038644570210448858799695527137694902793137050298898789345376740814545529386509092316911146951535993654097230717601982616466625198434632931369126608693669721690730060086618198677485367674834159216757710214433539533382007596118415635057221536593603568098781381996430645524743497353735313580792628549130209679967767411336261078209041331972751248112984492283817731692783623314602784362968337302276547794691389280059678764744019281507845214795586045326900909750539210534212585821443973814525321876131189249497668477915276718863764069397992604220609980066375265449560219551784754309594668139289102289321928552232458228953270016518266376598013345829432329362707221081067923089075313477656659068606656219163997659823873652960381481708950894889415090313523756021504845233206290135931323028186277617105990269041036617638685960055180443207665137676862520464952618195005978032123890437715314889419400309380597300628952785661153068918899226987919319768180145629615600622077751241115743318704175479290896355121914755042903018985467231924438787022774421894835451397794261778653566868407937673740528100165077077318094165020655083307337114656421160656542175141825154065098251591301728666024687217533347395434271098676022833996508990297061224953624724586609579751257437092195223205697234344539037501027798614207920237420168993895957705815373991458687335244023401674729961604314163052794281957350047751970833353920843942185194277302149730916336187411324999666807032700112594873196616480337321440552890867960177374007984783461964845307813644294136926147333310015928576434724469110767525643980263615720101409636828022780140209324384412172345007805627205732761914145535096991366258126120210855908945456452448988464047387102295745009718233484416631368673593628439255595544206786394950913025337050572100332598582239744865709862851580935949955218405563004881418135666240495825749931072842745159020087379789427808183650522950116042454686683715447407019523229848003852122614255815459739037155695204800825346560029819222653681307534848820020810894617863377712394644711138466941433370626623157424237319736907457048725535213021945818620581260113407720688004730244645941024582819694445759388911389606045415507373460935650647067262018116747424912991028308210894076084562276352219962844151263260620342464997286115317466253223865934789737057212874368879988383736709820867685766087364539572506632667464767858218179023225171670939181683850586109994443962807204248377181023339890459489302015508562083689399698694961077225162027779850400761244047985104149963324653706235291976143375236055085522870837357322439862823389671974315142254288625549830647637986317896132277482707945016720953921214573204167043102708148361866894255259615184247044600769017903681673866368502576950305096914399216705599483112220824382115445909480655489384803189733409732794847701141730661113628802175490598582018073809424854787673094481975258229304115439707927694610303959955987613983353103410560686931416861477277945502446320572478297015383132499493357425900337706132083042617712224107412793120478094331587990701801518033461449941901820885066083478470246311984420582092672201619435142183600602865017900464494741006270950689991830588357834710427815575928100820611405009969459319514827884605558782032100710776125181533791866988784447378053032088437772487701032967956992660050285474818871520741556388406222168484343854971988572959744140814933672839281805013537011094530755455584576055829117931667318105556164274674169524808108339537078093120094207272792168605914596156591848885068938342347216964979311896159133135611803941228560222559641986827473025801050460651711267973034641050556222263387795844538794760667124169334020082542944257400946101368844183592340727553017923139920186832597957889842773749594698268567133742374631664061402466454974720665837965243909269406438571700422870282295637781652485479925804891825831943953705670888231491890560124115219646937306377281149604995043197729907952325709344680037122563797080088477975330509320788437589538241446700002217423610764572773801965231337272905348030063208439885886412181840111009799665208164984418687801846294762479861929814612415932275580902247469300916176185229533484812776686488311111443880219697457755141238515871797888140226924610050913454822154322334319441975754003556046668840231504088607903996950888001448897384858074669706295482300066284390402765373487165966390986820788483214128808667010744758660386612384662982310348132687976757340576261121412937849607558444818472371230509019984968127655647868190046929870653421255288525111716937938808385010772993467432024037500729343577340086872033354198455301567357589224656602480151641503010484737773158367610895678986137935023970811019156604114483818863651159894670094451703691506264655112327018984988297508323460348309459483425319562533229290700488485426074004123728103791013362463210951912519218782920160695486403030127787526921553932421587695284833084676865635290349451608224456219361589411165956713056409253302331223712067727783330554408308006500341236359729252810562267037368287025272094283359181685927332610593896027638814072991700652568201395944797809976202558531994551633876542350086995121092115334273076328679887918192082782107462734093755263407935585204913880263908648817022488436058721702282715817971514010289867326177836331938618239560337659577472372666434825291510106214548263592137876387227367617853279385792596241508550629710750872780271081935447559525630463226832996164761664654773640646632106533350101429886589018592015430564399937245631494148888393729781427187366949238504233221395052983777309915479533404077085648735223574902248021860966555086867897687351169055487209064781627968516738078782540958324783600813413018585985060211254038438503853260401345209494064848965811226996205506954908087420224030319089729242298425023461505009942710269094152395729001810433674198687477226245762060954779313038188642088140192434493279009462014917324795293168667976388269873972987610670796709288227206637811102198498368955558504371888250938529402102105987897448663723129792210683497852294363086919255806395191675200920608766354051639313603177912934409159898009863405999601973208079317980904603189319185730244983196344726706487236027944925249191380063111887109896038591689862335628465955757944058764234415012478077878395214350844141220399719239768595260717579014500198254999583906610322065210553242118892829751661989802672916206129729877282351374673458217459295499535049118432341956044644457915645792235490998682497157392631168985578178083302279630192848261152678320577645481374567129753763614162984366158616604480947151610040359412146499564095216093467174910537458188759861566974713330865050627316328996725772437497116995321973656755593420037980587987505758989233031284779438581298406762315366074379481199835533280381221816373002607838283918456409389044617599988152080138565316371871424467873091293819416070320035882132528111937915242854883752712392378526678745418685871765314379148055899728335990521590098394493388422245955676787539015184915262894297939482040677581765681671796203982387339646571667214226307319032155909362456715899940001697276808938720293782921897770130778610718805021798403286752595963804872177124433527868230784949642058522937613967910761297982353598006488153457114196413098471892596370120038543069156725210264361455907727700852797407131814971991126649723635869992331604557621513702111673601657093126656154579599327544777549572512900985682914768100683297367217089883165063070842496598435795030342541972179931692171339841369729329302678061151389895039073322377477754734255234644937426415406978488407550145822303841940807736917044357787804868960574011048099010306483909741555043350969436302912252370205710773095307061532864135948937155912160779806024345628631521043608660284336610254719335437434021860592670784862373344430646661018821853968185191155207163948509167809186952159480177602233444184483249931767577201652861995928018300020872286367997682288192887277591880320569683027309304762429623210058001583030425361832944990919842733361868513998261924830663919680967181516598102210024773323564706898385474604799028120442376461778655963018268027788758210477182166297382240108984092779800255237920470410700457554824714984180347608503264048895891935861102040223656330047670823842681372072367954059053484476967195338911192213141600345849550785256177300483838716565800997594999992535733655660291884320498577050326143009790275201565071477449593169202869856299798787248235205143132491611561126579683126977324042837612704732065126625060154090396943763872952573307029059546384344967061857819424128211692832375220855468644427059077685381429378913621819772207579806976786581132350272871014372489905026099451016535622424622117602086990861412108909546818413903444323511450085138892272419929369954870301964268535151768525129380689841480991547469387228673096456316828836749615949085678145440594822262573730648701066569120776780279234942547643543079493279795023558521703095506066490145835597221172367313841725066462205079667375908367111983475613876436514321660111140681352150435500977036608516350053832657133120330569159052943623826996101924739759354031728761729837923210656051530100416647705855956037381297591981975174113914774474611817110607882041881666753894333538903048652803230826968843124859357594420287109356023110765387247055079405530850758513804783034026439829378137185482522303218541136483470577912914853714867435140731646828585228253643208928915570833454998858075008682570956709047844698382487838930170690548781676199664722536563247105741675672794487290397492384487884658159512714383575317765227436821880444384486866912843728643885853092010145106310265922122999079309726477391069734126792959943776164699099774493677551554942045094363932837801697159035086654003075276926513893021943256422838421192606678800498074327161604869549669604662602306457540925387223742565701101673727700434475654034455162818983585602420262879078946611291041917554418153720829672514675931159293267053071238451123369786648968205988097702833168117807712342706180246571752001716538091323983753482773324383050098617476959412101324084261283262200818066790383066129414218532921855439456091714715773753612889787454563241878228090861388373085316731339339400255333349191315855997724591156248103975478235752708828428985319377459511838590938963057945663497901281678356498404113419636677494852319072475044225614154313130498599754775771193321158013137321389025565618459115600371438439774912727958563293393777638627503909857021336641650755883341208910993040884972409003228035145319813674252869257320191745823593504764689313422479558894828331078834407663430779018465322336502814304506772350908053267903336599223946946002261836943806104635095426877306305311724878635126551028451882655751102458655369437532813128837974697439560773121865118699971398143764049559234114218406413527242964288593456367564611147551614959833496299279352173997377927413837139817320793222862341795655824498364179090058124156629186476823258745229254248043047689604486256587778087688654134951345582338112687270538750219596490938435051452214642325241041862359433131660527472363508716212021308576677329545747207702292493528471797248619902939125080647767543079809025601380681363815449831015819935486637225939878815308270676186772047306368062254977906390169004337754518847015117530581383365758403082140318497945125138583423241962420178010146060364832052260515968738650655468431344995009101016686208628054121999552666459615029893508592930607822383416053955402881655526365435403729309949767187256892506259907095532341687428439977274955039084326780997555952585443050981753158206039363064256735594262606184040352485183067735828845360146086282180723615931231104978268056147802049325802157174166994302811824537606195962659585218903884120184127535358840655983586718958447189675801012319041658062567893947786700683741307328118122593570147683090797347863791784361420468339903345835869545776753907995158231553947677591192922921712876354658503049004943229624978302217701912900492112025062272308675733715903843639392861515991407294511629108538534679137970929554785110174015147741584060663317573408187589920696181078516698045462567836164837256589163486984477748282522447798712987688557199889903205671051188381743511228023856085497028163482701482650963174230982978409329841923838397816619352018900660824294638331770544890123798326359831486771743526272234626327604421896052699878443709123761693096468351650755677578104904897038294244194042694054733777101669647717921996799637021208491408768976428842882024493193652151656674738434107707147037311058371903093198235367086298224794053360154250252140259834239126313934640008128104488314490108500778426799224255893230250505407562052477402648742292176813349721200144836169666778951886174306592430312318104589496890195876884044936928866529902683640169460795953515417326871129442501020554646081243408479652325661519619694187454889254907063234270807064052385180450352113309050400822726735984209237669077840947311929488619514815081021755694987322271757956361822837853687298062585647526368436921254339912406094111753690998108434641708035210967169515146453091925650581310312912337585112176906587112561259470698263099658239821266342631739816054742932106668243080107569264163873480363442798006568295713848447546950940363805145807919489819647010047851119959289772901151693964231568337509326397561748555005731691919418246218348133345542359389697831516400368288920957333987148574878051118919231806712924336096679361300794048810265500525384423523635523000484840359831482045199055385217908024472135780609910538583837790048194551802704802245408753149832981413217747980065309790217072086568408435610669648697484404504463870703982927932229186495312383212061201059293441794713880545849312072535012977734843637564307403676791695149860531870937461254869727400855068234246448696808631009982519990276313316470054978940118027221071482382127740155575969906049822915140121404093829055905346378703198195653347306354743560533475007731240391786463823265351071844453026235554230794644543175730446369216609125354440326688823558745169146884867595225338778727225638972014310105158464578653515220555611211630258371134435273907682533840011312607142043035941083504175317655748432446595011523002655968805701874291210788251843870397172367214986951835231648071881196893750199754723964304974886586468272334751862348314404835381080854173267196110649655716034635735668775268248007057298907226056821175325794701888597789487700677671196687597589855203234353534957778512474318377719411532508316727688074755795291087206972013881833614937297870148806041916829226398030271111248831277623241776771266274079386770921623611201990211781213137383616455463647742712465421320050515690485360226282883897681591575004484006604047517441342704895427825084838145057211828020915766837033314743012774209087630338139683145406693640541949378718647992046986986373049103099179049508343705607234615038789810538929133614738425076196678737227738641061891298083104759903685230202144951980802324647230325502376221566829250218653862380672264873156174210208355712758912356466354751530839588688604038367911547551115895088223217102358375439688410203330183019062253479693136929041722773916487316452500325231120642208963156860328543519335273765453092630523535868727648211832003175686120170388182747765070019967161353751603673799446974269776660635103365425911314718532917936826169604308340491169680763916849157387514055295527185980806732546107159351559785376105114592696521490216872828007526612752347149279130838870466863897417086538948365586893400843422973665406105442081637051936747679322784730464673572071352684527754285212070136763979293872876747736856882485235064843155328654561933796925862762459903836903569175389101717658135292639775944583139995304300327276285541504429031762119527175413344085690185041874492441550908403848580242081145167022075844229070444036050691214824662407621817149548880425929160656195058395649502751504623037165753873713176350230454167347417945081492328687033383475205855308038201919232593885556906042657950762438357282374287783359112921295026708498946239274638126923067859694657622996804742019888535432279729200246276476289116845845981345708494337555518309794402046186044132251539597708068961956656456254820781596912092231889344604091484172591224500878950894502859603152331897339003554757262822892839913608038403395011735631928076839496548546566159225579544864183528994286845491355118730609965509477955686328288863401456146654015966035189812688718000724636434161456299361045176350207007486141031793279551321762637594474403758065082506407430368332118748482493976856636993363539066404416111152367427493965995678854788989424364398127360797991498868906240535172254655193424778641627699065581767168982336573630903501680936459545063278065545007879882471398148183657740703971071916009733348754199744343040948211902849126453019775823475443771748026491927619587016823507170038528227850934791556249036602595043316598288281810695649979929563287683503487244419951311226433773309518305814771541082229537629835541412472409642868668600143908280561687477516728327986150857393858956993548823643402177099952777764864552300558069082048999686990083944687959642513289679356679938284219776445381142457807283271989588082380837657379395041413530924280088237981605661111706311659202164457533606577416823415649756288307094453881888054864973323101102742666432518379399148940909781765329907771251934456840353621786226109460814254068178108641774285970547828631183343232580280542483974616709027100123971252074157052134696170957546116286157004070281013694464054523860601512217560683566209544427267879402500639208742087257046562569393024332811143186468124516502377677357628014674942205287622681586648364601046679799911099501494029943694754269786093597509690681221985175086639536870849634153439175596442008956285984233538477546367637325333160354045654747490795113121398658047039218854746771883375033331597127632954913957651422846555472557188550410929654035395756090775265280120484605551471645337714188057275815576005897702491934639065187225753067585572849567453671576460871219745996674061302690540108687965099629469862300443057269699381646989632365064039558184914896631231229357670429361272812917037594455136735031340174254767943144305913764440467075949336664718184765579504636782288342681793942039250759374502907667360503750603711506032240912436603198137234773396930941369777776203890930014951719589936135401841934742385990494771474058570242010214912504778684704241858793882185617556408612665379995867585943563970839513380047636120029981701332326625251885913557262068175550207518625043535626029924422062093633272709664981871902634716569092964929322717579130454597463001600791925895555424410903287599086172476857787042277099023850614154163834452755572039430939865309762274962306625901315574793998433755975155135489349937621872163257457477383832082457455236366574728007177333954700721272368242108999656033700442569820032152533027125681371746715346037361322241079680689245682781015496363547019236793658721707035336678433510350480319916395959494516205012783198105136020958577695487711562258841348089051952556985369139062471801338075944994005016321184588893839593579725015333412803613767803919188603457454529877152198177942600299771272612088133758463904209882753854938668356028150351389676905311363019694456835826010678398019402799340084399591367352851098197313675376741979207980563020150580945965469756469896011715608935424375051299832830432960909893707766150351319203425019099182683286886612606839495083744881323222985604666207529920207131671672676957453591099648047874922685576632715941553690901448450891299392947305785015448710242103214629848823742189073607937285675137006152391688778594873520374052022266593350526775093685147683734887478720967475584359941528177100136354133112741490649239043792057813395408731278576844803635703084247848008161370786375515586916355876671844719070257200845663115441186924391823890954807882254660019320229953597872735888819159580696738123852965351241864125490284549695432457850279723731560453414539013254073282631771202741236544450861415244754728070951350462394332484274783469759481718252586361384373017269837833466549848785041844272222499691595646725204408645700988300137251718194798950126693944636738609809237210389944448020227077061351533968191888706349633827594576394553410580252250488685203197946087509236023904275403346344288338666949744418684874994988996976726932773901772084464445335150170004560603998150814098941312887213759724583353040270419676175822487767193458125233200225227947951130184425663398471626564910211026321687956059967572077566299386649700003846582963662990995133147979585133786996044375241109752579173398364256961824485357949785206315841349014310438351086104305415904811683700461867473033840936461685158181667020729423876530424725505583238903576749617539576220455648702451525927250079616453546821701851571222424940964562165626472433596207656666839158983909226367428385164224848954148958831345500079433277414092215926622257691958818807452108434840776682248247489546765995123969958735165040181494163993436224635756955650414116071388588848229714360973867561588313528953085026985383146627780503538267197527539550884643170138380099527528453488021328133544702047432649701958979527128885776579501443774880366907569821581711382040724461297215598805852670936578187727858507015159799562885231962688702451807457594547578236096687841481336650798695553704324974157005867875027470778966430315781221886782717735561053400693540471220136213756915349184777289212950202412566919676722357218793410584996566943984658331981300244047346692932629001917436816375552091896865880818571817894254217454086337657821110223031837471697074020145712718675354380756281070217134283925275518807692031880197520541195464584684887640584295428679594579959559186608966410684481081117102561931253116458868988056868876489748756691469862163477027821134580023086202389621840530839840097074551565374066026533108118016643335094835113986084293657518773501404049180159850095532723388130446025584317107415878862607733576171829234698990650869929848404184491416937934394168410810795826403903378568784023078686477030616931767541952559042832860155465922462232069704442670867082609977645345298824344727453528910773786168898647278805990512496231654708104911879381773368587372598339766289635890134345501024569956140774042260958856251610150147558429036602352250427042438903647820833567796226828947600287127846162473192392082049105156230862087437951352408324212067496403277741183762815334723645801319301350570171267852242848688759728029970642348947485561796696637788049882272043766468337495916551519389357419834118959122052082980666107157995261349016579361249374196826171368005804736235937923458016057222580327210003412297530318831789958070636838206415860206902816170918226461510323730522302895741539726702498494449532735554429444807372342951830862075959059707687928923889398757363848762582415317415527092755170948500686489437647671982706866170468941336871661612016985286138726124412413947553036129839515028481311684916192604375592227068966153872445267747161980635114487591135407708405713131784059051008956766399175627621631934831575427760192851026357483400790893357630571998793421583913054248550851973725678416831020809322472105040481203455038079253245150752529787968056354676370931907856721803856734471020624027356877215819837747921316585527792985731801722344460448492899497663995976683185125948066959272609712092820780777870223957293886954194890361646891482127748391539331954550109807588660222263011427771064359606008317445002725125003193893435530945445484378699788313843830811679554925082010520549349135423458075798653674644360860423370108690080691176818912309899764084418510162663827058958842667487630423529557161384917500246067109532953295135865485473286036557712157775761231660662569475271680916941030073592520927398138776990719261813548898067608395171784122801511720664613306613718289564165809758252773050314246084076852680230657481292308507103421121590825036953116289236056675184833797728712131375060799730037871569418804054696267109114758385285401999508277753320144661736656914369427362459771327562310247530370717354951969820303504252913002780778101606612919272349136700492058376125526450434196864760290676690434890456305089105906983067682384274520917372537059545161178214078872683358323155677826779856936359483136769870764970556642143503511736937397580219512152567880799455905628158733863355259939387761287083389020673368351259031217148639600074532004130090132458699588300442979794518189027456292497200796937959624918056855760930204333596946447647262377162632892255708945093341531000932276670835042825735128035445455847163238480851703582185080595999636393376625491026315402483704311787204585767469964845837725382408055333110184849377306179030062345850221413304413404599117733263183787313336724886666856052242943698030687098596792840075072601438324616943551713031805982351982271146226976606564815515704770044314986644580236141403498578248503897079731905464128838464467195398577654726299677216172335655479409678922415683977852002937387648375080330306803182723462465110644142184103684532886652493153545149245850948221901411266391496013892453108245987649678100504140547976363014768867236587015842928493606578079579360170059027813619528751164460501309015124560539648607073357664341827203622994534701760983977336773332125828003124632168925897023959740817800389525078695408599275532116005551679551724138690063032993741229218257583485136145093221940387036395175718039538519519491247931882743617562077443807346284341837154425233031884347593579267667115700659374154195257866622422844792261120049855113655165916981403525544216255413807071330496164528094577198335420889465849026066493558528527360849391595536144083121679605018408470055640753766100462864147959278317906463121051383335913836191379126443292254005993368540353965639141660760960588903015188716179440891949741537424142913259479910310812132985696408047472523394236390362205765066722148766732293375391557323128098617101060710914337541686129652949622935884093905981801151850556478621285526093553570249003378643985657734627894060844036751647478262535926568994267167269855518863618450867748560898400982672919053860662184080725831485078350784641845906463870718586037999977883711884487013499426433297367328359977037381538242734762432673952688431486926681588466467492331242625258915316263692115184799113852650355040940919984619363904924380931124665533426355927224769332618361848019394081885503442751736556663262290614502655194677658101918819745352891351239459379486769446270076554279532253272058893244327306263744182329830218760660546725586295530443911964112014725125797445343237030897342837489465992240846666560525975194894449415471100041551654066899912267771257400485659539954400224434238763468001325074280193227328172436703124906732065570316619644733109915297211406337431604255079948795233137552587056848627606583176902656786757856039741201650277545274536317199018398514369581858965827474057805203533872138630719014932791500462204315864161056162090507583493606488846840304916168307244502373136860251869414346435236301452539014588506773439815408952731952477452538253135712031750256351207628388588990189341066329608918249781679066426490365667793231772989114448267738023100136792110502323623493529060738665978376177511171729397218177451043216667243790452018126836763630344985099303135367132047047401906984023554617589272652082020171733469115099790457542871221911609362377568648975139902421212729887146122989690310114058754136819579868809708323395976687989094072613831616012043987647173111598828920333498547671567777882107352266638459275685458502161808850193111076020020031015270545467541398710133840049601377720918617002552018577166375487975827003849218115246811236225358473835802875712900966656403783111483946085008677109283121530545022083679419294715827803006859299830959417727025430730781002743245890782590133816079132554192950080157952712723193599680459964041005179446010916896328136451924804445585237659207629596957899054935314880178292191001406062713675787444132310167243161319773676189260200906711491069286044027942492164734779563881697166289174780061028392612529199135682286145441613595666851507297934820383165552587348702883139938287857595753023661411589471146414162328622181610423308359981761549015223023678446874460419456764985552170523258767684467186695648222513089807268163588887908425899931908347544478354406931490576073854799164987026436837779371598770624319551954088174965633867213508161978001437839913107872222790067999683602263397638278533480839468990612377503978958019086276518681649899338754346860567264092071738165911077475675791398176264819017648523226468828081887548545725974437218018714384623498069927724949655970311168927399984014385378482530487617328650584402873981772515402211555694839300734008960436034173799567516140520874121164537019835522143997393837696618372989986777298470259675393444725425244306975548248962725298050324817668271744172081049895585744221041106939878113144399148894871259404176100931902656791657034175859355142331434220103172030084822599651707294167199644532555686042636505157792350960976653621413791749383801029039344330423951893866089372503695444919079679140422649212778273648545344252773666651608517701267258722180202241222367510305859526747426842961278179942597728032088457079432676183412976234777081360181359543650352052372436264233184446781988640491964501667723001936395491171280687806474815717442239094271311946335543168982061052247402269277948083392383122142688991229462872006141027144622668273859372297992129917180626448098860879077950602559796673664210322803910231266686390403330483090266602746775563188838918509405056755031462703874110036878260759791874075018479369642954227933919073912866408018405742162402596178751865049070536609118515217725178349020790480212488625623621680447846066108737790238164545449090413988821880245516103761643260624969333744218070595355421996512474928275164161996149786339408776430800162333080056744560243901030291916821988698518409355761632197221203239798807347939999481404343507226936169299785312574127237583608608331753673775326638017734513025283545684301102017448794061372345926307720359729898252083827303833575109600119097719299511272461957205398579368712693798860256394981543868509202195646299266887066851998990262488757366261414035216112209701083277536120322270097347404234427418210008441387995000955234281997993150085128379806402830550515344780191870513328821152671116527672548484048636469924858269555924912676244029372349971276476687600685245075748080856598226339500955233321701073283311723206902245808907495592955234659782606568412867411951067853556947851945312841940119408150994092081888120375461747325562483945861047256165529880881406021055523666953899643574810032709552979842295417855466704860921767698979772997723996638139559272855001202018797912472690777297485015354500322818188945353396731903824551077247482338493019878475164776378392381687551724339931803025383365898562855369235649329374671396195080015980353274569728190694875064238465192770568132508204413307741534852793842920602330932841485490479086109882527033823142703183034891432630741738767289088417009123524316193270794863989187852390959407569726654485791200285546691417660654878245732617078228402935822706386083559242601297965089103532563242858475845555570647372699690560498197886709462455814396956029293213750109581098365068547426867162121862892726227892079667426388986381107384156088705353957059962627954434439945548383923692268403938004827830885395753549007276433572827135444457831851755060376411111296594522939242192899356483150851826795883955257949411635686940388078735299311275214193120474488982644158061315716372543547114410473477617234091252712413748571488261397835131100701180300623411027664677164184329253787094020386022026854291270666461368497661505737518991506245887503539231529060256794302552148239045490311228689693206229030462259445465596566492968065272364755214151355918507909450078276828866623980526918804047193570399815943922621585264732473481347562964320486314170430969773057219587698766212194107911950604370790013851648168189061315221063988218434865296676538000181344544466068528937900023491476222456145740423592500697592883625137488583311030987145394821500033522956091311119034005152563991329935232300883533162298011677568391967625259149863696814316080014966612030171694433596417695605314696038101466119591063679752327341488440034140607904908439212391888716400478024941694126434900188646930797441046424867244258636284070780854830740633844059544041858050920606869600902209464707594262326863736754026348949855475887888592891084744319979686042194128447703804658939407850419970866918136813530174143166442191041688159905833665330869446875304120865090773809111478731568548776943889093956897602977019467085232373130774178502571018169473831276666631827555287682839964976254248709494562629299649040204114973842458066926343394144096696289464203678149611386836721245995389108794630424354084167305740168934233214064652720778771946758213276659378214616549421380782457326618371472960236965542360680009382596264241849729803391686058747373491568126200975059065987041845288172350106565722370744532724254594731564766086700649023578467416630686505595081453800658312942623305537628026811795875823484904793742215308625161355574187268466019460200488315450395690844310996940469104110541715255405438253409226508129256368672927918249812971415435225979413791306400217060582002665910687209710296220618528498733866540015204135034183027299635595128734027175353577078410236586271524644272306360973086711290175018727811024088339050259398141995744048939825269982949378706404368623767292034772455109223573161184020642991927275507441464328386296751189795517300270944627192869192158054551526862107708980971121848276112245786686003223448537784921415472436268218422681090934648857809359781991238183789480501697579898625804255305983322604501455360056098632136055048230900638444299428956565096116690912102879237333609431080719170251015630402592187835905067748197219746551995384807604778108748250112223963397964201370508379235709086306687931419431045366748250166688332448714063698293892857049227658363136344281930885092530406781265352335682540082012381263370389899388076107918264935454175254021976869193031715458231112958765713812232678405180330981395931517784463775929782970619121864298419118989178554209527887679819848471728753799945196932140526529918596832535957571331792627582982869988942281121912794670231461809456501427979360881531649741694687015866102909545927665905006510731664959144731038992839824554598296611179518142002646567303959520612266206254824663007073562773132333721550606572577141670071554844644589946783812736941006997815826776090392220043674988731506573530594998056994856004831903669308634103185306961946807188811649027556538753708595249374679442348374689234441388543807558917516172584158416597533391642791948293179800765140957646013046555780577463857669799591607030227276925860947478176508324972294066814849658243135403614135338360153032669108612126747157707727343725911909914191781361003234734014038486481498932763575907585120214798891128757409868918160514898399575237403560022977076720081864805795540470297683795566261519031742962644040279268642980954340397805333066430005540201337739132297665448130629527507055841131240167513741916761136930880666250216872983100920077450670772707701389733371662347374860183388158839022246916925289746464438593426946376239211748618642929761763418341398080795742454503299909991430056299625006100009690872685460050957701914315776656391642685090291639010542607151712892681810577711624699040408704800158317127505652150818011829038666835052930442613654728367566909044759214723966041249129530696328550510750664174655265085564223998122563549025232394923051415294815622446011158980782064080670770988856393628198118607922313075232163699515214717204999704610863101748407345563640616600362312350039685760139451015103439587533929835646585541908645774358648628362220748204947230797896089696406063961671518823965246542839485299308953910002119354626416634396851863951128369069441158638807964621572691923887355109525286270709873771508880534402101913751053932241273467072176185764051062310863828833810043276990140277768899814547819792079032082284220704233838860851264213834437510716561694697917839070624111704878722718224135881683137520015934235968113795175945680938129669429311418678522832532286994962452078290310830108635440656606671024871767844211508593218785189949929775598246164960191169698186587114373366652334811163916319456221789896632487370041034076291200904797592259687729118415103428680376266177228048415805515942618569710969211190926718059469089629650769654104113118149945828935921181971306212822332671593585097955687131191310674048456094749075254103924861356218331466311029498150145303278192824651731180879719363183749910780991273909533946677493048628459598947014045275085411347863485683101181961044454638127918186987563928970008854019773814764673751162208534044460040037854055777065723259638878771613560565633257959076323507731150637519713585643361511067404455122067809889187274608828911207940791561031304600467438959324288144917363584590203013280516482370943709633906287934649904723990971526606877517692154074829905016439949591040551583874502345696217460911410783275906310343759222493873631660820702274869260869390142702776647738229101587864159223188229285332897563085134877071104687081721414424534334132533454364362632975331275124878145119418465500568032963064770367745707433231831473033873014276867294886435753175192619201490792190965916637918812063695933182633351268937330319047153049318785936733714344007807917595125597297422664442013564189784633778534971527703800951512549062256989370934674084542405017367274659403703743601716374950096124108192722892293772769526408641578816304950727403221220347123800351526400989220792593371860555644746635372038074900772810703483752157301212196232568363482543493313674860160231929307131756272193654240665252117420848891154534899656081083085230686238235063354142558721630804999771153754875241267970328324584494666578426661088549419601228165568486043096414477445798067223515638615557194326683426633208826016734376880447516465549670135256007634468566353964909987706274094697240081139955195858015800752507075703904872875827036269312156922675738262859270268442605975204905062304705823426879272363533056084218078503943983038955519437666041991849514497757224213952789204579255202029500967740275435397173795920855874745972051881612433922697665198607615780635755985352841412444880011941193496364283080577662865713601907022257468170841482394055732521249702500046206062341056699393205126049168506418387704418091034323493176581330397238504791145479775975707966432361429079816549583893663706564199330332232147276748181943300642721655606484441452323275836879148119894089120380504450671846141623965164445817578622881360128446360091239511389927084223803159862215294035947397140859350543076910742175111949743672519720432760214682154745512095711449781147339340307358661930807094743244405509704382917210248280226430133720528708651802723569273806013353219197003329322817762093981467457044385317437277513032435173595443978863396301478293753841470412977190436928171321480500899127973595358166358776390617544567980944833594677844479752817663908482056675931615789916331418247550411112346945750149181579512333121410847417738320404597732382916402714777397391599677317407007150063004678570940970577315051441152188537872305194383131337406657484980354432688310004472871925251456951854649276536379961718450859237303728114909063553368690107862723431589070768319485713283431632507450840741862999360896127383308787050297038326648622872590600310071850553321996826480302197009292087377701768335573129445905013104243833400537880521576149144421932019661067141415863770265058134937418965893366691520824365029694596223964040401576999944835144189234480036105366345306092414735883129894973265330596030177029679719739995244483440484069906146689712605403879741911652177200259428162126161423578975649118096882308212630561488320132403758001944763981103809589545375111496263757572052951469895345400192448769902299369069850671975450928841214763303707420898417241672903405363467713591083142072607624269551676476548647693288846980512063393859354591042611632520738291734631954969868993842901416843688839591549255292083633955370329137182722518104126525732462947342149403988560856765953904472894414007620978669494179508265186108920061531190077521632631256267289426213953164254209994875262904000892153662275205133096693955785306975710072251076925459033652186767526309005712636101222920776703813090573746412062921895803477954955066818725503104180503429250329018346500177247105909536173744027683477669067549201242154042108732598732848205024153665294215899869639167358563172883092766601752344893342368720131512326110112871559003752971701511307306348952634487901997145975713686634902859010930249158855034877058112190720662034627652106015455685642880796860426268869770592322615783587942364035409826863151193459660520034349963853658642023722578750617770460266343781754621172624046626003459817591260772373276735540747668603415699383134763251141997833421541816633494745668420238678793404476370944927992359064440584212313869304577785218038414200569038034032492450232669861209614267621304070222700844034904342831085323853783684159521957156581021135648011378369537778803637772871387818963658620790281219002630024112679845506351579608852724900399687834262264719082376630856111480310102830304884242027271022810131014354870241005960150962563178988051280858682469710745636427275590295429370368959908224442734040659716924639806546525426725454863230451841144146804723239836870757267745325088761284142639740118228460400513896356723006149707778978090074113551475957596210598555862252264658250240298714076656451117726349224933547009186468601504222404619286789932798095532826875994127369451230498298916195934037203770285003255331533256982414901510237891862086471465314316645213313687826951244177640932717515257219993877213495111690167254903000626469962566052477079554321866804176031104401672932848753606074806440536086097209648130553286798009923164669249091223596132728375270726748210124252427876242968380896861977965213246854458972732045495899517872181019669240896624988916587557988715297112574367839462318424874481242889355277402238423333713459691641446656846151898348155847008035320736228324573865955777455280161260038760917628614674508152843557370786751563538451210990719373189803890569168996934735045763323101466597394283966174840122587879740955568659486277306042437428337041459110724571980717941235947447087917918228861503938379830982280209436288138249400012358190110821765899716571479954636290567314508827525746087287668603630250184397526494063316356657990342189857234836905886579041946837297216666449693330277184996913306942397551917509706838714399852246389554238670138289225616781053842835789583891573248608713839720790194388349829074759734037850862047066230560186754910363011544213865649748076382096800281461487607441846791102671160006960021330252829441283526960872560406701123979939432396374372298158721035204816567336246533135525680386053245775821571480062371617002806748591983894424641507039296428821239564539645976058694339949976851057092254490379239457069918034610735917110313892461738696876071715000462157665900306494853089256175825745958512101740665848884534589652163982582305482651717269179438420617763761009922750958167799649214000652892203596648823903822105132204275949492497836032678961084573747323624590837730912677649007699624176121948928015245035584281849014713629147461850999510980322257460017969177813129458653554403044532028153676035755912979956361441552802716805106967398389339653208895486639253025596989153559119676416758518052778518112502536008081389316925010072405536633169730766168316173344579945111162502480894640360466138152570058995590859161125443807748354785908054386171501358777115347958167334412138655862656047841644981759290395737190264038478245169134423832171591253570718252820495810301387734123738544039814742990738693190051051913306062600383190091656005784806787139427867707796975604384051037389521159677395278199704499106515355468328782795749655234295671250999406264188392265269127277168889812474964985352554805485059302560830857706798706206468944209609200677122893658870440307117269579171771715328818079627325931921996130706914362075805183079998606203489917984778904291156810231752699608386004741606768854956903802124070350267533489186627323339550907041451267431592334057890227557998141233051015702124616508829581074661210700402409210387345413128337107904439498182696105707038367378274160017993495734305241858370914520189263570984112584014064898721899633000358732830132202060702377809519436779342640781529298278733489960895762509509167006312200475698638900133111969528732708049537254585726529180953541401281960063038971867968006826856958893623005444644036836390069591513531950070892349613756745203317096003096412892230014972830190193605560995903822882198609219366095938031477292178314452803447135947176520242291515349411858379440323130525263938793433507542153461835537490337770199885955965587570103027577560969913971399241781516938801374278018256433377951112270410337993471007339804257735552744849496267983131323218089807586673398006129883882210221048065196458052102138792016007486784123243159473622424636413542609650732221412184641220409361863999510663485164919276363930878317520575788623094979206905781081003619944101373201468069663803613059309523386469448887988119591638235758271667937623042842643704352493131948647416416272420281057432867972087310480250348705095627961674211864489862156519701553881321127458164279876424368851599520028900008145347083910999621630392935072141788876379597352988909919128294572204793609757461049913247079616894686051705295455551065583560180972444245209094197806448950723178965890975607166458577617159217206916446274763225330029602588910577150024080522488806874454129417277890507060248911888246640386199560815814074476317144499610031138858810977925464404052628443137795003601137562853854052486769732636012622845828443366376904407945555394799996307113503138181166238534851274298593487910999176448852759258796788501411179271333399465351611232997116504595010796398840182717703376276614371964474160984654000249035826216482378145758850887748221674183798297619625370579931850285219127220039827395876751008116416695348775868037618524725411307790281367692394943694938454224779510779102365923892084582500740444177433678279972948683529163301641269980656482437540759622592242204690096542170635677271580732979408735407078157947293746591130300912389183053469933079243809345058286300296660947607465814374277411664454107122503882275504733098528278808543381952184980674691295631232401644599849097631243139568854795329657565298731351484842349574884324966226620329069554622650728222778037603341406930172726595631752438866273519836760516755234449521398097160817007337871967736795224057310290617695570815358116290767975586274802153297623282637931230506397709489513577250339097626840605716644089621271111860794387116491153022619341150979106720612983393680811001215702087008232647289140977434248964797856897960168680653219983556720054004244581040867390292059456847887610677361338051424866721408833107678153978134872538924878005025764733477957345359162308095039367455747585266514474282882857285018592029409173521452883718167672532963692448852107193547286315389648771179823483754786472695680200140789929839628740624190612593707113155999979380269636178669934191329453277488010645821425659229831471001061874402014345151564977722536361853551878472520185476335191028870155124205951616784316857019184238718164949852563635377551254159779492847580279135620015265098804090120388252928799642377769954893402200239768539251894459221378203358892617913090345724737435807292144119825293374100573295727716332092854389507126474047227784124151989797882618921596095327932576901527436956035582596039184485554754099716046742860997661371949231793981099659460830516039914800970327065029752728500964260991209659389031736540932433760592282360639345719023013889124602385122301380229105114816005889757507062418088465623603971551069693284171486748062334986404355397718366423756845484338239662840996577320700141408990333184072443104639438704063524499023718925608723307570312240181816757062238631350346401184729984570464536675246918114358904647975342930743759335262202309550733013443978471867199117094816802729818215534882903462477833231048489073998219317021241493051574674140346502504555589299254188156352504644056893082161819679519181729902851910139105161803650226076497340759727523148864646190379168387232545548678724688979774655039007887231366307326191864855187118519052242803237461441878829282314622823134067722098413517753489059092147590539318164587812774201531538121200205043485327465656231911307166278796987923097278564302014422292896603501220435582585211012334627118008683953804546311088257831144846853202135990257388344364204226516097565012841871640898992957580784691686713634573904673602828867738606450883056703664624431954932996455293291433581573300971189703421993587998893364309864843066769248960172874275044119699108088487418357690419355402302014388447258784340350217648135116094366213015104524319101185520498376707000593773025099774319013642294695353098853188398153245187105077980378664975864135659244878905229504635368133042049330332603879671679502718918050739827105406131774354311081064460008884939280843762716178538037288584077249775413741890024844035727735251476143892363567754424254603263621109858864465076752974765481396316128054027059539617187447273838958434699873138354538587390332015474665343628533967990378441209237555188749173230239114334717642256510905258043759700086476912923830291700111083044694703833868329635571912014079716100636221812730099741879524839424657647919483559374234953089015797488121227542525310920598324497786301605264181589156699646574395418796545636283252856728674105724902753138245339260426264110976679970813909930912398789556725973965989949377820458280662590231421822298937399824378682525880071784641392042504236670461533603831868927347842245047485394693204558962223762707898211694250434289313481945767817167129748214628629322210843604946348082883667459290265469475414359729092714687468126656713470431091258986300421022438064550127468343020987129778666762699095095809141386107415826601368946983421993909582614538563878384924093735651776821142022452748094728710805388326282189368461394888754243946308319342998441418309301560188789516470130052584132112693644381929637746087006487056196945447483549996995317993576016361357521108547140995487568831772077659006936187421600104849137942711138134375336545790683456456368203518986416380525607774522885866513489569118611908954589758890597284049715845914585426502837605630923187215438674600177927481173892877702271913102737042282202461389744503536419394506537069196402402123390682200343102960632256315184137080341851929063785522241164348372963255116823901099141291365073876195919129297643558617107576563651315734674381562445091373327341671760830990664019756893380655110669837206137906113533942585323872364833329353550629043603785845542185933112952122875915684319107392760081341508246617180264613297206066382124624111209507872830970733286089362747447583379957762291553162695816388722361358687399883581485503318472974493621109547294590478616153786693245514212307739547067724315770913087834223172453585687802300732876994236793546531662689578129766289898394613811468891206996503761308523645211756178954289289205830626079049229392441939150032462431468825946764133858385882279286133334637511045980154826204159839512583243320963036833040909555461000775696144592923359027690956842504178134441434318507088572850206781491438695279801123257130042821859759332816841912722567654329827357949667906584364786793430394775761958016190424744788117675890861194649415114540656451227898769482544560638799391298796031435233739150932707244943848639733921486167874148396505977440852826219640803056456033225422204983202722670788380921817345512375025959430075231581801586562474653312178592850300273013659072000665768995647094640154884527883788027684330866174159045623724242622278041145140516519491439948880318450449250532448439539258528048630716552928303957308682947451027469753737649173107982947933836941355160540518874327499708360664279912134161339356597523031541580732174291285197750546960010140352381052634007983015024208217987431012710599789805084537960991700915491976843508742178184318380600720948533348676718790693461026751772644859537217814711222185326645208228473930470943583100053534770563333350312158387707147694766110786153480767125358823297777000654332937373228393995617419206917205414337985914440717955577645447154794614318955627497582451234938583436865164605434535407238033421015110776579936896310194533503989981827247742718926513791600023489519016683492565681571813564626074960139714282148905272989959587544367329018527465960058937821080237123322373879523878048667868949973494396340122567260769447422658940600426660186043262980751075210691058768398065061609116845843066915340958499635401348099823995896085623029445049228745245295642166316889610485138099357436416623731407063243256259757436713350144455867220462890614933711750958541131755595766511817646850112601644201495805698569066140044147889828068765246260298605578051785268466276801968507364596414976624214195690879795014396930384760415437547649556290670570071123459095356144424617626504871447273862645524500466430729820275952919786553523874422863265315306375020625170696209157090333702746203813779647222935307973611929255039344946103166433031741572674957335057849886615667987908956703744046944446609192406624908709669494146430865209969544167996251944399920480862380467028235028375703722199037985728646550981976618807355720100546617545779189345815095704888893550786417687022580150559293546181440643577508968792660747986360189914034005897866679365283910167530318797232536956648735644283210910833195744041595783302606069864363140764326379382487298754442554002169886487600501895522118768263833228199632693248782517286146080166711658439338413067800904791742415223512210824318601430706516863262229708836084170262886139627961738657328821710150198198999733656656866590170186454093272137034117233549162529680903339574841027567466901312829061133254239754278979373829447983327413363315963759812461019399802237767146668609879923790665094359094627964934659969726104826555043964341326434526073963310831392786377841663803252719356882652791442506374675449482113515925488252863449044368369265710647245607352794121162037297188883456523802650331300095077164692096261141207534140926965625879997362955654221476806027465858254736934674040803022602616182483601026919041375595499903234687086253391546560045893055921574169745013785159569092865750754133536782468597890739609893120373463811659448986540340392426094586969643040818683147654195426785379823055797569270338035733228901052599817353848828706743261598566495851918538126765592912518666919317135532967418500101734635113271733949370553719233084189287941292977271561395440170371933629458205221490601893108902712439599725586402629545239395695841704434868671835500584506853476089615333682870065448542532901211128946950879557847610993694925516462369252971050800164067925856820359238265598492465970875520374311430767322217124127640702796595557828291115077872495765917256677134464502740414881177909846723383874333611843535664255324879083861142465198360871640686114761312203802247972822271688593613773543920789528675010105459590657289930237857639857572116962873753658254440082296419723763922592215491963803435624873885807448604087663997266662904506771165956082850717273077692485582784754052247264203094899698853943145718620626426196085060487901206139946259171949594625087978013494047908741436068280551493576112363030282851278719540102299051922236536083853352054615467866332701482597819388455095005913470867888403948539310223408142273422208610336293948995418057530726868811592054828894234137845863559174658784213780044571110432607386679728235072813215362418134655313623978950895008671076238098231828306691322250363135309509863413416674540406765578428116263443110746832779584219719340903028088311501177656008290512881748934729070172510900070840906252093014411295577684769388769333007754571492987380725716976843030535934792225314489454396187763626053526966640627427409943560524705497922614871965750509024597137383846454142154448027908321754495408690602286620802765364985419507678532827668808453340513564837321780230914933622740572249760404129757577244437503392338169782352833245554238478229823929738109663184962888463148323003644458003709982471821672454104916171622685557994369066504564025871351068169809194726319107969211040086737088647170581824996240066048664832346623762382758480109501873773457738441188057826642503215471566182488643898770337215307393220209165048518618470305407871863299358305714231046887600918937655654720404501478213656853303227710981590090821758521586610572113714981892661569082866842204125370530174442553646799891112270086735153157388298714891961517352392360747297802478416807557050058067424316524174736278492172767978471761698541100726735657692062508569152100030315035874768051742738973852727868943221250155523814430003308230990130046856868223892807598241950446404106458516882702942275676399141468250199843768454678753152257096521133694803066174182650149242716944730200288607003248650378887900664041820064407947591120568300487543369033569421791238897978019556786194451285980523587589826344511981318174586899609707019697903685774493597849298107236643178813457762420935202576919821845891218691681940955800008915797282958480689369505131024426578249835935069367415206829538502867585624114629564714736441929058389901542906079804243896079913155269532842803546486217820029544803751412919525887873644453151137066210383196221226442586123723183858885503251594818013399024090592531961002875629477948243345225095066357788849287679680479098000219658590974054665010165815711052089878547382611948755013291231626816901725639322056535817566548795290966956387353861976005342700675087981245003561432710410326085367651279995055404007056167309666808539798492175016393664409934201728256035503244331664686673302863459496661328897725982717108030642439527770696031662994557971918844826581964893970601793546002789507473497811941010436467540043679271013445432832350213959255439120895950982534855007095817558118909100164438537790918623357140863773937784945060705664958500681973756130276985818299065247867876886684392688088162703290998110270788151220804173509225592260011518472981560192969619706528189364748327736222494480543852178837695645595565551578028269590037103763400446922363554116942728788747221424544444452739527577215602001973473326687181481370404274977063122505488678061906803583683180438208134605584677277631541947693976088982266622926102863451969764474489819569229012213256996180908609482443016529411913725513954971793497707890650362744266255507058741827235912059264412041868214023516568188470668888605867543765421892185247296775810476280868664851121751924170421545777564527697974071871002156589694152053704496783167421866684739976578610594543900893320023050497706839149443045104956894999673309974252740565998013952423848604967345127098117337973388724011543629443263534005574893766158681664139362940991480910391343606746003917173445820406709673387382990742677998989631918780551610559348033584829042722522937695944061982959972979477784010273712227726408659062467892861629026897828473264452543701203532692143032928923727548773557771169278425693436933441370878022207091946651268742647099734874679149240182678778174052703855555362381934235717186339890073572364846024521097650197138705970900375450471500857549826789589419710686816661136660197676282958407892781102768427471135863870427952196254672329931529368110032268271694801835038462247723484643390387248382320062956932075191530613974059942392937428574160978999639908464420577536876196690899776102570697959973055574943698759175761007861568911414358750982817697658528069496039792492865624427766502057331626102237316616409738668125988039476275842056805083471067886203707824957317443997437268646293073245654067469406345123964122009676381264392949704800611526192757045429172537650625792683488881813929183943988118593638369918231284312282094796157477002996999687432475533691100846382341694055703433855962302851792352553109940287881684936733845343925011975997815776135572632790317699059366795870859981473509888378533488740640934099579526837419086412950834423647999947476809398019639951259786200565605859102988012796849081733922333029265372878609234011137663494157417179107310138728982274764210736959463255726105876759953900117946447664426852179422668483092070254392042307581863280174384047856336991122896416890855411680107714103052025845919462033026981407779059764667186538450896416873480944700130490049155496790335344461606297680198481193135188950027822755899060072267122074883849453489040812720348305984755432930829559387569819385762498346310619837344524521905567238209862385668104328206824977037590517814744914932917280351028506743668524251740140869784198740189295425822223897871451912013380498172280097659385035855975208845347295964782475071094829072030642256170690564867467354536995598909239013379992701123121421126071896603082677777132812593473051189729007242960139946501275193185455077469344055534219733671015590915890979711095849963048287691028473012120549717721121819373261553775132936384025170753716087642568337900346700994501747104248059354967569502947108159031366780551081624278266494728919647330858917410050581542573832527819849050418782177740412647539357582757266047319433087462264955391370834442087543339792548236817142121088128043949997721705822982556589263429546762915489167520303269162260444752235533148294697117784508728092871491564111472895817901574857580933885224600353317500019118579682909105101412073347554661894802753775594563820874638942188281446437106331386054814455337162899328445045664589974759092931013554763997276334022559813537666337667698595404516065735042151631470764720025799801220657585181224316995506576653036262068405085754617222617420006205567434145767806272865283696626239007060209224285062746118535893417885353341345936197982074542759993220527726239328597821782486283337630794638085764240554244106200436615013604858575892254624357056259403429397274037892730373659102814392416464776215635273690577300233041484808089095723466721994509625135775850043220214388186024838891713492558493518999312964551432201308981369112919861986793663853604214652173196231427633809937201859878413111229858149995464013431796059996891771392704956242733735145667299857976426200950638484857387823009914377050794668442448844957707304522234500022631813005936658293190793225600599209716937368335040415404482153420099221788411107581693989387023562472750259853604701310316768256831850760718584554261382913661065804030397166126397906701802321751594237331487886901789601170690580581103111440758465190248971111752212248759598930077459088340674623697479563777136139288186581858497576652559255942489536140716964378656775662017690304100891652543098476047139383165761134426243559016848885097499341822559595604290505605465984537320782836517815437795961940216898400816808040206223178059481812986717360371293858286846332892583190415742553062578192173630077116832593544651278348862258913929443467352506781338192908771289432566629575982342201098894437055633658977374650416515044020320496226918341862283870537325393634975932191196224237661681742389459297930891705810796664887457016316525421531594933256260707761232732324551451960288639530488560282993266026178882731225233620904555451185742663441460244613068659151626637821963767627362710204832095619808987788411486567025652775849564717908430950085791486850048272443662092052245970600551222083790830280911195980897469190607650391316235719417479222869599415295372501726539352812384863182178499007605570134425932928792133073708680057612593429564666685204224698915166719855751135845919581012434563133898970233034887645073259114727815206288290758139400903548670557355994232839502989044062664501261556375946239668740241362398005404823750355787505276910294535103186960681611810873593558834237908241718912621379857238770932978123973826337374578558590933245667703661081303816852063694524422884551818774751289495115286524811448529194715899805164206310709721650626717986896745380081109041089176931646673047768834357485143438022632236899193093343396545204446812426225648029082381652971153337999456328948354577525019265953803128488909421257630664981454380624712612340405290701438950324662482679217581886741705615250068473462769490822818733229115300440989091126872695071283864114615929502423345785549029895464761869158043026146392041636742729263679767605699041180249469148039316458734520646255109071888853530562078860085390095396883422771034512124061846694357732794784458606988431615363515419968536466561695746695073473558612702481411708678545440675845042896629956467676914926604897695540368371881118385550278130786355075955049559671230618069190926668269285052139948046908486628701081563066811121221305186892168952464054550557283461009535220662621546290613665843292798174475521766834133299574429707201817142531960047116169748346775309686098209971853231258865905547334278179408096395353828511937065060154750470469389939346064113125043827390339092742216822516563625156655382802864330844491502159240946990984541538530129844471381806349709012072779345494027898891459354938323256794516984366717516292076945829809768729492544127016078479261580487207908468071531024903316468614929325065895605477717931781831134448456987390729473310328052617120663233192422670157504618277600603608548800839497560845164495145439492388417625917280604666297131203995858024747313520950575959664404130785437399970828303327436382018848481622873923916618526363564763485787131533181181543980692552558119776719963763878048225315584577381278709771719965321274171374275622625626334534791455434036673021645953103667535095695223666110804060900044437636424531893465091667005004773966052209407410307862277467696818178716263719828232453830368511608841097122131402162500492793724031099612130455709237121854311816885276435713306527118215916414616151558049389409504898977335691385326886751588920001365520037094750145749463699077263009160124423137943447963167327208001942204836994328542931427736634590362431300723619494004875817536010025649735779501276101990631584906751212619528121285547314370772508438560207459289477100588508572289525942683940380969971870143615082288136063743741579500966399843032145208326366127665238585995408951401845033421967775608438374455108705181769511850432996035659141836355311702137643811992583940881156970909251436789764301031882573746557569730560291669002029707472512504746696967066204810975088086759165327659522382950782028905099126502136381009352050682151372882853653291498609440120980232661035550492923468903610410710103642739999853445382447315046458104830676259373766396970690677788311064516360540347259652545903440744874604057776754861002120586771724749944748150887913302674626887838557260042262118996570270863237970061636176082799076855531582464249300562958121657304376989595102074736353688295453104269657386667980809408377339372530282844004578116483449972766323235452561127872159483517004727502920759920468565542248106084173251296477394716201937656021799010178920967907927423015217562648515507048431162715358161846045144639294984032839148300549434211657508866738398881572158685021433558014887261933701236011504178869852773998731448385525547751062972497506453199120439481832782265828552529496770118111294151096637760694334368760521415929723335578521154864724286460502633809305877022346271769347850673853219307298609619773815637061880852571613107611841478075792216174823883171994466091245606081012790100011623754814021653910024628693320162075381073967810207952724238377790837499647060389492165518413495343723272890235517922516826541017379590595276193602721919031238053887445932283108030743632057824000779525493147883892471767910039037625379118726086008769074639680020599875756137585688583601304775477843089792996050589966355679818800818463811246929415178763224342095850395105156535090952805104951426698168679279608278046863448851034315499868285658645247239606386453238279814154768734203208280960669318609651312401633770078654748798594860902884593639612967070824044653033847815550155095275221812876007917009572914254621518108901784065702809432952692414948523231796146983278099504377822797281960743398851415404567178273421317039836843519778786654682431055928205478683895784720488012674750768361623580831448841749244340181092306505501364441345713322667790736172332407322833814597906088265297724293099693814504947841200377759748617336894049929568412753297292021650876139096414316347442848792818128452260335562414290388880756668999267224199475606700731610195423245979097144190579722642415440614604440769990431982425853842961454531304313444504323099729316327073521668101447769784354454551253132611187565691837615435223352969029591235997790488948774451911661653614158810459276215501709053300176485368199932879982966003331692683643974256415625726483397342762658362628604695710169459192742240948862420326595467084126695401744322311181067305816551505685717373381660433730998355959842283115885958557814440430649258720591170649145064629854101706362949399984386006485778871385889552121249665552586658569618286149746964774445390227568286079880914146984893444132805298890229504342711363708882043603107018111265584103291442213431019305000488858590853570037559065979318729815834252716239322568619780545171776148362551997388229227973736747716736395255165237036818162890860451415295419149903069590859964233786968935045445059713747018130686772054217874173511902731513899592974820163306839902495784907782473263285866128157203079033608544679593124041134828655866807448821103766555160664815946560602395289477749339587880161274510412159581965571621656993371479254449916657187647476677948966381700951664264047213524806320825012587828181984006623491283014822764016432319811683855694343889094576847304644816895651575119582472881394865910809502055624677171092235937940520155880399161596654428253048934891322766562269861172760720879559514438578055422712277804536992402004204919574645284851076775220545463563466417306603361644363004469874939261327090199150249737707810180819631314326313216710428285122974875694433875907639803344945886134026307437015614535264277911481097916643731638960157131139056869264225981813578000098512140706400716444107497986781839694245822354458657357931218221137032349969841337603473895039634031068624881321070039842359568904707954254241992316207224302325878716073518404122156122552942324964340278638704625911437920996551256548732085380468375165644099023172365256547033032904949728276685522966508006021316181897136078917589311456524533189262782719460436516254450869915425659126842558302577688598362981941962391983111884867192928944755701326250388983670172590104830289770406178552075223405710966871999923629044285123745055403936865461724997744859148331073570482292387326936539768516924772264846155446284487859506917696414237647448933037640024765615087442365004520435030772531011023882738013734831657497267724200431645647150282733186486622937784981256035471225575942121436753665743034650647323714015150215939213022039865553831622919321881135324508359085016716026040373090169636986572783149557657601591590996526093734952875267705875431899923237688293921348017652858809786016610729650470123541682651816809095589987678424831013873213122778351002465205457543771405443036863095438908267693935538321927934277529485640018561854001160384312872876831999398615437010832271648138784470876532636637734464828573314287337335541157637842828950989690951623923784463630019025831842407018026933815203747852753956780433411360407755421564473595016802184552712980315932631125526908115176716616606088601153936213133580564807121339614527468586083294909529365859993965880860719489035383972988023440854053352233631863907722804888062468288361712918379463153122802130648147126488690280986406351430220468788004452409360132859905797761853647362962410477564143244631260778049318701654879689145962696248509842382291265690424596685892962557685829883766115666950657150049263273156654531387926134427406136763036172676728115751212325200348019034835680666821321648313964228435660473524604591724482221737371802495453662970634431960909557010303600608279878902900965017581949870548425741103252368160444849513170238981572593448990518018303716283400790742510071399366674589218971708038840825043394284518179181138180585454687017327332735583925071894268836937293775740622592114940623312415988583544517738424239976434922163051637433504298729898468432976373866204142226224941786520604093659532507219718219305771002536675381999726762598296425900384036932109805029569820155109677872722094351154712430610360476720750240764513195317068981456500198712155280125095581039910426224804962050357264811656477879206467070359885865061603076874974783126689530317300801681901469642409759620589097451454386105803981767061727928084213116216905210607447499818992105191209647711203048738084823711070802408397966787796731506338847154507003353358078598270971700104247634644830949899389200167985503019707423661202650519510011429649647510679113914048627045120318380460119819747698204758366001844919752488230873921372752177749933984380192500620184625124674555650199894801745235470249748737346188595267388660299999890331024460993224024806258245947132756564200269167537935980837790949318185314827570829540447140184124192861130379900038976293215200401021029197846464992173846609364254457910281354899242749871138147710156232328986038467605694625589140918637181758559253943300244230263548676158119858819867437262459178501726856356574729422308928051343312416538998434957886999052530746224149035842300551967080165976600163023185155325150512278200484985565799174299282258819494432949365199829471973454410792363508339453065178912840187043566003227141164844550698962521571180048311273145059553773264375732429198708055329460862275047676536959449664110351348426237724721387825587829499532737910228612734110588133443383096408262941091314358278210352499892318845995726610598057012672098100002903411718495327290118202410435541825969900667497103372763815092083345119626675695862304623191169399425802844537195706201471216353543321593572734906325291608077459360506311587421799745629603482825103793651965936650656372156508621855453833833499452425180637356129664843869821823696250484893347773136348471741686218071214809422579947108679975293867616811712539561813848623695982105699397555008101528018919739129615262634487961726734537934151139348021595338015661609851681055654929153218459994624840091819262240695750287921658703892346147889938727607731333728101906070037162189140923979359026872704413743821424592231816855426756651206551700901226353445412922914103756838746501790522555571584607117491862036359933909198132612632919508061123880031019472111321479725876059661273115462754574932376021267111542752685077670773677649837723936589317937664715153233994793781690571993208570388074022446296910547190657838309091284006119092284953595281497277640819929869363218429614048751807466040536483360431941899736067333929667089085021488611774994280924838031742330537638673855133101323281847383031151661737699345285134464911551075111216022188546890419375362181462049658088727012829111687458839925204587552296862645985386303920455675067201863325396251733497899940647418416500149452858594978921360453273108483339036512553999928165512709049567217373861402701553928173349415250566122519041815101076165736858034158406895515494617259163523641777902760954820590490658201950834570427026316479677554776836580082967302433678515665463209119416424016407280217581599384589595553324219924837058693221489512314553289202621505258502916224582157595085919732572527598121472817474326257239340443533161137584864480127917707083598847807683410911938553864513227813918901801255873646558856590816421428524674664096693020897579988728384473557030843041682030147787423647501384600171269225398575408713581141823402320894819013022613205683112694182938626119993509361994541386285603391174956123957257809137590576483150736822507275865780179768794349556078444031107424815146426678042532348575753595623280418314299657792934852415435968884522025958811383679695742873967800786497246736065564170425938202697995245049107060360945225664783761435572987074318803520607610667872431005684587268335704962276575680110510554809797693851248152942201531341935973174748760148582526472514770573025928310755975912949481203614129190006274764665928223220786858190115506000384972102093267033727657971603063126826687023171613709253565956726892730824210963769066581291819489849574682939739105695607951499180075368958502868487624980479215428852425307570272091310243861143146225022703047365893747704051456337476450377225371903772144651157524533949392982163437479940902621142426513154654331141860972831355993525804298917852159465081479139422256524913577381518751172934093451403974579699827895084369543990658731469089850705797675312986621695133603724279501543511912324369470571174695667333617413767062291030425793603082656072311614244318469420428028898529517269346487083692579402129448204644199479506900158710712205299936120028695084898913228315533963283914268207799919791876524574472229910223227461601008763663625436026040245959444580869639922494075020724867972339433977131013719178920430198391290484941631754286540823483385341958597905907265650720868009328717002018571332276983248212096281362006471588253299152225388560861797665153578543112128472571517107377938331903873291312985651000727374669850089999472263214570978385422498339714599908674077155697900955620917391165030386481341327946023149282604546815250945354754130060134990686665950082264454049329729982100573895855370008644062746175416676472486957528417477519918200409287660750786721858328209757560844041073758829300267843095085018554915847355623013051519458597935840394915430647772873554290256102774309586559120513584199855390942067030743366173095240979234795488833772148850186154340885413154311105677866938790534529132991810653312165132688713419745577274267242829456804102864866385102281629444233694234540202580121556975472720916252200998659466205761667112043112721765554522680279982766937132749774629568254610006849682470477682194056077365814300454371336847064811612895520687960978242166699269789409512051859197639677629521628121903050803174121711473101421550720109756127450797222079692743312767853436176292848178211647078295660515804603184708146653351261952739340137294893873633946829066567053475642927426459965907883375330789406268984032547248556088562827342486479417325548839255216724626263803375748512890620016265836603975116245757426918059076847903103361576802783779459202110462686024821464402363498247261244554149837295698171244159077316960802655325101040951729147889975655206665906847050500739825626030638189983224285608695858310157293840150320178920176588474850388371773057383387623488160765111327138285001564403472966940720802489966130402996146435729920645678577864878901760793696079028697935586074414267447623572246109323767396071203514989759504467330904998194587171969167689896997086772499800226645145716876474191012512782251436761258257542609079295680890861324628475243146933927506427294597811982227910334079226081766207097740339468318184120549019416523456195259545998589563183800587168683766223842470382925146907263170211523545531175363397024779964814101749435114271346995621814349062385672623307702210129461466017125185221459357638722728000089579799174910971012648064216518430178154923932981147264403769063275422724783325591266058701137125531147805274957644644860127166777424683534744684840392471251872048743069842348504802977363495841207778759462770917963485975219880951212244674250226719668009249883145240884941856552698370708335481223731299020779026011187926657189683023832430745269087254700074431201488985084249622470699441878181432925030127936106830260229265754195804049843803946628262761899903585179080719175941800677239493423218426343005451680664982545268776659122171168088015326010017704797373107609717669630315717352878578407689271121803432991289850509498875360887957785774278934366480497700943491453594496140422427238787660066763360233904452230624077428164705727553740308757149991573023398828530047851970372917250343755566467562963849409502006170830945376398150315041064561906654882166017904849712514704236437813577695609557307415718821877310331766945835272015814081689787850092383841921195138160786899908185147972462278976491298512891839606036234184411560092181636794177940626724900501424405737343423051297960715364319035991462352893702384558792025727254631456732721499068131456703699143263454546031919499909719829934432167550956279929645954815597383263543705631132522283641715215317757845587437640692203913012631701096182894379703660897950555269198924348606030928497096721728872026788260834724212228621877060200129701854121997068913241312517403818702324408966772675680567623643686287601716675808481150685952535648988223564085506725810061616823053490787896653387943699538247898007859498714083885200343009751456755931368613451520628602577156748572747817062771575788841052860836057115048987608344520885189332533049826381566389600027686928995813962686893508599651846005144657504465365461595894750742059352548553728328238462973959193597624883092947073638393396520964181888246303546465738503522686546011440732577859057807299900337137971967478769982796865148956780996689162171690010645260555394273937885262738749379903029891565326012539308001475106161524254487487263582629951527336307945897874197236607323789812582615928302108949285653168964268498080582519770971809817275870876378513190560871710287877704949596903573788846961488013692222220486805760738550167615792101905704851202998252104838626486574344893949755436327675397267320114591158056034622847305391954694641235265746654272628501818229465064316313581976226261819313191953928755156582153886817088333789639307606271146939565685578987866984823771299134049766756741824137188351708790611241512053837654917317932011238373148652841615736072040251449453059483952660336170324815140628231543006982066935879116170121014850485181851316134571643151212589000534642445750297096454080942247493913173139042324328015673879532870847700833351926892682625601318257371248342674039833729154709600243728671660567625824763500965740737562433211848775232679022861326641270419395813138137988907015875671845970629027662507163141433370265993003168982835843975633729480521205226348884383927714519900956739080637679505504347251458473717529012538920576843777672789247419895515862837410619652440085891652066348696127858802518506403503768285923523385291337312525075803751186634806821700831807012372505358420585843577228694358048213386392159675166022363215584977427403635014927180895482864025666298720002272522867241847287241120277663303996468436730162359850354707239297088629901351080418146622632856401810733768398338951809606258543477011193912724775023082239431937134193876486359799432004352555563812845600605785918298411386606273264437941483107094727120741910740712982787121017572849662723327375932642524842124402823767921160731543410631610665087242300165065324256755968505606326407306023814342343346079941176871623591316739632355888022845414323033840618202498024967023390393088814686672009180542219472117861398231549283928467116662355681700988670224235539233418894234018439355967287462093023845916447050428344468684825487110084262152813846446237967297101882967214528334777130238012008680292826354648714741003359923474966702102805767056528951564471803550591176800735952451908580719344868748299098740153366511838393557719194678188002492408771497893979457683854004090742999118295786259479856762936570308355331734964467358941121741612474484017410083489157331637336165574725989403942273871246427620945703865450503406485788620639340628363879565379362140980167659010975446514430205864936166469138483551851484093980126770141221075483617644358803928758287550826984143088553191845821856785348179774184487991572957262192334812123553686216140229772096179540604728520546396547004970915401029073807367235167915503940384513594493450327450395223117840212266055469178331975671630888434389132236805327576080937754083161506513310404650500626822095618367010129719520065130409214480286167034324868181720337185069863254220961362142076676135654768993138748723929496877826473697180078066727518142892502553253972642694387019200218579908620660497743575492387614111645015255251231590861794232026519209104522115366466913635018857554929385694200177981124614127895838305637066826616981962476089325897931998089288986438174570147639913074591656224675970780602587594930545265121605394347494652076378315941103664465460153209538669772473363396141282505335002162748414796517010225854655421803343424777216216814374908707191158970616153839653047759815596029561122815971166678840044484141738216887630144220073758821549516152497636144673884854131519773432383226995311115818856404800037474139308376578547334605648650404090003536544768496096154496713839336691295259317589007204725152211008210463456797329631571115844760902290896072648676802463602805606378233264121679057188053067725172121113128670605050514447026328830310020903490574341546820912674365542643243087456219783787661876838488676250273414754502333083182667946377801816548111122701163788529043818645922676323793395315013445075981957431388901322532122177958147565212357939792676418112598923368487701601149662454756618219023227143033908431958271251097494067730296689406484333075533549939081829767703206402905080569510486070739490013452821023662614049341470634298849636298856596745709695812022289574480334472689696592141697844988252075197827687894941974745216578818182956098395850034892789778616849092095330442710773203516141137700770948830006750146587385795336691811868494579925304409813525580110013171727517438948260293117248609073207502499525997246497527966415187352015366472000583681736948211927247786919354699232031711709652715632865435119102692182900771583006186355901599223312957519327898374222832084210152487433196378307391398870840399305074549218484766878867322750209729849991828204389695047692307471393857663530291602594506246060755254292613698684095547785989292226749706004280087675714796129476758928394687610534905256269721722092552117181924995876376565527284139942306273902410727012226391833698077633950188816196398848163769731882639832145557355984468612975569504475162714362692549699757190888658268109181614944174337553637489757907499922654446637492706250827108190641888999703234212222440838246080985197311665371549404585359215590377326151002292621430631885003984639378979282824743171336160641194494027033894815284928895003982578705002138590017582740010941914373464662398857240352822641715189325566741145315922943091706146916468179557533242857486819803760623312779680739766404617702100051571526834739879798875970823366177722115448013274726907670190933642905951034394120029953994960958444748647666671636799520972096908510386074765051922976020579867253158004644341625191733991886476935929132304060943475415187696094222730894204246698104445107523406938002133725654795874890624872245354727927109880926681539567050557367076705766577761436163445672644763528592227644482554626795787423287661471761649252311541645341674665876949399818505538280014511940079490673187349667903564925401891098139544191818643474750118731048562121909922807085509725946905451397585052088497923245894744109402574792732893991813717499071562757864729922812142492250665355680403199662608242852568332277790014941379549602920006455702502339646259405963274969448837264907467187665327807597561512946518461607451200846636988453893091768866217816453510496381717166103093659669069203503724984494024618649604354060936268068089414965639714218555715458643125237233653709328549919291048865013237252903023593265253976290166756293917864393697400751802910575004474517649336334495910584131486947458759571140301118817986268392432741598845014550642538270490065258566021214278797413083838401680419172016094007647638737393629533420766900442202873023100908597711919359102282367744318577734774600473484929982189683040383811981098323564365082524001092373427454821606966655386468045395425741564697304794388921911496441620676368591888827032386929177847300297767040737780248584982646388243856747437251716458694267971697890173222208703008992368990164639602022380480363234208518968134338303009227413567590211511885368401830963445097089044778504084176532150424461316538526166571662468832528654775944320231937970033169237028090715202896218058314513293746656026225192019442804732827035993177371310634452289679121271321942324227649883054532330745587652534230930915309967426317385449500849731397878859795783745815392572232434553909995448881040004217293569043870424713066232388530137638389928350149680677803184213781147939994596466325386741946450733937173568781259184387715963711769267141177968977019003788813186699076009983149383609679353454149818708253156057908501618490511536840594195844469038053996604802324262126811143666621654754948881885835039234869982651256202680291609953109096611712108319956224075436349190173901454220019035844247155204684516476943574915772948702458883526898083724877154250133515501754825348062357793310992258811324304350304302748696412321076997391790325803027141418038775113595610374232318075567977522143158210174156999839655786121030168182727348158138860256655210225521757868655376884928650757425500967637521628760088643948424728317789012378787363650592943690202886079725710084134969831394122577197035860627537842377433668953055021537791304042785754743835604869412352620260677629548769829633504124720479274468955962293696140173534707341438894299738284815617976531247457292072429694540736327650105005058456902053594473222980749022368070310188440348078894943301990482149472192544842135064007559298476996991812211945217678126616532782234545795997715480691859201067945926628303333155187099810451377069830925013393712984014536129457408238955412837787298854587235849888248802133182070571359319267516209658861419820667639565923323399366749864057469687509951662539296655086043029411957473425916916002079791654835305120568844108235330837807247410809032809117001639510847249563310072661041655507050293642467168205317554509290370356292261003209993974398601730666713013861688599687256133218191693535147986000434998312745349237370172795297948620738527752327836885082227122053315330200132830064410418251067470039050506998467308357110019620968791613843122984366112316349080274423142933486691369328238670402334271882232468270289622554329305867225803588002033926454676771598206890322491258689659957125353423905575460695443874956764871445760225014484637898155238608849883771429887532746876173410188974736245385742111577393546019086722588478766194289543693010531766109953927884033180467124538539626568984723798945221098152656958120188701085215734107099699354105044080195644587344201286195664645905682201944477725668074047173527302364883755660629772118564797918594110521339364900818298922942526880856003341376887441685969575418949764385085918309056061241469616655509446861596889871350331482576721220132337230457705889343418815100722531652935413057896040109937436999080690506192534285641262552943166136565047419944492036650604046459994593904954742436645156436468091739803850379578180601212140484702729517611180645002029981200228691192245422922728335978351884864318351617506809271648696694020672057711823669105842085686685461528175210268644806514602214458260451541096982222918505565033725278232521976128509647813263456163747715801148219670017821906382739686726336374819261400593606437321413706595748887728651463429599212505920993646892604160050694351812099229564640564433688667789664768426979885549014073290190947397278153241686841739334140032734093180187486894537648075676340844761468647318905416894327855662417899814922286307228408566816635536927455644260505892724370284524938561378866823202818743467616734153598797561019725932875524834937947351824662219102972879019648903717395977512244422048232674217776966600184252567752431947812788756477662452696367414912775505150083468196786746883021286837751657769473990428447965479484311502958777633903868214291329217006861853840749316460715180218693168842610867228445021268359836267830980682508468363409635205094988063014559460504671124195204593325361616696825969770742981009587094616784693129773582749878187058468641987957910710359931420014424980049626778402649090744713967250067161950885827065942157679304768784788529582853797232185974734081346258484505280756829590923852948490083226221826265405513402318148254493078553873018761049141652781053758863678195951594726974779580574375407233718276433744078690463860313599359111441917815772462168065720339916418447721908496962041672316463928427337386655847135732167470777681812145746153465658517390367080025961937522899571942455838479675226563783079499803752225087208339987966078190443453458842875127515743866519173717954929625007390999048560867232103125577840592699611039769457482062823116620957876382332419339216436602765689695346792469602059236810212492080993380081675189668958218270182897142352528035850624162609015059055430016276996034615148623288668063138040291869120555875165925174017018450075971647107701569605882720431631867211161055285950125137177217673610389879690576160801902189478768828142660685103628667279143392600348551975171832805002132982511008347349011096189033623694374628525538547835858867269828848579861116137981337039571688222302773462707838601758462824287325682191137634862361745067580771168410857563754383327380856186721286190984973663023677839001053130849319975783026447488014466059245986696935707058235823200831689601738552555104679865396948418349514810338025231097125532092446840644570952733893027815092892226457529299856377784169012184782132964181052297767901855945943173320801573947406660746772095902800713224121976269728258111175727776413884283660622384622338794044992893153120072860050871032784921734328310868745745394778136462373975867700892304486686795378961597719528652713795784421884470319521150126806097972422984167645159473955562984121289343866809337295462724776094545661333295972982700341789931625652350140894014520244257391050439308460160311377742501353034658795830294962783138807409878393562438328605023946394083324529225725979066871186146893613883848246998971305887028104071395357833510762349478761449680617080738496537314120527814542719652441633072866137309419162421763069721288270328928892128467744246452185032698804562929191640122584196241303137051800266094100187796781439609717101811350518376185527431216766914989990031724566009602669735273823294655568012652393254356830508281072671519322020361290480678098203917066860216813925278681825508316267059143564019811273017868858712597410546318371707657786478294170402996369446031152802208893062512830800582212803127425838936269271640920924090423008371247572623235191178649308612026670966577203294165879842494688765873695771416482055182229053108666627267975665560099459360604955530411907152592199543218359551611585975586236491842920793886824341588334738842190974948241029692774606263497403246868223057531134530976106665106903743859027132879553952936944501166918503910923181671826804584675746471510399559926403580614268956871260354582486948435480244580460794031591991065832076346017745102451336619458437971813686999520527892681033604564172359416435440281067135378217278244350858041049992684037705890124334624039014647520268220898368340566369111674753755423117539580580170721063810769062782114943441601814106113164958314675018582491456655330500254916765575175427838606645935371568228617678317975369483685808555928957511659386405006215914020572947777170422116472464150244442938500549441671214699035764687096884455788915351614322229940281509833733672487387164380208971010196977907333502886378523835953913460172381984492294995143076948246657856739917817404503087221513264267781231063830027791092369298673091550581713393366906293530788671510515342970542986926369740235314173796999728760831829352816555672865649635697656676174468607264036252068772124707839550403522747272862138680516052361984661691804211318029077024980508641883226100611780906314287343381110742991808013788205916358141990106294256979018709096269525768167212763283723430281273835619095188414507379467489307562423549579194974354584801469174137043353686506787260564114786790155172930666330095068957600530874904046565592861554869508480437229586597205489086218156739535139317975537104781110665674332358011094399510775802845480996263286058152295007793542254852011630987836801146235196939226036812921232800522461128327606760492317161486537401708317721431602783564910781921652279779807990946017366144492601674860871606355230331714616233521725498819832066174826566201232851367930756680467060086991665561284819697194060846535472488698701730758095415123910109238985923073319511221085373857572904796093765277905450721346362839166865083621913720100333191773232883208324673558158215402676022873580761496189599753645557998817305122063591811374087504449800900133111338546659628434716656240768432028967510169383776407032340304470880762431703012963031217296591173435035985719320960747118683383105348864104993197001994647030509718925880019856047344547146206253663269221757050842325443876096860996527944935525038978710431623895364047698100320400106063067031521902630118412824538732968512415676391126193321029282185607100867502598246085044740940606104895397595052662737838751512155712748121190383907074725905823628412738877731072193243779268477617027580184957300941877809468865565325660677651372826536789603332814333237323779378538850126477699719319338624231698320036905925159669602222183226044807034873675247930256226245070130214457609553111187665632356667464561107907686598212365464223606895946997349425967381835103661615159393796972332309939582364061522798136200959293102970581264090102390659671018294805472391353023065619187152487161801361868431266178461921734445638617844096236997189118068300553210247503837343019190625720008660721927842581155671530996408875107041714941721076706356696930832636976155116833210277288428519137092991972614670268046019558352605383567684123013946501232369280979184347154419665639431009822191449567520358944743228290844287312805787535556225064036804056823240817212023258423821887059363385324089079730003364472116378546321064115101180440464361412493315570053705568143852892827010859105091249368037637423795892151766481428045840226428931781821488145655439312604951742387837176067534588148146911213999241306008945803211476644883382153719088077230426884909071838633221619834622442332504289088292876129481462764144437603702086203198115782137673323112849748343268338239810687170058974441980417832991880399835387880355980581101162790583014896582380849631960300158587693718343766323425649116230050818252448598382657833556870367725608094737577620604301427926671863178061060238105519124928008538173341353183149892632717309599046115918462674296317869609963289327453228017907266058678924023064660918896545555788333638708634220224534857025202087618537783390473874588032624781197547862207392622218897160194575235986944134712293000003682583392120595104076413658160402616314364557672040732485270267713168417382863208765012428749116595583289865515871513285675875176456266279460872390222411713554155127394120374962304605935781116869329901038935317721670604006007503546926914198158425826372207750305436010527681758589073216716535016223408376304164038228378904564402331410115843505155521611160981668307785780207983020637919100579659625730906208875055815551215793302602881399815106899632389325269327224707184818690444746935155261909384270370298545979643790570243232169893533137087428264350009954737300383089752912656756136854506258155478911992389038968503603507790922061306760905435688737234407862677316441589588972576977499062536679548318206235130603564175860228261991952103553615758618090844998137194267284273143008889023420164476779983337765040365456983894240182957625027670281113641067848292907263023057445778021875188675354370279873367475218147151934426677661858430052273442339478135724688267522586482105595290371774800747669043157898202532500364730692006859469808947890736955941696063568835483758425120698196176089798652617571143503030933207269130210974590545705999498218341457430094927700391520184133076747334512712894408199470603408923549404817635642636914669787927589840287148598111578272855232394811986332020192760224535649791972938007415112648540323918343173968053195218505902262453991272493178362365829926006499444697208559265225778261682603596976866361803175413405857765113433589094051755037920511171896864176866284732450156689021189731440844530111057260958768917061579693811558285655613632281577910862316677590167010206535687302805869037701379216251616367465961645241444645437854040975715958572982270165958799595289843723812464007646307368433504886039078384539302441116156744300930948845945734287474695421199995862761165610089624431843530510061717162834790159627247493474027188604874145588317344281552621621650510112714803552515148482169855271047059369113549749975185862016093163841028440805853004943051798684825901585078574407231228869286287767243414364077033908232102140404276739848975720934475681979371509306850517872845958024513371109895235634467323774638211870297530103657375977528552222736425954071771605899299012474360288575553727086729800358979403292525284012732348592915682552320560523705628198895087446017280976837861023257720449246516901531261255618888033573636814316993276549420816318053285556262085334580067477722494588725056104239898672580400197596156686066422574228729760491735028378703822075774779708700492355306500742923037535389654173873554243686970424322090420614728710775166185159932461375572236860981057244920564075872941700970896688506997912738207568057294655506349195223740191910462339299269551825581509943282626880680396687762511968847158187250534361664727651428996954963021190822697535970991104543928787471320902086408130673105345033755322530938356466588085009479291393845819219241238473131830134120975551797738817435265645115681570788089152981686738793288990892091226189919505591994216430962298306968224994570453527379945623649931480106457853012415407478327912523569781735043560043119560348682635392082558682266703792779749343204774832136326857708813210619553208448231818025060957277476768015843063064644531786944958599621462512125384354542220142714707077012098244855809764204344417834043591468634560175367181815104205310669361569623200913801739898024119527278168972526166372218973676034342147666661008718340150233069497590831452236305515555439495142585747208358763673363042278310972389903753716910313873456428561254460906565264496757034026777207630582263463283588262810157551160844014235072335160489473432040892995625889640382896519303865999209788134298030781809656395475882059209955345802891344055235940472513073982049165371286263615860487141788714069886882638348585681722890816641873719051429835927601422467536920474957852902718862449368740153672346308195311391675274371623203458633225008896958107257470206277149161780412367369973542603335539265085872705388200875714594288120824720952044650019571956442134367886966285204753016016170857336062395407629132991095255599842267947447118958801219141293573800065858118168733784604755294965357222936074859118632505895706186919797925113460669656263156949309575231009868350615437904062264377956519302677635946339601029685149430332699835317263072033232918059816600344015385300411789920669044281100042050436805111558455363934804896869711096886012988192312225354013023834692243102201745854300666093017984035169968066394526923503630991207671939323760683247631005158745426114791069457634313644591226196116720220882371689238324034916340100053454904973355690943583222101545603273925746294868300803166661949692158406707941586417815621097838867816859681503039836506518624372382451882618425522240404045458838629932767863772960575143539006278827313604478407204566236070207690787272588345294708396024809766641646841357198410822286971126286128666364815545885896608580112880505245506846259756031381636497201379182296935562537049363223399272079823253838130595082268809758938039230149276732987499248896160841265155657935397044566179531576354644063173830636074747000618148896846537819941632493608066723234840083517407799842450801618731964789788876838541333034109466347354498737821424588881024711334494187677120373952717553076661312166261208261190001160516603970504959954158210513945995463617593935687558534530077404849778063906888144665328437916383646651516996987993786605365047746903546938013474563687193928321797252668799170981369118661726035523211633098708648458897307370752351985719238331154994983325742778664500162382453476745541387889278601741894700402071819882998675325853503689885266456602097337728081089035032064640603681937042721453770503634791036428801167207886053367101944597707860465521806208479437536971366095821642027270034886447049561962446081994700652031413822720904147207956320724526560666070715288858765187965154310013073167235183273026730720048079258996945022545593313528608605739122362091275785105410253152243638751974949021591407557583655105270626372437591006636282430738479075968229561815950654391123356499777349385102538777694759408607139516329733746088952202523339271551547595535931180860405739720721898926092254461480187947859995366545664503212789687698558651745782268271882466621562092643554714237756872253229577642910014784959181544310530752639451962420586432648169281424238237727340722390379325485994101401695253547317431264417086415340187014218057622565170550211180769393627595294839884189308384000383516801589700342017434621155914984457052626908535200471834490383122582642085540979528935810003283129481806179315120839154216283177481612888757026177194650470137762148560936602120849829317268248790998676219235193611605508303346987878217911880560496524691171989436192220483682139327612374334145724653134774486834191256993846466935481423443058354108866644527194303331213395226193909465382145296441355485609500680066009769148305786323702704314910728615065762992288434019156776668610257642488352158263395602744386135074981856194424685049478478591512654770666150856596268958128343601493422904049586859128587832900514293903796737811010178970501584448647935186570723176827086982955700467823002413723476901291036502100770615499738693756303708256668689825626988343845894378232982242754078599923513051312579760726741756616156653317096793444332765918405660194534009903364837130105231689087527919796728597487831241061310571940388118412257501467316610159235536981491422333098584170346042243768583185892896149603714222704529647354311265392289988361108494226448749100796755647405099879523471419052188294876836517971572348410066832131006283818843207624093507405031493477323511440245619794939329085522973037964365979224650406547533174518841292707150862005056497635323807581073921620521674451141641651943233136587088143131094624477535154544581420742304719599244599537173455156585698832396435933502178416233076409857943208060854568783642981949159440278170474158546364731302255505739202490733706945579212718640057413140477030761155251146539758453224500652606927650072460353593033924110485183798884976416779154292465517291993379522858451649870602892452261966766472288307797063628313821966915525680304404689306825031837577482689353740427585089659538540754847493091780031085603350838645831538883523021100217636149627476810052300426673772061027027637483722160483509564282393652132492310485164678302422572476863933763884213681605995634772251988742034223280824675186308979363227229307547450210962881416604328760507702310991191685906864330134438816297852405805620621613410973207340263273826244149912832625369477355157971807012324565102981047463663873501179865456227680590005441250046811297316498406818964881671658602691554737270639726297634142517186448931101626301474078834312914114686169346195494109850747986339226636819155177046907818681033979839832876494954729820758358302650111389918767292202403503099672862976862409971579040112105869769973748821815021352942888053841541749798258134731490441777305242891027378004871098920936814188909317848703201884637149370102102238558722025724373551375354323347804195903057808864031828042991209939422116682515255718457289405145400634683284417461132813884591259035488544844446534674961392895540264564763131620310209736283899928151543971473535290523171653285410634741036197089738327793762774238007529797760095741812907572672701483888666851418113138049331612315556481958192356415387336903884786735662445760420092086969901159551693879854033469627623744189560540648424267869588066911747742535581380680490997644238629987339692042019801786308846774723446344641114113836892507865380455441398742671805180080431020546902117622046545479389959405685638197793756523686950796481699753980915210144704483398020732451982151688556327570682091385387677473223167830337488888371270359856560545761122365763000131336024522873587467804809158487168006382816735736279182696816385364234309214381733666322846611037057739474801784353993996815051444422759142302943120207086837929054999977214165011188859312504119898234847225117568918919228442591172323229347009408322570270802091326816871288354870362601576567147939687583708116765359236684677303427619034591807482954000486982745067735457832183821061882165997412903582750323370282111817078327267000758118315004806472504966836353563804642614392588706707952507545980316895888429181706825762662655592239161353894242740966039493507400572474020601163526686190402701441662795789020601928180717911751757909600785288997908213287698790897125996705087899586439984623147020322754151193375329861037850660094823522666819206141906922083624237480347728858320468417081112837028934142909574685002050032852109182918224937327922941161954814713790565879689826011449231669241975502219071000760740027580643541553211979528301760772572976241837255287613254859319196749847474990107004277226921562610193292207776390196689593961076489278300897269411082926225048295696076994658674849436674692534557467727615127879938902475783065169465365787938086966714920662609377731584399007525492043879608986044951824330457386237807648471555727314540461502177779970148211796790557194123948014466161714431675036610490446561417611730569855320922570938596666692065097732215550916142240057929726298403892604847126544533772300385766326019214185448697632008065926300362521826243537438197830307418799242529693419191201556842116373726371588385957899267552035796041833395171796282045418378920682726748483286841092555681352660324051669079157192153938661133552490770124074565411572178390947890565792228533410322061130978286859493501937715842242485054172846353404897912660479884597755773157676417895849096228891822750646827384799609874223393730243163844062000831493305019944360877551812191759309786362516314376313336469061511196076239256866527581746997689213387768448240736010080931382352400245254287033591487895912185164780557737590849747284366549213654549989758203113451346399841451979640045797870477797032069721981234670144514314527917682644936765354224096695286945452547304268783122523671029369919180788796012780884887267075572309626459677938956704140315903606223888471311313204303517054773365680585459585446886152747366336735415434609482025856381074142057947282239157498144086891248996623646405527571477772441977220917192734525546601760351301177186851751100678424330790001961442728513866388099468664636639380913022458938699000348523215140010959624218112235738977413298479260387094684737849241527996862754378541832964077552427327252986536129323903027838201966014116203503797345944855813488116160241804307229842990491879260488593520526551395947191152703441383359032897106522564816698641760759119002349319148095225609750385296257685515900345380099146574773093815615223296927249181105311919291863989937572128102017562296714674414343718079175198636815581233234789666191583754818930108164023933489980395725065366491913043442653917101857233467810925421549398064854365779094753672146287546316554878392021155570099493059859632465410483440823917186153478205114354933775088847871748365958102064269346427273422860795692619872746788552051720871441853016524725029499062055507640817000213989521116212882873586171633516892279582082341291923307527999772634820317055074432376901631431412690762372293532196812807530010414404406935013867531735066734031698617378705846361325986135789249232386642921235617293633391649933366759951099783935926459216371920076306012463242309640327747135702040573363730039927670255069457697293916704102549891734151003557693142600267838782257229356024506066814882912436307014755225650415056353168406687803470824464989506278296787156553618795678594875264534011551165361742700234271064663669722886590764238532951702664045591480315352523135102355519361591199307693300397599228620976342748852384862483160891551302776935470223521818255960087222225864830804759775894587978088241637645872770150322876740667700782516557344519915076768059035411497167149793403969799855216618159636294346383521100749716723420754651037142664306142417972722884582068536600838950260208739698613743908758943680191707772160895317686812965330896655266795885346265818002145446857675634322456789854787212487104030493879792080189638309315484351022497712549557031571817727986298925397162949113141468872890159392847399869928712582666179526757229051653304572184662111040620689077473988522283198866442004462332913798696004089343751440437914710181110926326653669833356717329117744775322910600444858807579974730137361908589910746034995877178936504425502339753481443419820250104299831141393019097906631748736804990759220161626637055891598635065184447759328271661673063232468170398195945900295980430543044843523405878683037908200152545663991654353317321992425155882158775972729085601138260899109320381861063463044573915642009861311703916341135745239601757402684177843330225932618520052591350030119035946277960965293578650146204918240216807735944663653515359971459713701895327976094368288841033530053853954198648146829056121640563639012141725403814479450461882378776060264451240410694683337988765631602317438214081091858653859167699530363119079218277496407521382936275913362031244196548076807582868942227391347903228493300450364346457227914421761752714794011205473852687373505444186519999011598234999277009435814152797379864815180710946367158999522107219329506489968078180530379920796909713484378957723091540006200288911792961003458153491976618358585758834553698113163524363322850820963844706856865688274077520047578948862899854756663641215329076936885403438136790808617517119065912544977122955068195115771634621728268615202773374189612654710268746861047937254336113271687422324334921030389997042343293226214126663713623470246901702899581732267727842663298218760069567058313327966710248123216822166122321050313084043202460300590331743004723253953237752211728201339368695775041467156195137012872172640149360283863615110165100735673267104946628750993030692385291200185410214649067613201953570911162241014253677724862297441357086520721570287670553710013048678082957491438193335171534597172556879890933576132771650027078193231210147829783400350040002098744270200421486418736435650127536162848943531878189504903783566106633017967378115774470188230602719533960858282304555272435960888405097411069727834436238372760448355106955716231378088608317094348924866464953761147008789927514364600659576240480104527733061207663473191442691638788636449503817131027074421568301036661568321054832633838638138908134460708578527449225817362571427069876577001275934847196802524110153713448517535355410055915216377825833457741866334446718746950177310670494417183829258772778766888682571030023746170150199915255633355450712330095305619750185915606752682347630208749770562893044268747051824513862206157679747716101146003624868036667204087980570235178050513772102682136808541019903682315239097003697353432891556435455303612485476090174033267992852785355783035501221999037704603178145230154332297748517001953277615203616274997326722261518080077255921957203012660215236273700989750424105470649368602749651831228276990473097936958781761505357164438836554906049176573101573665500810269122641700602189518078515809048594066277281776052040236096844086165125080410602732932285183001183039717703612504720363707800854985051803616629342265631871178155974217629932140211387621448339316720767310416842005567440588491732597336609648095533621889349723725579173365556705391715340930928504525836449177131091754919814670758216807959985003529039495345086871617700890591561074513547043766379636278516286952209279893347325472199181799120961976034521412531308885785326089504207796693217694070090052585920446743683763966511628825961600900199080602467844107633017069878750960693817966741865373369127083009248776618246245132430359441221969249381535414264343071155040474979710291044613809025320039742220731344035782331346992346383537843405716011850700449575580662660099595779761285876471985276655484503451543739510473048504123901741159288863794907043564574217536023166368468616538237241386531834540302329392570553871015510620346464590334904423564690208870320844627133249340800696425932617068200049224573844989571710252120857154833667654877481673522319437571883416396644445056313230357668707894477191968471658413591145451132679715249205672181982052427060455857900609075710371007250369274492161167382343786735280664196573275821795892740022492829638904152272677011956110706820400766347630747620307767950094253767770365811924523544890240788669059828791383551531174574085116420821666007790005624858510818587165452160725878514545762397395525551595136565480786597340951785406887268963165373228489853603837856444894528701656132411547151309858235775601071799986280172584298142446796327130784483254067802410953499698347979458311304112860481124147107022812221572261666909556325101428154705208999415051041208883857801820509147091116271630833441729185081636125156910747029802267055808880626914010901996906443076534546251383119735057974802251993667941432839688912950984815224229073612535245056498450546125298024530801917601768256303378392492093798768412157854337531251285364378576128105193076258031043877711258037304615154718518136536102424471119772528321222770849521621722007388721962253680437467952768140085236766131625855554680791907949152512924973515976700144613429121970410304525427399393484072692732618860122924969168046456503846961736117887137263091184415791541342964977032395408861203237200001136454038141987272595746583387074556397409933984334021225160708894167490728383118320978350820196973519403120002424289104184050564247504673001674995945310062063453855560490330610027565829794576420037693921188987475884466105397284368608268914853739238517477242858266337862714434570136676371890496564876390246804346194219601184543358058840024169851086620413247575864496985188229191691592210307828049973992353777406405183475097142806481097237898872347592360035410330239477208617806644764938893595158753906891471206547146502566041159655403678855272599102090481520846695627595230633680028895840855583823608726651778581807722751280762006248425231130239501994145091504587843349481797844018956661514230278153865869527627057082649716431670389530965713398638378053556351752987953878803359039724245329884473261910662510702137197162594904998156861172633083332658679039354959340692806371002513714923685691431485393158011157791515479923015246655938630501657713071315658463215369418473044374022991963714307741676337819103739411685024029060472779569190107489328756817334623453733092469027701871063024115054450058181485143509907698978867625218153097025587039636981717020999997384566784806641148441199919412516083586338356463768573031125484179834270045609227840447791345552382482233159273374376724965262504372923309278778766674992323694165368485781238064514894128332697905668265116173402699241356310656214789199078293324726328748038346458872572871465126294359559759456397408857469905108709589101625810761816225484542975281889346754996505779434258266817565758966871960789618233738633218077198366224457451756704062832373835379233797338366068872851129858856365954858093490289064197022451529787001046241333624517192047845098786175817854254246374567628258973252051954166924631346274021478364895383687074712695180828264186196707219489682160153540808972682172081971585937871605626628022956952738987227574717045184980175844952007367630304383315598237344246619768524955153702044999407795685210930865512160187156991367612083241128259315000831999609875968254436984048984119578922372113236762048893441537108912410117779444608809916775859492410805542765777218086710230044146644204636700204923898574775292520355475677637962357222233297740360703267699185035591863262744318854918972747020282109955735648271928462092317819547005327947929327938990251881404701478578044053308403792608157589509126063242756293392025244257634706462549422398261529332252370398808237917928284839826572468647469899645386759825394228040539167039016005085967039235447206181151982018273897391854460020588563403874090672492185798813077637200063188504375882061489074778917817033315285844207687953333875931752870382580521521753747145235123847836119041065278693811829873417700754324918409751225625884997846613294486997926064425246366422319521479843355314055595682632705067289843177376582038645115696150909668341188057017366070477259891320024618573782670453766682175978810047597652753564711085501224697445339007621617253189171142971681291948666705244777535545077803855106318502403594635133289686348106496324582195795917947088465434733319217332827730643429201635804307138741506916897256677030036257282212804448215981045498889091621757029035142462430612024601154559624714150178694421184398063205655730618435920106177579936837419879381126894354564697191428779622245165244405224757444420773567071064788000215352264871995033935163193498714992011320922343009374401817195319691911974534646379873581399358109374326084999551790138038032434078798818527030967027870423363344880427886369752327740459544736565849462900593817169613029578201441146684567155159565531729078298765699210003314533698109874275714738660555713202617787163510837214076389250213782962160911410082080710478243554399089177148503779971443168757016222960103329648202314457479453471672747834854888823116460610640103075087865152921233148867257921938520070405981577076526819879094878624358938937695025753476618506165423155341922158692890869420621949135986051236262975697608616054657999053003349693606509095176965389319666488370005067986470311477356233205202673784885245031239829495068118388278504210178987640112345415052522151835993840439265753134459613833404570341437879897514693140664402537897884378083101103775929724520254007884742145468380701492867097188886534632598885304182617443715039820662880202412634373485248501446686835162092092400471938868822605518071003691749234936421699238621229309373185710871262114954807588575257856573790027706771350955679026596533695974442994440074788376947454880788164456338289560734172355039689145998777428442023326757823199222376708112449150457111726261252526244324752625867593625963282976085100085105333369025244931602097326276605483048926749074681251339769540773577809784606554432944643648913333496523523355059046466549833123372660006340348085275374012062398210814229483112061271385980460561431946957253443858406014739732808302930941966944059490275222092876211165584729521293261093889887864667434520411436419548432083483481129228293363405783117077796838332917110327852040789597985025598559757062376168564984856496312900062865360898168339738583862399733941973805738792899160887846882439968427985482270705880125258157975179385056872393133883062956380041912315634148205386437178263168595867677635199759728485022402610915764294789890936722573499523345654552531428978098776741899960960248821710589669333107785970801381673880263047801408256395966029204323446598892012843035769403995532100380766814618884522033605148647269263937226349257000971968726388241439690620074705701373786629401002754929874909493254368767693886383147328575270846491355044395788730640088643339373795240582604449251001630122285278630902877477267202004496325490073222923213477161541406632115576452622304339806264158659472941194184805468346462985905748501039259703507517609023721002558947482914463803312539221369374950484972177973628898944716049109517968226741753551070966786429217042656689193829254255248459068106653232024105744743139594769191952695046584456439493441494561203292144727189083422261922275983334735752616598283147108057126488439068405776924761435426852297110282805716837405373261306834527040220247687769436641731383148038863103796374787883971059616999210851835462593425947211338309146582536056768299208175975093338802135815665764469333997921494821135993558679440341959629776394902245224337671834255999424973237777794540973940548300956984200491181482281446750602830169601125135733176049343899560630478588272566525412624215992839737973227117977183304327334490886583567342618248155191285948484486628233914390237505837804324002523134571730932995398885464838357069177130659223606578830535265524674220931499264011847603400564286706665882808877458319436014754224247298232754163663345462405960355890270790653077733112971023511560151209845748415297614908812034422963075949893295204271123611636580150693751078944866126676079353476468927230939958410575273518235561006485294668641176716439053248726360223165922408089769585594967503652234876199473185412562215400872383674734736705876863955416482745445853509661840573353944091825014822372998897044878386550248025861504929144091183100163677929987900088696825780926354290459428823959742701114871601074383843717526196680452807283538238571765806338235506466364994805653688805992199393026176038301445403819643261144346151118161661087672359089021492431870434157261915020117628374593156732441944894622665453863788479277867105175039897579429263790104564830855736612964913590869397424577366360841479200979448206664537581286262103223665943183127933438870031926520850274353695359416010923815201322567443146637856118643020581290978748298874310324314503325718950162113019073921627675705101766414525431469610087715641665176283829057519887659851825742707393971407223388424621053002673728896023304946041988145682485017788275045261416963562600056882419904464379784343406903728415316879000081939091198342468674801171249522935082323957313206347967322906125982676210882629836494470927786248192042589836646560487794666654879276467430589597899542045777658434613692361538124721469970921185884428821014932853118824278230959669582670067378313438425715859834415813598420495002849630161980044328125605748852130751600556852697848688418584678840185682602589016409548046634951845755525476662922835526368318336509723000515710677775581459325363100426936719660385160079924193114072563454494386876737495157778697631648219113119027668183738059194603966646814853107983232064964165476548793183794077515143692210409174987995421679121579219238053195981833503458059478789295249832507194037328282886120484169317982966436121685813526086916702321101023226174165879030586610644705575939974663485572033969334540045808231380015906857192535238920178828317509829923322603557778609394678353716687694542807618494322490164831108226460397800722663490242948588443300276991839277498212069226245772164181991576577504623710288810533276707674189841129373988096529909888762796364500559341624426114465385124135306762249678744923750183355138605569846510519720344053449360836748424397308862125657420947254841566848587981999587634312941292789633438054110387248569270938726155667991958379714073829297863469436779566926691682407095758926233253713114479445457745174030244955840362115994626711670214901053674282834716751749906971070135044133824982312828122274541534564430978530825298236471458079079918593682824724136086918380891069207961059352754989390964260331961596282696300701731103182416120740553923127764886712533579200586161295825022276980977908136027062153157976453960264541588555759429140459051086536674312281961997144937101033699589830312308868469579945298980602040165806772111554379477843911680195620779957607783805978739214023978180034389206466546939369271368872369419355511979240297816276976641585551071078472198526119000945383912858755272016994322668147655358691417472645286489203582596624142896044934919735459523086338797372349006368800856669768680496307195673479230051073920964890972658854051094968644132895864146449575792512796331976070788164321282477893998648589816840708809031086536590680744639429784215524148591589309515502055224217572355630676678682234358610475217225330054485667804146783741227081674854453381414492465771256914495225531037405463290153310410278500760750985802908008604850317983462237632156692051028552689450995777599586548761529189433750946953715534099463557753993341759597613629255477920791227880917631262355468311752567837858501483901258539807869259646024463504572611350156225517061144331675976933324735431895098962127346197243037865823934512966822334005963306879469153543131435719055847462601551053458355596900036143487061394482595940977785994110447921834247995053234244358712844741234646962353584068756284987851100357775624154659077333748308374983998606460423712277328802264192574354125832187102314688933229990648026218076183562731361613879297730848988740636587540179772076297690813929123703269685162895538396592349863507686753940990632012131392340693926078416219968096572069470852351887941083687312018794387214949309366907706644865664876141683806077571219410933377818813065862307163065823816298321033600451880874249248235101010098970906138521707149585425216473240287278182110084929024328392185363243289949989606169546287489206529427460239506678723348406583842226601741403383024443052796990798190496619884045044994398491721217431454475847779757809285030345112227439659055424948830449080133553334933672926295865806914783364127519891693683727825705076392232108564347410760802015232615773736367239659310711866431098301386145954587838428167360027148526242989327328039683673961656003388829855994640102386593844764090656262774659791317801010648995244293646552737017840824875843138924122458748147878275062246993898407279817668057081924100230280126056840396247952399083442522445915697922511854660682060050145682651041793337340335217238863529941317224153657180401104239199706706501263479061753311104163253098880073707462867453424349142761716006387363404439816014363050391546848582527319812672128392656118094196607875633230841808928426254682169837310861171592460605131711861384616290148901993736209052993976727315253206610101642509618426923843724051062531275558254668485544467012012076150105612820760750820273405837444000881866581748814895576921016311311238269915369285338997138324845574687821879339356306262620825859991762992633895096786782492944111305180869711975262383914488584995869429949554480834983457095494568506560259435369557825590917517077273556114413347237973809613801534334661227269943676840083691270079313054085521213892040556586188251101715804834633970758940630680929727255138234163529169961505144540969202076064383659278672967003202577164881610017197773624472725677443566881060951895217373268738713459549418586156558910319021554812159026511958743509065467996049118584784219209399140183816177721640596031302528157489019522206190609462011280921088806696860852436863630651464655019827535473036947686971271692342264218912316778579935104154031150796600429772213148186265982027069456434231934822150765135065576843843651566437141861640492164848928249860607361256349465846921749270285257958492765543999863477655888386362761130094149869000314783131537443276828028642152780565617566789856840409583847807692613273313723192079258996493912727376072563032641046077366222546138164092513165410157563379649392151367131626930279532079499165360921542809301390521574655625809159251568374900101707681548465572968429499180337187167234309540430256213849463630455104270779263060120066858113803264671032245994914641385017214205623570337655467388786603515774404683988995523635417518250223228828866020808164912497817302253548508495693933876707005948139766981810950095711687493631731068414292457072425615628957830899683491493545475939198794796416697456893683146159571825587911324432468655501251896213882271628711371113710089379763550719989333403756128917719698426706417172372657715371737735204557177682218709901859115486383842901894653714718559848592485666787781319459874751351400644225793314155666601032094145551307544545302297564416165717775989585353418511592960095002831747567653233814543104086167206178682639144743082825409880443608990895324777169266423381978225087076834490123424517013418683314946754863333393719676676380688334839947177409595958402529570100373880913521196618145313484394988590753219562274590888686876814739105225515164724946261699981452719341438855433656173724472936391059877826119027204950750327382685102665070794120104013944030976433582835251326185969757254033123862965874251769204772101948598232614535744290321201040302010724374838543000225250840810380683595321565593673837732307985713479478295619517129192642518004627445807845617585863550717428651782586701901938498953569441989732829959845237062245251050980650310221861954198011579779243565372516652668987643485166144047953679957973058308823641188965414500301939932988110695667767240370560113714506745750266721145974257791700405520872964096533299780964765038332932948190220306002481097605840508619574002923648904022714379208279606587038357503857925083917027464621325504310411328425010525704780538352067231524569203376680088876940806541452826720300608078327327905004855794988783479497611805011884718624801192492340371276884175650165680109341415977400844017836158158842243927536288528795498901347780328182440565726755533021641053954545651195408550297684622825241120610972093146826046328328545890303646847028812021367379740143360930629828589870067761195482991572716843517664971544624754913167226312080935615275470461973130980167026006775397210704894761706246550268184555711704471387763258817789396165161334773740817790018306867266571879245484254195636232021105440814537372718577936451297981800627670664513544350213033207972866767640149828124400049706844320351234309295935617076401438537607540879279576013229393539407424792331611464470809544366240092771819546608938108445431130334665911738931320059828697489537796511522095190646886834183546139815615788644118587886853696684224291235796062073844854562803487654969047569932419636089670822939699862538951502319688057496488693081143717108962483215314013874185539613433316638809080001457182964397960656498183189254929153583667184262453645250969818549919525442309317379693769661374326860854937861364607355087338638058769842465681734144019587738095248067132777437656341976407223184425902958129161181612686100175008936062265140527565562866224409204481811571612758710420795609702897103206371348123282849535410032800916122667175418194675183282677110907073532246462208652502609980455981831061936344911145433630681053029242408161776832770427931767597656680456246836700216475088420413347326800251071836530100380166118529552751325700903986076353460483796420692963527974817682112759881334792743119640190329841771953141420016092275816381839368942444436046715827237029774005426542617069135449371684301716540756388962132776905226958833917047580575029339166940686049986085340513059256369239706299407697952038360706738591358396380417478547747570062341095839923327798820990993528290135686394805593337130953750886608929189811560454950120161459716329969145173538230143798103083636331475768216836344773212256479741527295087626343856391851590090808983687248751517700388060717551156224456464065179279372231244631960073411555548459351559863887878343156967357244096466497276394899407090277936745156451128149907901556114241133253945894686075424007929602315956334257500539426103008543070329863031332389196402038243634214227926595778316381264680110748321337810719826615992635266372836384025875638972193252759996864453980761687606742830126263481268428346671291469673478846404883137715325063716463992785050724379443137196082127009319371684994809234356748364002951457366089784444342271577734632231626652323239610957751795352922691279888607709816386412686514402354854868397469367938186276096314007715714477542499985415281863345188194170197744396290427268595381743746481843947762047112026342614446987057868938681689839591430954898874118753487847003221287020767760467568586451121991626647313304121298632197412214826400701659672125935537757077820566464409028261859503614048047388219037370737244813296513720959357197719727767101272622978040506866584247199378368207785844747418556660744474413544787839922352300853507585888028943995309376737333341682729176712119858927946394883991559709836550416881532166026745778035456846016775109174735144199685397830125123608662370750877652510903692416508557328992696288199554947150692312380542366703961189193712128994273418009092935844777800333077767535041131202465129589258167534816842501634696394564533402567651513028406546841913205572885097725559913605579331697631642956441112435867881633909055424275805250559343579019788418577284673130823753398065061382290685227590714574874498971416520477750085805490652927889872233260641265116833579423442991911088196497731085231150645427308352950052574250201191121209620373108809145695146862566784493736400253669715015974862045113440234676135815447376090170663130620280830222148772398481963026524896275599018004526904190990544049000360233194463500199501900308342311519393813812285655616395458158701976313001919866048716314263292171878748970911614853424533501123611755902704429692400306976025366558390921224476628351680236223030604324401059450098012864897182972518881622288018852878733235238651437795859817976750939924796414543027526705664034017071029947638651111232490430863801559133975018852918127292878862326916944824257088616971846370506351839761027862780134215893078985414907676867309809335362597289645205207671057233653733889960179690130453710201268499831498483015442228908994017410654843227314015200485643873356709891885015872308682574851077829001979159917565824110674911498737785209420841978900544787960213888415013216433101027645768554477480136758630291898364289582412886153784190385596801763788093973940136025965223084840145978497591708102603522168541312918888770287943795111263786426592905548212445209401751485360499521704727939968372228769632167808179313095252965468332215645493704084320423873348520676312371316796725705491806488304934235360100698377389121733590684534983022128175024022068558414818349475513033143774957810374587426310552481171186113679997040358478989329096321524944544428823651683929935582863625251642502902685358732440707135109705246614949291104852117112997968411729931007794863002235426124287504736919969509744271461201290950804551721848664977292630778939616066294051332132049265111526305253287090483300156845736137775458922165102868166454047227440956241059635571660191179578354830157110444639610664294335690504494361695546241144945211745911658580560024654539450246163249634934117932828386155206641429203697909283730067759471245804802858718925268171486523245075642175366494762264645699033806718879710690918961169834454174984959717285708130982579310050731089557775350116214473037094859311105306082973794688261140529728854467199086970270066543966240882888663481895103846844846146009625142997304611343066487163745526024414497780235031173487211263207871281250256456822205777870593514723875609183607731156943750762218884715291314835207985221835576037493725735413286083424390270912910200181839435773343904298498434911445269084111156515164935121768951595287419785411616406169917447466583142348276930067171015892609513604486981878807975954737030557707503456679225668927874954457952478052443872787326207888830462384815833261538304942584079308664059091845586847974818413609364671056294924687421856286439304587250743628851657283377085810164001160930781255810928764638356019383046965860471666675619782798323911059276364465893751974029841207426929103339157665246679610749582902364709906062988885269901440582422466413035757519592055505111877586005009147681143636210161023489220716842894045296389596538137811702950333977445707918222470689559691035400972280053964882769415687988287660303169258652798103333200194582355766533559451607257176288597760068651558467477422879954659667970434620794071258220945328178651422292422468926333106466352743856699208910347606642438481340475044832587979847454015252976727101428724500985696406732295719637214097532250182376838060259545368942030144656652389951584290310088383973085331697592397040944188926078246210532912688683368611419789949945282426698373331375157635493737597601905642465807719903596365610655250573142130141860579558656378468401036824437491155905655243020316085833371567850821880206550429538724615717855413923658355867032722676845560703430445568967479515372103538160177008710484129348782851885040347622085245173909199936685478127164381292396824100456602831862982541697540163373814089978499373090664733184594898207253322194062284342524365683927422939387865489689506486782163357894991244248015313289983554019556646858290785089649659468719497060690477790720588972264499228996962355541559427854710796745640510162550899710049582347537933318065304380165437546428962705888584152985783650281001466426666190166497072800538992400153064095385337380435869176180855496916494429101133089692864716453729863932293323961344288657653502917783472122535010539714105808251084022572752379370270427971234986378728273270314292349553428124448557632478709749739906627478894530607475069929929592709162409267874818032484823625051726659696412782814770884776420327661562542484052492811429573993756433981986335035934526278114155441046361794670209392123949711350738763774936891869942296248038066793614089586840189084879727138115222542893498404605533762558071883511347187800851085826811762893507638696262078967038074385863646889667489538427916100048349750430958945829566899190207762154426042082696816079956110415527314704710661129031317370340765490614019164788414737100752957303373512007005539922449728361944643278370915026904882409593172868421627554447425695732227710929296597456083050983902260298891446496468535884871508103300466808978695493983910829123283307770259146042699831277139294158774648804009764098550093914093365245110580838591645346665673920118617199835071226516105090257909563882392815592267424223537944377416164628780054801279654811967948592633363734525303617288146041196413525332959475670449856416075989374916319302330463688948286796743430062982699096083544935660483913718806147471366067245277093951689262455187616398452196514242808198584542172373987828490597323162226129338156370211316467319952625939768590025664379969472490841971682212102758240910765628183436767735521508853258024935559564873880769711842942047258923237667412160709165044898990730551257965816676592201674792790966261663374242426866571589710103201823311361147968194482106667079538622285151372271526997613500708100920333379669332615408260063882673383751163545449758746208664319314804961270228419467340460321278583373756279336713025770563997216373985417038878089237511311437919671130476691657281408905677154401371078382019936355407404619476104617976230297481400925174656557691621591874223427573590907059552249377051601199351027720163502823833816813432876412634114699801972761892671985548216624309712061202378015269279259095748173870943357483550427172568145116193559138073895497944394824496547256470894432044499840631610024159807100831636930041434773039721131585893069087712952249859977993952280609393342374199242134154715652970389677552908346401514560809019785359820550821270327236379804200128329674476830327599721746228803464198512824435322383502673645531574017662392927876990708596719727989049690176221667624098168309176199059187199841571491410259072908330934852492672383437373048714508585324018160873091715269356033338444215188486399517125396399484386573691008373434673312346897094132819325016001397386861319239331357100595900191852898067071010340797021423563053299149761944639061249656381559222030357087220268640479490345613421947810753311120775861284936202252575703085036998597600908499506547006796517519391748974963751987147741559374103078056940142686048442121461989832347718407034093610070398313001943174563508420291128604331809538898755411740993747863568244308662943005869564124661033265476983555957888486607566614807398917576997998027405941440276608019695703150375860303087815191027215275763063564318173614168981255397640672142355027197103004924336402789381612871234147116528463923238929888499796330280946387758001567503926374512452842839802587554965091793233039472681167201070923136215917501676681567252313297020894666597659659711502014074295123251465184605018688758024532574427086210362120143218855736239448267664233169500278100675067535988638073666869359431565211194879602493731088238790454927739603830041867667863412738480260554005120105716598474884674972416387264380897136064446850573039426099710405031647950874693484133157821340135278702258343496259921697489702527267825513586774940837818174262038169453700103394089288023162859936486988465158098632812061706049233966040493994751662333673772151069284977962616614641431672041566142557304148514663621442538142395774075477585362570880886345068682842510603610012300838492765718009143763040918915670068342494857848684255371037483633229113529062434187032556103935809224499991312776702969369601032699024700956785345202886742319426371981308712272372556190908380863253330938553811361518013600742979408471282313075807926304663847480949896947609161834250454086413099423585759901110544716970630143283775164464249589960165534628071263974620301564800776986665465256608332103719721598752364221344734690741278863678695039527570070568072306526509250296467443887039256176779922944482061703939279710115471321588407888920241080145546591932095196597151664826901076577407496115220044672067578417300288420894956639905202126754826525675444927326191372271697563725603456520580443966493463807558369201826693719537073937413389603247083394631876501975618763314850404112510794909929386244144495858364192965502577403005618616930291404026326345266389575459102716504300923976563616487573144126076726431194112263924743229335347035431201715689730123793786602927382652297433986626747490401022142181970885721630848782317271475725737821644951144363676225672744108994880148152920601395270430793619916963063406158510055772518176887640295852169793036296320924305627559732754355762434363533788070573676076751757237509494305749425349655492553454436849889120313528232088423288734874648905167655012876007849112877660875376918847178060409574794714280880829804965553279141485524244008519599388031144118293823497775213722120920036114438716144871863978942736325624225180260098761356168090000661182642646251498860732980090752831666238607738804912148005543304196657698355903424528461459427521936009247063701848239146931380594764868169288827342926659001530562221808848210719546385077323451411481094280326650712032725436655061903469488158757668954747465845080719084326921541455930886982191982932521681711541737275397596946807134367560554598559652524339771892385040725522832736925216016274059861492686180530854528444025711671058514510293105740732037176781806007525413240357614806270420309442685994020847593812150014590769622994948120642692810099787999905584454310418364475499624414146507435373603526905933372090672145934023598301299348222962817823984616401544185138478528017357923797706269853637122538678482443563927423908667291456937523264725072415712326343528575315780948207982303822163209870081586799724758698772924964609657465570134496188740360110633809856829480650765774758037420838494055700109626430943634903149977677306928582849025503941324787445343166492431996825166504775687863676234371673673687892053447975766698805717004137144338248964200671529835471810081657511431650657127359144738224767352532303752108454288918455681957669935475519281500791183646000266755252598447702554703556999907446431602242226426986062607894705123679123901356659402112182646779076882161142765659419892756295960984385455889331156886295442606156639862745470626427703786897245488178948806925714177912406547546348873315822336671408097252729712716186790447816427193882550651044180303470041528260434645177006285106842444842192590591737274474345378322857310510757588032271955069512260699880965785928887069178557109201227777208682798047883966437402007241421373523857914485383580909882277412841190966050990415627745684007410550138110644716908243608490679294129565621935750655139595544478251414037187909103922714511897625967809557303849775040142729341437362299378489102001331682850546133964282840179852357267164855118188488037861251732233345843478334679773067578211959664254689687355032400279812453512515913136943324207332358728753755259632602237478166945962720529574687921779342795590054908584456754376427707583237013348623476056013604456277074126470670568723353328839258491651093479431233853455938420133497107196142317871503246070719776272190841820381368485018564400426136705423913381652552478463455831232669671359653548095977603522138633473750385118803756840645360920566614974968809561341331620861790112285739376489829150166198239139578376816332891381174226864142765407607741741261084845676378929659702698273945514591794409901725715086436578339711026303874848955163541839504960718392033252800633577886947904678256874571752063761795456105720546282947116439418804305960818754865611157574558935228477082157419108227044440593423174959820414417657491670990616476946226080063680129489931073124488835193060522898504111856226038229342987492103198249237037605395152390492482297838103834696665897782683562020958326936590093473303243581018042694418492274287307159841609507673265025467886585342316565339944108303426643231922780484029004100727219523249172673868347889211265506869326247957819881532940943331674630201431308806439136440181252514723895612188573223631927369800855630682905582287414374930335378361446740905489590301789730921922319773848885517754686601379291177831786796681146492019811663719739953208763882830723649268848892628828858497944445306151582237253519737645876968438529182929120764122344523413109106552631509826271662744762581623240550797749665161005337520063929035645561572091917001530023462692629123969773348833727797302014910863030450546171641829661376463624055944361953474524296024457664663890502148649902476382144424029568069686458567680920862457192461417395319825885056895361163318112005181641110381122232069902579226069448230890037940751762319771341638970930333764481317051225106453177447569015707276195167488916666496131275613824438480795075477443389142381002441241915797265809776657831721432670542717448792478559358267256476750180907032442979092608698435788193831406297428185449752625270794644564054344510420197299144208675216973345048359253849042871849873021287849311792865660097991505151886917914353467748987910785855824632148402661118466691280805999294786738321938874279802695014231261218996445223594050639899303986122181559795178617370968563802656535996960512866091290448874098625892037349823580344445014324920453073963865590283574193930776465327693739357720962545141822495113383495448219863924512704070344775922205740408395471219138843624017223106669094798932008510475959610858582958973732575721976507079411138166382134909923266859096268217822448460289532977048296065735713470394976614305323576045544567452984362249212145641201282345461098357345232315530913377497497230006838135845425976580445196521400859465231713210640098421185964904767779103058395398338517549416366636687753853368334343973156547895665022127211471415241988662241503701937730228746632779107865123576907155070393859120993005317925511199545615857068606425960720363675065344822554578186288160341249761369856554210479341769011375343198193411302236261720749312620003280555104632780923136564038718140873286120203832445303086711882622793976820111204299477676935992861097931264790772239780788573957810694237464888338369849305754601427561647131740517865716744020628845789547404862932434040220684427913181865655205412149293167589269719631128482505234137208397060021424455326523461984480382321532582474723496429373472530040081770748566633697680610552254100280921909327242118529169872144664284567646572097267477836740396553798046582557531191976313186076985705428625561808864938666870928003662247762003321707901800796804369007956428822171840699137520267350339764296763368698610611668727993822588522482036618519688538840321158646780452159645908805207536826888976657526072634507836278659179654032859641220989885335569732397508875585250303625573800373771742058907276845724269531119594811040244846388768253676379853563102849038153662658518092026801327556196721601754863030610485071870453758498060659890714326207385881942094468138970198978866932464021165672940602881399743623804822294018413063653019502122785929521467645915273369602274742298379698520906011347457853952218274402657237239378181309333658466283901002071008938945336060682792217218489115472580215886607150249586330851882640232657462146350366980735282975957014322708149533367374640558474564482196180895685348497820891158393415814384972810416752489974396841892880549596951198780361341080329324840300800756474723141739586540478997990893558430273920464974122429394787108702769002984643109659146951002998463915313045944340710461160829751506876611535706648584068878589135547589546098415347462187288043096665060830521487500460740578330864522923463897083135579909629538673535425036396858116327291585903126048505519858308399858350537023817009899395507335201977365141319571483577615463192321204589635272410520141906613463678447018897844951509164347686713390502273661897262419474424046125244717834340177207529236207807598416048614698082009116400654852517009135004199301901377591033222715825245751394519678164904114285707656959541197580617519521752788793986778398644704850403906342773889904148762105607706016778503012242074430316536543481722083586874709987700095677566600752787111838175147480525582549393077032971975982883573086728438077106512711289683572022751362990673505742491641109851167050105318870536769781740521893890648507688421485608891797737256542085516147281733048781194478832218653766835172039687288623120203565085643005988614107530061006384981989952013907848473976073511052335446422338449703248996049686060650374132701167765419614239198434379799314771743670277489196063979481098951851706164981371571371911764601960433790381362537604371829992521887784986760340974325064848489020406158573943494655729249479326861447694428784272366412931549259586756251254882589012743652728088034972449214999622448463358999832011836283976607434905010370362861593768458391062276482250775210253471005652297595711001357580001668230915188799846704012458409925237845344815974430091739605354580123329412017976989808691286953618552370316102921633149017670685558605547912473480814555320320138599065021321209606976516659875302415955117045311780213027532494888688501678019618339188474631253951365257223676729325894194107682402873751124816566459537213884029889790705091987337072499716929282231152077254672400406076072971552956666152285877636973607748285354364007431163024408130225901321096120640983069670178450398650625912649875989850319867911456793846536816452819718664913010157537717943718864630737816236410596546764679039964352424548865142222548436484531843845037052060059528498854883619335268594710536950652057136541187011076397840564899460564029276399188546361876426538776541665031942691485106990667236406736808365172062784310331346318292910203179158098396948677624778326730487147358766539826745635403521554829322030948692072008123443872984718695903952250704379750816862023006094676869008888308307381997416284263979800029116413855801348693544533214291837091346088089081181845299793263045023426467082053140847770850263243133721452648401287373925467401969515635268684693373266822925201561389962733784858940994106288655017355147478674048554370940373735990999443112846420279876774980319877773138423652965155116050988025837027471070143740396594393069251210398030152209802927081560644855659794824742557730858639804478753037452697209727392855974566801942275875586764353946916220534832812814621913975594132166984154496157696729155797442784387393653195328777937138772874579238588423126222691677439054034962963872600549893714700806962265396253279670004076354546102096011172867767074509805987338698848974934252350073577141934695743020636612180628262549106346677441126304273620087745847375378039854620873163594416738106847029422343725051952315636500739056876762034743920068382260163240486508659528061043943362701330768249504092426723379484087445985299828212922934231316288836075681806121799904538689907297659277769936539079175905747857228541735452424753208963128172509101705019999673389775600078616849365021848941057689618479963475752965143239656766239661914847688351930897464476445475799013388824605132984879709938950085217837743712596909759059830146925621491997294197669142139302240970764605135402654947091980210191102558964288689067496798230494790725679912952696079183472364621243905686332732117549406016756695218249347169621037201639112566320362901179003911973059473468800007708886212190948213729330057994209924537815925068484858881646676555282729584140210096611029382908158257056061043886405753547233290131969883702067207407902916848787096427889612520030285045848085788370331997897566833654160441596881746936806459749081305857269359776068615146228661933972843587117702008776406641199116412528749205855026852030491336090511817235200761801502101296234591545553242107259385117261513725195898074816783370868525007752036202076977661825644294298265162900708278137937404798824415419196913702205973419932382524211076681704337787819038884470510485116884116843553218271210070603339470845832010480054247980408950840560507314045645820382124483003829872068914987686824840421107516832568327675541779919307820952587480747502258670680868577408554778177141577442405239012183949640510204843969960746578492193252800577788358737209111457773802754475733448078947391636264501746504031692729713982038679595678716063397989776532337366991937740920296586512022672850244841954848097853983953725355952549641838838681345237533319731375013739881478227402531813604454512920866384903550991783287668480726349965115926439281443085704127620896640571455951650202002997837172817247020334068580036140762620066921565382879276408244291409092206572465728776100956472489910846406614068765405565337166493297368019437956314112234604438351193687576850702948064124821631519563462807181727079071910723825511612603731054531204690528815672660962347418935895608417634580738141030309340334825961500348226762106880132743314579729034274005944284765744060064759447699764091829991530980640603025957234350462917146876101778406190438366699495278576342870629706585027794789513274269134032032077519507014837974114237309120753510281416368541700658652161250656025789607518402753735123516267251927468736907293837925217533561267068943190449957932616054302618352568927525992482313353522550306453473901124007624181424151717790994349947312246733143013323143583134613354342606472294553696836901567104676985601438062449181799545551398892996095900690679696272836334148540037581054094338919704956499303936615648315653515002856460757669880799540593029457878552801401831850878062602606192540863940793738435960368086209947118423537515302790005381691250379098027497612096667881326181053935569624647572471557361611933179564224630689022737801114794155293501521038430283587499473545749683282408763246563487156970823572074317210776964122396998986758238171410884480968599470199552337871557960907119659748221790037782791230753885716559673353996284906955579154145179150543923795208165776649101724776097333585401277923025123451567641433828563910286254564405922411734808331756676659999045509074704442091232431889551209753530199263901135069691647449921342978417245344360519628061382494570523110808001255827943419897364230149634466850074280573724591479783563743115488200539013140343824058670168054383990884732840589895632021204992284981090663220712743437761086038708521084367823076551326397256233529411082118851700718079834647929147921890425041070645594932737775628662248991187598353242421183372052100216576387244654739026275939172899697903402807431899414892511109450327278182598142231763158202900452442690593056850297305432019276542755874421071023142302376515523256144462377508099766629110798048990569141707899435158474184648287949376932092640577791439492572826855445083211802395761892157427970795831013474580178841473004063186993727440252793113673020749274756453239575003564664539629281382740956687795870782432321708943724360016443963036010531818146534784249503991491826597742436319403511660366376603729383159225800160427108120878864740705326589889599713518066083921206570261931293944644863639619213987297249421297473365172868211626828851300042156580843486060078357138843258575720092156142052942127601339314216551620672865173397065519742782679934679317276473405174848991241632300819315108733648076720015979780653951378656497511168904683094753251825444866336046994928765067067891015183428255512092409864302297849619772403979443354076459093936091864421284976467048456123181506566266535325533746995051393427517531763461991809834784138555117694288034192832916965890822230084438915139202168640750977762732712724306141164875811056613535631113887954802849696488329293039750721957269515187062908552508734759065980916244003595736753910785653350658113730573488917175078131427125601327837612228405843510463566314137819958542502880313842475620350994290831639549508131480741825713896244604486537662193106104657442271072795512240223840613292188515948082795516936743682559106396800753999009896094804808104670494596870901722566562996852336565438817745930967476050308532813105150471221712266709138592802751474367101307461952839385973272133522157509652858977712344939924201717589994535117315893199687525136527923216382140771603239345988013863038493817997739098077281000541137759387439459003192166005364913665121281989086374372582339932105250486452802707688102479220790711399811513968679839389885424683206383680131934128763754683558998979483541583242512090680714227460129618671060503607436463933725367731845065269428707166316874583227291040472646802110676563346495761317114723790717032086146739125489573260556115350925574544971037555067885734096970807315871997108040410610013376100202628572539709534770805543731910784816520045343953902628803057796443044509480555321431457606446249655272085010334935578410167006737889880299963777190739207990194880432773174464700718758692315395594683108638414120626620311789866839554461664552608784278843560266247327161219479766201804076318656523047286977378979887566780152103459264188671043557304875088145888364571614920774716297445394890871787868141321232963164142271786913421321558008767543994802347911577810379674568079771049809711819134461595243819561365174460122846563963937902261397522349691027382947201654375182855797715363471872458151966390498823158535120719683699264783450189392203715224390241491801127292011285238240996795866890526833531624896698977824916388894039907272346745280827636073957074811785482931713217514796942688210160114022437940523732755180372184939694805171975719629146582555392683893902877696059148464885517313949701318123831949722951365090747337458532668124082100821893698993303409258742265691695206895558371312604610269605981749295294906002429691273302132959069944158940681402596128832222349148287798066993197184000228859724843419056721334302329611715232832257201635353703137794851996885665191603279889798717536139626608372525870069763806787957566741758635694552959499404212863294048464971830633150272635579006481339276224407334272354810709838923955069088835685588186268637179857908670082484001198825064579029156080872825273807810246187076727227010818358810675504347606291558100315130555881550638161793994910679858603103398007931580293410753976170859841222962590315303389426914164221575325466394534667574885334464503194711762244674224047213560145539189650040770421602790062906755186320909394604642784015890035829035250298725318977218758102804481471626718989136938852384759593731886867839715382243561386060766222606558662495270250780754299530172511634799423731769356048780301776127163065533219618342300440257524008477323424640676277793958705194697274998859728841087593996370699073379336420657654198912135991609423751402663681030809230139569955664488087076399094263464235306768523457241996815041540210460558570258361022917568401374519121229712300609230554956478347460062515558668946303027241353202651647242695584745667092251079919528926078759859543355313738504455717751214939188121791982888074159094007053623548476603795595536523327671491621230711919487862974874419691540515072411176429305602437694161915201058498070428506600581127734355240017259782102378327715810302567160440683303539628164951188748657886276032003857147013359672295513612425721705375819050077824954622588026832476477436069835738887358965178839238193703910425356083339648442852995159427770581645630908623613231780612804836999009245085687601809079340246038378805280115000340886128709176314455297530794473534863226026067120681148584330077131772096941041360774270189365191994860330492006081523625120301334469631218947424774381560045540446303791395761993301598422276412504606555566461370449607247212268555807190542641249868851232799185809118131580809456923438232025924363832382821162913694923018039077750643325116536407431497543304250102660894443356596285849436492825313386868643051625642605118451617615290697393397835769135016093971828540759247356647213558707518496083630714286105946043853500656562193955155792638942822078767312058998149699761703364849910567206840571943600044239088250600377787620370280022733365088022179200143074459878165184911214189600445593735145144747141566719151208634508462470452479720380766365186798556848821458412211085101863712169196435980916935617431018471520256014088399731324170534752819609666188961224626353891548334774529386029695258863129436146303004381380603728344989658046752141506411876940941833233139047664168756483303772316776088612873534982627632255872063132672042372731915361319101827300923579509811895054639863424434498282045961043018823964054033581124693338695020863757800478626172601310257067049714449691531066171216653733456423247632143347609834315393335626668743733330561149773608614250832641428022663264723881064907690802121496104101977960547700586524230744669894788060725126362395066846576983842569656521298853198155313683964234538950066123026617379754011623163845736740379954427074391295428438860639699139840496592581632075903866863156237317319042661728101626396539086184610360143238994203935280927968586375611643954733726311661741969028481252791559984996809010783047666729121841643783552727721197409527035474023662304291603186749903311441997099965997988544001913274318137306948811297368695708224698305239807766623520934647678676845445461275459950008688743707765000174697652584120007035926819308476155711910170731989391346056276557987350599932030343580298919421433290631056205490432280001784559399745403367209468743130807235950514703949301605877597225605598367297701530298576906750308858142457058567054818975760155253089409415535198372642971834008035263892075977628320843416482585221025607326000720357336520607947076791622156641244893301592633660528675669683006819671653543654675626665016226884557780338823145845134074922368078056534398201705720446040741965892028187691531670947174672342758809608505226295042902885063257971864731926616875287788030206519942955597966810079477025194452869460663792510703165863641610288097972647000471026306750428183651425126133620914075379800617988800472176681734540760903503819012141492029456222089445940261592582768454016708845582088373301516546212766742080770907836178878423002243419184274272268657389732256559273615052243208547639318610921130065947585418353902868569227751843508973970585288294013664686604943651218439514203399180986339512487837239319277741032685776421862406524147845173218681082643705910749793264906749451376236207150610058639483902241420998888484114931180944471521628985892696599064120993585330075951287464756224830192577341953502536127444805713373371061403440797581913770711531357168835486962676071995750392013503219181153721671187983732742031667722262450065815324084670047507625628501029538604391912491724446960583932570454106680420445837446566705195942946577272005933960439716885671270872841791925878356805525146292984397047099715143985015375613627769615203108280829508125169018637847853194434042114438189120671035144818719947262476315850799886049826759756414951090473147574794210837652660165211819704574978054047272186689998274621766780651419372468716253813520551224421362838572386860409721659127810968800633636120888671023714815842467009342673742437070143380309976901941834346059690874932655137844824129172382830088887993017254328962213643280237861013856643427733157318970266696195019702162976077115888863062633475125610038668970797386028761717011535389989455061059383453783257436657649385849587273259405198237415144371653462144201170297497988810695309436361292218946503988321742092681557839944665735604409365772232546869958428854750792380989382407199029888040323085288834774378724067421862866926287934768519486020119295872359604149587325492420202966656132941342374083238957504376954618387494750277151969874222551463745585612697170207500289001390245257612558719203316792571592125664002020709750197390817001787365606079108769221603627032612888135820551405556193880854062674171650051717143773013177914839233947090986642746039662574790403090072675958489357626056460059244525828098891278933498327179791032259662628283332162577926300155840882963959518700792496337090110806981219493048065402720887673871401080311318388336358555137512951791000913768196407930280593012321910684370376398341007450346005145396170266178521660304955504854295683177928348926910274564524055044320947591483962469315889971078545179379105544515900260723593290005627526097289505095351396145968647589057177201215820734500682854435010289509160593589071427218366868293111416167766669242010622263844779601388233830570616964068196571776595775586293165289274135388812031759095707708524787295393702342198549124381835436168985360558398402650741725729780046113249353790266949304317346348121191133545041503050441524758329971236764293015593677948187611972352166077027436786279422031821750046394950459897180141985221457959498010400646086482495113409491002423272328176538304169916855964192407336390963113602086697337625139449487004167246757774555503249347193711766573375739211275980236672297374474282858005708186753819213693883526238737349820999064488815267596946348659505234038204848040320647906000739653962733637734443488840293950699704893686231836028418576839663035065729692482460217500967542900450457041634546651165933295390170009096879890801621424709272664743821138863672213867642192081292037960304334075121673112225907894524683215755794163727285607789277678524666671858642929972105470528099896731431143501918866151586355730538204369834877121208171141676535570348315147084212671220850511817700187827240248814964888397645531444078137266911327203873679263256362113362887064177078846394338059332471019273288165739294615128086208972319608864869459358302776473694676021220372853729031451406312486490535553048645102540914969709356194269346201836927893967147586554629589940749711490193515873231574639354903658165134929158014057444022727609180581946698615752003695260542143196831464211138469525940374203492592710849204346507187223908257825143576500997851949992651975865872403766515012632287473283174516491869603734305479112079053955773003947956335625175693317057145911523257414671822028976552358911793734082573179648042725107759546599569200949668683844940909645083007080709427203283521576477589856388906838047283547454664906052805767409927806605745943738686500113782878229240512184528815815729821238094247479612447094290164215277810052478280095828908740289776356937921764576571469022185474439245909659011321787232328888018110047211655199383254352190595369232660712028694911422478788678113774262896158959296005365470440212407222465481526860417773432903366978216552904006377575614662326918855654652350944004686936715598267260021901487368289621063071601035459539854729276140046007302117952628499363542457837145058507814639861786635866762578578497278294961262585567600106240650867364993838671639489602509357610175536967720062381357554901573756737911912748558272043599532404729085623336326062782501591760128887661841751957867975777429711525222368568475533476098837535240765409548454771089421495660396722311777739145731719128811393393937489360499084575056463459694458582625945547631008386837659364209039450809400985260691230209936142827168248592094076334760043596942594184292083206140799654059913665603017172054531919680946234093336493735224821012092101400280519144243293895126589417819035055538045433408102058729987874067649626091116954182781865982925943597365718600912331212054813758129603844770673621800408432289420566830420410247813361264804668018994068648014855060199560265005452762859520552834803274781146444286877027555625859991643129124583488946214806517234291611590183458221508106259396694790497088441279366480260672893004653282490475939298790988554759896315001073639705499790633257355900569137172241292277509502591595447302899915062566004740316713221620821499099069177581047403492481757930671540966389558001697757983290317361073759162997403555734988051759537890449132315281914767582449621354215288051253435556576171066821380046325304163946018499052742236609731048214736914976069716562954627221009826914197944182189019442406312836238751209398290089824420845756935333860673943348676685074227706146632074026743615333017305020360329543391058033982669975505712825580536406866705460251109090469798425447337873309317690250210161638289811031177789942534708446530346430667122148637474617833339945839423162709275882675923402854527584295539143074359108546087743936630341338746499199563524237037400516828099303825986024230628408176195670004909337776035469830106088659104848448685271680388718934167145567452274465208195401416859550256987779321898547952843912277739699327615758577181710019336183742956719606803552682949151570280715390730986262558438606825042439871042829879863010948070992025816238973060873892456451145367969842914907454859850159822421888596984541240753920917141452187028910607081231699391950783045227517976632472071875122627048110844081739598572034739253866016360364875284965248104273479237974202847946132307396803143979357161752142028061140298925533172248362537258958448192477665557770353006479881067602129573111811256333351451731855761412114325882022479328331262744719917106045090364343480375984684433724466284761068453196985523671794749255630828387965046270164104282065567955880294873348165936443580685887541071570835833312596525719784070567226513615666545628276632091452335449636418934259607420364851606648356994432961290736758046728929760615213272630608473045839702028926185241994928994822256303406262443158320445300746123606713300516131331683579016618740695164046606858982455946130780892601132443892942989538139630386818697147995820161772449719765504347545970366011248779419933158229755434877151636826424518325724473328376322751935741975857746191691115399135487863850963288847321721428202285542159550425791288362436736438141226373283464854812842874462920694611051564667231405563120033973864790427092473865770895247114021676690371926592794859977909749083980429572812736581445301141347256050975334196821862873380619892633759919371076007349651315472982173328089378218647734253172814769539624328711035797683321113150686637999926682685914279865843352911008070236196236509960826965131200366171552675626958376574977942067021727699059840645569342219173543563326577454024890333725163131816420910877019180350229045559319257646023537874780059603038278440656025434409326106037090396101318416813156427246412354405064094974371324049138972076103557475450497171297398963068011217457867593029981522448800818238342322583926122218728177367381917763212483015971811401767746026504653038623824661613617670360989906460399687651653651102347762787964952159828003465664271836638193873369470020427089497710645399370899606710714812221829600981786457536808653466496075517982839868925343041831150441194510205843252464937516089954840830075035296316429169527215907330983236137957688292701873197380506529222511921437555927578084496575185715118606251785973695291306034581613030352933941509513551128226188799244049373237255244106298304162959461614582280762941007170057569803519283471014128511809779147125724289315505115515176549027757199734878955540614355547602173089041327366566553224560642468055973767220175258629300830815442020165034996068840353174636595336605222234823323239107210103182766793601099861612061227970530559627461507742835627910056867159597004408672699247666848249931496238709335748100959516912488391781797023972651796235930318089268249362692794743503559289040560908619700328809760551513721474743052403056106702656818830463935060816393821127810726271131099162369929009760965453326234301163768661012316551837051580090052337678607617548099199632634428980659544300704360865747832485906120817171158809911724423577743994583992353554535816178267879300146386297898362580820677395189540944932132758270661850638610366457156693525397094272676094501945680046456062159594543513249294911090384213113271689644724289899444827780653652809412153638751105419341717950773851439333915377699065806141872191218160272069058073190979023267345146030120496706978213555929143478117729794635060110722028287431805225835619319635816129622709144465726524422765175741205436288074943181290939145500029850586567290633482782958484544910325031956248147540450906383757019041932165036196157806428063126115904600072640739055020887578763570006100289901999545629093836328762943171724169298475783466685410184663463908856072237723857665772764826137425179914830062724401809960831843135773047656079043840087452028987886217049073235459292255911691702054032503468254914498846008939340430817043320060888674272454802724662114817772031632178516726126125064660809616855722527766231326249583976786226052168190160311271554833286926819096798787682059345424484989359785997107726035699145673006400539377555471120418977821881177960978861819009072156699508243294510058319448366778922044093638171095333162652255068782640645203725082263459282484171944063808397756934727519451411834306634309439513891830688047057351573303330625050360047344085983712123365851005834854963524304496642721337143669862671252447988332974813747360061683271918350709568629867959951027724046711744548060385314102154925676696000624735174966097018156734226281833406697868477644329609945702396353385000162650887339446553396128828702418752944458261788368281423175640397903217432373109990301055058930745512710886775265144152648557374759597058653117296219400476748946271107432036383361273139408090233521894321272838225302795278279090554021789984474649905418067091492132403967977765062700947886413839009918000906521677398372131020394986724155574625506013945706864290898360210285564459055509736553448242477413289822265383381197135453101337087996759901192061013760660044172345308819096095395927438195041516641729750947418657168302931621496217586318368749696441727190766216761628100524755608705617580987848014712441098411291027524746051958620725179273405908940024388754327269952817341657112100906297786263423511006866043465926064048610711291095853944156713511829631807613547091069112510829336011957956130800031474063234198564116378801881953578921041353618156147595344030889741148432394712313113346337141500475932659750568332205223580504161192538727289558006676514962935992424218621318612766244987348251563162593060878673511422262037124825151905614068832412550668702214188702071221438937115500476958716823089811463749900547925734842314752153259859908034266262509048235781509728251722059898855819818282356371435560304836135735105805216819592829785377179996416033577321635660883991858168149546591876447551342449116739721681722961703641763545299174115240251627509125093487309194752206580758143249188565561207430270444072454601565910931575499404312201959697089184379377717924903019633748270644855863272364711569375528767316446545821679476836500817464907648830269171942953578969933790884657880926726512324792624357874170668657259784230585050122902442870820015991650536286975570513453206546433310687174373802866931583396085066755788478619127175650685261083802929594710323550644112767521932466192071866466361213105552270532563786449858573426164598635438404053827646957086935371036102898622651594347970710059302389162468617711254064818181175726079375890242511888623052579464250183521313793268082679868742696902897707951459210380578795012078092276170594136066637471500919096702802864319603984315159060798966964765325051332088960019196265356083000461861350473252758325146803556865217776906163084894358059367129389702161615714506366550577587744669152006549688623969386000774547235031782743456745836093939660173215366101612939655488512517231235058255695744805866975553218676945762605952223221502631702682637176845407826833188491685179546426418396645823928967878382618320080915090044341412841168822697014777524533407505807675345235128368981543976702333765341374201278805955991844572759160486211472638701922681663803322307068466634581399711208009855085500586658346282490826624685926433606556422115078860739195068677378763683294180739162195906394074036373500922508702374823199921551179395448817533493177171874150503698871933079273819860032702142776855437028771070406988741682225841914344030969571430997545416180291649102276601659712723742168106150001882827003773223747949528673179598042514809982741518857506616866465019298526209088883602279296494986158552958876149311634347092632186534309246675000584094263713702221875079333729506345370848894816618623038525668674401249205305586495162424764588726917019532519367188716360526142456664523788266358933620401592322784393998729260725909673822008214031198824382831262348023425374457420688675941585711272048493242171759644985282861797293561495670624524452045147471919311363156582597943009346461591579856867331652105561270415777963645702083357577906158065534473773050813713647942867302123827281759960730536740957874410510561825115670476477677546781386810454188639081968447036682461735394217147234844772747160637023682277348363315418810788424334481057909341451055929520589663391313231895254568397719580046112634219269296394604997673671497758942763123459018995367705023822488889775616225718983904494935678114258679008334880770899768325736977003841959215537455378486000540934579071374035878886024959980222921592590444787803815750485451584910155922501478284324716010044176708873439823760012779075916506629498166096816394146036458044780506191875452496289419286766278137533678981545559934930251609506536698039096954532168501124750313141892983776800355562878687162402341611510125835666445666486748160750360257875497690735360834415443249912923894221778930769010931796761223655558026549617508125605210752374527037419579913243473186161569361070384029443106071285365359053531088609732635920383567959878518325331892012698522294598889242985326638080130144323872867724576244734679522416607568492226426492293811512714089953265154909536305483500828462820152118959470622460907481598188332430299077233326355724113377714320742553820401411904139200649433687249266819013646828909928915520056136727802291271039360680875274162811667649022158450417305376490322493479787533700252386207612823499180221208177700858950466254306698375063407126241144402109581972504615378953202272282541328990236732795405821095674914738316228464644291163454065933783247251060129380518839091261212601080372162920874506368085491956982538748394968785245758469862146684609762122814715108586169036222285646449576734710508304614778392269695837849460215667663597635785651108511011399171134400998588918793612952999461539745706270824454580086151350188891465547113747124494689588129816986488478387155637603420361725100469756872636842949803711619797969428168436136728073119517164537405855043527029426328736470714269376438984207626172739081268760130644379207073499403220163397486848236857705065722589715088234273993367215760674049109190416024028717585849588498480875207076031937914191407318136429643476751018842604979255177806338578864357177196091846669950423028549274137994193320497145352353640199042485640869609762956326258111712093134077573460388930218600575399034439208283665318973595448204822058697715033700896058910869374972756826316923451689761515016512091749877288659777627671567139991360531518141067067220660560930112329097301592581665485310014659650179975889272530512920043589623868642100983407804380288810542703499705027598995271416871636056918946065716612557176519032598640670248208623335710285217761742153920695466743575319604129194045413681498395564693351200240286371990848425023394093973564237968717933984841529649381024115088133101732677343810821279912904751955136203261018236655828264589715118425363311956913956175608114406227076563065145425628911542964883679578908483025126017069739118224350531008337367994506397231855479033218555177942540140691228564807814351955887086660871300966739968853458378784025870110240517855751929681613541766404314978278488550182139177787846216716960706041870860159270150038392631847268454761566111209730112694808406378630028229486154272053870581625803177650667219979363895714800585301648376678322481819102016036406500938389683432763647971000976583909998184042436738179026081238420791819329021375836382668189562507743159767430416180040185693107945713708542211707198027186746868263770014119497494473384743412045329611020207700155092280381370924550273090930985463413730203315558902693767532973312099864998769160475410980137979142869193304999149393136272999683467086735504300065626906034600156721578912849092627342846165935245281289341272645722521884891891733113079011539595768131757470946028273784647152975327170983560554990618513010686178364445968816864668504721386461788668667771356677666796625320574318821332173298687454094390060691374570873994339286921347202719979819552791711744068957229779978485743139050298990251838976816475545398776636342926692182884689766971818222328258592253127231218099308075527486137653787244923758600870331071008800769415773877749673625909591331928368650577824374950281589726732152464351845627844336133443420053672705506909303239171460574586539850684233133435241852632437855812260222643388695205828641981462644776752440667387493579137695802181333641692954920964083491100358195149595809495832667128963937460688244639460277619402202856798807841928731532815139168201724119856017329308703986937508194980812043380887316632554408763695101930987713233656865108500767716658010414986578899084757701317655977819773685851991983371650729532761127421592159747859437793027191659353092439689867464092536822567230778332261963765328130294264366279885524933048092068487191192088808036258763350182226871256822377775725936555271367031866403502874452887142278431501262443597221068525565796128655934482264467779845608305332341853594854647253338623520102868973671171462619845826278022709291067147971426366489219214225835059334414900013539080181884525238254251627509535141150969850078482438064893737048890391361017351206212761096317651657293672398419429739509372105208357296830811459520864263634183392972195277164134592612965403595655531907608313133386875231094187533646674151310622609350448804033927327323668139653443369356739497559664825389263152048666338801974725990032463944098378003945402459163055925458256384794708647253932480578236615531180237911916616036285725074609389177818708982134884818395288598697023626955210527707156032794059823015502060200001646434077240710894370486406231391480957436928773748809454783976021669438195306322118604803331471302102281424976573599642505802309441832764806703935874919683855761517518066537727650790534779216277257147037969752536653792810548396649868022507317962807214474439471322102429278960443163581085970930067235523880348210405117610852187581548926728741048172680927273117928757728684410269057414985110369911410715593273532446169584305140555898406481453405663942136955345736954547500833622478720555804865905214419600469673171751960937350815951078356715234600030302844187982462505689043472020285955080623389591182364833535548057931245915266647848447071125294324580606994617731267049191986410574871114656721832682103366783005581053693132430908439641972027253219742833009212123731549472792362858248315918840393370413330937996989836795581438859429382056881909051398894501496659903336216047528535325803358427143911031769994749476789159721782276892503394207897511079825830529180132991899326269137345382958908795286513334660616579357168891613312282724166460985485442276780485728700998526330780112529131562523577219675750284465032932443526921165027750754249006732767984979980845275328466555814349771967961817586436440451223419337178580587047151837817224466904680596045256021234447878335529933408902823218234398611267430015559065691637554776684077234460357100825314295388713302017605793128949486580554143184482647440538100442256510942001229160793803017244563893246095719592350290410975913054047988775799016781984088271388312706287062676595791069983417553481458022968018022204361106520474544790144716956321362296496838747705372004352529791545977937241329862870575278829422675275146227542328079056106985422527042549368211019029875093342431680027762428361805708740140170444417553423724415229133244006206336556355757023272857383062189738949905371255108768931094074780940153418418666824382830652208585075922193251426761917622796671111269043720505625817342529691564560568149176296805257526770389735194420401612496435330849820213094575394063468229688177979738361102982303253998878387390307327773493482676078860255392779351051653154442715441803398699091325492926028576188273922488542502666075562879132848192776353099223922710935676232141573431448514280574063246741860504868715430326530456606934920782537181145961896565206237796122510097073160770701275463961359901253370956582947802583310586403073068519749312551385828941012766489786488261553151389879946761445721115976709273547249616088554252143460212556213515039514112980347301526846821708938140920420475139184831026108196650316067036975048208965973846820661837930776507182084084990360694666294878507617483134228560135968998739435870000038413358375279289269015109821870911410620215550444169671870172317019196233350177122845157658514987001728218703677298622780138906800464200918128920702648123707645079460273032651145385843696463718531544704098819387238238972583560473339173196940792062742102776386698314214959823078579681569739167110990380291411423702724392322155491359327239410589154062646923477446730463702560040774593662223110674772463230490923881415199969316127125471698024589610296405550676585727562240246043452149618598819260465231103749142476153288590949201497690739808673227403568349720438788484412475448950187708389518995936341111294671317237747079189458440356376394704802076319291919998387424640369439173886434204901134871331852248277285168828597030096155776573102279449843759002820801539615283244855925707172184218591771464758575809872182264554505827509388525016444841518745425722096943533088005618194837111864005866761169405250193295920710356526945836691831073204544107867686737473789098443291402514136247007354267902020326454923577049948731746796384460144932536584846347688725024005680913134223509025448569140321974067946877976027967332388724509511542600616470700991341956028913496145704457567003252276498529883680809859982742992942907437319369954828204618624694817996818903458527759606178398923173726371524131972388947981491444729221856669396980942926088865829718719060990219854108060401202830234054948244908972119370080753525328210185279060980992382058721278237287028754373480735627797947626879233528566451967707561592552291977895955087052548745227892174165005615654615035994060122159444745630420275850701085296984399894597510576811742347177336689808694338585962861657764442460779597876011226850108481701192011750185761083547979140504220991384272298399656469354273291716170867208234799360824792281221319207978965705763994393679247138417754675043549236641755628040319176791926793443051976000217895057073865871396326985164140611337736075588240064236510032537300820901022099062045879135739577017165932147899819826478558844433766444318487207269796657471958433682828714809648499083967169883778302892933194638747486141398027451319756060841399184190172122937447891656991705537650883824291274732491504086233820742772164925580956365814994219790094775776784565235891810956917435001346360722254073995985538797946410548989486152341809845798834007470196930499002277200550014564677622594740935686144364718987884607997671121684964365715389958075148068139990108136350709679949070969426308647396576110033342645234181091819620094794321221413746334914246730160428335460665860195875660409792082433090415730809887797966636822543428937899452246016939234322810075865222535745919193267325487983460670668220379651311672646407242335963231264652331566902383103304580126109926375769961621356772113087817189843095599142658040064658161244859831335848616308724542313655152984954817201875379200728636725388845132490479056158557371582243637487219878590356035223181743195298244460611100011828683404922357117995919076561538341486235374605676211374867474725755103787005982165121061835275808291214970943643458386654476265033107304630172091786335470942212397790142129424616685740929462429362163086675964647973411729940455330668035263656017902849718277585813075848853252492626881465602470556428198447347311912912068282840144574658469055072976228581604580780897160649843870395806636854076780681760905493890778736751642111369178866622127235981911753466672550319687406923334545639358654457910593379713361127529049100583874794245527103475641342136260105304788073073842881708053629070629692597065029358711862575635332658340177083523809037595592049970571841368879129200061259352851217506970607021832506142338644368902458412134045530697759801031380735127473594911994675685329046505570450909837975600772465414433767496033798266014131506206819011615571366781607912894614336664016770107999425636290875746124431794403612271370586977806336605348377294214574891865449558681088361338065996557170248949723873199462224874706250468996165854609991857622866428536746045401493235352515178218198027213916393433403539266411174799336674663905575298009157148824208583142176704124175716008739772051210100294238797756868103414813755214526797813924664225263228954283354016467518491111809998369315363426750467598849823658155907635851924091644024539988911798248097847036890384949535559012006054586217772564012689031844409618833921811566348359562065904315652165114592067389733201163189029285124583597259175681827461992266633601190419133666134712940633865813042803208067732715769364117460698682133179407431970186391215605490913184280478463005746485056241815919826481100814907587437939863451756367674548378023521520449185999208469649159998007388288065454219991000536385117779492609315352310033844768540060904264560071748734227354279228923956873841829289810549290730341795089492969738398776092998625834290811607480492284627915778229897796374368164586550582886768195822128416391002865559634557876821964919846319456930273393815281472523827956222728801708421056207270939824917639436698182615211059490034033132580347649390904759719623692778842121012473985414621663615899834436439886588996492992640678539128789131860329690513741916978565032001231321658089179068172811672671933838262333342021549758492514295181059779467748993772119699571036328659908495121458924809894808434525784571749308019943909028021254674912500696853964546698655547588422987147178689039059457495686778732184109054815851296991406053890436582506733851613771484803775713623330816424030163071672083152202002903327639753468425014102719126719067899631747043916088360868153003165473871953282527096354705457980988811904846225399498203225028963654072807445136323732196840759269980869519672129303271769442530084664741678043197492824810988046571710838597859301290604789886985131378301484900460921136867942846156594161175375082809815071556772328765224810164572798624615675490216790615717680399844396683050576583160742614438829670341954592444194188668210679517263477974440268246460970841964531074794434847189832882035234511637270476297194561518701636872696638039571879383129426511622414458467066807385905972204749048754782821715607096293822953421520385848276730001873505186456138643395562466199082054681692048210868968087467754845326560451045682802095525520611912051381310329852868020787477003084306683605291969027524936348681033307857849535023917656791600019037650601798371495176224917285742146475581856552158769047638438310897803974466424554075756362534315147099207241386147456660801089881562342513428819602824941529686825422717529922931374782109327856830594440760827017196644204171122673845996806769095198066512673408494759605409587746287796899982278781948488862015350170952069925656788506973914974808312264854170402456414081102613143722805250691943342917344973580413882076871337679413991784840300103422310598988149002481553206056494096669859802165034742582843224316976323343396647786905592544940063089856510677493962477999370442454722412478762205305488105207670116073301410392780304271577125020003532120023232122041609644601980035367812360020421253069040009021551538374077491255501578986218356784316123899233357593253253419601338122622057078901855586652057091198167191768645852986979566194695178438004659336333345479739968004380131489494781652178721688572406608530432824501746326535308359584732147419492835356999788162388355370366128369420093372052249068480350828301542315280871330834586852859907058018526786454587312997495323262307010183275156472057898535100861076754712832882351770102583354857140247178074697752626167542973877499312086147098330913908710696002463511506100809705919841870134145554207058464338721249031030187690917594549431132771065764083994224986339605694136597941641196804928833991411157957237206400679504885968960411261083399846017500664763750304592597824712274619606909343687549830633444983785825089553151551636700515026823540958100461747654904113216339128376543429393303402119306192046287833577260536863608392869325567744897872926045148850649939138818991337046874972441598824819701820021662904136436928286892687988738001101375052883586882178909220924645033952507349800518990690969064622713236925610799013097375551477272423126409773841744226715982365607134419564856965717426938542168686218312204337908970060474852478208044763466096032257876220013975971576016649711935915397936119123754615240452033739626104649529476966799087121353455204688998008149909515307434163493942288601343896210903147948349504267411022779802435254249479987102692860393156504954216348905821713523402971788586916434282993464286991566197150732818981311183810581584707764170327470653352237538817938769381643234518559940103773914039190023151171541079755112660171325823107701117796783689528011823276190460227180406789695886453144676520963116637484090700893705284902828206703989532206082724479654616971179143066743788920551980136289874054921099478884358264234180474177003539066204437328455890906705787437918348374450769426174661556696017560372347690306802674902888349083873689576106551923078824009747909413111890075754084553389707083664413983704801732002942909435692022019389906438749940301090761194436551596360390599062799644508242462771351826039859819600322063440516709553188590413332414640763139921179729993879549248716210243877604494402373042703417148724735183681857150785997242398220794669437790275892663235814040944921745031278608812979377748610722065680058569648233641283089082742560838135130748260986927982666722856914315058630543112793812386836498806534998294689965444049891441926168186910862116211075809191683357978652675530417296906549302930731604367661400205273634539312488852771244519289902238960455794041215606857743144464452574391906088746436933311047950348791244007935259050820731858469551266146971618406375787455162643391937199911719995763800112831126065241547322524796694059108647072367871382324356953937694326640361269818203743886357997505549592960312452393134595787569307851112342405027201265202632879628246069294226632976496477411855059071697814477403992217379746677028862142058301374685531412138790722114884499229520552413253511229943995973877117434570769292083038995501780731102858200866771171617106511503830868477369028474197443163224822381352296487403450216833670203575354422946167282214418309589247273229804147651140491733780429983253839517965385764975550831778500956373154528053583947206586867465776010331195399195748845212049982582236363416983021993600684027493139513266195710369224829283261013452498248170313493759782475277978251446426325817675588896579196171078555800183151593007343949404948389234895372181500231314874835188802185246494784790362800756916037810318512674480802417466321887413028178628651747752086181447114455252980710899707103138999235569856355740189135302065095232826876475843436348477894139887830084289000078759472523783370645468521617193999454338205335536007737541604962431538641505125551469175364996214508097279669876693255196254310193103585081626362019885444026474481096329089368496286716525183262261278635917160171324583612323950855524400205124727790676875009254949162453502497285897392634120860684401788776224269138187759307022357574463862112261186565183106960123515758769678944869356818506712394487231546852145970706817755998049499807165507072288122610854585293707045291479682817857015689120880034116752766685145213592115932818798145912930280563765915285714155638598928573053235503628186122080527572346796580697696344310085525206805044185171144342488625064265209712496088304435134508905481608480224659073951346772782029014957841895781217618658676832329451492448595780494377034900620409623631048085748830910327404072956251681154570673202450903127547837505580950714579804328032852109306015136363745303723994353177203183020241163676616556181512487373858763943234298743628248277993856017973738454935990016157187049879682373769307500408835144546507309671833766963766034940838520611692667715831715950040207273372801519618244619289106811998615238350628843687071081230384648917514979203032764307147666572845111057297163417282394934236192258011939369318536804599027571485118319669497729177975126215843043902308731935382710872216577249535402470124627091516208233106224156156447373386140568707968214551425127061447785445613385879526799072021656229419770787249760158966472473109606869440069313687314805593451300893309114157158796456632842017354790087528378634837727590873600389906213413965964473243610080135849013971896043017940124259421656210178512512283153186837213482981480685713256979127957040656970844614996009661570715901208106966139302846207980549901801510441493380744908383750102015629907148651817264653083981499289979973628138164037987900994919587862769110546901466266412469409970869249023900818242241303512984593814027217422765529883293932955266709701273889953354197536951509111879846463415959866959026845796185732214160399857152019046557343356740962055341902713631145939771038769355327854726743418663037878193279680712794694401715122469570827232238530181065256115162667660535030092790485934676814764890382813083946677644284626990377653691864666646594082368560895343306983378260195726055154541182818589801355380698422369839780795693691803161133576777945529973708612665262245939186214401369984755411151948306663836761035739812428714259046693772407547616594571354141843932805534209143195759308354691117360260944689001286344727659600354198483981623795104004622035413075043612133654797214022470839609894699687777533668117019827236295964672936805632413992819219626456144387823331373476921593435438462250345590673860601504443259458652006034675923506712545494683196810679765051683938123020256781688327031647957571845344795070691670866354979469598137550121014830371396719681359917814147273806392100155984354509823995533386265362516388320607410703018471575761522680854885815527332297554090800778420634544483860404361596744485663739416899614008803918768570968731402981684319287028021777746827730902086510316278844151823449869775759928591637923237804726372036872328890174571227846939450111490793276562882547315268828903176257652382316746910738390418526140820678063437647947262890299147485402935726752791476177324352467567406468631279039004010411153091127937042444078761642467438591715909658725495796404648356521865688924575596256503078304181267507732320839673802012684898455225517807160087096643523724154802540541931729948494176001274735358788958185494681993533776405140906880715149103250873661689798732823640287355007554423777226793625922520902591996565748578083081333447520994743157034579104830884825470785487665570709010099980701434000730222447429695678434337854432110796970181122914475242644389091604054076720346592319490794749075319867850512906036162561782767300310163501863038467088654519936328987635647725964803421402703540954201401189442247229371078526204352046395534260655922282448393301880585211991794590820575842605366107240853294728546369017265816184253220172017115939962036394042638715144540879234240140886641301016242198195683494626381441458291393251008900032079183347864258553955618626463820554279634725804986059411046891185592695661701223808542542657548821446264865703326989594829715877018758465110912611543660887557651733266740203947009019776985794155928418003311072331173781608706599024584092869040719592321090724500655838537066795108221566089679194201385693978217584629476026670423458161721458806956478104063962342219715448537529862204983561157930308137818100331637721575838852519262556129054731710848577971834385053811790972377313104381767808717837636653876287148800369547791381860859954137634079167358847431328071315302500783212787586354448928568885627427647097363353225354582576274872317291065591027655024569610303215145634512501896773891523640979993496989911641637577024487923754125339408478446187368834056224207931629935237242104037479169939579941146075067051486874957358504183610539377505001274197789479702327732186406532501752967076469836045761746811960847672900125607017699228310400699889869365931635616434578068417995649760309789825832197631083820056891823274211030623561221513805293809220892681534583247379872616517447772942867933654153703187325695994959629141472548785690287582480837453825928512451560840349751124858772307388747086571718436282107835619672039175085108983154776063291524765159306487145063712681676987884128849069465256015694534900987020786379302417167009196342977062744552377325040683779847482263173175114136280608350741775374798601331536444954960027915448332919000935870310390613095021933610542630805931471034601057037382319496351432523514460415058471260639490440408352286276269078375422040744130759610340649933981174395536626487438383765784920170026378179082269059023029616752529911670762869861487291418718807678393442969143025365365719362756514944824148299004423868457205501142699665301905016895796864450655666116321082424606406393906995864007244941849809160725969303185929440502877477862817526714017633942917985451771260964342856944109398180948581498446933512275893483118178319757832493296144315421147505792701244976458276417727141653158967354685393477357964888081537186624832499587557309728037223438287779023527828755162275074143029251122271288210280537387641568771280774599279750179499355487981817935056319900619195958008060592621273100675454456490213841359310654048015490069930663796713254401654939848194530375756198185143447727936139381531402216496120777941107252162257140572977303951356665265458662875120932228018403670687444384483206632139069126330868483048114847200204479097384565137781366840205386797912720417783018577973843444485605284685008805787806872937337024840328902052569267866914403753727482579749144218220859674585222938751867767167430464975365426751302459505843792248293036164291837653586004111896922250598378716643280802096365761388900900381609154940099872418182777801280385761470910607224113810506017545710725606901825817776740234764623295384704029965360722861708169642415465334864056190384115710680006844534441356011877831074317475298419114416883608918085570531630011091691281304472283017120922880988690825553305509386472795081781742030876277221592056659481008019728260584225696726774721344622527361934992248041038595421453040656238149212976601970834663992674102063394129033593799477393462059444908284684397841260428552968133709819853322364823943350430301384078165071664390881590320220117696737964131975570808953636150768027316213104716856095987256223951633084210290306392008497554788449024976444881588710380604023617441007430265129949213754006738524063907620255126253310257446208535648324144742704062198257081386742113610533467149562772945483437011358135528719924565812159478846904232824660038708210422317334000243867217218560831519977841455966047251777024986951811656451750678215456267988131393856528827674592348896918670956812259941326596103634973863244387749615063583782959380593075178923506233672326062206012085188324005182062523402603055140625152961443140918944549315332024713171643134434323220280584339849758715966809963445023602512417258599542320699584016526562543902479402710855000946880949263679302603732346288802467440051463644923418013030995774959177013890038394129642020133322168678260303414109068448115217837082076672341845099962677105942233097673747833873668592967976001594586145987458933501059946866001430507244687279129062687894058957008871866730590722767152682059118676510764298173487219492048759316356414496000002893553552653957454491147471729170125116536367286866979194090287667175176901824284986679698074006280861076024631679197798765991788062444485840067176193555213475348034725561255782473051460863052589808059466990866844722140279284758170864571746639855061029765480546081366316002675325245653147079081795908874225348606566477260805817974450471762404470129765306801367920399789342833935661954673056325747746979185024153502898910118275414599119872271232843497347454708385553328926778786115838803242595430415194223900482976971026855651795951408116724161401973207408213588073249786632596512973227143633361596785886448694377744016864620954529631953796575821126673775376729083899230861003624305432246180373998875511028595154930061983908436233036332088563597045425049181487461941891293357422284248435673276346576645604562217337018787344584693398913772975624581657730855692471864271706854201250878128897917179525897756633729632435955442979334460049780656398266531958844101859061195768632338661934174613249290893876911722199922253538471227630443717632772816676108844064004658798775752427981078935056262297744043575759757942512015222995288289039009961097903630673014983632736367982785936008065912182139816872890819630699982612674927086332775238008212702043879891017802393258571192482618215313017277868251689915565653396708935270701916665766632822679907073479940931683713389428864319837539043289362813683795519030073564228773204632653105023163622490690981739611083075097348457286869074149882414396831375975461946495777842355996077915530738951658391648235553769028285491195467900548182394383759635217845694881237532291519528608288391221001710513597193168887298342639058389642132318173419280765182152448531947539762675839274352099756425439202921615716000202754861372001718676029457385606610661785350185646234669988935902305904515142856300552570296266542743717846330935878783696702154196182284683194019193026269132762603672567931593772267714058544025245491494362901987931266159131280604091684394319102057983046898858656965699598020107701408584523062868012517547577561835666880811389584430721003340762049035077886979891934048165374967535012468741921032092620763952061097721437837805829945734343184740552422993530159419693922210485495383762393502516265193738580005338247030795235894989739841713003745689351318937868286003492570552668701392494690424368100751281407149941048553882987180325974836611971992782813112591045351769466810566721805372654798882315228655716985693952281454577474425506903948739176919202846673800295892355713276064601677375135374732259383631706184237636859798069897763610895688916826965334761280535399062882616230774935755118288203486302509882550216389991652456714078074442154702048680152364520239707654100121752583070164346054749166530159764496062344055434564293667053652592483473213016738666418340710790316518415443974603309595849806497426022996200343813695905432699791799347110090713994280751275886075843784446219323826345273232648479616511117635943547470402275454388111209418597385310385833110979603650530060619291450418334837263408908357467599636952359700186252796307242166916270182981040314327309179755379974915802395334515524879366548692928719498164311302546656381746969407982211723114003854143147689102210239855548197001902749418119056281870016627231567511987474140786286285783633703966778654876069150622131975732001211315788831563372773532826412488841905903459463078970027586008720842486623801325981215643363209552131787342320102982076524405928389035451553399469320603074013207709330143928046160463169616659512322879947556685406105541682707984504575317060438715959196866702259550730768938073424116331343963069030189581402489396498223668823017693095357846954300414521558516450797545363586057401733064662353925425168107224940850963384428519223952393891164581165954134493771924054943193658370221536227403056179969897019650799893673366811639779588269832353228696961420885738251473106873767984390511881446315947106327376751027284495960619768070395934541613588188715880115583310408213188312807868821349366491208891322781187730911723417372262938587303951587361185391945355289451834305300986847972716235254482758775716148215965587698252241526796115522855330608643282360791460525567397766384287096441815421992398642679773182148777592744785287580368967109364384148472794174434137155625471230648075113506723603500988429611948697332576334726483011765088081607174666784615791339782592647952495009830757377975378182378434800837503343276367024391765830672994140568462282902773900217935391012016771007715538640175783622704541238683526205746677689259970718396003174892672837423759069112077716806133574009990525525724693454578500315167058712238537715123528850205643779559201235230484107773551604336965978376110003022545347366711463770338713506257814782953681404812658881820339201969450973999922413060889832750626451471897407936234152172981960020879019131463092936925475512347362221106784024956547489046963541034096272919373767570888596671483096549563402301949771996018935145951378157107731929842322434236511767412598825073706058270521791865116072409310831869882774076456131126359355002867935125027447408154744475557082662482251274419571644795016087504730756751926772537835079394546083848392875333219433741361915666171925572008544744743283116423230430815948099549473478627859395216179619800599707921500240254600409392027118853722681005457239194483408147786715431120197387375552565154247098959598992042285120122118856405370344390618428465580923596012672920667342227574815502968544150446582703288930881731002309658790785996430998435766387031625803671982606331010568829179472547230189634949230343297070211473885197222441976003197045365752229885078884788059036082976572408743699925660100292548635094822513483569200310296231688928595365982874565111112893237868244012469260715297190988260118814607053301466889917627466715473781036524505771874449717007130020504920259817416572779580982485767852102701185306901522371441284064284963628282025442661139236960247976087867550621250625142756887850703529667155750608213891708475506492511158805725600368423438573354971728080314003458431178778811156484710507120109863406783326289590612899282862993158988236303790092544234000484302458027264812999413838221673911587636712246756784087528414756753426836885515745929566032235803289044836726724669392898727771978142655492184977182551903518879292892341423983614716758782136366577175460702891931466694235167359700780778888422580327836312106017251089911481240140875590696589842724797440083848288444718945434655566989366162141861828689760666100037619053457594271102285159411195728354563458310023361982563201802088552682450765999752804105860351839938223206195834676769275228260457323529857297428524871804605950470500482574747790564428946944989203317843290285693178884077545849836891114734087266834674174967218711330705138988939371624265433846055043349349649775146990993170328981960272303798921358982054953083228685284699547794414817708413410144329380775747013209595550082906992854610347836743418098994339534714385474691661012845226795843239481237015397842892264436973694174575049123754305952294692715013102584761586888062977330220486892993388950657389331315333321444932487432659613058131471853832872162254781158152235495767978134774498364224147831694241642307523872954281951313451569319061436318047509776791234013403533068748325310253896710729904214960002123404670474702073357689016714050647548834200567790317190504975955450204490297429012824485164420192728845831341147661692204135550108128010290349319872011050462916121495808345905591927650979371932136652610617510719377645962140112393973598180260964943419567949140661347344946679062568235999261410134418036192409768926060287038691373584016849682941031338663407440179393253582814002950083162274874859734797030341256294808587305449983860160634082598787641124924903603562200133667978359253028405996803841961976814017413035537952269895506526056019099680701449332743279654693550908425801725345905043550760746325759044852914594100987267962516116500378622285043158316116969242765837416849048646122111446463734676445039926329161390309708252620983212059510419931082736984998735849892234605874081312779693854336325440149097871477786781438270657693882221309268155660230761794301642143493481198412182708848758441279448571815743954052189689617369475781034987893693104317788591444468642143356644383374635292067359539886462121234256209630046772424329320947377262651188703287553063991665005468709511979434012915843462087767163651626812864919372271153362781987973157352339387692011053344086651097139567968156998699204334784778067581286587770047206905600467239367244008080941020386742355076996968576672793624511247184297195241949976888669450962204219757646216557448410616173476994811906366495594767763249079035974147327730139265488585553058188070274046596102925777018925470537052860474406938626398075213749161396360065603432121221049168858043431764337578559682135932845003630450756116919829314841346294258098791588838180167698364588775115356661856857233723382829988978001945303266728567435504198044064244608530877694897721528317521412352278295236182357359439655177360817726337625339991076549961745541142335254595772817996459790993969565007166162760481597435845654062703051793387342414973884789952529103207286058203908668097715287483993143869295655601080719935803913495038358166794159451054104188217319092962663508737623885987206262606252372100683467303759591293662878237794705588751337638791656947192513277115373923195534229368998625449900752746402294483073833895583938255714618486581323531276757509974620066076281142317541892782772368992404441504259822166659465152670836255500300932878379741280873283151268266426388465150921382919576545375389604464630882043645739860026363986460202130588529814297990198011802583903706424687563287452635960774282111882701539370040895159349918466154491324925766280736590744766125430699207845662828588069622074490844495665954212288838181922428095730314582877456197029651149659280395283450858452378388877914382479876393148603479319497216405752178482847811946556862094438116816394330948512344102635493560341755257792965056963248621035855366719565264971748315613771295915992037258350756254561108019953802261449657234117909806332524085760927720173351805805091551752946003430014707936564847420260492759530805819124614937669954209674744300809306877298583593157091407190696730239634540047623576663322145392549724782283229582901011478373487888010268036525625963142372448033880285440095773227640269914840042405411705920443177796292346179492606809395929786746341965195188676051638946122284268480494910757465415527359341955211469406284749052129367505133750754439516129343816277449442833157316807425918735399444255244347378040905661073452233647629829543078920067285055573349581835910740636083585238786188210384986119435716949581038886347528865462029069278703663114826664563186623278190541688200901154162061892760059511649118691348042386658295271236254901204309715318076809408989603893360467339095246572821237602039088884501693524351237753667077338999614306097396289276375776480682151576074022824726409797975545635977808502994291902931823296896060231950311451696823351046399252147429351043755686920092739663014009534678882861120744393414699474324191779216985780873453234119297188492138608652324583221295330036834383892220905627497305757397956932344050975264686350879487680844718995334057748767918597699670831608501507924413268177127903214527342810105125687107768979801848295596130690814438572420562186995920547028480125033085439612464070035053715736705578223945125201846562008060280842125660244034830069354379981666468214162125628021602064426369359266027291262165035436013935755889807374016373178430492015251402167612978414197953071547487481136226539666654182548033453976235915181394638476183858775707250389066793614268870605385420129444979356031693851673685971762950322339855979894474792742479521556726298846434937494619559070375902576019527406243670459024927061441705153089348569930703939895799488508245322975190750268930067082966142484882120322926801303075764181577470049611596507412165761420211463207604819285226926357006454263630551285848333427443769089663190812325283541469056148639375052695464074122154473233807996507764315526646619937456865018247206474558826983654242839003493306989956674433116420875442220278236074388557746966664192288391521699169265273102469172565893101917462843889232729182170004640369132198332489244741029310435096500024534244152141890614833873347980313994730828162880502377816417710890769639576273107770312075839721120915119148862532843201405181581026051626948738619991524267172128331311229213494146087058905491585611088549455429164827665307506840398613991026067738309288634771526462168043969003601102898612052289550283230176422569663327069609200103282622854451859741960992015538528421851636866231186393500431105327976449656245080525695516940251969463737476774514581209015146486954339222982075972618843307370988153064037371350996304835421273566081669312902953189126659386946984474182328972497843034238068889310429769111701511130647520213376037031140492676179592759719737203582673176922723903153207815615623673549530676363282807719204697065027022043220580697705370513183922104730845615599811257792306088865782664827952353919564614697442925936779415696934748203664685996149763757525351761212594650302116123879591070606967555290042291850078872531089019850749966311362970529800420598381455876968312753007336517714152233625509197481806413396665508746434536985691363134201946607759807004868071028251021111289863949064533665335931194973537896866712657728711333093038279815113031201010312317544871993332732526925263113609862871204524526861778995378860316788767952346303014359368518012643261007524339099931447756840309513422486355091859046375873048759424150942291434447580968369324419811267335340648978416373671741313257210000650597236375826829124560760188528007596848946591506537705768091506335526440111229106468861899419581085247626334469040563335567873367584237641482982732315288466471353128768677558710465729776602386851469858738155854972890117028910800343182156348144933857184167514005207596989984692474955521209961505119182843261838639688005557604517902068416661831309702287116054225114403385127009993858007765089710435288523392431253698813886816613963701009381684881416528223618959180692760934189761590383103972093226793720721515946133563351852844507362104602046825314225480214750238453119746266673420729234282151487147592872803130536959102633306338129160597029384049534039740706090205292956515873833783557950251339218510686129560529460984771388862394318975154062235097779018556125018274997957010018833796322433129793569428094329723919837236124403565045627518031597425906712320934862594899648922449809842255893644177973177722377125327362048785936240096829150049947338110134449861302195601593005672760247844745989704559527831306631515461798216859224806259693653088644110817503932070285016308239302641602728815726534002014015658223374145125006441362386247373510129341205280760489048453490185592880770537224502150182681699951316454511704266509485106897471117425058683530464245316135302050218238096353600985033735596004020945933656078031580541755889443548640351142996473843117735062460190583301783084991675860111590120961971267292968357434212192296258285151701351764141580028339026269499649768026659428598560779722005865033874607966199115720709918930015043771739591469529963468318701806429340706977997510893239250162097664347333041562978106218045134749750825290406323363822257175750814965976165420510774727028165345698540892618043257147068348195359569051136110739637665757939312078121821818104627191274425817576288524935649539035627198731081055586548329016579617270704224354729379354341344256015866293187588575286496683106689892986096996499733452859580891393479099709037514725254462879576312915747339772423918102874831403657683516101546287472187103473982666837873705085031033207515500345754089468670053767407910531183487531043703996758208210059451162679181297383297878756979499868249415011836615711651504639427425128317362776563616216306014637813749511290679389293727837874810396925120620921194111493390965791977287154728016883738561738869842707522333271016193068887342708947306581815348851131462082417312926027611401334495017395206794585586069962707434641799687948378726437244382277236476090238246927840649432930508921323396912916030457628148683722612194970566065862774399284879508858662631251573834535607550984905060362072365946616548706243998585828220215685508004319166159150882635093040150555204845804967415597982458357066194665799551812102500026771429919054664286998695726663925799248441715524613069097926688200604053449685002019143907882786031723077075610571734784262266522363210133467042489339578547295830087640014727685902914285554058395307200115303739801812001603559993174988589217508478673182900527874699374789285002061563189712757708698900196211680527900397533677145924959481074796785052241735359130020677990783572154301050555911681734155511318742790018934990502670807118899145724018474680573228650257551791855423494566385243178549427107543567285766257468378620892775264195318444049815985410749345916667767805379383204660142632557616190867572411154869910780003558093701153550950241854449581342863160557849626386483326983441287195627875610139594666204728611733611448083474466632453386815386512334928452667711124159297257578453201332481704941926872157283900208160307414321306399186842400513268527979709596774558225288010809438200220898559489675881380076156902131650694817539336512880081378149189962356235279298198507529664343942478616822263139331376287652140413384621750914533704358580561401493218848203478541088489875339932256250818330873785264239338021930374598847108589695582792576253367677300370391827918528670206066393467723758532045431073640382775063582668689334579219622431273527180722041483525181933362753580497770849259967821952426055793737625822033318576188566552280169803248563865294354212982085230269533813979421001560252543102176311803551544850108072125974656144107595418983909352234339557382964062442106311576487495577812652815804148917585128531668701492817653771859741588202035848819489741621158898287460227805197271151686838386035262399316740032789806741109874330941883494177733886990151920188422120758015595547659707273333662943827056979200756047698720323903585325740831679592926027190259113823710602700340021898911703923607706125973930360829446913839826622682813249527057581119946746675034882852057139069677657765830343277381522220736528613175805079956240395264432364272776744357537484106499488489758513659214353480324590426553113336211834114772577283181616752497121585649380783723143727239830716951708717874523097720713018414457799564020064026480751793119170309933585394780434659712785204898526478859013446401984259015509043920193114178733181347206786643092025689320787056407131976375161899435215427794055765613460084911889096871126509110128336689249000089847372425223202430709120071549518764593945596893728434760036129962769229375632479542840903536319569399323795779659498697016867661330723242471780774355486591622484208106461953189937477617871733510410861447586181046461852478720291904213698395480482610191929160760388561975050118902658868921425146708019206335359417220938862352544255828026800499362098566027504945319256944829444527334884847417577749992830626270728242323659341447150188703250689445046929610049765328772050927490604178784857507429559419481499737887746209396085596432108191695871146880858276275816066046980431795703111747922656062136194531159346350907074794258231355462607672842325052541832637907361079004003300621101087197707927123448896325728492033564734301850340822948318521251142067064615702592763629515863647985424516580028133727540949370250163532396913436229183758210813241700986153915053826720724023565277939671633698914777144419495536673027610816690903051731588300801720755065489218733156422926684612360434943513067467424954717888786249461389282597257354780347899151871943659570282968676109620250316955051357000530805168425599188789659473834875473704805880986488164008727599552534749395179241774366769615041945193493877866051489765958312872637213093853859518413956679964394474133609808191960045146911449011770812684919331276099876080185138557331521842210586224174502384200789690039439889458651450207874102052136188310161492140952546222823606370181152986953612462889724943198570319977737402402960116883443002240178196094754566414843019531240535951941223841546665023674557871510601161681827654781404157460835218984743506336419056338490785940176510731372078426384978763461800425383604815384984197155009499237489770806154123754484307892732599603971030106695230571128370792262641166643043622430930407053188339060158414526810571348207827796942357955953224674088638998885375549875938842347043275990427908156671630732195313596065374639393806792018918719114312835256198073394550050128729496140271995796074482868039271560396688676418557293934692582461097636088739042700848347658068901175672834074491308899191385154549581216393928438069262225357745707376437707531203201721662187919732444130023993349102080086795067087474698849316608161952477494828448863686665228629674913679642567897385379373296026269975334389174927345069833647753672542865037426992333345698489813031668575016811054835879685245507484547815183003794766744816651341929155843897833546825000471980215398824368528872510075444685506314471635453000520344576138968462033901432115950302548547242748895819370779240028124452371999480370491934502424539128733692918680795687104816635422814492085475611054171692891887561365340096296221703542749729972690115511681007414962604604858947313762972453120585651206131246641683534600998610081668111966296687780607687840707683442365131173447195201188913636146651788417647594332455214309039753842573603234571305557440993062634704823306718384137187508824833963148390234566125139459651387668141020789147438747988598126621759144918230110902113946812047839925116600086128874434322421908275532155001214235346786738915210580031444223278427962242084809163417474826555417051319258106486370465675302634095808292595217493775731033535569252434933991562639867014226990553789213019822789365886931506124529747823099565337248683793960337367769514834870430175753833435929034095111690315808047132655062613401158522489832198577181939003911045763264166371528217297807616538058802917255786759801598130214591665411400419384071854776341865443371526307709584293627459968875525582608247072200094813904384190716908633911988620429402160595437394781130535212208679456560064397883433466324698108474097234388737694908036984562007944387297533978071663689562388187226833022674192111537830831180350105263687149301100514824563773456143668172655051251683248439369651011065459257292999635515020701061499940913212814381082262509862761603869574564021735001952812003827958937613412237597007865727683554471781220513488972892886318491198970288639331861943474434439304277830439938515479310403323445252901742167852056563729826451604582930244889874167440477054739618105003319674829454186431885511096718340343962736311210860899081189674896298105008360396681120561707754487092445636684156496631971211247407375653621755235487616606503931770177701026450132544789297332884069187947858198480466863229855754169309553860868427531039388126109038190883755860018578678572226822053576068107356775620493163458769930211131121706821988471624043241122056898288582025582620772673566745854093370930274202451716821471435276653461807414963037841865740088597611297831730399161009962330207331086805893714818043188115079652490245576358746095325428747983469852664491102017315124716662686981967733012673592224654845624096870679899487754557775027870737310508108159014272177903970185044177094363987282628241205498829341389709594131283730377467455711811734616826848028947209487982294047454892784198550858901578685853888426651871899881594788759387812128528934369574243373533554612732783546576200722472718170342604712623324685012473011628255248902414878090517146611295461163668264508432503376105893898417570848850394071705202144845400240847251282442943814659445470478476682143705891331580318931944579747961273358534644025735172875012051130197692716063066594347520400480725689838728547205007671489333848289558933590635807388307178819574874256526695918571506191455153806744557787686348824017387883558370320415173686918202790952580918331395043582193970768898083360999656245433151276766659697508292839043997859306458396148010581672089475567121371303753319177804077827334403946098956343550677655883704421494042987665856549353361114153132760659019046023124837281815365070468815692408237027463674101608167414396569799001515053167249420306297692678734446243361253815202100227051545320197479664083646641417613142785810582767041088716740306370729768425647761299994602211526191563859004483512609921615600352638200806925584511256397888422841786683741790232219127340084890221550942732710748026479911813943231389044352131465924127916101688253214159903508073393967863876031280534000616122674343601629272528566063879975067077590589289754432589789389443101308953456045213735771783958211151813564187861635095097867966232187029759846146552444905430966876494826425348360841354345854754527220335449979490630331648815042019754200718881036154665216665613325003799212045777413015655160175993920209662107419953274796303161650958931501477500367603402816436466404098436295134292560971990611177372322084032965435384157934453386817131951230740865131303531963298642250750527998286461215505493842347777100685834717463589248906293404095198278347151692079689537143474912715777175115904604308655185606814435816473377925348589385512499688772446427015216502675722360682518618184563041067909041457540041669391849179096985233316066939816824646877553274984950531538642976028759566682547435973718152339331856006277468962894057606614379057363745035290950581517368003307403888340427822334336002464567935433750157888677616314290863565628021565744900861856923503780536401891170789923310144557733900771484883833743645996732368171996583913860278621098343702557948246956135969205559514054744356928501049653382676199798592415502041757888416802601322439413616531854307272590113572467184852178689975914636637568152753199814283081784694344109090600566985841232164296816910849663452879178975533329110741665138074823232444309081802403233559971781952975603771014763467114133680795909544270939911935384990323818968607099886899137558009380739788847777372510876588823309463012374511881474002194662450211304654022330832264868504176445916983009136704406641050670974817830956921834672462590734879780880635843524191359629913189376305617030080292147065989704830354960607291989925259657727781417372024927316530882699576544697928329777284671275567857285985364505987922536214512032837814469632670123880472871899444521760505009055973329357657058050516896889484382914436559648942937674918423350744668960440864858235600178368517049601490976620705824761495494709412529379737306880803594294949037994329061359193691639987291398044796584735340698190634992253884932576888333709709949376571798053808452305877994480836146435478270348046343313808724274953657948621053108046863294542608865377315737788836622791297759096140741610523388971128105729871913370156287860928270044668596412427379632318473277247302571971667866077581227501560839529691457025697500843719897724697627938294733126987834436015038518143733991953277983422942546333575611754970137632950881345012173092416059227944329163275365358028818222560486638166222668750811235805011804903744609815031848705100131583038911756290458447880122080883276766707611747150664799175809077748542481982581287020661405631164718100653088860809759951658923798014866240497586948450047234755007402161179552611674335079231286065194241391320428249964241455471241186038874661708919401465956224645440095999782874176837601388587161804199484981964320314436947584678529134596068040680134805281660564436528978621816727863025209883379954011266307395443431521274848061355185794823823480586977283809628192475335597430326949878345422657092112686498239596535436544126950749590111341700124645213138225312803559083402700616084510148712867051471103370844380711513251583333619837541254067685729410418386545233797275652071357493497723620173235388753979780079242188713329568799317546238718548590917820784655954399848997922382158666859321887568901104169997316742546938192348590362153522834441010934179056173693829854059420775496616939622888870429542877831672946472898808289872403251548747106031050011506296865079458113609452698809062292439340805433959731790331911914349613808988513950207420447558226951503553739598041162751301488781527171479022752715589015749423221811113555223790163828972515578144160655752146661794166065411581941945178793095906623097928985248470087862243632552970333990982550090203776422251001334041499018939357594292530354022607855886001102952771877757998941336360936352607832460577158467397681704854438761682769476914690266243963462423045427818190796464978748080588537218896089564974263924590863677810938837793679967176513968225714011601290747546321904048347857273160651889563197352281263140940908304601546596743365591021208983049078388722874417333786033822592562344294301136340144474984066623400600284720526236952691542614182481305078972310007856329312121114387130828781314739323227578618634992528014268314605826507461463208099346577058198389935988967481895737954660853486877866477890374360929037683871302449818067754965007925067880358102934921429739240138579243309076191371763083622561774557447162016762843095828194396322303866178701677847452046402746670301327257598819627558737387321074720016401426849628716940182235032094937918958314103415673086187260583280590142093327070046825945063705725747934816429777709684844144471180634935303479017291192873000228502587052159333202126965987646262021221824555567517726951774709868486640955527877228602182346101595014412769725033976324880043380154313377334871332871941913970946182543899335126347492892048489890678111905138391315674917423959946328807831484440298934211380326313865928380725933701976092696274798045816797760056015610120123560092134269361247957531610127072057665108430951392200081616195975554136796095714550932070826098450092837635985897211259955071657403995653285546473360698554212708712742891556109728653532922843259325913768159250497954807136479963636691120151549707478054146108419944311827996655441183930358905826999035087427081918325740943252511226631617865294238506034312070406838952248188378892393413931601394296051192060609291708291946706937196984940296891320296664501552629490628956953560141152256315709471975024459144764495909901554102463702170648441072832463482038787820656105617996905414300260209835047923039928131499510304657256229503127002520743273072188310890279698751935275274811958854909171602788118487912136861312585442274279179186327908807780322524192543717877002642447809002573150788317391625925607470640378749174597266192542948734603628159161804731023997354598532214890086126786522681227467729634445271147722507886322035087177155688491031276460650884160963094492252943967866706218983132179510792552329552607256189476785473873451040628103660336756638147413121029261951329422218633693301254745483816538174614739322094787226782776267550383530052357446376290291014171466900182804689462788171299913218495515011026453066846577222119040610353955516002987018838022459327635301993766703143817710007923446168103605300128974200699121806864437692128734878710317171573963381755735359130228654273481599211009139910254827289466266037493622214201209279845704378055120559722502068166787237245337832120906289919596556365697951817714620495179080570170412965138477601840011503659979388228574175053275656849522067957319568445009114937143587561030101825581557266922546040537072107155048928519699740938231152652656867038009838574814062588464188480126723297201784248873198310061554268263223660306906325128380543435569336729075076926379606151795919448768177242361283084990513161977920343791129470936529155658305129743172645538686782740937042961856242437302453691035364102443606684854120129276239903070693460549151942942544898313119582648882386495589142440288553714610655898243486613969716209030223350708816231926740960729999581968256417847858616137315844356074134151980151303677913069727261692788417719110859922994685495136022223854178641712468122823360158000327835225385039739387555671291292019902704401688966852317697081540252672745331176749947782759322211891657651747253799266275058969076475077058709290974533221530224103218797266369417225429689881954617327504385047828554129785660217074596937342665460144258280927445074834996592269890705522514748265686175936340394259970809559298878940606111374955355796252666301864876614601928631584658776040217375603489382751860154513785586678264680200566515664125614828872001783514799852170889797618859648447355824763427364757426531594891253599143559365373721486231267542185482146250007944549109233670037581355363190961138147316869141558382800008164194827924708790526650594616248113693513735045679614867788770971737448314876593484020998013868675086984537661490307175955571876703237146110801909243165517051071330733003997137484856200088138442364308325016273550612551865026625603162601838631096896135544062835094535078420734579869026741761268695277670800790897317420916977131394538538841570097298627920533947357864439851561116383948225514452119856767563703952751747449782273788673362383730795883905149538295092673183764341496468390199130763883367167236685894209350014587044015006431789695984923440195967259136198821174479828919617795666915701029210275253639052517000129364529092125606933779163186046809841837251225311807370324421503425268996131689540560123234517200282228470025801024067494933137257558963025700633127119497588394259392613297213629760812391807859264901272156536585298723985893042193014792968984118204424670161318326138861640409646635570353798684489402528351245576326327150605003790184947069887533596790346997020434793373122511633269011099174416714700470596286953260884266856462727668046522850341788120300439358909415148614232695163837458727688677878935167948060726031479589875900784218985515037316257043331921957507248508251122660660239542230867887583580670924273420924010401000280542954566048341223814260528340941778560776268497835283843054695319991930872910317936906223424827319667951420563349115364200744646393693310859246195759726887480905353697981577554411385096609806063709457815818887287074100949516893661048068108731873869350436295251634337579417669529676625277847683499918223945603423346274596855013550241699347294874640777159026361036325079929222890357522151436953841043059190199224062706844401834724292481919927659235218119793017170834253009048348145879183711152304161570397755246338353585570824719684793057040933496673805446554263572491412166229001519718737176445652592355615561161766803305200335152589644483739971019402744784196569561949440612618131073959573343397474741286302761774739188847594378528785917666331323034744543640443020136823784590345980282182312455184569564578235988639165243989516059802801343057876804925075198050960660214854289154957730971060031460481174689004592021666973367002459613163883475132267607051437448572170160494733792006453851308280336355357084601092991366117378178289414554462393414559657049326024349382440562859332550089646818334734429830331549827978546266287520718825568569544432356629959430609229831649569673745501810871950775361406808580952445140696731839273204227517100048911002995728743146608548679784305938526449401760954271400030685281457800505891838553335219146909155320984651112813213869138389878471574144789075929383879085839746644697521612857230642355193427881739074266286241168465631700452144356061110319511494011088441323775403974750147112677163669403055837941407740398027413064025942493815300714776499522042644709470317545431548242842273074884201108575182933942764033622932761625862643997589916147061902786431636004093702366997838937395952323165027237176242216438907562494426058690260023753527492163985307074692475879487426103526722041787501192047831683909128171814509542350053875819388145260950237339509420325708044911125368836903844598074318823549442772743188218790243969480907738541587130656553393356556880222640575914379166432109464392070188425389582544843913294315335069149444714844427621561225826771723022705535242950499462919175240364131712403781998364198131036973878099054757252572714908543363433743509226376862324924796333186868356281684772958469437247548334500479871415319641946958598740078436564413821049746464715198004416163789655908214103181422138704836357218694282672645345638531865846847330549389989202610887305321688474611616846303044811721992871170620587702530994819306245704920292878042937849356620885146788298211964604577627713446855912493381118530213720234925334276544154570315820924785853465680251714730363616793781183837274560738924859317067988446830370581864021429694924417398984030807118856291241607665111816892780302218094761586523717458711225622415427659307547223745145161038415256075403640519633880064075453942223850125340233790323051089927012349245174584543526101003122492224806452933316592527747359753452505228578003145021973842760008552948646843147480439090850819088490128937753665552383305295530390396155628731584025836375285908146044155004039921778704216388535695820038586854250939476061092660099048911333450465821352821024763698536971031053066886599951283415590379365547605145945912959910158181104357464863205846965510962929997563489894485811536392767422300736790289849832559822203598207479988001826874840054828307856993095146058127976323742515123994534620726567533370748353540550395353269073476809852692313904676967743450220446233927046332697877588899255944105410209428212832045215504920388463710659297970714219235638993702602000989220539880196146775958042106898634088065122506249698476298936820006496507312568777357354514045071015822056765150847709253263014452278227539125963785846724644735864301991572307359124507139553748737573602478516777314016664755858274315886639735627013626887956696138419466282675344936871018812976155837991041402683359809656444989917741579587166815827445810718453504378559090637164054826560081143754667999000241576377458562032911981847912648748163877402089576118734312423761724915147161189525552024107971142050212053664445371070372206596299551132398855631038697307797915481064407547231561114728737498793092877759448709659050110830056047459019441056740328991695648895692536334568090092177042459718779234418403006534753461791041857226845571042422344767529800845573876842082210265366159277912658476260595735593258483486308965603764815778445825952072623511060443913792184443967236722383684893589836751026568130291067309598528414157341932195417588827233363278560709389780274546841887160707324348831029148478018106566574359966757917864108648103028255447651883683872229209984814503999173325668844360767677846721463602794447460087263722997064125514596815529489770749037320101351215550159005682873709251112922504624579187641744536565963537108010188315098493937465987208799787997001826412990390959872552975488553042239219581429376142150933271144518400352788100081588343015919412503130335247583937669610639792175627904851729508212278227856374087122522825993945605487499636115011764425068899928821462368072542556570403548063319616923723379771360322209583504928263577137151604749517141228816877851177844595090532356992835459978456366554607561269898400851487329841411985904298236514904574683185249082458933005511176612738132980138002949479927538311982391507106411810753953397316918600764469223959203535578120459212223669034433971580050501935117851869020907109197987022150773800823671900316420858994511076841643950242961765165926358533224691624921800925427400220126161519505167925230403034393018425568079902115930796498496291037596157539457848705644258508464528822031654221638971117738324457788382254116058035691228427345539072267419941894721219709864343047389025914257742982418739949530670943538544329461571052154837462330575185412990929099111161638590160373981433621804721054401384873137630068673497865157165711032689130019359684499770229998272785687838249685311605959650519947574295507724541027119580286592728403033028104938016525511914461771545586944123762069106272050211446671859707394156171264484823431124207181838078193289953802570504634187928796647982004500343909071885868667713707775733255249066886324396703352997542640102058498338624720263073069204759656061899233291327156194164082459431796312446682356072630195472125357597443321178554431474513464574976630650147480596253322255665112740127870407591530415701096827635103828447155431916736121531682477623794330618577922145885139943971030245061120910189360317396616936792808226118233974236871092942636775010540220579986879533671830167727029870152507027093815985787201372327850452430160714158978176240320348605825253224453734734155424281318775666300311208836516536456696303620368540950279793124010044077160416818621714562724266777878923907726345770572249045070365479172417414609473370113813752096564255468202972736601845012504470998694790636228123628740051021333769217477728728191527972385533142589274989223593096190501965111699255265241135795163987989385232422795225150344291342222562024549501590000247805684020097980595393329978454305470410510703805289846846626703685730440424756226256116983647724976397520559803959908084387713218746643809945246671761421619343337292838484465134770943506418101152822067362383707608894415636900460336823264765483222993064834133053363988659403560210914453561245435141919734503480255875658094446497604590939538976303274147835974540607475328700038836840088953954089873418264614023343101250240099367459854834663481660934301970434254750367342057402046779489366881282444826112938232145211587639700661733213427946276946076182159181085272692478532985134531604357042169392540494826818692032235042852887964051445440001561559298899595919109547878875883946738441967485161356159088786222805215771113676949961940851687855125015484511793727131102534340246374055097056696737220757571968664900011727901661641688752167596547367435224307934011890496745705689691327384368239160396295679359209610402410214265661151335666087611871483707378870131903658592530489345846676309868435849614882445459509048017738101835551738465999592043273163357113220750802412200620263294631333675115585030109930554914937490278044719903690033144373121108875888586568398591495119577194593421149954811878437062709854484149259083307881872014470557490950437114346622281318464585825302783925476027756683104308242491202403304775284011596210974749012895984988315200540121602812312386658055514726375045402011530335719428769417786047679248435643720797056708429832016796342912610268684363358777170924032231725687993997929446927128946857622297209484586632556576181559922095473059537492876714388491334565488107071476706493445982581912063973791049784693373254510996572724376414717664036795905976891709358855357635292787277907064535566788841438014313457246392818680916249372393858700269664855356880605101303139911830054723153673316851969044963561656086573754203276047173904179092134050139699692298276299001657252913690520007071961184562425506479498960939535848630394600293294983489353397822627883626508352118306200656576039005585398193596300801595122044004652437932544806848370236266551160840974441825719759275336353869049357528658378067151197331494485852395920433678824122228307142661433534262926747921259966625553168809295480799699476457222279564800839236897974132382979248762423145615878287809649191656097814290254209958051441575271076685306088576023262308004137863530054344940784420131165680114390944162120820447155510200916825753920696918746163422189517466645176512898013475514076775882751993442997351583877279590282908782362373809432638500036757859551454852369350155943692474120978709217399528659118631896917316449081733371619384998104450763452079902234890273604154089894432173819004833432939863408221873334348422144542260590015566530202866751047704386336867316779684894470059614873389992048884034416677896650786997884809758258586191784617873896514287462814526514965997729195688024100930029479255240166281833652295713021869253403649367340670087482730620381102260144784721727859078237905427001149347505614703544867094881689107728588362253500369995956245442356531677618296055264019883467294650383397196850565851745204060761186642491760822444534522233474232697082812056611561692035954035165339240649882581831840492181875289289928649900311047625468264446057873426519878514658002091537826006577605819761811361899730282571876140263981274862604959972812903274454214346165332364560452933154568692835680344154832170863781149165911134736298921165450559658652631773285251903959956888384223496962935311122048687123506319363107737990292008404670574110066392134579166357327558930023923159904231219812586006581824712827726962036795557414594918922563018979853058813085773754855626554887418941500298811427944989468985623209940931583694409396531466603552545662459516650802696078694981302369208287104284196412011720602598781386009200079265458081195146178111304582142896763342473433554840194931951216785322340298818191744877637347472796163388586345760789728499627705999378128916665093050503374372428101290953019336945350053215438912422192049693262734668257251263187597736842081583965191357527293757088845703645460293825072844841141392112444236624913351580761654455141629018008318122766541873707867934680267291601964078498929104103457804954058554290588629535804194520756162213919293262779820762033932628882005142348261661720288291639318452808049586477708196523017242693915443726451759376977979472279467350436636969466000264436945692295628164465102885522898327346718915780033524658071091538471204965409017859867458768825806421430509115564132906570413938064298679361440924594732022390101331382212003024136641361911453281866619701979934318066802227846297035782322423943812063514211211722810477547812605253473393791413187431944987993032409383453152358400075446832513818595438680601739170996145515285251297921379830282598473350835683951892449671011758043941187966492410128512409973572096295844530728515042828069177270541576144514625844778391507716860031801175826982507917809336049944685877150179291320661424567532044879344909113807510097091887208411776380942714012104308295137593132607806439091003895505317699138677482078110405289467870574246193194831515616641478851213351255517029138601903196698750408347028533801235676454153091153376895003302818605246820049936709131797373868769717712834680596377814520094253206628771919221936348270006493932096999697591644728421148541032885219328065550384010348534660963510207619890088711392994702211180064025540454782928695874748644906128666071811844785679282928136061538006586990222982296584767858742595885775220919126736655754733358244831749244980784048180130300051680148472084850808540641743027311496573821282330632558062668543572715932620947265897804006511786098191157276393233462309036222602970889725511064893815006302097021717423972524288896390892906715801784110483508999122683609367934891294687640068465018139283630652933488606623534059106600765302526175297868868648877340450004404238728388227612034891312485158973676090494236228918758566201071796033199504647914597801918424181596151297546416633920260599507117895100244924037168512825652839925815281596114334711033733098501140208341674363906715325829539461111276245034075923892414078570359235992683184496685841078134912141275316086195812297137598447069225947467527827357191585352133023353738016816205749998783173075893361405087938481635460187407913941158055727227084874624090814286542328312916833190938667996296830330779857864315214483148656156987975368710481716819225757575677267591956961941761702843563263664121003586392211056927283024443002968897395858077669459267018688479888833767138163223945867950215300263111003035447422383533828238527380660732158947496458800972513513025910683349124146457047943841532698740111987387002131893044592118198874408755634883071658970405720318418887284928164298883951912086374601670844208968097826757619584769980825958977790336540021101583974345344956301968726010638866616234059689243002573806528246879148400153258550190705043919124829683937121817343405636861622522547667488491855493555545416682051926641781390708019373062184079988077532282997975836348467367180664368594939947006990582210604235369674418276861311998309788010716604295370457039390905344583918364028537451263724374135129162458910698547998940728619593782307844111363220320474016053392536932087394357876132068519829062204030416296312976028219860334559593478774685637495043323047906334021406162485740645759810291606651117815176602845467053022721233809280588966803087758815444416080469938333728168278287634722721264397477073134699350527567699758812111116582068090657741090329292762223235879505826544831337578519293248715578254181641675067038672051900987080434633574913530221498441058876407771812516262343539445923347626638272296762671860506950745968802713081933319736336912393247781699335696321932993106236267270251934579338153285077713572451933813592981802058265259065102002530226402088868199581072256940254085358895918681275338916090557986523279071164636229118606845277687846825304672073456768127132778722714757848689693737697094955716382964909872021620049022597808284847344984874288876804781352172254875659661381594794033992111727520153614326755212845813725055181715512945340185609726252949569367993586411670426294791230257212443306466514028372396670537977097426488945741093396586771133327591706894911272001224625610728429288080677883188956174639891820654317345740122062367592832089313807162258536124961672627736269567376961381404611999098614053694856398527785763333311874213082367797484852794356561283980716879393644189320688237249622356600281293238063059142820975692483320650325272852552667469192276497249978787771502135131999928113979688872143469161538205197559644741302354464542324049662038808045542475622193588459988252640988868955264662360795226707708057781401428734366511189286683253126636397809851574425311782513112217665463371089118969840019211076919481019259605909231740671505784499065539386838502130139047069626777535550211105394891345095632990519854057795194397130023296737899651556255310528132761375233081717438979322554139335397873349507401358640746023188380747119715788050350811434846912353996007643057220555368558525712275577459895582409558292697472050912296527146345330882201829243391607534978745446208827704458748082666741739148292270661128986930780197438208989400591858696901170711216550702528765915957044083964073648031314711313990827720864159595391687106072512007971827016035701129854973965797849083224954543412930795199585333576262297780172954839512921674776273598118581273568916353491769980090925130465171888155213236782700425891002412208526946120788249960732097272749960310849482938349577299375810520806079325413016918092865800139323963791304299332727164017954549433582838508456092679473129826584841206828386750234493804056111170849349559014394265885187438659437292564402540240514416414167888980394339596196806468097304859960917224949428961264487370225746474936595529059559173498987423863903989185910687349505801240811220185558667548926052309920503414093079331364206206012225443913399602944322046419755432417004380508949803549149145042648594683850782326157566021270394034349278509333347203884172346557387919779650960532362352103452825357902562223554339676210836800529448462873350643223727657958400054076773463560178545438980514847990237981060564616011962472167950212137097339904124279967867020129952644838754193750874015621385313155098669346448249800640098111384597906539635356040407566508022852309671747149016310189196039880012930506570337237809705476960204045540820354501194703233293684308934305384505001640796544504187632949108098955188006107827064621287810068999420700803587415121105939051204296315560007944081530064580404354022720515655856556882485291257983497548710969972204128317004531610823920938837732485467183295578307487759404728302125299067233219371091702421786387730905392118292548390773326945504397176866820413640283249669822613587261793772421604050871905782201893956162143681471741853794443577663363682298566793001261517191502362551226723825139888291475615867401100954157656742592770081748282852116677963452111295130538487330950411006925209737402679290086528667620782323407424930269546982712097556951097031797657443839734194783294281531896259735273491574944314840421669665625267620118931376491220357404853133568891445470712257063362351495642299320695023105810859575837881825722500828121864761603259711609713999556195046957319688813246225236064239706868064439768016763129300346062287056804289799520654866646931826455755469582229908357233338254251667454958271850215464180543701087907144633202912575141907171710122166034237790428394124722717854647002592494152833846909402183455703236806805645758929901715501402690677898047745884573269869255574302567720467234713654028408795954102339934975432745927121030659918278688456030057546065085241877341409151913363304505134086497782236270406400091271375080147095267520575127679728386509487559661630997032585336471775944948898586378051345628578440493248848012612046193170974762935309614538499241117238634788216597937110564801611492384372391896946582418436180780509272587717322720615586088034924436914241674700304353990079105204006246695049775582894525672633196898717215176877462069074325604397880100491000249977217718910863124596057266852736965759852080124366175994182359390625793727447382655424684600583791566626528015848310180921742103170063924570036702120610721252459577073387671391415715425251804790447729904086627202863448178056873202601936315785254139979152125529368325446884487634331900876604077548836611429443609860329960496097869505726581378255733848327147482255098636268386320201018583065159885045980957394168203887979023457859039781791704729741957351327484715164135927027139631811636687658010307334038438064987403658148550866870815042248988855726525728523449140438798516582583422516189611834629289039045814583902804094136362087084995132936358220469668458807061208199828106458085766245207876076956628130187395740454913176190154285076672147881100743653431346541440928036615352583945287467179559225019295884563923736697497654761218277016534197808254999897162913177844125269044170642129703371167133642973289035608321821057878865065863370219408627440672043555501001287557588822895206707841594390795133199517701632764312669440516232437766048747895469488981662369475753597926124129523318771868496573415283909260335262252387198655063120240934003136760643403019412123918786418679634201172500775938582929915646700641077416038627996430852172016065714651165080829155815013388097661356408933089954473530623763370315534022993571335449225369820647983064012948645768588604580623885576404093570189370671529147394902142559228134608531526031894726077646538018766855705790379846997300938933648572737469474647484150919081447833040634489950281273564405033300521705258987516826041328637877620464277624332106103408976355261938190137534410620371804538195796951914199925011371502160325447013318626374165970188733262889246376717467803359472501216011623799375551705160133316538987579723986835167957384943960875217874113220058620822717776106877619115870069408116034552384518581298299058354114839817468401181633084786479927326132454670580019700560328592884789111396733184809875800537869444330479658008701825118330668276564843638309890896493018218394174140657225022371207190877986338220922529157574986306090963793810501555889417604826629972923659582814827242537762532762295747603908818192510257504690637632497572968933713528501890481331896303027120448343697073838327214267745052655511410962071082901691737732237966639552591696782022605910022792975554438207169320731699172557128504921268600004518197847677270446743738848131037745794872659306545448888969557500184106626295953913314664290410720244718390692868860344625458201062180439858453105126190049974839104123464937403395221944217262147109948060553455454614594741180101043705969517122728915296848481714108072028390962255449933883400811663284534107727506651339879130187403121573700818588931702192300619801552115027438767399906233821166653781035619768475968632138433811541647064242017954023273705121925605895349919460861068746875807926340958141999199978568977588299503453750441991585612752766476108017396231642092689203921479567726499623718267594772146251567316987387544393753695008710458623093437718444226949501797558767490442279559566523476122136340059109865504168810615648687080409129631613070157139600001462565232723637955144311326355342649638306221403659651071220911372561110920279449297501178000229021824351140080684998247525960781585043088983696731653907459234311615550510845607160750369533914136287946486393640571020598091970782914191361217272484093773236717032192876555207136099687120415503894890701094561087701091004439640246306645015891462578226790767641741401336612914499225254554272176254506072265365369421108169192626955524382544984166311959142921122820743153174544985577845747602138512007916684205543390127592287949800151227439496209185257674153825179840048871442760125467160417337842223875563797031314324937977255690539481612244713950302420127560280073138569322007372406749177685371848293364235791413316306369698906204516617758046510239839543843214614975520096452435403659402264051276591468342897223793598559215692454645438268844465522389945886590748134189140671027280274610411378545508193033642343557948259199040109583999581802631525397667434544270936677641761226317103725040924849840853441892688514723094440331041635701812431916622722344832688752644933817911322057400360204368071034254975204764387068449620377772653862597365568687035504184133744946695087532518504014996003880081268942052541809555185722495675464097751178012510007625825951679774157130784136366993008329391385407040811300431631059374436078692954229207352479809066237127290742627397543539038904948811303406387806998751098404005825498196655401076624903282968751917450482023428566482228396386023501231925908184636591991466829212784460873580344400279530848560991114581766497176363530316161385828589861079299410419687274947196703440865380781568095181633838299386923432201769704406237513279420682180033132352565586641528871139611708582199048089067368208979356001031938099195532602551384730572306531192038694555841926719883260286167302054450031412685257920147492441146482474275195963710165851037915830484242464895884348784953203860826937345310022535574973074118618334812299540681485364419548222941872951813304874397397854114357526319131881213471259492243579006626534134394651013822315937962719897889124640331410190889114625759323116284805907387129499340413503790229184679434710802029806003176468280172388372957012684567693835815384837044610327870646147829212423373469130494367444187513291649463286898908758939366931230359983818023286828625759495330165397029820525363943717621824245800812061548596681507451046648201050570836020118953997952145042627653460521925079423545416850364574405615688357820850763015760262129320377618969390780096648270537834130642001784147966274361941318228655387267984662865163027433331496719666832422918498420434761592836694044415669729924261440884333442156845322173090305983602545885064439943590153666003197747278943406436465694643590284189559565037779308909392789995407407181450515374179631897737559647004997114777218660939637012020306439508098722326402588944210885830722161001964869641687213030168935816846450509380948843030142658660007901178914764320198332402829388781255845687394517314569149212464158480084664235190664042782151782893202822069191869358066936858399273688274659574795318393302399960740502255093671728359051875637943930211899048675932995332948021633668088777912212755415413738233095409928836689539247398554939015438723317609572717886923135558135889261763549563727578796326807042564585399932489891775216497829704674253358877313313317877598063180276587485072557199523697189508807273667237625448688811416173557837879961212056075160565714209029591270306605961398046304182359732707192452568492304562445697256034715444811216838019977310173021672365780731043973012850101988847475505229299179214456769458584268260903998750825691544071686815691129125852420282141100993092393131334176133077926319039850470053859738005363228107649643033127226491711639686356925701287533313207612294454554625692116265633249914202221080573049126591140699003254328334989125553887798664248329610967864083877675883382201383056485338560997341414429345556125038228390439792922752508284433354615443898781690716291175482391504912909494631471106247659846206721576400568579928738965254465411710962884026520818999414186021518092697320107225148082579474834675771989832396251174486443690005977097199675740388885996643833243353973398343201588699221399682993557110533676318637679497180241674333925015634147875848105981611940033379099459447300660204844134877767016953164306416018435725686486396287822679755595994270738383187958739852071563478570914781464380143170418135495129182678862314407489680513927952363280314868906682633869774531461653723613281691051387621251113505911134883480732621895730829169451571419708530158145676291008360155086414545151209015614379522223155809310348649853312347100144738716130286182832346098415204198954040081978279955388084514349494665750823231059038456545147352506298379665938623762841367863576162058370347480949262788920367381654886524922893115421184361672653263607230592172096422746954369549298227583275077968834004948821128858706120605240293701061441353673826044568847380203862108099130681771823491703188553678819319072961414547647826297462888890708349998561324431174156459266131277782697923634337359945837482861131036141821331865930580370970750934258001794326316152325390324286387459311657945055979860274420451254944297152977053561068300416060858708080150269209411738518464291323118613057671862489845746262027436823048750797494692573756714502777392739893004904923074858157439076378489618781895682149756693359912170163518668931927357038820836197459953436366547940460087769463088708824240412035591254124922506430178624311035764695518330325085394923813973669621582218783667812704769736631459754209958023231807788735865738704921575750192231241257941213024038834223280271842859098428985205410791266219413369859174509750232019920391103921315788699015859651952535964995409300764343565593280030260915126816286648786414015196488747999152078605720724572614893449723571046989461545039713279431037817790348666803926119703194107751497289900542116171035033681669129440134508169606567676233490944358901980360381934872472719325668073309455492486406078561796556818777187138982569679727863022439319851621655302362620876183216638042168283906267187107473366915868756843884599021296787770770768526078731703927891017214470535869329652369550817639333683347631490247054509924780033576187894478702337386606546317392980502546455821349282160156779927580710317272861805857234874883050146523347692164439277162051333668929786741243480129389407972478526182379801573305004299874864585112338843586263767748995098602479805631821030049548503811521317458521085823153269664740675843072777397857279065282774440745645341270121970800606986855509556409117765825697909811620918910871489114690273598755954964118494932588351293005903805475606524516320450016224919116911090111820512307601979410449645548881579503565061770499365481237500393269880426309851912926828003607654133249868858498624908525861632352578383246063017401746779563734679711733573906879213033533999673275317155771479407910783617738806969363798588972032735294280309763251792152726362692348591590764478434633034104963144275484475575174860241868351027469223013600489245125206701618247551752913285536449847747738455122274454450205088770355519960588459244014947992214237174055492499217987258460413836630452641549492917685645286994080668452801811122054061690380087360963425733971029498830245235613859073495909889096214126870642940517297906358264337332049602334392066004660793126638219677599687300881287563791563722192767207622675970660887160594764880304987907642344013945062756624773776173732235086456642140698134769348808876694865784195667290108452196887084125314250324400624226260672989485436845063447664552793275057573324212432681147764113083481053435499934694036334629278286678190360519660803145775042490400585002630523852457382700209518594744125926451170505803886021874394716951336036833206086102415062409634821232399701064481531144426333937656308009994484851069874611200025871800495938190883113925478362499254278052054122645821006293799800972418230660949219530288874870212271911512988779469718844239381407293390660142582322107432274571361086689400869062637798706896619815539294282052957073045812948482914045657828737705368546581521588044058756747167912324057599839537410966911744163092069975813174312514603284065402462422560374607335910781451468797291121083972122105192795092902872129456406848677707724974712927949273612704769857033147691929165117301720506340118971414670692504496251984176011628937400618368980768678505217061999470801880960083671766806830629131472281437539650266476805027913770339285279113130814843266056428480611049384745217329510183627504664847991686199643573158416785144824260658717097750163394224980231630936798685567496017412041934575646121220147622796766234700917155295771755269814373528824551708055933808159598194744198537866831247745211192346393783805284868422139695671718198012810023984155095057572991553271615881979490394022681439153783627293382400890198640569732366122640403622342835051157958794657603416417492645048888079251182873062777276012218829539730297352908112041915555703491989591441622526298272447808795010912730258462270714017384304210114193069224057425582088256294194088752455840504529380213244593148088325831475359439681840590716042545733297585462062593775320710925255952040046677278172049502953379267605874927009774705744027646863356474565698920771647899528173354984753432947453226956122763552932422217128565671852645825414084573309376380804928443445883951194690042087057871884614640053677516091601661330649686214323411902338591926120325161398286262106110232788726285886446625081925859562450402989077871647889509274727029187180829393612416236834928505858049405271786104624613977897342497903728806962472041331338557435564866813056662676156580691714220747389517988360339362033475524060884648216590725552173142602366486705772295686733717495193024212378385962453357126745895051866669056166493654720238349690307161998874387963319198207446547905600789568596609767983410391314455556117154472279879014465008187726678674467823153802699279447842937402242827558896566774711826084970846667944204065216893815488990727282268118199956840507116477098525324242500556519678044340456412249015976234534956672192596436928284694734155100055819931752954332703181380291332854301166950111740730927860904850371667420475312195160497865500152046197355708242481908100202569335141717260586511273719741843022171495601105529565418285113068276535641759774037474059000416825887766428110037257251987594383307152193903153739338848273424222061350697988871405564214118508866016898714062337614406451298547618476864958728672250709012869904118282738663337623981423331091292822141288071799904145361315801258395578903641163495183389634386867630034255346859454399959527616457471698570485848155639459638996925814321915685596316940620463010554924101426650636910860738970966689238894471190440128989435562938033659653222095243688834645107510264055740940123581884832355518783581975029971831239997555240306798972367087378150918994580616669384873388672261007128756310082789262014502136145288299381511099333331026770128230925744379090698042897668476866224787883323090524049547427524908277437774051787672276827282020423147531103580125535085899967401471358981144593584099735224246733249609195317026192442646870823063563254506685411622728315944878345253669735989581405914017289992739682856729299181072871781049701632953214120884710033798091193568417098466522425360533175738394840279112230099539092030053208658925602455621347586510872272976922203812197111186363434131947649232382166883396038336457505492769795469275488202273209526173405194877530257576543250348896372827041427873763734484936485839610470452511051137321126932342151884388010622119210036418450098373387634372248806028944378177719118266764210358305813775253308177381516361844044570439559548395563572213073651284329154615087240331776873334179192030721958014203023242353306456905872508453182911950192651226164422956000778951860311090476508721807101283255077175863746261994926287129389331234276214357166499066665111874479197663973127360752266395922621143239203886818823560751019114245443797167226648553447148019435602454074306330698613539447055829549951133548995157028090152890324955151299860652094930696250562015250400507052846027352911006080632331197508486227039455449132598257205347448680331119608078460274443809730480251918520290180167894841747830881553407908031803496782429694257976615236708232540057706138126341056378907275384589582984236674458449013148094839761226234808185702067260919028267857461759489735994412883832921114388465942150319564818338744709909536810783190666100808698678161647127942163176554777870120136215367896684758941636774506660346420168160848942562508435149370176784104934698301437069007909045871564836821803110590338891083602322400133108864427776146341932340857385080415657980240142975302961280288180584938192262824414350006093369678890505005237429042935647762043426675098664914062984883726127739749740774691800248825288719579148259431261503145334809291666855458085828606245835451675657159040792128874260869157253572685179462263201625926910348600583180937399055602127557267972879112797042142853432304670276232365921826706085197891855483841543595858321533296261067255246324816554459692557625547855722797878739173996977548303933775212216075439243308124644466642608184260071480963243145276610884334034165667742408963220819287492275231826746534831249197953064262490225936943866975941356634336960978073917147677924122438730520430694510740694564332753563246652750151619283384746970656502527891721189275153342488305797972363097710885684380635214424658253817665353721942195746795544306699793871741937331880712592251245168604929539397871768950921373990749601107767857769970665100380925017433572963798299785078144337295081762245336293539127040118154066346314510424432074305828048901501735508831845122353139756955287593184777442745939677945356648260824716614119570267051552251926642232438093804787491753470366687745009765869439623426818022251950908827414650822894638762411525681421582030021227349652569236307723717153370003489470059556620198691952755965837006068872930439193668592642653707770468799549516218446266082669096063283539196232767623022010022730695671013619027830738279926675561907356187360943930672620458293147610221095921181315810938372743070610738776735248435803020167859203462157509971321981570435103206655256732056631072756251981550804790782340628026647537807163908645745358555768641433502108228736572769306844349819984485211969244050721902253755980438431127544618142157232089927181346244428942978769469761066687936879193598737894553246550291408936221146992081998907530364437506936578934056161625511498548231835667775025858397219678311822439055557348563491314765894339901993430811841471658914444377152729345986535444052642541847619356801149298736166518904040915873475109598892211175325061813511950116141586009224586459299374145306379752418348176172268121259381569280097119136613392461385233124405084685318946892343166125803122706677238371693402531503889592448700819339928791580397186553051284876748505285194233481216519283138279457799968212715480995341051082893177030524700574726039034373445964630372707045616694680489550700562337849024791689989769342245104215932675570957666880879920159058498880292510020368224072164912843901828248428865878381038954992317780960177776150251170804826528393139482099061329371751562683442225841279268608596279647848037270281266741115117591454024225385884808557124774614950061862487361183782672041058829411657302379709747687710688790909257472393852863840116264690291821217333927533732110351116332848567642805543964339746893578692970696091532790545886352916434969346376733777106261595820391982764956306113393164103281408613300036823346759623344851867866854797166132556037176334689252351493891284743198898680719303610985000031973968487065192303053460369859277680463637893934163898869639368005040652073485232460579742521680096197148396953757441865921540548221173513453609035998543260067788039854771401469261567679834358930590872581495949218594506018665176642219171828531047582447186991886257035180786726453491433126194357948589592658250751402182435240851423138047753441702336939084985651223912058717372074085712112941442814782799061530886311167262908479409693497491371194627125004900494981956470427429442820236207790388043882577495675604646015933909907451220417847984153182292063921162170391267772609974089842458326746232702128367318350736594874763438838123032194261159949469643727720173658433462316170035312388842333234593325112155709981690563056313531611945521239728357329505616146861946844314222134720282019453721610251151653704030145552337123862696945164671721621381730276366172462844336808761493814983348247465763892219132994825705504227287053030632848144720008188488653274827999767622918127247843170273702308288093578677906764453560337538282319218674897481538426069159235011574050461710210915919182181774153621934547162770709250693699452273732050344574179467570350197900789697572443387471582832431001399479880776332849211873969803576158217587778545568967136281946303268660175188351464935472599989954874498546555698759779791015795081073274903562946694297962558263159725514008403485431717162958625246062779474981092560864034601938485405142507337585787020584525667716637772481752417517249598484657839951292386661363442833501319125899445550643100298005601962328634620320421360856846330328054822693871107068371262469568811432152333987338946981307433474394948470228847145399188993949706723329105567675838237364677479721232089824489180771013584272119522685548846311066500036672030638504664652456689294511168667536275171242317045692304764777404949158566128543356192383651834261941314210748434438277007372595970666484229905250113600810256769853063790289817566144910051746949036636545873815447138345591809591454699479542764306558412788695310155139261565832718939360983568977527263473674875017662257771730333658175680104768930807339858868951927760798953796209539623658926271780574207773076164597710551128024031059047598066756386786268358198256914439340447119710217647395907586722026620847951758729555857228504044042159896815749990491268222395589172305061180025567183042062204947017640827401543759056929945054884831946718965476159391849240548499304965826716091578882924559648730029988485525759725029286938811205217184307458698676288792543628024689937581074253174599270054726364803515409753159683804948007498988552526183028250952251216724353176184271646458583035330740718131419090654608452066000829565892462452374684991265448047061012439083781166840826463343480633398527621413338569595397278529253430385931285147191569138508504819262533234013126180046564841043310599845181970160719561246632594885290939651894259867238812939930759550833358421677830940303102324800136984082942703599091559533441485144935409723711202841396981528012610291852556272999729634788155521656599764708252345920958875323608105953837374707693249920223993118313149015583241861886843446399609123496407350227528720941303157878568126331053575020779627201140743771895457189366298091582484534617977123668772971041411798938946868633985126007241404998103505714765242650339952438840472549495224170825960585471841866991637050237141111387112913991101977511250923873194634405346478926611815962285783223957908081715907407058933028236642444226377657602727519888002349300940352836426732222672150763279282206564266758751276473489355148488853078742393809468264603713156285832657070774870891102130489654261102817877258731663546942538328718956641976588062651041566641186458332411494477488438495908121183719497727185378882068737416920674913812617945289485678516478414631402847080336446991851075271736545032879364856305426416498150160525402046016170514075875324836590289049678632532103306591484091754611328551109713695037471442566058535846716497717654022915923438180354679557904193784945721672784232473033274905466833354195921064654099958758586437648465801113947576783916321559778188663550195540654881110309042646816908931802814865832140146529749043336030992049172879793817129337495171378857406155339562649925201066419949713628978666077561260493921052735881482214819845078541169581501200431457528388926440749366790508562202562711873072469993901649959148315437916298651314273590858459310838778727890465993942699390211061560897770562577768550520163701633574563163639905126689541440257651793831343536094748564601152202732352000331420975714195985289437581073939897219495413508377685406852323468128820638847166702854879654173501487670710243296356683061521024624954134578144517908569535858814600578148746039867044659281231802212945841575845178350048628583360339455016573332448154046944608940564764461839844776011627312058471294248057797990534091324193317790838053454546235479524229919520401109947685429691237876655090822251750432995485473215505808120837515550140045717650733845013407774401386206146210198263295988896431155372930904487806987784105151583842348004958276185428372296950186733288657699719518709792337121385069556527441550146909342916501568279434788159930857711102517292997441865931916060566136828080636761841934645793080689877583007846604890689682529182121750667508720078852967696761879894273517370275880717776637877303423283161803618609416354505521122345402208557728944731545014190475056741754206198896454857928207228171306186866713643999059859966711949723042417753347287737929955990110967975699531706654634857268085768126573742646353592805511728126118840553191411265502877618529357825418421589718136118629489494207588067090616126186933237678491421876128793718049118459365939362498553133713233943333831374508336375427797190893558777540435321997509825380860214240694231797175084716604464126710289378398955282119631554395735762994146010473252409066838105060005672436294236272993729515342566356151150988319484790374768695915706300914312154836013716607386649560512170149001349811453074667328018810250474385812391420811601086478516117614556057065521859214665860838142335429500529668490275527941820093157282701992965878873019484341858472534513032338409774679578835782528723301448965764455984298406845186344297024051315131916936626673330423323010123364116225980757328734485705993759542523442245506043879221530609754792106846082771831250335170594482631861533333845797095881031467833104527548681066990412298285750866179958602408530904742922937058842154452837900445309754584454345664028564324902754116435485305902202602392217624297597349680169375940586291436988486306345515485727029041900120998245800406039529361307076884186664791784633580693394111059588611665129597540160970973784696963032989373543143335621239023644539929555088731384369342154551967264061332365489342589339348026405400148370120944871340956717106697231544664909429075027986970790531420873784894373147144828577697803625185419477692166635414212093885902310281902085701875022023455362153227052054574367553768837400377589120616065727897348687615907408911239022036292580183185698273328269038706293795409134338524365738174589389570119583941401421195090073941503871168426886990984786052021179457757814290891115958732457171102364238171427409512829207614501370143496009485711822324716726023168841816026764268937352997033871189392090076093498475468915524292577307283058330645681578355216926289565855434097785921531034240663870490356232496548911028646525060830126476800149528288982360646145989393037308088568613397534118629815447708879071002497880284556051536482038016755478623551470329208073842889646581257660111480158954706603367859900079845117375274431747841043519746629305030599844322077073165589644252248568543617390737481264840432354186294498229140973242532098399470697561813747980314384443039115240254931547818918515607854382406358482068509906544978079345270493767157613280920353831764363772050760563950221724722886718640112092617304110465355871631229666096321588285325715116017704538561859438056603307701648827523367950312084730998282782894552216582225833680373226204078741308104753213830357273990826152518735329164060062700088006511225818556887333506170120240986704055392925310037560510613062981141937917240341036513135215953742062824615657459926572285835513298440651490821890752585316409187360158512408831825477603999553093027217756463627735560701341366406882951052435350439941226655694659950096467481633156899553737298330166250028764018818690082817531670036472297588232092814640274839924856454128489107811775219861948561803976130291149406428881740621285781272450128265133057459256496231877887967821401233051292268472140544561392228576760550023741383803930502038764367203263410581588448621560994619352499388275599837374006918561914670271843088954016758147038346230910847947420009305066651682726602664268242090280533823239621228821865679581286747401848032813910087965594790662356350557500838023929864272683339584513389875635413081661570675485216452105600906655648446609870585709689550706629809467694976679621829119793612550785371269742525049856410438929962156842059516852004857747553329952416339256086007419105209093973820094778608895219556617015999126183481405002965229785206589435941135149251117393879830609046222763700467513293029142366672248865342459881277609881590858801403517849978562883858470972691928343235882270203071496533068580907700150235686696487921296753136833715299969494030034447295710181059398800152888596493759408743388721226873959920497669091280103465950766079884187759014355565050636557913177538518620040516384440141696016269759530577488113663805161410761548922842553618730680236344554689747227603817651594973339460307217199742893857928520732109973358081478330695990815120629687496071071736701210367312810239320963857914711594913361267042834031610237375854278158343894612556323964737489065766613453338753051865530100855029449155261985757815741587417990061348845275536937333515879809962683615206052106091990877734548053013605855481781811949001555742749731296326247379452030528833958060411230189328197451066702428358012324572944264366895224036191069883332771304574325497783745825977924060745265498247146015987013300372017656017414517288545379499706593147177677558854753613587701966228521930447006286969627172321217186572752126807573565522029756130248137232229460033247338975087549937712548480508925794065244093563010954325451998793248582078894693981509184899263547684238561437947262390512612556434702886141739976211105705851298632847659697325317287058017726595814638327461123378626234805333526290492196690056166825886812108767546333922255069579113992870354408612634570964681504379595956202159344446932727016848310274254379839278821283498111103841382022742324114438389479088112362437516330224174217086721803741159693634707926349332118265047364056669846474111568313245884738351470478241640313543835832116155470976861995161214073964906788669053287177512192271875591938788236530489249995376174494790299015429485689935505843052494148708959937513023554672010513882498865447157270013788201601039062380192285579354801844022170778193089653071774393763644621917162672361035947192547823669945761729025083860725560456130492574931827646638045913189389349528202786689182900105548348996710848029532026918018796822033997664283210398899474531101983822337303748972159206067473357729911197788634980427932636326503437503695611946168651418584010543769072898033342093375154871210395354290616027467236093025780396894198953119086491846843754612465832966114660116263369983108581729553683687179924248550350344574511206273471386583774149196074881139062247033093528007197497723898189927769237032641933809961453671961876458420173994966335222369142632779439799268961467116705587735294472095413018211218895992000390166584484430335350540154542306220685487502084107372970508355144609700282341493121851588791478668174977032933978431501119337791510102767671782125705789028524932485607535212863013139852355348984301403388674694019291995472792331470764167458529451622833842404110690164500593406361374073001696073421580641135426001755528087734939659899628930787096641221434554586517787013895451657302347168147001717826729679264253892612977991446380329252272589417482031488938669288239134947666421121754587035859745713060643937748031600763942062800313850100787641112860935894539123587173361319158604979015460456242894392532720742589403968498154194289066924547448596342972648838848498904261157525527753027568033187964585458141256246797872033514065471935889803652210102034905413142846549898210088462316737837578278862349779315224340662728128164306614088486885464790603893454499410811967018985240489603773331084673556367530527769274425925769838464172824539846780876808015996932733732901965417363121699720146554449180580760782810817422800940739907569200674357274215327911704402337362678715650268326023515700933308173104672785507233150176479398315664704496030996975376060615844292823346729248669478690900498868890555723883076044925971701464300774142777856222799675423745144433951571101326503308075800382858576824332877066608608494936918662977261728811135492311072085130346007779010940040722893677614717814792437021877918605380329199523759279050838425754949472306701918582521133325807298588020329866628573479934123714277617954374457239109240929923301206543066643095835799767787749173000284425965256658512279343641133512428338760653607923727352254238087492423532930249195470624263696118073694658656642468962458233364088037509223604157311978636121363569212775280126086261726661610697104553958841031821491902301641055913331212926881313652477413150248531612194483531034215666912834461628141658085031909696905253282971286944822875927367178081439557454147006681756174359174567588636716432878010867242311075311796318122700293163579293255514494533435122462631136456475409748317856094643651289335712103390047747034494036015448632586362708593420731953324616640375021329071479468788230085174939216409566510560450435382664242795578630720650885623393152596054390300072832590986557992522657578838253826073839911020314575920465915615293305790311722956463707639110561868161758074545330358424623765026932257685233636653349472893515256946258831200889347144507830692610388260205286368415035079246349430699284102380995899509876002429956980143225739190157342527194749607624365742460806592060568200809852687400221620984876214627601988312920368036895112500132184241344479690223624092860265316149916912970574379048085788227326138752698556505643904701657887215398043839291006290488036111974077313411947359045631011323139156543066553110678207191804048034081519034079651242020664349007398696404863727154866161934500931206604567647904967723695135983836515185290058586994503451392385874431396037881015079153037600065945763381292246700792633102967985316686964796715689533736564429216990952553710651167379854147461338774203160680398293738070278274774204984469649310545293334598513269555248758606781398121063156398250504123703884079287462246032127164823654060026009973855657355224387372116171015010308351112743054962708259737386025713077230386163898766941249131091675773699183693239973745958068192452974321894987026991769752894712157996619115944006931963539558273108411869940437708639342343193123572307456268099710642274980612488505442469607272423733990007705762609563377713820794359075315785774941090387537317562483490764458023923848169425886994132480119403133768916235410935438516005109070036831882960762378329649502714008241271578410655345318549709985514636178996743435930988800605171421244069063090561141442880879602961509113266281128156474337131923664636153496881840441057169579774224192062180775504332443425046037386943005968369594859286223139752776582253831895466540318782472783828741862006367275334070317858109806667104139137491252863982361139262741407250124954331972266218149377416508197985631237776581197151880641641418273485901279300752379643941333452907083091739717942060590772121679647923365450540460894295958766134976275503240039791159337774468405557759527471260483466676054706030964146222157135749758279261662554141860334510183703372432595040509521948461240088021515398258679897315524859782690662606919928781533726594274939343985808578153836678826955822979241387529835402242324905271207042516376141563098476811547623241954635082614806844385473993538800331770607949436395370693308035534931815403281017458043115214990871714698489095468140812002666349979584839088910481818643425357162268527308518718255700608119415494743736249037997702264097822792928716747742566288120682865073519138483593966392229832455854664774743280425144261294002256939805482105641983383927635390944798470495040068647675128155796545308625434221911677420369713664194727388518398573080688919404126389490925960441581604204528585575644586498487804290024512153085156393358160708885661513207381463116353477960854110338911390368300591484559069072118592140876124710600719001435930373503252933689061984945325583103719546458133993939857199764990127546671367318367697688865279291153567813826031566413635961896869592588484902866514442444900464383603597499437015811777022092156690886301673379089516069313759044386993936178112423484643296847623506888277623429043203293376073825596698626747107214520233520381789363516768977544622367840169475271995546660768655194172286832648175404549284782447605499267180043301094009056240256836808463227906975505600782547159085628176771598486685686905759845557339350009696547693597087738819535083263953923871419212532443449138707605669439830118243775944137214501806006197901562447098331138138000345887623788294526824890154289924671237570106795280216460858542264444452952995138795583566265204561753996300125423616493441910719256473806959292130896007373459672713542894180079789015793962786250990622063612480475021984574532748199237629619819939525931662434116147682146724578679721782851867713023686000084698209240323209391094516505122706524860152516766526594044651662264404775068690339970482565882931106556203638820205660478894919956168831143258811748331297928699688956150552804480325083795929530341162062290441319948294274027377850837921971361590455755887935990282197055696491658345711128562903218968793170921752619251209844461884175743633829250993864656503227438896645966704320862049483270014560724154454682711248090856539659701521358245443904578712655134797882499860589270362961624378866141490652216729625747812394718006449031464325338140022800753167017776962285133907853766528524891773677115178941586981638416500158645982480005221170919453619871480939240065215136286349380368286886634749799324890436568667837550438315521862073023413089292194394174894956618478638622677515871874934964076876376784603896184653696435011387824301007617028857169799834262230880142063761593030150428874168318958084906232382130159079611816176756393248602211119678290299510142884283622754139154766500082846688405415709720767027643815334718933839016741980504262165414225795699663441743512127869506466827288246894824077500406920333289508655751422709741781788948862186737652352582104873871660270956346617748001611748825996187516824896217394597734641264507955706681029919341397732680787805064922392831342386741812559531627394432182822434023080783648608464833253733711926651502662051506870862845469152403499136864019883719034463434615087232537030697103652212625417487191598762641401603496113364092945856409059994920141932353623933390427565899798987895939219937995526791767637987447089761127042452900259397702318189880960999335632846423620700969692011193444432984714521434949465959837815827084821696864597329598770595870417744092325719960373795651627012473063493455159148053956163088590993149583732156259741682359117654035891706860076256401654520964124795872497079756434789707153003051701923612706594177269467492275904673925114569655830513126766805108753210931236029810047799925027036563114628736807179498930098680698035899986987849830670686668173449844981329923102743320702358035826880527546917392621338078617530679067369893383989918523154377648711298396680974022052100328971417425800780458952955511676507544721009117313705310790930318487944666319337219698058486492334993273299314228725726468089959354240056769030086542360348983803263579465049656876302699514560273555371967661105004581861972400942477364134306559394245970850500695172927978338869033730205585553733436501256545235098377051868066278751778379050944279712740467994313609592060401364109391968342255448987533973554848612691194370318072828711026639155076887532825184825948943745281428367949630576444386337859127952603877808346434245541935670261869600503950601638087426821844439167973944867131115262530218414372706094234387777676595578381408723550496223677722850228618862490454043679229405999672282883622457539775104923329719830168398350234362981336684104044657887927090176966616203820385747549944916618987974027469992100104739768152457477951820847720754496661660752472790127877286299864096100508284203098602838728596846525164237430074200802789989559941130760645821772470080713461157225026409980110730725106546945311169407564108329130245773901509039088513473423323523039243573871169320038247356324308040176765597132685100079248070636795560267226096311472253996459329521728326252480585188358277532829262484578411810542822829814063882186618323811852135206494304591209858639845004460240828836804761954500855977000009060741240201862577384962941924463889533630578489229103363738568008042599373382456104383665890739246315640583758876370344842648222398079426536360645414764197171867338670978349505424703717003042338509196855806868523361967931929042140845897290048204228696945120251276731137882468080003953764915888218069823884895775911498397984441326252452766771911407138909613302791929263482708627392999745568856433439858883249784702959164955905899138008842341606941734470628926408386453069718279125434151980110626795769019313330872507871005104929202306360916231802033452171416124995882338525415239459679616108451603629633786785137018824320384065916395321262231205010460132344952013051492839705620582245786458568681045672507323731212891717133689541182743652826966595091967389873505312877111068521081353535801121360775436489318257231229799073827004540210069132170106532268739284901467622050627918409562056326421145095129993131673290379912549931146768067984161545690091559641771055064917379137776832899451070690450403415623533828374838318104677411839453710557578950133400635535220557647887525074486154576186086783888055643441436993703876176263418006777668395229881023468592657634535952099133677874612133052829427549505660647075458348409306551965947559379490955953953859383638736023979895368539804444946920254162546668180816252706344204702947494333384001767324522491610740001361004045913397551237749620906353898773394356820560240768524365111182076692888791394470679341930703594279292146490630118554289994904337752021197144812475731039572790017978428818394927642293705058700273554613222347731153152093281290091229300226139035869031518054427222546541338628983872951690760840392244546594689590228058651361045626733939129969047067729213336943865728324513595613034764903334331037245124763010038874061526395451026406296740625823613745214439028137678623580536589184365897442921006980748936189403901686527981988368573827573830454554555807645703899457805598455073274329259060445442063638501849214003213789665449754730528073734982861875364067228061251686896411425651929375613527935197138639348662069174490724372573237594544222169284576108546177364853857899367029919692533544710751236902859869456996560756943529874707259875911214542149554525790386317948592649243891480835673506102932678539636010172456875005187300152478662707055060678384789801971197331741498941850576180136244448159680223153400729659792217004603619481202304634039633956889115101310228564653389596769813131465447927146999362107510539722160950579692795703986003603763169295476990842662161017252060140871345158347760160317335417448545615141712274719200324613785669686085451687543594674699283284861749402948035790115493748062774497785719851833356279068307649035108160460932545700748536681362084865456086620627713726772250139792256704230069854002581048284477010646181212816664577106947862297557767901284186197839039572779326310930737665907612945334317970103000552058447880427078423935499221076070488708298877297158491994545514964667328379398420317180870306411343150983425116923412380279294970784814480444570317487393429210856967871195467411992573906735230309498960844015313295121691747592612866749496791347752455383799280419309545329684313622299112902737500824988894474157447810827210337511801809002543258263581337096141187598883489281669186866973535934551963773875601213669669971658661113253888567346817255866080921045964782775954207535506463454422824253824136210803269343085056062964309826852151634983675793761011941688461669661730145659091516005518551222526984671940765122390830554596397594428806241270991003516514346662169275642785167964753894439382906382478668223774115217958308620333539292159423097142254372720878342441342513185731659331583154207525513986569022575729880683726933771599429475822713286730055359146868680004644493660904274852091896052684617403740752640646061412411970756478918767705778040465186479366382338566350074834850854313394253321136159688250665790091449310011128355127594994583036224325530982786266598616386488653198829678552995123618587607235849415678257780739436809233858617461759173629460452264948780815665207932454189142299237341920852130849904500139961268015824963627293156289964718296003409425945398330806515442287707522288047336654252191562999507988556268125064111189656195801485529701289964168826390485688744626593664148791550854746145314684423587773848921477106867770873739182574839573043005097321503617096402998921936173089638223545919724035030945542620892236052070330251075919852157640212682232528780520977116913255809907931975095518123627746062596183523938113969325539145632201415251834231834513584642028962808627696285358759604048335170634462796960873047855926136724821085605309965989829340726642179488518478917009854736459918551905804057281845265187058335692347061623910326794777452719687870451617925052385028356225617801723476236313737208886739324338687907063309332384547679591296896834156512950364427464181132871031371725866558483631797488929842542834586922646465914236829127415538226079881044167025404065851375002791695061246200648700151250121469399683665752987214954670262522228246023826990071681021341922233173185606029883547161971577601417519681166964906878158985354959875296455321882605587287199927758962166323704127902270473121795557073562154723239683470489190868497279569315072431913686119992362950026320337851444604622922781846631218843930334062269204460274567437559263394979193174040322452686229761189662550335822711191014181604724045576944584329948419550998109720303244379088780261522288438373037556748596655623584589752526252987041480702667534758719133615262796637993862540144479862891116648367700011853531968900284786834902117493623237831191622814639997703290087782315783602311945349804532349427445168948677308680010330268583880889122896989741624839518442302606954687706501910298310004972048057077709853679600295294841181750924555735200932623810275740182381305053612916496767892594085563296550977802612992184233799537706586199368999637630704052375811197520290937234694332368975464137678321265930111371798834844917685378701653155564625839359081965358341271726768819561998180294965864409311258577221050688043193889738105568468731726783125547739451190615950736235253930828318033511405812846182760175935926251644091519721633945377039051311219899082004910000196921398866989655434291718645399924015753636765774400432638507151662031544518341860006411625318908796661455108351823553187312471012374939464564924861739399675064096657966363903535189414172566250419284251941159062638238825111782374262738116786788735052900955493747264222786167810652870879905353914232643352608009577484005163720949293475617978164953329269830415609730139179362786151240117108735535850116501886057135359111463728835871923446500728491367870023712388095885100507589295723954975252508636402937374851364739340926351446625915277994285444758760655798996149201591663274944260458656522933890003549659682558565499979629475329818335567778646350499868021793626792609588249830213074317292898450339564254417702263536232528060506128648693968666237379980679771983407624186570853285558081304397684580249963417543109151428531612801117901767365919857825148109811722437159667540203746008043162371923308569836076110753518257909862057722180990188088622427114738500116570448959977871735356468233921703246877221046678986782232800455271740569489651448875654488113361307882761664173399852813543520594800245793644495979494961934042833383456771729735507775653239865939086891374273047521846645087689182066332669379863278833991353315378425204771918608100983417083560491387488558886397495970566344706751673741342401089750635962386622573390826569837953510430757576619977253606491699051846184808821512461566990962828228772853111483018614133959509475827705687334359033311379919535827277142711289294496387598120357531020934161488772640498653740135240861839102001314464482888616794090577786190104560392062651494923881058721836884991127953930000947859728595519581024203091786394998022606425729034017073368894148512981259515799828748067156549909043700109054695737489435001719452891095315903611617444413785705116538520643809353915978780900445912408704370566746221028999790856375081870363219197375079480117469072862169702681993591112389214213042291436595917085728435029229482244663097743379838425345506724548209440559181082581096392858370828183130111167178677324078552397276098279365130498790446316984078746262772205608363008902547311655129691270341889741871791647465424046237466536172352061048431732965686466945406712342314716557467183143476107166559442054874053199893828968170249834305555044586058571781797362586185721185147944379967676979394479221937555332390790784748576939234983494780708661764399272380019238607644146772158167301512450927899252268885179126976763308901667074176689528861624902703535697283825886802946567766305412683875874427192739403977560001984650333582403144448458689284193365777454038703899613027115160659639857933032536523140130628492674081260190312345495308227478044834544227323661886132520717685465094238940989985828993924914125310423011211171410627491944170682534707731117169435956414014784798306074894153501312786251651051537366975200510193519753939878568570374863966956426532295189404509038294901267273671957266012367385915910013243410234453934711436731542090601112584083094690301908757220057314951285890173167822621274768981363849141803078339179197393779684446889003829777337410012828105705414835594067975332105533036759502568381893635643389170476590067288242846462025768282745655368125980864359811724662359560935577250651712708183187170065783370371739116897115415543023537974441825472319075512295349772206745132037802115393337872871508328996770632380710581076580271865783600391143718276035715550144537698673581664832735633604022592843837535557181594142776676655565371958900544748438631447098023192164858449678178323365505387458896500302692338259662264102332853551768927301888481353901474527867509246598951196221159661244374452757991521246769485449376350157664823263702230497979848784473490049181840153377704484485469614916916583902887455370548344839860365020970020641412408299855408506548535879973045006288350643972487479954557423794877814187884321373122539358443919177157749832100306551481744313485972517497688376518942474942334283304041558464703282717519456780018142033516213333137097927224147926956257781588943913665820817250277273182622260919623883563058325178172661382239751935870227736208805705886480920999257613503215009894346144591786112873650566800625138312498895043088332224129044680211926155252782249935383952665430366620125343067625477619265069954967085601046628429488066340037524443678786438123163524242658560906879023700550940826395508337913277962782340066309624955578912778660007571150543772607091406098735162580798189220527980807348601262176141505278435501481671353465688686038269042120160594792075324187406320441046834897574850613233224294051274511203994702930998230922001090979617544118375355199947474280212719408605020086597474578871680804208400553837719852555365561648523189152380320905691570194516835698620526550147012871244130925371787503767589741311344216459017841037253262137858939388521101382163901400663440203652060876222856066347581611578070262287589019875209114235592576560581229190150325578722192820902691047471677630047866575803674774424369955290038203758954669176265192181971097189456824367710418320466655743575457183863828356230077548334019263140770530957083308294702334286394904277340474220030788947378601728709321492237077552542940020411981119197979649998932750177755042813672394213373291497102190546896768561075554804889700852798843278435877870278886117505386450406142458722301036808711679748954024669227529910436544708958916068248036526862330936835051146460970052585107965261236376272747239794588474937596437707353891085783407146390912798633736042708125290587691292364786101740485386369532258263779859222022744796576801730754524413374644446585007335559801290289658564722372211002639778102458876036036146289090213642660482416040549743301309919961309974714687146915994874001315890739665552178244377930308854319391731639314290134778181453989570562570092455679598261548978334411919275258219279842480997545461095339495075411880039095631327676502388565922775513884875577459435258807641572703987707828043401544239963998620160010748301932037846893212235609088942303974649984613439400434640204835293426373418276791121884059988968952871148540616538904606081898904997969381227454528154704179759283283882657937232440701113947696428456091739535039805907234284418844039252208187270522866671528847558061674894036604651157062923574711973043175142346885271113074237260108559337460761766502612149587977073717430756491167512079925454516027595795693487221260059217308885035658525504655111761179328769593349917699879266584921800484931469487871138018980677890299064270105463213169792822065102919130865959549409060593057437656815334591538878419583130348971426694102017298015463237776194332673112385879810618359102892777151490910429693550684803741863178393042293060596509511098090541595595166447542584551843295977200505556252061849619813698865860988958434019993263327460000365838669385742690162730388746441158788275620302643245665641759372789936443716633818552264939902883241887573543177524879394914232027832660364063216487877409174336800937122115557243026709991951950316843915425830652431056162416546513225937350963356644886543616958174329404625265319592019923217379879291961476680310623551708290855661872861569315202098148994274706661485192418469399653714111686113617072426878567807834835070697513660726312204943056192390256147618376919936338023924354762726929137308687229850845253785164119126747169863844528546153795485476664487288931937502200742361542172756221786061207130791096424791096363212605895604773990618441664793436591616985982080881698456974400237688521814555875825496208830494307556787574094338130266861003912826549463064937073913050362996068053542926493632728885664161264946885620295941619768373102247747273347049082427640848315140896162841893805231682507096575039055073311177373039493147603792907545425728088638501013670958901895906300018168195309847814208948107889204371008414452934244103212689545263777024164631232771155207001466781230223715551672004161479888306781914831587241884508219751909368614004826739158993172805188007319899348846955090809331220865393567603448263489121494512029798784678818926158082882563488469978392527317824089184268719939066683274019692104240736592221462103725505768697425008055886108632031726369706013933396397967485738928954879030072473314499140787380275139627283726652813532568381665438022487342355702770154765015548650279296570628308332594754416506832845147123900318559943631910009696937836598663681268708333062092575685557012259477580916290630757957595531935315270317833980726346100504671659732648972543429477013886903453147688715460163947497196230989323402935507286073538996125252534611476690888520942337310416404078675242380525888865351233017100369173330212756625493925294867976115793423090360427078345909105397845596552949056703357333319654062298537736509737207929455860279123139982461325691457430543382138754238157911381780927856944234513504730008740848161641471928949442386741728018042630914060424316772695441880858204181390573213759204565755773763907835421535223469433565081714031421395778804408246293442522871654365528721247044419171528093171518475333644774855179521121945437687118981234164472390725739056624670578661666692209699188968037328070301048297721646601948441293927561434989938036365152185723840601438384853516749477854933106656095463892527374759530607299638008230326724013495919622459428593455635086092331507532112439374690593268917663324580407128944983477695684300365926476652698424840389660873961880871771521592090480381724710245394195913602023902438815102853211479191132545070637626904302127076642792067594308151760608330115374199657262479603876801798215547972425021181122513346987778644260045732614959982662104760201239271770655874432254728231311435165634219775117038203342190914934654605470582762564404533590298997360597107559318347241279474792228797700980288785886495203470196837723096940962691982387867970099030594933548361138051738922169123183624329537653570226921103177728038344627138175261262250921972553047757601309218220760297285849635614201675420570393585282967309906138046907366520094221570322251485505245668269952743147582638408078521761804742607748220938196170456877817138928641177407770057777702703334683512575527726822512695100871792126455736552574902432626322342375983142817046193018950200546078499934535268846653504891100330367073312144461002728462776657241913710808089100142350098248707225150643753327215659983816403330132746006026760355625278287108565274213394489538726567565246726976733977706727616980653950631336906704173251150794915418727079383224411243754438253527047120850438444410203799398543257663213446034103729090375492741693081976980678821299566900061346346152515859199652470762265117407435890680356495226651334454003967968339029990113532935046281402695261774702579134807634587848672392236144659007103250216856664784149071894248616687253260585467996987625076181029684098671335284270269104414803245804907151537534724477831986159125751784239575684038084307827422805043443444252708686181351719950137374991045351138442172154272190701306111416298947515622310465939243130490023103374312161747000541805482813142698592881272425956052337591613986799091222078906989246116872409137429058674538166723248002086932898954590610627009322206747271354491179811362631675065284687180305261243696687229827874023887368363328908285535338180664859949083460335079443885723991107466714725311840182744425554486245003974194541393819985538642431920677835820910293652094929722317186424263205017437666447821641062037472568244610652448096012500318153531780903980858087282982609921328641167979952413820677590040050047543823295742901176962928555276241256476377977229360928922115566374264887913197357069182787173455583379528243470574027644746237349471241400487232618816758678491524053422592311280309546245462182370917691447993897189924532901716194400495074286129063870103737306685943247049285726429299960530306938980076803809508969757307491348491802514547827704558842711597855969537455217305520382537807989411978407122715027565486229570519204303009131982587508478219681981810575178706032099798168845323913254725607471991429701458966554236963994548627112696389539793073370903429807460029833757659278460512175441668272865830505708761879040421008703877510706465915716044756766519856297182671397128937362295421560710614924462459694763481151007917645944416575267496253661507275067174447788624994810279306183934690812568836648934901807627307265650313935076799698749876419109802130492211366271916274346105174445353996903067074374665663532521259060602589304659788520400685587603296254153312450651974561575184776640165062491179118366190890647210613040079567107307667969622314194118600868186392281462862151388513314227949235475373292011343730045223554989655916110789090352804281864124904586064222330933834999618925038396064238634394412263006195980197860920202584046287202303270919934968502359577357936002605012733370509105153666102095797022814570810185970999524447664700960305344760074201419164674812173394474821047183851713365410221506592808759788201952833111856178292740532403821779528518029634117720872140951097178808137831360819795426965688542681491041909540709169176848382894147201653864206763213789722624212981884260083854840558704473618269393913535041778135056615542380788385134430718081308812137534311690161608668425061206717512258342012953734822657426497708187946006529756257280095167220354164175506432791259337520538684673666813981800963473168356399662967360347803085835797464057821425879790473811326650675351583797306316347558085558543865113004172408407730160245913929887471988620090057524098745596280778073142578627994027997659901636485903352652157074648128487318244327633121118003951038400920989388547210025510869724155419666341123729434424658460075732448746796054863631598096299655006597705662390548682045989740903502305503059854728496679564844048857420256504582688756533017925584613177312211943237376838272739906186073431181760240481493829562551093675265895734005039355486772757802018474993918514281502044861902420717927318283493233901965005305444502868441302270541217280924726479605243982576543158770541112571259284618746886551429742330365432264664421465947414592153195967249043828357741157742470907561805458149967811500228544928298793610796959897143279626371491647257855390597359975272163853255549019559429090001171149192141199937719224759281294191468645972588632855618719538127671989399469815706192296547497964982730010150464101311822503722245397443858907925330108319940142482575076219042880280268719985931215618220607751021724891407840631331401483872908786952155826089615103888450334616995006067328946827131090368624068649317730111753408038119224533953949917106327881063140640106346992726435821502954502239355409256569902222621203308633048143188914197439818464693151108499640257213856173123487285492317563808636826587306053943043699678741143409697599839304425124392924725211661833240991416228902601797227739771620920715965129869839063393857711344716216937408182575291603865472651502941220065248673467061347629065034853011632566137769021420417581089922767657276505468380675632796189271116143628228793844033660592186127222917581745325762589568436036200939107310128158352007143362763755433320799303971394607013098411792464897903756114503981356828129309213372514014435378695926754429191414039048714158145857501950010204466834731653573784724300109766054041824892635387418893515927712239378762701798230409231287034638313250008920010907995041013053412176967068180384149895717967176257515252383622032186629124179829079024652911578812285880344442524546533991204974558699082126283285873983121849022292275849482480685638747560934175442025671198291985252080588670637643281287992829287396609483823088978021073083664003940177793331347276395734308371079865905470141892019865522087144505720621050521961904957630715803180129234222026498893395803731927384057854431800680769992919471461724414517491116849608344945383325037766353148142260372527994477317517669960958184121705089252722644858337267247997863052191458521862958478480433643191909131236352523468290840493666828748389851805052854304268162461525743362806284678690274803347093704508855894507658991293474983561960916132422994921544387556656009051335965847148677718760598323620664981734297105156502910155932028164063350073202982850056865006592520498047276313457606356575190815816430123158492867613082501214179949336883238717465751646300666222706981531206879879126051604737760040605744531647206382672657708760013493625883953805340755649653134264630413596791488342271430607286520046723302010166865633984069196379484177447051062257813981264548910389182756052465665987458877752134159561257990770800855489141352803682734179577511141117302951680492352180499151659228454931946636679415755878745305595209609606855270319793490729384717084455170462083922910341662018086288242468182294712629070270915816087490944766364075305343986109824583651309301354075397333997588608243071410181714013838992509705327016086866110492237365611103225043946855713994393479125243583677853311484788164105123590730481896691289477649639128341347725599524553651688517704775208592534680167904698559482895869810479210883784631644234262483138530361556144254427342119978348959232341231555222784561429383152237777857464140815154068265114642671224100760837066485829025117423633287965232086100128719277627462351933636048665858112491848994461079206447924081321745971629281033333702143204518216896414693003573298257675959494536331850197535021913566139656268837394928647210625392144902686499582143832262965204053188333299991209476915599722422047332603256630412537032328910876056766298613745280434214845344570614347005995133949808781343911121595657923726949304993527607495180493503990874133318820228761207879587149290670832982414292198438950423311386629971787357396102486299278299914035130282555559941698589617624258894288250108392240649249535206328205473491485310658489260168900725288299032479983786551818059804423189856808053311972028471111189839874324239853206838858913678947722303503579089196820127754664416792333843097187714964484089781136962323005674827566964330450568021474590728482765989383984562382780421597003572867815971818646759832242575979008059424958443954179821209984082294192363351992622510863113199558173185206252416352485390448824878319632555786172467436381589147528778588635627772145900555226100491943051922381939492133145090281878531860515130771616404010128604017819755654911222680462651718119176494582327133100423349878496522473006172104043406559972664150869565589302314844433690084179738071836310210311430013566227617660307489770649583197245874566860076183354019010176682391512084534815449127699592659311432489858718052062961721498443368510188145904934474356277745518145932312836318140778226283754578586268327460244869357543742861535167476522670572108524595898352690442538255327250108531251108809388366170525106830670430683186506735716685679526680884269498782243290818638527371264208379641947247388765665241659001030162365573290737294272213160533488332352879383665088252137170123176763267482356411899770967806755313261792449327863383653930921446117940851063729542768741439154944443775976631063227902934113727908915066396875410869332816241896813120350078284760370463412814688925724223860254855901110636142140124033315097841397938722087628200286548334821495311809534576088500422324193897106312249829659836436388610376443394808783375604519009495273683658136549158405591854219846993835031397969197313905026733423467678050679064598789990339004730962755617856801919227047558980934066771006747417958200885674093782817804699168868711588437760832610919153908794269987569525177793170771902046945447188141147649808595373075201725014197188576143541548678214904958753068216168044781441501691932814573277385062861674417346023350236479227607627061906207812797382938860450312046923382886736338030899875594568072034125980531265943976310680138626241629440747740353948641950253829220731170764462990974252773306451273269527529943452160839461727316633708149914238157623703398614350005405306299696266871073601052150334606137800042143184315205016889658511826411552980897822196976313346623755947711567440273966606867686793459381292129348960961331920906195644213478062120871212241940769409648214056096375356421922403183169663566415662510506800956917680406173191862440999988636929805664043299071427360885320995776286785484082616355803899642036941100584578185578030283464794303670357137689573212932990253663358764940740110005926989429993398227645128632429923229271510206929616375631244983135899248647375805216437521025463815584761418629063278628954639482504192313953830888732626869431915962472769631196255832397153689175791022128884796264059563749089805816891030036365726709635834327160663716457697908446779204815410877751908491375745262362197257969898645931848893873857183722863346035894170576583538895847317598015818013151942479943105564592736353123531927200825785522587103424379210346722867365187297614682328937361134985376267252204544117149257886784623204592804329538892888164278098843538502796703624501173509418953345243702118780542085608824359932200700118897814985501231454025522157352222774149614871457856839180497496448634162286338793218296862794000622293628517557033106910157804521592807595910654383750320937673088106151816103381036487680545060259872349335668765525875501905809520345835818804897270936630498167259394432878801869564437269795812955000795537374755175327307407779478553329385552339602369700831148099179106658915074757800455297878691016226989293946615999045541099386096023192946514429249694702958624541055974536517277682904301399142069857237105352861455302002523118262049896275255938735313208077649325665356749118909872942181999738271712947422773706859940802280638154917678761498285409014699911927361768274471514123138982795960262667808198028252072655003647331134795842479433378148460578912309203181480900853870786074516377007336942954826990042228069668979094605919728617361334873604899099035099444613403191022386832898094686838755490623271271560959787541246685081635310331954869955552839253859280704230810073002177677495189338649980484564705680409461394710885854845856207796449153299175271885397749575429817132312298813906426953893422452140805473185213201400527959474307370982541098798647673190818009315980764763009679397227621680786416677773668177198510183816137236312809685833753717584635168979825475780255152588034000423818827611984826877334108448672324646894690190501898033195065477488239620066055099185839454913718219910523608067943176915526100218555442520750278371726231088637253592631517610937489190238175452487312537707040563287539293961913087693990376213659222894439075052628370457359552635246121351658773550150285902179284895485981657092791625482495823786440296979942982756717975699142241490014491507998581541846935694030646161431911312708258706993644515145297525814667567840800385401232419753929383750096390824752300959401375179536630824170851653341857911445075890655073386519348335466145066308635490444994244995946956223957134310497223338049602599603716538965302317339887589974783941632382698184906231051801181355660251019254819501273056490007644008944345062521630287022783046243818923050217377832231233960902716482851000372580677302437300785213445547051300567355444583549269892493960267766253564015166769332215653330394627244816362838605928247183171484473262638452098296260331578335592657304089687183818411914321291708042656546546803555643971711090641829509225934337189337787169927440191814877418966213117914021511131991515002554209575738958062857481738013676105437215106680656644544721198830378825636048735009442106616534535001175411873651310844511480934775430449470364310934331197385484784076640882708568134588600489991633591581250298167655884225049257156122045574028648080550648004544179739855395919855370272880670846887272098246900971095098055533504837428447277092828148757030413467543794953448055412899439882197369975274798558932815478834730978102358533619353671231203360333124400959008949980024441202167065166634900417485049709330384017759510655551672573330086025193177874215276683922969060491792061450572290501539106120196633875464194670268486681365666385839390995929894974501307452968583133748831297759708814338523627449163447538274096614612069922284793248279740634071242658288805498900955535873368071613945202525933337695205754412434805152323186883757544869131603164212872800349186273228828581536684085041527386959378281804381502428271758129736588139981478186594292531987436124152965312753631158982759239268946458419230212161294347090406791162505309135434863640017462087723110103944025911701162565717654028625787776508814457547387549096331767229770397088199107726039209553258958132931985929480370276356919577610756648776383994173068132009435728831584441262154802203599794967930083810870171985236534775933273912232748457987705233121933681398630526605372652644384183794526346898474835343679583605433744823848877529658156000429232281613265680476399991737506363578088712820848710936807577449980778101911953635604155985927898664096416864961996599577226061975218596152052350266841454445244324038228810009434517856720235439052497319138094556087601056349359995890757237314546505848973076930524941122178643764192831191547617647672851124584690271827568470613183526913527818364391936824215412720824538145513707629797705056634149470521842464849036033653305602295159179521818936911848909977627539462063631254295803267250791483860391672733565174770170242675123364165418037715031201155154092727891574232176406813302965580486122209447583486434991800978459717347035474308066115725332736262225891087273295490277971924797867128312103243235230588463026100228271903527754191619783132300414716972786620246157735064996222619947385434532263022904786856629382922378570269969623457800469209221571804224874211678029026488558697736597917508477635007695637606530936349351016426898948904281559262846933172015726871077074949224575667284567916428904678539971441967613616790994443129556061670845238904515333164658426350686504321317481238888428944997103692108132015664262163655707253870214088192866041764458412382079242174026731352012160223673599569110159486364099579988586711972314341667232749100555838883770131505323521006081783944208496388629228097367704287831335579715142117781606604300998317450702457354194809850902921722031655489491341326496724315435588183362758881773496148896514306565704423294153314725691521096759838071773627159009530585791607453585630348867448507706631788124825817033188831990851988269573122842409694592682233831567888254256332844166102113056898692724379651876115688866146055112537930596950883998021390940332757946461834530596645125099378993004176703269312139744098977252844787955620016072602376346427482437241618740351242786705959527525326427886389723639144178476700192098465490824115158773727165961707147139822543713411711523514491277383634752401196547136386006904428361655464209373423303744802902933787434787759631479703443799946858673557927157156900046379758126621488700834636594139945684590284143351133396624917261157581417091506027587428296113037863143628787680050885092370259123009039293089425057672118347595063747603404997617773458565372056586153105505579447298108077761861925462035414738899106438687030862361904016509248106186569779771121704602486957959560288617245888423325725418401062315853670263949368976570045449529329313377810938812863904529730006952814726044554251334908759909846648662559302445423204223952910706779686884039146119693728967766971285565666537406256526252449739812044350937086460078032017212575897843979303858220364536824213556356556441203260912737242975477138264897067792498532909347051095696037663316484602861862589253678734671975640546790586646231350968133484628404467899460496576559493475695936347053662771200818208769101834030177681100093469126660803148326807167364525262426290772370984108595236066151357505280989317173047171553636768715776966612431400298330709091122419876643399398065004221164030318353991949135670524004756043426590170801962829029404225000897861232885194260087052847142423126162615771878184818289100641962630000888451041107747795099691859276301585393250962731197438132925403580581296559707309744499466584385873096826950910858664220033230358877836131812154659717601482269692370612196713818826424311594361188009667720313673509707327866508343920734702541200779575149228260679495945339835077669471261109072953976450874515291773020455871954512782115044546728649265989630110660494270935033907731938697852332714315340337048076400322255279891999161063063974876543748744187691854758377523951978223168755688613579888243296053875126489281066150609533823355919720917401369393261517044951993832273588503685110732215884273869349267804136725378002688914751354040215857386799418260399478137888770246653172795788292738393774264790979130501620416827498152131488969961721808333196241997935018664941679745645911484832260337469784053300775166517136191562319233357662837243183198810146440381888936992007641737837726413861351552539714713195554604706504480968319438147852437195042898340152486759781243462374822503292264834795490724146434935884947240244589981980818826006020296130117342630471382812349467831034931772578443776481587961449232192882021970165080271531867105957319707145329456656555656092461150905686191906268117467084945548291235009557417674503870502701526619486800750617467191148379087245125032427952081597639109610725569820538978605870989111414125368994908851758282957833079293388885505773891318743391657903430861838910185259206610508439526792676198280088174792895823118454988142524445021235174532344342085125740200227947313300195849136138031573290756617807416662123291718848596423486187462174540397268536462455840546207546012900215374205390500809860110783402985125387119921122249309163275395442040442227850893569688635491165959107300929863933780084648627319118930368285751383796747499119381132280937877196853951638278103819254588728883841402322165247500161057407378818768584754620849574507001971714148808857127302873000760777588000899333284169399011896779392442382424600060202366485300176953473973491313161479861350164029380789501992719033593506378175352418320818833424188081657825985090184283155176082307197105273138514945577826919554515629388571254179360878826934578299198399786794956818151544154303223193608660875443262617696288165359077439971681191801114511777452779677391034614725294893653978245820404162281158894687710329581617013676362562838651664778784964986826418365659686708909085912896444075371207275944967464123600596239137066718366486432547609725665809461888162880746490392627623973375730840280223448626543602100585719516664343975089410063723318449896580325629533434290667010932643212233993606837951717758981224846761549288839017308933727141094369122444709253798119573122969036003088703282078229698248718617928368828438217712453016203135527321088017022406194665747013129260229336401377611807648511717532710933503011300300775046248336169859630666230608777075865880367380820255167794501108315608656850201076770791764602265502874423753828944691627934773346317851276711647535564234269741021942279991912934924746588411596725522090030589216089907470479790695251244261082074554306687362893896709889444347765534387377241281322986054727042986181660571171017193733230962221781015020306110146056201398849443917174360038572486276915645306351759489769313111021996615155551884980978878638617566990698525856682275041903056138747212365977176669228323144507608067237722088165243228035008408748101124295966298798804647214949370566286310282756875423139474476531715548030548866875592104571879913225994860086350826326674550613463837639727610011187466124674605492579424184987408785110088671096285026171076300795505057303764124815690698057543986618612379731180259274386837309669517468593103266715080970453451230978781625072658301224607952497979963586707873854553145084821264119688570458939614500326109138586679795406229041098247894160869005540786293959346138685769333925837820701585427364235811565037316755937767995661193074144079407739399978118267405413053127664287401111803454212640860655786609113588842915263271138010396950649897413571685950132394649410810273771630128641642161709121508956473703421611695003239890843950030185506176982492271992104817713465411591460630075016216832463974021111138751626938851447510615082699068239491588817000185554968717667661260187351387969431115650491557600384698472715229018054883310613590828769320769958422268372683993012844617020284074109161992305319977714351036396824798246483139918956314623575323179090314115946244363791192107965226047233044582338207748463419583281860053451120825626645543346245395826675518799591488320084696197155781347803765746037390279809599467623309614657007197688320342766295991002585822651971001128862963498544780242235425570825383821290346467561021051977337546850233090109429630564631724585218204501582092470754593947754158949151721684325853979298127721119119618230130062076454887666237667399725692519974623173707185997714518322422114011063324487773718731812624712771227297968444601506809962819693137986562153139175792014104455057589218311169608044914213014105621660039632689312859600420942939267037921349666189377596254357191733879715614394216559970338359131788358841599638421697759478386436461910253128281388196313931144069022902679249371029423413549251096636680220731118863619734125050766037976978778637490233325344702668367753937457435609668395026418639966486659543748785269272265378704702860740239137887360503122762255920361895148163646005400080480664599172166039499181548140097111047158608841960756691078230867030723000594475118965624023270021993170853026811923511403730853603692457617099784432785119822093666652306965283789194254920027933329941108538138269051197050535096849746919753300811740400152672167525142779408578336210586150708919065289788952736694579744003836065479956061654066431854100985415434073449279833874672280352360361722910888514528783636365622320376573963416443483404382610564468365199361416466252184913160723307632665286228953322607639652293468725832360909844866204330262202805664597386042989257599212459153866055821259401863222114226125473258906926248090611533188263912540042697933428948743650714850430613154359081906587632178404483178347738627556699534778265720172107897917016940010601068487438124919230065668474862778519684357663094842488322363147890996617742512572730379172429834913103009820151950462684154135427267712527689046134856964899868513746069577391074739207966037841823228139355629406131375329606933220386066904740056947035206022957043667270495878226863174708967947564816013399751725827955721176993477299090719030033532658924933520618888701774086234444859523016345152172691163546668626754192639400597529639864373192161705857136682099129406310165783521834421309612328087424908511019062447438477436695109284878146721862643580191268701527865596753909986548194620015770282448075676232114573185984110633312476100948758347777628226710846002229111808887793485692755780308912779063296090510906930515853406390513727789164943371561063537806623261124448775026953530680715223279119883563923915307321370707751535601826038331432449247165176015426582006364874578714455417745746809208287822137758965008609029055253363465182342443897174958505773648193821874099469255871725422156363464362297069219216759695293933587224282189855419987869134117205730667981457065271013595797937375618266706777208095057185287164401439963601082567992632758546821043749345133533922057828184887799259449976890866734765829697126264561801090193666447847482288842415191786162177735381344594585567564773123801826571797909651074442610580216058428444944921814873663335468132152970554359041447567349954426221001182635737360489510718022774326406838029094598289432699081500107497627772409954578211968298265195107936808471971002172446223542813265379658263762003788995001363917044010262964045930780181179055412668903796174936690557767778396905142741909693994697877407312764427332934909775644042900723652275838584832033646997501718800094585610139754042541674043312938501757233321211832466539825527146181319102910333110065283510191382669099242497555490357705867159443855893529513399288738927075930011285893387273541792155511853364750912698071023743110393153012524292088748111134298899868273665238481026179628812664295149569259977684880664861905400860088300448446253053980831511467952169287974539853561443507528013451304891404612653265532046232692668336459063118866625117784658353375200989302095144826497943297210015431502559641474994230277751491754900575457318533706855239425530571643621208903885441666524315879536644718682826576590725393014274448917811501558858670690988893437297039231120326749078242003930195209023725299517313600212788892605110104747807342808560563563580910379870201418648004796965919872505506885888677958369894720153630959715452634752898148542590288298562502010193630564342646746030183380567756237040877250633734095271925187481527726968067970493196243508929321931759357405377081999157077872176052019509904735735980593727592218240785390447033326825993695921565320169286853968490048870746636505168546023230616384701052219327092698267920091819271487239011272431985664818257772999165067789794419001386598920763642644518810448923262886691997797639491235545732425356449639712472998828102287895780523517923863851118306477752912976619779215948033655012624128356073850238808781459658426630104146385952767277606377582888538416766262318391827081043350213737845880398834830200062220988965808299220761301559567962728394528591552454974331964230489380072078201092470642458212309473055526230328784953826076553761775963543142105726890778273270624367365710584142888251773555832526103688139155379884900501716085026287748570671298114318852261323375153202452357460861839628578939617145651762730784064389357850387263746992041637918950861174747759627651467053140539817151507081748077705832439340997383355024643392986969900855629875353947623271639748234722818262243492865519352076863454742025583258508724793368052628882858119703415853123382266884238436446364551070867966166496563324797248351638209863425143074571001763070505214944218884915337642106439484950657020813637087472306480915877738025648171966693209704398437084422214584010518524888257571061135617922815634969786421459947874342321801523962148850959181508717155375244471042536549860359857841442066044860029651177634827337139594812144518644184980931725417419631974591533085623137157944976699462627336035967339426444483072588335001390171722942415512275342925007014759044759207753498212550025198759993708070508210977839677984804797580992075136666008803061778737010653540507139614565330526715350894155772878106910071204812997752662918272412843959305691196148875912735780728805059483914067770161916207991377893442203502040690332963827437734854467418820577938566825256784186259624570738448601813946336720503094314978573616409256443392535030841805542764745834516449387388745140595380634438952917614686951869118714294029179208937278213402489502025831768955092038914136019205698245354409734013168453949652950140706177442730929543409565800615414752737306653787444046268435293377858172463947696098086092383100735995616697095614096285180407816083489331585821565251849938084600830229233314821579730283987319143845462437264950208777912190628485119872963001470623890998764051475367617771820344911322098371766774541760761205262389999480618092334738962986878174864158518287374517102710575955777771620728565519548301679743517760616493871199848118958523002179973115471412305899899458661050747572909143258162887675386593006278978119199911724346837827106735876916224666519399531524171379223735964733628074541697104920358156405856320625035942422287003581463654225548271095053016994317596153831534170214875382448872560980407321614193017858950173400517863652842029368698174359289177405907966395915627416114015281963614409102203473559049928132016457015887849408481796275907849066135799737625209984301105227055450275123531090216718420179983366461161504328770553636355857091039284692074972981308569089126950735367673459139899440449982505227951533425388934873789295889248501611862250036176063692645849540621427831986650965819749330503173463484491044038482191803830071290736861710648278419852144045572048085951261965979104466146142237815918501896406947126439535897285357306165900521484788941306690617023659413099050023363842511024630422108761523243066290529575352712494464661656639545343874034141946402772970822967187189082810467076487938942251237283335018860485078419727826982035501755774283534018327795946746280999526257954101406083376906663327733479985241271756349007730300539284360341300216181210272592454549673073144089569630640936873904695251607174947448769597869466570067555868823278534429363149451440081143266806432421650397497499272486607263853570705764865904848203330634227365359183299749034227032659036750040666403905305623393283857755302435797829949718656768520643696158623200852352691300809179143859317163381283029778298979881932864215835715786799204370318427627116365075147998127041237393372610913511741486047190747870872593117274903235073153528339288015018812234779781362059868960903838186134090119326638336242314136288163928497515354859875696262660171799421409381397172241230266557298754761229086596755459928265849595048553194184657400080287925676887592137959973128773480451850942346978584228935098011493288819282717928323241861666633050413459378351441898749388515595337608982154898851589883374677636501682635593376501497969470579556714927223190396085713251930539783607200841320071507557175638343178945430424142038932866661142193730864553381544246323445719765095689960443760497260102790540749696017585660253881485192155888756902765741384926723873924752499266911303536887519689126306515768746384092548163272287223779062229437680247970540660492137012370855102016454203256521889958621126542952973096823800212987935754225644899997439648559751411544735308362473519567338541014088292734157760569323842296039977026638852081136192605571093307933536458957644982643534370025655929398936400764213235879642869151938559113802849971356369601819700310183010765509985268480326849196238006414896822060602462374742182324900793994159977731542902274827491142615605735909082774429710384426120234475127988595473101016281848909148011569845732171598589265535233328134262752919698178210926508494945542546745185686731414071065695773865970507292138515891658626920428385758309447939208947383207771810073020388945750354345150947520699327010218341725914538627639404019786040544732192826170293141627693222618525921821137890409251452051550489594178960516018573869913477659473339750462552166970243097167727600694748613827657538931005636440655489845899786769137219635101173527735244429979704777734731786432982449332135929470650265712352097341299977206108390420849869034134702300077357091058794242076446630017523056764990716992306864766337146517267011712460721292130970524217261161215787891629954222832474203615301077311487736932282008090771979600460037963415830086199455043280451019550220391035945435948709772659898690905006245846494131281709469365984577015171209230203543339328875556493181550800157586354954295111673694672283898555390659770531414932943083074569141567440962112609540012755741681695908705055414005831560405740414849493483460615566326764250205707286879320886344498198987807785494449706200456156643420080998634584548567030854682172795263693256453257704881220206314965949076471818115686821446260335174482006571934470069011553612085904504035658508877597056976665973446328527160176349439641774806458934994393033737185288003329829612077522068240082823910891693379228274817764150966651520475675723237388025880218841962318585470656305523121462466521210792371077626761101059445978614767378134114596139744858037252719759937576704501827593516370198390163509549320253698103747330053302185960654800518985447898142895118729705012789709393549917629798383622529110483979509692029649062372512798887964846563447240467797874020550583874295212953645729923292540228724017768045632800924495904659181933786788461404088563595843499402417493004620501509032813231855253619872353451882783752383014749425788329684880002056603317373066928066591105585965250368757850250570791416665291017240416897908614082821062264583782761187477991485455069355888749523059868004742024153301190616219697073095146343031597785178399174261479548109341868298094368476560777873497344959892712690837190201503688816234441305992864536668430037698693565085746542637299955165546621634629436186704546283374255632167035154134229665797336471001907028416913926986058273386788375054847539700501743804365489444854403256408790833426192996512904593169389205259279521038193356945167660678657177682235737186211786322546664344915030721529417113166896427182016424394531668644140560555960782323643288257595497735356988780486823383145722638342571789626621962494024743710698109652004697936252859490516046143462234642216788595848929641824262841649467442919341447674062438907203241769435401776918171828966652307096282885157084416550853523567745600115258621513877547286924335960484818657709556386355885175621858328462103216975933032341369973655554751149324441674084072958287190789134017975733657857182192933769864405021281480878577861810234822320885342316750869139423510042949350879391439641607283777912066811074712493094692536450620649523885347168801662922032669865111938632099688387991270889613853813779985440303738524683522211059413055672140608317607830051061303117842735571370013126587612602553037189728841202646761663260860286761817498886568350561389681066098573390283753225802702164536492337828009848194003157388705212287747095662906729424097182555527493056156511192272903699325381395337391382022946319642347831771785201538807472737898271634225571135245217871583948390895975373290788340464481751366765731363174120941235053849735140744840260086489097714573995072661184349710973518816502242464226877398238722490669118826054150315918963705563363314732740855907374703821116597143122161661764572325481378636305629417545568240817088016869048839398889242509013351844446042277306645932153644115897157355566334632444130192288625946785823004218867148444346767459601465415262616824789280127099256699463953465959320570588569056272685910525225304158700074969900659501059827505805526566531987686032234245726475003262771659210148852832229195521042399084568639591755217154756939258933986389995739580653344580868317114695699433277465610014662436394773549533309524902013640877802273913279008948310101288248210155935773833952334867410135112641906857640200127004647385561321529833650975481336997850173576612071149706025567633266546786835770482571379436040115979431619051597417467618001575200297944869252809618355801543521570247829569987636392289646853129847850678141370677145611239229005748043644246677855476900234921004536992333463832974559226954521981454559853791391325573804410898461634133717762118315793574222860653634947858419073750408490158126430970972341496508814326439998945864109199374934027037386045456065527835522948432582884097995509928587995758025148057697662577085008129501066496138606378441636779457262365019476529712111432369534765435114324768789309966870445077607120846046676961393287860343167586243202542867347068087736987793318408585329722343252741552982105063506611608415472982744344205713815008403820941519460813779116839951895097913528860693867454481405300157504052610930387237132344086154794790179693395977655142529093365293622586445357596265095040965592217671702393707669945422109567866982413764270618461904486562222487161207605752138195614610417955741671341359689482077405506123387746061823760600771424325230981542795737885924944834640451225093676445336924850060196999821168607875986772227994363707925758615091850915499570323400114026486827405654672016833705567377372980831950013329406623290628271991522497598612182026098304546186050239908776810193624054756176106559484935136020754063268305109428865429684957260688548624344332466549866830924225404871591523664831974623745574899735791952280885137162177402621996280968975197494582764245529924707495482714860193373633012148537015697925213027205609123203530669502069375633261984952951878773468637056506083627407767523027891393680870278402837706865753293059754097573538237730439228287716052544774827977230010690866690473429528212968515916453578218092465847270175670635891223271966473984639354474309878038836617605104609348857456340601641389023582964593409125296758536276866243295309629744375370966855387043622500389367096020892008089155804939226768948241224504281650005997823480106322414849524581008480785730539896930623569799279302605368206305300846769601571144697813196394854504542531617049242773592545957786942975486496752953205164711601964874450656672257076565211942415535535177460041611906718294372117394318452054405146648394383571533659101067918231682967687900302902211036734711449442056421033460351537923854963085713807371125104572681899060924136226123004331588732263251916117079756739120896713591841991836785829771559756487923302759018816305698040402737619693535129584431157515949928139172746447504683902638004460043651159863156332364125990116544715107814726050702741918282723253437271046940998326957681155702169119817453564683114932004669515818433029445740106304436729733931486441616433973424902473362842946706534834778333725878674020753291035335780230806947807756099006220193708461182807060579870729390000501578561548200381584344343146699541100512071729353082234367369225076681923633181653102068300507394232420485674224470623839869240371102282955432953609925358597020345043272070732610411633398807983078259983907535872670938662798080480821062418553014889170576001315167774347039272277379695628294498327754594421844948214032998706480284512683675804039608184939118016330966072643325874980526846787508173990971123777422939483190678227738559200637859077957152937042475506384596365222776406129198226866621378569305232682462586945512417959847671087112969357900212665149970675063290078868645667644385419947514129489555762100901128359866820289980076406642283222520193793791097281490363606522872954203455166023713123147907405319955675441649602277114689790008014604569528447432211213368189332273442779787232745985586146704069209933637693304131989351687318001627160425431337520390548301581058252093501203905122690851348811848634633907292050126732221302093774601208470493006940882250720435999114432473802406537875429770077242277602513031842035111528505285923175206040211404810758265413028451423501334485447922316096070828352333736416208427965364761256378851967540712824159655913386048644512651567088238425084156002634258866346056312760786704990185302727162490427783524316955907845889967654159046739582286822713976034574844257204921226895672302121892604674615817726569649933496474353677305105691596548789163907343876031735529429360788204775458020926637487526657815040331247730667770844364285928390728627719778476122102596304883731130463710403267740561983944666496740114639699790193639543365647478306663134597502017678353898046780744716892666175505244346840971646382701316091583893013547067816654437998826310103718506176259999868984575859703639625249146030108045273621621523365472567892367299666660020402891346311893935127819513551878509859961208706382099595898735695601952572446668353738986394981272659280409010400479812293130772719978344736440068383527230667627344720439838732597852562283058841488282498026753102948935350284330672888547527621861700518998973779102967442080108658093195984366790592616154674158399829247530978370988849006712428705632055861225724971131772679826277599117058509437015373696573373734140751473756466295447825893732663958161805321872531397773302821958304197765641855654825671626716742982101133465618265874235306462956259055542351161426599100279827498167845935743219623311943114784911310459961980372553062869476297225305540953220941337314962136035748664602240479399801030525131623350339109633681494826424805251055532455338291206952851170674664080611970958462310917531457837003464518067966237847645699120180723432450619223954615262579475146566074065889761335810820433993476563517347429530788843539121903673602946360578191511130334437340146829402686819041647271703672421215017062061798499710910774693478672153413343882497209661259570102299974427379643106213914767307173334118215828803070839235395283502609612446561861956829597811797276192648008411657309005325338413756352760366323640957369405759950509101039638853561311985612635240719475759237207585233933111207919815239302559767516074296281850466562144623774715983707853330535767826664482401018282686527800844340642854207675825512358310437063830913727226302592076341677075818086930698907163743761550557039447288810499909717716172933071698296770399650698823026239716800593598384728435014079337892310367842599521425406990146600058600210432812279702907604337792132229188657357162424702801888860319879504214537661263082610204795652304492418243251438975291639588543468689936341852604401547110746923914381919321642238615544038863382444915975769752807862028795027309045579267439900887021885459779030755623213622134641702121330874807564385065011048411844381006879854239821070344908281935280220723873848026442874382613765017010856582793236023975815259690332734255411410136777170726841250553966186085294153481734798427159376359793224232413911778112719801980857753991717689661701577292473210752361064286951096847998714916776120308568640660368188675357921745002018825067346241821793641299393281124156026909628000430916063485200123045119142985140712647544199935328984621780163717460682536341138570010786937451940638729417638425939719503321231724807077124605425049300669070140208561159946619190394974568291451909429891302638444172209515919903103622140102683534598605463626143510005072818261544986692552038448291611560830159845265539586888238431627046832792339148609142963154512435238686990684042174181311734353150015021027042038103440502060313538558937907602692044013004599390645902838911963862290277705517710942165263091793420278790243323096337694895846277832514711298164509666209644312737478501942669388803075441044910727957103810218455227265949018577780563648686788109919585273003568997908183699113487767212465715853660274512945068374831799111238902419146025450639555632669132916434015207676420571578321549546873704916047642815764732202675068381401480531533903706332870092061025063158011857908108518027016995322522678289340400523732211256138844840470172967002225691174363216772118953212053363466125990194498538380414021854445782400986900304829480020716735113832553253772069089844891347812457838138343230808569172132820576041468069726485750064086920566868677778846234135621148517796257819114600803396159758355637120762003152663640275302819102396422249141888561768941502375822302134258119079888176912539363199836592954876153701274048735082348271371272413378732636483441585962776502901789162391858034133707867703157767523382152853252219355897707518113248886729895385857133714603678260313882317333224638451216247375322746228644146572625500195439611255665602431793250024139604117699767332356094179977476528695485170572341498478423777466692141168790718741240369581105619645868190343301605763920806172014530516844455866036695621162681051939342305450353885626433037679559321653593581010447244571367907027275796692277709976483041258523582383638476575412982611085917583406834705272589727418289243237169622721962651785749434646154498805652429238132565923014045572071563801364904431135153780951763279824136692791833299433471757166059979629262999123229296772878532987547906510207641398195823231633316772881340278063192811367110642856068228388024998945588387554374748348307382076093762175040949955152005368282640010956037573254821964812633874489379784036027076561410436086784702654487701883713438747339341705834516942437454389162628054321951452681110810506081235642219159429399271566873526242234988226943853217850168492482958439269006517198228122644439306272163792066753751846066955792695151065719571861757654079649734233816386826442417498243208869268131394669682519691887417866836286084277892795820601425410640288024710503646396389613906299597901100913181098167671861629170896659290927272739593620811638886939129970076580921257808349706582698791954256347250826862516349840984123124443238438355967925556096389795691255352410544357595147103263612047139251185427675990084393143172706398797524699904076676947906523409233495078126627174122114079754260950527912819542895255754251386014362155230440755794839451070081991921016298352987723708489010367901227434866396773451377116474018360997379218582943312608985372280877005374300048508848931323305370100883586941765991111831041103430784250556663880458047407927733922221923020051434106220496845801868661864635240623734174228830528416699451073432990645864215838350932560997837443357487026708552890696148581491838086227532291507498351340780420048345199225564812102045280922090289051668653757064788815101143850982498389659426202404131364511595891920602224804136549214916317398788270376564448781399999321787786010105186425840805978807824053055867455400818377681302788311659286569067807729715165617518067998964100855771208058931070829721479121349156424666403045362383710194725965954946464257873135296758470241689551158645076012952461601517108895124762668804122715907961485310320278021706986164402812248179161645168643555676579170603444547921377984923246988077999908148671210711008815822534328547697803594684546305093866584503197508671599627972359443696201167358984860894410642411749601517469635495274697282050853800513602379337738342986408347607369646086393908518002777650889112783177667782161078649491446116107456231338905745671741469831780919006458148647456924615197817790970969871870026081947538199347755561352466630707762252615535425097674487100590175284103028412624628920169230724461617419222128976441176938426077981453760137358348499807232944513634913036977367810901731567096154177735133652832021811166592469615624147502257341722451713312650273572005347635839716383531712149499267331791843912011657103238928876835846498375596237997957163694972812703137333407736885954216665282249160682112095481767299882287489623675887585843680791344446656677513670433216919174368383900532438934724786424404946953587870641357100966193122759476333617089891590964387152499163817108670763588081733094463044000237739415099157412274714873272750802183346646404515120994882307018451391090836262266716650059387811360580308306431855145647449252280308056017770112712853996091925278726138420842965208692357859047241929113107140491775934112692396466662837552884077287061556805313468522181425542289867725270634230555303623738983370561477372374881883039526160897563221362041340241596018380571295383017150276503481566069993573941407169069637269528506379764025780538980654122863335109946510719786908566222837965523830041193710458816068017630203225077108864047173142913176993685768661171635183329893512911676970900226193078681686762777518764471539367777372002817155240365352152718542320505276181048743054210498153317445498214482022713759671685011671598385961819550389177860040181615493467641416756870326743414221676451345467713900001820663473174614726612003800098907567445426693574193874082629261588734314942721057984047699710455294401537146431624520474210321547600577368881883368726222128690765215017533963822509095906229990851832188620516013211078482005909356598125970521846154343730469718013247986203840362731842697773776432855494492512650759079304750713781570899830628799719152790276079599512314181986200028124297023859904501641725721982146267785808680051360852541778361733755070886850486102600837317476307742886257240970635496098813952078122229173149398637282492657865483765044660091366903547653739409076577048273085876699332710055779570832720766701965291684650195119815556967942614794741738564369999450765856076769522728670875925726921909392606746967461835449054802495797728776791486790675787524121670032563532800697223657900615380889357912407064911504823664889381354690761018496936879521533908795507777503075295577536417330888036425165007459843501053543606044816397068847617249258450260545955115693085910594719610671275873591199895815213191985400196310042190843594012650963567617545926154337035750023916359387649275770995114519047002829431547023392523211141678274556896925895197097934262874768417772690362283811672982221231586173072940078017957179142768176536646881312721846774248793599182415226797586847811262864811092016628890407074259965180949623737355200084248909337071893309500311569083512311559222899623878029935351284754779707065120870371572575718041203488222060766432222724981492450980056152561236396560692573238847431362313538117201454910538570031177584109993465685207113849045418354300308276603721963454050530275395083407143087483706124884235356539837232980070707798489709824456470848775758876159729631129836726596089308274542792615475021678129704613146412823245975282500809068039143238023499925239908531592942674260033960402533755374767675497914039212201665850502847164379938115788546077809782101016185804509845524739960343938121035557334980855678318759036290849727994243986182544313958190710246158157285218999324972022893989257820292407364886531535058849163505729099497544627921739610080704633005186600842420198525110910422287518120739899463344906934826270515818520894296813772724450778896764544130319116694666297114832151925281908865502441192107883981010640416798970562934882865895616592019927528259644885520616319746634814234158767636479405135190358751989050392166344482981139526388571175000900341166667003891389662207732939001361895076611858636543027089564371443612040549326661508205185812950481922450077876552547067719140004626327926278285389777254135932630419009979025522300804341006501457937383528691452048117709425793152271024657988934561851630249800158216023356373722940958223732725211166281818301676607792723170500761121885997798377848464505661370909226349237521398461465741649919464191244779349088639955772889225493179100410818712318818147655574135396805457719039222005939829828826080704614141535988211307999991293264702308016294853874931693046453112069237709337482515168424574628620228411651803229042029436234341417006748159611996416503706701450446725505223883499144953464964441806023099553888125275150944893831700530345484191205550753304810206697006965458037881532890646140577819264817331182145594859196164569821831900417732484906961409341717525018835465989469284394757421300047954235926679714617598158171487731978216159935741545909903859336448489103083189860676726166009439890655648648509485887725776411056147394104982101736058933757174364747254673584629305391252922848406937920432702165091812089794560418183263408774360576565208647860555517536077582894510930941195546685754430735351767367735088421840548003202590630801946247149899983549454959364095595328712054795539784192895930970936314201615522347304058343291620313086956643599321562235412781107565420260242173128021367885621417159988451972648867420615299752847569853324953684636083132563579986408040403653094448961298207868091979914560695680532478011589878428285689573625532452450953299152978372345783664235499059805412233590785003454550508650351054347319555302386270604126776447058797171299507812846466375110820418170420250827964897096613007427708128700080929719067237308582007683809213775100414517276373693484406878798771647942546039468596719301282250271755579157516146699818995047767925646313898189390087894827436058623588598326083370441555598342590926075309482231826079543297794810524285292094668893992350211794242369420048917454730245720225208803961086644248305932769913155182702634478912566185720612652422900411237460963233656507947015828867027461786329119771143348337427006286974391967995293222306117338291074192870356573528800740946994981740575378941175697866794283370811154502811280752607170739862262338230108860282710354596835711210114762810279482841611703499960237556826668815523821662107311363167634146282659395525026992192265520040357567019946289556806327493177998763489708652734534617115680840714728331882621105957845108115245497097038289854099839782122100495890208847404365553056121282780543160661498400633271549962165167555853862521044240215225611168730986166368804989578872999122139303966934718184409807088468119173532606215519372968108598688280835782216617954364677106357295972688079983842779181930737985369756529185173336647064149330428577493734851276882622323647738348700790571659974164190470383386599437443445309862289208357349094593805120116413539866213492141747705517056882973059399252841075664812791080937150505245337436406061560902791930279461775114134033957261459782225882178501262094674257122920260255377535077993755084303449385311900247968012354208794460434092707505588244654303430081028445326972684269576520666950519924785249819003554767631691727482186404789260531816584925472423937725047305411758178529869947088576886850655776629577434340267552479838678140875270458840744954224657181011866366271095518789866111201972485226960282675858653716312306609009658652108524149661378411878818105462860286780520680820967967887323744885410319684265906477201362241890567082927934381560914924762047272177020608905820926806257935799570844730310606248295685036612118268908180980899237371792242894689198302612587696997453755730280478764782433816042456908553391020248544205977181639338019401800640981382277826804224396789183405516837753799268896226921885509439187253271239623727080367328416572670107573200306409119690146014092662246293456393914707893994642399882744820226090862415735695960711947971805584193198169776254359932192836221669952763195997758620284442468509988668233177152948550363268458418594589706124789082535975734096143060288459884468560339731618190433164964910678290833885067316476353141075962498589197913307944168095955685022780115925428145162219221115966514749668380861766516008329457825539820225203404352917874083824050739468061665251677510955119134288917581010035179583482643727114512258316931546863843960658373711272627539456878262913578688980019662994425683619356355979518691785350114763854156688839948125184659959798267769960239595622105681581587078054116721381429380530022128159931838091250567222737971596889164073004862207526491834104128427305717038190482555814644319905334091667728731007508794570099542555298449307085545576555411507278381510189853631805696650775735169551487354468007117504890636769654165288421019603201570012927584868036130605022067647344885882615908861731294394872970171678216752616019923451007584298930197606271047224117902908140516798690209732466118995759162431449651213064876615415563435500693083221140713884118288223723172964057821544650551149498347045681626317639679859908977173096301360573724936221703699217932843734465456744868521821178446681875257817607802858856765126980416221925901081127194323769583214699502556095032902016001856905367021014239877756598633460436983649294477143804564801425338771999880105222876379099082236992895704749602629057007686427604261559673942539997909417021388098630765151853754364438613213450106485096659158561509460165856003877407406527221072990907690797695377364858262315524935413490241999241029893990393694116056726198520890337493389615901425755482440164797325073078761230392870764996009597570267566062226274902905553180590176863834261123857754836165428539321954903675454191788977753136848474087667843860479774637873230577737583240630005844510319010429936781715965915411665898791833832050140779890264726728237530285552452434727101106492034507899993159433694023991501894837672664896895000421726340667703209988794767331810192228016967291021152461464157203054543514766575544947777320853954171538330481205246823675968880866844447157490949027070937978401542178040705163289336812978447486151083583291638183105135287500022064179163848832499802712572346621412381261464392333022044061974878650039218874230162169817071837738523234146097862020255897703955181010544797513624150620501943145989119456440961994243865058001399342679384269138608359776976871766166121128537188963528894845365652646984423236208301380627994971313997264485208005924354369234612824992313848771139547482051599010539757066740465124195419702032947461380480654633493312626466425112445388369950906154186070838261676463374341221314326758203081144533478166372878475196992284347735582117545255301909167168050221733079589764593100904608821519301237439932730722369896588739688887209544806471574096019935602213600028969295933362976705401326192882364150544846691171911014439537578951654412595631999723084185763891464139640343177065393075664447459763600795137142233303931269562133154360752173939725058792357927381002871228269844079015329758272889237095150292995170641288177655706155069943520485143859196399253432190799505041329167608799909551468348033341888198538008890254118569784931428532202062585599325680212295845781830397673341937535015866575433545967710714209950599469705014518257419374472096002590483673857559252217341527043187144417591414367204537554167304611579447511199727153847790544466312195173819371742849339605375206842429018865638111676510895338316958236892266000345439303361416085532076634345939775244454490688427195488926634382921384609091739042178553878471667036741998881651512428875654284683832155981378834138100911163884981474049668923260530885603012640102374204844162014144136808419665608288857332746812771796359293685842927356122477129552183443429867959677507566707926501009919946343246964064340680344696569402787283198293068093888904014673728183301275173999352280970073242461179706619630215789107427589738477594552657927168926035972949098989142178369144847877919981229548270269603977760180866854572761418934124064300813091675927628666302163368707761924970950853270972051273715538162240531734323004988848654673084793626157661814391961335455905886013118937320660017387812253191176586803665166563809499511456223496828479132857711520232497518913649624047665997384705598974014482948863371325921528837567972098996999734519814186881619386558577237308504127764495867495365326330312529970899515235324419747748438518377037742250458299787729853255957893923619991148550079965060300572640935399159194484065073897669545677057341061226264174996841141034300335990022059315925400256236183054877854548803747817727418394835107163499151695112612184945226828132213237272548586718825306445877575750468612318689370216311810400487882982949649734012333371113763583183665691515511805875064234504130798052406618276422686133721284122438637266015587188046084162694186715773169290517083727452353866458404406834969027067793693352671639711303624729294698389497568426473244448583438830910462401977483685400382611995054034125813858640884885677778043923077314574939335287759446444597410627170102250855856660174432814522031685047146790509509083882904955563503916285038917158788714651514243028311232845799997753892085802048506873207072546474296991944734529897155073908923179207892260721498326220514279038801703527912859873039702837137214868678507163351972050668584313547420131708819213646977195788063982945262216625616399094101032801364973335182977570618372724916187134510674638928491678700827204651733887610153184643926513550494129602059438066534647699992292444567058800008401677157130151673304255194785339321035650730701116736890014235237358736949386445341242044959135195179467960629619360254498082571175891449605114202740834835353878464485341980511844961048435054458539004938476755211315309808817551395862162715670279890244130716707546276417566204000175438530500015093987046012651442834717886480531863888651655376743324002481884989461593324969126216605006959427345424481744686232444173673052215364261035710593804840163009653516062252519624027100559630143615673956462200947546013153017802647343987747438815507476106309764548699755559625669739004841655382591768678909716522934097206652135116873174050354082066888464097116779912028795446251037326625923801707806702206763613442642129355163655368550530515817509820395228719756129545865210044706900127777604314906890185908459402276818927040877258005200769420908394067200613726926843741021398560065236699144797250786561034011569353537252433619960655353972496193182953014036250143238575543607336333310268478453247241120664226626698154658013765355583375732502533079698937842226976801824386097476117946082909649532553334327968818236562573891044685595695106968180021672245452257024234523784578149542934725857943435213841552281908447971251521679771153102277759024665935518910330395612639796699305124346483022932464271543897379809488337623805014479574097374197274276715198036116818449278711385790830852129270370533063750960946682467878934782179740625748332018140621470253742725368055393965913841769494549812778297455822006639864656131124009253938921701312330288668663526873453115908491163895388595542113126520000459753412704177281813374083486952206945205013017134189078850100600354586745078744745491568790907206860658968556210065061328141436603017726011495956785270857607957085638421235570973947746229883792100815942383645680040358392020606528948723677765204017691825047290813027103460824483643589426472764815289726386807103599484348914757388507107853578553874571197392184566328192816973273460609886664914954774351801352681507680074812753521442726379473905473981758068809166617056476201327510795304136460192811073712745517286018655621709144931675207614955040027910458658726235471807981355257156370210003560710361348424854890902814008738748843747495145029451827057004667634461803069543250619176912286151143471328878995824798028698003276079805470760770632092452155584156239172365430681968596547339825275677277038048606755584617940393234391467127119495280172960064181644539426367715766182270446179940629816522154645003681870613201452872220979422766428258022991882206649195187700965251891694477628973234536792438380371168515140885017451505097609153541401888489927032124479240446884732901685580536009611096117028562908774963177443211045565359459846492492825967314684523875777373637574101041380045836064913716188597954214544580464575827661854595014829721455855524783022800183697562017329356258748797464225517752941538882488006129849818210035097667518285756931299291956769121803156612057997113824300175633553178429042426933986391376315900448726877836608456124140128434148186255915918466966286561217794488741195108802106883909046938554156727225776559919499474933849907699790601386379391797902920438274495557019709092596547251271367466822183849543520624438839761095920983818921708975918498078711680506985234399504052716227502181858401358780180108655533618324010187585434532404632930747830432393243376985456609806187710510943802309960370713073400358295206339292979533492369445092175305079860632353071146881785458322352691248235593579347684943028737184867870951574194218181014031108229795342838562759755434400171403917669877987408256232110941770160680036713832491285763368985861917456490360272932899245008393767446408157639989676414768833468247356216707940910552539859584359109743518230025362558225807947005642434729110260647626698709848691323071478772435248500176066483868922324344241875068821686800353663108662380978440957284350412767712116059111329191573594507256093096716156488011003383756130277976115372740840413241546162487017382182901669499210518402920319605900340630452334180028189445740001012235031027069820505472162802864263932116976700046733813807725701317396136234718073693444924948675274397671011646651057385675845683969942796356972814468792113849000003530374069305235862858541504574495193394192907439084537427881567341511558293060800450592434538429550090538257618272545981066550465864594212741250063430168767995848929322972288347351754937642259643557679490595498465962104793345915978521689882809026199318176232800024105691592243860532497526707773456880241987067949392600409167681863750239433784436396845941261630241365850832785803611600388610999428952323761399227546117577066207106993937440505447234032083456389349002493882915624805367627281423507748026605532331397830250789228419757140965259753378156748615646898329350962536715115380087497730040645964954092641547037502834836065787276183200479605434231667490607798100082942788971685902644266905678326258762914543327736224909932873856109509443844374884499860802299583335456624924653532251446720711578457692948368295794351685895709361356204608852037947763685795223710224386340479773404004517160943543467243170547552934425130497210087538356616406303759979596801405314265160030991699890736545341337148129041205654068679798607940346106342318759858933498805401743997060139859066494949304820540910518199451544946218686686007639426282154278584821189939596184299192392519525027368946309226792081345887908985841224287371266141280875549017700314161702336666972204791829651283504243130219486544447027147204329566019377254968464795122420383560706941190658367066483729384774974770469889039723635602589167214580087581822160262756676954085240964276535052891385189235584013080580244982021873045880789954915573161601065464814950921791523902195920859076503396179011785123937011880468351378254791112512131293904242802878830315478056246943237332381217736903664789260997622142349738353683579958229077614623709550636104091705563058920962598296154167376990958696195885820248569444617351469212904157353338447412610732685161418119607090814755581676179150096123365475829072407477084311514241290729927509073470220874173232506579467300760509161276234645285600838124233051779101878711287950401216383223644837005211751690307458935262698298192871337147069452793000664326995052773709023224404199448502840388115106167203123821418520234613018349919317208910573731839040737285137404295861644740194286652252549843117290642406680531430082438590174691300451012625838099092030204023391211763415016566173008630405928442054099553525012396079897388958407055064921317365161046751880603640396859661418550348254086560780454058949327472183240847625584396063918054250795457078847026386368557239620141915558707944637722262616099991323068685548619038750407733569061868303678233581111606717110841181111184864710930252957006460941005138332736414288315539708700705047623764730250663773937083998443150748590825757570913420113533090843854429946321435483023574758626110571161536240150578423267582114264521974495504581333612771933304573652265984565164390636869696352072293321355081322283067047532723588459030283991741426216752679573717367743776433498786641141774470658691338390465396657281996223551865556258512516804250629740546687317878778925104176893790561260182241942859914770748470773010513898126677995946696281368405669505465436947678374668297970379039128687300329206281476591085349516267407171478667698588968938454305708775189336002407772978065281781298418144036619555775183719000011714693438054826355877604453134981840475298535768178360068799306045356283806721677553271408420634448514097481253087073058413763547754343842533356712216900089878586575233218018083113760968873900216468866801901444238202303275961485656943377991754411239916869724377575329971873380357322982353107785297958639758398626982313453433379888192629371966214001575155231180163192386900145011365768836819572530061898990498926592046256929408773941177825960310995868335949969887064273001074079214477935826598300895720595448541689308323686887127566776941424624836981225018860850198912350344164256806187903946681736312018329901784191236246208044965041697925051073057055092483101197932088217510763728403919318871895747348094747222057661196209126051707559750218442467106391317810623114469231125819611646238473041406667986555364713303105560788210463674214178810353443421666649662993928383962513531412146725748003979782751192996514505305336685732122924909277280145485756919049359996285239520143324808732984521283269372190221753673896487945975637303625639840688074675288821932383114119873312945101242188001996744187653061389960275411090047159751620163414848732506827210209645206502690392363429186895450245718194841409539024030696712034167142672111139415472404023396893483852113314048491822716743936895942202443653624789740653822439918652702810854629374778659827063245025096331133708501313209661162186602897730996888900870423717645555274960976514458156276536789817120225418730422872889591261771436088687612785035451578619564487972695996779877239698029535231658472777802314728935636275600030630847754127137578179148274280240448568152668084440055024776234058485411504617216059004958520284854507198991902498801530954028675843632510585903423654040599963447603821139748689469125185175584364405750871859497421456420081730915588955852151693827480528061278148474475756475850673923227536349853968246464177160824130067649990474083890597585917739922977198578615378368906325519533482641799110259965807859241628840108556240729633627410879315306042882557987089238324647615623396116323876799743041069830606986557819502834846735976559041145796152524911016197287718648971927822892189257294142673757739893478803689950998178419840076205600071373587794727560937027960968327702480626677595443715938815611941360145001981471785914349311246146595994471902665700381167839832011741757806168822002033044081642737610956807081389458902266914769089808165176019032039502500844577486010739953998693706432818321909924792170173581133422618660591471158540084115628410388814370749987718773152348635781623828078804754918696264466730557612638656722560058729007804091161944069362941512403831394017004931981562217885847287356589616747081321003628729740459052277394182628656854155378916673313782098897810197672210494150341563868666749937626578372497332763093921352920017853241980348221045776440679193320187253326124352825134654723546438853473039702877348966992648072931648092955024454591981643271241539820843731312794333660026584385040373604546977669205017999842873629449682056324637919327758190349836680672968342879041470319509192230726977577935920201938700002936292849528902620908519964635870743315336693886370640026001128395882117523080298483619141589650168866754825725943400268337199935874102463546808345102444894113159115249453597887519915250419115503848590310065748106563867209120549565093109759370913629586015783716518457259409258240178234683277657016244632019845251395773622476957809672003826102557292047903363916770186621856515446619334253973260652066529336623003681969115739586313947298286269494823677670311329063697615844236375529420041148971163065368541374290532693186038478241426720085280335983633374340915793623344733729435746310703181288196086876522266417592938843057058174812543350054305459761935074482792051647287871421120247503662230508980054844357260207991899540645688781524424381863398630318436114816101239160311291499585357533595364629507633172489276797038156062620138200613382505975798975112702880700206955421221928282217323207609468079926896167203755098427138816829906747113370707063498576622559419995246753737611202232817308009408527801610515670986390180889823795027782796603436008710255212551856386481408411818132556169568084840890648298669509917471867011168912612603238695033176548149549560195079649717395571020332509592827834780211595467280952054898367035029608198977218580329727924754017607726575595519711677792943392460452738330839644081113753441939262035414365399418515017546866686644306196900768719605577180582093134225113067946770929427659191759084786367090962534170435073876098727583558902271560083772055596166014027863839041631323922950466564552764137907469792756097366224032796661873732923875682363424856000262320636568263246095328223351249653804525837470355880643461819335619603989944677980746750410382403140604528011335333045206611517651419204908118043900689991064935135892039372042178383825340170578243627556278142113945708269844101771464391476524169042074336983466889264057146881642003396044340603249823908375721614754258782083559963840104277240980870090411023808088133789174101505037263682261945786802098069051175943062685631494128794039120159237400229854211129069205349030030662229568113619833142914451252085310334597098995997165001749289374712112851466756501215816644215457846082857315894473142313316019185667893401028902677834016665536710523834641461494823206228065385729642934690294154482433980589934234978498767919495674753846800745993486335744369098577712176778367745984647342387473223618828271322265147463990366975955870593469944383801737992830432407619248387162099767444047786613015284837140767559483516338592055099647282509562257799297673871226988083549745272555937544065992272513121869064348792297548219267901909619169812104312438473169495533846049100858314728807426539942447500896490346203919493152490028678316860876412559865946630304099590141173074953977563904970962290833660721897414877016727829760584984253493938257146643256714656928229771446056507180195647182014040283230153123104673436028016469753837863433059952063921940676252488935092236128936975913713009326316499616181098185461311522163382461081758546767609307501351415694762451238873496482530107606181896231945283954057525940681532675583314102374627099683387766025739568913616568931279294887408055865818423767673210789928202001356287124116296332297310839074003390264973881547135034422906444553994826358720229111197612886912517577645981126031797047871885064888276818431266627753172183535225407021123289199957394160923842049254299817597634595675817521375258210078584833303045444501473103323134994511996195313030341354725290054195751113455157232922013698868694671481285021003490904048030835746239556281527312238695295548691767195354429493071202957146864281131081303078530773797696506134259906265749216823089297259659467033889613618211381317399480255599346381484131458246877285203626421056180046071202146707029216457017615085415318050557380969819386218771007740076203135052525668068579027078081478899639066885042435500672499594771642193028028305810698807877597464656144181419792872255800076242775279230928325940498944548295922679275876889808421357113532970635161977229756426696119486418620628004115918826419077143131539183695113544706150189931351776448329317584461841907968198716984034298441787800466609828198719043475536594247605031651115473811517563841361240430340161061282053518805284166205018374047216365214661805770480390699025878532036297388418414322849609288271897081251427414088899055638883433954023327352765172013933339641660794750164346156675295811734423617823437931087885055160045809456530190724074945091033136526202247731835174446639723797257117741791155834010127558580475353202882257625081447744734795563817116183592053075006940693701417363731003949682387879414477504825432372425659968887160605666966998507151952677041367575839198650901182623413269191103688210265857569850013989293863997325849430250289836201870703452686922441077368459912474937379421126438381803544380080938333930513165988648402931386127537581696688792942830004111862753775216815535843610219393418228893490527469825884055296919929908991534144350684800372236053773540642709279683011302855995522452750472608432742457284149353489799811296911809733765136266205075498206115831187777509255390509864751430165042188470227701625651045850414270770736226938614074616557194819090798887129713480629238378295426874683344259995055272132380451974762725618026777743119258657735253513952262864093561204213032320386573608303119586027122685581417735751909949089123691667912440370498432548134208900286345422702349941406911182800995881255819021483177124326632550704744361124315868930926808860933201413379632595057603610284874782774038542637556218632117097826989442705194674109601705327813657881058237381691449585173663835118080896426105960132403233118478790530880934753024952177607545025607048385378838656142087861686778651547717585322161573776429917829434258145794463270930546794532317927717046650083084727599603677430839932245512419596061202216885101488105499817005265282032531964431850953103172758738142613495830598706228552706598166673562091693453195538394833563541434976820141591117676745575552208888255670308371800484079960396659577111873730138165256204355902432287729597161097421200029088344949175519553052838789006717933971522628260478634770208456645179689288740414844172969421716341991001642139021532042652927547063161557096874415168125085839395535797735459848511952334920180676811552330974511655151780946943997467029106273312994487278763778018243231534891229402572311441358460272141274735078521592906605616848505839458439607387293195146369672989145880658899607805434326957539714126843256353839662011055609871267166080526268502551936645340414163318591973136813427697536647992326571693011330715323776189071270283723175788270977447381731142345791043906530628595814314002581956784712134818288575856797826081601464877354176618825407227629286110878409985563928050663151117178902439272786153071135362712396855838783564857326957566027892701991762713296944333546185465114272356173811447616891349449285362372151077733585937406522995201968108547444640461027741039170337296786351909092421052503421939895539797394047845891037078013404007667992659405246069905224976078316770656892542886898146070197212967078468841627120851204653903408520553931390819633750319717331054005994449098823258701018974800709784938508620493803474346772204680482394335595700975992645074174901769770131027755447797801679046723391944348591717456123147618600044418494158722661743566738977859615101644414426812134482032703634389833242052785383839683188050270661644295984860694699312744486813751230793478293504996915104576011837154998355561539374765856447970469309078581732588405729283074273054400400459355027330614407296787515389923026290305929723559784547414853484161886088491442291259013796209534800489864286322992064948569759867189931829943210456891653345471936086377883260035805785157703017274117932085905329650015266052052656032927555990839557432582417114600401739100367721433059647808703840994137642953480000122481847994266672309307496031336357811510426568847700137596832050184349035885528342166623129897706417784300004061613928074607346938353540383217855183654533189646777765072178604510373839595455677300523408134458841075306095514577911704405134967998118139843285305119993139547324817984788264264250996862730306042316669495570535794010624371211802426802086469681701292103451078729091354521396906689354739960238307579333319134322976876658749151217499908957168413238719011899275299638136411766687590164757914685196324030090894184462905067194296455198508723188090698620638520848473718061038321627929378334577930804559935205159275830361603201586490193136874796903168435636744464544851421544833531169816428142854756769416387859476557258440044484621184187860264230401428410729064126499625979206949016762903022310543496019019985192633189153596266280447841801343723936878481365473626911527702721317108836445229789889440326165995033699765492705607681613404182333113655199427913454079371120507416839526190588210432808257898523607052905574598522262209255953468367642929636033248290165925848254369573449864332192637262357999761146095265050804145578556373943838903477858722968534608467926593654325230049790859331702078872156659994054932308943121784869940802874587516784903147256415990289984664364787235050523621521333501125172683968257067449447593493278877460478815671508464948332845416391414828929641236035535388344767112740722912619999993456002419558614731646358366074291475444382465252959140830022545178732917736105000485617535387490956990116680407457817143331233058487095050587133999352870300750687477141417183001489785408825359642137747512535503162720617243033757734117026706990482136935085458121855741892118183689685897506396234338624153383173739089730142973821201408406870903588531441059632245723632650384206547287469970211303567465348604765378235235747584839787600214585533059266680926103994720659115186976151998262291030895688771773372379634895293042598975088735747285131989856017281151230604908494517492278085474868316128158782489644657562784159808898828414756936095690848127583182045487763773845256982741279170518607443660358095158267565458128613666814817293509840501423576420871658212360695003479355782013824571163310153266619446355454788677753033897058800248148865783041078511750843907548910955936383165224918793003132796377790735034833516894295737631672822029850710746777466675658321327009070327021483402508916094796473981593638880350854660421129796564334637060149050924552036308012181180810596859767648616925943048318440829465542051119161618758615737695578682970380455654911498108169850617554412679175611995596620894035363179306889126309465758739721265195157995781791683644287813144556217549946316866826238080980208689251673166449066192661226400924349260701537236203199067438977084254693230141625082735299534891911037973052546382365373545062852440466964973226826188814378761559967128010233029063876305540964904059549477188384239115943406618349260700871924009289263156610830333760764483882331833506256016215537934969581571353331920429578952662828254308461065813610427053949164073228170735835780590362190883229258043706329119009028438839612983352683510041975259606423072715646180957144092593057966033164145745646993262439708579783361126375841816386456337251722567031162745886839917247091413627588068812975080685588511126205261820672607495370792696139279448798461473510215953029071509615249534948060113446732794598065346354148817453035573714465713373550159849572649065776080869948133246196847327659930790453497883173305837979671245513069104586380926371977098127909488756050832290077320627853663033578295343846735847989078174785593725190844742576496558565566180911799753959188363575836598624018097413519132221167302159272114512365175826950770040150796327337889590170681478054832070761415439267635717964501036664848395987209115436567693325790274710029694325682855689683436838429267636988293313087534186880115061018182935551856819349023922111297875923435115398283913673764359788225636660680368688658596338691345900554128315717588211223574242954506234938910639166171542041541129374248918891393001802173475566659066651759998594510479072928881270745520111277840260361312497649806934415412239996404657378878949589835406409482605618047898633145101035121333087093133660683854719049748804738204108582057679476718641197356656275924523552377018691438358902356735192563728265388761512775492876028992623797558660027202990220016813860353797564396448521010738364827095113523665322204754910348785935972830775512053585630225110477942799842848947538869328891651180025529282327626723874851855189821921627738072441234928774040730202081903588345172778476214061770026718633657783256498550203375264285860499982006331943752838684894003732298970894259234548909152466200274280280492525902266944017752909922333118474060307151969486308536844446186860278799530624763481270939617910780318233574494373154502858136782853725851945463258945774874501772246661333832390007918147571060425831383083350233346068892578409366100338902532364087469768057279221604002701677948064817787990148036940214253727494472956323226834041142337558902150692812144438249134993717683900110013420923791695210763857437145770055913444750087678711562088491571485143399908103673962369728749990799836258539913034792483053536997588740926694004389364702313075362417134896289155621699809018317454049683789477270251071889203384057251030981732787142628641720915338145296491133251817462202982249310271679213847260339589826670394657812711661190205596834827245867676319757967690647115491741924435735553432631169779505678500613089079816031656800566826371784181056430752557591978849459620648864761171945035299231821805763529353096042855358884654989119849507537269122027076101179837964058435900460825888115955665266399230114019964127525683993986670995804428997389745163736175160858128499897934478856944944963353780832574345885446684874534927055376920579076965983970671207376394170236969946157790732820092165401206456485935010839010955242113261846314808844151332173374277497538236001924513706778827509763523911766063235146984416995328182168637488757836470325124825893258553512914962768750038305408617337558994282084417212968668732221237971710334982587564032518726074359332768359176108757850419445869974628138357197252575799158753325581686551999417488421421741385188735199394633215162568425145579328486921963725785966842257367530737100064142601190661506229302328831893961629229793054355246520394236444633636591881216061764963573568859389167111040395595296906203234249330455370641986862601152005979522863502247724626160659864908614676036491592754233189201709405172358361465910120303808735451661859125372440013684995023461919081288888453679937852616905821781521865116471431169609312039179791894602554586383343415454919108648836686200689334179043622459059993308572982166681557297439679974017599015022314852403821249129884675032085445966035233070020642049760368004630799772200756404597438321194051180223889240063874415831124224368086846282704096303387839549579384240302856986734176111287505146250977459295019261041701779818031042579849879324413622422881643082048848186092773900491828531234837910500946602731380553366194812324996328574167672239971761760744172461380581269767584949001820670455357767077400051750143854638454388789932189237256842050955402407242599020267426364676143068117788986632463886908654647959718474071741935481268367752365825204693336134046265601627797152755409708047861791566323416834487767443940161962184935883242594385785289199882339831083861909909771513883439595197370111978979588080163215274805265055529787299802336671530750909559097383367746157030995715148570970714686629126303866413948803286014154690459700061967313171220027978704051020848914211958326581977453115281529703903920112367435619680544687115162117521318388183688010073920376954817333677779816351151083869704486777554425202621749556316080374576007575515059413815993731786122145348642723853266791961177634290102884892067196964411160970804080377803729085640497006292636885499262742667429601465991759697493761391892139694664131095232878653463872802620211913732684766146178458968178502512141958269925456679583354287714515120491218612223302331286458364930424968084065196961949073200941739413518711697753526792665319724964379740185019727394553921173704286341547420646669334226453690592407230236158833428067227587964824252662419573029240051395122332701879151087428947808234801127416005114404274997274705225417201109040796948873009961445133718895953731977491018913171205805670711328299802661012165874649124822929459097054657720927459790218315003034809431104016643226797292986173097105632858701200517141244322333157916200587062292351361890332693204226272969906176810411218719565991630877758087672491487976547958966391213830631767131190515694646162576166896952755165867922237169965139656194197953379936197992646970144785416593913685608535461317139447638171669468801409977444982235504547447022936564052783575203371660157419285143693237789775278996150888346391958875209691032263200028164716719308846554737170120576627305234765330652454192378549778746631032938837073934572153355984315266814235428446021186323664138981963158467611761269482883176378421344122780753098149811877396891806413829256423341577621840642277926680874444724738879350081977095565762124138536271913292435552108557807045913413355734739767109885033714664069157283729318106625668930569390250426958351119112834187712399874267647119659026573930550518103286330777590628344364032426908431018889728511438813317258500612692855375677971260107397471179818980479814665210499975077420317229867321764793581323059120760022036911813181712104701531141081269168606362277160375680238037873939539875018833985470521722405782287317127907142188894686897030158850007920326352355422465527343146685255008191803306993043431835436353956442365100560147998739314187207700396479028121571632022159490283340988251192040000924564966668935530448304104961575188659274308693392568089432840522063202822039704713439417929195882637488230955050304251404159025861174072433552213597991181238375977035475347456401330282643574623278082544456530136092219593857249015017480146809730731890628362591920497714294379451838137132185849665315498515472169462149098272532735617750364602132845118200872099690146370488059398946192986144801105031989230549506908428786018601854665038478252470684132986308747737003439366429974466203229455290411697770140384669055309256598625054524334970472357215593158628183848301790974062288846836439848317599831067824106739093678370196566832457039734591351728590712229702397659422447410920859144816153435055289466429523566229964056495683163309123363385730577095199331392662671257395667852142139287043817732184870394969134332354836251088962770461000653804499795755319038689445887001147662244769879688706125455476420631566273396534004028306898850038464427840264766932342309885319717565705723303348522103447008544576106427475344101982040606014968455742020110984983660854935618481900476862369997937148767992792555707291824177080376117748128720791923281698698502116127155860762872812577645499136609364155712732258695329404804486824279528589402751296287959029175124018548338479397256475465981886201316619527744529486869729945574479607785394124769855810456383040766690730796481262781430916944598214781833687556592140450954748148853152592735845172043383333616749173698111989104680463018938396328200095146304322837390790775055708875746574663878030638290666257301545703636590335097169713893948343302580388933087671707156489493864974386932023618324434693975108081679562262607830179179198983467686408851006864311891649149714055851649069367401076217595043239899204589714764737948787634601840575349539306098669611611933018410681511709032486135372279025321148618657580260177990313524735588649386320441213731556283264986925963337188860507155969747812322364882104003180277159056971311131914766511975689145899918903502539359790691381341764699504088377901509851700521964443524394104101039203551423669430039373049669795715747337228371911374682842311527925980411882098039087737304710599009296581999924744394433856034809779933093294202494895427564918590426125146487445081356310804900347527584352274329334041421834190070403251511416036371099183286177674816580966931215468591333377911990537985324447936514788956843803156075634487061661540697136743168495114448065026498273754801380620561980764317169051142763173095710995867142679750337788820229863005770399202399447581096588458952357501205677559541067172186076899662622034354542968115453127170479811508573783063392485624456629755566194300057300114144136434257994041152663630443788372671445850109631828340210701562548292290270579181339823781521945457071237738041494264807030819034485445618865141549334907593947343747290029940168414138514897196685805478837719379432067293063169639966499162370809891767074097727601751300788159648750958018479104561318575084435556553411950774380070920236014786051918829320477897797526487099937996636608816122080155396843739921136086240411959705994857821313864882099795223037262237839121611975290765198090281935778374636724858291249842119538163513976407731828099912515484570067052993158246698858462602325899103763557701869959322092072119268487926461357052864891812500691429274493955819423357745965305486116483256480933250328119873178171567553489164831208497508583447208270854515631143716987785170276592392887883555534600179617973507438413664103466265377889685767627397930045398892756933034140577801114616290711024247722512303464428031333295346428544649098846274705751800589502827145122438089681936631128023274554619344246193267064457992700925068834308598178232238868839944654171470240654849133786778199317429404246380618257212921549278013760722766819833733196488532415281484434852313963004459497242874240440818107503801113765273405000178784236042905618189673864907214323900445813710350162029713521186694627474758498936449864277801083866869846426656388878558863391166972416765026439198029252130308599695617667571854525224242549981776989179595056231908970353335976746985343087625359825536497964021160271919205146724564194986056136271796283958483422118924650193542436206055647476737275789262328427003190382384958344829513776875322881534739043474414261267039531022961274728863492434373396079834180649555071657382641586993627437197580893720319977893986597131955437721138174877879535249524744128752533238649089329808613866023326986506678630907382644229956775036428072170287481490808501555658232080382269251295151398066614241155831946806348776000960360755747071606589995655057485423551236167773827824614669286707211191408055183524753139685013884555219625179219739945377454367460830165578813223265521779523791801978832766848395136865419589533954447929939825203033043788591713912388853141500137806742278875064327499357686367738496376218049268128500510769005010569223407501429913738941894748380670873735711495107997261951949322276211147299015894240123488878328081271502278722993059109734543003903818177400628172661339671034843498207565473969004923858199999941393612050355360721487568513717878493619117666209656464227500376505315954085699852762613970853219728175566171319611331456699913384746060765069173090590968507632325815799930988787598061830147963360723652900459519167347972195861754322050398513080518279898743133560725083048883490887817620075796572886594114134012600549807032307602171972635150900161910526663761012290831060978297834055039429159439546026681998152223449762951689716219263237849325024325083986044636725536270439552129775305528176493644940834276591250451214873408985974258041574746988252963310234257966375826815601586972179676330376139924154931625713228347798600576744643156140120177807591421522696923985073903968147033582341011828694252390757948240315437241325873093324886157424522163371503339132862985015912934747303321991715428155879335655572197437143753292683295790682303256612929335819365799098222131028058014777783101368176943169506747439646994598841111385530564457892217702170230611770464002238111391268528695113924724600775934793668790316919671222311519533159383762469160187274472887892679061826334884687342490245300212472741861505403099317610708600752056741536837146291197110616350672633303659616818141495967861123629332695803046216290779096577042826117264638627036865056688945384109625721897787764392083966819808078248611158254298880176452282629187869216263012931495859843965693981355609403062334087037234521804217757730649655355015467721320506195752797517982068444872304719299938467147701046721260036652107855606012689233894469165430183821187982480774933608761948784352598797256849887470614810051148061848048665037558576925438528923577822072666177141931460281263792635227876704745658364360281744367434380737845082422153789521721221228672143053851586416870394731211251296556977027726754683430747459395566367548019546081846109560871829378441205198171068923173726333893214975656350823707312411211714322204360478778285227932152299062588373314464607420273042197106123400522355692472450901418007424095331161833835858543331007517247224706717823926072639175884830564084642010660757386265414025286105156748008667014127731473849232766836234781510216342474630530990290114360285101173719684876004396459246908028056485085859403662067817089883423060464328610750578254874406346552681282546688157317837554523004909714769689982128955884278459224494225956470376070752502707749731153441716800546713850222060835782489181591846954735835161660689788753217475332058569165254123781446510805416132509923911474326323983209267609427891331680823475208908260066988287160500143495799496539740353832724818566980234743990699602427591911897125971185831159461355071669632352071027391244514931039916169048222072376168499904929860348930511352340522921651904515081891956983710352038992323159621441004700515346971159384668294808034206978256205027540120719759788926799593135707858320779345642728774548918651207731652151083744412513821138788657692792534495100129292236493017238505940338683544760449421173603257139188009512798107940448593516646471807598595717002505871776734416911443231269658254941672649282826814878195648889708839652902775741245515849021790396928455545822166586084292644763989021938471157339294667017079983654818656849636828623487789415653105568367417970571756771323302911884368638255731262016786962237844902393671557683018523250392936736587612866270077679066220290257279701820153748320139841514183230677500362010395170139937545009676612730737379616700044832584684120725675501156022527365093379240658454058992035851202045200701972769897861574774822477331808459761481952841799974253991183179275067687410013733047882296393134451663882173887048418264450929124443544169437381517102686388450255101598131484827616221941816501460857941844700732766128800585811561483926541563614324254115663002752581966093635251685267343445897906793285975591655147304378670879182897362282810648589442491266557260528390125569686439291118364006161830219861112485184845194839339505117050571106367771092633679344784914596815404408004151412018048206633862836201402931507528717764325919541164059298345576022773528601093526180381250986712307585959040388661808128325718357408809290955491944512223726547328509273971543143654746447962341921440831709048989828704223029998507067049697404150549090932796188468238767224640973883306475452698916447413134056691118733393108882456827206532901877946922946469624768188363462124593636369570258808002590917848378050147311438658425290150301589246480939508992383106756579026675028166840751059049035603915895274405097845784732923483276639996398379554023183034117365592384599813207892389873264038971284893573110189617996572281800917211155838951615238284228674795797567872126610705184140622130068709623146417014817974146127725589146856713969865089293040000619592084782280903224189105477804953319615194521389789505298206827322833455032249074904117803304171503981284083216443902060961326844716516956857800034351477002595669822779603643402149220911753215052528596352703638543479157883268491685208468892014298309346305055018940231867500087949417109550606267170308765881419320888515655499644019670748651887694174410634392497485099288247899165741959800031653892184342638086319332530581633175628979730683729290367437818179960626656250349368983702022945224542755572400606810206655255266369549737527975425739633561395892227720565552824665281635484990770709254271467322668304829076365543457644972182672327459469130670741421524872647891496567358263658134503868919305041952724657344742939887570638645215810856776032483921449727368650496747562910512562593809058061388135968727725291017085583190506013334110912426110438515170021002890249916946111301601925526472342462632707052102464668450538366450728450787875024745814499709892254472629179113941941931573613301194729268636685920783096386733841568260695268569016308382470862676830396429396354963972282126447753483112823706850265873275883800120529196649769204013452437925144019748503724510457936017677903796440118164294537913523888580607902350029390100587623870683914923147823381436455610936563816449719076219672415709915804196237564582712676072243849305876153811147610194527910739501122361550542596255088352886491010401239997363728178507264367880720243644698321411252045980771768100946805614851581974564364003318796112761671895515439798924576145925899933493843268867602698309154822566625043030127907687895321905045080187492689966784486451944757948104088994391501384283813632127659172619172972016035446688139347957735993581976762353565244592444348491367641967222507767855831595611674600914639509728507197985845376470168171031857232380351210686265244141709185377905273890131502511499212503369541244699410563213446477027339669116267764627907966023525425031876459985826188321272286112509109445474308631041219628002884360488610963434778833028506274352559798216767207122080176336403575368945852127009223642053664579143519539378980436836837021654920468773383949717944499531749088481290218406219784700736215461075049316336181194623988834914191658463042161559460274939327445324386856650770109657470645298635538381864777429708357893450611930405324090630590232498274325743696390378620506479186480719563354509141634660320544053947525296770452160291408060098195930339138258645344172400500600483118975743562461101128538340243949442144864038622932925254058650650497678556490321739955046649010398501090127667111820022138604436007890891021080055602164056657847073432988603821551338206504219207896127885885100056687571055664642929012951579926200986887486068687167487538538812753889199455720965860335784727325170802093838930829678507616386166249624222734637269116726327036279294218753730119532568846241387195231390230402363655857904236416392654498167063616689626263960721651997129200122216797465862311251709825735167066776281185653772170950017540867777647875215794793882227862468438265678350137785036291118370427710577182371915314469131654391915763832747705262179592004342587984692474503480307819069322994047806759079629658430944609498889644978684431115188826724982233514058894603794408178974720195338211760997363861723220096500327666577062427642149453170088165152455903389925224452964993118247165812473636752904701512123416895623603381422060550547655782880187266859403843739499377700864690002231451142881146416563296416070210545899028284916023438163715320857685052722632124711672687097036151739364402419735983382574778158564454599660028408163753565148315557046220633035095657628778840676595126929839485791111545848674157634771813682713028438391792914561798788268025314259361105309918828551310652786120049049408213459544363118106388329108432755375243602137974559495908903408911845013930179428419099580325196970993923017353050126613920122753323934472273632676950617608684674643723113587254002170117587006713715323652601533927661781122728243058401163936754612537907269717973870211029035351165156422534229409612166154906467339514932516493906867762028001145597495032655429726915924220994350159181116341013748050834595820292388513797115776046109570970813029266545535912429941720211288741113401209571460969796967041876008680338303268690049607994453230103572997501766426825324209413283328213998164721673445532008760609323532294181196702332032867041069785693412735095274710591134666610964213586841094446799047105686336128132057893407597593730847447663414707513068669568758338869061024364028047067398949792877964012983169691492485385014108770638140616924776283097460539459192643896948474073336359409846837544596087597734151694937660426525753298292989922650229365611372983957607213052241772902012183380553979464306822166754484571141136634947967102287451391304498839893208925789683249540881496755913055197169036231473048707838367547996304689589243527676056544938588681844166067279466576979918348876259700216477045795505746244047162948815387366981268967755190726839132914852776198867824547160931001195981618116296366929708505608259298410791997891858018258360028092057477054240746010032384637939019808191164910583792865938781325747365047660223523043472267012362782713844915152653359089981368928765387102471623983676480391327886483669149198397634586304606658551366848658425825728143838339658371212659091248676420390203234521214651341743848268372861780110011326940390225930257486686618238677914068956499773534063995850888805494630135069757596926379119968890421387984685894976975538608664235343254360235711291853142113997816464148673704453219696077024816752023942846014107380076040814878338636135272279451454820621268111248677597922377343741997603575453262081077385955715488142477358332358539789786476210363947240682916849256690957140917252040875697004754432178962518551258117370162655972654304983028625080450183154975495059261397624631758326835152472643620170287098817476964521548116338672088912499134942627678489726603055642013568426451979017451996161193387702571242511117353307005038713583804652459327352550866846873636422470746611683598668303965350957292212970738992794383904939486045197501417987131221240384759920117375079195059650869454518915053283737424683002945372953213726110640648279280286105675933582535286677479864138015941045578540110203095077040701130787799295978645295789185370058979732061604407630719834775185862797955972988091976950876221439312064380684226138368027648735002875442623767236835311846250052603174146621096657612530035644709573326260468711714858093325800583927585033115633251465071458708910233100494905137912741422475877068072630966032970011678518248213580896622486622317923426836766351734752181321339466640105900819204455539810914530235778357497833824554695503043555108478974114160156255891443508409957174564513919448115052799670609564369046012074215656715788885929968059355460227743247682830261359576862311758744022287522526790011664161438009049582490762838617968490910376315393972836040858141185835762657095196585963745274127161036356233946091007460166733900051402150775798543447167749526806214130145761185828173452625896221357883069896728497785590141531312239094323450093190080804553765334286266794686829337527456681192192775916440245645044689664432740333101442096077247768700420543576834714265363259091486658780684192780955427409222194646334502466754411267173039559224522555231681913507089789918108169977118849832942969960414877590485821719428407176965551070717205505670312067644954361401322235405205941669777693133419644312193935427858948520994780641462592215145646934641857252113483200908699429230438010712283115440394320629757141419528705965807887802197002248251493121582972733992401333167088711128571963251912509088345878546470529683370546024090505825664306640510615073959692600438706531899076494637012426089207547888302721894145558517694773939415677544953410205256176862518759725060422593021906204323717411452684004555918905457544387312112547965533082644458593997724894695380723362344991730145808059434498199211560831612005066138265844418227864492862711049426247747685902430518082071133037975744677530732115859762742776784793924582481696747202406157440967936722679922295097404204590237045747601108821202654793111377568794139696511595066473019609250763086880809567172769708629600277522444345357353913543637232536242170266453263849175598323074581276513558467968598584499803950029538930913058092470640449636078295284784063889136521517694716700952227292100904902072926307443348682470026654527428881162987901086745649226072728685302434898884544745914916385853180622545411565192327168503490839697364638749177371832339429471644767615313567691471931784290382341454838560834510666638451733590573292450404308660420006456555814049912799856139794124644464710588154152017662368598608707829576407113653281933737739280883874088398428306934723237757862571041038211824346261579400875154668951876841640914668455841411901830363644828145745149843355484574593302615787000828488715711403991687016096812130524562331923596073986045560057918724390897615306724386101605538046114245303063716850356973418670190106038004446073470760376409355428809330117539927876597253219906336382805580249214784013928025092957199911402394550646961100647379805019311465576822452035656983145826742493077341674991179892995061560833027721246999235827466501517374911310053284975388361661505939235892398870302605280490773769613043988676750984971416607209180318091139853421525862463230904279366098468543032726301442779637403887758858113795893880785612547900344064044866462196327095362705668621247634725458563316467586400002865987144297096856908440776235416958812065077078361666563224384274502053221671897436307408611867455078823752271802115162569819629843811960169254862136047570744139318867466876440152848431013612018449718736107489937759730835923590171607948712858578484956239812292152263186733038412889687492891916565203009308562006456746824987982939459258581468793915079014024299844244356944480798719358600852123396404614741423195550050793466697087867124327340595922856979723213252906600975863553828790504048912222710435616275500179571092563458725992141994042281371960044472193894146055201297917224151731596629440787895515440971163480106286692085473598576003391869320655004619022744915641580575865325836706545231026360818373071350661459811381054627882241351038394555217555170328957123565321754283378557597523025837942707472547532472495522533263212667087368462899590270930910001570257700004670815505145645451432534509781102509165482819569682237860066397236682581393020230812845325888587330008097747707850287313660122574018167166354389446667375531025268481500558227839835627538859552290733348601708107280946253694130296025333505201955906181744940357478795772750202229117417649362492503366206632348442249537170801834524377241466980946128784752331448789974419027659935188979252779111858478621614150998877321651223203481150974211944545502877356675879150026491755951996639743358860159731562305712648658056440193632509713868812481991786157276682255481210961391899576761625306463355839494247307553719807359100205585195447356335001537577988544099449779728764231453309763439638601690025833176289519672464259974215654377984271833651702166123735072168995358400211442381335520010654985785994047718572024399003404533936334003075794002715463279104369018211617914997425372035556063415680558130384391611281851942911904485155922055152544936181261406425583768536222776219095425672829944981584939521364139721167861837147972528934137890470683751310029486977621138692086470457372684680371401616467757572414769988921969904619757836760416340191298990129772009673290384728360317806646061409253922632012105276782196330648309770011480205812241974456953218213287834698562291322809108867802696971201928199140022681636458070494401385581678069361196531158213645468318503951102559409011271046896737422311331804356085470893895370202837286543910380790485927188846321593734924855150460797950176929709630659485245106346997630508833695468998847985536034149952465684874128066110473457258012925229610287303310536981861485408183982197829105030881382955033568026844756861146305254882612724819374081090117856564710395640210888219787421537001687807705449807476257263316404429665200828576913298575706621789195030188059001118457740583301173347393068038674005157035724735994091237020481747818855755174813883073420076943040490724284298046523463382547749025661216334048903248786042498602840914396526571624068127251169800255935011733857589490583660054136873538775678664455714186568092389555114352808225028356723610936690167252984301163707724320979274310710109017227607936584562934806568366021608134836277625513189981818789050268122188189308136739803452434940715765960645985522863074637218442166165524987920234781190144584356803272064256253006816728535670893211065797334075639640214863235751150186604526831206372720104537515242767815726132441437854463754063596512761077374171565773683569503919691755006625414206788069694949524337056125512934319750803588711169932668920021878866294029173954234129921484878026436644570242531160356954427761293407187251655678408500473403868390053589364796472120776230840290822736991235840540938286244150512509629304417072947034020473855972795138703161354683737229442347031261886222610028310464212838391822093092121059597556760524321883442918054042461734151482624982744219066359290853281841287968486641681056668510748372830413031475941348752278769611399213421668251423906655867256826707430954336035594003476321619852597652526408151379868403634634773563732423858307977425568536969958514421483869934309403518832301641547694214750796924568231252275767808466987984189333688440568725160995288969693737055944584212257929276573751947414216205842474302074611409682587166391759252270349119501294974039759975099038012383023094712612679999837334944822730325890097923423411121197311014929012775005849003472286611804946728229784829495720607615772491372419412049727795039166760036447059281315827561274391993861817776225027425744588112795238399722069292079894974465324927759171266416086992399171919060909726451578029801650465780524732731244844853868033863598936473061333368159561827113303461260016460093547718429962780120296794332482623879625231264295955888191936379331064642348924671326061858969390459380443789083822552526406787401980385172698913309594517339195673473387009252685587301229256679323747536602818207689719795914634080073760394472090741852777170734893361651612244902997723736069091177054973754409791335928878012442151252804590637064831383724232742510659983973403474983057370020593773326019070934503582695320475199722426121205824431532699598571009866809434439277656268568733674789141767362846849364909378405223418881569095168586390387516757658398786967234467286539501911019461618360957685471325498577879735620472524100423147414297881614150132286386775683878410635038333154295494984577040936954168874087566291717770262373750455918257152738940252746406523040159239574588815596433876412943945097842366133314744295955294446416348604049891546787082579202902313098419262578152734127221941723741817869988038806085323139460035642068704593594700250985382719980013093152158676951764055080777831950988899951021795601910574742060595110363803881023661256918854209579188569232087960249866642411124577101925016394893295215678444679688847730713258475086394928692625681198693959862156265367654367570069506047426517061790063206830636331361887082681871092232097641486671547023877928838752273133558494631180439544540467254329081562588379223851851650463596380699993006677231813899620111529254522031477603667931805343104517833448013671880991002730600302536726061590689648881608162296876956481271838725185216518770708960898709374733183569347829415996290389387037322091669012698977307272937986095598665064044183412867791276288971782090315677196154414563625570871699659168687057468117831643014173907177140625547585427297412991691367373741554277955861883179918783717200113403087868420412563123685391295290320412511203848057615550973997604703811860520421613442756129687285850672842881891324654544659791164423914450262068629717177488621941732191110770725452820486638323531145087279129863214666220921442402309152104843649760546575389369351728732602151657228772030858647653403136609788380424332919168254972984837209806616910681484091764940421506051511319247981494545751018461905430535161849532452853720849106855169151815381738705086383555384167966712016066497202153333035784204296986581040180591616830851100364386777441911101621342830219048287514531680400095885878266949818359827858916783605269123885046749351619755747897946371117628166644306574047138496703109639268260663941933412131951597473762811198139839280265497840025295432903771756370772827185855279530078106797125729582771885961187601910160584505264605494271883703860065322333010035677407682782673509496517203703135796002822129351039422640996054025296498960644561324805377815005279291182492660019518797150536569216218543271998146026841573628613097045006558405636187418651017495005915855660927181809557441948668466534940758264374062171189198572805837817597031139245899401270113753017555237432370033029654754029434131037613112065052011223119048318247653759682711539617557446439090299815554702380683506453677094900077281733295094021780463066548552286878079954052059813047720368451392264154403089515404176618148622285002280404919843390075556231821393920494485446541725261404477642904609984833502450515715955505805058411873010386311022079945314518958668884856525804432591389060825328720842973754711382457467924779829142895357597487572895601885998002749551980226704918222267680487582662781638757173449796744717702808074615027606825998682493290976583882517925075814920775911135379760516832368003425824860926930992667440773480999910570703973220871879864737837030910592690805274942920479260603515096662064354697512786476127693911179066280835188037504156556894151095177141667806712665843826324051320746080061290146387003258739476206394561856733845201671412268546211005736436211374205752755421124795872475065346667264736350879936968533180676683896410554842799442995409291177547050379447164490982909141936658064479083176703773792910155029763172833597052415783955446219623971978639694561223168236540176790605807484796079159138383793595576815058614950403288259658471356173064934334760969097092717241046408479474924130961047214120010661182575438488154571390519498645716489225572841119106347899692440824550558346775360629160351611149759235788731457686658777585419387712344692714113859413803079305544849692404623524739482380169999761680769227733314991975105442043809407258466568665357747684752643632364825001493725421738506020837957627877130412456115144114245460371180851487124372473139385310161757286449214139792339859994546673456944624436395255771699676793438224101845814597375263082570799642672568059882142412813756838944450052233533181734495460110504564802688329382497099143190804370794058886844176717943385434437779434229648039059915294495375077513313446721243027395369178174126955632080601600949384061441438864642240323685509485351789430885541559898420636511753708203886944642950162107814574687451243510772420995802129146255896865500203339717195320952017468710005284058021994030160150582912563050375390383766203158297647490564330209730307090276469386122465649283749921220507981034356505876711101696122833663983973398626576469000679772234675385532735401323577393074434408034645396842507301754776966849400049810810360919669820217854652866012077827264089710909380045201228994257655396360296472454286971608947387360238854595927910333358027404623932452440356802521190692534471429789977412749747349021548196199097963296517427623137651743219948620145884640974248827100222414685128304680998762077335697353894388215913717208906778121165111965808338302170279216931792984532145754668726642417171380020035952428754811670151060259229828224444283472945158726293453846381717322985045222380752636850493090364956201518749510148366681701778503979721657548879522057156966420701833058785186992217176131595330812043172696224577701421489086225642408222051023013131240114247798943370584626276560562699306645469987186405423226389623447302703415648977285527337145493975140384731563661861636818138908954313283890357963669777889279507892361877402369598312433672583835539112578854852214523244031461349289274904573263186380698657948936340616989093516285427428174858734861391884185579486179107604238510744676983387640065335630483026692466221868289602282605975612697241805083103713402446650575140405103234396520892240113436868188601152050151944466789590196421029277243222807732112498514643733358643154937071650566414906762389948980795832568029530357623799194686859259675094143226191015083249900534998101124792527734379215367702302138612887190248923529802673608960134299718136184797974114470417879278502753905152161968905650571920402990195872987177595424881940834173992601627079234940005889701193513193472268393029481596793661915063757617545036546277883439341106228143823526190269948559778653828433635975105512765477850782858337139582010608900649464970435796630553637428459654612424389926102354664141074826111995166472560499325511844338682605324783696108912649017047964672506426876774954021855010511005589377550939737471238896804111152652676245943922361855473153214927195807511513647103385885452456808289319950024941911005777619328216647232120433205142676191557319427536596313175907173705660957686608584519148626038632738880663147574106534184989278188992732662163017315396901296811422333102824147906465654122118492014348710319016839389780113539380233064039941767345259716213628054845374513746454290035835339101532667270079755192230332065916884864016101829238928120008374670066778134693334234359222637800298621285160192684033515237475164864448565252379054446391306967569380174899900824293667811550030832716368968095632016793897977506432678604946183680138960414996447785502330964711766571994349663539594139184258147906847801967049618333425411781942051238373407905084916769323633096494134059170056871373864496590483495906452924351866145077226873105132363501707066152008190694603826487280970822561713381144656177660454872513438674582970356647376634292205549676885876702259435077703586207648695718096309208098949650241134604769466388116825615388481966721444558659788207618647439445124325615314324974326897456290283109927830018005442542696221920668773426269788349468434743377769919514027498250839542685616476360311090227007779520795542661832751236861719313313491207800273714752485802443983316288705763603998429297779371432805041316835050386274545335482613879495722444432485355887192036192737851200707997845403481973611904322991212160251051778874060324958989083583314155709078022798386863995260801533195105983556896134255245320568176352331274614353014134628448725434543063928207216156826952134107525538679997422987663263669500028150098968997533260306089074019567805258190510492633091256588558989326020838567905644922314783488754098911695890770850508487362712498439927947728867025163196495773108986575761490789921963288535980339513749118428091207972993239649165363085170193696312359635245581570833136406200803416645651431847498055861880318898730195220686372521932209180077963607416659391139246843576126941987617181915223637798390555595102213395404646453581695225353459652481331976337876867989058442409156878025689706720499314420199574712349488626130742543794186542999631110878442251312290957708331547596616141716700561326564907219817948695373990236968707865087673552098849255448318314140502194879149927487201944595509291071989427593199096810970426078556659585773070132609239988869551808482588523549821083035902202620816011980718728409910342783076532777188404187455392710972618365138065188183987536310250414503961296213388419455165891812388366072739566759111397564466737896633414865394640263799726131385128359002069352244668193961664103917113102391890883286853682874835162646929880730805960032441405355605379260362734709611561192527110428527602498336630315739111906380042431821833603526028159606960297024162825584794002330574643328184097038537755470512609993589080798242648989120400227887390786331459789803070220167155391249618765685565841586775240512973863979946518379926373327027280840284454152737374052940765372112405567934330871855821605423955642909543998956926711687313954821994623721083711837358431414242743790158982074144103106612484166043820497082071295872081819625400556650747315519265746636544146492476797705834550005954204701693883210888992737503477784887995917625573617126671095863775538082932613091126973575936520948304013882084424951896550605203676890235779449912735615947974683791111787589070543503491703986855818921445898149851147841734252262526483445663791026001144133685308499986602513613440695030530425751996666186805516904491695191524273192180868083567329097005520962478033360309410798318257835196131316517071211227978232384567022414755081178989001842891523514699244132070988799394808686215693625514258919276205805682271431654904769782057056086314571002849422982402672038892211483465414710031834164514629818521854250365175837869366105250392022790858972794586148356644259336622775779256903405157584667970408538337744573372931314531005476638809549123301469327499874241268143590550315594853086828164653349873266920392354301894044479244292393879902553945232012238302600179351603415929994577520045869822425564143657633376899423512148456187553146895935216231680777787672466941535215105369765335154596557181104369824560582155103830779335511921264547341491277519198631712125570978497428299144341946172866213084528746979795380477120742304087011727051943425514390502723066365834301839736228263872637354758054362082735630390419921369648975090906404147563218325483689065200633933384327722521511956809243626538025679104093503812660804447689490406611848532527454732724192806690603367855995558763100091561556012156484042686479594378101735065033612574344170519906990602281476685350931909703006480097468153822037798919173921069888021373399758409842031338528285191516940539108983142002452333713823036971573497818630449904537334938772386042713356202683557063868453355699082022174695165340357908439500643109305378248996556416000196819115247122627771167425277484616910216282315009239173603046472589858555703146369978258320603900357956040467645619614168075046374023453593570395022864097614268654792320107037439309477844901916848633777531124987527182553160067853101940830630475780940862010701992498445223597893657500710158731557435093964758722347188874598582698908229511638439907396320568952574527445357093635704446922222479717816010595209754018215152418472938723684937634969564719258856470201665598473910305345347669440317688533581389650147908607626720378683913976829761621672858402029825356493406898772173124631795607089689974758174959775311949529317898137810475976909138990211378678706631155919851920692552320641892088005180013322103328591001041320639485615037604842625798759404123259143178761909425199884788851917436933365659274247195478226936057529873832946605208991364895105668476285960025191721457529114036268360322388612381683195940929854676196598654135869667019779228242418059716193029702194341073654162326388076793661083287494729225708387667699142449998791522728201250288930594145405552941448570031120922503131656009844603382570461067107572875640816734436806637034463329212198724770501715396286511258743232072165059928504651434694380230835651925231926276691229364169290004442909976719051571017777463083820822646484898800550609849252940170098501809813746891373708359431874237297574214361821405655830619059786339780886486080660267059535693437161246194424937411509489579706127858306782234005328090323728736599170127689306775164831099048528788198701307192285626945361462034214411179589000959425708970383075025725786705921557655232073257571354048014361516045788110433394224457265114989110009598681156359386320654468745530853027390059998102736605368349886145858963366929975223844226239519064333750896176894496211328294282142307147939558746195624401001482973549399773387815866600551196820640374453297752127922677662667105746177629264967073952228053515844151050005534115330003763663730798768846559890122962362989764283961104660704123634453447102447562492540496077377027576801568342088573729387167465310404986107875113303707316744990630995665639731638230243425424356484091538625542156559227264676142865063886865509458022373568155381589474522448658551421737333116175232128249076131676277308089965159815022749215811106396282630066313916453831553191325060628266730994596311957269814669689288713556597792701733337375443103056618439148048468197642674541143828137027474520435136197136527477224283244046585742856253178284464919221754654154802704997366163052537753581943540009766767300442822676527368716036703664079138599858226951669597934413276513222353949990310922898421186302200147140169340856554020033255156327355884684293759624924487161971049032707670352904411787141040261257371479254755623024630499598075560765143073428619349056297529102901176879155583959455406949812922583601452623520679460518268066136823273393548246585594146572245178555179961345959416416779358771369481653308821671794191675563192545490313224903473471945432551817481934535362348014468744973072055334849941798277294251193545087833301335864851213964449101027436677599153005520259925061819301277489485367019261308831295319764790122863210813081707639667492552517881261426796851542244246947713162279266490609237721447259057501745100517480288715963040835156202013033346319156501527017662067878439827983766049841724568172972001272350053584276163886981759197258679619257085403048431219842256967482919359044552112521660482635489141580200871586285365709336476115409829286317220866556033374308116401446613050880991023208010425457389856946427008581595671121796970611162317139735841640975713587729503059333106688072488949790655655959652677826857428276698471597527826361619818721621098604455217721077694245678240555379680976278132933495209954002429655594614408877129172472633411336767281914458934472862727553014364451917939130844319300488433899351959743368854200883961877769684987132990944742474854665947353537497536068915215086054099462777295029325423847291769487223112694006091578686833473023945169933078857397644585655222250855500776678825968242433726519794225406573266222367179971228895272884549209938361392376636197469374913695746748685435232613364279967329370671631855241121232158633646239163442752684537161986019814925100069825869939356466914509871491803781688410034923393262583620483627924087062542190845253794432828260415357925945343678989183848029556817413299762904847247732567376544617740871041984429372593021878906042599977140547993620481997287626612283667087727902058339534189550670951809401090849801319781122899320418597172879568486992236678030972489924187086735337076599092789555728352667888574551200035297321637431074537688581221578191614791737264125507449336877747637063918846117593951068152869669867674210588445193904934947755092893036416434989134096498597021791443868598116268414234291003870369632805727953059721051254821690565252164851383800809315880854969718899040396968940681587809435484351756656664850110238120056792425758753254984686860334724078777327213538898920985904933509818525875599325586437914063676347363278001646957526527796398653943423379549013929409829759467857324872492902211794813309674176325609565455218515944494849872393489155465311870101540311884835227766096884620241381541547691098855683081852253339132296858296259624911574590006489119277614439496383467638209818177748936301170581659849594579978143598059299931615890288336270017986494074497272938624939375611228037825536497949725193636863871132003507530837215437183299120344443426699291109156094427006495037361949303068121037539955517396236301477686211478922374295109894397694059126765696436596172392945749158131058233645521967110565966606294194901392746893201260597767220647068990233860380516126190014998315510671820808090183135145897319363015198223440011123896228027631226622450559782747264596555541067141480861399521525676082697519397146529716286723610504001947905885754205146317593880846854509097328484353813043927479149708656877673480426098125421655745617155730071340660408788052920803893664608645592518024441540913556579711206358993664247749780310884700148545292225300948960986380592082376014487819627386231788956865729241647262542091695769704461190833330369185259959380606250721000227737949633648137106381667678146591106011113024778424555301417124575003410065246242095207098317967223189833249678020936920468881324724795454546178785491287142286997590301369643623378420272799897479669158170437989429025760054884197542611088070406106960580313032644083259308141201824081080776976267959002793013839200159692883274260178724449750364364797083929732719536222011560149933420656421499834191428717805351964669880880234622978598948809934052212990804102142028355162693118409751161768645324169678956513584524682259421693851245954493691573338569882896854850009272871965792306759138842892835269763145193243157628984871950981683228681987550852214210076782528817170309772751765547554496819213585319190067242810129009852907217714613750733599381113105212580570445640886780018036789126879232280201309413193517820999891773682183534913367633732925289212132842491143058695851856567630257194086313098811390975207309995614187780546146644137737474515591749687011577127628136688807172030055624682527686071087625530646115267579527400699740850689613995523342601998495907832296705571539415818038242471913232936791236957962636760465364677415617413630468025394110768274084286128320537052357540907639158943153212227431790708499843023410440163253725911407444068293192900933699496292024410504974748150343409895077883854902315601163580315892093254817712091288580862919929086381550313421791402016642954448139672757194421821920155800878345036797304678828228973816802336235873741659963444361582922116376352988376698770671882525462042411023916255142689432526386491668871333407903896679605462751982553072468803055139873584540288106972984379417603289418616699878045448236052254246849847866623943153565184222783970644394506077664583166049721385744664098206181967007847674667564931921238682514840728769010966693690570474277072200755004070887728588253085359496717416471398810133254347812663344773909236330047281650946205172640377296480899366372376270144025694326004038296982527608733382395168181221689592166797663300022316929639062424439945416153900094898407926974949828788117403090127398476561827709525143484899701568986430053816443776653658919097324798051994936145428314789284336741489560647558188093604367101441928401245045675690496331830509907122716965148254889052037283802221780832273235230796663154087464081807584305446894466857837862367858691252222705240106422478682146178821185112207376459884291581289019939810301198871740405617604783230732057638186160217038205105256510223674210901171778388640113026787774158989265339529556328340768380892087191316474365446723594172237720039888878771576449272759820188812128202188845888644158014903792376741280475639151272730743381919877202286744264179107776725177899026713117709637796595317546704462287134585728011777850593425588851903669484686669601414977397581629949843299028844712119016515723165533849828436415584521214139360059119391179037920051905353546252916782063305331833286437109902074203356522592706402256058760575599723352531763099672538838540319749976754499915878452497541554294235399751182531472052152112599482122868073914306817579892570985058813149648976355529701364635383463702648552401882800672042443938297629343081069409177772420304844883764106644602440992404354988739186788587156578747054490345548299524800661386359662145121936431115232263555518821185566167964036397731073294481152320495119361963257435099871161565647545722249136867045515064656518199351606058429278609332396073503083962874809982256605416287746364775306507307939524286557452070052721551593745722235632973731404591121400198730228914253880560843435400173084184995026581435183321076074585381253172114091748845509397895728956022315893017348531450592561416179533796668054093079011451997222124286383926146471468641396954058957975463742114229393699733007759042356553859041403270332409874111014084403023669424904838139787040961706125990951387045177023797523624269905537198566992553665662072001552390965855616224780386460649430442928807865625207723674202678025302989614504319620846926704240209108934560015199759484515983417447599718118497723137993376992160494797146863310265790502599293029894182486928507484425028045533012220426949411083206680935858537216814962291047574334324119394870985767664298417190097503488509418506809063163089412138850625601771828505319552771402303262099534465020890445657723934748671938034524192970433800915680998343350223086044692295956227206652533935773046816121532922264218891262250142175022203214203232559317923983082583186511186349175014475479066277629894649775598173959337178950753893434654801265022890544846331977820395974044918604497120746851311521984468792151547589639874862713666557969818228763081604685486864528612231834826032154284322480431793830659486646937435247308856565679458150783909857458868895487345830801552087983403720172673352759252636437601510796887893323367650976643463530179687952388473072652008302873998888985430843841072274379908068048788421131682861249269529197522867839931701726270660319303449504673819476705920787619642275739349459079470057330716719039989745549594745328834231972902304278000794392388327312489106769652539559591052779507598457932136965458214184152874819436695310659166115172702487233988949927767222341334317683391448575647719919277431809247164547019227365671386377428940585626303824852408368898627688369900934143239687885738436674695946635116989886144510285754807282095127288763516695603112929359620421241913174402087759946269915325777637756525374752554278260968250759989663938873601659605921252139672780179566957654630633055240287082813093381922556002392376310956421464409609108958494334271302709567949897471744483170647803317833470767323068739328107101367751693320906765391953112167331018232087720362440867650802733894390241152097510175618047159457839423504636264751705734909019353170445979394702165277854964141859918057946806594244392289664778883173487405712390994710599015132874243983326024295419359222358023771502075553907378658562149187909710976977817195487765509684442606693624198526855427605293716343292152300940292830144616395794835887466364866135115535651422274827775141109729122065631745561286671757420693288778487947249085903422906863851557962932867865851573696004039974488270839310332314245034334633750585476352563074462509306120692727901265278542464718960043734652576088374842433823358223247015218649304190549864695015738108082877044400070075034810659836737919887687592848405089340926441207971245531812939552840341623232371761026695276718630655383905839334581641165506364814126519908033937702441943474690930090939371111181139764524823294323408500730202721981987579804640537730191345067040182181663466894815541612739391972124395442223347642929250950960204603610958159897962865534042402425577721852745026650250901020987996504464339629468673899855725832493483484300974195470701733388866911905320149285499642274254887352289115168420074421039036881201635501138510929227023004263003379011029013346202057926308430248193213726803496759245153685610982549371867111040654842522605915513010112802753088002660324904192404070484315029327893962133573325247099978600494406453596463299518730674234605458047340393106149463592426715191297235225708133487846143408620931636286671956498307895214278930080854738820638544170932622198868500651777746180158446410262545910543960841066268191888321276521137361909750498624507854098820146167249266821159958284612976403813250997599947565312197259687834854258641500841006592486158135990465082579697904595306637304171649593865836242511395189492070264356999989057984039653745683941205786355949163576567538884008356487064780913585293946810141724829914395663071846681270603525899714965647609829658292903295188875737312067583578311512168278715670044549242176826131326678934800660240781107061308890552102428140658157003552770776686568381520749061894711683154905452262211181790861799491896652280894200158832865167475485770981913557453997912827010723226361289495811224294775091418344433584824440873793343394122936981829642069104401253033155002733056401902772891413279627235997209040821418887635686439547648048411317367532757015009686378281234997799304716633562892022210152562790613285205573912657864167478792130830296168610180338332740203691489389338073072280083076174647197186742046363454177001629177889807105231468545542891577896635164044993165427484387590160106141601344830736454633564717834709210068777205357747861647637289822253389411395215591856468348978188169375956217314442867464563395930903410470637875920013509422000983647680850825361187316276980612959464628626883732635261451488935893222668912439884300098187239320574648544328704271440994602547869351481383795272030149093684038006388383988147244582411805663154981067876697005190789254335233922799147655698578929701304501596407574839216460647523458748825785485486037302041210211736794118588687869112049470156359397650076217643896573791203126306114800130439182006630701797485319083780018832495051025410510882699157657306242431277765324045095869225038034145684879112444995636217359661684465167077244693998847159968444896751298046802692743911522435345052164204534848405331091703436022960801836535284222607775271886868497433151641042827861537430060556102459343407467779618610694609704974868860708005061470483427086332837397754710356224993300755899501073835573969961325529859864132619833413410226965539707765290306564127027555392910991010789609415078360495438929454558933282904906428746778360812370493920607730211479102615854421116664166762885386635813475958822733134581926334768222422833698598457810192323396946215027061984465086629957484478658164333203070910872600312156209975485767621555547697069712200984318678444437625771200765390483646918388523200635966753649718754784412678163943194292280707882886361743003993338543210428188057858278727437192180280808021633086809965711424564387847426279622483009222176754797519933285716621616657112267822671486546594049344318249686028128623377423671096995587847749474534244449600549667316098924143264864536314281537027653935347666508138823704945468691583058524009229271180140205916107604197911248591987377560408964527817535031348739314629307730888798934810216174149099661827269390310763991287797186087203321061887046180364904084175065181655808282143111763837099514804021294677588625582921601514179441344363030080456719998938687733259192502209841019033264863111299468576119002610238368759150090503256018226616744625396617193934728955690538118111007251966169191664546656281923201763752314572178888633327303881235345047143475282332594101771062465951714404649012378062585282981610611799324745549927359635172724459776472726201097125368828197147231533985563392819791386014411405227936509181760346308738971466560686516134734200466783908456186043220428438957383542610711038571668733458648543033428045908361692247768214096531237816790706337155242303729284792996176443106117209357364018264505624739791587069851415855372311184686284859197827783239246859222819431081632152090399312790976333476650655326699213324211757285822958353109745579937436434037325411803077565743906532706673352251128574022919771169915312451832285661466489173118832965108534040153521108776694914443725521767685702021243822406818082736771891750100679569124333872099963072632047662502357279513566056214008469784165210114821380064370799164546589265542671474218723007157414915761850704979825532248462595483813641013944451285975721479210345332410180250936964428435589619071892854923111701153315943489267689088383415653111951174916781091475528782856151173259611054565526102889205444719650888680086505196847062767227572025935285435821256059682319377140846503671312500746491137371623496904325016971326344197921264207745374687697537447024968905474447483419903710305960436548860988741915525227003410641704004731654763747939034707678080516139119336055624948249846664002120367659002209815868895876979550760708477898757453244561319791594689395165031155438400617583510289930910860283599139243465182391456609990087476645067801968875772028634742681673348656622373297923321969033308860756022066600512720040261080000263494238876377794106000322443071350768887679086270926732322053273684989058872401306135197945438430836274042955240406555360716453887861581271987765401001091793140313981424593426698984892617952432191750203110928335619058869875344662405409967981786215643306436263136492058554597596372945560662079575135043755621986366105457828217828566021897705657882966281564771934159093416435037542527319966894888975268090248931114952112242356206200932528059297884274211901419127924339847063203509580689722839338890609893575298120114420083451920701419196363292494040378753517873599923678981002184973334488337434552697518496983589924365115220947294037131188559314281014150632160273765819838463082746858854678282975369188704825334879202189441804075699267461950877965917481290745986050531431349492875461311944789053221822714866525588896610328113331186251482157763498274516442550941333166011430312042524506124465095059148713929110685542391181779636895240560774250654896241774927528696383638914338546681350269222628846947603948392599848223905835328249226545649916356589600919571353918551994792664588481266715082342048927541911843027162390200021124736660541783080521942172635380749297564574820748140304164049969467881746199788832860972258893075512013370733177758752476971199938339937599581458987089032914203328204267637607642836948113596978912032297389415273357316535314070612376563346990686306825112619396217767918962051604320666087234550007878852322836843557551808175974444853921492631945154736249139268749656026933127382127519688092741470128405052126187814726897265655927358683069247359997022830986731557983783526092390839401400802518795398657399123392696089882722481653078299884657298936625682209929924173737624625168484912506251120478200025451636450198566750688388539611102587407327144300516689771772986900319436514719881984643889221331326006770990016947351087559581527378496738430252269765004886288815516484591708706262861273155809239830877321736887747667201698438849220946297184732520339386111947025090338274455731580796717472480754159212755169168072597390693627727255084326353559714422822351279449014451210615488087855801839748066047568261986665575443728543591468826714419659950217807153912704593881851406103239393700291436755096496357639759655398140179211105725046269082539040530872834967477043944801240543351941455698405661507815035268617807855795569453817654904017641783526945223541030571613577371480716022659088164218618722362502432258663079157901953926327161610726180189169958815557276670194549469898474703084996595465489442710697493720475487625353493083458444774692101587233219151705566190216345648649409169328818760811116104258553431741041241362192288380373221205032392556856644758681208545720753603429711599695109731692997438894510343209135413843060419949887966573224356257039199290899551522360112288421835178481490959621418077754512400660080798972576305989450414797687872593464439199315261274159525680494192623213235787648310424497289709033842837710931004968051768553880459490531828479872028227365968191126085045109932609067355545509431376763196033126657805720538247983675118222096933465189519795932013675754794325329653646993885863474024590070795004075626471455660214406955769721369585582556268208548061862897396508702548268554494134482127139771011992127206261627293977101603907897560535898819823989459929096247283854428349985653983438302548900386258770738139785267272815606182903252869476026251923007163660132872106372222827033936268656410944866331749473440648813685007596954795558550060133123713743962094817735023194884285127114478490573520592742546164558768590115956712519531495118964125211370543721443614895411843404966301328533019282107199021392086401965463186350808204026076893013968474097730134480399588655135932523039874449094876772139886557044645153961261194990760494153135340166456990879900745903520044239716638440252394709789783554508165167834221403807885798291277548357994404701749858145240047154138691605671399263608428441105748939797633505390927952592397396112097758991986514491627469678129628406379616982825892759861431246395855746681033209755089093746356903021512640940303528759215491992227353569191102152191325258238819258104979837904376806306581165101648021453306993243789233917655615585641322699611759223484750534278336087703253831672187027464286887596329700695417604764094245014932802416321207842072164208560257659487287774925751218156096324504412214166013083305239695661203618063731620789432272243876412284691720998799079999936114433454042751305293421922352553138023063427471823735852496323273262740651702210383198614628594009435243768738134200069236049652760796080927150049667482621072969358156059195761361823108572531993871821407173606582943716702016259986102737553462515660146299964672193461168014995138079877928782551470073049572091462480892850647525529979788687161931265870083950621498616755232660854672787997860944754634762585021458361858232910744881005221888765410213300918661916958182128151399096721827436325018068414787219801554463650267702692620723590198482078201843836044397321953855447002182246356306643090467141082028215883490360809084054193660475368738126586576752918219133584048032207154291020320585867067778448188243649116978708214095432703264289559461159863965472352883581837617407276318481238236350353272285227520514974390103753624223074252500054685499965539999740337706609217313091733040552041975135474214933081066955620896956605140169951611462571828605538589828685921593714028921230334737659453303535501250961861821796398717538770000760201114478679909417962436869597003514742210832035837369792532308338311002503991825450945756047500778281585903623335284491465519992235177983170852354647503803435028356119525323456941570375054582905306017034515755117854949503628166800470844027443124939220474048590575909001335116989179084904555892729091674300554199673216858941751927413692059975743019152299864703882308055287521781996427276803796702766987802371813300158571125415712536304991513428321008383535011444052317352803011928320686615636574626503748346982105719277175044919090790820328369765976886694641860284082372984846480421941091500921646683373815322426875478629220663889770505014298234543205257864399139200396464210418858399163598311240525688378106090367528130417671309898027974098384235843734866076944231495812325953347475285506740222167705878692115858538497843271611605316585200164893602025494171667426243272271563278709333751961178068133284934356723619538702431335327953691361546631563910255824221892073225301931964234559615746550244712142954895493667852027312759013652566589295690324236526622883160925078976033492732247361168920881321475272353111798703671209781259191367403761767195981799911638997587386090810901316967916618635452804654478007842598906343519218407185591314059919019860994500076790383002785659042517477706769267927932197437208289463506653593976995976060512470408782000210181587442613584660113080937199698672972891151441431226843666348276979098708139676284098626924529714516674463942574098376981781696496817384156959685751536522232701553849629383062931117772822571956796121378739327605789066038621744902817479596755725789837337623674827104310408775329959267877732424670078931258780058163892694816292494638541553306003513436489043640911830116383009302510195572263379753016772481136373944812790771181538239749530843681547338515920992246117249216720238300556931653486802521636887919966248257629866019011585900121245692871904480635181194983896504487023291526934893073023487059350711876626799307438648413438953346997157220477410727834792877786603596333768061159384487927850451026995887744972713065240658242289208092039845966869868567848253530341134364488757144183021668855448596897975961489251207579942441571707021117933175644314911255720544064806636340231903577656571214038531729358940865300457533062291009773676663608778601427710012682336920246556409056214867665363418143486771650561299225030573764856313022117635072330369009780656387044050836569669688085219865347262435178849089428421949029531685915062226511854003603812944395600425716170936707022565360038421632185721880001798232662380512666237183385160647463785932051866805068720584148166372098558820358259824123298235382170637521794899210824307756848947773248972512352626848145345403324681153055167065316738166243998412238765173546354245516283859363034823511025609714066400545346456796172312122461021081823431330288090056158351287029623116731919088231005897133773826957477725159826940985389020670295292824336170931882042645526630263633019914487592353633698419293491557302043204771567685254290624994391062961745717979500940829322500216879631258506655334414327523744046776610605978573198656518226481117539094934538573882110636913164216485801867007770146338023794654362480378119608686416850660553785891913768292994111093223072563509636721552243601523434681222708141172502310716606658539399996444046754589499856571557267706734732213785291482049422398777974537822193143955466151876549997706531144754341759469396788650146247158144559161454717951794187125326813660035147735288038445440422595447227139203450490745346754697577724145105260155315691091647712898114336471132271726356717767452978894289708996748830385313232803584962463711846791630831446162301098724549947663985998465380506226457214419345216370948799393834993974191265243984483784393425959158924094819353981675630325092976150184841842894874067766270438459761594598888473502453247901263733019735774643467455745305459557107956800155001761926756803530795228301930783803591325663802146844928375610777628301721335407206214675353300119889349105990976310815143113193874540161215952144360436466206309495033791882098264115023715131863078718426638404361854490065521840115265411067175517567435805868492904147997115792026335585422411370263029477538343903642699168627833115296070736717758879711545545637982922658577192803531615828332864485303418581814132635325853332553457035198486972561516614011996868274262139452158403090431624735496158136970462129276005908638061354436788579671215385741309447887695450038728751864728685398524375431754168677993357256811532100763141941133692941384164642822276719194573621114065435648105225778717537670495664044163450282104925008872521719293566601984114237919953764843821721808265556345518797968218610634812081308925355924182430728651974964590070618591707671976264338694657985238711604053749576618304075624949234315426082742112873172295612533746569707844918843318992869060612490739992085442430908570576438197137823088881080621935643208927386375873915342578468796581322815097259214762083254391718727850255341785018150115939472471287973789570819915015862685963754302701735070659778575281123370966846884425964487513372890770921527197256928290285646750615246532882403784965645271499262510465311507643265573711794043628673348667510805430065245779953988588549291749521965371764897836322102189756760840156970017590458773266995736681536521841932332426113040339108687302364945207048449077559227228887011453548426957951930509438621807477656812150292261491516697217436230185834948949106211356720594756716041065288746484349882947228463290148381284928757247507874847684154452447923471831179799737186365154549684549224289128507844934393675079674960929649372574330912061422367856806547965750930249936327433153042018409747042818184910138922916555275546260526782229981616447513430232536100469993259719915889425681390140705314540743387226130851362038582776178750960211634814411961197377546915753052623639213431367502747535765715868957983365175590720686947666552960227835840215211584601509530463740680748994272695280908995632034010932602696603426600852665501899206742766772079703748418476545644028952125632011453760311052757962870935436093043804428143258149167639561404097672739351764962045230634388329219521319649908472073028977621916767664807911396070967612234393734131099320852141931538184517133502833387808341991990773253045965250993759909334374921911562624366074494552462647319785601191897596401105533016747669008661208523574931550521512534773664989383028403453822678161399650751582123500842197740357257818256633784961265415612837744877491049241638218777045985276227541304407524403246712961532327692849434101541845082496227004629073148681894666422435045636657529621142783736058419522921412424636153231369135532127195033042599482065688749959768475452074920648489208191780053987926104527754899616506093526206827046544201337199998627854153133556739106607197685714020469503386247298682960046693206936968574754953365674947509405766985652879856433786404373161742986614557727481694378646594230184817312988145226357314009049320439610181085352892621611938675459927645811234717235081439763238020460358006925217383497853159302899055416306975268700200621566918654475864694518383785105166383563886571909905309777277803948050188218375616983732603113627860399324188931363580146858044916358082012125045480547983616091747158856782029308506714652904907497613421826905258212646579279824024862667075000360103076214234145304851116375877158648828364251209474835255281034970042993401103976486409624637517264203729879994683154495747863851598675523083184915907814939384791376430091584530240008119969815322066726437292324116467132221412144616802388490730480969705342666972570637844623310272172256523672491657052313996899828354050313752729422150666575258929042979106173210367142764028001292743590902234545792901233254155607345231208098809140415097685814669408055852005834858407073412039415162039201261269161320900486615102956696291916088612619388754197175165793048081922435718646327487786135878943471551254888647275215163858616768684730854781672351799301523802132206761110921316808427139209323868142089693533820248863183815977164915907692271910263957319332129103000376748128263236158391727279244738219006784660521439101939068909729859909555109763922099051468246960024894909748983651880251998796069047134117857354312340248253198487252752747271943145879411384501659165661980724591287175557423705524367010412470655994571145616766142420543656386290681223028753188438597787893579256665136897716244331049089749561216249401185308874114993806322591609018132805188779184584956470086711780788695484813003169703986397535706772185893261888735769029911855028243200193943430257868596997518550379456928664648697224835277934568648817278259886924487582004605738131437030991685986704752901145569992034478425032904331570351402978563445955366854945883441827762126917378903358126012298397481089963622861745347442566320248504444453498218063956166627499246569405269963929428778295969464098036490415957127979895661527681777733975694893265734364267078643095714732931619728077658457762409915071014921706187677704144082594784895153093051749023189196344801635091600018477016391042159891139249408117792351694123838273707879266812720374811025665426056157665232558721242872965452313049942253018762820862853368549333466220233932108487672488794269739648196505676655051567539345886299785741667937150862526366162142503303419240696526043688538627336353268896754402818766967993949277397303322816844755033405404694761623640197857824781955138456137778998859690800024246214296329927325213682478536756344109918217471009037560554138053819222272230150317215972413738254659806914558821751574562489844219009817223290336622881047003362998140063530696297117356857217142767476178940971398718650242850663622277746397358197190251840423415465391739017556840971917603658187504750958308816962952661724973183659885305290149560102855994713990542953175171339990138786894065690980413100340329328653577222293494255972407749833853920394750321012827552452174727375380045017947891576242016454354132730906106327103267327332811338472023553559178677094604624948899991416537893787454875594517583397532390484673599943453873630680210802983734559333882461986777667827165270372472668135993742416803114420634469132729789392655593711770446676433944336684042048256069079329644440084265605491778780964172942257901552556682070107406399745485356983123588758799180599128041163991181765537355802617236238150144690144503819694707271077045453762731550933490039460430194737548482866485895617665178740703541282902505070563947002711446272906894433883687571592581602010379133196456462088218810792700035601623057496178616383055824519986773174777628608879846407537898965814380254631470708565168617297587370216175346219847538488008515241566495672655409342515832637563870587249524538354347404450098503597718094927146306080140748109299107987851853736774049986633974161108738710417627710072958712061343145622574317883895719096925847001876062965940262040698239858492561615002364541543985378845382359897462530671397127830337200480866011284788120991560321315429685128362460750073145192613743249193030021732943147240299160713119707151281013986696179348659358576139556508004269697718503791370916850469399236261460756667827382627828450859358342993387817213125046283544621274844129931088577674821239307131600794124057795494331914257609428494230281672127288934085782534269353563753725638850428562742396211665295366341734024931284043667747643329800062135257251644338830878844572384779875150166984879139389809769127780467226357806933549673294600025306028555055150884771588591972021588409493254376302897365694054321469815895498072923269295528026886684676275626041381190930959396429154542185158091995092693806886580062609759060633691447173208627455998436989127205499334333456387208406107660763756231129047452011600876444209394548606141651761339119378763314566008043233089352556159559839145267927728401345275453639165008462499183766700371333483047786131204240689168291064554347032220327918744920400933970930182848772109833905523475498083718868855888384971208343727796642452442921230500328372306847977919987712411756109529243348646023212190537261796143110431023240431123703860606035367406300434487791839776340307363827107822255532288922655160260483938962772712761201001122544034093278406503769273243116552652414359052308235603312284049951720602028480540583960430823936485559737041227116989172689971852543921627787057089683267485151836658280330849310088161673714516205003267594777855149162442541261093957802556843330316301255542737933728838951695048581820446526732774196047584184802740690913456019678953167337953473641211447678668760963175359085546213772058458554779042780109511464764880832133793731968363098076296965428780491372087960851245390059493352730446143511088134098341060535151816499455718344000815222034275048512415591689123606836547744240148771354040508251675116981066088919965504413771919122653597389127034606344256905556079510607988422826769631905495549612902951480206902774748821537452351414455783875196179108462524516406932522884641667193049476276088131776654398284688456067063857742437682849921031084517906693958871269075549592496968839016949781002993177333885318471798995358723754176560874635900426273006054323421657768638399271134231236088708652622265439602806293370632339531800792950860126400077808155337858942830703260084103147079551012126873399344703335633599502216812183527779033646408497650385202881133258828951642912822759281118336348818260811277179490384314043015449622008782721934332332634915166272926141078675391384317195411521777055482707649170587421285360704407393440586600987141488225114458265921545333729175751620536952119006687787451975995202806106806764518643007120241321080509358801806243267518310052324408549311353675564836387300390749623765428849864909005083884792135005696814964091066074643109615002572599929216038700801802001045767817279645689952934627132049508664959340896827669197304699375293867863748229281961885850231502074779259110322471341683846479630197483862815338233080209196247993360614675824766953704197032589862243144893764594310193181703013714033135845928440265628465884952453073149695078960782821834017040058943689265592776871613268980973533518026078214230072262976645073911763847120666956402179896141168903727537643294804662967122646624694778448689907832401567498476682283865646244272556551459361623243676738799999276263391812539442774424206100178760687367375880377589135435657602097700147081237793807761707579487409797495853923154935770717748772856586079691002257418441990892534675431102275935853127239066125071451113510683122773698754404787089507230086599362754014244161595964362330256173682573762670127377419962403682368024329471183823082893928966708813475524952141655917566424753165633935139834569987928707354132054341540161528721223871515223206985312076622625473079190899640842331028637911822016877952797960851313681245124091811654504752507896795366167210793133923988655781863941064521972125624820161051313779468952744093528872361174806950794946354188294463296979319012765680538691580688313549848249897518407926362094506908240457311186384603743820080373936263934854482250281694193530324181111078959164101164121421347497286442091204937987336101555025633522283638395250553282571318722984972339229301744162330245428218893357798244479249948370010737752291698843612899493616264189113928259763241151873243626665656100639849457564748794885311020122766726208851954206781694223908533000373465441059326629034892223681759234729066932863723008375448634923507370793453396534942166482400570809387055293732737469080497926522701058524592413502956516701871222623659134639066931401896571359168962484398964858273249440919097919083382903989111596582002578587822738729104881146041707930839998360677945709651231912211135858654684936264620206329409122947259407335094685765181759708334232365734070484688996646354343771793283414472218831139916764632569538891124081894666345586393727619384762891998357044955850220807619360395365785178983980944905038497623282264115309740175852629284690736733006338481987738463203455585844012961441472559548986993032142931654747467813999293554736498448251289451635461309537490297011011440018868968794463038931857647805880095310921065264278385310218439885688693246632803773061815396548226646147449140790965439261217590185611005143191018445319658686765455727041119047741686984367846372905596258249979985523214532758914604982525223429442612458375877285155810780853390067694526169179030586603848266064794706731463722371013305860394547190513955095879510069481549220185420937552162409310167950330914435526269113566330381390845773502898213232831729719520993840299275807865924015249224086294043349856289027888892507625012027829100809983994673390280846450605744096199327526619427124084372561707309464820762118070603647178582923987942653465875487637244870634665843629187191664359756875297757205004494722371532067336606075376245319819127720353574042097167939909189323045294509394652280464629654336718300960761392584568768878326234294371552003481409441869937805107090996270224256049743215293795616320950553543304331691478493335035465739267097320960927750691237065100487225262547729464612058976996055004015761995696161775373403875101842532064935122229890521349867775159120684884052255692894147821357693024458766509354518719491111072869713645097301056372533365038880127774806371372971161918659814938311363311320718501805153020584813169657222228990912300782784737774548526460447527676489150609837556615547799812074163034401366365032624378239168849715034143096509930369164588313974988598164563680667830383838218276392626623810050935483693621289997695522935499506304738251891525570024507614434942572212287259865567870255613112547336657906863918612255492123210267801790323735591285369152827520496177586433188255663668376252571934640795413417802413903110729866749704673265710982510343677291644868929319512997708784028637084529833904127581365172139866627483891853982950200676863601608978713787156918115221149660001037836812667309313585010148510142336213800717930104862294887016719161072426361050877658150556304456777480139874286723477310612104317200329748462022450853464969337501425788257874232602336932332746703194104043986301244610307139790124782549102127646985278629079298458730301089422676005934202206598679898666333282250511382330003642142616620542158321563623336348570085005273567549732709917695468946042547495164203006095963497750763640714542136907986094510297240681963291052321363029883472442291778038286072889631773484099519881954399689851839475728411623237960885248675539318413370063529331612680550802763703337542323339793829298450222958366949282142569713816825849119143376087924626557509386294316154942975294609194729122815175686759710847132652992125676800590641540034299550451219070796548095746343193531927570232812900697455596849942981700262203085172849037268239290868337604072901231664858227857917978015144020765341090164883280362312427469705087272275964165860751974151156509761599068033761117839595793672554430629556420417256293949877710926966479187661079697119737219403265486754336567637071318804623705754022294431575569087973742245270645980082109744109184692808443637297614428934647200872281395488011824797140368875469342265144498964129670746213170480320664259020963762801577013953765626703408425635299352797676186797928625756581781987855115957624712003723135157037936563793979004669156419402046038046353224446729077586275966324216868594875455722399736308043865459604050555156231267106009613382844726651327946393293619256938725220115683085368912329394744393372701895357757988984555520107060082426767589355292090154741770695127519207976005098034720786052662167547369892388953490083613274903489377020651016143850414495007596157012693920960838929963828147427930369600326778232416012253400456022040347677828756978579828532076388870935077186795830701737983447156182870167610951848849551031238493719039459559690797928964644611013706584743230364854793070637433019070331993938315790413687494116203589949657237557004949329692782967310669791753874135632900974644228156006676396951249399990739326142102416608753561514667062051361297099981027191516635055984873611475106891102083147801816883419332882114419319196478278935903476413285891412215841020703678461533198472928230905289279549050669194512450424006038657307547589396452891594634258511561931612596756222467542673963742208270390101555233101578410087260089301874478884302736714040701368742288195524344349586155076402545598021710635245208137312100032931458008395572390355950660989921375176246023150016260545814868588802347156832223487927956512483191056029002908450534767548499175516401812394412381048289316718930033001020976359199111972761056969073298465597693493165435813032302882132204061057404642547050422489110722095152755205878812524924422303935226973965752946732640967005762889299609729126178410518044518625518220304702258575415697615190756677300529844076974931283432422310353517264771951000659289386845714883025744585911719862791194733268615664038544601075010589774200507743396408380968408003832256733089981780517984481548110462551435351108652126310882277163254613438573832317973634016692782319526956341858156885016460247491976537664036386314167604049912529770136715429666202908283025438193831218961379336235809550279254998072559099225996921756972106286559906186136806690302155341554031920307413738029607570943993578589444734087965337060549540494690974972108365167687876047115975882567643583581943544998592783785127244140915703672047617787174010513963866170895687771978438662437682039602704808791672418815172049667029682503943026908736554826691248902404838650245682234616465129264786708771826831247081955058761772833622294716038590009510196375711732052528163554879221503049662216076428863186218022204798662193301986060413133882349836109723178600173045158514831465069823838311808284427328187959122501515800689422320327861799569909424735002973716955756278061059756650252149464424003939735852154501039843690937548055181044805164893176432687993522104325833169081300996686790908038871394446232262584782663738560355196794290649544063390798593982395006281628926509043803918860399379880681297670268876810087332538072206330070337553521187798398007660447506943906248862382790805643916472180684254674722127892556726387338994133144000328942334764759509539732803447473964364545535747491105966748122792787209967187954334521320265685535418795017999319815777531416806426325091179210997315931276230259494688792487601542095145918354274556617890467772893716546395402654080938574875021160021577284284919126507079168983191756786428121022693829850774256661117358494412173071538994881474162881023378427378886010356394473414449320475787788916871352811903420157911447739297288438546474571171251019832780221913148658614667676721036169988711424259265611994019176940240432815806003426065016476758186432499884225263927749181234390592775495131692902207676852134853432664742238131659130410906795073725421347816635505473943390208193338772443420323618869519258169043884732016064688313980892035875705520266088943398327180657345819173198861779637492996197270238658465196492155658911144784571649702444041991347430000265234231483296165443314088327461527130274695836750267491758609077637342136099292264988758590488270157295124403893620041612670884630025433560108071481808351429202664924133089961082741887679228255807135846276144794167203254276417002408444513558471747375677961000145252148959948538501357579717948250739293272975625330863369660701208840975685998896153844598911589432978016622685069529060167965016128256742570698243335950754065864846032791630594616244958333344225483668884603504445962786423661573076124874075424253440340492612818046662609133739125122807313186423734471513200826260896289873071775365379916512090949103428991914328074780151006881299226231699399617263490507459934800883998296288710855869123574156983541998403347836646109018294895342398210611525080486590167076502722425369719095407491925144765485890058753850100419674673212532434154222888100565928743218333948500165354878970820305873045678126826546041054570358987290623576005648089086803891594300614609804110847916146181982951987705563627010604908752078015964304144468901033031666581500858893567185586193848522105649992505218083883242354686795888297330807009939955387030301968796633675473995740903648307398246909098392750982539665478041466967722536914268125096827172495144780302995649156360033721539409114099532688073137113659087771657589358411467053517528010254837800538033933196643734114248607886884426962209280408520270947838197263519843853742845618744845270825578979060003846232666830351656777114133468172108445083735112288394134831726474277978005969195206112135452648188660710956255507100600648685980291916698498416401918079893243921399740122618159153057366848507384172788667699825036207110609840897911114194708450007219696909080800277471437336427912443313754408383813575139495623215626439536335380041957725461899021128538071242666076647323480652759766197566465019797197802155368045128459206064297597604306149612706782144339852524264355606450878669076737101914024960244394284865704213344603965979083706857806918890313540102960621686908943189261881607487287813106438400834197255882708173392685002783890695929692023148401645057018590474970973824496568514833217528984772418393326470954945330668916481226050123466178619055587018810009147385518459577199916338533684328463322030285510079369564843021905275986167852562910104048713301922512903194061237689317296065538446821016322066000525006569774657675529534834214904513789607181827880727730026459690945480396520524161987926526566285109936733366858543398302848560513451531827421923834798302747664427707747142235544899332047935147115489979496142738282080406675118978556596441723685876598086889441133149159450171040628909991427171249802351367389991259437556293014350097769755803708890490692037111801648620478000984670385200116869663635043815407918562583114985327284211073522949985518669709650028349714324655030431299222403243787171257408619106866559497736524302043020797026598152659968730041105819008840820444854905977534935558528390212309473228185636107255902091463698097368723050196801640878347581520769365354102058972220485839311631554016075164478000853037653812130217286181534915059445032949805155877591436090731821204477088157902544588657336378404300117374849532075974721141968433690280106410274489755734252338673838919184728197890304610626138227993038844700583269034208110325563659873033932271098453337834497109764615437176443281541454946248077533149653571621972483897653149832411802639125451870053034211496640640430952666108999636938358566505997275228821770147709697658352973238914796784233880135131663365616095710310516992792948345894912493200570618993135781741857916080838433830126732107553652900079365358913471779004202595678403435916454730700532905789791097326702182845119623284320977045199040800793458832985786409397467878196059530060754228943942567956536416795453679672045784885065754198290649415863570958410903041127206020752661376010189537845580958209621353598564390043744154117388228793634356485860042161177844487316851811621257870212422414345011418159392872851619439219896723139806995861123346103889134511362599800681046427058046336085766912742227357233777633977606392821866155830022550949991459478865497979684033284235803960008370224845421818206719041376823351645280298759076527412566325495097311390801593535009930111205467800901945364076153025574357884605542454920683539000687037149265484851967383686792016135715108367998408852704467218175410575728646966973891293672025786695177650788881927515337279849131120287408079361808134584483963039812420912737347751076336756983910177614108856054891659646493198404641199983366979166829402692364125245221800081012471515992291571743844841098061400501911556054619071376120206319853993619403457278669153197481838613986125797756596666544846717810070051812764896552473174022219572083571703406433879383749356510099272815129833370351315070592128492642750902273548978085442258987193747493834778111206449492151511763358921118705040215689128913936387822021824684503511929739239201726058951531741608686487461863596406908395370315513676720833016290326897632027092833791945965426519701131431341986494623503389991432415432930107017470648874201111838777906786784084503319467115792604343576443810627298934796148270044502886900611629190299450328973802482016419127025765789052988602086442048793629232691076642524080462159211584871970876379185797795039758270545419227867426739350837536187649038212012982950436779785222180241582976838886681841232754926533354189565495068976377014838426799486417644922452089557520439025897896079823535367956558982487254285952603879898721250374141597595952556911136829454910388817211734079639082578806151299429988208403750427245857032149984515294078115805201372332512472868321125810025225437996780644683747340779940572667594330102217379683866912467633662825112083068796215484310458617121704833606089230831437322290615418114831467619532220540671654456906884719029118639600696998731735957859331371516045614186589170493046172041583364015732087096959749386179197145396480719437112718562764523027184100437211920967504311176130897799261796233190199049175650104146291073138660083073676563631381281066776146658531465309014460964301789936933122208274597523724027568942014506169152642254374152347116896110423612728369523257193986046608586554918333843498765401577115429890832140071025065758504351439193452743440901507033651132390188384344540464578864619805178016339598648953691328064060738358887064283105004120306428316027408314110229521722768148538971751190449908441780596895300216638346275340060586189545889307935873721466112601321894915781912374953755444010631513943795123445968519530211482695643626268668960884340665443555987720699091279241583253490165097084860660870953922410016720084552350359777454129068995866503056454825716110790486154834164308713997632966765898242068206761312773888154858126910266877617933207549414120359038801034397383177157332125553223818536333927498312331061169326115167118351275267665330962891893082828475532730103407351861474306487433929612588693560361172555310331545301327711637869967770004449564880885319208277524628934513984638537288491839873760569947171639630901748341390039864045927629398900611759274171669247479740113434408961330461608041067875991392645526396759600995745124195387429388671943439555263653658181027381321358921654613123434158007630032889423598249117159141889752455948940778096896828303672746887660416080636440113764618210577736703075216573089685637238245402541069999659753572682161389703355824032118829379287770740724204860015396351745343315684749868201932652883532454481625015888907224910342867774451150766002319453402303307040003957334615906809074448916104089012992003191108564999554157119928950186209665286379002516809374124029152081891466256734415475200200558383638402327830441561705190959962977404054626299157235188241333459361213612060159621509626592837464231989094239596411536194510818683641745520964018333767819062180791719271722854740126482440095740056777557715948311446707633353500521632100842933936440179602767930224461106375006499172172406315967232524551748256444233701634321673821826534232089064455128718347308489809426039339671375978055804883816204381867466131922717007027287073314329678049950375526144214113776114276927731001117059956893222062239305253508347985580284359382466562734936107110078953933982557171022913032848092013706572273879532355061168211765696598657710806679917802446895627693301229419107058884128610789600898209786072691401279786590037365656583261577868924240340348312225121497275300490953007912592956630710309775691675029678538012849136230709351099166962763808681552940270345810222005636777950295371372060074826198883713409322322327641678676219982674967009456986211069743019142783173375748526605858588754102221730757305968818078020909317810882047351541562216202873381379644686209780427841339382861164064635353283498063649460935131677350368033357341207779892458941439054380998759116879151870262117893244103801967464250164106331356266923398089392398894901872350364435962288581489814790574078489558383070946210678004423108220179808877086899678743103944153705496121497305886134766440232528614398523557581142207320969510156924019394388745067242677116071705395199993081360703830982222593032248559963109501953192083347147037970947376229129767446990253872334205730047590788662553522197955104181497700611556869427377466350625550720633366822315086486099937604263528054404009338435528711267446283974353765319731344038725891543324368093859648807212044775844252545017494441694831973633416458003799487636001900665462347550771546291796133062091068294208917843069368777269846133631689214963769118793699788396129861541761868107995595236751651796180148064958602116337418265046202100887248333003198161045235706452283587563702744680901571203583074926836235338753298535646764556951926661615053975590658624338111053424619552599036987148644065427479515922611770320031610043125272704675677355624065647126055427166641686951271773175000721752015672129653716247633565261051325930238150824971168360501212152332655172077188895064509779489015192552694581556160182128761749686099811069331554355261529033551471871564415523493272290498224308253514522338533833176735497120907506957011063658498760414659728562505752303565873007106189470602162210426291465292493528183034465897698039363222188402565301529150530882006019456367586834040888459898187504167996612037597736461128941297087067778300756395779581911258960145727902770058916886264773650852399445184838641660226324635581384543321996469460638855715399532081418644658093288941870349976572563799252520084831407708573498204509335308867833717466094572815535141580011140097139876650498081160010467921017170188009776516912942030122684119595582821111250924412931966395804774163426355538726526173684337392312139303404000677778447302085237886061509836756499537702521515088138815413671697948362292298688774804167639303570071667111304726983030495124893516438956719048963274221179808130550325631598331319817601111246842204182712737180102927178744849545351713701851815794407170265164339202588539207539374763169354581338801450209489487827176647485433846878757187170584612572406278905690139130450773224382897914577375127109246765079130773982649237950630176492629200109055750154346350941881810902361280011859739571609718924060045088206530755239656067730730264750021100687019027895159223152921813474971880898392605700788912058516496372312167037922368945903277873920540350422667948341238238754496906631670946625630608173024580344861399023992531228299066240448414385919659515633686243147578326890440644252953423586431120789362776050001492635683096984072719339158010807369088072717132141590674971361885613305462069241455543499146790002244165931279068731559680478676407312183326524606205151345764563900540143252415583049298384184940838143085380191468846098351457394019360479391507933033256435598448265423018911175985984393160596888137053453721531514417709812354052289403955432432212320738203283203610791142470169698143494126554392341227920029794053452005075904413091998517357219905585132770495443716709927195428534397698014089083898919209933188096215169485072890922113982519872388948395564171774351136588785248916444221985979457100742337470591378631515308582336782477138665899129528067139210669638339033875157313475207279240853531911392077107089603598368511530573078796016560510750805197980177660857133305901320687083811072456302716744891717437953746874292922183866886324996755794117346258635308189243923919201527929917426643829861825075655564280924156445676604398753458048663307154949040676726758235423303735202555337581881055211557496302308682276244874695437068430314777909714288434101904238007396748023420286891837465538553742728067305802609405683118216373127837244365180595787215884113015822402436874825591173558264250632826955728566001092614462307151547446111435156242173027340828206300954896250682619933985121577310280100124488282795657173962466916773160939485728649025954514445953941602141071527717111904367494247092566557556480320082075931636895984733572479888034345356764175329786001825376358533776708147534359964692128009329127983924064069973912607396726288738788102669676846584447284458654060929818600219595936787969625315915964627083590805096879451479744425237159620190147599605676553055332899169695792867226826475144954878481973703498423981318869928799661776707151029686889581516040164685488638359513811821989558784628490033645310377794175294725054208512875075867540586379439207643071789893096818441178926048549853348376982171052070503623574579497384410252752389803100470626633987927809400471875509145122461632207430172244048608206339265054532547282404652664224614240328468952808700881968413857464583649890395063224458098191927587928016365502345119417314333587783840707950024267477535109716298294980861791247476072629627663384257850374849915743676309832293641666784769138072948774424757242765606862634799947496083497512001011792145459039257927143018383199886230863579088599861061815340313908026670680557494042097942934154135099942496919390907014367253963706190943056956726931884578768215961290430523820257503177676290990688044642591616818264590357069795426766870254571125174544201597061659685443127534380247423313306146705005655402103261246567297189312671928483409088542894632894258970550174281663564948972356034025653356278527397498208648366472333364874768161786698319223951233753366709596854563739172618874271869450650443876881535210854440054247419270480505334468397914107539064941888134592252470370845029124215053573942481689179501319124960432808927920086005139404540711119726235946897356252132759533750499367269307524414280508663366928273952200045715312069896245770035171046819090007222195631615386637754202020592691416010755824509395855801118421277088560361813578145393730145508868505937172042431400763337581006475944938208414728953033176083206839151464724867545625266470554335037317354607645566035310174902762701306365684391462582232238273149084271300033498674060976981365352591602930630580377921254984753901412302982540125506648582554513262043594631013006254150955403675419737099828680401433142228786631739030233727443234658030386538246623688131312570919183432221385583423919828651000021179449437282409934236037834550077857949298967652348607901981761051854171965702155139001217763786228578202583900093280936975960293192967043708337554554066155832450354570089184337157008322169437659477555458539569336883769898633958776384233150398013603522872215484180981749459736240710007962461160382088562924781828867113267620966544432652048347271135036402095975651965575220845789765523893753599154291116863500922035651321122846528439984259207147473398375265175032728786247777624317760692243063043191456249018027249789298053589344177059262422348470034742274126673731009671827028130440770041031750177248372324481403719162073047035557650225662438497075817861575171676074801857860234656364740014594662706678234290735125820031749719705190300842688511640201868347890993965447497716057276262994447148279930992583305918679713057587174922173273135372166845118100614349661667457983199037623176475559804032730718112163360320526431984089484735802588154243505668853877920754524254717489698058229261285746370494484181386252001578192310463099335889017722073053041309058778211904780520659895630144029412156013889901323609567070658493208883192078953036852813014270291082506568658463113020948424214322422202707673857267237909656551100692306340333420341250975660829103897892616823867442789590556595486875107037589005759227622337018408070713327886018003027879982707582541093203037942243591698297064016083613958323131580132371849540449524098388453390197029117507458213734779220014046991869599313027801259800712195822771406868424006957865367090499900216425131902550690473656170592324077422731202326256351157295420826106785196601265305858076165696582961343724131073954491441036460927069237625379005282273703687126185874386678350902990197619393121859413426344180083543625527110058760081339457363988283658796865659712333855389006156846609382430896088476778630916002112462838156122819966589134389927696132193978133557659618465502360658529821491903011096566230075306272755272274612154582831231486852105382565090811574239575996896080702231853940932372260955711929098581982928299750494569439666480766182112637022481885055062904354685176492645568144484621745481049384503728330357822906865606801190681830300582942277832456285882679886066919111164930486931024100718295346422408356205345176724077324025829644436284239361002099897462309176193020625460105253616409273220621074517016368294190110459007422967941422514650957742779801636717959408681085516841745459462334831136008033363080962093764689579414380809400460156178253698432425504040517839118110116776093124887824075196578453691599888876750111152739448287603324583639144793037358697221742034504386244975094299085133043960612093940940252993646475233668082514314217186751543065591584946482066465665312296886037479834419772478987235379266627591521646027693802497940185869104219269046008924739534130803137926158397900383081032717156419162854348153432058006601650842977882472445949937005314497287825666660012201265759485107927261237316081127428534513938658222268776273845102439134392847331365949279356164411549965607601364793430909007697851669725116455408736351069416766673505765896431688263057729994805810169011148372384789669477262547652846511778113067300328389859315711915614071046845452141020099212981224683587178323489040480260002600813499341614682413510287104560256629170687267682788801573269190330974161555818543813269592304035834294229708261679497619631009321949513301740636702288005295033033813187393216245989047946631433961991758702957284791048951483185859628304775319186768311539315202737266135349854910705015368021065602506814037866043920466415941168495267718620189404268520850799856534576769156264774852245656563300269694123932323723552482810139355449034953902613638348570213015680312035602745244652923156115753756247987225455727239741075417516896580136368465389544337743279519425855361803455797893578120112502237820130377682195417564507988296900505820120202708883808658455598529102231287481458449984239525698699829811573151982403326710031600714748296412095177784667717910434622069089928741532092346771757284745037343833044617823856034074316410255650786116583780316645684401894220861236623904987504617452713928683585700445959950428019058156065599652465583338007658160596348953839492802734244984012861856241069357509750255162026123835453110938374078830041594025249541169658595307634074604596590704216351747069775761342077807465837933841075698107557201983240245410291657330974210430356585122339101029682987757846613652754639410349337955998244788625959392545631521675405213028852702224467450680911053125818894517474753511465537682091951605174088552313648241542003452940375360057865616501873336691455075419122705301448627997117427835603200510515068878263750976258511325230718215508246090152540395178845985870088962015865493761476442207691149062736864568582911068171810844378834974582445680340728051696456684538941798659556068458392047652050197835020391926352386564125276013349735700550811196649104843060269475378446471965357095358077252627167934317108976542942858170582048026760898371851205140258738213919873093696166772152989987273110775257023167139570759486420472661348223891958989223446965239190124806443155342221343676948136331595811276527634504321347137676834461102214238977690212132948141100832395412392678428627747803995559819771127085935405282651091910945387386055007907640571961126546930838056503176485120585897738675023097698198393022780733672917870116971944944834922148409418590751178000877509571906293259079471886376712838492654695057746560352921789107197714341853270489097884274747373446562526197729493778189582529246523076568847363034103802697874070115299513824232802025126395266177798715370707235388993877423365977747688669381120947249840387510998909926081372297102695548406076899649333156698543913723574045038590465222482458572004113299801540964470463240637264551822459894473578989635242375071020217953466656172338651383054309972828229581845710601079315877102302791068814476172849639852234426914183203307340676487207029901869186113866845075153500139196096772847180718446876209807171836245522538724311690196836672380897964752068197547580092991273459018445990332835747700463641887351943987290986356191683376240334771577725909673850644369250663467924194550729715522405492345936416045522923747866146010023055339386540522902279568991995289397186182349660800371305647278050279257842807093696049646346460380865927924799949498743287810681490835863701187808681683192618348058482185022183924451475145324807248506473377978493921004124704697159031749774053448467465267550335543813261996654321226073367254685831248185207344752577831914479010546070324846669518466830471444093314852517816700499327539012090474552350328891173773142872176156197336079937218926041902176641251620291401688799423251715707330086205540132418054708973390966253630934767850161479434998270843437518503729470542633462423657773827091711515071232083252290424257607778197607511983976827897515576871501213486198558908592352584987249155949520432221440039394026340061820377851234848628674271350017168582471042188543142529716822108954984677113854660474968429085244070659193070361636083639557435514876917324187616272971432522235206577117285624426341067077162157879649002416308156777661436415233863238411321911640999735047743793468869277770313656149552798172692713858520730966396899393900882944666872982565445474529882952866121648614019058415112619042995919781050313560721099799589627140665728193022643039224013194281244276991139035831763394126670962912547618665343622350032955153562091817693979555877432833046239324086474488020951423273028862130034788118562144876981404252150024994087402751485810439232659989698921258958272836977298887532759074792373759182685028057167140475886851764120460962258469032261194229996155257786827703306404023585013707595252067641554697948657474263451165366314396250044690676378637101244692253718347231190723036808415049760977922526129722876214942076100209100271652027203497218592328706351723982470284137730866039164544560156686297494500723546840719463405172383130710338652480712761477955373923224835191088115389349521736164652814950759570192041786886208762389683666748150597989749366939002888061502004551698243923024503843486293154139070335679193310777227667786839014582982805828174668237839883365762333099158747062807062535727938140493033122762966177462926271788591671821487802643768537519376240233129456969395983835877838326107504234960269979148665444661280535071533433137291554149415259533104946546318165839980003755113647141783901146195688825418002155439147142345491565616857821543684807296660302993711310095188791482695778653307646119632768087950541712637817530904450326902883837515753883718375436576174336846862350752306992901772914288418608466819389388483082520151084551493733467381918008653741052701893382150110349644574686740059143643070521562738746126123871494856232750824293012448585422165411309567257165604034612176384425050613725328626984235352837335489273279656219241892222372798120136422097875249495747516183000400141390499970067319497480976336040705530813661427472639680433297069381390166209592940886420168881696623707842553618977226668477885830284085847014346663227904729193133746360244541319391612379887456995473198029679876771378984405895079152390125561013132841371044321284514031730758048510908923182821118756759024131338551324927922600442410878744780786809854670254549735201517866788105441453555194251369172234192213753932707316474265093063937043292415385094408576809413614283953327509301579706483098393716570024351494654130552475399325768169167124239954914915419887684512626428901046627616709827118706554776675286514805083030218007119086290320628272821269890481336317641056559198846704610351047746482585839599586291193263800417934331076936407923967444036115505407381094673083711946708727243996577142638303261027485034469553890993148304871582269636300326396813824743087612954087654854238345235438959611255889159417593300879253411545950276397560240782252767119577361588010811171392122947727036398673865047846857510456145774278899653007234901514117947252003205839811145967070453202286708176762065815341807705575888128058262093238492354074040211663252762756134081592431678703504656927311281574517335209405241471558370612120677578439190882124215070920729942871008613193815391805262792832132957584043629807481680008663652830995008023710010703960189987477183658580306751592002513299742759698007627291344637564852749539461225872477985677046477474663304070619083200897501285242183019074239052828614144243917202306870704415837468046469488219032285692427806977436452043806619925788026567060377611328533578715712095110082948340448957944538285097192960863548416164079213180333423754428919744358802819830116684585001387762712434994499735501903803769985950287707055682597857378153031302936166211986264016300833124260677944974302346179551352295429001441140680448542562920259539521734070360872535011778523705036893282496517701863479611225432685699849147300945249045679366742239293979724392048621821521940813840792939381451710660556351758905555602255551245507247306822737057112708437400693900936531001936953524706720135769304914607411301298335255735076720762843830060370125200587081610828365144008774501582339553076830726315667711501836033771355339863066370888601613865989975195065135117045548297933972867054401133184747678507785854826393218721136008358491987893238703304740315097883704368668610126262319889971053438485375603322751675100082345876671401455453542922632321613255499381536967513915841029285517149970652008129406905084428277256576824757526973950073461120839119679274518344487811698027934921020221239433908506618374693307593697859688466722424111885034432049211880347216669248078461434716325896563031348888413492991133790737750651244179136161114789402437621452009223790752014938977730209029883851096677818269616953991013297005006984573750821683041273517083567685732456173846637792641608060623867428314190180807985625629994449889728654779029468671500951132576885507030400892644331911998294660082372702111290584344398973329716632311602311431024065700320127220986525588335094557865326037534775696912092008552177326711568079730424918012631079663111789019432685409048329978699520811725425423220925714633914976564614138533071311004417971086730803847257229628827829245222392917021584396530045547421719573687411832944062274010919911478824058331060713104289772850826023489426778538598833181294472903801501545933095160622354702721954559663103576992785751529274788299245476272637400247956036074895924696937209832558143362257787589128225865170389029394775207129940292511624627561260133502140792541063385470515622419032122054801861549742709241476119878370624993278993099005277594669324721461853808705993070161475379487880417795541142997265520417199643885939046025504576025694528992408515352814554325143448927422442591800743331246950441527873540599258150167946229739215678018004723452418548640266099561166996056530157768707191428153414318627573852933407781623114944730306801066150215272003416260193509857016467559421456587680596494337256248980304667973460895732921447139489200710498735197255792036845206810269736915714783557226346006644658495444082940996008688734114371517573515575016952632299004980422700274025211877744564888187597890066588499658103457027351026213772087211505848094841771827859650440721830939758636019387133570680477663369448062992970273559657071838671852107897166921240015132077419758434928339493681601723187909359167290326396184811284515688710069021990846563469801917749050345076363016916148797222472631122866003740141304325006254452505817907353211959555595166711356635070884226300602614319809646109358041949495652045943294503003826254760765975224415882459786427761779436765130786934763959381392549997246174214262236954267260602264649705620646033907396491269897238636726953179364302591257971014985258416526437755458819093309535870130594391152300643402529594375149607247819605982411967282355413950454133031013377647191204470571452399274018034544755064547944863891965901276172925334765835347264748298681987297565084009779415935171119040141661320595359649833402140675467547492849436586974280714481141254975942128987906364131203822370389075476920313890268095297108564479608476359561536236997124299707579189876418751720319386380499709732233533278149948741445298539966120420664478909492307279619860118848772424855598255808756980449561773130697520731495267183575111773249766255568725322833519119191048091976273596356154646563687080119045910340924860628120533195092680663881322865165549223372261422916523407654414873292512400429477772804610693122944063666601750846914568765768946767771585349000260044275173655230623769343334671500262763520392981699430545752594919017027537676967669124451709422354507489840749677718075099048992671684787634533557265216564972810568016446598323974189445816635531211283781462629645609335028459904060957137663918957352058301637161372967631678958683300321446703945704591018404310851485713718717469941850386710403084277900300432110803623712129531082661728547894142224884246614454635157925706040004975207859462910445396058681726241215533307006941365707368898306015037404373451611307437768222856704138700748213469340416623317523076274680025709866438658118547564838579409825514485922883210716171140703303336382553842812905721605130410249963840408562422093864452032376931653198542750701534145739393118739472441448615720723347493028807505536950003745596047831455500811548311845271512619563412049918642639853573729311284268818564495206351291147110342801863567450095039482403350611586222740582839664427518065671423287377760092810948861852818887931383260805864832979675834591292496026246872158632913057915061949156851227174011665951877867218852454713033904463852929607097153421621520037533324515560436386274813748024513631909308162366671890062279739004889033545349110853247822558533893659955578878132175028482927926358419159251318670259225666710899274511527101157014828673220434621847847465931963888576618414890621247870310807291374024415902484260558929323544237499424171660978264535677178215882118063581588705230541803187593784240640077032992440452486589212541945384266601738094944887352565270787202844916039544921997491950184876974801664562139392163810386294233135037260501585295280245263717106222166329739224814529234460202755589230696121656636062283488282698174561694581614772727401183765981443691832862280131170531826276414028162916117373149293151308970304876189959238598293539669003983806763381538878325205618225920677843540427509929710841605655285396210471325502693950110758856864990734566823562020214013001843226527628939104839603170856966185937212127254920074824265827548004441129708918010995879926229711475027280708032787154406461667742610169310256735595536593800066555151027252476245424964326235559615648311676657767520441364734209245021529127768995135719800911297569971648712824001400331712318989040912314873020590664609444484944696159521029196759117912058335096146686573643572614534052599122844958818668987097356707915215488001100139068872103334323595801854987137894862698690156250142736422346245890439760241153439219634220114258526367592337236886776351251971050771964469246915483215314153394640208675975474589652616096520767972775388817821880750077143972733243082619845924750892661200448076195738543634850178523543452809810906976344320762603819296525123563012643084063570996853234686456524056616000244614356708224415908956926748240901538180842431160095836386790258126626375780335279345597884997700344692227386823270638402725117182516489917534696629059032480843104531800340240485326494664476394145968211819945861352289345884162500687958921019481233673394660939279291057105845429149939546682700846154563961445641958244263732335125711041187300475964346621547383974521347784304497597024354855043262804283804597668928535478937680255340354747815806097175859602655814697968735309128496833602466739153780990294954631700597399135438855756944432634059317965492215835242010165239471418993641901115087811235328460287229500695058136401185909094632915032003217632511675998164471472941114134943077364444869481282113551340598603964493298558046227943702791503857933214534771700401493741668783637280928194179368201208434662060402948227259500742670972696733633605329328843844812573703968173179196279943727561414099358966169647905358922459053433028937938080039816722403614015579127492523105432008190066751004531326097175981216421980379370291451741168926224463676659741348383524819723811725418831901384100845015706043301672191810080177212484390989744857514194775762129404071165956501543389755512559027174627495975214672990842734820820923127154722355231542382381593460075438235184574582813563871317752374173099316684398707624184392327136295463937684404222871043057034028962964424833943324088663674680878474077609100311828551303372186485004064641951543240180030218078031114515304356677783700248946449434427146808625403980337721998488811799114598591927617513967992197199628894315146531174506948302608426453751588177685640982391262621131603398311938793333706005084726732859974774443540124414612201765692737586526365616909097394504887454760474582298485678072583128882196438625244085570578278387325876280626014737200812822917121118521090784992071082970727883743320729459549040467113248892166618708725345257615433357548314142071334451576065627347770536468324575038543018883005808727019268164521687131821713366953998442756281275769252041493399857706352387583115072835787776727849383902044522934462911487649998942111933887815974416572829474279238118974751425060401448622204018653370306226789525997145532401483601851970707463355714936615070552253186404278296012552441389725465617752986865425007981558596393789723487809172390680137844678252869197289435556264887760165963550057234048703838410043839862083528849225653613833356065133150406403587524262338095237720608112052430447537110947122282532484025693681082086946846212944313558257657407763210438481312379987435233645341486247599450615437594897851595803181843396675729614258498614246237666147557998036257190517261501971700791802230914436379231731989728862485178267474375499154924621293638209161601898984399883120284421159758352421980372839304173942419087595552135960816325214153610568450324185047412076529741510140139921382498812503613041966111273626901140221406128005767185099929900007159075403675170538389822301491622407912449009962387162005357729267214591505938067161213312703988631400245410137887588037213823865380671665714292307761811768628400689968596452227573704280076107393304951350095498909628017009613878817678616104171174734168315075260535874589340973589762914477595980302404135877932230618608019987787561358100044445949511718351129372874105884780893782462019362556336058531189906391120826901910430385539300620611940033540897377296535801698378209657728180377410044222783352795196956588990253244149745587353251870128471277369495705651325375939574865652761228785322077355897206167103716577143252875362110644042762508336822703590442508013867286157682740667843005881433729610233345194977537432821142145512663156581052970636381864636172146833789278079751855589605801306011417672673157695683186068462777749820984476551913085792930901619844888464963590261998312282201861412394339357835079055355534430536306267268044465099366803139406926134457408156534519680471685237487513465881557588207771881577254422748491696846508662999568884422479480527547637561530931885443810286833009230148317799224462529008233519801110094010687244258895953715270914571319011304393078861239210157621183683048993375613268032746614354723753300234036861512265841578288201854956621229545381068761470329384251181606716301127622190946889829156746216744732184835776906966032170600491494854481063594672402947450897990498405350841325370085563489343849451140620702914123711634664131052675665035282040444487822438457173460628236240376504548846723686638064324867329120321834070160943087496022884660957306528171987518096930230571628935221581658111801386180396694102754586088295354636973555303305914222946672833175586624895615555856460140015161439795561854264992959902624024731448429545550974448261644236232649042858443195875016593851240189140364080277556838988960896425597224955869898239046968427903903338115700223430597261033229633845293340265845478516870443104366942185884282854030108824876599808806092725592196124984963252925029438393206468490136479176925888728574113205796476469475817445055233343165669815469776909467614210570586798950292833114416241334487527834592188328989285467611141181835830224965239414340635684820774383504832084807605900436693944579613343173567071145604906333018032103683393113358649297924641915120406984061337089533264863220661231961847936442773848501565976445684775032403980064506768054540992999638682691607999292641620810310779211119474445755042772035068641410838554063387769607319166653762999822120850843105615383128280749530512940079575250854600121449852323891087219464675823512516141823615978270778836655292494427310235876983309944152151755421169280848076352768580289477356727998142848234535702871031704821110096773609576593342911119238234120213446591897669003713086470249646749795357004878242884179809979116354879773919122339434464912462590235606055329604614037362719231888345300281635658471769225238021028101913559299816681127168080882709804837199683013108580190564577393765054795330085562803862705512679865457498445558075171861509895921620268045559866197213034085967315922492827560970540772456919528634589598480336361201185450493720856427722284020875892423310481331880600858952278881408390024485421478106430615204553778165680263190109028315957844892102410445821917201905341950763313326559361809804981351739695624362515243163843053505265629162558219860474509406180509676278115225421887023268061259311615530141338918853470119626222619920620047161328262942862086235696364681779231654912498811079170489750200367387804068408985870632958942483580095219425871810745306858253127149161707378052832749466054038224673260887678525006039326755549039815668893434695354244584730390567634241300990492434243862617265542307735903949623631568903257569476705530771676465513414504436213256826043683292346600415969506731619460077113532344428123541986996346091136003799536946721550030144382876578428233275872240692726180158447419008822550991374519003828372577375144805716348367257796207278392587298005215366524746156815868599834538635502010952334074053810836482888200735967555345085603951895148488518273985492616425446162957804394232876281895980863518933648119111199597486448069497094102645700351956822285262115025917966064825250913702177049019319159735013276460646228360213351028892607043229223819350783916327325019590132504967794159668793878463725322897888885169758352418093786718810032029326950284276869352591929214481737032817542973472404658600047535250399067619518994290652523439870452467239937951398911142721398231571354640671693345955345923364895436547751669307764430872620856751818479556536295932900573620935761011654301850542270218197272767466840241761178335710491726573702686658231136228676895372045145511656889479199632063692108719317783464087743567506529036191453020316858491719110278646860486142766681203364422512028376201018817690603749214112600545960562826796619879581909842897333303565761719147150536328936785362047726999669431963645314207464310462908493283880561872266457332280692664763580200817435482486462345986950147349159437571610478509098899424701425613348061632636692455893436027098154912735247246925532498461047413235875832137767144163863973803793681247348924108396051884771876188768493428545804982441474030963755471334724726384068199422982836664369519720336529467127990791176256845909056874333926895408468035758383942524002495600980648540365056573434766627394979478253852754388910026994585690437269315392186968171076534724363694539455802697694752638394338374192296860316221854724988349241486958161245677591948179760251506229349135364388154947441152274081038752246249296201344553786227722514892347603001171427224999259111154389523059468184706507669823230753629159529807276319551728446470141733495627885367078911534856762007296310037056105827819168298275175197866018045385324443759661756842076694445724015418686970815580911093038246386518362540916154415216334472419725939963502195444316892962299429385557835744676165184834128484646902211876401765009930014008032550586300567207663751945199600397563457277815791974776842766057073249629129325500931517070158253881718466028805863239212782182024802636958774502076609695921874351289961924348989830369638367169683960356388706599897317385191433484808530821411228798272988065019867230882985029524622588236408565737888337556765807189519779706919953684249090629586135483771406451068705639730599775184123095440680476769044602846641313813274366540808738800814525453344183437310935677354380929763069815655577089003071855039732687166040822589341885661842077654857875364796820252776146212532268670981464888074847357283763444655165653238987781894771637104428540574365189424483605577066353454582349358421869498524279678530978878012443877956110182285007359345460592767524009115858905890763451928659987291056311397057474003894415609599214321957862719113329056415005198500825038203474726960233048681048391363683324825666963753504687890908027735658052756637781683437762142221669342111466925124382468403160239050945076102672209823857392198373453720021361681423563886897592447627610651191471513842688235989083940510650134866113816797477147937225936173329374841350503435931033903779257543135969924399232528478266999791087729353563370247559642547931698876471362058927848248704128101832527986406336987711831785309644312012166969819332352425664432580911549175058043937777590041156677557263895479574461447812906398405681907843875051380128402364793298967137945424063190555837173949137587445152213285869910846229267380858237759173711099331853635884329072386501772834754852233176679157247694453113964552917006744471285873982752632155277231674750466681860360149924002731674912796868389322039503780705591890734561791374819608173806860957739285044492960256355918038942411921589589977207519095534654903850021489053389595072141489208680483309510827588151292734399595431547427189079025568086155763440583033782244173920091423484400224616226957340298885350267383146897506401398749323500490741256146121068640925842748794782184525435311795664149415824423264471802828188460545700676688754270406875206569420586234308082582698705910485142683924872091252528065040676538310178054408258858775092902405814295889056630338816710337497842657221205604330140982894291225019379047103249914888757943544533734010895590732448915327548292193662046137220200852626057043034116856032434802904669223959698537998250508814892195358193504424805913231758011379559882221561657930736764557603951305912523158488867940096108767425176193791690152214215208098216799186012393911411763144519306686967807911391796098736161268844627602317779117496639392889726956757588240267593368237053432323210805402922495201992801365972326458286396880215112530830558969300673448741836910133702438081950475345204035156860808359814983389196318154919562978155542148137770115424776499062763632309244277745895449360454707562475288509125463982424939293864399385809591873079187403233958973019313490708608032095748440557525139226768532939620800424312685822921003182979785619051246971941937427773567542678198182739467497390681906201954806733427415316421967648089406833197953586647358357639917527459145475279308037386408873841539818140039041051793894887760885321239187677104546019005595576272242242638439153258860143333368939956156843845636019857867352000251889872349862875759797333978425657986838873885030544410584249790256685385335027276611715148545471706941811054790279099281026700281330401460888318559717239954136706984826713054018997248431297509717251527592923214980727314523734144391944110636476908180481718796977825527934638530462260831018923529147477250482781381760015694673667399782349179052323314771307736713085707570729823059882415591594879876170332440028227458120826323210812251210474178677773515619734279582929603473488886406996332486653780234462336505713168922853221202017248660097536460114432695990314417261255815025990368690075934133766016166309599188915374633170065343388643106156779109624947161618804679208818852297531561986025746114308518108044007795377355657083890553690451896270875426730902549449009630877583213499019941199780097559850539723173962628946221263387708926723757409313669761013396386787925646382107375008373853132577146401030946621309317770611477217449243213113781357933545366009746218025585985186682991234472696296760687139559591775239394757791066908481465930237264670594686097802409030892153351090379160687444867567412804474116867311040358696298459440814492990185670393245965570103349970126400013182026285018810439712690259839016192607485508220250284724105348058231688541757582452652845904675196072707425550320681685208016452107209612603366355978322258878803541055590173078327636449072382434892528306158633467408256931193751275741911049437588617099461392211057329954561969267277890183764591196785965744248918445198474369270128510961736364963291864317137189951348884659032572876753158520532383902032124367393579150900368792246932396779900606847516562308420383564665600932848730375685054998905596361876264263622819531368834684941192186296391507147894314441651055729440609897596616432627020265639537457963405240554043943402428474805244564942781417259419550950690961531963605938320779547417017391321494589028723036508214267935124969141201963380870178735330085617522169310721184736352143677799926782316308939566715496316184359266177230614936094610232770659773898926975238747128342914722028833416202308862350517993932047372709315110439146758557227095300074026894888433198618892895043172023019211844515912009293861035354461300086236990704664825881354914969259049257602729905650413815679765819677006347899243634141969360182335558289431156480536122781275090011875134393854824764213958288038033659761918889855446733122176223080607584438518219654995275913321198752074199478856439549385687569236949298257846289430767536558005418588300438932202714035442056297993576134870633620630003223547525651384125604785028409623452975116668424940965830706766140288598468367468706716877190717548139865378149176589414991837342884452881300058325475255675149184783670689196591149158534277089211616933668575116385498706361118807972044831286324715891531937828541795763793301159262987820465210062780996866598370236540967726104824159951050521436646192519955359768793890299356374680130182320819287812459602660242673235608400037649107603057571207885090467231414880788304669501726875232534832000441298508312759937780488038586294035213923422401055111305955305420700937692862211617681743415484591943035708340520054235198635993787292944497941427617992955631179990110632336517391356978070259597369307713789470313834754548838955530659953402498947279648177323755895164427940528459837915986959638213358792996550512926335130208320263872548444669242827908930602541007959826777966769093252885941772570472003250375991960353513009590857356941106581743110037268280431113290504286570659838136474141887886618653069816827252707072940643844629267329214153658695702043998902324002854718573286703356874902074877334258146115195093843629652806302809679904049087823435908788915372084884085608742118534332016945315628194733384161943330179828207946732638479467597469193865012896881349490111923559916577551691125073848775124579627240174472950454507111519532301548887361818963770744969108238008985184095270733539600912497079117031459421310252966755524218714938106651040691158494787298920574920030176185070412937539558911643285895415039354325111460499764461221710473747628169216528960897152045275981476318480529909668821481782604180755460280357189793910589031445006387049342822477629995171870496017277907128482230300746790678437331373864489096608678860093672995132396946831192132097648384085458182850937892141176860151719909323893508486955532597100617243787405278753530697381179487243559103378187182823240556169578883755918603529579084716147630988223862433605136343683261683364035803339345480649590615876666738988723041699663773267573397232317007543033875578921308155911760395187573961054288313384332348612058392969012318012109550615574168611271241833487736607069497376081862633813917609159781758760522903940223101189787582860952041548068900378840087013657599610922574383832803348742073690108170146498473547097647883410206989150230469721799849893224455500113041005387346088116554071207824361860675533013796038220199014866797618274700814912200068755386804574268114525326520808343408824965096211001000471665708111507278721154459828429070148608536886101960484911715288186631028072540544764751055611501429750453031434290114931213581739244237230426314878037238490875775183056047131489242802959100450910582429743786506588598628272362698588440651151375821514293165776023977190341186347282825959079117063706522707655470823008559029480557955393313572278604004440215087197035710818468381315222056258745176637573218001878845440096867010305785002454244180133805196104861012989781090574653552802010444844911752072421297607944875367534478049737184468319755325295913010186010982580507909154043043719510642875190813401330685129990949108106389564392931560473857959856523495775611165410624551131816648241649382905551560255999010870181673027570832740156960470175637384129032539017988096640337904196731073209563194643413914638284985771283293424734131230515207888334925639051137109754382694527323208332844796922655964671219791481334177907818418900959712530609636027884708081947950187172128035636276382571505053623342103376165064241154458911785334981348029005195812695288331601272009817503690188930479684814087321816081563660654394358283381973995488329449758340043376155563798819168907961801341253683296464064008634446041681795430826005054062077095476528235970238996197668008327928742108153634794320117571385414687512397540559783780248529988389469546042466031942910826923846556774623684721599665942752161344346426977967627163080815119248067918641922338955233677945679954303931253058366221733598590673649880989625554307828056646849195025376666491870471011481692943578153018513409431049392948684617202041820057299949126144008647550816834340355428744777939640095958335210376601473626271316429080780468359775986888758180088943391333682637135164412991533590961254738778714085948398035392936492301709455311785635902899689089756272418622736604057215252004602790979706908135215791366190569047687292680954769913287351866736309856202253187226335626521688428018637273709027038058608190292714168965509902107329667968072405612027323142162189405190463211635754943853476282555516802520625619170462966648522019588181330221018961274774544306395702389484628052982357220130245367152446647614257529533409715895502990145910872579610696369379250862254082063270216628535454344327453623936124864177844845533436154408145932283913543557705825713431349704037092569062005589516851049913843669528488132025760272841754586113700366834183987174543940201297396529159639695158509378480362938159143002649712882757566890249199555686995146412777667458898278955810430690127732411453695903610147709356235933462658764228036471499933698188068732870109156005610656940748249235496775005071393447181810680409814517230424353041697978568169091272817216352013467551789389969246568939884703652768735951243041832002146230504643729250966530919213704906219355019240587807393542170066378593003930786893409200361475706848518730983565155781294109677505269601104439732783236605656554096478211280872984142058424923978590036713966775171138667433255544073232181922785951681555596047053382936200774330794130009313404499725258466565215895782958767111097639381746313119694092884414657117810037006638918903536974115965300790633378834897657289626398290865648105802020345289144593111077905249611318819990418648299849824032658747337418835023496780746910633852146150066397617649438574950579162796599524776450072391280387556809340545898244536331346583729111882599812684814287787403992989666716920630064195553875091701111471469379655178845662737235551096446162494288984335574710476080851144443434499205219086954001309721475046922072329708665887295923727397854964275664582526900685061635583061604567335205455313963362357384763005237887838813212416823899636836146264566368953134122371969605084975043568789261128284224110654772933413746837019278472262439172404685572127713130583979798710463348957740700022005194991228473085195221202541702949173677587136168769587883187829024092233289320535134372656378252749441696411065433628011114640019944845713454995733181777361744568311100924226554848416995386130691686642595921975566376125004031116955801943863321380381957137096616445174222451464682506673341910278305735419790516391628510921941292745067080652928895944675504799880477896649930894952213632050370562813749719024322274521905014342495673876215241858459959743262950554650362064833453375356887979815137787327373838930248524761358201187784208194150945002994066430214954359585163810518747761471818148158301322428435495211234895315136533188263752799172614475360402360044384682310072533414849595117708925220512005292791642152262413300943732288707527015054786907555790701460487950649121753287316674535331624572138833497935656558853235727965744711623688155457624124219174267749226619491207616149941328859477446677833250599111600978074799766458028106190996743312330389443212348985780781710677794282917223547316765370182519489826118725183555045542635113719628026690926404686658255480682488151226129804429409288917612355223875154841750787966824485985070073476398138186756923759397160640093697529483778118315972081791746900500088042630320338454613860113637574910710594670015653364477243336462175179536106741552347194371107347327687264931737604455399749562668618893090834852691678640634009548446843961657459103466559997977697561157460792636424430175272465847991039195762927344134896596579421655230375261856334076849620071182083537678690851748353752485043973318672982841263881682043032854681132849499939471214996745925368919527951881108977867125274461905864247221854967531583534449553419781646567626862515222667801610059000773749749170408235096760067962154439381545544855417676576726048665458660081668995258417620342245655309426272038686306585491351898341937187116618730815830396431362493742824102012493039202684399852833958766080183786258272449680164299571972521130312453991586165658593227731535921655816463992999411851974295117661929906608337909152575367333921286034421234655423052840790197455852217564066082275346577578173080321836286825403957183140420218609712680128065700088124493881834836689218753627392912491897374742682837137855086076722001156989026494287693392902234075745135654611600188797388673977760188959039723250950492064539168129736404158556063268996568599072885441538375013354235344228824958045151783809881064886866992248552675361894815357831864958461058943564660698349535898961087487488667922867782673677807680435593769040955881894493019557097925680221025592611092403842867846343208723746013852479317645893072389214221008546435898975048885852190226329417614728247743816065184663078993997693958816158980661592586572026222073214065382514262389471824533836793810654523756555589158585448741220118671008071817618717868524375878196082552983220389489184705281761249499832170480157514452035501402209625224417058343815792797940760877139502804137790948335315752795627622469264520070336954027017219384031564704197931942784023250111590178139436061528831175836222069340706050089945654642529618683798402601313353844093711746537975441944522172681274510527993139384978877243427331006074075208416860740611441139548903355430741053423679759865695175343924930123082273683068319265405975569978835280302928993969979078494153861878239428877418586122622965625174653188247716643762272964909592254412697594787140006726058231664625815765352908610530735792795830746019612508281061086419561869700971504197547241315735579568634865767290536983655385988047274183610717313134030455866953931890030633182003058450810327539079214223036343969078673005898580930501519149823784941669057380996671707301276760261168196549835616717376871536164505278729367968261378829600157980263712794709409386411773582787387683162796976625610842773102594006404382020458373880764988713770665191333956424110134246414894011839815740722057883395980384310640090739440826624827529972884168208067869579604008607628202824454398514945100477350561136799965142752096744940511107811611591915573986009587975105353837255828206775686291583171912630937354113680673429907828093312094444592117389087353219724347153346875893105967356502567194343942320723511719408939237296361663032718220354285973081248083844596074323902349466931704478241824087215300041035402305474216563538779992438029055528538459685218035211756525743776235414343569766782052901556646629709386535855453324644016432207198806982513543533239883849942819937593679157319768508951226375341539833238198061706327674399850511201214477474454031909036416256395652817854670611417955035153536441590629519635053639347295703243479171902208983294819689278499120792854459279162230396956854836344541044977032069006155720422683491411332560583073805754510263915608468566928417586464329031098960970555649788222651172924173247852708290277223812926254383099954990310550344695089951534754008996362024340499089630350048117127192234080241788915857008635665551532686573324488289622988791247695974209419683748516968316011849749087376874219765233832903020716613090399994917512102761174317851947207037714918580382975859427734014086596966835967035473273844170380042305698848055755555073466099880122396310264380423590262166683466989236583072813331757726748657867088493637718214994352899484590661798110456280117775444730848033548129877760933871348264160409433832931612497896819355158029523310369232061096052520826477747300006034876737144798196876574416239585285990393288358005887222041111164435878408119154060865328277402360605881956525007655852007326927069119423316402471896111438892346145699302193577469854181136129070013868595144450771366245289056246662587610018423745641057502916800868515059129591640032130211691753294676407897849736121406775096526394945865833807830714981302064919384089713164341419883676041185313017793556201215951184296552447107095992340716678431707650248498823048351847154967434927141694274749252164724562390965309405522481757775925151969058770738738380513073604318198569519293641988711949786262587524995699832375013571429996883596424182377288356797840760641705213386682133349926607302740947881372735554374182992082291252712637433940237505878161857573298470069095314731382538115274527293384999780126599537083375057513029290459301279107175768141883386564178004652415943271085221670522501361480471280577262010203729721725298681939441460982432960233027079463898173750415895604808165651047408258786890531625012288604543376522851359631381519073744966627017858983637037533946840278251170629742260212851795650153386254087547972926922933056108566398274225657545089287579158594719990009904892111936919359209990353796015167632656656889471360249488389502285971405817697862691815259434968875685835385190093771466193866248700735336948024180213367005604936766548639447016820444698660588231183343663861005380635173769703857944980960025972788674535144171818405016485867935783391036157511845819972258840479832453410100212125115258430437549344235354827227420515318923884810385715634187663491942526594239878318973554858312913142536748458465560796256871682012072471559989436865131800066185066496844863922165144073323287864390151302917180508854369421628751965092831609179002102403133514731175837147042500390268265644988417116982553286848446262579241818933359931380496698560229480120650199230057069643881555664300163321117499948652312127808936850804152646034302597595898009835694649848497819076207688849640688209004462026616786729611763520279690400677316994363760908096402792942633155542189535397188022562446556736247711690604596966709278601311755237995896656635872132003375861125078874920500276509677172965759179088786108300434811586808170037040495561885133642982137146459381589361328881875583314108466618930150293813096402047696050865637215346796616223311955042072956925749572966037363653171497414686452524970442256723028633612535985587419080155958239953565732232903949231617590251645259964294848552078346021592404371437889746685481256330769261921997025822999330441904769519620068244309752889892975863627251412603571288337062651277917409771198128486975844140230340349358227687597542407662526192656547684486758293075727209977444153311430515225273850792368328082318016443283053731269096729708054218091459116576837173067611999007044310423783084680626827514935295901579939772233369576753604493272884462303025624565859335535021601197196925791893307331270192825535324946500728824748878318304279838056468173137419443498129170332988491532678677501581592254288083483715422275407180918178647374696546117015098414715228035423099553708429509106338237288991943696287029345497299964399598767970127243942606524554949894606789063104125352856204729999799321745815734771218526963804550429466809212856328628114255405828203627496008532251695510445517477371004403321228896132542272826168597023610434542072230958674616645783401117780316337746615594674007984563929079626231161923325262337154998370531168943491197717148018087119500136718233794678047690516966981603790016114707447887827844763883699086613910441696677780486589941544644853298145029242022620341266206508315656253953648624867036786847821540886122371826980752059903838536529116197212372551353239544231477778744045073716368660875651114959836386369058461407361219924927295721520759069683783135209576158496850698039869663022711004982286242221565173242285285424396564776762452986675705427091199073493617458180092761314411906900641814924505109861035282023753297971055137014511784082856741595460219836681753198214092370930568549827706455343262096639257048868531093980808193923462244494963866864083415524090231808665599789811920542035312225092106712160090019049087599667333091061059077874798001740392269712597975263454419585713187491322473772504409521486061035094420009914459608675632588345122136398650747913720572512128306997816918667320042788247818483832324619157382630524165631972562949291742776235281097859939862989484172281517211397397502874254435521267939820497721132132950819448319143448681798123531699939202777749782292182660130479984924727669594203800677049879322006008105646487804789788391069126691755106930254616732797736082051817699807836125808342758916005346984685035219358019365701083913233028944783761627275721370474834208620285152118519582770063527621863393348039987333907223825524590631172541859015894923575995408998752645531578170709089711151015974204210943288528920267216125590300137174750032034539132022100255948081550416135705193186010248486500539761151724554550218273848326167788323438703728815349839841106817947661851587924420211158862183915576352561162367521143419076987443323922485967381302192966541833910188000424653240560191703387540291289739194334172651031428483216863637865153290072403433051577195744810268276785080339885916529125803062306222109864703573664989603096314197911200415073517905992214561930233995234066262481159545807985202877867675524783703465823897503557021998888742628010066253014884138112344038000329938597322034093818723540613616327294786148649958787363507290475192701110312300532187130411427314139334904096511118834075914326800352182412533351120659321847585745096632976955461725411000413842245470813152393128868197606929357619925713073225028470854337672099518177770940638862161972724790156573770290978826795360897447858400231388808639742347872089070669324393909066465518922576186599043805572116264141658474177004169256588350664833230192468633543462653492093202696668318171250300365401075313361871642823225496161754489950501434107172311641508099338827085877975188942689890883182218995135276856287572054293485920037775300174766844756854542493208708986230885727216668078680660713251397757329254410785592599323924623958263561318180064601906061913895436679051054491740675296061785397206801313505190039923392579945255554107371777007808416049806971871739455065034205787382697675139864683795543804083554166726050011058585439822422296697302558758053933317544202526725582389295059831678786177009957670475609360253147939323176533960847768527628468200242867286564445782752191641767440420648583416295654553205506711108554332567216237579573076418162001882932844731270315633630587317316665557094294950244396600915181082905137234046124347899439972808887876868054811723864121503042750941857070131245676325756968128698591724647236156184870759870564534146638356823936979505353160424722253663419284817271439100137085231253740582151489597808780397649608493654926391499152301327816625110052018732626136727806188170724575663807347407406221825123258425111435830907989270099637839133827691248303053110953465233928772455716391215142362139437535600895115196951452066528488252113023589274755048093208645601264484994410479438847037230617630496962469451627650600144163600911184429076976855503640570529667018809865028710770394018891705395323116371105962279309998194056592809884344184235874269860527157616054570503314551691032425068890556443903405176105287821493397417517069067655362933487660194120687527307229087393532549496439991950725063817707361142493638674779137290610517114165300239411556096763965751961407928646398873825572365208822466101725885299384102505521342818974077337076576765501610523710741101382111265001207123345225269450127941155479603493213590199384122642093589575626452617722888129351190031336669378631174802227474405176590436510226894777937807543790561995449837835539234258213430885689914947667659716746771957856376957996512673642431720843798891985666495370084484645610535939419334062447698829206349109874107536415348121241365446570039573601231820346122926307132669901528659465436881293766877394244076131833253346909408204789168939683846477995178312132416479276686275201613586852300897718044286522153778821436413554763652613053909408329577689390222939473076329740638928091082532951216044138274352835289413902724190099318037076318664682319715670784956971562227198024670566551795049049181164025436601923245323959823040111845691831952705389603455674746347034725967730274430851493313682158501167278155605320355048898831573237287640569091060384063914273765691741003445351737295770097616709223593785431724227485996528191260003503185524945902440833847795205507878263569178129560957509882919486108825082006686647227615636138642392958741843849269031695429731644124327485125324937248800723695181276764071083309960078398044180113921020579406117901726193733109462254680985104188183665725688827409856839924249438438414747942630105338085888088623317344753672863485949428593687305864962363886674717333717971682141489741949820948010942772442852654855945399349015152019202441470016027956141791476228147313317023328721692260517372022385492754868060957415917301042287994826709480241641036166566860626029429145786525764912751672695368488453017119750381680014802343942755788687663350671009329389598686823033386644724971188083162663508105365943652140534444791269429462104489299221536069193906772827115473251316188382178535071212100162120871419005840412771303723497753085739889742178966667832991492816266601320862649060978479109145433073251511832759042938786881561756468671831147072587628383025164508648076241888461128484972405150674051596142156782511500549055602785174386198208265824534818949721864659858390411331987523281663786789831754200918967539675086693249247962168017035732215921340760029088751513801621285491218386714727321677128712222668183331633033557345013871844428533350123869005799887824363136760112032272198462363901464217064484224187488309403888699794204151216046966716497057190607758459762452672464106192073817044734800870658287073722061064005179281508110009137434158301040135561320088508857241715006837695905704478988867784307793610451137326028693404531563760483276152842507882734944393548923022139847273916579427996088078645143169602012405765579701285752021400335725363785176489080398188114078786818527802147110297380110347543841982818708791795606711227939611331063849630774491902764080479488381143282320575482423859164413493508706500081300251850722095053528595717990823157258076758258371629865005160054183091253385923691745771891977274395009662075955240537152009238406479599598598075700036946151314750599073884061111581884291785040581985335397972987432900517661879297193786138191058152274891061384825978591281897846266040325109836615519988147210659086455023095270209745329189287686905888119416490476948847348023432087436403913839155702301097106573892617959203859248231552089184358597766706755009245183285742209495906703374302859875701674829641701859075740049007564982054104307821952198443794369035310354647151732861402777766641474745555200079048309176423265382028602198129389735746983866446083455053736266198980297363453456538169807043488894737669463430442304288215268567796706744214371164972620504950590690572704776081056280268015910156186160031825358981539128018062399425165315241857682692549599199346400514468414496417666627904059540335039885353721459630536728148559249244713817466476589071350788861043733736809527849003011704048223311488573652668431741319033702930941965896907086173243042106820416260134040767178147876249415653611557695110879010540891322225145753504746750674340076731936958999971128398753769593419838204342589935008510208821249588973172692348807015726094498487948787551990625044702766083243455297560121167181564897455987456296751567138985766683145695127564997328319515731097703170909630555435247775333760888656675882636574418057646692097196316335680954372608738612774335076917404894197984129677013266666084014736220439809434782624007004459281131567149692273594493201001064592416738870958665701427969756197770528511412658706720654089852972147419382027766470654670128276039607971929036689238783921532654850210377331715944534473487207979202848838524588211050461939024476836075166120835274521780627538422760296828694704282500576538893146449410430343596632593826609166946661034705168405371310919797249357635986763498724731188205523299701002702980397474095984988915754456083455065495120452072370914611104840779567099824836840302970946206165806874441626910780850442467529220098579478842954630154576837371184022926386104955665502279337590794439611888818166088090538642511937725620392227792250181816490977189524591196584779153686040113789441045495637697368180520810084824718551606470209801901344862792535444193486397123576150159022224870934657903627563935671724252402334026291020043661002997120302799105762409656186465432798130552049264028881887873359313602870438127033967794272320545627592135002974907862490325439995407641085342598402837185759959850274011288892514343886491789817082467834922654611358281416955100376444553261575752500778510040521838557316314270047889727626716942828736788535864806323651858895705406197503650126573430851179165056176891991012498840663351717233574768804524357892013225702991545833376277448538659771264240454437916508083936988212229939526596972432958628034469789313791223849809210796157672257740243862279551332553864817733792169735442685904249932990686524427096925777033134457092737618653666954665167731869196763847606782812371160885250462933803795283505185994790397411934996246626835865820527190164831048317390461744223427895177989213931985470720239525676533903062662398620490415335704459518780817312745327909286501781689829257068386572391643498688014692802414732563542928308371394540636097753216757601568502208455465589758013740061080919110747587959060464701241201581830389686287434395503880225248625470833843656909296233640791031019984614360935288084930560958839052246409525677276755237400191242044477998731321714033841413620016597234377498216713733340379325524995750223191879909941089514849288829038809030245555745626080782984939595510692535870756013394214265298598932075647662457412522809290755109786332430943878982947264607412658950884380530987175110911764937041047357058374353401882932916824645953950174308380157906637640079504277515024149934362275759303839393933205015264221566614976349725394425904764430074570105955975165380419138168260118662117210070564111679895965624436304110542982966896951189141734960112106867671413085383993045956424965985197649878194797072526430613687733261832379404071282149882243019399934165289077821530868326742101752098172596335952031160604605753897144597844985147164147528112527999947172242110303275571038610892518721334996112319175164644049885122105178744042382078736223110982175056853029863846961687761769322875005410343788310566941743174910913716472818501737398050521740978585008560249460324218951958536535153648889149930452809197224768303122731707596100302212469897160639887245692647019483628973733195599688835819395268521475512612849122511170628464530384471081181302906396225911769910964673335216210636772280753079838717198715102378335525695124631841396931017035241759546097415512614335391447987923152257983108373121879097056988517203309911275676019494169240594938705876482295473674822231672274688333736231666869773555555522467942156849186601698478283362949055642465859811166461914986102313975860310913461418384942941801404670798546299380734917879693652167233854585104279075021458947871163142071436706713335991595827280917156219137680699087542552559182295265623150605585210233868740792381270028644156411980249206406642011185978365793489897063267610185594845630585589082199719150024105444350162764533477761320067398699218175690313939338450976919179005060739293070971154065492358121464022404917131414980599549060299129494137553530287776361646308020056799503093992265946204992448966717243305936316630408181369085392862205470618074420889101297286752502331129164884128579815898308352898078253679292052459007598522841182506597427908532538874076996811529389755766771522531045007554663061151567175681759085904937090742987112269949074866181549400699996535649401346900570523903848874394962008451198145570755962750148940029659572844944417237763282699769273000253557360357886227113094255531213126391495392602761686159296347972261066833444674653129481931072492056787404525660168836831357693004566336519031135624788296873423858941658993600277720837006916264301408320209642921790449567888810529275018940276909238040027381199942455257852984448998851366681304403032595718847694402408707012633232087961903739735039506046273121010606209698250151555150079608929777493003997436422399758747598941683973707125352364010330959948157790571614363294615199545146920885264670133421834022303532989100328098855491349727631162318794512311649427343114575559846507102206927323366340677650465229844918078993523286809657610912244598689894461665671958590513777406012822342581470161027538887715490716788986855627056125974402730202516872097471907564560262565203280992724760341372155668814798224882575905504583165739632976023425533208731792957246960437750333945939124596971446561692113047144346909875753305685845370113998644752263704345430572878629348569006041206414146380601100666500604562381332173304294368953135636383852623931604668386051988348452825514810175201847595716825508529051329651133324621699030007466540901097984285210722682255821268138537756154939811118058249775222449968213449585157860615087680556451096394559291496784984096673576555860348051947266832680894181464461334355002663845833695880751404587556490139191432027392761237881174734834281891419123939554322336434139180534702821734237465552494413240922965564189847040275122630600045442166931032342853012001645297559201354885977329216132518828451017784812105419969173573753704552604662497080029403241294595426103077760039663806126169001085794329492548650129470387819497104128767259554398844898449687198981526927718385691323154221653583247082669134195276972274477619023474388333266052231166625273265189712027560016462357233304901876232149025252704859399673486904457634686467113921600245650888665240397998269073619483357692393515353259335762168264909279713542949380358651758531075395914395394566516900427776859616816139268086147588568533877884371733983440286032345434388703050008057397601916255501863929346824572701732566991616592856977728997162732174628670477684920891048398849547797436621963888149331709420515411368670142859946165098781979522191276705811198249658363976911322133297470344677099644397957684921350129206859214212936286711992921455318239798836831352617503519309637805716647624912398446962361795789383154352638743727065226564708487189985991350835265318228607998061631423129230690983922583989085738022991594745817234752626529966459221444623658731592542425739339104455788681314847670323283775057523937757418852340540462493061951007467030131500117806337632484782351171414679154703344478840578085857083633023073216814065932503851954109530134987425879969428582688087556497492475868929489973997970298717978771234004532903924987303150400047751146150078728432523563786863866732369931553901080609598964352369289019264066312025241232401732029276802231844320648896573227650033613077829687952525620042372898841691512686517228331271047167245098356862980509870403758673002211918638958628178244758116405892294179368568409327152344191504428669218732990642746703227441470904181133179978706721695504105429642957710995811365012512993235037329650900796297906261287809617752528301066963323498197321568175340361345340004261600658102565264539804154922106668918206483189733871367007261375068956525725129140138916443320257984355376429018899426090202479270004946825017838039151662277666335868038035678450260553742355724407925655688304057864890426773143318515354064144536220749339696618101000322869084189629866258868671940995472906663854257573060760100072505356748902430379871864716260370108534480240412819114255707791576388914131986761492386809552951402096486914738197281084829196447068922343638214564932505270305177007474497604227490758043099558553845282063879188683889356916120153890405009041702651000355783859490858307986137667655960432729638757368920049984882985997740548979873783437185591463219725187700153277466292391657798433883114517958167033978391571155976621572399748848240051855359328255273327429575322928959847523738917946047036359689612375720384521401418434840810995853541534471832356051305793286325805281625409409536513851261847219107542894620638653417546626409187940490759288319699381945672611517332414169362374033316144356334476571455756193899278998965461077527065447326455729774898129587576700528092280206135231018189573257607780746310456363720696291695649977953810813371619714518892660407637563977424169127249965178105008551540760533476349014864963978050437412168410861547979602633343532156267324285053291659152569939710942591269046603540123700655914733595535250307535717614122820154933083203956654348821768694985062501620021902772570518932509732560073310750350704309826031082749955012698254846336050499854635352452660123847443422175941526982901418247313106668218284090064068448336200362521291870093854723651242362375296288554796716676446472257937757809202462181115640092216863215415939515389156928547253664494039691674606547346884437361980946269848538134874798850185829469367284094798845858167710817394015911267105323547189594802245602033036219290700303505736163544881370569218055690734560375407718206299208078547014727726113486648029643460528729353234511078224842224909080005207470762518396840742330426912109528367012805872632767423933244481629941740440299120231826235964679459204316458697418434734740605845339732675764098518089636032361587572637708476847864279379960001670759481961199558992204740889840326533061618343217029852865371078704149282440988675463697086578849297509151626706150656927921121340917418818971205579922132418239854892860458102588089394533213632231772628809453394603673265911474546241299476740223734902755510887882571438684730459145054069031795447173772389698068578481262030244287135968014205730204425417985336869713354433058612851160406373615187902371687959629385079616624507755294684758480113447681071841080634805877703588410510385533568785798817842482057341004238862847964229909696649824677205955943161634376788038744658452823996219709725976804951261379618731276708767552171597675205759179651911605941472376390066452210741077657435696081389729819958502411093428809744539897324368556078505678215567747806444672294933978489595713200382632855255613511551936828740390017941507233710945027596663643923031489249304739990345564137175452211190405734119720076384508586703509198449701288286356457632517157160390011467996487614358383679201755681804642051882928465622316845328065500558358945850853333019657442719113083577666416810861710147365986652025670267162676886813628111240961685066370579031833618365267118240918721151535793350978548394296098196847239753788572114078198505246987073168707944388550736125189692038227581012309244987565749138892200866136976632498711601420747108380161810295939875833872912917813571020959010036553634700056284665404710006794508469604299316317157202142423704777739804648518317669140344695807630530388519829150946117012871400931474053013588469155956905751673972105304991313716323500010789256476420876143623684507800610158479920114797897626888092383362790188945829947736027176990262743058471950235020499985141230540360379417981527080998879474152266454935861182291165787390169285852302649620254164162140303669852264551687429921137319647015576975339470822415256082161276136550778132676222756628619288441053831124510303579453273432742335792955390425622253026234527811942372682040836974701896106833760980792879839139836035326175555189294720923676708134074788465376472239580657229085287358005297542849081395892564543247756004288913449349169426712569975663083513990759574422471800767999911608631531750413510758752948014303456981540423098632437974980342220419560607810459223645965582820797667313966913779714982640774887359123556435150900294010657883299654615130657246698361262637854479032921957255921270124529623224672365181601331752831717111239048479655436866401328270883194847412305560914745581775266055077639745237405689249783880088523365657687342784986118402352840100136321984455606533776553164516286815918508234899255511530989486845465131649457468311323751839081245995048735687625501472403943044451621038131804470372939534464959827928870978716112013647956251677670471611592319906002696487657775404836206005226251428778349649272752431818405136147253649360146912544674094464689156741121257499450169510983842702873862555397679271957914972422979746603860301782033956483020456225393623098680295836887622616324749321980473572040329864961833328215240567417296826839056903895279550056388119550950109712114488331679253037417317572730648106720877273317593018996932027840007446141017394591325857109649355118729259707276219291610931093859290617826066133222685569134532634919954016521184440616093490182673236583039904774514508717047147364080646984346078779172326275629423669958887831886083738360719153267297994419455786462572626903137119607052489879270944401616851851071074799284651233893809654030250130153144293258414338501278186432382606168060968804406443675357151294493645452740411529921244211481145764854470851513950898467712584403748957621381407297338328361237352308448543609940697199441096662812836251297249996265095374544071742035398039313623894529419622858393543674396068378204263013578053545217286172386924158733864213173350891046240178890550795264903220645570378193070666141898303925624666884865673486133244818133860281543985209490797485397094549221662239108988574086701577699088054109628041773210450119433071044548734983263875962360526743869486901601794349101608806254685634756056964112072159044000876278718375008188118683619528132901115093256183520085961898577997087689136581058895973483288842550467191395035607934315353435793286104816476219511556223392741377823770874105888300812444921069557902473393992989624257374030608147717794744998142569330903580646695396273883850665647152331813132240500250149674892149869282549232230872437142054938457961173812070612235208666526362732725971484830703985240819290938466102644431548659399727451705433074026738258395305591073465667046833699176282361858614943201944365954548077403591663018245868538432056686249143618274471496696977919990034135249206145518870292533533564631716239291292853582338709520910482496617103300428119111848375049214440353081139204819934387339684913199511086233267037320653462246524916880723516615606476518653111703913090075042044932036164390980750003976590068065779438571830066599086614787222894800357061461103642218121478459421348416243731081683609610396924239845107626104399861670260665923491107395371840835196713041574218381330558281474117710679313121444888648862059065417720734843608501034617677252157548871782662532699831247448162064178670422429975233429847715564322396030791072556645347991433244562718221392744350981761865968337043895464997044821755497192556399681780092012398651735908305610724328080332930948995051446754476792910553094716892531149291991955020287034369938394937177445622690285089312351937815625836602505149127620220096728175603786775050377930632619271713899251404259779899364735558154382169722878665201048075590193295232061540231922475525622692506230363922658549861564752211532987819450999757310526202576725826950280791134120186117544880833404539578330194072802501125907580004676826033584172458754372846979739172516707145561544789318901505081441315628893281982789512036770467147654693235377146716573716191367740162423009602283478307140792356803823353373571109221250832036710161396356254296641563989772386363572264030927903067990219018119644430836504077493215745342699359010148608632422014302956201248217675081146957885626000200103845199105561757440587521099057526851276331699419525191185610539733541457520836970482963580475616315915652998393912100505410866351408319367330999225740576920592032946386751609075417124127414914526318596515780601165749955851314799062004812667429871375097339697780544695004794086911943470749996072122601762397647321820294101434176337076296545193670496012039710337646638801094024656860789804577724898411039264829789765228136372645238592048929146937048904077819723469223778958151307975870740467063387805149408082828155926118339708441858300565880113220123757855048165938249976661082724838949160412887680483059513824459041064596669298360360655833301155388792285995114539850972370146222978842672182895822126765496416851043003196772078896752389614589891401855942368759673554156190640164358910652255860608538846190621615705641691754603704816950241995908418670066637038154942843244600719761674193691854220888203036975810738971113009394785596177969852870523505640507376817537386193685293259259965736005243696137749917759616670101558691585764232543709725640780144811057316248850371210033200096121531313124200800656687163658280813920368251111721010246431945809869651674015022891348192322021395255880759366655172963556880833057515555750813009430397738655029209189238068670255771252304815684573027712987709384615101596735830523192008044552353886154232719197736107018096816973640281021995567363525678976281018884004106574675009971288781185998242514719725210030632429150522230640331586435403563370804964503929498638736589015121752668808599860175891405708607472787972423629849705455969934698037351043020927134060338869024822556789598433141044583048317590165994927825930753833820433220645034898820010133712872835202988630489495607617107462183535132664310654591584857751931176520632196859212916440563973982216894603527563274834373688001098184585348827386708939738445892659094901470217769162777763598937406975531397225484590523970674321701270616274414004329374938769098995763897659330771879865351533738285710837370487421001527777158300994219765052958898368744320856292858662571961945092244654808149899862831729294870206998248237461212530251172075327931696474934352668380419457356733428051093459024861400167187703726044737082661369766982307216871486400752265365099227878670361743286801679673552342606424784109385420035938156112073116951753126806691066086458073456816029103222657378497673717109408720491037003870138544463839293508114005162802332207064806250202078986082035124761838981553071187960453782003210802543962435742381791044353206334058276164257325899921612098009216398964847527476286561139750851530320767579809069286381454329784211442046355506847285589228487529170156641305637829012401296906152154276292095226957873292300518171496561831846732648487267539562683322777127119456033274424971880667190713171806946312636178886274814472367770632147608468847729692436040850110832557365014310069469765528991022537502355828475060475468629303584570847885949313125401908709978665521438704689875330256337207303085965895444965988738314531864847599485201831348027758278215760438186410664895907105920825482351672816720532035968585085505299221079485339358766437572972695996165699934492371702423101927842729867787472702415504508174081672848915502831381292622574093575206716178364951092343500892009620489153240621381731598570525726116250963500079148047444964626347073230830908142940013229612335564714227293143244236897364287130343315961568393337154332860736407399296114166453644284937090321654855257955642602488205270701927659204974691217119333616514872806828672488647390431102613680258158179990256274333173531884135153076515898763852575811325691155786984561950602415570113305183352054258569712744935349791043230076405869499383114639933938419651938175043044743729976032233596281543443534699993254536876225024725429616151002971434753241583688616405291932856925126163257794231087884768464444628700562632388129557262861780992073509034228546606290782337532285569430399928114519345822828915060442043180424649056020673588072883347637192474120981353778882624990811357439495770403411972384548929925449108465047130890573546344764731668514715128779046205404800892613106730868232457863940989942312889549342065283271628833472304270245174429393443928376848946570345636700085905159993232673668233322672791061989941451776173183462417930325602649983999364261756078157194364929981555557970319895756468299740548528853604095208101137796789457413723499893525373493098724879605147953677265086307109946897144753242955186905990328124429077794083568754817521757743242113605635309693067417110458375506140724264852670339302608882004806579307856518601444384339394295098040739485894947711735448171586938346670017028219178469661395732420444297589001134682147347857129977239596678160271675803779131402384788555902025221656820520934638999130337248660043764199162921823924145635422272799808800078042207657117159459659723685117251792924142168323795067678252596665546699688572296587500910571511110761926879248457234388545701579583728100522398218578960399143070952892646314616759248883478277964763336686837923075714428901139178328423627150495314027776658112168730569607949129423379254272520716242113050879618537700389150887118462426979679488055647504659079974264206454739297242484879967796023675912623858050802369766815918000622347593814608282638804104066946737492797244826148356900563206379329237875236300077110141390558915764999526486391610699441239492269540213162681350231066470075837267722282700506601754489796931710687774052847415312441932439732329494858064889290143688022251503773672205190766590760095472073010496162610747159677625335810329112493340836291635556606389379707389166816145322354114065283003110236859925276085197554516526997285153020943390742434866107351583132098639462719957190359151945363547400871411205445717973691773495286610700365355273537967170229426028969312238936275064428958715692697536614325870415190887225670232736957555192929269199882262008508216932153909702962127393913576128935198484159609577958641444339346774901936856959493326977351275316533942282698383612127081996044438393134614648312808288739038794808557660072982294279108686454278417912325980721368133177185391326305282681647320218229170168692039138566444545493664385307812919960212286580569840949344774318512235734470099576554319488481549627129745559576675568775125924957068878858199377605439191992357287995967575514744505324363194305700996393726125760792372116493047171744774226629095996780762496794299027006547010023042507508480784509935289875740046187489554896570717459326510423706457142233435650716969437850541023765170924641608846439413181316315317350356366134491031635991749483093507902021058191726416881514033025750161552443735439623978869525676717541686819300372015718321271828607071706955079270392865901833318811694528232579142030103602825309605211165038768759491879636326754595905932354127037230044463128815355794132004879851880251450689560589812532734974977542094476970628224105925260378083619230199205903639990587880121633238830458608307906851302594358672733390968113564553333291347872019849923468904988843931203342699633730842134501159646678457293599482368337023241996635220114731130327755994401315458019272223240492207877843784634807462292998324056106173805032987631060687752041192714198576946191889341151291224370255992362576758215372872522889584868162610872377155892905363365840219130107067619323003630308023510098311895265960742085469037967530568088638905595358359485946498819632730456469413681660285830942692338412751924034156497345877703230324277056677060953732396243790204041709171788519504068571656186457051035205226374250565911962289977347374679190146110536390869018878639194392109071406549873960974401127838004383992996557040767538164983530422089636434661810053339922228630997600511222981710312323656606773073386068774172026945314737058464180927074595016922733474597052650848589154659083627351835752753405470737237042650275301201190178712915637207157438538969564400987709480513202805542074587976502108884618333375086441259070665214067767361926124326714116544839413000010836498973686261758073903859509306995001100312654795350643739406620692379977887644641916767185035108445982405361679883137669858920898486800301183401790455252914441545513942565238705653424318193675912136586679188643016396796045689019369524830764136652813780141751615686544722977105879829099492378120537712789078325069133612856651762381283233265709015316894475442832636823394107103451787385418718443076851422195518559398788545834759633924450212255474663204594363926401208349818352769780878374932294232029838558552610123614633118077005000093006411264923314799882292169504136189260335502160491321985531679428493997701118544524896355816706981354875056405110717669904408424570933985049486322227458647532539559517829303637941215573125169548442419854293586748028181212292183340500692301184816545026739222333562902519870621375767734959290710778413560032688432040023452566893152676023685165941980447463886033342834569652107023605336323278028524651830899146472588907488532388589985783299905931504750676950155312835085843062777151427783044245745217638381524770510096893204340064283452005069803300716583361261179404750209466240685152488459859744763815207497279208382719488373132372718146736869514332223734706682226896272006662327131759888258021207768295673292434921814679358695819655747596473327521282595927703963892776363228754655246335675535673866075685834090901312453992876735909237859150944382920937601394405438514192020747630136764259422229314681198274986537095263923803657623676182143261334025717193835558201356779316035870666538977996951712820611305906067933674931572714603376742348443442038068980223496726408667321014389155611233574057367761459583290927104618723116494199731082328557720045983625129055904180979124232331915827817617059123793424779410784020593693280105229050862153266033991475531537333491529721986505932294135003396005891175266559616838085231459981142089601181166940659232873718420231203289558910502289650063308640434143206058916354694324823463162126312315340410119524428061173604892827415895177059759206971867196585660508802911440575672154143963053903136445578679330178956200580404394702636021889335557396790492484767235400159308259010060491669336500386202602399320907523943489180980971324187788259859299570013416898480314483620125093179106994795505951136786231759618394499987619722218118528025170805669831483843396551487360988931890720735570488561547172428216324484678653315397615692708822968599292008739631234637923463608231293996904971589137229866366535177247290939210230608752504209833519054041531882421226979878881089780241018714124786237746377148279123076606234174914358870353665006463397620909530220796534431861602836602069305950072772541991502395036898490529204129652628943191388609373139204321538855454753048529482006998406437234927732555091830744087121571743168736524073016403117102888170643182220017896485111250737695987854241050846611423541621543470269703414469564053878281573815370982170371969917141702407255408115656949273180982722720390905852107978268466985899593551937738177658898504754703869702595710343655577673029068652573325688261483461881847118115289760255712082970515374538692884549397295029815202784897171946177630867388200737115293627178441541990220380624133085654636996489976645501537893479238811317643104156410044512035396488520735798328751427742401965162965984792283431943289683294312849942389376654381329167313465431985423574521922730274615571984887521647690366398669858534079375342099104385731410569082398283881216005965021839252292245468165662967950650238211797303040747859232861234892400015214205877753081932058372390221268351959867242391516079306502866078806429041301307550837234013754753375501400370173334948438472097780032767685155994177470875887789819086999899782518042012200795193600679742810499798384972045616972307780926852347572311692469313578710711068690733011517168882344917739009130050994865312833518304639091379164011329842795991932182068415725090158347118171797298394056111246776610127300116949720981731070886443891101539117506917549697217165113190253208815531790439688123252595528955314165645037202626295249509714173983380329397236705034420580145485050555348525597148713117093304828247836061076272894877657883790946416970794921308932689617142088411391643668937424482492102361410201095675867646035898853989730268195641242407731640761801346832291468503524861090397465845092788225284518548000691347441921556827888481784435028735999414321713264747527645518885289010741308253025614592896902661909590968268433415588164195028112704029510369824819383716709958819099201983210088230104094052236155441739986002869951903958332581206662229472304963832465740415087646658790958084135076541019093776532256007939309841825882970350565541890592257107162841066654141536619833151866966463376400725143253589802786368060289625332734361340190978210209429593927238709000844158595375398322114070311391835456195436931876023900192596392584658783337181254307619061025293020637169286873126960942989333716229129934560410799111791298699787845216746714636180200275969791733844104329576899296182579583629171564965687248491720251743212011380385410983389665469974049917830452369069486438215788413988963080692809637337961525639101426771669365587304757858839772016834604290405325895001852352868498155361511064538655833134433395009155880312662985866658088311956931284594862974654601250070756059010392945685596304329324855909120837450584273368569381370274663818134018006962890775966760632027473232284851962588037686595868494188094143641369561334036855728746595506151020310836691499393046493558492176785231102277385402640521268065691058550066176423514462476348442109499883098842711124969957271132645775975888611052933312173778379849942350036764921485859182889889986036553907345423345989808374676610245904483022578301607407978029647119501264070974823164576069358956197143046452116929509570439238118796822780638338536408435358144360827850811994435042384187561047936277535552502783716217734309224326016022994200737313669688208783997599984511755452000098196932290699851007069763841354624225778870206588368346746632139223078785997024036791865886683548319421317213697851391400656063592872389137463850553330186177028733735162810782161836178707191004141870744102492636999596838560014740571683849192714476418752435961556924149104583951521456459681078832933057296369709350075539884488663547735121532569211415814020900282617132616838529572726974083889255809869916623008281659782868137181735852781708425284988835289698188094730789134030998157717007946344111355833200852291776680421443486926983928930872733149109368958849781824054238719490517649489366694283454548387696591663674408177825162455183706642869942864173084350858684872449485141125303732599132762749528575672402251832143583417662837604186649378756189730109356519270161102990009779033508602789543276243212618208303933216755097209754665866898118802320650511056952544732708100378958530532502110520941740418584639262061231718292876042362197168106708914496240003541761156784013411027011465647760465776710526256530005893646880398881816487962472391784581616349167049108275800617971710357682874831883737321170786953255846605115550051810501555454239393346688363485146617169404354713439302289644935781706327405647837736563424298741490524128322244744626580537303031030862210741981846511779508040384497167075007284694946259247782857285433810298701511318619926759122525697356430744073399444741674162952028063315894134976865788418165146969874618354100269210757264794412656800551627322864918563454021743212190642532025849027039449554812113829038973300881498676678076780435314362778635243494768449432616129500751414968409530356070006896549462844164955917254124925078062027286209324688932496008421142603410618520060361894702307856144012967991262701921450830627842367723456357995115152784053212705893283177148447793974727155317004319349750384924398115909993578652496039210566497500579044858036829639326794588876467111216151612479586781409697090008307132969936480018125490842732158752979324418363099590463286665873205546478714486829094185501990975860197088607620609443258068172151843597290638387618386350694543499411186558596271345429026934534151269224094463099119805884435449068778659160686226382350105623008549250413102328664889806408910306036814297887256577986996315099333141860894529405389842742030162010153408226113351583112123770900054153780800943895492611171895593895577084793429788276427978240586926818448610224923420276217712943211259381818074726322131186335066320005350690983012981946789311025367637901232771739364795981597199047933465423293898788549593402396784488064141289573786446773296601492916490357151186345510964750012819165414614788357481688566743703376035973752270421707239645237485095139637787288137037902211851604834071053486738367115225052230021384056029830777240471441636797604247320249854174837046033258912175257623191020518726230300350623005207413384929012675290452403435524178812913819530135425366358268396895344338860994350364838457920567261621317194579474514515078024585578732796261226926656592836923987993622050071593794044865083478690386587079465438858654479982807629426780091498271823992756566321396971973489924293414540849971013581733901784081894786888290355894576833135608006564382041637467766731136866552367825580076303940031270932861021791234132527993467312281337186528936927993782212956509157161540050307937868404814267804547237275935994099929418161081031376775212915160881517329163188237606386226293150666590774288975420742974176395046763787566288427590796544972657309695627354361207099981241425528881012218569430415994924490082984047113778959190531097774478057881745068281074814941271177125823271977412723107577828186504627451846582934811472011237451902575668023215641235854776327775462002332008477306363348903913506875274132649768603387655347236917496604955187552022351363077465695923859498695483187551041112774419007198738397341725291314051027798959751675669683551845661563607932355934471120911993408415979818513770482581189895267854142155037870746835214087843175534801703872502243900714365654498171251036696053163838827178936254604453206008950698605125053216627084741934587719881230449573387515690731753167790326100444636454914801283201487589054307429072987778958443412006953723381057988040802208690683406291905927630696433647696354602158976991483299692783891901890669827377464636898230908727970472987965448998339044230093400631452965484896231802844297085251489970561645468208889371434321571205822312311043256746597116891883894881993697368950396586502176596720245393149053760526763479255527792923260010788360925137421155643303119546438992082447876680905375023013498214050168266995324290053893114869969915073610352145109709330474512818931725106198855865490894939822115993426104400734646842458518295605676325702824962664176268495430011208942221923591284087485685223621853723873578540059386288312270110462564221505098419443941928634501421408424445188918486996571144612840042667014795901071521879539020745028684155469274955911906353239148490645184215496352468972867356758716008309975324180381064637545463127186780502017575571756671918440643228373226815482995581706188382866781589277288642735042565956591697670835745739990977977348916040114397868242737562631354014414932527645770405114545594455997073386801380775176539386822672065342540262614538204174307935650699943345534922193075569645617838704129671995999740631981879237058373090808487982255632927388751086111766351769309997555938110260279295344225045253335828502350528017319028187001735673245445994045857656889126644224343939785284713204212158864591713381312934395128550490083769148140275740145097449868554828026500061354505259001108979172192935420036954494059984766376369495218220201729149121346824517649156524717947576689549374580681967056728112592373196689976357904113405161625858051403488929858987852473335455880285445713076868078296910621307912827179109331987286677561717913228403924195791291826183474297013275175536427466014703799393561190984699723339029056418395790448843712214506044740515318381338701848645315921101677034956414646088413879119237789069334123550754559411031318351727517311667667740743401645513114102090804837372993445944543479778945829597038878950589362101684573110776657465856870634065306624126974083192536311730490217428621715160251744050237262073615258174214296998984781314395350113768458123347877828084149300646978279147272612534998307315631965287082873241340539409084473565878376071237368103129867397016969601705105579177351371100012506168961391338875181235743727414802706914963505856148575067070388331598828289531248153237546652237008174475492388589913303458254757800462521649097699086548313155995376713793669970835030418772117292714271342329017230114727847465318373833336075274256675579516212156155815325419808935032869566199992774135670818952863800016447962946559013669320980202265627582343032350443798542967766120153993479479848986234755939579742261054599008463974275102212144003785734909014744780305694990764464393332837009324295445390218981113884179982128529089356419069607523233286567378835881964888529897787569527032777072250355995780763236923610218877683957484312733355324002685172730376366826615570305914886453816026004997040805184475470356636340968821967734700881838169909692141959051202065953899911937353260780674404223594720518392691091459943490503043388328454802512847901085930227449829632659230613825514284762028186439119779018792562633050724896611615133014072312227994533571893443863439638403071894247446432651353398319182503070352082872557403955491633414672155997641453518634894545707517091193221816476722780677312344532726014562449721859503824697067926353996766128309884194491868820421037497781490466372295400481162293157752928483071358505780591043616741475631249622916260941588366944960684365757841451450570289072360582315150034525404753057303274072517445785810902547273432262149441888322793403935324495426534392499627085817477801845821953588828346151511572325664889607288341003291462272648166781878153374794041588658790741146798216465088435614354077581841702721046653886336235283651558807619050559929043156224359251429360866939945354623378583938817965677471488547017345315905625332652910283816709017517761616630121612027149410234490718877614321312266040611434222174518814610056474209729600009163476780823279117947396444271436565403735613263283630502542038390973635394336626373462859980652437876299933276007755458442716841662656335797381931220635228979518430271607143943228856894413391361950004756429376681680203322305974271679779432132860582073070460392748256160874122383852476888560720408046353120608327819069443794769436938914463666873700678678980631866750682866635937337422269227070989582250638592569494150029118345941193116265771299597314453680386761711044519630184001163637023317085982738285123699625055835534470938420232461236518750403403796906786469577934728346952751415782550448421005725344611033189929572009547498653575747397130991040239793167876643338490038605748998343705883308618746136815714731781692098083394870309280975882881571269411461889322611941703007530106019252857271894717912244810237953879868146731038196645547460495053679097453478648886447659871080536654579028315838797132482462448685984017866786093896774293289952520119830116531935469633797850580839423742468986703719352660665419271705128125553644786416601595290726137021829895630923193110208765132577910546519832566133944040691711105761976999369847382713885747628611142083960006445829794318568488985848159185241725891044731482785871896915797925156397273737931335072287987749837557686569357489799365858341347494804866266131962305198932347846945784009745802559777655549996302703732204235739550428723213289058919935930284268872497684609108805188453638505846704810208397719236080019818565516551884930368459916957558922308294588195296872946117005423073822391513219630632447409889197757768415412845790544620374102811517041163554735263466937653194169995391280831935447638694921073962388304411616399237167728932707852164574782436569989996431998318981224557046768107023356150779025444378609576081273465313259750949757985269764181945087704307751945719115753596995174177688578878331936926009177527621519876556249269174268472889600136266031656302359888475367820263616695917832906671114258484119402764658895920268195782651657432514674567754513588383189145717658271111012228158581698880182463760387144827114877212815298142739973466866680064130158275494975055382924290924962982327480010896910990083490667454171261048479640427453770447021279830697950231901743372085867498520642908181890468463717427885940710735686358093939161927011652890527831812024073312961345978691368275543773514749669912133735810103065420032834135900707618543634846427137604308025417930936307949332207819976443480285844759621375106157795611078321200688912586838715112796098680235823376361854666463852773088627594044342080447879953300625996681693205955926049203442137743739487705344913130273300868098991177129471702465420538551847624072820529966660124889786453096333717488141501498769010293374192550247994109504111105053916112000458430306008009615301200191330516739767552403408578838197402565276636696998513359741158332598401610786144459417573571065721562284422918334396674709707214950283635895509890981127754944569848242246521163754715488968911138547684459685072171853261103854266393038619881433894298411824338512311664178296330392773698429472055353387963885894740680058047426975333864974568179753665365612605338706589199573922064829248989847478191808112102961420748863145484744919445508872144858247604396565965182441880957166452481268176446327865890062733539842593684866410355384274277475990623963540493938513872557965361064104635088497268676565978387455606527611865854641009013554430435617373506352345992867429581359628624136162450542016258369830062332281253836689015587001584355242565716453218643108355027364450956515171727087782952092145341283408451388973530645476511465551012369360368009347651278119283828466805028389527080059155879004826441211577785470553953713815167176361529908187718627685612603995979655522269791907695623759327564218354687232944100769526279594772908046587513830537409963298654225972715646423167312850056839441722438834629627867533357777829871893745824116370156613113432904777957046189841173909640234044382778440767408065298992905846958728594879101148016844249529079720304566752398618152804002875012884551398991441352747561609439072612767657209508643518499753370662138615995284553013986390069064011984294785223210645153570855481509478412716132546600793543546173927451420721433444825324866164745735576125683949037635197304025823089746129643053559224554364704915664735061240000878568406097420308596092585679632365277206642094109895931969630278153261876761681390243180146985483863108821007226661621378326148483752555056660323404332164783864740911354534718131659644255651586370001223513939141917793094340918227666047820444030164398464204919743719448529496922009163664481149016527707320701113741734720560056236284283506401648482762130406759449969012014428110723296454930027584356219815650482577757207600265542496370754956553284027742114292695011501711425579192682010732745296865702872890341643895817375174593202561493698799849302807626867505337279117730422667060860189023412114342966466293295891744389691792554382019942527273460062297143445887247188741287173168566588971067394296034596482300474138699501794001734354817753722872863995110652657395483132915321574825030239856193128179885481502628924627527037221071829636533560983395943183924254875241136751327274744966791849651623360663338636801806319204636371050893289621496784634092725358356058054475629006662904924092952144272012801958368821954329076344033064766918012886430743912907698446298262538237264666711078715820436072030728818838780091084991102887116082306034094421394989614562880639627400346779541442955151329799076312780951624755653406156828546182321842013482200399732219777479689855371757225927183719559053487367417734590662323217618632015571177937775073890089114195582566097443814248530403728670346345953181357001097973806885280248075507366510703587951858744241525284147868877001274568211352695130843585794498838333905533647533715614366653162500542940103542746134857790889738497894120172196138130307342242634223750748286986186530510431515900844011120615292953971719494372277830509368061762545307664861822820653505724681988229574987095243395308331671872902717515037857621767346895342782804395937529667799454163160338015506621345016440198108126003886849530406402731344903678531436200684404448994328158270246399738691671057540400452084203879523341530737154456450604800238673893457466958937058437024463334535085842494268247871579796384797271781069455565320575791745309447113303956288891220527792186483548220001115182078792197898140608267754993931469173319011021607216035826817039145231539917435215687929175346734596513306878762915383715526041317150916512097775823300009382654940537990876661538903641725628939272246561599277281948252063662529765524857527359498951189560946113116006459643891764004151200028633707394647204464362881717872555950913483826958116345431039684501796065509569604366044794476459288507997814710895200709779255497884401592126657039696511708409938780098949879061324618217044021482565283278929098696270112392695714150961499361671047303368917050673568701781441827770731368560107521170356865880085068859768985993121294116319311710441893015366547369707817966716795309198121453185220421738531244488820317866203719738365208659414524809995975028032093031289207001412229200086398904847148101458911803939226006222064509725238377939925992426260176359619092743372750358518662309337812044972456744878958165034542094225577990994691226294759285171122625949373842817845484095528283231351033702456189400612426356441304072898826730402719552684412932820755899325468443451696157106238010369351603205120519403701395075399842351401757814899279993628157282214491541108869177407781062019512190683431334214972392855855876837716538531772506622424808295103122558880825309456255460230114505077271045886413029504698436550496792687474719228774338113745164065386172967819720902630164580401829226547628539158422358131732451295314553767152317989609345228828571590596119827234064409657370455391942161420174657649988353352794772162512764382702668085639592452704586046381553897519284650064220842061464952219262509726515698576503872456227917422389320840799435765633994372239421360810468931329555160278287885052720565838229032184132276659637707092664107590287269707717071804399169341685902548658744692521806724061015718622693323514267825736113498962553371773272898158427045630569584419639132247336803719425136934707761063405349548487799502996756678255499461471095211229953355993472290273436652149307718407377404309399855316381918470268043645452156661441925061956182288615404157787479241857583339977788619496838381427217611263991476966469731055396571062599914860116873226578444608133446547270661267215431484416512854712458370125881469768729554189233877187185957659873200878829538029996219751306185497382084353251124547897339620819595007460003582393608513676599955265569366459325588477153686605083746626243803230848081023432404632246566065089930345055839031457283525566121784163578443933700215142242756996119253724557014520820980451272687830829834701646127332990280659106174571789162164046679297143258008970689602227689004353398451136551486451610261788205638512811440590346899532404390918888570771060469163073201889054387528283974339906483575438729634885318622773823812451661697813421404097722061664498194326405005449940408839879734050099412235830133158581030943625279580114394660335593217193292938000648703042342828127800952097527932713992894852698970052929325775953496935909593181557374748660379465002381888019078696853536585507957337496311384509856917059053264763836015713064403788522613440568158327253392994446071067090261110507750227498512481514096099333570129606272329310729436819304754192701183499843914637543519419776755070606524442369446021703895477002765345598072372306338172483290125369116113957740619215150170131169901402646233816502009272042335580334896016055114671618223547624509144867407128049861110732936498326864845214614386847772444044455847728562953051290543339286064726310474939186759509226279567093802770073174886671951434595422877404616976770896828933357817655856670263354751683230667288394052292795536631874543508047531088540057833736005859638029123703232310614705058092008569364320259301926528374707039583623453331851394804399421740218569409399075721244409242526207486602130542960241658171804591549947263596852219128155167429922652342975735326775350852940031374668292649231937503382789892202843795407412014358496527532988273412043669512233327064211771447763786673853653749394881503226338044187208168365902896121248087523213157011780330530533558431822842164092156310944160741342515475086643986170555532632371325503950360681608623722212479016110749653350943236276520683701220490523951685764295922457757381017970309919578707257728835520511961389275867445501252212861547119273071900466635246557796139815843513699301791256181450559583942772796739807108223965155140717564086201114453674332193908436851611963094097004119105830844729502911588597570247658454436415524298077248467604481328820441853850731143546074554411633653047978994930397320947416754718589456697887047620930328251543746525321314032209775589288086440670080166108347925729988900970120214496328159110239775213144253724797641437073358166772165304166124009741030428121358093337849829552529859945732969654965350847968325154368292820633756573374040037751921493692938956159679245423196317262014118119644605656197086780963360818901254369146845163953766263257273927687645961727370728021286863679986923612604394056161308841616942379748812895481168302554022472031704134293170744011695824408144993340631654533413225620515255499759176390702530526910085898358519848690875969701564616798666617990905790195392811561953230151183943169501732275953933787202916506481999214360147971262092655447969965654699169550571787575490430072180248442601872357347543235533774807968830496781889112591985129984042228153645568677749458070720938409555770578712423362398459771512700669901138109973096009702986454147389999178054438934677826715826567869833629035107974549068824499730980092932582284564415844633547005015131282645419917339064846179615307312716372242096752496787453722380125349332033120723581630833380361845317042215571580103499031789875321676727671862663905045691529225961548198867480826048120684809396733931676989591285797729258273299545069796521525143893930558794502512173992963856731060926778690248286050914782619848625349292020478125121388270063513891271054186402452886271356872075261378880655308003094259352011020311898696149812358834206996897366282688801649855236326113683975069147066185249110581336490791333601371376364330135138689014544589389140724374827388700935202986357976388305759209502548857740373582398567584125456912498335469865797521112692505045399151377333081918586757795193005053188655081625860320484700361993770758554481643696823070827903615366076074314980066567158913655618221088991278190263308353585558365488623114197047071184508059791345972672383177039564729056292156499693880960749865000785534090692903545258473463019700122753715446347169331313600381143019050659536558903206968878637502739729347241028955847941974163666088506171423886535605771959895149332180455383932430830961012904185391273997998460100821655607490813050934194966848311148831476917516692804134123765304390318453385799816460182696558134353397631085107230088433614774001982231301870706092687412394089541098770197260587906737118975732457509211486427457696703095127250844006266460149450396911988812831606020965678068186285517763056952014431516819258392441337866407555892119970648380357690865796584853510398297721909252686015523011635650431586487360550296259253279661352549909088318761151404836408083839449734635377127264774169306009071278816920106423882149287949978367606157964582579874741575380523690231343633637555507074590521575029526624824014353624933636976342399725195515059189413554181907550359392756877874002629316113734398894964369964915836026105544388071983036534134457399693251722850415112428924146814835031945396887983068595913000504087992787223818175477123828045655539116984827039368431002870296899169757993319207771532966207903224522290705473727153628015554143001799830543195465592031503500985522319628812963769671537215362198206594519998397768248049028601892581801019850307613573962977188679965645603341874258116118390653451646765438991334431666045345752015526627319905488885007123052182271261891633440055202108845777044607026558734326832431813407906172063492114844630521757885338688896893943232241794262529408370634617819061801809104490354000827418896045257702182462335534932965864828720238816535221450766411129103115403848245283273564107649994847906263122698995439698690407291511262363294066740989576364635522629729181816107775352585833408018144100372479802966124659722506255716344031929471017478771935765950684640525886777952465498215999538129100825461292825080598811666637052700404104924590812156188521150360612019481420118764669500476600489853878869643344298290690782985637718417283565260043296850578341523986751365210658677710241781985500011597461476114238638148655070386046875560725479196719673815778368985999109186084681478871020198345904336836546929067982547546665104777165627185250989347114717207831839278552004163571517222884510101720689436576890760207258839891723539178307000267586606183019133242705483253595815907506568175862058654932627527146438518335223699521632603523310799243788412866720351746790485543001119937671122781947179993159211376543640277344286158132659677417335334768687376757726730598764650435678948950805313014718893956684685149725593818231186267333693021723661137471730769588764895017904062782222971215743127341419479859258748507814078340929307682831210013389641315748652736895858847228613766681769383384224965250047340688428578558366610679834017266167143361746395942193524434916782335599814841233061249912318868933202645834795935027684042328415824010232962026019960310748044035857163121475065568193420374737546339513318888487818097588596382072718809764625573295844579633089815838358073248311054990172509028444557398298960042408020649318165368695681883405700330204299733226122730999032218127693038642359347093986681463475169777928254624822799591489429159424266643467629253430771430630847019862803320772001974010981951993973167939549299232786069691805096510896328942179533729419010926619901726234954479156890312388490698825671581913120833212212761601943560683231078180349070234903079756348989493630327716175447406114211873622556527218599291013013259708784422801692794447468158324443126633004057071561304842788593277562304330677213460645067099753613527849242292996259382875598880546184599808293021635388924804691149462003892682324617811430890555137203146227103324862604031322897612633768058291390014416247919160232630106183074229172022735549023605846081153652818424748764285769889556971406757247367672185976863133951281029841556564038353669075370031239220563667688523815252843456563807040958847756424971890336396496966767275828484375044829335690763849212907189111394244559049863668264883310130610777462275963191742056312805842667891574723561208097896640125614581495883947349191499783758324016725948783787447709014080921624348359969354158456674052940455198875427013360600330236603634328891786513287326341154276580170150780105469176279435846049932466028270651147779004608296846259831791613891450110094507468222329664172507194205471898964198943554882434832823448774429981241078280665932568378073757775248430227549465051778994132859296033878398237787762152080155431015861453017674209952224757928978664647305717203359565619458594608581293998721369232418702278479992909781106823239818134585629428036028476126629965390401000504505497895317104499260594563843293972260209725309071822090063317991864952625173575761929581794824688202899343032512084154562882971762023266241385540937664542590445967778292983530741600617397063492169372018419989008140788889779988290159295623237557665207047820524298755216316596514115078220569969493952464473488891772842807289938582764161754325647636750299671667865836993455600400244839188536649598045018022727019345357636864771780118569291885141784967748719266470699090397372854519389708476280728994725013976790615294282067149808698376667109379930715955158464273301730888103227461122966974055353815522776751622584605614687885632060499964341361434359349347991086927284765498628322503986206161284594825085552702236777356282274238807264140852143239732092910345408678339942491656577491892883220620766254130677798524108868838417616756966132183489965579207651533592711778011504700216732654680987287795526233148175787588297451707005111816363056322931749204844108320182335211797765478740783130747085420869353244838655373488074308963400176456843709495311880090963625071225607198216028652587963028600603103760176113804872973530442648699863896023843173204620154041985316341755761908637855053898718346806956271869225117583900044181431588116045113817654928815581681221496522122546366422815543299432962255258217306642345740353341438968043956649966976949789557310109388889473152866779082381488999080158563740484742254613226979382745991410515826262082178110358744262276408729243728101391338610596692061166909213457919668028223075243734310223714199514317092247409495187433583609208007335026659952293713117285691631327364347148815187292586314275846028203857892880635697792298439866394064844591060984618172486945242781199829938254641009155085352951356496975786449210554293647346935523735275845802855966587349625930959195758722227193959785825149524580734998483056662307325185648848421709355675985153642994352644467577013294720502248419868366094306370774271325877020273333982901203003846473479320874054507211484742675540683752927058245331468544288054753039082882475529523546014739082980236093963829945544575143534080428018657210280716526913564870184401428234181198247901631899414597016097219776757099534641075959061949416112141804971009555163530871725066662917842262098667695684972449949270317833708275064270749182055120881992016625631586872676652277242430602070208584730468704508151773783340973822162681853667475335573663925301781788968063204049805645426130263658701883648671395870270027596270558073831194861554441543507720321870580040681709823913554180375708418086731954045357735822537686024907500507902522361607758685493568032524978871914781432137101137533871327417707667919814026929881346410194557100072302728792583118997151997543277159634771389732040935242500808244744321040260284202923558594552725058764468174529381266736277033289865951603776266929511836034233392198718295529704714801837605826075505606215594307532071218322751678467153127310205890019879069444517622295361127541927678438582020703486115203427813150252095566053399463665542229497381429779106075783654996246479967099306810167831078804695245577659267617793818598286191630273898311587195901590672781252762160703710465012723339248233169949486005391613122639692929773783473595909920177984204164037709952585189405013908191251577190424450985991687961886688001449839550199254262562062069012975126068795601151930044657397462678204798577733687117102881833705667756501046538893760269361914435304140288133252333482949599283371451746626231704681998946694210724227805093270772383734275796715622124015373058002161558781736871072279436820544814974231514390719881593911968733312301995639788893533682325827596642022491872932002264481525551898689407524729781037694199017783693558468337590813012028470255459729956653882466438285265631303341464642665523034488212481419974289716904488942313503903943723289732019976753399336317830532472394541905149438935339098425658988725893098863557000193987079295319024537888581391354532783725714915946868732007671487428574082158523482922405456941315681747289317235956655744321056521329824239238026539177370176365755611910148324039222341248131906233087486635853294984550563420395434071714621054160883793071212528848075685235784456054308308845991488980329729626634963285852632207712533067931135743866793495427446642195647273332666923214570265180821287950285297442730608676746728595081658154783742059372493177163894046768908830041345769900548330177370776353698539303273378921040550032818205136799261982747700256813677468962811265639648226810304517324239384599368592931030611281919314764614458669564505281332219977458682187290415336884688006085170838430515433080379059781182675980944872487930145831053789629429718286156437796736120429278242654056706304454173370378911983024360670381623425310530934033082137682983058106150208449395460471877787060120721947555718675454465389408102969493938559056164818984091523990177830624831761084154414627404389538985438440903806317451174674386444882671015138460156130429309241252251075953467960211761400726978903854559979556682747393846514287350393091921411734461259113643536890922539207436598217064508242814094264429613201749281466384086997757069887368538437754971572552672430873699394898158120721142895805784985652249043907271650981284696896622590119901245988708325697521015803062088629613683592121372793437686186682945030112473497836219315703656678843806764968256329438776751953715608431352704527640470665726004575234044964353872751810061434660131465522764968716950573746703372964192023839134006023594404028661611825684875515470065294538451856004232526289963604724725813334370049130358044843805302275312373697845557457389418483023410541516876055130223660912795976549931333503460410378434423722945768173323792397823151813613116033491388283348503742818825142652807699655571427592211610721207027839451386316168187790001459297001661818039598134204111378442937450151034716946119284356176433662690551826319202430585290538692159927283553975407466727590781242128582691286431518922663121209460307643892970623271633140438871872245065899867780417577839560009838217661995067462832485128697636696933165461911423573278725468149682483747777024260906665010630853657678478207681352339784232268301701016872395452810094242372049739651453232957007709426031237883953532772220974774960802624504089126803289523140856862776390970108733124765543328177622152445525249890075342395789009299416670623143568199670471196839651120537412595342266005524616230014032276163003902806111257371258968275792062933750036446826691360902416686891707304821208906597977171692206273668185196067579999136969955117053693493269828742833863967123134897481495208963841305659268268107370007600158492011545726462496855447399992352163756071439490175182709972831824013264978692359966828080914281662438082335605811157763463699565255622708583408756007004107132486075141629278931073054393890153836006639575238598897785402366099165750694415403176173303893300462528793743759008142401622997498913170942389658900771456747972940065587927692331516986581592458566927250457659849158454661893475656598156676311439978635916726416184807647027547203589110764567594829640837595535451847045675482129368377284130033483336184532241660068306382285152260841206124824639193344571939032179031298220372100234699980787667604795508985473770463639532267226078155937100737045425134071802198929612701139237806577531445099918954639766877130150223920811069329501160520172282656311452423336336549460171348472532225476646850452268108092372075991586297177987604355096982538654782013694294350163831254374829957891881178236258570333524824808069180387974375767664803071258056085774886430530770442101672533565938503366566125792172906274362331800778626841813772836152779623710134841955762663488016929314181017069872776629557383702822435416847331863197292867763757935658282184889193186086754878115924149175419227054741875936540665122843417529027194343884404265163208022192253869636188789920502462590382489780573309467717621273968575139354030941064141139732560477176475136306992640161890693342478765688366369509419819764141979551986567837526941693524475934905787772132717693832000677259670005345695803790917167978781917357541345231701122920332326948249112769043952565780203754686411603682403391862263421668754883622073623319764976300611904028653635359063803124331064988779204983232118228195213756957390610823909010185846475951508858729721818413675258544365655079427958250107137918713495769917323177568996529300981653613523941687411108871000216062182903911892676784324203803532368884938767272914471987307496123576191276761755260770990147799284703831850385708651028395358559148041924496913256172502699598846685915457984721943370849831258646002036044556396839397763672507753922692401696659538613185221262435536110350400639920627880341140660070893171214772647276843915004682752021661381506208182044353081423364957872201129813828264728261370560344808939351446242107242852541132555048051655009498166913463736980255621983057757223422300246682545287215210481598002080149966447341312009246597796611909503531732904352778361966559927265468492532471638998011824738563093201247549495766023735046509676736994906438639785212003254526260376963731462064722365933774462057562565938040812032963882221575148181362916118352020163423387734306322040252581912180232550589562347750608663263882448328245776810439994697081655861048364221101829487045719364442031964985722668732209305249774110390349621152561749549776577795460361087701400619435591504379845160299754996495578024000972164804958197141160923789424164939139687467312009848089438809490131872619759719474766655954748087639801986983659377700743224952043461672406909785234633170189521837325400075680532095089414909067373234558554728460516583859045918811548533788934431366442952627144422232281624403252289516666102086103630615271317065357249953051259618771030533518743453114704869228282439569514750672330394036802451703568043949133556429302410729886579705247843104212333563350919607618929508742464512410173266510754900262087922316108152491079791677935923448143396986772236733031678693844312906042608776751004078934471139228409829511343677903901221554097842375364980894666970238683568173578971374427789950035612010062258735855670139982984269992664047633289908443500740310223855060009454618417448840172592629378573578272497661632107500719841763458643385464629299885757237785818377863534965112926577999471245619882039883448443102860229796939580161265894846811732323430649428119500930188042780753358670879343516327116732219481675629969261013520714152295733458824225819217455009320620093725876412266166787526439988301245410791195769689473471824209715835134773760371152100107233773217098825507600617709117605742391087457672092103112059306634945487282951237889549510050026161216992642342916226041454557538524155245820393682691523353636377162565916095361116532309376638980652782483079309507652818364670984338220045111154779069464109404831054404877880812784029561688963105497204738606928978645753079266623428707217833319715791946583204876622293620888469808980342764924984335865324490557347038489266683338835807450890305002486196225971088399101944641058021189600291112152706203702775495450409320193988160519005046484115436218289126211097602617144380474689438326232335460641254618669135746942748671822727408143743226177846202638570443758848150843129425493411108055892142599294232366582637684426674955950926216602240146533447486742127915214308277077131688754415843376085849575730713085396456865188655317502047021617836692506474608712803846706961748646648788640849496401889041510466235127984674539003678959605662519251622945798344965399644487274670500285130740199691352877210635026928717277679735257668806721061984378197676966957722768135097958913423569510170733129540982433921352658910805453285842147190502306921482716734543822925385957461272372805825303230512781535277929356327446724361266263277370493637408996354132955848229418530865865663703039793994781214694570833780558484753760571296918815583385951832972199990119634403001473959631024445621940238601148703814905891651455477571480985561458665661432850083534010139927750613897471005174561369590167418796102736569209413923186351603873618250212032947410174770241218013968253440726837081609514509141966520642551619212560769225447600238874752117761611731191459550504446463913337206339944780840528617864034567670822126536287190971394053829284960725759921514628346676986274153622290761616478786149420526843518219423172972905130224701841190262005444284708552259069143556983768608534368056798722928853950077692931823743236650097597776516832117103381644479366780212264982741462942985732638497982069657949701214189113547612785479117498483277089275255667674152509580991646644617951284060687397565310051251806083340540845832299955780335667960685278569791970033754884615303370021037419749279945484409708822938249073994859401806429116600040220936049920873783785115045297958195809946785068410864945996924188072454550545498859895353341234122667412043301915564385930478214837525919396807170197238446896771780926133189847401699280819322565089589239446970045689814292583040554249655635516644608906319220552552745289979443516774322330401629231018707922825709184585845377196944426064448587507291511690422334867325598622425394822139269511491136191985406537395297390403814045722752034379804095973242393406451299684199243914446802339601143629734956259164999197729341250341488728623889843869698990548235979159393138425390303046904069924260748513749139660744373336261415786388774137923651656851364869690151962062821298981162736257289195611716139052495437309632043887631686771509524558315806465030374404802113973898259796635932591448889749996014387844236714417954024050252277488453040006180513628109482308147697500455995364872004088887015067390146722051146066734377000433276921492968691621961053976061395915103859177607795537547922330752508190139602829900339023530617313675348640943974697214736552441280236025539550917226015887276939656431304007495447664752127492344819719050243902609884736132535757379571587687295965325063483252446318838779106050061032406784240880201589861742076795287346643010719020873839969482127624793769011367035692650298234310230142737921737535628719299491019334861675810417737175618660112715173190528275753458365742373586932758786471193047890578670452012413319211293042321225040959409770948140771859835012974169264224468260162186262939822030703145635058702830202181975150169525792847460332707499545448805145503094456533570506117709292419194489893186953446678616682873988675944874846703929131441002398980378755830814292255705382612161799197277876894606983107692588072415517457908688260243599863074259403317900477013075734610159871391226129680397316024705281165230446670938830933889541098754066946925389276231729649983266191473147786662387456471740446276699865036264598206264602087091657154575569149304300476287103858773066434756360467022025015853550995753361494268625458212575534664228194895678268673629956386543088976343757873172458877198322099337530226260697679087328693707847865267932262389070309431169271982290054102081129341660631408505752512404260249092525727598740842986369847137657953469379639293446162570806944096256169340034398648428291964085832967460926785833386538284733968425622469447298922558832390289194179105181047587107825369001219124920699127261266285015625916902743166420255392901266897176819402986970137684720883571044272491458651235101904798845743099869437758691012775449748514746048430550469558518678104742345819899347486327222111117670509999388071445214177104755087272784317035849049441867201345707219279181594547857744765256230898688921848618422451112044769485592955727561027322378245651163953116607408123340205635143365212074716869877165137493834241450864528708803746811807651314686954870755444137436225379420552101632976718581778484572946527468273246242070811142070198990445498458452639579402074512909608422409686804067064720692947087413473194846482706546505131654223939129424259571760485950385562402010003612914619498670914254436608699426693843520295692175117098001961783183844504147404127142413948578996528528241609214965864663263652169765299064411494993211471644847607295864046290685933746541362091665581074411197442920674268639450145087199288353192792761203632025784892932255766064250206154881112595111598206989391566350831158200948941944553585594686971062644927112366745443401542437901596074634675064107653688385265184746208226964335754204792804536352129742799983570908869336065641233496574141550048572989424553973024587309885281592041255445926921539254226189668826906760191017576296023426105422363218334989779314857408228748189040100189450375828958905599218114862734520166200038629838399603112395988103017011607348073616789006782838874029346365777149988563414374144399582992095664652079135956076057564260721114050858021926447251584693800455136023502194086773534117222876208783602573673766117219049399125362484330479045663405037914475707964733610298476868705375213915129479814149612828743620136547831892415158806383809530131031263524174186445820391075867023596511600013793295767240095526304230175839956777781579280301922528466328754305965510104300854440125201006145432541813824046990658220331980680817668417310385447111538348962167479760681060401963236458882843355734104109805393034058820322673151123921207127460618502977484317442560967588107047250027845736181500499019074119343402611580160004581682695313487101244612677877024277848290887736968066853989446330768738079400161121387831557323748019452395302686764539096803126765764170646532835193171594335499410718397622773790527573482682541501318504316491183128903187530809784751414308021999050134855730791737372001861266950155259713372040601114919835291237155449914575448052346202913954438437150277986522032763912040246851327429771497000432334507445756354768264256937852306874251967319350214326364254454941686126071440222374129666670213411636578518241963115243715451390661650130116403621103516071094815274759271988651820229023004365742757448678004617927865343692333932040807357296190604490191355904115448225996509710586058258074623920564470492155131568587714980987245120394452551212491672770030472349183840780261827085638288249791895943392127306903507555520508608358873378330060384793566375713246491675461629687548387096104235325892466744540994027144581026306145562471586883720808703227657016964465857130316563447104968687824603151613023805751722847421996941991066127248123755148700964841313381884171439687866017489069242652122692208776998424452007560288858364917472888500597236253927100461688513858684349681407835913549555087585823455436976619371302315746533966993347147517346991142188575634982159473549740569484575409537813371636592114761048506509843031433433129507433034491962475068836899910245591825244345210356725204864924559227976774868438433455420349937662768698003261267410564748636327931719322843994323415399423804970183206976206539847837548498471847935468197759151998488266423174463792762485120180097584426517737359500859419698341972333637430686038263749107460214039365153773891881277993034321718630287126301820765579622840145334552931867659511148533273785064682236916072190134528887044381072070684398712801184109448571839568635430926450696480870498047944479684444530867660859956830415802743791714725050813478013737553479782244698846516411441639375233056143963104811504352087626787115520658052184701260494289992726831512516213672868668880139885303518943941071584245163330595069990667961513964383074492993962768784497795314746564536464933289234797247496968075983386991639064412268842746309020567978924084469738172593656176471071687130674751320266705438254803082093246982944231570796774813943248464101208633599402267584986938594195856562394708892859959583375340349716160565312219632162848977409547163558590598352242367196253929457130658777418915990731968844125806287497842065610187213671170811672139855744868204519751749577902921838376017310964902311591975339472271700426805681880584158858291581746125741270817426577889235997963201011540622070421329377456726973739030113533126154020626816866902123936112409246564848324801391180776323006886668896440950679634084544851626611791432584361736178530308972973590203058180552282346990502410226720810293934408040017832896276678119272128388132499903364110363356393295479316538673250189637180319628624052047204972969572564794332281518034022389302491768527338654122657302716822793354008514798786523665956376474660815117588365747783552796448607938918766756003688483289709661032491401727493860663752348354874151845414310935635939439891859717221699237167525253511291176872875342639015029304500864118334487691520923690507514485549004153877917629585764731400808969130786954373105729976592585586750110909148072698719609419266342069743809646101521251732405482871453226300768598219270047808767795513560230483561879260581418798306416252987680073835130770916939884559466168112512112759269930873336005197047816993227368811858782428343533374879950453775482687726145807058835723053530290781890588645896494675921524330861422969309316937997551529081486543603605731734478142933687760571113593169315145522626814370390208163050069606285043097795326454558458605712344534301259008288096182855734493574087836146325317104778606529828183620481352752094277712713943236938381943202051669611480190292006253054820376274329838745530951466701660784624645488327097565245727072346964690529259308812689073385016903006725931819640433709271479363055201908051767135418244476428269375697601845608123476851228735803991149767078478224116383616385927955522600726978750512528200579536506638831934458328138807307820080536487789690888114055005054129458719506493961372330365164837913643852281229978515076719505688888371027753254290041478199680832103055511304716992708300394203266082606553421196070111639473709019091789195603644655822732839361368822908757829303496725273458545643919442456810665102801820609973903940070712034271926778087845338777661274563724207356199472887952383537021786513757202525168501299005019728202428346185828183349634089515479760472601791977638937690060577476802037211731598826772228084134999941578683185434599312509921942546461953543683160684569355772625276807776848681553687091946281216020354583330364851572610104877271668198123674349331540781773507573687619721229234912399184316546176589084303339225066457071942132852757986978141699164587029779639774572987604927869064659554289068612523082590873224046795471465400344368841992562431951864701853942723278686626285189353070678132228932645511244300770865651287109956511356175841907407806600003079366434532509516029754887347684083980802282342018108117494638119307523477407904223664802437154867370644077758185111864899771687551392227686953630882595450178783012939545980072888746770775396870876577137071298331039712804460017191266528437528472993752282849115075198046758210771978021320007799940496681927722620845585667838339017373216534706799958717501013295640504456999271962185771875548588625353179411433907069579373468666871087352417926176983956734434099493571278274729728044927530705136412017239120987278726596928360135292563697699817730147046340187352534620916424319001014967555044861100201988394302580533271582713916440222090158524940752661698146235767964318221930932323938489722154438746876620329525029681801561197967290170919693320761062886172049630117639870118350498790979356244519788273699006666704278646264660869624074844078815968441396751522642146568070039173564824286406364321387668036202832977620285671630682087622083192467274299724484842708374976582622027846746708643260789995987002129935937307000514101166349610346240041147407089934150903674009602363585514573235878179694658682532276157727386431560447887086392018113819557776881590103597475529294973950748724482845508176468625181913109164963840201329192781732546247474909353029055474816962515611113734197722601705051091072083229061237075137475501918601567945679433251879829725564126306629383629530987966120349371497681158328965048332708322912009298730268704503104535957275108085314308599913730576305348216810951158361290278794928861136505592398259971169124810716662886413213009720224047311483830107799420820453467789087395789968904656169526405230073532164432502042661670608778113515928297578699163060838786090698683511249145289101545572456612217391356118262509424281264047353599312266329180307019981043824485290724373303997179181825281843319170627529909231659800709505051743548708107288845511712439438274240685553810530306622280741120628233938095927035758734299029539597005188008013943256885628369443203931969404057352727677839561680371671920476111060453752414463931486369074097201292718118391191752747659977715527935980846458917964390803301215908867707630256450612195093055162094585503185821576418662426058913652171001825383906980021082927008401613009042780694820928600540723056385379344363596810068055215571358594412915109018040085259145486563196892506407800059574761049601404242062429678283911301511801469831320783636464133774203565879906569354052995287149506757299287563488786400614340067775884424126951054363473014872817506350797441174747434126238972490402964409412508467191816158511990888589427200664824957592657834009789966516948862713438491042878190978008634756293891683472324051507239179304442507281420486317476807199286494408874406377625658094342280332601217179637459572466827737774009982429848292250410976569346617995288790180252798160769985752895507041878297219287973426767109970784514716141946403213688925850806026761647582979724235208571002861289485379228826083939087592090451899107622142273122722975638386367574183113517313934894694522758193667382478034276421370306340710352997218811121799474244403530004789975828663349001683101652338602466286208517647350698888858864183787002799499451352141813679937859432109962181844955240865498689124487084618643209322489345449660052278471478311922450208089598299163139281954852831758963257970232795343517656480306444052575183195072048168158805276241176975264016647354106538775347240389203956872397450422397647300479785097496898706381738378301546359487103490665601850654086395822466647000316953911627887110581286206547273227671095160895371254498935477126710693133252550567410653858212591573335884426377527826338645738913914073802438648638017886947630858525523912293790221843145661338345063113521446709423745905419824663743044860568925123221742959818676473813902555106648686849326214023174966313966570328182536162498604548003395209001129461264279717124181409133965675190765838117153601728252138791352216233144713915726752527036825473726902240218047278228248642324029922274380900223172561101802031460155021845473726590639610859176096850747993893267102841502464365163113932262938232981308257453574323580306085765302362978229011074646430513050891374569226939045426304550414621568520542018940089513019166834485768046394959589003843100288795034508256569832736566859605767405291751212195527593177548643328847141943737539400474433107457542228442320741622310135534335932854917961290568629441729290869879646782980030367498312484300829455165964649492123219417532156540882105160111422669671181936783532971138045503414872699705603985608976191126916753068247536898284911216993990400443062486905350747835865993905417859942985249799762459858521537009880259824917273247361136320647500044526902618841544118105780513059717491656093566228688441477064264428416243178103439019498704696728279949532687677493100166924575072612232576922453778999955162781139117718298456683175326838491142773316820659364792569680159443043808115144036544468889987051934521729825137241123949585458237090902857373966820207961897363894329508883853629408062930018922554516341323459187686181675836309210573213778711192362294935626562792277184430814162385564379198050813350507613632515134436552012917389372640825284767052377194941588296573284535117153741124106978560130770808742592202382697080097948915700185826216761471297168582751846015047246825186482815226181570627889138741569973087655510897154851492376203515861966917812209305500896304861965681401403129715732367096725435072923491651585123529297911731239549491756027215447739984864420139592408808442908209730048918771580909264720126680110084087728305837805921009001629357796308625583284102462854695929346162717634253398900965025613626646383550663307067865668933763968553267753106853097459523293344545654489027997749919848526625438583293723735394175126353807532490462821882777069580466095458092478065262138050561339826986598323811893899087117657195290111788246420797544515088495956079249649695515410936328909629221490886508379867278632012183989063113896279390460613747555714277227767384899872691524088015287452478519589478241755533493039956772661271595611064051547595823037819598890127588608546730822049861897694549391497405677677166207978492412441860168890110520310281372283205630620049508577677197462035441836566404399345751643565571435185567452993803829000505103143357264402047328983239661309331138604384706827919778970392319709214157476917615512313380952587264613198005164763868107159175478354608645985779483406892587883085537053703344500862042275953245277603233691028025343262274799983057530045019254918946763689789135907052430131241262645076036791961249997842245131532446604630732083056741616714950039813490489294439314725601764469953484835183238508058577113961337881957173169856258653245994144668973831715731813598055924781243602222131404294480940781108035143860286647727120546570646675380400914812447249494931781369524129242298779386879678226773665060733968153052772943825255792749790793240562276605728169863950838395427147690822232589658571647803866984700085774158315680226355254049693350810583814215188570998564720579040587522818715464060143968377731761725372682666074597980902390751296094130292920646597409405885117521894638971674557975716091079921572646785121967624473349805898162148153457315567747100773865459809310038916182942051460323069285379237223019883672154140116084857255413745904497514176366298629552566075332370314342048438817960024239269077344229668293406005272123628793607900698832744355673165046120069338669487845022601384426252946156956956921176810920877256201717344701567580095038685320315439655740043015548496543927012408551276541194787871460388029526962425227876736003777027532139361183124596363842262976628844171624401820145213062984369586610322404300679265427524722023189726249168985421565155737889030249667470946141151219965952795534899066376071592775538166924011978773808406274688430561535749244577478013217790986996117459806413546794698060863024951830734664129963195796335393125691570139111794653019514774295183785916818166898981400247486623870846970482122866690008472463295751220317593370149701852990709625326932166998072939728612999909988263222180989056207563579228853966758962818851572228357856725612893810382261323052476060169326539190996995254705036165620200100015287804092556022943953500507244634871746584921024052838276489185625482678241647249534751696446380442624713547895172681004354056147003991919234442215370273150588931306128667672977941961768848832293486694101737599686780176777497033911926570405681595285481325966107516881915627059232867787047043765498432158034682967688344009967126420554510102129101536368699429003451619444297716211283082754232394406073730266540514657579442605523565761716728321158204921977598190732203887099461416814784099294537370877439672350058707229699499511627650815773798812677824407292252667556327548595599816134067322706831998895250300127141072324483432353777567949888629960870949284903947968705796148963468320294110277434158106362562084214364813447357764897139340445631257119087676183082787257277568870239687421028733850906440852868146912552245828655181227596006136110526538819154584523629001901735311035730522440283230302833249238660765335621462216393768510679451790599139838814504020261535116283267029502282049379270346722321313078601589965871781853633886693218841299394393870863935103374662428411371012575960387118171030961204576178876812145040812904005425785745805589167726930916118096229890346218809215407798758141498441294793172113005092803222867484439978141126718333076954227302993126743078616832504093493697406983769119320549694146406883063491130303545784734164634792481969842233490805337731984766833055534320000180281597219654666328166621413868993842600461896213556991517308934429447590575160141080729423655302728553760937627668062684025909993035486057911213374301737047800776079465601745598779309985970456530298054508142366561330000993531613238391820473825502693753272599668794484644026475092704987940877833065762890662497872948013190386044603513491912385376608077290118047179023988850044506248672140126726086490995531730016521877939361403514800853488378663487468869920851323554948571918374711952182870508891694494924276695804213973918478866824460879678037841184772875605591047713032249267183897564303145031608608699871428836903936018352773937010950734558204322242138768470879814133795788999599737157010102390120525314721057421609139150800248290314465889864794367278755442776406994129733647285657285966387230439491699462544433109635826604387789616893335303937743462084590452229319659225116609758327601084828363125660817512221262845460318399471723043832744449378701949302294843755832998381564589980816074841961184783711951884643021589499192449786769684221861566485799483281650742204401848306485816931408190736096683427839046022508984793358808825316679487121714407775178613946738260980728461064387922285298292306037294878667602522961218933959242093464437115614495683887502394401817254342193194004123158859226191123089078108905983730127468975735225117192310637934374077225229467762207477651017960299323378084656193382642514039607610749144895638887621817672881294242642188689409536876295212410759356989411079087057104700657587362431498671853968725445600275485130898279533396005924621020159366962354221870795891846848522467905693575953212592257699998470631909780570341103079203671554018741862373310177089098301595312765030509193366406947891343497316455173201644685880595439231236523763159373458969830635207919538959194102047691312614931136504123867509434832281397508330352494512552020211024747474552166666836121784348879688406705180913073827877420205360966747290682482601018113171479152977826726187663126054183489581588288919344426071840138458054874805297438563108742266066227848334948253405867606617835061794022203156337728336536999728109966271549373375522436627976912505953714244133633933561877171529404892545473096646179658936051538141852015993244204384261467324286532065343684563493398797650732174554220954980446204004192144605811740616105904556579430590263098104134573407550583894878512985254985552004661449997855362604188193319765082779130578857168768435891080140508967224868887392205649409953148883790376370244992565130166472391749813809198102190259513588557487861366870406248572862250377636012435197534758462937901495827881004947650059057656176009826586590728653569211332447193937017237253492692338501083224566618962500911013597286445272668789461238470829533066620967283397225747690993466405767819369045613090323976909730629902525324782900021915036333612184015876381373790665429428378400037136273836578454605431852506735513157082045433719514779495718421752905970232759302130620682701093092398104113436605771282652087156858189032779062764503889987596056423668883156025186122770338188407624435083590842246234239354196618786506075124418714202355248383383702078212742321793035547134603369203527831929127478032174957158144541940522000146000450918658402674281482955384078344212050149975334343894683840909272181758041630579795565872902128947660351073739890757444584203867437864173254489559063314923308939644472025399893673314224693758037584726634831704804267211323085556220816831075128121582230072991178304434824160874083777886564160289856774575528007981309959747722734130532566543495578208190182007635396991839814701072434944854099011561832247142873252166301249740476437070090811283200030357580635511412410648737984613174746577162850964559732526485743001681553201164148365407724744129690449314951922468958208849101609647541491665127591214393923651008219110232768039917727593891198781218554212338884290177536729840087321752348098236059049207187181596804916442654901866556835560381704252936516583331638166570069603219880044353945184383043658697614396730941841307619782836841289784591412817425902798510996667241484896010653485374923947697192081129231122773752178739908916262486656892467297718144385118507827633010814031823686205026300882522158380188452037217662220331604017570193507796868925841101815032426971110730488854361565878673995981479396601525020389133608518524400790960769743240302987809940190012057403774941179435009586779475821634984316012787939351095416461160268856610071249101085390403089581997715561422481112762703602665572787423815112722259709069181420754825075569828822213661589326806245838235469861636435282406687493199755366217350731171181768917740882940858803350442748010584169597640910421256460215004221787602764267714222762281244926362119403359074430744428790690679754662392510652128902272515857516772579198953110787192968210369282866543229506320747132110724384892699132173018128129506843251772684186933165871998760591718335614887446866406116090695073838800142808879094728884729602723476067189642287631359157702642095377814055076471231194155932977816951084684340346653204524619616680561117188909804776124217473309214760087493488008404328344059802188881591449999398561985348763263162515751859602176801894818174783831970267873135424139771393005608207107161794070947499175550376365889638890915067399198379230390779740686887335957583522211106706900017054399649700478531783541490234971220408969077708018647897554909658032361201429905698207163328339685292475180742365534470748214074688055072632089506362845585614949035983480531920213916859153318864742787691816898410743429909372414557738825644408556370465669269084549868064594630881983010682489640531792348379752364879532117923523052054839706326535351233859766191180381906021626917673571414866614916530602577501722819674307256115988156946650566300566464157795400315334756862425230562158492918247290068436349680337900755924564457762477971217964336026956826745965431096182098960253996198597512802281446722269461837742770817320039901527119471304260300873422904399076687124996555777978701623306766692848881043930607448564780677604231975228813065984556743343392753957148759783354733483542076545986076734927322272630083242986057412656445263687813993089101432320354054400192213156516984629912391671813050257804026786391109278763154255431657710059107025561577528553130658549230387304909790076431291798349102451848248049145428065125508709348378450455947272231092237522115699293966828082581270701865738089570575128975947138329903682398264998011191409825990679111102815127133267267876581410672940978472222315566547543961066935878765718882011340869330876201789297954539042808644780417149790251125822526962783776870485467211941857781813597583860357924389289512871874637015043475152204746766916550990906143838110523172498555774206696609932801241372002765888192586010652189273681688225589033419745876728657367638209586281244640097788771377440520727964886489684830286152965522712920507024847506328726985269302702038791991642549146253723683407111993384498969502858551863208008942756747314269186113597158569913782691763235379807259489658665871006143982700694373432192878930306017001132596611861864930806732587190489584501386140499274196799560955759148140534809798805257798627536599141763801094219370559810361652865493428843287657985900968198422999763399591229274081749950757107448839378999052571361846604114679613283173301470348963629678147245557009537950037381273839286450601164407484675890695452678526557930086768786341157088068196245288427431979261582845044302583758350969184544883831893065879645197262850366418608755692147220139888600048917812896181923401034015826824130686624208856596809076476590455001826909164497642145509869619841732510668165769586079547277302079562428357602022361073405059485359317232162666845945986429041889634330016915168546097371151887005002396751825901380507172719159951518832401071718064072451167075919869257134521555280835269305229827380611417193978634325595445988129480775421620600229900255776085437504122480328885966520095808501575995635875114864662792006185779677265773589406515732754893624886513259857571239202075660506659883182268306670983298774685750470338557083019521419604257262038439219495985554630255405631984305362832679975187442281057504815787853270025416398314548552163239630014014901968551848893907822646813011660439306125115454189504864242020893275485842221606796815422874755170950786630516233949547552869129187342035021725759282159937208838751381860697922259415912796660584460120893057492634574927551604650149750489626878793730739425416839586450132064494586276421740449080128371814080338843635677055474953766623465431028235360251666799451368981661802606116875419798289076059537125984824377681616793259366643520392537532840769051679610667088051684095189596883839192570974930447041974727894581261220458121374269615702838310354905531828442449615122337078502683127221573784151429004407157886792495763306102048699660606539310451256934178824214579743806925084987039512890900485130594828846696987844683699307747132681809402984546450417733218559671312858455221429644258778997204504676449061411289588251540779128766919437367075003595835249546738655518996841610804298955188112259740076960379937813021391309340884545113911897414626532032305965179679694721882264630473818438668490901033203402089360472044383026418714232712378180546942297586995018657761316165400698569157539113379830605702030357735728106479740982062980395894495342857054221049820310296829908963090009043619438770949134634017693437884339054252522568831741992433196266551389789122500920453651763497576488950449793543877143375288931932282914502226503320616324630464503080551718563491646372280779218035113746568092160675373759553513446937044351889460873905666713834452286238721401043397511539801690153801289005260799792335206956375335449885643079143408043420356488019741479330184844140977484706381731869205148308711991908361851623288054478173278821373037080662583640675481811814815244288555319382725939119597589350533097575679860700273023663283983349236427695940468521987935002558146714377868708859615942112173541158707591090038808954647060273865211570797436607405533458424480419981733634993359971115358760845424188048834538246803102919357207332356151453053776873611343780359142672143163887604157102916172440207531944896885414592530378281589581094642413710519309149087263032539380118640210369052065619633635020760985453514145053265467511225817427412524226678038909092435695888870463274958852335674843962793363972393734947509975976217741360140323060149189406075413608985925970619318301488827529280549557534549549618137267844292645132928512929809264123501717602832657092560667025263392986016885518735946175003034859587181085478792594222852851528365993829729851014337252440718594989896130192010050062569640282781604810333701742529354521578173735640861032901697903281401887409427091912503881743717746579568610198994181950045286979680132193531753560763395749202354512912852730892962577315147647315642008756865596903243266514788552809010626007824086176289032168693658757224124117986281905381415383260472873602218659069084103311312099708302819380348369177103186929854045572585145307607575178435516896083181462972500664401186364225880959783530912906283439543852849899945241682068569253830223251857858059658706072265017253551090887940623044096142833797009059911677506521824267953145719377104778921673667109210916923957375127554765865911830017968107989515126507933307397615123802855522771813156155034524957096290600957353189965161814705210613003534279145587687041109790653816689653676326160089161891292321472625043988403891043598742454768283956243361836421219762458303763875150063458809053335155635336104634777429002721982975752821881411160180240748948123608429644341593271299563654806314534877929677478348807535826481544217331908827350419907487529088935314966713625769672078372044822038914810183871965430967878838772991239606019905853103576978073419659893002929205812079219442306858196218287642528785083988301073947241642360681378512084856076825264560752066164858673857391613478038573361045257106566486497338855414677178163259303653902473459975923406946058178195835960459060401049648411561612864138702468525740440668733408940144045130175595569694964354303387157513678522114239804366101208941491010911293397203428240931427574450669188630918842000924699325823406418788133765599937616608352961605925039463180052512578330733953512478972864345993245620083889857787401239578883027363684320479390282722273822636269318727410538312615122777317181710497061494258921856912190758348667987269045444714263967464199950899184626605923591149392817034208135314178270601182255441886970165234757598569838096651250150775777888532081990613103279226550805109776735741967431614914141048054889237831896190638152501507130902190586792182535920285077358587133178820174554778494204146980893543270911030261210060044234764338070882999643133719165969346970611149068845796278129453070028871351460153780611005169509922045462428372796702772840174280220293211861852626942104089501833544239773039791219019258265101590786724380385469892747555132171937677866219440665415545871691681699037173065751951845497020083989751775385684873394035913513355486603799962213554075414723615980145484395754532574555929584576127086432080592910434195627139922985155234026806291553989453796754368020931374358503795603996978885184961157063299785033438344899210414816157671670154569832351508205510886536148426890553723152100969835368137725195234445454898201289099646186358118697036271083637007152957589902366686754010783709328918962590045988238799202958010898176437290333584449078674468804310361103085661780088304940577151163296181314524448558469945241607302399998936485106770070619502001214177761506577354441747394006592275170698507277307978786314104458669424128867768227756166365968420785760225483472081123691363433340025522746176352728110145819997042254163466436851917363611425336008251645621630589439472345269092735767022502604327906172977569352626125718933588019371982966752893970786810144587777058772386082153988523519688713005881871191678600460157187458396052822850948894748780639322623229839845486079011244674081529366780734273067121055251251972649402491850668270817185250626293624106056359471851676265736786130861155672917202378751352324042383594564170249822856269283661937395479045242118680587696300410068945612858041480992331357347823963490441913735261831940342517629534478177902483260562517968302352162366284735764901664791618808171061488194404099804517885173324701639254979447770499591349753099813711122893038449047649822100219747755782877304675320031943794284297528402984569364378788638037664780861044287757657722515792432598704264483226551578923189858413436458391062290678520903207933463681417667124326931967347619136602215539458491338729876611131775445545093574066155824868898583108000895527160385725482706136965572624782176493656507744658726740319948181930675383845872441712983365199361415113062815663427632308418372429107152369488034285211164369021257493296011987142788044641095915995500665575600028925121953936449203041005045229654677029590807616318092197639253552049875136329235407241390804907660748702341784635362513187457538030373312473906408341031484915860143788533142881302366531624084109343766979973196244680358247970609203123675224321370653951958910362018380237100350002408176757094703826619937617614410996524501340248635014627835783487765562754941890311010278298746271083767381387752899164371569118401900309921836232995266011839408108502447749711247923294186053085506127161139650466864691608443242584190448755774468932817672241669865867367859237553293177880451355371768299904470708252903447900577132840425823447945886410565714429585591394167358905492075860103148788990841420900754278541179953554230762627891683698892168772071846431652088783542756758245815059351460687236686986084487991694345141196782170559654401831596214464178055206947226373344472595625860345494934293530261271289191748198049588073603987754289535586149263103271737762849205689174840337771324390978340304316538304254801796338410276303947873446447732790814259286242272563373410848155299069569940732087198675589605194637247511160291871087559341906424997753474298977036822532414230919198585885198698736866397198917472103523672145780372383761183354277713049350359802653970138856003247793937650643928168121923819497334145997233187926781175158629838082897455987525817533289062146435022716816004438578989806864411085695792385013670408856605139199358879380216383111688574019100628570566140112588595252859067184222434775163282177819330690460822090132026869018199053107678992568297340645273170133183800286351548459656642691189284297237513752045056080934942559327559596689160684914948220254553727292921844715218953100614527890496014028458375430036087581279373903762047008159243331559899635174006001858255901448769076763829779256915116277338815825508975760902158321603008188896636293980405872909522734331542988106623595607584966061530660757494473030748772111161651045949563309706115743847781553175547374478036760763150262527614905943340506474594022649363799830427705364134212733271651051052343747458622575326588144088298553307114506631255171376477659679079959697369213157112702879806350799475112924045909756338437040673995162999776103443075136093672123791914422747173280638915744833077420921310520750116431382847294808286020397931123393702538635165489613914694719793510248309977741122002493986743867736668138259176919693197024201227053520009595245187639974300362169305952414088431636103595036338001833124578191082118356653857678607766098592855334242948035360259981778721208755916113018469598304393514330251102227953878067320537190197106627344434352880237677972914455281683909216933426879250882492638585080322692025980447094549409406740216595945985378429714264830500927011482536408824297325342575702336694171046651349425520242113593228345029022917739020341927712905487741569957732832624136453322879659563655277677225436285461870442759936431943819951914836138771614562849750408151421600533773247960124381502359616558661957829327814809461651815335049185713990846795596176717626485644062435944459878341775995244147619939396068044743156559862442265837774888473005403841561042176460606398594741684825348609818515929589697887091889799065958232217160231254044295794596923320689121721404817890173302355594480598795395169583508575001989346448796519369386789801213538580318923260780043672877455004619800219084413400421916344574213650441504230583167764358019944417753543544160278884697948356628025675043042696704333629373088653006999082308454115970891625166198518152335947445657169097363194686431533960381701225087963181514872821764653475726253983127452481895624278312361038411145106129861182533704912392572778080099745685667296313972686615286604454234898042497149381639221201331333427973816862308359947003318502970857475634625446608294150818558198427764600861160080385544092056577058115128925471300086891619254987879144254542243307655916457372421166595803853320025710330538292618091221908894007100804835466728807984725209013058964093409272870522388289204301864669809663149112142697901224864243259319803718866825912301648342986483657229591627704284357888090620605987300046053406378978544217748339977448366696206220551492165781639457235380774413890620418897870807994597491263400267265381616717003586473634625824509732658541708121709192434695711377058910253647718080724442710944856592037038393616485593517522944371116594173385551669821743575487928221327058647674469879311458562847978243980540599578371609343116668688255022066695716136050032470941311523449483614055137804135127326103159727615913304292596608275599065090392592561870863775573124978580934712412545842814455718382546598190627875988632028382617469299169155571044452695438293613719747432520061475812207637056610567552594439431650518774117452999309227461250150961818067911206933308347549892245331891084944640690206277634135577394940403994188560129996722252394978810767931609207274772780204381620049000365374924479092834543948822965530337496206033177208355447449704625457619901801133861819378359176376297560301850128774998394386900328139702659906448389420799147330503540009349570284229029410826745884965651621640131334343440401421019640088584126045379556933180092122465175594495708123320736738577646176863832319937418176031106290862869444213668470020584246038418936104056715760729565649833043194082590254455956391511763644384834475229814970630720072594678348847923402321011558577997980491548819900113892711643601353870000410449354918429533774461646087205098125517156640298005685863403987669047852838936391418065690551413869465053244073179394585781750124110975715343248837701639883168608451233035670894509101923476098078056204390048084485173475622771816497536940534941202788751673335012953929318470492719356166038335649200846537483989137644737596617912441403232006740241937598957507614874140490120920830148198166666409575931043472729504793616681267746742119080918314216426156458025211545390590290747540450090184195543188765286906364686425963046478530794635227157719020681503681869379720519583633136049883807507335314815414755630465598295047954113278637800920277271056137156343645114773178038815966591983538609252118177140143356468469000072633130326971983477072530307103303433184226247656444294642308632163207181830531493850776439595799452462657223266325439419981335623585737466250705106885345040195078638820231312954261370651174014714924994242357000769484911411580477378956440667439202164791463516788873668732340098367523991111683766361523394613839049676293397562522053381707877510490370886288025939395293554682628972966864605454647442956619903455574162082559812914920769851520050619417356547674391751282228805597939330360464933830425634169003937987792301459529997558831971825451162453277993199801342145394075701990386793067137838024132623775454153859759934319237224573845366934209895747498982705057208939622110701123111456128670048124613538254005822847924295883799903153398165364531161346970727113124953917494417169195860329783007503102694891152340980933832670923300435820454663057657965791765001672136166659027882228209353248992485027374250866864288067052187174068334171695995936920458243635533494469001328471654120981312371668509328730869876955609134496925398484625951097404954743934839634708732657511802566081807605837953787175668349645513388642842377331831468748466834876487061573352823465898361263303403243710388574091924789812927667742168439632900967025809879172219679416480553406839155161974774705976310322377351821629237567529707630533421352303201393086653454736959592450580920453860425312403832920962841552989259972721483138502463649211291527289534461647728996342126185791203298280773540548650013463593675090668957029076019810575534466028370323327935274886100795005415231836802633329093726835327378029600721835322007710485684714523328909310295480761159732534993605635219714254536138033285072443213002481005909598348013599240262569264776274739314731652312262768464618394739790231717628449236048029502529835112342951688046916602710002604535695678461292696532964296577990684888425165136296877529584109928719124797517613277790649518288064331183921086227543500532533658307181794886208027642012905996701907733428974913000011975534545948890455547110498967824749497719726667095311818386058299638768185531451862647426104898689203365155128393043826541429421857185281270246038202024295031177365992400847170603939208182814031389116981642133880052460220616718573519680457533356024446217205587896350378520525345065937145535054448559161453382973601282619049344508169662255832610063351258088693306358880626524222790702034236623014391217637661353682906048256780331079911703456692440842962720142969645069172915017234731903709828289111727679448162473340542212310124934680935048627278800756092758579695452872147968017900503474762192037260010906358666516728049117883718518338228193564876867041952777896380582010272594557427688559739892343293386561509691750678644804030641796598004795783989066625249512016275667060429495708345838488336374158276549152785391599362069052559458235646471756280063071457861740366412994888201191994225219654344962019252857151671682701410043294487422391137097748840148526515765514289220918622920387978129617204443483764888124077365171545089431445795591457346305485773349775611584386824389955380860130453835453057820403745323155059185816005667570917972911967640836999048649964551756922077167557164041259561348754508561895534886081143240933022324183207540634029256089386044469820896590226514522009574390658444460835921231413933327943765489233940715391029147320475133856717951726308686037237538424797710024121468051096267120464495698540048600012893879163625817814432000490500855359428205014737988971457156436119662930254453182248066647005277732427221913720130412149220685545549135367017399137482272727969551924515709657671419074556276447452242626874771024146896672148658985821600657648311048863219102306635323329200373326993961843425756933619126944129490355117058845098430560270537558008443920804878828986367964869859721274784302947704634146980407707795848561994119379848553211110280766233856800107793885167053031585685870756798656402237291627379756583530474791414669974441544831445808049945199726044827355570029784288619598227075777688498662033362055901145780497235113549660969435171864268544508474311814457870769850552286232636708555274510116489200585860834379077552088506248100471309117502530116968032255176355165761808236622052097900821788352421108482167001596005064674541410663080825856033570524841824150352661745951906766259313690255334653378087341978438284254428738736074986953777240865915564505387617720412178758677945963028870122634899655766151979362444565021378828506905185554429154303051066535405632920204942177903881268521166644488275920817479750326806579226759581285561721531887949113795950588130090706323435784673004733986498159886475191351578050662967952085694771344078516220872418900598377461167655434618794940159385964618621337548334423252743086045034475156593303916270171275261187464186661259792145118803971160008766109370557230440191480322845472895263547178850598019888672893929814427933667595273691978267906237082425377689344056723225938953974905192241982841389449927817047595839007586544287897042792781405606939329739903055726693411162575693072324283454719106951948815975498054895967419175700379345323052194695165973598345353108362368915082124041927767843908360033348833868099136166741665395440441129623310130836954209282453674633465032316623306254062422058022676712844153836697171982414762410660860212068528279985659243610158273997904589124869920442605439967691586538504621812493330636189120330171906566151771429442586722753077898148055683596462191067669659680266439590429348715531973290228305189621432235106047912221445721408359523536194867947380063719791034329113903027077274663355869465018986851312759850777013780503030117975361740841805312635882964905966851068066295473462053195159230460963573380372446103841189184706151761779087241143204450275322132107267153692023893347712084871336040495730347926175975856397892393784554756388629333839012043054206789734785953505688161128146629187807319364163604235601752617867380207045055665913889442291454085112622349192305065839959269220211488437988158697246034868544379412109888909264219985324818213683003746651886960434546755034339058095215024667966876170894997030781266278966244057356055588694245326294922119294141225709656757555548341344252202687489066422816643693424175337007513311630205257909090307922849215842692481338703682148744949997516638736325768946903545865652978216663614807803817559719533524877393690423891943207416876523615406350270295399810794162269327460717453423436676536664236406137982659894952515538928213818606303579827929107999360288706848105648016607250552589446135248079825625638707240538033163496096864797559878868492004639949407061457265569605340744496267655704061071967353703548891416361538874921273472154081032011657191058494822145188655256319487402100248906254668955357952209793458670197453430812224497219121746084091104895468108060052990621992086100377606345283463038946278872117292519235003273019490258128056570129829289514243807485353864663625479453247064673557881359055535387236146026533380224461029369447236719145973555072114830868458566922637816255498444112750133468460505156776626630084639520580687941535960882193036487560765935452988572936158544247020588993117902822300841649182121602499612960821004176038508506991464386511243024556512041976931914094250662093023447299107359528819510332972480780955494959911108965454356446125984108781572669058476026822846044763752625188984053683627319633796292898334014070847252506749680401320790126275529455391470534980114287359758686951092728479684801768956347262380156669450632138764765480058438458656856735473343405399658071311006444179363394313417727001233319152823308960433909501081630674490182490122216384502840422495402988671575750696030343576426686713545041800600815627284974679161506748559001658762901853552093760970356466185498039407708213303132318328596895058761174632379377605133968115579312301959795522192802179963988406815852770506986621635504448271902680729053695536508473453527220259483976186402299977827667272258747858909042954628731432605069940857531965003413376719645576962503859335182766250314520654140662061085140278539720667943547260530898834134971351762349093441811418681979926387405743669424111979450132925248259408870058501219543882943327521611371918458149875697554385806463669699830292492600677346607719744500340022312794617868959534288880464458128406430541976367107079975938688434589104289686985328097025291007022885503531545608144904424362064422220677461726153117481555207606372467414576335155624572693041272152718732855946420878991018796058718281257928817399861484838456488455073372415611997486247375116504632586203981976112731376664486673114456743684224251986111020594495497959048879684155931886970142664690753870282253307960982908070072409745047591869503620712086231693030960154396902940687863163647922978292115778491612167759060638240851634829044225974093233375028925763745512765317379988914206467078062057735241491179207558719536829443912844542588970206634814201285718002883452389829901655665374948278931570757231281472845762477292194014551710004595733807200011622868493521603738467071984854345812049276132531201197490734398881200319485510434075667309885240076640343551327421699723055374795128340369422897257267815573431755568936178436653687448561397143699870681599270364317306847098316227650754724939782279329392883619568086006766251630288167338392797640769631718900961112791465125261295304922890878452030110780132097178922804314176395793401295425951195562452698934742893349206163951228385839712331291764371542930876128155003852075606908498991792503700536017011202993437646379610889242542032696667549361128001460070098688140950388392060191654835736527763436249333332760119620163670931744985186287883852210557416527522029202314380721685729058318702372104450011539133354467218631876889851229710685839936557170289671383352760794248446549775510988988507753365439061004970634462916441353333168502865131694399832638918643509433968097939002266008095956972956841912887887174530914503127108199336651400803561007529786383737524001231077706614713592087598202094418546339881080139127182164730648343968638118989700068002303263588161165111036737891472852677107744921679144190111495350770727949417324135596148974402997880594192229229946093397524328846292530630615975931231567504401485286662111735600986748419291407786488429079605156341220238492051763254394700808010510247322887048695825261918129708158071364130351982986642800948972227604072019210738934630022626916120996689028480911357892626510791709603729735369370797651704706441611283569681670261505238507370512266737507432574358563721467042851932068030863106403412106706604536344048283321973214165117597955731043767455431198113496802884911691619316951253236321367347611062591151979737912565198426069396738001169020866620444232596942817955228160497583029793215424248360213833472451817090541759088017774160311897096250779697719953805324251621277541887544658297575558915465551010796409480343021959623749378514365089868587733028041435594960118133910213960212009050073767406561662015399072873474813617057870029074808187401167482253396849539293154990067138527415375332595036102452051188967903641812299753260196950954903064768592850943008217458453743733429859414416865595028713490809452768729762449789129067356163836205352831585832009186298812920753414087261613394001591151482813118605710744307910884235757853044563119034119636121465064847276527894812157377007507212109579639301667973621980131255323277830152128151363003372686814771678785599486327116795811897644310013298363761103051790780754747324607034766307409408303078316105896771570394567778043874090665002019455115076780259699003201440781871400688235664251837159145828373688565605204018966502307263707390420726495535682589562564116723989062301093296143455400097734478861830476905944163095181810022266143691262352714402257622646434291887247584339422756467315983966192243008763945115548299874241756170686500662331299701397685117997373164329529874882172009002568778168510241527610514580794576313381776323533849816809101729938061140215669767256196393190025458740575084123084454261940547691742295807194301001089506009185524463041034564328884117459968453828232421479045159957493965371971391532520604672242776841011941511018994336407406559079564697080919444854025030639482769874605197888543387644099992431124141866411129252719796906721431534382459643203946400310416592275311503964196529743025955677141038642857037795825419349547459968282197606392408331215141056263901921454523245250751241948439398797092208062300519782680029057403235126191036751025344521137195160383261022740137576516919471968004724709180567219073910631937582442036392283564691848780559766438687489041317920722584474028774416622109268360587420588623906285164787666224204147748663755535197011580698484395652930239052414947153745832172996653233341604678526604808351914089728208739904913931740411813600677985696497019555420279854741835947352111726544317128710744825743762989374212694498115729288052975980219652268241692996898076814458132210921949990108728782457278519738133551087070161760384214651548450776229767154867021644647334776938787792074282917509149252419806608328202254986010701339476318573702738070500705923609728905454612308221115483976367791236856659854790462278358726572207275914389221399528889316085887406748666961425728873812435291904468786775732936611685249052339647509702591427986142290526801420333593558238019714502213278706002864030675921358249597752136317811950770761307194291908193572293046714400396319869503270433366418778783511323452872153285023852353110423969648752588723117747884464011130185770053046342183271697808049222424215143551644845476927632608054414296124220452732306451550931192847066694929030381749569292552682896623386305419468539846329650394513282691126688851830054926271472069558779186083149381750448116075694886672473448286934211551799845482602386719092286777905989271827718680363661313314253837192952097526961805186797011795633641840920398105544787488686484067921220587813209061334045787670743269923407583047092693318001162523047152127466977135727587210972618103567642023637381519065632611762269749550320000437182868384820631224896045222725567789606019415676013301217342899992957041770414300888372760756415850035718887388532605520073601908524698082394529436539778528333221541004687985578096925999664294137205494201882371365516366355036543435089903910444134076702026666675754291481068794496227458759786710023098178988978540749576842571965601462955321197861497236437668125102961424318989061239071625947838351357097300157094988862618299443290179660476277743706946395301411325523553244221328758645955241683744849401064842884616060506614924673090250675914438721610371945207218799126808866025623503398837481288299491149679412683507748780045232270724237111926991011625032877174158879799778234057218402206429083110371553239296897763254308300038183069209096823566621412463077810395934228475968630308968743764149916096317316706035122043829027901776996156160836138825236169648998705678184017796514783884790060314713421290593025466159749292849118243464766525001092916165639652421841334820589906248136196311731065179215752479807139876693598738921223041875213579280200551633882774691118863345684777495050572045903174013767324080034630854650981115634249031899396429376372653286773202092282488341340949295928904112019775303014717354952099718022145840000750822005078893851114932838625381741185861884500415113429378289585498120115931575312878121510415957314017095119984290598960216367671136566197479052990571139025264238325687105018335470599264482419869846936939239691180112264444530184909023855935173446659304979631527307836693367743724473631409306723357260264190955204782739976343028333094951284090505804510131903726717639123905300420084863768383883243758886002190631072462477912611052047417174307593610702553060813216767161057581818226716616673321791537868264444992643892507636697399290685535275516560452013434329081088008201615000299295473133346409573323439685739639948654992059323411934973229129454907789212013915133184626059977958668887532903944967279505634993599756843051968068892347487792882005828735292829742438470015310715191437321412622524205090154486663895338882047904219312528814996638275328735426600178636422499652138900213772259017444546647780551346723407161665083293153244610566935847434474652658696693857308164826191118325657531212518077998957926120002111010206472767262906123659893306122442516125323095945033747519349531216490395725046563605045139724421990785605815301621718597411756460148203775146707549773084543498737557378566692732326906368926155387190819168318533108397485242121812570163596072436553444942390094828481423632417270224275941850345909015648959631408657724203653830534994895551979324651807497862305737013091223744101285924892060964029823159413547853884718071257011374520830389417789682453399891096089513154318834312814147927224356951586735707392416540900632639056106849103371427832756426077168284969542486968041966842778549894675271646190217798234477524683607252571882977083029537681626186163521163950347704319879413095831764280022761242843446052962681084111422359495845751537385465716039116022137610649744813280156074496996788645624706029680642525348777011406417006846069986564516965386498853027819196922226745058743206633192465218215365528414097173656750182632142812306703270921007399023576525900009387525590392773326547235761781000989535911899479980925359735249347480148235320143101937395846009352434606537653371876028912728491639998638191992883993391257018636373231258267848793265961262319075713468959528048278611117948095057937163752141860069407018786898013268067935733883756050685812788306127556572798460023337007773342850377575057551353376252490226251939306765665731021201204520176401661143658656150190937534975000326093802795282282850073367736486624119566726069416823307600374878543239998820088327251883845291309802421807672220760597763219337449282235427361105569375861011097451635477865622736276626578437750085172455654018012689351851860562252087183518676730114936266287122111135983405045931389434413651670845132314749298821446639224463044984121491130605884066969152385819506845304917728144513161852429275442166921102049147468172625535924793638534524124425560943379451100736310889941884039929693727536096325778276991411095160137549284825952364657661649067798960974749542768379519291463899075248739997249699961078776279444754235309061580481255192111293120397230396979965517997728585030949337599002457387522620636306187037358966272456339549140190614971470365805417441982518252171736647487942125184386880172916733459440197536412868195687036505978425014468576276048373464143507720933501506630469077597107596799168101183169651955285875777080209331457211427559404307846721873657257892030206262761935549107134703719622185773967030388801426607999317361006408919739460531392219868932440003979296093619687391687796607646553663195008008809512910105068176828261847896847182714365054632564878375453698338294301411748858089287118921015602784079608823045575771752343681499282342043881438827687324196189281189015417902582200126439126012938610358331748457067983112137488451007562099810528318926663112612531533420328449114112009352588640418088717851497406916310691929513444534401979965471490719447351129333855448104795759971545435509325179153244678994910777972491099232362279398623286225716363259395615135255869343317406065124336415319635260207977615176236622181000964097391061327649483052832886003974653066275668128142951718074294850613878222847506940270902112578238947390156071292308724815659394548280220649286866025195591818128796414043377789372072173488723933681264512014603891701740199296129642689593613327643412183523187752795548726853214663854490514440397731038436095089017883353094014650936786813465463302784669911140182862814048734893627298896680506575848412615676632699985934551649090187330166669457403828656837349166060274671980836136920382019006905609758495743995019343082602186020118874843962535298612543683511739458834085662431134542083952473722176064824111042127091539335554930895950669833657107376901822735441900844705088392835827297370465492626224225315079491218731889084236697706337305108487306734703888071507746541039894673922308167462784477805615668271944847936807742121638804560776433544208171214244346089781746830785205754287351474352884090563346684919564027669625405236245351085897514026559728863057489462901477866582984465109312422821779901522579489051045647770590346226175115029394805265589891142519172561906538758035894233934158564855013804923677519545769655600107921441603807216187977425931191220764240395997712800805130124759280349416899529095369049658659755988886209673215729396741075916498527367702856731636305367757107180621916547847035652281110563621513139090067835747315506450074093575081805824497634409097900050604857077080836811338652988757616586538771541869990465843757452246228448492549591980196377598776821711411907378713857267453422903809581785841478437604556901064369987099351552681690423234935519837515113078589278147116850547059173683888795297587324096197867604554690374337468581131886315533173585397265597646767387176319476936981274970553749055606098870372094282536273100259310245138908952392203786389003785319034795844019408654367172310212300047367897155341462824963073901010280491214775768210769482203307836314834567969511772993725056150288307888075327536350157121598119876172506903923507724577268297167272628762175258412899342541718153630512281155333769702196358084651932591219730561693892757197367958936251032575350399619916042396473020145494827929356357043967487428294705839530741649215063999615534468537148264172615695907094907397961952088565899714565517505487981769555318392748236558481168007039970058976658270237245236024952596402780010356375209612731327716890548023263071438149595286575314439435077610729887751303396017080810005575676076614375691023426925913178235356497591072337944267018403977968953519309227052784938190438062437825839033573442700325881751719702692596089381704507192070280138451997270071694657667444002371614099497369794642962907599254000150158995501568459829934001978301487795295190882001692917523838866566004195184336939438236129698828870328405363288511646419090655210456272949463397919029555930020810025641539813249681490727560151489604039420741279768924346414664790609579724318035501613211268579339444084758449386794741025237249154530046376579133701540921257951106464701560741223710424701586155692609367518436321156217549737742443661808017797645631455956835060472704594852031646139106900272060005958752550251701260165787918137477241437814196105605391461362906602139502006342579027389820926868400683015562698164710077582050984769147859373666178341815496821897147863926834374903806368707533588232071911780486597817041580243140474183888878199310906311917263185763569577264833373675571988116872110368023747984716994584506179442348628285140968304609293216767238351052924342216204499628733841145956131589869989645816407545668873662686282324232647857143366390697574689687769196227413984357225802438302294015132620745185768278625985661476597286613231229709571816894286261419647506391302272421970479824462860419203525260214924394536631982689185413790285963920316421087186771747601225676998233757555429937867097566059644770145458598957732350280443008523497473325297417121893939958311315118383257046409664021169191221677283582853823100753988504276467011236684262702182705824626180422094370846490471518200866121036715635532148195552019778735946507005323125977545270113276135762968206243012358762584963445261093065486240277726899144511683049540992792859877531390349464287165044089044967677831849724148180392488423237984603995221265649493898364550014711240154254324313713694719715567578104475857639915412199507227719098404636963186248099217089252349246101350753684759216511349940918081090063070504356376629261383362941772163293248047421631853572471003439579803600084247698921402726229689818701133878228125487672444801835139039737474340035273644833050841531806887314138113041454674427579757825669662152868823948399319752032718879096760089806500795569117389693170860407577087899266308648511686265142323400127382314096754921460182521005998090491713175967102359435769012217223531528455704075668826464778704436593817487373410844312638210073419400952301217245621822964161598239112578700181067906396242899996317703497879437206758600175262128673406381511877968929384804020347614254649915034724178139675971145152169491234912478966144275342880115932553292596018960224971322641792791052872797580023398136749559724228769142253236084065294638316618820563369189459639304197712488120863866534743097574991330510502291587414799257400319173380696981985378225763730358345044810873423301235102678915361648978744158404586982007866562166322660749962980606192276107949324745334902395267383270196387339888325445161082798172898995021358227590457266949652790808855410828743607255618504128154347751613547392097401123424594306510099988601447030633661510986797473938258043124171673297237190206937726690121399729764379603092967789507883527824925877357119183366653626345757562571353796040971834388385604867990846765103847918260698759548317013661047416532400685342518144537390266786751922934216075924421321835735508894419967964950971374464282974163200339495516605559887374787389665205562634723917021031713855980011960145364488225844571685688950143520232309267526787186585632462027889285102691955519975698090293689909789495174374107291830858093225272693756928320159793013198421825015073216450750339821616088454426609440290891025500228566705225404549446511197369733421398960566334548057392122449746517567741663965293849402425491876887432050945767862743533108967586864315581057346727988503425921801545613446924268101449186571184315630065694532697394839815291216511726210547341130651847871881353643784546753820528573115617654547500062886751799616056748090646097803595707643743433493079770548234872287850519609580655625895214530211649673542838984818966315584701331326784225670843690255214624497863726769384163071057434035344101195205131081847164689299575442374110212122903714266845651737263854385715786516403551107403205677035764430460799342250334388747714782692514911838585168759559547801916434480093476554129179152713679405211723787722530403313804406526776620303807462131907864690069007360571909564613559053786340050777754751494812342724044854754916541552069987648267488478084558784682822660146234207652005552544940231454394938487504582702053442704752533814553833355169740505253634404927976573677617345206974018650182362415306671267685173841323884187508996016263506391021280042553966277380836868121754769069106182184907920023592136072733175659514731720870030877524778610093116163723065414378315330609436871339254476976260632243991677053704697763990301421469619222852636217811954877069794822370704977623803738180054484152608722741951458457301413693117422163376857954232510585781806042274047834189343127594509355665978436838849965358604271590263193150648124949842495766268335889139692157758172405068500941721933149044823657734664156107907903953942144488509107826506129359228538819096800036973629134406952299989918344030656178397061962019738401368176269601855445172225878681577409984385122836334782014750021584080225257810135387005202928510918276057430829513101623976623537177321907130110248039616394273339100852520948496367828711575202470816193609708377776984667413586164818423438269910299812415830791401699878666444596766785414365976240435632100853719476765690181879142807494809897772801702296530457936081451284697529506610510496777604359676176531962946003791475123060521536446991061789899721470502003532458702857477544483406202937976985118857178622107860460718808383135570208208095639437229787227957863863527614110776099577406082328700511576766444674333306348495546737327251248536265837538221863246007525822871521542220964076257457061797418069923778103044568804251068403570695109811910330926831110677208835371245470576137483240215924415732713196420959742685383751097815011157272256976225706201739412296048694098776735842929943333510395342562716939360061046788580856249120990072563452791012598752003752700365594125135387360102077499592293283188516494255954195936429185065396581710771922475163700919399436129828129914458033864721364708164082051214254965146127869644294808334870177634009217240601790311973184441639235429580015932644155086222860664913605483287106216849678478021971416128048660073384266033607667518676337942315201385439032842951651577996219292311607318300489243032501971274620310841097654791909254557852459099422199316683086189884661960116476372991996848668431697423846930163492751533303052453970792831310526685055064027671723985934001181506440395402065627698493974447292543166709601576820441264377251752291706614787515830192145485661631391861238809201841340928127510554069539805429796135555474010577755142103740488793205352401474906329523382666799442743986630600116602365672906407538257032836677842925758363238784967365202968851949783571509598086252699217127234273296463154204047075060278298086392606421126921178050096745753007120020644726415085384676052703788444005979796914061497771945430738209487466066377422809880978607605547307051582853272978609923586418675813922548218734510334466402967900960243226242073613487182610188587517798308149520148524478961329543640274867104997634188802548557671036925430678346899665355300028891352852103999520055682502676189407760289251030440983419331819469627952636601765122968867943847607811820315519523325968454397298654875963379246979084096673274363429577075789975931854608555307921260540564770118398044236599697874097085652313360777742639954960105315962509206770361230823408532587582699667019746497836581494948993048128696364440723529905312674181891157656578576762931703092594482221492805722856844431557343552294498040843531908139515587625055839653121635051514803573507503324998811265186118308918979224828577306048598757445986843252608755987131755828258053229467338699725809234371878407940188980309492081606787259010337524215747912707710844797428122233041088574692956185310276806034402877740681828907289631131126613442627855128484043349432607484923256168478827053317784874501300944236362815084433679586299947074905150640040009313437504422369684313843673040582779503570372129638962843805991279155968996572242989118596425633390522941059432138017828981213409663867583603797517675769707827760616282571773600704066258635065929909671120153286573367609795177961153700507006927886070333952587941163145595349652182228339881236175955041897691555909471250029742032835521874783773909810027193244880480071393911248263464113644061609327548801242767630485844006270869739538241472060171532772622959693564523693619512524148726804778403872641916172646757811394288776288100440775143957587123949606511790897964414476058965283533604004360122330713041853051428583191264884412815722193829794931900616829871508523392207229150489174920541665088372342712586455824598688536649616023823690436728145193782557061476501870164838078735489910744487734448905021548211742229004903968217485041481322679645346890038610484560544610566036950761169227288691372825045718847818975467959881839290567122783292655031387114815370302485169777439821788318976872553660230765547147923548507420041997627714526303001713760887698669288677225927935674485537065725843218410823786818842514022060732859296383081617490925626058908411671582415667907472440217814717237608432111770841969434521230393678507775158272091985523678399007840122914074842162197296787086916365794189096809635482678717578158585363397561477273960618316531687170059923242826216684682126040033180983390189221691859333148400045224585675234206437552538229373993670148497355885503763009919177695374774008379263271004986341975445469216941964624022335580840551414031267866910382141750432356194687593052210586285618315450217547353410530290407844272867186532854517512932262958451876910791122475591655639328997216641850445705092313743128067462370862838140949902043846947931139443021743137671815625309682172859551725946497498290319325883636554655453036751402738517534386621028827693127587130561498971854916248404127356241017096159282580576056076831550673463338554855571061839868128952689151551966672529431964968599465078644827821340062585690350152486277376255291809415061899288735230046097243136734181023845569131802614224728022037972822014589674015631871112442262826108930247103511166033138748777677355760930473410350389848905656662976852109020694564599084287183398600645539427574698705419263963070068522864844077338572762803019617393401785100129589106552335403983411168882392232221541355879161106402445420845836088428383348147069507602832028181412689912092361437730656003285390642822972793368074388256584220157406472572120519333825994555192655305253422269361593630932000750726298684118454381920533669769100227961846513855478473819090401031978208364048281402752963460756225197215319104554381354848355155038381383759098955815164998444679943966703771308298696939318094719650916955238446817765703391204559793567713489726018867779997315987941788043030218669245371126129581765116231645309094132548655620280926775742580550908130940384473415944141662617157724372606162003075167357170170617142505186496291827065395908142808248409527879203099038703791271633285471844454316427417401700859020888251592710076235244849304470014363389953341466846529397709143355009738498290750114817149926405655721797965098199508575453622192054995008687468897664697494687000358304422464370437189913865226824638436100782756547631719467857984325999610037201278244291477402744108828629119190649700888190731854658965958005273839400687847795711124852619147944804114826400219544570575640116687965870138451612488819924301886571293003513798242729183018857902185168021465681013983090462926872173064522100807483648153642000120517616209026859469021655720963797816103139335990923958291422120871110707305254537942888074751251311545036635919327834841476361543264322727793800169748477230945226885626525276193690250466708607439737353265072286215628517237237482472832523703643496506984930971185897157997564995856989165866337945955929736508649997196709270168476919698162745983660820214330392759995185943897362365056350622569185288239170262414762984133978527256379660292551387961408814450423248320738901211305762051322851975148847373951814614840223707974579284033852280926831951789272176316805825391972001945313410791210530288630288162885801373735670450382896658201294265909943115440973380196693575512328039340679043482518774622820003336143848600211911516550490861793542762732491397046111417444697002409145498350009271486650561246288205465440550151753084199160775348376342445902462353556033635367234297271302871857992762939745712715834357588170045898124231785323173058687689775182241486556178762327973828075269190431325719642690989274928661039814716515175427221992300747170281767806469688645393337116130188066683503978167126747530717017729185194078180955090342925270356919787048442992477878301886653829478219782773394829555124685633999119348704270813069750782356731767602301683192698473732965304052050032562199296614428440919354180180885393830935790863044660365338019315931942501768421224736264780899963969900526286385538092290147596564048217341736948531843882945273448886846223188941620534392238669904221418474111515901892243961137084719565731690508748399399734050015073355710686631314979317436582927493601156671569236655018365204405606982054873183756610051136670559120673188265746428767138978267313984923390213037229383196966127574724374079759318144210998219401658121970307129786372412875932951250226659234205393516251723131395181452514441030852568183895371615609163766827518087517477302601739094034255433584170917845303591945758464564690675638006941444287435892824810125954665899094048209937583722277630217077519246310496090214133672937152594010873488024853918530604628581187510698463122427521819919166572160576826140605070010959243431767134324945649146331932165496526807753523023884132843271273244393710214029240114952917697840834901770146008935918871005474832084300489811892834659331630078435768294510622014023209158407332353097060559800517805535948032964893693191261377881752564959111258341470107716364921096576536790506235099653322325679092052214111133269302715499171813719881218873018491813251852096808136196856459894685247353286518897599277259837754811840110655701278003354040151145697187460111986483433578710705196171207875659733906759705101702502947973964087930547004052930990639263176731724253420566920698198619169499143440313035638063430351803626252695843312417901697404458174995540283997648957113559882500511603478449736276070787267322713805213384592449908206774844092895934829017822153709360782770760707714444755009831149840841147981112326519958725517610469520681382996548412690904487391072314946044273052194847681472594612225588941362430532899897024658253875510561966591600829085432102495919454145946769189002210051364239689486402309318416462080495574405553764439853443142340260174668629476556772354327266436025555532862960995001487488989351405988475170587180033541508764295642233830045422589145349001860865562264719917445651116770783339903885259492425531231988114020934334855729083687362503128766462478596246965935614362628727370341628754385677130177063601678823222943839506809036680615872122808588544623106098751310662100600601743482255445761475153353651906313109123258615643863913698081759143375015344444881182961033173398666518850068199223764957647868274270906158725697693910810425935520534994300520618184691821614735109088625104283227208931707163584560810772375987334549352442504032064337174873195330445197943937230099499933101275307064681792534256778081453098155770056696433989053429244156940801325077727410203673763341932456140310393619152342838657530373200693680074275006307751883100814633635277103094612977993513240300657132914008786472176525075554370412748630162410093367689710414823289014015791595733974840203081683296265529056199559161274169185382963492758088962204822657033247497119931608048222837103243253909395797278133912178522996042388100460464175743340474509216975261470311965241294438253315733611552164110981768258746706694312905435775754419090897460177198301793322429868418779154978215661770763511876276205647127005698462482227180457009695520319665950110466475810939011810448140432204908993906927762521965108242512055943424366235769359369503337290017128011601440621052767342458697581051206260170378803565558687327819518246176433014712817983964490716394775972780253654293077378276884259430422857577142641224690143872419423113836476539359469752804067638341208452341164069729461069802618369550411664313719739389277570247570719554693091413802712822575611962572765232469448962681357164121410507766147113886208602167030331671614343094106375102663860729923130395155795000401254288425068804331852771792675391548415349220675069266131238658073888754012564348319315220804212001121572039702679330948254279002633484278230940365447927702702174069867695370637462372788741320963914821857990194556795316098766436322895197943917342991790706564218377879083443703320649366958513324458350067107283144068976557058137791635900905157601629582424153713901512082113515997791205934516285831731549074233847245922386464559581184099108941564290830646928489942689551276494996750459918060064784474373037957920727420659481517163053791253612877154385624788958554393458700401489397351787997806061763764440562659053519405193241009366917702983953073036677984377542970127003167843567158437006783324228773806737684774393797524296203322815185132748032162197976347882660563884775333604520416053850739299999898007244710422452452505475895580175788565158659395920205574574682707176226379614814740363781223604405668629705704229450385692042263317445558651045820113015357917942476909179308736811457934724625197013294029094322617008883398710231931540015264475169079915516179600135787812758498413431662994376139521159439798069425730995528041050939083678714878877534570600903125512009774695303844034256953737032219363660736948904995166617499544089165096292405471187181143593061536332602913493169879963732716596549202551288658757443053458564412645436112452304696763858799493963233724050501892652426982331059269259736156270212270602661487547390808033048548538849390191664039801039893378855767500752361304027480253806884698102120790721272480282572177789188296902867573747373247044379635718868512628588352420262769098706213166542915742255103050827833352222243058877685241985262190326906873167355711378323350141381820256751871511809514817309388326186441158289782448119920882276457484398842040462714213212788698332421864119364651330589728764232560020551748733354155908736347254337334948766142089734725521823074049956201516211019792339026058245891616681932928218637332674709700024176330079637837958710456087469963493908575327458992211114695677136371184737059538131407715659601018447822125024424695281900627580022113403691172546012257833247427791217046922420740533871145976172920577991150690160476062403427489662795374803464548791049609920276722821888399794434616024462059853725873206864234213128834765374743462162510707468288801235132550027559774034639395614788277277466500618477608031535601502679842084079407954042597146930508368778590308220014394381462723320203958637324946056418608799719075357172159232664086842956319799307934193336351931785648409258745135180067346621408483647131790870239734036371168499165924974227472550559542269628690600062832225020044588724072709052324800826281981182776706395937419073109315166809764773160367718810471185114560749990170687857359474707897263165965398650355835476447485391902940798192401883116795146456376849621351886209085215862723597479653454447491397979415598205614499104325518522464131392994254884822470786533051367290069223676616126341127702049111742035765774151273948608121070899874326927651345590222306076502832635998441544694984390167197129141333336442170859046220408958197413874463361866786833963199338904279871750859086850608994034197695320463492041779412812393291734779922327005929712042056471500371494873067435741216865475813010481663883686112893796740795790120336573238084262014548875714189730794166136636363824717323200640582620601802975325285998676955169841676065096738913599503851698072195646660399725591138212894241338145794316282136782185737140933187499977488591316927124814081264476495507291821041186978913155479812303018857432104541704183711265801173558057057979025028603809487394325418161722722485719884258927627119699554174500332027612163864823618543050901777778007439821702152301738490059527029935028814201720171071369478196735015686625435044302821388347211924835664219318768179129725856501381812368852189909953112548541531486837605871909648724600774294642403363367715458499917084318913147446804398799932041977699875123633930406867185881118856131259250951072108644260387587232087485005991979839455563207556144062352465980794793771053142883907007979424149248212992579943630024873656860357563592354477167386542184695501356151451314905436973889481576183984722664925541581577231186246936115408151132496049464387095404841249198337951619770050587127314924671938955000199914533469256197923366348908215154844721712786866364900443841257122087736972451005232223793439017837342114342920648774394021548112275810761327360065425120747616087341189428394648540602699149185616873603121382788364780579110692833892585101026298745903797815669092047562237261340659098205726095499858228293282038134648811028662940241026713137561593963893451220695864829065241815779020799956988872568194844365541879599020040086494199218627689956550046613868573148090827615327891827159869810829234702482853583395818701918109619764251349569894656319679024350446838025266830140574423266759989330706272122170948027269648587189566213705067579136244867426068433368294327655765974624779214044007600615782889728519442966868241586900455756993811252516091588961173892388293515196971885983818738945813915326801668038808838516689262176998975689200128467475836682934127010865205852432275840516037881720003318916555542554754098651651429165769654819134284951248579162556117390362229281412476324597587748142180092209274619227123246973047723320697297364652160510532576529424959689665547274977241073459065080773089816501072902586558676733187188231265760865876201793268898302314995419446710320646728307172343947102506070652970207661737288224134242565129433335380354685160588573985585403953057463162326219142086941027310572586930775830078914123590521308667640210011258150716048879009491836127866854951634946671909285966731751889903508603641188740610749415196115950394623532449560681690676038588108423215001453945085035218346091567076442419689197905462813745779712894147858467845746391098288395272325179662811223236272231959862073500591284884082164194112841073457966946692831735708615173534298630495485476569000591599311914701033912208629581783717311341622471108392154179267534939281258669765573016632597173970950374534249239657845315970952333910883654241677822365889449362287387368713966814388936128345580762939057729387291171341398008489017842655976541159735310800757732153301108231130713964409948992533179705571726060734926795634390445213662478182838452752486241323682806364258270199606566840219961383417994911144295251200527504760120747784616550353236815824936091350911083233153376607144501132948928521627176397832526620988428415019545257797112285452552615048842294755179338829040476270371843638817348734526296384806283939904286321590831450398309274170354626382811615620964683562052577647777705847299623947234916764140009029877215459847848081574890611515280233440353391065062646270124214702959307544013951449063352414871631450897549951477939754493663094166525969307950380981701604187082305807231711925112480179713150178607889242406888762825961003151835947589613832127742134777581660469250015176676916940716549858254566976356770030072519374291373623370631280238857279162622288734951522367862289380907777171587045622194355853616921634705367672983865180836494987276021852656929896225697777029521021418761333241385500161145332941928134062631765649742188128027303095667211495103844168473537418349324507285842206489052979680034824518074099230745271984822386474912367151354518010373037252472264573682467533288010977242251268140827853671455621071364509815004436590803882799970336559369810019946343703565219612876409481327970977647646619949964206555609112925080790129039130262525242314801883765536369866602417507955388001381276660337971388089384595648288265585168206037412235109363166137697348705703568370151273385083955166516525213147243727815225402126933379620847747307483299511448081139507568321099479096395186064070457548057581352580955523847671987398227296550330578874553773050253566612130401150932774834081735812596393485053345821945879152928877038296483384197542603638871432211058069241559986397155354856350623342816116859052327215801371625046629490906835560959494838244247457460808788587817562460017466897077096024788743730295920234236489846490952766477286817504665403392293954762999504388621989453562104863848253713743919334701121285428546314605712386162986598800086816618684436433530269276302602485195646530858080853004814683660555224763251257614693009124228485602682068285591410776232747345166785548671931375241813807038816115044258042803732043476456954866624712707233119681110719564012479878132566522011595659189404673541742092849779594981643219064189323282238365557636929405846947811582026947023156386005321794566990069529837900606095944528108126586974827026414506015322097248792446229110611722772674826490571995233985121926829596451198092916294599659187372044712607133836916551270368866128059328570747536596480976378760322946391760318534751358007898624266425547365770998309520763181796924718038362885604007126915804347171414051735110666325124091680440624028844640595374794932670456182542100993885928581474795968725670482176607110325942581435192470228347060491282154249485635462241371784900065394063228931715743592525599891207396042300671950167632852758314489271518265981771074344188102392783880075332817438390090714364830427547932622589448011690297306563129097206282498812019888196583102519000188287637371531213177906934532429380397337847548692960404230704503158372291669165300499338250974903857441534666592137944685096464409069150308623892606927415478405035513738399102983527911223538595653913178166435760255216309276753267855960360270610362517235904112146258636051380454963671317631941510688329477157928614498056987131807713561685986866869986993294925330434990306090438074270843869969811687445273950270079044876742748174215893244911075565299161957185477140012639560708143729241298065164137831188334152965619150775370128345722910653534571429002053983759614706330191772292549922818932334381911441094956581104498340009079829928783353727758096189559007272178081236658604514563811982151283337385652476471121551500201025900291176976298026485379387265853364662509910198864644807784489638335332408608402642818317605099867188223044289557159276218316041330014645113037435966502036258801284285277034103553105942924177397090830619373410252483393014815546174473601835113491815502126931518081019425260531311881807816993342997133001842216150941165123690800578617688214414059834196616590056645957661223792895402022645596664215890474427462018050757767800272270146257768844052191171059828087736883951703323433125161099908368521136604624002563855189004508903269737155259469483291005726870514265326965966094898231243700282013377192622229564465542851419369246460230278058147628468648140834242602655404060181099121599425950846623955520300513768997185768291346214705941588883235134325228959229085272290062334514865072541863984672398486297378340934702307611489236271297612086533669772552249281061502662954240531112713358526689728815286984099037570051877044012768434113397629329893888758818526558734510194645364635271801127300403821480566145727358769459185265502135114610588115354161087641461375389889736302175774804773089746511299104765209483739896380447584415859604814616315284152027112506962019053880578862628497761514431269854274038454763829194696082093688692627132164195495797070597984432704194893908057938528772702731774021869474223627849349009766872122839805568207764331504384026871029357751635534301964020761071090287809228956490610091369284829649508595029444062476164683539080143993940968307254816822651428293412985853529134757275891470582415288980374705960162481081531449918625707123722832383482299740713439617379091001263282592268554186332126521179086744927124879577155212436108457849717156272397801601653407556623341357741706587742360339062558522521303863584219488619251660136289170150121162228968655029053487978639923116775973540247840072137934773374634027075907757320371910698870037089559046288013201911316208294882762018494598275321187910249225965745349996630447972858611225461164173091348397450869719248218028035921505674199286330954887948483903385616861024487170020608791312619537086625917581395037144916225201756431719624642002831475022035534164282425504473408487636968544125148604010207523687572697448309695313403621567390296984273858162053087766160542026968069284648224842109029502923960393750592137745227835479273556834098831745936199676883811131230217932829033897925323353089165455278319475294184974069949493779929686970940132701611544749873500947538169042720217536147675068619260356905922230819910561437923924908027221868041917408552460723675823884698024145592062843000441577579999283233733392803210934643410751899151778743623417046783512102838428184757372519537917610835216084099382555371940674880823412183999772824158558012760837386746707494042983331593916801061609662417636562520265709976369966390943582072887794767717683265690477554900076850154538824734397409622880969101386041585018354468650991256967403702427560364744547156262809537069543040796758406801547722798786845010018442837023112414794429556308747675143839872439240639524205794807908840446400687482888571185999681493896005550140744369429990932003488872036358477712217756629061180824600604138760362174848828837812967168715555568188621320430139479704945228841061921618293519952173476276384412989927398758594808709143130487685930363605715255517931019625969571492999213637633637433324927516371986514923829666627309948204075158774998137938933403190901877735712592579370543977288411433639489382573506473041768564831036798278688242012324566554511911164820679633480663240219527384005873859518847445782307175657036447658320860934519966718900878555305999057497723146228284160434281191116246103457857989231953850716774611849447256456551511056610050699835608994205646491392961322893306712368480041861668366134018086112265093477788810610733254186552302742676415122897477088615917598938345883448736842887163310953412281658205570702368568508573190451116797008195059675721928774770671964344660884876092528154105662789021420781884957433004626705191696922280127205027418123164792381844996706288053700219068969082932450143909852913186316157198679999267755431685180805004800384232902829596256147042282988401898172427752045785629317774571303764608022580358264767631729050272625711775342236979275903740448597004807334198487466700205039323933756671192418002099044660782223494441294113068891447374272604416642061166600211332969083342112185110354712416516468119681328983886563269664892550303391689639327821978038644906796447308684954597415934964321540581870261585879556154291867988827423338602576739013498780813473772651357752521207355592156800949786810131463401309708647867185028698874650765323039011052320289778600794619812868292800856026410193666572093776200498784522471247167909182731155033507844374112548687069640298533883045961316912092000895556649935947788536809722573998108310601132322556041433261832406832139756918670756244925999869004824673244817348393971217596950288207264684638614020010007889276476051003280316980111982290192423312015251257161164596270837842643908102571055534649146801160075380920611212056014521834047943963574035759724452103505641522724203368816247292203759393704434422463652968986765365693292493840035366361153850411792600497689717664419070637876267039206799455286187709641979842161750014645933008224212566524357059644723577321967958699476706509880806470350372951858450288266216231031770229561508883929698319347256829742797892144855032084627283897050992729787761171845889839500408626128880788727884012726043018986132289196910230176528512608223973954732535571360500879471001128729552790311396354909564019340078891536001792864513352312285480731187626881011717811688248570443342630171644847378540359458043859908210009932197265134702733551147901880282733962864800981787954591728530319249215471549276888404811773161359846704908907756223190436276466227901982127798530905319889240296316640422816685623990763439633733817270441968682965602303486287630906221039092392900002232824813509318402373234704756229241046934561165419685794993919327899624463367077280116239553143184631541396844040186213022432225453679436125621473036653156115811313805193029537725073646357565389212217772937256788223602725389451813144424069138204870627968537589680184350325949166230266873345785566780496950963573105754051826506387332372031275359948039686135526470862069054823609297751454464603884035418417070743846674352096662947799625997968769896962375276105963832091804606583396482640726445997125409552397433034083505610319805408369171777829741004093200159859876956221691311274527636578104893173801725880254043716689008282129154236018588776324204375649734595230397826242404954632050682739354526522455339644089552393715231018693988908659548212566444992680284033732203595456466882168982364789816527268635543994139146211775712240788509638527503250049907940557073983276195669077625825002689432017916622858260699326987919160342098422589647588498338881649073390188062856550052311315572423636687048804037486920378453401521293353169618438421056706006483648264248992773443171160444428323781232527469263440855529290404836559876834752704678524349283905098308290693578610958558772445084226387387339534772560261330543621613626119893628530727811188213628050097507890244886665257476321048116119854619254825537656065118033912200328150865363571092752326788210415279831742507322968504044318485850248218819017399713839964564868584437513140437695508807844629904668880197546764302325925202087989032683591739449329735508121839549163523690768330147713248479655740316943051333378708458841273254339195669535658631734293069510253547246141081833819688971337323343227246702349334811612319879189693365089763134058351673046464399557836308025910741390189010337120360763468756725664441891450893586538316284921086449749470816522255862080888154718630749046479881487548300065341612692611571682943676417677442052438194826978680277224321282600297471104674081094743585772930159797556109391538194613317270192447291871483897802257613785100859904261160856872809939667545205411716900223706280685038023259724225780568202418595387498391905865103573538058582653607996314077839661724153874028886179941460310178764184208027464588899436294491547154599387844761399343448281169241474980257732940644479661223554424621005971011000705706982665648240122288744347318418595241239974748477244484286008954238943440969385638347973004217838496634043535402418074419940915338830724461553798190461467060247872346416804895419705163482208683104300613428619694291336015970214717232583775897489810892825648130161446209819623255349418971368779047972114280339724332708772955797246911589506704170881473383696117572189345362676953188442961615142594859371251023820870192906445949333782378610760016574712608383766943082393496802225492491043185569783899390215707764830429739510129517553574668263476886574605061849284490000826493388906782903421181572717742109628965730458141485632497362600619950595857581258695640434572718984721984088116129980156124916056456112024822535843125860023401105556009793823861200230988540079419234915735160833462518647403887342576965986235718060626766350998680587546446817744964371492832632667190499667151543293435883193261442237975984475935980083336146593105389875933138218511790430755279716580726810237321753360318732387384924346801641247613447413663598251248882828767859445619536094100644447776666031446306733244726320371209330280611008023849815780935548120200408037892219051998339681748792108324447850388406015736412347175334894820370323725355177123359321692124134601739737791044247991522653274929713271449937021216622153969896631752660538795003116543692404755417634967300072171919670510426582580118561368829796531003178423249685792749073434581464202339842733833392697505697728833881593653477704413375776540051870003009472989017896480415580346588129765393281377601858304667418213352783964699541035492150946146719844614977876521211063311725903264675565863309565110303986089699943148692881030145409143123368657630996899322165998002990992550347662697983634837021927761880916422542543690652606906693608396613333871685767765688451459368655226014598791879938131667606957721124676535131078376363634643411112751171814522125975088625312195059578056459584492293280789203478039261000519236821868252214357701003308235980081067167797880610202929422792642957546631307747448464450670548869044589320852007112324607808873487340615480329663249080334711360810095875546879036699429675735868077048168876753058498477279055676127725028037872363618804013238365514339893114611805161989281345941314817921139866734260703484075249756490143783728828105509388157583843198318175393755497582334662105963527828751143804000142877739185908628675874217620900012506487313263660275771455363139864771041555678703468064268669028821341137530963185653047425140015138336201644547214706295825474099099538450325684364908483068706047413250606884253664702583572887010453228989099027449723028494765174823440594551757068790293314670933862449933673977295315524344511539081920890931947480498310418496404576149821845818238973897317167033939911301607452478831723994320895408234890083834583633561298340874622114915391532984289660735465608440253890418506985492609911701541980322892788342384124078803059055385751945748242421065658556749186913592059403396074873075268316689608255079517498396814711836604613131142584073393078723474958271747451477638172481619597546320881306340794574941413721144330115626272561927714910101710883917181481331462700104538886237140551238874976893940817233492655787883393290962648722039794090469346501886385254872896383169332288036307823399206069274763657196858766040448236366131567787851960493567810802243101522596765501830716674753940742897193724897304286816281523621360053119613275686739518836847842596163794207553309582110831393167498759136414878952820429964483091198038103540754658837473294932793907778096809267131325220798570402012830638400533373933968488830545182474323225909025520014875687935086639065996160892403870546430661728538006049148876657213896655061552646866563285475095125146053935965367160603203418108478493799770406839615420076781702549173690968969967378838329498621090685003691032654030919464313687297879129206872419301155430287272611018594828347288245902159931561041488132049239307913849486115926222747588656795793788756181263804432308069889005826707592013334993342727599995488856322152317124150877778498818822372872194680852135623140071435881911495287528674558265266961947431497735898051234927452453056831814095831307966369182922313225431064124211222754536181286489729696400524477829961341320403759152575376263806600904800250771882898252298987150613685035952414766687670298248438440829933771845295195803412403069604733043672884951437686806992846922592678280675304011978559093837844612368667845354104039765030755407325164516709194768023868425276811883286686274098823973133485835509679016789624672659405076352627402604612524574196897538917436056040326358159882801377943170083879343101589227552187863582606962367633717419153204394454978948259066573743941178817466902746358415323811491666285152846796540540662798397295418047867978562992633885818317174182413692810451900105044475489101596532431435847197811944066791702629702828148388942809727043333153125263976705630072466465665172243125665849122786913220344689891194951867607645538978876383538486016906268822714622661527836276432250599932937778268909528131999377759037837514732980892295371654761422474336595761163531131774317144642051076856804667459592583985910223255371843146886002559093636817704668886715444125814298620988721365759171941990431922480716270410155936390024092053427181171491761743733059008366235581742505202931033281587128355750240868876687677220022637515103355969206789766352582342834987282308363748754486090164145507426333539385889281116876247684842911998888302883866926269818968526746912109322093772194563048794441236425260362311873935529664812861972072440364701725961241382056903632772090406037290326485953158992877255069625224716920368633579871065916974889904830815674718537730722877527065325753780202037298584554421901252218266458138681385232943285002159475072059831800693458284299101579118782167581224796935936674974495066729683060794442964738259214706949260278746934040398577777527015972177900223041103226640738382215605726066052434830899162750653869759226089406587132634688177002453174893573503914067783264944570239224995633040023228643905750208971364850897539285123749944397019225711672216348237884042420465240610329487341028952810093407415247409709347770453627016879022955415630657471007893644750545519395210441239215512105766490830088677922682406992780164703627079845110930351686040389923703797984763899459259039735966662457811759695593383936291028784128753318135210674841214666893541853592914037515345066957012788666489793880338443946696377917418862109460947197220603056451790649833334198673527144072161353955829078715528063560796558717306129692283583835952833948622915634155155132410018718518356343271000328827450296345665189097653338577164971703719871379982779593093033063919377828389906352279049061974497892680474991264101516249714273960418447793929130445537000291094121486971913985868351576853754014129958374318463916401520040885664344408338275967261701248621409945398792707406349217869396800128966387829699331191351939988968501956716845004056178996467795801919928921342752530101548831534012288228658734342736716625460712202882033732523838666845698714984170073194165061821932856310630399008610130116079334253130636094992831066540584046665936856177927933337851789819545622053419656130258521240010720487126921290723828242291770414649197836543357514920541759699952012865515135653504510691211148058633498592879084509633315490632766715902741954535121657325050523067593118497773954946470659184763503017271270723626585731815535952894320834159937240990600070747384813699431709176256172250281611814915958189889805251407074436828520809099771627473563249943210328061443100124900698980503904375847653875262699700499389108680711323448881144837247426485476198234944902359484542152820620021889194998164019402041626408840876778056292814281322682163305941501853677117097825653790404528187033599355427333448330219561547079097471802577956922503405416547070822113851646205288608830044892480128349715381710256824589095947029111988868119398749657409222976464812105223321285866116185707594090115381907836603082454968243766417765172413828166501781205110905846606373377569925429713634999834476586466971267565366197346947583680608785982216665381602241292119650600883861092007702601913814867243339442824077377726496117895316241471530671215634828239824331602020977059324601597138534825494760034596450295534743623443583984033896863163005288576816866849827786928401635099258606636534456018693026646701773124039603619947189441870188912901111260441619975815520578161307450810220855175758806245445978749811371764193366320898703917298168093413761364381751657742382542000815569846253850471772281789223995306753841713846867636584151128028911932629805978443046273219933829931841378720307609778073657113537390805013353173637718566359479435607489638706968770901819104116169393768295380428286780587956666146600790624139922644327215369902173878825193701652406551631883469693044030992369696520380986161330235395741962704201984318072385404352115842467120811142980103508276504252513984468910134557270429201829552635677574713279182552401296335503947294746777957696511532284616934703022006461572351700710384971604781239479289970592833526223182261745260104714891738248934609597878058245917735835061424003541443522727683549985090143522474105895800126101042294036145831564191001422819916945219333622164877120218418546596773476920411175579973869855449196107108652494443204730321162728004844215421769669124145939267494597556365175868569076557856401284230682441532286861684821514137377190485228163613387191807362536885176174304629974630822891305826158647181425767177314530728486291087058531086367695545139281189689093588019663747266740588202781840896436622569275041065254311472081773726503337719197490553151139310154219973212221005106987491174719498821995051345996351286798152883217972279707832856846729808915190894946342749389902568525021053119936200271368850415035718436425323483035413435536667514914494977434461022299838620982479629327028804261558013493770606202145252743809445700533127098712852881999137550379614010860276067422067753108703946301589949406087664192444976946263582297160895984447023570909313372917678522811589832913049528446608755743650911432786823420569758640179843619580244407275166168711116732380457911670263547871218520911001321269462191757284776511392507755750990321418444893164559786848630230844582512983721965052324247679641321914705627505897652199365820264193673181778137862930652382833845023357961480213520064694516998972832886759531102055184768292460009170784766822076293788298654811135029923801803235697116512193291264662130748381960169732757367575227813036934711368270551377154062498413902531474381871514962431947445807900025298779264200130912823055077518746918391649917761538149772655150388817359776510147779396233990467669432848978737192665027796453580240852794377655317405367210781288285973411096712475402721741285990743715277736648573554699053463887078774540272785082617699574605332906685029765078789232856180167141673254520487300806440785325446017122857102626289347711633018509120334744877009644645975245427932875813909245576032633615333788634965910519082954904724968309197640420156464400143821835496534506850746413713735367003992939928658120442346963301580946396673681052514334466094610531663466928157406137578176911802023194239954396436419425757336535112069090580329346753329444232018118644150627920811113545534856785405650589168044995993593084672841443068889802165018904244865635026977121379655209920381974926011690383991826899091452532203438605376318767756933935438828656384423267873298013885631115602660961974281895225139583388702311580103014833450317856303167186386996000589929502169220851075208831767573120279900936196178613841907924233041256247118749574498615580088576903280058239968529854283913100204153510495784828445591478610495185439171821507406112800395715700820144341290139088766460122046945587722739853446071815391437321664983013736542033115346338619590953909074833815910779255219729602379426571878280434466387532813550032280645011228659337739506952724264969337762343353154420891428038023097831226593103330663582511576784300636443979353522619638662528344882265270465072439854146942492211795359775234177300645261755897676009066434640842516316345922594535290817445894181291826880337325184088809280614304038527211951972317800603213965708693514111175284376808713002141796906342167059116685934018623232937714727925688519145501663554983457237117086436973357982568710671189411374147336862736340924914879878523886608746947320421395948811464274632490057982987514480932191755961969594876214300510996005624768489419752316350558922638302419805633481291644735022273937795395183837630760353208649749867975271731642707527037998284106148824853679772002014594547934906524594760025890708954967012782383413567496732942242319489822644134524306392691473223530534437399973989804658895058135300077132733046576804305643637822320013243800896341802757943894087384952351206429113978223994596621910240808970949018517275183219182270501626192802715619558007221435527112145509631924413958199908877562057589385159289601961374276283113312754646798121115526557125356830690842181313560116045871087345864047375520492424182005806891898722579228010169239641832166780219535247481000609598420921502826545466763861877118602023795223164241922337339603418533644709000485774713252343110899170685515727647265276625775667539267130345282762016839276034943633201885951855367434512682197850268371624197021241024128961167701513180790101046778351968473146970195244535375766892148098543901576778518887525023409455797536105097117939091338596262942888689896026873875933396625454359865303383011067640343925526686410751232771349676392652918048397184395608033803172944800358937592245077833200675063429071244468381918216055394555171742169661350320538406671836669716588786652254576451840296748628098199129623859418097639517400089520175701805147310178879359219881221321405728257786942035818193840165698639850840624079334979627433889296041711090327618296981701215860690008591664136899504047649331046271796661302252325200494928618996723859392766938753174263689978210130409626987189055619036503227337596774663931611225281718893992371971039695910306828896670211063218479838960149932242523516744565721128220870530592189376273448845658845644671654795272773973211245633134868742663558995187822088419904579184250449092989368463388319820940521910082768751554347230195506728251614828814353657572341560156819635576719542117939022151340622330738914157402376347739358708637343599977891247162463160745191330449877918268207732040846868017414395193542904224271201615168317854459014274489345711038948664481053819958795795527665289752120268730593848068954912182273948327301604311989094510304933456728331093351818872758899897442439004715752555992715024424183754069797607181455266626571936301193861871092561831232027132181995151800478366526883629971611409666658002226488444910458106682026818122997518797225411021433529585912809883456563322709387178922594880103460000634809581056642107440285328207888847044451509673117104600660181295288305953517746393224418731684020006079094133623749492231692003346690059262604447849940324360466377896283526314263260333537151915599162187688132588497681114590326526962408968537970328906867124797582426802826218398467860409731218968709957400853795010027766237141267494387908607956035277732583352455214991563507446970898279281577578669120452326173900013646689246990164905234356614442961771178150683683630883662065068324100127125672921516017787720757240965222549604645978353801662513542793615646907898036613872664340855820030812818857307004468067834981954226664627317560835442089525351612758878101939488699879701529790213916756430940578268216884685228911112650722431899134359275094587015287533207472453821168888516718790708864979805898309793485429703348643684806568860394916767560955353752918589071861113813942070845401286563155418225937199100094583754913357947286092705410937095425699637103160405023283581429577531099733247048230412211643578074966155285609250258711625064435309144899762335678576191616600455248237253169234768102719539445319784907927954856943799721747965508096613539670421278208422334947888984702305117779007606354418855090561713273658418350853000329982104098883766989491219473573963507280072995846917769502504786854665734292935534530504229628452844817381217331286730065976467179300976945973834468886475124422330754093710127600279880887529120808365658077822740259711374082475490679538818690825298661029945076375194319224229250585636118790418852548510541357224385841638766314701863579701504750946398336560523196620838056257579013341922943283343401513504395408579435069540719332008069595250009950693159169685971991353741396843375932595061288967725769502305496000175064773936074884432777101581671440643562630078848634888975840140375282265324322056602910015892760137557198921353836877112595389544247581695081721554939406265238191879659229288045954946105234983083005582403807659041830438504895496045090847938673105884564372068177611619558676624584663868104570354684653774456083584082168245396905244786517074746066749364327455669128218315401218680858090002668970622550856784533828620467464903462377173421371762913946921679920384214122595799053805868974251287425537850169196697709327968200320029297936648503011260260257429435085928988402686194507117705455524251989714301255568181398074008171763494225319248443200421160393922158870952253524492953959800421249993601788805003493255859475928506524182872841132989844735267117838446985595701138232222001168209295912307190331332498818466202302370319171049341757715280594877263706287797646030419800750829838466371545134744896146788284288201548602993523725967818398557668832134444266217671035243716820150067218074736687396074679233122524359444253413404865081431904282175976230610173930349196723212824292827759804932238610683555780837494385322981034831973873940015179701844937296844711653450682633287811092091942233484887831511872319076893323171550426181717543753018343231350141567497083259860283807156059008351424507387508756482783741274191496270185162218859791949406883849065511802830934473363135502119988208576785274658966475323970609313772844130676489459647505206080366228232662777130760133505719398030063202772428026809706652657893889427885212061935490877671498250080685652314444570904302736592216515361727898147593029061820051455750175145905179511475934572130689036632360278059973713655412735507414742456899122873643404738658688236242434008214850778162885505489298774891109097703111466146421842735197790813602110672606071864153766484687316009408109841614850020290030760172335351342696455466334512301370227197322452685240272310050197820688966512247092412667518859425240873627985642162153241022835481397861568861751022285984744128330673955282983031523112976824869330595855555554381260506345762860039184716945852418808287598685942860143637601828591228242093427146652148744407730222724482893424247145828574201249167742490228908950064477467299810403894699879328342150772317533953507679827033217775977967667595762551136573557464650163563187015117845826454273004149933051521923427063909011840610849425130400937528097547026787291863362095230302569872888261361397074207087270092296142292329543884539176515952748780112936582785758328568870030911468767261774165317349854100104154191424664289807445813027934143301733040970704049455335726267731186964197297122028698138723717564079651544618661047216534504925782486924791446676958934454591523453794798633780336329491950465359726158855247210426358900475818162584548099789039574757794890398834602604798510616338897154366101349484897525326890421857371831567807210146393305353347958620539273473733988110933828742695076950851362933637070448445692304916038982236815575052224760864872134434462778470807608718654689071251088642185245405568919451773656841563794222809224672087912994751744074495253764341392233199515076876131216277242007178933238185413395389263560466706995362306244936893577131070087927039739684785125307743606796083922982557701931725266393880424621881016009087994516601073256195124370884288492109881678557960322055845272894842598651476473911039112586835746954736858504992014092667105611460939004625400845614495269905024716734764837723645325390259897048664473914416687028389070698158581707989763245459278431514147580193195950437887979953408747324247980341880612525936714253671209447177823999808876151328440828357184127305814706852837764945243429801298918938095003881220004355840050146924241430552204021916873411984318100267178915406470488618267935595403395559555197371371224030900315869892685472853871661903175281723146780021016470604318509958665100890755992433665019351683356804524195428871387345152296495772081921076453654973598818294670613809827548983508384781216566551903898121782717202553669021279242746414404865875179646878736773016229083567324818358805376994858521003292787747367809422009142173836058676830047624148806038687879949974811884325438424396084430756248317431471266251969262790459745229903775078264572185609034503754892855496352246001286530068741629069300876626553628620229488039018619802777740864948802163355956070432414630832631379698390901372609978591186620323436859777497937770707895657124493127987810963794280523880765959946414656311093861976212902120210633308257845043071982283471284873115125278825818343481803683292418867033252841572957792806326894047750062708178762088440278054734493392417961501125086703977515324125243480757225065428937324440160642588468082492985895092621929744668607326093277935515760690169509510960467705565406932281945395546580236437975202268209680340905363623569770924414564252888694205456109808088821410720968434501579811917436324826958528347424699365297327784961649315983564158306892671261331540405338021564722526506705916270818889095399268378746232987918007974986344608703535684384045755060614704662579421464221118390657099627504565601491146753194941802264435095144897572329731186685970586125805530303428811446435042405658249908943965926982360449651326182826802923838953464848358517835883572872069421365977493725952217466364024080141052257963310571897619114053161636019454253739822667838174453355518663521407370870436041927601335737399237063611250552089792988544176978955046607790473771499953301171358762805131979345866072863503852771082034212616666903821483595719769863301445186475258031441713175348257600919945656444932156878104950797532970055663963006425037053213730090066914432208415734987791785823627166464564848611236776990082941298605513654753133360943041232566619099972661715404566208337612224949387985035792700040564117179971932311628201706037319549621235951386801283288843792351984999683964441219706143941033391877543892549000978235961623031158156849098700888234637216913794943663219614825841374461757759713925302935131740446839610756613127970970511819666690395318233865409470679162665264391686596957241247642311679942948732831821375651995577533130362289964694591661289723831412266559412003532867069397514872048970621999813828058121555983782581723906080696832177788038861278251510749519047105114003575629562413508788997336202603599568384442509695178578637420470538896321663829463228474122271699360725722922369481406915900936146553866841157653895537319621795081537213290293724245185133179765733137153317305522292704857969692634986878920465803073927994930875826168008787503784888674496295124186449424532640139358798766741218549595242363811955706054938642902444538635461172423815538809477920623761415358418789918216471876574938102327959528774664114080601112383398152878803352294559757587247429280042067717106486973815896417158507237524506571976482298979819672933071591395754040572863153438860869985143753988127179216324161891134252451638761343189078591591632310796214759269469406788380975841905029636514530140708105969339085027080972863008171159701932546265202960187473179850115949561972537977679655003862859848869316980451350486448537755257148642962978368845359253441008516951454003807608653233199164402597443135164790934652946847245420306085733551819129342658532639764034294453011761556089493190266851274003721795308627612531864716241576108139516216625702452899710912183339645760017562104437067846284872592588210973369485560935558771113975788487769689346699873989593210433329441659547816255194196333404267759754347137692018260925278301897103146572219375555817918662778303386808213892260132085597508334285425708072043340717937867647377991168816869173078555464427137258553376315871855983112805644844894210321698280250313838709666508238586694864962245122576563435545905095163593705948642945419446533446371771709718489633877501459237275170038974559646518323690392686366392968447089069253231475335301660105856689756415987289826470160657682244913231872034686010123030122170345631240364559880946295095816836131650007745002360105360630922663962489510327983443944563508310052400873434491705457019653887737107270995440534198658611606648250565469506694705036444601514125142459982519558559406594427887047724483745197681071629825772108389716888686804936330033895654010119211655471950192707148910460466677135611107942643036583905934562218556062529347087117959119996587675471387845541493665772485124911118549600904842065808589818109400295322425789020713050438769734139912038631202512236543591474273614600086297896763259550244701006854966167290255234814530901884689545644327471499018664591813588687416501652969718170773192595932127165174664139525238424587997815176372978656664079756135316631549283038794166953239859509946289032621782738801110581074707566944751802606675662966291393739794876707485517894871453104184195714601905467740629694837771979603403090072290972210313845581978169012624735338651037905598839495244952580258875543011937394324349313568657363615656783842911760453521901580677506456579595959447811050017217277803224027027037704695164271281360247244136387663381153119946098981473582421057889225163649072099656869095832125298864068496901732170129188447521188265435550605445936388195902805801398578265340932372595388008389421934918728548667456237090261426882875369269403584336215358254059443542899229436823337593570163520398494176315765802670070764799577629054360935875787186440287594325249555418168907735415544144650946474267229599228748711821640268782639269149158042696445802861050235388979315900892032792574303236861908170208892809834081201469720685392298055539798659474963519250695457514707158676759446136349267910917802784735386565673831050602151867198162433234769442430396108385967720932038220819757365302252888076293863540265240130445357926564835114005056602899856005526709626753416310562666265688338369361671946730728754656802878374205500847753527554217075875260495303388986553359616357328486966003836210907827594194634214640368190227017252393419246642195590876513933075720403068924960754987141216979507683119057939969964331936548346156512446564065901171761822361183789087509670810117994852344616863606776451542234848730698518656737493778032937249518065342170384916327213447223151001569007439113400736638302877425171880652966673567514597936303720291288851677395004703988976816346151025001485617586612008574761029993496152550320686722634650194726683293959575057313029858422349475932740560997868486359455794783870059377342956156284761452034586599418544734585980185884612896414366180613466679423562939765991868697781692157051608663525608977847684259291513374651164930897719782921233411211452333702442906539783155638013096686560963549814746582968590651775543030115567620902197998426472255649571743593302682011400856471750991351662030177339811406931088951028757830648289603452778055689288059943382810712989469628211855761008549118775930825642723392963436581944789066191000654421468859830980590108510606174374206702490684689593729179930959773817875951361537565448615451928026958253720698526340424953144637398806104030454865621162961481793825482796157307383331574009716671453401601600109295785270935276575630789702524342597482521851520161164120956203722635422357677867685542496923321405763587125422671373179005622702979579662617212425986243030479360840543810551146531857071466367022318756090873482242007954259592423800798277865461898473399038790374616054674564533209819963896875209436307275230918464045365877824564044661856476551043225502257512094327340080787472036790811946954724489837818966557588600732436312252602521931130149926834281723203268242605814230000958620540351553062506753237277766854328508793635413929965697673874524516091402312133666726567495366765426128682989007957017583987534197228632517503266702742063980516973375548457123245189579820185449481243280119002429845886044015290209331666825995604403314018457861041049656429157848395957976062844033366508863604907773194855623373538420735218353941847321549528062614836987293349692983713634015891215339182319024037394619330615313610508339565721125301865870822043821343883173375688472498557713634140505061281512572769466922060825545665835157263778241989708139262173775481643222959945116925528300212133618013846967698990949914544226856040807725728427984939253119944426194781653334038244244616780908342472238193915842761988478540193991973102377588720365893908675769948215938108968993180045868025394693494850630294320252122414088590195974213381493649043052321076757921578290994509774994758741262721544021128826237041376428828213022260401603846340980693911237918706936283364086852416175003473430633062593973164316366535517832526140733163452508768634829330655466784716313266545655538754456268043081543358949492435820707480746674734092300658648524779322763126199801264836518623075651485720951865276426321945352882518628066398267820475905719674957219886859475967074528624032937310136180314559539799730680620092459322519064145653645190229656267488639107851473473242007303606354757444380431009005294403338261075146365911702683019920354643177999965152670237221444594437635159329514510191343264587883083222118477826616920641313913074491826586039039118600749152044741473697383867283354814086565714166041993485607777045818315490124519038589015202726922713347628761577889931592071296625294128924661709869135882146590010109212532111111482785054891640781655222494474487751429048002821241857420601787570230869889719737668517081526580559954899247673761881837378033271257170766709929648662670969125436598611966177765372680607504327255199089063305919751767668522609333837156489750184551608431547265268511568374065080871041995159961168262143666512789885305724640595876428753896437605525007861036382209531073180143885858071697367477466909211260668968341630673509338581970770541651192937896148962412183746891688625536668611992914116300180828912802545452323861668998738019088995396394112403417409595714948914940804931736710124170193042151773778712827102533667213318132467833503515187418575851058371193520591173203114275337643965872104369721531528554420361254370751723817350233054026886569212653483900690866846206466364142413495361925647869908862438640361737424637717599441731493357860609122955638900662586229313028628129336100948810252206109193846164357982429670428915377232444609562303897723047386860463337274911692924204787907461066041790167483755340047071966841276766687529938432299422604455942003336939183626580239748103457669746573493597111772553381543863182260149893677119139740156550949769809569049169490528321379803053231045220231646421923759004261751854063135638119371696067316116137016418857465218653566843158647539129488437721306373665989415066750788755434567709831200218364468728985517496487151384901127869205473317220459998212759522225934810900302886776532971508370587410136433319462447347740245281173206168037981443393078246119927317669962387388441727214344603014521997262593511199584451613497089261116535963114664197706688913869590290386597740168087406692186293484482597728303640701909150862026240065586142675924096956325809903241664160710130771154977495105812081311646481700605444820664777495042002156851958306345229895986402451780338305133293053492620118945675718168219862226025557351596989485164905720923022428163537625179438924088482484984170851422366724340961731362429567362491738345215318551603192892883256832606362716434442833078534092669581966354851828694707951376745141806145494569473807397121569449454609386016075361011223445362036349762202219183841079213355683756042044121012020552960983790807438163193976609628125711314744398841012714652307958614956441973563112755943074087155144092443663023556972388457045701941620009972402931217554489660906392072831060064591026321477792216969173637106616156672574117049263410357480331032092370136599706339618541981635677066114426327090218829399829123997431491979689849748724016727682803162594797444783992451815899754455432932795384819892109767968561447467898591275446198124198392438227591979327276328177799202217423993401369162866220672172968443198073303977254477338697581747320997007390756981272075658390276243920208772112023100228144058874947105402392829992936712409234851267742766334875680841749731475389401802357262767317624440757013975814596579839291311623000013122612228697421928396684797019704382083754170209652848582115701797995777112805137671471834639115029398810367277190389728669540664409748092863818577194520256832265412155828154296311058987070007598325784177195732484838553494073196436243459131386317443070665110480455018235802123007154913526373027917261551712004023507600161367124501029937579630945809993167582796870101684467176740875999342458613193397300650116391126912160292560942459254556667928287104398679068578844615855761349442018225908818590477378828420341668976726273140473394782369291571567411492463228905884066334759638478868311097662020164703118382960282948872657009009866540525581712864535291007822968324442232953913761751973720161521382655491247104036711947768491927702192682624026673218620047176401929604327552991942253894056727029823196458691043860726711145652292956661666535484133324786836451887528932142808020039523050148583437118425953425822623977738190903116908363874540343918703606989874378388578006592018688175004465457786568647855513861182906596050323633564817889382431249523200256912799202470216581832953175540469959173645658850842348112106805779092019861689001132505481456904768507949479019695460072501013122156924849354555799560482017505137996780673924938689871984110538029980403629306017337242421189485870766235689375759663281392310668252703140664693890924770671934429685034974324448896857856734222880049182803521019010652472250671748792116806828457769907453181824828736892190561012251619202818007314796848616980460541018402894225311250156040702902600280055603987199421689572119933591150742131629781110754164003555983681381485242286932486171547145712236958266656031460119408926508669040595561084158971472765735169897474922087628905306692443491428965040982919477264761294437393929269712401669363366046807299835663699960869533681620546016619459753002604004679145183816115119828360737958470508887686308687681558307058158923389172731222371606624074425280885681536941788388466576801456083175542037672288923379880445614060789294260251882098017546837262068882615571163011485932224612218457254810686656325224431268321066918263058632754680068095653478868892109786494273102715796020641121778460754709941263970078145876373731117028145717684766278916189924272597296546608964019390714500821901301635029566558334796194462290340456898927450446267446394389666134876621815064632598072376959335044892552566891461001374448564155746907627261254004257474734560052135993413446044008193107224995407999529986285750546898637405702080949242027146756229690645993237875706423774301304911948145389766274720083468032474063616104152396862070094865903530896135508590719195601780354065662740812489408715686500344533141371432548167021248714087198776969385925435006617033336805089310052165988552750369244725363024868631035252988482955987952650894607936141979303379745946587034145123065583471397360774867470774847240294359806628557355298386491792372164344616984532700164128336067757521624579516776240430716487626436207093776855519206568331710449126364210624059964580990994545844644029116301056142473106417685814086613375053984051416581210374697705980338387368530534626912040621904610906738868823017568187216831678382412275932156688176340601701864652274358303884374836551377868063108812008162337668867574704574184846277680274713035609221585433154900055425560489240322615138256866398594946008694528773052349557855329210588055226637352928112794126256083932225646426865335703762900238385012991298993788143215173820659898948235135849201804755410776827319323473794031189518935605965716513950241738643287912561037122878755671969636846037392184717088258521625743032034967014047339398650501789187439345827551691793576305358817115957291681065082448759983625213415759728078283573675944444706765521947158181032208805307784498873536818913797182340718723817472945767301345384884777552325726449427946572646297337864052976140647393402330187782809893700445876104260568672488985529173858336587006819286153211292121387090298677236724296438378427872579306907207732626777471208472622093423470430870966093857998806672296403665488610644831420634242266397160130596541061780774957866292892482001187641438610852261419237779903696341876380580018853690750115611786539206435492458041817737063584277480094322117487828226945388593550673151938329988528944677099477026749551304996636233544921404513159279862960448167916298381044621589870799090164880734961708032538309254553558211012216896452312708954551769533747659390329310424797667956672933393681952522528358662023233179785746326726418764171711220051967857883540055001261311677514605181627014355669017760120203072057175770646441597166534397158087031643232587306518383478439567648673836855721136232987644912202674065286301672544671730689595347313309452366316839676092112301182563399921024119805251894170992615534900588439772441901826437697711509864464271507034353624729793900252012289211028253522876706559649671719855656063576203204909474997170699282764943143706761324058417948612022800276869135510524824017317714232887683874996790477070655395113807329626377131394432109906806858621844123667528652464242282488318945090275179904615368890155603146510602818001099753878117686250126470201666361751017653277005002628611538784307266036350950410240889280960759394741159043165567886669400105378092870579305624297010921128731042918407186214774644904236661647845268954826893594877153983355039704377912631581244459473111377391243849125944359729251502613541308610044998706754578461205756085601754627233346556868751584000861997138942112580459893445743199778499601881542275725378836887168576477251513096810817981746701393332935330385428791667460987909071777719663509356969549907137003251624952492904508013361839838853767960290601441292434735301109359224937441136343910688548537591448510270589480973931890962281697268583731782704866835425188960126304308080534924588830624796557837188388187118798198124002289088849948503623436637225387710019749559414813852726140801783617177509302547044331264736591896305490757844961644161348609660451600318248116343319619816341606810775472637445655514822332629148712136633334257805749987658505121683241624582205128623007569994696364483064521911840175665541401290160028714369056793709564759196760929825617993035379217924638345648160281922306076258374903033334392428953145856501012683984369021979361582387290516946904520341790369338050351420193969800482723675296426033848960026820467417700032148636386126020217952117222144684083569886593449906385680394391381279758640497632041251213333797992433935509549119836676174938393715489721320152008736979515758182646624859029829207861559330946170048796280610851265082587515682806749003297913247487316250986755964567331326004025478054930938687921693186537693790932933284359903722189815120917874011986400875853864133426753238553702287692464836111591112456981407422554953228404685854524693643806109879797555583710117237874752876734937227883477885602997132265482650889289194030185735649389455888875830935783522834526486952826189463676892031263947029096186271069270777903254975391565803838756204378846211287647096539622482748532631731235239892765251387935476861737706510058225804036571533000272407870540504490150435020720821343683724719292395671140347666269445109814212783987527690267569258431870338830752146566488310583949645692416670437535789165910376194575708691624786201630149973028771116844859130373402608611981556245457736754514644083648385413690702087775322643641647324712474685872179120446209515906479306035449121377710364077228782273986388543081431378028479568582226501482666570885769199597780162683404151295230303431522122866701431082214480984998800613702010492061253368198808859614339869708441466923092550257038946022249920742615340650346057580873320817387705425031232532505949915536134744262212690681154845318252433304127903194566825745377770824116345230960367685381282373005586721481235167183799337271859728325163053273213360625038621137361218477440746083066848157821588932361983543759590021795681322475373697372235918115992989025329547049856187214029841392788585146761555561614538149504069800958638772295644636867479580191086407384030285417540346618549843185631667271501951103023966433933848349632951719473552382324512529617708969114701527431873230294562401064757728106993576235422902670503833163885206472599919014847736296366834908095770572459623844331481557263382344185709104548077573238723722376673136932207313533758925526119257190540277193286481640511470214394102809508443891098364984390051083245011150192460343091440026920525099836755445685023710358952462906309223329138965481168945548311688176895510731769954596633636547873759288714892318608659113430622698830131507408915192195415250730226321310163152647425081620782909633481048869991897468145339988758634759222609442085558907038526805968436839197350339390127938207958992553383463492660539494574862375036668971781566494585644282401406017007790268757172153932743507561076193507509814386417339006578174123237548878692203276934733815591648018089846818458787682696396760536412712646104438840504310002492947238528337201461562625412412883065585140734239684202262027749137282577763539796809415216318424702053560191897422375905418147616032747715458178926571330754872397344432918389557090296972312201902726027545729520670293084164213040802406835640848975084118759842398658628530763278132485952738079409010529487225775467041899192890540217025382138378577580787994204246748194669944086387641225986731995631755843933804493700382325800486111482253454700902989354782135415973099738153372717085591877021832976938262252974705339375231007512525081068084563328364638411930130072470083597834269876484327739736680921128517166303719069674693640594758200253776433257784926614849334538178009055032571425265191633789231488292225410473730524691541748584267317647073572535718905507773019149893481314877540996457396496298087812222884609378770420833611367545104107906020625720820489533941768476834881694228442054426562155170898492849317661795944641981502815732543081354809724280738694635861513512385323907572770817062262221119973418148482787031345352506673587273746905507645169600836229649790810341219941662859760842807750823517436937856653529501624649038386029756325622682787704514466790979270325921465277699902824079383821257081777594349782611575230371602081199168899443027421718530968626675921780993896852389958837951945075583030175587606311268184649183398633715982574542080628740849352663420057257873479359372848003740502446253641916290743404525126646253533554885180107076239221933792871924654233230367461776496753607255901110808267270850501748642161313400794419265962893473060740794182065086290763942587046491617437501707130101086597107112964020258369463167179911931360047508945691038819481729293805174762587748967493663517107153000546417861833024342451268374199454566965467983216816866518646473667478892980916338401759600055819967746205658673505443691716002690292788305959620145988734514541772276125763706616850245866490067727468774045142630117814236876756140558368173317284964596701266920061477982007037066731907679984995923580349093969599418318187350946593758427480311933018562943478804396019586329668270836374422937824246717821199475252052236258105049715290274332035827365427085716922393774289237285344456662005027013847039338146072977040171381532995356620256014657819347831450713296483051871551473373455444026607249407242367208916665205812641918133498042941243531020588488057061025008407760882398067393630764169630994301686282404694480390716612115958593271200002780652298586900824945724749779053002213604237636744066928584148709058980373993023193833483261517710216721545879503801373276385585468892099355305298628629134597763739986903846552374003339613678983697410985581200835981790866003852045629017845916960868687707595608061229642417859109604199213159010932761435956023229367868466372457966711676296134021700094554026847530224048699981307402244542693283450973500158759598019433592559300456477105502927202383779263403281360499387285669000994086747727572163974504114080602436049370995713768147811074766358197407468105251012094397795611401015468538486991344339422440314372863206086013441628163654633976865865489095949582382968071270601087086042150355096193141694887164308501372659734732230156945132187726804904707722959149694081757901173527434743268587985062029546370448865241160509119753599721545555992930974672530941900063947327015327218295369987783625204106941710813006847218396347592929883473337472215163100705116753050481381162267547437685159871857306707528842327229657944259911676265153845391485133121242538444641362772281873261011436885121840174225658816165119616241990930623374203832976298133553518464472712987068481059905878161349907281192809553579482945126719053548273069192930269213715697589231522340395040527564855106179793326732606458241472371783425403024345093193336129024334901842768061191464196515708742970737732273753646898828451084951349915751122510001560207364073978136616352905825333449443988353168947456791988852068671663009108532898309396185964562121446888670450667342674238454758552342172507125267351484933156548528166710061093096340470693297204741919588912836682339506123034419629660243155815607274699129867307507004618122001132614329054503408184319828964952896119841913814848883627694352033780309095504053463737316546194378280586058460047928297727264925865031753682805993966348164816330690643406227182443604941645124955628159847308694403640916358086540808850969724375205910049027902122412430333325722469231604754716680575452054204790734398459886709336065941851686868313167681491172146280371495974908821461341573726824262618283004503076391210637898441459643278812157100288038350834683831723667743475244547948297785569584266285441472082688921617350212099764368753042637329610922922639598159011346308334347451828708363260135665769703940788668890546486053978310348167634825427991173448920083168856938384857557908863401486026494122457869493081556077869154365180926673934929319159313101476953171355909275442455311456246207366476340837907027180506030435823774180203366665724817858218070404462961559314941386475047097448335415469229369056202937493391617378126502402279938214732513372302665643181821942532391039519714058250428290772796194743865774806829387585088289981433320465720457739604779476747942184503447771245409829366109328524183473801991207568725951557785619302554943561289655563922109642201654071537407993078737954809842391919100604292894520481224550615049495876177284767612268984872071938101360881380384232852610478469626082181106360092884130762688190013118365366853606627488945325428066174762983326036377196360312825282018353275941500039568458811409291094372509257013429391586870094151213124485998542153502044107529218322158128242482676718563153645365426058797640907990523726924420306933803139322924854599590646890046546908361506580760462471321682812720439424678278695622802557237690552141307030759057517999130045190577941344425801386321392397860707530080779903553064547378784713938978245305193390445099966176961223033050008809092215800674594580804925923218842299485072695069226413253713595318632320869489664245299183174534208800135401167586838184820284999818686850662557119932495731004669482276587164447504179523593464749392102768829157997013681542211722314450029125427711031429659059663673720779961622967938691845141259705037534787050906172525637377046463113835919627410686809449528328737179858839743236681380874684925167163825811721939385763604886757524422049381886563651001813995423281034917843981706874407662000916188565422704800391210765842566824151305245521957194294936271946324277798523250671127622684205395055905416117565830620722011801976587012114212788521635575232503993464677903609062455751404574689989611289936327897273541675845242365602014591232016115444397434329969171128986463432178318625841403753859823680029987673098651853707251074949304889282332712959034682721565021568151192192610503109365432404353320518326177709148484841574322129563451139369652002434742876035967001491365063688059363781269406789766670011284662220155415918861279280678513370011427942544759006600449789203458732311692501470140737411651125027984748136827399256606453271774913091326536179966556510630135506815906438334099109467729121866249187909129219851654846568099660927622979285046290750273482112881457593799934988840598477420765566700850667504454603210986711969756433351642828273570446046866497209871402003800538973162219960715974318143633742261616282133769071865032682103187235447503838894745676017384116002863128566589473156152230459886362096778384408388264706307719807247102248956898972665356747693520510179615806460694524571296659772930677999538236370354118613907769795827758139416489894087357413955132145597684351639771920963290709152168129485446276994811510695467329254601206821864571707353583848738105019350943620886719967699272267593650706587737101564162552132915986526830706986282031311892264406678921650620436917778628552651177713280569236786359347677938620877841840599636707066501996008764021565129563063731431473181415024678623599317316857561257484413866800181634772040560937312585307085888607756081825202190370653096483272589070072391261824405051833338060795948753584022062124743283040126185509338204367877364337324086839047328402862141370500072167773980421039010697054928439892156497017397894062379409505914912111256189309840789336935030042596588351592527090705609390043866473537267565323401775066869167238162384229567902801150870342409101378031842326460979725550144356190874105802892209657253373216163783328351352521226869644570301507682850471476565211261311483327823719401364063354466356106177387820417944456631418097226689370637226176509425073327263952454817105519385894890267370000549412150256876817685149684394866584258433869056462069393207726645964139385374549113276432700416013900829167777322227032688721418762471080815534244360908952671082168512168866539063990488031727625298012074403229438363473196105765091622803507384451890907520232329508266613554379497403340134293115092325845040000853265601533127508841447520910249434573994292355740549055094891664748149697076146063684165870711878554184562164450762653143469318205899790551075486840133281656745063282976855112670706759718079923366621261557785056625398507867615987177877249687628950925417525741299180162931320455647289650608623933472009914356561926895127574375740876821938325011025312734482582858718806650482039387388063952325641950180162285038850593444246499914525597424298217229128980004562536740591309954268381188554020548158538951531731472895555516120046463449590923281664460739832982372952160464499201828471762134710570928118448119575362038050390886296405527403719980130653862690523811617906192498840215384940994477232750063259201437455422205579298121713704519201088661893367131019412675303563402031784340615751044599144868096279475361447364963591048350110946147760608542160948701518154274840721088250799424202714443543032000400667668911971554227048294704113850912361128767693880607699093333030957112216349260833541673994230874643878606832154663135886933144256227423420287917673360635272468704236207843865481378359380615500337653616695161014973993927518748289518872643990541838508208913422819116560143186333677526404239333894232012082601447265811520525464216548682286908259132469677808607291172259633736180851927085216141131077020898119011652389976387500080075263334906706679956483031189227457093078856841742788503622277466096219199444760818640486844017236478756492746220863617552312518400829278896941529279860766597383994174062241552958205463589929289757771744241282791030044222256196723588847499701806207337392267082606778113554963970228784666595357835082281528443908214033190708749655394894008754280195836820214287531692511726227159475675443272831075900081784089602829095466176450955841977781604885516896237454157623929092404472717420406190728080701802185824843838192398374342460790785827620789422691266744706257901148462675764264812447170122889740941059914282083912214327924119364801391596247941369353004317085840727420888878134900367910353686562448952068483824127528289456370877650843069856381318064508266320124772157349822823040689099402206816909728249446827057377049892190899187901063691822823979192244756788839897078490853683690376484675514990844585480609127021426604331106787408032780019426381959043925371080356042477821968484751717607691136097688916945807020548418781593576854893688400384911085834342758258857692461865472171043996038637454873583232409636283455444682712817929093612557857934826087341776484311663260413501814194716494101962558098868884767769135578245805645788601857759925914409937261951163540823017726254544785318855572698748646749793037891562025802618827219288455360951730195315983490466548660342757540040419494358283494716161979180769392229814050221158593293200583560990709697165844578183636622300199695459612586466181717103384830203463829064750845117765717645934187221608380855779544201165360876304875349464727281464355277787054406150951986792575518730945422466870494388067731990854581536055571701065114952656024394176482706454177570093626903602572499274841601383226115496346629348041244670346823398528700354704639879476802122447527236881256544644156636371995266718147839650294879785012100959964958149619825109215577492089382328774793917361239395587156856239636302738579493994589238169530374825915167124126180561239923083864846441914512406183911313302145235089466856035299553757879952493563624278042659699100387161361266349430036413687467151964108675154193782019322681530890167982804678856152946604233357615386000398381215814412037019294535827024637164648227924252743742714062332102811465295456123868780480000857640444997497353017223818109695853467794853465265367402403802883193512245584084776898976910312166847870351245202349206388917352941736589331393704024926659121808009951680415519243196920866625982970078533889572744426493030063262693077252242651661524283696082781076770935946816957197063071796015853294824685028411361602405564476376454723529237352880917720449573564397858353375265061410457885664561462430194323882898163539888638618462355559068179777687737233101062925694057722492795988968557095300508328321998998162716758252394280511318993102631880283575570034543601216851020103201487601375625614801704630978361177703862743965246149893825948272376314478801791302561196213615653880464370757878083334492866800918310783410656750422465056354358597800672083326140880319922853261256692958152876159523689691419229190997463844311799310017932332765923503082723384157629569635633581165770806301970505380794931426545659516813495626118759869746099575655402455551105781231192349477076640562964893978388562402138924862277345681758472726855980479568802007983570246727591529815344906863451879743119532134596206305959129771636926286401762905580544660893120741077282434845914405266606074932698476967158889922906093522206616118491466778744998150085635186834710265578291952096968033122498579407639595022341870413691734755450576799132257616503492941694449342257383962903659728831948440044941558456943377492445294720230355241828081498168638204872758398246014484737675296945473580729648774856093821638604872799349026462420216469688733858525979558879918060501752641360504112484226824112479707703394995295598499441170796551003993114852436444140735620153509357237764029707910986217911725735919257470425153352163826619110837291313752005138533744245543033310178801609539634185240781856892278922534372837907825800984319144215591831200735074100305342028153395478075139528559747476031421891788541483889937787879081043710672640622700820076297513187731370594103357398456529018360213258126966119163591504962782890647467358259594637971627207277742912881497626879449122976363400042549521609469108458772768688912398724126088640996778350713158567307484675489981381066545183550034406283862631886864947941785768412281234240150836331183800563187380676322164319063489976854124553335062423794968614551043764151505195955314969746017536699021772412678329340275519991264790410070608926652640484998684559152301118174506793607648882628259521799816245663500965517699455002061140338543806547186209651518196767379197781279622027274163937536875761822486874490200180719427443565413165204850418271463919102053790321785708993754959213194139257649505782526981926952837005160075800080454409928186023551784104367681411480455695674774803804032251213751182833622761063126303610888666297641647317339251584281131373413893756355112270276912065701502762945292810989224763454396694720585500184025393089822009020642071429655253712241578419025314317829144601935244305428658268793472191526527506281662834804944751039230035389535631584643714107885943629913585913210584951612136049466905272646205856126174545558712303499427683306592152156291193805582184485651311996073638698899592844356255124913746643813043294295852712495617586877834340487184234655881011310490498486723444813634200123959931156209081475220894356819219153909104464014330184889967831378640675152172266443365188783426553310253424732956870583566001371219885945681779074395651831581541519468631021882772853421982388287362993075587849008512879252227904767775037341437035681014228085504990853274110192031729965458858542608654475132543679172275128904000431894231386495900525162517377148188867145623572549580340854232189136724316555569868438647593692252083091363415269861404999824032701484585259876409082777551046549905618854535218648148362841390991250034587348265885524859408510194045573272407777658006212824956836622019653570349719347413945472525031372774370663897379382715151404596083055511716142984438053202634813728997735857241928083528793159823406754480298965724131285443768164417211927537499228554211504563268779070275914056206275882695134525047165592470827080943656341165903052215262802859354699563790192806627614885476409961210885878491186387839233448561182675409161505967827089214856744632610637619431853378726284867051280426704367517769287142435386352941398975106518818912554750491474694897051904015337992028227850778687996012397174628035360236554881756173019400769287300581015668647791774691881352567937515686728893600935274335845543777276661417575860173935620679230141860785356139548558096256627532637939480538354145383667597930090751254601092920031517225987585853007238154559121648258548948365039356208625338919357273746384237026509138938843396777247107614185161853705390738746721097224802289899444764696442486395089410784156867144170831535748796711604994037932883263552306283444923675776386105325034900329797329664142485366933643263073743998475989478272195127275998413899251914504769438220870164071336706666790089329920366812754679240982819336193245123273250971376945202982894795983890142342883838320122859733225062789176627132572906380248693281863648836953930275312422615244621365312868162125900588013427849271841965989316399768461192409224901971267638690853014084727678863704028634681141926260905453603246714535938428766259483568712113027233835032463672387062512726961369988656027117836378482439206008388619047389311899740536651367942659331634283623620324920171656845259240633978511919498250884493235376075768002365155934652314601500883571177973667566718251908818735040897331500569278418493495917088329803261102404487617795408688973853808704769748103203971399862913874232912718805544253517935950311537539829030369666968334822741136735074384669448496568367739211140876222735804383681954299268473176140438206780080092998887383843667329407205603164170981211906539693746621588593853914144445272012434007341610010530989574694998578602530181991743470856261120419317537048709178224624197621804360975577621645515211323851318872303860052927478577434332833169626509326568832058627209070021091612937349152392034357364458051917273040965572054746879018020918175316805868249574831025089364053554572302564501117891544145199671867211562842898750298966361042892991305966093958583857366962189679932058589413842861414569839052909765331703011671444789849770760844932176194723419577005595600079424237354282836198418677114521039220088307618189365350813010455108248108884005959882019070243918268093707467511845701730257196027547079694885930567727333676834798283774023198940115883879804941402505906505625864134396094742928445308181679123498400555891663429782923079739882649411089133811927422981473650484040930358626819614937804055434631340126019740036240483725803905267362052735950695502650710762457215327749627446526765253603119184157844957413333097766486935722436853787782033306710149198579585747123639541112846958729802054232394647788306360360717566233196211525294022365993642527145110011750833576251022709719172448070289464059811346040207876540394189551659444230113273588925287679008492875901043889417120108149344051733842677820760571985139401697279944801298239488994663845678015078175341003900304805735203927347907646570785606563211822672583676575114543915971279207468387578090265253345964720565534065529955004498863819154989865709216337793627995833161815335115132338894639944714614611170747353413306660408065416310918442696037970918226793513976950577659535102439811582589887341193743681878029089327541196045935281621012966187289799548067263397574699971146866354584616203117786039430070560235951386615955254224866488669534988694284632721485198944911948929416357038997578537784484364350399418754351577830210129493123719003387401964172107431258461031850334149780187212721037821967852223337945788076808330552141098879494595889482957438033565655242436014576846835191597851433987432153972131204908056586714611169921243325123038591476603449922473354605268586961481535531030050031723098855932346211705066586670368665068846225259096053029218606566094922102876462082433619766695523617660494599421766478406675207895376702706924030700043712798948809299114411971325210157001483628238064946536692452989057028510573241690654727490741427157390427445904320479111739405008740346039424146174782977375380539026079132416252983144170102528263126171655405214573677424167003909777428543752451309220075537269481629097950024487720031721574464892582023468525531675430158397343078034778576376012073881521432260837854014610344590671827558991774670391634924502988205718606255661256991071481583841797076196801099243681173706357367937122150411229448976169778658001681069718502979554388139236600037234491252514544939812068364179980001158942907083237185707640158171891749492261810647172075151360008802969930727353336096806673434901628061486152062368436464198876985479577413617847449600997837276479435973783010254576856918102481473777057037673949929015841884380819073443493337388544071190320871744135429730436836868191150999767522132742247144594793780088952289072750878239088506905553598621972239238333378219377174133963716881275291823149814876359884088791406687955479326643190170493755528175135649702773965921441526051124108753363163902582854706263452842639716759690375943851230566233454989997642577856023002605964367225859764401703631268323997048632734824837237795693541310081874021972280899355176859940001892170447663564563538843644687284115788689430791329853936223354326875288283262244925311278018464406864823448653028345008117634392395416106113664806269019011093023355239623070182291399203469621060007438306001447361285365043174577934710074249597285639167800685122558229433634613270829397901405516592063521101900752695780178400692568957609753647217892114935414665305325031377702663264294339483552491123596780567470569291111805462202750057470381599675294944790376236697326368782860303747471748149224533404969337817340312051786138769542317074530404261380574593140905420522499467273015466631208482943477076201042040679165657061017379561641759330486462120397571355773405905461555063818830943982676392103496324472388150698883148486444132401426971351820473905516329575089958812052117126857047025658552507985507105089868293122549002724604318235985579221754315897906980884058135997718846444522268706919656949731168328080817094283561067009962129205402177838325953675360187572862807450221778668967274661234247788280360382339279639481880063509131574993273828034435134446663750705981930059984757758120886677148943410197791054805909884499588956341743416609381642353681805833461787972143493171855471909463331669517049453646299929466639036049511566305013353259374252730998772606964191725350837292651374032357928916418231831404332998619908650266872018969332271503940541488246472947233810918105331925414204720743954788917841800932908855624352988229131018281928998459385309091114027164300825105990328473573777012468496386821705470606799191660299350195475158205948272591402688909346536018910526822548985282966251723208394477982575951072269873263295926672818807012947316893431431891631891773622523033530674412134150464965565312549163050378258633447338117585872187944433956662530663537613706841239225548717190546932618177042306647883890778579484907384160143721325131804287791586650066920383724533014374336541491332661192218758867460353516010142128281862439968232713792595759328063488161143176776701998468265546192364544578269753101734465920004869449022314817443140628235727909954550376451903511112192357298230210571453835894883212729293658972958548517878076485444015226191706459989791693043826353543858101115102859811894300489076907809384066903888390467648144993726932982835731552156833442368162970388996484583325733993697661410986404195901128075501823889081397543183627998533969801043387615982116643365660184414153659390685018016747990036866376173509689480239328638385091386284782297365369430103849302379901932893481609559480970831751512223215040499605262203591926925305574580669518020767269151236412040332989186768851407701506004980525909081570645608263610922042220676010334940527792462211362433763647795542102060866232812669997170072508392461919493509051029796501158122782605664386775400078704058437111962364086415266656568090076592855709561450871910096148212137828611093568458693195869701911651626740744596020138080455182533123889636989095627421554105744388927297822186970438106664516866538041354873425096030585545003783554657106210404241026639707085496444403707930968469007074435037586613993141714472701327789332133731583992589935110884542247201363807538159899981865834379372262503030365548706571239584008504250882900146075338027725578789272798811205277039898708519493221039546751615107742225259847542891812301898181646894474133363296613838898358000045113594396652517345306948332707872644386930066771051893785778695870619519277923476687167969850149516903437550124871946605678061051440443373978607369177436696984962914859837947228588506722501378992992723188407566781519657325969718406645059577503163802728399723388783169022144538958909211639203455026710584833677027926210420518160407816043398037549369288230607206920071905912246740207224257082801244661607840740505928781576135811880525856273434406758153941069310194849399658690169809672241241207619071399416252603394043031627140272738247646139773379265041378834467792601892732659075519322416432392587078477401060497104688688101023767107480458945487646673093156246795785141349896678804253547690798484554264345499544478938922636264637552081455224094760937820227058139918478300996617487613315457092909746713588859371829002039953350654893094582805272033847974864675533861699817463699505621328416290100600272529692325460650418032939954595125262787186672934020399528524599160258296146973961377081369358452160347650525332921976622113090383124489311041050308320603453038933454017945486834678269015775467782437950783478630422315100799636537336042463515719724111173723514269473436992850458356172631989355669574581951569749448712778333751193564860392301409093369886937529479125481681353737987921161855856073613696002888268573252183186307785345670775111165487368885813158507933159247514014759741875058325083598831388720208522649602555863989864301310312656869624039081633326142688089666926719278270215577769281521938151053468102103383013918578184973451242665236431680948056429691239064670069759339418734491108132802197610808748910391344773446371499103935600962817925013358448196979183954925010398712621306532784485049927766970911882572012755009522202714376070723797300691031176496334257878736606580195511061540792742981160754124437812468932835558799313578611672706765138692637689021442447882726606560853217273902233153248136074156775195486880708782892339992198766688531283461958662583692972994089916441021435205772829624161675469328650256783263960622616216671806321305755249282188261454270937653577472335260353467023475125136334873595074960358458489705359023525635272595138775509900602398768418222470873700024639948513717485330655370474382331924497783579502519568388252243506220864455555122190784164188441353098070417141890683066913730518987254825042728625377001812580591595213715804343534705081746582725056659412518221161400079913756958313193577337296611731266920040374020008015098689633049351197708171838006409465585959321133595154280380247606635612651873753753479745732020428161108119365250096892245912778411520587169371342975613704571595412933363291948561079606210987698128986521005168986960945833841475610578049371315369427351416827432363239782019045154316932413490588551009066061760410607256000332666902186045761538277894163017632457014816844923668227228292462250352709742293855585358745605013806205103154907751684723423301442351579407668407277217218516595727457186789156508261431907485633549296715548582623581377291300938621499167743473082934700494286386702074618866072391664019380673869479766472478621576703474745641971850263450617512530721687787762384032519084869087915699343554310938765255592536321184630835713925657012126371755981087124314506062513357268017853819357663273902678079269109759270580592966714066666048545319815085670937243687050599369778227407566334885619408479444818194568401108849725991497103044631555712857742661855724173392571233359755902362322541528536921350402025992873566945841758640554270241034431043590149726453013439774509143646161094421137313636052506409285596186808734839790434288308509855297240333308044183437180650980368777729934538802370297973630217751089361764463319382766232841255608131980664862585968944920060732092287625336265957781415068277253766293265262027133405293433624117248901329972059124389991119403401179759200836986579102119846570389845210864091546464945849030773990665614198489928427600825907594882367354041906524501985189677063839955093746511801453087704139654605959982145976421227430086645930180802881037589241829095393405471900850583543294415228219949067024139000385833283972228782296432374353657893704480451215874603468475482739325346512234445374079110635602715752127398782170022732510647539432061224590951362438555411418688296557180360851008796946929780103063235830351248773539271410078603459539378479512722937444841328107104734510908774832881202430352646019978335590217435801082787761229243727660771889872479879562828689654438971869004859588831326162710891893890279656054815061374975728350804120924666564941916187793604677286055631124671465060225895979725114322967863064885160719474036879004638165363715864075849425682620422504694301578848392181056753050902844134750590738644629167750223590440434860395669661313795978961768336839216055048095136884533129518440873362263172798887904087568783253932303984395366584384902717747913029747072742327433483393346924808239919803463762213223922288042633002077343170466711429896828035797295492660463381785794452293703083802276935735732609535971034892742990447010332352065797617705645302511748524548004139411342496294809087310157451006110890366922706968611022368905442614031038463814820447649901888972453890451380947055188468117620349715997051103798286009861630636698054145471266269963312385809726968777943108818186658381713416184773566614243915891868273061718782915015780796870310892886368702396641543860920374430968063641566380221206143388046104702943309687189299396745941976978935474873151821399384236111638218924775103636360032398044058593711180767997417032430440355216145533099907876997370718055393094613895426460426045805622055118457608242941087316383906015716215006865697348041593590363696023975568016223001439931698290041136504474932738221037277505691619503184023672461171460089187019151980333709318457528470566110710973062656136653599826404927479236688486599484758670665967722844827253865863580848000635628048137700664668525832366502645603179631019243467449129445189399936023227672897335300912966015581731048418417625275231031926416556330437637525412174879051960715884952836226113504523110650867411123730615757413651410861466046522832464442516905424424642490870973956316158088431886709199810228399871694869517062391708061649028093942559874436195080988355942922994474826392270242012756748739165817919215223528656476137076109045197912823323322396064508698804265870512214549297412431062082722679106800883557931095424759525527381957800300829376708506617840184714696984557997559840131746608088351807497004095302368890234755077461585890482063219673917224769109414496434486137204525048734508978095580267206358795453585333895558250523156499354303920279811907553711628983067365550694056474034037887330554634919043536008948846343244576725594134110355963811915298434535004551259580609322527953498786335628563286190974424263344008531671434534080306064764319515027106694179587587162550379481644859892135081931361661950761917809101561850976047017704168689547906791708772087289020568020566854353810704653276479797190662290831402037429379406739890048376977479647963137713366537980333475878844613174742316871160013322801908356392739034074809740382954821559595551768110535938408012396947674089741211777356871755271192897340088157791232661508567990658677837830325422630143847980421924294131754801537660236512872768926187465803552587702174348526418662358460384550288062674423395701975782993242641811822587730006314902414057459419663667268780941541383066581959914590567636020482550111977538385914137191071439890071164455990909597544112846003883200447697257738155068334210385046448337126985724682949098164254924169794875715004004089992303785493670312602558885020488406150762954765751622481308316799301407201107072499306568828448025290124698455096277076804462308789592550516566186025122468178180920055249773462509009341965461220836725956022309589828133643950535581061619151946738330253155657731682231306515770174929943388579010694563038971424373345300947664986114799913943770579543418823597022280533813815917721291008772044409634354230535273740848183275636335342560517842436530333737014912190004190654111994344417714592167700553543876729063819140756120223514194857545253925786985996864246083734626634374737308055070847275805258117173730344885318372662285520796681748115495816061078171210813835225245280306134095338199228677383398774033776588349672390794387274475735184680702829530129459129609766495677693072644580404455654275641125556807338749120641118736416217371882184067954360262979456518194903365329219148973291327715973200979020682056861066273924534831080578476902214546382352838810023085359163518601016533165468280715466560458114172000958153138037269335467429590655200630561361476044097829305316601088126590834482822920412467951485747263745598488321182330931471508859513148219975826497257886399714679950607835014718913789113632154241602494115097408944567587441988175709547758197835380484401747725720847894441827792024397719832626867698761519421246719769679572485870374602981103711165590740335836528489396470475060131748841487389421651448570646221747768839800894386415055348414235832768195927115531064189613121226975137564739537041505560986463851840638620400780314055697849848212445311296809622291663423401847896605902024929221082005058244730401928653970499512087139873742515302216507173565127986256893090546294287961014393371004975123936419866047789560014061887887233821017043928456740414923400598219374979314699931912211389764683684730966269856651203372806717497132083351075628083116664575659996228234249856185430770712516452665778586305737165053677667112558409129336760348384640063525834123906454547859692889347850064860956986915527407023034821681259012733613346437361206497260756983899643874496186175841010878625822000808193770034053471251982006874165282600968462280937583853295941777928678920606319900731189415793246357758075651093753764770505024502128149581918177475125624338873337191914134434630762289905317822467525266311933321392462719113822878153101241683139051383668574309045155732876545966470846394492527165385922637734161778775849672707841961430215074384341900913148809989118564827537108923123047834750212603844686286656050085887548265030155350141929678298969965403849469703940639971850612317930076084465699652870685128683671778576192503573549260462169780121440562432577215792364938876766777499669944650998343735586098810766583066108483014483809467517695593180209765295756572703439735751419152857144791285228486383230715744317036169968704897582905169829872027860984182084002279459065992258184060296246403042906066000810719879255699547126769374228214309100006754648385183192029800517433798791177411994962591068611084704196434585109074001336676407650425605524707039369444724951023197266605593064706300220088102397801461093595263202300891098569781677141957456970649732648820681336092850408267992149694201643206671979147379858946945496258754723438200907787582136127593526046399304785357645481608274090057983017154376791639465471773462222750106614698704162180517155386082600262782075243363549904786905716672217349888977756022932840975896385047917704537037610797656292508976547080096552598833697430907122431018190467112819446698253885321231548124462170112327155918247012682148041448573873362628980113497775912476371039638398069019248697471374331766241093556247748147729455116980481583194455111964604720710471052529216859875929245842184174064675769630381984564791786055321681052511878963035925033263531121087286229156580475614194646440057189066748326260332370910038840692823096631910217719199040913809393481654571729127497169895225591667967931910979780429730662356567581495909363022135380716342670653892978677170859933987939823875831458467541151791563207695288092214564972279632777999118594378288920951354739591391488777062591552323184581294394218113323128139046675051459686350782902634898850866334270268777660321620910690969032579017815434008613179251897070273503732801211169768435949824950372958435306274975548967693854921457508429557593659099585514931472512229177505712781644144545828850249394466447049278193626762388008104218186443815456784836268879590358473407317360771212301767377398772129064415503997957656122395838194441151756136577979752589839281271992044881657874167014371846717786823949021644585988910692893616132550147111951962074646237617862512796735808967960023827327638543389089821408424459020399173471856162777117188516614254096027486215188815315396035056373383268151337436017387215555296862351702022356874929248035897606092136607274212993204328800517620875274557196576587312890997179171878867259002031764133393901527931452954479978933727764682595716027784288185274091474932729582611916997173197291028826565605397005942351312554073612517001302531250854728281644506970830814027476067702216715943025043848810546114199709579665572934458850502674897344092056844321809493156353368065559237686922546141393636862120678258933621931707753330235949166083277662200291519283909056602658736827080472189439800321462979872308830265015561271413251533771649474838017270180842951086997980261585929489739083036016124935408167358430454512342019150743739062312459993153706708873540362371486082527148059507955840050371263641130058810905582614648099038015457481236411295045670910063595987537524681626858994884707958238830965439742323004939195002564269793405849837204194262625527535056608383099816160664394637875422078747303503791783377638768104828198489262993588621709727060268048973234827802073259743798326119390996669255412853045282567662331157417238719563408755725519245543755116941626592524809171826520065382062671164840024804169516788745413503233116210823640806253945314526245185923489556185539194127896954824626447065915149964223105886985237217338447460475706233201275502810913048439816795657820426990770446843067063641320226546930746033567162734068505198996754551313817854378010008204726375576062891495657315573471201940666417017928615417238780225129340810455355956370350295224515985766269944483936379612310503395637370534748304385437399114367394750421838491113464965367158049288468962230089393035443926283556126386102395672231401330916863695642352059860289507948943207439741941220270126854311024334474185750561796867852733785559758628101800170606079024008967637963849416652954043044771625123100739030627750634552593256849978935147538424873457699397146343711498269917712049597240734794406653691867616387516494274583526170795389563726228003848180923129366889433445716226764124377113052362909105728032111172406129212010716997327820085709063579230235143239345316678565641910592527550501813145481447695566741726301708390019690727132070765611626307142629920957961887870319983137387970385177966439565290214954939176434425016199150143289313589734935898600964227656441620201566295732774595786444978233683089593646075402175529747722391929417861594100970688490613775691534472407905181600171926137441488233267323463133147718342237817186607473029577328359408122325160359002274040040408594649809690023073042539413447349314173532241288681721942188883907720602553322130584773208438061753832691918041078356222189819720631451996794865291478301266972914217185284439277004481084061383396175314623498434166716089770287750861383567459480393259807639990447375229550956331299463712628798571303309627309284531544567648555155785956634885917464586443564159501764332526834330215273734495688170127964737205746998433517898135789406122412607512972341909356466211938136086967183392254930178956092883947444548306976604239880769639367571071253380521852653287825172242571143202632434979883837472182046738254159191322275545006569769351139411575933148853689995374853979312811574908857857266559318528688056841063385393402966997948187081579992018907766017681341011713759444405652402405942140939613287490721585044328413951100532911119072864265759970501033068156037278286954250965291723266721720117205324230357458303774954151729770696040473017571240988915220930868091585716348995759218769090663911697324921951014566688436750518744362544567555736249201163069887697421153437996826708999879013102950677866966446002315478075641737661677495277137341377491614720032020077934810447295519981631356525001775042405632891410943459067515968347034084778029981267203348900520404786677454509254239655609147345429506967387204126990100589140030693381567273408599299605535772048878058383369430873135813151272900652289800375057509863665981486045258713297022618256706705684535741209227091047719678375367278472918536999368358007438046553349258396005163666620979089390245660434775736979204650720113454716031970853490576784397725155910049922649443400211834999753784968838571206894070164581526358945469540826949762995471888744629924098197239292825680822071961191827988961190245065470997804824518036159792182859546671387921005604281349390123355433099194447613157597385756268028831425255259499116881605315542848337537802132557097622520307250595960507375945340657171111030734812970825203466372831325469832783205021108559098473444940904203897782719895068427810017588389291687487554545814243739869954946547375891646839732313612142816481931868362778211857327418288303495575247692117762822998834140223718194406048552072621604218320414502671671164931741470652128110533770547634528057644896025853022246986256882662221945804972885293350228551443947734320509598721064729980875767128275842953447920880931055835244973233396110086203909464422510653018972475069151568752097163653953201892506943440044332306213918716822655442671122641988476304344868200479629686352591358853885517964973227700705939769904392252897160284599943642051850646136545241512615991186935356594043095178938107476797661392391341922958943044719896361459345990443127166847542938516412503346196185102095182697991425297905823913413603879203703582591744404667403607901542490551470222348117272817852282068864575231085504995719599773954488667258002590549417551752108525530923807486966120637993675841920948979097939011930418907792612400611505746445702874222243628290012891895583445229011640739915516744156015745434744927530868579004850972188612717437965738845666741349408192045542378141695498233205319753170294010086492629100393996619190787368545947082970584731050887765526300987896927840211293254586411549047829257970497436364993707590277610902705409520550182697025825681850379315068848267718741539074318871938709654115787656338640182771126614120154876485835426623978031067729174193487043929911914903663141988419110525483129194867558345247888562683150072700597414732837901714367084439246473912836639027700524186389385366355862512317976092128344440696905607702360361496746388603997733909012694067121434240509386800732008626451858647712210192577393455457027099693634281429516568032271666356496100224229250668953289023100354455211376547725904120903264206717334812570977677923034956825576341585520792206626337993524076684377157687533945111440082742670835383347517143064457646708664197152945208963331385827404050602312169610370124702765621765314612517268886587383135103362126143632439444110647172955177960363124149212340829195054550715900880101853482466898619014187186107880746035527601369437045587041060447969671468476273554442368986553131661057257193320753256375357182701383251263312824347366781942354684526036245001010500887837376840949962392678656269733075497145373417632837835575590407344633212624574266618943160853770870479849758664151307646619577824031405402942543304329730243853022719445090403487852146599000423447672810845542394460226413777090185831475318025581980950441535942277186252217844895838405449576934824193963576902379134494736306618001043852347202659154569407952983674974656317936274458942739123330183517395393767496770047414770900957680640573784678827968492206444108131644618374902722320549869538743622285524449640895263227424488801864566305777218377643312966306724135068891451360141712849500399163777650178341504884054135839738069714682954790378423419430141251328903410050268360225938460507720374982754020170383944900766799619657324252551061356552785739476164080966230111352726521709047438938003522244490073311807383673599919669572218683818983448876664682694473363022265431608506687464371627456674069803723525874675296137006242554822412067647501283168490348167621271905717681286606423235606592672253094702596349066983993727081328161227870981988021613706829612770262281304616648456626380949871712478908390856005809426732425398460148631833077460973575284250817744662269090951245325216588214442773205908234242774609566934573561841767119348152945711662464384624118180899125323877926925063406888615959746065358157470004780491690575969776959835110888073062914642295569124518161420973087195577537713500349378974001936904169898572346073884674479185638139264240398307884635752287189201136065204242582234340594974762503252531508157167132148721481126509637911810181452728721297312610105032654335401240820871545055309303203450941817915874157090143316059959169926072568271970357241677417853313108905812073111964258604835193998406221759071898215369677469699608665283141849470210492546007114497169194369630308596737138210675350480068970477435110848605948090111216881423522523436835390615008627594603198553139513082415691580273190518583657722907178524032310609100789733596087366136270929529061902542192550386142306757201947867604141509719825423934301343135030865855950072763532046693063596111005982103704179574190173097872547124974279540103881921328179562748166868720103555610142093765291356708852077702858165344419854099001425589111748450111478003128770468436102555486172451369456728454578052374013792012472764894459349336966901871320784325601826068828863069123228478366397924658864440795645850933002705847714305891144503485722579162993367696139723035215353875820633138038469812264718138027251892458925780903816996288503659611326879206355850257141374800533774191277887427187704237133457805737338496619326210657858576353019957691710871606911770369385028380340871721056181552803094435567660590037144519489024214918194122233675309371763581577650819550812711692751200743187686731202206824384264958805124879061829719327208427947639002441772252912180833466875252656578471161398493993412512077034441586999107505678640002731813862094325663823670973342603127097217526974495459554039795835902299695879135564961135873820100330813803814871623206004053748564600723935844014136834442576639338696522434472443972057409557979503411477936870355466849945731678386575623375803938477574825343179702706124958214704510046079065898509735871533064303934957970920790587628599830284556408283848763999431246444603308092954880649668692876959512894684831767925035409514006844157871797498939814074580258325070040587525190004828461687491930217073321205640736504819083675033154432196304666941150629999148180888739808996391385584623160171209651583202718270632789208346522207534011688774193492345661300671320527301012465577821600849973205909797914289506239199602529888739644109360011779123760705777573827350117795822828510641505354138288068582230602934347810705270612251873534881021034876490491007220148459355024790158705015833921021825040024537987668911747000171881220305672631230347329169975692521388974824005328641100690720565314423488853054367339988767057016604939415059956322779307918877108000525583301607769863496922534766440199769308972627975241478489496334994445921811025313316162342594771461587405087412822929397955612231258518962054867252008257676544477095425354292513559879732018544925650004439001290372342058272624111015234551395931522721996067489550922340752218640238081437574924904669668618355072265709824864122802035103543838249855079946147458899412400208080364946882015126174480963550790831015844100905970486904017955498916767530453580931031783379445524776666205091763931671767725053385736169419059569369052723983350057184124680127539159882617767827446880852954196799025987564913417730060328333957908393732449224382067644015968773618467173996134387916032916362221075414029881177577745430292201892056414355186511689395349989390461708418511762297307397600413357224963866827362255133898291896982392790139565748311232066754305119117549117356196535971217944971710765482886967864015439177438371860595874201812878787969537255216993054816655974695420618796418138015586446832351796520862665094506077060936210422352569949916536345403921014120888212385900099331394661817439899401448448831397275795508403474920513400982960963804137858320779535506910061666892778775074574199333427346519662524952411133900898312301266401470507793699454213840903255401518058845235695172184200529474656355333591219573770069930148643174837990038379702134649644231649284147842328440886328839280279993510981820889951880322646745550920019784576961982394644839566361543850710549267066217856310247030240769462450608151228101501086994405011831603885578789633921384885695908081864172033668343968732737824755212010052679944726188256759125241143262242948743751319035777608623715440687235236021864605041640723509796108591489906060624730320420413790739668475331566245397939537713743524015330435387903025222208674279516264830608061835443089016050055882992632540955479941399070060179800581717536027291504613407235751303295618906260236819069757445928000778033304320499810923193250684020571276179891461368498538536011043164493724107391569190981960832234274282537323559702870695410672993030515174781986369377787177419885920644933510153539507753356175200334874992604080899291520971329358832440121385428312844683023706863597122012173825646091625245679254857462483626879491978808748670495847333939951074378143732793163106161987065424875023666519503717472575145857358414208588222314560217034219145345010761432882379973084578690300837373660478486503212696403884739818717754397713074229838139176626553910342207334981236992226049706713825259968873652743381795760889756843433655519735559238272045719265530912235913086764447040702121324931788826735801509742804361838138859256640748178711866006803012513181043680146573004643575323139687601310490084911109117744579218119204674707811026943256986007317481557725055944957205610850734081014134573297404351295160166539047045755622741068650648736859411747020722523872267833046809607038769345125946707927363003765777151431724702410345330826922919341741946834456053121218401901039799281273130668820414432456018974078743746062817692636681754504393830009340782540290741258844022991749026741700650804934269781348413244495004434684204055279142638227726900972455740129871299076188466322808433145185745772685055911123718138062533921946987454709282676495867719823880061256343917911270905054849208314742074461461027404926614099300311575006639325871395673175027144338895631489882456154453384533266758413801135389440750205708865535389817626192239973534873022391375343404856055565663940453520263306598115884578643896080675327962183580706384496339926865638326707286863692858895268232748049287746439291617301891442527206298591239654165557780217577327631935084848342020265434491687182980248317498835231394153686633692097435945005727797698565718152066967453938445109601573367932467141534972202943365154159523021063606737182147617733339805399112246790814854150741944055122378485391328959352491909054385603692198011515102398078358133903341269928852672898670779443186243935713554978147648708205719168601052680583353659173689935212384001475290425799124815273041414086653805394653813061021623849106530341856011842718770931780913287388578922260071948662232397091820265730454489448542683542429068010463729541758149113466676855631176710827170480430959231523691253955434165233573921749618667949129145360576683339827313700751485312430633968076087033597249082655345133798654698907383249494028803495961574068368650768572308704640763911314675184480852358639470052159319939496365293714280115169636978126180681873785740190671733126620707591069583384409608315255385189692676856945790582414698069143890919955832619644600153227372718141854187158796199661984841461522690087294714303456076752870302324187897218661855016644850276847511885357391695326204808422844625219126558890222341756099291538146608519690037115153616490741606295280479912972633841259489257999782248101314506736223038216732372054409252070776594654822176813138945953432992151358755142155966721753171434395446633070147616888199283533200840311967579512789243909707656794602185116964666798972187739633138722555523889805987432394507711808771272244631232761416131696847206018362002295614416141104376403526076902623523069525877238702757269189616578614616324619134726393159223961442745852874417255095102433097539206728728142373349680249153071791793995751445581892511251640752510484047412009801712596144658984176500199216256351946375389160778854667430276841981806611985919531318668985358096887964482982486119684934416221492767768622302790422480291732889514573275084300190971944636734531898715266783672813856601562485293921337342476619905754427974734705716432473066627989032056128053530480932203430577097760375861533122433302264161537710764998541480618626637189443295025980329353346129479910851464603433688244855520844099619850541438760416303148420546191890024673780099400775538996132849043680162557941962006881367170001160431484997932194476392779510057475617395115828112008803427670522753603671533371039908682640190957863080789647269630736522692400453059321071357600826957545263258530419248736719885931798496352844488356311096318891588464555690995011672661356496426739844990216307357023499536238955687602691630860452908078170611180462868409145269810811743792270884504714428750076749114322560709368820209517897787036056645889204481471168069276063553156640192437106837369039693430015351506542097444331346947513364052579975401516389663699731595782911342560990173288517873654632580908803118248432794459664267643319403268760703602103775902163609394175611612794030599885421239617426062817371368600465991833735325115148358836556352152541834697572053094889614147966405835843947225100124861219954006477546105383390999816777763799050209691875702217070922941161190246549414915639221597620558004861859570952168090242994950160084082715076974493347980256830726767629625855877562928174664961947303269952587044794108738667416195221311568765690520511462443196388599227056230086268345678191762669045834457365060677903257025807174128380711837323768230012449980620959709576716833590896222172295674272045415292938626356843331880185371456956027207520790269727909722449726631457459455236732177047714926974701892726251175304594619615149606574190285077142670179709399851335199578051877610897922485301040613872426865108947255960825209401119328382971344999966532963863549042674538098538268308210964669871833823730471928779606657874805407869780069708855613861855073211322851265590014915700267630464112303818694971029671198428456385347789364172901804955081563649076105178632846671736199643329446498645362268173079969405300733007367741439437303358846769431361870335368160714467360042640610300819827805166897980961595358170139710402739224267306975534405944440824652170062379942069393348016456040735030972468011231192711451537334776700441131541796610174932724794081486854402033538311452801134455163608216139194165725415003167006120547132049533451614385236144926109338447660703023334199151797526897121057358597842779391741007169447020991879567148031945552410077570861674223099139378094974521456879338769323222322817458380061423621994900735483763452312003889052073292304240438871152456059794299364441463810299346505441386787512709043025675190292556014838194316515032965410420330411354030537377963471395940834717025356160409429414337094557091815114113842505503074337356550072928317603483569072970357067511586446202116424788966431124399622135040665067894177322628766047183499770017753538088231134116716481220200067468910973478695111472809064889350190754829142668318580590242239497222711172289962264981103033735831211997346520948917903216375897915251709857256738737757274974815070374554590925841909138644588279780695714414399067488651840231068039495454766344843608959193000747770821127749048929461396119780616323385586560182209291803362750629936322832996387231265105763776773860476021178647466786906344220926135701359133745303044300889137649039284641215147438777161103867811206787180444862827532963439101627196085380616135358957765385372618565529058432218221685607574315769770583810075068930199941089150646309479898693684443791778166166691065178897996923087626890902531586528392868056991962574906407227721715766604272743874144277972462301032216920063009146049567106413866917858731963178158129746386002553235894212302932583806413041623093670094599747442852863815950709902342715102978115885672438852167313111686516169218787867649660114380145705173967689919865549116562247369838199680224055239986968573897265333353562458068240993593129923302417803501948709402759325353377471652332271571254840010624825527912478816139269246357594790632699855516134507683878296504403759874775911006064178060019708821506112204558643610735338108212551629043520490747411779519007582718933309853462190043297024654524526162558198230423472506863718519115350085467631044076550029976403031384899823006117280586508002949595964104813014708938399004995443360765045390761809236947691644906716471911110194863933156733492556144753972850436109894258658369663874135144151298267132849168485746820904700902838216673362358493350542819700278560483016082146135656043652606893312412509690691566490751640003510142675190213502465991080136716284619614239602509339151683731502921442001951988344603614340691868312624292325999335352036823509562281663496424834160340486199870128619871125917013937683913828575726589620704596798208592555466691901462348885089944334270687381278431355277002343375007072792021260051357655186112015407731486017013581436770868627378898527776170486350341494304205832859117481295162422558888466805344816653305186400867481480390090612166331159807065872207334164710388526030997989545936151000826697130086233589180668318255099102019280022732604921390028264320327171196596607104551768535276259236638280844375051591705180167755609830458972666161797287393522516789111935333636964325058666397489081697254539525860093872515912604467674035789305027878840523040669744228829017077393693408496549369091521865371928686371402487226261964300455654951648464353381681517806114803324249860224298290017393655020923354283759164958893284721746372174611044547980962313961842085390913042915037199696371289477814808918419732278632296545799258839822679990569512749983387383884888149238472031444596389010163484634286017240310450162599894624847873835476387318329972156096093704254114602836943760617540134664910128004922540878408890667232978994591156953483983571634935977045646268362526409285258381400357871864800240991555246997722501329203090053787157419219756493375708556979145674006724546017546123145003315266171967181973179434335214605691634412680687677541075254546193905950110251632475252508180732491039466524566735080607751677204505624537953160314581933078382498852480655559364404454872481302105984288210077975853950658448895479935734422715706362310233324766699369587481402149276713727055338080940708847441955937747336648452978677249466753196250798496376140327075784407520532777701727306510302105565871242684257535139088914265014937221531712599704497140596891170471581697913661394736572518716058616499543430691555970759781574184170306255922533284392395409670749154007022431544129707247430478894435511716326194708342576284085882484075294348179881084329864408217249344232500504225013665646346687155108716715471773022095609650353142580580934877940218737268034478406654759489782383237281419593898086415023487573076417721560035161885875556608244532611281514166603157819707565885015098978601161163925477046717307366862373319372858824234896499264422828564927704774098591722192124650806010010551377868554713344182075830487846692461554399910270067738383709127128708230292655515789637874605244929215320383998193166237349068759064251051341150393655239317141994621529576714459425804761727425398992737723143946149615137970580819067066450593650757440435450251557058282894624184072507491966038659705380493005809391876830251941768675448600157656457619983832785431920690672528724690237336599627106277824117159390077477149320093531626114902449168508655023841115341594948794626734778126901039249215861053088443565458289933529837444109967177415799275451510295541280647933916481228611963008180510230963783217082297854937704794144236942585771940364555826125001780474337255479461559479230436743008047143378128875457783081011843862632349515176899254648446268087793525161492474980741518841952684331410617630079427833465892945576157078672908468514499070375345008747980270958024400771291403633768215520337046583031953990158968117744499474378499039676535154723017833822234733144530967844989483268412431878112964634623271668258507473857124201209868375109334653356187118605739512931991896925252696744781821053858125945444985495839293221994226598028520326494407687344816543837827808116429158952108155038311761215011804102060606246296635499717364614072368616543730368819333619116212881258716506840044866709554245136312580706144097294997804397836616951722172025160616638247498046032805911963025777285405460751326755390500738013874341027962788419094207356186669105283943204282244916195364829807607381053890702962344668408453781525046804950660563489861057003722024680548296446660972144112634643956551976477859319553355530541479430418945287672626117742486770320855854872975374661832626712668511115593968955446670065991848988459192050272531298917622743311037855703892544721787441267497844673597241066591722526676931894956991082340749617016746536002788472676088831696807717937925853457548207168202348248894087252248751923792830955004302585019567480880964377097486267418697119464850002300350908530306274899610586573445962973056265591242789237968719648707926969438950501566008772385614518089332011229445082909700872263690709572841909236375700148236859494849947140770953374327466579473760772292656164553127690225130654305547972732591453509629597824497674889743883673123943830749917670870741753337363450335822764901703480549567328015460796524613204219344836375637825391613559674137701124337120069887931463838593925364892242040596950218456788609856441956022170074863706945483179137945193947407581919591770640943848856987827072745718332811231024566234934634046108645983850217013357496922150327519005344015912659694922004517490134952298562485451205868683514071421889886763379974128218891618025728238432531132515499253731553620501784729780987239531913610925832249432799444286602285313031596064047848098377323030168815438833500921798578111781998829782576549810433599507982222216705344482276212674872781064197328412866968846293597026809970907847511111210151512279510139634620667162125911428117187127902495072054965219180886237219628013099618512223256023269109561124292617446316222431670318063594684980336801870363399380642092066307024032307427242331191194326495117879142344299275160777741485181003697606940171212417903092744036493717509538040887326955758554812675568262138902452650164321576298575419073327621198049091065438349641352779999317870300288076978956799842176544105439447974808413723537227296552082994504056307682636395971674153238427590594269439158547774329282222454085077499522928859289717781381113690806880247882078278945496931566090239610402752420126470350083205785778380598419433122220621868365805032072248161786209662267110224375682120394856958547200119785558162319253390087564091469524615617599800050134322302246460550024484544480433525996748162907941363348161718870633270010131217634752045738517029434519532236510266159200785538251356955337634077827326980883198326106769524290155879669473622391276104621142633753728432477272432408013980866947233315438521443615236608225375871338349519061812447771863593778087041002800603906408590376303069402781723700353284101303068492229574514977736519512024150441251087585784495227393761269989103611661069027186805484928522385117591108914832991550243233345768597672750968157820737852043686023098989696280170057289692980665041503205952498988895419736696108631093719725237913412777866775976289370229250080322731121131966491123293323724974754307581215524278959099058485981206312793189105411763216698178255335020345416612460537896204698966677889088613056620291113620929976695667360152704313469017126067336749737057047303145803846216551798065796561806667201083977282021490259496948416079184837029738064784507529969300930560127341027874462797293396008172909329656399840020606170228671007489161458634529184919743953865660500511307332031472809161453692867646734941275987902030531543325485337955803655037148963312089949243698059314590629450221354518914561604851172596756366930088664412771933857178034222230664841191205706238714045742037781180641771851507123195668236802097171557744857873454943854258663412639054858239345069088239082684386751254709639633627743776735625362878604694297230344087642924223215879690985432734581135451082286775209437539959980498184422372620254165977790908377679451297553214353078945694119214945297874462558941726068714008780478744698383319590046573725599031252860846222217100509104906534686273070982346882528945089221614632563714907157271146705316196136065029663252569098833240851137698458323950538559259174656848350864093336152891339381772140023629281397163992921985871012143420358321309358626931430691721090625447281355586132637267008657216037203307151569376757790235698076360851717643890376209720597387137915032172347254894585600247037367652842099761769472063820578522964744788062306380865418322084369430030584278635584238471137398289414433835366511514346664317205501090342012184743394341452878325703064065702474067984962775961716519169470545587648152772250915280605915020025155855590869303254754000596839572012423508084018353590099132226803285033507182614823390259739693020180265604278746593916254271656345691515986832534754826650424218222968035728441521417301662160491268484251168959163942287912153711651181627338075725505507478412727271591683158467651655802013475330179027454213600129713078515024085144886750939262548038131137544536046959396804257771378535455392209658625703381692966335225992749146261150539188749253006358951780539117166970176073719171798984427403967216108294410432726693516506925543634442905242328085218683461969743518192948095200632263172446988824492145595015538722686516678311871069216813293375789724996570436671049221275768393712551342546338533316412738483861489530565571178582837158232026462608275405433129882316407687059387938430770879943213525226398676874689335302220573049526958995822122597022990707909219055945061257834468656602677836591210473045558847390687417783717405884779724165713390212881340689126355034197266439040014208312397444688917451154081102221637409317826778812114325695775302636590385229531571431959037041869123091244614258488447229189050634641627159434609933873273686427180249173466929256983790022179458278924029447957525782737354606004160859520320185559379247575037735734520154948933116377241955530315957899441425026682770985343883974988843482579553706826401009363385026724080625791138203295523832639924114851301999488012391849636089782016671291038218097283850982974388100589095493996713088904560181897069594009449930026951990281050392122142091175257934119184369468159687860076827983324038680758577751953549009463374079801440399426823687580992181382054107454041295449329490883404971623144870134282146165324828593413309642707054517522706044685166270902559025035401910263933174623248838993349784088837886770871213446930909246701565661978126541533835179403636340093031725987607857680152113443226807458411507149646104120803832938584441122582010531113258659771248282714613949144749237333630680025013861116000856976654381572814769549080931736191345205462481678853034740644446991033428566508039333770966890298499747889714061730346073061485973058924214630290902423594689673730046122003379655322469269096009485957356910524302290327079361369911596844322469048434120017541222515978859129444438829137882201911727748192160571737187738578219602059321300865749047221489769055561260441530650131319775012100231584880658456967108944267249996153293399539610228325185132962292072523475200431957007917449405338903446233084264596928019360905987404958134983547671316003674032391732949752239258987540258363501023978291472085218707526067893175753323994093493221756018649298635648090875167210725227695014020319445354525998440123093313552098515281094115019595056786738137443855465879571394059363497895631412751066047493289639129328523523061822439186179000309671370073291221759444561488724227613566107824939941077083312377287502966513484460155309926011171331624320289162342717180743310891770468988100134290918877428948975157533899942207249804703119079029259207248142184564200109706672295211594443119382560567592033183697334724250753939568921635808268697630739355156628079172925256465801298583805611836758126948194404668303913271129154508743867755337804769282331668075727081985764217354613094394682478933825006527088195841014770768612776994625953962126069589432150477932946796236065528030802703096896969276920352510285846152448600098950266464605987190744960243182362852312123312525992901393452223387135903172750483117381380776374244115304931108609108591906824307857393019656162079609809554933502986646172272151895074467058924154403605326526135465254618415542343511111460894350800689851093538964766515001490712092318420726343026987445607004442544954951829132797284652790410169332967132931338412217150962368828083253758627661997875218693951783518713354133285264846981009858910067545366921545525833854915164175218809686534554377323553738363954644371556253349956085210344407840602021866342618054644525760463010865798212132895112595636262381546196786711389030683103530550751628760972686169486781306837523501150010637185515992906174326484503460738045885516619844832102049820038415138439561940940333902156242989182988689511001994503832529612997781600634266152623240982754395962582625124309585416837615933629561498192032290675702302725637244182065219884371547328290780007856200866404665927860423995047156504086655944375611817359267615761449971254251258494732249692963708710364003515965899535685961928897827052921272240975663900535415735290796147856039308843633183628366609804392431684895835873914731085457611943357319702621760847247191924867226406783791853264065974775089469507373730043526768870630634852579096398830828058081379084305838768210671295120650067702092175090090574616090126736155954530240414267847167622816898514025656716496989229329505797997229399592077167376813588704151296200905048249035535231570415888617855200039127817930925691511246638428170577103523838261071458866823961275690754484837841780625105270194006000771373052150530697099212170647924766590874742077207774667199353660475753965877113878431200252675153086658210525402855339651029358007542176688439722323726545041682452248496373330272550277858500433847143118221108760262306923613137051903459217509375889973158807508206917128816962742208001274475471925282715911660422860815710769382658928686755939806446487587092350727201183405025791742783045966156080336720803492582078705618042708486359962402119205475147774679243261531487039614625650625877832988918174812251992216926767026552994220593074929416822169747696829372088539990531241526816850682853866677800150449318367247299096249566058493050267825239188041780371514735266159407777201878860596780215295125028068115843695573465459284411638940988808118496294459304898747022714997303930966917752890466399387259642647782998043041725908969392079210778507090925851196004135777401597073403639574905460482651712362498354661860586442442481952717910285723060126552776490230964140772689071175489574880792890565911970068124831149376288806878548143002197557863983449084892598459361837978483086537663737092388794734250699554680756401852882125132943879265317230350565242016060685186053153003841666668753116511422545434634041580775917271683446244216935760504076271498558128327389714869421720117186627602302095868220338829697025709911041240810169235838234104237255236102702039206747055018965275740434639722645350022825185100033637950241671168337867203655731554146075178937252613970124381270675071259514367563552141478474696908568401917897848334110847991362195929925296190432292581609884735087826356155884230594371930422796254369260634761421128776420074863114628090883979569531722503034320639645173896592234972353196983093224447848808049447391263927605659338556862551362236855845074144759553389043191509911660286448392139453851185352469358554370761662346370562142743300305807010469435981107730529388202031736933649405090855006234633964858068690784734396119859456775111264843789442801306704769004245915614292303263058378967309878640041496522450642926120979336392308575324662173935238528267241916921722149983012050106839607018398467966645782682430116586277312381577085090266520853943719662260756757523026348668616598893161634620580503452535230048207934932860100397753683242937051570516845175295378226781886168723712585840168865052521719201092506549301761235009681044439033324187046650266165114597857746751051140821469417928240769957449466642451963950783515135844559267883615421347505405294651845811905945552275983234800806105865285270068621383261778050181946936634141874183164240095759293155861637522155360547748452773671839745341345915035958083733377524346075466217747675806154082381077978673822544465495316668268270233451017384496887170860071451648496209956947368431790572056716710577189281360483537893553048988751211388211241581998325602766863361478210780659284164543941554348239887266177977733415940341365032351775261509163699375420350844086036966843614531867348416413102014351760980808977994558516661090149169722407415755707781445233023918245534012576565668754688921106528736795680361457801117319587290167625708042276641193613616388906332717848085812051774192333962705521316281565446261909177706374384197228000004534268771282520992646264379557459884084176900989431612822041506390844272723593079729561729251613595531556930924906060261485535883794468247374896560906392741583103890947234447453609467147642538005560498538175471740809165172226438820613545819974831611750097406702081484791850122803480575190372208004050610929090093708363461281307653900105902661677533004165969931997583441688969564593862653239224527384157997679619341656167395946196165250748624370195111038704296421672014655969695064624753622339039907127999282802100704927586267700906293543253123232460882674514304276288478569490452857840138770406627382671591333689655433477028114140128864768353052452969539982598818071972332784097472562761672629824865762299027137227349093396153317547710601109250058331859909220003023615893809944411456218457696373984654186245772177013474029845189531822585759512697764331858065982254272920505228060184626980963768886127821102265516394096536333054663973145730212258765693950306541159249391128844715689485810517141607951376379048764090099754528093615544571520990175405114199381152551581566865364759067862784091545845278389778431736047247492712234778973594601284458079029260532990953015314124763508155291173181408876092044050662783048259712704009521697477845128302646163943475373227441572122631763274890033229305960735719652126860497691128690436883904001317685981805916367870759942850180830132789269609353318106412792460221810796250556760298487647255713877422838286089937658548461221787069879560846510333444401534668157026582505421045817468084679611736333532246451614939536175700273409812796968548782183611237100829638914635211076471926645809467254602126951074819849879651790648427404325970774092821173473762581991424439793700431042835417835122992873081748008701126853465065418470779351370260447060886550819841295533339519160748013831478309820996555365681346982371108988989833873534260005634319550012045327186955296509733892540793479347962167099966344080696568361797552015684507539896865374839940117758783115182948553864384084580788315049141883549011878648208824774904544793168698321871239585960798044657651895885487914202799476023896985887469266170329653097191885895055877917644514371570852923807993195956548235455552023698189837162100772750804115415929986005199279182115633981455629680510264159203475714088950236141477556459060958194123846024505589264779817406388198366367378690215824927517095819429079517998672883526358931341615357643757236509756244032373942785120685334975188767860494713132799419405476828026705156585029250279301520803366585755915421063398254545971998444710847925136494230674068013888630964547329297556974527220638259703404553510886158125641717147774654268861049021105472706379102830929908804764671849872533388027360463981771540697161336239972757541119769941597152652249440020029023304951508935496319133917607594897056463236411128343211191819865174898399433911445937714223144390034131256709327803122369091932709996802677250087225261490020819295948442585641855816719448169725333782099232807205019270949329131257210544332081632442789448666004770072928064921805247252365413630387135080594909951474881570620086638256396026931730533653256688777910814880307796344118358030490209606053146311419192479626775862613791460806479443430303481984655414932409375514338873479115022815185631987348617325533647089801680435587114438101311109108633100704254932055265683371597127787030136203830996973461266979491593548009389024242536450425253891215182610872806640942063441636265984739050815345333891680083748722446992120507829010444356374259767564420301713361968936302218435741323821676320715743859270611621621992390337431236637836983619302563441359148136131834522953411119292855869211082002209206309905458060710365415484483202434203806322620700612586678552247285448631511784010818553696152929234343726502396960889550536798666306833380003568240167895634000231283876832170575831044736553587482689369156238750843602363314255121494144918018451197787677835250541185642817562714234143914689272130479056606048363189111528395695987403730079262972348995404198120016958184932504495841791032196457008793397686546709082173128855044016555756398787460850343467013139875779478002875881641728184553243486752811985756741374701015956671351997595570923191820844904606606530040942344995955543755238863866089899228145638297580984244729825170769890230994364185867028911078608930841963644975500325877666727033175987762728612068133188499275268573509080543948249770380341525364945865663470364153925243391838898943108034803088303394132542360202992454030631815354540729910525718559983137064190397582635899298784204925772072260256310106629850835622697501888956329320734661195465663212775151949868318910713700788640821634630881475354413221624968273527970139270723163243430391136643718328752662177951291112742435493844442557931985426949485299543210266755493504935856337350031499321818333425979996234152116540467179157216621605113922905286080725635936180665146703400887791550695140606426908615737816897032309566208486533767471752611659155950038605887197136939179310821681702400611982735434371499540536290746704194058022366649215003745385073810923548764865869936514057884071226808146994709601805775912501318241315807830502036815161627036335232118797323755412261452598881213965874241171383753998816335569908647987439504770432207414280377985014934042213068377221508085109117419581469992285923259720483828476347624518714599585884676561774122014639814081520963020859036281906285706220343892433217210220636281989924592033083371480653658274703253413585742701506687303012221470945645475254441202089999880032958173097292506818970508166430632557814931485864609498562126983284206925755984340684689395530547504091607746670540400598354097437041638289325337951182187326638036084953528306922783771597787370021125109069727408446595281513425086489659033897920497007341045746365716818412678893544166394365124020582405614021458721588119593515960819851754535320154039375002001076796921781436512880328230636532394148491445483253668451031855440775699341023009779041621772977715530618796250759958314138229242113605645456420341880248649458673624718145054783456644048078332053035302586564563122944437330306652605286951097808576966594701943394133625546581164452821057003214881215423138422981690121578831911150070736551576858036103354266643217432942610785651998889925929451157024842089884199162735868662348748075850987013159029626657312955862857145851493831126414316030029217742967558320835997484358227379096133665170997273552688160583888739627259476263326613189489886633975732453872431916515265855223409646327452055725096119748258371772217858297683613999808667742226460998422533075687301540871914002933214458910317523496488682663171143337252255959011068534661088586172371005770505473828586704296802533625806368760039662949754225809910252238001861264494939568634731861703357462242025698248310413048590218118997670117482436854702104076398669318817073801680386626122431816652614868053598789874498415846588557338338423440615690815828117288323379337276030539619431558176394990127697667668920281218423727856385468010535357741924497827114530237661745221629273532151476452754376897076961953373404444797479517372345905111100289591719119433277837069238681312330141674386286582684993634722306084040425830646830387972945204944454877571484368853949236955704427916349939172405423203869842042830249339167568915049066931976066037292387455669065159096370752751198302637954361086335317029779960105730416832234112399155453649584193436705302547287472204351665870320401759285119862281882088524346440798361118187705060165791051571742732258165354880891110752609432666578065290933007370963385774525865108486886050418456192449034613875226806748831535630353718551833935105583089276200382647246153637614075251980199597565398274725863871266014366221270229574677798900445357483959139114817388893367616757812373456576817809036321974949529910322593005802080525515185791848919697786968286408832414299976621546424357378094746203538882926899996632205285153719025984323891883168213265215737677050712647482635014585426444868848034272561389534514319667769750679865626124376176759145597028263558933088748848661266351926941314752815830807269114232517119767727997072765365027571445146321707734580750482998958331373894001372678686461505913051606980784284915933103348264555714289671580408037124409018859693484869516114400209224806506362302347278787158090462071437734916399509996375534908968899155146899352104965482114463021241087226930478474525796470933905932356456693783012141512938201585215066910247756124935523567158700232008978274235168963277894505283227653619992018156186410223220158808987252039047313108683119729441868636529021283708500080553210950852709745675585818247680384061952972930904854333075466700636194130251095651213553354515433629856747309931176286425406904676092653343711051784743778593614205988495206990339358616762001820823373468343008031419347980096512717486717713187468986923962711063117545377767037411672820008109163644336678685564836304936397258716542032221191382442777762916810388425205197594173564403994072075916861294407932723049514226058852183132044071730896676268921899041053013483290029901430680778126655590110760915223159411826945954513287707922389210786886697276319444321718147036919380600662709476042471840850596508429360985120089905578291637019107068040716530400428707452846228022001723686088289489313364155205287303341547833554338224736528939099605263608553580818995432649146027452893176191061845284600544127590986055577291381267209752574393238487793144944336454717262401088114983807304402739605426629862825491916153167103753015183765257729412939544325932137806757279926282617794680973550168723978958746939006407524938347772762605262044722195549448706292928826145287728468841313837003457901944950407978562237739478557062663770229061418771837492327669416207944573151121840104967723850037287587863528802305818634486503149315189639122218883777047499459038660170620614581172585256237350586657473454925585159963323653154219107878461621399219734649873790474532865436808017089768311839014837499396986656738495871994174827106396701750855066304737663760279003713514309390838624458555664055261820160577884408094487172979291454936123351741634505492288984770712763950621412277152912437266199481782475252283670271962819831385003972711716039838503547088190868188554927026580602699390473948756918390480409320324937466418723942946886468155721148617270366132403631540045464945557713034667005889704971925599441306374977270075865912091905840330696949943291438792912422761250664213251682860011439601770426158687948987366698570436558895971692977650776975315177984191187073087830621850259021730808913393402158524613254416772850907754908049747027801163742289958470593094455885182258177780100792587666859373624823481475032800354484842433528569855358577402953026252855819206483816169437146082184202169913449939524486319324081899631767442113529767595143723205816759147811772826925975265014819351745009762275469270685101553026805539727420036969446058112503746754682225391954088502674705350435809614512874498378982475349678343227903000906827186296318803970106185925276105851260926933178043014578895796564229634875362067491128613436317370899212678235765199355599333552250520878378481472225065132652323344200054338558425080780554077072334651046951510138766873579295829325830250445859474282794096092560806386596532964236776121894175304144636783658524928616589704349011692020359858198299969788474176055033137617395238222846105385919064754192269264557511734712138371007089920625719017816959825727378463327819429065830258507478899686896600292920404816489461386974129488328250225630699327518996550808686965980985017245825242575567277176803976698467568144513324046652963854351219643631253628865671482774655733447517477941735666692777441343235846538857163754067588623024285813723489328444922250708625521111255397609291394247768664458613841672556760750258608927378845661844638894336633440206016913112780786408559154719401622321412121073522831573813643766974833586985464017562625037795347103251009857187387693716659975912484493012905238183362653937615006990147135732250671647211839657632823182472596558900578023814290063760772243317923457119441547893329660665726343203187375359137572302581527965685974392047487075721482240018797212993625603254476660355289194261770670063934465702761356113010578434201454410442762554283235141503815120966311388857551904540943071724679311544816610771422964079885318295237922425758239085142220626624115012265733903722522013562541358485231464807954155842572201243705132872291091890714892829435909650470004849340861821830655502272221190503579279859541519834428070934096388908595566089120697025093712896033286150598371267285443014539340470713933733331005033114298143852233867653624649135780625097842555465600053845634857392538472092120431660304761419711325357747921976708490244441950642697191556794930817122053719844403037174292805982202241317167388725724687894916793299577015016184477342018289711179465567899428932133604922432352405477663336894384208243570923325157110806059788803544298508959245389719637182403496597714280836857042528376595420398442598099953220987592995067603343325698996952040275665223686415446675629909194302318024005141532551583768971575703082805220292780291277174046901844466711199233146910638524318640556303144007901735812777675250670237014093482927870577316821358588992028748102779478942863053786039925830311406971347410676071865982843851368835236389866482435831030622383692640851489988879462318716088253969532342593842091493536949220141765258758225054302934073544172177235871929399946502307298947902929005813248189615317509549884049773360159970736851906647118475444560669557230679341277332654591701505182187171864686299455594932916109051806755866542044833353964134085224084489402680576880238883416131436570589973899198069865828866757179942454209555290184777777771185346237924134351156020214536750521348000565000996050406372606198564911702170195597103844554590261154865776101598548435732951769786954449067991352588287134464999379999284148768089712522105243496855855823393980287614664750555873765730664005722264761016589577460916891210423071292419944012050062323437700493848271553653213322319572540696169738685101560223904211253320613551496699899715733341485389587736591198029806213198752883012889354506600435793074910866696877948080732618766681121171389079290828094998404333120200162878279572040430637062039730301133474502208298511661575087496035180864876561514519611579472244610006898449501376251119990225710193897779301571178748408629895074590269945280215684173150315183874849215598531350022587885346002959608038157321879712354362170903241780668860411121961675210230891323876220750472911390099205378426208660862672247853843325348906505033158376365848827750195138086155292156242893862061561363086880556957127875831780449496812505764995092037997533093845451383079046007997679620715407703122298114503496211170855105057338732098582251899055528771178177954287703448542928089854228922605946104464114173787433612015437902359583523679106991548057221973559052665063931557733362338157765137169206621651096456644625010918814211174907732922262536248841472388606568530907987296197884130034091978962655002275719734980666165649834821007069975703998121433987849356588657518242112170423785133352519492688362756045619516763083518520024465649062737537766288743152946567519889208780196027733530385732646096809979523117552906097870193726472014958712123108997963769699288777151263591755357308279604974404106718542459272859104854855349348334125557198864040774880881775807721001852021507305060511753079827902194983879187217519504053652373562047864066924715098906792908146264540265613125136781777276142708908519706567564146522198810507932914670990761650977604872070932075244820251608383158188878224019352065742149924830037606037918355819061177435975335747993198493164342998205507273967293000742095962741233869650684057866331408792903586529610094759117248036787398891998449210204861929194971868366962125733645584129771853250525922904818596320637501095810894470459305600097657137871005433158410011685234405623688501774331625459010849072675467923750038325823525969219681383459220711491321338893481195791345383565544709252767321502186515189147240042038408218361349717386398704863434508368076666585120505792224603437163956974365247184883236902570532884411859092824495675086569305323390089375912213370274967238823629106847866107835466022005037188149341874562968201008115770524855691685856768115986306083612909239316355421554302966757480654838124682149821238864085870640462029731108494493390174730675682222805049488494427027810314630681759575131761423495123738338643367131946576717559191915608544145182935312650688651445298559739244717912910050496245405113737116350841058121791527744793289130370601468561300266443242729242104014710870685780633784526686564903122419415596192520778911694383889783101496665380296846691752351642249485337906112125228227911203783876971515378242870366493239344115361088050831666816345120303568075604800910488920404772776528131655451031936806051827789042136633061866054243957724139620424736633478173889903485014427939788882494331642825826915641939344899236611042731133929360915864594404659910319709181268096536868148581163289461757280559807620860498921587238919586276704229096032085210635393468043070237282623294214498384324593421036333935539894960168370224783901024567674865843347540787629988507094084596238184508260632104625538426015271638400807329262300062412757001808832164792607352986345012627667929988483290292715106803545780504866302182718146307730429135771861364424129350881498842806344294997244232522878939685344439224075498548251969592728733150493425382347714307637640728243377092193110442856496125944411656836652560430058211665685724930624847999198059404061065203041830696550826659800787614606791940920594739937836205150639394938510280518550990332094862082278448209570999151767376857086182400174809679964974661912021302110839557429658886474951728584212159764704293923683536821492759256471524124726287375216653531661407849553411446224838866258498817434534846040036394487932892922756476527312138625691324325493201391588136966904831681304987184398267349145876706537730581521682844599666944172274135453633119172054643766251184575204386958921494441675736171526298001040222817979167796735702918220826925471436452121714558514378621684392662724648832368670027500300421953855799365663170987819957523823687477352431577510731631925150609978608131603150149344804284110219290049601371118208321046726637780774542768012446028132137901818693335348496482288782677593859595789123197552084495056857313422607336358976817800282578263656181386315878245824655775041187606285623785891465604711673880654780519658789744972917366321529162812291783175700553426894254775333291809157851565708808950005228447852711182987786695563453607567460295203583651005776518602504472183471677397023288766059056864290784475216725592965246024992064772512764517543570733508159804148546982154237445658381113329180439949347871511242722641953059385910637676527759510908016584550367651830037536380221220323301064426736572661585426491682935237751461415532903156981004636604872486256758967674022089394872149291896905493747538054703904787822598008364592374923175948431037912472380351971664451353384236364219668642913559976430983172053901030749286811317263885480605235832446104132882772092159878587589356293917340329345621843801953312418486580139524998334957510748196241005371968295121771155400968700521572453872540654061351534859458240575785878589351432817565110982522734276631717587531295845829584275712580885236165129902307180854234902966986522548729226315144182892848874662158050198120166683864686124723479841262350233408284585643259175152217725893592423582966341991214766031631282897923862548197631486862467696692483811359219286861383880605758480188941147170576246693943870499810364658909301689346073539968402327971902423568744392327325028877804152821787438486722419661544116118038712473841769202296071332798265819187951009915206348630416804325180664584327722332979125373949056314564834580267650500900909538142019616558027418112785459433095392651641162577678928686723804685441223651535961687142324794873339468612974627830592331825762218876398970722592012969237921918201973745870526067578991748393552046242116935150335540304467609454275226030798699945531824117426824951892097252197684821384696079538011510843410518816940163578969771590106805075295060209149411936608979998540287603733305626372120024347642136618384669901662319570931546511929725867965339222904095301083151060889943847603019446224352185662074485208612351423422348890329513447234516457646006285788508650223155712496431620663430755399300669425676830974151873498775357978637057355867822275809613953727489855075736645717849560489448547558252312088280089542383909348777933944035414082745024491405996304766379458674839540772142159279164469905721478243325908280908076204719445798459667685353067407596045889524038858523005326798447883281258817280392942118923265026240575922583024654346461825578219793657985825265745261450902928491370565202039567798088784074300113638601562635331150526066741539691004272164390497128541989255119641116171753678973387765511160616617674180483199906125602633440680866700480586466810631745745521782211831100228949342412824795001768803697643681914786141320664794503143736317898125942894177108132652608559514801948805335219276806608302581501750574635181868217598871557925001412083265178282854221886823485135433669370914255680085574067134718279383573774827985966790592039558903354804322543398647626259556022448536140956206427565342739276048267104703272131126636606518398565096458189271666275853636056065944505627674854398779847103126753389218033167748251769574607542141119931518135138378729513725174884619822471315989706148677855234627297660559694342410692528461656380046160689259151510935440583115122562864783870943722857584665845669692552825743102087571159017797068140912203343625935024175723833971687669763370110444882607980409770879731277130465715843703973993205512272426823392568621642758290773602193547017651739836703058606054965376501694775227741265138838835468763960299499102400272537726189030316882723856293655376051019287164102714730361262687717880876704153481065955997420383221256150727969344041108869951542694971255822570466911789104007756656877173934052240522627228462349230913752993920067319297501389141325760355460834079547990337466042747459548544741572332098430609697349853469470150749606491007753120043837188986679206399432117467867373668890816675500575057409320654209620201427453037615980066733174405207426211019800048786045903645935251637442278148919228404590968608083930486545559204494216071484551040963729017861955612556326372322259087140371838209187169879019491867766057092254910525386668814849601093749965860343315145012574094719540050061486661968556456508084213354907310474456902076805143836744170389381209676971196331611306687714163118581383096103755709355698707377714891077357822389014283307331135525368204306279446416533872861600967068835335150341081008089565363844323045601418857472154680282540345978878359717329042622940774991051499920069297359077550278477703299961221473433091811691882919800825670264034698199924759421449119177424680871010087860326086241068631881031210743157940764352070056590393179433586464528501549342312851268074240970824438016955916182181325914214154845639574460245313868961350222558336213614284913838268198794071734259097520783513986930425292117548798210874258280647923858457821047721928625364022008107086254779506208562575039204002544580487765701218665769126366905508471754879129463908479344296564319851433322469781221073817796364925306931394500811879900970536027952858043595030982726376560531887470019543308601986525388449222308809910092864394006652090337289700817734234259063975368434219222859039973517439269963888578605343484951464757455844607228382984370156769882296445170454877364396020419884347052746478556049827856578230078561687262658227389583990938560093419409143286508675145598506065108417427849624204173285999832558272489196959612416603857131038549679595451741313804415366579602647407828640513359759080152453102336207757028821342206679010326689539217635621102719220939933209722949776721843962150464990906909693201048988460407203979844005135144265529043075466590493993938932632130011418920756511133898683738572303016242935626112112553017090109101399182931180580530041311424759145381404031783421104008363591773816510937629682709311037646927731793422226890433338791729917098108938243087912188898155238373207219528182109738577327290514644593935469629385114491381426501711300031576854485609264823917254174597909893035435494802303442974632136102983033924352856763634465395214229757365683445748432751132407016709084341818368006584327951508879551027648515789826385119436283493710671325597875586399247040265543378609559313985177418753768403531523173162404762627954754265786327789997308389945826217117576699458500436493306231072752934050975708149059651375567680838392473647436123365751635053882639841700859300820721048724382896206131395414907387540863913498835814325514707777226158470529525344527269568931436055559596739488262192443846888387730327810194275483326094609289110014434991438930904385503977314445338857598109701307522067233369895613357741192428391056308628837444476279996084491792594654955443375336803406012575488100353530246074072894830007834556943330298847559877683878805900803799704598970253676764416574616309901067561791487382727835796395393644097632119660325504988298447309207293776661924155027638456334081348386999702259891906796898446194741489985026013747549740146596482622397539041905395188854235013118493636441175642129397590645191277046342820984702294986822964860189812752655493169298539563389988667002256642641206152575509298366180036333931965285960886750695718917133948863505507985014537499990837047650458967945653220722478689010025867606090371207078156567203411128839751769599925186348700009242024962625240478927569113825995645445263804511513562446503231124994313415161988240050094633012184999955489054877161698696408056329243944030573582306784935948414315649877634516402017571282844848256775482125772188747846305885678339184155912179975640054363473294468194544797303379819585540693196126035232247621451450156140803019888784056641152955278648684402563178453948553078547876760668545545044814878876862487077328068514988023139743639641571498055298463761967654981037864927495071506032327288788702366123680154781618282573753950070715377752944765635003195382116553018150819687190687709887452253866113814433210824842188805602737323019307260361878140447365137795780968815677357425724890463522255070195541696279423616440176146973388115189646822477347383836005097646650635954665913565284338524525059910233329005257214171899500175583350376387607515316986255566453921194375240321665821980270652291151057661351495463284147466298645891527316097801357836766941606381090368782350267893904932556487527012596805959522023055633666263673302739985389460041717705765327534585934308322812457095857285419381976118403287364614980306897557139430493507848368360023631067916190903250591016920771355060401321208576480961618790787312322370528156416606491492632548883183778830952213374100787964466920568266165052068873825547628942956331330496192769659332137766527521110506025130687708659437524794765543653965512701955775297607042675861908399726301645428088108345688393409951780394828013669777740448742261174261671221551705533922139897037279163202106823523488501485651920026753444284136825928614907239160956107297011150666800753975900449264700658863188126745345008921963141730923477568199759893844049794170879235932252009627874195802443686943330142324405666916041392124494952243041278607252435587227495825258126975461843224616221576094224726589443208856482895210631665206271712727791105338314731966752334883886622644885185601397082125562385363787741147483694609265038899962934140975238611585417341384550781864801325707801003621254953547381231285397929383593860260559837716767744812688942070521115672113012021143398695184623876978007993920782988076225271433423298848218823719557666438476993090179303356822922009230802569980289898333628036873750496556986326282236717934579766342002960831480251515167973602649267075090227845727253500873276686645847400663499371240180203900356275558767506381167147788418165011757293866379299536047651607664147607856387928012599080616588288776856210524017324686738957387089249335311385544413065514810876026151327739417448165895603734549316481599475172387749040740239364660003566158579383440113298528287036460035887182873618834816740593525666768894437445165653502314339942342842197558785432480014623455095782616235938866876963197895935684801988902487718692205415058749284759486091063375574327061375131765945238469211829272791172148974533622729382461182727428296871770908267288963850243014402632041321116956562832421418535085766725002876945596210290295762969823944126019233586582087039544534967513291397076473441700068037029095656651129359631260601002454631238464600997007462981605404325734721427127956488942101510052163726556382800051591441198904298744767568259082225577755291270675250898950268737035405085074023714646882981870852924025859602615798634047369329705855756851184604931570491718689152598414522364832179361565098723891251723695063956114358845893492646004314345939591021830672470905148818381855230062862005123476074002579224765417098252674218420915916919472401220697836117117314472847117281019092360412450985565083848239434738310091493847265794152166351243173863310709407672896330465203693208341706577244760395775684373433380225863635339047813453818581552987044576109636187513123117192054127618982240519438303948114500830121932854695764811747244093429214502518595191614109278852057028117878182083072410985823281874226113865809815364979665493132608839968784624519296129392731820204488540605036374300249807400481750637641773622394963278926394754985222514915745715816366805928294245894546563204491492864040075455828762717772511368337495154148508599500936606213801112710576672091412545522866314175405427215477794434956315329828139744350129455704694151135030397448117313680599797250374161302784574592821899124309746892865009927635900446844929512175261483745410059926657257175809505027927954012166763257331825407724954004042235826596784089987756464851366886499873884123677815545930208540715695901030984422980715115853402095264775629631105535036598410745295233111387989420180943902310379394016063482298431577664692410467593652222074873689244313366279975544902754156502856935928693123410329981411849264125928515625364541807245225970770354052841153736987371940672981285836652997263696574743662090985691370387642569529182015976663479425470458958378536164074255492791853651160125806754327059048677395786752741920125105802936944924580763559080926764892349372353617847557085715004681571538430890411330177654025990523636821591078454534995228385422506101257281855089792445275549486679931268914335233479143250771396761056269542847429763984843787763886387512932924995861289023967615895306888385352618418907809837334470569100405308620928819054934968644322922025252205879988435440401695174911531004189221918125389253290385656320003754321614693928284727731813612441849130261182482101029650936131528035703789697935801043547691938505844363982419123941802199728766208030602731486277470004821067587447564156130612728391015528388638404414513887596205609169220502111578143089168313346634870081145982137649669031138582597973548990391686815830082436454255766713457824180557557451195535826878856938619918659489932067494633121653508752644803661167619853559589205857650537293999562365297028377812563231670178633205132388290207106328354793989669343324347139191494778517208913593642636827295285648552422587913667629378960853879837086186004037937164162012648405818115532151752569262760207046851752038374294745685742492987771023221563194797495184195234219783235180010623886860315705648380704082547590541196134705213606978608604180872269299664874011835262208476312186115807339901431449039565043786823991581563110525471964229242582615665470488439903691408039792403666131747369846925982425295739369434340817928619446550196173136985117986448843374893675911066169465013840982478184795566482149095773353330063801715523948325562300498254210919452402583830672777982289746483519273319645374842491772244281288899454312384995638453091091250334850310220899235866820884991653392069877497631836615487778037923716092572796807813419785615360802775263638268317678058621349386695390016679251422310998126044519686628544869834263703329491871866826899282195976853955639347766665418742077813706952095951348135762162924015420677636034121095811342197347450103880616304768458874609865510227221793611836082675284683928130059626888281158951053276343764384715756830062510440028333966632121317989889505063886827102521174873268032042405381973910090237657502965766466683912051555184239297984105944352993939066648444914336360772060068432334963602219879511752075116239029832333060193479429880746835443115394560474173370330534302958819026350216222723365789640134911852252482917264616070393574722337357009849159466774824251266832951031668183407522315981667599152819124820566402057779744515195543260345065146654522323539626374681107344223625030046604758064127988019380897195158815136904952570529983135006188930739155223905170957049157654829177555033484316379880755131200717534878624536911571518004524127891900317964983373269732237716579524555856039078903872667311482128817110738432075702036791365629173060461822173219843423968379275703949544708164626914170130505138674932075556397069115052626579774028953742733142622821574096234280707292761949416848969693113769854697240769123419495800168034662222733549377178063721906343167849101170684941283152479203539556533327159697562406590926955674669563607232497611378027743216319794579150318882925712613687313107344452019125147432392376978988915535739634081141077802996715787252326409187146871452435675941868442750640228927388806962184138360348910227149822671829299954708463172048775268630617570018701891420181430522913936818124803186608884953537898017151645797972243885505420446797017635134622070910550605548688515017245856851396120849055476111114606854127821934584803936859229509056328132495261682411810030694904144268403544046593107993899934516771211995960277164350308335378155268395741661616372836589196831233539115517473651021413081801348557216599179775025107077538561082408044414456075616190701638250732504344519668103443489344287476207220334233180547369219268438900180326158276281311414037226454324754845280817675189903996008515862320937584506347498078715633653110759593440212360446847593934124415132263301750892134537471924595334766441625882275909079967205945581318526689053351358685363697188866033205781650641657130343615455749148519759370283020425859723075070439075146629121659338889484072259315924184441291803813654141852218582557796756693806669073763521301318741497729799349446736063726286229141235190902825638707199681420066948675517691679263180781666332372741570992821604950540996436917688616750569802588779204444641926303684767395160485016243036903127283540995624443059824810030444670009656248432516584397102648493665871500345779501720412218544270116848637165614102706251860886553005666821778662114389644825174088126758175944019255662970892619669988121951489417825705770663240686494527567542540549211448316360939723157635025296827993727652954743467281188250102337338189267685771900277784692971959045397897405062949278472453517004776821576927737228600898079372178217858675879292014900629090929997893145604853803428646297993439768339089554270438321042083286607570197007968720691779086128394065793132083333355865317315730711810121456660822404629855749857423115364831977100694992744506173923099487331501024931020553425962263184053065151624612415192384172591099012293478596218275731822047382044811032524037413008936763938977251253343703168395907650791820103222069399103849902297171731231883313812087490906871335739038215332789527610667386284632822699058956300873737922436370055945293445838257760322447594368833035949466978662950630450069917557196185620228233213054910786625664660632198159915316502511219753679185341214569354619069629435622396454787355275218823839404562654800596743463309908629919027456571146077344999984501272564346258268268684486468777827182225047535501158658633245062634472862180425021087579898914018899789340760546541471296260304768837501272419412445693024856236384284291416593087314107739546685430648043006121570799638367408177328438211603530047686818484363480075814485697333719125648206633392019108065143596157445169139301536512889459183974922603045379709815080933050967239474828003184639143871563094464114348600412542744196128030221953646163900009414637886005638498949980745207566155006470200428722148218267561496592997703178237215087163089267205691664442984160363762571227013321086771038612852351959080828105442786982935971080566650546117229022565111339537263336856101600759679795943033652135259729078174457006534492863475209164428178344540125454862300172279960499869556972557392290995054694442777433970100559914607158247066037662855993838352625846950758537342463705651251450745078895439883824848771457098822698559301826122305584658833796860477488685747369709344380135450469770551566811842074370219262317552609530735880184778291873257357998002828415456969147969169238903309002758086744769073762286575474007526308212459620044437062609640496620867073455899218189684716270029650346311392138936120320537685318583696791873152897512644399970411766025590268755222382928828956414522654790385925726813615223813931499891771224722960907831637922833049761845095578787489449519774535193630059897758522254248768379124001966403709136215505430528105272786412032759946628077434586756424643549042200993927022117026620117950189792459703754745295040106499402041096969085520759000267529471804053748893657195092290688387431786923212651469978852867565159000726936667680577460797560326529130225394884060428373835988485216873447835088535035263327832670605981382327543978774237625271394382292359204136885375900761593211594146498351386798532749450391663925468722432371506832339865237231942051546850766518710083945990431899407335017641853587885916248992187507779415517472955198472379702114772356147651257284443800960215991997444361099864809224159577495558933601252194845577466961817561677813066031275432234721437509924945398360161477064643078011833821012529825370617093289413350313322546866412197179526661892119435589427171674936194570791928430924570860989140681888133338117023825225672043953650910639503940458237440909496405564772189608337793888971313168906835229959899145194667048506959960764014240731055319983358283946750132994090471374574047097610817479774478612291348606131830936476326020445627035190292800731604207986688558897061065386677555192340109965103519836404969140521277172023429069040478412172477090208487211219869400435064473970446650874169827860242191042651955299456387723539395968859133718730253712259319400066298859729343763605593397968945342534639944234647391565928374135378259067520210412929275854752372186170997076649488378809004913438712765692427188948140292143396607178239662567623190452928990156033091633217673712434458747348799057221632405024583953912935298661717726369900325708321050890128718044243629433162488266988784194063135136368866341201027988497515759944954230572273857532111557946742301869302231287888749374658566636339361756267326560485210738911957336038270017035031059692363772819740880668397711534582664259266659050792121631005707627094775678475278137182449576834901114370660405844168586880169167284220087126250825383186679433563772580822468609096579460148820873768427686953475255674016255133029744777710852424855138524036031460319936269455119375608394924612993619755080422174911415684427097619337894847876849237012803720674391388005772946761315534175779567623152982544240976957908297965739439559156894900397256292807528102828743993893343957272045978174909754357368320439304485966440191033150131184743006162458103266286838879396135572897241021149347188262863398880348144025434708165041542142675340323653885301862726541538806472722379669169139969258006797076696651808929419746844559539035468664140785435770210210783275694389495043072379316919630163141983237675108871918246236073777939620688835834357789256317023404334413359546135686914602340435199537435608810177548492613327165981994521834422018535886561515248971151214487766374534684583420783316476877750308842813801113877021823120502304728774813201123961033845660232057168890450852566249776048776733254532203255123216854348046940497227065411395927916806061212578284601198523146851622922193226087744173999107609521143634649247941754087780218654627967033506146833016288951594758789333369785831375876438435563074564298649304679623009288017492093632853496524450110544478427165656597822976286610401679656215334635982702392449850637451400481728656262141854184341143513137398164364485690763137683979798804291594664026711963460692438347229234283834544688696298351960936630939207251695600775874446604354058009770925636536195225341126144375034348738795605225143976340401351025809620423249146610962453793922154462789473058466916896037220800317413664160624051187066451747609095287748361078327323574801002895022157119157188893849745681650966167261914643827069138273773171177424124158132215719381802372326008340588146509010018968695587584190362845244459048952583598956673232446266931659125188947039604202898690164453640603135010469493969597264314780704712602429246134556933403965236751607082896304556670493389112534770266069494575986099385690714245756772260187028866607306210332586038669345483991657160560586776522871600098777353189242121354214830768845224092731390938404829411878483556305542857818639109669800073428139506081485283762120021546340108131050753708821124097832165326684498085520159391116376651371802313563310309349586228483862014844640704725393921642786283371040549196410360454951186504180274744609809481587873383257604774977124411996337539840092134044384687301021019700518138814816636937007760150182163487135945933964826648862885152099777340004389021892802194395528575187238212647680922318209969724159385988648857982145727940720779888529898979208893920909814821633477778419996554731201327127417738552925722011401330769220100989455631695788792375308475472370044006953226723210197015921792188135074398278833502906673373809820869618972576833017991154414466391575666738882275886935659412866594162176172472820740058009329385832547302566032573345662988456804686805842065441991393783863659597642448604492083254812654611523819382735542792220893195348153837797679610270763224762379033806999373442104301046344608992110395120970578323246962459871743071243362763873306963224691792104045992066572667133067647559143128132737780293915390104325494213474462079327245968894195058156366052808687344684799407829570615275435072916612094982560714715387449208058794331829996036123705989134781011807149734358171877674843036233763292108867343552349329211810017789270667728774580747784752230460925246228959717085918892667325167352175365635192188303286602772989868082206615080458860816327270714553986704702661897778708510003931367070501748831143734595140630120028557484308551408470733933806825152382063356283422766253594669717118877363656330866177261169490382781161768538482125347706912843170880223153933369949750002950251690242118285086007404055796206579459523439556503332567550131653739825313466102508922427949169057019401423189833608292082301547287920882994265285352487025755322875747589610532283896496814608871902103854622060166370693355023610124665142627070446765373002216857011658509359560230917374157298924232544876157043797116757547947075991694515437265673264661505503639532220841256550558166891738588977947289065353721899579345171333197917680345925996097526720353385110645447206665000607495912218416116585283165835644571631502591772650982883593093563377175943687113855616492957844625100746449935869735513802813894471803108639185116119747013292179576674187601360937504085628244967927859229454938891831413053972526091492194878899311822400516821135076342601247835819222437418481935737006717391396724717889898228568476015839390382092798133635332237826786099655143280731045895871495665851124676947636886802959447637475746436418586839544495881453835764923212042305679947076913380800868200282474522744760029161865188662666323961072025819996893396380792113192432203894740911400793927216059336805102456425190751798985548640449244989366141802254607950995480141025265634549115780551592460488902965339219562448079684532708867556067424996458089574822666410017582394814094783817465509598554772954344438568555676506761086270855158768014407606006678354316425946602318841880127369579993201640412184928029122378256509817194253733287296915052186999188383378193382737390251677780803658600131796305577975870532275169585305743172738432417945458837238003298675102082504545612450555074041562018709219622391728251713814698367709495661467233243461668073646629847162954851953164755247273957039908279119663413305445362316028083060436492020618179816702944026720417089919917784413558569999169014902377979615939218849869071014541900502977108112539206828891533150012754490587723714591972583195657672800422100125211632837188250099300163496408220015310654062950204952884101037539047652622598365746873736413169447590837634323397065614437610199862900758128483719045986301373218265999138778897286561856985730524955747201715677473354270059401816137072048619348138908140837323044836864660482722980813696911894307874534013847642402897482848624983824319064811489598324490905867749754922555067850240663481338479081099315430130819802141679295687979063230697885445385299745271328835861831248571512036896231334147104814812901456194406955494670679806616315334588106126202869604251686216902446442033556606159004387863537183186756299244277362781219918018445474631085791446398436746346713828770519721703005071821299244504279072997280587935294168727999530985704679603502589011531835561412038099872825780271158339013444981722002499796660009466943829192961443159147223685768637781096862323195900445252653475066048600851259574686227528531139701423974508264972360836651267871789952612482450201633224319397413021100022467701295858557981308612102448360979602101288370397070207178476975297845196044719206659745503263411275996515826218481893983742110673551789758428609769669739518489000757180959055758368107682224099294355247236166488976689420222746700881240865435028983799984576466754149078774744869838751007826099068970261414285145809674753613453337125062235742862410307174112168632311664831416678962949421129530282521195119342096669513768254055660861674537524529183754264939828629237844351492830995731410664499687874346653063739650244054957434411668278459388641371880427866918524153482511336341655971140687123656891797724347755008986791496865893388895620831434295198344115637847650859237570550224043139423542351089498160410034500020435267267608935980293987087323287475908141045900205812835903099735605068378221048879117886746032186116745392600795506872748795008556890839371526304749782127874038591515355090487873541561415912688372084249299474321673410036340659152779267476472146284136519880020897176540085835914147802567087220113042500762067742617728726452992721439080477837384326724539487609824933930382283767433835535678480411419537863965638759282465342890576965113461844398412927488797849826674804131220619367362978325524806689153420731421769644353555009315085305992224562705269933411505095133522624329159702966129903864040462677938640165856149927102366699083247009016771510012117163723410886450010059071684068653948664304680427555588470469915350267554614699003935256743553364268197724105275208562547008143060558439774112411055977528223487755031879326756161267708497804718298534950979665883952760607392221843957712028296745243122780272170917497879637517146240750181682638961334084191720196760793154157144088505757117394103216555908031333238921175640853387232096290014571769631413103709252338629608512598845127247829449118310435911235064237625378127382132383234528327534921676234316188589967631494691107359515670183759650887694694339958356701496124115050957461539664079500655889306860140068661379879001254377408974945923945577458602162368853591697749098513591766607519934322515617897277529411289340375744475308341692092579594527185308506248148324566271295222945681608023567183043794229048340797083510515755878836214259290969128441991514668148921150459149030081127280813968312914381212599563836049548891450060355033891252312312737472165778416405205112816496545560268785340625528413489630175937198437929929528506142781574770120767204970572399215978192159936839286168412871871125550294692963025324914969437469327996448874543814883916753331314072254103795448859609383145833116555600828153625997628591996293371819294897869817412745088651936861521491492321441413616070704686939325192614408854783501184676889673584926374512087987378322420258483394081336532586067117904149342744957663760222452395557750890787444738335898704073405320704251404257183455098504563815955221162833831242275285360645847018162902793030090399855128100935872160009570212902271948160638139857064462540985983942942041153192024493228188004041366479801003911985495478141911321906524405062767682858666779574279231988967211408081268825529563042925142543622511619363688587140609425910746206727361257538455536532269534829687404351279795480121725407143713491804103844392432287813635261908852309703415420001512810762075364231938104633364700601049936989374698686520006072560018835614677076509391240736567806978929231002272995978896221776744576792984947465998684625978093288771891964591079168200380145760691000033410700021125372951410217214848465751174286749160326886618456014091361540969776827076633610647344422878785989302243089378704528411561806964950241725802009658535918899806462546169209940351962881455589617858646764245503681983190817522521234621309741880712125725858459481517480096444920697860759654091605166150230332707023051300554997148428779502570831362059375512610525853323564059528262556054126441939403984575483562001421963906627249987893737493921734942793574561140870125512669234442505900098187029808849240651605897099817937249102880224879645002602754507699088789142748037694013409872539217450317811370807826127604537008393744100549276466245116182396280274760788004023186435745915488483708841497041013891714504784715840466303251274438782602303113463307042992121188830300968080584697772271421277296886222632328708281049174308751231381311275840602340229548770928849344480119109422910642606642635447447428513569927069114824115732214716891227446722953625438756261681902068625966184925553279518379977793411648665706217601718936680343915439474249789794239410580554588367095235068381720077171420213354441769142571754132684157389358809237407420389855234898548960081113757883988551990104740444379997670620979890302532600468644707597757114682315240032509746276804329734576337305137416753119589407012112564514920727983879020877336988379366303902712621618469342258704246814071025865845686987487212988787018721589086111830451517841144759631784555250338631665830628019280439735247727980983616721311127432605574388720912202844886026817639749777996994908893866330898304669058254826455893794261256952902377554198270372820660334889667835411675324326779102368787553281383383246407014572266718531087527607396143311792780658059343963827980036629117906484949090340393296600865799633944002104560857335959755896580310073129619592112825045103126510043740297165037692417306531923762585423591415752561175120521348805108106804166488875181201811452452404759463666626727117509196384012247954299861789233147773496302302149094447397036352474536135550208123574473535737506081833751237754546316152271400079601041270666397525805974758010064611765842855264874067890988232974787645638335080792350143041641684660670825515340223557412041598427598761759463647265507860365716108184297809748498091701503312192009673780117768541824041920248801213655190580277140732503118187684452569282979669882784273401396777530671648506522394084055413149013302684526522638975687332957479348407588203129258836605537875890354143197775650366290727299225609969415941462276831780171346623511532780384524993410960924688446818178987480123858577475404346273017788368565263608713773757497025732472100088866395007910780698104702883712132165794040352388199567417227736308951714414426938317282731648630742774480411881396594976984308714607341178895423845474444185725626325135970029552884196525848436487579446155053920076898596764106119647414736351225389272105246704192414767734922253102181044290416103075662436120610507741093174193828020192629543950008092385851025313490596766367960251054741537639428666776318793759261924209839929695429802581444273120434303459311458439903054845883998497211393014734092656947666740365387411695775593001542943143713578160173005583569297916800356933712464472935798011324355487097234285815361145394119443341113419353690973906457614119843319387832150469807948598880507380522991462076496821492719942506662521482803409377770840158293802520631229459709226177098309623626547932835147529696458008451506035398248600956612522863317261270297947761488646497732196053830919263567272143955566113063929315151368584827045294250071155343707155840320625691370937127509147028787690412931098397788724819398250369137353634988381229300125563223990769866662939585454821739962913006342264561330084370666215705470629732281035378284055079446755918919675040955474518795947306194243553268173477585954963080319438504595918523904627102933568064674563000481342332313719508577883556934990644527786840779516013384456228654487895817026720875338292042126284998925767452857912725576305716058520510623703311262236382323430045564858972726613245558118394324841448195967271245820092630452838786421365183976179979233933962880690102617578359694588872317848695938932085706832897584687989641174282924492161263880653226015741879226387202157752383880391486326259140859681886062845333311317648395137691236274709870250286408809283010683548456965966490285729461278685474907873327343737062501892571309664143092790802409709039808427253893080533310184821270251174613353446117704528401679353807656271554686840284338876902223237512356866503149869029295986062816724033240286907055884831064913854459184676445422743562684872797176547590280094756311996624865823423822124342412252239393110649217569277958199396553088753367561044033130876116749330823992011687687665761226072557251025337752999338737342493555458274037805536478439130806983597628875878996410902113043873933296178329999081350474185524958143305223939169123178183765429831986362909679123485101873904494133135888014554523623839984019192461890694270842292892408696320187683880427275004016398264797856285814353167585203331410778286850038746054747644693894166758856610070934092996554633079933184629848107807851741875497295960899882504355310101526072777931560834396581110306613870819376293341601222947152760411118394033229695770212658340744845349968877945918967175652328952330744952847964135294655479011859733500978686129524794568046811338632810737755168929997379279107339657276749945218823320670490044101605628158019927349098283192156988927130357375383342888634558141494460226846936832535243786758229082910660010811537790891630546852486053857141265060187730259001497411219896579360957025091569479776953820939509296844210126127045060891757548066504349647438577587954716065958682803984235180887494510492549216544902625290835359336273126499618228452111418567666880451977538056918399004031350109307012740996445924847150506938379815672831087478842698350053175106166153566497443299800928289007202260743162293092372727191196315642707204887791251595942743374260938258305061194512396710021770700669541612844250932778910157731484568493414995167206056787607737369080685469453594726558701057342148295912273309168130591469503421318193885894219712837274350220444112902598409615097378012482436728703058323927679034273614435219050150747930383977605172451079187763487508514537323586392734980559364724047832443947433369391186107347310878077451745556157335433413569624624601359140059015881209179586828696274895852357422257947721199079631042264011069368479689929554664540820657987423471448075348437608434317876210558471047969686576794704478614406533801883157528742110220591680686068345008461540958957850280024158900872319404037000880327180834864596518555256260267844821238000078794418236723049776357333064690425401678471311801800041399184277810908868680689219921549039934168633754438807646765287058256354784047506008869753911962692674645819848213368632275307088529723828175100162227010874808271678751617626881500373240493326012626468253031253552957578381294091674732486560969550057812022001080968306590596312725792677628845694105349311737881503237060907385040247043068744665692990972076794632837914660571414313171418654801645760972628812584583858797370726162110925099050886026894152444479348379846168926187288441460833560093906866306785608802593096127798166720535641693524427987894199032093692215262048795787771086225554598268056253342742681948956806672068972397637344257660406881306677481934883263940586301548692814065489257096226012109316319882440176575505725174201332946617143134551148404013867234557960254101023608705706331342454452614834535687792146330580770444922684061599733120016484669516006883951118807521473171640182893984949588847094714104681283085623161900836359173114212239366533942882875733375048503808915025827749131516481169204282224595727043051729894063183862464128276390954005654759112434021648730285028383935683194175284833789550013196053897629571032483971131295389753776287234763353680419751306438669410295143846328201929816468980986361105886414190189301119013358408758516162151117654000525523130659812982563196814226349216620505707545633339567788926273435818551233606642040049771137148629222420950035455896319562397704785729708453097977033301062699073594666611127212864434927723626358109154181535032909277826369840511382963395619129818967078066659234315031060641999894432680670824764828724345256346453878096878600287839874835338769818801376393385936023598220845728016047438951034023674538227582702295768600777653005649711614919767166651800936666191957177974467535837226975889328361615115549118688806707838814339590302854799898595977329938114064165566989595711246804853891563966418797971384767843124593881540595365598348757115198825154839663683782268894919689207117969643788570357598376315438492176988208591975907894186646237489511554421675446742626933109021747240773707129716191856687595291227830507072418347720976061012017531364940868579012114637508971089162753687898478255255757262862079906607546530750075764366550501388416064532096967247934463252678921593137876374849046979727100412166597456443222707392796325278572571539898207190424826814274785988681557529225059582373502324247610629477080076952188647887979586451937803418616182165291168218957969770358667861891399833163226795689918256181462170047029574721110302433060707652362522543448813400109023270050355604529348795180663488712640212948606426993237241961795023137848460660278973867472934740763131754166407821495434139693579935320310252806363037467410571737293173354354455944165456995807203493266201767110604210168245492333668898270484735469036198499909263348189058161000116977201373698367074047108534185993119466345725627689490719260771953017352522505508538691876734110764771554622119556918180826290827552396145803881844633160036750737319185811252903953732156552010930913248306619330441946372284621143749055645363912857981779399191993067392115319348327407777162487386319074114004223299537388900976604040873570862589074714069940355176781029053162954936284738723254098777446198153596334499255310310183633577354028076402066649212422004262547403409883953696549899611039115728676435176165972499470924088738492782926063398288936091735305582068687878114009544599344840418848952514413209070357444197721066424343868681045225093111425000093628162856598777487071917394433796781158166120139809783868426529891619885359932583022006982030707214638184786461067279426883467127179753448008991576145167351359237124875036356784270956141531286864028751717642358989348580294992598656520641769786486905561221322162760012294759765554163632615053344176574545996535270813979743663942767384098829384455709426883859400421332179379857164297122569777723651215216918428184788825300789285632931021565862970642124976388772342625432626083445790042058556275087285380352406614909874019771230190617676833630769780309367507476320363247530850484433107117302539453314112528153691832678117755045763305887754791268308296271243525466988904049943090019851738501005169879450013428698050644748068812108945964222025708334115544787671377046640741324495297120860100986226422336070989514097926734687439682842374451244454948434871491657872387622355525302306300970715170635780905634600818946659924172766129763609835728448104023221480743520342538305916319899750445599088517294989824427914353309806686429564084200595752385240245540436793502388079093080521257742868861344385114444200809591904517928721410062588576866333932444722403952510945830067563226845262288155141976957117267863781307303535204521567165941549273433088497587858042386309678354067401469046298341452423889783845253002561087095616816346097586172721246263526529151501815330578944335376881982581179251566754705594560049480246704745864551242940271727576389422021139065288392071309232844395263134659015598374749463590443932684545560875627481011934560539895833327664606854220364888006749925982979793315614685504687482045353887852045015904713004069258275698803736933377231553922112706801972976655417186970492316985393784639234243776291711822806469458411239754631077644022681383303235854790675647823848395256477506252481562355156647486027444692046601289453376136317202635135059459636952018299694172439547565958204569083512573532894416070019292397431546172595157108952501716941458385982002375594204762009422541799634871109749587883655624948630850811220029441033780204801257455573830770756609403819672043202176217173476222165015240945190810075925776426439632464337574414636229057650684973715239876774635552571244493157622990808070748220216745384101965765153801196466531244084012398051643059966683772303053637415156824464848031711791696006581554120729422523325966823423141152327754374609836947217945763218798831345794586976217297423843139539381127457792847435155055066348328838465751666471427650014114818361020171151172627440400688646817539519208496738418838345698119263075764039609324609436597780982168800212400728433806074702285462405516241399840830433219888000996678095761051813785664602250953373921390320958735879114034641196343150574989739525536479075247298366895888638426166716330847607786187185285073362378546194201482108295979119167141423815536403882412126482912525596366133908985324527963710488432982697352439272056021746816655782477495760936887500049414236809747222598715544301643217864536170389645564534370583815841470441584044317066708858165771561599653504359127435682330479831564840212021929991923936847638010934658266063910869673924587442507936414258692015381123751646674750376999204651701336039906925976123654829736355106343392498728585981669784208144512967142630406571911452999443022525948003395335204640230219220437726120170754535118230652547799839003063236803167903090050732050487004225927179428044566981382353246302391812624460206282922664616693972514525019016758080389325621433075648647031649973973007297366695156307637708261531705039169122531050128428431600104982486830627014322637606695147099411355689263881359512809353829591657466248001680039966849011168191364262922670957299176622168551218783123310244177171484602690301157693793279143542126188737231001138231844051262161523687976501553772182844621574072700386950839358007475749188002885666931057408361955463162040411864962327389972193736475433477177565765390512572175012540916010802819916539046874238265879910705015164274748678383861545080144163970854495619865549527479933094013309252207905869746744863561849372898926902273271738496717319598405040463772473126084401496186071582757515646924516199867923967545040892784896965875757854299831541008862181068388644631360538546807087956472128367469470849790610818493668960409310440754198208468056024371012203053850946490878841187870058831442446722867452172647232845579331252962269292588356712131197276014780803179030226333358621661217821676048661996050791911708731395214599959541069217676519600592111218482347367999211892593511403487460329907783068481890566734155445637503362720290802401018988457006717113101377139974268502776339738289948901415578230545547816547264216829691429705172232646885407493045409865122119110509594554283191313955201410212644039222815511043997700215466020277254666939025372719330356674891075046572025281696710550239610491298503426091859977726386746308001225278702793985247938816634998760538111793096756577226275416879145669851951543539356955862631599649383979032477285053434550491075447476047717162703868478857904546461271182039794575827189096243684150020467669632169147615062994318932313767990944462355652948801442148206309413486229018826344548033936649693403705719821186447361768934284112476859198402009591250254762378501585578448112334154925907719151262482942133366375108950914128377848512945238521030795889851740905866882735902307867604304107745935365257088987837963167495964794134632851171937125827347462469550915262329923565091005161404431076598659966186541483445742928829099662670006635753990550951670723935435962823937614071417708928391147325305645964034865802277987916162366424096503589324954382420310869346927055573378665819670482599965659924100061058681414617912796004175677465074514062544114275082637753557851363928265132034313138121703121083212496053267576550638170366024057459302804699482150331201835852431464442120767292826386676090871531648628387064267622727392370555521519395528548529525651908558174973524797591713354205730831869588159328018035471811412608322153733247449326385907710061942634637938533316883702504405526313061261348469174110778120383559441067552266942621854672843794617454283001203436883962099426146870120462086472076033361419304503198590123812038002021371218098508983903257500853777604149562298645651731896270265724373845432612778943659612915054371333847601538665421098853148965598177671537287665729180066787976982527727501052162476194866702810107134131865127554056589081371285015392245254280506502113280045805642355313803308201871112700820409532775282087919637411662240284020036195316763772420445439353712617001969682775319060738353911139614142912572470330127462714295095916653895201033652191662937214197192413042285230974284063150409473518918800598594882393034695638105076804360989860354886694818032533756944718711573901554384483608413407625061227279712471518700986837541624039273519535090076087632843195830341890227418968293826272457490448911044748950573522210385809711780351051459326144688605181401363314614880120650618766293509967738988734821147553006984092142860670134827766407969967759072859043609669928886648126599330634220559385021204829839944191396427275059783487488030259368771575762736187360701287000494731191932780670060449303487406532571901099792566852645661619752662455115293626107889053275764962652217983868019056032753996688430653916716802703179868891539881600344516086259306629788475928398227733773376455978712154425479531952930356478333463031679244511311834005137969850672096540548258226954744728189717669901910253711356902543596514299355971801752858780707645861578736289093759416704653963656593553010007669999328341615038477287935535601932323634114156031983617404928885682114744182333371795264164340603042345023249659816358022394557808243614020179951292390104596677320467593283278864541893610570340581920924081759230191686909065082443063149179393974443137772960423998259788103573542913005028217982096731110069575750053361889257443797472594120722473149892021580302171363740110714962772117670830736100395994703860156913202404099710766359078833244304598055689894141216683455191329592562043940137121080632363820235647975726790486899868454711403475206441582940718066748779402589078625381777041972105919397673924535013963324047897365128397527323836937383602012646498548061381527924578963531243104006097497668443285228808115045974881742547277126966109811095272595333470246834436140491258730451485003367846626566086425340589714044990840493875798772653126472952925434274660998450656612438210720325663000161220904619148577272326276184850045951132661435576756036767205688255070029975489030111558535662833628163278537795124966632879207196116292166593780088500719982953856129056097408865403702402204866733311566327175252504924998579224113869669859662713475977430675570433698883659168915152817148717099515081117479643032201839805202805982984960446721738797615585437978915693855632250673640423695423153042784514742223236462648300730548364002262525398476270975849711786734161251175451266006960394544667677609527591059933858373569633467021992338546833896843015313078893387078416606172065074129007932117398499994327732446024531724173859976663804990016945712595725129868123269711635785036178137648064683077563164571056003965530713336444146980218868440570660275831812205454208085359616667480795456687570192304508376335887863081789872602436294750487476394341449854627771824196195640972324593445556284769086005440513549022048059997495017932308511415816419298981660755771864637296372597040347853884454093559908737900061641670790531893054616731414861480635883080894277450017649447693524121247419711246332857385549932919468071857470937030857603394511472801732905471293045443549793712783004130098353196688221874111851723030988771300816151960978793143132456808165054595392107508428418961202030331401095893525079212692069492550178162262965347438456645830898353078081890851599410518163720961186233321390642918003752805131098465049062238570169605887497275191340260933335690922373053202723354347048287493430188634859209641519597182172708229633023308695572715671249791394432269326538606109312676443384722248198725863422654076321366616283395547884382507509117834448201066509573587020653711478305320969878907029768650899936165821303734893912768101680539951522707245767902163232725883008851262179694399386898688899692152753655304630050329669352955519417880591163998219855169586879427159797177481194215925832588815788498124370736970064594622833351126804359233646139983704436113452382552473925985245174555527149128818020030342737871579369470773072324928248282063976299271601997216732874918818692763641581211202348142245465718648291799544818657398131852125786703743663320407235055120615979425717312105286362740847709600212922776664315512887719373986041095429559071404844872380595986029844065598487901920076433126717649270159196746202572138290398082207608757173091988515807892941413148095103867259543449869786681416755328491818729547722246390608230607339127368220244831610877868681824648683148014587576884882950319323486158721202414344196588212560112847487733489740492229644866206668114800712593226668225055569723918455959800965406924081774819156192927960822181284774758074089466786616094868326678810618417102864313053177253454827461201957229154310092467601299474269619713634695851705327323517066155526602925328102769151107647758670570286774099357424167434878767789326439124000219940982667351416194029941031184597292696560297743554680762151346834630157540148267845083958010151726289970613479964995652459183294165513866201332585566466535298212974834134023247581248849318154930160304735182772374411310738888546081986609179934237972480394630632317944249260620901137846541246043714481021837825159002135662443479129734840565424520311366636646999076688139605287863290258049239540495373638043167790760364473649959043184288884761919952091823886038985396019965323543598450853069032857308384114206789483277585715737992081920696535580702328944851769953911779494754618512525966749833841921061578433293615956630375976327367961104086127584363403366586562023710511716032757720649739939688551859812134840226083566639079070631846290611850091547978527958553607328279137747253456752357047094724558061995838611518607950785224312584920265607092658006257203868291589521296682818259700504936840819231615852175041313506875082883043393893280364044470294397786006609582560707120001618051989281670436289109088466800439320957724989052943309095157562344351109679830762023944024591455857182344356852936818805136591579992286834894101494821156582514022960370483530895827368908439784475863003005926979320509133617814288126301510281750367307474949854292268244011535271036871369444758482556784751921751148216766771506934758572180027761460664166723550949941924886935247090393208189482413267744514872904571767193584610469085218125571388126494853391696193858585270306592982313899281399905535711952092150417374878896107416101894365987100162187258198389770598860311669712562579998820731053295699889771463412605015903675436643098660499358181772510289860241116182342329887608744054783446051705877822750900519231886765141284286838599935472681312960112914843298978647623313578605722395114651843267244621351087320599297919240186775546225711974218849090695594713542486040088641716965506988381644945878220641621152962908304163740948173335595759894412972495144068300753390154685936960981984529776674984087143017983719382717007832592498758288025330464161573088639304288766501007438773836798840272916489622832604724412208569365351640703476151748135704113973496277555268224349897902561399537845040191827935870937508523382357483369013649600040529038603250275877567721624045122923961697148919786189598031400854244783934768738583423332505975753579847188753045113345876638272723166020654119710396902239274150594164406538620304483130682141940231857351912965712028151694256487473538387498205250629511197124303632509690965721030096895005222563702177424123863039616185955239097899422013527022021246051980950843190766910025647862725069138081935667055292498834758857064506472824691049543797270548398483814104433848904107675283664591936615545877115877372562487990073274824200899579783979361178938232389530022076361991677939240436974000851324839368731840582561811014873433162207764947598682726297642584948470979484422394333944861214666791431540448530871513576597916341649890427599274089260600531280250804720935677446807295323433997414149997788146458874913435081835644982602990622679877933160858314872580079489548576551624510273769270937704811555081607401163834877141825249863663375216866514333007271557267474184465222779039706490722839802496672604818448948844273920365785910889196717562159782743617157934565140474535144363894646954833440297167690701270615438112589588118191134793706634949941726161090708143608163487044341855802032344374250415871905739953184582423413922286907611924640486879615143552617078245640958165184373207962528017659044119870999209055722394286595835432208931033989840205285380728559661489135948192377929107322855959730112218071415056786947359335181164260084288212674980296574109874220797190012537174340134103819398903508532299417523106608079298966134551302882078558942258794982372610365633805340609865126314666636072564353018724676193666599599693256552338348346017065538469161038908867112703684546798245840092586523970605724473062650359692313381504120736214612841881124717831953364417386856745771119240892599773801458201462877934093844227506851951759266520566500514423921151204971271757400420450370160763942257857072336593696633453496239155101234495237584335795573291511721883379691411415688560504800220146077328415342088510096227665409926860314974850629177404607897389972870591757143051224073340268086010369018816880669094586770928105724245886522195978103309831700006746827158519450986936882348276465163409060947038746138433727035991578652068133616783420122339835100356448449427740547264901787574132855895000345274641438503806400921776885875915821122864453985702609161799395199232820645194655217111937595980958295005050658123154128515116479008083073991984002976809205185839161281212307023372816790359749828366440398217919983835285051788019290610136330215945035296845845775781682819310741150176972507698103033852162841721370736788586230804359698337467601585345211065736681555658036049077785837513655242280695308043155994858647505302897632795499249173476414757143621234950662234068250213396474042455933850521569167623180903419013886399185469903681542317940638843178782467285597967833159105953262600365166400556506788762899104720455340472095901369380353854091525535575752815001927577970909042199090285492825269672493606657299015491741927921433588910303711409071175487331442495431992102211488966053649351690514626913805305564340133227604012970503615865081105200354009517539887296278264840175103534137988452104062970746509355095047601024853628471651885167584279786605316512904756886823834835460668092242325188262834742557697047612834168911072074092992818910598912376920719839561597746144775025916843191819179215366190157980120088488172149551116854317231982243201871333949539057141366904218517503529095991669146586466018894647614980356469750618216554252762193077601338795804460160562893967062083889953478325188733618583315727144703251271475080448664604189036411366956140725846666287422241233336842752406012395960948742406882420908828411592960899108895473756839483034308838839264385700570727372455291123231313585746109502267180155172424584252565355617588914758744160047419213307808548211873408006338843709364040501904687494310721727915036596187972394453552494306468938147246853604356124758471387878977079347899125647309195428628814326606505392995241809461287437813369859880859217121917660551381502601181086458094509890972055108572926453773472245534897912622986554222181660739321898341175113175924721470107953434273089957894048770213107286473137999508844833671056223044036171174026443369778932575224044529746581224911923188263480229999169191305626490908274080234432439490609461301355410885634975088332931115253514831636927566910587447597108137178486518612150463980950696395423754237281744620662883999940433851026227301753105705309062546441082438121425718277858787698029049931379441437019236553224158868762784222142898986227215771651448995692812001627649921021140767508755705445671128308820946900169736400322206874148519023611883397345288882202146259805152438560872218620640833462688272747654021728219580667448189295256165922293640325064892164172046908197725215258811875999530492454859130402466398336476302458721694505881123611720789971082716330336400953644483757284115988136528342509966361227517218573512248615222755469619347109289626221344354524211946634099743984107534339003754145349683386182123002413416921621530057617142240373221467208673953150808685074683834808442663623682416614802482433805228706301964022524600858997756516300607599169361950190633710166550608293544488420421190821571346737442560808982901829318476740963185076729547903945745985339432560350461313641703404128753440781527490693068759080326310280620267149923273878897601215349124683190834268045764810592459532611901843886163150316030684351721571299339632213134830648467026202486863092178413630229869022667542616324337908352683279139164038058946366863953400012934618820622415997366069976623588988846190784384518264581502747875492042127192640229840730289066137519776081928382505227453444597254894825744069712471774934347475257124997425158962677194418538370764119310597574141153756283744574123609998220027784203764161992477122019192033726928212393736164299875656201963926232268470080057324819320872212357579378180700568952317626852501793179040627799598980958565406323833062312692177649229008438808550218840505710729292553639763428801254051994541536606317599763324430791470770299654672353268009563770609563869228714884836056392887895936640232319791073883758273328996297446632526815813684923788354295035913736254306401721926676187473727970637549122584341608899424178701367610423569417627428762044617235489888408566222061838651714407644286687652799101647192179531390937995852702609370139855138448108112987990729571902567507485151656674959423631202050721998839947995634746708975427253925171619523743709484910611709390843401586467324069485742429770374616293862718330764352737794781498088914521520175877593849348456044370811386196433748450467859339202477467486579543497407381721577781559852214226609226031183265850730628496813953833545971865992632375038857884138823352583622499033602653007839523743552198012161705629845632130715092149484676936965541890588596639528179424327709603140568132455156967738434754550220636138956230451131077646995601346090865024500747447181320949221469624835727710160763902164695793391374331741570417682830873078867012640166133128095014478596242148717649795759509403383266629499217279748999602185081181886140259858109065237160637242687051527978463979221366336396405853741050903879310948377282663256775605643686478466948514507976137091851349258297939541143008084865989544357056280070323560830525550344224588307046046414602807862222115110186877277502768679504556604692828764843865480321440441831006033167946954820691123687732158779523789904967810385485287568978239570702498635225355793468429650872616459919561559620261069921620915329399984244389196003413034291139281858394335594320762688759234372641654195028953286336781895297327376797921095110750375363774372838549893661140105305991553323885561615669448638581770630618422846534025527089371756873369200331488241491565503171862569140051286940789754446641509098351426807434568440184729064496127666915371211402520051443908579031717129068937247527666959222863312251679749315005236189647682708987374563207300237598349553109457459275763811443699884576533664102300655533511097814713269941972810771890209973498714493349764252869970565010231736882173054499425257435899815594941713427451970339099402886480834413751096965790424995144634657034117402010672696048949979645694376378032230135530706703224572629594859798191031608184420806396689141263530864809956424429992444983416846006691496767587398936971773197234956519470081262175780851040365556768403631368803791033422791545158919355216968787761934813561258819247040527188173213986486960196654815887909468770647123387886605573295038236522495883664919158928174459393968351522594230840381459202180626607927817644117622594921786821293774225616397035965136135350455958841495954426801542002419547134476216833700253839386635258098343111522581006748635643626011851049270108360079964932477719627953141715028658536234829654733204852592092845855715328165216089538669552033653619022336129389222262292431952468558825230127537680849240517002100321416346838344921265814995254186944600002436633760139557790672759391089583322596136972343307730474955040988953699965514179586272706252959876348701181718171526662884564814848904631581626314566330451977203250670939418773028889087169335503423271942047270741484316150310911441567250812732591055640928510626767004977842110850960317424371813849099312958404689188307124743860922713081531603178810902226200677528404937805739064173206971834921449574065444338622780191110780164041444911811570425259170024338561415954576365627148039571522812737288609646097922185626095708528011932205116911602694003150614264136074693684152644337325949579787003295311236415431163124808866441720951223163824842561451358183229623922770706038336683670065622157794550929665329595311865779660299559151115928294645614374685005769055856117597374309951681885505760054011494023190175327965569947121014860937639443767913034329217901911487406472703502582799831261972544461436025196378720920522886343008645384341054800856514582220751467379798752409377082107494968140868431300981581386963500445193971773898780102498389241482135803695925339086892404376761771153811720335120544577964267228959826487955974071129513393258185289846305540553783514053332064714252870924623283113988408032684382976486043927496536344136749679660620843400295508636179906816912325056146997296505112628675934544223230208390765695717571444777468564340295731739397241348257144368391914155897607347289905432868887092317099684997564927702789193412029669781946525771213891266268653665133911022019166664152973882865090478646182803940180110855935887450579123187739426355822837950413554969445914041101467199766230373547648931384812831924682052646155063354328086476050791686981582997093284372391280989744212397242202410912405672910891292312860377310006720607598724654815206285653759053856652184032562933597935090062098337026212624620455098548151089480124503970135254708194486677251052987723809284282683075393714446866418943361171971460495446324782487405299144519041299036617505211902488391463993323534975980044148710907184622360935869831039595351534684013652682633691914271704240736681325645983203226194309517236510722956924626465744590195120570146851743026433011264366636437455761602807440697531162273269362614056691756247293040318403180888577250920616969965421252426096803642481876610473440886866127276485294633266382623427384882062034619601057027998094472889720362563948743792579894561648204747734205980177631328175895069448961998212994970736978124565862044736773065027664480959429353705249046141860159840381086118941236149613920049113623785353850098131534838694421957259240650251730213898613552968670950534897848730467809191639499104880856786002842916486466020951550927977108290890823691792593994560980343590173626397180451586152686317582086551403041173866613779737874357541662815757920632702247354187244659332586272834001721192180455145952138628843253771044518006451795471722018994200170932752309994424095331108139330900545100853415534579299974843792855313876519629314872489089115903411346034735090722903282648372928082456897268640229451620032711578471156628058031679406643904784493063740502211198053818287469866577459442096891217240366121752967326310328225705555792069415936100389297205866151703391309590878651882854505074273594875789718766901722853690193776796880914035541178035995670583961158230723802891382573034896734981632853389969511352289883558918429865078162591175283112871696657067355901594934404656658273586567806211901519476345296749554779675555149737617609253332212523890563408840694665545480303919149208024906015093538252128531759596472414849986728302778857395738862860166372588376035989457884156147344908724516686884413375976436571633035973212322279820949736674274312995632116587249724307342817213423374267305289543916514149514548946842880303953171075997592557513932748909439178240530947038105243586204576121915541474573965480689651423795928405260063983112092293461532072978242621419177506635898302473310960026665720543701699998728691536817641911150499618973012811929768089938724993583195939189792588206588803993927012169683601801371819824006929969536893335719865451315722597420606515777845859992124919347552496371668365170409084048588382727033788278546536546649277687362507252548453666237375582594886320563654957315464856508912757064633596453442200727376090217654980987980540808654210492058764543357865926722084063152387332534314954443864272396443070852237857376283255668528515056451071270466345569322593449209275815246838679224131305926866234864321266594037763718107972802733651548790595107104013038324180978093762510352509552416677808864030878849399663479269659578505779658046541920308462939939315349740661197727537969656761482056155919717539565452492749224384804787559244839102698924637520428797335239635939000116604059260036838044872397327043975969944153902515898125544951046434760770589554517072382882559832687917461952139687060032691608887412711357329534631008109474361595361402585019685573542168366890369428917093678901151101330212999983462921138895434287129946591747303686829300775547847447192686001515273794036061771674226044116829665449596539033424535314129094222062623453960180500564323558147855801962456984270538376520342315210863198616487595390844392114270745946417790332933412895823605820341641097542573905181741445394613601582472303302061799110830605861645779653975011023409467492069174205103890535772005009646643236173017986819862578894833943425324751587733719749693064834081006312966392012858555752081074990568616251673060385375022003160068397949104192988042778906982636106782287211310897205901522887713871482578325031262957760530962274989100833727757741770638981483286937674687855949245894742915180931851501306709550714950878788175657504998074244890074213241556363439576631488718333223483427727622748226632984368534614451845423297129647688410104828155431872626307893063878988683053855080791236691892349025381323283303107897330655703062063902686295523064481318683656314237748728996341226197349938836701084765340170871988797420079210763853034052032223586308792720540733621799856142580179743149241260532748021869326736329093742700051810549777339517853891427589406111389054486453649937773724695375270774324272302758756606008277525506125210447493049755244224554358412690075932499776766171037431227765200386871323623420907049011921569040833775626342393438851850733165972171767960977041519954283629471549233110362819192403693296325618963811932822580442085170984403860152534883639238376599426858329846275613046786528928809299830031241902199635358479330033505585538841837189513098279997064656725688646185002460490010946083925669604358070829965590004622750669466642652778140838259257879411321597333572869292935237394290727143888260074370295401966126577180027749549408712344584258745080925964648995960105061303996526172755720192357599383452563557048484316097409314244507818883915829613044295494867380792489911715402874494893022842068070467447925149532238984522325346553490941624545769901854377344053400580524917065924385303919134906142756204884764681773121513895874247624789747017228401146840349937936377666882622231821962721009517867025221529016093399279380201074220038214472693843284197363943313383625840974465628772428837791214620266202374547030885879383768722095094017371261304587289989406230345940563308860968730904193899324490565820093285039354406519939974020793147277607208027487504326842589049614699269403865915025029280524327299133361465307205388564946400795536747693830274343754091255436482963639280318754958686860278100507387695803965168755804470895666568277035358173743869348468707323220671521544640557609833086825113950964316122321519907354683821669068684691977618380981857853333249929071479039212442060402431684173321208224856712593212338514785868619153612219743977412907618999297218443039225080621852569130650230073452481272225325106685600177928419592899226934929040003684333999648859575260809450529712183756640549556893280636868475697847154602576552698569635729123870983276756025399575849945844926137134016115321390429483843689078493534545313693141322603940141718640134603863707525718747252808365195435301806144240777875554672516164532721564590102507824944802965281131172541177350550893560747873570198562343423957332478880009231904628693723364800652582928296959222939436368050648699840589078758572123705022833842985564881322920944776053852730800719254001515704362334817728229648216962449927063101157738368019408616792990634937820696366727318739613708991828786458005331525775925546790843043444403247388714045007592531418024136032550939629573921900988445904293485769893560687663595413004722550288460739394701567834846623952748089243568816297901223817247304657220027177520273476764445967916979636272729204751338874755165691076663111100472486721550894077222534558358209765973775933736357048241374820702507199927751237902809071338428155453476867865169097923565742106583432867098002036419768695940170449870688942344491861913247844791960272023470722657737378189783184819222123445119734481226351913604601583105263406847733522624066280498207698852335768384078747140659162220119165818130768613635380068944373587392339674805681338618286451142444902998661076092611208152556702513611813462123379398813317871820299624402556190031115094706142180789855927680673061245336663027123576714558835273569076491603026082709911437883251997940607724782241032170240107625355316386650300420671656684505330097618263944183908905393955514910152037130363194856545885881522368399541903410701227900999645710234737908242761299301416606659722734678802207829826887876059304855268467802134618389372196865702867166796145285931582150107638182861912596159565902099237889525988638181442169813899883557674060499364248621176196265188896709910339674619069742909916787011983019524597664301795792702475891804231642149882399764383216635346819489378521310872220292731063677111475480988505804551007833425950176741833325103575979217423812905907443676680481272324923084765472024226935067557595726514283679639781059620638089488261586418289116577902489479013243849081565733179970614442485187336408046759172482942247307177908253694834675777997015275699962071902389012276943277138044990409554029284008095408577155213370064151955075587409414272636038376932477210894041723790571777863348116724836823215365638804954768503683709985687318770127606449335431078911479058471772996292570602614360021809252388733791846664679981114187706876829051636462284454348749081431065461197214312199744659079065586774512653055051656218840655974182736736749846046327119081623834025483269045547105909739518057606825886631175315456099351680330841402333597085624487174996640902424741781673479852710616413213648956012561198712116468153086490759146843912712590890102970443693969415429520623852790064217040725690792122201370713973682593576199669009413407604271701877481641102371652854556330522350221408628788288722100179436134433120131519683542807592426481830038709369934580047455269759659368658495507320672903226801437619852962153066765024727226969273593480846083875696954827040632508026700619286588179322809293909671171547129427181330339085470650204858579743006002158267428269776503751038073597108505203082311548324942717729722257748728232398277613416820785941312340441742772219254195638143685014811966728274623437225053747854378282027106269352892396709353221795850483185978423074771410732965087880325815099765078971955894219978113124112014564550041409398162920063166242668308872598344581643304182823025625251860216687992059529257351500325678169371757340125767542569253236169603111395743031259285375017941223548359930582764103062552121646636738856293549510885980796009187495231551499308226516834465699258397881246151474314768732169335277312257196103445327373864169926948707050357407054455143953897503898055839238567773238850956206306551309596199687805942755510009470972911260002301727876374279879591684868267546622674664500810651393010089908531466639049320860452541373144174630743193768600366768160896932732435530906546181898918463774516690047799933001544305649802878795925270976204362708237388575785709228371642820262748199775320338682393471647673458531404974535155353163110752893890795120997982953814345064570603650666984730434190396613582702776867437588607309935104262998601812609896388244272661790633546605489083366032946228559778756849600097098143963168478825368680749310252968928103485999727205785075324939362086782299468715485792834378552827290503288253309279476494844572524260777288903427908774796532418313563253115840821276775299679652592569178297016325820392159595675067775135583790859472217304572560465811178911476019398095276333285011016463151239856586521515862518774184737546213236103748726312182595622917997015178642740941821091129834479979537307882654676067402013627592792641721139836401864656827141528974776508697195059082602595903815235843043640566491932865046927126646482396356552401576836380889926927497421698938238066783097582309088649676082592792801044589129952617340507631762163226231456346227045002274631895576875539594330640744665221322918023049065661927892929478627427010002798936544860266326659709603281321312706622286663667992450876652874123560465935338471717854590919002479998643347279974236393528400716646316264774043530760256918114171071706212130456631595891224835488355117832856086994857853695407827133702849783630723964046812016789002666092420699648474654334919335447116571619719445799142667055443780085653323816987362052207480315257773900569500832971377473553156587132233623472709177112277809274443270029782740606663549333595917469883454013434527504279653131142055881388010741699378659622520439682111620795713363188924641789959423967523404574435789398885518291323336707930025026962807582027504413230947248238864134301602737149492661494082222424436034962502336283563036250998199848304961038826657144949031745690550018873901145255122142268004415236605634375595018202004000326793752518270071982856271321355295914192140953542748403776360442578354624737384087875345336130691552840235358005958043687369909407247088009987930017206194907976941645501310230640650608863059089210684692125427962244617449944703891580616150774920219899643429235062568272840508990622354321773003060861272326652884213754579601941781919508594382502310600622415693895698103515542016880957060936553843015664672790547794077618621986683431400185922657694025922853093052557558992792807064006850711544904694865278905122687239365150042320588557708499751768327625677306050869144840250514926374459356491026006341521991613460402226243120780295898405483981122642331969787764079877631671919875725512089342477377786452618380453060045263753332198199779850041339667708990594903497813742749583514339818561845034902844097422178913007063647387402931636676336301860731959313488983907660048642983100882096789563942150039697856347803146202149081804104172458786379289772209418535412444815671651095243804906429316569699102065627741988714556786563367040591771162447278111266718979102763065156947458314807659299725215544029227910797030471648839081884790206457969851432601529373438900068325867419086996559794350678977507715534847307116214482189009575203219114926461774481175349932553209751229986627425893731415507276061057637080990331235571237670016549508748784000354222987388391012349299139022907149568314929560200397390437614933976602227638271522239312080907384132914203173641780600840566612852229519334663388956758102013998000682567642074131162766605818238905543554339629576074958115905765168254440167646504578040686604084651753595793086029431501152534702448601487506067389234795368587985542032651638529640048123381807103077567696203393192806964193176315943633839298599134896690078839855272403187439847649396999879081107000780428855733712483437427478661920155837680852148404754340565873093839885969200369508967200883660396615588547183374174534129047643193045782953965599449027782653529686562231794241433733543002698473382469646624562279235053569273132618604540204669599185020194658359608536706016925737641146877305386322596574770230153965545043992384004022629349061052512729840203221534000667643366370449524317093530762425473066043160107852828137361635527311574202879131347926325191821442726308705824747560259595894420438945499482381827602753623638259579697626398774889595480509997802302422766108701079550814494330261459562964360640304790756154839304605716635197660981966759315547774523245739034073286283329189379315247565131127279925676852736617887599394499959451189037144858692313958925225203981975935182161269018629880091649264542221335409628812427119373975135770108944652200748647182376917071816677618119936117897376300699900883805243974837517085442764594717777930495439717142425548741546211889511000873437527435097567983881123272444926893118421396846839153827041888906537589261996673601827447055617748479195031539717831839974610684869215635289279705535548966400291673760127912449468270179202312726623442903188088961609552078004723598979980425666586707928817933955180821722184716007067270143393861660947091538380252063610554292132334626779172481761134140133248977535391783269138220454218352504772549404547341052278443231867720243166236259190454478070686165713448431284587632416622595500083674704434308101012532393852005217155449893722903567405029508418340594446898454877654787688328396746882867244704209762792634635708661574897334251779078409750203044380051655939725794160558523832330009520880123026632260482758195219862434950586331045377851378763038309092844060311661133213737244365536955939817720500223932056066083630183696222201427393638561119080539487650297375991936910556756039839243391954973978783454636831174939142998606745121666891268266589187790065318478139169980268100461953459141813938101041172701316466604937369181460295477032035518645677183737212065448033000627998420746859922141986872539232729330511942601333495374140183804488678356980365491987920522568745551027546809802738658394474846820652685762995077849308593034835546458410414160599049811640248006049979154215257496696542023281107587708125611512944653707263034338452665943494295275574160265909583147241266878493368047649301736657694448745031563474852206253046699434170580123314441191839508581496173522464337290462929704867671061674029745771271680556347498526458030303439487607503414910384040736435853953997642291274275464001257754585429298490282366556015385541989756273213789961022094011685819132388587245547528424862375300551436637865870062654736599809517694806893062455425181127552633215581896151735882173930342786138936517251613067764912495871576581544941249898893809387000943398663639429094827090334909523148107649938665061716720658065235626316632583142155829628926720607473104595177861145479470660922563763721169442790828797545704053530650900196470330372222015648935091169561055574980899946242939676199604991375863873020362703992785915711331491730486071048292712461462965377325435490908511990573327445552780997155821378070301912263211111622954942229609588517346697350052762859642921529278727079161425115702974563979997819011456785811427543067118943074317896958296798619108697831094434257935515068905122010716615116222136446534532509146398415149687927098815318737657867343203141292907889082375625719515612112726824611317401285930282791416903557438593557970792368268918111364724037553231116211800516394439602403916594983123320894592051663464160970059906596026925578004735983796865709607167216467424596853191902654815342997323258001609305396325623004718753205826411290115182563882751688797305764394986553771468373326152240432689947082989616051065738541156143518721828626327220741709352469608745780646880016856237029846209796991049231609570534733239565454170994314230350229692488762746684558481388409089374244104843125304527115086709162684906310664333716828068129249229314105493149543305703382120983167760352505713660176900722440763750040485423376361151759700673407322887630784112404610462319098196592522750158577645729131535631340826513850719784225054049795863989001099152219275289241739165727887032145331449901936347440787317700783324458144899940799408307465078684595966757522929224100472710302710085774527505345909741385232085034037229578909215323125158782394112032876314902994279172414574892845679041190210520400768126799608498895935723856169626860483616353378705924087758947648399281905706799963354552264944611085423746335042883545784864555788873474872117537241268210718065963938093465420943908044378558840033247570049757370996824313016806203956822919764827274547868200083461327671549381889817619570983296783203688448696761204406187936037026587088435494320540905433164954005411745171433472579324200622242773406017668426019023367907035040691187049821026005068406533826023671266891011547843637779843170792064852624764017559049564412991599276131181581696654754271301672668572359730237219500374285080221146953816569567388448101066032315603746329603291784741458296217020135064123375427293826780377034553805419545005807903819638702831307537762842714706908141290909620730426086543098154266562536893222820696734246261507143434859479678461867306581112438444420426100557733696190270082261019374288184643563183252094268978601106234942801971590710215150636292053835163380237828544604813164092448702041382789130274197680215364356739116086257321129803903873167069120086258171423012384779565088022776635436638175483002345456283360480906416969033896572372481358729127222845685302909821768165862440730422632680958860493297504445263562642708315051786624778724119653603305557320484874117717537888290002180445247222124767505907923652464272721719413994645208742748734726046720270113132469696411715848519606434232986474945250836137530090251837485846848546384464802799722067800197558654076756649408081157980874963057691860876904020026460335196788679824188447091778245467034620635213337516379935395660528080928261304736602080677971596583352148947351785821793321081036655286737207309069048087850845900920256173255221857002020584948095500027596251379051553148733329805142158404019102297634794304715783127370951594003092766571877222859116023212383312785721664797319045710152218382853640691389668621442326909266946904252022039026539871626221152704121388090482212885795550591143187978147615976010777332498624577827083295177145332394123592585211646685280381119960199180650576577522714539982359563318922839267115850853648043202437459456612490531945534988470984868822139890085880563847058283715382222987962617690017201406868023026279365891729611422342149212846595987011098907643458243994727832831657439202753837240297440286009498645808233856947180692439618436878733239863216117683413162500519111423116460818389182540265229376902130128771930140961996850389919500625605801985264708944994990773383919005108764772673354256172719453837374040390685139123677924212979247608039263955345320524083232903529487306049364693406469828522482609486366589737403170400780781582647369046558419685452276613113488012144877346889040540523094951478341267923940785738183974492295736956686034111180178009828655978532868713522892980028480011068798762316257379649762541555949725941310567434886033052143573752005976185962140809331059630532652510201462278428232368444497509408497699667221175620118292467344144658920123539583073834391655691469297522455376013089350791081163561634325280485034247272989745490290158996816321589261851809061503764495173679663631086872048390444727126243747786132975688851217362331124333927663643129274597138069405301219585577837375891010329639781167082186716752723015211730708705719290199238323294016093795547173544951482698971028455103655828582595092887149438328554809485103459569781331509166801739649959460146223001843361234675230777182803049002456348931280009864967354852419017009906150795917119838804563635362963811142868315528947634961357633455848614051816335135494589259536817521296540254115937344773665644412411725909517270751795779190868018571559738189333461310501844183387138933129400099299995922113088121625460417681323233485112598746928396566684926930150314898610357436283817181847713652859083953067313938759844574498867763171193314291585914004416939439354330097186668493846539126693004423439437626557747548069536394993182320402372311483312192043624929089605444575504460877886218407392664275604998550341496511501609676246461029209742078005027551443903251237792217081691391175066949281275540811821933913705818471419293014696776055835291858570924046624631269641418104128223176267942561011758532269147923641931939126024937069316287671613356452287236074954728049494753896185135742055699891311020634337023393013423545167304804161451480142301604859592887992809779613742916893369463743964173877315671681752283711382913425186152500588946627952422433878706314117223079904017300954413316340270011562040891197404549857272520229759584719084017263167483569070686788832777750792751378502117413524360365868523444662902448005206828890201094875846065924311099819785125014180705011397887299417361544921401911217539204398722887924580292099266597101829866733921282579534107187514877492685168786985309772611652494548353047969929760970233160735999996090508573280122533998918790645348949486221803039618598108154548249894551608691528970135249010953965302651752242812709027112549720712835756768123508482484554343498996711298233184198188031089960769742673839980399903656457362408993132829866443882457222725655798100171041412553867634092479761366427993362073132773649301621072388915692555495398063247967721955451917405518686690587699323312823674703003917363885553265509620992830938344656462121178754386419455771039990193786513475640719660245610388830036978937177364916764842739631758726597147006384934871345504466684599797648036352231697517906180774116407641131084753085871130868931799818077280510264073019464632944827015369769818493150644615666123822660522846774476230491684634326017300894104402443474227918089862505346592131874752849014559338119671080639417623052029523577466170336821461933937718581818177480193382983009347066723416054244508179094467219645814651442501131451735651325588116206569670392648775109336641298387871123718369910037105625196683265752016977367999728428302466875008867151119685091702438617598051435220821467279730035908346061012551868377134168740720045216153311081560834521009083426179124010075289814838062320491783576300326376790831901725192579697335448262180629019332473660067898219838340125812850656317797128292044153470466497839318795786833736414736483191712422684536247400476622549086131099375036035120509378730684507045614245416608429435539146086155197591456548074137730403203653076486553447680399677646492857624071486316139646068060158824208100330106045431124173240525784197431330383158345853062795333805486377707964351913381006300800630957376726769285574657270119395058703589875234241283564268384494320587137763303274513090685874264065402453689683907386318985343980140311849676024174842421287056588571040655595279586830725940657389692538761822016383349949161181818211554350044420150046610818696559624928908405531656444434405860381942915982505217043583303228626839011027346875218058266564443236807390204233545336112988796642571378082528442057024211996649749966518708863547127869864399956906223354070152084281933707738646590073487623923032511202415165328933077067741882024359379265593307294179642524175177513095600455424609728235915635029332896934778492001779042532313281315957742530948955772359506026007149542553067031987701065715775710065880363632329482025704157052685990952138858115043109643852111119476800568830111724453101502662863079624339226899998827337247523814644512224319313263249847408001612192347218870792836700369511430600567200313287322443427315021045300418909290161208422154943565893007449615905833525995869477759986737105007166859875937480537868128701419897962438544692776931023891394344540591866715643549137357715330496021859346300345231072089775828598695628139894607563899808128958838429001967628536102084948577892974637604815313853192568673623788337875370121436579477344404763115129279648204303664899872490877999717708799964857445281743577841329232676218107208494006670073822453370277277650513133089505787185875027478394394967254221589384103904637762660505041521664319888788695549872883102958110147147015116220142166839890301677856028084893410438627021317448562858985137972784783449584029530186386908739375443192584510572717259011430144907880579189848665100590853507770675839012474128927233277001607807058390507921709441746064987879502753174099263803084857142875920654847642361158802489358670238092444256677195015541751904135011188443867661160708526466347661140773858116503387853612943750957509508830696975087704390014325531138147937168257402578275150792450803869689545608805498336882527360773678050292437726382213416183309154391075929943368327345106392494649123840220662049851701563579432962967802666714910226818112976719147656554925537107737648973979846689384813072343005359552832216259104974273166821991428479771415073671133068674628388230092645834367812476034897222236376706991422881756583983830984389350788712326834985314071912865044887964544749865647941144102200088899833871519870094184833636286709464478012576916916188414416228219563516333777379288347079971588326089687863304333059808441788918395434802563957741913654762932929502149933678264929705238173414588800469342656734552057563078982504873949278336023157963829660650642199676968460621344783849912997952049241002361355938110970555974336638393874630108735682239817246625411842415607635553032492485552504720760811587149587936519708924247772078450465347909081447521683801221969319718133337976674633630709008554283863632108235132741831549644643568971065923954818332462665455360083000197407103903592135308157947260064779114842380677711452938346312983025281075096778631728071667574815726896144050896436102744035740440398509368373157480236013746079746502309316460093338417449904463742445391085465077024653005236751992124837622981283729714429117402021990339010176512362497234519026426689712045210190462168068707437832263079829140033970748142322952627727344137230397431430666509827184559875981747081530756341009982433554021658672051474318340306367735890760347632755225388327219461018118691689412684901082291017906066766386385646195731047025504004872546510640099472800568989413302507340613504064911645605260956536038268596624467499701514163255152964686310513334076722729995449950280194646032565354954496731590771655992485075120122431548365453168462427484272234306471415709919921130507336046004525628374083959688511107606203185136929129185277889409805823343663492447694284902569104573654339640452912537175581132384221197393559675012638769112300726040880192724291969848233325133598543859600469733727307975138434711499097058764851716564433122249985179354321889103371733304574746856660211078089225646263255084790559480506038668467075224204654701932213551710448655529391804232519561697065968348451968415046521244828968439497177895184302605401072830302981030804727204080446395106848884899937696718289605816009352873245095723633769064254562230794080956899861938324755883375976961855485882828250116315708865456811126488881382274462972432764081695084213383090792844968405094387148732000572392298417399435963274583053428814055015353212617515781591003755760877587514155230761564507177952437718157254595419494917896825260806089325580805079122462334692663765153555515197574180197453888568785824306131646330290401158211831710166739298896836587231106203768986924303839536183294227878020081305318358733432097645877911475428098154754526973574238243660749807918498491893227439403399041325147166307755248727094943464889761015984855563282597300791931714616935561594392227767157157116393860370606293039214481464137164640628192655781182538127505026100452632306451555962067937795293001505933855864639382195035604623119263138566653929658249633525837503691804794005596252883608547666734449391057192787395792407923120638950373803917282501751824010364655616018248547889045622593618604244158807799386656027320469034849395731035457723539903952527621697961925673689792802249275455382184201357462490320472660435991706375247694465533101120480515787032992929534663309524725711473104706548847181025652949859176683708233867122300581880931825006254628811557943180955271689002972649862720712938578937929035701957089925966867294606331310605928562667187404925115844463940040641196154950556806199740282102820327579438909102024467685210644848602343186887993835220428512783830050828418081920048690661908913646742068060919988976578523559238586472410378825149341661746350166172051963810828266513791283327499892157433877601119000221798630676958382231286133504573855378981551013386319510293295608472263166653286160604211101913252351852999283828845215146060724040578505897810797399904792620147677319872445544802775181577767556419032243415401685647534385066286464793692072173035115679784061492309217842434761323226177339868329869683992028700204025125859061386620131931262932350841437037666550232037261328269651549560881722611260360147383007729515385986898437015965011061247754937417712663025433028864246046379517838204110750644058396446445393314653299965427634700617716765825913612242834145894509992805536479907653906475051181931959450550809274546369832835464865925601620203305143539308392562873277425000512357773300629914986958364901418451470161072500326026655604113859324243970361483379468694008681158760948755815550565280968799868830848119140011332279754165912416905872830856996887857747374057847759935562250872947368255413112893357930835281990191272425056497095208978320126818463282540144775350794281118699636426341765116303641638995166009143753712361329606243085202707899044024447518596505393639752472017866076023480663232294222978913321366671030537765964595837429605157011642687334856050951523543439164846214250159592257635422093290110712611260541860811052312121091348231915935888192006453825850685219562787268600660328304016610601339131116758249068966834935422338820211747695369458389881519480327868112372778835674154026722703840186535190479817495671854454410842123778033007372870669489985661378205326539880068716560893697894321345970846553228574381046272492032969756876555438916403695892010655780359144456724835510553134412895442207328004003419326069948967562106266762198365492438246205477539908323674439601735608757935938904827189064548553773601639438676694696047766089287299520235716091261994587494516200200072902791398601298017495149913627522203743199739790023700913759806631317228588588552184722892969652518609213567931095707027254457740174938058748913263417706235381002419487820415114843713899429423215498763218121791781363531353928581039442878157442527601999260525225558441653800362145788549898515137722014136022419930084618144157725501880092944685280400180246798117485329010334253046565995955473772127489428994527878934755646863525884933566558515683895255982429222996072329589366274200103685309600413961938294309911383779530901459507677556790294337260298338844622016559234017574736255907321213735311357357085139384123228833092633798983424612539845431065367936526126841323240378322649102960496505234068144648600382498396051893699304865548646777314177874058129358989404852554423132092435097028544335106923429819856804221842770414087808024605862539581895991358774553213459769924744183696919817969536235006813457943818388862702392174557047146624502895685011465115486215840099859504302032728920849183704375304698694707748823716773373569804885590430205925652373030236939280132835532261997140940875360952718349626415117562014905358718750299835109268477598057339412661753902404183224518222350227410115931321966592007538209074401199368390030157346266858264945753035745954173614403844509586311472218341075507657688334945123008497556561665520458119573573853898876413149610231117135461349953265344179245997079838664603898909375524358983295732181265444588348811816662298465644818440842879235645285892163129809519076605119700190637679688116787738529285249306254678079913168107743830464407107065170866671633318316941744852144420140531170906984256545160506895572627122164225187538862143075839132938347001012728468293721397797637059530461217658505343128132161221985192459161525462429641399911061071251126005724748406050144418037493398340947345085721871274553859873816060258461488030892674240402925852564815073001705031756125825304312248614015991912332531749922384026506900391056483452613847390042121080936653862808479258740638541002048224742587712983157898037001832908308810040887508155542232166376292203068744521152212680857816038331092668413744132158663059382402818238623688975457181100355428693882691055798851144678498205455385561674819924507612598171940378859688440923504132336478685353213230060149701048563812552620287528501126083365408897429848464464649504006012312275070769466308260241186286770950884152378928705983270309825077354421471886075753885197454961376615574142023325594335880736303895379957698117995411169997294793552452711568909865306971045648287205489812187073834141973894652715832835532835456372669526194029121170782974983891043882998281513236544777624707084474409334035710594287866195672885943050461244133377963745564069073980014353064692676593439223168693527802521377975657640703466407920352124479534337978410031439522718038350066440524688152997589349992303647766356380378617639750484482188626471569705055876834035050970239053588510795211318565616154288892672280649056923320827087113988550310043498132527634376348714493816937895210050954155823103898697202358017059525685387880327469712121050094711064000390269863629857087539529069443782642499897360411583621011074485596920404976206730704575267920843658892445794482955488640252349168044040127606322289674273309000709745211227936411277822901086406581827468643590256929622123363300371297753548621822666062728857906662909209711779413887598628527653931648925810670175472873264990846021973992530705568157279990278286590137759897974701950850083700732784892125617371434758456341362708046584522117322733279721844226111053278740701223839909027043395752769782052513341138397545599878112763590274112169648632388699702623848520212845041452363119483872865256269590140237833789125343539983867361735782160489631159581135307739058847813392730267265064549009024202636689296900290901149183701765691841711734739628659620887644048317421918018122536628955937363013117719610460608528213658573174428659769282766432954706525284086800302942967332714482679744608168527881175706245410229801800790455883749416854455984637752752682680887906718372987763086398406939205300091956898112743260301716480597425477811633062323663007452950137191484675429669744142959233819433797830362193674134094301959596167694512573585262208815020413614495319090640654796798964314377148587378605835081813748737875464800688461454927527454294460582338756613528233995936133191546778740640757920639462062693493065426537426517842622708440553671324783745173391900147452691763991581937323774594729588208957273230906640941436241125487787448743574905727836714825093492605143388307166671777105338130190464847370725272166906697931214339825437989352607371141338338613128355766928259104797384774165096555383905716677198395179977431326666340346175336209420475611594383560935655845245314085363561248072591343126284672109876301314088460766076877024513469272168843540057948551651820465024957800809438305668273854110708951513253803045726331580915026693211957159110834066117699507973732114442038161909648759124596348526745026292067669457178090803389640304350925142199394997062161458105529037655699269726664866015400215509716204755663942337609915100169539898190384447533848121116347664857926488036493067007787660162320823714628713194670473167122790849587042796705192892819269159001201604018193602284648013610755279325408706908595263534603532676946546307062406176541609043973864824669920165206785837287008689552681462631846903965565565473610121263132664406361974217098434423332549875660777986530557916209229298072973341226329343236781175732280084753702166066771088207662132106391888510791514590015163251705763894706243986654324493824360770240214156405644530395307534187152014623851020476309866628942948131586287143079578805362439998801230989170571977548143481551258853695381992507628205731543306281141500229520901216711266088415264067012905274119381541534573127373965151995648182436869478981697063411113655328283007851758362266660573104251789609433439775479271408449073101081329874469967811041698627229617043466000689905344443411748395770337836238884624224022168628294002325311033172037278354163685540203976147859345929091192114124704480704231306497366638898185479974903331088792067025827287864486757475286137686682015573254338326889038125026169747038071620917865710698082448319783791670914100796891495910742082764755966521579497301751808209125599610489066101007622738450239290222922785622031043545448318132310357319709461227144568899197382031398786499184189014422061108420473019325822314090097559560210846704458416242690680799860375030288264920416983690950375424619083611589437528118008499083219835265054071723765784029186208269710575186591452372569921161200541300163399425376199405419245591696611861470473194399980004401661395932448248395979440991050551217593664177714070825282593224703138440377707698033916878430827742299816887887079734362534388924426477632560922754995690521713561152997213586835088534265407013092848595737133862044286886612935622704030041655289780071765638795833167013292808885603896561018964832867186126352413573894962291447437022978841670719129440788416866593280509642853319293816901447241050622005055850240529744852335398697078294354065699382142954750211365669554404510061549085807513929698543156568511198539621135737964131112309355510083071816759173897459425129135615502051607564923512417331080751045734334002183272202030643292389894204968371110794295978149471109264375471942957912542608711236787540226091276542285891322363104388306643753125880003555169288884729334452778964020048442695160440746934483183012317772472860274895564041485583958600580015889237502326184173309529148259466192914103586153180661963659374320527066608772879663518055960537550894806606562726742780891639921967139413060482527417258348785513277850723258708120125839429145933275839467791202770471071891818172369189047294534124438421319266562816326584600841338263878169823966041762664256387213369315722987369742625881651074117785438752711473703410082857606036324876774513305144575138609765213371747581330613251543513815224965056448050626892922583819959354074861469372673736418958746527972937486137070664212938439087855300233285418867556583983987138189983336923187640388610438215541594791686097746853632973567577058886808594776245716412627030905631434490690880859573485360258367953576896796316667518289555035498926361692070193583244443236959783049211870353546034603354702987336766812102069675313649102951922724646354049057301766474769292369006587119052428035354847893620348845111003906742197479452388634518364665927222822401009906475551120243154282583869114620322187008946010002683053438885195572359850185336673629085426040290276200435952665762436564283997878651871819063706409746394708151370472886657239459754177579051708087676302901911505850617231544994513911972940130789364059570593796389548341590556474799739473297294073827661496077724592670373931494230396321960372942077069322540544598348184129689136911952806133428963219284894016705988653522348475525259884285248915113379416186028249194961556412596713224812742276765472905074485231305112862308207196676152121507732397828768490175764837154424639205101812317529368814666197246916121372274958791351699939412554001245271766745912255072257700493071228885495930000842587968179923001596657072787268544275161598194075327626157964851694158693200477762273684062640338019344668598587391027369415592361571449873021422437355052257567633787975994435613235210256926229319314683286174961492219417627892724112478193424621512212810176941179472740906463143080580901233441567505588374139386471873777104272952033424857156969700311469589527544423207423843512500763329516880005741651373777935115259922755742509776218037680073592122661859122034060491885738772060690972861293740997041176102256644679448393798572819536851262048195035668198874024925296574978944136883524608516192331015759321558955573352267612177642630666298618584463475705919386954842355227070150136772205458787275426164443555337993451243327596485701671565464164356101703457904906893425450399793966331829898401046486211406878527911560158287819037184983848694254500953810104296182452874913219826401076575339362531627671488210903703907862180653766586585042004580189967938355388648476537013551004688436639192054364086246489122207340640368537907875297628126779535459338523202208303459526581160863483848999122420519907138193998728306275439788631995826294910790284541030827580519133084553893096231165202688472106560959925075488633446271300548338020804594334501966047995680729299049979983074223625935093843413504494422583364187594576047432209197613824802977856862908887232590974188290089597667082396667799444795000849438675937756192072225960431853870290752211217843257603691926746818801494268217413497546769006608965127131451418775301040250800976472293006921146080748328472208860009628047751763583217879195773133734110694049768776404744197201823544520409998757376759051587024179692440093031303881740458605984515532330532962310495868975037103216747451602637004638426015210042099459843093282001341311742936465383549549003386018517721426370066263964374727321806855121528552852268286537179830335896478965868449106333254935983502233801336139595097317210212106378993883333088113528385289147543246270623543816336796749754349757072129243751754614502665783649983676698605986258677023664459944509896270068383561717204622178960713903631087326703469898227339064548415948809025067306349519137068294243834296289223907799856766552866464269511932573958213278044593901106549904179668585322995252102932398764521206201687098851245243409132929682049407697558932985989539704351766460600265906343075537377316961239374869622133746061025620645545725972892374212199976884924418197259954401233632284004140926208444834633838344149257413141054375737865372347282698910249663239517672598231881075459023195844639020874884354946802764492466851262355578043765719236292288649841919677947932242339477353180791686464394165079756174504987453195208506407939225745098346295565996665102794795576392718141966994889406801414134321696943856328774703694333789358474929028198439220554691745376492796468328465822716207123847623597623006845045167028666112893800832980301819239488433788836644279395887705336753760242783199942008686319043793972405781244230680963448214441066456267492062611554421043961487412903769441965235249723090801033228435631080950777994661811002463564138782271934323341437012391241941717436199118594588551342255175642288926600633145058913502486548303912411687171788345904674061858882558770154775958887817755767863834901048121521337152583656214136628353346453668404056025245484891365780047377106874738800927578965458070900745585950788126367322094981568481007161143193162301207424047216297752275815935553252920039987401424031181126814207353541190193741914738942687677436984065658261949533564262812568760833576703721912002887579070015048856623239635387800534383496159715779242820825404937158929454563419462559681750552483972941416124290453108300361056207339660327249614896768299476996102817077853155359259249941179939500653058835388023350680552314573479486555402842369922148771116465525468343924845954955280388353359482604066620551007967008868216807096075312634647195371726388904979458976906752964716344669381627236324805166447324581529876908466561499314944054142577711415730219100767680005439406021676145690226055409906972784201179647423354389340091276407270957372330747915033693480027101542765833354642933381187834816875568494469346415872267083995607065359324123399576640705395735170319000689749809416355780283962456613774122977732372155934607206061360996058256742080982440234487469053139920300577746902165453437153826890615157727416358689536864710440065538450312507389212126211535724741767654591926197556716328072850107143589247383505751412135077825996360188834558501685601446534532975508972199587860155516284314850600490300219160899584734800704337726322273368539094245153048645105526180663944531505295135407084393388507308869798040738028053319857418171088307737821930692253929554731311702975142844649400899597292834863227312484584323340344264180064316603668071937633363653562543412635892366137272474159529337211027164123990602275850999017007704092730134128877238813541173291945425761525625564858591146171218077773239198292026262664564007531752577736831273613896887275169629300853938359309028278559784902278113696196542765045149376887327620210230436636679479775842745048350996776928668814432525740884905760347237978576858828424977979404385856682411400871882249192345328144457018024058445879512682944619532997316452794338575600706525179842938542286581296595374007068416363548420946755926772516345968531630370874044466054312720312561074211019992240129156192558342244155830774169570635716022655938430606957039645640769981895315819128371392709593294509102158985253109950564070655854450607042807920154930037013531905099314542414843474558122208719900245767796928553252401349963816458243820523469667919206002541683107774541130828157649309284798898999812372122997418534563568800831084891489082800692580101965845122223246247217088132705273039516031271751674967077718057633959176686761243774339010635808939661458930835776811026281646868463984022705731531452817313020921920940148388904050775514063600388677606337410590049364498943391259456942161964161619592500750266911476704218235568460553940100366712301680149322888768060369080642508309048099104537395990999219738369966926252059342446046707715272105433890813191068591531324108848459141321954608249669656775428711174395505617285215452511622850743199707667283894732452170974783106639158587675188857332604114591348913464694950291063649731695273951082661983144051151197593090859602723037059660313793925632265141532367377831025430580186822254105837936328536022580560619447022803835550980903257648682784563732074714174744682320138488824878277048778165770706935498949067480463116714119046475894700231331303168105051898254441305041020787795397305838362448792413324631497168028375752849795422903665800658610787023940078453602781722634459948624154737225443850389696140625991640879104826081366780886542584378530006061281265165230620492618447649831707092916943329340345966684356783286142807977725461789593807966960120665801195078130816256884007123875672003843391856334002444203465508580568838109180880472942969138281727904778849405707123860832887221069423054614184967693540881287144499902600419948429520748325468018115251333920554158760240261390654775650111421592523508819862220683820494456335039874806510729242403152598324707356296131664782402348727404270764915675854589161973442075176106029172086218661593520073589665799644189753766351052759275124647529722891704911439536143423134379792412728919270205552589867676740456807579253502027689207342508211390784922773780898577789025060424759900109782391467106433555886142380429968981815409605181305038454043884546790284805141300171098630555608382202885499611345100585730700484896517799756951116310315790236188587360606567815105404275393498602901777974959202391332618217453168475951508777753694320000059431494218131051353021789809084885535138037162059046233540615013147209552083915293861697584652560471236323490029640582439659919349918737156873795380886920180760524073912163841890755281659026623421131047516062311756222946770416720533083719201182891797420276589077402274154747526602546612260867494261588875828819475462401235178654517661263190646412067800409042720698075874651597774076706112642345827002203869937142201951446305769928969687021558794683609466671540142440712617211857144687293552093229659552106721833406111047827616453211917478895023224316523231841272434908252307277186018612095415768709052900065075205008843688846814867332137631235193800351548416656873188446447859935351298678154424582224171635421064197184302685735700286703093327827678552868233938065784908586671790022944013936460214265530209649604712378531162050647670327349076238771048737493078220038875054161427679385490297356760944503682684052722297869830146890292369765450630572934190146828740792150734110376239072381746105315368078215302668301345617009517884888730343117371905124116865428333293055413053367351590597424021826736105645575905524368885111783301105491729971277997625323494463496474623333377418743039713900514647198306233865030175220808426920988643760510703256226131623280244519784856702919490233395665936170409992295402431536505323514065649468639871598656535883918191169988262233620600231817807992222072042927921135856030712146219363159810123626247120188850933046591168328808595461432296938943136821461454126658414530864852328912082141878549188008231659693331465310241634139035867781921715086397020415473741522189106772702500435975716314322093300340455151722226327456393716970148647163240155726098182446391394362706826877004077530565412493782410962358905360228151182645005714885186282163176053539484334490941957119847872166834501356850579909082261969836384130981109572489604403311078303376876900171690617734587591535081048825270806694148571493228850770445037569309098610846823971103839991944725128508656385089861117984137886220550096092522921681265375753039226737848125314860740624685916220022425675073228318251681576994207366076912961910293724317306107323023919952434136411585180453551172983185260109721842525667113556841473089848309707220487341670194856726111333353437907463859487537076498734718116784324167296989125180816680014041908076875366087526445145410427398914102326349499039816648649114644394999285476416639821373637368219992529496289743803392436543177345418411032372670588591791297142439804330016800079455662952032706654983429822290712652037583121909774376446994712459265318346397224199051431008700340279639868510143011146218457845254649288574002062376441015485875784774550138928425526221100926435234737506624463716582776574421449913938280426533609692748580897237216334008824775534453385091247458218249000102896593348768446507137891323785535794229423028615715307821418773513971688310967370724490551650103124312194807577443613518983121686881994363806676794665733271794143848688443004530857300522551596004320917879637746684970009834903918742905019500229272370381132642020961979497500858150486164362369747280119184631511086580177904268299849201224393951166704842144602002027724414668009027739122656470070798627827915806876181790387053586471737530894060809533259192151481682122302080672279848952995977400880192017340125288574403550428065746000568957722602399478060882089537601572267524613193770246685868976395186058419823816448977137006352618838070462076434043838000259135464590506640308798284678123691117237835850031424875424412176225494336231308405718330842755484098873542515190173308539316432348193191594055771155089337927245465255142082004506983277618331094857810739405096140142683750856551493211917503599113672389917807090979382472465337856723360147283456794034151437055878072347926564542210192739374793005899628366991646356208781837495890804356868104369971211474016363357850402227995881671400747724953517403953443075419228309300830812097585432851004163840724267135867853498422065369247657470537315793167158899030855335113307414630223508128223923048539943073823388783757807820824426946149190635171595921393559304051949311966351076057227186435146583622038215747659652653091499842384466618640410598133364550314655705171783470831869514901185570625969336616300186981148822512555556663871676688384533244571624427955149278247609794263477730884564112017180356635274343594555887617294405159757560208707682411909898379779046517708683620617314534191576394357873117642110398487790889988647626125167441221328962717471358579058715468361617080054011077045479738934249851207288299326148875220314785542586878044393186156147103921911668231344568834404657735843686483854202065999084470639035916358663079092052242553503992824481978850631768458867107013327195944133580222445730954676138012534092951058976029294223939317415567689870644590174766700539935977495367973622027810101413149240616261368723234078903334439638997581877856723259868944897486098495169950352078032069727609307488795139362104353230684846520775819928521486432795554782607060352342403209779163539910335377764031199028606820581103812018116416280149399557066104705773887534155311350198297387259783078069554993567828427085901456007839338465384589080920063719549081465022862060053974279844275678059525050350317841380651390056584940867918883715807790289468858651482995995861566212417905515155120824334984686303543233529196417521662952542442572199854096090334307548214915933805074182124981181419508613882097888732739942054049755447510913142391392754099122044049319690214755763112268096108930933300703450671904819898571208189026211804672989958975735463572329793542659792632255697813036171052460519166807687685442411975492899308373683163544686416331935370419577602420180942349928942299477187566461582711377159651350680272850953029091960275568896120590551294551261045178691419915449789040046535833447965237498609631493767438073675710701980859005654763210835628384851809637504436008601294240430966926133602948387794362243098969647975378264811805979773647117619546702466509036745775942021192013321005263158341371435451905274976882177968876703643686154837291167474497620344165652274405443909217564563694240823295755566447093987774609397470111101509322159983742134178630063353664017416693498915961339049623372639030320045243306839895724305739608639516837131736302745332811059029379341521302150304701548137811325899531107269121376986480449203532403380236562981731719123083175603990242465002913222534552290865081146917301777272850090939301188325976580200268527685850543174951716390095951808902148183112247642074376829224733087720612901999336380681679468205222206808765858349704982076274294812500140983341376504150099197887572907801687400299615811240833459616163184091281330867094533534778469995537241254644836057063817326128268129936097295421928341338094322195439141277042575765241498598138739448565749613604195101840501334671817323825191985054987677893071656279806553292072568550183819704822756145926514349683075789646618149702627538815504442216602590384743460936578284257940490559343789871532403848908087788272212657585051014388137631139630785275668188389593003894109308539319749704011396120484783188320033491371491440170656980746523167406529597168183754398398123450770128046871194236317616328090516913261086074031882906451624903136588069077126505499274593925910730605818684552045820965906950043032408686206877499979592959628500381436060212287105869732566788466835037367578874161271118943919839341446728419717181798415526708813758962184987913971316355520802888636858266235712319744910802449999367117803828463495265652882430973467187341310445494588755234699894144186762603190633912518979721409710396747016937739624056964285122453109753540565395604646345248370607383469304665434997288958329984645402667050495431364528604376666207060659839674553208170020304088070493969764581128368380696769430260977360939210499733092329471334696375072211958673345000441179587167004506056473371991072770004995128215258659848757288829490145036350079608778555393557676262485089521650668978450338796895934005847394003304511032172966915331789825475331349343481381614866476584649685956568649592034939972954971412719762997801411096223793778747578142341865695434874370860820761062096876796976353010695257091983157053752655114713577764785372053296841459019111739917006210245013851506849925246726595329889304136048788214742326328640931670477831532472382678897869677681380059782409803725649457679710900835153299972056840866595499644933305919370245070876246162802970205022182609264007918011914616179696872261528721623816516324350061708946950645731671981621203608703140825260236486277993327193443975979956618836116935833079873867274113970490840419020571589406584297116590982958778064789402993525365543055549811981710578533049988597521782661993164383270601758393687652011150501581448054950704011244614492282965267170001245242321442588071317166698135969517405070193527448643829479571539856808073918769030077111990831941845152147998929626819289589471064857304156095392238457366835109667381738994726069689603587030140726557089233751496578143323123029372869451658479339305051556850023748612298376491640762763610904769126514844433454748950575059567208920768605310182550936296702439413112979984396641688973561796195608469064100076440806254087832864597475777727232636389049501121627538008780865352488181466970945428417131460448525501719120960413606478443435349442132738389907370981926750908938675602343034955418246783521659569024971996585630145715291384132371329739470868167571882007000501701309068638332093768220409837304513410086032510104039804564749115482327214315707763596570562024290469011907724987792538939831747674914120197747365335873479205975187126680087153346844946983644795175106367369508583021250536658675527616298475464125075124098778913448274673181598100358707900090512078256173807798420293450266359125162241090595316841987481659940588356578424806444145387757121422902412772828193433706757025924031110250719654637527537195048536526425815107810203035993312063957264198803872143468665302396808504219644489225078577743474045834626012015908956035052630655477577207957209347140222786290989837103473267073564814306305582982368908391647071694055104157897593642179732729243481703962307167208480704961624014859959714477798859014072692932619627469437040991432210824949142586663777304295054285531667563131680362189373735546074863700184822050058922506030514369785286696622610799045193186093167396670315775592913277207445104098484112105379462077530579416690705370331517197150684819086941800750043958916858761750945695723017569284273887586569796262069088367752308699472327507910600747187291751230310486657044149165255910363497400620553245536692197071893139021880317836577175758765629655588362828306570619610789428025218806386381803402877447075696493578798100804649430033352437027882479463902942360480343446651294341201088193348259111066930387682786009997714074248725747086995750763688424471572603636318373447250891699984636794902923824300862098711460289552799350203503931846947919105725097261163583433499344500131979194746195600800402989896426085519032554700864338254987218423600250337836968630306480893747040079025443682439793743625068023541299974473692741821726152777026303650932707334620865016631450645029970702849006998234667444683183906926653412851056422133760927829392577960411575303773627492260409660442221050619482891973028611270243399685843050941145774573106266480308997866094867339914737536774329295548948923248716677877912019926062751681025523473143781028157339214587673503670731756611814744606018683306898656191101007667274393028410971920467713522993120824912969202226016532266107608522184897409323164975594843617242235058115912028684184925244938825006787619938317809889446927082550140213699554921019461482726975286161796324728951013258063180922851377383405269047433107543468470989360659091620690035900830292105949479201496754693167498410079069322020709671127142577466333104839618520929615029040987818128879929587750308656461872598657962995586449097828518057208093978013284266162249566760897624602005752763282562503807682913980775578732666239741571463953152649920265982571505320512588406135204412514616763016008836396926817174380565713000209948688030678960500888333821557294430024287881443589130309392202383706571685907481959014190450771456089530918398447721310672291370005517526692335210617760586762796331078757740891643551911047725802659885846774278572294429928048620118019140737531441167446359269360782696890805662431999087179153894369165600512089582908940300889408068527013837729766541523639475170965637662155511531670604346389494365849056147769430389932676923432947164429359944345556026274700046362640968967839033334474443104811843248571900071798420138663749259119494728099605682006802758744002305400726584564143269384278313260665184760455360298692108103128473541939153574206857017488271165517745440796466251519317355147422031381141183298423546388116654979390147106100538614975012181716791832591278166433110485707098509305996165286532352289739786907089237102091226436836293342685861006118389384735176562826278865155051118115445881064204160591080338488566083134855090484082921767104043596357151819729738390264391381828574568051186401236271392312490037325481309852005242500482545522808374790382473555859033001950827603494853180669257935928723942454943098209848815260600540089217708954661854817633215335088757326961133216123440098053340913168195044769877539415095889163621246631635180977707662182411137269428626653538377952274596361394039221291773766739339740355212601766081399939937531917420300293425063433385075187952745727236717230781897394011919788873586226204396948480946684571222941140062424721235109006939183369651323290795758367741984700226264533188747844459413228496945510711703818867425191867656306508943975716705716681776381719865547692307225212584551793986475029494278732164157117696437478426029305906341585179406697534901252018093737570755625666361157938188308889965323855871827281107293154188816154552469669357126445298956560115238616709082985120217992133103126367846144445178846854158367742018675304914249380484078403618884105364257469248525409197991453274823887371362351573331266527300751986996740921990132813912005278697117727558660233012155169056162063528070718185641578397211368913385731743346473853322959336454400683433836528821469970626155737954031533454395386409064473217133916633282465469552778017325203325165890806570597344208690996695694385890343921145290602151271683072229147138908417052981749705382357973989558842392443627744221937910677910568517205258314759250291341968769870929263878700900526299780260784494052570198930095440815609810304532406342787409806164431884107475019911113954293955760011118116041934948733335204633644273361181499895899854888693299316889660350246943693939532946759408224458381613011591353383411862161944543483233157822752336747955912655308553098653179519135066647068467205197873156998885459676312437168771707388902173649133068197446631028315466686628528414404130158074161381758998333811421146516607166559309410331923967270057353032872249554477288851377627493030173383732302562066222464433905057456999490337995508272845355571085615247118384215663594285006137518674915198041631031987807358545736938654405537730400752416057935609847020310953537919680452060014963363243255025767806112725032497711367928241673226943380247006406068870232650714774716880561229961154449627058806843434174416909934111164822617058603174747763325736636483673892935974693597081145637125899348238460291089264912127555746994418381743689268102269375458655698610014007572488964659211413543187371709194883751136955345831380208706649785725903922751424159724476999461617553606039612065870500491232395191966808209312101274836053826392729033049004620339034733367524333433250701624986695444548504623544276163210531213565655128785568920193263540702124657324552429528823672226774164770719246882064943136299931012326939820308336312746093495848585801499181399713408875264280696095472568038191955152776172158161327025570040208053499198436253381595915399797801577700301971521928084523638102736690002159034526618894933007215379082278853130908290484443276918014765217888203592002922947333938898860207482466703477145919771929241783749110849041996309692553623644656428717961486768259880613039435003639243946015523582928488336741937082683894800553430086219813355160333584503111183798775192132497660674120770407671439355057982289861528448364801415792946705646967310302919094235968394317119389747054420048771679267080300994563000034767092258995579588941801859730368933170251363700160017671068819203930850788141288641148023516880073175153909643838811511514207634901970897211876918208759227904064895136247867179310523363036164969512164975833136891131861363220127380730416946971363413971098862951540449083663723859934038695396508761491635841117935422972082231665473479464873641370690837265981186312293661318157894437491257179506433811936604793815324338492438781765298434959546263966782332201188500837251832351223257377669289491129825705318983105719244221390288387533655016806056728712508326886842228862742367802392165794524023285282909487829732293691274965778011191166952076818653788067410202634602327368557863396958329677368484722859090346799430013136041775239595562160338948094132640112720492051933717071654916702105218573850732478083531845117409459804431306921104617204454207264611878352438909925585883426269330609495624411977822882877988551306385970171712739674211359157653118279145397423194828850065028383772387526304147655822010474776944704044793925435264352402315360021169190579077295694321135293095738493584881604416296757150675314942293869035803363028067499493062495087765842321621312267923027574044982332614644948374500022398604146232051823772098339647723286453380374633272553492770849844261417575178951934180625715326353373199168081536658884939517398148580398571102732810288022143483613735934037041663209001555703537319807277442622422777544773340370007601458832320040825535383224588185345614667772995728301908795701342074804572130080477703131442556895517079812549255428195185325072739372516879348509800384506349818160782420502012384199284401104460050656178117805287230607130836507827221595355217787394381380207274821454749057496122008206522739666946196446923651500558909144467952197213888140234667301982970929940668163837504788503531965067563706166831800738865033499860327951565868267821523711572758703018061399029175100207814124760969858802482599067220168328510156875452621558505089128365449461303146788236847821189790073208330707074375434823053971607398790352289343036088157163110948348479864245331066488428291028351016171422554058829062150203793600836929852658594932042451228570083264413572911959772794310386024122842462852757857045063281076523904865845557869639321108981167606060199338762001204711925187636456561254997830352345922329696780419676986607531466057907143436020335076162440319965093792546960644966569866988781637849212327500598017214170099403605445752828001389725545160951062965841284120475515896517421983009521377325204780332606425226446230158281647268271943419854958971734029860580990172412249045731368117527694286194446814449484654577020010225442011420458376516233848684261055085322704906369171914448269960778667623959557366098117373406732596867539340190114878847498418281562569519315825423951233881218516507230925570981544797737941185041122106958981953499010190009671639352389009112962728080451161339982982288295619638229275904103545523273179506961956111743822489482798344819141710709760319022841877356092619334020250100092786400092979292249896175972875435941355927782997731242783326795782749275158467622535664945639313568181862482497863972760235157241603680621915931152813621948282382412404874620395161620548699493242440976924057956629266705543699532761072091103449177470807893440948581483899060479203680098661336879970688720697542236626822811009593096686496942225617990297962106468423020962198060090605017583343145268954166119806952937339105555108979028913772368600478426084511401335462905196584818718944103230893667234435785127139254802644734560664268680220473363177463784911002309140962898869912015700793982486077395494546415347456303335813474566143052295216376918804780775166680769689428974085533865442643851470576151083750399212503209245459435506065438902295423081858322334421640765987587771517503813104095162081711060807294435457210644101663260101067768355045375436679161823990189602264173839595012078811810588124303450815839348052165063343778547247108822438484784031400276947966864227665799679167126748877884094586924814575018744245413799795646037687400675621172099727350082351057275212168246959316467355783733974724322403858075968485693700198349150825090958971819636758789814051994634999522416323581393003668693113216702858954930323154178812523435755816031913640300522070592730804586108845818972849086821810634477824358438059024395559879745921822922340552999106796900748964632451288642755129633065884165268481590249671854442101256053558707408923854320074713074447900288808060780754954530381035199272440411813783251591422004507198204960902240758816769383756209232775297187090292531989899682414120996273705810683656003637102618316205757963408938091441008176100964978939333059989014572702050549242947779052635872173678992178252865050843011009307548303075428839162097726371445490363122935569341939088584139408472777920669945285117409999249750134183295702640701508470649378765575994553857895824387896401821396062666879834417119470414688612799111369775143461989170873357829735027970790991843106491856431720160859391591263141224553020452080889081928077462146306514582397291116917724970963711545367962579592882061218447777388957419515145735552501975889114739402179622078521004189560425876136021408762113596961274757184119026615030203922858143890429723376253897473555065496082821974451139982428074396441188883258070104803917164674699649825420518230306925718783742555696028353029895452172087322523876836844378372192444135109214268588171579989021745848460277766064795000178267280884361760346193533904473293928007794840987176531023134695431025960625612872331510065387288900784881552087920307213088971064662028842933340904114658991809268284030606894130115682485590294401759005059348219846582297240922180363518597376263674146913559946299387777510309938010696071222718348418684582392157900965978424572128531878511808638160341422246836498325572189923355669280714796511568411775260202914658568700933542181593599320180663096723915016026636134401665778418595128580416271749068591164484605337171462964485508348067397553122577058897049711166103554648371850639500268076312016946590204012752921516320604130613677347993012735536430152882770268352235307337067646024421312956525108817485446913579835624723671737292240345220985887734740661118451023267772520983291599884435635328549374826208264822351933362592560944183840681988375800962277070240325217553600796479083230334568519026974918298304257971750167210181529117979985400741790793833092676499437517411642161895124501447924565062544208465713561596466766567527473499878675252053559114491121122699651229102993831094100584241411057467754224913803500578148578930360502936597117345092941978458311747432111223804331137526859097539221512715830976029001802219495345348168368754983480988758977595108177082023682631697309726648095951229824074947628304552899710906711609653352624215202829309660400804150591076125932697470238096459308059789225429790650457103876920865336852912811493852030844441381277326046290733930987706716940053648978068617454419100459736511156398830589900019118561478266439433853706263320947769616893210873516898988092557457709964414128679712950990558766118276586777712628151058393636066127744314786538589097765636623430386967625260258748815537696279553508896562274453686055920925038774874132429092069877678623356449746665437030467947766689545268933357083969722200241759903540953005885464866163096237993631623321229368948917748662403453918686763684311084500059496495217191060683442930045941123148124907669108920038812468808011838929357240168177644101523122946038181187396996128885266505871035700612089854475405428969868198446513112237487876883437287498302471728520035486899545845296120185548912835015751243538648423485263715929924085842417962956381141329185340421552027534535839522899030071605662598080416298586265316326240929675136643974056077620763577254985607737180233811245778891701866545396310428577293791325859369280691092109846415444540382078839270576812627132794986970620152517495952745557090746552677041292645747371830459890027924391974975388533285392298174407159146257269576967363100543503737941249025685754633336977703204337393005534639974998543183329561576105287873586249235402959406565804768193452025795998817826929085201372113906799731602671131345122727002815495255987452904150589805945346638901152708307503323352087784454971298034380025737271592584309492266173690164264691601779567991598873570230946284897819642744811803252805912495027757509410027836285810050521295968851613700307476422829785842851520128136515792524021361990377698697199808388488721318027455427867405883111661390295455224223033029625163065735700782317499547448199807027008554074186928367739229505537639313800199539155976620682123533986429261237169300468432893945988690170683582624868879381541266406097879114507929588680890084977300550244178512236142358946562748134069375997980436381694037295525791869915877566411418637902419099889688644224865406505855274917170160752469871830936033956058441269009677429866745688073399159090371263560528554513309102923875369874337823402661635306011953113440476787541010771363578257921454030823416573790876009096752495069902683334202005479027323261208249144893856383655987790544755897107445758492291787052587405467349417223139819233724220545494907617649073611357926785359952128024533429529219575273514815269968051548973531923361467436497633286445414711162188202557674496362267664220029900019801947330418129222560068371747147828209820092113150790967241236882452282378420828873485675872035623904743739002413991785107700964168708939026754158104087452478839678540938054934042776779725022643254845013997354413575250975920610754945737836381570326261939719252947658285798092073979777491945712554549290904636808349774267925175498073924968794274552341866870944425334808659294571525119640926698982495079370729488654856926507052886411981423311294428378932891339396531164992834821114937920658628484572109494974573917742580929496875795801418488462305083495428838330603425651327590337287386358125422173615297100355665021341199961049035852307856826018705096774029893334564616940046160334519038633746006793716896503396542861941034562905402152523239788804263158832115838976181034886735588274539152113321165749148659670173565351158126447956122866685807943785989306022860188107850570086605091088466700493496926644563173077038453010730692730124007493712546520919435964190331732566508943782314629682394091107346010102607666652628887957670409036482809808229476097697675383016509235768347704520233510912793305161034056324401596236199129622262196231434480170423569452478678829589398467543208177961121313364394835860702042897304053742449395572900383894284907488477715451286240493348339189518910483447505478976293159214258527298061221479513887925998031649101976726237297261987501624511308016663748810438053557067080475256877571141962163264284259782446567849505507491829263099879052151481010010990878942564560428657636509079872006211738353228284302090868753980359922600901036971049031725652717333697018413119380237755867366052954975232732396483465400150103479680650367617033971735059724890385883024444149563734227390706613746418119210806877802435628428162661835967580106750998320189340107169298491903704026608723882466421342535657709369107954270526802652023481567112990515519081303794274276561199389354598522170367408360165263294229767019814836522087289879612138457414340504564200624277699979060869101239775289767914666130479627171033777603541312219179358114802807743106516960964781876886642574302876348989317854554414991238334344020408114391877767480699685610708899025293063689098021883478597142706005889367984896398438714551420985931698181142015332628814422117377829258361168370169176135353320864448992004156949656086113917539670726545761291790520882669135926290008191009329394092723730462644589075080549035000049548116646818182835254467361940271776908078116072275544944732729511370382396330268652757557920060864562516938789537638282344678489646215261492168733250288816651794483940722792284965475376263950898762251485077836720175606253267287273422967698121819074639665987153634085091419868763971744928944863972080180676281668623623222476657399553511630220171279350051025853110934709000832735418276279816664820449811077027879234186225182757430166552655099437497173086659299136299033545231456743200358630377015739398363298276580490274659604280940681037531730778552351870368518293307820883854108683992050474285717162298028231851719574501741158719285570357588279382390347215316367519062113256704510091668932645193065160559352969055072009385417367949864316657492597458191652402529497422712613479528117386786934511564318176002593080622417777712461287683147712491683008941923703614846422860293198835195042824134920837371168456076612033687913503873890181502792881478738496596116450083770586042995357685675585983431032758521073695431250695611718283808223242629891447532098146899152968613137283702619402456025528631300367173921760667942270416875186856630338334645957876630062278425576268824123503626372755148409321950577535571529354509433080921519659746037458246245813805002787636977153433653720735140832329333985645706198953938029258182664610405827469697115755059545023439598287249684734526403783057046762566431597059945769417005134352491968921926886547901679184957393334376475182954419026843499493479601101443866198026336205361555549800644126491312008812573088504570858428473440203790456023220737434145239388714322798949697279382686165245766150035182488647731112461446882296359709888695066299502370963482936890828504150635986018454322005681403099992532268206136470287392320713106577208251634360588402825009433493174132310564322749346598724417119450723336374247174079427090068768920733964405226356157605181869151727003730009479075833168606831359904442371683768795201832458980085972315471913146735353219387694978800919092879427159872187663305081772205893951225393747793487175953154238576258801482428054771468492754136781422221966998519678530821364809429643417088969682824717604442753586849516434971696568177565615196241353506749572213241944994304674089688986418826057276168493455591848425750709050749245698370027402420414432542903514684691893605833421087735218676845163368762429017485771603714766795340603320926850616391380990376149863593277076321986851519386488103044302530090010670027029426604997295560869315223680688874725050743758502362736240035009976894793572872676451539093209952797377575656849224246239492960444808298339885629431144011504260268112529351906313422531794647537686004934067597935609009064769574028185823744963061607967694140808299548371114742905602252736001373880117048858010083134745729451902217528971066969971444887790509569565523912882133758719297936208171867640491728164437476270615239557542148511805647437919899809844951647996111033199751793695150617938928097812781937889222069925859670759443193926383933666320188425729945527020147128852848772813493620915500380428045239811279812843786521454902754037306271948155142957718800857746763567527098898568364910300708979503877866159499790648929410935480970002270446149678086772603839912124840928999595389617221101054253713950626825797827048368173722488512819617524219693308235212418721575468404742719139113522360406287338573788586670831485674288495113269991352995784003629130229833735354301429153614806310327615883589360779579432861761501038987413105546375723877976603931479710472434487009359151506358311737139687789075464146995181950834723076724562762277571987326890441736651430787571372119748217244096200282034104136989084226682657863962047736118418354545226007198580252966376320753130426169504874559445328075544977063381649572936719000952065363726208533583129251016742784660116081290774349746670939160170691736520559520806944606819237624135812879301875642446861955586085506298359594192204303101829834999553650470759012123015816187719429151375862616157043959181970180333830586589027450286523382521177910439131336263156007884792072134441123738898712215125020070996606074792714195213208214111928034630499824467208429836729091019737373897535262012261049847913905373442089204076125640879996398868950215761110006335335451614831985382370996366614254707597181499776998183387348141067795764519014638656951307620550859732980915000571464031192192282117386199187115696852473422594442344912162760480978422642014398982209788040324309603318365368709561101722457604451470951737804191828108952516306009584431822231247838388813660567421777997733078885230474315558202173046314480946976562909495852683579174176864692511800622243702489855876380412780860462806884629533868563337903510204708595595261163701509735199293872573246348715954762308501688501142788719806270418931212286453819747711651672681576835984702444974553206645164539289140570793867897890731776762996757801160023421058502204837073093326822029834301768790546034144519301064370541252297477134958860617287265230884850731810796871393755950827296101047666745414933026053630674044325378003802280641716800834374020011737994031914694720184999421848416978990885615303777383671944700035070858120766548774660384147758882270142271791125094158463597838945684899443734206137055330605850721371806698059258699748407365937362856494233770111001204547995488214050644475848894017227687541831557248112854676365976951869382732610630029707526577193321833966203260089811496675481444164952726307183495085242833182128601701862050430606984723059726001473574784420867630267281999475169602471998491578464854611916732729929287038373448441894632860535075231719312493696143645202321996953511369721316928598825410863504310014133952103249152586833408093302316007309133426061254406121707571475019346863417440025584740901413005357063221173145517430046803297643734171902093085036709253715544363568880324484973499115207811078485257050977572687576841647208847329998406382958924078441543333001719801205550656568729997589050407555103100328814576507904897813936895889259523395695574198743413021376073520238073254336475626388218732379128375064992528100311567754131114911504186722388527134894677700106908577462135370480477073590021275425981111929404749357286873672904799542251816016134092949873634155870273404146284100207674542187552834643696150264553091074388046907427232240517949700441105702480143433080240882820888431351411099595811050688279390978879917319629276840472144101777226975354440726092074226195357293993136588720669792821781294111620116496355151014489041603634628319413312745908208053727084889297625097723794039222200208862693709650254371251021615247502844607065715741907952908527196798042193118183482135369281259986401152674155278671038906464307819061126067893438910276267218219786927807104995964924412254895343200633156979576867482843102220753613287035234485346662318820754924982339711873627339387225900048085573416657734263898788810162885935917519479491104299397936763034445143796359640941293536629450808424917546174781605622012765352952765892033244194648172384676281765782768725241044038862916793042881611854788610714050785036140553922704716517108675056167387090556642985214520503134568133048111560489324968384665976566572064226993997788830656442308269260636208238411396699524377252889517917845172974088681994541415394712903796802767407834472030876964918382471513709609373208281389380769657014016756444642843587963248006399941444519731286077317427226485978017749035001407024764299907142554348538154136587382009121782713099734132224342391052467081335679470522743153460979555539726992325905503675870219834526354486142467475815141927318895853471575242278177503545236193239461753823834505895789402646851787053480885900664058300277930058783738859287741785003739467743346584446656459886023034141193455481059691656275720624127424571551822039484793025637437657149574976724483200155321513098556800133105877797719428840888515670919553259772494118236919727035572416455937464985917236098532600417879573125956319935981394937181707938221884075581045842660759806452704129017161737324103051188790329268626189045990935520874753427708182268409783942777128394358011731830098568980795129796522586729723017855894428970835544338693830285235167020399819518888506721216207501742111558129604077012152786239387149918477922028674864696204689591035569131218299318647975382971010442492902224027011483294235145022313542865323049526049460663611608621002886907136596866909900545984953353985091622965770451164951506946941317363371359517730090951757941358538190678976103569948702368368954867999616689346673960201096506241035578243118653287996616832096544998222231030102760661554524241620063317150036651589279126718733018111312156176550864905200455207125570579858322398881211570801281101705780118291511695749587485381178215126823719490221105336645245208274674154323079254690804402375616987731542616804585838205951118017221906628298677816776438376854667725528874253100063213951019601159198106453043454009051722055970995919901724441869521155525079583213497814448481742618423966868409044903030555730749489112240699390069881233266577989981930234342563164139734570995667971449542190355156486607165188988178792890027103453861041826740881121954999858853978377903672449995622327239501660763332119678589863239412221901418720783473290075372918227479937453585560554498390935000029942928024822680323058337973621050156990005623304502703166896429731671051789520136933251935611743754701123198304704505706272799354143840816044401993951321952126431083118395169730760553835928357786765374980443092359425401260599057401632226289368212749999454873652468514692576410338249951491274171737626980107574568671955029978404136845141468236547037445959953046950094511781741097756053621468160414451476775177486556412598532264603992566012557492339329733546189858293039363824529832355983706153301140687052753873567458466847414670913109877693728407072741571378948117091097468221684161428655186747757996497682593298631376607267814127573047465952795589967413622200146627302471013615872560680910637986734830613197418035235736692593876266047152238628956002632592455090030674115059336237273679911212784340299193325620464056097227383425992385831458827023419423422252239423815972684258708853910656265683126421121185585149771466222977497624334982831428007713618341292279909414455077019452178506706256214419342625879077441118521940759706704676925643421905678806503295515514260967851765588424621801838270475950430093282990164045207010291507736933111932965597354002795442551037647219585431477748446189912177593126791297489303333156928544814368649835233371566617428122931249882031066109812066207211285655832128469016183560356040399847360407979820336197821024526770323798304269232639077469925814962803827237995262544178804332675602567056195551281971798555244303594098060815917764778746333767626328571264323243404653562556750152237401647906020576806359354635821537147548353375784530647050652880760757820048499855043425426726571095657277114486304000265639904092596996009568846622267364143931977445028219038666540780127965160432346196596676129500066085186685773679421404860757113161176693854342348655049052686887866143817833005410308689086765694810258317677973968348087526250975756496915200546753472805172930093078311427121022874695501013169138599309717912581557794496182613573261982018417654693705384247771077460980003695601662112088469181168608979294095464799086422628750796051462090224138448551012161240881836741253646381431603760758699801868287002732837470445524587450816217940904127662210641834860821337819673313205721696343573861410474003033803368496360561002030836221236103119396430556447028280705161946784532935843313848420441939513471318004288193356092002293638411670727702467941173893804506977975925658261864686776393541489073314023432375224717308794523931054143986963659871482777254199950690620992655868235135549097948333018738767767525428555305369216968168077620088746818661269917241994367753091860348132767979120185524353017758710690619992732395566542022037815771461929921526956044282427079482990434929923308576846311666328473258615399147373048178190972202814794682474424977756574376599294491084252786841664576969052127640228677096874902710420399758694059981187783459691063794406960570408848734711181288972262022024556668698152069301807950879843487820644692054990964837117458079091294469103326691560315069205339315537897555039704400312936060417981887718754544736953969869972737330701175181393062868956706541056218459416969371167025743819551841819858343653056551720144537035363108026981836434047339279541750507168578734397034280206914755618846554946107705251000162095168554684056955795032313315883054293762032301314625446611048930786383234944873303370277805468752792997687652924388437436068502083188798444631268072378651673833182751128853932363500450574965237088876823878915392259484663815415704405004688185630301294252678570975264024483268517107327532354459139791168207010212434179367357563113264486123897991573378928602198583006070228552988581811390991885222274557826062595344616753399188362060213415748883835045206246508210640423280187164110378251837025215058764796287230752542096976111547186945101125617072497413200263103764971960367394763964734978231366342184368198586398711273320717657950333134065060970499150929023567143530071597612202294345082426114612071398135745217385399645478986715579336735060972531853211386154027350043307044149218300015454960964567706310470812406066312828316931167909771888146503541428976201597001336898171574250466516676942156657707263740660462454678372164535803839376692469993806334217387648545308079590994795632191738751080285189552737097418896642012260921679942804192442041465419781644133797675519875015668134062099789268131562600154805338285812087054690564517553327136921040140441605818876907201283761206800066912138667970183132194260928903566415894586892568241350184946658809562103036582211606059585781264029290236180426541272026828916168487887609213459329563105384801235236945607404634977749985982329230414401748888117248365104993413249865337595023481333182983371012975794071765945711731991987139057337650045329909092645710938848543798018381699105146822780595181418711333992778490448331472329315473344843754727301088362242934732665433553370309997525445508312888681477620535098266924545608533280635237335596282606564903331696360656244199398197402198433770722743260351749611957053327290964421684360146550772035739597392089413551422848435841785322880243019269772589384853074146272604546718377500289417094354801545443694633554287258334803221727614918552017508764262550835135210672951376156891917514298375260934068551096609062741446415238458458216309602475184565638160156351911349874562183161172366472543553267789663110146636652181979206796506298309587980038293743856995413433199476586726690537223037487247597979297181542476472836886859829448382430771777403403617543094184407464974899610667767854179909602581500495079596745446872527892749182516373754596938876885212941091186331830502533557247392118680376245663989580443291180429574630522292329771451961658366918699907299669807975178291395419828368180681543434670861469830442478357038331211323086054269178643497413073117063761296704401445010671822186857329035812718143268034881431455358801152986360647054811012963356094893310336520495349105758244310430198826635748023375288395352459787946326054310962902792568588953908455250812552513841383306741599557659859872767541473875781168452491828011344438760332724146430170024592320630326447966513423842995758649072885192133218915096216262370333972371000604512177914867554799257076082318178858944795012176747151036436937279459075737337813800051366373575712650256649507316593868056929751868485041311619785747517573313905422936654500171324815059076682313496712801330424929688066233611285035172790718192364098807285281310962896756713368331612273746872932991185585317626030490829508469345189167587742388055804901138602453628896709098903404064947743134316297237072657763608843079812213434180016030687847677873036697933169739836690441008542020785775785440336715959892918471203674798929134788746277309719792232108480886650367752164890403482349657656549659545558102961816462193604101189035643586468253375823743246216883465972332225844168093027812058550652200541510739203079999316069961226073656052388127149366147630863560896946123637702007882800335674295267438139395969817299935571689871813773793302669123718461668029006817356810543982651927677302202535133609807062005832706889109677637284479983954530525391750546072049717722119051142233380478717889525249698030963433812772202643882075872988592431755771651618915595192432226933377004122988348458117285564278333390954114261275606352881557308570778031014376871316676527960015422970445224950157225848321739136438165266299709316134102131702315682732100533607244348301866681686403749346166613389755558439300567247521518233018250169369681509574989038938880540675449346130004553733354402346268285598509891576757189105669293338308326851125383906254806644062170677787810500432256239150910831637788836855365004051980741000323258706196707449530293919150328067533838735703870941024531723536795642390444845316061004459929582136721387480091290778467501936337859069619280402682104501385181973942129384098528006332481168465897297957548387072052031564127928822836349922676161186245750323682573059398305997554545458097366807348511343913583163342120748069647944915024317896794337812545749591783432417576478118496114834175570247598186654000145609656574334461978461021351643305719421883477261703495474172517507595326633795727072170868252641981853093054229954913785165953041569572019645021139304140355396692072630029335343841686045253678681638182623222244627802489783383441193291925823390406235152554413623746302773571780502950137088118985034196448323475689859000532916415642445828377768588872994020275020086437347491023880557809376021904118613636989051338453268535390107029157649373717257163735626185762324458944678413330449270352040869240118767973757835847518742804254996933985301651648191185025749951148774556347748176006334131156557033883623648030134165275822454388080725345578370261800234496048296118634598215132182292475374370274649571825584735203370637799701894864838565445165157608633013477728827886796174754138970768966595734306152246915421915604412771098703345886124213708214365827858269636505615836336254301437448368015345401054569435916404942855986765947256150488462026380120678178977367766105898019745093216085506668404635849622918381503793913004737668026416166491901087690903122668930336823361187391818183423129459949818146624457855340661440550406760513539528337876309207229138809955752470645834733080026350049259494411377396595200674221064462052254324813766856616015745511327283884399947892852689148236841352827349909784016587982387347487050318603541646117488118647608031166990830336842703847921342613590644840714083458746516557284334471068252518340536759431166553780675480146560383102842913004385939519663907770689050548545050695992632245700704604317672966895002854771765923280485780119972913643531086768670126989143172343764916941395497607226071178779065048261574362256039257528237587891596729820586839795760400045358295066299544264560368480182132908964190697204529935797215040288297813467682677762881420194709010573394020477471931498621695077169221056560398855453507372265058687198034088089602618936659975618858191841897169247415087498017358011581116100070372323361473054856378441430160015740536631278501478683103112365779342414983652695518916359933257164095194969210877907407012007163313437440933446958256443432022884404034236600515972717958120252585206573234319311325608554084708389142439111157584176218564952995565181211947049157407896070194285453232745510763720886647600494590351910495781350769349588950762363570284466895980053162204295574274405053669672633908706898156634594011734187287925969482862327517198021767521328377666656408842644042444445647712823348058400986440542743859370436385822308655396103786110665719175643289390096234587527870385038197431129937046418961858982394931518467492642702410062855258849303184730249402533053139115264192477640806798719501849617075814709535630698251512118254616137881338798966569308892166448174403633423510461917927917759442648561820934956531709828909226738865075553180067345040427133660309679362997848542062232260218972459821620800017273077002178246668264179627385843942075707082019136458898309232549113276849880353611308308918147590659589896327113219206229567341274809428561482602066678038545908123107877678193950998311029365831525096261177491959487260518446282109676546149011364430683433224033082684399265983286758182809442611672249877697904905833405818013378794209392338458360989773349345071646861178549752656695811282491681132334396066989249743147236191889763923317872662027499676599643359849962621478594523034509364900533392447715016939938141475378229985013717342826958455529616289990152275725315193958977288594842075726299164377887187097348939640355913776820584784286253864954797077216342228948595823499914733994975678173771586034766487463550372015165807195408767715952079609772858082281138786798669211448329160064872298431968753359234306164153111583202035284849337652759722107757120283755096777253748026424189176792401381133333458713801704611037288743314072318582932333474512457844820347430590285077064203400655572348368532435266279702511001336913174961677658847231802304610296725949705250829220340698431746928227484911305540574256510065468229252998347518012398250287561302786301310051352982270948228533328005615940483432731907672340678241235703616020840810141528462859621472785936649691076089885810764442877006860431308960527256490330974858735932784942168064933620096606107549369213850252600117877797757454166637499045269836130640808264209100498204404024118635995726706704296275359039651248568023116681632883872760742415846638195987892752855446244074654523790285819423881666797245585125559647776387922145614381515160005986503396254559588402195699572897919301851158151019705892539009505800647938166925923561508278378373908867747602673356872593149282652017992960211737306989055554056290485808864456760288581461761233306209549305926295556823470181319710450946673876762173565597352985927743699563756551518066686305798587254276590673673901120396335685737066418206604862170314958425859088608387437033500168801187038282922455784485579849606617022823435296415982210939887365600163025294631620120471818307047660750199100172391121590355476566512842376977398047560880669713180019735847448364694825528069272797950178753215842589737863507562956694429445816274622828033217256548235066229610904413098422130442397584426787221506729956224092592489839688903719780897949469322223270888193689987163332198683540519700105132972367335417681807693431480849686313422529294912579429912369588556852775779604144373098753022873755358705672877902520071176573366546763864032735853463738426930629147867787415013192463734704177110470869247899100759007068054754520387901032252889719728316594720001333852625090695429325730798354658711869751566113968562064382471300428603710482284406028836889334945152139969251757804246790705058589631955495374274280144284401612611658799528801099081506904896680420745925336231082781282780248061461070320503000015197900295090030588931894368795878853817990812424924727227612097371193838112250671796198888003786606941892530053335779639880128463778209557005076053666641574824024928470867892109595745309592269161370300843078934043328713832610994893972616470103344916397127165277130388141959473558816998742251742931058633947273805527689270970944091285192274890646130726304862978454706437423695060655409356315596231255672024077525941054977288707335420092520933170707056027233932367011620676919563531809713574351395210481565677952277129072316655503485687218909307312328482776909815387913808512373537509844513562823280340159283262108936625130981676880115452546510592438184384495801714210081501620947592313346903464887705165968081349958151130223977039355994866494964925271070512338532979826938259007219733276461299839395185795127277189237182440648563169795848237157309152907441107479977820697650029585151778602370930730471225474665281579118857376642917524827351992392512696928659663657259406438173210102676293308595233349884775681288255295889877306506620208410788650267235347198103032855940436056832296899419069876765832960626755579790561166794404941395024986265299375024227409374996173227424029223016111098739860200789255560267194995486522131942642724696687595521867340530650847729719153249250718065296455591407095016901164606785733128035830475067605207265085865750099596401130096168557173529199820070164797690557883726468013370040881107869525941237483113601716156072232181689242021825485259328596897901189842946444257778118757938991214963675460118017877637793877769125154535291807440342857841317860507170691552170795887214222583055817843055314148100292737853447896009951190203610688212019767725624063972718926613647649916236130669445530436458188034538647701753874247242356485128086489420063781172568665028632980220088717052341334162563338424815907475501479707786838203605512862288894769384139793086072498564879188721582388069770594000622102943693772678408623683512805442145947778960966054030764229627508536081559211720401612020904818504886651895793258178236508900456517595653381466595634619078379012021111034528971756303840388585602973937224289409431770585556140923438550295055838936931162766449434100922657126180709856871870447159021270056298104546021479411713733580335059402686394983035031521264210200098638106275048281779414218262181964744244909623151634956148533277577367079140703930653787007499401077333507011674650232317821093674680440717789654077250102964458745750743480476289114904043428798346519207535504125646289757867468906961554707850920116545514773607970965922455347607494206346449437141392656995832641635682404934454423282123162565567428286286488474797376277734885420885365448191443503849524096856934732779761643336879841162122298341907287807989178649992372437260470454087480484016233787413797009308608543309061246217003223805451636270721664597820532438613473311270425344105789396621936179073518006223389011207495890173178121621320836346060921315707770076557649985098889910288226220234482951266780754487228747750188362533586160821387129593564185021208082722123589878382709715814135543956894974586814879688108213228007071948034477196014792417077587588157474638834152269355564339489494146156246266927343127077471921112930057111050655132848920798011357834964574382659394749745770326058325387075551913480963699811278669258980127593418088946004980124927400197346689318900239959423864668319186682268807447899505883515037369429994059077205052184553051437676288215103546448862462980001308510031603511471251017269929292879826382252799190468408008866764450861971451160714668517694783596050930423263931773384427675127318312644977188847297763550279146392964433086670328350039942901531919024735999632239463132462180079787631609867951821437594707592831669205611666477717745717072248396160621042415508720822727479140820235407769595228717647011527324262579854968678795412039025861398423796346971967248023147776195244919917194507197292667359021859579705006925684426930261145160117154865252834328964441520563824414599330718701079039712974973792846525109717948408742870922312359464275122340907653598083975786949073650348577425406069325059340972986829808182289529693801009142860285014607966295642312389749804553309693072322839097885605717633133831055688047030642075805237247153705262623797372829220429224844623429382006583515242492372581869394291450995403286998522056363010763306431015126931951646949875975175887201605947547496368516075942550467843624623551583424940885786612642867289567912942274857560735604671516892408537581928560346734994700075871623612516397914094143220010735385041254032537533194507697558963292524566302231212022076292121982027557447196511932789025045745386912084185627736802518694113116657220805230046892047899698832030939390132393687942604387064802793172425487159148412742672599360327077386921576682984861249800048741914269294501327586782425134498468627906743099039704183711474979684954146504474991683937621417418139754742466551170386990527522917161270748739876174825103321972676832788028319604153112986962062605593328209540792614119877540615213459235741870746921235939337003996203059977194532648321521093633826509897313688630122441136972838442362709801993452670251787723082183888126339887440513019048762912692078585502229663871849352700402088208244844498305465162744961668777908516782883395855603118015884581674104846097691264433423765339327632126519904352575918125943099892103848613354881960336180900142552610344969895428866327261256312573074728760780581396175282125848700839505955202530274325107910553437997441631983158560716158688298160293271213696450750568954604763647096156787946392186744464339128952073738119598678396534527960387723707311778028277565520003449924874505199332589040566333777336462118974043810519748980009034845375428567195319950829541212537160824602982631827456719242651071558050574634137250582595211190980729302311176044760516572960907800709111708181865349296318292874163892640525666301097115323452830217218448646061775745839599168722698626007336911938346519374708447249300878011992562295864836914734297517347558822432338986748724772741756781219056612060896118232705459648975245045839174204906607949318971821309602788503158702723528168895841608325206027796242034137087275070157808586962719747286854585087041864432210568113294246391353949830216911809166960633154459837754199318214708146892575955429144221600470875381251463160463385881814153507074063746479307900500010180880160632470845230317572581194935387825017939188463012443160353234999636888386008942682339884750098134565125042088562878562290424646960004275260880128089452724280145494995701246591441600609818493024029306996208728865134394972773407845598131668269898847596532316464403138094656321213209517084298812876965066483458940082880227977268673290693882088218860001171571297204594872493949136428722321469694792715271152239469971128263922818487017413927583107683355252024257234175867042211116460459635548304347451701743783252157825691464440152558707795418426416557339015196359880702188879889952771017820600167231797345585512501721616285712153705829807597964494090019172359348601176980099379661508897537643660232302150262389864643860607654063324045027936532422726182983281807892528458817020048373263738649462777673466438787483782246213025901172442121376321372906549281693901810444253878811139147134719513912902932982487262194982755814857139311663494199123595844718314395665365011765520864343021435306447427364787553365889009718146742083263901141486736263281643126718250760583578529503856151504347174273528814858856824327396989912779215625371513959065376405488047267504057121578955050451618403870464702977074637434652126233500439143144791676435106959266099565050571903329127954453056082702705450858703441122289740234445730741635361316913295144074490998807353465026721395980870856375481670170009188166481036970009998310414787849010059014582503404276677084803885864068664778786397124785905356279903245368292307334994486733591953953404441467591270765482288482998229883158565661495868146326738746390261604966356525451077586593120560664587145920362046024300644331802526583960616221509428404125822182121464039460032435669910853665259055142156233434731095380105251231773625180681992960769113225648413016009594541689094341650853719289689761118141561615333834013329664242057328813195090068071691660655261878569986039667733185883221817783936621308164215490739496712831751138604234043778318657668702003504286879723678520947867416252372515955673679058620135422337755320396579647377156403500838691986406816071488119559997138790158313204489016895038841773767480185151563179447732882664793813404993641340059244026237151633363854164252969295348689116587751603558358588025576642816745151550669595247348449966540581671674762188402834686865052212154532350257257170881570811248313567862250758771594967010252241703628191813590088886874738292509858607313627548200987415324196505493718920650877767562843017955563737934312957299577326408917875256470981491403794136645517189134866305481007261725982901755563829919703247241002303464273686551160322957298090825049630141692326209589828967559650726962652741301782600074908524518587510109919154713515438769111198859109270323266025534071418307260020095639254412724665762895798921082445919909599920820104674735828370624751554019689151658244059882892213066449885668927161774869162394449096460560945532262909164125444488429317176881529413931799865841434757589377780898510026873600273351127249957126665437155464858315878104426982276293123272383669392653586157853912244955068605949185060200740349173819601592462587522154468651818481915939389102148051607749529640280275567607970803220977185475037193452528757292731112203884225560655102996704381711047699294961819717127705267659336007978230393433359064405646999318369426183521636427558709974179009699470551587323395172150580343019893868157718276418047239573483748607097119216522111763684277839346315235867038960528464367790225549293296831473775093802248255007456044552509490310395233698586351230945177857352790593633906522043791488843925901461621979601069079705759350681307426899833142819728421476482302043678443694591481245553194097946750202974897719323937436517320403248526648590593358729054404521709693197677676540329472476913469524601195814795836070445724027806864002507932698220070922434461607457821744089204165937756817307930696509884437120112660382034300017896155841178038674557956842641717148986891948900782420783503259198837778964223806469341892167265748713495149932486989567677187654383018851886027006851182559101756496831189082248390240609726190467114336047174903617794059883931602068555989126195812727886402412873932735731576146979492580914543545031329027386553078206525111429337033904737235709345948550216110312991595558358173139849869674600632423840959056511921910361703292447394113928910206220980330978691710768468622443257793990024382999806712234623887493850634716419870229192556207648149996345553241751407179958126448435322889007271201487771397405709656391506203995981578562474414793644572720173141355694402527858830012193358039224205512224232787460475809801305642572840371521261855603144989782402249306736753486334985695686182814328691455685810079665214971677099020970410608326812662861313822167838267907038640550134714133108694217410642176302957640198491048786280850867059754008524068712493153001838473934283772691739022486958868838354041045381674752897454326821229867731611058548563598913442522878191414959677033989962384164578408449982689871324974108075524382064575165730803302280651610517637608881125586810086406071900210467078288045466269522234790509402034751225679658961332377658190958237967571117630005653490953199958400135752591682810831133156715533073152137906983362384708558059354692797128961253721769129244182497717536240067113302391964216583691090880784011073322368049101216790108662860246117488538658575550842262255003503673322890480444680493059541987291194481909753277680573892734778635245467068011401594429851143984560271470157865888558593593879946001740165143686314983514822995771561379927619163122244766048991238888060598911379506339819079000604886677264781270582155204765644537259679373801526246235851649243263726532592646844047607640619828077429015895617486549173481736191443578053944350641173722460301598856933204537608219236895163084694772783308921641722630776734151627749472795924840034623809135053274176718963036536115971614321012147930893189384364663369193398334780516996633903836825475558997638539052421177704376979049257747223503983114260784112552593831598728169801500426581051453033096213907304668857519965265851884127140122408028089277977149694036703571750929407451144408502114060868703319796996340398272983415463349623436817927606498507752400251167519316247343126211572909811362393689064184217436297411596213604245869131103279479608925123576673242483345128502645470052837524595964092865013030405854947126564508675029615596965625820267579329175261989954839974560202390195694137746030036862608957122004418394815626786714511213183320363042057145872682275529311131943186487179658399712122745280551257643293760462451617796088805000825704061197493180536730311359646115757108765858390131361776067844368425850050593526863565008985011304097651269198214066762127174978448633787749804235041475382994353447403737816905603282109992796143609042401686612105659924538999480098330414092983374292158083910476017977709487344127390578688902678963805116534619245500773215163725670988195110689916338758468720022040810701234667140478716297859593112451068735952092389273517514991871788634713445340451943736311202331511081729707045530816403684605112769932242733945986920167142106553292266468286874295103626886293200196645490708439346268522362603081980756229831617931715981748005819781921011017198733602637367661801792779625078590948200676535303221691428122717377926983832046018563153822755456076845733810184532458511665283673099057177136916733961835233556734755477097884570810099378831162066807460308908952168944022233371425167048698930148668679238672765390579304163968870874723013364621981713239308462108893525099902589819720756847332791495407525193527270965990097131522083898088443404465961667680753804254648949041331430597256233626445330562589181064077780821572629247715987182557483491213723469325175566016622186270935084887104243281440519860539923584832926524589956863722620685804461815253906759882220102927189571652394095940394929730174922620585188270052355197106838588247484456612218156698071931562682391440624374828068367448432478125770871334079031941034521648382775938911139813292929654163882412253723198967033986556543154576855895430018190143696515805236127206187533608629102363981464611073725004750456229800068897885389259919046337188807909279678674511595912255620999151523657909613416167148221158839922068735782737880249156159041737772978589292797099574333922435999580226525681187529108830091048278535168030158499143575864100412294766813537402079481020451208947578416853989104110052189631295991563456141335172915840303617494304328614718489394975557082985336223215835459137266012077658903180368816633988897130716918747474517690306233259737946415077309329571542781023170954843212194709483681741467961939282686090495922359727602854682744508753545233323676174298509866965561666540005346238516444944718278137440162387643774320427579609178761087350003991823190205332691259636035839635418849846069693182216642818387937643017053174062714990713288394927979755883976514276175233038770506386826211950511704885435978702704628009155274816777040939695591765760819822168106345132660751359078142214634893090594190090976543725453659893384724133238060287262764569665030221907775722730207171198863144707213969828456869242638943797956101745004968076999983478495113443389106951296874697440697824639804645175479525300166441176618915273350950310249233511355868263365922695653974427144874031438939895912079929524532482802263025934909566221562029480951422340366806012870118035746354881588630834687579267099787378991466260651481596455558080800354477878378023421581490442423462396573988960780229607359079002695322047251353839751308465497494235835398284617024401708673524923309712416814524306927782834191012076533908236657358670081619174855944275278298844983994088006599157977820224614216449712628355583185935923618574530187446963930326595661208239212744716793914192869124231509820738921870262002832943502645638298976785252666457781836046531295882141853868302846951349254785945233497232227041051733289404494078058596102067623707638096968829600537594988606261014113601276487783253724551556536918786153544238782003307795641826840599807059668793422668713610032639526061636841157047382164219983466005074719725324698772127515827882938539249106008634391810750409014981646647047268115008852445900487502254712796644828215395033007911858196351171949550761945035563215932606356517706716445244065377409834955102219161502025090378640825966714605031740559472760162435487773176029657920570442326635377580938076479987663170703900760514600155324858560639781217892395730858664658535584394693681225923123590618601348254333230598455050076745926765997542802494017217750404230714349672329221039079365815540101851206412274289526793053199192193659822284455037334324680773149914032628121733400455817813419039717736701730979340309966484715738223183824228004929855098362181231177535546288151450398533633799678700356604162872025031551408037766132427939353515042318805575195273036881687158987158073483526816373100893140051235450154475665637312745702348932383479586692352335658136041510920497301989510800629644116081976640237982083580735026016510583139064416032603311805903016291092260821237080396997425345182906658066515668377747426898263612621369529476786573183613160809644415271852579013097025987918872529978854720967049672592109271302500629054063209168131370680221622108744730001051124657943826335968957780145591835943185063243181222269767244642330390823977393231954365322909115934363096328082820442780266374667501582074961313637916149713071297075974732711211291009554856429556667489860769035434153828852717259054847825919748721256300695716385538850181527509161310281956547875043616675836329435440445317796628208817841474212246742532288126962333551734440662768931750095362231785097980189149285388543118162660954048113562315738456372370116009854295480316770045512412955215714605582512679666181140093518555506880249888479431656860959311175742551235830345522889126028123061900342730320351594878568049345706703480464184020865300987208875426410968754622222635838028839541452656308947491481266716149479735903006470578551835953226860678575881362934914940321329551079535126807486566075709896615582109751990947497087407697673792065039029136551947731509988276734065978895941875729536888049943190508931194103024023185659071427528555278996992981673111770148775917972568180736147091879912779352009795530018786253582161952651746430794405826945630092730983248620232889613093928744122639773661960111257818833067839349316631425111758091426828478769309273567225421658819983007117688159939642818750372060356457207802814507534003335253523207073355546533273315017225024939542587064845087922932778967849864675938999495653636578742276602209336386045769773118043849696989682150081721891012223139940157780420210676662851669973317447042708940860155923292608703593994100074055133300413376283871777662008545279466029708667931757759851257063412931995814926648412139361105876971117371226735307760422684076234813137806358383373580981344753551613148238500947817013495334296811884932869427216723223027828943995229616833305456696570374605343749258257442819538977534881874450803110056968238619610795894117795828427246156332799030236250757024095774309315787457965025192828457060081098421712068899210294043300891596516412753366833419949809447676353548330610626957355327306765650971899576413392244623295354988203151150924533686111850013804332667604056814108285361488693725319021088348635847835440193311518927071537965104839769581545174261966675419450626440461449242939834167671948036481903342936235289127577686553181976796376937968940638315897135295017884113802702063032494245973930070868357819411891784896925947581098762818220159020002465211145394119839853751000882961204780671261954817294693234906358991798089309737779908924590935799863206279452927510905327091004617290030048227652508123799502038581711027468869972871494986465097537875685056518230820248619600083858127443123829443717976846664571247108917289019813573384354990933199104491340179181199085126401155661053730787016374093268023088708030356645859135580174245733278729613732109335740560456977732095457128449218210292011435490810204394457377013215108834708000920763145840540753950306013472749725440834873464644825237463018626473921154768083698740664495547736521338525304877566248879849015778611872190618457654555106023215206443354122829900214204258403260802998083722936089846760785329079610960897783608563153763694697278122589075635524164793082947094140279442641010628526060013546685977218904415803244996174758183566301232025492172473257567303163044914005028088003748992794510530363012572797001931712689029571283939180866557716822766418144660795247007531586051203277518558038508736651469593248364270902529823750324412440719595342068072134252158345306800870515512367057511169717012455281726879566930838972859477536359839393689876813774983105103255061825092497130457440388314061522044404083560690406018828893762741206060479646509652234093973182207795141428682824533762803481918931045473449298236189159025386245252800812792138622859733917432386082093978542174180235434083020068403564534477916630005477475950885441385313346170021224325796181678376584953748386212103767142288965964656907697477962526160774341188112123901073391779146734285819920048824932646920037051989022496836644357691240059022194258470555115592300593235297159160900884430841112426498073049570571804947804122207670606528015983667955358376519658111340377372941945528700447463896222732351430081369533886893527418706440759570402403615753004221453538822650965739512392049186571875931653061806969980199289334453718710049442450246674981746352920064963644577316882332949985911611436434544346703021911745709420256044292360831717969990397108021480762811941106943768401121559704611550879858790316551626691586702731816406584945794852249279626688159563742568807477054969869576088867385475052765089441262262270228811375643683922968940664072191018792217451426117644615004095530885112373093089802803658344825315133331286550817559865598347558119616511276297257842654235740055718081600442098764891202408317276325898324362693226488247191162287557631896952783449325338683189361810047070335921247231975250703958715875023802829115061520799836312704435092888080152310738499323227162521186391828013523352903836706340643209241806971213436568877788513702660458359519974381209737347367827321315866432040569329125377929691294438969611287846449311635980756242892822287442439958031528391313094292138211585267959133042429086674983181781202404578080367650482753516705738082479388132685621448589676817260740927187903004803294493514267387635013614094297068138433166869409414123027931335254745568586749781679275096107573646956942365516057458859594800213018034590161577765820794333968085519334696488769172238635263022085859858958374800825840354318682742006858471040464072490535471415035190977591822861389895638669697357994076543436531062594552813410194076351264060252875717525208586132753336325603425770826850120252024028195881934782038623409826574080563515776322908660492150100152636919892415161437103551706087809530583820805558818692600014149528181516008976448375896346620678896627946525363387908620953581214482589163426940118831552871094764345644357027392585000942510851471459498979343976560992598483312665467012281172130086619601077263426745097784981598316924854893184166911115859653560104798833336148306496791404217740480859130537495778336580286884191204712892077010007300270902418181730756625007461778060195765321213462745476839378106395567822643834808019583915224360954041542524393412317606131331668601297728945471505243462645927900624180483110906413189133995898481983113763861151579580755854596891697902108648040692436821686571490683582546004026951315606876215632936385809083609842767123255767798135227827216402529681094401546743059967893089619721254001529846519793060664900795904156347018831753120245664317599640881010788079714380722790364275842065642221620588707165996578419521560422464392879703445642599142198668193853862284440546702803087092652791964994153764128930466772108164439856437683445127685389399884012942194501507338365801625601277330595518106669706152131301408582125575503559951184406307707210930858437647386975482656330273522051209199568872671393616598850497642177515172533021496157691076112847664264463207946873188794478939731099779538201218594855500806521416141000897761863378337358763885450521779435956002753769378151000155058210594990860494133871973885358174029633259528623956871343166237393039374171091047300794080655050124435552671390292683172270429735214767778964922577467238022853025870399021164659951594871814274665489020751919527737469144972529662099288543708879345375848440815905134316180438682796922925921820579968583112231586766151232192167391651144544299207748049159036341079915058761110189558329934731399343496299941521459626802585583757212464609701974782530453845457490052637030555228589812715204077743219104913589984961311236322365428822365566070223322671771728822884850598500857474266908369535440637509854518414640423043497602297869762108546331152225105675717473014674084055750661589096724376687245633945575610575300027766958231271371311370439359802069828510929095119088436889978439301184192969445737708083362166555604537510912117964702288705596146062317443889360290734433176674064936486597613533252672005422107619529082685146341308059450585275255444697207883738641181099064490236289625138100501915944569746981428172808744063800208730187946744288272149488249858627146102694398704330118328977470315703991026153812345711232488419388929076341394148036772816345506195360961245066065943811493008945999876191090587695561786416433099449993053701069769197768517865761480885619179062546319069575436526283886283005205718639940831605774771009251211602658561900843826103391428193878646584552149368112922617919033109846308646514932475966866125858503765317700988755744998509135953217328219229733527040991119489517831420474675793058223301330722417776093497485045361227316638081761540949772849107004139263547193481434955578342112834917656412482609282558494503452479605471134339590257966860880516530211181514074290992131609852049835498472456747046763776013151778474990993600840105361847786859068371362518938642506803146393637149944145359528185641484642730758606035555364771597777411335562729454455393831862448102837355495360359729345121781772794292347250712278548634214798374848233860922219210016496503370482563696393514213147119792963314109874696803581407640185736338781841328790340204249273720158416454939513875301035119285827854362508331068542721604272634523462281796563959566418371883076876823524656127275831342193814370119160239305908828479157480132388923985072160886671495926386237794728296090838143991254047258388544783423695980115972306577903123843168972143763132820249714735795899702414084971561528718257862595316858230064203745766172521744456721343660999574898734244167057622716223362572648773271886520353542302327563742707594438040608633712579867297200131518499534710746321059243087576961741338965685650549575545956840140177966073168276891727432066169825789133247386414034465571048243162256490478123405911549903471617507922674693235991660970368885375395318176474559992924341718753384365318771306996060719558135792497984133954690114943797703012626671026828308875730183594740854706024804361684359495865826858953555451017371706389081654613004934534826904363631651337426065990483274047532301772442835246467163220864898070601002363423158287609969547888528455288240966860912203157862539625613980867066936579253329430252682667234700681674574799958617271937627605254762606590953336045821989557879496097026401694316882440084752977629323592771396507229338291565228236590375942326266445749942840242024831658312542313602004499868405513939535384636259255041794633200504931631072254131446154276066087243662332757024319883590028988052215550223660612109408385568823642689697542270876845549105516365615670909989844788183244324251248030229690546727820308026224349054270283869692998423151762067224797308645351948884182091247734038929024583655485647681900299065006625255626115721470818981460248272441813030701007537060414318703455828356751636071322903455546712235395342303298564922046898000288324322797177892765234457382061514184529551562150059999173672588808907270734115342262260419095823414609165114786932960202507224821417025538838589025761255497435160287251515580564245373185066413323665624950360466178875406839719518798037515960317269975173156229717722883248654301838139058553339227630319765782326006788085605820979233624540120909281287732624412829724852175987302752277432481194044890072441644369290343843714476386512446822944507369431248142083360976128992030306790105035403051186669354103825939855995852143987804686758897528692004640732162764499099033190149434181106689338589136295055973778874586678086246173264751154211462135001797520415702666696786993412088877161521237605792053579200646527200536698396353451164115823645919718677692327734053735338806643800883719268473730753840696010499809661235547522549994266102425652629430115749346438659312083768765483070736901963936507563783176522219655907601300129057889806772298601644593178835241186508718272282074183593422111543424288187883245376101036070453926378184798196927472437483893294854978140005371040805400972428278567480138599716989594517054579956320048028497053627380549861827756021206761748342516575188331280684279228050429304519156000168235596953234716023792015000464585013934626169287820775796584863111352108849747454408113015226385674452064310068663694833231859213572603151918810805921112503627868596883965023617961220209096920122414590443856867536214098477160567681011456632431449197697149956849912615482305380194087006226621669136511184736216739940592050310494450434145739688511972061703209315156849493925034135831779416504493486912806922437399809630362752610072492727988257346743431342116170037518836442240852981968925058420979186115266141504887145119924356157425009212795151711872686808160449158105226014811846549429389551267451898258215032557528210856748721069036824908009190581591647370977664593932751876635796202151765120819729561918228416428309619961166185265347951153157284580916522944654562942483577066209717193147200885589927066146050085596916097274320005320784734049234618366034948884185352695373891139071525504952161375166339933068436702354832060189322452353770034015094323314247652475935530873954140800395354020528286291976533047147042616852339122880183719518131272049832414652094596115905020263970357619318144569577986289793552207512475639329065831182980281962472336430549037839470588958106643991380150464017665295069250976432070171251420570949070319185821135268874137693512531712875462517978794859340794655796982966549051048646841084782748135491738831314870027872099815527253537321484586474078710948691914283174002563297771863679316239213972040357277535412759849225773454851806513506977010459703508526392738667185670532966912019711045265053710232718425783242800928113943387399502896785302451065351466243031274997245425496847742255044340370104665534192013563993710127398222668342997999923212313388519670855523490771856192001271660645299530543615405304944029395622070817655383014241462137643140184736414680993128519650901957043958343276247717196264502899836657213364181831136877488776257039286987181557929001096129703049563635437800545246884721296592931615295907913177802946168409373804592037984905401602139832984297011604740530416188588565141118573174089422785658291305765067757387487993970751363852207798817757836269749860778464988478743448568456988476476837175488187254576914439656225835785107729979525762467550295968253278529797864529350486681352319272768372930059115686046634132725551178254204663755871672040468491889575916939601682006662440685115554938218618010807201107922024632382229055667989980329602618446699481177196325581630221305213642337594479075700867183687672691110326265402118610889778941628215519610494838210702915564032476137625413505313194333344070487476064781931576537759460194129393563100275976177258326146327372265884067526473674046241684956764203650686042315552670630706055105047821696987919806231661006066026995204607765862132462982427006641131848216504155651017387785465665184432481782073455547671631169802569655924012740673617884448633575063657615263767529388110711873351479709404556661719454767161943220893216790587725693945385320466787814752986117812035343753653792610760422442555242409418396712073592507345392604207013438466270187933818094110789753165840208972666845619707208637826011361840551225768765349068095978735652674339682058137339852180310266569241513630237536677377861865769192336412245664175863358085126021684979587659661351917672662373473485730945579149982543744198853942904833191735172353377438911231996883907212636923931707052905217950137655456961240995699510990937795505381555338528235142248199885276836720919879791466149745976654867612023896629199531985894437502949166828114596965409196033493827839474649315440161752534099579158429941492772302658595551093874568967910505363412398190197674327882018341760362300656929101287564778403096356167796548846787898999433216977300729491374854204767115762390337253251883851336147390482397313274703748287775355883532503856773799595128605692320807312543331820617854062515544763493620722856700076451055178676518771470856350274995586420075916198346665018646030163989420914917064141667350561945810528299120617036519155576102751068397520030971374010482379879825028200514940477994505964608802479907060694853277054884170735869961497337253236090543924609075988453047843378318952423137589764555155543157156361926953074986507213730759181096217720799832348353582795937103313514164065458982228832593989469107622546938129410993706191086007637680259221221700266685219464014235503714467085676417500050281433654402871046124818257033269958283404981987514687863837823976985340595114067777445800772727654759404539048551730400093197944349483725258404386175377186458033264427769934537379168086481808219747886308883308767113055635300968190868705983804733270316953213760490468060613364603413426571499288131555017126202881353142401195104377068625716735353037310981669610047613709551518812277574642615492026681772605765652471115092978089261267322537624913324963296119699689679542007498216563124795558291184744290331703752778574134419813944025398084871646202793913687986828112177361257068512095199066627531425121009582747648761825156697969864856714371609374580802912094840197963776184014017279583331920542328247053097609561022740970056112948484231653775714737470275899135596808936861513181018859646783622150096993761022670813852350202620313133737099896221205394030186991388114148562757838987055766484840138791972597264415679894605109403776226642540394259386293008286988508000656870351040893588569740122927799509235314316581668285954168821209043034115124300606169755416792718762241956709662270169434032410398974930422288671819380325044630825119865990253151552152151075330887893936813026258534122278470082836040841811755058746123947102272376932201586417794668077975421792959822807764144127153192611394040062015051472755107938951132657564064329145710331017343890727994633888874207874622702653549829953527901525259238399229981828135195250940727340098893257880808592466016416094570162394440955040730132751977169871934568466824120256847450736235468890276628771382380825353651723720757158620636299022796129265056100336207669149148510290714821583595058902110233002658143545861055766259931136063939933340347427976477964794464357175932375604440061207915666110978725495543782727899904072986815111115505347866824801765616066365867736104641399649117608712025027193265870698371842700714528682341738111206670844384724567334231337489574179588765151016122540727855032271549476618419102221561935068362151456389724308506073624554904074582705758389100491781475769220206243681514864275023937715199080259138508728269073689874646888748541579527178562259054465716953156018098204861113738047045308724743507579857191094278863874031545851927056822107921001732230499705048625169792289191549691908636715210884886523577630625071943760560570375649311448115806982122930050502920245790679069810145062189982988234563258695241510978606561444652209054537521423226861438343579226514197928445349560481199453045278476772607904044325166570526279012569253366953400053536691339295584545793939558050205961262707854522792581561674058259310776538392993045237992167655135766273549497761695460830081744200308000600264254892256603948520983173975523548213237177773953552048967283560966151628084242442637432445527100578060509882560534845112760719942061739815040237306187178344582870867708905937518732889295519601811365366106038642248217675389196798003615106933125101558472962362563070565080833076294906312384136249777290681068518722614735113346333237113322138628951401870736267556845964854717758074564118713855082546917693787027891700574089610421568563190731115245704742167989731963439459293045508816063131596155735245608545093571652794222302762224097541713498541404077943253594870189349463362942399197629138059663400764154528159414021287336610438649994699870328934249394557944451544036229731551912742297343562535729211632598265362137284751578490795720825234595344375724100219672323436539475324415192332780976783488684291699053410761504415443012628651305627623429600095681650495596324661542908293807596939890052689883651346707027643546046239949972251049403435272338484856074577827887322322863466230394374689416745885694612207901356165656501971757399294609166547003812984889040610940946755327148382032075189793826437173828404229819307894359893970879935977492017435546477598664164679532924156527611433084998614715757063861091835052485553665540058195748636592862983678783464024347977067125570150173656615933228258233141102783154404126951445752266951979887143675257286681350346321566129464795613652835142691215886775391247829973813770442253796280220078163999370227866075127510752000523863337871119751014672733921619729595922879780675888595443387414294245068353213854569203699795292989823133112390195016810106606818675916310288308063739255200323383277020908259080327664373650967322473828212420607359066638553802741308521815269330382264758495621797187129647814895609769798671364650939839018082988140794092172852929765903501034287042938423148423396552173030073664255988741170999484294892027709037497643932928803058179083395978768244280216652668932774728807307598904865333260998766701507140439924086122984419863247172237030903788790452666506332223257538281115802305597050016259438073267516736385801904944673329738795011079354778944442601766634239784715599173515649103213438074147782545672285787321745660200037041522155071311488731632984484772657836586204625280559856004827221924170505775768313546123413995751268363939439771899713596200897848158677563874060572531396183722209767920281605121379331280209385700610202384068351862832447875483777796718407616326798617506720321484001176313106070962763210079948932981498965450792660863620618607871543742336101856096521315746043590865999251978753275224110729737219937844713334756075867050015224554073495998772533528113050026651945940867326160041168916976559230095306743979703476188843453474197332064347540766931043642310113762089225974871348498248937886594920686713424291678799364157267590999501681634835202054557036860279240863049269778995627455393493963875741763284776557397285030450171279954780154849895987698363183032650073230549022723080671138035466839097151200165525613492198496424244547987812139862433645266860974424438281706641050741645506309349907685615734366180689713610974023834930111951189069778208304946314123217665042944617458758795037216621167208181333283019245281158176319584190501584710243098939842159798758954854379991219114708531356669182720105105246778416085381032964137857773970168251410009250895567252133041727639989377855215712672669372753897733546817597076528898336371436499403774472686608302284036364817760906367506040734522425117093695286886854463527690144117099278224923992588963916671202129474922366073397372344336970947332367923954518467782667564316665364527685140800491817794093903526300686130734591432162044976294657080261972544605178228864045581887593870583341232057707237147250281116060381315173765472656887975353070164133669675407522794693386292577921131839206675411384901546577691791821157331022445237913129668447465513841097478828838438112336754136564056318473170748601924791202415542924002476489156187290540002906686797777726760203242958370361243011564116198214835998253434543175757738995211047919158349582780319684884897494703048137231695775637282359021203187524731717805549373123749809246339608065705255388919887909019928082598029679050995811555161911751031304008542232025788227084757062746192854762187007290913211245341937836052956843324035731086852387654205253302665047301830312746526896807184665560232070972271601850475676083200160487569456640311654277069170894357090056349412175035003306210091115073158060521885609336193184478702745391025258302793665806940020504111483230217902973558101791190376739102963171493607912665477434231458950089339193340834102164303787755733644461865954184975761738998312913537794486066408883543448903367478032275758893643822431640345450993293408487094285971005534372088960890442516104159506041419979500610344926891108967542754899913075789773458638493654481881398027604760933214709970040514354001951084759074708910835865826649190825230440576528076246981821117773687271177898000112374323074440686034961238017978044149851662534841188261230383454240563638968865767222299116529230015031611512632841977958367654633926825425261379637745846012226335903255011554711475064502218638512061270180914725350405104287783444189030937296434767522289510622374530120867078186258421043473019640263468207819341008447738623464555102353231641731479446855827634157377812400579780007711549591130919843806383182941525624466486266494596892942547402175737339895884488746450055414074524957934087068737730103092973611593933704463419929808087277848664151546161632686646206933834302541119455289914968860432173108764341714253270835607802248256114355160161208180754026548561901659995818329104502437822903730174897272240285536235980193972194103628648582806062705588394611761303062232552989634316521480171196233553708428640078316727984699868997132563413453218225070089102573013895737038106533542024853491563923228347158413754421934566313539408524605656669680189624707655506909384351751651561214710706240097243332922168709341810993585331850312577699682137747444491245419144493925059681694785257334199167342270760806583647247883166902860782464971744570825835256473822152177411918737421097935768808287085515021491972415071409222658545035762169952412990376235059190796248855793666944374270455138677229084653745696465013383648616775373652670516687796877726677508953307370369643625181641863389251871853226609835387246100821509449070401426479414768571817188231667807048057530735367411706979200012184481666496113903391755938180395403771422691357450414798643191224834969741406165645841289480856531430639728751630591111578791339960038817314616703610932193942317781667164128326227582159621291060844184232663999955409331509539582676914927457796632116643930040895648340153199983449365825688999971950238646502014699485278701543239182021984121017434883414792396827789227560744292788760473710606329876330988818395299804915669300882580059333539216926783682802682414781385496706508847175385022454461644349171078627644456598508494027079050878903817909988320415537341165669659397817975514017326686015105582635351180530486819395785185957937584505594132018183170832624777869814695045291412132034682357502050083144459959623430900657748526940071374242540996473338904373961098461008585584972225980191214989096179818739613423404001020350627860428542840909859707116603646626337642056957963901672591514191583091206621371635197556158557717404731192180693266478413415289175241960572232248280162645290251593552833977106000796733222985409809351416168566538908321289964332640163936830707879755078596960366555887005391548068194559418473428461846900310197778604606761167193278467993389367390913431642252170169186085809092305092500496068205428068980937159986450379480400898856482503667405456288174115556188468364732395230295708119016728184199562031270274410087707020243896779208333036882538392424191854502663380918605764630970411795245750834148480917247549797158361764471197705444810150396458800416955662587295903276314439784605038988358841200314682688240500909899799742820860110913164883404790190664113417332027619040468005837255489972377943094458082332392104527798655135686413646056505023194766171131924318652202242158923393314468028822162139707669833469933194802719374472335819617585077629333407430587415171585058691773962812688846298253228876417425372275304153288939913237228124892689295538229084053250309420003673069746947944766407297281587610979881729242969730541967033119144270696022229416378017802443517420205678158596737264320300666303803398165374943474958120555180105274613902329744523357167277706994836808943529872903440111736474242766619049743479688352188636570673148565251603258331362549500821570603694175820294522690592289314795611193751910333444889695207742988855061869311421146097747238800530644165899935390515158438947035577493855979996009163352408457555342009412189599010606746220569536873937234719464754656081954057361863766685063694265225790576966171872996620496546567236981630083865112473413865502773407860483354677417500314419747510852007614250853867289716275035598366100492777608998694845987417940242885368664959354091363134825265644865452234918342823107840504682578954806773087983937259856154489307090310012130236095631481843132845166494998690471532563740455153499400845086168649885453324161104580262001300499563537685931505459912663787458871601421976239151961855009880936880002682249138608238524978726092647488526032133492728957483576102308759561940069806373512229890673795190235256250266258761465761383242072802584845252619135640094143638310925122934225791183106472700626683742685973511155786901101025715683337836142539984429489885745814362274297614742301600624250470511836970607037886886783383055033057612966854482427031033412123762480524674007040325160526444637482990067050005601577748837379052261627203063219164322078256851499542147340710200221782813066087635295577178011042399131299554188328156541148852305406261538676872369981565038358473016290060657703639551805135966419755444121878636253730114602025089005170129418552435098788454267237890898262017179042159147900387849729411709657241939641176843068973871479175240992059830268172861802066301519315665235009825147303610671619024412145497811234446480966118965941444597557961043151403916446776254822054773545340420390521041008416540984182035137798224040214658530645344291231320514496827973908592013028354079010757838586866176470853652864798712967229838224904308892021041537824009135453192893004343823739128103424694239033913147626018151708097906574491906241614454146980695848088967316427283487488911169461734987039569891177229470248102730009437721505025316455576307203260741154068381374745190400577165231417593818873224461072850766995901724933017921236838906068114438754165852873509480672974380853324091446105392266938345084635317007269169953236019518266808694703075901294232799526104576312698832002856047754218455381557258955616785373728363698937367297333459288197395364607878410614056437761178432301568919543610945483517547728651260551188460111466684054798579180158171305923802766853745601630884591465582232976132913810861562219438115178998686643801372900897280447050094029974768034802986668433094395642424390699932827726353957442230260659291842894377369338973796701839136919833135775610780617004453546897676639239690135199304400662114693270598477959779808784313924584731362577201434855254928418858218873996464371366399917297065177056714373304102950032354059307291350780668866620493547102131064399122422390195317662285657730108914127898039020768394792330750736415325147908910355845952494102627401950094382137308383401682965735746021698128693035331830163663718928536317715367218463200114463714733522266953478122920943888578716492098933686943283463670993266875699551537708804311062484115518334667203314607006393150149242527429751161577446855979477890686075750213071345427755050291741028691352289976708877408282488907340313130551622863349096890546255860535557208997710368467300815703945257482695703732872649364245047602973070751475533352001934868544408345535712036111801002776494436725186369127349205522813824658033712237869897977884746647144238763664510680325124817549222152081603680271809592727514840197008684341950234807088406413454925879909580928093328680318136219724636147161802918230709087146462381581906024889695228840675922265288591749750767267141243084393942906717820733881318734294048515008901483983622162455128317568485493672187848014448925883707718040402507859032221166639766124829800063935264957438354857103342332127554440325642935624923506857085536204096657253780022013796436188915785522237413059828976167630927367213794882526199318904576566456119567869737010273663231201478758388068209925697242097123340708742733186794164192316060003723546231246075120705276489051230570761497412559348238761026128967544397875000909490409301421443207624902948555143016576340361252926259324260885307295928416938662590878405576501622205248975651482720285192874462275888696350827095949757106123335625179257292496964497974155260127009929926105464095177100269069602357149627462426250530040249213826741175017373475721422523337587259220108340497748200022760943458349639979620745486598424896557312259451151689637817701050696159426364577631130779631088627619742243226477366420295432136689264109167846842803766525842751722474151257417561053522290319853598336373418200613785102529204046257357644421944989618333644942150126626253946912361906785684582053735403461637668911004052379882698968736471065925506487325980761933133965299508076481476574820648464356710738973538603061835209107059695302763844237125223218599938827250415243573277960204161741483944592011009271355965912737586552539253818520097217322521171400284037854503207800972844042618646079785882714396709390005314246611171269491872624633678789967704750165329263442035579126833787866554686264900605657807087271947242626487618998909354645676668461345889785260978455943724107031639143529183768759191506263610787166945636033709849735693327310239391510389800803073230828539556453231383990052516034334065597888608422037033121424546256251546518887718033689109367826388208840822884162710083170557463069201101968235187242704325526098083215877395467727326993414533482436144106247194156694065017250885099788532717891800113788552904460696343727071004181881115931642851161711176975557714719927249175625637030683252431895400213902748603556937497158073904458913393279302555445790046223719558432618281653540346846429981044911940569834460064220709321875897426316995332882954407755275758100753309364073476339924309107417897242311567861500838863702042691929180433150812523614146953181891712479350007044883806448504090373472716782505633046281015375300553391023231668604949367508821791021260902035203743891374913477237987323746008784962898787131789182878916653477797813850872109700519244057715000317029691819027341001736709616909772383618484211183383782773681416922602821102771339755345267902779943057206449620416935232508832004745520494543050978497779353877480685663174114027842024893539806432016287889333332772277675105788507781630676833460834165405808870278645771699387298437705842042204075930984898204525655927304359632319767867852715855610004522398524907261594607686058025718161375104658880501816966502310918214665620193756750194123507951185019773151454021466153362858733199270896597590695724382471352436054506951132820261086014845583829881643098995064171690882177155713562937306107486636496152236830333477914936092619590836870631527491452527234313075215689082214974222378543857530445918352410349246485852889227192008853387764912441854932273024951300056565616432096023965828327959697341485777016442465353581245402363770316657640367190028230325388888230876007034720147813855269416984046496139145628384522465196309896824825574744801070107642821260660082731675322714515270361889322294499125181042171098240384276180831651378394558317473803819132826602836846440454728971057419458650774292982834927322724135341610281778316847039724916504733978069898320753721142468993794765874853883405092162444495366340876977250080097920590649849564559347386441775369072646721226684239171982090328082627513180670644606192519817620985953860269948148463655176578768098592919967555458743855186179532695587233150021906643723758650833843773347459328176101646139648936289098503954950373533704445455386307148846977414797116846023000325702768194027932096034396023688986672820911537029315305329040256527521451121631829661962901668761835079051737576481660054831930034322611006713126427911952135278902828516425987768734692050157333004403789768173872287969126924750037740638885270305928657979600334253007774244972708114604548668595742508685912165462111715822139974918747836730370164035641011580390706581000970312568056320836631746511325295398253310325926748483871551229809743226794324174207162247193796514720443062940801672182804430418152843591712252798856649110286348862221626834434418066381908781667944674480884918662821875725221811286814927051149894827478289841025153775449108977295431093124053523591901235559711192940296884045942944855870592146820648965378364563293575459874651154810009090518668225515840242464604658040330313809250865415092590782023818919285533137047503311271751302524449880836130456104821972605855203102320023568958321131597279216097817218120208066376731211240956955202167361601084466894655806604207446286629660221483009622228437287809986688670278827350970569068680788398999455639409547949514714752417003939239132438445372347161755695002524705770350917896898044128887020998478248263446872984775448632878755177618596115972155035444515320273892807316052519394653563580703720830298269858624631466732514446004454335684959462768297354152949184018763487082409407142344707524318895712626812641212380120141846753987881819826655301819970551999487416031367065731025109451388665290950471544223974201066531481724393268374114364275547158399718345843754395894849098503804299640123062727011100815638254929623947172467210844479769270069497121415274974520224691770051608627170793054652710110581506504891774395479814097629980253499766958961375203539902282321645523534679534074191791410157775846089920731682066933169937014764432781442642815195903466267479584708662117612453584926140972488054918762260487335197314394228539815956044763617704246941548473376215424244083439821022726207140606258376618779047102598448526790197716236449753391994996403658283022024210735345972096509786684809009918697562185440183500896943342815934194527784725056490662085663006250663916117513589342796818720827337548891570338797562482442196814054938814679563728976020531774619726342689737094422283792913095795758306199252665871822912164159230122855704080900394202662792101130933525820336118979107267823723938499987496397157885794691044943746107491040688438418102664856543142683773348091186414050349515487735865974300275653853664914994016751799092545496871901432935278432651307592962001788870916382247788409360613148541245516715023463534764505421206254140730415296057077859157390333302679789605992405094830174895776384609378811287038294012253431874091325262791151155561300216020452764301321659868306301902546829391850719995709319996927173759325768682389058139533540085164213941326104917543157718357524622947685579718213081589237268696631226044251476702045200843222137045244730156608846808666781439236911397544864444909543089556822066753378024817204770416603612407383724491791713149738860456902126263892588818544295205666754822034296251232735270285331353375273492129728343696996032007260230202608992489806384826832382857689290045536544522940348929126629413191868543905590656600961055783044050481918821495457025317210346697229052298691392974135517892767490378170403885048434442532159288143624940513248020119899197161625502387023466604100166665398266925318270020119517401981716434916827346226422593085331551776054693669252381102719500878223541205651835649777868621496970485351749305031448215359517638922019151069512829406869900057084018481258770922348837972215766840931439896560507729311428543986489574675269147194471289930702485546392736302854671528224244665001212285927642416499412807331171829270610684316392732729789090913563946420677991493168536554487436472249112811697646929494761642826416731737573263088004832476570474581262916140672955967881609875203630184407346213551728296123291202731370937617244134672889855815811427624265248935093852580453125841683409590618827925689124912552774299831990461681574144854517494117265453270200726746816657781464737751849674199993807217020947338971943766061510894908351162072465756242562645688087144093166237354335517784526080101670409539310175863246359088490307703595663423678675225135677620105121180293980320688436926385099475920560719452662283586716690255282717272533580671076695624122136945790071012670256162705900548606549939216067651017177644450015951948831280104474932481994855216072845385867248106977825739549574234253103601751595355586146527645612531113682989167956219341098967718446097099326724928710150868173414888832211505618516896426874966994636827899112012832065310454168928371237583048485845258578994876719989537278582498994622893172544593299777117189120005736584611355529838118110115325191040976825731300743483592013164758071369366349281313942041017654641148432217696097095141292458386876022301261220104371808339184916555607744842358354915940083631714064585476731353450546893521067761632231727449937494344747537927980867503404651851524951348438485687196977162747538407910589453936642767172416742952243156727445480416992667018474415471281336263211881732385354050941250301178271119224667336890330611852547433107715420129970451885025506614341892637285658049234491478766036778439514298877620368598203330200274397623927329704787653360935991882184103286080889704352995923818856523717223613039425306905379493272375017273583334735865755866559169743941435360135926941602268298438931612051418817806950189527178300474678749525119408022553545103187575702655643668989946027465524054200499358769818597952201473443389256773217008891906859383729539558958898925908224271083010903525261597052538259029400021377686143196494847897910762999041897352582037633384509121325349589607834771537220554630583877591958612297242305524905171802476498575094794781550479306657356754899970329720162544034138157871013973797872576601382200788318637392790892258550247712230817226103094576694237681510998529426038219757438515034188775052076059721208320043374772711182599673834877057796033461835279435317077266726093222208342842898079981872761609348860155627742525566353680872188829963249886798806599980291314024109998056744499001625600573424450511010855534290413864070610579229650775833987223232509033074389847412238367887992810249561779405314445429548580289316024566052020652982297039723180592762668025080398634807974452991182513844742479948066476128326324075228886718708389313849904718939418573840737647007871253871891541940503394860377529129990908583489751590514021220267944129745393124918628803103236894395674358457501661438631418559453559022817907640836722809591208754250656847734767901265862201512415963826173177067443715201765730896686567116714948480466608309603028134324239489545088385904569423439293819116596221121849486081156318237162959598851927454175044911975815324538472290678662857883114764496673625359250827140957308699191541991712143388144942246541720803849307967720362106724824405528787826778994652647501121825809901681787713228035108517597070247422031505810616687723342632224895706097928695597045132710641613384065682631781776745152576237795579813352286214358202364175048667837844851101273423861254978135330144743222033308742694704816395743251598808364623910369578869641297182788984349958163628754892609360358454250968648336219505579871138026791514524444945161274588277027977818363360108516280338335920574718661390791023265489392078376876477321473376959424279898097365124005099479768217910128212533139213155706518434171868108460167728247419785081577623985651318721627339393560873938161397557895467897841070272398154094824664334326904013660803740176563464455124107049703660987315873999472479912877612722596878512099782318193694246817208161298839350580590201083281452232984513881992231351844757152087704361469650219015514351191612734379404192897578569724645227257123926884951631585806111144779255350749972918989581279784460704110187067477457681430875051015322331114204508531703782653905994034813363150497261085802115332518111793592644192042211066414037018781943581392935892090712006402927273546190289525756654623739405034241269988835621657523996538861026414460159913461940850455856192339975574745714970082547564073601422127891423047207825305438849017891567156514402654355239453333364071168261911569289180268727951923766747910514419751069767270873821908151427862270295198676651016821770064306223541099930377807765382593219636390044238659438195777172047209834606481493198367468422096662774529174542745248537393475005438651830708098940245405707868849780557114825307245023972535693344402041344452892997636494592594110040393190506493480292084218428716986954787370463501118874185917972206778913943287446239386102263937102287102786586938635175210221511864306021824583178391496969333521746424681192543340662892596997329650004297628150954231118816569695937418264979957419189425130844856500411153450608361658862524979500941259445441170139289561301206183013682865627248460441334692515188905046604108397575093923730561855373998289058456506066473116202794880374268366124598246617095608769862197977238176500574765278654950475413105995781108097083275775335111024534103003226124798367726616606895068264362402228915020667846408864911461504698488583754094044599618686512165172936617265134244292322645687505258857581701996928798019023513870238580392034680149787501905921033035844668181759945362116246925203853752227456397782903158974405606810751118054159898373263299413615554025075754318540919916131594200721606401936388340226527507693947930769449529639976514172358165491319447203855304975864557522008270535163271475538482751704341926518790782153737469447939137643809349433289833389779055953061735055388681609354624365070063544460860293862174532431125243398043335727249133556680880635427560009943490352003842661732921023501125263893982908922502970532468359807809497231019074842625107995041467666881989075020138791611829976591401452807805329612188671479666659134091503150633798670222146749830146314809381211009013621916026523510349305176502483957325199558859016725957545808659315768410908446023889117007862463027016826912305816236425730688791586438422043182721068399160532810596405944046575874213810762238318437434773147260130476597223428879222875296898793655292852460755800988773831171076114400675904730163089095300255925704706183227965241616127703911832830064926581965768492309124806642036369295015132940130016380861214482977145393047990273846443455883030182348637541593726232787926880835036517333468494874208864033610519099023753209388574807018688149474947905348102382662783756115081055629001456248539891228778770857371165992016288404580909193734865033276373321796859328116463910770916715738813568879253341913040452953073606050279346347760146157331869269191053376441527833334900314772180067729623727806044172243773704787148989579765058618363222026553897131627907888895580225282924824130399643752723573671502929523152760415753094546366536032379800496917373604635606917504315783942214006416983165760788731260452755469748032953550006381805771984622446572435836284355089377086756235669028606350193434081766367141450434811518768307621821255208342280815444972223575716843194337008966905467440931354063923082744971697395864370336421547969298468841951009343316175062317230127939835309945179013426900584157016888462370956336102783391728037575340139524691011355668333054685531802491231477027299284761380888705842802093464184506223895890955930614182548701870494956514937357577794838185218688508109187452820697808162477122571266081698267345136160600675447850144815505798618771425926007516686769311023348125479664831800606149739789205995297050196644394830459707622599349667164172827634918876663369275804632782838149546222501621139312868972404115274859735107392200208820297517542453145255882643866342244511924903644392152955928372651874701210575169976007516620549401683877012785572225324096487939046834041547037613819175147461967113676595497826040002133195141276497567820241728361415701613879891703292455697750175021320640028967093069578763350765688302956500421397724941442529684341679744742876313000885633874810071157517902021035434804249200406190951060018470096461969085569429426834627233332127350246364238492304242573163921014246614764009224496557886324659107569999528502344774096925167144683026330293193587926560468105181917596925239749653178420064497437570992643134166028186294928810811286669757529311846298474019944025130915559050016819322131684053159968928415119141998830148828471257647449776308925130416806135931168543006938923891086740140918726835901305789728087708771485490982314484615714674661287502564403076100053387625948347011778932815883265808003365219426224000319187601859833463950466632813185205468228496188992994195371629270861821040057426165834928673275597107521092197469064067543885659505925740226757898012350218294788746936951538559334339506290037257737104652548296350315841743337273245499222903555735972809295638900869811560520314245621215571788333945364572752297231332366686756506573120172580404819219567503528260313792169284730611116341779410973403783240234294429697953538333810621379777244622274610831252167695359953048049534907805686989328060742415985870607323886878996108327707484343687139237399999793974775910853830646115697113550945198520440613418480984551452434706994431261842909838586205964491345230698035770926180295535790266510694257794332742881978886559287043443632116614333543295976797208713063665199949711291394597771790875037454291651904161160103424815214818363103663137442326828898675209353541285394161410840885464685249284925243592584701766445020268988233480741341039857481495404296469234472389049410362978907341839170494791970178266534518246658703613603635327893253301016713303229199910773235857614752540098794837834415194913708794891328307278070540541195313427941841653214549976005918483136023624536056940739974728085121954149620247758427437861153298774199379763738947243300000709024875131674164532458608572131939356823638008092915359069102489305455427783397695966088428940179105993192227340660757267089761056024573369152788954582475799224836829871094001286669709672108957204501491818969655600874171165818980901549119153652358162300714485937863372512955103505030114677500916953036752516104489881690898202655661041770196985240749810301920404347554612144947939837420991997187398783384074657696641837794448519012398292478148145650430781026651234611977689073700606473652745576140855639410981078941059682143335037539733708899733115686033279589490230647959463097512904790740944572204180074130035518216741665903704751068027165190132993120037339693071170669291773410336396714315657061645642360882231219441221976731497407864552382826576045131222583655772067931630185757549861055542082826712647454690826360666426324817309223183668924668373167724884568108472605027590796547279922987107514139290991450633794929210904266708593619976166719113938064691900481870836255878523803575281970577330759933031806217451267603633759509735561860216131855170098479735180110449131230339584055451932640833001181560934454068654394951874646581943998607424761050928703504143873073227851316013531096233773600560808919563963442101655874461881836729835354116683670702665491175039025688706852681004385614604240615595893348523884761422412899503203546919897865438619130579187416285889385034305987516571924039743443810571633088963725154385493909956863189044502552875230213041585758113201023428977086481323966948942533537630641639387575912211602598625741774196452690013785346148286908820410912497871457687274601609915087460517767266332932474992947492377062471843255450591794576948302855694164932138855907794057754625363027075041482263527517011925587516769749782864770352042701167203717040077413803836979182921096258426601908161411185026675732526844727038112475153610732676398968626893506268975315892984128056481424517095148757721698273560309757197463025721922894469889001369980705638759739361273884761312418780319424712885455585103661819739135460720681057391632451880804606498549218266823773233234104333408027831576947862513041197418081136267586638562365800072482999312082683054589670065872802904089411823831636559524369294581115428887289093152754792656494510259598342805222544372400918144523791622206516331498674125726395083393849928546180393974801752612632177332951914987987290912403181470715427871298572077279368325474343565771844118662459048931727797038441485974579157854806908205887121953850306122461899112417189421292132171025325575330584070943045566216633679350433205792374370233791088796593055728418106610740435611426780182963692139777724427049674157386863692111014337634475311050025931122853993599392924325447351184093398983646236221926641259456983266730422288769174404070839381887230059962607563538230326096872505973712334462542437314047244407020265312220715703142214223957931684031685190245050735596761434014856559010425980208210667629712308577797486840579424790157188951108183832115087749392312085394548528018679760813335474107286197957274351887599928265822431186572891104553826221033104519693375327361615572561692954724258928423823501687215099751095310221761223003991037174449738650107855129873304093259104947571895050082582606622729400917238355391519509392611157025495132197783282136291947090885008079970451413327794089714629014066665175157334537682919022373897996048030135714124331567028260035958883227001246739230907734071945310485790037635180944608471037676547834421481563816582568265968766214414651134231950836066120419570170218958539395850638444738770512068315541823446674586552233408195458590907250889556916302551025800937762479979235393173201531901060033854532517011300607163118809721576338821944140656696626208722904026445541467997433489283333083962192122009633717714294867288156395546103746791864393079831175209087834848099613837073982563095320647857985361351127693886755149198914029273008032920803931482715195859354956115595455536466470866396666146800193007531761758405320992588375029159822600406612022900846497922146890353272860497465530502611149829102593766809055566150287922556169162905781798599960556480773880350607837997338105067230097115253793229709201465378996727974824939398475937162220919477299780759042751030217112249912643800128434782108431023481392033357559594419470311818781862825240166374008296053781437051980306378430706684754253074505201383420329464667859923808346120319397980465619026745878136888548630368446628043506919874627324850401598043140716882410709227749045981760013286668313593623715705060526966230705020096651419405547046318104346322384405035369181895175829942677793490630958468950649030232792323112504829222659683063117233339303104136396570775963345350576302407831871745474694521925683976720662312933587997346628442503665252954346831141710531645704025644909016935227023471751651845424978172670003173427066623044817492746317569151245510024144564864705927196049877213395324581328826263771768660676088709300159908988098238701678589523731328769665786655479625497639975636444112243794473406780242900914224080174024773961333819118967546995114541625943496202686077836427932572298350516340286606406420752728414680478806188758903385236290750828297230035197528511796908876237252551298964777431452153502317957137132041656060222898882401684227555058468065120330352262547593018500615121593567500012183983885189829219532127219502694447782177678163435575753163114215113913072534973684100511947653978464383919357229653295258735253813134451812382184923210991693761105347611692009687709427182029268634587868608169502328579342497216841337079491816983150945972964714805538834425673766305410400336302225326235918837712276286166835362546979965367010332860837604361291373453956270670561952766655008942437345065780254694409448793290703997235175156160872799074346229813279978603462125055026118454627958527142684397504992847813037919143518356359051898315871950806954904579709357415732524117869155411983705817977347123377200478449074335995796278468099712148125593927840794163724960538088835339411539831032745422262761408252299265831555670098287056070795996330915274224619185941685792580183304005194676033167521259125793940357588848265444962575312665081076068449220824817844009147557818517590976840681415665644723586809686796793175197342591621892671210752785325188515868374577795119331525192678857735652496084150608376953294730175525154676540745627846128668113843058573632414695258339537586440265892716863413593329276846478534621456065006875019856530358310874950079489921737038270277814170819144521180238666261386395546139697031695358516075160515171840719929662257901195719023055735715134006927541671372324645215749697784829313976629702180624777358523025931785842224531117414037744030596281478393390222794472341987342131248600523980466337641615398818467999622125274597707902213807730789210466703779017511308777550795834680728122158825314474874367051255000457056474391315678812228380857539448918783855398427173655183256804137957099072313818045156233898176138664458558969656698647873979948248776903479837883641485757457306227754466735451128687571715109963172118908145930837533387274560616251988908546268928772666963379543538513375595957395369834445483975395416394344833439901223435811645826521374396680402346509552521063175470567865048983010885845609389473538047778247183347667733137407135732316890963902048104257300344646165928093543738784132618912088719544725898337383844404602962867099878761272116266890909790350310885466052598013511719930463676077345117740315363189364989317599715783233631382168233124222658545920922125840776416904789988427219078185229964260026268901580679430526134615757552000168985960511430637631237142223458002102146462620901053942764083484591759509451076620233393818048735569366287431545365484116809580953635966634069796601152661205958280762304347476333724251398608963846952567355643824742365293383279313874503729641007560552560778226771226715429588294037039270926134777747104931771064156881302835590053783199402023807835451491293312885735868217267727600047985068939617755626863880458333880733000948590775883519752563873766010735976872421930263931044631694693034272111146109599450240400021536072509480686254053732791112153278011038434743110626478736548293857645096985492143131644582083890866237055574128181553318148933424564280678094993166138607294711508143817169071020218237434697544076087367852189159391323844612719573368022106837650482760198419769658615551394014897924461943687460532520975624191788931128242263667942449823233780606206060936671077756893731919967226386086773219544954286666594594020837470668055313133004517915860945472399616411045758492389086352253377088979077709250712597093257781294982388540069429512217572586152254348345611197475671983248912745300840028607054468160323269041356283982430613948754144087124872319758130549285488833752947985240727011004649428232323203508511955961621270379760361686871358562970221774346162680200667920545976067658376034480386914316923376417615648456974422331582983249163783196891698987314804187469690483288348732522181635790306442000126420523879848071525964678832372223608556718819718039417505525777686242812740157877584838275180096255764926928923448994813473021542424373478057595847827504728224901831254880664854119073477751806965165995891952037508104619388966856674854507525335010206152534790072150788817308581977665817024016172781434122172453899480101191075497872165269532812475268557787139151704610638946060066662492790726566192900101294367773525995798423631892716638205346299649735706885602183725042036715579366529791823758956021174911579992493246633371485056439711843752251929690463698198324094739745255006874693383479961841620289316076945030770090978687454584167779643070643025602933802757530080364809181622355401860694245094831239752687591677798857921326895574904964320347038162295457113082332221522137387244648426143304928716932160830243366752516255027576986366859228026247322197387671844984403668613394210497069133563125071850027806325707536971996713702301201107863982597721887999924964147867730120055137616974626671823420148014943821351166095934894528013454039772242224432911306317462726367503255036720393474040004906075818600771409201207912218236920806098483824207917517320231214117572422806418846417995680306809813429172559840249336469550446778174183086973081859646195379644381963563575655250565089421676056762230839053755347854139740634840579605651478183369125944530262297391333220581837138238854197470510286894370219888075178944137864149607278183698303811645597371631994816974202429334240367443413027910723117497096382191758851762447914098747791545594982972337568411761466146201752665138933574983047510315835843778230629238703547285575778276998462494424986315048770156086497493601468694949323540933201575269974981687169636311977129108264951665789894364368914839858280089982021667842243019101800375630731843567129560800740657133697851400602626683021108700961766443322110493786582739978692951554358942658115067238949775512603263668700750429671111704790119939248769009483512789976133509728891381724027726406397283709727266599691428455125222553700728148342179126504620296312764672580554526769711288356232132790431031749985633504963855243265061621525746411814983915514618845558743820331375044710706211225355541824077478651711537050218397894363046314139001308574541564043331923384545200551860220209742104162815540474631269138987728356369507481779391529925613380546326205759972140375402976073363291100616176177140225586361583364583446859126334429628004410791301984854937511506938237280905398391329164095705781494385535128662274759966858091305161215354780433012083592914474273750223505240006442193500567130096889249995634509404931681966064373501163944417746576176422847157818283377011528628057500785633385156357994612430907475959351539782294826471136702869226770067592262210005964576619670617550094913509429449004052307607884183694925514472191885739488892896013029452345998179442474531008186742958198313455467786848981920736989457760241234542720757940649535502213478606897607411637333455181511979290299281196101926115170873584370667080270067641229064840263502206498880938756350234794972420357474225319511943208411861139147488184040518916006831849767498528068467106614394687489796429153663266934014498157199429204504699307392405982196650217240571733426259983460085075089077197865768585255870967968405049089153485208182313248788812103834800640109413631693819891084657249384206234644800113580480702490095550992403609802375532716397468742082069584814062515078483917936900308945957126089225618408513906568756927610861335204280400313328547184018535046103495190423764855641541583135473754513484908353932419269820954515743855329392095424448671738589530032177220272932095769415887316499311923017864883801667743255384904899751858862667661018351416043978659968007079972720753028672680670277832329859557311347630050267798358897189099865915587502519684241559730581521760621211738110603218496413302962539047673626353981367032710556217202818222026223356559864967938739904515357654293801020517220128976813899384684970104191171594997386226798501431363036693025282382434051353703940773194273826477631869203215184632502143857163716230707436933968844846917007564001182752640194602500000117971701732721172680080038345199346830920579890534234646247209948926940536551298060347175462922709419050250787090529300264127960844791221108101319685024821663996834915273938750720320263541863427027449503224888079688562288887864512638934779753330648682570796272274528738746672260726398534512975637329805921127127929653995903093501947647096563620728965360630596522379532334779609251390742372351824572087288693506259401703666004858794966382778944424760082732199056484513128481983219978680808129682389163559542390292399900069129299799561928625817377530726876838332265582356819178140008000830650227077882386286140838885961522478088389643765537885856402507014111257525272286150457847225311375878987643910610947629803839102473256215127713349211157063717763806591682962302149565335903210222785292970290076974050236146138990699847177424256473481621336383542312223059457980848114443610759702168486660940318920421129707588362263697209466174352066374391503993246031824784714842385068549609108122825446089973907208098455971061295675792591202677479690480666771918539640126026270703845146395958553986011961253588452490495344853176596540912135862645582767438308634042363308674569965566364265779677724751770513986352029582069991803498853154260514723243535238567606340576450937500420270831780197275776461679891524349586419589318704357917956730057452999348367319392411593993914506325258551886123364902895263547531518307913407103395008149595508434147251559972145461115329622357046682854222704557360737684243029338589546381041561582753677320026510642983394088561902843873856563573652762387719298383257967997878691922047072160214776168593811445367402050672795792006068537941095755365136343505115825323300747459565765258188496757448321307538526984962469678152218579396637757085707618956459364647252807173596258605642363943975934790796836709769371618775871873387732985572166854979437655957372822018973754917238899810713245476761649778797635317432433980322964013797444751535942086062842569349737055229683374084187124489995486820791829331224034813433956602551457759194976589487645015115022710943480708078556214024138747568559051159920778150883550379147990267326290329443365855185527174917830419918860097918705072320509261484009495007019666903372441062759146422438791397290430028940468498298491575266367732197689587747159947206770511455832161842436421190520782865829050453978829644130705763219998856832312367610616362130013084281458225815126527926354030130658534427559004443417937371586077228255962375047972660317578906854135333220655010910226129047110136876618007065046177890018859147101073180234881632044072762937621369960398446666051016382383443431790355944336057101257552653630482458037580980155771792653932523014177956344511967095609108719204709398476246088981518530668223363351575024096444101562991224702385757251554786040840883207871539206736400931312181245717536885861764544355586919188287881616013026381416098994165702692835385158342107707063489072551083698016787505044243034998740082142509244779240879231571390134522754550714416260723033024789586435371692272542266638009116408430055468461389507115728885663450290324635436961682131343963925453832677313097348153800924471632464240607528509383754716939276557556815549666190603451133019283163034840801590970505449225146376577578678673197947403976287629554365175292595643816774676158985744738665729492857709108866608885086204697526126364902085465532656244238807449268010639681445864903946229513145933775406546557747893700684976739032496673479000975754132223095511662528634830313956052083387879033660126327834516325185222245397571760479548840806988284222326871450483949790184056951341469489029358868820073660716704368725524806308984412948603907724211657118875978317912109180523121406806286353490452752867172314177909586213720278322380551449905553677913199188334692465978697690318797191256178543266374958830134792354268315732921054833213883197869190368063197310330751347974848369725820847728797354450284911589366860939566056891422472819408943124249427257946638283864505707132219181161743093186896885567603947574126553414088341247385790637258851715613548164744877293614034247702937549987325595091318708987130672184765516970383655847299373877408459307281386858189802857844942386335886743757019353037434004158488049126126345402130661522114280761453883706641836936515237166483404954605886632110501911629264522409068433596973033148792928667620003740487171828149257064397339039521444036288046285182372123757603129291259212393313144271274446603424026178600121424792289688367289659903154912818739377722252429685183778261308173515115255177559704545226328877926223178545268660861876640055049697298055958278579321687148900294274806730615621825672652490588777430479776837492597104759724327347919431623420157327651153593198691967029579481865028725325916734503354801397282720851471139733368706390572040099469001390629225386709749391073183432721637678725662498392197788114573219958760803849773014503465951004381879749428990703099851428138576770842983783751621113531980445803238667495201220701358414801485110122987313369770528231594003677588129848207709127811523143552792055694119706183836186287685106654780931117402621051965563996931912566597569968978348086680294418990806878501067662340105900800610870620028681151256317075961757680731709757232654922610350210694930447431459444946640243913178575974508367926986878043298562194259181534478662441225160740971359870068099130075353480055725540059146560906695864077144172319738056050358521106554321427463300868786172319161194493997341904253364712346437254704972433164815573590211771715977469461016092421871214753097492031465068912319430038641947375684926188257622533858301787632050984066913016823671167141270798268194173270436663740241938477313424458636014537014753112539673998725568739900992395809075475185179702045729361575387593682281767782311640404172298769828642069409833337588297772675215525107396724818163355466936308406889183992730891308026051329444074940218156111023880976381760665105134429932306313233714462217668320541139259453062905862114632558232819368386685162452516549765486081782583817618800030061309130803374630433524946398103096405415795572236122350812603933372744687982463013903638065663490272401610721403080262926649131123508510719202153548935941940763024569582596483282398730411727104164263689976878479185777969790399510270095250935498431173394966901143221430037370902182839003737921719439832289870758502217346558486332503747969468466498639310709121762419478171960248045975092152777620403789480146609206638464194489725387568775689201232548327826017660499518647721862250251400458554097852091585041626719256342730166263746017773398635217081949858644304683743508703440229358583533077714359204175668467094033261220891392504917117328203070806794605975190487484278107146295164755347751768116531254831106503789568963193031853391714620807901660554184564996793255186465725038963159009208428769154638454914113481363598296785502838027535851864893449219083119034642182683912567656545708526350956778641364839732407980876423024102649317063968332593220869720355929960233570175801158841185638781580264206155519937917009618428645126898425754809822349492629543622868050651912609179578773759482411411937689900978822503713118030094254091804363686751353783027586858344583073739883845553914550772153087067753691817420151619518793065251407582134424114298466433117362620389639677660510113428980737360847368149278863477784451740315075890963884556776299252494802567867441067621095308721308754153475514675988336574628054593593155475829485952509587319951075335565088293120560182772636423530848366781006933209489902856266938880970059087521796425018420686380449482619810071222215349178712270651710529725195236746025911191616973774224547448530950382416110307083853723558544964111729356106751628888655670881118760542213354023210214173221500042353682057230543175583960612726190625422785275051317441838936904889463780042576196919912640146059538848034302934241566070419309075177531509350779932182760029568683301256303897094684638477833647925816941530502776986730633547935993266650150958816133975775471930578637411208196750666122368859118607053666270143651904818478855697121148593985432324815010778487073937532170867710973809702574979333656357028637753138719750108953940881530611398209519880353547379856920971427210723848330080290782694085305775214368297763720141218037084271303408035338745164802276802792796181586856003767656322226835145904017255466113627899409182898209479056801992373451764415095114504008452872579058400926376863165259219452582348853863394676901811470605217996797847674809139090077889987157929981322609949907871949096004979864461596065315723634422212540740458318181968008852044451941019669974770059652995437838485572436845917880763479593811664164661529578216110020663951092311779251111947991392852038602327663919509530386789145260403698016796623851803795194485410665793223799328935479519916717748777270045636866476619667198210858789391054067880985256246546451726246060953233752428000877808961215437539691731339859542790746913520257592881425503241387135953339758256931118844274229530163453873927488501318352853877375624901199751423115532758296344764662021327912955912541301004686701929337699377459753995425464349964686167732863469673775456378587295762873015754426228155617535671951945029652899121610628558988631863762482334882220910970878679882683884297135733380439546991471153613748764584273315154107853420965004462944616533522243499952656449281376245347263438374720825691925920738618197839687505702354567148651598017701118364833149095326480037017558088746157168620442081393127682807171164094522862504776294459201049679769997788749424420726255456954392182230455513958056043590445629429697921178907386611957976503584457094947390505068124383781769247625077559342711123115518465430261432121845378278507020326325085070374743578984871311241097405698440343009017486142221358791131268935352700841057732380263639713038090648246827357962228198341839276829768511115243766966700584207138696119826013198954281137016412606491086372631790194851895006378626331768700747142985198528864595186905561229946982835312837235244763970427483253715903068846120863700496488332713645892032530969772284719117661925806752908820340228630110702964031944480872312639074446841102709489175501362307534515265251971721370809674984521565513157238180236205163447875907645908299391728459159006148228079591304079056224630636733959809105163696820465211666410101078225573764893719871002340720221770187978827686425378017430886737653381436515946105577511018869508391143601048424207665826151659637530758352733157617367995566561454166795276701312957718654226028515200045445028429639568218558097169380331979016978596809683422791555128968721021304124097305844502585753498999332759481396512018448492171188743157216243394529370868381701094707136464632247415544966454927245647544407061911990914793167506267013998047444782892097437622384025597921527963823650511570485042374915566191949130709785018218190533619923285688610293692050300315817167725172482075372820548335714651055922297231024101937578000673029712693214406636217684355972413778562570515029877118200792724297648154754831261300974309746570217297747273185962440696705213276207329955359438635933005653846976109891016573473308355254344247784262668878842428112508821376176770287042092121828167495396048821775137090702940083322186423325386780821365057911030418328935829192652351687265179156635607861307781402129932228926760237680778644019556023637313085432458724587216424141816671559033438148497705884409862458794143243873228463051160512134889768117461443726523964370336534465180574777635263199130082827200173321169489593465291638636892036535298374554135773270405399465461822865529651342406775177382227387367199974523375838206199711938890441007843341319325761653062096002062611952821282929239651333467224014228945582879721626001762684279122825833873942038665521654434834619623934743725519225413604286169774957897805152307210820256121805064659481540045828049538148883692770093610826370913115314193466725746857924723183964742159041397012914976028967998060072172405577886620163510189421781374454041246858156750568892966326765352317903040297000683943876157964567489519991238053116411625314033207322532452965025210422397260783913535419339346818780201301110878730523211751898761140662375867033943908984160086860010411010953668827156535886622671115434786911199941957914840178859134627992178491626677628851961044497873409518218302745725623437016493513461066448110412332068454890764483056689402215701151537177040857177119082993873442257000813262924595588858497177707433486899571346686135350171977309266408360660884734846467606833766503780569777526722100753200832898769056847749580867028701292779739588698653306384981934855644336473311447835560316890923821425673494209850800093603147795062142336011605251246323469943602819606526961625435797044871106794574003444081511208452025850611524152941987446375075142543020467274120718412054362088658449317122583521254676565544707846794262116758510658393874102794612857840966410370415747292220600887724512536629396027294207060347101820504705724512905854090634828042140982082888581295465990438495835257639313562904585678308185158058144551910096892751695803095696352908177675778872014189390025575143815890278259223603574133519926408007842514190418078061962374811189964541785907231112138722203631218362818004708062679581022849588873881399621213480583610829454330110027591490476020697224177968484152259801628016524627200507175118654394651154411428667199976402111158776407267379648192985507127673049237931183144187515965736250843881571954228818601137790266459697011545027498200209011192737127315841111388541932952029243386544511406591766639806588512011952897186639406218367476552913544213294031873968869899020050854786435125534139863444579992508797421898988537177640640521173983327905382674075700298860611218440696664345161521272939434698927798018927148511823376858147843482942560564173311127350194434140930043481099931634456828529139031863462406062019491619674021185515256099044164718853613171588984862475455825770713114159821742026124902629204202114659484242204463991626324204508495076535064982396999744042002264566142870349990402373247653177961057361092348101314814875089544941081107948973304068747562611212178138651611128956606208227159369210478227252075505190836133183727571445762725600896030367916851985625829022599970308602698160460979451183523491166559053558409394606333403262882688856606461145061376441506345329053463767063196827900407838103348945993784006819491631913772133125242183390599290101140336497825536910943624187674544766095501225415922643819622531445516717034888130935012115423534015473171949483426872856435813857448624208190574637352082023266094280220064210782148849645392291976583295101865888707576639873223086035815248685648334963006337033539986296599551125815778714289117508402367008606783776617117850065127258810072405707919494264685210286780213713517268821759701338566292837667689124483533382674735071490932735713309835069862287124303360166840566292122669144274747667508020800818928951104555347555586602527148145988712323831519118399842224401494035652531814746789452774331233490600078632532707797745663243446172006328967332818394808797777336870797307438957931698228720666603176720190744248633507351720648758274290101171816474243869512518866664973177613272196891292296628917978453603349615751168831974338830654909443752563814413622987169118215228377463950465370100984381692023324276984325426419539936878785795175455561259239180313821409010274209582112650305512354633471083022246922433295508133507134619806936735122379023211573744004816389853940095860493877067762912761844940758343216983748008414789844052516751057810748328605877625389130642840954139384024127324452687252504749683170716727310879783337917862184301035399688815422374299227454341647560488977599922669163454772043050903040552999333531435467086377535783081924339049518436675226754018637974502785777566319469331171938522158364285807234034996204643506377822857760497898227426949852790254071375586846231626433750225046059263420369362097808615543288384129165693435591298765416729760305743219637346357442627222265063608399858242323434535552273847930548541815446151962848754571028312651052076944281084976183568018046931174068885942911289741559494775478398461445511895145651691585397958352879912597807746508103369563151081058135262113770602921979943402031341142635694356315051092054302201825770920657312415145512279625782781405487404805815738341549208834473961419808018484574746118444679019932168035565482752810250651464083477949240897995477645757140654355628758234040176631225801001450324798532463491913806106322206358531763795055755730895138854688998231671032070629510026074515334779621934930229682561892261001103845685118620052403883435662676942587762027651907485012043469321998530223763295606437716749700439269401978258940415301616939628845732473763036806473217688524677879300259875693307516687624490483908811120896846224449917295130651220577815906619646173742389825145703187352819441449412027663264978724886197253171342064848503389855234367348679038365218286366069320633532180635022348240321209191135159762045109297530613900482243685121120573917673298282089533868427856740951699237615189431217630530466338449151106271704337209808224415576389360431500735793491484107701627049584616654948672897400857185940844970867979196454636750285900031539898598225861887433453791668508506532103731844768304759457499491271306318880535851262973922896532348598881138430214836571738582205641944873310047817824597610159330544863608302320695344460640478026232253698383495056977337394781122626440065017043902294460146609906729997846478072551410935943297858997188081214753144135247681084041602630316040017826131485987142081599131162656120379724671128717670480136253593721152877821708598098711359898834077071278767987702973444355643909837093401215850950408173283003862935972534128266392973828839304882207182894023261261633907495183395497091367617210797242484618942981037004785918068530865874393189851312902391427630920004237074796997411708084923164480056303503782034014064675394686616614695035472440157997052312642457853668150729947698729992078631486833159769068322696195142511745412008177020916746434491434914797396009880422905383994037579374372792651623549284571560950706294276249127379352143261280965065387353093272311348547833914745800527241126620943535818645550616644976929143094104377271486287698480507919354097427119208061243577455345567499396933091806752918532848778451993017868221414468795207552039445673392385990654869646765673202897609805090684070862717596420767771790171717277368546605023786485639015609108525247542457284895339944481592655193576718372836111051917228467483941578041044313257108038066076035736545791551821078101373512376788189755682094704878369715827370169591778924174494114010818065136565754841427307468793154437154491530900261507969822030190521100050234962547508319848114229405300896156272930856878842962651326899116718702244857401926977449831052033778650377185332444767132133382131722722984308820738185463764874431970643480860537291001674160154882806411326673003452773771872193104594850801495586322903197390702765148698411410268247631372721887280075240323370312229012596080518110766785116301036500528068184998330884360885012386707806751354274959137208093633058623472963822239165618219626669405401769898186471470043832300166809549798716040985053958780993565760637622285062431345341248652020456926637819874437150263859549235574343691453241866242284759224624479833473101069197822794034826005742999106147927723550818603447391552365608129975534999223856014724462440634954423091219534256235862549024954215092884383807983776142715894666810490118922195381317803156260536283886315643725245411980051285994832216098705392508265973048177230454649294338774251328295644351745502501924489852842451766730841721072449807108233228075292644948286171694375123422815705632931685100082312521598468281149749526569554641775547023297773857688262676212563870208389147284090089379991947605273800858180099902203665935019087247238916391939118717450379969579163917329125558197953139023513151638192413163458846726888129715506884336956243909980478378970525822287367703952420183831729053410921725192430978717202634687217069345363314595309380291609223411354031908731792618920641586754484458096856688007635812041226168133001841492712427029116906439362823845229115061580938256918034933950624345276717271712468583202016482733641730892057808692924412033983101570721958397782435372822469545171790191787241907309996927490701332830561085290248324828392816887507527059673156231186692673705002558745720369987593456432727025437010002368966016751531233734544065674344913165232665646883183493352361752709988676674788959703605826709229951331347146823936501908397845156013214781545183734061475006280963752847994528477012937693918648329194190819150251912225876235755401203398441695099705237826954973354032919108639179826229154170069976245465342204531688638188733517901426594342961986964141957755369134560863644926141554987398964552307473131538904505599721438289075193203277923576821724882833948325799738820750910250991093887978430267256870747484869665439780671412364809830273574572581056313353101195360987361670378915776430486377566027913904077456873803201160056648064813837815807368684918293269016110007286004044838227904643429265794029647152481612122364043710033056160893368090977302728873012214443863500517515905487643179115927325788524278124205260326744060422194712481568291832586649729095794775115832986772787975851452404864523157424009309491038205775918786254041747568304891570258408048595986819890002583872824178213241828821047754277490260186389579521294423589023572523211797961382853973957529294048565340221605001705550406038792406565205538759777312171754497380826928751854779855378998949514190659914500800019765485211089655972329062867318899863432380094257150826976871129881736612722480827335741708715486860862763015278991916562890062537646019261642399071807980260218481399838897272600334351006609116482229257558108574040121516759729578525896457026929237147570642418461187988266387970188571561741576817193489838584763855439022508131695294922465754961570236676627585924882187087684479857274918486574719510371715053096111326771498647012606339013637590700089783673448815015307403355245548635598259480070783348728835687582540044616201082043771629062900326381671354538641298570725812254466123010051965213715267963531069845382270374174782998320611814616853265421456115514188909190770673554716527471717190566628328745770640318751060039025869746569377438384323839830862327955924140650540548031989590062071897772541015521435778628301087612633378572440109062590549840064039641820213286898304758717633422305684358588542283577884072944978264872847552262168694069044674576935205856243507634930724762786750713994911670722096100638203889461538200415427797118435222866666172834901816482557862426574525385427398734899130204981281042193009533059936794171390323486660755126619351580477545730570838009396116187452669988564055555458407531610471076697062902406680822111264033234234290698643822254719535331115996869211699004083429571672989931084876337945694060121573404354050216594976854335970517561715267887777931740586230157140765148604545789925497895578595125738857053021398280570699846732088973455811543883761573704552749868337495102255036674360378821493475009612615906505172060669740975882159000128679084844543718344277135099329027424537450069437310907482898012878867449819782949020971163024609641696662739252334311228689301627742599357676032675852153066897735404875253154947077552544923952870399927533464294280264699931344784113741172583342710254090379995289273346420842557552887970789356843997273583662811532017145821927392141212793276339505727976451105487532824651091795381698639918327460136630777995057894894630643439094042435169208952604270735850115267546570115914702941802065824934621652506894074852945101046088395192596005812461401065163120143434900125493348734168209118279033881442975365458851265824218680892610046224087684005504224286216187421829720475458297887581041742068714306290560348784166583999002232991948717558404650678729114585661015813292858249854048187721451405112164377571921223655591093906265964522599814772392710062161093719578401193770822070290942017555429605295371282176108176932930720788685512830862229333779277622954452948985168169296003873713587105125092064617486826545138877292100655234636048643800469430061934814115566883779744923632596095300736258835763947576718485690787400360804449276957505170608715241006395404409505600503698791832249236094433087661615531762191908398999314737621649161184458539952628833412677966926486806023465380058725558529976847164184743194692430746500127601854356333805238179348210239180045048793885387225652104279102377487447965896815466285756300981156275721851356740301370492047301472479097369117987434343168206919984619107012714813975243888950175342303164853545030363401350865029286283623899444302330174176193333679095342775390792002897161161820760218851662605804997605877461125805904318333864560216747754620472006856440532452449472362887468205331688850813159989538298470618534537329807620294940650973939716528434797402758101681276601117335924465483702428881948191052011781495938493183248083842057808409914661684486000267614652353340524159997610839912638779107997176246702963070384067523424115152250554069393324074090954414779567029414919612694484135276618218357763366143688229230428826852339888469914429024269074085537938475345677633046886279213877747829455459089410002637026721519592570217030441191682816680528008871536291430119395586204208579486870441044843050618873772900654654661779352525468425732395451580769197778452731350276718688268712613934537071453326378966987949249805058684536632792968154385948136821511850294693065920955755653507250693188032120172155667215219363049047170653880793897960283232410576641516560975127528383011563503499568355775839732476586316283359760754370976320983121285539656104269652180499138388310746982697265453161450818947683258411080332637808056510539399234544398827424354225746734707064984760211150548041829995574458928767808450038521358001276510692500399991227730152297851431246996809120645686991977487158729777354739513463839568072070078297338988308583551489311969898300061907244011104785226561182971477620906405333077224234667860898802330633750072619974915051409018049051242122291164540617333380374674608159316714716493655252476160491228285127049469098770249966582345250517271243465784183641388965017240257972413123654826041302260506061768017923734600830745773573518275907008794124698494654289823253301936197862654992843996216729684934587243382739348124329494112041596690064558666898975877511566322268854142758914807862608045081708996215526522505099954399149250105628320073639491834662699126404457452961906813967504199454891470089996645432610069559770357315399490789135541219212102726907213847331565467748422048497717612607792387692379494116204382330502394898115731840184859665421201878770534902909551273753574636037267601694469343813708185603246472536193527407256765696268505297512956020887070636095976415353542056308304682071404334609314515225923858762526151491298192321271759737275704582464431675885142257203456699521824017106512865572489394335056856203146945210626103934297246038818346192978999918857442622574670521441778330906388617508763422437645212874908097044874506151746110886860268261563360729641832224570266150587235782206644622027499552616376126765537238343309726610091140789310960308839599306099800515126566681045360547845410969385501814741169746853035494036183680730111589221751043246354129243004570267361459659053065680903489680246766758130892427514160175435684113621077378167622640827862590720566622160047926220099544575608075800366083612447675479882809160055484980491244556702414809910100408770819313996632789888869761391666682625072655189828004001061602420213534267442876261629050898619502329444676397303935240350062102384662271908654041441691626025766337519117725387565622761839039360489970210459000460545919124394733245331654440640153334241928515769788640336687212838695109957949353273483506747920679752763427776947156459653776754991327810182267819886490283362622101290224531683103499483649195729903183277109337423336398365068807776602404117675982756494918416567421321327334668798692768742041581102082341257426670514308291415936430765207796172547758999121194239222367245349468686611076376449958097175072803267763584753354591547124553216827991858809563473197715460271111386900713591180564692634836173203560909227159921654064706761545236775890667551863051358817049783280523931629035478967892985571391655324119117105168591858607937149171587144113951197559341040461866379663066321419392018993969977987585420278892885218833798687884293008468040853421362635846016730256889462671445789921514619090736172283707436351772573347429584494301973220719124854460560251691412905950593956984909996391688839916972338855281724603863181374820158188391560887755379431125145625376733074640303683902206505568560858644431682862430739318556521819084759809187739822345025531385180881722429616412114263719912647315401310372089290191515511736564371532229024017298728109098431909399471960020090511596127014667114563393845589217250106839719088530122498684140425138491116915644047211232468747679910303619792991789897223312845002952535361117776074685594613987632560841739478494555898460200247749221796412679331288888995993718248979200451323104316649817257417989796315586919364787356841486109044952531620726377204794792370851950617155086200312060276644740618391731016816772734853960302182402614587486254455235349768935042086858532175159500948164970679907426048147309649859847468594392560973754038118894004191231286053367389691995638476183126835741278348777360185234808602830805022678908893522201515206401702992937888887665301599937948902278520030091074333006679216205820195050904417746242025955703533633381092329303981580348655190616131759030195730659247069770298955603837723641966477019027354053868877886144991477493002425130254231947262586859740696372728054589306844004435898533335775925740510252880726741618636290839799017800630704724056660508725460381130048774845940764485625992839484875844590382053259543305711234729598842224973712502475837329556481046356790618320017372173634179881573655169192086127363527101583631246373003404864162577957495945631723247893045494116395041018809378109990916899362742775779663848468155132944181994550067877589643721837673320687986154936007228106992441365565210927181270150500307887689612105747733481887645745351478646862501271030415129498947684492512970075023416298731222902335407580360538640059119708105279208355641427815791145429873359590215202555219034004161579263825307801836703829916112995200603474855408810455211676520764759166491385597193529188487970583587579862742666853662785839979576261423161575725670694751444625903580874524769455920452387675061338341078981180252299526548245968173557032917545935298853016241442886356993354857228237575720579283046531344474559053720183450716511639739272838031250962931702515287350605117287110856020275829664939374400419529400922687965634957120131019695540644206469482221201639495016055854301500863530671172346841211946735377701244609392711980434285071159729208550859967017919587829610073375671005748678254048681603502174573116860731323917796257633556804301205765042596283837759762583812344893584396885064598325451688675628899863599913987752210123539316352507452737632218897008995264254025611170428221691483459038370461804058080142732187059557404304095849848089456062364136879544909901861193583785582082956379193518285978611151634891858819096461541176562362265278089685813218055321991461317761210520667871152239112344761426870495442307195727093837145296118686279159324582285384401002907197338472914780592757553710748079571649081314105326980187827682758530527361304349533140811517036460260849129984566080622064872046195189016259328014976903797559446078313422259107868742751705833864664741543998188082043486385091348425555435288731125702497530820344470821271823043531357986368527902772335130588988537688974822229192665310480323646602982591311807300311601132456801839361013752413082184569838196057442746048123400687489846688143521035378360393871126598052244428537752845247359855204787191695993797335251640745152999448682724229598805915915052444751260913278031823773139551260950535602717565279743659699775592198193404241803104456160451587734143751086312254119281897269753125171661615099240558902469950469788427735533269170564570116265667711941192424637972015536494390019970098103425017151078032929870542245132501586736496492071038792210423754258545463909234549123134161047654406956122863037634141119685923256644327021830693981391146926682115022376883417216093825356406112596858079362302494107765949856041016122630938226340896984604242555885204041279934918168157018865021762738178847871930225637063933127037083980317006110811793964513481501026127474040513755212907976720616560222640705400797711975516705967458082592802518369278046152580784307989478608906528312883496445531524500207058259115757180038673332555987540029359912633563744412797964361043905217376879236555778486185040974105593659956117811857225442246621363388265946463294747619657773956149043035481917119762847473128865589716286715181950197165638315391423951807780400082655398454436780152119320355314755649166128271928177976217624502316492541481380512205627659821740057315483073726312876723335519226015578152700372320520040295046367823694452106586068781314265237602378111328520028170672513362277975344663051836285838650613656573953342176220971001553540963921183654266961524850672927204268013953024229832174448889462247566661176903687821916623884071294267262062510220550821000554820865879662331946201917727698097589478388840738044700447737638711636359408600268693288204064160323995876504187742329921625230832229845001967907929349803436563508654168855291074519684207514620419872206854307602599751373497075768093613495804646555238620188048158349873739932759158670734065918696276029712336980974629316186626367784159060283971988512397856198038281454651529554860392810126479750620869554918682331097719078620611000912434344294100840412214586436634695447196748250052787919709208261308512738618891868091452860778186632142987737671996554641167235696894584361695911266931153820800959590291296981097767761476621350796574021402114039063745035447277976664989742369195625934510191953442853536731533415648419635102278685532708860335971004490077561760725475800412690591484273657233080563333200721127964722667250466707181446203109727762772189072190177003853140268246782905708936063902264345119054497035497459077246252528535793629126611949892720005605366125311797425485607074244497709843317520256585026897863445372520786308417014855983191515246626325975465724743306261344673076900261260109324782839766030143078306250973795904458198382750666204783760516898437477818051926442728751952559418525872948899693459951623462684209812519138575594134529886885396217222983736917086046411120425835351446730385676380947728730145053917802088983135405175452078068543497180596496831896979586359318428674298132710734331692984049774509736545472914136550010765152277174690181439356973000907296044744261926139693998213185493852197106611056031569566518412187738970389891876774524663572946113118297648680367425787098596088270077202571332624602828063347697415957638813776671076107765530707064746061460969702922402726015095011032424729938880853554340373827806836225890384969602812222430227022214148662368125738780667727005417456628100565366064190026898766591320011680569092079155498372420825403983873180717230908115349673132367164261871792209112498306395179332090659276205311987082531680648780940823509929600814606185305248690386775021902658061356767402998906121078401500947273826810150402105881422953459313997100755338920796424428441421109474516318457170670217495982295333391835780538491323029607318718830877788777480713527142590181322210648205849175684258236339044078782097723329895386734373743220744294340085555905599067346336646611235538748623080479040568166103838168727845739808502787924948498204056091365868487286402908265478289725845436318620896980086107530249593666834975630275708643883798912018425853687982972106865306832690837242327505608842642478380553396027791807267063776617889504794149479945342584726011989052525681649146925275533339493522583993701450913381818805798112130301493734947003732676344240498982265187614775306459528972975793405618511506296824909204707916637160224030308162573291728401306370089487670206933928110923698839535024619431489727764745306260887856760663844610763620095999375618822920099909473639995445915004746191089222554477746494671242904006508967303333759486972320795535628724356478058943541283773436375604209776470805524317355879558942446892682490915407799104888536828005896593764156950221539293028209921395846893213203624520836209299120158911188611857263346317947349747518177355926316617283692830787191125938765965325947156300576046284842946130481122651415867094786046258654466157389697062887642929381956546416282155986995505203291741956534266161906137263806745981965708515982299195390383091664758048108390608042098928601957192541350845488063194023970228601488499120759877005725093273040723788152587059417261919648331230546509663710886704632256197972849019586240680817016787822118864325967491945844092504776511434071743826458242014420797315161944787751702089165360164732695206994928557418274171216286932694438700866575659275719476166352800957391554635955691800783454317565264023188828660615637177313736852814910647259770123043731882223630896608385023469347587042453075946108078759949296374082961509968432685893933371214123931393050778949678199005179462221845351012149589122097032356344927441133869522676183067216745451991798230305601156572490034272594354865722506041637566740145882898029249019584003629015680440782716858236069407256324062280466141975901083881663641968676066124227696647722938286367987990969288014376916524758897573673757868927022202700529447842376523928114641370163833623880202106690673108751730945973616768274957357592421116834300478471421263970547051099872225764854685630063268655634970788552141316973712384246024430525058151016711297388610482322272384162631675008815912078361946167634317927002099185723203824170762565970372760925006616511432933422150008401465726610127773245568075475907638652424366064213387423785885154164107450773861001405228737140523753510783868609583502959342523412882921170963587033497224544726825919898808041340472538862467194792633635929596115659022267754266798725406781301541534964567854547650325065888302375959103464246610912502612047734298207628372971329195113614445959468416438765410256583077761501093820391460012072107684586976506977825851479014501142993271014510698564774969847178652766594434867993130829108193849259950473362926833793987941121230890192488091764149918435991305127969365182617251083310800437256643641963518682391533520316843818306692855939114373662043528511534411124216413600185427486794274332074639286117608735878588520633123568341189278552331149043418365487806594544316110148563249516143814634527431950466681147809820448809075517630979120806897951618543447833698589822981739045364431574607701949010516406021173991327941885738224735814431753253065491070131680852651591858011400164862548558495299819798853593010928615244135656256857159177196688226880388599768555130803766767391178841730893469508018824828729635507721046144706501510437089515115996522018939349103396913927018281431584171453969227913129135701462769838703341968947751090911378954135627774002528156420140482612857050558410075510237822165734848298987186758889613714490693127331065058272587140283228346694509338990864764234060738141110227530014877548526997553346209851537778526837331459003089733941022714877440163090566573621744806002088107400480251490067943242478776650400927018568813760349184408615080499525473305648937914380708924642625642309344578622069780803003421521530164815706151134955796873554055368014019776035224854991262075264286356138034507020097985830088997167940744225756929556530913078526309893670647149429511619614167492056328726000940621820221452825216408829816779636081652674260556957315035650505216919427077797589955999505531764424898252000130176701123032971527799441527654307270638788537244092940972027558770312627549759665652396701906886329734246179180633354240684252208809398456071492363963479352671944659102045434327741060594013249390555463626322904077993065322463076894045233657448587180935655415160597079405357964060421078791056021067808228727504807686736026460181293839114677170110185175024452895017430719847564999951630995454824046977766095722105522265643497735256100413028389773660065389615662979147046325623704297718411858784008710881070224390210043879138332127136851009406174358122120737666696569635337509016822149782976101468542809042680457275561677230032845533256653959056154288232930124238909026810452123541820840897028072333462926001860491295657524953567932856655578115867543644711137919705876695972841012100573154549524451845112785945309462552241595017473850075146097625771915607053708917292915691860731847293047548350632301730220177511940159630218424025317277088290208566258115927487061055503518926147732565736368256049947549738191542597202667375945420259696098466499713623238268720567949159358469522390470082404137147402418686126150378236740945607628886683923038590618775666324157866730231707382383531550918214647838589148044841055643807357293613946253812999017682846672892704661510228232567735855319139155423231027028913256567021284008811660619064053306105582617234779877781125282364097922217511612917920864086755739346454870699588135800802180471893994904813498336198598869912787677116865230930743457873499420551504490963937002202247859244398238211811599855233581098803673542938371790697164882153186068092246922807554234781012905380653706035576946261801138242491259170541255945151750117671391386757686567563356356391083200365975013026461582322080851311557875903154120714116408479707860453477494435822776193467020436430549025950575183341986966249005379342697195881885522769529891649656743396652124408124058048284435837683857162053249695745387976442391042105905349128925557794712984078362067419765096332386677691579302465995997893099720477267932796950289728328192945114371297929653770391145586233516057615133639174589886084943133815494938223064441475388772861054613802492344666372730353683682719799965864316400627724053813931474280150305787657788556203035293554041672978765208867388339694893227043323162644809172047522126748215691296203394919067514086604924948693337084817815618978051292395048308692249247815642703019803422842298477357750579885026835010267357860315129019830395800999779200619834244322165269093255257733810644422225981298942614857607093279283613640651532017462838626310507245250758480150688155059253122860723830934789309111818009722537818340469569032629413008989522201659521788453001017249404075546165631045550680355983322381328351804654782837691065272487803770230567437317055759930163685102689157571673053230610032141638647984908441015195220121667862444450033022554662627663619746291114525728403583439244813911886572125569762131445538531105572912655866628391399684890042057636674336423025241884191061358341171364289877775763476079131579602668456508163958030672608687517159929504614311159009790962712056426929559263560425383415313168960802220608120871751446242704300778714361491121277500329441492284008690402128019181706636875192603672414963238676964432023528640989024473073856825271158101323252782275322909108659796328210542234944857878175609868750764309125842249218650544814963788813743942228001521733616467650318754222239011790973564322778947197507532865013391977013273902321345120717263220821811035970845861573384534371602439160627272258853261798647683736422245591996799440301857164045887816072495213952920864666150953423412664220508086598902003968626053597992857223082909434347584175738567482184470927231425489779500083337480199027739827641864653317811647489550489781521435092737636606905556475429998259985287129472857611263653596367693602656115006493287022344043747513366295772117659246314096975727895026586894876540570893822018624677379898238735587407993614538891102372169066606068918651687412735571808335710030158102679068880624941648205435452210633058706865039413886047426904491223990804636294840850504745736695302216767086259754351946942033160787084554908847400590283393709254459102873274886074722847484727917721382952918287818283198220145425466688599918369586912574964728960671644989529705427602166564808482590943787472853445235225526163831375247199144106649697336918317820503990192658805533777832981276287603610481672039697223219197737188325738631291175775156990036136120127209565101324055948857109807761830926457683332215592643242909824848294860967272637109286414401255873540025867890142586437874005160253131053269040667058272404814120639242276090892442712651128935457958494621082096801608920033798701687958144269185656761249902645155056776514265997056265730115816774923342493749267204917255435372225678048530138185873159465079376013300697197462469928819983578189732740048404570090070605562406947322644896350054197593091308523998236489076711938440787413391020648495977104160231094307510830408359530315614478190067732329194869010633466202758459826507386306602114950956542674609869669701766296229241797277001070873950512443931576456045760015030928997410497896788489016216039242408429707383412086503570576465156130723736027612099750421457195710195217493086964678096463471203223172356303142638403431203842701613276669941482228267780779757087967269901398853159957127686795367786333922652203631599077955807249558904894217846936458000061185477197949284413715905820546281841205579299689866685757795493006098866761769829332960564031132202174747739593901235920497882348711350345390109383219809097546212692478394018693340491302555711254497613135556176347853733238292969576264195351885905938131653736936972880472146828880236804257226541285447335941109962692907563276461140241807527132980182480560576848626306753644359519294030941864391420622949339679252985383880564561721744538951006928819201012497416392031460063817558104750586140835848985036639470875788817335175886232238789582276683309146133964786713959106842794503759544248633374108124086370778468644712695049969994077542073714044457473982803183133574137615644723137143340671438019400526343482728460931545826626002941269272357235613384622612687684851098753885866431040259948772251024009765323845206459568177350891279807720844597352435155936656795940438840031156080456947174834348786839216712093949242890558948144254555747363924792856865372762813029856922899956057386334022654492832340371069751270401635493808093295906041445713051943503928206383594042167566263988697065943654464740355501863219206893391112090702951871912240277434015061196447501721744906843434950181842135236777424526915471361515236324954222746224121190463404651314142637536522071877947074120627144569420478481779435687202597490376794415721381037359628909165463514989608732606017736066371841185620125717500731331813572774179317856600667098054047515189403341779697601675084436500671480189887200987327330789534573331818301578714337401633005138011165350369908135400143213684398061882940338825165015317394936891105213492137715712468373559536059276081873778369630222142570961975471211893152603785031060920879366652562071065726853873111551713581536274640529606012282435139561368579949390658524197724921345220580722739261448996705942080225643176862029422632757206780032181407309449958915329953336782957387488724764624673218804626005687928084577610678207275326262131569710709187136335869918636672176557580233176133788981470372421634405097010702453400090796139419321982337133075324555104060822320439802110526579220952382818479959110964308678992669749913009669232950951772773945812471876691741660022062456369342530392196526477446213467431581886892260168865305334987104595113129077889516150453259309654304796346673410736639338109292919066877533156377467850026474288947578718219186033830962134976185100218655704117950183295762415126837318087257116751717092863601846520164961813368218720056617671009447776146042892455128063751568035544312229452279314451216044026303059101645975658913012910346071596469856463727648959569166728923985018649116506415276173107409951668461676701592573994969666753526098019069047606891673961863990297440616549264303035846690296230327623472263094194031886717718334169586503382446061191566598008471204513525931626634151023652322242489533532595916868637181874581480427582114097857159859574820407637152033309778490956066540904467613748509238427610800801097718394502809884852830646983783748135434054856118749772977219497781782253680785910382809464405173498430732365623341363366692833393382835325292457461073756378344170356616315300555418632280974336382537012272786694596286685845792034892005108649663116994417264619157972985996995089955712078776962827126821819807287369948849794076974731367263294910094925947124151301050898285414990880991886377252830331363904745383876403600314139018550530291710912889860224104311965297512829595378190560681817620970559155454086948003715493683777770840410461481260446631351501315691513116491444699089630179447411978885977914096073586843470060154449878550779814569216601255813313724346839031461208869610547996781445811647895758306172445629796167903269800653138730381585855500449645259734452042816240551792040994827852739697910224022049023294319008613029813012960891038778902193482144163998371977013607158107391778986816901445956692336092702165358088341342712152414066559932490593368089591550026391814056367693206383884089083188003565364910118183725470113023434635856310024256778916010198277502148575691798011908827768698531879700924521547903531714438118501189630529255433847629727167519529673838160646227868005824374317581821847010008846102492391557057105440428526482100381344432824525949010197205835274220810545054506565647404836846119661236067822018445167527028706815184253862689398549874477259040695187111387815175173994535646651720350087704356051702999821796203056846812892638207705752972051584064152987729207677785901498850171647518812712871033544390620694188590397296493855000284205608623850302652123432236453805099751406243522697279462902611481469511759307481062124613321034188930746542935122506034585109697458165307406653388947066119017312481403301431307649063821273459127240663588366520505271705909448030405929601461557471432451741929099801115876841060427867848503941621124871033569850583427472869355035901302616195023496275991382795832638824883916185534954107168736671497807626871282499012407014390797379372169016607172689744378974321658729817300689705893382859971701815501169059072033657838443890532066216902526120618960600334253098994174009100793183000565679574171416967066780414237331264754020329811861896361307253189525450195683872037946993821443359418070698741879038242287780103882387382501833909435754161828284346933942215048092438114947248026842317704107622524174764736660765389161636463581008668386594871599803107348712273534821569687369037416607911822149188276313969363914596476733832905362901054837805221700869866066250884930916467307543833214214519263065365848367327888266869180687960909012853271884137618693372499443699582771300891947955451452874805338097629826581883094123048186478467226865296780195890769504226001287487104842795598587723851265731519786668215458447561550233446948785873249065732176985034962493547299573744351797477069859585101490198113248046746828430325367218231693672135225357265152300315007076029750192733876991380340123734744862167272058803147662203355955084239612071667359426915261991922838236770538580418603909362595562078645546788854711207420652328022908947814004134415377457214024513584207047265497798534074079721609378602922810573996057850612872131983839443230586106622374229301174846233959388995948152128510159464514182969695650405715506940498966475404949617483008831463889946323264081341716123572362227216250205312892817384215165487196838270239286591774211971233932064491630011752114299753157505769113617533178237906338758108827040839397267274116996636223693754238250394150485983189748718007487513266772731610898343595748687411506317358837446673471725360945358156897089313753267681131159216066179090589889633422901844783603572884339292060306087192753134239354420099993274763820227877495565335782021443754875710754007991635012974271045974568373609429095401690649163145323204353033874198455194489860534961773775700753869124375203302162659331813887204819627175150078626592823423167997350294155828019281274409450952883933619060059030958525086665893172026426224042435653807956958676701063215422199463697432636811181840929491275279681510414155965594046828057227009244072643634488705170611597301099041699632933183428310558041783601762428408979032799955268118794238057575156919491975661758280850080614714807100322794272523952442757682617124008123473628021981476699891751001473934067926651353255566840600427791944618386266731534890191370690145280799482041771061665769490848489735837505061807779932957195221568326755747112493175577369353022282604197383534157349651276918450566612444200322363360625111087737734715404348551043641580559215856844806703039154262446187406454096859954111500399592318459576762302911281543993190421596187567059276878412254071930849347540614576760981662627648819446481139590511470692193109891707252336484251403625136681904912618528623148816814124006315354239403266561015071407662813737127663520654848357700112966345045342109333744062299569058438606039944514426149898215521308950189987545709169435358990803706887222213401887946907475609172308355438743859717937708377212150431695661547588593651843661531755134879318894974875026954751280784605951970183113321152369964068155000271718314917065246221295768989344076718348226708623769730338299324354071426047100734927025933974787588632739014093766476879214530157534589697395732490125746306756470220840131843667298812404655832606136663138368514755697235320351252379933929789275609231583974282308412172584663706891221838822623546078276205215946497906570193549402724538044062115310225412087837274963149008349314660558916179632569019406611673452866875510871779769435275879432326853853542828224932759946035439367907782098773616943439090485603580440590441067461467037655530139886776198839980181721626309086334507120411460392601350167829369378812413907342910906452655889909939074216297615220227658813343814554028165913983033152459927603289954504780562224617896058453824861446329573663207235408121122285827398383598059787734052065496512748676428683395325158203550819194490569310336042825199951497763845381056918801375099374565742506829922334274501831620376275013657075539048481717418817246676626311219695254429119162309158400215815742151733503751878503403458052829878729665662413549309655245389914684541353536398682812037393764578486768336276131572621670084873346594563080559341581702559644025765302495909302249199457483667367917680045319443302238845835681141049337098235712318249947973093721617688894223124637003686034993014006516433994098058172371496894176226634436421133909025923548311465157697147320739482290776559275805934739613126636482415745855777281110836813089170367845863493249579677954419774029182245307808100105579829620317130644033702450654191459568853577499203902347120052194282027173079839024549214786186674100265369025078339980019490637741744757813229342067104789622387411960951207531301626998306953238022751995456570913136504218432085133440452272386990825281543496127813341453094746145662302083540723914744800456172795640275490210771202498488160474645259525355536387287579091766425725118044506034234562333402234449163520025648624891861048582601060977060404651317933060880445897145287053361523881463403251000931288941719549296076632031090905939491058480259545375161972883274562312552300594225246483805333299817244334345783921673929836853329067184476645167127244298620117408178165484005682791543064685515252507003024533720334154685252946064537386092001491282498492223068726170335281906432743023746278178310393002316511424914331115701862169744499573173868575359113648700791018348615979785371352734392372229709750439880416061094443480047752898644973369951505942098177072161470693877571164586158243906197273566405612781792484235157893902864694104539549493173084877491154430694831599263618915856220587114464078583072999786424756273350307938795819981421238071668100199622296561797164919358287070661911780279877425222489703144425980109929643058249056438467244250887590846847792565401099407016354249893593528791882653199298291751343604216688634761826634387136028205934138848829256127308004424314613947757234434828852987553980517817408256126400279452610437276620129015623329498467806853781269870326610642273471526209785330118553446709079168354213689434973614958626581425568801807186665870966156228630926257162125372661530193524770866624846831223502328800796406768819716298719260159489579660105358850046655859353864599049730575507225314919056895828140357946859410391685851220690209454335999315523119227909748403707985848857627344808137952935255623389158073376501897334660053316725817390320321656945487122883845438645164786454392029411224084347869029029657885847037830805081709486741957938987974745627338349977509384322940523523213585294028510263311095597894106791318672475217042710908346941611135616301010308057994901801747579673415950843234372028454616242149882651122323496718667520326917576962961984731409545655288503820213731798361643003645915169207533406811937457639609749053904715683617061744845118983117842623124856602514284451956789404892376710400559970630039668572389884303492426104719523272125414583761669710572085988037194854491355229088332501224015028984343283772584631861761680478836049144895367195618065220292117329618054155126044808418136178801403183936504884298553552773823914981466302749053551487964508321217233791436424155837585928461483428389931030095672956210043396782228811606474210507403444571787158894864678300424396030211277853707765431318361482137949699474215631395024957707158149200985036460803479580031600422243213293290333178382844530937508816318094075970123322262208845592244826239762876074976417639771077905639838816994294541515068670520601389978225670520758502430657889361757756770485825322594767628162621936218544447308078638919720021263469083471937126244078748020435203410798801487118887590013573344313385212431438135472436973186586648084864075843044456882340698149836150626588611547770593488511988761540852649974032662214440367605472369002459632433621269448752198927442026313281520918483591061615133335646772851536843897489240745059602164959720104038467309908930248420686279302499588391037633763033989219924224211913475263300932654903636083014486411432176973630105367120759331962787158242867306766682713227411963203875634268795160068100833121715111293005919532958006708598942776815593570864528327664890056260045738694836651637911106902865153355518818918869451394780252999672642150892641282779034253264942229561219524831775447871934314332620136833073130926477598699201910809626513637831815557664094461740342731732132124973993102165911854200878078404674034024071963472332351855513165053512719129880393996041500227916849214016451006360525899146576588419782220665866823272429555119853454233350797279896782021482310078785630499955579538359179927365516069777688113329361121839809429289260856063930630405418270360435203131172063666308495054759915766177993698916317711298456823228371556273912433808503510287453687843315536456621123234417159220122659897703471581441720830162002685770765553297037180613008429342551380614294230092063932220267457613779007742520298164675190737581237991977940306195009853744136159576759836458750777821649220399755628216020197515749817090603824118073065049840291988621547495259744230634062819707019672856774398135028788429467432203286545843399441916748943156743564129658042053963016013828612689546346825169053291638627332136771365691022230849421456710685792938017520458944415040248584706419462792029112745673025691536730189188890375770856376829666909366533610880177570592398845536102261257834254423874550807641012560364519235280397731886768047236751201557726669043281810646117799408053980485025062153052062900567815853370782797815805930837589116418638034430767672240669176862768527145780454500836707588558055000915925702739145273707712148704437940992343869310894440444727549865488508084954117280195700267265785915814862323947712224357990760258595770228513332371688413254426606968458164892875836510159637663937941509810831323038952739290586421200379270980250237991310587922557254214685704904207664806436680185048699637566811909889166301428802098970937184336192919342562225698689709088209547738249432130517294101490752555121210596884192896589580721203289547592335606084823119732118843514822680262811331286185370566252540535735472491121962373880919289769313163716859177452338459850587142230082731733026937191225214836510802790129350311653329901537920565938382816466311993676536380850802487356548148199446851280258572647616719582148653719188442177574227653197835775864145654910321976941572835165798055160782687477912213819631846942557816520808101869857915253296318766417914889543736854425152985940153874720872647547276933906084550750898567567402384163000535378374577633013329317485504830124016864278954776156080133927445220818951812606294717772517817783442309393938955144511846613252643747691745007288548108816526658380799905751839478073191153739165085578475667789885506186662878610498741204207086729140273295164134243325705718385293565660771074894000783126394392927150844127633795127693394626445794820765311094957629947767749031392812615091051606865629307109655749512956645047516906869484952549831446709091991832332727341734672833169998298556515687680357287969565814553346310432446060854594684990937993876122313020549210716640636897850321788305925311149730957148871066362881276539659227335440355470072393623106505677108341744166951323483034707349014262774856468279972319240250914485291728371018185392638616865817056669623488487473384928760248232213721661621350404839257287247832825871218576651209239859529700065257964369460340853124658036090014797143691360151271918133631497987240223164374375636435739727081970689798973694389985644119824768402241890022979093004855356197482104464948233866537288210646695130189140234769253518851545015867399483014689957823276783131868022623754990474855542739569328728276973110114975546318043495468805276930876955607365274153560554577265907247977823441601192408024745925018351398245568883895871928656264060027396821540327628633150759048436463488985887665780539534290694637436314946249495539495977074122849723198518896123527274127532408414014423781575014610729419921664800489067263768516283364520305068150744891758202205886439027577036576957817102603397175021626710615148363777002121021911292037103557971795993449916968660718199204037741287938582943342940632349384951192576926327633618549970624847319002527395725445751140382207535027595223540423257432173264015569141146783707993887197245460114372939711137101900530031496017287084916930614904112085043744462498817542864254843571086615419497241375776386093491231586241894153640989976886908598599073906433007469288785069195919713154520022198734741267956615476527935801178869088487143885736889946628747903096440510652918905235422342016493722213474148854988723601837297883430992927414231429643529358135182432721967568091854134147854681313537736339904804679857417330178366962915255636948011590254850357982238594988713934896211653133770190592998799168786225346067828124340265511720605261957213818754852681939950298580269087371214948574538570531642599509126993369896659542808312892651481478696586904312436351709282945824111305822062945099818589355456678961469317106925377196076703903051215922758953034193038154215448313246312625424696817436052295743169085767057324044988528057985312350239251693075548989259455799500538539687872502088243087498922256701699203879749719745707618955249503323019152135315021574551821073707146626032321893489195587131032723876755663806459338154266218659319340618482178789805950833440059847830524708035576812946068323222835000839300330323032820040600999969924695097852114364971988638979840123646512721222876135393584481911448313188835008761940275822805761369666084326803450896909031753040597176287425005783094430705234659984321153955822769659346722562426623570674316684743835500703569484615730539768674656970303482050237066165590814259689217583882448863626988756897279379378988083210458923030432510019160492212642082818201553875760420982190155207206094716337064451465169559027783765428725636911618873349410296686156913991208868523131265529527161394279019974924849885887965361676792582795742939179993347026488039909239274836537128596624579256881340404666406437409264348019503387485808449269344178562864128506914325645250734027894754532945684822324606981485420192492046797524212580111883810730871661114688305765286907052329603679014540158886331401477706829613527356084429774972714105882847024794962732742995541770544778837295467023761148161988030361131842028571596882370030728638736310623109663554713561354949442428882746753163069399669017770761079381137831874361769059523599028649877067421227736960123963807009939237260936279886155751124160925592173079922645932723615253091503584298599349951334259785455339929573976888932487832327945485093915605188096472844075149998595773968941746761453734809570757928524613294404441405232657069380830236759979385236613170254170930504601629603880348542502867479750714457873663943615580833586825625278175554228088283451814662684167307656157489118173577193778225377202730603484379287079578746576191695232896456030256932961188901114336454621736317294981016453534878448980105112137693803139567662742611864789307021250071613936929016712210630976466142911524345932358298934682536276753919526510172885485278803447034569646372183766485888062532157465528270614582141469045652786469924856052266164035019201122668533082107129454282720197942866763992108604597640931307481799892649249859025649990769261104570833738399098664109049789616808266069945662092813944801639017019426544594787850461064324323398320712058155752216754982900299334537115233055437727723476113840463452945194082183489840554247680972437000872869086971041315085123406586057594685202920650525573649304842907058425465246087321239434116649208889771724236067838318948421517162880529195091081471380863341672578560476078762504607459301096297466120933011051828113263524393836830504260795797614934608105336086684983783304380451199821446160598566616939994457449234551359163674206216342293036519760693838554334765801742626971552807392681723171854330371372359878772852246354631709965136635163609364643219872880171915864050780855013633867328216954041030926714657540507705234082777704924658164173530302529227653514839787878007923598457884531864611585990744910530217307039372580219113526964435947667430670774926100608421292779898817711636980310797637900537796085786936515006207622987230844198971003909720780316505988480164871532020742712540480121720846496652981228050930080619817849552281257929215683597169255312521724724222571377709237071506877265422676224773191901535085416576897250893842051150275508154701689201324062830611299945155691300418250419294636818488056667838476114625361476855233588885196837146275676034913325804233090386264289929590754372566975228525085760121940523986792615847862549016770757291549343213558556274464370262422106915318136021092239089891326903280528477649816977814840637519642664951292815821058355455717279054006015348140860945209158326685576665238523167828025735220258163115965448230171259315075731967265317671348539056714559022243940384887338094993995517230743684610499381451942617177770162919970235622357029127432851831045629783934353385408636797706557376915866456659987848605776577253101190829617664114383660424703950206686297064033755094115359817014757371736866071957041411340936349169739060291415811580593733283987969771014833535176663882465349578800043530928915752537391016961627326569878609490451182724249953140975231492656341794799456468190606802455082454406160344721475121030491125022127746646229577415440650267645712865950367533858361035061370582058687165238478245795175225645312143354411215017517229880874886889288615313176840729775115333000375331377924480448164048437709457773555547501436392593959770907067662201640057807822361697218431431693957871980692720620057627309639603959223644532650005013729703729415101851075372874151283100180573172221843204281225933556344937936124534547393819302787107786894949855236190492645211791761005135912403419002202444463367786530546521096404438917785814241759828202879248473427286452087909340771185871456352525090942432829752732320385203516875981584264574367627522908363798804167636172377614892247905143842826545952319644534131654060628298487957661055085878967845000723759644115618032606158830649132118698142340173731996974154923146603517503702361886432942637436285397170260428483973817023855010053582200720390536492154347693364780623838243111932486503069127630357710291629917852234760200500419082402415868401074989317965852727742458844998176468090837114525591112602041186969581476424240375434510442923329038983306919986630295590765121872561627107233568112225093076479759440259659152107053317861741339928715355391848876482711108679006850862278302778224241556663872549230999458871366673406982232950511929107212317512267810990366724121129441362780513091206698674527213387966995017535648968817435584631052999728905366587407399024828145873925499689223421415513649207818292392732254039687506541059681510527746721682852793157285607683236332565337093586784452260552922458858971718579543763961162675142017605333972910989108686989122824074064911939683834647865183194898486188901773420123625380869378798590819397048989290174501595091671915173144141616647138434787168370399176650891294271510671027494967948900047127978870765983487409075463629175179211471219291579985769560900034855038856434910826155762736916063238465462278519286294319193152775511325799374931015312591408316565883576652216107358443963205504810074834737407073026850109426686039795837108726067519178722662428399963629355348010558947855431764402557276224667649598099493635800239529518804838582988091074795161172774916186446286073164556820823931671133940929653741949797408730801132630207175504769050728594393540535041959901518086577655346918780418267158885813649874830432145007848314377269506011246099162002322850888978352225317944458327177410134363502468999361402868693603464515992103435683404653704192820230679045928412212758073618469852732800014660806920988792075710560776369278350637949053930251003258480436106135398181595035602966693418020276257695231833355717073432119796868965387248263751489671488914706016055422986862493272206694326111812818438615783209324435913689258777099312477469818175474569949328536675959286601243520697591423188603367737259619648403971341116567641201711599815984607039246524188789939932457316667424327046240691491906607095393414318778547318319337305284664581438926256584338930278712716353673721409337739389969977285217987538665595679024706415482751302493759720719631706709190950933584895716176404205987718695992085147064266248259328132673648580572340819059364994146919873578616956235075542840751829051860650500668014825422043460494941432305011739911083733555562923660401446149768135285523729380740356347829583906402686068602667979790257077196520352239535381285577063704851974669818557325347531045368134557626771246785645228534854864969132492102635045510252808158754031179544974464514116576477501168679451813749459477628219706843706769650600174222076974249111831864933423303931976661944331617793535380864296235036867316361817295785130287730253677234296170202296094431535262602526325332766712691769440484959597747722455565110200607414523648875532055046222614896616855691145542921679822111507450826842197387804958728680335685461890949315319716208662071354085725194134209469388514602845342958346642756753215388283910239820674962488539297106861182386028680250610056687613954354146127896668061094708070325264867013996496865946899203535520831927346758999048340341625672659564041169477815803411355100625669537723116327424443932604866816114754775476140509583404865757184501941822474799593763180682451986243617130729602801341979235118573803813260208004249776674525652113990843941498181165997546141479055521843928654172269496388231755964724119398757529222954194840205251798517191831240587529313085368348613993451451435185666240169705817834214910961229225857948062381740354955801482817839862880326254142653111938357429398399400320868484776874218448146147361507381957721637179189549915498704128098727010360660015405229829746292326097702442480207497222848017344824158937569635643159270861305333429505083670383137764089931062913158068688493927981666825835437525858752330044804430339265228033511614976071485089366976118379851752648867790680531858534380973155466978514761108752356928152107863333528171440198465159669342407227793213151529377860130646855920455585401489758657894961180317002550383203988229423135789372068454104475881719547348524138930999195017211814506860978869665644313259303830726524643228776106399377045932217848572915327633808640039189772447513179160808325377787359213841248695209752304852752891099345605911028276993692551153895291908259305268203460608767208869248690198672137634359821473587346006154131386531756223355761845148528127299871933176608128266938984828787970198046310328124149241444349334449602792263463606443402049586449965555598845463114998869200141359757944219444021099732907256406933789877283149235685656959749298482866237648315392164631645233924165408013030264022330331932270003634690622073929031029966024706837389549472263361972634140262727774158347271748179530391022068528837846270034397617189587789752553192400403744544548822955088136212436062367442586329151191501891477581141054557692289605587494217934525338128267894689560701269521204181374884506316042285930914678430803024059668149203122430944761315548402072834905998432783665397128155205464972134655718695465523185608677781248975764192196209200242023081007246077186780971413230199061198218930578024114754438440262694914176250433476862716379816339647963566705561736773974948466953898163628630386997197969198547993967621068637974403547320893990165696823901583592340479435963538139691893346719186767896129861668867591049670493164576955801706901362566947711349555455712231445490643043485246983374871087250515216971170451477472822266365711755531014822358616333561261405206950172940675196421826458757870022390965337504748972797104562859147662773762070883925944320537213733091587596976753151491236533286517994877244848104187170373044185281068493221014863381188062714450581478114689947055801352925148017572013012527059168448188267838435668708521185844283155132381221586383641189894017411579992513301812571699091768104144815606337286892076082971831632289450785309842258099776812851751768939622211865979699677398269683051657437315766964824746283377772289421952163302867363705466631816279265847160334467180184071491190155205869005815983668102459385410140950119791884448981228151349687102145418844086816357683176179288143279393854058598965431982422036999380916343467169253161525816377156188622597689761946177086144338619378235019718920790425888109395860294932744221524207962392798832737515194214801715637835954546270362410043434546887351060211560888935607317055739876001073977981675857856730829497923112060530848485756583666011654730036975857640049637657399873717195455749814042678636931520991541936746569111673667834481303498215231184440816538917670341555958903311937761470859378121754321347430531038057027491943338080765146969836064409866089856517692400093000933661993245068602752301455708945413435023746878971411402193505514340619212706427718497798525400443963605618926415175562463404992283267908098100163057265574533006747769804742684130641345969791950787979187573607452461684876209207844190488395862391201985710437844495204230844298438044737734907908095779823278229571592378462141697319377223489279330618586168060276023065608960731772969633200921988328207694667252494901405620047614462225190780027077582325946344566885982884768854531564880050689506084527462025113054076929567348219629767081240298027767223904130599578033228965654729063128934883624989045616074148334836574517350762906796005389329504993367448173397914588435010211523275367765563180170584813444345794597627666037094892305744669681677099494311397088124723586681803806387553577435228703143509543897577627118812905266927478568166576102308195589747055707184477422699370540516390896225819359890210742136718433052331171453984624455078232504531459438233962964601992452639161130436537042642633281571557619861511405714418925002382903611311876938704677186821061507294846636813706896837975539903011978267441546357597698874797482880586934148549934580810480241254748498670288380270410551720573618091294060147015330902886457652335513289348187308347705304507361014765722791078128135884270859429030058651791631895140625872006153510144291838096431561379152651946338470833765831953137754614766703298618306025623914038373713134671135151002184924843370195963885483674688091965485185427157533682644297279976545587989235417200262298700290387281423339686879195914120928637367781716774860745341661089764483632408966043342110093949618056233037746119017957103006638880793655555804124653259438992455200642711826804772415685554936425853085031172314466268410176932354603867417390475995409340979011786801453830101120288607131990307983349243797190910685466550405398325294954408473619579229037828512903995221950485809084210728562417667343387086832887782685784057060665361794204593671375432304344821352083440208937110980267182061314088343339943985158774851474964856207056059221258937629438750849166390726417074569752015945033798675624747520126264822721845501251658056464642293267389834748475372120005887345490824507362141276097868018899680175768745059631952636323889917511664406470856072354234229672037933531126607717907678952723473532415192778182493382638720795824566552226010928921717578696270692741871408749772072602909798290169632787025690070233840537763670239669857046648512982085790544077205922971233589926787972126891449519068756008382847509149610697333534432350341772997732990454760242946484658532032371286859736467546916022736219863434706453978533805942807478308009722675495737560520320507598583809899531623704390463318934566713768197465543944280337382475770478650569518070016047919927145660290426513093248428356394601636424485723997511950003681290326417553253910993818249963821050052235681350581458005743675328319853673574441801808691354382879694489862602994299053530543846799779517329429103965062095561932727341342866893919728161176839439017969057584970062041319241291365732952644317230277619047444623286474913245977259877905268214586981500217565171188983311816238442248913846191616815387819032585605651696493949869056127096542903997574155714939647536018759765121005733350148510622104791677569115847785618107118709992391545770269313167934836525802680555519115826476940122414431156460912261405685272575373824215161230296399633958114378043909936378841327441389116870935255644262992360706556837877695762777656507047298649194432888380069041373134294577333424634806586775324692387635529493441478654772527543113168709960496672158904696879013219089290174566301981649482327270200305175553661586211009114130239354413399780284998033469498183009144736338230910493697708298654675215102391296315203417036426258828120267086820998604240831171250538140007792385557153749665291716248078980539773509658358991768461008055543981441004600967393077255073015124905004148805672944479149188034433408795803806836007679763718535307577726180636650706229669192335167321934088214365154203816746485970220121181648604922279704796669767436932655724596304992487915341770220285912172019451842724536515830318463394562566008369271934239073812424778152723909628526098813173998881688270653992750364574421744157243243952981824080367474867084231375488446510053643808472907650198210281958259651546159466358955269650620157758074708693270396755083615519961472450964471358073788476697673802603655766784064080909176431692990536432040633057812838570937745876766892163591189781311657729455278308112777476293322699174601182252770048504352787858779460047548215260040590044256117066477445016176110814171712360633341211439996625953173714792071224185455780591272226457761623503099483339651128295630063384487087069263686132983704376102004190564896597113591384737895896525660058687436264760667463810464229262526707281022864312772434481015519461255231859339622304124244216453466434652952192675781973609009734396721458454725019359327765690305771360430570970312388643945895508649438612394837966521314736026341062685265635977826238752690767402712676765264551177639235379390509848247007099268674583507840920687614621424918218071462066229222019861331387469178687977420950700404765198510986015070939590519755339082400562490896650183452889719383660802781167041684286998684993703338067720405964778099313338559289845339383428995960878087516830201154497490187417259170261803265358351615715954460405269723992414535480596811697593297087064287525900484404946200009584787845725037659552055300755058935694012860580407252381176643331121923805879214087050544244286761691589925643772167267055754572496475442529813641781383199369182351108755173340251412433763435552286529899492292088400283854040843966117799955584638649437319033941052696764720722569282388196286055525360548336299694222348575299438985721129236134862251943217293749013731089357194115535040110496571133485602458123592353733841201148206948546900295773789068279717710259125976322769944259511361360383169306950690232712155045808607785320747452452586878457590638149672134171840652005743687082601463173385786393824226921051793889732349655989678865941910883392595399367941384207058262710762749268166193005845124106254419635721537969911974070896122088766322535960645740544668054556530525553634232298184274824855525594718876792719339571845319054785533796941216280675755879972106440785178930386524430168912345544599780215632226456961546070935527227653305142446758654273728334015935850110329879114213694502759317455734379182817467377372818058259817834381068908601845599644954991485981941884113276549119797030894207252348154599634394654153985962840740862423126544168169514353922198509058210150182818659854969567110268824517910807387403325409203065255128862938255835989216586719623687430305732674070880264818437145442594041906629763600663526001074656448386076343568329730037868325682778183242144500602143822920512010971434969182513133170291503659873505426886081881645456351478826623140710043348369527681144806766249677149507663295971005009991246612654041162730921942447388633490702998310530116426168492105870781469997454538587804580358533484065324510859764724867912648356386108893148634872614872692501570462730384591533616915900684710330455736400042501803819799636035992576484378989536643588002320056443651312026929384337090598813093011156211292784317913827791220025131655180127866738225456091686742929646748866534828316704024775603106132969665530602146504757048579637440618815832133324268116247959250779670060140081835302654470747440784724234348125484000311144473073718333139271665101195713059892293620282060966828963639838624925589162240938027003418810127947424044650661165217565645734558722850758869604173995772522118989736888516456183966526558437454555820107468732074743023621794260385053942424393435028933551749018844467116282362112278425832404880833068710406869918893484192676794799553704304364635324990226295156651984852059542864938115843826440302290061136063829652262407036640686582803030698977721141504656758850467677428633233971318175513993920458727017322259511419779095296955215267697847194847246497310332087030063084383739894737100957181500599036806551000764548265998127768921404392366543438565111434831928562940045203521665357399872939600924445389251240210126049995686005996276920317263761754797640662482816026457305309208256704009582809844282181041546348062657114839447097451163583812148731963006917176820853329748333938576795957254688699827378656446953663014086687695765589651602045446862681207338455268931136572962266903922285428918055840147222016892778706886552730644726400390962876332772898391069464213168008151734732522515612212006080991480659524916896529034427361646422305378781427232863756720618520242750412893767718376656929249139267758613530055796097502430859480494242658720154361385720882990067545047572827596855474595135554022330730219420447970641545240747624439398889827014711892254834156737874019189017543781408872650829576010778688369748748246172669322789039033469638080040606500203478729178609238319483796331020204580855191643299513762727066556911813891382124151004205007114551439971903081982134748868160343813301955866179831136569544413778338963307840067877574907653264703815081142350886316510607877205630476379084940320878008532392401103170762152328946150563651802867614800430482034781388090030886809585448345184556149663038076111968153788696168526426489876379699005916862000121384025834309558847474688172019262292137992638719156730605993871256434313517112267302639587591809308787814504900320626479520516128590388649059549195699901609390079694342842419699788573296928077500741494801495964045995360891743513571809888781091628399470520917764863631788052469903133181444485502939907081695452878656081820094665352255753559542451755371564848756301538490443438262749687604878690589819990261175356821150211790498728691155377092089407793779664781117222247201465312782505013946122530855832312780049778355811175126652057949222910561720275620264480969521050380106778399875108625408605423619177097851280617595394022610385905123413146525986770779000310279666149859038646959073725819158834315755509746962908688477577578303924046646232510769884873885916977745713420516140184402815140808237913059021789606537680195246180944160445908460181066505663892869931718659466389102066671531244446638076178392146736265971756358072771294686264298877897566616209099216931294136617881640829420126378250981468746442551001556158860943356777256116836939653920787059522482615867089313604227334276203774816746205407312567690898102610291548455672120080583884852545429921441091798934956774873518850025043995952529845864431642494354351298376275126874682741971140837560928851257031264962139743995338470828065720979478218333641985065107061515574070845345759900687933412856739537909001289022316655660004940797490541656122878740777615467350385484571892387353939902260050601994904331419970659651557768859453338174475117135879394406797197551157115033341524501611818594490030844445459284159445990711398579559536891679980752141720961344414609245253787836177203950617207127471467483775576623371298673136344468309111015547889454174998067011513444839551418369312022711525990002823419413853319817636226008584076341569958322747136351257219665011050210426058438546289927389515587182430681700257002491552944328279156468058703870605952877558527127119296224626853498723555429152430071309895940074072570404917863406223315880452253237325048856208687828912128351689459845876871389332852728809728515846122359230620578064441326958201805236740058549310444143141704030311328031857843462627234147894494374209311465031159185517420406727263825604005314317768694649763829702929864412070547458679036555521970918722165536126736672791720083449223833800584863318588835758040040732632100962758594896489962708761811923925958667079917465073950887086903270804503228906052168916596148666540157935495193856308242936634071273911180248431167517667328933351181370032290821864322203855042487325168735255361309104915263153203017031839771577050061446749478828093341355554066975831559920162461743249622837403042166399617627780943834595615839775055352384356868167622155159762568950259890095410149406131258172476685347495381358084634973295410903351001544636585843815695641515148513187485922136521582839040179937754005931316399702972617773329258191199369451439669068888303498727568204520677884492202328747920187915360490501809406950449263352179556786453635683412385717712006616872989104027017462570744261485416185361906245766121649240333513537355412067347732463150493595018414460169879459765221501251985053639766219511879384863625452318354538288713394164446953955163959371288987429136694569732956367680045101548670804017476984943784517752765595479596682846561430417990198184955378967559506474568511504822575319196212757798883580989609687727529349318324178035226823324827897537689002998112270580040123802523629417487734043573283962136298907931582524174328646805008052467603479457176248321961768647857473323565877331393582375470005176272063643340589074470945675281052353339093768093920136068711413386805836275373268753412797566862834367057974248928249498696656220393373127151127914715987042582637626258274262565002315701653345463713714424749082593511052750087934720896200180834072572936460574440630111250853837166963840007733058057738769693140015378774540803888901433678423615734387266524449390837626430842067978076018705896654346473898747952344015474371683099342030407941383768182898541516677067449603826256334752852591362043851553376150728106310041996633345754101719756723326566020040596738403191613583595925052734325585362474092149939714830263844970015770131001221986102125460803429490481733199040018486068698476889515845827649728006841164243162192127924694540320695458505249046988179245120426692934399737066236720945007970331601152070800632782404900793519171436345046229137516282089435552371375445992176836893262582768308011502094610655810703204743822309854490728757785844262397513461122885651917653826766183192107281846937589337607810182416666340815091746700416914905077645310248843013305371338388624140821113278583379005862022574328667319522035918560525031213547610310540063534729249706895939065586773107392280237309047826993883892473857738253493889498101803366474963205735346961098545908670773893476225806510397271580201486202536075146121476491493854327114775642611455238324714982319056171386021341756200729987360658901965580659584027888485926169393901685447729343303246442271430637653458460699267208380102230171994409882422955530946643258146880668848503637447992289285474244796342772158948424952419518594427088077947646096470896861265166343153193484472920461829343832236485316815601810665693062557350407246431829959935450741699032147483870445766491093246050333398269324391646751736143967697927330657697072881558745700718019158284415456484984606904366695066792635298227056156003105194738181758981433215469474667299843846499932244444361869067000687962948923761165990276358489122057767501596862538928253014753343259695170566375258820832821069139215108633546434209270003917508332811199006930543865407671367123914022511468203608919776003418731531613489826312561489193676897498778371197056435222454122925044385317254374520502018527648982560597540313146668037310789797242449836845210643041573116803639045651096805863019963040272767782419139734886299101804684665117667937951308668546605247085053469330964899966067267160828848711952664370508143361270934416877231383431463278285660471573790178341250784396150106124079835946400223931817612404306768025066518291435205651550249651594283227635850476880509779772308445219409593725417799007325225157574061356123060393696251485613763676738550013201845094329213646301882093037708589791164651667036488864079720432245376483671790788563287000332167038105164378884902083125458765277415222756477979977248602789879521233744476302196110411586105410859997307261504955854323126537595924099498919558677898629309735192630204654382278442031697442096955474389902279638692073297778268939747886764220663113483141712061890889405027231440543320170357467885607678500036191941698206449614401282117631435832193676735245129759909980166119070352145367232848138289045513555926424518925414114274255810892299598167372245774243009221947351485539154949954838877673766098762547132520405035259538046874615678823911085391306095545228559442094072139274732340293066964824636522962096565443803576582595156593829132449358407329142916310569828670695348976461883736315373604398756450120907151899797722794615815539665525915243060509253213751222484425880987273360104459661895307025164553221446921773346951539770018896823795345043310803324881438225139626047799396782679967163992255762446478247857344000479995984336303072691401959625612628851959666786009469744069344959134911404198852826218880510230074874057760225619249372137407601092776549050118697339604791399625051255841217766970012386228328107381351673376067979229553766776782904441676531473552930371843131115145388384789989451666459347708910812398975598388131111052495524772375749053221360672967646208045957619348558507567877043228807097556397693452378286997785285503628121969876830347465188788273588345981973238698049554753005885659960724958585358969698028821095888983913846383323015439788610174294080733091140938821234008759981415154027969700987888094499640921045455536694073595227652419323320518415608933751749870361259496178424928378254621686222715792692561639369991430250097703145097181740942802239820652649035945368945512912289974585799501782338258758456299227982589621697274691680960860833335289264000915630329903211773997859983413289084230821261494741956338475696682622787501693913050243300928062880367794531995879672821687581961415257133378712399031542639886547025998548357268805949359248369187574011491913837816850791823625459977022046264157915072048692263659560539566569438150062423793929202728048331596904511393279347046765004443601876838710728565683724284163117366326277494005909451764246454788426560726290337245459233332207849664311649373479314334406099797749291243357428601910742363118534000591402885723892973200137600337214765374421600152243784803595356287336217487855788640912574315341992006087660305918231289435083216761232912775870710327129719440140905722422296736288156335692535438012523509140692616990027728186782013517995502583887481422969492951965213822439627789511630622131025176181667585456107672577751702775021993831085406485502830856638488064558113449513409787698200812109331152508903356964906285989665657331399858664290832002403549357630336731146143862978596648687291077036451300377011662555403076514486960969604511022299702112733484794761154197937569549536401117627241068434341240338707086906383560954564426473438145684973016546315091559538964130874768899842283928375659195737253178212003310252142510387964366578938664346449875725661559452030121084777328010212787017137986810267645747443799285096983075303660005063678586935596760291274051552801802955799492792713014510815916351858690786397488027811626078522298796011886622243885633275897586991471880614450750334390651052873826805433570269257192989512491412768633897087123193063060988982929596518983682065943215522798877594681648672228689107427517735342404958830001894259961290591772224890489946491352458718504681341239256749535150710182355899959082552277140251999494234746937762667588567816442425353947698563552155571224259293814744043972449961761679906021108071367114942682764172839765994526737616855053348077668696893750342614654313457433603732131598342440879393289333338389887049742643713921891553935911314442053342851934843959630558810956034662253899429258975726210017409409978380497029351446228818052138034269861132568374849325652934577089844802654291187091464851939630815652095028409503866192541762377578494096597743358174478193057537454993277113839418293189924068486641846354304517996388528190693426734862480754118215264655856685392188153263107807842614532758384548909057968124923534954974467392043876815022737705140955216162364530968777275400834534716180657195603894033720363893294388341973888849008429785827939678758932775494592163157078369656471179961011031460572153877755045662008210984220605673027465016448452332242295424756136912502229419869380848467036359581165013014208496547347633422642997860714980778990360631166018835381076746488851055915025342250829249936339395000902306836322907648577171722369692089287734761445560663497868701213061737166582830685355092244706692712957149759916786954532209395705462520368589736798742466452879845289117809338976276877165592070964901194481251458637770860236845766697203779642133231627663034327700023670436015863612383122951975852250186892686372148720869074892500570689045235627077925237747871225399003936425347680345888940345693635949834546228551891953160651246007131333353590055187248726214174226093909626592701922667768483812531080876837479263214399412246682405469320786345213452033534578692676710550272283761187582801416552775682789751241964377076619330137977521151730518251203152549244483082179142002482475263003252449720942967969808245515586962260243684223020753906574168689362917194780604070573754549267746554573711107025601449152554109533028228763491164121844663361911371287601353161825527443372807361075194762281018054493711336177824348209530028234031882210988822714857149350823101084711759316105987963291885352721440328294601067361324503018905289082967092159889419652400358701064784485282408696937523967419355864614863821490993521941076222130359311558140825535841859029820580682189632077286466302167253981928620386426593795606095145638882578170256743152386526748160850700134642940226273007185290502162151732101366224388501962953476256179369729996231942159346261168878403817250702044512913023095958692591893712635282257428448182023362489391146770197155680421490950243980194783556581654345637605854495940403495815028207387370039516480073381240231841838928931955108381821906308731607243546830640338062958182633271636886223549777180638079162681730883872473690588409636579204903015835565235905208178252188578887316539038297999105557622741900968483431848905951825815947195908469009223373416409382312103942653850940661698945969144731919717852661644154894301118503513632851819611251625227221217041065533282716932355945415364579646627401700203439315014700511613576236289566437697171482667436598621834609684826452718779290215587758331770791972509481904614515570173223214649995499855458802716488344703687163007256037324325673937567236714526226242836903287771793673532273394607733949335229054421526138860768068227967763989330591791125455741073570940532996722571925025181927885296129246626311571772942806374104562816477162397609002550491183927068480730367842283642701157657236813736177983677779102387884518975317917698966145395618676245126847043402392663006828613356962459647928310355195846062267888238203596380992582242755982158608007331990779917729506874924127662607328845432675119197347333952051785808238090711431110560822088263385245458043450770992443652616525610963160175657836790316286584334294107869650588105967047338185697531227067465837960316574416730880531310093993949203452270016649227331587645087906225211877796052951490521415259621175028397028486101216712222804695352748212154085787813029092653085350613825426637123423018369915766391348130705204468904917757618187913549838815734875486147762341628219188918985648287052151772420946588256617673755935017474150405734974289471915480676305341695733108862982356820007758340897998728077535580891359130962641796181357588250255369877016478345065354981412978839886377478491207278182008393263498059285327331751485454891414944375433090222311399919507332661614409936032034458826772834273903984556101356028095259679531324531871169986118598426404685871735818083889863582000651728030037876236752620412643557611818762890918087934017825986341965608041812661178912963970290246506632362349780721595224083546248229244942792784501170193508652351317495211226959769625984341788386322055897333152716936402125114797645271190524926393785651544628209643434863387259500524574041100479969672167779378654117841699405182290649722986094603509714811893154446475589004487252992366201160096611585685164503735419273313516431486214174911995239064177103048667022128761274901148420944818385455530217517859025425213346458245076616153869114776548302363514142306917677084740918895735814944767910586300608048434656864590072463820438068001288173813984307140404318994423175146746399511020521360326848605171955653148479644857614444540064868690336575692638490630471991183745584781114414852860214031672931887641153849524662637441000770545326276878407623224168148294324455829116854247544023070933696291807333967319225772758812651184171731247291104085890469776383594300724501606170303709695905309269010763560502932993142665539822271422396666002448170569190041516228519429012630874164301758405817842840721626408805187276176704675552496628754284021716897926347336376056889081331903261584613793028072606501663408185815538963408776901716964256491759431079430568294946119650854354250899364988122629285096347461135218988694608730664864239122662912642055491945298775051365230608467255055279345455197838321943927568254768041165728638915055219853509916900620296616160848493351619753510361591003090093607187471269560133073756522844292090597451557345739587807950357526840419782079618054769841682478497235452294148947951796975524768063985219852878192615787653609992222963062258522786994940787537069547536803573387183979590400332146042720202507749674192936617386912538531393017822146721043796559137765557973281250885447736698024862580790775200332429191833647920805928850094105433488169190337126323603499097190523040690775748381885563662892498391875550026038262068674738743205168682097839641376252019917445472145474621160158172193935260261789185918091642939236371038827196538938445367321116432728754583329935222181879584267783696846381428913500000701660302298009423229539430752636167080901460268982591968407804087874094637040718925787574104519994520770137144426054346220500129771503437267494726477251521217263711696246875232061116604204636912884939304150990972066687279098211340456851193898732683272442191342967442664095954106293000549942069056331955673780001501104113654363972876722390238979700890307233225534101341941420372007889028416045005386049331706971084290802411250811334989188734465597586312722605865834477022397395448849778198980612390948760381596068911459760916375331855010235244826855062422594658380825623504558684497196713084106068774898430280649942111365187853529583590955306243566466049181098648975177717162624447842181064661164767691765445102063295967085035521459759625149867035716494994918366367325685563273219153560992955546066859074329936617698878228854161975224346801854081621533976264215425420257627356079821063476160061057856021966968986300101211798459865703399836578856808803752905788866307654104353522856486181641959342534644152231795862488787881687918488853878898527156175768916782728585719277150344300615113473411742997343357127442734435752632127009135042270474708233124729072411357446606885509537625364023434610020167309004696871459055274314524844417144664449619587168934095587334820128352056559876251666886263259529922412967141240568682538009619117875340133284143323796055814811658340575430962073409677704263559448866929712264912301290418481590641432011210466377187689560322526556822352462251865257239118126894502296476931400043516342127081871006704676664006035467168353903554035245186538407902701801793633186012286349538124373530811088005660762864236115222223579403785370986796980966217758494919164726533236468667617804885482241166839534561210244817064583080837321219219158550500055917696094296242331844276587385546968433440042944054278477451239253158194885904193348596370896661537131178789532209148988258729553864738157488061340282866471136194174238625579211867956934928220359458422357578407785272732335659286957878266146621501727764766094922601865090362768915822468802129397459691154000928189750595357794857281059081966752363123413692169073789972289481151795989256396182735492473856238885559162010728291691408953615208113372791416070719876024617380500997809268843990771845108605905413492950683940643053973973835607102034166831169001590958782706234126998851338914621672885063070750899505911152091609380620490538459893518831551393546325713407678253750838224911547969544978452236220967465203096815750872869084519212363981478399030326562485246210777544131425391967324479731175680081686328709845220556858983848093937144993818083571228526584949667286958089852938231548726055108619111275797552859431695870238522302226870818770932475139909987533516957012334248333751870755067234696676672438673799738898537771218570127167286551089907107206761287883021903720022453896546530613910324589954116068553693335996364723535890815925058332742260787301336875717832855821442084262761120951905603855676661951210300697579834697894527311475190337011720294160608883027719037662135207293416199386139224950311949827913795653269532314032344422316070201855985164433050228362261627677161853419041790976869981481206415845620569670709790967347638612800451310247654243867579429090783801577150656779760682082724014849847124176402760770070257441336278508806168875951375321937398616347933261391238433473174265573702910718239149718218939575175935665801644949168898005618148989487103596790213708002694122643303424286850462721070880353548917835426467077317519152822332620935107415855127140637274666847917926004441692209556266086005160457683973637738462884294931326195355877795413778792526555862372168400783193037810905623703748082520869741671568399463873244559816792965398569828854542700552432878581386626504501569452983186168129448612338401675794293095441944539125548368408872543352900132096931919631073836248169481526744048291522387129212280974793247535083021957874629824591722409058087728844674286011663942887796141019944693019039942028973975103700964369950593409877922673841130242982982719113775568719558488143687685139028550236834808379476296071582782563585418340877842404977093020619791183882273807262290647803116031606241476772006574192179823457880255016517410654841049516087742634526930185628559135615104471835395351075122514605331948678246964729343672483497621021315406489924339898302467953840150145755529970636379660817221111193150843842270942963694764536291461258438526971067256362606049043820062531561559944031339011956081365893600401513397217261027840078510844273557266078528830248658443997559860849218944405332102215792212820108009394089452119395083460932636080824068554309933717685862689734499243443080562146396959783548886198172798238985220666146609591957687264729419522632190582755610020277585945145944956800028439607215754258581137464484098834624432106936463319079288259715824618167976411328460718318866532745425274736204634393762505544552972556671865886853973774614750304020035345503873128910096842456757298653275243576655748269105616334648209130116244354557391688702294994688538621482738776311686652895039776940157598546884758853401931473376261475785197677908061987013859412094372530319187424849152940422749234796662167195860145927234236538667424598172183712365081875770718291224508388023193609303361471992027764451913190304449714752926236636188538142626214713067067980929842058721527323189448121591568312023146531070256451518063454222999306679647281626064652515054761498373608366057228292591357870961322601485851942668226493625278561321046882221917770845401802769323586086245207667027824487755486842059856533496955697243973972458189117905162050047132506619175375818247761837088820166682739917849132976511198693010905779062604930602985638135523729121798482523982299439217374926369245793231895263405099237664194027325374332155217551455221243952979204506226930431049685022914273459511335727029410015254726785632409545436966143702315485804503615108504324548360841467545067457210811617920353575647862602946026096664464808818123903571713286694311824215724796609674381614788622272361589147692758275928103366848660393609754137093064675721323769059636135536443214796287076944988004194689625605481624010871527311837783154799409471063377928879269810263013856943504264185933071152846785826722551658058240449207086963728253154645071189599119963705447178410301266487623346204794608718294349827514899645818106836454245478676596334524922695500006716115171292145156303909235367120126912473811107146066729929488959219242545658858023763999547242012463581519678349218050964263352910361267039407309672163347130012360514012422140912162536870577033221081158515856674090551505480637088580701018525144113513756259975057431463284417702830540598035487461726815794673012972837731490457769672940371009303712376529835990106103858567664107500061170788085877277346486389754295477700301475153097529290507942205912095787586781464814128527270200876180552390741380165630793842369235909664677973468742761947095373179472513986634149373197139373097007717640237200564828969396229162114037877328953522518951321410697421927184525584436704793945175218797569126786908723646880127328577996825596231907327528385204451466687270968860206026563055647557626684600951030583666526333661004336530300261921171092814187625855365612924015840382800847990717178580363825003357361322208624944936981136054310589997241964428506715385047019065416360651001554122711909014444215880132119415810748054350991407188472080101630887410608897614235250460181256362678353001004903823673747790801538192674337643753142550014960802762193018710176143775914349175471152031030367695781996451925895367991406363524565761339082921991944808705960403480542249629724043785078794126973453005726380435053505401995014667545534952645891751941546459958028906390257683197635727715287010478861451304078314666778847092760945696905264235260791861446695060435913079626724581489546508692443256236971849702451134203531837860157644832154822838885229841438338727974565813459780665299201193741066218768384907279918396652407819263485636622157980590972314522690566692558286778710054017241758699662144700173710629086685198325263419896008903756858145860496977716260845455197083489149440792505743984757812668475104077374995171930840833991327448888840462456145893250674665497931088583180916720907986945186793430834162596470841689406621866121578054980110482019927296825628194542009223387294348306512148322178010977856799982659116205505409354916166528482260090219358190059567028583554087052104832896551846891091441760413687681924169167621054589869735732300299070202214015166846153848445885570075415876476034804206357596123318260096324839141097810762743353668115800151722286877287567275830034051193283078268039350134904123373882559544759760810853150696859864012062858686519691667695141006415906718626135438578002880329715416436162631434419823576837687903545536965053351759392708101701111934677465195831303669843638076753953138673812139361630390166099860861327578582121119292327946859737625125033577721186297634772007849998918567175414657050994913871821830532504724205980225649847639717210664386215780512465279467846151710785742137162041075137358822946536603050833911164913255228381274725456132408104306654002091829731430476937099230859932645992305609735587917776019920084747924665021313642309577876035729341318992973584792322794419941017505329622883681286825231163560982304544597829189416684883434406046041988694016082821049911571689106368515198924697130215854123758057732722504388257262909775452399063869074649320663917881070572308351845582137953703602678222263046358578725395055594591984382227661569075012064104431827318358459083725641557394922482833620804599365696529037460538895613690389251579015311352407853650854861831343886921329922155133018186023531286860228316128019177169400286100729538609643811367324732753363142165324178856212571350247789730500734224170989838922493941938406543697365371059878548018397221587362674534150681683681240429325027328336559959972581937604560052210787106391694106048187318302512447342322967080436067715758728338308588290451968686129950909681856553151063075500876564355082359555891899459292372173398513106650259113468974384840736830011698167757376463911006908511368251465745126014608433376273204798909992579894136181946726002597262065192254980413839147104107378665240360714048881668528508875211677143668344983497592478115776707784302247425200797616739868367317812014333385792964546875838439739011548865340655404884216977344421144067529359849620727004061515174014118317156716516315436679145236476322053276863776605315609657692429827609706201950424540009276542439985635150001326322603824698011904308814745416771781041799952492800376381943727076832678428739392666474046506497429978217738666618643266129951442800517176144634846669147644672850400595907688652250802915252804981288504531468068129438043711392188481928735980139200976119416566484606011720584974450174188386843893020711821560221018576250208297657240640170686395255305733945137979033126849215928653895319499873854453562907835412761307921710546801910471678339574892266351015010347552308476504361858820685335644325530636356488309188993870163694579867276235862215952624191655894284037353456336848039360145798069854649009755694916488966017995102058899221163447505555993849981014332920017490911289066883957439341732820956891510071899830847776395143613826992917245985092100909435507965885610680435339152811428506384348750641276632982707709132191882029516200937474455389134515280096749660884636974760012727820351215418485775345020189368431843081046918775964139392720554347828605749313190073095187510664015082656896023047899963961924354766804893514843176454642192383619097437281669990185006338709247249992288774978908645479055982352391952841271681024980425875926727065851431007548475896701034600942632879868509694735853212868184868001996023317884028680876525425009829069593952264509300259987710096041981506601534802621891388010776707518762313303369304541470076811467457147919478913327170303370981925114636063819795058264862958258945748710917481817277364782534186389100261532747983936587285431300860955844615089341634167399515712858407877952907720621019151380208226333530555759924816680582505146686498264272307702244141069911284237001992357879079121518367378828186047494003990869219665129128878339815674043380707573968908020273062276855515015187533667378594033464660147583135422154206535320644458957775970102612617440591969213854172273237442333848523295090052075788416020005730716309271038911734034283960421816838072820841161739992437494407736931045842079047304204860830592598141351665434682722666567859603126283194181548786150283875847539593328833009935507472802867598662574396276961354231507311995052653819066757292911046131700627388172447250899025884084209362855365514855553209528094842136560631594436235533567407535142760666596554446194143956911708811097076009786350524526509470623316298437600481694119237953058886195503661862138848174319979984778926472709691544867263514726636644895964146681166168685118833674536957209785701447459302339540311644098307083924062598474690712474002592795558600623654948453356200607235084568024862809128789962342142023747536157924390596755081561125347536077874149236690888018151079145048319446065822915927006501506800801165653879987369240362772978310694469920342593679941482514163598459094647183449351730266026847090668836064811095056928771868417077209711340758119811081828284242809902278918869043414019718847505799876157655646131463357624641601819080056220627533718063465073093036952340890309866768235108977824950955909569150823951197347368579655288054486167338257592777186098325851131014566612732102745816087278930741759994347658198245741837592908042974278482710204846959384974959692711686009689815925411281719373031835305574600168256147790701401603828212980995297610512215731514574136143270311520214893533953785703839073137795280554736441688551589038233162228767255872277598778116004516383389617593775448763681136628805378583883990053699745022401697940018187995909460116807920431606481033647760668947206642402169841374536182778929060518744031765356707779433978414017667471408068031240758593558537068021825116516392595269083014634395289626782985658597348497841947480212695117168511691725984962776434509248015389345657184877347878420034237536513548495439262929362827854628554868913727843616346313305223668530855800038286525297515846874223325632523819446897858013607074772175738350312217756871838624135192949654253101793150661935853707345892661324426135358007251560898022934749306133941803214246528231847404006076936066412580228375508340251092319168156440639156620473420492865496351377547949194727288989362666687515527493217401411896583398825032991614741795221137680429237302834567787489988034958227048354154044351654643227476097551911210074046504578654782953022440606284923589341990854748103491521125601636733660718090090473578063067109292520277704800997806523159208180582708525599056419475280787100149166697509363350033996268590831635306087848824978044677883986712971857108054262473551410470210356135187661211578993666222887086464274565473049576137873956695542838425610250906157613973853765476004675248863695251386851072340988899832426811377030666857438826514727053811910676061106435893157074157230687513107913501503418497362032034483871126438267420614810347373914498926896826568782599375302861833784503261056046663729435174606176813566702935701399060418488920649953943260742682411419752011608821207618711939314362132195216859357424679464328781855282064421202895869110085262355791439465500770918080259357410831025673278743618472911783849690920789860297117414697959447510463101058125667198753162822987101433192536538270359402032216758421133796903998539505180059303963637992019720920426604156579923562120933824442647038547522401840981116414018102042323154551234552483128881287971702493054765388825625122963794608225178468378971651261041679754582067049431866487996824222288034626132538713862238403970657334202602261456037517260602043008531498085828420829276153290342108384619085239859915676122239084092091785006004711237906567358909855260642699413603870891775328586147999243201350488829905497521398805251866252876099695650234858973888682668750716185810033088804826548503947855674645523447604588161086429029210310740942519118506507538281419545224564293445778877228237996087364810214372955396617933685356429762067021491301422677064453385432073246060468196300957070916287148758554358015045162472297226176120732242545212736437849299027269639819457887499000930252972368339974071182176414102582123290754182525894642199913437678614739402724352600617590869905010228165484823503165575497694128147719943383739734218160448343924153664526307817704310987788004352828398605564125256494606610880822567648517295489513632867105468404023141864426035901245452865010939471426916962445594111818031915153657958217107699621915915114944300479084494492477630833051791103716004590559262947758006755249204830261251845928661220675175134046994503544605858437880238414052251282545937205933251957198909870702010072238544671189915909559539241158750857818253186566137471189915969402629660601164724234225761795173438834324088937770896252845614490699319741426841874101383470435758182750962507497046994150550087999252412616244032293605416324744713335788686109673688405235128350760367046103700009948549500883486604110705115446968702909611726843533575813630511286122517214879003204136532925239704515665044669801416703287828776918338554267079007308845674416791970661890167939445653480372421291366189910101395286640955882566765964468691163598770212080750695909686360481434424995692004553381574795190820440048509260050433756631562125548650365565165957072434518791359053270061474069349951973122976155372456682983489767063751245971292949966360945734237126669668501208704116632023895300247868070119188776773866131881111796848491741448185227303446152690379341466713474381120641060770530079256727433858995082072890206635296731501577280797369883927609146933660494376581286167449866145548029229614747438441283383715118829214996214072427970930765666182611890147230470148923307101968975115150744250462519068686998720980057203795352765579992171506882208114029302981022494832676253008492970012049376404330717083298885635267756313188038423867965936439890708731998070632355007230367325439023161779698868103968386572972113767374057837339402080381278926124882737715470748718761121907064512442655935363511887184386433782974106956260749269973865731445584003149371681715499201361228305462743317504487864221379675713566091754044148241894742270935557222042919086063251739839407590046852106542126677406207216904322062056640676014651277007125681527705763591655899231309582060761846533251812495441869210801537040145613042083018579507425564563907216452800371459333983273452125719835730585142051026266617573849560222623640497372485659795949945120375314477269010380800558295457828438046275827046091305916382048312093474722304765649787212745453293935699124380309257247605406722443360968157690005780638047894825682952228549210953128646713046807872033003927314880718633935062113389970946581451960405063789299659452765838470049117659185968655650297688082633254415750460508867175304541662640879455421447361433969622829466504152366673978375168426121106168042328161066675018173359869803701872973764833815635823927334097794715382344154342608751118489963136614163266693205721252675577337766870717365389563665842329647250796177548932549253501816794538557981080510331508324201025136806707736863881910113458213976786107182848755711412963069585615448686358389404993033470019743651995038633025359306833450831517160713510022246637501847126669824775604515592322506655842498424197162285905822205726695703498428741134616533653360373397557726050895812245864483243458776039192232525858592074081959751188415167440766176590549554900338332202946108214601236273002388535668958177515999547019051363188560099550749451251439373081688969636137876501713894067842097956284164679045273001882155820574927740394795714636811418026414254609823979008012045030128692992144395334013336165856004359316461773229337128202982773962757564208788954040891847868045888156055758646398673803501445830820285439665383890959204988961518229541699491616286479460450101304337881056518337408436529578452335247599712898346168847191182340456740751991691752309662277115453779674843977829901652152729898671790402585445152363866305398760269876676923153872089912604818481377109030900470721140388251008145473576608874317660677167908958977792263415145115134996962828377439952015797140644135355299626041061560257149196734129678967391696682443590005900850727646789033280902569232139365339272828102252898988798346173750996532514637292510903212785511357710816297391794252368477730257735046610569129940519043997094971134339169201544164418392077118383366337760708973791961832445692798010166399203124618033441632965757321951957555178989816366571563969556316854402751833642644337154403367296893789191710674478104551334599935902924826477668043415165682056956732341505622756063703755787878444241557864744011219211535419170288468264438818907491878573042243314538973674611286503664497270491831577339468857093740731995450106041218782984949611066244148062075429923182523053407777714586579989166021371551488805767802928083218989525324471788035897338001563382129708916735930292816724991153815688700565685728901473938925561685790607872197242372978406979579029981181853782491152633058223598605065957270974807698382150841344061942194951623354404291409418129785600178222290988836116955141451162799391909843552305693239309777910196044787874150673139630649004415500703217774278143743685289614941334954021725170230699610052469319797068155078270477441537288952235380388093161593446616446587411783745178911032859271652263829785601175714358536812046558851466352171646243844119147827123100515019680788373565888432923918567460601132851614926650455119069638879247210397580017040676394621301720878418996495505879021554018710364815879418664383262846163884886126826878241671147910672345146380252832145755202201992160253743401910601055509368171816668228058509912979779036434274467411700850977667262538034771263174621862734281767470752149885347109981584952269801624584075983687614262412422098728863124242220465176034965043590871617156069295901873910869847908705804610516859595906972558451182051235858324211265860896221373597411333808740097936744187842157658257020377483080481172125616163636269620737056076832215020649566224848666009540858391957624508524849640520506592633234455134301442975025042743418354986727003807605002229568949689078107899100465284170570216843074742503454453245284097797565919831718971935489268552253272302159254647622180503072397760475274780202156057339260457347256490351129637502244072810267263750346684352705826938745160688019448558168506865816226119787386514775362793608906548026674997159105857277718751849107515328046356475827368961220363213958507846883490870363296239947437761182109467534424302245429064324851413572052502506974191362824363127879390373694670827202829394975869875487243065385122445782713286122269039122699360888009271776348773377496426877610475836966961653520185689532659789216024271995085042947148902215654820333987631588308757648146278168095791799547030947195443079454078267685068487516269005662057453785201178286373053325029322525904117995056670995205757730063457132796868848478802553632427435251977413029887336547970697912624155260630762312110986386260719121980727808046259192229573689698469522112483505105097212865307768679898457852967188805936899417628604354180696151814614762652108249149013680088829604288089408129834635627999748235140639179391559132097909667717433096079658117669793013760152524659642962044180978970861766477910063284143562526409996201452961174260683262924512067683989567029975996135548876335450676346637291584743085749015993268481769549344755178823216616566029238931261616723814211390698894668390570674942999952847905481762330841975358739022042128050711515812590876346311860485206058074839325676849575621650227388134659340600806075197584552536423783195201254943414383019449862877700595931452043120049500118989889980286674261764455303859069144837171554324739346251953726272112058239080923657322177936836570490634971538544162787161877748464884645400248966195740590109209948400414731836545258027716251015062537226951222736495958620037739891856857820076477984002933297065280983666219992450647784540766392124995227398002188076363296817941356074970630463713119891050875505906735929627678784243088144206000960205057292486712582806839391843558529398209263538230382829147274405568971263338380843704705031142076079455726426579729469199306440206543084444192188715813061454700040335318197158821878256653969089457708368431818945716220953594816008631399007544296087531669788150425188692444971262567667384882562961985226944682691650445864541522863662264424958065494995519639309210743072292646437320069631711397581938922761698754964883071561925469611360247908258835370016318773755040315946986447710889460837564088601664275728621416220805574731960773492052606620502025907098196956189763547610340401370171740235767208609114035590729634777856780756834804197447516392366404482354873366595135797850712787731899407979687050809390883151850474688971394153504477638369641199361733346154065405723425452162610071355895309595871417643961694342553605755526510046419974150978832181077024318500329435224354725269584615031513402844753047895671240575312023127509766333222060721169349899614908681405186288192047582969472479760297390270738258472660064570540555730229573779465587585872285428947174992002994970936390246526700685366239615957708049271630119202798478530899789298198647544335514399785728059060438210704321855678744753992988347836471395895670582971637076688771766836148402441200444292134347036670523941203366903195056525983066430339128537635023494630494407763961628721089767316370272764343704267762357713273488834079380252308776925107777846497617716732885752033046306090120385847212696743069892652901561049840523457792778955764426015941211609923631005621211332059320511436638749480017672859179542987357541419836502489206798591811473290075576089037630244973847158074698126926013024496033546539298782587677774180177321308599278412846515411627262224764179693648794004637883534596367840242075238893316441822866123674934122937789464429501049792801599618425120546861140649293906564018676184275793459777620365686141042270736298133382217567341111903128830330977045304780496002113060926159946755152047445999591647586418070887540953461023713289688932259741385701056059244163999095077119177586197526805233253750043035643372624419614831352255063202993980451429144461615608918649641480430265027065994425010983130272577843653217522571695692522928023069407690940413755167722822848361278355139362122007058893495255120316288146327965636362817199967296260488503950822326391890610950806158784272800468205098546630929979390532151783684954523249098499559070629371803222578382714185082286569755750606213091127562378947486739032107261710784660205557094569825024644130865434263996732906895977214535144861647822688172463903985080494925557019331566877725100644759186969197762424267493904864957776591784849955698862254464607858117252642015720156681042266780945839695304339711157007627376446832601507323485504719482495810339438584688659955175079857599884087313649969940451553924902247101081106116607926366207552602800900138241084401697891940922801030952331098032823223882996565196956577647380096641256706525263734372726850799701533153282774779029547954855526927923967936356583275313424366162907973224805775600065791642043536896651780153226288517512012888224527401276533785477192064812183739475636238241301582244941464227584902076778392813780500578779138558748538573709318696278819691155708320681196087117570403918608352590085506726326425044399107469683257123632510865367535322288434670719913957732211327709680990093224465048425856618355728136516736302078237535918257142103023573808813718261444573290437618145899844593221032230198591209928954193955112993678654330916691838288812489403651725188355051286673713754651113130938990204103506284816219329236390505792224900494283128793459717350308762684891596674870065371442180361824229709361587853873284621956411168915841215377443972375941134241078984394207451004789966069287914843876451321593951845251492042531101712198084430397861332361301971962957207375125775567629738270812949859949406361783134977396642041779414628632124223558459724305884599224439016903461506418053332755449102611654562897501073787045751043179699986358198911843818348663476170003047814314486004499653094009588460772997691562473607862702373577917311549607869282333215511941217748733589693673087477692655251713916636094804531828885481655295602916225041836171593920331427017993923392339900007465431755510798751309729769787120027109604069719486054591455881644661945336307577537521708410168446717251499787854829128646621831255910803271191913660420107206819917092636005715457753383290272661401979236734502040187717741705043597475344093106678096566179250953410575920126640674024727082257361260762562747247028918291461723400424452289213909582084531143339835406034999280743147858837388230654356067180938290717394063278503145217729543450105774059383738683317279282039762157576172887291382280368005108407616083188450067143037970717471000531949410064665441351754195711907370132003159974390098349452543683523573433673330914352227732306706174296415413391349069074612386458172658739856928310019385293024499887331542507685891735359053975405157697266028874776710162609785119790125074625298115820225698304792277833296571863287834980741988258331587484771264587175005412658888806150408089473008904713983671816524747644859717835884412611670136633610308205920382584667081405603770100718594151962287879146127484539720270176664049741041032742264438559288594811818206082088172026394666754865358580814548128940020730400206952107738202899317425632654968156933000750212018971487780495384042549430541997008323870226530373141870967236687194859178671599915417580819724483849972058242108675254697868803140305023432319608710595520762616395663449948542274983517540071039036127482695908456405908988054528366417021943865778441090720959937452627540319470293817763450600622186568862672111250833330646067861139046366782626699075392873009407112416450408369813363697658235145378690032575234474832817699218676541966899462126339734993320011182083762950061909872811453398872559908149898810269408426349097616200263587873908129115011306107106390546892313711951646827024452423722274697991525455682627366896459969614019224754049460798858305442880372057467428197155532615628669880843317938906588733031319536123958728493414650332805336406266167375320160502207058853587532902446269778825268882436177031910748059643377868654966442677354272264974653653854426850468147631102088297047660190034862675971684108294570284648349733828401375663764033351391522416931100521985485939397185773096004452201675784508971911203792255595713186086117050761914727767817453903545637070642420615921824821334058534900625056299829806952572700401923468126976536895945948360939767726233512853235357811912917388068605288474227480754033947443980726860765106669651207421566414272059488086716080130476020024234770658266550749099995411878765921772593709910998442829924272936714030272127421485331063172149059621778237699377833206538833772534477026627039040790813205277158903272852094924402295634832563860469561006507332536689822056092550935072890406083642194603183738578047951175867727695769649305451379776289037373111638895093837594067817317088801303053465889966919727752930272700395076929316338272021412910272778676343185570486871275670077894128797506538474567312331106621892729118330587014490981308248680281142299207929435590130616975364269223677125837315769714878627953004977459031681121034881263922793388655930906208768933102452363007813818631399038276588173182857418685962906712995303799947608381030003284129636516446592446235477877548921043204859030729627455831692784646169826301631669466338257696869416474187255460183090365744963826372047607572676206851269210578260986961743988696670896836131981540794881336827605525138976164164043919443808258916256644439378209456618197403796180486278595615219538225058972455201554926344199366419397215569764096215744595834530295915740307865083548223341145563668992402265847503327448725364929491109612393905791989100606026735513108015840625655167874568542199705949832353913267518781726578873729277890324043809125303717684063837309924827710477676984380341859028359987803021217988198458534840857884736244099174854642730270004114299716283632048505245893313990301161105921300424523812665219067709053771530268575959273942337096450124508427534290558125933490233160272807189303658863658997000640862334052834784652279107328364645646104838841503886101500447610832155361203533380966589093915966969786082762165966179842841225672291337746176493133471369609340791668548393277172035575457136026085481588332973959117200280173188616873554626152328547364539077370679116021560573570115307202763799184056499606756961392456402881357408260609746207578090156078547217113227613278269954119077051965397951590026441510863150388620933632145404100018906258651002642968079721384079282890499313089232840068967714420358763484851301373455462129668235065465879370548765153169863518827490010084156131096211404911013979260324841204181594933000660479801577948876000063402438981874695996999157283001871132978845186360084706372994396787570376653444639109428282750303660667321529892143419805421664388152891334217894145417715948886290857006992904348862554325246345339724236683073543561148911674444850108252215291923344311799014705172042982052482754296987399980494989892254519061580579996950441957089978397424795911130882568462951546973781318351331071583128967233996804847910707872665085460454724831137427250760979920291578234219005299950145732831785579340231709016420095095019575912224423902827760003787480849512971758816647838761378363520065559913162551971128486240351777864346003308576250195632140929629946246290123155446125472602047614525880014119253711856843817285237009638981221757207933199224846545323054653585005779431661540636213094060298863981491012115098497243245103953089467242744701928890335496476537015575795046409101134751104635933003942475790970541704058548892781360342923878743797777925900773343286579374972012152654555997202071234817095674300417505287820919253863900708912999945561482948733383168095783512334400945220318987304323646596594117637503110292099228226523212330187940011399716795079937236854557885776502748243376089669402228342508346564255680228564935001961989301946982094147678553054579989221520106113680807931983224019675230649561639913501171669023158535698365555645993061318613234834362946975718318777849457395776762690001955569411803119078803947239869614880678676050639065342768011720126654108463638279081611554330862391903568149950996324872969734936843717982037381175460337820360201553345917093383821866611396456781478671080708909601842011006553380492886521270330325363787190444264036210859652753011660584230449177304708927074329688656636809855739806739961747118050936556151790613920650580051544819394235039982548516249068217287847156321986800283371521927701318319385095007333545378007468866975869495834030291610253947280817752740294500629597764591374605560745197447835066140534102707774071180322394859936310419304436641822532054161224600592933035562924515416585818791347215408127672327494328248012606714928530643322808959339621569960661368557102604454177854079146129697193310770303370457616120106753320845054355855486215637187675927762632511012620807511666759946798578428968683196728012105527035005047628027101420915799348415548895293949273230288913535213402611289835884485833451926932730717940473663248167493603878820927170183604470390275740546083826012190979476115641137444351679815158139704186338284290918027731882934778541468845352584949991511517279110091086077284697358918941270532537296943633015952360523700989120742861576067790933314670619591744504686919605827683106991761464183639790093622775427408168968814290278070710282814803473996884426359223428772739857761078821970576799981355409309150899968891503207800415644850562479442897720274857958042355071488947933588472713335313668480909364675272670001183356286805008301255584248837696904895765634441272368750870045965992462471298461874759473788505453455498667794569165852738057493436428586000972665602345168544544377106952592677549083798146830588367589222567985517874038187157711270371550617768435088974803871598180985314038711272326201066031651607117447711173649201081656086690762442562421276108471467113121601776426579304628884525962127447399236778912355091532347202703458433475591749851397588719543403535811113286463449748297088040218673032862039669969554842955973435383981705848715508568136166043411576297686898803917918941412370556955049983152330766433319544965400803210555469101907530430427323950567955613278894168269296652062759510022039254617956756364033138447292622741168538861432965559311011983168793140776210880610958315692164095905114898146446776217810798406004831211163896461996398180843143638823877377095960668143683175876154524588208584109691577326668468289800525218244261069983272712281122994675323141277221792745710893973864566423458001945145523757901780562842979524054044898690436333543065785660569175136031704363206271755334797615798835934555354495488992265375829948645268009992052300515929225609529989968564154496266517526673544246051584983023050827981487639718293096929833224727411160365067165536011020669135269584866615602520493896362857401632367798186467571281634163420079460905204477027447803896242693467470132584634281014701851166106451480917493008617796425564256189059549704784980932570467814557790347395196164006414632904728249238416842723291627335159212073061470867730745623496974784314411790817567797385432901988877543760261328003662493487122693912533099397112557307618428112207973962314473090173958339119400495443118220213233542338082185492093508135861251314863950426078660207896714945312555474667285305996504210472345734395532804154592259467204620713356708748904229875509572404214544528935704158845924117247841288806008071892914220759882813451341008225758713178953002700689811144973928144747661718646850969936073101163796334136971218078673621960980615480353870691250892317095808108784666420870825597308438869769715197975760505300071135897359625868286322323076746068828120617200581229278775113055588624936917050539524302696431198771651599252725223894254739478067840219539887996024763734774852596575882186614373690068679017223847428454110164560436388731069546113766814571073630329008529224618936172223220044004473118621931931546965102762155479773037476297736941949200176000580373485231011767384525101779122134735657860574062019287040363141487129892186969605237186724255639540399928611946444577344502726484279904814318974782803553684713319709527901154675241352588658513443474796294900456751464237229967510435290241868273819207243753396229685645601342686419718108899387661105735669746744244180864769554010738404565538661257691598213829892252177460627278218319524433837698372611488055124320623065000830611576865476962174065445710504939183825384047199879747575944110902362031510040172053961346990095203691573012218661142033648049620426829242457944674345657243390161173803250886966028413852633778276337912399316216187213224958590244536875035870260479232073336466155039887747397362517648184003788740088257551216610089831229371316643538445364433322779047682434701270109865246083703290421369299586106178209163247575569074317928187680357962642624992663052362521657443756673642284500343404694182025119058314507395314228277766167528347012826529995974206844813824466301134718117569292731146269537461475503089372547342259104545256531683194349405091892423128640771571563350671981014782754335563525257236749786778452424545697171809111741720806433363204221502610418871332020350378535399688351062627151447560016032352966409011440384706373022003162385864657205943778199900159391141505360024994378594393539438684019632553422535385186054748542380615533796775130926809891436121777304684474616261610977114470847108524704396091945145747598371957768574226431589909784824002900412632787738808634839700894264077191086174333164732969622800326994274839069676339021197327753112853275623720685166394419175584338263420933318454492801392516670900916908014810127258917785118489188836715741718736611479660027763701955380711564900552925297863528983114053299767318997924507655939984179471289034819052136282714391160662839050104163433996181942748579613776774338871998542214306078898618889005699125217507250013399160999538094890893890259542279959365388351055473736574977823793146429020736611850497704091087998514794615533086708745725371219391132745451914727641561839556639156395748701656681638845283019819498415476325593362702072880241375249708223696800155668079606088262820861233720368682263188339718578456745250834305098712005137845103489860381587833929231670500108931390471083943623509058045815032553590851152975925162530410737151136581413723143757911825926582503807460476287305733092049052690590941379328878831238359784896197542639938737568636980928829653271108828570002741254111135301245328514741911273350333977182749201208633097230672882902121992797432363337988465902179157455810672783341650965444972454735130366275225699257265359463360737048726444230724001152996685897602123327187749243583292460577081429734638516998148263390321855523606303404188162056759950990149936657283565782031271321278717942100194120558116848597484622770600055015304631484769086014723675706223164910530754121024487040892370230711825941704931249509818408351852002317140247742176384753185862506565901586924451880848581924354072844195637828631797633000504947859496847592894894608225010078736761373515272728856944562616622025774158595000740845425695616712647397153516345791125051654779868163804916730999669269232463924301571846951459769867639002943695802373770326810764946751495204318076258332850046760215433362993166491193900920572019921790794961653070236061027342047694773868122785176961895076279006760915872425400973831267051358862538797452644949593803746649027150037252415403817328134181130229534357354674843671275232008712464311405147749690379830694198140761555587337201953724627040334977964598666975054126900997442824589745451741453379600509704097239442571223666552767785000698321797488931405632040688438015947862689004766759414645652427788278996122392816991011246319019819708399695732724951266741318375642553011207258335073839191261378658420054935805592280209116170561164272419441944980119510416791580540646415458641339334027293728379524201040309563833480129866764457000003036714399258809512367058267969999597654509599762249380927799838358118377716847786926514869438316563874612621977659557238261396691769109552044827348056390749590156489391010818654669232322360318394487451088514888491528557557293287237646236549158991703238842353730697606285667879616517354774497972126017873048107283711772480394471144917018986168965720691286765845635275229780862632309046609887060431748708564445006609552153300566061721692085204269845770960346409619862049456188539875262859909686464971899024624206632803442102959380939387665131478840819774707690662429095603095397706307006321410476595814108232376460459521199681743726158901784401409481646430040495521498688428778973488072583686450781850420494844834032616168807372831530923043925936658189144261244878647684491500097297991780902915275243448134980261277001710530111542126543571540889214533677306785051343275062584840439311804903755718239175176878483095885884078574966005606323694426913854544404395915227696501529436397037569342632404572597239342967625062630341814294889930260582030693389903702946783435444261249179188653485925481096784071694506092466708212048267614717951087859259876007341579493915780374284932888581585003346206885948494965837877471843345707368601513148287126658660319656132432343630183357090108810310279510775912543592221357908089839984274354219345321349042009297363635139452106335179670227043223136023120798775248533501663267499361552416059485913553705965995869517040862619183757255063141010450586132098118594653099303294649651564399157957026488763880356082119426944028119247472671013023551561898943453476885591445704277328329333113285850311600503109229241594268218804801081376371267678541797822559313723617538266823955054226625120955144538191264594165019430761779035603590024936971699864897635126407470445321702225593018231483108615860917515747052403714576216034334694544684655493739896337483841625782434326993176821199561506497053744861429369439088271936177721642434580450428641040533537555845363038381042307243853282955059254932080122368399364120581291861698529476302561079281721820114312063783365029939488889601071246149182415491734742296897715653173769440196473914801234116712144219332652903854669588732785294361236064345068814549148945818985993077172342983606429068310112944613563147187991280484478877629169231755160571722251141311467343377510560043770745295484433718333861997106567815401054350453064389472694783075181448368461827368303535727696642469376626943291929602257480088353352308357782266575833644617356455561015119719723439664468026318999542673099525944659583593292012310579886947503341595853266457527033418529777544284269285404718501583230654733165619278874703738500404526305110034856554277507383272684793495477708919856376713886772063705620032945857574268887500278694904854820106966211986569631362093872338748845227101236532744199114028059035474035596256590861745828796651951411296389347836582896629898458518180808950895980488305915846442858614024262682866878816422099765749548648861546490482459510768544117989698775139107489223249051958255943093118670596089940774697553589787561649718558804240658830992104342233957202696513620932467711096249969865375236211612339339078617854343856696023171740384618680848078385744719893696361930590376478261439612174590717893526647820964729609457424488194150397848072210233728653746590572136266974675705525180420118902140105383788587296671240091990300570076115488665900053080839209298568808137257761630532948234382676815162948782438255098756228769904213888660219275637381783165847612216983778200046359543404669795914903344444327026848898631519620997639981383651864004923855602355797773845938648028385974293709324171863004887663489064812836645858855315912495259139171326865297786413445583650167566760511412444905288862018674499732170049232964705444265414292236151749682526181322808352197963136409404301328666451097437162741699876956838995588496799980893485368255174333742533738047549714109727119748334338656155032871960314621888472053196778903961568341334506207892299451453394171057226795941454044488505388397917341188196921701960780824699118621877325060858029537349548113939257505977370036186983044973879361039268139027111249882114324916661223548815848663308018960837658309104184923530293150803448982354240136286036498593717582731732944243937112538176398522966653733423952473646960518032695872286865325821780263670410037872246088918478223398038522848284624553283445011464054889031863574421665050961085525853498584986947708233640435243697777073218307954347886246733137828105533442411405078982905757565603606023263039099682162255235949931068333207573548160524071813124652417922720420559660036562973811193161579673622718834530101764174177641840267734708471088305781145735072619002717150341637055505804989740312563259849928539483660129924032755263771279906589000880870007510614853404428998342459676715294454151937893883458596165724057601802055807724707064042565764082952642755698417461784288874050629048160652924792186965708910575376413285439557924485591375194407152914504513970508865722425405300922437468957804598186893339040759203427424407300369778786401420930832858030794615126168637337721999249148585923737222327602676608982781246169432984689970920966616770886256442052753929678031940828251123653694478267473023704365370708568842316858654530146016678003122434084398562045983501205462528713406285984415179513510863756533999886505624542228351593481744595930850026123972096410233678897544213417542050358120112347987025543452633809689310048977653057034485160756018991963177030803214678615318817917315911098834797507154681224837132768394650916646097488179594406575831368914150159222190851918752523610763973563200484339146585131768049640570121747917446981880344034751464960023079115904167469634901786138795555163859983205923016321338321714576325849460828885511489411803918106206959017388158574338102030237277361858022740452591112093450884580593348975756002210362527353772878712801301364478873044373237254456175026139172875942761566559383380338777926594204755013106030957029029539100822084266421277037431826725662765853377277255365463094354455471892018456018298720084347619824784582217839157339453047458676336926576167159287894232008525088456028891681709208506326743363930877826815135685673113579143095063380943911318557403230380229660254437306720837639851878271143108758137878913416868127305948659481125243761059234856135743624396009821559370732126989961744072985300621026274227666681646266611086860474620471110982067799490024259320121777284742074425459236539128629244765584500524700900159140207055437557770663727081612104118420525118191862055176725564562193724897063684449180236199022520012514858904056631799838523870277405305084085896956517698160924762203357736294317177671027551482123215744449586672401114878113286968603411215381469738360597244688905306870818117903271131797692019802320812901958721451362987738136502969273438850399745895825238473158454697824536561189756584861083803208884055330989406265030011981822299028436023110807805176333200672653902869413847640321101691968350049378689278750581381556479375382586477537964271770956154566108244730122627513675122616000525196120467839059419495727734125465881131549869091888617939636672573041396208260777255043734513233135367532656006798067633334699840289265646660290295951081691904516003989300719310760103415555368842292397712128800596322873308918349787583075630385694425694923016537236061217443588356634936126429524506620477165455128462677067968623310651690622001661439900910132785326326438471677105420052711823730561432162304918655367962548708474696332866265629964491699365533390616613762470034985648047464275627454857864444886739125103879603658865960902149065080012387467451845099093131915479463129551531166222205982341527871228896145575128339284140579260291340660082767801406487064735116798808940379985592473557213881426886376160782124045077489142302429481507138806519298319025199843238808918724531841940906233205188392089392721885606276791002782219467048810009012145397816388103916657611263490234353533149348474840412302470305031994060049471048604406475737335594641484419717445712709804940621903139426308456410507469706718695771892949198540035134730514655092853448227029000550659003476375552405703688976690307850591715356911535872919838080337546389502545386202998034431102702498648850482392894722751334093658594596624190003488437272155467483715938263107211171065663241815224567831276257355724255222272858384678522806336453197900072515928859445766537818301328473068963871473373101277371117503997200504230506264526252918079450608452519058040143178926617404397642097090633506057240836285255142071042006362610333985673988522924998463981629576213434223205562395628165311428097089613443324933686689655225644953587635261570141849311390312533676322516970223137313793370501830243946993065072034669039138526176122966331751166548458446786915504699472425051914788344014024144296070876156459557337056469428803995563527022597050562026854534094557795715506567296685591580785243604606840950761127731683555354771787267222949146517571342708132607054219673685033653761827697757367228392301317480208796525004074643951210864335252608153116891511434071026981032780171219135168375017900975595621218340467906548547332172595727032162754866018563123648731198478200208626251250455512319688102689488864891033864647218803698614627479152886638711699702560960839930805174358641322426020072243590812720187364182779173632663950073055431708655144799395976972588117727893453190760325807207413854736639839195411617680970390958381320537740074921667539261608824647452913969410987664280916432736719631854306813633962978476603673474522822036699323186380465080202249979213220337884265969141229833103780521500091423686625957053902291494267721817711712035696863190486167320754730585560687886760696717486662057947814301063215113989868356979392843415489929700356652161424085001257349497559101151941729280039512354737229943116324875070668167422004387671641365515291432698310422860030591403398990364578980997466392921440681203019163176576423592683669825319447050820965408724689984760883669672368453977407534474855428199882399884226009585188621803044564736669126211661778963885807257653991150571323670875925004644475155950169146875815352549070644871516875409432761731589469986863689556550176396240090216306049424722203817853851542565279678342075227219383917974774169381337704740583681334135276173873404810769360436832827006291497191488234184312216741362893847342229534660647508249731134272721353163433133296052683283682852997142633536484085364803630199786906525087022368438678546256211331864119652084917469744266610798332239068253236629309642001341202366172649862665582242330859184035454649140085012680517158429519237730173538875986506411856768625038764789253468944653484474886251742114533163251243630721584720575933125146280157692126919933220499993470829456657503861547412353859821496923095579587590213232626981080594434104411041151327930163371607847400148580798532854526253827688749735375147933312831450803767757993958335181937541562603502320044334373967114604967117803693121017438821466895629223990970889848218059751808790513640622141932376484565322409224114290497603586602707068558648323280640481036259035383411395273235872097445923752888681761352463747506116657949954383008530681697926645946163463693005684205614476894929587028307139397998129464899686524015836833643750562808962218556710638551619944282908155264834971151320107169807984207299263313474868871232215497758271874503007345391652680587570486459812703909254022051558263419421889730015719934949269426459815166990390762959992180122988493113085401200224312914608559901532771524029052206501683372888865229905835789675036035269194187955145755583378963938655543150050040383619446960793463144080535802190811536296139264168216330956991821161217697246809668497556853508837520795371611386603985918913878457620005385228799654499444089098966806171262218193255439517400371078342326107829482982641724905072531471422616748155965011172904887096571883334262564735618422625738153833861296631085738117768304339179654790352111879060249819544610464659002741481391686466457710962920756589994947095621474115307583490447284289503765197939364299984103575667044320036158969437973238527657788477727255314789664533667697441345604070454797946982139798090068253929286875599364364934484557279582885195938973808230192447157394575826706566275529599954614137758553195073815148772974884981968353601286410939524440429323731619196345278233739915141035990871576266136030909878703237452866989212734583324817262818057234595229029520705199521763644495242792653032237487206837503974260003680748206762449467264533581638167386888106537566152092565416639883478853925154005649463075103773697906872304858079623938090393983009887455061823897260431698703208425884506442001006466443469295157376940232242895203679928979706356853005758016038067767107934597612970267765635803235430319493547014027284613708169342019778376102558043799621966688917436124362039440552797008336363256846286815937168389254163431591197836164212798464344366248313663592152423374318343882532041742740463032316272732956214466883671259602227409734538874472546978217358601807509321224810009890377523551795441126257128286584845102499823422554497567712617023542413199718710885231195219105922975211411686148680310730628225949411690956902300256730862357961926034037250947064628710027888452951351981770277868018264683933997271052154663411935822729385556037685265349026325482226352239152136603326672653277142566124240335033654305697668065855539868328507997095189237819160864210445683848683633318647246162250698725998161271263650435401231600523643147771261917689925902807018489721498528270106589491763068374878228874156586946764363961973650882328064511058390172806327020415487452119327865276786722766258748388542398904534110932632419066619484615075162911296209167035329823586102357386042158934288844712249728895094357764066670418966446331449059178042318916422784213492989335008113270277107336392634484125638509098514447183951121553117226532052656152202273816786935798603121944830761567667539095605370117815408208766954206892688143278230604718791076290986099659315922028739529319141718387141158085530847334640279868039791414556545337955243192339705784037602453050067332444254958075040488499816536629894253651402425583760581123697894657737150650029568356945010501392353460222516491348241919995081647613756391992425735762612544386305994883789491664398764079033290917998637739997071860801250129578743408335955747414031658665243537528579373999882018612796940741677989438304718231124226899072708121819719563502717318525142916050377529287707278686937147838923059241957454641286674013116525832823804842595522588856303736810170851770677470658773342461633222411770019045151484197422991704343380255185600770647522538425208002739394865997677481126360680677889797916055835105373603392169571716207125043510032629788592645850691153890913865762228694232242761738466207013700521674733911527561014784550450493365005538130593732998229745987092676429909834524458094809520759765711299319632315828102503167389257345577618349794287216259655511924555640527690771496437584388005154167456955248006793708890214501147339718795626813154532740362096710459838723374739228073862312932256054660037257953484388095576516993293506998179322999803445916434355744770090578577359064142315614027194654733460195623654157755678727386029015114955189629335270996476686729051340138118126287373984449583289156538618650412247217411370861412584345603759553996606500564543996644552138344812133683531033760820475101144638494179186229499224856315283606761442220272994309831639915283364494335711771986916704859368092509945369873718848143966442421646383487551944245770328512003790577783897040889103146998108875841429570074131222829940473556656887707110978536173622456157491290462077268684182233498496662503627170972789477425438334581482474753052021304396434681472810936478430760105360288048338514330892574581743213204907651810156899550119808391497368906164277770122633049286099500663599317129042817668275960806788574163696964576141257257317806547348604956666433295802635305404772562634017801430114617357635586791392890994035266960586106203485614168248758324362524234346405545712458193978709139561933367870368993676036034876222595574074377065444018446028146887791100695232936211395595775234249323815648748837420322282314571666463010741845488332888098341818935464655836286000100696056399017279695269351866706401166077929559618847309153497974689479134655967824025028545691445822043536924552932325500708419971626249986855420874210092381581912590770339271592871004198700684497965812578615509096637190204260264471106896138753432572889242801259130296537908344598213655516995396427247757060077114669490966400117527701299470437640603459754739251025681905355764671249525786594191819191793712426894084527047999853475992879866736274463891302823951181545693513337863543474872802123765092090835476309907556159417114628931766276253860690150007878508484245149501575680717326258225732945949755594767256905019102037703433191055655203541093704653435363623851874240040004621995408906605532655920433383777868632377415482899000681591358645076499494964305687727459892738537861215059180796928601760463699886638356014715732894830248964232859576009003645916198921810026927936736317411431520036430121905733390568658192428979254516472699178197858497577628286346609379424960859425764997072809181608275738984365954151703121320480753945033419276584141113015290185774282796942722794532603083105554354859067455015137623957540484226377801727784994283013779132066913187403833174912858906701658704509389455500930305012742367839784360681684298577728024667637937478649465749767574019450345593407958756788584713086006906839912485506760311715713990407125550890584903419706944612983571927793644243271842934775671794079592597885779508025708510471553569257037370764727382342749483582954636920138120007469805756847401893138745001725444232228353494768156407811482964986671248324028686885535231384851422561961434796504520382194533229366885626234288613847273052151459434085987224087891210556069388975001724587726957419892402269735806582446354209977033426237051340709583758113169639952757285653378383643076819050094439584185047126183931053068339170948825077561472640364840196951508052710153817471500552725901912556369907724029279842020363879086604973797091458991462660748718812110054300439507876464840085550212654584128724867739153715326688228061030564330576199567993536009562663459796028823982352838531208119202256870224984680438404184645695988071285126711620583198264430084575724214224971115936989960865032622728842430995618085178708253914671262301183163844297182956838897171707253359643747034155887421599901814565414874493936979446423182271873616617803642052491017363190811126205289214657444918447236630599311498086501337002616191844201788802379931068275859073275049180944171731655591802771016840504252355280651019588243206569828315154965198088509419113654995968288402539962207022143503625456190843657914242918624993496964401645753767729641897902718306826170861790447379573062114268703751629044535512307460063935957656812363073996287959427330504316236700357855599127749803392598859522107400173003311404851317861845430666984118981335713969190418508117364886716068755884562021382438945762843576390731377034288547791059070855827668717526942651004353836873637342404178955115942139918883042671259478170032533532723666883087087121014742786805552689375171769407776788223431382884148738386214871066463932061366815069874635199204656976568079714665698201663248025946751594746229942959578645222626354252604903056101737585582284440977494075792982819301719949502084500048825042483148910424099868807678419588649484765431914856245149152835551807996129684643893736962508639279502905483552507128617970987140272952516400012965277717019381170258200656014238684469642338364307668515093942118521646834392591135429977284135159649205864822441487419887375161794490335155958308488478542502144363462174716543878531467382181290925742627748140199625015583521505550926535670587097588357145618048371783977574323131789152305252839080691543943343001407442538370507702554188692497453379251010820313547643902023612062950938478943439775691798487814723852379537623926477333452390268446423847590241340873314691372386326570373293287621382068825906754816342836227882624378614960387258674711017973280218206002337495785984642161954720218188764595672399468997283989061721561048045196476086371225284121351248789541679002398369919943557832071033868595625007030343365607567770213754008126495399861842632335939990749651411073075541402287134964131264513241870273128395552435861447205207998257335292034946766251362144800078108517789038083802986145750488338800612081539352705331575749450107794562870635599636596730476286687704859571635489069018013206656380613188591926502183812383914106828875104917490267317926779765513074610921858379382538647494948418077527765266480111505937439559947861038134854520318688267890204002845598630114468659709174591351352644024964067197186956669275486993490223020399179779098609666663142407712349970523427257577704468670041768915121139793132023266445205491775370730689423948577491607385728712146250061129463561349675300637603566445763624098389453855109755354121960967324809520926043602805740960924829402169709321857778311646512749527486826037588935581376767802711963683496193156021952477790481597257214816184540038869121993617635774671719843073924671349293808732311035623557259176656382837309621530170328035211242226213837338378288069347309453269759125304330559006439205317137446374793104187324646854667519891062520699880102638391379152478761088594149442038664016497113776292679989567569873698160972790088760334913177753849261171726219787740591172852810756032637961059715650490215207654102605032342189086785607194942810074484965756708395461519881697505069371019476434961126790191439213363942134641041316776974662674490066780997585426972352263572418564695286392843789432156836363699737554535349104174023667349398491664670797911490427164410554719252176249087423217765529797285701716495425495013876777671540080801943841645496561596059629450131356574925706419882358160611228731769562661907372136862244092788788032905237596386874130318466323505091887884008003280420117662125767979065754134252320436407935125162428297858404680302076745989220160258151122354017066688071529538058476223462070185239254661893391829244629835030688342989630084218469216881076120277711140554586906643153811874021379708521415468979238173806286854634980407910700696193203410990663479281836761264625181050284997731692130833019942376617716716586588416970541221571082403559240003017772586917629411145303781188945647995566986655340587262408914369703797944586762705351094305100327145190535911010621701344896174312004975727838497462887366242433899432034215298403830390824630445833155939043913149452180983487177228226205898398752395628938874793612606858511540588881540058341146904757483222371834859547001192706823724287289682114502326330593849635929758091396921395287836094290430246075724379744570595525661934978928419103372207952595697567340804483114984175870634103769078957928394247250539973979079865201384975453452840047354555919687093703764829803924965110129773600361857058093547245924284750748129535547570410066390777632955155710873961362555496728773331402318214301927349892244831312341799483005863096467272516862520314788201012807443908348165266427036580298733357302212188408526669962563614584624561543404504714091012999911203785560561270182057106632888806190206443771943795532846657285967017929700274382644438090906317491004295648117150222807034056455980432125487661610314653686944405837390197359250549722801395914898741358207815735732884005536238600874237046351444562607825190354030266184972657849352918318947209171094307998042970056282641883899682267279161511344585029837009592484260379049010254964134601732035506480223717786778731067180005785682905846960842502429015550135425305765533804615258058580007169082768669305900657281564631970828905195570181676707964610902328457003147886924703965967992375149155291358640636645107084789854269998324473230922363595489278390426415001271119178755438198591195506304947765080315563339072148486692206644549495901755373240476346158585352107165486561520928222069208745211278527954162423917191811669622391804934612584347948523786032808753716765740384279884936573649926349137262687957940381677705040260007593998713458545671277254605065820630278780283349336584513528617491679411129521593518689561184224822834203041427673880643047660979724072592063481119165363236487843964867014273896495062807439343115502208243225639239600966437560087940472972824761756775080114143632159173374799448545569072586275837587411742667992761671334193825142994700992931777030323271304765729463510575421305205187255383065428154592187503478904713892408859886510008678808750855280630451589036117570758958278337559657575963458492348739724397924134008919291115319364037796713520025422393262604297426691890318335219277303892467215398455128757754494374702207031910781634322124066402182594207374488603285738088200546579160582706477533684532354194149491328238187087615642734199881347037498329963693212712603876099404764597594734636184862811830737189394844395373549220325397817388871541976098445437577557514322935932546470861824732410134659677433791400724863778022697156063940678689270139139703631990924841064069419116732241388297576659280053722056539955506024674976009312893670570262934238554792051604776725148593425190391263482236519280413797121223646629772963500653739118688447765668677180986110728674771301872436767745427517969657208795869809721172595049284017103878842656169536933041542877185932818798847378996555273697196848320232451826919106030234525061166198010575658989491993702417356675403513441240633878634786156003382797441236357768858716391027238591363076065399541559636937924141244081298212014840993031177601031417366407095875553628432439746402586337390708882653484795513446647492664926197081079604053996681931235601251558389676847221234163023151347227586796559962561380890243395402712029520471482087560411655529045315160353399170844854563589076993258310838925553108148496530265137043286590041456099247952112721393290677547161895331856876798560077604191734288555916314548755606872543076860081699656946839788305008056493135400748511043348621451993570855475514170696698684340842150619697091640641849990585401170729082570871085101722490345847836876726239586649528471768319930492089449827433240182428378177348457920613093108269900883345360069948665918376900181244137632006315377994681220910142473077457969280424143368053570583664883581323845748848616967510273442821626635678425228992327883486383198439059815046992338942282498563088389982527536830039659159221008234121729545158280904894880322394340674870286938584654182847741736146632304243859684743099589799775062700066024293491388600053366877235283155698465804560100252545527969616067155986664428564073941747256019196628549655441355935225068553251613999308522286710675172917694047051186543694385670103953136243453981600095486053412625315925481374308267616415260425064184224658691952676854542184516142357749183120520054458948979947915916667658601435120256493341180922658531559128762495950950249391238344185453126077350417986397165770853221457542723629083452793188382899140359671725287661831171915460107345244454761034365121834592163339788570255231541285544538589712446243019303597896123151145542780005660975571742731930278744165199698430632277835272882938566445356622410070601579693236447104185297380873350862696139030504204809525362841717527821474457962922650974949474950956507358306661998745154275586739651036530500111296047017243225645191067536410658905083477050946287504182712564940224719081215827897946344665257565943705418365521547430537275072923964724703322984081684255310569174396919610907540584549640767422048680338907248541492264915537022932778171482196390254922080792820424094409976827220340568999099983290302956181756486945315023608140474333458335056835198501998814618646362066519631156721573135497575502204155663771024943118767098291323341248667288122869408562697867473989107930290768061686031465633611789447104359338993635306378562820905564344597905276020557749372423636804718398875868358462269996174009730170714423664083232056526068399099036015234210906735747680620003474322844946096462360297732938398043707808916028323788956091009613328473961063804501935519219205334093988867099119126469864336769030377757205818544493663011678958657068200396555623165829301331688402715705244675208237262325059249627084615260385606177646349834040588848896404598927347543678823677115720570340674787682089240962604525718155413389439464989538002584049070382053592139777207439948471371197039712668409367427838305755939471025980570827277427652770612486286191131376820188017260375545617790434991366867635078459165291241738896975964024926344631159900729066905372345755561424060496538930332291597942427803010809327956924489628722438027669795221559228663634834986256674445825165087787619781903353361383149004037668459788795901149636927293530192908781175839479909106426456288800758549032035322510353410709508186033240745235124707097883937642259152835109648074176459378224821703749828386354878689706266315659752477233697801437123108851746284068689027257299504907663733180980315549312410286659685509668149549156267801125543519878137266761872569235610700554637302695492722405066072497533521427977936194084923852706196517693338163256531510931312518903654141564681264180475969400176546358756119323391901748040858264122318793675461149865575265809492119651821825461571366007486469878584627746648849900471285059194298997728788356098797531518666347165193525045708687134369601602405326812194752914074961737995221087623397698250236491844404486728069595273651069466093961976484678047376409401474895466758769430916133035945980580794525270271731133886569654922539148198013500264363816669541065023504691297337162175497707256141235296986206563782628200778459299016694944030615777137986825729548213375179444762796724333256848643135932177211760404695007354223296248659207126183656291690310233408091932446213466254077536717131995568371610954854557877010068467426195230731801215603793781127992756181025440052588428710850233053357285830839057132467587695800896629912846877138864706543418111173992726149912080204912769714672126762856127037250424603193724992362717144852587776047651348966859058699164439220002691729021178006056535568581269160167565933806435940599669046833837391428186039236786851184552382018849665822536379305444796050146209225379399448364740776903523484839316308568144649265605516245711128419436105381787754717016180078722109285000844947912712331653925671930441987852360660583242474346784696658317941325735694811324870485869254379148688411122261642711016606938549575517462865302711707719107228216416385208362599251354159065412096934181078878105276915996500797286808187136742172230877054955631617234864440902803724481699327521954883963391007309815104722787350989006493135555231243744665203714918852968643461088666306184981541140203534290091708836489959944599947781523491143752422754964375045764360576263846516061979551789680470445509461898599952914312579991565673003732046732620201540117939035176451669042774457355725349895797178008307153161651168414276981395638702785971310229064296271458013088663178419984058109526370347840031872660477799015603949809155352813426462434775172929839256750127669222584934510724626264103982442765649552642342304185068966336875279139754646996170271415197788133255135946974179433455194120380212806618177036724243460608493095157810688751111935702698602810844468382960001688495280553740733735471871955021918928247956470994172622854820476885782837643835409463532483548714164282777816688304356988669301546393546042106770280599760341270103052648426774250180921271476504461208570422529304367139147724597803899818285100323525454917426829288464291596009488768565183091801203446843009452987297110521449039621238231872321162369353770674011006816749779190235161977615555625657645973156052953405011797794988741111174971789294141127485633652602239347857080143159739860966007010826576458786281112739461312773401810445417060832716133030668371476715010208161126831734693801993840010420611625199036525874052783377617410933143134239510319952022016463099370710918083142253712779335531170855449541358515605483045238674903545645038976881032858975840244919780412585855756128111172741326732662920089155700745099119167755998560204788212429623996734368969227709342250537594518741925114683006955961206469581295504890886788697789934261742462569246575325615276135830498273937337437572887562197132206284882257229886128434392821733501291925515408116098965296904906037922065335903136992281233612922566149430711857171382789746216115334836419491472162783537196230742739580562735350950256777320535540569576559836892642472114624448928328106038369966541738417894645471127441455307129131626134249749279705518813378524563007515708420026732425252058326782105753820847344856362850145278780233699183072551908281034577388334336083722493340237128087880800635317471974359529039431658734469051552454240804747425479013777775460101160671741713918636118226628394284679013977877216211499984919916437557619830136166427693473768066675443307982397438743468552889370941787453925069560994473418005064822140307856820224756655653482257596360011375170355736761668839981925595111176539000204288396510450678507295535166916570833750926162318067452428350304694033310982283169422958260463867407880215780344255124285335316050550828185353883329470670188581117555711023248770537053121623258734160191564104963954435804616007174493456331847926581038321985048809802254261618815345631238961278715161828173856819123577605446212604889454220145108432003175871132508395987885505445606932412380396037385855320817525502685979178880050063169163306432703404959948288040811797206176815819499216725911831842303937686021966721391975338155391288754951974959693038370509938491413449204336923246765711467955080057378494837751049144102336443835254704673967245519756880015325980299383947932745501934976636316839203148495956294100807422590207177367644055161160804016735791822612525424323831202090885982137593681997975170651614830847010650856555720538569047661387632484690136903157521685341217828938150074008367251915300396579964104969924927197290740848547863226418424948366200682737904282921908132487298089257374197761125806078937045978433780078705076926558976414413327417544942433997488014227146620461572655813571809020627645245584228205344333596936613966998621668841465998863772323134938040270643565056550381042729912968671513940394414050330402229287458082247997854676813838537249733481473419785301237713249763593989860870885636400333242840555336780885291435266312228367004065224153216624226365384714123922495417173946545546220175841068468167072796450628302576591269121341824724388238948570542447411347207480814957855543865816863008383580636440811170518024288270515386773691111485257083995899752176556156192310526094837260362965402003146287221520457297589519731417565699862399362797418917868270973574137051115846260066064234646094448564833601861849116154498255560528991330701926115473362927816253612948606619148321337010793660732996977301127147371973533540204351607820334203538418122408685480298223584862086014493183569074433593842651134766497272928315222367483796193702382569141108539030757036113156745593749991984808548339513023191668409530695524391139069848988666623564867589571840343032344968543384041838290841460462320107966954862534753458223813409520556169765906679978393084239092951691690953741916742229342759726729764473025295241266972790006096732016687591585375306736931507095148574166385134592575173588536280305330997154725563652420554092236258621532530738515360885650101346739238986971310080063268657106762322326179169498289444886846781008282586770625404831268350107816503547341353679549672293924327387798855992421906862680748270908285748602055915976293637991844777240123422123927303009434365923781063189846506097669688707636258528149607373416348242657038658640872714632773459111375383937991885087927191308927215014842835230565656807502043183750473842438785319732429311156825643719622134029072062878283227562717255536250276400672075404101693889693822603078553500796458443733006450515520275718858999393665837993178378920444622648069305067994135776449935368732930400724823993868475569427629174036309731457640597908379151377490144495997761096130587689707266814125720224956814616554258917090828656903427636588910457673297662037180497253494844995506732646304366866043730432650824190961048019153573690151404952266982901981869691938212760461894640370511074131273903994807476645533292685936973933778957039567688226473049361222785385027384785405427581398171396160725736560622000483305302094535298305201025900247598223343479758478094877261624362475783346417942600304567445595095820029684806504688875061676627462933042412344773351588994834845438446385453130459007949129919913600488879001605206235414688180360169568103463198668305414567476121243124822384379667635623183886579698924925311071746807176284319538765699560101751770212003316243898646616628654455734015233573352603971574110446276153670237011298797686195845211578261118600307710417521108300199316254949336351797279246975961689691444187221306201797437195495476524483205900739785383832754258354115779129147749186966408029273078816142043186389249110680121269611588127164370222059255148862678703997281064626876393159217991517769509017890137885578767909158593709382245035066000920179650002654804751728173397446957299121726162971992407073741240854845526794240510068990692566672615359266425260187489567175632567054623523421495780573382109990866379032495234700840262465635055334432259128201891491028286150541263787658936627422566657105721659588839030090090020469378808778802639750566561081718218975284086481613483865067636697000787636915821114199491031275173440316106943940894689026344182500607053295172955090771356076058134199314626000265294906564535597615887511065589724490154946959049020574062307377670903336662067899739503150881446931942698548192877263789435682572963582717165732811126462894288178170972545886756889880286395037597982942290856124681752709971468941162635428962517180534552542088061577755793209315123976865789653367513609538406211422523326925365481760864454821062132457759166129203296723864468807317646200433309030094750809015440695317808730930594894487320730199308835039780325194837312197173837601855959389374136955590334681889509099783098018647178965739962400506773578840280162533950577832403583234059014693981956381043038251264235361807787153863762370052995067816331904170257732020752600857356292042657403247948137589479142368839056374388072345635657843821631438378803006628460619494302329826053253833097583890548339637375199887050705020341415109765698100274667197881989614047027046701103041108497752416934221506894357467826598353771279715924471795803824104781899333639833073998830979701584566232481492485697272082127061447957513464511871952822523843342393926551964328339665149745266841466621694618326752626162653259754006571900641934069353885684904265278329242638997399084426782867468283801407955910337955913472254409556785803062687094592932826646544870075694437085468981191928913203046999760339122978255497261814074624563090490476877747688845763021210901219948912719234009846332204983893388630533300663694793254205680219131433537982624225764127721760535321832181751218295489854470326389372723923680988463022262661717681274624580529347249601766000875775044317468605833553571458536401095047804892702863131743548693195280508277391703375070374802730373643748286712666479759209989034177097383103678879780441379075546580699283101046407045598437315255484957647340663639351437466009719575837643398598016246159307260093113614306860007798451059748342773373553978395490974177995632815913227618925866303208916109848145608834347594088074691717274042089960971763504241079008810747789435533568940907361955403788354727914892822252669139745964359061389649420389339299242594471297067445925699742645088529267735566487221264166057380720153109794872088069441529362901930475714550873519263883470043462909125669966651605103132900784482016131136782519568127290880249432591626056073701661379423266519231629325324660650919145242822333619331100142686357367530575528947138142557512535063004330323142755859406234998961616544847870461486987309774306239651140028958857494518993069368141991800092011157285150006535119389922138543866928096863445072276363561569477315387236104726960044096931781945510250340572929636170430203976540789329491593054940514689632343557261726276262489300230999742880439580649168348942752982664826083340471867492584354206108082109321263359700513532459976366511339434383525133920595845948479976739186740029856023318687185004965723840192796941617080807787993515775987051126545980932522470565685659548130485209855098043768898550137328158323184899678441109440025478097264170908975341402212841704070569566954955420693580826404011386835283317726659143787856006141579340569851739168085452480110305984445123541116968029582085818108986723531657351142468908922816942673169950936290421136586132952948365491403453987241485544023701211213256679467247569243941783545109533241653861979307703288817321345338487164199120998637781903411273133925417242906342691244632674868662233299186327344100390009638822845433633623286127849231030599964718102710195240539602592632143513204594855005676070519090834337528579665924238635754927639027862902529770046880069621763237484110153124612438038535556368032690989762725831486531606477792949062417181056809057627982864157819522535432734545698635397294151915804369253174839900654827101195425581144248031346938932422755070515407045803970626811097615544032339441879982051641087313924275887334165147305067796758005665096135602830259762590299657524706686260222121002838177523176086373839206153663220910033453544927859157688850128213636185040858060918353230639780488879354841943954604278197040199920371501501900909440748504552890793200084613797109616052830720951701862525709237533642590261041259270616046097087180170084332806364521534779807497121127912461095175562067684644698448170512603107818868239014720224660326440821617377424178268887637830102162030051155077379803586406128153572492346812228666936464268988491477604050419809476597542181102988793177708086091635070172430921905466378021622111004233303025047391045847145475806025517762650578561720525780729605778669203138288883004232598528851062256564032124230184561047624166506173093728588163425071126620762177398637540463649035362770406458763588270725352865912912508009169564195144110850863617386581952191924939682950384080443815396530509190284434582703459576942362618655971391108830224960721503000349642114547762884306311640796819845759565200233360256365866056705933068232332451699037459781838887726606538424486903512223929121021580647516157287581560587699441829452594290844278969268036184831583016168914546121319607341479479389075899598955721585371750947481740585199130255787093480975986932080413217360985462824395784685544492867381555319590223775517641617128443208729501131678915313871054004014683916822038310085319628968976827841547804237171618405243638545205415076564268893077461353451074133909492864072805435163579892272779050312186877251484156415682840176795111865992867024831048356060340773735628102514381620995220637155860029249616433078364464842035231650382472549166702587661157953172398178668352278142623043542606248798413107694689133485338591001946339522815253452336904093731959849722672323857209947736170118549020963493574893348531603001863615965771786631295250801231484805001179970381968587131297060660645093601851635506002406781041063323563486214880180049331334256226930586824104337320135893174368035824522266815973076597309384604678429153952362454725926301569010884449957676115748761020369206972689247361145409347829548128017549561539799399418398474867863459996727461291308016654990640312696020479446573169769124672454449106649044477811109789935251024349150119961228019119216857913196558600301647942650245238964538445940686580963632727179131991275700118364897126700687545211554127130662687916719629953165118876127694955930359592165532889343768881018154147656135841774201911099977498435911929831651171155714506236279831436676012349248304364566648962569633313323516654061093577535744527865975862545964534820466952092832543438784946792727452295136176973944525238543781889329360201103607078550226390671003343902202661946851427542850575215638428323324826117269917113219677204538651466793596240207809844068664569744673504362261707423414297123102629012608342204438275934804754321230000275769291326470632256433384520774657742273605484942725746584928360734683314572602022611386981385647106575213158651597437080046474055801921824281536561675652077880132369254840838790065429927425818994325790591191537651167358011013879860264282958943828612479286659072753208684050409086859145156597931830590220294068148474485234078088507813623994930036999014390351365187527503400449324518934511787638620039597952253652775915923583967914687379070265939654892362621726027614943002047366249537057763533859421486502454881297193235570633094096875774183216858510486760111869429148897031390607555672905272056558353887730426984202030719914672597595608000052545905228570347182352488488932547241411539448109146329310430585685116742900958069805355367802775642567934849413619514441227765020672426159810091271415897572474889155287973501813124925223316500456949703964502625989157897237893310050809026238461949350003302779293873911133855703553705215825636116088293967413487473066039359960270628155712319566847828868432862987827498516259112560438868041996915145060156409763954998623128957167679257133742002210625796200479007221092141454632311589632506647867493350296613897457248132240322935964940978695601620244194353253248250562052904912024462233785404975824135903058864142155197920706504376389372323986009565893881711013767577495699027737499309627192395748266870087503087441474211028659602542204430083345596280779913790397452599606816074307671987806811946246373046554681820956518728474157154135787017842533917616055991987346011612415368000254150632876057300550043853402621558889683454370914841261147097828119883763599640183809110410517175996530934034935440529344382140783911947252409353150165132179861801156266982325752263799831968364920910422169811347168538251058188076991349317621768725049918723530582868508673929912296590657779966620281380997945062947544440924471972402121188751024539397730338771655560114810572779028625805027954407534672979667387122211653073295353167037700059165308403604074963822967720563029760963666778471371028498380765074018160310970484090188409595321885680948921696884113952167405256398930498768835538485829209868229872511257535169551061441308390603459809984724110961280469796274574416448235014568343525020167157957818664330829339502684984807343794987461175661329241801960093788187141792774725430441512039603196796649866633174977299729269183426990131810236164389646826257788287500358981741372909049847028351538846691718508981672715982011302752164157332875670405108693855046235031120958069485884751749675775228950775669694284328379376336555197835220122837823703554527322917408052494448949653123985348932016244043729434225126563354278009947506009289037817000874401118701390481664319181991992733178877781755881056770554694191297356063895732340246342845069972627087840304202767962645027164855571029287776531068390759483373616898225852409789402941137506067098703444364558415791569597860220043505660259254304462360597759057979437861301791957544270425467410247749052379166600678041989350372279021612021556649478195502795461427894900263543265408305600668936583933112650621590579377977925558323350640961037522560734891937538757601843125958606326021973875614410319034088677122147459442080610190702532014540069739354515958756576782847643728472517545502346523158157502544032266906981275314271707418813242015607107378645987561011991029519006890699570765039604281286200621547156741069490567401883571390313428870444137815571475672704050581372586153499844913779700593778155530229006352165766612124140229294610220596194916913322639897909939906149156905027121581853788110052900192583013461571117226436473094892272184039290637591768505409141076801270169303882377959063064135013427268773393290890739761527779863151384649192912579456631194190275724609895634144671542993204460286735072873155877788896515692301644425208553559635333639059054420542106907888391383369619820017324995318087720216280062358747495147727520173491938476054264914650161547666481582068244286697892070366306258883944259228582362073143460488272611172354915751696390723571441972548895827690804405601883141929837950349944807678316014494569102062064198651638476441242809460692245296027020553773427342862701774841759353202692344131708599749112460101522735663709731076137676706788663344798640734587062410944476956473468064948287558124307441531673393865072015399507139331822148292950818029602899954501707234745776433903488874928171558739941541258857746912807595465555015052529164544822318091993438918236709721587755307006286571427011092226704905336136422442009147335269790335178877498419772784857725725903786350199281967478269888092492448961722622217150968951266884061193301430905748646819393163381639021840902724845369122872107466694384774942994486403101595543480856259249388819939859318153474241748588769954905066728667300582793311371970229231747384368647276410365046961181708152917817761843743408607550396257865155217286950638065501429141663676778794206884281892738212916987122395888452778228457308967721429103794794512580111179985919554224510101972803132758257221762352617300878600518198571017242126512752928177231668115307790143199751151858279209692873443280026473268674702958903510474652747746626090949634052618434702020740645072350268102757936241421727088134495541576088852729103666377284570053572535523276951653707692912288626487393663184579765538779034454740314465842161029861359297698174346444391365474582321454955790016080220467591542679346203021515214630463265557347684831667924847471728932303399206875602217486882886882043019651743541591812266072838622062384422222830099080654237758829286122543184163755210018528952055287422325394127594114033318605198467401260318688874843033260327985908929735714877356229154506939948139638254735197897287337590985809230101423301787267966031510966729371348108957216584672025815284267646190500326476804594177787520027812538575644936025794028817725430076587744893348728928514452194074760202935926009563138687636960839544289737337741993328029558115069879859101485431125508518003654820035134378099552917627965539558681284642321665735330645966345534078877429906159786916568988578939828838644642951273842952032588885051378870060643674786143489588558099156295252090698864082573418175369971547841379327574842700333005111866486634728562723312825023287164568554370056965253116104169085964972814624527033150435613607968813191197842299714226817036299982909134643475049612101018012307578367479386108569221461531490052098962829683543557304338208059012309136736196263379141792378350362594726654906580074487290430324138815391128456342847388552801004815373207232510202142611121956041006217088032175942148173544070592586605840283346613447278581306173326342582579332861747613071802258054121106834267927099938583242331869308160993299612127513242340072456177153777009220715197622564728059583608678786704133962142108888384736824706500409816996606390061461203723795637352715084889652852343884156590147118283624895628688188529682910771577668812571045975389204305985051497348463988086129048908483816975794332941021422582039172149523407197822674428437344753625225176984797938173733557171381604032056766363766325070986575658602566508269938197736459118089374022807000803357796830840190326300701193792942797558796862787229391572169048441669271139923897810232632189281098431947056969979532689930536123612641094898796529372129038687511073904956133065922265520288327814206522373371864549743416652021640477847458534400328814589142213504190756845105719814470998902288008379542815222532295608331613983532180706324533801265625351706021717406813297470807401372794091910670749692680415374361488926986768375678572082863188745115808975080677433999796329788895868959913105436344434913756758650820721060263089837029292126785949572873948685060264136767406347517224765972019615955380699646164484212702621065116437239310425951079124687973116127664732928139749211226230013690625685715826535537110608722079694398347381001112244064044931054965761144110226342627762705093154459268289898066300249122675143787205014746536710888443218131096168024503511683159322538987475077346579015195969873086951846825246266818920235192984388421218368990126918305158069132452600815850105211807681760963566623512088120213979937626102909595926409724167123038156436659450102568699333657271102566081227556844886672229796712746801131820691060639052484425022171159448521955232431043055747682057291246410263115781415834561895218636160297656020805169425842801202548941585741794369602899371140203257648339361909994221602001953923460783451849811069530414752153581397037564907298724324064935960182354807006584674182254356735953252880727463323553572447856205944470204980937604534736241340571524598876346043793068194962506918980996498610513566196543668854090560107203350474720295397543420947726429145290138370827090666690547204983472580123491260190572350188181523660505414948373560861159890881067676583052541154394256146433704782958631243124748383325799273003503692936087425899742723400714426575653811832623403117673131521717921375917316974096317269726352141979586891668112972478086903103616205389668551662577691436935923738705548718274344325434234883188589963402589115951678106783203552010309636468489711376229936146075151555460873152379216059998082831862728471767934170950341788231590293710821380920993904755312261793535465167768944282704934192881766629336256108663232688422234834275959395523957874325739895443057105081274627831071753700241607331491461178560744248516994807027260015556648673814622367019031232129536527142471046505846839663125684380780155515046615371984854995911861988651720909738323072470256665867421044299811720361950962267430130879741046996662080888555509541331895241002216137661820326599588842849653729305769719567659573388737363436040655823369258143862970376910320949015161944482245869359326175871157789562174312350726060441232548012055821079258776828149880643678517329259474748774029705085209393755271356067847792275501358302889476666443780460223499413073342242082469564042256533778768184444921736480942403629410523296098516096044969201271518098333137222243166498217957907643942552634793769067392728112322198915082933074962592567518275439663810990681918187787993815013137036199085256722254845932311607301466237813947009459053720936177626933631020774222208439682008777506649157272099716605138869237557309480962272201711517874999126412378596057569273439591815014419662998042512642829739039125191377234483564585325057975237963376410926211335163634639429490330733435833719819296604871505587613047835579960112691911363849022227939664013903694338723927987927122907114652788873845720749652221995528880846344742616103966070535302726267739144872845613157266182822243337570576290400651299063050270263158738401698259832384964139553511147186831313702186645932366341474671465961516559561068134932002598100118379087240630871205434118147953381407341438930880830216299672972483719804828181091292483835194407198690624291925708015341706510385226465429785181753451249916319085212504250279889607670794378118518751072700745627064000847314963626470615624487016734980783313396599364008926484075078974599399380610139096170647718194218451661242190462503385114084098159960008603811382957043899916676250376028299333747260361342453700677726335742342421927979727561201822209268719437639657883710135632362607888434645713271919266966336669887702084606066553141091931105276674529023399221664171720575775065362311225671887990789887064641967194026627436322852983337932908742267463650759766266524644940199409538973235263565643896988110203587203126380571026596530379033252463431232339662714368274364480813842890332822650383392048377780371471962686104895412247148196091096399265423487230734075500258904543642183037869395744757034456388252486788401782177925934269255149213968112463674606968752216139987527161292044947208343711503763993020332324336541601753541292221064025865811558999280708511262587975402145272362951618570153759566833271746509103631768230915372068635028528515590046127901586123899650734230215377153333793391022948262554175150485881841806533054371989512283488164559779568409986339371173530316003417973566128927834074617890298586650974616898334288565091268007748478186214429092352069090587640262734933994459224476318452773788329631833528266610554302474446989238127065311214746976331667788146595435480062088474240308711182773394892146406345296524191419594742136804227737412516952445204968863821557036287290649786240591648592051597272690778619818244687853583248712335590254300151369536517995089807432633007649645756643444522421371857030445590219249957854301487618510634003256439944539184896840276015441278614998679251236297563856136413033185242103850458418449295523060021831784494874823084762805334954913255665551275769961916163437927840542834914213829638885977381378878496632574254534849230456640856444220965663714832023576676678000011779682059501437700201166422873306753215313740088808775268526206762229227532453436612327093514510655110294821661144767944236620234098451074888386777037723960755504394764123461804764344043653298530178601105033266733762144186525625387235285440398198105725248248385821857056094415986497816949067054675993556651069653884029632050195487887266771358105953790469817724840232277583781583366705751756001126413284268907266465203825468915612500461883612913697864254176233203973819965889506112037507104845477649734941116883507998144648187373814814343128755758116556040437948174565088229566830691171475130095499985028810940378651962510429994544662393664963681065920882930602329241673010773485269289847439739352117415578371354060477274635532734289773024759621048774888030504178138495387732112577500979689445481608275980928708535057908081986305177349370101837890884407811256118510711999251950029879996124701198466978048121185870161558264783378744754498117552756272357503574435296389528974091286826685500584541967554569269428817905557682542776910133353812674733613007559890442773558938676760703849325763109062448757978213403525707188450408364534438098174203525179463018153110033889275619868858715197107079163142707069208265949884140896963368006572601025296350717495616058089924968589154419778032346450439958419449843413748348489510773360102105913659940465627217661724976290966457279240346853973487909349600665310917713374910097616992631031026901565954058865762063871293716262694997756672942068938646402106223455134509701582423242037619580441609699347402139810596575145426293396736652237329982074123676012020291909760375059018752517713357187791216510552387274137227069466860034425451706202533669336728378474019033606110850983514947812804206495075258616573895004709838362186365105844590158623106416323070236837450534996898033377831830253109088226425965261039060354279168116456377630036627932221037360745881388862461064143978884832066930630961532082202465506986802752118048206888216022841078576247257676677592917976588280015572898493514905166852542167872493624605238705265388087458931389820938757440056373169385746331985615359886380380978664277658866423977808747423745226539507416444065524204566339281519962270342395493798798165123947355384706323418426577939561802085604574552753215507620354578141947371199567579443419372351004787524701920971895123785529168687895686803643329252332169783574072457976278495567268123813545684190133397439055319486920519123598107250314056086905802891538748781175114719143650153774219964113962914271735198099039785971550276853561386610193930787441955582984790088072215100749719543422144738450745393949954125173981814481477486843681219439099364290446207679067067932033524653162696345140880601856424577254899117380591547927881538701223210009259256617031556847945275438387720523035023315156711857903478471968857713096913496088555155756136540808525939405707126001965348548454777565495772122299898065978108670615120490647143157927156151607606603112900091894140024485342089656424180207456001427544688619224325618659350400024622202274482379558972306483427320738602562279811374248546457113321150183545199190321753712185508550050180723805953688397834455625039409148141150929726028876610252540560713368874011940065663914579468747865531050726741156759243789746956381920851204266107936130460531381542775499470357780194786099106736091265630504864134862864393274161782997720293905853148389849381545057348055522339386375368616905396515450043894838102685802692431803076008487772538269807510617080724628898637336459947623143732300391587667144519124441050360006740878221643541447034206456561728220867755239435781610638453631998379237478563715519029065750931862529758421591873723088268529498555542468507843824776062908922136692478122864755166954565113443794184688929197416473991844811837132342825275162285088402717308318974245477458216247895059871593618722770107127168895670873435447451786818290889243573233088899683765134909922405792860344509353187157639923568053810890813072502459383909509661231009983827866275907088474507439825368431454224676885795680348928829492580164658587956026341424884276106610030262445155638848584216560262173450369782693724666542567880947606428113146075316965178574270456286577166685243211249825056809858116713992920955399706500222486085284153186881346056477064588370513167650105090882456888472934683564221499045677739387451645634482452198834215132937192579035072406691990153359308613924329190283581677763075425169306460867103706598150791342061381795199102224304066058964124479901897224337573670145693108886517790792202318011804769792043862801842274136445140909437583458872754520509275162666974314403479378607934414531800388880273479469448495469787336269387111801839852684995395421940029932876643220807337876447908674442765033369223379372578036376652233987275303452907752836268943442366523752621491261174117427160843459882964442420809088210283891364333280460804003480364022441591243434735771066616245252472989852506725804667143642889259142478995882518237965299603492211891799699922623382561008218189577222254364285985998629239266951375890364046334358154936854222781529985668629667933918158495694714348075994970001024882515308639859646200904747572560203388801912066497798814831695767936880090541279623592270232670673329176773582884148010222376590356390997655315853699599308575679278437969189508774778907988010142783329571625439165254820497742411327127876689364067582352757609999066898650363600756139680171762578919274262505471218030104520843544816081339140161582220515654068926866475023078830221914734198691004516300311027392664554307851717395774281399566763213322633682954133695126167971315242578057385372650524425177094092071514708796200018774936615552824782357681006756055661909645602452837667424770507627794574233726593130196885408328296360772322153640051566834797153064253298932484967598173093023342382902360938857123209169194621947040457445398428970613693428168101979008087875016126866567738319433090571768895359838047600562196588996080502917626119682528532663406787988621051672711197021710473317809577833627365583049646105586850961377606096746742753425931546148546128490948783860889960698993210085197785887071723014095888831195705303516393133125020963603613282268163216099881667223500634810692707912815717413800826285083247097536951412452000735497006536963126681033253567819454549842784792547404726014700467852095224394519966593766472706458106196399472531654563967679749422562969885090115351338108017485022163643352662442914176000667352111369371253180051954638516912955866323252539123560143162068072879377510806758879031119373052240421590963953166598380728764891893632624119281702057751333239096797921776769337272849111184857860351545470972751671759372366552391544461857337730929182583077643402570865807496220875174443466300473737975400931652643551096870040843700770766238336750453157531771932270857552195207701162314674910600924556868969351191203860583018241701605579758734287979778527839916946583058854046324989421202021024248499818385399238288057311301114708318320431927846546670998270092405485617798838056265988614612072964060416275725348461119074643993297325557895984011665343093454108237341108952194895089098298238212295087402517358033390675808348317338294066743653892943399778929625719754733926021272639851296274987924716902690059764909238919117883744796300758082774916489067691635207557735240960997336752136883082039364698026907257146934856404506887323724780781900114556378061828315309645442808351272006589631595362016383876381731971324190065944919616814904510296503757083159123243658322589930556766935179469021194875829354166168371872856659012401015855544794568424731014241480914302550334339621506708141444988741820363867411593640076793576836950559241368880052398332677523164720986624202581870489636927003871403941104108581574935822468915914157782409457074321835964203016501422699149288817065667597478539338760112610300262181625052426004664246749524906996757048187805525086764720533478321585176355501274604784687478072664022947346390478842217159776176072933842637956591607735762739317457365737735970701528393750522572928459519249321421818092177203648779017404937832077699917072018302743578765795404025652308823742900253755023373173617476689457113670491198277445579475787823829442151564345702194669763925285085888425156186718240223139378489997074158286603739925437098925740350738262839169406325331124773760819451523252390739954354247979260293092283559455440432292854548486762798080675782541952141445307947462391625049186431993981737543860567536767332978554647804511840561956581001128238322988598040694411925077665440277606819916899213098797422233492811841202065111223322169909664896706303841040530745577052979926414897922718879653455274927772650389624548407036028031350248705383762714674330377962499495785295144969866463037024685487382909025730728715425974432025484535538972038986387950147523099957905377988905095613150387758191086064124187224965760068483307212407561679156269017031422547765363997753774926534022694569746477391583818197310837493980864248609150829177289164088662322980718119245439073093767428013780080732519608429467165338494658752562786105470790203694069948137023324773421606186318877559919491749409203534295637657724300267600722597293766864716161062037314015480902778656743225193995482784667714019671506421829002290648643976057094477243854749673275617043388555248558142600705150943004028231358188687855347142618146214008458431358840594722763501657644260266751973670929243989385061831819695183166144465575433593795430825549267034371233837145777843049312350594544067051924842584278406865485405712804964757443051799495366533737127663870677270498174663160172563983751945417968136221012846713549351071785820834970629599537700395441733071530007905513574327834736831478441293101263092664393923554213642009045176084621755026332761683669488780376329699011602209567098468473482444368089433541643903875755912568164517182578869426745127193972207653361993433890656977231519590033122857574121398525211980869428546954060477245697876724605478424491181723798128894138980392605967139347698160822883717121428087146202734619962649252577488472777530320745433664489224086434230560649632330731754933612033690727939995102644353766404620359664933806039071116066508948438511185381398303462061426433491173096186972119793230318622207979411318005427639686991020528955340496010467489441067480248185427068021717950748319037660757904093598891444166972389805161836314964867171947620392647184610587322245011314071731124273808541350203764302772869073523101900592410238718458007667829958243624214063039811639585518998488541711318702209765380751576404171576110938096958523603314288113590690078860725749611764851587386523804235009715775112035466838598172960597859980406688939559193040700900332815144110798252814829092654508116955369741212779831343719225010880857464181588858381343071821486156430060348350059588395506836500957302434996522478770174093675021976909937554010686198202092650857407411214521458136293081617603147411970246823623006605486669288820560474708927088529164761463313791241906819219005754390957316688392708252199994862877252736107509322005218343892757024262260563961633141426762865040835464566141292939290662696616417378252117875985026031347071722722722957483593217835353480371477828465762202832195206450125085375289690655951191561673134935855433081498245410578337743560089047755463065822993200769791274742054763048150158215331597805510253456275945652890258103431520659744154993999917441230559788617228628088789736684698311313407021701325071646686497423263755947559130587674594723706865988205916353775273032017617898713903938675382850458831773601758248122469276197034910680330363402449827373696239695028131164170106324474652736368891171419317068163372406839922166636665466342068407998528833639636608149180609706051641764607367393425701486091932394210799559141305907822234422342858327518471539356587468223075721812123328860472181374554889909198252723492128247707145046801058945355599613096100746400505472748767714486714274460929710377729183803705199332336498200630655173922933018598472534482748768923110831574680536344452834954030103593933349147244673776599920304863521013601476280121255757461207474499791238660765300546207278448707751062103865541959728926330765370017624758156262397794076984320643866278107213301834766184036331846891122309785518163940786472502240098922081035421128436832594516501239525773742556772219866261276126960378414527860284088762418304347642761709535069346225708756591347525930153228721591322580341304139920172770801827988217700738498988016588174723481681189717436822705007582197727419388703109157613779409650256030127416834392044337810266573572177296449668756452384279514105064508091218588806534818590586752385394832499917297926044223438616632632871610228617770661162022397748007441123404481874532181933589950136275921187058793693195746620351903772916345107337691840618062557503931545484607002307229356391779949472058786087355450314881546806551256071036316907399150276341362039860639408380766507292990003442535502636066669886980577815842365675813752750040408954848284039052639037198701697412393921676534306552395945410356311823744739568912291749365543259871436080471718367776620418895530347269689457001686392667262489545869050531105977054446845141576879988599029437815833093588638967293295159263806198909884682478219204141607444588103087268684675193743175204213145767389798689240084710996297230484817444746719354979237073469141822415624320424780750524807456892201439334353783564861753514502723147141909022808073862390178151591514135175718055091029583905730435729834332429462528086469884956831415921231039502151747659982889627166173721598510296249614924278184487306126741559161880533819097448647348040790867219163840033009852712942305158165800760195187193070825522176506853111842334810490391739023492675381369421815780042607401332950665923086066417326100291104499568126603907525323433160216953983616580407962408830418905430990069872552336733384562972762904166182224688207994747204975362230862872746516018521408525300579267927488649802916578916996008506555584823387290903694127567939101799683751796752321954732173827029485216263335595019457594268785805941464419907136797146580494362144272522311862790554158147124010515618360095521782737018185537736738510420103605793668058920203804747626419021741620687889506784993437517113550041733025328208243007621237432183145403497577707638721020851970637232555813024774251529177433303667384098190480279363703276464403920897520095164114032466483939957996990704650450856517611739966728080079470419019807757228587460608168213171827431483923017101081844291114260020188836675532369026442332155174239259011702136745439567229343503514502424349875656211878766702566995899547870272146371617723581650763976488716834533379569075868043654049850795453161380910961452615427036516172886113795577117357161424463905020315707519491212959622174798062138763189183670498886130840466843292123441886298112343757738229537972722911951135182174059126026966448766431259841927311017820755799125021046560288050534376397540137361280428991387011073847456550427573487763920557015240027780616889129925430551562439797606615638101218803617887558032257721120172301211643702253353753767121903123304988661062291247089684009225015764661596442580908859116449970907715900348398750663646613752258027669056325252415563164162724166892757788526590318007480302367076390611295446303627197537129957869408885804832297357157285029949478705068290828359762365575317760376727574778597851871590861632671026646189646702564634589536873322896035873049854954080818700922133325323924306567981836346555413960793648600520569840433419365668342595670949379189959084655328832553585055804071495082522895708764345524175414132626398323815897453569884188377637461740968199320479186612607347171655324132980787467146285995487014420693712853909887754696206356973566632050554342022720875765461411209219682554573335344216248550462729212855639224796349463341123476878026364248935008840207998996454150023166792417781381080359514668094032814570222938330183439960917752126119537031146859770975407863043249999109882581337041988997592579471827526383420000754418223575393459815222984472404440589488414321487885140882258958777021180395883071043316304701738224708092272103778151621822501240052594647129423659516547061279688535922593772590156754722890049608873802889481459749805975399544449499441848149988945423006550499976171001805664308872967140468962869958601121074177683221258301653571249449584923982343309839474125813752379158417759115311608647698108024010074311726132519287314936445872024988040694693898289137993762055495569964441968789195851424473411320378862101627188070398992785275864324378503030639071968419635200411362552371733158163468495967918864328869324505321643586246924577129906830118901032044299258373876507724971965573479218636044702705448376971998786659386339884758585963507452074507989251767242271230833462875716363947473489527152080132413893627078942055938880670960506626950430597998977534656683949754234801781994568045813691156353771316967934113537839573557629256841145320839576381121405904153591435096080823854977888127776092177211483401261772813708656339600997267823529174795654520267009578947392719688157507608390325543320079778328897367378096459374136349726927366100872468459982336158618060604264895283515608294471449873007357194871768416440994442939583137806121881382158873196714939438155123672664329252274916699974073038507467070281669455939994620625064139294467083800693033871863312163504425962340352277590441744886578044008045298815957784444299918869079111850942650220948789601081662433371441412816434340693119306682230456488070109802295531474544553650569915033540180123349644029753839679532422315607781159944244731846151360670902849530469762063271694098090092663102024913550072596295002886253626873993746616117993756260640597336062839562070128306732720128906008218282301526812894342705527647698395890395703109843071955740276281640809226206632389360488666614674122828217799408759528819974438248859853234441540050083942650855781681859410611289419860060802773432463133596052830570072190942345713857785728946824470009123451010051163385263506554329984860048817956734673701543847540151265975544548326027045044341197470202229022280703033247521650284108271345801626605557385554066108326641455905410704605613949979988024247777250658599728791211426241332708708713203605414146121955220615144380892609780815534013870568166641110199690498421139987141748167646603308204693637100057931879407346381338129000307418507976462752597077352347131452253547110596003354111432463415307322586952933863046978244645761030865050083759186926957822292971732540735548740336378687912384046862753063393002520317502225649596672857152277323869645796108245886007242463887067605919185748120240437579707950285912662873690859160922817011304161033833641300845847465878410854255728587616488403045337328444039060418266838675769094866355697655784850387691404558355664249805279708849466661302728228228243169593591979473328247617303881909665239716531923710862837657537309249606873157771147187343530751986221161400133093986637616185266736805243919274859688504810757087932547399007892804792976034950058837575483875763496579523221651856694764026828405135080981762395654048071311495463121248375949222380887228141682097111002774559829870399290829151637491738516425063127885634940824069977196543634175714673079011582934223355180970073221627418656942531778589492627957520955890331824230399597206844063137322171836807953589370181736295568719330542893099155792402548607625580840807888535805394291537818467054000822554668956106747356813150313445252654675018759396743653788939881848809172060313503159558547498198422796565292233332620592519566867810615275517107253336266257764644514328542033025519914531795011049031087622146096624178291975519430204784651231348493875770046920227376506021461893997817273040516736014015885729561649579465922820820237155460889254794252998055481180843353025153099684937832750541107399194625324645100608327876216126302216152083809982044721669009642418928883374685756634677250887974025137445333403777454996659512937998346482517576448389537696647159857272339133650803683693257258893372061609052786606639836220701966919407440918917961624236843552601652371510111001378977451377312854408760459492694052295993649364588024922045950461699841391013336993912113681915076902163052163679216272078116170866409035507135468062035340712744145267666939023598404340676636753778041198199992538131527024858923747279433431426823534752358547361663784374707619590669398097686080706915801624740059641621756836735085013758701325760857356405416166263405597386895599593702691125138225378050613749049097805777916457823509099825054279572202306220704137250254646912819671797468236162351055377519474934843832251713878004572228709372093657459627839699405887218368613394498830874243709372943817914027541818658564710373382193070565764403538210301108249062056503664053767804486006400354668666750320295152842251284348078826871668358382987685517151270764912024865648662891916786387896102658095018711009796331611213281951315372245639960441430702653054250685836240970261381996531738335492246239205942684265827878569414865352838098149620142901725799155542335553515238147131764005226092659659073526612398292756038114836971960906321377783373451377517415103875709439067397447260219574868651273853103390086745098285485760157017981546147848675953846727405808275502744736361816086817984607877498384703625808741041198209150835898714187932087434234253828464811172146084689100711453166335781379281098309489859449868194603939096765721307775509273151212117978910363502788848694538990759885796262771909888438635870030897248618441577538079367645605344457385102860084047383481759928752382348341973389391683967566016639732153608833577791788480437361923932468184875325444702039484734885853147870979640540248916674025973855954311400573318236641605521006778246042503070819198688306695091434144193730739068872187146843562626597758968456120354672805058174209562759769540141778979878007097745215475194328564035318386845490388624951624681550957553254676940242678782368373063628212772150755170697134908069401283450819569991262437644324623131910210683204174410728580003665566445161446212353343292997141740092062885976256125674489483036064555581511472308475442557043391086743839139296350865782185571009596551587769898963228866695804244780701223461047706957648280955605514623613178057591809879179064418856168969439389156725036090064441901324126338103748957539546269804744213593172290392303316548096342592456246893914529413763851566213949874614810241489179609026685021864081916442681564553578812541530975251299061187690759972818192580544521659186213254123931897312773470958592899982283157812536520244794029627315423568783669457830933698022898674623323367953741132457652996788315429633224535750135642645276218686980222828981076459203282360839584080246697663961340163229490306450652229702503339873071277825899491404958598954293540424495011280135831923190207959204945173297398497248531699829984485663537181856592663828074269535615218750882602161315863111813075972584595624203710856616417466349284196760784911766633085307072770402428921814918978553726253315627370476876014536619707999111046191765744487768004756905926735250181466364876409579787903890070669859162566720537055062894496103794922669801669008124786564492321184452247651070420338333748227080764824747754763197835844852803177482195396950765312098959927718390307530454449836211318605236700414028560889346939794568531705797389324615769263955971727979095724232528654829947012525854841989060191030642850148861199857402504348313788862495341115465624670455113800710131129085121348349111522367482504268690202445962585019294369855064082316425322518694369714738365683832351721373983977083220075177631438685383295454983917537360844880243274845137095753097170540094825020239244393309602984975678594108814394128752612108540941197484894430863379236525038365353398273694111212851480925051491520648202380389875027701862993776153617307602740346803759622182265535215748586089374331046101975789931152506460189232901730547758588718155912457168841832847467169243094528502152199264819644003184263345366870482660221696515872871506642537715490375521026789862626918819588881970224932776328985737563668638269675050335930727033639860756380877183606029602434745743491356486790170399374628293845877022303777725333423674610243718044976735216918155333430849634259128671590770335956403551294998658020797143668202786071504990558660043767688843637160611887758378081652721205372361296566660300570778991533982371354186361236351980374790013229613415115662570422801301855588715252710998010586876559906625580940330504294492946219176333756615649963136288990699406922796356675662324665273689467840046185959980062373072072760585882379947773180503370625435413493042726427858606731954843324582571812801759382105856576692325746209135353110215040035238982675918068779590674062586923802897713165573137875417260744677857457077488370205637507502162757984120161294161658296799595786309412393579025147356073170171289763806559918947826596205066838222281875733560065844575273996934024600297808838237201084434112087403238857455264524756975614700697745666198257594409249980927668909038389206713049620414820087690694104463403239365119705740952174631963339428974837532691928689521247119814732880757915134494719157760775608335536553194129888431874849327228641682132340938306019373486225455638277683872770383859756508617044265612540836751797900113908914418151100263200216037937874259997318795236953549621728227490666397807489213597193176284090655084410008255742044217070983595629547292795960263990344119903207665552283654738407953590354631018904583687687376595766354247044387095454972727899457040580016814654977610092827693593633162874528997028883608442075885372885388338474660712053963925208992853379937571630959292495080701708910455491109658073307359966481149037960449376940181970685518876623038810374512092040003883329189337858518303839408254352638288179924237274399743777705661130223374912963278460628551997212571239655291859334321204217137522482813475114258628067937971894281310971956844250121912597900132592510011461974007100277221112728487019725731903284105252165811017933612887014267508136821692458091433228248508971289075667826114234886330927129052954711608204956948664098168726658209496731613873427608899559766403081382671597143734276543760788821863869189711182888697950054977571586482404033853598404496064451421474505858977871293871533115531122090300503013838758510654270301896496365343421595738472944671701387295351616151974747174566532699798114187948858955215724238501442632187794446586853785396975086925976734267867488760150976614979678223734755416866143577554616469518900294749770846029511394707867303241019669174895217330945956290776531260431422097089322631131884990395077993722264260410203736505551548820878742174003099610883320973630512284173883185063957170264563654813668306442052186589603437655975215269470296727023203076349496271934258277623367771064243785806726650546330801747441997033461544652339819345156410424321522496158087394470990148653573954165314099443376370575154075898620772409856595643539284869344002392528068130788899818858122858223384837763090025023654952057734881621774537576334993741214728454841493237204900021821192349587709656867652633104797419000948453774841821285285378600147613307695908466939844565260423810536751981785045674795187636088085931470347746949450513885358615518547198079556182516324289107888313179025898341846263069554737940182765606940298825693950715785550415241727930422147824492213346583366620274479930714101488744549081758307442597201983365193185838933155503125644809043835033509180920502546212020310170449429653312849030913950958135167768628604513211729829084338089991542655525654711123285838431658313845665552264959166298078870026702558588743928712267930833518751766965013775260753861777523975957848876149399804573204711390766265745235925363078455916361277212960891662120153945125347079220809708797465833394783681494685254656225419572652210780472190094983217485122164048126530115350079634682226748490811789532267383994151544279981276250977959474541364130944213285178825491475345362892645286832758583170752952989434725896253729896306363626765861394228620814654932403775274252804422583970595181661790009629296613282642663802818838837373086839719385960488495937699467196439410328081828660554190920547211216936868513204171910040604107308977079115316468325232292794856461078947378737849899432087274629773227325970182073375119180522957605382478745306846268868047645362797467188212451042596091085220901894033076952834659611401527913072890586931261736493013396542795633331638579625895149507622381631275738447246328801314174264944207867678813724984295222094886312640725200344375020801017976531924584369174529091821663878499076428882836990470400984365511993445695523191500879644970726105610922566561174769079799262723517202065410232389778915962485101761485036652223409847834007805052893456658374674181101587462240948920168363750157567969938070483596027496911093796873475482338139842851565587716768115103512872625355577194281005935682607891959062336672967614845904841545088650983790775481568963560335603551422608380305292862318210992963720901660301309459985467204658905597113020865851547928297115049046027691581339260774374778985792573609656953379227265788869974595161283044035535830311151410713217923400894896541927727298305844147548065410313321346528397909733053874916674804141845332017452106313887571300340522919393268118669265807994323955290622421716763619917935374443543948818041100914116327133219348878618297928270964793892935631151711972087306986127031093745833954465120878805602770338017443875301009648130566016159947018339506952333477242945360905279122095915137441557604856045314728928561736139012729977466487554355389984713476834919129989891670503798021087392273234172478246091818757945626680371206286945305853419880342423358159608355243060088045411715073654831823240547063066284539664912108315204330419367660144646854583273380522550930385146707225662876266736202221020955154792293304762196138103015557494735463064669129983783602448897681450792747041901560322250006674156424312996182274144534268779528941176687708453228783322126339621085845482330266890764223688329326000731787596167392366637167026672832805737681090588215296403857312726183920191088643951924024107983981733368045201721031878881481654535819173802063453661228407019838013871700422333097879054853581835134874932782440483083998671478601730016564662480684470740945136981309136851795931294855371472971215337647960111644692310665919276152078682523754479757362933249791079161391608012676281173098832485540899349696253173608890691191270249424148197458752565150963399871761550281022957913170742580071277580023092177914697519192284627366762329944462261027800701202200570747128917694146260001504593501051798455887044808968633361266370892903907972647931656584100859730128832742195675411782847773188276131094056288615405220124448463929965790149079701107110940085149510985097099220830392204952991291160031719495776605656531063485863073969788634985934771615835320392703341687000157703258967287732131189558783095412932196224676630536827017957389908557617025828977427110755239184460416882831214746500415644341911796183782413989386408384805752872445927570608134490411533569055914758731013147246232093721998812440101922884124430882906079270301572236364043273227577005735731594819505718966800063804622005148129314856447862263180647716828697180458233183201714904367142731729298194197278438327315669520014171091962767955210501093902305577160973572753815081434888164703053960824216634092325033536774256937460306998149250418109943383057541732602441412743818222218948799443258745291848508074595483190453295631362566323259024351524561608349399091245958305716218001813720946510687621107723759572356230961188041314927528203187329542681219674370283688397304712860884742471539263893549645738860672573883388016152603028392340337648270129684326660129442015364291304567013651963169148230047247362803697919822892111399532864029938399675518862714762844290169074205074032716546536644376613993788606230673201046184851905320821782373010573001903432051752996221674249052682914125676705640016416212122229178176627318359567526636797127374868127465093071097823024845496488207806783777318140499616497884917337113793736366652952386590536440944392716803096688231249088868753649949685846988178443841937196543753461439715260388480257108082221315379660379267615470027852484448489118085919158287116414316142486841234933010082016828204412992440341367211132199962537681331241213860722598760887664303692672780308619111418730644231749460068130355041284200309220875646615901239962043752706128441251297328101925077400988032456306770618814466604139584919872970831742244925803179140465669674690379727156085996336205105547677720403464610600814117106803982858466960514017301390345893042623047093691330118089761988691587940483993034690558561942576409221579018444998849519675391966498742883649003301358047529417045465150543013241978293114286386025550693501507695584436058202915046984658183152753920983090868033303129474861196804951929992346190914447460518501923026032974741682443102122004497693121608437817257589251144217108311696448228921867012604579011729247925946143138934617926216437972029464083131226517499730281209640049594570232503777530999090428319218427053047020334247065157981710494979625905491934628837329947597958622830259472272397582508488317178219097995088163491641276426446480917282691656164618945185603889462819382742438611059625566955391102879589066807817895630933815316909473842138488210247614923911836840123026671043627533273714346279476864758191382066009866160352656672778436026871478016017397896452048754510128482691491912313308658437055865002347674640053135282158101373198947024124363222078861096880203196499615043196947248991923906705863603794476557736288635076096797262081171519525138599716932286250321579204333646326668016138114488184566184889338176094069955345783861516741795794568408106779769327232007668874873770281514901909974985609289426230795940852143921101562416953286156578538740001532815259363541018788287512779845894097706272893395194825561015643248671511346813909817480342134499913301968713257554370900431075027856857164284242950159039006573237253374654676209282895587762749174844832647678424179984416823577733195646828663039676776657041777478673844320355761221590162675092761240373595891428964299486320081166950856558150120218690816063334828599321182590331480663468496323955423818782042117889799129247241623369773606619510401909004106955151630227141119396893803547533955231140845609089478353512074118600463141945394425478769302133829994886842900634279715337509704710310581954671583895121258606346178890050694477787994987594655698351615799355149528978511337218620836987877958109560221537250435497509524217973250460041549911649333557620438325812221406957452659792439730093995270621879560524812599520346098554845174978936422356122516344863893645316557781889990033103289670559581247058927977920083466473262333498859827422671439606597603291613351943341482330391635234070874381531006917330344298972230706466348113826386470241669847830476894640524840358713080186258562515700741140340418131528219301844480869451594981191207799085253625161980464887721311604335029281603072939206718998674915810163778011674769232644039936719615262800931402167422662874996329204488854561627618266507348727027695571504964025581837311222075969058879386830965745348327361839043010900638477324931457050461080325697569228968551813229851351516275088130066789998303967169043312109547012214105961370792982157474952392040098876975811827033606288489503062740151839557292049007607240535604869575140815346411975474210705947853015888370643690751887290815676069528079270909142796420215696345826088279969106450110138684922033619980136271405140228577176769891074344303278862767408060555360072087160414189436923766742332405860205245284905974563170990416164967257692084514285994726650665209843359399622043250736020582899119939625131221998421840897291711861755610173569014020679374323700906036360000540360755269362679911914627577985005704637427070524325513756425133953462683819640261123027696659690683862036556762615587247767883333160495324459720856464632960036974245223509978362384574823524987642858255545948742824716881952690497188924044986546060051353468884083561073187199406984344292676274828527313366254772325549973905068461868816261376171370940010435989415767068370027086577477273437229532839024871973660373793106780671356884826795294127622891480543678879894326599026399337520749130496440327008356838434539780700336135317530439235619192638255458978750158072854753997308536536451679968268612810348891567919853872186184727928159280104481515475313902118281024703202232143853227325575787073370778233790687493436865356119589726887314932570467167907898083589162545551680668676032317780369105336160415440495468811113404434099206881547077529186239354459299019269402939244316028397661795456271548155941913539491324328589564754362723048201903922601807568980016934030331934054332997798775644300345293012292089535297444308270522473369086703355930510004415443112980589425016538929004998728983396053124693100721670620501866728806261099434686628064832176590069533435969999736208075351949620849567735851273292076433832641213115373874530571515651931740277882842603807123943089523399779379915255201380691575202438294020429988965862355364545513607700990144060473269476245697336864504613592937768927933710851400499711986679539403170667571046752961611896072919864005496469226493490280941635536527608256447563767715501157451404650864401655735060155474027142229361747365430500736690450958315497585448821881968325253438334859763559771482967867123974799662492205516391367009204453757142121319661391448633992576904642341109441025220393740435924098242268405162506638553430191456056731886937496737185603009659143648854464521964959466276448906085317962561570561409701708779295557297935847345880686507906284134137140157890748969831408379951227766053392266022127833468111884370221493916069402887874595325167529178310652485266569403193179618728776261895206264685050167672191677651752692145965214797924019063497928156443788235587663599439156196812573952722882300030935771484104965584760253807271594675042142692276753110603444046158896757426874496208607095595725298318691573557616642553807509868597405493406226164129780823657509253483212248413745358499568295944875960130678911401704876263970414303041084019474586609525690324793355376387399026901247975719274843116623150132248360645950537867230983715426793969966849549211810539470473331895802076011764418796081108664815815848042875695209342773057157905937738442308607805989761106522932343594490476363687758685613655149856050313312022192257008492588104107732180468366556055421497257751466459629713072899043705902779213298423410883674857118168227350580874411649815869848713095138138398777735864168499008731409564765283696787380114735075879492219918979344087881387864046321773565647378244936714794432255833522956413706735362964234855562674584655535135784329137207955348103040393018998844175611333912765431208549505817065089091231800194524542563562410307282762291813487964717986168042004438460630533551043151991051936516438014210589527630144083219265688493026604304620559257077036378923622536000778279967362811234193072816844331416850468821118719685874893735082874225660898142237701672021691861532407798120012074046901391380439955308933356449849698408686017046782818709464039422880620488948581978268827855598411989464490966782202788483899013230440644872591658557191874904672414942027316627194641741395950021200475382829822838201975251062570674609404291848943565148024201807078200642477099334900666086593891281608615917533320509163256310050645654759081917138053298417510135401091671300624014531821521886985437198073363021948281756006788567648365519951853493025879328147090031599159224128999510565269754993539343253532200646815751684694500680120467691897309209311503661838800413580697345917352071632958252178505333153924413088179432086133225863245835581940229604379565171016950622460190482100530776057764042720348074090833310053017443233045574070277593001392429373751900277118810646846818024777285622101964967920457359016725275029620820675958931845643403121323390385086628431204754194316647091870946335271337193316423822203821597826749188662128929426996846779358086938272255504486395730444822385496147215662716386146615108816500470362264532726434503296594239363036685606634475907733997066026506251335430077761817972082577382639009424580555851691264305636685019833344780084428334304509197656578608833657948129478178395621823907370291146450608869356664889268967795652920227269883340570659588808282517637140546936337563820526446851685570672722044726789420041695293377853508315999540995082452903804962641340074138251337653786722499173768161496327662713145249753458918285576908105326864721927273101875163685057588122468341782838200264040590560140653592725347314388297606974703604406621082211822000090083915767248153642158665925565951454878230411308462442534575102059013844493790560705050875917734398188784489180734742418750457472616111140845069833565567244661786042678223531961530197639329120253150771012874526277463547510730326469688108738105529444978703526830844445202681439101137675343871941101886323197826545774671889654617135277807868241026408833373950906722078263271893298637539833117877752148324168182563189466929452955723762421177428435655047686855363952756410774887826683498289801440872329087360314955441386606439954462453047341689394826878689557829921123293731885140621693860278276335036935052199631704097982413825675450916243889258089402586997106188128398883775297219376464622240095467627400882159212568504416092250804409835579577877242300732651092089427680922599470002346443620057608382850739181783993464661439956994162592903823961067193507946022733640212469631979433288384871616352942658009651003510922284636102171146125897632723215126314422199351292901980412820047784271807268601512508569595969464297538254761547636209540596343582300492522113614398992075277695991637171091763059031187928436479785833548909599414905191246361410870976297721557522710811959605421263931467007737226558404122287299741097295292213045181586964112578098413087174066548366085933161739565440700492971108567779423124242288558134159221604872267508456044704721787813427432046146191936058452519951993190321720871743143186382118585111927166245246834218297803921157460714341249538900760100024162502005440276560251039322743658434575270234287698510826889378513402116350107316833661928933833888027327564176648724614690212499337135215667268841723274255820606361890297752203959074051085903589019529611265344722065104189769644658234857614319113606163753245042266632899331509208377400195469739704904355846692237056211366997275050220243010862665037842687989797554344737580748622792200440757956433851272649612934045017483430682325699872073655214172837922855696012035614963240126238350498038740347561771122282903439108080508466629854326104054092697261272097863140392241953036534786599500262716660078194714289978528666854533583381838678879643152818204726191536039223649695522853930663492105754194695252996200244039128068477883367659510460023287702629294392789825252173577034685730170310213105781417629720148559412125378574023737595061248260822618955207038863360323251991225137326537687968644655803568515898958402655121873394280072988790929690700825884237375178221876301226962163945421561764046986202953454841147148514983029648258325646029211517884580391281618217486427324523936721682755700679549197660720728774663152480019321258735798688722959693553948036397727218772401691498190232269811197347711609873395131779479691032996362564385216949122924523135737426183020080378105307800255604629007083475108646357441531819983638659423732564017450278969318463137685561430969345150402055002580739357808729627190988688942835754421742461744309992134963614124986199638731472774598473623856575268671601087016678533803469310998856487945569233896677597927411537253006343125508820394261949164047009232414804805585811671980653601025461204347843182744603076988199097543763414865183505798827781710979813737340663806796500592685752949085449868563215380467165049710862890037509270650085596348080089240610939672731819692289659959140042314284637539705644861067414845203714256825366398154144348834065736792418852808122786585732909641642658564702956376334812930210833745675298810621660718094500660267668401449818334141023179452353405320465039216427908938181555654861409280198868049261418358879268820486553018988882532729818123694104403313747444738251806275391814318022918226100179423651371049371653474103730604495181634759866019162025816930868899288907757451438619263533485494208110138965833078889475373242421870563458790724561619279472380808699304944574791841226879496405129345742606686088154204646219601497770812994895057758233135093202008661624774339902681656659176154552300684833801898309697899818628646979444635057139883503158509575386541234303381390920005257570882882815039280829810545155984049551382117211909623981925475268141816419149886792689259594874514334129113278410057240655802528836100822935373905807824755075648122844410627433459407616235047037736885808018601696522830711414364690580025423161923014999072114819248463105625899180474387060985812503850050230959354970145320217508878054467555607419063435464257396793537844645729107382242915021081567272735473127711117267313374345159437346621921622841425686970078712607891276091594317256228646820005423356620458755965343305313370664819063116199651672622258482606780030752770839215067769442064221914161318947312469596761746843194612287876112614074659031131250861321926815816103438990190877461961464401847231109029160318778875717073656837370368607215791584108694933790633095230111104586719605566467850532236435211469861453737701104912859911875915519543024587585435629501496894483801819930117909363980856957974566138843947835338866999054775801961063717005564388223243718967037676649964568940300966514176537647321727362673919182747089731551057843424018852727245654472793406162463142223215079711293476298752800900818289387573176641218068087735012068657136737281529556109926366933460022559500362178934281470116359570655069848703810992375741405778183495482375473524617402046407840140408595267725348016702087717761686379063842238928910126368399232667377125177092239561421647654116144450374063741971263359231300707444824704356846492341858343656029305778341401338104686353397629344248045176267960807837196007331213277933380831922168020849510460998448038262767590928403074237292490441694311555927564776758230584183143050315969019889792502535890672178588957408655967089895270441058093435469343132680925262156198686881551794911209181574982058234532932429545098932856072286197390400149704318713319699606356648844515517228134679468481857701542338660502086553450932347556093005106210212180366966371499519030872228641917645269642076557047340461971943279866433989828624891072772071932497210199400490386544115319622347903406344393594436310180109624283532287492325548729630713375846184911542415358859583442231653904517273650158575046561605346418237545461324240171111834940584322289885950390873196350020558275492737601692748946089676478020780118233577759167141420503511606806124984110332373045543755388781370064159379093916659257943627973416721654511539990774408550689181554529780305612770860721246262425276697774458118232603854038823858439451241701592449157961338690328347042903258548523506508868833593768455847049020312032449986960810510567496643179336099576670841292936029539701607873614364443356829776129747376017473241587639011245482012377600523049490874469535045060695263165028627165514984293334701142613142857966901011003883165836784622934419808254100892335862627615122329032171850339172660668639967417479133750057080691489341140715408247288683387200587512933693316753314365101080537098832435458076597796870262662535013130708630158807175511865823862706072735041931696427322826316335971793133309143343705099736930017765024419898684170868885547291786791936055662073216664914426267417173320422166780145164589817508323349744230875914109456415473380862024899604535320576791688599803336418557672261827275978092250582207751471783589715633658046335697636707688072956322653591473455186343023383015409837849310858541596310953824904320055428736194411489464798874787982532354632591807674275918248731478242031233068159530916636733452654964281596531454456659787762179337166783265520070215350558696439214906049707060988205885929633965970364160140463881327643369533927781047341618634292640798799740176184052994350544465759617887935472859139703932486190407039831152094127473803087441752705113526398202889081532792284688153033361860045033605961368968261410737962476112104840390876696600548773033033900461561607865058773600752577225907055587779390834537123732494753644246643008803565195753938152294481631825508203179313227359771142650898812443891275069610683444297087764566908600665688732633465914524773972960537940974908380503991143710127488511341063325162205195847134241540219685404242159841943030362627276520252540165885421007100330477082450033589331316957064219816394704920788953268039624719563392353867714164277393994981875072312619689264044137828900412704018947584357241618791339283289093502390808955694343726528528176946128370790722010965735835131951594055916664479721478929787534443884825360613471018957397247340236177136633334079427707105071370102064415284235339575564489942075866647046191697369019130578210463011335106308720273417750381572113803686527523265384983224015981944381858235499402812953589884648947831117907563556881415936878577725879456888364308138400787553924699449643216914985581757220328501566031629356012831911698536518701662660542053772869545855651581129274558875296263997815004686011169261040676139648038914498483087470586107285489218128400658338924049722718811807648285324064344434594111584664711620591611163197566281047619617074366591214050921090424889493276287251315836735578389145762730497431495823614742781112813635348258544113572722557760959308209404040386900556997406970444319278557440860527657763315972077175049536406178473603855119542517504093985570277677593346959510922777496103654866310751633691572751980327218276159798258051064513855725094887012140267081425622623891756474187415894940071107270573535104954095546252000962942722906296095647580174522439493977697882853356571563715506365798333535158068220431896875085738034524503921856964578489793713153116249795459591614616995696443477955282602169430703887299094348348379227246057581659775517413984979889357842798088787956137282137401470762153944585116087070480778363852133633351098453051981380617214487425900323894115960566421878283005310581484925976315743302220046763330350966980676622880134180090392196443708467686420971796519154079178379931978365453824911778043496676324754519841302330962311471020344209143979063291295532574466132164466924483454291525950397336323542556526693929443753368000387874054789473086761740846170722481940718439156556177812064755016692625108983996590154289987597092811175537747785418915956635096188825077917125254322269107056792676726868030679180403523680092935365199415694219085393361204873855038864678704639774475355129051917672018671286933427505143062026444556802401504859964861923431977424054286178924456415835431413727242347986266607617240019349607887226031434023167295979501188264270507825710826313178613131693795682286434074173381607190830040810226141798583383491336238183095038067682046916275973200467468969285243878615600965057858119204766873725117339360179095540055257643892850583485835604574344249664880925708980810407104403561612519251610623660367024594485510001150240912018890812817777801684048845942238599154712580516473715152875779991528121392273318137600999431403715548282779302303675320147998290105359337680078663606426434475350504179391925291888592638010415498698339244253985393200456874869998982688648889396702708915081496283164024522378805683604641327865786891681248906204502499911534667006865092078349059392321069997469192511798647130020365789163109435693956610525775738431203227565291327122913827233625797522541813200640922505892748903334221944643204393689239378098867621555544555014552292379825891791940735082910696850046752926286371434481996916445416572654833813659665320438125994415100772297712141596856036841391361724046797625049151786174930374115808438022721476090340569523464778981843133403750718518420606469946256837684428020876796194600611838431620501382262111373233718495608559304515263350321916072482735805251932866252738094711628089626128694418955631587386492837349358592751393888150641151370451874373614284914926978955746238177994797451039795437472010084435045462117982034721821512576811054697115996506593285413556287183541913492498548089701138218472836788211693574491581279472696572671762413994707836518385597397432015396528029773071124361655051231608660836785883287412443522009831307881489184520762344962217825395693286771436609988130218696753382486984684888375600541741237920802664443792845252879542442727714411484389530742253663383014985915919623063822395681680673420528715655166291844804225798751496683959039812447790469193774729209267115428651348957841851770549692353972722296167647160546748906700740062038856812118236973165562375706900871841009868264872045806507888306153585718246358914128068148452487108658119518706282855606064090651064559190984559010466052069081562952123484894454091144407676824904453273075337409356859392483222674812770847550277817570326976473575700158797137315277800988709780704101943543501210040147533340385004912589667327773940006347733814053742507406636248848088367530916427572180874832955309748823353470894746778600375249122382377790188982612669499672767132694407583519075409555637244475698980599550458681118908066531932426472287240793803731938453191966794609956072127110459964423525463050225197298680156678945667278360460397267738041776003164761453972160413112362678534826608646650195461245127403188007915761288132798790813309453930533008121078109604395480128929301591528363823637017793128152963801478815342558445767037340721764096613194844149006081025816398500318782401233330563614374292433053473994271414967345330522956440870133826221928727450334510022240987626142551842267371907041692829575160375687331589622631827514202092861210742304655066184210014634421087867150886857793327493172165698373220632046802238728876523234136975270120398851448653140987527024509023762072929470694373840394655846157176865667245908146485370851598890945748051546003320258790260284443899827787225157250378972016475926120142573935726900900304809117949796905916849341231408739207479205425060874041693474959134733473443975651953238622823939690945288629860393066229976357293621136571629113981634888923071521258340466861004489186072864466836166630988962545089700240543593011570530981227902828543636106766349742298999732963399930203559791127967772004374745242731551510504543921791408634085762030059097844905372350903763830913925202842959986138832038915703112289104683275358946914464093416602367467634594610756779370250128493071795518346561484426023402834703332721320753556789324350776397981935751304922456249729806326518649794614793466900653567989610984229970682752196799988929290414164867955785520178865594734516100791131875284943011430727551082534494600848012315030953301434349563540939795044130595483105961426796501286541443041061836113747932566551386540066615123125538496378496935205377504612154717656288251353310003832563176061424743367270390396805774219249042204478014449975527545176854193371494617859912049465485973820729474593551330252156714095497903068797663184078908410754129818906910039155764822469661461625532957877432147383060229137428225868890053664122400493467125562478191013286000478631180732163354702953472227483875903796598592177180696713833457064532395722798911512199655697096188989706193886169795756841937191292691811830140604471963444215713249812376730311057055105467363008429849850613659631744494479782168934688302502825414857468451527870857519229092706929462656344844771798320208202091159598168484663286862751143677175607103196986303030766184573478872794771266547443550877269141458506712664971114847717545489443576864428994792373675531884049949444801670686108828166152660097444441234456767878102467224621168663329040433521351321711433815742144730952012962772319409101174359695862363835365319626533293765857755711648675905592191880346720028257901650956301614100677515223812020913036620329381232258696120522722776448615045616299996286006943363127351401473027880628575166465486920106859487898101273053687526397208902487908107219678181813068705964572858453358311987724975045371315279624238138110960911939962915322156845009319105228718801876222020541765591276363078225333946986201138428974348318933266783584576910465821766448480416343756794915225668745271708512973517850150028776713394807863627008254377232940043462362698378375773406739885333363253513035171312420841075140792015529808471830606500486036454397707627147824062502960241945754847679052382782161333279259174934826841168647011179359323786591257795344679096161292745149883603062357929299071758892835405943645322930485280491342774009809874346040643610980846731744225920763812199597356957996070465325140232020394119472956455016790725954251959800413803879894158519648824057058041993723573215687042803608891141170699637370771062780800068585787342504786035256004443742124637067190092072132892902996598597873405577421334011599453751126141668456881032841730345743749017488515664447148307715640081933221925002091391216989840327709326896124963964937334897033159330320580002548449324951997703858931886040748492948420763513333785125618714924002308643150205312927882962867992472439857466350419147659901470967060119316266437552973151646608392121717711940395620047050161220553585052151648800825460310177811032138602254353920724111056024008960965423640942316627510302601399369293577655281088300305753998578106264322514946093961399515745763373707901053477222764643912770538338823013018727418733528872824600632836276132289300414464015923166074022393476295210646107285969308886202163390884258453602807284750944117126952163258190532046364366107389593505386878196812577982911490161783661310573513573563397425482509178373156411632154349791819961060707745149910833131417037117886958676535716928237068538553921491325678109072802526018240972094611673678340729095956300901083968684531262992447475778955826401083010325070525266073175167720987926768553316160931138940658637261267419814009131831113419116543587971859347603707120585804612814517556946975600582390603748640309598808813151264886421535817237637192293310059967600134825012532370163160633848856634741785448447100135124924197140679210419763275561079633867260777002841949702950065645372436716450648838522651272360053139231965648077465225897733529619270940955404124675848390312937666683121516811851147435799002458717505212497660358851450054768529344683127003530612942793824510028795322498571107397167568368259094355018121888021668820737320169889105763791287783996258506469302892718602882586550869137337679564605780296646017781598628589585545259723990196704152086544929421032544639707300165464150533322384306570925517156382132585055215040705231216832710283696190186139387147024832232005125473623943678949833374034984021148390987628844713481120036761846254081044693922453964336441678553105017244132438816914397161242866027899341498881838463171252256679367555252425492112319115572360587094303784361666763403326304652903160056022339161991912259349915620589301414193488921831829322800046841321303322209032726639770413912067048651076892687428279159389871983052752978206605932300227391103735885203209699257734863254654575408213442540169940141933872395348030879000091090873999912683473630656163921706166780392218564805025769895606002038438738504612845548608913010624728191560148489376813942209005846643703861844613924116245115517364514187608503044913996519320171449383418213036041410810217117517227984540209566765326391820642452366168867742824568963280778429966434732884199860273602138793571982587292795896313273274159045690901843854633805049410944076128141102321366193315270743663790318651799753733724945078786554072240062711640288954429637248366787777553611361242416258007567059356104244570894109608480491666738341670521791170872445171313886135164542947981263817339192415359408357355705545483804838457313061791088019819788082620253327992502687488188444087435325286247280209065904065537892476005030942557133774181626577973065844247713437451505233165910681260686753029220895870325739551478458309820568477453084114644918279097883028818855936033297432816891822912570767186927249970865515837097808214423997181311830486687480845360191330522333066117497237684237411206073305146718594993869599618744883015913179246171962587134916274417888972628045331427420254964281986906402482590271383614462721580267216649676773909032632161402494411581187764027369438633062182559634902257413884773922522468232989212201370108751273400662637161396971432602224807803773406278158651756379803657570153039841360221228965578872548925245732528810909562596069570995121582422495015660367306074678492940803065489258786855627334147974315621908353334350069143944485735548004968133114532005455166472641101761026449499105675375298070981991963564355343725390624703551434681160804680395276611125476054138459967143079120203768637334595365822256255262031668384803586496394194697234847811880452591784036331621938413987838225008240621137662926857475987652764303338989606660637765536835263610135508612950556243045234694093132906199527040242821032375761255962302914588879052396598742606980826633954643832173058406781693631965920374880546992515274819123600031895162126649607919716591736353494998188952424662074828856127413977595628732823382984279414049779652518022943930846432436547266040630388054711485160091349664335839406314794291471470227374058854010730447309152538343058118710978653008932441270833702128616803167477845409247499654453545012105421982446283862367198803591535581528786028993465164566590152358350971749845487587156895228268249530834962128569010863797637676382016514876887295552249007792485914256593803648820447443241668231712204091776952383039365886213849702889510093269415344435461739752796807339118123975143274172706938749126186921003852457564426646730884093094813202716073385986442608520730320678496565960072517733588457139877384325857576434977541217531524890939302978324603844803080918512086532492685232686984825307574981768857378424756038280618656231791863654828730591541986887400692757761137960806210765923693590202153225374144892107223976237335481308186275338889143478992711432940971802452452453424307286100069392813019281615234882051278719471365358939520570718516582613393964269008917100312064004276882455837777505190806774522056280818254714332222047892527516166120328531236011375720344302440521495851374404889512082826359099800139919851721305284621935523011331972704403195490392324616441248020243911401423548256326564587389521121653568763688523963258867359817208925666800118817063039381434341508312900002030615303306203419218874392668842284743133491328687660284329523253416194557231957118647326954560345506884155237856996570104390466911400054627697129794829953292536769535324387656182343602147513729806597500479032984116789714931252628547221269082327171745029754913170147839768109378374709625990286393769646960933123816698234297581082967552679102717136662673722595345841995896771501791804857477823916067443197061789775732544853602742473159157398585907264506714236898276105803995435968568060206197024141066764260628171820094152535462816669054009397227508832754487319035941762235800012153968931622238222484385562375080630821710779894012201125170592103246618435502765649789607968479005470203220875148682159470806085464302759790163602092037085829782731869618015108783621109979809415983496943006348719602288886738427707397966111059244791474102064715041196782293064162542522602552778687743912409322516915738476121262536059011718188959792669631675652420959456749161728520469731369428218719952495754687433476102937451814985028414510299623370973837473214015299269100794890968339087818076850566224064976811470210182487392017735064758817154991126512501082655347056405925208438058371021339359019066890972070219251814570248674396454381577270364773378362066775948292807085590835999249487161953919523299254814578612643186008417085195294524910308392488142118737093912623086029944633036417211405749594786565311746911261229872395912665469382761011764211853539186908186656865167998964530876226071185279842224644660219643284238730565808209248334149058994702916759650386475251718462047652684031501364867189372111854693120288647012362604130305976422253434597065372685057752210671714153730527407286203926986366273927501368008849532876397961861367746640217458340018472956041456941823272013117687745455275848172414723336296372522578796849038002657266539342193180168346664543391607151444769347206596457736896954990421259260065922431635453994013621442592912570364777777279797279279648030010290663301022029648131132008247072966017968928701449022754581368774803063657646635355126195943530414565850310894902826570413567452659579279103230896975453599077439163021722419415108921194438289404042484065554459174948681368483842207521582887345599392012767492131742054444064718013586256651473441121051334495765875895351608025376464527383777544118561931138230236371592885426197535400208691414118599741345116139872815435412284260703095578238914117152649419280355781355708239039171908517593993549320783759731714713728939908858563242723628345540159029780964061030060016164166561458817371457875810852455124684158706421970530110081638393392938636040712251998480746779278275022168099296520602717099705272565763461462407133234491681680537782473730953839659507051593198249842556225517373743910678784120498437795219253474362599698423638730534373526950496170505070085410602057163054849449161043179143073421905818683844267635255108822178671572610568562815214939133130251258600232355497351954598178349746498935481566417867115348717503784597246945982623933753672537535628769986969206927791204597664764403148486725822827204142991401169120697882504885430804570824513686822311600475431299314914088529990130868720607924263318423557075158855168610065918323326750216911622011388818007026679538927243821840403832275781709659063573478998986140022854498131468026403304498096686855552884984742773324343341805257176866625888711050882910016007331101768355572453602162565636383029406369979799294587945035074656062939136736358941607227294011146111000132795271157236365740208317168143347075736364861804998832307884886522403040237274966910645121373623400283441207682371705963230944112246980118345223748384479012964886891174238619321058571692588460049733815475928140635683356709280687993576063681615164326933780415822502544272372502801275082502465777206194145512463712207923168138927242531041084251612944849567764095310368720116573242798587612166634338992223249856797353080074983221895426444345664498568170467719317369891208939031671430046851923057460020757430596988980338288027827767641061557051878109066191562130414301774368039168538750272607140826061280788844024049136812626819695652893412011210339174204073139313545161590419031999757539459807113652111778839126610179830841018530940088792957801905561892095155677102063520083591691883455864791169783953625765847254510943444256277636928147224649215024532993913518912310321219646454902553207327218743379496281198709457711090482891841504528033397280153819484903095661788403186984437772473074360798387439125843961940744391489012958055869797343169828654187472225606920037934705356117587862528775347677936372279313643488430573100292603537234647088884326693192630638509214307530615520904030788654362613341620911071274834736891633849860130978282285136978028397686712302300939548956589553552154689620664112343912459800311439141344292044810555543299102343276834110325684279828858214850134478820662462246238752860288493612026838495845846934344449655114020003024784577735751280219944145596189555970097670164893072273964493734092670874229459707847019551087090359230436910929361556167826667523214088641993163003813324839525891169112445882625681237585308314855067086784615035900040295366789247957361619605151456811182391730713910463538985594937364116747908551749427549445637459104490614690749211876741272380366506435724091922577302810310184710024084442716184472826817900877457051778560225205989914404850516036272504699115697823798902539044142018730156102524188958960177405574771128278239982539770008010537642143228976599019772488675809823760143361837895640646200064698200628020163765855063580126050771667017668335126981901252442704629159620905790485292508747061403122112869618107133388687649379482334460480851968896414235022621180692633131585370702298147482816831726689859163902945422891087375735508226777362380971812111176033248252703900473595575087884422081975789994462541008338494008699995618507515925930385697821109861285816840441016055359047226458950118583609311326216891265804246777644273896207440668731468740119519871277129702410353300699847751945077771656019464200915448650618314962947977670165644322814962699624712812004435589442550563044838800977562316516652637833641796730812873150908068041781656316604162066364711126286946748993698699325956079331228265285218572488527285340704789903099323144797704858239772634561297243192252176292979791198278979583665354323105758558436793382610723784742087084122679956743438379057871969705639299950302292248217346642738093470471458622155448529193495197027299529979224450977166979038653380902336130721135242158159803404564812467492565584383377415600139475916576112935748547873404160098838342362047431080335467279292735072091733459939357647368771485280439112942962301846291796160723175936748220411043288050968532926763204622109297565969920159149141299528718157974364919094898370713957116727931759777435290511676751727904885132731336087233785777291804177540890138138000685088125244618763258050218005997064299275970476037250313147006717474800579895470372366672687306014943560849245112493778518044251812459902262865517917372515621743783879265312253833809272060394142168649361934647488664439345989836134543586164314234947226415184705091724568890540578227325735265063734904945210446581568229687056335346538665286669781234546599015554205710363801973085590444788203710642534167675107484235133490833232557586426095753191299245068891397415593807991816767165990801785558373129473323437599579112621000701894598981273787802407799429770043706992273369690447114107504925004383584328366385703539798866264132048114796038782721293260481567649520746999788211171309602655063517786541440868423726297744072694529395547850046187307164708144664472430387807523948760178940165408840105622885890964984935832815706424252123060009563931205051247824563012524856337166490346773172895752712209721102605369072258880815754314073619332703372617785080828240099746747404048166573616181254822882544811455224789481696851510944387026582386764018423608458935812092762410362043328180741456281172821238245289000478332779730101954472618757224344962721102617394339676223430207390514133429123971293146007021126094942176669689623622642790201876674482891050326624461898553545166542389727982448376869766600372384893710446502550004716239076280260528099238035902992475812655053959010282766302648868780723429662528096774113241747789556979172948576852049737035260377289027158877784788276541112575479302982089928348107427035535194049801292495371770355664196108003690951577290298931201486889385980124815197329136013679234745258628828120662728524995071454677729373722291458503101649554380160658939198217051566184054596149271798368662184727752642918621492687979279640069388765347597996334196605368739018983319216574941347224848386236007583847136740670259456041252260988049639542961835069997829259822956132933886336268760882486294632621161427703240160746357420511753499234403882117846848411964783046969201437228039835664908044689818403614057213040021485299671014957055987581759168239442573088211548777821126024860543112643307990443863989102921197456962692569342693409331851902749331707407218820669633666715426214756344964648364782488116727508531407821727404229699441403046513278843844658379971423843499806186402321564728520431256754499165990647214605013910908772869533601340460270232394047383984847610686697373962722553944739473418053131949962319880946617440452539746789452694558346748155441083999941049071725063345160226308432288602261926981310625430970752136897565598975522068142989569296124367800583947181426973547339646070980398455197714349868009984198088005227770725867636020001602443266787889545652290767077365332138656550571188350867655096109160798655548432502000605282437099302866271309835247623854574677053302127520516568105896148406203899670669870045599463697271556604636266321110355075744126903023876381150760602361406624580723565194169644506275826840009294273024889017700354545606967364368448047447592500194056297351271767966087317665247316673612218364816525042876262193139277766315945970479488355853883524126556455735269623659207317312856154361229940539209468095473836210151554465628186677662326748099724975477875845671610325609246150244178277133640364744883553303851593328569936633994282851639396246524333172152450782356638704410973929499427114487945620308071185425960393932050338268679789684028247633720514355704169850243447125133775819447298179613913467325747096814796303850649571039280261787561288823325667296571659118392760774398819732265368513524463200139706530665003450841467451130261946698558786429630887530609365774948922911078623264054594821230756533971876962764509340828172467753095992685745243443202463507240657956252091441324796186792456134960401845043590978965416230008343443016455677727397031720435118641339675188207570436169838521669503999144916571341215100063224306117020183697946349849270541958522988330348798693416599844182142822225272841072524832807496471171181010723195618740088085748896759686235026183667561567171933997658623757086641796641966233774569639979832010163248500507572453671030103903876542668533763377782821701667990932329066407171754646286401435371793262585238720429464017058995623162087306027959547252521339887117778710814116499657637087259015185771241371448600621002594489041332078783825070290318431349367836358593820556215546783882171782424107991118601468069404386231500426916383466370268092925163998469092066374041777881497176540872542200132462223798379932582746256031802530376443549498010962260812807504506045421942482477816893674735036529136760698925024064245113381159293022512386629796399005198725112868631792223240473767639492038670310320594616212990944300080333733494552642348799588495600278305486523987919629561563180297336908053993209655580559922780168771579134865494509285645085091388785867511796167663794778483540961643945252813592732170538032801937398599418889419596219267153526804948552390875069417353903033187062814063223821860804989086852825455159288708342271372687420662524673529856516199070501458874424546334065576755613125311558952860339647886590237121894901393617644055079322616230875165561950498977180454918948357933654467298129808305903593645443817477299869861126869117817669698686596340167272187155111893925806735323565272455497696263236620240865472337893254106972464525444320317833181715149386829956707594058339382224520416072823687395732876762770588636806198232832937425531533125533303218738206476263714150777664589276663507089187783928330507147562386725157595536464078730312926047746286045209598897046628485401782529216927694541932777716852304321353522997402520763713375578574754544458684945161862584884326066316989421101333180346236662449057332727503864134191913299235321118731952423346545070015825257313143300173858230674205687295324271672699375516006189221181621627100577154763351076076698771186642476855747713457950658836779829991215232588251284672643566417381251178209228987005937256709812044271535438423847355047863272229208748561662670928029084982890749712313154155842127925264536889200027005116806307623081889800280296729000323468714109396769529621914173444540990798968933829185446091658701111235941989697298491994719409854399132658919879169424248124072919117551517458916513050292268907462640086312072144665593184353984200940012361747538339551089365501200437052404540393777727052846158005110857253618485859484510128972903646051789692059730295049186249613863778507183213980644245025738100451097741463111893243341234491552781864912319639227660722598899041114210065631237944789236450452783801399489926619181356769521873622974658209283964068089986632131014566885088524693806119347909610466633772298660924546746424117842829994419020433232522403405661668938931021167784059247904864658988756034890652434113090298415359100103325272413368298787327798767429362457343268942054682267162658254832601740777865049583557601663948243482576398393652127742236927598242442647669637857569520098173612812023338299075035409709051935125498271973114737503684240734313633449294850325230913646044306850362599714398196651241341599418773627343414508671095697791599117152691705778373336519378777324173371678277678005878416618374819202430968723847275623080944232048022322865140809927632587946997240807673010814377691676698876049137146965543745469109902850130769009889399596235387774785826437263438614715185760231545850315808702531542047139813521430759809990575382251848956904021279229867809360186460150015061514914827555348626366940279414101732792162454434412239301235624595291964521217038171642369510602177757057616034453959832365155602991164882035854727865793566899565067697006309407457322214011103872615554581816125851403161233203507665743247482061877259386655792542974877412170025435772145503204732316318824537654332211606131118658783415296616543630265890253286050746756712410081746521343545406176998745857694266750022935396408943001918695017740449903562052245954979753367066579682008706648602299721070530658191996094824145408098645145101800503390341821440948628025389274456167634053136838952960728937539203331385363053933839558262377814749177012737692609493196797608224478445603925803096240332620209016270491418680154577709027001682249949179821265535266021588705528353130367096525711338281162891025191040508014140305142470238177598422391665075174998087320570969048040336792850918442465900478100988409492295333019758203946374147652950104280738279209110061520962338879617669990534818321973067145907196485667037916428998572304692812267643029721392056598898652942974298090312057114025827269816032145007854792494388493076964540254154977149666582030292376006022921461257074522267676550856342614412699723562018192887744219450828907004252798300710775549961102513434676058967878377198684307029708836455371924339519439702528814784924150191444622950262129857084212136786369752472274523092848896658676778491502367839309624618384543512523728532136352843355902615068964936974468011914774682214532596578747282349950908915035678818565856561213251959402529688815934177392425101931472352897984762288791160474269218350061066484941824202732994001309014345365665241892883414472082775266939142679778904590716884786627917458969957824769668453831602083161220825953904277788206442733578240091606206392832516636956719148422582674008572679151147389596047414005615881117040783741058422991480981386134914061473813637635792293951912288416052281078124822949035335420607287716324248904815945596931716826264656435225523292813884610570459869569788481648135397773914451682586304056967145388386159012248984748030184945712905106691703593020676419060803549731001696153961168216219443435715532637787046594303053458515746619347569564551405843773066822422933549924907587494794136221054898589521873128737668290405677430670333055003716199261992831543182164952964257920914889426406367059906411081506420789162238468871654013696054883008326579020440468976641924445451636316304592177972017992163694708621097411369128110588766955267714878928842013699274003509163180195474175240648770355230702028303142364312247297878350839999945016127572052643157565753882691353192963131170670054646106654435043581682879827571625831056031330431289605233742644539389461807448360030935427904791896418159409571185055807462059977402841281937995248399538419454657821108837567697492219406702388740875248400591280346900281732561053489104223946425834902532921723024028455469562625032001374668853330489678324518777525070399094344257876945142323581017525494143881828279234084270099741134234227547280716097497273225524243025220330612498876721392744770072397425547108045951061766164023530783179491172427948624170658450223672457875359010506377447252403295661863761033266072762131944808755213830746157179548404334330263218812734515185344776500460330905365052938842693128677913965312548988439822299340526212336075837805104213763540940985465202640479981438452819777952007209714395982758503956857987124868030365547234122574145783348597182809309936043481587880412387928644877105345925943277432552689498066861824804094713583794279926490491690203000810047008358878217222359632331512501652216180586547770010865394374348017489681943068068846424363837035809585098953333766568266797335707443907490766263732524592611373562820718305111313499636917554240404258970593009618334455513787103301167136393970976169340751784649701090252874772113583620372109006117568838012355633465826311099593895686045179701739138815536457749652858308202857215900265110416977021060456664622877357777188533399102278451545611870020635078225291802086700964898824338293859349783971945255955116538301170240327663388096832176529583807579475778499862993974405929182188754051103008255550727595204962865022620841393195497609402130943693633327768641885137103487111923223150259368190714043730528021754019479756029789876624817150840762330815844066765220785896383406921087936041001507773254047049568760016304751367488546709992566624620651129009013946490430513944696948515029603433341320054655185162927594797036156748287982495142144951535668086102734249042355921608396585394260665511944095372167502316960350939476945165493422900692107584231661323247249011801768202601063316393099448149016451685849101360561931906735628564020155199308222787825848874855816733345966807441732084214289113982595536144591776449977638790382186639188839207300330634857742624790694048430503372364710355223381793200385937216884509191324437093255045965196168568472339879072782493592242699574239147671242698794843678415849015366759296639646142875358383272872916663470060951749482948076244492490402572889479314808937628165718418539865970149040789286895553584556901290125198326000809454841942898531303684831752894732171862287075763903966634638618702056732135008724586600620398264402406552245161754567589599633018157742456497730767478853666582337750784930699718203128228203238237909177531024770561960191957878024739365437504820593271107468700336642223004763538042218694629596671717769788456311295643848726186390468989028445497897497046608958354866677279648221773539106726915001522121974165550582078023343342273117181212009554246481451196183377475436118732996550545436739362577049312497151396633048982529672212090389032660026667439880081817045394594652692041700133722806972104032173165929900716182588476483951837030863367448002741604089395628494908761933302566103688994647753353988253973263491316753240703995196664206507356999944317640240053831620550690710140651406590292353443635475900069516609522850791384461609173035771103055097568696523938973880054361227656198107473427385164031950874282030194213194243627124003356333878383162336274377873465129261723452707107073907068831669398529468568277642566575953087871632721409876308741807135094283488964231714026205215247548075457073190714042354863891966134636025231345702924491066570118975124488680662050175402109533884558894623637022797180415363803770037135659171641499395791827622617074207334852557310550816234497764756250353108134957600372617250896037398195617110080722464722783444840788960658625223065354482402427145705423292631317720079442134841641548013531482495914611927944329506605982970155586076855296201632462277770134632750933973205729713331001064141189028245164870386081371619835511010953880822422459406332850842189652359798581568500256570537704213886572256906001511552500828178324337381388895524525739363075535350856874961168697167161168767802568313194857681728949335021449715461917003429806854182394077945056796034922354744993541398623163268515138151958035426539114891088860479885143103732271809320020037649461187848450781044338873935910073130163249051795344136414286603381198003881014282115856921864707260319161483154053854836383640106600478146221985215121789270551307074102807050859757539506152381423491259208103052670330075417220791623927083603139893585874233261208322424025495586730259050095125882878066460929539855819345622422307241140295081761389655618632111231942973474322253651002758540515542687766569760614761817169036478886547495161313109551187457261039961062144216185427238309825549039387263558995377997584387122168277104783090837275213380840927498861970255367752815413214835157947134720695651661916841356798970003066717454340107456089641981221061905254383722420069072509195252911859519084882746180774735565118841718618824757919838193583027360054689868876937642534627241668062326586965021184340869997843078552946916264473463465035750086144728380918876209685588579684379743340017418061912520717734289083489721391880460262237742365990418273037849985221491095938333625140026886289890543328927808532488305420979245448941422413424520686841681162826073346367463805009746326729285112501971322026140572765196477245962684636173865642123802473898930431995564697041756813488497931183300933313971028238720022097473359297878221731684003175247357990262081548301815344935177717476647136099337207664713755722138953907186326598967155649512928921970419437953889176050850818481948848793248236695165689524342161797662510619902056587875039151458876751054534344958768372712996197141871070657106794060421087165332190530853238796745119713308389279355703266180651567526837852333671966700209321959472336153413628640608542809371876673164291458050109521613461626040233261218030639090708659024309587445943943527706537101710811071369374847380545638833044077996020666494720130380912933852852452716672534693439560381638922133339573222299727662263147035984145675257407706958609652456431384310027511546026994944206437748390014389527023417028092182679300666843694843441373526169370574602405553189985591722203825431954661854271855768533688680430406043581072243184911459414558274065118992131223228875293833079442646902468861117082039339600413444632612889164357115179727462812873756482753727200297032152015227281768102912768194367534514110326014079397806111982906210832510144512173986380291525826334732788017037530633416949249948517372343394256692457700449668584434389177645420048228947843913611199703382429783903523455433638915083200620776478115812115730932012195501026709873725876860491547235758855362209625972608314165806339914898941971714682445701303759129742177518081120776212138482534200334627837114515788942380488652056244385551465897709548394064694604358886049647321541079054651295908298282639540887369782089969026348535612407697173466650301751904970376458553820144789820981228789287772226324571684368078945991095890093745732355039720672260437544941331102645445354396754263209728250027956266227779508815043445397067115533375555494321994647576586180971118783050085457815310831534610528121844636465293639496886268161542385022866123613768395946188344118703978943352874388543331071621089462797736459736543872877896362628732196960442935852233673276350094128096293330355220065492314508878444113083285850851744406130063139102783554196394402556000561989250076079719144962892131712310774506376783350968735119320519096850972318417100092263986984142912670754853434044357989892250856105824665020153843314248026873822038943355349778162864798711702720547112602791302359701297938152169286296582154874651386715362458561924518787295238502862817764283867346311467898097668377588639815294470943873807336152056051330906149213362041503402928553576994255104687383465328719523058212932658963151913172957498375903760205375095797406371050917412435658913586793168132471377248673020168659127766381829145679957445269100645852651633423136103541976059619803953851669701950416739827612373121808337539744638557257104083713710102578875513557737537848301075820215498178516981026673889805097922306847893681271331829962070854549247704281422569904349687002410278490378760678445323707880838276546711970887314148113407055162701831717103488510180917519043109819069095720937219201332079689739627894683830999876204203407415129030809089584475520774426182153068240720534506433865435170070540059653311260751295023050658802928413379286805786905155955496934824078410929050211886831757274088616604404048840468537497804686100474854561923069427380657977763946170958753993678114803113167487430455377412384215560133992746766181232565686934817041944554130259028266593391467235465648067768677019504767365200769680227824777647959175579043576233112198305643887039563683462675063045961214514063628465663909448374866355692429334182030494445050033974276844750074477337213464305301579201845053354298182120963849744002556922340650684850646857519782035447021167783091096978123940453060303228150272320877226910898770242924718457174264059474038125750672767092866473064387206742618460314173862698289289064559351457497016398236997951852058366040075223422918839394251206714042887765579858929097040143476337645429862940941529023271627671231300602291497530957332322737135643988096686031384446108554298219957395905101934958825179534904547831711033070877720683785732208169461253159237949093046252914395291675497556321074934943270091990024582645847396844140424176680200329418160843395311365071736873431547923725888375631102035559118375104677583948038313030896216205447447228610784785170280633371416110172887236496211334891044635398192313307283480149436066631263564591225258533803128643912196239277226953747729871169150229835227343992959483211538314352413821333701186261187747723677395436308706998764933524275019754568390535717155099566697724420770193878406476651583335551794941165144954571517687738483683142720767070484132689208502731018056870593306510523726259719176973269923458143073023162779338697892307534852582061260316478197765554925735026364852894271460976922434011351903016253317572208490114708518755567223349735249904800508870483725049311754648692184025097317092685557115204776643150496973799801409143769520745930380360663306826792953920410291962804959762170287205107108195863787893657667580090460646124367450215243658801929904572133552636483730696142172124694553562737386283843873438006504027058000338746762018319577730503819904456421707053320384658839798403069437760873791494180646103560135782206911207257747171113635790229509067797969301632630882093037620040912185529004768208616949557749929013667970650752286524131380711982831432222841085371743867187112211593588183854470985596834665841411693469661856013037631155609491613521322229493356533475637801550519087153843958655728708535588812080988744610068534577724451678501457144741765141275835782982195449871137801872886516040729370479718247302318979130594975352755302999974183117697784102952290946121957225615392503587922476647706550513747826169282213035906806926583311390483965853579125617994022160515591860817694112945944677398696269248790035153402945212172015715856448787813936507534718642529981410007356736714811752717454086311475426395186992781815485939234570172955990770566982604909107161305273042515834554575421096618646331520694229540880813436333275914764530517281760124925549884979867435101020200295749980476342184528681987472076623681926840199410867879390049467699407817319805488247356524161297546628764220510943607446642008793109247832035773361678037986401314832528934943945086027856873611375564971135896339966653371484126953720841214881826512056798993870438688754011582086168439042290408312767645462937739348677329755835567637075902022803822987510632341615864597126719323238892434434565714731749869587799852480064311454755405391173754336761073091233727502997489641180619634601522448700163545301018011449340604866009338363165203289014593525673303206084608029121766214565548008293656702980113376372034331250915125242856714658461101723784843338562122715891408739123055625293654157457508353360514756540842237493270622095903906469212716842639833196535435725504163065195182118280409836731842722543038687825051127023401720838398260076135644710050304349056878584688900980461015442239703326615420024535199043430590374881486862917164246758013321071761428671810700091105236412536995497051517508764749997748364743272959614658854049958927835754074929120722633309340729520199984638304787162946184889423983878283603592079725563924711044250228526134612984707342477305052708151400028280995566688376063446455068817407676388104085299989835782515425870798540400626018533669420086405416702466794356619143279665257165272018379839190712190594860487348850447783540605075392376471793394596824419711593680038717657630002256861381276231618985103539787522789368329057332642321144922986915888690822469594176418844958433858532954386465819565567461983021969843172154090079911248179849759599059514501730113222635571274765418967785741329994824365891612870259150622370107879176310646373457898114289366057809241569636700247484770908375488122055682930908065331960415488315870314485717308077016342135329527325092198720142602962479233949303765485889544621643367938897946364459570243285249017966384847928852396561846157972682600539693324889569321395282257584153576208729029814730798817023122040811101304016688036818996394101430179936630331138931663912006111047350687515749605629598118704454948449501346519953638325086493752303157547480712431128839019385961298516689438685858300789967301929118841729290190290855232535108221828933858726446046623806141947164261117579829209204761403015927534549383383337979674409832936861786860107296461642725626424954044799938806156678417228883137855517788077531999084159568743169637903218903879339631445496338149434386856954336601177642574855020158388232477237946563049630988002156425726193458912380600065023157582679232726941640381960567350437495537974830385151843210142427558195842460446868824063501727300382005367968168901862299660745834258602776583940635056032031316523823023390050040060430002363626111207566541680775939294441058014036371686809209586437483518217561064816115277289188624456588315860300734171854914830859633231683458652480486661708785605107994298138025558196780509398192230508937996137456745153462186042802075394182104990483249349648677416914842170984501286688189013303749160982032564076025336249916429109646738941821911606714775696692114714420065715414074000238519491189809906712927357165004494501730198982148905828041005135769878482969723117827050101927963397935476701300658403669429198675167742461896499253455863673768530382835339897172170263308925535065499252074548689517725630262915844259246338018017581969641773219966037369313416875984160623581863991290705421984229579856030607622147327712210108963933353445109957256233870367644865013565922431834353256756351401159411156890391035664464755829045412432619532645754778731452416325767995724504443122663414293770049180962970944236724006547239612260156246655799861455871443077636982049943525592188402072679685007200855924151508263728373014873466201332774324245455841024255637344673150302963253447709679627078640753133122281218370437686201555440116055080797815935403958897602418686310899630092616040799164852096358664742707572957872296000533835278153617681263456548084252190807315935699764405723856798837688867513856495970892419574405447509752971620564629259119069237634590821321104000294159336791053490802755813032008788204712546269623795237600376832885123558751364531155938715405624108302172252384227653073176242229716812413253730173860309123641045439006293496898105549065512373031868154390166838214324962259281421164615591938265651095606668500088707124675582206367935733122328496650222705380075988971883841016356773209566779927314241917472361297305981036809240674219127117762700839137810161748945814123573709895353888603651327130121500447301022236113807322368385778167131140208612565993955475669547185542272508631205039201736996654897159670555474393032124837426224720401520470739547096192464830651954315631047640459756707317579000292411993522462774800433796906760490640785934261260713571070578078073936324694011582026146594856050875902064024145800767829674004652865181324245031947292737597871390198969288018525255357890316874772507186719974091733411862535198764126994509303907176951760857328866515668467906973629881535638649847892738061053114030532045520529324241336491304516299236555990628790948278818721991966406638467027302972866563501260179484437865956897475571946335183562920724549660766178254827002697800001780920412656971727280062341964119725652250586395818382393507970377889800820116368878641233502307902212156060710111121590469219165610777768720574770088078684519550389156430531159354016553131704765931448042404517875320483720899581009152601070297088258485918508733446293342156407792636392964285777921091420193406449786858533147902260286499851037845437574577303612473413436275622915802958509299526477464393318180922829523101654204771139332502356281877202636148409878120985023116086140836109809338531542448257615444632533614245083392151941861465512682035261380394302839980972174666968246300132832640480635830342833810122692533914802667915099034415977277863384119121294633723598086187518574952202899063980348591995937548263417677581670975946639614158009813983421009271270432392848228275982173822551061802918553222067216095495706577167307084103367375655281563504865034476200948105659486899780708780903240783108945435793522500814855111384783653890730057519084466256022453720414103909381229447973406125029260972724987192964856775481158390833919469319448541877518613446438629380322997578923578920546837063239325544455046226864156307279807036462543519659045474153216232706471499549933585807933054119676035192865472114973128682805982802019423570305351051887124452692342601947157286032717325553051999915143575725366049514116994970677791482462404022587910917159561128962460891792853968262084895130821103006293048032514544125946715950306626033911909625071463375758946826895445254178313946675761274021364633617266507831391561608930518136058667277625552406896887248239398159825027957079136614349413711157644800605241932460862233666727642798961506118757934037346099918082269812297673678264917138944649035642195922513249920923643445955596740246367082658434178952148701471904081512757152340284912458883318321249431728241452262116827622953458375473284802001507925124193357450801010311564403173382529498296614476908319713671373006208523674218251858563615043091898963279813437375550185675786416802563467014744560560782198546795156380825781978080490018117753287631093521916609129251513235260913319795607423550346627239275823662926616908696636330622525190427297895094422737179993330731710168779091492314659298429453240293274295750140757196906639903075762729526288864161321364497884396686124251683332543672870350952027142775307648620486739806684161897600142096539426526410993046435394418726683334091269836154150852574360011891900173330350361572176775452180970629514841157697911323085403094259293110657837577420526872322584051475115679299420463446207939877255790140782713784633495771437294084843061511920605934697969342601425607191819686310494081088485136992381471823375252979364938231164031158019753070376849543616402259588735659013748139592930376354684279824831799212447655063269038685741459949842140125698017270619697697771707571174248155010538187270371495027433429447417023013909901467081024090293000646449594407967455200004245572130316168932802645916476414836972184334895449463220689537924218566237526302056972480234734206381800396110139775429069452986617521506631451804694530392825632494089233450334205625446106163099653880446029312594463584168891934169220029437253730402081872446380610915244525695996149397528649123599445939284427866436666167175706297877810658252977842246613595720680937796208921933636265949593288199731846265858858484120307037407633806547156851503836419217664342396034000682115852217070023596953310461127418769665249250279179006532852938534063337438527777007288411958150999530279556864106269848901851560167494653573513700875180624874948433429548627509922959539938872332168507159259914317437100365820306637668562908326042485318712745790359625269143703858164021891478516706481016506660890666922142048100483627045710979439180825907668161847365842995036708422303572931822757903750479279726721101811167700551796082547042779514189866065996786766800763074597574954974160094576702955880258545394404321901521841156699581241728633381665839166889965708832397784468071506405721847028877741271188907365611677014320778184864756461654135276123255978436099927803603260245654895622483438753211280247139177850112961300860969405842994810001042515884717452030730497019668173233067087418186450302109606609299907259357479881616534585697199818874297173763301680521861337869563865149007860615755407218069702665862842436508723272988096512179515291266545556760262834729934721380356485870782176211248421181366974240857919952276500014498902799019898203576860310665595149466005800752582451698412960396686038888896486971359776783919963931850530299278059723064597563952064103701385108776788968245332881676243790340250669406163420800128261721644733430671993192834643194220300798102948607752604747413345812661500668192280524589658411456442320698898898903731823498924020061658408871352312005267856484864770874795670715168102288347916225032445205684658114194554633237001042949044163223759237312723234495118618511780404233604401822821727108751253339722629712273875341081297512406759511152677528961570124177508007316349982767024585019901446755024675580742076713720315222210723662062422771929236075498864969810999933688828455370393101971359474864769927919416720307978731341704259825639529873517597628642861674516410938244067140307638143539949960821407464488261827284972763012378789281819607948809964732128396198045087178316526358954866524967512568656469366887439861989092159135635681343891195996022022219595825092751944120264280193733279769546711239804608961513369586561846034673492325203489825185373492713612933182478542564971296208838746923120645212238801184147269462383033590965977859143951456167262675945985766509891083847594801115654150550576495065001468871249699848297350056867837428088698593034860047277810165092706986929291684596810894117543473091919654007309546055162369616266093454259454801275392963269373787337535639164295053666514535050477398326224321269041743332002391524830409101556949968680453624649695360611627816260804281800625724882432931381993397942965876362443532012349559833949332810853301861538440222103519950571199863502144412518295863327406141355893821422364670644993260944673172114171063715024967397114634068083391424511370941669589625204619699556564375952501182995083621054410489545320930578090517228529675421519438074252811656241588107662270840896314341390017842974366337593530839065296484839567105797564269251291772817731700864931345517987974252284224392833498345794174094076285487717420402222782809262939935058901236807883549789489145276140094242658955309033683874285251827409561951821053684211261335674837584561067604100860325722916919941156269489385560030027811766145849622518891865112427665674518132434193764398676358797625782732356459307180673628310207983664221807693541949328302504306161153709080269699585773142643847948091887018962309864910594801268704695876990919819481428284182523419457065261323588273616192276719368979411600880788015767668114681716887748454064479176738862587427787021334039600737411130084404045474754167266643929362205182029651611313543150631556017147500653070039106386387447995467068515077697624288780945509666166312123006203932144856676408641752553365729934864740354965042588901372567830436052317211384355476366574042904162018109301480512905742136268056753643256430233868573638503967414825395186587511325865523512644771999136339354493618031387496362175326158425695331864337739990600739416236927424211499085909391968765749636662221620219496312107151248134107685560870768024095430282840186410889887204790410411329829316589745245155463275246830966703227184086369232355734986238945962677527086915029911388695799946914736853251309728525880660172624528638783955591813233444159429516772291751076048837301758428687657441910381761492195741416382212689580291706617454049332955716206698599363127358581009094845733204984517869156363653081002283984952015367788427769378938952861667626810098824270224715495730843739607623508273973592425447383198547933613456811439501799129813419628738074665987621030247063197107504062633516468432722016830626574545517791747545035129238288892284477961733560102338003336836342553963452484286168612181527028857113559638338302427734490440065387936685570986731235385908318438890401148300855477578888989306989195521455180234885744953382576245944757073284011824933502820850347075127367701105725596898832108155465209739647219121068959795753121131813952313193639194947732890004509934475172733584211766998987070314634324137126040608258688475663061708692627339019585660485841446897908076262958931261828164895121206544498009356421314171462607139833316596740091435442518262081000898849932987965483653945989287485780220025575552885645093835338210800177350366556560548805201167601017797439656525045927718294748340603204242058635074731029985414020571540200847862934982374527885777171225623809995705116154856705582013393999416963184595760379274125848970165686453585738530513960500847035696635971801905810032872794478164440684138592901657479243497763495916540813872517865847314775751539446212769467783244520461429816279153130927129788046989073577396383981836754878855257427599103226134720855694379097721560528707656094362715339940109322146020682986732152943461310336280103436806124238237403529575876660001658275557111901125652584913262051181860096612934754791602624606872231657747257235178975302909983279284107373882321900636415513083442457282837493364711809694949111410073583127781483920641138262204382776855550660026925227049670153849951195083542279304279005507658557649327566426404180074702841924388194388455106505500958502737952386263683993630634293442395906073956557612799984889783664274258607008281889052264851832591902874184675096237165701536616815879296804085805421912183716070214312351151242534734776024930137571564589193757596951155069791340349583399295051295269036974319757568689707484802189690322895904822146274712902333541267297722127777402145054053400680899113890498801887439111853867904393479007513433208255957508157428915282584311350086548849612879146314748583207331897355098680890831194236199779155083816001083333312745616244459089918289966402269654149369359093251776669682971807939682767459147892941833705150305470011808732063284974802439394298315532987983672114669497664312559732807665244977303441367990628740660874955115315260436212505151873165821199123058292903247992146652344687446982016297671138051260292991376971809729322436246014771787092670138847527876265725569085864899799038219326322804231190109186670852931061744009152479303760617035948669839667507647461635238361072621724536005836530989924352644328925031238355456127004788963849285010154552000243229795955940405754392691145318336158231033633664113077576498452013101413602078271044700217349047739289783532453010306726793455426510323514179627115484984461755639708627403735066417076373548259471597271009226986190873053574963186924864863624874431696101107432800876361085176571338571994791837660378082884951751353225288107551971555699773583669116370187196247196269045579160667243523894126099607208010263504846501087064527457682775579554709953551899492609047894633929195257145032853230826274354298723773585459203794499818158135600595056619818608717759768446747819635847669769147085541854603540233453045432054210161726215070341241255942170178802442277286670839800872011433447264198593009064738064949288199933550562771013907681915526617088875908140011808927207683947173460501463948867360596986278554025867593418239540966250248655269953337635256831551349191809578447474246063514660167308463069155450772015024844421842145534717470265330239276627523626089754246143562546474210679035244190145447878069211949168686609799600047650306150956620096630452167610460287976247518412039858913252843685128783780930095897192457920566970474176773678974396894324960442183225857439776520352447871280072738431482558886977957642346037666835151145762297147236030254208466028649145677414465487435827894178795595978885261546489781715883121637864596321486172794145981766167241657661426623111903229175108843449795984542260707022556668252679663671860925149505664908892720706770355393956366851018103683651408232724697960064612013820354537673726611064611997472884826630212989450362113736479380166081719000622593654745431285227026678065750198516368024770248909190580163307590161329265804293086027900991045358492106398755615445008841586163836167967121214719270112432144561596057032323671573697236908916362804161020970674485473554482375470518148159902784918878678834352042237076567437149060044993108256996008327351798173708161810883376886775808106849209553592991001324889722762500856478082187885993421544086793766094073545902567762817332659676537587187119252635039604199174588486634034242658016151158421324071207699021180574404630763035272099611305890850385169785909003327325183167176781482367003569043301399692235797969997207938636546642734343888157440158365200274153137479545489283432708131392493891523726619233852600388511773710933403666946068197671918003384814743676697131659738097185857975564921285842768647647566809747324505983400929380086255432935518933986530608747726517265339230594985081086658220032610519270903543157599368805268311343677967694155432022188665639347825131077468665180397848297638694651143453172565332135222136004476697526056439554508934246638255772363546020111348263948745985131461268734495908344182129691266565461196443520496953444521476764718184399671104347980101404190342574181677286214971267284314371015920339498072684556107772065728858584871993695726596506870843371195975980499160143603768280094397047915241789803327454112468473701154870763564581329664549400719364514164545172259508868440708523079813536285221029779390151909117955885995680234563891734161876637795727531419680487459215640354523279160185793680327659014451922187022318663314616727431011761298452696123959030273588975012714871013220640658685943035635388502134346477947799527479075786648213148662484805975696438404212437422178296303252663339346802069205218121204350105318428201463116816171324197420604272958409367129259803411459681250522240175533111747364457364525888054908762998663219869060419936092149894675440852200310617252112457350533953190674592660447367685424357150333333396252951077159291930093149252635293586907134482832675269775595834062136396963645391716196999976683860256583518668362058729377599984963509779536857998484470452221200465452367559282401932712235866307346592206357608454901955937261871664664833781066033358339288751987354304968038974293081278423204293252703346754592854964457443292153558920002172875677221986590858257346681387624596683455371971611086610152665020733171241627471353225921166683799134250753774754118560489433657256343855769394834187308633007997872373348096730806187039397913764257639594137022450762628264735012092068286798590360046935739114031190413977340803125763177435005127807162967649487600744010609527001130763955055294861669400652572267192925645150538877597389953887411029939872879638610839673586427361460327074946207081286719510508383506122282727859727253178233332444963064553906150265712011591049427116812126438412837692896214154215586190539296855025312674654271952132790114767783720592655372705125012728949674097496200312792631492154029205712428072174464152598891987121194551157310976466703743419828353431060301074964717232328745880010894541123153700826775822322557332891186457934367965011125752186239395397157206242352640851326121205531455357294267343283326578810115389357324707591325260771613957657803090796255828242975865169886488396935237245498261582325978553262366488629672020999201311315122547837906167774097604535672974906448149879004172341349075263335739595514003942386374488224783626145942638813804366056155143515505424232683491433362434462870221154516007567864798236140004483378121602233236181864473122264368433082575042636155921775921590140358388831820574549985606790540256547727742615170656262154706606714946226611047815297857261004349343214519339418381575819277153821770669964498155220442376279586548940155801832797206516391958181415842134986150630586274570393080859664702627440760423324561246321364161179963526246032288572023534699087644034271695012815082605889245097417345744825293500452255491029541217944772663825787930724106156273628514251008809813978067120836260938736398965009749593829032196791405634137753423611021428835516971201258955167621576333418262702824693730579888207985661489121218317795709968970234619114970533586378397798932417780997028296103011879049827310677040888379547470206564274406806130547563887508769100032906511639546697441009181785835196581500170176408265149964772865019899666671279537594385144289220643402602004263488275514314317579893355380850442727147674233260404789356139328143910224549956355036334420030400724915063285515600344203024609808311000973729667812345609121640928582302904292903265300033952617941627017566275091700900978108732571521610185984215844013210857798436710912633357766860374006617960013376110888349742620667680385801694351842907620079115476359542276212509414954133792480805119195839338853673268751427273378393620113442143400336785328253131063510240236068589375170840092627929008611255098287112485399487018096306589600916228776612199234566097042721433417083030087726984015872492689682469668830802299047583525969390023829436529022366907336019606898234386652911909835688697553638689494918138972325654614446886601872575933215028165557192695557439563172948119632627269975560691689259590108258435000493118473786877505174486853528768615856412137100480262562198208891003452640669058864666416925104793327548806262590539154004639312345594398669183895407933009157568390831756451350483980676998369657687501222314253181702418130536659473100031932701164043842617994657447642697550883088725315884042525188370664701393846194464345746160004478456726723632073047384354155144207945959484341850479425542615272390238419345222037167102364834507758201388204227169919047167149269145514350099179080754860671651611137357116139295978871977253416860721643976763646759357702815004816820350969638755089473573205494891895698582465542687967436487073841898982320424753997517340896318786059959755320877308909489965873946143145908419669896344007216586233548140568686852075315759401997343146459267475283781641099744556949170674111666913690076086983560032583340833793085988362457325340130689244879524653067611927455069677427548908056045448717952738580641547299618615565080826464031256227890988826916448230354861291905425882754844268769177234483241416614410496467399196154456600451248825222824491881586473242410650852436731766338639610294198561848190161947434402440649228564291436881501644649732620460857975039279658726754634939252451718905163782627799749724119546435753213075272995691042928462836590770951124031964522106243515922592399063036805116497869899505619903419243272821070351306929506412300310487508292121318268506281369272971471336899296960448473204218964107613210157763685656492092120728036596775885495380391060087659218354669613059977972037970827018431058091626538090079355359491860462092217789438059589157483635780865421542823158489808312277987180401337057273481663204927855179263591704830273152085517301583873222093675894949200702927214182414055738571225593138105086301163066893961875419303321148691248904105699889180015157016894588120507040016232842646236865611874724906396909217176647613889889695224737925352494490089551090227853547398803420123222292195350414244528937102146766949012178480215066342198104508243461838358149992838189574064749487998767281519429139702358632751641067097330638240445178919451000297220451274469495377188194217601290992301991285297001003897232244082958767084178984137162060959370367189948952827295645438362512949741207548997926815710228585748566905328796561364724833097026319841579913193988152095270647915289909840746244168140499196968344564306062977894742895360583884236791056765578746776942769818382910728862062607593124306991322571343108698548726768777164307311320232464531742032628396476206907849933423426069495892491501996923736246261203762744955512898937892788646883058750530079973676083101888033578088596968285465343440076584775026876699536761688099365063153606645065741635221089802778118494180250296966764745873819582358565440879127772137312777048692023665922700310113433449437113295088112363471590294125129806840296644756748353522780050090003338197921015183158422104391760413488924724299716722879177475520854244252614335854978110647029313071663128178511304510062430837080649725456162856603001638249524534915708443539733400507553353421821558636608659493728117512711766182352552079369919551309249539983015477020112621140776575052593237368399364682162106752478523481776539846155586671326689105147618047258606539449400178461380817427919725416430314777730299420594691145289771195013713800083391171396464645651329012352430722545817180945505194684196445657470933280507508690898646489915033033600806100594972443694892296747860115046647645372759935775215836003417245398948935007582195373485085676310407749308260208399997595054633876349511196511732562533626914924387638296587447181328095271899101189701327100419867493740155702104341418751094859998070755668032317212605130867642855025090777700776370606745402983636083582985232215297532920350808899237220150095773663798070007409398712661802830445221929549753428112348742855048659542943232021546946058050000907828575687729255586711799614065321853352329197295396383788796518405002967663733772258279024816416507986304326230279639621723352484788039870884391511794570945574127776116046416938521159025767377678763070324625952316172200102311195220090595764498044095307903457207652899254956866981622821250220389219678171576507067144589165428279218422458418502182549779973938795234808344048949700374772169794715935367216562010848515626857108513319720266237123910638786459951943600260359590527526290066064849516162582102238674275408615602101291399688764481687190833618117732893616466997022576684279178829920090064637986744328296633455035271901239511647828327447101804877952361669582457285298635752022763660415954841055673979351696576469580060114289066676673113943980081852136880258706113143950719511036826018377047574380416560342565371206358212943539771768246143233238718982579607539878693723565931566185234585056818791541398717600600993380066010490578149478514011687083553711426901184375049374090113896540344347682513608038544376033724543014931139574026818507020334821536311510331797148969922782578479986700222304110747457695883428586776084547695687283008451729182870297267664593578497047721239436736426101644419735450496806725272937952954878097727684625161994395062524287527131095388564251154866217936903026495927452095501412327007123308731167105084564770474919187662494853116395773509363926024257333780132241322856013329743117627245400592862193621820331304494885700242210924929024645049599698735298822607957300032930912260097264450307813670629713702198954435166892765524050564062604408694765929670337650504405373136162828179455339299851576416187192829916308158802080988689435359699414162020119830052394569695067172103555192393449348990216692658097570555328378970235901185074762525382880932874227199977839736276936853967974717065675438843060526919396979122116822666716394270242326556706424515262278128755976395155257943861859026367517391874210042501291514916900654894447112391241643505390580053480994765736090693009106079360664772338607796951507285707280458999651133486954467399639282601198061785078191915906869765199672811697486357742060469148752401480073129905014020800877700854810175050191881205509108907951081114825343644712092165323340805539778150520828547855079452325463902571258829007557745152421189051889581164477928440469433853098443365656210485800003618578252337148328125433228577151352351470464068896288966887357997212336428917665666358548452752619079608630277815897417016523368802739613162552501956933073279965412690874026700891218361703089156575390866780262571556342473185619644655593893208137765214675588397696922188848805104075096112391850201146667827003090698577170423675206640683625013137861681556305201714177732300600480415216442708350552056237830982627093168283505388411697540726345622164763622414034728624932447636622146630381393949083648105759912617562804377293810635891849376905386664731722364405240763365111364007218536578312239972277602527549463186424865184080798634502609243981619476031661423105740661910468140373478566534880477083551798302506694711381541788158037345644643666887327772504721125027843331591033786776542232841166617800997865738576762830257311296633242339427330250982350224953809791888894116697383634220688317244591935408614858258984952686854539209203957092277268315541417030393413316937215794120295011210969829115674596498178527983639449172391421772088684776701148151042833815085094124310222673114781719820759338806531966489430010578137129883263638266709800013407941129278183390190383148110771190060093644743295683835846528096378223220895356047103977492728842431594560874595042556127468960392370188555343333654388783027607649253338571745016901237608721209015193233551977328096177682180288521802389930654045591092836644832120982856330429527003781614893968009683412253945248752620102713130989106047929672624006086299379303023926636286129899430674682508270452418826446933659919839397945374095969887917156977742426705316867981852750664298440641042969149200321066857321620204281091242700787278482743159306746240276119903124632553225291549985619216543061515798567958491891317816072999230848558449242786380604978877743889044033692900604515310930755260475892180941102357948847986150886750693429634401986497575772308969476039988139200322505961973177313913064073175281941678876563830943628010510435396353482094365664234111745886142732356166651222256340010992308293528663224157608202079065178781418737624560392009860623786826715122493395543748068425226618850773852930614893987848083654215969094369415956633641672017230222491893450719723992341971513569716545171978484750336212218746285557537936595302316146601160720603787299258159577607155070872805471472482857472250895757993862240413443003519213575658755118142444840368044487795701411509373242768640198513490407911073747296988775160095364374001561022019483392251847391039485367605638851498120283041627626532885276920887191407955946694484409954521530059762452145314440919556103490980985729511408345054129259201516608212236291007218977334503285645990234405830503120956713093050991773151772179518473410826704133699892090431890067262536736484723778265316773175333649325948327427088473352753044538771610235221820726768181884211223927430986445439267263450219417168536006175706849280113240446094138117672894888746795853869176648705499930216961769800246674003967505235017537399966266696021733431154015040568283784259913341857814546334573211487106907913388590360976200027636217076952346217607641637410782786184826957314105559792843452818194978111538575162410839858386999698567715857621994214995775146942525425043071792576219988027457025812214007284559260991530443211967117258151005142026640818635133875790875822379210767282465950608427805812594019867518158634244862591049058727998548307635632202762749716731554913462701679433801770183507524485362203069257398343152241541945656506810576587194676571018887864403095670983748863331599706514118229147341989997890066045702194379005880899530608301979607360197602789068145250655582523602319748225081589949142688757258529395493136685640884024932406787000400833811340799161145466155711156013072446338879444100817934677387484449890055518675021454961344296538679391876571260670749513076529396127034450106844478444504045739675362117710675607913120834728135571747396365336359125188163020242199706049675158451575494857972440519972669198698882246743855732019264904889285630052125712787364950259496405623953424837909965137531277063471954173986500298191824715769989970332334198602276584659311118766113900390524536285033154586793637558764368654610003882019455610770223730978747835667750016054345906942736634543787432552403223858522743690132349330846962399355420428305359297045944685605117628637670530916804744538644335184914220397658605386268540046557430485269559160810153209640150323307829626965985237813394155043377271470210264545906593165927585995769252775490745293932453873854347552511318470700269330035457704420882133060369504367489676547374864961636593871309715823403740406112227949727403214195250988386420638875475121418595509266645356504882737649444766193245655818656806124107570897210998600376870421686833559502323522251360956356840047346316721183362062304824339019751190038077198948033460700944608260818516879773827042086154399346177443543051465709525771426847895713672424302282961987692688775300475075192516937525629858132199360827853393932335608179785299112056253614969863278173961394450523329568742187470176383676602522830748285617780750798367232161676666076966332950072756548785721589794075585105430178244684587281235562230869242515281384912664776706399479181705450145190618519826612280279814239736899057302920717676129245178099671238905847673272978036999469860311141346750723191046691525287103089599315652099131846941421181646129236878255480404923936086473146537459739062250658443059982424281447093815593594884058411994589141441112054672683330913322363477686534444861733097499099527393077712659972377172657798756636035060275241299996551982959205485591083297033664813852917834852731062073824789209960439451726442660464177468394406005410173415466967261011242239382096983603787093701374036878589880413262465731874914718520009865636598468166706904764303860751637066348644445865001020317469656700934843259811251459149645497545328194705309086492061225560499648631526765799126224247440460229720252005979921431842816879013800639293454499874382019578523336176549153885042004686868918252703092352310496362668303011709951651072544399030467922112706830644348314072200307179293684981869172212625510643124445444792801922623603580850288897125143088485950717164057832409790623137160186005829178642544151686977815231956404062133995005966901179847724331921677750845643151528389919755638398280783985924890325307458096975733015747467699070217234391371574718165623761469525249676467483558797515874109652002951653233620510461315844050091790744109249924995009986694088687985636382100417834760725213735735084350452480614246233349380137216344728794743576438275518697256278938016077667893010109177372093432286643944580885740434395745791757507092633339831734194188005124195504244290819617027841323304577635819200777756014524878616674686930082193333477929473324416049037475340871727643745104119266324118208813770509790816261650009955608851078711842506652797479299074244575404309863408508244944034605835940192542366095441264651790549369105828348581420348646879129796932158571530390832425611168456392538644422376499734501258988002134251718247703572076918768823367743189296099993963959597307760773535432367250912999008753923878083355664542059832584087177549272219147456580796118146513816184745385405118080055759771193140070336772463445932485071865200402006047477934733654257670402262180709893695185588376874007627004860395730467838679917542878954028974392896337293029646203740911407986238772694631372903645900728343007849254817021853398524687950122231800259043085293987880025255909552249121210608112746575301549633259872034416920986956735224418202645910072357855754986341372529542040213350097476255480626905699024939231491401291723857757210271771681943109087598723430351901453545427747554695401787765145696937444481574415711927909336715742412531149292554981180955938111651688853336655926911325580309983453025865553662518449158631764195013550197657618437992623067645253706182311931304600315189707527500569384184094378983237213272798441847859804213096593434474114837881978030450174193607130971523053332322604712564091834411955521719513452565290308668427996754371059625447233430678003490958915156129628763385055883633076827159012597734837522543223529980092751285994601022446440605275143146167105895058701919746659461960136448368927150438260955536238190632643915177516410487523608586964525524391306483118935372117271623428732698847560016543594300800601689767226611739503606141513472259219630211737798504189979954258255639768589212557449351207157148089642953002396943293051382191967305826376280048598160519483424265218003319801350677544268057523638223575463931082916284422633833622019964605406075200027907053602750576842282995921573427325864288782716832024953701871888241264767030749219991217827005437546185238207452402970019315290584266519044626230719415417820005859081419588021110662310211947653780545918649348493655940975652257112102486821593826114045013554202648378238753260619067816192821162224951456114789443510346798044600810237637874008139577324609281376336898028523216798087884015037294014826139628695742138346321568852119610751399690613071970314148236068211867997958458481757330945279733072728824128000687822480841018445500201126885084144577246365931908365641863239305678769210717185094463940438250543931249118923010343235868895985984327282468266267901905835950395513665656160679720714953350366326442743307188360929096503924811777233524394349101206217536381258092206282968830752183090924262768903199412751091424662675547081812711005048495789268867586377806527397962192422191692044327632592604119146994199883061166440475647598740340644449078457144079896846249189647447664270645933324100061520717314581034924485413706171809014950162547801488286479349967632236005038595739780998940605160676713232459849728023342393376602913713741660272527441653178297565281132202458482466878344750375303377835816527944350759847176794811876127867112034263530959813091676158363472264822588142680008436992204739327578511905000190759230007924922843867504385331688009781672241284370170806536839552437214608220149777035811177588439621561229603335871464307376265919337305230971451744630304413415360748131220404092431970031597083698279626663289264047887264828902204149032221758261655316435599826721413661067694249312285023316772770138974369337232272096520525891189446940920252655660215311402791188599326458692223867989595148238580853841039659755658574172259046010130863000364569095335187866218882211370028950425787412729675111355063226318807264151409134298638608482643512237576049670677296595753699560353653706339264540247456078789547536903565643773940889905038231013812516348899789719660433624715903818762508797437091236569196616924827073115989164942419266770062656011338610670568812436661070632283973521447467984516422457812406169234734905284117675000251667710647928537415520608215472329062401782150017164232845376840086821819152334164157766917424475490940906689768542158707712920654674094272227728746081949277421908409438723885106455339914632723846248552214199668317070765619266465234008281058243496733256124442961511468353219470453722832522713581858928522449546283167050948497809457876316517891190375082785603874389777704109933413069880669490975435193789001757565098116324905686219672628557027527858162455322628656068120932488808945578284265476608197136021552745820873326638631781552167722089211725824676204078405380312290261513803760380474423396263065303002988925502865884119542683427411452948983015996732122290918651190333682808131914343858886045670018324364775979447517475348430527366842883290737540031308412066410510795543784851388608574015223323259238511455337093196978042793729302147203813191062895869590602621798641873218740397994889188240786042807089959849976670619288164350282286956313219691012822449669179155572688850446934941821399034402286080414422047728522094833933231519387104094396820592925382989494479073996539739154891815432075501106363810677589915200955656860137374879622911026490002987239771976330064064202682978756262859117180475315327914909082385066372780430873281605812313753764451272936776327920858552774726732676440144042114875049956429683520384705528244855069265063291228067368248382432351374160569013563569616024287651664349997682861845504989749339966993814806644650912040642027392720523468427882126620353673634275634571896016948060192707018397294607570296060135854800013298698820508330984812230003047125412467484217478093508078991131214158754516182950430994038347813340775719231340585256368461902369670295287608270186463028210706489103627418936818644302650701596101699643826755029706443467517842758636464851825112512596677870434380053690043477496159488136622091820419095486531187119451202316441332073126114677980373650091023935887900242824568810677189928813831231964549076697645890909921150292360983012197307928870328803431505536867088922452884915580980583139719067254427379478074740694742114064516314429068325044873911249397253114882654089824005839799937067214562610294821169172853420325764446683949273917932148545421013427065360399972659823654092753118363176379074829668084871911926188675497603545324891819994406646582622014326442935623342744114752832795547425436761212484391529961634159742326349262052130195599889608740515776619801310124809493185262921965387732805278821981857000373983429648090497280822337701320346802631073997166339846104841061480543649816760894617156785549985408747027351024405546940423498505848582215469183507795169480380150179727243465841447372206272525880755267209412739339517713130336449940442776491185373603219466830214442139187488725423765778285697550848267040431395440187335041825326627126223820830435641864918482957323561507301147426152414994712565118255517989083433973055426439188143995233754078375745168732988751055783015623298016197482885406240491419927935535567646006220160519992232370168623995550787248936663963614536275381559137003837163444501747549949091399931904187584335864805228288783099688445950160532782875178188806903497324634354385399726040460367730515124537335743239589156304640477840120781460167832056104631237507370589785758541254799253112822993891309297216017688512527461249345261614777146686489154806155053272580026380018455404389593662002649657091874991652268007570296954957103975513274981767780907899638190850872357999094727782991013242642635316552818003397197952607142797071171677522024886953641159997702769230069691308392938273128826553471162360352703434409745165496257392131062660590711325335912912861399003632995258860600513872714319823361799589810419470645327106779468312230830223009106727707948479550783223197738311925987274236325338308397706627301970945999530671974099939714524031279140450574932984496826391870506557455349401462893469387944472991786147616382557559693060039422344364117743240598935212977461937376037303091691387851215886249791452279350846542856330842403984056569964943322524756889645240790792655143165360258620856966706892110555825689482867751536606500372137243823926814416811561445746309877387372599166610393499045088628081776589044331899097027487225197614217872928468582951661864528983272859398555778737147128784654297479671748222355300397428529940991747735741330765446238851413788135516059461577689427950831527598177599266589204553946778424740322898932295335963754982938339067824929056812857207953509227497144196598509213102996217355670845982883273853512202782519895130488261441919432890552417039460440130619509149743507169875573866609230272332096670463339241466226476456331456658585274931332297606366068145769412700125952403351958642743409171869567478508634871592333519408661948258164000027633174820745244714893916911136205679955791938807979262738746054025872807950867888034165244651008460833936581142642352733332436301221861783793458371104862500704202225432046588421576019396432350248881407768091673833461095212683753850700508092675999326621432868511085616408529618740598708720689856881457083176153725292968227486299849276420912666487614194043837399938649596657157135443242253324617426149640302778970837289083276308274197850335434426389456701414712467074192340690389683234973397251986259496976615728135936344874443918676166882356778298457322122583692773654501916194067359638155847248865452886495360939130804235711443756719256864704264972386928698919175630320288514438535367074709086737251240540422823061256186306595133758620706377736791567244461673619391276932697423346164910622328352625662668190069673651733678090426800515264144266959808719515929900260854901955828662702709825875409704401363246942549642585337702772786631916399501160412504982152645966146247043410940691399011887587816433879476000475081484689591229309796903886860994754849881929830479929309880564132177182201067689067235822635155419280388013623422893030657872760099837754080758823270169891849047082091793125663046317438682443846954389318029216109193475337374205775269303886320279282907573648655256972468889506153230271812698894855148880668457952353678835842532709784286362160395369731471624630607559128159662767518804069195360037439010419712335339090523731411255401223208615896932937994246486906161404897993655321201308157381592969472666434431130784768258662700179358365544940745636456797887897064533261193264610077861374689676880259482967892137538487130711085263097064866273968470637495062823430700990824395053060325298124440599519582596491426750260225471329215038002223674827348846499591648746457149140809960024797946767988654108305756003316354085905008293596371283374384643686904942929842279934019047440589493882332346370120716883686499324369093080199887944905248642153855061452543855567484978933798792040410857529797887048883394354275718730927087856384453143662963805479820405559223423517165242869389427602921044512409630261995207722539408187370921747578664590622482265675652092976041267621256563691725671978661890813795137828838438509387494737979481776657392426342775374923653276474523945533770515461914763621557013337530989600297272896961599705062158940824211783698759258472498730436065892632178586581245674798967038465853637016067490027836810324407250673103788507890964988043600272099783741194161142313801638889921419921860420853820841210622889845408662424460125178724776069294846272640892204325119582010080297851410365968006297114595630388294092884070598577213150734089063248798541340744786061168357505092774523993238762537185961405495622936897326266158640406944135116879642531527804783791009294467011585716752046923056047997997123838541401026446962308850486880123206062132664588412736644656622750656011405803251376066560655762156415571132575194852631652199747127549305594789489907980071853075163945303986046775197950269318198270888455899111555086733977504345678371510466138856987538289197142388150600142922173108503700844609479770930015774588656723288733307729994587248151683419445402537101427622138043360601970621886770318371112675451316837379470340456190947456592716096368779668244810230381977919929963477495504136002413256100087585552687085307393976444534903337773788912593320902295748379939186044020281606984620553908945471291970021946435934986037481105240694272884551591487166256377098105481828095859636928627787798372165781924578224716647256504628585152245881142738941197524543193014509532826641751940997489194904686727418683590077726263230596752031269300264096458702030244804118358745340435093544288254490934725508234208704204159145795976825228468788232614756060751349034961995833548983535070611908642876708828277386717084372128257282476272980319980056272497620447840176138523948123737924434923057359216637522030624859951626165225810272985323739658691901243024075182910091196905820108252361484551416038287742696489382183345991860040422483409209802754990673324701016201811020449212772574018505177786104134263909224824796413938869763143899163183129820900729274946292116511375437751192703989769437858791327944606236841705027137692430814962107020699028916407117721089709948911964508813688254296234523039191928318988305310530973845587257196421968607427662222528186346285543643581535711472520157682101461919580243426358602051698324491576973677729378889467398503571428007461219093652392684156289049866555053511113190320668414129901600229916451196667612500169035616095882099765695141800644855223540089527633693581073314744910315232466306353599467866331497090468411052390235715752295150260491736512208954924872332866552660524059310801373218983299907331253647864847278415935938911420167487508301406863572073558883074657277223863771785556204782417326883012259244529461553777066608768573499654532887151906536895062066298404351503509497984720596203106059334854901231490768870800842861660736110735146830742306526956784034311375641060506920925950249893589221557790648754250584048706157500092767332071744995146542997511248853884835861088994384476278075788524904251246174547380739591778590924094583296184113260412660026048213736248362704264082840110664797372086218209312875873955398414579682157040614461553863230895839355522687764131897693692353628005785945427802275856862429076538959013101035505514488894616908792003617776252865761016837593429756363443009162309893797539047153889853096242901512847534619149997554119024381196476723826551784647434110110549695517595609413066681402363265537223295232415876605065441788506790543541259353227079971018739776535795786450766249375407967570330433862156423339638367963844196302218515207978534813830150184641370165747490415427796274290705813245773889366091001483079686956102027872092514107293648897772071382336661114956083860286013116560080056558157803510900757523193965714817739336872017114983027684296609550549005994775055280064385288501449872750366123969313712856645062233295555944446483247004324562914641396978053985989202563391087451136137311556184068790380896086162649656624965636146818684540671190596856253350820638666675647268584323325616993159234728202425374358881897874074426622916007769359469568041777678577943812189891142322847033978716529575306654363572422571625956518139007857604093681103133555591706359178174858408714149600537228740183738807555266037438263895792419958805310673922546803113856473627189132855967199024624424984775916630568438769385907261400270388154984647109504479839756513072382076289826933474271281872677791804155343871554554418364514920561484935928998645313959325738327023693857553439675112171986599683336609021082314300795532046461917900714254950722822158249129297860749398950036537381294576701288502455495187732310246007700422814522159981283909531400868432190197823471826036952476065658599006776288800011270021197723012831058848638810949702253557894210556985803644101798945302614038156022044055685173386387401355778569665242464615528629889266397745108395884305801059583715739660472301598193143609070461218225212742927640798649823293381102133728570840202238604014378784668906377098198216646572150988181184111754682189894976450915404621513073477217166613688586226007459600310799073114562031208574368386014790961566030161210727040064002352071830777084080622747178807503497648053502457488352316832751153910078856989492885479445608789654850056693256787893919833335572716592296932553608136188115049109782673133965911182271440722607580125106870891282607320416608090067039184066332159522961223441694774877520257038274935475955531532752916295154623119709086142584857055811069017680099363935258567815499321794904933505985679410705621930905340954499401538120431391916698246091222397322908571496085048504885646450426601889972770323477612190709718083056710050945505460309536734784776043673681849146295765257282166428789313651787172434221776886063053169182195979432266607286887737260467356608740236622227787105474842716296094828089035554980748342010870488710810467919569630009218710942267926173104253532962536720734900751332748909848545733626147652182661057492199873495053483283864047012976393787607819924838217692635550648487102969061222709850128380489697038718845218463354350487076410036443121692823625301878893633179231265680582731689872806393370810408613222429222798514090912236706167033358001377083198666560634715959017682062450417382516937787330162206051769731589765399845696686348151054747549067722975488105513480506552943659470555532634434577230759674872474551874857031371212571919275670508226595076591741360156064947343868605385590162242280679520582060877391469699055571939248143644223864797147179401836991573218794017682869150510936622387211183051421190052428913037908378200918919240560581291799535085803237835116924694863693344136103789113210654110562043395914253780292706890254110511684325492498436804869377491249386291336033999505574433800159660756166972802601062529348301173676171922552175063544191056064193574711613467477350630281871414742850887094903969249988971523783849655489743349730312768477358930963683964448794638208042465049330240210450946950207373813570484167611465859930125837761618736722308758405160719655211000384292869663231685251727389996801242626294199697254095763950910038935607175519890296984319850092012439382553754973659847635157651643280303500284753246267171910765461518216678354982717002176056225189463191630900576827361439683165274666534704434311591461670206862221278113413292473836168716971486903373041606478468315710644276159727343629513654993765887739378020769706710775565903557345570413407918353544991024374977143186921935750374065241455218380931614179611394352774140412325338231811570636693075415871958512303528674317996317121361215750270030329401529120715321567413431747606579459350893071010805387529836151852209596862090572513123394059701274028609177191131309252640382478502933340069020160397608105135999584851440799023380627688829927615527272398971540580814019836076473805471642839537671851169622881932545559815011528712341090534472356842979993151369099338225984164067589991747373679076428257651074131727870492212130026899860336667808961434368261792798956102125206900729963312159097224267211318964208062375943293009648224586222693384695091773940008863769234228581823923995865962990917822857395284893912602084573675577716466253187035939861141039901555749199068300145419227418569079854552580285348799282882796566205005591175275671794831335608628490747523439820452297516496944993164962688820458826992858321047160546841567342760566512143585557755137531877923101713215995254912871346348389579421720768106999529994795896475898558412809452002409795197954172714336987812221467565104814299683855038921698216585797608230920023885541267664738460546541983439692050403797567068812086224760500508314378910394110348075256073523562832793837855409427066843910310674850588821591976479025388952735705050652009388807779566259843328699331224537760746829531985266677880137223564097198347778757114448977139902941238429599043545363593335546248808709858279441490102130859278594431616348627527005142005252445976341669741224115556725226992381003266009062697535301022174901700652647503464550442403864497689935974800486324433491753106064258806134283219953806342201260103773219580998071817560996289363007630684945323476541566934947219911467465578589189713573145099175855491684637573070956630943911418431922639553872378450227677012044010698911308983897896476613812920919691060325836139818411353250612918513222043957702651632902783895272386807315552180904400709531784792991332111707560445286059947859130802837379249195253333767669991422211329170882575697495456488840931263612524911524801468896928485428742919755081057204791779123694796154544393791162228784050115223179750799572050472551497096696538644675632085976834292022585830167475444224814922894503993905777633480338882643350855364804218090349796420870814469898023115695863572825719573446807842249541203116710717657728767919022134386386022780988033188699763800675616308555768813824342530216301331915436588237377513924841387254963529252271076320861060359567388283074276234616327011528459678497976743469984193971773721277799493080627200540276871650749877880122830624716415888470143753440986641497245212666459823929587262320352839754743658447989978825272842646902486911318893657934299160341875134273253409949414387678865066532820606315504369083407399246768840292607912567001774558163193406980413065079146149994016355597216778571499480495554924682176903183821260697241397655661662209700024594180147165348383320537772006910819973191480055485793594123513455149392683938905113776730255273825224679694655082666840521860410540684044696246845057124243774002464656131036469405166356600223533892296443370868644801316003467160684284846849548592022679353474158387875679266611769405812217211933086253655406802636639156815595054684351244732626870417529854999641903400431141150155902786552419691981795142802564272791079752790313651380339183715230956687814756840464521619191551298438185054867843402921470423676149769103188263354624437030261490156386460866624843605440581099497761220919957995375201710146675608757774193493987905448066365735803272931419259639498337237864081733131705518671034034193247953399309631287863849373937704216790623771943374492225242537495645051476867987290311070144593740248808348606769800702536077422639427228737440215429903406458679920612032899105658235268134618276979420630481838955617633661199301383893858485643956597916166023225276292639603565177662253328999868339799829345521885817175494097532005261681436173510409035775976425289026491734985098114249148266492360392562632598857249280268404469557700563711213174171171517425581353022793958018102392830998809120282142569439748387617298021011573011827407883692857657967079119660433485495693922684712835765298830340829499338854066504587170004188377255381972573695444309030520816012851451556299947633421244926752976366735354981386867545628980797567977513414219415166469177454952872275613253014587137402356791646096235625608455139832773307987091365416401013865229968696421458861244087407057743638886053763495890496485027437750806248804257267783544752821561977218450548256641354438748972455828878225569001041485132868201210005349747771346706399160830528595528955455584438431531519482020484963935815036953392932821271862776040144779626702204445560411419906511101131791723324785597486261830557930022541048406133453791987030396948191441282837139906453639037436941979364209960793976216047503000084273189026958928473959795753839117030199999165872090064060947822767072276636086659451492952412957198134621837692580963837147365521666733947338488269473639307285554274739206440741552295605216848622738113310754581195806691153495336821284402426907156568364147605572551304200486041940018009080835136935145134154009712725261192544599011705145615130216732519227563570883081028512852222879702427301043471643864362518850943000599480125021194204097776375593824316412549763849300901615909993068849030998010558241322246716062628038183146712692873995748499407248701580421362342325761160258996494089412105560984619020669323644162498565988063704613147666794992928943802257195421121521449076425385060315706473931463285517162708312065256320453767975123644500330831995226602438370634104220983617476578169369800687737209268509947098963191470154689174149055665372245125202873597428876944525594783644879062400568878632493952883414323148061270460051313063929956389618489328592076719258857761295628569062324429277482270367719474342200548659783416752049419532957767992749919997129307126057422248674039926827316364635083197176695762929518346413962111557698882269917051832992248528020837684676054548094302358115250624718913486463368159627474918056627849224887115426103067682415714545897416968625305589204383734914442623026330213189490172985897660583216775088640643025247970463436419009753681849707237329330765888885657073500896652387341654217544084136115769664083040552036475350789564254645179978218712050687047164686439904166239060845693669171388974188336229375466066844327321251614283644186213700801877124657499253659111389723997894163488323317243129653552130763883048866468827916536523664779741777122646953096704929539343045222796842986512763620909137319956988915996745571420176123209788281472671415452726430210376482463661828336461104574687909650632766221638255566060054644419456269744472256114005079065591876479241403377632177427347383800537832932973704332186612333011286775558179199388868184953547879940896960055186137211433033719000651265133529748097756313360000486583177863756138834614346366528620080604715860986500448490121447645713840849335579743263687411760889776842208202250914495586764186438183342785441508329694451624506333702704083825916988697892912735423145679341733387649707454321681540824488785479587464360240761066659105262039378456288630438956870244725609518085203385980606692330707288979854376516565872654943307666184641357629898273957415999042610829413197776283740312921777637495297422062433183511036840962822345704296524018137329727430332156393864766769907491668324564419360467526135335538229227326216285155682539591720948667637638672187189846527384808323179745486471181928994177191466688650088921807228273715771615289115592875277948945465152704918494488891113827970424255248370321531973572189849527407879363589754492890252889373981458873307427393096268027869163270714443914088854093493374084222098967949930126778373736361179472006712963184656181698305525659370881181870538393986638287419080168725599565924698414233062287335151372076858823620611989600121987955078390014038010129702518122252880423310574201627001457099606176996589581613019652400522466858399408254303748025954881491892136843434640763612223904953630358916078458918951541582292823994403349594490837773556765114714384825218053678501802284345413123151725849110001304365007422359719806737866365276468704252139845135848122983551613959984948044209046692281571899764060346869872522430747929765105905543199548849816411473236230396741047615291561992043536451584274128154747807767436968644372918285744187131025011064598272015736120365964678366872191609229938590843936802536005868601106601205356043419825704463846422891469241299711022253372620122311304415763796449497714446972220612083650686387900021494397872326547532196371402793856594820152860550466640542148309709252401435015751865168967304265854838350381491949543566749298455517732831740719610093255849495226264869206967810171153982919101032385304450198403618483909978760383858933188930736002116604963133286479308291890840884305794074312848887245408786332306410785519544492017042327991544276038827761794289312750058957045693916590873454706380514638954249941490643557110458278460327388506000486420695266726139624856007274860119984895298301165725085111152094939989342975168073793864152062032968870168341113642905138963828034139834855274184862446243691141565804388924977459164382275046722898660325392544451170783878887651553282648194395415181251370850827561262233045061299450922609597006224054416819171225531413955290629142448799515396439532836555137546588743218027635907347037105502607806053131033266401738567102585259227125825653989044727928959352884746029167468857653407721943627051577776558287052738178838233962089427610582018957165416824175522635401764216979593695701043315255673916406518745956311051872346796476679938021240494948895782795391538978269319689265830536178208991405286812280553023500428182277940669790507246449364390410938805250309198916692601320905096058753455598997225798607333793949221224137857729420333886666562086013177838944320391573266676130585131130319035215056532392449744671382007512573628665756622178740245591382455999009253699331671687779005098576285912647158071498540257832487297232096946461986440761684652562995612857030742451827639124244728795361629860862870870912114402047508277864379558726081262520899643153818956955546608768244076758487509914284026002616949451514147926182388758236710928499199998324518590765255197449585123283902584380453609235694398956055516478712407650475653336971497573790849332455130416633684754537643799847851588613964086721040070938652807195677755055959354341303028343150657417124223687558268630726191730436961021598409985304737387662645198000431037374422159113884305733647020103570307376041996008034202900758164995055298096374958511540362725903755515259262416635375001144542868432292546963366222885930282631574065102799362721938501185183816853602008029383099463990414092388674742460434265817849399086283990359461361034223877069686353190064309930838314780837439263210216249219681867027483041870206288157660112849683698702568123290550569338678807381436840756741993758212691748521827088042464629249775864703955346176048849243626679749897517947101335563737233962280082232160627854505094221146946473434748016776605588025032536633001240115593577504763706961753658790360550010527634542030210003621444267549615891514014179848149467924472963725225906142914289610657291460043667558329728249601172052855260203131713173870983954646633842477452726321796060221977055855513226939796598015741130372362985498486670682272587806447809056660369701069293475688644545341674394003514054601852309030538570984505944509532702047221029842790656919203479450525687473271237480204557614158353213397156396609803375839091475285645215480941352004765525755713385494242154575380908705027273458666317569599835173311798065950266240894093748704320108919813871637450659090042127754917035105870364800366773291008434157773164214079797856683127303203039983211212010499119271526803305515684003282035245027760927403396798506114522090818448788914589906150501044360741807272143188469222311215127838792503718338199191612200238900141150187456837796398111918216568955179253604960477540102528320779705060025600836010878673296661155564598541798216226456673922179283172761208837296528255706854678214514493787655551394860350525701743396302592741385882483291185068070814852123152541586671031603711363138839048371147711923910802636030497011256959663931602542410540699732166412799732774805584292988292161682161349192893704442220700141992447772139604911615822482541160392972367806868686896874931513013995052004784262027685311545528166207468109565171581789894620443444074268622723629001187999044967142295238612839689835929966311378700237350252054531181404155331032938267230995996818296087283692600155653226812042491138945981901038911122070417900259374890425588728654809734691344518647753588095945059254501793591217981450497307068918526381587731280761657462441391287848989293056240550535951356494389991850645142371561391059769142963922051652890335963805402410430590546977426843391526644320123900177533104583151340542670243608509893770918242039547290413974759799518158604877937311283298826803049780941631642339972616196484492738453169763469183463042006545151726864704289199414400032063386233090449230171538812196997947262510339895861898053830672512851669296814444052949113481556103243511595908107761511846629220290052325467693200513377232449570876986419617000598622418190799855162556679640690438285082120867465928233414469730598554305282208755012148207928423331026039891443375759798979096941104773640122251977712107812440372262330888566276563459457046326369490262975314088753923612419973858663245608834859835275756968896708818697358247641066218814871838822052496105739092826778236758611822244116860441531407770302166015959516633077668906496944892870745393674606926496878217070439550285117393624513681619021327228535915287051828546824421247675721029650830194016915636079468385419597833855272928164496671069181388008766065907145900687228928623799716226800525496571473519517634231176488316838476465602272676624643638347011876574259970216135623594729984027539517230909121745783300897838750539702083183313220680732170655461841501688057048430203612347019390862239523106176223691228097354055908124415095399182015152797915203958501259181749932854909529459600260925720334246577039601328495325018581063302637128857559242776260816615012775941776943647296958285482619363392634606197661177193031215398499341924848522164667142240172731689898688602611813218781137841647822599019196273300343190421794106648915265101469776235728761638952228498170503397085461683985023162373572895912472593446154685762327375321872908078279680391339743568960209138850456557350637864372608255065949561073945832144549896991164065848710414848829737652302629282721005097019111147638337123985014099771466343049881767055464680711844581944830579386396375781978129169646601311516761968198943721597633147636255630856596574257450721247634390458265115001799644534121962850425094718251743820874882697122492444953545375885492126064881752122363925256043335330028587910824671124037078181730466763555960577018088132097516130489270642164186029245828829173999477835952213629115033904039285833736264212259832796656159409377630229716641396258676223415842072569642455283589725525833775025742288517261243839253712665609761871778297792526347132778865448799768277961496838943539547405113613659640184963058195504966718225963563669754069207167705413377105828303897620200485244760369611856858713985573132927260193475894598876224792633766135987711781357308960691561811958380627672395182242545055128550641511087340507660781513520838392507719638357641506854241746133283156236084336784710067879657104548066498225440935762466122928437357249588919507653825638238280186616207698927844225841078099882997077922149861437382384234964278599453802042491384950800477255312455114197872212067240954891662359579166236819325910896481082529162629404979672542949183636212919744708561626218739032579900710819338304435198913082393314233779396538837083724072656828043494493776797497968722706091810113195539581837628812181690713764860029956034243537017108945541205038835293247221317145609267707573795995458935784238742471942206488896929549761896155666924427475634359904708187541788193295598196100485924303101216619681710816678994834316336427078748128671381346739522063040151072245777236642473369828280535925628848436035589615969236664421822172714396982960466314195107239484632544343859536197214638148391808176654598796206681574107741731971701278778341231466427654637043439686503726521673502649915894562894221004603139637611403041732385462677066031757233856478974752325462476701820076256895948398853272580474859071750701847605340684098561097449161776378487746763740348767680468983751256770572261352835349178537354800255474639491622061022821538673860001606250481245436037798947524940538432479736532894840665276583663769679980814828154926219085406239511289993822361496039951499201040783466278059450634603319307894009571220709321448751923361012090980532364170299109302210930947922879861711104397812972532537833447160397004443383155167376018644851091278404706183520650357595991590642229985234131084846071164703218789118560244347596353902094904948689347281382972439281496337065413354044652030000653655503198210608385591799640919873819475344485671730008786618403364658626522194316804984992926170262000103878818032096923136333901880108220404135484734438583221049320965864569284412641402887314539039425660885602145016659118432610157285675995651413307805592785469044683684374102085681704878928400039651645493631542249521246658103719143257950516226515954076662374401587096834841094890945342724694546706272054577314533741205307951764627834177239880357336606102357143218196112594761004376293324706601120695043649339323148989651430591347873838416587207206033362412412314770521448108976192147322719245371696388165842936844638197467207628638821006233167162320118014721003480027641057340923742565227527011786651688740250740509561491994707127137921622771510634622314056871712253801220703636265340931957115637272707500120074878079121517694406570320800315021487650209745389722893180993924728701739845738288017965100827258893451606060518626025878943424697545570798283599088688263156129668572571647832567666769319818373480255764547011792344609984063832096824375452547911551464865779248951342224135678869200994846949090675958447176010141168382872917419579976746806967476021549344753534146975362531042509812856588689217439311318468491471575672647583333776203106730674439500836169431048241865276432262590430398164792160377256725384875006522628154281921081045864736569763935070695204322774636099875838695507609736317316638871709931403347791913905255752352662234139164385172867179344539143520056153933976292259111387494121710776007687100850104174988963775404692673975812715567887352110382647115538144143356869801308700269407654173986014302584573635684013182065495318161145826793577957623220040717364208600405384472042437675302987965384692136141230772979620854323465225170313256977284687000029215148298447880868509231428554285038791329565537687665568904743584355121070488817750027016123126087829916159121385315482924845864941240942573346406933283864978230706816387428070309384117323614263829857416274558152657937791337611697465993280015857176400165295942738437760523978893236718322707760885476575293153288252712391896599311405013764612990251588643624007584378309246393991677892377586550607073375911200166773542567374043671336233295502391097779482265322087068201735993059021529000076479993179167207158720140827537793465966744051746547868145541236540824960278544862931672241504889736874736434823462687046233521073512601235976919748665200889436876795830532945480337141317869288017028533902753022615459772896896607994168124219924131628645812642962469485522750093763091083096988049805606666833991059087863714335552084332042586373839409701128975497943592884529260007809393524149322513946015697417399617187871775670046908322601014699304228954817057761195377522764285532676262494096522009859578989518166115266096746314275463853494393981620297357492008370119986304212439557173913548125651937741749654409679005092105754951956939294347406423360050852014412788701247052190985221245334324722739276221222138204313279237046559166447544066608507058670527148741840656379911195737721983562355647997686738252863576052381501730962839854912425298141680061673824539178510999950750260298240394307145734172905658631030755442694669488759608361480746784531218101545263146056371414592369113720572638448916271021953813442447916650225078576711081037877019761641291939456849496279150577839686247147888147536387532012400349285049970736192617134132548475832865355313379396523901187846776333485308686881198260972834935128045139306369993674363438060461329321126280546816032447081389028766256399083645085802877451267337630125333496686021307405012326915488383201099955245630037508959152359560510807911750758904052099026257653873525210436166647179592425058742986852289874025880276406314575708541579629966920291631664286156517464618093506765679006148091930626570281601060722448067101055234337366929749487932612783686192674484650549014947498652187722895216217024414913386965536363200785548280088832495562529621273913565091957183729405539916733057537802580683380120776438134752270183016054272218650400620881017879888310584945049360298377095781110738953865690164690004345664710157551990251182883139890748092457786761144829285797369958461022934016825132060827932617781222754869697226048732645431847280586902104979726082678328847603680865155179286672482608212446950428268739512068720960984566172544107690407127602421130177316723775268815060458092983886744573030826626531907533655648355745754012267589187759676955998690358352358654017013817496272060089460377459524889684580673724539005046165870700568475740630589365428341302170093485290489364652760490706939934747911040794328041163945921325143339313450906186716862310500844581551444028463380189217202923900391744891605293270732338803313141743091028509288182555101513676768675293382003701874333869583120321619850979676208453220309300462995199435650069340334473602554418664831770335746630060439327855196313749271563745549145476205899309933291882691617867433824064768660857136808732601642012895623774333899158152251103989007364492532425626556314726809862652727791219027101879551555153745695135353622710753354490473402372459865339073346880082576789130450810240352304446289117654827267354724559253580581071189874823413567827152312448755061288292917557879386055808010980180706184410932537215375879206932154619920095130853098233521743463724452284952852612939042596498158445653891506150901205369878153945068525493139068541876046518744536621324792761435988384429904759792973826588318749586423940979922088616448724261115806130870372558590852611704973757218454932159799473201497829824548566979308583433493186951332546744498189024684894521217519632991325383722542619943589414657541781133270185532263680450034847085049014145019115163678905862023802654300468949195294009218005964136321215221395511016110251158150332340938486733461934388019345664741680481927335740792853323338286109605455556966836324277594281931570316860897007680656365074422377694676159110345425206649541911364440156137400238572649946524550764341378482617269864455639615417026767759250733484947168770652328071200634337391755791347386181026793733560841114913909501687908866564830327395307636729914805276363881230196966177204752094263605679068545123029463697018302341476130895982305120805973469515266843973184587304670330119511296202465904530559127922353335938862158822443793712442099976116491180726977803067446439016398063601480892925267859129207064899501240335057866868095331980657537516379046130945184000077194447716713182057227226216078153482321249996698178174257425753880761588465475446671860122117720205730752982667156077167386261550942187657492360654415026889575895492596885617530923324989042727503627832274242496138217307311012747210194334328586538984329435112742636005347692210814348231079343101307859907671800399227051910758791939385445020212098396995442797491986817098729344449377248360275188760217278540325888979061764801774576382668328650381732605410297948822306305160369034931713271788439527323774016565796056760476659112822714035966278451669896287438645330831096427149642380294498953504813034765274872926175552196773533189369728791950927860944079063060800338563816971888811911447534130625586900144651258170150611523848996695640664637876033763191917687354376556944542062213198706785660353818218562641219922144203536898800299731585501038405427981917588347063067357431414634468443051758951688980724054737966937323344942971447369896462153147087569511030943538234609600899227534929193540013422901036790908650554792448578104692188640655420656224246863985953319919109843417902047407230937032254861009356847801149614864090189464431497569100411022825873740193739562314744268626030130799469736989571530629498897963059362961915442807252737230417614232904782335094412219626482076967740993934447720627899629487063624078561773550213471646519349642105493637486003495982691185515304849757597141291156248349523945668785186700367433759010021820226159646284275921740453785292015675394039995705251402123138712605705516744384614342444485695670054782527513729133001963605724033402907447045873791522898283729494370642053972645654196846862016025692345271855467499313073762199641146610686413597478868889009189923804465309561707189955989746761589567985517565155746095453204334485849756932327497225501742738110254479591240779130408898000072465387292339090340532066128081509499445611274146682852971529771485406916710239321295950290252868352615558801356411059650959801293529060048926870386979178080646965604176414682774385301979924653045479981775369942093763311302969909099530302333009460005057269473714497806454433884560090076415657512644971014332310964630185336620632131364088747285701000468091121306416911651955433875536989763879046374682390803851628064093058216690776434830128434179154533500779569194558145380301549222697147354287954096063736945727119245357968641917185213559167632434157981288104668261240142831227045312067084368235200322832066522820195637947241245569691535516778866710480553313048030582483761746531349947054879852402992398113314990928947683051739367948214523812969564565559439292414130518237606286955395231388950709487305296344053835661632695148028223350550712736373761693557028174936512483764144933480346868810218838795729440820098872743749147147942564548198834186488046548650467478910233442045477057461146954951459336269155524300477405487163455137826751091109047530301311262059372122632987663148970021218623750434151335805342842044912598564054734695430241430806347885974136421973250982766097215739102728206231904466597512063694399925527285469787099401480472514837285949102874680089680744944737035257081882930065387859432421367671405285842104196466574891167369190798558031902587007836174757527297993174148635835197978930635046974588611337458637042346590211735701844936450736535753865600974845784821127479172643404030835849785124442258224908493919373498612255583336503713430581735145382076546239825761978661075688813099950045633171094689702439239668247737775178783030973014645743779693213145473304951048506263653751755824174044452395572082773303789058284841724633733302877074652719801725373922914228901970672148071595924981458639003341367267623789678314073535281197711969383987633524354318577505308101828392009770778320995144453324634678633956614289992293028359197042737851908318266124094412390373665671506589420692805253259647153205177375395258353177310930294497369489546622097550576726551059122695502952259867014022329933944564097410347526913165479247785022499583659300474051317657886628399932294522477385107242262179659519077615854677626009155150375998443220102245137568194297756179468399487782067998298082429950032907262397013576187742420293498233328764068016781218572561984910689000438912216262393554066246010057009493033364497349918917747728423028561532989203386197080629514379721502045658389089057699253378465964960371383330062426815305366611560143819161695013000041627396271534758357100387201506213860477589727311685987598720456976212531096011650198891224189791899123147303613805729491468918482070004474243744599374327149114574156034431023590753993992125784052858495003257659619321795870814776336206195785209024262267061765162649324315802673839502189206465766661711275706025244264676229584980466068226243152676815785887362097352643936504897890383259136806309000864662875341563243052724505855454168650488738036923774150746445649323701550263925396507443604066627857639541263930467957154467881290930417440327211117874500295364778333056965990427125512842639215049041994774062259121917391671599841687594051474516202247653689785645035832400070225857446239381812012506878402928624111539501051274850564738104415416844938673963227382320091241067787612052705158664320491284628555729695012383534108887577456270064315695755632175129781549812857964527601015713661592434673949576917014604009206244460845218737825497830170878423278006836844406455149003288733910518478654466976934612376975118088045191354148562247524644551283191127956241715787433890278105386615264387299576853182094069217536414821392312150098348977654246318107586795339516957355579587617770700194897879269317399012557748999942712836071240367214419756399426928160045365880417648017129854225823197673149184772798047175005414560246317205180915637964828919403976774096398753072103868135960024829724087280759291127021048918817968161046232949154542221836568846178107282126243241545943457207356042799698841138683992779870684084958865731414325290106333287457474485138466814135008550403530874187574498294878737759142210466091480058659650736464670870151539102011001563763211149705135466675066381899643717203855623333949437885087736680548466964098884217638454641501181621302426967262107666488099883548510115859431461144561689416471412056016844585591087452224302238051747485323039168682196923202252098527717691916980167876989835152153135277940568565380452939280988294752653061037167784951630426956310904735465596450987651188828029352402468178191221534591346506602539581361118897623333258528316467102402513257624442921591339500567392722946677155681351499777690400553255268555274609183314632791115574970010813316748124467501792347174494796390361837046330026560398608987712325490429524529431544060197570053314889947301898466689619357083296618489095838046747034354651169259366452379596598455700161260643279782907166673943876677652431925468297168681745524125631262568222391805478827007190463454095418991176774492130061046077194096472203352286907848650678962204710920851001058718814614546942603314614882382658257230645115600461298110029775444797390542599958056736189732808854754447526944065419780160967988417186672937283692882525791801255576746161559900636627134199619261383533238493389465068731687936746946592113250932130040815013119106045898972497861181297249777920364566620705208217005025308533337473250592939652278207722858747940892085471803918727814686346637620610226033951003751929225023641189261152309850767697226174100365897859652632718692771337057596115964035142361717247620696571828072742273778732099583760985511357347126924406737401611001549390344620350356626552048745082973421701287032329874888125446430637518154427580323948321921521520048136245661680350476157766089355714557549388330319845403631475430182295935730692787014492834945225385563511905473764492151469507349175430794232149058509948340530263972172602614605703951924002116458837439009980215193863150603325622961927639274140958152569335651654191442914390339445338324224626752604630676353797851011005216274942891904920600542010047938484725222538810660651458078652699634221483710051138933127366454291973405403749504737914560136560675092753997712513399092794129795376653255849268091376990111933526879328215439394238866399689831013081985966022216799551953142867973727036208099646540845789321360251802814323018077339836120341815186639473259575343119464693327276724305057273570116039222990146377704880571814936760717090545942126991289383922430953649267382515043013631641927753310222671484228878874977237562194308239863737450197250380545684175115890061222447288590832921263150087172921321086121776356391682725625174799363956212351419960198481117297292455778162189451005212076186755186215400844250058970005305603018173491233972071010550193323789389379335781344377474896232483428973730920692243847822416125885828751326525919095348036120503665987474068728741108630860195412184146737034454948321452927224435877606114341473236801425440226651972180214529106851140171818940214710532345153430421395316918697812867054865195259052513581666939093148386939403795469524438309223843470612516831174753515502008140430485435209800127453403892951371738358806113325713513982194791172201619085257726668546186022183887840738954064020937945469321416471813411068722966190720082057204660699133878892533656630258755848852109353663375774057002148036433738344693161344274682881119026872544627568508337942714430303655951594490890461772236704417347709558936170538851292672033860663213729152476694750422840126638915125658689365172677978390486065420393094152356072240239854929451681106021875449627002674285713074411888702460860046739326684767627746851074519346281000425102178646792291808452186170295109435411791429859084185063231007816962287765430262059128866104333768236956584519617867828150435210158541370535339746192630081404402206594070077225830650518782170595290765921606472103278856373296962876004067157044052243605524767884479977485208936394434040594778238534494605470482213559584385804648025636214599667230682268175809001232317679954136176350303442821627807466532373885884335361871346004225896549589834950270919091595112525521593075726996886461396579810108117663001774128455127016086321105930967461819675868359551824403345658917519698628190253347686201223799655967066087625237282034299441160961728430242199568160434529508747995694274326390557451465472311940126371876568715515730146631934774622715152164541506236502591490781259714690088161978637275743563152608668886309113030346462966908117293397314950595947455072407185014557963038468886766681452088536278319384983079444733030775345478628061489778947816693104165436004964835383502110080960094444648600617634278831829494059101963961713569802006219949153391347198864936087713900307809619209739352598356491978573317900584916653525938490469617115638154383367282475121663594933432817688363811786594804964298570759069116836665034302876216207144398389518543294924188662804646853799732015912218760117695756271806229612510788706212012967796760454591104902663742898687151068418458577330969460728962402595382542413329879754575381972218066835704792102712738930017840650004777078675786665025131955376694252010046608829506187997439530004697133382127041694685513865888758073137699065720535369875340791852728211549064915817674460284391655688070139761034861596159175839709196747214423285347458267315860187577022071618220533386740968281599435025691876502938093119480048998442491865377378754402265461100123134434594988824683181214351772063843609542993833388951732645542869925528410243803607072189776822747923155630770268775418555951250184442243563495413244310675959288466894533282408812195798431848551943797117185510129656534233111640400802000260569249919822568056667627311663594904269171223425604888554008817718910669385476527758393787363174276197763690248422888668679204803088430845689530750475049500566352778324243634890746419091476293650255044874841604421726280645607305238325929907391990801257911142569865064578061471960765358425068287836970370082318374892515083908107955781988827928062647568653496327552738997187267931829076861612374911263009548046688821299087637569941679241220298017378395873426146823083913247347162224333960305435097605836355804989143734227206091704078741523599279222265158158388657342114246681099237248117162328886272819986537147416302410170823940146789723341593500830753486385088146637367982236886281049687992831811743938971443172433063071394722438542273545710798049998944299606218267303401046770949549890327293515861882718883952268137895044339448937039985820196490131865640479684902047736303668584240238203215371501668867756386000504033726156618109737534940328054290661173068813955871879280529977330362535408365537980261327517165541649271317401553792642978838886337594373282481445721984747162857161817135829508390142129564033675433466575308210934230038793964445430425962432441905739655481066169926943382439757546308471145022176640651239428792194114303557788096569173772812904766820919614674871631245655762336831953786406471693381492576921594957514297369155908008670903279188027998590179822312773025018147380374950588399811862581433434667626505712538053529523267573382664987109895267611416517231081382799077475604242355726536541537714235981151999409938365015614132316119168757541366939258882123969458014766903125960038573318479198146775988305361766529464349694359340053387502578651575453316684941226396346286693061465679834594562985913340657179021050229111916305445763046414748396722604318167526802474827578717635276297407151837100624204683785764159407041113331223287649293835327624127153347435660573781774997940950816399914366075525098308080907827355928430040748549978152831952212863120411925028318490215919462113141196674812417567112238062864053074171886426914290010176291588387142469504354253699637071480110703120421126348036320047166814099301253025348415010824299265306972723609321867994080465134307046346011841697281756844720532077174952679059435934559076098257341650870380807524627602119823209289468282574955613115470675215341616628135486332083567290241808932653180535033345043145974602590596690037359971231910327513940910320013047259480416712251590426911072470435343861029466660017067740663350813585997801587515397362535498475476701530034803085156988848918752723525255413802556864457738162340238487781825129735546082486525998241347902526199893557580092518681493213968988004218044565932503293952120971688144324471392394461363125230080097030887213028198851241786090594121227512811736930996229138050059558887083571489347830483418525978893698719466362779350991076721312100556940697007914552240724062751665867450352959941232739227559352316483416496829601551201243189653208990037255002170783010995742404186734500900936903169795202326641279633797520536471237227894044742078103255346821616189593325613356101356491072201244132842881090245217290548827126932093430563022524674494569354449092756121151811758925958077906493014429061846147820906082332679762625917502050692122495880794136806383529749138495798392585706944603270434844606462613635582301787718483308365077399481481291314475777739484322451052948882466423989330212298229960481090879706934881621450709269835776288359180479531107657694749114768190125039535286770908496941925834865038245301864493228486352065781055451015078713053852174229321976720698875417654382412440976567578976773484211820450556231962617267849341387526173036532070778787505852939924916234937908113419326845570360211934936443197770059012443659971365762968509187910538174540693339883071741696590326532773218165892681132885297746873814936697683503095695705098087149963858723450083268153685057099772855947580245725464045988780312731470514823235583501693295260110663445517975295017937771466003891846148825224946919720698483641192232806831751583270406570963994174260699778805322851031127265914452514129277385600853070965903667373584392112538924267372380135205743316581947641394351523062655171873706582206074927554300143071165044402794490140568562672784439847617964949139470351831218333478529271905763565356967294578734541928721131560112181189425824603603144356599714320694962518366868793572847107906613530613466495168344553525941263702442440124073337969930038196347892593687635943875746803154808608343176536246622006281789009961676960109590622129068586363119701106487410482512190855531302888311828902559469281823629708287206412120471922328490582150217020048018204654533876068367871480571632534757625828259808311769515172386623563451285522296816050592136011030716234421330607086554932920633996651799007266185327603823850672333165167492693068090950745633850472509334796076657169771614001458766728476219795468967025926797382034160621380417554898872915710551154756952895990587633058528449811280465772770860146073225033417771901063450405282950507052827913028830367559849332043270816274830415646945651303761289978856616734106579171124488853200408736915366513268432278547155231707264227034445525370147978779224416344762950257074866963306505125923791233914773543264872809472642336647028590511143184187631008061174845502619755857173379829655231599633220937120121151972601229180231138140879874306862063988691798706301399850828932065544183317607703958734571418396091666007456351622927204512507710493340208234753375779519434751334674048783837935349257724430260809189870346365520781535643328228849451153494771567847214718030195076775261465485097963563197254824654132206909171931249788379757121918403461235147503293143137018865225258943865092925225128135198791452610521852370329912545275242135574789531939828276430419487671353956851017787436124772494878622362932148884166262131481156912749263644138579788187687282809559419594834861090710732040102359401424113603811027384831177883101569026762694924532954550236695541164345507133972864309745857425351469739180137182669882933512236794201066272713575784241529725682997044563903709656909755954565585234742866353439779838041157050023597292392929640930401912181989769952770494925749875290142755389533235291931030985137690085217105867321599017756898660966057739569819527324547071251986514966148775718822980400012058051366685120815710894277717239825485870494276018455468734433329437036024776255378017527992691267310406304869021964574853943804349880366671640298943521456037707159283018547696956754560581390752697506557672669247304495325015153675225124420566063591570411400825764097398826287533176270212959754343536326842293276007555055700380725760978575172459623919090556961603978017338923238835530974066785281906085472638138766670346603829469540802274469046450367906604182236248483652411550088965269269185902272659550985091248529708786728462504761493794083666093930825706585772159334376983098536303608587037048571436302550525635893589368814543682940262254340053177952613391393548964905907562530888773512460246225581208510649134498882684169891853473507711317989745073927215004429099131902049073449695598354158138559013046698392332451680582771422486629717849597455532968262818830042445362342085507133547127840804529891957346252904625961116911501668999920242450545064668412101890810459781955212549512296055949782457130103576859961378798884083280147979556778184420868964861667409273760629803054288033547714927466297467299376811682456869990672793015397935164642805400600177884014165182799152195588058277216736466908524940424875132084663139229843650477997697019777718598055553905743035642682821364650484301152456623298323772269033713631433670423231215336302425493226119016679546658569290568837381759406641804809965468533444005950533123185902773475800503886802479094843681291043647298038712284304056249428492738237035324236153541666818491338473165610688110876701056184574135333062379712669185571729591400054868975079097667776935307356493957817315209703079559541357164050913439056874001591868195516480460089160786482853681277613302271914581352000805119699107091630961670341862664470434337304834926232094984706737370785644297938121035227451501600508386937134298446444820260728952795020788875778015767541988544816894935762680238812413944637133773604263064035481520369443088813436155150765206803187738076868259998737302959075116480352456443683315001912703783709351470150322783834173864535229988699719638982921529823720456273076820399497663274445537909598659824357109906393166038772792341152915099742541584270998900823872108379320458966674710817125646952841871246828144592658160018551383883902779363708699036486621972790080509980515177718663230861266513095510618275126289023925785267930888114890618320783157685296220585610699427656114209600423893116379718602299240615063749440936597655302717385591725611034778505441747077899751189471355132495244508959740708408093463130158956335906274586421628767290445818587603730119758328046582649684556703784211961729581242355494550449042398337078926130932981312981585486807259105724036879002435456397963002771454530013327918272026249054634095146293197961343448484405045936120507321934648028389854964796805792662847590906323646820251595852435755783212278453201447246069465521056714610146488641479917994965919421807442882216963041432005245755175853589310785213528352290510273388930009301962782330997066485907887270094783598448528019652194649869229625083439286106349247070842602040092794451939105663227307293362494089046279168419416550620881239553729983899463107969835127631796471303960433644415747349009561273611049930551893051483846104147440170958765099703811373284145359025695531560427083250731671002299223967822470923887960450284597263779785979067926536790326806512012270235740029086924887022874950059015485627724771643571538228911614618736219785301230672895246339598656139043562469373715848247382023323508378258701972989603044277969084881278564042033047865968410584890698448246648156942625149597605771295617289290609923279320984655187002883652175483981358296406061377661936590803589338168961152813009046318515241527962919955481162073011323386696419765863973891269901145274297991232731671901840802501792048654358543421993845694166269318677017762195651010067621853832104159819838852725123795486003253167710053402408289336572951187822499269301102891888725160843248532279283543671346394012488717664492657472789701959710061690850293342695815325902677753994288381510721830531601025340124214384964347846860461949005015242184858394925088882688439582951824144658423767173667802262839852041840896209683798126304001931584386469345572524445601123574808199730998644979542212478312547679123760145142349987685293379166606163312281951022373923984794030476400593366023395715539626825538146632056653173601825565558703054765907658933774909074870759844111869535072137661273733804550250412466375014747323308985241154883153722828046436227676153341609615281226826293788470504197815279752512421014496874260478143738688664755311059610483005198916531927961285290656409589223141286040442009584655443879841202462532453826510945155065281082145963907780001904760074472537968653937204076736412521470933088086508170636754345606453212684977874261984401852153095444094521802241682731262934805028398255421427592338520708301720720658962697955186626283067936196438663712107242291964291386664200662160971444018279817163269320589080615780800246966522737735894139917760213373134092260786045057932759716242489590690941373119290574454679853379862837877586215457695881868325051114945680607736620322451191412382246277049422295957798380187364476645517366019120737505882712455498264956465522823692948198937337871404395845306060390248020370788552140281618468390341528130247391096177800285959797852342849398957955117739953381834418683608858998474514525650131212692502911482995635231033201195436198612755404076018121022316514450342380232607774241809482973334110138540535417723108717554682402545005681681217181431670983446721543261389986116762518498370646841558133694333904848406593301987058652569347669005928593229853473642051391143033623648870950390269623875739033627000620050199337069984732792154950020659549608295441087564308596567411560946023130389876366763513157217766324550970475991946945313238502562676096088868832580944192240607449247122791435755931257051120389652387838514892034093387939017830004622716087285210128651050415275013104733284076096030355854843058055019541231727845311455971189988644891452109381367620325948240629374915752400217173966103157802094379401489618159783163072682650676983687738070514595490967499660881167800653990536316150104242743644372058754026355936128691672388834336758304949257878241201847963206033598455604753226240331494566993781272456097543456410767605424666500145591738057458978034907371403837866375473519716819566580569147023105143816747304295141653980218442194791786677074701048163643231296691640049983592901543835526351418680742855430134878288826956176214467689476047317273142342143378745853695403427604438681244089205630876742516532586326404191077668581584586664442264740508418463866696689811830966372713616644895398234966490579944024792593647946462870580115722482293302980889502308772074340086434891088302037434158887522487118739082680396343196827625063176081877703533990771335415030749481311904057093224652287795833494987051981612341564560598522105121052295208456003569338372977911096021329583701457994167884098242065504837787177236638474663687395127227474683703444878452155268887204263804152129513971488982406847745740389577279780734827255007572435019501823656643673414738038771896839296520640960608601643642398049602434933933685980195970357573486868561746939970771885087914290001827744079935827752981723495596944669371537505416535073782271189136231691854130276196192730559865338088172881544143083079395701459641526870103815641201845511635777509475131717112246346185457380807847530696996323192582184323112667307815041228203826673900107046199499186424413328331943220196862416004404340089594718773854918142830423875966154534302793447790025581371082379263034619515446147135215367647099285936521820192307779523860921087203125898757269103690894538241205167796085246851306011174660627939790214285820247323098508672991297867845681558200399796447661894543906615295416962944799927703117739753850851574766442698205553234147420886050655867943409119077545720072653300857219323643561130322912676585545810557007674663416820396626552572992584984358031208732650167177341991157152356569984373581767548166210568408255981252400839638106687601983466287897519758008621035231974160668662993782951635236394413126241832084678725181580162102398778282197607205932718397184847765818943362541755981938157472923832259348611648431180904896123026434799979951752635433754292114794694840925784112591890303921076588446763496819063810362391563627464500051182704469775285304891275909825160969220131130702373010359309367954969394768924471764583363727156998865850686146296537259709052290457462096638032426307284839781393646063509241418544559577778066133201299767605605250437328018035221424693977127577425634658153033688851913499859885991552947171760785810326885518701689763178121178417876677100021587226668775589954198927494986918224113443010248994115503060226344684093060666848687756675411125395483892749109815525090671551737205238138405762841742258991821157944180227746384540415382355960944426222727343210682710415437275259950425151320017405987879768806162879934686404658769377351712724942589385974642666226416958615542477992581096610651825687228277625789866758678772843519303220441506189405403060369019145672413222029702854015783251494054208639504838529951328357396380121929654938616203834386091841246011016991620753127797482954233108622684481369764226556148221753669834142013870526579961376408277520606131329581960559668880778284109013702631075581400375899505814463440668179208246154915273220405021413243142054711922797551768081865579424916664883843100746339621202131458513303401082731638982983523996907000555500742530506613765250674681371646810191707497147199236369225293324249665380296707110875451050870198036894325108106819150372938827773163413061005946413801600451017841684545968321831574322411584011411702033568335197372274996004242169210075331684561005940571868415290762266890740637628702218959726460306112035826992419853602863784849598940843768038342558027903734278849135242649500917142286315671029917959853366983582879168024740663426237316673124464382518783726325496533113194975733075951193057818813421100801749609547306068963475487508619967302297068642245230774316035830234240602171202577409144590868973093257716144672221809509254373397041807004942951059115836192645307959621263559178620793460273455308510010514201997379255470329428788785241231746974452278428756411694345493471939485080762649836003332109576977871536692056739185661924409972770928744167826306795380271974865363773897214151341727370464631335512527855517606383284021834836696393151522822935952793816621800731481692821120236617291502328491141144204267156819826445315351164072915043018440229086278192746655102764448703956161062655910494822916152810654531788207611330864325122483122551142259921490766344540410090353012333511025049066872232153060409426885921926077045359950008591653228116590113379954460223796601609873517459027405441957649801456278553532408811880210694955297327779486743272960577101721805073422251682843040790528505846791089911148995737875704121923562824174842265779760440049546931437467873793966484468816082485641073688672793055068147396491069752654953384647092308734105918085694963113709215567947585445389786701808779191368191694419094154066459101363362781939514509659295921503969237657792319920528488719055026890957033986184497498236732146717294161266523884695484424676621579248168331084741585893989953108948438706363927196290042963943784778408389971734394304456538930002035622186735188696742643444470845899365855729385127695503041196327938753437606181999493979616074246189018551391115374578949389554155334720536764577647223954633307337342646578012933842402152042001535881907989418268233252088693912519187472587721665088830252879532403513479806546939066940652081424683408581934789596007182061259019076582257030554174687865071617960182727840800429351395339230872335614050545711524437621077179410663253123647657827511749510555757669847520319313138635964529217968146737664336084598101508816092629606389830069975799902694440478273507083780032629304167232490323799054611344478633256667710263085857467187187907043513531419576369500595739119576524243195943451924755088127618158351678040896164488328869605324164782644224864339866228091149854677543410414769729485880079416157796023287994056442389914278218632094070496154937758842161505842741700825676961122450322230539178332492959255590967771097004098458053236611331231550259458913460694497094807403836674441228906462966183901991516693389718669747870930103475021720387938390561177808510728378874027823511948003265382916398434206746630288970562420148377525352509074542803287642937905945386872288482745553761559232949864346049963430873450049160381069787327981339560858585913054097370666097910269186509470916661406731711226641701596490165576240343087435888680485554031770654493267582690137630572950423156416450344886852939111083049230419185791217993500705549270133130341073978482436658740687697945494458043037404710107077468126191023571587703538929892273901846583443568551262868420434251258172202583285689058677707257435683207826825576755912823254204085569708694367467755810912587135219889569766188674634007040872753278690559388052650298769134787894277375961319713480840618921724294574590834087122131663886950816564806512056191524996818027729590730376824613505412592334334187038393569157311968085789267027874199745013825272413345220298849706489660046215154491272293934371063939270244818943216115719416387296950576678025336056048790955325741961120833612793189341698580200749865956380220070971758322770530722624956675363519495152179694855882565206106669032972063320728291939995550202921192343994015546092138532968313439477456546043718697463675154642347460411604156010700185109170751214987945286525313349379892395794787534763503920473148213437314979312186719030535091068611014535400311341492116492413008572314324221745810555706476318717326590922100164483960837900186338703970090964419106148198362037878416759507013883172143297448544811022838370136408527810186421981376622881455384718271315535332736508551160511622201431627485170444440754280990158801632781109696246881363189516993584683090199184319256955687164202844776675700283807247681698359947664396534886901538628312679447434117997353394747045416451382256553733916084502148353903267782192370438332062068830236290332101820530117617237468461503152291419819861540323720268500172779413949822895456534944518328146750014924568288601202236407399015138485084050632239017580985057557357974911033096074238120831342122060903642913265653260191386389603217949315902891204479053719724585196470035064380615912417607181457125586494452656761901129910378087333750103761529392522519040015199181820810528289540476882708359924269953017604376192358662840745162006605751630712081237025020068717923192217707134324183241758199452489297323855884536043592528950439862856475129285895137421748189791859898013582868553770126036739647730492578863150134809171683609619650907716087470400028517491566906398733724733952845859833167927609702312092564528100320054732171316225274067487581067626848741972612361973861499134885782294727689062063069085839520661708561598526414063363808781913486072897291842695311997183000957100501745036122136154045317725355065343419532867487637905742516114629810181485918705747344390112732284534360377943162286748059550132690230282641288807973547021083530132259298629031923168911537032312503407727268455824073286243521251453263971815328599219835211410794817569898327959808387027027769502077321997152701707743392185749651549446261786930429581074977464673616421827496275927230218828825676549033788300142886708095724835218961257719716694934859060119701391385622572947017338364455726675520392426456758656765160857324831303138316872271612695645011429694001598865858921202750773140475271184347865241764567859548127786944044218856021589194315006237727742991460855295133196299450074007407417668809918621626617114940396564190247619498699887444434170237844495611200659209947452713009299368604990282095366322848384922632014380616612027313754567820702048431254781594875886599158341746487986659033980363551558923507551128993695148719255901436852281735931932713975927507022783999276066255862583973301307226823984883589547481698531371609205811539249716206282758081834767841677861039483648521010463955442353747581511265846670275121406142461382603469212065971543798150882989673211536583685671858778551568773810132888264312340286827974011066376499984147002808304719732245002870939501186039299280357348939608523029428310459459960876167364236166509571533807837069736284451744316063175987053304680673576021820922235591905917107367577868819017902435778701534687610758442282387531989978410287978649606094173763865611931365984702860849756947728009419554785106585105418204045537459649895290147587452132273915298948191958445054014150648410865157921208519684764164677264689791951250710544806914700344304604091790813839413563019107371566020069319331757783311810735598573363315717573338780456965286267052535709025614190916870116454878469286567283490100080543639147266551263196171958302044843791705024323336339825662385902410815308888015695279880304956276374290995284839480593335184354455271564691138616397392691498930754970913855804520556182347613890766069902898678969456847244366291688481765586718404537073524453523770179395202731571954672477763174160122036654711789432781133058069506718289370747981909640768182443998305317214658179588516809634586245732766042224088578309839618495677672441323761628948901198871144846975861101672283060408752393437767258933014372709987827566241398742080891829521298187466164107403555528658629166645715124308953712641225190821706088333788390303895881248626955886593025961498924520050273163253417842889866184469755108516531262909501784638499449366896427610836568008790115922902358592599530552278633542830453373540158200758620044065497285603586177366509626975762990809592766841398630624821121253248261664053172621097491430997254568557481372771251026738031972459196708314592739159384676299648354561906202601862561171517260709295157994637015729490495831081498085153782719262521292548820240757989614343249701778551254395194808289642394275656960260030173321319916306892785174488795702425223874935012611682172463755457095696714084408324348013602532522628587297736724408275475576870816153623492391100013489070232969699245825170250677684053291764282455335648518787145149657283729048785024091351724883386418957860855413065106899123954307887615302581033730889634380896576328328570122944757502525454283544091993357015336679068447180370579583581302707788090413039151501765885777070987063067016961948730376365276069191810778366679638826731762268707878067527521894691034568275820027780730595544708453217222521849580332624475229962277539114629846237160324655747695296736356259993115679011120896170900206565591446789032067931458621456568367787756315697022210346479959848942641819223953575894799636200204654855903054338524878364955158692435488709708841042909108971067689774311895763751235597495973258431434128429664199838400074317288514766610852192079757643342574480315737780912303294721151848958963160768932749941606161183439387613022415574774496127348982526658109012743378187053922904362094011875926054748417168663546572550141223939218629835880240005348712342925727025700261892351804619551203059407332415588793509287343979057510360419212270302084201183370897976771319317634097379017160268263739845490497399194297065408650372856343821320869381562975809950077822193386999410421014225190321746476064659403528645885665569110054546258120705685897686525079719878977393960014958051307763910124204174477904339158856999521507815547116164081690408501355745100067132032272895444690829007939427535871426580981722922063840478000458034931383602089285135890122631592540683585071309967373099659269095263576586404186265149364920081156201488830746679938301295700175321433160096117396382321082010279087833116449461500892404198917456588143512768855053248261449766766957030622847614671525136598788236966041826811507257403962333812001817485007379039416014378969370020310286854645717887694516422562914310608320885241015320759842671297519073408093531539573191293465492413649688647936326105615839754714789273442555125119573060465716569212302153856333876300501904619496201172171038694820114212588929747705746663472308596207468812630753626774272481386341549837597421132142353361830481692103849327402077391232027482431418961133803070108385142857354489519760636165879462895527794396498550345362718524147274762927419123425072775922437992989983871064337286067490998008079270018546218377485790451674571412004091820460228915218931756021567686473218100141499345607418164909767902044147464480964157568586899467151995815513009901674603258066780890046096124047827397664059621655980402490421036205946498482460568137897371404675786417225207250248089426353745964135870068273662690036352803387643671838401161634285549873923959711296762162541712721555823948096447877744537394634191557041450156298763695867755433246327486823175779238700388514818816200648617215065035845438046479373698455966077422207601973271081935273092386565670126581664078780988724325443209021448452413073207318894963738170173832422818421781432047634279508035494491405153631157856987395523990222982690591122444300717082748060666651705806818004046931681997623483640883185539451505657113914427780664074406450431649168279567057896398995648008406843958424182288551951855377672280765476833508522597139906435056321188426789987436394074534918899514630335315272671623155645978012506118945026897471216112948091413641928157402421498244595172624533799155650834609104804225245945334655706291564612024580056621824300287817121918072320346087505326476797730641793751676652462528980249084622420673871986991343140149282134828239946786071996417147662175738528486638873294681562190381358413985434056614417583351233916641044473828519209129738093295964692123990396652480917408686924276614686749664353269739716586757553319749383220840454530325264398397593334020044630385484029774658015354435646629522161995558686649334872645304905848397646679065067553036902353534067240018928771799590337065548452357829298956583469777160943248305045627069505573946079473246014171936001973264531223426781449351194237947416825611362101589755298415931675104954929352136053050317538408125999852470867437858770315097785802115858936430762246423280669869123729381247820330240683709073469042193809781644603820239183320509930443954513616582819241348934618619454412421596138683898326597362693508520752837647387227602715181883330098147055513900203348152405933210754102292433753718096706251676422570649403772082103317469907386569779950182424227289622336229288219859366168685396275565135189465576486730637987780043919014680349929388938965151207501236139334943710818280834409388848161429798485885386246953047076251716216704256399138116722455165931328419836114298345255389602271080194459190660713429827007009487370493540996507572792467978371529914966543725303686973157580924643544877583906752412087663494998311567669754861729183959461936149008940097518507137573872838777528075994969077034922772083148771336596327039295131852061118217795569692995709268204704261771252405551697711216507634118267997455961561165612619441935616164703986097968845394158317132909069936651830382117793728251750674682839281109840159387389166462940200100782241332950390889573609043558482050962450595949214864243268054263927688048668798811681025693314609925156371209465348453683906351658465063093501612393090044286711857057927380418245911455000006417583476448046955692324479097409139315022373149176139884623944983597547706317171428204866978313762111729718448067515806453995502022394435206618974432226969230100646630473367174635979670939198601340629161964414561526348124717931874192822747092535191360549212782181957330041732923576047897883967434499246839337862374377161299948261673829084221802767170106788315388061193662950548990760591521559369629920322034049097233783725653012965023301513404796086207321925294239627922628447986813936424319996202554144326018295884238623504763909199989692865531312898834017148606052947848931313734434476804305978306560266776469330812163233237723722181270039650592659142038386115942970913652899552762183240893734584932098451734033043958778269821062089992096882809024721808364083748607491787625860981252211423595322865406485794072595407984929285213925569759031595746756913014696228835861404905433902514771139406146724999400021152941446680566985341704598563205121892723028781890093590285381887941951177331970396427085091720203346285736444170018459935831251089888080003276946022728432863007656010686254420676889310261174210852370806813012324670887781051932574794395681869695283862636549985211348869481169253123388060273299607432443528352889656352807873988720446416082289772135248702331479404698399587287775272512334033542729667316597465340555823517975265913297326953594316511919638184308739583019564003749327606845128951519828854600619064543904374978240410752256370717801303294809115049575535574386531197752901371036443537784005443247785090973578551345170241572922894982038298113933803167479873957031384603888397157281309725043021437792096955280554474167392938696005689105674580186357742749930819425898120408086979417550453904047734821475811896089488049853772079683998000681792599812806448997966378654203936054667237633013459550339540208742364601665469637921647270057646525526272223791651551496014972378851272948258533039775910067180754079400673868728822074599470062209646833211225929509451867791786104838103884950177705392547806958499696616613858315883624855868098243693375817527703838169899291935877173483428347471037255902731618868959761538833302385423346939174420391025217780975776796438916357780208606816322753459703550977576603133744477523851523787578400623444376707912612082736174738886135224591634643183685724449634839723088694817092255247099014691199618627216320451248536601180294062355703115203533280784988932309164056795399812488099641073167926270931523233515147405923656646664682682761030831707660424438820009996119850742544667203767016248386430894944251822544056017327304442236285509376160457038340285619389908481296864602883083243577614752817246022629301613642760544690968996464383895259358418403383091037669895682794308751244364299479615076425618501823350819333475122530849532627204405648555806804340120961506657667902569311147959480607728274612443877525618399438741254899069028575622738597855147759612779562498314964284718942711078230039425151377786518579042226325028906632592345597511574479864168578234935455659181908880818585816578858033449260807599215886584995250738588453877810624203784612116041782462104252224400052194100505950517541653044884036062147128486806118130734218531234765115485698730083838411075539387399391238978369703403918425780076308110228765075360525033152003977923267823931775511721757181913259072752485392054185324467871246960530767348652405664005613962681223060565903703745655249511945131151922551737513849372736572526944765357405953481779942774503525805285542675937677825252768815966657670019857355443216184466224434897543923128894356374064520217557773953336428914626132183447740772192923532016291541641047676904178337896478663774053731848703156781553863764487921818061569884782988279775518680699902457250190156496321827537475091504548881260951070611523625819540885754747694920657638983524581958431098068806361178748224592352707459074680610346223349385807009242917452340503125456580108677888171775270480952045057037113353979549517864936066671609552994670910509222505635604059808300008396592611950452189579909039225707437450907884002647094936843525579155902375239859248703680068647004248426741779213097348228585535579377154011201556282433336840319601480295997920992159372243931778397047797459122762890410306133367821896632455890774303914505371956179978488878831655482531970733351126686198233384189739575731096788948164688147908410413392898425111773747342832571178429503814327282647139400740901656317160082241632206202948702754544245017684697396443022241839527897469700672417381641448956802309538001276839815246843253794921210924269899403364328927099743977384447134580687302919132427607070935767961399234589245856986815180250118634603263567445093789279390756302878900128744328585326888511360142601041759391208786834090790941355870325041948883686506134031547466517148807643870593055439351121232514965635317155038767660303276344883410640456471191389215246392707904565865127753559359573552084304055512162028879400614598737625841160253253701863611242932343780697543462638959821101990919604977197260195529374056523963655898639924019352817391505902675557759864989138893608493698260744677612578442282114135234555835605115353107901798890276354957569638608242220306640651937209590933160081813724564544360541695582423332829999823349617542244846462820290249007263827944664209462202621023686548598653683377315678336030886310811264524628559151712134642689588166775789911749559512599432846696195449586040809955802586822881341651725068689392058325071892066067630315159918894416874547934917135616322768230065503575452447582956197118021529506023909218011227653537906903805371184201941349559326265586854877783780144556637621813185629813349129116807178346393573337737467504622327347955100479166026855173794788155208546777640781795665754097084307921612461422981499698006313392902472781043708171004919855188189725889864893353694016780001752832458595404139310290092415646460885041250037393294264874570849874065888955669742657970741100290291940681566265965295895913355179969982690881265256647635091640869844593582574956502742181055838430537639121398178555631194780607410283843554811153089832122213110967282474208805877328614234695737680904556813579931650850183821382777755425926266976569337795787071574646700026510383832542353661816239603625801404590318998603826438287792797140568598555961010161585788906960481498484565474448781312152384071828461547352583683182669096054371463694390096735056657894655880708881289304966404722975752685216232059720307462220267618546353550871638517192916619408678040668097001613390589870319782818345383895743126749400333011066370622557414613279176801493649897927545572864586950729074398545822375208737240630458192906135245956074618250639551941441187529302338651932603613777120422002786740843521157459989537058413499345204097491783960970285669271884765578171819628735331750852679336391648771221460524868052534929874423862058232271964257261803722185138488970118395372789879242057722221548495877064751743311405597622874660157530061509029036633585191763724582349493611755719606447034562558606995272281127428367983251584104845408332620124333621363093514452906204765840676984482850766475813751114994274672841833975563863191632674260507408167273870056188840662864169000227595996295602841288365621274696639051782465273222898506104092869729034850194761062701503594743090398312657713994491549833211122569698152664263079916041558044182610717577902550263367726545846116779942328484213617832641533252281877638771271674785130527606994587274106905338567214250263873255550606743567418790320926733790338536315106989781420842469490942114742007872994587926125845905525207991168635549504156930002265708020812926299993750308359439724299033180611530604776519282872369829355379368503398131930759325256686212010676972715307256136233237169886485723167362175806872473626937644772904857452289712636399950737615885045571083943552114407824204498349092995695671037542261362934376479324639837852911322057189159859331201766951737962644999579796523420384934839706955879628307446831796420130343153791377047495542970572963243913232009452473652756532382709136360305964807159741180062555829976904242260332389082133211619625326611714346982735536436723620365472091400248475873010369618034671549294416202645497619738937236400290745205388988296270530160294895494449998926969210155098039363600223568362133374345948636373235802874215602836597800174495298921841875009382855888081707878013424661221775363419690745840707486551940198923478159357784954669095601723082749481999647383591751456791265352843841354971870912633348927433015412665605766386487751370152458632140255082865047639792176617518188149051339734687851250151401156979870404305845621109768879542846695129740105720813409484885058858535558439314511308879608331649178233084340372277881095200769554987279621060809334006729903911268984641243448016113031873497849690121456561845781820370952402321931942281304343778104458835539168201312519355746870175548392055464747176105597495750807689948208569060457731748476034073629203090939433655721292562806249065950265371511615963621201558368896136661091528300865629366651682112233412442345264242776599636625717493995593202522048025749214995605453627288825272630245585602567957199653684670689336499459324553734524560726581531665691340744231857367692815682142021749076303810225836141925700552791543406248635625146746040364966426838244852698975733812416511868327247973917438023642044787571559055329274953915555134739607395792534001454212532115670855757631941308189475844164936982587150043554953880665631381246183449518612551172697077694922623957181271860157079476525182994478515516256910338166130329740372832833012985818450246610306046305837278343923569819419281167030866654623953023774873039000862020216786652692331296613975551242866464771641001532507164493643700739109469136387082703646356027550050525652314497351491689954349249335821971395162903868554718510051240868112406446376307413375284985946294959486682819655762672186967445024845521735437842063734067744535258241789703123572259762208145074685305783971250656064743917980358099031148657251378546993580417022178898323357119279175812209480332878181327916944393369278548497862885076091186088609725778721381826780942409554272860153532869586763618821196977136756753914079685408093573056966089692685493227212856298883241480871070005526291928088240581634966824772473674522861587921482310322709773973936000430533459674441127247119306447018738536422842262415562133432642944955846250261407528787955195246254136140687888414372820462092140461440754746694911614144660487740364673142091299162388998396529159403878347162535800466528948270322945634733640709334462802628423901622074431347829580858879486200745646609287972021009900849833807390586280144832823743322797878806227124671401685013212968065268845300509211633997062164349041603755143642377303422222653051816275397003711286319826152234752150616445997465462732600039526334430780834215747164993118600922058037233001997525407243974707456470262154986466060990011530659665101419813915877752180286918125113012885148591219986927015779239866722139620998258153315257709884981288710397911038519101329484719249198162881471476664990054098301506464267764033805479307319858733066963748109480661797373491196978136943691495941476133927288899224146930390945344882859181982642531353117199977987997849992775576485774713493661248234571368786686316268815488933112956273413368308953672890411960378228700529961306978285983850968835022310320676187897920017675015319820271859503029992571694562172438710757671451131519207031376438167845520102084437332403914232177927338370499708690167651127564410362491322040456048326613877005082184282695137205541300921842082723458170995570979115194749720646855545144165536164283112300717096113798876741208547549962722820284842060801181720927362534455892556267019898892827030668151238665913151813992850622989732443073192516982406754188870375662275773799764222706425749002644599193441293673705202773553939016840375722986172439699533243266462341332768500300778556567266555422435866560194965369786449940300446765652734192027155024359230353570638764310489722119280061047612261663717332120427491518833573386570847150008960638123578040847427906678481977263632903608267711903973101594937426127917589429130928106300376580300810578024838515510696829178309697679932286278792103239632650988457187932479163662676834977560245157244796745588546661862538406943169763266524807612596771000282296416364212210142448874802318666639463380323555199874185301660583122003483391619596900971389169542358205028308562852306936703665597450331671242873920820484958378752992035285607665863455936849956701126916482087493417027699455876742064261571850968963682629785349044700577248571645529000678291765447286216439386578473546258033380830526380464225338224055533221072524688519024969958733648504988196424406091578559453163156622737012246551125483063712058617930536276200380922288915766509415657303397465813514934520133927598988192165941724978323904532115128584537430237576848879875626418852887130011258287153421019501991780838864934937817614404590875580621135437689368536582944279870949308798832316329158776648455325118711832012414967361620644932119855043065712746746986366200754192615388552759243785006882428996261728333485679076005527848159361394099699144622678350157829731675612778938292555838898554823616878059667612616968762032586200538355832204775091095131001842962548738997799856668600848578621286671308422954650455009717118586699826393374454946079049560392971313361635355245204958899607628830483650093328042127054048306604452237738741257596405485269312534424531687299870165857269848641000929064771150803341449224422997117666654972912646923389377145085394650391485260010186325448680484940947412522970072155456860477736697103638267271004706430030749428037190970755729312486173060556197075432079981056520298727879006210872918003286536878427107837397618952477732731177368119822434790386726217422092612865312192016858405029031028651686279426329928134825556775664732647596549395083707494071002877009505934590499366095371309232516845021623825733226056572966623906427096608072011813266182789288068210294396300723620309025806686140572000652960596654724782133508585133141270668932496073792671832822505331932336695422599018143324566111785082382168311663625600210470672371595915273776919241375308629807666449210447295636183181709278728939836222606244220360701658144395179138470977600049598866070004196809191575773094722077694721516496653742366300836717911705297458634277937197170621690353476470998603502643233035194301743855094976273259616888804037396171312679756465973765099920358228606722657828442627759807254443763246645875119048199924731921965467970333538191682762649365115900847163476000241193362052579682862082177129738444545708471433352851474499406197977626292038911010427301717762278765991140299235557112252667178072273309768148083733905721001497854982927966553919504187941439142823818260966450858326830881876621657686929203681373118753892104820605058419778623384573033508813050976195661807494925546186317944213543260834496462791196754649093146891149379428805493835114202849714889484201456100306199675480601607175028934907166813414234714883949651198756850251783854317012685043188093182944044805281999765689243713617980152114721058254032358906695257406695974480422346301908160339929555780924670814263430599513468285485192448705833992090946561224876242116728411798235939858046268807883865246339767015187068471338196085619082058778212870997750495762670858672815014743591269667555026641015513127173880543728719786836395846181124111362459946284314812061629321931234746267302254957962601761786687795774312916965197294134299741618714156779126465408342566777740930225013346897413997030634049847560578365065591723299981883763526733381797365235825720094893697866651521881018949980950311498193204238102114188429754154277520149198686914260206037936878641739122719389014873211642952606679475372124290616253957607068224086534541201246499063677853071480719470162306769467703284783384945557993181127016625913056279468959087972495871135300018537271086825668514994793582718236869704608021810118255670231606071285720620935654657689473858112001349364717671036726281167485500241133740427645321898345487888069486586561797964157495633691754704024856722203793257016218270512429022557389368442446019502149117812661550373973852303243693304202592807968180208540046800009889548875988372548635931060154056490617456550180356103695045116147302151252237048132433480218251467062416053911510351707313249754208242217168777456013601646483190533597494242931392971920887078588396154244553117103467759489441130637537991153722896363107818243816185419051242191310765620073634627092159290327408543505379360770080124471656785914456520873459470899461360830530377761304270460575026367731296483259758744947364799150012425075927734957107913933313442445941303413218148620657947709504755517214198802632669855846768360849981569858271632974586674777897172940244941303681894507325844968100623737134912701460589329125893160427828798980945283671084571560446410002204712169563696177742967278279205138557752400959374058593367500751620032021723145538790082748425772285222400058902084233357750083942729385419271501425488526660997401784746763644457409134622694184328237942216878414424044743320116326560301962703841105598312885396345158905962717815113135551202418728021040600774150950637700227861028183988710599479137246781025315130859632820221017151273982243639874885799070416666849370632094717150078009536370992533998796488808831967481797970960992879232408924196438327874658889034371668927464099379380537893160796953530674402533742697508560653164758346190348422008603172003838791451788094398950252682608528265871178426996025958234553280539676340100841769683621540766074252906862474315069738953361778076396520412698883940359751605334625358332001116204893795347405736473431506985558692514795275576648086680104726451032312345041317925614464922849395440067684916928457239487472652318783693288154996710870029774006816747192210242669930428114275466323116153700755178389105673438708038548287376302205059848058746722303503446231180338219850204255860803700351273353104268537326042989185281331079188005320094002070796253405007022017708177234717044707168688724741795309804288454831034315524852646646790650582956212527584475436024025045133511679019048751498851789712365889171551185137338883274083219055645658085760746379340905332060806082361744916404963607516024197270815717571077470385426451207398166155243641848151917873696010484628866303281346201133371327054615371553455664482148285369080338056026658104236955276014395683661216945485898551034896870771055393209384125046189450676883499625855826568931171027054152368891673808764955099695247859915390059592479460329995918900973263737579414378008952813034038908085828117743009641936611599152955590283472760863458721996895950471764686810458510981584203921097449934683975041374660801543532499441455231588353642023496501742729371430489298631605365239823340063310049528443973378169574335450217584461628882831889602391062047122078511846076483505997537890418738563147646302005121636757965345983116341069141423099261069771963652206044147292178025541978017037751048677472148875119625445618278424044046157521517587389212067007217721883456903796670591936727335897456913919710464082658903641946111790637557012550631098768765894188658235959283082490762033935907175342949614691111408079381961699413071424041619070653157754863199076702042062945200799237094659345599736187738792868156617169911347855815799160321493554576173724912554498264173491606662210886501096244113153065739982950166842535180140065867522325489435009632741161436082563640003826138868114591124742189714874421643293154891148007578552411928007008005996682276959642822168820803917632268942572592294983901646400760381680366255111612591394720402644870243630104328054536529172899009644978879111486146246114722646030962456028143239271940840318998192336237668054862157100375008850575837549188837644746232479684523323060784538784117836402067388111001223099210885043772358993969005610750377567019151801634944939647075345008105269300481671423118387407310776323119538845581170517308612014881891674815999204869198633301450598683378499266507707078553597747419554237382070275772028450809078170265689841269121691637413478533785884117971041953159610044439418996972701153398070836019737584992387246098515721362780234029323488391603327287931517385912506616923209918816336792656814654452176178606478248769855343342192336153993234807879223858415757677994956822866889071479154479406167911159730046632649329685574096914841313552994865874687369131220250800490658742721798189588253601361376849105510734497482271063678326886000456950145674528358864726848690043224686129591105781353533770097560428651298803198514118965278601595664775109359121136609944408709826052703444458364308672030755631375288281084590477550352655667067573338208344185486489994920929921607706554930902766270684084367628205966126881951775806223193867081064405537522878577077377705864725452798986959816922395940013735879781410500405758309648820349264570392177134603990377897585143133000949984159479807887222895039261992675320370318012235095986821853152779658356763676123354150171753272169629171161267400317525135476267560701633808483617201921954174623250870088827513801051924695511378431001363589995280969330114514525658615588798296678022883561001790432726936361280120124097217919129157921053752500135227120073413370556250668167476465550708422621354024592180941847053367065924594234183628126781852221375067378286462420739900777199070778679911200022281769221883878593322393704172371493753502138198236837036318081344400664066984121267395412441764978353397655751309708364636878313585280517217477741393035988603926596080270063473064041758610366863311739542413529595449370535126091311970150088813052407931048193856963941374078406903978900901798812121377909503547376713315540583697032044845772564831780620784010672938933531650741743402324583807632738498814137145239303378883058749507097266728231039526986686339003483457301733467897912849943332980433823548741505123190408153366583234488772097014775336141269320805055682191796417323313996883253790803736243612645026662161515955612447151537168273903796659682383343348097067472264845554890740223018872272736249871825242049020587232236450504231173945842744561899409268279345081957064023986255258077887705055198013120199053872020248033669668704892259729875714054579656755614226242726088209659145047853277870664590437680470858883066945059468690727670501241880063016265180120279428133261647189533539068356756709907140403868228285746663176681499347518042143754981399440077775126737064250424166727285555711858902260666794419985874768944102911331483789110951068737289317860812989830330697839436428181071033173108612018372448734637621206936764086464880340946738177593679858008590821625728837343792940610379601878443567910736344085534385985423089165530685458142993423943998922419954262948314072702459196654288982072168049528245127860291614147754370643618446373775804937782064410500982589347114728671124477903311693882554185695093323246003079075485397587544952911638489224586317536387796312132502062342525140753751627524325302451754388433096426252622445519742967197738104185999653575192738574968670213130503580559936466484057020660304363800367237999875561749050144822194764532181995272993967654575818669472419101901997900616522091756992205315594875550113931864533828234296371669997924733662680618000401400797763004580201092003688695552209426578490235603027803596434657917955578004297871733613962981426462782892115852623797505565770701854976187171863443649692779196256341463258270835328160958307869569036939254513039362495129712679496181577338381135409823341277776968409979016002130145929886160399278659628999673582018174105309809625435944945227352816076144504556279081944066686105629365885593030151788633533097286679003817634748874618278364411713000252508310389328172516627685585379423712253119095863467918911977332464250645751083570770436320720702375726708352299448659106713276295156444284543845748766583686506112117303797749745188825368442649040964392447322351381112757168653388791408315318201563092781559603530697284209239799256457187932827999267540943474378915425454178986798192330551894729513912133293020301310274802129768596723301173501235821203114732870671992294646669432832657456861029612654168153469484056096430620608231899923749153533115421111834365583602827350484033029410834395869808554222924809405852843460488077355982588218953493203050546866047565763752152632521188566322630975844821192819886518623020965276687483716882588148031565048970405352466099297440351405194883332653089323496631583026645532525029402933519216451679336392087140127402958822737189613902825054568507118411628970769558004799507082065493554851330957424056608838921469999464137197225731701799666945162670999592630471806925267564101638957542642899038512480836424744300427581082100201868525379679191991249469473504006812244374270606959983698794907999958366857643282232358531622208256325584158884580457799919920316683862338570915934615203592934608202235619150838233253603343100879071799925277520702718744388782561787304824898656423476768624542052809296304725116327597849511443210453915694610131161823781736521922406476331329760329310609234785709685138525947932792362441793460031062120329112060191372295531509210189127406184267869008113355481627894825418426308305650913103691141174300112324669447694220797580290780933757807155956802565284336241199552015176966807240453441340543207362255671600006408819042091580076082238326458969130245155574439103173181899968155912273704364666900205526869560245817784197194529191026132749198890676146989024937794713669475223536477282835971888964237917558103498983598165402790084351041553220272415601830327887565026294431360836523683529145778779701934148633309946052034491523238037581889817276014896976095452387732240774178571682274693066371260075166730706780208861214911396327668928628450157553925387307296487341250674761932976036202120277613916263101923703335963195886890308039746689584911346603904833185433187413936643153041018582272341292863423901485659120475477086461300731457359887200032018830882899109860221063680911221288965986003849633454980877412522238687516387484880516409927026314668268429432927753868130493747674696336850549692218939224035122209019962245573876348070408894991438996450444747877622894841418374582120222738533391433885895503055740183807339234688438112300786590262444791764436779779928699206439517781070311679990388929734350285532690931369635389303882053527980560987175377812906581520209686580948722315754537411019159578042276409529475279262855842489004710906912913680734446473054095108505169588985476721189015665124636088195367232334198344064738711306309697847712915624095524501175891021263024177309597547422709003338137241903538433059339283576406308623789671053806929296306142718611691805255138075563737961960830369486511899841806164803416673564177016593055304585673679880377350409366897362783065072643716507649131401318666235891132362873765510505772348130839228048284048287228592044731105532130331459533024994862521871920649176991613344820079039963114166465091122790753134853541796814952893059593183009587191787972995515897114015871998225073154266149580316781904817079479177721576766127573021453632854833221898280723572055495448054492578176020071186636780600007727035118118323308488536771625770617236579849285922666966270111972187337501637081844090057677616832705631993287383256560242498448669641628862523772901852537142983719118049497988715670746500133126644939081166408371102910004429142581337156113295985025299029725368020730907349810605465172221058927674925388270963180908824332247300463087326707648461357997711373683856240835924036487167856617368683029262782541513404306415194293860468872626484939279518401769300294808761291516771203006618246870268358713568726448510976797960758307650232585849834198783564916531432837832028647366298220637080166311822107283734274633147654151549939907262017586545753564354514670635053076731924986429052332630539680613766672154071845755903031237419385017127136538230642644952182653927595267923757080043722174476024437842974978272622893592702975074476751686306449534020676625315978151519389061640367344131625442306791603393173323992167625726923737214320542174712092063101073103478550203080840425619161122157576034406762179043628820136286959303605679091295086068688870661563440234033033962068000225548273023304581862187948661646884646819664515818111777609087483163929051175824794824384707228487417244472918123233031047852867184438040403771885830997123782892751750589429496335736344890100167889476085241730022214804841050502387090797862245604916306830405361695005735340752032970417492976319129738717834538966000887543223704399351454856120063317382252125540449294091217476789084663194079579642053130836816591391536360304472202004141144787340151773026545764452524743483099730480464914924321466083240526819736384707421696395006093433550814414844356311385209321910091167470890630734051867830143825029945247032991103721264552773593298305486210690433932434574147093876906143289934735067865793119240623552593235156988789060341302187146773807334677774363799298351131535973474377046634926118522575873673108376977296334485738708484694357412939372130391195205385827917789848280496443407558074028587964916310910828131468198639750844887638085638379415521814453483750257110774075208588375632119515062975803573535169284332523702282309736612999871468130392709309099558710669024328713677252087179171024221034187996606717860351714732490959381548816651070651144334816552318636602961427736858998950661227812450194096006216410868587032519493607870302005058193801146126834788440520816564589600329641463302610421566745701185256107333196938314769420893770490951567012815264512792827649582810391094637576199709386953571535058366079759712154085108014281661903487271907308894261471627948500104470100445152449837067907378273303295504996690608333192658068261085467382555643192595169955734604473857773671968961057649994260789547730567172710556079102231726119846150648406049848920786765850614492848649335533360844123930197029143484313460842159284730471165778244792549420682009692756140244079636801606373087555849479144629055422661709864262442013438927910672114971627864705194910608093820755580625600096130140160864914339073756073106665528356149251045927632482834038172426619670262870945678256338671934037608570643476625445310909958020969303597610811834973744002493967436329142450982268464159450911128420767689073813461340616296730639873388996271234877095243040444881639006011540417347559469988796147880934984676770091780961013934768784830016900329896299136867951806999034272366543235578111185321285104721593098984622410477514194404961372085805278916623014124409022002806854520352661945619442415069951612315598475403069205045159330113918797591407369225255808181487535837640632545606851555504623831919902215013040154950190591595010157911951299640398725478934671518440459045762685840385350543014884790982467433983513439277877397562110431695963713785207597307270848557593263594457161259061856656850307814085777786632492114307831845510892658956742254074988412223672998888678701181142899542539928857662885205382301065696040970290532279164497329972167879955881919534541172825977873842070926473463342440963005086098561888179100282269374708048717191599187120981017746604276199449720396048653547522472817733408910216274861204392637933888489560196287783342204094267654619225632186683897120329522462765564846625378240510545659078118805964580615632495938658368268407815698334381718227237996789258303722898561336171491420517840664283524797750400513961051752092355347583349463836902441922659434255683454028237016506282594612758182433777546256727262153861132732993324754408460560767806876312042535014642743238774701894218327405173956062796343321601617870833182028386037600907400072670834697525561697212113026565920867404458937326792170521664767148326104178672491308873482017054589175465537625070151466380309662802736076959336051918155151300153508544048586255580613373594893330347637333813330223073730717268710613874090286859024215658341197055044019289725822017494610499118848584942028009192552853094104334838583671188340508650090487359659485938227052201440919261256440847703698728858598383441655069577360977521635443050768063348170236041878292317878843971283364919028899217008847062842070060384157710535688554194485585512784328430441987744570647963812808949232216350512974665807720014373994063116550187167787127250399746319796115937991780926080749528301336741847209796791366733042447192897786065886489237948235816117278681740377526531833179321683873374239893902788964830781694456237736470690270254328488042320251306687201597141952099397999319452925135800088272675270946237456111906987007164154530907693993374225398514759071979235456238483062462551687725843891557468081273992033758200522206264987666548155408536772856474920641701263072496396615027874603259033151557938624290758961194888260012753986773448836155815332386405559771170684939975992829889741156922875566170512885105779336123770442441315341180548345066559992297288167142558219041340170645719070121032432819912435472883060565045801349438466140994944053394523575130875525684936452963400853363095319579791519236397638789791902901463021323938513811999498985994581371443696276334913631132064599946097903187770720953048004738373755397152906118650077464315675450924974396804631457654008005339611316685217711119845699312353082506062769483249772664221397014811387020528617941828166559064233502340707488252569501345546511850909993358163919879801664668317087702610571454330187036221513972228199518412998606522869680301186729460476930245489248876002650838587337682809163168272350099780409886095027664788921696785733072791868048714128389454456420759513160326613198275163845052042972066244119978096924207911818888896319876548224400278424685635131518830695103221112659381226139501388052435894282264231046089912961835182740717698006220255621553329568273240825648312315557448653098277084650630539643574999413779859174415779085783117990697273891157201831150809144442242150550365976083007612882048818723163521677184301175789012524784876498279287523495955985819471016746161263657564041170915241992449359558758092678278439318942681485979602467196482122523625171349273164388692794389034417016604545346184315153550360637709326543261117289868234792212920164582144597314331634500604964884010134453865600170422510294903167450361374656057546076459451635518590171120264422467818312219153197952038269127539057780467555102112543592710153641300062570287658405922078550659516816588804366845155596249291846355734942593430021070448996698074785479304243226247874705934425417685877434971982976776105568416076595432410741960425655638513241094810635033866059671133948243592287424406915517591908441745288021947245570118184985254347747757511484782897891304993730012058115197726441705602988854418674547177863353833769174097518221313202631557533020124825194922220368315575564672255515683354681559394853034770315800591062938194853358642932396490265351104988924425478287121844329560021201946056558815898214303782406791213348936537778372822535610448055946658204707878129529630191927617848193118864378137908357249675204749900123182024488324301918134133228119329689849989975195943816184773337415802908658431035937349862783066132639766813803910187355750002233515408019918412635846567876217489788719540992467827145378666302507588789422815716800050310560359091903308190388028187833587818084720779467076741576793188223167226622476179295618222311748249176263059005813166476908637010629384831893069576110815276525717017472375442048857514144116255539070331531125433666795989775318559308533775614554977954890527089278218073272281253669654569200883944436094724418326804822553120617868306798586791161661942859447924643925093031146289004176147302656420655265662587120390361856774661883132964858422736711673456773282755507581494700794992970730185964739196304980427322075148880016742643908428773266589502814384498629873495113831767814190980568658138628730685078466615473357082010649782518548470146751544565535371290714273434266895072713741138057396499170837412795878107925662732178803433242996252691403650645785070988330007480297408462786958161540864596656371712054400734383080654908823861907486051093944663997484907082047773202674930842537899767650930584046977162844661558169988241710494128326569600707942700505037312200222451371309735855395483810062462233647621960200195821925330644097911514568242967024633961093040360163195742609073068901450978933474711602535280267675084401519640103338056481281547707446404095109380137868948508276180347840740237118163440736876651868076219894723039635420657574493776767571576574685563861741511048950810756452292120297347816216388953402515207660721437222363846341403362864521179857087213111752011481530135714661658425443168804204639699869473634872866908856502874320493288681074195306186266669485850169165390738019153081586562043248741327923065849780079826597390781772846213307481422005709893839090218380032028717957647316957187197655520079520431029038818713005109981412881338578958887100946655148547721650961686345419097399652983241970254373410183116455864565729431101484455669425666059290087252703278951538239779683904141155265151476396479523487705985639302361624707230034204928699881736235896503564991748582204171982764574335415974992274971857682011215381875314696308190060435883381893175508795697472282697173375561951255811403251949082707245143635250816015929467164417589020827484593835034622730732824348230895103595101577498364455366265672869083283772980169436466299770519284283078049112760687702983271401454353178227292973694731513612285360992425357893646905184347592543208021129190770133914159582041135476696610010497213437714960435141313375361899404157010473198530837136170841069425178037235236025512635726349242157804549444246093742714956420087633655599809593609726784095854094724766520078286208442913932826065214005622972090483472718055828341824177571846576510308025523633531135081388436139989816589841733492030684161663995456997729820410079414612774563037373064577198190011183936300404613567344589238851764329268971924226076046859172713274380367417232706835234616551669598726058613600395185208634918057920642099536084071620809055416631210017148997365814426441756145376045047397359685136396042129359420246063520161599278875948180853272999279659073482455095751020057890318004952765424819675808050218963073295007791261151354327017096541318734697446096368759342544085791954942629013692652480676535692951999269643992131926014321565783134983937841125664587950504283329471761166537431811231754821279905785992670723514457106591045079857062346638581286112317848497182840769866174644653644591571626458569817599642103090471041581073191267780578739630180677896300091474445606224520968875858497630297880032366762233834131520901481987921047957325896933905331092282349413449681617497047058788332299591914865074077721476902520648247317398754550196544343955757272511898706243014522920272489535897427262735601194411403402774080137582807786568488850589105631890639158267967508592477425539740804745251590651042698135040749238250330995157766932566664089659964525303987231961417914034284589676554584134135090104813555799070210260613974575681409637098350260841848241689300909964101429797466893954811730530078610018248233736511645081134564325419404499625928417326424765820812250436104392794364607961386176555336417016577530426393284175156977322122871561751392120800642069610119324202431678146197156900393374730143011410647900404134344775698768185345338365115761752138009001982198352266413673255293714655406007226038803176707765053675621722598761861835489708356952029623933157058406210823932171573267632125699517187364347715681865532843919541266494831902166524559601775397295891516254847958149551852131574329125765000790725071185774005484551134619518457523870819705932414164925214973245054575203879824352293227278904491790867871935942650977514571077735708095991474122630581873900351210061578105648239458225365689044065908083856326213999641171719524941926792759669845876279794116187948593941282220848027534720775431626299884541420629358179451653419036535868323465795949349351245417882602510099042336681196347047600122394281409859687601479083863418116680321907103655541132704395697271055367576589411496619348718778890363992553140112946096783205936871020480103850359221969263630965611677964835346009705959944742451857979163160559203289039081046009647914555178156795677044664772050620972497960220222628372006547816820404137038823786507553087612713674283323397778911335153435766103090989009377925791065632268997021176385550738618005777918938621686026995953793822930768394052571104250030876451247302275601928101961076488376460053746819326242185250026231417981644261833179955989490318217888347915434998667242128334266495335512464864474205387061552612176025919081676334716067703503798410411073505616919927319793940585479802865737550386543900048334153099496848830125643891714931999098154723421955210181674966272048769591093516520625548478702848255057595986542216841144799355874102304399933283566883125023337926375224725084911498570067501531946526349923330510424568992309060880777215138391826312548097239711626495148323109545829437403894235021923756276896831289902496396858427079661731217614837197938451996250684535617501003018435173065156422314620397110383016258903993904721847862195806163800232849694899564187700851377701386305948306664597673369512538872517267688188285987608855946967641187267928606628584318870690930311455205414974051383289927955636819944698148200059982032811632906844521869566489367934522904328374486875633022587831695369160513781244663569909897896196445900211340570290045581625960225989820814030913689208078321134042685386501169943600923400098681549900161075995727764394709348649531236309288763287550353179334473771309678356246486190863048151379788815478065818948230873146085814457893729237246956867408190238779603159302144764570483366078415466283258634746353229718760563572164601597572803724401861380425062697249812517259599795334414317624185756870014178544712003085674155128491948583717086933667243918398283318437169576161740114923569865158925872113630346569664990860504090038950610227759232843035787397440670237987901525930156055317707838601133895832008683132099557437350679613597918283751174820777931068927274365756999199294900963627971562594616588439686162770306805887580695960045339576230549467037238543211683479495964226485874649342922110037538688979332480741577692585492134759077957265049628336373266082184115865835032556658755393271385021503400867809173803742731752700210343993691257894752607526574164251512978865804155380010432285971532016224894933697700853193437232096649156997872563664546527440181121925663110343270731182098213069790088964610847591025892845786510724521438375019139598192481014711926956937226405308653151181310401056562279193747299472547946159666421722271451997576156223305655958266267998560432517121334480024463265190921926282105379324772052551120623063421288260553140364819996317242287040152189384657059069262095804291338554029405590571343451158803373019527656724417053554174922700543516866202289144105200727153586236660654203048792632945788753307296212227751319437732160412346131458983569385034975308954776776235030605449052168883359169109969873158672959446790772921217684412797326454148150450812071147820007570825593244074267222960807368467069129767184860087257656256829583751772195142982887277266157383582011367118562847520697905723267015741042013620096007188611683548262289976504645095975849330279817212061658692587569692900508111206241827943518039838963809609129465685508478607101173173851271775028574960625548386468311920184642245847998453378483322299718428051406560643834592568398524858213059997383024339489583681490314607338942054068202176056588391633558695625792904684189216539241032582956230131747568349279037190139225299456304831651385475138180471002841839720068755372527519877323810992168549698982515326619093422207576387837291556828825722094346869228669539943447026827372175944806617401642755614416435342855459095981796749442798176800123553874968134190794817018519441282058491492186776248405318629043106752076144460465503828006962295049129429941321965675641858654427018051570705246534514202381693103715854562982237277423053691879439777465980912095701392561949271043370598465259824933011883565966206238727965830993280261844072021070898890446147889969580513309735315552260446510579735944338967024466096255587088027289034349210513568938960575805606477784293109995401009994684826274642763110014771012947151437871560494053188403604869870263793789327758726296320164781786870098771335452919101144994203077801198333042634101394926814283069886638210769141172172176088931739549622671018445409605823772590787511460185536477943170189712570753838028062191320904972508700048589369843868481150388780941991520258311991845988642574302055828463779584031496023789020343490511879345748869687244661197696706033302926567815771006617779713087226636253343446052547532807500419686274650403978626574507153464474066577312369234833361492775534893254830277247425421294926133029778635831438944550329901648540064260812398728070251902771292174081563290083200326921809632832478897177842872263626998720339347334317013351848895874413413196418295788568832383021467572948993934905216879292356942355539016312032304356330988246041443840327321872511110700128855874150178064194242433405422461657660683208065277718506227097121631661284479668380150273543522790167124920714071400336391383558548571031524057132059487874624504311528089241027746384219565938338726252313866740504608269768370156765027100020732853378945177056931360868342984373173490778908835488886355051564118724325480673859916856250050968455677646236801292543741551046355995746260394736112529721065545349238364700302353650656207171161105063289180748949102664889814538991799846319752353774726861042860695364888078882594984096509021691926509708032019420630237990693631019318529919620407026196631421372591260811703260443282111883892011313841505049742163645984025125656516975971836497155708623755960013307516816694620336526935055372820961152488457162450091067240515580597056648206398802526090428455459571656636828515588663918256483527290854448876711507710520113961210840119397462141935087048952368810485738095995193268236228239121702788242773528568754353174014511990166179211168178078906241624151945601507270631461457403729107680769624598031679661103882282103922824689659123784437657692523541563488584349217198961513014990356946367113376059515592969774450594842008786788426809147723873451397355586744712457014835026357366644213591232530491124002642245404350667351347100994182969035499768971295998193493768270658492665920688486080873929962139978185432198087934380895171070919120822804134262636111303909343636980724513419710704510211493981615329110147969709690004223613776715352482242454029967179194233237371872788647707275260216864817395601016317146475654966114919074846552331307895952035233884896100832486259385641075079109032198793181818825209503126548482124891357816881212635571963734041538062186099576916300366725625357826490823099074215388045656615262931021331284176179839521701139512476928446430033792436560456211715266794673634085208141180050115257166120416860493409533090630217641138843395049368068771039013984214379034483989660043675945839914487726636072093089125391553530348859013260615303515498759158180773869931251362109259581468174555577116247546007825784105865230160683871859791827185915629217176819216940942383502459795742750561864026605035750339818141793309971671397505112536497419070414356090861028893039389493693428297154986042283766049050639760831249287783753961792389118349254464087308744127602712278370631167260032568443147540933813255015725463009684019685499565663964367295870049120605503829307107956891738335641231834786660051981207068902672577755963379405504730771318236672179812188702823387657901240078211187075303848882343196966758560701493146337679889194032733885162083368708745770459085236763180641980553121158160882631234361131516510356295596169787139963923717519702707915104594332793706990203570499758206270643053418225250877126562499619510867004555307116123467554001463281598179556979630221886355165113318075461349959732835399629193404352170194104184770569828858002294324155424949940048184887433951183581710458055410131864803467303092840543162584414493419320324453943614083024664401605308200662846726209872476492326618185807197241083103674042518619455012582274977914413357026561629791676026118350195766053040632076909613424774234490068541424062804855563762118082007933485083224657366850087721676758136433882171485279675336603864098803935894500261730149921678297764386761941633899254785208165333756401559187229776470083346651285458959539004481572192351738555755577247846671150958878366196302394313102878853548845691786165022687618288184794990309898953703185128561919804677680768265584086550732429984909748060985610178650695712869990782875698345916513721332801778015855951758282726296592061100979457650429821057409277555578280935499722283201575000786183820148398889067196847914163536755916565782155737833472315849460512197097494662563442973450564978811563426625507432688308472764312126907438845560020673858297029071147331309039459318996760667659644596628567309826828259915659317778053694323225854330410944499261419546812165613372610326657541527569972515081824207500238161890692606148998912640665712264725330305846808047233163322252612353106840061704075887120611610881431928222473729676903127384330711861693596440695412760363109677803884743922682843604524564916380574477451656841278635783635912133529315751886765610624978985399157365240271972938663383004295205965505543360117156213657638213301633006643995398629025470524697274659770065145083870714044192832375546078140210869990950772496899390254657912170232615588858516552180139460065748716617110386477075783687984092823963039131100055403109300734465173163559125871836557519737237239479114861860755175490191049591247583138910144034478632213031350758224924103163908986413270005742514188638398240012048523665702095035842670509503010200137687261412618734562488809821024719851479900725115656222476440265991276010724710682877468772238223097679637740384426047300427355719447634176044367334505028834663769055950173418672511221758758311246688906202435159012780771119710837050846817904027611893182155237497022933924238192387660870948375894756128425322253362096945128546877331872076897492536323871530856159187137341411216284989393331506846779771225625522122757785504921998270619927471719995783478131828480654003917634444300949088502272842803778442826927940442674602560644668382572126235645491406422931730332286394840426693401689532653531804859523641109674969801497633745232601829391612611849143426204728990911592806174054757118501950768629062948503475736705376052036966583684008105284454189898536025223355377591710261815957229610217766368718642462531620302862740583086143000419824222760574388334132794930667712419501284185006915506001915909759647358452859936255692667654280898728430158069454566584894681320914821082132435380098149912505016745073553115684833938705488557376368445391014651152292139239080679353570083707721826551215334309278821289329155983901247940978327654375944148891110800541054017385497057847779516190795423889297745490115774983971370631230423953576277065795158109660324623617095940710141788631559988097823066848283634125423246907427185076084972143117833868961226704792570425199799564121396047736681405166945717155306369374415477518674753761178527328354750474016980702203900016214867931160569886672445868049161361002137536002111793913848818043482178941067733232974837524917418638551455812127958598469039701850415045696716477023166418734348831090508468075260148319843088712308648794837062440304409220667682236050535314677701628787082490968064183348338423757234489681827010949100940194111913041633344566050405379849617564794392531236950688207024904550453318586076682049570801280171131679835791238713301313553528724051114198329213634159136128694771834893892316640913204103158474677977815197482503779522533205432506183015399840147363298612240469138421755944890532284804532175496826011280241085887252021223242981831620961283422984932014536955192618654932242144252940996201185129413135816698035115253697896611409009731555893427990122032339657364413227299314935368915514373021926511365490211869079770694035830675480873236406930958349481489072008884604490798466376747620321630043930466261609157841880331537536686939456491876528101696024630958188800725924954043046512073216591205620631278198693561143356503657373959912979865546156521973252288335811859196684376100087247242541660175801297623124106551528687706424155397306784472836749452826996479080075951428014411302978133467851118078005053460043297460024878758764960433851710570016516700107581198157064961024288740633737316057890002595607695056638659796748749390580765786108577164085559410608481937049607653357784417069027677353872161369763325829893137915301891286597285092914352413929245572842328700315298927620635520845730977436693075311145499170437524822473923790366400307361374434320777021549287345322746925161552412490222462819678330088562065465333146852498838459792938612778003843353187019043757460289176430902245683811434050405341869026129168792216945432302461694072110439776740661795187453911454317012042822242270482132968879764106441176792177260301457893689264281287913873364084381424854693941527377595187885400619886526183338664829963989623366360002603080490633105824277659762468206952133448964155903546533479227136496216462521117968074038801462475822604725059765570621163550365191601031519511766791789108424815346514112659894686512488259755412493718816811613455522091769770518392106859496335205004556567514382001702821984794120053898252933129707522693264785129190243368040098638458751262036799322261448132557980614272716890975814520161628146926425683680840856351154039246050600161343395425905745577444644227922856003756802250597345362562033351816524370167764789373689287958175163339507068443683568903724043795297880882899750532928736640627874345663653789183355573680563921155521971357793797225083232373576257906599030411529137046590562337055079320657689923331270442117384103762424280893776153936408026548036446369240927820614737617904494126899455806234625019213499386986194095683836373470031851679266431405061998639999071374211961368286679527533678915979405443374351516557840006451477049896087234762857214072058885826922635470250570464859534539598005904808940891136583176532131814007247766468602162969460420525442541565750474956824161253950009877681964623013211662820545065429454964610354738670577796648648418290788796739459728191507460924384777684519200857887160868522248565359611534317060269728541848311587210243504205821893183052508922791597761079508674788681473892216864269424067747987268381481868912899471845160482393555844607784489081855351951107194677685787796479094376136493540626638531759750182817353824054562309478647732525241828524831508759116026265284302695264471379626254042605395232867444923220316093487035331063099273794744666218274569513059515811058059736129245477604535725071358695904053333542382755792727683874705764067700832365607113045999043749324390767262409279042528138390504960188454159902276294676801208794604578256595752403546874657873782940255864688443764183262631613782476608057874379236900485608346839203699118913734859938757105975331634261196484293642385011343152336483575682769161699825408846725042699651468357142920622410328444729506310399376689006414003242651904768295422840376858699122003179074791066448930833077102766743400154897607900606253484218229542241541501939850557510219598678880613326579671224950449019010211406540231310889346559918986811501622642050007306374176183815868933555567225684160606995740159567822482396936351427187834823045867093032856389182361100781720736606683010249040666526824830886558236372315896180251250958187446091274492229728280417446751589134466126220659996104542235308303822805810124478712774508713511586184629883665731501629390635119078116561150419935374685489402790466781661054459121870422868270268421936325176298090040416735218471155323296618131145249605473828569476452538644299684558389879319131821114561476788952929708660259330697015794070215337926199789355833288140899538562996097184745574418481860932266257047541218409749637064210986055802404742154860701821291397389829337293466341994582440378949049052680020311047939261461056499437797997882534681059241665036071391354574033797661701703383990056334127950675507350621124530500231428397889807175835607584302431908001734660196249513670593713442391657953057235639583211976862904523480831010982133656300439243213233762134930573425046424682668845532942841722772436088625968172466438139803837247634881719321344618627743988369090747494860108624973165767856851213095133094645018318327624931835081578898740380631654448454466389483819228160721598370791275128323612793043972807958557453409203629752681820008866809642139463207321027845146130271402455387429173257513872542416712764738248687831295894208061949164500898386328055557619894279543176462168868456312431391541869112542138834581272612789179194303963722129032159582667326260410888567936675410593049261661739056546940212870094184192815031378092926410708302628411884550702526081001252917886311784981760622241169993896692818462210597573646680221205129159206412100215948288488464926174017093635087655746062687812403466988125669901744714125761035429812727358861674233173973901121259853970631714264462520035836348278621127312150699669623470382697897330321460441903665435035098079437057161529768895735744227111439299779115389628182684402986359986657746703869075941322067550817859295170497816981166789043772216644623865943782397786053811290561145124223206572682006170715667834836610228368364287737504663835635214202186499919057485181823079515019349843852896725493917784866848123908488820354916936997644541846785078334305811357773330711276995646572498022782527671671111851539029634187490917119632859531363217542787231461079771844930618046881248024058773911376888488819471307034802770776594377540188387199591411348524527881939701759969215476501439394382945165180602988973822953997284325939123494354446048874544898585708030756912987435900264402120856281952051089464569645545696354150195538579164976571582152877514998792283240468075078428363101220611845618045523567863922585827891281009397106062686209928555496038212079057396657780528667564822568448164745188294089937555604025188273912440839909832931188378474601316756720735671169653986375267585811594457922182979291244726126377760796709468114025410076078278338149187195741895097833243770771411106782161081619637114425674498006429055201985990679879363356609411904158327562019429890651852285105282380459182770820643985929762144297082706700779946819801347688004652913840387775599445646166273657390300501251541088876198871008318171750265238073671549156450447457865858489539115888424003610575121305939230747250934108557450484932131893310708396495836467078961606609727425546000708640094393261553893354934043440004177388859557249951415412286241957547880017386937687190388682306595101820387874798046702365565906423669569668852211187471481477923054347915992182218615079921109137738008301056482711596445688356194778937091922590496154778182521967004227390819724607855751343958890710818653584613769302850563768438393748419553464731523012239412945862247240454144590210723656427505942324897599804801477218076770034952439460415791061282082365588358473134070573652703519286779718470038728477873570344385561909987552290502334164531775330544255944874150076717911020879853347271825366576648520555209762325471138017790497911228416633708013087356073853726390884671744771977199782229091306881337914946862541085015664717429297695545401436157195538475426150581615384348791358863585727731754943884564358755108423960661021175005877146957955920079830034051899335148525601517218038733278160165031292703620855031283596076749812924563985975413960991260589525291959163646691708015165948499814300974352713915480690722630360523885309696956091496096197890380123990550052977393343314786274010349993659410569732102873371819731584620682925989492363325213413944932175201912235102780963027391984808403418956020555609519599965287400613911572218540277611056414965346912413560369720130864598762646058254811737814313738367783269447276607427394586533877105234400301040199254227835728343570565084288902246152429119643735219728496770254017243532887228737384373154522125334543343902294218149207778138383352514097794655488446756117824481955168364737389838349986039415313768001337749385733358274788008347427842746313251573888580812131262348131829655808625602977918628689507803838056871673990817683777923139500594741255475633788867706585168026927633001074223915608225767651655234642661315983254536376465168611547392496912477836798558120676174926886643011449487739184381638316020857706550683683360642690327011836843603685883415615336562145608935581295774311718075551072150817890815794642712575281885600611738301165114584690044867351681328997197703616200104808249907234264217858393886089386967379540226599758352244617052182144291879644805488677082184106780804814331000231324057184570536352477505883534945696718380775142690176980709634679454464802018127388791005295117870504703377845935279575657222455670285135570294162195739302462524235733998884016788654746675312427514337367743114360106276877072152984737549198415821752758146581871765520488828037007857465221889258004236784200881074155429885422039171689864761258924664107799454368141544192929875743582534568246292914168996512266130221397249039726075958270133165931935812427098766767262030414220676493673893078530440150998356041904371796503037549698042054296668197107206688199468242686703935704075577919711913006759415511909658437398705053348578146379030757920050042014226449583849744540760139729609774288140085499785715692249505240820874402148215961220953782715040996536730897901952476358383336577601663766264048732506660184908256484064777168832639014686112131967003428854196010798834210170117214494967537036947598648488547710210247845928126546493791186401180091987622058089568512312866453393746913050322968257878627707325841505144865643299666224224193655870382354006526488532732141405930846439839614929636828600403058974457470945790398963899153763036409738642203173833189234391794307654903203291126438078768556114810296669563175370322266181020772338383309302205856795329381028526320323886796522302038495793637531757689176163144318781497967124398297185282469461795658194838709297451532760939958629865719045412899902507739209768077568007091658243750014698066318794181611148421068207872934209926930128717357302577642016696936131117726836992540607513282379775915623456490422287901277805177634601750776805044434984995783605020474929766032545415157010301022929364312650566405053721789841267315896515993763149330425824055080982639909544854884808987200521023440683965376949668502137558209688806446977085161312322228089251466415644705857995522180082915188716021123148526973951257628397299962286765047376059406175714906292083048209109295379428963821869031580391004857323188651771912392936203392042077942226368517089857326564929660501648221581272852548895862456594590437773671133524469062578384859477205598160426506293540862801067001938360441607294638687936331498085921413077812952261143122130244527240637076707392561802251448467898115796898516984453057125693245129795593999428192073037301779109849302735465632298311479950325290721614058390477259639143475244878671818685454495590216635807364823167363238338983378208374653996672496097092762449391070847414252518776362855280110785421240196210420417834750118205019901874738058112473753131994480674994675445191294199645646802439347735611030678492579335828117503324242530283211416912476887978067432669872042865096336578680047530076907974218364479929412978977308755678587228704383246126060163301641365819470067021471165816124555719722878377505590553202053948144472489119453502008348568158957272493663923237846837129362942373676639521993849658012592039367122636513426559147790320265270602290917817980311345458509359808822978027334576815069806251527411554756921014714726511358945226642299931868464489953150005036010977788171345798311537424005991543758371538986200732523816821611600778130724734045615479713253274233023505271964582571299014588414598847512165612737573416236827394713262649304834299109854215574617450221405654661436233437896578426188553667508826261757406259439187955803158648127060132956990885095216343638423703826135651949007151902946623848545301495983407597985801173834220023495116591125379379922180455540055354747884404043730763613755111848260881990483917457916766126868451180051289937475343309371817667801650738661045803458259793341440782130943992724176828678243599470917518918466005077054165180561868267234740042199611760752107232355774605826612212546135766461509701033229330417871146588420505997635834435412813346446825212587458279725555603374589766933183891606293624718294792909105277655785129252364502894232624083154095218805004046469727390622315537390659825262017240171644203286355196626776840380348805480316840429924388985166576652158213378625429033016146396678614663397718820373875790235572276587923518719775655298550275531806829071289650644131890863146598539276878430245641937195953247155763295355692890551728284414740750138288883554437366308574229298445021746909776150876522376379137977018781658199475292563246085775310361852263445754203805225578198946934470451324301030783485825198346223139789286218659881651225579842703881183076567496649324660315207593055148344579301131863126330408428051513123631491485981215254666818659585837187994211617397564856084214610479418211196393026714848021562588267698525091091394519467752161352301648449867243858790759640063829816055103938917699086219548139242949980926908612919128685124931842077628935320881389359526337607819971882459939653951216281908587219141520838571042442614359663767698486242595822329876759256731730750886882295512101769495118971248153932519614747351939001085006042104066600147615753309740413152940270169504735741093594916229661831669450067555843127114034026744928578025316727800104608320589215921137590586703847027928661974291899161340782403751656036118688254449754035087929408361133109664382440843651376313131247558755228453344704418172569648095054962857570465884586441533632891877296659222043126870329553089928547386101185066384953739978988287828574534486531300879262411930226662004806545128684647962138440152463516624749804176392308782922056147419130672578268275226386290764746552531771544578049132164804481442614676013159085935883587002747852377689637212980800576478171350288634702548057834284133045886012479217864591971145044927001886019009042365387857793045933739424175127676769470460376053276985349034722096317631210132678877738998498345930129896102965918281080643833603278790753877995779272659178951219334568191828773088190563036503719144786218303665918327570468991433127197225111337657721230258221383927622121660205786911453773699592321648520405050842653668303388268784583145849902682401691600999298903032652578242702532580739167127020402742107226850238285567053022244046988921476699546940018222971651852223376472225840046373967388317955196333382115516550713822203149638744508524187127892802606171730943779472798428427926046993866494067186569617026406076742217713641027792444490713380821038531545647411054469947751876401352591132230798467691987370811294470235298830290197676894763472201546612379387709273876656604106514796203612796384044817421065503972325175246768449553513641243893566819542602962150262141854837531590820073426504981399019413557164805929365100837361015712618506477523153228400373970340437253970876523517524041382641628433505032179715583517300505589382022888581796213214603719924067799802042479647538300687706677969104145525494549162388732031021898784460620020077446017017336811798839568025524323942749676259220518960281502780029079932900946478579601948257198670731883950336626077038850147536685784948019614190913610944769553770421053884529196653616299150486730987529938909864054615993409972996711138819247645562519223146593024492490868962601155905483975331027516138696129923647609291841238415701417632382042222415243404649683513835883973404097261301709680173856713058034113636031989391544958158430416831228015908755324640844921189793462486396041200727367800293013259189352985159532124408904211211552516124754160286973542370934425925017850312411472619588519097798964961036455857833544286939749342470654715188957641155487214042716803516598246205823997830797998382306222580891871421958413456898578012895948045327080508730537959056003687326256975974675451089360876653568962160373238893706643371879816143566834997045102385014195586612562605131391222195600730902578871915812072460123186844389451191553847646702780222457920758382051889140506271234367327251012591789386033278830017568028705564822257779869929887490017929620002749730263241427633600739013107174945367373466806454078584650275949452074998901521380310808122798347450440249885460037953992258353091700314488322396560345410048707123537961700482452735144063601012503476297801183742669034499555603310432305889021711607805459589986202200744892861446853117515836685519453002520276464094205626080168788923857510375991848943602987387290652438454473332172296263806748370526029416217732792936224685568147267024499124233791061527157013668084220252993687366318263312932342115109647742201951613516260150975363810670736897921669379416552082196611587812793908401327524889176361891355789040291584416774530300208084155248565415929923229642820447257014641656938103905595738422711671273539127762955954723003841944238922350691078140415948019755233355402614029542631693988054814765900104809266422546195868139866662214825392117638242168142492029192811855893263830535157915174709729303785649658938362087854571794277049768930598252928785555130705497043266827473588371515408935916670901326860038730648066943364728656844651118086000190857659798892034741960696415515833691349746036453791850329571782960032748117120387202973110798674632112414231586867014171856244105435277260600630729131866954624005714822170252072266080123234585640014447667469499039647289766540849248564366491170625810128492908074559031299099971730226851708437140884659986451633039805856196431340311351953624117120789404679789047983254662211750139744480678208349994827146537869114053153454922169568055908408218463432570598436484087130392088898314857229121838174755759559784552140040638479155025231297026387969278079181929392569860561559065173737407316295835886130027606577693567095424728123834021620620353363805038836536390263520638498174640856407080469878381365352998156219476574588273209592426770008655481235401911508675291034913090009402683183099428053385467679435614872763630870826394366535937049811519803090007836267836076887145789730675590877841911989004712746421179931959986720358268919278177210533514928276553580700620291829605595949784510571662794645286193320438494476159324585782563528422049549740242397153295508001210272986842210454041684611054071938467762109889655190959648921833772773924383209725545226648023639951227722354877889589818834111192500696829233451976932121725067715120794733334861250525830378170832893371309686772833273587401428846855341623894676286034963152567990006263582049752762241605805931992308657514079596157546494806190807888786859213533899863962137309366696448317345964332641450349232708619648384582219970875825413787936814971227395829568761154186670986382396542527756775837188360195979203007696200326466707054388969112522906351561172568208850255247929908702041196773553788218990209362477125086931020543284706846953201348813212233928607262655928542340574003303707488973089170752614984920547023966438866417367235000157637169525000370696367966932030209289057751038422826345228525694169739881052071408971563876766171963770694421993360358196011080301487639500359719146173800260098409883790799284650789951585171026541512849594663514301969121005953228596057981726818127414952432438421131609958048036331389775055488640827927006754613351590152152704370158371687942699043647584234607962269393418660278802389546847122113580632862653674046342955830322490016391882550019278497419004407789167503500278973898943228975538863627805270723635535600044787901491504234318629041802491932314996884892463115254903014828385869492746108344918364958064262750256873658449616526293830350294880995682842984898304534539589316640364021532458301469667598141981650903248315963113779626469418619127349865858105206108808808090605471553226286912582775619961028572317513219862174095178236229310921182887429428213314905486647040746772391471599275472082449937614807785037826556534693742308213153201895105569543044791595176565602971066546334060983544034682947254726826379818443863583036996987209312499061492887845223251584911566336884546149778218222053258135320993952427053569787687094500385617829710756761468239359014092982228470691481773852493180655760449142958970208224913845693820738157208297046775432078452663217633801158188880802053559223861441437781318228620934550029061618177911207423412051755933811232646893429091721851598806239251761718377272429654630058878180808545986172296363183303332843940007583966588036772096622214411000918760732827003079166704909919134710626520399836754433036321990053932261462966257245281570609852263901375409601329044237961540220344668828995543724482009538109998347631857746008644626951741364828302173216562337367617235145494816877041792101864634320139065643159926455520874751820159775262477217685066130708241193972266557923083682557682677955930718201575756240935655024490471868225612952338548092952039857731884321415573811764665530958241020383932060077356378043208468186690015717647104123590749449184974471993597537890398683003226560717446310353712988853614356612625888552859937128456072003206199531866141894390914552923166011541999761641348909532665657886407779439428450205416639051177855799853736430829361647139413271720094944393637328229283065620192538683046524239778871336046937387385521724344651755599343797628162395261947122577599470614132535733654293253708986954343563842200932304571753631841049297188254194315319759499581883697550554303240681720174525279434508695929657625596730886991868330966671904276526706400794438588839342391472454730855337644487816973706773390271904370844131399725690648557229258415413501555068875686784972349418709956894348728679573280482776783076757222549842302113771718255717021824774803016682711374828543588609160970892212070825577422097813425445821526573778348768790825701045199925928354841212149878095242903610815732077490918861150989380852112761774747171927523347365094415778495593118856553662221643145383619127936303076321927683500293576793766023230634836179946390618403563039463658283419574234507315189765591407916199118159286888410568145370599164286249208419383189913332294291324481367189698138942587359060968733381108300459694128425473976662510966210785334381567528436439968563915982199794157519850616264004331015515722832815173546427414580848302604417750490318841194527838727000712078559243622585056044388773793207730373690108004472498915800898761442742405448285838304280931396288998008027614010489210703578606873247481873462108206001411558275084631846185471671071654993782576245229938670946852522828934497131843651527134668220031315205910094800331167606203320025400885944844274500183322408530881319682366555221644662331301355071237421740184722546388798712464055964028578946650768111734118275595733290696995296743961642215329565579447222330153381855663608963818996916653630742636413731768248900526410847827701947124251741657607826904366048803828880039175353250514422913206618009929747004259599129212844516889623940910610589348969462634681267580729154068739043671343967898499503783694735559814712553406464287231833480595699868050728322570700697655390703582313553733631486553556120432891056690459236536585679686467767141847943824391173549963743637856369998370640095068969233724845970985033141554140474113840194511442139293320133190663251537085847713974415302439681602669885096465216366654832501640143130585247288619951229293249614545854580374935288469964830396935735830210447643818749180705853688839392573313972181463164366210745755710097347802895482897353805178946953643719276094025916261438069247756503048340638639694624942617203676971354464085720887314547938867248512798490275598412774502175231345651205221775579319719852183210977431546587959709438794309192930814154194674324190772583858401666891571051731090582589102206877487878326932676733234664961829091462438318551139307840341542068078994035511192746139519919618709323451528014463206884938774191484220605239760522057770539779699960458302196259756292518274975521218104946949696045166328674934101435722472766356212634078640509010386293436988230322843020301847082555961354978661274977792609493988050485978090882985670760368551785054322255630388993695078709824888179259712038842616821229449663668431936051918960671868965619485619738331873533686966106594300402853493266638633636627420677904295527960563823272628230581923658998542460932656557577890449046742145900558246807697718178978177118665254233530682447536397642318366899403505489018806542789206996294814183411693703473127753117940543636819502485183412225974054441273614146909032459985528116548414392206367332563829280324743061109700996721119121149142993164945699750519616913575511075588360780326977352322694508110323336870381181981588677128405033008648620786075193215658546416280422093681187682936683744503920776299475841680331537807109779355342686020181656568303243041858591640366521515759931722366828504162786900886700496122320111727379436540683483741334162304941502853262613128339848772811870710792323988918310612766825849982418020358551210947267427884907211720859463025684548350825608736687036062900158827567718314698942357339837552148869499724771516495731616898403815658434597059044892848216417649343282756835191707783518946230720872108100183299917391965413436266953941986552751334341941392196421117701365003025098897089819648466633205948198494298498117196139302152566160362115021789277431037189598502902971907494381580419447010888775366631794758234031384243052680688486238824926150720208324199810863623342325589697541996918762935170919618516797581596063579487938190505848554019916901137346340906336532595069447333795936959804206673967092865436725548948007603717598555102387913281821337145024776317406834413212822203060796575904698091273900669240732282370773706928597214881441390442601804598296749976742735556290708769766546151611442695803256799485515230062807049100143824790013964111938350124462876514263188421620649269095475692853641672066719936745496589508733052224882466231825358211842208572907460813071896143774971460605454614743249970566453499311156845948965419742854766643093875551258204206329304761832302556189096600746041550143530908086044987901719029791543869629127111363437360657811187962136883213402826682601185454911215160339676248839805840338494368233489890712082237299844725051614884080466145740224176313385615604321584854758941740718675570962566313254672659979600239296086616166308117668676291076279419971941172481867832305504795638037509062982605848340831199163501743367838596990234267723438437612424442299888549040363862952331374589883417275672049940526643523474171900916607938631372656260335241074930996859553472544376634736824138564615554094449620140037961132415955965832541560428766761364210587319413000983443578802771821174305342264324416003697842221282624647041188253405699797107522898498017599705215473699476747583486814644766447534516258733684725484193250532672368732831131171934658053078404961131960194658053254985569381705484761766550480829838767554859657630835467207482508645209800242597817209065144232088784413076604984484251008325576488262216466534501233970482713503009189529537306633259915118905923199349239671825225057048323714202003107303080179159573499589335987346070009903688118314930716346450233852685002983526245361488384066424908039931458302103431842327039388593223365313312180272962718589834509545926438324618250704610449194487435208101423885383253222158635368008520485868250777535847199493422992482886431660508982036194752211593986476833908980032329824034632178012412581070843155162332340973645203584561296320943084128078634471643849115527710935941566312488152024882519217172392545203034743001063089254882707489440337590373900812698974150203145435999026679825070741553960523884610823712480959962554514083728037157693191793372838791610431823814859109530283866805219211651298493435950648074020891467017088548772789480463622268009317324968794045720907027462383283443288145586274453906983813545556055250555586185381656675236402402769814409057923259418351713254631754250812821739735219621535864773005461210443362405866537252834737288082041957989393400251652661273803483725819157990567945735758109791856191258464605882972748336681508168117926911411476637539035604101271751997416558860141508052144352932664634041310533581150123779160435415418310594092358366155494360802998549042872825698613041459484454455118480320089175069257351642053412800083027998687278990681851546481233757764469395379427627178133109694617327540100409932145453656283766155547917964593243380277562974379390587992091043833243995252652976433723591647489232867266649063430507854997067527621512352973397984756110483561615274127596358576497984827264247429917524989430366588845029188505075473587333646497276810309854198991510069551477578687707812514801045603624152956302887520870299215501368704026244575153278941188753547695071938089011036367729341631134912826759913516382025072291082661934221952527846863090698533355438466907933286798086858177396033158865421367181014468754999681953394210340569205197267626257446771343451189703651740914397674085098405103445859365841186875845477696099946428073783725559196510742191594237795192774260411192311111398288362173129831774010662551683693263972940478733716116530113116294971683391026056861775352692739144429275638150416612169993617815104755258223235233019700526825859750373864120945853025729384235184746995048929867687965059697909239900287806868908074806687722193788217169737938263140022963560418113012572590422510595363147992639285527387451415970953680765522197278226299809260649292321099892305894134047908525881249201033824104255229770642728692129348644667806899363260183458369046688312737399331226977176742757469366608038207090447680091053005184209545655676555589842268779598846909377466372884584114749610672181316415627691179478052889984509481753008261562955431911510726816438464239858099011691307609549003263701310209828954046954619347568005286963223810969247589778692073335065281755960141044403192717466117757953130157273437376149005319747182608970082238653771772792376926669546297411486535311822665056954557792543099584623960912622225815445251231394171988788705499684166348591512991656769223940036656466345595315394521991725782969527666900614287002145723025637398232375359598701924124981228328344727225367907740750234876337827381955972444032199892623306577290240825168757713836762486032727868038607225370428655534746606294956532124823291906153281643350688345989677508211545473147541596533603674222189292440427232873648467967138978670643068966130224554951551393481804694251062686161685788135562228114195758934570118287567650748575563724965767734923426326146693581757967628029071998563430883847482445719812209837854349443424899297366643062080641702862516999211864095009373136296369339827661108265642543228835653380518948544055082811570621284875870829286288706988535620875384091535830989707450939703215954674939741677676742303009536594414785902202699748460595795731960620191117883602335349459093179435590196395332364710704658342311411068725674278626964395509789167773194491805516308769771721954180021413530391487789459602559958081050402428891081416921445102049177091994078484904269935416296387954066935094617950194153062174988254871687883221609208512426037075030555912855521566821103597411837037850501878816218342163448227318103215472150171860674486475728982077258519737431704991818494617763143787812636474321753099450704132145272868294054780791611334518593737870053491102356565667783686855563486383961544224078845807811847161850156221715038521842240358822280515451181583841829575628855073078049718601594119312579733949323274187829556862362000716841069844791449349927815782164539901501888395088486159835331807201342392893067450664850741931115270678984011930855805810108130586231530405685272230878284239613563762321659569292140531152965917617412869209890919987216414789124364889382147399228962217978184352516089361990584265681207394137450175105859240802154632074076479802843268393505318441821228281947166924805726266445694660011985097519057264484294886785914359004552999155296877596539408878423273796209601532546753394721162185644718279930528749617013544889608706225363291218155869449871405891962883643217489353095643375721081437516778360360494889704663831539566348436279441326915624106116515862373754658598459448871053787342080599654284387600406306453684840560940828759942749910784852454108869465447047975447824392625498012066241661747807007835712217408384096182544633151312362456834054799341262578979128383408171166966300898889868913262457397596681658135654109060360590422800277225241222676275895788101577945184089149392212134941080156574525495997520409472573181534255180768334965582102421148909754448497544580367304125113736297763304964620259624681457851639163905145606163060240059622098310048429233659966932790711102452372936352693557033266361574797329489653593781826299413090423633746485275249560110213169524937774357364530116862006510796914301463514886895449545299936827038680910271692945882039308187327172000264745384923199342174022851603370590589203272180579567364188705999186325042207163508294852300536988118800700718890506180740966408915438957478362040784273012280059277230888931502199417639453453342312784683716735229040948532615394609437689187353868750063115294796445810113479142026215420565458735368129247632304093482274508944085265230323210716126885388947105886852950447851550228512740678292491154712168362642728788407073122435382092191821975833879876398061498561735280869784121265239166803600291255459172019820081336691994871170068823046255036294618154487691557681231048016345436803594169135769047799892194041155628035605521572709290284305939716086911996159160816756940683319883462056390930904102221454325611320730531270076281016401537290118549297835650312846933180587055794063023628444767672452411937091100546697716522298666989380177096122040774885131196476348260561388333651766157927790525321537943462367965397048947252842438659301948855864321668203182182071003130253570004444575045631029677514174004935320309405901808288715384853342788447615888961465854700584356573123767087192834663103300836608862383410720029717538909250657634965998796776962696480159627956445841255638872567135607999787801637678327072086667448421650729067477719758316624433431992756493031728864755576471214020461904270938130734860487726945393109350066557340087334332179028249728995827164589776798970428789668653960955915359275659494201833392256340769664996715849204684768273913704547159993173728194600162997602012104972851841850322047511045077219011546535036495477322733470822344208895684296518055807937029773174162567133056895827818990908820258789215590283186912622349311467587467008283961002901704840044280486478384975256246777628089340353314593713509821883509254058090252820977154395922676250635141417278958235305543074123204356708194046026737848265935450637880144998100437210872698849424482715805185794297036806166248227983979267237189815933618923436963390988805747007238034510296733440343284757741117098200936499357091706837440357296331293043877699142016080702181885596673402686395540492647336950647496929222652998762450290731662349647269955130607315693760106327828434485612643696407657933627996989522177437941052433275784058967939908532027298880605960572649031067831130637137805006465507117263978268802202169892624476976087218619431291683951287123671077059318517552683747463431914742840229157561314996756053686207139671686625687361924575667116430356017875926275184820600521060037312978000885742265237767598082801524719563966926785087086424771944455589357673767497674403881277499515956420592113152291950969156747120446884297274626812583403493608584468882693249847648941989361724069479264106114208566024787302610775797563653977517369691386500507199106814522786117633248755512706274357888859126134747899906715434202437377521712664884187470452671877551152769579555940640057559470656092008284298925885189583811074921067906752902308645283504995512322320319665882910376478350392379968332960185556054278663424150695590374424173305918018099668785729058329297088104583812088001921105789960698622163918096117268356060497281810512415791732677968037508691435607487065718878539527281186545435493146752881098444344671312736328148426369631071290913047601486329921996588058527779777032407374506501571608209563891181227219654236082168396509836265581148628333078216614149290421007701717949213412891410724487721644667279508253187044801337061869870370690538852835796204429670562919439217942534920250470616600281393425235829560317349881194979909884114563441133866804756481141945354773133570238900531541703693559700210260139548134284075693506397132154117612073751293473173545537458012443529845032989355897182289156871065509656725559754891726812109129421680366652478018869171803719968884464829995180006837921250210461410967366047272311887929037022153755160463514560848092556100353133874141240852777856391266791700041297718669576814538636810178118029912314335523780382346396139174149924756599948147301342390864656180432523514059648391761009919782198899773259462216981362303608359062303727282036714741467666407428994030886114761594373742363362546429873374478865908136751589918872550371671683407542814200614525754345124292936439711119406887969292624348322428797998993247374818704393410391624693684872982237477521857701560026328974548347457654048078228853338829513226504938153139334616828298928059543754885828546924293483603304177435601053851454400283169967521776942414497872491058296734843897401150322683739384908972990295062044597942283971197553352902508115183278633876963408510229301939253948354036008459738688144694586800783039396981946905176873907210388312798216524197406424139108717558106287986861597016130901163159933486393501375868323775849726753626921774471434231053868165876736181255269909145970404022968984441824829174938897619190181537963929814285153557439162105445610695161183271575686721921397740083174592815078898052107256077896720010894556043310774184980588300892021716269864941751271225819566552098757552726129853025372443706401393160004741048260686354536945046282709730523669971848544407486133823352195341145531466918457303094312745659539579162342115507228908029905469270444544966368372670366956950198397082423496187081876774668631738334782187562394009958952085398803454625061170654331787304401970677710105931189764115503766296486713098814743119351341264849418817110368112635166462608130160774780088309947194897764767715949373275888885905947081095182250895976528560594635648901089387535982023542820061813836525422694253760062909799019237864704321711309469599747472078862563532971378636534299063115658394823991890645948737589669630486339173275189062004444246375600074921036233642296854446201461507623688564875352127977200312489762034297829295345711715917099214307612499955862277508103570062689643290220090624223757919243802151313171660296291419944854986246653462747879765972022153635178086590254030164101973049870363142091212043119503908008602321480057650731757131000495478662366994382694172993842724549283092957506151852873457994195369820214106582310800896162101500767696584223046509049049994223162253469093134887493401734467362797582296075422279926942427021339352163452706321756052344513979945210386433091802193479308645153844853812220666804159275987897570565072658698859161591522121179940354579469114355202588087653423105951032596764644019217268962153582327623197138480267879385587951296409253681162912840653852141906075188752675783387577591798258673620602436538149854652173868789024123522771263542350818889028167149023131658816963037564391247069649115531659595762681526050869876163836566931736756168896593627971101166406871407534311953425464387327273703776354672955739242177588617840226092613142601576526722209542025899930245490760065114289361342178067859502494969972383099173155344875384517613491632411428349277028449428155914917246677844914360455945310089127291872557615676133049555230621841061592641815610764387763973753291052325977035720477030456901629765362375028216095252969722736432424419974643294554195586403422196483573468477216659728202854895722072532475719165241247632458811812772430475212787986934143572243842833829658608779598859752654327325597602042308886248745310243246078037032026335263939944992429232760843589749332972702689856208711635876593564024707176525201293740770683208423834066731272122062642930686997999971676110228130529926441120995799486915632333559600435235694212530192480005000429742756239113085583516773575995234545250358954265805322218575247434780852741218128858696232009907321474987566228471665806655570300386651022547517218341802827305089618736656446482563492820801855075483001050173654550193505843280861733277482896977042156127396697787478093686708394888380665626353940587577797750520907450637293942913569163172622037622757815486272136658744685479946982394546009884621749894340886658594497993051885629887200874314412874760117862485635653781487260412678376595679579208034660047442485828265954245736038448284220962620410902456661878249903219569876730367586587374426417017495922730000614795979654394361320530230866918795790870273008756670680983627813970470825482587523151764882020649514323889867681578756349948174952538844206749181420219036994763696253844551540933091761604223722986108699323995927104307093967073179274806028372839237849929861877125754081748463405866835118260239447204900004742887917500722285213442999832283329105573652355526661128669588703849439947936312018729370315578449675054193876044851880402947542610848896955965009636206656404400686404005012145550016893713647589056447717800103069353707908056832330122421196467199530182933737495991969141251169274598480393255675806007191007086798682302750668352638119391534209113688323317890742578974189231171325054664405636513268763719325706761135562604062914745701843924670504165413939897186965291843233413678067692488972207932147109773909918254574758829247737451844763715471114584856186689684081072066401639911280242231078432554863686782771273042285172546117680094851108214144838249354184601142374284627321491092293897728367749538292600494828197268460855828770816576394946708290684717025961943650638724275966834714932116247284700451354847484147401788303934743216848049849035059338386106791653021111064256704787460782437697085897214748675927606857843348019386161912226058688656481464155024205940536527951476228599974420510668760858053311089415912831932944474255191939455156834598415620724475243798149106262697142426640691037303385126690038325450820526033511122159395176743328720204738878411365842900602587844013731300766906327767057080903767788924707974299026254585500510135827739968942843672288842028541700594840100963264937597230752603554351302426562767992614359490860869606395074049954644452056624693504941881369016465209668686499073530484830656660165666457732362229638399084228683146856434291382785011452639710975379309292213488828404318947618681408604948636637325441921656442501286747109617276876972573908300065598134252694942524293488229490801801434867828273541756242918564660454195424188426390524381143097683671317037075005360669358545210470628357091869580384559187325906211082128336019560776996548265586768521963822991500337307343263449577078513716094170502794153286858952522043766793732765747560245946837278094057686477168880680093036305165787412328808384009571098462687745518723797568330679641512755261087200889625649065080813784283954494529179812292886982079005429549016456759554765669509594685640892664598534395535438526163024942103691292032390940219427968626793064262259714002405822900805021553495251244962796188339501535435992251726057710064142916246031924206920888112519095866409950364108428309629315902702073328858712445352232814640134845609161954437308641091386938718950785931425048148843691186951884781011717538438620180795495581747415973035552169940280215506332945340517785977336909456382004788488963088071812934149251619147990160129002400521158075660857013925371960524558164860989105017590567886256402658991576203383965126196661710092864993567487894134816153975496301264845956867894147666092307626381557201223839109913427008114605671478540346199818115204192579552289527360299142959365515121814131739320288476131280746087982890229984308517781976146159927789031472703556181090528586354741802203335290747699379613222513644540028333693827139387899311541183996639030519118970128292195599739432107006480067497251317699935529259665642346608832098642200288295906785231940051685910314316089889721593175191084970874748741364769896841333205533439563783213634484342417594138877083095361274493252273167960284633536874800427524386243174515715479201915202751023222770024224077215121498662012977509658295968076912506474092135184605977749292731491307912005258635005435479604035988783449314151752272769651117619882711564524519109504663714746763499074948251410480323881072704652195153077311700096178290643749609244385454629286058372023133004221670029972463712504949824981640428424589486743311857632042774220367733904595750025269196085711665814076226470469138085429613866889482743012551654036191181640187562366569532145964932890078517813761446686458260500047853510830574662601068979920619420526222125850737405162827848357833302379643787689572488532123248869522700957818315526580528178870358017619712774255076025863536952803296547912539226642178935111778098181024392830947062643554890660816473503850866956589738332933370765088846974058143577353393181854273314430798465658392817607108294114348004622466908954816551378094438752568736276688322430989454179749543958140529288961297875923002825769235607740991421139024831726295538597314740707772747570226210575723749621248288576099722455207505034044328687953016880720962148669165998905549775582952788790756109757310769230612583284224702325040321946077888487855101876583365243180038874563776471815337485207525733307258364547003208707520743105778296469807459639808558360607132092315380605542200207953279028367530059959877668085691808927491704097686441513307591852732488526184134605195698993707078334076597859101787869781180011957543377904239487590727561497591744165259301863399579524961493699006339420628173347706652982134914696820795672667672365737917088263691283240945524204733598950584819450353164769490058325891824952458255932275258646822600405066117445353591899192861822795067343935019526681881874903497335061052833794968263002377736326846080895430690899607554150856252636582975975532761655211097854434642324503527997602843521828760954270184097754064641046852612620682808240131652091131862676289576327007830975461548228252288803200103624384693972084299751846688075512031892201772476444444627073161135566739530719701578147747863226882617297349153780315235885021182999327915745455384724540126909103866453823384691916423381121534964688504746154576708616484249104926390886850268349104805928859441008419471455390768442272846688182944480099512515059311188420452864491388687737601890777694065794581485698014812042707963001102746981973931055463220414980370639556939029777260046853629444106878600344733381524221705543800065244317835951697041030738800106597716884854025494596441104591629213875305869008995458887975011475773029663735635229228071630564015670385138460060724672115908969241576089902989397386487373620043098303350593115624935118690920641276758024321621380582231083306554170414937341571359980563239400068334500814682844385253452097720431380981274365502997891767311638545761546331434144134736716746223949027407119691556714182493011107725924506242979286116178167427357433041063592502507984759581078995603360689157910633142686070371298552076528763200472722441533741658029269443683371116320671506825007408443494794015231251404974069839516525137956947013510874460344288604557698665520795370063152651711462575407055409747625016147717955945812606539692785488336944641820963052924792924649686454613714012575959227367193751690924204763076893644862382338333150766341000200195627087630951030408276492346028256397856520061013468763677945363728573809965733793751865419888008533522182368769749927768311090436064112067709834294554459614813354395085109100238822847535975894344007921480016089828188561991411629913446198706702543036732788497605560634961717692612123100573877243451853405890263678913897664400987920815932064907761073211140916635231043653068669640159139228791561488949622497922822215195431362883895797010525857540735608312294470695761102565986626694083194521137040189183516275227685076231757236478896389432214425757001335142716752787733827590468028011890120070028006064724268019470173563250794795913350223231786158229842632666566326653560178346475999444107174178215479455631252037857720182648246393651610532659720966745739639038073391873680994727889527713457447039524203587077269388049650300840957693963868445671181420944971235103522068858875451257826794266557155262342053110612076526077012048767872800202734660198001241635626888778772382698827642521821191265764859771982100113764240795364070642395116243564179974752453798595782326726739189133216889361179116745463264117940292563336342872616925996602880360072170134271713088298851282786095173060952180271549672009017655749089085346361588505211011540185111365671296406968860699401615265764126581116522561563437764880126492293139783869663560971683367451496895149366881093746791963686682077804559258697860761959432549658028467744721720406473839867031112710189532454719232106996401285338772500233608148770014514661810670266866245620240056218168261151748844245701947551969623167801314522413603412174264346115277786522582139280221297482239605720430081963740470921165723524877652421969449045374399103327051306996684797233258147576399524310792537809261900921027982055981592149863346046867236208242113754249051935376713196519065472730063276545282679317002358832888909661429593459821625566250847236293865109594127805875449804554493442629862575393689520614167398585817585154242017584984431759220060772227353786906763883959112685645616505078191709590376345191771261861955265880659516584964900152949760025615333581333796044390219427817573161556730996200777038942290896502891280442671348660324400416536803660302810348095019103976108445081006269927173101611609884006339118841379712312486924704662108541400832966933856234474269690402143960707143801551370479471003592802293402973379447710039348053259874966977808099894911043827159145780927201868154658989833070814081165141242124489312054725457137696747692670304456872199527277679141630792278437127223436363480854083314226347327112924227633006883584366146883223445509188116004630362878915656071411808267196411998404147383818870305268706256267864052370406947980464309342266641229540007599609781072894453844692095306749765204424533226706178787169836421733639455714571793442676708073087991089087000727521618953535218207236436785946516687448569417812345619946582998156978675282717438790793282145004434980022429388905373263789562762537632400956304019590886383033586610165749851539372250998490692096840895877125012224116722272133959219062358343989634126999116683588878370381121103678316084446153159715795298296063745419954241914960423624213019263973359813695271845482536572029921863898678734860155688115994136048052226857667454621262110177778094445754697460545990313135168549360406888695996449111197601821373330157260754643892635029181951380615402438514535255522624336058689007468337540606892162937563179037102268372144477321168569398216811642217500467115576624118121375773724700040552883995711520076126929175750584777491898453006675386693204144455781026601820119514383603982636184395070247756476787008937127927116961160659745025525849960147566703856550782459476164992712645648854867613144412154007283632161991951604560263009819934385274734014801147885393197968686968685989288111213304967195786706903115853344818662334129310095390532604529097760491693381301651891794607909885226058763996322594055316242530891816454317373428668643161080061555045266719773698487235945253896498995803798638734108465957573200927464504063029813533284773332353423915588639228885477231030618386958039415358185902423920231227972307883394335570159733699515436535235107378670552668668449030403969764993078808059628556612559006418295741873167450256053051894726895568020694273365432314519664267440433860354661463103060506627961387893287441448383787223092336271771731045401411466904407291567691974035674704572664055936933545849002953788636416715194027620236005418068044916169678805844948860369540947009237539164552430418992779412205307738233446164972762836111241238863962833584077621185563326722232708978091981218333174823783048470670589736844982071799602889642943984779513812944345648113699131211717840960296342915221172064880210704552552060953159731120627312855940436054960624429338181376448982035043532616438423088561838737101220875268653695244705957020226619803115668285266772876277993514282675087645367518027269623815647812214649331450943123464813121496976237291602845528629178285989863064370677690510023450455666810609489734942431974606151835214999810978961903391019781048059883615368874581796129138050042060020082601862234858999425287023272574135600412644285341027741180105712710631677392998983501361533552724462069231780363164634501249811096758337616495335663501899484354432650285237800314464981708259736215421010457137597328344352148795551834663217202849910287451212357537396151904460988105039948430520767317279999984261777722571162853204654888287279588073211175760477606017152537792802886449448359433228476232117144761540871473608352183242939575911864448744694017107765217132011314166878398885451130765678331267995373645440447938591684023284795175044988542055993024365136689159662119314720408893455370032278998100297142097388746079210057644157208768860878353682459387333109695404705550243504574745871646432795818052306588533265104493191709187235262280891668698597651243130014314898441941593227751302423461911930918436323891606388985780880973586342555080713311719557744446745986944907020884454455332960583516169076945240780551617265969356312797609487243364728472556396571675376830436466491140439804304927032299619797376770609128468260241844319626872054446734437672742919683991768271284870432236264287351643987797788418900946184325002459080060413807712825148139230604373135845315702897793302922593881571567806763702658720187691222502394794475769451603070913227289090117933123697453215130265118350724679544659777393815514123086093785769640598870595506644375822441851705568471645364234677296834035513219633336255207778759631672148862108626725099081398668231420203007755268992758691237814035514936179652036831754370406850590530492898458267252252070866555682084537676130397940845155171777177983844096485351852030956551674565726695969661464054500077456862765954193394496369764101075983554798285319443995511875058658009535782794929082561708849341226647918615247261625217540808968860723506487183487062333137177104327460145948176342248283065517349552698926559527235436658138194098110953455308561700259829207957649058235732926129177402953414690621671149433647330836850667418218126931578778881664223523186070344481296368114758455308952546568960496570498440418546329758417247665853527344799527177272255962626796537532744011679084572794667516025380216345658001052504033998707485977440122880797158822735095497139422835674817743121921054755547638207166599794796748136069008425351752667497201572435632852576368481705808889804885949245426549616945127208356124774210286931848845990057174039774302003328153710086289703973495359977682661009322852024619544833528151090447315578729757179282958248294750432850615367541335381529867031803105409939272077489027187392702216642496522578683359015484869726270611086671075370001270939010111855540856699779235393896012295931232396663070021209768190411621586621701601820651353361798610037718187838257256120628044183207362027349440316226310294101866622541530094401396398496348077088467209167400049737081035776211928912944409523352761592696392436309223108765347645833918989305016388964405673529962543542727393297236785533826929203806596987772444406543597052753217191695762369074971296839868656258545763573570674348651894457520808519769419141950562183807920854414186642216296381894879948505656370887255826152776570325470163295410646709450116963071333190012767365527491062571537999140170294103402014638125914624514078011662939653655141280533093806891433105501670062423102374810006649527157841565233843250766281009023967226771489086488129978587976626455302933797107649469265877671252542654927329129928021544207771176711626194205813268127302983127288975909114768574895195935169616863537813396395979124034146354216040484513390620204113388370759571353605285838088708900140386076177590182214623193472276916737774681615768754941595288594394918824985221044655727378478552727911620605385007529461067909215457602084161560160322110629845390539033377781103786322951796815436542373858429968828243340645513572826352654809334725354701788930868995056422569798349793413202175966904282353079267586706514520485313375709978657658353813311178455689174561017055358978676513773317223448868751531470257468679651325866584972187914407061037787628414287882681273498377919828497858510371594935390760992391783271048155099404656771455845902148506369544702052860215432633108627287625378688175562082011935396276804148720648378015116312542159673382823156867076684764000003308849853351059366791698153261747521108011415854906007145637126287138530247217321920979353141361837304579781883524894911658997550314618600483388182086735805400076519108636693717487881059190986196823258776622139939783945928578327692879618508579598450239057886588509299615852958459082932551422319810620842153526557382659913564489435184094054384391361202364069544147356463034664836436081613335649550245914659831384964656119802404681490320318244793521553497452020285493264262384230794478357874384514583977937536200028943458500288302644559534361413865975100894198835888746596402371996422116512599036389518262669979410361965398262374035152551004434458183859530607035379100824536614667910869380374514958616253775900605066665301206960306079414695452936427635578743223746189155398096236808537260618068555631893972311726204722382416621316580497958799041326559056789672652547607000424500989120646038578613202589365995783526493743887836408756727997729259899730775554370855531397888348911552544437959807165263433633425795915502306477043936102572197467339023695476387875323307157892143891065970557094769936943657993954829238109700275271820187445300661351550572705776821922640463767880719474028213099726782569397687120428117296611234810655167064753800740268379243669964041283880355470285291720763319526567849893402463519172463548726003849358984713537465483465033358845954634385393552820089105988477196669696012909989329830329290221544775843459937095871717847180704624205047542315237222275764923259420291595864882799252173298693320497355973667905304379980676051965016622572105526001911232625286160458860168308484783340842383081047670864156712145704803534382746752095265208171790100071196850882557113258080371249301284194781819924461680027033023464588914268982730588169848866041402095569492156170738660032878437834529555201857492463243687512769297594982039851646332010535362597489985004086427704073987791296576839101351251454528215174788537272295439993062245773911510459382592399381068805975422783794846274020515293562988483247447117242306969068779523747721195845554034205555923952666155833680116364732719331323925719608498090806416167186989431392110957695860625897926201256061469413026245320831360598796603343495204012890207486577199814150308585078100911846842649230418131582860276250039813184636727760790458436774283972700262954447391070941407274278782953257361393514647692115303776840468687661504837046293830354035963497502378604615268185017836987465357548184398762534297876171339148854421490520809014382940944302500000620268922421119130132812891932883897937738744670059178771215965573600596816156514779311939827537517073263711003601779075254819279815194732345319668861733553316349720435969288363036019149769436510383673389568370457059177112531284698325975007982561527896653312204827860390754368245324294843586179780358668164695321805993130435590299505584047135493328193406471093783258291951685555224198037249215859229308163879203178284227705480317961649859663032428574544266373403831723920534982786138324636597160665035797165765967305105487610720507576022304774858811829033114786103910957371766184014131945593762725238991035030809800883986447829878728414500530542029705823202346245724800637888480421835194144171991713577201704220507708159581191788154998017689541544369979853040574829761890559413646978834971619597224877373446331893669767632402260127321491147241068636752423874301232729185504975867502953627671582239981712955361589401030448142725334332607705494891791049425795109371997447271152625874639847888271967208938061662800364483500328391539233300548557444651588939658009398593866332943561638096087049189874136267791753368642034477903902603398919131790762419238268768734396504891585054836894188401388889772864911709350289712431399581220386197756109043551635503976260810399503447522798642732494758577694023835658146733420241885418289899359903482582724908919642201846689281394670218731734639719648234046882483029768155257130735108698095417373073008928022331110264095582019769662822829506559704639860282626979293122161099495805687932755180099844348672052018290510401144629822256281362890878743178832151831029541644038156977210928042725487880491677984337136911276915799558971794383709084554681568055168002139035978800908590494618256798759510885415415380293446660338901398153411693861483035008149098358950536425513218930430499528170595325067873259076587653934547813758978664636201548693002503143906825144302848270456067321914190103469463910246873174805220175956072296381445426228446851748102775942431716995315587743050202100192114811913370607762152861486601451585597705162207016064660373951830589891555620300955544292082682511308384666674408396135084783348870740488684176727839110491996891719983037570605587415319559993795877119610029530292479322870919419197617234629306123500771323055447875537184325885022319553350329210861013749180582554283123538153857181951502951311860615740397544069708844803783611573412920484118859333267731437489328554194095900412411900718756898967859662374468186038883450993962832926346969681835259417022637676737293099930745770199174685605929643378505380259427203661871741857110101177400096992180338430249204963545110886264569379489180639233177696216028910199952636528834566647365082591895170887686662529533502834124826515528236793697299319702164906372821666713398839675170694629527064752299587853162203958506719993277206106169278963938463133238100994170856560677401469933749508968727172338359534812407889254018820229636424462659713530346667571356709756483763974332997478217780227773538378139362984972780995844182075807534678269419989630561512088983346388373401753694095323089667976794748825303973448402159944243455809840642300783018509484352409884755117175573757362383999801690166907272809933884473049098006075150859371583473447096840739111196257434755810406408822557241546439795575039746357542837930276873886678996147193347621232046925063332281332755044564207777269695129725832129521507763378171406863469112799873965861188824996896088185417761674218333713014526572847852497255259633709798071626495570343833153375096390043586808736774415724939272392559298754660394915768764390427436501303212953171383397187956336113738482888989580137139315388109711909595741150980709335085654297650553505706981758336968308759271198275789872980327499382496660640762475904317751278560815660277529396524107209505689263767727839377427460072884232537163240477007506838860336466238718824130758090043546631329862507400772641482470160589682006035018182869209267188479302699850882082413649885511855695477498447184553664228977198932046939403063430321584664203141012323042335610094119247458562083943019335653201028330759999745373511963500341701133847404954844788467615691798638044962139505414081969176566856001505149364215628555702097267180607023218014370666220360396238850163714131245202465024413097771161243157504248469140987730675132036557499068193505036246386015006388822750225020537806903385567669868241493042504571370155090946161889010088339109145327362322133932883042146701808857028651273570232480889887811598238627572551094977504651524775850573589295038537930708752140359492906717965164817476101514552745481857371438605448549673194506378472256946075690551477167983999580454315849499554154805516268451497283622385337957695262683697234248890902990697311011027756027428185437874114121117247153214658290691697573103117919181903298059169374101134818650114047085337711308671559627805419136384938732044474979867633912571167306470101761395805068333822508081801928476080041904848352015921551956045459420578189394537604741925588833342799455999304007683394080967936922355281053588551165879973252529627169688614139800474881878155525628479942162955956353797742209859526939830122703483682396256137797791607952678385765367943082378399552258522126732084100975885146519847883405599384715199512841382970252674529720829213343020579759252890337715255319713986081270669200920101591013257073589453101313942606975755779625310791628461195697691390756494864915766492872190384900623107469078529509823524182274988659926601315006624905040025964757887985914501394269837365426483264227316035227808070316966558430860914190804936232252045404858993690674084726714837669978723421337403513177316676384009099128895896887569790429013285427502449506688405030208992449597215383410125750265937113072072388413747827147660475636127825877067518245641375636520490264445039253862201346985564708166260943793597893938940273393852569166156054490219750854250240654078977036312809842074992095501442168392966012559515326490966984750859798378964091119865756107557142873733788181337986121321959241421769535129658642769642543959201547216054561717208803957208350523810290447824249900296562814768927870453689819802705238401011190389626548984034235881792089916546296710177373378957491549086395599072501428503611134057571252950138258403242620432473010940194327358429709539632699525849064409236320298930900483580887857325712769401594990645281257544252659392958373440907256890636903838604441833395858545461715250782413374427083182850535529363499255366311345443344435960248993600119384008230440940404295851035260707683902201637259498034297333749765894874525603351310683922999947218394476207236356791351219295368878165000915372716484197308371764413129824430049100436108025475441852369464235256876444589505373628787901401381073199598757974183961957526630692588655289050591408286811727880713501226129452283319846492785515917336291637892800759286847300626212514195154554314929221450367559109523614438722416034517382991299100802941040616986358614962499886408533528758832691566041025473416574143263643536796859591897910544307146594250148926352135036415581367972764296538340646896638340850529093207550075923406846967257282049855698556519192273135474356706230669320720214389167995983364729010045289485029468417006397709553645805654096349361075002304969917274091830374591510299772360985072235882244235484259599360775191142307173473015722825441011840113497692931224747616281062426111637981747008548497156951181659494143598814690092440301510874752543933365115149633829350345601934823620792995022806502523876811334332031647437321805195079357405951391427928175525102854447163183404873165620225082699140552388382194053794407039769558379650701096957235638142337300764614280607753803148115210256969074142084738973686877426961560827531654079240073060439519019514087165966670156314184000284645951493987086574541804459678655202463264900543387867160913856879524089220577435435555931443600720901563660731133178923353632546718075653148194220769916116709226612573529143863724240643507500258841143559689125777018998038783048380973736091584388266850400463343731638138430959473719512364461221170166847325420780760422950826797064016102277247758309184721535646995446985738920524654191931450966060079270385927554026540291186451898371693585861960659748142989945392531981507633874480525047138627189933847784736438161191557936349763618411398316357518715049060696225672006275006084442131194695953269513588999314850373200309996839992446442134591409794469104276728019689317209683579280064482553281144550557108875716491854010596891336228818052798096233122137890492225825792796787293352789268206482975020680190524047095130634801209043571794081109404176036148399069526748069372907840223719819716489104396436998629214617769672864106766314362376362786847576432761968447567731527056974592957831009532510924246244636392595594910661357419499566769790913285824247925461342337048348064942964517466106845155256468716742727370699027503661274508606180938594674420499652230126962839553822167314658983083620786763957648789001898315598937109477948002661678576289145695730817223047794500832731923273653733337689972910638082245765571890278071946359591072642074749015889036580247153704552790533489926639565360788037553401391411666854502125474385095638129186655746090776025011688576260844410575229339124646040314263128181327035738646977557056366940605988001601732020391156021667040079736110144604056913000698127519707659692774292646043384876856377748157082414501877188049164562228163745970483364197691676025262950146657135034688355015202084948033018543461249601147282522595598770839181465468433550887225933009199170257574448248673238680305532238348827471107189413542680440646377257285230322395270793354493527535353628604031711887759417317132176332942887138925065128772985755377828203538187150716157028872951723150033543659480517689965011430972831565786374374740661326141440766881529412785567745280757850787227244231393509320884641796055060290045119586986610541917316220678536765440849178426689185138301677083597381645443738303381545147283418794894733078392514391479369014933388715610034103704529346537057883313298636625732274095178823250344508219268498997402302598404922385184414836018283196169501564595139892391908318714427098965766556220505858988519414534965703561400536965075452729559042864060160839237059328563476407645539710931079978427198788450677929067866562396871217535703954819920200383679507393417595996554009805730467479690741669729013675221262630178357619035377316606853648554096841711988129444210090759343887828977260042659968207120808550462330210923386037628856357035556816714807598488372680928626413141492327670203129848603225214798505614680376460663127343959344080357823479091199061801255153832269317802506821176661042919853309622912979547317789630510770853155735362523755061481396187119400241078544708527553643183505940316687742278227026363327332468866394035789569825097125867276622154109992515983429565110884471789370334533180797290448389377681570484522641839785439686027223056989817021897953216211973238991426057372094343461310088685686712052839944247003025403289413129398192659413399630558353990725716163864720355846074103577520709732869467594381425847347717015188396859940145836556439038032978826089877448824653293655371169641901733905391779366074934334736268735785294027581611038883804736289875241205070092382701618884128468486029950398454913068037538237894971653203235166093326632176291753702586329761442614637205084229923199048449073052337226075092219351937758897502781464471115853857957183469175005144124848819770953974419095314252941597357249545742360411494688076400672466144304969675547906943651283925380668837830398516156314526265172582980140494388671515246938713317941012912585354306858166613708368246565900084969085671949170834357070950451451936385620058622832256657376013228101932599932933024543879653072175181726732802561330301328614195921276892422052665273361410674367493019609774504902546015244815266333346113766041138866825842730149840269706064321328131692815469278532275685037762706604297940554994792371866735688225026522242475725052394936450986830029286552165554432976598494770316915724052955342637573581526380597654909528600222339224472563028080838308012698048704679928279854925477871229195576625679665981453595240261379603088317166238241021226637534811512040440780921567679174508222776493155012720622322085074565671509976876239856726533056707189371916552091072554037003854172023094918938421819306014663477234968877089720586573826652090598935019785122179577401039315091581448509743243378302566935426583967870482516093861704866078322228376279363241454691825617891612515518936498570741283745096879015033841921982711474686693908237138880447918793413014257599807528490733292607748314076562288134103626991061990239635702259324288913686321745071066430372336338772879608540690234105935783176092853057377821505156074763201466558708042899266658471402369466251792673609849970620095153537755652590891308909582377169115244356458264353199408500844628666466702274624654423203319596310268043589203001755036022092659928279262573417660895123858244949752310161948942059012451803169567719766016629240818613464568851185241753389594392187100624311052617981720261211653998868429003382339242248342331975870510407633474175130309588795916936708947330881916613638942795334377134949226519824268576895303021498350237790460763856197046833530689042386411188570359525108045986670976082576090914714896634695301001696212128461200685662345261348491818096383996364077857188793500098325097224379100780028426178101239775544479243194813984726044174897275782730890586211754040370747892230675248072800460388589749374573752811149749578004846912126974302450360097109938208048879521472376791926191254074855169729145615075065486649749523970884514787131015329698995470990909155636566962986527316700667758926392763252148435665452592283390637290870335567485540188480896853314655863230676947036585978083207546474838938516701157663596962143973380359809763527072085325993117949316656128073158722332945535354993161142272658200869122640390410629008718558828841509583035064331526606954316213448612608983340831978296964317102964300304049497652873819077360642823884192745099961126696340573682268450097381171677893195422797938442004868685308760884444078967810114420988585875862073548343620845895567711258867724570177611949134919903184716734167446112112593186315336873801207588715579032856282295762661500498012482668480357342705517959935608627223234690672842927302561688847761813648458485577778907831260455761015477673402363124579432843683625863479390742333811137750156215067403943243136451442375271882498951252022699522537400301175686207316538968565856761343095719310578468530491998413800500523791987970774857121579517240726458605688179404275320456917681512643977331866817790057436598264500579586970935407983420888216378918484173638926972321362185937545644550730180050509238421127126832111653198332716350012399925732419376156690235431102197909362416868111747756216617350593582228452016599572798925387194996761506611723132405197505412521576035285003558443495118680575869945740460251439957811321851100376882114234771097646224326419562763405954273832925280642561709401945761127775016774780892828971355627207237972594676284568736662312646917507064941747611465430254957409713892238217853659082827755841045647971784415221577129520046234322046468959153534773144838454352232992196745197242751770466263406989528203993573858286969844166249786102332825662475254470732339543600545974141208324321222148544119514565456077611326975239558835467134452433886732538389737204397462757264621051042356398299016214366337695099661059960646051360160531991008209465934363808372530844090091421016087119529614469891621280609125906124309654634902136294244707045811177682106378493414154462214100247828321468148581976292436260725232272004893571461080114079310163799311995214867595684972636256948461243954006733321321411655498763144394236690698133722593230528153837467281716430437652136587463812963035587392729431918658710615275648677301453058303816753510170039056257183219609952439020780874530959238819575292467870744962606716030853241732830186989327310402768583983877274509398063800023801309346241331776667796814744738568358347711513223635286236823567158410676984657772096568690803119616299142125095661311631848638943525715804530492011248206867138784940536570325261165312901333090803130516886510776041344477787990024538009838846543617024931738234703157694343398899685064332201128146800966129378378574725722739866476880816704744404496077153409515043961528096227609722270205454194581228972533982577022444719463847234438437110522383308282148767412411354563383802844891090189614053045012238861805640202885075842928697769621367480077127521142962357123358945071739082195579787291791809906276425833419077175392176079971478434426462003813832757229077134575188463633771677543595003551745271079099740581288634752401311210538384345868536486484342297973100184101167453864514104792910869974073824405543810803235645449032028934371038220449472334620564925865559897809635276871501771335057467245802080827875392567230235707712771724178770429215168682933465136381756227775595359085589447829294583042894835403847938258688551961409701748073008692359438678009268436897009716084745276397241169668384386831272768592502256645851460397400872077768386502136669406522627429932768379086489577326652697421017284391081342613575293652046143149834530417922623271663513474408342025139041051345920600245515049864504876209797042828664042790728696725022705706175373816562075743521536467157509234401279611374065830317678121375876054830647933205152088785340942915746437980402320415466799929930792664957236881188172578260600351194993547206926902905970269165901464687459739084993014880906182374737561269917179146966671461792512940775782865601796883813460941772284838124919154100362884234957900863604344183754109292803508861975083082156642041779555848069986689732769401476819680249093868759703072473381446617022012038167265707910310377634563879987188562493394070312328276452646769841599168083111046617876274385559482072625841760390682431948999999421681934978399033679549939314989850790016484527225710771512209861972429342224942349004839389767115689005296317896951518827732459313760567315126359459090098699891392426344454669234059366152808998833384518715216251147609409657300554425646587580495346726253819639220358616857966451496276677820987950739417095426358546385685974748444296602493718669320846710772190701629099337924779124049183563716153070370268786731640335937184023454841297920719477583777113265821820395851614682641010084866751514549483064626034888850108965138177612027922977567141570529920567085787332005617396029413854006456994454028896394029361677707873312113622012718784449529695596222968334929748562440253382266333478437563307813350296679784949961300351306659075549850880446012843076893597213342201157664088193793361908157537635593690085339140014351850792913457085616257440899672217089099685731890517069476065293159304720693035935792633116018716644020543795037661765026537464524194062240146923587830633705863172247687599722750793899711621487223557035850406153172130821594599094050133325741557652274353875521401075000981781986456513228717547529985974005275907653855075081955319775613044509633797299204449727381596815526819853438356159876293362676657984818193676245024681864671662556554104104545208750896351869501443926630406262636129351452983930906082744780565518969242852969823802734963782493891874660955428676361038330179788631480360566532622082333372550039097166875252669455195789174740685797295440285447526760399614231150846480668246300935002595609166301203818188667343893577711237334907365988603656176119230502805584627684033774974091275028376714349060100863102138317584143229782331757930194190586493054021484388895511803302419735241156461758478159197666182896241809192118265870586907553817207471266687830910799765181589449113268655305230803477865118308745496578689988068866889426077274387117876622673517738730864307833525839249786607078208325650173515252368128822500645846512392642238834713918902489916043783687530955291593579655266670851702108449835309414917114692596569971661870828740527962263879761730990175856131738784423812547669694075022490172944528543218800013706807097325474045999291179223098146611602825954075609195907757132538686564326022199464966299761753666202701929789579247455478887735518846048247480788224335642524769398650290686156048781415124231885407556942539592274504972980724230252636646305303223053965749049843303309460619179795417323336473503879089001491983035007037854057566520620574509791350517772932656541023134827787375719787985485034248441754772446916087736802641538340677868050363308888632306391883151379861014941119289604335049849053154764741579499368343397424095432532348958263864387304726256122608263996478232257544560093224691404842396947946485183887433989960772458693622486124206411704427512886948944999770723622025903122650012459031947666175222087152463899612611741301001693580201953382714819815326603681296242877880294684730983660102351956816467827124323110819377593641214027344608345352908167519000305779112842912868388042153112063194943497683616567070255399193308658960719913763598111259844235037049026509203372677331790702049055827970249771405451762227758578723837675625905003724995205016079314442064472256894486958874213738276516719363677715912237183437812643860668241980902949737942677623581525824976287033787305225013847763615968550383404800825796795238103735219265378000864680665936628315807907108482500596617013374117439935785377858857428398394905743133997773457663413240324931571310581786644491802944670384751837004471239553478054563588089181473678363563191298810748490786174563675988875312567810080815390469693660713622387710276865145389434813396594391072139262389499546005001428316513442719799790299912926788448397202691442465047539991689699957478806869927120212634644308186009162966007720877669559181899673737446637082691836238355345125695150013034370255722652642322056462016305060115819614445980130215076711609893954959017862845363345380178768143268496653188929876986809670278745933818618093650769183314244687877988095377022550832523845521061768617293005900815730646928578383213843275853511900286026997744433455486427201812058414741384241294618494984556453790550755431183668121360973672180229772292168448411528437518770754755620294821523192720677587697575699358016018416127490184892050114455446754275173569973735257959166814230855907233086494186029187987192695711278254076241027841053991149975069835098058764686495345484821963824152650605483840303216224618994862688658597805884220235669364723768028800071168794772901079843135172214002730767886012132504247109471062492721403122621886405132631118418754866876526731161834612400534330326767542989775217572950731293579959899755395360220596742628909439470264764499033670429777405631697514732646720638884428063690957959467309977603814464600563725642901327512015804682026691040479160769046441424720894988955746776773944079653054391477154241567509829822041107263389421209834957968904860452767880602955858723616664234745474965573219896142189521584879759311095396382144178174033677315707637536660754672992373244971992591315926687979277426870265514254254170795952640639841176187517022562707250913996389879161896891076089957206099208226196028726098334552917569322778718010314888182990321585504737126318891742290791426172097124638393546452623707202469092077074177492311283450421689096261986702842371194541585749382825019758691267132839561101245383591922176418234977014292217113907596778280113826915422019010621686456159949441663775077824760701609510859987314050627943554635834032734984434948586893851952294301860634208655144039616744449793448435646031523840416848406401377623498522591515073717416419997615110330824210906748274949576337206960110242957776695098718129033623164222888390138869173317132722596028106605505052218318694562324389465138554937380836730305633203572778642755988639243134668696508733905496033890568822172806365588922594264662639677964392494170860500001268676975107128789505142639291090824741760111260426255900173090223225329345436258380563868023725794112077642286480847354545462063237902616179103645316535145292792507113323838080372226394706192692691626885806268733636623411258300619109475800074229050251556343370640354506897145476551607258352501425013755420375826305523750184484776866570337940926475142268263761612863864830308218478382905504652753612860573341896365855696736380288851851772852710558985016695224597898239828828767137444694806036588180221419276085034377200285431409384142776817864682468703810567864996693514158241782662277115495794995762685806908140080908688001758907733078273770960633396333447411270793552072158589671909138801795897448524289388464536830565738491441225128002164228376763303269666718802206735716938187648485880768582653268369865461127891025825541910749627210581962755114286646504784669447336955959943587486617066731437982693368949322003498518032044556258403329958506920462278928525837413642978189922023787418316011486144183505069866356150187052020960083461195893893347056798834606103405408350564276598816449312943006802079430177603486416872848515096045052226960380051133747872037792800955852758153363589274012339714464093332713954404162673832555454666920533527558991083510538244176482569295140003351297183611216324501395095350118889920380126140352770351642593479688586131862321514984036390188043877819133303935255214147244040860499604044191524344408244752607876379481095974125503060071094778535784366730923470419842340723639041575531712558101676183261763517061619907481779683058536723432553857178923152355676304141076247294639174210119575217311188143816867380155652929257464055154190980312090871799663139173579039676069261410586046919276529419751366226247843938819683150846038736466726277929940723992766853595611193283161632127445289579697932435885749278847323916301974155724887037365365027528012184875154197285155629358380022590338381838323688119730805556137505867265416832600754122866430637760759549231679567049307765445088820391411726620887560103672432699006381389185512182320019444479133551851823899578326200469147454181632025012411764041687954533148738149715884172327972079373485135403445569463607294079169975051554909478208373970851220574651436328680289954419616497352817995464847856464957971268942662675471144546717639984357759250806057601641597366341186081223865389148317507375918183542457899388424500762210306607969818889308785886889746636509233908996940024160305551628861453247182167984738061908411661323465678026502912303722585093946705441256555319552567948751900381875075621770283473278863749982262892388438477103405977002318082611072104416569622440666769066947084668455034753573133359672037330120307288222699512908058913277819375325575203363273399945747858079569201040191994256928315898553415478219795460300156594655810200662082446727128159124750305780039759242378267188330614567986830391177669244207938532615756601179436474169960099926751746613812036898831074508972362002832336637999574621418502361629736991612592098702179897015252418259940246797985858242676530625113556121212619542824703278850971710412748036245795799426795891540171036324719311871371015182803545214738350055065273249770545006853028755852400680058683450913642027565295972500798333005359219404738243580125351467944883046241689479101196944240540512470664169163218064769884598965317711456958643689641313893133675313643556936584532088769301113465899503036290432855894597522354080292142443841876420938526775122400610038339824418547778624952527523605975400440131696408337162344316331376148291763530914736791376801437254498533915187572567121616219565780244140010410553579324923977650454254401576229074651219079348888929141116257502205440902224581771258132220884618824753044912143675974531162504705744503206701314699420908735982445350871027746376099130784755013891733099570614043953791925358241107167829931418426825289849914425729909553137265910295880641348013773337600249647393205292722924097608982434749570329765697604326723330891457542377201436316383328652534602573220664341864837406623093708510591592022220783745881530357103741463094186824659169367311883408597135615048677359428472137392650456763865435115531710944479801743812030966364331178993116507648517037002395678921806513286928456859766402545723278566899338875544131072158093299350005412619189595416312029186105957453287490393719274279726162196967022511078734027933629750242299864065876821272407233704982199613640949069470327455878368788692783416341530232076730832688385507063272532880724237452455366797294588210123773582403859151348550736616125162204006420052200940392810290927236730482836813643603040388221806378057443178574743800424894539512840441274545855057054760904379068073643868481633702811460512954431874063169809146504021645775365845360542343658863896977573877561164734494573763552814597642193058758844480580090584146107863005693200971880991145501752210768815097990848720412030142092258090819401185871395860878313983596640124752973200314206743363408236016742724931771440235191075317012479219772978444241776652008528895693340743574618345520140651327733186044308361142126806916370026487749465481717741474273947270741255256232902734765006548638736944283420587822753756820362842876001931511260476676066759091403971966737809760538199832020889766790636828272900797224957254908424627270259780549924066659709473439764893565942245386088144203325755336617205895450412078316307854502235809296989371511785665544083386473095953495726435353835742300126611739205215069485656384784954841143280198363036258251612545653248088871374299371745552419914104191719833967175587319843591941290830969449088376937371847192624459715006811881738090710654476233478182568965257721270642111777323112704772210579951413515268476056502248073775164260208273620487218965452061693663170544842774332994794621609265753969090437884055374490547236553728097003238586805827768341757423611869306929761941227807823827385508769797772092556305685871846644401406329121016824101065297396646058802724642259353326671544865001477208668062492414584617155010288712807836568173466558175990671673931169290680155364441254310641521506608963502570019417939263747992039706077225827217796278777728110675795647100856253337342318936140407181093701564741599376767952589727465231246493610216527656634276331132338762188167731795807308772512732670302006368043602831862324748850904523832777055959329648044216279449356211257772785547823679194463781122920256409946526456166840693364372653101695192578115045893328231195161185410364859643874534674183386518861181224817647592673567580255558246993872345328670421591377788544603999402915278063172636328539669699979830143225165603861792034579973334411694011396037159927011996327531156589681981747960968433415211490085044828587706386966391995216377613827081210011600845096827951836785503219097111979629345105215374774580715987000309450074972879844217655156771787979007560010082024274774367013781228437407084911285887702309234288058071326481935591737819543204127161648863168364061891084443667103732889072409461083434097538026432720946818180568196927882103605219826229000744925269442887543462824803993494119832830354034621079061464733836418196155304026879249449324858269801569115544377748932270986085532380452643531356304457891790083310988072520241887773810737416975339165607646857649971038717985258045890310075656844352855044634213081939595997292755013639271165668852010267864729286562717160653332442866004671408595784807416625178077689390552370342956890211964930212992115856071909282389709325208849251743969816639192290030293712438019703094610722288818985727855643271392214465944755779663945425384237940395377561295423393133438049315787336585882215917095057169513811009234820462906153165062031237066392851032528207080385332292687492563688145066357744083371989287551061294347999456708895306727227924388601528483235653384637961494598778290517075598596474334901230041354856980820962233336170613537152298911794087050504382446880494290218131438590629147611613655021177198918701936743052218727774733547091836568400450198440690341377431884392097779620858214287161652459620212465974796239258275501148077101096646069053063138523674503218682089980253963726465773516796638063382642893656916556727558880984796765197371961437814982884439568234470001112203587807544837487712123161270591082092322108989907126649027695331371088717222170199992491066346095752491308096241820151734116119087601584585251776380061006970074598879993410944182850425351432507037970959586788596742322642339541012996769987798238461899565027645484053224008858914538481475951664877975862729214554751592660876684442239359752497010899320728379128698987698189075433843997512917653490598357899019815592559900603782748908449142469397928466620309204447945222024473594647911102998155978884890889351687899946529312239995948064566968769309501130950359932341473385236454354513325953367224972680991231324621789442749761425783347793975046878069938370992925891138210526825148915058453185865780631585270516652384234888436057053397716216064096037488416118839798663548081074731519067407574966130637573507917530187019295134578287911121402807190210224407739945981418176080820518432383238709372174683807666258970819075485883123137010223248819555962782363094961326740592306017778335445917511811273696302750848555320995943886289463738926732379019010030709261136291779073131173507179256653472258988126480165150382710590564575753153693376710974748578740011869499901132213218489997777183973436575404943585079212651952933612396431053323784890410049841691824575472743539414621083068871477152988965865515792135449212279201523745805883525255964755193218266347204004754465550738198247423482206069368302315311124804960251561244129166454426135192486735832925191359377391173853272786553456704305549835494491776039493639967664925491652116813727373334170273156201739454958163488200881664112869020284756768420138680626771007313976383414736632618285870010935379469992407913376453575123232882696030682585031288848576038458725657566021081461861328929165121915023595673744066502321025744252147927980750688412360934431105659810768063585974306670560988219811982126636729314060456636855671991978806795124554244782100902385673719896904062137200299259622333665688792189014180020824820144546154563859697327223648703033035270247134282031085851109373407874511188040261834155931248479778781994367789822389100303049900698947069957755494182613170683564426315991382495288722530159992834378298122670228335364946963283705119915227263936879997800095870229252111057170327291530433660871432268004322931256018735315025958247596057469709145270360885678045564058817902650131732947595809806720398777605585057497957927162396986014048449744486868412191345324683540244028699812950121139970900085740918362247556118928891141781183315710205289887972991274498379599311130562505692474303298718342210566457929005063818582312252644929534731677476126104505379013874600948518127458211807580965996202674986694407926492163845999156702084773711174970640952213568334313190339033322165438218117149424652966406851225828437136736127237530135873935170325906152071183417482214438526690894242353850543580986778517709566296214105033489739936593144598212878789385539778573727541917902562888116685320252926204939421276933846314193248456063060289393751376438538196905280888052145432240686504778160343496830840753455648226425522922687122912696256460047255735779097420474212695082557710517412092925415486720268653082179147641829447865603431730117412344906508165009674455214968527665266695812277440885056352198878395267270377615200329190148616529250275088473611078562279470958302511905384695056755258797156861799104047625063319590670389538991541692990360793113881709757283351142675090631303829114051024785847277748372323759673327661158605202600480044785457433782805386306948833231875631096081219697083664648606508109785582229881078405958046861813648701049855587985647100660330507166778889399196579464759980995928239143357164000926953054705885027502460769659683541421072274208741304502272758020450215158161919527490720773749013376275938611926861596101634780670303714874870737307468272737413427128561359222864013171924069458267368109004004694900706584590180455561575484486056808923345316956468603684732795778424507098347002516018562980057312885672273123410879133936126960299122077593272461149249288649328315816195008270958429173174059365960562539464243268887803037748079937239206026007729550421396982801049560192614817378878837174018343342337960811609129109043853276398229301604022974764110563370829025958614414744485650940755512370841670571673859261136648488439619502031625119376369822023063750814485622862331223278776588798078695453215317735887930683228899266069576866644822250005127600792764508627731327586956710625185742958142488190455642444810152006945621171162737461099434540851040153065726217360940157147200373512276707977960654827487560220147623348667942530911498252421831516059846439343551104044566079062154779832215582056416473835061492836098949438976295463135719870681654997878057869883028740954094642101358268680367055162789520360837451042176873095385579041121195773417080503242351510081870829350410293056370176264755384186792982958356477820848164492368607120416990782356137208045042221435608142922958539400010819326620347769815529317567815164445127906777399009507761926077956591154693440601812858988646371316445021013705245959199441531896295183602996323280376478526396142693173453801107755780808313463354492440559591154222283170277290434391715736686345247320363246740875362023565729991066783303318227625863641137383185771080697426978629029779764392646620932125284807226997293626620026012347536147316407751689790018534047013467086770190826138020516108927299656684715127251546059099672861571144076246839653497091555505699030221343429499445767664590176247589359319995579431539098283183118514689741936316009362882331896418497278696306182018223254568973726094478543992215364452050471662262340046468050295544100714354999393435142278492323492981846015444950859712328109750867457315254727680164639330800757046732474803636661145584959690756378788184568728356853474673064998779044086398085345988949079704530493320115899229375958908324961696310050396753484660746774908232472950707548115017285045518750832300848391702040992650658361216450830393931788600772868823773313247154794641687860275880163849094449036190746229472716605161048951167375089213532702992748642877898905295939059750973995227449571441822364742601605169881596570874798996329984771910285582390930837229286180372975213017351120161363705603478024764761760505221275476160552540206802992861471155178601710895690857567816731251321220537904099845943626201592005619268690707991653796661563543861381262504691498673134473769837626409805706650847044654621229259875785503807818016783224681674933351305118458634022652372756928728658529517598806026782988559620442087379698703864969001279509185614578030610219644654720176143568320432692915546057288089273070757329843393124950000792521610927776440384634507824379912718722635151131004286747361144876086048648245648689212381264283963861844548892152685435076663348704774150437547930468648054316282749082137147933948124657152225920157562608929868148538329203836353460000083208331661582089619296627854697260952847930396175338698408279877894615664805454247380664680822628002552323709280329424125758505273962157947188805586628917787531205264936704138023964235283732108339600469777694138278036052984359055914412376237413227013165529736129599498132065690854741882780050941882956200778542861159030657722330942640852755484915582294837198658525288965020227706854635156517058504382026863771256928003406359373879708126208884684450686892768683155561769337820437289431565872598280991481543901245901879887096919493164054738579986783568377987702339282797370270430404486449855053364759175592247985581498125865677459124559412426906382345472436258362487302207930601902315438104763969177779901563438713607775332307583183359709320961817142159031126804936107438197320197641437797022735837186785690834095562753214514404795230450738558672847414883978677254289091080445257089075316300310550092050591583337537612511040302609425853699214949745374941303574001121090580119064205970141405043886975287907276419581027463297610817218312589289539979563106348351304394887270332528262735811378499266219283413633700434195325295050561603336467743592144146284545154859235724387520241750806240573083325721833790911250802050206280082419785294209466372239544442212532137391288389517712574871294948868358996766677074636197389821562230415068145695431872533236238986963042068230107981929552785509790061481149850071845033344009896832382801178726980605734910681787217983956774318303068659710290675334776386447719241260486293786024011962292680727245533671932235020933797197861665405028966032469538210993393879536493422740709103246370463888512289540672757432591679153139013450207518162277909166823351565080801111605360820170308092467254214068598484440827668510495079603118761896978662663819506575628632610768524815352713080454798758088237993938433499923606422160635255432981991750144504195090428587388899136533379620653985025158047200427218559248598671164068370818703208202215188526361913221663218919966374219942660100940412852791370682628729182802161230660757370326925635044139765814599098514880624749027015137878037339816025639871871627283502325890476581763069125942218353291996599698273595577769513922047477731907397729986049458611380840250555099251083151880366864594127610047677158111906682566059306970243864683999001849222686737187127422200444206670243051531686473679548355011833518037970502967701569106907347299051108127366650314120648832921854584652484154096332915882193439115999992392610477611587158233522728999118180801363637316807394362753951366319950673172967242728700009844376431358427245449477304136042917809498717985603190730012063221163901985167079607828254264513508553804501111926787129892052499492405010484030894852940055101509047210312287785478248231402273869570564926630390895220207271129305176113202977376246019887712548930835813509776033376243532013874729745835222399174525481103593023517244505229406039851940100634164209067947239710987724171489678720717853536434158846225506194668434313980218186565808346389695045253674268289235149548309698191961441314262240127035303245548321920238987552567120633399549713988340305417044970514811463884064166275518047053078917113136480025283477640919278841237194172608082114346406265649454725321098176856721616859709771666010787240545216258261389960584564988906496210441587150887498725154011282779460357653913288651612078161065575235734612947773249266450998404567137771605681523590647610020123522014517071523698157101024906032220815570050212984527848187369018690445216594408624130515403122003071917315510129215071949432025224387131906131260172080034600692194205786709554373405114880545431357125751045088450148049927640059190560910479141302425841763407352621601929207343142946975840455405515260432025629599779920038390590739730836756766837959538243831463424614478445048515277917102045595914883187203217749627613646525692938137809334582678078492903556391414025670082615607630040068667851735637690595576881235642928726419598611376043147016568290972468705657843393928131835409466773003418949504786496957176378638031678199495600515399267419540594879686011852250469972881967554948097274218938857043763775200696679684373399214162823283177146904201712599091860676187245484420622831429208633914678683184594979982648429553079790528917043211052492297555078485022420422890616452558169071786054038013683642550435960248603759106211056755037154069397888844711461213710396242651946228580501534807487783001176793457081987758934152766216686710670874671099505354527129569351766665407831892648627410134707866787105269303975842993648611822206898329014799001223330887771812164306644666246460252519571680685679264893467055323855478895297482032587427000295711960863940025812072834476679197111828153378559566011026176927955558217102257111535199854750356241441038935955662385840716876219365187033953391025789653889970096608622319992016574712329922568529816012055218076405352464269347280066236236058464716417266560702239876262427181512311029173265571649556153168016603278890215745439231276517361054977848647253056526131395736721404535326590368361588213421174342468958865477639334105527374328836620100612390362588914686034915151396130351264597586259336436165018693144727899009085508296114895122195045217230589401357920309434383967878585794685159840748249427782231725997546921894195011053279855263817193528023219134823810125043610723445636095593669315633682083859553644862794555399757485959947463932619897156048222351849512570573291670321152901053703928942516834997526230157313241814976355751055979366678217607679332498389434590330473209581807439820613668251160909490080489693083009015921555820687659170311130937691703208200547457099635176910398136686210415324710390004432815095612291312035078551782327046567290876822897803688722013813753645282427714909660774698489719490598453110352435094263801237827460172193247206553834187607609740274237653026537516995785010063337303537904212139712323542663337791696840274085512195356439429740013782318471193703519860706031303147529737753875098675005292675445182751994424076371710099883455709154599403438690122580683113760438028420148455933336853348162563319453077540796320279827516653513227291887000834560419137564935315923097102550531406106725866146022030067745309475769046136246197309928682442475274173392045382450297231941046357440481777912752144808118084031445109895793317993380189484037567074600371331299954976270183073963256871248915412606525574353341206969096699435772983607255314851114164038292026525996898394257346317080554044577579393852990986932616631046421829580065790078124573672131522758193586048327812786657558800468198148346315597854445233843921376294805123062250700997192227855636017135338836613912721590493194053572368823150905300229406913269020947382160753934384522761345309327638230493452745982752655590465823151070024715227153657408376983497310548609078842304396346552508740866802845880343589647863611110865391880035388362298855436809510214473945767546730475760909756064673845747258402296507702126897460629999364605969262647438705326234880246917014748373101308609992032374442785085660798146877604466465771950541600952890983697592867326281590538888996956760358108437389920392553531198587785373997156006136295688763662488560025632107709015660873589046334779444182234946405269061671310195279476389961628111823294380300316949913798914137602132558444295852914797899846825904504199714884825237292204538556624470455933072155629692571480966046408329815639392943796918679662215979997912502047987984028027268065194461763100972360047208136963787696542055400864222638683815534924164366151412311603766639429088313826399292643440314176413328974997634389941039495048587127396482167849267039573164814555094092934964746218051002101367847632178158967480127520261575277543269742487631123107363854272905088277985915332434637386863083713488756249367946694775323677817394839611518380516831869220529952959140765784239347138147252003928277998203924769357947279192599629124474034854627186670644666578607219528936087685588306617430624390596898232701298512905805295826435563507479729240662720646252483905358326729305807450485091713588932793437380983133648973040118010371560000290438193714310418444005649999111275000455439873351488739597025628626908598060710271189754132275798462190203017093118045703940237491081953887416373955961826406319816525337195014116046906423300614188123184991963220960180036486624940114223336361333668986044924911470839520682422718408179315904192868401366985079249225390593028870417123482840471892441353338779919318684677136375938789014570608960322497353458093632932839309764135859733667841433446671324608910583515228935464041441710558855287528839952190755419477704235818662167025437389705829078437579563663499799963165994985667065582589088255939609696243891821006521778924840835322465452311215411185190247652067480265110472738323693133958252685965212604343487357808561834025326392916335602965508917593961629813495247804943020427558568896887001922251965768353723727025950017236672188800770805753973757719716159249441983282486100742830578149995937080082984131811345091182108548536314275107496282433975468519779575533656657524651132243753453047675978082420824493059919699196671085324548598493359518695059212563872572908964744099861436653998167497881529105820063530849191579123222511353708017331184388486659326372307069737472314077218569504656317010446232146755941532624323396890568759571599278491648389069320931185248410051448423690565501366505826822467480179331830932980435954490960602765729165741864011651583203800667718150121846657185929764295236518151378182399466411340465093417961402291606608889848496908429325730085221690447954248892444901577527363516704494758469151032026561600870875719701134316058261025433583587276466000595108627379030793888643562058980176404760271002140344726249850828451610488154617557513512973717264016932686257442333037301357458433119031704151964529772695323047063184194812098043212583319013760739067613770653968080348421122445225129088132510014545426022916880012600420810437049412890592841037433844764301816207099205965438569433503337398324747388135552939801478128150238516162282642194488759988546314740188860879891920486504930870421229002778965931878926323500463339692496655997544764845575624764771112132104666570398039049503699905186428106453405201222525880720527046283056078972547645848162352878669685990477550749810259616851462503511325263065408773923091954568626501821254593273229318659461149355451884688086486225539861262000803576047315926728810651063909286866195066107389138701625432404781066585777258189386434722046699678544793272877146547149692387196342407154435239077908387605307492660350163039001205409725010459335661405143880298445647210257819191609606176817843361899724438704171797944917990239057124793853887105672394867009011177622587885775332853625657371523853638057353154325684284628419127863444556557968876316227979778231672086578339375968442109426450468429999200006292461962559435505804351885184016377111090728193892733216802624530480194824068919829084558467087165323941757548423505485204291473875366706669362101637544796726512316693086900401963414993560059446678102878196512920654120487864556118894158861336768011325337431962347603859470721620396098948652942143990084836310330969782530105725103219394312916350869553762927019079292143689836717828581192159145925121687113496569061188114960247154337579063936344634545681806096391308664424144430740039467109363333792461790060347581949751707907153050238325265409809108616682141272279959211027950280605874942202050292055102718499488312774780372131795455004999239650359236344216592473774894849309109664629088016954406446170538131860467879976079427912530683648399893500633522618990457685007510463370381673329317613779678276164582063147717533266061825917463204543681717766995169321356302561800526365866429331098796602821970273898133662913685849901527493855538752026024433006888548640370145503005976909941678863705371148734542893389159227504645574253919320754325687809624085676946977243951070229141931766706430369859872033842497366677860163824063206704222902505261379527574858437132160254150326103568298354987096872324526125532104747813050363757124750790476119550100534742513382418894264020546244055999287799810615266221424766961013277707365137410081208138629796684192847592491561151529782452258433269142293796979997934376864985921191512911014596599269870787758129926550492046206268703282204339908838063831795772798112826970693471811908887742933671916215761484532820677084452808381273146619802997313621816304565428742896774326754271157975090841157255538231092300191409724849898203405549358195989174990409189833753581931564749260827254719184043431781223671626282924621591114813890822483796386336207818672877225699403335888366428230897922400764286804385991383404109267631633992430957071235113600064106051143832874234519377161178448037177305892877604940895760097499541785344210471844827050514071714354184151590524886410013361317894119670208786609661518214658381117823662575986900809170240048734520074698921092935291763166167419787181712219210210509999737240311849977364921945227133892950870352802590686804113286663979023737226923377645714974021779405328375097904411566613578125912396590335422021110513872362538007790180514315028830306187038481861361481060484744081040361399731556617340517765548007819537125831284169880076523129186027504308037296734752239820011355107614498810045002580500400022395010791582652933399524373924098519811384176311588937775223406727994799137640781150266473699828416508665910134639558749406588644923377723938793217195891105579928813699304054033853197420051786765080961757453438246809527208445626740443060712575701353905049143206244644990370267696046669988016301303972119969341358005408534243567052474256788672616745364634257943845766395223924822850914203378706302040242391672961969472291089676736540974240775690624655966486723679598924033519409973165787938141883284834005566234608679074558024922151775454846549819398869925549252385194186918753240335958707221636699201134006378937358653129908172308202747323139307445729948090981853154478663282627855129210584818597973765646554410412273667214463067326857169846635921779834076883200105097292548044480657586062229435903581629156464864019309907504441419219583389875903470163375694939151250794810364681784912300858584379666775726935762485340879051493998044779966162418144834810521918797449825777081895003857895498324018210580922350849747657270167425692699137152082061613361795847217254502106559970405828604151570272805194033233067103229651703696230339658994515015793817327840964027362069685215553091165409196113131584608436573695265905286179220971480072279943286844540765282571166710312359939747314031747855920409403254428743320339515282651841603613867817298764891678583860886183773487406157474122596362806776848014043988814855444781588035055775840785622104268458785818883166650371793331073682645104714117660278546488439774186512847065362670056397244595103303269543772918893947009407827172216741669956971608576658012205563182373340228137248705234195042162139695468638739355539817294084805629828907245110109426475380369263555697663550043677243809988286397279312759209575931487665610295543500796234132443598634322272885435050862030162847081700037105452717254851048411492917026100439919453250379766601893340048126497902865541954637647740985664448600273313575955338066634738056636329668087215435336219310116379740054723014169835950854441697316532437100424242219362967718972073294561098650253217795158709448825676726334780802075297108753971624577679795219389890646632296594576143400823091320286661528231414147929995966214820823930799168951648253078385722017148062401407780373973312864328627260037656146143754417157889544232323008947620502619062210390344258700864994760909856334178793865376852745310546073181797163904391223536782962468415215521808401510869005177040639952409508068714377454360511031356835057024696276986049425373520961766069015951322684913169390734420630063033805280103055481542791139078669563009291399154612642946546640879749911518204864616184539607411172845800975494325096428635661505942636938167287055533465398395563096711480210081236138146020102579776956079935890142248336797008013685113142690851216594042784475266728569750978234464956006892901693790682789135625494936623958505521555701465953348349887090685443389556649724097442891773259528223532034257678194873474997001559641977323344544699403546365855707849264500300958699819948115837510642953775557056531060786801532830405777776656393660728167140150296072462416430412660560078245480919354986590952457292665468659194964352042340708151641563529305377359995613138872150055750581924469215635886994722871151235948463907792038020733319881334144917580091724830376523927187354210789784890976725205765162692658888717546456323530973904731433792364880895972414373918352379562207120506832322515042303149381412645026827325554445813167682421658971456427318814007428379065933037029219876104855469218423701626480688611205045899679453407757246353699686664878224120726084995775896556132800669878013856358166836627552005708807066229782943019587645879273027702455118205686309785488446910973359844934763805330389125174816610629014602625190592413100151203695980968752395061039955658359810740662187928153536499676377350122015900873421649741145424855787347256418164330460982257939024688608157577942429279147987008110419164142539103922552004864808377555320912720921613042802449184291738026900591024664791545707466730149817795439572548354252780956299150588000986586272783929779701065589911538692421607167917879321891313513716335069637976678698787790855867014974419824117307235237550877047245310091922435934186030928760246347750666901514414081857929773608095012166296943615591326570425881627779978425188134471677225278912497501753081016825189127904202510296971939530809260228342943143374794275361743594982075807179577780110740778564647705206953954472982751539750582069845467933018693005488324975952530512174427467721348546187242564658707551052106929238591528735133456793671610720606340179661234876878234684220302775599414345275622005313434653626434117139854366243377072514317798475726459042252939782797636478388295365992171786629477491561984403847904180226224363575985452548638185541500641166940878208277995976765878992817232319697502319728416892122119626960421316145507679336035465309810345359892578926500422291167932691638078081974337253591477397360560836679591527365045395527195001373757075958376972080916974436686096028477586586971243279742795693154030352282778677062407833803814205040471404505470349244612130283342362374243268000507200263375324332656615178029289167838114476739584550203346998831832914686032884312362410659362170972071398185094432553479253059537286118003428302822569646923591381118325098139604621469644378335430852496605264157709845128244186188846541210061402091876727556365130218695093459850955233870224845316734504725181198502962535298174586481749056535587030793451815143150799276607012376564173007706783371476314214652303893302855816084063576660270677598957831439599973269630514753868367502140649715368344149027016695579619033077823164462966449148108950046895723403746392274691181212274187461075523935460942392212586941127499848136782291401600242302312775514272254359830694264730202252679626611466070977859614773371967308944555059482726642916722363692620123274468273156519617508717250846512709831226805915089150655657516752016031246229352889274006779388388110492937211235079819582273530724557709456547532360940945065746318566196756399761202178485893874885836829121231116230979868551031806984744421519336673303545328887275391322319339421970410919907672001410790827486008679710693200878458675954358146684794142424465120210393400050184600069864489906990847692976696595559721060591781069808865347844516275550809557575472416636370211371196707200109110696784828914432600676442387294635444294690580938047440790483981388041277596070692072296819633866799290896047847575461890162615607360049473912765735072324883108623905261860574886010630094951909435653098271570279518223541589260594886835127914538097719511974703342076393061230682417647835939207181856995358713643587221143545916010256211680561475495221026798330046177690029491283293248133670389672924910269428259222481505792416837983095297145222383061444714346631009332206656296085117049020709234448721025770805530204971013621548481384284384719634114622834160003961289491856844873264712020127133875302021360461651624414705447048112547761161877559633557566306908317513368988654715559438590538540117107899176846981359128382550135419019801899003264030693143599442342231984878260908593243122316259351298389613019586095941863404989024241226445608773231567627618722847010627660901829710332739795485029214976534949903590475674830131500091258351752446941896098288985533705766405418198429515335782156410706499348545764861635637816089418422943125322794830905148363685271417542311564146687304114275201756809374019602960689303472929305653679900507910414169926504167061502740921523104723334852622355012083336588081810448427901841061175261790252908524921488765458138254447629037577565629851292178884300459160527655363801831581799025408946821959535694235549731491554528309768234467975819047364073572442603236266964445552333208069027498613850895076100634898002062671943386304611032280722705675593652119982682160340470969261450877062022302395702972206696362394333425502333444403765891935369916374125753787614257800217512187800597807947866178083623453004026554937634352165060917746806714053780534847583581261895726485450888997835169499555093585313542297008177156980606515748232546613376549008595086535657244602037495482492718792380023395124883187169426318904316636556311089119210395934395663818593243150197046280300728761995408529176280548396398153701850400495809549767995162739477944021532682658201965162427472786955784849198566670915251499766600531322566529968419637390301983598358291405803020808117693029505360626638797384789074426508701765638639896724509720258771631254310633348222324719382469718916912105144499882385317570867658822099660720611222670828516293373498087315433813455956108687202104424791024746497313057258344472957099399829262617590191402026543073519784335923069025337740531588356667470012077783467099153007308820795307610003233491727073142110320921587019423000991406089928215284573372541780832120158464447643868600324760785954366394214373038517871794845586558224432891732464751665689827559246451587388930364530610458825641457679952640297388337875751384657402655446352619596631710372915227247242877626826231363384264387473698713273475589206571388574488905434845742591173302703587589293209621980673851048033525093405041942353971121024476094674550010883808020074027921861020987430842569876384441680661700427818639178159443755395977221758110789965952638399152396633536255817984163929135999810105253455382757574953662402224269056983163926618784351548959354533206984520557327016448626744201584093358814051616198483186726528972032165901335564796303276714727064450593159558519142280735452083240442188076016347225579202653624893515283442098136330299923099009203692741742162553186925171488495919755934060972690491545848733469570297222981256714925069291654402087512130511924083028320611991565855569801287529479415986210872105902355940210477067128762463826901754254656363188202080469883659182448335653289205884114678481406468397218366609366651489141707138858219940246686782080771769536844687597790235899412227947508251967932166303104243456608541486538895760674804498714275030500461560791601522105697328346921976976434156970854827418939668922880905755853545644632564847838850914659536502225201411563070331586630995519069210301663204382317985876502171307324795427571875932188058673449713879674580644210211164023705920772738563673170217098410395188092897713118364470051634142363934923367976980785744230939235143789680333878070341345956389034872113715279069932947933106015330394337379367509264666015411200505394712108612131293134461195823807191697286595566048253744630067090191832631672292078641929230049052906830209122907094544275399955804930748434596764479756273114543253907832639259819154009877480691253711750958289595635824439682582975723884451968706532326098830548817672266511158398741844898555994724765698676215329705517631788128789481655284405945409646682748769557126217518092848285605851052049877776024726294468951339289750080160099537049617556127499423430775732940892968640657851020336144834479886342353673613760646109766600152089227098252572301872817013188731446994851680096061091209762154504278415707670569779458827617029132963820707105969585772255767594002321624685517501413001722730877111788732652113348318860736237936506889936884002437270129940045371875426228031562068517790490737835803161142053204758333689861067243778898591563064088229828740892154157543914330864215561897482613776897222960481619974873943817779339385187046168811395409251444868612446256170529616568003809922550077684715563254098502614014802373665063278502800098739141843750497293123008428181255394438460702830038597472928694999881929043583703979646067790548281090921538090590902281213258072509004823134486355480469816370056882093452974118922723075058292286277894945559449104775939324907562319861573460192853058129278874206823941041593055561233449223258855829354157135654957794169048909808982252740970980939229482796383630699519741164295245181798917306284589675304181273088897878044633820791339250194456904289593445841261374616737991975547315862882983310790258173402653476252693735541309515988099591123324049822466974024682162745644565852329506307349718667526389926766200425916024354634636295483048129934960801179865048702288772177251171643503016563633863458422871426723730024117306853809435498140005043790064193142940558518776229161126052451278355642434668944147154469009825615115805509549550649801127760529054944468108882192500039313906234432306161533481317980574099813528369509808518035566947187170928003765610239233470472334720838390058717574705257114037674323390721021860595640971777887164039343917809721272770534532810721525653166964135140198627244870162495504501234521799955166275855039937713472364116633386670987705494656569031394959013973570095619601649367719587812950576976256658174452239207235686514272822813143658543085768749328800571220413970908257499530898325595535597165224117695903943027149268048239763882579697542991750423292850700483058827631034500649995113690137747688634197233815779964440433083029591265214461880025018182658471900387890404372634693449531312622113702230069854391654810916810839586969234472501165846282390080418664551813721557203752270484176345854607825103707183535294092174414924833564893941055663330371201901509866799622562420783571842419931714777157612531404182855343228789881653282801460588932204212909668119381390530137109024411184822384838861428461896357259912895104198874363897455530993564769394176335862247440590587206105954564872171408419694083893350306027707840622729447234802113884055218920198882101653724438213750189991108326830897777509700990914311152092829700475361647952526266668666557516188374008631670706180892821372911643946797593409014093859671495311198163991675174714044087691045580533956254581415537346026798782997708648235028469592953625021542429189345380819529953057535329840685337108149365618919000969003520389933480857100492158329701062051715082197649400577531648800234075743414516961622297719774398252247544945168127418050087158453773343757268178677684954115480949129917210909285016261185155342119132942780961153360905543450975772841678787829024664663911349488893853102067503914551651743993769469032064965595381725196585102684713235187580195445677508063119952084852674355216470950006395341191488182679050368857961036510043330083335137592057407475463687764036771353028707078599316401724540774025249396454053072175077553592955376797858755474688278240425431018476221544565496720375003971171802252798906619826153853697080820569267638029958483980676608378741104388963426212097134760099721412872898777276636935746105185689615102688431736101416238019724852459452980598996300541095710591597962777513584765971760764995099350079507833918415013483495326156641643437576756421657255549793249031195192460505734943247204808968782246579111081384510201513091783124204820180243566059670176579432536519390475847805442048891519307382340084795333085563309908954921560911240852969300738033757025518829264719107459639114021465179001711776552946965587093900250578219727515753348197560228608715549468442523882480833914585568005331073079233022777871224246953504787112446724217146928891728238468071304532045858394742133308193536810750326921708647954111059906199856486050257914597220577307229976299404076604622577387106503940467329108303065243642453321277729601264906460262247136980142247132005515924608587197647883768289558864649051548629066191530385776628308832312501593955527805527750743589360623475139259794548587046821743211051267519259237957881915251171083885980025066005275957357650414098122880826013199930268557338765276703149825265091331451607430033268913021393465449540412427773025032826983191749936408010114230627855851320560288499543385083778971791077355802312927136396597730689331921903573712804220994772916194531612036551557332334723858892650603691891558638315568585328327356286855641201453434424026908611836173485524911047518139366055728632984913298825026448398989626188535699285794216695956088140123482956407085349007924127657862073540168830927778410275106778729468062157146588521971017811572697412109998373485849883448205936532800462698658928500656764176589618572497592401736463677084419542238791021229386985849464368532898092872527991621535485484659882977329878680993131599971522986384769431971757449530321957327496049410248794460379832613445481363009077912721392663956223464956355116458981816464762843357869731027222467666998110992649630453988014875866110182867005781533334107793068852487499344887213071730845998251169728250729679101933046411322095332541296725071257298440757566535194979239324448382695285674707994528620163783161275895966051464446521682867751836630332982089740494532492751028413847270792034791245658354447098868558551884065625750022984482088467687083803912394024843199311183051406550200962510012226230447821386836222393024540039836584266610957405369845517278634677396645350722996582702063037748691182680237361569342835412148593805650853933740916459596821241965196395070342121717336530900228480761256394434143072669390173692894274452884441276617413681758667407516669873836844330873791609311362798697245869937330783768662575421500623057842896123290021012104092766294389845890850209238702781957467112273074085459291331566684704423557001758127925391902097058865837106159858390614398715339208456851573850695625123205060616409248652735201369532028162491452496423791617752361136421824395427786501402167610244801000254908938693444548036054825667479932899577790887126288614816187448336052276250427421163732236002355887740962646818149881078113914564719795160344747262284214092479652589882914354851269939348197517552775384118853526819165626209495078180357225366897424178063440910616702477736473829432812106959450392328889120130220609667695058095601958302655010609006087622246894897466439251417264558803560334318964919335396627432289440792192214017922076798836187719067424887514230033618481318172295375940518327865374412270808669702229068393205811309978600577850561738744702071740973338853894143107303052987958244252811530143428153742426730659311958057059532800055372581262502603701889196246829996270528017857532033306120372919944199724362793251160309404998757758100435740907008693984769513818604095304469598869085537895815086551972806232453504037668761339736046109151833066761563998316081345559575773630582957666788436932427681544008429159652394525537869126734490485488539859059571628699015110907455455583305968340582098282759235860423249317569320440493678917755611684565334906158399465972102880256518505587213466730194726219022202833254650988765144329260119746449416576300486744495768542101943197742904583188708653255662817264815528439130256123146932554269604019675810880244945268852369613011867681369482322391557901158007825834331258513044289768693356286107170073191662159490175809558548202189107538127728811415047185652622424610344972496721194676345548183242059349619372893007566636532261073016427629441204004190507624272980641470469958191677708930943357398500145183147615076667750224233373327181901646404324887939085598075346738178976808128633144043511150943282473960958585049033476361881084547899280585672534227704951636515898803314478895914346495733113024786490013873858978279669639127354393183611121641530965276693356803888970333894172824661876799837169804816331199446526318386457930140344249055340652010809318448375164933236263390112361518695112557727098284346934810139586978841019293240429537396501468375798939751448329974984662809535163319501262278450352208081062326637824708082372555789832103015671124740445571494943232581166074133320485407390898572248041975787504558266430136865534528425581706008589463729740733648524007295958835319596363886714923153760100507375651778835975918825602702587147570155107235682087091567565463116127479392699117395607734331107250189037814982073048846473961547389000909203797833229878503366013831839976026273999813378725371621070309168284784061158625930859090513716191158311600531152070654081250882223941136826039956425735710488499009118221909123735474879731368680890537038945982603012732680720942051902151444011776415031121981221475504096223541003118081786069438553301268922389953820351194647841114004484770456671292533838194647279482639680472713349345810907413593686927563972567006579063383385777878574911728109523804512954199271881950314750617426200244240816007665965206046791749766385939264735208981136889158702597215658657123823522549354534336126025885424960567315724677649076050136712725120060843856526314478811423212159442945699049190850606538534914933560076577945010906516735931133001690318760728662516680853320820699576779904175687606378242571209896206546559215772467106458110681993755703642460481285621049212371746068333153493197474084280310968321782928643055543773500542241309448217513660688464361632172018288766107823445059793962976300165299551181358127126018513112633590624556612047430684970531553478663046809559417767318592740488165587283470919788946708793325169416975454017911274804304266708219167796286984347500640069410105524384258225760776744793012522259544135156046159501299842360293289482339824643920224081252638325023503425723711867147195332557676101555078259806487056177730962366373712392687901040962480394610575883366011978018807845453038999303821163091639036120107538839858950510485452554885620236380444134474071210410493733563603221216672857567787429061670448546892298215499012496665879207451891504610869294123453410881992521357467521991132986367447384655795886993911759051575728965289746473296687577840905638662972431929386659114469516693774002337525153169619942150669347187903536867705102275027371946561690501423586139439219692796089263555354648580244002410160308958988398700590881054937376222259908191026751603045957068912109048927011893339706786983857897288755582366574734267646124067118699316942154028229073989338582477690018562509315538236848244412418471886258047889079076764262616713689343236460309259655281277041416263295919572802253042213770384546447398586283690241916532389464680686301286210219448325073744019578393627251247342587741769976318438566378945416502973101266672881458621080747979442173402773464430895918541346977173170864025583283497357154648932515144301473144796345776613673770972990081038541393720611597044674800445259420291493270650482102613044131380771411995783338018814019394416257081391905149022809072549971600167578624384553789003422129283911774611084475198887853129735418008122192575066236533804701156918120177034453290848040470189809094132206427483248179714648195923098418111826476121242568940694445566249386884478091893595019530125206237813963482522341828817315692180212640789886594155357298178939928795412557330659965093617565557045878191805691247897432630673013605917534234402887990729106952795548357101262161980471314869457489637797480989034940743327462929072397250975092759631998583967833724110423827450029202641745722455715034162697442916500677446125462186078722407614801673540547199746111299157523161928949115063644074423505913187219321181216198053432815452496253296606047195617214425833857645153988200656846055682366496845634003906498724364688205161989581284306882488912886850072520332162948977112249170260374474562995267219293698950726491987397597827689436541445206733846793238103316450069699315502339390187291587730899179870703474640432475256914828987837897469451054578768084072717812423115207249821655221165756702815873767196184099175775977892711691213293848540973945748677035987557614751571008314535969399264642720996884666151472254794263268558789792200867167788013508955872224937085995674810375519136271386815506917293583479631459728434465377031641438692332025998582969036265983868054813823523923526221755456205417208197172578643346670019844213569962666427034203096642382588123105396940713917829463260788864916584097259665918355596318079282768511542947492889421493079787941495819766661820180008007571379478511506202406825345977637419527932424437436338689374517828812596103925696468153158695282793960351482623658066824249602606163918666384527311492236716653312257248279778848729410762929859725635720559468366114206660109053674530282577250116480148009811700944180606617614046420880090138817939633659127826964076812266368567141971451142694333100311768751261007248788538278344627360916034878077273867268271866147323557030117909615278864994684532614570955603118087107347866576649332631399918549448563504170635903885676856761677124598639475316588862562563538883927785352261850489623311422232485384605329886444838801295293796272845959881601994033311162651768999472433836359731042458963644343178566526445109984223860822369386082264100039276755214214088599502936960792075966426721453140034491966462630354572078677296920304618882235722974490028342925178564905275773879231535864744184786156643465815492769397957188695572467920047381705103033628541399903655127337466294278980583785554876745200008971721496659902887378577899739120004456621183634341652134764965567303591964824450346286397916438705586733392866171437036463224173954349779309637446548416398803403154629182714285202869800695618299576809146100786327351971882129279873603991236972527888451428507371124149918520453282278092549184822587344327400254470593299774311968063368862277021360219274650287397836936204930275347189033658729893018803301124888132631797358551751523161134259854660548752262099534243995643989575302288563893151902853377031203451101743957992506673072954411557785019002171901943609970582344957846948486429377653005114934082963973160746363068508532337406011993634941428545600740248504217298225020077680117784187938318501626650157728296063774998348455391221739302590675798838019309622680451534595110534354299932082010816948775123495356150965268352097897616567264585566035780722253647593560158373376904038391550545922317298731373845709213852595900885886169173837643928759099619850141544581814178020008815417801837321082676068796625063230547398859291427523938947015110137489712723613638223208343385696785887267477312719145219232250252340248468610439498271227229666111790874243308337436927095185390924843373406329831936635876633277046694139545373633517995346844150807643284282739221619494723600901226348067164387679840171957218395368228524955920423771432624476173038498396402987564012119586296882140699187530663609766917092548184852770813993996957210420588353879110226605513223355062931458248663008804596580199481800329910501739580068927768371884653971299073156479286539317597924941119173192952705062971333640151309028510255163813749102845219691764640543766450247093604215002997626342492729100464126040737289764596756494766992836317265413822349804511164795115183355786412313485368212465829836031921765163810046816335379472751682920843219370645782547204438117911155500148634564896723231538227581888233269904696716813753271550409417918808912945846648714083468956446038490844060765348896628960564946099615759980846590672004031954813937572297430017872291741880971946902408695059324047291496003772032284772300998809274060732853829004193802595925076703932215308624009871068390756041630172289042371533716796884580659295241499654753683438631404479446396500592918154035962944145940301547327624816641067669802000559215186696110954156566607743633797418573335734725805848636135491484622634132689400479969007634937780210712592197067159593157926681232276470551772455970478752705355959774639811787019283055318259083278249754577874979569158842100631030920000778829876017535768038021975792467801855960656459922769363460505047679386904546234183992637082420956741603320979690523730452164053853292421808651134907375954030419138715095981334521067378840675809790838441112413000989511987403978627533743124988142708152299994632232625461708113587431830739761874318457949460204816818946944063499704483839658534003192742504035697538186210418096029667403229880601083089790730861409311463077563530314536480852257379295091668491879357602753301210125367192465811054584577780612907285632942911612780688541454979974216287869443891466786873032827803968296818421345556852942522252712574027784118215768207027563556407935801121537028236039200872894918218909830620657730304845113921445660487450272009886941013472920432756628770193281479150899010124525090568896388583758726059225331201119916030808127100065552265453304882081007371330489405720292056088090536144028063649751379369349944846679399242123435809715010754840712337247004259218615776345586907048384391194000536748308652954828197013779361086370675869913175062906120192131999068717467840569226678456561934881214050264996697917412703368427389432122687307416196299998112495527727060289673093063772770108247220273524466247349250393664497979293375673542688113865149410618334500963563860145641937967261393990983243412084805687032698423153086391672061702308925805026975903777766408019233253315802920404650547186050864547978159000284065194913082495133483284277015494513976754780450977310796839309510075208970490996546233823890272351940244394121412917185213669622272534682697321296621684761481091608531203057100915480186900321133880562020456675597632188282799922255232038824096991967943720402321198730091069400761207109838312148995377116969517542059384291499281185701047532974238008789382615828441617680629740982569851182585440645010318923078071707592900216907366127964252774660633124083147605911769558857936825647536710268466553770304770882158708374193899142765830713630834815452173195008675419219570534768013692654871719112578067991732167427894722475936985213854013145722806210930342593811489084442974956887589069615516017991416956442924565197112789044686276257607959982396330018205085323913359302607318725700317410705033632182512179174589637881648220585451333895880950168831382931179663738274796770440268162712573034519173817521363532037608408996830605849260965112514093549468149049356376937539471393562017152792781484520103425692365387785508183702588558744280889632924399778106637591808506474994816554863909682957421104992622191429583484129834933425109913203801846878819507033528203669219911359797197608080859464064387174836548012150938802764789322556681917567223921454348916175414716265071716549136932222949122417106668749049289991031007901921073092676008014333858921136130607313347960237303822620624140983678060001117995877023979805931797785424014897776718651067105188577007816368167116604343098056419141074612810321694063526190244261129949683956180781563688763390445143815848657507982866724900785566244467218658497478555981917253236724878223138149217545256658374244053337151828842669346366566825606291994061463912829012644246148000866679797493669610529368168844736473912526511106018200412195920207844298496056458290101220566475640355460924571820756499027459817164974682388234020415411533220080220601238537894394359946674474360789258004663912362133248680788443184554725753366373873164414431229350425755256630685553677387010358519539880041410943196478203687611739285661341493735955721680121285817487573095494968515122521788403497218085247648287184741852774528963871008854609110590521942175060528682938331018232438298733189351777389619448761891099616670986351035664031401424384536136082161766695914449656314813676434476264915049514389914866606532322277673575627731616730490998728964206586275431915991396047125121836873554919899977209336911539755517608832114264882759948103870971768904251089810705904712123806751237955672173053615019077119014790834763108971600500341990256981976176242240119406615288459850668782807543077513662524576222173254282828119645505405667920181438898686775766657469805878102772001190465282946634043974444537655506320152449670380855663031227434981759900023382179568964845796586872624871614857256088582729491179475472986638755199491892084593343226420658756642870624223416874761983687303194519990435851216244154286782331130730697507122522093978780952669881864005948642853664823332036102246894339473901029938960373964319926389548129877289032485615672926157982279278539980880370343895825876475359093726323686128912333126709205350706179196991127120552856927403840508525858167584860941054397410744245767590308007497062554912658451754035187575938315417512475393066296076478254941903783492893889347148018051638087330644681309214306191372744704198068050991131367135769828225451461564500298218246090773791247131745604151551338915994982398786191923126769839754534551654969406027628249210378383579049678153280181629267444501059284125413701533312215464928578298153041983890190026632172954471507804381576911139749429620388541467054464805028265179328499007483216708294907562583055894641841597224689784508517288610047363935359900761827936554000243721470671903903799110648352089950706176602136434387645306707179766904757330746664511381207698627905092318069068268006701898954096770751904985824310158202874728933012652596547134232420505811955806118023893070437328353865050336758697645954617871384126480685806320702986410936936432989766107966136764712723455810367040775491545026862746877363348710304946519642708316304979149384886379192793878936427365913153460649259206382513520250946891894756375443219631950248071225681892927132129150535335720965187480114309587745073884252610672564207027207454111392473410585169754760640310961084896314962303477590947238030442548903577323288669937396096368189900843123110448813668945715488165322546319983021229731001980011894118283660335882475229441933820672720256264297555876614781940226720923806129850346860166781770099758216183060508079995491077734440048610785027807874962805994868729877711989309858989396575738584232278210946365874898134412533857168878937442577074489902133362054568307010251833011340973688292327947994672836538586463385048500909983719774579038670164551327064386979409463721669806313373107486497570144304056690406484147252175028429789519902519581453536926356362016409169694596556646630148256872953140103898132059813368722911860191776181017739455735707410685705263337172724416941556444242481368868634754480830161769371740153849360131752825241654948455281555921844181953513510297986698937395273255200011967935897300898341110785392954696973051598547695533661584976643619490828461419927086970269331320842197294299628500675765491345985343930635579375485635378010613796735615605881075657395622837444724070775265904574230652364991655197946272392639072268751425927531188812755791986772803249855809601402367207795541674319724320606136953451077772256633288283643427564919170691935757683540236005620776857198958504252669497165813636788789244334089460446423840378155210140269598470529941023796513958816425513903466298919714474056365565244382576489319680583212323519863642821241019881383103034510656587419596575867018178963940101251130006731961841009920521027022063406959424706391523540133183842216228979736820938128823216535981928899479739059043972085607756520203156972385851625609960124530389848641485623766526414061796733436235004336141834386269775010554668067467991361149839138969644449630226431403598294095560790671114893020087190867006233677100272643099370690057804680099810732812307701904224831583557212357933597541800277479228158299505617159702529714691524625304232784672989202542882219820476133516457918586427294168002777167203102715314519939268489037052398346989156571636413396708901704873704606664137255633276615159408351223084607268511457049815897526591302574423364886825273737844079711298102241962566265176445484349749605582714400205273906044983475064566942669122466139618602509429092654101277262827661311522116405111817545284693100862646398928898809499951965434602536523457262946902798466710920179229264008656869216409984778233805759239360493255672029205104080628315388714714181677628180084697116609248827878116469908185021777670119965103853122339387212378294126499287272856339724237721982304173111679675404750929054900756682275172400242166112057074375446745533369414391549983364457999635213863132448259602914020620674221347402239226356105585973965510477504044776899647188234391350597610899421834886065779158902506473366935209886743423829943192701398211013811034700089449855408986297695203128359425003135771398995788429819874602029654377837149437629733467905799387225775015488110434241967014725755062014801459276683183067667745636051186251767967218197258992627890382549729587725286151167147632918363957652467283558960163628979203530242078150783520550317671978883071264637367035580103322301477301427644459323652820892936080961014810291696590101878484409603131197069687579621789591335644523932524208216691898811155110920983868332391450320875781522514641615833967070263872149721085825204075741561277051370726821668430063053965270333676438732444198716810379434561563746633526179139446050234961730135239270926935170506235523227852937366135663470664261881632620872584309820284124734575467870387941011519231196510174780024867689409457551924882069435345837141890828654681957995617124151163816593935730806888574135508231827975566178675449677745516016522324194983009426440915701052043357266826657440214263728897120172444149684285771083782777662332979685232747856910869822207229261024749758537537367253888181833860587356046258224419781147774270970727017936519138453291757800380282368652867484368987798696357076501614318234181480728630247177528632764739653469203472862353234206657828425016539779119826304362891538609328219027887682844120008344503922806706668702613874002697193488629485105258661696919108713491744242945441686547780201093352617011761511362721708441695064866966630342395763744749349961845647775331856531542918086558783030465102692525044773742606238746528394517082245145807779282053294882632486845041416395893697747009123387983799078844717261982515288521537625766871660826298925273047815805947247679518188084904864342052588487819930069997234477549970496977985258202329634558917574031835801828563778412886134118266494881439244032639621633619262848201531062596777541358295398854285713907323206578454554892463575013619693590530949862050140875284624118889971155162230916892743234045497058844704748363292547640762983317163998304007899335134988402125673795947143183854708550169907771106806136165497683711281166104126764441778436868681780059334359837092690161333089833043466402836669755534120938680495187804405592748462108668979516424703676554327843165315038526560401075949143618758382992642162552710223998604907174208734592488329505283207607483486605835762904128892649065104394428033737107085231722680017794527868722939881369572057611175355319190865821235540881547237672510672768275712295797441169120385155243885361920044850487870871765683004886690306528535241991912764010281998575910617952647345421044995309462140710958437696389091310239895529076349273574967080231212316508122307231620059999332857481714658195209328964047407603241293440762662785511647458269224545459495270733856697623978673604217470824453391398644747205947601341559857969079420738738546556420255034334060538982047871043291448929665283485994743082950048884348902617568530429623791301631337675673013346545971419031029940297712056687752968259247328745478791422284944144640321175569703693580568526726339885584419540085047838686720689502476259095734816961856802283461256545140561312295542773121711376675924085301541698334262362938798023717645218395137393212989815307660680228805514286726639116397813886709783932703455201838177213413182417684215823264229276744468072093236849871653916139891237042733822743450838209144268894424374787033866848665582350160475047345726200435897096738757974031943872192856504499514407749290790389807053923015041713793253517472321774378291577517812653651914538127122765710268438133112470093757653904096264566228815574060219407848414858831575717384873858838294838885114358559740862245491887523144347168136578750186759494168207416927569293829299834010162709004120658291998994500157590867845625831488180597355014080894226517686918823880701806659603487109094261360299286792842043511019475322814844813771394090435358717147409847247906806929820487243605952814420699279387333430399286105608312329770222520367439590427124163811276441460786555352777385022733846609154332461791140296033093022463470690476886298817638441059907585252337477282406465750792921497934426515317875843594383019798698941839730539548507302796388740645212689619229119285732770600928681049390440069241940838708443961367884315267009529239966429616280359915435136417210006593681080638789014666072153817490027304475543912134776692183248644737014151658781765885005293028083155262745261510416080439260590425452023951323810239892226937172166432695042902135600975045954433922476997694336229351351426560754269936611644210039044942456631256782441993756372359817303788520853543487031205438203373467250386770777669642343315351308402048946017738863534360802476566693890104717660963527518554448307699269112230456591662255513716601909401654447762782590607099523747600033026103914844936680362127597276952966204534556996875664163684199708422503464191031488347330575130719123625864433001258918450958706106144446010939155519006768338244427279809762507231637031527226299990519277114436129628907038351626846372975762341684460930541984802139556105483804398154418631692911762580780441856241214940420790443810764590540348552961749415031049866459388643329237434032917736955218850423419138136354886044112909981929647029780171424402306453560656885021184454321871857506526560083759387226929205713600267268250327250365327015904637451905341873515712492195453863064977997439489456135785545266058359847748726766690583928458228704311217682879803038349975563291021090817649167092101269044981462965448668859526270772289305149056542163014822656827233624504973919083659816459103427745894261716222261924274160223721336363856364231669240320817515879841578074107118385725962802341539034974462836243813177548946983963551225767379114755265522138554354555750010592265498749334662985894870160795054163233034442982755199050021905437218239900882751101465874724187135558924367966569509522061971653079497795751180723351797692822534920834029083437511588778437692117648835413425014461112549947967978778574231451486659876785608412385860459492547582125748858463029122926313587507518943553406793353860407109088794421939661430662929249316973924600936497595309477472133687479516735321569630688800235779338274745175889050626093686663784341938894892375046002849930154641859062474068509721516270531243764566282320542795199978833206063355369144687407470186597781998753997066447645195288279859727973421751428708534516149439431014710103999401486928037376711037590578060034315298720650219860820505375697670803653646293911859870570494579868966672662940759453235892267136168056775743521508537617264070311036767619070465078840263842922860282981591477064242995745986920892252708238227848899787850036044895217439191253024486622758796274537348703081947837466897918980730228165848653406123865970766307502176571133929976601516378904589006643573867853756512473647248506446601742531005219714529220258917178188061508184254118720641809763234265110547350422439165088099731558044311856500343236954599770451217860550346078018277107880053828383348100010795382464394302019224487086010385899069382319671766556659117895291567039278642412054106829269199832439889573906761840953634570626934381172876260927573772865426633175156974027561057351411866678442182624777483517025124498584030380448218914987146688556493113507659686087659139502112123802469502604896056936807018719994865370601768432076826385960027224369117294711028834531871229443762765409141860488841882153634933485859453608317404336677814485583657058162727977013960116250667829090129784156176423296318347315779893731778046042849422784072118932502567604000647222486326093913986450429814735707956879892796714668807563953597417503183925419407854084753845411565643842910300725724292367276358318544667713769246310912014616856688209308856748571885765547300258214771183847506899960583789972102042544502069405427988948126509011831679956518164330844666049467815821658594478871297121543895623786314651541563550644724178173255514347652180124443639589080141504665969178416986899175813419852857789170618517320138280478639606407565692975398037509860858435091511255391384159929595782939497556675847781945591451846224493954729265404597174691343976572887999506806137822532091195513237410712332021555672478646961322184785092508546143538369105472409218977963754516630933948517154155769109474883923865554615734844232112478976198361872076689064788013760415143453015649012512521313134723558697124542904779962998765588310756261886519071168890783660140868112298515481287002752676735528007587537488499153387849450780562719826733168665216398319021922051360199272441819182995294315396633800332812067741499617693064576562227314163179530949957770657989980714990052084175749718591213657933405304280257185683207156476106685073936500838777114069750625661143766215146771802419282531931002519672907961536598594186688521445930518166863002336097860442153114966461364830736744617762887066384669514394814875950930896250848684035764374907881829210957555022902580947110244091754162966572379019346160264271564517401902469251854692808468535494848641529943037727381290537108100932830865645319213367101527092900580948502373096471727216532872950863109449984729080291665924299663051716145510679031521246690758669077546305800317473395125221914498738040685242263188897752948508977715615990322929251686222396977161734360891921139140357313176260252551912609977062174101694425009347465172557023073657239613108659799695882434886626051088198548348354176878438101660852385218292574532471932017503301348596592338279023481773518565689366338608959461309815782260034376457525854932152921632642775147363676108924675290212426920877642759449785232142880147126267576121367447490972945891747353150223503807567492396816259815950631921890711064439383420990948796643842903505118280712333634545041235632548384618257286390280214713175684029255551093609055039608400614442175316438794416817665732346703347261542078811682222334540036360319576419772184805030096155876834237825616913620278547155775122970317016299921332684750067235013044263107447191433083531969441229084354411394871031040658207535601395845410684284217860295843008781032296683477914183222546710108344880464738846200841044634354830764239449019140955396588317558594362769555315070469397851725366227561053854345875226372665653401695675610003472378260479795825734594436695079291906389650298891703521326295923524830127105133775797581471454824762270350051313133958030944005143816520230532883046898865856326680436739366529019675160529252039282625389593155384522830542162934371800747634987989419588257548211881766719097213477882912755296202632832336721591095539493781850669397904917287305230990180252086397354434514627646458984021692372856763140907604533800137633488709597991026473384604637862815573414463213174593142485588441211329338533179203415320018135154364653748072513621355492112774826160577601668514248336466901359107426120373912280532580722049994382647705533483764844398361347752196250857554976130494691656848739249145426819478458460434122468656651404069809594781025935056057540976953334514327203049625627098958793582915855404776516908480346118535555587786440698365858522095513996031607132316009361153740192287578407130778875458531123957419057647966209159657084722712185250519574967367549940833067862773517673026137887211995967714635134342176174654115346698167608505826352973857623066922628885962806199388008078924555855917314853668949660265374733067317201640838226587750626005043431390503848808200433343217922408255188885980453770789974578372721604201567495146255181758956193028957283522404814823130489825647084504887449681285331690177787221249828620499494174759569560045857153585316446658591924603879910843913671533675398449086680665881184447117312968375326389616561651564906578818883561877998071414906110973476557154865979928296105276510941262560476946223637242227348128477380607801102954427414227070742919460002675339183684035572951007669282208497321217820781454263734281209649905611025171823038690096773690737522249792137405570903577973101103095115670293521725650428929846981391087173019416325138380845302154865175670600172114409356120222740707432753821206076525277583636892563448770439046838763102737147572977887531291326508426254515150044406912956498495709081523825630079719532104689447009460085207239970447829496272095670559883471543419277141923132614161496161359866081159629580654766288758580014268414692314772501045721585139918375390748506146867324008954169870834528766983058090618829439603445162806140168081771805352930873072778016988398862361333126194847050960079642852421718748166680849965222567162225834665107188326542551681813897693193454737240284257802772565747601347104856086570919994661323748836045529360859587047061479830071093195210322953492380112582968066700353136624955944674609818268661583216604311737194083903902215865318238708271516079221345754384585384022284678896167236939310821192454821631634235913695345203889190444601534674216358439052704528631109640055719493708173507046639471247009606247745674901764200318178895711057477478226860731127471086677164020758440767048408851285176384707298046682707549875005139866837738777926254239152265570233496353060606389761004560795605532346223147960043679458574867212844966916607428034281770737637935413895016530123273481924877181979002743687981206360566257083629614032558680951610125995149931957206442468096357315948105374346052894302278813631986486242036765446648514505293653803180319777814955442035241928928295730669148446477361283840001763024412870042698304316077613112762643179785853862148794058022408696973387729041258021173639818463345755454047447438676563795272248358110383654864619823335544143447976746434904173406457436646702495599410471939411635155257038312439733710950931558882244578943270585498684481019352917893299163647296691209016808927986573473605523040369159627019729441604316701731108842211232345460087624100383005049210253186776947212740638538454448888478877917864060556952673049593489201092324885176792309874735452186532857936660453993374875432160057052549903232599211546093679087004804153268844249368552958154598850767578029375703345178113039039851284163549054983374998531915180978935632783136260396548648722002749105548196209716871447830604562698370218269620136789059485176627394647919233652453803426636546240917829254310716683786913785990073867700730517373343723535871940945589824980265788385373038524466925760171692665205901220430204495725821750550110968026240421302595285634417654974007616621373060653862073465830434768533894361553965851384724570179307092914832900561765405034867513688385105848960264002946674101746728618298320181930236907948795853047849872947550909521269830662191396680354937241886780162880569120435456818607339066281667297357538156378074402682292726989956144450177169758230742205397761434489425228643869142317045739555502347127798891570515455150174162807483830761740205813813633927047060879319217439909404192730429673519086378660305681730605558446526328988705325903608452961382378504437169042121808040526561086503594929528734032481807090659520799612638441740078711161429663595629912553861809460547439670625849714915329758726955828866416457479922322615976075581581874836313423417866350902998705797364661795479569094000984648993850158530853862837145774871562077807489926671632492599014388735910816776507858556482171385347118671678084976896829754264620381788922976263140580538688642484231973192457938083635380979290061006952482156689215912834128907436281367723013513771521559434137509705129191853866223621230544282671830829016998519082083428991201526467101023729891171450865627080445106834910659971894172663912140131060022956719361175347000159234157528777145942442179556879075803594258725962301336734548822919641079478407827245288133451754054422623527767312443792018172660166642294585375949715349792506968499398472971333862236926558548795188559653437880325439527000730461682288882662039585682478328069143538739464791767288113270466267156967729960949310642262001550754330763025243246564663819254249216585687581239484495887550077133774753446344590742742173891127474820730617839919624447744325293219623592596706982430895473011652447922088444517511733910584730584312705344912581774494490389631592059690809635716159208622942157375514552850375963724622706460712081234375113817987649954832697171114899342996468045164232090831702554952137342934576921076185427045427209454809383233675699163002650809816389933529865926831875570618990037865534675974746208841884467848209135138851635942714104549578983548599609395307540252976486095248190908087609182836937414335924792435396629620137476120723229538876817286865837615692166485147159088735956563685659170409344014349612410204052716565053814502883810711443097955325609670007464170211055576500033343139630516198136217332756767551847011243288354080823261725834126133513175008194844646247958695105617709787857528315746697119071921722309591714019049626528344519244922987214115530298817907248775814739448302651885323646305629290938739605545822021794671552377325216534550562394065567045760443214123069993793122796475226622238391407673813006380357949434688210459294038303026295989524496954000276517664759782899904620258363403341584246996410112820991246235281946517217961793639359607587984052815048218939439588735414038799026417257568296725080400229037647469944983890506771379222983319008061422991956589388069915485070730836952087273560754364252877380122135583394441623162443603959158301968007296391549594368880452710396724503074822906475675343436124896957704742513534719770649178430510251977134387404593479376818708472190095827569305282309331095294949898061369842030349549989010123752223477182187567469865780340821337200853058274784190466447564022691227822644796782810400137053659013150297700454534926729941838996491978776594723868157050895552962544676582315879927771512504465664105104289308480530066172477879668870468075449809376875012179678799534545456145680557799434866515258354148549709261148349998437324005801303868882590009107390550831716865738856335908732795198499564635081887916057881679908042285803084569708337038232571320273243035116856224200457193796075813214147115410457377331247896608917884313611711828587363142287153029585753243709715497612193598364898144143476407824776753393511405142306926352737855302293799363186587826676463253562037976691618851371192212515060210072647843314779770951420872873875437910778611341766737056170435273503769297105310382802954680703647460210482068553907838209846419960457266555622626681303012517434872622032607987357097323406384876934436604855467538948099569188255303932188847444131498864869711305914401051966622764998327755658350112344267252988118418041283145886505276402571489550672935963588560735396189328933124913358647908654104564065118485394460070988519642551944585854712265932144119067133835558132010968216389181284093159066210269758755314090695580085865269997276646935514030020431159574803740358735012827201455003020818194719653801382621948505253649360100194977225735899849863001192378837124792255568326863446458426383909965795517545913571613769505287371875926013709695288809198980272168935762854780849484459768468265372116130857386366997494795610115253158284171876306577207739721109930882392321765680039268233642102705716332986649865990432886735146690181407567169033419029989784636884249823570121858584937364432888918509929609758494963945845075473651155482832801120996896929841094385021577153185582642739461528983173052032080150566744673908977150360965215608150848172255119355660752939323133632729916219444064031516217595725709883546737768200542027607465007338129908091279625895619821189679592019420017695788658077285203633757590807297778169515097838508627605805475262526724983754688144502093804072881636399572341252560748967240250548048240729018516602384661923891815117265145982516822111741301333764202374217368639842252646795660350217697117561675481205274934433111706423311135021072187430371993833206249721101721922181971697618714955297295798562669558651820336532791086456911146181617805850322655046379192363995652861626560845986151982272896504915985489622790842581251137332106162384856136131402920233685374153402327340196260963392447671410478915443024575042946753033362022744443704457685611338990518454518834539276131436482325066857398446996164382975755897381632004645576388198138738221298588769576595944397438816133548466438422797628799334519683408158723717211128991730439357701389128492336456728859942214985324173889269001632398938481713073359058696276506417380919080188380278363438400652107495385346693841897583086217748429226086277354964471505344168542145467370584231080184729509338071855798061535130798911083117682002198989187933714016045594597405797581306587313310557292512040234333046708365661221727838398238401279221188182448024895650212855936487265454786948370151439955593604512199466948373531753002131372940650717828427462079802327341316112139500921408268344889760800896150750948284905924396655162526685010623389694868467440368664475443922145381511610463661691442375934964403816034614001399264661607531165729866789095032602245712236144377383889504291663216903798712857453791999632251887274014689886450561188814950397165607458783253611018936312233804530741920969148612411404906306107185376094968385623497466340475002491169989660858252843052761109765438137076348985762359423892371374073543648703093305210384900233291609276665978655192168707451968157477317641569059667394402734829284117799339355551366051497157203966500399616501118013160916769271645266914049566324713790875747803119464840475108615379401213984746027261248810489735637354658324916994538298389554585729782525754628914408825689015732197085268704767510323114272517608607674060096981826907271846024265597362876894844791905429349175661181150946288732089664010474658914561838948332321477510546045547315764057598266711341943921602807746934051940808332713592052473773491057896643377586266663714478704813082334393979619372896448806934917173293506198533749854143888021631086396651968248851151532097216959663455819482029150766668237884829192624139584597480899157151162207231686544120362224688717218500734252662309166551742863609260772493399415046619422838482103002607949807881928247230448776890944001965914088814692525267095476022878368432494828955279391103705785629428147393533004116028183909272973541129105424515965579345597176419929936499582495234162536104920765950862517058654153316505794407095857633676815938985469875456450607160767092001917698888250627613169704581712959057759416584442714746422183696112706423824347152288446937844206712370736559194331635826995909386209773176441062949245164371994476212729046941967089606547754111959635680727794202420819920359864483492622349733274844873484332001433714165570226291626792293549847593713272346298214932680777381132522567540068751748689373914569755738467069780140081541364550302546806973939932292225416789008527338040802946485690771645227053957174195810178508417019276317333344791754597749509118623656135284531222008054993024449986037523183456450397694837255711755205027588066367379825090300569429942139304483599043177139891737283498502313861884997224832447083245455260797023067792405014256406886209034293034383527856551035595513001845758451390807676720255269565901514515844227677573240482770192836438446400293656971509800567280073918688124767986887346108320348967369225962241635055054906772986845748882047659956955565165654608403496707400705119332211770166420293276341831013810685315625653862133800758541578111424289773031839163341131621737510510952831348043909280345894673077445946372378687080533091642944667853680921799549012319262598045698907323957898739071101440557423590720553097998611609003259203732178362515065815426041134623156675642805734110461213823657898375303098641818037522161283805055366895525856731861940771471165465085292411699052384331151515786896585958516450456482045324091998987985343860443801824004391419951642649746432759853384189171411083179387193418102507460145054898207653489411032880497957935528301577841542420191824226497558722670706127413619267080032111477995134806578053453172299527959983410511319793856976799505733186704200582238399284210202446137358911320179947621157884007615505579220419532090630285804397355433491074055315199717448901621929808482984219763203667047876034778949121266377494083803606074550268734004301510259232771668725125748861826485003911664215681220999355281656979840149955125191040218181514465821690059944798141495262104220183880703326555001618411710813084902464276192479985671336153774207187622045524056536698819654496892351953187224175241254650137691053798802444072683634013759167231604987558745483219241454588622595301143767652656618777700107226181197687065790501895517071613003653482460534256353331333044751547577057100444342896570411031745814938819233314523089478943591531163781355496632834520037865519037979274154463194650091822901355753321063086434513026280761494642415720527722951473102328426536109943666491434553601027081785464262222089537522787749463519928712601893723497853720505571805345320023140467483844745169008038822879192475977622751953815642593226702356643742894891544862001728692879230293753895335441994543818873299303017720024200078435946130252198093495400459323038414222735848675429782218225314544896026390712425531937012814204216284398664752062593439011642093742314265854449292527323869905803254586372299205288663679655426944673910830285846538680840113315046573853686489142506486361975281932162659744011946903278188206173044131521234035030820520310553451646422093966655566735912749422064993621860782512364564120193587709296211820326865373291358401604094043384913359065654747419292756499637492713801379528277773807200834296044511160962555288563106806417929816046790264225618786051276045255378734276555852168135114433179148273711029968945343174135508919715138497567616617242743404854616421068810545888193093508808833141652210523350514765214161557884578799112712306976949758660843820541220619459059476440401666831215657927623458327192717414507976374339993016685756839372327543004521129468184552564087249328510125813782483448789552077807018888603619097215629310958389832913029624426010917839550434734278106490014542778081252460382035796370037003035774710974910116539480810142556795593203997687615346444520942165966480379149493072131973948963485350841228786495829993269106998925036529320252175167639538205718429403049852120082003644660000960879209081360202318119969998051517193553435588375371737398654743852294160823295892595559420872183369772095170564038957522862765142033006464959819884661413074016327362772281997332400472006587573369330154646245120758924035929152884489126080091911757388647992112835689310575341724495115010262710583527709999406669332781893748186402207293067010396048172433179285642028997174106427146386841785090946389539642262471386601050326765228769733804221683014477396282409119935130482043393337806299711130207290943954920199329997483745594580227230766046451113665374776883077299401569607131214504214228258857918023868557520451028489035647030656507344109048427423881485508904794242435719617854114261696107187211317329132156743476979408805924619797066220413144472748877165561221103273113328701665841268308339230585515635670462805180805495973106561284664731997513914301398495171511851231736674137436122815280596838615602315666892016195126274361019115448467048647554224837004672919184731091092894387188412190521617147759329502026870812594916609036114617458231117109811847323530213227341650085694598550633541033273919063912503106831215236498539775347021242463721096927986649423916433760761473095320330656780855602086720358909564139415450887396792865458382489672899079386266810052470024989118339138909412848868313340303522246999810784538671220490164915200593530077251176401724974925757079358785891684532208116754544595590398836907924264470874909222623919934764443788423782128637157747480186206660742286004234189776057130319507771866288389078028348854904172242037951415382195878646728017382204737865968755556858828558496535850920918167702088593379517190515576404196522287624012711341875220290023704446141246343185583864046092531055681919520570439894128751623445438920383858403229284834956179424436565280067608515463908051612835036170740943192719847016688624606093749722360940017656343497345936982918055906160910103597681193557848396334142968555184488612909276945845905967791942726923841786210266246985393952726864316783570444907934086629394946176023627496820794004465522396069070877187819713831348482431545371370054046638999548223643329610708397107533851267949196973137191369269771382813695871780698320661368295623666524078707202501463253692039685996269101336056871156222469202991786693413092514039123835022179924293422945669779178407913587565873906394231061584074067601275259796906219149498102746884717849455116275608047468278941607606877216246049751737306451799623276954781930961311422262847219899022720427781889888307356050997110903897709655634269837505890941551673436659682538421898853867835066238346032289510429114943141523049046456141457050894435741548661389268832458741766832408671423185959954498179765618635451673105312901166195539691381986049131102969301037401925822915443993198026295596674872295707838558683291873161731411711015761033797374442044824421836474216393450407606157430549098074982777782461120098451545928510549005549424405613853372903663381443844707530619930942132552932482328279576653458002513822680496396950457749670683640379674305497359217351094095051262657222229931232745445824990753067830618440244869016716002066300410066385312183212812176067132671874025679987028532036277557959145412780644148214656024137929248098689158727666163874635376746448833966117955633090434858302320373087950389781486802382906794381866665000338479427134023100800283294691016595224677138163817471320875670126726238882170350452867107984940330096947028447758845522208512486272022411684048657905760276028736761532423584687303985913182990478415011789567290387655424003170377395160044893049676452152364391120502910670172043915613784781612017099718872749358185757647304892834185693781799463214437771027494492936159347241146262384761861408058020966451782184075098027791405633455252323317226621602029558153782819953557411056516449861503311741215202030479342083591026115338855103325053592479487036245657869051410577973540542519025325079086664492406507343422042013315649215646638939752883548206892902285352534029185657527827254089636223848508311186728048221976483109420217080858291796568632529686769183767069775330984706499524042016671615854260016706664480696836270762159819552658300491547123500347202809515370342911422932824629704210025657367777460364012710825745064972058812902555157882444176737095480552879960357796951494284934169734843313299317515828133740212652335697719041007533541853337685280949445416351340240124835173607291908682272071345376553192031798649301222517329767438455880448755458248495000464269785784755503583240493443201767664657482400462019446242125079426188076727604543932077834003665233331567188490003946842780087849355321720773477674126548418624729260268580253158774096651655149055172616225602265987805926186301589623848097566688920047455449033418631459862263893422508926477720005286436241331050870042597378448901777671666522857111022317940313796399736806077444963425304352642599709011878964930439228105101203815321002715330594501440998395226071598994411762275684768840439999035590639093367027501653584147962208899086195046918426454554654899303573212797025410264749077724946532067511737931850135562926533277876617926168656283148171507961869655884579380788334916798318322632388805427188721990463939726434681718713048268098114236126015323792519904413141938898720073636413052556554445919930785740856205816881039596620048049485393012240680547342094946232110299666307021358190679966538516786571591411838914212872783173826986344912948665878106284061012747491735388018944346233758000295798513867829282575532157157399727947093888121991425766004457335813587686911549477506409222276778569008598936915185666746691720311379697518275091374636171974062275609571033582980576374896311266622896066792181841679502469693597460455746146912489536055248374030821145717775866741625336862753500392104297575654876362789267576967410647156390598816108271516971927393974479229379514251631231012186634197458893872300361567887196373939100871686422785030527549849648078055749911691109306427122901962715343211613871413835190179687533331987829572815707706384761780661310342344376417232332611018107283348379475779023020370100542300392290332807892152987682266612054310412812890449475478154837492036579455781536429534347172868473550151492117822448837133605279947064774966355710635448375560081875617692466269831270504245563844349092453281113473657667697095352638582721264284425763679211529145175125405740083903399804632865389070605282343424907564130178276406444339768068610063133430502880367864804030701376880328470132951129664635686482707410997038644095622906864321866188599823116494429748989925301797606627237938464764130088283419835759148413413600192532094700180404410561378525300604544398696912147471983178912924308884610794732079988645485537297315777283846682707753469248379695663276309509935374267053565124419413343873276325762593079408115397544695045086555554014849506813198429123010654603752371078736114959123973627793376441597860533081185852290209844230723605196313493066728968626449016065698048114213137805869113918735214538735521361609995263091509065490491021539875393496220144515303682313369080839838215454603968659550074232903076313185585098227744808329280774526626527051748319669349679513912404130104379514952060554803243600845008204693419114134252841492999426527973567255733940136148520146219705907835812997222978157439597768481003621955469874749477368247859141122000135338546228036153779316095208869046311957147843968506308118606241445264717704653781203115840651566902132584579970044753491602959579594280505941667273700199618200550460708846002945928002534879749583046899428002600979170681894881093243936800764498823510902108197205798048630359057871354110037069907435616874258927963985556610307411153750490068743371436906206857911516677725640436490895433280398296700238587776624198163351287447514459255474404599015792590233825125003444440626137623286417389990256638641985940994265549948075039904925067853649197851636931003847057389622293564228590089533606779204950122279823192250953105502433789680319887705003623528143181385817760482952833914445130396930070103541962825746793913841081306361833084392917068199900656300033484659728052119029762932255642577165302586522499056713082986326334814605767111362910805473806055597970841976974678297343897111647229088531533751780834242879043223962762889517878067804945800763516902066118241788011045499031112952207852321507861271489195014065482833681001750017442221806294236286810920161288635386704012017728494569221396595602428250418913196235201476954396266402076677241425383295884162686649627649646207369137644202544030303933918141461971856360252053429093767287318657158965728317951088027897736177977712822664673155668835649182477520673836645283347399814168491134576581918354198556014062595934025524999744081854993263853862198605934294771263136840459413887141839553340080295600581669476342708979965650860508175033438151733078806717746761125645412932155817261453884235904658586162131213926121439089171272855239083265072164807876831902149750586714829905222978986535276520710014900498664164682948757920890042835050526156278867726723938497420400392461793175179329963775073795287282108994347384229553848824994604946016921788209819111663788834836421878671813983771605093663164295776618051139516806576907701970488809143073944897316682889317537250243014735237143075512316966896593600127608796013979719581912828130237267457002033469418460901660026879667603683096663401418130652240506930552396396937138486389620260793203184227620577029606335777624246577100581925723125618641535446210123505505138117590030241105267811612586569804631251405818220094298781561490589952995198459914489217988669658322782339438898500905558789170985315979606369777353309520670115693123268170951162699442615529108635565983320072177211043954178338423705815217888698988230405772100930572099089321842538680604455746451972719226485141698969058750789746912463218596627717934191139063540120742418365286739582927156532827590274519506054383463433212022830385157241704308829424807471128949863812103761044861365918185631149441033488384162321933738310885530596752905278055789945399681172950088042464280433065252281647804178411380232756770837858085468433518466329301207832351882001349393221482939357810011466368332679738563149069623049514147794723378406703933836117147958891909019039381813870586927097674436077043427127678146122210380125563612934291950307633245462685968968541705097942713772234061922348485646905830076882874780277357139568704451273043752032218056195360557235232524045791552449942271514303068151504476354653190863598842900305251933938039171256295754645392323542795060420507469439690150978513670432583097778654513392316987842314063974880876944070270434504934622259048373938482646453703829402374666723975108798501900506983229872827644273278534999396340672321842347178434988487071729143486921215162227416223409666197654544780064369170835597299557903999592921567342469224227978102511693144455834157307130745964561055322252896559442522188665429712323829993634058258779457825679479659032735891094952701271508356960107745441065176005601859117738933793870789348750135765859875484050975064483926118657230947799362455420795686970272108242589203480009195247786829624568201496639826556914271294640781749092009309897144138711345406446172360027461895768119326573314082897509088382076874188889948413985685714001959835837511197591311675401141420130949856753359409456489108813539493202842192442701504571357851787868741850629725276552997982068568275634460650019040842707823367585497699153717200759250055122964789705202990426322344183283769564362038887721805894780399354613921730785339011344930111517565604364426029496896788905746396606205272014642618464616778079199083396476511917172508430719646931757540381345709107741368859339287269682515378495829335879145659573102093638129847055375536654555202972428722547705268673735117243964948446375258840635992528288017168065445899084615323392118052457560882349838558977100840788515589121560165751192267239060730449086247012555960701145680819098456721353204998978568105496569601785461423691838638217607219327855613986733889700736519854286088860784063564985015366379864289902099737100081332439336000154073333272290501719885156278056710679138483915992687627215571820157396984109531665695852617857572167477451118206794034518741725813486194872592806121744520674347915309979899584827335286075392515546391415095715105804098028554880753838461063443012449203811200131912299734293712695994744771707531726730735356325491245720232061614775672840077452024626517991029867242737423113387781509605444371806561130005838658636483665215872708399541004623174851766717702473380953183816039896670253136517015451410751381496934244833315669949027281283984740246459646905331418347903391715766559801218362454745395244190073649475517013462281660230629625319113915305725323687479703532840865999309379337375605529972050534867219921841870261928799474276579931387765105583557292185273085321182227642066825785733429847977616657503099662852851089602453753836288014042094121018333699299365897082382938806762668960689891891184652898977673390552744892515666734000837130807204274494326590988839469363988326106966172301626622125294290749752884560727555413669354395355210561931707043234115445084273904421639397670352111465841787856875421122023202418021410021091289403002006801861626376596666904645172492667419876701293628919831872135358255304896012522675593833315815094404541781244558728110270689713080714815169353493469843674885056015742896906811362532118440384819433043985728756303415340710040623436775824457007430142936468679414317959167472617299369680951497569717892107876268175419810679257359121863450895552969011104314426509760935204399097599072673745097227254405141613868563750022353510625267532677267340528513863009476433601391073080456886513104691149450754018257818388767180590109324372444983141412747594058466540008001183374992907992237003945805846822047839314906525691395872596830951707660656384267709045277002636222327238870260531091607380979873776451541020963964029632370704722000169347822974731978682979593420440144449430192843805050140807569722046202113686543521662249371995487210539545315893964139052586718359842351488537108323013174825368933668239557377194616984502365451348006943968021003220820621574820711981925604845879325504839602601529362891027992128306043309971540438905287473571173399442947664827896949981766325756093266980276143243044072643918881043559880642520942863799205546870005524045591643786213820410837694024393129026309007685622899876003247778126952168545551332824010175173019380021819833494251291647611282088505491221578766258232282964314090389428649304880229767911074437651976414610383401627653960380489733794578622695445447509925449140421979973291323363760738247901750507237656667888750932012300974500145077771781864598794673782577225822765202431687979800325974972875552743172919867152848740363554196196160814206550535785769707624305954014696848019552916267065970083017489088436578010147872776156620803005609688604680446155379595513435017147100645188862329267983453459178063600156062188406475520051190263068593028053621415976130455408291176538703932149307665664843078589994122432567926731619957563270081015927082448602924882088927745640483331321574712433142066971792129372365770174292644504958472067930731542043801223790385151932432739891068925011211778007922840676794712193976433062833242242574110463985466254330456332441939086672322383337609446247394156830696268169120225717681373802854975569259191728091136945319751368556086982204305652446938548162983213543840600191546029980378331274431668416485678037528257290225672944549801780785913703801540018193098611113963286371094270857682247022403172587504812791628378776728120574500026946786563015284936058735061753645449150684243685018793247016213426122349218391541097088737313008097655450901716345257543288818546643533829116557539020578387977278475327856712459719735945503624243343757198341283398497072809015094330377813657375973186063542045651204438892025450943829147309848407983890773522728821087024932890355615518065076457964218889514242476607287179354009954438145882503962460057533580642066053672146920638528670259547394424498288469354478303395163207423300361140554365728969645048686804081885855266174527287995407220779576408759085672294467986288355558993837424807219950962298849147434241137316909907270464967170786516065786453128905031931564136521229721770767403414084450119713901427409840129308386981749272379103136058781595012057887048016735793758375837263450005695400189504166014128923418333983335307646510316950541516709458227676576248149134192150706087638202818111373492435460979762096198961643747592647082456542847711755730487631379278685852642191578414602443613933827633986582776786151768335917553556381745138407266937001033091182795205944828395221836892939660393972841908179431151395634834081388397488637490599897416311872494296943355600584913048471226235530196898040991750777728753208425640813254387116788538409776662842789790017266871034396642680625900173508347572528623851327674946918245208242160833858722650587133252090015729740522518462380193178740901156992295258438281341434620982286444957949959595145399415292213123641877325812766573933915469535303955895244553536922034339267952555290345809412834881505492895329452650420392451808196472132319254429815797367635565814347599905014827501615217014271546927335294626682070126016441630768322127137636294568458979099950959616579545762458985408814643568880707337866214263435424659290255111631245890910880700210181673419338141023854806221332308813490411890216242075498318686935138030324307588098474909109880953668000463115856050284822855975780065485420312432626406155594102565702844728200406661016464192594201403314130611084719459631986482578079008408545126065069253328005560965244365975085671671686496133055537561923445912738729262422170949422605015253098244974488866193933674141876496286464041831306185015018379401171661468655610283883345080866924782699865853181886445717917700503524365121767751634609720626097538559320491141387124572344612318415106801683678541244270201235653708279059082093672750958556598927850796446298107327984304243317346578268187494227109075824280901116408593634836601839086085935334083067370841179287580241660605362706755493217441719821829380986477394503734213052855928575457791169251730460480292066983180593937709497612871641238390536697987632279262310266879905864687104887633044172633504052115593028934047878187176059345903898757558945919592948046423375101098688800416522777203082569947032523439009025846643520191419097695095686511456109930773882625528175298021919043256017845829288335806361727109742566237254554553464916116828851666326387557584609327419875589164677836342879038781355070614089428858820603695161399777251074445901939571363733688656039126071225275222537648740015887773878014210443486479281334906937088899950262044753774449951824395052315387502266393106744675946644378649563278066991855801180348231874334266435058577225879432379897888204206630585389605262292573475138351558678907233632957159428754246726333800786730986952839291989101596103826980703744397274602397620677026877552708708963240640920626093012171264369830735992882489548560670442054762724224494489532866158807135286832661157070787436696785167660967684028856654327741242454662040714293200521871057689591428660711802148067283950171097429696131904476303919111992448222453543096141657780307632926202958692436716810027210374954006268509652308040056533674570869903069997904342107277321058705136938715427737486843342767000369971792235211392061178205973278697782348647130021607624787362236030566979548393809813166247518245334603122953551680138633412447867322364621436944603448297619725956230220254073843725059748305743290692146797896412286153561056212912040572499787193174157078448966739995556603793247078380392770334338327418629931900267609253975979938688158239245604907161543605744482036918116076041114106989116307610740744985757317911075917814186770293993035664250720338184466299479507836268688835235302423058000832117591406481186469679058907233198142972718754474681567871697893467426405173105483611076122092352956680870016208646140831868372822784324497216753141685054305301972906589239629424195296730721299923233276718949314475719564028762377251105463270931239562689226692239900990363492245683675510123525983730151328847383458338804911382782600639183492833302910951732053105253018642976511003183235334701470490338785360914810726345183682547739749596964854366477049419961585515882559364646174837476612730430404866399289000857984996562410355111469404791496799000945946133960664962854534968019164572125157417887357675095101880596404435076720563867770634595165722207443444785889540743096278673934564443873619921937676346196768091812698277861506234841960644380272994458549791852998009514015870129520270536592700551445258856043462667530901487873933534472975045879416118345435212964455952902357397047062642579023775065405029332580945385379092841131071426297488070721566713098578981067502997499157120480215213130668871100042331420492513570081232828703051541662144671918131555892885776942684949252746747857079671040315005558368874510894588877878283466322221596891545986700568352981657309179068160283847729117835307286023023934023376598741971861458342310714456099098420621286966412448059721878209538343692985472248165581246555545227811951542382748959502342273536392135656888343198876604347439250733650819417574569060007243942998786620389884318266209399175628526849920630446129989728114987353770995883538079153840837386645759508344827957155195160085653337811659354062223598558781694707978431587437430146450909235292912571619712557504019375451568704328350936581993804174475927396571660459368916786971029041854916484388294311617582857661766029668729196992067192345535611508025450574672648054630334936113756528054807910837994789963739172063984567610465207539046320109601670867087374521633280348099097350782771417706078784901879183874057887144863055425147189346375260289687657949067045731967624388268099273782867962681929030330352456470314092831426951730444544614946385533007305580737381499486975865602145970141692329346364655878160963245109268012267227593862549773240983752180938271684938577980242927322464924232289723569676382990235202832272752156045600619476892818524805974982550999051729133006048187683549200317781634081893009596610039565897493661963887034847910480137065381832752247882989419233972248550007820366178080287181585940383013357205707946406405049304994667974300902889704021014280850473173571447679456240202337988237612736603878249618290285518651106912209019166686056182744307475621543907852751424024852650641320094296580091270573966141083904419820988628861995966719419119828850113727873378318496327071168382071624950924674972501654120006501986115971359520581537352102346436800998095152796085160316914391558828191941809906509013378618824162753629816897277238524807096468515374967989469674451083884215095528460432888667038659019472788814384140209758227124971676198131609475769394028689423628091417873826318374940281970305079234094466461862363249169283082048964637995922879084394222393579248748452064701835682848471059968338463591495995609074643517001981663800443167190610923404363800897748465182658920491710529897284358118022523895685494409561342665573919917562748877535319330774100153501421050810370663274829825732687162379190595838059118723883580757264582212478951742545274060546150106613044718968538477959830369323708922810553828812243820324059887240048173815050798741365437422469040344936648214005649253721904202907009211424079478313129440420943606872508747686800538404361235166181786676895406940068336209260103989862209627095738893249008832399611095155561974466948120191792270450592204241796795237168420063047629099541108850240372675714904950614962514384969473033984831612755557139383653337910415568966797209205960943642631197924710440736340578619354894316290626767976734441363038999813394049733281831258621674705766996095794349829653793995710210894491645421967499473042615946265446033448984890848340667612525408458007304015799380114433683095776163332260657136886201713990718488681236585001825313047864447827379965438154435049321707871242748357975669623852303493595108873249155237680599531610311829368027068224485332750139542810682783932139309572179344999085662574218302532111679487811518270118902263697542819311632124339390397441590505542520077085647336300004846229456691002378526036511877435904184008896759384600041987903138513435631990079900485066778006559553516290053829144378231676298394561466722189975924579468034186341954271414066735628676988020745891556274741326553535072561116770868341230643732944827811174195764798203135654826355838274708920984561439229174997249404343802159524017797789173569414512078719891515018829362127163630756800736843391946182461777844487777231039944378669620110321425759220436458126081208166629404202363392053446855526827848211212771505897601523002210933946838382306120992973695076873175198786666223061921005169050446180532264845771916853003270635037522587175053570198043908380778335903455461515762289450464553109507491771536856957139781833411720806124787167999311881129434660085920758026829164601631650164113894266891207164250343025575486589082092460127803923955579529409202386274855605974625854548731434554796927409569523158801516502169298367451968334617811455176029610855569201273800605469367189743376113855401923003535935711485764449990078544028407874966311118416199446475619834464847287486075865134501857367029884348822747531290506501814299299766373970740224188778340156768242687631540326692676609167420978663828178781221053635465529100522861552901696765940909255630208822282388770421809937456730959755433752263128700249681823551462529515380907931570395840598107676091170520664147513032539647563876250871467788162532110086986219231567520500175334739303360116128072630175755528767045809655393964902139732402441565139345935960009950372016468618690544338625826468259931548767887089463037267854129573395376566500917662359695594445448306178336141015655835680016218694054951054621335899674230715069409023571526879893434077856190392750784952065138305462413783619260653562464135898008503216832331890364230039511470471849843320401492587698649496648278467604245433786099712372714909465569089713249770819249898701074265861322134516247370471555049277213634595672370878853933151537451876035446598631605508593541934145161729557592916458670841466300517897562203170563899734014828898476379002819094613139633067533624125693293073512364647521281572019973088839386426881608420047546033614576966620932093567835593641920648763758103323090673781392725088433469803904926186007544996939982497403705646189029211349949716969489560061407635704458216057549111637615404479134767427891309939238879869951228844719574902474933405924338697830799397202572493980334753677738997992765111697579514664348782845895369374480527169476668802431172509375326732102156962810116104501221508359307553374292614171740083831845080508338227908062937503088245505864670006520534928109799114536728482155339404372505790748459677262569681973204285624827148692263801071792055624087217094512106697834377959959703378113484650698976895992061846265782954015335248373761110178824765282122460659437431325184828903483779821192409297949883746309352681857840490957994812783359530404835064367801248162637587944700087453181967237451395553106329620526361388730529424474047159461774647796574106303605578063459608838943322925906893114243275409523953060272475292203571811121615309187667156412119941268230974671834320130123416126662654495960045189603644787251180764661617902304328813459416243218196339534800477861692315477063896802952084564654187858927559191634121824284693912940232706992967187887084536885890243049748723194995507208041277935499137224452131568840039240600804317266838776856127685465555136301865702315056009447905463400506080474109213074208028731342841951605498079207968388069539649294576399593337366848262668800536842114279787064300551213596437794822499095584511703831232013686408235134513382484370664099687887153350044768795532078520799020564934107896386606548060584906387964299828050446158663365563974238477333896959581602307621905364190540594555604194796388718791661920582072092238791761552720459429584397032315094607191507996474327906642010766881459365254556749921935933431278404898899800982474588893152092980557089506888000974408283548447040273965315412286975734250063693621126940892313661557001136383859883669095438510316867919854675013184243518835218890266874981007996457821394933517289096013929540813460367200256437980366144680130374696638230462051217319252381439547556840666682243560358118468403940976460798614622728877379372301015779761287407467135221216271109816859124927021817510683588387630337726728161048426505312739689090743771931197930640514167645279041034653075313712982531082558904501044945548080843772823079595163547907046994692051800170163766670469675409023176517971203677080785552868365574850127179208096741731340333062482067736077766824718725241581249211423676831168963272386690706616880065253958023135890660004892719165086325677993939892615980995845534626071072209996519221590905152602944028179534604784846386118616170616155845435347359331643397827051110444728414169132649915660951451117442480963119051059252132037391241187480207040534256681207532343866069890337970489751438086076743915296948710293239215980725632293710531384835578145477650281024265948002627586022554210678287955332928270018302978250305439868950680880441017074299754515601151577153006223909424330448642154573538062128460512153598995035215469141202829238309414406820949321667548510480494200998150623785352620500905862474915033124227931570065088157997795723927660002279308826704673084127404953477178249734392290477040761496672072716135275678634111389178401606564605833227792897058991669878896445893844072814610310586893600418335114684660820564127667749793406862940605312491950762101159342552727572266078317514388767828454262333436614827180528077040054873388539982664068113518424979181206036655706055477330495185997680081549433014780131166480435286328831446909381387369889702857969056460407564392427862487713433471000100050852143649072831145338094933039347529204520422957894173502041535573556871984460524237599311096399345108605283833300210978103157257926590582253345289802769145476249945936825218557457290633696778134099029165848288964578936785781265608182657395655376551769541998894128733266745435867361192718798461323561394006814301274761003260472282354083066760980357567085194067763770874964248656240076691855080293234457254306812743076981363369922305185562743507131485233390634430546844824152180846389109622586475742686563985029361715056167800972789052465735183142395941923453202836939757992810530201687205663590790778432719645410216192399334887871074369137892957614281654525059861413221817220102418392026016573881291035988087402780532728867839296565126115649870020432920950336723751400844583091765826123870144733432000038430518351943444247066725380971160206217342977399835274483708439232113884700514918077103438756288572775744985809252983085081561483853135012518504634605028790455152771849811669776544999916896246819731804943697449605041118103058267132309016496256230350072147242977851610032091007103828380558834646903718881351041705969944448713315095200996321312690405088267537536563577986270956485249618929332486950165598747679291119113472366222061933067288020121337214972466606217892760969363388639926032581246456996633673690011317046448554753612696970969221382846100382996608546231570924094547737963728887959224139523998528033101836241089964803117619470401808542298374447022288980361199166089723996082257140787254942876583907640934747839218815426141870849480421668903394963953925480212484271309712846424484222782551363849951442611693481082876988013073196682187462661007283268548608133716785469819569307842987739668398800312857555187752152419450097826679182695754335379287908065617881798986475962501974037735884265954970658864584505256972900097734168366069633675338096512505145414650819402884509587604607257804559828617390507604465546947489753519742056057584680867312068351031931377238576973033073317152630802830914887206313745060972657663402262116749175498366401839988496045028758453059632918169825919682236896034523761459217394480392065241607804225856549283208194710393886329985071320309808889364509096790405235715831686771464388870771776401320264976594108292199072086836435197374064742794620608967472003355190207404818984904237565453632815417819129463215862225874127846916963964245824866211783392250980135823955314408171401080887701665053533828065703632919892256982311815052649759954360042418883759152562486177013887011455594501795045093350015650397377077524574335056381909487040452131677954478148114903300560066281249264271266144382915214930889234053411697399507871135749926971589983982701004581900286961446902288395256796574087411815244607583855905076065088899788386772699961163444532422654240817276977551809339350858362005019390991448458172851942923960798362160946900202302949171261629995113380446735603477064846512018562212516374428695384675989168507677657022715847589565920171296174453360447218834924420083218670005300524976511568652613104130669295069508565208809375848873251379779950161625253789508947760206711502217955527804217207664624307151711023548480594879182041465596215543222056997900325285260686812192236599997102463738723472111134468792736225165134910499101208003768804850567629376508262013219607228066279063626122441480097980358660293486131012973039419390305671035705756543225597041058108958026116936106513095661285652735460281054707304753479810698758800489032080812753367575495311153174424527575156611732535441146683408789379779608865547470288521298953749746634141180649252831631698973593049396264546975996026359573234675016958989344277866616464354914006048825159783412551924468458598096515771034080962566984305965969714379709031515523391704199488459827726454536367323980076939679271912763773635928008658108215969410119370600037373769853992435243892817673142050874037707910588052845483412248964261808395778011679643103054620210811187695775963995184954805229218188334268972843394985803445760728570111844767389808131162549750825558553493500498393587962943645739817537933938773697002029314299472837686453607397909134695296574606468043451764744382485032667884278531782914032736809468962981664807223783452634545539575070820215276997175078642822037446927440157242756675860591255113520287464060802954484315314116778113534277329388773019307352730686302586935885365895428548748885921283304480568858366249946146186379397494390767397732329368437099937959257825385900223995959377833507340077308207038354273848434157660755174444372497937431250132487663657521130468264664907281832382658001235540210108737439252374254838622408884895270912827907173709420517044596150385733999057077280239710862908354034767964349610066886516429283382951310508404141916540190102549859367541909551657532922621182313200816374408269123198575169415917610992704912324887512509500903443281071949951972056590126075796124357237773387163973157069589606163294334004358991507052389811703581768695939620784184713562622086184486029410939826336293127413866457770474257370273434882204593444886051024942830029321890014665181319913327270136320765780818280412021698825103870618132773360936226978651372654810499148178359929427119896509054161605863515410382476779370486236809009944621527161775554868973167814510228056310054677367439206371666744427125586356106518307689841833410077958992652944291658156707687398296349070324491936781213336732266275527978386500909930793670666108614333820952786458992351772352527085653002008670714121341355499641299456790363889220077594424163609618652228609042824113188812410879967790948614236552250927516591981691651081813674632236615569122923293430266577250954575525528313703102761132525288655096053353548881075039028253785243926276120902916800518807786765673355308514149396138486785599309461753862408322644007668205373926735137815816743860636620555114293790877606385171598178285249133888542004745787911010819023923792044252884911013729591554740279004126535169704968761637954914596675876002011812258777602725014547003131061865386893653287520516850325502611580362993151793881669577927662228094306790313251198727754687702459738117440334285968557420029285537853538679974154015101451749507546116823964427820130026650266457390083168211173223154825448114399473578994268524710404801050439566451456371690864840431926686712904308961815316201609843108345233839907859468801909706143126383082114850937985286900914068533168421112598574964027120116162630313002946383415649901785727383343569162662394294731024913553942853647866940923211571941627179791702893610867415402040627520498329918297533868095377289078650018071668886425147550517464762442008357004640646734655250599355692477387635509665469993237775772251561455444097102505954890602028339965273613834024900948475608605362408325842633071674435411207472405873917864359565975937838590404050903209148870966065116243288376024583505058436421267350495263352426178855733065783591410495645651402048567191517369734178304249706877758717687020917941262947636602522703744849139947093894187665596508984926667454981576574657127496380941837999894555455007906122285007865143308740647877435127321907170715370122955048438783524616964265141617326945195792092979594248739341107692985544566223679372125824214286560382493795104360016813212768928701254861009790000444735262424801564065605848425111510803481142709526584680597535704861593299353305395366484966124586622357614316012901963213754810441083028261542897608035980477314832073902296462318019292685550610631860515272575377527710548527380469744208699671618949460433297871371372732966650733250333477583099977964535768584312351450149745227177717004949594619460201306220845233739965973572046824099050186035409129339224281959295383738444777912844789001346652070840435702989172944061361776768383500061830253728671772249547614240458859899175683077915993483574372597818583071944812535307495622687141102182970665180407257247896769008352632315995223471940233596773438543100186019525452806685145513003170740645106874209358427136195665155447810306593718760720918092730984583488674915456278228630656854743042199348193235807921660466667192555300373023244648196699762736818441411248317652992622804551752314349913746180508334711986540441074666554437654788871347106234550364003429264108055456849972378747461027397449734750403087537017928058688678956779297718188759164376288874434929999836874950613771056880739299261851223033422284233438664092307423273770663667797063127918093378538106901421196740434748467847865844957269529096855964924039731658013040226205686894318672153708696294504056647612905080176612680160060273955382664060276739633368986099612751047722299811706340661187958832095600750687516995250945439451883998702760919888161598400310081924445568472276090523805137716551745497969600085999551458306968950051846624370320381944192224477408954110303206069539048132358991283508423368984454332787482730211261046185524623188471506728646266977580944013948958126155788107546469544423917264772568223240861544752930160581107522959876021116454786202476902687804606020271466316824864960550756281919133543486173000700424792755005853055360017737512056876992749138898605338145795719132576587330466174108432908528015427658346484354140817971397051975518129439995719564305068148533948452297761895350299682090794138317451434021594907037332103345240898362726267426612642784992651986746169413184316362453192139581496632726477472388762649907888884249148769030543831489147896545309739690322589161054771212318711270109947096587977325963783788280996467637001040905428222120006762629528365385522764258290610101673031698217671481193362344051508755766301138323234106284440909627969791549907807765939158977562427369701527013906882509119899104785660139486047045250392283811770673014666051518370621208009902234884491229001300630387682841115178038099265418769406195348471677537740063517860897259475538113082213614258245190261538999469589119616390615852081646479170008271959316241980145089346775941528314691674415376530653732219968943855375498261551989627994051618568701429253070632875530116524059304178336447855673978481614267168211569992542709045788241237554693538777650174240211537059654708625370962077334749665005473950213900439935257816346996488263767603803644018182161780408571838354344143019776429758953057923674926196547216324939626242366086080802716799597737091667590031206497687112371225936180843443097895547806735121706444462870114970400971497122908464514448579114179580209308332181247720730227263164086382287364628266003803641828466481344373743500310085136461507277976832212602477636950451487640082967902676208299588542062857914129673359162899425540489450883167947142348061007406565410973202190521040572244710957110501026960929852285413488808340864483139765217696658482826015474684414646525815140583802105684659313072215284187357170516193972774513250681423346649651253088826946640187447107583805729253129147014734519525350956903741232701582913738337806253530885735343566657600329170584790855254557104995163970398889637878636834271022897636220275508578223199276995583623684885744886034439068486451352083836053184030291463783279636568535240616614416685139051243304990033436762428071461498123025763284298107356474539500560180980371968465778080960381745187328394469611881430407240846065888175038065038122873703125094311694156476258391047473468297413565102555064597900908913313158504761991729098342476361550279144406572621729314650562533630309289381144903682553244640241510446334765356710523007620528517230363301341238671684121405430113228091951243823657531474352989995122833211478215011726272536117178794066053006927032350820862785444356901085329135647888252416777783312033743055259487573939834153910562139766306790136848018663523011199385118456401888107811140672249236723560751949078548451403882313108210183616993744890644977883596084534990744636648698426213616300285018024296719408298807782386565070221204477084952218251546969519424715694749874400896342056661316114625401752100547871401174118687833580412812783603928095291192320108190083852039047270196841255943818567141527521656052887910857657655164433715566992334586138106690945749995095121168587933357162296435429542684268028223895373827853875719285489234146726855150886694216093037317162842009058857630837199025242171864936213249526561229086271016606441502446069979679180506301646632554773926474378413472793771017494710131197427798231205475322982501554160955647087700027961360596090984057663457022846828122007859975826057991187997472671927267164136863141555993900653107476131123981775145056402815087997794880358210182432295913911846169191879090105341567762359258542217217263316461230414767805709978292527429561998216026117879961341940077009222123864632595928178062969452708828291363374440599286958176952539771390684274368905971329478563181282164474602724286970807104792559488689566284713094233534752122529551052381831756581025525395974648567277176330680540135711485987108915567588725416319745803802787872427486138809056667596317619060256825094256094242887156270510470409777635960009334562188623272850274166131231883541484092843173949028109100424286532880257536459901555029575131556755869562434680828719040461435134010360367605566908406112156151390019578891179779111006506350866580459465941274780187161532102337369230741230155115309493905553228714422612695941012265705632642003093248331945968924828324291371186157239610468644321687953808158330354139240172285076538719268427458305951018279826418581258541909328314107650375830978808031952264058584931109204499628645630625246258044684175342730980027763600261476231907010711659079268104856371491148392891863082517245349538213671449565092116658563556213520119804835066490285940087964750919771002220706005149973599409129552114672920493054791407223120551507386761179005629365950583631488333578834063208734291749932648197237136269270241098949738535224521617753210393788767785190225198233845541412291072650271950396744188773189788321220524466839293729695555499976661481028197994199525178417695263163040753224359504429478889201641081968968794788035727685102161123488088220137024322388829924795817546585458370390053640953049874582554803852658086830000761405059600304459013904452189534067895924673190718724967221717038396920804846868393819277086086761034215765605900900146814677225478752743778474529061392994651228590061966226108627457162789604765268552886184749321045821037728694287968620286696687971387784886816542208035113772537423604335518709373875293504042399650865930967240728370223182740877873809296468692171415544364016459945319389394213950089226485479830613504983089116709251429441497498048370702333781616730795744815983032962660762901461863825600043946625485558538806058114673203771165945846076424939090437350744289591471971474763636178259511811546134569723200520037762114687784011834275591093372464460813426030627948632996113653651899181253540593172329037850027988913104551203358765157709041832606984881649248705158475049761315981614132164817135402233000778336662035332448383556739977181478224450245360723910706693102586395499904829487051918738074837331847007474918969722757062909588079269911359220543895991442216038588570995349539385237905431086463291061635808827169757154899767998354652835991974280497362510652939044460423214732920948695884688345605772759292001325868113277677847961187896678250054247748648444607794656957599205495418340677324018669426274317490056518675359132366176863044928786851674917547956316271202003088761487132438698068928818195665655150108883523100753273822476634076997505722081170872072925443744244718651576649848738621789004332126649959898278896429496988614616844702061256572077212014761331457592122963624833098688373742931472118155103424899560199665534083464525938647301319785072468600694844605549415333943016053048767453219316543533286803214821723806525046329602519246865728482910842799253746840201667057432369942010185305556207071747523456258064432444279395249302015027206882080411353703408644431449749844055338204673040085297022376540490532847948104208898784727509095857505658732019036599647943666208966216331373627214252240050014238596392426658532435099030479740940376232879114524943097961882147336591642691258234501339181820480376606451932302425543594556612021699279040862156262274881557888634668294507848645673317154939163519616127136626310861445618059966252737539158108055327675938349100863341353049962909618868729054645992638284062196220745186017209343755413846592158822922084367716829307583754893710645550552829183716045270513152836067627045962065001502592513683299956820515991824373208124772461161128282340688255769347290033384261972737232388069698436886464674826174934731982074611073594406305473258934674320310921916486346124516087282627458795901694215799337806978443446269874611347711999294118266432598679042234039374760200205453698457585951042257844113649310517918838986338597398619882309367637477144705523876181547976260170258016300668816663341620873884244456452497983001618888129128723568627562399325118132693786316347175753037145702171762660642027489673589797264696336525560990076220367485574231784584429879305694444380316404368117538023749417838679514353269954334595401321379202723102681905879500835354981507102115787369453629763784160225460365893991330033187975334311431127509793976313490706233562236068143161167879612748806615342328784063520160633919860834058656661768885687594458624261326451282960475131531933114625535432737181659236191332004065453917831532919488348961265689097091289899428057593397903540328096202760781104639884259372447035434595465037410784779721084283123031192170451700249447852194064831695543832633102264168642728633809799476659178217760078690901117254251135357639169861409006730984377685177800902886098735640624146962975289947241838250633579239482835539893382725532234623634639611630055562742617093603305732823136203375195895761075449907379308063028654733452123363278671014570704469442855274037305081170292803500301350226724813060444332445325143607841018781054230252172376758436947041754403148433626400396494049418646147807638778763534491712532433932873034982681294779013512724559965980107749267602533627412463795328576723691851094012558138342853164140019800199275677448949041503607166857737942022687460216174117813224222913162796687695931407598950400045744468255608194721873515052112357139132709071141614388258063022251527486917932087516778179290060902822213104643198499432548895601743229813133823696947714395869980391750534942339612116756833008954776966240710493319377509979231090298070254564474049578681310985679532609794511421585297053008336632049116394602037284086597121852799715841165679934653549152307201488565438910071854238780647654487232961992503532244011233225222753390404096849524745963407525339727713111223804983518498265099374947468495839661505714015335734719828900845427555119158119484790252971159558982354467260162070111751974196545903535429153485819588643916669481605217132368905084134853371220383549855399657860432736322140965144378764306588316556989306383483239124822503898560702916440114151984302243096706655443573820805880191745237727794062486971595284335184834506913440675867702767249994219579319293273726712018649307554366920004179345305072510207474000756332111546609760466068296320703900398455094663787073610944647009897217323675540584099869070897700456774943719711629292855549400720436752104899329342490304921153439958812156715920007921488530704101500942683869340020739289466688353020436521074452846982845540772926722544841610714760152341675766825949527478614033493754412729223925062117537183567422413269074650875523057008100409607283290133916111673444951485802931679789170920493775467383946535336951145361422837059952204034928928069419965583961260812264802697269888417647798640470223574173024235850837267338372898152296649474472598648797342293077348542536807904748262676565657158523283399304687339125727473106893122357784803300724126046947777205985558306535796890615696674240858665601437652323017438672953617074572331078029936916712169250640302703214930850163109965836418107246783807940383701280417033630564819995719985382328044631204590135782872237618715517356130700462597006012441947170073102641725102968424517050391083256495521991608616449385528562149148965964096147446817910218120721177480963965295181735338658619380456459277607365299375979996661715164599330424755093909759595895272664708842283816090735304907563083487350327265092281282438187794968038678951547287420678798466759290060134191761000311326479205847359926730534353079624586225759822998374274586380150552530445910340470644234736018689185906404179081172299745054523828329688794588966452781252753696940786419690575042723523521006432212756126464674488677238034958175416271704035975582904016994575551546187160211370884289369331340783098620427196237524561352191914345117886610800057098252740129493939201547141700010302428435811004469488643752070004484718379252272488399533426988636711975679004113981171450213407276051356517197194649074961536667526990416108582727743338312812347542909276417030703527712808367944083957680659343226752613293828466105077844687895990430572295512924819358305293844991463579110888043028978007801706612080284405924856917746989013860881237885541916143382345926695860279080998519261196448271044814713438106837653893950853531014081763436516946813057106419958339292799386897356896483707989005263146952358437824231104029960511553476779259581480101833319961145039436593293290912693635405957742181331685532117519478096741398171028747291265710649316761905696411900831835009740596461604600233585286189663343701939893493624120936881115154703915451931809023309755196852916311576855646353856188466753921329561084171116210280317220215985907278525876443404321712498090684523366046330730290928375780171340503303881470205817724714333634145931116169693700082822065510522988644041686722914389011107710791096483781389061197469428761823912710360730670239978021765312019163044763849308611267177416363692741042418986243172758343125174686865261615593642580573784074215473247125369365797177172654072572849310955179713563093631050020118646283812444505981593290016173171675414642031615943964050798018080413074443173594912791057138130384328763430569039229737304375079455898595203666894600699514057970372489358868036954549672374273925326058159213338471901544010056351873975094029911787115387467199910491953275260144178505318887281849291033772420361614946724946633778570044732459120525921653714048248544184338869961940986731044756326655264014467703608105506507786807394913370524576013472601950198307083608907073919099104056888442416391312675938441731250650077991244352722794424769771733454502240342952536852369116865742709807014208131105202902751065058553822037169660458178426752602463301273845921780446314318544497458977097429633518324153445813610531895884514142316940088400023426617359539849287416213064046603036659306141539576705063135698238919244045419236396433295250739188062145365015468767455497435702936415377050753627935386238483632130002887310684133705918108438693429360599932977125812985261039106092750190903368520425056329403031799157391158974072421043955807954552687897734536838455285508000075066041058208704194127350631691647710439432002261840128896766761053751225617772769351099661129432045277824551104646738769466635969046011771546872348314802727050490266700309885940169356146397265256115565552228432721135636572157052174319369126080259409005419873975868682514288557346906920963704092003746172105082804285384084741062851641671903852088900586940372987137581340161744252699489086283819953344196835027189834697555850694562935446829619491552412973108433218575965441136320343153384311231595753212528926054993257962243293512611330074691204092906170841910617397870209112908133390938212710922362571376568835561395818308489807971547917779903245256986723186975218226566128024087425425875142268270528602015291020699353791591632298463779622449011705935771998798854394712796938719599169862688012025940842841307301620285019713321751595032970928681247001135530978725620290001309569288539864102463878763500583914527498806832067591206841910656494073746817737895516550308630786975267017189316216127674547306436448155247571365715301225958270417122807772343404323669984543885973108084899487076416404610237510720382987566398014411916486355994152339336195353262707540582196665613446521764380933538538762301829016389426769156998489393287429114387442559808089399578916533824345564953957709385293693278048941198534736030813235587486475657021277559666346029999676282073271476386721438416159626782998584663710669891526218571258059333819382383434803843532550631278668369929170308774484966269347531854471880838577710399458265511694061328983775834378224431292215175798640449901972530860742063470009301276670744259319034203617950621191959190993109957247774376016842288157804431019273529658791045781696182038029742439357078475584653363400589293924654580917027077553340885875975763498030503819631114702102259674807744128304708161402419331676210054974258327186372053737688100619818746768969561853141293619137191289124954719494721165184940233016248815101767359139631572846210707267924781430623907453845122712006082298237200960966933597643180792113037874604991900679817608520046446093738215470298319214176483762494819711926899167376497369782736859187965255375364817303267611883425106202535334258244895187191759321275311368611658261535953371342695722106061354734399023322873743995485222177906454239911826866936156768624517362465036356593151355741875148218142521011875922970455722561788913087097924195500639701565234302562423182826757266857304223202953277549764644412992565407603075776467239849562037797326992109538347459105219657508869908153975299138605235918498228077061495916525918714037983316675805688416310566336233777029898024634803545247463302326784433182911646672779645448654054683827368347338166150202410595593885261359545753187737907890540740601020018429895371574403486577059069692614591998818086515008492573924347221889371950017025752982004985050227809115007755830874918396791059002409811892423386518558277915543930911774417575906877177125354701472539454655336937758524357614075144092381415497744616114833332292452753271141815367726434723665969537212439809030882417278004923049794719076106990502406664242766617192638214914650609155284742498698410632935778127274430095189335263022621375204433428504376176221952658728332540530639795417394816308360087689861462445237198665756737430832512648014858328769951788813456432098429466828088590637704395288922247930339106263279858265458378035920741495378804083269227771316687883380146582254671812939848846547403472615957591306295623675028202219312318768220884631274489306235164391637309183596652656597348894639561347633325081939617967821842034116446431823336742730329001509705038128928270475364451051279163760850381690554866556498463407609476184568753241809543881022220827111944576075931116188993099483605570576126332070358907268926385811651660317160195905963966112927197047781495621642938034002244354644078845773824379575719519512646809710210452430438095383930207728751783944476328967164699526781942017623633456902034974315692163461168360595736767146787818563599958759060865060312901903527694452951128263135792139431291616972091867380425817235562426049782018194215019348156691064208711948019424639624093128139939196241048491365938598817442368374133682864641598677364483205154854676471502882275299136396272421293495847496654158060972317522414284672518834765956182252467835710318011348297818601100515584890490630700755827393286045172922472409757452154301657404208475585484002747048186332008519655890330032125927161252919849725009910161135222854037523338680521162431127113818604225919431672397844785557636591722908408896162678056997896348331924114601201848601983587362962525880888569789422860073280802455259972271078260020825133524399100738603532079520665040304430470470579609119241997519353905993436446829762276912533548162439945213882249979395240509362560316674355060103430566692096398117509574442358350670219585922356720546669651940164249376592333376499878173295571715119016917013206715079954687991401399582874313841780252355746446288235715757692722697989617541494784753996406205745852880200334590580731589138301044810136575144095932970227655878649483839927332667844505471149627782975576267767517344048243273570977325695013376136076628646285937312210041886820869279519909232197605474683742815303612203455171551866727573873506103130486843883349350579947858617594844381626082631740420121783120286172075430217231818472979164479086125764092819869651999434411201830598433907329532266976841027672302199075866151036860997069079338074392635351154179241178396390096783171204085755277365956899299941202967090818087466207135475932129391252089616258692306095100699311750993976565913728290131363718510788199372827934813696434834286825537629972055491461752158627626898481222495663922708400675772890276524843891988427710899558726185948397170039391090564250465695157062473277987310919885594239193134481652012577992606338073048227110700532411507872982950821060316795965146558220240890778664085850903236197504964899545585449896120510939263822509916709591344069606587426691771047401794380826006583507962406438430223015706918180505884846953371721388103289568049298324406444421418682379758654904026130156575493006426813912042018896461788721392942348812441003508169056304267167153919213100468804149327890316771072672504721076781221141718437266966604677554347203840260219330091086594032543532536966136897410829217940934817855642106617664854129441539411368738769434072916393285014015477323048471466475144627255312936594463091931283958892861835015754135656154130336797369034242851470474499821493920958906005522213452667048991079004957771403950608149859493678428028227050110399173325833262386857006093716433049111004175717488965336248382934391159171759707572991075076982164853851541814693872972973151608848006877043434747766599134297370779802105098672215078007730514455864929705604103471563127654163239584741164612302133910670503476461285628878148950360410342780307948921692116175404787189103516111992300567785409536132486818755415055300656669212120246734621584494853627665659604931407565660961664674117005792528159163432828325218469544000646258426909674360546281313645386232710047540944454672374840635141829491224311776987826067184327282506024196139618091275599088271321482358408130518252478747368422871576918180015019579268741631162200743168354307534782965817734401517341904591906780068610342841827072854793629521616277857080431877119535609704857854256790498627615314713566865729173350175594440870709414257243677155971921850018716357140534800361758420314274681738630657989358829496003825872227091127463272129501557919402755583018523179322451024120951384706315905283295329052064427856707365190545146142303949948839164685020165099199014923351325370677286931257639786390596814816287817683038019377474216268239227484633353002905635901276914163027525139917246207824416566111351054588993931307601425122558482873532778535644454673763716948443419570365380223713483329241319026218445824214044753363910954792023838735588197942277668209049514286555575667652789401868575220541047241329973561387792365019111125190566747389641670168173866970238726147476263317119546591105532975370086161108240378712414141960139676175955901252251248202751238361244223518748651153260004517599053138278101825338921014872831336414205690229937388626767934199371273306270760340091503519411971605711521132645249044456501437004646718408700937491846567567482707147429325294930497824444323518272353694531476673074436096563823183855979879331990960492887932986476683245164351220395844659680464423737386227090292270339218892494683493666060479796029186512423925874493303768509161258894257456366242231912561375086415922816633852400170156756895966320210543549112501603901709733861369034420255176027025680155301780320461738377224117577947991825087122010633319824598286070339886725088083723109587600972972271137043586315559325777152932545754880412271248662815906391667930982645129662764967133916950678081636490577814161141189032932561937429405189727189493260239025330971867006003222271140408835531090301322057020042497064606772789121682806568833584067184415316023489684157145490002161875703966692354992932589796701688152204499339136355727800115224445808365634851255382503786021527347099143082915385303689154057081427115909060094436004893962469148206578526089865568887938673488652013111387497325359549842925709951798974193963492147061633080321731442349047414037690876473746986736653210864464107146517322369018105135810264055631811369512439029726200329046349446006078983992600381777855118737296412183145331724283542431811404483871267670108743044649942512978621266816731561823349277866195399049713796965287018394974271594031129411948620760055714161905761978729048421924508783244428743609885330827140520752440829612407124613842066618135608522895068463543580073474413469674777449475514394348828235452415842823398409250243358649828204669530327044950548521778079125911293042271108138996844608466058896073119370692422338386421174883448090585650980971199169352848238087588065666584161168973274834147285002534329848557597547289895788305799135177280696899171294132715680146308844271726726174595860591328709372935675152858943234056164374063971799026401427001241179796788983904423013520448194253450741030010576847559202985951015825788830304534179268613102282384024287560847704065651782381060393213027390826148931246474655597288933279080455625412974180710600414600772072317807133836726516996941347687211197017654533460050949106224130194303082512430090657982719309745347590358321049642881667747895595978681054232920032825443005290934293959334585882650455559675697858396420237783604014119400704936969077622543168192328129862581280297264724149280520398979144398201649527549169265376121864721958841470042283797256071611838535561402490987263786943133677158480719832657566949394445373792188814726844226860585420004220366265551745141982541020313835904748059159006450458818424749160688276251404993815989672612186810616445701910148193274274956433455081668298847839594040990487254529199156685859082161011074699278579348951540764965536438481638219230135192690200309888274889800128687426980538857660251503300686558818760674922541799929185134618915360729154248397706372783617167795749379014075463574632762119532471040046523495297817357484662953863581833786296019298436204377673956602419412053063060845169558578120346506790261361393220140707143217716618461530519813710969668917063767084694884996651279799336109298514843800612927287077886928002018557116360857245276467433929162636567283859684921265352960314189693376696889232931358748893355501270934007328364730362823850838485324151641745815277399249888641889889214343906332811165912193010514786964416640353674173214645999892456990337632123470057439512631791279155199514942499331553176756871304260797149019953891761556960732953309240193739512591927308940770717880046201604766693139407590640869358245393186397766394469891739116834138625739682165244138142191043434262023262664898619938466954617238281756092532446500692053808456766923891586915257683528602548258207015904235459024013698014553791440688950773514218003962391276478594500817671677754441022729746265313962181240396129243503916212251318218122843766177623190082361499159806856601070610749529217162182913573560045242845736309330703331501489901891379492301634515013668366411624382472548988411351756279571755440194307532064189129820747118967820008390320021790585060403699281694791944838118359195607716477721791597109882614236985508470766836983593520810441150769498133883969113585335033443419534822352657157813600599839271284384336925041424277597527443697935963671847278740110187123811743069797805264486980605538995674376276655569999528714098869392451685940906376644342425667096649020637338936241878173109649221080334360718185553982561779735882152326561109304288228561647633369700741199048535803635352729841569079830000541497556249852129637730160215765183884291300468905948894299692184261191835411831300185214225965751216657172635925653571037941740886106819248810790289753392685629421608704770124099840216051653354792392278209069306507889202836832723836110098845797399985066922183222776694731195053652393124128716931193162982298732181172338316146768233791091096000866985730324142775313889007817892591814779621175879701585802594648831317499861055578681701775757448997578230599623128143207455812673917208727694699321843448033573367676245245197965473072392157942045901149368425700615909047678351855306998117931975850064678452957682460872949042889059576191632483440503101732976657960327323313145702700451767417136885408522134625641020410263914338653454511439605970489218759542590735935418690477348620558124390167114781255364577181644006807103155117965234031914749604957607848552023181778633772191571122161742588769851736835546577143429065744848311398802434796389584976020467853284495257211750936388850389959722413611303984597665872291615566643575851555975875727045292884054056094857830866894256756969355069761403299822586612960524607205715606981712015229273039129823545262835748993629135564938531384748057216674628717375995012587992534941719383260860038457148274201773792123600663777519738225716574481267437760727072219349564731724799111772731724931176775769140170211371406539417084982178067818635514877489828644644943814968956180432585334250677802338502739358650970432943225044310405990490796288866455212256109023048443115482929564607867269320726369815081884882377431177398418610965438822738397323099395781851850308592658035149863455050627342878554446198967821715009486608276540802639356099439394263711222946378321406003519734545194615620357991885079649754074541060601131083299215794763959384509947466898242546636332133547335795929676496377277789526489325294872302295341840234769233507900788319960470009805835393241263381422457873240955657937384223793928419068380535160457307787667882597999418629413259997019993294107089067261251790407853268179932961304068657072634758569740480393149749764407918632993883422398076638385542252880779161631337554723736627041329054669995853973042581279164447492552631841806987848468265206781280297789954611856220873278203055670690367765234255414190373232816977567325365667963002712851325908259034738690727847579354046764619554818078943646714221888895111847412388279339361510620048126067610175105244788501478325001989435348254226313859576446008436222101232876085732530010354973221449289443096918387524786359362558086659475932803177034131101490044519332688044734756092537871222686942843754406936777746451970512782910230051520127110618996327085064452256712627439474973776247973501174523974258246954626604220129092782761691921922163700950688623645549739804149689228143091741521373502578262168520659071535046583892469822752027812419562686158605633407559521303474749239323859763557424427459112124013983590304141504512127830229856190944271166415696504604805507656395259909318706391490476780100672724290805208492301508402884125665624813242222483338311548814308515218192916825484417680168508033979287167045469661484798239940062835210079436322759402113993887722065029417426378482699789688075420641289763673219978560811020170896619162351301060261633713687893329798122555267994842912805541203106190403223348294168819133153206142621574803124360250757309862988932741369666054530245749160539177920893657212727691725801886263761438406349125644788844478326307962978203893221172110320924530205235675506711652643200421924502759067037379163762185151325097243154058737831422916438537931683807866896497029334329376367507067492405093068764071905041784209097210731346586049413635899162169237928017497935688809963405493596062591129433767392109476163330987852579113728071159406527705765071216370892009268804687231344624483575027242855598978450642470195950258158476497594308339039662014352293213002465386655539824965623603270046316330198815944449060029601438465702169932318686034514713378433490389018330869170041240315404108511014536002903874326416088875915784873387334504525308441935265889566961499334581085907167876393211124916727764835666760029800083249743949755100194981903982961804005575905268870493583201154092062329306005488686872222678378687639174932251800528280242697981462972866491215718762068225186631951669063364687529514068017508079028512441257249181989203911423500656779390286260414538096372214773822958092288795649109657598000231794729200783558610061993746968044501900288311938446036545413194658307084822441250339661170052534639918736456270337100789719425884641429455055189568631303046661532143377485634055947459728679539466431669226487143308133388163551795186316499975240492500271979730055681570664257322532057278291365989086759240103195775835671259701033442905455728158634026748417980857800001662684669551759025125922116022582274133540123096359187969109890836195427603761731148608518537869970484703248505880760567978767646111546296632080068652068263776917030087469975373583308307840331657814531648113371196778797046749330009573801634150387615454633898586670509290907981607548144707352366164959359118500218855129496656876088888890336256126639177117100415538148467106811884136166602763650708003876829748343876806243435985096965561272504388073608358253136577039557074532341938334771177733685062424911640011739094252208583579817458591199379868471595165418176870318033338212535353050041882381622625629445065148165575750066547761561309661623621019785304931467955162682898127126197308478041665148052786291082564091552635711774530582156177511317991158316067475329142557460659748024951076537258139503434157828627057369638628125703777337265800819063902036957798018927526256890706049295477902992551424067557766906883597174853485373797642594891252759860944600324731318171521755811378471597230109260283557741652171084887939147029441094999299352144512285230269399181422454377475143809287644545018419746280887095361733424296674544961214045193886308835720230353760033078456188058731601936646569005932561334520808310985649208274423957764322807491775850013454218475042829680540367395025403470892361624329505933762126604233208091901150210008227628086672369964584098512377429781461572062665252486811853123716571155971915649632865758700541156328294407518573326378195901971580789062460623477686913178567003215609135461550767872353309621365364786081221667044591576430078765243143456381185751100713941247152042091942159830992593902441187872829596892300777129623258811082608733441300888317984697565745799909636564738192445056004027825293042178730263097786290825029132231735207476296087528850464732977651451242053797477185685621334546544626838825662130209713620061470369176659448229471319992945556097019627741529377927774954355613416637926556799955476438745690586816150181714061798961073040678748202078902151813772764189354791930285305888359513331463412020134729738079516400614511293181906106350843322156284331552138151225785049596766869029847942140277464428534392177821123131615364935739133534677964296739038202271666537006638777628750248795856252732281437470403224680558431238085542413937984302404519939030783859842685128939558546819534887004612548337887604224303123915428609711731528054543815167146787557629266169029071828724583338845614803214456818001667134696917171732414995409364563421687700903955577929620212654164571143320063045193703468641856757169301796517272611429857208980464118444012926405678394598244702035874939284872892385178232445762519091485244998365350768268507310359806691464501932094349375211386348775729376534894773754706857730365949287652148596911511254098014976703336555599106400950209889769035679078752520126842577994414593089234608937528251603649177301843048298929561992556868701052909164016371613253318515001794710682223259377906741823753058885646171535249674826996855586128692863655627161538484112999348213600115787083267300477285272374717163267804041318598662908638325544221305363070369090155226115840810042975997389559063800004962496661345846705906939193581021520773502434895463496116186501196582120321623103893700519563505570375532001243003702894225917805184331094719232380323622223902786890099933612509202875867350850034149007702397417725277323465540212489283270810253769211986973220969718608795346421809470069214724023395864009644932175189646623080499021910967425203828531801930805820542253529387385524253601201826509334603782254839240339494908174356334937629502056503062477337328761487905397069883247778705129493645661600776962836650628972816791023707159193567691586747972626783139903215293105772401372299749233532546571079025481678683112765385448019541118008312348519363070295795910240711807480630570203525895387878247492948516319136246555059631172208480882361824646115709530649676723682483807329388612180629491871009910082148991187603492956487631709763061904772747496389781534840846759209849551054085139358265378162562048420728428501926552860808545544806274772242984966785520003227325531226283794329164043014817754849748629456744959153026069976339084905453996051529253261458099732893737763748701557567137759817876130207361828140681836712254807795313456059609002884158967822613624536661555667457797659539390681964397138643614305101250791722382694767504592106100665982849750905946267198846152913501810943260902350141546377602187130721400556652473583201596299529219381399568116357793729799332140540311815778556040601287654668893050170042441407508455645952493313229649530904132612493662416727161498719800596162038485208618699619273229330990987957702792417383021630267949761567381368858549204784674398077756077374408650397914879393334964429428327363637398302088311701015530680377333961731498998778203340276023707890036488461091073616045420002212776099517773119189498021433527098938247205953585196814264432550772060134064091104655911465091956541099720528967399720100712614384468103691421905589665860017834223815202614040176134076933485356028450881376106212607464947338407584996192774079626269384008462761139317911829140634001890712678371338805473610706151386745599955628729277559348046712460129888668561263915289939959543916912914386546954059984472712520593071919877412776740947201487215135826877644230529920372693283583141988491440850454722794095117444934900743051998702902263129834571384908400350680635151640295521624777856426728178029172648625441130441289406550483679382172292027795486181474033072048957373300751775722211720913329427898761268818400199901763009767636412813375807319486924974440352316087423209754382740459927054615742679668842055863633011836116015867292506891872214056773714737922821902546459751266178362063742089176162473513010770304021543634964233156296261091218304222256178387438090500968131477229482470072751224137573279039008039450110409504133463777188185327956683710525294655799885785727318041287607432932426771209068758238380146172945286984512802480506015117075732488348951986122326500737658670881859486981251268727131423651911012722318725531309698524897157901422075498505078543996077395819528572972724666211639076157171658011818609976942767247063684580898012616002202325210574065371470804738778220791152137795663066224868210575692629410939303225051548416019888976306922248939564473362816338159132212557003676198679041569383387754788134372805159610874246600386624367589154471917476898723189076893696715875049860767270318684654320692996868183465844556697182367093793418895865756979904439124231129889208258582172710577379893175267304751110495048880759280252087511815939610167576588891149119416719947343860431999407076712642535740162903573394584922857935589262851012231266207093138759386281565337900085440675201588238164216210127081872176056102450473758107855114948644467463629749796767147515078095161937355425465718624581606028448036256705143438039586272039483230841849888109599991901566063532219019737489941735616045879977841505243452343784843426799238923789130664623161629032362723930536035572814132822979215257233549309299024651676847434991765516424846009024426857274865764104829390606762316706729772934969803630466956295666733721526452065743294686969738391172218671303257550523906590860873546812483336842055985226670066880245042348508679391089416660185468121957470902413655398247702200869728269863198679735608180110801129242518883656889437062546337601771841552437590699611525665984235961974564636622281506461289813843107583623981235452622308770092184280784090612259309102934703868904862234230017862806627426905586188261180523848325531756023100873004964997914074902485584258218512042221763472028113350688696231572499229861292500292772598603251419685610164137317854368807738755775883253000150607011020006213560234908168881104546424781004499402311032417950981595316238053000139625317364681803983684882682101839833757860273298544423065612535009922385613057756863093012745079821410504068204814975657501795767474991886630218231815008430725837003929581954227103639829518681970721920666076106165957905405081990941099834193293137784618248439558309047688797917320396819051301041009005691175289856568132570437869015751564089298226176271358831037039719748350715452562902529810756832182464899617203193442799696281461289536971548608884585692335536747283896997226213065639257623189930839695696255976439106170489606844970624546995273887796826822301925379344668470739001381882512109118827690032199946261333313154843562999606205738548000786945515334392846612782516453342395975467687278022556524113876466781295172902038619804017476556278211685420207880107702060070948614423626913685039855054112113781827656777042669030898882907801163912831503293661526190982965159097996241943958869441945070207090278010474768776881122760579576063022670248557044419809603200483036323961404965718655954027931040537398512388677283718019097754468920190956789372468025165595673097176469090184911465271619294371926206533556728902629452519533827209415395459465231953228659901896489765743412759710067959680105052614486598608465562559777975722193264336539186874482605334367124643361509657576478038544715026230002506482152942714874793873742637211150133804874841758402635755833454666280085990223190226091507317639845417937657992972295288158554811713408226897794472725646536402580895269839685492371562526848026397808951513871879343754478187509240575302273728616315212252426822140433569944633661583945760787385566370504656029780235585977374624614377954871363720263524692322973213705339480792000297752719002001812430142269180064451906542153468620831437519640326132862570062290437013001195082639084904156947542509590122623209651591501920206921118112993612458611846061759121275454123387215736675009728913628692971876135677139212542208867634915414669354730287441381189337044511977380245315600505555682506259059365915449466012813429823872644055461715218363319510514544089047954868816978829828230259591720250246631926589976755964686954457271602813381320775950865462851278886604459435526548330595572820629333128622603466719644324586292577222410605005989135475553862869647430705712215376658517426908673658917807584674845294063451336940643553121887819913986179396246023196826154565089195606441198271041555993385717903370364082840992430276763438504732885923269120207940826483718258412603238241817067113785784190314885980368097201411644097156835895504175029799256293927456729289477536058095779272800011384291617478920999197622794218792927144151644430377480850872167843544866119800126638959555662297092338734566030542615259113265288912133841760544492516731245435735771686997659859893824293559498262009202788032500616074754637647186748693641136973792180495548377355266556086104527421385448326554159472054776471564743807728286627435265272708483715776477597715210260901369429443941215136169113506287764387722149793862067529836688744463025784194163941539295738705004928428081812768875243749424424330769657282773294147742028654255033474516036284882416798976965693508761592229595034847616182295865203194178803232500446708348331493647408625951186876086151309590908708986903143309928327900983526049584159103279749055703995235061695895770710356995786909670037800466630631421337715159633277716513922405564829401367618689214947686504928267876176315728869792306327146289227254290635846040632959867109584957064346029949274584202418012353938030210956985076102823354595503060652027842728427870779175985171874745110224138928546492364459298603445525681518856023964737331388169711928473821134138818202579835883926855855775196699232256137377978563476733703397969211429286396593846977556052470915113033428753932771037949277861570637740617684342330972066960031503979973598233461237498055110322568827724004476754754580739969236768172554213811897777171668109357173344220547170365008008008839271364615627235722456038653288600916587339321358279070252942338786254359722166136463301279283718620199516303620591539022237443299011513657142264920267303272416358815925186619806649721268742402213605685521758415606896077289324423599383005286343467072187465722042768726385276741374539879907658704465799076509503682079447550205628292042063683330395089468320458700775985921424180925133094230740209011078192273173256046769839094932762655176522331954734752951474253715521658263355021008068993295042877703539452615897396013123439389465986385821721192468347127782153518293298522309881769335392784472524468521718711703174737436114111448768322726228021059546867288674483363065020011528667171262887061439581303762070677563746266761582752159589250165199699838495163573139145948606131162748311244061096017172030635691568772412006245605228663362992425088942192142445325964798032637165413248080792840633275781002882517459599165742066023460078759235867524439739571088061909248912472326077219976476870265642539820351375002482775921773884513669537793701287029229663449859374789238625809291358728271500321169571491082277721525783822266459179516490667705138990482592338636833589174441114673045988430651887909323054160721460928748147527205235179432511725359049995786197773329810378587117903512774891022418736445375489028134549429543448373990553377619321567606181471322857817721781558643964480258816325163253131601147599057594320630957476337380615800862792669321472037099042965916925561377411925925980579860679067614963678277948814246248552653014310507933536854804791386363494621027012382695352472785078838126668380437872172546579303834987563119131758117939618312677835897672379016883768044649410462012471631535457174916064742899729432474002883185993173551453598824942502247475669007095717952531767709375722249357786353382821615695545853391383016913060832689151055076019605485079111120932934485969766704815883580657695372588779251987223110196073940804433715341310158813050825611149233672765615440874762479673861489164087571622700378390258183925672027451708130903056912211020190282713818322376985616256319874732777110816425327929025903600062704552744762975129282173042579626370455766345794160339412048541121336946356663971146142348092614129507793870038658638186123046953320353705524065011175231583197536133585209673161428698286781603196560050165878627672994803291477031655090830864208694941657824028841310907863229492640636360009966359934324520413841150099109143535541575167847070667208350968134188998139309232094823467038727397497047481544833809937492739101947347496896405092466482114105020677917590646750710756609604418184970753507500469682018212276434929320948123960030583679394361512063208704207200547152787491037621964921126420972449140285341413711808053843250838785997051410621932477701322317027236163301174475995251521751633278258149180946278452470625871244862952104301771454533381941067262857817473250913928907634527675648319137925007246903398866079011744372965086056684465067941525107434823728508980698171377239866717214245477177860331468474789202543689021432069179556234289666827395448089653093894919244420246303177099617067162821321444850764936705163874046221136145584943035795251180771858186998138903779428146715473924211242923155306424365132680229327707551056327118198846813968971825533451951960610241525973371408963972731029500634620165447880766076205612773940838106776998387726954883810042573820577074754747543775391441392874437077580940738209475486511014209525379172664531707630886633467517333204138625911379836447891699408071304080907255507780786128873566902115031308413441260112419896368391931904470567312200700358040895065111789444019388014588721743622080542468494702958936428904329894560841354626623790630101584343675082572983166010262764380348503777254129646054368834091589404539470034075613650195632330000559346514508877754638091976658592117350797789079171175911318918280932023683429660753162380979328769752930034482768892523156019889795060329147757707131610932880637333990216483227955402995300874659857319704603325807422689867323099570198596832146619730714666186632769060966771004277470435629288532701984814420515676818735260712976168214660327226607965905902492688035617842777873884248907697510636405483548954458347138264224614855373097398647376349639901127939004878092503947614645680567679651799953308938966279599502209533265297261188789430976377621711747199411921462874457803546464083322553480336790711689342644713172943999045696974293444600200982551123466897465223836258691885002915935693230916044907433981486892062865027609718208795821989105332620932259876412210939934379650744439047414449591742468339306103659299528981427712307066633227193910720902833893802878029916367409513835307209808950523769602579789127248540736024214468564166230050190201196816893883865348938569953163873805323670375980249436776768081420947353936463669723102391989857351766311910406097384457838118594553791607168740345660960141540834054277695744408234226211499562498068461620920564220723032274746830094739071210890413182575236607275567812855639610496961753099907583328834227063161149388195828153046985244867610029812997806962525848768173047422414393442018586622883472926856213772061368942829218562054378042634270638108520367551968568061496129573354412599647223583036969883690389728359877477437430547040092821174211794411321892725137376135922015391726953934362368285592519068617191993998139334443386801292646819392834928680713687874334031594080394861998071626789541152887157491396889458314691571431509884349921692746743858692400134459674257927241434344297065222058685962557165892205373765884321826806111270793687851941123121959215486886816361448072741441741509161557385184399374733952243371273306872798172435672980596737575743483806645505439346979230044835495616772785417174316506780979597748182545884547146988759654229195870180462082901692770837669037818460742222619241977920938180664664059116373473251842816270121797512131680730524060914644674352810585455730511463862136400596422962174049885695351631216462260846000907205138683668573799944921538146658337027645077555784693235866941922265655530364902001329429834897430608471358592508440818342282085598470447125195900680953321776257193439727582119200595456660184023080489678137617239659847463928568260334189428248601557095893730023881542118436352673408057215437470186503617338108572744491658792266639873605027464875820916146155522798465888452421325651988134508281230792350790734292754722927323365528012672133728317566810219578907327917872344692835347608469865746032107751779018752622815689310809496656519537078172508832559225502693606445373023744460962718102498221058173189043605449275251117399742554319539380062088946806160967622926720395066885250969108333994442158379065248536500870429858730099120016497946627731034510026729477157281504646192368419271978194674462384381770233613226299026325129557829245313591210047509433385657703644550943216052763252151799909350653891418279916231217151076570784872823503473597234136753107359218139294441697021420908790059940837371059549243184642454748846678244901166702585493339821184657289320303464510419807326668920407459608026533191108380055238548544440119786054170080161375968741860998202555785554970343438246674870979173852805380442204417853898160786710102675482375421714368981715715405855206442001359227732830373774715063469382572561319299398171892654193583673668163259819292568974038956238167459700152016289851562711671626447705632863552918705120568519899357500048962470465696805801590128752359891248227412593999400846349292255143146813648796291390656985074196179620597719341291414530753866573561120835102404700634060611186728277528872749146753639451669742556282947139055818645933432835312882188044810252608674307988638902307557362663386080476207447913886784153121294762275214959189950326092545114491309451325787102364827989585528120540806880370160726259680435600488882833818072207430311567280326164945967526598649179972596508961206428239572535234937122368760018970868047071961318838575956174734994135520071852842897724279918162940703587751633291778471510327938697235641555936534850251919969598151246093536734246310245700039000029278212003142585687791686188584062314991736813748416578421347458328607902997320492523267096177228698520830764440148451992384693069551586659500197445147569817379294939186375990273791334654732861357294612745803551847012320272162581612801867079157198713515590164875749790272944966972774228282249808679832930338905390813809265446665466822668627407677602068374737369832929895721754806012306908385040883962228291675650351751859064851202496737271944131805311983366819260432678800421674914969726813071165855952244044998042882560852619460957316002836370847157783574102724154421110944543076691183645896135822028275259607349954148488166463919465567243721789173538238105131295232926130312983149995501951898725741728553196359322901941296615563099789832935944562269595798260837869625451821548965039645174413302743181538575933983623932023936934707326934671293951796405370234161964997741598845120147454051588383742233294285424472971123929118659030105304243786678977309440897406004101239623916662354562262899736529025565862640397735638586658712109324182504168398272514356323117953664866861529210656494025251959869809589737569855090725102403079608492543327924284320608793277171592202189738548579530578452400190510888624224733643824728971100046264728915616448465671324207470930323296433234271558717082339198863848803789054320476742100335524679832238819829141456263065445393826539687411681067712909233566435916014657160903719087195286535476754833075814503774866436245153430698609418142115679996245021147918582927690245946711867762724256671492257748282369337928478509325270588155605823766148429457702910606609253677387686412139241855546876853114038523325116180604951542697001358564329358503970017844163647900893770549496709767407026906002211942062213706415959001805403453371006283543890224074819067913194084817054759810026050458740158482471102580715770142913924961048168418027456005286412808374950351899128987530996124198135527348426812375468255766203865378864002790704469866478189664399431974496280822357457597197959321237397584781189184880474347866503307532236608536277911836423728115845806722194725268762799266577708173487397721625938837161625394300692185080283423241570064204690314735576443767568348112776094343077716145539160056721603295142581596387617637081077759572395003827966728066074481151489404153495912963466333605118397534863654533569852503592845872220847736837382765651201273993900912221361789898531014808434743230498354296946509714707790944673262841570461456713176118270078574458166428294258331963256384663424536410963728637418318249493972464360792292119269536473541225969226230425957095367452323538955450220599476746693500706983109487545576804035040015089218221586893122253467859383171138811296744259427004834013729751039455407343536321409769807712763643852073191944250134883604934531880871247730144937169840426249436298745955149195256012196677637278043350615725153599361612163358420310877500190891717930161426866338511488405875595916743443607254102335777976443953603553844785811979387719157541659874940129295308914694822434885442743132580019178096890624897374915399355675746380298664829369040587375533537762971064653597687044384879276294618683823772156775794592295454568144562370899703443665419691261908928322716522060347118974172635770790554445052407314705275757635111829383805023718695508805910646455756713997098165476343073605684595160271683722378614907517097542834724729879822256264485904496429913110082507785476683651251111994793972076682603641258317066502322786328621234451937844142047635654732390863482205321138118831892628558438521781889675322662688416179842184272074230660128600156368281586961123838759878394829710874364845100688594902978644475129551597606941288853956866347557661763599989817156259936297966705838584019951866101455964916639777903827524140012498569082286289628921699369335462638753545490327982798893145161552606792869129438605671442458274432387906696051312903299241023816487138879363755453415899824333456093162964838298662806181374739608914922988054430174472625515813995950352013518730694883318652194207802318810768224950706159354321239878861927487636277235558215976085251246046037578004947437077669832259301008232588868613830839244160549058508212614749140622792623110973233570954856571475334051479194288012803305528908122201670959731309676294499884697342566399957111928407656676767573033736619969388612244268081268618081202290784768058931772331460386694950245316617780561537848974592516859124906268813823937202385783133809527763595150648750778220697968222822654171153800045708788304992537143433675892858820509225930092882092634361421030817089758782009247035891778953475817451649174597129994768106760775958120090536272772053861123210612959637563908832065435686780854378452656765231226260827854345651204496038538597420568553540118187144537836067910375530848605947321607546066803723874393326685431106777924982300522586091058758272207534179276923770511554682656142829453392637869470491837617842647036696196160209606691123853955321469806878785450539524918049563863189063725817658946252884676236152826549332442092526446954099556476496283294494899205589753246926593031825707817706732762662577953325995344401006839181961832803642635765097723284185817076784624964529174970555801275144413033121639330484823647139813026151422443204855812842385322551907586940812978011061152827870427540064402426245618016308988755868416411305574201470901120683007032144764897262499303488334108851209095168343787528923698191004225777609188975610635027103493123716784345910604161322108610423932252871739057850364653185675519700928250146207469822372411949420654490618328237056063232944265183466379299258715398400565936349808693810597305891047577398849884957281417952417267249502196365895228745954491236941425516928000145417763890067256133178850048417820603523946517210941422957360672039631125581524771524449785794791698296418138262579629205511717044198909662929637061589210368872179820185303411098767771711898822700810915486341090548718036287852583421628906934804533630303170709146607601761774628713007207567128190398415314326805154768437468441662990727430423892774459662285819261394219617385592079529205042790445407435073003343028295701253868911847352176305965152188393877777133811870879810916067649345467384368841769582386589104199377919913984782030066236027303178385699182206715444838622820652870548368192286719110470021072306256237805006692614277518857996525271524148991265974756933605703466888484957913823631255594604093211669951331330865894776065709694163891694133079102863998491943483965536707164870662612317997941400236558410035717853130487652208329542137380496822105532618151990931332565306734274865765635182459512621299965826557446444698958949862396741616912557936383232726403733658102704286834351030928107226183240077040869826187612530250035030985087282329031363669457444840721714342926429187762427276121364843120119056893649952660982050783082799566373309491033652517138175181016237369766408522254566036052419657911270273752015769595667682371920453759876361134989991597158878342193956985730653150469986934791007560012857274153451565834586779788175579038988486513344889271511744549195601309420505090150651336226262725025752256570681816839334642795774067365959304731530614283913063703666323507544385362377420872520558975306631315342964886571107000877654931142557918574666184990291671560179414118763830547968724773121981671906816019542557467054181203820116003871327905383492262469540379155247416093479327462490751852937375058994338532998765075776778345672168548330636907837951038374566648864597125165794999883849352195582228877104601474988695622442686427077641542732150883237830268812566198169299387394189697519773271184328052606740732170403497788118841372440091990490872522232975401323239468894507711338079110287708774711967898552965874702254975090602809854817040134654247761525384894933369634718874200102623450074200051962974765852317076279715061903307599864965504805461681050446481251073428886132743822277119669713592636989315815545212061753186127924886779301262323953927957769302915459486935199872477388645597139750252363983818836500679518716891478843579502362981763971279937667272182099759149430953971122649629775325841705502586096002679215871664183360028976885937262071919416995326637585060350261626831894931330490256715148162896904742661564954317791709770665799324115748347664435410781113497217863300082037119625340269045765579520968691940763087958456300705546283692671996199198481384701506282711838193471779598718682771740429958257205810565001489637258613477641623453103931710129826686729326812033305409291951451348833270536212836950197468222155734088306503905135223060752565094031804533120834073413829843068504288555136086076589966414904055909961274127826157720418593487793459846659097322299379803015988518466013689803820722800289979137568572048713131860770706305688389793689762382168127901479562343253010958821104796405002757370195287624611150310992072831551451449404792844328323013180524547680364516386376230171070302889882028066537697187723555030566651385037121812019648700301895356831457167508567797787144191418764573235750053700111484435407576530117065267845807732602981484933370615412048245333718911533056756878412172546257762078012239491260142597018725884673625118494302924161594766306695191432250231146327197674822808408718354139961807770923019074011951233878001834115230298617798482176571366673393053053862193988592354750232686404315738429423087697537794483636098318195854043000169096603457835964088093900973778456041637815191691882328682490289217883122158227370793172395004179988299469644898779820659093799965778318133758020960925566959465991561781878600242993351552615977502057356138281446386816782752490405644707384092041527439793668615594705611856317771103574883147827092749787037689303146359940031549761786669456760454777488153581646475727092496386294000207506728506374141290021676222249794999977536861799699057530557795864990400357505749610802786946149010705800455011536776756334385159946463809965428671268324547475378744364101923644456343063940605075349182099278241547305200879477194624225887826570119771979027475166383985236932168430064433027272034391716914164071629593925675368481274949790252250915907604376092307683937958535436492115286965575799685285551786742509672861406702706802256036128434724118982937257381256013957896113388506536956339208276719500587913049051709278378927977525544618633659654762561976358867693532536607506318565193053600388588668486598446751462629701365331011155915002678128196655370839839867211204600410806747459564802555349987758907013925131721826936338117148261631928450464657614117314114687570239536276972453932031756563894701335786889092930716635876404928043649686336656880119332683566646947753062662533277533146685423796998979274730770697569560843665083260932965266286984400653806606075118815865282381730232116893898368019982369919378970542032503046839495532900007530188918265287282656771864512530959176072633604584952910444505236061169107293961095410145278144650788774764731789694372365797027777690647554321308481493556398051833106698714635514449604262389277922434854867809034984988384828365663485363863663663079161812337735355928339954292416779576142214895195183218878732583158273511454603758449075811144347344007360384560273967922564305959095771141913418871097576609218348962744567214476990032138753887202239180063316940796629816802615634795469641426611561689565450664532924827652587004030080846818026561205630375558726927691706304684402284170764890855029760036816923934424572619406656423983444701386394458525459183940197260233818983556476655485299659548807767036149392575664584311154207444773924208728957187778170439785190147378371208374609239499749758239004100676255574861715318324216469561130318828911892637525612693763494542156479780529025502090955444762073954296327054182650265893941298353178241958339885250656466080217312227836994216923269769099404694237307220374122366424152527446070790069122380581200175236914272180594121813540972912856679135985689394739434133730485176484924870921273220973138363812583636646476273163679500472405379591786663472690605799751809722543691970696357657795509587329591035817523123960655501342643820469876865032275253653549589055297047682987536619719731741348276133784681006612090820921374077852437666263012938137202815411413094435567933508364929289445077827762087513804115465231251808186521329368971936535342985726458035172085207660607758479083006357992560000580679014596883807213868183368848684444263068997318963998403909985142952052193882315665149491847779857036047372910973596819654463577704253210377725425235645424626924000571231472289372722100781163246644459985379849431327105682305469694527896828456881854056877112298412115063511602457511282264731667534632351060317302477326439432432553261831507700138161282560239377882273007158855632983267805003937555264764657134607570596382634734177049570869836753348890657579727023178766976230232039603020248884658021083769260052772918367888151331060368673426556144774490731138376508507134288375865869997205342665982444210436890725562295071892094705877333139979835447011413464107280620233510330833161105903837880797952407023857226213865780852969013897406723712774986899673579629948326917468956159669413172717016841121689232104881804045174362397880821483275026299245330093644918665244624353124700483638416169079513954415486375239622975921787173900625570034984963134220802641911310154241644179309182306293529476882237949962549392185974419643706183148776706004348121639738654396358743495910946374382406038549784838124774002989161897494729995544062011431534274501472163120050724131892801068968664200643238532619973615091985156128458073369041060780114041004919356787529194703576347443366811644783505253890998333379354274078126656670328624028353368828184732766997051424333769849660922462799732647340645870488846022207224759251565020530781559674555656699060962433210528810898024311228346336106061838432021725697664182058346251893430054924060617568701059582021108774097552608152677265864739491353642007465206390901218992410559743130702848870683240259436473965403613314379315752279895863102212932354699350945835579784280610125938930505435963031912117927670402487551432340853508095308618076576698701156202084267971331107135228035213134545019804106040899440179230738049918238535773395321555604625760178990087346434265503579545184536596821258945091695711054072758027040161632635943680959567958132930670209844919009208226889375136319480412502519301590264160916496092155922429460755692443539140993128283760944918438441155231182574101011711820652484723131326386693072296116283738465538744047851197787153385444870120691035611741773150714245470785726744199853647151971431974241455219945309237448653146614058420915619385488569953524246820160902546360928547793056693159194658543634053001135432566817083340189216763885596527850577343429068360007648181694645395513787050426134548909355531461031444815713347058735900514098383386283839755220835232223714827145432340132687220442985752083883897011068142607127962381916191378794116945790788438824936884371918584138955793040643431109738389234062564181411826753545480600265151443358424140179828098337380769280322216634841557367419252515740133673091869100515107533128406574715061566419765874563608859252224235828467392582161899654607851207753252338872477732458126975543154743515621059490500098852718975496541906756711372397876068149641342758750519682809520593135383739095871036117587231136749256162108841484272824316081714159798946621570836501522158975320847365839606532342334136814021562188515908115421008408608202876685893766421720808428609240034566688798167757013732361908483912013266374258600061388716200129960512603479758931477214324584210859077075216825280963321591428457405937254575941455017538139417359207607927710483048256812792362206006924565298446678798415775657880492564186741108322445803671759129825420537075355342948661106636441647485883579443387397013505595985919443500506953327492268820780441139754029325704249793363152720527804102043158875177976696262542880637931070799543033481455744131353802494629301103039092962722410087145671952130778317897403913736595724912616441566659235783463420350987372964992580608700457898037564632004397266898139951767208934917084654813785168806035485201643892228528642753712906921465780523069982139351783674831234316792794955205831587049511669034106308416700285213803332071687308703436320646992385984965472241371634906596518375534937754715424871686810481926148843031134514191158966911129332237221351794343980716458265242885937291017925211119614381293653292643732762818038627899383219618486392862503574519768194185479622496122793406753761491237539466792816755930423390989686803958745595645755106707525033221460927187031214231155938147067445714062412977496488379144762317520090389373732473657821924827880613304666599573955740965514545841222252115486076317342831584495954800112528984005849257639045323987894041543931738571434636864141902141726825199302926322013316403029325089243304566236108120507709403082050563644712277655275065228276680961986096614475259061656116652867183237464901480315665187281999692584872712045541427263316542523890730449954657479241589661265495425299549607443156068009466404013944977002763947013088149491118011066952118154375540489790325825570956409614782989979781896208904432305427849889944153646048139132739392586451780255123022372079096318002709856529016582795837494268580352012456540337453517745520731036238975858543970616723143628397550452373199505682966093861458091490416314163689662430541187902617669908522631199545967603218812983953783774314093918574639131964529154871509727983757208643850027313203997835349370178055082484346697057151151237331020572819581166850252863567985313171981492474682832229897040783182396887272340482767294178273117818037682901595460117727847707989730793422021805803499875713636047212479213709734268502754560072375254449919255299624217937625673329176449357376170997454899647043291029779587473628664147507442098544572834785026715634460073730422170962254191927134141499376471796122972840917315459897564542571514974126545709298544507423651438106555471284504621003979871858119426211836586229316792930424010521617531092052469453658497087472011160930540980664044795590269281765929381886598454637545656469991349796151558743312456506517648615302581391728114152881396687176373231168657561064996578848829569150063815520756152813580969193425207971381763624619903255694541734154867615178187238552197944365311978882960760398747965480065798370809056597404374605955592962709688396336744682389793256343403534354484036692338127846216432259728889910212517954602434382654401813299741168597611006692348504222574488712771989116899439714419749541413050201547027825065726539593677662065021816757960107566011572659524939059045334642532891244706067105486288784642545229867774020996750193216929478474538043773611024940404236764376709878858016175021880113003816285828654467403664333348659055959926825050065807258788568107611611975140929638228652866767566404154821982045768188516310525200567031268766695101058771235053592253844065923051472259922522071169102631927946849331380709919314369423653758716349356822167927391752323975676231749622173823396363458895242684846569873258653935620912971197195372252257580217478184026093947222454524640209097441166374155001476168118541704668376112770581151739953199689680079036855551791316687232871435062722376786808613773203448412415119284599831841388233566576388850332669099014143822077958484031469596278234390104450848284889984667691614804612139069923114125311977152503923467982879914429814607392872719047327995223988910291037824656491361253587246546956272894971480720720362721028695285394916851807973138260124828390356249536948195413586980911493026376141614288967378369272621397420898087139986754628156511588318885213722206697908892919802857304050311104052718672633215199364388438435403949003896042140804992272134866000004012168035706531931266683831436246371013939697353081996154894652012810180807343270443670653781131946408529392608738789892555252735331019648692449569997703045541270415001838924301727789474624847212449413442192786309814178629022064285078700230018701921202926122810986211093451603152905546025479913519918946753000252561091919543949384940421160919749767742993033782769018870549695312721087766342154997905113023738736804240950888132813300887098549799688349092533905508245435640871102968616238666730255594683936553416857219167290009333850788072135491809342416015953694992779822788942382803550372535621181712880846104881237257907454778604143462312059773818369621395308336306873229632841779632398952097773598350150741506332429730602025331285864636237796296331234237050816940984890519449569119610387183928467174357057640417623992376608575006089299724072326415084419305416222229398396925151297204152414176138889910462432468822525739884268762706436667986115399117139486414423920922147998019040722466305525729136645015237424290719636325537369780820910970505402002448056067639852284309785256378773581155778525813825603464193601103617309553518170003088310610193725278121273735958052318843296584806781515589203710244043777889627299547088648409231465666684169847599385213197286165906241182999750725481436980525503879092867638211240064630366076849465428417525786963990675956272276533004410575755412459436210074859590001996010510552326419368185826933103862614212709688091666718236304116238610714552125398621522353052238904844516763814793520362352656631591927710254171037185788625316560909212792084596696094719319404575269319942937349769527762408680764458571685423510867695751224022928433863375783611879986884872292732771711955776815419918293969495757190944016532163987344169496515822260774185903532724591279436016036677562562226684046611983740158645269640373735306723870809725492520978974996222835510518279927799209583300724104084473531416955727821047953852100177385702569060401130006257752582439402362836533187962685604285007081125512929429527815685965015885579892809088282107926008880534275531894952984333739965641625559192399291760528160293830158935767361405808210239524447864570219770935702810298085597522943796132762541413259156881455395208500662785177713118980673356227262210125151119591252098968264206257084304485836653209499010670071660693811038928670941475993371212169822747325404731563084311194411954456441457206402281742876517203252439761958209243664351565179557421248848621789976347020022653436421888138599392897097839146516440961943131900672302488821432988854763167300229219714143259322728386585566633457560832018393053355691446665080811242056920692903929595314855948790801217078761949913817979367381523791198912094218213058511521568288165851244381779540789785537412521800074920636161380390878807977327221615046233950431647358153299117940223060404565850453007674382414072429711364754008534428358248054497945761283928868166010080946688926762250360138411272553161359611141428658340073824432755556227465255138441190195397134359163534622401500451875223683683753221451308145120284414264984871712110657917236072305645280894264149691353000709240361512033006259051921555120850828106694504432059515484957068717486824643056806561995748734671107048280315514811050211081309692313741355399687798192069479901599925570470328536521327498097914390629652230038751717955509393130594897741421033562509383554957647713365623466839798377423347932933425216671821135376242791086849250710972707523238604612325695054400366633100839530227652656589752239979903962723242516881623830070906543965728279093563602911107685631512692071402975955503106802487775297386936539473714996448467913484584360498612380805671703386434751325498281047794669161475837173264860850854119526725102173311318781038004332603430695848924120992287635983032487514417548582593472592287298304219277560346442755354958725123372094314330890478872032992342761191140119290608204092239974448915768883162543909616394907854906669865255013753841300423836873621206039421870861638890430148581728109119114425019869641255269009337898779344166177064845277634361680647840685885394804786731675689732116369999040162920941228572760027493098017146058043086112889493310271262275388745827493649697364807597326833525918810931141803877244883521800327487293815844539560780557821594720547048479068415369472647685203988919140721546676263754050120073368917134176950918823648907600999751107331116534182116240638267177296490256570442138544032076289214553918586725036079446539269309687605648428254155443315490014641689245476923923146592490678848269596488469011445011185204097052838552850920567798933015719039948204602536016877430541655878198435887954033509019141058328737337347956770377888101114999019830822902487956170547195100577279788192667076144573836241673185919840076569408842098846730298354300516483945651419247014243997177066643583778726706507734297425647999722222048376195271622310932499989990946316099235290681153447572240749433094144652580001573243497937744384558734815560154728696980359190412375263440645801100725001597038345036955484585333813528848811877304695826563920658898713728702016339467967975997444832563896912048894183740889987385780367073970754433736239415026332801728412538039758619348783167546571598015796085884033270895528175649494637786014052231983226308324579068339945849199866521507208553585956052866225232540292904593342710968644770937797956380222984629963691993250178582194510886870526957932094321397206654705477840802237672681376140125005938621022411185580798227454239462606245531778962430737904964760930808533198395885011370534466873335983815895226952994394755168624978271347465112447038018078725533848191786373744089961349612570898622681917869701089894024262335806761644540808394800529347293365079718307820958194410550270579289374761436450550905332683772821542342035122976335658793740958175686241432860715393299660174122266043412276321495210291135865170679281149082661432726594094803091045842360508951925188879087284977988710411571848793838989613167216548748368913626012316397117302315340836503064939191259363462322573081522478244499785235531674413296805862701503742866978751222584989307199569774307523422714683007035455332237180837716845828687050448951256349160618530145895328967570878414993086715883545297981191140637386935915976414970791992502133989510885345087412184862806505212921899835845402645192097790618858201479238319973107103206548791657853661067122420134673390087453054230512301467492144816628699359740351206346633812436367896594860449145607319829419096467321320932272459042841685188466642710717924267163402684450572244249474440507088608765845246136225742925206395875456028887408038138230515061015445493473224039972695479281765638748815214037656293922167281764887224820547060165267241472645931242856565801604905077316517314791107715025088247281245593488432429955423328235459588887599861791836088383551669630770106429307205332185044144865305547890693594666066089744965312660816462612071168985147873365003334285900342664103187508009868583990598891956005934507397471238768263027559127114464198408806656222062371551769170125826252560523573112116416265893650913304292280568940468872519111800494270759794692885771330480309865913743106803005732437438974034155478748373077906651255684242132687559812419056406890588002573968912464767572271174266513594102880299509332047652071764444893067750984701531358199273044220839879947748530638397066704746599222745759073684945788091311437390669418120053244755264090961322604604450813993242197662904067250740069506453740375167803148512859068592490117131355855027712870062233198399422905271253823126884408607879731990087216531790632597493269628240810552479922426478490930260891451479222558641031970724601325480771882970655236510164691202452127627857443120463648577914793132661850400745715914940577349923803781711382493101032056379638801423039932114072924528147957929026370656598254075372345711507482595214119067992063801755326502946484418618355101282347597618472596607590855140145587490213881580507275573742795224880598323073631006384876415991606420854573542827562371236399858719860509271447825858659011837949445406208122869394342745578775213315354197216363992491122095088988883213485493521171278127900520822971760138270726404487841102664252363725742403062606920299646166585292230115891950089905459939698733309573627138626453145016346279945879717332640581676657553708978843265177678129283313162231824204856146667916146392180771253464146720883023925775207333530623940190020933719514156935047247295073908187919278147477759491396147339519773946160246218416845758095376501543580142489548236399888158209058420801596748566424145065762871183004971123285179851755249996462034341450763505609530694563659087846746332602728883806656830776987108884814521444275292397840655062774056492847365565742517854092706890184725967741213966690855414376961133656374585590680126096833175457189417199486834526357274535745551577907119449615253595120047759608130255088639311978951280617701240863099333666413094371600542580559644113787727934495973215836225757064983387987799678582143037820636727436523741320478272951188609694915478937956274650353481455079774086882292803052993444162289772608409658488401355499571634707097827788864259617319657631061747880650851065364999813923112316494666963328969876767691737066273811357067414123650928555074206471146070770988762437094662654941881606906498058848792178729293451791791351723587594226494537985378648814059281272814897856215880161322839793035627147567200142301954187646932119300243438139700031367785050542151248626104606657846380108793550755690942771586256981681715457635097533125210178601269867372375233457860228813192412015750780363958695586253317686735967347080288987854288029875688272524617907602416407357743880155739712252142781848663529889590001935397511269520629887804465979578968548108340932621417071770833425538380091403174555447754392677804533243739736199769552532277592602987608974946798641920677211246528085841144829105280291582783228453559566118807169340061456087294086033722830236844585843222335468748165543453145194618275241591759573371560797915798448540044884322069842872229357568150293682179977927984953239471806159653564233539600199981930918107919169790934889700924139873849584195432548130048370789334264747478979303093323507433129621820675561238177418065116931602097647718318267923414280328892616743072314818480133596309748567484432178747008908702795871770176807732866615931537239636172314966924387414021762711679649922432053259754519466780576661588468052758342175592136695457282023929650571295279784970184612838201782657079572603337094276840056788030286597581375398404130649495582629152949698525395623642708109011406423201743453050955753253235653760135244825919803768593692857845742155523828343491237246130988735225817178030935980655914442902268652363491914416746375941222810829369334512574125866807674142026068654247309096541806587315594527788246237008822738099601129399127449167271550595033697390346996980231821718654202667398256365505358488499642988947452883947709059682132709587834370851407641365869480357782933036857236530313582064544274371972039647696222529018792505446180030970268377385046760688808425847765823026068314032904608004291572834927950598743427050063148380500390399337998312160160903898522575861332942908362530840914632276797489625125144573526594463635401798616229748292965631335965474489999688522854613851625009747180867623059983085423560134655598758402749047201202735788026613286208261266838000563799165076223915224156488556140248623134924174615478538074601801367172078875000782212779043476477620616668952008016647487418131073482860921606652762275294691919548903106478179177649989509493665636228226221164404648900142161557883889881621244282322579481180653080758241664701634135666547505065828183210452229471282196913103741300138184965507031692516555892964130614536698057343772920186528015524175316908101156245563277223973177560428757195408224331310489734674620419078777997068266356960713594463553153743068219645954712872942644647074273826555313133504186607794489378431104656291291421495006211057871846009398811934013972783883980549392828690815500416546446445422973562045196698219254630097968928619193350508851405635661660656065982490979878525011515625158630819022563434439082208036763895997338222773078891776961627130957666443182396827986421909929215403160455690494340233697246442435320248698356644411125752201541718094314795510222798609622587068149587150132074457125194999267741220293759942330557497761948900792540152980711259393259251870925302534766597103201849034453523489175160868553988393054510697793481903641255967570938232391284339974660894953848946347358437855167448767606183031201385527423081668521265408654369762514382641607935396763247351496383561605485309284057261229856619951077725792554700772589746935013342299938697451192672537752573820174042128585864051317977701994594282448799236742250984176331763057914399806553851336066142784404760934554452845897626592490110942544057035998069187460753281479312080377836289920944084599203530478383796593135224278633713189217654804859846424283220015051982180652966089124913810209731645256196013099207888110386691770118220461157936030543151133816306539572807553584191124496355527045704103627348420247815158654776327083049618760266995194000496145328205059191018610763452720770908195643437754697659738045399244613646701836032368322021123200431206451553021728672336609162167129218709697645168785593944996125116300298980206990018418485190891171245498846878410563597966153790651606069260631910787538673645725601265703005311426279116860590872740042973625491663260842920879496668721189106721548891072114735009500386143068475795683559334951635061770825177544172967797072899787878346448073831192665012295554087198258028583514361901831548842848388731021167452879740905781803781587308315779304037122348092104183848070522736961148108743638518921822044104797326910408279772752478488492938043831558095596030134263384963556660814856114982687643831472915074391171486733355287847745716061632024088724933206014212150221936214697576323954671695884818074115465660226653844087839130681548172668454626209241879673960649806335742015459840741552048030198752694928572473211779522378092091209988560293509023085516226668661888240179086553016142114688600999297487059020282427470741657116705405976392575922170690154959925761806551052398724826902869691572256271212190241758235388885667976123778382619601552422245978076543331341094562031639878296558376768378150788241328956499552718816841129492663969883721101307129508788419332805143256417554950190656161248027321449884558014050692186553204547039908199029842306249902595601317554956433182003336714415056798320883394914959085162905315263309729223987318536207297080074899704418461586737642567221587969261833234041747456795357222087370951099856166768109632976988707725819406025081207375919545867753695962915177607492658475532651941046327829239485778946303586940407438014834082363558299658209066220004634251224896273534461935378332362572520428229007512370675229489656170961881536210210318687767962682236714111716894182778248618808572754608710015214250253478921567659116264413117335388433370979541831965374703375526821713605993056922126453287860078834320918850463820765918648377764510639882855323534366307628716098427151075860719511241549275290370279117039247239006370495498654277958693474034337877516299816585101894494445013920119617303653049635182587331849631104719195025019938824458870523905504897286028625733111882923154044451720178741268375006862313941013326972041522452057634776429024296634046590083739428430794236991093495050574115959567054564775127185829004548718990077755182741819074189407970893062605128530434664361044234158843180797460091835771872853137282986520271892909018453074858388461728878506160224898742343730058583273411694217984744756099985693597353961779364137752961614456830842448630458019354252003715728738341384363129935184015647858637907722547265423047565542459937895426882419350450266270101075404790988226674492939356829700205634114052540638885637647371635009529303222199888083347496734331217454053226036192122264937671140124225939224356394717917798763603814026005727366662217575626042356058873340717649785300252862083240559970087723051835541818105843397149154523456565735128015201084834877776313536220948134576286240348137089321551829077282068235914251889449425872147558798819200094772193416158736834853235604781646202561975164798001850215778509962454571167623043210647342019187830171452783268062126116970484814914076757271765051130024579958059671979730880547828564958397597522524287524376101217960658340479555936660694985628285532852082062649908771825450078123360931786662472305181853679154276064273882379541265437425994191338321901981168908462064136761203297433389669047678721215780288276725886618779300191304529942035892964384445088770915759922978694216992653905137137681392084677674547016058223040025437793199962755464450372624061308309694277618171860267152448500572725073826987316682784687826628204107285680319435842612269437586776589280668918619957801633592158042331176321865034600649209847908824097522612758994049509015944643229198682863441938951788177153189208724013324499551427480254022184831270047805438563894003949697030182452691070811764931261166831006626042887376156002816830186079819225346205619172834476667195739290379245307417886290460080501942635011909352649018807384783563265297115334838255717792481207018019968128372521389781393940078770049769421967892955512494672781102435655005882545565929104986203960161093758666317166472764310522467275066187105813913378796910010315729238563617373873067076069027745903936379321096320477184785256496771175072840256210638594535720210447267872493526510737408328275085518307968014980459381084000369857924988573592160200237730568443659657023398985743122381258687554957932799170907957855306372247600417487980317827842440797874490085865979725439507145685104829078593920123941067437114836777930332791305151339144216324608107813752825119341654022921774042558465482436425544747932491625385595281475806960453485300617582195909589212472699840679101996323438000780977835008382343899962591344806371314920478037120088196526733170220002624178617324098323361912187584488247830583374910430113330128104651873767451229073484878574145567399057224892909588210768820248979824988376177947967805108286886768914734749157654224276710171215897973220215632485994558670558287214274051777945788678767930978770188274286031607811798723431932118750314909663461526396685418399025558791542735518926867558806748244810789580315572181576869953073409097603918027951492631861062538924298633255053251149682915428463180204062790359949428877738009772243552837174606737921087979669756065117319844790973923785659792259575959023326297083129268648043893521379086718698109834782962012562212761051206073787439150909925317823123101727020625017219538241376685247115471061378987360938548889471630980166269683832244087009559132045102867095435054666752435454386614150547058973827799388158329385032457577929961988707145039609889000398058790131694914662714356471037537426844161482522918932072358971907334235307017175721154894923712602463116001169409135699558633112999345423252529647179563155492056542885389558505645493587359954413633581018575630511243684438129702741851259182342517257100843487737379268844834860477647120507736863404264091698572039483770322242571013191778830187787638349449972185440359679737829037723501668443344859831530894754031311927236315713538542608806067438571872611115116602177105361003371591707500679675543328262191503455047890697001644995835621272298955596631805804302356949340630039926401105639083806902136672166742251880586844243267736773184202710407588228446419321117069339788569398427653096294519144555481930854133441756076157904699571329963268157893008752326473301835043092344162690544293623972725507818881119477969624845113772842083175539763201847739989422708942578009226755629408094492103909596977805039956725249313153401803788763092938449760666425784023515901254058007111512217191067491982761942464492676679210269019419811677143257325427977901670592231035588450465055833629060078964200116418200136488636505476095863301931798894450989637617588465585316787799899079063392167699793869539435054234132228830511114039409423047550142406650907856850946309207259612781476546388372432626475972735521316544727310905949425268986042200637984354912264043838073692832009198580697806827644007898838763452663669502046781785501628630766166515125776789138242455744028680881228524281990926847057721599938330907521198335667798101003738050536348444353908691853806352782503133856657258053769109019629248245795359769392127897946661239610480235812295592142916914576370043533913890394268581581578094865868594540957636605131784023225536178671884601617063072940610685549067398719337815787433918442249598900956881284513513742409573718487449721823734015066586883814895712798185522179903728577243358266626342226686045518243819680114698711254768633201310129190079890375501690335278552461003673821088551006488110709437116900986636293802750395065224803302477077080890160434757789328308846668792977254112541323890505897309150113986047085568263197789865448543842518051512918304895675043434583706471144226930482404552297063351954453440691036058751354065767490963337689713849528030015854265548831713893211343736068040010218575000543109772238032296421502476729099568701162512888432427286599474441937784272516700811141721628442633296897565988571257639401620570688305028121234933180679197262630102122602101173733942734315942224085939684358951333542546731156295775949177505885417895871052191879437210618781203208035197013704426461745364917768496760127366888722849678612499565766745728926023334058073908480848524051124064405491597159329916259175932468240997391617400199414800985875437179485011749896399982899658638552138160059210817616964657595936855382673689786705624885085349117149996889959114320890597310342661648634686466184336522138824017704908691259772551011362771806097480705772396989934215129600489732695690582079610959290893607362285452711836809472719120468271275347228131575517756360735090027022013914715489239736566542479385396769606923849959484304171589345444466774069196565379480751314161472621097639830119569901622642996833860979515762519314997618245580670451729409795261908151853624279166332744776548583744611883624593279589882716649251941140928358635474545552016464218303173793357108126590599040266682411621582571034420383333505353382169683481627819708415134664247255100650809479083639077912402961737367194729829104412152377006731182424828699414547065654879905434890680090213826188730718283646482134255777715832547541593380639079568131450924785192549780776079112207129464312448770779096265620259277117849975427981505779316210864167907856200933604386292342524171554821796839246302220829752672100815559059760170292474937368149955663423087723093957905084988843034606679619333565694242011144432563926933374248876062386007093276329072717761838502228557223697346889582204084334818825944491646844722585961630481187449318598740248615082576523642870709158832722852593857650923361583622797935852268246990479207236498291266861045014408666507111707967044040377639696011901355077933080275234091688857650954438137774727277985469354722717501823624178695611092801139026932316690412795735545695348017750044906029805568099802221752165979285179138454861165697888772114548627899692324859302566383712323711710891389046839954881517953044185414635755092420679859105734076409323841042578819626513323877653568781618855500902730881170869503838284403045327925639223249648405709225965229500925294968514267598002872350781269863478312940388314830365230895825240979531060165855147555743664362545412096147153317798628719580796569156796689950041109927818778877738008153910305552777775741473904292582947868686393310290924102033986699167736520102190073214734174693639581613260929433119660284831979393574253152902175783694387979362028110722437926252188394664803501964887165140147510365204303728507358363100439013005307948555017504818900536609673455015632893477056631407888317126113284241592061898973372562765909111054502443258142833021225664289312395691674773938480143782523606072733790754328080919994113314672082809748262512247361400181347126069692873322280687540364533898695702216311683091474184840181169336055032029978753686826007715772275067036261177374327843287492742877262266454312475542051235573326116769850676998385730912790947426447767090438146317388621978998299940741377456656693331194538248318495125457855827760401219177085356282313648137195961878025109233779143482613632970532012326219539583376135374290063083886765126566524073520199473082560946008165814993637092124212636558875913422556914138075888351032317731129202638548789187504317889589935058896598231176025471098577292952798543768309585737335740706508738276425494946233205107990615897788521024081109079892271998995182877090479485011896538910190778547667120339350580184069665465521409870349111626252703137787737432489973363473666146544507248329405829392089843664044551196895166669866302243478215573676413562604362274262545058149907176315306404875144225132875438346777686081325779166716915914118769364523914249009378678892954751156467901922595320816287042215532245851898323715060737252990192792558337343532886448307956552126137791480448027792604905212051636359492734190186960580520320323168326662373116702947650692782573639442536670743339105027816106878953361068994355408989532472867682329543244846940379688807959004473585699874147527601054546533715482303377917980367404818994413302701070811190328410851755829272409822379892982250722608813596666330463862044191932220315046372735435606960898912823145044112124289173248429046183068948478224504578537509634863650292344703072228048362324781823045795529913779846187715366248172602297741892524638877932571008585868571955572075152873504827425628734876324308027292079807195872186482820384744653650202306953996751081493848568312537117643149454893316098182619773097917294824701418215475987734308967071869128992041770163733207930235471663068342004360171803708664751624852183960645326385506070678238810148338393270763810761548766184880122089775883637031640285763532844442966741352781179174162311274850116019371017046186592172355178121210407990202821093020587966467368908369816598775142423094082789533575797017471662147219162245066776765695113243573735806193874204338636004867959828837830101536397620645207122789027228950127775156406463540847475332060595344038422307525560829896435254653878449923990900820847666232112364404981449659789000607434455424531892525743507109371650299565760465153631139111324942510910018427200152701527909016905144942253146584231020043285834515944222894539116521871893161690997873586120697100086341784515819262893191497027957464528862681992301674290413150592888377188420246731522517623214887282719590387878531814030684907846664065964887502163138792768806758829541791904326034794829255682589797795197786798812491155420948772278102081546758846503816834266828812882047300519294684718098223875457288684293349860246489244249544748436899717246080415757998137965807623290359270189633828579266436486221653970277119941204257820245954338588687150110091481444181070460413412752685497272502781351299229352716105406396842740751066272169131718108900064276077063500386399935553163281226449150229871108563842507685622445085042667331806382722599405033568124953292151228570986262251980348729392066129228068550299208940408341541398495170397294131658101201149495866003097319097263892557188765667994367562895163019932835037450658981874530768395380277789331612327784659895401944143135993444428821265783920428282681274500521133241008259782062166046664001524613579861496558328640386646655609084865601254236474866649627672189081262669552269192906847210720691986033178208462591877953711281821961287667995131612919172898476366830700924809825880850532207413160294986468147305124528666899172173624253459415094035726832978149011527283289953573983148011986781353551065527578370079961540604509934962564456884558729872563247658249329902168981483587708773628450668794887034296303046276332694070966388342263095123928523517918507652125131349168862073472531652453627212119976760472329790696758763671537590872189429745279060379502835354686732996302900044501999557367571170027682757582560138012013458304586121615746343630307988037542772607956507051880455604544865670665725952213172880968291713876446926952624691137786645376011292945225444502191038060333957319078848736171647289302405577247958993833266334877507281504553859331895060948054533355299487829413978573081421795931914596632167090054703993769489828275053441479806029989645764535431212598757081431872715596389471448040519878811267230659893477841388609553821669853795717604134634124729698740702587859603689501575479788049627459488633378712746968791585281520521293639549450725409247786434015040787290239292261662547680786416690353521425784055041380647604693347005342853193552757264413971856800698688363979468469099039860195569992862786310848345519383255511040680760824079256846173953098215035466321895163875467088650133778216417430460508259631385862117481080908335227538671484750837593222769212664423879501086006658691174382754929996109357697899274838983205918609797838677718685507717733899530684369708576378513455340149735088892802556063623243547928834855541765889108382329385929081796790852561190205607403742819918828242583171687372808824068156413323948883534231768386445227946268976389835279881241431689895609601865736036212337715313440246489818580719663649655351272190284472768582981279535022232119935942723829341050620086095072502113373809966217402158341361451725094851795854125736532758151672850878287359131455450940307453544254350169892755582826991212377174564790926134905519112734046257593320449536131188197161496460857228740939328819235262282363448812227302668492115951935284421607379646974149898297401883348504491278620256372802406664455984307053468583327933880055042842907742936530957642111196656132788340543265759013419096600176706905795462359908099375519468761019447941403164401140397368482499166675696561283796819003371672410156833061568964347173213525597244896395791828756585409131107908392508525370715407932946243535633878082172863475187694654185362246040614592147300620953536278740156864227889287390108116134483729150169851460210160036981921185300892325669479236355079261518173919475877057615975796119624538625781934524713905523689364068501428340179168839211593717248810057597825533865635908230416047790074598493250694514193737941202381480981560537572363738995863896956543216270975560989064148759370409681471181438672589596034386159158816001200118076494952513007028593563987907505975084064632040937910443578632109408236223862953873314294556068326128879569701380441713687299719931895507631307454344894491695679213288080439816028399676280166187270085165821417396932492156659214736247288924603208288655591855003090065834584260742433698625794399665093454545382412001108331760063290936301483186478354308237276506248564741160886233249425420670985152563990895644450946475691757858385471396953083511565945052122552882786916900690186543941312598262405893457029725895363662961711294426791637862266968816771565830433036181143517174848834957285494586922472815936398804999062547971264576214379021604628560436717137754846528009076931461367664927985420105235672405951365329614469420769107161799255661636632026626405587779610553333284659218089655760568551555084868399088051979522396485213513256951709134871158910688012383274904417675470880038826663809426506514117234213979348627592188514172438744535194763597215427288534458177536429084636628108830033891439524278742774652101920222258502878464752548138828478139387124227227675245566446076479907652584302163068467400082438599517680249248569207439724566219312729405036165702230671618524482746601531157628231381934611800060713835237200466822144975517256116613783610491846259502421653899667663562044594552836392588363355653859566192767180527002431345817074700979389516918413640104304985979289085579932510629329930966832295433554433066587353548479886067482864734175722667392694256269076583941984030815399377501916646314574692295782563587291021937798155675646928590089467665234513129504574647906566456377888714688157790667566870492084460648745018980357559281787837666073354580304422755752087151641036703109641358076764687903520496234231632808459124169051937203057253643774804933683797549156673067413662289055789814157617303080285778613778342548813414220079142696950838996541007904490820994648311982393009271628934405186198471008532099254959044087282956706485571003340270123211030091754739787845832234585127299493797249785427627258000098983266061840877861285582977860072323934421489900995925347910697122576865746060155450951760552314381207416983342191865551600604275575862153137820537856059118998333251559720759709800110390925840296696372796191182770567732512699012768288870977113313187960073370129864307712674529429758885788335676920886773535172125530324030567488291477017670777280049195949484941014876419596141044676481995024955295642204214250995953134129365091424363351511169567896270610120283853346679112248253486945436061457780528394640577752763871757732655653730530666929712513709366914039321950010192532247961112236216683199448829307833973079729388430020939509597734365043869969573736614904222766513686878828818056276802983769468803942519793707341557879843732850901518945849414360725868787591371389046610212844865942831649061167268223331919223251802587635809285503957088709941167063653474931838187214276848384577309764069666209477110600871068181503420297074999886098351264751434181136769952641445203718566798258528465218793441992430032826104596289780375807569059536527362382230023907227148890113776228063377264099744714524479439444091162540838003616276119287836752587508625937880532269424618483360641560553320567565510401881787526354867310341347192810277776631754094488175985942531551040141934908194672768325753731106645868295001961355033290953021404673296732057373219825893766822393437509362783162564173976735558799885264495196603373885000584370328976917703850714243725027046628030476812565451080686609526972943747502290049819501993816420395638300353115054049658025516743378730774093170073594193399712752588996189223713209026568698633028201843957909128168523768240916518751296761369294729223915261690089743577972488928223088976097312831619927265621205626082913690638189932389082808591562886209491384596875556137961417536293439887637184420125028696179864701119630042656925411492370583920938006980136896412658752505421977564465065659372534137720513696093376840093901769982814000099213868915301484955912271177428561654854448118569306847621133231590958911052396536690838042146371022583113026634492992792186283901030178833250323141860338189970177931606958473545208152677582835642359889593383519735029951415089508748870833418356350351943991655045716252401862459693781472184173827252717234836848003679963606779524338416805101137781477486604604537099102961076712328217052588583752751143917935179259847664132155977166361993604200756675445853668210036241826787677243763814779347804648645967998895035666398816906978010971614060439845866772880869130185193802394789062259131818493471901364414876092020916531500331184919759186341065991920507158552986305814394976471985029453848354337035392771863121246821445638922863961739869772275943549069021830815129416350230567329258990189969857997265911846431284011724842953181396533046660047262815579909288541627500005226997082839994402975837602245973125310389250140397167999659318426411411105933755528993204191192726486263526817876966988046673084697842749299022295917522289281295141528872139188591913553398893323606632686123492916565115808911027209729905645141104890595152090679236060170439644814985338701167752273883828903393356871784316251820113391201361712143088915285304830545927519024616601484244691988875269205903947234945292367815564328438928631252140209895783066967825108139156087699666736547337144543389083945867657004917191323709496230588474265731738627438546412511742550277086970387510766208482128151245227959950042393006742506230703305618135645896588554697724340307339308683983696625544316433108255165883905475107888511740078962706038609902152573715712830722331278458768636478642705534370818193099445718882269109896306826481801555088140525322151432674196306917176589472037032086076753543567380528868955452014236063718522684491150186553702968194821343554936897370837701595940784181569507457869518423250566999193521650166584178955484600032235391516680499370450583530502160496909063938840427683355672605718865861829197631695736877737349213786708547291440002992418025695045017008575325963838352772147409482421100611659438292041438266810816516851881118512517365991677465129593149995649410700906387317313419561074129302260154472178695976720734248829271501809906196621993464570064189975930579416290224643207596566978358987575436903626478161822455463637441122657485893084545405498945141999684662886816827738186734431018498406123904794943840541407584986803172236131862969709880440940613211083207112451018518537554522934808678920747621918080309015524241365628666426634491995457957125003825631288051292398291749828637442865871265041762328958902677406254452016652866433593391708945529042793374023443144978080353171441278044499196462144811020731407284767949164326132872126307312976582619843033745186828248654183170305857589225625233284968085501316076716086083845502769336836373034555527116978350785535281813388285145268634598194382236162950856985981675197165508482280691473113920548867575931905904279456217987721435176631917530939946993608243710979091131072526473387265587462799485472526946038232389674912485791410542828971384032338922448900231779354248479928231196652818073664130150375309870271757392756034691816832331909558628118162530683707763278812581515763525137271250020253642035863918531277116265009006898012192105385347194654456380033159887682118633500541522947399493687424206020998262724431017361602922344005080342138429155271429452587451084192167628399113016200564195215816221706251241458035741691622317059067886850995999997775486508017017801025039775185857001325484634395848521844967622491290990579218125203011975650306679197384725853695163261340369051227431589213247286926707100186755009754641023680865138290647299870535322167826340516464166440912051588524174523504666907234861855733654978077830270826693279709741501668463400323214957238196411135022667882958775026027045014708133484793780117134233417224958326178575419763672760292219454882061681994275730847460421739646802780530572205109917986143026199710929563573761139088322902323225681981277500387601857507550681113196539167206083333065350996216662384701171795507727203276768784053766744320461099537695819497917697400068107110142397380103325697676341494039529558629528060003263442082059417857638719749753609933845900171613523369822164829199687637549862921972346703755136294352291543083823696731059836140022060440395615599163410026587282443682308126571371266211332856399697110725240078316591548521046383501414237014712911238334824056523896733541281333561300454764890263445642853776867786282113593457020222445048465408896332279219873018495093218614804359392671943982529301991273329595849514324537194889984428995774911773092281780899205353291688625583351796748106060213755908122580917818364765844466490649856046221737874107172017101299733495403762501268413989997057860065510190122191349261062013084359362888997422010191058816759328028101283618372460771853367476255436419014764161741403965048962543283812220378712169376362567750450704824214745585693065433240094606732819246017479697282741351998312500367885464596052217095102605175773003961850099710863355547467713042822624618309203514283359871886491416890852558243895090684640729933417084810895622457912478863573379125566662112623856542369799634650293660325407933876666933135033571882902498777931420587865919707530123473214125282529062727019806196492932007944642652242778057400183949166332233714564836939241296694822870362296422721530358182863417050139139678043274357762384984873968875589866701461919285920515746566083687824974138166034886650438226239811669869125062886380103280999150191327085417241061396829834078264578019183507666238832497736849326979508078274743918945673017855728356071258830957779130645245813266247936724362832627154767788028629602752567597504702308033023649732496614347634817845087460186171290567990521793713957570215932090613208843166468593802162241077330685249198247729997987612602106809204462039939004686456058826184205823490454626040081274043291002115200321956039280163582602827816481861117222167724657969926069506033392942826162565230198046326418472315775313442366224821135505341760780114640320148983510484191573983409612218742380432135853299267935083128654256869326739100359510066487384308046284038992097604914003215858066338300842802888408936502473910138406018584137688641259477333194073970165250851324157796074616215825620087920807063799172141220392206861135907232272835107275911448094588138429147184680732694238959658002540974046628383981357353943066697166369646763591794758015171406761533999990650827878615740210226708847640041031993491652524123277577164902432469315677844306529046718148461658457096242781593069179035928868508138293860964597471900992785338357044370218839905800231271032595946745398086828206640380738629865560508814106614278840354102700974754441334525651501843520681134446951717020056094757735259899335777331422095641866150741454884387806116158754732816406961354429992700623458087710317290423979831377910218735033296496306192141315603187164158325924198588103395451431521766460270316788580916604445641576391861721180234155549655942074479971957016132467298922659424396636214548702307988184317392161027616866804736496464878712642586726135074606239500909824905965158224632367399466630411579672000048003156705647703987498397912723131904451894804459702795336293251374922192178224103624500206305495882341316552620033189600309763078595564510816983764522440310839997116245071976525668782167644416893770794068802324035326487670124562064808008026132003828537080494390444668851740752150201097336719541432345233402760808601087890961382223008770703951629320655670564697572522346299782660560405494865016066887805236391962412239075650259031688814652415315070731295007016167752132232788288143945113176201290205394482964888056272851783803914924465024652385061054193976544968808371462757629325430709040171272859390986300867385265834734857510314255158514619677965625666174928293101667169507315634163915086963605744474989347814207772924192051044188890315816834472771949728479116871872207642848897843172927368982428773259454022930838681379017435030936018314353844916371661609930115074557531355032329829297723902601645600051893542039156786672430299514228166418428023890569095913006535715322049396877472715622648816734772670278630479938087516526847788561687684760001753159306099040674985309671094615452022632125861741206276702479663942514268448102948008244359755482620477070101767494435970554312850076291799997181928649767060173115104291854747530286811845529672488419967325026574553346085765119355716262786804486713509167481766038604211249506653168680716061601416435601649328786722655910785773014467831655903106836349550304819532867332546202703544809199503489739892568529015172588682687519591448766393962079041060455538345544487958654834497231662076627377642295220031229212711790802469657907248144432567237461402610745552242470106240390175073877058449354255492483116724596921350321252833552907710158746748006320486897859664762680903207591891853989219800288592047263650003164233851895952288103480435879306141283551792908527109558210983084839114852389701472690986662103172706108005867974179008288088895338746219780311949555948667187511246826742825839965109416054700068717573489698488176345802068404479621350733303643180333954703350026369829336530149596625822149176129138091620482957605382798043227540114792934874788705112941471465069886499210382557117541318356558064179433212153024385007138066095028437105297175955131497913240320610467193428710589404423941267415556191978460117602430691922716567819996854111851177717846975347319768357706300207608247489395959772400151973376570678440547132357249015983375820020872139339206338969721036045374945804750009647081701315737115054080470957109430793773267328652210459024549897358275008376016572321140757700937576052712132856452734953374332680429600395421811106879125152135223948139952021064153956250581819200685474307567173082071858529558720109778187310023893638339658948225333778280287890284265761951267286260297799229832299505678914891261985217720937727452586054906711168300359177753406061705527589434029191318317204050085482166631539308997736668915119955718716967266742261279531765287814904185232233202361526220339680368608800915506247959950275622256186886714356656962696716316136900012819924878798951386295869952869030292281114611274205073985303286689226204187072622063764813459136418727463214236944681411377099161373707503785573434788410170302977743598092895671072439238350662738142211845055552621073652132541979316377658634133083770608941024611274092704259559817813508068018246183531278682647352001946404029948932006358118856505419431912102399095159922130675360840043829050552658235254352514375618242241333912944836003399614777014129045457963216226291972505133303502299133395449951738426703656523448268720524776159530074997651071509580270963445690213520475693556787878326020950285634669648903252421140481875741675815065550454156776362685760295628153748959537580422454474945019249186734813499924733290641050274460941527956772792637686016923064228706076123380567469239845060036684965793646544548727441756640701975373370758921550216562059409503707022292435275693243556719354419195089429866501125300786127704052437293525453809816386204050033159905074109299294510962112927554240388360737168430080514755874797330933416853686614744362270048249833537631140882032123942807197377564904689005335552506720353936691287369527567689487786698195502271433387400074782870758430993535177129763693679150587772990532366990294516412681760625831092152061010658661179434308824492761338668340778137837233219137667196099711583857275050184179970640583137530604489679144513625201975676956959618892413050416202824971637411731583083109482546224225068445995864304770009394386500608956832830804985712461329505935010482534619729645011878542492250028997477012980847711198961451051979582888426012333143266753158920355885757785523745216046992210850965093294239988186986322262572674043867382865638716502296858295088123334212729366030840956973860131706350309419981982618774873156400934414753397861242381928850193502606535882407011071276003740330968237285573901443132060577543706969762204864705030991322549457044637537469938745318238860477863872552785156775333616035337239642139704158706807190337253324711113766166828037283376341789300232921948819319810372790817786070496086143925612082037080040422986502002181427382119997624116504741114315693419124445353033231461495248384240056909210648242703141392683879726111718782730281683113327036378330930406108254557698788252008479832921892076558122672672675439457151040765874361661380391166805009597906323296178405967223169393608931643073463398749124894303574740330894942765818886198322301150940718429746540548731479478843900513872862728330495350770826441617704507271916752564025027651840084845588006309829712230943494197860964374462074278735507699446502906046333971640190377755195379857857402481414636713410862759643076619049320226395809360029515994872275538937363434371118590004925370488299881919522595022004436833096996720861244426421332081705842793141725104470355214959805445784363535228940350889444278739595935970439105007871978957494352865896902128694999255360023361782014016579964773954526934320729181830971877634898321533828853287798586345180865189244230818194351433155424817032192678265882195626653831606423690229652782610907666363555294953062825314839859333487779530115424205619359586369420309022989753714499112922067744933726209108104937038854712412614637956029056893385195010264132981983894386153538457617907144897721884874079918095342885614117451351702887175854155217796483791695873310844495786844105465590145249665218272072703361467398098272875669329220503475748219223520467225683902217842861199827838363439442603308908437260800748533987983232083599816530760319310446195070764019055876338120550817023481072377557802204413221406764075074502317586029172640101524879595914004020609891493467241707636625018822389607726967461416765759102686567175766998141480970022780734037248142187078092693854115499750978175286043520387832552888385514132681605636446515886417029810657955628495144942563039779174551330109359542165238503088603394649232354805491151510245821530862543692486539074346945326720588369203131049291182181885924884576489309581079497982519450873953470911754944790581562674121888964658445876422035603568366395357260303039550890701304168700130704628356129271274088925602988003853558389201390695289652749318285352304804724207954942071576067491038892680501915509028554081067823719059820524514214675618899372350658083476625038351565641226843757292135994454844024956111457611187090381633300578615157099500093325818430784751447618688191722688375263002162102638005920904856157468397944285363495148047523806814369039084180549336030865385550572400904048771092341206743511285734700941352183198598830314655654728855080829385923786638785710572091652007266918588035474183516315942768049426019448973327265058919109553256360763118197075382072577400324558851274817877013577574775780427538420372870223257256046215936524547833704125273514016483476331937437465884090212196881634119236875306153365317316146972079178860819113443958280193568681201275595825663391683241000029515332339707067569973348980550809299329242565789837349453247741878292396735473236042005395692881310122401950229164400306692244417214212509892418273906287512994104290603147852707938187828508267479145999298192182179773979765869276716967430935787598759391462481839205430789645622909048913577594133850903574460178454636650789302792801190481735863806308001222297707492765926110048580816413553471173995992843065255878552642838746903230785837210245172644157447600152937523993544937408261441322496788599505026740386618155125792198192757678073261392769569714332225987618204195183622809968102974641603220134173683484451481793042909666614333674356203377169156438686253579716744946894032512688441129304424108273531812293765937815561468068955496644427965503479834816731705966811087181321167973089135926520961737434917576724301045420377712396201894853635891263065303684209014049181506227654593014551875886959501093756338657529417101398477115451585550082681047812653765179293538349980665459934029657308491237454848531849026627221784918253328096685955297646673358260491393736367880174147485838750667654491961354860992977896416630396203512264356380876061190524716954655504397805809801951112420698685460700975395377782156220175981107468619296975813297511049841746430706606117106880312947619543251313838961138298026946446606354370372620986665370971309442616218162352955044597717507629311444468130032598761896778486805552967490649950867973054086974367201560187957459237815183843279799185483306289128939312662647541248286674882726159221733898320631273556282590292075870252834854132124907134716853838151181395635699277310333984795828732126440133526571956779344354090803485586541292379059716914692829517452412402651819170110387426879626569316006875087162016137053722740241455559328250124245068059426336337806545404927477141060289441290691374092785720485565448245322873060055020149438137156095979571916475882741070580717402745555439562392068846958733658115450710051879068195036862174932960566095882658092115533783989417320319598823008717259444475891850041280187967470184303501568959143823808021924321941179810830023474833249928509134647740169199053953576055978651513510052075093060706404097227940619951546077443294498994208130171740377680834822588685882862039199068278706286146095652593042964902190800200049252499749889782088179540160403464269672953675727711569222893816767963239482313030785609115356454766078216252810787551300539714452127414574608986000100620615401695555150037111497027586422758739609833141792487667960881552343659583297797031112963534567048602064859314020490354938782457886424502925759504134187442034857409618410248676281989738009836009622955233440285671710896712973405288251210887465143131921276061916888557330615082571078919378198732692376916832122326428007539405386121229740595217873709118894904865926226786311506290357358037078533757323001405399976778961941628069659196997266391059096664271502520673494203648635631976751041666191783642604469727825744758943200092353692043279170532732668207770297853457063804181479394805772835571569883452133835732588521235545140018387924462910726045537434096292311283512330842341458193837316208017295687118883216675693371300637426847006616190052643607246102179952850363818947405175302920692418862436683505318655766744803616708729762713548683827820096381015500613133511040256759784368597804416362666352384295253724001286999657169141402326121369428028863298422215306283138704989420445873449965075860518114598611098945294959671736951377845135343326599558252169681742628932050225448143210681395044867869258777448704620457521600191048588152853411655098923483481144724568555188786346594390252480323674530830784999114569696801197940142243551840421839944571043074468242758157639670359461200834505340374744604127426842691156258857621956696296831707480116247023146723927143722863341045087595094505317891493092375531320222062206496788278121406477502455865974007374829602557624797244279603051077035411636388669466046316974390032400261312765743973419531042788332183976911254986410409939188406472545652247368735067322338446478928800152496779849500242422248618994590300179083613388207492034771867878391833676158963280343346959336528100239291591031754540631879880044591397890187085710882341353770897576039771433739988906113848655133905480544174926049546725550917324761794908752364597122789070052252775732870899954498611764186746478080608400745556251592536109969018199008496792102937871501450547802353003834651881075372389807868726624880968749264525973469892438086703209808250055553758290944163254897344888936085059601850213957951236988820999243106602143464602722998517696290134313044722822786237446034335056719759890738016263977313631952529943590505778427573327228380789446888550891521230493867594083699414495374920802983929156226616234809157206667651357835176661836533088288490920348091929096894325780860564588660247363792626693033652285800067627494628375032562396128768739938137821281782443384017981943559824802217707408374651212267305848379091823037913048059177865226363491430080870157521349920101861413348740101011309610971035557868705415894820642478450901124234522268108774834684884843717422577210972419083920207411987416678111084038492032303849079230425963157633690330289319273288843741395429405652165894057913017289019647991620275625381531523996879198652294907976750576601283747017875755966007680816181345734038472937247587261346340204688516832762753982564204229600722228140459206486782028738517824426094132954771915373499272929381708261998282876147568738678801498020947328478082928220625351109360889454698364670208301625728012417112302141924864535906968834981229512765851139392214381383430522604870278904428538706919292990275252954649223362127283364336931241013051076610491356540489546150635546029103812334210770864844499439309213827915844922438641195681388603787579738376530663660173622995245763855819313694034620561334070196765188751041919031994985498588200164387412289197331886862292540478946601894957683214437295663904736651031260546738045243049685434802534338164567029546861729038247108504243633535609496961780754521993568597460096687160771884877447312681245108209174826064241301427912636308699019099548405047003492741110572942704705878520357493666103979021605495872006554130418931191491527681220144494706265351456796512673283781917126277138656677342566544007588413443981964438032980861526891809264270953353502205614777912531460519967962665378537327576609649576671377525327852989486992470581310665966502189386351277382227554757765493269198261083044601820754004269903924705485787679887754766320045851299264396617844200943620809650519033787406596066576358176911204169884947122339170919971490056938475525921593148851775733769980355205576778959753699967086234222488564195147096990204552529551646102164542891136667338279297626925921473144752219748277901924704202481392530654638884166391208011149590192477180740959529748061122006546993719667463218496705983623377299210274004531254857858801630934879089173427636972395455065288556748129960002370949483719570247480839430192076877983045420514737015783971316080554952190011632117071394318315882358278491744771641032553267241212346137305502114144108824979248268047851351725671036674491658379764804907517572016280461811102047296846042385924967019278903315521133172997660385200146088010770142751654097732221128157317091302021856864575955258189508500218853109602623055884854593640083379332624805758173405166207065666645351379420066655730331747386605265318957995216033787906764610555759384564074459267914413969588945144979625819056511349665785623487335620320002976855018455548381436462700028830393458347495392808003912007066200414029431475819639348839090726269340771100563493689859687958651428255639849237997120329928899180983669578646002478923803305822612638415940623066739247494150292993970193499154835624227834170101977041141439442211060452026798327120682553255727138103054286101341490240378616762520876063828460606471157935341401542869567863346369416968101031349046045771045121559553754169699049834881708614006160434091554740554327618078144422308104804887105250603649753273333997190558873593038697789897549358302451010695022907014607909681567445188881216227480220073920158703554348798158843082401101352686223477967947039165187467731168872550508219491959126278485503757856368974694195801515858114666236891335605494693639032918607416714295413397720179541252637158195679470928409963948819042199471176920603696351788208782186286487149123075024179287075222800582915821747165963877318961591517287246150282982866413307426292498822183676152186269560063214977433543432566597337954021202198081038471379453091858513769473409608440686328628911216421814855907182730821657830985471077750329520829560497225625260548243058697428689641023434690923916543221313520261528907320193424663987776122614478517255922275999561183175963040086041874073260612505315730297973687095412686954363120970362303225444260384875940407992473223585433292982078175065621379016266105298472456497178131563118081621165055280712463177027704425886762795219910875546261881674661779070517330330215133465388101875673474667675007986237330154194098126264784886320322446249738756222229666242940763882529590390893969059956106645403542398728771288462354378447860566942396934958555072948158943583545652157434571365445896066725675819316456156744693961828145675239768931107552804476847255106883092498503470613342230388316980068089277492759366249424960500008660248229118196331850415643388644050198520142878762061474123362210542021451746798370099254118543722276280644187632045371377172759858083086367644864904486933842947157037039266593122774553520282180297323481496063533073771356040647482982070082824625575181828733904182496758548826502109471277524253488493900097978947814198644524868704826850322322337578529833572268498431873737215223297368937991868844306769835955390842654505938227370345996408301933660295034716769437053775241153485425773574942033317070924829410140433186238830037031300624883774455912155505639898479174118190993446938776941451047628995544399888429725389519608538156985643610491314858203857925081281422711528417709937618113648285251296181340935940819331230164286707635369737691570099996686655838474387930887169509986943106510628677409736189260189226131907306563530185278769439175878903881140980775364084736935143487283916075713848732279160083813484566544847658759335812220607277599009512477279598930784802073262318067403825473423015687983974612190111980207905554478356092124870854072905729250613924075399372068007106657422152447565532333846617716619175439494614796212878316274220654868960086347794876088337762033064946232976502784974499863709568000997239561222013726504366288076477774039677746260312066965813095187819354934090451333726020347566674606646121181422783936178043154218505776539206922284249786480746088102208289822461548218153350308841836742328737432518599017211110005434825577659443391425707399133631904404440433268525317529342850373133137590456472226049380615396788737033708667682392088916860072974460834830830200756522280186328594908371890070109310463549379879688055405869347712102622932509864192764560554737200027279291744291578497461520525577692072561530933428238619096019629289811758047169451302823926320854744604574301908393265053016608848185372133380389736352292159589344741472854188771800768787181633847653414821061063866830520451442881710076612698199729377464094433303997462675970033547922674598574789294818186946249406632777627159569236796967570377386791107185476651214345781076855914065573806347156883081240023979843442926037550762377425071754364755256968511359251135413072466406167928446968272787424956398414701047179498082509507928508549068502035761411353388223027126385148006649502332846027389281548869390468670504765589557390102963307525883082780614267662015144016304404731426231646240667822042739595796942741388403482355491655141032344549216433706858498324674214305704873762707861229915545059300783711527619835249440112969761132266249740225915471757753665697287084872459201378688883360938870372945753556895032185255867900781561928932869134905774652366382008270116660091422899750947752465424803558516528321737547967520428932612891361180070031841848264598022946055362992280073209198228217247469415459410586765671587430140731302660074299284643974966023693940112443836765311228481261904117209340294549826315550118513943664724810984169004066118314495404136127457377866283527648232937594704208779435898590610273729500715975044144542542852770280455439130496729339910095235230812915052427766792315342019576471466001983502124274720662411378603314023476863618634203252102791986788571085593089401492955348524213461300169428621006805321263663123122984788053578767679571054577474864279935918438425566928374736215706296272154071818904223213031139549561387230241741484023010495737288953078565670266131641399554662804344262386980191489607528859359427626366132217560103752393825383548467504203395197096715998490603935279729718522460102716127392901402395685042604291018877328484021521979842784253206963051703489430969899157547985116184104074449616888281447429346078583430473421047810195263297389007562966009922122842326528474064600511861694070362964677978794945679864833423787265438601684207285394204569613755431204450468832590532814693583445226500009349856301959435965485930414958787855227550623275812710350603058966858510666902317828706963957747015488466991326959977936874634597034088341415525507980594662527804447588215277105806217251819583712670316427592717940260388184647956908734311605722146750247608402837615999979056544890650285392503396040050648670678666005622940372892982640922521713360294983335754147091709336511652726194808090481606139170562409393041752255571403261860607543426111071143389629970854042866783506849955477949922032740060033557363475916118643731893373882086261139192104930888708704915686935979533114724277189697323410684543524004965813802296356250229889180311935032159278534761218630416572353028106609020059953952588678639339890698941397357636167248894391840558487840446693873616250884030631721146882625280755007008331507503320552443518447603030455780929774642276706553950214170041609084408449599480273641777106756626978001445039404704887921686020250608343663098190774848791219026910195399623193341849922166752911910781206259508096445968717430200360800580106864190833558474293153141232215804232066578397066555736092451829378154998156309756962625452492227831387268782950647525600053082367204996901553132415578696444186203045431356241474013765966278442755783287724666807075846702932376138049397920997040267622213157949816202846189258973428575594727922717001894686825069166702066832679166596334591537411281125003653512919707117950299082015041015378498061091344083888839712115691821043884491155251821286279979375172281724764019590643827871078089709266951104691496486272306265273702856002684771477141844332822855504406398079411350782962342592787385853750578798314997974401527741746726404106590379247806654165205490570738778341893840149494971599743043638473521297155858354997536616842368625189120111456489357410647991361992804771107447249977122473005212954401428383113100893101994982311373487470029429215203183386675387257809109288731598486002488163153796703734929753015901096731496008264788005122383105280641940852052756597859342017027540107788548535838980738249263412754859175824981504591925058259113205017029865737375393621894000153711264253440084502650645218336241652404021571310137965191431698510248186523919660411448900474219846648404267654198094177884849710444822044217694243325424774609253287473885936050591268087976626813550978751052170041736906467901435686576303939134639423948041741415207320925276405012616699493678033773532232147669501847545964964549868088942209067001648094502328074860372551601326476392024888707457978121093954196966864473130776483611297413883115860581807352377826900328354434869217093120990794422812040308445074105334548569382340280763370138646849606350781127827734309348363430759773108272402579109442102153253980042249471453064454003580624896586063894271742648879183221388546429099779670773251213992028180739015011026876115029455662956762512733199754765305564152160155588412566429122404384080691862670598376989342360134630830093981693492139770308907866167848688619645616552464639544652789949562542739748519175852228389431935551258613279277857573354061381982533483694272042193595109171007173276964624563664054634304344015942355215248118758956637139517598514274254807394923075643979579626082351327086819578216919207094078045629159616146361532492456587380305015386042795457072185722434646271491127827243927549574596163523904123327694043243907046228695063456218270252118119602008082459217622335723021072381575249670138600517761682090762615589240657806695170404879670265473410580533802129262035720238479962733296623237930678039580839654251696990715437341026774402355340414838869953145358355662312055781101882873391439890115272608985545861044497126957916546651464222000212269976714972088881122588282685947574603651464081242462102723625796835133623080773996163538519519879587176136312636579953567629104345425682413799194113280592204027319831735431853947359666964465310808729173770445250757490294962855370048615113040168802190032933622422815428057233346455260830802210768370848015874070829215758139614226106200050761602508763134901006836801205576900911465180197453879206361057196035655602077328547450021348791959610428751905070494540213316717194077695857945817633315808017172084461568551289299920328520777205215432976731422617014801265613268369198249111316356971935741788899160001881978555481613170019769828618043704109469148203806631218531188675545100744237907818861562182597318757729215787399184436081594595009305322274510485293708480778401260015872467150398238869539400529630045993426823656984336289679791057383719959788824540201609157838099816406781056201476237455315812227171878545991617377170481737005409963493192474310079399040641454150974927173814650255290159547511610730444454175360375008085197680596626226256903326780768853845519534577168724519144199871996137270088821330561463694945949786785989774408263170540000415584610069064552342031990141976209218124867126284144331180252686823253905191008704179050131518348627969118028120840659303582559715350000714882047161910301984040645006478457896428615280054408639132865205252331104822780765488285611613947005192852066295802449289032573985769835244559522298408904670238941210444274111135055235889158874537492476602302041209040993041505531181948296808652588123022781487159319189769510911637386695336355414671289674397419286886586882811317959494723551909024875512160607076066915831521153900201457446477124679486759234095291229835947030682020113196805036333355794721343673077216275272802679386136520456770882881334981236054534570437354842906212003472879748709787826113034304174977239240311112050648358139667415489833279509107358767400744512387810240469255813128999072951716047968859617432333169093983978171487867925040663775115470701736954788097627053165748610483442786494799624347929793823704922484171506335233756263298315055177974825905197323913728316331635007065971279465006151616910046692942532011996966871208860422821913920368309735681163541689303649910427419748261509070364690069339682550271604344407999052413593931781672416836057914419887370742892652173509433353131243877783889222546964423540430179391213188361772975911903841535289519964968581590399181649846319043400713569622057475818338399678216191175332107697716159746381968069147008024245694677740980004202359369374656709648903876345000257294713463652468174936371529960225943740875797132020607886752705649129340839112638505205004755642897742170403957789855091683403378600220799007877616245394676634204881887279620947855734373595997709202311931448297491799324993567398696016271503247477616289918204683296759728795796626394917750312574054358650091095848672015740420095912909482939121027029430421234936280623404888586870523626225292900394443087933255847769245972058834953660906721759064067240563846031020321770555703107650209985704131478920100290813416738263698533840853250613215415483868318793354481848370391941707803243254737109517435894826220075531497604961844099056277726490036482252714743207699408936737258119953823963366874628171657467287334838193324837809423600568608911373999999356033276062089859174782439516927447667031069279509332426504886038748195824917335280652061400464690622344767562548719723458909680577459778538142262936926073357848187177008809062555542393203377389404265260757052560181623473870983000172307058377785886198059792944577095425537196734853183699398737166058663413453697871474173382671480141545890590663698260236001880310004337971350142911153320635761181029854136812755523250280938625455429623807262902279354461125190419100067080088724437747373748413011430905194763662041869275416564006575906951366976212521237355561122478499819732870573577799689497844893649988343039180138284414832903270775783419045453643012695391289030446742624670423350900505890908685712772206766085741255342340562861457482059837833392994332817029323505653942147318572033094719831138325257857879975524182871588636641600326030885871459403239383483714329257494075971823621826829672529337880263467249022429131205056758932241327856920787927517825154254544319853176235581578908771518235945433230738824673444407261060816791017224695167221626019433430796664694098729356704138932029866464864159854107585515398850623990008317780102958225708165607295243118034167956561137755193208732100306108009588586515595995028437519950945350773884588891762296861988562648409774988388601055358799842788452725920376320532844493078122207034258182980306035246317200678784819916250517736389656554062212977636153749209942272319062556757037265368538001133940554749103118899113397239861376159477005693210732759504899723365554332685203233703657040472088888354817952264187603237317563404901064471291700189788682304859486733781306885021881083599372486954624093125469261379497271510275960791148397386236353111621581684088521733519722579223794674454121663285382397098478326219760542071862080214332376434118973892097753870277805781785137095950551170569304595051883487724997583655924683929799112162979143310838413560048060361691190297733743289291388833818371565190881516636869791156702249837418744108170293475123984251304265801446428016894391130369044807757612395057044751919608186225243922940118723695987364675769465492442211597476715895919549636465431132869239458830982849881845203842446556381671130418220180508600151702893052558435151696435194581670820868384708545977804076378709578778376511949936252022739005265032454163016098166625680130144035061668581644940246858991041543010538398378008483025717018980418968851909744233018450488907109677747640845352811685702689685917237808981454911861286364388664061422961349958960209170727976138691936139872654705305065323210982951908287647145975660757126353433795704909410457553946710944925953324911471626295256013982618092098623180193203242620154928258429922159846107099509040273862981245462555393671961424337495485238691614591277215314239673572741234111145206140092405579555246369348674437286511838994300396358489827726591729385470114098122883952663772571045699640697026144972215321862972230036308026431468135885024712157909494641869970100751706527972381973925994071231293498166002764047523386283193631257182911366332434833277797520974057957968445266122784920563326132788441541219351615566263369040319966934769745070598563129169073358002081535575950326636981649814983956148352842686310469728226165138276577639751428420848316576640308710695518836602516328246227900662193056242319888337875450436065892679823302020431960240851794640458178858830285667830977093455736920652021284882505513746930314441523943086972355302795251300430489835447448958061559625170037133397258865687154403905149939480464353886215597939750742872076471622151265883152754927620749025765592950492597821297820037293844218871200056102274082350055923268735689479613025724741731864108839805294366016179780975882494810230822357406561158335571217941147452243480781006464594327606672728309505505591773686331409812201746073311388057674102572254450316432739499114438276202935447897952851541284925963466708543678420618408088391227130723719720950607543879324780274267050151015922891562152813094580443594519910475369000550479435179750434321740781470763168339263238728117460496636549212512181565913550831314844611859850622309230062319806603750147208295074466002796372555004171045921816448043449205808020889038395982553576578452548828146516110253585285138398873452812277801093855202372667601035142626921676013476993946395793796359445401724529421547042560246511057834174253695124996440056121133423042102825200741857122005799762055239376933095221816089569751144192797090295835604616551569740934425820005867640906176274235292899722022729729347639755575163920912392475137242560436740789471597501258107287883582827372181155832301794851816644956520824391398297031360583308443266520721327636602875666787138624983217699340383884068117345829091507158931361725103736367119739235338407578406991040143397693442246698748302037978460928871560290976187734700203811456565173840382193196265498348314855088448084930606785376963945578575284378652122877062684918278197120541263386646354449414478013132831732148419057905312747587506329472196597325963720719113704697125565489123919419616636444921421072931764924046575700265589559935674315523258685993681435453914548903088141716663904603068958656871670175099695643778902485898045923301722213362975872108905595455053573658333117934953357802068682255752505592579407655981906277017070160342046586727018718847263596932758024273935726160872779871426811673730882893451467021635872461042763358558711101223549435737641878994359035428608127265288431551737147700757792053027158555041725799246804550962808311921591950901296206335739067172172740599021181750971627674466129979563503033009391865645572492951473845284793149240393265553859523367813774753697725557688294975039303803434480083717674138783952863113097254681468137918155999188188539212300421697034057657329526075797139070625297869963991734830372546589262905653074594072770317925577717283856597794645154517914591841408541678380404828537841041578398850130050680280737250787711544566588512016776223934682393680683354533765010687202947588455043070282634856283315896951931763578244229484356759853623925743606820157593422328605852856860504374134316484400330996845544986617557219403316566427747384012619944127905701766228421080652897700752074409841889359909526055593332051687805712542261519720194591787714081781831794017574970275021743110672528208306538352527701081827283520670103328359788369867449877280568414828954583021236262889995939763108487812352677163064722417222887296200074127271364561310931714996361206195001778858426731087058615054611625955617858243793164493880440854887386563178276713759956076440887304077725929787219388282314890131999593273788286062704248968024843923882522406823565438564384523609156688306928418061130594910001228528436803096102544526612835974399303308675933519507438287732042262539726842136078226515526172019442795068517556379636504264876716182384812085706605400108782217347798526910516205094384040510845119254696899123205898968703763937327075717644338631231723777386191931641610455022274171657197512017376489299089025060095538957086830415450957625880324659229427910694149465963248951934772119896277871372404227628694129580140987288581326676685283320938078739496730784046628829307417232994916443165768352646073359708778346244856149392553128792158678883886346068096658248160035871465935970331325887390108248559602916830273180625894522501055158638248965349708681937783643732031332465591096827728691295977690981839927238017259423943233809213243660216444360473910766154215919036195268613993700914934090604661811892591795904280684531010837367019301607433959817124845613943880949673111584555881788286369900866933487260382153900669153123099545999508014839763002739830701276442480084454057720030204277615627173499585243422538871344230349385892115553492000819622504706812144915507144068327397914795883917434909325073264144760803837750196204660640278305959417529625209277669194392776288682842096683761851367691014265997310622361999134537820891283288737561208190226605240367437263383491084481189037690092048826266489301408838346767507731921962140340437444475653784846290706253351805956324702188698963278900225686178896215650350536090878674049088127924387179259794439604062347771058948643388296550486703083550122747373177371313113475031369992706067357220288549666477891098586817821967527304711028246240724821822326820571055695134356009026485377093064988314737174417856486927297157384897325640355139759382396558465130069525338682773071332556808487963666221349650601588889411927012684644740585259985723002106164240342012134666354438671424762729699186357541483291367752334033472739523602710220379853285916754091318633165973712170728896989095168594444372495145505176720284385507596756361493220955634751992042170798748091461107567041171086574409030463286841628598293226740259943691034940146804337670637367322602966053419728142763868163339404992110283409800402565478420006049312369263098746490559574609508917727724962236984804655923875884001221816842248486498930586540351468132725476283374697852670696578722869942526258709216108673713732620219265445263673760669348947744421617630543145566346330222075327116399705397847064879581858719679296002192284151370936004602854592049981096336764840714104484151982427226298580544585848820122892779079914732136678996067979230193566382502433513644266500456528594835415173102865438948865818112940124548877339048100054000696440141904941657638449728654990274805021494624043586443894050377322475484002108189057838885414015787100806089490582285146252711226253679109098345337362538963602278889590651611880551414744644905863710679306972450268491057941443102647982776141686634115494065053162559781543826075451104860780131133369486704510166469283075412354363441503606197960797061790043031545998710426396079279099670164684847120126125027890711608327070218933391610796592651725254166669853155719832322348292425801078313301462473118716323661660487450150884315771447056931922378614905555263277653174624588031948082851415548398246794123646051482692384344041896472094742484358581326781614957118493663320890527424402031833276117035839499281259292029960241433806155662002818391385855844744323046770537685446699674482388696847242777354345650456800933801950603387886354925312755961664590639835399386871158017852981682201168057772997193875160423524020586585134869599264739689167041642864117411562765446618225500171354347594192874968651583575763875538573628793337067796006257298374539157918160095229291681719442720403575104762806508309324400110251464099533265634902472415789113861715092833807686151164643502327642810204638946928778562836116037043335051240721449484024172125128851213339693689825927326068235120604234474077205948133290679568732831440554469650836297448569473328132418396956514085546590052004683090357559940878833644866737817252545050218193974767093398528138404604250653028147185138680058967365500920709070832798191741445071861569407571679137615427822019357806231988804326010812756366430274039723373776920532341807429467341699975293514717191476039710180536863213302863838760229409526880257904380236146914584614416837719799167673487500468598238784155621383617566503998815152467576770573986553550606574387712556679506936881476493265167714596944615732569645023331577595424348126706328518214969899460202991175464748125122699778030552589468207857778853291695025900003436455012786109657058873712660816536167076504671503027513840178229063031519056889260169500894322410742129906028326555355349745849932495569019948252108829298209778903059492682819819580355882281403563434507426137900423693571691024662433563279820127243612110025097865374318171281030689334141038405253940305296717494768179996590569971340355324367242303662290774154170353978151545403848233519139247269024106964501653703702787403999141084137162487192633305672709152590576970358704190634723497901647162697031594586178802450727255937618877994618367841222519420472350211319799070739594622430453292329665786442253428022847718285819700569042484985446810894240486589651401138039569037923840524211476616288589730603873359059281562557756171046966682819430552766290177822623409863447875475549754978956993343569147210605840533891294879798495453169116123889065155148330845025508156891527894003856946851613621134890714270097502702521310242791727592861491363564858572111072416408761034351365291981795937300264124305476676316713548728914687339426921358971763831949120107396494216578130157787243012217432391814145013523719889893596375692031788936400723156124767412829863403017583293693272076964453483880805502342091388998384097239371166084461615124535474032818036830295100553667820040993080552636085154586356758472002000752443707362403044558510277070994308388580791077903176578687013891773951997003211158483210566653017044348603056598358907816230801327765530899574937779815587384207748311755621592085479136492232732097982799282523661108267044428276619775855845483683051839990210715225357634860332143408839229339636424466204012171954136206542933065043328726783550809805007138786285226346979499190837260308878478814180373746166624745305275338238520457116300892158834253117056158450154220447169148962882452299221180983059982557559588799557744456268824507146357063976048137213486873847075648134674228872117647818647973327063445961877949730690884165717929625370909656156241217172293555948881035397688510095923398991573035964153680440800052345306657582403514181077887087262153427410556152707001148685582927329608187308969232892250883065633065265687947012704317630154467180244955053994000139271695124779962267234152723206183945550235107260222651590965449676546893070824381767672425694084403967539804262355408197467850227305750370028139024018936196857607382052976492936872291864436940857542831703844744568827368260151012443834818526309065078255761905297149097088761213974122219762132344136765172120527783021866244342067397536856269255152675306417024981543367431025889756410045797922087841497785257543155521013635916703804623065029788186141762432662977019333299693715204668191380997119761151288271810971734765857087724620036133475423833109405036340987544180940023079470532841317267178729196370987433402711077323745885856591998458981124237025604357992145497931544392656068200768452364260298188860743005943680781413984223557622128745156580163562269581714113416602115933530298012535929740203367043880203292259153400411667083987834685887282789790828005760086495940820140185318016320036924217774253761808209521339114705991742445922063935203939622044516477844481767696427930159620932117945059647038984377005145523901398409454560086869195881937097122887859609107439229892749420382561801284186435383454823388076324122074078321851785323609940175500788281750016544829512795976849910245981655108106762887084768072046277935626101857194846844946120975243351100732130852135692139174506648392097720077617011604359120520214748192606009685410657337773755751061055886986393045361436391111251432290621228218363299763959127787568492293290216923034834602747530025529977330653235658489539832683392815828174628118793232243207967259592206716429609258078574096996768122015970959949406994356567497075353124173701424521218579401176793752052713077044307340370514502356117659429638035811894531748075750103339950077174186087679198173051648151441922010086051330656457549796250056233957696343039777632941354571840032203897137906832739056156286023386980574912484735751020685764069861861749701707196595239742576720335035090615271281891947295191865116937468372524670019400472752369053767008201323809607305816533477869248490209049712967408086514922184042683384696196163947411546495063292029995326090597239881141207672569437578864661538605820176358246760415282927962162558585135768458835029071238692136161805223347300856800305011709842894657121228953215840291323497678128257874898734018444174138112792986180308729737932935562724706300233705213987639356898343403787241162985833023461082198397315699821142846892866260170500760738909431440464881082857231322343138293170764381558492892172504686132877402511943567507663883987116031414008586994235828514869591733942222452366325674709724659414973623776785702875589682668746708986814660421057036382596169979989902700499506503501328129193466138652941746109620672387561900251868057532357514587509004636315115021705363112496716659554356128381044187534851152562962929066998096674802997583795208671611253070243132311046717613691259156188879684918886465588948175062914698361486208898837669784245993579019800502193964885532449342602048981285047286313527761955019557608806085804346274607836779138186706007366107046378735496515629971755812026068932218781364968750152096379544359746520602965337672279843341623397070743515125713641185067015139947899493972571639483739979292964845509254075794866624563491525190775882860903256591039446327554912878283663925440116325383262592221123763755996249290622997708000268734155925428725178201290163798530347091879766053264476288495326404304613317064764480296122460332194741964882396847110709511612957539157513533957353023196232628987686184870973702017200821093246384593918299593051976263823356419495080028677150658052314864304729140721025083618161007643599245558192614168842030841136680832454535848171392405554258885579280697585536126310216107876935488976275475279522728229757339470385676393876632848216713634427733729614000461231916403698364917137734432800538493088416334906870118998253768068051480284771919831318687351500926015226984755071127024791490315340688101315944622343634850104850797364284949347338706559602236933251158761643529779088359231092957150884091840971050530175236203440563742463371210877305363826874040845810573469405422821645856348633821100327643028941298154228617065182427839399948153215526972180602759118647963902754248702522838835782268313494009638627104567201347841630858251655301519430373616236885377269224642313815233175902097746126615002996726954862313266274715559390932043244033613668575138012543058003961754616679736392297091909309589210808285240387045174859072255150551757494146586768673995431705824891748281011609512803983381632060302473690034662091768966644864528335103924194039994902383216484787516122283977496047480904882493770698827922401054046314967696454600731012492863136446980658185121312591146020738925797375862847103531223911706506211725383435412105571439068158967625068864728853743525325674776943318651208463947436205482244942945417947130509625540581391349998692490271320424660936812994852972676223685499544613733515088849766560228058049351162353482020360816897523803336672268395462582152160315788614433040707666764716484737747295411154645758561751703878335984838131355834590604180128039255073998044700136599179056969054173946470551193966392594933558621379822370973741024589106492284503965909064127044937763722030898276201962442862208531139784571667260896598895830793208250218179156944174059100013266250596157897834863459360954044820657577795223012931324493082293043929526292985316671741124318481293605464244195226736100643222870350575628743644151686607513104434276783543764933614686762403376229756920690177402713224804576021685445485945867329457265286532548044739897725643657545271947408189830819233200633762784037435143530652818595561620435386165165869037292705735524970276289975115364948799044300404648890444501545217844203126890571748060945939516850792380351575117450000224756335798313885473907666712272488884272029599390042746360159702586281279722586954904313194674133176441615436465643853114543277201960979009936481101430156766502943503149489996992724387828555835473533243282615337034883393653005473663860370317356018051115156129367100347487157528801969428571794868283208223287710860782076542534599093193372547359513888892387678725385767998143425119429087975510565590287506460425194871034381064664808238348247449401369502170199538378228776269232639119974199790347785927482079169663169059712176573453416193580376558309829996857537227531148086108389121083900356024742159509044254275384801162274233990394370562955129834973186848210169218873145032914266283539904947064920180341867458271504389741633896584145036037134471547656075867454074640671766252928766372545984302266318270502574459371450276037484229448294828443325488234662116570249866189183701776634001668371436732793105937838080074209041233540003842303673381627302717970516899986819567695292606049581408863200089327327143206083910859152313035449536048462210535021266032850722239870074362656816431805540086618625649191478157309428729331476466691970378018818467036914922805248029801498919014991421216782039336233037062819243127629159388443594563749324060828510138204691536513083979516057486761888835121527862222332897363863856571674597354163455253796389686655323379883606256977832530342921507103557735282263128006229189833160340093883257198208526481685501983060494434040326148488511119095749057374116430517894309463628784492440982308474299810997423089026395005354327906013544428687309154944779688801167664584837062423581562272531606074114702162680484596255076511696741508308521278558453556755727670215708312995830173998699508296479796004084435417471010993751198969014129244766353296103341072895553151117433965499548054809986669675440957091241263074490667673270212426686976140123826681459447748168569155241139538384448824515619691716209152481635792289464010497248380636750226170155463927119472698905157990497058714412746936911591087427832123820296745492825079766227345457273415862398232174422140229081032190294462665372221815289655420793432309653077546615478360435867438773231696883702806691887313160592848253026176483687394604075879321489499397163454675279893597112329458863142639391438324649411164235783547033522751372662895561345229567675347515782923324476976855608616810208248863859553395547960799891571688661077301530745152110334041222577489401480078962597903932911794837189929652274597941584847337803202731142097170407286204872241929406803910050325691810130865925166675346495664788685849379666154475676751480516213145397494775295704175543047793373017928547908276704752685436254923035956914586398016780582818041707006830069065040230470022379964111669985767895674958081791119186778315203375081431686504707906027205604111532901532073548076967816452864652884085831806355426031266554065818391640058445910156167857929207274479998713504892754414272061993810559220843603003665126901690765733784108198671998560803443614486744044809848994682683633480967114828776756359469756997315708777217389548111801085880463752197620024071797069292008607950970752358501352699704255177441436341865526917958690290172356164998202353303941161549652298161575284318459105099456555722305662514044225407013769354601632746477295160932602625270754088627621896840214938216461063711720633958831478666334084733873606612796120688629968628197068595825234355659954230023460555826840474637027425280707578353855814477027761448807240398298182983821841895108164987224428163158322019925710697828544550687364844903903898181518686766143087803792132348573501797022221606667622491813187611005654125535138768698258934341881871327969583230344242983818016184621316770502934524501197463193375088892082006370444928940227455838393544624835719119763901893717480213960499784858074308457009820940906235768698296122824432579987684519107809414541179104746709810997243796991487315407265603503366567201375602022642617162918674062008018840565030709797023794172837971732991990427335696419007300911994357089888652129274924128149277330673165479737590140604771042395028115091214354737549365507913708368038241952355375796644812412143352439141307772977882777050918783006714305147811499366695794165304144082301839358811781160561801192263524271953850538241447691535415810342308847796064719021181149839434432343444717603031956666433457168660826764784915118140777955786676218612723317343706382315961074200794419815861356661364106793252399912502340372814943937978127365696519841310968655397991377912338290423324017716503380762233493670849016157594130672211927433039748085096043138386020403112461263902960515604286644350474546464990736559325643611664938458346985347107442444457116613519210024823547267772361043585716880131282816630993277237000491628214355795116733119666645879343649706107805923958839946443272981859263629118781260767430866821546965311768046018256059375065001940840033807596783868622979113887287382666741128549707230613720750794607475687057559693881382709286485846951416887351228275425882002430309249545580146795382010511915284507460075080466745675024841401063608541549376444246033380290220561413676672896041070885355838306328392124948886082473029544832969397977950117707586004375354489393598653457914870118299526788804107621481200090375550747156514827988518864170821786981530569087117262979369649015681246269956582339442382681475921137394290398895427868404399618067925778951568789524393552643866894119363263452093492974000221819925766417332554936224907691503410489206957196323705098323607350193259243495615801692720361347042113508559817651078974602046516685575058351142372047022317171644235154803504704204748084724688878224279067170821747078038364632253044009364493693156278120617746203436063003530075094547418133067234128192970869308572019976613375527313559803824752887616271179343603233015037799139976675266362379408684523300723516019347373303960095154614092217747336206279072372349825574421308286625150678866310161185333709965470685693566447016634686790803925748411218535075710645249998031517942908273479839991999279261545188323910375611616813617749878192887843615060622254357640457447772904872516732056970719524844891163958498372353792477717545274308505492927492635470641900206599597616907543715935670661895082249954903774656999173295685861195123327568007499669886470048225436650702512851277576549848762923183896356692423719370523931302191806397704295718508887572756848835808999154602022366048845512279912615612314113237964178086696289610760415515538970901368974608869241208341820782492069112112780244846509362958244459354793384023157212249026483057695014886787787040143921016311471991119067772417240548311325304290258361362059268512552998847534294640874740641455559708983887404658056717496329174902744368944537008805028489713049457993773446688693548940423559649848020367037835784576352547894484009866782249947000846823188033051257239800081457591903900360530604508933434503053648197112635804245592241363333318987542015983576546626239396889110056824127977567244383893837899646499249507795076860749495025430680926833613583456106752020849802928146169499615333550126196325191758415141043650727304778744175306784401606551447314688876828299717610281502380779354469643208609704524041047580731971104942790683739505923606672513309886157788915866981874331717654923516322053865202805334116322314869173311639398912429130803968077908105583204682241086149085377151468734831502933832169003357931420773899565425962775869375163336354978267788400610047752634117489451852982087545648463416140301159584631155440293723461630227706211006076489543777536449245178403046960958953059978189341154026445165963340177860187909046629754097258923925772289811456693688019632815886569460568350392911813439045804057264663607986012305998679919897487624099784644388957660784320089389478119060995403945414283538755151054604100824996937615526051817529839582858141264704627811365173687183867523887079546711287061323757788793776921860222511433048270356825753266861119221188034528333994724578294755003954405109804371929460468650636909312963677013229803000643496213963158795855159034914207562753495181040050815322044347583904124208214202527044247287981407339665573037640290796095330650095413049957725742635044160498249319404966705163875030624305618001552174764404330334666820331521208106058990217404396721416460866928870821279360194500013335136619580157599897701175785045525419591317179730142266576045589469640435771533435583497536597085570336739454396815697584755253038683784309678245283630876534820971522021498003025365634908198272353896407410668215750421644509844808200134393608551576464766913825650698430750305283241457326482274767855500978486697396655422716233822298258609211335697628481293063277445694218244037349003735702514327444701021729891213452744020580256210279631931033556700747532932391925018094801068016824410435607257614689841894147223477330232118491524201899307411716450238102891037552476714754826942834395932529878933223249739856863738102988909162983321751576573723012669962792721769907874976632274220983810813217802276579343692822135313824696538282921180610493591536824808940559892563835802353795115603637833568969408809463574675748506465280098780953885738332405251300409778566806946090234860982589615681221085460812248651763455079579928335199458555664943551654146819054933735604454237021280419759218656153509190245229755985997644703967689810534860125222184030486161706132780820458341628551615193653952527627533558021614279865097720811772144523924487319510385372753923131527028475944559269832126305171863734473624726719341554924630532713778716194163796719071127138738823786488863905671443738627673754558900766138022518770964464556597052759239355215481795338244676331003872119402825195095437310589281564568437620518822445248093627823178596263828953321839257058859461475434924923538335028873338803431732984356908666567855115565518012358812170779051345458178770052019831515900884676477083043124249484030852308024335731164200728508148043013259814550166139128390750634760810005299010698979942520658869261015484377144648924046932179626665789760462471149356944900076530874871592354263936688246762803605461724467788289341888417556539487567420470840785703466838268851700685714734838585933861642954020726134647069974658776498158074352289111357067413642241202955766303533659791571567906174627060304132638535368003283495353903880767406663440098670157021207785772582213861761618221031348404128700625622499773801017145251045182923869204151238359686635269117653763029079174316813528452859140801263048897032522062793569041362151832558920623130720725696064945509891243932678729859463720755023364066175958816283870539651489382887283963930338908228969698564720340463398060491035312876062297069539445912016987263657386915853900121155241580991016708192254540424319465953397446069232329754912229497201251610767861829673468850913141348166966129349572510071636413269351194966329728037653084454846274856122621862170095749597906761258790889705116375334034339605178753789167740927498174184414373274424746082120619430283410146337917781580431472396699131945131421137939007151809579982181285128396403448287571483310057257991466148081516601188179645038019958304121130710191249927330309480406162691663328915481426141565547425667903609915180620593387993738545455498226583247542586208359753106911521408482941456409489999632841691088165657994443008207529769370216396868036361258549974184222944831160007097769655280446783988773544935503948280797262017617107998333417049158519845637630037086557186766239398480443589682420003180321224579871007968978100333941092550468219959115220632680102433274218747351465451612464965446098051408249395964052824920527653147189283152282288515595935178045291362493379706674185916697577181134831826685847676548954210957354143438353356642321022854574133352103495708919342771140588054453951984935558584564952586761323653814606254140741590878091509395483795612165432355646438816375455853373738421791341401758539362800954440034819534336210502490704221030819202259286631516659993774638932874618766213415261960338757350787756640086676967270310211402508054559673306221440375178053744441266103989531160402644362602496403816327063338456878017095765125046434729886501040947975304578005884024278220220615281006813133918608634866506789036980154362600571907216866603473292613893462874020898265722911791365089693817109675863257119659353876064204973233580258562506266110839521759818147869275327195688716166976529913258861633026283347779879740970401192465272150018944039834390676300970471801020598865634346579979919978516300186209555194370344134690035780381542089797753526084044780956299900002974628344510631698758465677000889400699862916569072971700479981727126689471949854511563052454100382437248244374085362108224119968328368232003087183124334627402672037698383711529004156022793338071587434950231877886051337802329332956380401936317095369553937722861289783084952631381390478491078703861513102255999995767377768809549966278544645204063050339918496379616737046780087418284875098341148362180016365558854094497727549402822341677426771346323744985414225384028733216560997250997946716120187630054034968002008160080872390209803016525873234154538351786483954805952598744076105098513628097213693270628441314092046473679850140173602050131094222481424260773877986044823783754410636455585760779126297849010993338707936161852690594611720401682158211018040983581292613942168271689111489197167300664746868096097196172565077387209930693912090660363197727190211939505922831279120026994206334910465902168120603367508441915235372683598893157658687610446108894907157511147692105981809408402277894946728986235398359251001118089304519125861248155561622225204176783206494878977321051512582583745622922590871779320396335994569917941438062436578189313726414215074354438673533611324955255548475474222898970766379334942083223403489510888217184398475620695414267173720468545935870097357350961153183637274181961706775920211233172844033280914513481808707954033778217927241543218264092181525384992594550701192380176976835613062135509874769149865451441309072005158269361328636908979601372620221451599181168124539645601828023300095865371688304668197872387290558892583355447085910160198347664107656494672016657637794981454620307154355258992907286464779181717557863077688397455993830093765612417186705214720299217366819704739145657453559251546323017109902032769648758747337332303873499437458797942924655747801843036875629974799229756586497790919326905780136603988037754436827079592383228938424937954321338067775434813445812240707229620967486623424216101165247647776888852166405634277242251764809399764077653544588811334220222073202266455706130930457529371014403426571965193773017064292791222096000586350413731913496803265973400737226091849661873272758171119797471897922677282863368982986712373973576423710117006883320306951117291358599834761356172551708884743346683245760101676806794928832499750173916009527158217957843051939216904664689300475377292709383432320637720198016181420041334543526146976263606171403149813057425492268874170193838231581854612151491874051635982627552622110773863556685250738829644905582379907396578127513337111204312959426321071868559667536342858587329270422882987126752688088118044948647891883898097609586828770032547713283132130979217427364370235782872593558124931257035498972931702754383897848429102813864212251630561631616075781885545876260049741450501312561268461902485307281523445887764653378263716009085110765925672465234574747398332455048594653474505750979754085801791867063393988787070304334843141199415088415939445484069020728193159445452632094406780124091543212416018180808201027826466584702294200807290825584363105240852427029692670396311502905816027303711199430644489516136343332067091131763508272208463403110174281789358247869335545549450249261463542087454376761718492459956705268119989374633358132642916502180026147515468788159257393232866212677108222659796989817235034459465766781536477963300500662194235523043392719283022936292105070087903277426624990094435119065898664656137848602732344831985519470701705292377504060474611017797355110593656671007661491817457128256274093277957001525289566890598013962074247221461410242723969504837173595689404059297386757336503981251836524123038009179594129777181172380866966521514940336471643575322109453361007920148770302975158246618653388173384614370016984699051156070265674414071824477244918898634828976811570081211358790955268867947056143767009564314687236875168846520373885541975689243834285181064494525276653810826871519032684642874504409366833698880432071248412289341845488383534391625772395408578446332246758891148394441907049445444264635635735702178674417175915097073074253287775277533448335752086879245655549060953092891427867578950929739792736293533807458356655405748970514615705824805370505336025718067294172413659967625499903841799291045959469149971142836214536338449699833750159023874867560434072998100783370261417880886807310954385904281167979758632936485088378655389728377838720411572944049416918640156974190643841873985385167225154362082696107412628965272906133954791905168418188552022117459759866221635835717376859485620471431534823043821528939255256527640765216866701485323016609021192551144404387371790292575250069044509556420293550536065117400720016465499689282785299760025570536571814971352075352304774267699726722024353347657469146508230031174678808690936460512371273516584287724526770666964240407114293419394784080524044697885626655940708635018693535594160537513064462447340080437705069890024123552728116456636526134589378650316799965278151647677486438270246135222758434945454110023418344367492073928056560500394350046996294610578874007209992093161010948032502312725483596340010120574910697426058811561765897021073695980621953152243330317779253502129303616057193337066067400833549626459287784871313801847235558465062573648080864902794035506351655162634683139786062183895827558114005071037131938258517251887412854824194590984059213508219386051539796845405242626237304187341478605511344796201687878783255892039444684105881085193191264206149559482997737017770104994530141259016347753451582836549333059065012197009267889465629000676148860097554521818192098688094448933156042514296737152899101237542112375576568767282299326585020737818143329985020066998993896251446554989756154414110871132365493081595205532361304103800543762556665072431559948978575944648779013943487124172577107333603668824898431099322274748150084638516778665332054589575479652229085722414288787551527020382624547736228888636283557732556673216362339416649831239994531476947685070614945431944341950573645322803747126891307588782124561785682926369633107113549427553556685078336926690968682016684771484516381711910415692399850179605826364254320588658644944373702749269832080479516907312270703391883374711498550086558868235743675868554287860561504462611267971387561056972673897847412081511518958385214242370876210582566274289603720763939258442699851187487324971671873574325830190122297604112271284244613317151790932582480503664232816108680783243866924178842285894999915592418163116877049737786081956003332202372446457484359342641687536207893541918442968179709093781807616078349893080437977961720290358230810639293064423273936730143001445408188808043167943246539058094497372194145340305358293116211045943594812996036952658966213826628957063171236116215206297086633338392839381762854777356673131473393628897298699508176027103247400326739748045226317280179278753889428455303611465988534571922772909456265768450630636942990080725522633826967360288459298735286916264171896740131790082737992789867713819085397153498124620326530333656427070335517580828159314252904509332072530323111288015929390994865880008674372616707548578256699431596250460103377758439978455771240316219839525381723744866968296123045790601967406448614651930312877055179777114718922953803422944052101515104300728510951836841121617313770832751022428633554027685171100985632397227047918269859658353697814291711152487275047518729864236884659627270472333059070727023153888695468057493411388039881194541229606408114823103775396548518696612483816689291093326245489415696472420668046702662236725117225959457618898867821995945056956411442291556704160540275982813701992628916168639330691511068879687784699774294405523933500366146707673334398755565411702416739669028105408496615268775302112136119752341503691550175858889874418111486330982740709951379415581457559906083234228200977173090574631362219759615022754650203241125701968306604077293481598207273553731645904461409137112457323162475917762459578920693807852348921249221908596476041072104202586179048561843942656798450772596746466886164272183658201964828395981705008617793014341420745388413790789802064075936961921866768963365036256485163513426718797611137203661555457515417618199537719281502980546656402465889536426336247222278420550493680373654953799680115032713395486761132164961776741122841879372506464981745368358854970897891081253808547527422183555678292158955219881213785849460247034881604973902340699538050335112283672124174376090505703605108179334705624473005405984639097195054620403191752901152301361754412936866873695263710690162371875964517726677961292752263411608671527296095526933925797190135009086182055498513922407569235586279012791373148814868705768652547414384300813383356678591399696102567323378532369064291567603828570003085527708355657660049760425864107810634152742273649257717055473851440966757466518435770974061363765068626846885323934906401910486003247399024116615275841710345504540543715650365335889793049406988640974453194528651465808118029453291025770887266773069128784369790198118476193203241163414756508674569402825344117715148249076011758241318201492798076110819025660171730754778812081127861612719653785713620948949828211920098654222053960503622999923979491546333502711942652587501005286095420309154022210137574165312560120397054338110411037505867765788151958321120859735176494200557687338880106032410715148024340602081268601665601149449984340356547557050471581960693694564917523702597000234924594736565313536031476731823012757054981700157219752307990296443010817144793563253770548227994024673800462206108883731996430712462763512195488029860295883074211890598401058386162268390190007857050149186297232100152358879398247767991978383332630953909137649873529886259787086340117068613761743605590093785005349876346279371850957650947363166694473858194476445804328541450039577936293455178134150637479274061160134036806153448902617620878677438122348524124099465337540141066019612274677345969793534701764367212843657892956471654024309696559490105118335165315447601580580120726096548194556838504660325986085861045198546225363021437686480284210112739415285587953704623418657186782463338991305559792474931534604356457477153701725238311039192001849684301725059675618737297235903103171147546607077900089751253929526192580597642038597624361202806124072707128134355510507296166947371415724939224064712345259941589637675468426745516896862169473880612946340182072979238015233541504092680799683184951038245888427938288796653368528902306592329306440541425641848539262226207680165970116518468386133231209384342545043598088189720495845462273193838571385428376344439693944626180601549938556619204864567539253817076818364559658511656599496310803396793081221541749802668473581649395702539859853255100716815677338166934190730483929719041543210532877712324361077113643622732167749583563079041532068602420588557395865192786409050849570910761591433702152165180332196915641140003022532948098659071682852587752319289013464980160567592456006516345585046187737749155498902429373671505303201901893165116868405710225571540864653072188270456917302158285844481375385061655356810841689809237788162707033911323304619045936580577291947894675217993714187003594699887304845629814519607293834376751774358751856924916782336206535199341759486450848408935030996630348077646200062954350157318744281752579871542121679035667509126511831759998495187533023849104647902526470794865636039363731224383735813614165380324162006449328859223849323059621115126734404220433957918548747910037519564557489250729943642393708420293220062399336328249240022711062138202669518282952225743998543374413525020847717661361462396598896572955048001412297460233066315994597022053410477512825044253967003616432134554474340009766062248413282743781449003573808642857164147285587358996486854669515923407902391373726341626964948592453969172996735045183598407887505919047590695432604850882977999005975896459911884038663220010466729258091609568068121829388312736518118018872809363621498363032345052594202118443654749331077482874703486010038879996845648828102400530256333641841161245925386037822759256643491825457045135718830192647086545338502740681241568059484972094867579839630473158054989499922743862813161292431925333508737918000656447572504351163977147121499748295301956429363274787438724237890537612808577677659558279134292483923941306506659684367519939304680691148305555345717650762047349900021722417573511248440321154709798292331451041872916557190227577586211231328698345258976844141963508356954952145109695698941871047506166708648670719275641767939539669851012718028788027244379411111312050051787848375372502923751755632783697568124520724273963652897277359052693000990537494846663134963973447247042389207071396208582037904200636099979967037004172191910039078626196790570898909864006214818005855307221910158491634299264573744988014441475962688725778347600582478648130235183559077557010626440725196088391149731656323016616649600696095018688662846934636294778749000957112165613637119061998907150663632605679439236031203730801843151515870126876233921002926021144278979655029421318687460630673659948244479214522956708469674332406594228888232323633278918508485443782168683441991866001675134677846359853232259519438272802368290838906280241499592858125736206431815555628159979395095812450791951822687686291087640812758336067734447142455852173206151677352307760931482302729852126046579096320520568313610761417412323094602119265318709298927574834835894476466168020454618053984928507444492292352374079956927413912585517276401591351967474608982109878526902051602009122713722047597767917933988570624487385816204880640869755645220911126288768449068433166146785581456695966608467176465363727940718525127226814404461620350458721621887513867541831795631904597893377760660553459340305397940871919752869225465340225545716265937078915629868118123793107149492873197141584958320518705827654126767216227599497997997763328378741349201276879258017124597530063337247392677713661504491556691532006046658348072971690590992922145510069594110253363597920738118240646648482795285090176276063080392721640191602839197800627962548660503232655998335892523077891941203773613180619021939519456739614249074084802037322409807871876348005106463367602308712940810333677863560361955279500473247875971995001563500916004694136359919485038203407468794499989838370651290638335997118130812156475086144573925348531268749141626718730471648395707476533027960550199479038343287881391253266476189545217325285584846193015344192842027894153400385060443599203835727293029841664799852011027124286391290045785840925835991515428206201076247552380153130771020914265390157276831888715329521717520253513087738743399020070395442305126166903445447897834344331874897682898344984778210436506545513573709166138872434003363489189843898227079027819992892858730204168984248558655689520347730321738078490835725725476232836521428140423906961671343053686844344806608799762274880105051590842191685230209184297260158205242921677472872520982546815548819173394646661278837665561625281625646776721228807014862956908694595624797562215355208400592007583426105509319296991823984726366578171779273271617138027470091290015862715770980573728988126179895979131574552791913120346281448826894083644564855427595262007106307018614507862626865298948571190175077056110428358197797113378039172584636790637385686777496857641249913369202209412140596138396165846544942396920326371863208898139868148713551162212162729806116960110941542792942010001745388146825718388155763544894211454987630984216490199590258531083672854170547626897670920566973957296868429029959604760811589369206962371815761960962663490344706568700287747139377478144985372186361456330175518564363995352440374902938264493299555126922877601422233442502768718379591631273848635204617535574152305914273540599153431638013977101778410406088145112289695649129913376887736433836270843026059590779713373288966147351512384660171156001647004557364430688127065348853101744932816865587606302225065343344045417972414814610798454935415080917924371246086773712147005444456429407764077303011106872315855459289464162685815593095210023598376616545702804729617787713707910584745135169582392473952205868550487289143802691376735776074309942533446601042841066090074121902544329021165788095317498876542007583897205835534621964049082785218691193195218356423565478805056443431518031983522725721419636108070670220835317847533829757623189953302619376432555754806838759283282017103291549631727755053054323252343573487742957809230486786048713154742272787152659076351262296880574708823680377135610625128355893157198996357911382457953920276096804666695029908558334942267743580856352129087736124381802032291286841851003259594406767053051707864314007800145360794937779335849888885803907430116497427924909535474655975682509102128704522634736535710408773833310104563377359972954378384700413013857111027553334536555296810035922771224212635796876435719367165537193066237482110989967369761633284913329201692370428758534528395370680793292208238336016407153738314610834841799368622915082651444019939408223155215085478784070041386234759187232050152598308842775748196675375895615917357333612836910096667599033974052328558708716840415183244835414726656724046464793610849494264631088983035289664000746991490388717639478213541228556391003560079873944923494190904480575788442795402820628616817560894969968490982105871311895316914641950706388468028618172559086698249331675482120722256142390765036397945789971698718321504345881031830458315464031246401943913132974454600955534801698040001527557634838338387643571609789419058491968823010040115277719462965110159337855935171128389935927417527861700560414953359790882214195429995612600928367452482983033417458225101514434801632208028073330436004432071926189616659570669811331566325953866491906487845404213271141665085466778675213686226265084554035558322812536648919490931527121685715821818825485989710555188456658940160095670277953344540672697027442915503792289492619172865651921575082718838364212930677636672174910092978880019678585562512476849270639310919854333649500166523765051093247311064024694168381954917079283382210484436064696979950360089549727222124705118630537737711674133650535009644787287847192561912050747117638185436933503107136283552752428993488062558509975227197951721616251297805811872844409231385594595797038653441149382515343752102804305168860804030458762477447545390006650241822990834885312450711469651834780031077771073955895850951631718084737134081961948641339247689374235453733985693786870102893003915114003480153940393540579185151092254756272213000793825821319258514795010408731959699892745062125780523486584379306818222988566245841912739736261317428489036600940876444471467515793124743488337309985818507766059910087232064846607088798461613791963830469252646072799200636181042201122634005735776388505518038768008653264737644763529073633999610173301057347654118813814847864962432158687797971226949993627329585777644875157895805008206432329832170769685159879418662269786923686866808820198435707015196311682755933415934727352929418705146484148591011186102988790566968099987478474332380232460278309018791384006755410932947936450284181810512295756900727521850630035838984727554601925612646852757236228083249119029996006934952167606956150704005021550327375256980976131241671718632319811561852843188098451596983559889122220504167122925902554891837171559518446200903099042686321725401099364387532143791351630049434459343027791624760855988206136416817954816696486771229824021527221856184955364791965324166388769394423068604992525878217354806881173312567952613653136656288822862394306332680159716753948709220139581059587716490950310326381700874795353304581027422155776109577609218925803954429705841628716971278210292090104893183409608603002387659257284559318384185784459317382963626854646775174090589788532872783854261919361578068660625642064877083479511401662346445818216887865658914940768630527605617763750611529382622023492286529385443859375463663182310880575651662332154111328867284580086128458806429545787323206421888395647225502794619719797471039187012747076744162501331145555771740958083521690133940098100929588479213127684960820659720673774354183464956653597101663720759738595088810878946166720644467133465456806654292026143128005224892323681942749261260839761997052433635329721504266041040002661322854401317640564866902095029887522560457197270743632900613856728484312765934043894411213534181404417239323893575255876301592139151234887226609293307153464393100070610561807064067552084167499801455019779412898928349031657470368906890096221821910712263055460149949405739654320406308070791197095002651145405475476338581471075385780181276288026006146425989229146793015362172496409164045327809593569652509964113387313787514843884964489496302173259295443862382607159029245570456585311021718048726266937493945859393838007921288022280783864150312167178512837205571250943682609498953668660755797275850464085940213763954970406658375219075505030616693684918356948447229889190716946109091566803188364492741783068934753134384393854072454489908904747740170261892986064653957257217850821602015716666958344785418179017714739370916307603400370918569623388267346883070792241787103566188632367443455984652817647461493593414359694031899211704134860846887989493438671735499093926637909132027795204490793524484693607243149307298302052729925902982172987796470568412803579603335876820969499718187708363428916995590773194571497160986159214277940270909586052254767304502960819444351206074681016900280318382732418817830144553445919123028876541870277906209049837300932135966012303113691864222041591526213832566471308980844841595519996740375442868894734448804490792515518433028013743165250926148789570239070443879654743593775992973160604740116962414748939711234909376319970439875783378684887911198558410709512573230645351691584954404170565817567231994318138185506269347259106049723729357662323738188154841595791112148442823062495565380870081215098400845786496512179067919067042715274855151595436686655788448730510130227939195748907045045253008676475998712366715941645054657968978895682386589052627329914941130629634038631127730128706588471120940467146671040681888885914882918824633667655268459349765222427073312102225200275983500059600438416084867782539146073080198479857354777992764978105826388003276289799314369832744974804736127548427669777843646810916493006274412316795457791908038705879429259817016329410936479232582465768132933501960312845237677377068936119314165293554730191961214420050592153273453915744550319019858875583849163440859631689088808311916568192134693321623758361204553703788838375232473876668571149440297759514750962009702278934865210458335316187941550300068787218391378231532711191546841013976325847177117953618937048004823208541572981222326041780425486465479809715421403788599601652522658965374842392587446872764128506005893010424690224021443197720350727427707674034795532465140650074704531209933780192052080810759560666678589529720209791614383114196745833476878811916716952327020307117616546019659817361641603639759688778731766189142152497614875705277304568035081778854189253564830772606671210709265850934246430759608908026736505456078788944782106210797948035348741742443309070435993968708164295841824499876289773459743201957348545053950002579909252037203350840865086300273400902187800108391172408010116156514360612634327724391558536961513522046498268595221902164058332389581452066260220699071739645335812749968182398559780357595702210591230680751892760522057927274510860252365056125720671373130521148985872129278848890033172161191493009942001486677619242372887134434905699223152352516437220586656954442814260373236597370955508294651048660102649028001706862278380637763520517771243037171745236916703104401464850792433421795553050223089653421228573584527768089774159288893411956613914987559460861617794751117598282479337943846665661126878144249029745116720614511935025201314735304927892098325860510528793434687385962643293262390082983579356127670823301590004389252715711950806151250484697170922844392585709443537262311316754198653492308724606858692611245426631742366364232567606244172282566810976997542248412049395223549309435722351924546755956175872715914919917964367410126596364542476550550242511466616926490935729984683705796633651345337729433277989936235587245198612329614495632603380228020005030847540154765408649379783344042244445733205229688550848530422923218793952341591316934430661190897600674445885877188056333399338136443987570376243942882993903969340713705208582604481934813310801057966782511179875529027765709633145142443615350332303857931642394556112178488246995760674371600273681670764950753336173784598892371087964030568128408286547669761777727455738262545451080421756829366731987475880204476122309105223448228796937628135361094460269383393969551170732676402224376799244884943066982978607270619884506588423596525612387902043244951855153879868295560185108026659010504359886204016929656658881256590374892259255838026502563810813459438277628286464276454425135008147788076633514925520657844191513821257938883144260153830840096161320322690164853650539946848247371819248009217716873251868066647780706758679333909468478771400731829775782210521251570537747866949702879142665112151039444470646680427876595645917172723267456103897120901795760277655108358369321198859536187243153778565974030626063738315404063979409971191607443241105817920912430655207134014017700794397800198875931506234700764458580664119726897925144184915744507103841565997446842305553294896247676695770157040734902002864011963790355477716884346029562801320312039333930853447095194007572522641941195942020329789239176238750373087699436869182302376750684576690072486171495501123506568319377654147676749033649967270650196895849606829537960754608340186442535827581458425384046309056809670513865848697686764702890944247631440935719189533902807516745447334486820752630518939459336914840928053225317526508697664110170409319323399919708232677926183242508068666535184185298308330808548989103942764375452292035013832639136176542298388078708997096020636274125486249344100952152923039734578298164753873314232529818363617052635457624712250166938237269317459120527535058888290489526599783937367677598688833795308209284124927325374572111571638631843738693010759326899335142836736082239407961748011015872590291022074818602808768654724667933526256879144659311527787116782543101458246140615624167898352298081861124210634042297614664063150966138270277405244331003233811491635914225796706745921239160672475823534042650565565230501064900405557341733352175701853223672123639195275114394882788956729584093341318331613910337580862141854119296414697109665097315044954795682744994895218067023942523626166530121372317282030407061402221881241034009658693610482587678638108838454913363496152840282719141804009326699713233344204874829361655713995460578890426083049353757476879317038094392269388857893430319790919613122067281874135360050675862844681377249431722342519867433748209944078199372204626628278141757304577708337008211070747497741517477886272918030062438812300901968675696341243418061044100184050712722831812003650434057835423069562867375134870482239638240552299653835211537054944396483164425709990842632595475014729282264661613009832851265163003880189911022392232072229653765850080411926655273374239335704815910358808738175185743369984027335004986764090142960056336954941620679515756844955053451001422175352276199120396430348991919560363121405568820407609465715504209876237962923247482908171405181044599336452379738391888678784416779412959591223520630377438421217053302695739698244098844816616203710331637045937940055902777058776578565849770280650717405608298751736072119944968449385913816251139338400432364300690398465211104314511285650904470260925507980347790718915714034028445090991563328403249538661497534005155948210584100373198178490253341985293470753562525455303146561538878782740295197762266990224619891036159671283086110016506366599552331923969114146954450494460364715082396340537287528244929383309508222039634617881937965690074879247848791679944609432206971152707797409964262753031174225616985234638917627307493510823355754598064862603853052010962879057190413304045478010863999008900635849151469138795397840022704238117537257512513014435932531881713415587500077696625588552597508888883377006444955458092403755446358115273747289480509258053557935127297480790383128133589943639503753946725259670451016001403087687390214067922877982988918384112097570085418219513821037991816601716033765627703985430189929062429987606716437399497265214198369937846203905355056885957739437538616618051542442948458306427578958320483087240270757479003542406167454717572711518662003228650724501659731157622230460605172019867375512063689941528877520485989719293314094756746004508951245991246284460685673202595356642387363374898961976786931546685582820408343903621001486695665253510830636125477891683344853490276402835913421350427704679598127731899591622274763642901349514290320994595055670455000204928462245577975683050501190076375580196005108121669435392332818924120041780275106322215244904740456260636171697143323000405965038628782389973724005544160920424346024906335651526636199333194562793185846501210063906553916804318795745908829132517969597616426866526138286681770266171047208000301949379068692351341792151437276151815850738569746481863438032104923179354804431454597409218691001044523163540888498671728249104930278153696426924758425402146944923237446791301725327329429247019414360840971763789698855705009927742078715217893248451544978855898100729898028673248148064296735554822092551483895374150173191498551995006621744318070154125370735673548125705653666907735634735274572766253917026424331687967227520500486257523940248419984337501432682913707280157704457562213015319404940699194478308738554691683558986630633041009206388352974815341751186892428612666118800321168598147936566316796404224427382205567879506316239832316572150780718098018360862519777671272472643200167371634548489509942524892998548899545462831698414372075454464739838644911632309864872303876503406481841067009958801326234771569843046677942715686269927033984657676084595435196448939585279227550121001068620845685518278669386556329114013416336072041148517592303104666805040369938216885569414356510363586053631895202554949535671754614590854487323321728646876307596366662163683677573166118830641307516712050802980208678302269776491595747465433186670468209266086847101562790075056011540264799301231645364086210692503094431444511343830081249307318435291177132758587609677484517961764198293613850698374009936902575516381301706142309872879125591543302559429378619922365017485063327431412487205324375475715831660601563026539107460984698584937856345251087515727835925323680721876732562848342895323402383686785449965088071073641854409909321878061038411682031655782233092851903327072809828960338471199046696711227040160220529857645379908795357158390661140249514265762757330530303645200435458672451321251800170647313206565332960507198232572594884533714307752127848166551349238514014613110711308999754984755706722618333558974455898064940902514247780546636076917195128155558142683618330867428033000336737665440325546117080432093791855042154320814653404124438435360444690811195354092163432971455160895923583449519915009410624344321332338992676073192006329959785914658502519501916449619760652465104328964896692644157190460994002350300773252279926799482151188594093512517997507106846129857097821173931956596068912198772875707320408097180638290076462313459353870510153080214046738708221443129948386734587785475101858559437165622199559524158444660483504690273050296724216967144393960191501708996759337168276811539789000783571945601665375457751795758700601642417543980746961351334722852973685191893304325340439968960654139702076622904038937312567821551730506448196829996351056853036100267590554844929528838424180331808794481217199287180965620951154897142893581667916003954921202942326550406332128434775351794406998579984691646457638306413087243751482806321573728486006748167668674597356524680554832490726864171260285514400432493103951615450077898830945056975189031047942473091162035161639056354574754944734999809911434262309653032177328281416168106037757394730375444829200378415787448086037528403178856782773496307345858746078310898339751790102307347028778021686084242424757028717637634732375856484538059905803245960228952438426830092404279009334204651522857730121604198288295621406234051409568282197945271232904006062247828180738639679275982249920219748285966429994602505239469689736170021473195944683062952590859508759469940401206940207248263454190111308084115290454062290293809264221383896604480104827463297389872516616992955753708277136720744290890863801473112710834543341384336184920132702940255865914673499341482012248389995746571038883952060501364728577251874539853917475067296503835042467598209646916833601352247547230164225581739980135004258073548628764403672860796315240012308703633953175093181971057175182073426714206412820113867915940571884608698317634751023777590887662164219401522424989797294874275382643903647918575688515637326587392504219203064350724858676279857449215253087370415205660591717023684982450020573514981060320381626876480401131678483971893895548439961318508451650306177833340945497316370415966727270577413074295510206845642594681961023676161952890451573268263457280264750602082470433937736880160868227840525357663660943088189338251852932492165813390410310559090339903491471923966671970893469536986977994680482110908568516136767078408909975477014114919605620304594585012249815879355550231528654039377024533421126396441128819752610371697530441804464673935904641032105476405558730928784515488625017954852317308217046883571625802589547282899097237430299107811292178916465712924757674746062447456442480352511692299304654891818802781926755555348043557366586849603852596754496528665669147601494996655769854844461274503269022990464870252873025850680846360987566495672861694477147870511333390741085860200902799224345008995719439547490860772556935026729309968098873418771844241789032577235852518607493556055287167812970917595809223495377536909102070674729022242357820611805428955899051080883602885834643348652861467648246439373913321638050876031916862113338265221874425717354571329741775612207441017867214635129614298604074924733056335630401278633539653059722228516837194545689677717019414650388431587574527820493412801866383314067514668880843494396224520217747292971409780512949960380748688953055759092020121825903851466124203580015736760278852803043037126109069139495489774856004210093799411781558499200164033793038545563452125677903994993886686045506917849345023148885136513070447733816878683376466814438629216978722249508185641972437283238863438725195094314674495121870503846280932806047812084696766915068144260622981540259219316786891218154749087135085425177793152268893886901311305639404954384008081143382679730674856792651494633574988353771893383114981521319151361061284484132354180117440355252373216211850294085540149231888024782583883613633667311512940464333296065613907331228933689401619534811462024067114697708202696673158251140448412745158038832907508445220379651000723228114293566710262058363330506310290393278485922333468772153440240866462903488860192810769887878599077571366557199875446070241357582346730962449780716472436317552669195395744203369950004439109691686821334692682396667847972084060717576808545521961361923928763750137376215413625413146794579551218377407730023062711312062563970176896505237648679246240633746707180078073264799854700841543793996153674075439331963539950589746103334371282326965974915584499259840510065464765771818944819969582450700644985565575591117257960004931267362447786377025203095615959606818858642615424839947987800040376907613211902007862225977928713205469869214253159327478351330660873610190978860968703112241974630760568548478624647072704129878786359811089987888958238272293465756282705188306781649481320624713227441115646282287217983186071085273455693602137424830772749210296276937918845657202293480781989612864706086025085552246516352960625262224901018142335444801507152140381237577627147940162996448110762171546385588755565378119405670480174647886140344313968517335851539746753639557655762245257197767422059040130142423494166104013996337080242691336902143793053671717533559636445117567404356965839679654671403754918379551820353043511515988714513986684218055647389261300025334951891019816460181118824118516816023855016731072200969710775400164909983879878293847483015907195678090893917008617660817487169628778253303669534006930880286803768462062019769040353925418846597551164567091469437422861745443990035295884023330061687588490839828314068903051406420157748350254560049611813324668519098647327279581990192071121751834669865342518331522512544066887807530662752641264006612654948200986657303148009537073612803426714643689106346856072488476465670524188647730408934221385765135935361788248681443629710678087019517629543502331234025232411921428683297566199827479207795761555187632219706508991011075506555264836237265154698094053746877738855325819980686880907191427556705768979325788951232665482101490028221814206853273532387096249328535927169484585593073614713494549325634815431769671726351864079305689740652169633009972914531165495252596265230526710037545337668666828108884622334864174667331664585008647228176567724170292857662779230601925372135792373354668219631746041799865342183793722820873874622955833912537674880552534708390281459171328334165707108366056729118149444206384246978881085740273975245590011046092601485569226208727934709545152528005395776375360281378682854333007832270272902889940574862913894623596173390175603476956064860366717011571828953312839775677279231851557058441608296578805746173102332135584720401225411595368292983379148762035176880369437669228448668935330071965504967020020892854118964776120877144595437896732725157093754650030114176791757528494364532462411825223600130863860257187322721265528243551130900893453100164970712603530885741012552785386310489954572811346285765768330099092858748092928178020782018612092363429273001278055820512889167385715369304848783166112186251320256330146640350382389942148906398880297716094095892511274007295624512803248783789357954811246980960760767628726942041610689137610626973613813320073584264160589502232713578113419767298962090180050236223376114568863555011441061578613847696639136732909760253429896016577411796041566104075542961482731046025659969528407692678529682492796558870529675188536930969408732712247892293073658994833579092013555073211948511845797911653888452247621021934158506631784937852579544941263294021197770980848149554923584178866491134520524705554660416067953490853834773687544783484762697739482451027948968166656227693423461222523566749058855306190285608497182450589915432545983039800092299757718831540686215641054327771355770956310477100835360664727748009040043149452743366120784982879608435915233693993627076989733332102826243490208400994876914177970629487492009024876871371933461254010471471327046525890699377159846050944873026583944965067109167108178260910743907865930652378284554113378782360817235274418973842982421898927216491461793146904665404569419994587120054257446790121200441234043791165864360556387602565469842026547553979269202116412690557031391721939649039530857691812536997951260789084658481112704779571844741672802763412741412704243881188165132081966272958545799654347525172727745625565103288682514459733782730419648877676487308485303086323352484558299295800861966040015127879952998366288141971093684765721376200785317315154676873646171239567182738538565926083341663872808172096657532482623211690661718382557187426136873199594729157950074891310863787496973654280772351252011794363183172179177495137332347068737307759922861551513836763874255891276593825497299150154814091603840283859373108932738239276391946868015421516771919196275512268321663861124392930298511438663328139430110754814092594165803620974587306762640340140249260217185514356389168709951511380534640624829678688254170568497114934661669765548227692757158782580144798259445058000402208938447841907544985618399014578969060664245107564200899435836592685369596117669595367940634461060959977011597723069699961269073743208418827960521092753984945078427751700090375995674595580758783236393103834147150277685864125505478217640698656739315754139871201915786713966821727731573823259480750767484259962141511447489061989242084837884876338427146868938749374491956751068314512236771425241981033755929738915982077855641865030312988978988705137146959330942406117339826822622863239189847307670538518813914270456659197670674251566626548689330844126604019154355053089538755837260499131185012824222780587322508188868855586876746332328952955822591000222874658477553215462758529682721924868280331556163774390522209607569770303493878108418915153403979527692186741620810477761718512643330145008132044130219586419024287861767936178946571427525677055711513523008275994654726928574503020108635939723424322100726881828348143416453464418007092875585103295596583899095523723251168968379824614535160685041495121506718775184265524340088305317522097928077086323440914440304409453428706073348311785140079038598860528141094548707885227953067374547623819730286943319950136641834035499155460310105771464166850973793604919099624645389605069846159549812945552384183596440833307030899046348262145594013630006347741820381581736244853464682984669260144757993442970354304543471223899889282026663714051186114045078406062589671100029997476212235053736219556981201477920016664493413709934146853997094575437601303454995504373809436180583916416765763652323382706026294422044014286485477958140730226540484215607643301911158847204452205416504316921667210432725443800699087936908659996433284744175536794624151541666414660295094150092699271722299909382771132577515726101947962761648818616973567507347743523230049197554901027469334182737348874364733926613558927876416857009270394998945775048572340587540142469443903473776857984435054792970258115256488401066466240779427080757985811490816254168719355194214658351358370983762850868649602151325248158570564513576234920291572117014110541647643595876292848524894078423003096536533280930979375289630415483918834536032415656919971899360378481981984316331341044749533597962381530143374919341902611386026955181847082901784436857732934248851789652076731966181881094228199931912362499206146231404722920075479588356050922066082750521601637786357064780489208256908175705158334139388570449401178312686695650388826527862212080724923580299098630140022378419642907458632887785750937259860255777547578682863881401913295693052145919259992036462498536747172753307475348911871533906734107179793076899919305216546359112579551643035265544265756280817481173305017507467030783350288865006589067035304888602164161398786015143991746892170414915188008693988029723859850608846854659102700294615117260737449711638190179888673877102238924498868675130274839646651749924580024938485423055272519268869603616222202361057850766483841117475998349623081155612050707516259747307306501769696639634617466898109761805103916682990662826819600006957677058322840987553020147287415551725981163950351594985534349017039138141450963166175683691027694647792358611738932011838605200935217334073554749086120821416856308697093964541596641620443886262357391375862483569296241569389535317786618026945984661849057301875769487318166377427407277038105862563289839225009383943204201868295267350581087075897252796367148825320707793928676619050973956874566675889476502380960681783433158629631333887833632175982427062515119567731785365093987255785020628365176828066746314577338886012133081990716745359448782535040655644884557825187517886728189017509772509673417191031078209459921766715764969335501134202994114993849030010947038852607128780690316125171572002945458059960299350598154722372252699739003793152600774868290892108862060145773523260045251320687186500974644249898322975784690398221481443733492811076050413935412196950601737713162106032873931284358545316472321019682369927167931864291757321808165702676269357361941377531981873412069061304821771739566266877611525327794167214861838977066333510379465499530117059362218890554494140743552998433291681224208652049701135305988649693123434668687615517020831508670779415774249416639232879959248908509132339224847366381804379657150917398021068619953581744791795771764578336850189360922035957016889573777663845195753392431784003327466163403230772628014989493251606520785601723300559868596772529303798821818758599648709162520383625939502389137299036701772945134285152044533463119362215837309271847852760950281173953141893730686897492863781699157843420293158531247446311706233870139424501288922083375496552072404783876167523012697224105200831416430786451162972238987725811359539544490333441250781364206943814941005740897861375192670062804160155264851695577137561023785162123868825129833187041297038241179045038783684489461207230898839516323063128116344076403895995732693253813619348564977535935493057070915549764421421077402700974496292725765290752861682754378700735073996742002310862741599531061632761615397087636224738802228689163457317332281979444698435277763536851259429123161345878408063089309245812052464650538801315110492119307496976017551353133258797275999501713688325181686865988371011939631279055222737036808249178550303146061273307643379791964986846948085086969107414575184704003755914824157125525569898580731414243474718470922602645199009389901847557984086889607702975625100939772487484613904046474227500087164404056753246304115995532938878415477467265128186303630274937485232447072946338774732646751835808119182391594761398016919966003280243422005805947323659449243456646900812021702274713489347839831322004687283394986912179677179069241854584884646401710380759062770137921297776491189106325722038371381156295754102829222456672165391263335342120199260737459435489674465045527907408583708534222361293541418805815959506199904497640865315589956574051654847755977888509839820468037379639880486769757653794900265331550538921770197222825842251013870062828553978632364513077569383163809142820044981431381893997603590412183073896002490376393544165519440925659956278584328458985518921417302091301887798975059627137119931247834330151446686422312761470346045617281679570377222375261904317416975330934710893163217560354784971973640454353552197826914659249163858069418129081881861762406096068695098124519319318450472999047747474534247565285124984523108259869302913943188412978424410471907415011051569161725759913213006100836605410853121862569753039848828355974622648289821588001815550866350478376468503420378282360487962439390608536677096583963801658627418835378092878851210562460067558865234290512512276424938903502759463973806173166377137216571769327446961825532012948251409256007385308109451776438374823687193989440938931883214015314819764285552476952021129144925064697983478890570082410798182481248477913056791866704606969592545376834236896961666083293467807723927334897449194907366016517840306487221358731246719457748636468054467195199966530996180127762116474636385451344658434159742782924162692977873413995561093853619585390222105339264552563593588653842679094020344066484366553915098556444778114546408219439624344387080922964035311981722155864237387843382550289814243380111282004272841504211813009552300692097131135440564210535565440183899368102680703513523261470613648304685244489906285271651779112733863902228234167078731985108710261778633252625269846062959022696294743943936421281991782060640436608844533394188339973642150110144015684383060856251480249612636604742103288013512757085811996395769787268096042569886761115403534817130270109258826002758293028226836507088502691909077874330082972712115476954160925058758855779910251718585883215765810656031449371214615665393715696867846769709263004111500093694139992439599915200967199007208194976008301234519265844364620788112994545194153807927621412671427165380521848549732553583011898431985311916401537189533645085426367266581105744920021705700262015783732528544555238978987778575637444897910840731976360014843158637662706238386220584199617837317103903349344231163225069737785578728266684549471484505103864389708190736621351985924842405688799104161089061259185466866488223091505943194062303961841609525403005639678470807439823443418986322050610362469383853838912080767701303724932694284421042075393089782744878879511308802955842264988615800214129295956082967391074416251681021760696362446069870108201650858098035620958815691178667156726073520986898420249259488744617692313581717667254222423840187084830893511670619723489383645657220078807940830909059432019142962878795478396327486904467844329643896774872452922952225969271301702299968768266498288285363327152845615779678519948432368089572886919240719788200935710180541480648365892093196875748815522711629914677853322798912565206290961731279340519101729011734370623249880099445530222862485845245174372088070053223601854992310806678786735231945999471255202796019264178763862538376225700923069409474674445009577089469166929698716065228843520983468856250074149958769212413907155263055701520621393616429391354917399186295707672182733049633840032598616653104007042726646685759427691195014202388796117887459588657447310717033616396716322933213358734900761794965220595609592263891450229491043528610411245064586410975614417482004022316176857405973813029002165000930288210047638477686829743650809797786403191912679324412284296967853308242301711665800533375875441026601642901235253821489420293776768394062478004816759534208466132820470114971288405166466199015932798623892572392653669185317458249544295473646556930226749428437215705909766910221533868269311309329416841953872834334239804196125794396878208724821514769742674416327390856174244595046247386161622225551156535420136618954336050973230205983436864555910402178877886245929744440791117592628421053642510367223211544688052357184816946963886033133611272106591363216692414948468246994727246307938752587903800726742506037796239729851993508455027075505338850241390316096910845231252463251058017646814886928917228563869656756025193935536059190608751783497385018278618071047477101578728078184861164627911675694626302179057060831576981290604404957753456458172559222203179313700330825548384259487038127620288958471582442736139572467719566282541001969891873474248397663172137135800194439782581697086633733481494613389684821434102215009658492933547169203892557487463178116543560905293103981425460200029299267868821400410666560683238146387371849169813311081217756024439495084208263776448063205024793139349081895885426145507356644814953596951940051871318573758889345063455559606883392537326848492743769482317567146817657170850002199523516416324027362136925438200674827165478593666274414177420369706079740472599390211196171055683638684406538279670783234749868078825074935931801939922766314616995438871506998677797928427960375066582991522588067317170145128700494704962669544440810332156489075833120535107844517723060924997327902116848667445011326205312698452892469141159505015945403616632902874301711858139617319594289443284294191677236065286746939515104645916613272706746436152473215856176787917571273190596703538385667574836420235494569503909235598520459264532273708960451792169348386671300753644028429624623430420447797043520866418259351814347991861148535937867368808617537911690232520042395461298708331932247281594286226976719686644106337595090724258408666240058355590346230819988991017382596637021958304024417474490035737253244077173752148272232759885694506986829049872883982021519078561519106075301561836959585458637903711156414424465111058851234596875913131520029340567114277424870442156411934332387006829186302499818669511496581330532378874974308785984776410404085187661930710141552878755973453194977069508451430142412317783752593819930515867095284060599291164817447642269675292867893586064037693624980014297940894521671551420637555436409815020473035393024000721024476204135330957883680752363656450574843331647168844822632177063932875002146141772546981434200128375982973641412575621430246245750801775992916402290095005551068524333108889243820983377841988295718958320167674933534057307040639343900755317316145003838902567392792612586654499870304837698556149853425021066906129597621088771606672160052611573729107366946412937263663975926184215547623013416122615064428503763807345059351971495430093984795163748118686448455621000321559366332430590914270786964101812306001884741792035061159397081641660049886697366411430849959354638618537760738656820245513092252256080345426138407138547849594404464543363159394553407714857362547728080159108714732149587615605596672258094260676286614005186449929674485854931266792114504808341137477434559033680684097333188394969275611440337351002546810759509936156367718585595951678494217576967540278121213953883353773253901788528120204168204713283737640007059508845529166415210644774146325418811828581414874003448367328200024774491274457872305108240381080653612690817756865864117524312376690534966297015844745172752554353441209825990168221211097324658110161166221793603694205682851513686895593352983873279198533030583746231116627382871529286311111902552677417060420025327063424694554830775349707352716651835914688930336555003373830563570814522544307787657906714462340280481297471234495366078187991661828933402123178274084338861266730899371766353618821591090204155960525860954888759401615541884324400708287466774723057872387696198865415457817927180950356283984862269054235265541472602644139455955278090119576445494350570717707010207726589080323548479696617405577418306125146147612877582157292885743259270784016262492806252156364366800093158401399613570481628030847204091858338892972195695381697076521479539671348132293524275707571622806966761543063206762887827801424523667565537950546443608653116393348451186547715110731992326328079555029586604253410497669255281129916921057987314670220934177480488252258983371504710397528749974541977968631174943022474117788466890347409103197089822830773456511245812900063990491296185316166978610340334430808817860284792097306660634294310597688059701617530298851509792053091216143184261341744032845106332845167438316709898329622834886798734543348812340129790974164376512564905542544474890060245349417549725056013581663180849073361023113724383619787816213165370194336151369697285694779178323722679239223762861615223652520162819017754622111036050114704009950468454020375796683160573876185076921915041310543411923029168058125762819747142660992659939676996835577121289174007122571219267105546908539427476492679991010087905014028657514693774410884711118408149214936510434851674388083844718007279902223591300550100227396453350332894443574885322542747259057527183019099981505998072874225189181734771724011064770365861678650228709679024098163177179228158799051536453319394610113206339384324693728747088862477705650133864801552090781567555673869371150929160226102586601030456516025970162840889610369219060289197173668574434872716713539270836194180235821925781014900672992360346901863153505658711751055425669390457196808732304210125961496383875426134838441103403122957450590471194945540886273843028570465069001764277943634956917828940448469442196961461910725140273215249222428981429343910776660195957712823881597632128212320118502116330988179306489555997390126393018405174173893792067357385722765451963665716181178888556787833195076377154379078613369638427057246663009296855005701858561499086624451190432872114235201605271436193725419406435048180921825012962087907408840649870197039590476216827883385027901251083965953898506370929216545760395633880883606863259212197320273946004779715413603088825127855447480002883735347826245757404893918643176647119494262811071713277817398585736262839381731454593317733018352460210473167672882036488227723494242963964658459843064175595573615208538728546177816730603226553591499177717597366001000408347451906743417889572466809288158037920560284471351523668523369543509674526666861690036279727696012261246156868910682380936585268492013634715473475191121621345783465324893562423025781188165317039310341510751019783591345469078655821034212343888934654099643883645653860245985609235934296823842294135766966130705920006221731225174026126176313794514248531105030582617125144963326222318048962917346707056310086472661449091213831080061218407445618593728088795841962992669872050340458109233325751215563291794377030983812276949165057458341702778612891878548885399593029424542573691293012965740968933544576419415002519154599992000350154742109774093019428123583327433674410492990595886157684552336806996075062131162981518663346181535976988508020289746869821576376571488112301057382539557302286410206046146672072102371667484856333737245129801387449970812273176176801605457319727575077604533583562250861694504259701296264705877234197050336007632698345596276711778903019733846948529666010248942368233354186681201892630752773875937769831941018431691540752440450810232139252969708343308578025368182544055911125238358344902715767135079535829352145547579603761424934041542236991679378108122026396026170803735792989615477627248908684349013293593978919196374772402130556704559999830070801036176425792150903182855961360576041927531479753321931888653452185003469085965684669196235737515746373188783616788998901661302938162207677760891447997402941052961861361000856666396141057669793062147303906851099215762663240092189254664282970102117162147666865719599066337263437804608110518028517865175594744077475754717631694772562397807375914012176718382936408803458435300837170936785078020245433464860530884369582839160267902148648736953327241716845142036821757375797679980445695358252207640704925889599901409286656281886210639904493444065768079883598128070632615044477237324653970362667166979281396290830777833154970838175424428170753459921904771434005692283572614433718270629080750639514035210394100595134313211668710885508232434660421040387945921843063472075998648950623433569805576790469617551320238175979150862486661167224149489540997672342316376311079191651765392929446306432194631938371851409760723235996054989106254589333933152798689246448795694549967260730582242206677651745216713178546743646198493012640760482379193638018491169159071184705829326711241131696829796766241645798877741037460479667012871048821755908638247917158880105104362566165392727285496134326462812636516667513086688153306857910083915531697681682421020456627495984741469114756899964354723934082103323416412396486820010106284179512329135533109352252774837435039107408266643349406796612728238109362776288522164255502379986931594741084668435566146325745055412142399935743109706536046063694224486350279642578179568005864816205415081209938792784415239262452264512017299532221398778204545837963663379693479730741817281367997405744992187070346212511970950850446773699674158020718019246268944244643745056002146572146257954585760902263929406759824058619353286249507372352039155898527994105302701909530893838150935514660833455048563525762085908306911112154802126850905932815508589065639419589876165925341995583621023297735867262391720334610889293938806709583356627301076034515485854031517226156251001985928525898933312726237031991175940553924913563115366269390006440836239714839841562095587807928723653697447370740187357961569024549573917536945254636386434438543449935277376388854681063170294360970909630817901061060155735648473194560038540998836521818255231128730076455655108083615679142475047602265256835047383116317347265982827029405352940160757160481333573297280529574078026567413480637322160744029964731184651425217439253510385207371071249312093797667385771888682422994520195676934534314053776243583871507802222578621996126406834747592322825753056773359102949875572973336561274586987880050244637251154379608458629854366754347727837944806571113591425675581871113020761628457789537393389051428110300379935239043760903332671863206714708886425714294269607898580430729047906113521578600003306895840195817428611131193742930229153591982991899943743561868675935068523193821539005018274097670851014231250820437806224132903697288811512525804416530236314681505149967234178795559494087485294427513154312204239070271923285272174485489329188459058020533038182604388746095911411704588513826360651632445694887897744585527564495076891303248746805704221530866044598356077942935650405032779688624795511864462400988861522445738217501650227120821831404215189674924972493934689545345708608665891337965041979629689945526741430085168873168940159003994837768152349170038703110454013679007505440535178554522897069921969008693922869231278103396339243507786000238997383136431450732120256779035732677643195648126426493236716772009894618791898174847046733868735830780227961939322889274284663021475543354240141927185019139599719832139945923363255114644116058708698256813552375226622539391197401946661263767754425585476047611339595003207484196041375033403181044715269339543040142604180009627593307359554305648866840648221454078185847309609063623871093159267762741186424271046567141780024939938788381490650858437385725468331079203846511385368070739099021855564960724656429540141058375284863994661707823979592773997939972083971822027070015658816045162949468613229476243365411818105529346087720584101146815645344837659596758722974656661752693247638859495538714232748634469169445948379609931333165282430055047739380715270663627785052686699858135449844293249958043035710400208491399254073198428723833140088648903190292456377097020574300624709885472392791704054003436570228617044268358080734981093127974244297243915566794768962709487924557540457861212049321991009514940623869074277760383987672338235953546538600834804508733223193791102847918304575383454766186707396260253929268491083438175160776483525270125549976923643596028842644484098803932556173408693878526496572745011533642680811201242122753808106465134030127026672483792742289062493558777614306380325104127774666761428408994864268142522857407340134220887715531243042889256820512828322309791807269364568284064031898433763477229597458281305157991778597959576771465099588146112850969786584870711778814081447839523415697833680462487308846282532165178015036083239868226543371667089091995677033564340167046981952225402571195402089302914178908503035803500023853150153913832091166284170012259809098144293468093821356368914206487201025619563346972303564815740663413341738397714297866549719566840385693794180644828504042381689919097417496776360295953526577360139936085871302563281435143453834355754703818419776436415073926540024154464860584457666106992718854152074890964141724146081360438188566555040862475572101232020069671108890608213518134390062368056088878560502943589216461811750035497565242798770470350944654817937462747282871120793863806857563549031322071825290623850109678401277924291127600513486266751007065754388670588197197294995881160479965161969681863068652623105564718584796136888147378971218324614553221223241544233075601339648920196554809699268870495520414389722340132258609848013639534144562266951127388953361791572970622486780436351394939121765506599660586350917087861476117305446828046589659562761407318422486418595504470243430612542626412811624179558839065454082762415925573761419014873138399313644714694086774959470584520861791359398315975495648125496806027374974488915841273387396379058851815855042643148441533624352254889977976178080144728784602930436059283259802322258880613202365738961049632457719135559137373691617468481073380037329478537402992678575497726286201738373258831817842207566147892421421297155928289576404205322652301189800043919445083870965167162220450967950313563839002365908955593960525293594279804701958204181581858469772961138808968373445782601817206569963642222639506830652596219993553246207629034770023535180019370656998706685338557619538349394173902104596356371957895182633558107124871781580754883999570589035268164513649100051716812877585297786001550898059968600730548974661045330989678589466130318734347015100384680374110674566671131741959433177982140980773970604649774450767063922058503194123175262704474185357271407303545461041609372172255678672639746057728867587565469361442114092341765946852264548793458348140394645972139334825023645122446373565992688631689771362399152276531589785377995097994551675659159998342076225421776558938551843663795866734752310511153035110240739030553173434505701996437203221658099453213805119076003530390974737245183063958919361408203317137324130130773955827792293832976434336139112642008765460342082572467614925701598744504091845563231267465956332079209116390279255386386362012073843057808362234280642412982859665802156373203436433529252316971710532662956371723777166175711876731710126411365440327782834907769729274934271317143776012104432176187792858181625440355337663930268974441891378700771785420900502162339343849436781350781666200122576902297511480826138154900892305175691528117601235271020275846047088448287719121693787841098279561529988184394846989098308216901694348022762213801505447612577247574515223691341550170016028663257323062325796142869487223331192978637590149537266229131605125560318390413472418592164153099515983347834416640426298916397156132192149295811099971073766812583951815675930053071169643713122341940189886528556452858521043406517481960514350103552505280748618395878588183026633673161629286037794323972997104255467060761111515167765567248167515748585090363803486531468600562006032656658830961165594364856402837292781901906909606316577344076792247545842058737005624621325457065090101497187278052331599196328696407993101270971237424998343067984405862257668482436084691918898698613944367825207614080437665480411823059605667482536724411585395968786553430936019901305556940509909779582972666544620843345085727681777554292943112367720492083346502518591245276696591642104365092190635762043529984697225632621912223317953113419061704071174685693148447468841711965217431888461249907824389593672240230833005696634638103942637945789302080516328399053345972321812552245963307534968812689193573377361096079436220477113188111892169022163449020936287209278595917407722598394767273208061952234422509008131560346446012547133244512526703148571487675881067017176697920294933806419312013321864562587587334092258108822049803107070189612495744264402562407816958669517184469437560892497779065759903649829025857374948037284471599006793239843927445063811846727931973095796834104643183845592152727422948576859819306747854115510682890853993670718965835832607079939019308102926733608519516614382626656269764129657803306630727037600071244852666615019386315801035376509455017375785588700152849308057817271067928650738345939271979417459391242855527838200986022110948446085510593393473933673434299255327807748163093286779086155213889052436024622206439824676894637141853220902007685965825237329288080608791384076279643395763136832132988404145635312253343966224585220406228222686153487801330315797397537684794957621396717369909531616858490034777873164665206698118453076505352502164879811077080491347501721207667929673427353784610648687908527364828037355136017747922148728604101989457634852497848585258218882419998919514373332964062195123695497531571618327798552922588370965763980825658656959113929169208239120554764363984514614919562372361217411254468213679918493619919002968299420332312050518498853926225790829345909518231099869275295043343680362324906904778023505107701159943644372334354013623966846448955836779748652859060679344985433817497794531795468809914116827292759230110613990468308995459151185213553324911074974050546625279760413354570394778786289234747940162953308674951200094222202542689385797883390763583605264102526953318212504631616564786034773817594970498766385005275900556055060345534483993032857074624595185638863025886267401422231062008139282432820476865545780734385407766623309879468529511293262393544324683913279191319011049112028933216573006980838578616457995855645128514528967768085140730432191748160547385717502499019805387500562748409884551055194617501479202453017306182916185166518621936430986498155459886903357370916101250013211807965057515798920046225347092778857544755269444459307447159778741839382324755881276562727116004390646270014116978955825750980008450374752412961826508919186747526514900499977526582443476732421583196335376199088064491585315803059096797931773496160924136797952332760486372556029391867939679232491453737708506335410600299212075165645863244221330567866771100148769758262819378629670421402939359110944828773868439312514989165696444097434714366459586821909486916108556416116468012938378103732479466848633480186636525470540719990915233447829814156091126985029468384812076912839862198478741475699687678405763794351499147959707883963278422723355700747677571224330731856708287504758580083698816080827812300519597378494713928788130714087205268652899882628229371132683798675700892414274617792071381060274391574974769461551478318174561402954913747468621154589612186446290174399292916198395862710650019530346557359967746449893038593672995442375732261206252201311257717642201841817359877195774610377313061318949454771168833437447890449162685820141854382452494286546543733417100557849082992832871403513790534374201165788465268957526699908477525709922535151332888678166122875165499699976339412303758018246827324633738520395414606390976755180220729356021065311803550738189700814604011269214982927240694425699773721901336376536856629549073280606453254387820397899390841380931282258160608469001743879817380018674122856928889751441876270809814482321934909831030012576333469128810211515778635631185823234886933359118865127956885873586806658019695298309546369503169204182387948848868511444633172054455125455525370269034095011499478869711955735574912075427674755863472429565102192754991299994656433470291148050450047298361053652165110980762595950019694436648390096661314710204133991261545616859382678883457035586751734954412459521082217482177501262334529399256270912410733060367849769618672865931685889519641110184832613212704070929967550398805738332880590469930588072647509208357160865895269775068835729194115836052183002133371411096287517923828997218628325158651050338664938968454425930103036189499724265865387302132400226486413442324373001937839126747808588552198257097778093878386358467301084929230673143732471175684036822366593006695279291417360263264322906357873205536095721210085682359386465284747182632934582185861337068957466528194916950658672490047541479299178321047948039238137057476231819823800958954734181241522729980163508452453190755660234627413076233711045201096132306646324894245825686971071909553693053222310394221912386613746675238331334928221483537128516779638949763085336849706893304986237883834894686429275534861083029262802338262455571080623291880278505218322571706516829851548395687879474963052787946593354366228219866319781201026522510064235318659046680240319527253879726913569151988948949116849278546205678242128930408479473337676586863922207913078599037112513174762773445927416526282897029820790827889938498437027238312304733419132216280769191956638649392451855071380868001889581351732706721996414424659495054895095039680777218681449332984527198513174839736495220817868976273176818847590063564229514175009933588574290826128922915806175468372252074569337826895686389833952438403113285955357580937176707121000166325772037657173784827182944584105536797162541346554831217148884775161802170010734552515516704911321358358927749394350886628687600232188364834271456741270048893297724234378825155776144600547894003306324577176771039539398853319391582962669437054597264797738706844469787640512374149351304440902063565598578376281158383051519762644502937643820604037409897606050425074369567648915327522681893679822221445214450657291952192800112382151811866764664870228036707436312159928589329781780761608198453702072327544551429625528522939588426974576834240471291996885073956527393107588732669006196554072817151018160887128369005316661884950143887946865436965404443620324309873106978092407028554699335602516581282275117884306890059303140731338733662842267974359468485392615591839381247989321045452770691525758336891738741311897045184647547134406665697536711181285793728758753002153122319455664943448204534518448337848976558352433703430662367417569966323977964804816643426542751875653372057624315625872821191839590809615187663024363862508199656999195238006151530323420155783420787240565590431040869785424731473271813493986397069167072447039718305588766307700833338733501198252143295003956416159423589430026607860877217354910211168279658750096301500736375316352466100630965920715630429760311798036863389269394225348541883583499739860816650396792050536970998226706956614413296601440333014776953891201800793392115430435769547200257671261142218589188337363674237157863373180882700559578688300803754043268395864571169996420038960189088818733933226852221653534285801814388377304505444561918295598648114689890330731746440415295598771503523230630439217731162150094887060163953425068022047943251541986873602747012315657399788984564665420791522906293995651509856741434199312830444270163837633439540182850104803935132179953104484016711397928191053473813470262693661470560968262019927910122849056559825207921052141231695641615714561279507715197576811945490323918344298209962676227484683412552441336352574034637939756424992802043905894406104285994785744623245388658788323999543853840205231667086873066826489305222994601517815673658706914282100628825425703741627489564124690224611876759405700869210511686844797655310922512610123185549840744027427162886087510858986341459198224833805735911420085993597683329119112536455886313237804236722323015171872933584963541296449956996309542346448156822861448769396772689620218760180759580094656534083731860721525569316394279943996729230594595567274147384839677439434056964807790334866624491121836354512907956508862003813822610306254753901515807609553369485692405457279467063536269623968829827256942948978278352094355375040743035896358550458777094432654978924703946736301433977666130905116271819180998202125937487746293288254964067382672005594284269207624366802417826114028603012956932754228068763799083782798547899226485409860683995887790036292230073598088922641855661787353682625883891309174935557132852643452371141874163117378668138061113502610660345648449459453308873081598291522859211259241607765103888039925614617310898849133459009390169294183813173040725182410585580722584986660618865003382569994875306364267782452306878869510849418600814910611824652282862723861377156725406325598286144213278741290025598334748681793922043563195255526578648861247393786590192539104167154714811994554077162540226634148578541254669197090896757126918172061977494085706581211471522087471324360733758411643304654639552861257947216592401753186792137624530377291787155765181125860317983090668842421300372009438489219586629099899383675971794316255252303702376254851590840894374234595791552656215662494772545958503697493449182818664650993358970954972139535171293127039768587842149395181002947196388414726432291228608973863610164094503398569614558529219821980563021048417312184249924461339868506180590818870000714392414096896033749307346220072540250300155401969326993778931412311081068290074071114647432010015749077626333201422741586045266960666522976930916982268798060957848436959690483289248716908260775699448720043165818290190797802491316953421040924375147353403071566590579119200319526265997143852981271748139212517628808734892766251430969864421292502598360133517195805620564253656285712792357595295847048726559129189990168672844375615088838225369705562599685510574174403036321466706934775466725801263470327130606620901482371305696970384350330144833236607147415569628996703205743593189207008207980841890139548996567292694281472759833255106616696448091935306605823527719554364950399502942097976071406951170849634671063036444979677488138313010970406611186112493290502156927078677668972230336043847398996126089721735940119019219642144650031989886296351896435310866839222539942728248755552385317210045346444998248435754250248341376914445810432836867161545431796617193866757884327449517163763769546618818158835033588934370704546411940766024708465083370213057523862943803302133381483305873926073840085723510800806574422883086312883746553122428551331151880521907561917954982460459323798778045001144517319694847293448115120618413466018487061775665298297874801465445004995389924744335445319065415285698054082362553331716464430616869883009191307932949545314257490448276316384030010489550698813918147071727740774862706867986054186476864401716374030155995771823528517636103280907932007541567125919325417751439895749512147526663853051175599472003188087043602360146036969836023614340138091501786857529959718238075607162867527885747233989006357677545249166995792516773640553983802591761812638043199967560849644363337327016561827326395066688103650822163841135762862308315897317499584680456704631661600446838444961115724138631945061605008280645384982519335536427706452207632912766763428417087386306491658726110949962731013275546232528165013580399578229444436718364200861503553013011427477962910955375473409496175041272708117735337760788826187530878691142286653974832786060657065668964341873176811640195477018009368506343750034640148003359001948857718191220514420448281987901690234983312974207862446860772779912694022001268639694962792551181436820168548598847727096685076078845403519816561589547151062383717452333453509000935286557763546318012007006107387603815609453975070233486869254715513299200553272931366859536697575773147734989418545462337301555737448500282074767530468163162088650186771660668876815195435580046772116601629812530198958765329923972873505736323465614317850859319431211080057010542232672960956766241588160813288981305350449824622808591636074878324524363903138223422182562954791221291129410934777835655297425317967065644137108310496208838725781593582305981754549129017282226413653722764699804021028274444948480669240523185532310362294269208468154471030042341318876914154855128278269914103599512837293363410268639644082177448478087583598609106618126314415738151856707848084012714803640539830199195196415006850685516999306269799955189918069603270285448975891146766595724094885631083024939463893031506637774584797973146305849299702475667974167809524777092945638693506090417796429112334980590421075150558567314942961883400664204210838849266450596274800829298517962792927832778755208758571766935827795748791629211839071148251338109491629524166586191845812959917959672044503547237788963606811890327106365975863141673764532181060979360943336001240796388893342260858174432655139748615375480523162933906993712297832931187206658358421157678192652661757787828924077647017374034629501742734095889684241633773904278646548562164717421225626369963448511888862333397700435999561103071913117102554219767049819239425697443513730397276131411786934893919507181951800511366681846957002903430785647022207954787476694385852969098283355960688530932131822626700125101499764818915953809726726555151609956352422182714479284698419119854773128621113325752818427411423243005865984895905135078223906119250374047514810239126864085400283258481177259703822090516446401363852106621643356844656838481154653167892116575353082322459249266407640158859148833629254899830348750141063500156678764291653077476467829662787047324416505054446432057312863044897329278729856367099729311954197710304386686539450501147516327552016316551519628521109165534532975820086314629590896707015490008296500256368435123735167465642939954980641249281632857590447822877896319179764652336837822813627106181196901125375982067624009587981642182640689561992926784235220103490348203271243201964970028173585529535491732156080186994093936460103882837026883233071436386163675653434814976406305781972402237022126537656037508061562313353219246975172697720444034050281945790807662856730397910638040129403447827927278576360934753228009396864509532490217049738843753956167518798094937674514579961057632747967515250300302310991418382139186698009535962234239251335078150978743971605506367856446588011685070033581507797593643573749903660828309961462796893028352423931101384874908360385050943580460554735027109237585898538390191098237911973556173236799249355768041920726913014423638568694747400975869118598429616474015137655908929013407753033417652597039132924743837475107786821270505473230775820070595782798308498549870808003955815520578696578988916326383260944970932243398815451992844819388566082567918703056307283524805202945946197716161141009102943937613305124758739336963311268786244386935025474087129276332544165738495333504637008508328066422590390500569535479316596290890105818312266974885211387474556389418926490661225751774076800905043083795483221084393482071336881440303312052944362606986867617142627498119772431690060295945653561940059867689601862606895078259628791643212968991578037915493293797610203970673106254668307646942222029832615011413592695393590740939194272218390068383982432138313967478304780478008767660542391784004749006110494882504083109955121817525750953832659717708248785529034757475744627225853262079704517434914296701220209106680290857154829076165752053887566248422924383009296975968868353323699702386817434841728854282529738156876354390752726533603364162054009957791351486810553859703911094326041367186441128590335376588385050014432058484669344163595699138610483840582441857306298557594665058087880793232307484162702596266431972310491756374088459868811640479388993261616863685850431329977719186257097056976948186267389496544128190395229075184490697881450625847754773327300667608253125012048397951843003976605350455043249851688272211212918953841184910685547292363734213953288897426457454642291181799826583835254656663326639072655516335448495859462311362905367734113024287410460811329792733686570913865442650261079019574999415595836851608613093791458616037348932736744225925222751164786725890977816905770540929455448195019976880878365994174125818345806649680538250908759719794991298786852936364894633342261400921855692449475540002191101100501102250657496149023672981323157114035591861354619922018433857208370372542618173341767007246314426211506775687117213577957000667711507806804363379462368407036231900054899154612592874273676746089967397804237615503879221789242998184261385985476418641923722967945593150226406581907281324405098681694229645522067467396942698969543614267522776824231100147271462459999190773303809448822163059673318795832443116854463814334936382160665922945610690340322172045488294183378227127108044123294776764489647982271751491386527020566313601275317808225077775184153353227095460494896836330047865101801333371012318888283483568426142287200109689629035628946642208860446613076392586604630163096321954830410983521190408995150705685175707109039883559630272863760144534064956069515554876098326922892299037666931853160492786173845927984232407077492182531502459414004453970424716616958452155811412630168236878013594159841023967423097781255769527486367930868515419038009286033018988940602318475811416570944471221230877567438592912572408989266349140559695106980378142179094576590000982464434704086613229746246545669633747553004153446610928838322663621352513163376442995823814790302871346968044726059581287193084545651221638741450831664706207956006851869264948363766528363821828041967165394297365262189384857746327202254021208943967668517684411879270996321597372227134386954890413284389257157604477608239370063741813593285312366288962258497209619779839865911519068783550540507743329568918071003059272617782820749730771136229727482918367481906210081730337841983010930681788324491805249044103645227227519036607518621151878928083935643576517812297014919208241181258525926949882301096879616258943900440473298477083567224915631002557621943089434615057122226186644046692039329857704062749495457618666021034032383461179401821421894747887909085546341126894020694954284916771121408485172530472401786743910777618915144746806679039012302893266714043513206767906019011463210273343114704824147550970641979303842619410481560233530515540150617565039953728080785554156770446833454008294438313568961990021161439205405827396048911527652763289068528061711677763212518636872609190782935280366002640982554865792204931334972940045113205549318688226630566465308400661841315292951027759419071018133995643546884166387027223102614362132690387056013210029990842565781245032412760221798214773184047058120803022835690056025491918028693467739980594862735734811192109197481168444689741630215822242855779474568398212073638608290586502127753580629000210914630311175539963547372777427109902903077413956979737099005866367607828011854952731007210028933810569531257651771030650258808843459809835070837624739013818497448249081676795743056119108244123709444688007505812170460539754135896838016534092535931209904343153556681287697170218600300380600388618932974282530398565817645514734972666257108859557677085216800171445421332169147143195153950869222056808892324884742945270844144524797730129931860398292972776297312195171469981384293962415306544088025911522039046076686139557391907092218081400919069264166612364931963891564078211837549229854399646849842946991993480221848310640242323775929306942531970122892918296812738327350971896438556624702163036015237052205298192502221931072071022246106310421690955954741990299107020556108694245124600227669934083261694434694956361602943762225736921768393546686992624142876338494993308698564725620187323879965965474290996996008776389169758537896268604583893614863064054248773868338338310896340974283288781690636531273922979679068596957169367290179192535416884994709126004652095809143437456727986497779797300305565221234948308329063423211200363395142619387298014595571087385573133831710194068624857116280592483581722488633048079238727249474000248717612410823798270630988391318872271747840571439367049656321475925008743132212956828565107532988938128736382896226390583512942932998662757623584274421730694468061194660888781050314881354464069155535178487430221093984146998655195984175855579619980885840922319838643469611190937459477915192117435561947896057878862916815288626309912280225599709963120769248169455521069156856706150225643421007560618998528359827207875387247433395778017025529723299795383143633673121432439983068195422046931153512774752053600213347295250956252683893754564664940773956250648202701839240903440418174939137668731904394008011205423280819984039510232195468571068066325558062560746803290022420147231128202410132413774277101253750201903596930355183715944871386754193967151091317117818283644578133164888627156073024810074350909967984086280735506398331196058208068358753019727313559577379622889461438741957946934048750351386551797167457912070266379544359668055012664836699720100797497202259528250136577194518596990006346367259505537336243865791614988656118035212394333223919948411872777579705262994963034542812254611443880626340360560699325629454221416832896937126224811708863504481632758575873390867668508443512640799678585825569642036280019812496480406816209886172550464178827755424345864099159400301792872051702692424002192141113973739049558223789186066425706169195533985918623982062268604334097136454191825189356016930378499589806432361512620515493872992995484113300032835305279962267295443022433478453646237436975189531104635782564478367164334044784209724954471231974303335698150554693568357815570862165859219320607890750607390055846220560414124509819518102841885415503522248464974402025184954849489137369348876366158961344373646620434502931500606161870260453315594730761461259374025330533441845722167932444600671900646784459232414909337095741657596310999343442706432324235459576152067316788022752917766919786663666598106228050714505445041711713832329547108887881739555057054104878025027524151452135461263891268846512952979379206177131029257474164412772146420695248223961300317130827832910027068128653444148888320923846855784746027066181126453204474983863232566578747282306006140253483453950159819261363217133085097629539535191057914461425873991206661656670586070541412484178075723620616216468684311954932664013182839208052928493492667023684232904761841635371040240118204703043900930153009453796454702814371658209441609237569297581358030412935300756409502830963039432613133125115150069725089010299224266474416190005163601890747003702901010523022176036141758749536408008849457138836624399317658084867065156919362011253419510326676892071838104290350230568859181036754066675260547204826722649108058512411393543829396723598445042830155563827714884722688925120645264282838612852533245575045726816745864084695773904548114141772835577120880079870186672385910181880621003494933954882680705083082335805446904568107794866003451150486256722987260710364306197893448271415306637017110792628127958064382337535206439267520212698185853660793509406566376396396277805762662192949028454672864587532077251786955363339248691083145232654089745065679934217490237599587453012831244296748506635621074692493933461583135092010416801488124404891698949205247198600840173424595470023690345016585137448531492785397315669620335319986383475474137660022600092547908074578024731619558624643477811658100704060013576406483929761528491630953695835229806686170189616688815766176255657320656587305321206499170430604123386921798913421614401796424263556782304484204314116019635898119516067490668573835515235089658952871438371787610855521171686858151695450416035322746943303100313224406095655653905723903246850440707965249975513469019834406010002314002292533483233791130739269973861703702096708182892624679108660057359326619776959231187885725592037598952670622233998241089590687198340747058498059606647607019972961321787508416225173611222381273892614203148374569396609333281341409681771344343044713993405863138840492906589036708042577103302973859039487363492812611070037401531037189392746421401746890218322993476009056225022490936693979031022376651108883695810006699665160821727451182615687942536886611923571696010699924385364362871155991555900668270656083790315045540189778394788852620172440494372126738667062343568022460079385374358138168617049299880570838309316076421471516713199518111635027014015376767596560778412960989541822878778121504550339658082687878970601111709043961769684903257708351962247032429780156190765050434498669132721414051754562076296937825301192128444338148360439623088101592005596073389746999552734366976288388851470722800990090956577346201197586531594300734236061740069318184627049952753479629189134088269275176200826714063523962910082586704042304042572351826836779643791557355214311113714579188252290754647251690701162415507645779028738693199785106558096238108265697123318580676007914651434780254198968434160018931518851342994419319852153904612243258681037522007367366757127109218173755731785625032231162501049179449880800777825400546710121895093518400390028238970722435373251294152557088951937936095953461292795816372401680733134703319708864553393541896464850369983525805863143517828112257128245364118486810880955291656876263095077860022065715626311506241529078850399342644169899404194830821981239740499443068250104627870465303708994305085598634859576808111855580292389089134637029350630719346773910494417795603140495143431498900729750764574833164343468496827014428412006677862163134633776835588717750610143265849359243688488229886136037295586037029101537168877599175735801870003975290683287058478817474804798051266027770903987182160257083782842701461756081787780464318134510450927528488906587278665821905403028469275707032589201846101203568410587501087606598419951632800545046737649158749691256098668449591789440466636218645338353581233794251708326809920292543263583101093812926514589473076613013829872007481024599625315041212518719204778639785360127951160043091490728283903579434170990374992447289105835618074344330853287366475145202227289642304302666870746384034354392578963339783309940858057792256164319860759692619029626716756067216135751939192324603625339321200634059382345733721750425771754525319231219079118668711487472254402763569648912714563227337528226940122976228200971226568735900503533360048853361081873009743477422693287287186826226878853748976619890716020053083078533376487539061391385906173874990965793050458862844791613432496769091004741120372555418408388736952559250293244686956355891276066313356483831428431228464355535678687184730045450511306948225661088682814487638526116559570264640170039608571587962109798847990445034061692490386177204817128337498712953682553592691029835002199241380752935634712501218324700078197838916263898734621186172954375031499129390037558656615637151684073342075058036632441429188906132133821503940823599768194027560331471156841278411787951595202408669710131307093862239242513500140208049966703631090594034445824869260327597728835996160221496410750804241614404885722247241718750416036508902383600313843952718926761950497711663802533875444867743669291212216364520719032326615070209773352264938244514642656966624789964229160270053489718481246634281027155270070078334673704862665922558013526915090606564802791016211805776579587577023165649082436294758541044728569315266029975421130667361555431325050647571339014144313892952156995175076438759077279889757134738223764007602539621183199471131536729617856719312160129425538229473022078064991818191319747081083941800267346989585606040401253149968735519643345208309874389359401939756794091193703887391841503538655372134174468737438085074302133555845413514506194920122765380006487080350228087597878642306384356355700008594255024352307261908878856531268053505217112498282751512958013647932696389507594910103814703105975115795782420865540018370942097027823846200228541918188218154442651567878619016992522520731334953681037385072080386369601368114695444022803284840798399357233777407742720483890726646525382227609445427897397467683530041509339643294229954972547370658676685018803973572895350926063179703298441156441416721984356052227882774116899697441623065201974646335854429955540634219033691031100773764694440956295763305047301873589239177955987832202614323172351055824270530192830334155069201351754096980140943762518408313955793699287748056703510924452936797417701831199526162900799646333172996383796588521902581451147468769387304031926401971111989892987186444294628284578063966385337335333026837141080561174228870571936899512545696301631401078585894179131826823706777150490098870819738039798070704634013634200985669450631800336893434540343622026913482040347807408534503386174316224741777564097035760820605911882709366669398712221337925395600630170745991981872597947596781915520822300150147616050340400995314599754782694133362575333999636147989806284804294020896168741772852706022995496269972746094861941824663351786402781150574250598709335084848916376807682832501040659151103899373537500573487390051354743170915659729573647672129620925695235239824264077754363365768661548149617683330076671080279657434989303975342496586652304254969774985976942434936325431672274901255779515885778641854943057142031341087493423102672817160687394028944953377797428931604496482550101413587951584877217937136655199070533462012884914033175744140863934629952135043002521292027686429681495560155365708687718548518888584994385710298808370370372940120969362745980711013422858555115383144778176749911288183066429984639158677786253295239310600569291161397933391743057774497906752059501909132858726025978412896770174772578155896076640685760061916663003833977096184885120146093331083909251302374380999198815143509405722686560217962623622486860532398666086803170895919267033832627242101523189401590517498060789690436785786650312576806040681931906724502243283700050704674519005020788090458669582129986417888593567372445511780042222211816507279925946200986349549437222795903764194628577834861388753910187903131063297633768543536577028282209993249018082540099449105484858592405138647763395254672427114631256551278289587574327329025396975231238781676691349745081958942281362813370414807102334953377674609812212411417943371669662093306514284344778542168053059166658827888086420865816248259220055884479634289139117294150142384883041002807649978946753575586697122891784322236239339493091771400471194115069445414708841262750272539045835983192050325811412026041998643637828757749782218367644432433171218498321551906557987229792044462332260365248731816754775072582471654666431033013574454363113231860804655306486730840915496222919113932505047912386660686970553748891394146498885635756193678300962967151013436184517952545604487998194556949631011855533132064468088544983447614477064554890349069340305366653647851891676349312565545345473105946147457461277161230619086766374960183681178130878479702241515561118961803251904121339730063515772538747687227909173513812348725780121229585895594194950228776604932153159090356403504848586001136216067503770080642862544901816742205154923121910926646241983097666995673983080085775371138516032866639457312107205440703995250821908954815208514653136373900296407350136600333591361803762560247352142744973811261331990426153482720926374662831853067578814705375418982630201076051627429051709791655144827743430781072807887983302639746965428605757402332229424313334843568520697389156480420686059857867742395972611791524764788151840629004315009013030934546797580177799497793443265991518682229181485060446502210302239710225296224338888112743997013923043830703340827018515432971661562024473140317367831858657497270582626058493714237382333273703087481092133527516530805383484036762203333534950052350250429190953813385560336584649206893301397661342674353285561634613653989699758383837415717867797782371184552008178218918206792918795258665612713091208075441846478236926896351804464682034647673394594385005770839841096008062772243041691422199636706422081242687359702645206242535868248720415807347402011785764198196434579312346087895863177637752924513969430869347908799206083347875546139315004911517844430757248569916760945851662054293932099111296596689868166236132596450997273400236764531375586132903607414471772963159819164417859419359856274951480345274846686318441793750882659967339766047735690918989803490247885713601200700219809051676144472053543032552715631624778876183787866026617599482446920466486858754726213154706322237688797454729288175564876607899391553197226037607926366542257554728516748210382320367905852392411243658104467705391577210808710659775150567558442996753944329810423130432259990020105772499783772389902219459021980329983461559234656829903616679011071525690745561379800950601982268708154043078453224555328272161741803826917619825086743002609792432129030084435479863751476894465507031542544802486124781840198544014349975208595376822311436341478929324261299743563137915722488403603080239015822449118709444412843168745880334823243780412122810459334728416479083029065896706113073757874145019205141348304971386038624146242287195316366939614968042335230474613630675427678008531203113550442035047739776123080124010061773189591824831882084091059765304496936719721297305509359456972532228843989472032203275656169706630841364597459868043673986826540064667075879542998321921691176446078285147239157199425001779220620683824908470004137399530955700175387733935143419750508767334566067698973226108469919752793006603642681849734301140663695199189335161763820716766563217249451518007884961100280715878576422956190369874559796638429453623228511657056082195992295855438131408134432658501543132163228103299078754534630320527611562868368940510217874825870057830098233934730553843028058488065954323729715022324198741451045255781463079249880826407853093105337800195405802748799248297653701518623022177488554951711256388265989410192430121224167297719146726734562740091034298397761836692080675966377348904757024471376970489677883038422578497341082607808621334642763104610114558902017682660896002367258480496598659388140673183334031284578817996324057752050162133023189714571323745079493020156722126364505880136223674011299346520217275844352115223872807106402228382799297296464856183053832109202877646745106940545620051060745810874910148819810265304966173111874156512346818769420598144569632482115672754656217769258040600047579076054621727826087818911796736697193219174864281840395498441996675105605867385465314506700187504849024800715530043092273421636040808552768724124339013090568406980159832891937720664397124338807128802434755025793562313483263599808141069205593619925216108298573799160377303922379757079911275121444860796056632728973828433854846916842374049024693524161930130816016054650587937208302364636037699255850965905914018936499427378848819679715341708875820844363020645547381609662763403420803907273631811490080345045498203592472135769454815436127140160052606693288335099682363001044415853707149127487595394646884464454370107914275888885160488712338620560525853848432728290178056296390676818695847766193230421674905019537984465602869603525393807890240811138135281916953311104454144951722608618856506291566007230800582685227499120865092237236214573067880908508481749144464428792820203387766688749571783073048088171167022747551190590350125338073595867627090634188497747809696689580732035269266279438643632263074652107291747563840140780533167246516004817191394082076204307876000767491122719427372861224823269460590193249053253569091164228580171460139108423743415816083114715785217596982693147223435815992438614207541821965826626666255158746604403771378944450851001256507589710119563779717921818313494157785712836610076771047052759154499861118766389162529987401561764590377480261439691951949563761086784431571585352469607533511061989570963878646177721688771257988412813244585992434581947775172946116778697368791708862794845646777797973178698842899238719815678977951916651968105602297392624955687886941526187971927492316619767316664874693829173086762731295625185269003254109410457385309266145865725900729370491910536945506529239897401478991973805687265616405960845366848190437601053287852221336143279462246101617115325005333392289818870144593713721182604702265013190441037780474488740035512004587930653656350272726926641554869624512285202433711724987122223186485065405447466967621632640618208904130655520014432137344760979742228257723412060624673341467494810496113757329107459063304355063751228195703860581559324760672040762380492179477735613270083481628013484134880438397129714703331848837675245945657751251665436227270609736009172542884989086954928748046921977442106034226977548817522388587251531522707433621836724727812983535436680483392398890546449612670514468500419068209865277860881506704926344880667458006720022608614022006963823273596260144594948912222494162000465813143925307327845801382278391293196249142005796246186487584174576423109255644205282868371659672215245644284621442811472901770352418725760440704678868114627023676749706761406955666422775567103329597081925622460963376891899892341280792293471142899621687706315353608716795787018300283870609958893926532972765880143738097316421881362381882929152053361352297532020610439824310062699950665207599000222371041210079566555031540770305581800585327575362079800893054031061631002812145149248961676609392021522639577284822317688339479642147283594289255089868534923935471673787132907518113751977280434462905602594136875257602656378307069622630259083478345389854783149651326771528626021485990610070324996603760763166541794559773808148630893319539677858372132380807517450886974081672427354668151842748347705257761783427650887856189984985265240576301538652457029594652552229772184548977946691536674151277066881328575731147335333750452807310388067023684068050530190060478132734607993429848729292660199563101238142286021720573738997615517601773999182709103487188053826298574666210584220067435660448137228841330462107953791460915870845138472121508431937674437144635961059913365121916450580958626399148584359748936178476829139686904625261935283864833891050751074599883504585699707641546950474106899594610609402812759581859190630409262924352802707647929675921489198861812701546161824795640893035873005919066047775374621857679590837011143721529237650052251242792297352544763627614262489050418808364335174481432391515786266799060912549919625006490165271726338500921278811303534221267391094021059248103411933788558468817998556928375131471594198440897132790248324791591177668943623225837367468851916799634196159449258444821158969086529500038821293905907036009693424168075007432632552731918887020805525666146660631655480959570753134743997850797240083644517477467370091198422693232367109563088613846558503407792450430431156093930201426504349079067593842612711821996354302810060071267723468293805427717756258692867164142343943812375609740922502902247872857384457403464858968460052442826730229435134955536171566050660771009636108934335796007269565537007598503530816455878793191472456107490276108538268679283729482728479127620967885779697228271474561136040449040456808703999777125218731783996880980581713434886436521901496226509354019606542259552087719762829853599447948747194367492244973124540875816071640299079150319293105973751750870458129485536154940821931394010749754548530703617695701764086284518789705278144240663172957637749633866769255563153548245474222962084031510184767156160875062603378271799471299828760175845807584975283615748627393188150875324353536796696485721764941232408993294892208642305103857893776043764728482778106995493785276594130791816121382455020931569198681562205668324368139603751100647683534426755876461989207677213748672744893422382878968686597507113108278691908214227522908842229695801922400104948447841941119842481346953347783773355813792795662939175568681875787015855192117707206157735129934663283555756552216512508726365381929858558082912363176485304395356892698471604853291867360482355153174516344286523245395533926476284939914907036806953379626125719015733081202801830136438244644471382524189902725782536851550684879556122160189318101894162227999449476730552517245354108527327747434422969847284118307484446247847029189145807164503126964365856175504095461067944317238179963413322404976506315577951183612607048834098103822964993918250383615229778896897229007492195223869388829303583356653455550510941058118418650279531592123899135210925429360279531983454395164707673726566911070586785467288992883634943100050654517267237572672831030895117371759147755281937971849980483987353769800224850425902936702335313325529295411444880600127467856607408135173749447771729636851925358487496015081616057061688905560522292355009734129555149277643578239967293838712630594035649524344099388662707325035565881716074337193384316702937179755357434782127408105278094523143672001224838529354794981280506401432092545297978871866637397241386500183880591713843485165931638071499365624671983374685055709519036685377432879179044098058838597743811959909574262229582434498909816030220274224602675814302455070721466706439858848378922631109375892961631614994432974882488963030877796633270506319537733787140811329794444234609035225207343446339816727617850879075286680113427347773686106271729210323845681130585185638142196429720523465450183365961746460231242071087400211338324195605721102391887712365113392510185903273071840234457734875421903072811730769379915939972458626184936776736224170167545130008205012368339380736308097072797821099309883483266122404428651443768811558129922932822684917860519493634880793107171146292729308741557735601723225922943683141428557362206218694169514671253242511943972654398543231856687597882842821633910325086368819199720790385882885683967231395933693736144676099882834801213527778173548874002428932859558429765086013861402186855596748371181291222902756780534525187325245681630646923643955551785811816358512236462416197817501269196490911339997578652905255345512161666004854127564962681456273613851457432886727060751239689655570194872091829537803141017539901605691135705277902562597312539422927086422651214295377832381758284921749686110306894510934515517445971192898347802310302842184759881890541883527454820475174209420925973164032064978661824149333377085742374558057144221342884949469031731371041530263035381176631844112736580320017948947433853979583802505345209862997914164731244718039520752291373907838362142102533379391441203752128875139113289945708202571732758029159879286470333318427546636663255025029837621810880789656783253721985127596670916711091950383227092272183933657562391604200854266772304504268830907585344718760548962404259388272297747957945775247078845706332308811683826044073494378824879233449369712056539357417734919228202521107484502012790917975574101845891260849424194038978895039987549259456756039563835689038036462498840690320372593219928240539060451582471126885165971413831362005304138037287883792120406555129529722222204252913531357222109107973234168464030773193181871783834412798984316225731842042105036342967665748785001843652856779789015357852943129512946302126482276789828000865987358718938196171661148654839025945308901453714833822899842219950629957671339172294398420778385508833774028855032556739341536892514864134804403311145427115364670384844288535421931443696067264491058994823108360422149497485189703840140831468355686088494421737923831187029212664261097314344919263709434995108904792087676067464911764358772710884113518944448453066426615719600340525678414303973328855259038693833144765174676886409180606409635904505352816326179522594121266022097816738048869316075841739200391108767659029591794569591964820990762126513361903165199744349602708712058298600490069414527017082099966936173578504315880719342993308380484839302693523638014520922679359156077460780777849122035862225142883603228788234746536027464945993709895709195509114933745432356530946236364193523201210679595284423247988477803127414745525918665165936564816293389052831847308060052526397880684589235547449207104636914054408527761473731769891998467937901844954491981571496011598295890018347091592460373123333212887523363548274754259974264457726330732187311256808536146165849305549965783725975722310443208579511602376277531320881274986360460495351155676533173288506970565754571947684441766403617800430198528344088938057223204781610403736281840994907496439012405592369381610553300574664276912451118591884326005586257107323160577846136332704497489591920849633127893054306654341999736892113661949598695689965181942751468653355193015446509740705111222015097279518639143882844865856113129844636317952796519295359387869254427264922632750050919837835968084200043011115511529672247811507300645198885115557174806300756281916076325132241009511557264693053386803737730696209794198312731246543874458092433577522603476642748677166358802477538961945529483459506115206035393049815066339972706390969761170918582655848948544824446033282503477874762401984279799125349014721542280690044905062152152810489706846784201809625147503648376866923307137895447933314750548751826429672267463849920046673617683750444082460067581459575477814061632853968171383887509648000546905231685852992254739605953456028044422266999534800160037005992136205175864577349378658850817600541826106691556228033628107868362636979771598596774947950952817578414505068893298225586017947220673215846038778391974416914288540501893867604619791098662518634690237673618350872878002011959815702184184685683014962837693548546856344777985280512155624522933215586796460084841737085957338542848207277138702511201906587064407420822582754842923374951636920586051986223185132962840524216523339298715778312892009591386619372761168357202979220466726571809291659716448071880494595245451665415796957234771703560432418507533185796507207274786854966644700010570909761379194649794468039870579385266265340076053593603925160903373033049513974360103018651097800611285230967770007366606880487234648348014583684015767125991284456997364145188981582503831297328694860455881000019777031587863325132339088912990851901392147900381311010721780359256424853859126692916858450706768302600472254588994603343154002355491820748234725956165101865854493770885856153859896448220224007053993760565796240792258914856111753414322158490842469200402886082496161036048362418273955819970000715255350626510219757032956075354704581465886623638521115843166372195443056943437463915184942315897631501101418439088241207159810132069696058186665100844474467233415108502111695736289469088696345135353074696093612397969709691556728609307401091688326357766213095676795749976822165419982264871824466974245511329281904971676455779817242546276459312204886633582028710129239206662580751546391276193973345778230963985056141771446852536270600238967212105004502396689352243273263278093232471138943576387757394098071763412283158051651525634120993679368879333769425966688404451185799463992987723641448225189291280750754845884542401989252121376209888822802732839635262831024283960974679490307058181484445124272468818206963525440638497294744875969100709091905105525728292652360315891815031460058233068342936609364325326714366677358324249773678886384256366028877464226983489891573129347986882311869727824989138406627059244890895915913409719932597924294735128949917808289030416854368998019537384438840031049364881161064665788504952890229232365183991348652905111436052893907503352793492037707949109000936675150670952704575125849982928942348327058707482459214206712402888490103252793385117737032941987615760249523652269638988029133022517489067544813435610393527140076741724225146800692455867826860614628495465287177331986662065601243975166945278734818728499073323202847000875026307471937584788877375797595702422602565080882516553794325206305714875648418158790057339570699402109084378481199409022490272968045805272368702735400397576095785205639674592706062790946492229703988430248416116950157950660666134768591882196232482359368983319687790205659336376940483101269982312376882939438672808620377212348488500751199905666069722982395090666150056841436964054124488149660903682981342891194067296918835270794273402558435269457924815594867347976830601086334315128922529330073873212761872790591543488248649534525833298054647804063383828605227448362133462872326632217986662805683129513067001036137980508122091905258822346708174094091171093178436092814637567947942788402690744551280463704077411712195109287723756479319451215435725481853599907153303228315231036062208705540562269441507185737271551801828800294824972535343191327919108059494097062265891535435007165115001458333798072387276099747769528381556084421489448213527719683361704293971074608149530985253262181545823786663934274417363889749691716679195588817428349326625350802379137443951314749668204180771528053372597745087692687189665403231178123267288811550534207061136533325632087585029743114658496751006038498834184928283062685450198407131763271212552872991812033203648035976637972505287998988768966677237048018595150456433816528662711709502305200433697709373134541301822423682534521951972521687171947037406595077760176165412693627683007776965238171339699924843513223104536264693084183562370290009777798046155426948825700053535202332881203106471797103574535562721763937701895625519908708358790936651633748971737150612993784641312242661990073004493243871389207870707457295647336875383898353439813579629776387896393590044795741050254558896680005574161433406416665907306759372426826466027318490849911558566894388051732995221948855954209772378932242914529414053151292910012096713502216928271551564627501935005170058399281296982560280942563246335843202090666869344919848536173997106386141337070269015301367430162887019320429567009515166013582926761301067878933328655420518452707135076125426342660608118726122198392047612116806642008539183599810265202972637375187841265188850967182958247645961050072785969678475272448031166601498306887497920064103415135330958083492802885666464328775684361731554115895803128574303475458045660466814534195703518807196271577298333825044108378169372803318460609073819537139500370329938939896189933158280815669426279878345581850775496512954487129224631646011189098672826831472034163335140405545620144983305306984476379939578777499415644502461279003596259146992955001297050107055876328682071097656777223210532641120731227387893119132941418439811781515084963414772412749158726343690339298564638767063876995724342286123988835775207551700919706109015049133795051690761902564315778057049836922940488824697706421359140291588190312445876151742961259655745224586083546138966195846703903642144138758119658677755919798803189117710868115759599085496044102994649156333219138530643657254816920861798819825539159808414173802106086893782859506639159606738508636289127457435090149474499507716434085966168487648637843432467780965816079934782353714617250081655959515624382292038339809769071820004962726476007594841638090962991337947456266608712926940458980183756372952362201253643132219822736976831693193724208982393970467020144568904471721904892873490371450466306076186675147912628899000447960767094658364551893682680112584981205777583927266230735565852385458126633685132042769006924004935994429415250554236294206135403065085751771569714845788393014957271510463028410979370058256064077499015274238953903841989025251205544296269012547627178877788034805433762052622396293728327009386291046002575835608225469958571178136643847878123435202684703202339633486097373235746390366883220677498606225374297766670695593627318154081774623723713846352383119874096461944392915166217534118650119462468876575113470684605390457149211938247136098747983175554901825411240449101617326508299366701540015027745531933698344652798864646104425311377089774924511915120564270115710563377504023380049077350774187673402967629206774709301264609396501528266338694664208231568034262056492003206902044140559195364752772052613566445829679684035624209538535116194089803134364458217149510648724457610714934648298467166526743821857044967461537721975020355365190238009856184353854788946099968573547842307669664223348574708012981403620150038446992503440665293318157202094494633579750139459082934277897398845759063237057571086676639741763462741879470643154642788665867462487884581081026926193977353497194149448406043856978535846222358327112682994790803532126435975875803454419270698703735445769329556700678803964625251456166904254672085911546652509939710870535968728516891537076834416642499370177047000930000100984829830086011319525812239091355241924194267218208064613108170829151700892201373239817053043974531716902864568672201291930140843404109471099674479349101279731009397016671915127523478788884256801315596098272202453614816661269036614558614654429129783263959471147791083536129224532517711239481472076688031681557738489401475102441032734609276241241989772020296344245214616321675668440412938597110642376952748720941941439867788106751618662805594295146507246692003968515546982424801666392873172252626810056878285410431731726346998588543723468096077286289578518943694991852177339244935086499969551067647956361188052584566958007152585815553432821737206565323932154852875100724354804595755842001274335558074829827782062396660428045663820583424299042877706751738261272112928414699122872330571733211542538449950298095639117539236612770517236982251679607725414058100346983676964200228815769912428713010589814607228218440480716240465684925484370968507756456322324049651812485946542995560757930306481948055900371248239543474962140250160744263781463556857944063393629571904432191397539353538634307872736262286867331316579929783523553543576594096445044829372125904167466875549803070525851704560320643113831005969461504825982690244627287093651057651255379800460929233393232615242795950767310384641145726267163951675297009107776367564663383745996361871925758648341348894893452281543917550713775773098327548442014820395524447551308668963926429401248290574258221713577789155651009425766939938730714546041402549697211813320380837174788818053126143738923001161800855946377288539460057331296487087926555095352522956018851827569512203600279080197252374958707041809134152607566328592992233716146285773221339126368557557113144539664495794609975979697648041559941045600353258241461681989469379349983170594628116564855194029577728354458689128226970953202308776290795518493706362450294573915786924082667126319540616454508609025035143355760059692861878152176897212609300268018436014549761966073180136531030296265552322531994492134717147867639697628689551271913775991220741906978086783436936350403445603006421301854811560061201090839305603963768813132536725771974009092886497940985793429321729805548190363704186026623072921031204027302166858663613184527400500893350300704047582407701293310758339354823871692489506267882905745047429684260583272828991214403194194518074453268198130171890774707003539064507530016338783248074164725959858799520004688030905787458811039198926136714467149815587163338730172798250569543135391838698704976391894149694282249114607880748143462944111782049584180712953661594669911153313338674396466377302744183149508346911886302787827170154194909252450212237297765691297621773460121166041088576354471028532240746380422362290175115910030728168335722223089662884250002224426796043817215427849035464258076701982387045382771809469839264124406172323866308517799517253149169655169472760852509364115533547291603856845286636789976330825417144471871940450705258224604672306257448992533519371858511478791151264506388413945443241021684893428153689129301003462910211809294536545810366820363388266145276785890622664965766020804635262616742444789900437026610515025577123192167348577981184936939133321644256505497938305074546588423877814035314354994648751959800207720690729124442070560111832521459762824839626491859732450317099560243563339180891289110651636860820317651869901826558248598578954551204243339076227656850124173749483529499341544019989813661612023243208615188506295310815720529078276183574551761639777262392224202270323187300293639629221641942322341736592303770840514375881564568140128061592156466438470377269710245993416671071332257772295811959154209720945744598381831038106379919490566987721980127152554067101120831648305393753190342106970678988725860339600987783134441139067901800961613922211187728022761755368895578494773089368442011984263987651979270712598509356956737038693808852414420346911704731681939778823730805339355452347448781469494215152758659465582419684167380432694008454906278476019223181178176270650664566575070301289514762884578762230975605381632958447533497739038189383261088564957206015083044782938315068513635214224050059550134343901049032799148698353378593889423120208234354544262095905241384255984447907028345531615581170541446900691900929815768229572622291697525497937082758922435841854823112123048998371982186203788396009665329088007334114647663230079759259060489313272049380411597787972130365959210974390852234990937629382885331427759677728685075510594862109207338745977982171496244293571556864260279203514616952263298665927236143990921839112708077229665245927634646462050815598084764678460403905770607988495251300425223737568466873693159533039779766547926563307897968943718824471827886888203805805698634570164885704640489106936820536259450874237837353040339181487011395109911959862643095748924312274232680279264399103463767689524672492968421958638070510962509193411023708894762292733126844470538216085498990890819805714113670386855525763209847870115382366828895291490092519928303821483549696839333201933494899742525425483932426211864613855958557128403943687462445077163913595079965203311992537655221543790729412477311764399949815374712992275410831498497329275741531936669394315146710465565698917126362532123877538063360286142765429782896911954678726856049565958696122347073922809102970214229092551765324302735540927900933598332721796275104684404802098237590749159822468631142519033381784472604115376224601756250016886190015743659557272160278058751992015798598256046494368701930521999907834110506115490164967740847600811596544872283908232955024561959995602568109481019805465034672554002762335085703912461890342906810533829917331554604302105607876155674890414511698710248916965826404670540922081632349614453185572046798387185386533657089890475547087605644213039323477729568120754867126872552522786770880240999005974680557626761481265740863085649499379215494733679136525322885601705167097313640117395581235477225512394812362388298224291612413924109958777466169034748702505664839228703625598145293397305868329391678505160922904107610140091987305829380263427724650297021410882817640115050238841111506613748501232344536305468059887190903068243973765763159539586023265038185138324982357569011468032757260825271545924659612560814339631508560661399228659670271217563839330444205456968315814612706206380256141087494046517637683734478277047046112437798031535333569146698729214217990219107637365424882834096866127161351174734014185614689474679994866775684697494848414958744702900135840635720068153009297433739633760355450329201034994769578839361162093304902818099318498251062245611614956916863186161667355601366595814661441822931605597493688385852463332584558518286519878032139946518768495306437904378306905689203950938340241255153740922635324879780947442255467124232897766778621310684497601315136552209547125816412462789256057117966567366871896871753628166583301049763678591946728265156306579812127037608853388529450449587387410711708649426161254097119403733740904543959156078776050807563042237044323973150378733746670197431052304446625299816525501473368411786390404593834266801941307908090242979154046728955863096729720890542693129684293168657432680718237712384431074015428195545605328851588455659376733703705967061641508793861918230798887158996705705098347204687762846061770594111155936282737130825231071378725858616362460790796523757042624942773455356726293133912798300156736080892449055679215963594901072424191714740049009486240308750613454127708597845562689215274344354492484155781009039752559932434364732291776131349388262050706283415583566297521102892302065302373226191857851827230650346131439012663427141304708671598678322686650180525590064964549663219540035017463759972292023883765058824510968539714977479359086775919227125414222868956945638740727258970478407344105382755380213073797223669270171193580921379895661255576457065391026901885227737188680136183647242082554819062252168852825807460884344824846835650121214795431562553078016092828309698942249406777831342620486437321125205572213218798035816981589152850148659809887558046177747094801388280847447142622475555496139911349818166828225509548249741832372892655483059972379663947396743563963943093514674440175344432536030533372099580139507038941367364317429882093829789463312337854836089746698422390463435248936083354973036709751349912836850578859862990571531121916003484840158554498293903812400752127195643369024412644569896846138103031388080618279766553702962523692153228705860836171318820812047964627230654533286291312609143185366637951132468438717061111571560325462427318163177643351935901583204977428522003396057534594963595773006279010318933752588752365889870692464511114905008176908663052385447477992570262855778505526760827117552144909959659688935710183709819739490518274251713207477833664990363737694388646599525458045284710425470410027596464217151190473168230712725977558298582381621249376661990183936416071972664522979304077267816620169750857489170773821773419875104134145440071630671857697141683670476493276351384662543929239353149036248723636693976212215877375843639771754886452001892728260400148476480319369554355130964774892140446318412272501148239114033186791446707505282313591586408386163719578516251839663737483036390778716761817618490428719964222724026863357923182944928955702498238736913981725342646513597077840025600444470777948152078477931513414574399845608391394300967788714604309125246403186740570288712357777661245171160344189437444474803596318805949009841235418539134954974344557081289273404768522432881578080320867105713655692977550398391337301014708076738353528977464350658514158798208138429599061396453114450918340336136313142919670927545051415055388673384474117163139979802364110802060222850026686360218415763562793612109624290860230954573079310710314966108619072354334318427185279892036689826063987330550820393139260149341814551429594985602157680465051867588358237143497380491960910282229665626831920163287945785084061091298223738312095413716452166778490798340228709440245375537699582524284299782545180983914147536787158960267169312467690867996658050086605568060810214093421106954315208951917704142602890199674321371681969251311481977873158917899227438497733369823981151759235511491209058139277817960289382046419635938018949846366407893100772015068758311818154237872742665203359896447306852713757296965627684969493926100120355363159827918968186978554383958499361460941773640528276925658059198719190157879081144347314422065678341125719338741209637977855324924693691834839372526158378671481727633483263229952846450552684808566034536705440698749575473755205468280974079955465188318934930088001444567223672321201413056979930557069461800059701899835209538419942445472812321888530566510393651181553221382558153903636630838181730592913011434076459881827923317134775998126511038442330085699068002926179521623709638357701176449527093003698425378535240906650902256694632796273906107579017128910400203839423625632451146995527490361839170449914402419071045156468700736659910307177764459285101178309560025158177895781671600031814283943441361712436045118953708939806547811082333738866714785724009157415238107143993328288135171514274474427400925298740926468350800162214501317653720557594158526185704688152328509072641102409292494373645906002618290393111208734084663469447220991905569178585179077344538950871064357295115077682020033030882369804746071230363617384226837572410536651061867683122470439275373898786515271658580163286760752277623379655802465123624236204686186665570193342560692147462311074916344898675241081392179168960390341444358883852378798911447826786728372864766633422154394652529037421514811830960282101822649511283025967225401434957997121743900498461561854097651440884057661801825401167454702432410302549157340582493781384845887029664557965393532573838727591506238453641858176381377747471995135633205669231242139152487425699809253917357674782124878207641522355847635659534020067716719571507131142481101217934464475564788379506052796488817692749672552901136625008723328564010541063680377642170293209076771997731780943398671385749061873998932930714552863178656406800514642352782007157265363914575719336413759699240738163966195419731683255664173395952627764972802971663125941794742953732212092014424223654148218559647511542074919086377862147700861098244765193159148699114871343058099483116889000218655486186562028119293308003549402883253626028877096257948493403805393841046394528105171864575446093900926843028007275056593735258357252513091779065223838982004428743763974389526547302569219790830553472525602988841710937920355333248549834929921133996634195301114271845028054593931024655521741546878464710965409376970638833598008396383695933482436607313657603639643390587499723559835940072264767958666019642298506817430288049604141931752847715416526905107556006543630548538753801678617839459690485108378235768617557518529572718234120138351852577998518905030753854567990742242206924548279449953356333518693857070097040883599244652419120137129093957127848608090437991728185161222269860896716861044217555759163117674569042794568561130228810189770044209350306769894679672721203509099338217818231713849411828877525415752253349420713154413546999369898006214037881003671040314188796395681698259519777515136887398172705710335898424295648803738184304416944961880944158943741944473622963058996718200874723333965333847127236329511423713916941406331276097932412472675602266465424211193488898848339540500028571826294868891878239563510047501087640984710325352749023772114751662696527551186866353845252899479518366617829090851088395030401645155230249229821357161239760178253286004436482164801679401701639269372780917503631392063571908400010619391125291525511025775088150269869816351588020201184930214041637689867672658476872230821501842805594550453344760557206475295165404080050092730592666521197904505253975732476626475995333816370518115455710129556567108866068077760011494066539196583702651398014799121269210189550429993138555148159667608081088017235377613005137253468745834871615930510960005017951342344387240546970072074504871495876546206703097459613415861171708358936336493345915044832619469140456115550616720716262690336652590765176552183220144657179881349223899987861314297018908500935244611829375475690402355091075634800359677279871887977390014483528779811827742564488884595258601998063242433086800700960937624848295544676623880837171273504865818556066434976983132049253500052295650606270645188897081134278300048967033153534423206051160632931356020390134640421358092199648241675050117127941276602803366322380623013084154920689769412986996729164080138724833628006897000575249415814164591172313365890941336072503304468330487545807315727149039414330336500047439137555063443506501069578854993259379138161709411534555996006160339291777924383002526459988160346323235171206788616185335365176081862154101064116938008627264975014915566788671302811737603886471236307594204080275775005316731217147174084515485780506653737986655871751647716238321942168780177387237311164661251971606647572805976534679615557513485776420170985529636509983269417816082528139362474492068467123854475512875974019850161275360513956261736975431083586466819788503227172145573777285607956471829920473056293635256776147903746587551799309188590926099494122065993833051446454370673648078684670159658049671801879403952485295599719484122757402789770818908461222733248011922460156310636109794751338813577946819799569065761048017329460674927144071409965301312602012733458774444193997338683601996384211432084520158499875672896039921473959132054131324083758400791505170117976140935760946509367029645946277759233912028504494823313078973145840941029772238976917379313115991715472142200433358704575006404655600617079989457226399843532745933395437374484626592587105595410665853920468062657321098283202931842682977205308791896309152092941579065096906125055140801142008569837174332410109433451101289638913229106227872651442969407019311866991478368428493597337363350554175400573957513702646123788381550432810137416019906158112384233157846574509370167244131401749998255803002812802339157976954292941407962382691711095911277229175891646347750252619134554611264681067979458612165309762866839122301092310009873262123130848338863365524958277698297850855176282159298642938257011232615741357163765427612074655007495074285078846203604825179229274795071278173665497213250474602787041924628495372173250028623921360491015452409223932517797414172480430846460089941865416823527372884847654937649335276666298302417583807093456118742423600191830715349654064887072002994387519972535847539390531848848709967396768622365607794479035928341905454044975294037367005737508345065764239966990688746069308539831614726278464332541019415875447230903859326823076100630801917110061529558561835644899338843110533857378873019156462813018118252052209188241888944097280222012868634838578896398546788925597852898438843257889998883518311328548502290791709823340513916662258347488955246908304967007758272111444455620744281061788253118221125725929850334680437670930470611927885914708880881487597296627127462196043116125319322773668198953160078363482230008703415044817618552507475867214409048395750009986517358243800653888808128136086623173961787515842635691560092423893406860769673512497185488409753117772730522707376098273760990220292266419920537277226465870952605571421760841461720526477926659026286090778395387184880376694449332630648896144993487243909515108420858123059418988745919782711487804638406886354791121074050091339861520930491347765931020062622702822176359199010466065257893795246371960885253186876574101418840947773501103052405263374962523434770784836945922905955028506705079024041137812587435918565740471066804784863578196434490696899584178739404358017042528689743974870423649201197411240606542251940920773550385071111672757354124283222688949686225713786353517011824945289308898040358912070047829807427229944886465476608694120170717948068455845764325610146872210625136827420498365800681621774399916491597882927356039497406975881906705347254146330224163772309003038325869824336171921288780736081992871438538277663282025894122777153482274978335739464907273002134025278280195040671399053187690359957047351399554238951329399372085092032469572073527181849886550707466039564870222976604861617779295607475242800538513567890743603983980382673321698920638115094949520532200396087745148465511616650480164113743447343943648797848537816981658777496501738783485269895645848924794735115700907337597810274675320146101622460038781841229334334699162219472247913558528561423476697837268771601764875493083740587141122358786033639105045771788237226747904233487647897650099274112444866382166355529218757179514564541490683424193716729335899483046553625214687255523263073506387801703558558682216832594929181797531246813659075152941740644223918481141375224806611582366484298729025828033338632676079412462128735386297060480430280601806638274838173623351852106395598338161031371534839689516738051884921710911463909067223807431402039926125743391575820451434973987450704463380397418427190387153059030790824649203461639836555104438730192654674216554889715826289556240195603465102884658124383543645161977273338997121279577969122397884040171621956660583220110441989942089690581833926418992324755721737463055388350050647398375955762690231152050074668977429504255525723864114807595900985218536364270954596569096672349201651626620264397730206553143585475658365024096662552315459071961919379471456732445056482974354169398356946476435563746780461483980974075157594511106752194064187124505507301697623337784573817446368336950867385361779397482800933771347875082066370455593014958948448132587122348365798936299667319135560072437597312257899026689105068983906144080984649295698097786629207716026374563672682893750785670786367661269589994753954941489881101079679744436077166415050415321340038574532204771142204655905504231600042833342269321404761023894980803400483402465886491373999371968917981274881263334034371353376968547737016266710359842126733980811328440361054629297529599895046175890295039352196159696296197306967693807365655599760106586633192342895876710302700733623655871950497482966993846014554925423450807643488111833826400742435791757625671240679613029950608639177593904889660804143239229360005490308193248564843141973373052084162112264363548505053600371529643992669298600233257052397151303060956688544585955879832891999577754505724360842926754570717357922756533722164900306702096856135016109841113718008156204994379452157789053468620683890279173909814070285581779783181062397898669102679100867532924576792535966200846402537840957087726909536708758690433728143716302737943190738827650600234132989072855609733489918045169788251528985787275750227955594162507972232374445015697167577640658793889467210167268670966840817701141474579406078867449356962951457329621693634018087170193419671109743236030187499323280677184895934725452611777643173933759076447249161847686540587195832366408996700480564392944030631965989112658489862385396277083797687373705983192569709555245704268805176423654726915676666580906708679269725051677803375607864031925285066748985097901736312598763217586271285164669025908835421565590910045831934555847184961251068272213597250336324932088021231282134504052185230868604498354197187418445448809556457674788609176334449838135977317683887032203842004863630055379281834886304719033133048201333162016518934768339123066167570665188478973419813925626227255372570914774730075248813487209428506738473986095079756836123969747593643877851508857909767356255539028693576015928723080483265068962269448868916341822303846592281235499886370381116082693694449206062045106528807316871429000926066106611861937170317396557372197276458145851544131797230532985461619966543426375413248050081084128678061663959985112752214785822195490962354483286469356887365154994070895071315817514098002179676103734941095171211456466424196502561839225416850015141030723045724112893743602581958791058984573060749881085810634204084441793701564072289377916207845682391425882163240404860443060246638209468097468202300079161275219050225370166801399086311691474641345266237960714737243354604635608768527229494696627117449646813432572324925863917480057735193291060626134252957215461850276658041200503265484079358939793876211727529619804162210885917717722032705683518590560173969563747371089566718049610739355691149136798864865300081676995223284901996379390270990643389209785371168839652120486359215306223022761053946507763448446874212182772686173452298155043145179216931371065976715159448143306324412311260588457543706876062589408298788346466588421099849029231209569780701722101424857746143814508724325531925753480139818259755277905687220583170186894695669475323142204543646180820873960793426527156279464368207874759013051440098119732060580345983314411303104770238964721456513373671491319137329034878283404085069885900121584663299763599318306689681653905352630155751731594230147672580813121495670989427789854615368375914435237375395390889347811935812971489057169684536215879590071679807949746051449973276607008255049359646561897438249572366835725653178366909019776591362515583614322471287011256092068251711666318854499860717703360716563520696817346406270391924990253385789154269069187509363052385397755641764181464543177787938683447441961447669456429648071027939195033192562236979204562411988595710889082960411737238706001265995106979912966807282356056828838342987162198113982636841777815715379369292447802547860104897213339638494354977642195654356811753342248230863137691703954921422869244747493869366551091374651269914480441628055937536855434644118685792961448227456836187772387756689362234803566516602154566301063891714227601214650162130837722345615985323106658350532759269984762705819004254954180881568602579232876278782257522643343496718419979526106909257163109761537853672127230843802796199559671494952756260176039698491712314046339521897136016334866331732943984362516290963119811872916959350891949075144376312160709216626392344959381366525067968584375563537020301623375780697992497000902840422283728988490809615581208992338458405686126339458799550064862420586985309018560426151631000020913199625167053007084714143131238339210249517241410648625354187114500879668929350273867237070873551945757529688003254893254309148994652816310334493200946465141367565255748726546624175135041670071969446733614307350793055992815976662494023553030786175670951957375383925654861044748294367753040901325638961518937902365873260433966045842970302723452590240024597976551639897765533243048721720941470868505357834987316918267723571801529548597747997081650084312928188970461917023873866366888252547090869857490065524408297540180393094382628434091095802368410939497291293524818059199126537141166584540790644567351366777970741813057365051245380206351735069369656770696231394091493534331075546114414812726636628070829761017939789276494910884221336429869203772527414982983964457401322007694546207886842688338848553414242978410909788084081108210067112459568758877049505357519247922607045665363740278453534490496382719262641073651582605115749438137552399691926603218027075426560174110763699043830286200385504552006905452985369152300384738810244795705336003206130440344570795718321780241802377353982884480601831481088939562612601132223271193031923544776898780808080441532779309615844993906806610993672621961896965600731992262636406813854190462974564034425411841574915018689198598072256223619310434434428232735169883236860636028722802322887581374506958180581027626744788637601164816072026995904474780344896499407120087077868939261529143124507261970113009374807261788477814927665257825155205556361426248113858002730216645496606494651315462858310980792335051858544625552109822789751496642370716314542429063566524057791188464064453455962882203073614510901071016796009337469052468958210338785693354273364247973566152501307991574053042598792422956071288439942883809381680480692590796902993828574135869114109510709244440297343560704618482418845005781427056722505611353705692599498212158401300848427211098426319634241920996656612805533737688717068680835133966750237677689274518294171947238415318021826132122499291616964624152421495089245612622102324593349861159614004484150619936159891762713449582094498214218010250119462559960421142486207272163807883112488496707750632794794050867923580012713025797986446011998040728466028529132317022066603819792545182539439227361233987528268161174567043293418587413947503735058759208858248192869614370577565529005956019998895804407488788014674385678090957181493798222333934306903430416588836707384001911656606477705675001244949043691283381548152171471979847042819866340809840978089641848698572473524415850080323958427996474981595334326006426354180786036366723784693359753635453990438881575986969650562500775375638581436700354986654210213551437379258540296167481570434346250471318200810667278621817354138984007419293033901860584470234680373233837274124055502130615219661629804186795637551400546613471296914935218236475743144768551481002077097002007372475355539662731521293572411826559945735501397892243693064186753481355800773767055542458637391078532608755213613121805924216657330021959629892497500197691429130851126876773318116657767585480302897403096257203906128129672747947427018915464541149284786984700109554866264402726925829392639869411825983082674987138165086604228917684561023577460295247097030050815529986078001729440649377573215589039393542961852397853933385041813600656053677676159724066413012763040658845771066355752589270738632818428183179028388089790566749876900593817524911994283714631103320683869813294702578035925665430932912863367997740828477585063136152823954412002124533381096958833257216426548238709410914442742157636712290298837053948967748408258502468809386452377720353155379925105816086308335542459115552780983679015794423217006096148292149894308975665002295280722192772309108265340889802139783799107037329421657842874644905983228338244674830506125140208993410678134248181193074173975909307075123375869614620174855631640273104048584495150403756982315139000861881084464470227648426116916294562116744367659715220622507478592071205932595880658120676432165895482182529058237577388385557065703289836492394514498970840901623306738145226713627782805596345801370899227935007737441224078505954954702515223457720862185576355540029770130885849313027431237435099380132184837503435811791641196344431478355671361110506165926454108960059913941873716363047170150972904565511958771248817308976993546835904891812016745795592601953940575475568622492202063597778623651599882128901027573910086154237712645742089781862389255461334593510330788593429423384047169776835214558157131256972973802077562931494752458037751850234097045225067212018741456980572189776929211622688382219925365342922423082447236946038387216293618307434165184835296282218855133863426721911806595655769411310895303231906387942512841508822588457886450067739099735226208373806168418365945055930573747036032261125886141426700196389431205028810814178102283390232137269459804822822777161416874595568676490605628293641058556852753660322190888081207122738837057494999357047422138619305508245625444940364090459591371349853240233171920027830577411570950344093311328564934484901377645821522641568988561215186144095147080905007924503087407184642712292726867364697335312812096192946890995811537989526919120751992179018432640204327687047803606546745680562750766496919235875767596046711308395998729077615902029102542687202473894731386326303883474852100562674723730795549197189364512974606220872783110619215902060085437663479448125015267675160721826766234610686375349639513863990588990110615532995086288360274116843388938477815682105584065876850384650016840333194367302746801750377240001857640278413712879529788604853735319865134111882868059180582302114368903873132097662665170461587134612566258070676617648455467893868979365476445867664759008112443260018310034141833524403470994055625987055789665720918175675068479066690888297533312383881764568572881684394865048337210882629963469258312196064636714286231056959387619411055134810068831292214166167241260179348836046660787081784745124935541358210771875210141391565043367600297713474364701828198331459442133024091833733234235405677902842098117657055042826116277838393925576079157764924531462938945303792400426000304654744629797277781755030869376620034443002385025422244309920170076757603174386082809490861925081789147071401804590574435903335790088377903863944438692460769982861916328464241485370415004884333230816136987162415100729432377138669492995158309935553123464607064024022580923780692825162779638747659560346933945983290285676588083438783924872135248041634502923262515730776127546225939885183025499175508810773690498355760543115056070611683604730260033217263402781319999322633436766316456610931250693963585429301581688087882383081786550457706443118438480360873279096461413077367022910558088673706990350320700576718268190162735249320388788172294009423974468370553621736539509798514819779323994074094618777579760175329483651023713029222354599437744735974518234374244778843416901507941363534210206568966168031772308732267304687449650422628036117434864664057748337887077362327090340292338747228252862662805842686627773971231910380713578197565643083694574524370983445732634882155201964053637887634149150613317241593180174768291555474086665033905043005899117130612049566346649838046263621123182916381381147940147663790174577830946093844617957742315511625605865221380386566994601438542750482095457857196066892129851875751557897924376446713497635714121090273457173826232943985048117995837659294054138482087985536236202587978538078558062051176859292663131542638234184875935819381852189900038080841003840773253804467369472405710980132973616129186619249137751934615020576789055022364701534226195445997099040242503480858529353916937884956143301955620081168786967954514612596393885384599715295390207274619778012216711964764826126631692551531213963132724732572451440418152602109963146771619830583474143467688879315128138181482317780521120461912225385303393599939141847708558818656680670351728563579718371422777697598697425789353753383003795047341832594996293913367150319346470204597725063145402104549819912294099530061474657888181797155834239545216685367667746619627514931074193148850929831385016369595623124164353670301091030055190580858850582258086374197914917838217879905182614145611243809136578900972060858612937968863749980420236856058955301581571309419298758441079319570505006202276226395494386411121001970555056774204858799004214946784359139833631886358930118152258012281095720678096829798031641886666386224933837175863820106705638324702061681621173712180981326077564630865632390338121586000634094055376527857214271119026703697210463868270879091194890011862042295145748776670055419947255917637565301297938072235956413535898687029542468207152893551079348862446614786654983795902362201226612025750474742754535832383024372332986928206028798358563375077989357787939983439043101379713407008864430114914916577353978716802905843929083325083423718680774821495167720464599617299070722601661437205978596606669910750171844706609730860981295062943408702469517269543898517954004655826755187540139656947089921743531485710051377785071799510169285073379919818892074625392127354827746554443917994669534967568509828316179879220013340538087917097334079912416804389685947188255606249618593399318285665330391208997842500072522912172313628565644654693995186991825686903510285454354988383924708309140248651040170792682477220105325221737582170128642380508659734696131821199364505629120980586882528183405880039398418821007641024293532972649155433960134420045262726312379032117697830670686135499600987404938129663845059149800582765987071789417444954342338255952406017493139567408055748220336075771550441050432521338327837116645227571326241450121982027976850317195744579153759572444150134916092800401614951216974218304633567627279951942896447928089579193039788090918058841466383244045507095552252146102076299480436489091735172966411957409843379388038844688877559835741048349257204662884031014358400054206035169397397131106870507501382258543993915216612265554624840607989585482340931793345551225347154094380436582152313477561778519189205183898216088754047790499629811784440758166474819356968591089915488439995842533046726633218337114161532553186159417693348706369326167372659282346143403742583761648775560223182411061297422434713208527809559418858839015347836037818685241812545903459268970569550815070061172840338747662929697317040041142153880217397969124596148617329719732624384878050257818978901259719577388337512294911921246847469824155134308669830307060901448665741196359820660977649477751509488924714428108779711821913430592007623367930037778107829452803451431345748387152410813103102395840691925887138094922876868105867469752413016049143068349716412660114226527898014686370921388949777133488370171576299395906294471941973736062845725474759243693054713827078848879905507318351794528513985681256518789546804379573328688092299906313600989313601069150887010329433847689777176475414575365728417887060620433922422517790200734292778308868662323347592814070233058541773711925052361216819609376221520162745123634619259999456103081621533455350539597098947782301914585510096592697272107578191812109294953225216323134589815091037604199772208255812108871011097198746446180566261309092108732102986749708417011865537740264286346661700030076860039970095569351214350765247414250233330328691465380655444035238686585143808569267603837359413360568995286588005642098622138687868287739288679157265080196523870095971944517839872505386642685858957437996215581839899770593539517550077602896842480428475639477373156357349194257693038179400358169412705589994798378545778201614824693545457519002434609075936355169355563075902635378243569149341787407486605614865845654764976240289068338900542143995898231099207643276262257207416957684588781084237747151971140138038195063103863335279571443915065031132657360076264794697049149323202224260439069152055275284156398440677269491341686716598534534396884640056952482376251248581726078951009830049981656563238016844001077959512777548576181631661047374861380980250700750840734326195607677626151634036782391540958635813459085349271769001253886507220506385140213925757175884524354845179667022353657283296525662555815193542151113834606763459586499563362400706614863408479865465254122169695133990243828520203546654774714292224524857005869968096468130373840691832370102084981502242038504691586419179613280016904740926953309053912016516337957235039104633056949791845103054299371485068540162241917945517285018456460123987273168861390126548088655147034867113926121751671466107842398411334659304342493552782021077778931690353022874515183985710163816537863593161016020647197886122300615272244217001438970808923289206209239938746155476335980598660043995556195885986449154677010630494260547419220532334406690877717696264201961463653065468169778269542258423642888150121237455159475035145346557395129291365467874570993862462324615150871505958195882550088685295671292840437825442098746080949413613375530168009443437448840311233427102359736278116838298107626625641283391434731283262049224075103408186853853696842293098048456339086705277344433183448212351477781579402424783169905036303543537084114378811251293370272782561063868691188309919447070751015989456390194204981525118160119874662588267923211537477194225775812685224600384929172642868599487972740662561954848758842354228183114500635258685963609692959442975122595318738142826977368950452377761012361838472182312732068059832966534925851012656070721189386177859609178252733859450351298417646972744134616958131348777913278572473837531059056643320462969126944283115772413147639764587571966757343796739214819328790073362138408014821006881111835976435246634425221914456023826761402890319735298733726761434209862587270179409984044750293780547031791447650881863330177922194205306178756283001571941505587274647405732337501781807411898284176106708315824348518060724624269195445738408594657418420147351196448015129318675856997053275889396245692002780046680727328684622550828517469871133435884654508191722249608030497700790103335967234808802848040835596607964393098792242429759456580057305371917599975890435836054532164102802431438849128651572884322710065985246800454108351496314587512867275810652084744259356265959418987495420546295874320434292453374114933378796536709331618045356204409732891177626819904682705112793855184627208787516409754071126649678892705143754151564447599520239887687376814029358561230907322658943904359514307557363754770481353418358222676986595242232198780809097204072582952599428254516820463502847608368556116708864749858623536633425400045315489110026152952260029776314000752861272104828257645071828810796888526687868811352920766029851536557993972442749217217824885515949119502608958196275806022785469402984294033027161506150091843821765167525556687747895618464105089761283105195723514414849887666743312161790636818324666936642027844369746979069627144510553592435427877271110485618040249196116147095259976006278723683793102339866691971703313113315255929728961393348409308788214936056686293982975441698073147817652395867752094710385416278584652390335770460329245180700503871691069354169515765850663458240263965656737840333739207789964217931661544478652074897826415339649996014528399166280915700079631913531366356722146696421604912173307990037210626549946905075937067567503899729577891643125008428657312535700750859365942217479892127461870351340504557434884323566786856700569628319093765147042368640352893782485769455142522175916293996179193214395397351062737520187605540572224845969503641659791835366838289023735374861905092213277292576916345190302676475373898965512576302100481932839584819645754600407242766298407198699478569542203175311411446861102441563443599385943344377958647680718237609415559026906123386367030098541635467319777454772957825624946822642379454073720598638338605862936285719420556341698908535706224694432286395219516568061663730129901131107764199670839836649779422141797080642969519138630465964219649448290067311107721924612514218777275380705199342337218851842000522067027350156950566086332543914243101713027126135014383048983935133986867759645862117187577274047720437285183437587282590725164007451792407001354305928504104556789358724147412276264971998764081944527029728735285825254238243025558206354552070929921081400708182377725067385844907114205710003745183102131801949231507594355466000800398822645250237007824424352454995088357488396055212517588767568658387452977436553577857087593227615078072309121520913123016001917475007432073000980228067200267787388680713269375003106377692306945837846063556182389660275617322932370625032842578387161261359078171875632295736302608870674235772523956722115082236075974176966786339757698890292348733075556644741785379972260294926374283951077902433599682611023489982411620632211361629532531236377924259028557745314881139275255716295926868440069034781680903355272547522640771459421503111331425983725851135613950402853827718877405595715836806127039163237700329358415532497755918723292343526114433310872961758715976850163347318170100730687035122039302926008824712911404766904099574207974496952778933471688786733032718563153808252669228803119671648501190759416503181111378206203435838202289928280473396961790463597320153866926578025061056911440227388870679794094889253740756393822112054249844357029536640006144588014790015438088243745234033219004088676113034253898468741314327908706092842256844680471106237653848174349662454056385806914998896177607353830343147151267267794894297641104261565323409437099025868165494914542211641381689698912552161157787310190774415254915214434853753072820228922557215111537730378836426339878449937087522630214118028451352157804152327264394804695580970917063522501926243410332958654700585363513630047822243501847157106265529646681633711380413650714795854828151258575278588203379816196956891253540103155968427217027103999839694388742704720614936305457068866969216400950114493221325386173367285349120433299369513780877731957580995710829284095613728877257614619971709438084698380341123980641751505917477452339640307007490583752184041979754174264338938743339612175915721769087190738554876182676565875809347912497831686225260635820647674791778370480010676044544635536447953810446844449564476752563585913026396699583702221038210584183261189216381339558828583796945951689236043275318241114784677425519876294896428526301283411578787707209604718791210069672506183700514025155805740315722955079400011727459971368225547451793200584478455421828436746238914209360907633398670932166852459090363054985515204821268863679761229595519103212244359553792870687078174147779709438022776911935605751710162620514842990322968146426450562269858718684919063009941950193582081003366569734554478007897798344633614368421496694626328953574245922559435303559396691158484436052832712222982010725111311700653726713420498543741989721388797661775673300930757160176603017009887384561992891484095082848908820675094552534886221308643463104218148999828512991600819608695988289603873108167584329540127232492465803922385546874746701864139531301610650153745686562764547784730360961768415093123586847471667232351105516574187868120599804873388889533224613539664539933081850701670824346049335998314657102058453759085102154588695198249646607088169926263504877276113767099069257607315537115038523771459052112371872433472771203248196134099700241841877223469331515956656183231101792459420970717774554217243422854820787636196307838577858957994524992247723923776816370340496006600554454569187191683844665797149763999737521650664440002767156365412627797367061813365304984145113700791837126600731028390412958335364759173702083006628538105212612223097266472656533948885488340704097845680416665455184940885342413251682354766523863348399971093634918595788527927226386253287377693089585267831990791757523282359787241847323820778594335173682592724965925988988564380791795861402386774773702452618226838946383101504082758025487845235679822224713346365799924936065928793314550085928434697080587242091773574565482309778884291316141861418740361856646362830219280763814824774614736150250028632862499074989148900904703133499347943208860613004155650621950099601036599294266178975846510929606662871475268465462435416934521239439066607833705823013496434228672754688473898775531678266141526803422500400826446894450927828515354213952737917826153288460725371807572157475115449049677279275123261474474231380732449989002849687306986612791950508927442591697818205089839324304580421058363562452403017799337448824877240560328676017417087424840549679480454157617559369491311912219859465360551255305465659695587007556550248846821864436677311840997344996765859957485876803007817411380548433160513012022247642391754691726385603005053971598828020953794787316720989313526906877356245080973672354361454009382347389441149601850245644165405324719003967928935919712459297023035967678532064583823292362266753424974231473523967124071907809432592192565854647693555888187815815757879192548348757742137340138445464145682985840041357395241215712421183443753178597814095743058282402758204011850739052953787595798289310596322006444665373013950571094204899438351639696116799324506474226628133908272415370263101011720120529105644005704518657996302804328785995201827645907409494354845353158838843836333311427766209492392024009896435849285832281839816535214293479138400644867173000554213284598206438287812378999302730034947293821354510833628546439359513069466598188018832737631984225873880010439660888007121148042936765335405486950307481387768532658528502368882851238747193944471743827679086093423623458663327401154720160540281986270809989543471230975446103062454003835873609111645283850298549012935759426469200925131754810108703070124076953044352449220798825288439112115254413570433764181526471459545466399616776114368895476807490701656447111645907570289856335133908415257657365097128800212027238170706050898051650675830891515885013737100456023545366285955031766015070798655609679367462677336076784982779285322343574340971397890819335996887284811524334968891778551354173825242600963835284705456329872630700007101789286579983875470577731614750555620287485780572219822385280006822068962242927272634332234492106515465520980823012408477791712078399883196786498370075275227048075804205635550046702045505312952547419328984627394853650588257474295630796513040351518792613126992431475872573268480764668001593240804053809214864345513241837814562772460419125770778616447086803295994589492331255766830556621717188698775706223737140054611238936162168362785541299554792834373958452162369101237269845731925386722106731849341140243800304711374040724125803927902930183097370793247796120722613662070403540462889691008417453230450956389491808248501498086651968971499544498170328503272922968113924000542192693365014947390458518952468464405451500204846110274250999718309002850386059602947749406495077972843828406416090439707283602935658269034195918030856872525738352017275727323262632594957137945673198943114902968044473667543872553932413460342909436956906141496504051960399707989039418292979576326858122445063919976499884865166299410607060110339046725366628588391364715886112204799977106377846378661826909273926087678580795449952225541639845603709648998681364800315091825210455725578536686021184711364353023051141883809440770241318874096991912642161855601284041944873694468667692463388474105621886883095675450411845618255070946332621577105251487744204624291977503313177071350808229454156052768151485071281654539378191570792485947538277987754446186739571834578046762311261608914378623511545941077174162748259030399283304664677372926385189426643183142378390298715431100562091724581279568057158729774257785856971235411794472960299669781126817929421621805653968356307871874116833492581060983116903558000478764205727052966644968351633055006352874638571552300326457085504743510291159229357988625242468702240773461540584776591404733650435571426473259024719562229813566739173911650884258279817493051898381755992250544894625121163996141065805682220934019682488862100623079032511780045965948728210625473289860907472108700070921259790580819315490936062948074658914103249708518752188758339843076211290482104036301704529124986757982214318796231016929383652773566299198241057328419026663693118729899784499702385485537650667065610129780575668227354201366274102314655207647766497655207537393722979966554861591372455244351558637802045311455277255956544060935017128250561703572288274035928651894119408380383089954898714690642237312792654948998061409422791624546728410809158632829868876771634636182451104604134394854134297126252646832401877760845481869575192898246119732165868428021279388539241297979395580656709471901297021518170970457532532341313726842497309124274258326273379439629904882986048166068617564252153906008968301852255032187833070180370385300797083740520170762852445932555725311070660242578642488816574174258569151228904607841170736817179370501281826618158099949402559323659978531985147070392790189108932073890385400497415147359889911198161840594460271594454479568353456722392716484697579308976046719601545328975951643342218418204719029944149963411122461014972892401018351411503610910154208041436212416336874421532049954089322006782684499095164474541824220183401395803837265305685889765220010477646508113676392244564965362618893909343494459692745214687810505428925899184633957449129168488827752127487870017391020461329595841683561298510890510255559881473447214048268456376847968553599461638805266145628374322741027490332825166796930923118641241248760970745001123867306649350086702443198689129441832396703944539113185921957639600902169274169497726539219471783400171434148312863730015562279796265945348914648062997508469314090803462825802000228037515198595348225687729448045247212968953332828188035553511146720016972305660375232368418905136213921193433112585358308026563151265963206316887518968364890779067570297885902012116930686762934379573002856395351855389771072142615119076270475499710516855800819021845833051239314131826128069094352596361438470674202097178998728147885800284576223902578606985606317017828225502528124373360572948912545475762299836715700080248787697599015198738509718724113217619839270067503692403334803403432675377614031331599390732938832231622109970430811523739126541242597517195570185417917050290154583662706556967910457815066568529950212123743236253561341843500235198453833204741241404829594992003765459046418371121458981430447306576899411626007456091546719314402154254279431143895754615150093506247498800624113992352307411768495553052296205054813111103576543527456472262664052074497775096786633009892835711017228560160654411478117876010268225475598568796080600805499174583267356500259520878912967837428172135851307021947432897140624857283980226754371492848385562287714012205859858686817088354254197050680939089443839554951837135701837656507818220438136686507782582459139347132637449433249029075702876203585724400166309746631530466608647954249168371401113733321957838055744806878731065975980703805271456856437887218914822162105724184519228781455623882303138022087482880150225368033793757391819758122119197003926807749885403524386352559322569310320174055866304384008869701620912651258425505071801372751788245098826696614038890812754722834917855733709202875465784595276736895468977942863085768943160474070296600509853720703326855582886335239550084297857385185453426632956220505003433221850449527575979639090126264100570004396439269434077816008836971236691703567353850766314703417219297134718415382386224471557731143351290115776346162605405053607533627468967569025072039815764091168578064499529127032894689334983143622445795309172097758716510176613287168154868752749265554403018657915560752196539186107799980479921629998141044909428284890440107941143066284812914342727470188835408174248687282379702608236631306156064523850713256954992458308566916637554404259875635725818952947189908771315482351689115602741770006502111602049847744318684055294468306640207322384647544368467493680925208373602897671406829621209080435496089012242773660006540819894452137596203611332347188467109115796515187679665036062625069984437243527979698083138536317519564712167408703571649733705141844962103035103679998492848113252327198804154923622249304821572156407971726544444635137126357386965230852874118396741790581553819740994042894954628127410194679035837739991114593991708218805421663767008770274833779942088230044744954682955455050536878200743617857288755696505124087864917127454006842892300174055548441495616013736249531200850737645896216584513740248294742110360878882842188642599394036955757525968667135634933577064225276339500125673878431531578841566348303672239529455827202806444705979924253188289703114116812669261337045055399520032776196565446685108563470268913289359599746526294757808713017453209274564213349545721740512903178683504592521924893259946822979998516230230269333374221438903777755508053809459092649588747440519083009263369887121478657061719453960498006329283516119895988075466913977924995813289438765575633689123753287294638176372534747004261643058342316759551483641828970425667503396914383676243449187832832497048585328460983071314045458735881254666081240473531573624354864141772138385084533292158872899738377447210121225807123989102518095667990497501084121213898128932009451552618338188084443314005435894385730722974567002933227358703443422032158863867128545540313108221627686320492666065183135296952486424869762957570629101918391549831792657972925259064872399497101387793790783532309798979441122937847212739547062850569916065118424780414993103732783964216521711798526135665068639628299796041312223969613253983101792568460638653405606182934363176496368161953061964991470470843492679888003329202442806836968333389340044969448117604793984775039375608946883528093308945360033787749584359926436389565669497204855839149491022593591063706950013814560807956220353076936642332862918114477097397079961904486394630277003385205350284188222080393098628270591665748573528759136649625837741835903182312027558277107288114273337302823453987480563942357673966372486200718204083876788891515193508991808884088732167185211897824094045842466758754842593872187301666172325515182641391376298919966162764939598411422086826823667707316322462805982400004407832059555437718815607182367883151848447864322939701861330970184460916140642454705769739270226731185580333915466851465994319134016990685581493271820686358816107015895316404142997672370741132750606732340730134865703320518464548306395512590079198023680598894935889131269099345219876681904074224578358561090677403581905872020523871734073205729650317908558634927668492208404843946387484619193683466641297550674797704001482206299771521864060455930988779523407508357301920389054803435534703949748815334863400895987707204546727671022374765910530392284170127138960602866335799004372878301888158362196377230088844522314889813046164250310860974768836930801883037059962192991271532277117296376645578043277743015242652197137914468662741852355539977465538704150657673046087782395314424840026185703429738544201207149155190436728430147838898234321628990911459630109158074404484475270431955023829449591692990996175890118977695180243309496855245633471871342433837626677231346274980054875655735630777319659329211131278400660920722296832130693249078516532441851288903202150602974000749057225720007274768092117660637562360847931071113761919669549765116504565570978926576208722765541756255805503433900292224524858555689380513065778476724344511781360709831419460987397681886039503854557869582099237030518396251960542224778495771451059357853894571494597553958514471061200038431699630523114277955722422381783276601695711939491930439939497433109124121362816386204369340063750547412697743766264378726478566456440515182863983704479484224140266677936235227438637386093001715886115090616899190499926279569789236446249803472038133627342656182136668011601759759584916241022840567744420387025014673408596510147941360374154360931602135853292053893371422267284865961474797449158202682526401940301308032954944500746977765804810168404757497690252439662338247130889266701477071015104432558268262262960841708381373945136996683569643840919889939569242701145903219888417932059794338813971458225713378047856179578250452886043954790247663448227083195135321566873938576015112436823457703722183342525665909835464632308555123886655710919426678824760686191397722050364293348018925199686817442097798681521321760958622921061505149883597050636937992554365952007449826152538095222698493838917700518078961757900559343160612677417509607621072980808690105424201544551302075426686503220745999627844575552957779284969023722021370209597913229940521534061959911585089412887931779453482379868483527121876603353282637528720151963560255154571646034483876465366499190375998447721590513299427584434334468772339764758411892575309383372208596121373637248536986035187771444086665875282978764423778314125031427987867458704276700630877812691258231669153022877253540053398551277970515824889381131347002876173840997257277183913623220702858269557268883881604512561205764489223790900074686135115950379779914250162110284630566852477456950312562300503131129214145946632080432402099504650401645226513632884231350375424882718159726134040811406101881369890002621847687167821864002331719353331487702775432675099734764969465679715415734534478616068626847403056869698931424109219085453752445556136571894609492439535192322531909002498183494017135768195015231530103423161241402375753227962313290318334653043032135687010591218703881910180890993264351834087691631752146046769530497556385140455562798993563691922944153091478608988777323799024679892845721409720570435045931187460281467200180036923884268355880057499416183653043302874252094606352548421560445824180161166247475452910550868935254751410191848693897152925609380679058580521985445820334333966412979133786865961808748739195139567010080446106863052108225328750172311434629302330686831217229722549896282075972896338241347218514230071376384865013348368442113649055398650637455218670675623906609183174748424517199641591514234908450165391701399148028626348182355519443079182831781215562423742471726639005580897433652358383080827648148512698452899881326787467333205793713290350932878525640879224455186909285293786626181494349252169176208151252811105207038768659579801482073331093829031730393273557331848163952309266568534279107963912872546603707469682067196529244434465055307197180421076318850339698580915748751730097200976933571141739648063711235939499449278659954783025694233595232628044337058354647352716702635766438357150053902388173400762500042563408506036298336855818397131444045463668423365230743350163559254096097060154827718740184687512092731263091173092461677288923514221051376364561246276164407015296046100571308041397400801225645025051970587971292769896307147277563196505213812316816878386681230792145999313059149645635213407903537314338875525836178735205707647400264766079255286750160184496559704013769445478127718920414815267885322487241736397435036534530325471063854077434127344760248548452037195801728143473319772776230618575357653527718690000709174820417056435686136670470111082576337758138393439088723952802535094540480112988019351254806461139403643600830190004170316860032111219545388842495785938872083741682207407039568037130228402562924028998974120644100057925893202722935271295419408722598552540305605894427606389361074688618228500904675779570522822617477959609386154152394116198712709230288439465193353276909037421888917095207308664477397274176127765547844962146114154404565162418550363401007690223562470786681164372700570062826306918724117974939558967573373383573953824962359517285581175276085045149100710103028153354173658946890978474758064881714303362207521962164228856483109571619198154047173493239039899552410905161310498730918899034371501102070472073604073564752774879508037826770839188845789554270512841276496077753076044601086953082655392015261277524956760102803178742004513333320667215961494236978302303579335562295636966577211420741085702759947308129044452311855708525617256491763969948064711556666801707692491230495454682370607478312779988502031342858022396253522896538751017577505561608527520497651691276247335387259659749826406377301244480997398915355926214108567871320086646156579223296369028640680323888079543926654028426494312072447671793268289195918158305647588749708397132122639556290590839880439495282701868367601575668837225414046330144745025651634688742731961819803892984187403569872475002304150220877254153543355611923526393690749080749795277112412590762821117266127816840558432821738924964433541395372237889313088835589877957174499651687590555588607825258109688913520509535284946850477884600068913542868661925957487653975195917422572939643979835989082233605335256808744782028183342821084929439605150015849647175834544719104086578498593738325596900183264254939234187326465939522414498978022142854898105742538964607256723422161880216480765375682017700621753999348162037617916148685384026141933854059322132442141289449243515704111442177183265616263066670185221047675399638932134631401959384630055426627346935208923915513403845976674011271858580289881725133859870605184216133723296619501358441919682897494026807953083100294600406537959009089057981769579856794110996869955521175875137067013257544291885404363079605297859160037368041160301463642161280971872102075594052220260212580438223959388728801905887844498159210498643676594193975585056198737855238447433959306285976963300454172208239713474094174065652916819894948979718291105627166046662450227556247174467147016300218047426464726249357683938362925694722281315503299940972732177051368697692833206180929754732008961885535614437589869837543490187740068406673222734103087794864508273675147756538669070144745932122653686288164930929781275532546547449469717876504900121360041699368063422428715996083874351443077377143399863372305711146314253030657941738115053550234151334595198262082594005323485969325532077489252906625442610134562320847425927929638219437056200836176637198615024662378994382181322413829392334678971999089820649375693040670703930153513025369985126298255695794864624205237752037557605847964562611022685141880978221051633077840606584137511810128894860469412792225226421024605322565202330451643883990891876641863090112364345332975263324269301499501916556737671428729008202354920453353016275794355342055122579049828955754099923371817640533415309016794480154226913393495252984610811243284758842684194514750616891863856903962990370500601116332200536522660001265450606202395009605525312087218874557599878787904063377783588964147500057750496646139786334593695747898638760475909199552820641676655119811945657225316149666572027020546604634265193388243047497362874369485236494219535770328880695993401356160402076468037798787202538512502455683048953210913836588846326967176638317490547464911099732744726792500178697943751824806156324163841458357599586450199975866447844030590242093891740346071572882293804766678524985179471364887629360299018516214491320541817977533581396232928598331934179027411484100261252650524631667768604596589816958131954700701141866762643570072050503431988355878775814203133695745644042546924968417888766579613070647462585522934878366498678097966328421825916941111935620330405479292030465992895217070194931885931466566098158301408206216437252724560617354034874967139507759779853459956758266175481945791685383046235333303354887391145701259115512798135278969845965265745240359228823422428390540520036794853008137975516472453334204767889412410895568640511371032882253518407786266385514237853110051993812797478840104648509621726920876403246402531464074662995105939306643982582487085809179240221808785943079503322548773812638512274361734556998513963617227669253261283003688522664340363653158702240073483796665549830464365856909420060005232494560788273570768984908944406894881921866063295811611434287098696160838626424820786389863276834999369138210759833948913375901292935153592666801002698156050245263648205071756071650606858247912168563928687476748166957101745107022913124474718514750658174243316788044663387480284683291339720127770263155006202815085287437512810378049045715063676852156464570911675915682380720160913790821134272491380418503038079953814026694890733772308446092209438947572963191881830369303338002111608183289835572916188779425762834306053898480165740778037605826948669023817100161881885125825325747003133303104151173660907177271658149062380426268125933916412530151907337981806526976892161090436829921754157248679607684082040923763583954568400908066056200670218294489722584506220485026913914178837944379033372511319074811215952604436989543805778784524950441933801756581015269363119232835956542991656223525213463078055555970248359066956724776308917677368903331985110392558293452871010685576523516655724605221365442380427875986327653370940814325309671422187262017650582349083676925489814461740019127027378123309113343058095473308870024009989314574834316790885249764175136963769965703231110330540149988393039720458203018416196243351074913366539431544372570121976418548145901723903627125186724359358095865268987686214799061018489835113265359302516785788362607212152320271406260381351427591714483043083662124640427185946261052997860970607031366475549854293605041027515827597237761293267421057483228909988890678306100042553983313508756817122154595662921638526649353876462932329906904869331007156244000238218049326456950703803488652032244500688994876239341483667959539067122514649983293054208534417423875192015245930524336301123877363592749025076282488542347265197768048631775106664541834330720115594496841189153137760399662992683180878959992259399729700578140747547057984807766598894153004344254754797131354014578693152635161898289182605287591752258393999366738367011349206451163742767123086285056323821054961926094879619958971851689186610192351597937398945517490196713326686828519566934983351778892159353449188380737109941755623151838772120697271479286647039063388115403335145698808078162870526683509593635519261660118089945588364309362546521989190870194144668879445756491849305522405779350847872005977664303024569337756861961634021312416500031710836390636513515087603457738937296904298073672722967097065840401566016770572481990834775966149662343435932342300641786241539362477874241478605669154516321104501492259257399174177003461590893895106563307110338162929341481227243957019774953980245023913294860833704808371692792146329539824461267127602004670476520662500637354985848296195989907374420804531057813514700845836008512618233316784588582103327979318412509420204755254244710557574905076903517987508717557590443218518789527905844837215222987199519980886543974757187086342996465154957425268474990771070926132809109111155266553100045186561306589444739959757643132482790222949832964577602350155354937338800594353223725552714264298054399488878095268216933630811789669908711559496055566782511941724559107986056570475187979944855626901171748321180190462931225724484518048668383650406288536420937378920837859910233498658298465049612789283064209706205720739792899522909101306868735456226410930376331879362121593860310390227566654694294685528776879122444837651247157959937028641216004118029341653337493462009978268002351844355964609358993957550581122426196306571507119453223068566064276131526946189189864583749535552919865425970824967227048229028179390218415318319720703023556158285253871929906504530185637471177785251253015121147402970097782425581786563180274970198388807274978887955242497501897097151770166575803022109234624089504841904579635307915641069897644100520847634227701547078219642997723833254178974533665549582138754069202800290191042630399187002991443587239723848120912299348456864630671433506644942888317493483784749546897050943278041785480146952983385346713880053268854976664697379280555425505193628536027150248975550950658402012726059296570062422365727345604015021725314206123685793133299858259639400845534358424996318707303828750215851910282427814136733141499222800327462902635060747666782740627141000552533930031862447262574958135081587612083426297511300102005140264064530518588610039206096873928453810723982591457005835421229409905454793411865229140593417974250999964364922190068040734871278908740523507748118479660141834090894744143751797803878520070489958610078267780072642808933304684665782434242408892927501004921253850926712977736751632059049671063766759166883282621315161620386799131820908354861937771725969155730358950637616221463945721091471614003279404340855964522554638219808589831360846284867848090922039693302868225520252487473085353156587575406817220569788979079588351067116046041010710603033794210183272290067982433332812587771590701053783683893820791460757484813682734588956489351298670007021038419397759604797577677234402104170897118848335085786629273552208679739745338746957434672906949099072019839723789368583504118607774068853486620801121070355994663439777508856624308672810089368346639487763286852369467017557183483164431437974345190445908159743861117631202375364255951764546785280229150623628865456622631599722067803154176862996127374522260480927811036814627044178580235357866392293972692018294708860323790461902904944043366276783798443796699401280945909310237004972350459015700307463986026035422557427860391352896821160176494072474944113789691464899472791278154455836204095849455629944770901936946448451102818397295782016707521073723755975613098516154954265208705762280874030486583843282004732544111128820721609743971673732294826489966044430358289155011768583045532991240699037356475326649658790321694062952914436258673326476720961298486672103022820634204158522916886325114476960199091465584025780449756027101234641991523787703691891860828342955840933434297651208417757165136588275377385514821539563031347713972415898009247584958822808292619112437728039924749071552895561056604583138708089515231215390019546987090357307791087924867630388164107788627074188899499426643273111458072320867511713588051806758196525347661690701455903716852857544871978939431039663821821527692728786354978558763397835419570547563027697535565753014995309975261402047989444784044405244711865548173170087426997779686581148805505495753976414896368466321545010508077664196335541269434495706486031246928571553794675090038525273823895056563936185239892645480181890847775583118944779167226479316541826703415598371977635420604714509841135235873910863384520890475408931839648982608820071904967651313415452695692255212245336293980655837474665829060485432758124182934633610696580967685143524321618927915313175203914916434294301878108751004158552459958777027375107054974552782373743671509050597807426281337205314021295509187612154966958126685908499858845079792496718878506697676571645494783295917497299235810584623773492995824560624722813937827153491809407870619649278734074724073799384396573529841030064544949163025282523233962680800701103652118131528484553045020845426607106493560813823082217117156137945881580693386224171346902243776560828509658210838417952313800674493133424858764350044447763454742587202185858908559091028369819750594954613697440918881057328607476186063425063263292294371952370246841728294473094799052373358875602688091716540674617010603904147911827727715333006586843011522748652764464559487353363364458784107389003770881518863102815920557588235381661080167346287310056211856189825788254135117630421736277297362116931050811405706170868064330464743987103555264009262857850632763836114610455467320079980162831284378513928182913992737816970615842066595876069867593462352208219602745741045462852692898423890368562629706768012447513847577557329172864943487004913245278125372977494336257047279101342750300434558622880458515634640480525853682504640113664496703303264677549096708417218176200185176757043844478050013632841885471752721768179112193818940906125774135326939597252365605518784094049087069735999428010440897916098634762003145575210985689191230502918356288577254852551162089945610977160684160995812035923508572485520733533001258347834832696422551277544146184356761516681792311190047663740031918629484971824168993262558853832058798380597216916092139056025231039415968594480985547323350058946498936612767589770269890533312283269619093884525390958666983744766881585894114435291127717047933158749438468069630350989652714915173524519884084918202045186176608682190352887491757943572976766284333299179444353555672926495186098923445036451750793866833269973587087450227891795342594204227987662222358141949147351375973148610156130011306186635451436419193589472163691296533796297949604743572195113864586863490603197456082857375125591554708637344825108621096698731227547461178271483206948353999537696690087266034399312276548867367954457746746818091874149490754376709434236285996552336394678651004259242594716701949147222338790276700736200519330859682317261958094310977610137453017676273360106210987738043004949669203935411603775938289673104188049292763104421543957304018410295937070258543948110686777155422431719194459723694027413595556359215580487558783735948406908697237390648728834616036282166235383645555019567039325199618618824824187893095890080926908226963784973922731996222766270448367665872319986384342749524907935637865981426444445508480716743195679031599276693501828387440726476135400147886478153398074312809483810548787674713919459725775769350485312620417178546884410856601731731546194863307822275993309765471463729510372887745406927968068036997634333779788994647162669500286504084240234217111233207961551853952852740002654131219275958511011991088933493702293062660301242986236553382694840508264709507353010827878614747724920622092796316145374760641636049322209639242320079557644353639982413345636912002886811893848871826178813016967921991770261607954268682954799831880277387388466461701350626100477334929818565416818643137767715053930110252448015945467146086049832971584321308890874029842265052546204407297939238234882300515003899237052591401392844574426766564525418290009071971291634328155178301233012499058740748088565380866607129746708188399332178959389370078811490988808826164767871082558517982320569787236757658426226834824854508248902393359345107721678458398081579534133549052527694620697956913918966478656064336606263489133207334861620607670714048367330150786848250498763642320604327586289544880866842490059935096708298608443498807921454460135102143424511451260073577751818980884747075221895459555364821276416977465419862809179016351262802555814275153481744142306713080125213544497043246830067726535461110574305182225671567351548493826472867963190405010070519618329216108301133141839473985490206030339383538970415831115686943036427846666681327855830555697565030427415268823961413019784568135205705184198043433012496689212160937882798365788594611312334170421345912382663255680854048872798649470421941664573025154533822686835425827170970330027972473251150414883328176401127770009714759891994093186814459691706113271825004488229918484504915356881262384229000867037892883293680438343544679571234316560938462838986129279549401983556706224611820668617392773144317033324127403496336703728073163596399253932722688463596454364394742741437963035072762657208190706713103384071472995126377834686826591896786529086235427912712369616273925225138652767587116447348922458337184269297945276845266560807303155592353133849644675465462256752350300119343270356911082502066263992673034052703084398277809736196780648665069583353219876843276113582590846147537358392320571671125269420056926200413972184081928846916303277249458951970504641849727156587048040615319621103740598570449745405193100739643821647951686503909204366436923060267189243042672590228840440150527422976155807458587504575979817712766528971258703055202082625650032848521172986461582996498190288471506523108671025488949202392333921931143766265521673083300250135887771742173388682207191070076884156649574696519185064634816047713704979603330910781591634570840339748446626634653894553028016305198304890980850806287770013676964643794814712425769215694013853363397204112766034596875342198137615859420228768738298552512134154784878381547144815125725240849101989801775620518187788960419402342230356274543037448176314352750625145850051335997146275099253226096528563205466134008697362837141078991888730770173947698185881948622215955974117471876061132401038671608189740323419768292543414427762159513609643720158738493979019679442291946731396898182380477220736980505712588355450560474101224631584264175863769106789357013059703642542071644790752791872126240181731964469112246350218936735970889366163048987270180143142497460012016021747503450504855038571847012123934403813965132431946066744386101262268016701551499123867999806237183203796995893231591463154554591899702460023083093605122850587913880878537623361912683220899776696299043874346911335368311337949476007116064833512125464970001828991532287860660912861219816998428231526946427597094032381263868124943116723212776622990146561834039241154887170070279217235403310661557269455311730592176165585701579580319526933294053825458810346665397845787617876567886274798123863690310968044565448164021776813374273572165924342145373517028249800355986959012888307406189033487269583296850469139351930508790723194321225539174876464985516643526997586688379669860129085880459012530387003122211935414235404832813234060186957679285830687103053392324415502921776474961370375182787891354656711204309332312395661154144834314433022966611583236321058646046234940093067925359163119519840253826110794427037207840260374409389943789829504932545633827802015762182611689877695587030293410248708001919550008208717517989555761779867763231593629976801533338571707632433628860757628451150089492658461950212700744829229710314265934392539606279297561436780148737548812737874314789353768216121091707653821221868364505527274142859944110183672868538819818439348414596281391815293878788138775715745392874429801804935410229460818345739610492362398314273715883552720428270071592715592222401539963671854286331296653025213660938614738899089137629668389323584906251843370385630854958637228344034956865639925800885713824417045429938829835566249653731262502592635666878735995983393514041795614925962928563420146983481200497635523631917225403840197714551831025589633419083548969607184284869100652879737223937139062321486320831290617932679300584385187049337631734643856965983240230198812588543931908486556178220728778690149942880006401216238200743396008693050986193525071182904504294205658221976750355914544659557999942730673457218216333084392949136132748870434014099294479927771420321789238943511485899610864695497090011585940201135855543705649841167663341832682777791928156844536583909968523566319064767826831970170318550070295761544388439722535227461323448206287279311120748245381696450764707064385910666019454516967373079153834533370818094693332957684328196290696516929714372373495229998905287953331632396997912409885939123324135884898176438959123245805273479606888202558568091661580333647695677728749243221378353120173171802348804403585497210061864825855538548331444560788470279787710188480991813435571308063353647182051427449436400413028505355942509985070638914529852090796843950754262409669122533432737018569119255224994062635358438679587711114435758316814816430776349150315524440077867042556278110490459362027995595945590255736471378872090710506924688633243107282171526676966324598429615118229700569595755581407880647614259480605751609349428299716524445544495796535168128755385453139801552849605156845903035436240251981781172119230657789426859844570223722299760791466317493679519118493818361891336338711034564571802348359478046458182102902082245583869204403970799703755345920142849298909240852699954740896429628445933523424495766784221345572691284282343415844478783195541341070378592677750722732234527190542856389803225817306533651962290393563841668003676434307768965878069951239194966668879483520140842901359743440803473609570058875336792205550239402810826258925203692777139098774327868689509120564038514228904993207074656934702810636032499363077011987668949483824790384514297240102290816922170839324779735434417404770256394605889982226120355377265515554431649770297267254185442544718109978485374130592788320914138020803105095724661408187528078437693755615133780485363705945254378085886402832872427159848322971837725114355987123255070097098547286761881362630088589390500578035440497880173417705921785931988492867973334237046277332209147275186248739027982547877441838912176951360282512474623296557352498423152802346900203463130945509157465459840900866584148992035221273302489754369583952381190540614584259608338007722749064793626993967927121512764958913764106825124994215352790498844704591603262460441609770681383142200391640341597687864933588087203167040463385655061808532158196411217895877227303988497943502744129386553756037440500273386304107480772035557412314205196995992991997111573495060458137632110729739328824883681604441736898589244531615558672835852016167044655001031948295924361163103285068327350303114553072272833562106502893389356000527399313265441155738020300812856005166220452287800611695351766230977587206035248767809855543244656732595783989106739422162434384808979180429088082852148081846342402756639468187337605395509471290600095814090097099789404298802080987537616302252162501915536541539520574137629581591958558631263875480253354459595729621233457883030262201573149607913634168188207129636884597827796503048245886319087617943820215795501819954056527441299750849224194539180124972637535101655046993977407016920329621616825676741855196789360235106064377221920457438806249019446914821552716795638462987047886595491380112938557459253639390911437515291896825149803719249421952748488715802210615908780989992107748256096092999372006520039222886424582720098192590315685680524569089049565801589037979693212443928274547224236130391122070493109633822146572894458922208879536575107798438184906035598819458737005414893630082199876968096877342300292957105386172089171975265147111802709875374931438767735744581801564636385161983763443298315022112529835285736549189710015338554851895912423004986524274533864193169122353462281394803298536874753057558505932199988533187588250652500313396621285322019898017582222000792091164394326860390037231369178713725700183443329962491565064910029639894353451807024690262452372520947827480429565079582570018034750706241369609492256289030253726819840690339010944048940101779686410431093719181168133125976717413565689323589125182151471520009555731562973013640306750582736701835831231635787703455819211005672848618963261825570897236660568463985877492586997371768902748456830517751417028600746878870045453473563457217869716288173847477199912432446819494662119613007418400804204358537491676986204163081153936499473768524518925737693512616061270223178518087774423543399605684867280913919279666307067758466800743771002441288022935526751002887034059458860972447084913834025567153256283303216315038477870015254131652727584411912181518335086890061802706299668531010615917851654338759424051965236076393344579417725936684447432697263614015340097915996766095868226385332549793985166825790153365125780487694787632997979091049907739078033308851973218076895066962418851731575228255204951230455015265325061499869567257097181961987578509024317944961803480859813208993412713905239215304646134549428616228565437129625320471618125007406985216823722799203459801674390922269455291096706824755431300508969376452155516640775653912650953132184457267943255869250734320164465248600878533216061548153836899621620671363231134031886305728262676130816027630114695215679401375666342858707421275451344744836581270783408721196085624228753577560089675079606573936401618465081011503144064505285889378906714156841842851051861076000846440049180750673217352481580418236410347969952439720711677148774541494339544687113628959930497429598787311109001432626995483933479456699107298784293044438158583375726957068930294013758903727555427819592461919690299005132089242956181962733806446595114061810615426534165829714992316869761413891746600339544047563745882483378411628708918762911926785760974910464840235908328635327565638818474787153100854147926662536869340341469396967524816005124914965957259480615698703997145416870893686724695178848615253871090949896947469234998279864765851672440243833635609051615574668879741206831342566363691264180385667267198614573302087259596397022731438083667536473776795755269006426757663560072364293902606727962233237410628926460925452890845053405703835891474045823148755237180244919207202189068507820797440921438388468304882583354809526944641390029804697046486341242747387410546800650428304480860754602291812891648427551547795456077659294222530244904735632766402941299066646336489523244523082538230034555206227511114599578975798130235726179639248701985981398455064974403533915077649606117415071022301031158242598013885909737645295920205557661327550435864218229965451931414491544052836846101858713643875004219758346610194776965393531965552791231330807883329943683403546884762958830933087656196182060063252513232953096606250291698328575924143327692113607551451003595335045994899793413786591914622352693485400944315696525791412879124688878889247610870622243850600416792989706064605841118207649468915800352048424448909091155465119585739859593413409381391852991172669004061834841406909010789126371855346888032823078231454460104723797377651808669792390669801880718048865894265751753356327844102677784996141203601578265895449308177468228302468789671106051513233275745724627905575480571476183375295832863111534633329482952644658600205602195619649243184452883989278007954400956825717780910060220280116166259044859641766832798185099122026617807491240265959824705576956285660876196190140822076379408908596673185677549557459873896011408402094182539736123827330850145055149190154220028304397182546615684243490779016425684470377918255163255436869861997699669492168262486188228832920554728497424840012238984736324022347797394960639655085364919667667472583149806528111149553188646693173984993061369807200763252147801062447392500695410887371446980218178693770044025929887540643185005885682646053758820338569732837504045236670962211957567381975579260178814417663377027557832348124097761085430828904152125804684061555686461842763327696921089445372799917882543048918339761524219170126805562472358412745593560426408073511598771522514569755756143446635021198592312609665327046686368241582076676154879332928167863359538372584975506315999912548114126206996283300133245176716366299133702438136476016822598673898357265343464592860685900497896065635152763280822147918873418506042320344427769915051459679084436458394951968694097768374133158301754759802558858484745025791308358047799220481942534306273301428269417116183992147593045254611259780428280904515733176990677239931526221524400703712620126597197413924061545488997506090302733800375111022296580441003679752063830953944307952772719774931673380268036980019941126908544928821345519393719295641515917666228642756139331752224968329193293744013746107575682409238602419181549031083603325176454023855933149843649834377389795443573624647964999599555664491279232742202857748790583362028849082685882346929261997227202687188611456086139433796557271153589292644866202713742165860347841131799641027922788933090031447103838650349973940364643585859224950522341136504410789688207922257231438786720389690608840424824653368564948953628514488805870953025892438430817871672721685745035285657838231789716823741137848324077553517429717146879917224933446905390706164672471614956125849542764813224651275959301130087664929123662591737960069888729470673608834392937597653686329697690362450297928487650270206990504404454287521090172399697736881386467923266549677821162672035700435323283121238830976056204312943348718207471568628133185393485250075584688928070743158195801278463526257688669093037989295944103382890367763269161369801288422099071512328186887915425274601034674993444020924834699504901613965317738726781438728639340674246275468463190676885094874015621834565667633684003336755147700922301519862676505892114421845146168993648959985165827066074280512245807045386677323841527016855293499381611263980584931544054140819762725594195882768392406236930650597790632122697205929282426304391079977535417953016388787269780064383958478043197239026992828484946176648351266562556804461519914050378796539008323837612177747046640179486741611487646843501906294049199049940817762655970160217112525602229964309349668544746492628694058083152216889941607352952289631863651804280118733826975822130015008040308238771853439714115484141731686989342297202118224518155839178084632225483946885397937660964494239857704089366770669745834155349301402839745320698331581938673304521169282966892756782479046437064030400766858881056645191455361288820858954386640538580111531458038303586541938522746428326902910708645430578877528317397944148574013563473571849669697603908434668035414138665791513034651351207384653530500797837396138958140106572375009362324057850392734494656876990632549696815238896877129338379520930823397485747443096390079059408447266838041030171489225453682387845629118621970839246198805976761420036131107307984056346016200074793211626831754645745032322529246442357311619151805680784644436369594685309603150777494703784096411556749438979591148760982160877570451354299559486249239454947813276742626438209416353998738406180434006567850592235473040258566894422300215049626287495434447003624093681679890293482091875827046992368428127030077396394390257828373592359633310357741655388711715839813654820373109703520534705245890713865836341080527238103827905312693283636082081234414281162024305594598224812781640995025109786719333214500567105235473467891399540373593582520495511171443640526276214584363495763701701981697971788924838055078899838530000447534372910389911278794672611366836108729524810376933443327296546845347222725079345328771825036422513506168848067895746450875232294878463783143747929900450148040252286491522877381154052412085853445308778641522066475775434197487462031834108479221774285683122909736218037340539198774821125679932038393458903849290375108098566872391048914457050661147506467644385379016524093136828470059605875465804617417126376230336251182736215086772598117634071832976677807163398434115059606062958806099901765361633070963615070250843148610612415776797780975325680300164966758108043332710465396533321677890498441267981252888275502002926190277992912577297398496516308193889197673855748324586387048410782454283108793349270622218783327096139589912690065740577578608562862441561987880667596727482638312335075326648643685656395109329106578547894272545255888151710684994540749253215285829836107887024666886431945221305869175553246162756834746958799903134417379143566999278987588274066120633774128925539733185455535582609265188400067914646799503604475380406569170403284054368798617244852689890772994693174740628599397173052013686326615131477415744856547962403444204817180764720864313060820391766276733057454210193016173450402438379601824935017813006135427280601697068370647344594040583352950726157388047847566661955890201540364135294209654929834241798792759590831288482021283946002919630262055461173099938894406796926948872622688269125050243457937529526556312060634569444508931217534426206246967171714961937434683503438133714925745387296018874873648547871428653590135739055551730293192396378824391783519834868018948854933286257534081378852449193634927232136715675398830420343441268998390275056109995490074151583182210462945088125316776445785088880313751043444323218611024684938613584450188913200709760612150966933613043739117788064550160710975193818259662338691796846004836666573760317156105903333393643948959172413380763677123863564011925375185091891377202286516062652570573336122536614513167902817270654686390005370605150034285637799073870921687204829639265580391941673450031853818054040297823464376929353093043286130504959046915357425103038461645872972610277866111403649073720597378587176028291527177553178666882475902752499446000098443079146647708409817981403292563454161113303262000340998042831895750343343785239021466950329280563107731358750512019848252873404134007976539387291163974387082685042666396779277797488135126689821359908924705329243700138596338804961729723459604534217492569742584270452813974692269288093431088129229607071536474573249559138446469764779803928592216427030448325282899841646920027096160173881434104542180183856865015557719697029145890635166651132912250531449039389686560594455168184269709123259649508032347020976921950573051239145633106461834787724005515717762193442458832108713227779860408006348239592232587572778457520515956700902096490859746232226782233407970697080953700225269929146314248235550461714490714566220348008225541735949040126747698675894243711439563588735906775267693840075835915367748439699125859223065355511921917328646683547635748305301012936312028973914847132876383581147808902156280066367035341027376553084055977478974575511306390389567310060725868740184165868836962365956622691667149984693490256206459770548713731895554479916268874373457337417844077942684552703565483970432237759463228572710434638090872365585876825725561541742111198407312628579498614066750741829800279938519976653086191135899077335028348742471046450631735333159293239606089601473876619118158193219503209634006818179497760508236588918346291299485586633882155289115873060462085805599006958035508768595608905932393663834747844094299858085534076081909338618199986991043582737804502479782582533777588197393429558786187337089371322073357410696594013791760671115965040954777610431128454156922492526672868488842450484302521503847826807262103421308382239476224518457839083014442927352322583305210250370737672164607479757831241527154470224214075401056648766452921301672126890751258857499605174538489938253489226401617996293017719799684423925827127091606976237677976227367141802605078142741223771609672341712963567926801739711370201079073235842195969496462172146965158592368297149732346839359764018330679183546908986269028951585330475631497545884055987664193677316386774481258795786196468213270596997179912573413916026959732824873803336957913947551892658016555819394278460657401926955363889973402987845290784256102507393171553890762405246658540943350585351226217465260229471979370742536875684299267413509098445144404436615261137030702871400859968845482987933537810242382491406504133355787924866246686066362095355540157989803577615981938289386241800280851338314365171617448962560706828700804319565018571280500899498130850203599461775870425032467435706801721750237722821652454628023909791775758075461552749605669987034638647498249903473033753785272402566431585317252632986219488427893871497466051580013011370740988852648663754279773509861834203501172112351847316225216957491791967654343275944304304803096098045448431849693339533867594726411603060195558504162158744085164824476718792990641512417026937641512776398722895109255841128445834450327242936299467091745993892700567098941687032617862706670882529097400632673898392000915498149192758682804453376867988515516963944704733664109291109779142827849460500828574016723180846708220523556758483057170669959953440218435385931376210110839975124918164262584159001797313034153524251729551114860820684687772444119498819342024817367171958298780353590221890936722117287728615555401608719785271668836436774082204156300303963181537320475625725183611633873134828567282559356346401438877030820421017420552691424475510470860028536000404501411673330899259553973849776775112227857965221717634638661295618615327804982931791005522683597876514129914867529122605608967350448788831290919559175438984419840040127918823312267030716628721995330300808718126781843359246021077525478060144255226488498991199914185316056593507153729879874300652149063225327166726199177044461041238769505122665683703734167495377108104419716770517821203826998944814150251984187386801505718906387929402216073798849492812379092862602303655890018085542106111201276752392124391427069817273389897383221004878143098811079783095322711049623154346259894795486403967888875600853824341078625952368145822024088880635745663743081247210824900858314959301639590724509621480662107679786714896968368592166138648348415793347138948378281581650521372869903820374641316290228680333986096194666367380350934905675739952342922055939069562876698665735207346986203982100592416281970649908275545496196268234015109237390039100193128714940196911123467078051507405053710335244651378757235571561483599771954519737055440489817695889791299595869792888529649897643045909739623555087311198648939294988036841770389839769940106737047188602309533281426113268441833698568767215330775855391480596634200247619057769043062218509235819791674173764869394241477196588955788345903606447977456561320965310482616609840202783635238027439102198326958033860068034388098175718629356236116402294124856643737779689671526674099786046389053693646135727188611802515732982653262294390948032481647667411712102136363947499064432514892802272569916521358873608483187164954363752841625371517248695555824902741419424433606537602797838695303961077127174395803776593024674903409865112403803465832811256068804507707403100568986291913913687589562044672031737089539777055505320698694633257982769525554463851983799984102128960466168673706726185944353498696133638858643527780170400594186249438891555442253732570570079018048375100423680433314711211867138318844079551427178392660376026725250099244208319341422824904883738007550542679459476276992536236459021179853695772540046670213549889180401607518116220020837148138766553671384004856905083490848709192372927799370289880729651681917199412340714518525268194024888400237828442785646720760654205866945937186753831685938136283954825390995232979935643268604841938939796443010014131330669469726390091407985508523513666320545480810990120452541944573023980801999924622531191080537508927231654527704756666628290063814603826099515412397815672391145068620198184147481801349472533879592187151851385259790804341638281752759234212598252575871018098883053636086288037600195329933599599570128606347673110569948486009168441421448318046485057863689495137543207322932581390197270213121276207448941785109149922526231290945563431366804748861136718344460972402014692963019222314670504004389385609043612539852429312573452163606410156240976078311831133336904858931341005680392498189042164352580926487697009965080266694696385082646415549754519785318094662828007647927611652557462071924032286314662610925616624482411515434161619539557619267369703956028921986607559252200579677070166566708433856951021875712864171648220376385801753995862872847933458341526018796410979354802205660563409986640298510006449783283726365147709025610304802587525613595276177223710257639047640400392806150873471269762497152647641851673901152726361877186639938802550662318059793927813865817985378882054571576451939118159773935525436729114680046163353925172018163227596280025346328886252700343989696100476994181383962897806569587927872698828771921188125607762239643233158771653544223870864446957314259528737443916543504145502219068396163819416422635131801470543611624594156207623162595875072462173202517433635462873521181324692176719924738626927503007463375112642022686991779400327424502461743048537412184615575061555827067078956811112555939662904676085042756082251314116650325923984258097789940547686493631908613392998538367804758126153815655464831648537410221219251131371344465677079194281349672054895203670643528418556579349760816905239062475143019700727921123315092704262436946322208116453029831364958460926574259703788210930443477775231818950455206758644668001469011683141471333874970520776194181691732191671376461981531436526256023041150249637151943646525098854067627217969226142238748327934777952425808392195573622383821185409855199998781943213964697206424670726590381008164753586634674840146195254979015459336198347492979888989157831756466180711257266510191213705898441090628879776416266226071684789642006346648728596540439703493426248690614341784706854987726717035385786006644059297206692746749014728421441528480601627433325085717321078675417272218302642705271654272453786735466564243686004820744013428060117970424915740176931002357916815094132040823171967696174433876020362635032180809826031307913686306230961005115696839791317027713565078065164659640382725248180629012382841408035490526465875147537659359860221305692670472628220580827190149713433001083645782060938059702312486282603512396722365148563334612354068666857140170447216036219949960057555804813766888642895152431640725776590556158362424977310053021032833397818010250373133503664029875137578648533983702626524317201378023536507609217289854529824535513303693700083744937342395156091380210948282041149420121702540901232026607956346906385723624399388292317151863534463919435121164422164715350493788709274903366556240904384330877292418369145405998955387106952795556335517108636155884741892820716377095682425786304444194790630907062428660401323165341894506093624373917831862320416696247816187428692303340961934546530962210916156745229428931803361417117156133564824168833497427289512864412938805734137733276311185453903849237250383463931268142383743317890457697854455731218836757927108537322024310586714847877090626720915902977009042057921637358693719870174410385146501775498777087147412739453075363488194725061357442431517947873546360031957067717715886307849018627844628888139875989853445078366775719927010676323995738116418108785619365136236654091085667115239683648120418526038900139079150637030841995332002579922177510840303019875292759110467677869233938001893467807456314271245324702487750464649344994024932468890814408343851072766758087026769342346301327014106261278086557973790146067521829237490986501982277450968357936618317251131817388514913440251039730667005300633722501550889785965136852164638505458675620648467036882047936572013187132455201954922106432446009733876623443222303314386875006719678042969220704791834702608028905812660084052136817972493683378308649543347834634532565138290074318367156313088263455498166623910891035782332414440930377440615291815577429656872200223633505536522771699748852411912377923029847640339951935682396049226108967083190860703159269760427262012862168870424636508048805941504146687555694423464506859855694432293896760795614177645492556147146925356380741712499278643312760354719927027004774919705292651912630149790644028997486614945628634812105808534251615678138075346430270115862557123541914317064418325717512028947221575759643832179552039707594909184944892762421601610346233362538368175892641891283549869279162850122029005695718616338400886791062504245150035942264656940269101184973409402361321472469962553482663373227769565622944885476617781273978991564881375802306921709686944402428943767528102650529426994674154497557275451486768947404459962318638281932167467766828619029950589344410252048101322671820787426998725220691466869048847355765604825511815792161563464663289173028148395496137435240546749532504267807237514011230813187902830806210478063019947248295311816923781596439176768012373334833950594133628149326661171701024886675083428929524341242667882356925432047131710296252965736331740388141390456377762129960836144713529540939933760498408384607129087174385457582344894655927497458405884926756300300610246750116993222011483032090049667479441332532174734698426927039368292169489501718476478973103368691703557288743513252081910520654160162213027816187519648613536174932027907813571565655174728497772900417238892395745719792126984099079606151074814319018399492756848863267899282139880191469570185805718658626131803460971836366581831862001473818964032403861049409348197291373744561434893605009483458832470567981233767751079076904530966092709234554812983946604134523974866145994794743842154107419403850548899118227661423127480015589692997152719000025608271746051184981614993059566524467754004151441764641232209716745890440773379829727858299989455363904490287725968115258100478433634028392982155571115460811586579314846615088489056332849033801567459796694934163935706082993016772097663146420110901403629828123941395461811634393618060090149276099724872747190035093342665206907693093408390458431873622927549171224815465303088309104599283076240536001159857655639900656235406765210937105815157183513550894090090506043858714613959629077877074909714420112050177158315435239981406583752193702119398242951169738458720602761949575687856561295876163972649032902555957787544885466129371295697114976622564339747890153501944426285431247065683317297451799343200213297005068211412924797164712896477018041264888258209942995943094366585323701077627468183992945122715047403767771000372805098575246501569083005287205105689756822072945295259067147219195353257259478200758892141623440582874322043338422593315533958483554435688417643368694310187568419834930144346765156115507080921656709673934377846742337711608658902488296595372370737095727143501299567621753611845734178755106844025135476956616795057293230872507925263111237119762020791035173940654243048580269834697327601251682973315191773634330393537336367668332934246536089975827442437359415748686984227393625488806676381899015448838559266328919250199322056108769269981677383990671727863856800766290467523078370398787762420483592301737189531032624447018250159289414846673880384091970226890720193860363041540059900383869546151949956572635929029816713273292441529162716250189891522973818459888445569880992873832209103005490260233985622319324307453681791505766055333467566656974478301454566354676513970775433602668283827731973568121709491305310066844074657047730726434604209324632527654460416071325817205963777391402732329871811017035081306933121717425481032634730903485257186933749538847926983597155570799988083056463662569856612506468714162245914900193588032578004153610865980111844358911516958993272798582436357787104301566026678080432879231912290427242570338943046368985044286461113107128379483004550725281019587806315823048286335320855036968138005818360869256228971337712007688068933700030754528575854196251035259642031977324355207482226215688168986108371530467116431770993895946603749297626842141173418076984067709987240179789793554560991231481544820190645588669854123701490162130426955685911467016004474542785381191992952905752075286156845434319062815355118581605309409258397975267114089061139380060325912007305690893452462525282830770950802379354887701271446627358347409128935276666921335229761535978643527585377632069777758130133265740951004273982070929675593035788229804787316103048580796426442129371946134957290273505455923049494987820811012709779991586817989920710301274023262093822065631608070828807280193749992041466213045296044739138873333666259207668068060593576187934308218412716249115483505908252699438677572417783910311100329966057869811012371975856720056360219389700008136030906374031611685929526137183733477447901907286304274077858755817962095599090923202593350197756260179674073080545182163261373309832582297848901988842622255914198053525725238250839424757989679970565521691903314589926187798349657725476235180670029363358743504217441906556953928455840161160871712958450380507181615051836244875291487919662287318928432260838726037205472227605108647377571598635531782655133319030499014393725406877651341911982484286589397152407107731460781892952961993454521783824958960835992934749385588684746357474779701392835207313198921498542235940530213721631811877031601618798209726535255777110761817631977561379739324945930945537440892084102826151252473014477961973952148937196032959417473594399512443633763397642504384622139596577357230857191364911152214757253351693109816770212799586796047732155552978436078340104316661686422319011964941722326902614574307760270852101178006735645015390025191376857870561578107704262682179622198296324488262208193498660544419920827006491928777949902688349992359427251543769589181282665281361119463527574837586301716448005163892716792344644026849360074345666270551090551252325199069851596206147623534320375260237472976420922091395695924450208280991491310857651491395455509660025623665472677646217980482575470971291457182823238211390274936311525680611730499439701047988708626053336989942276301525324314443905199565077701482610694940752731543382626270061040530607299266354327228553024943806671996930651170346366579152372158986278528278372070866898744672414980113036155103025471250119709141247029906990718171990706041963763198029083023210911086508805752361298618419832893562579064399215478836783868377926596693799252457044388375269040945872962324218410948082955796266347452647333889459056865120115357627728757740253774040130813456071602209650683380020257678820870422125168917651336602377072014291878083554888350268417203141766320625527147307990272306703164553789244524954025911338658184818925318498125782959067570334955018688092009522033680016621757339922050167997595928664075344619325627414843084452956204405643198568868384509138664312380200558970516433447971645876692019439976674989596533989160628508785514479866258940694318671493155095426010363571791495423316918740930691798113620018661278577326144716133839090688077278885871485975497162252528657974337605055593937448068922053690898149998935385988701652927278792589744505928747167411200020958565323648790068086670927299394355235154053969642997877601821107099297968054289465418931197975359801904652924770506386331661429428635476604617105802284759872283691421466367809052055327142988749595524322099876626291491639989945838783263300650587616477574751833683501969696386442914201669985889377583529412697831169689942622265693501228230790468850010604014374196070749014757546977519833300697575179409014222410418800483641814137601812278134175291890818756883761842370364979275631164363651418669583985683851841739739581833999138154953815851380637517066021675250498269013062104092060265771196386410879987442916802113759280536203953430181080253111729436594573429935375333322450663240135628584522138779610550781645840390712338512236671110336778277739944805321607973435646501322079139002719303002403298518026265164221022573235353134494415064148990997584445044078184089173888276363560024588532999316987090044399477872337021346077445472479118822055433078056600097838702771922149750401737815745162862664237450180326396079168956506946816061053476653823882731537583146230788583417565083085982148260334846420006859492447366273170737285220339799006180652057423364038382335103435859375397650258119738942737175599120758532854769230930766038062061631836187108052843558223384856045342736928947065368772029338175287845350863840256081920745705664206416919460282723213701450865389414243530820096545079620100066646740301316546544588402174238241800440426499395149241747130076512230253795528827505301808083176684743120378709963913940845298205636243185236758438914975776260532042873202618139203219134374438773194469471404844129842698426979853935865416898774846010501027302472102087242738799432609428865518946773629261953800253629611932439819185103514883202046697593792996258417805766378975384524812895242838828391997381015997411658211836315498365852319272693125275925351843948197570531805716162793758304541204212237137737047161862003912768497165993880745464148066197561237671197322312244174915111015353445703531128434024309862154744013757580129819480289157670628070150639712901609710618590035362542620685221028172032379908336267347300314748716049663430160216051424274242180434424011411926831845767065793220937431990404873423590896614658912613585010797799588362071080012154692532437091430873365322452774607030559959311387014199312287773731117325967836201047398532912524159066764518972822255320235759397786221718382089548000451818561631498199234748030063958526916182513896343063781238399935154554212000117409052880973677738851228408872722995619758639008922958532085844320862301163133466336124457535943650159964687536275062425528957352640374815007570832900865362152942001785483423463950331847629591931214695964937455983668526209805165696930794213337565646959256687471538689011812284067464435981707528300230427618631221518626653544140074079472141553919415120626007336194437289619581673659503959933748893142386604927280558349127320763830484004780268915905826035019829511131504131622690411464385120727685607942903810252058467824457345640112987667573148721149408214731669110502182910636937886318539303190261047748391045990236695794040121867024904253312788689867380504938094913074496210230005330905856705489899880687684021618148293694604982019573030142694200314930010691528671545153341970577755683104526887856779398293200594138885796528892016949663366018994197558953482417944436626679365647744678010268020619014868428273546624454273628418331745760048338139943716651115695964733398569843726167521327927397929256637926653819697683394427084263910012430105951418568154416109057446896373561959575813557254653687981153347258593551089602416395909789958107175172455791808826124574023481523896561944378589740830097294041756563745005739115069250289873718724306423298571923281262639931329487598688014307806554816646806921028960470493763836289406785402605741381529952575897860858208452622526420137700833555377480945176243306080555393440355723904166008726245163453170293023266692151189017673171197096289229359298426047983474261135616539958474400371074090763774848348103626685835770873230846606188846224087287697562095582901743157294331108186111226710948742661443644456320432073824880071469153908340558118047299962776938430070007257118244323575202982243826563039942200431642614685756021757562299949961834424793856384257823065272505728219478552190888411050023686532944366265895764277924540626160948004020427362996738601751341824578545574968100569510234904188556917427431880919883842274116109653209720284094561031377400502377976542951981853805267311715155556901953888661178759418864916360611273145821114187572499819953100943559077555093813091897870811854050582892564423264227264318212391904534523616104085546192647346854653195925348665025947163324057012888104195067839394714872726182605850701039315100335776530860144661895169877971077624018740577637204229855113875569350786244501818623818601477346348919738896159218030639183430834212662760114726438731906470054664968031427552705672413371592674768163873732662756328965064207689048253396161698147508277484405587887561164930418241673088894539930074206399469029749981195778502587457380581735991882510519044418554019472568501426079119650010709638624739046364021734730835394423119225644004998709511333068478022688824274353582839768766744869769138134676842591014193084315793769488675275952817644632931116083928783940695334470529267203007200447318412145132949018062758671418833987071219232364791300209601597001680169556674450013774885464517541016953329226044754168875890884961447889776659212725571361105638486247378096392478285197306501877252280090488035152203735075727301939567905513733539659301460115487822736344978086237358064947570471152230351896275857742130546675403137754061679122679815110857227604324273220104171234081746657347641079169915784124948812093271045381174277194574650120562707604939030352421767081848107315574856900300055921290517464288010992297506917980167562378999949639362012053379415738030328070758669836147106756470432728567002046473648214617529222275501734848014647793051157500474008301440996473472557524230466833576043623453452773259778386260490520640580351328677123989287516550821614143349734972239346127695736385868431092576596977960035356398965289235256048826697758552742061612691354316674175027449967999722537107264929607031410436805552636642760316964387945209902446703566277382548662582481910002271374338487662673180285467427778988273540422552558014903740515312780289757435406291017627463595151280130431307704431900985991302055914639837046526663589285525653983205721743092667706786890042283428108648440800534283721294615534131219740082633097438693845911551697577396471751885554211983006685938861833802722421863398013795241130426826686185886681845661569865886870962539166152023975927190656565405269068818573401594975443233794633022613586928997616580837981243580474413719407321329601670685003937592084816901151944366203606430358639389236313221044547444132581491661295705563823642486485379189095051272939610816422889476702320687088966202469931514334089597514381345554455066675648057144322467153422518759308790206812720033794125780833421828822206550346462656576369145675061658512861674201662542260532524239191364631088574427875207426312346258896758100973124722712994449423435230009755678441517164724866250730657951823491829007467195665210937881087246785967660443128585279327320631950508871854763192106227779183472100267411201606036039266437360710235943103100836239165604934405803740758006970537241135415613333292863459146385254978980252707477102729093754170361744380948633285530747328327906782631794031367076175248335518797128241967196310463105047539695615668538084066844052484304918053807586942975947070184554327349532378825350126327448199406899262851293344946843303897239583484552306240240176895013508015320433794554530038432388724433939047717620153367227133841292899082311617542848973139530911647931066539060572861227356317127371827876227390411811216158866005077634737891944851157690002632638552163509631211868310089682370880201461297733869314102614514090345555277937518171581871189733911703415946699069007019180658092724914630116548814342915037948403421598308886627634599508981565018173373073696829015774725442553099961108103807660648435244039331745286143897213114555465816755182774409173369685473870925785268900260990257093768696493728601154444515610534287173035335088819411340617617042821048961320479411393912943093045763243811933552689943526696367879862139660957170427097290020762702070982483246366385583696815717608308517470863831024913363256713201513537247792879285918595872030216327815712305712864509800106238071384926451705108254208047367595245352450075443327471857205363815996184571261474770200083279451989981617241875443494451738675497026179722708057598920510024060730792115751696218055827903741755017848516458556478446118776363736815604383604415274824756165487068417319276494652066851455619337988201350850072590309016706193188614597358576438210388755663113630934585866811307657206212754413896258858968118093637432848969293441507633194628189887144635807950396313033922097759541514634949147808925792759197991050716581695966042166967690461851422119534412727505153447953486195925791477498894861105488300959969905444097619187827041633878320192625919711914530328009845657422402905191798372156372475992360578071527413341770643713916587633513424577842605673866359353665056996312080088997346069265804164072073094915121733395646376755974940005455384780403968716417873144328618684906414067510318720719470949699456121378312543645643544682384542903370953295468185232206569440210997556073080908719707896651116514285793667396841924453458680659839559295332040452063144138947753978641651158598101831666442564449007127898445315116634318595700805626438478261023727863451269592507679805952286403640021018439960971920350043326011840113112754641129659397677462768341380710863722707428427245618112547020727759485683125196751428276318860405114593073268785936554679383575645901289812761497722967604975353597341115752609322520538503996336330325767455075124796665753005811790777826763850143455009182615562194687622202816444741077160660798913883059794351573924974884105464503285880969268514708084480216673008015566101613172143716975758064776519029706390088261883456845147962988805332454517372232173272242339264966136408989840420688760745760231332256899241624581063733373436155312841485267229578022280790026611239894611284123361013123029254090138973624103046749839880949740755862621610548535302349842223494959529152471858995951306714566969901892623768103754299384848551909824746345387122669891567152004027152972435516271606719013459020917615801488180444261528517199084862295222130889291903265477871088350767399235260663957532166109138221397242228153079115762106295371773377783192420240077691411405169395933665348667732252131643459598304266521114401001029460835430951426414076597724404395115800013256714970829242091494568990327469590327067533986080753501451473620546311865801616855940234700504390453741604037071688370170494435460134500489879952916093328745695548359742987001346621858776886447339391767581727404988416779456037442384413824711966387997549965497996297572692431727629021405850900418883731330293181421835534148280734185618458348044696737665101559428753001280396270515068707077193774600335153923613023744156260829406337301479943446641793324945145155131862526684374206239388240772367409806974911259368185050799060754444732529709276548497180425120451771371993536198412522437820862208892003836252635092832329156826983180006036486398294516853896474014300261943478777571784856237274379417896412266413228170620193655756323875742715870067807395048398054548643657732043383612098628710399050357448169930334851211971766795479988847844224976963142127785677410368862016777382820849060205577106704170663317632081709087457881252736534213991687971641652782750702945686401296858291382013507691506516050643771966137099368070879057221508372777687489208321957360053954199333144156061992263717008470011254947604710908295957593734099468730390872161792679278768579360573690978488124812667398453905009757599566497106793086788795368283242772186494890052232292225239408861455327017286481067145631878689630921461561413677011950471351839322597095271573968518092131737832008771003136067858955577290558487588593528497422583012972185814210228831460324891005225050545970289938459254378079265918969581667845427754299983732186028059868253743275311348444361329794125740767685930633304759003211893319614379095369104146776463374799079603713956371522064673349544553492761936353594586309480054746913045959416743201750481646602111182769341286790367743737726645884782816595760436775399579647868501866322495223304111911490053647545154165572367719588726513947821492688094674517633885649254978576714301921862972858392535672435732926816901657725068657712684651047025912780705528217482256549633944403301235814780890682601389890518667091589383465556122910886969285738743170011078660874019971536729540695159361327291983447979415133623917424153145128721272288096797630055819610947364934673930893723104265219908068225358165977532930508401133231713536697338027983059823861468481985786351657374924826015668492960517642553119253783733637839867730889052534930828903063447911886072575581540248355566093333390737468789057514085544360637776667399877939021251553484478188201186657871507035162978791815956691510671715840782761309182855653832013200356961853453582639566457342189360055223596542561315110058468641962187857650244260734453954831534612498287225314437345994641325385972740936739495431295275326105353077350292114462374087230039310057165813724436179087393302205848606948333775049159338710922264125811588210351553650906645195857268459224528625877127039959350336075508868981945742094241852828014780333545492078844913035362125282420520507225392183335697174000384164166831434074116848820167629290855704799041288133870783316932524345763895746269799979838230322377319822829356741989417319374117446849082622177542458928483575660559960230732771704377802529036684186900095006126403202494739967549726648045191462421304764433302843753856033247075334819074603521788145112042893561321967911174695754932271906109152451094146852339244707292951421245576651244045067304277800332885801211071693748618172822716363618518135626205709683954951676080403619597416621376217493641847198050726712626741137172823716904500454017294426359505553494262148693269150564737679689092174192935120372562025328077888524777997027957424161571925397281970936938547469803918990438281532737952925262950025039179821393327992996074349630998355281058011780621569444526554472107939718854381215530338896383815752486335436214480103728293954669334617000051670346329103179624023726442196881618773753031067409616065664235087546013548511398198571096091385859658954468812865867737591731200802332225306542464815633023071688473104852686635821446736007335839162720824689309363797894436123671092346938362871343080897971726991221729721116663668466594215986225706124363095479205979134222401630080023834165824034637185278862394207674744777138552332517027225956189982531982232465770788643274705965988004355222772874908958817530819000387773374059213560578220865656642387503000214357942426355100180676776370325530601637882974132749153544628989338709379492363178947721827041898432257004352780426874805173924686275323299076455538822070260902606815442347413266883763834700607464331619512121779412146585905768672760474820571650317866283768035627072635267890268098173211403668386374448404384138045453719694159568317824565932087655176856690087589472931272043677274350110647594551234038710056558297292230707765352057196594830912960895334916816045170479934331278385804563614707033556820049232363992602156501864846758395635307691384593121550658830081046512635613562230650253085369018474537503443489540998285061539854282212559820293010996259976091420599833711333342900155197070310988320677576106864490660583810620577051887164456604228480739588653202063639064435940269752610797753632234180341034006743373841748216575746935645574456944373174941751559305067867485491391179764366235948427384383000531479461509687317150551860545087184144477792294183163199754221446080000359212786363273857979425471267906840761222878477026293476672003503715739891271879418963400654962622716985591599325498750323580079020474116121138164605822029154340512444465304606653941259378811921633624177164019987952946041533805402264319585311001307071975803038484956946661269758683779927183307238688558093325287053209082807255574875922208417486823484821159257689781272873659476196515241100874471649589885677598695190665379754950360027375926832588204409308169943654686899075329417968343014608610017137810274450685721810503612115411710994550837050646172946231841088560759052203161077940391865532828825674727529146982403597499754355353695036899457609680401702451186970319600282623985341046574564155554447090680273451315992013492914054178914108801956087035649523810148250837974011175604787728795833638893084297572661437146535997911740959647695416854221497109481468473684603189779560897787347157425706647722568797502124805017041953179624028946769690418304763312018256222191885638731452950222246535751657850701500692996573243168148368396083856719858684643980622422368147986044724862474769173439366322979939876686827650658677728210362663526257719751396830149075186074523374898910081315638901575984044689553503383097445834021016421592021905551378163412337772821812444360468794377649965847393948383044406449716481826382904977831627785343181934288496292329317896831991714381045840161691119111268870748725801006219903026275340258481502634248794636761275384245698841152475127556391905377250518291812442461736100746112700117257085550352283090372943700782142621318276816979667196297789979987155502637778541798666897587515200732707383636865549928771895737582586117450321770972076534718632759414741214289981428369947203370647848991448883150537053241927408778137282487502362533138366380095947751281393619325393683386512023060593715692491623540965187702121969182668403111034422087251880200459855333236696356104358934872238765355606115005981274326197772200102113113890110861550399121525463693245343994927701484788163339600873346007798799651303583444362873623077365255367399193477965540041336555993741320101327782024644843889519177168200775440434329394976639689613309945127771880246497187343625417386025506273291321696049950820944027703712660834215120724992352952545661540237898021633457195337230436815973172326165490208040493160241774173297606026377554902716692782239607226893367239833823189051669754040188117099947257908711263614615825648550276140065261676278318082587450160600839402805367464910602033493508550638708709798642882502033466371983535369469743055623525212938888053812892431157255703812144375401776841311216142964349282765414317601569232695514390419428054766541939954948271277083591561926651080794651408582200911236853441539313094461916008999463326418738636392485567010524914410215455776795536671194705003576715654610538325567588072901182862189669386563625505906293459718721203256065309689606463795045503327879031868974923242866492140002847759052362653381425570296912214748057173749469954803569539159154047395547379111377816528406033303122172030068375607094231129646729974461536849340419719966416123918500252946854641730079596082294057074635642868310406709002002554455914086107098050928292647595352884381546294848164855788724061645813082807120608004736883978101794953043187194654596235518292872634477788601501660154332103029869095891392525701906245035164251994523958134307614332160856155561979396778276090167823931426441169051868049801790135876107440491782462968435565888620607946870310875902938471267602123608097879625293103987834972142292081593026050923326409431271618898042457641609033537318488866108284137557360346830559395418537451290977895519108212496477262878284486173750816689203338291847647841077005451496704314801840133022743696765941948820268141575964601541977014574441743651681701180965924323380060152265869346601670760738846396261539035216803789700240776855796837095936138030237414216126070093982764051919781416869552604134953903449330915738665029186640630146875780102541831790591621263185096758014521867569883663590057104306255464102516466626565384359219302022568138857879127706086014671859010368599467715336735040580393293352382362917308068783571271231112349501775246383734933363195954073831799892978355568788424577538796629926504864094656950026080362405870868688953096444344710472444690305586375700006625982374740776558075053225344807909783741188907652319466655562329630814124631258826936577488820681550493273274386380103307856930152589530731886719045543698654219262914754632065209148971734156479158558456156067131149638135558543422949564643056842520988224023512909520732517602932079706659387153975244546471917004092654939735742348526332244508908908617190371105148769169574008123896748172051715836723958462443931867723600327223461897957154211892687706319165964387141980791343866909653062041627239143484614430364608218608364839844525630243378342892757560500749603731502248705005858725471331788951253722652971495331213955149105676480932550142578178512983506245516778305118933686923477559438369359284175839823446780471174490880836630802749859328135309124158146095894673371917529843769542176894023479752712692550230777939309716343004030557106505776660865631883160816462421281337106637307591078697334441956858165384136154961474589521135269389357799755512850337404817473492846247377689196338630552486778868220925760536466459811079208896195142041904590284095534928155485345057523681441367932451499539652956885557122966046191649236282698598321039005649504704886834182187377544386365446834085294577714085479511974213494163365330563510456445458318312026993659518730231108039607634487583985631903143313869689627671756690239175405647537434741619256837504387287269153689402285458035321767765889900023072169669138600433340715195866894857348921650355674457489183940194995671505825444603583312417021801734778077024126404327049990972710608750796728616691210962799916974540697898597170769056537788503868964072454601307423301210012451122716513155998106744996698495160452343649584010713614696040280337384542574666376889252699199430668050926674882554866141788355226343577626211053313149495647892121369258525371732647784902587365563303706882719719577270036549385994132403939912649168315497307191821498788732189016454528426491214381261871983464463106332563978893197887840329116763427660120855219242808076680810750553545957558342685745376472465634115615567445885782455625683695647280184117246035171393518735574617802369387409624125816823936924974668966371883132340481154788576931669389747437878662624118384502680647057340853576138820723964770641910245355031849600550738257423488249622169678988879431227625478568316745456857529635981501237506188322497291573528420584030890518407908576280365795071802873024836035709433973118979264658116224941558711272073293115714458688606116842732734423932246790474810241518970417198818637399504279739010639303918068522235410611709410176432386030852600217692766538236292277520114196406031328713898522746548937152161733727576502849230163683117415390992465716685387417475914149980586540604159824470841237985135594036402301994694748334038502703533588172880532011237547013102543742926715903523650137290572201094298557778863275524270554691626209887195691129879524712686957691703627943308488145601240029266598631927582053663949270935495543724274275896238602929776934882660975942739748912809768228782603097653064133041993606613819473584326910633471261260951214444578094881852387164150730012302474808568223296225795091420996062428429697242548206872955982879712107937986491122137100079228232542069552473831971801557842110248447822986570211488001932154136906932165453991784555187762155236853715115163019525629709378064794015662818308549572984599701235779231027079948783685571069482157270426038297024899985324369353411677993140020420983150101456247812153017869712706335598114390643843848092128330963512171677347909737776484608385263326895554813175246059406643222309148436082534234441878444702445681115891576243316748115930707730581946063975983580555437708452277514800288044723092403536860020602157483491046453514311860553186457252353143737321761171934744434700784825356738871219874727238733187776424507917154802938224251911072735790855375249618385566426411493551028324988738191168692569783067043941291385885043646028665594674007620789724454627261945719169584760324580339169577917894815055801565868409122380694502226346325448179712706977395851938446240691638995506341749787743611635487264790039387134096202864959094640986125600705899729020879997165231955059539255468476996261353858959010288826408498874991551311426359999791623689186114253700323422960790921695677410868117287174897145890893805967803873649487588177866181195951626059649733019867634305328391049995387350872357734736296825394834660551763614654240536638676359468772770745077627077160613538805101100954901521471389360419649534532838035726933579742437280020532599712185965363968112340353829814385527715288018849528041024369505762880007463416289188044369154154246671355882096753116151746593758619705795148948831996057231912796194072698386335735259092553561011765050493228099872386387285613711152673949716501017233768423656387525486791972636566783297345124854555400604539918232802175950195666169175538560628619856453412510302046406541658179584400776498971774876744264065392330181426833133452935441934751483917810207782440507512818132439322569628887150483124387528089510330288295660969871892875878222482199753925402821586275387214909397030336659078380435112231250448236781554876846768924182518624552504471324472147923505032530721743322982490696760966416614000619273353406203911118882985075195873096509968283160798470722806052955187461018104848044979088110052025913889767154341182762559546152553459446103926864508411183258383421651313996629870156623084496361635263083327051547326186194199033346650130505509381138714442098193478125400318176960112662882396411197599793893139513254046540436325527817908029016637617206206045185518981973316379419440678382096799243605998868823804220986408802547325479843152905575376151066876856029656417254650550783019223101585765017212370743983803815595771731922024633628085899412822395021085418824999950860995302864734138191189501555078963747044324231135996176946840854460217089669015238010227844738536402912398398648147095662234096122521725165158752956482689309348485446295871960747068532570713226736796618684003382635131352855315560660713146216844618807050412769155701179394130393150548398540534519593556066872702455536368750476252392983167994665699199553727880121425530553320958192155221262096581956213636389977548046888951485978560476251422812562766975372057573950535710355811153685798189528708918612817494572596587966655805576561371240704516392906896586401332046803410654947461099374938577042340985350552883899687701525758891627252909560832051993053807884000725798058721509820724136960555384064572310634969187274911299666724194500116498707903378434568969443626877558495590372260276119052200284884875894024733387652712945654815672858160246925886628414406546977233139588601938052925866377381900175446788021984092004479388995805315121260119632509330969439286628202985706428927973934638747960063615916889474162746462326694339172274014501246443563836747293051630084095940488392512101929447583836968795292739510274911838493549377889942105271335478269881080138502845363841425335830699962049474847089011053151372580777190481823119134553042079581353888375183584001821890065764760080996846375013655558212544165062518215079731455636261703335600922271846688396643413524251290014585174269322648340189419583437461761206677106762340436698393676303619900899112624259758445307145900699693639482653306363123666370567710719647709031347879863604680779231867782837974299394859818674922465805901387545746174894503668347911579372216829122152910354319737325783730731101999910319634511808428322908432123721449411829332937125519655437707632086035814683270447636010125989446000899090584903801728069936990641062090007543712993307997930888915896436895974616049900168526152904592750608453798316965487211397317035165057912960453493169761148233142697023804336959883400492601459290437616749750345811766586162147269426191953485167355589406422373989340684273214501793689060732719467840150291914750176404298486545882085022663320366685217909263376439092215177304833771797467614560963379280658362151856868350046805136449177958239770612259233290819676953196115673184920311774207125937535015711189145896734000671783557013632333109654739379073629597878064430538853628696219999250705738020100722841518032621366651310690966107711879803315544198411731385964907754460202262850813498026323389936764103681457825433837062082378166067157221738994921469694839304986603863475035503126176371968103225233378076495525299415411412936966877241398561405304749233988267830800210276503256023000794033147432970656709129041493486307250642914671723948047365867016786251023696016292105533617584615498789338820242109527913102950649793576674984944396136353928841325794888861340176563108755919716091371697905406796076629213995623867035046231116766085258347530935137977397769823469184620036245577621589165059620678150496774552481681196931360849574677715094142457096785342643021516341159012957039969662670223572948139533888429056500359952249253963707760806399835824666981425027919087252529295982611188607733312033083913853979061161681042207907635181029380210013195214960793648186682284766687080518864705133141805043150405701138473790657868227260442741529058428916002136544390267229315316040249967335145824024144735167631661914663666022666824113533670736014000009738201818511705175211127460040618029606868323199243687050567564517820240209311088618134370148273617306142231170805404965347592156704214461796065380983989621035426237383809967289350650527101433371007147652172592578020233847749556820628509807071222989257897960295576488496661225115508109599034097417150356491532813786357897769417461058020996500308333285740580231118584932928099107216599330817509704647716678153989662996343528820192917523332232421505728610168549034323631222765577252528199481768294122388638194043704397324777851672973662107257762037114064522930353588347549408075118026531072313349775297530784277381301869569067724453552847152040939568523149753402149305004984436773181701659100074560421611197277686320437831663884295739096320512901020973043625680807900622295618800185687052179140951432091240713079670190743155584752478941845334468533171414778445748299490856824260488206974743408027758337202419492672778470545142089475008724306671612297362159136439789661829575117438064922906990598852994922747980409540709577685689520009224635669381098899881700143951790656127419666557448753318647426627466555992766125663896990570315632338250332921693133047629639772439483749242592423284257586231057145907908427242706258057594983028966742569396738640740268002014150424307281276004727464226045121011060159880504928506737765387324337104367682369695929258495619172773780051792730441344691950878471986137227334765441944802860079624811623803207765626910319017096070609775466225565932228001071633375756623818094486662383952286975376787856679364362242943949321904812635472365855104469134811781034286973072482359258159789702381716452301593117440513124441426076838137920106668579905978004015964258166809288677706971479905645967926617440473843754750160685259331382425060227469815366552213626846256339817388354934008894301653835681541184683145989795981792503540338580119498188183610597045312332769442231509145415761058816355426214393431682679303864546532564661708076548743189982276236660952085089003735900260177370671727526778508322829826664802582896847294858186082940453771848841034906430904055396687144313475106869883373114817839036444110666841070166848544890038496952885394731902354554793551394291927818189799948121977282747493465715189919010275889582631953080398753799411454839798404274452143281549240866864715955998645240692976859661568163231070769922243124955048016865723009466444363127471174610318871347279965410374526856384921721927667060643733794831410221655228843578759823720394316633973321403666763559850548955556744818942286593647295651093489607432400040863706256646735100206865776764780144947856115923226914121521232237348322027404783188705700800641363671306500622910420290041290131117992097633458048679466621416024010020941437521855700187601135290853130127342346586926687767218366785805150633684249063674201439397936726217221040615682442088631528812883619122693741680523912426498786026791207279289009087413072255150740413210793175779759750173671452840670875475022920754898907519564706788094617658901884988766933034517403021806763728081350132685269992146904752510569919858549973676038027178041369439455319485298452525938768892842474299184837268014488775396395164728960247993932919137531712662108998583082894727653634789328017284383326949795855461388647024249762628478022955349977969499036932998069328012990201857871641596217600868594874831864743642774670470804272132934090311845651389678197977219495352837760726816121313184695391369197915202066805673007127953326707445439685766411674701880559662795639910283991609786769320638341536330591103812497744882757923472192373167755456518521677965134123834121587178381787319268738212034285509128555684247001728021101639256957284828737582563518939449734539845065146135795781978328311424557938512078744487817252126729346733112489600209852147972843524737837065189492524023595221432667816008934682797810046169169847627627810780697806255959231430468298104921896913789398535342612395230751966604872466863744269977062360873796535772021184950755910004466224887906837646304529215786420779708400852057523502553271606162190515973638205955937899055654816062546715088287458306869729111977826274004542434534552804490919222968754948259111011986969095579968065889374055592181256276076958874793917230704167747983754929786397153594939643206685078522783260603771077422741080737890514806647129008087092446941377319412013269285771482186776130520957824066640813871808640355892032729399797917276900022820455626396124966825141283760339711203908085525911324298618212869961799265277748140092170439089953215351753836404995594862287519044601709700072613775329659611759086581204499267813825665233890678334247968679958327634322070279076714020533452199777278868712063844889914077005143662835769689227812958580644956600927801519255934093686016750512079889382624573812904513073878819441689201195523908700045392055132209755875316702318203103233610469638390751448032152373645019086555693381003712628915781810006532241649230439918738387132341566129195583069120523361095443013717135977036886243588707657019877184186545733798268142895818015211636154847282717746519784356946576243616429535341321072974524136403152204642832505679824871919620486851380704303388841712068119744485786351385286181487485484366983353926741264557632765776036772397359838225431689778300750488894096738860523939163977468072707329645045527605851163690945157840324654929057774948117203410207599128641578029727709188799324211191056831088389863140665489346584561412131315218404836769506318711611324177409671934634715781324294878597721421313143427978780724782869857975619922006339742918872023621935878653322914705857005410801782460911690199011560390462934132427819412455244229895608325193421826435447607895842492860810504529854502972567394297309535352911029772107614615191761580267789027351168703750986483868077258246475610943500065379980417746149148507520635590633353119929383432850958632358885530596828385710084527352389787972089308262337591101475637778631011487635522782532441708906679247965679005504178882064228958616244846302162015796825353271286473281382238095840049746330519954404154677988476531434295745624850709316253412195359724039638937860345595422744425150411836251441900354373861406421787957074805645588406940076148276394717184772365089476766103598455191706806483409560252503727292386823494533556596282336679884544067863333841297385716231640353056612637485202200803895367713161161758928689353056802180220066758818410072440250151186228157987254328209166166268488938154769600922601747960395097874672224290946897912672715982543109284715923722587559908171623746489547514832815341131540729271575955049055455373814447782329160283239373032438952616375032372994360109619385120453644948226394897464485631072899504481536057002075858661284782189811858170528771169085628643308175720934725998332842783939216456047997215401257288823238669137048710571010704105971993243379486779666344288266125956296980491240305646261716531872710987381889860115378673552982243219807528183795431286485181012590532874724470284603318448184660464621187425918511574155033149159419352063113875025755615067916086195905128335545977659884195468060475824151452009005598562491739037721821345585103265280586106389814994872696127561766751282797882724489187138230408481155523422936317594580798391355944810950023501120589741004037088339714371891175407731250962830693438801978957457136189342618719275721006057152187124235485474519949701916667099349046815220168446946954626705272556762240242882208504010076034107967719919567390545379941199589852918740525391145819885289795467750512840466137854520759855846160606474882326968659080818852337981548921647708805291354904815953936271408570221477978526794221745685753192560820149808604854057506990129364673307837323926735633479422442924181285222023245293783078088508636819608934807508870689295824725251715085108796954177779888242968156688381915650644981573803673006401974980307108323185271969362211909912605421590200058455113347234634566453998315709500950662798589338804534432821402215671016268027678410162756476294276986679825705928681146282531231352264453097076368354297613063679827137529006716173737890986750406278106531926329734530361428692724407529630065428058660338924321870620039283509164248785620206241759253226697990841689520977544646892541383560015901301868385237791673320559358664899174795405108530267388075309246866659151377804965794567206703916924439737281659877630407897220986864968371492755117266991935157367854013151262611391634088684745157439953540667853478799069736697334231411360341442603056755259904373482033263249505734261601026620772154725391672657042657208431876924590659895143205858562832065701865517184200555537955699723098411272813991168747834104880752214748875429667524718512820694088600092009681265499238721337675633566114693281703245313924339935820386853863334820300640168498566708788513588589495718695185704869175858043317375974982994274497805029166851590963048046024947335152668035452038525020925905771614356140865080494771978523364115494454357371892639950153847952577076354822353519791091483366452870383977850229491678371432198610128049361520908948225808143568440975320787236264354369619564796959936260763839221286257225681883003329223991808327336444181999812240303828945698500457795435419533553746295760559034363858835701389361321268380235418455877883692582462518536234267618791254759603037017089904931082580380909226694141772619886230496975294763716552155877024824423684361112384037330580804295808840855951165436777387288716265643740755752535440075949132601989953615767056124320306339524969676221194819414084772001363673507472451384373928171046869581026619525179376907178906789393618083165891472275748589062896379088478724589483714344845515444134438182534962060329828463151669945415873123631494691175647437191252466759341632291584181989856353623762627449069121926068158623013460595446345793388748063488462317706075350755909898669648549810808108803706489502627503885404061286402134105890425968821024964598015270458025926844230705143341537091510995305812889104705201026760274577049024965686328327933657751874512137995665926279236868621497385242205325340912518601251274888831025301430942975321647223480548309426439358806868977241166985484100558762993421177042850182324141836352493392635074817853700225020321199670215006404137364073036695832132534787450754463168461799203992512199540203562437137927923337854674029110934262530204610143513192859630044365353570403715881712239632562541520879981473350991019602242782631819955288241376261790694177632070413994836155161111315815947912369636093820453427006036756513489806573621745519484998943648339800595609984705630587730139259842064378925604349648246277288751201966315229510516834811345881574805829295632020891459975144536990045684809230856042257618243001658157535979893667114027859646109002632149345023115005636878728001937857606709016356940571890405164682845023443364275582047605244332084386490969033675614051952410550959413184747015353767159343073482360548599853176682228106836547256052147595858563345704535922176966535327418793859613175953756714446534029854033651729644967781971474176471310616833647040194068569741011636675627768849072310158876023975819894854441268412280760342012673103806501896485980577658047476405465865513314465610705699436970010060674714582556533308841833526969506463229320197283733971499257641324709647428352198541631657561403503788758163951862903921764311421904760297945022825261891964947799206817842122511529846941745886827472980717912463207627918714559568853146413387113004378723877934166959773500404757457092026233210426054569479333899502647969837638121703605063639168815547485751705141292622334605387919766893816771665925534649079625371308845641605107723711808057796955569784435998909909075465655845282203103585432898393531119286992649824649956794976049243422501534793995733078057769809537504441467957347783295150126276313475125579091389957921055338146409886408915939458566903498828296746882939620420031027970010558438777811100922620019527753462633433189336385479220982633781735599864368861719470090107089040329899818243504849006922285182822115944171655128386829599888222130576282058859814160639730233786155457135937676314295924803143994736328747976424801625024492908287361635032374676229768741708603087379947308594467439882340953538402367664519259163150206927541645304505000155116342370806940348356919183508807499929085782812941565879420820751733508802738852788782298087131639245925623956652877102418372955241025467264819392014562344375468258936340499911279265151441932423982322391199233569496275824949000820174692954203024125967055337644132245869367157733761417957494749208731850973657132727795755069003535315249613956930704075585919858889569986692853546648362577826376414476290970895441574091346183341060167988941135734569492783835225917302509177941511714441012846119888084480350902758684971222596993362631827738810700379232305875437479893257626084518015838698031576356322455169771446880623161414204230467931078062864559167350348259387699725689826475874123996215778847875473243636034623434801100682082561411192968191547008783281912535681934041391285957547314062209858742588676442725914819972522438357597872177241948658546154115667035723752016653885382987353136804990719106715371344256502452663950605759778658401820549027031472737517680541741622634326006991142343259311960229981045292451072791819206563129252618332304693345485731339103000102310198567514178586258391750194497129395494472737809444890480757515619880563811448099769858058259137895101340957986476711926661625305740104198306600175640457617919998310702046703058796268065070357120348985390194965870670426889041638008275165240295910840205993372225434250850366035289538396274017922937360027369490407483432433505348558713048704464764815757065734354352595925466401678489846303242638176240878887974711656466575690964612869340965329416013663291012397267266263526023809447452826244333323020483324232853664854266045991145525668955417798008646665140880291960051485913666766184385579335523067684436882776205795392488543409205861466300284332852079275012712642224690515017435925505061169882221411419195132808809427565753808202061320360899748812834185466428239709568395477548145428588434259040505653281545466573113105328880188508940487942699133962066138702189668848801734437433605667330545867128394614214403540114177227352369334422033668893364210340301879550808221141514804247709165489020511707966658161323837309586975780832438156941066509741938106133849704047935558123083962596021182111344747622133425528134075412769980631703952959374675473476669907646094970377809213627567663700451754075837792002106990672298267095992462890572398897398287291958283964472228040070560081955984105976825580778828753096847260196685845022355325544813982714124951329309886426692062269527703696472341273675368130883877250119795295968558834388009243287419644413020175155920980195928583138224197474736109645374874664328892983490289823817762261848657547018852557494301509368910760261614103112902383686032738709733536803006232743510643231296877083540207120480141082693516155383688920121535146095170131697805654508585248672857950020895679188740927501366520936942887651154154750981056444866340583609196827280955928531140971466543124986203251984470714975195306425641153388304448556880693620064510748386386989297397956489876971531137051012501913333723098383736300673083741906839628767831952182011967412382121919101849272568303136802120499867120603064334409397769591161165248959444266806723536406512108751539922502400767183796856407628260573801647374208376695559541746380400997668532377522391690566805091644426834217237893475326442639404326467827764925440443312143109458920840908245794753366238481685875122381193246176688457691818406769977096403727904860462034563361200843404359766413873552686865288980207350778683521008591100292040268624456022234428509378256791876595003152609275953447112424709025975086521286123709025218427008962439615915253052327625484884865095736811175628196071554748855109622812840592052000219126771335227864470810135670998402020194950764516068929823330402177283277376966899981376064653779209384932058468722343945003273635901251900984657390895058930921908410917855281825634510230339248546315359725134086887525888974770914732913592103099872459860571673836937894582887916218634047177701018048518126902603606348235580101809920491043824827137729987650705603860381909570461174734797104454224403824750514517546534350855841570745268325282920482134775778145588833761997217160780673734289242868015457234759313699781978079463417983779798346110963843500205834622823952675013853774418916780317249994837765549597947699434739055567647514926113374203121734359485119342529729395761235532686000110897050514005070463205231493227530203085409075094881337084204882790856212716297631159463012174576681134337466983423682208659493359665354976590450046386260869321845331260959779527394046367479563404767406995519982411281109335891293227727576384495334562129897187957763847976551344209899350998697332323913579473617555914086575099827109839092780335697231793646653707537655202429771393983941681513401669601738261746019564966387294156942395022508058023355596837640408333101566117631176357750064266768038390063612176105171060701786469964763079778435693217759000190620328841340700912819117551395969366765952618953815295377029409006903612956637439682644262999335589331934786586001382598872662745464042425271050899138150629947160222441632746869341693882409224479257273758705506744528038337957010401761205683684274529609866762550004394845415845915366508539499275958335619350270436591611356388187202800709876813911192640820453388349491437451176404411573867324614231397284679589164724529779116641049714838434212229913123212616127995866418526214381763156488566324485582780096901224376180188796950765264808932533536271428883142620140489218470871562703762089621221833992009951665037199608734342852155947364702103685267321949654182512227580614764572528338333824845948542685299271411889004761490457439552388234238697554511675793217896529006876151129910572123755603375806514196372564451700581460280034000267105881645012123985356777630119205022548053895808378475294534579207923174287235139160433079050135601169531197347466467974791831665974856465961047954820360714691450547305342211625406584296514711183547144521698748010717551242296784748861825528522952721177400699199652425345272161520189446870430125183162329401718337818313486754975861365082614352683143917172793324644698887115183583585813591740097288041181663766095530692043406691375052429940776621690992819547815646694143141352107336182180894073008658468186134182529445002599365197316114742502047610326611112570003338716736462387136024759831678823595685121017273073045748627777902813380380862691417137424453765106353880153634963291771471577867860814606082856525870633909422051071051290292995157926974536873631795274078300428204381097917353773379880328880951296009445964914319448300448471433490069860335737198787892703486190465599170516256697361942770886303514651000556814621859217887576970435237210644458531387125458301646150988097953499464253290207389456849745533919068996567800789249387567510530825008676694894562451156331415481753510427988718216801416435017645591401516143998750612038201972122656673713845319070375690502070995394537122031035075974252182750950209797117382274419586853076346470561554852603687187730834076158666710128453460987492203468780835582674825456519241305291044059817089727086938804825535489382818976391367063629258526937127943748941423963099648050261836653221398044383386033236637136135160452104848087628640201079409713335535922970972843387221789145404820976601154328639113893227556118285171776768799112613704626666372707372515052030037625245036330551215720644532490858734663585461148642838627407267810021362236655621969155932529640872114311271207871243990897866406385499063463579653212214123282310831890620385489529227296516553470050417629827255353706242390422119817161536246475052513861092770516175545147810598881431679112840708118426767083639659884115722580223300684663347869678927567155931593676867647871216097893597348682080821816953419427095363553977344040431456338644959919532379744601321278340863753637995873780475854094964983210766989432707017738307584191067292156047934434149994864057140749373966646030320786541228350580485643291543497944222003484249889747930355790668677369034232559611792552379891554912389457628196215833475877511241105154861366085485040510834871936872085421575923633951259451161308842620299053989224477109672469800577303369156817345261694135624876015174945847229370043911701393440966043459087974672502743110974340375402594349215373435412385789171573574286953051689116571091507034653498547957932265050780191684884543763453962078590228903281476336690669386796823984597021217645862959353571178213851371599026455673621621182359255892824192127481152486281879506086795368602318338940561453943604013272587839663372951755015813388983433510245868101509984027924049971615986200173122894560722807889793904199138227342684165261404477083204028610553704999737495011634845832061417830247371250900876018486916045409736885962069933108804316653880571705143134387051236496357601050882618790139947753791288044196016750569606726321530538395580870071820712739774614207708710196578972604752939923937395966040955597484145790321726051351593300987197127959608882562300153137545653420905968382785246047591723167814683522405093012227194925306728847416599630430405751035771288241704823281873131692498193792526794069896177593362901864578637841771094784575731886165546989539501976117710187767224684894332094683191193261777162869228106334266220151265191361110457588991690116028672192201595550979528968023036749088166740961058152951028556588901737002440123829429348616918368081618655433424763973472479429699407336434646675487300069691349262516768476996547467026837777016468709794568031774907173872175898314909575530588298207257588002564084876357803054643041638688961216634848690844666138257609713185178377282836304266064268559640484899558922912139193598922125471479147255341157637112679058220776354227821167502710681209545536941705785525989987905779954850561039144396559444571476024954422685139734942018524681193151363620826846979998474252703384373623934340047007148861123165276001781620980070451565274475317768207405032747528599572460476906570742308281100985023829622251004824541996491177563474722367346983194684142782625040234974784826211427500462054071358106901188418262365574403290227954134838584057089299495680574838344360060736272594185526108661374455302032626406599187049657750392637093410217542174561478144709874464639817352759020560623434729795237085347053081023858066090470209025364672304876580121883760869415018478028090451572210454593810107545297697625800640482251261932855542402543835471294271505637488913938290819619321938378034601841897129459890482670831247985366461488560289756248649510404261385902749872856440352772299926248232735600997937086711164883775807978056882474007627254815830014809220041867976132725673158651040675623082793115507349462850979782755448075327579837454729791352071916624970263787882159313578946061144998831570535598845565953228160438462053079599928607877060185815652659673670268053365978755696424612878279053591422710374357241821904426454250112178177042558300626925744040535535960161939566711174596442381727478702931174963717054285681089912199654173703721553367956797735788224300883439077178910943844284688602233554910675739844062809523716389037288812939136172078166041681598542654109241011235320982089781924823935385785780651560449237809103588008649306815976464834870788383878737361740501636739180413938791985060694443642460839276425436562150858170071007576950309521282030609596854764874254700828452209294867055622883357497370063843334148716758381292984329358631509015865330501302664102478420882707063475102086561604725054971386530156435873417337497625656491085912237404359214658199432889169941893594046777626040437565128862194170254003947228372787837967931448236692474382538526703358696130886273941933497278674552784479564218712363049383870477577321060013664085491977758046962250323268756449434610708919911295552037947787430894195537626009043283718326204100294467005411067450558105551748123735392607660410307310267832057392560145366830890247803554101748262545788547910513531241278884343999286278117964871961041271248847156887479354389263012425038211436390667895144692481748133190416933176320254295580156780165849764618552627791573477549852325273276841246993495930650717945720208605221421013258229420067748512366263986295680343566858995937440397007758716994254209259708863550756650496172119514401364548838878158427007901145551943470645266567210607020174389863303731532814366630348484338582338740431770054510744520337299774183108839594563006556763628798746534353611749124065512771195508921884264584296785930164847939546467326179779401818190107275766953874962706949335323738318038272776759306790281615980210188547742884326884808071002446151773834375017009708311944064445928731878362159561096524824029053073992933095267727642978149139965752538782724604423191270115108621548876821059210518659159072043061956115468468318401644398461759024507177794404916892538965879979938939513872461195825347686194736332274428503253838272204879283214592226830770725258662609183173797601524230756399812871903170266135583683526222574636560133167433206761541233118241687091253455587853480421282713796422025820297936379121558951284339661933249850430541845646727852237685420104013989505871753775153605979950375005195213978601076708092475612384566664795963679111199326098254449618805582233301494621707784304855551482921368797529383757481737168620287300548930146697471890946178018905382442695599873020495107589896229872226038427765024729599275622243534118227590578466953856079011464533535759336154734410903937590342326608431166098567478519647165021625307004421026837397420654035040875797869343557089804371288938834657597680412880555491949136624873844951970633320494543017736109900697738057932080717282939498551651522255165267365336569979970656477945433769608247135551852405429447545037189890407471263016849532789713214505572055202276141112235313869126463211917834770668294785280509673386213505518518837356892481631056428429605270558547288737277059960188396393724673443913889608356010492518613144393943556137903478553544338941470877961563170639175696176952768511857479027429809142535260120225872230635672689491087850893762124179997135783919429644698154868516157057131142565780209409410050713354487776007775630742198950201503550946524848268748881779438135527802046541582340136879118047372247813484593422717475098710123657750836324480615842188528664888700422067983560179376841917831350133967307505324417618593604791873610796561108513649826012282012251846166007858223064282745897791690355256912202568411672589571598904619971679903140311808185857069858746461367789435267441236185668562310204284947562458721955702913489737792554953204054912274088876011462610121951649718539865798339277209977569783720096077049101486889896815020158933499049404018219494389775457567429211005520963904497962224908361843271877140613270256369173121008170590341334359751647106940396691215963033648928539254033301486366942982389333419167377146960077959629281403898119523028517615327558537734633237500827179280064772662506887084979987017466012724921431635767708596345157488356627314463617214573252113930688904118254942573194246882784649875862640465905706165092356901133536165196183066120908735039305863389155062673119856647271833684677331979714870495687556456682840224234195274350311383019549907572228025399149497133253274027931148308808891681290123680173957371716900042869586467886256721576491206243042285887311280558231277579367804311601085545726214567043461526746877192347069083998011791184246966690617833407084482560844312614209047006899149421810613460756161176313329697377447762093243989027289690975690474481376949367383497955336411855429788752378678989295476556409924865750369778295773018271312040205039158019681848062540761916187623402589202140514947398480932035164783757409938380331430365531457365947558920106860543505692664592412139630350566231347490474327396909691129550395964599514946276276781037801009141921192669404141906346666587762600047831562930883282841968522073550707057549861744013174840684446570335763948024233609348864597724146538779294005997154394205391099113418000033524621897127117131532050612119911822815259042458104131760851804739909920160105988462732036647605947878197973963640901706604215175456794043561345112668994830658832543806064791006774120929876882265321411691683990342178043919730524963592120893671204379789737570689169421107292706372311412540011023610794974702372248360725461331197996073356324071733825064064348418357731875718320269949437851512678407774427055784539415885003394509401090296343476620515536061268231547921852367849374547774420880065448570581205190751646740792930974005245134001981475157418824448836643696993390374285856971116659119889463196869213186694000523056098702119421783544493645886381832332394591878111540159304628393801180803397787020681902756001273569138331335648220633380404592007177339110348713542739418762136711433189522992968831243432155550932732222577754628931437598682155435988524620013558901118262877451968090213022599338348891614918383470693503201125035345915910706619799470951498515237594230817603859664973907788808336207890466952270069261651430945438506692257534833698512621810465741802124140539807555007787556634194930586838852383967308955064056323310947934596314454885577452848977820540463839628450106299280950774018777581211967065418287320919530603774037155391293067936828276735251967227671408413209077219368438375638647756008317858785071766106303811582986288091756164341573829172447441939636399780023590901095111735732952314574878880289550223795588225176220773144378673339427701714131070877210303866811200274681260494327676060903396769811643909846203093390048472104839799289836242063053091951012496514994217515654346284838247558139551092275726107606009092253155065442867061042798395212229779079365762215223607098171243459869149832958010701760093636647882752741187923877981979799437575904330276589474496369358039912910646506542583170885644597002847001192517128870667082655021178287309026791597215302753959239687238755414900104130169895829826944751567830617426336363650570790282548572870195153877844727390292211845778159168528559605289367612668721782052701552708367719632442614220233075650578680880194353322779247663683314075285795769044893423010559867394363804735119930832336797033117428438277971426388399792936889739352100479425852448013408329630330965615467862518472357515419060065245768670837675610895994004161774622220395838544736329691214383193201416095514560036925024467986621405926503397992345300981684842068825483863697360703811855778797859431284217591486131919906166770197113995924499911153496935359587012104087974791350059410208276116442849916824276105181919673473160170889418424719523495696181154101127705360391940942081793082540388256130324991303477153798319685201132220869558150060987701601457107065011683079705300227193119006989990182595457165169436860522134937923951910569737559396868189296746198287005243838955514454235728188802934387263519806007183768831730437197607904575199833165519494914749400775717938393798071933189773129902042780628817023637460293351036786236782117141742928784125235005270143648521093616286349625093488518399155304992119816546869536596798066983459624922602160380318309294051912221143405333111256648193454685813980856340848173332223565467795929175157427940033433981455441068233917675013709585235578575853837245718308616725990375889891595177680298579538957292610342642001184010802556159907366291540492111234588765525849374149637236699211134130602609861490907757367421228949262698848333175461345217245880428885307145802656251650881365061237286447630107691785513238838096832274671735931824554812214376902552587590888804432783315328757297549117080305357214496824964263037823066979405065604193103923532838240605771664995124295865597890429773547568504653420295953033662772628408232103285406458995532166985745873735423003547430594103536305663157133324598600841414404888573337167199485890048667083334952500313593668232770305412222161601332496637955838168471149395853402539070542171776564348090228327219906847896065415424006386440793604849863007905972906875122217656276542766301363650831879009200084200655540610930892610480466850273796758527265654858721756795662622322805065331563911966324831748158408561002594150389455484436346713956705467897067331778670656071817755880612695982934564071623974667212361267721718065629609757755757967314081383843453452905690729769879029772845879244331448025447353448466062448440265736429940846757431724565280152656047249404377214440104155909979424076683943571349412277554430298244057073073833724982186789232858544845802961976953151969584884648576309151790796856531446102248780398306281449325439584088493316490591978839073586245656841373074407816190505699247004500775737378942409436522832998056217973900842449422707609512517487329465729624360900887793195230475028699439641572770690564363513504450325036805218852199104471007825014872053966865567546707655820303693756005318583532356562888073431384603543853796278178865080213776408230000174993283291984141269362341924361444962811827884869906574809062875727127568140107698496250620745422949169058162638750423033253195740184724083363157934140276199510925323441588318311950750522692253820254099516937636265020103060251314702325814934893933256453251265051639377788986233373750865037303794809238922186364869010778713219516013117084118701069821536864076211407766499289136387809602235087931482969778262144756099926474537282977389926135081356031431203329054261672201649167873947218459356627992610189034153176347887996030550370154243161274432740825593043965686133259658781113841422918026554467679665220624233850276743423642927621493895590510991998566301644467246671473420986149953479354528821986719425853548181183869529822994379782876071607968776026974655055640085902602634245118774153821550251056180986649197619051403227118009787425148974107762952985653970454055879885078628420721132511963741450568639496804636960877271876999304370158979266318406061344209523409644413098289047058858738062224131085550222496371014516677768959319894020279611494501611244378536142513751555294671243687375675093254653148717159661187653281066957651986400362337722178198379308155531496839635104258616513809786406358664110640643501018012962867220252577405389302332789598699444077191312142185368375850752893578156490369409083195787550032570628788191592557456470397032088128993407050489413930555225697939047800750075568204579211961220557101686566244309776695774031307178894164971550691769058822380215936254675005646325905117684571261532947760377290265635986452696423666606742722661860818958512334779650752161673045971054746431753203985902180383985274100737994031629779023527468065738171658335737882447766817982219814552026151132805558961036090722537070695319643909803509770854260012209636779507680899975607886030843723595169087018740830792032451734411201994793404268375591502954787458512907812472195424744491819874115622823718878019635474545603120201695433936801783060006185177081571893139387005162404210726215944985522726109544853272097190980898712639333504811804643003451302979360210763220265847681947980630990689089711479393804227872936231377070157952099824036660132670715102777811138996101537165892715561898852764587219543123227799112787947554900144296302958646216804488156091367107755083472526331314329735827629284742638334878544727463168977194363587769378168358724766936706617419251670986838043589900248741627031728703372125112771054619980256956975202903488112600312109566588024457650025767237308579481658151381392755000780928887554376014396008139878606625636576638095129492597976541066347628846028801281054852452272733281462633962144202241755355987822896875990614494468191395267199722125986332259641156530016599656101727238002553202246733222206792532842608909807783774019575535384836179905443862998219003428264228304534130542396300661229061317092777158143671205199184246375572724350063166092487568376468636392592123724784651104430081835163000482997748042996208755125703684962395734690225294729502388776695660294831833366672773375795783313479926283689203446659425747310068201506176188796252880831822495478008912600695915856502027230509208388103844685223995931392081242590870118155261699676059375000719828547443814157002852394047948440383614761187669345730725112842835402311401713809523824429646549033137003134213059638738436601624887739421288279890060133914378062559997111940168433787878718677257921417707784757285883957421442734360709228913337052010312090171429207331235369703669777009454802008635708476078028203288210040272588513429860276042174840600960928812043401939427219448920276153917227460737605449228799030259445492573423731423013365858531197613982443289649956977537798712902476708518350287285688968491816779703879984226739829014621835959690913930556703308398200553503591900563842450504316991581168170714725898039148108578446850728683098682200645275186457796906992688173388577253699246872703341644897481869733801189489146785786332900895988325235388204313395102781945409391920994132305567524745832035281746769084207383409993739888216059064398732505121142006591558062197613923257159286772651803742766110891646063448343045648424369142786422341611962944828134262261464795380069508302238157148497004580818800043430872941363077448038018366431132139845747840117853143522861097334887298406266526999291082706723275024196175038696952314365922882209966183152982140261368884761007201786374846672733426935334302942192114149991877307879168952795749511919946540087894005925600826010809638371539762000344489625424674601152507435980433154494027014254460403930137903235791444614628572900412762948186503897221897384333350263784294117839499510563264783500267601272493999243026415817944437312438394253065142261762386187044472003165391137644622233012763637474015061888235593270857819585767096136246607089614919330538524750211545422774252108850143255059177000018781263591697354309936499405895011783887927337646408058016083447879990632247134632344135796978177211342936622800655330782914482981139806577047812357845259826231902669512691504272614259140606393333849379981466883201617803368712843202018928842048013990274142075078941291455723456282204499107874360801636428418784422543505118657785033190699973835858089967652927441755054574624663308327379214969825994467155292314405988220236721639700570798420765233224363540006952821579062140245905582042124527085614123661232627368998889708402203230898256157952803896282798085623479504596863100605690121772369714088014278992059155655179139934311244095858277592400469283739767480054047663258362623544280090056227614939618596814215533128211680595356988846155441608593365824777014732426760794915596930151928516889402875634155842075570112594947389536214569498753346021713750647912842017016912914070317846191605294503365109810745142765533257723475593017443986734686366502468910676171041277090940008126440812624024351157364100587138758246600275836522713934274439763745186578386065300003165943797465161616542751712610242665773595000330593904203012095462381207757396637199263402435023770246918521266589651066520848751939973211835424153324405036168787337432002954094408938333168770221603720814637290164186840377971925389392749548717784888779258159062175508892872013268276344296089733115855026119421820651626834551955146013506548409479063926417843113802728458540712649930643871128057370939401787683941059136218000210121343727470274816883133891997995851831710909952422973924323217622990009828714610613179279672221176501025167828002185938312767026483945219475710803303557980110989026818078635858041712934260799403909032495239517009584405459581599178181606390206746511293697256569422300821773005473136936822037986967723687172672139357221329607146818958815688235476363602201600190261115718003049644264366958719201702440300904221985142811202858220006742206229107210583839273005037759298849668653901103469487835099066616381635510553306363583084194240900235778986827056879811282025707474271396884551036747443655079128521722475584417223351328819380638949251027159188939361553292669252849969282045927160237158312167230824910762267228600836502155469002900261349819770379672281177124852990341952090473374843116819551001942272549431377435095200705237103208119349692524447271324997765439582144933163586987277154743866381347354543311506814032224892977932104467966901585864100859484480630457537972493642099524155923700255970443005511721901084971399878581136948501814336869577993212363895480992773453339239879774310635317333565133522946121051758800610288066108038773284179378807367577166593553534890007138007366887039168988739427530676598424482865649626941689004462229415783124147442426654082173961558473104017924682940779535188924295202883262744933980123254648473607054896245233871550759580097980528459964375277360117116721930750925932595600751781728116616328047505686691804022181616066503255465578398279662890929199899290186528324975352243510593715439490842514309909552579967485736376929829578101032264707799152685099784349278708039681835531169197461373008160123869338194029892727445652202084542940907904356562246396663550731239420841901399153002399158274964017811948223613978249986869537186976662163685251020474161783426773908451969090484842474836068684831930549832139951552588777699545051028285206885945101365739536342315864050616688875739007661972587669399079399489914824547953897092129470498044216715325023887599632890261930368682640143167821459289884882158387269958554144885906387624618130959137029744406096314959567778519652561823818209292593737781250616041340811705403743045672301236611936365178690666619988337008714425256100874154798526029792806540616673772718930424891231226844422218518752422414689268206923487183827525574269715763537420828579565330421437518657611284844614819288912752047101074883381908962200827784215243285538853301424467614964737727033098824878514912517984238821870236914530313511102985078488703569321941244533208921335356995323870543248172186076740128137721694055787362483036402030667044156583596041446533318377996029550849492633934566779576657059516528586566997618023635564577581084141658747854782580161977856089860836634926869701900593793684140683690798945153637054749395835474134906965074901552999086861402920902420140777816264155381073265688890711569376228295296163886231546947136241821617751959726543649826856034262616830654072208492431988267733085257457952448296140785467146780847645064414716203089087408486567358699993755386188801552417546552474180052645972326071753026916468957825252366429464934864477370410689197402358101623971219435851185413761534946795370839013706749246656489141472879450180427359653908959888487610875631049470857524893452236829370067336688301899148392035806617408783466790704664842402420420859199439986263072183663043658772899229264297805902780319550017434630059219348604967621406482588204686460000278526227319658876501280853943381471107588493635535288669783701937169413937207244990672285650900396535314069748115247413314758939638463348238580698001780981090191883095028606298030531261607188113187900354617983298388028210904608725024791585175417688589617151925966788654487172739022738849840519206780252798174253014028331593672894490919420149973380925101088718600435781196100903307092047563103034717926335519200433053231752233945445762580743691092129751624566176847515393854619824182177848745648148835706412783785031232717567790058863186724938588521516513981591975055787085143690755072070854395203939238110968990979979324737447498106732178468999669243107782903807231709300594164620517338537195690697688722359707992584582838192372443381762751466990918335741214630234126889501155813285785276841700768183449496690954331363545266152137426590156688307122207773098294929764489361301145874241657356764058853235040865617497545694672850872132104453804438074635725092943825625360546467998265905415478149167645260290692810260194544171644545222062269192465932954772599645774079184406750075590948722726954638789071378702589620131982862092628839572939342285611402732579279862332464843023502478920646219073579949774704661835179019243371446001807559385246465275559929047474626637426105504059971510837147634941969457078947060131396505078889528084755834959868000700934853411175994596131957144565807871730619191291483806732876912289236603874750063632691257639505593389319265896929954014035341196200750099755876437718549392283379369306632423078027232850545070551343526539668202830794850094055292728288668223787349094793737672835998953220042938074514232562667508814844978661130637806177573659400216300960573063263362285353626981524163027521817323328228381091109267064160912310549208536989552320649212257937032092571125305035561172176311183926799688347422169773409341285427208674471804449561570228800964382054051264289975442021587006633216981531060470563915684167362466356321623184766310663752757894739678173095834434799928068069581136054326834937842842685422162506527520787603297273395181423547843214318538423616946281462248612302484839420234773925851672658606243676789587743667511724377314350934574090144028495470081003521936376732587442131888446953708062144141878254410513289475299791234856020978585992898350719065501068832379855234455454984953277189544479641779770179664574928715817238788916114753309256254590868189037025709056097324825559707307070045500168806943741656895843562494637947705807022898343656910219322169967318732244202310586425956080009927947761786334433497135569303661128249384332323077943983271598574515988441029099127348488916334227685765202612685336968218428892749331168567527634616211590616110323050940273039309121314366007500871606351165388142447566849752980363063611320183191916730322054646340885806621107625176693454044829315954042083900853880349623772073757730379278036954138689786866199757138777624980778872813895507944667794097588791362570719274893052551900778843283578254556988672387952298858970767933591520155789312907294139272516193763263807495344933822554172546069901080025144891925880523159473058941119917525192640700867061789615755028733732957795358892464495760451263636938003130703680601860800088828355416029083469071754668636500351700102620869621645613400162178043185049765150489583364388244464587395579043278295763180771559065484018022791976814454593696803616029796774036825124886104800296838281708366740668214588402995574246400351463441474573033513429775864939374152618793305113422514495860463746441307612123807753704022136018163744600242390196642842669673739287859527060345858946662449388177536169799708742556042178259008718748461895928001060076850605430844182506180859542645646398932130676038268760555364244948821568289345583781956368355319492403728165617584673111972143315850289305511165784341114206983212207878559230959726440990668480152111705066411044150397938670101898036782330508831342882967138480524249811567935230431871946065339120812342048412036332332760182473590236642194655373133837915378757549463971014090662414085820935371638060987439749906653155698974606640910496709790482525404801143601993484761565878887751997677903528984366692389777900938099513904597143320107575874308170348421204487726910359569554542464765512234236667139170756462535324699462943393061513722946456823107242456305950947122453082492177941415065132805260298013595261723596375743658978184147076123204661771971998122678289537881703551756016979557497634597851366426932715016098279885677765580796513476295194129710811890894512816069776077940063411843214461827542743997099613351163990030907959546220647646337158906770716221044866310746609791619299225255879104592430792377019328918273613572097824725583541413257879803763114820095679266637908084955470958812294218143475911273623817292589383077210746187916106545163113421430356503895337244507171011451704471979772659846640559591545899423127684586434928098745569628456000577570447151440670182142005356874921181076928811722536688135601896274945692566734712315515351739601615801583402274287761401057760901343220368822869625974932270577293586681375542661041622526432316654399705290854019581057630350377990252916114092848578277768769579471125139408135258903945996097267954356875974349110858587012942422237016550474999281111158231239654450791701182050015311614149109343233244901161457792876138664386056424431197861877338721797673866329213434125006896935882650834449154805229599821539228093052544767230149455344620383000734427198454341079753839144148061252093973937381948054801252569683181151752721854492184525960531637576163665186800377084101473516430246430697392659532955733995997125892365679196166056526828528559803856963799304615177410261939165182873138237119910206409364703617471086373638184859152560876311890345077528912892711270780813382888462839958835812634165024323770277597680861909109849781903302632652173362523054865744948710333223363393222574759871756006872475277210403121565493661247345588131754544919843926799981614419022210077281174270371299836280213620110529666912187242536417074644743706004876277146151111723260232475838242056156795247878042806256010576678234184922153491285931662133133521601451093835012448986367830130511684499373360315237525296238478561246023903707059305044017608910148919771798134761605470119102773938351612989692274533385213146450560239568661961803229286164133671894205823501155600754807980922625051318880399945574041546645036868994205352965625722596611949838465104007394869526603400455524981686444699778204684705456225086869086523203494801825381601726643076015306124135653241761118388112992401789255578126166044025224240821178768166065924525156254060281422439812540208871061254065157485607487251135617725246220202728300200442146845809765978816066023802879208455483942848511944537726233412585912030448699051643576806914232149274150865413019426714400369281939481187121110326296665331482952732710151557480679257487825547191514488183774913036492776200865577128853972590863900782069704143454006950485016312149310561549396544123030273992196898030032073533839749344845570371809988028417692092877346744982255471337808983038891317383595078264683901874844064668602177553461201097967940653733721830009191123342412416408002543604006491576731895451581090901646929336251585357418349149254235864425803274393642279242697960944881508021326693194266616323595260852270535153139772075429525791100264831049124695177573791444955085072549274002058618191126585239165079296497058231024463378434813074716476635556097343589437350240920416071688757525879800400470662183431881138191112574236287976206889548339917560773702284571412931824209171918582262644332463936565360718258865192822343847593998231194822450478243647035202485022709601090138954768681583476352032677214806025424133064969227365958371992413280494454463510533542346857981338726157649430346443131530364997261130748951159435893949955055978479572936078889018743099143020584411257402271934498962331386924745483596092500297040250604792409388010265100027329114390444854027380227363759288714991888226321279328322344544461830729067569425346701045523435201923455966475812639470667643026580111554255761249600364162682333535706221227599006130685610605414171938706522699106290888715967066384969249988042277973840778545933356031889247858708696645686261641832394660075232186772267890773891779622940037601552019278412611734174093352157171692482579377493473972975713231826006579396714403673402932027857409587778626370961604318723068402584923822597465768609613506865098292750205646560920766958503651425336291817263363649095890403653160054983385711466894365114915913090517613687564290147569824024846028656368772512587568926420533741521279926587547488691761089965792154421631371832684440957021339232075757211417376423812092264532035906081420208146745663295699751763105729059278015315517035181421903216427255685514621622984173208021620180244325314503770659358663651825325994695895643239302333782998180212807705793936650343913316621762795148329169559114275653360684975185083880011268097190377836736758837875865910514855079907358746686918886211562483393934043233902543362054409336468979199185219608331465116384662474352395519800644983530722586154624544831444550161008807641822798626783390906855193203132475543260072241608547960053002719661734135613680084907834886555995293396368999514592073661225326974475857889010530846305308932752232853131461410471544710385730266092296775534651840815934469052816779496152136448846325225820448003550230368752957977412967206893575653404546887368709000203401284090560465687239238714123906501631983728603004627270147884208844354546851221279190441966806804296680901246516936923101734253212688122403266711656199022036622294595259118352729612769903412506905996490505754445756678476943038282523859402764976563263961126051799094118985189989710639196853026647301982755652964685848428443754262523422930051644834912536363258406737191197598060811209408631493353579464482138668673594816832130264575905443760151786465934020597346575758850339906145094637353995275429741238535789191015198683284259617970198422129294252097725105046836656063094727247482480079609679821805599773288374595255208674912440239287846849338324876081813163928812022197257067299245634610639265256586522195693442378847225479953493221226493406123568141100539941170277965704802680972339969953983598999649566362737437516987460686210041530373437451795789749324310520547345552541404812266744092739683342522017515704855213666426049106862085191042083141464248221496645352081671592623342191116383601473174775554527161209218462610562491164531986701556561471301854050211452724253777371522819125507447670855669118320470164426489440462488897633939876547130830788262476499396380337627299145739119990466349161546506753876823193188981815908412455559436430482182479952370936013713054797359478257923710915086731417701273413456085341116367703882418591596614435167356052037655506685657675742987949911291207552108727523948544880291910469151449908514933928597388226758683162346866742486657916892923843824110843716469925435106889393428093127216832156832540288208071653486893740144967644448850189066186061260430636290840337951851082107152590920910234906611125610214291822019463471226114892790182959589415844358730670017950796387281760059556742387288993953744762423297114020496677084458279231917393435736601559822681071969229990586526221019121574105452662363562311212896071808746489612138226809984155498393547619632795880298773301061298351967751953741916579969818087225379274229525018874005285233970736051278296293585998139185655651105618785215957758861572199791433381211947342142257448733837613734791815616256204548641070099915597067561197759710815194913070870107502600436366654653132465456972354091711532333810336050083147160468802354899079781126502468803750938454895932194421253664245776632372656742238401269389070265536731609991496370912281250700228806713475397352714494133885578004742246217666359216331682400973580290708075427122714949256435840326468211532565631926391286187609824358571542469778178103975843898696307216669110172938054363644692532976482934546192475944907113339515134098439414941255289669084096540649552891364330639358153857477742085908456137904882321073504331519591386089891958476026982133847671253874159486827365805372640036504176601249379277758627449079097671429516581341759952852778057802644354882974899629282314901683943925201035928355408125557214208112380726904163443320322745980223184876887372094264881766591276144972337626193801910144632194400981764796178709796246846884362487770459390435922436093651116942710536903288859442765948963117893529490248267743477134650924206503579700845770962736076948880785774129425225348130655996154066659640330924193705260067972722042307986310612752472750529643205458315647817467824809583856076531131427089748841809971484574353591937600621990471199754162175986117944143934061664569192349364039584742468198338622268667404487202856482769724344973494369355411957066053575846361557324098132500797243891358350009974411631029777939599777968337282606901076359147770357889615303627033903218257284763959506902788657125836613007230421266925282224544062170968725339579204978079082217798884531572672587271706474972271863491808104598441237351097822323932347198974980051283281848519351151481472412890914952345108943912335527047282249561020464500293553344234383076486090769829846352456679982760633820434875193614031824717552715351421345683969852088792567699847604453851862353962054355354308287979812936559721511125264497603730320978909755289603420031373807320527049629729572481613775824335970206777034918529017931301592074824967511938289931810807762496041834742767186353994479800965943316030913960501041078303024718709757527306946451765902035528598745162889962440076428334808443202506192125982265075456809713572625426401158441398992849362720419747182842679304589656240556003094768644847410099491046789279163132096216217630290236408676001005353624073155591689565521444202722719849749453342489927454038802151586909560438043448334534579955887893179246584913086528121879695532289681954665963266762695413320980933435241452689883935333418513542486686875730016747608513205265956186243828645107907719781795631538509952581337663991943270711795795411267692653632664975933198708093960262363350503765946168949637653049049268049330988861027085678480332915142930836511154846713676305148008844471602324122342640037836361900910687442583377380364529882235855966772071251894366056803225398479822057484119139750078932397634074614440589644798781964925776824045535558896048955433846043948687144365574126182907762043069501086288804035596550266896245701059371767797915005607609975029694887872159613341222740021651228248406755445999396293541571198635512488237361558072312102620845223960008197046669880981935301832513710300631323566476106727578778854151570919317704458353466541076064059183962970020745936163468147513576099114221123847743806026619345574721997708164289504907024357662163611638062006602429694767479571789600959017680286227919765149658284014266867983488002640355228905185857701801872166714873460562645212235647855199221937209176427164896420408426189609056368489568995578638103683829658327715527231201276346709338993883236324386030690329890028287459451058625198740450092138028598411705812728212974373962623318929976965653355600311831155917393655456050513359289648224245517246277346799328484478279888158662114712404366806670565900424022905949867763092468991371303992283349096896554860246602092281563585925330440423657915834062647138807133016835423350379122013589669532939433465503413880683084612952042778851800000940751138156289223501804600672188791972910452001488851965523372954421230492050104733533004259797689430520578402797644427131636072906756244815186517745743183483286132102068896420907605202776279454889548231362561412008484984042044220796493455750557995928978379305333889120018226185183722331952856736653622015714890757899965286224444363510928276099326105476605586308824296879626141970818516718872747752730598751111444594194892440974847715270734309374464274067513450940665197179655042635577480927015742727034913928944848387796078096306529676517008658274727176309249870820283263349500111489158636143384065650759218648168388668813508990874262528734665718514750524877585838758161826433075587454875920718471549558589049306552055058249329816574293227821722742594421756054867803262668542928268884803159075014195938956303516352159143370198972781825721328647362155234275265697986423233592764519974514102767503342890162785037207004799048228952269076260841241183523049587795030459460253555778628533401944601951013096368841790416002410923116862254022706086920815818292076921464685847162667685284100324449733016962500701204243180539501523095450726250092802032297695331820492792699354017361374147511149371738913660459767500827801966033570028620400935312712270731598678454077957178241374545429627286125429102181985597257813224114466924189379805424788746223570800038693561068380056579692269366108459837260401718358353227121564055806328321081212846846237759738519442115874605875538262815623324999134934312790608963759600871366252548569175787681019519001074286013804302060915249234985521908412036108178879786697547547136331494583409260416538375917507886381145019439022480278414050392753667421238853610330655603570387928538237546558210277870731780794584638659890898349008095636362638327148870941608899813339135382366542564691718560237138655547152821690693742557607985950625200473859887761146114334118321186137831199739287650862534945204383105775235910267228550732918369014825209059925784580342759444214638766322932894330277579291443360954568105980334409471654773027873033448453240457770140662913819643977791234474981635025889390413138571491771152115847953470301127050118746315427665613718957859003665311635080050851070316302525951851283927808234355846176359095527177440032285389860374782721271956525109309105285078956969543509522985240631201076205958427408911771647322461274170305192759558037198083272935415648980647569177718220397848000399763250942406098459600169785645811777560949538980748369460433307436842153771438334938715182315379744820645350547942009542417030711481183177330184309465763694702478384348656537254204240795228313184727732763731178036651615185532055382201415743204678097809783213790191997949294769272060548472744017525958791091983511188712983058880472956682225012471621057201630559279533391438415332704519157625341749297348820058598228678459527624083349649149791949110506411251277032522438816988156999096984074232733029133047988070755941694951534865739959980631434692857708787046060137863503788080333102734940041650289596749476989625302549080536894017904718190672161077593456616623607860023894470850777381989137180813548513052756077500570254138743773850416937515802165306212821086556513249503175157239685113597142919720550597464758203676957456530533516342532567742774111516867862324397075502021911994407241173004213127295206412139076564311782096849387603804694181907605848437702569517318338477410188318261597720771169587296592911948503543587706650711031576076771368321811477365975684564201913368645720836929392004192300609255210428572264054259762972525714981644727960991823211220467476804620478540788158830016877975411845179086180076903873153671114142730866006885370513335910650793256088569886477966955984347587830101930356651277555904563727625169042695073345115482665981852504605177232644785569350734588817205668973937841582648059824308930037140920653105887001353684543652965083093020829233233735210698085470348665472777470740703997004797849559122746797270690990916200632185301524825265636036069109265835665863165243589659148819100683130565895700723596943966014499232784482428758825409565575017448168491814331570177603275588594192027772835721354906184645714289450411991138825418508506937165252498945698793959664200558879872205592015849806184102819285418453036532346018406035156646043356668495782568755063794431196223750804463918728991131542112716218459452790760617840063411160888232154571236566041214886899043840853602968295660147842999434864869354017932020144391614361437847017651951971411558899673195576614410838977494498263935105513924075655097550849530182750106402557030597366462665780006768774785721140592443154901772329099032187240038524841100254110886278657103437744302469772184465763674329365165541669130711373738009826792295558151747279061935115285083334115087495909163820661333442980148581167889576036080586326918062293088630173807464595552247678095427114575990841847943897353897700009086199080153737540633471167590026693831203179543152067383087017279030518250940467113293651368816666228410605410803581781810086021404314749952006222279319981549204801240797898566164489575850116173879006624802128716015508258566792323161574111614688595736794161203905490183798224532101612269359258570662262559996399763133116944303230340939125297805313718057115113774651158071102237244760638204396068902697556636489338040889448603571167785849877917538009066492039944636776261531423648247696317878271283548596380754783508960315009940993140656513983017313687379668234636159255095593193295287557700394833663203470170345752095280871657313068501716930012437805108514490689722432697582532376060342358333493605920509332895654821339360553363440348370595863568707046164706712419918607985916105381118540212079733038340634307042612172708671383394516560106250519569096117237556337668794623715724221758369506536826763115402588454563243555318851573587851265041940433511569794379639377636073428975433620862576755217845874225074424279156219460292179980905680152944269754836928235590813450837220182985037590598086159525736105267065940199635777000783953687144947673425608393670625338247617552860369641955580609714036678437784428711096325584300431445641687742199273857947387339372070169062868559894382900018661247798341769222617887646371486210753806041350803480044114498407402145537917473906716546967408705675989170232641840271977394430636241538701458511094435085495643169592975453997674882723596664363534068260970056751000931009538746620525793987445083698391197999773443486020194079764379141719011525884646939480351901169061382337012044286255491482460866281606441551713696886999663770924454636103804369727439711357379195016733299471648251644231939177021588373330531428838142569032145436043146062717902219662681411035199922527781626292646794041511390046980507002251804289430510529024532036299324054926726688075747043432922132114984365477842077174552577432672192593689584251503918770249284876547454968831247139114542724303130249385772163601105672823403695970385654773311066158887454537974453363524900220644827120457622418897260982383825606008227136874974628187088986791278159077136892408928135291430368110674420338468981102706407827420126724193424181159726593019877513638220897843882547715331114508612044295985140753888877503100644777257951294703100248003590341997597237458894316624779906363765552324617716091647368532329132577988170310982980396571554405896567052947990219577437465181974660874405330356941451917302902841135253063657422449173087649413022135074934700763409391498347476470718359749183771645101674509134988310917735072193970542773818039486479638328243192443607614945475926497469992501203917748948932671229327784006067849118621631251855165287977149950256522853665793004208861415375504715942173933674708093438762009823246013370435025513943906121937834923030648741935971162220381091025288102105004990989076964204554117895078809922216279445947314522396545660438539456825934990150934402072094911822180818116420897826470026598560742954620361670874497458580310737114970443370688180287540233100581703394713204339090325803771139195085889781144276442012172118366893599350096587770215270336329148510909638145037959215623895787237143918203225529752391477247959083273244281309958991209103854276150521302440197820772924360488842542417213970325163726461440604267732713174319768845447631280391493606917913840864855465489679338902401375035475804746112082115509802143353625564274240393011394492061555594240580425504502961558624895885453489145705932347040961633933193988423495465600877243204865916718830111107903134195163558901833601886491346320479874515654696558887816129418888255865022244396920400529368997757970374954811585897282659198286277255915442144233178675566619484589433731509342440613894168161043306695880911661497167774896139276521790109487133992233769786681720664535044439048242021171366819923723575215923564275998812039255737314138692162069421490753895537052485939835255158374712356703678362105027471808959188518321139072622188208641047084208284481619483451783747550310986972301939026602773848818110593089351032130859935367467610221153612046160724470201143455578767203384003651319987656652135030848713415852003247333440628978368684511050722612089817403627678889208361206872041259260150172344194791529468863772250617031834774471043410668094348488009850949828562678370425637318993089495357385979027450826445580004449321838901616798265291646156309387916884035926673974041559687062538587511690402322160287187746186854979947781825838913250594183868150127559040560158209467651495228027837608657854880631464984095929768276394649896062075461629731777596845794245011346697022667617550009148250935788568386330629212797901622325631342499369988390405367976299216091571661768081682529272098574719314384542275123130713676736024051909435870494163137119524218433714772219857044407373351302085069536576148685301480476088089693780781353055277490273396462068428224901834525323375496126280618758130622050763617457368495736993862292723661217342148502310890169806735636567175401731788791762681147332061749000134362630504309066755584358113282055705219028426792668802575437952332531489795294703601502014845009433878806510248849434262759402868667404835186765393667814304888224295225992596695608411176323171372061275561893313674877955507720479026211842927018660920967683146872577370158109950001138634650482276741833275561798412526156887635140238960268931385189386986432003262159230982459131405264999541143799185210220592036421780790441823693233509495668812226554339143961133863952328139353946900081504083825882226415620524392854464703632749128068035793732089247850025905048174750509643415952976829942850365213440709929300324094076774828304385062740879998272511997897786403907677602690916208865050674161654053488555236877968059069710345967741858249665419623689462979766507817845840549488111009387087892323951987163197227941473628798886051698470975402056506173179081584575548171443409067768986380187794778700972453630482647891295386759894009030022150542681578939363081188739920406150149532787711649331795398741351750874447317137154062524185113598945379436712773124880562970140749693138589162747997635430757691143062505479111394861092648523931521629725934303058138504825876674020581598717250183547656426652339211865212157291654922226699014793838063939373959484337631984016622076942746752849900208658220132355840567768806409187364183161657962642719872364663326171077175102395761313963425889551102372495448098337471951507103484497725325118805068780234608793437880600282712816690717832916923417032313068329752323478937766718443664002619185365862869568855510303818833660354073680838070179908982731023705356846778365485557310406714124588517015170886855120074115594673088634984987649033672973505034119432547622403796562420610264328200672767610287594786069480443868534152184611717563998185049696634650552001108682961972970003856068530332625446064054562353206361653988270903366669576458125059483760026351642436801508238760297968741686706862481804577474680430090510901810295613013198321495816902978058554146081640914942307874801745204539689741107491374592428240101250832501148226365367764365723234963314744593242361147653320877297053903738070509505613257163270819732862564908081584883193040377546564056290056745839983555445483334776079470987203961969335044497257990488759578999856549192078699465505062427818367855208583571935242977078444462679612164648075084072987955005369992005443235872851567541132364605134002040656262644714997947391720426641292526116890863551145042115267290072615501020959898313968685533779223763552536025878530949286760618349252145282390203101285600068455746675193877102359628539964371730524156392499781338921272588139543182001807255421195430249324999272403895692719626543658975578308885086839014285587379696040161171544058301662446543536168629893823859217187587701872954027402996797214441609567520573339524875133511301425109875143510377680677094528170418570038885766013061950328200978263135763116462682105050193804872143039471878100111777137413975175323874176916012627337575223552922607282078137227614945860296589533400753663523924690066028297279492202513311895166605425686125739025872652794960184945566340978497511777817537152902267088511621815432945347592581103877056962623196015685588672123603032107340257903632391344076164312869937777714655162240443107842072626991267850134932520074154373732106176730136532810066263205503644474131271141122165556283408979124309827100978940554170716202734830947053209590123121778011575020498458161228575176719097694287887259399163202032747131420750455695673377506019465443783388545927299879970719375524149399390100829732592138917379835925621276565315035503529739861980263405625269117208563103141232728946590920489591904696977809662349047695636147121858966781364843217958361570834202080370602651217146145966416444944359734983862804819301506374609582705141543296100353344885011605212689726043309914768158997259612155697715642771853451266682733024616402151924181520931287565084573858456395886745171703587359855697724389555272396181808917149656728085539618987946559849532965195501820291740730352308548428381889935142880425943972027498172855553316806505142476133136420074456300870843861798654479163906381152338186869452088972304793482842246117126510942077741583863728697040105380106576021258722878612380696863691163042472686092268168374348204108569727719440984200384868724067924077455649905797280298357027839500804658005015951121872565658210633443312442110167744518471732271802741758610218928905505720893093809718568380313658998690826204356604520498473427437248445492971801278425316177811887769495508507119664675658678796902169645755961242816483325791067278895565376007180622453398289312230625723798403921335236992133078351922881727868141008863964428967742481860452835178896757439032625782052762567675405720160994470003460810116291771621806802122244988898954661086168926228016749812992572475031649120697449085260177922629471333173726131923209366706419879607986392509235501383570824829750040280206239463514913910356778458844097980296595354685450971139614929392648448606072363937881900887812999509194850389445027799898360605305094547607564693318025535997196829793686361621312420424306510299989660897099132161494300735078276011681649235925825762360662826751666951849635645997020746393336975124723949921454139613997285598435645357608410568406473747159170017871184685788299736370437415581439668158001490749058836566353638427779170749883060351641346503277230018764670773797470936164372343563470288598953275166737264507891043889307441884976293460161759710205098209302096761114024335092030206274657872161019943816689812981983961525975263060542115060721287993716476003169144719484682194601514261913385663901715028075597574176466891179251648907489647720567268625073942689070406520897606639968626639530470915548820213518433147703462152005738281323016689472193207218245965105520406381824920544903400824832338431350294376378251501992549672192773622078791913419540932351491728300930648650212902918753328535473127725761574242298847688852838841519283569106504139056345194939060365855876980698251296067651791280312256585150859692758773061550916548988400366375094574596858033701481976668922598005727365945126377773043755172803766500103442967149944805216691342416995523114430536927839987722947128743588405333636021374195810016432490314451301760384342727406833244381853678441472498479553327404612808112119048832703808349130128800542423624254401539933638369628596035380841884266658243442952310121567485350185505851387576949576473370355410311347354319129607449462764717273999496884622609016646861224693994551513032333112795269366546899935908993649476545572804467605280683254122671224908547835335811566023483648317647200966933277838243233863928192579622866984216223776057870673424510485754405160149816415143620431186039687811545457717082242306675091188121907883903165641888208626512865929481231823847400681139470725036260976031329840629181471135303702507599870771735091642516257533970023741837167097062076685153808019193016012539250198113835649081434372954305819740528731014893951699357956051444794852221694066581595151549503899835681353832431482089638498564313287191004693137945315718415423914597308260632104708795971497387451701721996105912985510953365747487202886689578478996892824356376062258350326525102912774024066779691381313801861409690049196566044713766644530684612179161639860198044375213492223236936738151116371371254599972759860946757752110160624456134897804362242250913709474683701071512745612239872680015421744104431872530187702716283967944911142411959304240539258404537646587225325338078932367175824214392024562097008061568015577982488980466863105384968571170144620131728226899959241225712449627969510954377580924085758965416375045963850798329260760572497323197638660710923551916968232740503028974377360279573688756690402525824650192684452088139539279771272873088072460265588920493168049285542250082033430436824806162008430557662064206009957016238056722639087347658081704069007175103248263003411463559288031599561741702663325898643652537763204300842567612094424711799679710781893869690403512101141068920744113441914938502603744582579249592020039820634527191491935893468382215186888594977829547061371008148847200500719636309290317251652946663577119619554782650725169422917616291832956686554483356611262509358737098712482526158246531456432380818426836300760075669103945452773268548976925931273127097274015032825918894184206804108216603280323090622672202491114128549869368302097885560749888230442711216011927521986601463589994212855135851459758639198942368350116619542128654553860355116670183938873339178504509685670384864661941976620759390518477190947895588127822768055655257514278352934988700190993293360504457933033426267981301999553211707686107555333583179192579704075472555426686581255460702291843510518795562066433970434798668754407104555018296554779447872807412631231251351820281903211171204356611151517782152736748506257061588066308433620915822166414773810959815465082489123073241900061528798200042380871758019313552228115848645068126912054028438623584302225843592622550790015142658439871002536535648724317292691552326652439060428446553465696899905526098243045973109426709841339177948103293682559895256957825689817407022710230241699431528962462887184201343171686365789400647889904503677792925210183924386061446837124995149817738965508220434329229864984591304897701102631448363394441145955179064168379955818041375259698202881572605615118559579452019036236143004986080396617802089037477777772879368201514477156924732640983985104935703498998575736034474189959218588439611633325799501072303161208252977843249563336686464157539963104742795687520186791936705428424977079324450794273137358126418691289915712410878568597421972858968382784876346776429742209218235636473402666904237500332709783228428950435415233829308394832255549224680167443089954964357804838753247037989530304464864421714914519206103448420941418000542023043102152994556945178454225806447949614987763045087268609393639737098510223913442433214453284876612710416129094743009074476037651110450852460755922117043035488877910873735921783999424627450291441510319188840935801714134590613514092481362226704942118785312173215556784638434318006762840987882532014552911553185274904796138975895608028984922990376708227593950693186076891425352006295389107734876650330297769005611115469932537957607948787048023197253023562794411098180023290401298232687562941502331173124455215382479562759841593022009970331407136118734822800796391099421929391864030982709362984542361534545651786286822398854490817129269107650967632908182084464644878413706753835600021675589417235209144233646061617372359852720147708340987690025265546709997519540128510475693731168512344135172547368394601176612650513571603142186003527379966574100715481566274087668279463310454579997426730248921413677706048209494564035438064182294410018361035673192796313081255850569884597426467097605335800110103818862526381215278013860413537326585601397313864341054330483380670027883061066450824738841006420287677160252963923147701933632226514953212280083554267700957918708016074017578965454101761280954399907517712333059512578082234300726211578635176964347703456927627126860113211010986827157183845369471027725269646241573860434216811686237595189509671332400799239940565880890257308414404187275300505157956857853125002700073144876644073299900808518176643776062507051088976979682056787448225814278969204955827902591889576481978101644137296960677610253549327711132200242512976732367395472111671615700016885791853303742954391996596474908114308941139595899361475592529866176021569901900959161289554976145019856436539124392470778535018219583405103238862714659727361151581648064422378080965728167554455687415598780359930273524043005819697435461048476060142325389556777071581309763479090210943348579738647481681715822133777039645232254899710197753186606118607069973635334581712371523694993328797684699804886524300285888560269176547785373054741154930670388596204607991913905318568117745155439543344444041323432140319228973661261468154396658421603469821168825564465723130813876870756878895141723110682553453706571776553556095726700055390009785620102001497372005014519503254652678338200132531998066980053075031346200189723983201269799142238710420753581142844781470797672650705998789721081331286530826995916731678613964472976143988564636587212455031969111166606129704570244569642160498184709711015777594600535377004750604688622058639792728579124543946396922851307868098207596395049176259642076779931251108058922154584976552914387009761743052992137675277596410764916127887236724298164526529159954976755091952955394967210262614934928146191676285470899694568448504793150742978720751545535318730443419071886102110170901571058943522683767805566023857053119745574898206162027374208725564221124870381237735861284694911877037800440106759244864219463274502424041634937232898502080014980946248437814547263234788107700511782114118252231254638296178262969843913588918761078481584637802182038086737454055694828305373033496196054022457214622211660872622383037418036221289169413115877039407485349897457560918462551930982879008528435669633517914482744764218103689281863732525040001403311955621223615087915534386147750402578339463095957431106569659467867853376584988473003545068943920464764262408913808852257196756359122029679174171110007011731519291705939255797402325873444267362448527971268109159500871837254414132251957331946082129663786316155426529869500751032081515943202768855599682391915297988628269966879331979795582288244501174620283844077121263548912422837229328798621354697913004351960395401094509190741686983904834521481826312719816021834126742128872425474772567937070203397301885041457297961134017757093521191884708123617033992423599864741182579938653571201608070518036959326106478436297244245866719818221609754693472755331063413950613076133250731122912979558175190423307443243852490162447913501257271490487886007693360119012217756474140919611976374824574749616192031175470640788554845970636267075574000022770514597524083272608496128337319419802380515688696416819917851470687213554807044971071899401867827479733064113411295579550406265644027462974657061741568326239595021820995751274344589478865870747852302917225362228141775623116103517057974660434369070003376152597549213008354642324508071316875969183507222191769344331380725203158086246245587297678575010735859862216374393920557226553817052652054408964168187645479041883943778860083076966896438614646604863823125460610519337530604576010296095736447285510910244841390640179971969154041489107389271050757596018074871984849368459148645625283278774172081265096691495269835446372349554241384137651642921756806336795193921307544837801043154776739548933475215605900266671495040788148988950044954788389941353879842414793836304227719031071216273641253957595555118747740628623713147044381211825436202709153932121202313875099145735286549832053803624952689058137656107049562350297022384038724234618132565413250197113596842599492750957150135978703277844097298677834712376055900971368069116600277583546629234470678519291718433073599103268060885442090673843245576493260692555497845994620408731818160773634877432827210080153936060154921012500566036082719050094886353501438806517297561410972528722379069244042612034414767979584304981592365912742741007568330098470361242401941199712048160293407325705249241471541288619244003510300983170683750794500859944860342319306851946100298957794779404187219811993942845868380227585130758641911539170118142918790177055617716719707633387428438882697087960202651690741654329347761942760662450928970804199110945541010899967331422543525043498440140839557018494577963586750009888866901377778406452641716203739950311876421086407432585639667303560642900394180650585506841225771261197828754927958293950203336997667119173033218785653056498205986870690660590908186678274820557221289765929039104683874066065373330444927612496381101635090445690944911362949211498153953665415946323053658739476568414358382213631289685465258869485810488865301018961447747831648976013012314202108001277836319007116464640012395870623997734269361846499146285434048671747620576017755953233860829304601123614501413874284176582201303860435107716877179121985740776848024734988620754012990545900136066836395831153749071452518248264815585290172951231266880124656207411945807517399385038818744586437764362509030007268928884536363906696920319488157287593465417763187586389030246062953307223706812157484104095307866704104519716994536126443955054026683492034523418170067536963124142583820715785695355399320900182835987459632410738239715735711987236344660952941576921749218701635465181654428688555623664671193508091679431165086425166061458674313403720827144873133482523239914890101877993251467350167357406776380178408798282048968283752549777450879262774004390349399930868808085370831893084194186839472581925423707207414683723381898811814777088194604126843092110352159205608464777145913335632581352345557409179820787948241986262444123154532088080288676167290336969322373942351025835083813097936478891801678491351085838477435459496850497243998516500807785893373526344643106900452989601710561009127644686213406014984160491722489921548119281517395570832120482373324962990139654159999679693755554636289859079829378743795559477956691941923494718324317107506303969871929384778783015517403178925333771153277687824509125601940342260917699104169117561419373937926485365543988779834078983828063299055532420599362455549423514071271560263169266543535198481241920804864882729672451106911825984747849568699776983723757566090009737157993867083280369684161435549093349970158054706404966905608133409045822579225093165556009973182926940049250189402927295618900179015720254994465204577690341639126826842786035363212790401311065015215392959247885880917690834805766959838375465497898829026813957416811088965267673268180026831107660068441719801570402067376007359838295931855264087389119020691762575372772398510829487510212999769047570080915114167007693681548690175621146278424427285058651940315838233533425859741078004624242945991263420457147104340436408393454549337168529664082875047859430405172066903115614341073646662097865090564805300150153148646450808929871997739662471880530080417019249079004073405228319130968928672075046225469639943867492206073115279112974247616667617796268718776749685041677553602588590598067109782649615734231007244316476255832909807568889954329330373256778190615158873385918811891654930361001046509702956595854414633975140474944859077739295334071597985498665064230905395604388520241124612438720805533596100145290255724487968669053831776765516837623726142180678445593714063777789347154576544816714436239238997629181750122226707284331131715762432076695874381785922384762621289096143037227505462455278159059305771297759522753123996526740252187010293610365528396861637092557145569789433999505720332128788767406829922830801201066648633525230555560734207624180000607711401897607722642093919936214967734383683618329727162136571839250781830654918685770753885310630056243810202786759798092496831891477024004234292382971731840456612211742513787805565291780117773528970510333013855288816309728566727555731816950133623571756270282345406643318943765385875411388034255296591550818674646067383509128903169629752345656591944151251263620765565558685688411069833567542832570222433543304319481925384167345102248928027214942900739342132598078735800945952310306684099188345358905959880267920566976992425373203269176793815734433101570664604707509455674964339013564311686190588537779475821890206115955263623477789998158396424946532992105860024396129362973885280712426944526274924174170842643004531058817088508925473300512789134900550111566210542270140575799372113197411881383056138774009443000064238385256364955245860301858609541993391231808582594968665184775998881165530673274492091536987549983811935991946359422867024370134291555232692905871448900695487665527537689750952037604818372579394002163928206432568661566927065835914521977574826651297156313810547440674598652472571444133841904848536699400766000235599186453563459661652150860836937674237822014804170352842290553343264180004798783500978868603960994619522551612071519781367787026048620248002209735505558667654052807980837815504098460650673627567236839634907911459421074419787511489485664936191769811018652480540208705462620522801308087501160748159660584819291704593461415648137823210521949228902936073648041940280568196410248727728439839161536904968036781825974759553934747124804273296999939366184797008827335205672405569859051467156363261227602791903865833466080295692859298488292070599559876806728095308411925667986791478814187684727723044694049859189516582746319718197675364528544384879902373716793144000601440946805792811656838216059906813427878659019431553037003894628433908547385183352548889335176187309306480699145296229173635977332435068156238558847953341424886950278333352794655287038160889734760998760016909805619413605953226720143837563566507056997168625708914301274486674368339323775641367673870230147817412416327055856301138842689803375419927842386258842947703306909419406924324202972224309758778536462380862232742124122113232060136057994257868332243369102934945031068168025933755631702851761768934273723482182970033335436973876450849956404113842825038784383217786793476072649832694545857858320088306074631626963292483560433969304688988873395482424435922331090139552157817560721310625382452846536129290732523264668769708794560888927214105807577770185367477698198454180401302342624160543354564990785861274257259109029301843569213802950055779376206283787257196283981022160516615417740873737144943111393176231819803502150965776245133149232309165243078578950213414078403302173503230319444579995245088292304022819064501974324092327895016426194920265643542182418871283057682319425824652787001514118789091455095076917275412341911250720646380507590002862202305418641176699132099619733161628554237588498055541153544202079202267712750675246250527816228649169409635836096651236998710548911437436543500262560383747291132240558490951713389608148136377026913462473088077754503593434032658342653559579046555018928324284488660274222705779943360403429216131539759603669123674373705858858229042834446894990849400687226223028528845908149809325509248161356628895661548252561077047386539595809656486242282582223653944180925562347133312102915897912320170792196308642359517379804562639730208861919681355784227359829327997361117586330262915005885182025611966169903790617607417390187129760865675847081103725523099405282625242434959919529830284808892740465070373446722540490728511943875547864365514695257325703326699771720647146688183180173890891848626903047532496008826257475814790747238010908393230049736960392132483109640812991447763838659211664278994835958028324930835665824319729606997090141248402939753576678556316221467300309207672439043462110357377631347703197295549650833515038694753187787451103860623855709043717126026324667945546935231952392092815104296712127811367514714000632425192989063189585737387505638460669034819949990205934996652960258507348961935149118458036065578586224493401706650555569251680946818267577680776560371340120590788041819870477333349566210813267966080159393894993025697312931418725064232886865658212291539556226865462449672726319193521561453389269697919572610295292713932321119525877863514220317715252572443132757383735363364917405425562056020721816282378148730696877586010583455968536884743439293696367527868998412850289319814887587102883392523244211824342260352710841839270813216087600056790129042695247981473870813146801032164044239528919753477631349002396615709174901908590442468576088244096511516304407633044449554717285783064175441737924448695799225348955159053827741654796687178759549567945389656766351402309836974217279354810252543461044802098773102610603222057289764182546634941206992794207451398004316663537755322003807980958554486281332287076095554893740868421788371622365049035369844666523774604488752019019498180848314554520057858343878647239535048022340936507927135799120820804125498145049940197403185744416642119018420153360769787542201560675526339181739004459480844937590576002837320950095714395481128875179472472927260982813641395721952080362973844057874894283553780168354403416906320659512628377126263666666194160833403441273664457234001603783415583733416616557480476844117152602363917687412160016335425306811227409110401939890883504369513101687415618995644551548481561430628046969262500405630453275074055052584826719714992959174877565697929434968788296977780819893233994323433879565371978352810554715459411197774038876383645359153023768755446812236728262526093793430352470207152428615311070566314120930262964951345159543897891185126200790242528125914801495232001375382779267754081793958404518449330001490835316910340694127629165619340688819811786452611559763903086681024521989032696231645096507958939003942508163529749562539704576887025624763224470297564843972292152577149033100393528621264874978423138811671872152557926731294672871629862262308762019224530935590967892128353430456546917742515967966527458130672144951389288729341482796678352262168385557691299196242347100375838224094153141028123325270765469219497749771773227389618509150611014184239749137248301675219296371074697167844001490160437651645228940160863576630847504794889925503484655471092812449735427904162905885516021637413081682613777737778525245663667256215477431534153217895642994514822408312587828555772485052310304515247947510474909116655001344275822091904070239023547152751338578012685862698536291851066470500713310052004160371931695240017768200919297023881399433630377191602756547875446478930579452277045640643688951302056959919075634851204769863702318161773070100982952392668479521525559311190586203762798355411642127194158677105697503089939436786497283804667183075283674211598611176577240987903699080262965410524239036522858037098908397357339472447177955860927469961653549082149706322330391659835677776865046693453511561479807968242317750457720041730597013262271559126042846667457523125520027206162033761609771571062582810485780478152191923834720848547271212769873272129801738357369614042325481888100143393686228049765346480465861678480179831218448755924753672752561822067018909045708754494870552328741356513578520656718374812823351502207117899618775924588102456510845525570454581640628979897889583724696684926239419430955510706592525412266474242249492958922389344029251932698020582191599574861346811587989582116213253516726829284165684716196626796279975431360793272792757477433644645177532412359250235945924089221163630248927406149255463509173165821099486816172482933427434908207482735305283315486030977674994205029087830690177434734869814164042762351677849616683270954880068857543308691160152744497622526907741845304310221968539085809793443587078449475819608236317883953828079369165887604238233733960239513504502452909130411322238265345574234823603796616411394405389193846965451781916917498185884686447833159920282474240251379657149106233139570857746402754861198869208126694072214333925060023950912664170010854598713384090634947368885826746999457393349145986017556353554111679424594764563674569536883979782588888333382459885054236128663046459622389555672162592542276811250540198091834870490843581287946473474201158338115718853900139938106128507858625186725159832579508290317976424604655315757711230806707219666964895642383273099381630263658977178539526893593173852535296521373932209306429528987280097914562550837430097452090123874604022379627836707007830911686326073340542291134044484357899892597396739642531532647665421315610050076795763359173390022344910915778921943793424798097959743001108019191004509146165510498981497951813980330693701294315519405554319969263512115464853826792656702448595481557581102995825638754324391255754989227526347149844738507678696901995582689145873632659744394240802125449948361205548949797032326691537640016176237012733885410414357336613966540407039426701779350893007160721249271933556264388150519959677046698720270778291828994632382050932492547747326358248906845468173306717666093578707871518302356974902377971819833869579287958633073650586258017330418757278441648826707577777000379903343740028551467140108954229402662900856587488054519560932621009105690750640939212018227002797281633141218005079450238641657035037506880133569965561531481268815837692083171761017353614042201444718530720934793796252859263961639307994149627815437225878541584403571484391522187237151882688184881187659772053304610354707197899436603836183116266434884617237830199290047589795230909820203005111327374514697369067552653702282967757254188115212783823686873814330082377337025604410743718523911686013970799661658445125918531576269011846357565937104975028602770329057298073998335756187012614460317191384290747856436776541665932364513920482766215875982147951785505540093842975524215484701474122410811996883865290480909799027506419567950858220919664921005378233908658521759325016772274121092202265843980134835403872170945781417597075310839568504632751141439112203906970632206772789994388178908072880670683288087923880670406398697596468336165703887211168604370979040927430757787994463780595864355294507217738151617718545365793299119319987948983223893926616595943849292150640423484385984968021182821388255079327078285470075491787819136521172275435940454680997729075214511911379478290675101212716123239247160590077515851195944295034705333326259318024197792527916851398005272293729877945386620149843752474072906563694106178228792914281461595841043437847425980468570752097082442872355809674168622537418205708489773115350412762171187835901512226117361593581614676682052705758741601341980551179706988970151596569332766505897044130021129735469432098424175766240734997288735807214346021797499474078254406401214877722550037346625196742172709986647137857404761743474194705010672610822348828727248387604397063718707948823952533280714432044334911157058523821802290581335803483877439459691422458660752128661679299518012143577245785355090341438014893433458466500696848748794177484715838369415130221994324081046449379760787505137752195887763939117770465904890189951889650141873216849999769156774728011221465461831272904944711796295566298326647639674536925166458591275390686774348652198641627264017499012469442249012800484549566043215676649644739520529734112994698543457304228173586220922002598537087016937927193363575999532051792388323304134956973238844696235633128694202474347079939937763791928101111976160700027540718593439155586813152576977312628341461739520120817828841815041398138091885036056282247421315564162517308835803386961605141768704179979365302938813248146814540112951041557875937322621044638535706982976949815410889699791274603611518117592604578810496003469421428387716316447137958338259027778252924402011197653050174635625443854215727399092909599611624143903174054251336318343449283825919470350250924774518285292843586333211946078997765157573368967030310260247236438781450182921825686726737151101927707807000310979693073519566768349148807570194972533328450134866675606181649657746620817099992717364590042608937720851173975595543150457091339190089089958015992318820668062037924340899455534383942493429056337681802263350145577101045201316403216444676817867763447079264636861241254916870771275635167960879885070113381405230192278869938596118965125836902417087669984455758769189725687687178289901910981006414446051272085782051690949261540310975795360365720238242211869930401677022678268422218354774378513965286846373907661039451845633483016114147878669424720744901297148475885402437693765787806453413287736079589728606580152613219723557263306651388909136357791429770665474917117517368714610232841239338949994892777721913329336865708708949873509236318168119774612540627807720378573908217768017558513055705553100602838424532463654436048368882087603917973591456950736007440665941813212464399173002653802794585095033271573744676973509567488158894561562585139154018926980420334897533338353432074507788977337808721195141915067235758791106159190795544463021620562428865594598187748406747160349744488566790122060738498344813477567628780963273714148803573700870072237205690131837423648861003146494679470494337152341470027448949888036324394469122979103554076019377291268176541067727308623350046663961615813444810600805991189776008599916696597974657154757621912819067750637852217797769282628451709684399869458685328070169427059224985378026487347684744343750413445989554674587008775766367435840597919180932143062378356105674188601767924775692476081288079259443780731600452304556044684347465014470065650224362786080361846153219939131547242150394173769534238957842467925673807781171018977436004713805333662910249873673007137672913844097879462666582715325151245534480630657976387287851132835224567484490895629608024360503604094745662482102900586737228003248277712523606264054334442670814354947197180373116577820804941160818926561644947439501396358484514778806981621782728692318753394402738128039758544592118600277234875083022859154662275943024441876012176248885500290327144746490232578146320057540255782311090011715169480523152641057873091912219402461132369095777745693409388437891677525791910601102306029701456625232985665888644502451526961364422839891890554669401146178229319374476073649077703636959977624724272782400320581781196944567014585295177498499861906438908262730231885647138067674115606145729953714036528002792019195178322971537720065732409611068878022300095855801474927738447357368220466116486883184174042872307440327494337739199519559902382354831269083887417790345949985498124954747440216341466688829727382873147778406146405812504801421667369910047380623775925094568430161463137045325144764047955235560127527891292950175306513150018530234222138473104189317208763402558272874501593302210995548342145743652433096791517966705792933537296682719988697080090056948905825263587150060414039334803478596269409076115592498830204662605226103837230136014186636077131216401969030556807578990937117976036218609486469514534898068752951926364191379096436356340991428780362345734743689215801334535214946614862588850525218912040690950415441820795237218704572691558912764009185964883865187005975563067212536010471297087567188058571340161160737858487397154380263699141743854541432738652122606953330112943632040288662581768339008006911351764609704213200642996714454220374442304310765449289439039613591305324413170632251192637706935540353224236879635648217418721941426764748393215276975221361897666522313505103534840221969047779833110472572692660252647935696532706873974212767730874888685639857570874388661749421577629065327265140164386847480229716578215529081118213684602832601297291764306896760815926140100036357822128752615911934157283936978166975247746444831425910160763974970077801109987970934038586011832207622796383003294212520241105650756905064686912889558542681340786396557773637637986807039357387670079315761395015136801446347518463901520315871688932572580053649020464715167043270334608141162331698400170970904250756265341005248875761001448673708103127069275634686956975534336496557752155049574769661081132421747137683463228111107596165439397123060815177763952726656850330532455488119206976105509060253469634727052259126258319063950830015860908063571049164133027020551070313201627436364770335480356547477919592545778086869223176035248222065548245896354599547923709109962116870567632032090184748304795623000575339498568062892475368791351620812634839574288100226849338142328788452008488565355161895745955508006856992575751533026432033607748486637111164546844620428153245124633120928684338725993684276816510327043071027269725789701040283291117515715956994087013002755860127273358883052161041995774715493800305330458146717368174991415521169299644945825522236017201833804349092435715155124168392752065237108588811637685262307052402884194855424243504292403077109753747052611450847850368845132652027880823171579059434346144573905170749677982357608360146817749482716370507672555934893790583919743616134040512107200284323704628398803441279662391872161839441585887226968670954563252708363259908257152362715476056108923431744591000815914238982382861169694551807556901069537350723571007314667839899469882533083151271259600554744260952329227901826543588072900540003497920400422805139940111678720100450467390474832541897987040956514672529243649579229328877761978379930699549305710455840206505294629130505552182076841340910057896533536336177447000506015260500005467868681453098567283243319582220750788617082917528692201615834297329354739264472617154331718415097590830813630897315051547441346129294223686611008311863323472146205339113963047243237135481603737145288884369231568139470911209625070036859161622552761703784092706453821811875831963160758614180074035007668364048670020949717354595496770159045763461962618424515986871648375997569284586960659119834901014217687899251865801788329077983943723100322171287378082050341002140462904140949184533304752801583311138531882176649654581619373334214732544288364929369820575934856514493353904892219543147432598524931804787121529523311784866096106292787920858570580992997876241956672329376057097291275686829304955619682535677985031295514105630157553626883514903078860413977023147803277512130058138831492177584380902527306990045618135424595517939620634491300372359687067137654829565324079974155662981574332330685725209965858723833050488073075536470452047493165134543900054108786995533328369536137991604114982752024584485782095071704253885437159935541213038622334705096658210852377311009081014541063578537040442295687110416327026975758710624033960017502562201637301737670173372949678715605802111764219403387443547974320781914462764022977216901743870605462501993251854869460178697526810917136544351802521872196784311154341941591720746504742524245021245826362261109536451082282631901086958499590055069330636272214714247528355563792142309368443153518926622719578732371698562496334048825995044980256524330578581784675710474513485629990075788819496995057891204276583437901889725933921137656876246441950528362782824558081921187654798847672286721510425519128930457940688868371759945229530346118961615736115037942835054873905093596581868283292465523526907922029241401985315725478050144029102238055297651527332820116756450809378262315181824535843013792527453136814498514525132404571760512633348994144922505696972396624867426872700043744909526167614774305925764827327482839989659788689471871607236248308228062406455901179328668071355467479188408964443596928175393604181513118807920443991554426995983994327153117372459623360639643456909845550244323705706915859968147660093183248525843758131530602612431223924132127596156235868527600256462602417827228630557493812300154231594941418528242364623547725112894285781496863602067738981770922801158464876225191730668764572874342958565662048812880505202074207215199771194423756287847353564228643661990381492135580524956238860324159005778774348820546317573360917843852461190714513636960145349530089271590682655195020743960445767420642637923522266664407536930433757068031361766242532094332231574350670878038080977573811649319169053472291627618659511151548397324008134579552606190670831995069393753291134557769349062389261694062618437738965648045767048158082172749990105295847267191040427760818641944420619967710811721366433340830162298416280157518646890307508510697207803879918996383017332795020667713389011952509973678850632290909794530556756228325130026408212979432968100989443365807445578509692122710473375823703907164400576591689303549944861225127251623108573660379342400867100825903074590724803462412819966941534279903387072216962963587206433178718922606672890228624441580400339280416471834900173501328305602836102575757509150577718746240085875921200537915247880141038636513732403570620565779690800012943403541238501370864113360314596071281564355492496122492262772065100825476299074160091238124821236886401755933336182555478962501592702757874718431602184072444674979849832450617768412196142072031741335509554593468688069600248171529555706011230524632173256920148865145800687880716533378067109313818445220813527748589711567370026534526803122214617276991943090699480517359932170038978292297547070281900047280962965310319163786982412949054397333774232984778610012727891653400818809797104007412025458903305709736779632488145029567354934427121956447344434606436496881341199304212076603609385597205038209440340095029057440068347097576865822626626562378379140998997977574823378479963467350565851845672560054671498105317756677034190630207880664721451581185148525554288884855053231536086601849438242146022607416797369874702357853027641737284021151508915896318551576492583839369245930873130010045081552757980551555369293709419774168511701233089364213666320059369728618587956409113854193183202058984566539919564752868289039327452409514745511730108554189104540704998617611618373842499725187186071446800694178034839892864407052135740327278091680850164681919936969004295525369047928298195509686531374759074178546828554688236371887650061279108000787932905222004742294176355071992398572075575527673901007605674971940975495050961298304673240182951438314809046423262263299988177679359558007044179232700859989074487701878741521042878696098431274780544278438761433093248567561881639453240530200258558208889935560392511583375707065648199155589046393295364125932920817404835691448215372354204253526765209720862412784159116522939541456533213233817927872858248168578878237556014607218825449620994204641795149318668239813409927017266563935696208055283767389286879155575383785259560529012108806107835983384485819055345174583799534144338032107713031104517714750697394057618741643611683454882368348330189633862300073110845827007059275461590874890664955939778444264453569755643856982093330831147580232322573422759197607749767996094360371322769763403647134269089480135160999110070094125840520395396551298236439668104002421252558285296117984569111374082706343724343070979638892566021298444563582892577845786643340707400701828729206497234424891028740223463427498488125128551117663466474240021671451348942103015506510963342295317932046364253607323109042901430169867398004760349292316247606968291613049644200142496075593944521135827794771750608691591603002646194026935580568360062503698190441395006751241337228685255659617633446350299059979362265331800635129711848407578751136369335196185648826450227519385389501340164143180905495645181864037282397101195767341439175468939821602794209229269707054426080793798637634727848675415420148902855605215609953070348247263646440604104926956885468800531400098210939581436901980958802702616203895725748439389201847373864211512232872372210520393722584438204712960494769638639919395023875762215651177385872295589311784606529375467531248166973695344823733364431344011464376228918068846197694005215100372323288540610687931632907071088506743101858095606662661131683817335966228168687380746130105279489367176889581280104225648834772812139936049458361489832204832876593067266100631858280217857510422097182494770441130894207281397126897566915000853224188364054544941234742571515743072348171131231126633758511810878461117773073209279518218890045034550343348736244230351542878343084864709859146544143567439567235594494631540264989536836166986405476557845754660249712675969860325113170465210896404614344277877071602850654176106665551525350124836872294977620931971164726939864765094159562227486556426520628525410661792401053254988766162166565323482784794953158375589874817262345870604522997642075056204505672790073996176727375975492748065251182624151809891658811306432062764283703012123540824167868730994160657539728068988118992818015799590436979090273047767635141847016351473823402387882992307152884489156312546074803909262689786133423438773095593118245314293344333993868198943191342347302769394589815445690723618940924249398612155048494525446566544178753439145968196257323741004360169441719373453816280202221284235805033720864392701631745778076942248603661176332333664964846203988250845239604542245195179380180806083150865194086664271155229983691160801661125869054942502587423909249440372655079190062852571757041802145744759962744623308130421238655990362877830385453739246903156771545330556197849551165966789517793138763791959327292114592243691830934526011817347992791058417904171123710224835687727417216180884178955346684739825048800422808630245564179047341368910205325297027795046356066576138300388898534769757080961540847911807516290224698850003389541361481755577134112409221927103769276435641905493538929269934843821346873176111361273770882827600772674179095791504925327201850750440185941370199513641972463516541758048334051080691395952016283116801835992460635133622860930466461309102144844316867360991642458410832874414266311296260559144029507984519112536611840676072826379557539128536225317128142978677755682735929953669497041300475526478116744054635866792176223895039299171755965980797966704611433331164131937131368746893225999372871948097356350252674320713166619787535266497047975828103706390003477385990251099188646212880825867226874234928116099237785645117537325848140585075135669295785437272146679910373810904496535937192852066494407810237180977129449304066234174015101871518358565245133623716368987782203610302537191579891679829192064369415765562860547573047157687262229388617621013012229177611087009788143967042349975539001106589559966573288228277088474629682201651134745253813189397493398009787345417878155651405223947320439892166810502959023804613924223719026088673171000415284459863056007093623602689675205888062562593351007211915578681910309144811716671209454803658234988727324485291551939108756442148944466580600898271280122828265431600785987607338201851407144920389041750937806632799929810380032663224283833045475796566609226517529340962486662930234416856736139232868158859559372925522808031669113313396014189116759984052723795729309034937437261509358231035822889617175973400173648786116107882259056877521284704034504060004134607822021062079976711676820122692137359503267865072718651089547071243594729004079934864741947162175038963285974643725374166698612776757790257772358079604539961374505363869301861903101621815311331060373816193735865358901809867504099157399576755560666153743639959524376297556019516831456756882941910872460093062968258141254259348806084200041648037193530944807394882369078490741274818907718498353372425303950898417966800349740657849183308555802628815595591381633264532542035096184482556600453957495090791062204016113625188197450579272732299003672810603888877256371939019711773368791321970423169969306613284912740633341040112579480846819554346440472221207974771681467115406348701216505608655665868910203060311275852297431879827529611311817793922929204516399021409714948008559687009364588875130616035515543597913814908706788857235271654365472370576223714444037789412618092174111659792815563344710959170312200303586853736691837859468617361430565163766662474030771231354963591289624221644298755329911800402112039462935019596944208754724004987121312804656579341211701401188669313565613792794109983518967822647281913310199879655025453162690459302457146519432433434331918315238689159530131808876810295530380052012564703670441757519640794924365781665073436113607363154903080097294001359995401290906758462894641184615164614845472542842600526510989119736040027412891701214547188264172171568401579520139805158264743716536339917935142068728992392032450877805884353874541119494782908003110711332389327094710189453441887137199060422817218533921451428309701225329305941942885683531192169929948985382868402483335697227374103222990132753799621282404644969545488560903236168823448053634871034687135360936368788933365611919662395229993669288462797356315129191222364119585253484886367464170898356384187887249112048054632593992275629677978331883523334689376083498328944659023074138573475677883920919350944813338137612363047235691720618455280392413481504919017974397845696628906761636093348989329756523654800892183665242108322855942842808629285843735535967168497372302265393171035933415211465076465341563369665478941561919792429467559176367748672444570223985213447163588587125445146578799603620526307901628836962298000898214865424487952658114068668583612895580024954218159291603866263740069417826471272319503051047071643135381137865234796356093279186561677146967521753182396084510917411813862985190172632402392563751633688947719886298546444651988525955028972726274654484808951640384301063057377412122021852248002880388334699612436653808314036768007115549422486842207136930150381905087337011395498810152146885550709064572586716541259234244683781874902921808986514581103013478296804886904587687007005776646885643908714632125190586561070701448313684393383655572147806516014027572472915931431777537742716926892766883540133269271762386782922098654409038778380313144941418734588652155650634508735560453497389318895538530455062798543367644489273227895259309548692379401667641552257157268207008671762961696320134816077803760271631229705048262993505494073974964251315985835109676075372758571885256766473697105015314785712172564663608458458822564126175237556607199891352361861401325735304063408919880884017250229300466655806545067242496528764041725650102837351228290805460274895090955332277904638303278579927524703523509458513190755342979018556178446527773846219892276082668550155314529790009770045939474153954905705959184743774047636190649121171159533488248464355272179718777233198152680244459322315662440989473114248854076742814036969552058123002050715058936528228820976389663875223510715104428399788385365048323810295827567505546464544455421103031827211344090490074383950251348469819821910453828312727659580870908845406238302447938984424108017847344950867325035729316952215275570117089353242337782552102237509275562389518331559624614754053469985649450354288825713498219156991149843633565808133988473834972109874706122070303985992632358047170729936272346047714581334549076150665168494677085127359763137868209947089974182419421783866495156696221155296657060764772544627386288080772969962353189786302173367824516655692427522261165415440422041068125541867294735242107869025198253894873988087382443013502905583067411201308998523386031606352969511930543323403161769910988515384039754619467705390657353391290898041246007961996286772914213032313069397150081934495918752741026104148136445342092343288015467721054212668024500701817316003332723158661647051599605084507192934280234778239357304764595351529993343897046224208932326717120353479160930709180546915045084312801700712523328745361505440849016862343922706357026953355948656806274355982409481685952286713796574111797444452423547888698212413621008286397477189144022617788345512884819162023174402989462634348404601825296827741553443618105992344996158267313649571185363384432065187640279659175999921599351455973140870469476677222942691975310027456683366276522657810518137352669837749016410462390482478309330806370957527480843080089881155476859335908706756777905460327389507563438688936400102354018202946367744332257344843860521578567909646020245326111420649566176077500479580137774618411155429126969245014567817340098171906572502712074339301658242417958044936613534995864027886326398886402800853901660454188821393234923445145468454421683469992365143513008963807482549338818693783647280474079781774758337148482984999319447744005920096441633291959538297230906371630124618091862868360514442719699478903988327565512556321538317198899518466917354851204566505534925274121149342616322415928278337796400552813343505507844984258136231675013574523599906925955331690396277399290338813201890707433176417758818322368324255841686268194960109752482359388057757954597492520477084989650565372309274500151432723212869055868527525704708440979918149253608644957962275508975400416635288010125237164033638417839848330109554127289349942317862297460137725440169208477444245698638063475087697700559417976260149870933671919352481487703060704793086376181541325893410111002165935048720438543401609861303861563176486587305077348929233941507626845577588176790629753613851051865923651116850125364863100026031881380683765366778667413817181153980302811530903472942414773136235863965573226606642347322435246117789380529562545311542771397445039802912297457591779608453126846878358894197684162832544240034542764095921331094053251213466345187131766406931689631675789901447114087800186273783721025802202267324981351524842113909872841848227917872576099217585432131477555332017334584489908581717342893895440374526082427228851827936992626819257291335707472349785827710580352813901728955489018670866773367790730990212738418442089238345791501979869533794140054495905663516017676341672182431670813022986587640780461207505807165921709038316187225245402017434201707682568335864240059865987437441645602609141912810437333477553442821824951936959017485593610734087719415851830577923651861335901105860848282678127826863436113639785369955558706373660872405620714977506121837916440738572927310726828253936317210943451199300042905064794462974174111963810158576455038330104400419598662038197923876830073199990463323690071069551836836978527873134667199101573847340436606317652152935335133628221364267731070051777678745105345514802494786476400670819788542634924721087782589651024951700017682432183922052332428022144404837540325341610947081907824267252383355962159525943026446744937217440294417179643605847732799442108209434534751071180691349525398634029179585582642687956561330313099421828932696998635515931246931466801199641121650455758825925901159644284909635587798363604710619225744446362765056280440734210438957930685683129262878106429267234549759049614384841485603066334461421743135324472143636227915666540695749290059206038034500015822852485993621427126323746331909358119436677428349730824895236481068758515004965631181784671616578656029021469320283365492091873158459302707079449448032200554959523344880192654004891419813912164924930246742101570814244295149513029734574979831092436326957006928387902564719053391188952290924901522894705098910416299135884315285355065884710041557841132978634828777619805561055600563870160912265227747517907313533553560299866778220885101977213049865881910287612854731574317152138681668579962648343628932556546711267401117631696008373203632846636247665849143205903310048543624148235033780565979467131565844656372909623666064425381327917959727899627088188819308523718006376290719194097644445932293626535235522195338426183353676382507340672432272664806109021855349602852544413629194882629581472432906800541853359600008625228019019781390915638124732837593833506853956681304193322991326881330681718981588347452166298280710020821301704153009196601841675472916871015256908756844615329070796894553459146140552277281467313305420708200554308040382699067427731103884478747209478104441054384712440181563765324518063220243291977204138005853698486191039880183784152887988964687313045823026609937368663298217582019499885526318236022522364640775384459906299554224335729196764904151473675127264954495141677560877453450951530337948147099972709101288255724528339989944043957586840316169129349121152089634254808308879103855425272562598346693172366744659869452015861646533300545010508543203874958568121519669523595916292701565251488745754186810911481095276513762606544357186406833179958106638930909610513385939956781456313175384925393619405667453987152314599717569646022417692383187516145294744930672705452776895842457112571375344761279332467733936553360353975336862023907192359325643928191054106590637841402289860516670533581923138648784621824300980688926031472403701935466505424584549757894637045727734962310064230579721920908212578649413073547560540498238147695018886507566393474095830549790148537148039539118104448171578780073199948266357152412701976385908930221255321850211600451068026455144367477273262946778928382860975373015458462778517090697293911477744864994049110058676992692705658830958618666550321884388174285393236618577433989241362944196577556255877600751297328527718104167168564788611982692169071644635509728793306012426568585019283139031108434900577749236988919937828918699616990197046130492261029091100996939650064145920705940516211115469799055992463510395282278984143686770731996922885206925137102996824862915248138656108254860398286451687270227916110749267030189607667893667065671578420021271133559154169206519040179457717862124239079293492820060649745417813230899685881687499607498921443500560297289496295533711545934109781050073490753382517032928468926291798979959329861237231135931307398092940509373807310961565760555685979836276304341540581654823758552390429954677089473711827044453883902083194447563876315646529280622761124503300561612965515328281778248758346973397644400029402216823241122329814841691653620313909936209740868842205208641587358417712005829279062455716438681993189444123669026590251032366832074007429454741567330297264794149062467560347793244882932891545915926342018007271614778815043858101441895683408628854440357722382772224816628645341094379673121632024957502576887839940568519562906419226590092656329535215000356658534215983127759734273796521402281980677369401919617848153136860806510921871759929230142659336380673850119360615019857814281387903554343145310421895534392122840001809863243809431901268671334068797330689606238867842022603173010480436220967560843561576058931393297833132850532846028138935334252406565764870113888753024296434069757406196651868786871935743202367211074692099829622475660117306008018657366090008279834170792616539254203402833537762297651643803167650040699459197370147713924598558903357028137736046454034291251148816978060077937759496201052468803998807734779157933279957936789051517108784865767280989100324001766619050219655785743181765117365627675887997306011962265887861032584939925766176369277265279428830655508353184850510827706393189447583789170865532334872749380295723269438312952912039076627280164070883100625492985251344079285245474662797166560883388103669507161920341944343619147748973471571874304190961362417180745015231005505012891815114936127729124681487421089209017169727862454701550256128737604429300184870183704539464682673283528428165160384243443649419348796245812791420332754534954042798072508269770483533108588690291285304931622518986799633657459306895626400559185008758759242340184499368247750469692901185047245944314302233230501157704154860252880506000978114056784127045577289447718514828057338177859109403675482684970811727696869921412632861136020702565810538354260904599691831035309279266051238105691972370171156988851348033838438569148218179899043622493588306190738272810401984045496268877569751835972362839126633412246962675223779566666208222272113188521886450640121988916167301396213898221199632966528483014221130901510993382291143723246449048729969871308635097070827083086705421878928417401501100175550216105377636519925014405243464185531081622861719779373875246621044996167648149739709735344619711850643447818122624219153667320187048189964410221022436748949866963743528187150886807646323573748354354953491002554279867950560766247356484879908690707051933306502661013628090385335404202883492278845080764957323119070647886503570303005411198149760465277430387954029488783775162953739435683593344193895596402356091838524348201158716131966039317761649773538788487650880446539695087340640309288899667668043110638131288207019950897373577605551429045875565179639980786504861324557760139402721201025441203904719660988320517449135489345712872659976009475378814481073723951013124157166749837100962138808598762259958272674451055120841971666923977959080288501042811965143882236082719584569190162390762359263385537405515258026590145994575320491953530940799043913474638485994209904343462059199502414809603314870626488654544624117684675653916387560178765800776441389475801598099622833010802775795563667445777619150075785765579830154900626291750218403606539941551381957439673474731413891410223521915405369148364337523631418477103079992292448308039406820297472530318684531915143472158979921656680925048995530587319443770575194634250067575826501189701576018591318456234618489672060708613971955449365861930701641004611571352269096432814409439113117315257484491069139936159893217930456107070809964000870072994853591436784197070110786490631653226032661767212777803947580978663458148600880443039454783577709004370869181755346684462407704135124827103713850621330963009993501038083937460861471516615492113667011627197699032275258744875091931048724187959473989584259329954891561067865626800261338365793401829442039129858280826723503454221351776801258781288748191522566124111565656091334721758661397018747500592662359244211738886691263233284977450735403191547572453599334528910677335716554218432989044284304406091891400616481631082373197571693657100803594275228623182337020890932843392817877360404148108381443663926970590130580633492639911070997963638523766743965784504998456352774718854967771974823779531650004682791878923456880129648185156880778506334557549668777914395928583688034392335185121510991620408644354521947323684834676853750274628709684569023654604381868851254809536399860088757614677377881685999278894628510651024929613280986507606891376966061386934225289807886619242430008101711319796204961016616502253157311287828063159987504168933066976995117427741625479492038595859475914769610830194961005623241491565064936286563059480487447964341863003027627144700816911437674400680771444433726769329937850713146319835621403184171095102775821394194226859539128697504675866775960559749281258942873711963483485730033835234702833538130146594230239870706585983138085085176587952239724341444974506025001489682441168558880247267896626773439750378282605136503783392808775770344290222174866447633074764931450597204891418075243869068907164307603680391447364417713233830856876982012912620819533191364977333540453426032282173931836238719291565520165210542005757039212215043941141386084300353962479538438254859221839864241739186821982196274779882584473469516043262998994561252668598390468396236562491796688911125545621361597700311101703326202685027414099222237234435566859807465385693255727979348948241343587147698965604243596067363852261130567567386231437222452348711643841761559515324699888555171671766507124204408958260279910679792480341810144482655417387179466784027265636093309545702623638478164364476345408337037900446501307361988486226752602815387110923633662919273582268861737826344514882478244280621258576437150403246415208755912798623551987927896907177773251424283926770162355519184048863463571627574953309531432544070592394490295374591475162833531349247243849294096896298835869252323124937470472197742904371474203774268009553590433390929505424247049936647653638294147708370161093535412505625252166217038338095274015527337164387855454980332334586057495281711365260272108686140234903224000751478898297157173679974393889695849049910827849815957703133112696289525441736474520986469387651842735868804773807297318615871052823594323450383603995675465103370029151207042458321338689066960861349879129967838539669934595176350072125993875926872836196516697592474562493376788317210326397308806619583599592637306772352276562029392944314363712801980876840090248425425482573856059590124019586726339868972930764643877040936124707989406404589855280527966098474472497455629899809617916216565319054715836837705526281672151848658365953554214120318230361645341154900182350264960145036721626453019613269421073843568351330868602534136147517674252809899143039203655056487362368477041734991475295739287824725373803199543100033622389073904023658572942822644678899669535167618267783136957726319005216495919283972861998811736576856969511628543421200990891875919382388898635074592272206429503583705202806746128691962026341132801587530361198754414191485973988924589966801032027421515906014179580457253366849194620474893898376228368256477412129405549934403809596141503810265592195380564001400066967550171802458154366817021176348624753759730074993196112144711286429935707633994886333211091745329461172978703388684037877479634226212285024780662144849463196059576380066798082482675973750091407439514834021264328002637713625924837836108428767049406021605862827380664218048096333179410173532578367903125992484858107847730095282575163489007108627427455485962655726492900265280855043202215251248455234821498924721838800817659213032426195526411077826213682851287802475273416651483030545709750458012385856829921927079105587928249661385627808091066807229722461355938768712236036421363340672409112516971040700598107225211344461032611274049514847690859760721499500614435735933024024242096092645335469506644108669473972818092657689526318075226765486529729376775928073149406025553060371479921231051488165744988916154491342276344855742020235707544413810555803311968083889908846023822388968727878122257393851045814620804855383130733464530454490589455558436899045868412511839166957822633404427297771185424486076008899916138764286984780517692912491401340802920736572769269562318248475197143357421611576008431624002060567311581874166146507215765583406677425610771968268751079699897770128586565235219277373350443223904683736036972925653316327622525178744547386437989227431388830464483230822893119002595512617498231443907285947092047719454103003304807466361938919589714331433348123576137578880253700046779838860135968542970350216950604794023610509640252415912936674227412770553631037083444825411879418928061628173813712913164797412195331443943853722967970283218245807166416868961970722933383042112241333477401223251501402519922909390175701218538556709648836509040342339280280903742135163681637581797507785464207645761863918059830343636350929945122528619562022797653886887338456835565070840758461441682395745614565453532174405611938350077547499870105830230876448762985412918756128543736160970203887800981573572478293964299380896705670742580717668602215394740617364942135472671757903236429284996547825976139293331922336600838843313797075527466566220619154500841090788866994696508972150783558050590929752006999724881353681238380155686410396522385269437247998890051206175791810954134214546204889140923077173443248113563510025002574195381593808726426568266211004513634237517320937020775750364789978409932921965803194650300689389339005774908646192723334175673286261566048345616426898741615937304887389660116710133899112999330966191779735032910133077266981724078585601419870472661074807693677872311843766308273549995684943850224821052398156538610475216602185405210591251152986153352186214124940341199856771701515419349424857877455199728339402587709168337569194035842088970631957178243240030541336367238253614871835317337525474504869963918352899783209548708366328477514668930460773838807436872877421385345479381614764629054978948911944545643105053354315335923149902298057425949109644493996713729970148831331219170319197651409837131055473645470295157848491666507524554243538017409420234768149139279162998316322812624399992691391203151132730117507678450189399780332695893916347828015726326997620085270252960628040463387273694412162063030426331391013267277371458478838057752013554523525142840733670041666891906357504863262149589360852166101702109876853312837132295160389926762821323204540049278462063220239615764529102913464762951009151889466472254011661903148841197255835579433212243065488760065255177304296993087234201387815141566434271361551923357587927660765962634124115015432876745421057723323018855696719766743155193995606455711380058847675049757901213799424821614853921685160619415399661424294010694061437183218443059105526405135601343425782574877821573067883486082457504171259643014544437928912206424608054853431746605344002498188052086996625926735200218723511735140161103153326224831850206037011110210476148476522511227691880234918883324986005546599983497109085658378276144213056534386609134538089942325831250183314415379935067501060920307638272702944088593648037303494873569865247398490568224415800485020677868505053835327652071124760122494290416404074227370992360699757968550630412454020226425899381579199627383655453017566981026493986911292493399129292870577542404321097073561716507659770491620160086416974717285242442299999859997368003108416729542870263582795328926062366876472064153884232045036558965063928789612505512638561469983831747143721914904363908638368859438621980760298737537662537810179996451736614849827343828250306387440197377775044588687551045093518401225811336723698655165827321785539162698148139454829241381875544745947513266009318292191432660363072494326006382178098591432965615603284884322546945013979631874458354225523923991186605939675065395636006260424450460039792434438383032440268503971291520823500801780116861086853324249347919710902450556099832391804817871543144318596513344066444705436966705452900793309608558389412193286168687349776010597488083102720316015299970213272409548196934543988295647023072348067870752657073425426854134895181101200413477118507161000003426302947815645341858744009174455990884142852684694144772156003934839198300194163524453063221368819363608492443895728187920706646599138410171998040388173519221907230235143473027403229292476688672737787249620417592267814644302130624767839694808853269466725522325377487845505953162317730888588897224565401037287846330290103896567757693869709761864177509991139338248095198176318723464159447005551133250688503988438398909741705441035701247884404759709707438782027555134937422222662636833323887006472799135684205656355876281583512655876297114212918433786086203497108327068533654859947712560768242946831085278298256522812616755230711597348977750986257882719526211914924842934494003220933000641209632732877625379976052290590004006580538796088484080111558646219377872239922593912147250852585415797399494879799620867044611936973837656334034491137919129607623175669189803598543434198475070609401667770357549075255573602010827855844488186304883844406631944191489454886882613966266508263415732967914140765688298071816810279579472417426375332566817495044172724025452749268102674530992818602014866146464641707969611568066980345373535817617334453207183532657076157644285238583512993269922629247170875782789389677133263218000438187530933496172882017192194280703299993029100525847454857226703413869443724440945679099800149398728216572593659688078201368865243313202824010640880075158047543489819674812138468289672930947953247018053108446424765174447663888626840313541336800523565980547547594473631753110628230538488279317075253542965890513331803908790799674638449103893237758684858363579937895654565494014124878017363832346246075679667802330264972298118574418444992050274217615148191423964179168735281264571570933114558373276165352037460318732349747137964738366479193022073389804426029518742730663587535496982329075253234640903637008654742198917339429689152227138495011786788864771249860270728343150737948296416276387061979449502244834699636948918137562996271263165719731694415546277988454121642336546577233643240558137746548904694682864108514598475155493272722128670820770422558861832227155721949552254647246196492969322558898878670949306387987442338078743272345866643872573396573873268865900778540752214666899615400831216910313234337234162096875546797041742028900614039461516251445231415981248805528440996442521746308432539277968701837875061019773718522403832745222135619539655061321353740454914076940423522736429109918133724719825397589351331955504110066533683900026333769719648280493071796373024848634848367222950841793212349258887193894856907076160623840996870601743115759281918482585601055748825389154185889850365883899428023829175556196796027396067145285513626968011094076751154808831891474635323772480373116112856359908967425132404917733908623562204840378372715394479601049780493126769025572657154799274332990756428820474119578444791872481786594264752602679534397786805753874702036940753405461586898986326061899129931114152260372166479162476260719445269590385729985484660988596986299996656893476337248734989474047527793352167336444602895866596425892176357615344716486917410067561135475486982167197186560273260626679071373602198207341188925994868536212685661857882070870667250621270433964961360355495224744022601418168846539566278345115776976976352278996699118038462414610939943153962336808202176972349211076218207514442785459220973923795636784069783530310581606841619598287065879662297003208128494766648600334330371653500631437178715946595230256555608432829666215469051354916807402283670070035864472939957793998675419280117048708482896781701452994295438550294760642062139131124926552201626087307056132338973401117643898829864652213126486704339803454778470047336320214137032332258224270826585749331862275704266080858374485294815626922908969243846967013552977016880474375652659156829799433341900810782113822485042284997985992879312642627842862282274955870290948160791720842752691015758478594723048649416439313722640678939506323898104008603385471699718546503915655189434122823301658040672144836757428056558928227016791833531804234413406328222181544860350751688709305100650187945425560411863288124972098981997323982326585421259132024448994997905484278236113008918301827311987630251474184520561296567053620571938159542402057648935034685868928053303476747922015924749001183773252796385418597294344223647279811196114899384390815879226043115552044492766713435457352146463729198048812125442243896736620001120561093915469702038514563727138724169121857197033085406400609125816482204413344023707398475019659023747546412629729586238599034256273754360074227941180440803807607502307684808012837316289533626727003611621985125404497076780983021544674280788916706134119725100642601233912398739306317537072811197642262621125289580346080695914635138659027796486986451193916110059008085746805758429655475428510285977621515491821021876469014887902694242745786649718269219274199881252125887746964496530456129707280932260195928000781462191577715415510118776801569895122001642736390551426687226060462369301249898191150986360061330557132683066057041481952714608324905705562438503355670103442163063602949287359925479318984806604235189753981363917725505006174247677596586199092801971474838667705619309344154542360757349341845956367790740058668036903872156938304284010152852829948371696607724813682547281656240094344586579476163160645868316170694764525792854918692227541562993794070878574487901714268407174070993425600086914786763038031787707949459188014208022250128546276816976043432692118445128040427953450193079726313759047067025021450740892381398295503847845285314762931753437534295081584239577959788818415215903909977466078524270304936034915184947251567226690119087806420722419016881126824819818597565886008461095298378556105629989686027779961622643985226512405190736401636915671720916446116651388484369017832566917721750340108826377484690757295194077362642727044290061664095913523395327168403710672745624478741570793981146939124215747809150089950608016863335424915116648546745624687127054165339929573437403680004918053579032332606148098016925909461391829919512545926293584017157813619908790901834190132724839203052635174604473164938382882710684021613619597970625607414411901513984693644830488530197803620319284934138876107572162156801632526724756592495132506686608458439434147266524106373565219749345834744170709879004578400269610435945789950585485524987651223364823494814846778999008635471342759410093991269602805406275048598060665110142194085423357549974033944912585101823038412299439101142865823163446801051922672868181900062316973229994473265641333352082366556480269653618146024027067168733844297911505592812534921171263417728290363829265174531350088934500616209525572976992589662043291635012076273185979014037198359704247794876292716083205508487691567297711756013442285642544916638629828594202487889732162603953537398244570501304799381999825831174442342157220046855376334388432265920385371439951345860618308239204845314262721870122526602624160981965063495487065936981779504923686296671113291413050106534876514461658400655312736954495295797797653472526974835677982791984957897314497103713133626784769541413279470877258572684500396519747168571509595418753488811354960958530487787873574825549945502499544826178986050464332175124641877521004270777052613921904178685256309163721286017474143383536891065296766066884713045792299151093019669924056722402222227752636572489797933166387799640890695659147982776217061251996045818383441974496542622408713002803619975893239219290092351052908859500584859777668064596727268497023959504472460056691393202325406521758918244163556217564863816043057119831755855186456708208398162606109392145986618446155830397441970200843750737677004773765081261714269836042273118480798100690159182990046266047970681366364902341332329978627679583484114804151037716527335647166521093419016724653902602701114535571971208267376389127050059760160805970379939948436293742585853343221376318465268655251011669533283460831400445692277845114214418524540702002528800450465635468210839202504415136937806544556632292538745161046020747960390441380016032558986119669191471824369983745393684076380166664248310859440725886298103261353430671908280357762603298912683386405943765228368306994643068650230306993715075918824837419429127878525125961088350325371584257276042238274309530640706374299243557585376928216083995062080367397752849877740969588006663622935405824657685136844929341133134193276977337172343648468406729086282672919356121098548209513023516579162568764888863823925749135374433360948758605485976450841767398310026713009625117432496435715022000980055375778428822845888834524438494146373728835471182831553455272665266559385629759219315881899498119153859276717560586610749219823688765106286233045660578583814732712170129694048888678502924212474612413586867192941944976512501969930397808326465483581450542907614650584105187430817054002658763358532860984362702175804038460167203531292910212001723948756423931577615410024445745638445633612530764623964263691730314585497758360373227011471621441373046511252430263247272428113818310717898762547021946044548907817723088995671838685388220447413909675253511352602442705915970541708859846670004780203530014901386447120495844856278484719227341211241482044216724620037736342664271297600988624394456571877611855755608729957218067985189834422057288761540995298302962044550570001190900482194811343335491976716903081254457631789916867613553852741243412961021206871431048256224476000399504495794287962532406974481193533569862368701211689924696027819481306727167044653713526315757959985077004127706408057075639958087969786110711982710839636075093263874779015633286693693904101880996738122430856002927696490722948450232768270616674667970031502857116630668991593449825822619039917023197175772964840703674682629546077433355338535391219527292419966003134656667192885604023798138942429791161030267821806072861893638256397861623790607783683959684684202492512177643114345350853561639774699088556465424449839385005169731660471002897147082519133894288333976761477011476767735689841527986693011756636954427573597357651254050051073034730399156189343095906067317870780233909155309654915841583215005395958572541833312792632589219730881892956185901612666447064360783815061806774752900368224417648408266530388598244363679674331761932154493624483931521319964202557460007425322644775645458209006003527944669945980311668436783359463123365569850146473995689442070206823739942638098707516209562173200308186795278578908892999020626323335740114400207283946554471348254685938312206764450956422676765510139860951271751500539257753322098445473743790145397796910022847146221810765753992680515545916372948562881334157510280276921056173693592494250238544654449782659513405448568788075758635079529602271929495764714548608252450647601524565165529888530096756081266631275013706242598950019273989914354567236295018009829645893337969816859723452769135707669999204086017437993491357731266979636948571244405174983290328480361314387631074791844879832182343882168488326344845454319103810956520080027041787178226480096717176963564968863537847498888783842747136095255957255367226726947971048094217408716421454745771766601003025386027930914415650562500379548016895799281833885675667060262920337939612287901854375294769061647504570841900087053325089249727342078723233704021804631353499569992017220835376546309750180152014795492567742194924743827586679670105155771956897149377645050995782637536391970909345257708829105811291459077700555884127836557257336790261940536751923321403262658538036305686805368191138352308685892493169983329465594234568403577972202887650461465370914297168278925328769593899467810683407368480652471592055586357634764521876191616708062504960679399058604361306710076031562839639644011773962940725704599482419469924864662740824542750828430251594442587856244680294303023107687804071043302240118679307465368758529708869944282893172010167424593083238102806635263720798264653565148531234949238754171152565529703704274555872227738568180042067773448674422347917522175506217688941068320953450514400977091953905286434684357470770817403861089464658340643750796857260241066362942116623570461426926439215626502983327291550458144866701578883224995831238847582093676944520606822678969526159064179406405179014145268346763379782625215768948475248266504425006678682988678450057485329221994732838136780795348998637308815248627933604542584399492139974199418621886740070959250427058222690665670370968461545027704336623691952654390613548585977987313190141225067216410740451399563751580834059338778943031846589225295060364998979416286135491190326646933200340716164782635724435704533140522025612750455309086829293080570163773028376454380342572863848332858045620033978850158523036874078289222478459832869571336632094692328472617222002806824816514224764472303164389926370665669559858688378905262941455072546287420977250662709905433323688701391726072153133446858555613577514767163682143066482021895314061434364338072155848200555220586415585830481113427213815031757809801850038494638230527046330468625953177727153324770241110398077103017977509335237642300562825844713595026861883326892504971045911175809504265769905801800438606841801001314647348592834595469506432490885399349053433876842182175875241531084704459568837194903307381540126168033108456060030647698934511387315065793112829432326738670721834506855281630217230497481594096542611808040391311536533127806018240549131516161091847801606793956752290026798192884583175163877228055259749521640622113481101878808408141269458906757448779109787114204782426724943292229162313047553739840347226318939489896785886087017967499250506739054388183833266855428239802642540460987094556842015753501773321564131107520006567743178961361196057851777110724466242516470029741915366786915040800788724593712939442644230771575054076197933798742459275243170440455409319042095333650287577551580410260316563139868842170282571447240863961970473664671164000919207947055715912238251229578934414967125265415368556820939409443371537297628572591803139134596149041473430076549629161825728207063141144228279714668309411494470211987168762031466897890548709885243728283153395600513582475713991857339540165141082052115340206533029503994421789996707815481615917876714996177500269692131238204908302685757521807466303680038557150092874604255381643484824142448404140771122049075065120447606328883452131184309765001611933653212841757022908150986587894309816961472192697479721508372282386935068027869369854235302917595203509431715883586785163315882143215197966868132411125281364554520470083507175341177362475740311623636186781778035730268512096969344710567921848011011695585369319732230226420634636686097534219477292825077998932999586290093451082539099135398173436285311820013091431889791348826608417048493060569311066064601825476278766072385752921167289874872277591808948639068210233257269813206460451997196044632086102946276689890080541848942773991786569830414516741308929430533249566836974853434904852689764700167483310686194812459208398025839811061452308960088684350234721734136801052312148042742440093433906541428114510461957807451253444226201612900947109486517898142271564864292371127745954707880421410423821467304736884710935992208544987327577782070024279675474952434321520779663301495462516058353834832700705274197582211558267566004642853547523099837017824421145880493108805026402304310679758355271493183178795052456643919852274174492251855954104112832934462055958475520909757401642402404105121199318537986173008045230672519623533682161528338349565800217756278873199976489242612839681871727012589477914013550341254471279558957088476070681047863051407280145506834455206752195704339281141679984402294883938862600052031021825156015627573015352548542248528582193672138379113779720002573766981617008159799214295633608984218012026044683935335772815489433178720936787109317618546975174159298185155800476338767149958172081394984014090827592855887003757094398163657042863613284100250756835883308636529214006189247143493501170748349033235567680682894609042880867098714573482599712786594692008150100421794154926830462185289608793869335273041166102876461771056932918894007968525901520762817484730560268309182938344042992795699561399074445038804976931213155040072336807658414362249153631587727887075860588143983689286672188624051880466074597590669981816429807599290076089650601558512563481975240579749670262332701894653824577449221227087423755716384727426698772377590347524447772104182399478003016833544201626718487092664856337609040426424670859452080048035060608957687736351514170471693609501199743889402962150842005130069326652924133164120148436168006685898709507118253447750386875218033232460203977646786286959873832750149235525638186798936666717363083938669014240127059242717815500780145273673381579080900076146003833507077779611020205740891949304749290510562276928997094024103947510324517344765552280820209689251544992618195872724365040789855230339564456271314853900614306065245334869549251413727285246982279254891414034957701579468409096576570041056151033240024958426560860985124200001990728026397152601713601557773557838548862312310665424244832018715862940892153402386626193021912894160774765289917246104400753816283563818194701768997191274858806308176620290167678470202544533913410110374545766733000454152435017780750360325222628621733772925264197050710959630473397940930920179150906533721799293732549147627220505880976584696099737599286935651011927454387553630755282640412959538321315757409346035072813460288025353142219099582687246792021567739702884721244697717383825576427868809891006728679828719941167803321349957662875437612302269621543826130828565283326957321504930512748517180830206448258762649485099843546549799009378920315236331499409458543168292362445395721909184282975670024636199474333758195782724449578070546440748368966716225631206909773117801632386963542414423059079728394196658818321174651913223250981545103467417698545191387309432194771406744707664151673807905161864126565441033030962951721499457156223364904183690258846176866318487087689382518922768846909301590708557758206888259469290062099892131825916531020799656215307236322171951986120445037814634426915761873262994208194878467336676068508919673148785895294431054241555367084653843288017600468474222036358074226293738213939764761801389075824282511255635084300408742872957798922940019725359901433329626704170493359515575723654469873279517666889403288565242458364414651795063722918497692100481189701433769049204893065983450675571404626996827266070786312334960384784265433098751497589685572278351669179241868832773476964853727957341400452690471558102577987911479074399892969273542596498568146230043820307757834596407780938845919463120174001753015924380286960770892966056649599523319933006131723950489591128704837152168110103001924283623147379078207662774588335271673938489025914210434481087806212522318111082586994701241777010742885712062927738276577538052575407683218280840314864185905257565494965985216605227360148160803160738604844694547480957883059539306903180335853198519935018474545833524804640721042154706005004063012039162824072589924382485212876279654270391572469563554722852687606495468765029928883125701386236391920053994345303225563450651982482920144200553705484828712625120676179156882605470294197469456174923837844371780036794320021862946476908131611570797940665089850900248020419647262717794007900775723384622931341625400450658499888960458407379493378108323577752323462783392013912195130226445477557853904178991888936720076448855549755221073179477606569153139729149260838591926267573173493577687179321347016941424733625934726633151699255299021580395930478682225407073242999419515458294849220505264099629022421972116413607877048345862553983620730413015127749000084377600119436206827555309695999215091593113325494260231285602254963758840683520384713165355997858125653727327948025226051203339331014581416333321173884074073975319061713971816220461300486388651656725209882888397233507753144487542909101899472417287409620999125070987218742735668191662926139645282531604174101322743868586046039140322877071474550468177363661120545750277929429304020576314922284876903343995624056302838539085135003583081433481128963289741370138932474885724793036269935134930194489474877560899752751774333089070812975736106817446081268060502009110891938179829510235606781829008173135026462690447688592785485377316289591860099152857089880513980016069418622156718725721058640103942550668395981912747672803512398415431870922478026926266344654317803943045954387437405408049848649320245896123369152345775501883074223761712211726078741913628907834918984626150750001217792762353829329589823335459164058524703177457016133016750400328001745678851729495145385556978904360337634026446834011253261516912969407480982901704404726473111592485289218299764513124586111007844127926500783773845637739153233628558453309992313540931079904895465012972117173888371733102498622195912082461718596858932629088240658222584404431817188341480596235811750026694953740295922196991361906415015196950809710364145046735345742248251665700889179520821198714860936512913179739765264747344177165760836230349125515313191918139616198891701082309589439636569392836037770649394372593403273210598823220305539592757993717042138910172578843015155491777721560584667809978431242076902108785327922191663771426460514541641164661454601310840848601050985738304285849418432872564736536185920786725993935946514962561460621608641490748151906248463464521527880793146903918204446618351170444510506177288367504979269828879554079550595661157913120745282648354980148597700337768660712497531504806997862023985287700047292537895901941259598532624551630871991424490105937504704118560163917077161987057558339352518803835592061382962014755462643012222951582119656528792023522483229171307905868630269141692746991541774595080822781288852135547927952614160474129830721493513284819499957217406797570693842806566116403220160893120856282482795794993813150217209384526425743142228896356607239257297758340248918512277940096157798429156240720659534540478757369118700723039149350811029660718787144872329027478142461729087139488225418954930747302419487339396191732080819573766821802063695255148653672786682413075652947469725061545108464021636362973161503831417835367345161428704398203556453187558546572797683023155704638542149875003857658384432378363654494740654309847415216574965106950431457168609151891988043830591888431546056885099407176161362162433608180108803857602183904058990861744592484842976893735515132002427337974027882876195785025974510350647719227883381440205876486546302735919264730355005380956337856533486860790705238993728609913504433122230942067288068766993597445388453653258450717864063149842022005359060023776927786920716015373097453450846155991799489229788932297931568172409247607903117887673113434189073754427586513307501054687213445191678043699224395155669843982399323663018705277256135858964951600673988527373002120575353547556346513625655177734153125518609820413435384370039237507184349000554336009415552315044272560555866881436416140418277211856045626618919680141028137842097205815316521016279084836841241597935519049200924150252035806385141188287559908041770363047895635961955204127871661928809490684541660083287091330198565517606736210996429863746878211593864831627155764060372122884473700748404475318062459144771556623508450758313930793776767571254088899126002767266052352311028217049288973758616601888036132641781289730279874201598310244701053448446853051620034046817454095814209787262499857175558370478233412459337261241153713959550143501542844699066292950848575745021015019265973303902019373264012159577176728374558766881151502270136668276007765690228214740345992239228810892147414427470306834459960445194427971468624034196018300395680372021008418423850629860327587040034187321921269221593705814421088630347619215034959176392894874578990664024634874806778145657384936701315984088902068081486453415663684036376904915073142869160071192407915596194730205418257028674911066719330021520529137388058872641031047263811288609942341287781625057386463128865559633881816846443164640362499769138792353042756146821945408608989997588559821967371357486920473213386902338417054154608980138265875744923657978192869256342123167860299765239268532016350534406320122265819365024554590318312874969740720810868672952589977685096501030851331933875608370029188120776698503636639695658873136641371204710916894285255907870694795565609653529927538818696102110125622006818528715997948547088998673835121389587289992916513410792933520464828109831026830168505186446807074346238554178491756075644226863353703202883196588972248333265681575265113984546571832750357465088845188530252404732876391536217769735896695966149580342939466923897026421846996108323860325552337408874707002585416174761993938433752056476138151105963527564285646360088833193467002160556246225560663850220076747331909936749413099578802208879288198584495536840395006392926783367621154119659269682465582223182555492704470769231069908748001102772248571440328156694948970050998258445346039648289953349606389976966766986356507509091062743093867882352901707618537462121657730154632542725201458424257370255404841366442910433736038916002877755425835715807370334255251375887692399305627733510746205872256123209948064061296760812681176649599250336626451363923348452041861438468937472463012470689120072933448473642976610429167067247945677998260365704422552864581187604141992679710259310212904093398938353725731362532962286022955981794559368405550973324525910216528947100976384230175584500199374912115821866747748558492203876652259466036528375675673491289269052637082909428388965743748919488161356147076686386713786968666920823975627813609642841864522268459980462920246496524871872993377315701558011967139371967492769041602668531494780042469267617956605412170532243197988242360708154518169923918268806985618962334625386588159828584899653869590895787665014605162230122177745483444357355582668069660112472826944108400769443168167202435306781512444616883342965680662755616709292940157694732131205226626479255142892296994421013818171162198774393527435846041769491008348369015449447567736410957067422613035390870296004173782813788697361339675534069972574433674296269161757147746360004362516650230616958689603862013479527868209231292460924224429225411592204189634138195921423764693869492581743720913715032800431424106165087819740289962904722214668845960240620197459435389255088819571162340413188320318516431177942231776973458842332609927871394848571887634159952054652945414228260019050838480505124798956596705455477087923745853175300714374333683433914764208643951582365774001709224434982438511541823184693886193846450892914747458609180170267040455536239201431612240130291090937273033454355339942055836644545109396979566449226425864568719428413969136727369732724184996498559614993466707633619070085594074835567743325474166978674879212825867590073049152804636480418266033623490425906180047946485790522082406448301418141928407666501796920434393488029406076447754284565336498051730296387586882919462029884393157542950348618490265496840010320282761437414049563304014865486055366059436509043448303890279779398963589916754395609975353584383681938780134166231286258447410314081923956885685098742211600017989499697649592282801358720639286499878463129852201676015350110041818139581181792728857354940010232531152772231512308862021547492008131938015467294543469705641111599913827864637908997601521393155954831577432287815976367095878111308314140243040484148063244588670806549702594307900085263194571636238135331656534217415866723903450558612065701882558304357290109282190729987911461319921025574212943300658243580727470891658993040656615994278211937232032332957563932943158733947344271009600803586749910298494996675990497372031390435233465126221749803268082490959060060854233440593369310299525479796899202187999234695498434963285857476751498738629288253854385622775215406366274421024884819477229833106481737270654747073703904371731251582072882930989037735026685709072491836691820195682909491961475329566522181120366383378108537312265184657908379502410251415523889772975190355842325234195490446835543587479699738073130367652729443827254719277822232989600362193075466213919961417850559514706483348968826379741289594198975974621216292701930471273733812726645437896673865680353999343625019541730715059864576352387006905849474646985135195084153440060491442580974336024698867640004892497698314747144978414453076965194673832080615973522648848077221325912757218316649091818120944709654606951339499778053085790260487269932376908105202050299618558175990720105334394456447789827533787966375033348125252495501666365898022858604399729004062431820295401013780435877911905471160885467174973361682637650066572059070221787267346784642092435551279506962293491791821265911899619526430799553395226695455918398922291848342330208993504041610146657847882161932299828855226933279253022501492069360908936292320139090206574375350499677738178530688788730279075966477329651134432392868391660517702322401003556682055012673934979205962406523074044978398060093270306002031729807210352619166612099376277002293672679381207550297086814803412676701839563983013463068548922546034647343503868559570132130175716645958078904734262260901893498908862471794431212279499970895507820767410040258762764099137983740062510637435123130129963009813396524726587929857441671967083342523723108427266826379074061760650664140258923347405139310034908818596618843675079696445950210984228566386505489615161005258464634602295004502029953924965502095088176987567755370825325179257558479925888101472870926961012621754113661599383093483112858928123319210476495162637928562550634036741729848278033057710359306720453599809409004497878408532743518360331399179839531555565035108046525599755130876477744098229722102127309453434660250339684562908294270976364295275104181976155714522173043779374370951518862261693819081551053248923935035138813946646620732274086929903198953257314203180379723445282653145593296063336935189668097430558624795719026275868844380294632817467529676783388650641260775011388774099194431116748516566943391926511020123106286512712024559557419517463319606240248758848479848514195442517521835237203755387441845615717488930416236839264060907339662984530143051284899477575611259697579892323076003789753782257543128955344311050353875699424511389681904886024389766944428993399647555012779620010458368208069373701929121396706101519101290374769387299713150986396275016100509531415682388003526390028831695607863057780031196991933365555053319223451741473714416284144009684694204717943558802375483675294316512259625635667202991491496865964655992311148034464340051636742489017661716343814285235355839325449370058617723463387077465766954964803109292228554331614581684691089905534415816607612521548496037289071447809646492386316562649501235271615605611412909509309804677152045900467445215153617353611968791380337436573988722230262625940838867656621367743647022824839473864595662855420698132901333867573302471493639985392392010672675063695016899929308502136733172587806565907852677881708276703913248331073902409061350868146794526171748140445187534823812537768494818119329252927067371426819241457972401243233748296050323043187541244238007945560445999030968252709747764590351404352718857947033056171303611926606625069873449780836478551980060385959265535836772950128069753881448740795369958815306454081186022603748249303647546859293558467892131549910429939641341945054302069041374139915730816952082659632121998182679224875873275815737723817789439468039282660843610298438539460651804786044872595148245422472742613291961880544513512699139990817112953878952462776832628629418839695500981001713832592620785906748179055134431497518364419383894983454336882766227832540779723078173785558893423015376700087554143622403239643792758702127173968852890109678474518154797872293531766207389259684140116354527267223136093296877870351139676088175548856963587182161698644533157972437289014523783602466897654964038709994993446417935703415139810402376932356688261920634003163909955040950125428135945740930684009133885585392755471685397834492828686327310121276992433568165489085267498477681361740628718289311082671867998639183191287260214050878972248584951709044885233874246887082652326936659340001156654674173819807020919587494217818158660376575714570970343609695658297729264278726218330390452285809097714058738036858497634813114311681035411833487500886297222860428201340609922460547753266125819705964138375737199011047175641278457483327843175254338237636111801053297089041831267319761965443057021743349857933041864979106122598408078749575529311314474409203496064787893061436224214715824933718996978333032587749311615735594120312185882771048560696602356742361118027949107675173942285625007415980923747675543076273591440201386793289520080415899655080686480441095862083068595004011441646043523247332224159302262443259322060786133205721229219510285681253860419364875693604926762363774262813515061027128267413549506099174431893385923118127513958129924595580501184953068872339255208635738230972452893019060416020903970656459001147316249845316209739554091268021710121114439859298521684142900445840074721726898254854394706102416365700610445415795606838229254108145080263601436115475632295499484564955712932939148572285952798860003377489049267043286701417191342196333309860495020831225496593716651082199830451716757459804916340005679482463683156200347456343091865674587410772144678462394928621764188914850296812302774744624567689064926955618919819133345701473795522106214599099967322881733659067279999080895368900442012483844794543908486725743390083427282227743543878931285078880640407790282086510421956104684500754879626812838534944173052514969273764638694970027507004725770560837224953541021968327649747159981107694410499596766007940166464475693977483614910431725505512426921187652393048464792972247466061612489428563949457495782185198417661796371784188296946034885642698464903916682515652216816026028314653971501966551800089797939492808740554102652872514728246471931001308371062849419191927162310568356677106276526101385526746736857910151896066381402722941231713211849615024049716225640573087296058345021183574358204508734291877601855899094996247197112970012272126533602678155550409137081186275593427263353703228443355474942295237108200945593487624163840444797000914334003975286510587842021578176415308599057992425091080391797196424616454181862228892632414577219108608648236017536829811509736018279196339484234017209476063101014519044023900222703793369758316550972215481788242263506444771568464604581178522491557047523656763802311982603251688633016681538297594929997070767339229465906057837440112761967761794778993019301314028565776512718412798781393805082418558571765664386427863735875284421889139131863334855206093351472929199511435742369193742135505351991346276956427733887907890956201158145096290291675245279065479589890642654021135728186284938091752915769766673680796184291878591675489201616186867989519168313579302776927313663497447473991165978733229768213323840304501030578833319915468476840310817523783052788497925131277466554996361839708614826728770362753722127698892749863636788622361249223915665238381098960693672987465517324837594708200503892237542241748300109806269921461334773374535973814958372896743226093654710978856262377586024460555422968963086432839933681600384688658733326409238973721717645672754692056728517943083721548950419886742346181235645066150356150770720080076005955156341129704841314245318561836898433816162399951804707180041366371590614154629808950638093119720013518669321610842271425819479226222026189749338618611456733409891287266227452055660580146997664729158000247564278323707763947749730995244959648764292563542408607179155560513885288349911939328144352186473101551810159444301401988330245686196642774819636059611121603880076377981640585553037424365665939580524743160326485192718382399138770778957853364261447508318539178996615790865233976572122355793681055705768191463750847570859395634700519768497817375382011190948026607412146245656635297172038805857571964438260570900088414284666347460393037563817137703324381372033716448244272689775376521743043344297023733600090978544205091582683033229064300915102885548506595136456409231212176786318897865362132162915625945295036149465877434985308414706817907685322782703362017072435329013041946014118773390019312249515888707298121080730710383232990328370001632377451808288220929360114388441943417275166977160634365298327015578071418788316770109752690840081590235697496378987505819024164219089909326188459762717508112087229011852473322912454025382969199802988392247425396500121494859766583734882609112545972555192383061476072794457114953481232149951797517484946360083758217572716431660665876387649006127560250474929097062920862852532804769822671076256570397528986021893640597833316123358945934054285732064200440957704041019476876974364601042084887470407109420936069709471748540734387179126592503110562158523030419532315549894829511222774473314897806462042980449013914733428090303079075498803142149063587239244102214883272439770832343253213125938895719631810986123589408991120816785409467127621492838376955101151512827725188299986014115395462558669943186780445637771161841938181592209577032105791606368998775980509986888396101696115546969924725549840937416349239656552444858695527963778429527072275718275459630618005381986080528167428488583105179097973271764663825913815066348142418213878254582614372017306482215060796259044575822338568115217138988348321736844023977607529765813810160529544707451288214210781418909233695212202260237138119960747445325697241522577389950704238081291478055809673084960887239953093809882414207081615518538548315747578707486664445058125128490190682518145132423750089076205814550417012774839611180984438470976746180687106449391997725805360740524188677050901796936521358637409652230547041432318134377710713869144518431122378934029796852787097873780368836908387280144143101540523260437118481096081653858877978217962098557760208698531175565393980536698155691762099274878250331855732275487246112432275893058081300307682347347539157918893740397242394658182350836167548917505042533276431900558879128684632974510688402804581997676901513866662908319665743626103798340855873492181306608792868189411329844455864843672806375257387284751813542818118943425366015083525697940414497855897140354283593839109128143512815925083812399950451631662894557478439770939946855816839981590478052333483553426106357134720364266376898576135802715794391520733419642800639737904549235663112499569331415841251612643486649835482702481619545007547329326422835377142124325433358614915406756493372743046350706546678277628676121488162550255791322154175786212447601965775171584744071059302478672798017893983377021916248693514943889706186342310791299812051272216177601804744006668371446435005800750228844960965435008238513624632812520435791082392206735611768343947129923688996096407136189623200012824313176409828191964450936239746696949248775410782885928225918144450989658984287952733390712748166387365170760533820645884597300999865892206445793745289679390951225400138019453912372388754407667135427638210474720581526677647345135271044306176819398466500872799918227302650433574210287804683510279546009636620785654263531903903706138499506984536643809597113869427056161174372359299615386567393594321252904236059525970475258201375227931852557593438312269084969312744507187472921413463049114780725671940917943397176796171404938319780402950084483241957498825082995554806600306247331794187438088943377631198730658368822067685990090596075100679039166124574965295760985135370739441522045920778725655914521473081932988260838192846852054709979515690005767783950917695413248260525576379214786925033473026961479784199082835018610002118025016992658683401280039248005630833441010494363503745769460161543152576641484840847838973254633501237192922843891682556645456934741259457054191176452252308902317213411422470929303311394790886024509992512571112617664135367494306934193438937559544390744601488933541990861984595667588941339649418162122662696269249397903210272465388013727218462622240035053946902951848380840038910081942303530903830538908891593202927241368765752211857361120982050133054589908563478974149483718071842527987919307504841073178194438891250445995653368889797818917983565572955279889570977519840415059054402798323845608791206245829398561929676974728768953688391814274613151876501189248034721136450802759364177855965455534493306791915336290191156683944762633002505818536266664265328755705622773106796418049108030126646749604756858892868305983976048740000306958689625561276046942551971895283568628991246502025047280431319694151536657210629429930449929015618442757791867391684480502564557899619597604637926930607829517145787643739537919584915266683539653030786544249021748863954100555949364367389900373467199661007932107016683478882522332232983393557387565611137649077111915448622403071898119587943747840432536971853884404358391358688037834398490562500763805059085261230294573708991827788463305690836202093036799747732544584414913701524429438903242436816707390991148182637658533218111541704808781886382573726914344424323389774015293218681324478364291547146129419625896131635665469143694569875000065677507385898931036659245999624060695205896614480842747172540944415628158317275638756732984283627869661480695481417628115965937346145867008730065633947009877889875815586743014547106802706783969836910429348142123497080826903776790172419115644793890868376414737636611320252712342466409793820102426201359476435119373830748565264078915846826759066597386179182819353908806742149037743273794155701270188959937378290204919773337339000617167508681841066226101526697682044569667091158897800335174102882560265596188178407510768103998192402145206507909083613831183083135708378302990648477398710810350382780030765426638728614722898713703982781394014510995373434213770033557463561630471942886922294348717071133789053663971100109937586516165715178214559511039093476777932907490573732592857066403450528969298374116531121078836804484153827829186575299306640939965581164966308727342276112584749036168229673403096471652584131921970867337955269479436528624921615672152423408707380529467702093640016716265211408324283591122971756979502721548524458027605171794058476181574979934915483073562600030145624778327730338155180942497975614530732923726071961154496920649880225869667939670748001084156734041247036474408954786043944185749533650573919099600990863515490126002906622390762213228438281762598959928333433016444676965491078375739212393384279726615908370810083394023947671003105103434766752655872723866624616018594731966296477204984259126377966804503231819130034475345184613882766735608518924161553771128541124413330265021952204085113461383981849519900016142900331783326108914567873708981625844320826446888658839184377472298796134150630217971203833365052837278128971956547039142829475566654936039292676244482194383670252524938338679295066655505100079155625913606078233811303752359098352692491489255516218505245075902835931797422289094032514773819646646257785970981769686433214673195777644397644771372412382153049318423939788752000822238055530691374584128870142653273108924955778255131650986635980402125993209231103375453944542953354472596346694666203382513999710921769240848640489745955352042299059182467642503946194031752597944319307036967539509522882522641157804730063805022935303243215227660546167643414195332500530206223057575266920071057833822200553442546964156817423427171300127184309689310547845171587625855687008534332270199456710942904065677274933181055809415326846399809485024055030883204326289425739011403847848578141933240376261595820968714151069798395869425044959133110742546174457654814784795031061070858938521108453393202734936954139164191055217518810474559424064657195783487302371198737103049659973322228437180442449662146992762376911268845730430287046184805902362166648815776526066324837803381449006068833951608777314846961657820408322210126229881277681741237884949526344790390222273750290326440578841035673436292537578103917284402032892325809902685937358592059177214144686504292275838413341063560803869485542967590292513737809693029731406045618149692118389917047953760056622576130751025050920270932360197229573861550191457261236839854555700034620928386124067891929917109457638306311812849488399260061412290310659392665852689177908752207541234697039325150906639179890159199024716112971831678875829968756541395271458838241194760470352355108280574226392637879586273024213366094096420262918503204627168424914663101788676908802696888486316084243225814835259030450372628197491309187901341411400723567740574264365360145742035574374628325138451966231530724085252824157774901507838073882444546922386325744754452459034981607284883935771175828648554003809240015406389259477807921849944291100168258113238361225362349444554249889557853483478660617115288923810386308030827499342044771557933681077583678696804075165907687412962811043987266870549706115201993855336328133826329760859626109124437220046508371842489814320866299528858325351009155387336938117534926463847252056150391670984892261012405643872267602908790323741469044093560780747777447830391945828933010812924763564056183834077206855322730340750818033949095012579524390099411680101594369267500640855279222483666481184906955962078907885380207089565827689798551600863725042990415088107979188043613350435109553236408577046471049654353786255295119527066087155316095505094636726566470410681249846356615555899417009728523158105194495318018520900455332450166447114489647561940793907578842801025698269185525646733244753131015948117652109624557900582013145758341086659269129084576452627601852824349133407706744585064273019469291155111799912495511218649184222267150406088064222480903141288520642959284177045209091649532246753344519536094648874686003678461227532970789302452296684793799164853747170744137567557742152435770678594303953682756061227206478349882097111122022089832312873262166964583733270606120102552599134959319031016287263243614887796022547371632394244112795691545888572925011504495440918571709004946952452259575326618912497289140304145625702517781131345389134500150914651064781661384325130713216756736283992364166878809225050886708955577992941154592118184681130816628343378638102188008471088273585410796473566181296259888159349299247914854855515084792257135784693517947449286697354979239079733214536330542615927470469147559162249613575060060455665592824059651702535782479619144416398823777362960751687251004031686492809019748755102119917573131225926316242287760669158236048032037411381871751263921648164874004595935821641385401205563037110314542542230572854317474237704416101308983189560739568986061410002074884537063397401059752133929909933433000053208240707388741964375866559708430131544121886235327247430006117032207687448705051640633343823728682943472637012764523467231030036502476198916843746279020881762765960542682632896378981706602517476029354356303015375416706106394399587179906883599757130776395230851315038849338033626341125078487077648747006626623643414863357619348579147892715870885531294062861940767412527278205238422451760775903554115351382786206908052053873389913777722449726012491989945006714036883889256437925628430839849912542367421243351696467036618463630124707951143908333929232737886525220013292341704306960466248894592675830674964509807562266549869134522156581888320523232126006229280117211954608226207337932078042617237383206310513281984857910687717842676657007904801163498377336551539826661143039673991014555435145990460469298984395876188933607766163239715645663171149082630089628666660033235760933650472479520298071911802355458306071797215187444074617434351501014714860857372924651591529734848274438644369902784935117324391624632970066498554954559080169173472708140020926169520779998397055341072153881657278772824132494953652102211106876161415414744714326898392030185172807356846266260169724085937117386400245821336345500106480788501092724523903532316278453840206950473873275318812201631363024392511759915988318970349990148012645241850033422257042023604425493226812533570447086138918009694454187738316852548100761878696939247165083339774150002776802723995419678520232082057315848161180786185027998201972542928139699967294759692108954276203559252157367349478447861827245846802479656249531265879339726178291880622873788840367248580468998711883758443503269697229581307360856535209370171496873162267029278055396627933776118895420994667160819456363262618364996163938593900363507869353485208376217956371948176007393960864116282533039289885504439926785364796763493690298244649337827558715960256143785747137267726729681297256809200783683772744881478633398934826458458864940402096135448724839751930937123213765087108039416027253207279188062717507547275551950065059967884164528904445495969698004891307107285466773131370634174322491094945924758286352954478372758994538118605385799197691539071179490869641328528663096270644779756639491473392734700116552745428763843503834046519922790798552317288331603248532800502585089132372615992923058816320184882509779785762614372444328778711413961324428761577932583774960900480224798315720037406662055860758485668463042196357924252155636213742327796526993928711221096579831761221825699122366209036052166971763098648108929686518203521364155886617621135268660295177551761402822273615043995976816019027798298184951959833318518971098743571734403065516359601214327376288180351668148058940574586344442153314516056012466533580186565628811547943807293808215654535482706627218445430504950159861726020929390248828312752613622965532498820819006113526363063406647557546339692195254952644055218974299479916043004588992401059262987209171331183318079995706876903754513662077777614659036558348795915167972819413928402637619713508850023245900446145654825068683208355907214874188755401634223883961240601760125394548608852849439282747330701576824154463823867655666096168745171338538995106358368271734743297842603969535890064821079202961265185921213394509577362988670696581827054992855975593854567289841916242456054742562357664159149824442287079971818832969693513165636143612396019077510977623086963484221269825553597674304523078339414413322655844412290583330752552888905821575008313818639549043157018603643946969298886474695108497767748235999730996827875692316543431393666948959526582669303527090012952195847224198214473644583649611165905863141767903394738260781792923851954453238613688596201816821586785527551313052655546738882385364807665233547845125760330670494770477247439738089178756529441569704280032575171296300778884307359942928740024636498015362252759791033036334001596003968292110859398986042379636593225650154186910057810626858887097877559326279825903408811458190105727959009254486367676604587223758078761997030668559455416748144110710903212083395891420186895580028656523913923225090118104587638419986760481137367641305412443530570887174916109009787987349845717921041664432340990009022212299890005692504392248439604571084413678367700824122776548033851397600267651978560374002945217445242173111866519462260120994172915344541106417275769380684680303851720923256293745534303125970414635529838253517609015236163015769352762871639464196764171732001740484426883435703944688226544861455089047286315984377227915033440375173073646242519159768338241186516743426910791194356866422527531217284175757274052116457533506123595923090954669672221994020991568035666655281207593450898714916758752067366649224523558488589576975807225112877503145432125671324831088189876166104868209841061507357111224797308127244827852704282627426701937417968597944105138521462231555732498442318651040691890918555660748824882407960407235960311659520768623064834787324958963619570264989047303317645531010165694938385858060382770341735395583201199325100418311843758875967820972352331612005262609129816039538213658887108909329141739057899004317651488412119465068761736906410196447413764232436827618923086002282511599799357566961937814046206066319308866875338920400949134604085238842087711360849686117728896538999867087805476153510657146152329232115536712704111465885898594330924517457106441873230424469771103283455659499601333190612295645941151108834503288866211338473536271457509764499919360812989637091982878228722884014363510767140480207667965052573139339768709403408669451300135502432299344968263263076277607705684192314171102674506351138338933742077681484607537540483758073623837515545622040351071559833595808103511194113820338233030142069615536017129299282541211824458983359323460196016785216700911076843538835838560684672067728701478471033129020933700390457918114345326133879547756169573589465704488956618351509357896151130112504336299762505434986095588521113206651201888393344782467374686085472937735789687184360877590763867802717526906682900092433892972555704823733557172768495899805607442581971114551153903488363991271508159493380533425097471719062612206470076252113632197868742619907366973189715038634868075315464458741636753458018688037482990073127589490944132544365313056684699869818415288027187947633224360900164612203936485683555153723032043180653517218772599706865722953654906241885183238339655835776947079445301512372279898471859245474516392913535295169150467271593941595679781590452011160623482024908177588977686357398448953528039968482346221737951998505708520878488977787563394800751676120416795089759264266031754833381297720144465759843316404462832555315454626127529506367176235135830384987184527207159067735686647033619649917970215762314352838003732732816183819026692176627767023254157090682008507110694075989862838418465720271431745957301029434359527321691790486339239937443604417824153948750425869290859038776695693520677640608245996378808230817410060323591887854985030591004327389955997691539525210170619320553608290444849399915082177594102858789653487833661252535364311383540776212745969627042557855813678701007882385162317340156500560316759756783834561253541972363667002224691826642198791102560145057844931370640981443173440719522690066461081955669732822967597893736779812240255688720196923907909006329812042070307154649561421089947519966199432028975938849314403902404360557028235312832298263845084934169192012636489719182048749814786734668885578674478447276884978210518712016128874758544219109881684890539913328395859429785003979162635845792173256132648803269040302562549186626081088397541978232798288030138070891969815088170354817423564800402427341164949883241536950991660633048492973094384939885878818321273598673168730433301852959037213313827723509952511358612129026104548456035575172943353489375305064792725876138568526504863551578234989547185777991447676913789404967651984365377431201430058023900799459559916628866125816082476661058624836822510977600769167294607280120483603161378846381422884830866743092318805023189696394386079864437726424928381209308733234795127106305957091548101381205061430446591117925248472073237264723617757450303492744935687747329833978888689390569703732321937225479139685297131876083067186685601532111134070968171874360848429349338875959921572732597999712747445131382403474526253868254922688887262093325689072596987284318117373609564302947893637354935332577838456633332470657128910885234878825923719666648993069881451781199797567433585971830403534429733039209994626781277194124481319331989908862130501129551285447723466429873909129281243640365979769562581012660683652846813782997256303236941303877269675083411881192635141141181243693806077079695274294557292899504304032059551598657971255497329327013980193838066721712929576537371253501537708764332177374790656029368555567338827760254930307324377925518082930732611893966372308916981020228948357865610031442349632513265812378899564402123804412939817085231414353100028321465829513037648418835572073292241450776045325242151424483060434788457338644872715814849383545210970710721889866867288758765619174600570462402482005421685120999866621541185199672218253826975145980329928133078197013373823490058419974551091411085586166700231535799621165489426451533093434618843766777660284284287545724596222190758925117131702853989039056109811549304965810074749676852763905977167752640804389148379497863449997218564856027100408878203340857237496634799939932431590034377767152702935856550243703620721811506257947632630808947643805897441564260152955184862097154065582225546870831492507494384401847956627278843536603614650835952944426359348657844725736055665220082359307992436968558956183950951827978917589292506666072768938834827687440645633348459930168931496757568567395670386831568683524858340018829834804175401279243618890002305013522279245393969255757437952844211623169179449118099160239487305858595647103796044080228561314597207590774975827052148321368957251156805782534773371501984738406188005942926953041700704064833865403870763025517366035038324076298160562450944451123407790065757602970088557526659153757294222123642002279629942535380873851357832286022832257255199172320484078072063397974358187022018309529285665265643422444238284038459687816613037297612593401711079731566196161462111647838545246104899611887176065477008252189415525032409049337596456316137473269279959122133006547814827326568917255623309656890189786609472062815154122076078665017538837871903439914122105837603279167732942193659843521916843534773552519349376041489352699234415042561952471339657560822562792008687437994238487124780591413243001373906735787107965183832893260352395190753585660168237332775127185198855106565088025574542726661783792427063606325530054756141321055678152691580254536165421022208883779093633370701843161766085480662082574935978444290348002603998476359803924164344288133362179785109061597303213083117899442839999951549586088058484029356931227633756627826102252589143090965573234716681417666588243464599455176942562754402672451506205946642929831932236483471811270882217283660477041709630296871127477923945550169765646927701037414992615684805850627200745743876571043508387579210458712992630309080600066385697034554959298751259329695640507433251036484065685599062271568966015449698644251731831010941252702758591429094701329587028290439658433072023425705886372642955679086823151698837386332094127465358563957444386136061948181462340822435273768252873543988099488183971083277624120407497219518964716578691525506095440433360143525527207368507928725839483850307775061048719747976945564626149287263585746668780651622381815794522474817498377529038689159630771881021977322421587092216493115197919349070837463391616780947920120882338068198891225770414731946919759892578521891644554888191979402249274085656850137522298705322660274683295092549841106827738140077090292815859591641079380016894429391437817520822581103807707066810513732687486530629215573380254424219170294158716908512571180632741976901465729386053289525202838165298955592528984612212889163781633957184963823253084548026601886959577055208850882414003543212545164209421007691607789867226371458949095912277432183759745090009834021562472763826630678252503185494965981581883587369646573846864088829871256846532060787805802869527073260586206144001702957567475666973988426572681205706425108744264506403965396734924843451877855944526961765872258628732629949841660210914648134345604627996341518121086157865972787265478815310244699226378487152104779758254320177559769464951013611363631739656560400525516888014542364122224938040902055301259882689086069829704618328105951616979432388894834987911551435413633567553483341535061198798267841079794666102446944208824710390614944113395645570424717625543483517587975698028481213490204920239462315253784603380006731342337460666177572953468438011664580395023066666614765969469680033759983253086667826808384547460384984316411629587164508394319980898803981593901337374054018904921598380393591293816688804901157937479437256218010942574483164141781437784037446798114016023998875694121196709728670376106692794759356799195694002351403536562298745173110119339609362125975566736831820262445409825180755717478760243471411903240881635860139730807903620023392572446517354247163068493739369212834542013416976459602874406791632487214457636980513757861001911739925695125668221740837145662248065576035055088783858084559503408540689596887033854523957357029130659659296293066090009220531196814841087188479427940166019390999294011752885141780084114876232796569775970233986207578740075150567944515918838493817833867261718371878781603243284176922923063893322745228183861809854914229904973038257936434737378956127962853289666437366349744220035828840466235266476740341299252602418160712265705060541851757760704425135634683204023441958148971818526666675757698144288538781718397530999401406149567501405362101463909882732585346275029657691584019963131077291670994966732490490981328939173261315439742138978684623961677150793083204636869692291014671132841569325793733443476656213752092136197777043986414216650699055256874422170189549340354817066030114381659765351585304184667929045679933815273901509038161621905569099605944246994322936687116364696973884497574269064290619335715507143948102867446349285276342218173383901648367468413967885326398905815080240820277222076661623467989899091096270036315538402712360869286320930512027093020848972233916839839868151556206964529669758389898794488526315649147224153812668564154986910541730432811034949155293484577036575480956759439157252010560531895995934408531865240212189979068560103615216345266794961338178944831098154668527006350031712651722571387449934394623195588805448079937966402606568361931771985823425163772132492419495291972204155485464513398785973048144734551723589398599352477853612040440126192221414483006948261827435291322314480623196179841858170198316401056448415508781546700520492575180899710044027599824939052073199470100413471036350763599986239935002455645998794927799628435607643796856083014969431283828706459165374996514225805644010226026223326031312413669251927817446014030585684624848735949701244215649244429823285920447165548354688746973831834230273930414827383189868730172127664068540787171339448591332341119942804070113243809594663171294637488053432836597376677014988918005715782196937983468323531692456598048769715509742072627385223270725607951096290317295595054430144344569004454794086677978036651462413274178628704060496784082090132148862655546451835200354732614749205965680459661793189841331367431919425874883812039699436496908905751851580419687772630910606893484150405234182767896227699218357169722057392584611377129132378968000616852433359748476369098643488665168445771921475418544810986943547943281932907982826267508518688075455032222342439477786789401488583502065345484795151318872185728933386732222252144535094509443124900091192517375599128064422518394860519767551659573782788890717938430232436679807501207936423857367542402446945622524930944865532622060386096664736463526229964821311186727032807779326078044086707033557714832670559082361873376592798725352040702650831519933853970120381825231833407363435036423711868541130171102517114194436018098444410352170317763796840423004166297248120481812905246255158066284931415680414376738459707354697416216128926952225732588980824332555858848987016470486569741392322496230902481638583779773213328004513395759802054278118849592992796027017757241383363715357538923515882133965188396368199499316372594753982154508437345653908152943386438984550808762555111806885892951370580250974045535109975518374944651971903045734913476461489016934332735196462362493461633924851604713602481109847084971109687777939849173223402874749401281211697865837916654340742139736400669573711321806041829311047985775243625416261198688413548215229269953723710227871382558388762812090850996670546291629865401191381889875269905294964648934732728611779185614592117594538401198787297821454079857999054554326690450417087022118242796250418966207452999312248213696644092445476574359997587563846249461334681747104120393638176217880032718070887567457947624009102203348384154449247166609670952762019535021803152619993611682008256895529603698810734157178974535349833265986128881694599530808268792232624036301593183344398140854046062501530010314637271269925498555115783467747717416225773003147799115237518037831946435652261022596140012116273019246823127212278669891997375378350986800764068566351673548195060133384295681849240712495524216524725063770317007101579442311176261944715326250895604337821966200497509804174201548610739714766490305302400426229300648570783376894246740594944663862384368065141263317967842622714264357162315112622626009570588067357941358838419845956483942325277384737334028444678498322327197303015741353972178215244495976775217016122826517354432636429361408729996137846544977805650696451912767758981691733403856105691955752591002895322438955819478224058038524033801880516135218269552733349514403950099969594482264986541869693400621417361373311931491597985429749321909288132194675209673375988362396038791001745540684062530290956620419850595821677426641673973780798260730483000627624112046205831060821977722862708782843062040378770035598287273009964428381447371375923107720297913195003693819366595917807599898187057319442458722684021451194331644981792808310403188882228298649805780095103106500393685610847663988363905286643018194967160806552394212151587052296802258960568324588628585158920369217563017873726557174390878847489051848891181671277426061783769922436120891937637401769923318272190636326969308601470390105190455139484031674440863078632829833960912755538872287854537178335239861661525503728052142596322431102177655835357138246179233477535570445405651143272398054935889907602567787679294895708909054611873352532416142939563755868106136022482144916789225534856841931050340433805965387487460758584528598134832427063498360076028089617131238158251482895699803268411512481456803230443541749923678187297199601175360693891331559780776717443091632301390912050802534027909964411628012907028378256685720098335680192107580422646915050110093225177082468581445604020810294967247582220859912787707799085993737501578008463342147968265255328203545263461564677096609149054911038521778017929318615217786392043389323393089426688121250372393771386145398208417467339250083225272800244179994721465351304894383856522744513918753682300426163062681128024916596280259297343780225344658920878397605788565349769238836852683681992778140897237714519215253013094437191801212727089443619341663069287795259728681183385395113415076937412570643732040078389616716460073294327521535452405666858649895899336364084329718588186480499084560981104747339398812899459190142476617975742456431276129718276659581375132357828049843720806856670634233033788418376695776246836876480815182114153016065991735670820239102792717990081746464858696763365712534438394234879502532995491473694424298586096147926817543560146808182876842398811761507936265787066955435373738105437941833601797475734856580883734506653367868685823221276298099327223697698674155388610508951967725073618342394653921230915593267283815879489609797389816911302949788610945716177256380323697460425456740852927044109886093382026453744720082076267924131974324810142390221819265773803315232202169131445687182623762713058111118139108472174522849614368795228121750394494985061770059323562007636586997571807545706318606014201683119625434463032564722710010119043383980189103799929080149021599080389988544862745989565778222312225640076251189991367648015548700577836619751415010357678242513496513160131317992021850267075246924004186023135425768896510446113459512138374936705549212074051474810568369135931560307080900783457426347654540557305799001662870336281004652712217778379326440439261127448620521174892758578600782439336057660254722610073935864432840398217421620000355604940847801430671563857465044390308333558885791229269004481921858790685291411137916484477180050580251575585436394747679131365296610678735712796233336086920620881191983192521463998490696544653090243892009374332904759352565635155704042197598956051076051328562060989029980854356026899856529829583379098330956704960583082060780236186208504283324321981337320759262978017957606982920354305276338726165754395159690881024831393327006040350966332499255576687894103029637661657741266996796153247312851893552940732103174826107086816667462288089267026885282836772947050771837334254033508254384035798133502387713898558847591190507086432240048124866572746553904939757105245303417970954758203300655285176408666307293632697541986092134886809085243807568314364907615208638223977006198791225535654838368443100101383768078445724103550779105842089407601516023952138297219082719177270088489587032879519953392534625239531506003310626166511041608917692818973559400206676323904132536183360867205345610639052981914364598512090864973231000204582952702367465753781493774631045339955729812838209765219448397663377493402902886199755368282312024847728511142695517021960294671606610240496440569662532602976637167654377829470404321408881143747396225994838426051050885443936549340762604456784417145293908889812456478152801394063349155529475308945238052840340824335432211488895114470032170373918787306679450699940364167100567395694979352326851658260851056480411744551622541807635933505867602440241284554679962204126438040853017208896499529844647666091703348047461157226537067163855920396610503905126650069915966403049841589256542291545012357849458325997277117477541357648863200616320873276477537999074074387492725245760075864469684174867892795010405820838214260520630289831501735483117021155129133060435034464312220944042960978735761235392367835360538237374216674096614006840619133950592915319933911179310675653921626204476802401929289653135072750722884202293157360178895844869169369530354676522585392829139569221642733704923150008802878593606160240663684929539084889638826152402393816640449196031818647356522136466757947633576281840618860009919496977066347733099689224194676303658342507975573903998682958104204706960721044124281886402649710380229939163537942654302153331752829793947901561851176360506284244925100316786873318394206167728550055539318260551329040287069774584725152744268155191896579876932312652766855289985325690026782045136283693236232861838914207229177215738663170773869297002995559239675057785874507615993533205124345133077969774044947171830722758098072467565611717253502908507839948070801350954881056706017148381031341862110075240887430919494997343195991341503488237945951449244301361999365525481887320861000697210513681054028754100520452988687332149040629579122375940619390136167065895714695948207218831039553691522775693389305379312216343974158698794907800509286740767183176957417092616134089534806625594249895845145552907219283058779773956064354177546645804123460572398772361880069217833688767521008986499022408883259836362505671846287459938092528487613047331217871917259549109323409761484374280317136167004804411602017956324119242403550057550842499414231175291449499695489262505617188275049034443392449185155565889570497084027727155506805114517300463256245733348091128951728934521560552757188588445052024878573249524181280027441346980988305374119493775361986984330172349293584877033462033229566730963106522981143739582781450724062162684649730486301301446104172215503068587892274528605789237685921102101731482010420812921902938274666126580980227164841364369671222044079510292150257025460142589847449598067445901311367028282551781678747485735494646696494555610222386244312300456449020244947221315552071140369871516334704336521983626292383114814621658436110709502518161051112665534719811068111550631139754113028863364540907315401819032559670542613044826394240874303259177379787672487250774865162531430570859273872400415068815041272240311869632480758076048216991314469353018994888795591160803238920479556335240334874589967885741498403773801347094875875391819108404625894709309458861702590242349860948408622578212588849245088010906188598626610468473290673675431834804305845041047873905695077086435882463285332642927846324333967965482850585167303889000875609859945524688954355289571042532535614705711544382616619181292343940705393138654354979443946885091718200781983663249359020568571178467936426891788342465829674567960584159856572830540130404194503931952573823786712442841194903766714350820919557288971461232587218526655068545102231293072201541939829135508550415278994567818758146166408966074545093177799735580690351029624915827315141419895171333221868886659301404580845607078203994047550411495888103010040025101575797542683744112866818890311166345411196113442432314714296218452603767057949423377617555810052293738787436238679971125691868994369177507861185803240529874065775442330351260677594645580900068077219247697505851773692694870938501643521406947107034392056935665018110289762547700536089686107795872780939172458315478013980114555385868466465846733894402966909026534308306689817507737003359642426199742372509325743225563404286843788317980412798397275863427881068075015977891466649580716399399849685201587395658683438940868737771137757672049886538598170074179740035393128369649595031168053489568943005671904157992792149933997368395961475799128269882078022984630270085387573584480619221314000800759323023585335436432302841446146292551386121128004068302360513725575415675941858688491668556051365099175471839638988311673778818216514028389432019075760917568205343329827384524362059937367501180958737292167980281820362466513276549840683363919429416831966856538669942720054553400759897383451481104140382103698020299644136236952741517098045947905282897809920534052814525523424993524960112618535257832635009358394596026743595139254294548171292483399143277721763187995840917446110149102872138625473970426697441208497995433986938084540791020691541878673802287870959721121253809537310680362204652398630745701399791023287484804872066892558215059696153317099695378477118342919358133176044980229396946459153114323098876991221645414036173588473304371373652551165872502905209946011424821273626019048217541555819052822820789546029491533802435930534296518642877328893724693199754981617545832818436679560809456403197356997424496750476926021101856984260268381702831618999713501943954550486994895170296122085440718195232192306583030544253235112063226686588518449283881015519474082406211263192477598337222036669098518046842412663653163584633605414352390785620384403557357585127609953530469248370119986269474049148905253604332059641348479288015111937518997549878711830182335400707485901720258134474488645536287771092372744754748551867008871900363773037431820728801605696914462756819347978353242744033365046043904415693832108999794106846911099726840825576582573242257107028598783811914115881972118627718393378329226333726029974526181163507391525887489195666539172335466806760454123983436279108106569606239075355649199136128054873247029994917515933510096049663229036395016668647730366620879894506812433307420820695740918917321496649094588116594367384636599341872977063626167235155721488166575723540506784154040407241976526094278340958831251498374845799003407749584172068865749071599983671521302453327845446698319855746965973048130515740346225961425758811966362099411123081636610937517750004816118820932098501126710901311499733767853797781815372320485022921273371079267513735842929100148050109196309424449062922352397009976407318755638569718179298683550011378246431823512114394952858782405126376166340802409677682070247648872977553010792487007211195934800891677920991114413911449289611034756129990158483897262799906807966826812664089775841828684527435408207364792849045859607974461431780448094548155873174759442523642222080213250604437765137632146058172018585354380170292903573163822972279092359247303138168345633300971148583533639150354544132788346586358387834236778051600978724361662985796658988856042565717776422375912232119112224600065049183358061351385082125055791420602215669035122400056513711326204654233886196747694542971993255658579328154580562992591032798553248585787527246422944246932697225684778231904074786839721046723513585279283771008971604686907445351478072396979713374387912591266844762028650828616000760223654911004169849430859008622009202150715019284569886601024854404423693584277590017773195888557497036236578708516790755620882397684101925456273862909200269490627404973936694484572181022538614889907594457451184221547759277898323529934534461647842875087768565194760033299796523584826541905633469305946674880716891810313285129919078219515190691207071734743058669307849685830978532609022591216055992767473755623931595654034516788198808469951637092602039145091558814557951813728891371924111615386601061927854096494926178357985216267806772438101982876928598594920703836317346224617703174290694045701586420144316908300679898802467246744968227312202585285000293368441234002884810838060071297484370264537340673917184259892190425348889537187142777112877899137953223322275620845740491186558153595196850483416211256928947957834115003665871461836589376302514896291141104187822108339011021977060800303870809955417431284077448233474810641877362791534702116559935381148387304508786316383199725124113193069781376653599707780874906750528135099786230919290380855335984168144990455494593868531523516963497981851912159058702454475816963797673202544076502632269613424968289724075363727586908915896678347742995504775742452184119090268248927722578751621767881733716278103308932213399621644237402506313211066326612510542895550746282226750701850832913480288167038912014579300643986420832314902841781392807853654239194445262460594684889390462673342417802666181915375426664823294744489475978295422975366324714580071086205831600541133953022227085689521377242736484662520657929137736634065994504182970310325952966876944010869032724584165261682420740185630138242912969749594252082779892319839355561634045354876788305440275772944736221423245286050411782638924293972648329477433750373648694111577608792881303500982087162957662139201032036991903826193908720341032849134493606442372388438304319650032604973950818407908069188991707466556276091991077939388101414275949494247758173400234553743216857057957602497883852239545556785204156563547336672759518429208371731393403181242107498378585260815422387124718823218544049812276747630831672871383608714945969155095659318575437992671880280412681187047103437125584930482506665069398420185575295101820958730351686415144384516667126264180727373063220359064294196014450918844900951590193621361840781161615531058719144475813340404332652315114987366714464909151636135570976911195474391531135449880277736233193721295328715504724251945665482837405154585583712987055389190200735184511190856432811186406181355345748716586055244235987131497463413453651988825768651187348850143561007435209750453174739218980203592346277163458281295561655599166821013240494670425891148245091371801629874416220266806987996066497810617053549384175064617462863373496162365166179967926215292726896337920143942476724993297238093914778903965401891172944865526703934623188607137716196222013082610264251073635835476265409925744627994396963436344939369950895634227035318546995513604772818801439206491076155154163324201884846799600814187852196139060018800666090839376054858872219362165721111838889094464237724948910561547532991204683356590954860846843335025120272601554709602061692892660691172478717591407334818848640381122059905013910505763724528337359297517282151919714478718474079947219194466867690502779980285433635415115005293872896367634606029337428207768951125410884389017657959509742667257981070177204494935861353245898682821934979149709084561648412917531733602616492507716705987170756246638260853005031777233416518221204951163140324627677675851295027901223871241707027311067259074540926120992574081656411806760249243959237512449606777214753917422291419716664249947273470883001971572263563379547173508934688131604103647952166790319097210777337801783721906488739364540945377967746762815575378610602094032547575394451362767421681556355296490970210402806615469511626597817812610063024676313468739607717142459404250697321925369160948282439715764921771294028327448135594426257854566990291473138549881832325967858713108127670481697368600592883842066674558774763165962648864901476449458157014051645146996918540457456950206644756267801944480452507615452760838097772477345752547821081818206503462070010786023293764071620402758670749895706874641845574543810812495983843654380496778844479909273845872085861472423783357218056461460359211521271568874220421555374614304154001359966751283142189514689832645270732245113894943623535599804130001809730278494593752361083707688952799830673763176818645376265265367780131353412141307073805029251755126767092078954922136569446489792683041625423297176932056333940311505842999970708565551629275172682730797731529491929204889457087176717713831197013167691319538829661562467468087968977489580475304794542737314445648077648882048356789784482775480527774247211737797690580020653133070237107443693944966243700232498771466912356880043754115467695697329333798374329267121230294981486123713182855074331770986655790002311527625359103415433049570859106225808662580416289439589914254943749820693261697909998432808930309584617945224342920822910994852870689827566606687748231849607542731042192553618275805871831387864132254423909310197107078364670078114618437138337704513883062410947027585958923959368241377936035361870404323987080381177080548728285872716722745370113033766365441646358313457256392927473055112082396624932741839675659737364459505358010250526392988665012970674354463578652517487128532926410082039407000410604720071680781698979195643706449214355023486447205250880210294087402798346374544849115624694803132854328381722576589301815276320553974828974151129856587915919378170415301274785992453155235715685831301181468774506747941935457693326090584084731380694178893544545566796998776495981958332088959970891996626940817135413829466031768018468682706675416249751569384198931410516392910272802059620690092575621358063890400783183341638851787069299401239630816445260273086602501863429216163429132036273626378083593243019832635537481936864077118127207158827390024733140342000532959821309465740817158419784308725657855031919196847951652184033321045030322890564258508347858012957915298362823681729574216927046791619181003801424311108887256273590294282464628162060165106128752172333214052925380031117175943968950645964993353601627629572517609816251122775877526180128246766019429104406181243659128802582797969042004360120388993428486100799893450508419351514096011275114132915496725921162095020875237727938950172203509082860533578491442485925451868108195600533583183073999923161052368928235990033526791564412365788701455087907404109819598240897778193762902314359866976298714253093105683852880911855207650379950980525257319058112315882970369248963019811967186212938095887062017681671078847845090491032581870066080586944427384364779704950920362540089304447109032993623898717489831780828821136885803215391361137353087934799752142793610484535671706531903598009457712072235285882945573976249115649224481671895260124827416260516716137935859047780523416867795186567119402505674642866300227205060773919533713757409870792107099446854674745339524652703473938400152145014342939245474225274351781190536284194928932533003297845079343644842217831606936646783145929038142799389109495297202599934147222800888522693415819600473172187586721510218611031987917368097625443345771600363476536283027706973175044304327479552873564625382538021714741805763929446737416232786577425589439908779226599332047450863495407595568021025365343553034841596010785695925720853080961492401417583416902339938567955029038020930894329230937775575926837995358115701134152991265480609195012436956725679518371315588669539327687285812340438587102372288914885793275194256017329450356512031597813650486463001028996493363690254678421681061292033280123314017602823280539262306870809142763929232495277968993474927145430742516998585798977617055658155688760351607028463381355351091453014051583371955589714708774610907699227478364524535426495510165318711309464262468765346895980514281915577008794600842756813407819807529412969455077948133102027870028448174703124617500103744783358986481445418151568754596570923828480468352287691245342064753500370229294813026185510718422729776578880553415444339737757516595812106451772864945298660598549657889074788729268329303296915243910760233350370064849509202292313823193034688896569007870465767290376133977267724587961409009824993491305237336288903081751531201666585249992069614657300153807772793071772519141442578752710127662871752304399972714721822651225635105971004865414486551354663799671485851103784986996854630766435186144421663494500734078057049889557024324256764431553335953770579560206238612866112870945865333723034276102226454017110435166628447624968090256781902470700891188348295059004803530494404125518601534044605916494477111119175324049644752797593792622506633963638402183552176931056509255183131696598490329666314848525336114760964624199212632307138019462810321054067827244067663845775513884717628591243068349538374828711951464484608603612056772688039388444708259972779834596308484547716262142936529636650132682150695498214312319816622857247890772569499900505260727871686852053896605680597437937568778708333017299107185496035905298415418885058350963972927920745665157118660300765179220863471945505580275041705390948720397086700049277799718542872757875258632849462416041853315909811099644714359269566906681069211799246511777113901311551228272863447670985399962175425900145918554545362215914636505886786147947514454835159590778858240166208009826381360342637696968486025183130771794587913269416870361884662892600087138840140142245089474017173696102260753244347172784792101310850207568928992584850280543887708218305737068841830347222518912004265070307450286394823781746145167508151070197039905601957334921334843917007964559507880065140504493245934274215339217764396276630565386139854124609231660522688782893720852203405105403829594817583080676598150441720206109135816946692323785402552161201478856976235916580175886771046897710763798665715926408295954513612234564076290376365972693737630053123852483719837006534822050613446405023128504273867401106753985562418165756259973082591648970536766099764533941025877107139801569546209507989325089734091496787125759648023879295285313985542950147358730001802791387478258244744748401669375868174995065754091877325910996148828784456879119781548976703451003263266336031061346623407455994667728816605972521421626787649979330806870528185511045904192463056878578166608645386398197044593304647726435974842435487787095313923554536944518759290621964222618113456843843178414067527671738845621328603197231610188760372635323769813220300058318100565048641386350894737915740713241127149534949344117861754392611868291830281857814670598685677919874521432321679346337027650255903270418988597191948513217783678572832523505867040614112765150257713031110761791293901574754156023174301954975866444248536034188359354533244441231061637932905712857123615122119678818973511943541132049042513086397546428057205965132830365075636620613162533622866564287676261268702371497294702966149351976932240471451521166112957791487997388189661497053330839051478504813549174341975131381448680732044974630186050860229831135094597263598903818785310034825104425239131247617042871280436755056414793051650870653930079240379071530926074097285143328288361858992528425598681752724375587553269807684174087250259593318193297562362401896732671926726369168186459741776215205109291135550578631010219076516614415305810205314418938663703592689236068837340031556126612191417653156115735370472653164766302119403604742781040482224758629165539781304364613436041331060457591319723521979384766729201093490628298156133109747306417610779933183838558255706541491305341341954526446975426470116870663244818110403422284190533341977558510415596818692027007517489679892297135793061821254523528406761220750836256032607141496744266509080966528332238571677482905265680878073941978159796796795397726049648548629462673756303620325775726148242698302603289773250202486335205683705981176168599754096159515247122494453136862043278504630702350426795530878002792695741864609820995153660743005781362000710117908365350859823226817824838357401284075662160972811941479985044397570133735790743261728461020046119690445041641843400171086066540779904293820823888827861620498051709932177290500246266024821903365529665464289845837968070128109654138147776166088883110379950951554782907596818789587293250894442197519014042201350550412894664081225330971006480139552894486277381607773081138970632512332553340065046790031176488290062606614697024345787855456640310370996597311753203567508229374459253630474260959969688819949643223820881854832440397099839642816465384386931489495019083646440949994445680027576931279073875367082693730312832745832850499286921847211483869645855033146462440112912560051298620698228578587387964063024284782587308792165264365604844566243561596130116653865036000511973098009985462470677362511605940423461479341495396973772354835205983345108216002531788041817966259330089481337944374224765789409466511184585038867431180387981012282036687257541431819571702491421909502501030179448976726806578661016261395666349887708280838623088047366942206209800697355721240449743491692833174304605451692380408366514381082461226015927776668085893411761727636293925037459172358055168576998663374241388612779306008807698735132246705434558905809559354375765909043898722223335835170385469554687607170591816562422549546326765495145565622016548169610525695777892381943800819136018850209648403396461280554158065925321567689812557859400182012226368007691388752318350445898911355903898307101277655888191685894293419493190622929989733057247618180304368785174244818895304294312674767658966854701890954396450989938889975225612019881145124612721904962530298798049900895751256593904187061153579174510090836321947652875463005889648528738847409283445001134448446805543488596001524648475214133438338105956921967474345778984840776200344826965413693667545486206191214593437071115466108872937529789797642949930072522283236046123134923196758015949010036479827141581822277212200976815077245017853865638423741820542321819238692774088494218902277531770016741662917918429448739403450247702137419604227481286336818242959157044636005161171498818434124846180869183852371626536464229736040913971232708099715652436332461704019099022856821783088400010603891778605872436131567051078042449736764634560260597093455505484302860928360488924217840660505984933260092834163780917894904209944968365307607349040513832502410635928639820166609522169500946432007997691144932595133038882078223971004136268669484151577128181490075304497307667044524034939055866835115375428688167834043883219329917493443868051701194524337006416632127074397354821218179838513897552067447895704595921915183246266365834555207349183078070540863527622449822936237447306880551947595013449964623289909933678236694510475311575004369367756505159861954156797546430370607626127963178505371479138393009010513346791522304919024528477257854793053653145307476799115780390712234053212497258215792949242331192043677708306617012566766876116423917512599360387171569403894145968161421877371557962699929295029574208949512637152027675014969868114745313650490964740628469833056556867498548901987314333446401251386841642413727367935538137929962534065804849001619016757470796374599961813921828349595284543046816157846999449756082788349102526516099627061738304424262633571856062463178274050611823963783690362446787974779798841897037174227286320470680460785412457409951159190632852832932892105628121211692167559488652709155998743088511837838331931885413188973841888201814889257746423979931451090747064692102387348552413573137925871174943065107186124083566923032770077025353131495656349678874396300226572444867516929162496616107054444531621197169668999774108887615722491887583020104576519424837342787576853577868572417137114079977066757349309836832732958295596206891570584115587154796040013185033864191601751269739303750514433067634843494433498644939175679845815471507865120834101893758947174733178318172882215640179450414559235038065178539448258362620571629146210410421839580352963205507092534804876926114782323358315162815161412970533128791521507106921265353017759595852989656159003872197094320852161578064995924129774208740355511555573250737147797563496468059455869598523295441146972542664957755207774671389104295469688975521610769714244759611530094088548794214713693385449174360065097437297028044779945560793749462618993916685656886404612378734191330549984446690203164120574199470116474033339798695991680491557274388831773428786867804423788277047736763748042740205526163863342212591440216454348613652631378990942825810129629281071849672891131401202289158100982680474796166796548126744989822793585810137857340511410221980545324508370127148476902951537905978514089130577095141164157609447538040086528705217191051338778930638780411959655050154806393032873494684059695289355490892427927660098084602057286915151531153589528258441267827835362303697214375339087429474931145448001468189058370746964372312417604706604007872048313510274852425013603183787928455349330133288047517905253973354185137517757060895756141697107530581950289087866692588733454747819293172649163656340583411499402581294816164869732662297803822467181482259558598346699333878710414722038140187299873845460279580729468150803549702212514003262044903726550084952600569774472447934721707264150232143353614373563819764444636614100778151115260879325017818656172808186696293644594892015186482712738083298609977638765750144251905173984925562154031529259370499787494060682105552754086082188514563838639343137283422177061343593631043054504825547414606323719434428521561045593120789689297080160312684145476373225457358506457908595554154373247724832173313403387324185717933520258021570862319605171662070603698189265729960450010530976380873393338976543222410076562373316650847545290346786582690212636837117805099059989514901338136106755708503691782330819219125071203115307228858541214492204052085078422416213776026176866051377057950263887909776585192604301545387855991884765223113307672916065094141675639173376201909926647207548590931136264804243546520295734392428654099121830305754191538951847228740659073349852308490869732956811979169502281326222784177268200657725210462808731993983807840289797778037817413981553494178561083181330654449064863206002264559738641116964723232252487743036820260913838889627756930793877525009362942340556716904633411010772151347986151742073639758673137510112595670234132919920725219668193627662178763259033049551623382540097316956233173078832063382533026307684350322160571688013003831710840965751023610716830102260797141210407542366882505952375414594316139464794823595639128116556189513277732993260831978007488137185018510709311679280620531354915716459783970715678506338578406376553035890815726231706165275810976647413126196864569430967578109930457521560116428075987708103411932663523106051751956260685010311008621428934491191782544874805276640511102905767421777925459630868104020863458948029835206425944632411026485871820823025517728571063120671156454179693581214989378249569729731586615115419047377585570430086040681866656688265844341452397418085607251787262233126765607931268696814847527336686233402774707014770541679519322625537578419381807016134891644254711480560763561420765148160087787660755051918836173105937273598799244961368042092858213324247954505473779357888032721963527796544255914148596808688197803808860901756438441597204911757646812043041572209425871116151857636328276954486071016545296846223524406790171834427152958784687644656902400759296871036303527426841317873317686231212934142012824542707394903831935446297415685156830650828686750579864857609171710270902386534372660751575157521109825748450551781920397374493708573225491274844047547095647790395711242906275888005150160344101442336874013070985608303814590758372685714575422562548047406830750698081966960248852888526073980692241433729798876074952868109383412377205843444570154646982668316113527582204820520695990189869501783579944701224119323605646407541256321627097677897723835498847039083817350445533620194453004368853623860929268688765208917742790430259922874429532770542163852366173184073637730600376246936321264898939191168538648675654562627257955096132707603858194921625503834879150997351426684098383184097150781627644360563298458903478196407048206275759248034979319559251140296018725109076742922597180493947323280410642340323029696401368220112921647973412437515424074845029488025913163429887516663151502702241205176688921429497617908740811187952632096029284685626944571687368530261232904106425965409171072359615977093397072884185749502451375257641342547053673308785352627149306942597679457645326446677079650750632493952140225260008864104318256467167867403256785562402074494417078721775605196239690683317160625134984291094607825381209970218878474250011929229240095802866708220927583032761709912102582445743179862688128251617241967394611034043440458584596272331968684558880670507261479335860851289877144319168229048565286119902002374568685050879007001617654954202801170141721792115320053613778401874286069952353268158299780188577254375727718914480212696899165876268315893775984196989085617914670889945487856576916224785073533584237315367402239446473574299468265987915387430162158243470395121351420443840596067676728996753547999093181504365628916169544276112681593132053959460312808516084631519132086008289688935651037877679981100138097028903591802676795558497363169102279829357425667658492279654119214495016100321057217718158993466418716031000218999220202162288464220788885063420202084347786351958668781372137483895913022271323600144218432617421184967704496032825805198208282877827253129186243401161013168539402044532536784113697106998566634666455436662416625387610129400895308053783082750745471214176708340939366203058739747475337863034905018888274877260196844385522172066697774775495434514240127377645154301908790828410122238870118891007435460762777570729384180632586756878178334074372168841098196210433049725311750980955209009654547843104799392027526800964162253331972557994339691270054657659769567616378118635091930498811488300513364020198038724555039108867548136422220828653708331256573069670801883483526924796434323577529486034606366966419370156915216295447817178988166827247376737776288035773135175759966440086119380220720145382857936242266859448002021913995233520734266733253370014384813643431357933017931851668213146612824040933920498286901819028330478244214342953404855952947171353077208793509422019318712185772098642436801134098055286696674192899451918572496446349347664764714358835238892872848199899587289709659358575270381702397886456815424598843966978983446358133516100570866189484274414752462063002225861993612499255253939137522839207224853353471162636149272562572690336736464044583929740611775753888354295936882237830163173343755044908377566504909056339419536591728281513640460386400709199882660551495295617401144835752746875304646068126487439842459815213484315391676572149071701597823770637738698739636815996082451392830959114384682493224660013420399623593994499658157328526213062011673091301181048429970318403125268650331701169434339772381364071718098448949351388243440131348639387007029917569128769715216912404272592986758696997649168869206068378734767858527413987679361258734482375306616857738641324685418155370941794340542148286526576966266661844716182080101120129918632256606771903754931740762623707598776716141561404403037837877945503621345218356683780751900277493093423275924543115183528073376028861942971851985995113305020682928482330191991199117754561600629173294995444215419417766267617402209549103328468658695794616580955074311106959408493665891357479636575513503508794817841318266187175928424323423340189929861312486174916003094358363980769780684256906859290783722489220325662281366588546685297344739199057115505596575659235218904856375578121374936264064579921755037822746452675256440573606321878465101150340941303054529572329341282666506235722982842435126966018923066937920208283687928746829374990542321790046289937734608702154606304555063271424196170806479709473349157237593561588864577123295218826457668128451950273625691912827330869366533667083816591203509710701249864621830199602482854878495002185271004849142245660529218333805091672514443537831447346942423464989891187516901100801425529877396933423169286369983332082196254673847200479015779555681280173641646169823941859854757113800436661542315912809251930678340018256331440233857207294768956923200174889700508832568040703107880977310110360202484703557415849051865977887739068115042926754927041195001057033789738579519729873119867472692209157210584810341490264878877786685616885221012352161441192357707846184733559292783322274078098525383025315576230421214863318324158375044563346426218634815351223098016186541092310374275247883327817041356924598586597098735812778999052898396336687345012589226996802237737373371580781478205182086286076703073605507391893918391887297530563626459345047299550719929003542465219583856433831948171731213534171377791583910702005573602433659323995686638676007665132113366914513152588250291792054556826817448405772887325139981190742580815920812730001407802749249842379882252433461506996309810570955020954396008911946098529434714817277178362606821583950569930512476516179347689652160943685970806339172908280767128276393562014790853509297688778604222147841806032883243672994249570445234492894541843510106265001468226587921606655953706189704849256231165190470454047992914074669843566302647407755032376550821214965939349968935448058261362397391157308081736408750685175663157577074660673265619179134024500893147481123078899150777600681057502008647269711641541126282614672399900028269077050855664390895100353854600758032027665705919046909388597548456365684699992392456385900012163594692780015933844497027428893818015646624660307771243111279791628351678817378586354925573388104899399087374753449600367083008800287595845200163163030644893556468377802686263851644236657793884700224285302383069630693083435150843369693828610943255727026192850090209058165437504626789869621711607794067908285033636952056361219724348702926827806111895331981292322857181681415081130170428540880731915650368740440591840710722219547963580758208126764785578213698100129577399152401910570956166100556112904253899399457476093207027173702363186659983430219484583161179703658586166020521515398916049421653961796390551219112086540548189158272015692444899245044616425920995064872631702697558792962928807633001463439953710720107302051226709014514458941575421781289737573380142240126727029974497418641579722703385923910969177459566216557510632179452164351348724141156524960383111050329386740010369496672313813171365922436064581308132392073049208899891089353149377395176184976366358789447122596348686929870370951041450672605374318557482240863400673797224356269597552686522087264911083015901552821317445969570023515050908363720696441272764593921215970907695410366840478597062804145742402495886196501819056469917999218158146230158230936059986112512993733084626985248267711003588203600815727025103937717357304350601061280482237621591412735805886437365753699464071659317655736864535126701864372090213695444077198835142149574238021502976770346505848672779848981918612201810583855005779852735458845554131511333690746739373710449249714072276523825046643962343356870118181020374973313592448012570867714739033981264516214908228954005155146610335912762945681274921819298571252569598509395717112060943038890879543437878139632819770785610589486838714247834023823892517080031582673105291196735443601007245235386445618915909963488676691000285639019290788946985135064596225452555729097899419347842051297682579513785958155534882726557032529509810079301486052045745528400703157137334807868284219898926584868321516477677624209456478643781598694939350612561986776074218347013395243158233662997744702681719359670246983817792548794835194215787875337845693560734858825629757345712595551815940244360404636639881464782637877918074784417742687246409913373315453741845849181908714988732083354768598266372869009003299442438213504094967866266433373124747909579171306379366197215936451784585505944147691041067092093319120887115292321247092264150921190676025963125915277962157462139815075109947842476197862627241334764039968064514566418033430430617843242334149336412881516729504185159830096018882750303300702199578653669899713687539788735006756387819229536726134330849993542344867453204204803995213033644447975992288718392959884877174822765377234055478391589180404661917111008739087130772201659347392232867405688695084671539042941714237526777044395610028591808460187981853967842240383804916930295860661898625407511778923582426694737112173132348549194059398723538975634845237611039550693158457925780871623890704143521659545416629744366559308205882335283588344422665377154283970823896426126534479492611972323209655313001130834403848135707078988255576559705589252235642184605692418330837341691015923404525648334189711805964863559449363463329858904806435352370680989863013522381724961196633896635979676738231530008908813120086302310247112099386917058149628788841565556708559416049517998018005355217131859581495110049667925729751375919678961785564296245386924509959193034314219793322707058554994579029498737611824854325535520890067862441886542964849131264530803077724029847654510162154296738822346854709854199990436434280543080305708107358980577728333210829486550603201894806870321583577163429427123340834939383931693681186982289835865748548379314073886829358228414002719212880944475720477706220026236161590542662402472023855404502902370799918714043385764994389371647306118004347253041168725204403636210960555181926572439468180310396092073441787451471335562870118452640177126880872910867617975254672151690299670259855356231263268506506954644923960043942566112539152122491889458667510428764288216584598989511266455817363946566468146869631044428158627192117941089779657924614925829711361344358396067131470687965982381336571986605802290132923163230330559425622679778437850014580874117483800422519685092250364751559534951399093129562847750184573821329666000687748992112553139993892991748087004492007056571254526237118454933984642152372027589454222104473973709828524739157571985138466384902560116853339851348656046481814145343310781267556430399552912392195068968173472699653195524323666206305452094797104428719015156655734824553586120994873889073329656930421324747700036980974641510005500365346001502928146177830119653362743367904279369214689736997436166362394121627258340516390615128591774907578116955282896878173513828415054917680019766439453196465087786286470713364242990056449002833935336846227049531259627965438760424902114578980897083114774769871285602919609253397660096943911292217362661369008748788220231682387333194957052283667314802317915520468616461318458762744096293615215569966943558895741665375144069863707224562438938021492307343217735039193847784249832501223961610642244249749681917243962139286457660719803465107898840597491119989975418370664895030112588645915877463047183628152978339910098955571804969251787886674400724223468492588811226886828301261123675960039458000459802861332033878322636080874366708826857579851523546141207064498295995928380673652519541570080430389705784212330578103811103045987449938489007653861918361032313124264104805140488901197723298132750305131295054483794673427299933625256079829469416560034220962728103476425848033808203115008675547117190926352344215492992134526947365160169360206609375327310545593464627189500373648452901536875602460512306553509234575161353085231604854530561082824966536693370169502767842573788474794247973918656410959743361060250582547326251232974143381698621251162880619584401728076552908223372627863899463284593308847603775391221054591701409563882610557425873708722327590868061952397292098481153426212254018935404417090278421867636035822314913783031535334689821214974706313927272462345751972084715417405771482342446508260268037893747660318433058291402292197954163638263931383139870614533898528622743397499383368710821621101498208710465571029943530950666134996602867878987834797316130024158690833188949225270066663474160815771310807632740773532432111987304834047464988410495823420705091902247917757851050833537607153265147429500580395162684312694574674684818212079354806478304327458260164075728080108159458772818761871118485046310580275109054676004457616958134909335927751710552362227474732015843256087205247615495580168117554247012456378924824063490705691866549376246244084357157957279253000286572497343644057365159207170638955903414378474906998465239956257871116927233803243911955964362592670886156890627322600988433242751249857279026673697730252762653428773335191356891372699312172935107459986776406069052625648774847325097874488547635434480663887248450515316176340148551585076011833240929905134309680412768410123531328012514149593941107088044055799603402436312182966707436196411318564654997247795727941353243909241371937647584464046334739874359056669836432507741406934598067350136332719528118154691351412389547916499618911211012581380277773655296224745935326602982001243195244676219331638026882610333580154359365070905866031834292370271194590644834712191712425297933642868990694604534103501574523846759035521322311207486334763691106672622401243384142348876669931103951463353049993860887045412899344379833973524157774485851558842123599106511162786499765562808303604174831681633481002903387627618063466528014179871936262365034619704591870827985641845396119042095086049455788257869364381568215493398107202293145829651733434398655374905326814974104886942961123496215076037536689969331963954117234883592217001497505316954710470412000522113611400871564588237022495812979096995041287076870300195463371521642913571046719425134813236249136866986179009133747951889673715623541951852081661521877892565744463883958933151403174812640428617281988712327555108686828194631393324405043461032287047461837979114271412655251550423305568690058209755376993281573003606705882468129381389372936818267955419636372436572637826869822716188488630022122669525858568093758468194509131867498625616147184704870434474466419056749431608865305164947186560899733949908985699502069767307675546712659336713366846289264448120102533449441298454485311386215584343093383498084147978107733157420677978914483739188102006976236950686323632964957245858831503885733479102535239565838986113026040644903886226262379866840804891543375835826996809843195574097432636673993380479940694272270259089989832923239233473366851826209593492016276123437610185643281197594255228349499185532058734789512807134538174064414504274196607735701193219150819003360387626111163500441876636840816188040319172519715850861221609549931891721527456866821805661005160416771868688475210782060431775279292815776423042014333172965554742874181516872712317572315977449254605442806566466944212601030426677310502254846401654174365511488086545152879074956669537624906894817653540238667463716054977077697940493998536231450481309792921132989935808188216003976480437841289767390628636861759359031878160867273197610190608072825760246088079279657621037524900561601720516577968613441615727355630101912236458322070445854116562493076473207511111979272612474177605229969985737495732356098239698760751316447020924556993547735083149141933730609707263380539535848429596805089256310997885732606020564064143861743483431218588048877127024191578859434196761018141721611288488224054754972026985730567821385512791185585938052190605264556502059145699052792177415679371814774646270540341600459638472751568856818108133590810005775509584995834343513845942755952962307427033914780796577008079746516627208598641719611022277001851476399215031306779325214273308988251352971269199238331992730378439665521879625694774037745754618017610702409096094072550321583090254772894677017307691346118584325901083957666333336924390925690691179742302267753909503995417688806312352875435455981385010318082659736844933716789220258403452747337166458190498704230457801167576340519963348978001366381534813691790202022596371214890212777977580209457979040736752319779814320509676276337775668117170223724033664612612908072808811665696209085174483523408924264956728577657237654142914365781261563980790358284182810628291555807101096982129826704683109230228646252935499447735526863956853021678526742514872085328584525496103002056010688553896976354441336668270160796511560160001828705677133432995937574036799988512704573051026001006000070077250725881919997114364233601402190690649387369630143728472439497318089619558316218992444892541098604781586313488778069942983980102151727592516270880526981546506785813181542363849301200532139031664876789414074594382840766897109949889542897387026601742807729518205487325437397323000515330073907511211677859610891164571089241263620909054697565993436601648528154163252016516112245722453830145520589391424614777406414877792889070257949349847310804189721981751628864379144372548504412333405627154460669711487042130232984460320332215609576530836339801660112518148699116589828255525559194284186646186059733961997422558116386055041668708694749517585433172096771122096113781753848454044534962273732211527265851065430789690195901204167301215545603330078067002127743738606496300852315005507544471152695422270482500905880571319905667220433856652056521576397587449484495443683327881995240315350822798637548726596738841835440637620683257194348193739425093755627616658813442073338400769636060853821959787762303090677683412083617627766618647819281369982826943338919017215062149006570408372725049918371644739994176334022922258054515156446690527088384924096644733806810467073351851529155849196242163481178460854806493929001932722371388247125440754008827997553548469039137902124225633088484439747336141718742500410589343922054403709567197826837731644479676170699043355923892667618576091825070756766287803202822214858408404182000548215752781881108979684342500597422634236790734069084124436908537591341602374821196703592221601645009108687479422038291256921338113532980743557227531478346482096898645348379976317933977214760853305597079193386412554175259829065098071502492810194591763661025004292294076839943819148820504520081256820645447539066905011328891562624758409018235428216212590257599459985490139077953879974944647929094662962955227366093030339649475543834765130969121379117646638262665251774166458595512388827612910665880997845149972403360132374329798848303542858253719053399802856496414157245761090048256886380258969904194248272851067009112266198641311084727303803932246630544579236141946896906341131099131144439863593257517806180490938176912756378208371020804911019098880922144224184808667309343876895215031957420954199621198940853228182913918634025124077947849443000933265999740183138075794561373360968988442117756175133406980386007738193301557894365256825461798054230036936264996591422309085942847514550232042528046857243445364177409430487097138780039113955703320457774922712629272094538937696142886472906208239439671352294065025276435215253102465830827896978122798316642765757463691473815566537560996329792470438698041305016626787061526756314466963473990420826713864349531187445665733342157356288901640386146390457489982351506971802046471691906051824758639692223959625028400610245728969065160256897335926674175646290754993439489216360303650362346720639508018359636548462297410396468203271546957476638522963822131029523945548555648043595400537219364565458862373517372414693587867707548786747041630528636072605304304975210376319866722663621234437604407071194477716130705609773638815631152859591325721646006998925974089148459011582072670593122567255428644188602703572856576357282086126356708684163506468359585876366337319216541622724321104025200895148668574792814921360498363198416152192675878910272249987172779979319159916540457645815664174673957745428501822436813392336525620496898808976831589916344873207742219874013587268898496568659648136163683139058111642022870686738201618518102441382204384864966728353815445453274177255029927982153546921899060825811457962441640084946222568581435559350019467170531940468644698709126383807642181789855109360762548486564366905254953407236306304197486147413365546801951461378179081370724300277813552077018558571756498500156414790428503056765457188587339234088149780812304156514239705088995766200828655571340620356416211372663176671291411971848458918788578648024209972202066476273234229257638887549910477409768238916829672130778440317580781049546277233306237955760813629423264737271770603862559784490223712094821886371510746249406240098993930505110351897897265330239739314922509091303308861577434148393722134336670097513732066423922276445602151401911768012284235901352261046825729375390036687567369947401514411496884575148099713842633390621364830144849481010303137028889682657168394261747941590418455911655555279171209155861885162210044910853771103851945852556486041312305580322683997953343695321457923407613358792070274215679146998862267792869890533248645322933579732525005059078123970761672617770238521435354690134433978468411682282456377854905213438920564963400643851157009036178014394723854075263641377668216586350304961426176963889754600827794715230706980479289321602897397040035650832777856024168528040658060109967668415566746998460484219779965925152526248326805331927554386564648447198879222633613158965477737424696239245472380819783639640577338721313339059325959552996362214562384803709133058609646522161508376702147804135995861645477420431577470177246452800433528079871463355456364627423517158650903706394792723927094014559529611998082889754632831938483675574389281641770573176215145483305827579615012139083431936609486896341777819955293412006332976854354740434070063632114922661657044785570381431540650407751609488661764174137853057512253862011004182773412669850227510713774198865422931113123785828572532547079221915745572754952323115427348147240967351138204015567502393820222054166919198475609650541041935939207777731294131598358609833197491110948246411018498393161097657459118540775482961994330201491383639939037127420374255830247642883955177037309880510582455606936203916790437435228297360665960746046243814382124346941197045008631606393743872138054942894764344110574369094954816070233455563728559938085645749622103663827085549804716294546652815438890002376269931861057027563696264370134882699878976754380975493723525066122284272918887663630104707687534226887392339396417568805134900191282551208785552374158060999542491025320202893277443443642664419216633776410270427678427125373046647690591454001094950349980730884761261047260172908741032578349176084166477650112419240137386846837303514327193140145778971184530959690478698623775182763384501105087287603776177851320431288156127051547620956961408819032644294763690017587992063127850193387348289638609374269633563862657246894399549498502329357209517023343100489302742442565798084344974308956457087317798938830591670362561238237401912810605539562264274673957367225154157868364226256132509270787165072790973823063351212160166307208163316515070817493873928964033707134120229113534153187324726530973407784935861864365811704579126548749135084070478817120916420555989158090187091949118486667900694342041733376259463099189310189604370667637074740099226424847751065280380184071926657134345898768064553619037579377389500689347780718562411985582776343771938335184633064875119961203737444003559329355865507482157311980510886810651585824557963995418404285325834419538966203676938908766567773125674266118646285072589938703152772126240358917652662765970635927392390372419834838174668888254993574675521696405995697428890976089076041235138193061519357448760750594026202408906156513991316220947850997568049138959145588889009943422262510285020435687932492190697672424029650281620822048253132839629988559788958508863438250883429697075636691677987356578498259336905023268431033500031046178787616226067509356591809331499154935008080522651921027290147620644653635753482396005604748618378075175222447494860313107745274806490744925741892269724069533210778238831487570816697035922320766778619351142191518944685529970770840898814830275574117953233617588418710157526694651389149638315063034635239433364922033331548949688879671043774035748018415267493649263305471888903761611064495930656093939581993146274195346288227564689255566171567371730062094648761940728852801705513751717083204171127018871793599489995513668657269423393213561146668815664229213766061618651735345438989769750866021889177669753496457966979254990221869652025953418516362177482299145743682417500985258472877707189210614847547274563756948265927166695091334276503685445695223267827684103458623493863049637825830197715055247596697679120436564186930609819663492317141128432924056976645668088955420517000990877462714353008418457353131585389588043984667898254008136579181562979402943481746331213594478600699040964573659414220052330675783016115466035097295386742958113438569368065617294193070369132586562769230385949077356295838362836949540347397018240372799488813337633585749222753487930268677216226570736405470753195445924298243266206558367764291206852411275000184785041414491800261111652405864882290251335393208344243779620262432254380693613688669238621239886152573907422443910954131452044292298100279949979926387429887909757148785992565790851213120876424417573975128461964468146926158812045319663140233561689925552427388770092208265555177816250942103419543954949172806734514646931961093582433901541522815302628906274653611692420231459711402594112357516677580886751921026804993641741332841230167291390149520154689658655192740290408461988569589125016756232284618718102737099775368141392149956877093036705619912943120797736036894736959672250466343695730221951447097213279712591543021381149138714367102978492556269218282182445844363472957770128425731994974247779366117897846773127517078777660857267997963192725636952401758149711457881794801312277466155933829602938572852811912604202652436815665232742825400905195691656037806647935411559922156967448819253547995711830731518239666458976325612000377851345392005618631383631862187252053254968631001919560157194755295456629090905053110919989813380486013121816392085322867742979105696288552983993447722609025202214156267138704268209458021024222992346636228730553677311002953757103034077611053475815465557829253299852769873814734277317356234787792205436950800782816801419311425231932681825578510710883548629206839295803156271812225048307367652367774254788190269193936718879995588624334667821808725865140706537477254459072152761316804184846282280274629452645277079427134900248366218487178883262577791047484531488782555484341041239779963566006240296927386292587004290859639529943737259558233586979018100124364549271669754689625248482621424758933882917288668553196345041708368196778372601432270027097767723012049239833897692667429695203033660965242339833811678600706702324861435189049852193257571772008612796180519290316701457604712460851877839449516337923082578279085068576530108027199362666539830840676983651444452798627396190605482887019118488678411678910099179020429954672530531900899665606969434850615406484404113998540606326430546343668135711754879123781289603695556318580302655783131481051104681459979567388139971938175705698190856783191006547189446599485295591917955247090877500661322815388162596607084140618819795301251645473754852746489255587755783498402948162625155406031366751811387716797585077909954730066317625151654930142076921262938748326622205215459543139561232307162745963974605964257739484151258515227259102952019708999811313235807364486761704550783372882701735650500084279374375824416488224735551397471560708063448636054442816848828048287146802739357061877192761350570516993399561677536879907871195345256406916663002639684867229715438950487073824215631211709892129755306559128809413006368285942070019053389006163287056658957458092431138608657551777457570921869991506475429035696768075027596805879213355124090198289676176224479600489049117216905570300194661491360137777950540610458432781514182919668124633492149470827720993970470401093066291735699070131818497496849813345017893548189191048340465977805194072031798417353539073704327038285209928401446127605716284830483871072190699187367761347327223069656132157468641079346547069225636055361974729195880715597970784464128589585330484543341114410518335515991975780094307568720322292581162928061799279747856205691660589012084253797051552094436310944650380461949361914866520979121748865547945994891148233373250044822807410017045831373415981323030707523019246809368946396021998543813743928511915399114998131571911087435786912661785211505346529680711023209538958307998575059993685401801140750593891841286033469924057825665141179435437252879974795200795679172559921008759157672625742522416526903628292900723191906505553596112497531326360758062647890808211073484947672479474096705710150058221865228665366446948477472073832325509086459312676052671576908967190216092730279095186455065995432948336473828358700799092381088255914044319790343457458247335216698071721336195328752941421770442746989513114017192144627041338315961523393474746771672675231049631517858815406272602617005360357203503824655697148628300155489515108350899849938836586629913137964628367099945837879814493670549278479265862828199214910300816977126573800967086421194567026299898207349469336091172574773926807507179399093539792047106915747806042679575926045319826597569536436239722612520450584127453675808514210358200892659287324642319167043620287243746820630898190098746678509471651801441000985134739888027218864607091846850953543339863502909392245617190737845103534112554913668245108301522857066597472511558008369396494388091324570150704460288022804080126518359807760273213443616799295902147545588704969523596812964587142619842090362867048324603034956444338335267835292166946799231641471480266324194742201438176209467040227007508085626746256373021762899853585057053324061479054657869054868154874598681714183214321604100026143762805084465448010061429497853997642696218133329635999908105934329110658235375066769914784010821976139689034072056718599962909138210525083598454189404429175657208368210350504772802036436834095605116673295608983906692816304257842013593445225161487987997311562297428837869655545470837376344109859539699797540267821948638845151519777785335879654568769699017663393989746835637732658526155230299818752325434139420017230862652185817617407083833096236729107954609909406486116552210625959719619109021414288633391027174609108440169274946329483970660817852089404426094804527600772718902668293245333172528630766438160617713737995927075253597400552531573285976524661099281693132974968265290520039446228824202341650390654851284212919124563391252941612081160559891464954470838878181440351006976374276609876574561199751631574433881558815408170610598833604715663936772605872745868945537931512246001324868261496226354477059421584991762908385115332787635675489230049208343526305256953248914118646380481189849589198553393372698727623333846628075767602325005792827053179116567933871864981591554875860580757178785885896957685342545959130105734002666911303951333210252352875433409363211842753140746263350871492960351424420027787465624719647405479628811668425076513745427317232791819731420607052027582249342496344860526095769479598291816904906466804784241624111359143309150190556721840717325805739673807816102555636459985786673554761647042800174371333100148731998511294074838985536011997126524778555452422405272243237786774646997957360068147450498687863320908630495265769808809826133832707728417549148471834647660489080420762781486200649864063360262402703759871449214201309274641785408351424496724921989756080691566030587521598837883643719060046951875818529399255369526307327886732997127268431936656176580586624947099422887589363371074036318711599789142397287492503160383180393339407800646284389299375999436407194045266864544120965636748766131613469561763284027222184395483506159605661897330708202868039372305775560129162243261899862009208957109197885104910489549093267864773897451454314921275403698867135229833197986580104494665442911588752372813166855148830102856679891447901260814415271442383210042178284507823724417264960169641374143260942466229327557138346000706702191656111353677721659596563507808890753108717247558521358974011764190731973553821761926247174747019359285065511123473460559578889582763310515114033331764687885812705758326752442018065761665810107517313386902898425057215987098326136695678178949319196661514934161740367729026130953668844939349918201156428320261703223270053163648658185880818905459224702051824872026704192018656801518007513018992056345305007891285245482024284272340050536388753203537727114051229919833460366867383671349069211052373301482874652497058877913672302212273272174948907294619657764678711788112658392384322879505252451323247582409902570335677553094913649649221543391874088779818227515497109349968026910634565537410751812836981173026148550299318558136800433613806144191557259599776942859637305173681436542928682280820480388633783834514245778454335431325827482487762533933548761811691643628692632330499210380918707853486852941057227230115853437249974831203550746275554182524000801263118873617472799066158379293149148363610717416097583843892602617951577597369556163581207560324231713908397647773788830725507483221329283846813077148189532386604595894598107683370713820453605073618634302845053556602044986157547065582120527253312334817630031139132157411776370481089527433859425658440860338611631943232280153002076823057735006997917941060088150811039699048003028835134257718280933780258578367149613796819206473423094205063363085548668433881733715307170706330926941687763758920230039572735586087575737927517301724347025099575642775485327540926924131589788352639237464188724150047362139792942412550624951958934676250007380963263475854266083517837655442139055082165536333898437776605263072471545025641672845921357276495769589318044935181936426491760779736036452215533959768439572562870156253373194328781645379504804912149353283856070445615076709516011244222053302404408835846120190703503123793185815822805622247604259227845105612870266154717806170021716782167860609248856192003635719522481285809198434404935180227497030035625530669028578928233632841759736725681805177448440380791403253409669146099333353656452433938145394925455368627326615171489651003033544790453546810208158443704502959778252347475412257371155018818205101789887699013966378353704821547686207565906988179525337581409593535318214920550825533810060774655004519883403721392803915479194001764981751960508551207076571707003272817574015832325538079742252974423455727072337593327078336556014447499942090663918983367296033728306821065344760060283767697224918548571422696015576590290269196744647167077752213880845635519745222130115448575727924493659010983372959264468685334712270372160989808088983683872899828361768835206681051871187991114540749662218662790377276296551845949110166869810450197870620850426395504635459191561269302450681632884805773135863935339829517064095914580800389171785210448949588069544811588284148927267024165481852235523375358762202262228276895688040299061961107469116580104641238539200650634233522522158709387584582552382339218586840098709131208474656401633829668661345750763964578881018157485122259901973050930338278680331974409431741421056499656797687760602852136559713801030405728069208091933016555780977978704320530960326633987514778907567028327705305756485129239902885662868887983044942048746173374264621364022155310961090386314871962442249196792884581813965671033463525313698353366816830892370745145741002731869548010948888733931149758613794018770344278282413338982132458198033794807301017840741986490907073154488168061976224621948393106069651448295695390525629612320660052782025849801532115545128597844647779574447060197081553327179924424438088845858114352117945637926110379211511855939397714188336286996251637803647619127845976355784683010224677987214439125690647946825174993464720424412580114231815995688862343712075677708192793722096512343403097885199517005204454812230482296607457233110802010136253949043074264687676586093573632561091543609261470804835297787622597098344010446444768789135002764124330871637282191555797146016666120256529324631880939968402813501412207556784978089057459861773622126241160969442536127565295127826828551023401676336588496813861011827455388814053110236301107024746584880331386841353641825213440460126808190007107649548640919698546836965517638039463513354420907738883526133443004739852766579413812060852710140713752393839026329886434325285998027657178302325116917918339679134593661351615769333289144291067235627835214059017227739910934702222121716419423759481841541232638460990911256217664714713591671807665664476357611569233108546701027315094151399088222054840047461957016322167192967317497754914083406091843490380532784530624461587147143835604098396725263228802146012728276582466878984284249442483441306475989395584100941624516637169079560922884891635637989300363755607343047751634286750126539053678037972265929676436859701544069809687465617212535920289999437360528598830209340794856034850464482031188969106687552546531198321635474164506087920300000650758502747533465552742498117728425287144017367617629603909038516797840441727778449279422308162110402967794046759185992604923171187394297638619588561181388870731115887517939934094773450492524346561639128257105568093490918300064017773425199667430397710048514786500404372969212667013433379617263720009422106651068353622397491921121510913583492783742634378310906343153472938649600335023649490501171895360638733257646844120637648893510705577743400070385938385316750283296231737609462433485069121131693509930305077517438465442493940277293554518939868457073567068062372577063896257680420233046134478792803766918997195396635676504127650570547230117842744709710596016617379300551798614773781638439150801140710136773887161155413118577849129278652630052144549019556108040751531165448805299033496572937501476445406719935306229653558264232213132945637401312892179526667071904517641702553592994375360045496478754930821737402765347539281419591835730539329261509839657101849991651704290360725614231787633961559687363581460158137204751115468945628235260443983954634350648442327679978714692061689461163279916428656731678343093071332446238441580397447988450828680027146980541442577786384260907195982456784941042373851962652407500218308436367931793731688908510506339865425124583022667682719041772696454558229350047890449622538614980091775669818677200479879219177742108691820643024290641290810268963441395278608779588708294602923284483124152313984350988252188580229808308365878365383308261745594179413272488333602300252764888321273180370644232156613518033927769674066555898402962250883269267703302963561328790411254877623713969504969458313699231254932353721386803221781183453226959880394603189533738310209813058402959915381892506912829429230512309674267465573087966385026085797647467540422027359304324305331885328508041735506355203128414195472670283416965901129772480043663633811451895236082222255508977782642711862818602621788586048462951613119975693427490465933630868723482841095628128455909640925642717013008083492571357281818233836245665211309201339672764530245293071565886054979541587226369972289464313641983375971083609346195603738626222936870177175312298209208770416708111247848423549341802391226447836333067012019535141448391396320279627703638530299463436416485880562717292733476258564852799052560169026979774658188237098652850958555142775369263585327571812617556976717236607523178267745533117734287052691029416707445226833100764276423352821930485010164178220812440215634405437998438153054904270907313001585366680758220720832682657831886726979780757447303139137403604961739707651346989482493218839213595112059467095577269420964116664002525115978937519436522728685939515049094029683552876864916474946646840145133853350485164945471927471828140216731067124480533265779215441254024640577594057186111520361130002744260995117938880550202285260712288985084360792337780934599156832225395336846380369588723697808598422570802158924852561744183122130678266866763403981112947869518051999992908001314372868163563231526615143239334741766616585360479157023925614315142179721289030501548643529411241119102927030116575103141468476133062097094434698640220623867342412331799399100505800532392954046529211219302422288945774233095779471774938558426782222785402989580453509629968426469933626083514217587398283601360811980955556043551285434304005074802336700015725856702244808844608374777383932811966907223644085391057439110556409585010356077451002176121664909654421335388673086678308325481537146434217192504443774081046316508186589635286786495177228663009916206679025220031774938901804309647728251720697188340744393475498462020433244071242377774542662720998895825903770532649050697803355227466802027173591763676052828843483527250760691760795338293858474403312559550293587137421438267389074997231842615330848589795037841663907782856401312533814436428328416479835468554283547022100899023022004016809487907113311475048491139037490106599886789399807754194510991896250946092954077878015629572530601358745520467630869309209529180387170193746773867359512967468492332019893226144630253101252347526195870831332260056141278071060471877939650383687269626558518348324669980884376065150112247215922113605886027070520870288064063676954131065651259616528987878433122625549805119792780845718558592080148297153771133188591844746062695211166737767460705054536295110646779647581092927528788315651132535845070265907436908018875547911477884113252814100415441957592877092861368067800909366680260505152601830993030563423670785974070938797697783946638194038179943032804422564617541698973295024891856743960920403687625358067480266007605570094980868300492465126120112916295021736698390953542523174629503383452633015816479519681760587925653000904208997212327281718495732327737556947811284587010802875962948769146846495764955243797609354240962103331444097608063520328337768452102409056231370800264917593274107400472746966300955138821284342004013404367547852657822176911520439807128743070156244168237362413056977350959428838907674422266543253904561686047861270032285390811551133575286413514356349565823195670663708896923996246318208582107732429294674258612120961469961791282663668719075101399268844802525482241065564633216951663971646209817787420502234957311839786357751802357957472755378725134983614152915416960868550288535688126271011273521344798840187378874490780489387104617813155940533816178569812510398633598759898770074356869822076255865283222914670661961896052671892496161758013996046092631841219340563073391629611859175408949650728447776513757036562930897637248870290272644590444754241894393929873639474753269049894594681703168938036564927381379012309189441034260369675225125438589396739393940172657707236776946182002198190817595901230271701669526910682344149104010461008711377708719857876771093798534278127576419176747564745910135714762336215039660057617099539008374171683368715823936426793918025247116476626074268027345461448150079761610992921547649921278301411188936121210744703215597512404679217657711706040526043513667573022653377339778397486261855363552009275637936747448143549872575808627992492475077202641044872269835317605616852354226419487342011258435820362294191358182333502905697027993953657882610986799332786804849443810833332371519402039969937507290966014926351622312943281971045088208882334684313364606809822001979276487222381676705582126285742280727071395570354400369876717001567417186597481908128033499987468947544981864429413820944321812799845512049813306161621506153778128180391820096028929087467492813079876207954735505029011566444954691272940079002923344514091053124597349163779364998062450449399700235436946779667179925186822119988394471328980505823223693154305840385865206389798771172483242541740685103467544992119285656117878356475936291642644131071325781695787047089887476170700290340404686191632813150786197232957403379914551205214123933432900475600378083760040193723282852259350653473403629479688453994399218074700240481668890350893140300005500875164427669659122402204221841566019648030735817886900137711462554353432299148336253696263924586534507011603772748158805924797399552320853952778798236555282392895063978385924848486962827176242780969366969956964013356121952392792215520661128252356871516522616183776371780733489524423391250106722759066437192044234546606750833152207013015895721698829148450009586862770608333057688196372566153454052204739181227040884648214251229505177637228491305027970856687221052788398398904551292719085457327306702800140675085128756371298957112889175879688923090805106076564043300022939157568546120367716468430285216675852891914025125318116146000932812680046657929492493030415123736040558035705112132566309016397970274825729755749060490953105684232858220046471354073738128989305358887821858687486405721406600671103377038004261484386267081459878767512031501623102674234234842072578584104642691551914039396163878995076231036563690054362035556962290156187952738061436488771912541937636149226751574456318805305258716122138615698838293587042440067842306638274087363508315059427574005367624299007403317112526091925893119091743253125590024966326364126829797661649839707644905633414333900073593009745113709325189418089925262897465875393909594248958304689459603061096221020084723315230352856323629071250780233901036101788854488117382941544355536828114105467847641028630209309340616045911835586710677233635270462235523063592276910480352947148693980198656710554095604715255790438704258934165916950433524994336179229268125629778319622205103267421952764469343959670917837192747579869102408808700133770714517776922971331335645654774357817547731981586094464676866132361614589572592455750239814938627434459982897593005426186771462635025186017188283536082214003718466128754601756971065727901130749465230527170167830302736817764231633250133243565560772502144031733131200605702218116335057908142823405940828149094336631525422617139831404846530227922733472373436512840518538699791284890037601750841350147590333335743253553118124809633964285014566051726298882058003330522596756153845087783511029486586328184547873388748359918676606951952465968735801828817682861943250463161877108695945649083919802109625654774430264372262518911460920031702956551827044394600747247939910129669523369090352968083156268639157251616996306535743842067014375710033148320440937429798181659584390272711748038256113782870722570725784419598951352280386251544224027870141748375798623543195865784337748105877968810783470113989018920561911756305508723244881184666574762756544704688776011709985917424003646638498227894618198369720163313613249089418881693663508555317897662586760024144783335036008614347210106864344667695305810897709041910628880909424989386534546613232773246922168456670890236631561300500558041715267469165098470149850052079516913507901415423054214296019228968540388472894923632253829289351421972378080654728237690205477250844608501664878764547229068474487579584748647552907949500647793926299564082934910351908679645740034161532921602230139838388592190094655605562709134737263452270751316989793902965991181249712635254815152120787069860181772127789100779831414079025482207043956756357149657347804336453381453403001097146628854233269878399613425884933605649244187173160798067422384160589857950654606212451779060673161458451946309856832721652113585269599799047909238543039033748443980851442246220684892224895878284475780735772761786291377658061035696165086694990543589193411707423152131874491988343521024720442866875247447209299594371148880145508568054888303340499467946636750025446394590779906581622030240582076570148428236224288630695731581134602915402320953606041689007337453345253335741218088658702868795665291527972227126776955683805573533534001365861111577785153330935488730030076358328831899689566466114586269155149509083106443508328635571925557919656314205349137192583958433046489156290038652115650546815095204168936617738272724479712249953892379367573440561507319698735915203815514956717769912438883982944670597063064049793355417191178253750134572916599829558728295479767809027607327048913097572441745526430601391807905924834794698554051324007374542774815317201079446523608734333068042259186209189952859866751571797938276098318341804539915973707440038134689838583055947111903250378974333128974744552978655255180956949621540321204945544957208209184395032832396842229080210257262799400273825069564387618133207399425820769972712408665095502193531908729043766039031385136905299762325153601295032394692475145532471060421106010164130371573962185921397022478711396928053971868034449378883504639595319493419341048791849584392106324683457441907214920668401250962575811068411331608208075177059628220308625272922596303232724866160140951088946211241590117481835788737714879541652943032617108452795877590415122834967961567434335181541798822458932114998938560651840808345278178046199055155746139965806133325123435585379135853088544842056618841864826250069948055265462089354961192694105691685916618529586864249328397169526766898679857059005687242070100930793886725123934898683900674424567391659276774898298577848899897321204036526981537748993546112062198287257562650323634509322223595533714413368836804022800423521051880357994400239563009084337325630053003559920510401187981214951231271493316847668145878591016197822960453972994075700047242625842727568513901697466065252061439378552995296429476329020767750983623660995257842624985066882052647351722286391126067395833899472396808579188804198328613755339106852780119128589878267977394569855956767560365318613257468332828318720952896471647235276930691233954909160636829027235480125738565928257123806815323789198722560721671695688238992860718751341962892258467261810406182883960054796948528202821370397290897363796301142687650118943119787725895509280863734365447174343724322039406322301058373354971622081626569894895045580108210592439002152336371010591421767515499106763498096880761147983175699596742032449544468200205133221816397516928256144434162557151507972282164060910391196074734930474370843674729778847319067265069066042142339943013894529464049872614010353227644876547684885725527088960071233716953302583431310369043249793189040196357304500230354204197271712302910591360734698514567882338889982261104077636939125084008090126599926590043617221077406766826033760870013250577535458100496855972862491784742326036773538353075615781710250701399032281015998231929916491017204197792035472401750082426139243254872362782768661282393531596935514319897182964085904744723782432748771447032181452810273919948135668956769537389855993309479468827050215330444307092308078155650265196914910844623828953671194133594239957378907171391641148748855774167116848548586451735132200156896383580835597295108318047466218616665473811283291164222505589915323896501787645339962204553522545318195277346562745226663030917817142992250818109320193812772770420718431250608890830321065983334511924883053527685108256317486243403616898256788085477830148600388969772994434399550209490242839499110505997096273849053081434259994913576044873436907490896697882063585394608936524550246626812169873203137514701248267727336608664658500920677697486593028138899079933930774664715996138651138291471807985405827233027248371621551756313889425288403345506393778403204107455135125368433941333849075980624514214070851307434951202654680876322827925712749210772212731003055709530334712087956980494959214160264691096758798783863967128650906837622701866640746614321568149790699053410119941272241064049907975330192359374391661670103869081004843144834702180914829414807280711054111464391913415122004476526109807798039003905403498023834139509839170100052309005789320971762909853461233506492965260215875990022142040774715062118884768100309762132625224601409320336743072771977684457915013023644788198311985651901561346435653419214446306314354632579154570371358867823816353301194923604178468880556934477290535795111527599878661710836375847226612041243686864029977848663961015249068361495978788827541485101250017415993014095691440293013765847570046917394759258519067111973434965614322282342685098519118457553551299887553440417379948665934404983323376328842265579589296957727320976954709066609231052529196308739430166701713851503975942255872062486695000688332585710237756379139080065593052771883053679411650309177492224463277407465966423294852031054514874169255647358831130569621561649730694385274717064186370927769601682894001633853365712022614427673055900595755527303421634920520959053041914873325457104568259722087731009020282015983813642822759663458310873263516479938383222595210623554221580091533206811611351399970071333738291742754298372543574835370456836001568133562603739940663928392384573937793155413189104776848596292288079512798139352017761263705148718710166544666090709080096063783393600067756583976725960209690378311877567360160548973993740716461004562560784199581952867321786693969113321639995726211290188547219550910823459841179565299441340066230043538159567900857825869518256450681154831884100833181548470345161144628108676847229603524994606747604185259378110391211987030101647746774770274278316787603087845659482841622073331836383798707785764656400851409866848388511683856266163384658428889423352970887784718298236250601449460403158381839403302867130077914750814886918287651258372414116784614276674730846581884373854611830069722002526092769113688420364818349333212164146808826333555197828062619963876578384621990110297330908055145772245524214338254632197120907132555176248914313584055381040864611121056853099515888906695702701027658198676709559533512159453937149745473978189793119294085177745249918429917703509027661451000924772218484986296998552387660236017751197500394300639419278727294252259791679276748440333317770125304501575407620864745325875653282878413390224570396041237076914905379558624382329004271391251813309022192056254537554604342566343506152258354221699480816200481851010053113707580169479403529738787807341474408837968563441055106202774923005308614848767785668226124834737937321607686219933632251280833011333841940145705067571412775930253108907058925325547846144248681273571611175636295982432187270550950053815352169088522858829840929518827098742614029950114301907235083235140264063057073277539499063981566550089055033470696188068662176979221888522968646968886751990103415179249929682655275167380241552646507397062958235174060318279250742508524040716464754716051010578422323796251389287685355807883896276464525128932516762926395125493072839898110635307286983902039845016907165802572819366686588232634234369010691282626994899815943574702833063682131545120709386541145895385261445804442285654185113589956642271972075026084001016461259819115178510098208519264120047911494061763535276465997887678706772460861395874257046473114183469437303253931491912503210223992165346697928130913893429734589995699352821627308815962798975266942064428047335054472611528384774319596768064099669246267573491780054438086083118298175215265244538973706912877116405996093453165632143079604697245189725300140396295020302838828021866484014168780017190372187177446318487525400185227645163698891391318246312619316939728524327446833066916389696162040886791302607392265615746788848787810037841976964735443957381699634739917132809367560887866124804489894610572951040376656751852472125414571607059995567852799087689568003882929506617775398359549998164206016507837882112200076988432603526926923833319146037768051808954328306435838688565860686902960024200909613121197941965410472967669967990041204063524321641830390088746282884230741191289446944665314249143938157230983396429412855199543190150714013643456667841088372234348713355188312566274237955096034130688314967829238302563985473767881403762326928323286805115523816069262092310538162919887705880726001314665103169018931313737908527103203312231663751061151915766285211052320684968678530926520450615639335090268988073148601589184191621456695771046625056983764667916508689837563395256095783426548406599106977044885799648118689254456712881783986403842557992219441440945329012692305220356669198582398370026116849240015085390083413515752586725126901403342401856269080204333188176880296277514872113983470156150272287529480345703545576101596335629575536055348991901691536678842544298259703145044865125718142981817695841391188296568279686891067016913245309495534511120041023508696298892457637578323731114739757616600405793854019558564914018963555393379954221651721874535732126926171912349323872617549417407526046572697345520838438324786999767857231011846711195654951093129986945636367044841261696199088502662974647468916521926945392007314834794085740845211647137283300019184141771022581861633031539311925369333390185676116456334092088500439016316047084784677425983797719124732231830701572109135351434374713470933147522433699970469142279308621532803639713530597578747814106815635286112486527162353881762172422744284288193736400494739617741904710504246568552397604594825399604591299922047952068162457296561396310088308538200481057990428185792858723002140024645910834397756691539302971817851102666656411238170474457732768727058940502456892709745399549151720204961972349235676486525094729332757332278752484055161223200616210889686683356003122254871641736366362678523085701591237979106842970951280006394229393904953464845926435354253830822799789979943543143073693368525881927647644711933976419062947950964471585378785142674939675440571410042776539236279205388054689669757119763274940928203230926177638178276080698076082110815118027324692698017907064850979120265522315451243371124509315720788283082114245727500378523042789526679360562324719851203745631022106774517470445581729208514107185860410361854348583384216667978132656403573742884260033609545496155539769502845029104046979167660605214627688148826479124180704664440379607066643192722142836417393493769011185348568260815737250439349321574943991581563420175774582048586423147221053586569649999185669954592014327340681036080033130647235904463040316805597718831756970713884923897795836790801100873735751675500098136335901539540937820252936216224913049157042087400405220339161117687820456280615043482873979858446415622067789590758380734938654978492685546177693734444637852142396453626682531008083145395455312198496586574396908467214968614841616535320755601077859663253302960222989506578817135935653045068001326153627404313689000040161783656226687104896309574866121759640419761217291143261745546384683196954574419855773642385389672150585533815936729517171995091048901819325345450587075892372609072638861110830935563100929041811204757441853267618595804668223027739473115860320361399223004715219591114352715073115579929834509360223980188189505102032066352516103269323059203344047085256820046703208823496413487160715817881351078964800643628018108341230316703885829241854202971132784278716998684881994891019503686661959634471975478222846420797255787755566135167168633528665464491417287726917210640045933682252857411781928821169515480074414207539800413550693891542677886567038319710870924359990590939437015044244272917508435204027825816556973527097110969178356138670440387593655909399922113423092120432250911314238796334456416277336495540764793412382298978024224736527310738958926491035342514040826510418901122414535200036402436291522057489474817933300968061210708114645400353483669050248776921392747548205786673286914187755737385268330055834525789581431596643501507499001933615600477418103341163293399464958651277399731745142535105819282309787509900858342521823593575441015080827548847560423015207435869360759295394776804747030154787828611146818519889488015777216238213281634775792774748189912247020043547421540054088829684410166262715497816981804331312112497212740291003461785119026769466002618072294191168736213016160816995212370088138954010631768605707285687196937327762290959693841540677133062749469401085014029350582684801051979027831346566220332327693512737600193416267673301416248995888892968278502198158497218780366692704643782421187408674151785600785216573619448789670261755402845333896112318755028015700577349372225263623664778251972609936706389588214649420034648763296044302615486198168978149727799294661310618884440591081292837222870766983766332065026089014159379012565934565172979052779693924296324250938601261009471401433029291288127311414325609599930198299645275532833892432282334594278349713237514113944306946118963731542449501271496708556073427444756644190887384536592496443456589274924958536401019323674359988615700576324408457275157842224927422614005748001885475284414298960369663846962577674801333620097098470072862707134745875145398738867897226989795143198494238650130695423089067424480281554347067955989186872147268852902621494744963472225449684031920351706583863770434483626579763862172257043522344968254323014026115871820927025024816574520096387746485039395711145152092016432613337419997775159588684435018062522029990887986917538272903787031284385522841226858977098043658611540152669955292474779200314192431761313699496781146571657420059369424170953972928889327555391086033787262355102602135016173728637385697989590888726695079600454814146780252482891223385718690999327387141360773591828965578772109282264860447463794030033142910590909443888727612985474019163016174426366987485852339401036212030613519681724466725774630386009703931914281144693952847935377523527331471613971673033660934100764840249799643438681518510255616060317813823698925270867361803013405468755128178750523360198518313003717283670401430147712128999642615962439799014195406321387028657675205777572070334775398271713617244987873564654909666097802233306522973486884031571258629797478775122800918577073226147482589473384742545062421122028189906950135764291203781132338016766593115340029450097994818846468169099201621767833687769120064130712519839551216401807872960634478230747057236687056991880622791352699006249455746646156448347668692499203736354057431431444883016229362997688223580495874835678673833357647440348559950669629107840846862522962688418338827873799998497016843726808554854738115659267002138901171541603514197409364244426951591266259040666519782258075957392415599074679757683028955401775984027040738038083847272729562104728918206328179574839914610417831631185703676326913464823039491282530660655981483874260507277256130879277713700418052948534365215442490955863449198986032508443207309969216944001526470506412150348366729735189295046152006881805515726268014900046749512049966905088216463149931004271811439736495218791734986447293778698170329831486701535020979370948925174356234721195495178401953944883112671735579320426600013274806796159319854403813975858002018416415133590151791544451231501882932827289446496330983967089904644793653318694206240501339188219013856999234832697264714788839012156041322162163927269532265566091881513520203846846979088635948625155167104618182361186164185499482976745581479473592142192005032780586586119455097512977380338969691041396376020367596507164314338491423506712875569040282402149516786535302367115356479326954697799457492522233725849277825647698478673864627854788786628344603684813474597744873826623857561939354518429589737829470368041540452341990951447496982111050794708548652229556187296466987945893321594225069711033949682700596911092771460147518476161308174351307070446785364614528895217095114712762767462581132808837860150948589889963211392302023797316223805765870731608539103760976970609957119410676244067188397948441883697667320882352464868152394018321435336306906517272586750281961447538560128793497319830696820452254405227477420809642706358050861714505992233000725494692823662966891221302677950013935502567984849891860774319640691469172605972265345630203256431407123581889758028885967999803407515442919985749530922546452077587588436079807350473758747694080782079431309844867550769352044102686505494477301358015150661816075457831651133292938418628977908026384611036729271572598254805825989330609364636906539579302857407498407500519261567785604932204855388986328244834326788852014869521598949857600314658029464006718912023657976941550410816203516424611313066649877792413946629614783937597583285286101857459750315276110924078808142777635622862138186683162194502839394663907073161064810250430066476850815009402010814744250354901322464246550849724649859707991014971084641783650745556602984604392963942163939818886638105291809226443110019661592819479537217939100677460064029226026317522505785918273108161186202698793135019814543320255632202462107798497613730185753081883779466195037227971284167325971434477022340518257104264020287760405566487639241708402263681712700322877791431475141620955291549875854409419217545848653971892169131987975150107597159150824652097039661157514680095277486644782611288713815696974399822485553660930549066214703034662274065550590108469445915222381872194762738851853114552911786079913860527794044847485238240504578363041630304204715372137397784219094445467425293486456069382953366928630115925974729182198892680841229931891817211396345514021113920590288169292557614645689524610987887512713879777078147841210226559960975063428230799786536252132109922992157671266250581168287892125932545800455952766974279016955749896817085695694492687566811937107249147844049054209444117393915453339158044811367544835966244914473677380558462556897958784228888551310449087861011346664638329168198127016158691279727949621089883675560271389356076047110900451279371868241723646657031995609445681148440909309270010851925700375508343216786745648238603649307083080701229433983528142395138712761711377705844641284872898763926085225818357914151772416874012428282697078766838347361282868907825616974355457570629703715228798168918068879550188271127937166767142054666989724479119881411263561201446434113971858021883178321079922122249041212645314964575957152785722093028682175227376166607188555914713218040203404279233267963709470726858210271400931288256317774766712612619680887460917293797330283642138017527074778539629345072070773231774626144723516526210099692721565605954594423176209508570294416937170312351654327265636042526720177594508649393929742536863734649602080287641385406105862932365860973766562481722990915571855959237834677285324333812492835441869042435622704223056057010368578257143505714590838620338212738574395630877834383893100099270185415026973418320133543536946063321630120562755821389620168423279810601866745620607218862635482582402439817378219038013558687678981286077195583743501359143050508410742457907335148027998101367044951787458605031365269449212020819834622229277460029869339387120322834005170990851303490961771266438952458263918947487395028746062532820533118202165910894980978981898315228774291968849657104330056887695287457867333080646315479228916126737709598516024870392736685201358335764837900970868041024642354881521918645060970419820044608466241958359806239497501618937889618564466653988341436758497636880724199915444010355109408763819441855584586737087841938519160318522908361197095284534995645478383662003298394739833095018340059819828614077019431768477461141848610936183112359744620961689248189679167501995165756650231803331412534397224042887635661110261006584942566169283871808105216061243460002425539176373968029025107415397108776557646220031241527766204745497146791746429759408576193658593996844042512003427962032346152124384034508736551447305518705949729460876261555683203462466205660503237318626580832808845876424402919596755918351987651604805516080594261929578791545626142256741648114227848986866784209984787890818246235389778890677594507679737813629076966828909362485764519468695017747786488087324966724576472220667010609668474697767948345425442739761737301516460664102519890427707942948063067896814241508383072345156967218847589175718214525834394174360247989786451711784635035894857076646023876127338800944169593803262156241489452548407642366688197086673846725120289556164826765005113890906326689781526331320650023636464724341807911856834602021699728836461789519543596835822155586287048249240042682125745498805225518845962086234288141111820394863240199034009204337067871285869169824683288508759623756010264020623350032924482803778074687208847334405108693903967475652310028620010362580310419904970650157986161653973965966306927290238684624620724530979880998408355406666469746506446827436814164105713978224369828782992301569598313709529987370085133994878237715883357145571022110257400144080686954946929110797880338966228691855455754468536801754936589550028659799266643711820670126877360129174088517689977818583901909267060657399529540736793463836785933454341477114956350376951469532887952105212674069595457387888834750534782487471601633613374858473876574112358402220423821500106390605533633946373014450730151452313149936398309214891973970278370144757859947049941891754330566794569963013659104437407607203346406168931079502963799483791390048523438012935812663550544193064651150232653476006413929819388425001492408318125216456642871884182270394510239377940963933883597876344305591465119083478405228572472451635270044658192524662893009654982697227377183805796212854743222254284610434506522095028373852089788835845584134116069855524993851722935596135035920663063678973855553645508435839026099863519801162779536178636103216630400545172034199324475457236200325891018917149799153950632534065016303225815887323415372595980592595822333942212632326178964058134612224845359177890038238755777997458608463754814464415187803131272477306567552234487756317675962916241608907019846289705445617168265157852804697072640249165759898792685001647599020071525956920765757950557961755749439859097645033141100909924788915396102892308228553149076623865698229471619645986648427966085282453139788167504082243946894317911051209371131068794439755570394390411720259632698204809127099919235085510318130241181039256733192794567033983094375923346331267013922639517841230535484566399446058892983458448762451769070258954304062652977199166090265678128451733736071144321244151688794361990762800140526396513858493940755837395541060875517305937891589348609175248772553427113737245650414737052305225427535760611068668335665899249887785318109688363400987651029983760663155968898472864886995511355890720586923870214920064382401709020736275828860284580726390128201818518210006207098098002325556086325185438870148459658976901542596930184833051384133138060280379861014738481454353844912505137269953304901334660314591859259631168600826453445454736813222846926639744208071694791105310632930994757343473752048837021475311469102242119441983158555910373997873748334635366732169642752296378762820618232035398094397481853409335598749521798783465806107274535958987311469090655326684685287297516097880294782790148450268585943540415302854448166373499457089001833300063460349205562870622398174213567739220166861705583973988285957168225216282028894431005463483631965997484104297502063113365176689347747734674064267660092050185888776096531506872329672729726714901581971748597156714347429892123983683201866155236493055680246450557010595143556852348398997908384695916787828595272432637685059492758961200963836986382597809793619953153511493694585842347509632819766288760595313948070217686774980146259509085392350176022755361736796861182603508508084573044727080716869445089545445107670448405278628120309332049687930360319363775282033957640924687843247887607892875790079050727660260010947455264205226759633750852809933002253245529611950899023300010690577526720180477475167975354044340808447579262724858376715749860080973474978978619006137309822336129015632897864185379420652528832569680792179516577688681560424476281388276138650085740176305919557982396238423913269720722700185164825697487972670778941146064765573918012286674129248088311754345375007929647797518447823659508299166437060269238867473566849164261049957364154856280640273217478722770175964920139785575017557528877821024272500013368921349635029727417056528842511268522266452484953938644408609721523699535274521472061071290945121472331866486729819348797426502721335027948164558961102647427276165030426526651915126377118436080778491161560174275848637419748947645843285373381941361739681484583958692861688204893717070161606883815160237996579872523291708338881365720353675393099519245400478127865917385716573738435304426797886136929915060232122715310957289885853010561751628505384241801662414741119303514617110281040710123406486906393688047976928917076177655928970001283028713091972322178263508025860345907959070578869885524824055144560197206317619346665137080757045123325417014081414156892948275420919527784495497171041094144942259925565800646973682664550830626371749018917300466218076810614662607671137256907394413356903520059673829026898600372924426160075701693785448574460638426415398533455999885432031059932338753229065400793804865350410596165428404889530570977954410838360805850992531960663364321943280568841991939172185108847944081258630130317451024439380448980759980315531902401962584504031741472320885775126734282756003156677682174151689256604917674793760670749938653717905123848768280937368052796259952433397833313232292449417656306086905035736903201043762568005468473010930535326792744754656586937119728189045775591674497728670001583073836229416127054858699067240209568825655523234406631726885874934983290926690207825449082395222038781444003992775859902142354178247058412099583296326207940380445620974298099200919718845433069721774194682253478305695279323591550936214332974087843341286846537705418024685862038077174352157747718221900991212113177122991725698590579143477921327648385796367568155588802288337252696241555420461923614526064867888033650693663907459349052701521917726580162357082725792037767096164500928615791169799470151399454191406482723827446986384483912228503614292120122526920416296246336776824056049008753693086638962417651165819666556112898356467545189020707137525733553858344938824434551346610078553779608218564580702640060792156338376836136258268251041028815473964158641338494442736325590443340276597643871716893174947224947619701746972259535702691069146082426330712848151750114577673208744721622616764728360815028055287784921271528822229290993432514563092477638413494422913575038419503109908650494255366433914589994732848945051703237210478830320479444171435473856936839835202106137075688838319753951978619216227946121420674441922170909909441228183517098399516727252656772905236795135452029236621869020759533153329779847970885136879154231918935811931709871960857154619223323925175185147793063846309341197979877570434937611017523029265256566325800002441725371971207516652971593630381441283768750374536148661870516578547580116942737506099333401203902798132703369864185518086740848607769856427040739359856996666619505637633500171783144046732030841757312553156953082521916936322401563936315340031459832318567554914089373019121886734976896764563708006397713333896362151989360669425025836693466022731586506596176672643648476002735044322823689547498920727672506008519386491985093347013183758685335448395966989377005390315581904278335471716936634758936376800202135466004287626477466864573607083022612852340548318709761051148146364064432014915445064884095116800633274648627340527497104445354309645727421492022933534280633876596096484968794233706344719379619108539696437155832163540008604139851662018251555528192828849501256232269268010183689136987955443639842150889968457441017553563453041050525463168356851479188166804269129062714465811349922395028861751883713170797354223030413378560577456644641568856021706393789532848054599952168050560627074072105348538616488308625273484815524737775313752407989418589392691409220074615659604559565896146277467321634074895063095876086297121317056541733908838835122861086527045316673691797530933927930333341250099536815508649103585820040759964670745472280488289985407042190158285518554828586951122095809378722161483437216873261658519408403921275983823201654716371061487960030748194625731996957202543226257571602313248093521913886118164433572991781882481417000732240198573047138927948586486413548478907225596394846431954092629404765604273396217358321477503840765227088102181008218273641686092514133495543814260932164987475673888182716160532371854584683873538059168059098663816205371680762880279727867743702562522152874035905417630711383824923241786411133078227148507574475363861424445916734063219822564415867229280944297452690905029348484188544257890365720639757945544582198991395076210683544837428479006175621131646928699535699334276793531964229790426243967908543123151038442563981669753617982861013632398743515127600427271324711461397412198229493597031807358744040757261578577641525202568966719567064607919203147941954988940589095660788977922028431496401124129285330422645309384323824936045518756821652628480855375478207957956267218315655109030811807139404723272017559561495961031178407743412550749224557197074890282425710537850261353300244955462446738929833836117734645517506159723389217686346039720863354107970280767047638941046255521826673709737799792873138917907967697064880564862002621704309725696329440035702610699884235167674973548481761482336881490718957697026593654476647139107800531136793754812679555357479731288131344201566938580963071021461844704111130479187512205298664688929496275059139363280235107218905580223711153032365356969696735698323081451047681262049660987105456623021104586491690528033216581995842728118217349615894410507771702047392721763145667890857282468020013906387488261942870669599483522841701668542256515475047815372928871390825922737592010166287848972636282968935680977382931148501767614595565618009340595783604993887891246646577968599446371232516846190152724203784939826229883818391491426945958668990035793059478510265106473440229282497675530866752711124393237154229170458427347886084545628474339034023925752705742755201282678496686156348037642627927834018766737434135103649258147281760295178284011122635825634506864945005340718544278810517515742743544967123926047141202037302884556928460358573999882584660092859129860957037944111614054205415990836183727311272046334287798037934620959363899737040971771045533417160811007487762553743677528382135931844628765367022799614499566982224639332416427339757041100843471561068815878362032652857279626491747039814962806544017409636192382867628946480840873882641931343610320229868056517432957255043599868710973118703245802412839330232154337775735493598956811232508081038420839416851012208241563255673802580417678481337480205033228362689485022403213350957947150329034774037315837448152358808280585519853618172385946771711153189851163063630581320079496442842239405846672586793396492862068320755515136275041611386230219687964244184375578202785304650670523386428504783135360610140661700460817318523530223387838815304514672803696269026287409953714992193638807651024019743194471885239478294856508983189659661193526472760735596647268331881690042357993238342337040104204913101664834631551340645267462059399157995387352179210855914624692086880246523390011314043247340320621138232007724818278884909506410199560929040898212480734590581582516074805945035288941591283904992401067596908572248244178484095912371242218578312594956217242511650737470116861190429648000496072468042793472674478125792189971914252256687712911194258044564648062343835506507142163435473792051559779581098428324832130042042485780613435519878803408285923892308506101792463451512605311221351424804885122519586315032949936845483582176590408320873632199746316524230225540837678471470453976663597850738719400775643891019989823961425269875016077425256844816658679798121458057133489737560742563758252101748492119773090665994087335663238434936022838278658793929862214155179996170295457553502373418428978602437632774757184806641687731433892349405756295347710813483674578118642414512513287153415954794145091764153375387059098105900085199843934110927856866720271342023276126383888164410687768415156940874441518725397185312078112584946301519413623899079388363805354050989125932432455704597649026665854612879995120458302552692923397513579770317078324693082133910480166265356697930220379065379059703547167299545690119361911468418496103203582262007349237233470965140416262029631470969047559267814291705975682900235625846092134936764303723832426086278109445216076028792362908688886511692368396098146147631167920160804539393323919060613344256389492763687900436423204732920590605205509531238306476355489271704805696746883523877140471485638953884128029432485269746395924129241869103637526996917725797499092487194931977950236159235782970170790706398537420838657522679293365746715713891052843056164858370603414931584736524985082106406654144451426506084821088495439574746137522200139914944424772951741161811758444972663697750928753458171218573179243815696017062827505124825472929180467469181276591801104347231903470192639922694684014533760031881584498494855507000659516762744928392658763102742978855100912261874672784482000143705074567078125743069080556386223493042751910517311421022187128301263233989679924911312702119010662342816517790955477324132632707651088375801042765086686677530808808670340986037491414435389813443199875413774368614095162518456568788094163412306069328003321932958464990463443080244886659141077314444786675268769933170653295146628534808628657817532290188475831641926638894557472009888105545007778638868098368079019520196205075710417337881290810661646672866639256062550570930700213955975427542604247747279913364829202858009454189286901496801181607689490825313268856993574207110123619953674600273444994836572445853746229861275021796213390985499048920900620689240152361697455266203674367557747375692386115717885352468382006128094770394009372074222660554825014053533268573206763119645303877689212119166499893663980694689749709268039326218830698166217020418690466738375260539782824640980739785705746331985002707828351977445040972434273918356582964637311255123832564527546497087255358177780647225576775521899811768855823096256991527052119977168814582076278051912791276031548382463626514318806780646046996910158253882336196256311356319232320905001370408464486263163831199850596107584278582546313153215296877366300058646009069752718606161923472204188363449527906897091830054119003413641867146203385908472329113719892396087046441196270883491485414748742774795768212109502177565166699839093961812079564802046414532501622064291701661446192084120446873120959845304862178970891299148615893937866868542175674116416315452451539288851033593301386414502198754547435384627363578392006175663905158404845165795509846090646485369054512763432705472964235236744213459106458737771802563088587063650967042483430508341662273138083652518072286011715655841104054805723253118882895832425928782546760715721041074210763333156532166301699086565778760669685391323798011513099330858135453136672953157479007819343261134368545851015114037051576058315232069279383422039043861638916970781675844229941052814618001150840059878917022192361996520264219447957107536990848512622342404191523270823085553706343695420779629698894169564292190277117171255740759950744079245559116686351172702583053336534301222583885571102489164449238313972345380113881062263996581516679164572266464043720436424889959193150112452874444745577707924123729137257081024144307818441267258091064479451680517813135585185427089112002001582094139737371960986036804283569792579159023704331185655164464196997759609892128283603005467934992914312466829594996897489040728281167772482769835828104436505753907745960980641485096200065892812285510553154455809685052652978471739472816577266781157214605045266636780594235794872606425003921807151648295695408665513513552118090954223857789586644425116633646466768691840598933908094954087639394263896753503888567937529406714752593282867979803362472128377419664520566978547474581880951564835746109917609827164126739398703530792147648932931688141899682846865535687296910117768299715198018341712380652294582445472000626839050611418997066472816225789999990792055889148018541551652576942319550551056131536254912971011842398776774314265397457089012031196402015208701022270880031608800889343469401324351801067258791779563252805985977121106513009903577429440513821002023012912494111451936399584330842583928354482209331534087912032550067230098895469606345928346869334601130215372533329213899350346527865850842880531584586709228785899904412879027434618944273076340530537164683080634795892617400027035908988482678615376562525500522431466036281255531860319975538886583861474633142592196749886595885656705964774767985056879906351512297347802313943771670327657076166997090993967505854774340084142692612750522003408036262018186305211121272363564135056694212012276457915606861704590207468039169854157659489970248844565854679266615792834214648313926048858668510320309488332207563107037420805187112260651750866192462822766293388391745908437648416802230277409020250480340207783459015797171457977973929498816961150070398427263768468988699806573767079200205529271141074990448962697728456233611564367517572149423955435755616866149455741600597927416412232123343701637288824530999952237114885280648697145927034684000079483408467039831768058379129107642739926211206662835982829480917366402279482608727586341711957239637966155276064612678580850410227608269647153079194349540120858844211811467447133783989767204765345776475605578794475632255602894387020440188508367642854597688932363874330882115190743141102274877006849121097098649573634678291884707433140380268172363367678126427073948820648333143930405887307246750519777205231882214115461856845741035414732171230246523402613320284814837362378338984821067995009064683600365066718515064538100467416406766489629892536667516647160188019531806232132393414974224148382662727953701054270445695526174865510768232409079383386652758041325134682458034148492867651332436626038368142123391962038656221223403679349147230948731263947719801985918206609064260537009024960281573333710006371161937839141120910201655514980490319593695624454766473650591110565180778141699575379924212814973449347250887975583378325515074098949680246277224572635497110301716733908759709080518988001954477147704470994926011832667377324182042062478798945926880730003160963750811029956508644757592053348806059460586696414923152641027547173652744540056840687902408521202870652294102935249726325344536181893319128977109812027195702678742062268967980119972348491187350615493487762148222108859522795751293919320826552350796001792666550112185426101491634422123558141791542243585749177789191792003374648208270708366830932086372328344763765056373231887300157895722854629013836305325650621225379630233615311551163604623037278179457540523320642465478068335954762655820026158518172800323999837160935725897553486579208691088177549917828748752050607169299522535021456999219841720364726985356154965093309012358010266520774348143416265277808714740889153745387320268164208221101565179566518116343989251673562630237529730856998011510028126110638122638847977211684592021532087884174541489412204871998824920219585040460770391889938549605905022871393301589399239432445507960845239176852705693198403858270142370264142085878102874828007663157166713656501139880154933510792980513374706851100695270287506086858783511531398558722780799323443911573240105036013321756170722225605199129680549697117981753521465192854995825446094315001339260698051435723388756211020419791406514719339080827875945800846535601228725609547191227043882088409147992222751056649278070023044030352287851658756965860702372690249550760103369192936088837460356482084561947565893605438170905811128538391406279547987603538627063204125525857918576359207138792310503533751926746877275945183702731443560699200049167942490060846465768109513639315771509587775298472294234273396249827535033726650503637659478151732567973962923267592206000206093919147172824139778740735929593042328519189219032771587929611978479373606385818240068338620244353402588356514686632196985845111393747535879177742732563602900433359282789824707720611308306269955383369196548453438670134510649166526226904652271297959956642501227499706189012365229107012944437689100898628880691714801995642662353910745228571372641945217070876051002994061048836220440790646791293138687394920461236282038069545412661933423904278687255144763461123517018211373682375159879516983829757190437068071512067618302344032627969098968626958812433997350353219422592766704234856461709739027704314403414094340684239344628044304181768129058885637750855600111557263412785904047436034735574739977432660016257247834200566684743474688945950059390086020130018692353938461309472956221951354770874057644590600975223479453602566816702797199894872689529789636110283642066154852014632795534780181349663113568747310776685500080157221224593805840702506274428402950352788064666284316259708533208669765421876173739178091483438957921857520394549872581487726207150367062014665622781296277103428950340675201725056906448203115416524621512909128598421222683849806335880300386695669854021182644005557642284954579942758718673587742605864330181644573099853863856098317273750188166589843835291724826818875464564590809992693207335479689832196012685691129410060811452488231361588712005767956333135846816935196048033815732480504834055900956345531965398818926235978060190799018505618191662003880456548511644860457994829967156950734182650446413576500237057573125248053426399109678979631618266932626632869479114279994478900018610278322365860865925582172764688606533337866236566658617946301295371422718201954564314523095544267133847612928137405525472197028375488802242369451288044902189711400157721692276624638546155509072972480621395931837742567120181780600803109340479527783863582560208219687778171347445853170659455804555425075824060590755424494225415338613052059953726482240618966114995576718143247865467375960439060369990447301864963743541515082293405035671814016202494650108958790095479414079859007447075623302827692741181065509990690461693428565910620291387840262907547598911649660417205617192253706540219450613294156963533316829057448430288376181441367880187308992372320777956426183732265383361153449458671310293656211474447119513188909072241056919108631842398902859465831580149230688487559602135799211699583513530559912687964403889720542273903021268862687829599267803876660367500516176462443610831495480182117852674403311875382267045684967341778320898144762120751883889141102486312704343334240555448500379190333416352318646251826836280377807910684141837215403065166800062849214043746592408376765678952709348946024574657273405435998496601372626442796610198923174483312147901227451775785992136136459362654969010226098033413104635183214838282990474222339872880802306581000665715831878556750101219985189000690991182328347679263864645516038754314181523775808396490117060156434960351097918711832053236606107753203726669764819464186961941794394312261239137795106849373296215431717179613420108476483601645793784064455897325395121160953345637208479624357561610644762681578328609887036090544095068019055329846465475218111747142891202665086963816326417049714779495173037439368935715439312526146954438732579740906375830639826514112596381101365624414228248528945192134970631409279210838114654935692017027532532258777827276490600653030872751132819488603050513998136038885472176701814376327573238706434148114111871892471649965398292723821203623191055685128350315087808843382317301252165479493744126383265790606235465555707016913711770332520821767277794249149447383657284519811889006804688153418915189413768551107801752945022293400507662086793675639866976699094163939793495457005737779530472723348103366505683098547772674669650461370299928345371869207741201397629361994626890957806924640490132318630100517170712377504614178163602931694377860485097887149550103702434981417959553678673098380883614636678784991405654085606529650601929077520248462405875828820748966404154438364526445268468614356793217305426255405062859816953525200233764420458834277471276541528490427261433851284821133888760212241689651457429043793629036681412926884866325978488563099877991458371153220564404832025667790949991574439455134035339269958810138177796251164757319145357419927091928697292259645606539079236516203975218422961473495533440920748279702204537159262570475555143856570163323635250759709840484257349900368523059666008349090861854542507894951833480290799073939998396183802550774788157893600467543457365450505507133622220023438107319177475794644177377237834167831294332465926085236504820914483454792316846949345465249138486244575304415780279224011651642989041416513744447518738739101701686221306554949781897522488179672729421617014673347760098641716014749084234305369791421351959655930949181930970741597833581642767468077731171424064589242443371509372486274021657888296488530015646220274636950015195280971828779547841069674672659932808229409434055865790237445544333361970243668801956766190530721971788434740621718202977030298383880658767161351399958347867515976380220961501028032613030490785673829570707921727478684274231219015417263459848866801810881398558184826378460758970117430827548306132391101518630828661650269032782460192172297145660237378178329079452461962897348685525067752673399559734405837709656617491024557628615180128553046703823203828474991251628482415809553230823848258715869791169096630129304976581272199938845424783495148301639619547993855451182187264026718585582999436665056041820612362577332864823497937052274462851302638072476970453311471764628847684105675758369578526354605494808234575003529996629497927512780027451051477773278805842751307241948905240899940919110511590701514359736157264076631054381426688325831412137272192245816581499450064142048606214984027910913497684260279865376056656186068620901323920204991824935416292186637727283617231133533032856324967849623490187185716860002293510095527960399085091300246559686754429275985580666555073296342086202954719283106639500957997626071663777691834286067298852788395723187153404638677670212643276269566933731419452809869638676023525206464621185070020858802450740083615475026445134645980450662775498873033090755767286953912807547123828379221905429755869012618033321763331130611676805006830884933289481302392029856773374622814074507607607939861819257832375368566202064679971432821499100870063293051251331738190677363661915743620661428259229393292920354992147716574711217744094614103217584029541397760798117146140588352982912718055504762751078320372591364655003979615739585727754034714558740838710655635579853522741492643824923264682078574759420959553383395455045142590357416410495322908610237107002858711404453077635376603037157328221988685067496528706153611675381250533195820482259357165638779767384891251702234014532007238275269757061842313234763101449815770777791699153693650957844295596544892721958210134635289969509190783726621564297348698770661000084293725884616455977279994545238273011624386758075895371398751963523489045644631198306559545616450402316638255158915154116115353046932454668450638484548355327534874685703706196233567179871215717315196635387558833517755525489457885578480648951600859767596622094221648230137706026170963659656054782421183245356932573809933762024983621915852471583802754538364018648882029607766908284690772652587331615952022661616608811983109196867642782433629966642190690361815468586010782044833370773211217506197290867040915487725336000308383449768848342841200153484695362240381516442958170985708243462788595721243347141025161792139576327117505407817029421221733467921870915686861800632580762837149998192464186780224041080442320871377715042717436248643505995812660238540268070698905758477951452362044402013179221274005195185638495477156650969069195917719769224897870955048905114937740745743378116466009906357865892612799895823155607972094103256981569574026321676162532293035543058347981991754898573761246999928727581134170205384756821498976642903662184439072794324849233767892219560777125686852931452171946326970643047424218779653013965907157442076422176863804550070875710377741798224011663592055109726521879657363916340319193493478334182370923876689587916553003711920725840562654142849633193562986050672696734038188347828609908513320211127115780527070997741765538266244321733910019334320477714234277384799493731748202120384178672714675195840253619269055497587188579169943703583194503733301156183928973949685813062049143736141037067684051049337656401790511993766795591171139095790132823611939865654923333949552708633307095632918467650474071014366429909026088373080574767488275279386593515344558198996023219766700712722132825171284932675902957060972694507984447957270283859643583384658152225771602392269398121191831798572868487327533517112197320809624805538035994466688200397763451608433129881015139582197171607656189455123906978725638315758068282111092376260471626067409197397919586851898646590069914460710566582068864365408245299534142456784244275825936587698417748785452289400137020587840432793381694665021647170620962912593799035824157305426208830564672284532828450128894116939544267952193869665777141408235338693656915661336083339811854095463347485284978391903702426241924173017933280200681207336357903718945725392786762798173657468610845901100651982766260546463827572344640638069517411616688332473943093202199765906712764222509176477817790257202607192099936942158044724834074991093045211687384937751742730585634271706516954996515793660687669060032939596346161114124790915525051926072614409823240602093374080668663319375773876632072911979967907196935839354080085402643925208632740741136827843366870821571322539904225039074622443150166580356324769099565582897620376203401570278570318550416818498150791346946764538433344523280544710307223656257007860973258440063510918458118582290333372076799094169931851059453437126171643563324160258833906086241145738960806828649460917462158129503037123931112289800222955614050486391829068116665470976432052193217426664032722020589468507877300430046219522737114648686779524581172308405249933763011371351049155081749218769063612415884163961742645918771438664810012976501684984191484185247816058157851911278527254121484878620719562586823331611914725224803788594323105122603242443470267192458211912021993818363327775134774254533967115851750877854154613572665041646120339743243580204545445800518791458896724732061436562196754594373624110441173169381565685672747112488418787864651901110104956554983842186355714259982476291959383023829127915225294884448647215679706201788068956701950101973387340593237493400968018007260423238498196563349403879568889096119450707874257889944084597853113650565430386808804667025460891551705886121367517849057083684727692234468509531646308259770847761920412344496407351943579420550255889810086039662036847861107773358068951256824402516084114431212605100128705262658973343494619613447030871623326920783074940664842550276563356913803965697794683682417224406594318144475284355775584695780682887110657848850438012431472338236556303424291504534807991919901570326550500637762011304572900252377391900875613630312799830991576681580419215232683185147603860598145892743070614729919645503196313431863575389151077814635247628591431612113386508931111735379332845835290714469232710099019943208170093371826027645843573037037121221675803574038791195420461381009098339315433339274024936540594315310010034017759844519674781458707161725774563283685416402811535003455571458450053726869551552139932938944489954001126521452377005924888080119426074324530417693484863296893217982733093985172778291061755454219594997514480943744625490720701911408960296918696360681386206598911386709663581708890667824196856269162451627535271448324169510916318245916134282129114279192131363697844855964404748560932030237331708154248648961198393158211451248472196080200015213238378596765123660296609148896778701120527942653903544232151480305500067271586883286033290541654392513809998053600444183404867364951401690802048542194107818157523997965882720237037577247619868551048907476089893604159567618931585486653593643934553648332755032595101517139009552918335089159316866588380119191499952475354677106698798530526619315880509410006276384503056793408876083367763671148874946639597521576560477514164363293008389595213664409666934717127847392101780971631374542156830485387346645962748978763070918391345321661004623900007163604853399241092765385687248004127457861374908451417584468167768503513222614090123878381779891685878062374551294589576465316828004352846205515832662329255074122896158887091465528395026683377363358624167428381618553817808132081585035267817025306012917740744618955458429182114276454749912505405690522622384354373324910491641016616617589554586199441976487734581482502222210394043776244605751389070043302273559252727092733709410259796260502151098194360249799636244004030085876639008884257060882472360383843380255288659924924711846514422745789378431397014948223790766906694754372690676732082123475640438432551404931410588236217300667777587110478661954423723665760933235460981507611217277789308741874211068018986541102537351986868939019765697524618600242134521030520168766639219211051822138666761133535409864085993449712163416962338382809366320861412689563888740450201725682706523549039024886132552529112651954809693486632208905440844708364534219530457131558599290858197888735747511083373834972301403477744868998807714153490832463626634011637854501105942512672733864068848906772231007721594541000910274845504547840340202355292943437561090029975364636729398494445144602017784115590592119477075035773427973786263200918976412840600173696438670992909563412151659996282659579222838568439345159063637593835704985002109798766988526415587123958993988592439592741983493956667322776627181928846760589800248401870853961145295028086471837524152679230342934525252863614576386410830380120389600499525679238541439053900481151737538013340708037388533075356698231951186780481546798707344710864346153099784922820931537757424928478422464317435535714811026575542861132394199271101897059050251511742568857139539295969732112434094064310075856236173992420585149416714016208017301518616699947135211833415011809842949305636221239533640392122953496664682616599784759855668754187295121873993594643657261694067334044232185397670780783188364516289090076181721360179783041443809219327992359157253619111156916928840367912737878569679969660176209388925985661630904523596161823492861501381541828727770484029971547491722150591969180618328028745091425077881028630193836527502313550795582860663523595929419982159961696049770527376037161404061316941449749333721410944327434895932315697278162834151137441196245272026506472631950807896663050064631010123541165140837896305201645891862098858036527358151212464992242266400381704702021476593302017682517583163516343726173923279139072464214701403342938312292491138166125796659377747789192271310388801703316420472196089983324301016428313284766240378326671259048160533233911713174426607761637660747090818709846266363162030930906636844209619988355259764057449634868858797818282435241996011271729858692158409585170098903538327420641443372749303926935021848785542885507504384894044214864347111468294517833162802373595089641333096467918444456186405808868083005481439099605957430843749751577854940040345923416256541235470746331651742895910465004598254837696341955483953851810923796109057874381550567478815617111413135693566812325027778594449317615321870681945728830703620194908103450773915524736269167658245095234466384312571750622972953937762651690029474820439828657278965295170591175631968167484949581003208346713130317193413354536558966013968811401147012351505435390689107599544093739565947750036253912412885909618826811993994740771810048617402729177086303811584799695410871765819596370008102668791879566071400706705621760990373928617392320920822881130272581933175821425752162956472587450237498705203448644864156506990968276593376871169325526557797659861174408714756332853770351427491206460752892725726207481658982072992917699288479219798886243051614520341866882290099115685718646764776509319985900610366031646852786727451545654556480327345313837972119253975595889487885225141556715347128557892621344219198123671778351990260864142065437338535671335643976917232362206477969442845823827213023291711848550292925036488410474888652377198998521916346078702142317328020376185658192458761393691104140226561163565804046120114901474193746794564028329257429026231961794180932901756227513273953276822575954919147716180680719064797175962099326445937487059075878560526162639912497711486263286101090092331499857442634064151727788726234398917182758646226951567482569669326048724304458798405821041691800392387091530457851680325082452936243898481957043132779904965719983672545326728556073488869704267110407456691683510591282726514276136295050660908162177120885404426780039939251670002045769615184518115002338674037206816454593164768441130377809409707041542653119775285853453269186052162733987851692682789319374635993954278311824617425002692017574354919817376425385023637028421738344259214504438647425787196460369286357826151663966642103376057167138765966958277623985143109690629125396364000813159657557639977343020915127869209895934396164497941523941520721457085702683107164953554511035457814497946422207875057822444203526038545223221138409787425799917502691797724172652709210868830181393855259553251970783204417361158894084302399625366768389912458879275291054482355390076754402159291318686817242673212263440672417192062116056104200726495019741585912729231686603668856451110931451129345508999320860009586697587851724171935478570695096588007218279724781433714007167776446645749323873080906297657561578583748532338232384868259129603758900698406550093386311547663301912150452079341955483959519393974527343945046351767797998252806050993253220193918447750738397644411176070898777781742977324868123880495740388054270908931766230236344272587452669256340640346396214424674569418127130377391428836138159425297421887863722453832471184242375339788867120556875194198079234873370086531774472156027450132537410084841173702790580447128768145799446924177609611771715143030753271529263131556044976850458762534423705252685627776306582970736008842717628998954720785841587520519254039040993044861752322354471399019728802410169109775811454849904031943062910421301630969172357366876041392705339240399780590937102717666540020644741520194339854436401110259295269164780911986918439173715548912795251516496436005561534864037375853461266825195045542855893378244788615080763407376634889642166888819130673454848300998300071220826996917058019072502797406823153003565661824975257531799395799518647973650920091901685534371476973782041212664976113372494654105539439050970220910058538689935186145349971061687616935319550831683248647367223181752485911828310842591694940454672982644524888794983095161606219176706370495575787219810745337841940907043293632155074269889375853126638489332607488688915570313939085336221918271998622250118171816261109281302455812221573432722339219577609657949210833825226795842642318563265420893104023256493048718082969043286620727341387501090301434104710192566937004887335297501371346226255178775613069733158734464017683594065498034120864725918966272348600694487716120233726330246214098231728433032531714064274260725703580640936481146680074338930950555877890728073348722537809478296458371845223372661851640661649244687443029722666546727901562317129395868823424189427573110625767135289151330823269159905471476841648279203503572734797198747922443237332811924445001163188982957825476632039789548260615383485138368153399719645422231974698959083520613895216415048371281084352745009683374452046495783018535653846776309723902062493777577512175906117692279518236341489754499938327022836066555291460382429903120933851485088881616333168938291198683955794104464294919836454200736908364880812315591602843196930482111782658785353819742546911038734268024721046466220134712102626954668084149304769684840632754527059197562248351465145004137573109414155804481303331782131725085431931657777793919802152239344544788696672110404338743190903551555767928444993826970611081542674998660882125447915433880188482784397464436071774158068219725054507345685973031290694283134658497904075640769187760328346267240819075293713615410372153650533756247672030508611482817128190433745849417480002734013505288302182625597871814497584858992431788535207111385662929956004472131508285140617802681067189986308203727203915603264849773909433408106309025437751071732222808914229094907869814684642050891114363659129987272552078155744288809369343557754635600080161357954404549507833000388208032411187834245116894649427363872182606069438259854052030273483768196253469418677009098205533865656638812029242240685481888117770950677642892734785809529892199142893830125786083029044099364075189826022323739233557118014095419312951538860905561762568541008969841289337918390427751107597498792913953704515138595767279343132090051624028325297545103500416422834134489977148584621836789928969726605409618298844384000237919718110878261789093990658352178704131061778051246697318926264874412838144323806521660403270314504714075830483322241666013562789459216545301140967453789241358690709825094012461635729087898089438985260801948868747683246639992580887397801294780579546527597543083630510120522735231940388671155634549848440014808095317357835737157264181737750938844544928723558112905719913422355154447778356370917828073288693405788499696443859855857156101173869824675711466673306070326700259103443799803468750273839811055223895413238888605291048267494934720626664615509695191094778573829465503686364940956555257070592249728712504485861891732241765330022614412866662673841655774981559991581087796819576339442773416587672462620997891684611388814692058356151173166258838165016827598602086416199752073966989258680702664499460116471371070848509193328967519757763017215278427263607359951422811453550532890305286397055205959038819514448839143044210953204927173836042283465766230829438523391547921074586773483546915654810081852708494432966568070862991958746725653400129845174805635069778559093376042592146913791933785794530946190255392305990507832845229307364872942671527987950006685975369697945712710914263329489970822042006225664870313526784700695108711515265497701947539622488049921329371190985449878529760166485784496534356836800228124512252703887903925417396264001747683327550257452389491173454928046135663459222543028214569532510470855884279436353325584116035215700248456291058778875777554432480748865391081394111049713106848136227686058571028601804970293061102310905723098455272205188109201138420328132791818403363008096194107923987449008433678507752945388684004647362630360018644062265549355959772926826414987256599203837095956304415842603767308662023862979976736613893740064280100074539572525129045508965398961645194867866219210043136612276897064014779564853754485448627228705719206202238645430326828828325826459123168009029461198758089312157400339364883084173518184328562702415801209029019777970729801314334524119972640920852344665104417141403044276069165240939215588590193802303561585136395554593780528423417339531077038747008771289936086725852368271848776482170961038964275478090713636806000062806490233854687083182964241565832991313217528410481712388931729525430352122475138534616601071341440375322034028281637331144563780251663338273168958888741166957336504328217525672701455472555786798020898894367456534299476562878477086460700472354764573529246137559683679125646256996008625183429881736136649603097812853236844633224881094044243546624250746252477503859336407204390376878049229910463457575340628089233346593070771568023431122913563221055825164146519232945058230103310566859598613212516744737112475374706490895164077884505874029891441502351237012496484468676933073585003675200635855904419118602975100817969998763491097357193603154966782098367402844178160575901904919308621425739636127314635982340515333367579246387753248228061997260701106750543130045555057229680244956468438712525257075591138896664355422778157325216688031402408278949248500123803867793923086469732540781145702533933611087549792180211944294901276604607243779556331849241666421607015341548154493079445179676824275971495744010877599996238289995340481592001835607369441231241661775225905982914121322581491636024085943536971493803802111385454629834778369989480710274792070092754066412266267737372948532502789500410408789037411159539580111699582980917760357566458904582748861556021680113695840807217705126609304732181532146746146477443837814089673029093086603680122015883277682520234599125429388906893349086555926191762621580164846598284652981818027309874693006976089732240477263707793681029721684367234026900714933519662540325299672384989744017768429479974617018730318944240760221677535885552988621853151752962203697646077920212010744611254589051283102703453278727569947117980977276610255812443311634804687474219040185060560540758492174049686839778153811298176095467487000076500067288257017312894079752391410553481198751688731740838475075269840041126060615559560915762848885053673079722683936596691545100779983992698429832078759308039956043843286807687192730612085146489028365508986032514407561778832229406439486522429594888134848755241928801220214584252126465502332591272693544179037241403969418866188768613401333301564083574866497623037494911272299610135620034781397281201217409834145788957875762310655056660970893226878001577347280430596026473382698645036657343474501853813054398822443869331589713510887082101600506616208449369861870408395774181597156428052471770579558282156777827820838026927992483108461500627434739566052630979557233047284588678323899343060798596898507563718012099963611594288008702395432983580906442084530822293769900403840300603719093490637615017752150270592307735376579780862339921863660701717270532542905974727345146735445975885376902100982593984336417457551261209990015032723517275386141103020960070213565681357101490988693741797149103773077396575527730552708773238507808162499960593140893519860645896043206189812020215523653831223471420763756326118086677861141659998252873728294674832606103830806318110573659750224715424663949512239352094566054308069240486123972116570462053173467775336783160885203883922548106244094441707973240711392182168675214669351258053502910267960493079313253501463080229776705548815676768102662000116544951611728509827186590993704310798135451888185879754643524043953414499851761160062556269622202708374813994873439170691912010529454939817198918985796135899735354309234107592010290450242596050952819820497292945774583300108370294257106914306154678526881664196539055290101781725808438706004710590080099437359552931907915174309307260953321933310070535978028569157899694867016982065647555130066283853846106413625350626616126291237383574162521407146866777353939495107765287543412698321506319558720108023774330604553611104407402519822735805082032820603097576898979990735399019873557881083108800697151406699230296139924731143705631364185064462104266792300755037535093295322941924471310376826981882044553491514962505093073492631058820660237510305470801485088819751468612691285186385272939573446131398880078075010322089933956871025399963491433303679559812049595454553529196073529952195470483703181101390168998106993975282521724505503376666810566364831051221997042632483368909651472696863819894398843016892602612043698451136094874334748111650668581883629597513438592809518277688776064719161810803304376351498226907082809547946136871573275633033154143309716437399100767435855171853367405707905081887654202862822877354247415858529917379560521506034828690837537339238351605548099366722292948302446376055860312169995435394677120006380815549236043743483876605896482121928437735624631864215285869165566032397578625666135245629125062352566157576605629486089634848860337482627893453801657532150340153347453755486502792595083053452741896472017576343746808792453575897231073998079117067238520919868809245292445878927751261340619805357317263452339973850304557638188445913255608901346404219279282154748527426383004177008164331668466966709125014423331797176912511889911404994602089698002246352329519476982669539358839112384863321143850158437670742591271052389555576844481613447795774318262636958363165117846521384277482158006002352835393775898282863390384326596656318192393493794039497898070081467095478224097822571841910910503756399568807986397141187786711192288187710478090463763260993491020212739310377841275851106632559423348739338249025380074825070056124298972333772829000155451595538316310950053975939756963823909680766824281448781168177157679181798339863197284719701356333575964583653683406465414780822975185304239019497690145311086009301290255434313225543811399927981040710442690615633961040160006312922972334922076001901748249901775116982475353832374113994269828492461589377284172872401959885315218830385418049073387515542409310815808306398272859189885048307882161343308402486926452558191907085327427834333501475402577253387008955207529434590381374564849701781372451328884885010075917937534995056753057009363204814967005793387239541593135256683846753109430868538619929132439778323178602858678975886114463201028673303421418699718609305061408520485626405073333799310118536017555419826210154539385880083449277818157251504328342268922124042650583586125038499221772270698362868489824824238640456899622920968257474921253131775951198053463300506643059087059067941455987357364316007016314365101661825082264553750947333955519093844832492762599491513575757331273519767457384968186129566992054165392787806363733300179690727975170235172239573163468201082214500929053708407948500698407259965132157018991225892533372770908687595267514112519515544936250150223783364017854313280175912985498703891091000584744981482103597692957317486548616428127223384236823940963364034464151392941224044954164957954321669249095538635510770132146971495847623581066582990793798728373965350192883127363710500686549325115120858798505299173067626531315788453833092897118014451343632119757423534045927783932389366236356140188237093884371018323514452126637178968334173393682562414733706257809261465963179415952227162421479517664584879138048719264113588711037612137514865349926732616848329466851677566194900714048683534741499506538735053590217146126714382552366021300756492529600445662365028206794162987446551211231134834652580823645158149806328778327621177463307059219318520861828839405786710283460169848515949806631706694467260112327405427747583986554745002334531328128435241074930956162132569431656322942702569982924594192568911897848533329958816075657810677886064563876164207038321401532449830052885482150852162978259982036084517253590300003959187224409384213999236403910110245646509673699816852943682474070777610159237982390249604800116691070761231582320407075920004954913906967384115101256809284455325345477528075986021707091145630327544251504460840628707333504202217193176017343371017252114571126898841361473368543447306885382689713281287255492212963997593560587933272709262565044142163190281129475798372354773865380348831276525812016580098648850938481882117923720154656167024691424436239771518393432962778458685230252067045914070174934664252090233312565773538593903351557923884585723039674918626333728086682121273276650159678928460538338949825539935057490054450778610594892280043766189560095713133558162530501789646024585062519098828049744954158639679367540673609036094485264716252049192800615543175603094021221010458847020953621800771139308852279542046180479411136979154938939049687794551416903119678324562757573917870287939339254548694634454368199776911653611049403380900092558955294227233919679421763834101722229482364235811866908187074171180977610111249133655712090622051807938520816151151704895214775484063627506683540519271410944562578518772537342722149168097768803621774491514203813395572443371192263161007374736643681190857983467312295654721458380966155210720530034310957318691502773800950519577403768441542424161986898621834253013206956928832825435193505305865034926755400531426814535646376781719817004505998914030087436666392242059745466553556968318082547142983323112410446563908503252319014511800857563400490047643790038421806733012121806872845460242362935237606561366420915178521299850887400178478611801939333676270217816883188332097564535384130957674119364568663355280624842447419817062473339580182873068276137667211299723875539269966861000380812799202059181695977257828372712514120080987680614642889282313303173615517479534372379425415664152632358610857413148239374139189082226664444029795826143834213173058912247031975895141123434440657952302654543214738008119939174438606399747169777087682451260459545514019200939712687454462313040120777935130983935452160182269921473105893483345772140121719460216302247102960191286026863478081963744170632136427236766139142597772782598074236724347384918265608632016444577918968921449271753216218822418846890960217991601158993031269435803990422573059298383769379707422761946992466830795236822775545896985580290476828563472261346754645995419618171574974740022518176022840331627807402980691899577340972439602857569315364296186540523028228947465243503775969515126094700407573416174876114995395439283978383626337356646951398675992755659665035083738293043188345414181682238049134611245994167127964176904443499352892781746055440351519676536264194807785704593462102240998854666429804463369935688778497436614748123172037434810403346905951948154812600637079582051726719540449624706097869678785303601252298989175212657865991798728007386070704586920581306458839462165770160395719130100157414600710664893559569946634556858170628338224465688802978828998798855068163395691368721347813763428612900721226755626168841318051968083366769615731575900885881872614806033708978299195613327711620207318644900957289675645291258933447738005245823644674712646850606303554502820253774687922332783195496867601311928068116317571623324399693076151318345376852013733801761671410183234783764168217443896552729909804843892953135640383368229807581193332150337566115447909130156326581270535868144189689797757555775093284690393881144259523402983316806909674050178820651829190224185711954310152851523475379162337468475813360289368933568216697136660596690364978837031003897512010770731962027907088893794711071778583870444309675687131545678164131613306228715880174495465041293516514660996513811772164105144372098761626902521103789493152338377122053056156118133282279326223056912434706153222174601884288255105344592564694835777564733461295990143440085042978326280440749826187317049606651971382056535282689138076209243527681009656595555242356989465760882806905472871701413221640044368659336018959654440938457559820022039266462644994238727515213014148445311707129059968074145611966691616086434082057386034122759965231814481183433488716454657091771264156044197192843161537403999753437969650964328070714598362760398998954614786600493963355023255383539285076334160115758173160586368985910108625853319597076950833753082589338166720652817774993856859024994010282186348198331391057979100689706766484659747626094468981492359588814430101240937272659061801262700747338785594880524621192663419270612675524358416766427429660412240450781586257857004832157882151391693338453577664973002289541680918758977744244502639767024558802557951455360711104456978669591459924950651288567327684251029691208028785053615549682279437548276722967496882358561077724599330488323178036999455511140664800351433251469587646479543452245236618666624683542590507022190646396351445362595147931202889388805399424547110799385267718395896617156165243469873242295291331083614496333846345524228863234562537674041246976503544733617291982478614935779556637633356538814187843991794462567722641758118670512536679539538382894282627415058390090333042861593643380652272352373325971863167277334809110858813265211220005332539064272615050906691353543904908021256418139720001233290921953205627889234689113775050752529574001716668728081818050324967824864805955043553790264611092346229307196338681252054956736877327785868631405569243802632103642065806324200750695163048723329278399056246693350244083984004856343968495410756656454147785361854618244217114406486670975609857520148064911769972590449310148996639032945441269089170679096726862202568009992132272292495875555105315058821375257469047914625421446408886930120763735203611599912153402840006099610995741378835763627253483425297175621593064685363818625563888576510256614323804353464887586328919413239133020127196855976498303917173919760788148609773121077605460578822404052175164176124587072008250183369857764383720243681718111097072588824796710398456957584391521686833514347769073431004785974824469297572270252263349654898726660742708911579670804774211714655965055603889900990366235226352477989264192999115717257446826095925982572639723113412391696808788897563895114410252999218190957047598095840334955282423626802309914378056232248645949754651937234255986771802645771301743093848253352445802580371354048626480724651088927453260687013611584597062121454428920476493034314003054762429759310976792876222452980809935433705165510551617025664716147397786951738471363575924398497969735855152251323674756207992626355181728105074581390429541866195416840678377827301196009430186148778413811817893229128849342572277283421861768947639113335415070120579267774906132267257979388710129107505527978585453750219089527305192620119998675954225413930955745727715456405092161284345619996029366136131945399930294317197148463983918691779563267058693631816390277895768349999238062812395955433921459556216917305592484662304690377511319596596921340751998011261858468993947838327802733083609802908788742583779743579400716857603034555250630798436351479909789260385990311311408404322618108693563802725357951090818487276704417437620993638903425445051221897572260154400572562932685812545293092060332395845266878422075016825217652081282929272926055875373763246974999499294044503163936103086590257636660394974932206652808182230078214281567239368606667460185467439445742426025747900056706777533188277181580012319710051553250229889471571682819578668483941399408478413270881453828974887253779258295410337030115726362906953474841275771405512225186463965749624468443703902632757804559869232262079859052295752528037328414173107272812809208359652337651575279393094390715626668399132511828288228922638225430162451303165970734911056145876993333330640102641049431113958982385848129068621143783315014678777293351739485492692242954126798028267102336812472617345183217265554382733558546478196001799535312919389342981664233721467815294808281363971387984032029057574725394904915579747153574507758338866807177742829148913501937739759534184929037913815441626300710893514194933803655379783163492149693290745182820068380216478716709190546410737338403262677732415725589725206915278998096714465663610403483411075266400508546764417654274298793673728573394360984417288814764360174197578271504033091908724411061331957067208508783455349825093751590888889057468063345368481389043229612267471121645972447514739103024178268946305567348585160844640724051498117690649256885941105851008450741617185916420472373008094951845326382296125103758371490313394844245464922218718599664728139140551042608950323386912053765949689979925581225428395033408296396443986257570394362525376642915433893525183460544691469025466738573056864454986112989408132789012342998969792358206121841156964841392013301901100627564034096225349288608039461719433396174949679074228087038633864916930401383481079230441251984551287887157334816271490134121244826990279220926222534110918281120003150592227061517241759096133564807509003762712411064420652179132170168848300796433603402200330164530477382241000910844186484664682374826246216462180826480290243082658114468436864382029557295321480968340686851472904033156994824676682821368698490062627537331458879412842996843866328499515503450597710964184977803475597115817418805034510504495219003757486685698694323189732490749611775285371851122135976563110353416079470672408698931481215992912978877553516712089925223746503872029561590664082745038940923268977628692286454401062723110688533322471381247337129537927242724264581577176210545136603251618965985511929150010650374258930988163109136986972540687589313312445176799230867318613202639772739035393923611090481861587361118146280010424002584269495658952379333518435607640868521792210040826770443787707732551996375466778153358873508559161482990511127703792386978009880006166768198149365707215766815631625501553077414786254092026824751782431351311190931849087621104508273808144354355309179203361291585797220537640226858554256741511530095443766530498145492172962778178149433640127130146530969482849833282921547843943411563477143322988058703183224189803524683523664941632130605709071018459942386207259666959777489593241223767082518787693259085195841355933397105222684557388130738718432874689578498323869368234173746075389038278246594572805910719263273392837279522198969509868671325001724686386887929209155673525240941155566434912555301850668208080310113753989532012585798925295001367956423029407624340557632084694257634396445905476999546781399224805987536266986890394671308560119096058661635601694626716803646037289061099853735813402127553001969358021918370621489039833556290040974552878974781410058603557890196449371340986080801111716893762557768415978138207754748043891427404205132844674088828326918424669426170777336494527784946514406072087665281837349621910503642936188206732876181000976130848192477788690134944446161175752711443302130285435724804555871877417248624526663599791820434375273678618938407702368341499358906960016584016495903572548266121773936735055873497121564919985033220447743269491167999538925654186588997946822666620239247333850448415468433778541317380098313389777560826247438242445391301295350656730090206480025603534097511288027147117482772552037864708366448709408631826516874651025731684536629978755677124379546957020379050996737960529103211118235620760052333509049497299627436904989630702506224336853960090447560907411429988201677280393673989087932823954311338463588687708286283659520796251651109506208505923675628063861385627289381846111311687370422095995423765455707608105170581380159659444819035353986511630899599128037187570872964218032516014415803130321573551245699785711140953454296692736845752211392318506345366166758998244040126372119777295244180717024499813282852286598235580119479202762062586131172749914886263002373530116868435352301329970317692052810474889209416666623792155779513839794694794610474304680530113770477533760483762555230430476637066603363664211121977160822982656556852271661276576026060925365209923460431517662691802855359409008970059906481562718647733103456980749611110152469315087697939569572358556647583672247903567868412656261735099010542989427881339686294150064060642710054034772101724497840422225199917117900090580632972812406802528816648902499263779773939137141738837629424929068407116961613513977299906744014946958973993048243020960669110888327945615977507567354994289057428916080032783902029219347820334472065632225193191613329156864596400811027123223385358332289230372184934594155524978007759183292922843536977602388947314602628211752669230607253087981490426387932573349771398228841162393852933821564931248864861142480585228431057875951935496930372300558616430618321582207188821522986588458692491572703549222383424466239724566041527612478439070823686347421201107923397860243179839169854916439312065837698091692466140271235846546293626468426744584554509328034976759235432508711708748420032195650612763933547883082457135926605257207504273575908630198643640375889372949658178318649947886961889357600251787360810945415464142293005870157794226647416169350730138364173395454698813142137281861517093236156153922771544454757716117871752401295535973671396894263895559937407248828947457816238626381397866886903306323619708528471300687842664324512963938548973081486015094569419977858259920109724036853657757811450085213544104635859045212411159915223970939875365553863292366992719942780387796044600976156608363839975915099667390848490080076960907769746937722032523195236120304722580421253310399901426127495278665586397482932950752101183810033110487140269369078827853303770298492034819366704886765899490283224238716014079997196629602301986455178200780267574879229014757266716756329527914892407880229274867623044433190172750870598219349345520631405276905336036207458839655585685549495626106934516147567702091843073824456406935541941163013412502335460393683575885973599401787291500910397644485670536631911868913944140285651885524783350472583649965709874316068445869752318559538634386686973033889906158782608944024637947522464573362037671580707916018207564815113326279301574692494384895938517677610551708675126969745151373121613028142316919778676522742935763851964217668339002612582025471813029212728545234459351845036052749181473725686823963500346749899886812645430263272049859511793151200836918247279218734048317680949409978405953725249419688833171761757789934637721948073735854554899894577035914693073105368398885997870805432669286805000561765438935074537937367279930917118258283404662040260128313522161855389978330789769343581672907037927942128082519490887497261924517123114425787652674538986420599240533766833770502030137862281867671019563507293514425894395800809045787139844670643073235154779615711752517178138479615861678227596048128507625394918732212848279334855694736885779085776277340005019512803729725457208131304132783254266135324922868926782383736216885107408432746990723575254915902225364157385273264150652111772430092383173950149687367794610736959632367119979998152953141514053886589952198852937240301909694732370774930750546417140115541839952701231450890731347689459475987971085281897811490417436888345625551029893959461176494463454917844142660186322905591647027503962760061508130513148497726066048482213221756295148663171904649628598130172465243260034236150101863771578309588498051549361184796518278558986004575982506815612960708199777505538512997303968760540420706553312887490203350255944662960880605543945077022800309516541728449737527272755917495741389250536500896414742857741586304317303396006263452272521768386037761904536540002221714684870559723749572003523006409833308482396509478050573208327914303494145650373861646313898104905997211838292701692191852787052583201605982764285221320875314732362523800791191274537452322723613633193401214400779478590391884573189016163451292267017744835807149303286729092436730539356401693564923098036428076906270127074359473913484109929016997548983534002967215629051453458829416427816413627283109083268788698525681714051143322611930878202613758553507574007160841419979033042163671588284910518228297251843839396114405868485751898712163967315564335563257804992833583775511167065689419419078365106255944945230731109163143808767387247248871837751441401288316639238396261159797104027632100162388140464866755519457620518010744276627191001444963033590990059112956813483611295084540169622436069759700299155453973038267882585603134401924982714459193310773698787651884029452237538095650007448149627529729236643618915675965669181633716675776723609869564130471783872673815671643055449549217092533462519608232204456492768883815914067061908536153895896189497057781332665780836056495531211898089886636124581517969429919162534611714434565430804073360519377299098135559142121198737814594342751078773665189372959300402258729831390821063063383173170272696904245224784026678835659495653162562832682475113699180562296405203374912091329763432044460090997323926018536573720842983739364136677564705652930121312167211317481823746932933831175909048129584782114843532061220889194567659046865618881092384914538470878659526683560635418614023631507950814273187563575023450187450835327748439689268119174035255105486624185813553327250000173584552872731872739956373902166045784411441749774190212200227519354854635901721735312992390472868294947326750648181839267346118182984452198607421265063064443795030095015735161957537487292823130285940907539381067215400008467802598782367261586566706848399251368498840819871768414012642117939533707181603048341263561152435319369170572587044047107515390888621315652141908755401358622647000984821742427966661520058439482467730377733133479686291137860257159910350326871436776563670724502450786913937266125976155958129143421018088610692955358367630233261022976933198235175263840234810010879043574446216183939166943512679747884778451614987608142502288143369761345678066609213505380241964786996625822322386310110691023685276766411399355884874138417791495915411991311864630909738285927268015881604419175648573880615402156627810165724673408100192388905366910312949093011149604901182691715466526520451899415777715645098840734983671284352097195500073502681678017047931833396997714201646747332937611682853866224117229815212289369151951377400590812897259956167538995531532279860212741977470376142584685236553912452145647845629811082696351623398198798631401606844482397596228953896600059215231991745728574655353536662482437174468922640961285169930460331584429343289442110222377655757056198978416005795268852834370215528668227390646693461970449629483217591411736358748642246506746727769280357277280995024286220963919241147881820785398886372251316287538181565267441431634321591137017900264341696211438330853732907155746969793059988485789081120425311198892686138005891576381602822409817648586491270727332527133056147339145265746056634152046972470911325986926573027207622330099485993897424686206710093929866237630414557988112210414834776796954121600193394747980259329254994919323867214799936757950298758310934393094149789206310242319578142524218812043048282402784248638788709515817281056645734959232811787843661456411299353441949686610221841511981767022303824355178811228433485778332994352163838954107145118664363264875060359907208797154737783488569519878947872653637167449137014715756233198341730812766747684195504756519404968372421891922546463855833760611434508553374080525179961927809017032989945597366171937031169039246763670043136385750269736029427010671873186614967548971973073689329716196246600484635412407655689622484038218948504877951251671620192058697957139748758788978868441437134690328833893185717244564656286007525779319945464125923020304085744109604311434793463666936290042075758775379237211821650515391391828866040058724764235162961530763807607306655139670618522423486475291633357987323977094709410857174892860851072430391431082889073007054973599030751805973580135620321189585117302882885770618559351213589616249198768698480276815720932842180483074449022129888458869829594324979628738107759924332236448532935319187403179824691715240003476329713886577390072083820504080925777457378826795535045512899829886438703182988773942575267248751556169889189506379725526520308714400148690468208639790865093875642331192059889856328636437203240894679381519461599501358357601187101647070721761292138840510354342692093607204585152255937190571362333693945621156399393187251489788532421555967274230737328161516506276429420061695704851672999441656933897495464867224562679395351837008340791856004563351350750959169814283851863877292510414220468431951363260806387437336855324013624506186571432553863746017033791754145832986508184002757058291640234152236394315753490866085184036141713873849987159603242167262993415805164090975346496271917685448640085254990757809476129416959481719067755445574478780206854622692586376248009856992831657081715997200128418540489258131735870480993342728323141688905134159328160422046764326962455907552543295677665508259117081037600583183339493091797848904807316378311128905734979219427148804792419298414016796319139597260340105496985207480290009329569832103053888089984004576155025837982608346436182948615203074783586884997199185073645857228296510945381180497112097651655435529693181912924756317697801073940598300635624265341024133748685214619164841937509682869007489442053639602656238083459985325034243840282296846410451568609038473738545384332813040990163928102691726219648128411590623667946632644887912762631187352893793006192360411638784818533925479209899910217943033533437026069741543472544362503324746406080576393269320697947852718177478549757154154056716861093996157524390372195208800368546849310044818614597078333904324883915142336326187714218651968362097664957272127005126916017772223439888548672254671275773881970016291368604867288009193899881354104278457541675572354572478486676826164537021104671311104583948152885504071150055503342729084770148450790310902197404366329480043614327329901740067081135379073251155259993736471124636877778608225704972839850380098646865399969473020421930463360736958330382875063908330218163381737939843780206986288775736597123097796927791500230147817905255590949187752288964597674519761464571928962331046106587262521777696500906200720081921050775807306472033054899368907585027113903188078359461165091645370050759620506771639759602243027867005521300559579315794787555903770251889155347400170783958465573479608795444762818973020168902253233796117313170580662965120867117272986417534934047118187761230935486742542970458068873935951684536205045114576025992834648669700291520136867950934008757503742740229119729215662489991897015394684243026972717244476643714316542401928997742664784476886645568442325493238122411038309697903404565171452446990476080062577051326728297533777730035370496421595460041226127289753967512254641263318791350518398072989358465549565865240949683250699479987609227133457320603435991944256682341142917516641849929878864528298625823377535906430206976184940010940778719715392216363962901797829909519003549661640776382992138432880345634061726778615132288610055423321363282994325035671286938832339002487723126125531265036806280758623476756697400219858132857366144028857888012784546789063609873970461448125762960813482548314316733788044893721761514621293555046655312075953412359612933444363334671424909103692068572710514438378122205823962916428711210366908124834239170123329512303474992864867660461369522936028869371189383184070404804361148652853259028970285554061933071940732481987279909455131612699800846158346245905478238923845160276740180844070017761620210388298248632961128407770946891187861565656472485158883678898790194132748539971508675018770482923757438155281833749915982535938097450299554634854000148178371210525530621809234810333614899382562257866398575835759488642447318756298083705611603934663728111502998340053850378530375016506353430977448293491205707674415958625921971718996739727937418198602859656060249092703238635187305234068983292549725321229280995173739009894632276267915174953819937177240271155938431265161201581882857848994477899636828348509122632233613015148198941560125494566880565853301068458111710722809451550181164846437906966572817753087093646514653518679528571990382047929122774907492112260530028703768679106361166608768795213228407844610825986709860254375261377516243247270698825508006650239778019284931193544004306240102682365060269775727368131583061126300987958944951974336857241741969732309256798920947777531610278094530532144517035203757227751922990501682926679193937249112158582093895188047386100770947747557583584097551500031292387818673959782260005014741901595223841578462609779579358622798505170386229510795564138171987553616309062426177226478233956249761449375730144157832617281618518074994428751871939370743579988768005968016075917500105862973441827576998440925402465243586625340773550947027455356355085256360051216524863948252005014562366927573553870426446193937363244973253342709150544094191449606012825764961735615202495197757381809567106181620687612473818220771270380649466052170573402499926235765195588741529887263531466561336027628850883916427419098261768047099004325500415927198884936192381955222001596067068289293744520224531755974158287155478806212253034864514383975581321632751881952161086334516023483983891989320956977430028170626964377315692507691739435003796039826527172354224417503387675777494280212270913408374803238828698303256547342286455091700764394248388790922934113239468804979011111883131960059051948640102194539544753702742214500183928280211927308269307258662548589185605600510900936984523327625251717650110275882071914390702160188262816328230879984869985467021682179937387158666968581204614684317576965200487969827085409896322454761276048456247272968709273868037118124431723488276918950970923746967013613547880455301749084673230916758396997710286040452013250092170495516549821203525022701114818249113180563496441071270353154445341638054663192477052376410067820450622351524664036359932806215931971028470302496426598959294729474916526174112020443495372233831224476940413567647965672919111884290824439646559789246686589152864586828108848701518303961714553242778810525487598792941047412568680774616615782695762016410021138091322859813116528315237696167883606405015023457810653366073769026981503086180888066956002455713081210957355044626430762385332623410805230042957351263764917405311675958267946907326661654651360954834310031691990473547672947482452393865083875828553725194697375570669128597447408670993066881408414810094739422564284292766528724229905090694308763294206676550149499867195513190822660410268777612842285280169070801203373600446375398707112042447330790182676916308161763684553632489292278375507317518423620921271645880846854429224808284596623130345892448052941669636414044803566427296383331885324388101960671489535194846675618195749998361131713572728396033366298896589333606344085662701084723992805347242384993461212633454940034209173660522596598956629695955866142859643433443438482981264037958256993063505755932872365306539718030836880450663765707580626507191852069316716122418008746629735494050001270611144666603577437491397647533348698502910410955183396015048356093966835550165143064440539846383134553898559957540325628402003879534003009324008720005837609009078926189230869458542892106098494057585814371274510221371317934282527794144062616469736206587475162404706528698320605030680515625409394188467804220123161073738298455866494939046431883935116748763852021248305100213288646522671300605888467696069540320975431170486971233219232189336206131792066113293163585479861254223579770427841842948627934480819520301940270850047387733558684434877901907833146062660704031377120498950992888192285490729952977885231498080933515694096677009505524473970008360229486837021369351404913785038107914392376891533071697839785609293455804325128464142574118041875559882006109082534764985483107410552356478685827042981703158415147272833185593555465642563937851316762548608733867954006129794421195933576398204280618453908946583393302431081534944156882357428175835337323370916691377475908637804993857717347497373738340975122290011871806013851860436811861349317411353115824492271575608954040686437560119922420936402033498888020851014168244064945615860852360822574808753657919870672692154385869083225883092199757572706628177862049701849505959508442544529003036425921198814177791919720722110536529312891347342953814770242088011831199117678904383016974700933934176416026172763217668550067528547759551804837106336673085428126401113188126777795782906557690098778505113785146187091509841073555228994309484935503402638034425613251961300734279827841616167389598262703623953850942195391997897212335486619684187398294391109722834803133809634742469262733609272066655386602455657886398821338656645340355792782168579151753856689458434654920260789747509141928627918956713933134473065436524565213496856963684165388498956738083339537906501231200337667248713433812743701028452062089557691141409347568247816741988059091366187681202794887066497887586563920439354049513861325231302547909651080641852166997792491401792051350724256319587726663990054175918700307259702213499600905102080004708311719083635191107137432708943005820716032919903154647724819182258420117859197825257759936299482237539810040741074705710993653240157846162784581850854005104098019932403236065318842404886012393600433699515459353637227919206181433890220524552529011663325256489628877170172534444933853966849544164055226588850338870886513002662585006306089629775747114460525939701795495682021582689240720481791553612269140291289063815974391579477977374553602488658839951668154063233542563906756890369089276884406046840343701335647351364493689380770527428811393334655668639710494793658743309273375307644625448114143601149463430760276557272842932815367287547884422103196318961552625383296556697039550531219013894320537417925481264494896732722207066749444051670041273501004585386558059668650906926221314396962364171133914203548581314175240888306423279044554583325704255106916047113620944213730201202531494266467172283967738942644443638443905420959975842095464505887715784418377751033760554755454858672702254645706106326323674746132863962944278319644301108089186864694002841739905824085342462610669683898900578903719564301890241257996397956065553246418767433362126647910430952433798848650388628583896437093462108706744946518060481877936523541433675657331346424103106058467888856195415664089654026549094428904016616914197801743539620649370858138548036483043327598584431914464241758181551123503832665451754247644160690286210076649611759619966809685782580717059086125274758075534681445446115477784535970879326297975015380503812079916864222808050723627166467370375086597539820165532092430225539305069066844105321583326395620635742387764706693133248935736512988465888235403814911765040420763119026021463087762930436891890352432139823874000536824527206769154588839504218021332453953841959892218625274403683633249149641645482993233885032087513039639561162104721932651320711890881539653408061384013502439347866623865710140181609438717186656564428076603400799007008827021891019267091079660589237985004821241497823746477826983039851592466153562936981324500772396599735898844197894666799129639106736158558773698121994288272878190703793888989777484180449897478808938589799914598255286922638225573366343249540760854017332826064791189305201339953021198986531828778619109994325353209534146827589590568899962418247328201153432203458262733445993772135659276663895402415779126614129157355691451859488088738918928900821261494392515238190089250736487681179117088528759851365407231101930102389790221032283193904519632325799321317225502731831756862166032885571213679805490029554806163144368292894203184980154161605583976070792966626783222443685775455934849688044984625271044764402118260901975746478604270134229138376126435533797270995777907701724442953296143691036843860414960249920697717454209622102913519253480995476138171379400574901749453194736797361451964283092719860062629831228289109773083023250275039698447372090436246807611693229866237528278923162861755451529810942854260569690748270612077845683903579631390689677648022138758052817774860383064267954024963919337159611821405368397625531722598186530120602702944734148475844169860594064780696070061001936227466310191203801512189829822537650432471548420327861793397552966593661029452577637772316555030819609285421529635827770083984752053253736089671156773486439557267040791977152356845464247835049645697501093262555814982378327731773159551912899221033450624441888109599578983882323437043426014487804169791175965000260085563518899572011047978026382697736277450319655720691747497972594208944008405888183993625253970503436029808175565475445072245797861206321685235187036522049471951410005813630608062194870575017991437492950450004074412945505247879596855167642852024091339667405074721270941366391711404526711894732346798000656663241424513527028722346494824809636101819548008009565061022151806757225602215060845920795555031257310421607179657280649797724345743644549623856361953536907345367575791228541272500376211237310497925047369710682392991716886422938736798593516775250269001643567819241619827991980158826606167891842578581349870404887932117893865730616885606486936698566491463738120855662267255814353587888993949235881913149060782077368171294286031332467020775459736174554871505309692780214833559678177628350419881325937443217034656472355087340007683501354557273643078886449400304851314523758632611652491967351969431100393129543587333498615964749258685289326699243350044112202449547106229297761935625812112994893347862671576105916544758369406188588061981186087018612668156542816538441641923140840266735322264793570197919610789025880402302800655992423756808303593908096147879874494980618847491442609151894376806973178755449142720102269215392585201015677758903014365496901522610950937913724443267222160174702749514442114662214228319001517559132762512665504142869413086572260387519010915261520671488615131140679415258820984430105661455707806563145274433669574187252956438041251081567477846084297472677455418374461182315244838562700840470336346444322044854077258559248910369468827746904720776968047754965196422091338726292051435527809711211970273767083592157776330169680796948800568491314483989188184987085045974485487232517758506520272376432758270642261048509144173386393397889763146069914246759792072713322157755169463301302634761566389460579584685250292760067298794131962601073601916380200781210668920797083337399606540472745703714262663359572162884855297763679210293397845161330590058779917045732142061804464343699785729291750297061742005838661102741685097798520735243533340570497521559145007829740596336296177628413708704153879912824222966329743249089837049380959143615250764298967482733443595840920682196109863363029718986486181322559202605199397742957768593379596778249948905865288679375274415151968425789302970038879300683470489134140844577327169985485343506909831193832738259761307889150136672243888122058769883043105623537449455873878116338619076172156745024913363366393767126515584779265894639449711735143534827566754190011307847795459017047273248533081661986695396984834651929929879094822085519697564372451170364051733703517357929023763011614661734173515279329496752054744753942548076947237284915858680310066611268821494617431171139417133444761911203237697032499692591431091152894172168679573541010493969267771981799544070565425382149798242890175508876544810793915906856078025424766629376312951617817014498030483041871880476426599195077349314291877603613925296139015233335918958158829167221041633500856600335704206205215728323464428826706320313857025563109606113503055381016221526898975370765242165210863486422499722815925669503930734400210419132903029591016618852288089557521312059074405187843435660311036258894307437386916362494235412164324530383960498260254133428491176524141074802706202183010360313767844104255857686050191967730660030190133044300673615688522673721479377016197135063604104612770365903011703366068352371713936503539372193493538663932835304228662504573323169490545478532196419187942392078159207254461490919132368115857520837751080851411686113620763388452068690610027378262918135321471143561374892348915896586279217572488716268724989125997316459586655608245528924723183399470881070868508707109013982246241617513204487784109008862380655554943120319990314966228403660213419632651804908303110142857041250761586183535219126581165535141512425736740262228534520177948269067747564834594190876376035854095483690664774064085263524368380630541714855179503543507002341680030308559102694370701970387478780208786464316792987921885003068968023322089854778901364272376970397571780649351051594294968622738179559329812718897245972750719718489972585534163017924665830240039465849525076644379038791042376138034584378612276739468550644851937795136885248127533840721454833788009922095814977794240990059063175162036922263190710311743002340240018011589351562628599937487025294498947648242246318064487054925718182707414829333072686827752242820977422979359974522852477578710938898299649359822263971250450571667207719981633260562817476952924739954114423193888000615278693470990608174233988643236299774068173792351039481486361084139614448651300533642823097556833495160939136041915342376478454882328536801797684174800922925383333163856751802189858665350083671676998101393926551570591037753432340407287920774772358099967864351414110886710068807980993539920956784790346269890067587775788911283900964906493076652815237597335812281917648866688517076180545538818499581728541811702333615981664342663545574662225085386534696450626653600190011929233935994711608761277746335575517585894080229231789498265459480995362127756625365459870199235815841455251577063358344341054574663800154758653459819072641606920234651412283229486136126659770769499258118341118601475750823701690326366671588193777698107444639729286085047812440030457162163585437298816395005330364488219121361911636786839065140757468109633855965578277720537127510069977065803804755213021928003684152925738496742435018692505499792036712545541965850827244251359845284141540228915221153250802856144640703928137421944570748175277832714039698391377683568203783325002969008229348322979500412415954732231152397430336326707107268568516071014812153479734727594953475661171100691693220135445255102875839923508301995622391010642073938291261003886185167294945164544460506814274602577676372018407288789561501402948894339965983490749847624891647991038604566715744648603751665947633360343533303675437940031913960807387350150478831809847528596558445158493651598079836948340491364732650673984617933086527062143329144137923467896444802594857180826919616230721356215528002933657731815109563949473213678120814401384590414280223796341363604550300895717539466105478257048968898995982020423358340236669100115001637234919503717329618603496524403290694184793913126826351788579719594115083723823456812160751740456891643790363313854684660290148985041042760611353497374030929009568223821986116270366477226874249721370660033507185163632965995513566438889539573157991466661053966235311029600339379080862860243012720908877619197247915786594026512183160059272908018640014171614640128418601114999507041199039978315555882483520710972974484376065851289286585612767596992401915816449278951316386260159768372833804487510814300132725154731267213964984891230835304126226704142648223309887071705080896061684213042177789141791079064311200459621646295711393047216279530732095163666879474418455609465630302571853430703364888134821951784913732081563848842479347610271108450819694467985880210041388541300518326995362259990041561961830713499951552556343447801401157214899251406862374603256530998956407263157668014144969387914851564939509528369547275437010155772770151155724733612711050969030821221481555255424112956917209336354253717345839405192989778037427240029603588288070025674058861896550107552150928903726722088000231575432346325172167249238242944832315896060381618677003141019703384113284866212818344283795615740052514709250733472031976098167440595806374914969603357269270862089845090801085776686982192397481458136115822519887250153836908508866023223788076526895219934197470265508045385890139123212586862037470954509450367095925113358565276178466112838065366502047556134020857437750454509737533607197703515440738992307705593266273777599665116353059018971318856597954432527465317207553799438608782593999876032061366173484023301172259426219297756203293249740558128132912059624346955927198676906206614421618647600017555293116951934216469133745861956992734934137985078241221704815290825315956260726024608822935334703244953090100525053625163708409795742527884111865320683445524561034979480962408966922526847145958519690845833779458209854008173400672469165369715854463966881310826125179957080875761660166406270047970027447078005283897601378292875306653531548436759925456312384167601878685786001969775567936092355315296145967309396889454309114681361355582145388587003122171763354382943736932490565817471103470051329863402837509759479096655250553290680642272497639818345565231965249847163605570454943718875025442737282073296489158254145327267911832446517884621561572042099455873804410904077964425606449361630144362312545801047747061071028139119717290449536684497399947243362748909361241950684548824319953766066065535914086587984432526963577468847796256966403497666716511697024271539718448577545480352018487715493139020159603367805873912994727796909383231439145902763187077743926056398325240825861905664167783628934714788475359890472488038150790718617541961199394659078920695967461391839707593257291473708371894644795474569744222719408598208935513506251236729698812289402334723430417621944556166417761223402641861872636407487853457502142215363762568010087906863783376412538283086099552604670267158731572366129177843721040335893314333820700060592836230916022899161576299873750529244137139824525963660086890396822592809175024350792087899690202908733944363284497341441309319399893452184222164839013974986730120846774295534080294131156473240917698410039104427969061413772148813076526949066345375574234311072993092464924508599135184222271435749583985780673339670596704657051020288059088398488758528121994496067315404850113171990192719416706108555895058947741478105530818192841778591041366292801238965833024445359637114965132216011077840205363403663078630229550470906993764502295142912524276524799842946781692761043717573250846565224120123258073972499800480189328190930233182366897417316451919270841576158746915564178022218944338223836634347415467914045580273157140083288006743182446918177274090567484650216074242182306596304338025348589217157430177857483854899573265439495311991958600798124340061236402428709779011426106379138653385556601193060765691211619395954408349665453450303667038633953907805338085528037725990619462252317055100299048253834668307078283587343881428184151283534494675198301904929301662305723728945683871259092583647318714017794354698154491530140736650926802448720349862694730898621330979626722152479635651301239993877341760588625826561433377969465269785191407475682756226020507043541758349533240953159463502731081532676505413392560888655078687766981093882185655040761969808626472632987889652141311405722519214382438708251645579871363861806411062101737665753028115799124438694054868169252357034811727769541097843239103991740001785170934047546555153058312072901491380898102373587158050903098095589432500761889277201906198225510908845352881780953876435801783791514953578007145652846869892222742581391117140703647534638356269697819630553115840439731875555836578259044658422747227527030608758454213983790082946820451326669243896826174975046276012859536862954662870883345378956858306013196843309960161633284771248206392512593903994228178153720219736168533824900451890255432081820454313230421768193149735855941178595846595988408412133696927386974117500174594931441640188624907865138445726999696358202480589144281224926023101285490333850748054608174590254241393184388626134477940949029261214586341458830606965140606640002909358575199055457953892965966514651260135678835987230288824543722817035483890291836518679659923646048055726749555994429640223639243099858681405610870120454976366951291775900225165743474072528140158658870708505579734551128210789434517864149349622385218083429493191154354503259538004144288182072562714715520064338439643932408222809860017707377044868985535494363996188119711183503326343510372285686424887823939173942173212329507342138872058884721965007440239119447566181579451631001692221176590858278433092968359710776840271642255070037333610839131792141205498567526468646553730825546063943938918268845728983559711621036627476054974474137754027310921780196372327954130799627541075957356690108385542055435354111856693311244401009744017239872253459468523145218367646482887964381723902203739792338179101347000868432949995174771949233679644077349580888042019234123029689960539010828961687120932943483585257953923267331152611779936365208883298820048474494327543353773567900614449776408141596309098080992163253971972559629179006059802834609476501806584794350969386786486398159675834053095427898146336590430175410578620363816777884109678990321531031962648315762120446943796773866836472185060965445578062792313423716614261225825670898485135386099972522696912483309316183039754168623207108273331945201797550462965313524169967325595479518546509439581617110875301812001179110959443621579680924584978327546824089794032491357193999910423409715184747822628961022194764750847729497303484947223225593530306852689071134467520320866777212581126222242708322813666160657310920653185845895631925092439673998637073250036389531253311234418466053553668591301436202685260178701928772782170149792779664046347898570859210158038515656315390683184791144786155890079688496056225184325796309824816892936278755579378373124048202791200733836291741710646214353298219296884525192447965226538018163828136986984299824118710259416179942786370010063074153943792875244613871031112287332414957038385568329310020916364868945901902549751038932607542268237441759870004485743232016990055649923416361821360888250357403813781165883651709148721019239787296465553272230420016077748423060434860890963292085404662530460423733520316850452040431517160089937078286848888065588086096954890983890339580606598609393603828139208098233599547367025999338515562161663266862171407977859107627328423523983103434429421838267682491953374348681297783791781784848201860155374342932512986831204600190675115650371454202607423253591600086148928490258243750749855433699367037751567708965933490013353137795509579398839540568907780854726493756605431129227096162100746731206738882516183378452589967059309135351873737470950638052107095092268223312335777020798981181793817699551386671515023131921242200377670781401112228923746137711456071524705420017428468195356201965567838113277505709876359152732904183981632944210793203395035315776873097711492668990723172735190894064597719753940437449279727602167774036786776315195379320772535661951178857819704245720929858553924191537878731442622767496590137428769761794389780540579756936177758876842735766448747671764110409456374187077231265615968402086379270012945177472816736033242393770569490457682462132409151074598070658169386023926614025156408101207088864562550621210326153582740622323318836389842870937200282672822889230813620191189546629726019602617672750578224546960470289590272746366467198094854119480850081382379157207488199258466027948701004834452682785356968694907929383871962663293472476600972012564677423584922386089928087259646748785194756791953749763871495760797819605267491195332138003478242832382826158169781204201607477772874686848834548227719592031148692221708333500878949283852347956810020497324154904953766803617660880502903850197505897976722685457936548909792326535855256989678983319430905818525879925393318020741095183605902021824598927156920180242902746855792672008364714588589161190946187805241138350632358173330290468427645994685978787083845993989863185501525094515828849447272938380990175128145897514896159214212259466278924486155778288511193730163532188841241465808645840087319338267229976389728476642786496460833020855519277331920342071122368003883771399488495851628524010348038288539777137825012247248778397008774141899117688701740573565018207021604939324448563746643527991817552020079764615704167910079891817453381468352426898215690226949701204949474774999290062535376586821538172858328899499885493272659394621545539993116394596868202238467670445475756551608843291485850715131300777244427291286659162602979232028335588285984455588316316495351457873283950671647041106120599258657316690501948904901681296638092777381579871495965575643874362562747643049800704833667052222778044045969683949971307056829145320708905917184247583622425611535967904185862337803928363229697724908588023958432435291385546282573478835832519539735697295395328193786028461174716452423652073346933711477418979181922512166836561117659347375186705469940651032913303209444696076352951263471497335347175661897141950161840099864221329462447147189436315522805793681791554435571823364653825559891960485402453730917218915811614013390701488114115577266927895958471364620442466985698462596858585967981596579051293421744151269576194647402044722673732118387806276766730873856252426956014393582053596814553667546971498524588885189384164407865361025847848802619167767994402740104607806495965705810502979657189297890560214658107213851423902194051043321155820437484460688278654017678778877325204526577738089694948662405086881035139853928443762161423918523556358048022069774263033489214106162538886493147378387530532754998794032517962337348870053359541340517382416609465847228142426055660267488969188773270293590552179081540566440970913830273114761351578439273286128562812167801098693143357782907451107139997103318371082493509010447557665599021828820007071608377649382607222194916355243931999048236848022414379780596107153911386576181690060192134124303508917027817145849246909154747334540615266251688102825806759583209638685556102521044413877854494216692336740835123353473416510622485298725106998207773836839282431180128223521844152059226100419735174060713832387551437947646747330325183602002665470017945248418634285830327853103304553617479083414060756070014705479419417811803508494300373633783074142429350140395682445655075115524165882138789559845471171493118302378672892835313361647499352983308681429713076477237966595660205453904539494577536569055717630888169041509534295109583989539757296713730113576364850633556718132839778923804409271562273729489973785589742089950639089032155821597373540212749135841520283499963588891849414392678494410255841701802972808834827913737356251103572326517784719897974754923570019328790114055198755132524577579101879926113992066190260820323148059700658610786012146580675940621439161685216846127265113855992619681369392023026568206316779135007514865751395423503994911194430061253532413503179632471668718349703479705118872141232640450633735779605105086171303972620338674238783211557489087301014330431609939861213506412898120908870299589764385324098974851015065069899898140704429947638138879352471067845136808569422968146159790162708710173563978426415993803266045554872909892891359983118929770533224218556055900940506226793333330832932211311162546218399547456634210879276381233890401649867852851187260200474475914414392789127466876867950216465409255453719354112631893514023465632234324899208198594590478255240318690780637488826807668562000911857504528272842214076998105655711680388271108534870201800934785117948079205173444033713466143396556276133415275805164013937322810253771884074349100522005065677064282392614703430961902057550217983582572754011367489597620128644951964764657521518819853764790112222195893252695349020032286184263017754866831978266298689845944814745581888648470354953459037787022936236623298271394711249050591711858594040141939573287560349615714075901522591911866841908133969139396050812836625925941451259173055062373903876395398155974373565398838829703889316524100448896681629523699482802248965970635908740928773193146300935027242152922324978157275036641218260214620324734115702073149906206394582215182910704443425286698477175372725920584822977822169004672659210952649121244558659179644456240220276614665159703569309771000178403641873873006046096395558345306779411739043450001717930103379689068246388973727854768638185997055391046210152580738852144633741958959454045017640724082044359156256364426367008097836404401509266457167838837971112401573605367685717694529468377319415837813743955095222596817465350186805466172565640964344999772790132006990116626704166748963379051433130102619139510529017127409501350491276121004551037951960513372489963249224052309707452381046910799362569256578224634284414998978140744075341108534382448293568886708598991477122476122752043456460499138560927679326849506559354376852360126864922990663480561118615517776463141343059521965383833061501810940708607603506596330741065860524041019108033863608790960389126967768429099763862882903816757972944382402785336658952962026456323688656606580495198638495619469195963636194999938355334311489364995539877668336639739583847263792270529729220576880963939177081389057907158315126295760466370745420787493067453402554457331784059703767741214352401442806163863741268365499956241289872609212918077244415532888957528308245129776788130198206945049704615376545661742395591072706505688188368874210080138468890749584426587240505675358391024474890487102946744208413781358724835368047973960121685760426556306177898970783762031338096490446634210705683975476987710423392355288392138561743854560563274136699572204686850754223618793586569472307048768065070456430313188996353286572404605781303945906040700667960560170844322277803873129720965971814530100400201616403511524033462775372955099064127631015961159351191113523335199908714175621970866051463177240582024315059425023848037277621032837626788737618236898447721803667668767284408013425126824451343289699036588922135175769732795802242548337386251611232309748898944749976372996890152220051328065303771474605741782894019464243348871814820604037178215162145466402167961896377891934956274140315598141804265820295351796472707937879082291329875690399275312741214820246571199231796087254060736505271021649970570366168196544476789277467722441695631475388375965285931613657841149119617413725236078226322059011666584131942243703185978449362189220231644335100092727656384977411709616006730469111246761319073620028186275716361369010517940692209727738284153267442708329831989151514148517854410943852381136404582564198685749920774598777284883772032577209782000463898250074657483388487729410932667114894444776192504165097080456462096850678317491323677082644075504082287827590546069933073331231402647448303771309150607126419855575865397629408021703429583169851852633436183396719113578940736200326914360912376257464640260410218860393604445049144360990095311258042887736825641470031312284315598943536713982045749066240240427591602017515640506859479399358951831046651450217590822469635502494789422650415837178011279089601005935445664984880039542692946966981932030376286892483716216748072173322043570955564322073992118598241163562690654638783854474890482964471562541131476159787600054435143635295579125378615509257482865514320444842896033801198870508170449894859911490148184034671301844782558552843776297472692881389812645704232322783135026776185705656749278318180870172637113368639401798249109118660339692454566256321612233596419819841834994666394495888034654385133197223173268624094745387758729936018689049153086300448697030988157689318718829534247956681270803288374023010678230308191902971427168999274403058977253699540197581544483783659266615421592096821805232138469482944370703727290004899571721137204763011823582726229033592830687866396570517703295849373047959378981266290548047658870558090463201791433806394734065617925549753810553632639218972519110295888744910094123915489498395953641922782008319118264459857689263674524010325003409354475821096795545979110279716325589075482006496336902165716132193726945106604900080426784321742357182713848118782870670604722444130263423865202390268130236559830171246616443401365065325203986166858427904512356703591459131339569384659831408615630841233005188661142552823707373892751209596491645983887297887431534104388258615927847588883295352386053859661990682974432016333011108989426754659875429631908703358451434902123914232103595602193036624828516217547843838957366917336811174057493986728840427740492364487276557632455916740371970393542119504654763751987464382515240337814740361471043129189598212122928004182137351983601472757006078767633679499837133028834860179948898950020968103025271978153651878312036076255035924859134251174103738893950978725246999927784149294308912809023236617349591745376505671593277487268425501746936590258351287318493726849164425381832016055406030013752944986403627305196451594204512256235552771426234192341172208233514201113462263914136849541417216670609432783698220967110111166487707077012847864682869558694202166070962801849466615328450153246325580023507801594057644082131649607165324013390201795465008498824916466052779653622939219111179552199995077160850032515763146455253727891269697286668527100021968048965449177983753063791108402527354316529028309640436991914908602888902421123403184313978767109436825730973733400962931177874590318321359884931441246102075156639302169400209217465505786589785274742467821761416003738956728171716973606393720624088493661848213316123086760332798398962648890367959016329382665308475870727584383555499709057257651631222854056834994273744460043510387786394828851862592923622868081961770343103892327746274862813242800358814382968449635626848352460925486279086776312738123130737248762202109010304532073871866573474964740626671379223990437548435762451503266072335223132295316219781251380045440838293065373829065867208810381013432434100823396813176476486574012805074814144135360442704843029992121470885231890924904795433659364567813478505874077252950424981846692334351535427459045600155000008170624531702204263196759013953361886142850163368181359255037223054258519400735935329495404995398400469110620478368346950775403514180282284143646751065874904185054252492625531988568624059161481882469275632161154205994369026499553280618358581735497548919830454587156895353096563485126912123309387783281721982785653454693958999681844265123014216689508209855844722191763457248842717766694114948632658930090228186693211384553803719166794455955602262482612019840063543216072272708554324838901040152525356766713974949295033029557965814594836464567441426205603703245110046902933271914706128220723004980400575878816822549673318682575496627059415472054987335419004464422996689670962361590137130027892291755867556050786173634537704818364907135250686391873070135790351293809037593293388214346117625824973943752556480528316406770355834637705811136940531876977711581839328358711243820091196174295301746246004077074025658952899660145138119075793453635738364935365181200190325937972527017217043103486643225675617996655237480794703876341547189385610212988659052887521269951350874060665782196178225930999063400568597654871383259737504473406479446138719425806295515353875053142015239382126197211774587831558272586155584089639552089720340799213955904436616440003304961255165055564499969508831006038332509743498424499660939419199932234547206749911016911589867450802131104016940606267286249931662137713867620001032499566725815878946316216693256736584054302687173452471703019618895442385754615715255356020472538606033924939429681006323537570183540535262615757819517141205596005464802228773406807765314309863530306715362225408893388250404857580650532361507621450738944829821274549215112101323589643653430927660698918525655696688945415755356054918207678428155118909087632035042199029382496157905266263987339718823030642808327539039672119831483225511894665054581210046628133566829502480677513388673029153085511052917783889858441577738505107486700896002591577237369754476939170222588691411780968363268512366969367974937459250057610957246590559840777751332456826530569193159667168801313081139216338963914854760901935013239728841131046793526923875854447413278000594842403230371737606208511924556522003646914983534188250567285963069521637051425379723907705124171387913631152635539183582932742698273453363921713708538941694503767634596405584453854708477055706528284899589311783511243489258733805303422019315555105344439969724954302672813269515441599094709107879976117192689552458714297524411999479222039908629372353220904862098058775117424256551289694338907677251305422943252708071659777712528402293926018475782726523451834426515456332227647028105929872105830921846845135511769902662997325904485041076677654191737348174328927389782434217597424679446835267817763536515199777848472344184397318181173589711408293679502592767247156087604388827649709486515260392692509228748515356291606289570288278209552379972529389953304156287451860703658412903242956690372402461785249671270468221407167229659484909537436687936421510662149146161630112339725779403810973005303859373095692756498187946131606118023022735312789615497044076012274248545713866200307588386992455099110032513233387749098961053972376299303784901083730707221191161359050901997800411558551471260398884710640126085810719435286349825344699883837329955517155099656654536602978429130868731744262051192008879770485702066114841088453512156184680244056887898359722729921189485768674650247105004130426134506450696976744493787985740205116153202187397849514943496689548974938913660693097054566178596963330909243597669532355922449538527598531319058096002379571784935849964399904712705576218304645376541385173528135461130991382124339408070267133806862228104985530856547913640399961799736590075834879673793233028400516845789228592671816288612481179195714241322220194234288266967643288413349674785104810125703756681377622752675010022063589938935853802869685927489007558188071316250959064732910366227714647392555711657782203942864762931386105387810826456520550819723290602711416120689265142110799083443658522331686132150929451048732226190620466955849600110363265903461099292892369438903848903519855727206341063111571724106596042148137480418117034639447740433597241578953369794533652201185433583151720679741996405124297204034808934343875201509484485458134192793178824364677898677000494683090028754519221459091564883052549353076630584076505588357539753288480460288570986992491594845746223386193756382021157058124741441477037434835721211302742379851229990489835120008876470454729335511563280550119775811753769333974086297296541794548585165596820191211423621425531559319102620147689322142366939629178927032465269414949244881794741108744499787330122817009882441484061512500681091328415803907106103819560620469297333433912745806192030476960696861834237885991007373875098302592390833085009446205048199787930728997321442049224686285355672671165476294002248836544864051264506636635938102019838183252547747957372904364647745803653554892222530517799851544867134900662320089980628536823700053238041509286239374158815819964692594317879251563519602036674709889178533186973543508363120402666555576111407959758852363269444066605515881978777233853624054560854677458614575448915494184421689764013425567801677704956169336764359520895440613843393195894750539542248210802136640720210098096057127019869829575791068747785808275153649926643761332354609169490341766955488181391350934811535849170637958139616659823216087519044490618465116108069718357909269367259244696425898575237592035215436332208840930495736040079228346601580493280343157967402662287855310214949295054485013288769510095157145216346984325499937857939498211964733496005554868713294285760318112993108480260609277023848171043986311376762707601103186498482332904098886823808845576016634307182689722547836888715210400141184094266429670071578980282453179649175994543203678398434855038483650220670260271605032851907761815856998638833194411299396659518694406899081574039133811953996218925719944002282106797239965077180051439136064542761556449716344386843373075276441402925193424960369485476567293392234423853987663493758608508659061713217180193977975633237765329431677868037228105774329744895822527860168808057129246042639381903866464754364838403195946838649305373511199975256680326592893151570048322609955672974496163319347229678855960524966798907780783751068383482551086253049437953844668359466915900432732663298180123003982877769580977454377549904321997605204235604493264936295672517928210318528950931482867662104796715273571910863772834058761280702883890600114509418282492834950254855078940832496344061316719662013445763361528706987837508937052466339243267109784342354571315812605758393297487619163817951125448997130490987895843659257353658577467251333326881086803839942912887741126039115130187921874546840701859941671054282051695088063872052787509563265507813622622399258002746419698484786880173263410848276393926034484139232725512075127018292445851059039450672326367857797164883623768951707416574818478261457960206421506091695604524381714696390065893802715495237037959154127181623993591902930950284868289057816417705211730290747617890919059967573846843865658720814871812795407105975628849549327880009924316307274461459615522726753594257323807366318041310541214663397664931186019047244616229741368630056986945943307534666157487893352009040201009752122068851996001748351247924106891307389478039899197783770557686280435209694975238350388732246646884240855393175891196785284883427990977310752860365469817119378751652960296958641699284076642686808207885930519006406238259100819112661374649321038266692969651355878124350915412307368582683350363055259673461866291813267177194623163832493577765794982078521327099873189933762999192544134323838562484700638091388806875521204580124999609660207500941390026980352156530063414334982187194883414985244295941852675997499946449306058896326581011060269218144621553667865600254618179277824243369015195985344480909809325805840230834388340162625403817400572802237119829550121132213732762266732918192784339411393893482601944399208746157929278133553735607915887312447763862779632898374871745952775334088189467343636294960354341622474466796509484719425485526887375036465242032346957743210713525170046966493140678778019367075702487894585313954655060842521668979473271772153639625742460002540250504150723157465636152192887391197316566455283379886961565555463663631619416202447005719565537906618546299850366406086028926571556389054881117854429058147395938021160381983934702680691328410362978188057800786283015239409991497724642559862001057744196770563930364334992978928104430676887040863301020988903911726108880706434525525329906736264833872700260284783317761516530653308520618636587799576154137411366549140127192835114933180724712538632047550749532388472767897525163857918305811771696463617150474022754623372734663738224525316280183274587820744556535579757523820343622271356933928552814252676756501903637936621062139037110757062960124260495336292082784685085370114332705237308701182652338035340455052035562421444482366976845532705716913069888317097183511130123427957950735124609481848389795403124316929191266269468408594723624929488597698501754741741318295971964121623761536735626929273630498052480124745439529125685364652167970852646944293232996103193599530455656998039772428664034888147384028388662807260076846299651956614413481005502154165502891814080755811966413218045049199728355057303221159295833650831238311213284452931858830601029482886544617646784090023822420865659837468940677098936031063057161118743552066392035972135765341288347413243217961083131133877153126723253370218484314507832350223999422526666626363766093283651641622218425606268117968227251620725156751811860077573201373734823347313786805372319647723417272725303005967370544220860074028685777441798939871275445732214375479399138076832023682263364737065407692851054329464703693401907292043439742029761271229083588002103738426022847694626040971224376216601282490097461795047607117764648643054405874072386985611745605909414894708656197821716595874260902021013764238168821813632006550071686906812775195737618703833918983077853771512374398060358443622154460387752938964218766338526565488002873876480969171417966861978786151094116009051328499669647785546727024102408071986422749143248145893633208747503063907382989523216973163806551481730923316674592671779651260946167116707766616672332670561994902159809410859339720679272989479121296392378630348322299295400581290573241949917865924706240784449076740971134968712076911176447852285149740298373417715838297730940812264446081135462796465287614224973086586775824118215117184132779003055232329008827373390858592108747504793596063967660966732308659621184687768593851280310295056883962004884127055342339385348411955811077641544705690837983164159253127553705680783013931298427464986857779920732488058122950910641234731711705884533478720427372715613723460885777164278355859763114320965082240791657868927678018465851311869188759825346385548263008793072799106832597611600420257135951043337456746599872400144612862620041877340461093564419469633678010204837310548835718954281885122461991725450879042593168494510512426189186343819119646154660657384923869755659245138155496350259100313723211766585031006455395668153554418728404790151876206713728248079267767791753708719555498995360290258260468063477672886729887149347823664175692152239869460454585748348395838340308827817329039545912130122553669825937438309326670811155851423096667484240000669970792262281348138341743139830486741717915077242501313817068498812730748499560384813588394430593585750354460929356242527685702539839702721039318219046683626815675067677183917360609928614565533761307070363053786424611534151146013543852469902756750620337243156404538692570919357216992876847266211037898087028556065514739865644689129448056879530530286721919002758776827056829984475632956078854413477303397867174394858014601734687480911543264365398111901573396127178746072931718538583364568826801074578518807327562308612844233745567322293184852842039662351004007205593578077113555437255662115619180815253324733068991987751239833423503882316440807057619309284903966244700859642413328749777624660224358511286851368141696421428977761883539861393286034697955133002124189826450547161653996645278348951672755872787757502757255316574896174378034536780540599821879045070452861287870639470807789856318379859021110416182013907981573599931515189741174758479922032082382152253496382889808019669815561122040248717022195583218360515458147926683934824989126624439840699332875487838671727187640396283125917979296932264690956371118529039846731722607781768655592903565918151392642088020192220767714242736620263618112829010885121142093685975311020936680650918210228081355793069927724279089571398165737623045580295195351179331593847359113654302522180502782810778236615952819474481781526870240745304605153429471075279487764709985835075976709487970692625021459009852536016150725118236264300707671753398013577705960427443517792477049015138950006300846671087845001965677436132933720343057285448921227466669326401229851101583919923148308670635165416784318880049189710108445196538211626075858457601159916066441932138017114976777325729726620093229936708220008098234612618909449726678221252165136347792476949942464984558934139071229573204765940402418270417464908553599164524052054664529311630039627561514768326191727210960907870785207930961810971754443094854088567714904921645542022395191803885018258829435973957160184043383808247161466069892332193026532462393804663805731505013552265691007404001891183448909366224323769965107323755458854735173407573441415201309865215647736997947404321679945266425383707961515252903912995865648694436639085975031979220682418251609303203834297686223476748086426487814837253685792015687780238972411294807721258239564877500607467969947382630030377583931794614889707084874290189931476104506674366092880726160857023689793208694571373608210239941752792378584381287208407754321820732237798598318780250730100003584071936797818814588623351175558901688352720138592704538401062371380774135811611584085906970665673749116618313339505368363498733033870444082389637606003885237218375331805925422030346096227691674082309476190527879675948232873764231064469082156433979983560994465554227506966441843373880163652554428297522942402187319349473030847226975046382307677346821390606766020902241536241011058973169993888653913016517772304710395274379052323227291931571240544954640707850230108022663124700367934244069660023300902809852090360982016996455458233801680251515743015844208791276641322178581602185002034935430901641408778476903420490824090799654109295033724765810676182054667193247898411908595149172179869720011858882514644633865092086309201905200147360855199720107118385814187935511542791741076286582232447755840317824439426849099238895898985379870808418332471017254180683671198185041165831816479937471030893050361794357871992145915741311307498691653087371739555913362450169148134294216686636694994572758314847945713352743675978932319422826341264531121668896809776107951387902649413560542173905350084015932923529863863712768554367439618465356267219555743397320447292082958743430018599423326650878113908033507045752368879183506831524453751756914298064747490426178623359642892592026626576786553030801933288820860728948870492218643449463013315210109385099847925812667188624046230933235109521006321509569538063939894725846468127508859031503143423621757983235116109657579278379901127117739166578989206647043459169952279337757233798754797806694330561515061880178566804524982286893223886498118652759354315644601368076220756471928688551531045134203460729860607894622427034011677889027152265026420210514291954112492436034861345903074134120101078060097771120733906730645237917972565775560185453007680162359195661206702883806287055125294947745430934514180466674977700309113266975930405178974034713229190280403743281883519237232071453088531476197333399440626637722158002517411726384412731675069088300992053469868372972102822184081210171604822358066478482477677784144377230941805570343206101991644742083130100298598053669430702890074106034359343919817773622579946241217812526207114279279261751345254502280132944913387123482102710134150251255922623177724662855236307624140132899305758160804595074399181817730488928051272970332148809328840037227311050967462588473936698689283369168826989993200905507047059788233505199387323739482503427920607409393401602204945717402519969853735968433736073847721530115563685493648527585091248636284919267026974265384131309435829264511564549694473050042120699416189023104099640287056860819901071754374606132510800136463781512251703275984829254234099801329118742093464680909098803053508487443907503029641261589085774789160015944983229163963084964570138165006098740804663158612841943953553179689680013545213043414937577073181192334750811885823380764870079475394723136124584713816122217377477147120364242114530190850426793430175430831585987604771654051873230208776967248956741930778388649554290607050306701545175205321282339190955966761874402798613333946215019340908088165230112780852037581660251535844940294547384588519889542683981569212941815109246735798880027037470181592577019363121168924004907304237198473722983506995625160743629833673088741446975653336687530906149455639859813376209531997542611940330305302801855200688722045695223151578425703708796084940260818148026976111583149889224077842723898834768509360122872109861564939225921379273628948617162861415743116980089250887813419958524104309757292027299750654158778236023104376562254572080293664500532290537458403687438371610767325631462115137222393369126465720053596562201650161634034935363297603768560079342404408694610150400212227203767139320962365038810725563812339969339150617008228925229137537166778292422467499030797552243413172819379040641950141694298065938576718513789358781861197189135111631518419023753028627285062219890421297804158772438763895503084258946321566345405270060572574127626667987003369298117899536134870629151127495542742333352639060597843718484010643478260734570527306751781999164653922546422660736195895463705380892795536036909212902784564614051722661075593995612101641388330221166044959421510726392746403183915461996469051394697907173706329759622149737260056365572591318586298473918644683480954226240107102690192915370015796895968958985905830945876615464119206683473695103332085623900713059620947158928584794566011673207664762291141747086741007568279435079243417368591964830891807803155194437801232108150550603087163747600904745164097006069587193400869809938588674277307015009201724596566516994821325985550943155875788996132078376060785275428979187491616707683443345152168330250560066652665945533664451549332784847020604605058842300252363766190259952205220421216850282232764151979848513148379368071700206534860741536780754563529368732336926908527022654825555087141694171070885011304556157645671692357127437979704230949966236944508245214190638649799044623633641912243621539401078147381412819163555332401961672683395713232710364422898002938129176757431096762972165423302732424998572884850746422003783581936707471156636324673209652560642751392251667395889795074447127777958237632023996488865211831711592848984313084127710912825510231709324196043797292502517369934362523020833154320024937226116364178200576764123191125897314363860878750807541723131758381235157632579665798634192746169340130311431432252093594670031489433000615602476816952842553438248997853473922347329637212414343587001080617320283812349237104961351074171411008898413377025168402907574944802658705431234423293627463028468318370111216962064099523578457091405036865740453256180361726435807422826540646652486572225393879175439586973545859127396181554110452898372122861937618029200471483516743993612389730711607031227051135186005650949343756563942086998101372460454782074818366404666506109625906635681498370467193755418232238993210980427852525735523206680149408412346436156927638731683590036261650346080220251011567116944487924744269500403999222851086905829489189708400414636384305800703587161173768687081594880985745389222107523832925684085543276637555829865153645361172212766854911377813248412778892276513116546838845492203813894302358785700338868552097881201368130357617328767617833045356578612376379778003643695647787052493852301835653631028358244798096721072956529114937026586157924076748362383414540729686151049135572237317737911125542958609059910898532435233115237898189657204763468489930271516601869344147068273358215405412761219703524260499814833641837785712350334472983767355530033270000204448037583896531513407013870293404950051856736996258455752339088439294422800976372372985844916879987580249459527485547734526060177101732786867546507298204408104056117629977950313296701286915350179609543433152324003163081517081879876812328425015566446868673610915663667075162602980516198846179726714047215227326519184566907819264581871271858518276956997357687791210947522349084987636550540416549242913123260932929337632323115384905095886656165761527480238456260879908570034270528764559063264341330013999099195629159738232466878577356793950368699181910273925343115814135873139707346567190444639777483795123102070700579365309023623209201762732518831391869452826522741467579265098752920699675339963099450157398668810058818099897949874502395876357947299969909165729675682415132823573412490425274874363544029428347943035970284854705702598141166600277589384372370178815628005617844700833438127270041490324211796194326369246915364821605496021091316407082837583820626869806851392616508362236989271772113909544830082411253200937344982312753753592598119210934487565412404285041651354131599848372712120611809961305226357661669348697239815205665204133293646135965869348781907923030226452679247241105877151984686622222017614775180557483657451105257742941203859325376932116671488632522457159135164083186722090394972600166127102397786502798208366280857040463641851757242159751592703925434247577061406359767612922775141954883894527462068581071343430896326953075592363815806349479018104612630767584816561858043810080207668496311358273104204229631456818604612976924746566053323365786290781752657171115844423775221009745498604037440864767904093213092145999215565071084174011974471379442889869001320038927885803578141170467146192622490017387149059388705946194021204886321066852502097688743523835126289208705186706051412639692968824395425815247801443495364081569451935569910630823336778161928490438412094467556285222503205260108423009489888566684052263196165924343407341552309828731042593049960726414880626101058391107774712100634135395082631013283235283348388836001991826504606668437960583745452762210709923045705147082901355700848423806090179871328435617028675453847687655149117918454745447600066596151089224064200340359436865001020167584399062458130269301580118264451006885114603024768826081895871463496677935848725077561197853130332606964734133447997423656624123436914547495685894627258334432275117267020864765639740189194187139000251755025281320430771451176669457048424979934362672911390834444598644460238498412586753702185739477423313387785036476111897586281074243697545466603472725443290994145625217659985083226498830922329042531102455514027856955398056410949473428689103402710625339117761216912338486698822171749325098236659662881542083237040247366021360870072687280471012222121752551594799714078831167873488960810956770292897868636033320769396396577743934544660551266364253281874481004562999769337917406872097967192231674755929948095056429931690913005137765221524430724411092236469998119607662531780029197960044165110084164613996238899809145683739199205525954194527648009922576608569270374461077688479277637642450439717233860638097545096491200980593815217386276636001565869853609509077073324923222171385147911987845629892784091895233991719598627757168222138902094932306636935790637726921010218568790497515651700235403001654248700518766573172072104702181772381519978996474524994112663314025689078409056241549873675317777952230333335872066196809827642511197429788326733937125656111079475616459236230176233794346661924473540148897171697041680736814269687417662891840586707621042723463119350524131154493276260871511875582106990605730951213746078644473642853132657482149167288223510144097672580756386454716038627512526356533665858400919295071530922989637623338497279647193524220886773615738572911859203422737405511336134360757942948086441887363839590371096221388256290415182477200621373842985826696406822920654328724198217283175454327844117417708751920807771905140575089521685454830904514808598624472659650196006382240251818969544233337500170934847271174940379967971755103559280317565783551084963078894112952784670343861221580108763832837313849370867443325764105330625787129102320377535611257625470017466382292170453504705040663724864087354093712283192366948872610407985027319534895194764976316374411823697522753120398954361888683180698372608180143253498259630007633587151811598284447622343325465220551822844550352514625301985340757158414204111923352965197879429079019548069702435089686043661637032568240291415354054311260015836455377247159416978403656917939054596296751812401773548049671699153785121683594738453128803818872839670553354271455725614891385432589583446814297204036562825304360839019864578052977816776810983873407729760167010446873060503891010523453809852755471357359814594840910771082046904893698634148328902873431098747079992371789781455893586055024864522694679200689162531207641884322512697940358001730258773761480544789263498569336666657360966185480309712509136856657887669466514369707534747203007526311578684887816731791359196729484105872506582334012925705977446500813379655821908128558861783820724707488477424967426298642223149982092332613746207153449842995157684973579363081752466133937394820428438450370030909913062053371488289119079694193340196490849521258933481035363465745110355352138241321689256929123735664958920407201953467164887681285420442217257898170216467336380146413581327813876339764532369041756452505905284392889166203869163183832784727982537574471846038121113951189063522427696583827705963595715259934661493203496999976282570498344742143425638821173365689475187002268232109685923347366211128890078166556660100441300391505540130809660781413901459962338718225047715258524969979306283611166802850210295368760523163473256124576325280498826720572230318685611699634341924070744943183605167348732778449060981179924511299074868334786722596312791735943945317354699061374909318950913751466122674023563765817723213232217947224657157683334781037790274139808593261225421057290754718368746382473380071435184098155115418068999747131178719489775608457730775993066784590876077402749182204239963478077329896086584257661765486534208253448977634147140161676425509360979927201305193018170540299480774039517048350005363516322315147381477833122396006573949602534921398627539653832188517640847352580636198745922033553530792212726196271362847780945740724265355616650714862231059959849234778127755127662179280073748757041817473164626312001576037385296888412861362674625474184677748777399990596500836251746680983682541702949541501606862888687560094255929055629158548034079901903922956746215080417160943935557179481797554288151019036069041355353877896289655794686060431048329790945404727951785202086497325348069392949898805616333176294506046735098961555190019202211395844784381760731104180504127478670190957171539822397026319486623564496407366116365891297481211840351454497235320008330751464968097968826224785659915380002051432338574923383887240486085616441332367079372328368599770139743210807580433226105575546549621014726758765033662837921102646445622579332032120250524622708981887699396976348127709680556485202147569724682244007761352372909677162694581422519582280758424436946112716260242429007297069874523934198179339826201524851322773256267140600518894778059137536852717491242736219567644003343933833302732822147478801117637164046915216763768308811357071997935589136407027642043557346952495642799817941736319799559117065627066379293073015779952258170351796684426545500735142813431803775251892992815827101181845469725433257299188124362271239577118892716238399504642893355139329685336388866915344525559548679212208744627180330046960750219037112054571273908246358018081465561667660048825982424235770837979987221046521804276343993551360203339177018895968298833584679104259409248017072991636633653438414059745500533475437353937972355098189666207366954669103129716018645324021758453346741179391821366310541934461867068506932445647949901125506543131868160143142070438224193178145369377355984996202824110745912678581142974871210830126199005308688517792627807257391003024766457437737805118653635452792304652318799816306457881496119687500554275631826323572253454482120182009904807327373115729976622804184446708437985902519850961823067242011236153938898682126279988871795585322822924976210287356180000040793741616310062004568467059404742361333123920944247251124711325505054511871924983688030397254020836259954762571344069432056853672969688482822833534892676180284435204058485711482624370094492205463020433488441225249936412489860489287960627169458277874930094070618904296889179154859454245645981299502096153187421855220069940884881411887348096692436435580671716987695929865466683761123605332181762975930326414087730865164666861200433379759386878275315675455452554124118952255877088221673525604163237551843455007532603147637349931581586928065863230302145725160129165580587795819384665266778175142849062893319642745280773591126603765014834359787106713170352856704581162429491370228471935409095133227713516906595281588396423003886756842825495003020607855770330639979077586869313668506764567779894414130531594726349399847781415824801185583079319245809483467787649791963151676663105557856062102041748799550561739906738316444675958234311436436808648069045830690790571666197096633147744940611979942942150226118830336524185060384413694374582564907600481616410930367782597607849254131342356655743128014674046337021717071480608427697806315768722306069240074565901111934667619340296510239629450103301397855068147589130438545376130387805326155916871361743246098467238848429572038541876140827063910526403435468385440531447971896774809320252433600036124500524346606602446695819004680006524032359029305653974925555231657165013773771533549016547280161002886252085117197317847775132212258136831853450262151705709112369198905399287925453103471733183461440675358306978206913685042674676495216824823886625379572428898377122086578758953662273230705396918053236121431638339063459858187781455546495100140089803203080986286820761096218666939290317784243185668937981600775065585929632469149652435391770490012440817585208509672564134893541364612707631552573205704537568834628100021362661160596987866607000630672860790837202123256753594293402023267348559759599645163507984489635575535015793552730289463234109707128507479737442436120717974844443899073377191207009818995488437344892701635488164673666971650739898942196899197719124359910321287799859650566470416406486183908802650418187152423213302479496761780856317719722680738284398405531123312090402147186646617080707439315017481312406169178308878291319266762483401317388719113247621450440036809123653968712642370284617645652379731609408551202781182404652914744771709186613655632626286126033166252931800291809757680520635838100192721146348088372991720832664195225854541802309834039394161339833367991055343124498711043043625134752754408118838071735713006798122679859374282821670527411442303766006187449747905463085690358461309319778923505181677614848185774192894936667510922646951030762931078566979112318604047534096156504534929169245576576318963423593238760045488305757675759908586511515587156966169123022369184910861379108122285347016747557072968198386853833454625211288699801702876901830642145592225412923075500693833888663368552471015781064821805558981861351534380541327794477960195670940898214181479046067598486485681244552605683988895762696526389403209770223529202417111830672992502101136639326076848795983954301299532391063207313758223180559307455615694291200341863925076324717123964371014728722137264280200523928441770673220430806019288994363188786444613176582411668838767767361163616113233205673901586397889236829246079014220406581499577194636179068736409865783232718843595424344529420061150714353583382563783402859329001934377169100524081990252251668660689888980172108939786353230761182584183829413129260359681418281462504614226530645948615963035760566012164752273424259149745321403526622782734129663524328443921694585799832768719942213156534382823239944451233718700736631242858360985894584828255919081899170887550155867587577564778961823237426422011484831952931740727444692668463598800971009577125620844520827566132771988279250902851722375634008015858354593865223106995534127049416552805673037518798750109810820062232754809547701192064904824134489276987238114942181944343506729433147251667024755319644063256479306926112820927839369718436391389057389121544683437884583657096194586120614188896417973144933179683656389629746924676696614334417641266939948723195613391954079419749905346281690972680710293932323311322979926076668490430697027679157097723428818948611536077075267549004456711411253707046009259931805211178909592246528934166816016800024806169420054698235539758171893033213253946825684742824072941758669361041741227053127321822874131147022853817775284468912432876792627437632519937806744104219208352732832505983923421316760015302545664224245829764421499069934989721972448118720230570321938076703874413228042674859050312290207514202306118748607615058966494197913343190265383510391500021800604409485356072308705512113289101197256648956514843077383576356178925573347793177816047202306889279701919906513157013781238812199936569117299529096318141779756755277668274812087735155900890551342202207195640596998384144521129848896249426278720992513250224491549635033954735657120261272582604240024078279387770266757334483611101401127633110984582118588406203239233649638798222886452718809724857955883099628720300341483372368025499387010856983304224383931960326884195899850736787873281308155641695144790195289992254663375948977116958213652642401542292094913425878851542398077026863403960305138627865475025028173369051383064126225223289727616138350199346690384878032470382414178130189739989091937540889205527356114678740152923075926607458906418309650498672908551864367918814677385676611606963382511651016642311812640282244170472706814534594787523960441449509747875919399609120323487926987498521723663369672835676494443686408423542787507416591161225496391322814573039740828288681769698743688204793125844474038886497345083422576365075415373562218953463972549571442985034871625220726338291736602316841583675671193543361877574483629673522555856735846523746902404211636387442036068331458754316557467661110673950096583625395287248889307636325665959209811789812315407980766089361373257326027630239334763835441000342385034315867463491022438928902322370556583210538262688498717719496577332093581562675639998199712425594102163245297976349433068816733600406166304605403646568929978678687021051458850997789542285494711540277044140725097855381875526953071167306928062465018468730946805004340058915233150546188170806518228595232282399296529926207003098439183108033232639200100712940203692949293600590319276571883781470961392073523532707754393854010322398688901120378354874041829900786225878746829929173077770333689868318859935358172663471297434442698767396032285574210145052353298309393487024798126654414030143857302573715434015487892642361255692906161443854557862459427185232451227574551275527658356551124771783316551997397268406698811140525232396662273343611425195604559083712999901162218600820531064132028045342140458817364795190908153334684573000089947694788687973721424062580996526303981346425725980072425643945215984677763143990096492331794944329704423305999062268687696260782924674910862899452002386703518321961044085378022087840552045419195888352392215679137209543153669717532895373530541062320598345257514466677205299722580883203636791479443320969868812101243366119299359461889452549206738830119047032350889402629277524053808324553402696904650785507888421793037462096068635142024458180748525716307109768228581242077585581759992345111844389923891680737933254352373750131070871347985816856791168130583221062575776586023108584016146106263183150868497094066297958421598199045930577144690348930882282091212338294935804385720829768611387073124837156585109363560875973880739909919672477427365651692195334338081335172384549458495210841902350393940731223429895543129236273389384501480052575525581665220788569605220348868755053421323880966835902743920388311683109178651249670933050264126573249042428999222904781585470342565458608554610054240560260656612394876120319773580064589719023156478430042030696313903861827651442010973919686456478337929192780347808592175495310513821494626251810066052530435625354472680317785672003761028364241346966186227571461610876455303972237403763636150118740724046224876493723363676372930086265504461177005054938600159847308477678627462452498070674653863868110999366238424906110334929563321072286052099486196750942982365196891609350043262625794672049611153522510184430221236833888489045695725767766769415519653508634028897217555433734973655733298739305803613635668320975594503200794956691675038634278689877427185811830572373429802095582751041033977202021522988932342454574850354793090789889108311170563473656751579134288245254297422172490986157383986592112280678873379812413618501715342252391069797878588725485962605907500763869515981923479024603543206142812513076475952396027973617168325733790486568686931446048920197348235725983995140740825795947599867171222479753426306946812425663645845491775543179436082920674847370312775220242497580325204844509204219306509098028019239710006535230020162078249178132324122283970430637719190075284845837203574523608266024866819304924300868123412861546879110350858115418431713572699611196050729802874036095822302292897692820602392222929785678864546552542098985724903860178231942568819279596374023969050531047472178243389360973954140803110697505104408510148103410866592783437032585925587310002172464170979819503030466238944679549151408335845435450266481279964873897964956853347378697439389804675443172782590492585545849694293005622230873063139600623499875964482154371104831664935935719268690869522482194104505275120850726519291923896281048088511200955326487294651507560294803673603045896760904249611809453387206032916621501064485076593374684274175127263951216104684076590679644476263586767506532242338798119289259685187337921775324711630130011504237289097302321077500034431679132668729284474095462500518986636745084307016780850643474328425421986752620572646206544096511579678947389704386805129008795097341959461612152902479260900092278597495355235683621626061257603105356100478239826685793401318122658863860965071099879081589725519215617335637403405789822654031071353113546672924718594384365104476766188918826630960502069286800645550046116183320669870702955363242153773366604765541326114164793280266861586893549779413816208800760832874627277227485348713148292317047672894788858276273456124350274398502425413553429688612386940198486645802139053134450146051904843598480665378009746764361894340855245153526564324532144603933707642991923408833425289836182416862041708989453619889167982982631974055914079109206604053927112111526604862124850782328479195645622909904034504889918337801433543858245525891796338081655270287198673187723911031486267351964574987792936282325788806980002286893462550012552411174078339692262296656297312507826613136558732910007824614691310518638447032218001301208427092975187283623205163988933265651323175497049508665307442581879968644847095767915637178942755015596652699839214928421366894230374684173603376380604209640193279092269233557914175019877334173544697489313979380119230768357548451416102367779472131600788232495698034839204311276674103171222633252108299614306742068912444098120574956628422738195979368443373601279592074093648862273615776044306305139983725140700947300392515644906653125714357242710519932472723979293597170582955139458128344647973408441338945215946341665903776461290950740808633896002014284496175308752382922472199697742835775801951063776878102119206832271543877857870008576456734463461675163760766364983062772046728907091648565286481283542638808703099469161285850782018920322522674211330876745060580837447162578231003559190058204460161439327179170103448826998842987094399706090953139636825306413165370663302531285657602155204286400257284510870978366156514052712651776859892369058743209137248721899788466895839924558247941603287514399246849706783253864598768369766474180325973479075577176530844371860839401397829171829638340050432632799223720322831823860281885742252768512531937671517480184860312357764520282788823259811128067491558785247910902280810396271544850226279459210282089328429039567854207877529451289107036481830379694772307280977723293044122214808921334827508007940509360538849602863962952720502013875302584669917009562143257587604541070017987818794035360926625609751551108862446631606564906827086655554973619609138753979537561852908580931194095007327955637024690944791175465099881432853248938862582498337352610807746922949104654185367538203164262917017900572276399170527675419006868973573677883206448895412991736461002680746734610559842579794074395502118273397200051746489090191690142193386804950103878413070778137225993439311493541785239964900752167117039674413397968373329390231717045317979277020368054384644776920315355488696547583142279674278718023226666937021724797718505087919047792858984705591536936358072150066820245215694980012931762428139344087052706006315027002610710716253914550692235146920004108660390272410314556790160651180338000769148186261789189657450338619968901681692934648185125525383680998300263578056374838649870972063134091757360698661189308995814357763957544284510734027359950452028973741085846446108936733067938955687946466596342910521816067769152638987737883167534826442611246936831546448366669609655841454145612982448763414293200732833540836295319036447291359205039795414463996500331859120474008624314565907412391912429192954531528386383388508965108962720345190785383699436814428783527227881188969069567109898581615581926581266299093133826439116514330331936930556903141324713937319557731243585865311192443757450290764373704188618081724269443145201238963338582667312966518396497110169858099419591731998392011839580892376027667543038708517558893934382852677985306878418722475788518698101293955311785320825343905503235312518219579200551922050270951902624743576037835462236753726054343375090267659453231101055348422223145421017821202633203201194215438406268074928972507265151115619479041259257886233053260398934171732568779259084844335130806350107854333111924120318333036416796248196689707171008598949971601396178533290519056373655018745490098024428752801957787280516929695107387311733173591322593902621986539821489289514506313998467763095743783301654304099605307523624409078746149191867341876063435420493500187941422701919207104535580490960616413212151484193911028401416765802809012827506091433546579466113370646287186252153836685713268038461341425229686020963338841992648554042585600493908097176379262540559642707567648793633803811577769927347086422466909376388119208768273032010210654094079750499686454840020713398746482244394081518714391099916787230479593136608475964108626748233510018243713799513959533032335522101599605294599013042699086980719442728427476844095411680858061006941432875187927877198057504737444404392445733656912853033230029799107576378260156820313741456662908166174836594553972400618602835890301180799109301035439985472933778008784064666408917332215925590950959402637282433966217554174742992585879775576880523157754176663353634748426139270222802548048099507924168451301924021864226113580958994361296811925363722085287356715986586544994201933278529266092407151475355858907159504668497018726216781420683398987306483049401489605120015133584130514594482979858375898272801300044648952500786112603205245665257840187018152540135329797766271461251222834966696631745591520471477865146649802724833183076029170190509370473651237727328725377106768484605631882908551266473073666678072159735746878132636311977939089285452764523904174220336934515434758075364674120527852160261273050761519814119336372638503685353521388719214328324093308359810331610942132252948208320824992875164924155158440266844156825491894508568981941887342532206761166536140627224200999698355049350918186336485343061436518020025665586276255542265779721365023647220559275845991946691536631798407915129306794477432110032646983678267378699728536406856007920952237462886923978007672895262804824641946490897032454751842212699415235292977273803332849561277588432892081949068990155626708847653415065707518509595796740648070786533594277442999499247710363810789392338265860286491751589724633234858832571642166173929009677974484449899714838979170905603894212029547510329218768963105407602345269385787697914481518917951204956939221681256724240163410458724378768122847199752301141384905232130643936796495134876968686224642548009930841552434542722821050751246890268778853698888708954408971556817361262004202125159017622202537603799857717394093543039898224600069077450934827543739051325735600149874742172439425833631337726458733948991089991669852260903685834272765671314762996887819802500957122619493532510321281353777034127636721704784415174703771801480961142642205614187948194754866217849329673811351662922509788745773368448699914027792683491278892736930269904197311293119660662834818819213640454918340369275281318547314384976864268244553797662038094408549867800241538379254750484157595905570415590108377257293624403281996920106615596987415623483881509752043851610315486241889495190587855291681411878244743756020004471974380293149451225181591935077421147490828495058287068093387187528832681687689683618813593988492575691212195431072204846219914370941555546662052773481039023137713434200759957243386182561738577152527528052672401050450270449839318254682871604058813733006542462709161367231956790178107755567972122780877692956458114892280991692607741645938690012158068241133891440442925805349497197408984020020033609969225727815960338599952835703984223230509929080180675778348352045565828167446402763769603620252965043580513274621201593980627259917441941994495351900802712306883747980746738904337399085223324088587259558779157721227550615495119918118993380344098233481418244654170517139757538671565506255131462942643624511119434504957807873672741857382783065954529771278151033860400206396711106653138766279067098743483348387688628968616454688517819804809414696081636890934577492147412386233950147268175452828733314373934067560876612195065243741246419304767166863819933981293755913515103626228637887963516511115538775226101052414347710820907367489915275220233270251081298955761518907626898990540859916968810314298328571403657677372321213085895112346083178665456956500386692793535280048188453750361927061422517004525131931355502029402325604264281802451923459049152065064472814096666294011717546164886901302466783798955781199220841802893314598462294728685796530934409177361472168314285476696277587569623279125224382621464730421975850843223204668930355098610885579264678315866196599178702437466094901794874361112490848180357449926012070442128534271289166638704086687689051754256374081401028498764681532465235261346664364069276569165804502278025583843270673345600141446068268128047389325246086901336377635891182955420996947182231248899275517029215514849699632954170024566598704922963893601734905753519435230547153059324945461822330656437607905420926099455025069841082576577265156822305286646816767896269386995834030127422937838425460880650509517133071192836011882291435958105541682480248103979723788086520746581877454613640133558845266741198011478618658030040040423348192863411205698712732501869342325854193635288904524860602885974728183403453233606370424491633470072228483453903932891207346786237005840117000691003226776560635238200065036861360956026715798215429236623251492150114342408519496234989975611153896879904644692277737578296439345103951450253255451682155939683318646919329014020873621298620411708637254929465077782321241798106031137259322469015665261180619910340016235979598420141148821054900172587006253107590938065035066753706566875139178969285639852183331435917106976358427271501637949627572606071279741690396161897943437131557164096832165308822204047038661632185757716381832920881070541019766843974161124978258122875803639485226938849326720920412637320992851302686509171135211246114472914895655168392327546259048979381653317915128014393480602487732684482253903613178996499452616103220001187827249506910376164965269379933957678462092662093296358135225178328589579721702450261543608674581138450938292694763922460716005989656626334653383577127265714273607249549307591115678204102107597950685911990839476280672008302447458300359878652423589090288825664335840276621429393290186522224489588679038666607305866470824162326813811380966475874991135051089429922835045670626224109727874032374696155801159951549672240164094806897195538238946767806605891592350361265979518699835689775624678218494939077735041068470979016465369742383604991861934285400266639677299021778816899586411294342011668407454799875181279627948021541346540312454471532178430697641095250621177193911461873341943060583878488399041035968933131802032480081028085145164683856498880157630616632758838504454881949505109245266910639993039104756776461338857631430831557435673884680290838915494833781174237525053752256429707148553656395116851019866580437366046179533129551373008357302240567350112075068558118967504338182206653361441948045746315245112312292890910912117978883532942468817109942137275846653683315010977260290694798932304179293169135889041998312584809241381729740226736628553018614097213160814931469603156423760180649887875389357159728349114286622027149764871366603109203520530061693420815030232264670712295562552796485929708351332974210214923017138332005857505885623212436433975164106495854773962426026613770317204534688407564964892532869058450488005053351546959684452443105670534235450721669496032866731623147649297302350270108846578068614902666947850518692447930034268985670765687557034721406062798731996588809251935527362756786230987857043446867340841239671818954465663384384042017178925898716523565752519711827499671352738811786381132656511562006355278237708942398721203494526212785292352780277157642793593491719365844478275628244963035621967225497995655461783233439096801414792381428370429448078324735958698412431598161568840186449564957295517339578624699409101296450237712750455247122593896957226774562817576863118163130865325316241634886628531314423544425386285177870185212741403367830654205277629806634738189579059548746853628281204309694315546938997555347823242223391564886579650736331174908950336344058126845383000131190023141804779175265180706336759321434296823008287638398112629000895667235234772885658745739861556681132399889619227130037886213831691224338153855094467024866650050303960151822786288493586568379298726263169656603436803396582947896294591498384279676273013919604574896640552465039390095781863804102753913472123660763702726912505947260384550412005820916177469932298135382708758465069015137380240648461356699950992616683689542755280575127151034361103642361483861133658005631028313271808453420004561557428817311361400092936492534195895937118124666250332013020761514257053615223338830188321354114514044990311447113635097866789116294411492316806416203750978610760026908008637937772345461592808713636716527851883468476077197522576664879614448533974886444751999760468702223848660971692398015786902223033102634111926166835296049877766848929635186972171251174417873271913190545574267835577523582261881623003928890011050511144990470268964819236377177352206848350058314835334976030722152549823202690341991257207417260296659032824318124724415972217424571800350073529580698063647652563130184880491426848763248090369740331065535227283997014758428331669641920252100413260099212602582993206821103049937311934952428082711859486227422374342205413265113771084324314678000981224337027443770570085468077378255872390424588448725974779169019325899069891212832762976104048271275882574854255641863616152634827012402329186501399815399604127499503230319117191894580604181330219540496732366818422987858092101534878484004366826173675604729009506622043597242216224783444208412939557161379490830167030996962207296159670797074117660134564951293032849262816593886455922200591479122950937256899418163445997084326133771188870633097635390714005030097078510236289914706233320929743832774820502467305252398868323060048673245946597696293566170736503410764474500543630341984867692673386024177229511717173111198399499995786188720876443080949733609594003686824067225468638243799864472764394272462985706890304440637692599348803186853176184527200108063204192046022636114289860509892168224791540793666748058443321199285898266956807931192689645579909337008824699640642304006148732297757240516188548886002089028947511040809819106036224113069307686293173242426573946265314121298779108126240956922809705655677570062808589143591129206278040684286560955887845888140089783535677833585178001895110252565315006139131227181096032434733184910219449431432351306880716155868040595704505059783627169034557806085567670718015995052480828057383477086742623430632184296938145781536164362706736197300256535640650241523628425056739948055142145055243148225445577657535356835392743909160737120268235157610706669300710681214075285158631906667697514623207599257015793158156853859048347826375496319188889870563344875141017871254777611738070723817326555216683002153261037457547888204447570973624343833824035125675603964259481340370063499569769975753524219378303414218747497789412452434532424079849234207145522763954451613525754558253942711532685939382969728256132594770413838596162734788275929908482155878027249938928655238473694533586783613098468285202792128511346868414980748648474249819103745320513509016959527519658537399009371611274728010537031686753342712975106735534714792603658753319382977857882183465804079843553526708428012278608950205231448294417346658707227125871749726420701441736161732845114581913822408076961405410617046836900570489376157264631712441649447720295283842535954025124653396724333791411592380179127706176101152595641600413138393304578920870981872877017908591213800634330581389290441759385033599352312228577273715091684205603015862885320232093724655694465113722623532028322371795116132442412965108535433645609458796482074587127132663746065568232849964820834945447325110649895709342852913712284112701603247318701229670529673953785046240104679009852802376004583599004255636672766102117614641757142804457371898611080907100627487042502836414852775454004921651021994626768210754455155098442177775927999423097955080234169146275232838246629985721816451353487956001288546440532640771393031153057408111311971689193420734619354843359499612190523802430402397915985051791016870229196623971930410422156999550688060024628297414984503259161004608884977280301481730738849702682346156272478409533212474361144869202305557619228939669247570472790193479291499641757374030716430003246718154057507299951997298510052642213778700206009011361767631036165112219707403434225241156439450883224480134230097740527892602849245639645801261555440372720027624894343092191462844967758388628716770511219167403166787521496565847280600433908630107755443161652318197381839136002743056156022293142989788409235791766378992249833258092719299423439391545862159828784651122279557196770483538012237165485780599705538578443409530011328529387273193544868021350510482193423165591175374088613950855222276423289913458136808245970281952346538368720594368453754142866236218055835856747827154675511214864091008079482081528904937642698287646996867136700483153939748567019283840024057101744058412326181209471944401721453172245805018869387456811227017622821795918267788803794799576028764277251610233082416409041971199241252657920790427531766042703524092148343135281129306642306790647507579938808411390203107615919355561897944435965330007227775783544525865476443510398455694968053582525433803801585258635016687725537896949551117687760954365759114479382927272978988316340674472813401279672437599268287531455440861769976312395617097312884617451529719030541732091769047701548708633843377801122799933182162431109106189340535072524638822426511246189190779807247285105380248776480946330357372652109804909646844306568007988255600680994177501324794543089204458130041376721244260234831689118534293974715374876829547647579832956877980413520397564800400936037476298435515819670385443830282600945183772552557901986112841857467523036750737603173734485982835274211792468318428830336623253333075889398197175045290906550901605825396094637724005330084330164896176554224909300141343359848560275661129229783991587944168851001578174521963164301772837247453084241112948692050504502388250739287134476237617163060692391456637518898647691598081805095136999661287650525488758697054874232089231164256357010795400830312520718707491108445196121513982592799212636794247292913529469300309871902903459404444781478306026210139824351763294822179940214856761390999143747590055737735072997754882827025146574947641175855959438818481393436050406320312281116679605041643030868705229939056165156248958312528627326183769934983925285117510042675985489570036796574734742212958637352488699902665664258665572361295513788707767663629180454156179970030156153159241858375837852744652265958162601251112071523965082467295745365224193992806835946847755636272878766170384306025081199039317845051271000334110541502857738669348252589121712967522377683420696404904158732298297974083897049123299941930649780848517247862000194340207672132957532834182531814922161715625668325492213769350720487976713473362043622754257129954422252556746430290148325720971141464869721540080156162706819765795330034138036205927764999387334881891123478478957031502661281247645627192616806344800012448704180251544269594579394882362988352826287579964939890833649829946218159373315284544394573116585925299165112787129069534282192123690594106263939833156045832502853103985778682239482773266813323106284487838442727387921254162918720639654191053672430733421612904855165460873804566647685523780092890235873037575090916397486987428111249675745412079639906524309752532926591873486777233295490753089840827085354305048448611296543092922809165800184669657076280049362427218218057043289894411861384872026671256811735418358070994995099836470387009059884662159144008486562801832416369146647306347645527551675357968027219075791019310160343733723300588944426914035632791691729213812339148180890882970208609701777812232007810898617532810431974685273974357829340048177840259935641554231475536368818921182943594831743106916242813964265161679763688516050179834606463271581688307430226241934273695295710830090767414098684858172185614640575418828091639021332629365510371206083166272202257579442391255462177646498880381615694576944946762447620949468734576489682115229022223321039958668195106633389557683657368428639244674037242006132071178652418469188802140978792819139234664659671682869838202134956870083201518755734369224993589961476874157004366803657955543772268927363263508800153422712966622546221261512983282365223652130289295912084760071167197445346626869843074237570659515425717099314684568030506423487246487631460864305555971786470194338601572303327998133572468221148734145563365551845425963227481275834960883032588626759079637785870942992738271564523598688044987084911784482771505441310551097290337922745085492876773837132241488763354958249799608148033441364983877105264017296792422304688232828446968167414849273727097271026134883532409236872379041058107730311153037809383922729446320067455770970663252646935096884896796701962081649476111390700611518456677731761843407836954573522547408516154169468515979864174498997915427884822701637498404325653323144771919164092431805705604007809868893723328037230512326133070683717893407935635070354385212828179776849900113802349413627117447811729889479575627197112087641073269971528758674189163332733499330404685582227503142609888439780900861716135774607107322294117208305963507806573601607266474466244815545329510314822595921041292829553167496844561304112378612900146248661640951256153812609943500545889342862738726241817809368574403296096756331916923774838908983180923335910819908672779138526036958675923278156206778443512886438399440413494121603009436723951388797851607061905851099395253776932849269534240097218289193543275352545765233718312918540589698458404357396329113500701788498163874394751384761931974506546937214767056933256473910482597760380535023149487353972693079915247101902832119403030515940169975601998935732704497287001332778651667828628864912447280523132562102029763042627382178106493204958481723350108650383535592901685978441385578980103830479184027840109397610411468929548460288486802145359567762400641943992467982809663509137753760300671371612396495569483975577852837131959830000744653174441778496669551885710650837743271122259118411324725090823576636121489785442901336827630548924840475264244689405931858627642992671396169062679229578401277367465997309219956240162002126586225582068295121973786002777773412344249051649135560263194426501478695464936589177014806157352384518502802081415005259585638701976475109283827726386793989376213214079511598207215912263556984346626058104751476831398486754650223413403605055356970515372860142061768639265955102220548919858562579814958270778135598316894636125241377231758567607126767764208224684382726535786806205329247586513884551108102576448589019977910802600358096028546034558121521246632993469651251984559583224455789539705813255177514390602621761944473025537422468959141979836543243093060747160456125030172676915497663909577199172964062647717949402828676246512674789035295639957464742414563724757339085448035555527958873975279456275901625201829939245353952779563131971560001339056253761956225257347820511769979677159024294170898178952103661991857187652819931412842136512206004247107491084098483777233137999066179151049529177067579657458224121891930127656643270491475820448033199111418506486439264160259487682359942337660528689248200238763769984325094396721875575123140901924313507219478553847612826930179246422265339453866846747929633246780611733617111007611103306335693571264450815920521328124723675554967877118220730179963777679429155378926992467945440511658960247508045670163446954187501267848899946059855247275722592152134796043391903412392637360160121158992232252187000247634374410024115094585931701913394881756963236188314053490762178176154991547157741901840519282572492379554506478129903082626598292561484962337570347935743168813279367263529349783734271785785566155504941942925373036184546527065021643016646051527148703242515701724346878583768829001707092084923364244808302677288148338434554572023841353458039616373271675771616465662363996224986397293394294327392733472392849725335518127389254837086473548001128520673994897377112339108069522541048738829997975554191779244557918119041083319266052022386776464313541243639406461984160403198328151788283236458939880879855356985338074032376702358696384985249053412461142538316184392106220367602286747137911993499539327142057892016040566585873327698060263445508458365456488490395708250221604766699149264250588134446326928606371203461058863730101368207231890107766454365843216417312764547694975876632316964138310183757953163797818707824158595926018611289074274118016127078035857552949019885757244964015355270812980564328745461020910269267571539801656462468304382159554614892279975652480318585702782070508054358198514864427776896535470332520604353691168587090951729374472969561504753335014924303444438329064804641137314505431970251085303056032826055321169205150475131258189844425961392144810445342245249883830497518302075006116323893762322984482046321245095648844127049558718184533181253422157908888983270919175087491898351265175595605943163151076365623167145348454538395506853461335121690423506725429907955206287445615393812036082772469113468770253172407669865776921524903388482178495115155270421268354258426409257340495354796224128591257102666810062409269138494225726269589172260756329692107489721715306410547525070131860774597595657954394350225005655377175913444394431231280661345380394508716090760537649573627036903631940011324546607565085266654229206765870739563857561262766886193569871813395825939887553407033087702183400836384448968348641186237872489663561360748176219042170873791581949921312701064117583844960542747816857453484707350138437112753415224879958911759697581826060872519458109455015982717383368683289313830314258849643200087296366144780813202623604056035263444165380371765309459295553027162344531472412433905846081335217552026157182469465492398355353797271804809140353934547605984749822723594216214715861324568434251464387692930558645979810816967151069244377718655129603934196378491380369809599196419033802444888750459036594063441525297581634858226762938651073820424485004958125132241014175893659083077421073917156040597660104982090794888489147202925171880944451323562730281128120622906212028644211058347097468649727458057222479911488918412483856888232870515365571881818341090613029128895795860136528642719663200161789381507288834861815423963909330548625032605342613951646631225199247141399199506403248236951520427004039756142018313904302024292911261223560776352744787461368603931322181629073338837779649649077082795474458175221361535942669531001475375112838701570506001717407190946547742557453495646105462604615850590415769114313406090005018047900310494789646053973480226958871794894339795885214033890800841438845278330484945450119689543712033843979673562911007955770737978509161027686633674449056091144215848815246067522449118731272031132924878681512762605912916853842136174453132900331580016792385076638267070511740221085251576754256092276587690307821262844325115660152570290098868652982863783353685282363409105715895114856764994247255946738749624638306847365433269791589891043544721987556858478475508379587279366945754486349374815697856503997378204841839195103891827072365338029175112789533654932839199435230479112661535598377706634098288581474458747519032962104380240705616357402450338911847727885988764520787952560733031173643562985145768675983419002584901068699197170619849687714454059810051465581598460139345951121758064063782602827576217625571878692525989809319137355273720847970899312359438904089936705376500514243517934246184373384502036587003833547776568336649117612183043538277979292192605701492107572841142846326589479633315290656561562372986643280018671704935240243098276441496438898328245491961449390252522464267150818510853807008325688124094444872001039364709175459611988946264581218085621412137532315197576181523097392675637689413046674105651785189134591995628351730869803604255507712051511081973673184618375762427053239818352524383413532563406608999090668639964869991803227159448128097436450379254130988590714234473250915065195507716302585890478377368750739475764176874056345381619742021874062020543139599346970152203081658905261682068499262379877083179822432140635871013327025601778150964531299393565838918498326268744080650193868910453904671129152170621234268162564702022831817934176785646229353261119707899098010266759067493599761857111973408232680413688124208625186760500633542916214783031255195318147821043554734365083312996867657595071873095336214934703667303275745992876764731512224896099435069377812790692096676371587827746313813042470859739043999230023757706439914481820137822774860344176447677765258415994241516902805619842278406206626742054138803754670241672987865889740271074077891504538629015710716223159163543790495147404172485549382209235579798842421563365577072293296378569487983087686375235782165897452028866727240557702581200980312563175021432133083137782283402782101800923068365087439852843612516236209940950420950892818793521526204924529380190246160171997299777218044627437237779743676246459456022103638350784043100458703339659370799129434640733917820806186780040220795962312203741084568341157795847130081884422930105918393229684094040776801074410215727876110428450265087621154443796218693185364832603837166735862348337867334942119715824036836292270890369071582634662652522045874291523567709472733245230177779953952143188159087210954683176819001407319581552156735037502788213996255715958545980667288839858112508864200699117199951609039285336530614738721318480791797080506713091556109547706900859683735158196752513825349062336412352795290743837884876208148881606767896601208573523548727704197044182645527646797703679613105543328385820286753903138546511820948418290827662980510248091557655352621825206783735706615389175079506245902652164339167808340359260086129755805918855507914015915390076878400067670872573247047537620590503819524643852921700498373311222043430781734602966552906699315751283979083074754447125868808940541351274550633068983898514038565112411636878491461966595372788249229946854690702312905422162745861617144604366057295557296009834643791096041281951822771081647394875846973611464074532983628780719095598630735682565573886489400546814686477851925605533605914497409866953772761119340286774076837170858937778143738174035134626107254117861057728141623346247023065969659843435438859319056991841595841889453194524123535686031007629225054510697271880745786623750267204241806701255002645123225788341423766657170404650089975532993926048369267294746557131922701957371781886095233802805620692012494425842802083863556438038680159832425202383296297669261578896073615539754579583684590680547133221262116491751892508737714137714384243234653368663793937599362896133300542555031714291545594594203332758999646303989572331055335194923060664441310650559811401527654220297496267099124979938849203770960081817356707632970935580856650966092356838725943892369818946225190266930464956587673570478989411244990883532896639163147356366684885803334737214114059176513642321031752531196845228103382380850078440383732504143787998670281687105383010503447974286579567725803435983166172132485964221736644212425599636825691585977506763611619593485074359722405127461773894476416777257955599766482978862523795736671004014799510125874765917510301668094257897997775716094652596234961650747224665154978142738298226201648769225907314070618757975701024997955917803694909517840472096232813504440288298634038765075676101956345701869220600190835755381211091057514559373111292315160756023623782266638538480350921437161206652438408923704686187204098049441770258225889369500080602972918154309114515482845296049709266199594502393223388097651524094410444708586899586625185033710644238393313903523833540723866306306154256780064839777478815355474565606645367686614819215536278053674064514881003355530261086402076960402295075631273716337477492180550002215860674935523143023346308678335871816577336942362226432261331167209151476471304545317695010511035124206968656724100052259441731998394464331675291520022566346764113451301043409793529253023429564679089830422011612241774756782108179262580372542097362704293084621345903304038156750288268749499124602496233728811494537978945865645206950562987353101056929801939105665141321180925762880824630039504945421832757921959309933930286111062394464305492178300775478926696180956892510543003116184871648927815890873234398109451742498171533217935253210589585592388446080700553392709789551743126888298565617315742865703181916475369973793856433122050958625394256867091690774335319100660236564308577299460823821799529418104455574501797377179678433843082512644948382227878858515337838403366858589904500115857740987581800178252018644132601458884907131831858811900812447825315698677923140677022575804149069311299090998018083494570526014184859452581800975796364589410649308239650128049081863054169093019974260229638031563633122034492437863444313565161508177216046987051118208002329393688146487123384865986867603843811386881688913514904816703631092498541779070191152521338924590382905244553668363837471134872156500928257355099383772259757400118343705418421877304119846074641788913426830442946198170503802519296909091707061429974117212279494756158170452397300786648545571439240283182793484631482676918984661446603769399555015106119252346574914822453318499049017512906358610812804791319367614327168098762608251425685643160920460490928614988096073806461712974224142011465758581366101372519529302112494905528771464831623746654057321483400205326857997653264762561831370396629446515231428408488661888739284254810051416983815943128048210141892942732212237506821542763357072269176722164909007868958079018641605331671805354723038234913413140536089324985240539586330210263933927144001338498592791807182591667624534729439403663844780252909216807072086143215134980424796009560266136623532279636460829569213161481912407713015381616307135456099538549046939802539018950243480004305020336129738168242409397453020607087631471793262770944550490134664679828186187739349070110546601279952172902043694592124247706515911499814559134340454412147938795422748613209242129077666459842748341948812893492154676395477129066789223152518668834677479182270096107593751423315131746445226932169646228730984721515342136459596858014491166350886726858783520010913833941844594441398178943845074850049458765876780627629936048245311817826268315557902733921097483235599222605785773816475453613899839919105892946891948330246900027597593012188563662351896803404716628956496287093661207347290507396964540272309141100885155079046617841785481993267561421610842056546584735763630208975340426939786613650692481888149262645906820571281710014348313610500388669401706848946103621716069634308563028200130814584424679616313935331023366897874512615609664391714101662160564204920954465138572892934591920201427621372633340552774248747441955442258369512551946853759135504721537362578047847038799322969369015778036984762536048582936884231507213759165537774960274672055606573258914170184749396643712115158328480705290215645556932805555244787699526111030894017970055676884938878820076427194587985529273448923233875018661966754584525861762881625190968165079465518631819063865797034058616855620933360776381533648417861886251582454475605716690221055263562231634930847901037092723976953632718141020180927985478119085114440357135979791369406595869148187514261042642810629519435285207038172399849166539706338084346669488498019151437739871355727317209779069388996249726564732129209047477322892140435373889571982638382409836271457809039823082485478467436425396008322002550955451518955141083664125532887719740140089488847629089702957266448580869115796702502369520380669297850087331637849831912214638165667813595186291457042267176057456137409218490617100553938586060974031715987814373713972745772593312285318472950918827556674770189107590783157788593911807488926454288254216476150171898387394499044379813115318658246938387878373573846164089525924231520782554940094598864996141371672486611172993085223727968755580164468302456806283650547077377812803221993225085657688738688850316745636872259972533536086855721351065634446704861238725172894332300628023989240751971974217125846566528517519839591974987894631099965149820236635255827713255799798971071530808217958325651895796251418637334244398157645087433794911161853991824840089062961249456011660458350381332518681492649507134638350762459439745144052198803514448103143777837932988795007340500765791456663177581807297003207137648483368964781671025719215359552200489036868307785150946691791495958224705210627541705973989622346259465716186934680035349700067286743110673061503203582789198475425903178392437558903071501570466917737116237546250201534475682405622887923173318254872332092971365369351155981359273586046927661647475946038233478761626091010343898050193749968773007373590901684608784094794892574630065084388420360670071721500145749379316774394723454913081210773820798989635168746507632406889764841126987264202258738222057948560224917401854033202576747535822127598988253064052420839344595888339990171947070272615726805970724683088277297784429590532008998739541441794420877320338801007544184144163625030994569768194721107433912369247725491758450103551155375124245784241342070291246444109939271402366579583471586281948734529816876625916990637004485569004015283861335155184062691298535483226169394373219895285101887761968338327248035918958470827556145528367416096969483249072410081820467519423022176742512816236516458366529079318204366933720105787252401379225909883307385538771490117767448825543533374433105560511867712150710647768199069077467950774217072419596936111229668279210967070405345337940709455720741766024641481873395654400750215548831422746802691939230345647727820038236644154922929509351739984100813099493883190632989189494996501262428962040813045427675409324261156248340141825334612825641777866130245835228264135095498750405258994867653021421001916536233771710841381269652603760796311938125252370603429983022086081223527473829525036037991962730872242352573014362156951963000150557233139151475342531065312141465191746135511860118948556294434072552914203099050728799746772773432588973315800329793198268524985034748052213118241911446509672660754691815938307420789353242538149472185161366443733287220722128546705685106161559061870776025208570820752846429551846142022730019289841008995422399269535602708350171794825852511395016603679179844561422866932115786215537015080174140278414456094394641001583866746930111889336312729332630038714346090489453912959048244202284138035369982659815166799964091399959445272160389445425724150502511579581529819681460446378396817001407731500513888511007606532879925677112208519799600898258491858738248295229792709936854632940583105601269203089087988751719629176156944795529955140893352508769126050930182222950055308676327244115510759006906769742398029016686217183770167236838110072761508164542372606296505227714005583763991573966882913753799432401592228462594224138130014941580512736000419514521431124966571688385160105614391927834640882578997158985080952916834716584249223761755463407443371961512733845093215163207724813200077449918236936544993337725341296396850663029271719948410756236772869129972374800916663848397009046766653717726059479474871983948761113728353412863064402943588755514198282660865401464332387960518773996908572509746429057639177346478967879886200680908019454205970112209876760071489585771600829939021762051164558451306989905156762526651856165373083565701126736384723796812855226137201239053268634627591909869788725991113107297200797886699372609462959785528404153903791610526486732703704270837454823685511988151750219453847829826343139914382653812125169833121447704528787357754653754695715069703261487428404367545906186468315415268523613483498367443199020753708368678693896994585524300769762006778939205665966714762388973919285956234130657601251263990257347972392759534278695956726475809900259814547572861359585878980259481822513327344259729925338929764402080366982355154085589391933436569875273241414227528065921525281582516804585384319002925560789884369823855154374767264247948300494604761149081797461478663279682197768527827074910158120780347126191419718057894262460454644827317389095420259029348453483426716271309050716262289657442688973533243456038720264895506889484725465190606483122215660255213982944697747400340850853288436847418426641808090690826376258380855591360590694215640535347417990684742313078532718093792779716430908452849079090365515747266325821307799023231981333875466211586012167642086803000269754785798416401530581688835034550657242328879803808748002158549181984347921353273553693375759197257387530187929562890883416573829808551930639430807309594843206631289618660594141396196597117155205921049702526495571062347840883329654393538806156360015194018231649106056068032819444770796087707782114625505652454818418181686989553336114257939012673143536421350886377213348982251160129934412458711331446097953335307587823367759707144493624535937462094391372273665331424102777560266121459228090009424518576922614524417365101746653714694183716475932751245914771287491737169286121142331060603988529929154091280098823584195554050170458768904716848911590199229435628667286473669517175604655206103045574530577045840241782217573564643615389924336607023878725997290619008708359317016771391444437231983969330150931399016653328677522761638579888272940294897525343846866994750254957583447235029483107189432456009566786560851422712201145715839326938043915076968464034683500434850089441417428853432298567065816299586926336570309821090889034846364965979954942801191837450369110183232254028139741796637431532082190324753659042074456147894487419824480424091657671762919608463870854989308220390098052033123758036183590119816395587440937212303099717138267392021089968176639989295046820523025959627088324273664350455107107932519220993443357006080017120218761076721394030363031142615667993292997418150869264827778038603982237646680495220180524967362277720948854960637867809748863782508496388750047946934275648392607369460121102742804114255101875582281299796642284574997877692532707874682639713222242098218559823028442063569680170589409147659313344321574281920164346161073011307066391433815263931221163652616392508844285663489775383480667039279599697359715676877646041395357810428781804512394697667994498145801713723176870688089114277004702554790539536375055082740963730947174586695153777406142454743172435351729785151919142465459366023597276593906568692152769971318259442480590003223882000061347175993688447230792685077086272502255976149845330278573919442640362105077980003976457808848195768278469968962743972298466756367069173553329936448302617596927679788602869789614489279477190006395465788531936539141305220617525102063316057453636626188317039969606476995259258866576343942719722976580053433919841073215392540415639065253029328645803806144944739806319415779732390998748942208952236634260297889653801943909041566851532991358988180091673064102274232490313093886336294921977873403308847442132985059731833660653616914379676860154870480272779336737568415706900729008050096674361477393988955317329347797341414450233696005728283320617115381665990110262168491562597910299842280848020179685837397880462579904295985297688789591336060963233317737302660058545467296747202325952066951462316663270778246178712434885377435668462484466843066124259580086175349642761015865907856176569683282701940195121186601640596326976597039980891153411765011436670706785229817464472011544157299817127406895660809742427656329072463815818569815864788958506902220563658593558961469231715045751301163468001577556928053533610872585317940000590445853856314437130892440743116627213765854683036073460686257406446670447962609201185103441451551869335724593439072886627985469246582173538549015746055760024680596123352200911197965074396435818315880110750086263408948982897879907019112193908884572054284229417059764385176101070137473112966126077485061283131975241221641336237665040423116508675725227653810596717672235772957731530257873925892149810617132880007090824268310809279164467227879706200999428944675674831521026201271431206083958139262977343304061475153801791354654024973928841161016264956996044763560059321866390763862750186623118069136522946896906814382254384699668742111158145992281436821015082530495787637636986271259609859828400313586024328788168027254419590281711774763276000206093855867864673841207453378838047143661878060670838269648123257624402696253702181075221105357091852143666359687954584448601361658740127698909853004188347878870823226020919765208960944265723906654142863081157546331096551117828929977721591476242493978725720088188001678557682173473925525877613213151836524460820928305039547069323093178025285417140313541310312872992805521738730838993112976302294594558338104978070094992749521510923501346128496378101700395217929618856160639751139572288773921440605792875513116079141101385972569687455860544936737268404132947431072075574731284031581064928278034429884593980794274229366709448345534296318308743030424137219781660252433853085668424191862283711689840397775146138442630407928793181749153385808053902016160166035451624164431502769652586130252932158126027555940459506023622280820158297537674416272030581576325847928823284621068867903926728157406276434185045281101019667707867139628350611214451579478277298989899781085050975651924728588149280445841469474527335907495208522111774685738817310840740503134755258548469503277619869974527623739437062418119200668910308754863960321654973195463527277621605034241909168373085660186241920309299826385666082101889711934353939194364735802545468014317252605921614703753243629290556687475518783530720693139102954541188616326657453861412379419215358475589076866924606362363626007654080505136632111068635293570257149275666191604334029615258071155909144385763454036318263201931666730773885707165069734033702386351515381644734187239060833761474547650419722423476562474575378351391469674896371372434114349171100541896538325229032503899258810577886067379544470477693336082390808389093497531552885354844418205258684016925966200100492460764738875486294977108896196775974218568039916580335318703541576098383016525120930958648735115654084245375517148190598800579758911400846819262040175867077925103073683638494373601957958546972155665219952730355763200642631227261918403546196275231770240006003026355620093968900481401128237218306432701930013292568960427617679490270013085300930821515541289300527711818766616675200062205867838799413861213107592732726331744746828168982522181364496088268584689705394350574592968861224923270470342993956406026897119493916149573355043825459995325979688454268763678803527923452629969067987227028287117044080538719885227844346248659490290323775690747126772708977633917064090493397428680637083117594625914066960933456236036751724961195748533053144981511679762741077951342722749269390430639116840260353856290652927544118582599423591336518645388945997004333163689210082326707617962101084782890249189769024841062059662249495080513435025117264398281526997892778478334275051857379071557262709741996023956205949613587221063173381092579412401977155918723608371861323265598511104722043572467243899068634977439204570434919439487368260359318668906709192431618337420296002725880182330257811822325405061144781884740367997519668507432678061435681448474999890908859439622433229389706743559777859612756839105038462059542841873997270304992052181106734925059282629607164969054617187106257585589819120028135769405174866573654807680597552842881258426236090242463420130690289911402501995869581876108424282970031002658146445633730681293402264947135784598865797746968527101494401697133400971032638364146625261344775172028387943222320064364003575540337925947118517806154451490049598430791255561280400024789920033507703228818561161534024761761665223354820665375180789252136325107118733433662188159372416500193525604187362537513480961911879427654756503149011634106848332213235620920656632675441548538939922976605946007246718562575523387935583354888165568506305230309543223891539770501175342029090998036502155184571041678482615498951223092118023354972429531083173774424668803569665748482749849495319493090177849034164413771275373953352636716752258586681542860831165576943084187120890395852244571497691819116828730427069260407520186143227141887998669566382327437540753452197253098681113009017549141264525821669791117423870352127307253913038569083808693435724673979097636707562748209569516752929341397343069986361317376962593167367489271380636945486535362256545263898384810998599430344360446522539673335292747343470830900702479652638380728525883496069011460602583041793559113089544302041196281178598406688508202405230772590405323142358659119693385893656617693241051811490524286724339343056734741041776795692189785447113293558028173779874659260764225457345414001472200838470252407542440809646914258817077462115136032669689898720749830189327674704046659236089418900418431732894473208027220485726916447895515086303731522679340331267312587030630633656189131964774461001685226318196318875815951752904039953688369754585203318378994944510821003980407955560661128936285898907894970583562674284771508471805111724616071896619179106556161704391723131673450573300865981473951779624814119646587912053280555734347720188725281237300473362260490318156874014756833670658317368284648868160863554876366598040706332654618809678951378518207082370562014111895085619014207914389267491567162820090524287133034974559965844154987961022390548042512582036071987861760108395121711331752419130460330201157565809471080365123719030324034276658558944068753518574013561579501947740062799868503313716240450665267952634324342981878465433460509712515480740408475976059994521336960920788409982992160838641678895702945490685432972166574371951559530750173790940634070552591578305752554924987480036795710869993160467934587911786600194098754663356914826979343594468472866000771447411906146640340261031586084983642075845198393974946052812155956356989584584538477157879836908296443507800591814602142458223818834595505661536037603374969951673260646878217015283182984704466693341908163448544136105619277577565729316744197387345273198729696962776617067078526841478539791728915857522044952594763013019255325932092772210053489738963175201658469513036198771361729372671364077032871369382899065855123379317339041958277071682953948463701544244575796863872949316716843471352910476257627521266744615732498618070436242335218045911563644385439079463518223721363382790302107537348892618281384243887135064409543047808221509220655413872212333943262443698838537217693807986822483963364132620834349136070545341412784296334147508394914349724077818141325358501253132363756708177981986895030182287646634035272974759982121966200539417512578225430768451141504048011605930611817681090327585221052465624208946781826642118766995603926201634466828814154305752925640673897300989071757200051914455267431623387125308537317506389033922956018039241529274754494902887361627885404752706067473761092057117197478500603255675864272677198397806823756573756903498761199549328567029133724685983087179570282274303582594357286123151341626838650230904329472345147995993729226440778940350941068888339270750515231901749270742946752631108296019293553157100840018141877220099812391118782816429942151812568502234061766343810612929404322561933176362029087887251436350373448302319487105566670746787707899702577043307967798037239279432046627203385886594353141921912825996805588690273082144418905903653827844468944212632491514192824554729349746637419863744680714278565056915540675059139811000428623335380954563870171295087241920478081574601356646327191041339127108311974285764604899609975418590826759131412182259410298612821992219146917023361679502234589555227600371756921174616486783299165357567083952464368582546644599325070707252881259458225629168504744994328314775232425091233403656352029773789518217143476716365569727400391133300422484891677597199655525740254319421092082877993038000039437589733043150227333704595431489551955302773443106941315982452713234576467281561292051159558833373375601023685487008918228804545966667912868453399840063003215588234830336709113510373822167950490003909837859381338494278233718445904992428171856382896730985064462543568643079532618689502670634102706423018168523516489862621579839173696915184366452072021535198807025125415032837070745912002688384571425329767718758474591561149765832148480734240035631927905439675492011951533825402998752301951082769748833290161232773335977217687734883495362253094083565317597365470219524561379321487301589960818561597521326904298306709788914353235609080172944518935473044600106822496469031308644986131125952951360183157246497577956915502065810842448030082136877720875205714360682371670586889321541596607573919664870109925447353602143999137678123382033613832211127224527238247304866223166387064403486005358804225817901243295522872860301600009101098963605912413185193938308093551847137123446497511235476708462014200726754122240320357143911624015913587472477455910041195573191256300003972485080857732434918951264658537092369766864485179130706576316543308142732661533232895780429007580008314308882779034498777127794485013242560168954653574287484772992129313791537159298579387628655059149241170167717323139252636376085189974506212320499415513599709904534490275043206557890195657347909940518252538545525580560210797997561799419336594300352032316655785441688495388301100334888564061689014345541481623211430620030473543511249498540292329176811312858028785181280124282678505641949709975188653333913702573906070995203923383050077414237134952723118839764241222899954689201572385981697747988335193312466789123065951576078114366958274925567014515757576082008105744791447262477040610104999044278586261795317700572868651896691466332423500040411280123941325656905743990782841243463748599191028297846699679566552873106273784617295757824664706738689701906807899669143501398486925571101429647228610221049344735940641423610957977663613604677982029407459430460670967702247920460660592736131906642572307548331610310452994315542807032235273232599339628856852354462594699310841840806251054697751439563987331644603920244747053549013289465225379182406515301440304981031058870427387428154297030071886899781771944042255564450754787182776588959083439192309225341795894572147383031844522967502626257981335873663229082157237486645253803186086822942687047066680209009737687384467540015972447006903207166256209960155583846181026210852495398889044308134273241114393046602499385346513882522882161112081124387468263209919133331685383374527153727345876172654328281859902101181991301560180566858106726157074090816008286209402069264043581652896578785777783563340764774492538994136996508170977467295139104035982810859795006099775008215220109232503844292286450229715101801459364718500103200507839864334625335714567421253697653362362025385132732461510556070827083872164407398178876417464722503799700580144382950892074029571227114588628355944562068453651051829558270675555061415314661457440463388372483108574183609076934051974693626728633495764828889413373124694748833566956322394062149260536450950065522442373192301984650792335213151319260728147921918308135791049150519749384327009329000327834570390229705576468284280805855721547708092388801357591729746170581713882219306024861692254875639145465621591161873124533423778759927043591743339969554895482808108227146670756570030840737643257495278020942481096445602697665828912305935346557251202551444355142708937387499367342949154389630997717485820416202327400668269415017993884562621065914605644250541009420682231558126201759778515997111685784978447943966043622783256607293229335496512689789610913865514118897525092215532389543478382145504381784944928547103492465337926811358846609507728902322224486827008679987463247206817115246705224652932609958325574472232879807031866315901747187113924200343097341965954328617323418906079971804034031084493386895099244872841694833959623401752531683748953623893380356860255799287263582442221904232948162611796694520559679026441226387469583577866690406086245376887668078829003220407877776216833608456107724535641742670228404070850926547992135180871314357095877129930137385155913053761176752429096773928553607294419528399844910798479203003721881637735857426660214617217810007609218697200303203523812641928347282024083978418336048513859963008534608987524687390054434428553038738051198059152326080787947257453440826914819546551261507476096677195639521729314506648064247944218492520785396955727765496785439752678452834147585977329558456637512669509411140412937128971615433770859430862530837036452567772794013432437703777353602834866323102023592992283852486107976637279570553500113087169480680870603791742207707990113426539924721179506194064712334701299123882136656113372123695515576956242870741433301335438807953639700515862546572254463776596649342289067405248414630713270181736681783005588424208520039708754869411322587658084997384164656172228676455801181833552070440764855556539204015435075375978073680356447453588125932631545147121837990463906421455591558840559635073153084007865204420006717483069894329907086951115870090515358922441708307311531965806051386898143488366403755262160999474367843808481187450654239373192833249436678368346889241931919370075007781007831510326870215567211223240683404378051430801817178857262491339463542835650669953978683016090811988883577219261863478047311591714475130756696395252710616186400104233360725970021856416486251890068454099579328798877867612672467403461455873621163543455232404073970220096266985113224223320116699614022789934766044325605267914346762066354008711521857002993457878304596662435084847433230722929595536891336222673747174913836946062596112302979307343250529978526523589062949064616492651735486675019629922361445891227538933904670272840951257387105893507713847601543237827659993976392271815924477969809360396169437264877447581539047942988783915785093145095682100087841975966500593001784491189645777497129220004858701849049502446056683146739021638766906093501400854014765630189674947720101876750798218977937672245085857580901139763684877991891068123309498251961686430339286848019931599749922612923186537053442521999094572679098839968965025392374588893082971161291491708540552700868301772230782568758758903679360738323879119056287594436142723209866228680134019860029451454084763022575160275380739506729179781326811142489859076891114914027742444176436378778897447316532261750629642931314848762758054819036164360089846940206441389102034912830784935770989182689625241959045363154947646975054000496454993623472457041623642087039044668878810570156205031023512816786592123758594618353111673593516416265628791921026163429767325663119248196804065342314433711435246448041678942199577269965536588180387555586447136255812186066091593255385032488671665073790257717305942825187867110474213410304124847933526149443099462249522343812502239258504759566808228605732102975019642432237944216946239731041544511087829253219900169793808255932407069687057009920709991085817107240458721870326760459308399099729028753921833073166665745888350209506779635504632471368377279913309341147132718997323522455291352890337734460762531547219948441011265144777917332232940970820875848314638512200122000454567219617236288209023419173869400117831666996154835042186892354902222010433667102485690734669707964387482573414776259875241067878683732456238201827166453077834493444944461453741963438751695527454081322922642048601249634688602677860222795956077814029205203263681888229715246955111137456110364694362397296592771560563476767610537281240076037622445307069683857359459215163286644465023151286380423249662137388931893536972953212473428383020107978325972169299158331697117180327994500031520521377608273429002103742006403347888332691240571324458390966184104276447053444537275512257718145479428305410545628082961577346310287963236958032891520870955859311342707784573210866131588856303837611287722510775326021387602264968124291695734503311596483540245052439305673207698564968773863791351375349873736439733785579928359897076303548692510778624345372274188215223465069928175940366410906777368103582418909392726036576810609229407580119599214565884656479455894447076521484268625068692106016285218619131448873928688587018136685542701552691553589161815423513525495736983273884035266170704138112986570728664796266360341620283529736006079960707220863509623677466244305228085471414714340021743625355218588454852480536960204146153922863681852787388713120340571171454761963439004033727164886523091479205576749234869955933304704063684094021603696839549639468194717158871309059708953877437373965743980803249227427479702758936461645447765853675820679584456196777077430968750797287012427664822073054921842872186551585464862399645051036320832092361501909345489202861450871771483156721150224462759369078019187858525633770052368404862740264237755082766924791917275773949256295947305104590879031618556174124426690168124651545919675262642936286791229096034310678514508293690497497635650985729543900399533596879597699639664174523566496906456519120270774771786786559014464524994461804748933805973654450074772611221043339934868338739311239781354912485966410592677791638891386349960141625352216731312735905650822251843882665113921885580534313573015297256535245460147178293984338477588057824137969177486167101609729060808197935627048430369445585500820005125005172160346269217784241877105534726788756790338647034160878038381041598321094522087649822701397964160221658140105742899300852563808020524299850310701798678309918507573195466058706802048553919727126852954814874292044009858976549892348680252441209475511775775606038604599770129286229882457156735804946581855347149771608541296963817861876118225205903894149662545574583981862920476879986996943504706830523849976817750964230328712131533817589415321626571185809019239630558289630418746370545517458828890954595271243790440959949623968768503384185126399231649623802830507057227762788802095784654441115030674170703349655219696710853142130227752290837577205254759389986515949452659216579078271472640252293907139202729354806577376575545360977021269413220628225970389911851647163385851634973560154419558859798768435950282438795079557114214236473913217811168230837319028340729485841749590826212723079709108315256360994344070820309991828598914969443843407485967375536543474439090545085682459503671237999059357618859094087180878210912590879604160096022551705179057112110653517231150509437596490361916157367829475883668273957070506020827075161505574929034757831132397133144361403468796252589553586281135193823815992615375511924680015920786283325931464595491879775436661180509340824801430294653841593962902890056627261160075406824126730316415573296493361778349945429238299346004354252376058141985674511470884011967046874213297237751977932834014866915228610874360141826429452258799137852141512381886815123877812977018997057320470949433615353742724712246926505540538613009167491591603222542385768549041505852921657655519037483695874983341351867436000835678823927078397630457780467464136324272338984586960850583778510866552862914139089887208410081817344124232164233363547294463982083849506310426707872281492624475273676056260135134026392398625077306088912144654528189177713514423383635194418805776345356605913170299085686387275345141527607601988966968286235889856168583946857100925048294999071409199762774626674619521513034594007585117389402169773635339588079898133529862833277856722175489020596465134999191689052909231398439658472059151856804942138653199572348001617601295156289865685509551547858215729086301536231661590964207787857056122522086095821907305465726130456747955928766158338382250454141854188308580554174967558725021306890702714921834705562972613506106798381400065999541649068010386339151500002331489447589648363960779548699663228381208412484302980013892387359089113347567023197293911658438365214163169029835569216972402728642188108646231705375305699028392149631141204654158536455595428982494609292902672036363892568222335361679079700938628824160165697988034020660035309844606027409930946560905289239520828155078357111508983790746587701633582768864822229556083040739290769935568355731239593948885538911803942994116051954020478344587689987612361240654696455989274640875937739265465443557798310038999414183535466805842560587899552407979578909271563934420312421548748265033220076432154195825307114635314475935692045692464997788960609481349565173380846302612851936564836896802893640335271759459775019738029476142095766854655211531205312752614560020648638231901058029527133785616153974566943003443105415351192767334280459798361141777315521492316265834263278503893727088739734466594782771367978446015676625571967090486988788038045704753952539529313962717879391514100334356808081485836379911967974495284118027290503416769329307122509001509073758120540233987175210437139157874038196845285439861461829241091609674512155545400413903980373180971646396274598770416209575008371352173496795874390377161419511242819108681753423334551406234996632152786083677025256125029016321831468362093153423861874366445734040576036516310310881973087121617560319056283560626895878132062993372569742703987870207494386094354085480198780179523998701965038506721003151916995540110103916138802812449435978280858224804877254990594767059363502569661351995886740929096930273146171181486787241112472288234952499567928462359409185887611458144857508953035067612080776437288314558437071965327775653956265265733057363788151272959610781949907986329622706576895666197030776225924603602984565904600122313103304371417878562009440520650104433758635285783621143011619321382719625714856526807774558274753085857775093897510368252621149046513717379446882893192462246618226898257161242790699118149326945783700104832650561904844850679693619746019654866565874527997643406488210157119255172537443914445038790159723669427453634407490143566731710997351202567199519003591446512913856530452994643839993208163524758105363925077565959102629700078412478185773002065286100593104848808900489668631177047886987449270349580166446089676424726972038301048344776032233509840860644463588820636221749086459837276740451081972858237648001857161573717154523509039160731616951445437151224838866935495606365374107137692838165992026387302303055978868315963139842724083315478212039783307549500433621684923004151115679193039549935704138750732289186887750198834686800172452472611118581924995944981129350142883956214051438288514021151350865707756358154931098637206625401639217533562132120025579072505017031047801236177250858582254650756105425742727693202803741610534629221603085231232198304904728683988395936684278453228176027326301594357082483049538300491373102617435298191606024796401016952254004875343145287483807999138028049561273495548906118319347201465984331310430955591113538307278811117406175424807340628153176878247582909129697540496781391764631740102684938716577427400093063883513952689709861312239098880989535980854918486779534756168338819441715905980333258201438660270083077628486682033287526696281970536648249677782837428550535289441355213256928867269117150065372067758501845364387272989358451898283496546504192601308591726965461775334886793013695526360639930783960458760635575532207006127322818096279806549327268145868969819523864282001254625052959700883321715609668828778365702837589621470846060240902218715662299495067734426714141716449232513702283074690451187747773827003560527009259475110596131815466458058341323115964554108816380920672670430584268509456380731446294991046576106867739098440687285297526001460120498449065576716853650523669905079221117710126960924074833847160027880369476003468883977742907234096293615637880686389630093465310151702623663643453390333564253339705954111836107842960533888116030207140825360689023026186101198089539399247144600793583449408745260783529728743724439820868608096597652595721681631342330431821416772702340802198818617323481600599487346538502848340939444474182539758296711022149931766232206266902680916992621628999442488172159656254005243307164178354014902399340792828848587689754869514207173415724139842755252121396129000882563018861654503151780383629272952223239394600485177994149478353620179672637153561205112849895745142634439830934361709217142600902819209642877316791964546101820758919208010079498386381514292768160403587158292814312135085209496389862889764710806976435411291744334989598408621182733970906779901209312196495767702629942672442914534195042412783723506513597482197489662450823237076221223659049207543283753109286670334738818856598177913752388991607032597070767748058563366296412573952326412397081034659722693198029010117664799548055695545378804234550550349324789863936012987933301576635452387038373938661553749537113541089929274776036841277047180655060302336538800515252943921614697072760160719301964009085785091394567616947537018243210115218380573378569797250237898671189104876211119150221132144317488711292982729468198184255165861805909605237421027571775954199142940256776036517085769299728330360782174270625683486015679769847062148615771555961374146627109826124076148732823731701315827533839067337727280826709858460951173272420640312625663087810118696012350392614813053719117233344361755334444595024999986043239555817580971433153990285825664581675884800743110240857014231398662822087488304931193842904387473566503172643924730095843625693042132102232842176104027695468187023042604648297635963795854913018976714371219645774828588398316652514168797987517491791290332403387922543086802853417977374417899323861391561025576573579567796591086317361741843176202429106542394802520145147165820311003663656678262619687146124154820059503805545404885294986345522865920854603291979283974316088064395469864670736627663092813674347528408628375699769779041138127635345606143246978454009079417725675802574375369358549482521960696304108739917563399794083247627296361358281977812570536179894027319519876409412663802503563537934607996865923130091471703437302323345765372461841359697811854067600625544682529127258940225590088742477469154819159862818665292490514750130525113127993823836978715187727757002698707280470815364267113406928031777352570232183263132155640378074469685653488728420595764518426757418881412921881791388423448689275841131117126956049290389743679676556476881027232377343266330372580519380318895165353417666125431663042422876093146057328658178222794229268243415580456781813405734274243687419539877576022692983498345494398682820686834996807641300595060084565858158155525464054675878693222130811846906234437240756241447147626398909268244780969802833438854748145151634168296458140022378193924233980947121610141697817820386338652959506544814428271158182733626021402005366634446373322448405080626868746035721787889685772225169095911363084556067051390884780409030518512237138236422533062992560716481239904011768390728504263567695511516069134915893900962588674647786845715301839326452737370722898633031607593303748776267734795803519302715910065100410075520872283078088354973075629713147051902799285346093572354077746875725392733204975675118383246959707534211944543248154374796604304792083423595913305197161237860073146238540043859258878041513187032699636270259739875708993171591354342291233416017365020457725403304658129136635447923104381526051522105286313662059266146374521092250871012324075784235065371183980748217169824304993849345840655451941847509949192402855930079878774988484768603748418210338940879635020422311567876446792324008959920089235813098140312046241974814794785176601989092480499765890248921241794092975123268103109788869716749747018237371560343011720600401214853597978708061614734212205394417860925556293779241781465629181034769675837693959737050619464863635343009340359433346217813483502564082391555468477734664847471389368263690810863592963892925512243993534992473108202960171492410447837609132722390059289281213112064673568806565870444376324519392342338292454387724938794448742103608785926438432094235692407233662729841637911621058528114097458174239659743092572933212904177701342808846912697585149458643043194232753546989553082534526902707705951337414573461836667270498049756218309197954142165672804048765482928645726893595130648033621409391988060558255328123536348322302239980273310320405697920425257497178149575435045625742454488527392532468230063258162457817659241719262011653200402370165246099638543240493779838675072605290194050080375647587387425797877200493912190485365342798745660064835837021362863740940035856238984588976843778357630909996795339600116008294917516830002681451220278825642969808382807984983544029143186173459656451709959231902018707509735633972542561781220539883603422962846310221829385347427591992687549868426276957097269473892646560154638586854029487604437594996723846842231013672075128166123077589322413402733635944875979512358069173742078033333074649240702613343052738868314189529012344682264129084768246501858220553679158652525017326697073742979795199776986815410114998527768239431910229808796268596517954208447752240752994973101485688369952737300534553841320460050044571992687813912855990818251854708160700260587390846140131240114573369794156381664142828693421217771889374581384603046979786037364488868442625133170115023139971280592407377247159762225219205263934679302539652428713720306586869347672602288359128778573109417483844582238615118383632114601539504775115212546609826772289904749771278846473498317022503201601341263271002964906142096505638533503606084940456529999096168648231451121205576554500472569613018577797451172171218742475176009045711384404383193133219416229718415233059802976269314379360297173156643408818675814578877681921089090682999405439706151100522259239640076787893568676930802091737377109808705410238967246988607723876233106922020355778531327848741948285012960747264600617734090469283046039533276007842114687905219932521045542685083964809114073793356509681535064755739843478899192962794851396102206958520053983801322872207335803048068511795709417557836687083105363774399660485396603347432673862401181752127173201745833662895182076575915795917509106040146239601380527985209419710647906943948797030779796412490276154084704701831089612422476692890995236505524249971537821605493243077272285643333936718359298683011651754793175042491865610241423953499506049464763016535768296658188838880470566015089435491021022461514794460277828522481304103686248063856717465898288616183457070592202450289202602020163033985419025249981527487871007663245139212090301718440589398798832876938553071308879694562776190097063322259304159617370094783868728438853870751485682941323698444453937789346687588221234989073948017005664483025186421894320521237502393947230325884950003049062876879000694178364351480214859379513384025848998934464107931619911564540172437084656015531077797738246760751009626921066397979381263474072755101871611505782478411432418203636727236444668757788257474596387388621404741502780008260356564603069686695381488034981225566858234087911769659350202754742051661092536530100912815854819671318061899291054707653933223253497580356199272516347160906626597181432384750056670361886027391774522237401356830563177313932112835900126013439172424233048813080628026160036573233481731485317549581556451409653564094784738449143753151419069374199676258172895429052275781230296375547045788697336624755375329477440962526777552690785140248053704030980637541240579243112608912977648694254683406836859601273727706473292855294965507973497669311331986720927626956893827224111820958124171349948283595275911644942364587267405981761927055418196810662745886698719870326097966637114063183289410612236834051829516415357279699675770649642281398534369014537051549883601662006152110518244812474646223512063715528606024478439127119069451297251939926070773708227157114835744493014735704382706772894596123750029494681649718364181581503151003284154193147427876952381696959138827233060377770527876267874113496580026049298605975773544554212312538643133776063614344533956371950972329256494263025237997849829807381247026786018523268328996167279479499943405309843260995617752548565201692521332069758866156962359894688199002652761281904543338325622727853615156412339205270443367822724726603898074988835819765216257426131307073849061592754363983020136199640347560581557788107017552292490263573385709042447125098218491734979638377883221299081107380742202066904163408563317010671039133172330476349108745476267764826648661276427704796161188445428641132989736413264800779026618697463617213528518106235817567539833748439071068517568583744103270492402337457622352869656370476274580576733311134868580218037507711476406928831744843776416925131670815182925471732526628359829501865926472205444917566282920369317300767181596421067248343316353860975579639726272652291888910673274391144511448763743283156663136513866702683713868749972848307052021138777469999942741517811717652410038545748172326693129353991813178991016141790363055115283305378164522161953776845942179102954027566934735036765741957346867521382983764029836963428974611101035946369188521562109579715433243573646120096585467351425812412335540617252247940318995822739400253200424288217548614787795278916489062911172485525008159633701935505120963257843082278464196403978833684493945831790087387487546836841762762209606410211894765444340948132068566689613180019896948095854887254620072936707683452528362222780600362169209493465916293719446319480469032663299970567698626350983122522587332561951679319177583039161334719440145626535973530465794748961000700225770907457374169061771666860729535030623508440820431947249768714820496226198055992916930255650880068505390900649853747620234703418142219172269782979054529720423968651368991634519258459438028706067094839536475971300989369641483248818399800935765180753005459915726437452147019586440433638813378345822039374759250601078754833936609130190468359245691528351382908203360159237075091603229147205100218575733309995240324187869100542872679014816842863023306572312095560938627087953587887360738547133066085397338125177723797991004243057212019870491675040384323200470870940104612979974151455446887778105701656939767240795144846354028086204244257624065309152130480027042157911914844695242775282548767893504311090581624666940066939563613543204351102285384735828620878837328904582162445377954253988811201200673675272490502976942839996840036065503197956706779250527881002895312156565131548822810043489319715699690314341331393825574378304298878467024057009910303365994508771091962501990216601061745200709671004617939899039461995776684583451418673927554599318612675639930512001840072431927686881464532139514485390048386589695253409484232313720305073655738547238501000564899685226443213810247991324056250460526341720391639787688917434305330212299634674279425207011091336023543344406706674161285272518309199949232152011384245886369059658176055438127696487202231245094966459017779645067141719224418981857409269424814843276467009344267248269939043284451207889424835919317536327490154160480935986374334145992492749623984038874041612735923765745279712385023791783736123772666775769178763075757003216230809827746407922671170890466730193281727472090582761607142814702624694094779165725253822377884166393955243011021838178940710427201133115334307107518196860241961398235606702346450081226564016044741398664847391652945798472919865206076211810941366449866177911385901990515777965528224460782980692843148663828237917823516352249986052981338000625950527554377473422842206590521471687018725823016997964927764332853006361343666615375066704628714974118485200139723233224827830860504036519319777597247057483757968110138967933238575934261214927863713182553351006494080421251329674496623485025614931612624848356375397909474643682625061451253425111634095234832953241864705973495164245027511387441112062252355188520467049200664472138960583220203537094589341599765792515266693254661914001672769624323816240586895291676466507275120625169836942829231949867187676685469725269535558821871230473287053144565011493483781694619848783292984024403760446277605307304536571690326164953226684947551242448431711267071243352257275216104393509622952662381115946764984056998168304396755357794780284784116479721065481562552937334666584770239616125221544203535562354112998796659161459085117084141576439077739250220407143747860654291337946435177798256155647886548487511539717158851002463817538401986579406000740887150441592184603458270370905944257138861867436885471497421416801363438030896847489474601937460465634592028584086236212830203404644596302633113904957512330883524406112689562315760703085719399828371136062183987387226394869489723887093637785936173190246252020677550790435418449162962075171296857333922374498183569270393684136515765358117145081865315060226540110638383489992485137096988169405210276892272520769456254169438465580699543808272871532381366379539034998685624562328802696365089026245510239325409301338086914110779507028009906507890853115535316113331295740068669226663370262277636251364897358977648240737603085068917160063537619875835636589186113086990148715972312866191073724703669323901145967655898355780659647168710469267347682910923071474951235338022358531128502717169458160856189228144834472308445315089001501315525755783339074801712873390523449263822012659477444700570648304554542950259462711079266108312086826075046550819571591058982976657128152223513844682995647634563111338152891484006074898071163741567577160570479661877911213832098450607268013901356746903207980649891673466663243006158649140820710426795148914584030439013260041361454554629290930054888433733755398349676041136283901281288576362946994925393795884880650489461328512162440879309168855358109147094661601691465735747965109113341840151415332475265414583334968450025102063577579950280153469756078339223018108884341625992270285657210766609571801435950045661727467419473716992806543073247749347191485988443422658512286713164871638977057034087879321366101197626530811821721167437040170841408291713609456068420328614477100558313674680326646561653154834901843327356493884339111103015504362574031701921839344509723983101352418159547133087532581721661683941091150475106628613727644876196628478009813195011218007009111884125274099312821910795712219806714055190420569564113562898565990900207875823787335915508535294231956084063585563992218094976398919818648264705117206253713507565171523443929626965678614195362303154633055159569058677946422866292937254350830948725328694516897306135088287157432915198864146457228939053814954826023940148958081200024065771270099518289714884894947339599436201152791458763548130595813766155139629254076346469241748373158189286945613249113113012899119216230334158930871172255924357321589409571635271715889080975381053716491124723161347822909605175726698385183673011927060893091451308231439556259600716074204882320133429636102780317015395278330508332478487012842489531387255782498586917954525159484975633354966710768415081210276039959880264370280301434837067689389306552544930036790055347730064465651987305104061066593524370243546985452513865409844374036228741015495403917049067976300297976597979545418216809029033747143074442697429896690986770883903797846027430589344927747847015639776249425060012365026656759891385169439672261944381524307056726518662539504083021561401346074634823805171516390515457650256937102091121885756658030198271335286020328431093941102684962751436514218849635905707980794131828856082497978793702042995649146539224571607388592531227813386091212380433007168995008551194789857842785578115737848016844319371984174053449771002060412854525634699997178831353866667778801498615037927957232303397427092127159462383750246983993167695642349641984895639145077392474427280876446237896221663722475705498428910963449233935836504027729283589192658623745360568918155440348196874221580674795124558161944051675233155995336665115665315474897499734118867827923532122659000448375430499346591637184564455149565112727345345883737349728405622146014589379968790134922241956291143101688202797780544322023951500470899285626110736970618954182344590946477178472961718507929192996369476935728482630322200645601366016555332845931323908124858024907402504666348260540620006278078232079242301053951704742083120228013378416983269882748425808423136912679965128096350410512684821596854392075009770176944558785825598080447945396034033940934364813260704137302106618048409400679041629705096004645798494730000918614438446287444352699873738086674882802751752388100001883887829256520177413474534140484645148180952078765846811468923158041758705058920206934028777236742813906050031854155636531171725610410411891847038040266114486072334033062893818748278672811575193352920314106443240006867387521523376718163759941842226968339614910416779825169286777553483635158542733414848557811477714105646506780160764463762624803811597903252494568738250730719810180835766087269783346038096812164369591729596234143676822533819949348753297810336863425435866782230651211284129324558604971885771056869605283638163720558556829500063859134689848240896909659224801739599750741805017005794828778257381698081753341846624063830328515953546079423940858960162973090434475789852183304205732900879595213213076378848502940922422149976718824774853762852500834982447920074924657837763458365049352137851398538599628623412441167060768042553320086857123129440401022309085860284177096912153244159974759788365103939234506481454407845824946295252257664912453474454896508969511835028039131523013224324320547580992110769717230319775290177017154210289721791991084120201699848466008534202079217202750430893420173525609047747904354176173725281057038039254782064900706425628892965561296829117001596607735123674307945505452330762019620583940558366437077381644226477252049749186673115893002934247310364600052948697570040025342106070649310677307319926319755065906934145110136930779541627108449330748157678790866262732606449049470855536665131456862162417401343495352581944954781763887739813372865081376600311759751749318780414017745981087264302427039741247044379602825925571463334594319332604647495192292710517233138474679409802033369460027949451987416647985544097552320285772762769077602676333912661684501836327154704563133247523055363193630808641489130048536131539406698766975073110373382528863870368143549971351495357010574735579033045858686045534575291317082797418328391785090441487728174781524604682250534452162995004229167099389110188923760798825256128243970115793587031352565982867881842782824448462757160397621422310550553769851002237049089530183539455702866080919497560970778008055209417569937532284482556365230087691887775071748598895478463745102026123100091432567313137601858000162399404548437361508569467898935586062876459032628021297773511761019406895268790900019317688165905570200491133843262626498910326969582632128743507800603753950387372084372515700486545817751996517988173940023088410899697440882046101805250747160303978738049464359011904651025139023440977941426307019375982654406867811171725719989749182535875151989391078840863459047436025564904133080394926962017046534444782274035647727509669049108286645296056633433543269855343717041320187146800475626471129988749888997329452381199800201754259913071258378844171137785294758652263433814055569547633592761632418520766640022919299325992569716940248124013574838726356549477283941453539332319795750279387270957400721809673481380021689719304325334131295196638094070574958472805946557654804307345814582106853152680175824466335250591252824107792294312598897719692718397300182256036177738715478560191411921435703129676262271905672606027056336066867336093286075746815976692458495794705940219154886978884109293031357513866999643573882555326296553132816827574309801624805217636682267380892552056971817222315498070509347106993241818342127669486783170067510916799510873250016529830290332567475183356742120267874856618962934890755924978355597322998426469459827114955714519839702416124462165483254619432269372724169727328536416429530738267361261357604177327731550150462854998172835601128614786853060920273068264218988657044208017295263625900600579595046707475137508301840123019589886800112917290376007635845144024345534383085541147481164874660304826925228634832897454102621391977722430117105443090059832122893711469245361139374455286974026915754946869944613777773935899062647446156149450623244277885814678422786124527256483509715132831595050690330642529053294415064077148417066210409907106037241319298725316512290596545437635464549031968203492978684632650384237692799371804448407820318545725257018547215921734970615183139339665841244698653674936536553905150730543408858551132972026667638478631032429810327383221059106943528361501209888123781579511331220096126389699569030904013552425021612517920168881896307783244979376230475540520322391557182104162594949868929988573210201178179657145540141289799536935918812144666437860986000633443715108825773589462947234069219665678002166138075636674768419270696376130679897744755439018032210818449309083353534177668495484008957049869748383264325903603553404824241451550254164553283941572959882958249695512605234244025695421431134748493464363957659092653741656831485017747031732808431516227906202688603855201945661113948568254905135378677401102374443748306044582821888106334541502258103160548384672701746447105337933283653588204520750120748296959619035173285485165896911191405649397643684123312575859536077552566740889338906558322193952458199559220307325871502280320857061887157204258300705983887029909692165679821969083425011622361485901527976855984531699371418391140978553912006675592426948193364610769097667039611612243758826089803120607976928147716893507878242901763847809754515186585932983050265236016377250741131368638917147941350634326549374036456691559409795345162089379016789617760251326043921397363543060680913179404078875993391088941994933113712142902779433490605280066181953148537242625100954611288797633805270132107896509523567317771794470585705478212678418959457732153203521426532285052123702926558111061948456858124945849043489733065106666447610300736408139911560647029603224874317175231250349424364205371301717886848986091349419984915324083592293223503688010588575334491680032838016090995784285957131086708514102443412101685366976935719161217057227964215728188173716900803127357826001672111532856657598553125197418432877857760602010320282745988591374137716535666170427763510691419913697690142454603788489121589607920088195989463685696305786074396382233609691734806305685205005716589266092323228224203130086102813305679467192205305430679556522544688461611211415427447148625954900814028955515520937680729307898414415847205628770088244603293110601326021049453188112348297008270774745951642761863279916471235668498454814497610979437585167560812605904964088889187168513554596327044169667953816818038046015723167800199360135765973921819203961019942581711129886932173210539896026284165513550134487777790496082027506067868114833204797733952487349437590355603528066280580293177103827622801906232668618255539760659554955107175971092348520700850238602286019104586508777442174476906851921177468888001437622514982401631242803283591312475125578162473823908331939427641437645912965840376887504840932414129309109931632089612761590455571136079408955449882802080752604231825294688413701085578458256363690813284593504187823047834110902752067964594440021984192507177944795400898040968504301485250277077607694796995672775343341766573349013202685801586998015258646513739911873672150355477438125629434235041596369619365127623667739930515599724643178252925009158274254837000425961468448452677126831182462819525185761068525304909782316039120053852164021304619703198584045768879038730084360566680566293497200438158512577017078686900727605222780792780433994179410552616485889651992536496811624374044575759721168405724544305744161230490831437726239857059557208022243922890946104634787719675800140894319380110350121841104971206194393989402251993252660282998096305304619768338329847298758529093191017587298993952176981644798549732223677509225154028426530243058788779267939019792261702658979306669748026922848462998185236197712627984630176609538351243801489914472241373606254505161005115291570722049122606059391038386485536459890115537488415097035756279520055827330755397097912233221609229404507486594407232570587081823621863309049307314766456608081426189862984746067207364424839406547539197442576156135417765557241405566353105605055083735482328129381334279003354360217289255385603917578591235142998391909141676507060065872337657370370550561622840994032180351736477110552819630592628208337409844091764486501969126000841939120540452655052373391602217647657247850505576672168757199852271753119616015430963914460058252309023989969541557920871057239745897755056504215956826719845851456086502460458179021374603379643563708942137782611005267389324962813015265633248090445642421124708255137185935519341275856803633372646303051336673076826553163175477711974946308127341692155751619040312138140683927670934027304382491401251517164718683565245563932067957346690427829319684148880993529267035039080017414601658386990134741093986997467991413956898750066031292372459809197056829176254265739608307996748320601427087092621542015386703860527259360463807608280879820225569836452155479532114253870018821077477470523052749000748419638617534566587895652274571895578491750071040754054245171172720143538547894960232958029507114767743586348536090437701213132914162356345812399259865073582709276715320443336352490742170635690601225871359208447619360943530673593428546372712402467531912020840392861253103163739135967446560355396455685400711484080530626889318768243863002229466203897327981237682781879013162218859030506170594502912281702042764933651863694594637822417342011793153350066597478254442873868863042545066780650483410441762463624578220125642256269858852084875717112589465862668141015080009981279550581444146129915447277101100648499339702788908322338988054841681889209443330735615902058515818908494168281482826589814493085941928634511340041341588391170357372928290097672042594923632804313234837473172944332456319308157036553328768273772572145837205606696988428829439865686432690731752310677738007044897092080890904227508934904947369140931672575903728041328631724446052288016545339758908893204400470953800762323681151436933685033087512280347503787639570610997055827641593755752802811571605976477449982378475883163196304857479286349517028932010857069466492071027911347955787302300500866399717211904339472296290297982208773405566364918873317736696731177106879351283923026554638282432908132221101266541643183831301041528674890810782747109265432356951095494971647326197748323104024328792593744298107982916093324758026655985297691405168766243701953994650687938631505006406835631334140745919497013460336140549442771391017994235389870187362373310720714368221662768384078178999776148616892979930412940406854254133309350386393703708905165493884901190564092189792719319091731127449331913662769175738755132068120840138586569700603601947346034065291757719353560210309307390435049727082088028301981121117317193338061917600255589380655553310211645958968551890395446650533071735485416454497395856860242418231675016794634992069380934354158942566422974364539560181920423229629211793566497796861163539829668843395308531491628046034374001734626595611376053624150204177317565370201859701013709105353838026352904821952429284943625833961165480071255322708512805655657527547531268619799984245014156109124885277779444489325692613631546855234163387929936290865272323841701407503798283317907322709639175286417225030619471440041767761486088588976578526178501526169358977752549094276714419128184678710860837841560843728853930234231689375837593254520932211658611894442919131492580494727997224510327597355326935101631662127372376534551550798998702303161084251509769041865534095574493000516882362349738198572681153727420090611373294230090626289569331790659736566755511142024039057550474786885933212885883917999730286231958670254883770947190698258110202007676481544525770068926944643446253365101752345285713122519985438595073479963851485978692492440630467133904548289670415225715452980044749972882900493080923372620212336096610433268973154170684568068189498624723380562867667358207653863087770885805818690924832417424827256763191017879823614354760935844489125882521339062041810516239939836471832147362809625555762035410922102208116118201216126355982848631298642197606256046077208366040092183298161858116644645541005147878525382293904801144981906459388683236136540966012163716487955572584778567260875816901583779408416510230554393159060445635861396906112394454990226699642504153867197623641663592109758136063874742594774666295394425484292625596176644400729632332102734585479414763950772681412807852203126614378194235786484770939935806327694033244653401268587969894011359361268724903067942764000537929400978515527186972054428682462161730724199999090932659417008908554214402244624623983837768141102803602721259722495662387678726223319059306097981555019409112677473752636598015302779697599648187901633941219119510487037748569022628343012256367488275434991193490533465869458427010103043012416466073902580534907398137010190093334671185799133712538555597845280891953488360859428406199206522122107771204736108218773369194554530801335945121299507817130612268725023229474656450187925506223843266714118760091410552023435726923203005924739263209855036545005432727083635419581957464959208509971626016104665132465873563936916365614758109967170107886464672339665582038310040998443006108670766166951855321107041771735137612901441165364893316515907095039907045341147932914386822736153132996378897980912294755433171801258264839614377781792775623740805249661197018075817732779376646633109638881180277165479055736612291722811735817870943621969184478816621490784944782217420600097397561746829155686979310310157454242196352367452138531640094724139521916330239716131494713200445057097600662849375757144282230337556078808210553571091450339301942779020627893288427115592649666794009678751448876715340208025296619312214454167817488133566937901849746139796668031419140036541502170817868612345564608981349474621649390406630144442426991168316190406322201765432958019066112014647196595707399944515537177856892243612075384751185632969839603602326317877206619552172055544141083017688079239738549046342638092935212164112339293410544990945810514279572585096651559224328482657458910838914962070985753511630260762573501011621642856088937622412252341652921357521390967408043808421819489258534567281970297179772861021982142670938804336612338729188276403660268560737875133865599237347386630331257129391564407777208639331025436570256403196059929152376825637951504969389924860473708955803144413217284102450532405361981806752042662149821241820991013345590499988688914886988685455358288235155017460302508354169979626788445608221649767892880821439391525583066553525940709008421756557799927206020778505198512887634394884190116925175499093269918312395283662921130978780908360489081438901879759157496535509782411209326370925918659495628022504021767821970458001746795164829801957417549432442784431394240241080315949026647483545746479618437300775222964072340761628316257225524510605083842100587617173658250364232394946756782617545281798648875188410394563820545120074867944893959675264539261056617740247014963063670920896423429487278331295689911676267209491814985046112153087789883796414066513613914408546205178845632370869597974229230593059934185540030035433705578647048961773768805090233254456429559959718718803314275764852470548021925410770359022331530991210144870136225641469329842121784502179182689115390717242431944016585118780763753023321762938426202770815348306683113622258578158953002609105779291287232638688794398252541300148473886679123501819129497033500964830039098246890351257900383497557454005816843815436974538317858418122711330184232438102003594015689436955011137885632325189371120387452888202087712356070140014104287463605719198792715784760290389793442131383625736731575193729971589584768848977006709639670159126521090239187583029616831371254597580272853926372523245734369735061668536100371123661776378260244753596390960891417103021580866226008694190636913219130563999999125813130400167144228939281433054873768025269603162124053889096444583892848517769321380814492094774722351629719946386142047405454537306819421553180247720824318002247400863894304422890597115469762139948986147918398514706605639456792535449062473153196799017797855369995286707017560154223744284168082374084540980073328103283325867511334752768646163065077453169695132980337262097459756551458329683890987507035760431538537144189049726898869500080345724185832098323081476834209945347203098096788153043646745139593851868605808083056034157128176550045136321423725241680052905432707904386933131362228279156853692934557479304071000146471258605491834294934878108361523192474892549092565250546923471350693527297139714292810293761662193182545017753175538116229876711659985679008918932633108681351381444507147608182822322836941636264735003812998314549849076214051664385086623184937213662379419128992426798815942494445884719245905949702005954049618803950847600118109749018818230299071550444527049227335054322597870930556973461246026105841381038283452193005926570561897430155474405227539787942380792368329079810262916074889165404709348972648584062761017530473005663027580049562229821405032949101456653875646878964754643838231456667806011960354442124732819038037884746315027976541495265235849133323815196854630051885339852995229730313363914449553652005767230991985899763775517958291860834324807238283149921861734834224611101162863217987424974100909360436402646210623946487644502081078220055778387534951719208468867552699725847059369669319821071653877326140601721955438222941934646777246376662535757989267523425110482777027900674570861705831570608863300882090707942813627838718812461349438130557366365358541803715663984605006116647760040151038514344638800843563422976293573968826967685808708554848813749668924516458917115352948698511742972447284695984549967961081369177450464294020641696948396108901235559355110154127539412427258768177494048214036750515950560102133236207344194843335511336926526554134737476731540165957747566174623503885345648055778472338534727565925766145268173572386820192404767259520906932803035461208121999278516776357038207343703835338194548847603701942165896887620599794297482549341301822627784748821125453473113918532616426440500884082644303718869258896016898888500291365124490797921696693234641071043293001395633391726301728434814092533056446413020849046943711633553373957099095429529838865017943011309649495023582968484965870243039703018947987175266475110872575986221026634713701689873668921235221647104614517490270936589292547479056397063262202640321193861768983291058683630669562377806170580295134387286899994596450582768304463164249545760798810103852962521126219344197191783267993775025895259578463742773307750857929276282859611284779047218442004985105337397973041092517274506990753861626158428803844765728183380886500165097364103149595809559791211123054751512701868562907965496763022654220736300215085681795799648870061421001252651566028523274314361579920278584130625869967271943444979612665378915473669974571070031944204132921680550511220381768839464052781315099060381703239067903022946524132110636930142601762665006442427814744789718283426965770307627759190582411727816931179495460331617211639632486866699822521528627756534036653305262556022680322138100816349055683338806526286186632749807029231916807746101816048387989334927398810023162789316567841177812357287188979681777123560094305441515474692303300231023123434933522315769015362583185272436713704024877738231651278711223761100455549222335732812930218685965099533202775035444017235445131880365883341163860256508787718657670236867379140850901887485007320307435200050256177908366975908721110909809487544843687788748904918630454514990200280651294966224835532147026377025016562093186484684437433550107169959531992435862498890433191215979961676228169281699417306275249395392770078034306666425932523297246059579754461118326602029315057011566374133047133894025000535732390667043337402792424770968159176920070262754356636191006925545969761073349549831823593040346949401473882548888482564426397817553686038986259999752545885953838990976962399621892135147152437653735771304015258829785210364263825868708699298694278130637437472563827299222652220728689117040262625145707686271179822526167722776616873575647300334587923240353876459306210952513327642457590054665049851303403739047775446301208059814912047189474197239959289209063900958349609977156267209944078934976702006243015955459787376815873026692750387937491538698399079036760799680074509242284403957556413136020317912096582359448970823218634888404741135032324229489075919638092659525102709045217085341320721979668604780151580739503601031079816948376181668514858319301353049841320614993542509437224720422762374957246229032417960604604471542397993947575853683991147740973282221041134674577323131154619342019887008212473087066680338586701319355053795383544499468753659244946870722654557366443928685514383439161503691882999611359887890060225630509224093925358894895178011567066075129082225444281972342335929146551600014854671885836441948472295147425020086039184178999670503231440921056901127896689938994107276452457726728852629678529012831225241907618603081038276611697008195450447608762624474627709474224091546614653524762431840021007528425851801320844918069342328981148058754478867838489438614762490361174924341032987562369550845062149011813046902923712919972402615510573378001941768181104345490207542584847795607073996932344062813487565308008481652712639742550530939910462648218312281577288291692833169081857824472836139865713352713299145751509896910699621511336358695706193442766471396195503832426004092245989347003313941821899466205552051743626352033430987696993851396385168789462196065217668209265439932028177683509405702706972739639227088311073181387137745225661985953434082788773983948009559404705065221283533447812215304882910556633330407192064832787017299199539082622644471437651005756351764467224759379801664927259836786475399744634045935845672550045472538051507789993856024443119398658478844568641616737467620862457267591866994911798791662030163159271220083162769609461077871626958724527278466252315308038153179342106777486195826259117365473785867655828536924716065842699470796417202414238814269557885882187171822412469942024562147680545124853855834063928018241760550817771557595118792186108738640365181582650796093523131591295510575940970673735346035611199408583210376094016377148368457072314166308161636041146719013152344837975354860302843643281041843824561527870138079156649481195790333024180756155576558395515441067429513556732607497745607322675041768554107561370823314992479500607323509336012096676942888610459652423567736820201425353001847981005418811992862831246710506157537702394173144741236696155999522423430890171573840646255330437460639831518680049537758477698298635193161305482120121321865812092558141893135409932750277512565287696343467938915085371976166697539504489872554282800069180946183772480459109571149332253975719213041758618104924766041711721716876905677003491240387933324543798265834142485966599002076485066810849716695434494621525527447045586928858720056443050908650013068836540135410449968255269429957702366081408028800801141018323552883994620561122247524121652783330767382062227786042456652446143973456270098942376728816938066134613679278012545040048653863224411485176751734076050733514420562899470327607925164301368991520721193714225770205102054609523139980142218452480475331127262455995888714165105280750239760733924294902274458129532289972944109531646706573142852610895978295940141101814124165573125327437687240757667284910651277416913615104269838610656964348998400274363392897849615388497995515606334787172197613602436664545071235552993343669701291096417426086367213814828201380226488369753575493392243628608596524849125522997922413346267878568048784965394343169308119491548773461964805207677467144973855211632020693937869351757831902280206854088843595997524643513568988274718322174324690689745087787663950511613413931309363827727573008153483276725034049376142295123062817642750574530895182650679052420927112716984320109352123580119765438685583092061544249262448149382348015519245333739379549865529420023229358213056779408053569880957665726813437639132463213168848732517861167604213991038599153686419105858513331708705382271000226234142162726802940319426366967417511700163227035507303846875648907144043048822035565917484680094099235009170304383988870092273210342690491574421304039541257271019259255044608178993521314212528126884131878560974288289321429966215426718410736581815540586709335670508986373422211675294642882137694661726737982115357421775323201926943832149308549828746690509655698983457015015367303858854853363692593149788429305248277638092450313570917970048731379752210333117689601763344950408184925960711131072344498005292529669170684324928488955052378955220288072196485447635197537567476902846745767827715327561409401078170227938696441778445894650598172128815374408294184678550946470499844923021613187106277024213091179921771375487721778515600737454051247436765450982454109799272620513788916931214495964656614674782154832325605212552286302860883100370396421448888935967092985342523993702688709712368058444302580003623568264462632546596183204466483230242891131086204124224762975894555056750165076639945959204671873170653043209769471498388283835321919315204843877240966587399121011358520421523410929860210877053905779568321788047194909140705270535727785118358109691211683838176950523909627892562032378298019574694271269117654387761273982308825110630215860549073458897857205364743960235541295574743032134374175561900204005172043365066305949628200462098137215675818311562272437458973070947402608840262630164705629073288400809120905082310826801089348425901738828690390009824911130964949062149744631161905377946967388626224273153344578816855801178528042800724701084172472541765789328086114878529746748215746309500204427632671658138446917436984855309028142887207414353540970067525827347168863944205214063771123265931014723057839401898410682763486579641201634963943517424225785035469319193415053111538333637212203891201244954747910818734014403073063431734160709506286799407125289851692649800781458324725775293410711139262184316161734907847132788210973609980208316801710572353845368844778782937081406690538942800880670221043160572243142789313857465685635154395309334695276950313912940013150982210149697797495170084951872332027021065405492476720697204162629368895046808030011169669316475431885473644136089390465746036995528417710706688329712301136758494661091214806123590660272301070714843569215209850598528812337692243338612017482591985004734878108387587420473482829442713898276343655669151112405238905234582772549343354803600131001614691362945292076681387007422086472158918633466671895435837319046636982093072188905958233792077719978481886441105417838608750761730997901782456228348822462735739406516671732463610651371425471360286450492709749498682673048897287664143106979572711964201529027068331602498443078716041804467924564259607942543679027920782489754441374325653498442462914856866080258393884950081120116472813077654335969617770823760166409224256077470319877225784067220091124250098442164846990279867562214985648472430388954426555278887573514363774466170634755551631285870007047472880252458153512945171227603704240309060322760994735647647908074306030335386410092042183078295118058173815486373087875468255671020406875755982709434587635633505570774541295057431609590670319508971375981553808024950174715732471160096385376575711212482716252503969487708493737276965594925989319493465128659628913430566453866034200402591924974553397715449804408848282960602813845316498591917720228904692691188993988646893102214468689176944816481786257961196687771324879100765409279860634775538787373497972872042431313594287144980038150766001601271700643985898367250586298373141443555166719859687872201153654214411440627709655287455860109355314641693573166051619392297126056532411637004938854138213341576877622790588755419734266543377527797556896780172673771921115202478785611954029484252548253762012139938763839178281834556501749383709318992860241444374887097295574683561987514522026591989970014974125618229034275180536842590697220290639936945106593184087900053719469734997254260352684266584181975279221237783559847029718757277615346508676356405059735048551622141276674640387498197303396558083336430940952528554653799162928701089612004970694186914628567937910600472703207231453292920224476333734239438008987627526466588331174750065947473656666683696062563490764755297661444978402327368502478024771509479476647817389898767208110397342435433826060298773223338222373147670053143226392886542774823809541401504359694634720815366897999141225356698189105599234210576582649114023727838684841500547381950636171460990274833316432190130292030644404891769412328520563669780768860012513972932675189259338930508902674667621943460489248535601904436811224237087022607277924690524486088940951116919155765517814688471041363788799754211587303717937957406612877388449345041324802611015924682450482732781291972553936681327169541499050417577496503855277149378574343101033290839092989754149556594185396217599824553778466942492486854367020572551528857384290490818129237438782688254883677441155512025277268861476383857319114891690262303119133761677265098157043865474291954350954777099015923389328094989640192691042355835720021343731918338641629185518320301774829313795691615035154188306272630577687426252992336385783828130178180952845442196972984468390584255900049969821386757356628995412608266429935824943762625671143594240739710951619845216064589176756473176149798216755826371144138485638280750339654809704950794420715358799588149473640386593347715892512706807067176974944052323553144066678078660497794104001131249248150369350887483393438541228600643687562139225181341830703126618150384692827763125966446721089998163271935930747448883518619494037993955186162076864362954586592548296967781981064228304466245718226998217661106756752883423591338477843561157281034941054015726328297083896545559668688089649032425443721239231134484186470657244854039802610697087297197796034949356825473247743529542573420931772363058372019467029199347849230074997026278042834671728870142334912161957297569852621771449962729511837283711572868699506292655513564470855693959725580892290195119232572592441689540431818829146078831293398185432922284038569552418243914882871202837145633674141162283189749102643823172584168325802140642397949155749246657042564679839418159006821920554627140929123165296573190714092505667897307842175614986625274807835944932867934083242101278181772373128645987170734220820855556038997206607113042431140847830277972362104729917039709364242627496157021113866627761761853512203791790655525320932807723492838399767409603381596922907483062333281537208723406160721148430820739589701473801809565997449965212180361954329682796462119135777054429925177158918374836836062550892930415871964728280328802411140881395406466744950181050577397988770526005994774844207334299875454625279649864150373477309452916554067375027001310798079387199313787838610892817006454492843809159199750948706897565320151085001898164874102527905233404173896396175630818556575725888552543212131179481744985338062413222834697525218761090212979798622298157044779035213597835087839201228509134281481454380874929459027995608312012757084076791377768595338077296356957945559318124050166261669147997992064009034954809743685473769638662822549635196550345736729368852246780766461017749621526437006187397204545452755826327441065061899487156729166603755705075442584974540801286117325056588192240955851483185653346533871462270965190415844500602876999145730891987670972677870342176672496432696003687246431324084737599410963588899069635882489983662248638888927844498889413669006419694047330339027908180050840392288307519838348487792319571543096189871520521479986246491918661086783932195258725166057751744921211610824398355759904784742100527793150796699110973767787656216097817747178350520233849751060438614096642808215567812048242398958886813703943044792062654762110738464068796577030674139331278292955796601679022351947764993361781980520282460292787000533731632175905166664407335239763385628938829256974139782587403392998427909552204365303008582876246510424012153817150402524778385872409198554799271841695800209177958769688073281519399217301358127919343442771464376955561930174231569607655003820438428788497125262514230154024275568022733482193091616859810968744642317922967219890072245684119380235217515930935114900744819769456046245313915114494598217183942944494151575648813635855227803802782086147284791494421946509069882842732789831538802821240949515386941087748854560066620842626653682577083810409099683238848213233007643087809283714915302860995375433027659020438425122561169888758783422783266170038184077740313464231229679162556292114966286981057010216127090209718770655715972440855271476264841504817193978099917114701175714103302048165884387037133937953343381201473622897860928810170691018791193025080784414021966834827919060133163316009689714212541256362221910067586281382977616625080852052036524349408603907646876381359916305407335919139596911017154982588940039579600651738818025759325110579348858956257104437856308576324969685225418307177316427828286033867083353944143975862449686926070056385412695668855107705413547322841869035486678159103712672047730306038223768175137683029735174878859399406487007892255420391314843791898836587681621692087060310972188986676812002520195581528320944790663185063330821050197003850558814772045021758043989955791336759824132254518232773559823991639856715755999514208583091754025756914090385067558900358154323495730744039589862504157933501124986600155466931321718364853297992643556262294105848768581503291883551129662682977781979724251241434360833072000677002135802987213070582626691190689870720327519268979265438879056908168315858666517814480285791776428919836070314482603560174753929417455073820741231953468307020505660235689514664878266444458269910327599812530576589701177731896848431350230231752660379570110941268558336638006328401317702744436279359799799901873324010283478917801657793950964688102090079931002297670248192163806592045426378271259293906035121662592570213200743864747224022814847721315590368849235358768954530602594117810763898857095745231361480157445846314016754107065144414880457529234093821138037413320154886670701072225890634931563204672364275654254494676845310549537142723997138615236209796844694575943868242847782270450645479423175561177971719335838139944327700159642585205324861027328644415604998420126651213624571007850523929813885407494904579547686200204088825249886208040576460003400973550981586366144804853453812002337953851906646120620325749226240426752628000412470049051886255055981995725563588916186912022586129190924532233118556876125044193876697617870228646392485887920087931020014933822858403157760891736914748643461684663038011747624028570093774828560170540819337436369578765897902368509017574077185294005734679500094655988619421678473670262068868723357009476775784259253323585505054085550684509374815906358233483239244728055759207245998966170971102888772396469841841284578959341320829215473929668550146514492879519385990729652687527959204406222144079776756727749756904541259047103026923793762241946575049919884563007012803631221166890091532277981057861972454553311806304638742473600979631508889130541339930783918266552462009126441463880502935078321740522220532340636874343192621273980004915078483544118438761511629964628266759522323671166209780535493313124632982668579632577403190866354580689023211099673177730844228273991770067928511312311420560409230845563884217149205295166665382270541714601060448792478919676574130538434962006946015359332315345143319784168101920595587816005882220762635783697832481507491488458551900049657120696298557148365407016645613626499272931787141399597753155880651724437637040559848300489632432994848112244088797289605938010889792984906242183134342068257176494368496305892872911488531407956291654937342871750071394207893388591593301666375814808947497931119834444194881413415978268985982934217952031723387982344731942054778329990115440092214652732264554591532009093272541336054031580713544189237786173364794815073840716325010896476369425910895239120499930476610050589389688605668298317567914151014203560938040351508539687708550555976975546558087518845128651676049481575303663775692328011491540017984652288252368506492348021347694674373943550988566533671895728509114243091420274967496765500769122361111031144365845849508613190009214459633427877978170064915503503230989112520595499364588198460004048346669678340892891273949206503580151224201522295306632938209700745030573560500009623767636660951995484907014064238579357268439211609002480735044119180239335965519044331435440439708341964244413267721923681185631617930666978538426091816388818624913574566067629622053852509851117483898560731467714871862101315648926487103236632241900892191475131372588503549597747273895295066322878915642941393532251486292827720297565963763318409626244248275880818921463645858167729658922940238661093924766239539537174906539003746308044020137301441026339526710080728489848987696981623844550544899878825890750076719657062281904511254137538375465530128254579368995267029033292852638061336198270807480749193350457774016898527111090782925773508587023450217620131683528908066846139014163386418301845303527573492837076260817160934679226584359121918633371376661742527476306144884659160462115173856533517301634140556397879552895168352595065422154923907563683595433919026219497456978742640311882366402929040948501674758482766341123589781188825354104910454481047240798617606803589785936375918405849368486052728483927675683380975172437967700885835987094122686320557272054895304089483753646521038715137695199329032121190200680665142749358066733164830061570616747360678433137043781016966471469769638885592465518480409765058528897003319544347257906525268649147205426412539789336237057725574905086498786620359642287221532769782251435353969167710722923594768997874355531036231343635216550218341951531818304075321217959243991958199256496015865184788232673385098942778599659047177858850552968205157822497812345974532503831400302745856010834518132204471993927878158536477546195083138582444311307540206536839189575136144420912036493077337690296409509181961132522500898789181725570449028301282565896119703296067803610351973547836434219718957175370695209325804524721513485168844463832271378668577289888773617555843925604030747378565457981651303967404760132056801465610197637463485209791548253047596049332539551233332367038233480491843403945094009619635261575844884116540717016050811734271416790197897778931920443766690609283212989897984193189888968109588383362439082678393710988928721822240688601920028342116640573299432006252277574007479333600000743510697772059168756462042542359920039998718059263858587445695562207382980779013623837629518497848387045617035390897084498391943355413904687194999080762387327443512829560940038460406208986800759228610142470026422800755000451672640424153130070853866269708869373189625896590540448265818457591801392806861749232194201377002127647880390858083218909016037052763171486947725911407329974488809919386884544754008737419252307272109437024594947579124644794049199138104453844516016207671621835176315904330409574170750761921801463122913538455187601384735664069660865681797475429138148956204249693268086924343111042132983020898067524040559360387581282285768441758278218121541303529618787063856222403076444984292134405223481556393692784195184511292621022713702274333984912351571803267989989270059873285717582042402093790162240807099123255865177511065139958050637248318123329950235480448382930751495346043627052115509853951590882063671171895487021434414959350839815066660873088679052260174716335160825035807763206791322236743845943037435770380635703157838762479601220793353895160778852409646813264755921474285006255347530728966813211143513979643901454133719743775818264355024113098615999652415875646419133850603565764250227310447871755302642598200055492573660360377676791119225122779129468079471800322584707451775482559751185378696009796044056834375757004412103688080095601365464698050532848426066959664867568737827719688471862092875378273965775206450434808046444921467050085335190478571955188885058014304726039678980244045619345579107347015257617182364447317967621348352475544997079688049874729382250662763443083912133816872159367159465457303920296825681075217725175677375044129600037812734945433115745328756773759224594237305254003238782768342184354880094347853452969167938117069109880228680388127166276093348114098785674529444941368175371390268946837815622756066568002777081134253363073224297278668012037092593277131681147325604727427660355524377117790152837638970215628826776779619468857857538747428279818700672171760160138371858178395401668499796584254722796721736266622937230262031904390979158579437593216280183219026752410495098485899730561172214965618930782076764026945211226022114958647510092709041063578001970288731443217595198382914376163347387170628321673142824111596291259044595899961985322130461847822081657117054877338398120610509637145785545078387749668423327679406412243236031812004853580447662860031311111725989251251780402561186115978729547147536770825084785044936262887698614757037416929970983084076040860804682444594125302562247425925045420974193097169978131032324367891158042566109434119336875378723475376759001650718926409440003314721332254164957979204384948491654787586540880653783476741064535362508394508603341881397482808104377832677401060686607125065151650195791611106674816629780656933771534273517661212688922869996635486110082854257520503526692068595293585960775170763901915063377014625225003617555050009143276509174797029846369760193370434570314732976259903419924748980449673046580783727596500201083323519357715762062383105658260304059505565129211795064542179975769663527458395567238722849490181426586918228578152887259179511172773144364996253479769512234347811753247401837287502873733457775581768172297233889565267891632997085708274248678815915522893322161555887222265594645146338557558247439619889848817433731573079387887727683147968856028133574024896875928708850013386858054645337365884529178854859816498589066535560434764189661811622711348064152705931807866312903331771186000994071633552342394742901301543596003406535635266904208345390242769508711424225829640377200869910201211767877282447014921273216962080192255323222892688593122768156407604739243617196017401760989860828031629907585594136652895015966485156681429607738880564001820831358949254714478296534888469965950315763923759610879284638251756175612055326551303666442775543696677183102484346501566008012856725205184092050312941197672624398110620240246082850346908280294738284944652473834793374728188395107745526352791272225634329336895414218460589471740667338696101165468507606677849790180513326597040475049105287373607941116760179011237560138422212521171394001073340101075444734022704210476150496843428705780785513493620780233347384669341887523750775929412015033857326191863729845247084440640199271619895987779415312466392162344686337275069262797424687004639208299439631350201756040683164440700255630628526787375769678115839637230312772648811853599831564554843836275344108186566897158795551198317537786180141028478486821199807220449449831246304478798850007445203407434105093583223783300832424343206197356105853646353507189247922842660676430827154119251168352775611238792751001528023756302595944707743147389972987141062609753665309517962610557975548610553114766873191252760665065774034820749499443731926054723891153826448100928439309990829379018285839529619656262647015634396465409926241775113965985329858277613732258304192883608688962005870179998188889537142033940883457749595014154548650818459570396604501936874144852074820944089397195180939579903491953116494661474416225716288488716966938417000553913858330709969992655821639362311814425952954060801862304534103955730234292023742634734324846735107151105348075565920775082107194070757863939414717693163000254716585373588798227736994000048870345882209425772935382673957399880952037888160528085137649727847552069819374226639970516725426059254639064490869948087619712204869165724100176117866185482466428194701211445242879636036705213988538770734289473895642674596400685288753180390968954380826454674208883066635274511348185152049529044763760382740181832005215861208919566899969067815035647334816718838962964875346391030176742940089992621793161176203866930318178379092859629144745409456826296224695547638637906314823176259321010097914515225670670778991589960744076798652608619415117271047761150074250568588996146615600941159279619175503174310881171202615874534546272198890641523757757620882717990458656495410084934944342424714908894311933244572034395714914714933094059013892827517296359320169070656379496921111689972071512955376683625819610364162684370627988883620608390595559559834804702028665328571265017905405485057406959693100777042453663634010247825751805243047614736829990344973647588677532652142680585631419392750501591102561825309337652073620456615018489051349127255081457173726346254081780739127401723134223602800094924472821371534113633995391106472245036112531688892321313124939417959669155794361671503119575448472697324075660939543806052963879028661686405674293104416858556752621398797640242530294256512263647723432020809300044025834318513375975025963857827480110581461120781160541980744835821873726664710383342347370076517461821798949426577425806392722543281523801505635509096725970094283328801524168684886265888135658815452678465197058704923278502209249392216793647339104438151467277525717850456475095012453669577505751806693094413923427019985309356982693902061263350920106507851975409575566336033648763022388058564108898584135097963268641198892232152353052871331802819298067083042482791660305534979457104665950426878851225904014931583066777970668401103934571706251338803129235197800363804196442067651973535307939214386879781733180262645772665618946968152930815083795616545098969452320388249623156069611793728166527483124372160118919904847798803376617768990872584012803936340774305072812613189142939207510132519558464729157408124441244557502002763733751152033659236868584261847438558271022452448975836174233073637884832793109740542520240670686948319221523001359508942505298024500562619091671331026470686284823674816284188619080630122126904617478561812577279208164346312191000911313501646277468024357926140910197386613807554727244386608664819593186620369014712941704941457166423458108898937514050717095389695957890408162969145651711455751184973493666136046736177374480157243991715441979517191339421476387488897310116717284026741836560156542629373381369412885129993864884891966711041749872785808182618719673368050524278231253580671103051895944519438605406595208933507312092243034168703377929787683468037288737854113770377589415371751035065530308653947564375155561404366271051454100920062892202679160127398249864390474714685156001234295099438365607078194453829375942723418238778350388279839480078494067511890423814945076535778946657312687653639186260353728801481569953620373266093758115370864858257327642389645523228894523208360017383891032877514133610022890043998976271592700266522300059730691470202863241211908583503738536848793178561450739376116522971756136574189980071405041139737065319540894646664810153699002578430305111789082769963307073363894030714959096912945973172784969640873731641935530210204648045029484925430639306996644733227143626029763112616767365727783134321153244025347969477674076269979607838962259803814687130674189629409663438364949167870065793452009207590811959890336811664006423459558851903133895411470135687222498808220659994037874252356837433106554170803940967331580664267800574636886288047214047207409161263409820625779719978276917015227185633099784026897527440654362512221632795782886140044303734338310417960327023729239005891876013275238755192128600768701971080541587282222437314801030072159206988955857973292251560870278242919198563424478659486115483340043216688148079487383026394997769762086189154548478193554252985586416142492065233207829433229321933321598893609304659855947481613114584808233466655477297259319164989541346597729670445647997938886672442579989338068054110964586120669913927469461377156036634298418566346381994295682880595862164294514029629646072493808170563662761419245910105714566330539441652104136447062701906406614886210590290972120232070607485049116459977635825688237943115922348904771272907895405842124999433902244884688297183699785060608886303201832530813321990599529578990926737222652118789808374515373811173865733763791531887296211957995822178487948028077730052093056285304033054582084312003509605705144696246245452733145250111996718718119085983722603498049681430166177204773575980894157034847641703810616854535023201809307514378844682459527949002244161535835216212988106306909692525745732803093339451636194718945279988415657372384403316244296285242096533235819428173059159970845606773696243638521198290918870377686821858660246936777419208377847266403258105454383170990320745162711991090649400105284197252976289022786065452482122222177835205365556922616212140989208568535200151429837616115670850280731133629877029193006619535536840780272946315913641645764569098039273847617681060100459567002288140951142133693319887289886596085775623847571393011371005191336631014187089116047989856390737888293839178884287677332054403874488680795581977957374484346389855858577490844903065854944768616124204277959264970451024276555906713662206714356880938598067467541742875275151017385541178748731445912462711065550764225152876487734954790207941335926087669356929258118542539428246066018590839168174542888735950726918707054448588615941568689005865991681021406525872481268415830022353501992789560203665472015428601701051830749955807671354520104104985503649268904332742804977887474929728545051875715080407961574101145449134649995862255259781827693524314094432694684202188196938247672378221188577426064316260968594366174222628521311259110707002696373324353515641468001758807598955226069396109179443065445821773043986747876733760976877074551845928785955036472864761144248120508839610799506828119548668921802212858032013615758884893211607243738157186751464564906994718203259987938480115654801608788428972490785140615172939258827514872322364935580826222601991511674817977654513993445017722636705637717575714764891539480249136099292893982925959568047876315197678517219615756365794482995477306782948153256035129550250445969421794345938395510328291917079908032697928176798422929706605975999317973512031581228332890279497510791980415262401819773946039110360822072882437061672054429877749992272400044609683700039043022533929766408756089007874439765270847741387652156874597262216716270608081418467155030226380275550801319049309788143057010715661676455476635198773917291275446433750250768061958740806542899516366744743459599763645214058140087774887698065229100093388687559932882425502818199729644879038413621896406941938501336053499549360257095784417140353129477578453547716536085419105353847602473862560799941390792244742042908671516881406868749645202315976879587324390825033124605251102110182675644007395962689285742659745860341574836019085858707243411697595146236366574327511036167637976081674138969758008219831653808220301782083711959285078861996093120425500329964880184530836693339336507612956272161761188524346920194260371396077834157902301066034251123983023360236791921115857384446666163139811833425711576542514442834912107004461724442811010521711482019759941310834359951989676627286164881454128746848450472468547733572697631835779786502272969788589229736595170095667192803381123044324940459961019002445186256471345030617959834493821087867131075900276229865782794897022861953149956988503192503408334779705132197719973421768304471465966047212225973890054886431249122139173275768418667626033691009590167279307588246918869506113108104668965981618873837690921925925857005502203669289359663456465906992166660334210380669367813963575068440489186719363036211287016123599873984389154911797179969379603608034345064854444493001619458767780151149435869896742804495960420127750015358268204024376607154654392705721509137915943703801342070329636908674463915431850628524337276745033639079964156215361000130807367996931562057887007667327068844044139999550991968282037905927904899424527162618698423168546293448388329401290678300459161543514041680600985713175874804405925308261076335704392572128152928237035410051701654050179626819813601465744041597670085749173974243777903676561190232415476911777621672774388971292208998051869429619668352580843100865819466437359340653756135210269257011014011474678609190233489977146308887608439891873376430525413821031435196983848505576805593203551162099657718402247384756734897867235326121573347172075716481088111459930696040585183076678025462904694303383609383094720451969857458821135177851100869285351203724055108294129978863349758871385837385717396988857402306067842844105964389449348102115186993006354523471923589489081401279399920724195153138012275839507702546025280927918876951056392207816599489079129744521911869387803539514696718019413112751908360248524814960709368884387910317691230294569590000062639407806774784508818483356245471394239783980360074286415849839499633758290192651669652317528541621338049183437203521240018328186717110664719898201244639496818215397405067586794120723936315853773171538711976197557195704492602619874788137650952166232930364835101129320845939795059438874514536025728651148515026371441767710009284279469458011848091047274722530489875588356108071905379489602072524036765865064161326170638879837342139627283977049772097184250442279486820981761194193992638169817819744081912000925506033690100394641486098430023828904229578913517725534945070703424636346853640038278785325939470087712224332970811874719159175231547944150753793515100492220421932789569188266385015832704920158626740845927802526226345408077535367828662450560515541534001402189382816861380521779017251742110872471036613704616922167754448289574249165054990168096568142905721994517717209056132390289489543123820962182407768108047922038224546691237896418484180985657682251653303384955446965534399310885325273607621994085883076180117623613602236677978064896514148587034431721174541614193733294227216727282427051528345071485625377117379967512147463939498152176594391100886418616060210310533356221734240446890025851684383944403812455934696135876983487526127120105896569636834001921084138768015342845700458073274467369722248820504230962105604082023635919498767698675377430347309297713220400332378057308568644566029962270041678859438952374066956799604831777338939113938236689821629547968718012730643683150615374283911356830873664619473404838730861943481805947734756196097558817657431887600508815460843819417627732370122721361683155834250577215463076054212332604372380536255859214663057548812648935919490127901564226071765426504638865017026508427331919030261246196623720469512204375444481789709941154377779322055744112785882379583831412085234871546462946788782638652309545586280052715807404544047266157149874834879408365855773898633041140743952458545290474461119267737600357436793576432639086898710481159071172124809186921408214365851703054332852883055896572515755549213918375298598913137080703902473887062060585659360497726183099208995982616946383043416144033012401348272111228661393862711059551982107966989055772289579847753377926324714010577795790246473964044223719229917181355843236034992248685716977633877375964821601244430266894250543042745163932723523467814643282665594829130517811879728092568513598779065748865233942480341318999064734371671092450131637891227848012707290369902715973338911897146353465340313186237311805128061244590049373967966893445689735131266267699889646572798516919185225717215662625959904657283420111745864897854664089819012619749233541672223779724110844427265986005770799628352413480173412309870285021426828660137093803168597404067093076080376147447181844617200158454607965722284878538114598024876153525803144987953561452048416960431983764209337349080450733707547306816634515175768410998457822323046224060950787041450701246916474183604918631742210923978385738621911079586196856642880858200380217083961439650145111835222270196652128407509826425917803383265301640551950955575777178018895797451121371592024520659631448159079415359094783212286754252098373580824611698315884005284445392698683607947158662331690878243961345592951324579479004702043106509333297359322661296446405173054282182771673564926059058180547332672652931211309411662823526855913079206976777683612875310439750057366747781064878340642894464404725476732252993908438765158357647447748113946030444427648419437421909773590303811039942363109869544575603344338974947038199646795320723532262779181572303727014115374122614011353845074650036009565697737166334384815012895607471313722928364698583684910310000301716113048598223837279697837767392656158021894449026046285263486297524605825537020760002060014420747818822313381694876575922422022635415890509700668291027123497655247048707842049428744821489043167744582469969687038337201203046030603755433462224670105409161237533171296794591412628856972644270916168441037823836615860328860738618775919755509756369072467928379594660089205633203311543461155304957143819498112059057191989345439480462333339222047979839272450995752281947072629176954691674715636015556853173770487847838429121445762286462378428718978622772499643864475997182522089038676827950587152871831543183794296830964145653702486702348770140530854103970490422365859608060724288352457363450876324469389049773813700160164760092672832874343774313587049899247835307182016231264268379470943279658374359065000338742627956981140116543152104771419053636463460694475120821351034691068600786629583591536497366955753413141952408037786622095543671359897833993259468284812458751209742906137066790242623828929418203408839487130456642531230140257216504337183305058408669079727447028905403235309983418279723079084007484742197391801077740130092875183132101343963620071545123000135940706863062828646281667016185623500547133389284257447962623858419177206983647858983570098744298020641719808057997538483026326364864501441890362113707046934550933467283607904755550477284820824372465476506806415278575762662607819019587427769347463969993525746729936192634335350780591522770511068283726731038899583474985439065235984325253367035215627756743287720022610673648867732006886111021694276583681722470399288801565539762535343715437000758149401260361546892374724040074280206845794319575468110817512277460302805861416987549645334397842353458711778899134216455357692852323200544878030746133855069135824170977628288075254269422901522555428365265715653790678626106655873934490053510410079868479166059079339335457951558541444308209918069916818195322371341473559436418130603138997504078993292257508921948937275045410867401292767565913404466938259226614042743601127520705564400730875724965252066424841566321536861975224346220329780047725347291959661788639890301179068183737226443887375134733845504676532368392424720087707442038388379146900824946023964170980271825453792689554368558731076598462115476648036232047913667702158252191166574030786685275058256968010897431688990709192327383995821222743540629129059294355991308601091347779424517989817952038880701581350829598261767724120898929223599041726975015483289556701664216852157284392504727474573355546459874368934576525654176817090091222377902582610723887650030899122068651678966429386907822722458939635939284336580217688379102895763149885741256668170357480463796995202228577465579050290226955828202010622485865496021906399964129960039218103373306799912178514646581582104585711134479414745596877853482652417018947273320247247271799499449551593968582926955592154453085553196560714372983817146201683506381194942218200570071059141542897993350653330479435527560087954986228599325380968051319403958520669110684850507191396567015645385929468764285540593527818600497673736105779264293704598398686378961387700691015549298416929893932265584614315661994849554569397619312762427104524712080215488636843850656467057845484490121678245600130652657477948909668770787212481400180582545291043487533738807477885442968134313949948592080592554752647983756451429580964636136040963834221977180799053841360066376005735802375578930016767325788392993504703927714937887062760704669285795340593163665785619006803581764471233546984313242035961058561025802555231829134854437243165493394326216918965985233297325931088081539243945496716449279229978758178437673947031673243867920538967222033118784578265471910614392172959895696750579283160098503661315798667362166896152134424952461130764722966214923051688939353647294771735890929035495763852493020156486060071824792316015194903411814985282375523870151425203038840381312631695092967924349638794922494778623790307578127067481814701741450944288140027412388626192915221611316235188916135041061522917454930014966721188101564706773371760748194919064279834330997053974929035537972998246588405951600146138343614977709722423572692098128209160463801913979234204255797112678590264494865586921660446230361896756159800356760958029787204350292317013779767285129653167678880024348644165844218955291743431375527542992206180832264173826013691348174321367488162269632178817890006060823574524477005396225403652193420239939502704661041013975409741331913885615288977591402772286955194592365672654475033001797724667422344870842057482758419011434867265026410053705416910194559247970859555985447084108241371017886400761185854117792129361771866872532416946567869814047098998437186961175245979291962002362681934089390123949533904071494885666483647105883041040283972394735096004384678082344247913337699916126886565698147533594701064082490316253632308829800199653924516535761321745336483035423126284865365537740500560219356925392746344601211262818999625720904976700642599001495867825117593497261073351779944282552330519843195131513209589173793788687156581523580845160879788476076128709353651467315304542784274520997059849902987002877695949950495551258645291627051604515698678561193195485626002411852175659399575554274380081557965302256862214041911949531999520531853748947079313661786916339485367834883322518950698508384128895408284312777553979862025447088305423127850943915950779968995692363568177593614326711702162216147496781712203540728566911067473723730454786491481816873053113961344291487026620850450775851295329061426013494657699522145488226524609855910580772279858676958280584181920492202950358404663456665286384069267959223562540821285416839237399259490464895144665188023872260340330407168635408066298588158383050606207772859227137747901553374633177562528558910160012163051563802816036989406716031828564183899475912033061219729429069309690840842408871440292942786090763585073073286778082228628230760605610891263846738777922020779530986508282243366444787386180402637944224768218684408303281388264668606424530709741243852117244371870006328051405138663570172533967923497259027839792900725850205014101160194386475794470016760114897008958895852433329590461888890435611841927929163561187738737752605519265022538032103360055228794374205772284571507298396751991498253142032131200496324964477821557962837687692710837305103697118932495955186852971148476953140063719509377300093479229737951886435609116586821727393958095314540779807185700260122686615334092634212461459010961281665483772007821670857880037831757191212076574922290091453231754709147670644348009444151080287325732175351423448949978864639988744352174088455105810050962168331566162600694591760581992082987322483318345153145591417350213029086862298065410594763119694345072108319267570663030145299089969299428945894082541401776951139294071629919708869612644702259664530149181837397357015511858060024832355345574179442366493482251709873882151353825394839447638777858050830090304220993459782306718029831350023393230411850684284990334754686007907079080656861168426457714342383395312830521269776718512105557382362234599153615257699545070975416576081891247278366405188751068570485541262479217753535294362922618819183023726697760377025011180025941508200913854552914776652890169457981594629760444903615402746402120619147781890251538751515838613049183885613538703184713586552694036902392133733998158766916738380389389196125404464000459759203763273995989975158555034768733775308610460384635854583577819617553291853453466668301536849747839238232603011413177471114407139583574750218469164843067026766546535790354719932563811249932147824023152934474484001903078308853669448953946757981818568151394002618763150834019961372476698691872451150032981138569304004815473427720586229287179337845319481254911178259217588495522437636629521898121116002248273671143106198594716094201114298858616878722969282621482792020881491333874003949407941482940944049355770293161759659072493802090712349500686590092998197913888309163906004804057135948281633131612378029783870713979672974621934615223635753356651008746335940420861989971322961869047889094705922320345587786814071472274286063151565521783432451859813143441186480048813930940703938838268863144292292036461172943915457929643629114373979627468524332411711691534229302674652028727338568081712644176608422681367040606177205258034638784852624928346633841694326695463375939446700658592725819683366328559252927933363827059893231479568047865007979081431435279113625309668334786759293091714911933101408668874985710094754908852353622922555369164774455329701315236810328474683416942750831924411567881075048142291348648206687096223451900732088945565605847035282427491765819067029118965374805816123343554137583645244692982474246977790272205409028606281188294638079994457792747243332906179396427175728246634342657976178874868198702414573414302036919620618575849342071514337366726025661926273694114538240897135972239188136782766498178041502145074484936616069933440613638863324105677384947924080434340326539779539765922267156506726617456037086407562135318407184269064437170784898129158284252528149895253893796761063863574897454926946478184740241824479701850008787360941457008433856984034604656807875641217445493834013183044653268436937137545118168641367085667463775580981205723832885211360131197627053217100584050545462704755400463064283830673938852926956818124936569663386656499616898596719620790907242968817932839563227303030649388781896968845331145186475109821439462526765519195365209138952037616156671211696322791090487645180600496365016852617986458045358993567486415666526377233691736831422970677510605225791158758751177216146112906237959437161451971333869462037469010310116851396780009378935862744847330740979264087409389684903814089888220727120565011443703071170649037219121472532028584367531393863568247088939626550926198879401933748283370978972063410691245398138638913981259788055390188849087455276365663919625461170483596145077666147519546218470975972699210642085128013496803036075027137374185783494185262330061395986333015107306037039226652573685973626312232545096417586352558539311433329249144568487141978995883141866564662213673593909886086989126109403622313397940944334593305068315862025262278401845768532528953328860017065681847909099333072397146903046622314350956219932540046504511837631762093799574409322346385801775291179206804864913603769656122037890817441290214027563878807745619550259082492385038454342312721639363297041563629555484966657953718670108071670133364290528795115279760288823682529030048563171819783896461474978954403085347761454449034357487773057495334766585293472525902796605613864451868768901227502996580474091423750301557793506028945266166531009307534465415026698049005590077040825758883863683458126884985039688242058972325655948674123361767161035400682787583954446287660913531198131636248526273965244024324237970245997111609640514621516720332084659478355063995970334313820894580609243632446995174654059369908183775900085820402891178971655903336665002750678999480353424670797181969450620597516933524944723466243314074663284281095970104089967676354124136602633556812741194005945366316625457124817777468947178494879126545877846351994843134734419850169350599322661107124677338219154723577653415413458949015098075656540657151763661919911360500675828918732136095778401168885322206047720284970203689512118396679734921317048278936418414232066400230623854207151520381124922934584888901426762552681583648169291196969815422651364094791898758447288382092683424251944812283572565288012260459633341644444943886400743478457863545293745508761919540361196726800443014002743924129746399410606864440377696766017155758080720477846091243471248059978971832275495199233380529073511981707301251564659324442370076273084789222200260548917791820057924057288775682686824087817889108306077700873152461235030809326143375462180229445346613194067148982660369740356330294426274101285528728582864551288230489192272502267587346625255009789212592630636505419416028973910259959224345867731327086012138802346076079233716064435782154490428314174739535587822005709069980508703366344932074719312390751766238112702609265283313228981459077958563487654827380521680930115088253666573479695387831409308871274312336390275136554414989496514352417439143915941306909727539867284122787448748500023321474299294745042641195245642133097752833538230165618093176701647512296845127998065724214766978534839371705112364967954730658349873821739019770865458412095039272629747516493246834854304799803317273909392129540061271245628036047620042112993168312389710802304086842340653303088278325727837310046698509105732269273649944283138646597044820600943958765333680482607856468512678548731758298221275597029617859090348065057561349494501563260077841111299257432090109320328221218670082519288310669489589585705044822997395334135176124862257629658962761737869106609302618839454508507058820475494630002783060089666301404751952565250566763266010080358667941609018932584547446554630095403010828654415192401585537899559569304670588111351638834146948622453829685593459094509587235449767015893880479721670166861559600896584547934966612041864572073829584000663296744583932696729832527896062622889279212776784968875722638675077655949121118295231447002350127912132564990472691102198388147774984655607371305034910822754217934862008693362352497414363022588708323167333877696901081162253620248318195438223353778914371613485197687241053062127072478518449279345868960049617856801164823821647243142347227003544708825990076327718356078337114512696441468392223089465834725659585841884216318914994798970736112360182598027555092568615148296025051187527878006879795609458361631569401129062955672276240046663714008742924673585630965143064005351186455106574379521343694785907879447264927449519615795183987059401586796938974474593840525338257349331026768487569730475708723286930125409946736753305496729132757297578514030119839731330144488541414750335621569604602340987005254520604013244271953688981847785532597793960756488597477169839891615437237651913037062251058325859500068947585876917355997481291080069116739277330940343158209827731476648808163139491720157952513358036538420330459505810672379424297015885326087033674897935361234286408511881167399536679569451465580274656168254405328351596246947341477538149242889257572899180702548372777522750028326444439971533033317903204223164083843516373952043090195795019968969338136262639944775214616312387599390360908978072881218036792128604842657842114574734276609331531947253374593340973816136045894908793468245351411842936787012592419278521164729945593483081860664187038586366108233273218503707186035525599304366763811228857365121303113568894737535362712031756729845166145775098172856732381918448797093093167604307752946546100219579320077220393634148944530550240853314594333031821008084954711847665089648296525113371197424787696951044852935723738718725614613313209855127151626717863392368829370165997324916984380444894933049517523361976136436180486151021583392934450105105922310253569052429465690127462781353668407677095726526882465865930958529400296979088059224814763440649826867752999419644622638983305298648283482895748978910222178837439739199601881971041954613227560898132187169031693503478678868721588123007623933080950655612991060399473596824810794735738270948538437970950254051432258949449221327055823679331825617510767862725115667180790721909537841581801988000592595523808112408070317679783962127266270902554270098267668280454674227389347481152726480663102739550535191176816415459501619561413834508695018910599976065869421130767466671166307661135917200643483227800315130676731086107147480908540097309182999630929572405933182089552040700398724737761580577491002693540218654873353525459134045275730212038606618094023777434653894332179281178916895196305104101167606940856796057250655911470910751001638703309961576522739885151013965076875477097195065472221404370952566821859541120334075059808072012579420995234485947982031485323297402991071533179735751463855182305839459708262557806979222015390617494618349547487821425180322770194552542090631489146262705351112582584608282868567956961502023092941468873112182544442758337672105397053475990318699739105433994385995742020333486534995794450487634241492754102380640829429927569294607315905219072503049103769701245377258469621594905702296095223777646352478796586189160803566818910615268826130755592086784569475053589339669197677131570084104205862373472893736908535287448079928250021451468513883781182916685051626329936890350102535708365247165484732793663480406370491642869343894209993672102801303110379494526608926315372664651233527984609510146107584576750589511845971256879599414744050893686095577275642784922121506007010048890932934397078975603481157280650870995479407719339834347398127247746266696019640577003839804167438617150082897848057247709484395722376015635394779499816239031329046254018043160839596019593083849576102947082860875498931433483826226456432402310770751993350409378537043730321336139598305645736170888587303604951540313149168617504005981427696588317889054075695531480732379564684264245751899629594494926132334759296337731758572093497925945146966312105840873771157033761810641272877116450028074009185176453849602392929999064382312997816123539914620941335848349742572716328423046168039616936717050730131913246113715612126171037216428089764825830477776643761053746373324749984770721215709291701907325844827727323225910997675453487162130080300518566328611077851546035531007806206530008940159951207243427260632452614615841425247121075442967069885216762485952026966732431428368453312216682569400149699160551704088345630602700092220802765571895769324535168704050717177368609299239351244958268407084384831126257609834365575796879196323848242340998176714829177243894673746759009428140701430080205158192330859201788295918968737099838182563735525645018393808294634843621898524042779602183387162121188276181088576700417004779667123652743181819274664169321599812523945831525923947026221221662908544399461240804544011136731333693888031537475825896085814793492768839456834038470985490958675040405128639165889520311971238225639956759032707315414948026383122052271002996370487994743982081470633420903896751682930554992893522439831920686874888693419694490657098484092609153227775901762553045197432486381087044900363125421744431454955054803662288677209825168783408077417141521993033623063335286489740280587313082809950094776379825582454142438076355239366886527087710312540726216605541211164686850942303821883123252957786713440356018252375590795491807378347478994052893243587931118597217803348276802693735358365881523905084659457576218667570375049393958724677336873228296496279245670964788000599894941497644586361006243452779370648332179093808193900590207855788899642563473262341083200553751941975855054469690319277355684863291011787629032347469150561268835622427778819161931417727588194032104785287166458193178158996242635432655357270621830785814666128986121746551359676859155679448202372431369331330447641244794506659077446708650980893434898572964125493583947154525420602695764706588644662908259989982993059241679087764380657178183243210941793280848702275269008818376997155966443207876305447487383424143349974358235128866948620624407975328152023269168267950174342417023420527332058402425501407830812968163162390354746315636974154097084187748709004288861334742463074109146255195186323982332886581431743615450476847567472180500025258923526291228052705541326288063647806474860018415366003042954975727625211542381578477984563370401251707295671593353282652604614564039764558867158227244769427677486641351797071180913985139614794910289466868750350703477938626280931216492764662027784936965894141955416484300388325917284814612072887129435110620692901921762412899947382655604499477106193310380033823516478130324026088488310212695163617167623649245226320031591463326400479246035544421938873806790811363785837254160061048671861723986018328586622331683606472786757260733993105928968596005028411964861907079258407850210262240515879794889857568143620096505147441434500742277024723842316901429970909659514538723200052500146648158676021897254370100875221912421813415390994226811934144967951338194343114965194604650598615143293904310500149564350747791885767143170136492973193631578170978087380642140502408355208654043412246450786723090475848883782551182920941604167113058070771204983857376757833343360322173145936301117160809995030615096701234268604767757483807249262769605585059068792710564194510243185773448480191863880075782959935909025067763831071402211755972103550317560154617486698306538703275182885943569896997161416496730432009966468475363746141125727670188542697215754579792721413131198667467839714941343789004023016660950874044333746742624038763632256306961081228891205364332936616217401169003611084840054784764164501901256569581560443881260776241184054466570780967473044815814693472502419619431691666708136431947217444131579627859671011408367878272865158948866575992278478181079499757418767060647300003972666819864256218732124585180320031551044514440822529715224884775364734407965939152208370913057154180585909091503221910640641534866951410049219706416763350203832808518893964398045466152103538551070889237596330500959514371950504438293204420644634597364544377318590448186150773491555776476981438869819996940083315460731892775921050389156435635118144019529452042877995578008970871231029675597376759579967370208104198204668890703267228001963678292456056468300118261251715657352669442985219682712332868405908650738290591590300276548574468809819027532072954506139067437160797595338547557130034001247969714848991952072750166951229417188529110108207241905988581938035642391420945357707854087932125197808655380206837554318573332106936938973050992423960774872944038172463318186680434214243204454370721949152582693903451243429795475990272334399673121376859237946696290567918520665430863424068143330867653735322087029640697032263261894769931360562435184043636427078383423507268511451800179795233276785767542534391439957483323959482510385070771285360086384854307657250190316996554345530510036706114725650262080967627509484120613866470550118934686945482948214337543867760559893424309103606478325487762504262438536280046161382457759282326458418172654181570806358116257332600171598491435306939769252783473040815885664323049784404580735662331210355294633967944648388760567467689227275349071113961599658552131304363359952262092369150964769834798463990402922096047383160834302939972632775782512925936266347048705102130244404720815320844212583337414644627574463459746988086806792829788551949341342397343650724128144766815741468224691325216437694466671130222212801073671609919967481145904996128836908212957852287448376055332481155017644901875001899017569653480034816633661072395158230533473609077514596341846424522000932762611026676895163991502456267143953168022190171987710851530036461153284908582562519031714430967549571139038002026380847951578583152315311374239880518681258666531863596400325224935858705576621022185997408121045758951292503991638985349727222255431693228275528421512133498512966594746037983852530769840864290055406140743354190958906892184711417191421269611683274950118954749079831613693868561250452285441239211640524020993752152777777341831199931953425744622555482976555431176896629327061460757797562098163789484361869798040178881196108231088983126685853242658279179168470823638066759638667300274146124117988964180137863928323088571990786432031801717396350958037857288148825401971520912270562470930625305252411253538782120463672488632431517324519302351669736379832857113895425896349179600982138411258964023052689601587081324194135396934928352265177577930443293486866178509674276852911245119996508811869486582389853555348728636963632209377492032338262882187038150150315815697884213286003460369038276689635579820604347368746837740957506445420174690645422218793375604577699804564679170486612136067486537325212725051813712259471583834116043938145597491077255634740794020310134971927670820187780300978648964324301802011469883938238337084541335442575303049390739533703552740617111562324010479702910773284493497710454666392344864480459736185592236016959473489986609050269488075278562513690912478934903651088844983982098684522446783648509754277006351974555995171157724065093914953074026814897913220721518644832822951634525965790794384523815203958650684926580073554502999167501198684469663094615985969181511686941110170740305194248466092309852154774719675031303564837048848832908485128283473030170528421389710561313227683579634230890658833530621047332843596904493067085889237594874363622250416830656003553025482514830179372273070558705578527143678283585126021356302790575634690725590914159652339808487402121041661604768053954502964344457015070735770935323407501942433983678951504675245560225029500149227406242577042683924678668580236805242960697101717599566676835009788563251887940004633400828136863982419243028365948553040505724671663027010222932123446833607678742168346569674047860744248085417513053546128106174104645336690276441357872770511918652333955338675121441275439125264852813650144648388070260545281305121092041907997710553775939043408286130001559919553178383370835868891469950208631104899205410212853535494941466824963976623249470492472585686946639779174510639604676392646456850017784162626289746613204973474609639720979794818289192368078157843517243938872007817952996468372700440422839056454790983193948665711421426314762497400178157959219936449383428769307579147995283697306081412609840461621032922124336447269718486009708343733090145242774920580508150986958311327397154877335196933429073341201970349582080092146711590266749111136092917761704477821214883103360256865504058733555430768792885865514417535573949325538423545468366345524138590657199715622671636581739978462774871682793339749486837358725685440367472221040868549964214725297353145080031518354929839832595886892365996905581951324332675619987677863685683122053733753166905942749164238966782621160691229565915889373464226826939300936600859708913176615773626798011200661371108835438470612338334803127907993588097719163631701117231745182725701160633834893149187372997418038343365500791215364040724617597325061600330037503634487897855682476438241485606460614569414352651609118265516482103292493289804525577649138870785903662406962144572139923385635444467645926203920062486757668374413315416821347195495658151783771653091403202113934084032384612623557986402458859084067585933372392563430064354315893121493485732876061310371948173986023372211826883974615413856813212393053611152715391668943574449915833323096988974009916898344532188343360348846723336310330408317762583359288403495056043989223634069566079918218671614568103733353029582014980936166493901702857146337994348893705850404630156774068724816888707812711113371069965028978563830077674313437441173593547033852102175771816544933862550451761957935379111261924604511478192649876514453249075982401522796835112543331060277440359968866374369222334835242320024271542665514487610328568010283000573824581736683446429165205820864461691755833207258820825633179265191543878432200042384510092460532070553898054187050375737616204053994259378735367634604303252692104641366293529805098551897523504002530985855453594224651289238224705814768197511136987950398945213625156552059439410244755354448055579832894746773367396249997197528087979061493334743279008628095526704563649947799384551666872402399475800257529617846941573012784326191840676899500686838558031595587191622339626741297042331658456186491422859581246193825948659712481304842410004334379257071657606765388932172638088265311427502048896766918315426025962264551775709431908300125610362378657238861627594515597777698364271365314655208628775139359235923361638459361620402119335628723436145744735902812377662995411852285245400294740843556475096446400669052012120580285194595368351014366184846652270923293481656825382668762654866765964827020248614401918567260645843250349359342510247911069271666607578946263995758398916369305755320122819897303839562667137561361162301530887652505209478322099796138108239153841800481570666840011675855135587464162146433702566868521346771630948009842097514555686949671678610204154364529090587305008607774821701760326832208026964093529102349099403631794439744033319252330456205522233595773571032600805530165275481159922375558339032158448446822676247797395190870456778776459036880177801818838853163817599035567776885960382928598194083279021790589883553482702457863334587428035847672346171192718667925734321653190182974774269648990243274886967188157901553636993837995571145338189141409195196785158918651954849899813947628271111196874287735910000287452431713914835955783591476849474085326888781464458227391473256327885262815647028211727283664455082580831584128407246388420365804848271655958444250797322654821406475129459294628654119690184253287759581115681427875670337575580388328697356882119042658907306416499537690988134848047245722473558954368951660308318994557648111913187597531379096460081022962650255365281850345153899901340288516062253286335234475738336150220568491667866240910651869482635573772785648324063063320777315626139418724716608139815237038403364525863290218224957062825195635011638413853228087875840710380805645182940799048767018325790305199538522225036687534443153053231127266543719703007759185587463213666462784244279427831901594561975272368804823164622943746378824055536191111898089089261512041616629670960942802112464614958123463309338525368074778492763462893794407960749604006349485213349306415144079934245930347715660314306219580520884354761764749273101483375101269013306738382676169748095226297188046181885999736619032320340708765397665978545858128348961248809393197490493655260545341371710511474452267124958196454126218031184283675751506464909609885544625285201061261955829575068352063055545497311010657132800074045446096280554260962617823988144515947895335104041323196412930253452914227575464927127384903090084800028337296738901328784313310993765902233920878753729521307689555687673062496475460617315685692993875738092183110269611700278930344677431153360000592487801757557135728748875560294874891173773513539682026182720490926158397956013367050854559112458641000338474409291918031885598884854346006467239609444466463644314748429245150569918375831150405435395567879658301493303867362193857519670015625713697778933549197488620691308298700166417702551925973313047715345875352818763515064049960913566514586748805720415138170956730272889801682433099620411370909869577500553387920188059736290688557951387283777236503906164837492819536404104262507764189591897253447832092534566074906444107340612174956530219285947691792581369301069711691861139622653355827829776426318590658432525622874656141458088570381276027255580343750638785427245027357073360643531895648052354262188051673280122786394323534741744292389324081705199560288677389064008945156586113375672826357244607274356645640190871461045568449507475596081543580105056372058810924282663333841228116422704877094756115670275262592703865376286308428284565409583499376910513549403444345738091283203569734653960060370488442769131783584970761264406299168229808129913841101048626117500319616507545442467713806374808510048926722401722766290706250001676302758824653444366940949793104597406172548117263434488170141960786728241476770758288954453086465008716446681393380768076214362304659664238834780988440461812196574297460496252789803616586536871120862111178145777043266875339092427662376025124421428566137511741909187124578452527616690407450404779604433031022457076114503259766799067629325153986090098984403892336598878888538801589193973687927057387484176982931295615621768510530889229632678474381186402070278347051222923245509192848302445711746748902819017701582369453670286322563156632423989450835294947230067303376565204312113778097339966433482747795021081370862564426143648315645535471250085350825374232243734969085981841369638821945250398330081421454688938565621147126718199137764353687280396559979011307783930170181530656687596357726130241305902166462322519412002491969327159847938598825955759153634937051167649445454738686485206176637069751900720290792803269856293019487998066614667006867542549587164486700221002196248517584139780950244318714012650897138470159278148445630989624529352255833241916715239325352360242189309869570634679330247307837840682904563804112190880229312355753505025343409517158926399381606467207763287034699705615166326920602287949835648927389209738569378115510248788604185992616735534162055388587371717378938686888525850312934442062889431395079074006924894207753076191354996335305918756459087394197497070242159918014192719147146436759175340376066848181062831913122887570890642912787246150210235490455668768068117813477746340987136285777866361950906730866013355523127610675956668060963096283750262355961316901619104581141307229123640932065812923204704659506364601785544587430000236461064865411742553242615815325615443325969448832895249492779632600391972124743599286758734022155287391825175978943127485932796988080630897769667187935437135633070243409501853628460356251951967344287682348907810703550060368414565639465081575731836111419326236073885080878822880223150007761392117306264116629547111358172078607155738497161266679081535415352743403838056207396056125972741173545260591421326245890707232889451774406316338350451246961390672597253153495063742841272853150096510862300876959451785027440401669266481486297592484292598781102388091684490026593162307791322010890540636631110943520441807705281773288583827957337973815932565729223422292417633855517906624287864775369193162684829431233387852438758864783438063245974809949549924957391804638675827373149066662773021677015073693642227035135554049896635443157126957291122506052985446774702317346778653683850595550676027678421389309322621674759169616035019499870138315337563378060603469510213368636909457422546885853269845226904905706372192286765471148699857731736186941060693812847238910520312339005504350846665778095098256743318532280327880459920418041406248643631011235545350057383161245549307133728686771646008171111320582261546562751013603319723855511861499720305407284197331856930625594662205881847700195146625225037007369820588315091096072330512798424979927013915223410263172154117874910268282380141007595442484551623208360050700150592031044184323988130679515454751347765592424115241715356590010294547751996860560246537225927227121090712618026671478317439980298356765994441888408931363122176603783121608129120533015952845768286093693625249356985579220565223700880751928179852757136808655249539017443261246661194580050700243043247629047681972750508207029601135780334003828365460267120101568332927302428378559756889122103448336618111494053751319750013696326321011311049728632047631186822655673968389175907255759453391944777198734352751357839241861411472549121626751514559659274716912405470816887867760057251204428885146607886766407312024424235561421847379555829634718408262776065997470588356192997078089094066951042008617002589049974599604427132960909557220241169132133755455018673951525518871539714741711196350128386447845051740334598072520672074984940288268957944397297059992863092659123491705728288181671094382138408037268629948425731008906310918919046757397173733095591175401592023735712898133072307765612346861456757398319473655383091757760991930750806718718143272504505634828210615002056338252770721411141948781559431419629025732616933668963559415892998710639008433425475682843958192495947482362607818217327115775571850605451443433520923768734018876990939272900604494894270778668524931429105449854742297071475327738171433360501127074265434099497940315373275635436697542097721107892114501968811017758093498289329938984768121037209305638983351853211793530993018980730253957889271570925913027377618008901331955301994268711234548249439988580542739392435149980693368950856890738768798946215766801053012640845646940738834150228147463331699964125356086941860820232258368182190672246969045210150551352009721732035882805201847609864057009278846355769633035042941088907743492496147113773812211665508419429631847697758718368042421131136953761077256302366785360283492170809951788889553381794676717840711999645948712865773446548660906770492256775941421098758188429242117589340598984943415301175263401509263920992267670784597161574669875125822106055275520540626562972121000250170125629003853365043634390791885519985286094726469137905374907655473850751814940279736778617427903848001192310580832097931186392728859694925746802977917925976921448891144819267303032968660435586465753608112878218593455577141303664691293762141237939407827184968536786225872762492238430168408328716125625890277879516832258921379918606366077285603574115935856696282007121180805581974101124582061703345136949180299184368783720213696893817634116382088675673547715889468191754666255726473063224635925109235368050690696010255957785387316900213556160724245595481480580707447584568078383754277351434556673462186232164540248765325635877970291447388874098409230007567228569948469668166087179577998146905294284304405880480674632945397717313878737330553045208114566145066964595474205815850154017312902998600978919576778190621432219930430995718109716117053045628596922717642976134180655735865997581754962634438000523431313588555684316109350629502434378644649149162771823777134892203829481121933359934105808980557412082456803284702244944681166408004525294650968890631428666116138241224345542579789599026215966995636082973814355447307051515103606785542388079913735664788743354373737313741504245189647017067203023644988802110260137725485794926836076126555423114951565431100620678603240408987500339787647189790131639682229567537838547049202283643239019060489244837387397710748612402838811424940083725541380856363647577389945658745834848462358348859414325420115541332887615616735268423385795955794172554098547584139219592520007136037823975950289911874237423907434066892224164135566696553132106089335302644608914200706820953237487607481895546443333594169842706710036139660610822888136611259799485019738391094311135311760096953053431561634675959173906674131665015311682349186285914700774978728615703547601247277039433972331926401731789139261361351432742152345592666750564714588629261906416312798931661959684499299873947740589735400395848789796456641184610605961581628436642877415547254894560948931888085222089180109095107854514594686991299442566056185583229226877426285111363181636857902585090662515428782156053507187427309827862757494304955781635910649638557984107916469834463138479452418976917155870367537155201386787310272796210237289685164217855266181116209417447462521695389583726935793207973998984876674527950123851280854526857617799536775315982588880662040634250395862523340849709023090902166527514889532745351836108925604243785098830382068438408231832140649712301365813523190591801448621132090237435335441519308748693394178704490844348241452148350842398583327685170118554198058480362211306339077381579860357977847682286057778564458514808361115802304005334007787045110013995692331583844688076221499497184274729364450125075049275458440373526873423767326793220975657144965965359438833173165057444468153066937012565941421769103748338129559132784822914734705934434822684951178424850883651408231888313017792000974797969112544302854696472793845754088349012196908696071875686475863639541987924767754073931718875706575991899844953322431357600085330393714064463584237407385697858127164491156212034898861287758709146954572257928063528054358030846088017556107922350181016900505933738958426757022670112329239669868833089015061616045781856330770993643346191010827764588435445019100671977368164747875362042292159519722876402743259066398017202424204003228891907503985480665467100715360884504561036020898231007661291756525014152627663915567770115902861092164971248894378975823144913504579559705723244044843854692412290639992629878875724068744332221109605661454406027557838622324067377079335070167913367903862289947477161934044181161529354907274197431051645054257354834274895778415143443999309927491769901689764011992098184757927197656478958281583813311219917088674787366680406626816502311113935014550136790617462502826033999712000434968554424620119798505265715401434180587446525820637579880613877151516350934364787120772471260158207416435328042653949464573472601239651209720449970874119433892481072241673400491859067537990524919877952645427990253455705356300386114896436886979799599737587668657412361190604416440381601523140297129980723612873511364388702279366897041280921843054082523133653966617284748492935872043480569841475783288113540295524871174153059990921183622772451391549263961978646529485113482410504959449354958592671072511820736072348116868102342825665264371605907201209674472068028320078080785111702969648191841162442868069094832415211249484255168054708882068151870806843798023880379684973796117010295165927471232987875765333883954450670512212642493859695151284052354884237629027730957645412966467766100589931919047528446164161443982032710200516089554464411608576470744196083663968585484332360959248528737248166529823253470785627069944496355048534734717926821832117769466205345329365191081207913352055167155192876315653116916842074652353288990184658916801375287502908494622079470646008570481577935383050269664276055352059274764526766952477840207683521019282064953322077305382902548478730705349757415036409161357639485001174805695401032595543217695735195364862165010221208291401372516671952112048263494340152538729417369397018047776491137030133865500838427006939793827868254589740321323000398001590881272206071959317912191069178547730355754619853920819081234834660833972140751412114008499103953845462677629563848340591928680043878153999800796103956096755904180471417943917281875999912170537312238955855237190321764609786566012053981223248568582739450375402458678270856474156367449698100588224959480214233479631700699211459910009267620153035822441619197303239802022769685773151838248295313001290389434230827442305686726401610411274182164031538315759695394773295564960927803330597605329641782660562071294472837676626015254441108964737422531299848644740742786915547230856849354661979322493415920451088734732620590117442958484664672951354456182701004539377874056868443588416109583586548078784792581549609648527251451749294871133952789351028665477772950907433685187725989227458149451402539144059567562902887337028387750069198583850850455701829723370467185394078541584806858139482297664489104411141075211085671136044614844205468691446174336090461325646663179460765696782556115725397257314879449549354738191764612562550337640085301344397252452835356509757673092825199044861925359320717846338951824159758818927094689725790253185720438674693434590979852947692129196937182529725720891274365625014209691459984387215855899135845147690484520457483966315657995920547081607495573053781170134724003168100584673815217185859370972443090953939626514213371621481845139604488985075626921997398595094847794422963252214911545447604170640885805450423523789072275824936707363833807146740142966590470689262829694432144659156189904820071133750278183201989657491589023605238803143455158958656095866434260855674427076004555015431835325073901967991455492171404810189333245636845581386742468223906518792461481799678236276616409452227634442171676856426924361033342261247779525029232808081341717089013826900521341679963614829361669471449921107076804931574994959936691481406067608574703426189258964792041572704232771304039345854801206352334509875922106569946387223578126475425865548721780512707084688073605645358243139242493294753153378553844234474071939953619843999434600962381148886125387437771973898897834192747151369209745605720725035379170146358908133709123655568046625593283708646275146597300324100339380003556710860102121088839521913669902076710416953462414463631763087847737804635716834311277867839742375499688073078612925084588686357360943059068066176258266951362352552928758737033542799556522728137501206170253074540733065361458929706467406991894150184418530065754356211341608691790061634672406099952660183407991066575880203281824990337552139153760694600262735707730605481194414146797214918422711374158253479226638164973528407766889938004298563213652575607761323864446486389457075991876328045525788578142856773216737560205435680218517424129890239052365190654625407341928036172436633438579725165949081955715033410383748606733044927517190785953384100376701109633927349617536214723405896449329245250346551780524673092763417060777267615596472583726914555298533176168425923835757475030895933475980714945584976881665703980091018512701841175943041401605333454059714877525862578620393129850291785594880237468840162708047018107308326192147287843923494107876628772013499522308910505515163607696277655265821615552363801261958683871970609310647811417689841513539913931518190462524761009011757399668001478962874680476744438624101341070506835705355235723463617095144746702653591507175429330569632851632526791131126903488551626278250605836970941186953402048093135199387550483416932859544378534756230273190611711711844022575289689092460192543560985780436155297591888948474446675196632247069072675300914202970948869883387456229808526896678788935120213575761091073069803098543609685823725933371611381637067193832569969098705286610598604823292328401959441580036062428966886660358624470202061219574638112729824627624045270583695493296681398591339413324088180099165113891547310041437223605019126097654122443334760321439969713484044149575400229403875002213514049100801935357795095730252245413619850245732693794489712024252339271359519313937347343285285203631268327469284230483844189028464883898413922278087757418867711983894073211977143532090727570423445082313491507592502083091860814479308962691468488911202757954123656824760915207945104521644383989484734549560005435374169286984107800448523078803463775164989714273856652254258268473785624014827761675229610085097526151437462559689057720983883479394977341251815499669766417165356904554694446602047691524025890933763273361759646387492660241485840441218606116015260950158263557384819402538370924028362886706439433970153920832577995921587491657910153823564964246657787729361431041392825966419761736459126846556996380244880916520018835650894796116904107444600808799365440166062180121156649154081459831105077561527510751967238611780012302503783433432213912293789713891708070448970277236335699927104089053139638800466910091927965177028977038608578504149275407452787642392988463785531694884558498308310849006851484764473878248756488822902510576426628497257060189251404160240005251490768295390176436769033260181366725381954724822076040865480331389352722592830111178527589917491752823337787206158591984194836232456133883680454382800522323934016742396355483844872806028125211737210304317675111551125715150683615454754118373009518697244900218116713664883518198086239262048383487253141413200130109320949696645396190447001744927984516948649428365320260934441808234772585416275878491278387523808011036061275100889801793041082147883006496712122546606846144745781816525179668271908501879836523196630001104190585986571941422356087476558123994367851100907228985093158846694937769970015173464450806914704300235591742518629965367233166925625532214033197479864869798411631699104795759920337273304344604222421460559816372342748208181289823871820083575053855288441659022751948551769361575467430686965684157969982277617361070053850596215205181115374975607559731378635206939771873080147227653091244440669974445079520517492719231370856005923119597135526812393574635226212931563180488288850035983876843732464378346833380094403393033566708381793086598291866545688455838413641623360802825285590708441419175271492508662290435137038518857240396731970908659253609373672689511625706544448330975762844953811932698313550124409463626937631763575465553953863288361909465425190045621464009994922279939558534134041584290555037005319928309749473687885496655782407711058408116324645021416351844391203898072437221540651844309982183398348301604115966312362142670961125900573861566457700289706678656546989185188955919136159075160110979611978258034653278173832015761007762034474599186204027403354000830799085747279394221301283755314677736573697107742227916835414816729398100929011778649749870990456395324260875309606864888685055659328233825594969531989641951947486665084915666109213495206551303837785311326826219772004209753984800669687926638685381762594569787987103279191011301445291870514077443321439834150920374747642728722404404566345171664575429736632415632118399066287571253789572204883736943079692461704564298361053822542431960005328949615647053449779405133199767026587653086397042336774123845250871978574869977142206074241592692765769498740387576969182942213461330787835439379276314740519418114166594910205446904951536509948639529353282355990047333167565781094669634308870645988337872044770039508239961633490461660343251094657426834484152958089199921255129108098261420467265001147356911675213880359472095930647051582734973496024433254391944925765761839450556802257563502381262585684300390153237269978630096769418971626271880786362892315819715866721069090275540297403070874987106886148903896107005840183396627706554066125545492856406649589053815430705325272053818509331306445147496829618196564308659601274048586099300369610253329921680139911268501092608396338510038519146749448981755723636027989112061476167637677102606366667289005607903629681041113577583546170546305312139248576614925686649841222126408816007133218780558159955091172159522652321421742070991776110953636538699923592226789807391209663134383122286276395381432643438604082808525260679775804979091761192716574757622597700524018967660278504525787540664165105608904126772682036613882207157324165026618789278768376847820780185440186739287834500006292766950244177930685387360486238493893275912236334150334630884721928145873774624340893957193566071198134525937040789065207331901906196380519210632213934482339460136825665428053435978287367048221604968046354319194510470604665931418352886568192116076054565913363832690243018760149893594109549277800988958870142380990607045751515180138504155888526369269377990900775140784273495193535152598512530200468599538568368968517557177737040792998804570833386856670850937617682534330950266563883571465407449430862754930151242113782637742051988535855814432110444551190538752574569418734888035906086874860570997530839412144050145146626830347497666855987190505507300822034292880866377609367577265488415369932887655440591504268444106134318621537354250076304075455248638938703238449437439143152037975563335733539773289053875284424904564270544810250260468164262763061328254416760218342423741978456180325687742562209730379523123141473937725308001088596792369595900592050296317578749131209185396161666034333797207534539782767820392081871138775824096592195675061802367094840758218088510471138654512314336941490524150211108930077399833903489198356504999543407299846266043463108866571646462268284403817195627887115379486297286923045145604450719308917763828829655140247854988994032472602725449263861274114930305692707989039871272638549734707039929075662382272424113892653903075131988850847398391582337199097491461880283200284003203677450568072227734508107746695930861057433422984140997635687180295366664942414140168350180986725189742626256716071976072516914484207312072301685961440832959138973693433618103854466489516567475485925020248822290489620921364409220467485489638193329248567389254920080109972401617656614146936405627046606882943055289262824658351402359334696235284296520526915794221960578086320131077679256987587180707323959495274911317816620571119435320740367924059184072406629108621099656149267343034090231202270751011992788307007347171932647285565332070296059117853872231870210689206271043774998707760190728753625907657759065721749612777994078070829524254328282930817786217980518989065005714139776551502756162329890223435412456458446677880469645842143677843125687761386357365359780667220618946054076193484098150542997138528469638607238223005105917974894744577153653346643590166481096871778147685236077387356024768684207286955663251005765470488687498360894965739862227451539133852837338002925217827161058657766633914352274294312543064215308571783797199799817290611774401259020019128169907383231861643562571046926301608547940324607757020243778157215704698585317846375427700038271626729666559887699487341162625684297976914226812054969929610256628504754453894241389423095137552081632040636013260789482791261658428267964949521959557040305198920832786667386939267851927840191159193294191897232654377601587698556588286989975557565812688037497091345621033859923968165910660791044902891663655985898602892755097646574145314839216643874745163507657292570171131917802861450701883357995452663617488496811691195153687020398039636902268731477192633629230119881415277044761880778091050559585642851558538892742460271045536882215867767626667152387829500818399886511422514989530873385934000913403684550918121520537902341121202852778485309787477405111066427366792827499688918157152836426680315532423191632858262837986438435531511874391898960013816716534302634200996190208827749141432073627487904784822585695530203019688854229539376007495035570561260983626722644686328026187825211000415992051096437126264336217953670389872179744213456109319451731082135713544445857193456111179291164825565845326263020033147564298575119274843342103147277615500266619352204342153211064191432049501563717084458061989180091498130533109197999199311976500381824054336829142429487309105111279081104935163563471983651604411745965003600888312933016151150804188949285603807153146060100389110062183620439918319162630134277975938866556459088917367739584590676517922963343546027572738883230444687865309520224763053973517820352377416443157787738752315167193450290401176345209028860802369801079089537578080953625998501437295348037147970313897804443191618162734253976027594095765229113920551396627372964716051545127508150580878912188398315505369458432487712247586300334088952960462633373203143326854946565955803228149984809599609843998849421307353408592633919411929964645091285017376178185496830022760462504764271342056361118498352248424612335012807160657489553480765377545591765882587912482927682318932130146029442739451171983749160909596840602850542567955630091227636446818915252088803350166990644185612322397785782574688453761057256461816467333277284492544898801398845448519879462530911801454219446395016275843259728422658122525729804613578738757187587090821700572161687611057965753492931995490482591723695310046159966655761156912641895948475007390148794659658123089414837200489348882845862426011834903795111360526114247036476856202673089548894316787180683684540138104730483524658047240356074266100707958881140116063126941426505284774762626013032174333742866619389559083437360949870204052808340797917522216115275341639151557008845426715453806599230648008345406667663746443131511526626811941549457744743089688142088127309601706787114118061558926888410830647358277809993440610296541451721620335547402659932789465793902842787530942358529688650497577183624536992142992372104788492308835590899282965654552338288955917708604390733093347064678963189863731584903748566742824219603472867766231839069913941669169425581356720716711029605215269736061826989858901395223732778416651354050792513428788574474962667021332128934959369556294870269606137882128372734729387288621289328692636049652325069211425327770034602194028424906965401357938207479056524057238817965915318996350946630597029773998984837725195853670895360009747223475257184878649531731754013818971294099512597154302189581855920957681370509715371870346754466650662939581946957470243779141918862721579871746569794559655073412088386342969351136185440900439322483809290984096615730514982184252449999678308979715073834157043836927134902102772632418145209769178726032710318495870423851209804800088894779143537017861160487775009834353038290731526646055373997736491773700583705009855107728766922208699213820681821509236679159112459925641149600010597584403140456589599070551146076970672580295967903256892211327675402614288114747750154929260391012173343066684738376941330932419414666585210199606812070152862610295241566209081435328547312015512414481677380879699386258253719410826243482635053003891241359622977311107172350773156848691420482399227046220563613288871552210284573635134162998361641437729107535502622815019618341579880059701124464141992934319740173713180908599848263634043318114401166446787343017137905155982884152678272063048499306909889549021088499183543354091010910576444072952531466011245358139003258309651442898684867072102518815473786684238731779255545638626017059380974603309952891710193342446438632027088424024086858500229977274647416535525588284272204140767555609467049029004769561159603788659777640507483090696861831479960544725193069192482963304380202090803456687966690995798775461336145138195843977738546736442520290606142418648820548098072296014156467476396948968549422753500065036876657968404249030536928549245307928215299358169958889338991532237153732207860392221893027765908509985261782168410008583139518941826270642725715836046626393950425509889763700671281826138898082793464503685459571084846455473060095600677512052883329103087351623574894929561229486623539422095827704127103493354517733076841050198191245552338851643020111314900066657137783807237485935480054303480353664993438974958993236812597864187072607854313949767367064463191272477587391696359459760899685669553659035200225055668954168416009123166178281342609352377070895984845207879245419512529445377186453408497514240051812268560300860107239050590215724324471723653560761965645938471943200759068666782692581767652712564968445050085820080241400471463370783930325968694502191262866656255074093548906483328520494111292886340324760134326838594081630577193216171669207865121541893942879030993684618615691095991650530331953806926452307602123936090768398364639219597712841423504638402787540751089028991910472653301338027628106246794098018388441684783948991022367288849470813132744749500641164083516870115720200780839613365230614774545970868492482391445304838271791351142171013672997334767500509787788082230075032415741798046077622322754014000818917856889599653826795708151618223298520131446424885584057105880258057686440705564062512799927867597574001811333274508090408016450221719562399999496882106239051541638661489965245174181472725279229749890832699817058728416660778550178058392646009731666969064735243247540909621973754741858176816910403251231758678571173820840131239100376996841168218519317870461795431999963385768414879118167384699629747082413834704706340190849098173605987392321451470299053408280830774411977214779144967499759201483822036548020170299097187856080649697701336703494747518347542756000499885810732015366268833663046974467660186052582755372443738276622579984850349711927054498781621065717145878761054436623382879618068849222499351723858802911428574158385336934918968026029460863574140476248231701133459507669446268706425403514310933343160420666448358938783788525435332550634553951346637893779331443315623416685485490552985479011453383019803352537432007657023291923332743079052697307501671735020790092977155371960762968051673175474602861286346916640332755411885372712817324206162965713908745897490891234490730534220390142297210452383158915307730819955944170963123557279849971568865344931941078916577049144480720776032638652164895199384663249538792328126120908526736799980590630725815186582649874344952312778916511185040763405652092476075427614273416661442904660190451622991954409418593371842191082428241934500700426598099341859677968960048757238746424859507395974531997863306505752253008692009267363162430071004626367175582096776907986540418541285373516432768764691597473647410745313290599272303850005872792285723314106289407176158278943128860609203836632898879262445743605699592001640786055388135737278865471169864631695851188759565817618611952822066367228244786328553601781292106209171078213878231801631124150236975594922855209174943842923554048979625732824023000797672846792053412538768352410871236651667039787206345352732784110697951864974696124505590331763683466572702571473797723946577546931871366549284943235000320811248350271731907811367682283519656586084685503012167785920234159986570232906662184651463737092561222055802949168757568149056422091434556519456404639043654333802011204864129828862115960321849864786154165882361975278200841253940168531101835211787383723134596038498728236971386929673877531011070376080990732695798001956140195433145663978988577940366698113226141543776860190212072769249143290729455952058396023547476977314380800396949222059741801135308968892711335554167753321816548675110513808669910208224064445669693024086739186028128555375503023997538401310105792775350303157633260659692853525808334256990752450709479307677773125340273017565366883061161502659060981455924823033019338007562261359791517106363936596690649187795364498172170863676220453236791005142952245185889136234379894617715503560488751942939668824419616356663557631893505715233045514291689837373986594903617523798805465117047039126374227760754099817475815286856591595942929310438218727805494893020658056949303894022121582823958841705365990302935533463923307688741287427873637012522824421621238034263576305591620922545552032100925794141271726855552493210726118423476114605915893304872613187419008022284482418031090969383915973296513788624930462036787965310750923641886661599366065014862437042811434912849743830122112118256773605797071419320406042402278452357656683992442118508516491350858862935898136851570194932142660780530906552754831951881428010288549158208846161763274306374382073858625600047444051468926630852060925419132658537801640262723037879902549555718734124117490165454063943655983832255746441586275375053838847837680179526223490043438301963661585340497219807975563799504759585008432501853290894648235895065322381027185288225970400524697532283537907382281358537344397858199073052223740684743002624423679647968859785033511685814420864341514785751305293094935065512489045706038765490856124506893158968336451336655459449463351849454099187653666514467014077228555146136184357197345242626090022880324508297756887418611774335671631361130569136333065027716189138459372742545514020856321376112618034039754199816519162566405638962434616309892238714550404949147132519070579155035337856198519188794751026844820599852707914583902192264586404438292738034879940426403921128041169547031030065466086425401691455343977210769559064756477796789815663675038613125161347720999306752802275239386525774506260926917287018525621064506574855987074750432371089710738622517972614799770326938097444218267935772842385566168496352708795431389948467879822354947731096471167798019202062729486861611009316164632422852945169388194530887538727661693954019266387665556362424249804838584976066878112321558449989265390690999547673022109125763378615423517705623505766826214543304201701326241589665446353883716620415718196330679365442843664512251400718918244755963093011805829373646040108926930442425563803358025031470764035263769296261424868818214451273343846913393322557235220070553834146361112561729490636262530822824313015325781116689145423891693284569592519620122325234998388526130159677524561979174407812559815718357650194668512221271359168845335456003718455625387892470626355791524700954866271958873026044890358095537043896933004653879162479199519203339163337719626134282629273772261060399972447053239330525597205513686480813188843718860534716799610664674578580262067478150653137112451608908079382736011671618256225108055789683429460334420185706260970358250043206976839614136618267629137650913912376331742068167918761849546677029141824911568474868347053689760018645925008923626788307292620408490601751879707528988379500924654336153434741138868776446443774848389027040833754417103418593936222990043729670382993906593362113975171401093971494171416524690730755934127414878625654756269993794691232393651893368607620834823936776017776260641736636170034208979138503479201303024891426308919853769465506763087898127866915738776547613426964038076771138313553261896565425074423660681639472606251756687710431294017113092320955726335530788587221802785930640467549976056995497014795406206535179624290737900600858415574009480821654501653537281831472725000348264909257202303549836508564302169441733863814284522897069361993406193558757479434795896066999002049242480985416187685361412825669436490614818786322831444112774036522976246366864555163412447132969202908343905664473520955864914385197379018347417349567422435087509316935805958876011465758237172903507365586951358841745705862112517214040614488080566969510396832195216032287553272987432364836704688074456025130510583173507564843973217174191362883630347954412952545204936750928630299201874289466204588282983985589935414559446243000369747211350921729293683506315886631364073478952050095259487119381031449290194189452888917790101982502868044425131214178158140378296470544210891814848315548033518035995901918956531180877248293717306390389490689404973190679042308592290048640394235408176984245766087046229516211378615042489960578245869233439521792607214598348941913773131351261861931226927948289883811140262952642942542960772988252605502940272952815463339859512679442568605458583119589854610108754321395332681565307929852296530225159783490763042467474188149031825130312030953634277859113254591573972952409837132687356710887517335818748646606537356110166236847150192112389102277530495349167804090896847019136994702517253507586578628076287981373456738830517983929558875167356303692752087713990317115971513605496964344962059638547617614508481290429944758546303449780963289966628862736683646278407422638584055613378927286605081575408750206489323693342545745016681180392991536935508752555488860072401383198739227412229226905399962148067148295790570640812454010431645762469552372785732305959197099501832747066809968725013109428793219060109247116813227559635224066047246674328048533854775817883863863366828150303578874548776059792673838777989785097925818389959919411548893597807601783920041197995409144035598695912790062257429612258686235138753683488337807496452693320787464631532273935307943967765063580012997736772701110643830806871314977269983912471353907934010624256089355834255485780919171498089663036832009980130764398457076311288828680851501521720161900746566473426103912094629762188691679253671263364426743731059919745391260629910341022422216023821791004125069402235924025320347765419574854098425951279359067557077710442462584368961931935766400956396595689350819416169549008631379103954350289237807313711446330490284119691380590188033945671394233212225257572666021470570597121904346603499868116296036283692571018593959813022142399717186285811521322460931047941756884151589346519719017291315469454681387168605420784814780515229202233829332066112408103491696435128715595798837102276435474335711872812123398699864292181263611701349365447040793319581634714082976796713973532148957919755352928451708861465208532572932312797622117545541805107686228131943012805407401770128768315083494333227271535207730588918272270625184459544801883923389898972752795286501224052568641900226107957198112320341283299679747980699766659813702033970315488581458028929513676857926379650351697094221161348501265538083852665110922780887018584626678018515496995133131909742084282439012662072884861165410286047211522992859159095298307357341323610098220788218968007111954763259140766830357351497513811096915493295836631205616822684515599098231696018595792460766872335214668593999966497020943814229309427785247924206516026325220587465245713866953176203784153555743553295255820527165177141485567865678043360294585138215492553814245096645181845556562863026233361050118814213719418366161961846552224245116853539777434373460584638174399404344134264039345970893582490181398432439927564731423048337634555445396453695356438306775558128021794874510217028156052337021612550050114856077282301479295634541085707250480531444469154154546944137337223259829780113386056981217345093312000705932769130301392863604305266511057475201075104085679843363270452077021878395329906857189514371168903860673067749860107486533124314439939224414755805306336287967232960128957101183268251683520336027301978746015838640913618648550595020400991550246742928064818366318221062042311144259597288992066874252088102877439361405379898946943788317329494763939079363645340995154680198309006147773489147466442233277612650328820398835735838608003694551316017611873864601854954589448241843814416211020108661933029296075359469713473384948755893067978921768431478498116218264541592975490204232221819556294058193331821675683098112577360031662253263337619279674351654283838746963511435842213254786155252997770877699439246237600763812724448831178223503470766816617628628086264952454667318122323173295207831582029431651046533932951305338287655484228367957846501917932105533130531331202472285653264041664031210709753876070315677669094283282318899006068457040372976078245125624568232203200128597339805876328055089358256540828797538548205937641055929309812600527085290230345149492604425817146735182400913348603506757812411280677549611131372229798802760937721859217921782454226609721684773649619156227973869593851408362355718438005579134702618657730435651253251794701964041056205468974170054149929370355016287234735485399353513104991178364390247301047683161320632995714043960283610608074181238603618568640272535501846202101538279268110136448022019089062313013648897470170855111141507285136336783594163877379986656149702413597950770620801464439830856409697968139066263608589704402205391554773639255801452254779970813273272325051611891903442656517902379779941443231162273343330821343785173851979372577920724254536982957302185609310419456088504063657954236683918408192044167649832897219764677523042165137820404365486491426583641819759159887417802417088759742033282762591393614040041438508414830939892551375163350061154792404653305398209466130219776502586638577945733138100361220052703368785553520789360945313181741186933516070377989576020968215123321480703400452357509662826897896407758038226190317646648375782014211736312868009339025196515013267412254805408422526626841620225781727194868786599694449051008772220585019483520092302563000876541897616746257230205067511960069370649521987924062294447727650966108227982921372802940114777247883385999014217651654585274024493931836003826726818596090307030453633600552058538114983642540435580511033570442924860366383156763852092334370340434202621385504764943464280829543523422612555593137988342420830182095512214142133572547655135599203109684634424282309679353901080888084220529445480546152220332131687304302775319599509306850268116072418728744494667032306898998280645019739674933939161809727122082705594382824337764819978458979199502383934462778055007102717829822013365199211213124707944218708475732093012109588064205806988285363484337583458501161075623841587056042806337326722046098071924014404072461335412873447093450641241650461284093579041331265664949895690982016926480082242163200241849097276744461452878343211591673818479724888091606481873505212774099570038927637330766992594417902266375824730327227227101571546520219553902777191823337730673729677564542483171400599742958484290341879703926434376488721791637155111422590738778789714599257772412444573138024553762731447207967839945633406881324280740648943898712938733794353571848471044581850582521748028838764478777393479046878958356726297874209389655057707104197698595392835728547993069240917066405557967657218523034046344942572688551829865907018641607619840344165610516788085852040982808928663812846619873486692054185094512759772333472394352899664187512085891110437849997076088853436438378432254039322628962455970465465608311532839387629056981678027457605454491822433356747379762818431073783526957134488550630088088069130810627000360925779156916333928414448549660414117142155901351400733828237857342062018818944786005004028060303266942218766255533424505240858529772627405825277187347061258844806280251250629859769647988576428182991170431835488047184083422934758530736889038929607182761273795785866883896429152992549842038258795892471900256348790422854958835927771222229193547400917038653587859128516934574147322356265040688723942980081602182817497337211031321211936159470194758895325313951280013650554735706625968280979851375225158189484381842846121797340016927491374090747673252397990776667534269993582222118120723832681009717245102970208704816155882347011111127606815906953561650412639074708250527599509632128379926347299176466111514972009827748921649271244891792599395931364143845636272038227644420247355994051806940888652489876534491292943362605225497082359426775477947256813154150141379146880194940571977425017838068772031253265446302117148207391030433329037076805564297083509204609436711641525494245176816824933990488296983328766811531852990207595646926952522353876271408807336821528503076732380124965444559762605555146737181053792255113049749888319748670943741550230255146997939229212419731859410142568692787162817603200700201122824278250974191489282823407275267889734240945179743371997498620022684321141907409195401346748775142372390499175517724890384292681083939555789867611940945046646207822487759363360304363003515657613931955864895296602287202390399686516176735012024557122957181952608927618016840948988719290920417172788233407275688616133222012342795590827827553277661171729687131273239160539955348918578248809483567101450406105761049588042171237628786869517472582693130939299550356097013661199277092147593944446312268872176169455057206451924274969510177986860613578531461228589724742574057225022198905298995961939224183674853344961938493241156550217435433764247301278295964820052145440492960495360575579166880349711195654661130343104944088003715410271371347931947300285866719268270256454222987562038094876735223230436681237285901370698374024982870118802681980339432034329310262397842380290276159435761343592071649145980315068732055617222814987401386049158806572288822841607811152964088696207560056469427254655388601226604759237206892451831752439533186826365740636079491556114921767321598483666585954203466811975880418807282074429649925399106172445180925125935106493512244036098194905234535164533271809268061177691861366451218394102166896525260549489787010019419574835176936291781135025007333930563533623573823708523405270183726953013933249453691837920292176388966669933861925533351334938182806205876714380496378756875145873283866681216862774549382297208613013950842039504562514712752673041574005518663887981081374116699905055199234202241789396338899433904985790980287767213677673056285460887516637137466133608504356745517459431063244114632512725288345489826480454915949062541137242825641215037016327661580396569030158732823640956279682857651750125841282721396375120218595347122006956049768605010181234309423705921829972736568518517441463307425977042701695459296293271731786054050010165066007101810550929838603103185019597382969773092263684586777785470634787411566177346439710576244867871966505654342316589139404076141350335290851713827865433391000119042254214462594948261323066767406180700002679136803079837400688801404860439354405405217140619493675986753335644188274210656688482789448993712858185054998229522536224568543696161395533455565433013715796811773613191199203179432657213989010038341799574901407848636300714571169342992296149208947804060392966696002378735643438755543414655009995174116166914944852229789981669202446527419930380026631984178922779256577716346633879143505023382038584693338553941790390119971866561400298885689905977372578344299991573609367329094633902952759587682930231918492385959300282799561072971776596640128585364533670249738126847244855898495021408675524326410237033464927226332145588114340434671581149299155989163580220317570579398325861153549132915537669857034649919191009107584830348761855818265516817172887173802900619476686520860327556367990297082300520828314151091353528832244873677536592915334490960686952597789101532401902582880245809167414528645807777982579912749820817854349591474346209361221586016168033112188145907246155506323122246972430721272933309653272140859195734937820539967163670628858703677959927489574887824238831388434604540558119627556452786512554241820172699144260124948929362224304273202900613114512016368362066921595957182103146772675353251736943440880509240731296579690407078275134856547058229793035514703296877308055077143630912653435665793440778128784772928639990584216256117092683414313604600519849711144381138362987901397198598357383463674800437663837964219972477762881054519447120330721250702288913254521271690085217277804876846103795178826039537542574281567587264270118062142205638939838878054032725656007365769224823096941809082239365658092555082544709534045610561400675785026715847209029633476196346095226731825089882580413393954533526228798844915076393733978308632233891170340554616003571343141389974072786308070420469326198230650954552669466910573159489080363386432389943546398479429908422366341689424897858015728623311028734662036352201869053571784887609662870656209438605914739577620220159999846778502038378191758056989029986524590124392739724274860563139588047634040341895073047923531082898428407791701020614102936910426992783766470291699474400575131551296419642823760890325266517615279710138196697227840337665152067781537071973270006675056376574913420832633023412908337250333280392956039011650535249539123634839594600406922284175576266343590058413958858210948365445418245142986021800595874149925451356242364392595895111859479859838438188824389333091312713928012153997084734896347179550464029104788102740313865568048161797663813185647035644597554732843021337815048894372992972995432021938959915967590670247879407451576796136793482729233597444422261520594659865960611753858314932276405516973108167877321000889279856792469167912119576174156224239179615359139127862325750067100065091243526558414252009463425659757570118302287255697008825485583660397027226802573813801794054548309952412746495936854786013212393874356374245189838018732200426032733947277673866750155873839947720331709116337635240402117918899057822816328174497832504553799676226175540462626103298361216938479827857999274227369255984727375466088880476560982813625173848316314876574928851574738434280987249820111411029257233710394428896979523974618057144185751090915892071803378548459305907045125407039798345509221260028082311190207555675747978523937999128662186507189753719958771236792558187382835143175428056033452090054786826288785986289617044067592152869211942622871259590449351407744905859195946328357706238077044987790168572643430465115854002278526495230871576766332440828545903244987895353028955147670577311481942840871255075135737850288131086078778565132982492397553917413518850636061047787269702350805568966854756413427674945549173153551774151359547032206685294208540710149005574691293417999634234028450493350280370509743190489874753148312551269150746024609912805884811236859704385127631957665442962942350460770044723585259246413235414710792270267458698216823817464452135754273382962367782288562946155593416590908170235553597101363576018739462002530421735250681163863993332009316069210244728184115213249745810881591153618863304323691013217741566184210699639074759292848060094156627929330842853489022777872302673458167841918960391920111677853099631534874439763359176612050743340264260008811334546198551587887072625718626792955436410959339282268556547664513354171714632013182392536608471116528814077369982013385944150532231688274652735085760764246106033092593981635387485579057024922180888088913454099124397614280724273041170651256123605091651460290524733702618092724994865107899608863523260417210698086828005860155533817011089057519386996850940539511337768232058271455535801091042608190835377075463586030131517338034015131537582369430141847293470939798009821357707186054034242182437567773916098768264481027397966708199400664298275786660095735707907546735933792429126815510459111520454162554117583125686410869460880272273459325466891569652000182219648957828925699514309343373908378071607620125146869678312466745891113869803520388087183333417153464966692863486419347919832273694284593501104355290086989428606780123298712365206297855119642737404599257776977443730593605182591349934362912964136450164488410124071696126316169959453005171472255061476623949873225733865541590120459031700502397431808603873659136285667938118059165856320183381809635000324779384664164621449384507372861188963894222532743178359406239274111358050658897575176626226491649522492072790538317612974477017438301883616543768883462233716442892211362797775471924115928619249833654496365531233952365637069883198322927423163667893880752980803174861465214701900684808829944354987878343308384802175332133028009831731534221268054482740044177781701977472110013617058563112225494236282700918348037610879557314707930197491272963138189370846937583034150865409364271470108987141309477513850243867997012925106009613073199670586182321495500916397871087213423237808496098904656878997162609998323824024587704266448995351795696083922782639554366950545269284716938550319858601259268922172377683452955686749068229014146223534473531263610740482669960246627827774183632123841439063253703170307563734708265038349929535427119884439202836718670317607860910534577971130106578130753771579988030232640009522138139796965838264007091231202912747927946003492419379479470458125845738145663323995398865114551763292248025197560630085493923998003314211924469306067699198705105292452036296582339119730609727654277367789161169505404608126419563459215826385286065361118422251094736846151537800299232719706967117732128668540869481855659772344802399959421726300992887611363254201756455215059914485769559010411000647146122454058821614808484591789231326090516679279570373402757199969287664313158861558994084407114525507609282868080583493108331820066273035569999704671684162002312308695169636382274568880021948710156301753512631583416046081978935592715435520758281387301479264538157288158892053481795386850281494004458983566986221711711285577770841677390003242247321220314139537062540107572558506154844035389492672203012076889490490713549408277547346986029422210419989135841675385229373188677312645320335091926623728699314596030769458262968111955570732761638469358565361095268665849863773488914098746928656165439393200652951784093688582319573519718961946179281567042349556145097136809542440703268754237539159464497256252018157748456723104509421382299110245070588890123874780016969670237115622107487214845275501043668563830339016758113565284627266406294492647933845714580503881846273283318443779770782350671993956806170213513599949082996929905523257440953652409114778248713789163919721423564879907801387779025359138230877606202777804394145247411862737368659229955888857265646291595171790704994687185913136248495538820567259235274337141655768950692574622633985622823335006813749462247648306343270901440400790451480893632863616124169829836203853210238251621980481517178562973439942738371404158713767184122107007857645217880862150892414034166331485216465086742106295771704744792952513809461648205177217993216931395585123274384199591685012469646277624492291016336705597281894524040925749905345122742657074702931520636101337008581136715696536149000147040686952208114121108139359905001446683378685332277512550299737554926150544478403939489565610119682891107014152258761765213232512536810576599424154035050934518961168847930929367976955254356948663244633807857380749426400208897037550799155425316349014987449668370277012086108056702378942399476259087540751337492744066178184995784001614273383795483414028698974187584350236626943134496883178551429987635021581321551290118562081278798343372007102064219362930783031348624186912129042020237946625070806545095295255710784568780533313249946507037782362073134146241177134774237635426851011982046455345873095608593329984267571467737132120401150641281280898418484168401880674518975160467686390050471424615696645243584306343959591188439660015194304895452108196864525218415134745338763369842613468706294657627672276322786589103981242388696255267537950462702428625815027927277726059262729729694091282033368873178085120414297097774168645115103105080214870069717411822358000654830782824306325348720549182117017629894085561799063767845245118541901606231934919580968477549984464385014500137658667483848349794964309572468953792923410737072296588023997990080233103522356487772869453812066852011402914195850713066988641186980559823763857985228488467104842878983490519244881323247851490922665872104991505954868011949274839727222546622264590942077248951518976987666754623272532134312250861307492697411385699807506917574276880554050344018244958059984752584385302991934711730080002862890834562732744619745580797386374530933136370854426397815668011689805927976481363649938306817060093214726383813232891434151583489447993977521688960171225018488276920560348075301441565889955907590514797884312016312588547120200557342823791907203487210823417732556355659856205622334261873229097784666614781141974417397506786931230816867269356986234535199512238487501247116215331264879711147290820645194551085547609192541777971386593214182425339860502963116159150387766013702152916395992916820742816102980158215466677625017538150398932880281464688387771560999365508876644463269836134446428771231775120041820100515055290735761204593950833586439057846834307569000237378291673333072239900974006055368074670992285250555381129827745034985940902785990642045506357308209246855650666640992348320231606025254752099052113342795884724891192155732937138446623107573198005298543071501766636754193553753947612844746593731882095255508131518412898950536133718263862195907886922365069773631352296983238902457747634287601230066840388598117370545665227707005514778316973067414593771448119938907418435360593793933159421423876933657080072133563692720420555677299624177920603142484958517564600099366053603373403543501643601574864105393008542790811010103740364182622723515916966153765756491985607918892523175141790884810621728389632226405097595788711368244451600270696116663354820829156120110379719556770206570944005673696950714693660008147039825351492564533869517272466526351292588982678410804454284866527472551780818046409077487278361265207107705090632529523407027714059864396162581311524122987891301281290709490072100095878606471378761418707512035682473366836721241210726513508843494717216458595476072845255624414891362029756357429008870397915228168634704045858367185727895824839616643297250636892176658618053497649649194185790474640854393683774251606408023688945108142445371834456373411523658498617076981694058650611634102061691750608991663548950956000131872990915955581460350850855084583096031657237566194589944157568633311731533230868338800653477318863710121692722563616347545313196751580553157643478250069355733978118757559451052026972846813116750555659667236554298142773281590651459393144576376606689420398713528295715434645554721347582791968341944271333128981137870245705419079664355275570173672957918367910939268561565132662728447023307804598404901004704810311313749074788212146220710256555256022718842012772551119328507897433691702694652989961962825952288803878170733973528639266915570051900848443329139219631574432056886709273035797785209853814338462745834698705486547035437469897671805991235870453833610135228672115918814621815847020184794954509820381291699707733542763643784846542341160294398548947421835729482680818001536225214790847560580352856297016375161568612406817099713829646220848407546240387403514074421219812485463324274029326166534087528983920992568702215888112104421337029481388045576159856015668581521465881699139836424064606813352971384396815560821293597299927256527627158692745171799462106100276926512813562387886919546784785118634174627327390161720738563207556722128103282114124842027613720455105842302638367399862846569023542350135879372333226894289151372750960963035312669695556615441276541213832142308098062811196421438498047963737226850968722645747248203917238160787959205727289077266667831615594938366217389032461929647644186143438663461492382720029944645398434839825213703859358714308520343692625050939947730274659560157279281200305021515428795715592031419092997237859962833468194582137209975931243458230788351501263574704820025630171849398447123386329406485244075521941766670376497908127443841811579485114328110676388515753565894190368249467705547832386485959227344309556862614423887314008465283080272807303120637055765236640653815347204906829879107849317841149226730873778504612080642391426945474330492181373017445865058388477764512485146499821459384256595609446170508024855198398666842680499093951470054403265471263113763104885605893206995291868487508972445862186970824816008223619309600615420268396310688084072283157373784791523007068103505187917818950549225726100816292781355090544580403493041198872487714132705666425805267538195780148216946778889944216203507073601295783498069371491057794422834601513232587414454263933594334453329322343907060874262865473350833011947453704466015693591433904708690683100694764516098843702445452263379791954771391789401888358790914634128376203204449970682206679024469318408500160591703518066024383620349319533593647907554819752887406954004808337591502592116815251501319962588277373871594052822521570836028172867136705077050854505876471357222843305383732631088597790327575636167260505001204285997078900149434960543632784675968172475588557217143086301023940165437778050719319040916960885078044659217809526235405149097025091186746922654159876282503590495203746787175211935584221518214321737794423971168460376707574131962672055472961423593270558944188333017293878890083908126752456235943307454421049190194086860279336774208007510226961283599605772288185467240206795979609121002078583040598338124988556443522360822734910415951259131372784794648535979220716626008555676975992030593862069505778901007995856201825268846543507358535444038299168933398345820467756084118293635327958376774575216525136297425351141878434626694776481787313209682455104906379291132331129965364451768028975621760422212677335058017811520810915773677328107088572860185357006009634080628712452488154080806222648124255324547331514316057534974367883596712587662081250792163851022695404631085889533592592411227272963608149070060936497158801562565503610942705684165683102572785002749559720173975068312808235436200910544111039639834561372653695989730316004566347314088576607720767692987293264327747237174663955640440673727068555233347308425961971231138825471171766623984338429440710073702415292726596024753113979605445465100624743553746087605031601877627977601260801027444988867711675011871966046384164383086339862533965672416690991996733103345893706452569562233392588980150428517799739819653805153428279878429442143923260249189862666363393140016411492995733368025774882389060051477203700478053405951225386654093441022647726378672939132415896426475254122373594412370794729629052340053702254648115872087034656789774221468708381668538568917323572722484341150440576570483361372294320005476457579350424105598084915082635350459444068070214688740159527169767200457058686792153987281916163362305631056095580243234890430088176674217455337952418416159138675315475251755316183010579637633892616100625495791969995384299548001599678841548502658629803937566917874419419647217983977868254810048154255071288903332703300558005819886196242385378971971820866848516163575970799084824894155612630414090388363431013962333083097957042941848013228836488954868596082511252516826608762595389445390415231328495356739445264910462236404449166189844314301863474538737597515782196752694343976649450809737727913017700677836467810316322760190022295002963144819929471151983902803769201571113534953918234926075093775485396848429527878436515484596580398138320498874328754928612294152964479201694377628810162035398552523519502862458098842668954833924347651006266799152782697552653008676693238682573876640594636089377186234492349376460650171155896542972307610665533791050324413657785057906972309166719912575966045893252881724500205576029745820410303053705773999220627870978925663920409247930576850132482674564333283236390724109784544440872705648880031167026311805461527294126222171658063251257235966128887121201221482109499718361805139037991847666734021166159535983310198660445394426619449452809452938569042120173763507182099487251164261466768108437572642886804373228091236264709534874692833508444754633621237671564012450641617968383736199499011007611830770460544221045197838290568029920490642125260961200187107073202659834772383821099036314063274263954683680473241333475822137003642133289348562701728722077910665401911497194129969275227221563562922005000670441969651479288436276989066008000080514101303554525717097552519534407644750607836584493167176605125372892892849575845987847568776243427139136410401018084780571686519122105342748157666985938945112499374908622402990494759395291484712814504797060668107726821622148715324764475273311853978010473159585119611801611062131838586852657791319479448602315735260056708816821380445683518612576664940196936627010244733419047839687387686760448257384567973884067035182279092587910196690622727447631332714501477937521139391309791483939985172576575943313979213966216653745282933040936013768118801555812728105694205996988543989682078837916530189543794125138776756506861095456390949987261200971056391265654738729516067013799866987379834292823989755933584933593800146167236044124781933044045627850099089363691465815309882446161220074317478701221448615500626211370258222378999445340047534322191769813915420257369427120076867903449802746654635274402434971435848014856507090042595987111161269536369447180415310547630906661147228756220912453127490910696730507010718390025553922007529981232668450301896676752452456076692397645444220375266767571021076681822129468603553886915576008712742666553732299684529583268577107889631516704819715814176732322916170892034690679211895792700819199749600746483708817359768408935956178915589892884950066787014138222497883725059401188649440578606344086247273211248178732005849270506411195790772714485661639187424985143220146704273054388493573395334697017891617763586848688622732193937072501019613625420469006869552657337990718288056698251402378813455161228187740657003042080861930098818139435454430158949721922156679649179951186266054313585963483282175326062235637998998121044441915870422966347190486002003714789259879376068908274159675363706453060625063694017064826952564713767801074672714508726095973295207842578900425403171072446085873773143944445480364290040442064018890638922348926871528212601426378987592052719435954271713067021880645592145566985697814964117616859881947075783709057475574503540561946445585281049931888364447822261972365974977518424213232461345089878104162589675621534373974359318201770328218011082049990691033264780303105905486749016735910954293195409826834129401370803516426934167454034793588914476392784407359238008815283007047672230285687583542993308067823351247823854790865705641696561409245214519482314200450633750818114991893644452099792476145659401462466348706255789059783317034510519326595129885648544388520994120945298569435768485421501908310904717806494667645486045355618500570062122465012536332027691318894350042916714595946626810776350171725931240632755377157409327112653781256078446978813662973635188184812637651789136130943484178043175617866103969558982668131482802388027268485537439380204841966257153541798364838365512577825269619885254027595262421193771855723559326260009531394647983738170727003204974129215327257212460462923178833497921528470853377327149956783070208893450568038387321549160312337060637021220356124508341368201366788959311011478856404954378008766553165596345815579538363527099694996157202021967875018946896646666016006331280732379880642239678612316103482626174323926232241417334967178948173912158457380095712298335478280912311178479986561791874222543105800103453734014515105533170829928639418805335321571586984974163072489168889092533727046489132311019406070504197766461340831709333362321588245398112675188241898842857890223545667746602639561829956783069238652115718749089199861955273607503555579303070693385120397078862963865898856068891278985402416195505441462794268688936368343415292445248744709383490521359282134770149055375466965586485765394206052923650092624716961969931042355391494647626191902540368598111880434973999486729160144666239319689783705447918761893038545864440309411630375797864846370165837999955677434757595038309739834543225141570018700861169782905336062326366120664885584971637103246387140676288069331122490572544199792092747716514046894580059055761483539855463856065013558716758412934232298458805673037266468861757309881923041487304347964823483741676053206899492438339336129203788671280816427199497148780826133556733105953485443038786325315333400894379577510822644189274744975861581045830524833476197070374259057828863731707030543433662971847320922666977263895603342503460245426059979711426675617576640736619555009312519779860315752037785070384880899948835635350158895025632121145044267367191016900068020947312219172291492112871361016297656037702030117215993949105924425445739544749794129940278242925793476210100768173899245975269068069247966616093802909858395435791678050226994217488652847938044850643850182749255023255491024960356130666440060935263767331630365545641977064294980439174358452097939872275161216598716893066509942559207212008358453801574958910667364249414781075903204594146645421264025232012426607153002134438992601566400330925723368571516388870618835628607131795747381238373478358682033182310902450380683508342773711742412116606462816997154456964659913651884217562219289940999320212126613413284285979921950897340829458001748941716150382156675700204167477671990885570290119723700016356734868664644793225405305942014829878658654434148529011633216073523151220614570116616247370892868187926478604414112012472424229272731902614889232037995438683997849634934474924579147641603113894757258039689746022461737593462962199694683022602728746150348874103008279381831381725230090990891799937842238073224125453559566144446346283618837460116058287416707979636728528555421863035756200255665064564598691808561850747018213841891654658599568056767150753977051461694236007878923871912944345323953674786081480858077562385133099420100124906270052985599534923286778722137631161728803374641291021528472826360118687702439189965361851989037628850395417776680078672982782585872541326566932672895264808008196761048900427260575448547990057023028230681012725337721121503628377741441054472261022239473314841394228860457905897013707391712314007089974071432721923763961718131256788928267521456384998590308324921966375170528823041251831353245675496220854552236598108416812475321581734958980519139527358722943348761062258082314896807891438158157946203003710212463451330519896084363997155062609098718026706345342084611815527079445383286140958425377303471176489027335937248473460894501090171715365978584455857527263281574579784011321995589702139120021049225017854973560771965325037468918110348741634630470257124216587654095442464629891718681559598658466097860719436522245758118674378160374724008391967031014303999303038613311260059059466060147730241628837996526775655738584181894599363721590214207892750943768625950001720066535083965800066183356338852360365226727175810801231550542411156970096642500722907283434009673790331286019489545403160039882626066434774508656359040817225664531146587478642701738403945447901083684427205601768058664671740883787113472468224772407701236781053666424267877219245160059333504533062288947675189654246710918492904328275097722991267199850611621791197357402685978353788647289502998841928195227982897832016880387107420675734286589728331045348529681047351494065380782509783864831495257996988495674296113159746724786537282084110767457289639441873352149588641602426753042531164115575704243934772903458392090820541002298088824048921859895741919917366188682732193863653587314883478860941180629925662510393962520082919678998686120542838573732158677049525369045391125615581427660569418697466500629370106072828979740973808886794806053296559572999951854323408098013270371459554751447721037618941334591852425647311928060884841138545443738096173926649899760300728152680458187331011632158753580135530410680143901101850458548654382706049971517816157889750373408819153257783164970113055972178319339287667342419329370813114310569191768840243490979763628722681535606603338546752850042165124570520123266817591443786538288483624630853749072727973114476294279231832655995582383735567735833898576013884077575548663506217598028529318352772222093307329742415368522085180398833469803355809201756044680705191286158779696344785608666176407065153366047794708325333962742347591956192585829463339337400851094372941744752175406951671751344336074615790384434455009095491585239321707986026428855563700128508500574810612393406791654015530688627372827768001878704326952047207218775317556347182474469148587687878203302202621413563061332662208418308398403627392800498761981411349377737117518330303182212525736851323301398683332318375104429266419902522073091443888303608735806488877999820279319974073630832237012265213838251351078978374069342393779149908759235269815416928443427864695195036644221251781324653787128392994400656477891483281452001952050235767795403062918631256729509816594732490685588820052372598611865882374958502803951710195352399716238862991540181241511879277639728004045826468712123862836572846153370594392826044219958742910900505133893230207641219286532298534758627503829640675249045109375650566354633822472371614906898817647288249711069740534688391647624874484765153915040885168697520664614086132354659356949302504233500761433496444188301907069684991640946658674198206778142820923167565398183291908673143420772218124131871483788969868487167152388943739380594661889287275900642329101132027159111050864044931905581511541429001317299449542592252672357431330243340845342299702578430027200639347198639648453522044813016950356317689939863616991170117016166657694350341747599095944827409855080276842076581029366158819897276304315417070600679667739401955881899103296747886362180782274006084011934353493268367637534068450089581644609351767799456975059732449099419898211328654723017289614365774852055766627792641650477633222384391879455749517671011260823659043625439752122397166212113275991418973505342644065273713934840037637440749783206292964871707556083843246887396235222390576147682782627352989065775528170843394206080259463201475167676322358610012037500193751890486136257607302986125338215516423382585405289348928566028794485413901792836862880172608261795302876628816866345133616188426195640170668446336450036032490764416418632945207945711600307011410357170810141280701784010093489822686842333029751282112171824123697767249232814274828975870483180546561088429662887218252054274675825646856940663611966919252145965001290160999362344437545739693733302978424148819262158341919777869059793738312763700973355394029752664272779258499465020785563869034174823639435064811232739662055758370989561842911284544865778254051999243055309214992155543107318619481832381269117863906788733044875548425794404325667540007675610317490000785129464526354487703321063694196351166258842758109766737179021150166738908402475461753056553756600420271144801532673378964258274782520348390237939633463325695004208596189491439993569489073001783660903445565262169903087405639447620682474534825534892566087986512352575162462876406901650805971613360028986472238804449184445657387510056715674854024705979445348510122899737463217361002923524509526649020850069965432352413916750360835777888363286148359066190801736905543966907889685589417376268108037421035702794798900039513136047601983668556395593361491753938643040403611500095685044704437042154614327501509516153578568933101428296885566627922395903167695019669765558992226724931423220991544156284065213013919567701624288684348920445806073718139807222068959288239124860405575642517616342330952382997289743662346410966112927920449699279497424837079270258455348938894739372255719452009232887104921500858392845574659700077662142280844446864095108516834094496848187347590906101979806324437990548973834534306611888137063910321877143594065519085295180033444522594762765521312057292317144937656869983034875609492687136397920418745529017024208462129861101853920875580886927707418244351195067016504763974390590452280410451812114946859519233537163976580912889487576090515039699281487552592347278891564205018670508963419861029178245792091513323306221027559249869419953084548006568114000634256025024580745676455608102731441605350314553690247202610776529343614467593211214248358574163020747625307586149215762469036695167686032866833739763363146046616246791559082152126206679747110111694941118664697549206536976092833807658950701748124090730008003270695159807281815438982597045078171051250528555259490688203097120476328793809969877899826353496529275508785092490029026059673910471541341675771798677233140458349952203954887372483773409223564124597712310436694070433727947743370232523594133345390052400185878970275309472348658873487910515592490738263098925231068932138917344538880134699380019449912477186824406226009442359446776602762505534212224022513081328260511835389552262983212997792283425797337213177429445139816330356286546139779784025676581571861781270456821131024842119748080430821837721314196645891129157806798630751601651319434402991573635154008786487242613696591489562964479186586248763018885912583894036511514149480645370384069590872219561680878237951785872930890850192158547989621320647892034778704744281191441038925733985768286332495005463522654497342958471023110907433861412656792805450930338311334470333292673733833460572170474797078192409458061032007621791434826426669821167763036303974679027106743618943647005342148751025576132256188821268252769284889449251549399713946196213395407644187171374525142369370860050332543568161938274538009075391232799471204902448921490525661880241480168708136678408982905314641625565559531921487623616038736104894472414031868079151301170123961200816785307665701305002870859372160886940576288155199502262497235101924731233724324555699978605593355513922711005894570849566613913943495102062304740942213749542408566763276358880276482228427560370750748020641236274509956869700454848312638093672839613492420825423359711364776413836745596837839808263111041233550241659297026166100901679868574351893160416914467263061849683197143809103673517403562905529875550888056961915954045881876445140098008676011636592760724901819113614281448822234749524519480522353650820405887360457714442421000005623361339070019375516439051395999987760535815087851206509177836515162299739141298048953336549510975342238371900547555079171079230035555377961523655450968251260888443263881969174273297117280490866238643719432238402167201556598318183770449548665817119881681274809773460992846456105129660588098797192167666365506755661084156254639661355843186712866403819566412699058506078968323020941806369741384825828941219878880312660606963275517636845766267004644342587775144862312547067661299268692850967152567930966706713742204114025733289206128499499873904969916110673055315359144319494663372113424482630748685810660316114906539040350743654636281442335376316640719288864923176935927276158386282281060333400944021032207043390989183858391970603740060041289777830477044738281734261021048915466243326728911200799351216211647705551241691234075365907504726913573917717307968995125436126228114714601980630949515854936925290518442153274499823651682837084656776136614238478397384471609605093617490150093228156463426060994341985595819395274948942394601365481918435049721823232942861391139814631619374969096017571428827156150175411798148329233414871301741771958701954766121601836264145447910036494576363774487554924577381462910127668386555629027256004344749307421913399150733778759599484276352628424726064397788417195861520753639333696975207762422721539795825607397149593977536561979860304616113552503803963196030018281722697787586954845508005991922195278242561796153397010973447004716419903308068620208915436860177756504740612607890925309175128262439048628175798805789735398974956813351097847673741382836516822158661633638952180487097719610900192765617914874723525946819301854304530115847104353527715437537103706989017340643172062567603961212614931742689827795636708725376242719044001319446157993279954557308762821931020164112365940382383424338609829537915374814157659664246806061601234242877294322607227262110154996660017752403450544732513119261466804213229230672227874816247863470884810870757359370810723537910979715992030075782298195428133072960558252994042916793972018402089997118222523506257734897149427317283861567864370319424236503227840640005186322814187579142121803450633652322339371613224379914917146962581717242042764622652888150772848160542153752024265673701215855980358177669853077993899391241387619702578651712597281455488542443278537495829369773286179385728857390598414050845937779339850502272051077008680385987601053043916055382066243872547352910647553203333723425182618079669727466768233060822978359446294222610947976325734203713814947354238774893747671990632948278759116431914853522195335172175180915016154824316543197141786338514410183915254303461457515342859546568667546699201145673303012006923340929428035256561743974483855385540962239304277198292900995370920753486264855761864166211650799520279754910702896759238907891132889615522523013703348149840403042707530743889946298587821117779622123385241206171576641654492953641700860873773178636734690443095664808296940146984038163671822035666163941522253822535048038057025864703979270284662748514157981841239117230461762013851511259806452669163812390723474174083174176176090805107384147048790129541740005878705238991681512693497281014337304154506668265970929682854552789381305532566603134953826013278302598959135830494640559203218835848133852913491803293426907614636555264351237791349348610288901627052244932589331094544009835711246944876615174683383292677887644337881433583431787798056635066284753880812605341719204161575332966222384669129079028663970779921491458905726506393999881659141170340430090037846212167783282785099191294579672446041005920945182809449876571338482294379435477628858008566316134724920116680319758393991774200690472366661917513399235619384173877190790955175685390959345801165393997987646687369988956114912042256000451671395162975635945019875534548942760688566487625357479057682054157917814739594579667976812243970274958073696006763685495370008964767485397446542533268017982147948128274473238062919676947030022364030106202617926922116627295289213322616716629702038476502299692413480151675380002998670691662913385370912826518409204457473693988055531142738360252779675714678919068957435089783640234557217653156406947234348923843651776225079608169969903656610442838679818163631278818856616762143684528488780190930991934059434724770703431088286857292713834904300422458801753346429001863436573280994004354379713880486086785283692569502155433886156812727705070047584381436410729119030137552730256036013824567444549546744317667071154192941877124950459591442071930014966549403003787736854648754247842815303875862613243776532147026374856279196342651553525634672374452928725471147781993363748049771751737632839099562136707515214153604061293171384775572659833685860266758467806828402662620049363118220881836021211455766662306259825660822494362361319693502385445338767403083912248086305809674143065646329806206935717305783909340617004800486671808707276577680254991111684986113379883526817327779835876104883124738554194953906028536970416001035322279352929849501374590837271262819081557185184411386091374060063975396630792761244963006341694767052218729309001970688572684790976132085809474477436775679143442015835966317230526137611468758491931824466241255060556798794796795528979163939076600774687179101238569773452206657646371579620691430809764681500005964691771866531435652872687453423750000895910064066123282125787475358245579327010296013610796290815622382742065823589075922289180941603040358492776087335967775735253826977330576615513822953093778728757421845784537924602804668089561232805311449542461955599279535186347022028666997323659138433761383125627209251266887499283009684339666441165744444833778013831775737243908076845249199269123821520655904293276190471571976549021531215825151829317031993179172964707692213041686984465960835998255380195432686165980098254482432032987553962999987038783773637272750075744807190533995936196018915011135181017190077570524903798729565261610937266375727218991186127035869860809151929346685759284209029063155666264820374018038704765732896306104173611086027713909958237528365335182660067512202620719045017942086385715939312944787751336226161102861512390333478275559303877320288486376429895280761802655520045918070128973416193042294395652915180861185003149161620855702253442294145766573186137697735727340474133246387788220904561245394754867814796958869536821690809930367742256590293106434808297807099840725366518247714303735430212422275791111301887297900298131332134930036798252720216715166706483047674301868556911875949751659569545808132817278890820317186143028807286162262442988235959320900776275398978976082013971410517525212729624954748686404426670734567452908392604204580081353250421037583356413182065725739457145036197037108772195943540543272769601569550088003461416437254226932781343101815013336148716402170296969516900650044138402937485288032712203301316393319941869810088425460316538852664498722568656085359461984775064882792944896326719274816950289476244059141036489574955292514086560120014166767891930573616478321813007083680053694228674529912872588617630376159572991871430516503584269595941629723203812116739147073608973909364703248703547332322067567809610362654779049599039628894621802282291292767362310509759791193481126224110975449219431280544710233076444693476124382510225019311210209303720708623638354292722732189123330436555367288053021561464289916980961290164847696629518054857758565843507710605323024513589084166602877646778461650677554443554202750937782112254882987323457544187460778858086452023702381486628185903120178349206934383752521307094441984215840760741962760394416888546658556464342935113309965545650083030175948986573175349919167016132927893142020101473694555772288402145438287558421575681469682572000726779554730179712279725912581191036488382160925092014676853229567098623434441926638240642540171308964602142150122701831545409446652062553637629629773001288459916082212067461460132461632924282791734706687478555303756677318789014938929411327071845294898364615484869502633791916985196012727162925125185434393104777788383914537236648364657996671150563636958231504468980668526756888912108781721807562190320381398046699345402358692349477267941326876658696455739821263723141015633206301983534961600234993379998572418332208614526691967946703240312770023823716156546080678354043110783500610107177756616959328777006911520743775940798892194251531772162296386085641001202898162322701195438083837601310763378648034640248171472501384632831831612921537176109492701698346328465589762995603615375708807062859627436616496701402621546915712557494609290893476484379249872655124471343530774297462737196132093902474154603734638911585593350130126327728187539408256191930755085169911667008881365072782246639480633375022081050155374507756769424118891529611004315009279418198011121514492526137302623171454963363369191667128415120360859331327696441893274452729090346426174257372042981237064295430116683320099176788656305912374813557256975138446260014710848812841062657585226458680535502532948158114843483177224016771096711875648205470833451797742938001119772788516852233664590856163771089003569667082126942130874218820389799514383581080341653138227727525647828378195877521683492052335250266693073573502352948738756327737448771410168105812209549436607238226317227775277109600045637992148535398557356801334811849970027335868401419050121104939691365094010758680856532491706202172568751380777570894969242741994798157011404365996156710307053477601979651900454796878264766062755215004807565827570578049238676942099413455888166608886148568452897223336234012939159870153726651794959934921205063883402804140172714323058237901571285827395346593634854419870013671485226341850552280001383737878381973374914351584169876370465234995823875577184185687006747278748717627222786451383034454797624679848313745823375543222484766366055219876600844730730590497823895077814387670711827024246523637692063932796404672409968155023428301767211200874112710293006552444095781596150312152431053088105623708151833002180759216045380093363864690967934985122607683591152509588972213561387299334078621320731354096996216546643177820210859738028720442632665756738980253243590504792857012510650447183612632393853113518431572309222756187007425428680446712547400961629513907462779279273770343045760158880792725360638897832967797030895762505498701623978024581584505701538105808854474891927279593748531047569607915645026376700543159840047726894597811673683930087763329548765705824399279278244491137998672828570217271092716252253146278762122777020409584851112229030118813396136878570928321808924226842544833983606783101307422828328915675584975206424071399360588800812997738606025470566443366981094409646274950815352755945414733604218372455312693535725752319752194236549898267950491296619698564750518227931502407862567383846658902015574449860054462767019100364124406223059748909753459064186749516090173025515675417072758109394378658101999343379639064505441913030809021108981721188540216857013732083493617063878970616630028886740950409640101372684486100556022039661157164257853467947628675756632321527718438077353658162012033241548605905739400344721565282705205658494115693235986065295127038264746165203873211810446351039183465120817898295478962512610472343590347257129154378049798916832317893764524933237611023834567127208354742062982807584071659716661390780527926150027424024852740982881877232300448336569611332139966445903568713527895219847352947374171397076112945036142328342398072724700154791935051671794052006152374159913729351260650715941536695945876568435671118346684825860934153334305311324398589512865767718303802706270734380825156849783481094761681343359497283857787617129599805541698521460241445764454523025104162063357470653410586271687058789843217512570357430039363122332202294223272782968052993909257942048690456276473541635581672072408895257724149363321547234624590229014955365205483463762331915530766885962320734856873970717322324549808926614485232946234519068645623881558134901156682281651394765081273579809544932886950616945204986825146904822419125496231866383366976793840403783498293604682757150399735850332361216918202977182933207023452602962280965290049270133387233446895971516113343984197578266425463265979596190658343530596489328751787335887692481641610153599256134711283209782881051876403899079461071068718940311592811531700457767495248788560787239013262264101871343845171659094467966589379657280209843287466898186056268066449812407200372542968741282861454481987273975940978842259353842725861244029464667393676892472532401201775573484066421749144543742217684917347547591577388365393033522696992977069203618131977952696982064639043826647424409490260874728572268157784647164931228480886138416456234076283220311867779046282765111375084489864011583409914279319267443172726793923374179225097442997393837301717713622849903189635676249607130055084125477524961752094090591274014639057776829888287626410836388184190762722063522901869451119853163237712165223980192786367956571760198119266109010343755870428124017733685193031390900373903820450295213831843949369990936328607654649218204354733203253915050661084272025790670312663511294219886600447176159562317375248241816109810390656407896010799455731091741487683072091633037463368495398741265119784419634751395538395342218509313946888358285838642897845810750847884713671836463797455980435294069342627148057753550060142268725768870360976986565332598274839823634391471263800164421007703256089300909344407523893480192512404443529378734238140244781723485917184419956909121670411958854603454212569369806361280344644303761103090451449338331890808238807311246047311838457732336290712525762840542248064922437109712042374614705721576629915574531776534903573469785072231324616765000986150306154368942187155740615984230356055069238272719752684320110585013498406619026313980517289035632025673069451037535366448228444891486128273085134900634074139310278050759396027239835251561147636846044606073374651920049909222980013195412293058727767286401964451788648599615615870484206642105736623009748706589108556695164114225901626159598875437354700967545139763421007592558814118175458943815900984653621276799708441132128388362164281562921076041691040480309731177191932145233806305121350450408345106351580865085601499689216336993325469688102175128472670952986775153822421057661697714552039740329067305687399453179911078585200615719066974070893221105056779131726815638720323235739978551833877611741386075430490215725428903893495370967084133269833250045801242411374641624164894295491958189042361417205124942141254172044539694349625622431798595890202549841886934984505541389450045805284290027038239621542189013355303174374901813018927191545754699528934426362317795103391293768382490707616187246031253912628703186842969448958138771783566668922270777879810786293431776975821942583347064712792640164325661296917122187550121114288583065663073459643524301937552743568327936025569471609389387938943588179921016709287205187986207692199514395503126614442759637740189860246583394576122357112777989960969860924489064797887356857955018401700048601061208238169412422761624963457099478702475162982982505959241184342907924173677478399599839022798251076483763272724252073727237889132011745046081096087809856344088250196341242536835174518526518565915043914703691406509805767757472233846382353524558677484020058328377480814418621864658234590283108302530001951776751696932000750563136464544513479062524539039257199252412987816382605214294358159026679619616870688549126823463110606212468170410326665036074651996326946048633224793856184916580696684210261419520688416878292450362777417309171676057925900282262933114238411078670927037500265047984412418237360200542650792398780097228960900613315778244142021715442223876646851038232887285759090432648652635991475180131609216033492190223052429328790126672731553653632067491515934430288612099907765580227612420081977574733163578016335298686112451020784243158884252616726624511194579381047849977958995751740191902996111889121495705188799585862348137607710740479304821838688818769424870717457863313569627579028267261821701712781631186076184226241595107326533244151435846696462608434024669423902890205546815327570305630222974651613057450611857923728857953321399754841824010913083202710707354010873574278965259229203598792556146683619151734756861688316132512266835293089669575247299404484799694501049987293895198618409282132008687593483649183159500994805615166524738538032201024261340147472149188639774980939696459756179198225950537450264249540063238914355752739748613382273773321653608519538752413322205139714727810360423157898214860351182273587424186586668922533227340251436542149566645000232096106999133345209278342122570356169724929706973475469902178725541016903730927090018925766372782677622220143570325379225978210594324248179576325274799946989105503244857929213076443877898365808858743287972662869854550061175300794989019282253437880604833553980884121916867967503742453472064993156866944465505930850552054430054359480895652484830594139487814852889606396103154556101155474357854461301650847418409687510802583631427411732319034806537411561984875673418999463793992598156608424161632043321666341538071882052962361845686648904380879314443422275401142982631927426048191089657394471763063373458645415960247471701694538748269590103590985266194518142550385569722353275062310791219401836419527893473928391119398379910659229556291342131261287792166363221601171801821221466527193405075659285474011054992318098680707153399887085884767146468594756467511340195115614331515370733895431524399144649587646886565678418356870177561235062402205057915667051875173845361945356502109323165293815179485364734161070470974755696396651354033261279188162959054826589161552402302187754952157019578956996425763492878907002209469459599452037164276165968947524707204000008890948659703529108292723726821564034583775940409821966149083899338817898225089572155694138848907352438607278224184700840127823988448654997934261186941873538819057284745892199808171221684384290445030076394089974004616573896996678994588012729615238624520202636436730587103556301619294894938406559177553541218062241479940793639065900311146805837887870908253275868240260260007690671356136723815568536863100517866964961516280624479220910748751494274872389270459426224682232047609221688746598040632443718974585384041392974221834616430404019515741332391440969583748034696722399187775005809612577899838206584871748984456825282429393405919606295001481925753623239136814301753924785151915556496216901344870216649603597911978866827192611738310674409011659269749838691426384120461770080317796754321210012428947957310132605251770735050436277034219516959459117698411703506326584108137783305866609288187641413575520110725469180565489975055973387944793897262299038021508246231798634075532327938885762819776268105519809318606655726400455463640204185309474249886145364594619497988517129575554139157077343996221285592389996554278495441211280318945628243642636564380223951058778741547121215873506267121102889395160463694628559108965531634143661624589479416335716371648352448946879874918157869223842183314392173647371857276130019144950572419105817414397116538093415035838975479225699830471312751243070695500000366983637029555332235524515077573080800993017545167713835091888552330896273755344483903341328395685128739311719935619392183163732457251903724551708582914226962280783237786714812919579336658466926747046624248030417659478908453764727590175151011489364216831880200629681207692307358933244524640222212490510874603885186135810477478180584154193940447148506923218558172825606717645465219984186617561910849725278297686394784917544426443355944652938494426894111416537905179779105079024500464320787536667591332072113156796123308883767952286722963973060941448884746990461609962173028221568945473998215250947102413888782279608934256682913605225295737930059366841777603416894748280733334508189167443576761661453880142168033944034738100048321619832183928049062535453880298889952516791978138156550566982322281058255798807556738490474267988288362719971688120433398830825386429766568185517399209658743414849163703662270631152918446008148944302173240428274016468177095658977275554260269313854804872631724905818932810166179425247527050990787295110959974291340827543181934854925293032386018433260151263604959675260835228241312073015556753063436701098026289171983916013637425796799471382254999550582439710941128936287371009134150097560615999997286075432737348748667842623102417555036888394806131961346363921444258262553397304266300858788992806942185733465154955294087693410272630045726626048837858898259509276692613553828446120996250051381452614656138395581928867062469079421327931558608099500535082578085774380775716468427047758220243278749065960888133182935551339299701917733643275650398611290991650984979981027271447349358865386836874380011299496000218430735183726191060344124176319823158149071035525995752533758586793034214640195415512634808848179226105114452173124897842917178490074799487792910081173049496815962117501109533103766018943726271948417805193495490982539171989338959989498619599147475544624667715657539079152282155423851008778145792798015658642506574666092415529875233492813861121802770766753411047290895942259186384114304181863472575993061575364188092753753962318900495827188207891693496700339620846587081559329067581712083746671680964896644384647121111742815719224181202873403547993915215565588813187547917654016529127460763992941932258676279121688715418808354184749003826412603555419881748634824334679226103734076638810254236470924450909406125738778801024013101733057339215371774465999510056564912194035259398320506505271552888010124134728889034142360048551787877613311661087209829541503440472926068336712809065040621562146961961715794209526794578850762722046483184855938529949293072845291476183935377546068540438674374055207060886319362094336394201662630740969953622369636276915424169290109823801921158666564863843618744825017895339894238399356251256833650540991890964518109975955743268084933519298660354604407955742552293741565502458794569929048318315014272493072050071289028291639032339171440580536691998831118999852527745494110572613500075574164260984176736338537305973512114434211825652132136640854152297009199545388847945457336356570900311665413044888535864907205323120601206230013672717829019801883467482328847241406936000286975743921179018794373152136996524259301667549415172530232801541599435691500790394026796432131129348621383329551636157789278344843439050601146039029667401280084422699806228213588754720830051656059417449862818280083150003532507469809601724380628780149835507314147964783859908865658785332621962210872565100181329132954690528127447215986850837006692499243543336172004025230030249495485215079108519016132902650955436026963269809155224193729292009585470583071186754890057511996311334026242938796926900459846113898809162145269622834375996267925208042879071985301111280413228241469883546648204220550130764769474020964101730029333009179782824663950879625651612868889273441620398513232291309511705396263012978066134946518457655538464344672121313222887076849043567666176579534676492434642619595212359846619622372110919090680284383613325356211516218974974018412069021774819331258956305612533421622636567710817279400779264070363059259040780507397221790045019316628872216593528070730467367076896989644413854140286787319917579877391035550039960902133594563515448928523670356031877089273115509782740256095140579973273154424465198905650154458437388689524962321159298588977062687076444989260279719070627995657887640240331535093328154803632896199901972685551854095401382076475617494740322904637159843435171850513514591291819103797751103940027284494213955442786440833253641827995322930785085253283392659545373096611286441304835961031359022812887274504565907054401041101624708878117435228326951860321437875030966567369402461763979341546119392341000781148034865855442789021906427078357780941924000644390266957354435581760655653404245838743912030575068066538973781322064178880681784131074386487021877096298575546760164374996590192269134958372827922557745114808894946480512554588310135318671023369038806484868599295680585814286055929523309986866635419139003193716710395435496439559701812299163621411776289247221447458852023248158174111123912475846723810181622871938412792574709093476490387046112499575104997965927055063044818169532574769672419572841136853140554571599178606614306754117466680157967377792049541554459103572277928464366623813008597356223092154639895659816475892891313349785330543800354377189404306494384065349742997868078120096609039052742545680576029574217222947999811268683245286522088946832081828258172300512883400498264478593999092307049061996214825277278765427041471537723012548891326513620442095141476999933017572997265159096853798378302889029950583725263936792946246002689175887203590848397311740091590144221372084832550066742211486219955687887153975177895315672677282220754024983440672566401166758857236403155867703953411789135981293088083496953500626894209462938706762594820263351911754937937501264164372961409247428858940103385913240969304647257959051867489961526571833222802362180388817200060312302019546238624856584419835087711538946919224160583614284473846999642277794474964799122023979874603077910765202237319730914836926772960525789465271735757394881143685697380741099934495434101421891909659431295412017325809844453769092512764481550198087449746398998447207012675828069311750900230229012279138203618020081873909642633558605551085168107371374207812048228502601939790640280827367566116051439923818812965636170041710689169414993854436178065538613925562832793690107630438404865540260080586814636418530629167792883199301054115677821732595262704785727076274281987755615438054445678596719996555040440450843350568286513209654198757831661638553403240613424257702011757646882422471445713504056926885310585362908911358686172504145819009177061019221583980865991904561024166718511935556391456316884805594377693509458228305968796675281436665103383689682155348689099640518563733471901618516868978359574652504977612550001221345112869631552630881313786809145656227044231602648759596829099607887067430761436893095502487381724939086247320513367169332315584612482135429826430050131980834090335442847385928725952113946202916646683906106087677344593765857369542054210951958655006041004933645433901363741675641573998695854503180944187604966030764440880724261504064338864389239428426527073264794604936843592555798737944263671099571509196882095699307489762645485059014016334726252621946195460968614716691389664883561084989051199962042386141361961506437347584388401988979474230854644403852363338980820327013367463135445076870429262866144624497714789296112755040984538731081421955164375344176890340864330129053472024852959096387589180361244597798924443558680466216269962588160572871051728378809529677106106169605932686160615398688527240940196751760783022049738027673815225570075474951962220365313572601384207990392126746326829633258587655013782849935575419673169313358626468749156490450233942765322775730367349127805306169564220215684216174240087157170819424726318016242593155480401933089294755527919342876903094898745736776861247920843692691168179014555510940396085281925339111859724494915713346816656439572475314533471223298791077288550456426109940040417897738197719415803424081560184450517225491717059815312282396550304844197261775118225452639910247084754957332935649003794404559132867597659950075688853663537413291641403262326678761697612477726540903682304458310328231216341708263631542344935390539666117591716032624355338829129669855042662571074278068212650031296341909049141179924408048121229217357787014970640850408372160674384001209668755176933564770644053254333769362546188094459527513607790910162295537987803335429234320885952374810166067141764527874148087269957080063398721139463391993910150584760620587647011306972590972696192323432092800694191470155999185124882858315439887889718962290965216727286427794931950915480124928530284452702693539277847537393613102677186288176912709751852338836073220887227227013783476309117518193244068127499868891468588970081016046822222482529088305971017003860613849801512523038837147414721394793711129519174794046873051130758400213455279654242107138888963258470462216599007584156766725719868608323106121271316674770032369929579005629540180708135299466154890153028110073504150057466592198053883690344122318555950806361236797928878571309676835310854013892597139331088083919571066997925206896298585920119467955825012043834758155149182076187201905953871638680242903119431169869682280737046347829700163493004251539671350236439100926048471317128612410939920908946744920227012102023822574909454945387328029563135636139939512891798252840242895458290534051668870643087379040953499702195078735266994614730820752058032927676213173829544484987317276814296075146369136788118411932571935764265398159863684712769000417517945533253889130133055420711082289755441214608527915624234679246157649550329031071799092049540913149861939488750350314408974948040846769128348574099663139033965429261590259428145209530370854568593410617157964962407987510019384640553557265986686418765702852497495091638254765432418205748336279975282878176032843818612176706958863916373722922791515931299959705715835942359155639739010218096993730757238023659653254895454533288481711465255524453612425580820022468916105411987066048232133237301033407549313706549874183225347352743084803488623477546451025116666878694891644813309250143442829976078201668816697192943954123032859747011404287654108854799328949118260990106040316573318653347593183975380201293793103591887050113174247004732225567062831705243930630558705847233927783736192442962252351096829392291570525996237492351879611836279408078471890486391546972117694549294233281513418301665683030474723650784469350010093881499627749896507699110265277029710439900306753962268262651136362732485628079032959957685555660073543441006184730763327880817494912112933703207927686962928055604711625313867487621634259019091489430907736649852226182057777787257460443577365545759927386845156813811596131297227051730533862669789585064852135040925111296002817345944382302839378941926155109559331080705351849606281810959042778322195289323435346892331183355305394593101731957275009546635839879906324946503279044733045199434899121771316681809797584180810847126790975717648170785859890417248786059365082923964691594619822362062025595435497790212860837289008970117423280756941687979974891914450776954919328250226479823936583506968742573849041173192069128920529347239568597635718547494226944285720719221893188383345310442389486130267833369354755184019744781861806819119564811039647482345226128200368004658926439894207463207461029207357862686481780924398390284092778865670124622839199514928918584146968250967636042599863509843458752599857086476132123976092682071741953181822432617963255958428560489153410751640694579679762462074703430407842923241177728048832171425172886053863847005584861452689887366225986783503288913281887188659068980914192609639814722518749895677552604032503239281902613875554096670578465892767876523731259108921306168444909300163873665490504141169965433182563298193927299329452901351113861378417008855010384057660864870107184559313078729113520635153386669600487938550164384290205100946256141807376651669986950512284471549407468853794112293001588133638582611174283705980832842342883755628116631269991446714061212946939616479561066091555824977221173062601058646369433800931480856038093355209597549660859809303114732985272984411586561428817898130255456419567840496967749459484631575827913926521154117893460236363637852168477256187143959039673070279065314122564961419346081258218913806653833420635472145643005851743152569971680800554083050493319862412737595434689384912766910159655549237128344622538425731579342986826960518117953722857407138674919665354456735958025787777957206976904971320138133864942033356994755596402842104910891859764908024791816231246532000459452855236949986691956448411880519635198669525887332509134628888766435525715212350776215573316233352224947483709682818429427120331772664148090050313502718878258342763418123405720731578646279561974021503734194956445038814951035988882114838378749186820064536593265576348003587701028774074605095786298705682783262181406620006257855499838382043614891715000883832639964033107318164404247292609786513153827972294594943492402863296878476818149975771614379330318675549127629531992896146354526668772128417146813730851106594746072602618955675192942684445973970806167827035347667360489474688220810731581569387860859257098614041918529292620990292043614029989721000883255474238679863369293589358209694999637383532975537876133541165639140601610834482617240565679088422649767672520572971409930096922620995126043885706697527097561299792032467431934333134360207909263644581288414659312762190909753451391053884594419455053702658477295137416599736063279633586984285315533240233058133608917087011160289554728635206586535369454309145898694996857833114062033113399659373544515324749907637347096188324301341567090904058470848732883278036997031145037433351002223231794093128063426495390412948106638629065766285585519486682232150739562019178645748817224103047191038030973343692216629048392993075537592747182997267761070746007907358842629520253904211065718106695771333380600690728295008499209240252905838656274391768672489156924325741870911557434164178891913153038674656574047722791159337314848535617017843148064106126099247685489853940321243844711486081250816360254089337364847562062253336658039374871659229439631746722211715244346465702894945792859452207688384653237592283322565805510214608752147315216128061410630338084962773671470749626640455881371362551058227943272695513443638398586649276265466901781891622430532877834101366946176714338281429897954307403546885171045848493070005041718538637357332194723137909693598809271765179705458953771548112862410063771116581357133885436488024381037517938790479693011882575529539144910583423390495675744180412421827998888145323662073730731769466344078411158665151699233941636515374057012042993083037024850593109422530884197187786809323659571078993534000211588674223909590746651050566826847292211116978262110398765249923115216858451629381234118102560502332722580983373068376097176415618499669843370694872685280071657814648482585591048433354781903767235514815114854619266635652225419214449419391086923409007186607040187941178367231013932750993665121156045473708978166706950255859310707520536778636363949429496136715785593881230635104369411462055219996531115824823925779912063158318011957303503544567445596089653836066703053465107859824531674116505939297014278951570089136950701335764235498401895662018923576286171837333695669388585868005625934469229588327692466462441439507436062449183642840962902855646467842418973318747289462773510988123931262291351952285678671588761383131605297330229392404676895435771178161157245552000612734223670445285566884079629758639056102455542012456960832722551617522293832797043060843963683057923089633475944225544863965859530112280121140067441305903706702897869371449755549425286611059584398376444044858420817730011320313561738275808187802990558063729422720350777758204307846383218397098787164973458006660208494942721905112762992916837688652390918724990394174774506465059919544690908030136713335896028887755400065533617821129036003818346787093151622735309956121694344864249447919354772408772727529614651092992227722737848389488198738343182347073724181203965148913641332457393053256662840280053992698755555823872708964967409995357843950861556276585396184922600063320621668612344649701667354071699603845508857067090309110180531069162322198975299771809412367625532930757460171009384359645797855010429178989507565305553667135165869037133081884826513914749716081336362526006691464518320840380670284375046768646022844582897658902317420851924095918950925061090143543502716209569941696940656089708884025895921130120747291285186298281110890519281438704737972716209984509556030964178399127530289786161096653170282719275317374462051330660618035973208799675934260417290572682733261598391318549677691607388777330423469990240647043418635490059654291924769971238667363244601949615925599416237132870024300510087559778856274500454685519749710473933222628269000427528489103215813953826012227363886185562036345530291863188593936555725799643721655214116945620958940136033788673484332682350850120024777317070140478079805475173828019092694592910614898053671029586549182566937663082651019727423263788598302125935578996006603894065253521293034331256182346785740414670089988880129131346198080143224748910886323279048614824562199889767782422027316096937190712204829101493822565898325274742738102210057807999989409247409363886625930063018188177084750665493192096781352254269873953842466458080668731242108560620882205032984278265682753994199886042551759587351802438718380211645573883335034228388458658665766644336189704482718710483435798336555699674000651815432037582951580450868615580142372582415866243188559674037958346108497427499586471588426568576135443381920129121930851119088230168917033480007288415200577477438426722899211045471538677153663791460804073211103873089384034709060212557437620874415905974764209239505209898732981719305838054871580539809732987911369274216146561007808561858645216260858798368754693336053776434233988506230639458318537291603002213545137493599339689505279560096103586082968726890305974451577375352571378184172892629690530002195554733839511965804350594371772051229812909358207442963898966257162139647225441229191208107151393162176922182085522721534465755190252335066494702857187991511177447625073851473758871574043220869452090822544152296223279853594695476257602323661740079355995068859439219550530374810924679511931104313873342317799635237440786541100102006982294226051361208910820627212128144929449149875158917680223079837632839520047106628022559320392307109975771721356987708554534197612048820498217632267386082574848797273775867376828708777011753712150916956709298417733109897238432597623055532416583517864122332204529007365030956272594712327304349965250616092054340211625831501712527918036027189353883641590626475152498686519208891477989031971538198660193507580632392141953821953678135022266051139137294920784350135813453933245933797375458785689637555659907709360025789779590261019024530534702213685624591019499238228585456628161624273189740701734090600781951678720807299457196607873358896174773567389736318058343948973420299287899065001903861601691690382097359082975083508584072275787902389743747076973668044911327048485365969342718116238013571479394518792156679854577246512110588287674820062413920798702265838810963898244754246738534650215806179072816420288866577271300570489019512234929765096461721679606174939626813475533078476592533190391229986010819784634266136502096247818525089322188257088493736392263745551247752318926202910674516512278213014079653593618748244477029509689138031906266641050158254069814604013836988328239391249068330657808265715046421713402085437033904142060448168711780573398135424695376309452171495346671157546503107361417264523352173081511895602211051571916449829369928812651237342224179587344329907504615995295954607437790910949267433592155176371991880601686044530575206690315450695508385930780216820368439362898822813819185455313849493044907214077622084743231323933677660174886581726553331642694813451745097058225309490947153613849978135982801942349034296288438082125786521722879499173060390837134370931724411285736442162371463874736789261938771981147926057675748651409792763987534285863390268940810298527551670403527361931127957735207418141824602287075101354599947762669419440176397378944979996657241106064765756052548328970164659297326106573737804804327946802799021975967684199387387746235109531982641464072973687795203994366705565007957066803864897653644801241581823124835483767013647164287517006689496033217047185852642342102547728884545331701920662819660229621529842928667201519905495959082422496637603789800446731763751902734748567404896821056858197706228160510803141788553519916814139039899085778853522113575247448971280844903892739973380570054006824857753641304261619501863054771171948767925926038106326316682858829030460701837863122224656439234759732508994287892450047895069865904655617659109958558138440992991712984934476717706815976561068897252244215896406924421004590956586094908172645825002976898240234805859038629748572556364897538440569329148803087728321872019516723314851180740537684146452085738228596308971330546320554545331882686453651723036654727928941425411833090445162134410001439416960422119779054476178454081830222505283544837828040296605289637694619829855503382251637874751247269041539993153323014623238907363748103198214514369570643942836885994084459963134464199732942655846486373734931983945184677708530659152391484347171654809560218856766796773156376428732772844732640115231272913337377324940103301510042751399672093865139389427479350557206680868362175082305774169699416689282759137626564448792386941255681514991828214326611616972576301623025971800133539253297772937460602882536115266127080167818426001049071887466647587912825927638060911799262594759905353791209379849843535650164449726776770587562205430407164271986874012605589932215289287047958916124959878894336400569651105945796225573015803521584314530513129354389335375991729730452926303841727324680347633112582204702392144150163058378953825822268916853940515395671606328914851444882023812436096878516739513050315685639249448620133146445924526667013331701199908766771096565832089985427111307164142713885785771729702475021675253293607788309814374004081084895663666185213779977595179053437835738482283055215137351663915304396220817120386950614351089483326467771717943312796958392505945515401718311111999696962615052131632897341935713654612283547928032904526128713263359795392613261350078935277407157974066229252157660530527982281040482098362365805818438249520307493988230483700907514353960620662377207392297914660129493977828163622346694941173033364822342593959009886003182761726196002573411034324098688212285680548926314058468059546855220639664709764715435161841286840328669837566842017032273986941433233237335345313798702560119506578490039398092858785632318646129666412170750911606213564775349507374428673924498229317839501971539132947178008479768330621363736241558224660455075228166085749736377367874838840578547015810881805393245276434536078731467405747886368114910578086522529267430026127737852141451521019731244653044364324444882832971820623013487349003302895451014461258761364847664865597212993392957733077084318559078712679850277014997982951249715447255396253918387098675763426017211959906949106418774811249663759109015805795621821644668873605470781278723000549449401056022084436157829145017384975818352487427045338554456725630956003034814341806432919618452431453117881796997855240409475614363047637743157624382886973571554006795661503078010127797999288638352463733833549595350919162819971055034524520875201827720241446044601946367013954098327043270609646843590601708147786624860693905501488803720901936145477748505929182199926542452177562028420043197579695695239875941705478680667860913465839354591356689662447244060979560896290106766385045354431162606116954832055766224415971510854424900486629342600725754358810702626211158703562490739603162493024737858080584212908614215927423969653628613443644269208429743735433291496338662403332767377363996272069380301805483233599618638061727509829687982910951078932589075679565409233592331165796924940023988595246739381979102718294894906446040305455597945438962543698141357560830499526605758836006611231368086145439113110429657554491404596946092566641209634912101424139408896981102874681366477986556059290995328782751466717453593195472576789225337037294507904641642913719184999164575245321215999475771582689711146514712428908127134069179314030135251433308505649123323095667204167341832430369424159604771322558858749587347906175676616757607030316882198184427777387884362957401524319790476675043086474575166425676919472788178446497875701502473924866310621370869895394060758286492016864638428950843343714473448605885716293544183079607049737539347806805603284635097425567591416352246386713655767128552757840152648618138450348081020171915573610139581371966897754822486545820338021170748854971057068120528004077494529985850729252774611177679340705316031296523362310137763092742003568257037990620518623383343427893413297995727462269754889959396157719808585454130643073331046311299208461171019570084724645818040372491370242467963463839513664609719988722994857232521688030564115242635753181353429621489474516043906845191634326236284073602483778373637725207542152729928853365293683211469301629173895979183205575948588053313430603567982804167343858884732586557083168903952913930195137964707555525171813851047747450585442200989245639715134429325039601147257708870150373733420552691414142962923154852863715719357103290439596163845639661436832215129643875321507114364056940025685651267490694935820337615955650409392706879992977970317072668710449382983969529820816776495027807660260491418316732457732057845206120642075441651377295711379008773469540229407023281816158532716762214241383613128732728871154505381830158342426448611333102276049394439349795702915736803031649019734998224286696048165093807475229834998144007601665611386553212040606271626991792524821953737282633096903930215272925964678524357112653643667892842662233431518137494593101840535319308832623034003815395960516163158734354279424045944215606931528538233159861196446937785671148404131607385052909564849490255100900066365371465261052525312480606454041570504740735879024624248495232853433688976948584634575668095117291606921653284610125485530053354816015695860398246386407279315345119471475840508779412210218126080053764867447534783967467200840258486317742781679680852580267684845757261132026952946008805130446067513555160481100594722185593544777946327687530196382322747956670603730452771283316774063419985548634703234561825205838613147320650328503998352976904955922974087670048799576805402776595084329961636873004221533387002839157938779437500371493225999199229290965696753323710955252064900980929506111065874123956584327317071058154201175108780381711256453482663945446928738239949144160109977097531329119734671252466322708219493916880326076903988365351395952891117415700951254273247698187421840224576428348359130172930351013203578335139758621763287560227782345138274865623332318183813831431714807783813002261455350036750614199279071233896110826927155641771121640632727852882689070886229758796119290424193051151461653242628522557639772686038041021807400769761134361665976690787737767821799216263291738165932740729511241639744668496644771359805978379430634628821818363106926155261865357150866171086935460387756934303217485795012638960735955540258551214177060068605148828390853092736724443731476098658461598065917667629570745582152873804173952114610888797651568101739613174528015879892272182558297075206632756400532444743089937466860003723272261620959730281901911246348271807840314997376630770676851889787601983610599911010270565756869803836977797732910653394028066819808251523538432025143699964656784981681511635654282366657687998925546575021284838267415425869971323090677873015085916643511447345880918158984198497170363435860625338820631216800034410251644232205533809052299295070312525516435830536232583082737780172394803046201731032882193280965869838089131075646605883803812114724483743396914512083253387225650948128638625155826280634556397889056364265827835841163844162331345977041764710367623550496969080179082177669152389852136241113963465461597303333514193447756070943142587873150017288683150739215983686225065566773965988316139842467666898252287848287607910105861888988667856449933086340037108632851082553528550911297018798780730066187904850382759119350063108264917851531265924810596193186840243837402767528872230875072321569782246739038028704886061889975738792618567984779609590614540511957409413584626380768035025468531183911288888499163433303177174727831422592292535677062136067260529563314979977663833189604588222420641629658615294227108213982128617656880568493759123257585157762363734207640295125698596104752773274364895159793330232897797238775010176327204217133522125897677341327165760487233896799211217278332201943992119857757110172660129250614965164567965972832661672719216898779457539178324723980482936384469036710664080036153096853877400294662919525327544937936494377177996016494007278887564275241059570831350202468504802768716980063872416607158209811429886002877160240444050047755002782358572634988795609363507124387533084584514538676788743654574647276366745959575319303349463203136879295255849395613825006786895699807867286900924855955402881963504800385682320266310678986226010204632683174902579045692834415976753744701890723577238241974249306225006485032060914095235668378858157196545018532249118331484891792559039799983647369819970294266268666861900650771554956604266668074543383765394911835530451649121957645442950675458412673174538483073813003945009951363591463241206393030865791986785452765227012399818214146108814360591183464812562919913328275888871110200522191383648999115304185049787898750060762313909342447302742887551428317896159843616328245617980794045213872901787682467196552606969213465013336399781154468163711164522206664308167980966825625118686037031478769701438480376328820919095853556447894608693055391117720492110004243019065360986813491531199746181362797856755366491175710410215336935989228802109027237251310627538796246448500202852835486130078241890135213337276876846250058992695774317332141026057217264197669372939966566972876330711102650878657035063684199181644323532587081903755355260931946539244561685128737233830435859290112804860283848464402818869518833263337374817795725138947709848360902730114516370540571956818818150013901241965937406176347821787443843300069650466894485826899385062004330379340917739554762758065983034579312537325485282678258135925790600464161442221009490887447943387459911859603763452984574559050530307857269836896416577551853687864806870248937862746224046795467989017885461208818962685812677598441955837289869475079123907636385784695979085276017678077870948769340708138458199984899986684683779712801362273319173766033316628603616737205252263248641642712930532511707561547675128517990351968369410755273936064653255161024232014611583682146576860620211941616542817665819867022766203859484221798586453817309961871445177424638334864676428794668710401083604406232882323912746427452425332709430847448747329457012975786797055416782132506439810021479235411048230374133777729974493986700388912139262997013904547277184156505922210602187591702344740169707066436387394841152666322880365174511845479809604234515496953694365768835073308596607601785330235565764389236835090668708312343707000554991657560935399475943430028014612907198873650672469890898500156410615389318296477336005046878171146798877582982434356978996638970018129508194260406560657605087226712611797164024086372587388434487754510696810414364987836698680978633348236011461420973873481566383177146605717362397827255781350664745846231701384097298519846303541247876950983021275949835885117194590042036287949147248839900214411071498489509559262121997667301535249091296865143157951421706393405668373549584905592554186691416505435120793664630964571206808708594419280702594763452464604061070814054892261358272291732316217109446923808505351045587351980068574262525919756601881583610289444395911346294290694573012432185137127402097752361467514129541373857669637482417570414226357689822654873772796204572972582279838627659171993601816303866846425621938001752904765504196446148386264918223963724717790400269877501933620124860889815504854755014554249475416568145323605178759860070171884380788634207240710071076216934827695462016473537372258268366077251688787143208525574745066983011276235142930685263443042994712758589484487811180212040273115147574081880721782340228518463695250125878786204122202205921335688916358751057227859962792466362028407562069917373863230133614896862791475620131132661221146976727905017778494425371154363102043087686323401059397829176336161164302384532378163887350963939320001880804361466621471820607021590302066535526868315614738374072444633720694690388075968415948100942670072502689138365953191598251146369171707579192620636025906096863090851151837249399876339491296938914000975849237990914282442383327153648518951674501746023945995464564403642703623818875283508987344812458999933340186246594368766973335581203363738757045357861579090592036538184071100902852658069091892573221655513681961593775714008000294958570257394676193975168496497008332162091634000724097732840663148349446241244377397501969975873701672566161587568233426576504147663935510969414827416544364499179261081278259571271369374749177939159351062676874618584675061713527395718873337557604114664263351578788428831047706384330973000479857201829485538133285132900591786886303826773231434481023610993305539452414434743800543170408515642302591123854346634507521100815366925404091540596859244674673170789178562351349668129958028152782119842497226555169642630699706896418201989261802266955817695197330165894545652705850854451994667061929079648750013405198345492066087283084020882792726585567526675765404934163436218081798264261384767776421453451807372293790272306432687415370675404747904716598766761920749565819398030987430979679860779535470409544444478820208757241404318455983614047841232046549549317975163645738784537226356260012151176218040769393520560064648981345643676570071698963826405267603177803953944201453087610378602047683313730161719561193116785518030488357273486155015045232601462536425293109051167496448600824984396225046791638061511703688156566485464924539399720911726773046418630703291189216726850108044425648811438194857363601543099297899637589289163259033014676349300357292088693703126067584665107462091817818597627463329072768680310239745652048487812008007069516102293589083137426102464154109196275826354069584928930302877372202833335294769261873303835108921543949407316637659608481670385871223635544344462540753690455950335457176415824419349873302223023146323765652275324685062972920618778991747208717135468767154747607146709130364547476047659596965778015184755701181080017884273320091653319719093886132897976173061043343925778577466160734888833340418615588694627587180308805126470694757299573815440545781361703515341163730020629373935161333426641685906613233882960300823188630095326269854145536510910200030305342653309816066466490432990589973949179157787547482276093306879628701731925643589553689210025436956178761453382053827153625078030353462361867799665482395942722543225895753503024645802720738883825518205636610560665211392408812974247960365308830813543322805783052990537734796445536830825184572140901514981371110094732763898310008189714130078745881219918182299817291029120790155262747878138801078614120469445361527824122394092241645544440087701766167933100442042813627194599061987188649772416312456248451903939804223695833905245930416749258546084232716557073293833352909564330860762423278746204723434819705286968505170152982242859543279544796302074897071925025581204375512881736925243509307421966840540023246609583649331164448826819687602369574398165423485165382088929801044992278660371745809448627051442827203893323719504914221492020096451158853964730455606024374774944119255277382665306817796032820529594263160493177523026123693792839647384628609289927023572117410292347175316386247815426461764885158433759991328266934736330549366415779890085343988326964995326469438024998199569922384346316241738879443908904388973837740995303264130445728187199294572709538196682353317856439423784414875578732085880172550850589896664479315416005165894292038878115594984674365046534310080053811594865657526612340233425028981550161526587852646298851583438022463919750944681598214571563949578902126147555541463063794429201363945807800577328811874202778524468082497339174948722922681090325152789830662656300424946338459107810863790101679978546212053732557366225052329789162979880220154338262526437399371149236449672776094030314171855198943187674397345151610032938993359715246873460926929112890362577580582982649830597201072038852264124555768677079682841513408602972664675273346702074663647088770374286557860259810120020821444581435133943166682792798950403954155404395890088969597578767575009241228796795587126916080672526540752963944539291582013035676889413799703272699513093836496017216582730807786902659210936827415656949436899491250284929368955544682520506050112297517423431400701426594590918249933854235664156714812960252376586656612476183426107756295203678954138677018749284360765258675909448203944776910590594901139311598007140457314180589018864794463732958851734034860507352416424357053087111938444317325768503131899777664127133331673478051127808348544238510807131999157822603608823164453350130884921769547134292388091043766007947970727652488624326315689328718946619558293690219039550924152897312100580299710921419923650114524457766670118189470106555247268106740045591314055499633814806962165327121391195686187965889349963239022331975123144000491162008652609745898985342024032060638483582078236931615331844658791689953970491055884467325468727104238898508257898092639985576659722951262096979125067468615982279511262434135903735546482023199400697301737451355517692199216699295503925602805689745552137371749570079880249165160497003282225931826885058291402294806737866716753736204247805076370935742247071855008300775700038098072232300648526805315596187544358905440624271718489367129874418741485304714384688043910656343918139666016877262357207064939366847911399865861436144687771865640169036267774563108256160035932718799789978265072913726898813863688875244504973569325641171906230605629813202316653820785672129311595680326921986946510483446348679975781820619938094406400266110989761929193419644024322448429437157342625545426137520353923486670170777927085978452981970775229619583259372968349015762243463308021455956428187975418522632876284110269786980729676540620934975845819843353120748804452716744539388083534376485744718577768643309967478596493319504313110407692733581345647426751846024470590065703320344778235101977291705031947070135975798892935552915804165739255952854164762396353362959163796103614127324016689469886725214497449347628867542700581378867660621761878113751012123613213930327895502015263495003565888683601210539620498085897862606124400162533364182845692672916074861046291953881714926994798023904498424743577433523591465405062275174810338693172609447113359649744884557573992260801259977751794308113315221403638634550992704025530619034744738522285886801871668213274078157551433657161959240523665513004711389026644661476142899043378747486310422915543009522628846174693625003284580928269649993335401154768967912109989692882019782486550357418369258502454556788539313431463729480233891137689441634728424499941768910657380103375862255917813728330537486868221603173427102298292955668085482541442498409951219317559758756210323010785413763948454890739305888839445377999536405232092053176827315285341910850016047181317661624144769477949624338912706007922522255948619095690697646166218969630489162795675514438005544590625772809129298389565455734467355652145638180590107248112925080255123789036266845260975483063434727889656002544142153927833645134694186053273305597193279290219890297432186854463709855126430917512510622923632819134477639367589523775898576502340184945175486835976602995087830964933710961588868296431349729531217980428019380674904663234599392582198516399357635527309519725708971958300301458613272837626158705564825909308093709331475329516315426097476493433616298452648958104840325972096993741358538723485265890519580615721426179036671185609923259696332978316621903454590173319569443915817235280092753764658721538840684190776754699364421984777245347816690006024367389266784597768864040990219357483148371456525594780720941890491313528788255952416627390380573437044978375170896418923238405760030133640295683116589797769667296278346175762539916597181584783897731744027153023931424503015178790281487904642122657582644202636995779656766643526537357107848841050394617799068376200675941494870441398745796144169328167350687925912109001072904845827422072989789245356089026083844959076789238517756889303024317457204837775137144599206231664216017622425544202189630109314631300763884134575663684407850414658348500322359599644973386378700029010823472121513968605036393753038432793880569746324512517491251367134785490759278065163023452670840937731305432297873640059400622264614418625220042378591402134891947980942404083601139046348513244238608434183803788809687854246390121127459213486342467920615072323309392894892711966344130453960960932855910952491510034919689127444565630681262186436356658761904889620406720808357568412390587745948413471997471717964043969583544063070323757610178645109774323704880565184889837805501948719944858225984571821304785037589289253830807563723596273344043566902620435813835319205188987576121286144754668951613361506412058882573873538722262811880934083263640212749954911399978039634633409503107160449042436013797686883280575850491546164806657876188171251305641229291393636587394703652430925636911959571914561428617942652627748371968219045239870949864107071787377390627249057832166790740239651549030912048055603005663401416651806049066763938151356635560727103406402009174043942844853665916278376279140083616973005569896666138907382917505015364718472711822427954081289907678392317567403060497835900767865861924452270237745066050187058646121974730239482876181894993748938584758526968573959753364992553010648785712740101921886625453763410377873965051262201974654611258346210030672916437955802373712261870883399627437099709666594908609670022354208363683148280893174429794732045634924463519495538981719495934493985899087855472436834765997430089194518939702906004325688398691994041562378103085964510419111384946817692009805018993810172686715365042493273545103618044065826152753765239335709626911601669050179235646548531017221333877080886393770376308506423943417171489709561381017461635032153727793951800888904500792682407134574305971207916268732508102714831998987644867025126432252236109746197817600655895452325351178293423490478055464446035643396696814048300292937644820882878618515732492191613259940063452949366580392621392070257923500986860815691348924359974576315569946679153386341288918969490353788875156565127077357337233326177691049794334253202466519252250788873460185729412959626353401738178986788211995972388927655328388460811521344215728876482778313794429976541929392741282485814325406696619394151450011082623212585969104935513239018229006591587852987305635123478150463280583102461822129282964368646056707832288340986370243956177787996177791599200577566646903256746233784563368663883519439245544715897909892144351776840170242160322023183811099676831857218398822584723957679657372699964498662972973399905028662613828558796213064918739245925532828338369285700612163374136633314666869742703778811389292481297665853801892860636180680316250791759357397373981195825144618493247575648946865588147165744067005425182654668327513549257838346141391469208071823722004330533201616612230344431832627885194313292141241160497824831130206196970454990979255680585016698969969276492961609774406242649593869536154048019040536169880636277763622251314588782642622189316512563503877135162063357334288019602296367628701344769815377847691451178464128276948684182574266781473514724786639465406796423613188443777254125121460444936206479570038936857595332434409982005024539898389692102909475743084327165095443749427496756840577796711783158443539924689888912045132576006368068912915813525107640625592967553221790692241346564148415688585959363179420868219799258006161207200674951508287407206245643612586639886099877566985607369993038670695227706455450086779359016793769403876214546761177319092998343689516931353288176841896207450147269377039020856329213352954394994226146599923444645152744289048564267857947193861177771477297787991207261286924451260926117178448033695130317686375057988798406022949307340861628350723186860540534300364086169041868954198933701386789229853997527029616620421756732796411784782748700287315432858793758772476860802499507172906987439054073628834357953399655852688724397603019985163881591493525651361581728358358799472366435261389576044355442345623336965003571667532960669223357278775649732337597420890412179965564156162972610542609293956886183968111250690103024355159126541013022300372379407105057292819402821706067056875316118586935344946281436776208060128684466021803106905140718587246470794815577190525349438155876664748697081218916064420915894608891125655345848925835437614632573923407726867292217879014326351117566462724811905761153862159373468677480633537066225575888306432395834373712727150078470721876097202279692512037591667832349164299899446887533370090820415810283608801646220361439619422499002867994387726539250430548934313974278007301530138157504641130270783392889989074316493352812198558925426663581033422549551122400438811078483336326390415746819171914141965184148571892438801120365803624825078756501247994890189302126088337457509707122354422235683349426043792455838407411682026205458569895482334786908678501185375235092557674821256889741287646017465561180157582764745700329955756487254198049872656349786692774881554910227568945460826223159737483278988238384332768158089245839413381727455813035887292962670380703719061089087321316828628484108127286624212370524814711414546334442315458838712250932594483603802088362774107556384633557644967179402746336496450127357851940145547844471696787527724989519398043109054707599715436832159419225848483524894616323130154223676452797638636727292767443943144942924030560192341635564169406718325403608403282485770842646230658652738047473757118602608993257876996758196903454096599179236280180058324449081041831010242466561240979332057635186286228686178636612594627550574757544019723412302699141068195342563195623022342384660260916706682607720750388733918540024191047892003241591905860184338143035908788519060398373469428615050258911702066324083969236708529427209039165752363427042401011115837617627862083356927466113269208949332099828845463920577397657672348249691393380150986143108050627368844812980387488094152020444677872362321570366920325935001386967060588612370778403767195618380660203431413805762745427789384977522900171764915342522006333570288574610814154112524471718635400324267929295656342238101429513143847617839582376357289562613122344912964530401741073912729900841430276266515327956101914147593495600313555463109603610659503602685889442933000647163646664168990736101500903024388286147177997494861461451487970672344754660242389470643579165639689673801643371787480056607815332774518710471173375986624592526612041313151529116610400148923849754029850660222430731607260144379437667229980937683825114864642038857474880638052477284742128741172018386015305987203062313318789755398199651764495079996000921389206475817897037425477249790483110509626915572969612642054559488725143555481848447732364873659619132268018049323425739026883286061398544594407252984302104479535709422689765453388780908681789513381725964410565665617848205096576302007404372400701511822242324804009001072561126314044932162404228894917681262024899730949386175502279915394307794205980046305113533209494417040695502770195172987557594773098404016287374295582870630261123067794521170453463004746676764288231898438199918362697386851657311923404287807561979958550960226961976882548797562507893910709429186990045680549915283849838237763105583418936630068735259446980416025825062233436163078855267218939974258432695831183175896568923745421024664481654845637402000279539067571734117619290784742563234679179307744929867848860533272172837676506316690380498415039580473601750457789589046271128572703633642084602377056318601557135082172699784108811710261756139610983243318660242677692884093309123618908650522265072307878692131671763500256707581804662952074776671527849723672396727158854066204319148604468585705753842570690042368071319474944437109063307012032316325622067640271249291278492030832055929856255281272747097541564245839359451486254145257943823175201235140547315434430894784620075294690242108832428208105715834828817181372736345348272614997921169565907087136826585833810679412158006304121085131107685048756702440536504658665522311010118842385699761761516795361265781496691526452822377701529963401686957861016169759472833467437198559225620223069377593268303212499181858011001549936527956691411832273074034181268166112896119955763753193410753803562830564408674485195518198688768099445629546119584010372260224978758362881732027904653960462890512497375441920584473716838529395282330299962871555819092709389962384860513904603618521668560715536601065088411560878427866547168489607124515107695289147123059470239504757340353819972146545716655273227158139909767365470883798176074103895005807375046398896089562196082436411896157884514080356347423827026340251480863247266982624046195062997160282791832240489650463308870128761458840007392372346828822403247334916594924053756349604695445344336744390441482585194377828153611500899449324969739667391685662409118888591400999628820738496702863688892024091514544011485429006189537658942137603227571328799954079018897038005706974780330567607701298590935488615225211789604843975917228851903643714952639993133824827085838460755128761149130585569040478827662177110321462174883854473755232201870899413031556876631482337251696210313027970855396721356044849026072568066845281191714525921228273462732829705270052859274655504326191828387299359854580327440323769710156108911463856911622350056544558907299982105401807436743953245264545628940468729528715276581062198141727076172623490433107049329674389576102751359619545859344682915976460114015962799188538493950239509695761665417969754975404413052676253595976035434951396355042932345300179355555598276035190722044214829742650548893693335985694995921842346261192114320755398170898814682661149042628820923981533088711982626747096822771363702198112883458576801121089410286338116910956130483000208218802833942310638824920883385378548927477661881526162345357636319073346216427756418621579255085125341836161904193317905096382607828219662385169981498233041555689513582894476463344145512721519856769326799330180861456730570480319471225502853597373607899789699429597317579185107784638071691788894725430060766646904992994814681223859773939273931509708251171025378351677537310859651415673603034031488827912152953255769278756128955333960326714860308180271630480716613112540020666077958395964462319015610471980501537141392327850412644790911183526492398985772374640981412495359719255602955278383920668139606100730488019583395630767344341669478526172869455179676154946984073336813201369057290923060389809497768141378376321923175776848735865228326938086651736193404794864666420112682649291062769880313193054788461281122448473507642410942585101806354664914982266904473173008876892957986472099771956662480209336824351897133050580747848537207376552360031169871597083053839669038548616799888205942096705521082886049712892409646619105902687628813713137333259928028897653359527525752555741026987413515882062038914846535920245743694183129145632686979355254732265272660401678702726970561646234693180871738710923246204634285222063083724672206015154787679538169485483590055626051581239401367672184189217531519712035085299448116909703191910133284818903385923979370250887346739723079368556966841438498861532822827587828123518631917931557521902466011010892977856059255534709855957573912040959434561562505356080661524885665256024678543878736418386554346336473322675794914037500994810851614758727593574868002131689299110459608433378678859242911709090118710882238332614682853014852273787248089051425441954112458291006582946687041829507023352604231113488280143123721853002805634902380162186344798203756659184044617762036221416663801577227405974811547839335532507467536850647075504790641835050610908397819727050286557483347163519302518426578050454603605164377886901040890448325872638314074391338182599325814718553240482689547216053454385894190170075519276132694214010892204466170728413144862613593724608596648892730673618599975674087302376142564926614503008768460366853299325125853200871883003582224898585964906834157755178970303292883089414661730058198578792660204830803709578386397285689396450507277023125971950747583300736447707041663992026911991320096945782778040224890655276914265299867823878516344124577328671031577467312050389226404573583453279095863091223642428836250469366164898672989714015608865330137150205452447444278526595338862182037902433921271687262234395611001852726955433803847122658741211467782879786894673364607674408802274508676020061916925813925972198147820076217199869416604735541964574944882115707400999600237219727747517046017753544418272624389213995376188798549862469685494283951088283158032818747569686176024874362647678745349459098228014648121895543488672917617971648009770026803789695291814245725835300828059944695768579866339298298203290420562470488781985955179068801707092964480472234020218591874903130302268392818543614989702468453373143536787002541565266263626353297552774183114109881896041022129424344922837259210567248940697203391782375041406820747463814619791049373711555769560090294077920061396858017880451626049941835561450068626244548215818409552360849374832245682092692044262066442690778611266508956495268731956565699036197872564690705594513478336983276345218330593572665293745723493290040808970137351417533323090320695088264398487647173695843636629912776856287972365342719483174403971649753753294718923816134149546408836285591092129687556302921733547696498814662793948539667192769581061294521599159382444443328057827248203078043799103029103943916597501099254427205109348679681662870562807206458757287690442611486500916535486591882888392666455428512313964371283318467608371757827963508663890423932467359728217026446226329519699899931170110778905916199541510438871860716054929714795057062487367400171532385889540034113355009131881648499176830952414936364750552786472872729482441163872391903011273114825705122046628568603957432457175656232226128528418505796811235626302310538891392732320687976205383286106226211605699326111890635425668508729539988084796487812483666092637873569147055360974379490160620473298361664175573803221151774773929641379228671005178880408787306773922720698360380933684151897121963562938819621329508179366972136551674745984338291703382068438036031172843770972670946796666404153996909397001936803128068287908572892869689408984292247085689392134293959151708700465108559639561377570022303727548402012455574712044027011641901974242560645395753135132153954359601126454545128653007708194068968991460242626673996978054171663542817874424263673707864039588535348415600055775082804412915798347108023669292770695274609841587580167327177757612568632474002372360380474962679431091798384627052628042155411879400620904578484014587498422934928677458540117446757445857189761362078412399665614925470920294202058204247425862536307666972477077796433579755367154270273898619766657115662997968248538753286271063182520234958656305678440747271609821000108309193624075792341397558117029555728271564343229269846339644334840658475387553976901186795679430567178216448082627387145410098778643446302015400740708033406784412521786608000873312923708247825296878823458327642994561101238099295260976293693514514124701584330515034378504354780125212930164272537651997275838064641212301684266860982903370471186025962322859089490746952994712914202082805976122421935038542024541597850866698415591904925844162512792695169384955225596275097060631102523820727283600484927847087575591496067710268093579759983307119138574867240268756163000499413553408789436535257591571485641305308315335220425643266122470282793585845593979238466848458300880960400665775423360463530981690890408551620902072147922785261117887060655326981591229471822221117339008844818142525567858801044337884565729596586171715521634680052430203570694776035642449101971896919999656264953577988271750754573486890733254458932373114305261015862029040306046643276502703996209641653051290106447491329515304806908527077590396424741692015851356831127767816476631059026964151293816489053942483224679629524126368761682585546757615321890263002547016339323871922104657384669102319067949368002484975533954857528573848836553589576477505025828215578513057125664382848686361139176508576154850751501481197742468950941046040696927133894413082094322111349407071497226310745403169026082246999790839063528652033206076437011170780079705148583036765936775085636185329598438295891415000106390906956913609386521171800840340503501795101739035241316445879475427328252894660397821540593904852819855404775052032473060442786614816503641633303931743814458355473724186690751667387469471923276992468932296530106959492132145931028905078488511976250183146215271660930840332114569526205668360389461134777453301783249368320469875756941138650847775173626575912541600719445194341072669449372355246848028303982563957934927861836673193936736360302992462114738036001156692584163528807771891661221211579039161860361821827090510482489489019304266160296063967296915242146266657296150549560577798056631255576476080781490697585929797865477929714547598798525272055738749954977576661954102936521866267576207880183447060021881817642840004927146686032627024446989589145504855809042450946162695052028909535259640440012005961317904935963617613112990375353191428493575731086201128486869217780891117524509361900716340510342836692891608206591417537734620903962575433687555145980019169901976332419266295306127993149936221355953563531478508916601942843230352082495782683881130948351001584507841967650539021723470748835746362217108918836378492197244613899892692180927774121243988963017260872586099118392376715162479209140570230709564146983277246350578892175922708383071567265058060855110525267260117311383622332247546594797656583220469301545859358030129298222000897933319432305780392998411811381797684020347724510143662675778571725226434331419090831428149937306636698455630697771141506531708554155565282030467428477099742471730846957453560846734507993660530700647019371646898971986817750343488694994482589708437922493278311765971798035420367243185322394844989439126654957934587160145741055528753797393378551325583875922783992177820605537341502740048901929053155450500934371843331278760445808979735268988131318431104868477261879905289943063396527618098573742674704042431756104411569113371850609580414737301013684791505751347340768159729532982601932159004280951421170699681299490853044341146863367000386490692863967851495374151439336771977725303641550371485518205702979419786956451497149191564331031092868966984848483787254974166921547829073337797555416633198043677932294831701437365368272453555224776817236471611507800616564220724585995745272740546358173317439442268731558753932034668527427032862075117806276030518894235479962713221540294726042871123494166749701892712068950016763340678611048622780136421175751200282606156868193472381974875956244768312806674303084926809230388801982161344208485853663680401631718403147767260861470831682260284282167608675166425764634442266232458387014595833466990780803275376673688594570735792484165916786429055088021890168777427460890856823450727705573222850492404206883262208892139947202460895163284688585773808052910331326315828356363165378654745710304595820139383574628787662840813053589297639324754103874064977357835551572709032717255034387662510035795374092842739441647281542500748800439922873339028765447590969928189428626666909953991406690104093650564663751783445864342700909150381133360416792502253971415197380283905277081545163558662794098205925145383614501869447904490832774248721208057738512364548114433390791281403516816973946681104788968642361613186883257349602952144866559404013937330840570855242939709920594854763484018211118400741345249917795890548367044398156863633002355209427127454558448259855053953405473950850170417470919789792501547074410772004950532151536474329095209373618606526122328380734413699902811915870569947847357393679534117570190888740631794803001586429528246746849538769573603176089284243177613228325275183242129710065389064586881311877813289454427542646071834392147842175116890438343964590457696255644899547381538058315504392335697977009541888869630909600125340099058342221144878919798998237762688266331411088896613521241420426719887418890899286533626230334939144423996862310029508053792074276182749895754926779959609532753859408774269105411112755291541867852934605987875469408483471688722735667547217143851255780298506373827778031841056181070329892900490867900391607084371014451853173271548055931147813162772595932282096620142413078326032585868024524794104895758024269249622098950737683475912165906756468823082452092770821761788428868163747952207265697387166385468055299950199831059000269754909059601305829238917129841167188265770549640801418144019070301436679649023717129870990730168540151859220123983951976182927507047017693119311696773853094030012361332547971623961722809925016265952452780485321502134112245526994335326521882436440121685179458274908853153817548055520883974419334743360423454537282747817190112721392698942513513691352101862173802838275043472169151123841585087472717709885988041757318865493092411364650770726034439157464006094257041333553594863506058534973819359481314668299549398649945998302800239137978705776796331670032518433861538755999946032798578142078519313346085446165691952589053912106122249839456752916361941551146480062487247455786564118284369665477618943785988261335353569814488329331375932020172613428345183739991406543743063980073197249589976322025535948195470830035084198533371903715745079271161819401881861212008765850661910182641490340567620853081631583821661589625346106020169792360011803108692029434986354477042388187137114932215883288849179333281435086970475406336928651528833725573812740465615983821994275068401839477430070870841951029165964718163833221107700837535925742792907800013213714382430441678605907593248334028588104394222805458549314126111904094888577675693642529605449546582943916896247194965403766890044790525547523964692171803062135013633305491990434006786906461372483398384365364865962500443515795250688099146077254098196448632800497475952982892376799480276196963108997387514539918525578598068292117083035174809262939927678600397100082156536487730549701578568121401097467548701581238583681673054537997694629580484925313146363060084926624811461057372725254387634076806807669848091131799647111424611327035529830696416550596337349761111797523742436941467467183988239793012911997109563176518330605677951987346076629743940214416455143496702922365624978616896473143059116038537233216267257033261394924800349509224134940260492128458777104321068661480969924043868171767445283195915004550308988659646699533969882718322485030768578665637713277652095459289140249029134624693151010751250879442014122684966820547724258169852079869395631404741046849089022868842290699802282580384739184109883148098858547942146530319439549547215541866406958333828038519864859073748412652788831038951393140832631382414204072786427345110242825108091727180899372090901447824673540054652402536637299474106732318730355427040869665958331398558825494624388828100878699411766412858423481697646642037194170850154334075574250957606636216019535196235488031025257749060153568019493530639668623402882637749767439018125082313016110511994143724924237553878429745963641821397929021636459966678848477214312689460841792336278430370414652863419964447635139906242236853786187800671183966786196411690362769808118598639633452325152549569763956550999607387256292891548892524945944305219561894035550621982652792708696626268016686154196082658605144286122603354977335400886173998585355079504249025848851238029767970731729544724079739586090933881065599928864355224281299748530749691580289462966763181177338185519692303282583913562870727669671099619706446520825494327676472283106949469794117488554897584419373652030923347995203248852903411715802486739288306952963841716183268964935991837364206683008202625811965314962769221792554368382118797713202612745042025049760968316900220450492129947843964730505292385649097977509352701884761104948505052645641538760851100980460046477582295294552650218699434590284483467324418163875897787853577907468269732094093380820419290823834413928177405775950866953719782694423688490255399239351987272317118341378341603560175633656065032681174001848314054944188219200716037867384495763370587460777421509909892459046807575764415109059026313606269743056769666524776503364104519421322729927116331312919667235458328960988854138637987245197207903435170580039521538547616779622017148964942863483564030629073598832688534935706907070581373644408768839133244695596921687357118848863826683699239124975025856508746074388424991966593459803276941727931325525678147097602348551300549361807707791209925532890573891244523532592582397619649183251810950179542366980743557383975495328341713506660958588996055431988015593735634669435853433514631373419426542013703908581932197295969843993317264516688814261873604110298185222691050305744388819767528294881050313833953949286077674927699417411243936567225208666996264952686154757668554570586475251943719770651958139597161672566465546420051225142780869320116963970386723607706499529523057526814415789427947059388839431253913652798917818224086575903620548779122951156126298448477081638333065695734392405450921971394351537347929631085844271907651389141908651672456746189627325010486663010492073223056751816884315008948327837164353818680373417589040307361261924537998616282555513974716244522357237001434030597080932647541257771087446009251739035811677943615851518407769175069147043312087205281717719226458379248818787277212976954441254605867427951497424281088683887014539457405997639603234906107501743272066310199401377935209962076294600563849792762149216312413700785570396071264086007875249990167725057737439281100853733337085452509635986464601355604412409255729321242258144289652094062159452079381525820258861995740596152501649205737625275087709292401016019078713683990222555440623421350841665357156164427627093310818748086655646438795194879919861914654794027665119823079181638617980938383202501428722609428275906230069471573336570023065913683416731546743838879336874644509544777587855293831144905203520026454188410214393173757999430922827961370674630662890814826582870231335608476071534805908352540803155277211147367810358913394982201822482921972039851733002118350360076692205469953886778787613744499815568863705957036534114435914458027406420022889747037575475745442783961166643386920457110651864430814261899866032169041556627302564622420039138427947418736832123409519711681293726497177466696510068711494002754331682974933064531840421704637402408166412761756380162488713690048637002185296344010681655039393734856361078551869185521062687643651111773983830715415549508164540169396279848423217385753870735054549342016429859415936997634965447810779636662227575792986269005962731946373259663316291560653516632662302429625378587866708909900568037956056350960230450449641185981667810497766265008811757676050002423259693103139664286907988228534351665555487101842828618807785121068084478396288491648755699221564923974580759672980852289706297063143613388638148444709443259679470758154102673865785990835491399956459880780310090178285742227266164727953092582708373491842349264812753252841106432035754435461009990221752373702940200766342809486585119093740735093491231644044942310277905477073046315086563826555306114705656662491245188221189733038966336154218298743928349563658343588480982905728014128027297982826070013177618806785152169199404175349443432942978945306925374083423968373081129842310236765261992171760550218172925639672214180377730296179979474746104150844987166498284819364611372326508159102258909395993877578543691050921930905230580597522179878118948568786515812999368619092652304018538224619599516604458977333119629140871122863619336095145006235296969630153596515524708573851000627127185705562989867218976485001363797584648840900071868283902628590522889416706961049353883664662361103080391714400681485229784331813398669811207820082052053476576169986419826827361998915281042160981297470065323192217716509243166733337347657484608306024723163532399252635051911923376491357687410837742739003583688405549817227113283608095446980840279035348440594142793836061109018341898898890323448072861995466841483506172887058626157600175762320970135332866099634627201535654996520740394056496683131142883964268462447090212040222071489917779719953438149981875360179035373419347664659380161161870926467673188346305580967496921961164810599014751768314168935176940720077863608751461353539079559701035898291067400953464557705467337033017419127128339067764395166580750291760712009630907172211927960730747384694347612923809091067278423016152653715632523123714715173961388402079349542282930419706444532929754465184164276113182038720004694388811262397679144348374056810515874037864500904860109229927190316313564119587306059102746932835555226360421981963081113049143991404804252786113216507604376069717821235021432232919012985801359531271463651112051902286551379626376086427886342004492963629851730299922365004718895116620031048355152623725454758016123933162062713730432856943986633145095267744254853156924260821821641612276568079487156984269289551543473936166092725545176750033605016171309206006642096531839508666883417787426337122238350760308756695395938673273283514753689761832993100837532450819564039472102386789816133235083543429563821136327964762494549367560774852456263133093175199616979635573740186564521342417415573765672221644902810707690085087013894396301321040966696003098030347900587260634143334041653696046442872679659367422412496288849808202526001188019961680641135164384086892552614146462408685627773576037383388872239568539752181149753375960246940459728070453141304542522865644516779351812161891810735683864623855771596552144822715323026148204021205425268645494331393287585405982487466745821799653449578225333528893314150302726009788517321554858583120949908222483179953274022715346459970864556940140276700614579146220435524100933930922585053613519307660571147168214212781619717635956637145414272754339752216312439595034532285647815328450316829116294350966456813168749952981060128111695299049889086777344440205950456852008862618444434661642397331775853778937129749386435558959715158077767951086354259803847322859292677872060122282726304592672914127632170265940640837190689589747726302832430547015072447214213440308470895268524250258353672751782997194362170326658818243319976274352385825505146119061188105278110602427061235680320248674903024977679715280114006576983014602991645100057200768289547123998661123685392186950987426808959546489087038769441128460820635463174551599627656588046068119935725528333337687108027471910308906576631475173865609177121403093175559450355020733101768398111700550005820808325201277417903248632159338224047844576154844966221368492132443514094596849235909816951250114213772478252988536597031431404798674600568313307844891214308855423412063855016709399864625486323651571536471363506514594648510016646834538958027107434978022120303940423216510102075867032264021239192561639755194770142947968999963649348345557629892729962190353039178515733095362454435776226058779879421834088001975233945808253312062181082736979455065374884287600043808626268148766039161112081519691915882236839503794847462368809412488821894911452053810067854834365768718134207435320496676655612902005332923752046615287163369409740944325648221222350856608506657218929242043222811205179645697269832545372756575316459905167644559160683654246524509113939356464708419353663312536523412178064526437310397939613890616230796927113314226040722452590594604369107744857777799296850630424744705984282934572346796711211131523650420873960848914969482548411321110286039972935423876103953993201879401896166514691162151727012877147421497715158763146725172197506356040858310187727719725448264573608697324110435858198581067734752845437592641876541960209629023344685397412290667360395805286979244311407070298443229784431804069165994314674001953448391722597075712823302432004060014267616107883976886848745611296956774542494807252965102910582217908509803973640925372962997731020938141322387034904601362306694394823767652247139621325439563375606960462050871690970796578604824472725154934892200172554492346575636781290922757610555592744602209473794573806651722390607907136022194721291610564635010803441632356914367458213445627641189835519863192514711078136938239791880969407216638295449657306805979839136993415680884015733917266956041441616017734607263442503312555579183948943788731443743641410149986024256555465332631262711988618779825875127150663592454425667464566556565032611171056649719127442071858214630217639479908824714765585722644221731153496925886709203767591240012797379835761786478517130178509656928276519307986367148647845179960454891795710978510162150990689202451436074406025430286593492606391434206103144899422345055314571438257305116922430678912417859057389328163586557650744818623910790314635014327109594552711466490210886969605864890583166697183518796267255698528780536195006707802735036349914425360113734857100696190751870773103598639597775227268307804621999439145323452189634986138331829512877050727173272962293709250434628204261806338201768462113803540176403706519151347428941827679659536731162383683512774462963611655226664552330656729044928204996829865817896227133018735845079668472003292714437325443962400945112355135715991632900715245672076662115783851036883143787668635624640585282775625052046214468510185119220359454299096704842622349433770357605792892404755234895809840800891018129820549143363218331529756515930652635601603661369792364770361526154371807074384557653884364996377895966810101970781661190219532904373271414373464626052848172208208794852995538446367239127247952525404405337819104957354895854601393045658297462016956888078850674548639127575220871584669200488361491188721086554556633624756159717743296083514210259757584887845168736395886177918989281502744464712474541076781976313813436761321967955573232858982838548663115468777881126966066366502410167183345985963035631597413906648994055993977285384557289202458600411469832314874530260707106919074368660976333850230554626368915338662626050414812161723448843790285068145246745246077206887349618862381635763290923033440062066138087976306041034508219551909130756057659626630242077565596641467181082193986305566412050620667991570388086547325077044166488426658346076830792628690501049512897512703879792499908420068347003465070206560281340207230015859022910015325934046014048029070886476667987811642258074658345158680058733563229290647499782081263102526928997458965636516537253239059143502498817616112004557131921942210485962714557290682963967079949701327355394206750304935273266318902590332578199387051467401956283187393321791863250319226666534713064222451451073090183230832636841606962882211411403201917907904147244354278941317368534802037493518366930663051232848043102817272327365503379249853407590911329122388187775107266874302148770680027352807086991589211592225767480408910079281562177442519579719769232603845963873949838516852001564307057654358051322665899877509969765208866118267119381438757090815251690073796481728439958498827256274256245312697649659831630051776001892646906136468096960491033248526199757446523418850085588551902642227357549146450273568426473030301886773283826104313873216836354266588423420007432165261424452905007542123831637324294077524900115481974166224566988485915884037277402618332224931025128772470142007193342627939285605326178133446098071136912415687037039163554269410892742251018596954406148014795274901920734492636388524895359566272796861035426217475323405491926802182339212340200727437605006088381563325798838012168026083350457738469004208019394925536438779854849941856008087272018356542966708101399449426612447245137233764180967399533185159880698955017262726407336493729379956722011551542416524437993068006798828835339956488664811618523962933471918618736186225328656708366225594308731667414518323137604944558415658736351692034407861779922822399106632733643379490277340134028045854409286937423148979419758382512261410425587609082612634132038045777578415921062774790684567172517158248484143278167319360867436150872812090107237245390743801503124130211246736122732064718276747859441712933852056573191994105075729059851602041214105828574904983407003217520754845648376959519331152493839734676529614296209433845283170733461182641083975643371753881285617077428541745291818380599559469318168656239744317894075190099765533910185512767660704087283451413025747781561926320301153942807480122715808025790166206425590913862873689491170754155796691605409213383379776193481029853008418191932682804497229003842798478596903037498848578653878330234124622805220254397406566003469760246158648698045301793083928770046681323869580323092625191759680394705841789063268148084119777219185439609434064285421263739566533130825166426473517759961031719841574412818881750694385443979276540822230202535658218666195227920791084122350186165657330994191108611109241159190396834650793483857785204731613052998204200182368731429508382798863082614836015715798732435527755614116832422318140469054076373187526085198226653820259343439658915509180981331510405494904831800309769096665385531298295902904957160048751045919823181264476173364568485006796246156793426073875704753195285673673574984822975010451786606415339209988162763541646917197891578460565091310505315675683388112488609811580833831379955898207093160713350851896763358999618234040528400011863695144342816421945355514228106538219022704757230292587908162438433825139307738080994822223929783880171534340637561332858877620054828623951421916795115607766426171196079525456104517481155579611208416329346732412161746404761897020845820923275182018996184996904960234293489626723675335939717892191164020620620966174211470388898383988046076177136371348053845649017576282722546920025727877121126730513979672616128342089537126723308947336174737164483560609221763662771468356912297881783044008061032177404733351740978776747680154585988298970550073309191200685781982729578634023725663973888847363766324064265876256294668176530533250281257527067201986570240994039938472106854449896264652236052616126924646467500844824518062731837757186835690225539347145519284072584608095713375738006600797076528227755662477820959374709334857714537650730612353365200130801789959662436984399863598776689559012309655668966134923240177017998506039633132862843307198959301995987908151324432964793649908735706782901473081823644928250366251406388209829876552971400909472051258533915312246944528581864959977457949336963627294703299524387773939994223766435509710001406611367354153544680183856430841270968450846557685712739635857612446665661082610815031725867147236098782419657152386769762812067525412280112213565430167016603995663413183660038841529141385764808833741739206110336306649381802970611860589683761756587624237139719681845856388533658616966285960598931309540676660773843233896683609578274491711979483040820115190583545200462274841643056016080400611682092017080999019848043231429657971353648383711775216067757353547330495520729551703161144219264386173753436458224419752276351624540098954118311969500473596115048710591624370146153302223907511130561562272202659567688431836492223225775284679865227914137340022082550127413160750157675838092992314926448993256016639452977068933809523648945021019421259296260888901313021789504052641572292500641244834966171561986033635903821616837360255537695277636981640665967699614227726064629028099753821341922232315717479027576236348218445983419181882366832985060635562910520412270969102324627835435459074654300502284195954328164165714955905522096151257607660276213454754997896275762820750263982889439470530541965721958227232437189692853845172511222178421744488102735735962188165694904218086499382390952979167115615073420444018447136884565449338201871998072167582814752536797096575210977259356355821236493566516993435260779014403907312106267554762019502718312004477461626532130786164836600415792778774660905944069474850278316220854042209923948483903529428916371260675699147756700048254272827575496831094630564139048889977900816655390653413125073930396776478119925576846345343716981256124970421090107164894761555432806466604226617673737091687711327295539130468157432920965516622356620493658293976066800275415444116029539309815086041550575908786913083236459683811944344717898167975785284217333357602091582345093663157504614399478825454075341088401079733148188787744909429746926972596713650800261955510489026686877733546998784308337811311746231739100884936326546919356247717516098772361025033469006373871807319964262217991290603632761241205767552195721577266092943893056011793911338582371327494943959208465696930379653853882024429797245637907342129512472192419505210581477266434260154682247824244230253668449529543590625354268543508503573197864909852173222110731830419176300315518315118987141115856318822867345323624268180100599957428257775928137602430609964156417133661015707369129619531237623364287612676554872290003636031365480085357309777489004525984256033935046149324189475662018050291315791204241007358112190360983762876376570329742094785301321325926561169392390210183968335691832158437084833471036859898154358946624867636676428286890032613849081487654401934833091350956981235737372791596175503667379189277416035350732700686270529541271175071248336787095765703876557992246074971418987238573245418929033325410125644973336545206003774274965930419245519045295588856742214618676290359295007679432920668721127622504420787175672584296704289404426962566568418369747031551697131641138125534144682635076524298286925754626209042381882176152008751860250050687318318919667101754899424887625157102653606967130088142053412295786202290022409922120451677135529892910548331940973852209432958038526601272815823647978247875421198692425049866842968140290149462104446200512235410441827604870087388657365654390798700675979551115207148291525006607053711374489176100744747551402159821758606011304972912599166321213665943330445595575513716137352377386434627158875047369650568237652504177839467098549094568878202792535353329927403892424389007270076149304043697098338605436754313724046884924583928116788962720373793972915222539496820108166323949619167423369963567204548593328030062361175831991209745957513683371013680685299675975150379769985364531253930339187497182754379913768211430447973178831512858885790139683386686754839636255147084006877835986837142519322151815599609128687712041464084492954014491875465529502738110661045356831450373181705809946499555437600167396285622945844750074090458460470436940660423162221747162630560335652508765095518323146003174357888952102891002304368606787042578111042060531400002910167983419140110320564296662668573130669946711602344396267905161421783293881012962107201088831545412977972517233083080134571866923595489117087774684436321044644808057653965208829680898899650173165209338737972944061913132545589954107835747846051204615961384678528768419391185380765443628273814769624857839952800537521883821260632029652184615465840904167601482248065304626095064169071755277301528773413774193954738827996156410729618044199422720917775610244416896810022035504734493658674768999005839891349466488084151837159819350087574299619342958961858766724053577547037021531948056479159501761732351196881687372522302810124186134762128477704333596396732545549722869752042141579934971162649619665397640091398550049403836343503822465626179763440393966360897457593941285577428198241785090065548304351767888556930042786335294101554029871627380423970822019469316315926529327990140422700799735171478469960110599890723494394617444401705551559337684834440382603227663063422038321920586418300191903003771493351931704556734062332899520663793741538522817167082602977234870078407822669749472411377959226314977993803927950786099192931611119335356803856761042450754104698553976951510246151592796953487619861422724050566913799641321151419977437365631358205877257620621019862800952309600130439387350110544800462286766560421829393084795233756639608813104324758626559705612507585124402109968689240411877246145956023182556972624483730826738656932936174110509653948377395576745928751326079102534935490453855918603843897037019300043769990319746318442821429261772481973262523554789260024786217527349288276681842454371411733101496519500573698153942928908117498537636075724900447982454355357745040668666247725300464361636340271570062902304663041839673902509795136986631153314239253068091826125979415954082437112600300616409281200000207516576670509374802816715096690345474995956360040649959857851723148870729595395000084727571444101548485901709714476377254509221566560465171902307739707093279813059140763921091067732836501977131183180733300680127463936513107705122247493573913749733959990237174294567102121465109767339555314737401360257556320628044731671252826306020884897363140932762055707963732435456880315457463296008384126548426548455455750972547915363374625575188214758825032196651871730612117404558845418487061447499357480088352883710014098002230306178370641265751836427426806477272627162428811029898166507324813571621933536283682561734256216650465005436114780904193284371621261875539141110449519169458350094036043697880782257014831443327936463369020547282715554189127468338343172375505738080983923615928787760394728677483642150204806886048402175098099679170655482042449996530494341658502324634826370988484741455607826490923524208562454158610843822670938457237013096440229565689040803414872069886265785712837019151039870455457929034574430933555223739285092207039787799971424663924338690774578062063104833375714734515834706862252266618030626055203127265557406077136122288861730983185591259591777698581881435829792292380155287715132734825541385379804806900969845417075131876883098101887856518206945344018271398938124168462587668418426439800582038513244867751915375398691149479010350250408925780104440966476983291869131927956989856332437713024282422918684070787801676835962900155179468440241402846289722526248986941525789922251339972416674670718007150435660662800850487837090888246441195217005529161598284094126500164126939837169643161076234250963233320329224238670452573794467507380245532091807025834050971820046479552505894129019569212526832953817075336515365834971084769190724106435668648699149447378220809896697707249526356927580162144403902069837546939097852362388913917585401450388307842324383397076734591873745754153498431235797768803621400731045017078027910453872086678048852153412546931620785081174769390558953755384859281627337246914593052058686784978190356438698462500669672207521271857929331002660159891091448036909049120905604288757857959645247870025647303707723204234556571897583275807468413900180301006196241166950732267809748180294706626945448940039004853352014854163873557873988729838628595766630301769316300762518376524382853325176578416366147549163160670688712969375402258390407376580135326611347813395643376371012719240682231545931647855003927593006505876280940496288940205864991302169639680988821098850948233118280215350183196416520128020996092880650570749436196946361250728423165313745430225449114575369811414408201723174375574334174207225344516955897655074269415392483883362351793829663352738243633557074887484480699430087257515917166328494930160964066846437449548153164593947804551706379699966179439594904249305164845599930414059033284823880473303909389038047774022627810486303703393459860292249987596543905002999835987990844902239413791645510205004431639421899290960534377112158592136979120922429274380003198815881836099548339277468303289282192349507967087353192018659192018694067888185491915321451423477327250383878364090838463282930552156585764025339901851747547878667654124774875100154601340862873127424674577168439474678507034621865762889442027481476931445393481425647148528646609333067682922930546865474316819837236619310926754636741754997883757493689031665212288587697588455398900144395524897497662809406772953898794205289658313681941951355430511392877478440534249903937320173275922930377156304028283474877043560563917253962910002699142986661418246654787250649473351342513675951615960690139004496231141737951252165463593891828240709032760095559962589145189428660386546451567418691117362201517861083650336484160434957720714122027859860329958752310287946375660458246890188889297505173120087698020126334642678138868073433090327678279665071477605688039333674342072811674103760506092350827288413088505207942287911800826850726017756633208134427441412330141311215959872467541452970484500334408130827106951505932338382521332160685392293217541175535073622837380517008699236860091730274017308380107520793106031483925016880228019595243138423777656357544881352541372333217321939594835921201074860349849497351040972781925850673732628624719675909744019991744760648892269072444730514386969289937419533881381947926447028858577783250403852671612178418663768095460804650847332874937586372070487486222105812261539401211501193561661074762068522517301501724255703872644955162095841733983475408177523801764352698235856872078445234498496323437905674140407506969135726150948273757964203013544468934280617898229148883556911250275726540341178029357735937091461604116530380838514999124182091007027928446560280952764791710423456490074625196411751768891288429876937719998980532191119031059505103273798497784270070618245665786954005035583573875038261886809653172659326226170562131462815927583625929430051397630938274694118024367194809968085260754957148002529322357704348128381082313520591678908768656721479167664464827261657564830163303000175700627387877093188517905729034308037617902764507902847499584403838168961967448749474999272917998351522542975319307109008384961134988984296440030170916895690702202900540697248772530756286589984895839043504807901968160641617330257611549885313201004273959817524224757711682730010123359426603315834588542281853811451856359194895221441464448423499683978863141834330631521974364560161300886671966805346179312403382713952484809874722880341614342163539589521305479703418197019389723912760511970935711107234597609602226350559554212369492822422271839932257975319247101539054795547338064593701093334530767218695150736616409494901446790910307211691213819255583995085318897616059140116199725705033980194921470338380951146204790188417964104087766256970366115637966641388413792632971648274763088636401734374588650259886021287266344704981974462670882160795454369621032754651608786175519782525633680911757238385250696425972852555575870371147750132706826522972500816211012980784484921888307577776791081033912798212535883082755153987192184458170129439338589001134129744397415955209337748443473452226930203319278279475235161264540725282502866774574846514018824672077236744588028905754459745593050658482794767672835886962779598324241004186091704645232933331992729016820190748926373838463914645169824882203941958291975416401391487203647552001796347357524852661134625652071809437061252085573812434242063837053194785913139598987580537171295724228477925750442677586695554214303116133086026040784909395938610792023211721681605744130239514864869170196103788857688798677371558132584310663707809835924014614901903956326106530233161203493814888495483575113929496983078680253479992876825353189716915058808189796746038292851466960881325096253985974083409928258592772027663880020393243845652803591752206477201575797842730190675392217224353917602018187979869077367874788601075489485905024980482674367810716178553435553059443782113994883684607397262676773525480554750824360609742585728471738008884937608294748257467787469692875941382392857465662790035069398053424663958711737005551955214475424502495120936582975305143328709399676242861422325060279003795467038878678547784746922128096497672044290506203875864183396382730302780274143705208073455780032832269060771012144392566727322315207442030462930169162630276880947444131766393156772594187921633393534747459382567407249305176000653658713120215576925513785682927041518586054917363472311637565736633670469381434667357864726969335709022396586861211347415822412260689013744097631033808818010640781723297679200050724575061017267216432190994154555357084188865004424233128101665487715846484124055612239665090407164186380238073922651841363647040034570955184603724994136782335168767846471589476014907375851900454709365772883726664930266915330248440981347283129030300530021386873185488755547498777537903262463564886264954003564058940078233873296153270429699834859999442862541990558910667830314070830776154008263419790695434137368978765010298460097859442815064063966972217579072728605923525368457811805167733323980719089024751087317673984854889369474021481626347433919328053142107864971563554422493162734320865345635503458782261232984442801041921318304751261673307150704301327142534799276663602307280393610405142559229184090368200494805844942130950430987940375648495742179752528516210720006434167627141129577030858855567329423640438819401926029367251519443096882840581519336677323073302999307074081079949970262863441532889603565072236295739223293655253307471944720891895748966292128102886825600095913601824627326128190785568667487388368050891166439793774130420212392964726030281781236479714699744169438869945275074117918738931380363439605708792793244515677698187865551809999508536660512029190296846981511271034955298436080552649045415231230978816484555111189431251668506242593627949324133076704021901484910045267426440032595632977753085912055883259743653464143657862312382749163754930715832565926697368088929208054248988103477524912936306335021287895050912722182362775125679608773688651964370286334745522255421413218577588893156292244301123398771489665841068667780464208848641627580268756206957782455761604603928344449145549214474894547172696260617893294552262093239428495612156621821211323160417425098832545394991024445077970880355933767153318423734342164173928934353472923155869143865072527404592295281999219194710810068276375307852515258284636228994449747253638568464323767420751339971799947610728439462210482505306884393962101404992199442333584363928840080310402161848999182662478831917844862196743441637859165918228429179897111587469467349118282910046032007635868641806583842895530176163658305098839625051821178706286215337880682343672219447696946079362856410849908199390568409269978937238309642682435368212873821315008824297122718573452044269276969183877389086379290250114719053223447738949101766969528378445894379688592311379952848807948851058409118608602175351751618627165377324554370705258651520649607197130197436098667595545219275548476205184478640163713361435353906330533555597756119822370750668030714690911489585902149753314295940577256176581752488008121416669448591541251184243701970184122661946988609558075095188333834738072810403795892954180415100869282091954308747161165297197332945646734115638751297531909882168096923802469615766122133213740576072849786299279827510347843351364491784086620195329445544031830350094857614376373631507039154831652974477738788535654406343202190324087193676758074889173541532063874985944391914037274229848478724928896606135767117031742648970828581585062646374179855868969817201770880999495781020466295722141021707199529110813449441805401878453393353803921822226210529008774310981173891882825396885116091291833324815535445543993518200472406190710399919468668283956532329419629709744007787391313219153479479714934451860640701365603951886500076436574260144640797070964176311874999873633082062902777614440843309185271664581355694700783408198558822872332456944359348617376456347144378965313009799741374682075835902391165673705725805777279087542937722199448203474892304946739988007543594477915704614628395348395764467162413242968253004058360450241964404407063322915228456041154025334610873497773671360533009555093043361458688536076915969809152948238747780682872475024904536033213935637070487780762084346855276389464392187269988909955269335721801162353129534578194322478066884954328881941137323710113650545717812169300933866701880470719917237287515306635482573247623445885780511100334609558913123320406002671095497041486446838238547304788081090786829722889317518224892161043355801552056401073678351204436747977981386420170257890563484670251961114405456594612732333091677919193324600992845570790800265118278738661391805653206830503259925548374040326938035331119338436532727847925986143934807303462438555718840814978916668801810431287781719908869870648090506833904661303610204549825902742966848948224363221293387457980922795364581949833601878602226397608928699772606866038183315325618732410291853581591708429563312757871798909954281041006357769086234133527030774614478706409899264980196396057856086987182502052926289728749726622313151520278660134333772405802031624629926826339910218344975705313870388289696912595856488771807107804032000501783181358940843239631401604133147669172514581288526721249113459012951693443045133769759678432048608245667660304638388200346705429970009130581781150565969616805058793389801401904739689570749079301740265004042681955771997833497238239077203592792672421706226338087368268413028239021253654756715375748040595842603890121110152872184246267220716293778733366582523845753854845915610503036935506820015842041558958192546573923699464532682609725400315781250969444348674375310257119164182879885409797596936274512557996109531003313718008950322105541664355012822864672597037967804258518438921859089925692411154346292967007172640079533169385976031659196470724046440244788007826262017555316799818945571302149951062346148070837017919408529166940658703536382643450623146052950734231563384771857131170845431215228347197437764124409440999087826895829523267766108281957719351510289847109135367334316819941863880749601844291306373053103794613748230002940487763836126067020438310314124465663630068930167341726091589876894102540904064658581051073921774733018725352316191798657938566289749757131524354180778721673492412193793526529227440336034143581712494854383276224079056893116136632269053011049856509533540573541091725091607060937028310365854583612177489734321390955960139142753169445826629080192391785703279445622843275412054966486250503834762577333850563295521017708071129499046553902141950162130590417978167210314662911227876959348984010534021071718845207334877387792061742493514961903694553542305223290821012360444157552372237350790111505500413724187592158716939339936240865345805376771495487582245144325929126857819493358745743791888689822856432687091302053391361156848890881391837501544290699437196876241663584864503541250498188930362122218320496916177373759666867427526118477749255505192084238144932930580599627580827637117267227476029234814896822339182960463402610629717549995784022568463500818863800980197210630942315079076137272779316197776533029478492424080917095800294909966778955987915296350997936011705308403110404782102791984575919940226530269315364247898381540245192747961256160175286671061292488280230080219315377327696821927213003452735600690249157391605026590083150163932740613075068869882092334260227745539861123955034543260962389093752620258042380645028037656593173573852952963823285436889169292985463996908736773444633645064291211281445232803053027155310662517413197677961143716275420801732848871212499556514467288965719695385350337196160162151880733636743503845319379553662558049263934248766453337359658384676626133663530264349506994150428128876499311812292623079752011332902857455338735013405305324576010278601151565326442316211668333145866942060346358862244047875051544591822097044188116240296910042998266979930304536347733341354294847088326511654535832740954284215659595670412002062970913022958299760613793617480216013374779226301906277113832054081763538133789356783660771585122918337908457759437030056942762084288194905847191547515963409168023669587699178778202198989263123064959954303267734789867996228469884775206880915637295946064586484554030727576217609820569679004987882927656424390994197845295653791873995813673066081736049764976444483970598701976002582264109154219794298754549996331886519642698787976857382412678543452577484405362819080994184308887715899174510375895356650849718646537182477630187838199737628781353994240434012236902615820808902683729473747553173541387700117394068057505888893186744063449163458419056130139492991944019828645573628449516872000941027330906257562846538847459540670638561339149010667484059989309964036446746971952715794271809555674124444559990321667311756139544921501604474703754889329597406123836185719249936834112793048314039779067810832370626283392651742605858536862813172883007211926000570202683469859849634604872997875034992980642134275432995917401460791364280876156977815914808566894665358691388004862615237836779614080148066277493658518288942667764833000066499525538655161128626158918814264569617270370500656573715755569571633246960928948072191827016463597711973468201461852106102000232876911000717368195829208719053678962291984564733729410583280946497727867564297848250778446459148170372141451553299077727536168696227604825926283289236284745655753243876624204036973757187674006825959868742957826012190983716620646663519397106073488329430633443149520495405925372118064275304030714473395784896544935702467310154925163204792076345981720112219835053414931704543937620876219507625121726605559072249505239775987842520764159669665328080753042471671849397074506270202493886488128470224708369236917270621629792188055222783187792140381772556285494263305910963491917800790861064640966103427329872596326652028566142441406815331523985582827204280065094119169284155721756769143164021507125871716256889436425154012395162782752335303873663037798645810276861853851106777619811062390702214520636271982484251334321826868690040832604260022651682522333185287582008775600098228754194429938306077351027591890111998440869994424751532785594702520283665656840917733438674256023744700873944494407866360461537502796531481062645481450638828815630565239874200830951252361474370127942270770210680045770070148943280155801444664263623132791322944138170998747016918804525387122183832157877501236896289407766815830810269649751435388413067037318588537794987266073304383227797353071441512997641850705323908740841045725474620991488740175924033353708667731917316324896082953182409764874886865595728283681081469099908700700599565845956703184707149740821365090745095625765257812736251761112704019300102790140270120715175091623925775152846730825197096613688246260958957817856519994596084551553432631204704591128799726091512047370703616162716604954809713801938395697651125500443025759376872235023458581006031781965105454864720838851653415517978540854859989693540765230007898283058570485570653288476806399578967191867516450793537723860454837611728645187517326523932223201417902306580324330222496548342862190083026179067710200848565030100822775868615745920102630555018489561335029547434690791114391983782829730614425484980634134088482966022163354971520341656697010750146198588838421176695269855008913798028561299920601378171402363432081244535108493118877828385666720412743899914819838067485432680070989280360133562453292866905572080657562682955701599497101834576332634212659835520537076546834896795364720336650992817450886482874078867799525042781284545934053248752991678075294358438536846916109117874030707583651538527186407569908067269983649576218423448988656025890385439480381712355922357760026266130805683092702098239795000350478454152851060763651045468355328701665524002991161432644687418183999491931775113969106566004752788821975881248224363440415810599141795524999186130030847873576471337083235991084186858338698110315352983458531204203701352396916707719389289063887996695982966607200054906513508578618976673220468824213677701723147011808165368326342837231397089389278956343752017889553799145276398461383018073632313711812034255238203346996806245163849276231495751336434223318303835313436180811036565617007674358339607114889354733261961509436821423342200574890309950104446743693647404367174227082304746135439416537290241017907256060539425566676040586614472450790421188652311985057936899682213603734345890364620619789147317747113231288801997144149437119382051075376563281283845615215356318747649815257908354832902394824224861654218589094065132109373682356949716385091364019154461042780053571461880574524094000355669004236326610667805974281231089997323622817147040233641499920150626050099184022425052282231519447321771756531521649329102979686937253102252923138846544606040583669093167309830033454704449540073193620781152228084372768178644517063731485357890862787189789978599179512390956203481756506882627105296174584992205235525498604530961071864220512588183610061636773708435598440825366377949353367586901271506112898855235053943935144694581816786041188383326398722215567748152469526737146154153349762566419355411913507317205860676592729409492898933867179044348832902888182968738941832481740819593083278380140166403458119183510879232798137228084424732996831370290513116914991710844866577159585644160477698261150914969547920299479341727935903376962558183331213723257369986657450912202149208356113362406433525958901373144543887027500965159141137844747726582986402439262917817836299186919622691491027146074803283052708504740001636003537503783847138273345043707562916804253356463742864216971626855997146348790928045910402502297438136530579888993668300104268012779479315594979317449480475532030010291213876249271121337727992092702021332892494517805060074049321472053038935848249210704961911673844688710114422007588811192568441451885276283076495067049635271671165585545435181088079717250043035880957459494253995965423255242369772492907232865710811961961880689299024475903970627959068056385892429196222250130480202707340155754128014634857822332178855534297326066636236646678898040735332602313252774747207991190172600840628073186769880906683916273221490255420167244024419525042167737574164048895212951524475502396182009549764490597065965578985410195717440257889696969102929744077763939241044423413735679653584367262001039382438361525774370606796911684365502756931982530750358432916593029395658537404319364059677141182137131879795325707481968737282568818586488648932698213015822939920376637685228718255841076425980577483207148724272865460911806286295460801278363247034318938631474766900727641038179651832518478219911517172284009247596685617934501050346037382285042576043425589344669769711218806674349393316895286955646557810268170199493700236071066695109788353680927718658767053985213355303037019769828988587760300855556685037819273471931248528450441845276753979682046381208387776894714336486068301009224168990270397843990960478977335772302489311300403388416677621627285120174865433423376343594973788993015475057388226572997398136595799060842189465988711833311056272754588475902624475485934627224805026616468991753303230694091199737986938610830960208923900127844541696316820915912386735220816440642584802568166367259022776983632922685844077225091903780346883238367126881047762845300320129600734261423998552675327081094553766137386930448644861885937991195763505931487419257733421125346973252470128457113484865172669726526172666385119112061001815224221357269801883759444055880804013189871819947055763653972196009022084662458438353150456102645548829763915959654402204952931919545675746621169772650694005250842815136332926564508681449164877441369806941783456415511942187744528726338749858471279253013556266641661636705966695641192215102067320200927728410531662696592552467518774206619821492970594027414362630482187246289594660839869071625106268317871407535112380959845645889152990698521518882868559952885755579183630642628349113313036065878383977167792618741252990690621796906630147322933492112154274666725409710789910974111566696302855035902192524334885967185235681299518626947917563501966109452616941769705137667596653582357445714978095721703598873993436741855265199464495317821106948495057919852062773297253846461919493405637258196957157519192220479355251546205714801806087569524555204027640636734564260894409537721818626999570819141783182654503921078717425247240345844324876495163574303191788779540057275829205150729705073118430329685450428261241438235435745151988190943262332941978205172597596168814122951137800829290715731370374451849890345820313579379242242452220094150238788438125727413788768215408474597792501516271697162673007963354499881407087378712761461526183920472080571350626764692582745759738338231412101819812225446809943594798665368512946246471108536011425298564584998794965050064183111379773073595211493887359100929839320058741860522047029182778669049773569603693631741747366914056194475748785487362941988661189507617839597236857419350784055881604356760086382387358758770304033160058195423873910007056599221587927773535395520622402962659467340974088217109743023751852795476692840744427570023815820826452071683941307148982450120435641482410576903390801250031012685605101791910794220748547302098600333445501667578711612875943366847506559561729989267472415986201583555997279111530450653255847794515272106462689842640310805581364368629656329956244268408143090561860372606473190346394180147773198430888013562870997678569034315344606031963322574515388706650141633920346050511284431152124076007929775422435442367147633534905084808005211615694025036804713225634154476565756967230131091724898158961293156390001988294645731221224325365636634142989681534319632821073529488308770016788679506842415281048392398188376601916321149801448157622870126770237171329105482000618499192837985307921814776925740869801712056909663062350383109357147826816204842868153570375990807678295756003921725491370440855328297276073744911382079092320798403741084629185930691024394518734531181982759980796323112901316421706452466410199623786030447315485756199326139876991800719698514759759282308279229337944797822338663673942699878778409595875930674058773791065127635639171702665234495652223774377681807028410751153334133801563543526162098365025117085283068005972636530955828103670159324202732406602512378528535094292139926190479431827176950101696570647353300178723404673572054222150659687683466718763782877315806212343417349926967238811309115900914210422245948377049531041388507842518214345351190261213058902433699931506933934898007215022092672764456672439425714396587069372873932532234749837927226313651459614716683843601593205708138661332061737755393687615409839970502918412270455178818834563283094937334102406956207559840112998050189323042786344915640808895907606842257758092155570682560051226260989065967212605543073840099635148537809728881314276108759518441305732018122749647702235881542910438943628745555428176338399787451123066703691398643893174290313788559550102175507240425641950045149853686608028915737527319427348663323359341448324475897899376087797821283146522641806540075718091113478931204047730498992542988963826522117317162215823164681776107436423424250080334950724240777904616117731466500630945239501816140127019676395504829480614901958004403643774173337770751474334624660815221448574514564168087324301030894518538237349387021143617047351206746123230947099370391441658255276586827305105304584020555312740308554754288602525640445227363029873759720633237433074858891416559013165282719219225556257669474869752591523384697790514135475788028699789854997652012641981251269602983934009038909348789257827133925024671427436111738969698097613179511919425974228898175028971002292875457888846548650390977989930984124623045479885717819001513260993164755006468740566266746023182705934093459258911572908469794711949369965964172193476469620856724528648499369734526336920100148221989637245449934209923604827889178717266661343268399299968544200298178615532750458361604593638202566958558709068025216428671852155323847019392196621822549966405160223247414731618202537222044264861337200509449430157934402865017971801177501511549573425515092276219243005461672701051186438330807432906158813345931518757266181366430122300911998820077210860201695910482208562574803019245613217723765160579117824293167845927829234880127162243053132936195774975077324435336341540198333781486447167657878922916694903490160157009743623109075115022756557339210749053971877742043390642138814012827381975369203006619195954590269149166068876119457926797127229045859706640273890472715531323970234751071948905468451823256684205584084343194618588421700057390208999332957078913978425463882524078041575666179670515852995650572162018808726783285697492413019307976441667215360840738653056653043524145535733785386341040028651545683416413927631740234320686080517750370563815693768482728719781005443736351318148977429181229768745825685950833356738382782378073337235586612891486662027468012567751118332540987164293244377848936241655906771406794846103893866318818613727669146201623995561466910984302170621452663936321324719213885971490275360454423643736474588948313065521748985999953609883542839349142596117116864281980122678093711564015810469915694780365201945681909258223857897426421287599677758955043031405547989848022693070427021176511749200216018597400929048396433398561668439827345746887669632918721630468205406479297867028254481420590385434501576842221339679077417638565423766030604974209688419865481191307074338473370614553081627522644612930073928644793421231297587431533375826462606962539854668128508140248242128245553672687399954596297127073726317607531095495543002652257058253322410756423020712325749331467370517167792928255013772907513048473207738837521096029368518776138254634606388952722220946462107314960173129690485435335165035476285906076553842060761093330071845098741106586174093831365432519808436990349400200904693779041469810564525122798886986360817124108788138411033241305611533264936032094452632259383640212598446092641017283835197679885697730492866675623485358594350877910064451872235338108357328128836230728079587234236698641464723754108034193820322125071167507727718726304825141676767073119399369909362493276876895123270632846017115781976184783599364982394265368778665475041774617379320682080803752643683764671807312041755798621748161011330498658612043292619126723202355740589512508097866279776997268467906144941024443348204388939379942856191002281294668819351433703453683500922386757085413502027299559514053046169047833416419650850306248292980947120679321562424762210178808563609474747638619310151788636221614830478455656486757747707163492049955481497293036144217937706225434598456171469736804525530958012067838275084905672591600072103998082589604954844272489212649879824254047163472898117719058693397462673185047028937891344542970337331812664183700424955315071679126531562437021412422608060130205448043167387698791468091906844719993867538081662274420452747130916488905754184737737860917259354089772146200660366164527640003407078350489516049662270536264029606746356956969704199543844463853714712552736723743568503558725982498685703857710500599101872942556010897148410492651936050042042367769517722948807058262906418994104416844027678885524041244110427712915852648183506904898999300671555827737080749731875943383751286069995832360592768430023490261334154366193706647890038322985151557625584710743569246445094349180269804018510993795710740912719791060140911406936003378151842974038760795962705655046001566526116960108687807278547307123789838523676881174384253984223446968424453189406464454143046666916577839253024394839098809074159538182106885855246521515021558485902196190213452527569194294886606946906249176044516287948491768654913996652008980120661200000511377342914947277519010463812784924217577498443490370877389047890728482149528973426009099839938959799771751607138246497791706676918282279697244779630172100397087451881998269199445592511982384659025427853426153899340461920334805326732473398184326434368239521983666959424845842930385363018890327206882374461549851125954430107271299799966558191683145747518401951535694224948507283854407422723598405984732726893038629796739982949607457483969398624044131875607700053845596406500524463859995361950621233897041501798433026637422908871085319152254095463988837886745812833894009775220627240293574271178822313513626390629758542214439429249070905071434557156809445195104065032434809791390030035896162705374047477597768222451325341224183397904025995308623898893449187186310866583722869618103765653809827938123116254262382940942795936266684355476137598531034578303775012944793559233099448862769651063813301150186360193939220026494022104366819313671568076995095078515958403151556305296954019437069684750705713179090377332944344246270479516228639930897796070840292561349330179653385063262906132972456050570753319677149051737324049058416356513690385543098888948024329941570994523457850051038684333755964561126088088516810797897194833133739541568887151631802239001418085647600614327447024594819225671661068876605682418959154637151973259706402833144076477714221244779377517654755872815758286890695979599493745128390741674086756242809768923525507632541349088828147846274582356082378818042658082250899865366742468531846189694899894169642169418845684593108000790483706018363994488094006554376908947316981417946497759177038993406096881718380573224872855432121519234896949651218101666592688541500899075045001315919749211802034160129641693268592656682488757315300890173796068524467602552694202450382765853887781830515440099620675843609172860814491588198826578318679747454272373798415346654771651937498513989716212470239976889617197687804339709325918238563863200941906245178437857343402657749688966417713083720065642874008819817837559302484919681752371010522494280363510586657240070780265856966869544076301399313359383834672920654713458347927049320678836202443298469563890803454085950433745692178657939075052487122645827930400339100170896907760888273866284016587557365494359084015045947638904115043899541380005417492975214833166242851625510703606910237105167740119401108015156308471477694219865920799282711301609160390933598387612265885045261391438281893990046618074533245937757753627569473877585040254566104854908563009192926895679660122555672798811244843185182995701526024164711449056149552444371103279926363677009750918321187898679839819537253002783905608591142420936929258593465997671668649809678715924093539139504931913651611819261212525874869922883081319167863011995168231008946406459495820107073152935971404174483533722462921747427136693033054362937314380999328844044527986459719346678893423998799787070080724411092835524653894392471334733765521335759144528012064130608822375320214273382195369937309004161871872112054729998139710944094238426381715769188935325826339110531026732494170970637043148374961184532001678878063536392761528445097945477322605900908930451012769652663634343980423321060599729574608178548076764718982601624957189509142586205808209367899428020101661288454292540257429594445459873060309986085748678391690618500304931886741930646679916819637630299938475704754708867753758461732399988872333337036382634304995328553605684999196564589292914871249924288041804349998751589167699779485298899247721989769324387240524474210302718336088732109231868797415698524086395837898733496972652216119992503188372488512466953371143795675723910588322003009117335462596097775497708404256226668013133535859653376006737851312349377071411093067955501637470493519670802968526214961822377942270483987891486206868260554643019797619272778097815390991044276635716188796008561257189756136330267022224630205253566912043596155895477949004614433019645025909541893979046473073516247133181549775887176580656247253930869966479003041458453125646964327970181613016981662808838245166663564440577326674377932899971908941164548193357804355444580175529507645978451897847260385842280011111248985242431570780868772369972896524742715101298481583350557152427072229008267542676316969317161627955221853882280460747986519019528526928887781077658075874649447911113688705547885960083412773507740912975264252713467352910465052411640924687276686637129271264482609415096960525038933872047124690211610901336486264580490091558453154792058435242463326493595960593794012109982272760558614178072138968522162744165049444194733470270562571627815720893057819097891702196256746002713783241307516021489559683106092153735063143809996804985127016261947351261437241937092211096316538305206571534019939565635552119890669266432993386583588146344407904539626155556714993166460480303559726785769397834553495173093708857828293965908510459190300571504470330979482421531505018629909270466269585266517930232043887263637330158319126467520270943146032501497262273328061058562015572107100266962262964244871608881200378481697575885803185522643885943843729704156491214621597250108340391400421739141205996009017952820899114867985142845664840231108065034099066576450206317302738967730252708349804277231047234468251383410301035650678043820556548063929668665117849612240091606601509692347988901891027204721147007192540202579155666069481103224466120092297201278682695172824523930082217272053082684311949191150447987935656081550555691765519517193816101445892512625854753979318506572250929145929504034391013389331692644454666604752250072247049105754605595603626762184564567924951278299994407768502341126167162955680237395012853151297643001277031917843114126154692965857286255240039700478695558193627582680061364435249881888923213420430087028538372941278619455729823250814615965162003862345197049780273101110924709730438902180942102769569614389774375880901726684645172279291045483770966892423802761045341402139974200386603002527364485215731029791805173506731358963721391705181081750784039642287318236550312638997478568574472041888375598661485979752850025828320898722522981895057320206011014129286039608245290670367983136488191633145401351031282182597272920531685362891672233908723799181601071882772182684361210777800292664624148418382439720173306290512809139756392944844693308428899819854317927553604499558879513437035869060021819663961787458264481283422426942009209278805759833196811410298648582971326094884123787203711213056392642253123170828529878528875017567567227133513677063020151015336435885617595952302749681832838376792942042492675823351415023904419853579029633800298076968618655203246841418092236440273409000137951482701570302179476711270708043191114068318856156698380038724610679048032436693835929166896876201287802366356243087509908086889362740961212102275988732820732050348949082046669951501677468550366210183472877819050260207722835393254614017793836905266982599616085108238457721479171129248437894119658443555292622681441082282775944655110391342158051673239700547406914321168623155895455374030544682529290651855989780174779047309755528530102313772602223133805710883959323889151506662433435572187437897678685166145771026600107490804304095743933445495823871962405299879797873711184604345727748502461674082572979321672331908312423475341847138573244048309241526466195463592121222973276617200684022517010552331215146438984344503099319603454141230225778703432366036840391142208272065064331362658425764393467358451080670636383503340890480906934212046970410860797526910719036563546715701402688480183823083953082241020050184579542942900426262273614422007798970571388887260688365496506121037804245163527420484878310512946751644835401283766863580470064459366162885947118557975652724983601004315142274873030223616778959243750088064481581389559997070346141879147143153872659183613459609876860986167997926199110507264291133097046545226079567352781754439031883295494725005011325228349783706205842346753356663259854754596444160665835281831482893886156434087133240798912560897678309812330037522468513115337653122729573966912768240283900790226537259822180096987809739851773595425408132288910669671031575162149837708779558449885205464494504551153040412986233746777735381845086760583874801395012760574604043121965985256550784625725854967316827763389090416008389315123422464320569524162456580637156600777942907965875982057713977619773886533756678970425380346402050033197493880056024365999402903119298150652573599063008278117102043916922846954825234593833727229962239669621632234755753351922565943860594220863619259814315719397315139095880551636255377931019965647399567274582688002933545760500084036454774612316443182423776044345310001489326481984077059304060492744759304583889701839921377957797223026208040350618110087316694242885951565960235923965356644741810800912900422269640833974654891414939749196239881601427199929695391211301033887191491953583653699780240627362232550719712625892761757728172597060681212580029197209138604242786207662202245683487497655892905082559226429716663508606461212796758511385172726114621542646378142288750382199663935663204992601106638887310929380240258211295083225377471746954701121495356948111607581187635330987082132969411259541774483075505782015673140943447991569510312544180002669364028277353387517879546593570759130913246040986012053316807190672261170634988198656180730276210274203821683966050116573091768996297043522202533248397897025812016716310211377115359321009571854804446315474058535151172394872990540072678682485728934634090982981763451472591927111988722241243093937495337270145031681690927283955506915440410790592220741883222298032122420659012011869546779281590062305449535842480045259051233881379217809406052335325608084813251631528316200148777996180325379360052223879877175753196219153086533204396139013253111810064578319354688022197080040377829587480904675596166468088659321024323607267611246256844388056382850547535135498320931084394354993149828105000695703217598591315295567945245927975164907081154050003915636435098840833631612876337912737991939776574087331110887737374394605935272952149228720587373526025572890845565501586833874512289694015795470037027362440206495972168306712172889958109914114999423815090216723464208668903307037533936329759338164742734980115359028418893772578350039155202710204495656773385813546502923508561794935931396869262008128286807869454802227648591032329003617049329112375106445575270816482626592265626236068591517721437099437030801801465878986764536107474104544328368340795073838887221190519114934552135860408798591957032604975784742423762944404120673550659776511260480984031319320530178668055984370226283174243023902474871558243623311031554035191560481857782676777565679679522778905602957868799852435410851999438228224355259751926712508578292011923185431803005831090583595090628190225844206391046797009903990277633858706013153181370229154420413435494731726868501032524414915098204567408012986343458804049380718124230358165143552838210275383074031588808545579873696490019692715510015277304437999513121913983691967503144119812307338439053889854795989146167136372910407168931402466697986100845641256681508183648653960532464730928492679838799711368686098048745527380331164178098045451491980029146979842961465355911286958070071846853318309307464458794397939221360110952702151664594724068760617742718382212889814437812787107426517929811991006588576192897629776557643381226877426081116184584365268281412395802081729118604261816244253247303841676306970301262083199035684446496591192248029982991031610419504507752580085532111293977779368683769577030395979865195487407589552096141110813410891713038796922767841592987485948609008712317389828010862519938140007614191249888566122155373262991530132534492869062115951559378884562308967191776807722415725849011692078896001684103502492787817994907024643933416990329728148916282231377812927549003892380542106197896332045929947827732350969433621259669964790292163174746661886796391441190785291613494898150900638911797539840139903694610341414379599465285199107722217188202332566582927560862204895738236131991830763819466753600227711913652264440855575920676260578830606098366213429007319035745349204445850869129691708114495800303318950634579823030138248990691517310647391241042925355165729873522053456033125466494388717770640667399504571973110013166513855380259500691284770103373557185081677877362461074310583180604843766725871273763636291991866553192342992184546410168949214662602511823624161356058629992699630401271945052334296267641953316044872180793814796672220710886730715895808559258511919565956279869206462295707650132575743861843249846036262602368470233705172253035913738736628788642668169613647156905512626116519215888047612643616107632396998762744716584719348847890638459704550637933179776555503953351672314495661553269430585439195960055488492212945023241886445840227265310905551914161117361622317024636565658983666232477968043127993356641238475703107055221368135151647144861745530282679314305746555102322097624917886848334421188796482101897169742870339487757144772983243008221633733828434398867126912976252132263814808928046544537149297569768296789442817062467620263740095489531616706205383387609824147995687519295157042513586112673787435779466983251399614284828760603309822997475886353811866899891973303093422901451269358293761905818554570618857092736987591309972098807915743556017580322276402910864473117780853182804074760641558809494110180131081455378833713972026684410883065985722192240325787986149702904806855728956809211102179391566534184123006000824987584957164372946869592135593313128186114379540990982766170195213318753774546531131008331229665481115220336834598349350658375322385034516087484150161425567037805716734132702022897425371883424044745868730190638860729805916302021852192556979634089321901918567490454987718079769233970742484832264721144371413044388751424999639544521961218666597737765778266273303155584004027299276111744551464237499268559626176656702701716059969451270071483265517367199914553118667056868097545765310258584545979533809545932165165224677992159063115204795508705332337785107407694753696020148813240132760863209618672331720421016206638494983912795138349081921866277114740732302212841347235676300471428462070191099636929335237246100620168114997695453097695491156185475020771867625094725746221583404513308003227678117554095727389956604014839852832972734128831861195927379201936354662402669329817712866438155555560958219870767462931902753160373028506683719831305031501537167951256059170025029163678602697646529224555760949848663377415677985587881291350489818278349816790822878659272271617166739204075868165408791600523096115154301111904767048606978801996532302388041349639328201925293200811190526722913531913206431532452617966034491151090801560025261558590127637683770000616859958210964336820871055015354619144696933144356771839548525147886093225277374854340100496191703102112718293613192864904517909773290430546129918332971421332126745348066589255261981763876674225454810062221281977282110617826377150027760586002628079114062501830476772184398427888582981092980745929838457140092532571990426251525854402979768561782802652215978554569449961973785192017184189833940857350280225482581399370222434332492449678277405829391955013408323785921382249435780576499968109053924488518323174731535973457025488321497120509404796904086555854400600299560033596967074257717327744098630387080052816610909561158011096206200963087745462791720619390564597722669837842264479410719395062387489997926870395513601041538965107719600078957242704874825128686557794438423715291753787193650330777084847710651862544644626252263156037508526230189443098855955581301842119107359784353192759617376746506058370756801089546057932227228067268905335464453146246881586262867481433693593232120528114436179462620626367546340440479303974397195204816168519614881004800039613636846967014391010483837947301337781586319572474428656270299871204444865878447231838800079617505176450102653203572034782327588751731905562238776376724441448767038797287929746978013199054464042154953131824956226027504016059034029848277904199075834896406171271836747820138416595438581270820757004445570577835591499561289535429225117695721070056465123178003274874096857161978570618764761940886341683557243615839931046043211370953750257069639240641850414041529504446660479397770210224872563085547835502972234635998437022296543919373141120239080644355537708689389600212159604780334316605113337905530094773861690535416785945313575167978961810113623094423136295534903675154061311739356246875115762027628794346946698560596899050804560733122406358430105939094555185710663963367377500493977904782561885704344564540606027629449197641816266936475542053116821120634766592051645444106501781510005199208701058233535203561658868239870515231098854112030777398020050922271784292263842230509717368068863900172307512742733714014456586955910124484710766244367274304092510243332249954787081411442758146076912554721771434898494187106369888203165774420801836978592108472199627050016668575405080703483755283392518343737611204545722615180409219128061498130045236030633754321434423110524581957177545100581167918581294212033084590143100856298205210324027146235245881538504183529356791795122999542288063810514946664220557606805254100558248051813638718062082644036141017292711407367271129012622666004584968780749572823955216555639912630184871215660117740669863122835314109508338979895389586876082830011431829533169979489676626386946952780378648238923641409481372147415721729267295095415098254525639078793011271383180603563003539431311505091520089071910606663207895976594364621756957208363577243587040515157143055910534695008826010064170380732064131675097289614676330035920597287988784126824438341741309792716515389439895014288996092823992083153619643939792652615837193310918764046180898185821746095390685015343626839870542016485754702171032014481104464629756339664401450020378014535947063628077587959871987947913934046575342785776014209955784256555157706908987705665756572684419897524080967615520329761109334856879193374995867364798600704182972014661927057596955124313368165177804314213711084209909010311342476440288904360592815356596368488912639964396236715280685798660991086022992096310997884272630715524680348727359856645599227222565704785278342289508715950510373408650273653803830048008772645604315041767336352909541442810829343143567181567545967907666489466716122597423846205854047335549519208820030811642731649187161405842372057299763631019650184721154610346710497893872817230960601994543287730921089966551264095268364072767104948092168349142452407674588668414072352067357241766331318189608292156430030282864578267053366164966181138607529578445184149145055666650001625539884265090155548468570336026350044129652993780677629891571539717463544933026535221683754214522766988372314324387018712525296855639743754452155040970246463839426869473990581080553801722988904973540991178422070803742638222235811539887130835639118631693545023893463607028304549105424294594049518463001781230530042550373844890293603573124172942421368796522464690858792775496363507258289977110541565111721815019203092800790382391513292472032302185501205754953565359960274872109403891095338462527023573330977710947106939393914544375029262843137041016190072806053838560614553147221825974390237589694431231020625816305927614616048478886045704249355452946192795700510649768863021855804932728571871172722683526945078012106325978034072228609948081934767045641856140041747935182477746306535710091010574959006703856664904952240175496003191189338555100935718694995891112358416673091222942080802242633544828098420647297255946959895036727266888042301785017357704677314426563597589588008071922316234959865644256403582121228168261143323766602029638979800322527150171778952553518953215773976460304825412172669019193507266069306866021881801062733505777599459330380335900782856492840595488419985759280589515576504345320968353142178616619552985934640866484608732208013968175952441701059966540286578767372359957666189412090260980785598184765779364504791494763096206482921419811534185532421011162645012403375092413668306788777208112561944061228455953566381932722447720814717836158677992341109355337037579030308191756010146695974627087310691190477215040977778137923732418612223338072346024077413174560307763303916753522724577510986632756450468250451413665920943184605277525637953361087863331142788965205797705577322113198002505384296858508089915490229495770460398585494867045073228416495399502065136817999648129768432737318225401540940454066747924804561308931940197305290647127262893576095367801844602297197712930335605734727919202449305163991712620274123586816925568308275027025022895183379490932752200054140848157159392028673401873915061808394422628119609750701351217813354540217611908617981717739259118793734987445412210849025019583554562300344189346962823272876920980873037807871695317680034500957267148627618786863155536218300266629955575691073110948241188307586876908432860346041318917227389530732251573557164784893203059266746401699240251860160335148473973461186871858098766963582561725265764227160953640856519475554978517552519181232217544387954638659859216119692913924728896387244478505549117048770096185806122028999814273499636943576691952323486568060248178952646850585358637213405695217513130784652599229122736463935446728015473150466304675713610997922593091000892264858107537840560262035992061716836338155492474146440557533924938934289823377822409025662328959196399047433760965189702834276606247532434389857473833223516333760752302347927720634499114633833085021644734905353524148710308718136413796323833212085923480416107428067856214952017961879045788298151851239864154591779364719680217672847223778015539749638087766423579476222355033088757631321136594050010332215293281200733542561412213546967787484140224589371504579494036785513690700938950412360939122032415438703195920437072684753234220796610976997409715270530240998290374636347287720267789651780890710069540505269793711656465876028983059275030196555883442419239204414816863725482952053172787811881339715725205683303587412809918972058785771605399599576995901460092268739559611976280227094315036141480295618805376815364174690356733397909597236440127222809615486377148314485784673474294977332849860044285881032703937304614075021854509492727237138609811535123854696515748674263977630676966688712219902160380170874603179304362804455400053727091770177492756179156780128169877584139921421489062740905443039525396077621739800583765063247473770411413811826499415634749760250601917256901631100443657507611747460140374459775013400334858568848373508529430831863741833827226134010774006684602849322150419677567539847125955167516670739273531713365753618028943021215447914193651707863235532644252025637289200922066238727868398821232548916051798304252432351513374258959572363372071553681738895771520058409924099544572947911553457592254857918623040008822841577461356040995419309549239552921506308718952677317309649967267145642442059341400794068041986650156010480404650328649546848812378348120202041238846022840660545455723045367050028491843870290710651713235073888218956046896922999060979168188924334725059305417756058818270935235642776615264184198093615291406581623571303018405816006358763960443608579257915454156722983945560506293471351340701477818656528932628107993250210948694025739515567925105370487759575080364142113307491229071014989295235487568677521118426651887741582792888096376193791684018905802957346299994270748052486575277513220073514733823448361483628396958495284560287867455650292061229595544899984126276124082541235565330008464731037421493415546650425462283301112640776545847351527814758544973110083840166541098286776906923893977112430121396663698328055894295126938341789101724055325764366151211386514137369003395127130823193698489372921431942900443132916696471964448467584053547421474156926461803865114283604305897467962302302477137660880159464774109859965310771339038377712182443949049363327498405759038064833512483425501842338470295397734517095677028509110246170086793659915141315017908344957194768207482757655793273224252795776874813097783060640603714759642231875383723209338726996362308954933623192131838086390169785167934841179062230386051368845838063642301794331209548060279976111989032344121232456850862690977970006103326592305978253000424062494897291824263598795137254478585299434453709923442803335949135689209697124493252504364185294357667385027659357209505761756128540980275925299295816556581112902445189910758875968889058380048765190744819921108061706671684539119268459985240144947869102439916354782863625712672607460638408215638504270075843796059499675191969979838792310081228858613200491345436202479932292892613103235749268027069413183704866204490727449627523732920886403204983758485843545993144894215988718431249276798458822748244497912071514968248619116187583903326674960325972138456834671259402159656574031270930422133331205728609736046423070554773527355119798735580054789152969560351128846425756372699926379690378392189402748032819377782683436993443156265018545148285349156353147307709828801047958007809865795167723602651770379902487746985995911859911813471683102510913618659006268956940312612344939108724831837190935782061847035561106329397440738155510374869768694012247683992008730765333850998697107752544191746340069348319798376541991371479338185166727638507384436433664180552097368699743509545939346436538937780387467930908045378002826612520566596768263325861609479250919784781896218838873335071659070048556746606603431550457286451834793744985572922143029325834807090801523472467930027192166524065818851358345703894713794685266509397791928396279364558049410858028389001993567706810695799817317924520127031526480471363407165577101004350333510124693853035815985344378714479723435643243692369450225822890919742919598730979907870025586488348832896974835824928706703686342424064830352709728153430542868046291551176915890474197278624660958945306272674569130547904990592654034257374727818913724997406760722250795719349478637621733359951013409018363520398451490315957804183305501652468960588392421946237243517647494994666953479418495540436964599133574599041176211602110163182322643824978724256246446015556601193491667384390756213905327414815615954780205549735257133533318934158227405110870600623205504316703569658947091547671694623484000572782408801030789385850319428083927616856349255189043832148777510685791354948612245413448772592988084886043073000324791951487591736031121957810668162939850675132164457765958602336976908142770730829330382062541670622531934635118607187519629416542256471288856346098457844303435824778488809425965998773076908981508871591466971170464153557524179276469763730921742349366370645869562651357415504116059189398939361335290588424525014249003849378730002574710765934366471371707171484725137104866274227254243168951352821092338048825601015283561245751208073461772041904879448977068055411532002060927079258768223034316638785224274695797220750510743725750498998513936730448727431181490539025822074306527880212696688293398018404266759384483883496346483480847170697831551559309541330315113677034157201765314137917780952328759987002741933471788219309921873066551219325221035483661599181829722564134442274390672908391633736445370000751658546738505719090294390968655064109677835588022243384406303640245386946153126560343108324685984154361854534144585557844283031248686211562281474838170644178148553638907273456890357799689102118423054079170215550726296348127616412403411434082034331703821385162430014789613280139164260109803734712431045640051408233603063609949903611864081600328701858668801077642975154923938674564857506048106552232596641276397746567981253947669608910039613183013321133297230869351818432449120039219032619975450855879761279379332501932339234988727386353486603746519337620167047708644752331336241436388893151033524198083394372660739755105876441100313978660702041352121920584729468149701512754152948594267024972462655456752577593779879562186318642252116257688294556135070626143092337448396192285981148295349522305667282703215476497552620494133560796537220479703160332217572375132783932488272301456389157384485845377976382403967184512956774484341478353939786309462898668185752777112381822375908265472485603255649996958179428747372937425563479899008095125090551792581036861175694417602080883853347419080938097814928279756315886204446195153923153158354883388074257026453048260420431711585383640969009751470434543690140714871548723282306357901672794394428805318653953845089312595126823077897745728229366209620811172297836688863097994518112079596523377956444528227724620387531417638837412681533541777097896998407498468575677222860215297384683671020739807451363266491045254131519460366540303132396767168832849332782704871579783072476803916920629379184082751666708494554453189212028258528185029524456824770302118443947769894942970293544087928745926212874557209241676084760819002555717995488519377957890118407519749194530109456461961556992461978611342180693431862012162092109790593857078467181570402771982736969047609766976809419203539222866435326468037879285178006934876600814055766314390272577533046000585058007576065812568279085235026801902192236856912065978492212985206215712442794756413768197108947885801259393152521725371682590998469087584399534989015786372349887957602924552798720667016923889724329842924235685857868807248541875802783436439061212722854620903264286016438277041718788788842643602274949031901191771988025414234918226602637219668200877397584277215645495531452012392888129519764646305149873637104844860003203360677477904733747417403184160120050231055571969721540099269798098633885522015524569368600413806755509222543198752110275421360203304745857995699810754158494490552212717559577085001920519959697106782450642186507103793580490140866354456869270689404592085599559944270898491758492615628200565444866365177443366368163979878405339108012544621143155390849300668270427748691914726918926376160040414021048944562986836813910407072182257756279359395324911719129582927753046522748730464849391762916110691930816481465214185357473542566114536380556546958283623257820079693813047058841644018928750100728239763364125712121936605956803132742900414474346441355960743397024697832703873260402359560137824858784344672291875090063150935034789611132546290683921828876887596447831785666895886841164562587462364209472132340661839468425407881261680870195835284488697728891465456698089383585730113798609021444038253953805863403145369151507971470481561646751296201304717184753853870494095144214608086676579277628627696497928122046506322052753631173149627750525065989260114197121799277490454206117529635894618129683605235491111056206576626531788856203477553570354312030782365191091058297487498836013704697360351538071751825058315411058738163134556855795224101555447496077102396078618907506556332933998346913796805175911988925107929371505530644056873027861989925104657811396180271953282231417654925288443979427408009841759020197280923011907185002121489581818611412203889816594180388121489984743649412384334404566299731997136696243122493833722568726282429872230231676759526092703884571493940989975175925505228044389883615635199795849207017306889547273413525952842441190299477606613283206839043403330380069618505640837997084812244205987537399951843886200007760136172319584819554830183204662191234677794158693893665646844497520600024247043530478963802664517996152545941535080904570081618264997341081378738801983369947225451017898107140652531928104462992189214489439203164731884332162841580755451980229852252261054220196197940116752220596094698185709392372058150107234934725584457733585270674144836043602300791935548362206120434212420838149952014648952235864794557065956168498564198383686203127803735846875269704403605399869337969517247635131620148614006526818297830482139104166042838109296191521674519215261670271506583429480859990966769805052943349176636630581208085769374427107266392858700323317980466627038065922984170521796132251165945254309541270830958985260966393619046713879045023385963594076072385637742688960103799608616195176791269665317692601474650744369818240970019086111379775585183405327171003389427204564074039662600936665467147683866212382945488696484514887485540643276770028760654152018041447021681883470541746329434235715282088888299793976042770575009306796098016685462318070327938828660153428368001303451371607777778017434689124673627744996587385522250412233188294891020691401972698156114005230514609501585741399514237221645178542318860657319090252542058624398869586794963535591855760976798432009402552206103758521628666486921545366027541589016480054764098163367292358928055333568701764405032402934469378081673558416075144691141949167925370839457552307860515170902988423126505872749526621880927368417344616940961918441375233303405542306868635982954708870627648526471452824329097233498671261328055547737264814903330513743848718039156047873219894247827670378510244439632795829100210464629573875552536956200280159769141555724512318243032702441812099266098269613621415304086541522623473743637908496274090509846726490270714081210926775115928887636281041290033125579209862904962009735768828515355111353515245368187240940677308768637212290541013093498453559237467139091683365175728666480294862290487566503664243929747187173135592566330894719077956106521297611747477018741960693242138969008523416718107412824593421712157003742936583922459057731972174086626424864920649162649156452330285727192320805037246288971456778186399037996699902863134269697435340333284870658673658704189871711101090858206641846467805275547525193454779234330219927005140528209549503869053199862875904742373840183483274393409168768080522449098764246264764442623603628996052004013103364459367949834791730441117077109686213252214807817306897607638957659608152081229680642937899266976006495231450320161860767452880977806603161205775247979313496567110590504184918111007442822913176379651633396321345012790366291853596051431428225703567284349417612003145625265139522305908101514488646269745143876686621772424861839575642922691313102093260943662936483893103583683975484494440695773134999700782614682370110098546447987201845911407713983397451392467803933437053803797929981045331839266024746029327715522343684374019002770127212976308518343904459041980683214442379232844041554851868156209192111361603185631182572817118240934295028434056628216291947798554592494985749749886571693621055718594939339393830480772978183553859160051611437756254120922220703560800614030518459365611407275193840137481377253496625377909137031674580660268451041630114552517624079901949188213208913588436445155397116409086357206132672476643943020787285353646778703444678513100706559972172235087020206227263168086406681318006366927824031343112809568043224547405710430722281784452037604066823391444993093760187815261444931174180995761134219432242470145220667019488397530912946334580060017526969942953752662861622134378303247308084699449819240308679061566071486510621063256739589154101297547242066162155237529144604099813545882391734255046738869653509841008004717358325537666479857392404674197238049154644859114444834308172495161641189073164953765134330369650521855605059158436529804014601462243759554198734009312950897122728813601539673824332959561987679321985619961136310834582094646178135720199515870224069845691643200268531546184941386689096526457900705069364827101925253278479749744025916643817125818654897634809698283522198718210064137322410912040292897318053721310512084024446836314506290658371721046542524482373298923803145889083157984802998520086582956451607023642318654100201882421045338398989759469863543188068895496078035008907894820666347952836231290187783081592086387854889951996008004194568986683939994340060621002704263160127400475294090962406746137612811518940490514740976167426063341906007462674400144256544444188831756545740546479754796888992065340418104993989214627120280138885979614908574280073792832405762943555193936670156770765234994639141431843077336760852580512421224983300820843831185478306094937154971984750562390320639368906634928068750372469787084356736345671612810422113799613274043009470919481408702376895485024919158114120665867610228116423806329825150534330561515366424862873724588837580994603527848142631329326709535958798177875812470786533090692812870511645603308934462559744723325223338558821814733164381041813235183659754091043783280026189419583221196921332408926230831909475293294463556429604636033344582609852370619224570840883105592674010413537260107860542634303379430001737529823176508519154619073812696072333229035581053594473683438902713247052482372435354757741641541660551873096451142585198291675591478835272923534359085104479945683452458936028844687554318026439697913560456877740607394592296363562710437030208125162297728966868353951498933809227901563346418178821700964754226954627655933836993266162613045319544845578957736071755570144236338269987170332712295258673957505409398051167825838921485903109853721956747992584266603540951547461417979955759671361060512483540560312857829553277241673816453294094397279827743725887870013104248824485885800225589816353480695381830187678326877014589153220437249784966979404480185255082442336300587860871090307843530373515377812747674033026232264467769084561810531467156557682399931206109792062029902470439926895659882873959497307108556025512297634017213067338062613754744192573983382878443114623978702074913215489672781932762389160944208764126719966521517548448742226224086339754357759065747432459321478969335244946197443089241722357820326798720253114043382984963212796128880083970413299128968650982843771457994374712099323026947104526774932349586760682752490725647453285852513836901049230020064608451101626817420176073666235175015461124174478323390999156443395981066347667350480373723529669010156397314772624206106909442136845560052145979011782834354758918963822403889084019651921357924890747468832230551756060239470049097944121011815268644714272339047482539009025032987448104910857456437127863120831934736828969032693990443371129160353881237088694712132799177477015178025977647749972393641732549280182635799824975826194494239459369884325340907773707093354711448237453323333634185776465235863702280944521470843668490188323471840647380691414469230604672313245627280796753517408984973850500225749964156799851597628289453469246041661179306436387486398237617697182005999007129776431174336964640071522067951527740007621192752616440964694901555886242147992573613826573153027890440068831275455825174758913217394499704011300690368988031012003981959241245471208005324387347875454973792636902545601559454639536697097966688576865578293110018211870482828319032976083682409433712853859733975901205723459820328090418809874886804092384299158249676497699766122260005842885349638080222512909440304297447840167209982564805797940646107074861755277213462722644221525019488082127138272197734978283125361635903810607967558191127667963923385995779764706625088364881135607064006228889884075222294019154975078649144346511226873719689425851044642928724363441848149019058533543465407121717671096279696382102709971425658896822914507671110339991600038073493170263782356254353654587715393890745806314938890154582404180197656307688607579303435786664419786587217882308979966101187282137955070760489608898988662485225138499962108229092981014840656381779933766189082765331342937164338282264956666863533463014423582663366245037638417580365468313107245523144704148595903680549410781722468756376567842112970715437588714143592144071280844448644013854559014086294525440745423747210264072684637149842575075148747172881970221925333311175109105433528426370691506077773715804781049058876624140392184113019947653932260255312753724508843917521757230814865070910514589817758071157523300145159502700283883091475694893852514701221172752802393248122023807668950417642170119611066513824886820424744720613030841237225863698649533950298646949590488675755616451870082524178946436896286304355396836326679427592843996401128711728219720229410181337451887194064143813915576550625800024899075225634677719612081667478319209104396528749924448671634873768413677237487281761274464428724151784598945297607651975061528961814280020662146055350618042048505185998012623347981085329497201649080159670338209435085459806552201247519642374151458576467763727916293183271581287107507196706451481134751309552540733815554592223653932711994291562143357875047869967261410866823034232971840769885261088755518357819414926448149016505467781882541007916782632259803548476058441071878182404707047579640967624302008996849225926916506985682758846315997637477629985147283731168402800932498641598306323268932975053052986005690483875056399804432671173326186156107805563703451393161850346836156364385587811316406010365844121647134577930565755184170148212673735764100074878303218813914917751229713358766784906375707755378689745298865309467803813645923393732750427026061760895663921029008858140962793525845461723394589488741336200669965530256615737824648714177868288473577845534547229492651416095046387079197192518067102103513479394874831969606069926717183450487567465942232913879689850701754677148634410679767597060926189538876931716390860709960090550054043023603120761303632702179299848636066237235292084491146639253702848689332786238179233006038840092916207883798538604848594271830326831359898275915412456240664295852736178811948603993670301813996275502168556732739716224492181153690663668037034434536923496884396117436756492843912599644715644421884677875831995797540747986266953219697085321904836329943809287960834390811558166809056400219469979412388323313677657651913385488737581003983021818662685313904310227827704994189695091756342871550837217820493321660690738044485664820367592437574387542431286199443844390041403686258714614191829971394072480187060045217499815528616134817165040657661882838996542301095524591822973645527920424729083010048641720613142680582980964590132149430928253315826417863211453368807575603533675814247981861194370136098827020603160377220887437854293625309319894329248550531780761951099998105692642272044939911081066830808232661642901485311085483870783280810422353777864852494530316337021150483127082196163035941713656524301847415668951104281131073658184856795980367169172881459168594397540895736053276173528783232404618017406483360072256638637506342161538171556536516166918898098772506748542487992044328688123735100749307598387086760195174277191646170115195877396476149013638244638689872825756776892087117057941192940257313502419591960999127663996781619159693120056519626526602149466247186725470881869473897342473713116466600420211791375514091817470022812211284160831374745643819647169785763031385886169161665368508344911560016177241948753350356749314410987743964949060248136973345080121103621746551399962639153533636139083199328706589012064588988113958905648483925758171696776883759711146300248771239252470163443030103536713744330052569804129914287604983145205646444287328903750911017719715789305392249804928255628847049452845995759691477918406619478863709106539359941031777102101585627524322775916793201007598397636256744014227452686472207752784599238313368216612314139730994410273103008932116897150632379934498601691681407088255692127606728097984934126484956483506853190813174557779245804886340787893630240686439173676754362823014278967144461692011287018686407863271094348872402063527171677185334979079673507818771914455273421414682000377394083312641720337749385422614156045856318169753419702444375607110374958081491992144660208444183736079029112305987587593249036784047241620812112319830887815182602739842425155221442222295823156057171928033326626777501747097712383308922825849963792752307506113732790678687043637198208697270462011578797232052821796171991276309432726137345280451306157507341711022158531194042916090037762447837747616371184177453388392462887007710072420802418303084879904707009719438241282161574318814555243917194037422583362905578382422225907577724743136321162012747788836653790253425794177177918729362775745877491005028530914015410983128160066751362296467618586085690676522030806585804508649480395749018050161754487860373873641184572737975137965589096264671406134739564760858607718699482130609344819504308836875787584829755231251082952058744211356923527607517470118606957023007060124299870759183188419545581140505755027877441472434914415665890283344254322301704832339386587857114014832425145331315069148370532286091834616011072014284418823158216177959059928681236321948127281923988885625897605514242934049482724324109788062938540122268162835409655600651452451629006768251864107690827722789684720947030520955261805212520157114794351479474370042585150438514078872857224420404943977828290937035563261132211361344118681570045488676660505578677060676453047696396119631891812743040993993309032818636096346220436606732797324719082413889783800945285312356310610972458527202962968869556687358068396136033557502070328111910751281912316196096856321506647208116093414112196049754655163857165777166342258664614061292004737285011578306444449866547909472370968050701839022776003640358192722199080018626669149080985370242222535297463630478596877735198092756364104313782246876364589919880010335032042102675225320144860380866719863633555546067223688481110539164738977092628748756643384064769039599526066513503474151524712679976034684192616724676120837060876806171970589519972174776209842413824083347501988737027153696245206387865821741449368779943114777867631659684610941863780388761715262746178498822668957856932705865271568442333653287267973652359147995159803910598663307330373738696684555998405844635650581589968155893151813435656820246075107642308832897357137703616731318351666312912981668018541707576725031363866017914650931629009397269163679815736938319765670666043307573513352746117917709165326500354139605730536234372286833520586429580820235697059856877083287168555764736951956173036893594108995175673677289491400189863187969517909245698891692280928709815055235721440794947077640137910983345215837331210259563705868137457905422526466275941013833156596584479049243901138113695429388909547022926881913936781285195880389329240212562939297614805768067181494979757195523943608788061138669697299623145715123504913813380228525874616334797044693868695530738556649796268746381173060122737853133292436453647623804795158414243672713302180672977966413693372073770842917281016768657386014442154193695641856574262899212488007268789085625028692711475787019634639525624571416029106710288303499515425982885823193654045716730589364647877106727007062880839805716417687232765207002043120123582035169788679471626686102496224779022997935117125593691514221037848192634258033972385053865870501788877917881966567595270864640499780773436430087332484248111910084228364841989764916629719994593076822353230381719177702995281009749009919087334754431753943347904142048154270300408308331362960263617527842738532089114969915393468772854509155830890514074403954155354879396028194410301010178722300056940698152230910408437434201922705420590481742862823829643933692661901819085776770957235360364718666250597221030789799215558046625337830281200757159767982469323835846375188378595933118184338130040172444684240291501543687767593625049949984883770184070409839843055201534690766492024091901166238583801084057947466082149613274881959654428792277299508738614321858211517803337352634444437022863035872881342049411223522333670337133003289363855902938057582162258436928328036056821467909251821458090663553346209165978451911440326918671839887744973512939129930838173302478568289123181945650175293635633796875584629992587681060912441987653454989425048310588654019135264184160385722530172196692762236483873967560557996727939177520193927545907785837702751576808751896289060243914383293322900242464909872137983820810463339264075335781371635986802072421450860368374678420228335811409922127710240800593348211320151444754085866055957021599660617416055705848246323612214017783686483122130962588365117242038714999278040193478264903618550233449402042137600129814515217472519716746866735920424331984810874113844300470172939146087335565539719554633458157559216231012931202415932256054142120192842537861496041635587651761123977260177877168916846026146624772294100343300082691683151175845870981231217733289268428411498643820282229920561543079229466881291191080507978314650447473180222693162039724556107951164481074678603019199997626440876047020579087195055878361091760151107497167040022335625934035389612387823991531619129968046553177724300368527166002298103385585387099030477125462667563061754974282014710286727165873834391397393944043954557497071842642446344888114760197444899295880425785779925994806459774105131938275814883327649816693428050181190190684931464349963421941318241089718100125889183694088817425260923424528318316509503027730620333490323691406949975490300145714241478295132701098548904732410725850167662754408392593190291699932343061287462511693668849492775946117226669992268674054319688599955761870296345991943956170561545098889027653360916856046242305338022213869600929675519103505484699450458626759007423620946852494083270729040544162203548713072919822040763680833869056235024275560760469865854323575134305571903859669185122878215153688272089844921452796743414418549165944582343472636193813351767525394122391023161427670191622296330668254651469581953968030987861715935534535313169082030950985947034128316796456636147154266922948799885680736439417764540640358782655935016634797553779003170792730530895852341195466317587380162829246831345082255853188518191672004030476480457763375499746015711778433883834268155328630792719259556292953949223440106186057909467007459772731428304743394804237832912738556985139604036115771808333352837801997319401273532749772554958708377707174106360685234715697500715345416305186898934066129506367922841432145107515431309497368336774302048809298290413630253495275018208228871435050448563332918036870427480835041770700827302211524806600080982612729982033882113709266820379427729487702442071464804736904513589435534765523735261948855187172557937547587475004985733681375071819839807383260328978267051327399687516890712539613117655172616652483597880869905508264704902286150311452485722830556332073380670602156691929786200360427944751527718950063473773246899147424807887419084525342900066196904125819657457634200439302292143259364719380146303843196010686338189279440987439748514470799313366692880797201415928662812176614273999113259328272971272165622376570779997759036353345853568396991683468107409867034412769872376282237922848935423178466826884857612765204043992263688822197794958635123060358322816843885473460808330891845067314356187090276152243308723408115646492737585592830150883503230963536188646100194654537279699925488863512613348162235748950950481980689372973420989993043936257752863910601000837417298229216252001116650599203428690213631945022089817896319591470392271454185754399495355478480518982004141325749388619060379337948449452096018828738669648341681424002412103089499215036351481230975008136062666143496149106904009534673328675351082882070281186826738899153074285424717348390970225926260295303614992285116847597103561183716149271613761854927871917305286399883545523390105982383668672030166993733219175814652411241287719306696233612892796215376300402701975341907963136426841442710637826828512710317946978803257499557432240811986855897613419347497310588732613882036253647482701432887151111554785661424683815575227076246599159786497841154285722981654893767551248817843242463960267019210149472443529720443900803202712966969534614822061120521895930919772320571898662329574324280347505114153073800750794491913361930569674061215806662025735007853849051021309789017633900609362406453071980445298699679181676378218087229320231771201702639265120834030849041948694555834450172239281184588163495961668391061719475579115063287073085513783021976662785446503427126554177747006013200718365387037095158173511338182325720372074144501032926502808687632467870383644809999312151884724066247632496232943863101712297973846017978883967710408086699973975251749683510608719597462611738752638306014902252583128422623829398045853424398892018694132913985691850941943443835551602421080754404914150305027982844635454703735748017031894987004410008985903805256642174351127729658609719009436213475726492869384179278890098017882510604534346684933471198173120831636435191995422490298848444361886059222613398858426934388073710249202783876116986989381060747013865560005423251327422141347758539354466963228081693068686641482596048033456741254268246315487646896306604367344949984655207590041583136686235064726155289050913322140396276614557160761235164978786172093620407120508096117664273351652495807750539662276830687971270159431131786622922790930850713804535435792707841161240222938207110436359154221164665696458916976878102292019882070883468773779485088359926192143862694468663128060928481315168090184908768246953443321157115458791907997789075216725280483697514436410615324139045530911243332199136323489949375908113133388738793897787233906914012511010176100390818229843466933226675871892204339125724836209442685906084126323123423477199028444877703240960886891368163332946692771594104775723928446116329245207542213029834581356343439871868645473528960524559555296764765111020770336792266027561155414616015837052850682816590216586864049218417068180166864752700551443680187484155405147689955475687312413397936518732314661140102310975325147995053942677689730802325512355052853541706796331619403250585371301883551119925691355522983506243955942228636776779127129673669385811867085253622066779101851080060287633343847766774580706577946697562825264870539317634013992369832742395097806762981060334267097737825741812053373062270980760665184421561351486106470431083253010079573666315902564708330784080091923009759167757683397732081121329717305661041329779685444339896579667427396924032867128244737241072897847201575662358288700288815645829156424328434273870562258085403262882882463818513945616798444001445217299099101432622360245007144170341149867142195827139259603416915054069305673116685893531163712357352315744494420157339092325771965842890622592408156678268650604553497546366891235482351810064996974211383873819975320776545137972615801307803899324494480051217639896606183371235202482411529500404012812214019762276680642123015089964645864072196928399461779025831201443901830824736269270781370326306887904702794791569718216908186871205948664161904999547024249599513812864595337138008605511215272453265860474127973701034448202838419932695473557656825236251080935581462918342827038835356402545779695837989759804899219796092313737823335046424752952283668215486139122353248163730481884977607614373397595657076562595226230722407998252308659096072154006280490868908962938362530105684208375620512751606261546690373262863526120870294127339020501635083683758689887925691106889157846280691918257464592142974240769564919362100824678044397420920886228829520610855411235106613856839919124912471437763536699389391308848381614747288869019584805787341916570270907736824475739301886515830985388346433626258176416026803689953257052875002201993530505997090238167660425024272637790357559868633481827463271935770831092144452419075166244665056248091651771002980900909073581296045443378879360153210085921203147911840740477763883464893893352490606871131138818934736567687344174225504209761014933239534743439022891246808647052026760827826800492012947417633567724134473676927729102500349188527638698641052421523263726715651328315554612898032982095737888556356349114261199845273897710694806612014915025966764550110533064843835484910224531049308139045535853537896355910790189751372231575917810533430654341306809870249998489116483745883126640508793004133837873774634015975407791565188740904118697463611094781697194181534234447599512419034284703788176824891841868317459464213212670025744533123418707865321447904598629743989098050262033134638151430622929635245136057911209805490612054752042980204463743535385187984759963200766104679469253994806104373739455672819455038206001764216703552647574944923112834870848784113936754596910387020500996033704138345085854896399915053879110441692435941506863900653500092034789798200228222179736010141327492766190241037664024075664797845114716009960812139455544415184953211346998111523886054240429771542912901048521827199041357354837277473205650379978857531473960768128648237707766987284367399783249746829897242012615702998339604803350641890393147818242309821939140037279144851420207113431163110257173776783400026911261014259732022162962041334227820375142791978726698339323891981776249072433325708792567980764201289197966996813414843177497615984395377135695218599604333408343322959803621742667739096915807676554115763141365943535819812209168935203009953102233134705591739660808740877780113713606562407581570753459092427977020583910352605656171628417676261516353497996557969875204798206902103983544142404771288016800327459099675262044333995927756660525365984877878852768829938967285755006350953445446965534403310413739181334847534849090152531140156521501816443995082639687865512105025999122373307494372785808296603944145528332622359337928276329528553696651032170811859715609851969371680192610758545428239979827731350990787579868240168173421972326650749712646369451560904096568962917918384221518663357766571959990516926966172804660689947231089366281774764010496855278365346730034680439071010314243787993662584534764938583210525458309988303509117618543768275994645882075620150005360994260870983227559104811237330399559710050547092289646361719982386021786637512288059593353057693342741937202244138093692430201409480284986651230485327613594666205117816211382255106114594017533190730659330189481523302344407274775525403413373195830977121432519999375654724869405751681395909180117999483529387288273934181884174822882434050256935607052461348081909218553410956248311663041984346117596175282071533760174733539684095929640886244413994683652003091523950016534145039548551939338421659297358365198735696828255907292803228223913969720991472958031078517203589977607426156898385916690873839526736076276463691136052687106171273744371188019387279989963306831665880319760155803864907861450520816072672565570349413686341431823440030864296454837531759874267361587233793509353367645827357029082771041525532891076036498081042396945110480093261041666788933375635434338270374848106604110394251662158115196080008372041943111463945754368747073507357523278546386232136698829168443121875206155284976626692692163005287671990544100179124833078229815028919947304998018022653082039283110874235464529530973391135942865955089065595176482031593397003754677365790475538488675745370157937789246068085400553732203028733583949376165739439867848457336897162381744058973502860526764083548484754498999463796328294823573726850019213088455868524459295814914227707678219369428265818307703670246161117496927047429040912519342824314022417538424249909643046846003584102577803988907419391383686178173791574471788237324873385376353842445849064498713854325767037577552152833327252344735817850016173192391472035038855088135174212469203316241787087216545101158897199603063279839413947746962730098989760328286265745363023221315337933909755068533950378113097675460003798165894764832523547074845621230849042497102161120516688774513592347029781184753978993894736275776292577296029936401053144251856334504082123313464546505529964334854084682514650500658095588421267102582914340449335857094643058272441240932889403827723060495863078640350028734184513425746479169831036964127693465997176959231296879023555670839873954116559301239918549837876968179984926927135355682065056456822875426876173989505331092444925645031046489671668607645817477240278798164278867214362020331347157891169148057134761770736795425280132779426344782921273430358100062302745762447890862189458581172489312365909579729697153203603427952512220467512893556530523610941885528269070481718087853869814875096197782324215414330815207344653741010541816633480550018083521269085397579483092087106780102787382835161551216274564785132072083207738617289345287461194429501770983547660029482822674496708800199300119493611436746966739294084939511788441198562029184298842286287652653051241704862330295378330660881293920680203666749684922135604422306937668634408466416293018549429791269890910683972541730972625068832897453658486274035545123472805310628771094505924763341810392591359767414488471137196739230658398869622194423138118793987332865928566832222170206892035926784655762605817831726498235515283687295373430482510785295002142652967255734926879074045283585046927475301478066066358534455102981380437049004923397867471794798280908339190849126328265725050117604151545616996792854959946801727883146096918566848022142608610651979731533306728119180449225887659893401780632068417477036391085883398474880971706721416780352297795951910528641255734526118280259242801572577884339288259777389205904407507956031779910666943661079920461956377508253969183520306103719305999473397074445360788246020067971220704714510431692411371055493396114357039720372930830727326030226247756999254441798954980649783627409566868917498587929270284177924799324498150359834424942385755125515780993745471403967213824725701504873805150019587304641470776789343054777909798971924167628082917166933042046948398657246853001743459447443028463430639842142689142323954082290345113039690457460726074694085927608587190603577176521934544277517504669523499122945482226709380461401395257712797430116106451337817923597794738437794822913333229935864237846614325862866912187171098253869502631546127242534711691418297307211617949076768055696243318344010490975357688710146832614239199176166156686613900708978321617754550008691809312179861746326639057970157710611002227776049819501086341390268546398105134297272678501775323695464235670336144669357501992537647000315182221558357775835639020398550043454100533848077029203535125019710618556541516113540160444013406965862593966252039554095858281176631308541120312779744361802247939088439874366101401233256023084911654267002371927351922722347754107817746470286284918982565091504435638403497824572522209614291344358802127774795241413392386355715135284357436204755047254589248260451340245281230599468516915592312593479218850168688355327078280270291963501355044095922973536243028948421409826191639887223182179036720595682590609158265251701755832168694483688861169893163256476344149192742242427523616739844713214063062357285763271015526368892185263574594714660669410268690972892792849944010130755436922209493305379261036955912758571920114388520997999867199697555479895826469274792817800183680669582886052338459632508943695268048701746556317025088225230700011888201639579945196253346161137541376465408184306186503659436024495058727022372379053103928259790168542056820424869184896249366782796308128688258483356415487571892012073210924150931978867061149942190276377846499707820016732799370395926955315292893420260626696255824507734910131397982313318829485953877620663105575743493645595836191487227414924416883636108990999574956652195469880439576579582997916874192489461152719578070177614773553734986969560598468574538968651557303434406136661574266801435623151736505938217865342181429137363688253867385825794187481880354037729277496289878078593139686864342884261171661402207863232772853001400603938594320812064575536614517240781869607568344341575441541408899102890856412162728104241712831071422812299236468218105761969831079624159608400849433453325287133327568218993062443070570142841865177098150214509771267604248825573513513988076645186112643662528511370935295472099523138473000502453806502405115921135765171415672041884824441533598054911937269606504037489645819877164562235729598967776927967192065737071955481978778669571870749079758533546811064534927477072805158296521347255008281034589258039444289108344949582289999459307869927094870120097457230178180960662117464926788537241895169712785341975358506454400315553307053805312642781580426694314216272977781572519177020109905596613040874409990097174468600708906734357387154273327890506377246766669996114300331692500628705958459945752501585006773930020831747041458988227051544827652011041333557206980911226627800406412727933032943214110507275919552247611447506336202621547467278705316092109478252592338452511943815977242776302815308222995604486005067910851168783139022598711590844459809163754992601610967774376417574287981546210240529191756561034891923139897489671299428403467553005012421406450586213471049895894503755369887058545409044261989466378018491743872648263876477341974524359221541764859020883539375878293854732612145480723404233535160790590952201915415058330610674641690830578382056912780658788453532881645922678435740492236138062393627749040775810550117453079512850543286314303337321235348130291460749228909875436865032875768179694663801701565335549970458626985363211704186930304850962676998178983915233877333981372073512759628687094671016112090749391578978168239266326669397623932367144221051327066270370304136558154298362808573704268781161983232885516246120907848511575862963637649497383942314935385246956622808521947335243678033489080078466953596301882257486169733234595412376747197655531051675960863128396991695968697406848907476614419352357427770684043599731029619100326778899261183257142598706644298980349085324030905862534756529698743424897917018493907451225948763249383047264269183364370926427648358327490388362812913087731414839517278926529901996142989746447798729372980252360943806056897727015687176098502839945162881809240225639345222714426223267013416453934511606053157653841368409819866285594138876738496952285322242625750570947732902445167787372211670338949008065484959740050340336417161650122583627152347662546275243142738670865737244029656390792659020731806926563787123598884660276673228608712787658689467062196952727030424418492732232221615889268429690958497094464111966225495964823627742232216922999098475188115100744085390164438453160294674177364182010369088135527090309367475326179616512191551898499548240538436013095171937333363122715404718539365396217870646385251668840339213262740459179157833958236333026957471553614795097079169895518660143593653943925854498368733966522652408235630995944269265575652755558382933941154362008858936020451327344297988470763199157954522406997627703560708964585672735113197612398169746529841258845882625319939246508414885538518476149009163859986115956192150621091194019210639759159694293602526451873846794839977308010208349452082157970221653608611888006923387691147819914607123285692643712407809913447004667789784954525365314240471939909415918588210246699061402509630521936202601563539148580082434600364014405691114476679213258618109160542876885507974165263907838274661013531149327605520839281409153127010890443642902987905124336333484930197522674974412653371356017959527672724066069902033689421066770082694854983272853982522636897219718796963636239718612246448087580933146658025574704568014098601635577400474162513984087874048835114146729926788915070094406459525546295965491141547948866949919777409569184427091313813766122398962767190300446726669094946459252532938014205752018702969678462800145867702026643215407399811237863694676693948288725285878831567018136118752857983063216049239214536614250012358737884711614281087935711462394985305593831862808498811772383537712892346451798956438349011461826621780038177279867289506877730457035482985164746539506724961041249250672518319955409419702319673357300458077010471103156832568314469383880486542477838369138475661881051309127879738222110375022930010875997963766128259952575781759327539801929792060301212006695540004002374548320484722981831455576980887506509340234962338706318867153534798346646163291942578832781915593925160526386171053583286400082941047167263489984733751515290110084772622785521886513958541905819301242193338545413522260371080357882274257793581707044837559329397938707957295233449395174744983142209713929340629219011419710608386017618164997504137487359363098210750902487580270735337383550065871034275319463038390150351314707480697100730328202807230093340837529186474543547457325962320053209941498951741367118277203623810702993316764354443802639404070332452487774214047180759859348438251166614206086248172221861724656222538720324804762412824469491937447391666800387514571173434268268384066820450582715878035928093106522427754857918464806603008420255518106820122859592620143266369395653141533898219159741839019255946792005739866977587221895022689571044178208707112070276595960216234430866762147517400529444173465327176605450576624466574160374255808983418988980077295531711402528179296146131484407785003372022685075469110527032481924600512221692266823676645388016604726461203927235949403417817195745064160941705988719850653285812203619161064824825646567675214548302632752359948162920595832697828429231785612867074972620028193331246983835783957532412890709390622046518143404334523838787002079917310624591960662478087232519473379415275685832069657243607016304374904970265185026483800850395144925440436133778864963330361044691341626688899144287720219189930330544585306626532337887167900339643843423671275538517053789936046262064359017248021956246411963816210265839953289112336467661293134963306656170196931236883999319726353936597026012236558100896018903094429927039432174481935406978170499503359362262090732835516061134871762630518897572268804586953115757323322368932180175294400138321948465533197785131027212571472116067769885314212140758219747290330951787956571367946870429548013911150521922077967233015448378174225720838163216680993496616754601177393398895340475563850871406923417145594823761888296703440296656005624363725092851008465859979338245242395582257039223630049804365449769514418392932942585756230052166407909568132238930243859937981906121550496874449208921887289617741332807276852320061713038774173827848340600675363062793903283728420377814469002120857332489043761122658168020540472571746423421344846330941074747043018100345068922249376112240066885556171536032615371156214438157439012786076911302744471029686480456709438755553851671025903467311134489592996580305166562544131379936339071478346191586536218054390273061862826406289038126287985301523871127741072248169418536664178310745273740276435705760143906284118008693953918695944099579155758440895354583118750062913012114992857033982148874118359991332202058073756497467685759716955096160985443234307042791666828831079029470456772199410264299165978811127514268939436685205016768037349757526884982316981840394136303539913664062049846481883948467366015002753469154777682339326362098558040945651765765171218004942148090230205254127044382236474692048191988292455063600716286838710773983044607179434318120888994649388886311364545395741352685686019524229727617209243617140877115584604295414206233704656194140435201310211693353520874710121736310197634599489590145343691517342038447821796836456390827988611178068152152269152678076234237375954126244185518935729032412792895701762116306568048557394921983645860581088485228183334566513414603798349610241942621828874305485895962699442347008306390962451600397045215115370765605523534107066767775108079694543044258492758061458012615424728009556404338377499053521215278243518036828053791901238131853551285994168495678903325406474356293652861321120782187945427120264789094856511769063904992721959538513000843532213844115159895111759492348013034424188693917336500521876269418050950680853081280938212007216227566050846044625638978312261208981873675125216070745518536773024258470015589886602841726725283570653352499841486072197627037965698055578135563039564949545911498677476178954275713759216020949156755110666075164918194988843244995106660801925926408250184283238071115039202282107699704542135190576611958115665069123599357141596897870196255822213050990802293517036782561170747591663426330237653364691653514685475738307200644647197038730147726552167720987322435805866454332170751984630175906226273533925999430608049433375933645119674380827858306269111565265459406732807499396376542270621812083783183525487852911898648200404026776896330806113390423680827244667797300478864947440667741492901697049120759510357455453963464173198854949639919455340827834837905844195410982006884675060730867002755750506780827063654920965931359238138019441321792375900822800175914730833972092927554679884532540770824209499887394505884489547212043946147364234445817878057579635321396961387248485871565334069694429681706275601287385880715414962196740812802832787017073317987838412314548356442226055708386854009744856314388834282339510173153732642715218711643727189476553582029648426481331718314733413094492618433697717880124770909827794386905316538648861621446130384929411051746155447913069205336143049194152723658936530817695278026057924446183483540164284278995880709025222013127549851314482324802288147446355108156068976330100942016377584446835672834146336378512971830074586435297856651261465178532613918499258581907643910307952589616422736868069168957738180275291265060936000666743951053363881078892179053234728153670795787946299767019956484953519097574425056148920991212607123282040063871608625229955086910495628856717663490009304930049851084398186372929269020378104044154782432073499589114165699455465547524898181070967922734559167323853002017219788172861836692860313732736868751616367695741544417645819063648230169379378578591024965012016864956813397527001333253413876865812104084839006109405774254925616782623528086095160410575057715754564165700212134177193564246860151581838679348903912312830536410047676584781886558288966125339743153893347121348482819418918919878812259705218575742277424615337621379331444273144923508331407502350034162392264065367744835270092129484425391509962106170207443361734553507181426749835090105000025299459050648410100882177493604320127540206045719407261790221917378081387028140735081720121480938403797446618750287203697392503723966053532058820654767031287181356595937003388074094581141098816495974317218058831188055372432855672822799642081694546250701433319015470535829490106597027432823970503115482744752317780063343790011482478680196134072965838767620665661995742486154547271754223879881019156001418914195192250471140007690007077130420265485264402384894959067309625971920258012846986459959848878732231336570749256645724580140443915304909281627762800566199921407598600387894064679470742537830865853436363995536400238781531349543571541817766713697500413716229926041822253245746636132396574759049561003696418799594244093152583734331828005768736597076355398280100277434470017822791076008401641399138080469287293387254984209971397408180549712653511602009051020027313949132338958918581738138804261073985071883598651412058659191875459813163210501933205989436717531885294379542549018141553063351336635325634752356740690470729858416480108226996115051384054076484118723767013632244793153745770700337385550813975003220737606231845096924358101842305976412104691595711942919686006817697636528963841335506127343048294133459336598307773482683620425150860561638504775811858967017516974497434350832606958502887821957252744759274998811197225640313621605790148205435463970778902575814118996539675115637025929820380101641536650263283459501955402349398588233628625672409974188512794189219812656961138218564537868544692394986898113415351201453820835236476949865525828685401106879030711910432619047956785278977789694658095930079026623962970493930255441802794904193816281195573361245271361287305211079668714909371992693302546166727875001836017745184314505985867275959762571336155054681039261722855993977814371699611254587490565194558889211020648792156685600872726527773583375241867094936936534126615640896988253741227145816494777530214222720427566346050217558472575552130985628707341272894842518192073506562916140651423892795458752910897301678808937433768287106972823418387579701874031454472486216530648926801376007016073746365234794044987571766943107931461796847070400153023840150451505575488036421720529573923243033580626647239142555778262930852647821275381813622924144013330587149514513184453386252703320272490685763521605970633462211557577184269449831462028166794497577113515859074608713319533952484437317286027996803864213026595203912206660380170710404297951980265552835877393079892856285017474987195234417437403278260500301722451119529676105356005490074548684897784202704980489840638361319933604009589890141131451440502810927095593676917611651775321199420162965315258700386841328454187039413740373279831829407697378669948669387145775801185098815432063503191933176960206651441086367851633711233059935748230703034989075878669266294924767328391155848774684157508135500914578982497523089376431005636569915682696968984961734813149885204764875258535313963864583030555614030989589024584963338578657163440769959152665091925322081446623667599204297171704721276200754711542176502270004855224557166291384274340417771080489483260253780847762947176170599296455011097921937865680096260954589515976305164844860183508476490722778973427811330047375464384609652183393228263452047132909088079499249631472784348362534829106369394872564714621924105338950529349442502440999466957005002284919274419870166848943665728775634970159636782900124233759504855203208055070919906065616376786620700900331131595323151305111776028902190177693474839328823822056153471801134131960309884652192796454047203084647832181408087118125267597830576239091633335681087893946727632489874065329651257080538351462302289522720441954148503278017077062254937296754411524071940504623061198368725885274068495713768410251111529708682449355125841657491094575950740440232566500026991400061295929007228840011310298342994601991995473304812690741198912503081932842211733918410475364242486183007216457154100645250590242284116219725803732125753954793624425042103283701052101624735547125325962064149721839770449932237260500413593193148659591359299535023329649623991451118829615959965001540733594413978485031191728237131029530242410202759070263890707275205766808377011161594601002618726599061951622048614142331290680063076085884753062888241495285883758666283922886683128957199786308171931082352974283583523743717611652193842250370899613195007639448943963181411376438907545680917074713461666055353690069640031077882985620323175002147254303128306834650520759988393286042630328374914264354460000744611067263684054107089632410173481580619807071101702838358665083945837484675866827997197313374027346686555019828985841375994258503122064373244510783807530729730693467016235400655487111494768233267737366782366228701037176484870960792253423546412125220869628445713963592294833802093897632770093044413103285111833770909558131427985348312046914720471833883038506631389010858669324943613828984879488141835910215589680637282988723077668790624261363745206590881183654369257351317212163893349628323136650116623160417006910898614077269726955275293835796939565937289430940674227440727659038541389395185998923475898490462431587332858419732688583156620719235168175036779286500160223039433674420835407441912274092727594491291309656816272650044402013617287745012652476260478642436026530924772875831564425398379230585179773534487966331935479976318311540024396565121266647148605931042673797619286252719689859445920161783196458710204739807883511714492830811263391755736712253544726230259763240933786598121016041366475552714581026307233871735747744813144313762931532137545712033341026621942214311782261263636547016858270096837884521521318149578247218427700217717723202765271784660336412032369626069437584148830959062790145882164633238923787871300681615010383258925142568064310159768844509568431234919309814061724550168779378547880157456074298638436661398882220464003829795099769423298460050029060805473921976616826216477264580151271917550509924287070043210761933561366797704359574466694485712811284591668481351911715952610585096371199674127145903927369890040574464431488651500960248634981180038534839739173910015520582919161665785934342943599429647716701471055287574650931364604586618481611540787367361602873553458254747763762490074712244762979202712009647682901021946995591527229861649765397660547658457833187475103264378836915617167164008117524581897669542839777103567174792194680625475169961338891959960146808151646880472821180712118768250831590299839933828054267575622822557243878091830278930949456777277973124157464163262910287680716550325485522406600848845279764037232886459757097210492974772412155381718280088492908601010142575587570047309550258125262720402564754394153997365947539044449841612604820580107221992170496575588312959149642407096308420125096916410825558867884757695423211320194573593020651255897690430741498861231877931367990124981403311763988432558504223380400925965487330693754003882856357625828953136896845640418538349110061922901415303712956296515608771687508615839689164847761857689134304368788257006748504248283848445447285984089674499204677038016663428708694920484816000992634699032491358382832395239049597063261041419896290342103473186926372918261192778079078347957568366505279501886734036978555923991360575554632208077014535799466315217602901926329549232894211590432618176984019105395388708792381360241965557218138401314928847939023566624501781254462071184078615911278382036545409097066537373010366786166583496260028651649701430126985636100920175795775563442727730980183285293893513273949028618790081607333002984874659779050448922967631958967443106454391600318505426593429614206892032073460500875835810738535929920298114914766498942854104092930787152401345831403650433879439183025833253536812340708914671292862098956103561008841345747198469766761668637017130324105337192120659250728865789810713537945372335807067138588859232104481965347051455633065736185617623727791410133713832669979920977717704080614479236127322419828890517068652442838767739112660922089058263631622053758044999780215397109753978101119976511290710476496260109772109755235092909560305713900952405222221061227442863110144534797102800278693836618365735203435552752847282402313673868987332071895469211611572193913301154897730288977244020434978313584694120717399198374651093198829813094890023455289071840351266513904819717701219128838765283205620052148921131067893681023000400812011838004517331910611265815125888958116931895694336585861248303157265301856326138277649235360989762541689291232893180141890353501242161029509626141761961373542478832549711357970774905707511027990416148231532393903078381009310179742648031562104474762416009070124886467824289916896947821975150046575918867774820711400352532308890238725466854212353747548045591100401396760195928312051606101688912298947474086799987454346970387131384599491072959433721887714726941556918002895160299848672277385432555671865612596482001862353387067444944096542354572210172785173454391978561324775515064768623645908256956250457514690992044049950247262358155866006777479467887797742362515148893560342642893577212974339998441545194477839143666320938058367817778152645114522051026579143433951831686772028899222630516429564875443257681425103269436921747242771587835427915370830095170704094312619282793696776972794431659783559076116346565980488136757644647013997419626743356603767625538983096470730278673719943028986332264245288414825402030934639585198862796502757082688262725578825175472865365732544616042240359285270046467842869199147380284665460767766340892643886748350646405982767456996768977427320213306816447468843167475891968555745868123227333829080077328104313747086222886185166881229493756499059159885322374889063085829568989934116644945476163222007694011609428076241584281236874497600183800365961701984281909169693934740390752160551448210152700417813133759649614748816676035654367835286371715584568197540582185814317558064902777091493894668835103777059468355980497462062129513194528483946772535443289148612406705671591365861879324362376534462891439807316427404397199559054152354167764564339222357175726404672629687788709084281505228593070824590806492293501131061525824165682631928140775074220991665102546129918292832777347650516508729381914203693163648943956220625648588016481685674762132341737191704609306924481044834104325353915207530939486368974192758329580705682000276523386382293417394029293268144481854295588405701520307085282220198643877634243525664013942828912729696120316374779289668780401486833057732377328831824310690994378382388651311054894672543298441726531040381275782903961911961340302851535507543468188352128639594270767475320320117048330181959334911931298558991238402781643923119565157102173355830865632096715025365086156320500367951006647627654016000567454527823808189803802469139580908178223505450157728792263870325325338230758957734360428253895542950816148806385929746585410657450965749747196007908976339190945798073646225148173676896921818488146523197409128159662201370424616773756370113275858570698476207809062551211075297819837786147539088332088577814201214584957980103165958724389646475916895763674440196003505955430906672430603213262142098837934619334954325066717009175665350299427609040889731560844368637541056208142945265395783830859150407588694763459769144139556912915563446626701005902336004191047060335744259549606812900795426272633777041882621887718805766770095211636581960285532333247098213598740223666456661325452615072882202836957592509167255720840487358977004802167816242130881849781726803653119830979418947654636859028605966293968627881876730703808374193412396721770680984092366193784350385587668627372671099247690799007791373571192074422095634334267132675918455907495766514673177469286214921645500365854616913552710008156173774830753628612182501762260406330267499349579235155879532052956274108272069474072780068382217539423181935417303972601899269996208680111591246312431882995430423414125498256902238174850767897347747203463876881167239976181784513163764962698508953580954596526997521988992840398044074056629747946106271137017385716030925999680384056826802129681749296615434056475219565082677994792256283144680763065363823387775058267716387888303914131513291660958552475129891801543083829357572433479767523220744542038822435819906615219660834430716181998082654763268468796535572584697180958697130881039950226054871017272835718066936505472743016174175678028571983788733110891379681481880484792369583311331167022065886876732759159485003422030784121095101998434347239806274518951791596702471047130004270424892681706131717933552989688460686409727516171059852236562477088393039147391301606098114016780612471845002888889942399249587150740801007187198287367081459214502525461889750905086300515626437065982237126444647577075782822123162727965279285493115184297160256478852550079744196672172051511888698917136247822035016351540084964559145803571618710211857500390399622955919393114769316972936251313646677817985972408552679817751082814346287753519671165911254177702470831462730361828839686377519600143280977080396807957644227952499973056471559959397547275330727867735330813239789404345033056636508992410745587764887680584919643949165774793331443203368180826923595972652567351499444197788326952988122467906637589065792450883366008872197570310817866091602427833520054792712618443885707598416521276240876755816313906822869075778287093025795361316254922819288031837922842928863494604729295212549038584181009846574777291610489911943907036355468746498340773731184700928274732246048473094104338633382104554631721277679631170402106018783496931474700336584510890789910509222726433924658238498100151236306841612925137282337079875565378372230589490099408519289756246109701135402847774238894776297347275533472392749777868828336890166689945579302120614215599016226577095619512330720675237270549790628580577451723698246214953449830413109716831638544063288272146871337871712919452816363646859467734475860790572628558398529087429242161137136030512658594585747264622488744940483443933801343133509415726779655992111371953984692923284287279527400349938390122493239545167990071482622660490369362352347113140317758009565259156754541063495613173320968810442669126131182834085757099220666809437830506990821957634603644447850608335029814345247798494085666386655381128974007227215496583554890767208081001505966208570170283837572805981507582771713093614883986632343097265753533577683582069712465037166862520196237453089530818399926342990239277650835747441753129589604200247915649193084636417290128442172627515886408169575467863695543149822661943290956911313547070240125368275304586084233784665766758005649883277756395804848226721615615083992944148670353370307807997935083824773464054980514503693618995924677518038725218956550706809559327724649324857852194226930421138718815794974553580132668808806271695771120930575668523023740173683856573763387539682704078048447407569321948521744378040987244943157377999045941239680193102742344479982763896716759132945423833032023882862288460262625768585532910544486422846411451920279539773323702114814998928537671184580270344757849964996737093794128678338147536420629498765295067052098506425774289782836519445075571141964283656371998209020386249451801335439960701451768333014666856454178137835433765516424563242331293547652539271918448701731553195718941315796389669927827817037988682514802038122913402359330489618557416742833200655412600196993461825747686475511772230925838365108061874517709420644690297129842118253736005541143561946929136965069787666398181573148654479180811648548769076960646055760524706940471937877667918751458474175826125829502173261247778761659089579650067520696526250105319442684465815245983280689402324524939263116494007712198573918809597433826844324539160487785229075115591494873011172360457116579660684254691901303917090200455332428614166423875355912569445904974371424398104515907065583815578150656865872418001636863990989653153426540606549428557050875314875118830552708452880368281008144178140779585539640448010351239193961804869968307918235142071662761867050362704020500312329445935728498251942954118601679256519919981912621931984802322458531051490014915442966215171272478454753365074052807383306185704369331898669489873601399814204017954848853577337129047264830128882707625420633403416240933728870050697887578821807939353948068044550090041058165416901000337760677026145790606476655027745338809888423437379400183032532444927722247482858062994102965467015555144963213815068189422795029713878209275960344940280718226468049259933507172968852639748429054455820364265453631916405416248605493025116676982724058771667808337173671848294471012927741104667650211778507786875998261453457363804490070165138684599862065621919774962458754902262291364301540902199774450323381290452624796099640308054682738007474100653291114487681235272683859754010988321283085148948109828915360415426705631959518168702061960693215979662882380934815468146888606366110382255149236967054461115724395808390519593009250835210220879919356484579491381397807820305364372722285126072178068117734461985932228959186533873832193288441709706351981600090935437578466336521245639908319183580603623897535202980441686421487746637723736656966230191320589870499610475512348150489847140704796948305209115144861587671517305910024373817102899279065807084513112288303697760619794138210566563586643722161875083753388396757005114748104183324739633294041467358961354933626447973495853406908100803456756460549226411341872398712546111756855212567583221081358294109971256110176014126572717230539316042321579239784873868955471184114070678255560100002569278620687563797589895425546848046397197039797630683342148736268669432166534126336180798376379998707105519169291523734991534701400810870766441273507427989459262880142572291752508932624753742941168749104914563730137181128403035665463149164097754460724790922848077895676705241646315087355483994451202066542905603207503081218001210247125572427380445523935600496903190209177725611994096374006981483032337121499033805092019443956394739650329432382585674980009714546426439398168320822697172897283613388851696170075093991986798707360489604775625543169873281525413921994785342429539506592581580385428688434458186974578873672312592251886620102246908708580814888867084755560718439439285137093954129503429083158498776071413983980211206088934652895751534843823295288787616328178879210624074890288404220111648941271715903957201448680141965438520234712651088447982884481458088960649167444971904065341832239556747557433548183359322372359372857243631177205362754410201066480294872540171791934017661825807899737814209502352127434815841436114852737407577834051741566296344566808934846866983390419818963398814289901431014998850177609105005990921725401340547839981613942503992608885639149525036760133750415963636331559348396421809838377247911930689164179083967441045719082770848054890447131437909408591883761404919327526760841526640549201870487600903178964650666695143019038001217090154086162580074796787712324887896876416429401566419046050639527451404437621649424277818099233922865856248415465114442630657594953903733614847055721754338230289685821128837315723104995001858235592689354208087789771539075135917614306064487744980995097711872403612889631168428424022105420162664716205730610844908478106668536525263526327298585977081650140960010225616421590828211444520971429100222599925144685210902707316806978702987757338678722691383114083417932681177746338823286763312572411672333455188990993249990229204981213563882348769032957856620292390028452564560548503507427902928692053720604690444071307618556912351605738936639701714426277360150205617059241303261344907033711018842138396116605710115037665027101146583437518677117229885048138824793231781943710494809817917701143954569835063392335087055670441859088771358856445145649713068236745745767623359913045029082045821450127811849306093236585524010998994151627650844438530974774525635459822516001402382968748296850731182798665894597347165180355621096271377507465268150681297874749128583574908764306352962306587542408039622860228550009114789193252360348740592120635456812444297690848262749872338931141869059600386384035822839334730355145149233587322827523590101835349552502300528441505383983221289251454795691239377661162274347440203464527377881115316636722077179261153402000493384135826736951564092104317083485207187911923592441594806500826455015879055768270127632507979258043053572915894328580626076768710185376181677107682510648109270544641109063237423319484428163976719360255228317532805285404751206023150551132029316944505743032869407621664319780753081164555532525497857317693485250882930523409082029500024797588297220499252565080887323822480264265150060655290839191582023522518539991000913947569445016520291080234452671964386637208372063075324191153285003919662006673414619042167910265369064332451266181785349214986749045596664672085355743916473679743942504538487350117440113356437810165478889791135558137534660565482142105851571300364526787419495367724147175716651338618741625842263662011286374444899025550218051633798566044651585576847138808045739179505268160690992916292901712276438328909107949476784853161003357386909465586992123865126137031851613738699275467324815311065221740301007224769750353991169990497468469294278590510070507702260747230469144491757604365634396777790853114258183747627640022892261180701512798727760984091104252247643226624082466650067077162499189422129815147058390934446266554756822969258015245217914355881597819142185212595973994387476017407792037743670276181997889402316217229695545884648783422492630234144473492407794001883818642420628464187139709682557871082795445625394859717524736876728535410710604847060465101575891859119486422793953362106301118432860847407978288736626034029072991230935911014171972814872183385904731179495739423377596503427111625177086119356167235181424306692469273744540284455967832720809828194821707991941440250139353492989451213331668281896280325476759406892253605277066852193346005929324854593601115753481548624649422065968029650228404051990070183377769755841056335026450707271228820637499546860436547910093881459302172565289740079722942344354849766679771769922777732537334437339144585810670413202650364820004337597303603715686931025666469941117811823617239489886334349322852661328924702964925578960119458231174183431632337306648718586108729467874722036002839208091164045418203243995984136885086037222872318654264779424521689717563169122197256185583733388036090667349114134443142226882490766140930075147556866791618176696480615168580963932324531664788983418006435154859009893479369462170079556385593720087798173742417060087481089751120430088444614804150826152503755859895926956501074422020034671760896461148042456728088732562443648659750053275770652418610980492778092113988225322409433250250752162914581070356428490547447940997100632641072929765111043121256090480788680944913073535732640681983039368414294596051587350349529347378975759622598490064036856086766792494915174676615373125052778659297643151639608155464104407332715746865815137372405048517249650654745924189901033911834671476470572488169064885286913785909098002705154016760144986217976090009735360657826225635675173119004460267214161104074575324343148543617676786473939325535948590952886066465540741568837917980744721170594242895657177875581114157575882455212009508411037330451413175506562081443615699599149892132028324345710827434433811337409032669029811683524676625090596273065672770674555944880089481841444211767228387984821525628192770022834727217972073950871382324108751475874814461137777603725536776874407216385328842339403097993643400368808687667734952239667540583383903470279330268732596362628399244810649977815456955792059894481339779958343108496506001195535818089602918985958044697735065296560231079996416367698460589576314465597069411685146426094073112317419915161490797055958378442698634570790134116879968004518555595157832088571151202328867375662551006319704335634931786941903547862508250672444388952373481947889411195974607501623503892036377140381014021889092816015035100713680026166955218114950536558502272569219513089932223726586013252404797178567079016855101974768543248458350486085039819803118852464346407103835107124398908256978735588698832144729987489940015415090476335811644796130638361713838150252505140750757348386352415359376824854750626583631528563251112910078827710678440627788602477123006129568879923536210150872841260765596137506239872036302591361913070055740842542646438782908313802455778283685425675571857581245531183883079394767438313463813669620953745584487224536928373758308938054762117123804640174527494141206247468424529275577418451631795574713826462746490480426032421160206978363284933633671444677177637491966993459073878281228605576279124408743758370568021490753162012180124591352989739856203500757743767283928107661032189035385892907740946275563743498779665786089388273428786580284507892590325951122714385805876072460884341341005943697070342980827556721428900081648772759335467847407855655036929652261516253319727374650609006637166763007137218705650718649176461205928566066199416566441529824306702935324653414991843064690013894174885859323238539487141499678555958210162011659274855985872483806656835176979458100447738859844891614731479244796930578613909922724103161233089299637935598639524257657465308332420297603541576688589543218635802919258897555289497615613938483278739199235292363748015169234398523550596371749642712834876858279386150634018154001444687470494264068962183059655357791258224172561148153338686296061666151699548653003790505825128443779072266756741523854497548407773912856904555718105140152685884201832953752494460751440510536719670905499137595595009073385845186274827347241253457286938423109108557450702488060333247371956418539010284809907668803438198005112052790178820732627911945099649892954598791070324026538464511785572434184442999684097391921304438903935415234190975215561855436757915684850001168869878347923326742504539239029281351209330108649114189645853236281907551590228944177929956156349673964851189885654276482828007541782461455203616166008549435916845817654047610184856012457383498402485249385471780390609396088183033419493893552139457401933323637845538330969924334511143820972127476859599468379238237085224610799866034667851142450289529625985997207266602984005867508163216110381964138912354082620336581313095882508459191642155005487826184778494845783237061537453161540028760066366202287195134616040436983703630439655338968892981870397922627676711755552642790669392232567783862043709298510972038320079880316907389301323457029902938380409373250583731844973980314650522667407850801913025201664292191074665643472440720306099955785065837764823595138124599061454057515729784919298611645553855025986821767451546846889083369614121628763548139594577637598663916821187769386259738959160691151627068895009413602391205415533093013303770877765858089732909888367994958148019202610364660841149189209242119550313059750552018792321875970217557632138253340439884149105792308208617849518545412960604099310758256294984580948868022772491856682978947513925350550405531776906653661682452894705414936268253066012619301898197484057022000056453471077130478259515491754139410727784824857625443348404580783794474794352741924017776849266020455323873547033904027479413743419240919895473668233390225658535079076888022650504613159155057366478790774058713086330965393982444694867205397748884052083821882447824874176953136274021239026959035250358102440190284282856708857095186370020517265639304396507579811245144048632174815147073577529961421449521107896740141593059258716703629814842936214666030677414249964918203753133245893056820388136141879779717191689581501669189830190077051419268127758919374833389978996955591294595934646918217428676348944921115287007067940986820506297342741793940501755755517674511500148815262911124769686481746093133497024166224558026232459725465542224749919862863594457979413772016456741344302968189167157242604862905072948685486239985215261691028316470705980110885981924420899379256978858440933082743486082845155512261367463253397414523405070441495036414162476189994209302966857722123152482046110701135484283641617066768383592815580925391592857449763940532307401568577280263936003633872471482294370557434337672188146880281754597065957047380501019184625632596843543060095329889467706716305928500144375515319648480694565170935781830403799453631711428476467184330889670805090114789797006104210717207017425971419619473604969699016149492606999795769617423976653008019592190400145654248962541532950019949468857620727738440106002268934740676284262294274578855997329682967525265570840752668087859193365177988396797124777314036760996278166690688503994803569395671971481321296667834464990148043524374649659953562476445445305653681240417444170556186401378546238176605118510138204947319816516740693420764811958426521540923039905797109768928863040201675666227749002900500043333334197761364214898532841506342541697787278372813566337778720124592521864067491379497765963751815731733000081842539514106366881079990434208578126680395157006950796333601747364100674195026441148957935472311528658538569247332666988587526770547536701564526991527925328439210148354775970476046973687126424187842990771051966326080881251888860384849111506007105254971003404299601995789140398410347719525594426239795236881331984555336819098128191918630393382726490542259936271249022832037957266596035533186475246376653099952882331959175537604572215716008021637610502772390092944909700267363377336781673690117948101732141199763248790113224471547264481160297762560525006490630843143011003179196538717629741097227239361513962837827212849571037750240475278360340233077881722927035318865478495391793507176530185927387376983503618287743281148712949032395612916732496357532264307719330035136224679750129852173797494317773297465670686855995544678208874705106231732762480522829928426616461386047611156511862600989071521845608807689965853204159263710546579427926891220485438223928923068826062935640881477626419776509743133591347351149420296427810077750533795715214274993931194298311303390843918070795776524603174140463081837652286057688131163769110551070889048508060135221667310945791351017275041981411562416272911847936414694163714451827835667663438361935503599780933554388641952243376737593740267411557279434854773067881532561026943742274474913993708669830695214099617768616242310631722494935659858212966872970747407923135906329957345173449783191585466430703408595201911228701857834099397850565713588452223215128337089778867726992923534061854904883218039804172357369044832058752551494290618690453765691335248019816506906916830395492298418232176910741421537425074201420310240477302216640271365525416790243584906391168028616599252142261304808934452213247961872599155901526018017177570307883077157102427202893458424418290738972930148231890547255713087275379986925265340431533424398340469019232047387450012742688577188493567888263519157768672415813992999696690972127713719886895717972921598910755177631305067242384978540600008888939265531891066748649756365408242527188089110730438594610472351777911130680345574333386311342239763892398671378654004084245830786936812481454227143066817028400306722360206502033558382796877311606281927596375583579319790747661343612231838253525312098625819709569411218973693370680713192368305792621587330984192428704126252376974324809417402424851452332805430977383635603241595204584936493975402294782206762257733679669622428650710016530608091193549352358792457898456477862608768012971415554929774009053971716776305170840956925339272774496185240904550789850896237999054088568900785083452788434767151214789368529980365681567842988241049399670180427414414551645386794680352307893343978003717414417187633591780204827618079217647857648588331869037826725497413901155328955474056884817836976637844139777499590049763790674113812931185629259235703049336244201313787608961705090734873048612877209505554886602277003734545246383020627527979600885299861625104347560571633881967045379824002985014516457868877384371992834665196182634303361072368137610248044214294800252923679826434126664926665356731421774502037135773541856670298702504421330716064499825942690862135655708439066724443653711752339095913496449687801284677796892992173955802165364445897712726815344317030171148035100196312524105729927777031724930763055176601224850412887705457478932647869065046576376410834041890513126523373677941404825732595785371267293429588340613780220027987850399331625134179634109410345495381221112452657609698899047782991192193710929443069042726417639347781498094067171949354382347928337973225943258474546220788801937164628164125325181857977795204984005609204889601340229407001031890009719094651508087909703625174640740195949360038175851394349967784277706097390470501844967186608171961515690700945486710801449949566599230540188020202832009141245572026666937665238553716758692071690116374036486804664290050863265306786120412228700481368135176959173201902920401298080154346333905253246460539721922964895735958202472366326356031257726089754825084188898107912031655427679145859084376511040272818490786489155334053860643627608755679750732811756840961729732431784494074376983653718483991216338555619301423382982468861273886610405027782018012885229853104487589463583090720369930283506007898511986296585463718535310481851429192627142529807530184051712216394119779145207265918460867432341660701655484519656556038407641353011739555625510113450085207187001762120802062916524523407279297045880370984261695093739591700882287472107387646410362270347811670233561803173030667192710035719337560741982069082416094943983920124453286864732135913246073969663253738137745995912340376444546767626037997966084015157109976327281061381719450055632043801025109921889361342716006507651670272140407731388051629812086544220102772654204180528233334824837128542261697713858766335217001813273600763381691673506093220549269413338006722455347213411397169555483802984983694716563156224772926466448046029781308354292751021926094323480130426203800640250900153719638910279704494303917794308753509680736909445915165510354054295855301030555520372908568862977842594914761366600449310913720506272231737866751851102483440830701071419308032975667341963949751126811551689289528083256515634667625995531436483679467672719350811016450235236134644676183330679858512826935295121184280267028635192530103964306202385500048010974206396511902458446151527223327131007553193279179893216246465637536900942755037731667669337898727636783508059226630005000902422737934351863663039111468235875422086318694795262264674195774896405295933997122660444420747671399360684586533877061922060350515941464798711926341374406584401963139615236161306564921511612262284571039558012491379522805750091586346531214978797716598302061040288670155560779125623780371887352139104827088897368745226148183620462420914732227155313878437785392846483567692944639694104938695273301217560211087061766220657282743011379090444754091697036337131310027896910549181363383651877785925173917659310608164977837323926628648921185826696545854633652295127724085158720474483432962443668661190074072968368450480358152105784314689401863205050843691299540463415912120359616403444113995984301457607329923993456623913412872997847167050856688410290453425245214319614811075739680927798602635518892437250336129480204809588135443472389459200797365364462671682814022871601335243584280010179204275615804849328274648183483207406918456214159017878019092199682893622034501523296044891848432538260835558431212773057951248663453131582350304861039777706551536290126982402361302905850581271603569088574110625273021994215066074929057708117222266096873276956048199794396239927443855413813747454629430915784516955131186709263399474227225994305378080045378739528416620971995162277797641507180034564910832750793733433465845720444478732350041641357136783280291557731591725985677459910688474957627717945798503717333750792577116506423062858705773356447700297563650782679733267892161803204951732662640941932160274685697112583793228644067824854778923846079031779151586708150003789751492765288347496173269491272234960760437330590802961744789173952613969630058913821825647791735891174346915279289042655220320991417587083628990000512188737595578769390570822428010487810995836418167176429465929565463272031457535216676139921305055496321783058686761559016908211948405106473914129835605817681015282914750792778295243684344177679247248370199053107448716771601372878846040942561595644540768558309356525535909147123470518669840209742124105115535566862915714782978289872624143254647699101342200766873911875741676721066275500897068878188489591078381740481323452327374832867334447922570383128837551831084083272995447417920069413696214998060351791255701351856332725697183443797692195445049987121395641741497615088875126931339083215872719114073533722308726790665142849230582720682433415671062467568766048910505878256269504787591180006498915552891917599714436322771064133322524058826428885431808666587145935650373711046963662012158933393885706625121008406683995420937060343700211027928359862266901861106935959676099231034277546080421530551052950186807930887855452024015003172535753418203914415084064146231804908685891676997140339958561362769473029453500306334946886998125237234235629264806118246751954885712973831200941022031114293305329701359714363067549485118024950269721020878029722111835948033252036463736120448657908789275618024405685146613448005313391467798412351697176118503361033790829538016481624523162196425527037235602535961199096032098320606774364411593857694676309808927927288247953213222948395896690349122123275953175954382946466961915349930542866565181012363612072820373159159665926415722261907651570919690655074926186887781651045476435155964180009896340757394968895156381664518640559908440695841981911974924752232209903645746162361428879930988076217725120275243744987672475734880691876881187271348606463499079202493025278640056099147669080089102617677932704681093580624009938564461680983902828990192199487729926479861804945592171760567282925813311830926058391342521615281492013376398869197619131172752848893065443381581335421987470515511631686963445033120097192301498915548882887147878974139471308756543150706508029673214379496944157681251187279628966726126484105681659422114919338479761400314868986127906196187798289989963585230050290767689143315065256347625113009798350922648208658579003331541739403048698556689432504276337051084192516058758365869804410471911486056084296870357104122703330117296453758496481172727659673177863120290796538328419072333190060573665233793773749566323372711020013571918038615117428514456852984171099162833914215609373692259628116653060912216703122491104886763860739132201855842707088235907059059886917245099235739199977627032625363629365148913019010703149082473420165090797194317666789190116078780432887289463965547936433740814531263175474808371124205662423154222681674039174217869307696816754717114814815728121852994946010158309369349907033139922966653127426571907484042628517806729963858400309768691305371204645532972430607630389789471432363616743095342006074526242268713253396152888791160778911797100755419098263343063622470078867884911401412045268343739321946791411829965787265223188890583844250714469038516784787544787061129442570966404398646211258467783841425778629560119603068847063538408887716612899323080418304689626757724522734006807168534865448180247747575001307141131671537775711334495887446153972713114811349667680772157344251055857382997922066453993529537022319559987279269780141696323330872195265006885728437334643252041379746442845201978052090899094452591179791987391899239830556257520055653134149774672411874522956668104468608651917582323086599953859805536516374520330586873542935562641863465218109137380513734502340184400756592499545662839180068103859962908348228683427971306518413222927316359694563154535821102877878441271553705793256651034214234014654323245583965719515756328104415120117952535648842075481660866309108905931095741447832497924181294218390349702147968009357276708232658167844923494907547983988596204072313676814337562068773789404952471092426187919827313851626561176235810511587404555327600432631261929344901776458527142828821071533504977062862758426069461764960803071014461530667107427520697711507344839719606526353396961953634993911024711249544528232708992944567516998343675350121376165891188013691982402769680896066051030218423327459185129931916989155697995235541737055039239354545829491396626111268687552394456081893892057025049144551805891464333772590928676715330849758450582969237217028416407335254103488562024947044119953744052014706081987943509602279544044019947945739990191390576691944484366079143221531362580977393990419113416948474072990840476244491978722209898242726658267943662610252462652641933912895320914929654285589832063731841865477117672488456913990300999637447734455477383032345460757880796954741279374859503966398351173019765132371077933022605952275607816897986785054932058538572666908624248760746869955933968317628874059583031421248952117667851862160803404189631418524404560297084634648403131493408653981476495871027751691249156360146923018545125242777055925820072563019286819227759973830620188150760172527413971846405049857987068641305959219647478993507492000454640649706566542093069445075589084835614745656297213820383211304880772427643333368069576369606197520313873433091784774231735257517973822387306652727626695501566975849216805315148499835813218356477779477977098593422088863020553250320559141319029848710526069970243232777982644958927565866707097834715593194120954805036709106278991645356447213065613641117360303453966990948191428215393887427599600997998813272446391555692709918108002816130947328325329741290232773529848229766346928548475133484821712518664345103362893642658001613550222583451748543852009825674442395770146305572040411538125007595086893579485378136701715048918576788492807628201830856522400711774038602728113734290031083039043920143700403195356985151418910603152983611926980653064284650616365973969442281841953428327835646843907782896616125297473444057620823817939993463727775954079447756738604376505462325726526194511343339758285418164693818705365205655421905664588643860791280622190926069318018624600511569821899338996415461861419657093170184881775235697429189348325145270146075978398318509107690903711553259940722122988242981342422147562251843695813210334084216107143946024883633293652718668451049395465603615862373506171659066394853175076558738543798884270814599654696394738362576074325620748558917689138304846161933152292885549612075543075553721725409901561446514632103081770930882162921151235098155676447186497011105628951594498407015387375067820183123117274883920706707751333579238339184355409755637451517410780234900614297127810432742834771350611444006744635056905958788562864227143752465937416641411285655584194722079124473622710575672893805564558224950273695358196546123097337996259108717604068532967848827979464775867946121581055878710163676664547877567904120385339588579910295025869465481353312762374150265802511974745465081676698284332454567057868271197735721927874121875106104144248602676095210796955021968213704756293236942884855506726662393296374173863100184774461816276848735626327230433654237283126338593691588558862080596498139855984550527146745064114035482839994936377645072522338902204944317548208084210598407401545351960008846951762297109035830390901707468680825900985385816687735866004327255738365534089153910375311839057561284723967962620219315538886394261604007601300505489039077242179098611807051526047850481085552942994185150124579317312450525091585473837278990656458758718700846702069100568107162076649928983470561706275735241060214907250940506275226561195013226242705072678486378956146614362699848208216943598890416846156860570202361002414021774837027785281595109377133772081279016076412852166637469818035936225422145096693595938411235161663443999246562233502780283192350518433072600301925742330640341957744432360216026710581479021339483330425904843798126845347910999559312799944444959148190398631689298227841824135886168888474363105375400347091339219698378794224981168679822494832152922878096487865572126601413588721391696535077778501609075578712033705028288320743367164112285470193409624128972833855572628153636191055528288687063096599452640672586297518307042195775183023198470842077326081608178663713543263943788970042499276258611833677713327484906477178568400949787639383923998228766680011159858989769292577166826261485287141849054267465080213766079712561092745167540421883970420112719876437966495208691482015821888872464408743026055580756915598436381903975589087240361826419677114254409609885675772826909671851570229344253153242594020524344998896580806067685304565252426094427478615999651565004366654000263718450604211340707386893683599808565968785454439962297241935478248293673349901476118574485613596619974882835193589352546029568350312282950092618371086765167752146243580078340187615241148495077079664191272977662542700828853247401991689120150284223954631314142733624418446965039667785893361286281642916165623887151821262209698505341505337698169552141593070186613380849898266553275543568739458783084967409846286454714499076060353666768844555530385020467208863361450789827113532075769698965085768740353954137187497106556055043148924263314060224377559975540775168753011380919990807456384979108535843060809390621277953614711280345667709435653983431327831883180046031151822479578510590073106269611106956051650036022771076663854479429633848299909206005659114159667492155347251599757182775149065819583498937281406651463117770919179986407541607588680022092655878750417829567227397290210819856781223964026497990380915538261809310361843337519931698704257242210530548293712208474302077047548813772879185016738116350712614853786067672934400119136932477900346491368857260447337256169954529186075521560133189924387664618753507443848381272355587133252765534082777837339047194343726687530747456122727930461675625100516477518120248516833584158509190575649646107088238801430872915894048516413976142134289520121711363650652943780713217506654776974483419367142441556275541742983006697425055036108031204886883183139900440044476889490353495093854172738086345365794148587539507736250473985323129093377307235415330431424588980011553734465145353850724520768021386133638801604932574789309157673095582334144994634015123302130172567483052636624121039331052024746445394097067605723614706841639704034157110610520843919106626664657275166793043315257549149728750286715586202211513999199201661123517723841180863692504246342132592192123017245446000018907291551623196332721753329533614296454375352230979551795274768677710121420418368428900715948712221843917584003163962677044626771728551125253478309403023289139496060016490512557787562637953150576131064328833495240977428413131490524507384568568171033749658793945796298935673587530742069868914317026756319617619885839942578690882347979952492590846501966921276951615477626051007055585999085146497174959145899385961099073091633024466405075362033779385046589267617816074899157202371770863279199317583291540166936941517989888374087923085748470399024793515059506252702499017347623116995047875671163248065743794232068543456459459166296874169942957844826701121417021801169113093190940354597312172968788478886040083461805588432685358537377627670553572652072501154608216002721752624048851893937355841850149248983454453506840901882921011706870544072190945778111429027084035203892324716312725850093466672792548868131627534894676390562007349108160662601856833374365493694397457602156265238627240039699856083117778713061242237496863444598597327198538630476918828090737768061899083997650097529435185863664533793076827807794599242408145873588711285185426803972428077531919483406159794082557797717728404585731359217984783019158734569829869948999273612006721223645547131405843940540328386376719789850540051515111839042632272636467220736362459382580641902423201067938651529291374145521005320112091023814086317498679322656409600082408405997182681975271069755162946653256228720029540679562056179330027903789275478119709217688458661872822237260852513388319262530286045151821059763370431099531833306207563952861418458482891796743389036004908666540965323155820510002266503320269001757245231006325110002961926272112684021491270511113858821265040818268346098603436444643994894890919115760268070439079598946387105043817768316346439537529359524812794653807718063104837066663257008448365553721492750926483541330030680998619902403353754736331219590972714274703194650575324938276921756237021214545041130544004801148963275722479097507361412860922217702469577794511512168065898911389995874078511616279845205426044051026139255976652305746064325470548232560947636199732996184177046410892233853035422812517242529107416942473034349673415674459969153839650743396379840222820227405716524404415489752852889691628515976144549615921276534888459942230849420576208452021137551812791864248072767233314483268475346861423186416029934280937415776136437160183583743741380766967970841952117984882910995350245696454399658912343565879330966809707325052392197852397141501583616441505912739991225157089581357151162093328700399951678841443508439142330595868591256380324524616795602594202455996681123035511953773692717692272134608447845650494192196498880716021769057925757559653901180133677643561996369012527822753762590773077947573207958727626078766727625815204164459654032679920348926760156765098860374394199570155925466824175621596497652845590689506859865464160917594378127031365315367263649053575715998467030643658044613755197141022057739166748138035852267595828518181221449026317114172787915559859461426541394906243623060382088230884061224856904730882905792986701881468782886692048464286067590289093298807903709184217127418643888270904798256624396580511558724465843001736050842798804567932883607131050762107759529850516271034202025697408805506319101859669644535405533533765055580884830001362800448897956965106928991023209315429288130954036658052382055705593572396825081926156899196259477083649947489812632951424402429255865732193850641703375345028132911212968051295483608853472194640214538575979441428177012871812691828484457635830868992359670742374518755208190107588949977044963406228110560438671479851629147029554353068810274186243763731510482028526526540573225276969555293406053567741559240085427192471199328906954869062816605338021244801461994488371558676370793200474448081672296773026688433529515490122015661569869259760329111374541951321515146128691915576963555620971271655266537133747181828959189763378010943403172350746220736179032094839146133439243733019483504549034744599361991775992863001501294144414844928903241605888945190756005366643177317926017109403886214104075368967244156693472074767174232608237066710934392917313923125570407927632464926506905493910933367319504562690784261692928575722170324108555637483822134844546225634625067486497779243497596053985435110109624263749653436964836165616171204216339542977638147163525799439404450422692199109623613128851761484194136957412429619394217586714324621787568671153116492500258232603029185256856619836431375496039235543428060435224645837767331765005315176369194054418688205060394095743448196033183904168476779770024491060847280964869723454472030710849290581915011572953502065026589952074205029434606670580724452347906475199518417546711879904722763169504195427429440667543580928255849517852447018404877903121292085380700005937737247820659755618186334244002341824871722915280331317400681692921814181436522372067819261500417166778200807699343590746347620129753639316512649659909467379451388323653480670017335231904745881434715386831838842233225308719869445620322360925230272107736866885667997817971883165087859741481723946417311859795050120958690920350332022240882848462962503223054688465135309139238504942011444432671027189201998167036344608719044685581826730612553313881939553191763036202583721362437185344401426369489945370694141582107096776179952898901419515506924320666172358435408733907589203716133946678638387131099360659465358041754616489650504506430399113009283435313770466431003510201842878438471996304992775320375869262351079564046218001382961924728983919318032128789352426862241030593153386366234832721020151177301016505619682365966109720367204794854132812516277405150942208055731477518867366328368785035773086477928602630649663830066317272162668861335238689439218307774621027411053803548020331208649885670033742214692571040440523963197527471271985608016931503912410697154598692769281521981804486878438948015065107564809744253869575123559598180615775069580001218381896477385672459195374403799709148706317533237407798813283076487847827033821634202851086836641345543644226990514293137408286162154552723666087581387289733490861094071762153668214520029514379631443683167792527002969308799545453804611324364821480975693497903178973730529619815905112752659098628524240321035924060786896342134031948054999069209848966907828421681254992298182607118557803077947248983370285695950429209924415461194353519917567221608166262456984633183699768009962963214051077384630007267318523271138747198177481332176548541322017025413986525314579196708090698668505700564608251329233071068521866610182581714413974423462155098057653312368959654925771695927462487272722162451976668283304055136776552641694795727203193670048611166715668773105846049902011012659563062415032756502758678815780337504115420899555645875252799736358205469529604016596500884961435346976572830234160611531935862147096314932257865821942691637299688629781597604022117775830632573363335215879945108816680085132126879000142114940920180139736698149034536800751335252307466550883088646549588633360675314178647733739370367907760901660904416950779413823421482624643613720584553330693991161393568272607391483044626074292223371695949645067951446584125483792364559805280492602348386307609838982298018482425644978702757186057536539321766602414959136463410429991375256285592855610811045918833707951131112393898772706275713452574948724037671247546945690248210361699135097882672548894594170846406523676647351201222970655480949032266760100182733949474058040112162546689522138339118659856917114581220964667884452987191977915579737799345733524001414866165318705526904469303171495692848279522517844866579907669541426603443515500614760579414448937554097046664372401741456594335562077298391167978992466528399261512438682190671808642786369246401713881334636713648839955207437400924538373631673618352148051733593961852737187086587558729672826967998269334203847377838720146454489883941771320219621297543178651221360143632107628595252951424215192589862795849305328903461918001627750373979311440895267068596449807003583590717268954219610392279780744704026212971700417298467186151164673617594107937740337469242028709964282748780974316806961720553279352952113347685205507803048019609842019033826119087002811678722571318867458608758737128588592691353828037360190698042699176719311427174402482082550925942548281566524701672623319849926371622417410711994820498359467037430308115511990269210428214744475396870970281343730380878954697540358114031625798590852648041062130177586711102723744987841887974165434513306483624321338597196287827002994609003051248576183995588438733963091147043076852441018576278051704558815711980378145156283910259096790759304175496712207459685238240528927943953914538478341908632655154107269601089823484550719824695598914318379031466267803490551630473304871671062416650184184564429742239978536779157433331760947888098959218905792997236970699782240994885093325528835469294755043075858697512583365075978746005100529463949030964460324904891061145276884987893823398701648204417857105970758506939290718993865903379677085149831248686549709968123201115060132604814866249642536481491405744731874683554641961214720701090410987182056977585200448012740628958303094941468906907281677113935126616756277202258109833043033040719274263403107457890219304618159111522252524043495230049441945986024389216686629420053035218536420514544950808277520932848978630098939979958982043405911035505980721482578061980383207894950303218699586535616733152042905725711594648121590667648948821227058653328993258490204373935371196301703068778752395101970026876315137961320238005265871755216780861606451319026177004465177184118265450887107486158169169486873866784010213246769531754042075510379032017496468568493977164907660680773525617135872688484824490631305245780976548330051605467314513085080024535098865308155270088736528551253999275483707664527447333661805375192861119289610762595501894131255235021488769090918807640497378199171191878463468790520292690673112939679504429726306553787192806381129779101323301448661582794044316371314479078578013998090094089328794275830703765173845433683156055230094142546791767167782513578700282155561285747979972302900562546523424189998643239800084433807125254374547664652347167060832813499651698914892423281972764331942125973195834978195938401536239541734195946520412620501259645012813098954720062913576061689925090190420603396880474424855897497463132017397378412483720329704888050443097101856610717898760367324703802315895847490778700978857959966300325906520400418025970347852847884204510223735350331889849241706822124790818044826754296427241041516135661989236226082205585022770568867543200300148948507434235099360096462831167129873931910133720844180816086611712709054201624639956459847963630553108387225847490483195765460472407216039947993513487127042039160334370891324370801527362663410151019645230643887570435228071261864133848448000122413330406825914068540423085644729519004190776974368122097381878669265189647553886060303891462219347817111402866753245220177783929730285267139759607748965986673333268265239894956075246501254100303827137344122146811949439165954589747811621837291406020830396596442570242350110758863664451729345725927177624159339571325522870372261781006742672638566643963825387586868482894487998218501430150770322966301351526910511897190473618275477071571617207006838848021554404864454556377061178675870204296946128568133157758956515402656253486590789068876489138811353162992865907322409452685373970797859139395207546561849822203080815815520898192112697414368647591753521744231003945913387566578614427119184478389805876806996345908460637712763452694875599718290919018139731775629909357277843995419825864965311466767574670342823059958404800502780947922161556936899132131699112196631054972868645873780378437450126856681947143526043413777242527180687520292902622420731291410309489470657681757397703303097081730444274640607509517943100783959304752012097236608105214429702000946037650821357343852950098489389462524479026716183277449680121248491842893278555339036780676183308793313533007369745787728776787349592918826491779735791356786902488158647604058338235194268170422852746787599031935450299153688735702006859121343220494193454045739594966125386127114479355717551914470806332666981526650659545188703212736960269261587547910633456908004713832673939674326491594035348795051292264992850343319251688069647163622894594606395111353187972297525698466563324122354376431728250817130622301044212642345375277971453298731247083160740728038735569623424717632312896197204746847435666023223394760501938306380857853068129959243210541677507593546219177064124538905870498084894074862707987976051815077600935392524401809582781474973509034248619552545168401205882269931618114989422018300473099745953547777430862561497142225420307601890118048371585434645797058964544276590111171484958474975022253956106963903295765744523217004681654965163256589208157004786896297656633214513656083273929155958695228989095728068061155242109383190473897538577212288072605226954428271215743302632789569605557354159856047514832808684639301935997622656133047437814420491597476762041367846710464206706992338277271559447228833412853822502652185397266336353979334633503310927053440676905004657177900535438259111142031347210309006416370468908863797993075544920437759653905423319640114929660285863432335245484031658608369835956933006544319257074140808171779785977564596819644592826944606696781552915694848259304585726439956615794291203569281483873056633970415430443030478775601286361897151093373727194525743783954635172480897649417737208583978853040139198887285418492515492728278267087632585910827006076740407304245102066489524243644501137548272871595925761922930451757867159976988626899118747796691867244255054064266558302875184344332344132202081974426387931651991251707363253001593897431757726164278333672026820617348311205551797113321387444015392836959674406877901432002995363345216205740828442732242857588958600188140948814151468355018873198359630648125280417065392704647959634590814936740364403535182519834479023854460169108794928786585805764896776768302546169040203833009680113167406831850087310739930416037992920196942899856462569453058962266496286043878407667916913100184758047253651595192930544126590552528332005671054653554744856480391749967450136378360646863950186092756005141042858888458731735200003240890497853926870506448977765292572890032050459570298107657275112343724779601458475312290858959396292380463298565411538498997777209379458610303656705784249929104427655688077580733419045582075343198753541879969292798333976503625093037251472703841356303613444573202584066174429630648213899147929227198561346110653489465176115134296098502995427538205263424272007077364546633147179245272543410917292986049093670330705679310712941894494057681003442337732977712785558647419253014573993515685701961670668085914266279798021161061257029240000542258502134878257503909350743086395899920578555796888710103578565298039402778435717741862781192640568472804792842372043447925999302870268291393491586403256793522082414015282373776711543113797971422595819656757087359221568152846814166549561668640103668705831676246595166144409987049315295199396950674371910121461834953854609735472397249335935681115771776671824721288192067229879878009795852675454142132051754720959584437682617979347281048036621219526804561024980037482049948191995040313521154982940719058693548012391588794723243977475731428330950114446917316779125960272075146801869811920780522412714019512065965269303578450531672951391114587213286551008309638695881870308057375898005091053483464448564655088977640836059723190760946407501522145805485438062980529122326200232925300521654174779333189930653008309059458518948801014551925280144359194198251680508438115783667090273085052336333237160710942702335130925648105076312238343647279807230986710008226028681254265995972326655563882481069069045240944790995402550387948066918953636305480802656657820824322397345237287744559877366356017766584108600855611249766686057448203539214281290007386153869790266495392226850652214302498790026087004295720801294809294150571188291788758877542938356700601885363157125232259863768179766837828389110268956063817557755935592263993902388063066024327114380856620725461255746695305280446153182389487834186947091555945692131022258238557682600517934532573990687879503643877161289889707585369324534530247953530282033624964058770371315074510367302473408290672441203507404433536299286253760945569003210661562901201142214224826825926033386513560574990187268200465096094218721627952215262928845423469495862491978357901949772081499774889408170545733517893935919352341693190809448832285801043712448073006362578057932067535637435026117387679433207624189174986686051459926820892987957604652130510967109745290424985202834051458117047119648944564147409898057741887280748616653718706293312588794682508483306947220625922286520352220407726394907949258297519283670371439060061505720129788728880432600068852847149277219490283865825085228214238817276680019088431096655222434452150213532794824834673723865070183296378028376729458213013165513149395169012898491810019524836610443006341918953576044270196249387837226688495022223650829055009613239280535051337371618403043572883524708258223542105624380928322296265032727004032130197138297346191402393215147645963341242882059598214972145613145329135344042919719936513568088851056921505024301787916800848992552704561188088254410945715229514508360443759632782581046113886964570695879421035589000593275168016970921088053975137217100444772348214638576543559147515805314223573445362892094361494920404928650569602065468310542851962812656004545025046072041248108649129513409085982869263191477891125070528632345814557055888029286026184404417917573031207125577354740035786050024292705491618830583177747740994736364979012527719982888472267152823201450706810008023729022579302066210388955667282390817494458977483024415187431533790536609488144780499401782031044804919389500075955599507025942221814294922379397732873791963952837032610834064660987058691359926761651997468659507483813815322029087777639879878937301792565480481605751317283057184380862711734911171698514364960702531570877934002667183894186299079005377447943227708629093255849799239368696736637974132628566473470818842911851228100372774494110760017345751262771538060481456269052344869904928312688373626414728624767201662844276192764546306106265450617643716702957012197430062274300141679854297872089492484048454671523800567371529437326555971906351792196188705652198453883297909921223207500070247763787535448833603911960203880154372739444994359508135043491032937537609595363657813250150629209120747299636756506997650006635512939765474072996876764052224275298895112991143411411758399359582813331629028635242050875195305176244814366958482170919443752334743672041422865545911865375030472613489327361420816670982516013687933512167789642665072653972355675064484048725650735780728663144138547038273968659287557105567469655775287023848704559835669113243870390019001196773990541633061124195835590951725484813585232027057786894808589756014916559723708082334655728141513765464465919784317485563507751765063993077107342937368131949686594894415823226213192216564695835206884628739506145946915834401824279799684341808501289291104899192497912281220475186168742289071276570150295551487834659763548924959485198110382459840230596116051082987559612956196704629748090130497489238466260182933646204698455858399092548751194334992401812592237939388115319624144306533824469749535103104512637853045304927157094790012545193020368427994963090488524475881569306230330042820094188257249644367140346689912553387333483563325814925554862889698499743542182185946088217492296080725490374422622122066089029255065113730178312735964588215842264514596336088721812548967275300457488937185815232148046864910587058892338876382372965547614778380326980661226778067651300915459392431689757959828098251489180162295916954249113319213377408867627483299060172484854628430711388241383451364465669784723815542587924051568063856412312399658724890042140959804066494362663569926241134867518060269029315670400090432790605297717009563137645494539495591682854186442002827228767633851516396007923233514304837700073089533838052474190995408964204349453360296500698307869365018825622400137968665622436966740334329572441980222918663124028112254219317075454189551312894254464721341539108651135265470065604654961848183103745437521313950170777152005693164440178974539678310467588056356341615079813539005245375235129312171459776057616289938639632103439722392795476037263714527801555828842710064398662262936002304034271895087335949131379173626342013269389720668109649951772167842499735293565641593554376651328454590922204494176173593373820427682505536324433475705402816903461766803335449155121473350326794402045419933629304526529975610982644123379506127417584303656774083853404760115593463422712328612584396072073942421984699541274437241474426639199131671987542587352687610335822491919248555753275353408178978755571613950863898616000457668529073625451357224535745068079741471395907931553549789266161843837583761440536166784463873613010818000200411938488001030670053727427183745643404399991233817798531766876267372785963884492077132817402036020281212905234595952478582947287655593993841750968138044756140749952355930581773060122998056095719202693738230839160618904033191780455697383660795689668007259730420595792978056168161648279183414710075585471103981708700451960639299469985068075346927823881596469810558390889442521349222469846912245757243818101992225390399350907442055722558078581917214343535652226248594433948273817967555423027057014043777522375880776511474023465788007510740252008859595160136471672999475885986060338342639488358976816908071274293438355377724978720452381099303791403910503816664081388138650068954658283201653918284416859219145253760990543419555061937182099668350347116050723150949798898697706278287606694499236179353413602921940755012166078994152256243806591676756416610079874869411047869662291614376514282686409187219203413384918248022168322827061246773946225632517327983962659631259625311209275051458538309245223057971092604540384434043283840212702010149875502527949666761814654465316073710219315218047061478239152101133969146079665106005182219697674645820556873533484915295016860404765099549536655315697528377168292270920832888581467994966031271546927158555294340802220168303677557829312592984922627553819643451013521985364887763483799783227206134519848887219559728679061038249238341003029661304767190143550889528872224469995387946583349885175800882407956984591550844100183647615400830224028964844946692582903753119214181050379525207853720832029668375460741256765072937085772892124482345017268392208143793373946342475268564940903922500192765788602556414704989714348490698166021153640429081975849780895003838209096290189476253555670841721514925527578178624488515295368534524683636835980140247928295651699270129723135887805405717175273878062409383710718437299337588758938080414828628501652412702186724092881497697714966201307394531410035012136079588358189021033324401118671461968993669789647626696181018061213368246038355525403511981327847939152004654485018142953532404790673747176985512956744117446524810290985893149702981233308539872256978030388540226974020794792615908369557645100819762264279499346586204397754592499458864501420569237058426403614379511113099392387007015013813864093699596900898209800109282777433930638815589049042578935888261105914603079647302905901048435203019216972250691282593038414258442152800603321547934895816555131970127052571291894570350595400627120375172169563406583620772570722615333584124650596189987154270093707001589680607608874838325992669249966792778954010019956130219079422584107628592185114935748490925539101052954397072605018784491381318029969030080481816526912100514068586876250029187847338399651665984449153539049885258281673971283344838982766866349061047544866527891963176237792799324014247322265122307763405054828608495817929697134138719206012481140462645180086133714475020231493319685700252991705816011499627380440472393467705158882697669680505782065929637783150788076933718317086269626153512412581059107512169184657835415230774417587030974526076225434619943226686524724011265254018882727284075406313459356330504968820845231971632909704457241130910850999531220892873349887902790175562363387094608376725710543889266101228618887963188209875885809085056680161659536008065801392210272662076531437934859006005564866512375700468966235209369198576336959197408028522733843246787447027853919272908335624244289273453313310114865785671559915027095714474813782806508574759075251358357140134545807245524238640554629352925879241188416589671162306875922150554807249329299496100167222398283434431199485885587786794166521471661319377224276505278122980881503436615804818510611874816383775776094333700529998213344963837173576509855969776262362818247267321403723708280458495595431827193157819941645642590455289075410383386903125190738279874547907482495177798933607026716376073331773965739349552099054519924403124651786083089235598735531366065100632024932750710058490923136625405457657264579884233255265850550335643883367936850262641503209222316113166785448061460841946301228278015978600978974192509894123353284122663474141530020875372034075856134226947313239253771289809272209856696420775308323941072838539640820146739766017955932986836065930569334237126354027648027069523633848954629083307130050194723567773224596910191358938292543333516212301755567644316665275432428277856219879838803171991628107256870953846678491734505118232192044405155626883918488349864489963702162584488582068018482166841175059457348481732559422659117923017873995209464511760733674952809777154659714337586127630041723841118098581172671619185932009470657212711891453858235318387844261228048437764142010323598029089136108507982432594107235421614581088689543841757517133793169906842982768635275951862851016178599546985932868758152377589079534641349467351237206727558146542204764696533002357117657727255105544381365978907611650122442213902181178378581916212337136133712515096917650988337970857387281129130861380983395975801430858741454609595354745957693574921281122087267043032335717018065072809193973917841447402997964124090958948064715843790087353160460371274683332160302088056345745763574997084732443253675908246775898380273586721063354942270188159938702851602083017417389515932603894895934601119860101540780576611350819709912926602519857795610275781778834483520722841754357327252782565368353358740125584982308125716214142546182262064003304554268624052536805677231979022508307073413061165566010609679575761882409334907913668028569096910579307066466678677285190131335599648506850014082549162100717749765116321916631742827406703517358832550591803953305161528491919779474005474843266651860294226840127540182369186731974290922848245309630101835664103401286826964730252024149809803424356475209166759095386019623787756254358565420813659539380712605584262783945299741478950601136381569128723444750395666926640104559827699463977013782144687171143294290846477840659896996068981117070939911655543928273544692554985332654002214102362335160885275462197667922627734187062738701181390843226468281831187197142008735293216491589942731774726343748226588985719481832904756426241173455340187646006299702741907649191187990594551089971409933428968779432096770305651007376726190828108834596983161372292782528570876615701780874267434512101452050099366605587006464654869184133719634395397567304187244310319887358618480358997785314339276200476533772877627635883158398174192796261971490187171791638016839112192065463556928478825315841960649401363629173824788318382240957610224920548293225348776829219684445962295746857755541635272324173079874999529973827351394096851836814068021417879300008375491848438561868443923750286827502078686488968724552610798379966728953873377343212811541409515617665321535913632738994273833152129470525510786905005341281738465608456967036905461844248517238862681209446005558075310564959038508164791766394408848625169126646767604852740098252952377854133248240202855850225894096373535816538270015719778842921340379076216896776498223337911795898332793172714295579194003584680989812370951356590202240064680485127854895446850145598247708293943515586516021543142652053671172516665448059806845775938617335188636587254641491421968216919723577018187052592637228808220322431137211219404356609103934475137520216742005586333022455308149707138587733652616732169948792990066730382690897641127165253507981480502091826017949198275154000339897542444709088441349592585224649917179469810794195923559948735434909612398656315520927776684907688777418918849713541479433823242855235842097218562032034503080488893814271478026943679586587110047958303563906468555035246977556271141408454775742939584967000839898198807615941456794350815724495042235361817493464322729528080552113191853070754808125771269538433985899165214103962347371722152791834405015578299838056808739030441961869465719974131949027383121822791498167062620824798463828734794863551520231785861408602205502316188602040781755378297889131291359439342955321827582544154760401275057298438574835851476594926125810291375214312090300287491980053984557598167139283824013996593142072185798196049387387746576706867546927281495268698092870846645959056755622401457365338569071919691905075687756309158179272849608046658269033573429110962416823570710605482124546047188616908557719786152640444441564050373564460772480016733818269859115433943868498046715149920247745633418502641913907643057993386105340654457446649337598176274484993320088717239081337737550559759904664252055679146833555940291970544299157871321569330058572170495479299756830751766934109132064152260172678633437734130114122111597514966264672068627906050368690677452505807960538686626340901554306027869196562689101019979755298733053335138393165874639664486185554604327499577265597525957766749632940731035926074808115951669073286787049070990372605862029046403092862239021166749914911765356325463996158280287957064281546370207523793749633742037188447516489678199491231458682346006004730992928433114928135419167529855304560508048039222099119911634618592992646069372129366032192550877054369269691831438475745252970353851090544408326706335280388194571918400041609509616647390537554313300482786239609476915253653180021677857321381616446904463302249954535886687038608329302156980918230506611244781484804067555941516844624515567979399065876269790084942149394020504363933565943111632259234747661590361776537924364247379590682653038344354803125986126374962188514947127618062354350093539590359844785833848323324523614673205751485458858404416155759350488240092747356507275938150428523808870499229542119351501899302663117023090425180168430517056093657780626944175274498331191351365397965024268043289188882871021792433979135373924408551944848412987323955579688414262126480540683404566455989151307169985992866482509978083251292956823634141429259073606802513174291085205408543507132595058011271449562975835096599345571205314302891258981376898393849875933158211322271686879939380275741979276403368583509963926638204767184964405748469647431237882989874881515343149908955158334456572256778503009284446010860539587901771761961521307045669262649205643320181303816627232218487332055951675160567218998416851487220320971085503031851060005488055387243028162393339518236098869345081819739234737423951304707957892488532383928279031246595346014011081974906171053193624091922719139156521705706532443587017479751555636343075554373573135024206277438649701694125973632810046091560974408131314620314667614162509759650733445295766816992494071550620553564737835699841741878026387160333029307985534199507844096379556509670583648295088942521487660753027311196897486020939586859205527921812052587900904479032566330680312037516880663151574818206755966832365048377872229216766147749803720654263749369500750017910352309408099525180239071470897133686030795823633106870520051095229406265626740209545845162852294667742173821166837751863830825765254758479437758875227047239384435641866793053842174164746682750425113100579708886243668689868023961608855845964399864184757921930964876619794506862028312328182778214660657395422230046273706288984322013665789618235236074610197330237698282719032897831723648379558611970925713216265779869590928180474889113624264747524484152575361546373180418033355209244139480310466622868532664774269052784113287220247705382204688360763577662659666834044439285449735015495627053643315078013758780701677035648188506355055531571615495537406057781185453561882767903867232985621231560903459493097225414752955746105600606480322749129442456164920574764155621436337083189709222543997373099548270053272302872072921287589876664553240664228442631570372798231624830782102001412655739330097217848151573083482411587262485468564462939303169596093901258898603644997453677250176875432429411356724801346880941823381971618608125038583729548950996656350531009837444121107721691071444286469634386629382804231130081611751582278980005124776145005019394258078808718767880091496641084340877460389570076550480921007341228791189479283056841636232847784919235364119070621738417705805725005829829269531259461966266545327388108580436380591075750632592054960270655589875683539034777304504436555329701689901185216205820224173683370905337395532398113768630839781280154546264624406451887449078885430823431060429399749968310558977091656835609031038492868536872707488000649314216540599025642797392040150436016495539398572399878687533064564251566355531782186119050357190363212771732801445067815740003523844434011477845659525105207334706819695649743781057277704846526732263074319139602142419861007262927814044063160996112115824590200195965530520894412867253806157445110905465159542933849050566345956562972760120677257029190038146277889301498374615617720901945043283163325195034463912360061478076336850622429462787394346120855176221433927625991446224611827116613970494664690106073838400631218567221682908952112413978121996847707111905887000964609515621323207456236457020133823080072764028795033883491382824237161822195898580210853884123668357712235384892619907087104296237763440782052406623789621458247887952569431110206328686152978691255498270761281769016952844453985593271997422807502117799666909128846027697012274909383977764387775894193347031164418662557460700861836152108898282002075522729434302248753551952468138050347350755605630857227132294981642356783985747363748984674954253315469767950215188923974556058293487590477559161949453703451336129652152742603048433349528226482172118748099278734705740448752810801048555727581520109710983115443494174149429878507371686231371139593554743717921638584982557588654979487854880091529573205084680862109630983761329614764967190132116248817631379614040022031839480234292008303099294096996807527762745089912260407584049045971366513059229912381935615758112212903183998225487325760178714832821377011811697840460397278113753346272783071725862860226596932754591102133500758207314614025956105791269691362779218819978278433577059362327826962224806956468494433870335911496419998176181414575718901547720847616088018534659406479129345880944709162092165190262224279723671501028581653555417288994387795170738995833634821973643584217514963049127028234042481354380334124720222700689692101539729756576330461745951068845160634800146555632366056711974839602928279193749452473609956268463385949774118852237307264313011021664481894756495169909741044784333212929451483758420640909765008330063851352748166750253485807145760280012543480339375067239514093704567397492788027939506030755793199780509992580703300829986671424976209701970607992959004072012866560638594725153146509119035286230625587124485117858079883784564151797784155280265739627767648748408857009861477949045581642481483935726177429411806154419081646142251111703333211753077920104892949387329876513093084421361152808243851763083840895962740613213438708829184868389110281388434373346488967948921040948879038336480808991373070189307234350160214843510329409561287234227101722439759946594276894202604737606624680536772434090059082395137170427117020694165548030271016228960288531736336525785640888013308840642922511072354001148478719259786531659040319083307212298678316056504288185048972704145130296436983622705051738649238272128343211572176036213897150113444779976943909293079784960315714782836154497856855948883477260656843957236155044522114593821510521184052685723789584848385792783397143141899516708657487574021040154044327593392452784788236938465483751631614978312755824142512638802144641888034935987930810335956572942496596333649970123596962495172696545239632506000476345934041569720658574101878383158215255173714457276898274167794885859154743741721626353803166421184079952517871686157897174851582240999565273821828798398656040403553329325844078801922622015623201313231526791481205884163922129629969597975464654187644721107028335706952342725666967581766608312712412597202924690406223996280763489147740134273430118373731883620672004308714787771903510069954962536497306580511798452486114992333204330033719580970850063610754516267649625867929382163447230936569948661566963117219586004049636290825355550405978621892983724122148186148885906400319086355707020060230214147062388824433037569469877942205835364214485063221106765673101240622239505597406695771411130830897461500260070255716065803890815985489776764417287642453206291119498540805795081261847757041104534598758575058736371887769627858215317152610739584128697439446896267283067077549048462407353268081540070575481614576392377199576243802001085731692038434279386728936285951116128526749087950588718372866984724655465435037326864953180653635793692707785498149779419033260634605015253875906613439228889939405083084687116607552765954582011989505407803147944033106651205883853205070929001316973606127471279150956097261093834946919340394221822987121838189433114736997609432348608666564644160537826828130219848996005803274975887354741937327776473176826896069457401240924063995034988243996625878620478835464663182887911556364211135953326453928437064104534917528120458220626885739024436290062068646112339117203874963002332139981038352730455654573279486514517426895309448200478444609070690845793723923244972533533567920182786269910248584630616313034371370662387036471358053304660299493361860025473249080764035173592636128013836911281601961074936553154043371855235395394581184426664870549926874493231508664707034659592390296166685752983216054516570040349250934419099041679618046941796897498832246959439697923868407484377867896917856585054953539605577007699156434104423584626333195289755161948445125006956692168573459741058408728081718048249957302433384004639144772321147493793433883515624436434639703812284652160231290763445068612014203163136655331235032295303706254951289809069208627275973935007091518278902182300741754441813288130572389736638108148831067816708219345900438739479530329001722838578261249336777577371403740297347021120620449775125238207493744666899310414054654749683015165806196524672258568255498002637416845291959846390695644416086782724317835886575359149177382345078550011694370700623233761996054041799098438953685645875592939758293433148756674298589897417341841934795771258143328350146028049336430926888140977036269919053535717899362944147602129409720171948250975934643039164602338013783141039971978907793990014919681489305793053757017178253256236588665409223465086209195368989686959147379972436430363528642064645794427223445270997674001110761445727057077010950096499983659202888379907990332761794656417297134016012539810465805645817975760606732151976516152502294119095603477860336743905333654652682863846422341361783323183837037745033261176101660353163470376824992039571777572933377840105512136037338261137930285639530266534858619013852215225480841959531657222472758568869391724779402060700988456617342632620721501812453802303812644811221742632159439921442330250131684971117731919403257419658866359946040390071078550255773395382671970182231349107564983089053939363891595461358658118792764663994132906080404353883656193353644135296290511123414699440522492096869047675107374617193842697953389349258552151920881562864016641327325101370329138236494852917932769299626586195350090968808026917712998195517656204749997979360599855387743356705309498489833107574780736004037573392099768846936326759018831062199840541157289841498504823817314428330969547032353016582719796783150132562006918273974980873060177660450704603439580751390424010158107174476498103245384551019617354795497629218830614191986516689001615367721740951843635753595574653889818501082874107750353271278248146646630157773201485609281373595518539822681819773067878163805623797109396733968160236906411352732433428925298965248211006865780767802492051575475855541515205307931907336556929208355835449222730028475474078390299776054628795510661201315367201328371010132549132958145437114595939058703093912395516317734465249828749498806505930031596154764922200054062713217065273658924706283626962526148063832753023286275318867274805606562128100101928045138129495208477685243588529316345432210417041745168072493189055394016700717247937221326008465669756370849466254027120008123381788962094090402178060039389516082009507080813516031588389620415883077561728763879649139664578130629517869239146682505233858446053602892440038617153458542777774061502955407000103326473127950506366445086347955438295318384449662537624501738476496654419559401946584386174554686046903962831670877805737319461119090134955495689930284992311141747526026371703861695959342815852313715974302676120386478021705282770807725470158309025969087730606736829564756579294905224345580742791947297800303040348587434273419476681333584126529533962371365143802399607978162750447051278932525094974935411531115728707631042616697131895402410793205270290533901759483262649818418848367905291283540182958620610861018757233011547481712834643492757964476482636556143086234162392268839633881418584179008270256511438560233439178317845785257727601625562108557124834790256412457478284458767521559659889422306047812923961363184946172830961039203229326608438551309865666992307945285016069113543363871288097388259811941152852904242913091628876208512888433655434714466843668649711350991984232828223269877047873417547627716902358651605462897210328507158893504134957559051573819261302584220613839423210163936865631961811171245877054646169096254659536037466867746362086387023123359349582029237636807361829059607100752757461647818554723720378009076630931392810062779437390723492022393885570196115412478828008734996230145538110336176299111067426214871739121099594996898767533497536781161229400119887886885082392970742279149847387967575622775500190031920946002569409632828495986113020534451999859553652546105760093997018910717242124750159902837033003171034084634348875588136433469869310866055233189288014070497709002738998061005517785530929508748316920747492689333018562480699047548737749377217585725683689999518487185789587403800317587068136265638999186016953709850186478340674530166947713738146705922412422613805165051239244976432115473510780582413083003222677955524901599734511314655878157155073974879571486605835135718134416516064569677379633841488581733587732574218337261294250187533285009097619826173668495034571184916249996809503419535046979555499662305919051440676259906925226621628212214654985513870619850659359785933693238259556200081057635867608511118317806514975574774107806049461355003887385089892591129807994392707571753601639512774924296447466344295059652264974622318122282823831111130291841308130393088060500595320780102535872079847239191885159634255285354260908098833961965003100512583433575589850450198796133326071796720248329066222319711399626146257861292538073836226962568537505594880197370729279452861711158443174200940436352998229972330308002890799109646275846731877333176881709777947329642631166079546959685131055284458931334700209447814301489980429845123978752641207939815137444290018815579943073537197916315562390546757830383761598088633296399482146186356469448291247808164259060640046370462076120491992431550385820241545909225167082934751271492407105297652173734734981262418246166722600543859961252681209685632501751597159676780518989680740296252721532559038184237620845435165600704156177381007383484715985333079079194684388296074805647365606457495906711837106204487129289701111284282392684927130366182640215817605768521975916503106362632698159499111868258216529153126852872214960706310909820473256733712122520090879472444167428470549337492067976849860468918961196936046970512303935177629617216697377997900542362919313056671841402650256184471575120229450594242778232492715738410718930489970801652830187357359567651787393471451233017087147699797041654482332000681190687495673628147372776261144845487122245277581739494588511257857372126915621235534451847066882009916268322928450127171829623848499271278969545906938408142351654920835601600876625457788843952152161692873960361453405027762759510001426779589659886833682661948505028892382044089091355070658517397941312360460129855153101600537413089052030358051618734209372973740539444016872734234266316638806188601047042444735058371590715987262415710378611399102516764230622528525941628828287298367415696033032588512349404216113966597351384029967511066122189328638868070221708713396448896487988913588796651935530701132406384074825237890269401150639817857520682351257987361500867233307835963520171479596256228507650016781631555495205586105932669840254060422227497942656809098542267955199598424682551763399619434518446819605628455039716725730446777365477432575493854576252176629101726260293987512772197545843078279156747697785333445518427768283949032449688644251955830913588872211582676763923791471466150368265601954606012783469474079400065147470618729552056483134152038008710014157333154979201856833515496721220368042245387314328484180540768984522463255943752744781376006839272814294767191575123495792898220348989792311587198061120171286238274776854156085541856375740961185339586057375058906486479268999469435172184044693157364755618035331700517068473923541186013381715081894510182709340676638167485277342835526585022477937351180373376095258801826271175102099443589467444629113322952743552724381945004156909983571562308358348553377635508447161323391863248680729443589422928828317578479711036547760003552959262381736000571536471056473040624429084363288315140135788744515289526486814006814103660720799110694743313888062695658843357800710283756189650068074957460556739462367865717530594345640005920242643680022436401005449778480616037748823122693075288070540268835568173984091546688216508446756979367568266788956249650290744686259413840135467568150968369551377536111005609989373280577141826790287795750719102786117769640944959320253631832097648414106680371108656107208888555842365673895175385535746582624622348687897742548294722898562963741468767052130545604000799005213507792743186072634327710285852046377320554189434803052488369299693072707533720028334727248174087106575169908903810068441158978345499687605550814338695608742516660820155666591457636546935291184875748131599034093098577945156896818422372552183711671796593456714617926495560410484757192567160018229778254026728965286399129313109580973946711417574325395699545517777347204803206388022821620149237343728355284107400332566808557660746622259991966069204619484115401075150718635836780077399783713765675078446346814329147324114713966203183732549306509748372774001053571976438615591196204803827165709202789942291974681248724344928746296187003495361217723610022118916462652291707115805096780813744700139653766981114052166122134204059382713863825608434330281634665228463036222299532603327791688361471783265820471149833069971739791601277295716480312772512548552313738568777473473178668193037759260097743004240858596678373520667218305334255555183049189308218836089182226058292361897045817795222963353273580366038136309574198624998512480913678091573152664275760139689473275170085476027199611195880978314573240467606597248892215965080656196442023537178713342375582286540397734146843035132542602078588515366972713649288401675285694171041308102296150669962490668907727119848938454078728413474723953643684531082256113152702312274926114978095546973695599293246521287345542107160624776701143058503564830856287046477432617623764469380789349345942213785517758261087300939363009843188194255743480900366681881131605765582781347141693667600567983875702189920424707394578940869298045763730348205436563506150519089752826125782326678673729314461794444474234163456339580783818085772415992899602170604215912395495789156529756001888990009782539709271711711307124874145567791455624465635714298291200766902541365460732762999511825639711063191906425648798927842785871256376573236824423190452027328091107239602544395874628140608893839175718294333342005630805699592832805350963582447140655907810494324045205270057480258018610681083934674474713064791588273378565362169523038918235541660470717915186157704539288282583156890877844044653947914672672878573474927541583461176666823881355156550328000602404960310301745271567638332301301306151065162123271484085897780793545354570778590925527099003366456392601181807655927653802944886134200771975707488358803053649712719868580648656005598886338187470660701688464115455802080826906539642782004452915774461907787684489196505155969815791828517116942325820201417962474579125735847046420054874086555935103865461909199942260327041083890577913780724928268210497960367807629128779425272203902733498725760916530645567605110521253845311686339874819403569749010257820105549275446193168959513048579483630418266250533835484009337699989742732943945006288699559103832249351524650537910382265010099867810795095986683292793127994319842990349437138183349135040983797337071342623422742125722796201929214730428914317269483564705028019086824354435355261866447426413319736087944325283264116812232044561510685511572734462983872396892635181739440755369561370747741035459510457473277604431985489483334946521368526267749071440593063295473285885347873621823935978798070999663212242160065108224527714841975084963163694359304546253415262086464190196388321867689722081199906680286110029854712629483377747697431972357300610540037458885969751634990995255273730288417188003350379936751773196761312579001196029372536000762388054437997496769007703758884117137616680637001826018353403358848513380059837056421422750290656583583133375582109951029844043362276147097412707645136281338659591372962417804902176734697684052018602741611059261030485834802987262304486859373089341184863796242034602893841431687991928823431003900423308036702582730683371227457039758365499640198385991209946591453396360985493746618726414914966701408879541990277162700446305858473862400411534252830556332785853646110242568729042766537114665987446184505206880385160321443707666903262648913839032081580520965814361579396000294843258481672529577565822164332395893502778848325856231535198410861546340613932041436472462949091770554085940175601611042423879728511161750389854894919912971260364801093142215791671190007162222476469115537951301470455017710954810256643155188640910040870069434918659783114038908393121459713333618760731466936485912841238485680352807146661337448179068288182824174590670289497222594246823808800478781054508602257080690398035233837854253846892244177583103076991870139658061230557747288899602407601566681575892555174386878960700872522764089388265687063888370262137443680685324689549175372472851631712922402538929782572928175103248308596781201279217398145643108718048862691017236291399074657907467635299699309860454128070926971686303809112620920258749205589264465411206051553240594735967735390878105934917737534070845943842433208648583825539885210195134478642404748872873758000985085231616927525806232473920859833359655383500563852740548118621964906218989209518778403239754951575997460427041842310003599876134828032690547048202718611818504557387668811058770437168995666372470016022737209786278610018249198993649622337420614846458932598986672263752119804447513802375947921777101134613056424257012097427517837818254238568051678047748321872367481102213630556655218793413857989632626977280720631497075716385777326253704745382595276065998887831714562059624282584283470288962099725528867259144466895015845884407477915291149152322154683770751044382047111509613734783481794165833474231778073708108103630442313841808404347788130331174474620892228857230011071585514943705757455944407593842592799357915606429050853809451091836764027621227424003749078789773748799297815033816686534907027661643041944393214694986875524001206514366270586618371485823094011083416520965363422339344743967177816324925636145008449073580005219033400091910679173379046086382321367036465948600408654355727432866278997588974391627565067432623550093199278351585684778847294452505015735775872907259213428085224372362062421378461234390653962430287008147160037721950457412304835449230294292219371373160693388623950042723028086582407630519397038085262102105681588306422651844136910220265302356871673612995823558760399231397443538921050726291999527928565553791500022643404452496483162804683047989529459902529118491053163664730995411563504432335245014302556407737096003543197727572823092101676809789656608668601584892604456017783133140188616017210232966562979451920254872348031989632390279925956973307058328169509794617046753383517437125032522261146411472761656195726526600644403399049864101167051479864649368580213062610349014076216198290007038005748326809211601203005576070685447227748849176396750583971112552935319190610153075450902649634151498656431901448670836761145881008156537949442458855010458534103714620218049282324567911305016890178061200887994734841803041355628182049407401917147365186876556419846663238912868162625841647498228602114314022254869567985237552416120888907513822765106856057740036806281607533866348808919308808390197651667413012942957111482399552025957186991806336570553229588856969074485167904228836864745637708183288428078148411890688708883985824209157013991420588640151637326016892065355957090964974900956065357163806711521680517368714829091195916750300442417371077150859498388031862371168688395468584472436641986349723062941576632273850502786589813963526078863140664183708842512193013214044904550229300286119490128019938544874844860924235565322467593500061937385023545888612095478642684923303870191423230220169403075788863192121816882776249537278883540720433448730783113398602827405967728689573351216478142711371424677987440024888109465128696119133209574328049634486051101303213013097092870067278061253560956646393158159881027144273456051382602924224221008519190327806955903422548112743006899341350631235799056654872461700122675900659860756568765011332101932992238590319187222722191282745382733549193953149020335130643205489564459212162532264171187868974274281964532746708428420084473247347784951829393349434201000340562016031055646875869470808172000057727916641821972914197746850212366979822642433369878862167938400443543431831658881464974450942890398876739263022671763960457752570864916022939488585080591621059689739927078461975313686183494376553770592758900271195779890549582473640669118411713731544367459797152588980988482003609533274618854248975492588421771826200020921838520310620414997919989301599894037655073270173174590558392584370080311354204323177250243103721678581128203852750043630999046569834370207892597613437884176313779957438530976575852120030883092903882739351414904980736704375627088070461769657948077717892383502059333064087989242445458871824367215238869894848471411497458804627171124959853035338395569262387861158432209809484965184829201013291073970560600412979177058829954978914759431015642896440509316511171795333119956134242873503418716060663024136657676924336682850853224281423668760552447020330683759627676693131720967552032855443074032760326696472418156698449897172778481732075708611123133710213982395804119591486703703574088187744040738693929901226152370902181861693502084424356438742160527250431778762959016850311231816248518212605022489791118387812974957093645495043190326212076997378697200666701371898875469706940939162981025871737213281548452181965679593559120246173027233680487015724201317047544891999332038621201246077766287636723707348124596116621736997294646142756587256316058224430948990938218481330364201811077460238048977042059421860326538695739875944440287220528459528922622025470328669399058784665449662639167977116381006026547914698592231689491177495551076318778334955107654929278539064600742279569310837156752250443683260486529327206850924840953083713335165211316209831199235746996145025495944233917691633482845313132070335411288410329730536273514992179903179906081643738016523031616426497008641767859810368654447452864728891763046951092075243187540345617178548697019380577585682104812146995946164114619777317186554858415899138767131429350260138029246854742625443355434202569302513272134535914536949540600556263557491185359733660435190372958193661006113484280535116237368170008897723638094144008896702710470892834652239422056659188932194627280362182632258482690397900993236289835802232300310498320003582978229425003747850982163533303366865020373358456255800757660737443704572082675131131809930108277916173460943676947837821452762749462969988146699622684767745390004903715870980535491982923156859894695437366181192835977254973705860884730798391249705642898886117446005737196737844884945109355023944781315339753437926739575151150117508345610193739140627536940220422207413038512022491052253624643424274680765250417658268434797200016731341252449970266666262295630233707826977941388981197998535274254737792736726422660120556468258311528938226917633639348463528625153829691442149893547494921540653362490902190588515966359440868482605019489388175297647842753264404828413769467963639798866522237620003766232228124802683093010300523254611028151681462445705830076148955955212102901289601089678150676926084245131123412235809573568622124738656487576065707877984775181708123423800902373726438461833441148149180112753563192094573302087601228531331864807581533967456035391486681673012156562843935494275799309702836030720238564742490218839540008460200922732543015698913649091326908113599107866976795596708635090253157541417105892506815816632016996586323363470265944375763335022475219890159783281819145566654592681816306900389290048333020599344503067804303091789600141116539544680341074746936613264378780787891430812216484138652918396369971573402406431115839713126340970578412292693147434851892968687647506946976259302313054068913572962333867482700985015156897203085644286215071891742114960021074615947334149024803275934294803222353621473838512376432560840898951687020998508497816589635892715633291484911272209889659377507906807614817639535875594087219614422501239416935305067838327708117052019326867789061963077268845562986070321362654666185587522672701261368903345711682131811193492490437314632008922239348576076632002120861650083696562830846383117018461706660028672833349474507847917307528549902011494691659039863430351921556405661608790119020603883023643797961610710255061434118825709507267024540451082341419852515601507865561202792228511751668312017765584206135346353186453221672037209401448789062790923109936921381607541702935353939761218537132207294097936084518773736276150917087545867225747366188559378326007041720208219679288845811038103043473871873111797590757409286089661915676316291702429780595982637840941684760057960285850708811461574644299756483437418343310548089402484505757926620337494516593893788643296982402632820672600505008076104854564058712679726772920882374261871588453071848731141031616066226482349941138588242266133693124746131675607438538452609369986423306975969819455779421358290961248748124534850956713641243753660086956838680442193400668889457606642582095014231553551061444078525807040889302910315319891777611461228358120317582000736339711924489002820189781367324007960040521003425418474855731163783660382316880937181497570042388624644994695291484153618924738276333489855098363573650878034443090865367201613108938312283379199965268637438272049041160070136033826172938057456212857396705301007779901865455641256396896436093865874030526255825330964647038144952345242717395830016451681669484949236412167383811431479400541323341090497855418034435294200788618271503336452927393879927380745598737768837763953123233583672385015003644871149640916704066858024596503329499855120808991641896063528713832268478625717408895113553936109639101877261298195466162109222272682472343300924530217284595669866774370770314774279396787706660439418785879511723446989495491637896689080279411211585646980119115314140152908820985042769254126134990867119238853349610470065105702264048042871927104405731186837263614703154320436753960630809475161383168717838299246207264274739305738863334874155042949499112596489962541150720511253812373026688512151754205310008485500871272046883776739629697234651421902588231332393698381512681677633633391830994610672641872438662304720061392842253751425843812086514192097969545207584030698142953978884446389918606876667932480618468415125624534684464185921060452633777532789152976760254461281781527301585798282706713356901687319323510880090255100642225972209444762413187268723164234227252588731113883314144500891416808326784748379911178444391231569475686933064796644017725981809369309530042290090502652567226253752247837117630618781058239745461415306189789515656057145140339775824758549924316231362297472263926877740690945267355077464235321869520999039655084744447192830849649151228930676711984170064082628717888550814195769769564836748329630957711289659626053727316907210895840828332201593650359152878345096940164998454956971930751550935905017010408779830408305941201233860015338629248002754792387757156600181305892547832881504317963481319841183490688473613888955878967775061703457882988725227436651580783395782283062623957540895948717971013867367176152898075547243245062404833306209656611022073167274265887691561431806066065142186025476192317131657828058657341517248272232101627082646505678368512524120490725944638419974241135108734823919354022880016868083585576295752653769699525482496500377325855523630119333694598325828546199226459369559717488539045600214044425286052438777499770735282498869042505368654352302147065509370740336079114528304978764401568380690483284755594756295968663787751255344536576314772979711369222287122147106282569695525396397072881099360385455656651643397286207808727772524481208452866048697246318352668559385080473814419833907177232676779804727438472936728204763185157434272456712645255504764010350130586815375080032547862359718198469662501730377355602996564937585076428366057460186260009975335988797527374348524562319455042349589713782959180104835055530750276721475965503655786390259962136423462694295623324951015671580300570182448128109328602867630541907855311532602713348470365672471962501216927223931507458217356968580482344647261557794108164956941021007730442576288540798342684853296357656195574049765485558223142171682297916512304909690516535451855651062570005534016402143348131236804433492777516150932078496497946344904144780228730541447481439297530634910387449396008084372993555122198886251859437364500574854737732211982054137617818709433099060485355560248232991188471522812527883597976933216245984051417973772696600183303516196013274168096282123567480150632096691460157098072817817053787736819467846196349088969089437049641423091736218394316660564592166847338402835273445519387734864569151824065641465762067964888456820433447639168034332956715337808886422148943988909082926405157536881215585096789914335073634549245977467865917949756026827684229933144916984183779513440582112022074445633322732428143615052328827419129383164648326928961795515863394523068638620638127861007963878067699418910031468140875485481025310744830747063171750676237742818834016287387477459014337344307800535440224466100378578138264688888162750320895569963709299860329584944428571861434518799641005231364406393496369428520990523323348302921113444328275609007854145675261957778985352534369133642099075026558778503973409920733808126951427013830181389890529149280891664522241525847184957787156100301192869650761397370107212648907229560545806265694193199116542238726585606920891319667953864287105007266232798044683914038230182418009905621919971193981472345075495053709738699638992595485489647957902013447726329736023552938072596607276652839026083311570289652507746663584988412748922634340513819054365884707687223017242658937247495710047122349566525438511290698634394903170347830196377704788331173543477555370329591555487929316610228317904361887447076139047397521826362395820293046073492572335185748093754975390112164250743375807178745265446132580093814522153010520205729749956311320619321030362685314130119106267862701059352217425010633736094773033471733819232757350416154846801812347154123891792114160083157512102366172836908245752721546818881512370225931061266266643723137304706126573783382498273315350748173329998526079267890840133186041495122349787330594578013145231173334326278568589790933933860653710895214036932244929882084400442709821742507287104849508824372174886892026401517720464351921139176131909045250560812684327668512071813581422738834101997167506706558301912466517870785057276172767679298718366066057025756258943959493739500794171605025586265242737975043228049715190124788987619844038855684891534274116263293121755343516359123491739467489914172890880817407177320191379548345770777310445702324033460468716782163945482665940758633003031067954768925473589438618711368169709669043958702610811271808001251925762465454496047299361968548960269047064482039283950101022598639789273382876566393689575458277657208805073630318107401966777710443762495672342311934248052687464345197796635915755736784127492782065103718866284860475842021330697555408904025436441310084193192846155242504158093496198232160570751945167222221518290509722836270253824996816581199872692904327719254470973825307864149639322261215350947670819550577877231486775082408941914202205355994990268162613428405624959099820592000400152342673066205955464548999904122372721188377506029760339973165571909989091091908750555954817863524269681001217473064265141520082543822782149077934249608579902536107564682462946332503775402156492115320404970401609463202357843171066452800725754738356615292068392256653324412551663825536943135789045618154133264643810934220440951040804431173757969771032192276008845330695034658206335184494392310934655984704451575854624228193748868640727352220509867604910321243780593403456200090842829276877024795678786600353785448726913565211836293182614411449096427128000648809488700847209348111321678308456617023768208127391962912157294340250497498320013300279082267503568928128654217062270233804450486973354612130697154913960057172155501214952982040638650454511103529694036008582741178396613641557930797801893149902219771248569001906310092911985569348924463023299916620324059264121711637934634491969774951175830433662404711634541081527190834341226790533675998286452313518907711766681268663286865531794614079770591582317652893070611223751673172562126535112454313608941876813569171845923929158948811032264761674339476023145780547357349497140092855968116234674959085227130176158724488182905313173652991224517405158900181462347781361634975081401733263994457647653102134723478800749391191833031296876701373103075430094200660760329360465280285158292006506820793916361092950765232390673125455084308007114001098487726364646854164640700680034967969355028365211314586347504508823935493613973029002447484026996857419922738046847578663929795965714882389707933858307589556386756579423914545585850292456831509639802171362846688638671886919783257670887208352300286989908723906133551150945206255270823104267399821362742976259653334370602050974578730928437802963018142930272887000740982839076634441200699166069408337234221563551940230342753629510651955434718604457298401550979276594513415663684756990375908432807627538921470103414130742909041697439656929798950808767125870847724579120916733543237632594649357550286808583213180836414885645202996023721148876549130148272327349918124415846089069201678114268347252274026500052714179170291600871940764448601872668570762188941453907334905100323113594989540104689368511168738768009713029404342089558075300318685830155273825722239276335870396478087094380569566771478907662407309884233522589388831080972505872084102228838184051973492378318143102828373780418439693193010181790171811716289551750512161179069281966709212504022037064097031036270988866147573238070687613398729087863854251402449020269310207330999859864927818239654308426176286445844146884030137230063372030034433961402678438609823235062379526819033620281832951520484696626876260136125881941233498405511162786184902521820273239890829380379456968325837646486302210017049325199559673719204648591181068647916009124070621213146637724609764248490899010053547149884972603446249793392867280787252350821387072392769160897954105332623855886074634575575764104684534138684996758153180776442654473360338200479426232373832292971085827156149532637559920259083099599093855063045423160174939656764917551984648636583471682327397519599334942757368478113475794297667491219758311374784601957326945873420763811462509798678053757153851753702628663453802064685303205772484511480598222759426202349197311740039800132489002263180424946853843073796684980005446145030847785436465761329696102448838882118729925752384278611737486836584867866947584101712814158974676593894471478272649096896350266143264943816475894191251994634601217424239923506319606872649611272186954220716864390024670353761017176475781852222239062428261308959330914423411373017459843880898359122663360578443191871912698035754473405908584703377428138141828810638011131668729928092556850510659321544726952249257980220440559698338786381356796107243714063156282485159211949562598686275286606778732566503106125419379858751502334696330775391607312627865134902206723576187667930743781956586468477542973621824192472394703314990894742643170258294317256640521574847532184582923773498662365669154806509744504305189941078951530634526071488450382082922839157530457438812680043075436217894952732808846340538117318423897885034999363011884570755695837111521154821403065901683953122371892979483242297444173717526046943984617256488672547085353468782671058701305073179440803374094211605412272819632949185774885677460876299733481713715085871234992265733764171520389246020547684281096955810728591977408026338136358850176824789950861517478655684912266269212824762847080073757745602296322838754674437693770753127271368703082753236888989080459875454306639525213275082020033020611392857984786987950696406496631796121979266926430770411528635618372325558598749696062277230143506909462775232060118233398378957011265735952987669781367676784461789823842949287222993431533058348813566903249645659638766582679956841630542291890914402120384416341337851996357769792852043097122271680175285012658543334379706318486198830398797097112212106028857548575176610498550569874789292526347074629836432779660996302379865208276662755928082609843923640656424003933719449809078601205779587636690041480668704682451875306102246695441632114120570737352449879841118613506197332144375959758196547633380168024061747243654633264188405490346459759662314100439615072728272626508276306226972236111371361257289125890087307114425889469295310093872605292705866100285170166434557300422689150680343047776257832278024121677478711235582976923764879193089766722095900210216692186276883146522553760888357345903464687467259956955717440447093227025720120173894273760458832719781747241502394597948748247327545439614310570284785169980607060857483617795286635783513027341955421284689856465144712070914707077027479224661923638631115305548611022533709513938980850727790834226864852143331557573067206082055675627053037108198493113720229564070483086005538935644418695396671104901171633330371566971111811165793536194512489820150498709975045959729529114679091212098643730833934220617837036397150052318392269982708187166067379619442513326970857173112213819148084223626733230567899416449273911767422858188617010662184415185858357434792559689736581930237752553978548979908332693379168863271808647474351324356479010931485431197767318814670953191502261703072198970843083373557085624959121637016749156322703307524424177219462182335093108484523364731714298057381690189346807381023350427155896670415405284281155807110854551471648599125087863657385381655644203288729683863452959926526802678721175723778565304850225556859708288664856269387863910993301397068165562943546706896410193026359154298260567148311190212247069934160437465747986625599132136858439494549653668180374152044924553960394090191781209438594823936936911204996257905555202401582779156928946042373349328548552627778336640817253311433063989549744697349504021774205898564505120410568126222052234169730789468233782254730549062172730849610696201921300657823133349156324445246108352554940555842900635617946488467953977654112950402321920110386807276279500253388419833888107400805065864114202029520268501112939286250154982745647952942002362964321584656321645474161031881368338154999150319260705236446086617736323871951508169478347612151709370874229787301353649577234734082050888381996607758680227154085523260723893884512498999315323885993611627934682399576813850749320167154873825232706286007665592599459477800710390653541780266880493000031059012003335983216621795187534557105946032124249857265489052118848802695407067666626476764363308006016016384208335261443116038517983812567004754655024245598197242975845090101234369869320763074436364791903314094736881949629806898542966222666717620528168019378532824824964002483826161976094896260925860959210116300901204339778019062640715054909278398549304899011252320642231693838961808848298383536238339900700087241141183399783699338160897681404189330830979289819180845798815526437223406330414960606029129701703706743734513285789880452593911535435525444035591407163650322337934997606566345880839545109033787547531948999571172900983690096013924180878524097327152487699428664144140336027832764028943402885949825354528300784475182163485557096611861493092618269136511045315423139029797952920929672582209027650904310279026807372586790948654117922149460379407864300372885807811116989697136809565128169762560250010423485415600066340483200629292325684341344139430825789825797349162797482339383377394604491283018026450627499772883709483767305439490213250011058755935899022584397310987492398643388885027626925352720495955962255514333623950391930002161898074107005719332961188269691327667770625367001792091241080717664441481874607299445412341908423490476976454878775996163729359314349671946645586151669653394517131496565435238857130387695007561580878962471159131792262118650530433671896335125851069567205259816613084072164444963858200098864102676452921058943480645833069957299990888311189593253611690034677154193809678331135605643288823794194242901340399604670941382805909823252486097433025405655897826101254165912091447238119836786276949848805345936836227395164399033974764147855097063162208268433964086557265363072159188764046262936238102810516821089719986751043942976360939289223400094532138102668535637658320637408831840313439460111690940857089286309686383173530521926789268938394995004838267300306004684056115880596851457133746177642712098886245202175384405921727204213478783742633286294992656478180164716542596588247836347979957331686583007015463768239651900459236820906292270864983177910244079591041311637518329184159225040753464029701405619509422580800331886949788115644919337865520630921852001527596904712039383393563644682258639530411266467733351842152090496639443418628734103655741102012066136833029414675371599632485479216261783313283463708818827536069717498730084693845946490659870942673676108910143997189370544307814297089487315683520063144025518950350121097460571974279653165276766765419152726372071285082934874949368004087635531356926215709312193163198727646940944432834017214488283961773254591262631135148414406864638043335566274543680411712727264501475518862798073647345587822954308162826998979426215888834131881078625758696139703021724341000887818040306722132847325716703432757395022992094942139089508408277504027149018288113187923987376503725931081247119120089701702887347743897112632593131038099806869706485719641497762181211749620743164720814141431479729729672035783916558578623916865860026816701375440263488729513314755076281329000337741910588453588269699116566872433421467621086171302443259804132573323215433607169394103593896046037646592656477548468401930180067698283173046849938236086466930563529075754438032537504665551331227888113588248079794322451602150992871879932616566597990561855135473899245286272624932082858846473936636058007643305107981910226278898218133514197364279784263394210110134449411867905687463203624887174324645551660989652048251875197785502065076959990538273292011920330090068556083069941695028093642530021288888313664177851260545950371097412146239000125977782805264700419631680666007233451917858931229652733276055294991702752063738935613945734029687671319605289952972999667636629307725916780056284767367798726048431423969215875721678220087304101238437288941018847731706039325299187976218371762840728624447779853064383470006519015782218270817071038113806012498879416705809182492185984245651767956740563488164683321525423078524892458216001176595893214900765521977077580142456376792141559912213897033127593151602927144397389534970209112339422755800277360436355270706939807138380024336218785737704282556895089640060543671680211232753623392072644775065412595176354086773257292044026449342151684531422671765336040311582953878777046165835303033258583051158450511488520615885479119302278510925894205035849753110157449030795944203530071679014493305849715513385087510566629163621462147516182912807945315177914043872928797288902531650202584963229652884999983057830142503653495513240497226748345773501337303176807273086419860966308721809342336405461063060065375430347567232528540675678417739715094461657244569067251030806166749429491768881953396117005849586560647330648562852622346820934387604584625318998715149083336511310489051914735896207235140059109721589561233216100644974427803452087926858000438168650556218924008497973341269303337131713170126688841294504149191493418608804275420321640743988883639043376438409425881808887140015150933740259231210817693355221922143982009237821748297473799896423720448992700465709245516820890853285776099180078905557082425650230134129557112508749177111083931937582837080548241597509481373461963804534061728784142342989531560105381848755557387086251555960278470007609103091678283462093253740245148980764112736424684465573323158216318916045337515361453363083209406164965594984801041375712063510116752715649218408331675027274703680683005488121868695679023466279153185062456270660684821806797041235735440274850713805516024063249912282803700486279744014082363842506417345357479490614703448820420106044533513165198831075757207026689502927383615650353319475677678187736345605948815346604288288644146099512150825909801518782180868521061967561344495355281458587137235027817273492736702289416023051592694111352123811542899492272783628278185302260664833148201749233347110756297971370531790451795297260741245997690337661620719769083010729320598484827224479321748182158419499294430840405127312940012618308823272486850937844896364247253957875755832978660031981760650365572371799805908913353152690790197284579858699004454926609192948243713279684290019833087883677808518665758022379233320248058935711051189963857583740156740239462931161452092495256279379615517077490820759441974830031674420490732077526093799925480468434410161568725095989798862004894086872890754839633963690082121659060955099602817298400612045955058392906616052213454547356386264086753756319739922327379021097380784474319122551920806590450746557924910872881738627211256619706975299210039348198685269139896235739798222676443050819996590791876076085214807202441923010308164505658191594918236765768203741937681100637334294555293299577960860918496143528337396446226292676589102290409914667966959281025553180711657007737405955847322547389340784445815030743439013748156232547382859678529357005716158860006794724977903137626914210024607009729909328906048006973877602559120156035744903913376360998223507925847576411412777554591574699944847366535481036105914471365067371983436323767677896030712101762017229202509652732668101735742545423515726397546839864156412483354016517133213267237417632198506141658602231378621031380561569379035345015257757724020323551875356925548405830115859934789352036517948806779820741474028840978832199415975783420479880502119732365464228112042854301890969321369890264622747923094858172698738874020281656738914982417895467909474580354128218314089399763330063208750969898529828511936619613906442733627669135951071511548780328541771155051578013399549499283099135113327361400718605303349006554425063791620332270961809722899535283088568096025539037049480431927903339620284776408808489103549286277859813483618479166117800588840980106619895690699026221313303311906622076487280018521950874762811130812205250940440451811548567042537437855817577336842130987580922109445155839913842385328191166864629106174046364071715975567981345341304742487564372056891419910384315933652228719854073288086622392202802305121317486928124094019203030584234789155061082012868738265336230065239028898904200735657844183999274659585926917636194425976368001126356960350579012565851390153542401984492639374769015294029941699916063368630173517945323417741852179345806484116298120099040176575656078332922200678853290109702720371743718342436272959864823159139887380573491564021048907894991025195761007563392331671890034482216728971520642598295468434995393842696715548909044031046685528268570300745612233212687824866888881446260620648527555239483419021233349000733443296415881128384321724964496710346260593269385829708902157330095996226809345496644387956493501814986967099751323475815142952410287428141315566175242362575083854602630287397278318910449115855814899293094838349925196699660469855629989661784931527571689083244876647751668264786481500256986091992950785348239588591139823131098363612222123426432376992015366012631813936875218424540057501865340005342269311752116176602115352007411212717248526633486731676247257516293437556750110808167024566845252793132685612272274536166381321434076314579625256132221047030278922988204088343276069791181642254267765204893326703186821751022248997597130958937503233034224910555013443189297164620220549989827499969029365556665809744976126106518487623744300649847403854212080577367337088673978845277581962402021401622505877768941380910727209913554963642116944311031968202434260650705495919550674652911073540358509537140197631990386849889596203542039349687123831555760633350738887098640593740424233875427924965823542978395877865109806955895051476875548896636183535111405711377776136171704348721959027396274006222159993025028261475550214233131418740166158494999562296667608700411857089785376546454577243504995789870812725881941266254060715908501983085532483536710344676117282774297629000420160444134538883952581441665132392010939188671860480007888195712427475158032056402328101458767358608766386324643474349865251630649883855399036967765066011759121012337203029596210592619273434242329771045889634894911677736384198896289968955584873861481171074885871879524356944204247968475779778916991542859831761378295227249375922561877961259791548904126594276536922045357545639245332179602723243004750342202218673952478689143920156407136609067572942418830375927055421513317169556908723381299464717884828537749963663796174169863743055090946726102712927312480100257554525767364650012408075467788061723078995393032206720978519761160812567317840985195514041644374040331584663717668349947549952365541300833436843527997494564510533932546000527172984830348141625565182090138473648724076865142354383728757199395300359404281617567105163387189070804715039577295209465575445372375584876276008702096443930630689742717630484492404153856236545752775948870523283021311720740357692853047795865792747185262792312438211070632535671193719167946457094196095214880979300665284872117338998255372197589795856033228599765245385538599213107035596923206176084628513496892327129581644373816137439970935717729836790294022178961151895691160171608725335197397358671655320921957883259002615329480533146432210645437101753125333007966802267743941671235993316848005276189195226415279065396756011489033572977475768289575018251416040399293388447456420325836114170077818870870776145961603341533500758283784114820334327037329615691815055057217689802753121127771587278637641361556790301986123863270845520575350395933539655992049972751337459811104701028250636205760289099639833797992934875843612280751421686192487610268614777166119995303543087066960302132886347364097724142358814158998928165985486585134851099562291251283319183472049313441964672656914809155081532846104246025610587776472248473431190307602807108626053614312603947716701792931495326403354829813516926027193123792487930761997587197433852003846385865642069070506093395851568401662330292642507829542640862366402563119819409616055196665600099759766756264945800437453116095880843036958071858484857998042651417667929159212433875409011500047937497755320562748768573171440860505969790349275544472776849425960616046675738040905102399838556910056966189995904628898321089813443824107558252073030279789935332238200311776129830164658048397895496715921803622437006883397118371984814082591754959277750913665569093532295587098684891075314097026442403942718941448218501483251282603250206794941378871859782314031779142631753637300750769798949772943768708009365561126099773254048227663951095381064928667073919487368814369449901413126283483675834096009321748159029702818030308636490458670649398064432260442288802529801926186960583508703327895065858938196179373704398783597372792597181613024180155773256340578803641635222164908468260241313672921191009650866007788119815096026814561018979732018924612180578509705410081466160128232903202099890265985307873963483007880210341413868081737733504488063267788893045089247531400652046659858061408031896823906228166817646032206948580290645919818371143261507687783248252398262832920913397233117998181066472318530766713831860160951808626204512355508920301394807290860259590645836809073876074341564198736010280139396459617970939308260835886196646762002460142499992491735199613258703408001446613488090797333813761576561879572534194354534922882073065405379276769587966776814322906593656863855823989627950037328891706461938721768205198284207107731217639987211416587281411022722092426712357368769741494469906068526004084012427265702989999441048001193857308912107483353659005931589380950951524945853027829851031706587082459984696722938824865882348939869264250105561709752822881387469378823044340654572143699205323388949426621341160577436420933974805298789974723921750727061098313683507245522513990371718000185801645104098873492339483003692534084844440572117663528175025581356695352709562452305902607055772762774322348363004992436478953450194039610205451635913999652526099921269388951446601773856607915084025327374621469714192786215663529809993026481269049246997444326334872496738677501558915470124645055489554515949134641052115811137222563722851082433516680659227083705596603780970126270568233822049701186190406948939217718757543112375136943309676114734896435912441216762101217479850960077179716707729282018393895212203364409004521458209275078183708319825127698381295468817183762416396548102155255359224089084405847630440276876856683546771257854855541731043183443934818860948960058946061770534042954945225794542248395374478119420152429363397655076627345679979954419702441505492202587102775585041977622523818965302088804493928625127018118112129075125568568438623255096425918698796345067895334003695662393521138095591949611478386327880233454324291746967679560916109912503483969689735161397825143027434844487174959279502677538573994200356556336287383874070541793254746618091366828533957598849953643754376372185106066494558997062332845170965503242578587755002367702558131775127748082757249068331952919229593521020197945603685458124761717986597517242557972267052858523783889639083657255407694083114760181167271455222295092601321588438391646471982602465936119978890432571159189472195812456717458804144147983421502287420555318562287181914218014658566101785150908555811447163684577556717605018775358780645408228095653261275420169541636999649766078448342185791659640576568467781389501090983006913052140350667378552793631295156373293292828408896911404942283661718512633264181724579502595700023395432299311855858466920330079505954815659592492183385256919384271978803673544133357871251555817973308950387812215106733674567950666816186412012392063838550345584651452245856024056204639662427831617162744973013169385574625061837780824195723247973688767406023181188758147126587816579758181872306485998813212631055224571175024681417051927454306678233188598969491857044196644943496324981279921963464106558845288618775904058469189829593026430760090347227990424645161659070653561067064166819330428057309999828430499546611138951926941886791680514138879446640561240330344463797639018265147998446880450529588454874564655181606440457569292576278673844605316917800852093258198022059921346897796251248563253452169526380123022948120540738990194562871372827812759096132884561799275913478296312002628709250233380576571052019627805063900258848832907217557598264071101018698770017248070774009176267868422024092899707163822421683403647694302747994251830823117291810417143341808981386433367341675217718276089780054884347250036224546506987618861487611440632278990171223115853059748968697630381582472483533578583448843425285584859337386767409965932434491935215112723370575752207959321722958826405299159452143541496871292087655485835692704362619605183657613854230562169963833190965326117093899411819309878563830942224266560305508642220943296068363301449068622721396381419635427061411160842216005249842442994705708450448622915631692809377452905219147794597465111155287267792957744606000344605960170958996504400229770737314591505788314129205982677425485964720291317495858192015523852577070446228179659450865782298036963877909891006818431827319761150256019393162658293661135508441626631683408012869870902183680555578705228444084916507473845637917153048917032542132906462189882693703511594551319859185653441669990384632853988809856803460172387626954613039388395946939093948001921392193652841588468952027724399192935044990982016334051156962773307274870809253364200445380034303776325907575351661620672930039265176017586674148091699998188375004331952227437283750152067713617776245961072809229085097538604696845092821710401385083773611550483628801817039218312931185965102040595398641663794701229988549537131165579174974977278931921863066451046683561221970137481356966408190677667676571165047464844785827737804675318129274995040198233099209387979580683766622625047851063198545601330432667691234394671114150450371776056358167446623042351287065325704482521782129308887907139485919763817777256629801921371166466801752896845142125523618603749409084907894723714488375927831067546127330168120670877841297996738157222616061330905215672677940355040315258918674486817829628566443912026454634139212490293841857438007476596033190926060021645318591158496784298499564713032721712837691833223389354704648341211848381340153687829758462244712390872232889521408700468283615850148933305838899945172365332871257639168829517854484002768538646050252607590729773236851471816747755825947023429872696309158460045407852148590902049763358816278405939231316479710941034118982882553297273237701044544469461078864412345971829406612427002055059342756775949239410305854036294687939985251262686277107592851431725386522126524167454486164189193276170647153104173908185444766350184394376021427821117295494326446427292504004906045732361273267266858311402303445967241578268762126521230563300299175392755441900478342094655842761389304644905139811758950069739782482129029918751053906733360057881080974522492034375533592456039552916601619526212353820501389542328544706510083017767224705079711809885483754733190210094614009256668159544336158769931261708382788281536471050484546837767928164977731209191633322179322158653063821900617096838352087766212383750362798747332695601329207925881236460094709092875212841547214952215642305925965973535997016199692734434671453148167979340360206325201545203606531744833665882757448906848361270204174462897580907240586190772271614971306988432942840814789528960359052045315113570240149219322738683629951519583680079123099330904244468333364379626465143967179906126224392819995314605317421833344974155353296035886239514489864167292130080235179410554256682259455275157760278201566556689156360663541222363746974674782773949456339657334077386475451387621091432162576462687679621032335656522002470247711944325411431050635473172531838451456240050157551078124777485738795969767029198893192887542013916790094822076875297931636873109973792605549002755413792353339086134389312163679843098364715196604692920345966413898870459503235096841176893930771662959749110960594283339802970071071218917234155592457527199271817288565345873222448895296073130710142077649907503336922379854373015456029128926199570907275441620991914653746457981402390791981786497792287249396278253970976638455563970098589436728437554423017737123199703871107608336455372300380981534342431107341669892279197398276329038372499374696944251710559213942345907225306822725289880139537811268194152156835304748836272050687384892542949704434016715565540249844932042622819225987404426998587187600781898466226116148713832384721384318119227039296584934899461587684544026443655228544091008500164568623127944368899953877189954857781603549187043324357771434104948619916812201226106700929060418152418886419524089435123232583585301244503374940144023270571084902819533800902719697822774757134572470440412422172433706740245399276529909845456656824291800059668448945531187397879580516975478899855166497120893920559798785131191035622892043401251521349933720886556832884843097740714825012623220072892894676251731994794549459537899512577443871592368301623828465407990268394660050740121772978277524564362970134648576429960027663929075188580266166104273314497513060670495196711197645867701014497743968369611102639700108288541170267384716274791410426017793053059143609403865249229278514876993351211095074107122604922010561477617485746123749361431932856716404064551839613230554860562547712839850673630821358554203307810114942638993732071414393456296304782818457363037788577508231723198198258880035400682501414306146788945704679068024268205332170665038869382071311454233123940799051670921902871528852602823732739702051429060848880828505954569435282089846467815768331460207518039364376213193420453469178629440494178357330552670471190132537732619623364497283266768635702284195778132701059182813679620452006077317241470245119423404165753396298441520540890888397774624203234555175901535290318582319024317513484648335909545005151611325910841057678714786538040765827881921839518005747010344235059575616440443816575008749638287274040130210810032370557265600419378389367848176801766402652212014503124146120764862693165993602254596457304543240263600531334107111082819625792153607999088862969902889144113321579982749256912191125092596629500459146035167742933468896226943597772071414252181111008853518215996901210315944059123069449880296129067689555207959762993732624194366457165178284067337981068814084384087678142278629545653588908253211981901559761979932347450325526369963916313004975040082957505859878167169576541254048471809837791387801660927990845329888060496910960427993026661182795798224235656814157099186297888032603765068821006284157555661311154427248931241575731562154202685563897293776048801986450616189156461116957227051630875206598947243182415123453571385514352149502114822426046687286619928657012217179225896546535920158014341067543820414234983166527228763255053850857956011418852492875697259777288541834287101000710837956479851816474867759059093274028742080474350416002973682535604390687270378293518992207694974940469725917312276326757234695782738181748461768621223186919782814147162720648062421382998858718776309257378147676094006468934981446815386972862935378649465884723331916230692721240470233365113088987313723575515138899410285879602467010598884023483771544121023498801240365941635074367538064445820996606578854056098621520396713964342004811163290805516541852251442048322669829224554815431417074631342091402467037253409047206043525035218144785817402213163341379425670939684275561694144610176710979619893131708284910999940014103134971254412837850088056024225563076930428534840578202306446685369998665318692369278166562129273481267055436892443608222584255515984546426576958383812606285057582959186097130716565175022272478139477177079431587518166745209335412295003911456420974003790684055352890713068719522990100396647949479587245892554408958895897456601858216135858209032189686643347568140232593865927966448608953779980586421727382552974921827856634669925712434008341633222513880329408663953452725754172245784992475750011551178277435894311391344229976888085961650083580750309249858434038421894532382406604312065091867194580022315450800396048038819385425900147159118802467416414196975468880744367589422126895142859609091233555489609884011705981770681541034065887424022476483859218333737700673863348263502522917596412611363240443165379492516018553876496016758704521715344129593424434429593356903504287117871453900661755257418327289639401514571213596062071836569646151323878970026591443447363413478178270351084521230052233894871261374290834580930747637579728957600078533342379657045982896660032895365161397479829300214090797766441049001018161297074973775822113045848728974451701918788939136970733862984491769747849114641899397655022679193427655949705523376988930012088435881423441806636519758553783540266035166458464535868020436404436355970365898963148134538393405670122666992820398731255357686543733750307616389903576504883211072423465368066047981426641760580024732304301704288743684828531821017655684399986933459640218904976438445022311485378115089128452463906921252416051826747929552998224739224522120939231703434267765820931947635858540957395879785873839966422260368681622920644964449127433371930747993783547497129402816233799216480514482837117921041240855618217804080741863278011618753240971825652197328111283027861207818155538809601735720956305091158573160642353241370648011497400425824653030285337311376441782573989915017295148867378986786197192812956718048840164454797199638324158052911255063129642379178820833515023204918367568469176962787990643338243906141980775312896096537012264710638589299486930568397482143158373334639081728116243677037564939013728131826631029576366726094950283874208303753896492886406242600255637959056250713283867457223594419079647353097755995951333719369461153049241485693905831897282157405248579382112088056305064592462304315991960372452337230209610956282228430518343047859968688675594192308889290922281542842605761596801140410235047273261149311318961338696301716830643519196904457992758821477092831471810602890774405186073748805592473958572410059894875164687103696458031098121636126417376458043560480837977635150121753605804596845915477474573942623110152077813760436548128234044417180681327841294525510715585572388905987243576120413517822826366290762550282305853251803718224187559167990406034106145630596241868497076603922119515452712292376935078187739630515835882958346348559124605353217215032101298925830129124593554249511499335050480541614648152962618150593466086730785400883551733700918099600107770049314306488675588673242498283721467071559719321559189924083550009584527297890360587072629776394129069178636899253583106131572080699576676991455957947832271254747510675620378075969917159894109393606707605816332208442102968307690586542568177571431861675386120537760366395830905966335167676999858236439285630965584912012546393562290834104698730271319403655118753030421307961122235334856061441780497604386425394080490988534261840183427259723682894430364767955315234414719299691457897206524298492817939225850266755120266074635066339615718488657324882025161169520553785591903105202681979538840799532074725389637481739737611046436177458602569221510123350126879120429187283431437746658907357636601931202184836220071117166314448253961037285911739599933593169289080309523450836120084574024688337143120924402108077504740644872033528814790388271941015783167951944373299850137662278184231586893633785732300220895445821108911217868659740629416023449885191892087883246085645066259506603547801856125979487500369414924085031585290644207859487630119706199517134614416181601913305757485994063165402127930285548819847398573998653820368696355825803082602112360878517917340422996708473826241395208672484688949332310576671630505415324237897269331980305219122309629801209642900027988277025681041775458713636465913541859593051740115888311316751816715207394507952332230962466903625946960558904654136735659175508483890403450160638651131225049488994684741215158333829290378383666570517432423640985670451109607515543124586627965120862212282916660480254141710377893694407587593858838727730793439103131831334303648167914189571880467080183757422758908541506065676300609187617115844249197240924261996756056746501527017518114624810890935192429107029968310403781802209948297374736894793620937509011051672242384452448985253528621192192817660425967608615435058781134161940350054953317055843240099714093163848599371864760582105233973558180141894764234504897908737153089397089513825202769074909131504190053434741698851009458662496255407283303061857416338453882706927251807772022069018961929949307954240522738065768850919180602350902453650175875477309786735843824933797349589967392104050539615786161035640966090009086199054897029235764757603366664015626851433766622426814440839559075828312122000291865616897535096755095288460539025813179373706658661274670428935102207639233103167109034625642518570998672572335069031832952587907084306308128485574301954709562057566721097458415449191241683410899670014453296626283933127787995045073119217807070131776406156421100876502683729052880951664303730536105168306258741582475932247386289086402283681934780805443929123710780443605765010846562726563660896335052927728615921430722255059226804129320435241241517298972379495625500525666263312884904778896198521548525044904458986533302278748241985473012624029273592657722979248804510014854134666493616991933397161308486092751534745280938343702826363813143122312030739821358029491978610465158686476864959953501931884777111967628857707759359460823379198321092416930173438799763966359313327173904218399761516306338671129498719186027464619735700872525128419110212198189176850619486031495454241567954393169090813688509796060164824263369433741917917343550381007715553313242820274326285771506726665162468385090385660453513161599614110103056553304163445791327304763543126192302275396459284874523363560433209215343802098798915058538683067341362871287533418000703700794402651598113810851034766725475507717035749613365449497193417414140452083347401802606030398958267149836116852415160832858166642106591084383831481580412677530035630908446196972165054014970570460154208446961636514291611043059409594806792022723743248495273692000947474410360006669120330069635214984171288185517796714971191294282983005666252756182623729930904697424848688432705769625041837975296555988748903652575302790693667163067785467483339212931620613763918873032157813282231865322830976147155042523043367862848990680047839556630345078214878890569075400233865738448801404404231673976407327254357789755753866350069028342623489815931128153445128694934618519833302502740624971531411959571312687281758309457989139877353222444597818864389308962085663800898093715619542705134915436044005658519988456889338514080162467934435398176223367753311991376061851098095942364155576720214032025800274118704710027545844356166011427539732635941727831929132007721513169410697404989495683870340858757256881561196237251514042144121263718457680977476400875430062088562293663206121345224416257626778054608960347607669679469696752013234909608895887053322103247967453074986492424604605269477306347569845403224891955007316116461779869181332491972209527159316899895602084457446621391839783719479727574020294974073151672111379577108765093818952388280817943445400679854472043854607754910158193207597743263762276122725646240668932395867831139225580257723901711754484683732413910690574971884489753226427726741562492960670561638869968453285803849184400087672754002799872313479461819957280245632800280759798751528903293580300209161622975254101364975420592206254703814050182018410679779609589824781066787766584675469183440250508330402159886917408744430552552764485069324781412804330889273877587763959565442401379735005840733833922110785558664160344755258643544890070824696299124055983225719870761486393152294088595715271189756331893423138938091136758076711602982202616838831632820698257043064768874364966711556380915366829025291558977751991770249481076124097035592706992304330399559714997120177058148196690608419476162272567578809993131461825287811549749218402563870114701990118138805164990930102713001398584299747410621771528570077672155909779578090456119621531641282324076045894810083378485128316266689335197259374537451321500082683407399274127431697366722183526659977764468182336127621666968998821843534272897463575976230316766149416012017454055190556407418375874069937448839747192344561281709598652732950929209701012015940247382395678945564180556376176950901551363110523105878404651455510104036710239559767205304675301472846678557983093141750338014485030100038157135899094758744604355821765286355319281391925361517386173399760203969118819102954924438955652709801321149381429981192927446436506520843290753180166814448851601681719896749418725584226710417760125005096128929558902177618624238488731156163634762939824275947956392259948593000630819601606983438197552418717813392616253601236571422828925349054124774188332767750459071392779801580031633851781023005097308195657059990833462355659166507981129261465852601610772367593388331526414739690231818656031017832990863692499462139925905789997738415489278979829276675787526708422115135597971425903541534546086578488411918617670348378287645018615797446294846102073459025448227019841271689869605597232797135722041029074494096991491046991752207937171618996471926499821506953505412460376322173615313008418990129967754260552240747346277314572516185182271532072494473405901687473326330884227525808765858422796731491858416257230231693967323760050565470986062029272624438593426334947493639117397725514577783301544188911483822279281740930073253884530063927780770384984286124438203869275647781858223632009415521685506413219336581632556688828745634685659608700142826781494164755990661495279406269228747875330068560168885942787840631461477292624105633363211886796928831250102174541385302686911159144799160928195728429203280026618772378533514347591206096083322499903588126909779706873325029367205544796366710336922294083704111010794904511942924787630255119015235038484034928632269983495746105428043074852858897565388060072615402261854143523670562669510870119750544215864954105250102887308237421003698698861963011407685632177452908693046734436169328949513993554880721915976285450355146033386724734028878195777269199292979158432206202422479980731834434332568619879823793503930464521628901276369145030380230833342139095214985089139220261510073335395270215966390824780799322200678872606637852392456735679989344658115872390960521535189876522212239378581011935417265380426283308120722057438431698015634299246063566693101012258733023424379218124312857648097369705173849521878395755734374161269017187212037313611569432136289079602775800759201503581229388475402563106005726181946510471103704848845158944014239326785860273674458960988118549416079140187665435693901600142669386381613519820508501268539950824635665128998256578941424877477063848746203408901212435572670439509154388219594506224167568075128493510296014879562827478242895428994639866208846004273016610732485144459148178070741423424324737969341911744747510749722404350247707317347661737437371360671569970163312236645911518453558495240233559235627331559648072863238119254786468522484660923269720146974016597041063027343348336136355159738305120305038117121225036390060538888908138846077554307082578579664933699468281488559628548496423822412917073375498558271469762946367242514790053813908947293106750058185175895197373918074281098557664441270759887724440832776148605767982490351415246410864071511769361125837572055682738200995274617372559173603093816570073892395334251921588930357219343995086927332440169018085674293213024138768819677413870109444319337250212189763101415529417161622415502426167193130754939393622421664504891066668742592013365807953795850152919155889428787752725631579219935114101972909842174312899098961892207287873857830489714938155320302284242303582785344843321631915029116827783491838359009158759882416389730512830078845061450264044795017375514699053794054304451081772480498611678237022682590607899208756851951657138331088875287445039487025279099095184407464564517012188610135748121200377327909317962226192199722863546861395933517059851042386991469672201050037102871588088422347306424150441896141061189816837056199399660738334680491404911350874625920304512810432211980299842098651289751872608684356260519074354623488612186681713919388197719396336693965799452204407613020108350003033469264697378899712697378346540201451413974124722143168447845223788045543799165839547517169266261115349227880830771482484773787301969865679398071489387917003256514086861542510287632803899357396397703093142766148204867983528191999361523867759158135353229716703308199189783015778244205592361716483776470405090988914428298786710072605151139235984793009599751667433177866986362598572053099046085114914881747180411740416436406203295945357052144217903368890735978204106862850372184183323202537638912442981216109880065901212781534702813139731193850743418648484028482840340061740292971868242671692582729458283500942763339505196988397520092956230784609582381196486169320487397228258905219050660318825721716068597807304143031370722041290827442298832356108936654372906702795799709282703298413675013669866116752945113386355848042756857070593245603002124025743141956329552077576202759781853567791175268024285952844376999313711171227427507924957166775346975385869249464515711035314563327694130695140547915055209524403707704606583385314306975691998975511959691265434201353262395235826744885967842586423744753323204095970688894107741411353576525867598173762979015085689434719843728336074250647901264866618461034572650776602879776286874413174239737038629467039957198471126601468936208742902892411477141801028552157262129286874292224912816010673127568981270958016601098310450985954816081447811217156702830136303029109962896651093405820401790975286431478556346514751904260290729539067891156817219638207044273714384423628237000760654766899672536881113930552950446083786220703226633956685001415921796570935301108460796179939524865662284403735066751256517176973610419659417260925186832442966279917913886601984292770852532123336282307124637649936112514566188540301621039339464122343514701892130401814535690619671194601605187143549652700625683616027304882214166124227102416557025931029104760739010273456737738688079682001717839614213701757866422005044111607151088837670462561303869853244703272287064766393115752510414071142982576108393440349068938795159309889720768679426953878280926797165700864248140859374706638881472074081224603710307578068314137605850656415084434634424963083193295501175841058448684431697322870751609880171293907193133740076249015374787515445622408742557688483361817962635773582513976731114148357187867365510989295519454550909756319560092712177240192939061042984064546728678302791045448896995643125766997447442171329207694335020662041338233900548668551001177017888002990319817058459779428698764932342610052870747084497838255020659625310746713499662928053867145807784336411702905521213809585893494824195248174272577920147154583778821006959593921850288936587952192799020728814839317782320859414151135914287849289954363360231136622090999747937026414906995169555577175987058163676010553879258548052921281651466456028859691095560673941859265710859366227846540243012114462481452505826725524003365036282761136181556379616238694240374047098252547921653736687757853979218938778868414817088439536725993103526700242979159557776317345468694160114805210008665311034778341470065221698796411820402784926893256455899421937934769032761105144314292777637425750032967814922730366026969164286436688192415966705412798096137857532018923868207740069464111197785762051619347148733839281261706483790889502581220794953275004021526932457748356973923848507921458576186170334899455485710844879354566568397094178047451407747422437236059777487067383609274363458453668022630375509081507602021381975814731610856839004730390967988958256309155291106418766814408026717299491610543865372406440715435187189442185856053311521114624776726205548670716535945397099972985077133936615502670074402313873389912797865792328584540053068852266714994402261777084536032284294510041300607707232515240198244306268310728780840291462418749808205687311608860646014687255587197622846370522928383376876536520052026035043370537291949956913303830739401430843124702510861934042426757822148663946783892291810196126962345908624408544494839730215154242330433091995794529563750076295863811999051180219296613949430915597196665171502326182831833455060507708675687392301435130356173564233073303735466757718150937655917955048935392153581131825050827730858131655947912639595716958268717378496453511064331609679127799022231819039322766881940412220795432745862492367815579594306695137917778253232328010631067448473946681913582602013328662331732936230794876982069862376239957395084510548929099486297030057798602056550289466855043444870994343584118779615005108681976653791190263098813339136292975333382115371807911505983546425596057397737899981336802669925002442072726002639493798191600732035993901310270744261130145642104878351785425199420481427541740259872156431547932604147927344869560044508400421858843762961068281182987041860879758978645638400054983358380630237346449291185255856675552173215690679791859742662330101205426167293985198564571934180139640890430008318890748901670543743060757510396390806315650558420054972359775573336373228065807935865086492955767370314532551787335529113996228294427678340436355627843221956970669564461952801374248456891142367221638081190893500190594318650531861523435541384458783615475114000101328084111991493432163013907479754797035450901371570922054894999452132354140224976426013038454728986837060075484773293479937543740327784661908809917615442670121356993542787546507887410624310487945775159866688617525768214832402696206947589371467135393061771716126571840550562714004850788075134045966748227816491983030419369402468525395180814953976377507856357795019339679191864059271458807448781906348634383760141608443049911736350205342889427398834874526372327224036515488271246449988408177840662141792467872343368087404174248048756998211727185621144578100526823368009743263345885475241717611502891949873478137045451748484102382644748092584514707911799361575242441086409330182532294336598044893854037982300953053113612188760028406196912839361240240148236808934679196822933067738698105212505792733099022111252984903632650589607635974806406616001542005968543860927637605619693145266427180312823397931494205139824390888333788256120712857709562764080998084487134180524897883214779434508889541615174420234803243331807491662014073986002503063406236481724494442785683692076372193685849058871542875384544698578961133773479228806661369575793740641052451158865234345323343356217169059654031737870818654216920705558907982256921902838247641983619402096740659605000780471341622076982934553913729615776189974644824378295322718789883639517362707218183319231887634233670670198803874146069772997596812792512861825795271637742310887120668415302470230021221754842229432952136939954861102161702005995115101604665748532572472160191115146720167838840760935956163109186455719016420700794303606414744853173615606420359613685933272433671853642331730275797754115688375135814099682669331901491989239998768606227588441551121591855820457835309467886803170888733808230281488525880444591364698257494125810496153152924227119509318594224040446519467374450378882350101086356576808391728676539207465995130260980721715478365984550342107391827380371317034107669468679497289164200272843380994786710057938416978775135101462180645472377705661890997754308168578906223721213049079431603454276554375165789505029916300818618482436816669264451697685507326919010837732964396663073654255572613480045656186934465210484273020596216004136626211933331278347489901310838314565901891845199545103810626783125007950371952980832286303810337685633178851552505672288534297970982858607992242943527124573022071653715774404589646017062037981983529838980177991527787945650882089268725102996551266864954201155190764725063897061879880933723259054605746676537179375765300046619849564609184829247216256535065022162332143278877830938305867191039037303211378202819691500365756380345616340637764631546792501394193274660616194237986863171654628541084272732900273338343850664309476835826512066306432852152575132007384361268993580812026473033138384763761806060995967010619202473552218936284834139355193250917361901114006020776132561166035840542633549319031138709158696015655372686498706497114546350639689075511505117031085569366406666540279551024329709721633432370061846543038306539555128842039988296544823483678441982276742657737613623689053780710385379340230905738275696442938706216386580605556336299913339540956103448811432542837043346519460702294157507665921862664083196555258131402260307716703508519778412141908007502486384619524085501686396662611099420492301674335870810320206406088433193633795767009313054207204035340956138866017805039482671592561949823570742040306686078089337345039556688963443527218965112656070369464929663857408487696043391801150262015283194430246696823405444817478543091322010485788730460992368083613720797586816055450768835447140133747607897109782622001002397477100467501087665419549758371302808906739106090055886576849812225091715629957368607126655370055624666777700156895795941206816390386698368705107506409925831624598257904900428576804956582374194957768540615267972271568505487093741164538666795089472985913961423907696355272767182483671039800083806164011509427000949576978924065470320292551478911267084020601230896051186648791644642153287038781176920643647693390567954509709858724101785523040722690293682221128631272873325393450256857975778118573601254177707072574248039341469650272928191114426379497620789642130415553541396311106101304007953541900402347011089703798915807438806663376968478632150627166909575047107728032165949076095638307611280276058753488950670912280724243842307977476171898964305821520211668868935062241726993205927643859354435525993650194612185788024057001262547605700358303989475729608924037643656575528402063369089891245760433155941931878369827637012849715848747794795732781121436700841195458634503176319047190646339327182118277755467384565855558265573231704941043453341251011111651923900224677242284449091882467051274822814826807376169004801135083780804204036085232713972405212465118331544938161139276264450088498993074379104961113629984802551677573728647269077987092027956396281717382245352026199169609415770675103074838236256943322488538091856225110239316857027952840472117289594483330829170627594463903113615836766979498238095987898597825462170567283560661925520291334837977300641400202202546762405691590345893955588956238263426818529009632574824211286207290081565054444408899904958437023742021785622927915972850300769114635078562863033687809982643345371613984222477322388678399768410089942347198959245468474417891195402994418057802322002622549078572043592788751974534904545788783954550079903262676130117664190345713205571984093512366708781828584296829094725250083655510052387891965408685054690488372675414182776427234834224447852595722870041077958321841978309953691057436642926853910322095214538462822772763170218980627442175799525705983589666344838256001847288082707289568145404299939359691584895898628701960798976927055812687912872195468588888185515844192261666592031636050267984164794706480695483928248778332071273780062951121650419386703573554109012737732521570688518611562048610414482401184623941142947004647603592570987293317857661147761321423078732838939076136697348940853267894401368254112863162619488207907276684925556231255813972725837472153501690886585775216591010798149881349606615784930422272474674336832085680059467638729149992387542660695352537554808517953374473392395643006060717689428531728282979460510116239305157288785466418870778392832407217638053393685066217701463074202193430829303726752048000674582470429872272930586725800352020467847807306150750952393742071915862172463002489304590401526181490859111794846728288368612223045531617499053867516327736739639414447082330314635908212302467595173449015200847985532834047559133919795406626369964527874435108700686155951083860653941736211532773805282297339886820468776674421645849800165693036862032936949395882661495993468039457982549621969645473419578333383449797653199043714858609674354331926236176839829981830358194261941807720849639195531112778281055922567435526045850100060342179398601449136201474219106524720539780300046041647181509152590141143335271547699024972061401619031466062330770620152257758185615914206428008743868482465627362079366912485616248437654328318836814964713993706454438402138560759618459706736933811480824709027447316669028495771907602720067612172364501638952196955406534068931255751296279150609771013064732547551969867642094838838704026703156897748650583146255594143929324107998847026431659663294732330715284957616600058051025549498572439933313834420191943546512032110480697841433890588691434835692312773436918086651241468237442645485941137641998619122906383928799927646949060845267302612683095157816773863510058543745915431755326776973126332930340172183354772739683837723863306716822773654102509454115674843712406489902618395260933954625642079728224009590466814480476023781755262618050149211012762229024637121489856197895341621821279877251238579539475187977223937490834807379160247184910902172013661836193665877307156953446855786317925986073577663402467746084820084844217333850550426994018937735374746877355732292025653847305638769232014224411485299896965929432769004077668637521126251434478117599238621058167791242267624819012787236068253332437478773737547053366598299398974384082700042264446804950015931244912112379641386536655565082026364581477906448273314967868905240512893493225519814941861870648225242920768236572193561814605595993293722759847633208996079707429820544521353112156062889779780806602950367410753906534364912715177632140389309743821764215379991052338222099565489573124741815227791789439809489535695506991379601843253739231219947280664300744932664549944052046385695402701967187996371125800392361484885281605515443491288375775513332051897022117273917009756323730954955622364807497230334028924939148393396635379075493734423472953166442042310054274120833855183275867182551807437392935523686029295576452460190129082425875740508129959494942627968635682982036231045639645411019440296034339557375598272371924820879181072727886062784358824363824018508594282914618517621030854232181408881960710059151349633829822065013879250656064491631261397215347494869915527193758776733706758589330120839538404761419662863196221125265611394669066312626766621080364655007433743612178835040577713202794000094878074138282059402580458064975541136980959329390507882990940421096704708061442046385276510113886432473622149784238936137376205511955196209956679660319575945032663835471995523611887046067726734941894088215834383047127612639435469245168315536792028996400766056298341932783732259600539658459049807976261007078713002024025324179086006457100698782116983403889701087464761352126850518940028273865226363341236665691200646806996803297204725502014336840612269964594924982609466558290558898718574607186549511837064990948258695597317873032796490523018964442459118071665392252035284465665796124327412191761850317054999808417940875645984099973599145903371594962078346648958697322457607504340111025854264600283078283515763845550850728127180690671487240778680753615422991558358153460489519060423302905129653291303245013745282286336570420896054178463091383562304984199398659650881491508943370286470693285461018381789020685498938938688106571663153961401306241954053969111549058685523329748462412669751381117021130105852605545052033829661135476736397895529278128748764403668919717970757376173760086396929738111939669409862184629853407156487690424471570560879333724549848716705351200719534317095290601782878810555202721382367309024992656368813552853284927953663185716769207805511824087411954483662516949628037959907634014916163836213038908744132029774991717749988360901857118059490335397221001042768870920798259999639609229303565166532906521439385551305465086122293019073674249551351795418831102542535212788726087582998718227388859818831485190552056726964550992589354022277371158906482259693938261734281041360221444447542131664370427230432523762876221957744502229360951346935319354087771931835344354837555455700935047660191865790315846832474716169690600785580306786278912832549513599558098608704254628328139224402788668590286664350482235700458731276262756248500679732294030591644590286631545475905805353300253127914688842666438415659777354529831860675814616728937301223819106509523736520988505705609656386565135393887463177979543696426901031528868416081808282504821591762655488998837290733881930940316695109617127099576885990782402407690126613390878022879243914216770330040279148062812435645793339226781088591823851241945075162199302546990128722524997756988850076883269803135143968059813078456939263682491380205338831526863805373887005982399081102076220060737951493922631167849746342034942367292893620106948757701733103757899820289810393673728128943312261797269587684550478661521379565019074097292272216974818216784818934401123823966645302821211679877930872251923807914971329993500457831699321395944473694625477015060565420479209760573236284870269472986342585227392915498935877610519448371900209625240745523665939347227397695275388853695583356206792115197057092531793633159329219554875089411710651880109123821510460216090273768091248580525321014963840300448354987522187921552041651029290838318768482230599311021005437151786204759537942301433879913703133178109628211531655177276742648670698854126445295223237531932410126548084268853186740769431495636459300726329981883698290244545847334605962420273992411104087367597522158562832212905808394441276719455499779902601755135043367632932915911993519793636989490250567002087855055961834803064453556941765587612871218830362741063127905356969139626514750374865920659559070574700714141395442591310933067169206783511339373889019805538275826702190748877002999421841923502469646052575913748974162913758577089682050805138448897335066689689839271289163199875548217734643675091953099030122129625357851207770001563216010214282803783525480529733624920709611268238352648926452355039493416932875385872449526616993156523225388519398170539948832175530778887270104265359224108031283304343978986620833661155712551662395806219228765653465190913417224548991790652382369330347229904503329042261725596796723795888051637690688541321268919388990911324219739503546176193510159897864356884357689293733092174086892300419930372091685717937162920316223762730598987239591388906385078283970938990307478125017531723380983606053176765433979976745486963019392808254997855442006585822131392523584986699574721903033757163399234961084547459907132192282950384610547156936247692640394511350846846059073418078024634850275603931225095176677909216400055068048735670981687603863029052384713818282386906030785524487435775838650307681313788491113765735415096981440972000532702555538409563591300789587101296538695690302460446982115663640744460200017498511079509114927756488791177078505558739571201971021522111190509682898410698878943555556619085631614530999969859742105182311330106149755317303961492344877104916047248613595225893027502941668489529868694601869568143385898448327729234216227866090206550352915823344889594570220460407139471199453239738067364562615763363772973480142846872616582712406617934733943431245848584860803937471584692226491377904584422930914059794330449255092909966056004028323246184012330050711481994424406691047524824109580225725035417827805147264811714642450869892494765754813719548439569894099997131707948790124621199824684631918051301658120221048264559200943759154842484316725976037470628611956586651505900546744311298491012930068665377585271474009346847543109502609701775651086920880058181133605086510846425674982486217597361539439352148074456548938088571307899606981490941738572502850635079492141594411560837279319499494120255983310904756763191935820750878042702907832473787465022909310196319723700518766562706332999319782838135857219143979789018945134835889501931726723162886940704267753250512463209196826137984622953188615408709005836583023876967922183631807784704654844089495206378271017043519645360936315487720642541583110878167402014728710727872276345754715160119721190902390759131432072976565200365486940714577053029611713211000094978221716390419016218306897620762697416798942239757669581113431472533469132518260611814205454288954670422824936201791699869307214774035214745348349226885313481113589070548883648528185311991537866726770150788645718639693079138988486343692941928598853378516269529868192092804376280041072461877235592490735047688569743061439085987680920004853252916288088267765961204680698995069142724243465296804292083378808643558345492467044648109119924583222929960804424207383996257845889163523904390449764089479699996934803047906300877813286569867725773763099712513956672856164891902885763429011152393950471534530083012614071443961904840212622510226235274658547022584976364235369044119008285181057098010348849039745718385717064805387407862349893323327376782979473042592483013480162851637059444452470199906798580981617699723187706833787304316073781122217217842997595543605684800345070830234812674742399961754737193164657652097141013213187732533593077401655249805286011255774023637591331366808876074070268210432612059568263758110362387393771667948699865830580576522033219054700640354948279518003638147616633698164790186252429971770672349701410461759722062516397087953020036638941393067396592273016307113339008749709168461994870786450956171653196596627901706944625913860836043498227749024304179731070989675083929822438055089712788996055660607898614188326473715813063633742332028803276821071604586710354767146933042981390226571290403962256840683736732828149745250426765550508877533145269258995874815715135135147973339443683343014225013441089049581591283959293847239330259885101745110991186066712357701168205249549114594084595785796647361533599291336356072369774796410592393841935111991448909832226844818741559411988417350586226503860205743278328122178121273164391822244517961063235464487300837763416071224762483530997626416176383746068929025217202138937914263027229158197229790780962039058985722016935766044505785562547608426317843900658794245599623645556420499696354251049196186970564119260667725855743511860876928836763778224968165406612197840364323499556340738255202919595841920120289942115840543209656841172114330284622955346422608772568983762331010682621721438463321130484475353465840738021840512667928272422826880005164335493420081178480143669123160372297553481904043722176488440552774491553910700586465579531518359657829436719534982853266301752256806071615496394257310480496039021945761224386820770658385607218649703205514864182920553137082687383074250253457914573918375756022702181028979840953197113870270341167610617509361332332160010474148342426143229080086836000792297553978722503665715348312224284138023553763950362580797559926158018803844919225000328829888172303685475910399794237683873080797115010009031494229073627499006134871422858729620637970591151634817648114903902140904997626535740722156699755717986922663385554314035384140729784802308121436304291446887026777318361617383957978465233783371725743391016075012389601351070273484335848165410346010975529585093764031386696433744324504370396753439051707381734191913319814784556404749556012810320171709360264951428974452500436507492665760708708223420670716351834887902765558195067582158663977819030912610857456308754919811593796643451874399168238660746171318463699933534576825714194004465993398855580953083637114120386996247215349064932067040064170043403457758637087030859175154089611782581477296238229698380886208309144103342889862515428692580812155283630603912449276857314220850405003954420128112968234695545446035851072024599606840193561989309906014666016491044968992734494773230495195266630529764524865864202078799575136973591644066342134469142810118886158304274790333721989496355609726504868453394338929817333373550533154837867732010596394396575104737795009332659949697189306197375549815271706479161999056465401429804858580501960126886294018505159642779115782220973502542792347985440446325218577159955260299139184217352400698778926951606091186597888864675744532320165805210903375403490937120805321954381998304098975210288825769556036031817182440550122433435860820460107350184904169832958974734555571897009770960586908968586800444477873426507172887101687563509045916175303364895308700762092551585840025089371861862783735963578618328173366198180646293013015504557376500677614154687036397862022774152572188075365151206064986777215414182036523187781648778889753735218330392650475760385499369853267417095188537637288033093195115059433174429789088182705463890350220665870899943721800217179442429954174830774038328727503577038063932741170707146283355761333700276110739964242708336440116867415833842433698019116641583331922777897841351234608911481296031442392521619145096985617015680795997211773101635762575949919865910108488699128411221999047298807781306630770624331133700420924920521828784817112693168596102800060930348083113985532912634998363008933672508391129247712984932565470615464615327214776523583127371544010672941670186757329673190491214135117334965961106928105709625979482270446369994070426837075109276323586341206593896750405830994532954768506724240806395626989423155563804702462634658986742683118293351481964136532013158152648804674199654021570934396516231288069025723548538978910042489778428728613022156470175904627279397770799047532425757768114693297802783690857936402149416246002239864450357657655080263784252679982860703394474090853751629890289943556405753841403883702751938452162306793827149380571123916537461768095085884283836551866229381781995045860083352424253842140466333117112494758455979224354522751053327725894061587295504165931599545207707996351568839532329075938883753094074762253007931190067129732014742682369260913587300570101343561154634507626927876237483252930163156682373623856617515765805742409234233815862502483521635563800419484315654788860692525791162704753465572111586992757578582891644030941090870308459685296064115328916734810720458029009906099963740390510751207361652830402915560847511243504110338266585110632319932705433846705837407414976636985244738925303173163546779371111502958863535002185241576376629863052678795160472401298947379123347592414601736692147588876048312666051011080172715802388813818611474406714362386398971346625064728953280799664905318902648889831772817191015723940635702203923788471270615306893855152180946304339623614752783551646797602273480035114038728659838328310849203721163009981448567489497265537499828714725395874115697546378330512994949068537492201443175605094140580525295376205135424866682411013954799104994990020337445484265415002241772246463062980282267762601802870380050288795930806092850431100507516420524702082256121980083671590542398583777501261987012676389232972904399253021207548181018528909234576122550790371519320512171094254442215368741067792954455650984350848382307903211384721847578492843769978276470352168185223063257208502663609917262261824275130751189655959014086571859377570017005337382366040390111753304486423353211928197945655697388899917252696567420030064263903958466845504298757606589790437662429932078057382667969215249383026391359040184600623664459357317130456812380322645207249511136730806235180096034643179680243920459958333763154970089471610735256855521312242376614762856262577510208060659399986294963408780297368522613857212065879600365474569518621539513830338020604599412953000559261973414953696934918927016731549712282912087176860973209249573751164531050553869946797416695563848627056889534555207111137400881565755144812512821032072590704185518109505920301864815852011589735267352949189332280256092089223152344919866855379716460904132770109989096557570534020578455476920482758485568143450749437170005250584882391118384068451788635707825410171024141760265295651267567829451347324960615731225720510944124603384777080188726880138791594540383061181632833933708520073181654027380660111749290497169398419588536751621272263118991940218419518172451425198579913083719928584105220981048894726959163912846554334078602661110683306785722659656769561150642416762741237164073365746564886365442517312643349809324303213756809282089115967751377440218926402201836684924008328550160636649527591227596838205020223516906760869443378455646373617068354144151605064488707574715804045705025672125953213318608583882239854759305838832074831057734810664897303962870965328934665089116177479008941227748858831760284619344689082701642246757740106220457457218858850346746223834427201249995221531378961869281292312356080883642959830635309439336951902222102348867419742027846422878808445436166788859984085682454212778753006521612917121605736454332601315586555235692030117081167862719057378988546983847429797063293680860682180700174486572681697328297258557931598162009907972855403633082743983226273801583344026755175057053651150676444075921334623955236853570870713208005079846327724012524339622488482320385411272122195734131670618375507284785839171518141196200718767259692744963301864527693069635167161691347494779486809132793523249585279390725701364905958019994380094381795273516833446810903117907731692624420279351381824686834692442623653631394833031454902978873500328666272767732270133711912298159914517248507715113210222164408323121081852784202020026592881749081234636582723730746765723631715716590788137190301877184663806334404348887388908821923057689300816611792228706470909569106044626339614546668043494685478616727958235356282680148032322989076234578695271404462746390085571879987565262979176888131064991654653913704497670707418216856364622697225581112271768975204605511092246636599635737600807212110033743140258813913466247300629387835545672639669498931327160145504749523923744091105495066318399258118838299329577943842895381910398070697765081239697178892087152741817006536111638452364407271032316210160594490607424171293342021320597620012002600777421850499329904280868681579498608943180850716335496996813700895852296286199894053439655015679635212790460663438544953140588016638395013487167528173827917472299437439565688838357704810613752517448169587832772058357299836170630671001734880741624696495442142540667305567264143724386423239036946094551651223498960008609959178602177825741319817721346565053448965692250050623309429938281939600839730888965311985914086304596891389330275637394441632897243311354889312655267849041360617199754130734219310590691665154937210012352948838442580980274409898983947355909665388577443394104295674731622496379356632841188082171236182818010106590906176636283849964028911814103743500526598012668364911426827752010515321257257333141962219132472207322192126770111178537101298661214670205437349444767611201615395799516071546807512931024209060083111504728986876835112228378186085935262089597741595105493623080933400154717799259719283773360932056992892671454418089284374210839962333478254103988682963081516588481681037870179234195257419290028358303980539368540214355816442692092645865964855939847075404537717713752783807696794075420122201787080114501992060214336723428156589064038095692243336213436092157532323109969428197680832223490294821053974524505118503167792350918537695826607972329830674545194446042192800621579621367962618301170902193147489103220367136929889936041487450936062281688337755496671666815778054991496689336304943621061637460762133996562618607021613885287864079010623964757447070336948786301307002859317602724768124306814099369797414997347692322596650213863140983548168914217263570737919309772359841125083483066414202860227876129086814131586296697835278950408318699750287669080637992879362751108831716669913272284943195534906910778428062601619651781160187589865340872714660576281114472534673592004186076381712879811003198433083710247127855071080218982391556674458608300150361452100367952140107995710254917485942836618773538422177343726892714828062403958705650397124624907087439744474170238216779593344268944815100235957042010798996452625220846864972931351158604006131990152870176764229439797233372740832685064437195059141416985534839396814131729127276260852679025298780766697783587616016088335340742296852754950830225746706058790389216051472740782184372044720231307381036992670042837522717150079587556391416149942971556431885249433974169003528339350070212828789002410407009863223448491952090193887175834133493607572030396487041039353768932181598314155880293539891446285277958730510900441464345756636433168691492641071933166021448940310274003966570722676687236209735823561506470544866902216380965583212306401990711796652282814779394414257198862663572473764649996896609092814526977796978269753714081741747409840815869815552571683292415179851842175024110937730636464663103558188116096654180701655054359444644785128699844632886077903481338911740625122738460301312963794836367345844379261276923856950137706940164043539089280518942141686727035160596638167140141816179173601719204475615127640330186082673957807897946734088516814758009802538436557833246471613665345754948760371562234753061882333099094253766938818717182550181352027425428589196487773397031626686717549465158479951838366231339173365407964822302594184475700535477269976033985121633205090003372662538907045001085019032773938759603253372532858794554127363672072393591550904159124827264260504856965299251679850943980475093337446687328703255208989831725328942895474231369375618549377415509476278242816967704321799605550056713569320653278786766822025312327562272478330458489065165809956324455792599299832913126077023205741643298752053216958391613484049637202455540522136764219389150642127089004231871554631575958461032730355805169285405355578143485288782719780446276090688864346962090296811394451794637886736634658581713551405437865690563529310750229498408229216056572699329189504307677930852300210757323172149320517037899317759448542425974239433726867872106788597602981651768341656796603070333039099092343241309183141943629950626333921128825135050566021870170050008493788057469899027953293854913332786051370167595298924036979040308908905765839213602816165156217833108914399483683989352973694043128936675361958598661322542437212377091817615995567333228470661832225052705004032148185197337445004886540060718922847598773535688735854369663494114099658888098020698545264276740564590418181224714598444820067923332202717447674931996963333190338613154309602721712445567172556384416262525273012103260365882239430596624310783826189143731438413817514177365812284115132395361160161055386775776996029773736591932641546136032083650629086593236766381533004131908895521967473149373185170766215779793473944165517617187553990932742210813604859108358727177906135483633853292728298327181730512267128034449166811394633700538425055462354687713392484677086606436136076259808697671209520204203878878808946385676537794459430437343718461985678420021878620928655181711013914204529665550261842916044926631279571548599961591343150858412320031044932894887899275472020513090185626909933399286670833221886030378001851526212519068873526194596258437519443740016410584564291751587148406891917221247994759638043812579559522235344980193797924637364386396249516403413079868779028526672616973787556143333482039865786894733036204641474050636945362438240753182858928966936079153488965906749594398929865682667583004974549427152890714217130928388463621857015981251643298329484819101574313486572191376019815543317003792953425738688624233299476619745265376703984724106770691491233557660047974359360380878890476590051585447542423741979175235596708940431137834768381165728530279099226159514021804881698945325311191140763601877972311491209518513894168376462135006615441402652709613517433680917055194812048517620072922416706170548618129012994424604569038776033126011665196144240642239343619359522207532705463974007554767174855449521334524400590975860917203846820340655584360292004447465202415050805989967235605273606231274925542472930623645742255739157035211334905219109594864520765873501646853438161479975973676281777091407786351744761078080425665588568986454561828927756932178883651248975900811666120439668484087322067653346367574865010306092041700648256853807975652823962608234024805509464143512205932975031851974817734688776357258240116462926183589435610516679922914537625101257605211381047231335515760734338380228684426211400778119534449801818472181996098468601496586951914563486805668809453524494808693848119931700343453813994853685599886789061679517636104921837693606027464322759944468799903395193768178436279736000235968310116687078687706908678367306566840724570066667853911048439081459432174231076127410007478774096229059645711905989224473757651337976942827196243411582812967027347214925331772692533929143012960881312532980142705046109212926865769203839100634879309831494113832912051412552706209019489404425927149469328115527998171472460704472569922492943020527065217895468331645571959172405160425769191984751672458609066924160369906491869877920784223926057017466943428890733745158016114692148578383753931768706915571781755474766060915255770772621793586059272684391132123800401127564722539653368770331773260360712453395809827293650750034962816653938440303896239218203348719519159676682366283603419060770330447432861712178747878357353173917274160484028832464641352902095564482271468227874533742330515713774379893973905633786954536525711415767958558746020192238127175177031301167029901021482806232243096316826915748619419510718401473658506694057465570888680783752153759935438959683922123759367893304145807388436093380588429406190242214888764446985696034444276842189581669890101965206369304350196486094813322992504580267059855268756308174358496874542757930033760742333658592826728285938447548510713157605872488350746804381452731358054836984288284889798722610198871570489383421268144094154897314879751010741033858900082941663984375013242922685677770103327390991339952411017422674804188003068559298245262813665180745985883853720770194708160308807429961026502499410746821330028473766124326988458029382342918478758837943554956952487729056978169349985878651591826477528362942091852624343587653010134837664953229368064161554252896118227917907433118272163986670930542595259088827218444539528023063754582129684033323513327898426686695248313006501394670523452009713053204173026893284859544838535613613893077023503031475527644379605016061124365071790920352219284440161624401310690742986549290916777281920620086089879416235354210325640339966727350852191937679283917204359057942825063452502393509272826025895440361029135551097018066418264920819557436709929443964646204658156048343596847883040137322527112134541546309067405510037336133077076387953145064467592433172256899582580198350175763332549276126395436608704928181378098738143736773370767084117879310159528434422299696544960169853024795807239933688245624082809449749524738345587384284382326237048498439094144492222934894201981258161124725391028933893486311004747373930452707821617950061487330932902644079448940993667203994724870482181441271925904917067638710942863428343502654227195217139423425807385919336749550121327745401692477828384316571018826351540618791597335571202171449772498789012029390033972751003289738942411844959164042653078672403899935186255681436864382758181885330523089043563064956967296643533981312443308926974411936889531321950525268548534921929960263407071816562089369690650073028052050449986208744629586996536051479249600302543993024770168122747619696253381686391293284811435113130487620631530643365709134669110843293174140449218294158838587442270739249597614617759918178858053164446882871139069016291281218632180723431868495202437467169864149962441623536550262123439458232227596123662596973342323474537278844161129756636417621265788214840905715300531191519470083670501485059363001992535370811704731245516944617844005696867920826945278626413015609906902698767003414507522839132420375256936774112714403917063867470066397471810330965000039176978849674578517539277142891772842632133640906991397573296986087523657629484206460502725001171653434786158150182379757519351910393333615280345001037817254306071343016318054266275317734881821209604023329141889277152824812621039129276468823297139093263279346339737295622955970784890402831483357898872881498704059128919065811595843825904790455102870229233272551412989196371983819353584756243284252836631365013950744797414030205074371227646767740434042576584413140217742333366975476848470280053234753802307679908528957106185995460385709222683124161714422051033691309252051122971500801165374159615555042641872668380171067204718604884711634782015337556680382726152945022958955780761568716356905063706571058812375310806779663583166143871310572679396430717029489859885937881415606744988055509371737047369904492121650664384947731545876845431021308748028912426499565983661494077302514088595696870739522192701243880948619692463336225002026503476745907204092625142930729355935787124417539453477920317525646917710791589204177902477791102471157027302237776803792144377767301890700191837305897193369596148899500576660454530221399344657192667606548612052996604807061880573653345503045421056609659718734159078372038323840188975736728756780920522148607687435772513236351832280699781016911564343370880846914657432417033670319611904883767663668669994742895608497429472665863080252045359862177911084778105597124176956835855210182527824515632766710406741802489961586163073080833234323984389920435998022643713670639543552577527860771352831415917712169035590414046921023299377806599847631389180939404647110788759321457854662606495295767478798197171752610532250507686565751533190112746958741912240296138203416344303935457703719546561254480282885776244090163954874022115403284640098065204233609837589768529852805326699592836409578925566452332833029269778011251511202581751450282170673333586123053169516980863833116740988363873634935125486048485186777519440060573320384440190086582987500884974514287145176352673445903391450200593352369118654124965612572115057692398483139635637909427978632890590485525537495408108899810869648227880523232889936094097925598768220158060500171501934314265396265177334032592533499824631237101100264806483870708090891949441604300511052272159692792868130167647671172624967678707308956284779466479829180489009797547611849038842048937920440294135933191020540773838968839641048471968044610590234754317301938146729673045644231710158332758584227090045126677346335523893531755706918497663598663759179185668806138352756339001412827087495085821609930864757833847470762362197963237590600401610775807815409815899546869898689625761697377808743078260675982785873918255849691301950509748376967259541381617780359350486866873296734008527957948362586815493451618060388982774285983404781432400690383896454002716570746325637923036251791154907667433572801444761823035205942544434382352955954542893016272785173616405095948109282818177055853158932656767358935569700789534734633260380427631466764007816824895714456157220262846526554042687258702960074676611370992594983558027048892342835858032545273918002402868838908810221322429403377562867533732435044832606685240712898092803539797593573096572020702155801290373348208484864821342301564552191202234307961534984542415981888078544611499453288734054699956979363079413228758596550088632932599699924574526675265024695272868528254947805054623723058076305423669584269082997955774193650837039512352984073164757440360484158527535601512142947317047917465894311377367786536153639530547109949219482664262881688122833493104642973744304937815457433976504210191298500235369939150299895475547908428849907401534949836157597578469421596320646113212725199249990264493235140589992899802142675346233700120696203206630523175907795143647362057960667916035688705989342571197600955139866798095665514716914369796097077799997648066348944195570228546134602758838880971956109455748963797067023395648980466241578217747634803256576814245644115613998084153092908907069135411264570855107774788147239694033771014955497927803982140103091895806134385361449236251322463305101714147691268978063271957870743102843988681409813013276113631249950675227026303290641081696591082728779358882609857199994423973833054093847112012749347732664398756672696708678774052807631969970026379630696279886691348401622733964645568235697950696150471957153696900199825016915519890125449995186276223441905298048119625587935764014582781505576158165854003307155060374908671967883602580637088548248744561794743068270024725638860290408360905212286519858406399984809857453560903240687230948662850764425581317972278208740972300383071939525680761173451802978769942401103834959730863264180124365453236117540834496035266079707215551902242565474928769136923605905326952039750310478369001053402125454685495942183734796523394893277475274140800497242105916265531483692395079416441064034742457083823797059385814985271107291133419081926359267028622400414839479133469446648942770884825271885118985994123715121151439181352173102660835676575538378234550805170487840008425205646328470843535802784016552963821819876061622788741404406007550000847929416681511388824005294355060037633270067755942488142252731893395443429439391629861969138480398814505176329363243679092118014052715900252310765981022204190340627975366802405677085813269035026436672583798962107165642730127264496866565059191654610555716207422492231466592610254158324983286494972816761676099585660965653155104180855433245319401679117148382610669997332047878614019727695807856858289092361980583598345759063963237625900847294410728119363180413326962360747846514897386640842368837812162377435239567180152682709519852609016249342147860950472043566311700034213506312010819801554626210442317022104175158074167450934072892354266141227410581974072424683345542041663151715188479791714295038630175706011873471429562628887305881402115422034419386466519297216637996856964017240113305038477903802137018257362460630720503497562329041530105812569168098624081785176872135756357784276897357180334732263257021896284020840555979988172185515868441624289957734113257371981049622311443869855765978579630747735461189213152960300794656008177498274202393323602692240392297004290069980427919746487453854844028870325914319130415081922894418912363778138049517629293880402863510579110337498557452027039997197785356374249765214248606751066137628793738984732379640099868956723597511308607866278653188628755672814596539261807521581015335048804459820159648913095796757010258437156115259150031907381520632766955084053680112684896402532672670954659729060851388353634263360990102072755978747642551057595501411933691067870131159282563039334462247093203601483106652127392334569160599039483872725848113963818024207068188029751304283189864924390475903134444461535340654396361994285312299334725461117124363491994918656086847779124635867087116875355420914117906209540607414259498751687954900686191618906655388799849724934343510144951910762637473565052586672734460828849409846889278609341683735832119566631315861515091951285906628715911557315965352972984290173486791464484217677585921215041988798068365898298567303955039591234375167132385044323758032601807455541733097239593912511550627494520858642504043239025050468758530741547040014506006094215482074623899550946818724107695612550001569542551715385305686717159322682781757251856245066234607616970228240382793840142943208217923027275068002348082404873119267877242619919566715569326989630635597596372916386864092938880899399569231122909272358148241653037001904631435957607854512327306767582272996991483754663088577586414287820668333566965611652659224196553189657114816303787158076676324988818802127211165644136514838193113936570212382528171214824530462862398808788016390768633287314652139649946299626695317227748928522865385889632398481989355808209520013754612887641866820234282376683082030323281522754156297504813966554011050471882843412294122112382762578522859383647957865805549400639037884727104331876768267573152632125892072422801221831637856248395198635203750298507600028976836182797223474713057066232287292159367519447137610607817832710491333089034186331218047680784867688284112247229710689425520058933617930288757480991515105464942700146338419688485219873486695274136687813213770237236812183789618806941596179183861489117369517406761435818813283203422891546257006057289001943651895834199817620254774074193081680782317614639821814611993726655001719552632042278410490147164645496198290053360445715917721093935041001509028968504449644646412802713181675220878047889817504229095683896280326987271633021405389104439510847404318410076730875964523216789898921404951727596529717724610341159354450705572265410644258026838228694448304864919006763687149190296892255778395376902792862722087688465456534985442267559567984474388082291954075984445119693004842547378389625774015425166452851168945822009755297460323062584271766752680933107607345092191433809001941046237190923126191123631633182196235473639672212932486502453297804167114995531693677578147708998894180378613891450425647689891490718883659509928595561161530082764885074868776879099210401738203596492001074456936380900106723784844399667146939844621942390542067819351273936024429509875362396929371979679868293436701021465646091710416278368118656527082722693035233933912682850490839083876441011563375783441654381875121201457159189110638696733140356790028931391874601667542258483894281386167620611636742527961491439725171532262238955971311171262211577202433682748612743457486918118016737930310516060256432270262930284111519357423070351919177370804712402605842239467113929862979559234702520388648234477518439514691162429805969304675502145695512337764604280487930141101420832268760670457897598447126023538410950291385769463138524875383601297262994730295082818733441749634175106653361274449938700931250206937504340588580481221558500252238721293602400558362697887450738177125772872614949549432575553758867985120668027548653424046379803231504718927655715837476458164643247493566676278663055855294825774285097107149850553960292269710460829460063059343783512951778418631814863250334935716271315933548899870809014326349983208274083406967599808545009796110035801740052610047984835276814204126434309910966154152272611066994930776622687026233630161370983052483036402607924851268716110915614949908996330811913870531359663907911831203870005406724939570454006171239049789996358680831140619224630569292667678280528907405462219533032999671957870047596640569802618674398043182271491015170044956115097900983431698163677249914618697166015042061018524905276784756369879341073307017985585724590806510846030620060041740270558665595265799864442122734457428662707111424214868356584520386534981515819297644456929971483460080898082584700753102097091960297336613568622486967370938848104178686525755947000280388716168191733002432167562946564874498170487390285410708142188303918839545071858028378146153188805637314583683740680495559626585590288187307415639240751961744312362651020309305408991708374124533983384250969267976524941474503488773218093718235590096914205986972035804232984441019795156425807560792478467690545655103645916921675689651960906525767640919109824262280765870079815942614490567833814905706467947718091853595249918244875854949866078273012430645251752781870102079410890254779090168596295438404659728916338210599283876892813579487402820321427849218598105743777207841301913514934165149006542705185751616514797868715655158768589633884991304856536224274314003905824767635541299927711401386004353543290410863501969672451994307840979584892188536658744800103966116395062283650049782645346011211957555224224246432540925055946222295204509482116275799338954070968074121194229785591389820331634780999185971687319694716416771456226118870241122857730419888832020815206301276968750741981731312254271868106625781934959935184468223301276018379043893682584891106082553701156845418758770275628951083672026945542832277472930026536596542115853314629916680808461333051304680342279929856105883641605603384144582084729015440005655889555086955844734962034498049571173808920658855591826336935920796220078474734768624209956159142321537635918257229454404168448573994662427145654617399832738356300771334312637029948426556400168300385350746964784945906988813920221997080997425412527893232740134464005855665090582801634841033317317920023206526260141553056790142445643333847458457515527860716811635704974641108938297625451657123888963680749431855018563372987119927940890396804007207283900879144047255473878558274223326063198414943129983479721652417152561593417545807388180378723172508150531909888319517321095200151081209978333564045188664801341161180034320024147615832645333114593360127664809543802354420586727758437524935524370008658127623636336031321903144182095697296988071054936384287318807922027115721785809320943432005355993212016691150396634879238671191761512439787627289522172483593088091703238854087221802741210428460935553596731992020955470502469246621276423649080524879609291298711434503939292494514874731157596423697852878821603357067569390974552847097421700365855030375047973102146520763523552795273185307794565460905727819847542198411728504788995494567135604640484746517557985747873031866352644093414415602683447901679123565964007687374780910793876959612297459838069717400750875172239002465468793934592618345948891612353275301861145090264213650570248417448503253408682667825447391887818311966157213889221172460597232092813355023094734982874244309188113037970793295097113151942659367258576394862600029740147491044385693822750347543582495885745925353274215272320802701168581500446958278405783122200297175221139214219089541619387480061540201087300402181537659885645937648676424846973263292021393248078945232084969265927969032848357847184349023080956171379703638347637698593203402109699104220185195519865785435393713179299090177364605963501235141508735334759213811075302479454656516656825750332336473500893503770668403307038414208801369064938292528286863886474130040702027052664692710698926887688079918906583630187690477225710609167123280386499844963296866655694290649348063578861891470764568811204192264721826369752003953151897349160949865974138395331233264478855401273796198256673444666906224070743871792474548820477197252788616408048935014759684849471791314703876207773618182931385384298564518837957019018458603079445004209801460120821701758853371201361612757266654773582188835876367366622929543380253057058774795460933616840604325275832634567315948168678714213769215538322007089809965028497158458603976440192226638351005279718861484226215580855472755045796074920078978144784507342207122384708340249875170002551313246469135948803677375960439336975846715481538920142843282472547350051245983594941986240424795626397121233978132921300198072476155977667962629526707733011071347892743503399027118466456041884777039778597719029394172134865794910633709096150088046981142012785725150019403349436392110685611012112768925374754437589168204309756390989256939131210570105143879313642285012796509689160885704330170727945185821932677087345538097012094775227983622326500132740644495439016550821399623177410897872243380228424460697734767338524793750994075305863633042080992230158314234711743280119423802888371263856501630881741153136824489036701151841747946865823459418983290110854261170676831086423468853558938037696301389013283338121513070472514119841780537623252810698180725714472000091225795069419932105659677877408651625751903915376030874068575313527842250788888723131466411498330808476242250733422603871646261041007439851219572013552317276297605870244458005191323854610869616974646254444984977243080181435179502789519595314200999502043210019064914495564337981380354420914140139734370368484289452846731817877382894661411238724037400895186419061485094060539542665246721559230058914625950379715757211271968558487880700390036657766659743518223550602020685822826481870699792224828660995386459575130757702510441147086836857038415294890623285572615010401883896211066174723903886847461614710843535344911234990378789960071920722239183264104112545067794486203216361410265973468768865778244709779102473959942489495903695390336661064305050204754613667712984873008705160817135143623249003136971304664109509596855650012605373349414604280317153728155566450127852301580808046092476568747156932280201921934610957713208735721111439020690910793299143685935863591894780001418748019790504556520715748815218365738047502564571373382828303031741699443090535677371832259222020725342600449505396574000224003277231226703129549857608460435572042265842902360046470127336721060021951671795244309927619207120744274162704240046425481782919421245376282316211240691205952717731401151575397932642691527476450927499660562418328984273285257799602981273654749497791684949248460012265322727566412532763241833855243339983097113056561245747086455622081478949539862972020831544995025526169509863988536225597642202975795598927597777517992314407074258840724294061021773285655393807462692276696084265594777507656960302150886640588616927709485006541150604247945146260700692473443186406240147043942625985794624671221470452735245200576660055769060587738370161694720967848765989332739924431965942041470936008180289538887882004288637407116444493905474470918446858432346139591691167026966895637190955114282411970073589351358313098978649113716264068484753738407165251486058291640979767883155957338772896267349410978437138446459379509491354937977709746903597351303666026607143141977668111201014909909999329963526311784178235168524051698153681048908320951492719007862942672591843770231544369793478840040502825665042202191937329181349409107276022226673905566567682694301136581925784219797305027688294117003719151763564310199490470024019218097947294050375342418576061012134027807626809693798433975555583950354830115406623801069376040912105486169743872233486180793932782862180083294597036071855441038795544249801445963840226556736806747781524533520146563935548629645566761331826716624381548477606718449596886965171382670287968721769982726418952196538015556685500302324563031985092841062280318277136402324900886895144377033226017347850231731632414467210681372071723931689966506360933184984383257193809504038143659975616835996784208080950587812810009682959644154260045899937749908032041953218871092803090693756553733686325671770794644186309620916892259927530701534663735917909612533206967415836877511314857740330379131514059285493648014605511066557288371300763705524044885644753430321940380197293435648995135228819535364945668856855381597483602601502620348282324316677165662569563061845512141509976547615887117278592773184038548500049033059669849418947768757163666333843892228901797239540493268806991265351846755046515078461817905500751495435673796629841216261455418696041007710526043043552335564221264503414606020294117586306242047721069038090596444778309568912022697786042938390785675128663798712574584556388374361436188500847333966863576033442154715389335788054901456553496208304878891396681960051870979342568079631460234373595291401495799096387148813407158125077731846114854479995188587360840980154509406511023200885739060523246296791146697990853904245313773651891998508061534550541853746274509552218301112579177541501361817659019386404066294082486774201303252641021336488882630609990734310555347361912152821026093171118841967514730613515348095799392514358828811501836752568050263764324975582940504494276619889331254712205092341706462249709159693968952913533419801812688551274199596469528124110959675556330900077289446049246470759978164996637831433749315931265824233444559141078292461137228769404816230223887026864395018252135250084377811152986672518190752056151097254369456832298198367500814379946903930088086657483037069662200643686978882018774870217559585934510101029000570478390954753497491250697734316784097725556999295479067151296798221776269162026479724112467876081897183782456106738999388584805998908360285816508509099309669080680541124234851974181823284557196649723095754966625115556246748182257506063543300020145947678074854447534105596517460504009104458892015177211404132262714858214554411704695603259634255971794242177369312019381127602094067885261760666305794143046797027913798762195216141179022254395794353348367336507930986692018206519095410544054227282620449158253749123298817011427892470152905996120156270162755744960944475101943410098794401378309886994763544606624867765494942037614405036114004724523647745565257164363746836209948469641473159767221526467978632092818936241095060724383577288312616318579374473469173691043578317207473794358113472362098931951304909402058131594393268901526678313462593698987980071548367926587007459848666715363029803398392852858250791230771370680077969826064329688839111122968589837474866571810063576275053183320731682463229019023521973880849603350537465819697068855819388987157343149611937904926812733639756192931559288497084653258592614080551245655934454030603248683710753469839227291021577825224241098012649310791904549562039023656429303725701141027852151465285118499894123454701866138285755809906118631173291318819040143522168784439823483625128037602110430292239521170906426112229033564414946463438164517521464320267610984069103907127519446479788319055761028115485199926546013359221148104741065926090385936291417479211643934233289620403951541910158264602144027275514125951444808253959771200930491337230681735823079127704522359666160264283039529010792888327943922573894272620883493921816862055197167162870888027026028576485191325809104032145579858737588612348829130701223894990384973821643401103769789642873975233609131723081103902893817659414908647742865769732961571749096924728713077416129614745040596569988792018724072039078570320754684703207491471078391173125282117238258194687794715982737949390410492021283436386656860557971627122206618665224183807992747982993587887469797799759295642238027207980327579097700107688457358009749167178289785314406150874152513921878583726081807560856170340358290137909492201432426437571460573185805552995086162942402140858304711243887311179752711539186677078876060777149284901035757255578429769618009128425011711897048435442561576300968102441981158470766364552040441853007581714324588779065046287567203006729918029037360770566746727678725773718464049826671000425471555152092769879510539768327507470075401038309613830568244465458989981576312540180168092309263395179918025206156141659213945151057075626561082293906789435589641576980547588706126089648204204422893247576746365996992289879444562257561582347801344694189159380165536435275112496418956583097158874252405780026015940532887655710863408127253254486260394153965288963031078109962152103187347705515429829192757096418601277918602363540261373681921222220397066429992699538733983350541557226298327002909404314151240024438717028277863166878064295892078387221082103968786225502453932326929412309169538114923599654980641660830190001817104822420749238954581937668611036016940050357515027616361250795568692443689170357974143832053656369877643465179098055120300415573123609120250809324431312272906382039419984931083628618365924095141516350613908989276782735568070708965719462530965973766923209632835115462871356447605697299125271735462761661983407370125107778812658062954884890707533842271975900808627606027469190102784673397940282223381633910002904345097774829617303987591863897460403462359361413452687654226785504770878889675375078406999063738100463096011644302468295227158756489088578172489664170625644871057808329280780405356540642380392644918328841934433703013494183543060438331305331579502364285388844766437388412913165163183224509985866105384859535309002839352199845868919888155493023313938239790349143126989405197884823919520119230459835460932116548508401764517446762651404901376518187348278641955587328765786443480519645995762228473221067922976939431489866354957306145796726122180331798478109747460923844875993346786490892989806556967127874584013820863289131550558926132485647267146580197395659403872796217412454490153273361151478406723495060767995370556160269711261537630063850979143523193938322256437855062739175747542381736089705136707001038030783425272206497239462699864049438415895845700259176287109103864632384275091571573011373968255010018276266247526949733207891724609680321443124663220262230587919303760214311847565736265010985524957387635163064815223538638784737559547654438887828120006104154987817560439985014437742815866902291518777812455519599095597892890793432050320039976664674238708273438866223407188894539768775903126614615457563831339153644283929649595230910605639951158296807805962714215640601736523486364844072105632547668646608900127777555053115933078752539420103941484372086973982666650478966420683470720341268790997320949696470299973355024701312071359328515600336587556155018351523959159927772730051543599741281308611764060779784833357427509871840056377745509351629182946247686790081910147779689890101366981700140901831002657623530642690262685283234012369074519185773029445137024867796299560299889480574892131943256538733648632526016588511082946551067963831467439028852339331043506934204518656943946537534700432343281540525436086169089634877591388639281938367444390974438563648638457822464002464432650873886037889596462126131262170288606937704740199394544450808753214601369924214910771607697002221584540302165328959635357169119554142503942112501894834731272264043163981601075682503079885268482127235884811508231895235736059282098625731518013253250255956456079711191244418517750539602148650165851875998928687792108116821868769465216202834417306241046541715062442933657724490944210476265923436611435463204260594055526773659051605919227104301910404008684428344123391132090673714890630989582831260557663296973060276526022857042576067070181624591658070427063381175555184968566853462796837654230840720882065358713988521294415814086060489413995907095987754496588566142545184345032430779579697010089636480304901611106655790184767191743364726067314033934993226791927699910735419290288176120564540313379276383036524850189588062375551788357405293883691386012939162369478181501366248950253113453790819409661712424642913924283098112074346775804077711270310103935657329039198700135550956105703236133214307161817000773639651794066492600791828023488591405476468056862619161797849608247711463303566062467990743088014819547711125142160163626136277069608616571058814563020705810687878472342286813945247748438612923771047620245985125259865555504353305091429281883739177063571474414640567924453515474207005552222220916795445603380015723854617761275722584676829294756070148527687893589622151119175100716287187097917388862961985771668204468035748016268147897502329528636262228487049857002970572113933682419670277954934290658797423229741327566928052598117604031926378829218401102712196040781853280836393456412267356299283169453668557296044273881093938559696224176880200827503599076805247340634697880168716699729904999022282956793961067563316117793068217384381190577650176875327461188697806155214527568495219718217782273941521435867670000503356161364177791490755136462122189510565576924395331848306361317747184234234249461841474159080693283676426565203442921301234358778011312748812567206745571187629447605428386203450825383553234490383767001477574197262630798894759867461799021495542233768396049993272842217552708586145194958331496925172127645900990343589686750517953889469089186856561834808614892372332870121719006936420617292827100000087628541363143602123735589245158261574805099895471112532319807145053119576220612573833283487670361708495808575426844863597845837115283602557187068518368863216595713225385919599725646875648441025879439955529298959521700021578962126608677917587496724357877163458665089368596370629369074787681477688331161541994944640027470634357839923713334893455959566274783448936210510645202797597651046983581381367214230462059726718659950736984164764528826917437986629707971278092998495796973113214372686391449885497757108043777096073889271633668441998626092910356476134019507764632916595287784860141900177823620310746089478649398854661935730519792542339800475129098853367490208178953467169150902987318079062531936547899394652201519032116937904152464189684149397935765406227631559122844002863589369308399409166107300644486851863959241979868149981873790467526616119284083491066962412797568488560810104967349445474862976394669872638921059623492486023652489395407837376226555353728761232065562780134427789274753503425782100681022640200117433774487910602885479344463695791790543007000671321021443398445088134113240540293510285878546239013669155897162456309249899668036177927965364288608327647725135515622489704229800776719860556311372507270059518131622146285140670389205072110798468246275252054775196151940904139942776725133807884564660089541838628726818500904953754971489256138085443760852374854607726409597931182852276525648231362118844954121924525066402702112338102939764339305660643495406481109094212311301473634742048974064826671168079437519279321813633783648340818204263673805848176973225705356129661978534740978729654357643890452869159018396106951158431811895720579619526620570545242252005203511134363155526661586942106375658293929875204385816945754823564882522468893170630852260153239626191609481857072707365213900717076326153633374846776587368272636493977384410246245910084137421284618725281044355574555765486610424212338845120219133088276729024742974653892948826646992424041362773890374376208473999639695222820518169890483506253188003287115752837615753257808582449639192782366064992426441540814609470862104753985543193389769766592644499696350540476068247456469471531476935775916486293532870948458538167870184868661977052719226329559737083257530240967640856155477838696185317233038350004276977322025906709292206890911940012998417869255819235482115633337168131457546710844704853212996460063944839869605109714997561130812800745676680008624220073611376822882154829827098473703495088279323505302996570712748391996067749830112820734997193538104758279081102407418889941708308291467512354809171005191813829283783240575365020047201752675656795857122502182180151311624806601275464923015439311316344530121713055253769525197761711882840514177988427253787074200411719609870195304807252171520407236117112158532858151852138038955537843157306083035097767567114818188772956195790811655966732344182682610199794028464912570621300474616902775271585954996110176919534078548314464174581579363942847801729429119019796381404681952533966023584766187558638414518601064460987731949934489999309197470899340085216971547408497377580971698434235292015870033330396286752578734034528761895758280027920109979192183115525815496289104821515985798545084126550450278445416976353383802189928787893573405317544879223543352666131211219633941270028938955028251729473449374578650139364239459646493405677871644331224034753932253651602449914512308725879221045708576880645489033806675108684046696654333863454692956893979936405003098150632105048175163654305887917891427926830360897379580199467275723212176487008607168805689652045677169908819405958717727846310921102014809385621611361874819756807399110589663186798340245554408346024553966114498539693800501454575320859805697793537675490575673333324844602839459636863990420912081477006728590177735431095031256753275515544841513856922513843805404084129432089794823161939760367606206907650858493450633767702299643645511237119077849719949097330291545164144872113932340813492280135850056417265449548962640092806261470836900479655742662537621074186872125146268418563711899353607638830312975217610090154542949308338857413240428755848214963126893387788634338356750801346546361126411530607208654714781581202442156277884943524036163305447265703624353028813892647060747288910409007464704742516526844291478313545579427631937541206717979890359683617772108071947595145129743501383567568180210291740893845619678880454762626055263721965887224796855303247812203371624013672234126638429392634229832013469761159034418026448223180847288817487508319471184861635298715566077658380594560860805307657636728084817414609727474473920644376344994362541178542490004100115288711121877737571919238695234124446953065054476081668051426374788125584256030691382531953366016799296575506853083893804177399229651132058072848690269237463385315563112747049400582981525679872351999025730552271152642491166414755670497632158092236514862776212112092408322728792749961539094907209407271434382469788787200191635137252976615039663377753380817107305415694486005200754663085748233839094979077796308727797406233535720188138448706406656645435831288984886825341659020872850688159245595319726807084987310178701243417765892871218155676275391989624237542906290979009827162775529437461147006337355514350995202265754658082474142176237999518903267765504580053371258545618383684374688274390329092774831173346796847010042306547189345732973903198592099135302957008772426097856797358772623013708458676630404930735591293670052449759006644197248951681507092642337251352038331387156545963395731280209804221742808286507726853028810647999716312290946705935507233483402823961032412874533951056211881471749571597512031426154915598059994521892787928324945781834313247549549735555685989838765906351969154372130186064600307209622871813937760230926118376317087974498047450557163173417424550191461646401177476497891928096973259679601117249043993056456380298269689287502402234837489460707267088792506588310404993171319717363089733620754211552651506344784770475357057277046295863111013892876634598082944844923957418371277305643497358346181451545357336963242919322233670704277916995611934602767644210403027888505689303815895177519209030713221727714974622012982609038747555997990945901812708554661406343804388873921332951509935941592584984151571023637879827235546315542310775450315881945281812396281827567741793551149715065964071002818330024236802516803945477170818315366816973227785866964135833046555944583747459053601719332937964584467079166044211775169358015296935451843908965061893649838717861283564313146904984289196409759032664506364887754774736784039314222593125849272278344604183575735768544948920783871255320429594407187655061783456987268921108195149642985901289541609701563132348586282396901045513507306662004853412095122247482930331702031468213531802808369531205189899752479529931611879768455284539932729890827794871339688408650702469374888680666252434002443403061544139311198045847036247220975189390322809587587199409413422510172023119219207397731266246717882805167581656382671438980467739795368162724179475342301716945516174876123758548425249933231347200850437337525540767956588220628223549814337433106868108926515079490855697857784178030262824381608053107152696265991153923701813256845569195226477600027239486652254874635287964059922354565583871466445877125585451253109189060391665114360516715647714524348335708938227216769877882139729860184168321536302372346712334699678296519693170581361418891534894542070381831310796539774315315409100312197274429298820866826533790532032585142007918755267576568036700733982522372728542679568880814563133067279905106769694644805438145151423572301152745074903546804528342943181605301165656013188825354997119571233200001626159387918226631897782840500007995242164998730069997383975068527852349444230936653577678648957126295254415246188919456357579087101472529057289266775098414933229055011521471354193354625380124359347300676929382498276965406868316467339310017635462601183224695905184331450301947268662045634066323935851121643945034760398672525201820387505899526099412482902503413920207333961030550197157036329460135850349002266492082755004561210766213126447453526413955050318220056412132360223321893362659919269971701485454011475194625472955747736507637427831698130328856136799504855159154504706430687276232180498377729410673338652041438715860120272808999118149778217849399385828157806154175230178383258599751535483723841806302977099093935604917980613980764281743723598916099241336865640227213585501510414917637598480271975079486930243707643609979218216816097019133341499358489356976379569554158671022839986974027241085587911929705344269654316356917413910996679173070750745746586143477843421579772516895069270395110299057133786231061447695878718042218042543786474820947846678837437307680706412653419199849452647130835147540376323084378632032423355970134872329725908091958827964940273621944121935610153289521016885565680995172399527762730172918291831881677794996611588414790433087249560917764666529440709529745790362391774188241482811868660056223610772169746428439252777931148078769178838078633209860298589250389998882147490268253839001707422254088557589618334694848219493822822193979043497759565562986489195884262600978378742847242895628538205075085905720871631482763320708108524702135810634915887283341832905977105764531544843410570390924156772609686829818872618485921394680901078240664476250900919314280221534489718603795396809481237933519993315438839851184555771434700336370376541509820518763591283745274887982952201278443887869109394639066631682790936270568693898377927897894278011021530917033417013870846081328074695787781143681563173911830684261674247091992140423153165011823065261788046522286167193730988128999888646311523438636563554258167983711615608876218021012467538142523648869011674982141685804859791807375218820522333980640595282653123291440886875485262905164975672847595218379050525535087211701833902768748548775461369087363513198330952401878556188393274065666009395178617891379432604522653014439224164165854550719868593857814734694373279620163797172332903542869279103488002055903863896756360333253538757182709809875478673951160009663819736263396136736361643442522852503491788076160520935346955098904866209649069849446683429987745001694244470961721130306271536130813963630668685087334338430480119675693221515934512594861011939886532598954974023176637914224097894055935535127677227233086062745563402555019920149287603814516347214960442597518512077781589687416021867469668498933326251099125525335867287489572824448415772630679793406326665398567577283033394443372363206006859545143066585277673144033343952015945559105782374967895850627251812351619794968627761112308890886668189421206180837076630178187402585798636134648103031233374167865227983737206757349577656788960892157067534114410013897763506896719995775500605863896373873646349292190714581522921802517576838495297464220847033123689652775986959130116930129406020533263052186873651303304481681619415876467033089813063540832596078014780045300299885232432259653097675965999685459151591649507314336023415254010646573507094609180037481259050940101140239765044806199535862081624059472250897990853502310955957885661058955285724446703063310695653270768770060275664932014980543839672428295709924588607383958604440715341539281060908718315064823554083529760557597072067708088349101570935571182204379399405727996508230979169274582726616529675592087343390565564377761258150460277892145778851162333301032759011660799560338664230510822481277304923507701245793276961635914296820528748494982770682145191594457277231679437843031712286154299870579966884201551500891899072081925334227162201660079478654537690622521822936642872359753257741362472640204461634737195409486210601605380492181574114931273341075363056543499517462175872747500106548884852985139836233596963407264847891980383734809048732464261372800702474678982224630847609626230936167187149415575763422051318774533585519942912405513306888860514336745596923906657837933982656584958686206887229080773092474266750932781209005699140854510790655622485600010107275840642603243901473968994503538930193630026411160940825571723880306618862449285400509153360085747860989644185808730901165268803814077780796580496466687299972411695689903195775836569181379247876363132652539789871639425631767830376650346670877682597654955351173546166951965331680608443806113421080144259214831955303419267611943814796843946407629446020945117334389608667946245439729013055246348641712901649394151334584197220549435315515319969785565204696248003165106692717193132574581967092354890098911989031832601270945660265995825968767346264689436474303046346576265962762912962723618681792432700323743517226818506312152715953882815639153730474698706738453020111701136108395177557133346888955315146200397492797638244164033892323582259463161832985214478497271110490697270261393485664353806436196923431836107235218642741295604783948729115556384964335946895229090945302261786690800080823181966279849897000129482195391459602508679037144191597288235121828618401897407791314602603594400544877574523013752938136323697954665828436851361601481326294006792748286941939865446244765867974493708747133080250696638118967632151881467573417614400351277833962964814222759302113894950718484104524570401684718089273678787647719691942203785052994550741817516614088030377822024028675569783089911624095513519024182321622513456048224212503812272953332667305174884260852209799758203240405856350576751772842690483826937760245562836498916335066058666165048116253677812655348396300373694999575812130655140886046752614343791488668029302064785665903000785752366427345926882258581056214991151156290897301311244474972325947807808583198497661388691631865462126500659780787323910989370108223813311617560033915035931356864284699465758519292024543247535494811187440095127696511327547872215206758470143623918705541009042654586970878843976571886737739580303537295318169743259933221354502720401946005896499833796189780961292165090305456706031519813586903982904375342706984062349958708832654767340633656213233859527574343069572245378790400102560151642999414614329830206936469797822560936720342172323744712128656533565375128904956313637578633427359393391628235624727125360533911189096287640068377963199235976859626102676954762568330923222421401585585108269157070436556847850935314645944904649242328906394668730332126233422133849842258593806588309501274883081221790477997981034945945939593251044276773076226359687793991496656466982682714172877230904859207544914512349405848693572984278382737712448561056319528061825421983674305336009986674923372566825621618747978091066885318287526541379635279997228310142564644521241643095124859986044392242866702217834836372513207706407967868652685006682957956487445812878442985667054041124028531543143495767397584959707352383759627691107999020411371622554930241979294605067938848749018712641736732298258047696672916066755360835673479578584895773348172531506355058805220618681990219698564815710128619569940947995969022720713296383037922583937610655648230936531385304092456969730266584593753960269900734906514159256776533899968880849325992328977162951714780605511868643351677572910938429218416345856501898271786712543265996682425739287581202799595352749638335168465153920203513312666082506723366933020147859763704202419552103589112981348836678309279800517976171210696339322366035527672976047219011182798897406076446021236509110054528462903098363392356769187748354318882857055437710553817629172055253175112906179502314726679950829322498804218429261764847679282639600964256340194357823385598342363641038338776839181981500672425666823625192930428878602850082301437697343909480351576567316535103397130963596301671977150766129621518564946416906726965195512926460040798691141589767208075251282685269946725238813421194582447925167429466290547712437174093362554027938696680512383574966827629034837522467048986239849192067801447980160019119750697323567304727025756951682826266721384968629521507183542187033704444478307575958865032275726312174284721783995465206115132483853782314795952044306993890590735623933961679001014044626825720214406944997390772282058557249180985108089541049710006680692551446884641676727746974180381802658972662062404387108746605884821698097359110390258650730597799398957819650120742617919242388057501136374539937017121827766676509407163004235319303298873200562722122343580704000648996109743612751653496475338643790916868643834653528596096442629195509753388232806424164955195233343636286688973288538498075970059949447208960555966508484427442608919345087843560424687035697465683637664902145039439862743915334957802085293455067088689536997516872354354563474469804116786067501362663453835003397136497863047020828899468023313439621656742767287380357975134055356428396517044418047228337432602812334055208725920500641844913846748028883962854727799758004412422422953828541344436700699780495069081691218689469622071964012763280128761346787847525869544946833438217300411754044311034831982446254827964329650687187313586728926965824614732632399382471177737498632897919924619445150501494385395868566350083487768571379955666710383349199978780583835138041581185279695336419153882545600069488694436462898826099727032318449804997855831124653375315740089496636253397805234980829967975097642953200761475350854566862701585472862496662494283144851495063671579621167143178443124036430808921435046083490373264959105604954714069465237158158088774145840547318565314189485148715180850081137210203321081633133044653769644360823850622427906413190706582984153557270695083161476735717977810487981496250484267183050239769880249771453356506799472798258486387644834475622664617312394681014743579350815155563476410422218669272100349054136248323991325007462743669458418019911367126257363760458792796636944711958004427964297465351077851688198602267977127691710290663361647439117874239375106795309049706309177791692695528534758441802178241208839177416107945550766746445147529905507153250326819048902869615468381445890646114447989892843303930305689904239084843391359184404908637403933279384151016534242223257453414291658350052874151060001102559751789954802187280766498137256402378720622747449078642227545448361429382633639040701393826054866350876211470691958870940531567471243320809894919275619991404813021434813830891999714860081725474991742579994704770397881559843635135147970165523178712192367491047508857545687575621106017075743348595163123640085542967531549110133033188917612788117409716466496573273477138205042910987629834736764582961968540778223787563877040097456137052409068578289706606364732650937643355989164289690262874536199212894078134063880590214485415654434014564141787190653330513121013475558066655483899615307531614708670411843522875243848936359069904902221238617868892493441530432109217485993178240371209350671334395561830248040663130911972212892712534598469399063184090910150030138144629073394863655096212477049112665638287013565652460096938291134406008796129608656461974327063624243348708713349112055428483597145203962704830684400999186945184466527703755838295733271994210630701028177710898450650681985038354340672352282880207297000255722258842576797348843511914247931430040176267382720188719163003364959009149140562343356102650306804766313527427472064895476254854737828931365674754911265225808437284034577995096490525164356327860210213374043090893858701693947964560278285788089635755129978824892359862649934406834683419349304037250824278980672644778617334502314651083638920005227034445808151272135786896604441342842773018720240608630104474856069005991466750860706649547833653951685967194180049596187076116847809885614782197786846711527741688103192774814867778446224505040858537352016089418353904688403377143457211572482403672852620090994198469362708164024574048433302141967450277301190252418066207509463488393218168988155593190640333977656272977066153055529423680748277059363472406285372192412549272702846766092250687104474197665380153788702409137872548160654240970803351640722690766692961736350388807205806333975248255815583216213987709144254439193324248964824934742967602974746047492680951401643462118201595376443954885766919424709134800540870883658180250748510636237354186056351833371299865963149832059937130645274047489354748032670587650534426994952592227802595249089664439659309165923217415722128010991673662803652897901291952499471927127042678459887909064869934635487385641001114857645341015309128256837645737283529433429846385397833253958106297561128747874551191824770991865884094637975222502809634564907760985640982371180221804059179907534130470330663724368354461608711224027060813141501127669566944235437683833438758212753306508774413792096471105546698395281634709354579517223625892779946097002395314073153599834108438606237204218375839522093729152787098653872281572871843595921015115175555784724272210661356753331680395066244691632399860630378058598382922990882666380093744178214495345865808444714122505590642510240202184694272301252927599798341726426699747055861945016039617480149158323929420047426742504225414884802551218831066093874650045333054912590593215089316805889721479258150344132952420245921394935165721871960670151718961720588439389194950086521474027326885726510067828943014876071424795656016676584502871300453407881326819657297405322776977702540749427871844661724596564786206224881595187748934930634866831551396394847986570342729047059652255523805916350877944677971878769554866503697076045150505595308541925166711508751117176535460309851211534676776968227639556664182110587955828501699637639499456979037574966117106685787698688279406588496462240237626464426260826324023325435636661365507060430657655335362077201257320099956131628082678808385752290871981327949445099708241227241741124677251391453722293078390747410552961032335910194734581436243020126046552969803236209967576316283691972315777424658195260180279504607171643986100721005543453833522996638666841218623968990796656293271547558675776629279789622784599872217019272992483770791737396965842203469841486828064916021083184670896211763220976614976836750715709648609082073531165953983401075951266155387425227519970376964170004373374776234343241665908951153665727429788491303824671633281040912806501875477651222919240495225713730596930057191468655869509026887505769557498900162599362823096911377168863271920537498344266463101492376340022495811204946249683821923199129871666965019754867652313998790411363646650657785149110441977522124373924522448036065027430356024116233001590509761048770012079217350024908203766330987848221259119207698040862293918187074732084908783486755317867363033268578834135309740023775283627882599723501303231241714670254650192957168240378192224727476244375150595979987316313739631958161800590237706172358720733211435990927455725597097226824945444259297286583865432026081100081657983684387427678397062218404967907639712859140762950965405780951879765491614553901351776945063579266657263166176556673935382316105866610963729989159974360713114122029933527201839461510390212807641002720981844393878882766241199613202136948812859655142534862493291518577008088352364344928659370452421235346230370451015988356397814547982701047410048871399928833460526992624117404434312436514913503793290313191286236971539981869103799178467191749138635038570468065146593410517136893960286409294981099812144564361070674526076790536782360945432258258342765820927443442978558944688443575638803820462733017576580713354420351561124111100721491491572655090668384935601489769856144766788564166117723583232745935055361872785197761734811510391032607327054056364553213196778164753153622761877321402603312437167003670167738790796855016799769086490635787025719151981482635169417801929828809318412518508521321552206829155953010147984084849122373268997957220158258059368857007167485577756491298460104308386774350486769412567853061737897266368705173495760443836746223850689616044271017662064740467687739702617842738186469471844825320543426961729184292470326267899270633598182379424148321868307984003275719158492651822998905501227043556944895644113967551996522789639730853365857418254535791624065634785952705357781568667357106039070619753736813883059314148478169462602094048173989553441757453692676197086977588823682086646291455760886425750853335019628716300955808659862145372822295174169040019825855035486309791040822757491178686402035685757510998450117263104883479153063543044360692690270558637846131370139388617417571294079153117468749719559191495220220915591106096134772568889840944572928592190088140269629607397835733962291060919661837946628740346435636859074418860517993213400580947105500928003668444948016322484221897861253482299219902493831096423890871696292255720060865968596795297168556727231437606423110476472915951856273188478162693996335330403635130875417686270457583323578760300598748688716979408270221460243551513106424271462148958755232498651250692032793942688762336376456143611717857806269502250346643989671260537627936913126950387724626205705382201521657011142045789097581825090898298622534322951302627335835309570102594634577239329384479536199060094774264109077536718397603253799265154863254717574653748422696688276649230368120360151901328043602993484876472795851474986105572581631602369070022062192860727773343574285254989041492333752115954061167870012985637089536001570747489550378237470308489328408623552758211470183852366920201585853015741634925368630511387740939742891845907170519405279669216780616085584994516839781010024797005176606420307701864109371876121755119297368548714115690722144194299697787730800674743540107350862244805401977540314736196354543530325544767541399526319073886136750171806656192512496047665048741271873966764734437546895601373376006967081329212720228410970770351619800944212574861872131823693191782191818416835078516350491323177780874140023488492593456026843941916607190378846523261087587892670482750866598796866772709960080130014312141605426603408079864796143117645135913655984345194988975069988500677638390173764976144700068912391204543430517400300545039402513192965999712477681224783927202066677243157916999635623142372805113304275953131089360260468940311111958744679107494522573260656476339138858842804211868837694289474535924244330575642486762700905288128659913768271819715801895265939902463767462296696147312568091655609418925002194628969018070969819381631829856750928072962623746373274560703917871888237838729469596862304523436515367897804607866817823567787642283497568254769939967044927094182413418924519723898450520387080315177258678617754959251881520672291937574232883249515478696528216336492696967339676078610538830991631569268709094485774021508210125200749909577330730850705236556388395071224865145708461440698750850732464897902384811726082116836950095264275478974909970682536280950383371121996157610546744702431611869158139055309699090224819895599956021790637000932531209876593124770270662607144978005768468657253535174410209832362412256736612301637337168657980766655270163742389449791325908712905773399324921798494306980964863252180497615344018235678505112889544839978266136390118176987550775153091846551392127164123113497542522249966122514230285951801732309256069004465182623206337684444127098629270270336955959392904764673360900655772697232928926643362922730932798240501723749696225523335641350965051442338701401891564493982961716138124783654366932328586357375433826783355089906063659370610955421009187999818019947513658480383978687672240629446143094255832885100908274121768951850631380550898922017724896265216760776372327032759332115608477444983558417208262156652910866998546248900129415156307532022909950243541374332030074880956183461834884482086233984833221600745754333754687964811498805493853682175725880479424506257081971374332252823152760059758373132241227463671359073280244012703969243535856702353708083970401994632229881147244922777322140076201251455001226609392686832260306006466168177449321435871961445045222554586814288883395874557365675105601961861022242512540088888952743352254771526486567279810201098855438535290453756373952766083916646487919666482858966013244537492946214456509989574357664515286700736401491679360819996725517946054605715320611308277898726185300427182671154054326845802820211250825675319031462927950360354426584325456715391050160956192320546534414730620559076079959352186287453875289840800898359244106553046601478176842557680905264519639078533119234254313024379742220572151522683171032184934068910704093190435475518772354153694183661175020576015350651789723506676768314270038322554052491795534826752422121439654557817154951512158188938074574784770046375278682082198368041972311778792653515540263784845167532523322478117597327551822128359820561746152697098070461324358222601611603888821028263623793107690819675019804437449524397568469175048101745086679498735494823763966823335013877697026061387430040118750591700729785047776047678512048744593934196947123387326667510002530781224358048364294745732569706842819881658029997972890297130487711506159636279668965553476455256307854666967982355344365298978023890122652218980278686721073288595554078662690329764904438556826196592536188522441789719336144334131285166761324983404695990221803965118865594183546393017703777321544593406047919255511728885016498742321421679959125160481319749801002977104877349013018000182203537765120556865116997505346893720700856984794740311261287281573336069688478137372455301193625858827182797154057641956070222851200479628008686722630993792816291715222489405174245188825992110088174517417545578888337613484000582009968298068619083218348634243232457530365464060700203130882907370485571443244416557878961693391504182721099193881470608528373971957007653913054458538474054987266545225896841988298712288205467699747763469785083191989866984344337397510030441591990185466292322563353056165853038222762896219531537724184733690129779688950435498482537127981399437659811921162520015368442934464425985083784428995820361924040253773200780282405901570912334843547053888140448189730807422415031000238095994370508793106837738456676745520247975061607914700324103077600397420586950143773144953256754358681706755655834884711783538443918485508151887075223995183402991129406336284624185501883426402767655314470657364059221261113556602526844066409864202329160671915392317493227325911496887819384483331212445451503873127462324080799685640898419907513417139881721337005982632542387590056258671883882554897930476562679807859442040032398281769236924428456260247702989308565936530579742305322077346948450282647534373252183682699230079457356432232929101259017364168791597500698501124419493972336342288242818825415245456696984771155053664215114337126713147606401060141220115674696687322356488092305677647822181352980937430653765992380917559029208442537229851234541015041041740078300215878058299743148033276352118418600784092371063366723340781109266358481254502709024664568828390452452425734887545118754039463357661062539893074444573064287154032976389469333800429756344514997909601264217611481349749941993958651961974888713944906964588720340877630615489477014243616424274285487828560704564156234702723116856260620507870091738568252598034027339205389236405654486627793843090904219777619440362282943789447251805568384108176160423265098169162333622259114408213455026640853851586789921354741239645266178566618747861320975723880040064668612924144341785757285246634312348985517529715335041668937818027650003505163347093270365872864680767023935512577595055615178324660640890329515589377205005012455191857398569412568227068112927768865462430069267747359145496379116201313903477533149279581730249272177114312558052008913807982580011317270411185018817072311987740547568309417772330271869762310211545189061669253240252648482604426475511147570527406545469181971949425398405179691269584845171254677908638419189033004610197533582261406148756197541963544038442401140005871436890299330721059392797696662977325225825187537318524416540767052686479560220911231565485525610767180870744788387230840585250422644043768107811777298441831689502410204519188554629468428348308964612471770202111954432757227064136414307537322668905995416197680380098163827948924945537317217737123460540331557519210654925199730372525641092062950551271199561282047875150863949590534730494068538916928631867552548168992939281457813013885678819377941860537284729157565769549047086513302041222953700597535011756455843360418632186846775200667996255803589316210876078210201585706578903908046026205090316769870626052652570212585599753780887294085602489749013878469008659499416700248679900339575435261478785435319119065063995689088963719081754915374706786331978220650504529927439183485528522019446081700594699678779112213563763541770826137278897851008625309112990338802007053864406446120839496304718419788372671674304466101519451093457496417855290011973767372042637461957477972605079405424900290453940445047520546855227802959544653336580196275998686331964903997143340646557104967745133355818785975545902829786222228890664948481512037340914443826642787170431651032209357931967690690646046811144827537258916094664376144088014038131116331743676639847659099026040313301488359042882095397782603264104052371007134548086243675757836667522462594811772512796731431455315123151973247875140130885297770812694515732671971665320568011916986813613863038712723387974784709438806495967662639304152245413285074860617284106211146987037355968886002939177655637434525898217993601779030176831722770207424765693665541112282298380205646026441893894802585043468186156661438121451384727657231699332465384810988530739175795263396082114837796019845064646502012810627832500023971024542132701036313907498261439331992845565963496461997574728853420822206397382567496312651852950115848642441123692783306222527898780687284743463761535096778229661060403938258988952579917120019871054136580820136053692253715278652738137844456093267682177499373335747437767613079430233724278835570849832138894647506577446826537883680047882355273147293034495713481194834303611959483746803967222363966413635382864059193439678985096161581425077131482369529363548510966841506607837121612667865593880629761407880550698099759838342562214867574793235719221946514029589806085406670351481870411982005756471541897052765098530888806986443588598912797703342422558021023330784288963491365867735594974367694389835655419436305490134139288997585827927939643325820756169378340426589425697678740092310711311876045630200419752040521451803270102946450716029631292930432893872554124686408118571106772061550423605557826591467478133629998900313296583644198156133303476346689904869308873387948601473105512933551062188795515328302465426839571367504908226704306844810947831539066642155390098494416801545482615415908737019691420060583577231115068801596240539722861647954943337002394335194010785877326314862688337099195404132031312470790046951845385761597049204934854842878317639485912251996900981460794358276283115355048747452504275298052334731923628730666530056759606329024787602812422974153540575811982715839650769915809242160897858707315191404156736858662332379425430289910996992395113103050061784847119401404844498029561038597805584198249115233026388587243573342857165325590253664777925849502268926414007717953142424843849137202696149451237164801088106468341957896696393242566724809458783604475052225452286269883716365332028100966837890152765699206629845380836015230026124918526507238562414265795279148458653033907127606502454572695863559300451970434143968395375822215288250248724458437927268628255105083079768820583547994550382060392244898868074951013814377796919722498086668617076285959889462733911823406492149597956882478408370941692907929091103877166042045591368203938899718226856033622561461290820453914165412974281429849987176085412465689564865866217600734812359850775386958183095351570679633019455426319472941523897724040546148380479676095801955726882906632632661323574373038426021711749010272092662413861097255384333085611736166575411607700096740253864826611008655419132124693419242424749049532984320017173709256858678067392747227855606145846590261911448524131197263384532423121393218700785458543861598382477197325286620840498178810963822924304276071311514021302043060979244498096058349134585367982774949858035964841903564357816419241590975578957847837206867808070525512527677768310285547511706330908559102939433187511869216600760222495026281715627582812724268693668269665140641390455423218764809369831918860348902884327978232374566170183567709308768779260976182591696601568572060634310223661703999730001397270331877430261195573826855331635483112846277174604789285875707470510832299907418594531837829067093302293971185550634361515653731760624607629406133835763163114354678422344088044815710136802508233900857206416451740488535218183194306669415316984450387111657236433273340833402377692462863849545525138562833751731977783083728106197085951240791689605568674023385486279300682380804789701963379414700880867262777970201468323730884900265251166363450532832629032094836095646829345450338780293741235091251266726529447160693550538844907497084639536349396033903195074556945111948300360923479241745835917558408561402676769553576499968010430989101110585776133152399153688943030588689398437420645251314820616518362291645712310932785090536009307660849249770874161631989630633029622095565469652560711467226588424718158824218003878233951568803976483685809396283774225278039332949181841579593855249800881878840260330746041715479450166911814653058556716906259113122181469234481159406815949909697119460238440962620279264914210251480198383715446828485746986965448205009919280283013601849213229948628856584607048824400360004135270604408525523106502864798748034616229500696512041181052902027329606981358711429273443004042916675157645847559006538078385503594726662723791585709603245968521581957200751357749821889204299613150501426881542587270463216619490958155647513806394798480735274505585849652703483210303369537444262327229608466467812739153842122014863389817619419999720863105499331654724162202168024842513729584172147006347701855149961443830371696610168263243583598930856631851651226662025779798055757304843652763796717262657339773904031447705396805561539843325964039345887012415134214986217329118603577507125651730254119509652397447862045641883239744810532876703561436669189787160150361345414843942798157921466616885068717378173340599529432715864224052257953995836506823959125939142006891144077691776244710318624826366412732618387713352331713441991249942524084197295660541078964610335153042578640407786941280755667819682171604212608470700459660264195277464449212485050437132018781374844428086257630996257264946619420822404757482281757468086606281038394233206814779530930045030456579605897085551473502576482728973245044966030192076010279019610536997981447756549622780841472307846010237099845949318354437071269574842125087702694136574017561919988907154643200574164407293552870670259644498911423959704754799131280813011505625151648148330627533371242874726465301458634017476591573516916414356684313837932798607559818348195498322532453569410018667136595987555435846082805094417103904249242087704590260156809966750699453929498680910164335170995988383077223023538276408425310182781180705487150979006330139671903193780122882547583850941130159284046010770711505320030946135960382163271562799921256125681833121201207301911115972660737507320899084258553052792977642523169348743896054252331502974264271827134142494534122838625764896382492325965280491331433145496086183709421250064739676370009114854313530507112705353043901735493134486577000622923669330810191735708772160197954841488720495105395700271038163994101171133812469444910868111719279772170249897959410375507097596659268378864724190601136788076859543478004503337156669263882900432859600575993097589222216401723192479250502209165030917334750601770369221850145330875440638041313724804319036418051667428250468625883005274592959569756164372940841793669346322538403935074503276476277560281230075057648925120303907949388705740473031093751577196483446969175154629702611197201401747688039676704529875947093314817449395937453209652461049638536358090541487478099099040444730600151669270667871480963184482499153615255151331228074596106603503785593937274060304526150042748305538205920121613608240212271614095318814353284923775902508305789647026158657730071630675423030158517787431315903914567428686987825628885522755722004089799299762202366867600564698871361889064928396449638161268746170096461475679252814159872389810261516801425949798080431512879487223202672003709148543971424038100650872835670357556669603169701236326068428822540941638911313941066750451062469558475120526209151599968703428682324012578690985810825821751472492468927538014017623874206012841284582970276201515617911543950835566542522353408433927548521661222766916775419628930908586388839674741701120613813686612783453785633556200967970358026608861011188268221698424278638829468430979792658975027462012928611294480449058006327106677613177635112705933465073605838804226842526098438780473613564659454713865707521469164204949004010876477810513419156512449544531344197655829330649063620078469675388162916576935037051709004871703105723541857417905588191030178109601127863891154888506756908842204112145102026572112510336296573946903584988451482927488913966955489469217280772527888848021874887016363963145101261719356706679519390272233702435698863787645114029860576664539770656897027501353489086877284501947296110242933861540865492016555924646477073131331239224610873271306683631427310862313921168162635344157352294961565344646353218609217330895538897972760932853935675774344805488648054997146461381604861962237195406706774229093952480768788421315814466047012679218957000813969170751530511283943611099509016995017863286796738996127276599703835320720099840286598410003131183458887388309347063466119006056793449465502494053121644828712429305745818497959652677982914377401666463573409566088339283604112141025490645296116287926434579184934901114764320083304194635162337205802948240722548495237090276650069073681122154421400903293248397988401801243152019134416151671341238361367685873398699981058339525728014734018826412758294688476927311639320885352831006682299010353111986464011198923779300131468027629739421358855532271405599059220338166722553606663957419236307478988151238534646962100901650194850330439076284624009630561868022693561979947660591203722320359665042110348320781062233776147645700219824974389829180331376214980897090881579261401224418774170188617026773169218065186654031790397098261760023671797438285998027070277601547699808253733852900880446230382690017952336737774079813753946395979031661302528783147433694138936857410737436071260222548791805433243006938302162994525412799020064877318313174987603309343115989670552490684726529713549612672976033635687895186116221017572918432303689235078548666888441020422143898367243113119399763957157326873418356514828445299501128493362437360159914236206135004619564202618710629200083736402321643058856625680198711506283226288405055855567416467669217841668140641491936704339080590894065619253042097538052511549665786028783426258632523167702067080763725701298417305011211019119901091732826366022717775292454109541376150234766510415017211750106122521697194939767852659430353618525157798246499080346417770751511328643451502508873546675729581392607215301788360594240877808310106749244857382176438613452112192959933120166859895664867665307075385209729986010668292399689915000459148980395592272277950897015524224658901319807597818851858502578718860391590674943975291099039471871576151922320549955684077019862482382989521865002372962520193473879423694656424584637715655582543206671205099130583441047982915211621639151091578909099298433638342325293392636370779299032515462063601885605587146973396899045717292022366572223172003967472286800045868853017652417923512799363333194818943711493011688385212491885888129359265884802299603060047694632288710444643389005652864588989457290331259994338511151687213664715514972198986561816020793233218016584821104788930249981545273472961856207822202046772027600241933222610544721519939346428340686664756203175230904124052765504598411798734768230531661982465870270469931052396977172111100660303017152568444004066050447453594962214246381495151539950198652288883210189296838694538851984544111085384793954323517381086051463451208876864048495855657246941030587337328319471599075170031770318310415288055774121284047571923731622855784107922797815030056782265421810211875792966462106777582154556330945665718282308579587677722367492810935262732037174194614210075206405952529722569653548836732363003147048879391811580934504712606018388492915670741447934723310701653115654202954397678845832216712102853190753571582938792901040305579088272352424475575158588347016552267525070344068588369301042440091208507350519299918085415156046098802827962847756350674091244424413829629377002513928706240548640419868857964250838571892323733226021609701633057616911112240402476338801432748916749417340181722166816893931139660146033984105483407887392997708297191123999004332725224544257728180683914952365549299867583808696972195536195904640428212443595474320181399426881248592488042195495565962910324769312030389520916857852265948936581892238229002300441642833796360826690984934951178269051203017058639865501220074468924218472165266883245143847964386630682608770423496596065012554203750153749413541340253960284419389030419501668236100986524527494671646481950915251854793052825352663341191154688363968708978976636746178686561669931905353912003931420288864067887282935988972337900351053133650601105229069745876876553440004346971239698550173805225302646345402794874553528611342118952520847400213951029255145579489627519140312752298173511769646297668974785160275732900409308077752640068567579765713648912847097507807702638509743408937235187867141678541543979073840417030800073276575734362947580926115906652618727705780100532976980691096087121408472086217007747922278422711320933183734060154036564237670777828296282208934846729125252989801593563166430405957447110049482407094038033789932257976701121295348055363361164986225176484713154684744176557560197120842795998447477540971694787547757432663414387389207918556584412060950827535796721986562957612836701739921492426616701103428014850176057759628821156416879493653301879318238483133680556919298500607531532306978798873797704081820515382916876411552567524478439158563937331710296166512569258899396909713374721917349733579405910119440049443235098786003665012272427766455157351348431818784789403041692796763942049649127038523113629453296871803631186610571989798928588748322563220518249425324668290673793976022736777804493506314093980337093619524008030401524748401164226888483181640269834087250516128604325674210909548921565987546160735409774679432795644191457259709555057340091257015032058162081592460908552021532915771440922819989346101028003705307422907404947364813024944092559327844895328794458591573171636366429292175455363760978678277369296434921865217450627335895470649088101631099455846366692971385888244324043699515549265956456573825988651191659890490178120959723749585487300840416525705629952075457041542757402350658495935117064371698464433508592286243340831045871046224209906227410209995802939284083456161986079214376672311939461008402485652886619113382507150320483009883399168527948975955510836688370045492258124111373301323036598986443927717805385785270653076554173296136144860197980927765998636621736238783120913584483543452673836968619534967020086407054953379932373608203872767232434269191740636019364029119975978802724031224277244182990485336865669778031649465172972743310890672173368438888355056724822821500723994649022595421814446486648388193912761834569737738592949960884674930756400526210840115182708032086441767541843583221266651659570371435380120077418286457707686194550718262033622682315904603614838343919608961322273274767983300602430440779428046063724275646116707296040909834707026837881260463806824753672805036358089562811092510850697901043654114183426470967557083797829743393403177003118333745290172499623104602827234531530872772100740899711288757487326742884314412371826827748877440216115741533702629777879583970528104354047938684850820818964291489793225011252669543690877706162779058234336850147014043963915320949156890766309790392009717195306060060938342540702579394673351497804850873686003309248523913392874239525822326818634229785720488161971508265747214771787793679807263311178429333966768110615988765770117315180229361577937238842504637720701372477151531340741464995786905638794575793097415485339875542768265274196357298624983919832765547181582919666764746007389448884891072944235369697450746667295084271624913301011919925308181370795485230792230530302784778993384698876446871665151130226701039938681403640215421631514760204355839726454578117540992573231210091966599177884066471489926005741489103737203291013048155112066382977759267772631309847467272053241876221917549046801859996879636093942494243781395333513992720159380296075228898069417386496171440292069798713817224952560487720266235097404646534282941277420683812930004441205471865794615722880278615002504424497842453501939953943728817490732661211595839267218703105573035283953410127203638243384246665837011812681046698658631105524171280688744013872090599525959460179454466673686643341668147476014256825634274350507881018591603573551698228917350694058762093273784366738335087236790272944646352963201810658582831319652688302611227910132763815231968514510027536273631009965857713021717723074479790297902259555857736446290320623668427371758886524099853937801546686042234629381093635073304522970777575114455076311239971881189019364100543325649058700691434478480803118098435684118938583316565378504635270219460019956766386687779016290560832486449304674938310755992969860065510085463554272779808921559949630915996145661366296218494697201368672403201856696782058955853653831930847694826905376038278867125580425878116048196478329885284153546838040142364609741891744499002780661126255649094180600187795387381427766711604489014741415130742305370679977083054706998573832407558518268698074981720773730689490311908719398721106354715130188193274569751644361145844350382904782870024081971478034978678360475965261372245042860139958293272819349696124561481756043793621482642665379336946440077956137722694220849128763124820459818334525664330072170412526898702534099582998350122603078655315887787993198101588809647847797955760632559181859374276100707703974830435730802615369923719244579277272680486905908653424619757762330021196302858466721901065785123691171268821734373943841264936462290868307746844342492131491504178423911712011822800231722773130278460292108389026091410867449716038280994852802677922489759335240243415598087506240996604536733797087285296990798675197878032776377172485076356733160082171778898204807215864071899970293862991902116336829801798557721842110637294547209232311839548937357178701935491402438629731385033333347778076474221263109079227378431298790495334008529620102097948989478291221596241626760792374715594336799438115213534025440673794070630341737504782588840538112200228144003650017698026219077439746132843706222159885827765653222777775466369288473906192707709211568900929969294798518068825428275170523382271003416458736489211663653466829427042606653707565941340939115642643074919160454987526290415651105044941641408089723837540285628431279527984976217347679774610619186388403947398590886949452359601258573041976045261428781389414034917887244425552458549893343675244741270085308217516744726754637158087549113801606644247134235000110595006789208371975622967307919325153083247001662129165478808740941769132979171345938506870263353006501699768304776887118372261171158622865465167841733487228046851776763262841814764064004680233908892758897823335674153037873599597322320857857203979932680774095904806458846768013027775004688707041563344041865568903495593613175146194906786516679673342124784889756352211791780078094304180797222201099169866061691957125556662595201360171433594537338251901737809599928944514865200058628386138908962105100004406589605487939257100106409526037593124996899414676631922209503421433162338117878439346131299817462784492747428817707515394769369301733575202794291084273634780317358380530618329662877144795601339842588071066203086147890981167060666093035534601226707092728214333436138710068427953609489128722160979770508029723397355255050148611310182323812437061920415581726322882842348104086941167638635203487359583966164509128199857858408672939212298253829766739356378591280601919002712877907902986318210813859555363863414872678294788984977861473580252118830316986485761433389243546433254183453424669254614044812525315562931204931350940169341390475457735462880256224535878678191335450217833337431193081004360472195505299239449883217338944097981641675545814204517137057612704659151938397377966040852704122651931885432101751612608114840382329565694009521933423148589174288269617109077642423428075861499900595161507296295206469805581872214601666577546704473282212643559277513110654176485161036820470660661863111802042293045992910980063038394855296380217466623288769505581782954801910696321360480601668531943074248192300309482560549431925974651850461224003315924099387866427312019722652955836310577054134450717102122965987681367541292934197816129663449476503864277125452827356352893606294074567473359985255243704345412466909031408209882016174939201725192708721016558545993054197915670770596336867221946551082435428215317111278183095169902205224524511867332062457722223541884985585858051894046453591129092091120632813448630602845297295870125069455329652718332190834199595367070542722033347602721393661953530113229126955390757144472637613507395116379182443961997935380203050652768800685577836815643160293103010867318573239529959338948232981573795948145898478973961276938657009529413756965791327107468238104103990811841190665750941447030216825719193966524400981259284734284716104189021560979437200687778951212258561228152436978511487454858332161455178526611313795179311662570327192690344458257548399208346201065270931006006587956880646555278440049414422513332698332866472644456848740002836478310767650881335602617347479258808925391762373960982142514124424341865985202062273001565015673212163384302758996636906509077474473417807584181208807529194572626846907407477160768742656629942990420821735142825378770997398250399116160978217834388724231559425982849352365884573535002353220063125240378584945817862204592124383013185869694568525717418330824891817603655663541910119651459119117105483310690834624072574607099288612537866123311862364558264860650265895454513603750858220290653947275365321898144785020324357996988721989110537416459015066077351915466506076151938142371701652597031513204035465009661105034539426289537184241492532843681353481508780493836783488670786084871287419765515813586793766675782601529109472520969568437153551940353680365708502067037279481719448042314508422504342731574975256910596673518135005828075849009355478959621775239008630470430570908754063686979640344334688234020158144347744316049025893708918437787270401568720343393562290172457719043049558053566763559446471910273274090475131027735308836780581894667413599556489237707107316548758259108769568681257939500555646228143741472067359120800272658608329183508854697402699970622265476471665874776645020657389581104526230889052036858557840586480562239367803812505161850357148255859113702603553745649156083024392934542360812102961714593276856739155788377605069684373052131778609326237919287966817171599289968308554670364295646284225202409089947907988434085141034258156525681990285210114753531798906046509640303459486013012530347052358744186255149184321897171548362068482683828070348985065868896719223475578874998417603423136043097165058400345695661696232248322077818167477300039676602996010127148957725182243595614662175334905838037061674974601794154923460961949617433922867954433801669249600680617241513267696398980909166128078148059426649268033946005975541352431110874319880359022309801793417899409626261786012088108944310735343721099210916947459286060944294019717288308537744872042206076127492664756117899153139153110885181043652254063144423755581403853724880006581753631261178407742670179763484455439139096598646643545327869326080092396272369025076199389450805353509951886645291282679833551691346228913200036245323057965440660251745441000886981450701004533678578655618949220782763399570518295093878519728602917548197734291328603857345088011043008406232815975298561399700830939928488546311608085304215885118438794873053722662729632604473040565622321511161076093935396844389392454371052080194012547990299000244005915262922795483272564215595226517093591932696799623940534638245502756526290684154470861414759044646824911055959129302885153198729126305789417140336245251522114486050685715702643940681084610881844026195499116224051327251371786048851263044015489041670744794552618064141853714126852274511535207055591488591910918105498351581338885088028998694912683890511526391988785703564311614123454385355679489165550316464640502615167696364927207031252729234554306096187178360196433801162738217220292310144796115390154591531249586514286328304701756127445747372522421383334187046169636457069393025392208344256796680434522877402168789607255844862224970754192965243016213820440480134501552852225680867703234500307132983523756396006729116595574724792143995522018286219081320827701954696580781410861298939426760816511840967576540246311428321605101213246306293334342088227516530984289374745044353859193093080787062130784050577538568360109271922154824212225268419976422202198910425036821438419048811365667793657243049348541833197650664878494124828515106177465141269614948373612635728084755930119658288839337928224385811775258310353105418297285686059002200651477333895111122551958492317629563571358790860512700861001072078384398173110306260541610203388431114522546443948318511466380094514282314666994809679981951117383215641909798893240361749137928808258507268653499512392005135830687117401093663938396699870124988488592688003415838645003707580242732857578802997551039330684896040603612520464023047850289933430647603455376405284397342878122028529831850787019974210810935971638987278039604600003388315109361159986855156771181770000137186979244934280421540818850446051180080035342527408986488371246616345554443402849675035314528692902199224448309333566583270047693446374621112356591146066073472952627348365859706520294332981495021808566806478631075895470210260823495680293021339279246257263737693575379851104537348102100728764182458494868635128579961801357487838583036019331668537373576491424797665197447741173917730965798030657167808082282623086513120610342220099731071918235622775339339718279670949593452755929539559230752809514651157556245840345029722541605772001283595889991507613774648468190538181224352206286144782710069414885747274484541055794899524236120289798467182173353334783408228000976746479621610748463716040301500582614995168979401091926281321069484817634305640875610409075975081465356165078507718673907843165364878611543555310191155959334095161621507341097255535397479532297205728409651809915570275424245897149676626869602512781233465468014153000035758324744942249318631404612912966001000831025197712658802980390440126579561022729325716279902383833038382757883399253540761640093359226371645234804306760676451546318826862801662324935848169115628023687034657515836163275592472570645973833884925515738290009958444929785147814147729318718957625122860221693220370366546701165635766549346341866057348734189272856884776213908740393685994496823454452599838049722368245190931907874933190327184934388550557177017026869727839086457853631848621980655166180377806333247229430904816520986317796168392418599246296594443588175441444425197463534296612394266686897597363164634418658090988318165948052502537712075778836454365963225870897926674962266677270900271174688666139149021018725230568224467712014673832486440663513956948020661235142879167957895048794471207109975115443566790153832659830699954091128052192999804942033815338465835233939839418413615177461519238051861811503473468633619252115925323222205727566303461259525670669141911490056289199019318616403597672348023499759783211896384669978416008912469422568488514556668033125628732530241049187120523668868169591217510869388894795495917153608605131950572749131060769076965833037887803916206888098650070080074039133494953223255820946903143135226207304531656529346606675238320685477382233448483845393252671195440731909923375928628860456032073832509533916245672996412217358094999419962415542962010544208051046079770669632801129540501668196925944317236151136993858697068026069485254832257885744511709883139445230346913596653003949651767476509633561197788373563646153789044840784627199441324071374425393920397758310671015720362632231443964667476003481651031918702264487128351051805315467510987074097744420967081814381187765484946301521606848687465402899701333328083371944382595652397682310819558361136493295231538995981956072246292805107512322764709431370142216125515817257695373631024956651222742614730756958658972231357407480243849859193250013312511779279229211985731317156908053135432831735128978231907221273897512951621558889345445223554765228147655017009697855479178155628745592575247509660060691062987361218254784918929519983377597153314299322149840480458170192654240307466418407104875319988053430229482924565379557077353023012687994912787405797354877070614479415976903030413435839365508231338598135855451802203004097676271915626610218152052847489331175210782016237414293135435043991872839059647066857987336161905518355570180385021272630262211216862758117440444083847856877460258250495985010332818308045653291008386240178168179755498512553402441781976164196492179123045555073028669239310740524899099749349544604524106980091404088173790599545783215915717438154205885314016889533702650563181873498448861008984235193610918767969248701231546865390968702718581664227237907884153803342180361162159596948297717120209795580997113281751149164722090078500568566738509222352995100015278306058107259790229823341566737617894363089985965455551072427665088746201494743931536089018935039584666210244793311431555372442946014423956221845236779820806593749546467551850142079550170245645087088699920667329757306955939476398651388292010213890677062046395008678811604744214534815068582386862963307290727736100918870989636135682514316889974743456915175569767935507232879668534094546750994736706762165272545697931644057675281126647361279678583379167301145104359131733812291589736806888834306737158187631331638477696199313535986891803484126419020338055012249404999178932480072162822121415982399101498736737037152413949017764208840095116586787815712397225617250777941986262790513163202091347014798090224353428070575746457888096232329776742676095617539466442261123649551930776053671525260231335945736163285497995909069169843219154718885614308938163018535200780844180659489368319685804161454037141937643944034335314620553974769974772922338768611887009440511170426155631629163718724634967644348363263820993103195411912157966055495832580119822048881360607161357094006185151977150351978990831122460317036774043426228463929694866085210873227653118964907191294211198146735715885058741003211947813143673067433861749762231540523183101159219808734864032015883038646151394868590549819253032208099726429131302412937081300963059829400190041891975843013333859226313631486710566593038259819908098925196082848328532649329202215890083167122406123320571633654433613805928602575068320113154272905736839034558321847977910666377631584366559097709812517855322006313693239016162292485011059277307849992287992609973038839302167463965876282134155207422061333755249556638981156125998518276338458199796095295275416690365343455937063701473030331559119129785320680217690371891947800948301735779344220188246318551106619952802253685021409995968414692721281974535939688053975087215749110564579579654105515691734209957647998128887470771078457891259978443526557487859101267546694093045587461381566164020475078862267484698090623048243466001511280512473074711182253235571273968959662530822458451333994506022434373377838330906350389163185031549885858731072010540473263377643469755106263278161490840323669159700368632545753583505788363988140050279232168393760530091130367089118158178412571142454396132024687754424721304413772545954238963041241078497027050034454406009130284305955934830238955724987849273066143685715097790896740741085549948200044258992004713868785605044912083106670743209843675697028529896526516295266477992635212097445509396989158900130331018992334100373487567555208711533380191922755661302174399175148711712716259779966514891705189382936209099760397446398285567288693570314940294880890457184559206690229425560814734691856108692368442793676414653909195129488395454623236850538450349926789291871967132153586082087903558706482706469974931734393195578708882269844999157295437373948728644981883699922589543670411169701890980612291054225581788154820263851870450350715575708574370269615511086576267499713981535345225361229720989548819509185478964501293749106042302704514038168219453604528518978500903001393794178065071061952867512765814331965027510682549089581699995125899441931008487534267875242200769133249141783663916383747956774355118214705622883781212708810155972029219921081005775613606648648796679633838949108567833533791485208020563407666606101725945675448475381376589274542120266533448399160751796260371314921500393627158510324791352986182557861244157494958405690726335366172390911542962895637743574230976936045193125822123711678088232241784063629167743976201531097086821259504504574724874908316444168607891055176004299672728583326269020964016924555209835768823224499108315966713793837570960727756728561935031827025809557750326815729365964450307531900057173539580119446024592671228674491925864890600620042115585245851154755320850930052349782256543292257146689412729463328517287265311664417539214249952290638911690273701269524482792929676541363651385648384168802108108768281530765129591072359998461858441578660001319432478428311639654200549240392422240937185237665716982836139298467002985417830825152256684675498411828153391184330716521106140972639514368801179434182027134858691573392575280934403529430199084706374101156306283167230229670846378893892409975274468723183688539521193746508164392656671748235139698446642641416798669282831343988727031335422921965434610135735547817912472340419417433273593666534905137118394176546006890817843374045435743546690629961473544167007185320870107494845221370171314867029876151142252057528536075166532153511514772860246218770670040670636266995191539274266747608026866961472691564743865113447651871417579957001745850007472936578677205985824737646618476885811514828379563545284628688975894172302879012257395653796726078144469700053322713031748278715572870887279373189149745685585609482403125056247560326626062064420320660412967594828098415615217389409281724999718215854461461267896403279040163494780997089955640474813174193097028745345875812897127584057033114582787374827532328192263187129110428721386246001507946063261885879516354918154109355895612990868765610234577734608692342344839908403181381467455744239968419995682594828848486691272291707328240029210922772322290061050489173996905214430189631196800035255620129463927466415671233362766711572157450374563744957465292252336741744285414937505054446677549042738561531289538069158999922872629201287428166203255780370662224139299179698336779592635865110268269660143894226291813793169419661598868137528390619778224861771170075888342947822510385277886235981516203718497489476225584112013964302768201293117486670717504781175215130007471391734153576957809950004558062839364018448952016059253694579524131186980634924852780749162699177069616238134455893514070599965892452741119641222490666416627015743976843192283864315929428905240994848049873441151638384280428111460203401980712451976078974609565448111108678241284188006070865562688065370819692507225387303191440718091613974448471536685646607353960169226046218909016570383110017392863569298120613608751536602511057546413920437194566243502650179288334091531720230261705797666142251986766576455184649444677104265849296068734834010438968488445772696283286355610970932046253297611798370385838558324305941341027113179200633277889945507409931161912962405064985415521393390355733498645025081759689184027804711931812535976250432772575468934378260513727691871058471113403404761758472294311632946081325834669240850163094771442724558972565572233603334299880813057354904700294236134497228599416144599167818365179431291467501178903361337450285907780620252419454367038263958890747519984792230543308266081710785592566414196329799266720074885795418356975316267054011228849579648880966302801985374517486552350257160829595779964546782073495111395855885649133859860610453849821224708968601434828203841091147015895524566520668736796986086559256650760682215095169565084167202821941364856465832234386306436753690182761131719613601597210466760540429427385737867008683262443255931064919865150535389416867489821640929293126896241539567592218854567681963383274282274195975344918426010818129315460895353923109302525238341360686968985041353782418184756558830591054854236132294675367176233657777199437937753074446705160189937368696664443436573934550985616918943817518461482218675511027715125349197214585641073361554156169646907661635218154379758193463310708269380388215393211719016880038757836921436054275535935000677150226920224532077599986530222172086799123440426929831824620555756207704015130033930644656241820968435911357930553488957456345046424382885068707373985956461095564172815073903335138335663685054651891931982843074891820815336009347985058215836254878747547374424859314664935492431948301362656608927389836574520609290468059370471419023839778507043046816426871014182235889041110548014771805890238855328558174738541521802669686863955419024080410053338323732242890082076536124839793431547256360453188223438825874246748172468309736611034005936981911555603736850539887911700804312574440389543442918741089721223499179834637830981977827164428313930868330548603714103476292520479005185487754203642718044126329795398142951689913791177367632226420076110724685505840699912964174738801636618647021148928570389224469550109678244847704045495060975334241863487707457065791172242408923807031106328927033590107760065918089676269127210709184373495331194474346182063545982536222728808434882403115776718159598910716913824690951107885828151820830307640948427840672394439775312439021236465910971209954598778867098141861426253517721403537804050383900769301478838347886801274079989731045288122203553631453989038293639530170529553412144986708820043460575951970783022616547046555087478251942512539296458767677137104456013991170639443381331643210712406988932764564035120178809182925142172133195792625502509255021615206503085197925766463708766382087451548523275114685158772040925228995519914528623288772674380038930471836069083187349310567412711632465368179920787008374065899240925274250819803413841819849772438577449759033171945178366891051139318152271537852763243834250976905177377066752107362502837909267880151231045443911562137514210392584829810371393525932842039143940157143972210864631647216903012298345949213456189732338566390628701110829954235782242717481349811295836258181011537364340498883647749947962806388843931406269937574961762550502482041671170192918668420569906298532904610997164421852854075877724147218496204821611274867302836899998345059986167498259486156769111831098903118417498072437620088429252115361089643333725128447338622133035595366078421103538326959132469227114462379716346247680046004170448928597554687790631788398592087562932216674552604466961954442901998965232217072929028631094660693425897418458000312181428200968497083862984016353877141635412476378836451727992979945119792584580577507132163343312313637301775440557467841007109614646147511420622411770301736146141165715144772119003748833137619599941965376732516830870755307946975358098067307443505294911819406680716404898495206476197629364024834797269241218967371559417772345223637317715578967885908112877730985384795629110111103467744865284690066666190416340634105808183964528066798637653571540760462078933727489746743647581866605398203906042015390130749698292478938066060819459706193235368786078282337060299214566907440476707691339681015980298914180699352086057442102617459155717953751587811292922983822691086617790198339836938481418162112953940043537221139945603034795852636091686391239198129600800861873282792666243449334690422532749466297629840537484246204104347792859149641399247477465795920444532393287742879286347754349773940712825734922090911633629320622212027570906000467575061991918457452986936095148890340266506711473400683122491271670777887045925001504718512850413869378916663386246818794049383036461454432599792360572909555249725015220188792507324395245690481859973103683269322314065871414242268944037163488754626615705675681472853627034904289700525947309066492270516478999293995651893597323157004403000652559772007728346513685547972891461597196502447133965737656917723949963193967695664597189219614615757173174616436614325678967655516773883191638427677782256891599999891675622704463035114978721119825664265578326933174984497769212291142553468664766438800900383633926749493322423045999145765419269495724078230934779046210906978722019665582302436790311773274514689741160807932315285634880228562016249748894119992982442370195971060882885474068410553942268499293553382310549473496624628205965639899501300571327217352857966153272395888603432435487692731551797518946928741723310596015768981426680485325037200876174833084168435451933456147848488412010661948161405332028275490531265121929281573787807106183575054296531377950855628901603760968267343734010736394974645572070803179289193138526533241977133679208169631001039028928450216212923325129008863822480692378001776205674795446113478827885922596939548897595896930577326691745279819020702753021080218188778020714940901530070635302311775624518919240826811775783773422213517150505810097472252246014392947959912951838800825273295268204043452064704693821478944849196602972838048745183746529783769884674585260272153663949304494042670643143262561684472039723189013011608345034438576087976012972561516970981305878274993685359447999108534473918681684816528841182549284879749863170379337154977911006972758249590389335512011472568301387698622284713077204081755162650599975637904272802635746164252099787823351239759637445240635002682642529053804590044962878963174694785144013109851566660191547288148005524393297946076112718753561924777789253373111619486433214797792488034798940092617395473080321008689558842777815339191111362141065588112208202136437951509819802136068506689773704671019220712739846059898541442742450662390720327209680161036636081579089651649864694324883760612655595471250308352984302575462221998198045626498725669098090031177393579400044510337626421359947851378568001315367410909734917629822139459590995468846927538253048294628484408803670016916521611463596550083358049811315765376985190022623271983368669819285796450977738554242894616626542748282975051843178872247276302202715841227425010699937113011774132546691189687608214012317636336749449004029041411493887927095471076559904420665692225798520416196449486911897499845046446267933992705582051396361441250057773804925945020394723549195360913889028261226664097835299037950762889319982212688461208635691315882400381946780956010843594851765739233159211359598845769372275337046794653706958254154774292594391822050332840399289186971302680814951149262086226698092889072390433472129117784348928144910933888089863955315401629004474167842419888958388372813984061624421220105200531884915299193538357066206479230539321623679288040368584967192095193717353638608292637389224532382467693206714858112370373257617978347185451432724535953552886582273321060313486566195386317941168709233017502165620412688635947510989914448251457727040139434418628887174241654690949378810671577836955686012327167217569400396185776631577987234085263360073065908747154740338410151452944120388461102353821499179450931507744156939481198912578542154554227063775750404216437156335373410604895316450742198308492019329714182308942171159445299858920771654426355686371892075779754451458541388785449544659466252555158734114114211443079258464987415467175871812528600685717615561525919371466998195221235301133277719343139822538455479173376308856304139688568196878581170879110571174369146442438595061791231947640365120229376804411201305008841628066409435130897372793366590410448823540816053283936614866601160196145342270406652313763975534389026605975728728028553863605316152767272902655152579503133206660962211302178093694861022967975063729424703623618109104656425942391610710338021255744205067719581272642677531922416411395759335165608236028511357616482967168700602378738372547306194482142772636064064100288986284533881322573701987159824283824188542027952450428828859211948655737656200439580491298166081570784260770582004891312435717836634736682636915992826370953342763752560652774967505778771865079493851182788916756799863284723691777057925255140487690712464787822784988606975823270132368488242659760480433264460096502888647786850365821163039655653438205526818392879955549845413439162132299412922117544571607799255342550696808103891794605901169073341308885160269577752984691643765393536690806369225156435107558811951274095744814707505992636794644887583353748290051192382311846770295563551282396311223567960181873417092158809050325867035211707214373905823992893709687069796337387334931096324440626446327739404279574156995614160770098399412542033892414876093009470280389691812936651535616857866611648025257751646571084630209264590282101530686544102947645177935365716996538978200122253659645258994700705988755537058562483256254019422131170609134543332276762820979269098548309415876166466461835810643981407881030992227612208738862762852708104408728090185436176554659175566945202032845344555722103707462558233215662990095835834689466219280168064211618960195195365061017488316087432123951707729326259422526165798215458465184888236219062055270745307918133535982258471401662839927947907824398778095713773019493550017088180887202825805137812408382578846668399570906100213864558790961313946241090668776712350585198365115245886013144245561298878886409696495880266715978699015269416713937208486564284452936514799401507679086585351930916566020315857728570524555516737981239904338255195019541659533940405013742186611554836734226397271367221283185035060403525195461023619512295754329017606625235456067939917711366228923166470990484445077292231809136956885251220223658678552419746713642587237376399239816070365936066081446125938128169752971652844636256401056988153817034903731612505216510565344247445038419694973150613630108631735589468367577149231130516197837924383241470558675368990530501058545711781687888402918228648024407967333490938478067436661733916802615390140569746500114073421977892678556568386671826440591340734762210128233571271453802886669378004670222527251480043971378318256376383055196785965558408145142002649246808782703920695746466777615543380363693098417607680059451330970880472073629324346014907677552191424840318300405356750758621666147215579374453586970077350884811231837897225476179671306067252507848590095815363093943375130020393184761464818724194158361094456776673053662238069275423236075133459895461300777390586679109324959351782739829990469892407641760362739494078439254867797588229191009165450218910125804045798433511615465146370752388260660009713953875964942747887647638315564658694259601286882403879070676356859822371752926160105869076683533667357955765608429627623467096165819273713165672097780865027105259705337807225722326349440034453632197852391946183977017784549892059122789858948553501977777060999800907811939918194600197720423415610527754870647213101098583445447759047369313305556857324037811080023101483333190391769266667186112666693246604073243532914303878374878741789032824552707647942512800577861920679625765232110265257887638720452225916354547074986268357206640245861919671598035021197406190314915108105178628372225356022454989768435326811336631259472642324756527427795620623021005304828394585432251578367380461565401434995502967699845238613906839007834477962498908871782412438216429807248466349201453698037225895650691106315081356776834096784539101156272845672594268723756143675354591159188948490952704628814484488611667511965510605562299254387625614725592578974317450988823493825620951250710670780668984869226104645526523336143679196182737650962603850176327097413058977688967272472306221404703073245410899593933700341434662926007723998278120931983871131287514499802255279883455225041518349618187835197545754627984640700039658779038482588378808851954063556791164278127724542564805852473976388183584299426969729399867335895267755722712530689561585804559875173723418874368165839913972027378693527493483345217130014537368987273583115439175872938984718190369128345190962289682870712477249537270247680862776651485038137726540689030949083356724563042192936204862633371379867236330093729728288803394289671855373022060573941821251750478433950007915625238651829247202971585711502926117308913162452550818819872017697669861387194522012435066893985612804091840972291381182933536958825919772364555225940091140094258097991752223909619918404206134825568936857704353569985155610463517839040461367251067268615723512079056872129005524974380914148018480299666910138570609563947576054862756807931924463227833878116561922745606425486956830966998217378873849201792629078932417431452500141271900034280470960281603146695234487559724838865679341968305200251552928558451127002310128139540808120755623979037628888598371958191307127241220739561700821784536170199243715713765157139378366904114950069355782274940155051934279143882519155026148155740591484321351681348133738271380195921885730786678481703932084179167717989442440598235617814980635808314723385485308783393646068508688014837529042642451896268484297089931075397072434174412966063358024816375427656704234260529791292811932438205360637685033395790140153970235482072394287726028182641781708306629851260019593372969726310325608487400720760284978254258721072054300976894396843343024770881986128646826702595716467910863686647437108833544462702417704545177707849896660933738764885861901033187061061685128169964396362340915154272316005215363217959991618382421736499625173054923421496130580753415241499221514227266644435942074561276227893871841913240913392885491392380766560025004731513809214045424821226316793381712406202513450996268420457818606846378473124729266569448699743771291545389462444779174667266365327697693256187761757868617962841042135214834337421736123647992551607411837681065142865798872295729809466657769003888933026273369110562258941309620805966669135597852771390501877252908237797719843590983153276003842236535402943156876857382384310280246242062254456331616872273396541753845160343929483822047918521868443238412190835875003326635169631313937954725731283473954423124853241258934987914318220328006184095572185193300867077063086664742925577489998808538017099389591449982233239693775915616712937502050170280883282704351087720177236616933622211750445993428624826805786543878497517518701793408167198905267490572375919356223017363965457166384084119868231285587351494696135986722040717005930774029492513488904169542075629122349903394007068426685200600896269776229601809865349337580834806296544997470544827473647900625872182027400091378901122565143502439381713032729448328650357938532970333229481160838790484925650572615323962850087771683272356147168016239146003463422930404834449728125944242442911496252357471499716324941167616095978191963321783992094024460437587983238560637893436576305961453994195410086961067798552507337581580314388334180255679996193087373576272288084349124988259131124410619021039075946915733251379684608391151904859089915155180343492387193792812291308865067026729082222151907997008671120260867783138041707186966141488256640772475734203525861806299695784853733264558730100236616135177017830735181230898924222744202043389365882114201076186532529039351292613208753017661651659733492123343062222995426167126436491202300703475490971868261807465508852160834504757512144709495127218378184847628696136358445042996824301149792144159876926904647028989852928230234819185288631933004463712964295299817486537446804314094039939258115336591543655458859753770396953147884655224467863430589254926198900398395121943284166410539456934861648315038723916440916500707726639128637715020956241817806855680211825730048134351857768454228938212225934577900514601057238466820920936839109977192096957038040121749982389867916581291196220699467199713784265102484926549469680802218486892120465721391665605687651153436377041293557892261797710899491122537169187108405524215479435421042162774183396144907320644731537546517945380147143177795491261170076161611700382913702066773516867470975100253081802981718588915378183642047117620824913263015986790550689463311377039371078890798780564679661721314716492049485823426477804437735390263744102219965712888119973401935932634743440567248484668914797605666854202178262771044901102236227613251095027411857177235306784122669508400001246446477960856933631070086152680505179408140154522093146387214253499374346789259945264005529518964088489921388550830065413500914911266573148674841477054656312917130076202742879412998994609724219903998414146862412680181137116487662413403660989140706891773513584085565725050812377145632746026949629803737048811069253125066900708124716633243914220658210287672409603719387560667179943493893214520821210335900000009460416111277001660648782293066198945613735562727710701590549424617545011151678226296395674386371365219114969758318136484023035923406030695398191980355603407393844201501523270495985672254828738399638825676278725676615269647758450662347486999074347535043230028351340955944437848374072428820089777866412173708033069054509437691819516687081621617767623343321003894168966449793979448563551427889029276798415730915297401174778841608399076361612583049417748662222823652551433826341632026033779032350563243807130360554113000944397646832358204890797350362554696841039832823839663639819509681895982066291326011740538845912870309209486338526642267248147115282695174460403880938570596652970053279609973581345286648751893604927369841791009273925484563643349270574238901487084231752117591279706768481204643179695370579737841515658563875139066281942244467931885260405029478086893194975271090054484075592592186111851012008916430412553339832104725313324483126335914271976173798241590128626331211334426497035968409787520424992992114592613277924316711243088403427207735487233440915251861986657783693065375232893005841741457126298543837790588298426386322085229112573669902186911477646887165252764800242873234637453235704443815468502241950633260717301874624021404068865346093693988439473842830865304567519704691457504590473262434796977326978334505810926844141122136308411166044117901785283672036663203172529552224927462576510462637547400494357961776965618400615450037397672620379528683331596589268882697273420391882997893960964246058608093080018830727993126056834100220451272695985904694406005506319514681625750699547628158880829205743364631626325742222929158603292034338349496490622032819019170393426698459484548032356426542088327636448776391036348637607563832749063964051095204270230102878348817670402024459495235591351472588447900334278483338853259152548501550858660176245929777253917070762993626770343697820772074033958809363150302492608936078544125363893563558876456339320840889999943774673424760735763172390981461781264516825344578371605960257202941362162864583583362820987167516850502165588123624886349702629720060453891517640155367353617389862473743346467930692162415158091576661001844651286099461956485602684912770509631772327126977592980551815584553410522255964096140318165424097074942643864122092695483741076710781651401665643499997993917797848660269310196400599499325639648784015882855234479540140456164598509064095888527627176778348811511824306953179207020259221677454560909033470469194226429919159028689246925671857891057766611219443689051693024232303756759798723927085044403517095875487042657694696024620666807691665303638290339842038791278423103020349754289041405572186108110098488414162695645719287592742463410477229667918355094100284801594061592770312939269853163146890936830908967748360454823692570550696034335701510012594898534361539419620328818273336096645188936874471706796637787031897274763307982492586483048756753585594400609540158727401239847278615525872933766087169610918848448975878347521650557171169042597422000455515848791596073122746735558983163327415859225698629712994353267869902245186619735524975758207066237666423333732636567709012177094832668249570213295258437762728264446519499328139272146522569950148506313948628532928432336407567772397843997782335590987308553548218410794536895943605000183435883948370413029985849396005305552902041179937227068489392619001567817561455503595908979483673208098887635134207370149974815477356003848485494174667724247478766122465873414076035228557102916488022132627074188317314740605236048742321227102106147328193142207371171073955781546599119752084553921479303548058570862823491472389611583628620956109185480528702077993177504372352048165641761331659306491506151069345130322760725318193756848872278613059649729873277762488835799154783188771835306440417805719204768997971943623827284730424577457030221445557376680444944457454359901088707902365029243335088616007926143985644643752488167270989438487051740705975665142831484506521911076616668606178202124147924011692285168931577258533686935112020093255198328860023516534071185806813449248781854594656894947552591511168585809747483181338204205039818763821681221992031407152168951058184676195533379836127845521835978264637702617715440781318105991939154686852509400675307283963345128131310155764999650565070467159191563874441676096128412901439468263574161182808477973051638616249573527151164611385195976166345915113622294555668854434830834920062574870595303453254695359215418435630462569347338680546570547445176316691974790323696453794485908757471936108398030651592310483026877413936888039393392392514450306037439041675573422591052945510967108666119692328567211445370306661336588182084029370203528480550242114794705602032614470918009261338875126540807607241433379423660186316149678367389941829920895302596283172781810797029516661669100435281698081330788614715064220608910240999512895795203728845800752024740133422042076914472659384767163282086879712458002657512177426843805392324825961880233203105098333147003096924908109990112684769397793882641496400092935247609917845795236215329902882160347026128123151804038044209065883214029402282753996775414937983675851483504447218909388699934766330552610155055288350246435355567540698119057011377860750885302715575049693820033061385377203586554618754062836465350680305646588620297706289471136939636164587826334292174411971908888830103173919911366640667250097926892813005534252004825160732454583850763549351457440489737081686683947214337291539849413356459055213517907591654871413356026898580146600277675094525336101104725027619865393703550985987761876277545026254949179193764962019754781719166041266279419723193308255416477318411373325899752955222677328602728617106482723148186824874463614664182612727446502459759315933661197293390960207069883605465812797210995820119587810239305460485663425273730112448119962440018409638769757554967627906993647694287759067945551652322072160815202707644408193151964300089165979290621279259190973353054175907426102342394752021047994570185278177849272768996949432303553571952930847384777578294576569556878996493822088716520292349484027545196570798258987387589361094540762825481125934712382066579800057685043389457101260037749510705839153025735606603336307312940005267948251004675578398124131082409863503975704106384753261786471064914607641709198616630612476720993840842865302686409907986622984130730841495411529307513635026501107274717926147619063974809744930554388454219110136085690102756390164772370671877918403429295682090365209532538601018767541547545289047993452500451311296383465242529400399512467675505767319356488011226706531133531741503876266803188654515609151803213234058785938730750597730225198826835926520331736304136578180966993883170304389853744926619262897446189690032878084404320537975431849604367005263631544693544349956489271196136167144911897229839950279980447759057094230807899069041563032291028561787615056861236231075467770353771340095817896160903118981842396243023447918836605138431925347018126903733216649116426875717423582185748744071116663499608062506514355562351250264527585236192372385146091146196385823592445217489758092992638728743520921324891781030602246079502573161914626102053564344164805291361971992243818272758893190880806626245986301023300700491530872598133544572790756637375533805338622299739410008184748507845523015044464275942639015986601529876785953347681879339261677547307337674151035345646281849087437601064328210408147490306852165138295671980729268589329932845175257421783775422224030262668361162626496928710208692654435403840040305466172417953792497360648510749263028980096477736485637753371408948874337413282671283138425305591885787459051228656392863550084140968441133578230198345953001221825544517534817331834924106645376998516972848131112689402956095056267518645336884876167088201807406273211395625761046774095472314764977903180003850006242107299415707570926147608820315651565010430081193006757110934545257158717617011719591487162344797903061845070015686826705547713212473246036357512874636243792216903607367992596425915543547131578440516988805764993274696864434264304573212001984126231991145815523286125243844204497657222496391596688922016833884270776609308171938475277877304109005260261046920734436626156771512013791502420026998819920294105186440149760817150923696252989999201197603531425665455049622603139387515786337043803193017869340931388284023817511837132828882508480207830682048142227687254863013575566873542213344186366748013018500898830904833525991818009408271568913482985028484420154177345664421472681280042243482561052132257938362205037967247546781565705376125513478851652645759514077140607421904262444129063434748520351346216209510793007543784132844359373056761140100994629591999427902416120028862354374002245966002063397202036373837781497654594411766168331473755744483184840259304315711700746694223479398128757848139431133483522619729759829834989355771240898399186762425585929015781370695286227014809279067247971888490512346010813066317125531093126266284800799900752562028525240080645900098507365143276221856986956590578476422930750451366835277253181386078838558987915299611692803037001408246045532842153035060170515874587808564649049776235052483891982968781388865085038352848762167639893054032100362816426509802044940089809629605875445683892624869257090364437377198727727742099049330820655834998769280372438623061442348647237883889751173646715083068979297754992788143887356722868322497393740925235569115099144280361782236231697672896667947407431451289649398236783620434462858062851870716969392535195222014691453323852693903421638951074639208432154930707224407694674585345526915792392784058366712830175999271094819044043681100540663072046151923745837165881783426962030023589927700550438014582106088326161132708413323956245751808967449363856232086188086401720463043799365581696794604841828111013693243443659102396832549994243454007614729069169928678298295563430213393500606130301615516168572153244772265555653303887472744038199028042690414833195577620195922822100863953957101245690082826208768799724568402974769542443611141645374779992350699301603653135937792322501033598229089181589101195742820687303404533263690845796233411365833765325984727147353187207124619026293768723238561090122500044544440563494969984572418543964248412270263729880044459594537243903374201332458943246054842913079051267415405236620079859223659804638928291975777437502219040948631432808765435124446293096051665451188357994930366136853363543259555793052950393649511956554590677723130591912750434638307954759113749272054240708629408510204500952448441774478622525332827320127952071426670345540697988867402929099559469491804040881709923601819155641492753210852013615632641389342734331370200639116297919929590984639362615953671642335176328248926140271418347506080579953034062705908996832431679509694812268755341253761977606315992413213732198570492879171867407562502961883894421604398522125556326975548729007332075553049167188494412770679744203573045943555880589351541136099099925408968015066020833530695981186389229393943166681010808174821090620427687330772562227325211021644701348372927183631588124764007749537318152577371827082740635860051384086685404910949009372300332008088684488654634955670663418842751507118727312764448821731525399174968838977936677682163700628432618821352042826719116711494314389509037233876164121817695469589079935945932651368410701380165238785847143336043309687676055108810224481562485909252468665357810853811138004778886537407877355418924103527968903310845032386935048725291282150773174667559734831784404629454088945780932627749618265463138973939483848356532796532307669518116157973933936868805078984807382823423135203134457080769076778105765863176866329742458826908249364541554047175315727339774587828588514224562296373001981123205436254604074456699430666117356540990850212892583362643598370089062938804254607512809754023489155408297463630287446374449793008245777240473098140479576057350973520799501345344060581716198471065017146061821323956418254104092585960302829521439104620799085711238226748451499457381955688413074966391452358154304360342923020769816567170885193596998992024072832066403411877132630362505136821472593125250900624883448967152623430441003316367334694493270656824826729126013600157421157584471739446598038787656938471914607317112191596667010310504302120268854677002582752476386590348575409220691169907921271356368529600132537633375601954140178682251874603602793648261993098335848411716436294005404640293860999741644181356120201910398091721746264915341231557230216264904185276939611495655431117855311205920318604022644121452779950378425528203284274570386308462925597305022271239738770539723952854859632245622006984344859764033899483796665412445674438432623944422654134910106308326348026702791377300368756776685270816918339509875493908116659137142383138903137177719344807280823269534718349895421083093342450526306757246294161740914519934151771155749726352358359713832805164852167813127544051451615936475215499073895327379024680639018271212484933962430165416199705902635537813384809766278102976069902545104480038266560141490239262422788801251133068642397004548099877669984095960023663307151038967256622804499389151718514742015589457166391919137555692170823382288971262416640600655078654887442730408821757209685057588145252323724135770440298863761973555783489237545036739425788969174270625294252331765022642777052866244084989176919475595409843586467787913413370418588245068070383135632222383571692762614399152498133565083231309753981333922738981534708538017275252873658686134948341014555403350546290948208608762595655493725381455285658355488310985399739731706734210986561009310169124821839265317725149083385140313351922993476701940366127752403742195996061731043916535901619902194030624778985325805309873154842781646936387748037378211439786656938502343753363731117747337697629805416937946187733617297850430578089764961572240435856682824771832880766083933643809790500625816158521592201863517926384131878205630400344122006235666359389478999920827303228618111872617790226215302912483497398987630863376990927736322161039371654453566017906564868766337152848460693940404499101319184757201019343044833731480373155208825288405535988592866511368644620728080807001094625237179749246608746672699238747063245436023435861837278597760514509699677240837959134899683513582501181203653679026478051847859001408766064862042596067450964381068851426094540845724005692088195922414227041548039523363234471035263164007061295430678116116218859037928258601347041744923076411551514312654454959509516372794721986521298679695585013660846208605169481552556190123231916892944740612683211658651057970244183352786930645717202075913490300620126462255148766959338651687130250178659266852149132978017903028559191281239545890990735848253170706018492811305969147435883996851283160377091730812429121051935107622107885611506730639322871761908121237853053742826078935314778447368253673857814401622130870320566976381212160404513577532111526943478994036633319656491192554308393763946836875186393114619283720697447453360804147151810416632632446571455977475656012856840843127913712819010715768369362891627536141639024789941766033779420785200276010911748608404523484940648086076452060931900806155576271132726604510757979111038629972477405595974655768847339932238739978353357957848980329125877996797534432584374276553995062426524244306287142102260378875602887345317680180325723111506862475102392051321487754037071041627673395197076411234046129082715451023320835671273458151142771931293303818692619165084457617357153295043076482928221606967540124250766394388154950853094455947701139948848881493549644611808367585175752310214081460966674302128511380914192844630584168437710627467366657461102688170628876947516052411148836045299299363470215967651620335570540473665457697856403264036987865235836075676661022154293693171248079876453489680818628154093529609909181793983344299854486612078259958312457282985361913365644866619930660589767728597674817327565540383252494727002421377483529668777877303673317268304994054147647757216198171928947743523486773571589687908937175851202830225376354718340099224440188076650244952409491565762925496591113456877299746955883411201718199192177404129352993640384094188728386644110785868307589125790148371833616444937611785252652069282300399435585604757008599972194774275301929627625577013821933845577810079491330914258336134208586537989889208077691377502743118019878272557818407798381234474714775610051277064756301133780806314730920583450645719527274913934944775758877215287801455466336617205893681511255751695202127952617242241550900118568099385264297787723192707791027156604480894958473858266037407770001333246479007732842868483498741324868704039531474920068173967083235902710851666296492359735341158758370815553301615116692933445064899721058429137645943957264079103446168417802835879944378808649870119357683367349220572236365968739562121484045387045487403207522215936077805102257233536662282558401763230985610326502697991964669415554256472186648952322927054296837119897955145499433281633720294700661618036149208055641806580317759725825086994634568387396028724213976566034618094183282732053417503879992020045732852336395042497368931079964934222302832854899950924185402662251266059236972548180690882748737859525564374881657234471730012900613465313274713001781305008803729476589382157227105319013612834801426278412796633537480969543919431703706924798156196470826971124205345451141434397355768296065468466479750463872587987937139443631711686254187360089194818914318725130262583294871295335576940875611192073782664292323187282741160259216629051829393675551530946603953287477987624800202830443692292604352680319480524237831356940854836577768866706285685872624372361105459617105560065737353948897887397460970483979179935134066273214104135804613831371669912174209777952482886338929661024877104789004619006570992538857233038040149911580479435011518578288604293699955711571126479841450356715851254495949467414299950867637254018988738508584296277287510807830683868659948727386223339030919012905393946761125925469542915550330528598039301370581426656485806948093856981141387613611002362552973801952422200448032998666034378678402548136380643489094555028788206771013027930252354626108033210567973896481556653276216126287817735286395634806100421970767338693311068673295993481110933098701885009266551516655483919093851646483908722476129742859703827483482576996565354456119416250345426546264758503573120757438145973272636949012353388227467142508237378093043695040585138911253211857304157342593830581349453239542923612100366755910057141525018914217163459853759460910476256436645655071372631308915535990915486651977319547302121499287939593982023296781079003311840042915936626865042777917832954437029917444273508658476913641328022524032460766185281237354058737421968941815404912277414915035564344223892837165689573623396940245995024381781077396448645843058182382694877339847594712384000466781246738299408187390311134826949845879504062508018362405265615684652168754099940745758225960806401028966241252690550960050629946818561571894390749576121169141335607270618400251188636596870121705253815674286624747040287506296512988920736372433480937895646520060268248657712873323708183253569973614569170422020811176712041117560303726712750448570956411178986780786366458115260821557631835331966198754689094822609296557376932762974280698970782303932803559981837671391131193634187477737466257814576146610255253231280485398306741153635697243068452202364647686920096600092425347948004156039344492498531460895826650095705920587195319392373741042865171380791279681163404031769876236937396996307177347467950337852025646163703130061944474220775742924075560918977354322775853707201951502626433474527204373869358908695416447172052492534387665232233187103680660250734091351524472772714112211024504220036287547918468529210905772992040848836338526356339185420159892494474178821400078751625277621060448899655003301913358516195212940550975754487182707809987071215752058531939718636718613808175664790683825829383781984127717759925540947670187762194462291637760636774958021122382285779872848371924160654684190053709836445172410829890438607704025507039830316869414394256957345288288978384977519014590584166211350532829565497005838752143924669805496078175001548374932738357558974970471187167197192296052201858571610641459327582403913931098026452759787664489604496412750066674629712117643477900722548724695431781453157471337145232284615769374434426669656252429965489063895916500910608923138336938991538283109941930101466422623125653740531535768385241878741636916280019304888150295995864737144453701267282373670516654137950297321543656645087002090840515261247205623713657180209587484840459810998088946981735141668850738667433790859455955758022266318222896624131584515560695495877722620411229330629698076316316361069127115530045003038524445375931801246235384331534227955976068735384923091868896220134420720324391135008688301762203807181438450269314797862992381207695824930072772085421728995572644680518848182711368215213579237752028604376261486872065307561909647080863390435180098686238933403319662508156649793931069289630740736946725058993140248581583054359998165352156517908107303965380069249342249618543476838980299798685736286687215678763524017123237407139370014603213991782411132136275463644487274404000294546409449022376258108245457980422667398786851627865745922556516469977992983666659490846975299625020924607388911243728722318427928309341214150439321545842779417040343656118806858685840678111193076029850391847768052430732045589688097011238692420716161425612373776499878121241010896923065826469343281463403851330577072529199163640822251449086077026751380955556394824666370435268768461520557092322211467857107467302998782870723808272475099420732996339800645092508363644373230216104173338509912854316305572026910018761403664777140007802570831889239992239189886004366913898477806050230141978001812861503128742350932818968354091376174757714376545455973411923243571361309914364743127136239572937945613333987899769510846816511410873168158406242280985916852916080686426497195180182687022671544250240659318431302648937147734539613937780528929024938907905852663027772100719312642514197760657622348124186022743301768682400416694384483692742363597357761010686030199373615443480147638060052710533815499559767567224963735315647391868642475353782500100293653788956737207613496104161666197637588857477782488213482734121642019948633376973151514236941210763878703121599027137568334422656828488406986591859000784343955000382920217343469086440186847820612709668154024677631900388708790902620614734028076876906874071112557035909597880146598250029400386268389456378125380110591965107652883155234228744188305248495274057190311002666983214201359511039429859282474632142923578810546629969592941531154400943309123329248590423088270542023086258287902446575058492671858160044836710706077820053889878333125723674007701715834569098709879838965238512382778740839136573160371636904619765678030926515054143318413650563787922229361995508689489115452905540343419123594105535529568607263669000289866464044658111397567443825066860683831611400227350329412545305263446539899283247720868908886724995669237558939887292096512104088653425589761012935531168745904953962262066564983177375186924766029663259926230075388363879638477108721055236463165253802409198950355257708808188293289478755728563776747684336178886421030387360918344627287501609923745122035778463609774342602697638569689355725651138802901676289869395673885578318792856143199851721703782102714919321734545318749334927823206717302194782038919719908386155952182001012767482902416497418080428533040541369787640164847026177325701065973294321688687650698043556598706419017471048566798294951370323586529912806029091430227928939036787651891558229364494025586673136538162595637113830686399102090949939458379899404852607784316656790120738442528526309065362109487066781884370073670376717981086824989594429184841092507631254298799917044880671570259214898542268937723582287453595185634176929964728243283403497261234809366232990967762648559625754503238788169690177328054794365368048961969948214539269602768514727045939283417188639254940700313721920498815988256307431141302310442410143712715200408628621425023250927758454527901612064284055468105687979257595789850154424175404955993334200192655384684786243524645170096564884860072285911184863797079514393460687845670266688093851692774526461403863765038144883860391058906153502463771835262525366830096750087473937549266525384315593128580268116883687439925420103916513786548253178890031020245136199870687212507803777722532695475775660528973755649970704360378533651870356980204562137092427567290199688623823481161119213908738675463093523182648062716049473017254331591475734219645504999989923990059004746052603123120810801527598338442667886900661841095458682549023149227178841440957474918232531971535711189527763213686471587294870992314409005211296368145892592620117742276418562327074094944031744887584516040002352607478641962275268484406890058088492326127093216260928471611169731792260742476876733970434845220698193325979317156460735131740517482163523715356173651121560929876568520915827139619667388898243963512958888274445655805678079900932133027990779707466482699613752603496221389164621484359384668066089072286305770954321676444154510353213863231470028656253582642009762667392788590968126704457854302687226747156510820915228022461653358736444861178619888734109626086617299478167963773559004329449735522517583724039670960598265809105768183090404782075362591301257086691324125671828024470790273973324193378326262139455941353923128523753474356782451365360057784312530625511924954041889312212604118337644476108409084725757483446233704857358770432765452620152466229695784996268380471399230015883325940580767441691556406890041614008590778207148547916701631407556180478850897099955176881109030180388947140793045257394836689803987411111070658349803699854870817156665412235569520088740372026479367536572670618752889490690901527158129438595157984558119781213241487284075800092784588161874988394474505514857240770962287359302328076949603372360681543323743902314081374216632939631113291015318098643827905546356599954153587570948235063382400217760076198176255058567929638475440712875796807113778817226432896686792986607642243595259545673998834020683922912656549248625898395269401232964425600008514503718045879292795916749741377758748698197308413130188759081241848999416633008126427368916230942246267069138068697356316953402700047253599921237792314225331216977894842756937665187071206149947051451417111572185484847417945407043773023018482496237225501067398682088668730585405458522006214079474496291453798656856999480664531592116532205793418475148210807814736566412597868915084459766359086192059436877405443016964526566618979298597647710492753780683268689468415210723040690381747291211432924245971337010831197418846321440006920959976899271826169455958444719268168405684036290575880660390899657674673256508276168409311949318393787827310467063092082033502172692727044604227549115102600173359472221155870720121081668454393786722823082573325828584378936715572012210561860632122906445726762856464598348973903146698018259705241814180751905585499669061036307993862266971811318235247336945037914444562848219019881674672576023400786723805045092524856034447546739843178205484585253851498154103932755164467953074809125033850623345564951393149587757608329921985894641270607715131711200723804139979339660994736970705547169379333039308650566023025870021105777733155777547068303098032724439546511514384646789849344405933563971631234723290586809270179359475944802994679500177984263832606324399474835849477520326824953585930689039391327069349496209204415250244768636570591909028087980999199073662739054555606700201535044581876755779796723192827209928748129565395561086823197522148370754018967183539699694156241960868203509921979185009001786316402011237352338363803505756463598624410941385276539228164001682273233876307767530320859927202577330563131151618689175045058783599506758370992164942955930642710380580001816415527511085277457184679163994915140678833013997668762397682275809765884411996538436008253631485017382154014990202860848095905735700137978000380861922327266183148308646124933024954150114205054130901494628879541045088311989180757038174433473750443976813465088307798924268169620616923267632790004764008187825677147265499581189971706296682523000024950611440993378246067852128947489641437021537403832128736629151706665891843419903981364749076517860299612497032197232266548333235888161946395848746071379705149046875927520389525682793407643362279681288943511021993263540109918457230410927675855812989545423716446305413082323859624415025513710407099317213586374236196201580363496010517722004120016196352951931239532955935954818729271363150096835302700124682905995063717422021739501508444547572925940644879086899211170606926703481562106577878211453698022163484827296383087786002753748499441598361029007785681629603393041407165716402364124065783093171126223959699096689811997581458289789716556582372876158557053630158848353056875480728651584002046158998109322422768493384432191271524464598135216512484587403097498138483894797633196485415976862099979790205338687559360506019242609312614349403591076151394388326978135243338186648302596780820045546592302841446861152498771072756227871994405016319019504347178145258638976596447965185052148270422557975720853932482769336496845269828444403278515820433945833846613100608683709749542332298573149838105677834971260960311222111668646581840166311007061981885885134111779668790481772495069755314433189450359274799530983529816114582344542577893611052341081245019520498542573778393265759235379468801823019455326780133443954906962482163190211639821991622301436565704607935929740479478225645678132958062016760330863531774322064124649862166924744329395863604186586066248441509974589515558823951649592138958156632322922688957835482230118363023422906709702165671897834912997395914717427728483672356630266713843110478079822304741534306938679292605590366373066283389663083449526719253794328199411598308689818653404806789775663005276796992021312631585656085283422738973187756712582361704154845477798974381856614371475364482727577016829150957553450555073267905128248643453308993306746702734708963345737609844337074933882055533174370561378167801493637640487835233265027249589299058136330584383817258668828452981908225755507629073982445664212968637160714007392562610341365799695077135834121173190921049262139739970086977031175389391059766849402722891476344007117696478064610738001497708536859384592789249719535923208854493530017772326656969113198537789238212103481212533948157729988077875131391619368984118150982629801336148026884711592243423478822680431164666991271093425024273390222973627184010771506261746308002384498698645570612359303401098500607806719648306201890142295723800066959433992857316293314962610824861013589150273115705741115646006181795268615292374112329874231524565491297661068192333645827485054112954705096565977386284602825345374100884309279709065368350420911603996545762573787099046602963020736777018846914603424026991789561526283576878496644992007943638521223566737631369974392283300920469823437048088284533980050045109855288612928217646241779481634975103072067901229004472154799270832604415724636124456909220691034976352284003817764512321417244415128315714450531582529537811841318555286252952386972106525475272934712553474794195859953453798102703812049568672888822589930740566052967233598227835006012288646112532062456512817740339793249334452152015701276608056461470221449542742201822418676947013187100412878560446410409025341274773854158595697638622844569348788804775785034667014005269286569833813427941639571738566917512131865783666233095310340517722399030477621872782177709778353530561726527399489915051719628626261619692040576502452992199341305791482029585101160589300901561723372645260965942276453353027141310848691043932602801075099180400353461827607908801880309894388745647361635450826250413198530946928383683940250588813560333464944564489039959545849141958498915108062763230306807092313286283108029176085396748882161078483145584317711454291599777790751497339554148766546224690661913818306193795972798228153261624810460020754944293832985471746774160995480212275476221011482974566022384293200838275394769739886065299772956053385681944691555534261291217326419492855926542855194271322372594610535957911340454948510503546149040265193639453327343852130064745448057938640023419988575423788344253513520573667031646241491046839522973899058312306003515218434471743736899234920363834671430407626374879082589686769027728585462648438258114240783839815744169544413566381327360495447790111646484610099653889219932095602333483332562278327758557792093822507358550356624882585060538710640406495467826034953458051330709089680773761434952176927651826257118423111974998966923103146710816003655934882672488217791765795874856228307744858392671385014936131341700266434918932047807508556230219837550242507707624488119865130453407350941488955470888587755405438009783486176591986432334629580117263007740693795850101960576066537737197054972913948773358220298879573667383063335088780224100090008424174750078014986782322413238412430439200775514437366345741047255400109796944127075267298724543399131409984871973863570546113173705522520267009391544206295892196083478073980561780218524312876233424338187327346895663811925685158895760451472547491579208250144525874950330932594930453534067109233164500371067299608586672985633822091525523695842657151662865500146894685248110106294703938624715157853136038427342398589109137641734780774939738255873950701068444145123577384271200205624577807612583825121575795167384894471863200107941545007977446193608309023355359330510674770778807885397019983669342887117086076864806762470780707175187605506068639517471958852073583672662951362856113529483381920459645354154555310692605597998075337168335992094573511536069999834921304538445425948875675270068645388989897598429677182831593055954794399055045721024069438317196386825425990370860713025833172461070976267483292879678606317666433229047067444940564595483314093245444541743297715113926442909159769627430706901381837706557121393626971538541995133109603632137766096441612039017496201230186324399013488327043517075388858185069349242195644259213149435331794569695171989043156569840575253245658453659132537965533096008310301823314859936674742165555719250557474432396720367700767197808907188538193372083503168147017040132813897858428849134194531729152115419347945498324225584915520253745602740128277330728069374496626004287336759295636489130490160799852534187488290269438554406797833779957621445411781061736655113291465688385057011798651844375276610361870331305599133185225243743610427999722063067455545871413143908438815053772345296447355394068998868640558433581902017004915950060044417130719703836208089364923939710418472237339560530316924738614868663251451513633067799558482726749985173706906234044889257498822491034260568833753017681626579486446771953821623331018581441096378652909922862944495923117571720416811193058292752013515011578333548780309733185883884601291716884156892474930436460811767701620472951912337721010903925083992884492995427115014365576306561384421730249414972883261087931482273880632611875183184561962176467021483547980017222567813958099608564604854739094387730604169382664960953005119655149390297622093015927649682744092292249695082524906675208413225301275411128381020573681023772697206539281042583275776969641733409541979443600766107274654340066505067469700262904087239023828109120416654236703077784802102653112825284207507376034589371035913164836587876874770595253372571853809175373573538951830551370534077938720113623034143565494322156778297231849553820540131611939301199649137870895053308792240546350787158573122315719951096555247408723924566156531136582926647720408735708361666447122047188895376324737371252223659923686679692689441016684268855124184605803729466438427447839161176720546065262200672899562062211818696586435542288647119473346680634270100258925145097268536816083968035466638210569457893792643703850015538472808338229466605410998635121234614179918314098885723645403646561803633079648961113971281592275964645615575255255516383824451963059144563388322497567285419751237916023126710221631899347733261556953381800083262778429497462305058357827178420591814025217760374438165276289901323975320373745565557123558656307083438994782483322224782825770678465486825648992475228124526405214449879857681599641206491677419089167663603153165694254073099844871841971248709554936452449085245402072198612133457577025764802506832038977893283200569245958891582141639093490537404176544893965842954736966188338493797370106212865713706626969643966603658877100443351187244406850035652031736730700143393355866479281206246124683562887808819731778893474942540463913071498710415630084881285203001310353229811029482012471609987443197322439240874063641066676513260395753577887381881258144707361586141901992315568639919639135096231744498550749146049098920522077306608271354409055227729592621859229417180053018674516260969001354281022572716915156848719950005322873232092166799605160506191661478938295681510479154668720994347117301907120628582787955147400219228474522298020931849749256086375370209925482155099772676063099033579896354666050656577718677561353667650342971558488326471435263016866093275823160618315267975610217118853208828153213932295696641890111100453672430333323003880613588891527039922797136822443347372716671058442438545628944281748139168372850149130893254245719019899833282308432412978526488468497078494899466534511786079929661050602626853712184170690021878215398551763068558668414664498362149369243483376244240312829833688729543508372590125630280644327393446738422277801141531871367303150694673352559669049792728827645694266258494526997149318764071137701252398393835964652289449821932048638786380497663562009706775950186795122991143163842805356414491650564132231758081669508820390912885550927433563773113816871838325286658244626491537524944350410433835456910618828142219257973277679656814014620802107908918525153537405029902882195726418186499567112122439283540255943567787846958243606498668977649877877207392399829830766473103066974051793670887507057485619623410605560175116646795857321251666873687784599304774848575368724183738596355100563987545886084100875370211770464499599594328021733615840612944419249875282594232159155462483751989974930253741635728078052527319982145950530571809426414000093795903114425636516058580213072521595615312064056193926466455652562394046533385919202096378933220919429544347841651835425157047661063600141346893084077873785699150566656420592955529518628369507755904338891855590115274784484293032297167821486041483858632075626748243294593688356741326418792177003705283055977053720914488951706839336386711584751560953664076073465583734552572492495719868749727406761185926387882733883526159860495969302185344519597022046835876784579337878516003247443133588309792227671517160342043329084772446500640779786771020631118636883597772801482710657275474244173732880334811796720508407537918332749706865735064588039488850312284819691795522998138550174091204383816789358749218790723772112246804907081119691453364735986297193003829001886337343362900064043098157613527845469820159965990608980106534103967717202176054287752766604179831465848136815777062269023202212067907151585642479497864443618928228441681383621331405102625631710188991217321600177902213940034826886219251958330791635390753107135575266521920427551347135475525645166078190120168517618726115347261935118830087145041295077542193196714811529390521667057825075654421955881430120327887401461396626728811714465529639627742179554545237299476538161866971769210098014142538229158710414591207819346095611206588502908343602566941874002174645096130013187002576150888845008826521350450577470351790557025187802312896195814722289598694540795945802071023127824339270220591479925642401101473381951559814608541979020753250936144647556574684847530071889581932701523702492752303096066279631580753694453970713506340014420673147254455099086756262977807915485071886849226476523792297537933710385240814091048845755598653289443027075677130748439908992560691018940009846577452512474620792938739474696373512211477368619138952570429197759862192685668165140618793990916647627560085019668558929136353980840461425419404389438260790902385233337395930287515422486292991012438015994847590111497757509528737989747760798361795552243342382898967214607962176048339683782509676962080874003846798957155289831969700073285852638851587054839759039900011449481860244640396439388829473077750211212109730863309055712208760663888468918098677635657335945118248053686350376494115367377593605902571627561244603418444257679637387848154455081503620683957159881449844468617829830379918232905786576358398200138354016670883552380067082984897782549571872575371978200456644497077112715534488380329163395473205980557602704744532113946088825268172947108029185659275441138986499300938585860803029803969449387814941361227167366616073423284942317091833741162315689579461822828583443311117208744485993836378411103083526923663993491875818481501175915542300884477538192462831447628134305143470745974172893490557034065740408153222593110875550028511732381610020269743480927223967729689875276326022804449058572947391914038898460503192390081860443504742110045709474681591500560211650754553651261216097499543560121103845885942337880450809491356265402895229692496836442758395038416669299816852502765547713443615137976635363206202898878838437356756676396669376450287675547794203963225834885335299738250622856506593898910426624511210745966312678926935351491865648349400417692824081678233668121082091862710412417067098154250029712416141820413458517252167632939382406299802583491948456225632596441787544041290824383850731628039405545685829036486683791304424961745309126334349627218342011056124123752151498463163917077554846083630745010083258495293357369630980685932964734393325688415711917717440528631209793095346662601372231650023136272244431132773557651783758840058097799151369364215003814951305137217260713313725379630223546417687627975720245413540378383739591859833925926574735130081997780276414846953977882631301418294421713323380892333056630105192484183673764788136251938194969017977838305379726788978599271743654741917569048054382238160613490343388894500882889100020896828074672097472663381789829659064564586942463864829452850347847592280455822421190146299485985761564201564777124013918601630217235982618434037380149744433135745069966618345970419118548913666296471172631029172124320439398582923297420139600287253473636463403464552539675621170855332372048014715089909995000328147346012082714083993492553210032302500446347059474530545911253784368851069611603527577385017420156883148695074284064192541565954397992507863430280066638152829725738022438408661564540497730179787433434371849054095250597920992412242012327377008793508177112519326208902305736407390510021593853142067260167597796853699460752490005021286199118844532315018748212192887825585400742485406316353840584261289213704823963718049203917790615982297921258552626651101442918054509399951930250686748991716590560657350986114459916239051296860680543490894144952451427501355636020948758250047199939419029876530375521553340008046989242942136033775516291741414398351975049442727274412197835990999876921059502196818219327006353993486383274389124134609621296507774773621262367892180532461010422176192225823517058081344628680747743242775858204108788420017715496104207111194827628131057077397737335458015969574714725671999713475089217875796487947028857112323700881351303796626048139204318029694527070795227264902083915291451333832535803513393077677715959940968910416633158893863359421603881239741097149075495892259992580162869675002878290021898032273224901436850920823604703841437302166219872028823595897377752061998466175553918572465171177254386074319001861730405422789176497950982355665803278660832543663336774863369165721868859112325996324263922688429397259511445243878150835929495580507044672487647678798827179910033931524858278335421953176842798699877039480319380236293122008366233292750806799538387904204127799404070525154677922887695390302441748971870076262974505781286011426262171371911714034396342116858043643879275830392454229684538673993577375663883286440616011771849571195768849439082617363931787638410416687650718071655624697145930533364917176800171972258267346897021993370216483227919875518899678785294456854013535114278790749218060006404433065408554424116795085569973929949453168344007359096332657320567902956265734426019174161664616792499193258050526637319681447578944945342215796336082353813979514145678895510550420056470664977101772165610469086254167344884580065321161191411737621714777544863353427943713644183245384671440059825633710332688041992742680027325269129800332127086540033014699004770466038980823275506710859827219587371894569399446580977380700195970946269718976145582224345169518310856260389817037708885882924458340720513908854152540922262951355086073470883327339573020569257177666691392778135888870626285176221650719492233665551028093133758864636335241391660298521579921896607954970872128037475528214099441430616642632289806798528884696913623750854571436278025040304079288650694127611532737584037684650886699121000903163508072584835661104956677791712750720479693078446648430972340824970272968269405158819036909821434165712324401219269497547387604777699435886979605687113530832541771792580580591316251638805982359630405901494530132198160433071411285935690905342487931431590406612234530113173823532795097079339963354610343467541558944558298713961387055140967773164922001197299251176448501554676792671046865881615254562647808596512104865074377246096089615121514897533351143700932905461990468313651229887336728479034817446996889128801774840261176935590075512655287690129918504599060788534462775844548307706607107717631098847113544970818936784982985420669634336403041218774466037528405891151606441272002012882461282822537308924390774082173985810616549613372903010986457048005954360420061532934506970332407041324960309149925509300228466769213589368128560980392291100264264534673610121582973102953709563490053987708247596281034650472910439817726752851033999803585912683008024683525773632283620595005768068482345404563505043570927308718182147387647381938984129638894121381324345279364097922914948296319540169508483632358434642180819883001778386231675528409231596420374633875549396759225961811719262917928329395745068856006790125831454407626910063329539626149740059874122940925776396200617280690646737170354390023177864759782131260293043999797146645180233124273956123669223374687901361149350546442344419366406840886616765488925971181998678787110028484681107562189780795592865996127451421951785740981529770599319224352617937811133504806067722280635935690230743471051853197227150029747898781443741254906461632124295095783065771026331190079909854672159900405509223936325787466918232096662859559129949330494614601544813021220665062521283603322176871204209645904334174307001805107797807249414828296127405876780525953216662638184695027245605325754965123434692514577510887231672313368984881189909452894750532025802411233349960122648056731519955046927590212181945393265517178985811235601080830312294695493206829106090483190076349125718421512001514022161884907460461299336836053689780404774393870239065248258393992734866851617264726257936604819427430729909603149615081846802671312098555326183747210110412627393100391883261335280687016571009434210748044514034138219347252289639199128629985209172397625717968348957077979392677832373061607339250969176048487488308483905124879545216033083789586491341191199404871202952196917186769578869052745206310896820855042276377493188987780075830242578861158337731298645522540177952979189693196162182972947767206443722350115764174586621956962728073312407635348491130776327079740532367323300361943639014166853752073188659320874959793049174798645987958399422304344480643960068610835100617852345328590399145984826688402268937452666890031691582816203344264766114618916545539707773528899145964684487305657056623795053012022545393921767618647506391967949585905066538386612069380645286464356290321944822309569076218554014597666212704931441717755993678043968005516750248955614506368471859101793793511002324018674689731305153385144350206989949573247559414446955764042088249912789439356243238437468493021660198434267583537387423768998079989164722552242033406393690318214655840294216970358125220333079957698294758433864919248848102753249220983480043623204487183960527252135262010737644477291397933315675510281289345168032816944801851448973713358965747997360047216620330396872330262331870932492601907204536955860803229663688763163681722622385944976944849192112357745413503399949300650720170959731103454187502328455386725616598770847241957330078906920008842184011352370986128628693489731993025465257507343018232076318733492765582055199680267529583148852092024514768788444304180145528951633007981280610744448769951220882741703069358882045269762909269885936266965186216850774573041168791461161886459730884657167356037717332371363059330409262183885409295544413445912055522838825105456747702928988878334209157826085538576814003711809268184867110007739624816810415317011800464539158842600836096742201472529544811700507601314680927659493330640016435690007794993003395097472442761167835170041124617466119397000792072451994212015477093537551896714726514755533140163559921714542000872328696661166888794141815921159643058709130087444674825276346080647095131710911996316436622564576152094469003971173878265814868228619818518279165579987210733446806175223040740509819359818192340349917438670908393738897216266544898863759647038618416990363339484215543591691580032814368720517365523298866000548074300739639904023216766157454463371608557720425168007345145459019268680233049191168060903846739138117081681401580689115561159927314573004651391022333324458213372939353982733815567289434755338331992603660395017577174198637540833984262296948222540862602265538405446648868647175029093607129058000231149706019212937663445077087983594306460200646909133281301496516773745101346325459534335941928691313082705289405909204455988522629779741375178670190592629511710398051433001354093757559441160851376615512294432283313632558954858270989655157603990095815274662074615130901290322644823444093223345909448550570613735863988547947486872584863842427913044728763315047552020809665264433143544519017517457877083018897317635010061208128537788626690205640087088079801158987663675681868301026567332229387827094014643392563603152534840052164199053088079904471054172713594620052389435171602296306603185337344964490412328424264185714471621636452520718740796603862865873009921506325706918316848187734980484954473014640282323024627598553748074126608714591859630303760855959725286943645812196958415674183719537243846189355309685761751011264129864151572685260263015178961879493763368636501413130775104218177475997368407208194291305331155872565351135554544210835582722795281779262708222817309808785103103954104057078853325215391379937972038628347114589661628330374148756406620168849470269220286893420524229422873053771113864136352718023461508327326922187559865331991226140249145230017901608519544277097714918613166573592162980981492050497241656958680007639267488232968893650300221735237273454873302459014394888627883559184112676341217832731576598592067933194424939116997563881216680788465883303728552170270404601200410794030361604066403287505524629095650440888990242293238594817008128335338167250138675904859980123052772422627953382072836760132830833150656523302810351901705170877705310912864516615001927492825910412921558289828072427634239426346725885554287138696326653901236276755690773202117028192762265248690162819797750358662913028933930346714973511220263156398329367976270397458906192939531342212277233492410182135621287248397081511135567328720143198171218870318312464260415489595899806359021535423901307154201088598412315538316515201799459938621300954262107215818707567341088553520605388003682925291828664238626634617586634748762191021158420794655399592896432103449593422034684014786514590411116657627408017639785238233818306851489100014523924545854432199253464767657172375523398102966843585653188919804729987639721332466674019565221519237280860364947880733623844667043633860785369889287990616430281534889579530182570684138271889939004963994137001574449603954683448502565582053490804578457664594833796123658306392240304083751838183474756509511849549860206650907733221735502814801236431823553573474571984909965526768012595577547837755238456218182038487497894343215732070235282102687646045511654183508458168755407828665514262716720009904994838703839562450615908758020839881511248211361339332554101740572686355840464918673660016183647175075924438396622297733696100948697547977419404484389514455279281938421271688957303408376453791232055761101260101425510185527003065101250837549701766254594764429712791350761833967812346645634407375386972489627731013708436210424686401152261161853247429538656746758840857724765240543348705579973543118696767842781888374514508882439735286069854666896077841386570649407632055519687935028944240604699186872736649608736095800875048641269698063314129428625880810882900939346020031013989170418098532731068435485977497814951598305352492733276288238748970815726239283336803829806899973646402769174308727782976907504041487368291261468083798808854461746344105755148601439809573275317882744715272539824375591394562720768065120618443482319865046623965097877329595954294081693376548559593976022516706237265003597519776647844288090957785156120223120583983036670129249785789346133251003911466526784832214652505613243974662636321323705845780284067642900251766834328876488283678447247859456375230825754489480584661980918243811247603134430701020463828680344374458442293137052843811409054371331823453722142852563387856487194248655156478375590517967379735670883499237304439050602027991083682218100077990023696580480219394259014025374918012094086414131853524484547692553399596008750395239788007414551859243913985156102776099842205036665757907230834832799765456717445992962616791987077818627247855771641104359511617595578997469961739823903448311889715959826800237746174077803930308392422754118759853073784018925617933441575219963564861972119195041210356611805048226819702122268250512591471600725403448765737481737320530086721520446328205304451276627840043996607195915842434890925407408947182559841640355980842049286746474618243670633031572024265669040978046967144616379933686733683290803207760433350540909770290693056878574174259175727634295820458866247026660815156166740685682120829296018159418152828811120531972288178298613111245499558836338283695720016270285986587329818508107827528925783170921184785426668634229152530697813218464380595516545929066817503683556419893943800262670707780170315545049237678196569533696447487088316823658437413178683205614226529368953758225341891207671763611914040867088674881955602857909281207718106369731373412131654180646855264902671371028259761520121191657463492181892648206852785231461762601988424092913718567610342954297596894868060406194126498293242426942590177604702579444923638862100719615827939863854263820957282395709543466604249419710770113031595674050039593077758026264395909726762943811721258837249505335248609924430311092939114542507064400303709037672964755035431934790688906786681963247611259215344238793003889863011258619153645734575355126779983004479355716126954645626474511432587026435538472755442697876635721023884327377850239344150308847029718268951670270929689440819690627872773215696576216641880001360898561098132384344282955769612641580225361689124196630580620950830617206913067351731143460416673561993251257197050181563055794613128252011625951159736952561421209431855289106641316383835417480807827503122471769757776245960666163921160957122433898247898422884707941452353854507164967552212640375821891825470130673704514269052022523170959127151530236499185072569133588525721312236694656210682711631448412292629840193497798171388931171492021022844539749075594873256484219229173433195528260616745854974900542950333722912418021379097364575337304394521571751993035431419115034366079646578124039286855489204274815718173864274882804515629380295496361880130368214928592520214963261241078340691036971629827865481891680198120185050145533266171343265037329089739261945033789216017274225227504633511473420678433710873503258653304332904519589248151634456246340480586148825682501035999516983963486955284655868554940692719061360605174071986307884627358713146071469626976771900012956698524002448640764768601826468196061281422030715238783943650507882482493605538841666582881995370341505094839525616710181780669612089171573011745096541063879807462613757020040147008556310366552940006908427999757230122335881470467583621607522893414228358845312121989723433889801816419529915932286956514262514326391197627340466529152482390521272621270726159159542367461629343258796511568742834430649667883409883000810163107594818115874990504916746376551416726579918804076978234325450135196082554445242608309904286200850216409282020460227299429575499359667868751351282553900928808083661240044242519222429911429186029724501624671619891006771896267257242256326658872182084574540866677865222583697174785260755328288632662623069555880488347750276118977717947603097289124126407850320677122370658160492922309234452230003070215775760033349902402484501384686214167780513586293038251148500502441011101746822794508274946374799230677275210339891985679613792623621796633440145808132336478064544793812025310897570002017040509804606210358281722537960810823979984977611216274652175787742530123901136565446899606461299220368584406658896989341674580377932963011963782463224970970550750442471752367381918949000386634532467732049463471882830429597399653084557692615570724250942040457471511634817935142423319900398528800452374062288905762974405960690160509829922487051672815265913129265979965922996605014144521908343972350353664693362200443560603484872284192575537212928489553682801686596509792591143015693896979028076309758899131011676873314087005311448532227601967172871727242471092684479492359419485816124883892649226163971862060300859533003808915549539056079055337901462473656342282786903894619511608581470149760052408258981349455002684179297113762926311012408079567905022055830731260474260344859818048891206825915045875319044057916796922138121637723734872099783837392801854987893599944362949500890556332073201315358781323469087246747934172140269188986875151790560264949694636262165238387817898288112167907808228815493915548716260982170462536627914846034853895488130254709060334746678653553265577199452001763918696900947981612263237474413669108268732401493655185446258378804442547104761113889836578051260983091162959094546098539279972871905886985223783267608774434654509113318839391346346871404531561299393387706407872825247178239325053143176075333429977908162218757814047743567759115956903317129925848310932570656293352318096419273344860778456253265570421799027258453690779029616829352443348295679575841561658996536111129125318526145347195297492835564560569839023668120922311821700329407461295067260103913628708789344571124501820502781091610070528183771365489438774631560025940462451471217723866148895529924526859054175949041374600867166334967472942263423861532609457553127827801851138878857570444526465986712124513737439697614357171166559844997711095782975303206250873527303130049645496485632525378918485180127649389022643053945306231873229089929212642405971172302831280070509117232148400821277479420888850222561493470460037144614814389056025324257614612441687764543642026465321632002048589361744017536915836502284110953835711765829514594415668933567091929664439128831748220683337246490070493415477712795158366660069020404228241745384460652496385714578371522796274401841536832286786972282032618284433387282403094754045237954942273485801639089138788631186637905233819861830938572638285436957702090920289803369615241384361148839492585482723425739642277017038761312010643189373645930495510989060603271435793349273813926489226292726691372551175576089278914631299596500418898293147943109786929432855444979898658215113358860402972480456830543568569429085612898153187794359450080538551356359384756007537760773332737981070193120371729343847524620829358483799814588205252237353027957286827119604054182311165185257217929159563830646239772243143635329767199076983800966992645123336626711427550710689063336901797647417895475062317887655179701124905752995685553081431456885969610712987855425879350629003028144028715579697154962860731928128585788124804730462631529994258234990809622795345425664594292953319781033751482984300734108754776819512666167541004853889655337021783485783012954631743905584149134192059435915828505209011457088375355072790865274040567790899734320515403677795485081804624358010973179658546552269443422642033721122461837831969125615160521878863428868585735365982254868610290708618266094919528820119564453885852881748759481536727090224035792984604196311453420025758302500825611735854813769572339845061240217097300027411520066057701647773715677825402494703577238167386783435661885760963805598736279250655202091241894772545948913658192151176697693418941016746142016864841436356962499737933556310991673055470041998808613508757943461925202818740525054301518712350328720297357287728155457199339890924878084225068411057837448585245827432840876736426038085370450222215625175942394689345955372696814597647875740575684641047068698786573139435683762893638430196886012396831514095822565288011438755555596658570182916662409789668468318857484875752799898365261341833486522578499587675683214276553305342749631061459023325877439138988232158832899675753922118697097736978845824973393829456383807337180237585185171969069670209722826354072839591092529000657040826215826270514043277876995331427404294107748746921273691701466195330882412082140390112541446822009242532173428451473156309193025079461871357125953238139374238905773503551999335557006065488074569209080086023079683290012676758860785365973600411753826037592044101825359811918118189370599782571071778640112652407927327261640040205549131250250078460687751230547702642445987982518944868645148137180910764800877161141796946484240270953257856944680348578113620949970059585941292993102181978707610925057761379620717265796210871687229025742896987742414685555260970738899333648195266751236754410262109589618644160681513135251952900187400987089048647694454148570821188922283924132073972056455015263588814636566712915017401655085972848406299039620164692907892794739360254239033217061070705844975744590829161566475053440281829022479937109252018884995147622130158955354872288013313937996489311779775264694828332134670920737660456391198649120704085164565646830613735390854568295435674543330261917361316763726873622803623058323126355169217366478631045733452747555004654537709968104473611844007582327924268596343892554706297358650903236555983418943082819911352803721697900438043057980868049875499697082773350300131100659628473584967853183304455546479189653250949189128032275599640260512225709474314708376856561102902043585137084205422503136189397239807532750493317274307085994008560710798418445347126127909047396867845995378807952587623698266267975751084862901862730610235359038834885668788620052271522782713470601273968294301665443991803139330132353395024013763597425235139203051430123205717735404002278083605809718672671259354225062283521793558722080854161599655202700553624810186984003205926306297499283084262451602407071087928462414461853478411260926700780785938320036799700255472830163618303046034154352202614055574540092050313898105305603637478624147007721812845610751595910546017978585709267836563448127296752583379267680118133456949782946645515058485838181152405448921980282893078751913067305123795348693763007671558811233406768170494720996257772983211985206102157376962601306776996614514422390490677228303319989822890876504950958193743289058434605836435888534285091486302990060266785613630874049789101637090553184410629891626949906154093920579385828006948419781971494968736788655592419030454752898523365737977669115252972829901492075582590713539520896633199880383561222905129027628424694118766559189318698610451100331715843055998554525584690062085908314242040742798664135467156418285456811307707329296523515581878172356129379955554702714767818966319101006710859910894399053392038249938049078902333990189023094574476809404058389691133020865596963419309989982199993156142789947693455494215330164851726187931087775251120008691912626003836895079106306685099154825993760594510252202155315734026181150800630534977745913071911544401697899564029404871460977769751236904039562467014176231723348766024145499951555015090967527227012515089894354879894114909773204656874880130274879191842315481872665228247705121711978239591361730457011095096416073310862915314540449863736390680913492047550500635885766327916620683207466307991944116904815054624329421364722152127748872201148654641522928024194481583576622309799003672728398283663003729319127733302455290727377521212536073701556767421210939289042149102011414066463463692191412707161058266790980998369829047335142283641415501340846855357301659733473482643118000062512485039454837067724055179646579689080252326165764941612907325037520215257660878126989415446280566013717172714772448717177564778654155946423931444676761568428805723671807967739609342772605067995940693399610756262654735290956937779532628356157347983108608795956550494163405465233051424278938264506291729712341618259964664475865963727559997225279347762481448834211523455785901820607301202362232832074569537227652902949003201122169308050299892998738866751831069931563434299206704038995916342572544749135476697837168994140162237186805260606820251837998849782827421631476353028455014649492990321250988431003531600234523655017656244766756787814875169071667248005004889380747178166795157800672604074785912559903874210663176477651788202517544546015294277645443224568289855328070753364315791084200293041484883213682562965644258910509715119854887919053552368957051205961165766702527311034997202091087092897804498609145247905509026816111789707204302153867360907869298616649769025456723183540728848006665079317859353241683322142918198591694037110514541893419985117809989106863946781423121187835596242033864727106672366519653752421793194798951728516556332257683170495558936509014247873732462581774185788328269182971458186913915313704754760321794728798711094351386636287332732171648057729031124683075105752127479001918075953533515962879806268470990077922888353048315744613034988300172255566176521777919355774536377676748854889139166091092604314181701297340639657363571586196030155011663422869745298092470703014670247329733626347527219157710684754977935323687588238601947514509756006375303447613524294530238563061836255026667643672820813538545751330702620830598002360632114641242847146205211039802930594933234419339622282354241816061434991416244485270507288082774690342976845960922721461193184935333095903939888686374300883770797679446105764662493285493924683638360259380133016429057146282411966917465873452879743837332378731131003209115084720163576757543545266265544169606430736744431351052540754577154032124600237973636990086061251079432101182559625621351530303907311540641422807026116782105177823896309955893673706148179497260624919008404532599966449154218250793150903789477895548500141395025968182973445984947977347394705921367920695366478421915686866241608074674680652394924430127203433292137926081779417727298959449599206425058963987675027450113264757609566094784188787044548151342869645236185554711564662227855722748214130256724239220179474278376341814412061102150752103240326437713532275173769879797577078116758145467783612074092609673547549043368273652346824353760285803668246497760730050545664582177188519496009877049407494055327602963255154739595292152896379685204386998063229436665666735216877505942651481315197425948191445101975086539119041815316003606962026510369890427610973111676380003070844020270580503826813614333660365011944026091910698323598964819203764853671321155725951029337403982901002364832924046864687673550898043859231770166000267914816555269479670849607978141152032989096143525672559119405491185046175952129958695593588916563803896799730358759357883018455284470194692016489347150172803442276010652306212130542033168259289725805922183431573137741853851417711795757599674668693071521292200759845333432708379442653363657015564010893054221395604152633673082675530043826770697983825343517217267951504880000821155807281445067151428413670881528858107448420978374249642946780803540919840926105664737987037845606687289363607161047856845088142620503514070157631044828647542337300730556005347093711286702853612568331679732248938746606855289643972445621611609802983552919380794498230393190951727788939476388057877898516106953159680997227473631849539296297791711200519125160193567078027339428034211827038513590718272722071884519854864522767383215379000568725483832840430637378290804139666009302416419933544086134479470171743114242939582983970418610033588563254702241381461434824090321789778926997366940476647663564731537037360387902680083820572186899787361149079448611958673709757542257757796313495130241345432556605482173731762683653406267894021392385969781631633129559459869796720778039170930600119550978152810653028217540152716862613812331557896702969977419813306934548459350875525308310905302886757507755272780515847790719624314064972879002645277673774270972403564831660132135027376045798311463899867867015606119082606258682888836764306840696091888117244722398489877417532123572379925145757931417679383436109724580465227098180977161385198922688686253150951967832516621186394160260330707047954280131056852390448267691775993184376102236969698230154368986545362354535739253516439346032147128733449741457056806105235007151713892653637369828759737558984273534130311173299404951439877365144584904464250555874379594827479569677746122114350244351740025148800156514052525288569744339329198005946669472913798103406637947589076970765596080125666270706008797127370470993685596002716574599207229772373952221306931932558001021370731948052720975983295175087655731447293675178564856958247001736592706920090163040146311313370553502455632658324194228909601508528011637487510513672641602327041103971214387309519215346037902347885288869407905989973201428827783566988678957770210450879378551296094104049448507669490548145233124031564814290214512686204943641040210392043934938401087740163806832793932911137557635910989460888815345588003785500537073040955962133752595440768235167214667432631427536427478542340191832458349009847205768560374267852491317673362706457738148304858330731171522391825524730133274453113269653433019706076151949104143481739743454672706882048206348997373834872996420512361528969934189631449913254569795172934029394342715650267922931751864853642057753162135429410917357478177161262099987250278839208484397225358715959957095291604009603668416965762624204195777295364465584866310223014741660214654341137384245457592050901645269315162612791039696706017035593396932476521308480938528990867295226229234322742178834717272578005865684369348247617550414622810931838508438948187083768736118485993917344531133915465398151300436718906948008255793971166279631132846571381016610734484217860887358948323110214943159079561863005877835603501934827849940629009107467467312371324318627136251373331987488446546424649363111363884964467220627875334136848057075712418057010062859621477916028044136479988731102459233456675622266633420706348196175655753193806285648996700174284678939347727938039668992829271178266142842580832360389789583086803274632869157746595411480031339105956896670347664545490570839464004009543699818194001208552796873445760051820067932114358583371451704234513649320748903686608970621412448019405383598446381503828264170490518179236283868730564199944831095077630650722824027125792469414103031507882061487624120302269154090721466553378728893899639405355380076225326423889092157011911537244219655044070414657646204202104454500227517376082008991087228526452558918780707561352134784212962652443214855204759638950052626430820016207969713591371752290982051270592119943905204136949907964702939068709081333537009072050257811424675670339597543537656811506684049110888563176323339931324670752172712666097419920615025442666136253386352836403044045491425935873289041403786849663300625463340661138021367876909325983883181510278476854291055519213321653192450321025811763724129787822203120144174809856267466900872518510465716231264713539884475125185491971739957153325786222725591928407907572096258117629064563909559780580957001537501492214924436826499388175469780769227832522421065099229520603879310598358693777682361796027947324762231349701866962690017941503153477584396563636688190392632397880741728004099599090163149119323419600812280422376364516903333586642578242292874332049513325458600523107278408879716436570143311566290913643765917320567920742480788658964921291410032526796168926799395518012116806147064521094706605748260438656808069468485798057538821677749360739442313447685597601784700118272137477511140403466715194415009991603239014281470187342524758122593659595448649890616292823699525424160027273312208056257605909200320329843218523761500114174776926917072094181331515737683760792227684048078678900347064399180697139774777669410798582611941380326067511419285737388205045298001127609370508157219642429196448447123608160384140026752986619123001793587706384276403124575395452567070009618120145213277143947894552084094460158542799641746431490287626418251539286819462844227486272220877175523548590051091856556329423211478676562973397690382010275107908753254302257526826523127297293233322895629033070692937871995415016117169321950735442302764355583248335599977871353297280548576826587573892860434865073196668727974129223864047663785342247379343312642654323249799884457113005731955234820526823001496336470142123877540312176053743943467456475172586817782968265354739425208468851608693194374746084132744078296326083664572935160308570186534325337615203429733512118322466971732197774594389058941265124696750563062700900168332112193394560094807786225464253139901871362663876183718917720829316969955005082460224616969782575580035549947569456474851086983179892117237584828392386805323101304462396515875586109716069256076576444443703921636372398844927316249322650361295875364281993385107448489587519218716451022597669792990039153878640618171433642594906502624714672949970529225159976332207602825202496897216428038443416198174966760087708278296541619593525575377582715901961356272538488169994013723245537900874290859477239453846384180907403300841705283302942080497771033023466847410202948111417705875957484212924530565961240783652360716394546980918170299132371323200740098099791202383018599477043993423118727879298113122825159445546433345358529125378148375200991391195654327162214585716687465487190847275321294438876729361670929482729230646027179947727925843195432278794605452169739302804774207696530339209363397257669008376208067128581794589508658771862012607534836356082059091238585012769131973840798855218094032134089796587064149996254759059311642445986301515747974718222010305635649932605949902440751270215806802405294938515142205425262480290592477174825795896038613691762129256803630046354001560992351408536080058689412159140320194082595348862051830805615635372759390424243260931107618038702185542733105957188554362131130762519910688190597493803427264636825515021505537867241212293491985414334631307089910636990473198642353338417221219309706964542260727722476838618909342708923382814837171544231418225874436570003706304067634168703009100158246637592296059021699256739513285583385077112870227076866333785699343596240820912517307988323829133473345347022396447472453536340154090792157069336909669962068230207310794805042683830990440709267574743452463052516249502853627020118517711061145349834136262053382900609823638539867346213427582256212062401048759969732908331952312804077546187630457866148836188141144443021602007810831560711521882411249593205251058437483750351145994953463208026239141420047634390537994948809957133264008841069831218690920795184090782780372339178263573263376220033846544758653930228590974442323926166828362198140652150424220160135671387472546265611407087889302555933469999753026213823233046648374293255871416737258204124028600797903875312155672554390825060507332012256646262677197169448899174009974280257634189740443285334525304762730620909116723163383540807652674011828595771008511044595613915586225515665198632459684111416690467940809051347738325274819364151580682668243963569554619399126049695050617525672461540860025112624800266585991299230815972712581640865465234797383866496842916505461994527352306018894686462615181264389787223656039401888970959450754986641075097200568499456170510329296792423233222241968562745039810696758529529976120642271838392453767622240535803422552963961007688006320398636085675347326558722501557886822051152099058990313984048659563476439629279835767904686000205562140094887999973866237500631328250950628465079964335923740230529427244149192770040955792790415604931929582535917321613124676233574654336199062394613695887360162265087320575022960881669033785923262496941474224859586096176845370180015635282255520541714863910546356371194431902393670306534170457894258706044231646125338278797194905647123356040893424548021403160505952462603431124242892360234384833805577265312304937458281710086028477613865625755129062242965210545115252278803333334221475564911903805454229918788398148646168140902308858595523434597183501918581137139900183459372520360534645752065079531675760547712426932206595067158491746718654291924468162658409899510669545894554661914641999225615751390959868232413396971580919095619156204983010881343288322385759788140088002905327524778451453498997244340722996892820211675411072885091728150357445870283138311434077527946114755073422389483303421557478498062074088964586060789104840683428875340718730114024821534511922837546014615930201036797296598819675845388961188196049653740970488061558275540469834491263495349555141726096855299539998994036060479230772392093749654034413998568547842575365307802220000464999617170681115831484664263376177636400274288098388045457917431354645957463799761720481869558736421018837092894904839048387437231847955969049821723540524848705626835436196727794561288500122731109244034570666917139148957104626220757329644185564496041012992441879624368949830865762123587032404392990790633442433335778917422930667515268857808161908382738146561083169433227578202758578862926102270345232966949162590978894406685438402652486672165207353111014856048599342846410166933016811117240810645085597292987432268838731477808597922345704550394247707729286746093706932224946051788517899735182556764605459702956761393206594096259544833701268766964158593693061534117510881149010539088444885883121488754405108168396577011661182713724196596067182240861989631213139622030008770566656892671613282827063201404849646992656786058235329157562293363241241879472544683851913444436047088928188146379429595798470436408097568674322950621493881558007773331412713730432647217521651697181505350194460370555954540404778475280061240174983040883000687390500819885562003942281005817377179701441372585229423619417867406771149921510750095905580691886881766705438902176407790790652085904137430649736396463104416939711234343001769832443205728327477396542299029759633825322496214189903895279209453090754533732978302373552090425810087217088213765179779003709552280508299011538527968855997133487837797803497600591472339568773985880634826408993823177169061359614100348009245633663022894043616867723258517365859859896266659172981387672868308637154445287515984792272993194863183736428324801672629364973041558908810397832848303295407752963541786145565486868914289581338895833342579514281752461950889525410284858764648092954499004663750442472158970619376453731651814334960448874352582461037664965355491782674320481353608556614069405002539878389239173596436130594700574032611774446968747318497291159470811952453217567833226857217234868652188452832476436330567113252002475278111243750221461705392264551785993886631647741489078145856384120311220939580714840167169811242996647885876509063121286250505157550236188800871821969976026481575865382646276088961978609849650475068951793036745884719433766451832616882971336143731692243218873337662043798574778418717480979466656342356129706651677799092295450507342089216126953804849961677487024051528771291900441864711917907526589007266499107899130095279973126921603805387544369867425648986029189314969859933705485392258673896207423194834577470541497864512942073391740503952952242980796981718077981441869651096928801157430709986971006098290174240901607347844299532121826130544390615665632902000588296725073742083487394682472541705271897305008683009354760369255431739769903276751426655014222956188219140471366405694131697006266736047337423737762698460368508934339392414949544647810256090807399774476940228709514556561218539056789139616911276796295108657348003237529963495481750018887217616575040950130208738921450947641922788782094948753732333080770363974049924891739537197293452325659084396901788174123698297287869686010870758481234151642018136260641339380116156207921785923367549812394481169777390493590159278391272830731987659633465733560292492727161154998383353949893093866989910238304832899914951045065289475020967487611598832919230392361592745870435226707471202548941717549078015302739033715712357593593149369809310993970545259773900312698656039777466253282682838953014669456346492358426257869283589756851301162781560629294311363216158003825217382988414844786403743618979114127667672328995270518531197396813656319314530437819417338803655011244845009154278608217761826023294199405104378065284646332742675495779695912426572112355331725845400633312500967683671538202425006211399782883514645234123647251153303413455742014771290792315649428179818925031291323473789121377898912283388480923894193691170530026847428197760209117579482247416803234922470764778830326396505488347782641938982429443514259241244608559393157777838497487149166946876605345952921764513720275263526112214696327659757365138964989792138464149811955530935971079244860204619079998986913718534045065824225724801955162933111835525953432731741633090316635156251773801117027246542816280197402675685267364498041093750896820872049464522215755892065337934486216761256833662933261079429255361589487727084395628510697052587591143405626401844075749416720443542135737147836837956338907727424727053897957244527514410361902976515936938208053125004809896253059658666244047133161387284846295416388387169837333023745842575408267010611353299844735218467138478068281302679552232072780254225316661850047014844667562880139154733039157451213966511439896813508359583477880210835291822437624062323494594553601002282176798265641109181062948269439552875754999106407732591091623236938306226595450979248908521148665635791297566133823550970714936507390333899994406484816099305197655142622652716067320758620914662747054969269106890778224572941236519249036578357538625512727771308509206181482649665919277075747683902521422055787981734186503203637636448976819143847489216187888045484826798778176434293239244197588105644389005301725357144405382697481432268933701741269732309627070199712992474432187681968974244202239039615590766591381295501830789410743367098850546983273843408048421787337700226247375787727909677209552970679469883601210687560508994808879128092763123249453336549657530521901470606482838700729104049803950009599480810377319678430253866856316576370179014919983891724441850973511920454505947239352843500182463371506127984355007835888476468187062099850983110976855080749789267839759374559630716736948946804257849393836796341414866126562244147865071536037472047079312051350809329696524191320488089005220547533049825045437673982896193235630551177440175847088093953527353948469348756866339942754443119230356192995416823164623080026821616986637303235969633390314519611008349603186020643864534405298770952600199991009492522231219307856904265392236198532910799937078204771429942245874446874800571877691541027981276657329639418917728764233781251786704187677391023522661206801274785726050543521943400032985982837616310827331964229933146749919671421268214630456010495722675824361419796705625029230829411621356334908089319572943162665189157414959167577496099247829885101629097554717663036973622172849470927527709271546972576211890873375630125661000564132842188172584517292181952820903298579796095416667620482329940407956333734024866217599712029038116369645776851452480099924499618683647818968904767616542528177213099226600408660889850661898178931567323224352335852505836498816309920553587780932294876041225120154783384337245481951028266664447844134142079546505332900905420334310119126139328359843305054641992401972694718710290680198548361055936718018124467647232752579377807650586453225007677145698062423418032361217615113309279827754679002494385658107164373243180539017213875622836577913010012278752087838984695381663898237881373947679429393554672787531343888372777407081942187806967435676362633195524600399609266019362113358418499539138114417833297560177016502674596264929847491045961465002479804423933775197188929163323716237055361206214592998238005800345851070300490149294315015801437289305947359464884044050200163212477581383321940679777233218638095141472354568684974918932694692408966643073630559980653256201952805583038076180429663049041664888911597239820522829499659813574130499597790102347530570314625421117587161502445313801286209621735275028341709680990668376924286044951196843321450647008899613321316298275249656373754482506796737992123778805585766836183136347367602080222025433904536745305006364840196582982634695236997995109502129144122090038155833514726822173287839216891317942063565770596725926365484302229316867469369098342040690062386336417520474385331464014006231376983866519891791147244015259452869805994677228374324223778482454625244164562761964450994792017047469472028367571071143289416668210352175039596576985148178346080157349599445385664947350400023987793306650242510230193887604157815161713451168898991608973651907384479088027284043496186585528031809670048336806037321750933419837493998606737943694794567628263572612568983675635464073771889063548518620882523761262672840213379742916202618978467571185608572173482692296820654881357221492421671509531982995492262808148898660179934006803421045300643651159679738495317271558834872036248140433396574777261287042748007801075879632730455372558540997117098959138184717661592470566619774603351784854966808691431840059328592967496423469485257914686655708117189198270443779261293230224295564251126664447767463997322372176246398238873962577848182216690304938108813610077815157026200949181451727436465693762469562082894090496566049468234480292698109185713991660771686936116589772124346127739287981325760177603509536706707940078004525000657782713836676728300982714393211788393677251397122976366444584716939108109749573660440064910435021915498941561145409073756389384598100229106023440731581033555902750953928525250979709058078370546293031243691400201590821619031767225221080636733671993909497221013581496855085992649589322554902832950919874389967852153084395569592565843174342459277577478650292935911717030696433533490407813733492002253086350814516701690149365596252988176106843322675640064342672224279981996462793356566208135513382307734091248524669710165503965330131852719366454085084629868549400906755074614229730003719682932445573437909781229350466727857373097364486903160633499335633355011600215154865989238996894349981426440012516061563176714267774963462354972370263491930384727994789620480037998771058263628412177961669070748906012697930553794256079168293223222159279825884231031770865172414621131318854478203344728984139776413021335177590015710929437546091129463078112339479601910606278579826386643535383372651291159504456954673329021380532179680374306238915293467789453750587152180879352061578826501493096610963252399320541583502273164349545019737408726664133793664525755075193569934795848767804612290137442922888650613722050246565441195167212919396843720605270115836902097744281544029897649438627790476964972177919409842803479475197438218852194003575091956754947641896662515636534536944979388946651250117968349205612657094975842076802700829214401451821267044227299724792539028671885716463546172668688816224036014269199282212431044221507603287897263464994005881832846338089301472736163082392551641000215208526919972643986674957687607886134245732346675266013797633942142306206926781837133104766925140918285504164584049030262349908044026404953605273899954339639631544816130222314587194577539199408071084357995884249083648153100976600162590688483657720834842578136208265763718756942370066911228132639291323904551705300585839882805172051007485383829035987184122716898905898717176671981470525936721532750327121940573034273508966530462934942536440513143865885326821713977731822226780806724487577103469776553932808806715704105352805576809533821929449804447228810178735193525949647073768106290905396053529361964012207293640725887783173698560968698371044327710486538283296660619793361251879042428927777259800896260379473246646993794409387850518732766789105901601538562186612552424982238720263481403851125110436082419087676764140047483459823713124802828834612897137701209398070217993602032021703050095167230345724838635227561109477849111825050986141828385000834870805377335827507517249343426518169421811136976253282414107756407986055633192837322045110166541371435221570486122688028951178614200707563907640324199510775137465374724568811744051775882484637972448913605868161569689798415359720542855989952781385092936250261535869720878683492104828178178335354602428356117169488759093315693437894782571747979684532545815218975573989693877349529428603818707378018014290408072368602615921568467749571168262413897215066358980487784016249802272608682884126483459877580928193709304186757218439486425318984952664925254541437367860530040262508722507154574611198046072834257197677941135769930801604585929765818626064067871247241494796599318451230660912062067156590061242894507026838874808854119309700659289444586563020448063103441880443529205365322112729192427188680421823396216875539494022927142823864212020154462970801857647577290020925714590729769676221739204074334250734450613248187125189274657133362012594230221599786524133497390593170242303964207070188516492090555102636261725818834551847086117978687401041915850366964934632176264108902659083438584787075543460443257903311870644709738610619936565450265969145099046184371757345107711288204259665815678414947292437389707115157972219367822276917601258287389955998904588108828867254070496778999780739784045327511048235579614946981493694705782234375571234489895200091785115231085536193422518760557400635991279893616914289129625459027461178800876930410995530659729088251975566734371985526213403046017208599380691935160175478719404087877035371303707586694218533192367735351185211813372732226149547543001158321267118587471897742481773762629116389286131370463186863721601616035181665928553794402154976164539818104274926043221690451806103674776113369523252326874776136788247604954461277895896441774147589480824991424390613694323550519051860426672061419312030204004720324360364255459988269256130311527629393749388071156423581003552132601074568244739546339776264171024873113700097069987890620217432257215862045113478790986053227743896325795681214811718519269584178443906526811636932197053930099660674801261944263485445520540964369787421628232731934125105507814357076272657390518742085912678732304717871631433984271621225817952795139616116664918942538201123457055049383131539503756471277805607202317773825868398701111579717130399857486759337411855647236536949673834904605548678786728142053006691641746963966370639141655276825617575005682010492460032464116402747944716597309213682087346237961352271129626076127747418800991007528839884700098276055876435501964518025264926838305320605195749211780287237588521474044922664476920214600970937983760815997664011317471392857618534584858183641706523377933108529479197000988604885698426786979971924871801940615223432578028430878695462498699139043861626268617073718893779974062541163388533843820172166790394506570874127118233426213599787100467471150579086062231962134112929417171027112710996737627918972567157566759673220412884005215522043350543403047804726298743045142273564017232499709153198114370799764376568825452959943512736680566255801093217649045201325905438099804193415254878781556410436367840847962046172237363684279524379491212811406050576660360753228573245535408085615033580303980500437900612531224206958607674223411179902354032597832327776375306999837012679731876943218235241560324945040057853308430925133653465232320817521832432778653855197848188986789808589565031554507765435274931310292507042628322893307722324577564709436826906494758592597811305604455482429176799665916725028100913712006075464416295072644843262140637690968423630402290650104941171807143648439575237492647164598231943468594978964625988974133438076322767525767281374672895600645505932539763432418415114840403006336400641797084530291735347405976073766890660597698034470530467919584825699419241385414583912465834190955995874858847715509288604183453550240889786266091956788581588195264589886009657991331582568739471466685364874964090747125720793224633850804375369631880462971527036706398201893723249552409601100825372111805012515684390541114335727006535762711893020213368950856490463987542930708745394170139669840377397449967960120593554550255851635220909427920434340626715838113206307134465055828705463705167194354945641032049892732938106027905758543097555105056161329849022702998361299022670965573734194337508028572113002664438558031015082628735139249255766349188890188300902356984238248986651531170309955152714602851744389987278927989563261843281069205665806592677311907753844312627501981133166852607226312320602095979340229609206154002148601892723445304726960296223164001591830585880966865953780002591322913549623762465233342039801118519938940798526440736929781840894656685911770683468543575649906624982640608346387931502189764803253297133408952833225409406721692934906286562051213589153181329980327289302380439182612996452890573514152947802182621584586380504759808029348023249914519724988685569694687018657184362301519315439704765477061173638502795926866899852754640981736572572509190718028177444331457088185520866689200406033168142394657544403364905327288281794922530410198920112908191129329721595257057996192380029136169336491447787249929470393135327748815939843503024146902658073437440541799262470993490823516194800882762857819822251555151603143317575045087951935925303094629493844823966764505985313806209640729267136360709071101877919956467229425095776689975525145995052344370526563481756088747733665004283857342984103509311627034110076624543736128590611653782135793539155077436916680879770054865758240946523834857393889552349101961188732045856663446269918128340638832967504973691631429897452067047321900794955357015768766981589016328646726911895319511549109190764828638606851265550144699461692055220846820183047058956324064889748219224426838536305102979736035922260416018569077726633297143892415286420789032662714841016450094550463728206456182628470122121326021435895636097780217299681907051822586894519329996673292629008383235827097719188695220256930008130133213785518641665045045278148324568316959717280325494419865875817704926313911221143513762939171338798793449951863622869496974925795057433960216007044127126428115331664448339115763869599564197778669286388322415453248784437977022910350902294896442016845661427658915253223631785837127010092513150737835876154606882593759816265684474818291410394351795902280154779220024231774475297871101925029447461927837560627745727698806599248596047222015143863709182603185157432162928309569258522749835119313778818760690140008046856864803185439200937881928776114634446424438382057122200171992490856168198578175767467261151932157328175548604511049599492778851188752539809675046834359430773927512727136703688445402078538302890009260830548688815183972913958721992546183764401781217135590369255219724337559238986090964161279724682631178900793398757638994118326933745884375294957987170696548171376153379259215953141924346775043804314123064744137836856153107601460638722651885750010446020896404611437599362526412102909599106056350681014061007698830951396045624586729544388001595457828393986477651721250774968692803707341661281205667196498250897069581837687795450963128368116278086111477882958121585152384981666374659526139079071026319766250601563237587988597202722881690970679447818918133348926673003418729771930153677704004309446988487628697887877576981598908015986753958832563066014970600033665441970497481258009812694662471761200693581025683189767050519823812308580221864034308905764454380399929683315652885570690312491435589759502268037982585449363915213268498910552034121627858809617118234342277171004471957008913801381994426411970128801871055495683811783679937656428150774871585544123846163318281163712764003088945921587729434038994406020939136683395514873406857872946164592613297827400567583815495098367791494827042684557492701026205775742879178607887449420180638058982317041466369279632592896450777388864168625438611778637519427065662538492030823309652612344343267856101646061186374149688429516256570950289121132765893943084618409804478165067940936128588458550086875007869484902346571668347909536650378454563345396739431311605393860773606847841488893507824047739591494095939496740132736943560167009165992257771221004295369955658853469720045983335054970335083349932418702488299579083456216681366914616642816190901093582720461602653400758054599864975424508931425255534625840040443355266119650659833401573179429292475596790277844551798673453930370438244782266712559740967597199853411493662386119904612482759840895075834631544870161534447164286376103203059612118716932846085163333291553985868362073327341142055788578202243876698061959427910101120152615402249032611983766927604607086842169015022177491738610081266040287585998236194418379100521168153770623060725261027963020401763737924631760375205607524372209942167521966037428620722574984526052279567376977481220148246251005083352455331903212788198346632738351339259276103466640992810452390863642412434697223664509988594101298242636273666467970627554633663977984095849905202094980993540485525103984860479904817821881158923068728082861902960810160364334615530570879586462982680957185147306085092974597257566242255048890359065785900414650444069679807160684958371048632974486632255101540772703495057015103747884561747136938998120955560426743872225548223491018400147318518671090159640300749242729264945613880052396676294632094963817110267256465755273247860786695718246960943662808358866801593748834677253653538798640188447515058709617569016402959189685514959853029502099709351504594557562456305649118231836174986932256480869052999013259052778350709259523777827546937666530203661842550948345850097927769896944254450839257934087642660962346454623271424689431074466158446539937684741147655333449163485070566310114458184415936926470491011280119421533655437637894529994084036155415613309183213643318109679791123071487519100318625845472333091261201687459413713123187846600274764380460873519347200491409291748987523378010175527719942148817689302184940219130349835160460134636031176604658664691451555736739170164499500484773368296450985209985550863944106119642257008418647323672498632752028059566280462756689516370346718227302012960470229605163923055387645241533774277372798642032838126035450626625414635732013480506686356913385143285210775260547011015897758046863026259569133342388578090051956724808105367431486250700881464420636261876136859697788052078606269901097239732208952702851617856211598505605954196781533848008017733304584041695412903666171831841222450833909870826884062276145463485685030172532625107842674492294062810715513694651439725849345891887490281929822235649532947295897100682594687346869321480395498140367347121873706268231297911687257171113654111596433075736037749943726886933639726625612313433223432663613036162608590838160859161157078563272341317744164666462673590180636160086702912028817229739102965214596016562102143965249960565087610247699018979975849535652584258690083754695509864291219498507160665386020596038207818056007130301292824345049437781298108838477627135051707195852775025223248282818680885741762150985404617756965578615904991241578516907693371455277904250405114573016038938877326303112814376820352579008726022406635409673189598041720743650939917103629674850437038743816469829180336393374423536850577226573464296496395307754369770693860297737955327525101507535867983274679975950846608807496302312883193180818613042407993556209144016204683918278673986339748731424171118543116347467268601377049847347055322511827012455069872093083375680886888513686160471386142371257477918604168299274434858465087175491331070812238158231777819011414476043244173700341890049694637343217684647796248455472910975613677946684605179123048734792848365031161894987113635379870053165204176285150387683200635824945523938177116798365046648388721281380461424309132376172763950048008941118324611751259121290149950602156426650222373762152653298113150754001078091372217662358382837028403933562305019457803748178805555247293039373504148648984089199385983260903253915154623813748748637031485534267417030337913438375737285468989275070797338388052519085986762266886158351422358755327872086462589338630833034390472987400261538113315476396891429959817126976153816385904690230422271661553080440448840934479510435035344515105606576858082906739202464008267575387099702732103530306548412456612092269221558071719146628971152712187649057581507336587424721915439426331411724602280289783217247225414895683725370349708567505235154885186225804762530833548352239407456789342647081469722873573483173568486695436677066394427317774811041389147550479767383581751901582603548169831738828482861147002564687010983963631688290244471043990071832313511509200918054518431956520009194672299341182718983605360473382792905922713681627063958618676964996541407221809288829720904196066648423963915911567056768167978556112458124505670009427824767570597202418052607789881148013321056668712628541171247181742815015259560689131763243650879108730998175052878520643616170790988866019828446663947885789235277510067094584572155200438966620351383603737068855105716047225998514000982788773855797178304106039715163832280923917330391659400369882123884796957514437003614335870633290127381911640144632079899790561538279684339688082417163005278415749316141780398300329845191465764210007216248331665973497205359418716751252953469662832451551661732268984161756577637787415175801382948366933733763250036059522509220757478040497082953139057497709281762659948788175932706630749904581077230279844981248313042841676427674606936181920522764888823165029522397002679980256155802880877057792122395849847497642128924354485686992443135285054043139690514174235508013390723306928249549917875411846594473254874439473682349616828783453806395849528937516310234499275635534640820046468182706402672357181451033213651573124202905110411143017137997278113508870258438235716997405234551045996858099892050666404229307473766641039150440756385656293517811159324153285823031715596883129740949431456126657125147554917892250170444985853955105662706671973406207490701977763867002263668761494972568917497053499576530214064333232922405987048817081519590753613839881155797028521716920639737491992578558919539135513191593230727904604692893515379731679280160418764114274896383999703226696658935372062066933515763830168761763339474627336273679441060016860654851198966124409740840012629215721898626015655097312568492835945353369061206209988365310989015978934298860868994658420507037946566170090898220871864372493985112792385235264333717920423249825737443231801162292303802237574226614957586310153954448164956890576823069240222227374504129544514582633484020156785247411382027116213161255539413982726091931908192451488393508524120859632079070861614998524782850211852517407168237839165272870455611455623093356455834760002783373384408921009822549465150877040243250364028840209722002530656264487989465931030244707390451055235836509049513301221631189704459905539010506143005513455571067344288871218591747210477843658622181872231880783392996305708333523623323553988064630287020998804399174509463769422073922414357921553327174323099465464782191209105101799157242928346339767483698197075723703131877053201770903888665617927356403133059037433892194039574932556335035392067598641027853847238253920327836687394451812800411097428298395517134222542504661283306914263429049796392680587734684503955080275382087336421513194703635043553393702867794547047219965526037459581185529518013569663820035914705261692993730274622917858218190451602212342595003870605177235400150320070842937522814933310217628605213677091324625322462211069575552193814952170609055006271313532712953745411089066962671569851208287176982583375941255153355466375632229841536640020993940077476086498828284115451471175176772241963190551440762390768537409176715775205631924935835569261888221621361270714901370363995755445234236178991725003674545035628912977456802846777120469796797947146103439377346668740758226879177034491849785544686077633709421321174689234512599152471501374442750846372767770018820244407339000783619248005467946291090341556029867053603255165671527006300752287123873806764969012744103737873463509067822023702385938222423038216709320102054465955710328312896438885226759654950936810241978365164226519686905730649209522210947802947950338521218338023111114741037609093361745228379723513055802618177097484932193583635178049475101902763725229122540731969981782803899778722615808406916347741251091718033072480340497276404470516533369276419767442507603839357450358773613990872923869661872249542759250679535305537200466469490631975456190194545894996178270585875092316699805407352088547730929755205936292185008581582549058417908088533422368515555936902103606186156547454513663351709800915274485208999906855404475868515841785006843197319197864157961354101982324898027022483642556128837313305483783599139970016170136493028019759673374910785515682986284578383919194678076093336701138462230035198138745096170586758071143975015958638205768797227499522599992640440782116243571655984782693985652770847788619058832114888736667265707112146290004984093496849247860237719756246618063103310642721985831784227322693709506046578394364450594790819716628810675392633453320830082329545794434612650026678191568455918752886142613681884853486270659705367345264100645579456731146247358417886750129462362758266278821079140978901030898648381569196467181615914645488452501617805796152420699418419748268563067615908519605165989810968169572238485272049261655661346084461671126316903420985095331782010162653923657722948879442191713744227077969558903202142468438825430347492206358978978164799335783067691790588484770837130587459268491525271537911978782896885832464182780229741071406579168789145622462334947834816279683328361008622579037928339570776129828465537241522602230269039548137669294799632318801276345628526405247329188885178183227739392402616148352070797934553745230732319827541852272806785850839515106083986701931263291785410565076368290841197438237954674122785149797582037736619260798905418012039441618923435700306544185556701231053295302074626466144821609495273313215167824303731953264974012919959799130371546052732756310328577076143587843752748507588888317229667786030705169167163800776975707778505498842472356037438876244331185069032833487735764270174024486521946370021800751590716199008680157664663677161693821011149678011892743593562250443549458773181670972875762005051669640832415332708288923942555636670584042977672110937875637524729379861176423203649866758573114546587878719986906269469445501876979603168418015864068249404111304116775327929209703062332579263283085815864817816144977702940345419538071886821993806457525541981688972930948309247752826753096639342597992011278609806763609022941002152839261449604787184686251107966800206982931233785227593394383861623532086430164882390952016991352280123184483805880472971784635178942450518737297408021722109424029072929711720246312919490200120432921836103209977624302194834311992483743095258085243077514748262133196825495576134264149874274385126650079402888263597197101045389924335122249059753263956707591432560950225845822828487797598914202571194014364295514274340535263404966605117175181615124666706136204478259484475824561422229534243948077137774838747146417204593208897389014242911809743291414246861575874714831274944463737646706206539546591624614682143814859589914643859005256070120026896620621352129760056786125115115354186114491926969638617134129872309246208019092053044793591142671476485839189928204181068766802049130098228273726069133345386723980364644589672375108426685609242570404880142319454702843456442991573663963983086233740236235798454088792035787004094669900167915294060450182328776312034086081334382712347804404639322077377299663353128104113781466099814546282886790846192758164213971063052667668535075453303417537980104202138843032559498249662163453296136693441772929445078539291431942832608604260700936175637985690078413830227087927889464940064487241637777472646598801439986445339723854902064425425209800935795844342374781665517802402191442239660567094428160853745131931429549747632898087477404550299708769904892395618827863782228382315896597397844453700591840590371096688231442630439685522440181329803773443692374956493463330466250241641083436719246785495275423341113952348203480958796263135792720150419232927827437847147119355795414185284793177228450652110009370832802392588183382225465100977195214128665928490047741692313853065436245646943843962625188031778542069870381838240002929308330791672952276042129338881302541888056076569368436194322539799785014814309175053529709583248596753053462385019825114297925468883303270725608711747710676786129461504717487111176772072029695330472369892048373612776414513038304914457597835672617625851103414855846925860262435513337207025220611669496994560346732608551199191293695848443346945972744888787336320410424571565225154085726386821524905455642896715091322757146125896622829647980063294433520266878662896124054076368123142474082858498249963037900649668174235533654756239582060734662614806766831273044110138298921156772959835424741051060850637003813421134892387252453465068792427320403373687139516409017911233357813606840872342427555590151654647683000270306724102430002817479524531155640206094785306440012030678945174228253328049276626056494545662339849582931317062451157042294671484732546068298826314430382545362888470383675270612597747074197178489407088383698983710321562363670293303312034072224706041065825498034633645111476572035994644821842598851839526298047331610456481871722430878951765448724788996770786947432665489161126517200560779894222457849247642365509010900403549618905831999061734812579518095806767035517554462669995660440974151644858413270423673622502414915922574748591630368114760997721824167611854018060194822579266376042204337534375119256421801369603482077499468403771841112925677860881065726426765906227367156361380672101353543951162671395650083939973581629216149194609592157213623195859335356886788640439565550744978662235134795824161885662555890297045133695887556300065923698082337129510677067040695098215110744226914804799985269886845322533574993740679706826537645638648105699581581041841229841037559979596603284914734413702228220683519961746295552450538846413846441267881128044607338218236833729731428001718073363803305749761614538026211912081557574788114841303732227053186932320889321854639925814254140158955127503663950164578968921492453345439689932695656725058910835232836781649239384845978834051275662422685237720289626347502136694904597847762258476264462335335175185659712451201229125070979227193081591232801944652073227582442850728304416570426003550210674578111941343406073799560964206557349820025275957288621073404799055871057515820251500560595908147322828699142016943299400967627233914553722713167105591154294719827119929935543158011133419532489761168043524000809515446411239904526878055510347850520823742408059216876645387717697021378196613660110662264927480649837146429364880155872135469469396289299624798182577827089660114964009710069382923053396187314854845380192101880376549910519525148318776943202276876382026791650818906942350788518399544182152998589919617000180522122104676345858941909206948958138991638391409592990631145842814492868887239276916137053073110053273635780774833681531393126113227743657529486805556855065139269762735448750841875789631119865075087504910586737967158078099689543098662176777301506697607065159692150118160251436373889346448184016966458189534718694790828474867105407676868128293346218684938173136201654572168003931597873935288340455480869468513727811768576155838817076579753294766657226527355793910274183099971834930880851194693122699034590659831126648902184085010702790095480269182052166813830732327552837405705387542165683663711780418672104507993436424154310832447135433735289248169960311602428676251318294852121682613459594201075867489566963299207230826910098569340884476283619535634023115306136570940673516299678007651580121159023169720626975293087247797512468501826940240401329007576395069864700517163174895251837601659722136371560966834004181171914176530517499893438414933796226625443036118549623120606337344118397719659388814922376233700211661911703059204745091353864673324236178062390869457517255584503312900563636060291234692432824740839073316695664252640274157305627842937802500780199538688330904817257808773190059230584410070072063008798523557300141083865417488154669868667291221522372426654705753927358831522195542304426775170623295645952658520321745989309093668804843666088956136816526151353644308129445972557707564948080879955752100483569835090821794316809213990720266966278281386213162945647974601531383988937176686971236493142922122938655117763668777454712292519792659739309569572371113783123858636558387280488056507622857273875608054480663079739095714970470013924564761960722952271320452709855684764247073416913363293329834158063893767998187656825815012873545093268353652646727751854693130770666568456173167658843259511943541278097631677342851331036480800695126444003317675274799584526801088538242831450496758485383024321551073083411029832043662275578830078698318801862749194171815314861264017133320932130477430077995406248436691978031523177004798750228497927719350062781449438519161752147536999537073963853386764644630807212135528501550845960851819382517553221777157979274747704972746357657256415108905142175376012269174622041565228361251192833953249658168359971544102492973189667524786999440705982647400550457788845480581831981102657509231183670980202286878217599133492867994209595532148407036139476685068619898953506341554378831296332406114938678771497730455586842679471731685373299342616495304064208608531698829270201233031343638809761517980756802454494281406528358896336711242381931790855908518190006210978401002902725524274798468308914810260475751402418893648783605608171836107303246944282011143809456959324916440806635207231236711480849246540337180333467305062014814591739141497519802876738599084092717660185128749270858120574070905689093160861428458461057250172512619022173191961950183519702096579169252433593416502520832459224834225075476190824382678777049246808157605338413012668350270974398900540632431943243034542218132607796731012235956008680711880043783855177435465542010696751095105058735281114117428378742905951766886767967738188578621887578558143201189767908855678856750915027494806303679364146242385426780173834465037770096499397002050345381765301711571597781728928798931880397320813588815510307386157405724171230384456386479357526797550636566780641346775789004029475702512318024776192802240236225177732848926637280272479119973230225407298367529780791393103239400643858450049126255294364185968821459286944497648989572063285414665513090296870976113357847537457644084533328395191701065079496251821602995421874183759741715549026025229395171670176495376761467986914789802452232850360441363876094140781634130829544179256370890810070201580406113447411250158666192976112450311590124708071298243506700186845825778025426097689520180597833245941914903549480392235931522685541995707952579082952356753596998950167538406041252244868507004816244379451507445585969052569324667536807638040969013267484659651509036782149952786036264664379101438173237792659671962640127829147341901530251690226057000216370179322419695902373645026800291701368927687706492348254043425399197718792594052003399908432379454523103946590052455577343474135925781864849574742118406597149855519828450695043568728610222295725946895316322338418240314083406357862532623172210432612690785122997102180956344985022858495498140210840238502298707551815979560252673318356380094562854926308243692419712799397678483024252998385200959005493396652108681348988699254111323545277898347431131698889297770985656102646685768773860968190851823454724056994019405022548966486866075319333553307144759373149195499758594279524832589345260612895487560184607854716838443425335975986592796655711868605959096782761972317177769038267917459292837885083817713896530693621634476316390049625216049691239558586355327522026968876602978860675929765965323675427252868365428310089670126776866993188909370241450290854590064994438469104637846988293023202734998851062367790633837520328669159185191032670670844644555711055064490365704269197481963514189214618402941263695397365744014167828224250734947241719715469750513251002374409912684323255200782972332926668881678803662053256176858049897667374731380505298316645489621713117160982060615529325084775714336122075516939024548812783370828575365474411261228955618505599477875349789105141415359380089977926255090059843636425486353250639988638041320577469421401145112299056007741882159312779206951670178665602079879675166857021208036754016298955259278252981906861706432745770430846924122199147395526571363198342905376559144892559690217449097533510206521689344794648347937513465934583804433071603504937338731365581630559789043170852341827479110079063725599799922004925565766829882842239734748035417310848587860306236797346955741531776645700755175593112684013208228870830827260835209983599064507740788829819945438877497686818672163895006143892749721299653659330880707707861546907721928260118367303565333855679686576693773827081711363141249442168266191149324612527934673432099328739789215362490303353534575120887495217365232473939899019290637575481976942811080515012508216187760876553037050519301261778887276292083723317747718848441363830439371891995920815803535704964905885071524446423212578506309528714336591461489725383600848455091218943067654881881989935131413511841365794944790793246324566381223630347614186758804127934666158224816214224024935327837282123516357052327705578093835966431091563254452684665836354926626746386443823212696726955072689154576700088771372619702050169323200772903301689966777415637633721877684481884010197950955186493180902209387186565516306591980875458189050122297192705402558215931919349908001372784996882681718863640216985330329626667279475949488459971816788873263473642764118895700887093103077497972579318028162739363277835121901958242058897254812673243993454606022220533772216239803064510790586294465477022611675282093767726307607176804435327478744192721897933724034501459811969233227438828295784701954099407650344763597973636982500316956805989946607980207096443682597566186403746028516383945375521334274378776862922318742721343173561634506893163406165728233079920690871081050240375715359207440051271212856673765527148222776586987576591760278513694457357395675741283067821674788890870263337878952348167618735715466064674787048409561136545403729995082841922364297910970780654673168270511581818007949096250373476780066061686049000673086372161929931211484696276478123554296660158750291149489424902030849600446266419043866152252792432456525339103686700096497466184410622875548917936586432413763203964136600329694344704367276224727225699240413521819830602073473542217518783398123145989617240777780773786926252012387207361102404846859267149817455073118139003040644786683233151286095664905781942585576503445792843133702938069880190156015150853994163443362456567025001043375029787525565611298732982055079420907742406937945864152554032988293239719052213757581928614721872986685063926023049457029253653619568644543375805152180154350814712458399171654951155017789327075797071964800821042866833194532080937730569732741198693227102023321557309512132930702499153092801263396026276472029651894965143817644685896935406593319374201013674247153469606329961020925582307174397195045504380792436838849778570594474605647820464203961463380395105507049390221399018444430060831795085552099595192876145515849804035840813773866087955176591468441619220777805415221545795739597948574586344974651549014330773835375580544874028584146698531314375629295587197788355217770704364241465896125570552281075942051585783191392374264226562573510152440888721435444976593922676876769892871350201251617888756259732972619413726934294583937202961409457596242258816037309599087481567050082772496542520192172503629564716311175231894587390726229542669415133097142611655130644510095892128722185020615188102253974017143069514662141827077201241052973577055739681524075844710238280795325989233368146547419606909000720978341679335946712092816266702491192614216651108658823717119251219988933237885811531136843578318120485886440009384761840830874581188304080517947014128671077220966145866355524253152196809019912253042823238508644272447895933241931895957042959846303791596720257101713242595979773435609552273883158153795207709332007864941311847797415536507412931872468492650415582563063285671221768762028787956955031985798876579140173033607103835018489385302886120098083103592817272532276851918297543207184074114774549401421907459377055912070439375652269013193684945121959335787336623777364206107279834580941345569694066407210734398982073621843794656502176712945235305219702131667650438447450024646724294784507137551728555667937799856607524094685151164162845613885263965894046206616458299083595138315806362955694049841552434479125889718709237863139139852654871034741878521343107912814911932050040075770757667655880685894022028917919089720281347483835402398055799700682587897989948653632736739601574087462340470449594891472803816944696104773773450799373830365880005170281231653102106208119956702750890369868487233312012780047826898490037283902255198910564672388119936671494093676033905577105413821197854941564184832227167461104690716927013291951171030051680976746525494668493293302943877813836744604534846610755556133865648953883489874201768088585025835185968777242943342271759051298640446276607748592301645747043890801243955740159709428594950620859583222138638799625882046182417552677030091867873567803235113296689441699655122284237179618524503543424247377560873380089949193190737018656667382446187780229837647692497887789113962980154116672668839027791516825858357467702692794285994811758443911987242770393752361017288526373713719215528779542621799467852559671085663858790704802896738103019962074717078417028379450369786836802348761212469483405537277272460363603579921184467136548199786232963277277082805814777670775009137564548603434599291994547627670112772868862208862547888773630880027749731196320014082304478504669986508959569822575008928402605954732753898464624693071222170209942532109080069562730047240330924616085879229307377274151800830168033825197757534224931426257539584737755917486378503931069874882421544375294905102843560235829357777656269344659388299427431669251018937827701982090851821265997015051601000636476586662677403534083768532980271383568851050753801507013116198157318337493866652996794820780039669762479623625044280863512566254066196798276634942640803982966195852061395742287224956146103076234547401208410504794947676166745614486294047188761856526097378030040296050285124992093697144532807631145758297283182654136928891266791393710454910019669205650737979269866158954360671555508916971737877989409409970583269595545476329581364042140309655665509143985230549663916507471141249934738706159968711168106228824680251063256699736937041763917109438029756171723587011958271113402996310392228250429136885601743125563847226106639112105192110152527867226969314413638148655369178043320097734536983581076593856564966211329707268775241887328096547456441796118190926756404550885148422479958644456542711048895000883019804946765368809778611360098401962689827331116631797647800869820920311776756259424301968066665336483795874690281150055424350443579650074282651754198999569818413644351268868594323158283575061190546699692420112132741616038296277345687359938100737178407166558199382216072813883214989471830009498265009984434043922261213729579597751784442360510070765922741950872865484196457415933016553168991278991200627702254653659647095359696903104272390124504729048739668220260888415612293329404639615641578600089947977876119397053842355119490157633491905283409673042331610007560268656266560124669376532431359481781048876766943799385766708550881977244587516560876891092143904480465770830094543738420159938808545151862865342477931798156878016403808124338257244296641506086659939606893875200018183661000722880752910569846928001548208899903745154681422378743260893794106024105840798320885878104191802885785381541414809099988202594601359631351905324378089535787385479255705879302320053292752145738358681240824763207953755818602263288298813577296795235483842602750068139070835912562906965075076862392416552624548484990944740831367046555318429488762856952154199009920635077417180243607252534574432234886816159201986109641915879607843725166839532256719494936170213562101989565308487389863630438078244949653849273389282877709070595557131790793290319386795825882748163182737365634154640161147932836852193445969020184955611714365539480261757421313209251152283120430587990435347973752089308580167203996579088549547006163527444698880974142826332576637814418071999463522633578289138615825661161393295112363281719640696531873126027416409065455891187936983482446772340978566352838247458975274896395502135354128957536466512281326580182102085019046015234108532799944238917253419568748879127193409297440412109538420158309262296749371192081452443524694565677285328042775276087128362466732181604501504745143668950568493156655608626611687220915562119718882437962369780839095657673720988976480317899447437963988221815365028130497953179857574006885016330693880592467887715850592311419329019528966061315346149236989584316803974705242122681951690874711653004658235573629934170653986855132211195299574312882499032279628049808389201955750058574889136504977914976589826326933523654604141921642397398470258614037490921768142883161598828634713171166225153716446417141501874765169665745404322702176280797382144762578765890272221170641880556124514586173787092991286265306216448881076983946328584666693392147239850339221249346431296676235866655819251179268101026202987905643333422806401272779710776495058584693606818591971373445206155820672533094137503393900805409656271595688093459498878743050428675504528028893041499396901692251968761032557621890756621035466358987509173147314668978564961909274451615678491761366875483079461583879353152365486667363946546716137085933852657795210405073876956239988300208474771116027193886077134403730532402189722008404908111406786844907847534498234116825752583021444902789260742079567797742704098778675717963674254716313129421343110655598137737907393978649046888919131103719745192802860887132920919130815218368640311719733236596054418693718697311550587602189044548426167336630854922800220026883885195719472291295582208712007943719325597804457894922814049212657914324696427482352855072335598806882997830446685955232116636384825470792998983574901027452407354123605971047797444064284919045387325064979204756310527019546298176208292402451400859185093920224706985654365141095560447156823668199521122478902990760204490666127994719610728065908932234095042451039098568037910025700401876169075609865060608375063249505522530490777281848417132778418460319726624901604913610743151315272478404073266773314736323421260335419278569594526860817617324508510068152709853745517612462008737483248913320233977312499282613112158708056751346498807273996994798564235876822878602796667967437963993217167573424354876992862934738776577647818655093205741265848262953077105015834126252731110864370560857150924546622333881064811510237814600199837704378651628845929358838133972200644559378967613056884938341142736802373190062922857298738012742041879524404057528677356263628463382518395633121360414853003462957255279079071956504161564557317236153583892614975518274989275314344705710647068667682854589095858513046246635454632885017029248751138503678945111875822143410397110969321242178522809245056123254876298131388021928216588292205935487249593313036443682029924457306673028240726890531896652681745828404599894606512532457689485440329225311281096486735527450459117140731842430341064186857145280953089432634128461606834038233690301691700686139410782908113519422316022176032407195514347117864446475992225301569336831731173818122961039932590099425187595055625007127809097172606983029464775198793074279492928274166721323501156273072008114275130410055230323606182617888002112307042206699644640208063920510530024124532313237694344711715829575035898721942248495510503163533247695414382237040774441065026098660832300821730144212919440225569357550105867101103626210443092394793324216113295625241448037398109309250943817959956320353547036447558460827829605270823156238305472705882140324072940518247152241544090285722190275596330829014829218653951028363524746692835413750743948733605970738763536847461747760183454298826938307462802545551687022439695983629298121328214222595279300598988741798214204139220314944624372948833586925006862596811960753256892993986726762356042846069203497386564212596839697237214308839323892781700940929428653991534943271622003410679248455278506096964715863197473423543587031843433895658350693417405893429157487539292387242445756954654909218930028829848310282837468747566531680145229686192636751520060244279131552099101987537097767309239363261848351292095106792349952949608120051261265709146205922937108792560990985324492161682038042559952510842371765044247751774504546813009506248320844682261487308744127779602502759779405117298307128757793936043851199802626342441015505132635623213705148998659910596275255666158405389484671305392866542155050764699485015762394419194930606294532378668210940321485126208535136105089946139131330717144318307851345641214463872124108710564606125218963650512293586431195430785477599761685482867758376599404447998435573378066992503062532874420346615811450803446060106717145877144966994293134349696276514504459131724815488696953905971788547234295372093628305141731893071689992710049929262999406292105984944212998524601861704402326773383452750090677884305496020600274982037556267541455535282456511155872240622986504325737231690381606944272441622947250264113496301973321240140057085463590626017835600747921683596383464386412967577834518721221548618731466648540092072282668099732855938638098489070590540388398334953049177762647607291127126960691920786391968951209372871171145907071077333721371105942962037512664350323678770684859119035811742749899923971041522164371729285060917297772000296445389576794488466437883353459819739050777964528283520756433820923551061525758010565044369066178779268486064985030531269511364984639887743451858772538938810361638059959847496570437013171891679087127643557686095354854426142182264869181779455020091682454449460657706216113730075684778496145511336885701372910251396497251203449912648557279239278462088643432473899789274076907531249172985790826424175036817673290008588888454442843194196352069259481226537475620878843361049258819427015598112195403647292486374211850330415080701202505169033718513397684791469519632706769456767814121362888552726519195250196146256522740593780983177609770606479230900253788916072181645198141325623511431635366429333553140744196885599361238162781761171355353738710918777583064257028993153684280410313979117022108445596468447911762450126769657430197378634372714728648998506020553989809647282379831362550173993082277810333351438143097398179659585762020247399037155748345355661326998059830535313819670932128999404994229754728606682462518787917630844460873496330595287760342612440463855378501220653412392567467403961079806957682665891912024197030442031106543497772214424411598261932418328469559286310517954272662087073986334746040095960063482484410114178686454601788496012548162496707298189052946202873814160460821909986323778333442341127705541181021367739349418263618843911346667910164553362878787941862281692333320631260264571995309392687331433742106793210062146545281517796799502636660549328970436522357069100256341125025525567932023714749899616353989920085366709859227296297322037183329244511547290150835519177330911123059497875303394313729960156095925189073150097330350931785642291953569401590279366082479475383464290701156471832648437407597655766666057427371835363154368880538224479480698896005599520777608391199980335300045543850769167800356968546603861499543024514815130595548090804120751560611920798066416555918579208370085188906570530216749129951134863742119937872629165334703087912797159384725528273887381124440540484789154611282024493999924379666386516690027118978409047944108719210479623556211223030425171906145219477868437318919545422611730474859393794450821686629022236393414734902065930435904537490774438442242219051651469650269027812789043862522039319658361331804442436392031358494518828792348275479132153496398565225293698190350229850323320066350393258117825975393585644389902881270241148587927109926199571151455184814231484844532776845787259833014620409832773046770332187166194554337200327611028124080626291407184616744574457112012315754740990114372866977684324076504352853155687699288404329734917808400207927621883624560653006670161427981841772376657633333844683786058230789767868694425829007511250252335746755870449575311975173808075305641628906479684316618952510035749844598096656148391092694061247859908323031587318747934851564962342578922220991724708110656443852272630721332267275002846906939931962975226584086216030737031372300285951281378082908995415390782271602474808052963454256153806285720016759132064908425917610664434964083404903418583260092551936936462636612422016062313945522379626365356815858845422564819235060476278719222108191843888989640670567815855033216243046962347298921412998435747830310719673358719957843570918464753335101311798534503885039680696720252248848353104745323057595041373136873428386908888641609400022492823356624796102288081360127611301704196139746216602237152861526158034317220204367355939665013468767454294508018967227555458707314826393369832399240646716745689531146911975438336295650356929672092775550963949831309997304046846807917309698459745381322967651374436578945614782809307196976980165856430506241869337295278196309206470551872040710889507552558805757251656034592361122926319355248199902277207724902088876272174911268050093379492069085258681603733891808247674721769421259882297945862670945432433554173060426607469770194180991939641025302160212839066271135802208230178543390059160286293069851044868103768880215397115295623324282071837403265848544991853933809277962308294128718143303187752929521657329029249389719012540523888932615549082177804269111157968596148513009657764662751334883773116886548188719081356066807151876636573017765272766858905805727454522062315716501843850606180777559058916780564793368672577675040026660514330285824756780695291331419363065461436295156225957987146245954058011494971953193717592212449437988924820738057974054900209017249924522947811071993415213087937759542737076007413920614513065924747761494429191975482955126673904687348938473602325265335858948578595936732819662302697599583366716425232527980376983698250432008183695150201913116922554367767043921512631520390444014211040705879091199345133571637582209317703568415484636782195810643149822063864928395904092580221316068704229335796109740636856603963823105988600770685913093934947193780925845729256420887016335991978476684286831963828267399524448455798572351443795504736887698968115331400521206297716959123500693661602292481822491492033799184776469594818156974649276169213160513944024205694496779082064512242332154718949629038720293728592580561969453149951410150099572461344939972261628509142659807803347409987971320131855975318556167543046948007533604845373992669372061746092901605212249548011065930610563654609307569454832117826554896750677508646529010513444063615497399197536859109795071390801898416442042435341029676203796095641990560207173485395803225439793102722000979893674774816297983244164056355056789898035122745995790971728976980674973980672159566092746035949703095754922122744672593465519939567593661983250680055018264398028115749390418255353470845449895829388765237641915077072626352531312182980292781514430339831860406419041462318956975064724725392227337164895743502248542747086399080493838367681268371977455410836306125953051962782601842146886515723580277192980329174571585210354460570780503891394408583816806536179161872410170441836117319733763751058825706679633448991207116983375825567534930601064626506516495684532895967879607722870387847766481653243321047006806846819373687106944764011525191912465503891275819632972386457364745364276660660047662919451986586320687656555868305939751961262642574564788618193892156508704180918955247303716581338326358293776622659098553809778970586947689048767841735035163427157340427571675822049789100742854398208310141983991944668294857554740750314710702192322319150941428523587245446542245309932444057033837573046139173120140605806342462586297668216348003934536640623890165800334458510655843495417864225946672769391854719845618220092677570390054218386491787518416760627866235030392252687107497271718981197112700442639108532828432928313077837217834445887286118381946124876529351173647369495577716740088898687200581797071184536028114634957574296136403689844430271219684940298331487647480510209369546846114448691865364430264482572046259363798053695940976951837885207254603539749629247234483267265384105185507168620085377483989525907190288431581670920432017540485864470940009784477820038832856369879622381093565140994878661884720139895486486073961742299293833020568367100293611968406378299799083288622493846604840124398081364615564695244114462027903562293745718640214117429362222479862020399877291015592665312550421627059455373629203664792418704481512723158921748827228077919577088767079037667130840900434804961040740062688814014077531003905676618861898527707693918607059575321465632540506396241097025657354374774779897956272949111355070300648973584086318413992433393584153833996974716812207527237428341957660001088550844410578650745720600394565376790551044249970793034883601454486960718958599519410029863399844858527708532979097971084485705296616849825335552753303854062120737466466571357439995030971938606132650629649153395060592614830693131662829934755060219617440132970268506019214153153326557474784021553706758469184650664374336926508918045204054607185022162987300952740739475268813505860151439744595084109044064237948369428570192049772007735687552687220483604465102423494466226067914200572694928362108321880070792354194794276157363653979790677567521089593196891493027452570058196964463567307321038710484584313107611827913110105075003818793439038958136603168508624309835693469927498613551215369857327095357118911449183571574584599099550267331863707683090219235365153762534442260130460509751682652164298470645339543974631894904878919484843314870177186312383871509054772435673202059650485872898891934877634009400401889477295535361918640752710289994888523257997647634030503626268674500874746494845994329704979491478170777581672816173069677548773113736590275046388943910140972361238684748264561848214673657229310677584504225259956944389139740793721058876541875757127269024538924359252564612364074653753790570549664912807651278996799028681167342654400862024217423041462800993009869538033402312310273606454826755781048009843232371350457376563523719236278794618442644442177584932817187626460684164587907029615371100762428937630348798572004054252755679299726069736655605545604095387846768521221426404258812028000978082423263050306399415253295026820405978208846704968930547190666722920268738397576190756548345910691173759141442592107277556058366179223244889584054274019880196311694561921014229606767162037466962581147866228218547342440757529364053097212268383670218481467048904051219461131986887470318126028608266758797271510879472712841115674251937461799836386219629534189228542441156144437929818799468893500260681310037267397028763777389254930902988107358536300375191592156800904729306492564286975085508849774973044231763212876215519458974256714617418460424480859686345912652925226835761191295652434169762142567136680305243044179228352371466968534711065974295464624679476096819525021816790295172485291495199446280010812467062395940934805450310212712677764955887087522448806110787247177621137285340053433793134911064352305305834254737129524449026468388372723008245582241045142781399820625419167373316650241744212765872482393588364936079359206248427706344249939261389673441304864863882016028916594917142736588425819643966937759237474789400786555149868504552348181218273453602283761467591977273771772445223080196002127114647407195573803141065809076945302076409425059835948233307060722737884653499554532927227399126779172718366896058219073264564902236801275272648815898048090649323000142949979326024506592510570102586040287236626566710741508226215667706440577219591529227216988705337496541604543396402443357967916376106762752138068034346258248846843663738259663277514840032972907580054785422261356167918368629970603596389317280244316874592454695870361418095271336299666275627813073694215080473753326218528464774942476057234244106357681966875458246528144663144864624495424092378926674974494716238162574046896544605946561504771211875608852129441905814623008458912270198829345184731246715457857681342991580106042711202036958661526502560567888580454069569031091125324056826396930614252640232058192427358649243777903896962343766266916674671303940722245192815793904787078439629998953415529647993811682872044732955274381552778722255836039627314256869133388407720175237149784983686525760282390755802845396161832884831661667936993100749843471727895974764447940509475676957394227509338016984119446660333170741395419518227909516689485759182124417552899365891445467357587425971398618477977022240143621083473401603824805523894093491233895159757220857630993400813329536881148593786313492136912115468136105497428349617897569650457227844423336450148316633426240462208597015752883145828562815308379448457422167287882398578806100165892406324390757710328513621135432670529194925754772537362682952422188508872453530312442396042572351335615061563317882359023989419454028158308042056380062763705800395128303670921844135081106173684702961550357858020258267604432605993282141069180554097727915361862693006100740514705428934492898420290716854382771730242804715805504081351929636045665361581433803567040468862525225606958005420525060831495859472203392940063663627959605406474510474156684467028792358953262707856468532158550938758117657007065666774085049673034972726376621853638897478417066197404596518002767801641826660300130539581702629163949990689475642936162938463504453294889137990115613836169083345119859927350274575888690308553572691231476995959666122525396256256242259320759980566650849650888235981595616530153458359860704491242488138665261743101415609100804155650644181337778237821691001832413320163292007995726106222438164264019953769762184367556547338812311092048095767898749862114164706487284664588684246302414063384039295779596595984499019536695509990362917565389658040910462957896198909602331440654304136681977411326241118537890513695747378803566744800035573688968969003471661053628728140681837752934190921275063162697903486429824469425771195840658458125358474187658737337896714188598865708577308956979395341363753816533978471666620429932753517727225589901564960629647640347962582158399666654519004186005538910297991380382062827412519658359492207083103468074987931925640673576178258275979437356030103425256282980971018620997946513726378462417136560377919600538802848464337031877845842054114009175387811046814968686289005442289884836103732899115572622049386614089530126221929814077872007436533663439087669784620560932970206259255409745285811121016962628672309338399458191448712666798850155007477280488292475669891945326100392794324350931134875109214402370373802607122787452241148569441882707371237230055117479710711409731481601804673865371628134598297774311976545526052758388038953117888810296171727594699958937404106816118187003189784671265309809539800793088877439067201060702526810062856211848277387678235577480511086620308275945630153016251894962454917929817710752048947001065781683103254986403372288689733072601375492470776581145960052375005133813440756874636209323789750468209379099467785419617794637609811816628742265385194197203391761958906485181091557009081096536738330906524571495724750458078848653546813040200684198329531225105833509921061997045834256444420617419132847761039959777663770203107852822777458342470387925273542936789271086011079454058542543320046164265234555621130727116345582143660239488237049081572427451109013080098176351000209164294733600929410714285858297972936911634020573094374911613356438189472344894254429512659563703747644278810116888302803064407028268290714645187441031655536087765939283165705550038593109957032269813212243082057798576220148462988223103764402760814884566505794491404211475461366957283824266372230445947277440639197998510012805222845044104054408895524219373483349926444804453846708899509811373551773797286597466378799499168245321829764144848431075857020029641582765597615402088587679058981272131700098465346218442113981213443560075396500137062167882892905094575053537607744576584321174427098446410081879622460529330122776193306779302513699436588827567909947257790656477636798981109808298057691565009488725232603889995992464678659038375500146485770121909398196639385747527255770431213273947090079402627030427554740501636548847606662686906720132910938544857147297407836020834366884497497008730726785638006806215054897956234730191425456393964695994566623508037774249749307141449180393519394589948832374963813774354646338870706142588209778172632877922945305910356955439930829951819318924940317386252124726574407260750859472020908771982965595353985258297917441118782096939850182337507335983575054377779300268822536257708152012153339054833304730430249120823575102172958736048502710045092117592316770040227345423507700231369496311534026872644682377967739128521239909555861702068706425633707276325936099783110654818064000767797497927906967955764335932060008156622196098171702102651303505808575797684399425194388415261774563811659190445834670834420073462686306294901042869365999074238765293979345655230521385904899048123575308017314844303707513743815005458369774798752524712218776752296328551881123129771214323621963421862015497731195787587761970003253230333918919602167842228449515916641774383621272379852570638552398709153862366426341373191436334940079663403596239209097546078732830759146462848681947321247146770696866465514359713684177430728476881113208476653674845528524091715144370266009179744242475105719698027449311952033700985589437179097298569578724558881517296681133680127934700345062736470571261287744980631666390133784449620929097682570067752740544164750497637617401215087668960889199467077333502668959659701555621930567670166048841225373253466293393566408827375478072417589394032551757881116956568091533659061587122292829211387212916139724846370780590116596965877774419570177709755648333560672940039358635971857131099125629116387422141981330950043716626209609850351229790690244154322655654505918838434230678638644623778147102943465984936428751104434904492719829906860392187769496530281280710306283305258349752018185132960921386223582310779133570046468038474301601878966461748975545715092947057549015076525109247924926954328380391246310894201989043754114717016224412180254267667497008372022759294180495789752716495754284341126645932120425124854245362096622450985461737891655704195967812439747342617654574876231654282008283203205772960824959734287278707423079816921926295074785727398930681379852358061298665141121744479527031815364001527384660474965917735576761739040199835349450859868741932912188313677052834745537107857015919529608588279098016970620598113626011387929635684835841607913412896694731116511648878909795140625845558531572990890837677290589830699458626496618023264934790027699494780734072530307913258123737526198144140657365951629510978807981564284391062405889819097344735237300958092715254158145050449505839311271638708169258321791357999042162318334838425630307270502768474613544898975075627398306507735164142245104458134185800228003064014144641141193596822370496288614726365670362935937584850643682182257614112161732933105480570454367141460076290307301402851819208601184801504394933745482024836594960806090890582765955399882324092965751307762085823275632157732228372888102009270282069217209175102876582873665038505415972882212155216621972448059278272123058303436105102357053696147244760348569182038728643443628226497058831365393534811083799310102878225565343712051908973077575433886921963904253084373989755135656292207291187849004785646159451512461366032469209052417898935015217433635085558570815618984560185107628960008733442390267355580116855498372979296327441196871615533224066732435234195666005466536555071613038430593628321827916204061677473197359712314122313666842702653091733537650155097005265364110260022161267508582497721351174371299948352101170613757261941039927545824149593443513521109940270138909391814339955473985320947148328220563176803662504585798626054679934253215621395920843169547654611543082880007697685995076113137150305393906208928979426402933236300822333340798480721094821648428658398981270009889104409585611421998149434221895728403247018592458890993797718398128871726001141092309296491815452799604881705180667391166594114755048235900344257576010618482798147481124227605938806397968153772019943457809158552809637403172250454991425940723076136024995437132679897400132028188258002069840208345791344392618389644883318167551610256362866938150583478580728880705367040805138178278069915609289129816768845605644784120740147855263685339713081283603251437303648593119829920469339664318852294732665360681270487715187724010817171611693648357485929384397465661425773237901188052146992246760747327948125223973901988237267571397054004680414542576491474860120264237163850469526703592126764837547300439709560977511042651267745136872017109257833020923685443410859190846939775811124193863606931830962725019115199188190179122793643638683972742443791420318595547287536127175151381482523851530270819339316790710173584618063911231394691396463126486119289362125560993337401468543424695583025432297546634122244924843299134598978459725378348228655434384029075120421897275909268325247207220563253124501675923401286806525302338763517741228832039899154896803224496891059855220850603882927023924881642493120127326197760179431864017328007201049753412671690098511474384726181518199923655947452036013372727441834096394331257720237504218157370542024142054793713538952065165714242061181557302857441084976181887700443950490928894670164776777891069694318327525984246205101950524303325072639808354824611761102293466091670660101301464080027717433011942890475684603657692716301573816074880370783271160592824650540872188611371700574389956888926791410892052031220857747011688357221937358432623335849442361893787364842528784629329788720718526133596277665723156835938672552175123809844497122755679059163874877194145209573162682145022326431106485871588706639274911843719166196321107424332243409627786277621152530848016126972591348552155784005123307540824760362800338034448266452679652971554401311581936567842754298521364634171644154788204329802846572455626265317447507178225571761963271711767308926262626784296493902069961334680742995898643356375313316058637366854652746341820916500283255871264048470035014035573411297685557528779090587482447400031090748810839823845322426622054650436022131651144641168867873195804210178560467279962198388878803457937983761034788771394825672988479928669728052090509452551983717131722799560039226176826378456107987655971506458652426629699314334717921868264782188020914542769963793383859626171366514287099685929705504314999125791535003445449495593554156766339125344631950637009141242325124679164828741670713457324087668763166464414990936486382545797511212508858828612799515058203724898433553741539806207534103348110921476641980525525282351446030999162472795534913772503401218537734534908471510158474516219392004583585913021660844065953630657897228790297269287731258359161276408231580680096551449380950335983828025941258668950712416725238718813954384168363313136108589182378230734626405882016153521376006986369762064335974749752869899631458560412800603720602814640286368663952065934353247644755533941059564880194759070022618954685017148858916810379949834616211688065282288326804944784800931613624360319923886976275997698583617099852004663985311534143130027586077078155354348707017870709624030063525580960272294442797688998292539657563592103768772825486941434037834550570495461759134159156293155669171963677701886309230159872539470703932344038229489836405142700494810547931624878893138457235403119397881194402514166391349441011713665087072017893147433177695824369177168703216406531397391679584378384064158672236324703918358760962207559061419083253455610920790938116826501143105088844567394947637747121424970807365886790455686809974811592120535589676007470984871180690338113023114921601809772039008360221793208960376725117708066698871367636522919522025951359179917059450426643395492566129287033335727651664648697408652090647886658018138155127906285871214610979518046435526583447324151525581144229996295771976514507203724334877616564182560444880823703860546974430263694207562893699531970708887841207389401022748392047080959119116729273248066338748023157771043239489081900054550487752164434955769464127055010682878900602713015052511912807868105397808858527843566240855478755461777215623415208114754640981042806382143076311986878405132285156788639159708302789655058488839211490654208396873938398310513963310244505422729243339672360988017192346930436960184963021437608100166581214660604229731619218070805542551007684410339138489966555894110544267641677284920844353090545586624792483653915155098277276696568671950184059217659660201594603796217152257739509209812414803767799640128222294008461973917451552853660618549227425100720833959798911462629501022482013688942097771957016100342785338082269936639866128265769091171288971612248505412351545228156157090352736328498798329288184866086960727629894989895558434903111542864498551070299384241889984096100604022423080512961746036237050408129154979072210473400162538395894290725443374021488526167956538065226210379293695528713786040244939781693964424602853603385934075429622441382804920448273040369719999506101236155175022029077221803198221321720250611786037948691586505427805612294319248213257685641198596282775099125192627073416597345857803264272291164648511823780447482324959184271279153417300581856147089342851888803798186419022179974340233537197364248714849711413945410519068915745436421594922653245521038409431449933363607956471855667887512140683424021881054882071127073423131908934168783345927921157725467162037874780806312849955832965986961614917274397217068155740311075393061202192620568713893072125678640541450427763253546174233766746861087072455589416276849672989145484101550459407967403977626996412466701360411349070444920981864720735497492539957670260887202860099111298029786079488102654534395580346359909852520005437252336396374091406917511223032027713201130252216103015975871022676036335522706625140916115990254181339321883444066423685285694571151230337163362891515885312220195372822716318082128356004259350424617613572342298747965141198577662664745122733408498963533525949801490227045695093627274427959833918799297784953386230787713848526049605343001600888512911626344660273334087824091612150105401735241444787590236435277559139706923379277407856676935151771997766977780528170158397328069443187382858315471592601326937038343454448163494814929591123510229067991779785266855364416709263713226194572322091243450392638224758532695487737099085105634222228140394341565879124209016328338868153680526682942063422005789410297850879385891706768056304453523367238965237793208782774816921407464296523114691292334406347532489914539541450880386171577648690031506138866637160719164014492588424646331042357126106401101037638148645314942678843674394182443135909708924000663843845852059954209375025281771964532234443422128764837993780822593620370925860668726831327921125256228924343780926576827741260097162683352725322254210446048476692465160421865384768659641750511071595850683282109220836811503149253560011481230216363313219756147090860051230615548864791625687423719827677919351377306112595588814296096059757186889069211486289760259890737095647155609952473812679451079289068708459446811245622995641879358504717051591017089360564175483542259677785894199322323081566991066846861302672802508547293276148307570230629987877433462697438120029320214135624222133048905047818298155111091975950093386990974252219217873607855241612352842050524321066860695551980678170692819819682881899456122988627657358911665930566939491493063482524918975237995124971363107598524611335965295366537440809328557593779304274572203319452812246661658771279357534461561816317082679399794649503431071178276312211529620203206975345365438187107461239442669586419564103921138193182202705732562716380355228039100249080884003158234725018962793531613507359791163475654845970147467976666037465466848568011203901549800462710214658329959336477476625873355404413845963048336964735928164039738601688960917164578340201306774699878502300050838412298910761411753827856075812399758656104911783973053569964463565473971413024752909109875768387083084484142978028092011614010501495662797618840923691974152168877946845470562065840751654870565042960526175936928460813493083968033555454571595989267346105963235750496893094807645646734074533640555922591254859464377136551766406232287533615214299732396477306872097681862988144860873584112952623373829259656888284585984514421228573202260906586803955701116314740911104353033698950917172420386867102349647764473821064435046333770201909372016639896408025466127085408919031679302900524872792910092445581139012723236200056507019772848796992699401687237897639458845199688859428298261209820208931282377374271811513821992534451874646543384286871512829137629942302318944186944870306666581225125617736698576661719865723176465503601222422282827310494512221856074059911730086052280177506078353326931152013420446358952323448888578719863948894072021301132787041339805216765637122411269850590578315928081410504261552979625521391595888725174645929745229752277695696758478177646268398407297673009886756597143969489311182484547328183939709186524610624896012534886536779102729962844140677623980223657466684438912119477977019234523407464060187831762944827005817019797022162688031786031067061401984242110147854665706300111510968674400934825737732031742796908259524910082472607305375721475794801831352163020218329650534774739914512140927309287746053387776223858493947444497546366894517569396683145837421416278657729613533733817678412667804675251238869756648506363416460772169627542142539927882125508640422314321691309266912020497067520487479873486358096914467491315751528930325629627995523652234708186752758129122413625453106544566173563526338649722271565610283200096434456219383231143040452796850345068201580406448108315089867701545831809609050717587674663702246700528786713378110988087801330910671111690929057860263680787119257859506386910101209083240076364885598894361640757031390724360952751654879198265709548230646313825975219048612172021644703264339737481908928027054476682033892788625128479884820873653229200831353519711412733011807685208780658047468687157826151997702487260886689200673616901281125136089791836823040082257748701035385091170773387037390040148413903376255282327770026067975423538408942085328519498701433089547558165737313249946020575719682765834883084473517911075706710492934397299761441153245973492766562881825403422277702550124004577334108772167368443215214693447698778539140790830593629444667392679853302508229436342520724421569423638633058462003761979603619471653058702603012878220483814648049263478581433216050584983031111248297762816797938916226410617813228949967957453706318265330537688960927870767533368847571070795860241034270500737027825103656966496236346817672693140604149642888835890324816401244654658577909983597621661656051167339906831310882100426639847059159429979263703816798862942240998155555942331669771356623284573062873239211649669243223751637355116897105981304436034339722048332418267569020235277669797695734025604228717025355696372853798715577894831371308126752275315488490205397961784249083321250679731980364858706799607038287346202926306812898771322287176517575480263337645063099426528872424299040405681190710630934657514071239955153522236624429228894573842239982124109226783500923125542255379522056314441762138089534768595421448472359050907929517669686298238672998477023872071503946157115656045268365374031749711043527820673974377642565171702323534710978702621388577449425587890427345169045239614147357099844097398052155766453868684872438604422015384264431077724493763570066052988978164042246166434163120028762523623320882261108257017622493330068935602751539745772098562256997598756725521703074473866467716289572890194025886791180588084292638999452548696131322425006103303123340747786308902599861439946653917182087284198575514083822586576454312147039345237052487532803596745304105111238193599169114803521574336129250108857285004843016773336990085533554944001450413448974880623513316440051643035941592238276425408523653581246420074021258509564343559333994936826418607608943662810080102083795011066888786991259541107476072863039525372368083647154353963889896404637938443197185167886139585559908242484679060534676466484877071771950687639021628558224120040156406359271139153722264869085944940288299064917194801062119043380774279623037986389021349143521895993103703481344738145441616487117170458596296951476049587143422937808549040419990531740528832674489943885952105090553460276954607915356930194769083080960872857186398392018533464638409996578717562104168911679449580669456343969629732817690178124114344901294217934819601611715290889480569160236352063625031975134346471320966570642682898858088545339817085470868991532964350711762025958114268924241834681272882346183666943925258704867621761180681754295943664099042379682454593131889803303751769786360570258130282213478477304184773068911525922133023993275205630732988427233073591521006739136081896086374592377387306695061479869307720209869587867048688534899223435731138508654795740407162087339114126526247998133418866893091134188640630420162697943746687667261395835647901416213883310286245551975667263168258426698278400770599553038304789610286299098919305487771847284776930766380343564014708604161647784130030941097649724633518386431355698641318822291090480853770953655343819701012433592270035527015388842578640757217218017059610297508844211094602451966966696006308598293376491703864621558699297934555145305090618478088673698622739073974468735686891353143589913892160039313246129986090285107122354898911717114515180535786895834881534450243267989070706627586459402107653548807289833637176483859205644821066697699293885619234874087887481251677042887507815222333766178665445755801006826048863559960087422714354138299980444962089443498624001340182726026568544785586934664512175264511532333036920696850796943711870892671216822939749949375157790905981237352383814761506378212012903892166848700301281936361224146328863542883487925877899217783208092750651535127935027756285233249776989663804535959186123254095400766455397500083712446341304072451915523310282370126263113434804376437364313387223132125657412075667855900308698796961869406820995221460751418070460847639701192118370266064386803239829992507792237128261281918021869511685029376182381912757996444149834578333925386752491095609277940898302108634928761464544460790330596301279096829873139411999310104682913704197828532775864603313740298939235362626639763958352938368971228237869742996352538712020543158804051084936317059957207764728501158130859332102534331860387888762047027798910600246747654208182730239734741920285180939522233493380786085086720153887598710226773183120028841729375507166436120220611485038487408792617594973147132890403443583766180260087298826148729203280702574318796739853600946871616466757475920185346270640918696386147902568508084537648430421107807381098131412917337268149171335638147129375261502935569018327770328128367468421872529077272757551414348976691243741983044296954706979881200258815113908593261230474190004386582730795045051999460335767131806134660000912687709463354651985243383480696596436629108232691699154633121778675006368243927277385298005881615753962155814165276823049298814928670262992326968970183027994142208017909404391298548385295136024166489964906009302215961616096888873185274723586410238423749843194469466854228059109860564109465405599996875629318518631205688483970338365844381212276978693729014079813776951727645239246216898031948061273945252227901589872102002092081714536411509842922639278367817143856200831294332291521898672148360288768333702325594086260311584527286284216686341033985884774377731936722054773273110261821976525490745792290272621281075745665524150798999235717804052256022474240621023698950828774459190262170518694963050759436479387168350472670110713061504125054413922262613368121176037469061630133888485088983232183161025137052357821872575840771507677471610687637627340334590854446395635013996470250707019954946592781211172030767841061294431437187528443223417030140621835043517843658579857644697676044014344182241762571201977236435274347271828002504712111374153310899205878859679752425204584054161521375354344997846617943184148120394902564161093701144503328416239639418649711727386740467938150973756946327286451126222513304880713945625346723480574314818623909251091445124432243041832808445754352127924559326108354694844504790931548696753136839187354583776124240272905161285371880643974227537716289647284186886644546943051833705324770920371706054168463059136209864465948671639546747216152916373053473186764920387728536502073546070615404950982300341437045710473904262561961350321969348615991103008974634089551923419690599105245279392131738915505713466775653511103077819923482459449687574921007880704917526876966523885015063206930167465707979834823633611501047810013539540026654748793473578201103905793117711139691517604343321842192547789579806454607334525042208716297237607935768509076750879865821468744741953571098178109625937854385549069765250922499188506924722945779879216152220584482772986851552497199497170274561748109701145636466103460562646005989368697847871356100746806579445144742736179498614276561563320323866097949590436669307576788746488241614664367860953011947709991440455040214481057162880510866084391261057998948191498707418886452518225867021479510533619652951415331772516223899593125890745119930998509702460824476541569539852516208924624781357844986383181545694441565018483504872106815837508312701793670900861083756919031742314430306943321094525522009350442620676125516683413035214477531243157524996809257265605388120252396632894093574557872553653707220672544679374768775472348001364487885811434890250292223049605982702990091221876871065608771336531389947518071758259019014757453827706490286552006481561556175858279684421898411649342767226553128617164030754800464711926313315659840877973111942555934512267718186218615000945514940660596593593854960133615276905480353819196349171900877640043304247584398383538470013772486152997860680508312554906817807956581050073526150203347416929474838399363907232956026888079892119123129567257711053667659713676348680474492722253814139753711444823379366648199305098581089904224972254837266322517282260937265111840970777056812372803955785123298889510598085951591600789502476149088266287079973741891852291703526713593581281279044209337492965532766189864622950465824095572716447872520674103152277093258173656735351162545106590534766382281093796764230800584147113652039178473076315258113687522513435196397597601667673300348281386806347778528600855864105970296655604081212648682871133743050022821955075129646194673622499433919643696659396493456252298723638186455095539021496348288739615475645361620769509333917415078381941873642505673018427238366009882905876047617141928808023688241259589075753407790759395346695462450661363996855997568031769022386905994800118015811888084304113699352998035092084938774116752490083509106239202371264120727975562019126564193107910593716077995282637190091678940851380421838938537176123577479455101709219547718177782959973291334509748701159555070652537853001098446668839627989831521565433564058236866410479339207413526644415896505143907277556655531473403263494938655398724551693062419324341029318097474301024553483878839805660899934067479877374578183824024826160889181243722045372444717600540704638802395307243819026156838024445155193132452155449203356679575382046486678885268738958249135854238844717758550676590997135588694982450903412690059966041257361529992365653556412508868422319138035999636686856782280327011882989564959452238622020477207498660621668379241335305604203633559214694504900144756510741543950734633637761229935228081463276261576234975914997071774830738242438114925114809278270105869764526097841803295940423939440475788719144014772870916633984932378516625915864943340410376480083018798853151445506848387278373580247014283534148697375277154321885264315068934829871686158432493628334888259280733992315976981762543682862689399320794100645305176741036811918119562486575088899237675014385734960331943915274453705520383318856461069469035540129921719344123022295662658328550368774063042939358859918003393543081485189100503284490207444490484668805734276021380512270488220630453016744854748121338359284260859512334143705414770710743883902669565603653756629835254045692391811111025452424660699219330212995530671106043402990979640151775100826494555684729021086269900531945622480335852063314971403199218157886408574095833529092464938172004276752078390729772016179606382327101101492879258639494667173873347109629749367584180887795097300556177906551146842748686512437869046369911483940382644140225727493817764078449614145558621437003115062989499961512786876652223771474441784082804974348775511346815416682337398297795174271207278012310016157000285933823741261816701765097998539676912274559465119393970178668850126888795207038183660988768170637766518572917554661514880310615359266702693674013017678719039395690878861261237314483742978679249375952084812963923034421299008703110120235743564259728332621051971986042392537918744432461480655573672075228241844790185736398978868114118626460919913619550008886600611249690676472201456797904016479254858386362634948452357299599831910325299426057505902707391257349260012192926029577572728517247797831118256855849585150292420040885598440225794374654990523535725634435315424171763060979949718301436521526994336085405187638410424225673209618894433873234483937826915853845733676466513794026280118385738713823773746810319860162842409093414034812470335789745763429811717647692349936596748632507497772966925496803214526445914094013661851796814833949261523878083994848106631173041425568578661580490322978317361755580955444088671082680392836145941038426843972636288416875159961443885366353371914038016379685069447049632670285194000735674728868370217454540753025823212445299438037931162699526703638481051785487813139399874682702537093792649126354651504050273215703576409550334000994557690052344445392409105610085429005878350658399312515475192890931244302618415965634052836294743873718278806856532933572691820344820749207736916549707872837910107151179988621337994965787412387259366006979197264221941073341955015936801945720123086399944456718177179486966668086220349542333434305855507661095739646389276870726012502305532513052617414752515611730668067409019653496688707458937229562834652744059074701640969766085696291906949120584819106353615766508643113740263851937589923065338032609363016277172992334697696814098776493465966985737577196709199705449408657214301482157601906243924827943651579489704003085772734499498511654069614937317189847314246393055207036603163327511687989704572720747966440894273822163555822058051437382260470071527173918173356591460520494946830186976542097476861545566800404252920002677051257864102408588914198178506883567133200156526046713600627819762748906580086970217766056137523209779877652675405433126679295135003089382975614360295495165514582061063444622479403045598799384043036181275022839925697474689211991777885037552772958035815403299530866704724132208761952895736622005660033592584870393941425545943280953144838633804865227460613348425558370071644214990776931590222633999797043944564656183778041174851657649870810508224207676702817381951169579621420729518107668794050069257413453857169205150829897150822446188208484616623861198966031151155040527673480630709090465270579921424685519551149685064138532219683557585879838662128280171367619097288786963470448049227927249088476411967798783823317611912053979493073966859798650850563847117557480303890245919430114897353518655094849312475128085498099646220726863227556952262474612275018077018640228325641483637524883378236386825351448151897254558349759030151287584071682497016737394102483281396789687876746009630886427668806830838868786974463458963118045757800926136848708191118146313115104802078653233019479871466801091680712326540717822632080051866808909474252018309813382893242731558572540178131853153472802629993088283640186707190873352761760379090409858639824087323552737565992961618201493918454883716014661060790442361825669786536921351014865769656664868449653201359301529061858839901148293345648463331303320066365539587099791361790471300907594570113322941092539120310095410363635198949247119340410623793595402363486467753431524196917394479262413148890025704535468343954992631539109322761058306566219374123959914236798360011295115320633669637793948946768017970209502648948179138085044942252729778761744956433088913770537327351624537835182749482628534282490362667189351565509681673813610009340133551883791565697995538361334961130752428429744897304981825198310075558705052799438942477741199021105929341466361041507158778857053602503724890536787859428630474449038671994222820362681257607837698165555368433504388147416772372380217555016780951164512028634110145782286104104878845503012347429080424751830807880789730916447523540167373834999829449351942280798375736016814692817247927630793999764548617165794589833751126670186416282634543657390594189406567582454306473045998909212549315553667597691468774377361008233798650461993865236251978323506865037454627480073608922334692528385730708038819249770101090653842019192376607159949386255071706657736050456769509485001844529264423760901569199439774611461614848555371796354320141902975129377388770180589403747710928143282006849961468470125303669848938305239120667323091456776291095248050125166174988677644005244380482792670180978708692972984876294555137636754678737564308891537354091349790352395230340865233715561784521894910025542063758925159787304267356385219591443951426580283439113979381938733025646875217714601277352448547407121328395594616632461196261509406713357836515354520215386914451946850979185803911317990736297615370950715775273878989237021986115172580912387860498201277595063419269490092891724193816391073221861106976680831369534641438478806714322814804500646892819302582678087343853428597145267450019919471560710061627998996826169481958653990412489617547118939944438487391945193161825511259606516140330791982974987457511471783138873623386222312430204308964933191058577021890892968753422610524888423304828897014748680439629971624532030232322806702434995858103829854444319039494181627070986008557713196866570249052425871071769764367094958956580575792874885525722255781944225948250801014339802193045287890425041448310778250961736733865832461738526040525485195301150872444228093256304176770530976936584225050577288043240893567874117907258886825304530258125547514058683023347917596431383026727545411359749400283050186830616050134414529956537721577749407592915800924015591235173284179212981807468969845047376011975074862294149037777454208947207320122739244901340532159909298460682020743312896854357091165121908044350317120808468553751745160456266307241010841756070045572989202865457913017852069837746505443669414747581834629376555083402310785626011665109247258448704735652765550849299432716801553975304279182423643282078136214470781024619222560502005985174892021464245640573737966837959934204292240126606532169448363286608931349041405895586001026222228831187266922167420437324700630428728170420994523490876979676493629043128923224195046640243629339973457203547173645580572543923646588673972401945434450420044123910484619935353339152977721640737365173122025669798219699491451189408857088115380034498689460305487809341060888340446090345290573500593291719671367257802087480225875341180566513414395614052181426007465501947369526384199886352929438387100950865410900965855010432232296966043040447400056306183678855391968166085662901453583406528848206039818687060725852353022707547324110926329024734733790752235175604217274691490087742749737728649819279707615168324389301592140259161450169554125155681759375281150482436472336809258591646618432313110884602830695840555786072345615911386725980221324788499386628725074089231324307348990035179474865877054987398995516557772841518431784641713033183192838098755192727088978984935292397112183528628202681185016331878440323165070046692520523346198268752980840803463816091704520737670429428271292661944065799879178268197960122639161353143650497574384153649335220100117650503142117439728199606378847693737051400866443764492237032988973361475885669819074474312321897999302184885245613646225090395517418632096181462245132410014039263085051220489820648437222581156184157364274161148544534299472872078455285123663431975242565426880036106402580355462729350968081538804410226864455989824253706577789301290625028990911390443628499812541377720175286483599807011090316068223364395583074525785648513286686340303569272165345261709626989708310253589117520683919651193331493490286921560871335641096422974043027317684251258766513573617683914634627957884856933187426542519353610987918651568643197767748298224722065980143693106096551775042590081140904505301733674241398641678201275426839569276540990632897686901019241662187060924633244772403453225292011950420393030925595894001576158824759194510336597011060885630932329786392250141817077827274310955787655965620539655968275761824645874459270404213711630832166243934037692139303191554891494502480731784407143803915062008610049580725661905591285384433713254706016597398768669250534180394849663576178830069201256584628085001016941737319227406805606070583619555400761089067026559545244980536486282047131147411433711478579170360353550079260951157809988845628589254173728695282336608547307408272737272335963347082872280437582215211664611808286642313075229178384958247170876993439074991574683963837778419592149893196798503592115777499717003724657378260526638633512030122934900051879198222150981744562803248924404127249269280756189823875974240722320107765536957485181007799571718058936363923607267298200003664968078961669181118749666496533772721916685983342360683794397286947693739685586112291361929566444241917697743591219163436936719225826778401738116650281940584155643237447713443421348316983391512607126775326718997214173212978246150806434328670796006815822756420115588805774379986703300000400802291772641832462017144027606522035101961020153156958070641926205479385558521990712208788116138032931635928954134432287951882480444791025776720325544368192247172992260417203043937621397597351145413774869783381980089229544441098230062499018913078842484074135672843015088469186523271819602723269780275799285851389773141888000588288416966916920781771696102683580168816936008059731275838811172100544509279866288821229165479149273376192787825002563808669363282108186489180951969146740120768602477559409226207601349629933207049128638391466173239072349418930658233991775838097222800328405901111847055109105891775463368750505102859842849266279156800705777378370275282907141631922163028188732339913887927806410439361580972363604228668001074748554741033065188976948497807307675861335234444486285162474479520179464160634467009560649164794671931857648156272908742747514780755108115215253629734722784412068319797787459902040780256730826988845452880589541941229901340868465225015045338300443726348276234661668916090289818845375765133458575850730246530691090480293448940767047100080959048616178420474199901328051985881978752738088866859853597191467165623917376086660322372254731482017248002791683934755915399737734663393381944452641358690457278439016764609989006208570256061210546406164337971630787148235876286692917103432717571706010755741228805125349446326655847007194566775083690807442178780299277375147206651861643316158478597290431348353807143607683983276985159380508416265256243033123855938395643746670516244618708332163299654706472445440530011679907715083043454532799471527196290645375693924841573984008151728394319337252595724984124409237170204924449228437167426337487498529377819539821504183454182608666999323374435849547265782244521873036501882210861210507244458320301067323289150000143764830471462305887044739787445683897538304568378420399199100243806052649225401629730509589967701701586698001308286097802990413532707795067966956518281507881134092904879566172788502604817597169776972749841070476398326903194594689446749514557507915543458563047653201281982477016357536511387482819813142818341065482852271144657068830542806407956193272710480075198860649760457034206989502614633868207498337281662900470459398659370186828189928544953409472648404739777752788912317432887100045059551186931047678228822791530161657889994139362093120234372036996413599564031764518022569403730643832333855245171779908114346053325473822241154367489081269326684063635482408436976163275788365203826212750643195432993577928147335815039318201972321870346888254180079722997025179432005698542376237120540706620292158448234209759940668570116247178549023997529375117080219530932704878251376314805016105369482871010109996324307452065032593173530574687796059630966492329065896542068044704582990371171966848063798526093446441235272902429624230751260593019184650453170965262471972465601189970052061289190455203807776812436591536986082696829833931965435388412027379119946082404450453808931755437031459385982407214536502450757550018042056227045488567296360394376663405616443581493396417476989276444000023071507386376777252704032708324764850421225820028920406540418689732472625545957156454450143669982954142180122490985521920669219801674477542908084864108979247209369691218188377548061020100835218343856922512056909584437040412615750088678444858317708652578086169053337343675997904683266532845938504202650211876770328110016188200833203573504009026738573382815715686695265433150450264977367332745489738260722127524944800237308560767663029041919031235850675720835535285217907573207558147674087952431016052491954462942948211241510130733451918850658449377438135932308416573151530693824433433664348744390959658516325196308945567402506060388994178045867491145429831292436261401877642403659055217196878218726782630164996329007425186356927801833844182548056500168940629583803152442408280972131750057193508512022985902883588587626271981548015273017725901497009779472222499779022382725226614243525363263832469169227100245917138636892949760657004471966997587801769400962978270920517732837522149411577728790243317624031226570943480561548801640151132412814699213882320052231695510090521358209075623597568374345764000895987304398901504187613640689599708485319186672049493453892809416567368658545588009763883503660288626051854195230562782958090383739682998956509382605139492725864897552206774556534530832159206094964809853017205496610926627034823943011359250194903688584388374492459360043539078002223974334653105398838605003840204385431789007619092666886745358839720332306030127188716174809718843748944938337545452780399783674377978583305041635690411833086091954779215419740368410502703988083008655752979309993087799496804548620658835692966449280195840707983875819616286411684102733391176907673300227992180960811912229527149511482440643764569173804396829676535313978488766474133260868458289901931656075164037764041913375842760685373770029379688601713417398065924555909167561239815650334702177139459479449242361864969149228481125697694059524829001201247392858971486352844236784546896495319127674956537953396269675418536440159067282175071990645914637926099033052856143888887703985286771606387186981422799169038571321369649799973111246062606886929527944059533318455374723235690095400751609518590659378609133154981572793413607318676940988912991219065302235362573508857790850216525121479331777509767087735761212573972149075542372702363939048143181713673425188938368510861772673704245036904758551329920933009179195331720475497819063606909597104967748152670341482229780345566628573196921802118820893140336716414180882019695212054700663099233515329242933464625774716734301107457989146416494499979273619327529812059021784854126009756714531599466104625960684850048135448480944355935893673976855158505565993761045678114847700899327844423693856620171004048491713375402957325591699708190232303413721022666927471349219802049979676744393681691186149285116970991322009985302285457276656754584313755708487617906652365664187599965838732681880627290858015201668229497395888122198807037841921432767880170895780087253977902813733885542614582101802312334134913840496093847677545933381443983425193805162963428151483149024296815102421611908955839041064540171075468919045712666068474007410911689335934137795084553679070839899355664716242966478705036940501676518320992396841154307498720574805789222062264047602711605937224101858050843539728932868879611517256331522785754462060194609018589829175959035305126570856088138363286439024213879726023687225652499008577899568657974515624514784929123185944587459134156610053564423202495083000361811680632402015133575397450163622135866474327307767181451221305575858356755961241310852742858380803907785803525314505320130687446725062951401290767446326558443131142147747251877471027970324827543655111164543124744092190597473081755623986442302973796263291313251816680422401976813159082352569712291588840421716841925065413223838656989955999198817192033611805718492755497161331755012506718009983386432068053007920746152246245698547307236531343020274841100614101584136134357950806479369620045658063324743929676136706347534955873209435591586717663174253168331996864899749680443769471314235030833327853881502660069890448750343564439871294740960771477449251637128220287730242188584384287224483778156712721994778869904816984883260160118172652303715450546979718887678584068282593307103034359085792339177629924807018726972899664779476185069780830834516713335588948509716693402445773525617071558980469861719012334846208536719413153247309460175665048215672392485210012387103035925435563197439698694135047041660201687242345400215542041905829276752604364226838561227917913242758672463960132538321665205439857118516605479683805448243226288799929248780547632715276146965338385053969630925226136320397399903820172347609434003739952701919679774018426478454150196708130659115666130029799024193018868311978286621313828435740912993197494120449567054590907441223873317196167671111956138777327534994366364429971283974136595906231994391104294599986781801993902683163124125517683034250185423430857296348261374337262734954797214508933829143276379180206761491600515857816973364604351723822559306173404398295401170744621490099668965059172912346673589359148948800825855736050153749876248940157254970413235423662151130069242204132830938538630876372289536913174408244093526296250304864581556216089554325873919026013327341007349010255075553163480178271100721109104483521084340534537869863603037372160037186767540878655280494755245132686154299891177458636093880559213099493546422906009072708811244133184326739020974759954859442391078818501727263136061757570015262877095955065120261517804385281273384294342027790582756936026993263399097005305341730503737951704959127390280923924264172878371302886255526356163916121988571536778563914442837483752473155461171935187794019205148212215214805238274263380300577776558836042933090256019537355653021516454898628476619935208927359829941060135386275530718380881467650634992725995344894081603782357556628906601399858877978287896875089806594577500578660803299619524188744739584889732213084901436575064289336937188549672672193008960646772819141066826753363929324659683128723173283794674555207152202395741051493109512178857252193786594839681339274716655337472622175389433023017658631296316182133209400657341664719042575626537231671122881603482282449792336278097429552918628798300551201545448928606555332439865968502489426896695583016251401784463995414600364291586981378146072408940043227352966790364329949852194378574050097415579066176350563607397648899068167060287891400542517750600416022602587849373058154462391237407858744361622571535838336421466209988142721986378457498148692244868896233495483386777971891828773466285675497984948626367396709898468700802811016015627745360369093023568750606491449908970082545987830810445783593211680742161466785249603458086127645970320753866131936912161692614898138098396645635679992640361857810092430379802210206453131336175177678095919051021206273172750698166134274091736632260901775803056076989653593570272948234736206678947630072540753978478250561272358788209002420639240800967326290410279309086177098726879907527260018377834862240248339865627626352835005906810141562356566158682401924767426017048470493322066904848712292760827528062841315653051009946271361657564158315975358298872131590120840123164448297370921619581744630155294770781121092432520764498742447697061432253233435073218215003409692471780376625218281085254803814811082213971756432817367807234049100148928538124962816089075227651595761632409733292906059043984925087468430978989675461580283357718952783855373462447600366804354842212102643704800857618427644742621791202249173909739441719936594823665203728098131312815092860248780267631911728815436052413113250585551563769745848770216893873279528632663744486229110214340390367306950163882306933168822933281242967791744105473080530340113124536414341398767586540208237156126336994201125283354976866237831979754563088725685625951797382340398887572904500971148783745851204537091598150170902144052578705553169404093284626701897016544732694179035650311836822046797953615942339296475229614285120848773092808859832380900143897140915260860179337878908095817109704217256135615473914186715466916871602958735713305150185838517684857621405467800814680144086263432759567374972512110612241637039302491196251531178743678452749228585642113320890860357454784821600244696687785954131169348799261317621069427051013023924018015782137402032115272359240410040632163583111770561914931184686588523341633277412059807805481660338531471556297526583747996386132287780716483830304269357103366676008005357758329148921110099273806077844770751864733385596509847765224435133793735995011970792983620060683460914162900214070803188191999735199954160085344752687525024729369380231181395245193277045846781059794128132586884766109031657704968189985476075522063426343159818353963433052204995242408507417741226261494422405166722904121788323184011181940106847535889131420080566132347105759889006248425125172612415080252915304282632474673615090104853163831639249201479102075658706811233907293380424802891832130192674329348971101443839793518278321092290787562727915452319754147127549366593430450976930636578477501095914706537417839220392823119576743779596171251841189576669191055618973176588695611868660032653228842192805947510232024743738666651652732606033112396761782485678783044814290944153366751485984132954143240108436940757231278338753299456458314708708676052519577385501214377799301442216733569582513830450654231535364264353788839626292854182561869413097109563843030408344261449247367526544464884716810106854696912509145419597095944617563177730470371344866680400889892244342260012445062545667824671781049792492443973273997225697551001986539523114592382610534334192612027384683200683457440016197006795615561965360270683361461360848045051589101809798337224734989176113880251534641831136977372862494452991819999813987587640252922878839545893272494362261915298700533434580971591728868984522651971690811677566889553285171863639870083804957654566386695567389907018582826190487493428994472848450502809817793998043837830458164109502340596331583037080082225631977466935038153632872756123778152550724126557151657765937097904562757265296987871014489164616662585866213926555141941489262973881835129790132830210637410657912535132774716924465368664057941443449634663036338106115100147042239669499421190680759659868170601932959412895802747008326827471693468826610914469689279625341413105534946038346838326324057827181934261695367574106163549864789579626943161982177848349572130325524832516969722829399011215714043222854310517296148375474253233229439942493826749053530164605029844957189771798725120759449945768019405924661163084236242151330101900031201784506403686153957874322637305886816701665499751308949719756747615202888375882225756380018376121660975661622961192754782404420770055518223714929159822360730414327768535564988948088303136009162341340897273726617399020415761636703346234049482330497175911148040305013416209508507834627911365153621892709965883470971116756250673978240857614473792757772383270211882518166709312408124049793977321181080273549598118735666338443932387336330489310136091082204443498641268171751306140307137005588758767856934198120700689705215620562250907834571762007519636683060148644897305698994966308024081063123888748751431391106970320719480428939222605314341955683933778461835882755834194083149660862493284322300593855397212168314396952244285154908889543021470414638007704937747796314446692444004683769293299934698341834085054832948212310162918903122481690313441379354442688265129826800316584809530042023807064356600772947823985152327950292980088457897530149330740394437881757844213111498660307723744564555892585331823737886398221358672581280889650986598330632026212598309392861789346213961683495994205381336751177931659552638989641718745775646829783423701695508048752077108759090817745873012144340248271417093311057154275898127880915222392106962076998946134331204033793107067839816911407271113684857999817724334335072692306706049600873420288658086979294497003991823136740988588565624225644437111345695073324518546818626027451462382364678071067546769441530323490074940180753893125408063644849943365636918453009358318992187182042066035168845017786428445875809741869960351573466699684290771119743695276163546720849815144657419829573604880768756205499097864108738116892634744942621850286755800925397655330596797820594139399558352500723082277966988347262297654949754987495162341305679401311291274857872614452508023683749307170566036866437312587469078902500894050688465088637850388600202269270107662675946264829595232070920817369560610665865780382444996938600236593467981314158882182813355522622502004286259417160235281062587564835384593199015191567136553052357633955838419532945735797970555327185141399751610849662366198640372247192689507866572460680848069044369932783817176549029543066647854229424550841873823376770672350197760496286817833470915160201189665924817184162186988608222684894013388842895912650177086396987492252200627313646890721015513950888374779966076617152142618760790186555801460434472921889143517837306523926181600042255832760877578888538438740694217303683855535217075319439781589403468265365123138086429078803497957949377897465333001064974420938980039850656862470053881481684088824419005114191204656829872312011319389344719667467126583347869974490242186046008112705412012379025675407702560923271025237729018443432491378993016312010740121704955799498044515799139718871823213707510012047147040123629670082134994321283675943946565986994446734520018652050085086843361538533095156067769675146352434004854137680974989310337765350371860470961101018731003540942756802218212820952295509862526019692565379808214950045848665510804633628440545816126705510747164879825100064964960066149476397420690703552818901243489712869279889931568339702915687981047709470389283861011124973533526978573665814898117584075521133949942278937948277728309707595449191527573877967425546596182043126783928642885099123958541626558441027409721229112482447691555242491802597409758104397863187408145473275683929807668427828564474085302814728693356397361490113545955531408151327253388116878400809194873148999685093688501318855380215116848098806435030456522861497711818934326183177150228408838693840188802019443304039848151103072943107789879404266371749212124690748942967901468556997364918991451322224155489682800666699161257493339144653915277144635829291768489503122620960688583216150896787814969369579092748193719107814347846737351568406966078412234560843736807424158262454774300123248021285677890753693036254391916529668954253413472893660791413973742982972028156277162290556856486101045018259026877707507021627892532739852334794367839584129826585358238966214337017112567023806964490754336936287985383469842495198363392619791302259181526913582585545673211356706243567056152269552244072450236290982578198600628467784690452413802287478355841594244350508945972412421308800388230531435725697801346144133165195373907162697508492085534673634084090899396579024326339167261605383235441350338707653445135991280996571505832213037876090016729320988929283162502710954923470405519525067398828893173314752929954455244538682445132268941961040191228259262877466308163035129892066865466634123036342677131459758078312371736260213944373857700647677092068077749152469218191965844413048814121552592551160464703575124338272737112402202728491610174366233101664729135206733139720481852599368730980770164743455221181376001910297396553256056703344682708501525230582387744334999500197637826675361003218691260794438790034868226221680736824590845670757643201723612704843439391215445820609484553569457830904873762828613023822754005626582832442741118800826754011512366344448224404291183319929422657723371068347105622852249340218645503979472269552562290075019363448545082199502084433633551074236847639261930376355346307880472472808406732302274286802962276933597648566176312004281436702664068427652541712519686687020767471804853253867240039782618026602428323825588688871365373688620783996338118720645793212414637655763183136186526855336606251955185731653885974724504111759757410251481759194317733667516116038693589802719850130490212384811622084325906739228957211835391195554242158659769427588851226658919793221375789583895877775989674764664047337899935083625617207528118995724030367455266881152962647953416433232221552707249608562781260164296400860216910915311466438319769562322020427374621173764456931397741279201346837901428348575313918316082855593898164369992015368451675852706790074486062076369411939305078415733962427766732646397285180379462295167600196960656127410597788789418264944503523110609532774661393568123603703837598584772924180031728330673335271129476370294071732585806608452484753760436234572369889300352828911292001948518281937764157878295731468420040984784017738292107259818683754822084244145276409177035432609073518396273296840907104512672078206628766283933591905444508656829020824277809376870990822738777419467429163890240658050283284907385602554196066708621565021218748538612563835256974343568931778863625268709268181663406148675344411813818584841139846293267885913090812003332060248651813772828775769477086127069917233874030381883585539215944894590150857317036732113292821942846526143649199811976005812854054249818964296072749446989185229108899498671031436472712182873084311057571601758304128833532787602392725641592191485803305456226592642753442438256688549985708383548982083780290952837274454099369900055936133581358371019563280615171018459715745837767226041213370947993397788154604593394807427575147899107937955133791954828888134488191546248761384560847512870756204342899247087659514513332111428761479726362011266270751019165385457336314895914402265192269189757868891291684994507913220490945853515706350039352700391626322881998488009949687184394075243742631816392283791568571537288379395683737655564384355656466590307558834347376386461511866355926439918936778353421678165124719979449465574224802272190833020295655758948613671359513431476084560700825501456037972329017088956895401623594914455647531699912610496321439042092468217876299613248676965681395179233268403953685973172816738597498368306320900228852821881225881736353483027899636273805217850987318830158525215471838070732547045858755459549537680863460454124348449387060170855432310582411219685947994204725371514930687810437178203436819445110466232885075382672198726166408356607568859690984180955635865793593391429166568065647415766434458350137551102010115359626708424540784213969096654730991151086205135252594966192053001011361587228081635303907340857311961224039613660668401729178925702113982212050996130020063565519525380943530436597827975243536440444143666711662986105154144755663871490262544452949354229417507533761402530954554257544933257538231752446145639057787829294478896789433553321825500772623133374654880064953681037288177083226224229472789545040604779341841082835704657969016312366880336813290542600330268756704811649925323180540810462297430387177247421147715514083511385459920678297348143205719849576748485009785997216176647048426070550286828263008191632964144148100482916329269668713269688005052826653354748953110528345865059345127325362257313254584703242306823480235740216627260752616446357943686261399477380164411810786785741948894400023681118306958153010267493665042738652284771175823583515081770975757463783707663157226134806825716665010410010395277641171208177430078081837279357255831449484453614996431899132966147739302458908059289671570592584943777298230102861505504906810823030861585090285388128899922087689456702133007522143701794535323319278867099007639264600169802608064791079997879397173970683677887309441111954209437140724261284344122474317197881531008672573929197201702426418203685008263916099518089978691934284518057745246364855068785627838257392144760867269801922085177699176339049561456928461946958559540097336480025664543635462499617429051540739840723993047790704460580814394337224760492046774749051795970409497355598833346043954303843155428722878906184314792392728748118836962900434353357622087396226341133655147058335851398516320296898751492241875691264722580080148972591239428436173462724765528632291067420647462029981032271255673088699801491054469944342201362021367633355296803909736825094382190719912141453176379006690896738427872305475641033604171995186933887933880567110173600546939484191638758594923718400487928807709761992927871901236426927943555134768044586328331190801028031792902821633203168088618762341592793332516009874506172922007307949110785897914820360210065849677936509776760232359593499509972234606715562179911694489998986090574192316179541049396206655532543950717929405719386939197890169378780419622846233505213279643124710033704967063375940071650767446259184712251053493956020633773483898337471828616261986514331693822952770731446537254651832360116183201822999981457723063712934522357783129767459015609320885225412570050967218278002615332279862907429719005413618179818531872103292722506303347569337879360839205065208808953621327933616941500572222119331486194309449413765534908495019654683286982222517979037332667199014244485921308552373195015795291208536198075441877486175090659259266606604035804020705224102296494893459401070619767922531387874216629643675500771721081108387868131406968514715680980385096736843758644718324772806928696824278317141327745916539109859311424808689469690377567565198218328981354920690958219389915099215528702875286109574553158011713085365431668097493796166048497168733708887639295208803309533828308373883023015586082745056076503907411980300897734687302359154232976937160841221114528595323591201503848433742703807298711741410690784910760833396952490261021494378696422048587470927583970494039115661616010598435208567595943824782029089757712265727116955117844035816982488101800449679821786939052004470361072293903521571486907662136400415126014185080533563242800199148971561231096254776103805706823931454066685010587925750387739208921625947572314197733121681304516767109764247149858089301895026450288469623493603161241957240893730424571958265953884228421646951953060811669466341776870700133448225146257680713947418468105665330645384993521477577215808973386100551953045879803056510464453754408476293359191185171547211586476437308741193993218239215090337895780878823591522699381497615936679441605138732405148663236040043373867937987894628888770419467512011034741008838995995564966785899804639949889932182737987064465034607749723870734633658365427582517597291886489844402094850022287272821426888206181715865376728156135335056729631864958388700864151903125082428537538242565459087328636383676591639876356656298298501934881613470613213261789659950067453088291305570563101073796610265312755765153525889872216473125957276600307930443429345996836371503952043990535950422398698127254477243822008421760505530400762787042950573394266154948109485169984218881712677491618985209578573442873105973465029060725093460690593943944936627592737268122103993172896455203909787990766128793496753736980106874679823465877037126714577239953347952442082074890136651262438352284539679752064866000862854906597517553387840339589691307440342570013981252486636241858865765781574294187290502506157900554404596333305726580610830602596538626175261566806157639413373465420911575445999323067953714878304707880350428523509329254366575219768495518932112896467538094584234779166587303804688514401965803353190910868787290704535671287164786173635623001345268158738210458948109598721469051892571754379733328874787009755298139304921787209282500317077634538875223776302332382866790133422198261376805132375073491859978650256623692869601040719069594967700676836094802327576842488784429387271007479041643242489022958593287749111537973122204550240598721321328574383665646364685473543736531267947167943854807914953955371201517816924995692766170670015890552386363592312316441125639616248662706343158838154406881952336302232859318934066876116895621931475010744190628300544528452730944879778895539937571969963704041796860715206620629971650121875763056118619263339696941109141655945610147340826487337803486763406630703142198956186986435934670452198991280022572506983290198777238381285586073433000424148886177029607656007041627369288074830770812367090631527905537043480419354428011968641561096769938945982317422205956802677654476857961132841245885280703754758672169677936600760406074734374994405520808294171243851440476497227047593377441117768063378464209549628649951542027545891448164755457645381408889183988046353780853688665286263140481332257073467246066312963481453117213450935228391281981767609211858999964341410555920513762055751678754003377695119879407362910067896905887368354972384171528191515542479921838164270052913143064164106995127990940609454252611005765046842633886557888188130094308329423235768124216504870330053706186334174404141276531067378032269350979819032437524946695985958119091087021106884300913921028809648739847575474411573342378827846813404614175746674236992049890462129652048887152249083580927138325067696508825110835233680037079223700850265322283860665520076206939262759043215299668852921681339245682362542503806564615035792476719460913437796116288996162540287132419113718806316862312956351168839345082767457440361751567254367514125889277002583893587012832097797283650258918740615410798295910578537807976214433250718196296848154047849704359785792490859482436906666826283087817134523645385054495515474807907248422894346243965044803627271302776526794322710007958797904721317047592013993463105786867111110034587648124718774600479855634647923114644877558897307142387095425186398347685779362629320067049595927085168546126632928178605459245947267401751544890373530687153295294826611675117183788936508384373005395743541572645847295973150566823556962096554104074800711672785263075383932167820464806462416129751985016718813762399538424680624920858735496601790659977779219481708717306820535192603729484197947642379642999521379185454887363582667951013091637914918965023332838187933924525772863741549513592990660103540838045279829170532071291123386206342795534599338355821844355325097120172068003909304058627001073962428178658492952004783471387862693137595189121365445993503696878900649268409857934588063286967700648472665335890169602195057706867133804179275691581043857888581075386045554805318714794286627626220670836416617017714349471352524977175822122264714757200883739357574872336482739263597899050474285142619963362253507975216999159433582086620544624656356190128240383933116940913030599615016087218114468417388668577285449856748691432515623794607349740996027692015281581751009641193948024284687580206666333481625627835053386984214983561995483791895302461612738948503232398777565640745079198748446716884556035258580065757238352637714455492078364911338361222806263935246872544817636495161943556771561956405405892100931424440967710812832449575337678966106400892482675266627442001719547395245557383648485939040671548054811267491115074789499073424681722865330230137244896138668335772941380350634234513159539935780599357182414735860532892718959294069050837235483682548161448958151518210861259042635230918981993188657407719697238841070019932969102593306741210276917104871507408085736266588121265344233552877624015317778519590324633866759742873972038587836426423993274060273184632349341674854184657608052819281679796739185604585490905360051782984655243033616527486113446248079260116952160086715792160362470875876497644153389956576209312852417053059307350189875758031876363509025513779889876088110015983445789467524150235850800596406669684623912946447402637592931957744635458815035496957628850183500634114044498833104651417089153914623246129886102153992896735467994801552733379395826632658235793558303197760667563962602975445607821479460280055319123137873526627840712371170416583325596283168244233622132444783481137245830715768212247566323716262565721786151405595440790087275107338890198593077312878942582592328857036611651711098732160800503077799539657809696885377035141027487929973443792751463713322220245740699306963444003951897766117136561559676825737237446594746369219651618569839282247058337015423438812485580741299003997859651982845831834083652323617236953982489194497786897983993738715974244095253411999380157164635178920328791905405714718604326748055491090101399561059351138700253444709779932476107836540926808864691142699882849544797660860533822294440168632694303326810266407023302448685537667361914621758869721381920174946163491678949657572705366257215589279535234893267605103740543808325723903978490507803993891362551428730860002388251742834275005289681843719148933380823361329979196570095402810831988263880982158726448284340475518675389997604939793544845398640538474135374550099202739463940242157751380498982375201035054910564432666409314365213121493185079127379965381552620251294289237387824048723003999484822218263159944585537947143857699401814118019402652754670003406464494522545243591220383298268676273547137374820333433833198310488129656878062946071190304174315753029358375618175637341799947571866031871420774347247790590785135413498395189031583414425426962914591263338522765462844972622136124584437612921921363505870730440349047677620836803063489262802929387757927777204314079160248043772962180910261284045772540121878183490370076067841526931194543364655610929533735084074877314654423445089934089057528332323790680489216818138093326375063104290640660705912733653464007628882355727142976060675152738184143961418865643104755886840028314293134727822791262150997745907837798151481572529407303386338781513040181556041859563172202336830306610676312027398549010649228127611666654741982694141174614832936084491712154121568173319290352667784476769597102123207417688140491679498715793266312467771894452215185139823658171492728544968967462247411558362600443640358036256029508475009370740629069166996042996191035017775799758883959539279062252070365328438618546958122450243915479821759454391064203589983185727728926822842873911018024293088700002122906461259111065114190648574735048199311839751318856497520371443953394990005365705061197918953846162082928891034053208982317177493311702710792815879735886455295929483294997348747341501244973398421986378189816016181157890888280433762240927670791611610357817804314486370146270504522103012450877018129716636804729303282476177453972478735579355040999962030347428167847701498775086757986072692846725248622610203134912884487784440945523476045101329532906530481111454917106095264959337925072330955180562935797129963478664521279393267517563874676619995039584657214925548164484789018129813479303140003008777896578919555646744040247066694374825038382766653881469714225106863820188275360413377675051332952636268585035841291445467731795853079696336292769470340027515615550069094575448851347055059739586926499110949733782201594351445124145060844429711927874381761558059574548012052953243557714382210028666904267823746265653035507859382711104789937080238602825551324301548846920242532243503337344121646151110603636774234049904409398059531492740434658910932035988002951495901376523148728029393591266924623651208664666290396399190208513422731170461457842621858800110085142182147767981258583483858774692412478538817309455913762421523215789461161092019474403998032728171034957089719883820471235254232516337374698328780835712541078452432479537912661289404108517219734584211393428434390139755362656936297711584008516672497147581573726820142666391006403088901401854467763278150868475480290728164998200233960780422569761739777648000620593451274155941731255005800634103168989762743343859621308543095688781848204491581568480784909051422850105318195086854759886196342367265710073472333115015852401154500359509826573918831701257313851180169171586792018244559869292141591157629038671872224386631479622299556891001935957893620878716952103727810595577536075774536605545561015720311465949609730410411830387581838257702387865149406214565439104202082869026116777749857462659103077961963175398183589327205993090436604019944098926231101596516440336191662679716954627818349239424361242311730235977495165879308251161129370081497970184801622876447621276730350354664579178134939464457925159411209937989078126935208167389563826312780381338259952047926526810533574507873336190721354876283979016587675047041921030732941061245711579593645188687691331909398606663784118730412681059813225948240949270678764414250885266040825766132278891640075021149351045641443248679232653552707298374534788909463399337168960930214069057915526342306225145923629819582584245532596589150402629364048369173681751686651780396504142104907219471813270321217212812846426006444411142185933131534545835240506027866080024813629125293195816194269183264859385079811674217819350781988476284996696034696173468193224070415517620601455703167311736020784823976027692806387728934862384749446534015788075528136430364818107368165946192257581510408234313759408356056712835103798418313797349272666870238566213358294295338356265944694557634382442816590679731538514744670884235371836334150557764128675601319651044445068098848034791780116482247255888757943432721582026447466136580800985581051218704165516242157123709514151611939540105828542961447528408841898614513665207962685812696223540402924865701272502673012472615535623758737251486363824299531525216767082097957680429247173941402309153031937441361050423417503092145782085002100617877612455360995789924328964751792059519810763742774563836464075980540463013816272672930152183055299358363075618804458791879647822453782371256339014908188092422944367736143384822231286652419006697562406925775172719827132504319042755431078302932632530940232552983198932837241692632128682602336624177824762396183764042241372696774897737915230079501132875257165920208779021816011810821939502796363191876017522904847144148782905610413356860884313651867923200051871613386858167806175852046879195331188602878519475939281391976498062202403479290761687681160625249706014228898329059729054320280966043106255209426541009193802629581034574396798641943549921423096404765446258203745798989271244362396863539231923709498457062354119417647362597145936424504373324495256197565691814210889494063170077694719130889520975930061933081967326132741556532602295025437128083597249027619925493973947410656961218990688078692333522064394920464375142056775628337512971934970644316809653101163180231041645530732809201387454275065730922767031955623382906599742818464545513933863732912710448579056609058279022133549168197841830495348596797179178229610805731067088740317681648575539933532679107765201202913102281659777347484224197915991576905499861927494333055094645299514084842286675517932090010630179775163577535021388026492109103541203740068684685954003584522095244352721134519898722891367097306687980541052941080522780477912895561270367545885071748152687016425556992348991474402003593843718321802045337490059643666403860795541325039987428956770147865553903116473319262196141623992713550468136722907362918428108671963416210046376611384358529066951171488722304176475277012589500098043845439913648576256437907793428211739718589592768633212437293992989580172897583341021542091643114516253143607489314397417956582462963089065686059426637716989287092262119891961652844481057526602641834156892069711592391475508512805946368435095474434424705675579924436050090058739068156663694023279050205273299970975327115640163074540752085620744382400345343384583546451552607845763052630483330563948575255690938214820544078375051400196486238103822078399915545245047345172138936730031034932302915648778202172508311829312451094356340708328340994655176106357680798181445285291344573880499643413055535787101496304477761396246064099994963980800910667200928054875369068259901452159181045731381202598470379390863238512156661861766017863339203275071264731615059526483958030978642089849278390806270805944442866074431250370361826372282544382555312913364426177531946069336239168263278211269090798234775884946137104642695390305559911767960463163591778941759167525367595624872275160303739464279238032243082121941966137216489558779124113743351562204877220985789638239326203177221133597224643662732400005985239681536407979457228085496432363663022029455603959858111738433710741571154428176581401205945368923635695331384457699366166319773822337726314367263922648073198229423128380549461451312919530796416144872285308748342440096157009188683226887370242017631143866113170753635788873483567631050276019519895515533054390684633921170689669932831631523713943008365479804875951557974187274077286542579252659621665608708401460333950074679935685853512598780667767503998069201488988197747312074100062284113468167850119201978852343381331791898621156742245268244799926059697274137856433597129445188342082382159976008677029296219979822045523689007248125333224912947440896377053474500106006545448635332681062500865129794080883931605797369236516654067723446585152775746285080256784565027367726585436102474494686145974206068478289011640115384653461342141082927415829403834750072943652012023041774803855195196690939103805864982644945177846580802436004657084186652204274850351243032737763109965927939398806938861375353552458717808677698797872611627259053476462386956649972785300291846082977488560341013624002059280884360568413579739615707903325660048013706978073593654928979724283031124851922706280125955366625080047964861351944763875680433008031615947498398681781613407330613100488469044305234355904032673959806319518961077238447163862694927153428619534943846899832810073944060688045182175933865084962082915772229108888928455650645562292760919908265288188313268668919845883999315099910653339266499408630123695658852202510511409924110294820993841399672719713686733292548912373465146664270272083004781763073867088914368569880830016520049365208666860220178705156232797516757665165292589114258292765767000292377095642502123014670765280684270611173162770655279403332065098442151377345064009098362888007112127514719881007798679893222976784433259443664433405551665345410822669431271240107557805115348320200698278028197867681207832887080101230286043692709289312470293666956616893046315324460770568498400789659136887013540736788187214968704354216093961840971181932381012534220086008093652089642418125720615019463889641685749590175326994730448954662705212405739985584027708439323032914772972766102438001094629631721492666410156220959648249470185582611386947180569827808850606753008916288031995236907404965440216691096781222450133482545052683879238699084867059573733186506030060638485707809608772251439629373426470129369679038440180796445468110844346624932835676021157403084946318385476146758807671903801523715446407486535551861703539024897004384534843819386032952314482606743144605416043786339584160022967794578922412553732486850769383051937988676961686701053465993680031489209144639345202820567512239846405269552682300289331679327753304650542208890799627100256202814538682716588463861974919597969322954721595550470533216170693464706410973030693289435274862499080775394023674272572353692770505666598793459014507512116309777491074100413018777028053491654336068795557483815458263198140323398863421050191668283762771997181079015791549975372473298016699403350509860254116324159360312697909271491915945818157069479422368936938997062250353769763310366297949323582313829350543785598575916586409813065475126001687160373190576476571685421604727815994223014226196236008311087366719547998587398252929158416515064033013748644560641691701105904409979522319521062885447652609185733544856395266676870186454754574938810453658065207674165584858652334231344093278080404098239831243319816309469859990069049042281037236877475735359662512942531312970505811283139473142932176455765310151261302898126090211964351987135081935241720726685483374104985666614572635708542526241280376135788662319917580691418319447551805298664476595176649749184982052353500126093392156038991284752057633343756069693165501219497363439021807421046300534134177960193215463663764083872319086240488991829367618411790087990161544406107559929967208747072206279352163346844497560260087168038907289235711069588037702479893134541906637370844969591780942173449067324783468765190334660085791343691089599258558346451339030851688616014703059220911523530621773412862059399207893862352545686097522715739339695280365342667420854286506268671185177696421304462661663702869246037361062684416944249137534196470908653766479757254515761791856606706563330725175667602442585634959415273750289439102606994344974543722771686381834340808831961064383385190412660591753303678178366194433476866462964212415400444266729456889601165049236570726717316817574113837890815330637455180048766357624289357201242507043411935569466462803145131220292585531168370176138924150682678071447699811248602786657218686434753703246913444916582711278526936375839487061706234839305474915910032061185856235357202417894607708117611486000008561116814772810248877950536450831142867224514280594500547471787976181939752942760279789258086282460316979624160818178607929745650914714971496737011276702143351843819574389724756211304533403606032286493315454387746412210600437986157980497006504106645681465136344320990599006650357128190943471864311722990976375306217827638162239915532457680686273448570982806146321798313457461354142262846112888053691866224979184850199144497489657829725347131604846622332529428727725335664780013925818405012370792679903339596933219975649891433138512401179902921975534493556483867556912861945912041104372862192807497576690027915732948717374819018323905628038199037109261877854205925877232684345959373026783940070257376852855850492862119847389187399019103615681318891306946584065351935685944254518544199460365806065298989606382389174506652748439770851142536198871899666712849403241695743894886081304830440141437072322864296510266730915908309728866162405796986375909089437614266848198348354431283524850796510713878513883372569135189618423712410267587424206825321160353026611277218393453076015324554102622629117464126222770982063199791960849382716086216658184605211095871987410255273886887744274384239134361600722932972947589087843873646498931166212464820067274146680108797876633176682484970920961414793963154505653987103461430702986369817013014711601418909410195419305168697684845498359203923513306114384187976041228680289724335891494902831055848833010872290211578245710376008943527041537392030158360783434235749149206763479092576871996709272779941761674409875925467430114506251720610861813069688009346092665253147850487880849400113520119031122737876487484364109830580123788373349438761233056583545367826967085411218344064901563064833763925230696274393970139128319310194145702185663999472033780314445901785702015231433483718505800956321028005774814985248634229697979462262240068492650534463233884235390978182835817775886862308087364558334286883519275061833068134209669721376301165612764907487550673719511581400996449732625578773705247765231863761950466797385437972822228912561209463548893202703379276259951475783718032785824386226933207784542161754791287664786599720980560097538978037471912424301661416021933450017214255367712430321772696160939383355567210569994959605015032891068184253461218522370637662234147512396426519348449514338592179687329813763679115724949787105619140056954772841200172276596326160123161306492940547359811550704174647491794147132555504069653323371349954649367058242540107469085821463675518488651018420140209272476800723843826932506655868258880720737867076436724347793849730048392882720965589924438921530272240605413799691268995918012935517229040975115091547435658038353695811757648380920039982059031774184985621556279847718809065796513931324847795722507733494549898371820534735101344447770267187366376110173953400370134696059652678406488488395658292641078119769886640500589448006129664651605280749585633292957023714960096188689963953575986439051641981873667452294632285708509151760869062261536768694722558135394598649225030412563141716538939534513587163649242176930355320503343204061292233447060666983712103602957911766128139198617054883210424525522150895806198165748303552066116097487775800415892605312856772831631274335956294644187132375692164307274874644512349690482796177361209556634398355619578895066000752350240544489884042171382558748096891339422354560777462106037617694471992321602578105384600925540933468074069024439424359572962729225350161950247143139052306467309958676792951109806778505843391630396464116440004057108115120278584911172736904038922443946641363652484464553474165413882962068477132156088094772127132367748936332921424411242703320950912154262096540325019879972419979186602028341953133502501535343751239453924086295207280456491066318184314357845241360732489991241249087648536336671994381436851664535685819956219278625419880263376640843894586645149666844760891810435472617453457087390193444022910294548405080202719078225816334652810277504386949729886359068328389581020872230517235791225650590589693637970068947505998069428922388038624420032801334196966303279180000445416912539661797103232731504225253402741089792207524536192456944682121639140531856661997028477387075822978057328254427655054281372215475952407773996316400142250624424419941352543029388502929773070688412369120898224312906572167901061583625929606484014844475798546572434333308581184933768853767310494953854755704186143569549354976174076853343727261107008747771166707866458069057421765843934015804508586358593080297734927049177818076297971345694220707214077484763266368290372035647972353998820152481442297839000233436942330393912390292525542358574321158445305236577804612060903088382820048458850804323643850506408708425489855770906602259668630780858987505643532824197344080660855889100820546710843527138458526719560244410635143428995269580490960655616751797115012657063124968317813163279529861185335562759890609167574529625438471969222950286807557338116071531277472225768593809048408698335545904113761387994201283824668104660841588933624152442456732547049539074951855792925984234915298730423630634879015385343121186928155987544531402098343398411787958774783331110408199429672512203882032666796418634991453060226049589228111027042383029559565213658726953379291688572765792700700051871890895707301580438284788162812433972971942748837342450420198686641514070023626945530633751153180825349422576515658461223942709535574590803910670920297710856805935184746280082985877896335644947788350139822559779322055518334764649104566756098017440759763090592859954680972479122376600424507571760307181118509385104861250318843074800522830713890312691824972686313089785002549651054098001807198513142683430642237495063445928824731674184862840811338674735758551715471264587774265904835199678281237446141779980937803034866705218918934683277074174370985000784227669664609183906146255094271160384527994296105651248281970909661619654184355420668479736916273771297937668098253438184438269731135916700798187473147383761328339926876157668061211589344925279576430042339451449202155409830455927808718223659893924857624926721058902140563441854013110990054126797555078950913739379669768916394367523519375703401947576401392070871353135056122243661691942964999357361323176393006559249954692307183962123636588399708129612104604652144303165653322599746263841530391796323925404072071523367558453245584662889383184585924843698060574777632809827404678332628545390571052748637407945690786871345779428575541306957368814224251834004829372851564514111054713155174399433640738207285298914684673371819629587799835141906506744445247547423551008661268244881775548300735320556368922062126792332777557885964522618817627172450804582221838224348636313322991795377552782311420751588849683841798683021217715659337168218793478990050974487552443913132713313588374137847525252397334208183908054917514527764764184567460184591241723421598795316549113555924574351004788782365271527423785114630927872895667291445722336141142872440047535185116558942488151752712868592870112084772848718082383282143981629750069647556630023696152284014271542169429397257839481549204669975360101604698587463966694483373096830769629509751564751167860044934185572562725926515153891984663158959399998947315361459014894096174254931164568061062157520563648962506448163014199156046194007986836639237642694432434511289484427179049323512964394807007612984055786162657366577620751722747393726744462891593531033654926825649758523506856579022247484090110785319441223912300487807878935230599364975758250325052357501567450094445601158724950848652887678752818668722512320281244147433528527966691478591976700475367429805016852059336891017767205230644119399122964577843225994684842929010276126490922667195180061602924518437791379802987389858595972730598941992360645768765251044722560843109120739512838867205726466270898208924854075117942362894239036716618552510791208412205357322448881366772411518253430356091454725553901842584270528377875131542573756261134642981270464437802762295685472043799642390983169582959379627071225794415699223817349774160416949875576221194678099448429182208922146011794486614538554405391993176532529380021174813962276754525520843229595259858999061945280511572916640608774700440872751692369898682081291761515328297222950286636488879429553768181296085032276996060268029602251037884910040233018977230712289799513489587469496786525088125133506784647044615041351067024175724472846639026300598575645834563699365838152511373857401774353777448420850702452468275784907027525193884922546919852614982196239669438084470197571511974754090429462144659894430841962638459033806653353283194206514933755005502651529524716251126314590831611133240053430606098054838771953357832792334097659645273900606507296801674737575054063823068004729386172054365457153262008601568215442701264099104265298780029263583914951971624364287938935783610357559433821965298891965940697898811657620628492381950946364602402008680035134742600192230542451283373590162585375692826455268330921842511607720230597529824497730926839934788658400363315356804191493410019896462105629983188519232645845125319328169952068365818888193428875344455945752413833843507443115254160749960985544146912319810047315593216841561762728970039538854800880561584914301597034509517104230819999297630760204122312020096693432304472556187162081842094235134283039761328837275134782924168001123605554487173638069094505687140290233817467425098904310141036862757994971418537502141595105867686545722083284912074265618567337272475890631598323033185552264192597036126874196003438788693170132644456651013099526898627070708564454087497522337246621895133007881480413261180591028396686914993743800711427071349889783130626793790449618759724571953976771189884833126033711531011569755269752755452450984738294722742245781980845096886812968224827950838331575687902211988136315172858581476648827934770938137961948243140238030888473995675770702174459986062414372101229438731957024813547018945559687416674892665057629603100017340208196293966312578861380634621842277337571777959762395442299188707818434849389804698149536149984697274383463337380582785672872433341119155403865401431544341378784123567135917384648161918318291122643798862900036203247416606550363349171934875164193627459727882124186743210619536261445899991626882513578899660506839032626558728767742034016572434035317540761771799656226166321113353724822093355969550509624253376305690583299104391889787779002268104200363223580877383882965377919307568803329288088442035263606924556701968248701459698037189348573278370722484709133285868785947217141033164692724870315689239164620464443227861356592418305315217948853601167714235462963952689774001639901308040530303821699930191181044420832016922636306048258069204489832495129333724832201400895370054825753954912918483848055787252897648287408571570655030147193757175435298565785624262157902983111574347195507236181838685161225437644245037346658770838375853602817448674320063262759076995250139668630728662940735562146638028035505553301675740135116749002594640081794601495120787538492540740415032321438085299021436927939707398621353509355262581227380534495229522198722571047574899960170367921932667280167431593794676940480250163548711821702535782777566856615307655617710138377072018367506511498222968975123203234439280512047050957857143523426178180626783253609635320265030923561515780329487449401626796176862856088926313796631847447850235160059630664370582086673430654351106396975498691305506955889342340235772458412355817837057913507825720093101232980631720622620672932669924516327582513991833793113306443451078417529483002716735378782730173804209859003157364680323788617013506568725306414448503598101940249907392545432139939130380732282883591777787073208134350338510217195900562741327222543373517252469693563480474599075020223189063035745510781643289863522807365558330486401024068904524624533987201069979963418232876423593682431303237786544715346045201594981646658050724524457799185532249268014620710965903003895445242171632419017751129411585563356236518701128386095443196740171440224513712351351406524951235558863360161974814502729674562850445513352613609936313930403540916290842912971234398817167644793201169418590592950251054743258033828212443134111250041892221279073860099241021153027857275611596781824833980802960561691222847039552974214450133549162346564848683462504829788936912637428223565986420461430289715330582879279756611000511368125299962962587304969733989695149400619574856742096454463157079259367344662488938121548621536209054721384301597053749245231977156270815670920086714174375184918074497261160190572454614642351836955670791164377877921335848242672742952062126328550253318836683436977967533428094418724873983016973609913139389331291753736705040621115070249662322534822025803559245465385360920983880253482212495730704017922607627255111484516430302213859147975641609606916636854828058515005370785865123506507015190289111948836497583577894861919728669772535734302024783700320045406004870082773335316180942790397603095491131906600728236802936692842644911056578371620049671488377047872662702858746519618975820981709030039833559077574550533105071600716196871307630292571405837728404736216458037498249570884294232275685600408877072253960197102461240511311831114575801837899295722778822766550338022933237304682619397987913217164053752298183453147730112760088979044374264210992217173957437946190938142667200053425546701874014338030933648173836685774454176915390554884898170295604239692337017985769518734431135787293650127018971433689981423675396727198493357578234648485521770007511649141556173634624647287480626038043800115579887313459496973593291753570772379822597367419323206242298989377497435287943059159056162023426584822836488851722659960171209465660313041381885224800253285628300915438195042358302362664356684248618463439956275492380509719368630967202642027500479297804613289117377952117103405164412414854160762343888940731032752579439061389455976940096894235389399806423425393479349573894226056436702778129453491188614568123389889640847609878467762543961567317520753676903199002426892754606529392858304215981505122926690179637538769241992950287874211763733190077307468437730865622658386504995589745679037285485101000170034852629078115810479369675020373885822495252717680295706825138667279168993230354113738137104852505815723430814134381770771149991234168067013619098870794009111129789114551663189278305696382133390780896293473861261440984886776163324244603068497707007887921586350868737611540807517131882620542314334575199279219750202044412946438917286959223659790386326692749560102121086044751122995243709239437976202913557370852586443146356187972209998911733911229630698677343990970754412256383294280907647829325549325146855167411461333722796919863852179394669356349699899693471068702149706953916994609305469378323416211794691109521824040219958480831090377177666047071731395822030223367807288635329840817405255343758344805279035897679002571392910957614321837237178196373680688744415064851920609132777112410963356699652514127274598088519142361550034285952805215574415540015258475029398278093192524096651076521845336744757191435063742853531248821037043590340888699695847819769634962455902790768128238667627003532475243037905535196038994728745946911573908236961348962434115057772921668839396799594615700935621827504940821211230432797298856178311958294133796004985389437374696805733677565117882497917942568118037118334574471880766714603374207502121999804958380233994295788834465157530576112072340316099660677468357868285782089959425175344656028775622941067366717722798866399330403596494963989322101672199323398025076782700301453704041570378116253588152892954798916886171019707378460103736150348864377314411902178918384375095902064928417814185041443459750172011081872025904409882169926299676364342240632671148604387542568506167167568120244683936825689418931531762782302611996291369811110767168720712897212171407254930775683058337551660004179192966905554842031478991709395787577394722052075761008225425413722434379012049869519035734322805280784815212674402136872602736572174832498811006082042285613236838668498622851772030918482004634930008405436955163094395133084415842554233657749320109030244141570410199597441367036301076346548636013961908311247734118548765340350791164467934805381056309923102684567902275076761169919447318420710695538709309275371117066546455240807471081184429198665056548302865266133938156798148121785635044220991849886870619441111366007309120744424186918331076849813437180563080171451419193763682770258168005209960762496264444279121854112670445866256649607843748548865601323017481574959793573655444197313526765635259689903755855490587489353958720224186172250096465887778521521997579449754523296443664644372408009137751116695692692608153129129979626487982514011327250779210388981270809151406640360138896269293608363556412595487882972551120349174303224925055884188196620190535349112360395253126354395913516630603288101882517777448397321063971134217498876520287443439499797529893586436528528050331275027910893257591974984847019488458213700448299470639293050586654749541834521775166343640445303016513683054215135548888880529793758764977138385145882581491597418446812934514298956832737423451941568030029650032325762731879691672693516385682715139606998403944747767340929066518509061108101886214091465459287349231592589798167304562351030251390380646471078163070210433991258927237298405494434766636951578928921214731308282190114205776297739844101678314843936382407255045574442805571358020452940889704022916171768906765546015974121504110508891026009927605676299362382129730564305355267961706540443652801971928983838899222864141105566729496453040369313086465825895351390257515698143197637575586109841325457720161173265984992504844453950117456803102019194246098810260819345832087070907162708207914919537766627299895710734367899734484282893500329652790466443926570205796877982569675514065591472359860695450620929417126935098250600402406525413569018957115182159067279763029684175884883150200854608112076252801043126407080876935876087523173221714431589751832798082358837073508033809707244639785836686921565295501116520150359304150457876575824500440019586068269099664922666125104453042056922580941712200719086324714802152070106313329991405751663109770228552209514737587632965900414683887271884476793792898993661108230211990816377400370673830254055135181241542102780085850319247012193619446629579653048678286889046255514344783598705644983413896991789698741640734175384668823766905229275087234957806536632423616147892473859997018971440515271290718230971776411191278032326030697043913574691260650322024695940869493238802182651022069530418811084881072690711387600892015733698321679874996508941035433079889752411337414645690022307660285098274595603953203224371343501917609526416705814875115284495305493236512509722798315554591480724551997856816796827076770654995594119841839093339133096425344823169038955821623811816954111618794770384884022568400607856978313473059809955904551637259677895738488862694970810068397498487256138826005855535245698692083538238810157030129691332786313595382428744612787622991628560193115397882588299891987373304373919685069774141458112207419716085998756748126779226193957698354393689160376595434943049063587654522739044644558075638923315635225492405257109981968186797316562326193001414320444560868252467702063440495741726290545228465354946799267689905097241668744707344666826174144561049497186168027044515622057732084160280205852075418862346724119393664560174864821550466153228990317730632448991890074140420662877831937798613912304233853309024373309380612310477673078034049241075525061314959134461130654343994712326464739591561059039379982244319906226958555176693735200827471076949135458680372061684899047963796123630686680986323555035861058909407740046651080320238414273685454451855983948712350004147581283886482214730812446527773143828112426792977688554768314079777818947095726949360411701352201427378733381013346059627717803835819277536237429033686166970564525571477457795769269061589576738990675607449947562302072013247178992472838266769745758977339530230884854578944323787275585997926713671915932459894525686426167648121866780655441587249783983081057710027384097359711179789190716222275536786206101754618762871718415772877339711907990333111361754960304748528048419236197977696832948775148419388858499804589014995935495151041955533154397006161033457790072353313632358589628881721875046462950112624131368097066384774973235733754447871544897421744130035251653301138613660997435370789715638427497326335421784825430144547993209608888050597961126337883038586449993258661058682566661436034339895621048225439308633122031385412507331601439063381469598908887791604997808895096606340592376923723577296641132039266258324435873654739252619266918496324969993979597482055595176513069431857274707433722653517049367975785419034513743695340872808210096758465133096196435443110093149477085390497750616678913285219312354602248332452073022534843962175499307784088067630723309827820854835866971152993884400412938802717498345612399108756308322164990191104856763697158608283568124354156694690274055358854738288537105548477621073997241600003263457375639924097789233438238488910113411079701634592498302613449093272333172960769410293540004169771187139076762670370205377754264112137690118560822665102796781835884362588953268253198433537959337089808475686693028025576956402994977463869769040823789440832043096084102251157832197136352781054811470823289659993893484034325730073299759118016162999818374930996485265034853041590612967981647828502274520760513052054139608814431544601775918338053314882446732396673270622070750076737824776562280631423638540580702636733290606708543398554268556631473143229220770334335494141327603149532516993130198940298488510412653613578162177355874219279127922856153532909093608965927566775411934775389814934728906073185860987787352988194028293696506388898543845519831713270284423505557002548295092458822462547869549118658343104167575058892365972570136772969526065890830469262925923465728651673717239388090862854261918001150917840154200584606427738466375210974044392013196363062579926705173355850455182387811164213071466856991796525484980610806093534078657831345398292574641549490524245614373801461521404591126952903573013728404955558781547764458643609550686108598330968321132954916939480007399352319697142405867531720480344640117408096419596801181679658158970768756402353702403142269736343759440495765890399180136377873141770023067277638146832565757305259625734931649109924007896363940094553067226720715999488621250313583752145173134167730582198892286467459732675801007811621600665774607896424303030251634115783253722839437004841850540735296109284050731196034455144456211587417001600015429698557774962660407157689274993605505671052118391276689351133428821691355866991933195557200123037038099866897038821225668665195056128165010693620003948346348385419054459858666796346775672893644327303734872847216493966840242731883859397679164750845564321647017590991463570461514182839400603750615454132779997712396089639071125560889602294156669480597879797720929881599277089864898123126138584384936550607538660437352747796061618848858320405817618624922956577863477218683065975974414095498114802205010725059428592531113414017809043896041650892522563443876452428249146121779538230218660456682951526379820901074449766970499414487980251735637518059476425064208328022878215942220329104164158603128121643448877057599471652076246903349314956435529774795565362122642352551896269018083594001281099055786974059087961305317750206342977062620650744585104819827729651490259845042890437986219689444231251350572721107163635039610368266590383762724549416312596181294244201798517910430653221407276093201780591557221868355540658595740612167295620636010130566547174398351496274514536002185770042252238755664601431099930107759064273362441804564831366246641164985495681565182432543355983433798170192590837321778763661993477598332836923421074535865476047450692306773897506553081365331211228948248236408559633579937489071753119808542543680375824541601367048072216816434745462572036331395152762429180140145385966261019574335550537646903396996260100979069251884375057127227146280825592489297205194335191716131396200790867805982247468342594289564146075204513417730110154747665996824477028320349203372041902757015008540291870291588013468464104019298443451568841714993870590770862587678526062942504598755423561977244069127313548535701246121616202289663553868546139742852818289345393555802632949175171699717354265678053266128794750053650485059696996856951140048381260938433229803786673744591884223564875661286404521912520368386450135672295729701684053973867496842855301335429151928398999690494831850554436818918577110670010318764784884850959585527922258325544964080403050474370028600481093730850000817755584460161612368121702544083329041597369950383521561458919933678189768840709597018612382548827969527587730920955322259542344238719024665238959072956468076088252417283534903350113445746134192306068930187573207390824611019844704163408016444501723044969558246135892926678658108217653130108603167930861163739572625061273963139082497668118136116018553895153151420633942120656540016532180449543135081575421301567297114397411301550343239114122696298496503696301641175865067414997195595761486162018792362954053856464444096090340913422385472320379162199427905983815594730747606958180952591909872161148586990299779745441391750936302560499016377368146778179503701465265116906201723509012977469433562983234304538435699222783415946277061841139268246119491515397148496908148285724159501419006853891658560971218275955000071920340103752237870653783561803278306492962842867037140422223017347606377908466772738734242073746159132131226074929524198234495849976164543722676899526297831794356042406231532569716027751156481666639415973820557773551720644097899102227933481124448320458447680712831425866128906563915849754920622467923861219233762633977639158039132272405198078106235852856981433221870339202248110841966285110196893460750295540445519736306954885157990331529454724186261607902907152443824087649832211145249690680445708117703866373507445467537444001257673062308763640731559287541689953868173902529050125848014336791123731499155233692240757258277226963424977695192314834077260054177757414947304850965586375605330426593516665902038155743011224605433758267455912180425335237440498669303188641540396393849956016951915174131532956232845058238458841209884169369206094593647938878519734145050446735527914582064025950198875974833109374648523558508797058358780007640055582559371229951859692299003837117546395282953221553479461072399227023435156553651695266437126940434469588355915422385182296788417075538710932131198947597027280045372324789553075081837315364267125450805211216766414088957800509073081033139653138608755706086354709240816512859933268917701491387952790973808490401128920990869097846232688011735897203239259572193911407159464816624628205602060913446051916407330099292218373543629845171999645857533770855763931107781986814230414530115257705239152713165748283818832873983352369038486052989043938043803626969063785080950197861542965886585592969455701447356761328748079733827716751504745172960720073909578009002745481693092116447195402953348717402632147358577448610417967612330494196366858136992630180735109832419125268450553560344182878997162261813064416233965844508635064252808223564889013376115921341412640426528946022525379455246599078520659959551122386715207808566148662261735252520545611412990584503102038074765808823003950006888780032582236113914877347182861689838867603988977631457837621821136654582658868685394176923161179152925616243965601788949418495773665568696094565054405691037886723398682518187531129288289677389660159621755520326330087729899236139942567949687895355371973118680583983811401561083436730797558404662594560306937781797388910941360151369979583391306722145834998754471236569335786822184883916103482994047939007508915528186883110817298112983838784607002883164130141142561313699704754523592097093615803054080754304472898740469993561218306293125861829141711276247397337278048928680783475724772353112900115388976914029534538311295326350039781260175382097694140765471897194155287330621039263081417659562596549105325251165328015931805211992589634689474481137190280217335288007657306934535897060121971491437819799967589673930386473073273061602982161627221410308471010308342869640377841135657944803795785195121409025086025769123979142340369983936502958015643450075993076299845365005448276864554741449053890411151019703038995963149981786988672041609626933079044593954096691322148917703042947854253214468670076272173618302162741176260286648414089064988920181113458999650294058922883689743467131144903257503634433873040288973212313960449061294490600083813400243433073820146000036509528597088444265223969216359431213746953251785703072911152789771489364551301890107802167456515799277566315107807594752309246100964517446304572650404477864199826983843669068607417818750475729356365470151582055877581154606226396501816508692765943986492088955139451004931828262049956183482993454119715650141289760275700732204748819541936636103155759146548413661779279037820196121648546522216782421452582127139505791754204784997553528605653702980474747085683723967999025263439047438616144822885775100729203343275374648806025705915315877500394830400138135259537703666083131864756378509064155782184421769293385782578444611012036576155605233291892901899175424579353136960788737206430872488406900352180421650402977439327409214079678494421088502593248232378349720889351527702759861040219181813666061256068220496463470470891884469995240680880317571774658257612319384303527441427965895718677614811214997966570333851002689767416990145098381588217177577283448335969232823456937071885247815147873438477393159259513312261490012172474675130820784159580206298867543869419331880221427495463670997452188905622909518001277851843033663692884062845909704942838759742970690633723995446429248441764083048436011539945962016519772140798299270186573380341251221307675542098789283654653429954360769657867388526591719816289948262774423835912811335835864443709087632097539296842749096696701475709627921681407339033158377479267130604338902423110671373882018003910476080781652455115602630227581065437101750411800060028816780437323358203107581756951604465923765984901978780107304160784571586322457159502677341097800130220257394746345431837627007498088447821380065136467461797243105038891687902398680523779175896617019501910228282797023091046699707586316546381911679569851774223692507083685676056278894656776329248337029254158654140532867554353473895889390276567829287251943113509942944332363361527691686574611735204696752410853609057487612614717020999198808912895862290180135350796824946694015519285918393216504130743633168404753771844429739959733387687991132372769664864373892393119979386568370471437629328834054970562404590190510110193760959290981548455495405350711733627218765211777419471137726101160674404474121088473418923402292198781874807178194863184816124773581078150430136979136632500481197280531744080205144364149146606681066246923267842753354484153390120485618487026895254158131059798963149746698002145341668668233342231713401343498720936776987504189026768048585022045882363464742319145624429291872721647348816167895394730051106155531891023763907921506511456526001023449229414831770714306524029039054907463723580730438674046761782038374286244244902694551824224101705723928403773326485168780070118549901048420024893964804843841226862516313723968438974281454244507759586752736918394405200966760567912886829730760175503416609711433962808482345691271964348377575784091203397747111229555179207126275459384290820324573437521229850620370653574069759421727711678011448682051285222512850753406728563417832860634080698949017872682135528745294048556479884262498918073282554486271617449380399205523253338797831381257364869189108323319195504832022283392771157048930028777567509251723168680805154008241159012063622994803246549851874261092990628243333049291960520249900980225515662122746848048716179926738159109441397069144030120887722129157235203313282043935796042130063720417038504974516738637748274727584646662149569586947359580625801723976484668077992280784668072426406750357594323984580549108718384561808797407081289848898745851484924937653480917439035799661303477582976905918842597289666023859755436185364459330708649430984014470538240906262830886570386912025369243938297450805430701223554059158239225756267343958762840623764268908798734990367097186885421796296195699172182466377363676051864223831859761613221332746583346868954193876205398926243006540626101217240524475717184955103646813277494541443974557588847438323210513106640389480677838782642555035055004571816143776137285686497658147926470236661947382290157563270088539837788821139129421866743052597701434996487349720903988981640793013306423755936386186926982335761679071556325217854571048595841679097590995801814976216140388583985818625542234694409940125183761923887566976355535608230978656187907912352004315891891943848264469427516092077140833124854294671894603696253164436830897893646396175928496086708399689499794052237197592294830506805901632013004900964054775810050812931936170329655474493814675168115521364297053524022552665250458411129774463233342859077572727674206137366196001464880592961608581375810473645236469822263578377328821164613814244866707255570722494087560009189141184517505033889074767860427850157252128123862816958986021715557775020964048319938226290093240458580701790330381898901010946294849316237518234877734971574163283048249147321655888995492859094802235651367057099432074019581903291028612232771771810587371404769335386088932647034847625332733760900782358455076382716062518056867990098511865154176600669464732720769369776469696608316296365743846380028250694076596689199915700658951841296678462188340116771654588307036460952920612375096368857063223778907171930557705596131746117266454473702525070519419195817306806470182272632820981565622969236410874048125971243275873548759481253965225772040592976456951922166085647697766559033474969252423702762923388579096040620979118774157481922766313572512862948744052704694415942704232514486085886895595625286376030528269849792004122576349574635350450505489995347700716984242907067798486065860738764942976141467513173945801562934352831493294871567628589640795801044703428486318556397770011672790463183743427441174089536104328233790422781790259977123123055386059307011275319993009454949778493166216078068084392559452284219190396936587365238112984895953354036954633030056430431843117098432848103286350470393740926836387275664109299649580231193804424098573566166456008414132062299466418143040762913338275444166357360788606303631687403584464756592570723369606629845941156345223981454438956923581133520380914886512866227144791896554474465652267831967543935969277596354206475096373140793707931214357072614393165535199048843103066260840088221657338839502327364841336857775169785213217111098201609226643506129926791859403649783671040532434848102604831634875879304547595598310556993545141364153992279061821216284488549819537803116564554496938313251337595973946728518155877079637423211161167433083568869416086318685323745543013388287568309492483623439118118053993986025138563763079915929041585880020265356972149451175090797857050843865989279085650170440237917314743147459013769642751766302151607781261730833322272033312085981259499364055327341779051113891570883264223211791181787272663876948440467644583300787309090328644884730059250974316617729674238362661892290733250128394003258219342519523377349845835988960430633864938675983461461693038727368375518544224198054632500256938187115666385961858764263311454073453884460174176320079599727171728984659561954397810623610888399297061848674251170789048777433010655017945823276214396594944092317616482563643528139826568537276284262445858107680681794819041003912709982604661951270600475769491260821861936794069266227456878444670050615912666607407684613206190039164024189814283682886453269233160657170789901933804369670299158363449709898731552855116997653488863640922210498459900982087295657069015833716578141294957350542304297476581946493106298955830397427488560741405646221478945655311916413397474772373467030673315261014724000177612089319495379540414309193874669884930579674876999800540481554007846378425855780168088003669269151688415575537746375073118980591350363043174896321890149979265377237223550326255548278303375690427034422863249783733002909270040837661312069728646625398434581334936336486180870465232519635486185148994421954801538097755276165091702338422370539204793978572633922809014142414289307971831278763173969867483606320198824605449482557624714980013068459302603894084728266573184594881920250123563567549765336015400168006573726231415206933244374421275286709524408623661425007429426505450189988339039146702757586626424777812490293652210247553889569391427474078095767681282615228677203908717651204660815828665453462437433368174659512760571295259688133701403483058723918846245532256671843948909605117737892981704974332344443603353514012131735602435280906150604438489200107914224430806769121617195816896136921695554588267097461098608343475973807470003705076151637509622619493362583186288234539327990542747661805288172651778563905631505126532859596006469186135755616786704768559094195337652033195009122746638739282977233531192539605619710519996832540882484618899935138843259175181403513280910044877011050035386541562068470498573456514066571832919240361579517654772145845728955599855477862069940654475415489420579151482680561691038078263535417923323474916506187066323424035609316327538506997935494678801726302041976241884409684853236880069693352346999868471056115275317111498157501137105814053346981789148081380567888111625053329912669709212021693268865981268183212807574517946996481131277292751027273756829123251708262921774455884860935243151131571936379242966817867985814229104412711250853727552441850180435253431700304804283155055933791611713706003986993401381088149606959443450362218233294622016692943745821766058355446357040966690109575378250167883439266724635220357363327393243211480931208342503745864036112716506596631809496751301266347838190453577789818378123723885757089700564135439879071338064594473379323440893767478257058609307477942386103298726760258407703902770295702963143647599424043858300524840163603264518731089892799224448855436900260576482474986357062035473558770833403368290496276202383619205987014562071613666220322044707318514760775439045333264397459317566617338314022729191546372637862366758806838230724000176379805130520215031659879093782005750493526170820701828944821441783314170351930630957357193768432641872039719369955560501970723041156157866005821087846989649052896134506340549855039131550038021041492173966654376615599601624495567155856636859763724131224159825325982860256559551369242812057417993723040307506020516376481686941600557391730193360522097171345228003024998523319632407490384799105440261130491460841774335894349579342035150345975711304285013629954172030895064641078468114330346702430819614354799055538223050848224060028855546557450746525551928864649085774702656285794183064490661789397054591131360231420915695122393922939138370224222367038676458588033834279863187129241703096583862144538290511716472408420599759348762212045689394782326481213915905842797882967439334327329612898898726263861171026234206572148943409914724739243338832124072747603468666151642712765953153250143695621943944556023050013707786516103636658101738129532270605051231988056273355329921717756023963541204916162657491440582178313399777980258919625638783064074329397240577617257117224410286373000969797057299388636143388761792271325404613728068202366042726681677084155593313245951202073787245199939664374108717411327167095688205539047424595394842251337337861317135752378823344424205869833496514856419346009254570848716369964397076861882249594710767766142506484384250610749685024593426265770535844434208762895591101355389831688963257295750046599729057568273433149718650426609717915696462841221783614727130950517142046929572279886006854490110200909119810711587006089095041786411674927296873005390379369136961562501664167251371483273344707195345124133251173578097054252624338257900652614496561937449320681913953557920741986926229713267314359390128981988352169405297480304467866854271328742328194174287625709381487466543917120277203408167005987169425785091868090715288620005530760861797876110019329011119747169206994103720852196057963711321614942377585137569730948942340055065799211576273152020039638562709536795196926178757519943475045917878827295479068727155633696863991498462644396059452502788578667038042514310581509147822193195638040756499326396644242666096935084117280089438140761123638170149948401969788719295139769436370984086191917069981657886089110826682902765165185152065557883752896390903092784298030423732893880923879201513472930157979296359220545847168998273661098635382833352754483122113612440714128744698434644838495372985948783582090343740384732569118474927038723766706157577981757254942098301456060151357732575626940139812906299124416866307237447680748003126640687618609380629494919425317492374399964607250652044858399182713407113306913031976552717157764213942400323275786837605320782469151570466617450330042044469015895506866812523628199355730393103287093236306547652405668642591804075567562241928106357532106529185728011250816650586118030494306631895078928030385120386768003164997379469226020304396815624938381290262776450829902542054409066751115594829006286498274116601281695976949361649358035007930669374987078592394719340657441620584503748241918355734187127135495960859897698888401439136052465266938179689433415001030020210217108846923036059791502862960786833044383908076769557280238376944505061897061132698793486898689445994542209012747439188739992480222746543283743598089707436934275870754989019724539657101232220003276976621042519367164034093070486693832436923267957780209159663694177993967900962093104794801210280962255930515827609929151295864916800564909787570319695844739076777624087141995542705620863713821002111620746741523698279277835136442295217604532015306471476440271410441556360914194592206589867587452342245319773480338576307534189000232906377677173959602851244454098859642465987475911309571288531124481187083767198650783954573075429427188851956997448339942133650135012876054682365543466600323905580160211242643392304854976506080528954301954374976607302107126881994800595162977566739689211063856022581760614822062122306623947531393795905680377643416470765316458162136197950472990095446530955474217856844769616504621108491534601740973552233069330951920771644756068054930805085422660947657137209987262412453233524747829700994873145839686425477111613092175867876175829487174281550688716242359829734133559157205037730043244502150003382419320669912024268269723917008962167973872599031786852093380971128135837272170152855292826268113703560813865131761592641283537301949258673085992137762144209429135061532068923688056396161872651107962964710610844351397068314457609659967937666642179047678164840006269712373685849155410501227430733845872986056113911509368056402927786966051130842913706915524279939063569635882601784887616245944759011771255969661798178339550351573427323315107552794721721261337280837168959360130551562772423245174736849437702955091361372462482995834674137554891786265938401708459928414520611624599475819886110364127390341916223794448998434711100079816897114858294785841524119568780539783224440458089242336792436629256742877793249728684481715942877368355604953232732796215270399485376946504220504998005736595940401109614939665343535587209245798734107377659464234988740556297700577693146902374016116502140578532578519818007801080001145114824465161087238888507212284450911307187288887255300173318003751747811032791152021124040014003237331966683581680199098480165978256822036385988064010831144130980920412362541872684799586513263276301453725362117840541476576481098507783813322042303100680753028202402748887764394557681683610363917608100854219999442570765419562661162336217835678525204041148386372515050731070911166048417617001898961760957982420248258228328213408316006382590027223693504006703273327816888193999284946950324596542024045288537721080853810878524197885906400753280537690839838100673192335584500157402827477732492005427264290804880725834207396923646300735536262554097164692746493936976272472017347925651354702424517608021087230293524983242296716352956426868939280644767177434683472328732616286519180731230003463829954153435891946495489041306720030266354260889170009602833718695358308387043177657751826980025457546915911356320342524030745248634186328821309434311190183863303446807433286559006536969304504193086022684422547164675118954077322412400527037027652251554796050382449789323290092024766413688676750563674428544792600642733044117060952120754972465987907429133891290770321487392704005892407291793948419664073200626007519406440929504952784520147504367627314272035312308481753294154442685685246199647095508041311684407997083117013629638004628643258930964461776255425204971076675968319170333032572769264895047495919540771602100107773574305199922661541450255156239680447114891482520742828340955281151297684531204691311063189320362227131655093113301875735437258549331918959381840007561405012894115847473800683779304244439628804990370953879552794504418611450571491956321776818492734383549826924745989153777656860323693901628293403507583585760605559673010127977945186683326162870821174536891521289910606673283640209762763786601418263291162419715138545659718926972894083453643951325049141715559084171601749655191618786573201088390868565596971752982355792289978206795610952156498099941462640284522795357424257352188183307082550387137314476980552318751272351265882546926354621538925503082632132769085788329829360078649441635828170497905104801663053579481336252723347838174985623760828067266747266352858004886250644968115192602615993351412840570088017380950953202590490907906990585103921782693709438815973016613638973366161590577108517276320102182808307450634276633251334380815961880804032229840916393726754925160041707858271650155611340023818655478285643188629692580508454280566795252455199713596619704016339368181133686566518700618125093629484276811644661809596172958568222129381592437619359656349646194948021155594815656281869171893364299592331224433730135665539316556147797086704557648766683940539873394523449796180036033136089994737142297071220027197994250144639459149172852213454858337575760523296065862294669336483578321330961664545695557092959173316845933991178505908190486998461903505199439865418640590838718142852130441046121186963413079672843106483039651574888683219205491335336447322244619399383255865996910062109063548299887177516037252733092126849392431536579125698428114616582783185521308522257401638572357638341298754746547386536238872687566790817103083605702437156809955087756852295722219597693853044067894908900032167410403049880752841866992608809388191830836124689386945871172164631942146950508749683262448570340766621337916704449063958064400500831614772169550869440603157815400959358591492126089063272984721947773207869338389693267520970524907795201711533498117886857331514855824393265164551485057991137574965580431954286909588962152781476829978989739850670864961089019667020339510218056625047686305972878766619583787995031145694823898952448813461452340001483219012989739874847698871536409161873820054572339170559345161956667198998238823390910475633159932655418796187042723468375146395178999200721794296971344718377002172611619456691287878284726285827716809422977118614874486401348170017465324371983996787637957327720314323192943791564943912899008393154151937961936129548417072330502875750532242797086607489280552093386262649810290712724151565044270788016879708943004840175485141742822367295499194944903285289112936216644165190141667923333093403193663723051414051185271671567123137492030550247616270580143229775461750492326191263152999519256509048439204452494850843039717142942524014271659116349766306472215308246197518144893148770922933485970550565053078542624537340448065665216688305879046829245868944189980487623013916998820368087880182318717898391424291820528540176207837265886765978374210100674532193975555791003390534219573712842139623628139523922109129653842075839583554003599098579659481994965722822073392622131846244416331724892579008793275072768695448596137580796922151785095857647024018274330254124361229808315081031736511118807361583061847153509885918835946177651520808709677252399772939793061954554820623313356370742764159447382790824559123287381207585900073017049468611313891194910782365142194585059540346657110804685032038886345292628831452571653828029310660175872983713818067214689329473755984239855147668946840909662318002717907721768348635090039458217402164028338265209940130593375698878844611760994382150407844853123770748391596219929435159809766156367644522910158624293671368800257122867987267168365087107557406166623989124108555536350358074679330064037943245790756646769831247461994211043517844334155139544013344244726858666812494457811906796981259045173418423495701005587146296583366026540273860973702341370288302262291576682674694657485183372200465309797196080048615261800589600506058351850033989897781444827105522222802638325882141667847473782817426875520663802336067484778311763411805668523060459598668087976158870095817327411836174407232590720010568245523801772239641523300616185856677379961421146983121414202493250922550798458086136448881180596251491990541611348576959726012174947400762844499764808110084538220275130735798975751774806284610859483852096418588464762347957572532375855170216730139867826554813135519800994932999082469639109308620034599985094481367236903125305032402277671242792501032348942821773808025209089703374260918512535778721716238012764287481767488689885054634431890565321570575654289816654862270635308484864465115370067091528188317075328650455250103091726729902258360524137904807349211902664647240671368871232125148382447953397137747902100657177083271138343159826981493155593021224301240137749795442286813893928417524482724376211264976501842193133790370075161315563356765902303340589674527119712899725389782637736742852914777381790662362739480828475960627448439843324065029086650286256171942468600449578932543266888785350627763561863631760972821783177211356384755944590623524630509539430936341727313451585057892708076734373671886698281045577425139029059995207275102587962730511399935761663295352271812557423374210005698787548558660893292908878962867747811378139326992322162111693755807047018558183518398902496356588473090026080991114828106900965233253167266538800497224708086429208424336299923644193288185316960359434580016183471082256875755589392319143537473136634871766299747956402564044418035521226983964874079192847464103273476119261186677738469207410262486111625624623429441411392054277436227538001139831347391574059245405588382546988800081950335819970704853094031238525208641588509540551260181734336115852537560929096806507235703509980395496903082608981842855545802079917000958062402447417900131781682047329528994930292001905953836170679580004578580277905112411577454846381211638011734640259822146246027141177813558946220138913272798055159013831942506281555763937801634765699139723991951129379697170793818365856349477086744581165851842284431594861836252693525171576880969429168839541005207421422724907748157154754892998663494608675228001007006560433659649527579301276621490877428986623707599873947354545120865134167745104961097911024202707149015572694539160966821001814672219961506803978214518521435285665601216323158857615821443323027453418905172647326304381533802131750383136066786514400935937694185191760552410667946849393964156082399489619533089620316813957624872088450253741493959662021983137711248761116562277670290133676183086444410375873241576303192321655624702983095806352963026825283844577209747781315743722647109795786431190897326153672361915382743914541842871391199285529557367492957149725489526019866061221899832698561461990529046008037877589923910284241623279625508093054236048522655457334529579346516892384857838606941097838507127918524043719424925618174868983365798089173149077562752537543911178863822616138074557743187191911401016633763350246677282829291299443696540606915503990872421869873203652667459362838955928130321166515754662256201765723485910147061872456574876385132550951131327925870768157665898077942740101245705842553938353043961388124757559294268683675038021136987753376974543729867535186588938067006787782839066787075337740649080137513602824954171932281244508092878662985772653795690463552002315121601906808555876803730601877343278345159846267770255726400498829378033673958266313241696308333652202974360145959547493666163784959202464160352130581170722601946953936785844519583859426817693397804734095525980808492237296480887219607635075544480661771758761986768636739683527046568506424159333001246034301711574810928205451232698870093234784303359323970792476841526458580959972672558464462447554196959640845292645487813395695335236749895922770604446115996698086288497282798132883584526482303968377971326308321824008837883635627125231199528673194986769967786842852406011582112070102499156781931914270995262136026143894448807391746680318736425161324945894592175320901092783990794927676408909535511106956511877395740021030342597603272729261117714088695804082374630439992274742236310210452493238175513980114666661776820650663940025858703239661255642867893017309064939460113555245790823496223921130482302069372594141410393063818550915090679087101382848292248682407665332148583433019017595599088879449962794630270855230408789602518611774343014788367771548815971775726019878692254368503710956422316932151493337945574737839397966369771705436766274535521735233492992131388558438147367920259122265520651272609827441024571715656311579118454530527722340544934701923946538802167224153231220991922872193101152104159752664485260819032049046168398421328705208843218938733936011511763338464758714691928793980125214870395071070789865375201130858931614867225210409471127020011911528025487771164470743761686364854923253424842080176117625772636735295440925872991217429291766283609548189985892725096020630204986002336698380546633003227735717844227027765064883574969527926790540739973903616895361768396105824542686876271593298886509077850421923545436780561083332551848236184150574649952180617639398856598372849094156415565706191961196229077681365226978564701340706470743789945824836028578114205522789103344332992544710264577451241072416636165728139109483797678085869251095376162294512750385440750356755082132249489485227773622746782342489103360105937544075384492232749687828105207898042126720662561442285344938859041350198439652880974833898651640873242410685044784363791773658954785703870978463700810904817961455056726756114068634285968890322903645397921004141359610662268343464805692616466611863891477353147632147103250389095362094938048394881399181611480410275873184577178045287745932025864444581562291269558085244417163299634809693414044567931888492555258755344582518443255921319517506347506986273938848674763561917940103721923018359236544781843933336515186394572022740593060495426975307123428020574247950813650725586813397613102890974337948042815515390837853793629387529303061271037716687451779529931273424856429378529429584996054272032664551813787807550082045621955492799207170886144308890112450197207752210214752757223614121918347180885103621671217970900341298325789782387844711041088095723963993989833238750894036199452312362010346927371213667366238524071780929891892666425089233179688228249053933173039220093939185083587649209854378271729657760019896980696079361485051444082005543225238241694278581363223060320225654026117585429815558409166772054813553652321998464601402059871989722250165363709878103539055818873979519099420767320292900303103850034846672379624628068080414695285343712752566441882412759535312642682856180580633586115716621403808579641812380198473306473348913648575712262770457154826382860392720338942263142384568003681439781631305882609639363239365046154536775523061602477305355233563830078193730786209623693667994805901674035727175898167111808149565590073604790001935411941578789190135119540838635265708199213427092055864512322200664986980032333478136671147764116647638080273711620271042496417089547818712080750184883904727857040565321264308031190066767620152854457160013193480451580560186419699373933970118714115404429108549742113738419189180104946378649073401170232030840395645526022983423543926005695126527992734406936348903314517272795659249040637727947754393599394423766228636990023012625988520374369417977152085423520258313109804661378239385485398567672314696561030982038261781749021974290849891943395614147423724807074030088733790183260521362999405884235082950942678172066810720026375985160561011204098542062756128300878821119391048454427610303978236197360706990334647549528961137905900815414605861525132799351382155085454193766920393716601654577879504100815247035059885207949612316103004008052828010922556511795935368196013772301757338992999789498048128532660349060163332491788880985357327614377518763987931098144405551439034875091409652603042740824097587429025841171040723664931572418756026694035726189686702453073860856254188587779542456048581081535668453399910031263141849539952101016185872770943222184430957855591778671405933733264819069364175245299566286152100651957783269503122308460270274772253884423499546198633203052216615182239870538016826805545357088674486055899867455201144359996147503903487165385847330049804387092327537267769448721207340434701189327233250252579235953650934907093130157169937242327027404645654732868325600762293219292798856079690346098317617348985891008836793669791590097494466659504155325607984914078422041188094099107065275010990212630076492936865355075616224078940263883257513449891067844349135029384639091185603508368636757993112730777755013183235644566205271487008097021877453293637034456082004490763473344837495920598635424241858163629056097345065002548589187613951038451783678819913036040931222230195613614831343010295961648808757184583372645093071085083782659184180989414037256320731711173872533465149596173148846098686454649153618117115317065444212246319197800256969901829593489934042908250308536468490024690442097743248862769414493463069490021049857927905117028527080362502658874990154029874534319912865752194992168294080649239791384829426152500372606064411049768066909046248661253315194031958999334965715066105999286948667086697200038226305053494903938995268219605185483638345395141604038712959406407696739482224835785927829226877095350570769093808649531995794882612938984893202501745453657546646834604418493409026005958791256711744540560455258944437454227214894113662371532507955592341580112268726489266659330562484080042728036392185051282171264936216706259816106072522712665485493180695267974897391878596513081905955334140364101006803503792272108013363155036665657991175909172197830795961586140323199574326514308543441556420256462079419130684746780393071124366588503677242180922781136998406178999691165199573247960259924097746790288342928980716157739818959810035989244731295166030712924879428041356801698179842241832625468638043305942235444684606137882663216778555124950728984919418743333864936136327578286703912461440046386010540341294549184822891540400467788287350377743152080682328609482522485110644222972250659679295416843089845820201661657045307735814200623288171170972481137091955878872667944118888648750740898962688924968440617172495505717604613062110200156280097471845203448551896790289363453889705979510061832195901426561472146748797956073091549497920886906533676963539837271800713987226119433021295270969760829865125584447888442318608383495627763804003334392153279746361764063970075410846143893688705787402210078068683987796617586675587226324330823658178108623209902417783718015936795677150167373022395834065568712425990974592278026973032374523876858022070949475044505642122534668375852259509777943908606568103611047699436541226124728077097383150332133934682053754897260336818385751971298771415621404619357691328480956947836333661525149806550558349153474367287007824209666230704610116297107236601931844919002403308191736884533488525736014122240838361020254361268134041073945763106806730080627633989839996592571789097230812021194602846396028486024942242880469791041665721724788457728427953553743451593144025892644520785803627893491714938090427841316289458607593075878851362909989316753190730483574312090120951197404836783872774468099545359841870362520769511746450427866466121335293702505122628325330011380564293539763766059589013260853946568039692163615125121224005680825349998032943229029565963632437436058509301856791657141394277290937315240435478051614909901302130128167992705438542296036552647109359859527822871157500248636343275040669573494257563954662028921159577660471355957152584045054141471171093779763825184300139630985391949388216486185791643562261548715496008311663939787357946179333472799527977331279584243245746840214945054009229463577356268605766446994199097463369691831244170523631025100152636369044845395450074075645096700616503652354160516667853979806527835168776223252655234787366458892072456018727829210962992616546092681784133657370818831559965488335386796742378196654705699664359724514796386674461807641907420514513212863915598098896195004184542047715101485899601968692700240513447418729296100470178341360723705263309485448165960288840272301879628986975100322611411701716932861825911547393079847200807747716668157241561933607270207359513457318879578437362825584986670895576805984128318926226908514053376503202480496810722591846879637778566536753147917783411810843008018476777274181644497143291331998629433671699023711855589932467022961384675946357137087360751718900376084937613152565680203912504263413788545243914963845323444647913640714462458577971653623735568365250870137053800263643321547270360125552037529228074369080961109529836707574228450164981185737109408675201442324621914436886349397208372362880253546254923427395137113093282307756112108115367995204427666169251366643080703477241681163571090906933102731850146286399114498517873950939504606074758465354707115855126989191425979178543705318648369416159624282213488813081507829121919251255973624949903655028747808863253217013124483739262832501685639987008224053534446391461441193083748579873719103192404865677377324882147752070345679621065888286588862352331447595052285653160644842322783089681501337026662197845299702601802919075733895352841874106094212411496442295627617083122975852416863906134709416591059516826036955270543817824942683538515041387373105999561083216371294296703701439318666306845932841369966338583514827314651120506488674794730968654569479827574792250500079133535564618658993236603877690798721629892477524908180371125111505349415260784181193927383822583604640215696879962711676548317738955153261706061183802985561405338355937782532880047774617881547731645941945692984271849702979097122470560651780873600632923712329244334881509767490261844687513997491148175147863507378067743624798343208434329653420676316468239429683228577803263133267667205792689240141092086572626256785179384291301430199714906774857943239025762545383896238837779058929963249279277910493703550810618587408402858257439602540606784465764969815313945994233112846846481047949756124945775789188781916547618865040036415192799883249552736395647001862031847624605979192615838021111768602152907626924808812423665128920232299540335717615439100961562786839083313817887564348363861643516619838421105944246491614924905344606230492281882859290778374537384796708180146672340385922481409320558907916651551928340881878919527322206871516218880728232050909831775708975004367942551102590030268291774313390101493550568246675802982354247938204052846866738761088601028409063631222716341495264829841688938582262747320202808035096691736793857695480373040412077076813349917634592706030052227151252677114601426749426338391959232997905959979639580163991376369358884191842397678522702752804016866200996709143509091951986388581055681920088416969574085270759823786250637881028280395018834857574845740010980965519500894260213928483346680601455170189829226753508190691926199940565102892354378085426083797613306345225111756917267709883846107610593016751579248760325947537663406096602213956920909615213298704489166147926364573117724556598733110819597742160560213230662546217155764837149858434418672524007260362652339145450940863078561016251716231783966534335320907144988343155358237819497925662624117869105271724108231074079967179771947625666268514917039582061639038528544365481961009189304666846847636377294393021633734766723891982518685830826841736914519597099133482553476399251372982547949717086197480105080187344320911571899233676627967276269530047359721192184599367553129801811642377757562367804871714918651922720300687871752208345233930305890023642585471405596605167331609436057228296729217182774972468135403029025773915912134221758719401185266383014480061193657099475031691221131801854953020231674887113743225425823780126894569439448250773089358148702504941861461199520416241857071730970542228839040350675796302527181061599460002622163003769935152201594160547421181907030475164513030413540393918301734013247594128736325807964957290783889158361117716755930271177892852543465489452732324495694919670509202870457696154292498100609261599776303297841846480049941064340645329017097331973324065145457926264218804242092065767967176220149577531597311989139382123207048034668068437657663477985230696937193401189358825097651801856544120396684218037815647710654737122957103199449540116662139782531953711222352928806986139858416943295780816635757617901751085064198560962247051667075591839508270972078435821124725247479288956934996579254118335760102762109577824368558083115880816117284309700778253186115394493824694018923506090060259361190590782233251114843820799157958541333718348255869556059175830062292572396126792585620744273455467415859506003804662723096106816650474496649537830483527825175119485759976639082199799525186042819831326131792036726761946413530414668143804913696547161001362399000996833454993445897039090243939428655022488240882895429920294854624881302540357468127038536151130471507726299691770160455110600054491190969903462553921259260720552699250182231685923075578478434566376875478392020081990532903844664492164844365735053823138425555550410704107567475850987604493871276870103418545321537835292313174939175284192871894341860293354607474835282829793836354932463416142695013518986469769410147863541074273097852539937331662849604114778866212635643477641310740635774916055739542511105793237671853649691249703785929267242015769298767551747367102567899071318708369111149062657529756840829942021372063343934708955542343102438562999416260606248045522639297598051080786963055909767824606678464006795420592012711328428453352796906072118696288989696786673051326505920342491664573623361786000751412981211562440962844538901861349528205127080160686087037594918571131500980296237386197321847063377870098325648210501739433392016092767777349314265908338994608768676260923906629265786989317114942265474328972561071084351387882255122489346223590364882470389110230867539545021206211022157763823398263190026180894511263400770622233792624492553839330777982631467616282097599662173913769874954042815826262411483295916459300453684988376341981162870666042606059221630227308448882833442646587999464264360893569541934784852481530181488966437432097292748820105442555853079261172847444808234483863299452418899804567896805686873551755964956002925436252182359665596910218018850251020252405144345896725579170536628778784314883809300425052753935344401061789954701929327666699012673111794676259812607460766216351827602636011670670409211037218418055062754551473740298183711492625087856283854252864288244782890782094117391057380986244957909116998099984553233039755946291894220690836546900266481543155314151019853409081800937267808260452235713697971811130647952825749794583107893915094308540145322322399869863018714175629444897919080788896320857967230683130933865279943693119957847314370371464248411645855180446817940405513476258768316369882143276119980864952093302004982036955654721868477019490112376031847915254237626954341685472030285832992752841312427665043429694147631618035800211297125863362320781664317983014606070640093305610030566645098152377749508384029939669005844062264223002367118838055584376228509951266550465296037079137050945840836029105805487382854288963463063985575996083549604204167645016720281268516477770189028001503606164618689556261976220962690507139084520029596561915439908313970066561061803195447275753568662953752121513609194487756161700826330302619162351598202065446880949262718102663407473713955842996658123837847299447518011246905784662789686420044135952701781005115989108665244849644840717050229085574887170547409088955667572313781532281290994123677487424744867651271809394773400431214747847478668751833507255903688608212191298957398436949408545322615452664371939082615854025094551354449742401576372839640526594430817987800865107999761386208186868505948013775384786381073827678115671310518083104788967892609546262774125532790906693281282687568364900091107856627961833436438196003670444505992774291776211359916707224411601749582439323666845455814576567778630582239796044308195650309269261527845233047640574560759965606018405173968882447888806271493273905926880078096125924561274508690586003955852147625831854126193620614440880648224299165684818414327611535907074977973815553217179997630331697760083966508332416385175217963092095245000761823225294165201913655767705017141350370790124471051425826876029487189403721073768061969720203645845538427068066060987015695393549394708195762644861339471745963655751259017241985541475967262314958013738498399414378968405262634662173291093021384015007324290906765158869160674255042666150911408118443976967072372358299615821167509277288201880436425021592286053168310742298183733990621186760905250202787985266459932408693971387568173948855564168798254491750744812752595541251648760250029185636428713245431985628419144918312859663875696882063264689094845579522910140143340796424566872727530926771819952315966243659151167145312153309509927073358565616561788245968069570513590660927773363543134967728110545552886421872038660763209777422030045215039799335739290652019330938889132803533897793665778291325386655648342335289793967689382490219773843086224850524899426032230674801018218542268725651162881508679975362958121014203710077777400381777303056760700397584857033329129796840592483156581249030913728700938015959297288854795511310733510267122966955513798919872936938258143540897450243303907019861216099112514242808949721437098830222808057884369970918168910764287536038913317280328820090016733346532125310109215205819266093171551747712228283220651996705638822210287073244451142678836803475618433614612186123323820618867444812034407614003153417688414092071656280740226016523562411714317935882268187902648707351771585126597101290633034279875899890293507411104528419407690928617950286650186926640478384484448343455409084708289553768396283023808354649365891522242935992393137123301119959213111244974386919868252863777845002866450542617686671361016338632703845616256870415675347811158178013620374188433515377652073887356978862534624106229143844993688767076371386119805086904947474307128533844217887312086408752602657417076109979579831348425067328266011432305808666293516415255681118274540705612732534889031209855950432076818992461501361182833522652412970938921639620512857746484640928307766882712510096844074985354988865212610585197671547028746794537737058442185962992233292236619119715373154730221499359226008870362009425182132473741710303830893467427934227499149856697910152676344937354306559450706091141636658764546518805322442967688937721495544011471316768471797790412666126197478710414512760227534934946788297095292984788296715044371512673985422701572062251879658280931781888739826826817075997562170276769505844011082280807904934640783080587758359921372727594496259429955692211709806474044518444815177231298045773338668005440255679652503385443842293576813966069788769308542978843235094684200109635913881297401068696562018346452298144899523279199903663570041428006672667393960018034361093485491145482139487566463553753966597636230473002469106622197578303503697888300956128180670250219977259216237227757375091553342069474429435084501729924464148402455425320470834297263653366580586519102898519566839359511575677254665298722046743566323170398995601434664758007476818028407792086873006249880194114666070065702700694025274175028855939533727526574609225879014241650562697703713795863507765949737177252363214182670405126921902337508700724959659759399673036287561048175737739205931348639892259255808153349387121798964971471765477861605147025818147117650163059861855677211591951588784303589298751893892733384774311258118929216892498744774459563059862845825368992827638955702661012289889566519619853987665284913668590273484738027464010529555049730264222951742038301589387804826006155890412118124427503940015415947247991127420934258973261386692757496540140602744882616124974934682585079641162104767639789715924594096014105927074369262156308024239579934891732355506728503140884352448607767016025974980378807288343281447094418993644399806976511685975589848860123498883433429060472586639448731173611561564203339539040995572084619985604829919955038935378692172293328942264815643252272587087085262483302241119902307742342583801776706364981926065619620386341894954542088621796115875005060904926271761454668603263409532598678211098284510950671466574297253862009326224657078046655925736926114709272836636413791407284681301833559276585300730894933662867311718081774334338151233758006291215971797304535041301138754725912394895581556576561954913766476797080543165981994522085470364280855321421154859846850358763581809235975621823403253837792662882994121854838331785298224794542732734663874306902834859744282872995987603945705761422920165426157533206015922772129828884192755437687019038582511195777526902032804655343933474836720123070708634031639732808750011311553565268201267035065016108249929966728419008257364789798728096531732085360594487026952981993663509349677849433674641460231140249137665964889273387266262722544299465323470830281538505008356967841487211807240485750243912064116926472436708512008146929101563644034547316752963459224406176029297704186542926274780767362689218515270832442748038032649201122409081703668584844768800871942293675105541423758875731032415019506082542577193474719180644748950892475622834642472356928801268305259655014078117302217817742987996982431596082031392493240621521616273857754637623708067370082157293262556522996858904259698405730031811634722560275073150527594505257806417361133131554437678767683984893129939286350315305178939485087818080557384490145971705726718809445723570824594595380913701356842969343860772217385113509118011287574315501987199265637768903274389242863384463648852804572862747079670261408836360848974269959350320765212163972633471661934767704820353496956713776352503483502770952167810155431159179556596164502124095218799604621932190252683992384075520265984457517158096926988314182717536455710636622071083069068702119763480405408450546742025261528173115157284075288345547560217534671611301139869167973453933269652547074493334757868993622779639135733211262084987575765155039874980684934243679612220168538551716527812898319992701031305430967109894771550007732990339440914030794857898857134749237791587757760504298421208967422267149218867637756521773653495476515381530361874247830100983382819497674898513210861392233958035166265057673187305153301295629169719770784461900917246343484154640467301514108344612530459121130507668396102472571940050023424569927734742891866859367514290540911996603477988475066641232681679786503688281001704779437682333932965690044846367768954721353479376062546147489711660218084347914731246033405690368608550421473880061529804199323609519733409119653188966714643855206892287212854193803830942339696185853671394404882579712419628028145059324114562556682279608104290106945181790718174328168293799944139839462188060463974142071675769060635253316340732921871329312095361894838607398650249023351908356762600989788185141905863819663803562924333071961846760217998467152954278724120768713225786564441019272825561115478858480763724355862085513614172986093930107065112224505935790178385333752590215750183551682951380314615192828127941539590869665675972502943476597183215098137144610244061156127663829749793946415716325978816526351249667880567444002390903235023397388777066942000365922417298256116179960306776906012810234665202085666872290062339036727903852117498228391277440150560730953840520224807708324401486861632602421958775063393214307885242743403418482607424624434583057226900302487758675066382090126984053753127494727533843508153232415317562860745381675808995970239777618212557972285665114929686486292211678410917809796486309783602081657867258750632451644324092316146344069049339408938229672439150334307810317074575985909112509198495204793005921582423095301573830927469261586356928401174770410865131099871041050164284433408265391221438106723835107347318287116680911814460370210627471020313363682506608297917410613416052258882362810234555203625810819408815419377744503039448342567934545624354060220724381220108643403790022992689034560355039778875186162538076451995468230019427409452562163338662687237491271557095785369905343654005508431880917706337691088873016980588670567494876008092036021651974516587198549110112133326134774396005085329335007666757574057187691389667312369077058171371343356487042063800211255224519904688912687740894955099302348890574578618712401362133321960029251935376479944232741707253976997315427877696915508307321905831951288627963097176563938080957619762153556131189031988229623015028151043090066943919423652107753248743858730230144943952062917238962996190531146422587943237959659694935080381555276556785777765898878691283812955317317668696480622853757195060736153969411920924965024243118757348209121471307045921495802960174832064256786103561187956493387301595063560247183766160950711931837168296148748605195473587837057798312090630149278453971294042349174929352771128007915408557227911453088744302835482169377813581274330890229097373914457548633883737139766727944106550989555015901046388931062885600142041522501603456953353283330625027785478880835925299293073981347954602459014179372530128206798875178071921218583317975638891005113502447570846095884372938793832607275718218297981174404991415449233687832305703786576121431556691765809573415840474837971526719771000012032208448763327447469548529639686911801744276571653934761433572584330896722383590593752539671825145605517471949953421702443886101329290043680277670423254493105268330973364963705797718289868578044626241008234126625014975814967765784073238563565459103066244918604286825893746975926106975152230576503098373394941652666243947802141627513830539885726998652596898155741929452473734108112549438672393036981960946303482944353716899874003677598106364961182661780098248708688515140605013710136864893598472632912398567330202813060970912365014608067009326875930052967324964021073832886591288902576030234902850869126434192889522500506407175704117196922074476413414895747860377528994816311441159320837839745762194372998700220772542400112890165889248693757195345694949352555475518249888259118117518315791256936188452765131860619096281939201102582817103289168075711771846952574483163908416424211316359898286522406980502643142025254640467851745379943458669085339908287607605638417552240215299584537040489691992863777961446641144464912040219059484008079463530871652291259994408874214453891118411870958081981689484047004071148604614226444887599337594073830725806328817112085448246974089032715565059634698885441026540541418816426520235175470444445972223097320740640992482985331009512434591932526168407026635014786640180096866537542682637415982589949861164871911009920701226773332695483349860728938949276073757532476593683963179849090099909333190631531986271810414789088321559222738653424450948265073649517181932635221929379075894628277348366473531267598510724448899392335059264438851136161124347157701404773120514009409406709061601600263565432654458395994170653175220580104780443868897078387163180436862141012625159652406335949747446686786812479388765409663086503995051598333122928967012739749488228915494672123667732534377925622694125380110804318992429372441984783412818269254951148025620065864312591361735978879237434798983162507445425807509531328764092037367856828918017903411487365942340146871978708700635522830668365221271368554729434491130569415894166023520560310550226956911006346631648029165327209554950917135675623829868583040598902851849099099100959858426119479435401476906974195719241434277305433301436418762864565655533059153860890396668973561049200310342605341792538303556059913345404899607065764794013848997506219468904517633008309677423774692177941443609260983448571500731153443699568794540526620667102069487627056259533321009102240919322267554023654946023383015592697847305908904793732398923605261765177088359103697970285970548957790003327725348754696338518799079343441768077048130264200552251562971742544816297466723115433138182100482473320283605007886042243005750420994637938824497554450296761899851919224360086311490640339075419997197001974550944301663331968503043777647185343632658642078610527832497354363535773962200156514535329168695584665692477522034816552918958313158864018918729884091396764240350484343024842160419326804626918563828990687408972852907667074493966440508446154466448229323114455240337518025054811470183096562683160823478722892752912623202329911405766175247822496152946428383874643948228582124024751075885214938478059216728608580562344712017543698757604530211279835954316077261303719263073325998238925738023909966091192737072008112802235270445861155127097333296109683797240712374132063108245820867164728065237728206408683550875654415548746351135215451430225158533175697683778370172744134628924342115636104592356341240565217639528482659763207237160510669838546186509159147103572513116464654057143468173849039000684450366714708181331533147991667043386674020979842479807485680919451824106554821077321487668181518499869676665213950064429214975056743709776705905251854632171628008818369218258636716221521945839866482417867096915591565536386127113593846053743811235805962565800108118769769688448433367315802833943369156183266646987874910374682451598903737637062607878905547757135028137203587191854704001205517688638427651485526079489445214371261706913928641473778945873955524802878340886740042894819147198678717345317144531540910798783072984521744086950519535042253983772530994799132462476135529915715397337243778601605447377175187748000126787448622184895343536419040147535219874490592051570992142064490390146309390363022330415781694061746241089123746548723609917064375064250360538088761002076497515598569764810202912938317367420460431579611808195300014812907757521154665794418978705086076614099662831821418815675910237289495158318635679575990277520309179186632972894718671324569014084764023937942143656850619878150814728248454514509801678265505442286192286705062030694674266561882979583784133982276819974696834278699751632479036446475424738934084722440548726790723048640946344007289129218218585054146598869248636562414342031846365933133574879719220168538696317555513204331875071538406488035630615445632723712860845769080535875300148914061902234445512844246914384304331987536332547891316563648769571296177755551260141921487834533434338220236310440677987716238851341728651670151677924335831211906019607124517489181554304429486758745226916816745096658576573060707724136787281824153817064430007920772625524522106336880509217995100314400772511472973064006946048032094272053293954433179653628028175727022551456842584049234615638855454538010622556581913749205554823364679916910978177282228316029871811798568469330170117961548542325244494164658692974679305814713465684626769566116812592825234320629552759493493942781752546964320022811300211539982183644193991230620311353246539353684028121037702163695581789063359270325591641564327890286670642266909598719788463592123535872143845804882850334611469162917221635205968565670122654759497289387381639417117344182297877662457823913149875345434360126337492461235359768716211452847642272481193687542442989493294216786680251128101992814657184783710581761113408286170962630142769985024575179179297902552172578314030987077319457950029882309925975966587438554204920512543378540994831580339910248412023398837260629447671541145746153623005398134591114033005255654299954813892970639680814491133332508543946138426563775818864769580993169535646380491339294296262656149040115707772420600289175594004060716145987267505617910943331892326366075392142513419954523624143473355850793098471433585341734660589093078904792801784492534726967890840081025404100055335816702073613106096402441548144368946159279155696755520506313938552834173775784068554713206162434058446099503797022787954443054692973214321403783060956297252619473871346881104772043668343542774291566999342747920381081428824622628576197466362668313772528794011907171174041520212078609880602030455688955889705847044492683495464854057319438891096798159123142592467105694327584416101366788895593183154022455208737229995324832660856841016127441838905888887339928030808825726079810202348883635125902374501949619164249918515372781689717982185303375996612235357346502297652921215225621843956355028821797082420302663646799922221367456592148849498995042475426488656163001532971866262714405024012695108481342582042648708485208508016577303535338698062710938587268836859282965082453698681652845166893657092902847679970219710612084288765365339972028749472130890899869664074635856286976202015342495364599737987083180831779354534811212854201858148105199196450361929450400431209127565778927508583667019931205335087246724047428816939725059946816694246449614484449283196276999183900844849059392937500817226393998424815464842498678281828281026063536421507017124019067174932575491813840328297000515074309174773978583730295079833547705156071402101930661068928277911437787821949754764461701686165868881026441918569395564618330951768252798267438065811190712363875337294351537566421663214722970571337278301610128297900688753967998496544900654694159254344991387069554557399597876324595204846959676251626734437948325753155350315354427798826981639941584340214722284536938356558944188969794055622251924865362597106999121425803832855106449398609378786910226442315831240923909648968971475796644346565544165975283805016460390840779985380922928414982632976801031985304926473241016246564641607403283681112531163510424047234186080159779782550929679168752106250461155761807840626125543553374451585761627857485329242673816771260700234188895041114592683385061111567912112855571456389425393498601889604926802951894345712720532486621800630943735308959038353518396374583855486066783126426447999052812173552462145254571050327782925647931100587657784834874114507839596066535060764679172720591368516541397584618918340313603978613354874899571935857450661387801132089064335163560294423837257153788007123930685003234687527681601951077503674271416557471918929646125352405393511636518770228519184921466567956061462837043504331519837699741497788304027622769795922272713757592159565509841468267493874556459551823895659713777362121619793812177953669419165496650535752084785285857713876270795196822603686906439384801816225750534244764068785049983770194545001774075869192894811098423840015121340801226397880168622312375478257992829102799739528741819716069562239721822558954858906138059201456388384330878120979702317579531606800343089328419406481920947706469388574005165780342203475095918509572503209833215631751583860211648647021559013097058175768016376391668666090161942480921202720235961726750903946833175607724620868975375358748612315925480111012543275780335259956793554755156026158411465740340702095778747002616121125104385461407496026190738533979709748875689772390043547541352689640610468604267823574274788036920959649222374221631462940542765278737533598861363678590826319240399195939568087576448421338152561642561629688251767026513370942449777103230273238691490830750500293727321779265368988478616964067752801660096255874245959512268741617907361371773211037751112960041376482416021245465068330486670997304449208800797281112917240651139259147636360563979587886364266365594750191456197978724467119212843784306555529486817658828497008442218643099525723988225997514352770754556919328403547020785061954999312599040758077156209609544608947935074630389045237327071235232578540425980682728858643917880733272314515333766054015944343715106173923927803101336793009558132036564172878203733307162470369442451763320660527781723690102691195601119434467062603650672942023381958491826634976862251988214467091323775400332341946072500269697842320013807263189023865733922441674110207763244874577747233320322088871062802629945887955401307102487059649540916251541644172483744534380643279826392400928342252302507503047779930656423278637786257293913722686112548027070572067656894470394090686548359370798949459853416984893072650899343989541931219719676986028456703157647202303742974025790047365530035905971348451862451285964607593450004878141270328026685544822809411097442530207024799176908446668564075599040740915897115139817979146283885493129745557220666101821898810954108331513374934048058997582195321222958536862136596360292614306777308043101829539619553252621880411194514914669061937847401189808357720847180039165832411446255267132261443582840855753697807125362776207747951985984956803949472490733017185420690480916779689759462557775024681409392025819889219342870951118002268541682013754668386005409732635374474788821472323045071347761406529887520219072453654126869245917850648781928598164770092892211536669381642761025745462415626918312961560847534550544009053898561818621472887599131200984680593353229776440690674612845092401739731683099279825164167834490389464140835531430414267858232679594636528172839108929888848237386062127818724066110973984841087878874465864090419071387732427149754070632990552697783261394804618621579273754037293716949823755994027333574336822311890393272285321018803768097394795687826847632541086142644397619395522280201218894081902335334973472335255862006553392778239204528571621011151966799691307413497831330365505448409095198004830260991918986758536228563269051501428955264628403334463397298237738416261696481087946072750779338338644484788100394781752479774849584540711237793314363005108099579899758282820126511184620738504485188654681453124967888715091468630369431863447282541465140093322096340033976468521742230553945954410205109098244835943530385193851954351383646982119364233151907549502354546399107207299107009873897891338804757980868271014443409441223733539591552953595516651803553756091471285805960327594959966944655931944628319268078008613356027347446071961984048283492731552751756649362306904783949606818880230997862104471851743628947989169920797477436049689255023051533754259305353385624870879477062787115501490954693082907754411868042175492438711656385759188254551550266205464165660645250263782353181722842153923435512826793360277627492235563372515717324322137887708230349423734769740030550256412109022610542595478647769046599700941808289170439809689423885883649894970161754302367927624570603074893711886221559861646516388292500470753663492948603748668849792773188413203612225255818696929410371914003600440674889883373448078798306730050207357841855470445653638724396588281085338724958398581890095627459052293730263741546270577331511487570637971839598853492886629831607022491038905639861997446232450939432553832647290173027293066913531503864199834691868232486687210124074256393493352033989175208483271411884253245603333871657991674507618145788681724954538825074432321213576676732266935082252570693726702920901827437284827158354670567430375092413245757355611700050944758257362699993194140017630037611739027798408030408363360174493343978976099277745959560982628938047228988333132643769087323222708187991023932134211147028507467233671885553445182831860531945642788856136633295137083123038022389885320214512623771361475304692670041504697441819376895736476515013874189529684977831831438103933929771003648950158245600092694048988291829088256080827448260035337195084544753811918939778994979083449512942753178936771359374929348674146996907219583614179937256753821649220115388326925631503586198053981433421949553679362371893334135141597705405331379113193925412986903182041437459513404608579344249145462767650950583927388126503044680287789070479756812424474861030724781772959714182682142172715275604256909463695427582297074277808300987621529614468650160130343039022885471911037959353395737866437627543875705297812453631019959841521966936669213560287676819282859642317347555050427750795719271881662023642127328028348822157961149787457239236985518534887806301287824582015569243670118540106957933601310131414298816008972575590601952228467030653470878907275268181865616774270097830126891962630069027182628166027464779242488675637663382542823026075404710000424086506377443403316097758514484360108939948471912183306698089785426059831121303719045861660068132345560231092328484277092333301276273301372721665644385990572780019949030529966375583291287282717049807472413166393893913129722275474971581064928030915984686993013424252043644408197166949613072398241795249727288640407505891795359943277925165719158493990768330581014220937080122542359356785328156464243133306860809304460138335090380468514569125074316845247952915199680552561320837294107671324039765996036508769509672014395395161362464607892516490321026542014550002392927305323596383741987261950270797956260731019158915549530647998115867413792428893937539364812683470589316333130002761593004870087781079628152273210539586771679926078679208879929063917550726238053199929187630565937247944694050452726983139867692687582805354159050933806607901041684604794434422290622069606291209711208422779548509425257166695286589673409037731120711581277875849984596556462405873181273076000777880327982084276144725750227171007743817485122715398798496664605086484290859792375498450381839707599103132130329458288196774673538818894357106369062549670870417128851828119098235730051236792482431737589031016662625032559759664084705952824340659339719047109448433456577242137976018572568726232516244858703245905043618098814908978279508025714032897416209907699957976342570456443547862281063851098305624141549662243340419004605216794761911103173210814103419074716189167389754163624135347111515384674842466909639464522417265876461844285034813600265665335791028624595163856340935723527745163525926373540767280988755493689751053845185244030450742964553942640580870654369868738035169001815870979540690193824253390198076712277513457912600932658701521731952129751230003574940448044737948609225925014397276998318500714319650702116356995771635736812286115722583108602690971240355039563483454647008613691159912027548146590642559864819071078602722176085190771623453348863254773648773171690359433207426254083772854383121554752001912148330972061404180384727704713965743861040818306724034237636203122139126008232756358618390317189171884350543650190301592720388248114241884307446558054715245924321032250290250031590812826529492080549172726642231320227763771476291148427807655099016174409328448452788837661835658658186558948554381758262695967540813612797812864104555899355185043064010685111014643233849481774125013255327429676362996147733507218049457893250825453426396427088522729500566307045763589465420692963610498471398521343369955579270908999663407958032152074805962745307987800605009324807946039098309250096137714339843497959822638027154674491453409749285762509842482735227726537839968403864947161234849890469953436239854761381053385215170855304773016611655222040330745888622279503411083225616633199408527399321053500437232618503861801177553806859856553457606198901707668083630950964745841920262177239161931704839587525973663654581781079180768631467137455225683154555259917936311887715384243304422465339773797272385584205431414339386586118589882570491434735565661878453228224564299576490460448993367127974832095037410616331089222346134900347110000229961206533709995651094613252904590062691394629036177224232182239497217787409511291040810291004282948649902836159018787076225648103727458529001972473803308394482378348998812073483033829173315780294192218874978757274202802435291448097910664488203838201800810447407559075855905283501699500978011944327612302645334722832644559240016476076693003184612241062489733189395070027171207226217258107430481177989546011040379840609823618743459457935953819152119458026625216824117127763447934088228883581004672526037305669231192352864777340403935804032412961893629466223005415422266307231566439614720299452538666798585750754508161203001034489382824586209863168190271615960535454087478332562692042406299254037383516890933511880312645711992389588555261809352822720184115939989795641612389503383681750051248984654788463568574059684305990025916449446376593669363911373998799605564427227314529312460241848636990276014524726151633023324738483640260812298957574235156552443874868337255290550157616663272270778088112034127407322481471164667669355808674643290110503828375978744403194789607197268557364373773323267946149146338545998479956869553271724374324300155001541145529504453099335948170561496659853528862428446945934740325738841452646321435373365268725865578229756491292754615180503911462328260342578439807706546114464567033024934011017471156855003550157392526815390644170235136100210744984034510700520828541874545860700834083101156424581350795193648783467249235405794865926409990371156030914096222286526228904240258975330883917970616067299365612340677798278092042936645702255679619532409645892797488151124734956626723684441843472682847352893793306316150209061400305737681814356911775535235382019665080515067181585740863404176368102412401665335018819551282096887712120260228202752920030593329810510179520056348037278595769085069211897765904693408104128752527704995510681797391676279466178283327691785775497160499834129669114294274923800249684876273919126935250369452294967623979999571247801197641689407814712748656884381948315366043973869189364678287882153619167937701825583254887518598121423074099476528751650145576175232510999417370436166257027462966032183937843099781611060276569980905390091982432362342964305250030631750394070652096608701411457402907645903257247302380808698525996751993148184013017384182509515910564319497900668066552715154798136364841324404502163589040724222571216698894703126740096348316364195615318580405995609596828254401315298182134562914149485067390626662316337540124587039518450649076977228679099258523267989569284795798658454541011837126643722052375436688328046906801906326052142606354761781379372466618958409499202082702544170306721179842727238784673512880649521750810030343292486263395724839093109451194014858142633178731166782370343579559013980172666594531277134186519799482244759776760571856389205221969653200111722346170038197936252796777205312280824735749005418003581982102683762666425852491940347978519767791422087286461595100134412683195977020281517078901665450191518209484493202566467994981836647375836799776941199489314692340479907435674589687220078350393982233397686394291762688928298139103240784040940221938706073981048084607525398167641446563765901762913619957159267697178799343850750109435189039063620539687503093885543636135643037486939066901334663633464205618872008171990827453284904323958136522556925109068069707415918683137417631212579822268076284221511730186089796308551270582599460761321123740473486435256583513877807722309444121034965768885400912898045464705391867525210612433278236887414583995919506499843504882821463644915035531351071692486711681131481324778550235166387359000393299839732148634848455850828906288288968134304546415228142997684058915823176250433310839585204445780106949998510560123321298963745777240860022193196212989363749277599919630415300135953934564640449902531145256411908759841746403866801769137383881820693354752484885590830147543643288597939439615743861593316555361724539424401918744975670074606558549372243182828808494994158848677051769450787658794335860796361868866675845298616579858040621023254191436586056639493758974689865208276256507726555721040647614931758617142528811279700065320935022788500254344608913240571053161274181413025919312161674413432500373411149487473057699476432790312249134323992220283078112049711771027929919580993143272007330750816357331883395356007137015475088650091276120681001551644225597491672326167048327908387317840862552094610011923983560082870478158398160753010003533937476878686451078553780591632489138658742493222939187515485146487143190514225858887592673155832270812526510318343107560467272829951458419903288951453581619399740871298426911252237265112153267827437807086330688654938667024038975928033221950874330833039176371865708262969676395792840039862071890224277084166850806058751655796415419186903654555562823704406840301955590750159396427918033965851020403572846200809181442202946180962415303644772367737648106193292947812342514779948756175374455950918570480089019758807874178327261265424371459874336395150898101970754518812181392134446057844621848878047912429621842864380216637097419858798133337208876185683042693031474120779101547029849370649205905354121419518461607683393448606972304142560856744032582740762258857684742108681724279345251408348334007017170736717587596742213998410469770618583419359214462784188732998700078090565753620728218585033438508468500234192618095029512308856944784079567751807482564436351839195716297990658456775113023132300201515530206124317347741733450306625258963306343776442811746014619433887874750489941383942988685297945719535870494171247960982946120513378810988789749733545181150852459150084257591367408070490265375168119255448681491467387303691201751137442968729930475667956020907564277360267757457970385412029571464385656386692108385639216111466033267197465437393106072345891408892991474736761834258794937268054223529472727934536203287618551703757165003476901049920037874643326599686561724968051303084242764244687952833588581234854427707375768365576592833093146784318479252247390731460642021352119495635742877773187020727541587872785658656427920972368847626402647632574547293191257240550097574554393438238719029779053660294282607678101751565214433406743274353604369107697999736772811401418664297436750985145887277938768560376901944166563938869081398151371212585711813699446492158530092317524664985307370001812135964710866913495827280702142565199889134551429858098615133408503950360231532602352952365713471901424156857755368543739960455734973982798373618433608008106302297744273238146365157420369373386546009737339255262019856341631686394841966864454125298108546346254090811486993189136136449746659546215446485131364143417553036567230192315382123170497841322686295984230878529764263785975834257979818826868496557947686361360671109751659740100982469180470385417736503393446843814802621431690566519274173249067597643982965254521589869099882818977050730578387406788841529480592977679740053629271848955672175506207242390771087687111198945828278964992007706400138253123939797945505470854040111951763241469554835769623015998866724277421796621216405287518810220722461480490613106851267282114012941787404346392107693643021367864491461422419627264947810805442675419073838015977022823634964248541052226072623962146699877613237570371198845108454186867151834846505820973792636701522270243002612468997310005487694687616642460034656359294579712709637710676530712009403416209840979328890698136081395696465164348375553361035506956419899599867363005396661920548433056894945279032456909105775955221422233987870140382835146344361523830239693022621933529939734974844611279088269499871299631206941315118901014770007507832930745176306100257524060064727712277075406076737556531341265994221388695279737931213948694598567299570618933559025921956542219818346516643131938886195333500294790547162749810892276261376738840477512206056231496917007813803415745938840715248305314231303243342654065627624139713961558137996184340978921414548975547978682694260606449147913391023923728429525633723926355523537674129008359080774597665921581363442706091438082143898218628262510987023847684420542114300938426517855518993484378404774134713766751165400169674552603897355441429988761379871070528216658869429232669095737768327985107510659618821853637017958103525545299725213629817564360331231756753435984448302784268779078166489693590130025119852193498931621761711429744252146154354057553084429345975032079943061747846522839251656144726076420261900157469154991258209874742631756845908277418373555421033392339907193274207611256148580523944158958685449168333444606137809898287641771655730262760243883593566599502393320825482241714540441498499102857127132582160254915600083118911204271850119239071695764558907093560886974109956349035805867141458009382040617597850145333128594576019989540682518065809842688842183934942560405660729586121621379572281922682759657936529380230367768342206166716917650032588845705395907437888731059315281644609493055759739207720517950485638048935819117463885549486054384113671312370557460995729476768515304781222255686022228656137265684021233850748579365675234195533113424305965168200593179379433379568445900734032361720772634133962619491364391379128123981098280781128383705178275267631077612186448862085755773688082412158022018998019364817105938309833359187120530843677286489614765727306825811985690139149429743797188902459206508726900880887069465646836665724872648094797874840868041371561914779596813812724734139529851532959071362270423898374840558785082473928475600026184235529820563370916793009153096876345332171232135189475893139857118142464329420110277857414701070557121067400315644864906423799779563279951563394716884648263510425609519052157365175087937683546136825361348029969551304523484172584320984827030115002823954557072363494854747642431693911954879343104112345165762854200118187589405339836257851872338944889754397101454967912675705309888893497660293194065588307448597650355535789789467472213227222255244516449685212670371798057086499144807407160183716736575796117535657777397717950111822193843849216702344330347615740228686724969135605066738877496624150455028051171665680572943412292730629379577226433428934556737931850633275258761620214922304695388305777327666505030304000492922356793494755288778813156637520621782372515626815935898269289967502431682578401040803177026436310693389973184673190080684004873295706247321892786514011574010895953461921505694818823414826680724888920976166472088890062714413292881347960655589567737647943013042599682086358092249075918148298163074615783533647592201918161021311710791423337218989127445984300310802050984397189091040096413636462515699526194786718644684548325802791200132916440071448717378401670890600776342472491959483962843841478366859827720876134980584340400867856129417576842938950871300971307791681389235563346294901772499677364938378064017285356387316015092878906244147271991062182285397853020373816302920450696304487600916331918761621450590893412560971449089628323179490943658330894983834665883165962366726820788004154957906648743983969822921064473401084727636532117024839116448523343350686549376599966192808169944265224785465158356704021611564291565051103499472317601675936533751151213000569740943110185147997491299059113701247465060237897769124780339488878157555227789316265028476370022822233171716056000687386947971577257148845853664057603155801683484356307878178585815188861524415626606680311634382856659843461349665563978284101108440588097425401854906471255596360991586841321795981064777308171504866464785135011829319067371692313081394129799846075997108206874401377788287880245479707192186503672906686803691819647961762924417420170725487244709209607442145964690865857635662883770733618751568828816368648413280395221283972514629723481444382665493253864290179522320737878029644502026972143320712599443227412147394951846889622739360207054485018304396836647923971163575859441422929000232721801864221526970522883513356034154807031065253405965779878574745284889718580203234869011210520884338046539466084995005921048183737905635393424334142818542319666147115435393261930165197737936676432049564572337953552497662331067180179129938483222741606987663183361185885130905687155148841093807654805311707171032337310323401604447134769218676779940972277616626764434736024984417508074102699899439350902059554163478998943086334913198358582143760865577221615497312785715448294986962194694290242759495510103794632443241117035806101886529389046758175943728356568631334515654628752014127450961748181730762039204601709834814305424946738799093381781308440412864835171187533737805814203225074128532349110842802919094638564791997005209644578951430045083383916495844036645516372457081119196920978018469240996157437572512581300336295741199643899567296361566111810556677484917190723215048994023014164286792179637614765761768620093432146328249549233440565113137611783791275961035695609547387883625354425048071396974351459488207244854777628496361227261144181036168267299130500689467723192067747581269514086646524818540991738396619415132951702242852455158384942062778915403725619586871875997783799260217442297784526780491089941073391209548337920143752549870958551236442642816533062765457791073158162509544926181559989351374143544645709549708987126437975417872896659523596476230510135026094914219803833291859963921071365028631862454943328360510473423399745219458809759588919063317803299859843556896107402184339504719866178143355673812997072086737320715757079508373804408197031963151205928310405612888638411473694823248387220719329469162895819780152375367431542021540900819182060492696157031713744980092825726826643791840357481453516384088703365360941316591843640546651945757679212194224438310313844854873894135849572565649531539035667689302386657675642933180573492021266313120494985541220087229106928450374343236631916298050562024821211749055794295277640818531132579110508663040462011586025827343212874729601144198129961291673863269485971650796005382969556945504683920670905510632291778158384666967746305622333397826286008305694127616568379374230579812092823950896642384092759728584038350634147781775329684386138505251286381680083576787429773935763070707526637007913726916224279839646435695285567325674399156715752940399723323516121393677473323655148094371588865553214944543724759476187627409195416898247728791996256062429930092086709474087980095574325415237757378910048530222579655250440638756632501828735184313109332191632080078784426026685643511031036798604172113458795865400831785759134736790247097742607388796450564454636645641123360325496068994012941824757012419317352715121447940677409416124225639865026951070895186861492054011166342554283384993996216845721045109359861716130875397801202894239828907129609363807950867813619500364325510536257214545354096254592672473411718396260348964373391675885749511688991074106598361547516947376869588448177596336487939913478966284419634352606802908432685587177722066333815985266132307498966418177920525372236533219639490464388828862638086114377875312100724819344065957346370321110805987981547649521727377314852303820562758389936912153331885721865049538935977727962283195588359503073493638607413486390181776520184183780608882829820172670068303968789325973735374268156106938978173791751712473612950500832060319258429046541245428787036605661189884723683033935698586339776663409535619770024960995055387713165504050874688548296479666900446472590857900596452743454874891693154137815189722994827261582558372699528066445261560709282492093852145515563989417711890788793435815273112906235912461356843174071051288221378445627645656965398984758415106907406360271498214873852861966751093861498551973400590480443099409763941789394206796294983253969867184255088963180898533133927220388823566595232818066982540603186559009145582935383742358920062723437498956900570888743459544853295396754648227229463530499237010487209491376423813882060745083022045207038223243975097132753273438186110339465073625764836710270787765777623103126665702622625332908896046668571077516010866791999782423272797624857560455486669632749750486802067470606277338364307589730906870047240821517155705399857495395576362435318116688257448443813648435957595360070133945245626701249177553999794539531555321405652005406534220332566585695823107730312967202587255008825589087192079072065704297845917146177432264471399038933493467964880858817766477182302789464930879932339612061234692744943211192568803859307832733954686173416257238146743497789977425351496751537452375516999610624840465191149572676994622527263994194862958477701255355817771727531594788393222118886720680208512279896637164677893069965278355913292703937278159251336159089567883180428996818938255422212031779974484671750971197439683024928515506937139305830538351504308510002015578493500036916826450448254054727622603081337964812339013569377428720747968449399179741367046697951313637795541380481129317097609717355032703232488448696833465419584628943461408209262056768600757250001495387611574288607404414551380100720906787273972624779180414237615112646782982549240796354245391188887131889364553112593056170070467311664064364963218303730481200905795822125702178108430610297111883105519136238096960967766278453808464076941626741044004044439216613570380937042901522328763432793494634436020017049882994263395387919447409230019372563809886780877471593990532357307062859740691541460231210385010251739913915433961352849295008310278200600964032296677977660700943003422424248623795505348274600903211702331200254636140424156335972500609955054105604236463899198604329315640014683655010285060236495046444572792929381810824840703333521667752139591389778816849841236501872971104303124738010693497670541877602245283372769902467287157872606803279304860723153633742217992293296129101966807906443977563560021578018776088353199817851552981190024778199213734817920744402485593474282728539637425855495229768615801207252365645946629454751471601091443575466262032675028580077230559481284522915965886420046214601860456196920948951137653823210500336224977211937741212121286823673826646629909731768223793583094265475075982180001297403831481989397628955283504361336440927518986506808412853798351436949098010242271981715439349002685151721426396086575870917418996472892148546228084304380881420392444352089358382162757971408363239303532963868447934877870762148887216316106558996998182485836591270281098897810601187185797706621179287398296330713029621247881700938873269773413045973568997986741381594592293412535031912600121558032550692285834515318406076583766229240928622392058365466997143404334401571473329327446601038251671300852667660525375444430449980910953578848380352541169863655033608066638598495312020991780983929460105347235830905669496195941097436584146007544420954860871625621881455528954931972891083971141267274554701385192883052315713523342540724521909722977298328897801522612751436326128912965219506009717302334208638707581257231557766856848638783326335320828836203821147170049509130045359754306426278447919635059075616961421289339730758096612081524710270691858409219972937498014766187996663073812625334147850580674911556758276342802434469439018349476802943626918641821189019556189150267570588133875970480664102375699841454891368913081609611839276794943004511322946945305811271553701722351020943336356232798645562913406365860568707614967022813321842412721141868081397339844849496930883510431671177315820952041030297969696960159023841596604028332217108386518465217347151579590818780165704834093366928125355064276760442663322206122066588653575104065916029829630657550112096509152503416371508801045716764096900872980289889442387748733029425640127264863661261151407086905232410401505729794323840766352170578506947036011142334115171537822976793586011462992466047652289081037984648328373664413887266022419130718813612277587975867850856333898819268954930498365514293031721792074742295505238454865576029775605289391870798587952217221722590892135120478975297129902039213381893077760798925973116408311439925039983914659878426491493308551356863450356041839002789140269414863571992924012865130446503623502605991296123891484800894381000020886427820241769642919227016637445077496749199162332256241729442143488233091402131133159247886889793635771400481295705504366011127034696031324106937552266229801653837884246453153138308193028904963434990857966230063203368447092463224211557106136179344611475066956069359292812601469746944060404646447110321607491541300815101144059681843852871281603482226761655858298585097411898572068429925116548284325877293093004179996866361783227626889261586362329980032338286812025736738230110792201850670138450337609600450491589838981109486366885806422694468722284712578250222561064517039361466253539035332115969605753572114018466710817085973703427716627863449586177224427315397102971823897309993167568825806458589834248082032425178559754333735751284057395423028911980179495859544716523977268687554375482915971977652435000107826051468482149907454042961258640416800331943445896289636193465987716947023138685060514367043312606261065287813314075992599246472036883819406849411677161450879448098572471493109759097519120004187470765306448373241787109597812544103489741020606174324200104830611702198951182004863824399672848944002095979931573520100149555720014908667435742809489443876117237121860899038551583254625862985155533075321286778772433976770597067815015542406697995156639477019808749124571536788627481881335045610484540069843609471483822725583057167779260733176532861308513902378371950960812241194698480786173185481344564163784471282266781954071206683650908458544933092997791674201064473875010120863130595588105052901382655634465635153759322268872273130312352790336499343257195966088338371702957675358849963960897242366089028512337807417739469314781467924452710198719247512619659263098980864451043323606073394162906114323428061266972090361600465025809011171926465974538705815715242223059488740827245213412414930458495622203939164518319190945119090486463845140900900549786677975603417411085915528075447510221776656027333047669758352667242926554903321016933943294675420030455876524006381803745175475617116117189338220094855617735670363881887191248942304577395596824236333961603239981224551448462356599525494232078155609545813128539169811967630467282868204056054289530429631402710148067410349393146917431950761433269102834016763443354090146961661872709807403961159215862254801349148397475211277063044597609832604277751588641330420325809267655572152334147744241438220431155662523685108018364792953806793813176850576361981431460698237803469482544551332992399012867201669841617751335460264129559018000241770772228047426801640525088772026918831724336273579932615569358415627556172195891875693088090066105978232221228999319730983942101305276205317795099508072547823768961595349758180404939123827395254484643306106915285465145471300592960075731123783093229932402858486540042923782127146890273516446387837909914419789917451403614007986992915251320040628045671086837955318870039121368923940788784229277123528964935295222854027831735247457722153671882043541838987417086220465015824587635844259023971221920413326764240323482005067687777345332258628249705259260545944684198787122268193914167362005538081189707750734132182777601477997172562931592387117915179254623154323838870725208633174443225512096476757872651580715091605173246907426074644217173150081895505622441961894201858468459670319763558041872402856577177672836903530694415884835613174094263795270330311098775685967677819878510048279131610166203060492457488486338628977036036902682037116772616631741291529913919729600773818978335841450849403960636196406065080231566843986107803590452760343804804816239542733449790829563034785659105887834123673326242583149325139781887196900508044421847870266160837906724621407662247433706255659021063969363261773368171722467442871918153867686006447866623890510453359645036670060395958069149572527610639505306828851954388003040764002837046215075103075869233182442620672381795257819897475439665739130404511188408334522569608398079707532129872870364644103299731286008670938366596449374242296085421189276987503852784442530521562486134639721658510105641269056453174991694617613448063963102578056816591529847775845121513719740168172900782774998372293136408438925166871367415661887025088212536355310427030137911576103448501133754749071669241472771972484427718567865336295234525061518063758496740364722864660022557121499760533849522897164366436019299490378434497835186150189840265499453720977452288583911802403547037465178600291920563750867233335556955857679708117942199646616843921827068588272795030507834249672117042802653697462282184468123486317427096671564136519175262593601184679094357433560501393185127929759613044972754813662154046867404475056248543602240046484131253521041221206801884427724958273945270595000567666830734182887581180985046386642357752084419136433706608341808159769110136474355002582132054102012092776513786045140408708388085987871223635486501257326296125458040603462788078017881183398985167697515444762930782715114930627928253083469407199214683700589287035110165908721804864149967691826211588096793807056082844082098184866716491412903563433247652707060558739026581163925641427962759874368768761078842244866061152745508006812631405954879544186050800312671288204367992656027333601341604930629430146148914067204592680829328985171126683445978066192222783764336302915309129282656023760128720297154181713079474064779212333744558053044916106279958040815943055164757489494808650327563941471198612344050706416729123375250588448406469795911950348532794793916480991654404296163237937934099131934714664147763988648299252290139907504025668282097754060638778227756725176656992929915080251858079500425886666545187064627229665746629293912671236260521086962749704712507189690720530307541163509775245645069209761874041861360710932150980835149122605369647701473942179889469983730041683623454149924360074141602236743027953931714414202119024631826717550053825854012107325385628948398231967604872195835921126348187277931638674993289113439929726028292985471249383085581767352234311843434680119508094710641656669375334706703213496441675879329558177252624489041820908506691280100184722219805366725828010545010766120824987140098970470510057849760102200040422758681226224127473082470279284221330212214937566307400235280821117559223011530934285374002076859882416818175967541891315771163415294909276326015758304023962295442398271326890649411964334253603848849281714077339836185079730950768629644732897635697417311043238686149592511343473783821026549261402096771417012529162307873727077830389757521826541967924729221421459289377926282210800676231831744435210184396643325660700875948107958571502098621032070317345790819459887196365028533932976494625571690426118681086912643203302972474703267270546034188243149134544384365994605945357353903283204726481893881747608062941311795920412780814649976102775255066580682929486173939636134693570561987628888450653915376884787968380340130712998121914283073114383288902063731061649441903596687148847789264380904783549218477319791704602836705447646489645669297464780161439032232540963474898777432046640011421273446110921064561001511848682060737905176271445135213652922080422149502695340477877957957233508068789769854785515783282995239520557196507925547353188760936020434990633336280666675877064780859971497332685303668339883536858538936877948727598728913047168634678859817112038728817202579538851397594104466938413919665688966977679005329424184866945464105436177313785994740904293143271963167503382259242023513221336802305330954960677898164443417541455717446638460544151709186828436792248669331793145746146835662320886790576475086583855419623817515893758810053640487762598269380162869273253212388838542116937605177291332495914447188254545866616620094000727717701986925551069877656348512773544277455484557036748379453785619547144766441381465170879729561903087068965745701653562418357717440143754303807697312478948612464012190220509617038956952911822509156443912224925491406822693274300214249490084886122044467529809777638747496535443135392482246296770186691368516253192167566853792934534615982871159492682104306262264937119805326772891065939616361936854422245279801495397312439783800777351885614173587858808089284189898444202009916119476469713833548918233722895013322861078764759903428955600277631792934469999861782950457093202778345346773959493945231516864504428284167701127287291796327652783717682303429267406451081907296476215954211247980686474147602256206658389662403364625346403682106330936353700147238805323568898545398007704863201817350772145761930243197001342694845027754441903002368549042908942001331372685843376868342166450175319255118401779890721814516707137663898314196691669654763309393519339728357226738216123610152266687450035607589632608646159044625402364419387972739085780415572467129692023561593191033386530644375956647631677199104867252945218683781079806848091764089522581473413729741562171026537224179098648001851104365333430680326492329437226874974168831065333681221704974746025176608132573586618768600381242153400123785883026367571252964456414107160706735464288503434333946378861269445268030077133058837461978666207290422914690308299007444415712192615184054556644879580764690580196716771886168441537017623387922583355139460842735735398126179700142839862282892546829830076891224762481426457749631020038156898762392273388552446401101234770320698786476860347240377979282762786775212656229058671494669613420560640163402186134506008438105271004435108068023365217701881252680560084313022442851508715447093105575943629895197930296171730859589525810226957509862032246759315343575603641744360631484086303682173229183505586913109795433464927547235984812407218248863516828665295389424519690209780507883898991922384551112883076831672509070108964235049392503797046732265840665219131307891955633683206050625680714286613045115923249171756421434335727947565444160531193749470507278133276120897253751117356403984949797884414087093875621981753171418419985337680412463785809612913167563061060156114521248471942436763170126446116063578505211436556992111530200044713051225788983114020410083558792524846422234589454400116443323795421334625632211047982557390248580241990903147778269425586806845023610585199801400323997267054537992345281982443700252630711373217950554526562050652153745609286443204296371220600242725918033744246521762307988456425854815596855157955771254632830175220567388801621624019021650686652759301860257215529120453900708742458935986711030305993196499181758216896254866949731789427734179173998977348030161169420553773699780751480109788371875688553708923135317877365823380779721922237639351051341811671248034824897015467704520642001014054509906554507863119660337067685250383981647093665437359063791402181479186479874272624614939810461729382613400219173690950427658975744262526475865509886773028753222798901874961534079633849128578345089644941238531836131941031831957309068248306499130767333058162173421843182152973383788437818519953591950727286672663667511498830421896241624326029141558843862023305167269355145618080707070696778655484668574759906245512952009304788499880470661776144981709741288932375834443318355123112203400568968528805410824921953512673681930029208919459050319946760951603844171790762656768852892840479271805616678576709949731661671920635742404525992939711086092772156449730919321611583893522087257998870778749133645733689227836798873941292942076411930945147706139641280093924531795719333389793251908770834652416197006958372949094387468510845833666036239289790316084868287966869562896580050513998606246329288500623589247725674568660058370063641526719150392352865702345974964130577037049416190755701056909571774877600048003522433134210487907858129998980941619314294473289475364487728437072199958532878651139586896033522525351246752780065792795471299309392552084980590637438806683940441703295531952083857732394229740357831780536937890445421184927850679752519349588230308327205143543185446197287365085406853451799900146151592681739136040980735443419398051978218853235534461519950657420101862149095278874856603802785041334924686866747238485687604555573306163712637406031676971196078013554778215768434171866996596905468784335210155271310692757053564242234594581926767948592203378727070994760058138347199778547137645909998144690380726887195150946271358732152790774978360402591413908011736613214904789840503071706936012056577035496525533925364648641281116442924163547373265451691083945733865662592834642650867343154380503980275435150055575430190510912374145711302103075166290782083624766015085403844301042743367434405199522914750190237499944757560518779589762406632881828306411320683244833453688290835835526683044065485222121574830735445790915149783826449302082376456658231174379892511672948655786339997522385852848861238147343308609581449923231381039144736688194648928072510505626189687278756237205055560161245843160942236543765771107577217695897426633671410715504739391580745922509833503548833683326995138629492593282352103344241469582563599531310570622502343082058337694668268510624213720739723817623566062451460491410470310489457664795172367598185893336968116828212857696580131239375155362455690914465926764730219389230117153589077003349406469091950832228739624046126318426172084775728397449995452794887783966467282827566571549253858640712342183291823478915265278404568282326445316167867382276860725805273978944387846479011000977475030699774202069752548006748245365722881375278627427496142200313325719169077474608383527313394716025671201279935452133299638584831784250864466481488199121720323200733961054803067855708085769416960713078411273917076951657371328613487812447272054623065487433147485127445041236025468137371877960089189660515499885474238931803606789721578564470613603550009959688512114464203333522587895207563390495051949501299483747062991009812359232007092117876003136456106495623540435052376302412915719150844728228788679762405208799542951692254854640730906059423750877694223265358531710086079760430573582886551496023582312466284730710111112711341137282813628005643538428649878022231306970785087330373659492121207933024176189924227357849668958153563031431931399863246787282804054882744171887783871664617514274774628234318443620278958242493949775040741051075112163223639525172942931773172625484894391099738636819908785783207312722875238313429564824626234556989805520740216979096673977123520567420795398299139643030528438910661785415448629761187554091896656630444145975705038661146924335094084433885779293205605448321219763019724407329264476014828129616711005583370249026259215913364608788564568660202358135339926976673887889453142935993488797289420713817766276424245577611272644161253647141996502291617153993114026143231255475760250131128559903921738626613891528279976348178036944097174566914007774498949640749282326893297615742763496120496163113155714063676425606215761519734310281433909380201798814192660651334002727081853349645155789888062854157216061255809762702713974173560666654955568925118280809121927836650701176677282433364549525753523693947954419973246333420690161924450763095870966733034828781013581363255017887358501232908105592830563211694390008617258271965171921300762226534003204088517457495317183497865124032486525672585898683627443278776139198269432215090342540803740046196117848168186735645629778137058337719751096816253695380584352231084934907723615810400779846406039889370830795113777433296626115210085923717960334416292696732173388195705164845322260896532000435223917044593572944145813397365988816785684421904852319812741738595054377657261391948059775816617289408895689909501074408436915276737995692064792888099981075657457523417028072184411374607015125396679943093287988846905643848380895388721012262991722798997849886251900669188299948924593661257390772043077361561561805882677255390137659301079065696168040306955481004829318097420263777443754057492260574423723775373393436276911881219717575841349744079722022016182613747193678821311933360444680879651464163084149181569084288654273479011341382245219810831311230813096458224644879314861656248867121310877684799588978874222836642565518229257075962002041253279997055234401866651878607396607728113884032515154495585144757184206756198330729519688013207833301474943672531707427032577599936853719090289315026478214584897735698121405924832581676730881742450671273218350045442809514586892476175369759670818858962703548219207505205655538509894428482212343626631050193793884445049814068090143074393611794795718756281526830570232666180917003089325091355971183588748431656702334854631377454656673112854154788717004824093203149395938242998758607476566438985979276183213431266665890645320369034226523468331203322889782814364031443476551109847603550707879298663983426879649082611155305759790632994981254429287335901615733757794407568548596482740682174592275239763427061425648003863726956292256882924651263009236519101262840501397853808971531953478248257711286115021119105102884340317503754748648341077637589029291344849050239912539296105407288944251718307240711134683844927049904701112409213803309119345611270839431881489125528678559639353225556849051203623666237378193471743342929135439661531248895110584403367668196838669391238685069718650459500259296499809878684067776625733846273622101226687949444258871772813904351808217042788023632019145933862994590067167278692128972242954153073636288948445284647688981557771436980306147007223273744635031424257249006401252780647910195939805656576778102214245523590935785536554499933975939484024340478053861528980572142210588952940490681375205943706735504430744546768407763018559341793649733824727741641593088928271099826340046258620708393372191354668033874977295141621802026049701647448678728632729140073393669731720693661223219758943227438779161516337503744477731004073907190631366542579024255436896183728638248481204457264543096688022394315835865846484871772681479487455370563770168646325178994227335295726348207846847508491265490388420880477056009424982847204026965333201909906856588983282549553614851685549626846401771355879227332182543211171658489600857261013416387525251433849975550777579339017220374074190916744168056498756336622028710901109406666777836783516024832076026902438749277820251557732833378970966333279943802623006573072124597966739319622280100103240050235678929089768293861219796223219979828761528742454432854466284471786360926035292619991250762039014880096566396586727920445128635598032746686716428667855697929853006265170905248928460381626413645060826567467784409218217722235842292209940397598187384953324728838493372088049751713678475360976467256421094659291620710802507518571051521133753366364647526284361942222889793613232412538715906875802066357258475995981122940750393499221176283523933221567205720546912946172983022398890232825245062070535788019714936525867883537062171159993900130684018064789979891203579618237131700035810184926785549909735355273456563463003180848395199671466534639072951563586241677810105278853003638469921597141789335479398122845232658790465264437341870091249339502509578841362085118002307293116043159851867487592789251649628181763417168682874421410320532045523524318961983070540172052436418496269222002210609517569868981803399869838688110237450226192491741249681630131842546124199754545855389521166432110721449277923327814125608250542709273759484655126103237981539275818000099955383113846493784672656382777245863130970510293568004139654303620638696178424697787644089151330520464802148033917529831857441047323341199257774389912707396702794176224816696072194175969924489891404842802990332764841172467613130873528369265964463659238603264667191171051803922197686988224136209070787932514346225851736974132530525360027997483623504046933411983979192283005816108754136632703145429766085257192344543871367205007066009188619070039050281818346305865350740088251851896803340443030314773345518588190348442146096401663552607594056105643971771207248453368569650085911130816779779043765070813864919642516274675425637814482400636027871944695884136467879588186782627261095962739360266804338906254158630618638901649149984465729628923612056776624521634354460502258994607640534323525063462720758536705169965731271988833845064867163958699873865584567383188382738983542607297402343386872209348903027300776710031960138319633082681293269184445750600288965108036467340153460327856202578124987362789904285876186152090873206068225830724157475872268862131914979629151684112318324106507912612721509390686923296648789920261098163735980094359548735193961865032571194876380425606350164883420472430317432015712081440276141050224236302405049033359931461274493664740670854785074532900541927297012681876066065041610293832485581541782845160160034314442047113883533630797816165506741145552097614566436518392630055343113179827415692045588801621459362125865338016045615416543538531419027498207324684877660671245335655336721651434503276383500050282490235853190926953249084318727086570394486668557864868877518072856344775972361196046310535078193128775259679379629114166483470306235405862780966673101597074457276568425457962480927676439949396075365622757826861391414282783525650252284723724279627804021784217426286373455759340684485075700771321755485680889398928152353732808216229515499914583891642197165426002505913277612539156702305476249218580689308657863628058493734701917517442712612738398912112816403739665321479638094577446588019871018488949456787660021587863545339778414981415051233816244936434584283624330184308836513889969026522235499745215164189261008538559708862590018094142159854599777921030734823789611510135113156947817974466295961882300541770125963262003826622535938792098904088466421397159047334191154957887764913587249642906423133993893435799340414621771195548623226665207213568562351982453455697457390377630200972326876024181545041485204631031858448545872888677401492065353876413978196694074196130316632883642824264661164437302443432339115291692366098384069243241424473733921304423193111247591270024525493625440791241741531995710903223032312329547656115736834291145372898215432802365089882595034392625135671821306730402340065631175325868919516238647688818897137600064342853460460083966290682328393000174694725344226749159416251622453625546238437566702601295533464741919807568554346679717477072523145402923566928459663272491707321532955305837309989089239213549999854430700879105550240501555341452297347944627911642379872038167948280192943541390214126893484627539886816477003313273037420284878605406823983530130451736196506448283526477942911408938595419603802818773820644291655766687010799252412127274747863885410321852097297998309576975398124559794591725227459177454520456765564237417010785351647157723651115063176818460285077471215211612614937672140936091324499934999225507042019313817453214977028264795369702110411823117773963783012157178716091925718306878087653041400723713693503736032592773217262350279914241680516617889110240317884117409444602364919499698173977421538826396381062580151346484268786947033853372575295563986654879126060507368449750384594315904428083792228352048252727745213480032156677958570055961033230629047728021822715901633364610811788610376292061667657852871684686767274026440332137114253604729183055851529494517501174192582876120016818176482707686724985831158128342917998696114750499655160344128841155355614639906526004205275876309134185484055238250323997853623825100290904070247403024316324705658950076502115740516983419264047873107055964200733371483551060265393316015976701839547001193049346954273132102563461512145616467992560801914741988382284212069558270246891375260157970263711193228777994226491749939543101415318023924416333509886103469832283460575392868697911450163443890278091903762239513375858326943853297093214999844524801359803859050999727639020503692520583515457919524391993513171156172290390138659114393326680718344376966186481030219923661735802776373764091368316832330506517563340152569752303167294223639572179425749694572467526131963977136913478651550804313002337516772388826096394040072579057089418793430468923682486789026131372660664225133492169983437047987277780730045314701242985753374101224279838481647179121469051400198303999409788665747397836993972798280899706032041445990367982020491439619726407218872721968931622981831067785516150230205610710726523769355798192272665434552607059519282956514755135791021810503169524326259572977009078240502423111600706034671286860931975401876967349324355066967196789759137685340583622020169189898499356069747398485524855494860638256682023519595941696867811802087786598658205754350752516542230136821054131408157890751286011020035890808786139476881556535815490243649602052926915977318185370650532652719261613160868978583186357471612245083608507958810167066629659060757356231373337462496536801740604359286614454432982234078806577500336890527260326717858740371364620696708504162015621075102910831809894969611296783299283541750930614974665974420300127904544225235314778319211708869174151810226776322530856411939930205399150866471962482088792930511601689119863833487615993961240826911842778925807024684491873638794595558609337671539938669763513753370939349981516871730277686084903140472905826926976301989803390585750392933862880445726932717304229406749631977379393887476317587170570461162438845172013776182019861246575445016158153016682734058399085157670446750080714154720301368069513704351921621944914831660158380649867286095441480140474601702049119830313526274490244368808235351044205529512273002827083358555111908970239170120583352922048731946965749689563302498420468318774299965021638506577184982583918598760762762998004055424202278598108934998070590193833712381096768366438602870840268783432868374919864055415592508162858314210466847938690480431690760925541677998808795255437561190322173839369910190487747581824246074119909073555345050522911552006996331050492168237610892921912377980587638417390266159295121519285469325372907168732531710070467791146924350931130416576362833784412595236503787975461319566724031014507642461036220000299290056023684358523569499530839548745287597699398663918873929936227421898234115094163617831006368416732376835769516207084661289376218580993672101357002863783141184693604840723573335347653063757813127887704413373201200358748272878701852874286808686173819130315751226843172570474091191884118532487575485521736463135175810296089463813502052789229723932989856107740295462198100429066159041942679503301726813331864636237122401970750173055044187675368769213217800516729396450547497062697756525201237783771790768087680064978983249161024561374538034871369456962631745333066504284338572197409823614180991660397738050123745625968184959997454625173147348847391223620565101311395033821577170853707450969564229303010165568319400165515602784341069027020363287926953213909227209086483584686053262953588736509531817828982871381545891733609126693983898649141518237774296332387534312313605549997997185284022399225713861618451919062525688881174623482541608024780646586955713249296688960762947660346117861155610926442182094439054355800499621489409816050926274772753038257084364574313572612602301966384778643242657883455855161008396638956775922090577869879663907157640023913447392988876543006688918449895017156161155784186190780008343575459466274460108974249936504322512948388031017141704787491619371182517389072062184047030380608484766226755649461954505480527733598952569136219815748729106348203452040001548058999830564574270423667185414394895578138077440661425385644253712493634585155184352556811314423352732624058583360195387789511390979121421375656660666691383957556174370888865817288922948542182689111733076686119316638878492860890812656436631720167374947774034544498103528367716243728486933085957719970924129437755096997137216120537684157344412682503779469730170402649270869334807174521323690036843540539435039861161213348093297723850330493865600892796841906050273904505159403566426777343621222263287550887572894751797995579956596084183977600038180114127194368133703593383374606956123510391605965833900470203837929190260030089851322020836833542092015076665420009639789632427556587122866957740645361316482652075315546971194236815516353601571535103990815873484680936494947766717445530866780400272284330699148866717185119250982490111427850025625187523095345697850254811877965753632941410264029609999254681602371093012486295485317544395661330568919486101511351250517305409435777095361208305310165573072045936587046866070714437779663936298891274066909780859841363627188357754540876034383858830255527886090271867405779727218613355640799138373903387447858309011209747387826139028059549517781290475052407745705433201033461818746293446869196946568099301302429919704393047815072127798961791967334863667855859863484861242580121376448325570437517549533259084340154998528997502590568226645383410433633153582679176852809379382606603682331792173314391290733663972543507594931589250229502849340885082329619639402696124057972301531463739082805288376900150192014813909101795137618649814792058734514336371138395291486284612791095825176453411624195173498619074205356193531034652871297310688083300137393348158888318746830103294222147469080563119769884734555324331681407001502652373880730192875383403142630672149955083515818701243218263543742803748924513764551350820920686016246172482413150355392785704111740991635828289956333405009690971898501250223117520379957405766224851156957640053732908390661523548953843883230644814938659476841546467326485617483554094802070856322395150285799801813280647959832122702875093398366637006730977430182652555073050077600422412717185402536357559734199092088030263249625493239727895358340446675169481976876292518475217903679639654900952275836417248281097757911606240838602614829400717560938926298745310108121064258494483485872252304160098595376970220627719048873654250348603961524736669012904848034252264205723106171896949242901847668182118579020897832735765093690289920150051765675319257924151880570896935567064440280966003983480883736630626785246483856620771565101267274614792626143566377894942538405714840337126821766085302166214996568747961730094225501191887829006580298148576744293376687009794961912935263144543330198414420479513456117080514102081045240930762236157497696347393305402578680337349869645645689260610936034519092516325284683107102577284599855901717374015805334389306560717965550413692239970231249590359108148201746639225207986326831715135574448950664567146705713117740044868603588021111356182515348380791785362365792020434860647661123158505832975593318002186248908209765780505375288473300307797993800404747564949106584908176160744005086419994046241015176577400267898828269214731827081872795888244195082716340612540184703773536900886604371162512607839780915415476827507355337164182968381592082809809278891442505269640791807617646515039827105404247288862505762881293576892084114040894817146081429664746537911993521525719847645501974746805534388002436712288052997687289882986127622320238115085271747353475445166268841146874356654239381225403424509386550600629514759436680159479115011759526554087762943773455218383026045422628400563029581983492362906916722340335924224230862111867069552722009700154586866568798895484608011610490428064231307714463264609234047360247414126573907285467745387868201972538643922638469379674007959118423206401515029576551877060438255414401686037811121290182503111301735668192546807793497585445647838629036497795913828323398300836708594459308877917154475632212990242247483761305081372022877695809813539393208456702552324171751692595426218976109665482053055475230018775690694005997443129406686900447720802870550469955871163233875352902963045437072637518648484447953966642316067153166202581869952683879451343949594369559878088515014602868365201664284774269215655144122866323930216610345385755732747880760510081464580218848518664070525465035939096082198560864073498651343058941424445970788389764181597461659993737706151751704340353000923543923206668581805126011082573266903101547728677059435066563006753880323810543247989184568832648363558604802207483436496386593027827382148800767775324305285564169244185972434079649724772066623751760485882721574879107056180600851339611512338012115221275182679789758423587788265695493126335794052855006621181291810756221806332970006856262504951669480845764349965428769282605186052749596586218845577410964361945641936654286317152808346174589614864778741189825203950551732882984233936709988259007073542024658023517767265364565463461955304971190451847335756761518027725121568392227963465787447465924708478754540980973282862722262475466999657270737874047306455111919622704915529993306813950230922638382287982509152557300282912925382301391011988598209113443549975456922151737002350024528330690817713818029882120682369029905526625754206300361282878925868662505198815030114110378320153739413005867573918053335885179563285413276227329748310211732282755205215428298230319822198887963541104184143861742411914233460511069494576722976698195272653918891690828678206398597544384764827138792229759325818925817143242055340665388302289087532068266207821933866743875630516873372707314237818831639005420326764756951839774015433809218752818597674890166326495387321223917041267227405785362370692592028488144800863318340958770637095459484312173120825663008156392208211541939222617525133167952805278927552807946865847970388736342767515395437179583857072755217225294070418086595877090561726836016576407697216436905278997053489160950986933785198560884129550317362944640021283681061341849143380401127056725777041779694966112479811439507164604102029089526437096674817384809369711858301437123242906838490213482214240861581693570929611578946272349470656593783597216722063301582293135122254809716798928119456357549119857853953749529438609354075786053534599921513886063541745459372113827196909129990409992192152880965215404237250053689687932050024658708336701507910197553204864892774992182113581207024294862135437046975131728945881008297164291837637330724540163936374683323981384902981470975217705667829554063151717420848247768187796118742407641415835604994619746190052926033388940976078438035847506647785649145677101606898384615577595860569131004610532470744135979011366022690500858997218060195751111456119476620657154624533652283700274044895353966192163990875317559978283441684108102735303786842373444330176138401204674808798852443326130711943061540883835714657894467172906421614434438654165957624287921835261658641108170119503407567975769535685136947440659809896852734614035020788144656128629069149553490207753030677368302166266925134184302727914944856389828116921154858398006435633876752948352770373042342403677936001635674346638886524341878983827810687344209793978921841407755504365374077026306631641961464807734597718477684591637677752807123773810723608000423789878489152794855966745739878589335622010871736543585033535067005857215429410625859965027506993560158893452275092082894472424472465949546186571597754081336940169755105562752958853650689708557457025349011738375450721862919083148240430116521068060410334351598374358281060509113026712719900586329333422236401400112587745512004677090432532170590125932157907207806244068073684566244214653216613105419526556506984196871768183745623340302433015940820566142616172410121844769882582029874940848148223155356893369292175352426481272402988471004655934944633903033534498572534668246269321929957196808081260789093787699591051476980820171129707900323743119187947934335229613022626897125811398878782872216088428219161803851991104881317482839260031364659629353252741557218849951882865263266586314240797807682192918866919600661706959231421974768501792555686571480124122404157139714259190199658130895069996246689856202311302308025868985619950155951300570358596084248585098073170978154904660903184382859707938196136350334900682323138683341872671441336661412546322520208775274880836036743554496019385979507918680680029696509552037846455646835641833420738125911233844983522647769275296162495021347167947729088384409825858311214032533594648183486934721862503176039505456165957622113791277073596793133897722818679990017578041479759202836192098446871779538456483469353735343757197962814883221290591289091377151670817442607109528370664920288927844432424690342120312640264235754321605392087071633605662112242424625158101846059370920217196066774665007868242916728931316372797445950697398534347034538630616383587803378787347458128340240556695271084598240127886122478395973278020029172749483484173241195276629137799883760187750713404570992571065421087575559066136408706578868526616069756944715722104461284690915027617211044277058695258042633923769177322380332841947317966451858503923238424043192306140409321001184179951347382699336293377822324362755755678975865823011707874759354339849937195502440896375412201316043503220886253081754361234137780399058406381906915269120923663393783849679417534975778207888426086294324434743998134270532135097119993417951669897296924071197136916667449071952062898349260841018037359951552122833019523091338143551460222652703923499580605674725391041003047796119593908462163005378832903275590228338482314249506496845253797068586451482059380559357923034786456935535798873786663787159516527518763340217836705131853599625690337091659080478632765494711453583420730876803095653635216620242963402553333904209003721550686566769123048080161838724507159421947680222091060248146331442212224489552236377962781671398916501634751020114220632263341763224199440044016721568716118335816276120401939238236078585904273393675506871417974365789979484901561180357010246401124992874946900747455214608121517992313091007697092590726472523864435772952325989245019889368255378501714004620846988410995699190500221382111682349746895233973235179482209800024530029088356715829955936346991066238318355450897250940767611712151267402557891014079774106447103152129836151610572690317512572608984561256298404635955457486960314177262331367920841831006374284412632649762098162539640196300287665622796965831194044500789678734492451036347909105753410973582045761738561041965045882393277513949461565467886139535183917609867673944109950900769502596065324040560206745165232027664288225567320517113822720553953047605512744450083722116196040467418029001531047345474207777222855071572947762229609374991717689720403557771083135692420192871477543604993086896981223502562949761646730990194041551223634969793408770693869868416018320449345089260042798376191015687577021233829340495898163617339563779760557643875862316366402541217668184775930823712732701826856396287999822090661649547272974535292093624853300515161555467111401060525024978439875729850486276896780110715955019087068947659528571080890816664018290094890011215773929805847048162918288124843812411705897802515036896766546016416694233608930849016464426999881717949713230111189646371446659164432984223284423497765402906623777997922305385624261551275625035930434244368098768521718408271057967618817834715604141016007033410432755963557199838812265232792532218818076697322281214585454137048502533605106896802146412848653220791629229329425636090505156418810726017801834959546259640655932880302131697762231936477616042136164439138432388265062739001627802879895027492455252995618223031357847622268799979783490882647987554198908256198344744516162763233739685698732584096934511087750726171621609751195318447227701596034347066298405956139632151245466605205360639535258566586497661091395441478260512379192081022139415251577898723333021009464055192019526028596501027921501611594784617760268505337815714752087115106297647735787299603129890754963250364927243311076204023945243902590354797469158675329843527661639539953527583955804745259910832033249377311196679490044924717502186636910570897296683671748548664487127627604670160914837373451539861201892769900967630513297167828511638160404764193450241857070218334671064287308794545985034311712835085507594803373794486690615575574387152116229549127563809996685607867810681211232109364707978598875781123347160785205411304460743286469303202440066344328704878868010013908413452779605977149137387724610454716752403055931063926651089523138344266907138021770224605817669825123889909699759175582442240222529530655420678802152543416007011248274774064197046059098068537209363405395726107159051873696127731785492070472477644739681228528407256255064066468638738759138829339270777077690613023047481356816788466047400113098947769425743828757906008988496162588879032635898558851758197073990736101122464331964755127282651879485745600180385286360009386255868980694568321564003243024862933457571071102781341765640617346982410669250111525483251355513840871982072824596991600096860498251048455921094711197262492617951771154410422230248566795444732705025387093731004780583774132795479297228450367968513350078117107768359849798898021393193374743815564076424964597723464312584723978305795580801003385619488462132472938944751224765125126166272952803005004683675258569785407417914082943052871867116418818495237021690360446320304645577357631389050703156771758529519825744305477068633732139200439808193572976244871600792942658105081583678271763648380459952506544931089177007739606497863318951453692045167392623228730292997321302574739769750911182828236082609067673848106075762287194517399687784338825602264387327083493762765426171926952771360776064814395674371062134682772738188076992677343142124875637484017304566256733469208289180068711212532211845999639206920722275173862408293489028248974687038288006943940410370755483285303233290905655761255445883109409267514469589789167733771509899287417717890218539909624069090135113131258786009973837071062803193779273021167807402450098339452894039784010756909815853301355474353225798055728018966664087960502264772089280008736042145205922265022185787080347108793990416104942918133879220169995742538952042867299956216002114211269347187639011479179398685608997041421048376930931315478057504710862503809949508134049642044238401475347778598673439378969570132207169408220336459216132270430916163861371752313404171915750868560805881769871730495832930658405965157324619147070795169375424205529686917305294882478858271938268134251466365775972748188977132151137742959584786359937953714927475422144807046564962301896367754955241287457609885986094511115677071264828746421205436388887361400067338191531172675662645157049264397295545161998140454540752200503462603902825689281525185339163464046946411751325995737154270937524523233096849866227859376379946516417821937512366432565853894695148711075828507157583979936045264577125737114099936381188554766342569146859732061077973416668530594200622649173581386133815393869369736643983426185997558476103091000390838646536323496382380130702949999687475585441926442177961251694456226632183658400202144763266467833738712534212427172843826004656328699655223995647856009662917269904137801481922648947604092747962995463366376313687953549957477324379382494764756338415569060114483661483009750992315516671321010700932104066549335817173125354414094019051155148810250044412910675447669092069788508882196196211214851081562352607672543539162850257512157641015924418296700408693305203125066615715009595596440268709946470427049770384509852994388099308586319102773072653415952843047389897776796643675987722858617363027521085090529706375949689804626143159189878413723224589305846563987920886583861109964044747933602541118060661631085605644347434638940835034891587739482412166487351808020495700444382302987186393538251078764748628889138021766649700729359345152462581560334979159644774995576865079385950713654888439420139196979416417991304187599218563490163912071193641430032484717339377064137248377507331284639518723740008632464309899878325791858537688439326988549827918498000846855165863959194916413996463793345880642297914948119487175107667574576115567163916246334228661738313541412008494277298565687734404186764826670343330222028413612193262532690472338213573863642689465601898807598656863542446741543715276486089430136926530888381281287341348238388979001687745963654842239926687391527549696832095155537753605458740494271626065266905005470248878540965439395225775976845151631140721882001900712760089997835290711556578869008952695945425884988893760147552923451336478662829973174249307896735318670133260698765206098224741058170296189388150230353837578195372954631624923751157890071398140216162753924975405204532563581407964448371919582297028438824981058397363577743568643250532914804248993241521283220825916184711915928379822140401596073812428879739502321944500000062924806150292490733843630506779210882549268083052260194709630683062827366854048400610088822425299176747423785298918153021319249062875739862918586283581107476484798679108833080574935254934501084250817185988681438097709022737475136729594741631442498256516581008411027445942626797285612977850155140616519952308170027668848085019468446689495110040234702891862090121726197646323732143535307121135251261815173107514049004802492196415830802601060604471254275016730654242866288534501248659517371475865926349199242078490774445764769781669314492741626955368078058068771989770492059331699843525866632746334030492033263476633044904003943728477312062732279541219754698655593756245048880901569389616013583437876950947886414013067861790700986516985872091698786609059117635045722401621665069982776050933775465620887474795026087043252831309245378735251009978123335475613726370057945391947968991583183301818944601154869250331087305420290287879907863451730960507735081795446459141496755862897245175465666120448765691611100858328022906087473603993447851604447618344092835230533047459099406300039760916923390957496663081787183535612768484914179924044761898533925551504444547363965135497247315829076276019468778267880991520904898572317718898373120655301340186432940800648420089190641564652608310345627147978746038855164512037254946345142051772631427448545866439110952160480247032922852179539065378181083204281125032283593289083302150713631609491569332551899035043792119302213279770772056515256009650489778447523883086916205734045155054678734981211947076338951959119697466166594380589731204176326781501059630280724758558052281944099873750752088094856080784453134275541277171250561392368694863319269008070071248633002135853682039452412944784239536392103709586645610874031446919548905167617154976171747214539431411039598079347832612149409934583989972328025966045692016088236321689811573380945178378637196829174684637753966081993013555292699665143780898888877836748403301972475924893363836516070013467819942098908423578170329903625227942088923326880052011095400453894209182770458759514766622031336253316730852011449900080398677836509318796706259112268296327701097453236016350612235306004787106049956001492746392376479243544761652432790237036329855649728608217127434990708489196417049252110233658355305380398220956270226738834591720271694197976271034386198213511950690767887930629155296887033855264913987523021650423287731769957411903849744522124556803398483317459387128992105449165227315318344698388792953687107535918096054832783541370105871280313299234248222081229636343485106718129479752415366723836129599722992238834424342297596648255711384422645265772206386282208413337485175787758888313504146071734589546220585210115536458270876046641909289834782009438359310700570161456062341293297541062646202611663833385183158115847810504112861204841531128638107992666715693680882922530857319817970737015450217670419353944032155146341532167156652571786680973994676089139083471795910416738572675942858210257811044257543071513529014802729239765462610378311297490988220184577399961705325909336172984857883664820240802462864639583924567610820288866189367927358160260889669435159597538333356072288419501831599648103080315278682435630297094269908483366571249971454140239056756518055902279758053493815776957926271012147606963256789071492106686476840577616720700459179506524915908953240759206939827069244319977195681587864816117401371794155481734031404243161248670253996204158545176886364165024183902581203687459167429783406877856051152308787316781177561355258323828565749585743451122857004464692124088622157513731002076877374706164891928777156803662251072707387913953180385919280258408342506559755057345613898290268937837998621359208557788747845785318988388611359011065416840835884631435231781728885715464423361679553824142238697405972590392674432064733011151984029994299636518795113797461149576036376740167387225483446370093066058565707079840500263538464426455572370045722481155352301598643626838785567826794472444693237675202310294341922535185323759719078607224810264912257079623562952678827109034922956385382159772886110463827979423627830910250368267604329738391356015330774189167374588449544776456817985256955590680692662084612432299353946142200375333396978772155276879401585133006884683109945058429762021090450952300715277947222401109528929460024908029708138853573380220210661807062443986508209537418451962742590338429967645947496553676801070683142405720783054802520065352448879936531714438783397423449239024543706415190915768547780504468728261401701962384031599882167904850719371525330481657347210422292624083006428552196303537285615517829968339257115648824061251949888490150427221005593104425902574036213583857001414970906171201036567159652558233286083487907968558894616780242505943913028245599673805324870580087344595792530178835639468723918100582558469602097923384036465769518765717060174488927643368367971961049931892850105942863575282497748082487331583227259499845376583088367602677714061467703687691156030463069907764133385698048933976614194411033433484289734354953021160975323176293512251626069788744056169970562331326848241075725966890429439741072075702193972837364264004326956457157338024776464280933052315400987184523537525147891667296191148082194030603904752241710970158560395945796889797395957608064581110405802509876191329029814005766585509499635735716251471011325292303963390772941925047122927151968028841994212483601866730997120367395656803630671407825212355015041094438711649536695105629641745179433848988451606064385799129747573902153491242264450666830181781683742737718575502907265713189973555658483057296742823040769682259425982724779789893124549781670878509577859543788368322586577416718452225604638853665399985634372982437834568827342086066287281709933284685431424160726951573521965459858781267068077176387539743642616086716967971909492352842726663809410276405431940496257823085722084499466427980611576320407949450867935072164807878778657088985747342108375123319082459975178690600359940521171304894013797610533516174935563522018903625825676089678146707787160561945092497082007767780639200361838842124812535881759298039290861599515217672776909175408696575253207474625076709080085341094160518060977094996519307361999602133995701820949184004735181603338011427891219591108036784582432553788077430504670817552069215275107477264667345247910388930866353911709553791301007439110586557270734322199283192761777159651445683536446902072488992183207820276739063057951727155996822900271726998580284196200399570701817395649411820002476894703793665290226326610423073402526239649361589917969998518596657617926722343055044372676267984907934011415836717039864276335598699926124457222469822268416050862061461288543519135175585482492035231797430789070971861892206203243330952670970895225047128852433210782810824057752755085789749058503978367949777601149658553354121506061241059307778489303294708488989727023200153286175688964237604196154534906561422205698440312919740312527192270940832092443820337459363627655750131365616195819718411054181527101110799389679383540393222762383718325604045308159097410475825511040076750179608870398763268501433139440762214146195274362867500976977224431940136165057251579760641675407024157339646546979265543089785574119351364978881320777540723945803512582542549379029327392030360067554680230054243440233678435867599281615217709236901909744047742943227719682936439755530362143018670057991056786760306139408926529821683216083501738440649614998141636131873198339731804523202864004997029100323389356624270484936318929308205476534090646989349535720477516851085239975860093493759088489382407427162434795738784263159293898513850535604676042562839433869333226052494466070339062503112733175895522256770781037211521862757171003564838824015732354574232774807590449687613264646740455309232215379675329450545885707558429019557195326673880878903842289184056491400698546174125544106241205981492111462937348684890960115843805532367832764284930701303098909785795568938372018302499261014809577614802342655029287850065353842964019883191332873609714953536480578312708490580532717767674446230993944867717814691110111445969079767239970420593145787942411592317489988353750176881849753037386416134715046352486379753031887279983102351183547169387824850124703506123931172233671054038326990447038759241921605456387744904102442195819047889582628244628559195484786411801343102884866450683595427470440463418222968873932496557894768235391532883682820653800120846479023337099990562488024784868347984232337435799956162475245049008495762646653110841865768679860027436919839173855383925783193992983232036144686618612790006063024765692081196919903260230488487638707698669060060563162385180818633237590401165180177541798374947768603573925253189552758462199685873195685655612819458064790548193215870359787670915726366957434747424470214864110176634860152470916461090809415976757030635593657122337480984098072691729757726963799320446438181759284770185947092127618240275758969261167573622402305772040102203009788549710710030305530900390671353479941499949617079741385719658563828222569005527952004080475540329906093471957863402385661238400900489269942902616998136560289288006262755511591056398250227779668205741541429663465553190000836129418162204409660369372371596018570669787455366268657902751498329507732763556913646240399913731860765637991970889511728782231683385255990073729378071011070516809641194482183703405133700787606106835617686253665290126446838951616070836215173957733549279114461658473329048655223435967849618992451418730845348544990834369151292043501869088785825932250375352255167920255540607254875124816171653076606308240257351941268742108665350851847219149959375749865576369079330353544841770481704982190113360038986917773846334119366848081544241070008368762456528035681670038680540837739956288847404381438633928358656181924810296409296575781702906458653901604778439279889108141543735045777612299365523254354475531592210050636301818482748543218156730754212293741067560605517412865787450177122647364163327244118429831712619764251563952164474380674562439009804153612568541402837581852556554518758909446519942156757920952190171177784050739336278835470960697593298001364794383244954214113594474143109452011685038532245872241653908237221442156015740726389938948340698132415022458435516303606334434293681418040373080650525506759310282855489116808829452542039239831374402172286453521424156494346869116607533595150757818916703545355287923562755548688047534462204118583814617866891351118531065080366630283111904156719431002128335737300878597471356229017153562859430657611971695755989592304139946582265981663550904017782383616634135637436781834130317382726762847830233162464940627509100609618990614738182536745087676985018370881575130517894416468281085314728916836426191413238867491207326355904990574427793004612706138085235909762418913441180036271618212184994031626751898473185938973592283617443772647539938476558068357076140339773853604817046273986357125526997834844359915718240938302382361138047232027867830096744584418118389721551258744658857962041002321457502485753799507942524207881945333268462161483361160145120368935146972202971809244980969932560367780991058876306023603759249876412379069857107896406950600261564020113886099279258554267957901875080364215895615557906110441921126137305275311595061051204683460672702515723478626630054580545107345727068554045809505185134967071092988026350953063041730971790610148847372776346057539451159885735374174451870713548694919296521123263816615634676756200560133690203036545715482891185595083117674779312083951644785155881450035271974545537305611650597384142957032451949303397945998352332891909416139377939719215875210029561536812421175552677672758764315782881766139739868161612492439684351718608271317002759701860648927160404362735893574912225603088421790014322363034294432359448694989539336729316720721844211192015665732710429334642600130929443238813135356937948482533508147510903213173320910360268732105762473724529949669260031049364277178827123616369881253247159471120813348203410941603021135121574154473538599232359875512049494308091023283447965164214035723281961281101382931137930345109464200089892369670304954975525473074809321985546948752073275688404159323941775020354980159837887787099754192994322863411024282188136125475695628459670424866777486766880492466565573430889297159522962826153785542981044027732617977386105234145603815100380261888206910711185019128744652180346751919364046158682035404117472967654126963935007915652694184745317931326364812251688486075896077664212641263641908096347932172841870045170356197978464126393126347545056815639992040798412067145714822977602011938553510547609673547193551350149995114868735061744238106946410051515529485316418382615118535991503014366145802865152752064458693301144318476025985908413071803048833365417408978915846784602044597323204186048485963367349186055633549212918908404579278636764384033120425288842520051185913706513801497425993203076663900381818247794651787782149717341442696098185721761946296838734366318460710694239767620664512453593178484745785795334286868141381723159916870719365365844669451529861232238009055688405746686091980093516617025636249817099534767999205012205887125468293701309900254802444009877389866296071398711477389384498815123868325814439771191204585247846797565911350672177981665891223878219659075797353640820233366750562723767895861638892883795595360239230008244519772773586898230104811451533077773667134399319503475564814438548052260070240507766108479530744898707972859767227624439643394162550414862815177252742411148387885795545513490289175780414501208866277214458912732698906162752626335341200896671442162698440221921104581704269015502257449921664387907008587307884356172388248748836686773990732387283457398230949574044407294988622465616575600429841088111684537210562253833894788927328758151238407140482540427484172564312964106916117787680754168256221656156874536766244728651350229127647484074297648657874205033001419002060050638827331861029779981410615247817020167213795848752238016205018166970882555193174601127178189970201156769613314066869304921804844796692728542638289024820647376014748107051970350682437421550949350824951386397515841802332831006196686045352361968073080332578060587353139789587070107468048558189067380190028428099057782409063873597135492649146347811564445358269311125625276263693941587837262184231734385828510685442150312737415143721364528945196001703616628464430026163140487342065536692892760545473659506073746487148661304352820242633698217069377366432714756636658986090891886847093338590577635561141294179620092863410507377622916826708229582951727284381893470224480836500097506368811278868162861539396184416335770532712337259705485422176364824075727271392082441072952347970916524711758160445125833091592871631014893801858838245621818603799754255867899922282163243212408225953018930525799622692176530629754266483711610455261485419238700712739998882941489750743887485875166047888690447384073628716419948713829180229458067406329924257957691651410008866856020939849542281281325913438116504040045902774959000500397171471876602138718306923357251063355882728929577825092520017350329137754022168570979219657620027290822499670426862652773558011907687006243195767702891819633863520531756917605067300481347589380899634330387056972021304832222983714425690911967577308888468624212120691963475828882429603281839616395355859339155537151465196786081664294000207620705652716114792855344574213995773359575878757261754302507306579782031100733789606953062259166384749690193826491960813733800906546136252214080306467349252312912535788963635063248291763548386962031377594442297132530731754149451498174149591099086927206332207085654662093347570325689817112875221520104440947054495065868277245227509886092681167748076275236366957143278230447697322719399786280580101386171211885478889345376972616208977485281198003210944551947172864846164039252861383630140346250393791834349897393952153579053773340414186292520360150979060456836382914025471993981171950825312572389520830745122751965918345071886267302303056109308699576255203339141271434158392299188070142720995812733886220365587317160093990331898894655728589561688980500183304466822575983461564067731428694833109206558610173617996697151253444886466244559214311898823990955699479888182333143763543043149706406842516014786108287775133739257232142507126048567049299900744136064802580098110306494444715738277666683096405243695942548748117057604799639764484835601986263973187288053189101539530370841784810335390817580172269346017605244483135899218484136498304506451761914886164983405426610380058406720906001331010358939120347367682262166835720062509828423988899759274598437757162393993955871633763361020133224760749149472753414165508149129664533819140392462966834756275533304232479888731625526966363316233318010140734515053850126821582556905389478181978538712715866403959786759476866082961246471894152312708438047858350335770707849733303293829028538400634947511160472247050678223728165748888727389693131108198457258608395773139339481235661799586866072627933320811244199295034960003631822567250598936531305540161849778058004306187424205679387835052042573911158012851387930344590944072325028882128674152201857107906344683455734046575691957981804150268776252484743177713677487635979157094099909504227916286050977204483633217727485168427839989505463798564805489210785842939893432697966234488206357752514657242950446891035353719851833748115192395117141873093637482143918719173989718937604237270600865340283573772503360206418764366914809855773548610586320836877509041518729324401267207335413290737750510717615517141632205592709695343107169419313490008493944570274729847467208508660001976844887955712155303156327422834185105608376832578344063305245529753481488991105341393178660696232266728483412001776591844416217884506929781320958227209981095858921256010355146697523593048734128498104013040404625102387364940795132426586620553474369750055117528048857704926707232365711349278405852287544754815244534988758145476985637221060133243795309101293077752035300661192737912732020672531065767567857311826385727646678185971894578785982112274905803101546633486862787295384059074638044594066241282615798069051655386057348411160785715712629869223880996498585833807878000292608288277868291692311838520090977675600402254152722845715370845470678501596773950924635043389745241283193936396124200076009211465133728191889991781623731751165252871952971591792361334421316889183774208032484402306799934734218096155637020197082401144285698471616442439839155818197461089590760637187022273763021302510207319535495450170129961072824898253810139495310469462204301432457263869898034951705071610045779933626817915041314636279463605149834871278486224211182346070078135755089218286400621241900684994507491442403968314374929894506657320999013032264592101970249815422478994032572606556311122728746008801763644764536442248063813458325392045939641336669060823907989615436501260773191388181734089261073020601952445349191859077248197132800158677601001848814907174647120403681210336239313949229839927024765806019036758012928332438010345407627283793059443179746580463819038239211125770769310541792801051361127180965212679773569368369863186207264201895239441208028462174206423287927626988960709819237064434800353285112347283420111087527339115771071492702607407766783593828116912428125855740898072027199765132625720001881718540142655392959069114651345583957822565112132127493995447218690723479180808262021858874096394842230266136923372901560049238318183795907689038767136660555250363651099225441334934065007444885760222947082752214434014129455020517711055885234142328952615503959895166784918413841806972848791051383264648543150542088853317591029851489877374908824042583439941724618023534525770937762065780791430281653400384010033506724275813736385622218175046221995397759769381711846630160581692157267816484377299545982381488707323279512722513352614015049706851541401150799017070472448792989129415589910726419977944770697497573347485884803344003828656253161661930592175566841417293098752471308919958990685622143915943242398498193424805300661046468802584193301393975608930219582000611912756866599630754944106182153211817142516815452850594704168170445705998848518641689747139696180884262890112209966067311930068631554036316289674734205466346317133836423602319176707372936576249790640430223982583266191178947292921102113897821398090209383344321092920112092088540028330415556269050929442182987222862320306893740167679431531677465103414326782359507909587227448703751397288238199620533035822083422292817128560312353936892292365879232506704544394941839528386594065051986718540264624605981976691330826852662809921021253931780723142210486532555243207345762635415529694732347812424749780605683974996534397621382618924761614233361872920039438436149270082540052007793955954373687516770812011802808978438065815383848591349129676899380138040328803501013338147279814476734040876709128043135209680834561982263518557999249975159170597858170672551168616828508411250449409745931328462192365204943248546064463214597683112257712685415444138179744464468538486059497693039827756301123819579781324337203721184325787429064373467501432131530684930468133714413025300595946590830155880032773167084389821700470848265778919447378020636108192474856896011740445173903478426112568825027215678760387328775836559825136116680261258464250381574668767490727620193768433024660538720808092263171163382506195061041000711805058034962169400566488083403616988606402397497277226888384779449993384020219190114716188343389410558460215587100872497896196944692959511262952126438688602517159090516390339564474467516342230623491244760676469366476630458746083385823073953233882760550873551306110941941332326191365976287799496510058615481413277048297538034353253043536823667583871452248262107408207969374057276164581178014333497308653782631275563436878825570415294376161983051596360308679865348585917349906393950495133832711569584885592553387509858812972430364155110135179259106129749346142086104894002591926867157399691062616178965629915285718481351593625454066531101312260210074917008331028524326581515523801885045663137405454751729702549672683254056766907553246568464935657393594894041713503623439593640606218483786449686420056685871432642052149858351160136393842109412349248090678889213972250292761249076991489307656361507776809955798609483129925950691436442356470122402150063322070497546674054066997418125725928385337351475649149592741512254068088904840524235942187190053986646444960007485983358698802887886302657074784990471902814883653345537922699732089546892510816884325628765260615343873490416046439567005381160565289786544730000049639647532198269303944160451933446368110748692306724297063784799882024630483451799976160283361358619665429454529881053946406337098748890260436488469768101205845107082904524067416806750072067483191254997861887313493312357972371691843455692481304035478097703421642612325366681446760885385022555197487307354761608402372559042489505184252375341601801486355695314143038122936163121520022163271262001453174057256907024645189347539351663657387496330721721348310426628475409635054430508153896689095955747136784225119314567892934054682329618615858009685896542017413404907697169829231589686718924560844907842069796722837496983101579482190069545202299933472412031969808436138820634328364799989867977574966668635330750606498050868439066122409211152193707889992952922108282962226105677139171080509869734344774148385664628192918184220917944534992037156517486595917008622883310432480238561551682111736821704852200389692296469397654901968128863536926161308792557037912402012445241726553853364018955918261443700235336393895397744054677725873568624601610856226024402673603146133614611119059730804495202231490995839565051457201340163073931554624342525095313535176178279979587740260741234094409012219073843582598854253815795243890611223974038992766060449821045186669097386203313256759690221345004399572899549328689757681586275593825732626110511598307305487808163973897077535674445276550807285737259597458378030732472057690225620837092990687304168679720284992618116490281727843675346252757297369847376060731063182157796241123942593421130295600487445937673242218951127364867526084438739718445027807327034950864875592694481574735589396490778087958903746718196586134870715515238623187603195355025699572997784706864949879928137311206808192485379506385532890420201817520590160949038829369949994262699290336821855663660257168014923827931836364304517286526651667435558585363994295323312923220352453421296212895999424537611312660458102376422644698353110781894680596946902944058346961920627277689645815039206966149201141687665548816327815341901045188983060835509664889197652020648805957925940752082372587199897947335496399076315121963757319184005925413402696765024145528644384085136433206477158206703694197325779327628509748946030894414034044508678408878045391968918767182820422483787059931467731297022422508226067443678082387628923361191208239303370769418068755233494499707165243743577015225999810965335256140672055281882910521490599554702232218264452213850445703278155969397862525269174791832211171206331271529761309956012535704129046238538918010448999227633294569408101502600775483426200591236260284056735814420176258536723247684109532374165523248249421754053569202001930378801635975836500392158841114758606232613119047073198285017988921187716010801802118685648778603207761519393409516655172120939809221620759989237910980994369489298716039023430395576610703975569861049475568842160262754205657826097551926664232575750660756869321237594548870831374362537562253975562338859458716494237115858069565903189225305136061817892822286010477365087926774735412000272115137358960390979561984949152696430491492663622547235580318039378344270918130366639287437255767942195489832373202147741750094317407498621280405196498556776658027097734128460948891655095936527464756681046004619141312000586546286457290167567134723991146408176506883466329199229611528775470428087493874421794047901394059737486331011173465924122433773130754477575007222604409196488550879812347653450642335906400849841507282307585177734322177633267788478404149915907059903679896386380898144015836815058913871257414856569586484225506476607875327843771699282405645719450233364791629008042874093673625651386571400209509807275158814702384789711084599533231094287441944861276662683992543808023338366863486974527199295500086345636959714303067008225453911640853821017606926967627127012605533511057409307690143408303613506029358812143117111497277131803859505083211638644790502827372488756914304122778814337278663690419160484345202769784776998886106139787203581307082082598750146608724765962054147560778481761708045527769284991860332549294156906285929744582788449477873164351958096502946793250259388170836340712071908601242434756149283328744426314781617224905771797872080794985790809749322216526675758109841895966677433682916561872030876481498926755661469851372968928731491848228054105413304518236163919002320764759763366284299974929468136447324325595708560075910761315779980656463493047503680369686855219701192651658896811362560407559269156477621062556445749852535468279628721994658621907920311113940601735724664638925298078973745925570899295240974895735314466383841852027192403745145331300922139617707300431782159669859383659703990593494964679482700520884361642126165378197771632979915470538378290014622470489830413957993272604164225674078317179083878940124962831281374180416150250259540327500985029619256949577142309058381305755279906711508080354820737448941080375232104520164400511511087502112915092272203325324259013528098457593988843070840981394527845590502672597049438783828281296124423053493890240979408397110463831017739288787714184181224045500866351810460910162084368146829982366190838861351779905338861365126545034941811574091666507561968916027174249305764451831543396269614929813834820433318464204362755237182393660486031640966645972157034155228133639369065488715791254239108000237988397225469558629824368774642507046230831581723326263047278284209022370285483600987953031482855764535319126780781346001383477924172705390534919543696131568314702240318462130508209065273059390708120159520347459768133699632818164458788098184030681987717120479574516011532161004265799353721164858796919286071321658788635114338662059572565631778722629187725275078131706343591046551394168544159257722900694521308662064327810065359290655056132839885695108721461013779869000032987759470752982191617949318072339930835690804664794403415877119566870827414334550391575724284321172383026205893990564077966826261621854566610436764044532342644923578301959889401473304905732017478376944149819282666060024863466452008089502549373751980021447240382588183540467283501292276835277072437814619928238160733044106802931965638889676968258235254783669677831424427177460600661556541510054251782694971741577694006656955452516434651479736365407652562749118213264089557819474818741605027362414403670320611087796866746662580688569441913192835660530185220761042439838533557611293209877923078247560108197220966583939049403161520083190216758966765844597211857233565579951239456204529102932860295329541573276242157758237376011797972287030353671596073920859021043817331650400795829315848055097947392671212137064968746222436515025140318351757166086266350964218937638614691489243016048175027741872243309838356564647802173875550682440264461851085747206995528163991202746583229939271709283722617710727067607802097711081821309511346591630164297669491047446475080069137916411863176365172246521877754818478835948661867140531374212308226923303383810706127290202958079653410009556968668415324158800675367439671093494863191942666348499633309155957655002641344629596083786980708433511563884879834298697690103150665219527284432217698989505314129275000877281176348115153125297597036582253924185054733443622834635994300837191131045141250017407751620134721676170380706860020307621123157835064750327697212132786072968155676033570257633293201044100974982395692502571491588735037824994052979771593756183433942080581353110751277540394369617155753275417962493828234042896400041962334348008323474053059835275862941755025975114381539792050818537493728115081344130737699189974092746139319842267863996948893522819333213308398105942328479898888739923046024048942757064131417626208758662867558672798166377317241063312674434860010213624737842042411483947767152684598244969774010260695002171252475670519972613699894266610001740662650922973272817683964511941622739484726348725571690295567054289611309823426981151754959103134141063145593722058416811026904280989761638817203943434244003958784452526750804862383394494627070552312512991148959201137152271554834851100069196595735860664088929805153034119721225857745822674389205872808745241625432203361803173913414785438444121722555797182989624943296043995697085654209926438389649995061317684246431685775145465172078979265029684458189964139605270548797087265526231905149322220216654830947368336269193738849445771667455732629686983649249946329275340055333993242071096478244904228017798454436962058372242599144009489415508711998951467867340856728941159847206617162948258906110504502975298097675855255086133762146741339385842982961925673729311798021436559428436064100588590794026897706447376848796931211476087347739622712849665408386658867548821507396906923213235964208552557366502568816241233860094408135496122132258924114419015921177173759983867618922361373666431780175102622000629964475527559385877508582605839970047589279630030555688184959199155488815072304216852317127134020151867226570229587017415117910901027516596089077615500195112482913218017956489327437303006486515511367498972115452861202097211080118977888917401163120915254866023983374620230520938871448873656097306093327580596684587316600501799403476299284223059252639725785581656049733480844832252223334342961219249641450021334222670035387390882836982614570271310032430017192803797031033503391276517297424782653366832369282253565188784110921879374369335498462730683572965130174982815026170243217675430632871302285774144708740915111912354270812479465772040086862063068641587734438651119526268063513523606166253180072922010898006265530437021696048078663541582878450851982666613034019713131880537137842140925346348160719390818877339867326521683905208653819355396806516261243343092781054897304045051981470010296797133898592542762406449437185966343694425467927821412722654600272150343869066504361462969808593524467296635572422100355290900446244393726546098363491521378237732153974929215637504173839369650654446293177948997212317422065015186199842823089696046522268709847853146605791788287972561091870840753341580598843168256792087262856623989910417276508119718505162910541978215114534617349946436804877284776540629606290868072105641991544342771917636093418953809141334100162734323845838107957916902616067220726439556241628300392628718043401204974453798874277031039859088073862979111862338938803569039290301240039765433707754663866613150780455845066643423495835044157313665296063757743198088163094813137019752265085812116385413261964590935840602982271344205930118522598322101217729889173351899377326175768608394563291723081048907409069371577753472335966648890268694750871269530854109476271750899503136109613654007725607671873327021231497408320699122708820098373512587331239308794495632210109744178210153046310773880380182729851847482015189102334594277825202913065289797449322168598985069730776907379580096822168664628003013515315495992425256065165294879277098087939535701776068986152779695280781403617093570452431752868939431543839151688585597793187888500282159264773591840674638680244724824286727378399348411258329690183193276679486239197237201164864153643834818498241767378797476077024304999929238736291459808587680417764299907084315295441716707319856440043752653720754383933324065867780240807744280064274123967338288790405774013539988536623735883609705208427823424517922961920623381235432512258862310621692896173397300596406640774966733594323090151343380616753770572491355485558211637285149589258164983751343574493922026631343767901790311394341341899061165243935719647955463277378733983361638592793101662210678351063441298841298216970146841522455881578615172614584760980119000575973590529727845499781678595762196588227231227084255468455158643879858943234206145537848884059570496482175381479633086697035088078368970141527529306164908809205919812413016389984620586321098313608587504189875599383633264468215965932419827197766462399935452414176181631870277449455353319285607297661908604913438502545417420560665661383763865750618954735986186515862080818542516039466905335854549811311469622956539274265171549104509428873801042052858063359431074644783219616636640566608643889642371867183290018156110886437549601278585879278800927100484646324322539001930190890450854222553423452883595466730966363102502183018138608550296046305581492937586347076714936125996014654674868745779438979499448939494149391591953410121712792165280296000486346334615598434438428676196178369715273650727953096005514623678753078543611298621241155491235624937505277135769305293165977138557884524675188556511459865594925833066702390987129637960795466791814932461366284883313836752934305118345023560832222573867768333046385020373135775408676653054948951522622836736458376270185556219648643691140770559913506502118515211291379604828745330508470097760915380268324640720919404981265214643323096368505515223286868413113212257359940041608616307934732731594456745618944124600849597070850001324378679069017040326023143060795503884008036495803852268279089875144141563016321276780118630974189453751295766296427400902448921075781949591864610088948941431309329947796194987021502418145566945672306868834184978375914090439870956855746449485480950729569958669324744308644788265656804966838856044726268241312069116144941034642678755149500658698802196543874755127057056255998206359872036106100240095576367499870652792581510111618325631084898858091578362296444126494644961755544661669886403248760984248403152699783789085640066193108442688670789307918001346136678173943914279329960375906251428564819485339477133316684653542919244164263219750597847157242935577250387005450649569429138284446025017350249404337780430544577170781210543643417606727435957922345971286643204686029310542123383552510415718767393844991192742569226167589639282170192755209573866842491558925619628185583848279833681813601598996909434942179970291554069488593705016930636016025575932989593770745705194577663920249156742049874833295383142266950738300479643825051607042829676817504081020404754741187268844785082967234107381697971824021144042561711814635082691239414934913556031571320695894982881019366949407678906614999217661711596810048738531082550204013673875946869330569220062938388747353158106877375335021894423665924599768496504505803675133677004635385291689748690976713835157315315998132917981598810748390787715791473670015400652163246443002889485785693382990782015698897054874234497870057463350929839537025433661295828268287169840607530640881735246683803078991466290473167817770496998715303091542966726574916307658811493991013296656109500511528949757091497350533066180174660759152628539580394966044815918848236168203817054201360592755781930994312768867406523469169384912060331232010000925353223398352268579988972017255383766908205032736800902735921521692434862028251226644230348428242102330084743247455377833206823098377927710803523848820277592052187767099800829140105551397700431400749194311607369575235722172772236346064398912212003726053815794074782841330499661220979755328660516771108118746567989810923130898353670714119258307961443536078420912090843633900905454309748233848902519574819430301436867873048507744060968018879837417562866116934731687405997457572939674934571873433277110359449582864935576819814408116882521775775919013475254425545347739877255800492721072167716239139308047281184591531432191546508948170086177304270320862324376394618799915193550259479991062030269457737505207174188426544453602874916320070561861584364761423643483214335266761007107993737285601199801679341894973061309624307246742030481809848426855507107318445157059699646401499614267295963393457480198272386931020086955085746833259451077491954310909422115715710472975516480137831432452936546502795295833776984348027982254541695081725239066278168807934222555736103206705004257664124658637142044815014783092255034972230821172618182504484424721073007831965271861804530311330271111141183300161579650426269060331983075034401660362582004141887648166604071210028858961004310873076477309187897039600681998197650206610259664492141637264215990685062693610685896736230299786651268543653009853694522068628650738046700759565818210579015396014353042747950369084239454217814969752362912531553755722405629973873203060892983809423791036502850480385510691321985209782693732009249571084628512629898737265908117213415305424806754381566674977064433539578260998740449153765108163178716310990526056665161885768028369352776259420563444727095213236664126993696435862247256056150773924288500387885045265974559856762395079671061094132890075485688561981172313169099089734972022905784433276486945332510484326589161907047895950891085479525185323973768467894063018680754520212200218208074910303711237808193327390670843761954724085187244605309698042891269612404886477991814702377313154436695455992250830331803918829592061287990571225483081820662321889836061260959192040374535006007609228821756832609820804801249857570177483254222848155840449845595809244710554218607627268975160737279399097771947935512480532244037062334575994942988212515470857992196143056707619821434320435592303440250034066588651975984792174185423273593905314016628483632829336162298120252840316995678769223197743036290976563386288217605674857102381700238288377436956245855079890150657935683894488392146479962037833997719114955016613276169961644909176048704041669826705832355967184644720586604634428828975922204934653176009470239246674001067245790742509073901514717985830649236111577325765590813659101278343995966175666248650505283290058132531759857027651519860610103672456718870550080212733417705103319034776121882850903522820934128086003618487207928367724775361496654470918656218139708293660357446002295097720580699025644903425271118533068933651117244471685943354053962221149151634138535137920606640309808648668370161633957746294837485239314568049447764990960054368984673666408057977577084351055966118586249062549645441790371619881726136738862481350088424817463344509854516237561457059845852433618289247923729350260697658370148733223811098355648951652406423173816863650241259038680621889419390828758179793310412217977442900148080017860668539823087790273610143658137703124948974023978928477168163966700954033504881814457407465500900168527868304648640224405798755450788826862491453143351406445875628727076768407168828322385842976380969709590858541188595754435429294263100684854356182206332821773113470119597783371451945713610129910674834840536355344507436659712967786645058705692145619728178780261377738438791702592202711826760094807150886741871530357195981885242295235663402752793068916546893780473704103304801894304661004117301205833566134421120126232807313610083847163757753642419999286781129835358354691237752115287005391833854666624205040682583663185382640947379525112799322089781047276508078607774647503577186524200694841860481652187773515509300651976099858927396436508929407294091472770534644104470089448056727039995681174469654337525067002273038014254295720759757166334390920866704915840653573603620482166777394703909783744767916319235408780140826396686928019277047996585247780085384973504030052451097856644914362053386924511832671642250317450102081987208064124362090417023072330385138401892992919475456603622313247309926990698330915101248329733169570990268140052968688539558540733769049749330037803268622761853080528451569122894993366936977310163817423152172170004775999738083211698072275576146620108783152042600260479283131126106913375397967893661696553733578374964616885224794992616948376695484425082181943279625873911621003158213410974926099971475797024046004431075607285928829271696499177219805126003235823522235302878175172671220514715521941295645918128074278685020281251094338042546292341448934460892353754031506902579546043118082789440952044854027934752912323080631745599123401139254003962748124406387101707942886890467521506672466549384826981794727582625253329189781181762610581222686350842455292874633503384844218310882860071872968838348809836267690928512736980885942847852284230244204888238088346010773557443150164493112110045309485876025196954672829353194493326616448783187646661423169253650095993996798671384234690215695868350772327916223826872872606330429992690024100315615303756090945833027285916817933307890320544920763730145175451663027518777939542535997684381445994306780848313732028221636955160369216535369743714182906038907980719112374802151499893390134419385365701705120733648170226124041114586900446568230639919134311303516623147886679643121590392966598923664280905150646337720527952725953401893644564309502324576034234075051700702587285067220513892126235130686643923910674718842521443083958069482600572485815448199199895441065141490895666094219000032290922357440854541443534587376311573402030597669338151345954296727614295688918880346108028602001654015504520290021941295480339661735416782235737455454979767569562432021708463733036861772168630340815807522336058296578527075370255255782240563920410332736982579377361107564125915904497892405967243278476324701510438596117929255332824714341647754461129712371101187997195893113084868460553734315884820781378644750745569129271135263112123203497102078345228689927937880287313433228449142796014908416066876648465893497010377051845525020339954146486092202502506892681236964621210219327901991506273591430261416040720155448868774899395995668538137397047546299490273376997610640641280248422271805998514805541552581369475859652578519683147061847648658921296934542231107026533925077026872350305155193017427219070618568857137638885044303797280552417289510007567068361893752973601491835599366360823720428175436646089825529112485401988315377066683236703518534202147304896838300016306192853931839078941542829678774224837859012407942584793837632409361964758722791718381559540715519939361984140629039699668941372289221850568454794223883290546588546663678246515921089831899189923438886079736624078289684779272885830155387682545777388715792008304261393687838413252653885853020126008642999530108413501980578180607046178136982909848607614550414792771172457963952501406706771846143667721965169627980616321253602135031596488465032995182949921933447821903771499756416784745255426229125480799950746354886300564168790595535680333926464110506063072401186251440591828762453818043816091423679610628050427531469213843137320325506174905080653941533224837196828216239708606327074637947047613877705787004211702112831301057848307712451589477459068899912745697738265741783254238165741432296277322382696347222842060277948971947204677737876279763119549001865286443837706205128102675196793233400399200119099086327068716939974698235106831351034318018611163709531729407495136436717432888008257904448087854478469749504124640041074582447917685964397380417936561421047744641748529753476660945382367108396241810980727711878123576563139529908686496867288380083642990098165586147531760711074274362601342009449867675566557933663066846190949359996707134269911221869497214170158846762366758549560654940085622526872595160400877047017710618342118295101070358611127018702105791231668370426991707862917363421606354872420837529855588360752764554994676752450029164027691844725425483779000785678180250209895964991772759134457470169808120493837051085107754923705595672235881303229847681523663491921413494047941242751492374563172755455828620077486006711360335075623337189476457479631335383084943108039897549697103251733970577073828981329230844646755292531829562014794203493403368626436856396665327114244635963562069101857769947970175900210487047467101050436189561352400657560686219153161359658062618003838374649408517805110805899531577481228665786471160815361377629999489508079978164821897539148292183188379930019365146753672411397230456797095097727326808828810198980310250797614293129609948006845910890590637898487169347877349927612886239803822294169313909195882251137338805320535075323367965330808968362310973898859829061871101785218512072061291728791540839114482315113047779811008577099096642422397989384936414624276726371157905507732168467759344737805153033332754381862020217872251529510227826316420612166842758949092825539429093892890087843344612209319057195527602577004325957612986516585903371773275593549038261823601189556977639342006094559162915115238576286049068713869027727475448032716394768232531545283866454225241482085523012685817901001879584959685622612518935418052368393143862906821279304405498420383418281378148488234268843645297638966318380600675738668977975615319007272433070483085810654562986330809029813152168682240739734968351364658396387193707803175687646040757290484103210056540053162343305817481826971543863899985291668162821164532808731608234751593267828250199850341972392809692690560139283244245488380000356782642634429392953576956005050729676818144619787099184953322490065728928369606104035044769821165891559885938727648137316260526038286718392094308947586435750313658813111101769793069283369493234404177902698389420321063413853928848262115200307434376076305792290417763715454440060786000928583941581822435298485377001403779914670106699671261240480114441508434308662503580109592403786016823329016211819646227614591239779311687154224845356844197598521376259610523428156354070095197277162917017607854250361145654954815190904734286108332203714057870132597850085374995271966271135608010426924598293431968144242894881948829395486963571071616882233493651457507295986468390211300073944414450563986670615141231881096627366940481029821777046667831312856339732434145843716151089546261669245045717002829316315256964534098298841167823008165475911762206461954841302773390699013104597999830228901776676534205824616107853095438523337601110694330513991497987412418781393665443017671788653464511470636356171960341873373095565311068754636248141620917922816891908370515520545991154312435324595612243650999506164535147618387850932717002112425000704320546741663701459331247863807763656536600178313998543764347557693736356673265695477315486121264157178849472701910054298590532061215517374525127400374987485143696325107690474841576869512640370952810416386225273922281052677558030741983723365443449736881513934577275689367842011190124810001221663462007262443462084882420980329946528024314159197984564318518627565425095778147251318201139372939697284038153919161345275520869562313240246044079401706274076297830199594155909095669469827731071015574362653107336661138534112604385024687458915345607853102886200741399793021599796816335515632616551539056599273664963305447080098463142950890263522983881464203515770453492057349030690691205741581638080381437210733361368566774783677580569617391941016035469382869004869968367015341235536011002147843804599328500997167038600655149277828870758415085507383007567479441542999090773083277840661520774236426813213835598533314576762024942710871577521029546390775213647545319079690125134375868070429777523008570200671805018178392791230870061112316484806090522233790543190499275066390880927039177892106924658155771549993224945444350184194616386286931699960063931398227664671233904371755873503422280297508477615629686760818938594950450698743288566560259295600865911288776321673686213147717834869366606640384744601634432715184562741191476500335446098052223634885472425535649961018393763307188015078992776204590296470226263172202778296507293231014326501788105090255300940004446660783674455080846762153612456394449883884032393469604475041403135238554103132911950413970754426561825161488462328103455289500670309679519835331051387766008228241198810758851147664460361841470350393824894633359920515329561133068054189548856465336379296897054975987583357282039581213964427006498917371675605902585120094852670395862003757454854636074984278515311228490092495470647568946857286284533247096597361405672290736276347656391076828362590918347763288150174381023994295315768289830974466343950614250114631759283433211094293102249879996545476189336622606142100261122011461313010528153072831823109734928722125879005989934995679169261363601329932560923392960159158666135891223455796536750456404153119275805318947692272275128455351174853244102990131610786499327508919773650675768212319891554571516117021281474101627285428343472590503092453277026787213432563843252189460969814434793936883378087641349633163321519211046272324755931682412422010716022946904960755904070787855304336721580008796448167029594320189525546346480020470942317366937737138260716874580611107462912452334504610714443516452303057106866494056384001820077308394091986879126089442625692453362389394671666159546918035018651521883990525067464783520522171970183466253036138724551223030884896963642813198760582576380112230342364043546902519174560996300632519446635016713722611089105634424519119891318607561534134914068103535904726730945294175808073796778794452862608550964640374645814221475356685356325147965378452466666198034346862518932499278382611381729269947347343744470378644962701477270966544942101796894906360710926761637905988730876796086159520700740837004805013259111586237183494295086661462108438702932526070689350333459937641450014983021279767381982206887877422331702861090467029723289799145264001286683676610805271458945290888518041362439280535717212902429985409598230464727790912414571392608548041308272578597197015168597933149174439236812887193156454172779426637748256653019338292296129427266164116262172494260710870456131658808151432500118788293192193700487452036338335801988883076352106281734343003517889019717026216377157963823179517233638718573850440116702647840013211851021713087094520976926926883727820915537723278325617138895720445170615880503843816852218988194840321991214220155849292855293269547127406811474575081492295434126838537335983786120541363624171637530470215448370608660285394997469135306140708922676139894826013368420220605771713553296720633180115450971924239789513401966085369151387680052152549270344237210075273698459579408145136219174441703559025285763195981601329745790293069639230016081588137142884840295643688463097149684464859193653406848480853592463286838723232002114593636008974486484343736470636091429306014341723295206380477474122698357923223779443405131575551299955948678946519477116615487152990862034180911466318448681284687117804144367610960041655982089394888226644579273370296040767370918659045799611879428698987906168787466171562244517859767433470600495310576923843261139963711602487576103580397649653663529110505387786700009481146639561092953255925869618551187684563400245644812937032074556743530315583053813261699774054686431646655075562444838922821017354786760516833760983137170118610232916206843032660218864969831012735129154143845508238029610592236012441070494551317553803519672179719597156950049802038434253862787411607033741019537523113336717742046508046203920342683550580305408714947783772824577645232566994303438690679485651016995310443570259778419565035582889488285830955852268143798709760793021349374594782654227430001673122855136672653657591182515653768025325309202263816384974600130289384331609884708515123183283911319481377065887473855223079571775176928753205224559488794265603907700361900923578067508482990903078167651889694783121993851864198438782632977490123172559858401796236637236824313822092439267247032550869735688162822284023720414061834448626531627700418586660426900525607081620304994695622286816215860857021961537532180518870667002372055991319263958051517780979476505025605513997876531578295156999400698275386936956400064741188376267608970939754796870863125949638060469218936841411252031795370370293097061840190008682439004633552192529491049032028447998473768063111101878727641489342813541597474866708810286640745192456526965287551498017482967502124490636152063465446771451086551808056048444338713684763985480652151563301197379094143332652628846728859493246858303985042317061142556807689049615295027281026979271099588678224671377715099774212570850277115325251207475980537301019382838971322073136312324290434995965155854016162497252450465203715617026567756480567828494977702163375582450517034575401859180380539403586275116604809080509415014230842359049157559969950458834359437398696868408169028004183312650176457620989327647029135825869195907761754334437334188461108774402505965435261970317600593741388317928306435671627236283442378957311062508523048529310360416638676891178691205094320794670957298075359150185455080058915204983837568404846451361570245879527190466287591211188561329277999229741356011137746324326302663043960610220674653867891193119220731092323212307040891258458607493261188506887917155576307971153922037067209136410288039122349078650567052330477366360629791503895974900950783220280365231318277769458127701692952413568252095598464183906994628609740425763780777766279406412225624020041945292654920031723375996986334162953239535625058584464319886466251200329314306683938721097572652838778840789195132304617622008570111930447947701611167863927090526390506161943838006054690989154765170647610670484382228722344970181141821609040310962596988869185047575836899813260688684941910633271930038889026431718893200859487581312549676528730392659558915392198674572176200205052316711148923373890378765263655681815666920159282716710231126511307852869182985759926112937838577398293919680444344022875671525926157177283179899602475937525755531098930807284756055244759432660771806243466661104218294222780098475163812480327463834372062627792094601095037876182000908900735050494105045267528467992119027734121126994546008169037206450518683690432515356752589804942187294502687649688246970238840176009322572676650945074552770362776433076886551662883292621006369561140458673296133346321420368449543488707059800972939875373083820708830411859530464555735134125015821409484211507788372386215856109081520784424785847837542408137977210155786294059463420473917649284090258531398176237233614540877897273143119236004229250539099544088692291770774598822690275190594009371422321683412137521201645020182393342092895169503118820538820558993575266201914874173916469103501106937222041402959680549996838468746372008234543054816792905014522963263512480230679577227515792624942508099323349149623411528387586437802370615913358080618652288503194162998098032481933154243673867977616645320145128208400096525721692933418071264827976650209196151736647104391079483472536565457271890555946566933610809897634859421744950957292669203420222194838656657910205144099235329026842711816972543379221885726178661714293142291370778819882898607755376169231816955373230151381361877580031662060485959740274240880616421457807809728023111548462500137391489385224622212001741399680276101118501071456498584231679224025882916511544252823786252841519326256707453574551628942249172664734748534417922785249306924771489662361669993139755059474063965689297215679968664355804957687513597842933998815456835149049855577303531988988200242172146880473762130307262643497212121970183921181946172058967427968405995232833746560559454315863322975100161095254230007598662436969747882581928174278391931380401750367456130259657603053006359588214428857708704070032787863597618674937179725624742023413933189500533976737878310653125299286052068128284595153119830204378457878977267032725288545317016833963067943715046469635736977167057541560045958142007450848116185392144050892990040154379294171838816319591041929370114965267441477701232866460030999130377604235151582937454074699698946515195663243838258934435170086379768356224546579627921569228950123624016016373280172924692400282878241287215165153177913330929898096473572292193517702721524216607233233175923811150695853938523784353708847468762234890368698475322495065650309779624222985637822226342873682326216838148804846721955151129703814901765595619065241926348124389440159078210476322530764599844689354218236138969863241600964002416040864628816191216946470805193415211427208319772289369474536889095173031564409624150939296078596731346777180157267134039659412520520989771718389529409472281344550794452361610166172732834432712952960938526548335411885405330073711547995239305098967360261470936616531961619043421240577344311752667685093593744925025788987670687637602195485831977708112252773564535659005097342845463872736480363300707201383955994919772401578106145938373378197808139981021313406077123241941152462014014853885814279633278656962580040873179369173549617392463893968906661800579510271588111458556102779953282873450738516557076581900446823103755935001686094026586735211050638954686858082299800026921270304773611334860489511267124326807231297490226806861803328825094059830772979757744038751227057061547909297522513954670846468524982413790368145168988608958550269883733176233950315133092581780313201936398887947860571532559783688919948527255050414242987070079487444069646758413642223328540709899237664884025214041354708089726759588835602818977761565429710186980214096960398107008503637154705239051217956232695902457889593392325385585984080230752790482251183775471025761328762368915091928533799230837003398168988700192587666359965653271240473675634569784615899074637385294569209445894357784962340711320556668378358499886223592652721960851556435788093653041557840896451131837144045750042148576200801926360190501707987894390867435540104068675263974475355587212084216899860347944211680585225335756576405714569402376632189415716647859781582063508380614423622432885823791457179722749966642224145033935729857423982090093353940854078932239067293940564955235679291450865131040913482178869726833455343408351539678913449845241745117287711897352334738171841232543875355110286484402726972803736154049310319269704666346574427554898137927508773998155598619746896244988313521896820794015260112553294516034562418764486924341685108880249964305801913703947455132947737764736748769093544059464296682264418930002646645590113669062259547797535707166883378325694563219748844817295843279308139967176417913129395548616765549456905509532573117366779409969802455544930909537307704240036815019103550983904004006717074063044138173946875179085939609832440589948461092474669119862984790332031490540360406737513235336058024945351924239751866451859031899679749341865144761974251257864723318096587538403468658466285493526768680849204875326282433764798728074144861264841413126204707779210807482061976888376328118425539555591102886826152639125603210946709176403936930500267312744608584967849147689314234905848626792714077472595037923468129459488820198792822045243557874272080103042298928699060280197417257187165799539506687904841031560485392225864396593142009430856382807581635564451971577277509119558285163790740819519687210890732733813296041457990825537439784298042976914057680785978820162213171875838488031812119492466778360947974841420553410200366386011819435843099165443215904334645863990329430014450702749419923687662628439471238246350402578981210718986839325154984825899592914483375881023126207684957020235820811834986780129377439725631537513242177065616046659079066222618239694621402264310848328792104606869146999367368059846613443988752742398112350481379060025704716342432387331496712069311465193065882363077083999921153586843750230427074948442825927083567169402508846552495796677279369470221514642876453000051909369522818307176127559067947432749552542403244488188218452542929992974424389862724524588200105923314327939791257652839984299644430523882276205706833316535518696940878612123357156565448954160854218386482263278895391062194214478528756957787147619045974226975120827109995073808301505576917601032228577553042886101181040652073194238297190908454205198826205436384372954881821555391478871075997914742162910062941458400432871732619516067379224924266581770813235295615667487117065328362853500693368178953149177310589007196633465377589636776112429973040957679626285695869034569710585102800233808009676859400320366501535194776415160767207507928479082584532101083696312271585238988761638463137048037168827102390300982824846636968215849819112327791557751774977293172403849219237011270491285330461756059918575008223147240616262653446516256606709626544904088291352714317019985285034033674806852774930145646908182019744052542677924077608168164655735840280801466816466189103908242882512656702036724607450930706838417608232569382388783140146171012226315704286782739142751883843377949300332426849632787251157823030361077782492047504129790478086975686746564133010573394369859330910843990639579556474583915738180752344867353040146191583463320426098847116839067599331757111310940153126220703504625662831710638979782588576747222493533178147614677453069419414888003986836778277445502993350197826518234605021820158875680570344061777834874377656373850211350880017066053894356829483721093841074996215966565250889273515893429280698951635758467624039735011895021131511292344828793205243899825585802501769523314044733439259110655060537859633348970677213293328000901848525910383481922427258714537110186428603221161106603335128345482767069331861373126720953672676703620456920586411457376378357109180391935629300640931667514052151670056444993732539721211936068136668316649038332215807450676859139582734494673071142171902947860447016552110760003351607094614775660046797303266076162075284228530933641484321658298575350905888144080706090583469044013596725830798664860698804840432652723080664496308541211958973244607252039976141371063049815255525792629268526296664901740924964829028215078033814274122714989328035202782729177495712448744562145251129492900590563651568947666330057854553678119009492282203221172545242037985582666424601403614956455771493226917877756897676421952683680086028787208518347004829847623705239359929372292641528134109934948212852737934672638239822924123613420772707339938342773301210921050159093857334975746003695864606995626330309198543809808965426592605602633117948045363041075684185669561792503259204534351225941553656562361214542482917128639123798718093987127349228340902792045169600139037970307053450302213401389958208101101224051841838233754260093494841698339663350665832484486832540606967363050716882792534405832621151025784013692959081961821891342311445985057520729368866771987215169338928157010114732246135078774448305552198277943622262589054338192617393497824255418871475912502087193104266014036472363064318907597209125580519458352719486085065378911873719348644037317311808116939648720887911772467487345504975686441106719423325434598090876291154081630873326006432572921783652432940860711383630357262362694615019412983172417268176902033043468367349289250789235017307670826193360008608382914465628895438692778003985781310535277151812208167408609901996572055684926650938943090248729542785071927372563255789842271808425601687807114038080871223259941440189126708092267683766852681871547943993592038228706195978814463231340680351585671221246556041085706929099341899515575801811855353943807310109063542113297266582895526984172933836906428466702684670865813998408059252124909643005374365910259159216991149977081434106403358988076408603556443277843530173406872524224642674557708171076757590434819765657404664179644683379893489974881375145130361611628942515084863141169513326887076670871369040120905664411731521823416813825262997557452929199921821321916211183118327367534376731674395957964597515809164333474870256729287272200497571747932762823646114750425311480058250850511820715815891535023429479481949956097986242588297075242600576121922792469922669671728830219663106347159103935478719699817641138162382697188343871185818790347950131181086546479923827109698955808283290787427592598701234785878486927630147840075469548578419706008217318136863362944329917991820532860252007549080167142310789051533244292306484082379265776047815871999870907895145037289392326868361396659446657205577274551064295717650413217605605152846099472964726957849670674549922983376366987127804687546688929358192047827654489616788056772504764182604798659014389864640802224677451941283292568350617091456625860028308739650054707045473026040110285155936813969532831153529987623998807557565311815071164860037123090542222232985192408069401729224257631582227337018201380512429360885647924745757422747599708789078689965117127933314680769598880287577046737714295990379781798103858849361250700529526237312157959547739604395057885712408777483424897899447872973353794872021449640355970536139461600725489326196606810165944388847933487857658437639647281274313742184940794222586389546698568501462691995817785922184983660896363219780061475504552066585310897829259915682083807301785420833869855943331302068412526980049946324874841919049181900405522185482013894882758272869288614203493369942269577303573579058660578412979658724823795186948532841480310453033308445423133496087193349266934705377091720994057516722805867997420550182051407340377946009533335851300059141516268619845017240045190585336494332664385528122589798281040514065975880629996262298299370359047010394298790780073680592278876828244448135910463042429140266838152872244798933709139796513551269758547267528207498494674756287779793791138648628662160689928688462056990957832650228510632906712803111057078853272008124162584667718511639823762118766402766487324686576143866844118504626872576555068696344872761971307218933807615367327863762635906982639517493935057703351572854776550423781959087339476421142611895447661746198040471061932996228251004345343474220196049345031150331037762389936401442963214553489976247851537636873868597108541605231181100320073686811046513984985003812463100590723948721524534862558705678509892226580678693407074789822348590004511410874864723169733637577153503941465287256626299731911879374425931124485453558176704934770048700343453918478867076414543247313340035714781909998017016206867375963654534200163527835809583375452077677769778467081947787217814706214949050800353314633847780666055609353785119101519819612849821657918905755860997919968572300567179492509773314616895175360783694566360774170413727569394357594700497629044076446560005658082790469525275539296612627055746406340044430881651113590865942851751652614188191752323229552730209068009349515685197898424518398236660969351532220248718479730009930351103848136584708700072697425621575694652879864501622669628283714528803928052473172495156669142650400558218469534080584813239047439547355477429553547585393551874502986905964989934102003792942805498199242585746322944867134936073486090687856067710889866713192780563601544934729744968195796561628834565913157124854481295008933849544034890680222214992110132097240925568847096023018888566284740128387422540202406270986335169999706182891429998692464830554445306218662348723487346378742324792726584764420723728373770853957099328706968022253290795439357573720491172634307483670215431366985523172438864805817019749208645010420660056479626986042999527472817102480006111233540907229415905783283856426698727484773511388015483741999585916080447198584522682348883587899831757218135441568099772179936731482778775602906308198995759615748026625323212278467276920538983793695882302934081622794326004729227551584903782040501073522218417925071571406826055125057419668321531787887834965758578626177717465965350658175661575661479004096159535101142969731305122729396883684199604147462852950906845127395117628577724819149283208983762492482759867659552805082025727458124759369804112707873232818138592847131083173327947256530516698629200786697753063426552976801233011379427447027005941728634977005635530084856836920051511605270970047518157407965092348501304065074907021232564608370235400889752335581292536502210944188127990488355333427148194729544481070162601594005846692213268924467263260643018463236196021924931971093183586561120864222292145627257100382126423836104211938802044550430199126678432442942666336823926823487838723138137683556999260216319977631269360974100579309773678809569879502834361873855850039873032260988951898789155957529445074219088556510815951245844222690190921555616285699887506741919790807266631387758885790537337383266126661464923482942369129472247884440857214261852175315631844263925767311936874271556962933555539918347656491832062470830362126634726214071407897035707214750779174314953502307664415274538220014018904197714498404357399978620543312249423466003085131611812948419103136284949417502715728436848396934317230457688045682274221254371417623696298186953717067051985956883094179800030530951875919201471635265271653817693878255681334080900584329391036164628528771738172030971644302724581859444893351411788086480112452937551840542858131522941054918334689982826230097198392938830786441501558585711148866398595220848619486573544548541599013719589303670220314316768119700929710632448730577501441842830748042798658104959976071350798517088423373314090345578110774781557329604233034282137022494912207722818146770453246592231515038183215472230169129916250512384371972255821767205917337383165346557817745031876275481290748366284215008272561016736832383374882465376607658824679971460834299147164160194347427384229074970865576149335550712332820884937360851413978443721435027047460521900007919919235179583317798957068924896091143034471596027978371692775326998861829979959776853124992963868813836271365673336845421614617124195631971702004680546505745407830107894529956746795228082685613300652152616299363902028872758211079062279862475182635579002163132585999972733161675010246749294874199586000755937444800963777887443959164239261771116240486184557032685432891926204321668429705893687572356460433831768817951220884808947718326190193434956768872752410958562795155538405812279469405763865282273030368100091382224964412934154313297493579172456033825186974411631304716263356770758848027683788221048856342684870968048951116771772779932021133003820328892783095620323631027099969019108081464615862750431653868615060986560008431402862011772695275023950018943722711016859354932716406182227222694688105830313106134549808141130030503926557524994929463928770949047335108979513097173933966245577847942923780931112819623465024347745731339984862862387865887627187513642528710677638484563762974994487452913201418790596913534583914101744838456103117749390866385557828132474123471663684649563034074472510900013424965917330328606000105786896029184119706798557471593480415471444004056519522414800484050861157485344762994691570977986636100436974068004726034807590402180138814422416920758641993909025369144699206651458209691419341387107633796403515397243249020801156413192708346231876949166895870195367237519163531283781550266788791105052428543442268685671387383773828672982762482570175384694336857232236348997989056820357893851235678827809613673630037374422077235565358347619508919948839243556544847447532457959839631233277751769342943631805542163267212941870016879801384149275959099040809900903295019888577267794129146737848807575702635313130328979691547793716502771730799358386887244256943524099547258654957138731827375352742849626449197947894749012584609977697154696465416504466759428204503292011867079937909573648012286108873035799113209631469808926587292893281511709033997588040313323145563299712076303497524186691012620293479094990421551946895054701488509677966621911014770830086906023564115202077461480136194051416373731767612483918944040250001084749941246074985250226598761480267916914531917750714537171332125817745767322257065909881035571231114189890905779572369342627918063400890335381120825391476448023655333341590057172161852583328527891029570657274420574164641616747828634984073246730759902762831044862851190036746920894213609940967109591795119494353584879033007556274027516291143230132621895682380334930842004210351877735270888410426042298727166137418956866063302742221687553469081340078647653613013200176011781897557245365644612263631611512701377416214754711908765606877880025967140943248510199809568798413599105345157107147674121410458226253119230900540587297429451989769679459993294668022764982094859742525206858779208036824834594368606048126522913147828371136077425613314425785811810145126534886921570470867159734711659234250019819532115752435467507520445201264767318033623399275016102743876930147509273619381546946286129745954433308938255192882791229401460092781662286857083255597602740585372277331522155613554747269084706945196911327296083022667706099843995109891466891197548224749643480835364563418273374386729003354482712405393254690768643446165026866896445748262294292865844521103342127646950605990467369953808808912283877305472919290299594638212053309555863619629936362770189293659850310057825981786480210253980347713967861596971239203742763655802593013251344611762641049045687363864636247426987645088525996685433790572573222947133933071069026950155014967712131358399304095288706000921053564505429363837588437332323208995372370193529030813491596414573412514210588253044273520792774821649698117391275714290357287380178494855714059338671080577969700129640558043156077688121522916834674359626195425620786812185014432482156346798560021687117802334754143856939971134315238602210500182901192845207965271019031479540963508558787312259466138891876137138303036217347382764162995262589989522652949118596784333350449355205894478900755216839031169589920071700992890556068626016434938930962113853627038981459825252202444126891721373487372329828950724255731511752286221848158118795025786336221902148944010860961853545675181737415647440444130829138639763304737036433185485497080328761057759845299164045940244383026558363808265851464526745129318874178211652765831101977962623419472964389832027191354786768963088330519409030661888914487374029789723396332519091301458684055282415904608835789618630232098685623539999092226138008507573388749706123320349290147577914687234130115300654117440083527221921534174643007882776549428855784807463270156484093246351092124764643029948581154963111662492273193018773341545105699094537126250311969632112909548786680984304635997567324375994972138077039279213911911402430024517013133850115447005118386680084764979922904251453384916170482331272176745302772685330344647818669398459961651839798150906666429277572428750444654143152998183925781135222246641768565096312294459950747798969995443649666198885305439192919973247401526768796475761320310782934327509683665407172751406036334203984528369546874344660870699444385319693818447777760727807801187746455447343768273355599364875828345944708554778354311123835285061120257793603562072993585957174211697203407839654485630610660146191815289602191525000905224264186940043634579242907043791631499613450842889632805468803401021451848857137376203139492695088377697324351684697755510619970799573898165294716522419356924833784984719147427150827581397572798765659216598120011753806579115992921093473542193689114420261780377676247162048223000635503434619288690205201245864153314201458218271867199465588108623100736857772905788222454367286563493131163839572179613180022082432449047112211028372920996328649961690588972941519739343483835487865305749905261606852448339698434171361599660523476295202846122046884484774655308748522043581919481471023843868138286346153555296395100372931966994103397321231923909264148910854565292848436054846132588327929719232493922426894979917396074661404304604926806108681600755569670647732378321371592501773905005577190118185743719375500977280430373910910578670635211180233754081601906501427296589034563218297545729584238738372822149158614232084366580993750102030883190060464428664951278613296698571027538833576229754557183509418583558183066196213241255331137601193867764888766191828021640142990647939910555519960763333593980243343421166916372870463962762927795590979059961112107136116656637008806706761973768972679429448318751991337223205095268586326122996107544986721459391271461983192508541701092271571239727367220650618383309351862639812985793841836854608977238770399383866451199120582655077961843074011305709504117384373394773284519744264825551148079397510739393234403144248573022346668189058315259168679245751793457807353754080309935317852233475214690804700660654230187214251772063161114577144339387344771224856933208134477240553463550345428369949776664219811934742293418457845449502601633414689360622140842125216926803970766602175096410682605231709747385970663666579230735136059581398428550267174107775763631092926564676699520315879121138736996891626142718493809661196381212372556925746458035335947449563293980769948315805380695567691750909757572406051662521823308475473109745999867579445999494004115915347482730720972851055018573510390085560563694892105593384418626763417169789680304086004035007175058200220844290995201143212190797118412090277106523598453361095799247396655840830871948067910194865370525047056707065922662705310750172452771181446032914088299477304997309703040672577371877300519228747540636002991929155294127579481369067351398877602842763291048654385432017990610418718640658244003878552153147491276836041609963718778701547962821830321865644580668128939340359161913311703366898727646488679020985115144314003458583757278040654192197961266573964040685902201924654111283429186892608584107593885429598605006410488823132864327059057354409824373517633917374917354720406726634305492400824452952075870712199044616761272605068115935791340625125820038845038665028037068812325913621693544971455032764541171186443460817246699615053872514486038826517131546402266781523561381084936891860965659585204303601276184849143769964304250616805229181385961347281186944731666209142368171808233233048620308993556064669951395888186803668887697351970901297933078825503790981254251689320767077005902036398654665205901401201112120665334560701520024423483219211726242639568010352545635204668633795949244145155832364425973947295881317017081692594887459849770582692399428651455336917896520023319885176164715156669259320818363788823255311190774917952260130957371329739657124251256092319708750487180103381993863226910277204338811458485755556841154230214112259625321112723324316653133319594011627504951637709376051149195329366112550338546122191968794339149663317745060523090495265221465255983101105574568056530731503115168586580534813048148352775473479808289192966799865394808933077287113616280331521716540066689947541393510273916092176833578351632478187060313040281953791416673391469034084478918230649016922229993814010640543299071685747442628612385626133990437999456456383921544338469969405500961942642020611002882679328125086689420820579082689790191852196009228351959844680424734858032937178859904001352249329485159468014433660455274839039163085084917026732552836491331040500655435414819331185847874882505842850078094930716019419214105311802353792015547042763010338296852626664705211904856969476624433358019282678134049637807436038402428999885593098913981197728332528512500557620182609339621018565924291630416999993213781858001428007947057632194594407809614666275318193014947167152531081203876588074096279796780779173438845022298970423761815119805830520888399661607322352632934417276545196878129132697474533159910252668314381856780087950807390906163412135082186422930992864418907349079833640305634241138767431925683216781679018052427869290536211264621705841631312510846590416763895328412441869062344884188389864195507265242982142972385908651936754805767639354068037883459431850401997388182130697550509034341972198293292000520200867696910421954667710923278821475884346954454235893000904467919074313890538388229553181610085196196368303070937496033387777107262306357436823531360341772258657549879153787160641120511805153728645366438698270697732287615298485936102909849742670282271596287995926080827685236061883358439736994600892122684284380686945156031050373479936097441426191400029386403902346867585639276858977167788339776785078608171469455564028116924205523347362010041551162516541548675690915473125179169278480060396535709791637472930696564061132378186910264131108722796993527801949094261479767798974649795252526636713354552310419370028307408444996840850119984884279551773559910645533427949340105444113900228185570043908142446542148150634150656876726740029879303131054337438128786670318808776887218076616084927296169784017687067930342088427682847494127619407556311928915091048666848580013450683560161757170909740308969297015962975163663366203550811881558423412756860632632589118180308153936191434336757405804493675573435575681497533250423093628803473289684514726650416061195949326513262365022379104631869471106148985299410688266282150652878351737720732311966961789161508096264311832357910089113970601560727385154727317242034659682299397476944247122644637614158222927920289253703620712475913526212146434543481152753308487113355030540899725635914458161164003173660870227124906890864638235032051772728486298784533629271170933583325433844168229658949331833028788551387478699490128207467235173942574670430413405865926077897985824858928434544070588805638857973365612693942202550440941775109799531741390325086715649940647756973300960165816269133195398140156288943376250886354095423772868317833356613455144799347044475141531554200528165280297403999685911054792572146577772756292507833826055234352854909715581519000967399735903781892934428273922743970151407898055351588704735337677692642882541570437874338650324413706757336303958845863582463314128962317272939299723691625261623800631220011999027849876938991703626318977957903266605193885145585245932726245774101011986378288906981024780546767745448306558522259843057687692156036311573619808684375334908289033349531928274494152208063303088103099942431157550769137486485786103996106310356122193306338138012815321454960799076026844935669118623236804327078277566473113058282511426126351830649737821794425434450888486769277370067686583996899253601773622002794165639395786257248107342815669361905293857356599557274217408988886918197041021502746427936300289396017898640209475228761009062372958519015151735814143668933842345828778914399741828384622904381973346549407860244977491330056388326636538437624612536533938905565275603257106513878332293947597593331535128978152625588044970641026679366348757672322804636060769024586320030404784905329406512739202440198214503817170020103745064567275795548827961879155252369554916021502739480838968335497814163688886927984557466577465718468879391158006236720952710294546915099341276498797968038902421570505985346661936360320141010694638208952309924191550294305791592821892632483996067869170758073518691633545694288409220213862703555209609704378994265415792383189580687658118131232326412699551722066035155616809022925359251290153839464394884775086440598658870115751189246686233733371475609563468528448054758703956722688367735656781999623157872541602580242518649419869697284668244169440880507959627780157221076932363981210138413217007350418752642026098278025970624496465109615148543318539210860646326844419253988747318668673391051785765372493009974862318724391329783203088767574015462428436128637607649311140153350060764727375561907143422161561384057203331105763901098639072584564260700153060914396124730377046558163591013894481815114437940191423548017420432423146617802457258542288982246885575499791368718387782105117277196988054425332714078021260924083131063361618692578954404512259533200019673639068777688528180342981844586138499316739163208219095789218074668152860914142656972390278866329206794453385147390390620512532444472798275780114048039915971685401074985782600284221451700058529779466602067146608440793078319305443542897289349810325590505422437018812311907453673588591831563162383793221635911543521037195871533552811826203439297940101450833892040181001026286317439025777786067050523930883492712989262129238590662002506905150217100227378491807571324193936219350581454523925872305473212796662639250348304571053386617046987740078239164033995131160082089192593331229815162304591889824427248962942331287274049020213726943622339740784433285144242546184322098770789638875529951809055786537972137707113447634199431098582053248640808384241694165200254278928870353825374488527906783935568712823923816393263957665997255203659329767564191883421553383187947799540548743083632532939877704972559515744939627735299476546848967355831287961168764712513277639849087891868920647131770727141353524546925288127730354583391021649453193353733792540995007645079654206482711340664601186846407221710926618566753931023661108023253408898080653553629258704526144916915395944823233948467285306792972482293941124984209859150171997560410528060502046464547677838794856754626996220860875972624808226232148617319360916684217080172890356016760199832250304548186546620455092211452995499930767983065071174133506127265767457326974517963994804736495758690864481787050249290362143103831166398790832738396748904616599681077239472513971039821791419055869505790544487884133276884275428595407091240178762846830687775114712417562595705204567785095590579496522696927202893337211386495784158289214306040939816746120524731178710488704489716330820302296179624496540011133214982149945333552797089316076233709064217972815186974160992634218571078783552800009117888744651150746111954987511563634152679465062934372261874196793381584605393363153570707652726927252106782217312717221121546608264767056278326964607364404101691940553852091422343593262499632568536098558058825594104537235570462162616167821557534183418290957010026326556517839316979357410658285198069747662003401825717142236232423108281397457303366452878726990125534724080283994857861102020179156280335525144140342952286396754995707067990198729661725129147072035576484360570660321950757449097727899011726393611527494738150697064319464972702612448320105121686852337860449935443822092135656397701018909899190448213699329978182887383437294242046518163981766646364289537513317708083200348937506812257525167805923579233525533535800299014898029646288773555746719485109800682600545628863915292582945943340409045488211622707704823511435291839977704958348167481234317713247404415668099531082093234444864943047671034656160218986190459926401564203476255862098158982825590703747517740847981261106881245497894930120107151689417260893213333046669124013367979826413537947806181107978986978128488562998028868706575959627768081300315388620680521668685742960807525824272189687638056715296554654385560333715194607974523000361990517357844860832192276220643316092547994751294684949058527633856284789244377534375757408174098096249204049853688066579272933434008145466602521642231705515796329560204401253497133822943947254188228116080972677171309580269305178380434520808212525639010570673700699265815645028884572738236667830446072580124034222856431405310639419298816162309357191157420796142954150860111940015176728294449503658556664298852836461342012476225368321954558873266026401941478820005031473294349063307632339037875624958635292823522390683246534535162616595992402849334273590860820852892857854575755206025026391330069470250995504737905175134358962179739777035692933240772569164710048259718122783634433932792931562445965044158716452677461712213175624829297616504053880024903495704862535372374882078162656748196769467053910328340355966749649842367929223368882410557622271322898681710540358109094875647399775530451181130410996146816814931511355596925570651872551931209691852849732889704915618811346372195034958919202327394171899185365346041724949503776149622516126009217898174866006976046140748762221770201817961223809678266364046828686326726796305231952807194915741853431622187347048094455417435764547164545133129736486207835068705644871505929677148474006310798655131985641535116722930739830144163817058979173003730280363975512165871820644461932808589777712943112549719869028575331872378108391900029259899957440718006695342487280337826654311828491392237224236097740196913186299780228768071650030378590196173399145510696630374962563135502402167369343364527706739700000396192809133292800261218199302003065856780845153365254655228696017943529937863406106384437965917235760592364294850224734226387479366950402097496648968991245433043837520358795732372712713412946278820940328981526781459600001474974964342034177923508842461885244517090449041693373443102824132138865896847908288695503762529889873346279987095654824911374801125734546032114194583468941725412137713361501203655172492130604295118338761825745080267230880119812454571852921586487814004084028129781381401717345568527170290533034601807480456596161066358134316897002510028702333499420333774312412567095734999333865080762343163280409689139342001557040613085695915218614850352632907091136396043716284407258646296834194734231958375076504589887673151069320431868965384895789437390887644219354227625954149722704523572113422905561081195746581439217039636587424814993418326958802662034614123314073711067978010175364536511889070839472156621473962997594347287604476350620603719680020469037491055231013716468572607194556916353210177824964082804979146634423107401414884707996355074880661628823724861303890756220853522865926209519537364051747139443703161055671326605207359675617103811795320302141768672139781748417819976888143348332182966500868545622270025611805702374509810318441398382699678857757772100866513458386479452856290481109463032263407882767463272001297255977289514433700167667292894239605232686746576789536470158918724080769380943449015300041683552296080859161227434833369434289538378765825915728655775274907712221207025432167552293725317291122991216330080330808849407131216250427254338028852719334220022136666169388554974990268947222590522923623541626370755239492495300713368562326393823286713836174452834924999617671967847359394587563212461657431675508994464507347408174707960775613151234878142350229369180590060489751904414177593629108357609565186988895924437072625337013118008499674028209782526912201769040858143390394805756524894314695521800060360995152145428733684264868519321284351521964701033665824825778754044480406303945626197507503382234958947429663368897634884099731734439173635699759263538404206332604381814445282394078755334724478939087120013335066942886788344655105656166134802741967475133540149434272284520593608350387451152592024451945878365521718390551753026303643821207648445221216997968911915989661422505736655894484573234935706450045304347243350630985854804753088985392535304313277413576774093591092185296982542583093947754315968880755227747327936982652584662406897715039330549906199295888717700181201049940454494965927213938754797898389109718583408938712468902787726411603586559472635816326750742134911559031079332485731337071026841351824425111525424526667470122769269357033325535121954914783478451105857645605867414357131085397609589662117450046031819222383602414429590024339395480167235729494294686811672405219111953293018730458174015386753242955024930958897038440719750433475234479450700431552212324075595917883959457409327828517965911306915746540783226756879347901672951648129866960561474033455370037408054795645794213167342239335650093499558606067092165494691693745370072123471141417786628614280725668299304563179279062388564312760285614313315432767223487108786736726914895900041731444836305985043382168059077105649941807495365301702942565467926994749260514010679895356390042274383774947671769354724217236761045513219577782543160415018005050409613115014054347063162113636841509152814929227431406764328454628651263272594097473316367425806864193555308775946889085682032388485943990231711810574408702762185943095886944180689867252722563424725408388462910616648062020701917280459009080619188661150754883587391997316350038236024197399801868259374841988201131795794493846181894007910958810345906552537243501931433522827763201971552465462826836588565865243673324160338414110135078621728205221189196623166675665255939885212426937757117432086269524377725556856298152460954673193829131338949821576776277709068028664659762991748312014817746895612363613979667957148557269269271013125613681871323720283347680020094162400112933582635628649853767400577242338429045612350185363371603540121306203132713653875909201953619551334062268811256040730419635939564991438858360565311037391317123609291246289551375018294889976036640404041570541998230773147380661297024194396463807214464646692549087728198089282775872059628075685567102658810152780163592242818524900754861786645701224491527124626107017838061656532253217293612194896652199402839621434352235207815928895467399170126971533909950565498242343324956939005986268214141299430645838832802202901067938791296295881734962618189022150678158092064150433902996105392530916139421704312921579812210466169107326192717971385781044980821636901265657980849579483522639303737259201739658260617852364712874277519979392597335148368679518897794354474715662241985008471228491541996044202686519790906749056199006116853079923296469313673295313034962462061567478457688395942371570293090610596228998562551799326376078744424378358651552410251159236153035068236328588528461852786773696682225925773453900777099317265773060095888325695137051706406829182794300162110788795960174157119586537369332808048750452758629260638780335755604979924666532688993760981119960725107961499807715843274851850072073672220492459270572050996035208469626711971672137230105415396709477903823347943737373042613046595617031669269957513616055812087526219810184523663166433330288519983225679582739676160009496220554833741411217097413012744442840782057368098884795162374112890060421745041012122117513326685024438792974356288402197525670238461427407948374945641713604660348009586619582215393263553882206102961748890764546670572123272885403032009710080525072355432661944418070554045132348538919233680418369654180533810012806059771888332315546164173060372109906780057931181849088016750229013197260944153747652439425475672683704720621634662265147347724326236654124035774000591588900144986242754089527526919165405767433396259910070284264920502690301045715977403912148034235181632125698044220561696393489971584533454368051988266020809782420832225643349318168493086562062526499178379398038867435272885885733468424682219372457169527722447362598956289548676281858894865156594673411121207035900160454233285640216975752878457052317652987122979392606258195041098764881300069188240387980988176191242294853685497875286955796688921130239886998123358549230519105662597679879677558831517658303451964443850442596605585918891580180716574610960333520085410832100438473534168573680889942210276004217319174026409915625930649917673030230053046858517534706559522210521358668906139825921028787344886845141955798670322507858927988958921431564756929781646129326396817095293309558118874515038045381610259956750797237726924308290173842247165604891663241618151407539652571908099618533074380419114954536760323084146966331000784518514930471463747126762920460662019790893165547524318278878870008741087227653443500845617549093382110070046341537939962904547304116894833981623233577159045198739820630587470609464865354134832956977432549467284759522334069628563517357563605871732015330131013423590308082077204850501983468604771487879276364292557579891780867864329551466013811974273415954527108520125054355720240796017419813807251829890885069742123807903299588206636109532178940058726375755144781815969909535440240774347322197722263287007166532703099980737921212220579829276061042554583258000971822659135624412254692749640406865015203055371117071937296435933120086498163199878051596029725026358111601646683247133313075248755650463938519449790983214261672542655154708313868933760560553166012790779575959746816790070914978126856585094934623380599345298357806888195006392981389202325021362525826758929079913889125855489539538610488553087574055757972317074511487926744181739052841301118052886968536374683465702330481089090987046552766489971644628839936842917780748681519739475946118166976990988212519203014949983088226974084204579437759304946111879474265736204328805967754889552682765803644008256588981808945779641884271084355905012226251775516108953060385441396408282118468273460494913972517257372859037263478016254317999976334777117703114841913452953233091957687284836536436330583793342405955964994912064069989785336146390240242788077869454616248154252853701595291352170817144693325072643604843305697799293488185249771850516811039430179587418208255726107452771527348456469594470157728372341735318139977676214463382671009518501529991272184266203875095604652255592369019452830861458953363662118836956065861785937119788094858919167027100595900148048744224869565185631112858919853223999582261600350898147960642101056920101497334073718841341729878117279480134019362202956098785972327850047334275974625994809610081933915672079061103070214340725159451794841955876302237896055235376199607355586720615520181082923063745748851823450109650937150377631813515592677257848040888350732689556710486854072080985089821168555868557737792616869774262943097865187014086329594777148221939630757678008496992810486903053111122819718982026887624216706171031370091866387075288717141867114737337432999283517825414710476950774444637698075015415029971763444301234996068441174159195851895847683128199358637918991306978644653636540887169063714047814543581363323496517304069881824821120191517224967948844281252917166600878866628597095355628443017715759525045068925203885466770328157336584795359497932229231444215983311265050588768476024150379601777641225374384108684308741673439268522463313806989855289883989144719809411915540975597728276202514612601584651505519310404920146157251070994004355388040546405990933889056025105926108767247792852208498362288292518186735280014680520875859500469693746458135968692056684366301731445503745380413122413830007570167342897285668774749500927876152712699546848112487453290949153625507187201945698261854032596069250009867679153255827533495596398020246744846429710220927083142217330079825817114604460940209934646994171200180827567345512037452702557745365690288641618028753663471335995884039153353558559131817173751962823098631389207485339122121994955244721524758624349133377762253578534349945463562959104004393854573106833804937331702931146507220648392960168270315469931917647490737698720359593300531661839057260125184504699535011379907647062117180694549406311100909595541980819031982500580797675757843427816165421728639822971627302934776474580695218893824106846049012484636728692318159119234489182922542910430652810904599980715697608306750620006930620184965004636418731165690742934876078792451558447463456161087261870131307736757790440460556155805324807758108298887948249925296735209106320484224328952692409307119909922919854634143196719467627898971795882094547112065567078739544007922816782891517465617671980747099852937619015221141591616037240513458787135391355664745951507610297537232649692609896092557436442793780937175378198761574137175508119536999489178473994152756715497858472948999005251044098292051854219603246417462947527498764461159680326757723800186244063466540586732053362476320918454718965223551130465599063390056936160764840209052494496023274121921880348584778312529047557637492297825397906194669350002949202637745604063135950495931262039823879008083424769977101981748753711071468451423107436941684807942674827065489361728665682491646999369742329163152466436876040601168564145331877532638223431175748795231421762080814433274392380386608731228383286256936066969810847874140178646937012726658793168853668764008760469154010320955814739102047408579756357712305969461231573419010410907932328908133647336994066978748110279396823548790203573971985635520656547208732373995535551834060469839620687324878963548559528738624010959923958561706126312000932612182717391518401229730297603324928226618039272521276312811270742185583726944418558980438166696385098337332871565084504198112765232048495002758444985273975860500392619711630534767867486958402585384149179567183861782138425047492020915945991528961472655416336316461303547696787068707741420098861804851072201910641466347599075718124321145024204214062263229958579096017707137380830618442184155357265066105216594943478962840990737527493752875244138858415977171441953114774008387564352092508923276900372049656179286674334228468314515392347956362790967626889173022291905337062968120690303396965430742873202251863196601285210088963620019374627285362306022814745832122087975791733369353660045728120283615457973432676592039379799573696247450865522994366021300491175735585500289054888897026315526666172905188578816395932290876742932523937257626440853844467710830880275451873433497990596422071975247415061490704400916806644666585944457038637874095152429991739422341935831170010430257655626109711610142067226732281255353674887519667563650377951096649560273947255145693166552607100059162699734408854497386004108137769582407839532575941940524153230219255697913406120881614227138090460300895869796544577372796958563535905141669211175726626240189948705068249524492958192220119809488561036752779298665150534199903944677142698251431863616254158412144356972536136144687205783749235161463529803218900360898968369660597812717059463875699999789904391675138508043909497409815020216744352099127103843316141037331744365630074701853484412791203064826479683933047889236444771284708764673252711867789454864504648430411379490123066291611944109749737052481081642529048117745893159820376249514085875196850588225334301320323963487813679379596689755577178214548365845685100722060582611205551876931496396839292201012028337930662794555631612145454160004647618706647081958660353957100573230386919224678208000493016387486807586570928630656259695589408447867774418309454875944427738898269658076873734109428005773873775669266456500749466889247158637369999013179384461165949204266225888093893487592755368977675891950005741161926528699813649273038225144887725003217922791268670172579247401636149403002201780664930349839677736809311016941258621070900727803234361093570225497475523104562965065852111686603663903544915615720736310507518352017213063910762063639899079139932412807536882533996929232041391217528811469646335219301463668186978246245102826564304910374243949470154208339885130775518250840056352238531173128041855296587576977673147385554032227575036996148009634525114459851861089926007383652423403881732872110016511596401531567700535617096772393464073429423514018846226363433824827340811492699977477178922988579882640740428008855603367864719117942418347729049851107460880948165645096404676075478659873699909479340813832740069352120675540707434708331613444812836204452763015270106173066272452028295283808026203384558140164586834362653219877091861843502685374445453287870507552003320362340435977365036032590635644682388267806592254817079675023843725587199872039058856778469011556923187486059539009573238432167809184598321301227561409631565614000115243556853737404438496624551929009334847497638279955064337655791630280699846770005926261780799732568814458667410340219391504335497210853739424644841070514108236797054886950627179988498705521126764033480431696687797335133570901627390094327553462169364589115614376078146445104585231394397687158197392236481176161692240034503338175778899426992277041887421328126141482441020025851070337324753944313434471269666680871137529112046964048700577445738833269223528250644006167754700814662177980241094413743179812323211877656617522755437669896511436478055821646734531030752337742591844077860897117267966203566273669251754237031400700144247591260447158241057514237659354362265410618304845213442163209064734844767460022686079616573515520456636417987204713841353471064545456175266851829429108108234282322329454907000862335871580173720387286711400579102352476738227970795157947638753842450937858085958415715903276293189684342683583135703052427360673505674326366438686753745748988512063589234259329558580112085989331627011114946067858232884029252076474324924375561407159445576713954587535937349658037907595471253993394690862305881684778791304417611380607515575750149607995801907831213451798148704757507068673914334129149150733920374571233256235313108176720029954166335506041836183930141784704821762361311318619759765753629241698281737701832001393120166971114136431262609283205832446970704586895935944590069613588727969708945598817081722694789560830799778156630424493212044329588206717269401495591723038990959215755039106339387341487636340804645656446742333422141507421038343816423570945794859910304006436896787658972492932913956814764116879092117695088066368158917804451325160735957199139183016663922631321471626365061385156132101603298280875870484459058604614007607552832415202180762325153222694379896399440637124628379061784504882851217524673039946739143487555484441363446555998203502240561782516704121823678309361882954760802591710734134065748233736560949482881289209312979640780571985224151571142438416097018068114437936092600386329553635253485217482170149359687935705392816956387854035134458596475112001274535229180562188226696823648381591662713906442835632777930782017693367935651624874604243638320305568483109843537894668846686494970037061652766589940574957901432549242416076677579211560930328300305605546835240381364098644177996574811770146876480698046888411738857153895461935568557235583512555482824277125334305806524802323838786265726243317600551005418993624043881394943465598082224282373664097452222571411236085003226887223084533109982572256633474309817516422773094494633208603217710050393482112034458729644338393966953795526016266479372190168175592730219870090390678630518419707029134772093154666097652989301661216622310972550574640302702662210268303982803182117371743633471155820058446744696340964108219675733382716952902761450198205021839034448534725214589735189650011403556649390950850140559023004897016945057683106163915366930073793728177901484714903648164020911656036299053693707523820980136712676696557063746877721971092166023097803047925020924561922918571098652934116583981948054211175611247314400385098772637665428759277513791538173652944379794564469720817756629550222531791980887631936821463530949040941084747191385448970671371893980024553931771169050489241276319099970598720967039377036606380496609395215181885338221272725670436469635551235064197839415494375977478792740792019041505114306028163260220615207729541069854333235771236939481044554237445993976317062055745364183191150955292478328353124699082936411923944636610277655768201972992541791637646755361069843799412171577717034392854542908686305689104255647459230668998942624880708939447672476757815600353825470553301635501989801632803243314362813323561848705733873173882011651698315395691436224191893470210888755243772353277847137782205900449583226363086028209979190553834835733359015252756200412944065736927043122440249072244622360101496200372242292271879203873546404865443875809123929048143447170250609966195691914311496296219128990279955987453677704559229686015226547415742165048373624696448942170117096112373019120136448352345425792640112163882843251736528120031475274379829983324803311844075012630419278337300210354811844812652934822427869634980497756971154072467637669188596602559142325133192088552831729507653950779219064379467451843044087927681206671281383814874374035147600024706464067604977343228353833022191782828132911167516935762078761381672079916853587430189970243479052606363767323456795792445287729353359915236631035561884056745947577563679408545647990828268446536588795427635916960535546867037582655953035049750529197221960810190919549910139864670577177041479814084786696631583164851913565628317405334681593607315827115456604166295593010087513371965843534741177732324388815743453466363494558654356325726629510399402835392956254693533753446033612413627092869495362695620285095991444739591208927326945565676945939063058046717826804565016718270268868296640018333457163308887516392208523952263239148292720667189787090634860009906853708995362436800875913553579398263600758431491970051332138412610631756217382191291372606712894153952615827830874017017840038615173387754101340768773160287190888763158538284154636017880427870466717416884833764202054886250934698044723613966535211416421884506756483137933035954957250178487862359501858050567334883733453522008332558124718109651323402865697861998671062547996452953509344406112239450851028375568573551611760707502700961749440534905422216204560829177127611657763959719828971904526485743131899172170702073680206454195652721487768407136841254429263650614709845712788053536014803066857019167033575894653543821035953658685933569528102683738222630758909925599870146240571408883234767132973920171082346731064136242091092600285490333815299498884440183913195457584346689941374844520703791753823528497167495814703370106858680861878782940167601053067033126008930447293209537814859003388773905458898279777912380970029452732527781482027525698382214315927731537846456787301245715121787883485160734833528842500380861585717575278990253388836448608366784121931483597924273464870475149985792816697128047329473793670446100265350434209460073210317798300585053239759524907561803911827830713974360427538356146239990875585504985594105680819520743816446729780040430442564467984305132204168490889991041291905002369242328650230452258024519625372373692876467262212089957136313061633875947528504562968766028390094063445777852464769586471424665037409564646421013822838970658003119337127237124956458132138808537372294101709730172831499769691643557121940806444288829382636629815772496454431828261703140675554999610171765972170157030480071602127547606451048899450921188265929219095701372369167513483053203601653870330638530192289537350362305283495940578551165765639489717683561076380116549621861325107017340605526098096559232629627274454669903135081833862996427602091604250474093606802354833583708156903607875974222500382679952505265336953800286312911036858322383378008863107645126254551031092649662171343673310415032855954063666773834876666202091070697862210128594586630541011971121078610946396789585203351257781704787341419457064266722376128968631181430053416577698979311059439235688278667735400839461065958322887962334676088466268922440082254855339463330817279218710168902329797910737196288306722299855003805411545062513430316762387051415173394999318041771158936431431654328194197066212598047426430288561887410396973791599651750378512923904367834560188693645444667644201632785099049652401880379053193576464464775900716714029530625392400167222949499078604447074546396828969539041227122371687171092059050974022001520133799492571302368246408538978688982021562813759335180063677320778521369729562812479244885936486825105012684587749173763663535827475420285111386955381753741850256981576404914035811880717969834937913264160277101782845515369668411538761928196808724661321136619749403220118319319948269291221912717936687949054597471325354652109399165695502600680160391425995930689782486247113952449165581358144637890720570637133233724633320278584157092896251963990424838055218226006945515072738742767546650458889348267350948944435553191409315534473002561896347351544576071680755608279499253667501889254156330923276091355532191149138696600352691518337282206584664533806414136125812669675164352773444765470148354541784674672234999174335986869135476991444126377135132390755258514211698719797773845971912054389737917928976972307867567672610735905325500790163055842088581773832690281027028000646068277958846414719036402820443035342767893502255017474169769904316203308283600378102096094314961852168406911330350455649939382063198660400500837067432109600229234857700112211377476951271931078486613951764433446702034772285653653800781096854701303269185345027703466402434145177988066693144418737898758273200961773192656288535924223329943705120018912410552722684411699694249147594448681929708927524503122646612660968151779890825307488874481126590316846864613120529806035743355389608460905775686020161702987881310180983481077725602707369273511221611583556540845205922067198238603065107647932444516622366187375197512038658089937447003487490325025056560932041449272712688934745888261726276854771838233582484929283431261396230601671224055075778137263987243056951231372918116546158836730544938574698381996508756901867630075850741829034106107669534272376862462734438482967867484244399710618044203886433991429423963048181085950357970731410451964704479117241862803495526101040996730375219438533907823999101319880201545848104668652088050880047521668760273363171265198749676401514405205353599566218715373901945830444075679054408048872875149652292071244209107778091239092112899531706297832320215329442883542894582701051446668611479817354892035368070880287855516596845298639413121444764361253710123839690577466695342914221145411408703889668740600483347062788537619284502660123271231509770184422346751410744681996531432601253669013202401969909016840225552292836919268294689320941002355637681864132688409735799213261648979133106026870034083780988316291540118574705607473484028046677557360764578830348893621946557534698071749557223144356331984300748995720885094750754749329536331209219613978096522205142072560417633995653834776458630052823580902716720001187062293577182713139111439058640068783451896198468898110732499011476787432877927726113975569621679098264183674674480212662740190597567983878900557730064743699482381440085376842135031495107145600680173497489502903039642462431842798152769783549621263079267052092135268308215954595816726305011377567112470797247365116840202530012679599850855499986870518877039641897147208585149556962731173004830614674446637475799992333829585990071207828155984011185666078198286321119483269909518749845452509131399620205779351020672835973613741063921188345281060374808608459372345483591822543420348121026430924494530695578859507830178260440872320912928636407580487172574833690515224698726675234605918016623095217940233231834984920069055794480638158937803843799136373853170078344781274818115631766017561188288845278697164694489456977903545995751459281001532647217597724978339514427241311998140266031964598923019925191471162829608089160903144248028536963221164917256545576111366904114861419946347876197307066486627886351891473670193871871399001918116129336608714135865026836248395852952913968146809774843954245703730942555160230419654975172883658467641660682112921116149686268819945981016411473111135223348666665091847693357587225325428358179324418018630725982552327659337590933847380392164399312763899575554795828577929043327291984678077737118844399712897701708549560072040171859839653545593973470653106649135058466500562241074880358553196763410104347094859561047082960775786978696197905493511265524957156639806788138534405929508809454973833029572247819132435904461274347531207895327436227720345671783966447165581142120157201064897536234456414480476337189453289819199291865191255697015540771616497487202570056152019689897748520325223348348899514728408904000966331718963604860871236197451513304162832436216801245301286597865486466151039545661125737607613641219669840759011087759646153158376083233162591290205797541419491591746944114750567127728233045555422698044863499313644348738058978119409226317116124574533235208132358832462851630376954520199978084180536447405870213280086041330429287083888323068952018472792296392026733727308710747873713963067457445586055408338962101019731018465398841572178518129165366277554127064327735367586543204214626142253647453727714123549144738600127439108458252355429443811809259521280447505945283056380828776584640590600592806671720658210814337747381133920643257029448075322964577115912269403436074844637792774774791353984003068816360777241155788594761842779839857707195864625734487258500873369967706791747102172150107279923896728834331093430029391018543687129984578513000216472031285188311200486589876945129215051334712213611863997724940335324473439428898479144385503049387234063837544647124068014012591987179518099658668196372283147216816171384251963182762641827336122756532071041651604126605261988297764057182624577342969420475402601704368229235599784077025912461559718956511261031243776584427174492551525296522803485235679048335548594880736767734531195199254005372284030918446045053868492542846938268190175057919024664441186505547887278189674065668435786173410219577793379436069008751969362019918383645303649510013645071026469396502144841484665962461163770755512550491257455354591112825212947929345533482787458330922973017161918166884732979286023193240426337605621430347842952546012662318047170378447702806541764861205196986598949550784547307071208789101159656746265155708747411261950653169080285985638741399670437378340806840381036297241469115573422987057865619069707036757073661353112679582579135057076728910286745780479623986621686687228945359933020448960645120748175605596052685334751101976833056327871719024587531350036881117193403754286154117959893366097069501970057214111435184455911455311742148749233419431502802724395321404673741613184108479616515684713125317801803023590780439896537288652720475257615014886237143401897667889352793729812989452497012706501073001571617705943200526741539524584584955386380633040032697305166949621953668864137054912954270336005555746582004588660530122054033301182499781798955747943575892150060033738314968001153950107171869000361773378037777959227304346134020905723943869491068802000775008434202474599808583976366156012816701083619761159761512281895898567043675561181822566031404108411586389317444108980770640941568974374712115320992286683752960438399292645783916024549483318777769704580517952752306989948414394496342613539351485978083397267308814871761880186921948785475587964485043706590495786884525587780553686510790206524336086705334292423871197710254656386834172703001192954560327847168893793735225330611002195849010617622228278879681313621401578197332543311164895669939990014046780585609009233566684795161889611149667530073385619622228835961174668217700440558748344112002154545250831084974532953730700465892625962160394512408082288715255779061938569458902034263235990394087412381332786940558895336288498998358508826170092923602407402211815234368493971163239222835066481211332994257524127481447681722390389543402457739363511813012384329455727076617448124307943070931456967580477393423786798965209305155665577620745576297668221362764453643025104302823066247350005264690346213343977323587650905403187284107897660800206455189564998032814074530714195146235767293030117182155140797939914437609993401485736554062781698084303992469016050002464014848875763714892676664979576210405530526322101538772616917705555676786295070112543396490980088649276848568668735248604459309114843291572830230948879255259120032643605538652720926513198574166207630967048590907513184609800308772128313999321403700316181158427276041370902698872560224737461537086447121459711725658188988024259070511432599260731508998592638170628283571270611898697744458189876945383044894851163384508120545715534904313947183795505634014072660757223551005858326081858808642797407001343053325611830288889598215309452065574739000754221894320622296815028370032228947031249147454948405874930183850810210158311214816176758580686303665938636537161759558066792119783363295431489032936765163357618819458859302671991912010776260916831715973829053830618227282952095163825492545557671829398240203352476378398241520959189405788178223905818080692388267129935720705253899583209891372104189379756029623267329998643384613126127782551852464862235556311173121012505030532589447067962039003520369161788188508360219206230754063791439023939116226089888247103558446804166073929775341550033511068306558563544137005531216976363137815195644864141910487696231020747634860312736650183847428374621369269805086135198408666836198468792188670412553287349783016463620160426950028486041024538926785167520762214857570193984419710540100115914955101118115457393839486643790719666873207340936820111976462203745939947082587769692233070813679473292760683030567963681175053861781776200012242713006790250849869200090746142577660912915081545013823630209447800745165596088349979383600402853364244325126825764365400581584939024189576428126716599518181505313850790008152835232582843105058380758090251300601754526440754619826810989022085112361005234813571403906921551350373211142097498847031025913523535802645293323982942371853128953974782292315039990302350043609916414571602606263117196979055382527453072420671611048259488073234904399795443211594589187321206129322606586511724452521484549753737267626944799444800470124662517087828506568538538238384331193075419492318775670248411271427356644729894135146645124081933402436906859131182791512589137365973338912149739986297415018351334283583001991987044874553172044848135184202101507831425499986293064025399862046235643013263771919325639581643055118434953689598220514369649474994565217715242677462850621738052632247542257899384483489091477449485273846684306560969644574817149447765939381602855886354239623692239566298306280656834730892217176967576981945482988388539393863353714041727795281279338389399890926881302907366064376053893458074913236537913384558865014627938466872767960234695359528994213225699230079319309792186827772833468275274255438564139641456447015910047246102796186454641451074989672045342490389487411512741859069474280197989107984313443044945404745794261093876336254084062888363215349014118404539545618240715166662292421007376801216634271629898182174500615806714093194613185264036156157046065639410427218370257215063112353738259260887709820778221855024646830427133435820921925078259038662540550709562842627310083989839642020822817258009983737660013997674709804612637661462770537095367416967427072666406868041181680674261885464888283840084922660085628012071645748879105312922679058306373070716492054396465111557583041507640677120935053145155081799763335924200292508605222498394655945457021540873198203626371188232289421179171602857210827655993210044720383014701102647391121699484503030181852343845315769159731281790763194213084777192412813989461473576664859919646851806326535667222019206299006068327756499312622576932367203818573361328203603754411994280612719944022446842748450676586673564595278195121516725674565703020774494769576082535510052057820195422068469242552193914121419743950083519096411464205779442669015561980072719633551994567416734073687023818534583367661829021231211158278261018278044636287083237567762055842735216777713550354421899196567499852673410902307079997148326760679259766420657244053049466179472978308684323978053857989748465440473564522439979329349403896157370484893323175313840322480964379102727263572087619198584738480847103661237216047885894415692306041112128959451244761560234207416921865531207451959084025479785204207852205811879175260987711726885881321124634110489064223278400431505610954842218262858335331265173599833409919159576659422341796951160688657019216734474341084107561483171033085668099907123940788747881165573861801620637177519753695752442974438710293837306927212636206458870379673692254066734328609063716252215974146666935146506883440718449378535092833087342816488171261600360360470563671971438506126488828249204948165512599971754269308331050075676642421171301028349158765345674334759469296075416516943570226092933848542670729537685100183342697856068589899876504805994602230001803572955287669624317255764446984200047024379046655844010074664374005896125907812010812191097305949676119459174204038510514199216240835936996966607407042138970616958425949696305715650090920848954542508794849773867831882658231518475548084751207110608188469091373963373269246302301659460478582855850618433849865630204802724760850748792346313580230187662547062574271593754960535165641333197487571950885926721569013895221292482504811492805348124809439158417026030905847144299826767648827787055861019040122713613691679800224672727732388332886951202535169083708458148098370670245263019081002635832331770990649418570252944013186349837597524223231130242437603742813631166446189441337144028661006988698290382507952809544686865580049718386944347064838424813317533234014818740336069442921883261768957399755430169722981128894777764194482654920869539225652400259554323189032355501862374378497936769986431380856691928287441093834153009033367040135251529016373671254276732578568124449748010998643422336651602505418658405246016524315589086722158359692156047512022478429664410474564657675763022480570700558379097433220896967777234785169895225591036488830889186911909646678864679719858125961489289639033086174422000655941200747900435186208027970587807985354209781044149969150045194278849119947679895159700594450171063164907906536651662764569954025841385694114186018590086948398792722477208761857030821490025463168137276280075746816752690179186595244682313866273564088514723163107302671342187502860314185845695893817756963210177349292500888939886059008975637676711874286193857208789084371726213441870433909301553358639916933780758024093484922581460259034484654457482532156613972862771432807232691571650454450313620621959461645381541047712859586976241349212410938357894240275322574073489082125860369450591386606731692129774968130213534350595370782266020372763440995560007231461316334769810240391174534843534301604135429192069627595087720563383011691643746916159391156852227302803646511377366981998745473140802885633363501885906518932440773479834884887235714515819278918913848794312267724997055665614200253184829716689296280815864901266552112384792133832390725750085398481370642138645750181132876346999012230141974978981069254574435256749899192936034097127838001439803470200517995479027160000035574191513254693986918535204322247992539900494140538423857973875889246128617731288292650231333074495867790201655275210346386128003924948979069470435004748958708640485879761208312524183681748534925329415459495235989016054307589981235712853486431264389519301680403747357368310046771542332019645645575360281385702992118674221273169852502904750798126713139945058937053837201393059978130478653327636972964115514742071652989497601504607168282561749185013983290845324296256627126916049198110379964842191177670228492905244936834525703386549941403220069991019191137406032317738107866706000822303412345751053809131444167511677766943956466441784573246078827399459713845870449175999016325775286452382739481526427544464656382686472303224421250238316570105636527205618875770647894108550921298336401405687939265946649815941086348610386846182490887873565166996869935925510585676071748735295457938278402275259084144968842793067946799926194341776577286437641046333339432098966739125889695128188871179462165187631010396958543627675436323739388870839064933636645338899786438682802907733361598238850037806941203869079717060998263558267212315448505152222473707679765925137327988763774019660264031615640984162566427867806472137402064157279557333897971080823252594786963792518777030663891952845754679440366296731864912559913832996629576773419792982668746735379373170408104145810208757441933719534375161381128320490375426217740240999794913568674009597482222848529109220819062048825955455349729233431279909581276527692543728796872403970427926336677029696247324785881298543597559268861283503385608968510264457701921920538734819913859306603277811254316228124315653553070509479045934836103931326827547049572881191114163395162131512027498572527285575384551973720588540703525116213195016394920832723965838988692565463831510588990427381453055414716573915121271772891612659158954587970713092448327968173351653300509255534087301451424563159467129207659108686995666935345281856854579917996654387540222098832992883122959313881929441901952746886250331038602724263232119550358769033419276247060789955704489226814690792975635682499106768947726440570815923058563849835370260875915175038706137060606477505586798482406114100255182123967342265719108067758127934301883535659274018375381524372283392041728251962665639777129791367226539091712590169131388948330340372873593389225644253295174360005222264563374107264534215960716336591694827139079741506466220004989422196489183944162487206129531503866785518343218075022665342293445553670020149331116748123932127456702083408591898753604956554435607781326546536912634418123593155297483119209762708600872814488632140051852194119814069235126358385783701255112290165976421529707557919753254228108297055567441846113397722796431745676637281199992249573438106793238279055842627575493197717749928272795285203725976131971945890768547356225270736470686803585566264459179811660404610078108447494960095919170455976372585557135126170251563384834968915682640840257267119421532547935080116400162267334570110426084844222371493407861772551065311480331644771173488998232904540063514237149769976792461018564126317823830117737824413303977168648995862179559888700882427516633454999178993068166872680128342082602962191876095502507199703184131140011318151343264652067230206991381719312513514377023446626882488370228057523377179492286092460922245805331398876485191731513264832552069854851535995292821035157858970109459620928972406354790394480258317541161542381360090645294874270455448116417535040371799511812366743594336919293490810833233781130046096566666725704217994704599646759203694901884864550061609298331155237979382360761257777255378548408767987275834272921739652344052963184618438909239998909017299701532665344211107408855560776276425834132930785799533652426749679001000078602428005407309517294796412450748261621291460866577804589019295030403505418650252235276363665396636382555937237774203081867731585990119230673723576717372150906255754463703233493523580306256837381325268091097795404621929050537811689425288255832189149029239922560214999095687148629471943470569827189624160304849933255956878658831113994763306238279966334812440280444799953027173440450988049091943500937954526402544123009729527565656235643731310184127128011070723744561237093691749088443286820543145848912112568964071994079562281099482739671343559709445495743526363043444960267666174596818995004556558440774827509185197054578380470190446947335153521923742927450299380931920390242425242655186327116069129487412590696523601266952476078782245954187475637804723449006016125372389098713550522785596177530019494404567641526356270707446313171062691833277419232190585312212749022455706394165585748850702540811631366421332305870165394978017573490988441339037587618283269916214275527733704135251161513835233222639597028556139594191846001979145903364162193037092228047698094832979523668839386079228565857786675502502608663712062950957655340592398074073586931645999032044727011080771198635669584706581585807489024336808076717013210592950851554698343425710594616370408303025354430629981978012757335205850274174828901337913882583523157235555360031846828723308327066429362852086665081114551082307014510215573067326874568023789700445087994436824444856379439695260291396462472867098009202613299511681493288612124576705888566316686809500469566231537461941745709683020436200174819910877161444017495081962729359792396934291126644956960005861393479260738085105108936298816413394942462529403683364853470405530656529721447347041895567289337221454258334031575260464793416509863027156333122469763900811420814579551694158087282918949895619484770318901788818864720998486203651844744502247559067104721611089483491684732150678823984562708052660633059896241779760767204032120951548072826779245547347532050870365589033710764716454274684798703410219907943785409993790204912264485414189389493238946454669274499348625588703567424591805891772649828734158046366009087547503610074732700511694064005025475808835250676619934136086797295748104368527945355993105128919829262328585958585814660001226894096802889358430024676428957460998952597491441168892778089813152350565791119463453446842584310356717306252262994627339002165014859004200519506368042934433051911386237514660452987081900807262889900124018370093710464735948482900277869828408167467943532370962330392431248149041796972638904196009130179565933306035441887239108717720023561742206103705823810365738639440027093469366929609858771396837368054206817805039140705442556302930802998714155483599243968151630737835083271509994596957421188249136510286623071939162899709006723457447300832111667991673232837475040341784907690350768700193528885676785226208855840985197011564293501115773790925726200749087488035880621507013389117864278560148599501807159695408074080946399491623446310026509711765567785627594319250994027694941937257012030704320705764104509302121917627647500185333822846989404723688302250385006672432520080332968339278561576363075619064144160903803391090808005688799398054484562061711470655081863559231308065694771056535596174646783617956631019213428819136667881856257833044716493133343149427908893137658424916142874542460981264923220088476526325699063216630160168810280382244203736308958249639305207107345179283530014007491888637873762922836494463267692032827110096784957068413015614827472667855039013098956656977371592912829692551423258149070047547634867472434547965268457325481374789907578094106960781105193396207018396518445253267266621574212997435978759208338982932864661232753677826563031275350171951029476117103462345418488013169218867345540490939688449625284481085100395806836085030890732687701052036016847684478631255520806010512177387308063216866526682550661807049073955194472269667516725181998777456574387466095266513320797587904951745899221180904639074334864401325149872492854344584090583591187412719732364945727348335699970902813707070279476904654479846279497088508974683755503081461480498810673069124218175207724627336878195248888042395580680166442887838256660966058781495069947991133176462183360909479349334570940062992758535064428024580172534498841465352788820168470172848249438390535668293516854187030957939283110587717136517769072548676230427773587654828130730461249950827559556622103953238108271356093084868467711518151463977441963261920021470100579310733710936756107800796976918557790700877362718149682599054478931810463464004119103578937066361534758349495476508126180904698962398753884930727680903457404386210570458764436266600306842927560613175192751387274915651222204981076804292728450656065900215194152531087028589494222783411542490250959678732490107370551631983442661802806561951926124257345793049132756593238021217613499248769711347744015621172487387174967282861003747967663640760401564171229331815911869665302695416656351786707773229780526154570647606018534176618235284392008974485159120461081587832311800917636564435968442940149720520680929909037280658121981735239155685884938572495717695731398100525179189411216592597826686421221399797481133935878489915896270548408219515040485850677300759263074187991145107799508167178775864255496505478069290929738004973365284508253920438369109493261846002897391651956306218487064185118802201171935049914972660769191303672312441759945799252714973331722417126632164205595889547106519963481011545200154164963317715668854232045002750053931908681227859273595488240650530060403890980570624502959590011661481787462469558555032064377651683129943834266801227957130870740238040973483834305210348231190088922364542059618345000544197208429941756153332260943668133143016730003799354046072391568634492587543536682376787209980596220380085112225107133791494848400434196897441874350260772032006357757394625349911033855133008672631262770314097609363152924719236542872678442729517004363866400519423706108886924155044559745840751072155573486312590673670832141644896806752005546720097693403996228513802337947348230212454510550972983068251708489551023648128649127086400312727774283329114273312433414141116903160331062510898197171590861773637250800892077177037165008655965053103562100557378182233096222903316350157182885432697111888649764792248302638054087594015453972548638466259006296776789844944810510454559770950207379454024433661295940252750692999080068983654685871423448443840948801009065509322002013627340896393045003382312697898425940885641076397169025982898238729297477215236976472483382791934285863747626319629829757148640041980688553662539839915171536247567747360919877024763338381655366157693580013660869635113895200286827905926656795517035967665255503661978999305899749819224309134193325512467116287287344853671762789324774089102245427671559793175465475945200501340806950419972373949659927045124246074922004507583569532967828372258022429596855275956428851919548213034268689034214182066388862650189298610649055493243167646418854545388828833996510157388480493761476971512476225051225756374778825741053254390283498009278447838762762434562091813617878010977059516311296477336805772738590104053719853055494020216726804713269775719930839140777797986750003411427012749368292690818071911915125408847794013531771720216366777904631785897023443027276197749962498081499709138757877968986811736579320282336534098447281048287418201004235959987375661245506842760142378757241696001275448876561219496172052449661821459956150673023190822340608094690737204411782427145207194546843657721416017096016726553835407809009143537542743108738181596820915067699965679882851581498659644821864962636379763596077846972917425197973686201830055563586416502965827970093443905568193424781985831665905510632930757551746242517012044804302373835694691686394859362567657805899642832494757421029826856899529409505492818758556142748258306591677773967688636720889439132775154917809565140831623459010967986501904641431583561722401526761427776062962997840211545223672026597340611816960043480370217877183455281703642727557573234024312312690476774014739724100673028894379123232235822387705296063817261224131422259626842417442010329710773118913733590275731041345725784667826398849892430189650001623658149464673147531395522651455796268125629690213102406846377156961942157812204564567666682840715233285986025554306311561016971391832642620912011286334226500518558700485920631020327644512909930630492490528613580165030378495965227097838587335522390991171081875390836557393154068667634135188393679215462760107804190039084380253400832220665368807101362846995243669674704519402176730103112243007664999910667389526640986591720099119209686880463165692348136390450638499235152787787873335199703949103719559116444103244865226393477762209039057700758726119838099459954075736319577585435420444852831409538488520709650272238311327319902695496166383827085614018466037721525041839939105229500847669310158956133695717539388936566899976762248514611131667255429435286036516166635615414283217542604230725179379359965452384742229553108850545404518733395059558249372038750456746643045674422118850998844507907611727360110083792800203515507177421987381316754057429522608776980818047745972064607001376601614879428757099271378992763971149795800124363911005730320555123298981372323972396884529836826276997517192720089211831378002796724426130958104279093935264525914959228379766919073218256185487363273883511230598542889689369471678437293651507223751499592720422995090706255352776712030863579972822231923753001203171936609750549729445256789282997518467553218156342146892875700538944033205502760471592185096511407908505414659000458232911845669160609283924496001985768889870065750993815214227581976555770898546669670835197351625581855435626655898822815699331545474853228050952013790356157281224590148962829312253617492177482935971621259690990230238991529228761972129366709936370608050891983816587940965884323244171247440143508947115745384332070845363904329464967899038761862077832112002483119305547135317482367128575542916191528944961003765952871399192104647336709759626095806147210683921667018777808168627726426945869569917227158127909781659422551166143493662660155543671345328129585453330667413400875525819248537753833625700602368188656574658922255360835347820628495012044826232287611517474783724361333560213483135441379173018875661298304266124579937487814015866051186648736951926978804472848393849287124753766288384152152550286772282713640444995968297143825094099509079729577181143669943813957353057545107530074709123641645602952294212022045921879694672467529712804500711865574626501308792111235890240900899610607651262361438435090064460008357990445234520345668851313224621902514738867140787097312433082269479693975662723196367021514679717077016248911405683012508144949474067124733304452372241140261818183841844156634764126504942313921420050833205309792688872622792990595332917702762787198069479388616634370694800230235287331617539426601125306537777284383601210938787531941149566581407590984888042610610914174362538914395456284684722593831880762172788190325097234134760707129429587600236167358279382470985013772577573837538164519452110852429757934424283780018742157271612355677435545260472867042157079399474207642440718036994874079704472643366121268110825882201723047305328139109549951824182748992856533121614666250651687591156033494806129695786300561891252415278887934890600862582709486172442697475931482806113360884660041991146618496009797888891665222307289248655855869906234082655975195530445735466267012857022312131540770383120635859634961563039001333984998677297213616691212023010958478820551080081315622859682268481897776046876970376455656909739691090736604768267324966051378636510801573896756819307207506586829414409751409911149990544876706472264430746452001560474734798176534443833450422775788391849698837618433060016434639304407658750371942666323996637499808608383032568398620499181999344353942059437874482772238037037102555357505490538015539143254140909155963010145424844875375005676768196876363186449118945365555686072331898546424794979288886137124195234956549394206781694428290685269366052287125638828238049277605880152432614034889665541972018917986770057018764144007465469663744543648205293793024145137644852644313565329158802231682885575757258188072456052345055207391335411374229203587825808379829602322440211266771800915324281527126329001079539968208196919961922942865610021757057799379421795016852926815899688236933389644603681419956832172312703963448208283014848812232609533364959297932991203629111947287084061172770167354252196437158168943255836454527692938249693598519304485280468852346420524052946514213327295777414533916159076003106663487753125930906621896844883934485221656529393875647889639331538362036627278188488137921718954529296349817079995823079798266385230850179139612368593010924099173468906049315459118246252966764862028466992555304614286259175437340172550624880741208237017458522151985522769775006873300880618762656197863681933379382273814243792656710828985119691190081441376380110379580278387924771028578736682449507252896670595531050968426056012751470420909758043158777793094373043827565303047286215428620350344711733128987757564359312750227990265940631081223343220440148053019904673203321066550293060102246918061133874578017335761336487909632333369337106945220479152931815814852901578847021536569935472665711600215290376645576739655125369607407025572116597040184662194695135716432874060455811800418469580076616240919322793555522223716030155947455836669769755309700361966381945551986110489340466152363183293201757263934268319924677364298952754124554028951585467635784225865663429585656303299460038544922350182772200308926990779977192195606699914733837929036702571160195533092560056610463446580918139698218885450618394846313253284504343300910994921372467661112721125297111966399411288784152958192885113011360461197671478268827928385697031968069817210695830155670450714085361763317959250396410477708187558397342292302059216972190714470633928995261578898033639450574944507472761256404040889636732941717450768275886757467594697984318465541490712733784859974155851702574475677124368171713417687098419427342366115405426052703649446447981591381099719628032294271890030825542469175729368104673892337024563280218781236300455099944803775525409746327446241547435854584018819504245818305789642508389127679229952621272056111639323939798279278136503842889152013715331257473793245543941756420798551071294982560122979353792658307672685768973617739673622808063069311683021680990229281159759058294743760439775580245866515197127561895899565830307015144690346194836831650079283687042041520073635124088809927599526862867348479916745910488950393691871048909162563810753561375097727388442613669259438994136415235571278457930140703737232313614913708796983861069883136627862467619559943470871094642960505930180505815317225926102698622327774071032957795345960274007088893689002555972824438048659015210274120781381250876300817204793411091885570806763186434782457338493683978728055920220445861013944529877929342178471093722628302231654382806680789519222140661413035958665857664875066784127579391759331195088636278224853011034984317227407442806888834040620526549982489826973538370114883791531394443552187662782839330484029304337665804286663476100980774887169158335173944494811783051187156273213821398309625373001517012113872598001679689279596480012008187965161388600352233080167208648582897008300483285759780762812041855438154705096072952831267229601774024662370035730451102079208009206278506131309276014969577674660868012595379446090913103393776011822936741357342114361808757755194570915586041624472922460172399045761874136376393266265024452391922137047064940809001982201432857743857431337733227891493685448692730173643081957207297406863686261239790845818013982748789826819530733153531460725438078456803771243422003163793136513846863575170087299196081866345308623868507997629581064174389077902313701965048909326948314651598816270838199709114563218102664544794621435608354390440442267656281561586340438744803723335253384704552066391438479310984672895746773680579450296514525548682714259142327050185636252435379715042928055980534983298372618660282265642612321312118941032195427879162232632107379598404400635693694100156836589332308364344147172267784867809371546977496690365406033547788572195534169009096102301854006973521101766065525561967079447480565245451383085035042201691982965507266711645063245678011198488169490194611099354386956291621925808273917770075119044620609147219158661563213255949546642998221615097277092091911440017537871083396900556541923025098341532289238738135171125046765522543097728961251909457352210167253874757954547019658370574514017719313779340488149036304910867536558720075481401805479140588436163744534046889721946042438737345853232924063705920009679803322871532478549272743238852970326804490519451459304618451926768269321728083852408896935316521118899840574128712323826441511936908384232474262736780766912133125256065388265202395422699649921270824280464829799542531487192856436841188257119045927366966304765121703142950577652677820053277739330292268436328747350338208333373873604568688200883809959037376509712022406383722484065088138769269274331908476435848749689436195398771279482640437402289537215806820327785123356651894369173711893422625435054323456883794387264806406117264601326608111178179304031123425830613034513115913361520377771456942007529121002156065757127440849969872870861315150815990816110048537779413288755961200813204872385142765266154070504802646738975999039349972893501457095525942728266178136725177074624364060530531965144689457279868672526487379618890722032255976695489907295561754155312830040993249246874249586404300454264813036530292797893505137402056914561458956586510725801830693838686197806387576191400887219568996103239092184961485026563322786838691462945720211241987537860538318740838431204252808092666736833485417020062453863141080203570086983284829724607897172433556229409754450302272126678982519242955684318204691404497053538298837204499991756795018627026929697006905292175051918947247242731610028526283377339298003780997359603144484087091986323044059327156631758090227098289623989647729422218963874839806096113279680662707599478422395393414906504801964174754064152001774374981376329447796747802512230586510394314075849270255588126118144259333745551966647675861464961121015834213875838310303646772718573205684529529899809014398844016725449290843312705560840868951385373329522877720128911675696068220717706761243346991477739803074548184051579617949713159381514010587754502215142365757555314912472591467652521791359292355167127136365442448098795427738387430423382193622176732437280198254697522219932401709326298136740659637285911225542647264870606989389654766899540875474429372178785738542227998181095547575872548145369743081559545134933531457478042981288446969041709147660018307186104751031120143275021367122649216647710514850508437779056542104827392187541498376379943134937743939962291892605207534873840534023762463963001633554270435448073294296387091505196942007292025833693615507817385431714207883622978550197238290245239082848787569486310186886076256387730522552902479022751268012744521498039251011427588593670742857212048351408725242568037019029690230116585579887712081870871616920434492251201952506606055305570603988140714845508056017254693771792031045748502893735189347803330620979594085156313735180637580129639314085953584785018921535497596012754269742823662359756043271145296708498353464045204686736999711578644585845241377713838004633555715141731036659274023182133979491157858296223330550408743089851855675806979721856113363402501729286669825219855664351582671753735774048197404634665040307013071961583177491802530562248760616369848077851573368732947655317119807878874832319960976756566667788129230718159204731453007796176462208789279266349876579657692856531521707252299940635432320006922780126929058306094218373117801465864268030759321056788258241644692040679066377286578746625573212854088283232047450315988814998453419857273995478260194048489663259282068610908773385327447359579738896140123320506584540058056163786756625702646917002386290596044861600044269557980375076922148241928203113768321789121345196726028520054239938151537468235246872949722272155354684307664827960852384205257070500381323110772315941227463319387289046255627974547544753874136767776015252104251137428385197557413412463441345417571506196220946589018561408948947802082315955432752016052542035725050990542795030811731035089322748601988804143311349444282368942963697213177312775555093652967991964563198630174070491678448060802343457222797969746637230693775998610738420816214167744847285229181693150361894341655454322631414438953793251138432896019445764759081471667395940765065543683051211806141393272181175360109847133005753052183414111287359242227923563562233298735783178795991359199207553187118466771725642323242845170161863119720239068830423832198338289950719282790199534506400995300161697539378127312353768242107569171267231467860961187426196939429740871901640994488062335100730446689045516871635478273803930927806243449842843233077550170694744543155747521355271251548400841595502925455920267725281748822653470413556584286263293044819842881030169984384927703048848743768904176647136104740182508485935929235823798262507618830513609307514552817326527607939667651616189604372048227350091880692415860933515471439980581773231538461122831638001412419812526572244854903588473816668550295097701329450899087255808839016145736691535803397131832765451067240138026071285744749180929870008686667060944840375330112001608926381193770417575992647817551363733388288401329905544738548965525378006607455028306435316295582752440459016208267525320055541145157141464967616182805914752889856255897282816969568439711005473205718903051615289738863678369252141809504458702158705768798677838543185110875446078507246682503456577488747936042908297797567454735824106362988769184343461515833265397958793947634830632693956505965175647206687209302608754252712245823666340574904781296526382092129884838507750469368605470503509370073370035889923424320340104261627336456955778598040721797147983084955271594245026895004455514792676009635929700690309911688611323607339058163146035313864410297127655531422056284658304051922109232048357973053335805113085356583339920628768200244139388050512109332997843934706493722715266772409591478633293070292656782391831519338708304995368040629032778988856568131525229730036102404260963383938317169187571290261302038428695178280392676987531591868381005213504646563622070359574556911103673923765177739884471277712455742498032089818149147449333508503481204624442382464153583041737206103480646832577641464943211159941027038135201038542504584239376115462344387621547115429365083359527855367983115939413240177478714841004543548942170696376370247579445868500477159855570182027196277938477976432814840213442379872711130889409114987184539365830718622807424339225026016286037788448894003074485542116061357321235743801318686746453793415018357301839500175667519245896788656817398640800737082423651378964798947253099768761264616786259496250981887015273365671484536935792303308167530240138885692952278054830927867915519542857192983464444839503823979840468934216216828555565050751633308184298076686157183524613060714332520789722958561073756210788105591783614318658776161061090628656740666562033133958424197822917480980185821534250558448484729404117123736180587216957986860348761716564142879858743553496057319866344476636365582614616376532272367258695134635384735282523017825919685304820151594984550081346973142489614738732194374461140730281594339574782962706316654667302842229349753416907860116063006131814643606188504236134135460402368293641870881083490926907590590628482749332644301889394718857899125089241461496699967792109345071430801500705245343163356901657318534537958563721711988848111315765898880665046668935137465254751781152225898539851954745175505457945186601737988205299268494796505714332192658962151892429427932268277296166388228176334800762398394737743807351563318153853277724558439839807481277400314145586180977508399012966948055802038356302488644434252375702622115452718802362833077139736779281760869009039184562567492949424515656218070607049711745262482517437540933884302410689205762161240437905085872472727833116602604551295354504135737789995266901734163299910140119602423478952491008024491102524298416886864801191704932910762035880182033963376234075802082176673531979442028558147713000279531172131943403643928814186177332618350459303736547739944598651431075128124176341677714368033122093761025713818817605967988032792673681121785989724820348224624341608417749384925023120471833578936784645157032871411803861315404907652806804145982104715465564578955328195120912192228383950785895244920594115083220527555758257563454395564738703714904974393084656819128032784128398144684238547902737007620196598580024533019063126355213209595398130443499127032447749209234249559388407196215723740883795765947678776342377330620099139370190647702060419925554312534628647355371585691003681709520817670332608695388476947503787450627001108976895917078338701321531397716574059461693334052824260806353003206443009318371120527726830818594541277756819539326318164327861105931963972623850851656749772527289624043542006278109654917465222099387911693736453067248626004916393101125697744950139472676247341687357943650197389167017128148234608034626065078518150370279876389139272923621751454080871900510200606834255536461303833073532829867938837701899455985623104571535945263343622072856305523620950826105184072684389334530784188751598083408364325911595903190464736018808483239467702301475776234243977112248616659226852555977353710854479635976589967947940526733703547153909317813166858801320600987306208865016498847019399245907949802669812897502019579813151914766742877042356093853743869798943012511888961842865535852523004220810201144587749096319998601135338224105070802788466080669896805138299936637479818868056742723457082171435613804551152338224734960261862240813113652003481526441097474328693398678903296983720135336724178046168058595160623222264244200028777658551878849301338287458680659196884258338380867377361751173735472597932279062874616768099274497676338516644542557899757436328280798828658549035487222184187914951170846782373840161004491747655094475182981456006545218765405866271053791834139595724503627878782648675664705829134619290243708177568549036935956866688499632368092625322226613578900276265897458476442284138917765926072027568946138978184404036930634266569893465706775206516869078950648851139922713474508277397136882593488141075060933544714377683649706136935457522036846563237659703837502568685240880408805104445231839498138919099172999125066554973131444917373702964016857398822887394798379032264250718799612415780511401845633275617051078199555358351639560139805768672581065253249241273629389980363202793237881764677998101257523762614322957993219686645733962462197527655392441911996825469474218764584509716676534556843679136254200116716074814789502672546235609191166711342828887472872084794945915612459394079779600865980108969898128828979445347496038894561162682523663182536974679073541093759375121529160547773394695266056660496930086495232308922483527263784223480402268384243000586403903149394299121578263468827388329645999040027464539779169184977188379631259163273689991906939363613881091350910797890930053602352116340818455862416819823436734764948231457409356426423976906131523933999106642660131128130624506314567675254329490313868126668303435155852256138020569977087384698268762056656753187197655500380282118244699884784867895524889337717746979953811910483156654307474763200380983742927850032329676433147352063119383192335104376152470947274583050380531142421169380099316870820633520722987975158320023534127446645750792479539130344359636271663397553851634654171141276543641381872026651972558456085313624323952577762572763570424221232674421183901697247963406363705768885649430037301977085103112956891168100859240683039296557578132438764172554096348595124583156399426539372858653895628749376956993341958273810291001810868913632238403126942334299826410715048441603977745637495693240295988545567385682077469083531415773522329649034093187274626177732302994528565033077785823703615723748064456163312498919329351806172756330202853681845915304116293702642869089640285703870475808275271333889628863732347974728545155002053044264650000629208441375435975498623521415514484638204020356300924630765616531695010291103612948931789013316479981514930620839199147288694279571923031503148632225077596306394530842509002962989486504008436623844441697352327174544234468348394018918225233520638823719266854234708238094917053539519720483888160111340424873161473290942325522143704171476660304741971268389161192426237704696606924020643288806196425196539377460829589329471301421776311776863092096210504203371236690957159843194710320880922980140855980257801003126149351873136109694586547036402687966748213025116251614138301296781798146268785796941191925312406358197840449315319991600619877071120272124894825550168274249153493680598020668128715675289647946816474228259582688583489688030936830886607462234263398567272983263081051078463338424984251068534829024038432939742544020444989805665038612172299625357426929874743477898565239052235980945884384895963820623866649163452824256082030002878995176140765121238311419352841601550429258593796816481070360827608633859751193919050811031874772012224391874641589499191938888083047647533870902271936111242064104140902214683295539291458298518562616731559272394125065770395000348832902635185022995601285364649360443473647349691682247845066734778537706775269778854588259566716137346911569600007351526701386713202113926063519616007618203544461487193840034655072574753448174248072581049554525850332213724222050113107288396712041884955623219480057830756204152800216054651495482003090377122889249718573796792918915695730780843125975996731750946062639949817294967534250636745485792579267753792607559793748700064840595187359070485860973145780475337968720905792138318464671461934455151645386076800901671823918062023004330632828975488023583882971656589810756528589417656926741318011063896469819308926708957656073115396175472176650357582071593529352589468782284727759119604969516730699470034012350066780956500202133164445415615679875042447054528963962933428727338244401644241935446053151505005690773230895752960336755083681579152906518468528143132491808424841470814233067276008508249845660245403855812610269558814770824095146501490126581100557118471679617771612663081055855203161706078994940460239279124701489604141175417493105511719539100460170681447171639510992894446270278000031596457175837281313636046323171345219617007264792539160935575413075757283396255371180560381519404424391776729020617279032689222434742077827753863335582820007004437016369624043183730992778810029297567966028745860101222707811217472248081706598334825581402470140217445624920477259117929769272562945587922848847274736725864441568483168137516300128099746547878862565469633654971593634551878413187738928794576997560719735932560285254077011650885265218596745421867553564242225549073611525197616241772442829658414954815008805771719264993856228734130594423417929479027270670952080772980985460103291608553755710685739111973619454893338251082755417239662096781253279915580988232132445382889230583592992688627659748600078456823750324655785326558041215604377344853047684111577809066487560843802833498185239965217680920736802484930052044897273041738315583693138978042048530004914354480461953277613651065161974153592639263610315718916292563298701708842754549924704965429743126254791630267717076700596384649079725689653700755183416384193917670291314374187450408374547327318091298021957386938251369997689844661013412197089537927243738208580315218711355896127722389943620130337402678367019725535082808691797559112161397392961242468442576915683110528651847117550156293712362368371665943457729282291104435306373153452854818924471380441034820427479199331085651015960865176338008905769638363461380704051030055699596408879194099530079654407845709750612576877014426737813821577652731367681778096854962710485678497198875093155613330015842785135650607086067282608168308704106057099674592810841917978742557034112091047990576030730905261995852227302129348186175042387490206195507297504272720672170441606207224085148117354062527814849905245822337042179999324217463540440367011079499335461728444289458800770964478046861052644109587356371747064419311222103581857069542886304831446545343063663462678220952758356796123694056242365635812593006232698487299632268989260846460841117272507777511881609519692901489643724780241751721489837341093512691085456261962909748158824961594111652762780137691954645359053817179384973568275760701132956539326999115947443646715155050053136726021122064565912043639923750570976033160412993136714803257178908659965172133148847169715537927922379210785174199894366816209661749826142742836434942106696576428400685233064216480845912703687543602985171543691591597020335791369515295033347984977568576788596517244493139982622427696045129910582821027898646727615934050478582816408705381692122524560609816610690796709317456557672576976151203784837658124632961823944800260846605432187517701197241834588222463534595814357531808778364320535546392363238123127510270742985484554491122144449742146306467116742608633725030690543819175390081306334973867364873042149083373142132400835069955082478457631397042484394912063948874038167178428056889109400023484414358481932185889358109242889435835477519415018038764530103328864113595412996332759084244749293637121409537924861664920662977918938117940159102547314350879290438186979514399170810261210742044245409625284180890989243615720007887813339137090064884574384532175348598675548739916188565025163459044866969880682091072154882373323168870715737936077073320756330534333332447728419458194847118264508056763702181844052125596539480354479679839044614741580826922094454256158007935570903079893587829320237728094104514611189418701259519807995729492915180312707542175253379938824066856083448172751921887069825031982196178630587831247276457932212729596780720645610845935872639492656715556087496494083694567481975741359984059302944561471900144844041539202645182870997227248312273859891449203189488126998295153837596178684160130547612173250328431551444601349573570525943625938046880242831693227609408758578363777322170831789779262682485559893071153149873187605691824962675855312424909915347691620842835742838478063897157826001977389632397518614870540669673573197700553071472655105050699207003246555413839001579845435335207275242061816631592510613791714030200748011890141353500146429199755397613050535937121305020732805774540535334017344862308324773814585371312352287226148424329153457481175326468412720988980191984445126426007221268464627276409309510978215500554719217425304794567237914470384080707087217664392699035453605667711808871919574364238428048384498449679251186377261217235152628126916381405313267824679465657144418565532035111827673984071371890227359776958872626126229824292454128842722885103702980578413660514222630257903759967866991394207704844647346345343662295803822080143183036283310073265550550673662043473041959472238172692056756577137018945814036036222343432081637829156593349133718468573550222492880950764721574214194210193623603941472682137730656465622000474578532675913436503340523267104551823627954190283562614052363418978234207376936757377540945282375098469990786205667794629177254237139502822408262463732537500666245777797208053153693456418068485450400190075356285670337418005161771300901365489730254568755813253058019067149260813820107317564418960240084842531095207970598967063484363566010723848165039898463379685526847907410665406487439668476566150399939974949440292479677782473383526825819738888039631245612598561762083205518899213257013802466655758199310702738137444860373893218337609639598260369441622328935822549439531805911894317093459661642168896528130832122091545347222032386060327379307235167506332982248350331105390533796103942906617645953688431449325432754805286532913942518153559883524796944644980069169985251629920860507134881731652937970273900294727000086431959232883696373721242310287662553040180636056709452004177371053445971779762972815878993505813072572922525585313047721548938586889316003215898939045873461553344189246774969382524100693542354025962535907796826123190781202719030320395763180033113485236826583830576012556597370793201695609713676746463090494201197660424039746926851425262084174953048223529415102308176023525055769389289395800669858390953450772287064246994535738429092112672563217157278437967965318332745409375496801733310890294893941561847843899208459313340299223029589834044556080551920085994745676957198206788721023331435476835533093452572369105837978174948504507203850649589284078119689687778811525743361344347630108009185795092230231057047917978467931505085056394509727193652998701527902060925683120539590663505789653726444333839256076424775734986017317089759480503708128587467114764217326294047824927280237791568670988036672169317996567774749166423959510874816020135600330281743315845344425229274172425040888428865642907305239544676953291832223066224247512663078237984900323642595877852656878753424629409084766330921906868071349646543038386401897080473785023730294760176595403084143620542057136805345569393599427962884934628384911712279204551928055976759593978528907910419266248384503780605176652817046874369022589831987772218651379116100751708754795594704530217822803914192688656256359750023860210256783514452126063544671403258398522334544462051568883098719603814292153521937621616172698931972802476301912043311240681971633577364244255329596639360290786940076761098804615922133836758550877325783658900596049948499080489309452639822451014323694270523063205553490383580350925965437055910940228277873494563250985293961186074525587869340949085725223306613646717800280197513861231897302775674427016727239260523739471135357627340822924154088488246727536143883303285770688683436380092137827048053739235603064352359296448763581412765170416541170573967909510018578898312512996206263738494486650346797370149951995055685137931860728931097765062444089062440050875936046358504625075411155476911803945235954484200402016461366514539588337006970925639738812241546619525661193549161333279861566880298871016392378407610598515567029080548224778287929945454156334368764688605812980873399235879179453603537099407621947915741243851103361110384619967800806291311333441956274322130510171107489280098020362522366283106737601699116128064409271793539407290926312071345842910192456688019555964254662769154135563821253850418262304084206728810729449729819960505883605389330732613788309838266843985714427011044782615459899071724380805565287227969828598592833079698575896853923779288026186503839470107516291993778428362682470164300084531998989245341962300488045031818735349591430296484767519574387122587024160801924246525310936800371100674614648722197041460832794042563995502234548679408656371139489554666723175557647086355290127886662327750788025008134109226626991458442212381926007390780362941046610863059582398932271257246163334015603424547362220718094368275117625635137478829865730602964864454258369706705352518869961703449854877651948441940857439266619608057063797017400880841614853949340772381970195123221902343246361518259417316032028438287840893727578212376084891908256296815525395200996772143531919565699754717190309237980313149374420792659104407906552852584130491578562968336910510146716650919528308680189702211879098275613408486778420633374233749376989993058467837883511879174870544423195406535174719136673698467077797634056003290315269282538074310310071480845355695364585285684770283565193364248467703997824248346755689960781968563409586596527788933050088206475014125735018512283251117051876258770912794192813958072629851401401795078508603800649315586369024364479606234487494676637501268335572937176993856037591233271510762550274005573609142704235967922762223590546734260633553225500050358074149867955669264980686828283284747132752935853091750429921341564053476081024833551628018040674769985686579592406582353158136549735125422950154585297344039815985072249493582643230021682443162710077696465794911239925376739826174663942164563589022032775058644215319731813778920794210333043358924424079019973158377326735954356259966938923852219869304039246320953841736285022155166239208236824740939434723160473866444200381357480137149146801931474808374077961105046696407025334578773633280106834163794109740180168809750702328164132713892305091594868221991065655889817291372071503465958786744345553510675936113648189669497907776501639726299879042718994988768045704821061886993837770690731553715526336928906482540076669949773580695812039103680129912111740633571484455531872737021253760054659334303948773866608805420182890221856211187357128723205074447132614600854346873103717907959856224294862906273201585777313281298040823500601257014484732206467884719053243614501634153934268413439588237057117421862629471781798522736516801679106952572636959594606633462753560374709558682685414522966821267150904872671318220355406407391579517346222516724073337070274574011943509544917565460692059332333295086274241538343470747726794252455774594209471187900824913995876110893498401170233372153862330594434031453232006450264651870411674875428158872979441197932465175445608147095507872405040490414340948773864638068578110125374699592607171483601666023393464407486249843495101005339111258489439825005870601364814792386846758463038851161104595894180285514676877376235352409581266388927056723304309613799723378543815645352007104808934216368150730756456572495042298139315269392108361585794644836676651762789147452637923589952130147507202275046125186660838340981114594177186172807806789649927835576136814833734000045015144681304037303269630211047536602800793455080238645601557367223390428121224096631207472052662772903687042238371756938345794850960044595931796086121640635757454408713679919795310352914306029261554070959229429906442926548970628138743374687652224720907933827483955338547344668439136340217200330852617539540079396674288848208989284451166256792659723499657597631300845491463442629684676696456220742425320316413441374201185104629176412911869547242940560951377362053133256125762522033203773153761651114453260703769067890636342887044454804394001814079784042038776835400282564558827418816384161774369461334285840533214387612041633723848603741803986417055546008786063814136483085904879069628779524288226595048229883057678604480251325561744983679075999114284167307342365965344288314103576353115720469509556510064902164811336218946931140604207665229632144345421363670859145454357800790634704830860585162880150397856969966604554624538815486228982946259230242356844328425462986774052292252777865487053758332071361933468169381100200179202587189010344101951069708885460726812893518486597873082643660270527782717940107427205968054202501183798167695013872839862620797874050342945236406050208327617209416219677730042875719697534038141677865735152068847876621384363346204789692768524387603634726948295429467941542467465905868344549577655828891927952462457484467547468315614347392021461973138672189245304666517549185610645778029768874423383915153350441426210681345448669344275413296061633879210208839701435891657820930362316425788225289463306450596677522888390430674466355992738377550401758854809457146138433767293330054352339643876274925132992685983887406143104793635633898032683322552726931783743508506417877179988573258710129215217509603910012738419717611165888042481808432121928340686847630200411705338773940711482562550887147167908899192275355078702931441283876682425994811166491721581912342693676276057563517939498208170850164594007728987580340728653252681476097259154561162925715964534470392770003255053417597717891967148910610285883962208165254945703884094632957213251499185533627774697402352299141794167865696180243399292642081503848781626053363031669054872196762411628952614255148719060169121837025465093987217963959903072548331803326996347713215628629352586471088927220103035366008308955324847445992628850643791722767134259782820410591251932179129830596982054384380696588033476968474200651849872578401783318216966943104584081648226669240717139613642720018888693948396521937441498034784517997220013619253437165488697570523517311011067110594035283306827441418854961214860738602790663501392795008542183246735337808466260226727857894377346983608271591280423819178877526887064551635830563366303748188415318667130391653580269166771904838980872093629027093257982049639330595219724884365254790921981692722417150845952454376821235018213124108943957972270134107642637005148268019061816910490018230996206408989082851409964572507601029284662359418149387240537620847530676581989636733845817454613516363625231602578700880865223178843135932816935306345699788902105038219426537689357988725248726777387960299602220418374018715993422005030174716196289940171374718025564642102468845210468982167932981072111614817162002413629929662742966700186815537871475371742383098306124213430282197664997008425871202393974104522429802676147198396948017137804952391234842211490462586050995831068451325266537009713357385624057180580648044414409533280563745460242149466683620058131122906721104379099643299306104565318704229601448147648142231842907192823549934558437370808419783562837751925020049580079289726445890955866514145155151976013117296244241087048619368312120521537456970228403570173791313355271578799389048698613513697190966990051035691644237237724540419686036834176697458572579222814669203976959220593668297285275750847051034152178616492892568175583351113022393371443918629047296244514344137286795071593091142968360973561684571310660772699537174244801202860296609646886309620433837950275470109034423789273905612658085284168564191037869270539136184557590330471181838665810297101457990631217713334704274141085329207656802009246739604536177783394059861278490730381703959193442710292163514470972837425053706928556861893986439782399920039252133817035796683234140067386912316562076056793821010701258472891018912289870375607371764060236013267235670064316361456007179021069010481090861753792259153055623942480883158023187076241240915909176620927502844922700658439216517841928885579177169034254819995160556272751497241541117353312515567307710151806373025276405373589178911840533645841402820794574141334063883299764093053602036443186549527064226228611356447332374553491937915365459777518444403399561375404356070343250001708388642018025343172003615515247566844936610771849740163046479294777489551975998993077191946204350275351169612496593079258984315702484310765549049138635156329530996961891013234804923089403457179156700743866833975887631907234772636212310589645773622475420804634754500726470572858440161868690587539683688473683774602776033385251836396704323094072355024876169843571872893881719969041824182469878726106161705323918970927765324953860368571733713990123565087727424795917889689298560814262487006544203275259807459911339026648399917343127203128193004976574788961906586503934812798003384881197268007703165796858544652563891742585679524021008530450774317325225763079584955383974551136516200945572767677356905397527167912308423063733592225949273601887046748424748927683622485498856404063738240441700280121562729918120968835372934230811437029842839846193596256243222137149035072363497169295517804999254317592498904060505387304452376041061928613934477238522300107641051303551402367101219655266481571146604246823426252245349902931094417405828159137690416839993990269387078062044717074597332622291477554241696618594422712311470119850770039864236728877283519597014413409367407741248885902963358455468830337052852182528296403319129112935439010804671378599732708536245218408090039757204805736395021793790410708092810798892475283775985421917435013793232348626156062512442575482921970574581578678878155009648364660033371807199643431969749596451669606978642494632133657679634834349149290764155474069445972853911968558789954838352964023583092079929022425203097108222400927243992440073305770497490115710330644244829786164608260947135566185819571218368211894639370944860627818638474373944300388986946682823507930346364449035317425916487521209963988059321602481706462535055522649032930121026176725055980802818519775888336927132662503455188957646853922597530801654836157764430508294751694775419782101387416165795728978486493682321373985605827550962463648416785656810055089141900272407551767469979826324453944002612656775087016472413703634351290807596157116607761774626608006009176430910104425094607420083260695055063895459904990897005350353441610592037568654811006479353553258573495954318772835275888717334388879302605841986997461752191925497817348214783558014308149066144131355190699056386787329625443954842307337900376866962747298424413277783001137220800402832494530851418219501149057834620197524981423782684417104376372809226744683910833156854619557932562327605315741380274219039202871648509418035279146776362457835687919706621369087549634037694142095127515052113221219265001147593018135225324075989494547858201144372460759829858765107622694611915923367830118352712815849074567271791305171985154498212148533449353068746052325215867096930882600896779349629133192580630586753384202765013337953424775189579382512195983721488981701923379144849277212154827080163486862090786738969320830961823801515590597555042438491856529764051374209063964566446903147377808551471270642525002258015199430917750035676842795222712930245234202174360445137265653086076696847131553857437391116290261000830219855400809763086032073635074714015084880621606421033418018180305211411337733000738633731907767325320406876837459708464888321477250531745057856015662480893912142443952691492801630740698963782366638720600076604262838546135494624358944306960994571640461375623257072813922913545697268100828843497002777316958707718471829323566673498044024322893666043167200722141897151230667737766909599216741129844830300848731831915780748156380477112134633757256566834693484927044853056825120056690581571151607628062967090453866684702570447027957039351782808918973347080158525105895908059843709498302099796937775748886669492447330093722013556568274352465038367213493470856607671758512000516305545817661506738620745287063982838017989014079963133129256294993501303654533670968537587338361588388648871652601190662707741235956127076962135770016230022115705273115160528608315454829673670450279404629105739866135064505240341974694048145167578074554679123839857507998468438953931321413512556816421746926266482968201378831975428919399108997791918783326265443241217607807763156975108561467777363680558256684898267752797505657353139594140414202819971328034428944788038829236388191902368726351740955687015598371470573422134047375281383387556326209674782282722117843230031216511783104979751160344211305424326797941225760787888153304277936736899754207714988007616164648005413485821260557998521726438198606442207770414105563976848511452539504871412688141492760661087316282127981285283511568917218798685035953505535936661797124118995247377917504475021516852226568553388073561854653512201590642315758242496623064434025807490132005112175891834425299443991831999136909278500629998025616582571023547797876278484998810151288818296171676723071277065568925979934283260334990574579035874172754537960573531797365359054231888707291459096298753329815407780860728861636352259758384460448799191415306048734303815219870840579057850497149865974362541275816037504581325320540145009261762831929840360156433430542402629990884157602536005932543945190652516085930867453715604578322299289421332097656924854370454419156450807427804723213614111288167244165177652580901638679922216489512730277702365456383092926841318618915934333081132668558657995526829746438066265936094501034689920180181337281034135184945346201670663293793098983321765910000806793469444191194076242319583674196141755416323887620426084755614576952501722609306415457648968673425447412529758026576969575814771348233532890235274712721274222983783309951777660341887257290667690722565997729117238939968964097342051236477703736274478155120749823320096099268128153947113808746525032339816405807922229180014168119542447854003129217592715662235071642182659975702505722887865716522235914341357178367714922952449286971505235127987062252770266215409951796469245883836561829707906599943480237538750920110252182191667627820938821171457988675643706387937807835169537343473543992746887248460831895471726405321097103121024849774227407668634467462093861908097315935382844387212964729912843988761342346564445444300301833408144195418521138856587969120964936752764513917814283281031479704284339145995792239056970491736010653093198404306417988845756213360003834411738219339089181819839642116476669544341166995612617482236015527400224655284615863361482779436810113884323588683313661439852012485389488972686237056152777448863484432296642068390708849527554573682882495474762228691610176345002978047282763827598484427374639480296547000955144796999653429336260402315781135780582259567146348405350928237237976031039400818697056811866912162764090362110453115220964547634289586367883123676327674756157153050864908934552879927425815437763790967933749660823352049707476873856158931609066286098347431698626555588240502325956892239768520226870426577704834652668351173776804306416019011367217684659975203243044196416069325824003420441871740435917954278490265233931104311599039889504266764639568530673352940666407757401076738886986707551864072710814263311126195884117983186507037446760505589596232516162922630186992678849378996916479854677530515202458837339495337142912388532484652438666942371675362563166158702182792045766963626120124391715064448494544185922833502779390391349943288470148923303569377877638167799971345217991051466372150388438117295652963074472900879685270754862410107191361573172074695551724939476090086057617020199474982341743191980505885161792871445759725274748811784741292848594923162197307251084653823906391030896002315082135654792547158532418493174454524973196058981485717784738124716790705919424253588508859383129443433946592098264579227568960051684405597731156782092759180614306578678749334931227976945891456386569731183522162429001469047872352858405917830654043951931063429277700840472797629966631071985627265010407211004422351311837703937081059822849112256993155556144839985121949358098482425861896084860956334423647187130114787439340417489631280045655859593098320220241455983111993479379185046370993805053701317394684195071378798296675281907121424045587455729579611150315846303054836568750500690270035693861592037046718190676551510629162599674105689845003178349857084694578999336774626553366675629003919711898828793180869583160587029334672131971821938927159274573773107748370270083292635451476064766006595946083626556163732751009249188684036004463084317583347849740655574417822651100723794532769196704150075185988164566271045523588493350573219445271668759375764703696438921391957304067855016825936356015051668356046717488551030760300697331492766953330811956903167739669012860237275061565047440179359657173707228461023649212449305912767233082805559081732562048315470597280632180212675645664302433451985201394377779062606811241965164505571797972353829268773936924845060775689764201716743474615354712088485811387919014057126773978309028414153079172688681629388246907058803627996757143639499970376812975893850605451407423880635106915133834436175012021845278085474045418834249266099871775354012303891706955046483461338683158464238058467539845141670542920872308033660656248783993675220286907759801183335901203403795197170030269578751464760654162161744973365764649448791537840903944912106218037415868677637397297205662601691847782576122986171873669896136314862188107864375843315480471309544017851820832400398366596995193365375639391293485619150089918566763091815581815749923907545249659130881178037242854124062169424629565074368436824003614122507593048134195610760753706730169899097170022602665213416599916581546330326953583377622435316495450303734709874978587768372412251438148503724192861251581098833656715715876899903654608713624439797230495993709847907425866252104614355281772017222324794156218151799071332714288277748350650527472448086886822408265982801534220671315458799689399086170125487780274426276925331362039312120842934722841185925414141728055401508161534803591051240981567009092876283297143523943064763179347511560298473035916445729161253396420979667634601765645542674100396152521076510132972617680073423316931211468531893579459931465498800389157042051794782866969534655487854010323848687862498008656413547905346291049104022470386556670162241158733866230206039249301587049101554425417862757731571707170251571417705261583317104590357610961936008197903667338229299514207367910151009771345356645720531535385534078731811564895848827393399592822129218311296594187403278494711743230981910807290604223309492744841450009642121145806579785953649227630846315364376977084109091741065792163994035132603522162004695618061981025220595941832281820031367572515104130024988140449938069392018501960691840866020169820629913713705941590729570829149059074707781248526507631333141954720314578557045355395469629077495082621291550456931992429359954039746747685285391710349232262696219306011642772015702153678746511118124450565884159130392582357073068067919056051397588606732061562508856437766675305131552664175018915556497150648494420069490173636767609436244833124204747592309695699583412541586620316758027550509798444185570240659493759883147774802292464031671153046629980401320036861250196396516679599852760550276737799504779754646298995782527117164602979215812335832705734842338552008918641567058584415494106152170407062818630984828329775057620503433082564887855040759609109222522948918054758694638009955314614146263343531030773649621660729153788482679492213491196518275504417507651610129406419740276020181589420894215953862631913020358027158290617641106157682420964715537513859214217514046250654162801011771005687684076195264824120541667112972188893752831379976805887348305326559313577849910263753329823616314792861467471571807596897486346960864202022415279986913408327934878624599337634069393896839710703692685933225640037403944906072859491356933427782508131138771486630801564834356243539988726113035421187408474410235397161214844582174160563369832296567439148472286861264881983642298624650189022861415901879480076422544804155625471741144028352082862958944565259691877952131705255770322195027958105058647414163295404726467791566629774096401942432742368950412452922633152887629866834673400993278911094477568657133368052312691870367543369263834612456611258595039358961626336032878983336660115726542679733650754568791499809292891775838326255935910704086741366424515274807157125493512942765924648453918433726672410280050571242463597618405763992982110006816474949478620479783703535156000589574129406076070940270748590641755892481040830753481110226443234486789846193437874912919821248523911172836301074480611870888882765933216417755557576179935066111279492744944021089184682307462952313011888825838772437907755650312098229846080137451938800693104238144881454435907818657398826924618360783294835715917093470743357569912679340648908499946724232713039107654748344724607208109471833567821545417650928901657629778910399148840869041837883909280210766826005069998580150447869530711098069185080429277717814321364613151882510943613746155226050599728536015771109513038463407103927389990779485475396860125721486002627568488721492889207271366233253004807340452787429321786750561687434445150042428464995132585549352985328477719548783176245107876015798074367568132587941567755207348807378963497338021917018341927582560559024092373488545525113472765309219196314774100973843293000587514767610237502423063289996331468025497893679206503274903312628616410150733811498529997908149456022480642784274487274451727699917926983638430179524905512297845106026197124613581351359120073926351733063969581276759040094266814154929741361860238767457513219354696564183158041510611098668851715233091827131064240531131907351047353343594152592066796408917107797831630766609868773361170649275008117192811915574202079031783438012752707645702483159203456986351730244955825375903907439710370054297106395246457555812837304022584052704345408776185492165267295952350227752604003983394449409946375441479285721228729865626933831152701741069654114132309534047038046686738077283382078693149595272436093114622175682227040498730358600614110108390459572885640926979016228453993630352359207250535349828614889185767305829783422154158975203028520752701339146696388131370610944837174514618877583518709412007595087129811781707020612030930647988399502208005547758329181768313557134674978703014417588377017147463992776870773599919438523134338076268965745164613001363599652145211440569974106653205347947759862642046838830051453416207142087078164709117378719939142997082912970374438826647934067625958556036558177061158367602817877091558911868216296891166116691110797283931212104544029246256772650600901438660964111807311097339723516753933503548887176962010391996539213064364805843883540623609263815936155026777533981023789764729690506069158945605697524448347105995497799272282553588795902292253533429219435696388099312389191817444983581228022209958211058805718667319616684919928880702202130065794147078457600443420594830358286857652447847726408133213318042735356165071370847913032421280580516784381089546117374218874662664530165375726591624854263294571129665303158077218556954099913207723319357880894501733243812941105560435417475975692109322641107701022333964437981095835905485016957828867211311925429285878470449831479215222885830995332389948060628623979410407425245210238373618211442091842801580298227874221883099762339235916179972337945091664957414523545837607894253676125907867122560972494857997750203377935506519273180110527056840002949260215265457318790218813840039100213651965157825086344041315966409669257159520643402019555994235215005804309264769724098537331306361491154652557025868080833582508785884605635632459124064125870332110441226589883269149918139225693068690050395619228698665054888919871229964362593064529714678009836886152664489871768419841801872154491880567467652450855692653301948906576093512049923122288924387021890820373873398231368193987209887739314698415537665122838935416480959215024222337325386438656845442746084354340586451253207373714779979540997153150365916628025262216295526080619172603623457481419998461055321387771596697489188694691310425756785575909826152299192131890178628298477019072541854740227610283282757405770403529270189565615721078132530839177090181045888776704233179032445136664329219236770691475039875978298253876873038005582181726395444179521613395188592208433842779824876081973826854485649574177891472379557131385482359762253653313318415664866804645365274651739162153289104298164995101313689878039779852388885182872163160318834891574469256331202501044775463677513293761162528052031781500773345720695239767494541528072574216845796911193401763656636541525753192228863724539746603442445353852346823082847504100734562599319725974576835522254215918448240670734564309461644532165280944838039340528565434804026520869852729431899699244200651221696874756120301715562237670018111978499372625058057612305969785054070391991502062296468927584851955541092251560454324826081409766528135008764751984072563456051292763717809858397050187421475693705452178089175367468799645194921544431780726968056895730327986241494351802304341730858024746432943554203777335766752033952159488053041474048743236407895795559319545301913024972365351423210046968796277547995769615960881207885588507510221961493833839027857922219538255943838131033553339605516975757131719825202719522842837727116533285288416098047738387731415336273788278320436115677803828961498745514330177525508721203836995174053478455884127867860261678887053816601311160002711266173347651487582088020844047408495656828672008055207888889531472063970417690009883336646780020219575345763845033855146197617982519473629272803158375628297125039471891033135645492328264055845788941868222596585025005120904515034648098242553230185695947189326299115558871507102772673911202752135252816817017634180969273835318037370573449144873193426775910850487797346364010103626513291162424439997681088466831104478621603627402427825110552830782230780270442967066902582126319428760030188437841591315510393209203313798065887724110097074445111642751262221330929880816977862731068537112802712831988058993698409831569820453859463597195616198724059988340236300791257469925891106766409473178638977210394160903681659190392302443440302438365151963393530942790737310709182317893833582651929535357602700236430878925202147178011002017574416272729909570051984773839623092900620976011506162833145231873124342376822717141885184048823316070140267395678044944554457976846511388669533853874880868185994586461156539042959899697788664709039173834824483753325309993246816143657621445412970406555944455600382326995057580974261407068963610920703745229606351825085261460950011547665814182100230535817741955056608438562078202319918357235323625951423796012557963273840148398709122548185699825114107743216888195045916583372809851096945850696510084753896587911327538189144723666190052260374907433931531594244088931469233772235850765620434622746012933511958858417944979894830100535486593182921407339223241007446039738987514360204544202961009160897341843063858302394120440302992702938820838701430979041811152401923147577847747323018474837543597904958470661746809235501887103402644909610038305731865997818512026727862041858829696432542454186291454436548673750817160555747897931593607649953991335021468251253487397697895335720586138152150554095546222438458457347459185919804920931897829567071592337676434844783106341061556222804393486756130416889781478881659805210868260860475622393669942930331390393448861130462071408942269758260974112111558834996980745840033943279946265394644196392473852579136890743720050104687028608062999521871082638677903681531942764560182384286848449593383461641872566497866746737121910409037839006704465786729544279194279279014833489820114691954002120924613400473284849918521004951014867855111024269466706754926989975609021143387410248568392534547818060026195878213291182753310111674474867017218970705464111058456696924968160629721274338178891566558471839080621477321987952956098176220828428297364840851109727790770784089200092740643818196634804483684078722001669334517941593474032757350035797299725922070496439780957940273482343476758559606940055462302383435633355871501338053699988606557165626595245139961542352756691280322773021596756336933791199366579559690897240363661362561470732803443716803652848053998599155772163985881324256023674166090245383458164901314626577484320886853041267437052873273464043304257133582082394008711800582592761231798583290029353209027426959303522023169420878770182025163870265880252062644483853060015263445398288988736060550503834082305610541377587094256409920846849110812452637806577619027996131923705305164433903759817249819755258690087837540534114274677329181249701818202175052552810413548015581031718366664893300561367781168777365369184377256893756908131443556205768965678687362759008786406853635404961182121819519568398622437328739380200382658191584966340198117478864677099994611596516327909622970520585386098277023261271475430398877659964033515425675867302802005281999335675507987460099212890942109332261190927173451346403153455505759105736343160521726643771138870548712931269136174529775893292075732738888283812456165808799027709796910272764098112747401147054146716658613549509992165478266263136109534645683331172021014319381209863633210977804482192786037038782859001470046696343534779542343104544609985953903453632247637630182519935252945312995320862177374352164285928823375919300417801908735919421984947795856848691765054830975113782771165731113492824167576547005534160906106383562997054526758290005886821606575729330846701701080923994996133805945753092363694420905708728550239744221445052604946875227418746868046255355816431981908384286018445058180718154319582605383136565951192542335277788700545453832045638069957498485705182741928680518091273258925433702859411749382270980852512952490687630387993391241202596599663139929170370986842382030281413693447847969452248183856262977197099251768125960211409663719919707010600552534739441651263774924943865042625260792214508516761808724143489564540797739737364187227944503073017493415819872867589375769224368316197884904260744707795705738413128608178257405391728222338182777755362467405136717888249800192093441427239975464669264228834612192656619612782090582391546718177719333975061139434927811611309423250089826474311352606933187224631949465975146068893900673354110601670288052945432068581600176351297220479089624471978795860882718359415832297934297277784668172303139608775053770713668103190538506195334381011587415123149255392904898658639246409805578404671100400562324399413870739706642238739813926151226107050901709692740981800711422634554756828706311970385190010772683332226159658006866280838117674824156337703271917603555024836187856626757231893523997744177791925904499767154576910163391744769538856828620909584781757071921163797656149511177788980839933831101639550823665341220939104855027051579909715537804075166074113813705877601398464372372991851370448653534806915361737111375182409830665277305371048229266387409808861074658144973951905196913481150984353231638445425380035564682777734525339261308766300154028510137166969805259316305562849425153233777970816541906335670172839618629631620321913507091221311187054116344656823085758416610371749198953083958110509654465653453092396602672255682985152010940551084036180704965122271271710885109910515573214456298216192545166600487060341845052831860860614309050576117432288031029597742252684631600660550940372783666897820240787664487487616576221961064673952050685114048716803439329511291626397095380282152635708638219568028032104768275023477602701307539018108492586113241047252341496288989167399287878069328784724789738029319295243469170959373011505723174633863573575033030039313460514873722674670110246085335860930196577598882655497923494918614509025808446721084761113465882550719488558747961787263935370497188236576232254036022305708634371931656207266088871990453120649043253422418560458086812603312724324156635288516679877759460821673697011277161280385521529756291117943836322127075221044634148855134979320383474366105437476542928190980166430679882485728692690262107132580110050364693733408347788047869227674510505267789973725283516723745981929980943667708002168582367356445353711316016546960032874914360389685031996487332908109745528088679194912446683469905924295459217348511433302874132512712903422780767315981672116696600226312865378778463252494554132646466904990855452122123279254825628927112992028612208617349974234874118451719220131875095429338035713640619277173165857334078353186267129904827923421752587419051184446122520767017552055233755130858094297603795490266887752839906936420758899483496229513599735259681649843981476676279743583441289854596693205425252534523401416662543353407223748989236006021959056434614457718339976318198485448263950671030460402450809969984609060273608097817794382549128299486560992494227289253791075609462268678793328481399989413704040336725042771681721576218871615263315490615762586206466837634170830381470851193002390079138316865496536246062149148098011430896188215525226904427702126701928495200167381823997652720525334359463743481545298596958892905004865841947414726054231297672246337108821350634298669849914464546436890089777420074132211293773203795270238422131153115623993256700611014494006256104269308260168462410921872050373883392158426856184246138306721583678280925204704122407739131936650578088426939369762292622663469662367439902393731018400546755566881511207159149835630757665767073987556986451250383380314944193745054346817931216355228142673534429081975282834675755870421142560439452779164446458325655681725575097151876200598746988486029737075434355271913774484066820274480549186113106383711010228081738300267157699975691044898529720060021142163601647535426312751045458716157829297795039128046073666242185150989379685967744326762206780798332013968303794004811619731732307216374647673864031327405683033057905141504273225290138074053152655049974630566183427595436528208442439649710920120061021160066697238935388210361257901354730799124228522520473083888984492707673386715987978638345740375249159170760687363992864043321652710664056269963949869046860612009905639683389864180164360326628860631373645922664034766845602081897437657407262869654146302905615713787431256591695041052255810587779553161282287474978095379515918542338395804016550528384097609777486323789780506610307904889213484737403061864873481387081487746599724137340324915575261028713221931532953954537786747708095559963591552437691015413446874738000471821396562749719528947944153964951182876977070240553632707264694889944237375072154703240733325113624182831921685631478179654665453723343240050870562786874467097324851014611230110314814462086090104541322404887924491943010964694467811315401797541177996871277065109128224307232038187861013986206105677155632764391324141753872017194343348836346489691190182769137113190271201591978828752760929539014785855919796984339125066046039121076970367370184297215949000110739601530740293199758863283492912306458352541074120033156579150709382477247759172666899876655615850506328648098150331468367440194544101253807966632083204376417015304180555828596512051697181150597587652045776020499384119052160215972531413586618216646438221701412946481737280550822841381976892618516707138438024872634680450970039508439250145402323279496937410964822736079338967585120763663837494037241868110935809363398704054905188499377269196745698871725174261784591734862516682537560296362532442582971956064201789220994446950990421884706044279965570778382482705736000474582108728248919332191095128388205622741954367466747185009015036331364040644788726999598196950903561795389668917502517670961226493461293415590805602756423998591152790850086601367089969447076047846469066443015853110547974757518104368644885598309399947423982947850233665503375940342815047868517337493789062702759353532405667025390715406401669757085642669234863177481523342743737536607719136905777473985393316246107083191871832000693623679218795829883339460786752368232917244996396722989416061238965939727920518064336723932747938325636478718361896751701788550699158868796653477015851146031744963259934988880122981458918570309787382500610973545699217698356547565365689478971899695266083426644733534766662457822756801407853683504735048329530603332077750076026195756714101795645773080433800615984841704231933371615513484406140324418232941912850100745627581732457886176673219702767017966637492187643994167908986544756428537600169514814918546583985374899644492769076967061294920934654359383908791635293827485630366864044597582633981551409321371391550431280000380605041262622909031528455224207551647556227519016696661975052299669328092444496921471517354581384583724623279867572555040305935852980489563754350413396871329899123863555157452685079585320546946355486880304616145534088869228097875894070488239989737522901061102835407078207595191184883362207701195552858900419586500807503363403475219320420632268439588260585593283380194428378983693511842250151930320575823589152608889181059416891773163883529430913165308266767212708222331454541703458636733040202611618874865772715145698660233817312518119362276863502862885335580522888552676764533875540026262564759016208290734807049936527074700370680136455205394070220617619001080405086083099890547478521748899130441706078949720844696605633967946111419480378831116662484501413400413645862857119113940995214244181882084653125257426611654775380810211715528126117395059206954109636427051624164534872910634181057162655937207125046760498818512744342861461503006911991143675077375126975605136148881552703063656344296551902937239175644844348822720651124701433224905403983148708095902149420055223187845560123188374915189691548603993687491302690025872316743035723248606455212969272943623825757459163487674362313536007374431776571935773800556232625961004483708438545617442558896976209087599665212196426198726652710901405761392338835854164354711174899138160980666197966778158681846496607712810714693918685151280835854343290181545993522135930876433392949565357929023363140982212608402752139459058868358889968412221551445524916182376809676621652561825668342928534498282742707214838886362145378468171970243427772045972670582727569388876811625674530174317691321657806737668183789228851318929726814759236000528705016341300297503954819959653411542937020364878957680470967898490554106353061832744045020183259443493517737381273005371077089521719601030754018515757062288573852805459220286445907886972906531770762666690694031382195622043160815529922674192911795348859004544869016355645555690754903077279018662761242437352282125090647412815243233043554038288894285068765424863528826771549296355281923227579882136913478762608531224116255912305746923517357432625580183653978886886792231712573342592251885995461404536243127609673137944411188079126374684064739048520900034502076858751181956478318600803928263436486953584180263502735434279062142954006225475999912307190509856647813587310218727043098518513269655574256851900667822794540455409976676399554942524792084181159090207928751015375414067232305392800554387294794154246121118272110734089660317615185035470499074570277506645908978163643402739544552930962980605373520097004471704825903163177587914959089400697508788279444522721887785498819338467657207235805895301003576073706302434907867195400035482238095615473044974512258216011539419756607015965703494023057117914764248064403507642151402996602310538811130335040091552703429222250524759454735366095904037568886449321192657726886923896965935184614867334091680250569772883960012955351152847698421927754855662062315393715367614184150482657079177736657635802161226619041232660135038114952933631663751652090603503043368335549791330850167256342425743302350081544392125466079918180263786289910799141896734064123084432967597753626818256201670535874975848292959102076950975404903801846460709357289537844001785615412218119913918914317341540896002193405279016855950161462976697303539412512450687193866663264183107275003931122419983237274192221007113868578889138078442599494427042874112760762435200593173281413784339594540126705459188936276119395382319345921393992937785553094093684889342472649540472873120787886660280451241663148822517274511960717515453967662954730641404179930302511256770975324743540529316542142258921569436398885309239447554760663712814177717804317409063400062492703761596242447730721445311414842879547240658655301261389876093409036351121150517606918787186329421391977689528802456423186895399278914076288073459383810254627257388887160634683445246785059774555112530794654485835260144268175495707322853336359224935240751691641989250215683485280483973414094866208703406260770034794860458881579824167311950554285064561804549604751955794218392398477580365218934262812380393640928160556076128017385554647831206695559175671200097614314596637535234534257197483763636671458615441821891881107643976894880389352365862799737417416115595750702410734405418381509201079637326872907414878170329513495362664825375655127947780868493976872048269239731187998548746548237824545286285378106187394470610859044163974320538812570734993539303750013548179336480030166238380166668537212177017484221099699982483889912167017374445000483973960915593230514405485816399814276531712223522517050535799302150741272659216327023861307957867193821904810930383706497345539752424739877270996034454401524319650987149042321647407497510922147739440315843043874234699684704134348269980348027616871647054581787054780778149240665647952794035197473056890040566983399909245355294177651188950723362643098698782054048016916166766160051270093157254457481028241303205238335144862462968928045830540420620231215941769608940014716020419600249642607783287764968467939950602978425901397660105593638804351655884224867105842501284145171698013878600833909521587832180621388755698619906084786105392530785282869717524650216201782757609791824304047625692651728440912486103033144816338040539570123092542806842941462871115403182896917336751245148313930427048478721852119079706073063478426912089970689730117606189491998030835523683411176251651735801066926328502619881158815763511000411501889142529270835137701136600284485374806001570851275554372614190891645366377994418392654392355042677309377375925697470184295855834845536033593873852614178883784331548450979534758645543100075573705218173945355358853146998857978901279190681684650386627526499425081321289936483139332459207230730026949482635097166119080798182505691256979267744701895743725257157259435038435402565609308941919874135188111010034351848439838269329776449193611450261221719230882869477739408392482439578843340365576571868605887789893917341655566563859805951767671994487927659671094235159662991108592650815065758803897355602427274388641051819477808299688288514508789617270132249101148442225731037247338759887615828189369839308632583663867451544352015227599716248495386730728864024252390443174450939586805439580977755884684191005714374041290953220219734349417093763519343502010684301370914872997564498098769431740675655232936194126159172074244256990888868215961190902258443084631121420373802279743376492696580201050120100450847858406282190101480180625115267956979868807673786455169112397187114019101817439172452097007937046145325064555136419457346646715948172148663409408634233662944143150264604099139229404539868768229384778407543499134922474379036609929036683270365038204853292120219010291332796644769249779095571563412614971072694811968673169654079847717508127620963569563020502327544033381970685946480843841192427389543454346103784166430983291814509844263099517609208069201476097465537491074014301840496677917659783668515607321473123812492541857891190027753701481556410576926363917755014097014976764304740689170070428154995394932404480286913124141322779594055723833096681558388498491559274524258252289130135332210750885993278371614137362536405357725165253707228473990884226089665138324878471979650152137436306716627474447939106303085959746615933949594832174082717876864325653035069183973481351636912598817779415685998387071140294262138545006316907228373723580249160725596882103729882069822035303424269528969994726635130497979486995719370392824067789075308703447149998827675417167808878749544724265831541107450712860663325003528819449669446838333787678016567933904025492934675498541445383607577248468076928987003356155730524348158365576781630188749028286563012114092482494364437189398768724880231782701037903996978226851268101452721561188135493526767314449558892502411055908547301138915405014826799594943104665473065033457840020607240412776804278559846363074514120501263197573342502235701476381097415309491338886389287356372811050488277153264440602798664836540741589349879067413772116812676956375077820927015378176699152652990168875937315165210421018711077556432833523891682832351683964074852472910736312667223895438100626677232069985660762054552214105210978765618630044231017133926719061328090568042006108500732452268742970340865278496268596175953252940157905206010560895771097670416313476390349183748839123804653650183216903200102693250833515053574996634668440076208567378941931730076650003189709096668430486920300438076207232480018176223848728410010936764303670917867334311223878673982033193573595036305842122857552323833166535697676456656700838206823983638189708234475410450012989090101220312436490542523381226079130434551235405188980540546602730833873838869019908002488293169563108604849166238627827883747679883222762203035362250648250628249730674052720540633610554685919573959241552100563239194877114054159560841918445460352518381296620859777995128715934588976908232772634816879531249849046346578849109315987334002166778495373910912716455172445262624292472684759838624522287397877363929323097176609542789807925301772992728196323191100216443810651988755356621704635076635835140786308378263041523919518229566541791131092100453039719653463802983813154949723718214241508544978003359891991643226079775084865981683617722162379719240683079203583078553322905074848843188533386684863126374386281012238900357105263865285241815661884989724683435981021671792583247991647465234347801669460613648977305213597622936188640822524939850430529874475544016237397757313766681113967401008008401148086658224321454922757546875996615852820288563886091963977796251674737006239398519658821855401202214747798824928475967794116516773149150972523657528438764979288089802747100193436802921482187117019249598779890042154542326411562965270797825425026314476551825116920304493457138088908091892814558108071674154534392279816415995204220719043055272351031819665364322002276684089258270742710752904272350229352721168810165823687722156518849690325246385929218651785143080858448933694497087992135703451464821010314703535686107921268561991842658093284144958182036271539331688911259975234870435198609973928869632518609519964630060609302107884806279775141017644637272327585680553032029989631675739773932515667820741752702120740299094138223153680105784163936519074414115523571801537735162614390658634216743090018223281041773858999717892102575066200287507670057426890767016907828317396563926240805509941333378680304195084800760592721535240299110005705482305719189598111447907489052330942326525853944604859078148775484859633334671203443761091987982983118342044073969925649010234673875684720157715538621862545949800109195777108247133144529221438936143345923788546079556602933637586858163302870224112676761097607959838230512911061916625875986103994620697082767677206307757656915400151407108628560732083888451138960548071946158543908866188503584142688265466388703478597194929524961233417147196644607569865840836683707656933955281400107196429868354694610102888751498380400211063719626813410979857100277434307987411096340959106676982802324996323695998887685584098606358667449755392925416458870392375356008200787913284145137638533102873086654596829562198146514026007721085366474477709711494201722528678442256800043805699958133589271877950806887690092156136201358948042921139719164110962678333743618728715057118904886240629040053622308868127339184003615979799445844426037697935057218575706874122803939327459899296728267948279153928747163778388130776342727652508109785660647511341246313427137523532021618568499143769215273726281521134791340998568590216431646685432611117290445202721502049826118997555706946828103045194257179819711825486181960052279754096790902961367328644690484029398560365968508759856320205124066694887079963906620572398029058289404968541981595706919442789991754608023060973673240738060958349097800104384822127633940606092001417007132283780075786508693308994042049039397755696127538572891785310686751883847042923173471941524969194478797990449658145522612447828800866274865663685185541365004774908310202796591758637366376680667370281565189129987807336023497011441922459412820899653490472628839978927935721675769962442972782649368110718678209244705097139169759059718871531067693960878655039711507950811564625786081166974095151765047196246618415022409120143770548361614859399736282220365143520151096927153525298513878464357261203399471947429931923459066590212784315147715260000936270629057617234958723294871617256736340040187233193307100536999299846432519566275880802949520578665586745892453609446511192140230423748017446877089038608778081291207871528889656018489697000789667381927051679532045305092051608781225724746300922205203521267432109921844062667327653754901446640464143172617320597011071037517528750535686264961372787138076556537312451942391483510829484627827166921950675128386928589997956174660016863674112144410640108366989040814380546738152995875189212854220881047239437785115355928280514631929423545958794781721049783852497675254046672759019870029639328762861595441258455461240123287106038838435654389196735581313835027384522581266265022959651157068835695672561896260831632610642824097187519768735342442681080276862066706755316460785010622832909039961321759541682044801739840998671558856902421344790343601668599728713772955743576353365600865818157235102728051963104683824831720323852658042178410465298600716679859149111459416067791983007696309532914001715859491472100336565176217642036839769821760131819781145246922110303230845128660462491428844131716653625616641551901361823579383406259562578043017044840799457548267583803405521808941370711575072875887982680123454417771631417387694270123465601933151806468938057009204648689880252246897437388633213356253166377660257012222053403588064856435412510386159428928239912683206773041028020853398823642472785071129848468757646328673656241984493465483411739889078021153074520007254859383844476809874454034143342364035861132168135126336151835259108719594278696504130801204066563375112201549275286071913668447226484017034399400007563733504622457015662460724669264787475961492457540485455649536035047291400277574276578975956319297384591186915057026995821221330135680241368637855711644612760436404485115147771486637265680695589603621032136810541336217001298906642134827422335388585833338725274650061396174250435439793298686212190625532085711600410325906664897641434778209811292648913509276095373954697652391467579928178607881400555306252077232266784423432546285208774518319832708960409368209479752909577967187791585498071326312559667878283078901950484837363989549917721232722300581472112806269524657566661713029492886963658791117946450863145033560895630007855453687437346852621822401640928895423271612286212182104945001711756908363677320897628900804952195266877891121588173592743499152663652429442300315497240530345202115939658443293375546773584154360881434137367990491042127685058444380185856447587654161333664555331451062477627396537484823555670358205152797124387857654794096663015247530162227892401590742023723928477862451415410130084037504193118707413934103562238920555149977625421831575953794695392890590211658366210196650131526892933759831770351668121388918886868013244348410322189994873457504372418083324618165161893222081520499283794162366799485842064102753138415205906692617411270324641033295173546959642549384104826103492649635619023403377314966648163789803192786755064586433553206230674211683818865369039284740876289231141596052970526124244234623571815618202765033546841848817109144240848046144090257362591464352557794238066318174746633731540584560701731418470319209559161944903859048868696404628729347510636342335685738973434939922065959183550477695309649786369809097686715068222262444501176141718612491245878765725208946986912125088811961097111085647053717290602618411914737171227234347564145642427098084740114214781973901881130291217443549324989664481088163448933812927152079955290103941344988298540592747148873902599068403287696587466587064883528394069327537412237498269632167466027622217180470505347570831016559206836347310647977324306318100657203692522825731099203549613550729419098521179341389845279097078666191457437141983688979035107626124551477930058756796765482182411170407375765776615108645011891777972218843305337919030289939750141153157977248509628591901753414797996121843765796821780117407844877703625042478604076210034476880139168521471754919944384625449884847535128024709566175098393555433682882311618486476883329637736573972232361981898975657227141309847956555910064560540526122727731067858111064385875592344757278335448406240240549218537432561757263721366992093509029786815461885683140206525822148961825818866876542073741152663559598093354602442121548112817767964582323928633753181714993511215347143583303866857983818399404052679144493643652361794808861408667736347107363638204277038367851496995331228115065937039074759794465307809860731211789829209967194245816043920875890500779545600344544703320212613153987574776473990199657370248291368601526654050139508139565418868097494430621409434456339787858277193749250417875544887625225072851214540938002880414092602796435017795706351787674462734846388906752006516786281433480485752596522129575262372913585334375515782364352988069698026299139808703961878187769265464407041003364638383431722558773740009876251513394789264807183153863310850966976833366826198565364884439952270356876225129509495178877796304616564594560409637529689220677213933540924013724921375818199324528239971630103352769919390661628441713032270426168453249894888027470978825804338782089179420367966160592116216488513544047337991072629832763464983310567023858619876296075682760085238177932269378709130049459724285862852401804791076477002047848483263391895423576072092964083752092102477293795107515865013823508793342147119095416038269246319577978283075337944047645188418678372440242333008668847633497047078137393085990353889271625690507866052004145453365635863302087757430205784177741945755945101935355191724689466152703898872229446792507729301433070385448827484869423370563232720230904228458057350300362870854961668817907294109535537524459212785711307694860445407415808237742917073626508939984924235333469184698890733139167950391503808563312892354495602892346837477566100507012116820607209986677582944368963241840168256021936655431370399100236428590861119908291584445291830901146026669898210381316713749114871464069788185184671068279612252750679497667270848259008525250406592862694819197474882013041666049303030633126338986187937183410205289177529761360751319411316704240417648150501473885079947776903009071525636658385897496974170994334640903784054259897451042138199662232703459314336500901039327325921297966450651869541031370665745194927591911846775752945177727384048599050513456032559192708180381880323338291909140787075268654402936904583167539210539663461088531061069927243865020484672447461314124167775129396346120716519463614610776081322272292039821431954569068860310535621166528684596586928507896948714034429362658585915336969750786594707930224527813969729401883082128073631169446494094684541119125000602300904991148678042684144056856381477993143715379369838886165202350699325251103558253849747497118389552780202359856867670325290025857883622041664213681745186999807356749271935187042242160560080515833931367207359865630933048006995333206755932433617321682670945071220001112117404541018586867321368361934128919862536416814278597585685674432707696251309948699598055276180898923954971803021796107729628856096130931751633528611753857970343599908796243399874614313068617597498760228341331375833750106937675477129803781177885530487898149089496563524753199885071712641392544192585780804782478931264329302878287476208063324881920648469686676770547426225561439174902910540728214809742405604055145335988442668045762647470405994139310437871323359759140488663520018535185838932858137867237693234823317294584531444659188428916374187828986441992981390264855862002196473773613325505800691722175246967711899749121719210018701257634650167355404348266372181464806655719805422646042648615530343266219544096098642735149084806476893542115927126737704872746167380229335882303007586543106897114461396372659119721399287525919836930798800649500654307793025238503413964388865880699901842677750176185100619533810345483645387299690166839408139062691106937671462281930569603047888661658237709213709765777365506804572416748436508952759524550635716206242870869772592886991466021204213757076908269789676845147375279646445991688363623781914686101164256627200446950582863741591707438676876476217672600573161958620700026596105587517846372834779901163258707111805123346367927724786964968670165682642542854013314280472639184414392177494437298852831025738447878197339537777156887041991016084737700864485877313999404948277758854897244123208193529382054890192718814034955346457527533247145525436005540530393634031451896574874788521384612253399545549762100305575938648566121240719392856222997322568803212285123622557299044118144294444193013635682060409983397784213057790922380428175276652387288881856490573678033159605521744604528924266128614946359927868682960434805087997918350508396884011536462770379303952138218550778084310853587953888602855936241008630745777197694187083539991546816045580768928101483037425262381067922486628259219340307933452573676910141893536685239992507396233284326583876464912798531042407140677245032934081760730512693734223450156143643030161782789188792664823400273982392402152568742296770544557324940913258716056760883454135566992179138804446097207872266326851103639138639565768103507462032072730238858147972994786231112710406383952492234996197719003316514388730604442189496843539725569812676303114356346733212982220679518972995851710647309050603868185650171087382414481904519942810163666210874924103238982596329339584846420304655565283297356314094562865118276860790159515531216902313185158945294443542709704002291006299411756145915850841846048173766171942204694293660466131390985864101427923686731057248376971778066316713138087065434631910607684188218269056315337977410465312047638793208399042711170400415409065852016190822990811120184232458058484564474214141456865584158478968723109106998739808031094507975464190648995379168459234172567512049253636599402255775632259483574335417081668475730803572499720138595071087212207480179298069726203246485045098692775836668552881718850764125686890373655918477819537946632728481489633805722808860329588051673236823049783809641863880891869724013309738947161311883503940225556248751466787932077501542434143847635048437411182075932610334680637124456377152130813966528315774673217936655587866371853311659821411323352102080515507081360782985920876650536384779029021572805594879850830253593112459015716075746148922551129783982571243807309512441944858779427316132899941223874539333338654033250223885978542566620910562868683252910862424156464533734287975797436647841926180627003177610843450551004819043380222209508312538903988916242598442380835397783895359278524281045291717819782359090821392276787259298358318787401904743035911866627939843138689066478223990123013216575111936911266029894277791918917764979474940440928339074803688401666142271110451419175110241969516828477724368668178516271581916321171281380092967953872901499342529693517700802361237934103947657123097100624799675933892412139399507047066033771319492164756473647940235596973946452013664041305716694355540311375991265460558405447539390088193522794060768213578782267463453351495762165241801204524007890397251789145836803619336482169397919551875670335995924750192836239611294846450607088562292623838277755942488991704208768626681192976307752948464901048702558824587992224241936689764081292727609504156518804366178977237286891791388991190100048939141586292796145664534930318799671166445342624054476615221726242104981649526346893426964550703809977000779839722683170079420790950834955461670880853365028571711088995543957898834444926956473278623650548217825533862995782799892624468050504201968111816560036124769703445904435174030207794503063338908205631479775847609310159912681872873308409967238018215751700880668913468368476020649402944602005069187201009394934622196958512679088461923143701795693525522893825718238776310423481980328744538906053767416534620250932141421357049737170109404877556188220630882209724998679893305915293020417151651617018808998219406713216623294166999972696289794786284611255828849013408097302403682871358395476779735098656501493615000079454800985490472307588756965938003069535739718865872677323549205788242018344313974557551128872285839163216163000466121475093114966581300068909625235889974542941192861972666438201868435583120035030081467548961639046326770910520183726802406665933642945615647661103883229769186092620475575937608429730920489051257436675912958692206113013378544344925710663491788415249077711136109938219569766564943397028001975008062951899547863090032594027838978342351017169783625017371798355407012231386742029581629966328193961443817940383562133258587393211673715015601059977656306258982350770374776203015270422408920535488018053787366029971808240341300632387544294589709268687907319792697689357053377224253140711036500621221637356916231582839573888195809971565919208162048133993660708155405200689764677081314890963707094565383441752434998769586256897612067530677645225793383072544063665228064334355375552658759143898538073046436892417975508683430069025553806815728009528008358387317604874921137220123484461192573149530819646465826899223541582725416564292055298558449881349969824373453603085656170083634511136598008902966427833089995063685960540913810173416605981315092397881775089051612648606692482354662468433292424581664602029059440237981890754635984514935128730589920476134834977146762635650692771083143006706137909619940254043763751252406435251704142995825471926508747864632961286041211154985922895069693035148549255762394694516250145549875678001027972728569590205142639242204697877996345205930361837702403797740844851680040191821001286089137075387414884662228380050831620627212298762621864240971970993561480367105388932387667810174980823533776992383352745935468161410302666695364753376826445784829858600326307438119793361703921151707134582667239072132489101998519700730078616009864922417675280186920331123098295177197876296678292489129506763079692522131150545464671356625481270131719425933052674805299200266416323774785286753245348832470242714372110056800014335723253767989681728535133081006166989190029327066148697739051122227834962116807623941559068727830556866549126637502097068950808277868182481241147840580194133266752710236061656879321865915393323072542820362799051133870331712583028016043415044303356835475354051039960006695059145790764261744714358719170867406853561818025160874876785390351843753695460686843098761074930356957301510655428627976296086186847151398897593180680248395815613010025975275061767997106735399033884086368587724173199711021969084890333092958765350174740939526170556543851646332714781845158450296746514858596629028542190244199430246307857102949960023483261433167230753575687991443229554387404648261646198012721246292041487926002587955266972527059490253069714674465251079359920074945332166981214933165484888722659552219560074543951737883792280196618880150107799728120674865962226662841477741544610372976161462436597829532074525147485287293464523321220756086181270382347115122585752934265454272438104130400536404025583080341889472693093972160052379032651896862970926534852067552520297351677450236123043148281218685901285374604746113583476306201792720484284795480431492531526675233697532246163627964816346471276014332674056114427577825665644299385760574807674821878059300976111943140149580216561991039831236068330609254015504662076810887887944615889120845916004162557806263010557296365805771385373890307917083121465056337492615832115662658586532067432875974793519309782534655092029662306784084753076812953918851784338683769433992280576031193762243853805038678923289351909708557836083126190958460461602634286779100196018368994913082961851575175588348276343472113277151848208432408250554594530316103720359678068663540180620192852332757229354153605918954272363010138510261871449409255899923373197986838934736947171310231213627299654495921270329256333149109790093058374606181503869622705496443662874916789013572217393480468064068794741319504127687724987990681319168480475050224004721861867881579651949501179930666130606466815758490414598179561998254046481987987193285983570695658997439093936077909045772437711015220354924423462362862717619144433487071879750008359141704744928780235031224013627558933441707411312560559263276643760548505708717332007265315010226734561734340773847681551380981596584095823891385719089781523469827675705294680218033025555373141719587647324505153922864088283326980475595355893414470094731505576150658675046803690584996269284130978929973664069621613421161155435206647032699259436129384946472396658630545204541946418228536587114274682846010683710113200077463251416750937305519355257912210007603124888400653450390463814149749273884478187978043059053641960805456518087847762440541915394225570454186039588360664380158894350426237108791108897216307786595304624131009076276825984237693204745638449845492708826611867993828425447043058036284191689161065395742468529263898529869055330737500472461866739638445120759470852507374632333902774623314677989778836990703220911279796460019849231301779800892919289332629636624715443858406414671425455611760751727857473987961481057225553455024626699694472249032878995279761164012524894256303096453174938678307589384765950722671325648760552565429552022382441315819828355784773192537681577397956318933925452711413897453165812452797222549332665245344993912730738353782065296811858176236519576263907393952287172149747479983218819089833170972926721668160863002527146282715660114334877321003301834658094415894614325973686565922283679585936702609218400946547012481851562071992664940569022093918412205696225184013937395985391575457299458940285459791369259189997722635695752720223849040167573363705058247568074371257762681983748092630603804071940964409388639236982159627507942293917285467173513924692410192434071104443472767377643052201096912983505356459870690511048960522578167489292852893046532859946059887579893174158091365727615633155240483481154319841360422188655101395535322647127137928232854757007249158288639150807205977310076155024721297773945911509020302208468767439388216155871642639693715135770420891535935230466816799184811437230749414224612924989819453427596500005914772631083034032992272970281792931103239041583558079286284839807374395716360565475808289955321190766385953551238033526878243699184998812954410786536751917227821952675844949893100534760983022450922456335464097018835699317668846582402060833615770071995677705476771122790603020276609691564874704382851333904866906679553966663811633726240768358389121715287786877183544576207498252004668181698484538581783951109441942276477437861073760592273901553168805786692364703240465425601841595145272210549086223259792152973921456383025536236935632100427895846391764147549572301830335157023543903058367591945564649203555785610542799057955516863321916906738463113913248715261394575583743510171426249523074135388056237381648845483923591793870497224207363476053278488104471108407289938446544233780482991068311879477222058973294180615864031309865878367922502244630376817840804114869087958894030288005528743004680334549774920692902310485694434533502984015880886053882099596326568262389955621529898171488488820373420806451295254623166692522612513117252428537284416033639840201136439895318282755171712074545744057536034442113718890301820050790536000207405060418596499959262725389412868264156313919525673494998876422386846095538778099856062293811465355004130847620058904250941803664210009219153252760759584422358774456481679100449010682562590826343734844242131200983055429534732121548743765968984400183694927027503838035797026665954185322489036994836543945847650780626835561305512765458572169435872606113425150520203278535852146503398409062969271052111399608396634273016652838820984906569350969963982701305291928407882032138544794776765087881746403238577656741063383772012070727991613210481472440555088274800443732975558026446919232123041631633585311959168750650363776604535685009489349574352413333256441234039724223997739044702373569599062445686728752788124717829514491369268534326361942296977614669037163787627428497427433743473452249359921959503335361455857101386700015584295677979661592382502877966313599319777791968697272794314437401210381087613857090898270674481944907115059373307246916057931352445105014869959202229028654209624115773410807250786475909580918328198554519370660400305618072610671555883003220414882521625036018698023620320743537881617561311098794281877530347132012676581927313327642747179464111331362752074218354370849857547108083730458954324957249058818641501630523026714665006451119183179683589503870724728842078351264151185652305361487811463547396403111702716453813356186756313700383864661284295959512857359246258859184604046783176715356046567042554849192127184739876716034943639272202030302559616276371370128971825185751618436897229815173559210135460457023433003419183635433184953816788142652533131559496672908856449937392988034092928599519063249946524596389828224798226825593315767480287078071208269762369597079957116130875431855624459630573579547428810677214542540999572187346874798841971383884206988234286546544672028307317644281138587634346592918021628927075104069879740873771072833667830871676960362711557462922320417462739759529403662703764466389112594712702866020761288135606818085735068482971385491811222937672819427714701431255500813578507327471875923391673759272658844158157822070770561398412219114331626303505532992203389619083788034892292170910225434609588479140614140427780197425816457684890206604215123892152292811975613736876168106231547822744621814485554721399113443527762438925410569557575751463093764124518168497854874431626833931046737861137033061963224650993871723864290496547878799154057743710215399357044181441129477512011333134480619653173024707324781546672857346381675766459424623880687512419313045213688062796661188547444545328009051238154451737754643501231243815317551667293076691676937571590148620308418348616923122246664606081045834216661051425916906100036039058336693219686234852677706283595326203476634278038038948826639272958568921947087527803498846235334096359310886690770266480975303472629372904887910308321540617376762963057056972876563883070648983861212437828327908064887266012805897457687760411470744352624683692874961947608970695619516711959168643441707840756364376005752227194832295364398752261922163951282617154270596203557794993820719929424112954559176363176196686260976097510094767348400506285215378429036077220494877949229954493316057445283058314016137200931358218701578952700791068276290484464407211877035569171581612214577174397856665138518185890432502066915335483462314365195885353491849143354366003940438614016968351359246377786378101264291121627665325946635734100606507130491591933552453611081933390154327010737490661272647459219505414170311021601091582500750164862614260648799681259139192393815779418026539073901510316443258866742375005855937233556191848214251506237197653548373157524985308531144899883031994118686546067092797176198475984954140699955726270712106051717327603459220479404885778565623949037380074068349838600688935200390341651649760284754742121336807812403536367325383212853443743054217542591477521921504646998784132631644300776283824294356733161899394351062935193437767556664524075704812242795376426839648010260482052456352108848495040409550128879749353679916213270536884986678102464344497951692689178012703516863293422394958666245454557716557608498653110178493870264910589087154212064898331043270021246608030325695734929251489227884772167078499277156732477618716862586378232698074504578793025679396202013614857346111475154533848647966003381283501494568272751174576506975980478430214964050590301387371252962016002728192462231826028672661357268746255700558581229742274728619162689415013279225926159820324505313806379882983681492651402296245720811261525789013257180402389984997822754264760438424865126151930011386676194176167743724567920426814886913137011688794719456220511648294091682154415188448949935761645807119046138564443089969469346219170870906063804856588142697562119596583266271823136998809993876782302580488338836749992417381037271892762026938808972155799874307052092669703138862692939697118272786070906035225138217938035384340427019263602642344580085631655730327325532270292598869185482730476562271986764977189233879799541780559391972832703681163662189785776680069529078126364442347727878858032227302829244963692504599978519725864152551388734375747412711390811606350776588587077989491290415325500008607482173706603594629513950646715713965179031279906097499126185403726602159277101774615279483001115744149258091328531345612662111619790755384228608369155278142673457595985448734742000688570153097852021519674641966318114593206777299699108901413122983699677884681068817922893009275385565538494564044323794474142238316273028571537706902584670116298879876370606335408793621426147465995559408635012274566648463198939615822617106416301467429205804677756856109207911904741223937907918866264486516531026827884981878131982342299223301506415645312191422854885584656154232575682338982338548309663434793352968404451339380166125526694942943311235301659558180113477929104421688798101877901937255501128511917660450807196127871024897571092190611411451396893210985756257006852052555230195075349565120775031964241280152895333922451893195949751265753560284501251839647407507079551091321459731890212494031884339004863682211354564373224325304456452175814490101546816138323034229760584949411003431314306126054244363581005542252421629246724768600775659525769071122856770888388155618791688456420036497260604919947663251039330255943984739816847620426320125466026017698868300497640640331304278029113013101024259078051468814726207141483650089349979531828537023939874783368480188189558501075128428174866248638160194989836422775840619733468680534277288288179357255704985787677792827905834650464201389373882626771125850068611553653250499621261449333221515241657177653597501250070985883532385911459036168014189582558867291686748921085370234028568176851497023105567332077278847064548502348788291595581782748847540136184037990143893497717765251902127879160993485133816727548676667937078245515805199565279541966655696106143032348572164870883027898745254767179015854399626209524556756593797190406657103368766983276841412137382199181630263078969108273858212010939736583863292406160090542777218738460476930826993034201985661162899627836337377038836311925043318115264102569291588862603280980411771851603916452889152119585981198192641642695043727037284803810260287073735981268791737505427942583659193469224598377123414475037935258132269900543980434565920712488179530722294582822357583107027425276001780031754827443360067969407228279352413911701609175809230077194619383892802590465986951602282531730812633442284356701678560773217308396961936863201160073981089002787306831275575907810974646839903551229020017941599859039084421695524928600709603885474305710327824488597283085702238588898789073011166140453434124389935965074887024335761320875119274836937595453948062172313981918399232505248918288257647686047504136274934856366043931148085654921202858928534794117582236383474456873602597960917931814383065110933344370972447253286007560618725778167129741263871477578738375968287638778273589860469507765687198473269132227687798182214496297663100861474555796325518405613209389427519023494479580943802109564979020364324904719958028647774751789511870886448212448684169437782086997441917536160762590343188987276363276629568989114139293366345524420080298023624397152675564321322312447875190934568009984978206964385789965371651154427829818160242004389493040871882374960524043828452807745216417944154862408289205351525526694013162634309455299633545547453986446851036430607568460601651039785741570839406736453210087345525687580860991466809077645788881612714931333485964426381886392798421477924726355737753234336267376636446018360598332606454422098129950267760434300005105459414372683549338620927327240854908461587751688296446786421409379841663669011877138228124372929121566984284902898419528827671853206251930843927531919002392646586265884054158281405971112078983772341122326452000768471339093156476551324877651293123496750533439358154790018462398874399329539724004479821607640598271160928434890241497008106149650235303733062976630787488774023190417910259168935011908229474046110613084110371727632655781990534485451199012407450845525593190646503501609685381679305254208041664472029174665259262531663869030062475433509462367794314991951468584367776434813989170389089610408499111203113692179847777758802904279374218271257207553929681801510278804736239253144868459542558942333946957054958604736375610866857997204771767938355947409989041124541176170604148882315580132786129051279683431800622177132336956421657259684695063716824792140569490347769553260737310722165027141617157330595203733928253527604794870385845300309075385705787590246606865040551367587954955509449936989471056052241183824415343137356031261316273894455120557905906420614565843812512173223000934009090394581061858009111156619918848180558731354396244111029859875862867134922706372931682867563336258514003754409362656581568337124168015406733887345249740228306031908823422761810244352315460600462898063729804464778828802443743903039539677313870866460230603471957243915918160575045227679957853998541891132155899170213915623655463109953017148663473504783865184321261209692547535610413050022534311557236426848225611409896789851368115988289369964551694335408515471466420941281999488266528481658825941723630055144233939278262678453348573588359282671270717069043756913578583221042492154477634443466645645083325206244063148519298945206460355284573276199579604857873736058425086380677257923889787659361606873304140100455545067895634363767815342372262523627081279995503640793432475800697304897059003564876768767910332870567394761964462466140508697685592325409457730317109044896861267556615145727033346930421054013608113065640592083933133365417964984045384250784446487380785412128268687627030507521441082999688524999199796169661958308490915692624621842586331572890862341024062239750475748608670787520233462311571448929017331454426110009322785464207607304199151252051662274356107264903438403434416043867286244947111450303852410016936247473172313297047303276870346607557253228034775659745185990922642946119250401147672497952259660259127364985954857443386491392306276687738815188540097938910110427544592848575870367933213831090014220150566118569423855120007588166856147299309630404704649805386087508073446869894876230954676328728852574484641786046984898728818863795956305810243251451421091342421924343538098743997330703730155118057704032696483668330053902591666041831631273812840328667445599143231351548572007720723354726985591523953023638602514909272588726870375201609584352787997940312135271803306306255542113247514085436945036318477431759399899042768194573679171209751606493394350250199753340855374545887744570489829813347853200160971647950929846808201167095081131716634655970680132302640135957423019020299558413646539478330494357670141347426146979843727464690270179604114492042215643719722979009007358453047504104087104635973295706360026664087952918642118499890583967062062579967369274902996559079109664952309047839370107691085743573308636699908096726328336789445598190635557314018170872705995029770749250138449513178138235616683628067578858989104331477581427976019768236466645940205111943568356572824947838050125507176995681166433872121845613295216773987828654671548464133107691146117926961028505241920018647882399974013657832953232473943355722745466040810979020141312083881562667064458873439732410318702696727195993910817837961995810076036749169454237063798794943689898008113374889630063137692919815213356230855678927355162639874168918014702583686993951158917497791181771636926666791159841255307173982026429637544854016267275898260772492011685028753480907116546144956687717912126323116828049134049983715111659825806300179098079520360379567277433113901956874389560909861685924139766902184828911730635334967634898396407951739240692321066421755457673409634073484750546258037876093547950517429134021000992783769540966074698699939106853058759685414983713599949869849282828427938855459831600464091514921766904640016483523089360814074950750086324990212133582206510033964341654723016691820764038010646961522934307345022263934617457432733088712970124447354860596254298204358003950632552012224248032662142287631322716397477079461689050194048545260592321747330629662590513487355287400636795380367765026256418923800996738709771573830242909991305906731717094079173261750104024282560528555505861047170066310818783784094318621397801046141429129505771950712738764869212001838443084478737926524865993232198894600797681544365335222208426795540099131448695154699226203282624561856793785785964906363575895165258380459172094341429456989961024868786203697584062089966269225081300332015024779625247080534296866526494726504296249171277396639624701634469027249083679683877741382717734093632691376596456266862245492222541745747553673055349247028920680918840966953880933937177434962472042496683427723624049262727459326103392357993109182664797873310611820277390119199592165082364591078760199294888721148613956089906780457127823369501578874396274950302504049324378454084371983700906729517502418890374875638856011634483986922704004569497408930891192158550205478254660147288984945401046672590376926124610070312865108388808040291090598711497306137280201459732486553327462047790586521295732516969667477318254998930046126757880615165845037489300142907914259952110702211315572309478841780650441681640789765959707311749685591578057717461748850039137169141715692334233526673710380971217507025102055652452722906968775003860556291867758513434544172689241421924133918475503340994320558795596353511221745354613440690448651101410336340285461528703523373401060876365361735035978326298975765716152670469802820430840736073178607199663192942664333018463146697440069000176243726762387537501820912888244777718448672674969196084172604792028346552056977045244209014671664705041942809021926666104069251186083812449768697813186199341406493705626765067625893434461633125711414683563032610438398391935047197285908592004567158880162926320518821361660508519723977337202493996523799123672326650510384428857786762915051992190349107632953317643405126831186153398191327372943232886290909672261116033425190037636967671391001611962010719140206746095423964796591393347456396225790517404911135445755149987894270019671492182503098751372523234171013753787398030090316811876031876504947687165491840086573445196373857401289393288065336637606799789416133511441901204868456247763448581953467169071223241715678912274350502094893912513495692448784641934266181963938000429409059946587334659380439423868964772814597369054789078043520686840352469748014947755237656676922152486350171398586786512022715914755582386257070490056289605044389050934282707442058770492963645498483650588050069880718484200477633273661407456281814920450542942392396049308196647197790662110535013417839058797502082790913129205181757219605288795153238584878312702692129736435668461456650737470857513459074327731951234572266951239207897072099069945642908200377588718216528089655793873967201705071695842234048338508883887872970992123645769421483297543196735571680571106068886693372333002469915236448765086074668429335774288419764373998814037531643050595312279585244687505399870153734552065482104997788615189954321149116848718165592632162450774163997315779838248009604231187349406598251599177276696092588207678373650550175291542630716329096950538431864398051627571587947324697616436587819096400801547873524360031571810048522225509180288140079607796688392187527188372672287836116369678443741397448434239486920294300970208678590723547853275024789664401768948542010749486438205503952488569152112663985034716675744039242243582642045765263839756597206294914415902804938523415227909854015622052117300942321233108116281902540146886101654290968511623866273859665936350022822367119762733647571171403977457479868330000916965436045735244463331480254443318532860837485769923924570408489955993140591178023407752333597428246524781806344774467358374287477866637764163186600404083636727808723180053381202168375829168251922399732022884986736538082556266937914435423432085985927201609907798267414220419791936314911495871559009056628673151907168878658929682025515746898262067549965473669476449070798611562114774561925732691574433060974194059595194750048231123039453344893200582530485355097133824882897786197747680189769493632968606679303293304999145750448974812215860234802463134005987419238725185523531424533557508182464084463387287649724046880925553854876349773494667618837756115992125194815245866436246447547127566251790470956959548016649590920928950741806669325969150920136383936036757902356996946545844103809811299377699227868076222257157694903691142141525746692556560122667204064413937600548819415956328015008979627309859025084581302140943706775212569036395657281160992184536066982317552063528050870989920153405213475827675433328029120902406781623086993762699676568171282960976959294425991533331034595876166432036944513988258550663680833836080870139428671799361644897873593244947891729310752839749792870158743513472597618467731317273011513630412722211756425906489086753173142927163053158608835917339277946940281923771314859056399270836429598619764139214855694728937307206165998329464941080712205042999019875491447168475102408873624164232950147018552463701269344027551639805767194553992725570937492116512063713094462155601576160599155505904241462233546598640600280706117140839243062334441755313736696947250599865288676917151522247953750129942822961726500193425099741968104132743243376287782287048455402202933522619589993262960677611723710897734722372852422749608881229069773142285617970011069770760370747458763054084355964338969365741051754288277093953168507827356344267169960583721728762799990396836115543378489700869038620240938961029270225155903019228546853793585538362558009724877962909224218083838774008562543692302078131095966496871550881710899420899378971473129214408655411300244553386400200480224194674547652926792004399773524042349582500539599485586548105375176688926711751064653009179999636948467599341202402003823675318370587710079897308648037765041178959129470557644299398612845965857106629620761301899225136376491240992167539913634271542552198725666052482963037836640095315130597818918374748350564271404547827031355661641652703062875455538751918064081096565373358327718967528779654840534867028354859080074175828013182892264206326506846518461593727903356948137539213001445683145470072674661968749142466854516533479659805440211825515923639213013320704028983271502555162958695573786947290245466197785958838739183614187783674987866035994153028902250390994791510172989883812260948128261812660363739188968505295504836499397211547422993400820947432978770244299380172631706280402885951686395700481894392469719855538155415539868300121962410160835625608322727068398212450636269976148963798350811766242061007145998160066474557596006937386301683725690606114054195523285793799956541499006032484497754876144360131073171592580403052940017678637813086502388896186972286765076648944316494967438265161979666332252508067764973898758320793989013607946368574417046686440544522692791310953598400446084263039247897693161038406582748741826479051358540697520273801415157007012730999799045335222139828117073277580855484937320368631826682006330646174496265768693088845460776850253035641256427725073059715691041018574117459490530448632943359737025374591723630340615108234727743145208774600396150527326953599255161048450343649814252307402642311211187162888277143109684186428890071876144765759573370526482033264236028499371927065222352641515715570028420163798994276245320674632092972385684127214097115958465639999639352647403511928026728012724798954563572526606700539812103745198388191823785240345234142167857086602611610058956300707929923949842052228216051537591466860459356855399149697024231038341137221461770295592966844462974326466449425704989660964929338198449131221865217135890405215158497043565378761580941382388926785947326692823803339038709511360902504799825092639296512449752331451007540069032717871123547338382381427704235987284314095703161716893051809182424872478370330270628885461839467738918398380345091135073524161824583717768035316083950257644610421530117432511869653020469330307097671169090343055095231854392760689028794552629344484862827504671999464907720002704940307905585928205620527091679343133583172311640313882345025850150243719803955790595321652068578470419702654364771055264073482381413543507610405457010453273565727422518154907271718194367334578963287179559421414420900321222589073704370101284136628072496307921850666088893745196386141438286755714703677802661999868899063291708972354263811996253165904689301663767906964046036441410943647221008859658065771957683047118237386676383997486525318218846645350384908514373555235540084205785572222356414421967718238930562159205114038732211200126268492638622951111812461190462439963386164059463204677832031126123376002285252880931393250310196028730641133719395492033503161640665248646074856179212754592415978846694672132568198528863252831456404677301935719608885783812750684742156028099080972818582186066654088594326441438830584199075133812044593824893815749753383184010953922507831322231209061596825610569224017109967111942405777611836429342548573697512294577609015834542949487183644097621453017941110265015441214291993683426029937308682342537224149452167366317190695969066018988819489847575551456033473967938395002032851890091602089484399387928426780492050398375520935550135955719257634187636103057926152599138788085475146360072901574763547728707998867146431898347361327881974474689929145699735683667872883955388935167998010494294398113073225725567340982440251065763178403037012992710531123192060630250088395563602432674369680907270013711822197150323691446767880392686078953169904483680799667358267209857260604086047295527806323590184712403400855969398122577467756064244801914500011689414746523371582855425557212949320411958904110080319780363359985247909126784189050155041246030506395973061247681268697586782831451123309323043918770550473455998045607237714248349378585521389313124110181651922609641378542962866506893033213128819211099498969635157439361463853103503259007248621919205845546948399893991865478314222617329808112957039897425483603891093338350919352803599176433156648986324779782256487097642550000143260172567301230711047539916184353341441629288581123303696114347935324504584296466198823084015762907961805973295548171770603490230122610143427835245599433101797714961539314215303134022736164675513344076040893201583151454766630456443654294954456524264871970613546629293684627969623723174262939130982481519804603364601256494909981591099191615794712825944528343793015875559536092752223257305874457181195756104022510029992397084492104870563415504795571973480150490363620776013931923609041265147588315389639118889213456598373834910550200588054896878582245058565159737954279287789568217848348341390164786622470700660216666621600193766463134180501935052930744729564521541234837849766085218532847354948636674752359556950756542901897410956167016107511089861223161993480223966941827776653864331129273924073733701215420147973103764458180313376332127824782242843208588660221222850210567932383863321506046443772563558305566213508940438141671414970522897677537445498281599745180733845615900397924248265891149318364599063307181109302857065754495870747892366929172347979961387457807844797305792869126828563148973569501640902129947922469805390276809995338820023063364507475393616717593239833318949082421548531087898415646984396082091456624267463722164166542475511790579399950590784441021301868084804861921863191878486549334841844130166406520075903687307457366001894266002971125838913092523984681865690087766409272711132715055808468373712286664234200183259752506519266125844563367950426783588606880931107783499236266288848615183260335333914043166447501754235931270429094359599186544034610812078009435272574115849535250882569675532474827102651118163189737277557632235495114936369858918481972644307022429156264329387116165942163424364326830373382748290950912174582713195350535346174077598565676195182608492663314832761015487844547300469059725237065352120697449447485072885989897432134471137468754800576924848792126073287778837082435777742808273238536290636051668939767269713322691039647912145410587995639994904909547376530521433531801794134546311888857214243062478663092423825776060305213411461546494611085715125715737344199286311366843978620303265079468386495293495315860094308022002747781202543203849216637063075734893972004473659446586074198249450758745533366259223766163196943353567913971314380950681781928015329712083002157460559276679328250631087618455499499722420171408336229726942979283505967512751040991389502769481218735971575673694817198347031538003548511854913839950132169111456142299755867410850811666470799714803859833734840600963530501105729705601361798782843114632790806191933694230623799283230006659934721427049780734291614564788230244950859642168356793191236303306162553866781898630299535420141711074315493624400532896461784773583309061451284661873650528022036439354761635591505098826849563684815188170621547778201800973340535751366775166700310485193855495392165106006217894187552993949500081900028759758465141759097089388888541011764714581437975507604718684221689919005726083319212469992698206087976663672329515066674871707673612987144847437278823024096311207699673626557502486376243621297728808695698553695412969348335502961630127201245593658620455182413956524679423471561267007137696983335886885165276410543693186499375790318597745631635447425003791670560739587223017750500177306801498881208995213135548323660196785732746169111753333972729316267790454963791853328383229902210893799371824201633744151349604557288770491268665418717628080455779264470623787280754433221908891792390221557442252942793996514304675642746862447934475713380899202644838974077436107619480566869998510071409395643464242238526771774202201264539300960417829705980768859831935942558429859648826476385069043407222048043492213985473375647443377577493630751778475404870514620900366730211252170041201285528077937574797351744525310157142715862201009200553560662329210057646026972419375942815373113610163127905203208708619182162252621237713819736878417594881383672713806299647401179899509810723007558729380560093267501490657575189056728979165572774123003797055415221224282875854390353429634084302209357622606183206148394526465101810568873676389894159878035683505046994048375745961776044828471658941626358759397576971272040409301123047369536184828885191271876545256721933719638607703050623750224782002449093714743218426006293016692140912154367985851812601088691096506292835410986600272227460325080238787500052450742626037508651234824417396217714942630597915530409980910055708429178543386700703689539295357715041462093020931125878333688532038134441179052083035517026797721136621859240353232209047421609155569108328506424454013278245045851160456068782226736298868318652443931498146305422540491354158863217434373116510016385889040121740723066364607423889387895686739578324923019253941256888120812582171469017581444780695835791270441613199783684631888224870631425458357568031386315907989023088833836120709427074050083488583906030085102104987298377380358897074003656490552428855747977664950302217884062313522629515963858701440899406948367916767912529102607916000086019635654402723302119324189773420506513759841424518380398283106054866079779229897455950249822364425918992172714836551580662038021645132069963365611115288968685430162298523983141045433487049387461332039595457411635523137061862127498278661813434161334360740131555251927775373455987035421087291111334484538384383400793452155671315893304468691550024931466191374713200624319022555064000457867223659221802664670083549429867401920998488640452309503838434936668963092661010979528188734835306793943232801189837480550168752656591137645541282446216296004262200008180701606838877516570519341040362871899010926583114719267904351090457010928154510532857696473200773224863624818182088375130482150118491742215836711319407377628782554765343358150407321237114676923192959831296636649126866101992203993178555287642369835945961894947777336998810798459729599040024566743508267996662205158191944534085129911558205461229386239776552462892290575941811143413426408268671767358214918427022147833711510736286599812857114438118960534523371652473665276900559873861624026105100808920603401323846736007069839596645441604349213520648457993390706023696564794858247251670788367098506979336505855670403681483378581484816112356243732212464079523639476293455224571870230675585166343240393651050172603866970658971921082910662870079782353260212322283744332935636871993819493561287427703508908300365367407923798500814968420145100914553737859528841098768759581120818932449359228507435154430768259511608430139690537537822849100890638022371711566021652034960092151536979621777222641407802233872979781253879336491423615600552286567115566772313707497668326260969148871031828237047563818028822957251081835937270731147907138083719737916814787805643963062286659927917431577543138510053545330475477793086232431859095136175043569883359642319836180252353179518685742228484533107882498458265712261428354223401648358220002437025234857643641070419766557555782002209967988268114359708224209816422721348516362314286927011606787587818656001634257623633056065034105764039600907879904707111569445612182076036237726238314024700010550028808311604054547765673229062371779294178236596831506756760777050738643304102763706065253300442019460404541876502629713720219779743986124639682294970570139892922093309492998873555159372328211994846557587781605497232155213568084628228852680528165120625290980168713561342348700388003434760360974117155531266811459322177884148038049533332220041621755875958784100271607432119319037470685398095370580625040246464503630828256508519644691304829095544160482944321596242154232579608285759998203166134866761436162713486401683332386133929762841169650020396343050596644053653291892106428538160813365654199579033775662220390562641302487142463809011790128115928141434382790278797861121311538115086663666819168060255310463677314401043693414001427547018493110408052459569883181064284911360333288621680970819832951874044755917372838385931067821800662179778609083173193334019383604917661922327486050369282881319462200961640308440767418949563836810496336970329552435241795820842271660559642392582933040112216472834031571967905932064941791871553747423806566310016177498714634715959130016907772921234134432375672709883200204085709092740917621658344143383485348901452627802025375922939761443548629415093348115510015817084411329453467402185776899092546887199115646651069442422204944234345384795104823342266260904426420295442670765617487418952028701807690231833309735475497998984116958175816122096559646387641788384372208562175942569259302056222258126512580900564350087355258681491473920215038296092404055990200615234977068067292212901529679623440355899039881144256412836980395170134868599519077168669127967449948054998131581723781658206403816516820564979160404528884020595431327819396209242374308796903018859629606258817798641473578420293850519378300342302565941437104202692913820226762877527357621974405908940410404853209684395802184414618928681474693439359494121366005236850240129783520747792455073499523432729142686411783796685070787893288451860657687857855374028545796939377852212229178254241579498701073109858571913725344490556973332147746976520465609367076731037620347384957472838667634115263654811528433984654583700185333958002210386997507348669822445912357507624364128508533596233933621174461533947064106596273332100558712868406439456154215399939729958679031723139875025715554314787847556083919382572260932286627037246093100285455862173785924913364875973333609276140697759871652576893973467997837804796454598830415679156934663983117053343266977487796641870150651809955523619392597039021935760295754680607510832853552632125802339370351194751796728971033956869376237026664253813490380207282296476361694172987592753427654470604247713072446251333158807078829997347938826958493058528962083050192009879893372416153900126818269701217437632625930607858238451405610069240547197920808651342412269397910106481685331698505223355635486884261009625773940545388143745660990586589209821965134553187831058562834862345852583373562426608229265239807915660876607378953190400867586777288659504017076032934523404295973091381848188920845318202754644104409629294436471321485297297851984127942096888250622508389330106927738448847236568075057526468101514137772450515190336813714692587394447845725422512606718611966694267676576377814764874140667173944223701121228862921735870500367368498876760635608460659565899782030538419102548292911077116963282576950445781945050315991355383323867885467431366623850351995072775385530205501515365665561810960744274958174596969501007970707647865358903118830994093307701508020504254874264310675207281609825718315634098447986877091863565163189981324039858481019949039476191116562771808290708329752380344778013442425953281637799282690387166471514076068834707862575877147449198062455052008949826446762394165856229105580704666155435019606178781417040558876605871929197071224004144990515297898421460737243548494462881557723665996596297235896937494288909437997354419621634554276356848025840760685507327567055133713039812931736886916400924094730138411427788632845210022574178134155268508379427289926793546783440294510353345444885469240302417778925789167742907469891170819005756948473365152516257222856689952563651287346294541226723576103173592580451860246534824406682974823512506957228038221439064412577703389879971904376526707186508406739303424303195080318612582142075477020186764029705279060982501430757995303629432660010701019070999153499148683466266041359958349438639435802750591882049034460369018367930796884997360966339345728140842097872464738673276393901732356460945332297435120227819457858636571931095117442793565072050225038551344984197713528998644438182042141747956197675447497808136059043513171390295140504470905908202190779560657331560097852078250776504716919162325248965980105385975382927208255074446826390204229096007103064821729053593498432663889754852795390483466359267943725027977208097212988280256118874190984755044722650566798952253473728879881690385894292777063051699615046196977899913714625201065024427521207639491327741091755260510763039070351602773594013867664156021104732398022421328406269506107058841639563065792526757107720877637448043421966519963615748680684271291125596006819098827956760217833046548050280913475496149235548373845824671876538499662365765698203496962886624804739511394251836679594374593696007732233517612407854897534023732071496056135849614902952234523552125784124186559139630552240722438230707654812036236147282798636993284947214127593358687820076617408764120524703580848164607662042458887714573671410170804082069636585393142719181640760962692463552780471303707098888406122693989689439462334580143262811302387912699954328654940244140444565298569321781208498284873235993169124667910234041979243857976168115321528991681480965396540199013514736648718998458062532999636051919825156606708740322315699111339364388368793500862799340759011056540346335739526736525103256743729633955449649752956749030114341469382508140884671631632045757822367155466471961987719620702693984701942245304557200038545414292487422322371741171445807592408115069667858120042933530817281337162589795163418081583240787137699298765896268623414865023941105578086516120534693285196459907457945389140012557984133312281224282104491751153866642542752079725217113440345381010369486537079197418829588061834925723645230078830824123233018918379243832810569375623722211953011315514812143874845949352714543889867141378187839057266367258632290392062945827340856229005871778169050020127725951124388235847607274269081911650289361969404497125759571684816816860953489090559456975298623643022597651649188429645155688169501507171268432522309948237051070723272122419561830837057503107307925159062585833565581554027258555915236560601938179390445751028619192955374432481010867387093319970435295483061588608997303158650825572427853516030408783194809646720179102574697218011162207153033683229196812932904674746271241721275249901889314188993537660173467804971419403813535264624937835965644575612606536733848271547184193981345131455375350982989746906832820674483048242899487926031889171483804523288383029833833885758254956564445737733898638727431185283837818726230505746132704593083544154587808508997420192099483197612551499073582294607708151541273631503124770809531307424752992259849552547229864058952552085211330607378056296366796868662045430377114693314133317651060639726169283325885644221500444081372047027241290556558096359478054157917235439239732600512086673604155636284493157457659399538650012182720099021818424782462576141075174329127361147273819754029932999250672405391451088275102227390379377236542721693535556585369547067409758205248975480949360140071361037520129899622099977665704873491346782513046709622991289071525114329510634735852657360376448528953582903605444647395060805827342953819604803341356910449930474802111589462141749446673611382151684690796753964346288210160363430392136766017288612439455301500824688219584816840493791462976057586515912262393208411108169988704082208673817441313485704201295842373603237478723585170749103539356631858676233160952947468757627008934726160292002610131221917056947536318530287099029548852140841354573757205666259497755883369414658808966243716326331745355669160563888135487828944211224875318119061167708427279100051517846094660094821790049832909978937789719919264167678759539239771053473884633102172133472380898222408051002417493210757953076339003355025668942206164307014482725398776363829813743955729064188560146358682154588686717860031436895149403880545300784960346735906239257190710268559518192072558182781283313012364932964733562179810215621712293583832503889993887898182109022048254950425078844087288447512361344746822161904317590157968704351120131372796416415958752714209022581704248693579138538809763102837157031475654929076297005747592397907204388009328249811803052530992350588656634948385232508083144114024935679586807349776861989113883632907241710133900884572377630618524570876040964172568052857899218881730612728158179044135413858236661120906024531384932494116001935189039463949808272871712768337458771441986166415483174587264623371535638382268199903069232801349980857376628193110451469708141817291045218431660728674121371059032110723808961313102717848799542754658850708318331249885999262856340047347593247530548542878253211007318787440203085300531725985129192455575355249465760644757328975619057598703749654798772543475624179155356643938909190635599860507857092551979308988022460549183619020855036465885712752290060338152779270456966747906694417913975145075415167980742030168988082879949994100886760441621809175001791135960494836905635782842641930183826341861940472244390756150840617214129308102773802628931209931179531477926394700476778018211736068104019489144161999559698653712222359926390791511255088897281824113472788148552968091029833963516941891674680673380209075469024152345204591799736342271814960628307675703729954433628056625953218477242831102169163084669934284928279071961982186389608903927589293299255311042763661531089208191952841090182882461748448376361717847769503569510772406464371083517518351548200928886153925174898592120506878299716912394312327724421315773007741503707605733551842801464774920053252544842065289368532644145959688458976871603619587647491796812584601586622277305203989423033093174446893938045609243747921629895234648649799616346812770657873111231966697944871961708698036071650517490861547316700975455859627040761537813625284541353858798523804655813364501550875065237645580870561848787830162108328833452815937635299111525168722356298091403992684797950365819746566495289954290653210891228357342336099511283750954614097496895590728870123499394669547635742319169853988830633374585697219631245947458367655415853673648942186985253016584197059849539545536393259173035356948840276447423959637878202171638140429182207182014104928805080953537553899679439713242010822327585499169996175699255753772440594832794416525085422189635896831604312233952622992439891080617056364701334865614967677225494909164246766937904035211353805618922805923587470495262408639501571584029031939107707186560063669638646453390327672807973599142312533551568708588318915717358412036668225890922470148511674360125740575223253853352034503233122532169622550826891204675822111344165636015422995111928923503786853078027845044474037587020182684605580886596620256647704105081406275498499702125097504115575504438846428772684385551858689697819936619607888220922149994158876547137546623636593691625281522745241997017871306930548168087163771341295645524159549147596706016428129064869610881612010717777261300131901525951024347157355145864010193633316241620982569708501930249955544373767105923575494686308753695020373169586959050089636887404685953265627103724210250672224961157844896410053706326664222963131172176901915743792847797056401789580348618119028037648418587540710221806388143515016553880455431036822635369424148750432281125643204759019253654860373662247303044852948530076436358889756927041945879621090497475351983655877638786115383398393839328808984148751057684557211271604111382181499305781420505926534319556336888757266630078626981409413823115870090955341352134889995974198400715312146732245032764349960436564758223645570007191811020326741504653580678556319233329186009026807866803019681194586199779063398700040875234357140957472699860566513756888382365101679300096235751113296777426194820674161910850923498578264729423400400569414479919831327007811417288946512596292059299574366104263056869519230628963307864449097907172177875880761144429013116964263557255637739840492527618813824472911302657862120415131433434972149065434668799923323873596705131452607086558784794961730309071565624529513527005807927474789076996493859840666262396241717107536200470929623604081864330812500772507316655573247387905856665674485720221618742276592657667835851975180540087513807179144165433182142607342542968126686133057949579319458394780745361806905643989896132657020054374617201700091655086475994063919118690361424705657966493410606038737115652638922846073919705398939443763572667577676500862330457894190767703272185093833417211150595803761033201509200686553548923532304767153955436957934874246507818547860575712518426311313325225947795784394814134932971339189561051144970025783182709654864519168638097290954791292144827372608849149891922096636562123827720599636665765137936652961740986890250650024407809107855345855573471580100577204758005116177045079205938331926474010963195316187568597291569158077139141353774441129024190521133360058594953518199294723214758850817313134984087332973011253741645298119369249513695131733641594717326390012543501502412272044113019948371143484154406655371332782237937415154960480757180970233982901295113482065532395204239870175883111954118511131253009171147867010265363827221197851468972812698041381438894147670744087679022518550118255107568817011561194847843585626007429258988840096333328934841686844329536381080884086188050002249875247183104145705406116843057353639387987469845481616741473504817311824252137972213169119114498785499727838415372640262429299392533569123717558528153034155046868350907033842644242549623445344285597517284253230437834309528827861487157083184627733583350084786701612337202518037516037075567216316190601598672151181025040658856978376246512645602973763935875863401980033845627956933742647194840438796690189522533489654521030847905713239347634359228065137673567083696130378376355723147356178291886092848434666717161397627526633023660890063207120575616018554340880457914996351560872231735062951407641216420678897001019876880101443642501417564300100181972088720547219176192685343506812917046592857394255917365973804616544179876874434062151603019349820577867489036329891387134376869110838630001604365233282655576273005621228448438493246004584201596164496680832037815337110112390988566273993803257154698481543838946403590367514909771442310150845710471930060223660660020049736952547237850690499352280416373442444306504991088627011397555004006959325627114103638011571530694620783736865149525361025045251394276264092127933368719456154222376971359458511679301976414213675555819946827753592686826808482754701220864878042595326022802745759576109935003250393698677997430589528067075273293688160882732017114325860778276159638558940680677518858246137365949491614107560676064004460228727579046112242931786308103310939364346344404527194219634467253279660061985451663371602554792844982780887445929437884631115943390856250250350849148526184258579950730818456326764966322921269210498976157326273364233059790721993695457336143246326874248996958334610512510469151380055014605444780048553812531196678393621895012458032487200241811659176458212424119590422839103632349528044714867455190262249763905013848738348435845322798132128102945286809466548035025886990362347854471803717146010766233796097551917987211461556854212109422645525739178618094037816958543686845577308350604326657860830418372386528130522362994254263646554715336871540237359296703054024921461916474870256209136451592618101663207781858455871396464342031054754262200875372886878272117736650359195010784691214627769709042068334755047867717855092523558503751709806891112095743089619096965258883630020690591623767898518752381850491376364123228672945103961325509992867939601390304554995051935674665837719441074451615245281246733276630798094507905879957616428129097503684391564362463112045513444864298755589346510461887570505487347363327933393693212464136114269888322403697448467024865991893846484149801781863918697962817738729229039974854756801022271217601782096362037439946413480393240644808746085896466338578903872562700666166616616935991258724929653514027586799661553254013807411474553017233847312100379697167492547549505991863661441570082992346638667669349571636131931946836227481237025949500280885825183624003194865358549641498531138814431288333307308056394803145300814449008632936049231709512504696588210177086947429984183796611489884676251911154856656830802464037348633712248977913402551294621124943268719627634545800507114929114074194377013255864563301730003262573739899847348726248108640913761601911885001241732294352722332229446755568418825811811440207114750384162203303820043954989077036756598785505870109388893779025343143724512866121075418729869149666477144464856760330289576533563416075084670545361047733218640068368506276445092667962800281377830797514938643238757741248128952201806110306372591936685686409590506446602323765369245605043529417020181008501533377355675537947041978527881445888482471779371354060792682469544727188677416779800615325357198622732519090119332623054204796448328874705738999121985213948060447136305239548624757466013432992127996267565214070256057835382476206750857185264705699276165568257173048908014254043682384924519171140011095379224615805622711001448474139304809568981001772536688773367128427544214268467098342955552520054346363352668803088244395515074056225733791978371663457846903912467800239492113332032691284886965755260103107185332031177951385266839906930061614288090242762870143166696024716432410132226806538498153127121523890625124108562051582748890779748200019989475887322399557056053708803842904379389537441000210911899947420550242910431886543156572808715754332875797052868241945819883397760895476446324546880862411334464088113548022868733608683360931716109250386961680996309874930334428270433956494467470193184805276904325001562357252081363514041908416194278973556148486601068011620951800296355794416998117029465197942415814101443375174117716536474769320460731495433864437228854757458889259953785640395773882895879351087433746157075783352948413318758010792495137031122769877147040656135567786010768713659638241703267062501355535601402070616600388072230726604410545292541166438284015543370573057467576919219019941178840946043113533224212627109448996910338557358383223578795041324355641094734215644336605251641309631098944803916716659793896658699977097499704120588512889972477904662450198688433872390726490310930471101209740197024642983306532494374302846072248205979957964347001203447959019050605370191356654126307439485755831385853491068750884783369158153873120795717395685471129699288255831068602144666128843660806522602119342474356349420830944930261861424257078704542456877713201947496163449146762973640454791217532176169199230514469877759901569665547416419732931257966683945944611059527414364913770447151232844995705825763269518032415024413847575394193925504285772964120891552010064110324229610489592255123572557720487660576945430817125220727389725313582932146455036855044159482552750958401795725449258544543862083954663429869887954954329368674762697268653888345104592977690959830919611672422981164156594274995145706647817161953253371418798652476095750936815819703520863337769533213097544687552151285166061422666176169481568679717433490855006680444738631135399590043290666469701071750238348884634891019430136383353225421109569325180073206371077080713832565214673522117810086321059992764725902074627627451944431153800269283724703968253493304155786083163545963905371323586399817294722296726357277172695019003433813263051728895831149028836905845638692340976137946567476530018643994311175880219161394562929235122763326278512708241112342651666122830146469155434626742335369286435406836305285152995707640760656367625631098783075326760972570797622866474191881518636924508762260391261023236807665030598937219205318952451354762902815921115297794056188004634886126206363181310180741232961232424194489802416919665151722354317892901929759150118790687268923603710347083600055986107996280989947398419527706672767482291830587446087856974434202501093666443068967797522635609872183537860207754441664465111339820611659671813812988827542182826786281919235539688123616435952480348241220400030325152873540365426602659308675025100398651368373144079379308682416710137356991766455981670261875444740790536707272882439737584194199237834367156689867371778361372603779209943395595227312310688208601321310356378560397841513320965519003944371089147061114889205952400389381261233059659327239807653978631196530640181753258446665276024272198544990120867135572836521391350604886307002696576800038352036109681137928546121434113322605223373231425948349119763957636204956662401718656279210958180557384933657960559818180317729097169160652725339068751101613231006081825320248754233879030948479450084490955597925657868222247094185318711293109179683893917079734121130123966433869529149935531041841694281789472267634617519863328510587416744571055575853379191246845911218031890048392245514323366914414007004053900202809394157874923506385355623573389781575465479075450062632409708620144297216618157169102741938378468460395217128838629676865664965778811479073037321720089012628961354440915693509412982819312095019266753583271737748212631142437153618944878544907035163416116809014626043176747335267041568656907148450507900026800369406111210172641903720083629389478543564993854643156362962323873393650533927635084099356910096772282728485616830019361792601792432154170018021132776325365607496165203473729433999766787967346425192964401527509655371642018473750165544350103380941771194110722741405933997719290766026910591850386939263541550628791438327032535553222465939292608149708284329813796072522506318815839737195934520289434267812309374088483923966420789499389520562891430148633235600111171416493887904557956024448796607629380898682400904607230597177304581713821726554403883222221640724418048238293250462346171108475360745562945487840023943462506279383620038579297521616269593979854122463886701896930400786111344262705148872238212675840549674600363201915939987116349455581943504027075310612871309494981755924526360482480836739053840350283991249098262490498444108784907596511020761520223149472126873322888499296201275852868791721951276210841764082873470193395182718005219692675168474890245606012935109975800668803676310936334183705111758013447663312801712206720762807406666764401883123048787608068209815131301173328112671349213698474213216766653312446866724304990521559729775202371037723557658593766247926770950928772987795372516495136585804007953443621888734284607724782236523167517833162932844399601122123200772632505407968812844602955096998722323605499211989864193238842932995101103749371586175050715656592111333454093676720799819264913482094537483403412773592607104977669091882489753543027139921805260389395827771211084043133877981922863573276818490667139483426441825150388346357485119381262065635839972028903215057379104695871604657661049329948864602496153737507344947167500366530470037047925233536023553890944924153402353944127454398920447147155507934925066385419258570174135226662139740430200718436323103828412952249820128633734511350041334705792595842830040536421679242854436415208283637150617896359131866083211223143710115661187357748967512804522010852734392026142791823762845299097798482756596244562863186664441964606428545582287390430219352255881106715403472558710594533639918327431017360231950712013111286849271018566140042568661234121721361480737213347325955979797684422160275949007091036505177723462124734162421534734870942700831957475279671122135376344813379976141008249990729378275320942336466966602796812089768944390839284929376997044431082593582815645542839117471306928530555393003254963999643393693040372433226364588402188918628388022621449073632710065021264280253462662049584506872988757352398562726449525712950718537073927798042743732689383845053305074519900164261110144910709728161303812658597413682450380990058325722048103170264363223930455967181333496122708106670930534982400844664007575417318165199890361193072033119934983041109968634967820177178977306917897312302494969704983755726574581923209059816824298207279141741333441605785259678174891504470698258748410102140147865709645990745691517358787266438643925464927445455177093485908429592729051220781105344008971438271690290708546788596194021005754262578076953285247995727207366218693855426138830571144435921812774868674650309634446552551695678469139267026460368672787656123625231855933481817632077397876213606700727247743402931670336191917177013905077692856988252584648301588595727994834325166594932136620587634996935518711952651924785977849193715100341188696667770443595546966445599333913255873980281421675217222213657577225370696947111322669598155418713004428072426238497160328858063332357949869706002658906756428348477031320595016480343136920870761326890568642349020425243592168311607656363739440124737429648290743794849204622834062011069684708703885067537421244472527962222643921130591108119800752852279756791202460683614427561804107628101967220615498384423754946040316895865348873683978640810374195644515080338154605007512474838790782568763988016461125388017447733755640082473089924371208902578572970805706017574519807166382349198146676663409144851129519346634189864533206276895016226540199984417852205125620194526008075733978226200756847015293851029607951815833841343205610532476773530215442937426244448005535639013539725244058643173941331059294877637560587023206204572478608420158784687044804273085971357441637574505797890792639424084058855204552895193121159653473579827203915132271146972965457713201984269357001480591513070072691838356759849877532754069602238802631658285623884566139403883028351576389775108062937161370738341228845821934215453630423816094194792763092050178432297741469205126185809310031992248044869368755393921936713303369346885780599248763444799049361628791483184317681988621207065114717732805640218221328927045616288340482582362902251771536840937191618558228646529114493309940571486843798083464436743096855545842587323556279211832379893515101631046558214206972276789197596275003034003125138588459525242965881216450012338675762873658243195545912611259291436026328480700685948895687772505209117937631864074719029935362593092455026032240864797226897950609003731528960907545427440273751899159994179076783430129711286635268495404243953011918018412725874029196023168374730305026406607773973101059151500064079768619697855128578065151540465011371150979249977711834339512734272722041092186010021994285895610377648405548433845550512685180314652943526600500545052609217623425724039691925567988332856343038338486336021738369670859483784238842824631249459077763496903239558089001736346587855172164448797119643683499707444127870393852497457447527182887395919371709962537430897061567320249360828189493237881803402554682340085893855847770707986039199640955532347062607197566706109150184860391609381215059087644494779260888844576564276302498899589301118910446386940136669343054765547332520610926497178997940516387901401898771188788317955367092601244287428529610531584278016409784337778852102864114546287472942242447309076483662336544195375029851296427560752863886726962701488530562512523617245037202971323359068645116853431727833176039140980251144944498111738106526992315151444707723059823906529724248085673072179611768544099245493756504790143544499699804154483434924688981672158146277512817882752171723522031816419835049311637076546422219521655620221102298971541542727760196447584647588196522502473948712023503633292492729511952436442361530532430314520543102349923666049507347073541472418126830713543591341719522001794991514451152740091461066048132929212114715815354655863345686329011494216321082903822421800712989221274349059617797043036784968283674856041067986216808820177460636734510707515154003039014577767498841888871364602664888923123634356755306533516874803299934335352211058005111779133085393247507427862500285156995073356630510522403406554004799377175982140096590928277219097971000723679586478212946770940970941427093447304842096549922222730980344636187553390425854604810794457839666748197121768159776049133836066363453589235777608714766720460560199842501914443742388345450092041096152507348053451663067334458706883753715604156243182175493005321142628547110189080906759257591979953528044034326950962368499861630522473144715316977192160305062110792719366006823936297300273188047408500077685612698494521076100746264340238028665735270326476359233315754012855051443798451861328673977144050026927354731772418805538698332778750318161979612101420621874600303570916189418024866758065853652643265648102564377421096568553802991619034819055378647065779358424315959827497838619016517991664840712498173589429832694570217740039290421738524793916647938689199644899359187220024504116110877546161731520604218650142696593265164257690772836490843096412997687558101123821218591943465449706532470513328720827515532937757421859276816246055662356524165341440015417358193027660185839748902498693179305806627646062826817856129468312926756153156362176522985854777012067688782488464519496680241085735048178466758384525980961265695323424817943800817856311546456212628904408601928386701700226531280878507924046787186618667809770133129085741667622886796222649756668585214940609360470206846844328293911065962114002160284805587667056255699072659208446598496945232725344487902526474032914844947767948734506777906117586589858790344597606334129645251493486031076232317718189696025857599252925954665962142334869521319351452086661657397995053796165001363218109708541417165075279619588028308945940123131428884560101222495012530934705142661775755515702293600118626306838463836701501415729037862952101840662826840984379174916713771278502904194834808269984073689917558506452052937878086081896043400530898329152799974083987358714623808158811043204026528550093568928299548343152414870335124840745405995958124645372186913783878435629579182041156700993571778491505953910141691219031735412935243529727932299655063284093234810242735932237308759520413407042758225826519900707531990748711013029422050574587821396471860407374683408869254751115744299535405933189249968129549436266139537396009308338247429336037114453046000597291026674615882557335831595938174586130973525673843156509378565312252734877403131238184825312051365313399938670295766484635911980523774737451698612364459990929937454742440636939367120859677181006519296919973131791065325397334964126773940419280527919636671805494366642687855673623660899200614517251794100032565988385361800094646039034530768870571790551602331468593473087151243948124016375763269188762996114891264400390357018640162087830510305793240860744747414101431229878746723544824531772591211534166935780906154739333415827283810683146801970863877025756351190250674932994115575843438013237147366466321801008329776053372427907434727786055460777450597942072442294288805282714136933623290084821410866705948332446782339434179798311745427847899631266211256943156092281053239319186614220562388963694681498911870279175605741708797335990664095003741630413730512400087388157128953006142101248260777874161859348677300693831114188704092459077051384244974122599396615332313627298609798626209747554511544720624409670839762124959046307824004037954155011356811136901378453058913333979444400684893482038247205664792276425421740640548594494727201451028129727489385534305445696494651035201054897483221475312977637476602290136064930196021426360769257564681087804790586379788115956063097865684386897565910080349716772318796503046721686358895098428977803396408716749445979038211570961196350671338062544221887671506611953624262787004670800156279371595478846701493920912180650241522786389965822897532274060435352187084275548202366380970981828123389269893618071417752593966009218616588919786126879386381891893417817463829009439328984894168817359537439505016263035134610450015104893871076438985725136180909413583683114179855066873160961056224966521800464442483451074706464731776622316375261213972799368161741663533060412939821967774537949821766746760707929412686653747294174122370902709681698668141630207983912037539246819440445763331359869869462267533349798420034993501132046921201401446877133916625435412339870991685192874203000035484525884552895654502124975810967575930812274487520653368474588913168958976961493722298243152185850355902676366179923153653596433835513765377947183438613332149202767967702509287735527212607845477114880325324634461410495722291928910575426056917662369738731115441184514862869161282925725359551527977180664590968904567013894584833478734099745155083506744135954744703666964548574230378799950631238508520697083110329326927937890023431295865971078621814548652536477102784875021781291733123856345566581269839594908459408510957093097089153658509693485201951263667888969890878701338623940233722333073280172309160435324856149252936733869880385833031431276075285331723635285904848458166619325453448995749663821393566344558888624191095333679566748852640154543001520596375301549360096219386220828228572134936952831593159594966215861659731075769827077210750075152893206132342129453557523774151454249624739184370099284636053514871025429648403299456300419269564489684105010595343589938346483716393692179704628019536065645523615272162513431341945588624307541766225010439087003529189863006849813118280225439468881482159095499646801157687681333416285191164516264685375614031594904221960324790464590489044183632679237329625835739233254760996317271480554631298644413634483181843553378548493502409851104129321957595369149104530227342092233234705553494935943818353655178967493963035372360621360924245094495369490061439250780703393781961821968096549458953615725124964658914294122504401277232605379902069275469747538259433239567726415847627972240788748286789678201542764796690658888379477667843901874742566092276778779172474771563553342536730227821204682250516070272305215277723371025363728723140637726718576974908667193323292821603610024384106450930616414749207255381443841145747786191586128360391796495391768872827485669576888024049704199535796396276025984797580690763969176700533824584161407150996836489998702148525924796402015572492764602806472155178241946402640140645711189735396806781075058282039738049075486623190975717551547546643050551645669506595225926958959197789455079058265429361569635888684975660550409027605436804426209287766712332234471759063285370087045429643272566391056988929120144981651778066005627735270119517979402380177290391856796133120580806373678158589378819818213581942569893964988954331575320074044348864302746812768631765608461323231251352644153568323176335783913590890437990678530265352982628054952554055811920822530573292182959410566696505873922836060673090126310705818754242313778181403924204816658325662227306239117132145514835289631570238507999509193725575575328281075385858806362024760820130558463650096563064514231398984794780465764219422922290402776533281330657274495663877126314996719835557527006883315121935034468455506810561054737756834017882236763472038411878495659247211925462531569802849901443268888605913452003659421471696260831467088376321018808949556765455005085084574632413174945170386456148683692816271934788983308081583818753463651743978497340157152695344539821909072079782843832747949068238295600510376235906067111689432347740900052431872897687062451401599835845632525727411960571884542410601560233597002066742638548865725204540880615903093534653459125148467643788324575620938709086406166307060821628532257727963161525637613973798192325241918107519582927917453378289070071293993296680366340546494213688262606880676690147282516528074938277771858247207549881055290620049887760485303932854290288700974693137679276562788848773390974563097766552559402330184056224811153085571773394231024581286600316395526621760959497687856550630450226325752587307838606057624440641285130539341165132113240966720851462949414832067236128045802705816640656792419650713857322697548247930159411167339477662050508025021919583053087330433122061462766883658779909142153376956933441141345366449610631015642259209553891882137516120436719851556807708567418316522039151707455887175430287770785651935710446053192796942834872097298534829419228818830709840115387435448808559250527835436680436244630530730118619492426380164549491438922579800912397055481620526737756885999407112400407334313250274709213871103206182603133025247348218257699773810345174481663071208654017756293942989661097094837101331192009184215249680273611758408385424350654280763146094160757433685943401752583233333515183274565300778319814615320081245912092509072034462832403772607327540359042438700488274673017777042617364086219410168051578842881227634284705832703661261660412424562084756965353052531431000423707116663302293247376971425120444656329770285064487389538828561829896761330960865354220008629734013910059900297874067914750005925471888463587566953950990651149551088779325778117817501219390847659214099024625969072256305479246933308952683497930636509601324008087747365513204906976034720105300782329743080631167322777251821002319081588177493153901875708834921556838281028344398536745952232502767119398486668809222941736177857399791479034204373415742338739009262096558803986407801034251130338474944928595426325330450775709289612587505716403656362466591164013226957937492308987056434284071240565457491010958267966022188633519420258452065384267903606676366291067587266793366097338844168883302364883722357317510615959193079977191823763249996424843789392436934995289632145940034965665943865592877179081935784031813382460222140051176051802110108111496119776738042914380375234409839423956210715562972082458690889215415341185329540181040915790885711090378116636204777104398609820410778646482366763709334193745446177586473630373642078122302953380072230807356641915751077503189695747514097316702966204815824099946927549994141009454753155229901050389081007758860395682090757976104564677539778648181096195031536235836948341210120483296571522036809498424519907786653732384144161646915911783976702278149859203452039688663435567654848226316816974917784590811076731158285373812876282697680815513628504903346352397621767265492622827363125314782590676917019980273834114636090065498254646960644213176475498957804865144240225379210723909171678277681479829279745245734482430329201712419187276702109498615020952138338684762877787151881436946969192887982008421768739421075318494816803333491517658826281530238456424084656308416190913509499665444672086446985103174252276811490955770351400766147228302095127767033819759861278639057879862617670364646995112616576629878069355350071177261061252301318149538910781868925092087517765056163318239891763339063515688805200740400558740874586643444241234343870177507543453100551706979833782850758905255851509231487825213440290655303700411462046305367052000932497693147482452320138197106666190628609264724756568249471624045774354622396345949830634854190186086505163366851205853991904812296678999030451746874858562759903883495888408609996401968769434686941015561258691931540211324742682111096927029714652782829298467367286601447851655092862550134662831149524451194565561419652813089017267889262691874181490872807743996804668406889975554081392613363417274729109479295510741756285431927005547753092970014612217066862606629911624291200680459897694344413676663853905565603352129890784934709601146093537867023314185806783385974073640259071051012793412906506169662806971009884676801690556085162173114041814991833354845415637146980718863190224664206160324750910633414848477339876717982943650650666760282444148980759434858023505858999497633680276523087910989243615553120068211563051676759340497791262208332188590195846519237610604097245504091651004577449071229123361741674914970468987719712412912938103212388464838968440667251530489387954749882510927659421767607526390207285032428478477331792627431761904842295898235629013971808194694607156763841350410486987862750618343272021516297567587274490201235608091478915255261285272560411352279489076200595799430538081864776342305972187852789509835447140756254076972975003058399339796294585716817777515139615100410878822563016272053536038385939722122284738959886566304187246011960097162237320378118787766245563801753094931379780504456070428280568822755298562100604576191809723657779624330961657751951927158711456798301122298324755043950123393599514897544565033428317486427310082251744065077241972799764426247353043449968763401549367474897059858340820646781754862285940702533195904688381049557918107486511202726198566072752282600947059218810341087195920970961433998613941023939982272688360605162280246885127959716700977017282894828613788627903384622533853755247288230836192464989977180204590682593813871745502311956223125618237761643624475084293793947525266466691513396245156987396440909425613959546854982341438368094696426535315379563593264801198435767305219772864726366126515019717590158427053567883398924973910845637618634332607844377447219828103081137970699337022095795763723165989521271419410284099756047965578367833404315950360535012292429836611955993588851471933160955622345811429165253313343276077245860057718234921357738284344164593321289819172080904393372797397932866687054141607738760886183608222931603630617914004111033745388608837936009843352658958939798750588375973808656535029500221478564380751026496123222685106806142287182714472170293308202111287193513923679364300831418267166916505368725296684364937474297009621367601969222337797343061320296442347722568189284501509082253825009081751692801769762602626519258066098949710403335114779208991612873185393021812487581726304170381980317430967870749884362229821214597358923356929387496122953203006673391766858491351666058783781571688068781564540938552648928861199196932660643595817154773894668200250943729861052410357357444345963460697773131690592994127119744858857756948844225651023643037912616194343132124450281282628438496083167309646846597574244781680740110523328022271307462963538059299207823188684538516699636410556140623148146574223609782827650312039753999632728029122248716752907348748892593811577875458078764287087450227302152435060134595770710313593202381914790864706296586261860298204818920391927975289172469745981703484572765818625369330782864047919546678323532106681594942983249501906326986198631249497067014232115607241517392100588431976754081900810092910010218004770015074569169349572662753629237300147705776722774844803009879504851085083841927334963480978882906240177526433948839666156303492703244676135970941995796245096173247246353592295082304485120707310514992372314622537854464740473510857832357966268924181874744953005382487702600272128711838072577307410600368315622918389335251072533018815106323970063907849899255380795908828947420203905041382784703907465239242004747572691708980219245671338725728448111402457196653074443552748854468930803466806166368092341922432557874425471199222965934113162870509678060541470793437000275849023675623201540127549462000421519928655298178234022218663179827111656694240890325496926346471264494667521934700021621108332018902006631539844580194933152689080283859615377703334433998294979268701262814337297308351511514648612851522265233478781822657182713645084794062553404962151199474723187144631017426975818063947164729045809416299712339825294115081999693116008627037371519595252563785466319169041116877711673021329972557826004131061002714234905035905028449795541778832918443564501136208767731024246164958735534293560153134555484959422012293769304462730205736788523535091922863326523980651423906414780053500639583049386579196114030081045522514213415011587311901745720719708829904845676316642578080386141850514651292904191366632677978174140050298778369074916192915742848373385506394222415725706598552861215445778779689175171589770043752428940016740293264640348718177878910838420252924333910015188973329839193485444385716173158367584910631883740512504953442719864323882654643824545578023312234596489020371837121396367843604021054241276015376581012496151094305081486013937864895395075398455990180736036905188134361260507271621180137675867049791452144642295605037170740701412095176103534324632563556696017694525273237406429257428850347634885915132706472457448138728029919474033330994887031934177283318030305820176246464351923984646014231606133703514821150355160787494188132703795030276260669214224343201293184922042213854637959039163647154016937293391356075063871989214813983050274632829831574666911289765910436399919833499714791335703817858225701619542771559635022697230422775884551161320478689860485880800404527829326352039178874661653642898503990777092163115889999095850809037878847196971287753810428101502618707066151270596873497109211363346134970679658857765776687894898132396794660449546126596180594975137685255982254087108987093099640472644500362553109941352186745539920414279529037112431394178080241777916878465886504841478486497556662627786141085385160368555917069914221225603074323714422442852052124988576316332682309992962968165734481277500038370314256765278675116968829174358159105165298679137854484552775841052295133416181397319697957025914921040822580382077153636585777500707843253312834504044326897290081732478935227726006227058485416433736830686015182050006140153006515323473177711184016999151323897847800104295309384493120728157825738656415839779236238211733525684734272254824593442157618581794460923044300108184793327806018103446821506593627340231391638851332828929070194440544354949454057044078895805980649506098851623323404510988016771006697810314934875437914080545574322315244314464980017519294164481270314147499774131684865706314936617473795366256058626430005242442799423849168065775699866811118567647406668750690569975378226357152004311511891799212100540808087768677903351912176329154738596801260006393351766050194406044804052545959916169264566805730771145154944920626426698473508772958892387819451158136555238572936002378036828372994983673573451772779535212124467083518180523983233037785565653748361572726654392030716882948807860748701514028391104189215393251602173530501119645077227597771200675279089550625305020033581154648714851320859033057532269661411941596890725797720445405423785747009068289620428056845116394172476515100984352382590475336416742099788393298348054461740664442158276877403984982845406845036545077971400666479492120793382730693636943819495141287323460827667513659936301494359309213328473708084660225739187127765346846878759834826754929938866093391044357272195070592821018466980519262461078584684016956250480737053054514614884776128492674959671402848678775239466008155586881131119656248667558535286474538999451523715969901677379276560518232525449982885753674918417170632248685921231464148866215148608791651509751472556508976803755782458640037570487800071140077405824083538519142583935075528495971156771024570504891367272341331640759560642494971069915552263366825913184006758529687639828755126085795941010789334346341310986188881690571215755532807721585640580093105068038468313715581154141438272279721021226613931908406307291167300630780400454800807022521558533755009137599094450001169252194793194437459966980569374155738650433372768975808762258271677927617872348452419256937465656276311795235941190075290051188535046997428853301166531960968556357241439475873127958042448281719218907600829529880293160218310941455698247235804504841570075336052416276289380885180914282478882736763879186413558383705622369811342298995467110724896488169741093834968431189119646097845763020249617034463844057429084750014438614066102842147207187227019351428152591254082464872319543170938577546237382458578787828696770412913417380113684061402349363619091624340905813318146445135668655646003259501473600464456294508822862286349047544135934209998857371504897817250833354448244137505706675557970940033770784608486648052713597138407419095119818774090868127677586975887157654779061083258054459508120379866830007243905727260124310478275981434556094958457439024659374445550630481582391429951409871381910068474286273879729343356558942870119815884596854189301299291608458401819521536734535520693678538633238316304781254121167622392549326969661719644376631001358562705745292852390208115415989400603049881218655278940614764961506752451772922562813861638749498983610136213193213420894205038584216918059121858993752958220300494297370162313031781451311423621528014645556882578152102154308405350675317193997151463269952475445596105350654175058561715307986271968678672526228921564575920145009007923338035865397497952622875076241885662136487848105298084177882807790164925308354294934691469094261184490545291102236966074157731149412657322183653112461162417135847969228780214072105654061891058686628598360782589924771749067196076111005444174783405715326525705976022390360690707960714123789159806934658863874580603470954158145119315657260415912251673143386326734833111733371846042205935101655045889784764387688437606873587866410468499050025273363939731406587973705345999222470322865130967738464040797168940327011793622320360764315859735867468156414323496189826701800581338744428865052818391327635289210585220550690872475824952049786383014118673335398027239836772962822298231723879671076057949589730870190246049953677866147871236994726233580343284771520646912826606286012419911279610452582955504635059330867921058785718912920968864052980165304389180463876628911058622681582614692585424328370038830266593752322011675145443916545961376395174465844825581396447449501327914979623540072144603461709865414411579010191022022637699283290546267618772613935001113857071668065544825077403688427572310078895125105120491335682739269818932024197195495719988666392400123073949932432660242171544360886328361418017490682979139564623762110669714990917025068971019349053834249340670888773102543500734370283549890857161880580252457301894007823583139959817147170169971509788665798903419813935840947600708375910803302347531910187910428416380848816552235279986689574542709090081340747840656848457606752174848201779670028283846964554159776451710879480915999712602205216505056709910280267567446223337238865182221903238971524494968954804028812590174778892223044360458262893691591649927570123517522378582704160904605793454981231159918720735264024578337973293762132826069291773522774650799607463808003758153660726447277229416525749899366762028846879944717603999550730538932759924212399463549037140208256968945827742982327807957927960463919064170823972223981868734695824291301272450636145769007246235765940197083345144233869018944402465504983410332259866199769829408468699218087569612799344181299206784377638849938291711883813581433038047797467977829632837822741144579125059699227558971352753805671897555963570058076865437392529624458874513095445886227863246984838101238531549494406138063254757209026193789746209462164694302752956366698283963525340347926641818900679929014679373253453936178551239995021332238170466538203243557324428130882911797000018076361362330783473990742815290266442716171025498954122472376869157288065300425100521141146962278641316469622034789065681347005951124021515128162770688624755532664356705599667596559366869140989761190983866217666224880549705244928686980962861636954532806244275104484013573281497599186575202244472622205638431528202251456800458956663541149999267709576590440460258620711660905488062132925581553459918516439753901532568168509377263789266804467362455339749222865446444651354082490902959601439123867563594078042930800836084829935459716129194385503817223755438441006205743108919300046296399230579821587273942180062808108263365911776065925172444459811869300277224850826831200514173999491555851467095744287818067770367997808453622354043911252231696003283127452923635340899371749876017791932239588782957555353489636958944745068962760674053517517788302003193753484955910435627911437026964392957150601185156422802856135020910444808303168627430693732190674221364512955797949339830788346487376030741420972678707704285532348592645224314706396908015891430886479746903242973908951946655334368745238239925410711452394044751322586673525843460174115688552873010800238238856633721587729998762973896373088058441205775347339539021213997345641165427997626689650699131540617180586894498509595360279069057526155384005827406369670089007235250882695055945590939090462192647919102202246946237741844207440157738781314372852549942013073406606346553095693775897843131932370048087451801202513634955943947956017582031224067618789737142798413751321782489878295924925917094004166908209460898956050402667098938707621834971228363731480323560468413305357865865863399640168357487510136791577711683836309180697458420647796342474121830220656363323073788077803965025978291084011555830994085554420696745567788658611718488027123300978878327559492876318070453754186615910103369401851870161014294688966952474999371216767054720939062945630954273542365762969175021022746863659966729579785909844473835593568968922467229673871126478420405403564414453184217828278775040450403680425002412160654287003616287634650894195919578783448075405404254463194912869732751555250052149619806079022330014195577460312520761040986976203906554562309595896212776055316474259203094938224640206510345185699501487174262094992891662062499219385222885021047319580714581429199331379597959486425892784961690358130558237856637449739789350174455383883453477438396508131061079399153892130854789132418709217243783313824244452968632055355642641063679827233927833179080116349547340520819390646495116113248676720322802298445443331043783831595930011518694132366744569171602548471921365604857811992979758957783658205878330518557620395844056978434067621765540491310828537408281493258429575877295649584507707573082290358070656110608554360760780123142352131844362300613064072167469607971945227109891505078424465606331202494273796430332476777562453407870294594929449053034196272235276073754794061639676915390468032606445704770506931146719322988793110609357470356433257820805659989743594042415828160047569410236176167965025659756058062633269504045086537871096266170017943803838330251171407561129727696697217264077097648385530551391779785541002727822992354545218464978238721576393509334418716006447955686513344062622968055219205151271155497446934125873180188691533737538897000972776060114085913278405262053419616639089123313108142706338363599530922757528865139161778250267086912799231952866475001472013669362873613136421212359560861342015510427393317229212854975973386578748002545878522046951960516177731440111671158008862352795289348149832757906318770426771129655327353566621123759354319631408079771586014522798549399435512813197824098665079256186195466306417072240967878474524258287549137891904452245432391399372819664897315756069060597079023981655406452626812163765887985599817886380034868211121372031179468627230607486895525619554507606587663921021243008807547744487296161202568814854309160197776638103254176960863125094096633458931366029943988892940303809785346624993398820924456758457588501947385204422259969793830387375553849074157977938263747870335508428993811472863754030987921296924189671242988921990390540312722447275382217290761482485685941933074630175242943784052689178386020738957689778026144955494161210043955358056928844194751089721920888544596778409784685282477014337673590901518105195404556848737737427417818533005382371008351093842305376746095739597384396227132518611147408328826176652681834306521991097168683094955768496375169203040939623011354239833386817367838689787284987711454116081596873633425197734402833508922837703968528486674956500849295731430838348307281630849155076676104714976789844055039625406017003941254655377565048857313406550154278464444855840573758065322715891440614591898347210453845002884855363818059823400142218351587461210576356635299932687443982925245566779828856761756766912943478658272091435659206213369197898693797012033375280114438741518329248138708144035232001427832335029398107217020096992410029071469983290083948019179007399844436570313246797283314182160434151020406327818257713931244416997707445508227546746229314013623031922927149549251358771595363683116280766811945703722383997850594242849077220657469516345242781461943251331449752794192415520922677042398326119107195374998089883238013679167222157347201042062340975710339805565951708409212729338846311394265515428510129481595201951722732773703894210245678924298458453235767474472005519966211461304395957305268163310533517059063746259843283685636813537449392076961144578974578075007589167204033311433371417163861614087767151823332454803447510560529575031865441913871341973586044103764324404655749648044238151454305338277720856784803547173307678318865817826249982692967228677751168677652630111582058259869951939542476635602247761940256377218294364607255733286183887573229141323594372441350293651142070200988082131087281500130687434115360357333564885682485957401905363195135120196798441372211689703474464689065496209318008022255536034248847368880615536441072031829826383603742190104521457294998120453648714384330506678292430710854238034236080100141834443847678383663249993860227131310927450616144786103764364915856255531356338814199900232296156225466237678766304773398264829655840471720434482695306084102507269075395511721146077090023503851668552868216099901775276476555339329929950688885873838515290444447753548620119325272508582991025848324953352404359090065068806026204562642307517769514510471283204134747220417326095663471091515831978721581408167908254306964997793937978972183698957188841668883952124119953456015698729683343812541434113892183587432974089312565182994868287689368099077542712426542020254950918835436146136227615789751227414444507761425943827781510469308604581796586956399115674567034944549357196772492024661125919506863971142508152295452854224631219979570051778271485632141524521973273177946809508562697664682547564408842275771353449073277731595249767297259014768777214701027001515968469701360290318235088754882488201505405664581320009011439596672992860052614891345165603441508758675937301388019083372845746828333873168287579920276239209606657344779188921065093513708378008586849121730493099228681829236642412916589002685592190708344969720365412732480003693602635826016479757861981670044874026225602142961415695531329481414622862636000523476627481452740917587344710048786999295465685483316365391692373947917850534685099700119028632434989728838808273640242009217153506825082400606806896945249530377883453475454257744735309080547336596905207595740352029470946369629261592314895347474936434114076921313380653010323171778799119511511452422217342966621505029385601051835692235306055297833745247135140467336872894234839496486621100572132603961105443433630409970021924501163276829088545606263301209819608308635240817285588161411699118520423184680474739205458944733753460375721715064207290555792215567628656359622284515915393119514751284554545729283463752615084827029041076412564472653810176275326756917736983422692334203931599785655040856193956116495770706135643458001578938729580378677540591730691650899919939946390532411417575951326039159947562348765532583409895336273037362534581561297652735273820386509822874075980322329600328598015145405981673433246214892662081965323127708504223316668037718336470841032421475023232483313728123603199181349207008915554049389318129413721772714417564815987110213386260387669881864398444773974326168944614669161122933508953597351281972137100286969311469749145113031878015718455841187698925045139583009321501051733215127510520206141598447736798545085402048318398340918904157102513075194247508331844142067016454396544453386994054610296344584085818730768373817711329316329920582113304427390645748455893548534571568938691678322733109621306460205436939955150376177019742707462000774312125568483446545745862038300650687215015359730843645296641795888247462763860848876684937515482652850714529291753448650066629826904197173798967565791474106501994845417963076241025761830112197604151449779315258399840546537453173354623906518423556379519654509624125148437084875583557638483617962539559083319674549319229515617627584327303980863825239889747334580451843760373215843001359241806356636294946831098311131619089313398062139907215000088573196331127373764035830909959828012713164383776196205882270793638588343062340159636065577153364176348001679842849448774916594999449288967869193876392075216485115247153340870520819733173480547445109055752361143014532199341764472814943011479609353333181940112171848232455284312371394733224691051626479869732477188804749224639932813331687780240550902747875852950905280662681175990500003395059050816665139450358265779126975574338126150950528408588571937581928749352291985595768687213972576856497766544622324099360561207847571031437093453220563411615414747892367979396818754011026187400466274043178762408245953896488395139783760933500604892428680955635387140473043379807077886771173497675970580154878078615604675440501378277775912435663816811810836564021399223061489337568141296219563481564829038139664608867827641240528778015690592383360950560764736538933863461866506319766786598559262334240041856995777320611687354703413328782401238557115313503743003718675707945079429542044663962129608861378289869579293540919827608258257454332641223028168855816972389276107982813474564687045929584481769823631996323705090667627717364721523874078226908816351351533879509328302284194858661844489270492934268803614082048876638313475235783768545435078427717490595322452875277285233648472679978049809393574062433982483977311981931653709301719334544966959303090420328155217663090616593184783978025260804218901658882908424432981719093284762818362508374737728838923150435900775369222025965327737355093254280455957634708698038788118704426362456234437488418388162027179669500697055623799086983243447447510717431196727467345903699418209903285925971386191649151876753183023403928931651861053349438099120357035148835506778087163575314472854689478294564137984562035223712327468993711346989879917166265973185247832715710570073732826476266755625836889782021939687438551914203973108478116481198181759789011812908520932932895896554199719742485310490760670116446260587160193770100383194691507898129951812730064398166842929280967826355809070417301364302697448915504886935041716141107265336539749066701489067765399271383901481371437919572828401198128951429402529379874097438023612586771849025996301274070326251960033395961414225860701578282143881146418850693399073798669746267341228709183930013048741470168993529163487583059118268798738385615442183520041776683625406627414412152437692647708354981762402152421437398706741986898410228329001006667357623186587325808454609992857083851350547759527786045411763582431993499823187515536597598899030821004558622450034459112739718376146106507807153409481971862002585603490767326160679053147584332908654313011272722886835106308668775445686626258860132503099029261425630681905861144296819796673886794350258366027878419279303578022354108621872073775532458698796228226358739449314565552562943754366473560024591654337949415576605322087934582567059747696663939702433419851431596560116503683648950069982241960755753875863683703177318802637511931460697601840496513617523986559960563088168175074248835909457127781588483301378237073496274836746451463966363712316876418280162014392867313673688097545163130293275985394188055415516488966417251522968586372988122529967892729191262869757236380260527741513354685370012236676269336449484854690257002313851961719221645430887095435858198206820885635709859149289143350317166513381051904454610494797019597031994512341469132516944787274625060103608265813771181269142560216558154012355732012397669298053681637989366287499496161946977407732263034809435630754479495042505220177324562143890276477632410387784917207081080086550289095231817093951067893841219379115362285542785935618785347124012248737410404915715058669157934073028797141085317809092451365713350083228137956657349000069929225787358159336492156521942114807733534270663875620872206056521009316446907842143913501384185812934896624066474842778468183722124859320547075291215312993362047672422174292681745727633387102004684248500009134567686285677609935141677959111039510825359913519649724964197881920852407847303461826386979645979655677190367543015745971175709073142472012518546520474690753668037820174288958371100319795721383137691503937749362898308012641899709819919176728993011008074435642185863783164885544216020579187879987582950514229440161175419535263276138906530778127552982749275862745041580894078758269100632874651980107398205026419992873424598715798735957109714300483432417644797442163910888544450343342237953609562313645817406541700804059460506982038213119526860956769798811476739785447213815042883435469705178235319596945137018971811244592661183773691333919238893299136019100705960341663739567142022224860825653282833682330978551452965401844190030754675770711899347805175290759650907298834696809008758434770447681373301789892089875409373889223604158467793552989498638625960008770817064192782743478412809156113750553102825003238107424307906828454821527202356198093878236088153843391986561232742014248269780665152811241485294946461556881273447682289432114371119912017296590333687841387263234722624039637063105417310620447839750718559643770247263708993202960508676881530131827730147584978105742335683792505180223256070450539482501411836088428721067319651858273045981486825287323828798849335203789273176105045440588083234133922088516658687147482664698328237056361455787124850767197243860597144016928759907353751384906605311692023819235089654149220660758810440860796864253354252621442478112921225360005441294356798936834001181044645115913007969406245174434740869243825959730783263030561768413001790800795588117967759150604938306834918453135489599628663749407278935246757206186862889531827412493462366609330802041984688030647153193854393975629205521926552488869521558423109869314310110168792307381228419677024317247487251866805154861318122828821206904797762104981472749596069996884070339273479901046389997017283364007906298783075671238046136735704471475408744921181446139404614371063973819687460448520550422680201596052208551721773223229450524392972823938797079586427362432800656881701016116298250491173153761107682496907097037152771850470399592562474901839682322363721338431045404759397146313316139295654062062272808153307840336289432745035243026422612906708394851620704743320718354748854633453046975206362926541281383759985455489553457533471109343019606727264041178360275487434762245880937930566051320855336959139142846942515259679724836586425490069712846715153380618684339969818806710855334391614940472501396590893352798938943618664473942762738914286937338366033943031574026087061888494918748122843517601079857007279856232121289856971852406134665970610911204177506364543274366064174557952801317083300654397087587402805939984723252515591047106398635936600446506452860111512492956869534250340512353681787585137328797838291662069021054922752877336686408431244926450572897241512004079768895602101489324580762219543695804863771352662941654183619946537455519036255482818899261344667250354224349483759550691901566342275126053551087219059483213335366446597175439960353853774502152271110156805618856085426382396699095209146496995724360171337498074171207295509621894232808632142671551842982645458510919980946709185077174406032223527943870125385339569786766871003634471642760509216787641054046633366375546008825413936012978594232998775548737491650455047942671201244017041599890943271918268900075949852404277721310482724390941466071458899943703806822546665210327880993004629379540901794891324334563666110871503088330814694541859634144547479178826031612735681873616908691066079190859209283696691465629405164682837504720886226859626633215275944377671082849077936088817484859382625138624724988868149555951148222334570311683497547726488324412948904454739235447817385664527198773825595751243631834382179244775977146519452163531002339415929469468952768934530087811006177411358415062711789896191027155884312773053438980223481855129853389616406367080682986734291760009554018545591712913667480104549546207243666554994339443215351443509694016550090341342818156164178246066548129588901007630090333591549743338653061307185017221353475708544538743555094381395582128772488059263592743555948043847429613227350479312956065701604140468786000894354302983573866645208545397868245658379225011677906488383341675692769520411423031726836031988193685721758009932521805784402937942593704648090257160070961368076036383723749822315525145279179872356412808925160105903453645146169976941531487970093959724253840072567022989997282831162533320005472255588870373266635754968154217502500960102988558048838166600493211234405054603173430777109342996514408641241935988667610020085365358639904260511577565806648706035357551086445712287013133629208158517142004046162252354015049511795055509776844973012706524586508882865910222176109015192160504928029258089999594250365631895074631719434891729629437539669908541932506631808744830755036482905050477450660076926955988793290135718882046421131541625294978551743289862350402701599181561795989213601310164937614517172218103072607373600666037752893148198555759345977911787661625506818730217543639069963046432968836200729436648408980222345815169502207686297516072291469418395257025967097167759854917069225884941210334196151046162137243548385348754826997026964299471874165401887058423271126973974665864402665085828289967997161279562553020624672908248737178438988063405724656014763445463387619572700799447746242828086681209867628636281336885278462465464691547061237896084870808061707312016004311100942863292967346906005774262009516698705904018773636772966496623397623911819533560438763828251507464684099051220465362001779141490273230360791286187797024396337411362603462451055895357996629550951220095611390745627797751084433564818075431166837509907156521652797560987992099731390882531507322380612692890571763180678005028925236742166908886534128813236801869982516098016358509037171657113886468114801375095095945519487407099561380968820948782773322632339482061163650550353658865741144185840912693944549082899023380656047225459915441025654794075025402683629576219063441858113757387653780230779064376043022904243814369448869936723115369704275532703178845395657492237166558057147088419448943689042876429838636587124850489292843586293820919609098811769262927572849532376652782121797793577489980992271594094856608635079472984604950455459795691096915612184106001655461183031579347814401707209438139295057025197032763834521350447350215185207017909765676789112326135993466800598254523678391235567902972162279667079897107379141502933354630402232111053233504989088804122790381927896580750508765223261012351000034466730146709863785685312387867172513099743778420143432215245046511645231897756562458438448666511062215606499819369585383222779476365926426771068719999376080835534409869599605082870901426364608140885242603419434476815953813616857956741988604637650038006706731576359893599183506073836453760957882877530072410369066208946277811240270112195651308815141807204891598670495130265868764851116388424749209479322344730890283106585464162502145656701413265505136046800095648754878565472827757706694703364601226528507701377434049921940874563979698526491117536501050775304481882584838489196567533578751709034525676561805746824416225044721523276726492598480188330314479013224529108333297786796557394440078390783266442789891797014413349235336959235563274159233169495202865159363699316842729388396869629794407748380592763706455143147766938958036743036669184225746154809569341282387970762779262729476398519452306391603899375983283650773953507136385851452742076367980909105044204545781722654286312379793117855239968720655462012733228198332741395876631222954755687228966654545839485443318556128359810212036777171411628484061122318982130029163190902705839539659876844022728629203897366206954429472689330225193746651242895751317102189480261841945110175952658046333366644871088258028617651477317806094798076760442214544340214731934341681475652253021061358652022049261390923597569870160310688905692514287596623978997067806266835400136058616962730437688321303831442883985060460164724908844803415444856621051297617512128598346857115613978214106189250400856627576958007254412221547549373818099021670308061693999994240400270637298002843162232426311317359000977214424471308980646595264590562029025819963780723050302363509172129616641702858232485211207759960334754466599021640506746960081967806534272250358294269302180183188659749283249532872203459333089631943958651606178149777024456444037133010098647381962443294211446478506752159310083977374460667849429280131225419337536884224522564408246897130102607514574564208037707118263876690580285214513544757290079778162297508402329263226840677501188196929546701520796569241794921227893527920333374124874436931020634376886924846930005773151133076564091674300284086270651121430064911655844688014192784645069442196869366919444325136091419976550023033680360717041711852520241568620278759029984530264956796738430663718338000665148331139580681012665486086629808062721365240576882955183277387804811738024084256365443746344252394221400092135720834126980088278647628667013159344643641615685765064285696368512349287381526457504399790238214002498941523603650562705590180232632471873170554040462690240051191407481547702414036656950233986681470409913511665289412278728908110402168706913238259509492161883775565204360627228509181450173858812115500603625843384399913193783021282693094594642408381846486703293794338679199325213908774248606605271140399116279024619923866036799165475783995268550450307023396762709119089371799878142826512937704032820179308195049290325127731356632440958893345575666421451943128247342580129021674922191736821697988557473805654777942519357390561487109836214837859262714116644659098300027648707459011930998935760012870130436563181664675298061731626247347431461159681203850852150600311727307714034630651000759515451941402185518790923826417185674994524701140519278677447296512645019227526581443582723858634894172534323920610078046803566236095605125124610151157617038460284964444644893493304294948718054165378394198335978211579780764797450644198087934906060400416097908294324160644978447519962691394201985783605743256224082850235218008449829162967786675368269434579196749885598035785375371659221616843097165501346054019008868680862131785846213935267499689290675532818633578914450758490323225303730079788111816453890095578953548945293578257326405479250985635571740335885522957069779795290867892707162591271377906973281914375014999543161055851877502827335857814149387025103991210604620845988470276316884769047492951516470272116821636877933169935751385864238996777627780305836065129507252842084859306624990825318055492752416671791318218474179892469219510824568191297657846056926356871599918293249686714716759903500882021260632565077744497958834253929198559097259840083983615792908217131059406171207595227607044733751616973146280104713060770289673052023969026806602207923311549007051928589802213656775661653763721266356249378956665200648779132461044135321699999712991368477125630353957316026104516141101581291383579694075781432675043475524780096295566232444352642463923979251377529733873232676755473762824350339394510270028431322894229255954411345123510347926075589987668341376281919760038707335111871962712419266843340377208321388385076553069670598805418933976344697974395775515913795726423386637244150121425796333830363350429542300582323206612830355117868792293610206378517120776479928665510458248966461045210448031396219721460425327546550099599837066776726621530283967095959104728060898905313378699660553098718652570178791069461959347588177713897744378510498673197924594688265961787601082569895307333625332163364107940544998465420516295745788380344417359713716359513432699808097075419038326953909818836787499600559676901478873835565936302082729628288942561428982341069539179247813546102201996174437377034005495167793300732956462983392942285720930560021502819577713556597553044875753514440574206361117565733921478653854528729618119679216735429058519165540933877796479322176215654030894034536732562743656836868056056326096855221886534031739280695278622401351590366497533332057276852434531382421279207039540490412077550212062671266981102534869611010596466975861092518159160016697329339552819718424239929047270096606704309950423971421163343976494172979408245517898252147056680738738116406336465656238698817146024781169501514690817416109660487545601539522909027520832962321634365592133738564113207882871986581026371448997667804270741837146171506575750014991622662763790944319162659004417407661220736914071067654635547325157324469370469705828982967871971146791180548392770662323583924594925060666350243705721889364597255691284255412317088748677405254761383851173663742678043116562551254048159759114807340686161544890592581872576432237516521416120657151234492744268233002949489020381964501922462530867660177210681552711142180289740462994807933034542678175092476882019738250180038540018671006908451179792908169600929061734812127077491477085707221750256754033288850611105715015910270889773761679769236470410742497738303437635277110178217712252471328302161913741136167894064607931959223680271888640537002936398269281515990657809008390385505408262011041005924872782153881802230122466870195065118252827020976839686817770961128034652783010196237635883443858379182202588345086752018775521689613246929814188014825686413606791300151588130774716393485116829343989509555640383956528840149915738592414980321927127167958822618433177835808104036208479215462722358180897424249680348611663166581080349302706995275984720816721743302699394598606499169618173359115271181643150994975454079547540100261298416170727268678455028282251108661405147870511909355568818714480625999177074879924516462187261146564727001018375925331523833084250474588020702799362661767862885141807645024372470537237564655316903831142120537790623086497868822499202586840568143795370669276232692493850076781462640429348991418637753169879345683756793206904683984736537685193137818849682563317928060430029976892586326134997974319904262515591812982369662460206483270181328326883219948780285489835127943317153173239035842533010690905396912472014752058847744551448265229161103720038426823524467102173349409909842951003553013782183395158691874018792268641561845961877077391087658969500359246910431290482817292957982061136620999095128518716218851804983298289223700205165727518183661802140847223660579851472735542700841688363452302726793506999878562528892192635989859180855181460419546036909453637426867081644789311064018519300847829892940777582245976479453613091183281964369809585421179006864634242593902475997281269745892221352541592867131699246611452928140353969017634928585699145158027632909358065124729224677655435874755625928421977704859295037665771065719112202670376973254505955636409335501431838002113574652821671226972576917060082594399931894471818112060321727369221184639036967539896656055677688498720400932550443819358128778261224490038820729550689277389511824143271256584473882992205859997576166019810210982310520582227259591569642432474547354953281947391691817905774668198596237024042926749805422804752566141392636910736009298466598448384250920786370296270386662078831515292597451895027879815430156207284059662291430790507169862213832536634438631280401865131177316790252970079168199525033904783529384261271817175305621891725970570499561534972801949177338361387545297817773039616696818823024522029572975698669666447489157419816416498471220616716886020593682342118515424783876987318736061240123123661071068319615606243859889417217495295293462719799982993007748964990930947238057724159884418685440142100405761416650458756182376520966889267381167112569230390557060056347644117490827708290891572934371948450916745177510275777369499909972256442983761780455927622941262188929851352693634385213696289242447977873383369773400809291075129699227661060872037073899596949303493969225172096890799387871116891921380625711152385963420883423022042474282657350261402811631205433466387797526509470122385892402928900315721401238866700995733224927744657904582596502356730220878237493851927599398425554175183033616760971357678197015785005092044558222424353979006634456242031976636215773719572102991664142334077933501487504796754598868417332737395642560958188846535747463733059405889422471833451726359831472518467311930364706419200287134710413746331911018443213744722462966971389273343848248898989082696617547609533773833018151205530073493028389989550815675643609292162452554796223388211646957106651017944926434450890062289325979063042121554755996031574528924571815863116014845273367833943127835186669379686887208614809070787224520913349748298280102892663769652018313536670114333452567406731910259678082355693952999042662756216809667850353485060169550991386142202448595068317288219084323099588834665018069507962077548772910713042539818314381938274359531244436051126055662932157827469714351418834321585619581570333862732425384243285634826510778920223008854201597994931036711115525676368495939901947845961054693883203899682891140472583066097996453445608885938428272178885064357668078339309590872083486048871479939083771834887432564701607190608923176467014199341246770467791238027148120936520182870895430341971640190200083569507129665986212834942827927047065387399555809540604544140700171724964545583865117581579680258688763681760846696855197501024701669164990941681330425509784385727823928466533161777442643652404073868805531229185068447520613872295359847202169105980454090872633598819473445024968148944628337510912599394938403400516110822046628894131838671455005822093875392178664976203185704833352639193719532189822623069746918141814041203696878146351253112737052989973902712050329677502116358939305282791684016989593957644754553497313782252748232756766719408877970151622770265100802140720851758374317705773967626601927374729667050214634828386960223526094071645723629499136791360987402180123890043880650582039737190146133963351041406760208238270534788266057310363381615440427821747742476561416831831984532566760381865628190723883906597157361721888334218244549007793754396436979863798021672160663343726312751282383136759522325483826908946661919482735491349428873555274349786545406354343347762930452845654013882894064196583100012476063938311749519775502423881336702274269354822812935694549185561831660577392183834730972928689286763890095074087924782486425295236657083322341329260092381042102164272271217299054165862636448180529362738072663197278465960947730664988378872618850050927980760808268288709786920009502080334887573556486792674493025981375824906771756862174548171154013867108353919019187180178844156428945665149653308007819583548758000451190997035494820596174888241138558976644368213610832313804786383261612002999257590784317778370502477647211980563932836497888542950268707707405001210587430137974460362589013524702693882673450561036086014658186148583496589819689357685267028076977554914587350841767701305707088801460044556326532582569202448457893798544119442319713209431332420404902247144578704552650059151057543195217834001349138905587087067579464831142861252804069186516542504959449175535413818712619929657169505335061237298865675861449873634518039040851161692016035097010578453471027318305592708869823943170571151695332125845660853681580726344129311456481994164694882285768944682551876030649124116976926041632343950197339029730737859637791228995892354749845281279793946117906497690852386506782608537425486562257837069993020424347967448367080945944510187213455910228146948685160062305014235963964759290851649945980326264343295227621631139888686722248847750308249048274870919269497975605915030174248606594501262262115924576989462406443545990661620433914829992674524834447049468243185978252935286588717671671366243845021408865522011280879376589024404285301534807923956849105990160827035432519013263255119683893641291856910603638263525666039599174545195299105365468929899085802065597261102517585823745891204969300804050520614984166185180837400097529257188951899870095720649679188914118245180479100649178804063441907121525927312277432711414075582302723822513229227187530666867771047359061144575556309732051752020732132448240726993637973248533500704127402156922973906583791352085308411991941904274515193366050290887148337119824428841064349816889087406691505327877174824761566324623314144111629998501985949108480051276136253227073560827259000959004670810039086775409656471426779280405495200226361462667011519464326878777904474073890006757226232916456837285691367946994876288163340397494120220089051567248107845017193702584667225005224189374964644751769763806558639921985417184907457090817569589986217798265140359283653342661801171243677257013361101965576591736724953609166991970701055345139471434252995547689237949550833413428012299214238721571426525596854697077018622368196639310534853626328111872260735882684343369095593529071771767147296621878674073144165702934920920353103943583930725431952808153882437211956803960816195080819719591490436921885341203804957957033710842702205524728784150349898918968189894500092369959837092219794419140443089743709327347687814146323807866156240957943909042751429864547250903269649242315658076115303390671211527686551740309471434445059852802254334688750432312108495336737351153810636109323152956766978998691639391152837214643588348268853013761499627151847210666642818959400261689727264986221113022682642939168036096189997808094585398515796405150823477118585627578513969489197083896458818301741101857085504002581988576505474980605515708034659586333761987937227466054157896703100190971891931260343786938890075904953051695063478222942890408133590827163826119608303797272508251119755918934060635766317478340522774487748342242721417113651094759462861972095394669212596647835394744858585003138236369124548264398380697113942527462974586778820149847608434710201398957508237592969323872893147818782526900432809199657419342491781158117202204868446451714621770125217077016717014646448604651561720488108504341280051695045649563476753681510944077851752513379815091240588720271216992195424588470092181253100387100734875381264998479829967090767552536932234132408851389521568105282210827507620902063237398739540848750156604210151099849728023301773706300927855568658818106617797337402815040821472063303893492711611360622416500694083564241630323863934655132182324684527666721691714910883160155427479654090253680601067044442173182516012796258520408246256420795679246702417063303827897088399241310538179370938398021157773873475011403772555892414809593653779959182705706731474816703453739861665727676460566855691600038247789460584244512305290870449365671363974543537968557491668489115004088350273662848759250510993151278326589365580434044248787406502271767204354411344985989949857103593648208099128094012048173035347976565317268290347770235893795702348916918606449126563221242001556228392156966985443179652194209441502179373750494881178752398437812014495312652835865255681967506865866264957027064350129159006505763645629782500910214913536477230958468098421374416947509963468185326328189686901210514373245208215440034185015074498186518975869128601312369335613450531480680474250801319601476343342695301200881087144118663596104044722904122951519765355989166618149979292450079782474490051996949191566945005080151123452217425130044515985078248604806211267375639225914691093199082481057558165443969789124651668862088978494324958473167768126052040435179915375685116413909837601661309911144495377377177462169367613619855110591664817284552553055349214904255609038790113280015196459394890013066086621284279392960494342638204005242923042779914907807391208641677857306045563001041743577416541191927295828908539817274934601156010547088797386744829911259033164305429161077964467398334561703986943208980500009308114579823351636948948213356651449627193770220791213915941350571540601823424621835537674450690555518449050704155321898380605676965803106578903630930104185183584276140214594480626056999808164894384308047418493599371949559294536623912035300429855811451448818497538334271015596649402902174013303969233097621567335388989774031343236780907519345600054763591394226192532442281654870657492546151240190917545722741518991082147511635944794669374581873073791188980178979127317321813222692276212442196890330553400135430615000504792207486841749697957230583139598184208893302758955214901122985202107895330352022991088193730048390208455563297430760709511525074099658403247522457889576065815364221993487881393988811280563239773186878038423410852880420978869132264083840918479842662253101814860702043172862817664127541868559412164533871533042135883987904365334692774665555688752493313324221998918247101669311771782574656082985525175522783219197298153763083310540775428005572875452872021093598451979859975131875659317463172265435957278178323590998438126452786472279727627871478834623482847954427050943743871053897578461293678749390792817430609629150302195544754479413588200775002360264203397898142535495018091472040670433176977715386159251157539986720440581135966401025584216541365045046091767289241727925377648083153776985989751569227584988291112054701471854698552638525333540878470334386311580461623405791607784052554132201634264739737482765122373644949720107453188357908606102153020669970951778122284848882761339930713756375395316633487848512634239511293832071946558264813388851475309478080030844211786543128947408947282301341925467515229082794659830123460548312293281560671280506932273794817361668839088411581160040922112355560365314619485687539164854695729983683346591538787835321955110169378255292755693913195217230284935015490128659823498766721215640054498560101428925586816188627420071154629664781484015135137985932239064505771659579640903279646991176756874289574725955482428638072898260760976589845776593548099187379474089079233456917877650149215711957539116913746405603033627527898078484193879971874317410078553665463512038844918535585294087113591402876324368440222753508099034481788109858017096988516373039190421649008470874465954793118537593567892498296742438590424333487489635577343915195422220012049715079486161104592642756194982188531425673640897422045417504321242759074015084222683385198679172957609056634133778601919305854243382915604707734049599634179808165294813282157203422119879376921831872643608168227766542492740543003498781067013296564695464686572907152390617713986995041623782465218060814730447957788321387712376049708035576279298480764660436561643815206647652299839494979480052356494521297237387137273501011333706489526872300833634432556515206114930526032983872260589370022338194334621818605727507056858512155690623341131765721224902932558990541736079409696456558578986885568721683886777564609397999164978098614879871124160264643887959444701957901631368070572140843830285353878011648172446371710152082474664411595036094672917671449054466766938069307111143559034574787094022456040643653111076121715511291881135665537302110635142093612778634392998140141972250474601161522266993223737592044959533977865718345460317566673446099999747176067586495286463757100196424618320367476539323065041810732232987316282417021686663278296377896970218024391941873978082831351703259315758971802808934544739995190369377713981901043706366092021210263224279821366531904422160651384290457688013072378916263895283944217038916601521390771466052653603629346623006103891635578229380516562916518443618548826822564354602138477118673782323990255698432355718101462463431598366793941611012713275033458882085844727471069459651940569496480903629284675010393542105597841490793897255932562621469585970212351159646767219414201626466375642537419956186462191677933360911078480298085844315240216721417045482481455184692242902941236237900985875771298321651291890030395428937596291202518260113232594190709904783708279727636924105879836460628244921580549336493857614520840111730616469469848588682249373674124375881865065072472607492608270251741569314261359390373702017106200070546308031918757159041087535594653769074747413882835546295374096842228049323376532902120714864199973297890146014859581954452440479962921403360440584710843180263429771410466006645963677864470463143007397489953905256085158033347684764045630214251802575139168974783607006544504345723350712563889827091400594826956935668889620999541296716085781429980010799814932626751321558831727094711688782835535773043623509017126762441271454414926815402834093734014961074829718165392384579728321893780112741929900914960065808369053711889029962938907834154933567157830303460064469237651453157622700993595853588651195397638300981372658758864354909139203249571513933784458135352382281746346816165267960714837122152743621924234289563390680181461890604153605013572754410465181862994437940258221017829335003486512407780515124547961153052988304102383371001437747793888344494612555077652384994334329981316586340932491218437308053968270267312090184689933439402500805093479015872563199780003720275246449879008993694287606386047068471700925916482824909063774246408323081587136042841215581427495163343929404540587681145051939344371158583969325181548213161238884633400207187137964255430365306008948633315129715333490705518143318815479592480481942461095883300285880584420465249078940511792120186829742854292627215295965249719626434851224989732352992433439467178359271366766248575902751670563354383553266670641968887252666971376224868414224720479020615915988190520423621513524735200975807456533818105544990204265822376375756607571505601371884108477258288544589486771793608604422152895388184696131183386231697088574356968577153683214076198268357294685613611146219454320141737671565862883024572826967348165707744310593127564325262629242580018737790797905512877304392221728813699473043380663333874181679500688727529861211968478408584475174804061162689197161697261437712927411000012435669371374405168285814493562474406983065468099120493517583903131247562225030917003321824188332732070513347742033933513100634622223529373357836317010522825853658385030246682552600411993943713849595367943454294579961753711338341883149045784960038530382916272558168437494339361044075743448749648147226547396673150505037696562911557790494107106284132726786968918467722305007737292589815304275070700483295914498549730573227046675579753879697580336229689730964748914777059898352033485022403506383124096739399422799563520916024489554185426363395465593261158490752641846162544857300013270482535710865946114388861803773357245694755770837235727764183212987952345609003913814883850812981989172994790930201376892254138593083684078794689128168914229409548386373343267101532816392131267282727678740621315360380328654337663180880205274311764833849607288200531277534764727793102473208526807224169209833828103273402965673663882058886587532206438006090368849454751184113950818979829762679428703103023474839404333299329796105238186059556789061702346893719895523003593638751227507979148714570490932675463330507078047926590862982746142181393692413404220440558034079230705990535347162058945396808666431365523716313731941538674524770461312813892465573652053288978035405985506456878502934612152596363152096808172758353986611120328361645584583351323189224998033169579611940374916519368467289456664051282465258007884376015321497471647522286908987233582337240308935445564587462454762442699813216500175792275351310902146169618050703459141498138962610568267045900065590138633811562804849744198932266660462811842569858801704795370728140821553125720651598562666048790109081952222501593682917300652963876300718841184369469743171822756387107006075400950905560069228502631170243272094597260081114351949201995063451227016403771345846580904820021589931542902012867737355497835498859971622799501469491747264935722627626177153657059890005466412242712248967539640223449582764306481195302670762388787154801673166063095748862285324950127113350282167947247605910126191766887465296476513985610870123439487673812783195321759525458875565277816708185453189847256622443818953188059183398081701399301833189714849863973219124969135644653979113417121662548524903495365224354717482069931169518803529720851088095981873260791255318812299595764754584281945436461157344955943771541100119125361199172491036112293924782256326975142951234169272354347191406285956434881620833051416864903478380481974451630296927386353590760241699873007865685703680421948576258935628213458961114907572876199050911819478748986668175410214312606383329774028533612967793587518376223827592491474250372417561406989850603693166364759090718041158455339879630904859433356312930313127399763531959508963058417477855652886683246593604549237141484980899546543902653024451833465763867777206309671965848816948036907389231348579437094099930061269989312300419806024119065903837119564338548718212430515214185079389256881456220191163035475311035747287742308425095649616851341112206923985602692121628754402561386989374080911968732336162380963537205976860860932728796926736055271977176944461964881201021282680993077597228893188717289658053614994337798554115541319033277400995802159193511672716430659036440868508417986272765746780818583088058911556341969224567212296383784650401351747576586855382526227037674264201972541921080503951061683586162392862748267820833329118483528298313725426646455243066884394599311308649311005122797353265539706853824453179732491187672796797136440418438112225921466940543823959707331257355446426299244883798327375488958632892492465061319326313208444275825657952516408697742600175330917123572398823137322955673951786000080141632383128168740634012033133486785626366732436674418583929841312491723860127084517284999055758609520079317401997745049100762589068213988203692800456647016391189122013403249448002421848890070766122981988398799350508665603943197474343242057263743196313893688974378848615934317922098860808908790832548528903449211835383669363085264815326058390497031503481209480992927575991768722009646412467474247456643721325418056656313912634082877875313974709006279089984594361490587633505844996135312227372510356874562386659484095586645343369093126231682648527774622882443839611301278618442168610427816584020527683121262858192729239159537261405748143391391196208931688630188441332554133156230302847515581526368086797716664733905510427647448874645135160183901810833258995072379279695021075062638861749045473190523310452259059126524663720553960081770508208542393466786523112973005552243342775252679197264908847310953384358110712743774354065503939829770857108771537928446821708037530522853765909068828436875682857057983373305069431694171896900206229447228491807695744444322207894113180862745774518353611318041776577525274665741653089566338616169204261650478757996862479391514820000655266214145155805546486899034036151597138385710914518428375870093059392948991995914533231279603162542462544639605913982081728851781112082238913575638614728093272812369868940769707595830801566437651670415525685428171820955481299639914251114157303437119234240236445112218262995676929261931974994209534114145825355095042435486085586039860128174752459990298206217468031119467071182958132557132739686493589014046131998994325324560676590822621959107597754454814885528556571306110075045883557935124454042233703557440994340864730212369028834264031318986358770767841959758324402668450018311148468906560357812170931944388812769430422219465984312777748505881753144994976820598287177934952219965397425988974172648364421360824349004320934474449742302364427209121465136743244807739631818871373064092693682839209150250075493968771573321985787687688836755627782145738579947172580317864425099502677044838283239685899418034927152118321468194836996227236112977551737516577426668355395733869519960994563195348123873049532506494817057675273263255451970381119063696426092939931661665547939657389493424847170978568425707204123421261386409781851199522113000103552022270286631930848760625689489894348832152003946441390196611326836074667904208672304505262744944008458179146368970322164167467075915635853603963019596282134060681172960768278224491130258712125260695311831049586260672351839278987750050291985478193868504400842242872400684499376125934560136151804687385596942104262357264230200236996346338651244363440493294711992359614291823528389686800873449447062148902018422361551053693092646920210714661490062755213123529605937802475799750969145988677946962167242797172390775705602393080801933181418793837918216139905669768201505085064326517352150118075355361467160887751207358167950000277539250454416834791310738287863170044340432389440286378643882562635467296883441137304848027447530163823844368101938585776168225299883632904730681260643489742877903287929536823830923253793847414560653122431885247947592495436440136335978739249867270320253080312920573904647270141452019875205801888778498007708095508575728067123986680914970567170777687363505581501513100829705690474116695648857015032746304134551907460189590075320125045208745838526806999576886796258193600641716997035786563081495808243733585184362882791903082752008207491788371248838572562779149036337548279860560897320375799754428014156297577008310076517048613301125258985314567900452927610643949151763585356539852722599448524397962778959629126356232629298445202769563321192494038366057813718985969597815534219301054857207002198746467044461205905117365283592913812363955138624981910009204983415669422426312663760492793947927640298407340847765790525627074424702072130903510623886995265991242552702991478454550851622864942380848645249740914685094255954966042390757426749396048828993695819481663574046162340349163995765003983195903407868210158294167611212794029107123099120859080865415773323430657941087559780716775074096897482098222789858097996062465299192022301391536025302551451539956179764783452791621746779120347875077104572428248521768102251479482368112247683718336153488942021015393494301569024515730177425303023031821714010483662273182814209128842688139095524057381448528336132805805515331729940291836537527131105739500030417824250169990261867290048251809645504940819662172337683209628438333059396451280125328855651185517188922604822678805245760441232699664054896889213193711944465391475385871620033695274996937938513343697516161932991592520033587917016046211936782325027695383058210543696188173848713361134385727603598586417856871410060029313699305827714882010687411946593005529625437440549178182246780672275365903787429261113042390579186313320774352061640226855068317467234058295927588455944462075920091424152522884161193896471402658533996675250992274025461131358828914303992776688301468365861101478518279543928360942139137115727310592946279246086872956320771379374609786554723248630487192183945987095112041420566266315339647378885552275848345678262163526091063354793935648661875439357743156255741198440951179810729947910077310250097905159793893820613388318760010866838396381711439292044146038029018000126257676714756229856162450934229415251761572370772608714354949687229580272877154775521874166607206268700366739556504161185429982890632078543524702930474912867477045936666282448442096086944493182688369311388305282930619047083517314574782591838668695011335612952741190345560712250577504723436082206642398382747219247260927349507578629242484302937024175999826378904286575734125211435183043325729486287197032709230856379266067145117570281224726974937357279129918455382141041588051120064536167629051476346275426940002828477374383781664935702994782786225528815576645726917751151747815473529651809783924754823035751144020951019461145843797495076301177288404797295576157980526176535019901701130230588608438701053977944766684841349000721187143031005657982452989932869955739787814829434187733796817957213746392168054968700079490972753259125479614317144727085566826547394823884570920344711496987983762576598661124794114459387464338670905624844148779816473533964069187440516497617483938402129412267471258745776868010011847705435823253415199649940115623738950147095942241937932898333719636935360412101299189378546057790816024686862603843703589729510424180948571727398509098694774556180935764341244835247102378362621639022786092408851474596597857278460753383244591100497970967649707221701215359414042786790134166739732180055074810800872985630506473270960565213919713722363433596292724375402674490462208502103870391871083479394141960782803991875531240937204790485482498095432771235054102411103804881320140227958653517614293097947501583557870385047706454535912221445218749554825287543282579011734984349535683821465428758262336081025379283371379163112059017857173483312898962785091180295622642048535170360125110029223522189216498992286226438627030201693624296683242148676695708056327087951650631581970519643143077829337011699417995576384583290439477329953235813050874037395988364778404018089952294854348392171052346595596393228835668067055012230600348828832678116358890751591666014570890558838869864633676589826205875597884173647684507943204518521863894088939296164200027517978742042903132360236692800790300788606281770990141663441317229767271320340200224179108805492055133436091023244490751457319842998407516340254379274693598820621139755227779899192324587127170733833887369647474861237660339882854782795432697138725140470088692154761254298595207531893716288154703813611302048944908457862543813790348333700474095966355191504052543753680111983340319058298366552200574021260873591686954481845616804364952714819427673428289268288081540761559039122985868750488839335482019697410448023617782579935859239961535867219957051908356141127163775716818889936903518687037310348123334698906399590448598203516181470423801927797788823896656020304567507039509920038429518598329249587830304111513932174832984106677432246110416133823945718596338066159560884632548390495118750455874792818835145148943970687938293487349426687910745753518744684140944559465429661946644632797670398361910857929415974037110871633122516560882882714217137728832569048449804451788890836040865438874012762133767016519381247719267010778533202972086175465872436506866940358125969655660559624705398503113555025853784733109243904151837129741224418784825788550809826180370124963333655682503945681046941824345369524963617217384558252565702834793839986258290927074779357024997302783224292015327812945781967458317796126347176017423116386954321210511829735473496911260969818381835152028402397018127048017637756318689921338784023953193712207691199604578760914533003102074643090299228285084565551485347531847296534365296473329852127263298962832828466576269716113617935392697232486272931493766407922326482401845735857011273454519114284397344981051526282690251560455960534309426102927921869050623630182312651132772514775417809538068430789076755426781419815228075783027697989882665133481828671774892459944119650511621099638114323201305494330842486832428012728218284295644248959002638028703386868708100047710402279608977595970433616303390271626506382528912073193842078339036945840880492575839773963063308142654773014101601142346550481035067374458971684368950874966200692904569943611991456401481101915770435357549086619846035959886834669235359358651686260419242232712606013224003665841601450321133844543225443067417053660337882149626298346015724072476832715568797037513945853335538760579304634456576002999450866178150791592868233930205307803390512556371502361011528293649333261268524682025789571809875320166632304469693505612473449917364176859501304663349446393933425236717113282616470889107556984659821406377039255915664269053000851069970459727615758252151004882812014414667330065884358486166712151715400008265015317512200964269725271943811132629805229965111142856342948265327161315214141157475589722045616944604955123783332156429899397678892756290948134717862487628662996423667422062330364990671988945892223976321815164329813147021706349542099487665324742423871761712803502610022615496809496479445959400357705216088183810042557233469140818577203358774332289803554922258310132157447607255853842043061976457017245540004211269236319778586763783561190137272487472754535343590380969848011193703642642455928545506625352794866671962896870924111681301416124882226619095439504122539112726902296926433536441434606823213430277883581268784959894763139143460805373767093236425126538917984707992179174694800482061297261354455919144220875132274043953004113777651722173313590119728491116558767654968052247818062236893643319753257935767825239059532774975051820237601006874974877709432853962485442310546531576107749515496009906199730547472785280126502564962425992897814797825666903644880068390459231432327702965303144925409746229403819759204497942375719091949854841089629289615455042404757274118732600482591791562204989527221053234334914693663627487805393145623437598366035800282461973531198392688701334604908417087395700897501202811521252842922963369027373463874351260593550582045336222339960855964812912242525268705893952212633312276866886448873748001012401632879916853017534692379970324415584991394850516744720282725484783831733863312259259557382597225119023211092420365299109672879537530716134340002484231772187371749167550682938292383944539200960319508017272355202105063108968762970582929866604782361011006884951644362225616685045334621228873751502699575033446156449874288447980920162212296193591708607789320105239549231402658379085699351825214043026147504518647381019867868641000999760966040973702679651695905077034874996371849443933281484020779615683563310637541867112623266185819586532404894185626114898614000414649638110586563705108885124623514704013597826803120599036887678532990278662338602953019321422629230831095295395743365004887432639214613450306718288101767209563248233907013717925863202253785710006068280813694516744986369817081741419783698016891876731597703872345040686979651801662309646614216295624738176409907876704494443284959649433661126109314748663097793435422572672115484556664979376996142269500490695501568777011655047783229336609757723354009805053510993561838941542727816686392100022593986479434764265900961171584763509223984586420412487597329005123227317051642962664011954805990689909043311869496281221064639406103727713967089859505571136914970958418999914417627307920637789251699039460831815549897271836456539385553229743662222002325036026533815386433867727887342284323641562091774450283829682955700498319909765090649260149576883385060911155716886999967197046028264184615560194743728844535942990133551487251804740652156817816741088384948218105423977101685730874440675331965989196734760193450112073280967480685568095152140773874032326740351475329027073596296121006870566759370439269517174407778221858159483087121076994039127502594028391794396285388760253866234956689484780424904769717275197696224449875416947912914984309093388091391543976041747876037667719501300669957900155283544900158644355015890313368066034663742627338125445261484954409756445031928172539962247084392332072877965608224780529753138424247999457211004502357906224099299083670553144878792599502629693728670991686055223445196294698334473447029959319895373177547964808860729959620124264330858299679232272387732527771396920832120584787265801712967864584201529185513229919675810628205579653140674415093998317219299280990521599357359154452188278226128842289049058395303478476714658025193730763834273241183736195786760058412936544324389873124248654132971971820590479031717505097561031023800999053568087452839268863872341000331714489635140207250571842788564405017936790279583943642798741343283987651686942012289148267529028272419504590428555752680512856945432950238049105644936380775709724602141059468920243419720948945342121774959212563460697622408823711257914279179346245788605782136973487393461121443097505887034541705453928539558486185861110908656747978128638298443333804779530268267810563079910391344851393324244371656953046199742688588387610889761820104957665839021344975583540272298667796404499256751017465516557226748332552801156130060667380079759205786557647662191236589842046349728220687351873558178019145559756159236954246721664487460610422145838293909198020973761038288619359426811187086879478545221606961266530967649790529599062700131994333386071593390464571902378493642000859751437266391018245348322405491554229897608171364001000176272091828673974339511236046983592485241678177683037587488293289391442244278928347073366471168811806655040431114373374068493635447045169717261278243615377658088012692191701719783644772626362717416748660692427504913710868093190600934425266649358156180617909424827208748310903705571275370317933905140502557693597414880287723714468932805458064474945358964601765910422784284527987064742201489811184004577001721800369286740689289365068822662503594971353608609208823728689162995280522452985578285027915837972861792582988379889300980711480831973770483115359708817494068592590614612617983257896221185256146994120013556292426094033964432177453470234647004688437080879585025633682811121654652663789563891437692295141578263142997268559362427047215796116407127028323382735710173812641831748722455728464498644812151116911621907911877411688488578609325453244130343590313068034167995261502058723315631652221583419552141749584211162464635437889505000701390815904015519753446490557307325983233604914410536668583318658136172582674132800565956287677165430149281307437313710241994020777911978558780088637026843928834372233707690407622781739129536762683194729090233024980895100906669374767542493301467358815631668990144764849686844661174976533502134604206654410658161187031697114511571571258817331528009186230460669736714958711469214372542690852304167835323843277659511741856460281984342399594992824363158249988223225388852879142972831552756682539488202999441564320221979994511455657589198739205057803637635455365720924080747070439717330133029746725892474630485228461051454872749953641424082580652868443249965904480279683351472187522533495381710813239929808998600374694037346346890339402477349547775336261691088632889697958177839774037883538782827905104822490571966376747496587904684075590773229849694398820329387797484652656885432197558694306188453968330866486007318847047992694850326351968193220112926951511478052846159294805474990915313167476619640654524779831473500963793519559555562358543318254956766721827724022388645974050618580263012752588642196037722018431679583890766307240607881966941315116831739836120795226256283783451572783110856629071621686940339672234686777393912713141040872753458848542392291736445262148229686470096207584501920307381762525672383178170857354894442519261536262291375304282333017772498460943096945494206283898543158267297997006797178893338115696951883593625782938798525725556063823601640130887916214566337398633680670508068040802786268521997929724946861260629418636376165343820975418395256649118855696218287285668153372963300060102789991417461304453808873817242489417662571030392985548445385727258894789129894624483764685628613331841351159590278136240848227876247367526034272090062717679888987754927892651501242950419227796015582265853461580649161472767987183876746912970896476506180191417821720068031839462525416239915435628655961796394999938313164514366417774140826791743307840880138306020899042696161202898303091204120730190390383292808912914229834012243590948213106776036527561433395055290702220454756658669165148892500032799143021465927805467946368921628134104853514983823441378842280585573464467144926684989573774279229594428385132049484483705288848113890504508979481634846484013965902471580581609371251667212473630953596084362596017673898548872961457036320879999340577777764327859912541765898192988309508598824018423010688889390753922501867164732086623026818680948531988818644139205066389954231226067000105037592091572477200946739480172714983551550058759178290440888795003061229866111938213771874690451651000761141325465488916880179569878811966749002508892521415054682612302908078427175198288799537430714225965576849488483221760510720717125183471545110441937567597455825530269729895340149357961385073692157668623328425039060121105692019706725940821695546289128620556466844193309371965082434999198382172331298785849783140519096711837863805925765550643723847458972123519620267094509148051707468074289736179547365701072248858146005248049483223606422279272923372070680083542663878574799158352609609698554633590719150419752512443473457827550459449379952413243265937910150329186455692023018056680149378206086086678206934445719927529920758598542269231942517381628295595430589151564021062787575850001514457901831158374035122941826796794491485444149385542134335070666106336275101385046949467757474238213415846642742274958994737751702448403819908828531681051394260680671937765740874913323770577023499664027210398131404240277905018659108564941317760753632133020210096861210026518467283732554730362817546774443141063473061526937331603980426887600750014314266651488642459135395881526801234012295407163346293598717805034610638268869132972909249987285124086058153515278209542481877157062912291821595270790147724206737131355337626403362740440741100026899551882623386423063148426707397306745901844398721435452036168390742376466536724586966564169444842761448085294058653474970473633320279975646438290160530821475028120116657226837133734668556164118643022865494530514165400578118449813814797688955740657545918010417177813900004652541174493577221110734439622818351790988596420011080380635816929547700554562617160059064825248240907248321192541454469918360956049584762295187552241809161227157561831562003070654926952178894728839525201546443648659711444281297982804806944115297118449006938517063581917186005448386826002938263352647091930024783753554429647248809600700043472735853347753869348648238082809584492416899292526444450652498792114516916233797512650776894284519876640627416366945619549262609439506697159917381290273190699462392500718045129122486682729942526692124496634831060649774561388577227466523630408809084777681186646855278922750153661988646386789904616790226340277809464270708848981646123149521980308073277733085662056224605499142245637896607373432457408241513793640309511936667285676183398899519319338641883547726298948289691720907723775983869753245660143396675964278244486279283305412474161483969728785577883160981046142923014601263088796238093172657473244230873778934202937570646286667656199171366002375461102950355803898660417097319416153437984970437205345781160559782626601662788257546255642250187063055232351671220874390213951676575283177345268213733539614172244094225699397162200936786982571415856145249663506795600800967754456757851320342976323383534832631127118701607962795922159808028725517538817889957754384562819035292965898189099903430136537365590964756811834965132327888593341392024948830543343575722839244558218999265270264741865362595289987782641879237035633434423411204915932784476686785486646260264384342847495579836216607664917612509984520247360563527463779188144064435096225536770532255923270858688132964946548750344790165473405095868232704490528719840425412593797106812317025863945856092546500701596087742469090863152893808150722060920092964254991968120012395553167747613399424693224302891562207427519411731574968732746192764768802011497755432799181724021812286914686308733004389595002576492571414561075900200821874337499355759058828294141127223778906916962614346355990328093501290904172511137159269581176600362504062200548700607227371968292166650905405262029991595207744341096342371079969375933312125676643869065540764802891716394907697460260176066962934341156757880639924189546079043060355625185635872344056176365836651554687580075537076192718986905857574530650198996186765904710355429102251936106956400368686315265793675856827528481403530730106600146052133248196007347513988486757766108814842154695326207187166624695995002829739421031024656279340106485384818486830520240425349842322698792119566976929309338763390357543183761957318819975742112373707407387930554312576646772325675593026521399196530206292486832734213252217122125483477078165079204950164890986431801689035445970213948326830720949634576706320700312498084313229505476052150509799835558219695332969585485576522871991424825181922974023618603505392188500469045729724920939095601900917678846430217234751431815528337835181600194320056075125126999354788649023644524324797665471369978090722977106360763029720558067686513354334938941766414880173384152928833456426496390650237870101321174687788370186219518003883353387861038189189155449763096794902244753228990326634531528220459978046170254954393997626390637692571126293413101074269785778190529725396524152070472205794687866065549039735862837042744543140050428959637322527910066434175838989718189304430393124795979429740662249440768727921850770407506002287466649610993599077285022661985037705707821473492906154014265360882010576130708698466477870004093177653468396223628621089266850141412940553631591245035747272604969755834711138788570654545208138842441088026684638338662020800896119619242004617021951380894048430322418866174070837028737724098485228644316173120974158546086310229093970974079842790989298752150272341905317683147729576455409556601524760585185395127255382766080263920864000860810571907369365921827750251218063245887803267665588835733227950968991531300892911529737935159837207489210736471779007812068396393946533903581179197463963112647640014441730806158295049846217259754840244177543645125805779297193657612199477528542116665550824947069786036265370673367675167550785389467606704797255462102284310987114343983465898149598363919866695007226108854127038026675796109380392538100309902942355133070609260300058308591900362605967177921606866390449867290187478000725866547925256112783372643725167163736492790621500691541671822318410415601186865529707715647996918659497657697628528790558400979147822225600720426701157668830263117669951433694616812854944067218672061550821350709327654611252679324693236047733250523325117462345527014060980250419274369444339753177190797186984069887855399511309090003570099440551516902690395269526768999444413045353599419533316912254068123987912323475917620932819518314672591733316106390415084506926035050667368835859817305119903977676439658668015085418838735076542343918088710992268803276758097103988368232367225317126785775966548195910289745881683833239578052288560882192733156778068282065451653631554311050785435573575104949194802451198219123733256389100264513438217543960819846369587756244640848601844195846969420599689765225197664240269488673965035678689970033914111743100058197033383028091817215392934962463003452336612144314368038254932453874507703983547808004340731623982069294135766758548245352138882447473568294051979303709941190462374091817157106169195422239516932636617854014748929281212219846156205698150448800958281563046209540264225401615027454019431446865367691395237852833617710328775219480885099638900915052194253777376203365380962168559769595769361588808731760818123898115594591108312573027541542355075517935036455425381707149065637291979754193480174010182891648122434066030884331874935531646005956889099631966606701248396872269578767359896662475204299311944124182015806339739708010971547309002580989940306172109507217728361686566739983981393833962661074833672729969403659273126641415877824464863460186433843981595564011139106961022037590822451532998562106129278286348906612870067123812671572466132909023409443594971292492371364665676575215515240788437209103028235604913377756393172489881223974431673530436787508227081943082128230182922044556670231325203985998133023584733167176321353111075373422438351801095550201971494577836581211783963381690821211574443744159944046736500621278256270546633948813234911163884266113093683129591166635118165852254039480578828981627120425408025446633229876132930529259465603369029296698791621335848536642262718893906244686990515816858700144161517593652177557219281397365629883033148058561512106007599290562058037353971017780716054838902733358666447131304989418129732249705329516637093518088077389105355674598448986241830498534207612287997655223016610119102483553171512147604848966187586619564476189567892674295435178647016830032808091221082140390269978235341256582474309605730672883875719293576616541109178049182933315510289597718566728863478358091548873976893477759754440728352289792032535646913900883480130832243237545474051961910999977988924145833386680006286131935521549276440577461674953522320678478327490416264347910759730863806501177249005100387664800722423645043454268955219514003945486076080968108136248387485183819638866412934749133603209636790342151452734395129793837340620911325947426308878126957025338027734902814136901467983823630220732467316012955521935090594544506195482494692525122797728799645757368215458652281431491185087193612393527414706071799889324683447131109844235886414289038614733031410031762613386610656808541309846182669290918832708582192466507310816742568189213992931860222151890407196572606764703324160619679908689860889231712836761165573734650737957820201394387029729967472471957839174631550433309148132301121262908080275834561716201254114087272116227798369436053784741214250488495803117354322314980992324137521543112710069471058044868854496804952076209936965468068409679916089142086680391936692032243722677337243381921087521565479369270549194635415146243238729707941239506780688003131235546978544614693807192471364074951408612594954407187653725204589782392825321531673108324147044577804394601810600308327805611866013467703945191522606660489105982089564893922491804978630393217982380701666794028333968723331990386672644195927952414333833765845816169621546701174532092824782191855874245378429885984660488432251728805492676857364256948902554219241332669548641164909453615340735229146378123788845272506205083611378355037739446352062946951803578748530500321090234870827016259118790619632955511027194636654361842202698838402343805202954323459186032396122534557091032720058318471736734053922936628716652457318708183714373489590318107376378807664836383459653673511290099694508295131642036858817879642352804636186378663096336281679254307252622022621644338123674851668408587005451538392260239093711722601333873172639985002606885411957728979111195739591493857885458194784374352952469878658105000388526431907671275281774193441993931048618240944810779299461697383094375332706555260834194252713794473280697508535556156515810170946869972040803452704959777886382075596053932019680370594234651661903585769241561341410431527757479193461573832927662750352336668207667283500325122886802025688842904578971723558817503335458570947450308926727988842258689105156510443152407891187027965063954852225047468878657143617878929691991434094025617561229500492952958937567969796116152694539914005785941107391068568680547463532470780266102992864281021047990129396412063983790411594852103649703094096760987093313377235921690951823058966728231633552786193467463395315865139913110492546640482466709703051366609148735531793425139164568938346744871232796368808455191105990270632937952749167009247079291162466336988552409300017241700029904564764473689927614878907635728180125866335897831630238748447338564804558378291412800392426472396143635129546304874899077095731579033184629308669409400845675585901100548457927991900869019209290116377121871507256692001187404674013550983216480670671221211338260563705310138905153341257125047438429767208311679043469754272793548225137563744786899584331961721692773038229317587291361883087433086960917644544571858921543456200296962574523964087289997227466048294201399736137359280121001548823443647959802645109394031576432122206894256132521364411366840381040995235246911065738601740302977060297933704805681101781361528424320924886584247111018926414038302470735069226336690500820576177025105806618020025893649260947936386190908755804981685834545307098548675094927932277119418230920151077233304419662731274344669238940951379425567294077852693593104314737259836915521775969723892843988465023777086340733586766457809078879941010148719304699822148568011066732659134648007618104124958459717447927614880967710087231742423869303120491226106494741441070743730719302929961950238590153863085182140223961521806828677079478309262401877523646739838971218583889788555919522325188913283449366605754790094302219380653268497960415478611527904598223776728645909902791109316192354469167381407674303413823717882841131370254265785962038161693187076616473407294868134577142891432885043597109808780945422362406232151764389378003192852003578910568448081292519725134102943099969298923289258381142446624904050011123024161235881743292017283611869326995289138098440248453540820709834331755662387509541788848421638688975076173889904090593139137231103032248219885069619121592909985850755283103729115186699724372588552067373544419202241481763157731999105728772361811784406035070212960200970840024482782398531929418673288531475806748541195495437397120504223676543092174114798710649777954919051116156251218798904556882263182454596089983049464059740476259414002279606107305807330720458269275796593966550339222506154373761911898097125493302540001743174922721960314851004052807523890844395558950114077357478191277990665701902197008406698892772379790833908174491987190727100280549792138903395591145214896187839656009038985242421548558395619166756442524246918128638410569680748772983252865575841027526028450896823310572028054522096309816486601781712646194067140559189494170183854504713289466536899262006094791175703421823762939509991484025819900229550628310325647022871253359582790972701829659411929742688922660124088649734576910677920779145134252313544073903652207698474710090762941046641914270371432570602832323657204558947909902121331270269404170928889692770541070624826989343963131709780157604085205336492823640416947642569586453773886720190503451227676945028592619852984284615508349616296850108781053116228931554074936682320043374382598233033655102412885730401091890575606328781284408076230603983607350531250781678600382199484904419874552012395046251741778158536893801446253045719293079954981013749185203540490831457140745546966603469274813590677308524730898279832805180146822978638423270655868384215639765600795184588751774198792161885541708304407380315410792554718338490285561400922017521134563765132568225351845528358222178975755728469556069668200082815372091391434211857397994768774227640739296456368195210772360459571832813844333360497246591327620556737765619152096963442463671602724338111843717162086429925614160744802404941531265934702980963957894817321873859586758492829833295992874989320926927482387693967980283330223492684671036386347385517655266389122663424923379764658105780435882407600875678262847072009162340158508511530588666974246939583050233424197778328777452495408434384469566839369389991032945158947990651243272757056073813815677412749245591441120193362783108911370961791110714254672764730239475905873582126478341107441648117917836077650587303573848489015455117097752211586905117291956661103031231160887313602725894409514186061301102756416907023966761803191008444847769474994049313006239103132849321453556621101828363470328559931254082639717258082111878225223589624614623148534782808191897415485376673265874705524056817046230356319992871730481517586099570992255316408713624766644151199893483886121856953090216280287900147010313338132343114123508281007684623429540109658041561167015716354160534487348445751173763937941129042342239829311158040705488916571208727612886926739713461910544096302204058331144107303430834815548192781734670195906117164624732968985505813242480469761257588600295168895813877097005285890997324198124713831617326964472433550803077787377153574322129691447792547155774881465178734486058824680985277572435172433358686440075892616628078569028508839813049602250480084901406868602755559600289084015275816030346722801489821936575604925658146581135333276668150979057253476649191402266472268607635589898976452484563805862925294287793638403075452557454327428321703091049304826051393057276604989060788479827246326114130024712499306414480440136203234108412992073799434904671585072993339286433237194502647945744225733833095269886307974122921132428047783855698214938982467844883006328208531902939736611967731058597374087209616408456116079946424002990557974143129433706847841114232032119841915980120592069087720641485878655631131884787660520020873212055955969109041539155358874544082202059956461997219125302780825203063407710279398557470099899767865001116476341695294621306066207460977603766134655137333634069613923434333481410496407982415838722217810334412182339874256383089896702171072415211462825301838082594672211659064243430465622270986086892642098196591171572225539187108066098051004074681170818710268843906041921784453337112151310904333458947489855399033731823973915571544919048904523165417419778108680301747700317223927608282616377912565562977098700700274866037031316928350845845980599408234914476824065891761299169111326035231484205645949220203355233096242793233991817370205325530535297711343713373057911130447094622637882383117019979071541251831711107688401450807131400050663249755717180037837373317401032938723381623547194805680962628356623657916521485433913953047518121186425457434969749359341263502691571531794024638960836079856861945612232582933899269285704463958793662726227870947499457462157203149709793896321706529945825059226629552848883621538557864910231667530647556464772840988732933617313599083687548444023827487965805828132920611072303430717824977376677711586992323793286647212324849575326464154771427160946728147472800134757474986086577000762745578599976900088936898171055711488342214459528328477898088872712573485165184837182597717707132786666061993161209576668640650478230405662903772045797658602680248783225812948815539427094482311812404578011755368289882803941643590273779547294371903589668234792002175008793561402344195006709154472236583353256310147722450659880475468709959978983144879937389981888831536585420039575760902015966886563381329955939676111282331089922887498604101989599747738521771485755099292417685907797683051418496943551795173868062979877260172587436657247576920554203591068583235753838410531011504681147937145158842351561308279458665505529987326622622678594331123449574766183840263102171252765731761004473167977774917297708502224146279761092632259587810647208964742710619158315416352559155947570038186082815547113902120139266155040203977832790913944062298927216756379986849499922776299842527813044720413000863004358467547331443686863331762037844168176000349236121866271867229459745520024829149839216104336043096839683253935183045474698932007660082542904459124198526967391094669217545906208037856048610718687544390777977151352317498155134945029015823525751878240960845767401622976279695548019986514319525455505224052931803922952282782427091465043117092661143270982631722396504971478307826262104195054349603739389750001669126585951970462447928033627118528450373155234391170677398133102375048291938891674093592152741612787992034532961540054631934386796512448716610137660418187786478337803816763124451449880684592219181964616627707610771989565380319539632821470142657859967112517785155086524753804876067208458193894325109197094455725604546875711296970371824723560998612987386419617939498228562370277280017031363789268133309901680462114511019137377765094935054006084306533728591480923193995050361101377053366893795864189653189240935702238761009206912926636553298684095091361108062097190531518498762022079166805008531375819713349951809419144237778581818381701939528046537687871165051797199902618648960196541204512712104878417624879007784244156119600565981621707324832446513370429213526622841755453925397291286661249895687906780792896111239472351681693248962794639116697139236706361053762848277521558476898951378381205277502459565814639721965486085944013288773005931932509701334515351810711855429306144362186538381218650861615155231896584592913032866734210994647346450083592519423384570448386418461237670345729097414808983098994619901401518194612249638644780213628168345696962459451267755511483963246502113055627985310498761317894967660994137595874846550503481041310398602244140992968697828802326997703485346450259077695748203847807686704309859738073429768596540722788756935897092590929079860291073411264772888452573745274994919262393198630166298087600109569925630022803136937570814548588389759938319898585172955299554787134361346862314117440378030392159448697290364501305368074486550408064955516038969444854938573565492737565570065692155745144059980557983578597383402480622960145044911370688158734632208368714256927854808014890354771450003956373842140623816855141019431353873358991750544409686416322515795045595467146873482223378204893564231530048796789371826520123264637950300517891993613662845612613589712912411719410830889977173625983054576956909324501148936615822917869535367735105244926947303492105334529267427524820351272716912485747350847957261149788024354819940000502519928573102711260556389195426120589273935695798414443047130341153218707446150460707764084605560043278024567058818725903302121400295027214495604800113518816326790117019558701382135761490788330453777767513853441085012065124214307240440786680636307168078237009164095917451061472112902575290121211780784208159365912010569532567494548420338241802260570554845044687045155702257457755004100993202926211524575305635894973487783050967264098939968403538546602714546546130792815719315142567014677002746701974103394262364124412277663950489372427017300250015962544263576618468156504971554810160486793733306122032989407834025876466817932641512533263689765086507353298918474946719971723933343063648262674649241186350149496722878791856099539579349032676545024466060313475400792158113406778874846707989710257349600352059581688368828271832659401610206486312210905869318386270347852908963741103289690370252727142363322781624934861344319960286204818217691952158188724852378783511815517017691480849862532190516485483352651698019671072038215048365738691479747273417510783826201072567167189399121748911082229099469338143044539256794468407959819977891263719484813152500794488437057414202755940978383812155632194132134186081290166901977597357838206684082584858785595742237243922207107917468340243502745926518437460420995676787135590853967766949053939686698260186489809270732389347115981249568614816500874567660389944188550697439303074420304153005424660636328589001142397905409407961420785723796777712325584469779563741083272043487607435833429492470382672007411180141474945487764241572926896953395362097823004804632008450127798060912203853370936998674217720445692908751078216765937913151831859319859093496114250261950470996318771309369875536120327851283937950689441559535882203439653438081256390741519746117884103677929587328924923214402349436963387361960250132360560956722433142747614072117788908792360076796539501845154794173417561923106850702542193654817198985971141894146575777071551211179184986322632777878696659004403370986899879921943543227896961375325298866145362156358475673701946423126184170286073041138905993147246967643737690844836893704346644766457164152034305187729317595624591595817684464862643461984223341080131788365671431583001439324161084070171498405248803473997350422996727752550851365184741453616043996494913349407760500870017654981661030448114700346382064628552153886505227883765476549955743639467941475614947285370879578402175544569191819129188240418369056306194875902194614378439766461502485701668719141632137728800729494022966944730570256430949150683156254726813274107613641946433650816557002962079966275615681026857630102349629032543957906310779395231383845563909201676395321222420152819083205487932054605282866922208861593832757410614559470758603940243409880392385687702316783308916051430550061461088376577241909023276049041839882228045672893651839066139730248054901013552204581669315121707731700981057594276404171622520301141500619808072434760825702194606790786942509933122889066295463333647216686842786708433288697955754704503508360767533132689242513820062977419503890272817781087612510004222224237220399777618083014492815678648173480603629655152104748543926737873586095477503728856356157393055609286205084439107598520445863665557459328778484644303123717630629800974054681596358565840649136213508072579737697415442968736834036963466970455913284065416491826732993421800332413453943429295886487968759238256938283581206110272485041010281655122413096647099901085188078588625941217667259880342233267682678051421558028582973999345024306809876556348937864475245822323164885032049484643604819554099916535033627232855307585924548529681804130138746124178806530887598428238376647887085262517723183090867650071529016204881398811980834905522430086710852487285345356431488356231483915129551599587723108285447706254896212235188152626372330180160849117764058752230386935259538420651926035160646495146885189113504298823890564621217771456755792776665073806956959980069491286731832682350236265283368404346882784997569862013825945634078769661956104687296183875046606579106146335543941259494465179933042029805512203512729465019781071346551598438989000100703508659783437041228723282415708682650550902256523794834485872175357159338492651393057082487878906610351531587099585585296053571958391928861388937143169485253723070460174969309286563295686425675291853398092648275189694436132036506486121836252463539213479252206774576586354541292835029144167541535061932889216098172410697429891212065418128040369624148751066927502747840215452517269106021081116585902182396702331396310087353903841697829440003275871535666876361560624294243042877158382179641608290106402088749709164111978948601969027636481380506273142152397765771008902363896396457464030499447259827535393644454374464330937420291976540462846191497041051575103252138443044581041670411965284252443961400636749809314892570340383929349354354955736322348685521802776753194518324597242335073593816547666356872883569681260514279419781289883116823614676087417917941873873818520451346464433229631845242701086235550482367288320209927755052764022660907283215338131034352493103963823783635219389973583999269390168386172335370949941169585808638963474444981673776728180847554571122388281773892777662727749208438381374365648213194284717179303127561158554572540929272825155395711792038264566860266291629647230258213717103156677050471821314729882504015416282461342672856101166793192426468813075327558399315144995298543521128206163543527511864986961089940315288604268220599673388151289197797517001975219517551042058303438666566241009223588101063385513964666675274652925613273363039588176809846752086143413205240059398105522697433133222633250786829067949513310738835022771608580601759155208836491323351712130657369293263388443553246808805321200883857420506831761845446781859370732595328093853340819180463801996087285965716378381822034689671574036060197232672292103640912613375400156969907271703920819610629415922128097827335107906488390808981181684115001038286942543952212244138240289614129102509533445056175907275785178333466916787479796028563026586793088854202516178903000252759348514378664251767655631334675151148404882864905045939760570963863466807868566176605840202685565727898194123288886682431607765790938095966487022570516087470159284641748749887070991920308698322919444494888393999462584396907379914018111074318568528251268133047056554752760955038706817711019028462695625098877252466072599638317818300742177737620713437241927709059107587659317257827023250758065244222526043709686587769202723094488358286700292163606757105944837055741018149678015956420223891715003303546403312551949915654236622596087861575313546052826077998521280292134729844226977242573975462319112030814499581114289443057358610148570747143948339369771588179315735287938142320711931433830671390229626021093779153640543204924364652215045660265012907862150962150167678415889816742795876979728170157506882672369063336182686328682653188356486458368132166889584295234213041881969060867609143423168286983239801745144382925437922920497004674795648324709653885929312752714836752835251160468797279094281911796499036842566352167877843354720382360390023394925908034735649416307055739996494391742771620468315902565130254229900728857832639572159625883158193739018254652517260256481843292767029949438985195902109472323454433848286733124240019640939563422801057814208132738623333902945404410819095334623528866617227666641339802943975970457066336268079411533729615252324203070135275752760789846199386767388526202956271784080947882243033285443223354015737089507997930858940790390385071539651798355140985778754876925541026851238316932781009066463847891334682707530087721886164582112187567863088928238987966323254360237530949388822498976093625296646606948975652908317291979447871196105483572077527835409940294269594681377019334119833590538514686686283502688317431475805764908627197276278104520717478398018146153329250078402425560757132654496387742725811307367894335058830161624336368979675786956117488399827320167169190475696423231674963668215731171399874615994866690143800255475169222884517431530401557934893048434185614989237804425926054985230816983052474804101308558053104225568397589808724999576513722509588043514466058169573025494547682332453376738255669784477190768230460164490327679668975223638607606925641596210234767991404758979218269242685323724243148861667217234550667484531717071223580347927581185639886569452975656840030764833848479077971876025207166559946588842539415864813231338695110850873473798368830683574502579976245873727357670200549726663328191266543019092969060493118412450232589947499677359796613768288391256030969381299639534412981218444138023922222799198422348787127243101788925206243612272167094353192019714280227805306044269180886110446461130319572227337281132635230552654033454130867533530556862754138517056274978064693886954888467301316786790440174242959234872559948558557333976778398377117324380845352483440235459833258518181410400470892114388363942200097894552384884893804056568765937480809174837182532950658122839034904666541074124721524433146777928322626273763928972677678362036911182584180600096067407002092166017992188987357610627903184679352321339015133693302962818774214495001536054817069727292982818587518413505487450349454759261774278404428077722672843095254774602981099009090647071843208749079351421349830970421684982935413327658402922054131703001295404463484166151280899328231541780035577933756991157897776779341008186940891314021819021794570935163336159816540115031827648209878687751547116873639243590050439934273849919360353491585222361333603493758194965962450010180718481499068967514443676572076529681583109983766851974273591193255695538479289091002968119879022412633818112949177282142309232886857726855339263557628798641155573537518723757038209808570780454862196802250082144988621296024128652234813394455804730618473914476346602809980929838895825107389026364630427574757116585988229606110968671817740618002613434686668898981463724241152457059263778957070301582804519560299549478306692906686496415278107183950806357945646078808372715227287917500792271097063787662933933660836553572070580662427077912170968308535343854633498975405002833359159860957289988374116170854554328020394529409476788338476374780976047121242995584313020875640932435065203405400183473164353301724648498082981294699173586769740508861912848727545106233552007931280688307884655838402980442583066167169604731354740009590781333573589777342623767429190739743310726806971566364701533382875466800603841327541921409174292360620295790954428070723729821670528142253568087642643667515995584304496216886983215897793983433828954812125651067480297918513437867927508528976402279841685852635861113790094413426244287869156950833314653267456740455400121965255707925304851892833619996289739696747295999706417358118910315469579587755265583202140348408293132889229999634288134705569401348763367476284286863349230348848736385159275355229021894758198457775522565273986550328311451370067079963944654432498298424173094326019049697980607582929809906223880493296767410841469620382756217616090739333237289494435042437776539619476909304691834419131854328504745473505943826458317759562518730293525179006904802724479066134554033199572831444928159692595465135094015090455860754970046711577333267103987243232138197687649449554882557916363633264562406149020100174483008928950527919627123714637983112106464666086071282634979445818466515538817243144974441273735849644932066302346358721519006675166283758373035292019705365773834208299594425932446133281086373536302398957950631175368547065997614299831340580729266525579880336029684591495929166738199756594659931224079807473789927864002279622402973649894914911653616170877141364749392072855800533928222738503032092548401895990320194196733577234207267742555932096525471956319462414116947617304347073448672022121518327355475093240656627422961921136315513117349235880495901265349991071868412271143592429930793984198752732123473711816203161327938702042502295159640830246835174220610078668956601356292456548928487688532888337320415630046113405813725535111762996089572090450546617825177787122304419366119801266535107931312293492548309098134785743170236582822052845072633378583840263456696160052917642976128594769877292783922378321088141974378190377315691567046976116032873878094730556972788349430960436939780428356763745890368808139884261843381396377281044896625501559566694570608016878023076387880466479328478001083964432880521261588901758753191727765748113001061711438206880210136068534622866524681685639981157365839518047641813072556364067151501327595592550097901483573329522352224082844777680627577263639546243806882082735991537572871419327434760615493212435684460190608542577085697960223742557150023059639997127976563591634967828234625133706205237340544390317241656326111423249657572362378920819466386445948980038715358484824527046111956325639040830222307261138943210679972567533618271829807782429286892796456339990680071367814816615924031311945712858674134750301113039667516625435530513621996842538670504899404907705130854948280232021111089948723391241867014842053229233122388146787527396018417322561097533783365672103187290050719361965738944614791357528696872919623563915993592851142426661633029832319969223494786443683520384391906898215518317217730956396448684335833500083280799792668864950678964433955739007876170272045749427184071279337099467406731121034970603230596786830085444481056749019487861967083429518611659988142421289103800100971566743733316820565996841936697859880780110321140615966399914007131318836590872458810111352059404770497013370383062269672051783492283013612695080976726031293992379636670563778158217389242084628075680869589362406766757300069306427825639849673039028665807655163249902370789273659902655060273498933507365812336207019021921512112144596767522265298932006360539108418546659320997186748949888977611108504313190871544128150138493862861510372717139151511131839714104263080654892504072489465097913917222110778577242319503040595608382545194273255601655288983875163759597413156069438080368632816588238947346073083203668572230778974483987961387654839551477294544000532256351528137788131327168184196098569221267978273464604361358074587910594806067039004058690281523418461768097934232703450549115790139617107392507396726700864202303019571506837950202166649568337396326952589669170254136753438463252999244788964424286374668398271365826179707537220342021532662015977812883750374397877062679119953127605185117912046016724467053550745305736336499899632869928450465355707790024525507510986259683423888053991984414335995872001830374021055644786029933900417954364667031780220813486961542574146967497601773734237830135211689288650559137435267840574085641018873315357041908897938029952899165632680289204480045375777417877742320232698305264578192523804371573180803255633864082090767577650661027057369302433716717657869555203528122295855591424101212723840588985047591663321702213491422487649855879650967609320749766119893765422455418531346151382818540664024901702521136989004656202948581477949415249684707199793228302654024695685935872807231059989341917744822751404380122346484599726775911073939341027249680035793222810506817081049931532813218629511743012857212693870063133533858454134734275092668658752353899808565726883785788429212358663247902394021481869211220480043091926153888603544297329462378180126743315761046337726672936030131745283668874346454395812283592500420372339668863225867058134486322821019851601198189036843670673294080266378501593880167410643243024189468759553358436986887532970909950798008333349842612984284683749808083008114254145008352891174504951221897994274067401196722425196749441450680038255423546528569759050513813684357765221115428192285422091531527307600359508831216152446095015063313214219466927103651524775705209314190429212641440029887975847879600357813957267751584061111951152148822447734392918985086537742028674501746531147405168082428454513682157683129094062801813814486952701516923431547718397724126102330237657591620665119601711388536837829772452688495817374347410062672809437142217410351369079736480339763155952039395778904813304088445266764226349246984140745353139608970190094381590645795122788058311383426070310857548863193947610288494848425229524282532288590390665682949247008262563441289044269406542733511432300346537535669260781898848829684983063800178626879256255304478802649381795956403683674327547017372675130252817618221379242386146167261553463656340767686034903335732234783588263975909520744159940554209996889259665646908081625308941836842111179002875834232440206525807453684142969488272779342946295063446269443734732042427724731685802000202959636186872916172679530693811481618271531985587543971022257046462607661055921202895865728334383355390267049850442150142480346682380292669367847341094564225371242791054837889664012909011810558120747426618346078798007524802347360084045016189703608310953892195198924719726588659595949534532830717788827732090585963543378576878089849867046192943779324966388066208849355338970357393693797057476159672883609850092844325151277078650960238753456053249824609329987259042035953082658780541136536339132230280043020140749729990365307714747970778698479994813411518181995400431512940219867800722695441536605412826469502322633794031122509369541858743494213602468812749851342936061036336403069609288246224581319751881003979806738046018918273537296560841681493736696342640559478697601023514756630463916719260352427389136490667220097300560902162209897799831170138847164596872017674181216004314024178568421162435042280423034525977721955287318476978929655363843095210344388910752742931026930686796288793497563793896802277545416685651204385635955502355420814093780283978292540615671771201851436129806034338521682388110021749354681086888357734756887789193560223750342486008372031582082540679460953900634954274669597176724481275889229601458932804961003498984897926853066091610722317554071106855226399079245717064439019782080479437142688836992537441452175482916375719367918911728632887450919724947781580714732512859891867520133479272489400533976659550783965714631702679177069005716337144852333398151974377723325729312250283001221475552485135461463915311011164628920168585046140185848654200535801643103115681325043938765664025386968116878474427378130150692483958665825819368097727778367608430394392430462067734973814165956666639384337036296231205773685536289371051425172858080273107486087866913644830550214521605450296334479211208481390143851013375722848653425380859810896401834158290976770342695465734865792474007069176739638691036658263499798683692803638215539507227575043594374915420336465615253168136062136938992670647799399502436842203176160453098699561140346206656177854191675320778383278098303534187597508856404694942299718441763154359360717857993341094864681769319545545407821805540938144890487742392583778458842350119293618360935984688173273923805898259480208756787400307011093090731188711533390084285107766368141465128352943472447524010231131830405460084855726189044334253465966123464344215449570626531490605160607911491874709978207436117048010412495923929045336662389660694677867392450192980737677852696342685642696980643873900220675045285469522175166052157288771044704718547296863947915356905492585983050084436952315270986938134483841999813314424969749852794885064390352179606873862875171385397025447805085120165259242837808086007118242119733451825796828245115986481647483359848491853511605285553853607364588787124237578355582333200737709313957736461919242241299452424888494737931173655197145326870030696095729164758136694998321501384406284132725434292137718563977383823815318671112006188694540440522073570748500396349393508638443864768749274460223962497800532144852901313865207435883686578884637075937532562387819573030996120928515850717488216477253756784437259914066632302898194448905237070630775086513034725370749305465674202280824240912415436140030307610977216022776109732471496527465898386549479641771993735857800469733722753705636251467135652784327821387926650743015811097479252732924163644725447322778434006781285301071150198331438450739402982326775828185482913263606280878677852907360109846919314647378869916460219937851323850277468660609334299130705602234536257806117074070562827645368333846863831197211085915430837930092950001093881859168346949574843887886561897934558437392627827604909721968585935923577294623677573785526065535728744192054634683580324826281697390874990915569187947210555698256733763077067877994229717473256663499731075681945918784684795136509138330014882205210085631546217094149009499239257492971235084083381663440663566404960196342739219117498687448249901437236457745546794100091152564637937933590314567853202024619958753220816105437733555509407440920290779671431848918532540155298064252906884154419412414135111215036135955980028733399498530213706961246226124335592253625185479660466294040593336665341142216098162989750715075996685544007162963533234901121548677105965461589396794593309938781837919136815379980155865363444968688469688242794973359334629888929360999167268916131145173235360486002948406751606606527029021017415927662011118212440054553038060444217064697659344963027243265954028598927544245474886670936040317039802310826726271595099179312821988884371835319997100517574807325295443517452830328458078170789092743928525414767683645324181333243784655681596693750739295486209764950949731166397972443006622471495327120928807374695482744410230987211569663441672424431823546570241948724121097665149613762345078361622139647637399905761541386820485308307491317907202562821885611825854126610269910932254391230989183189353210809876798298765838800746294669334558630192021269778180095702628298732439164658567349985556301910798546540529958174225494709724626441768547330572189080615811883494176797266056968899380213958798522476639920678531384624628962920858748584038360945063913362456432608607176961307564512578538848472519339002011222954811400515357042652914438702944029488852548866212738200189993652413053117323672488956028716800453879842019168555531420784126594420937479640596830078965299924221597805398768340954590343961486151409069920114506941147823365429322605051038328927481250933902772106758209634993383006872469325513244147867800308279269639539271881351842232468525722443781143018683364565643826384672316453565579231090777409835294562972945004401557119929746592950872477133514466566221071998636430713595372761373247803825127270651654261662254577992002993848533113124812599568178739881263848221900604558134896837698978757818550394915884487030629980687090125921802518749805867197788356286421934399931502523923599130994029713630293051496919062160758886335608937509524515142423870655742245985602625896605093349816649286791248696539879165434651202481912410430318655348346726170365781608309421902005293429682696923281628944002685313948804889146407870100850003368866090635482296589703537994862130039294552711970864928276801905696183190370328110070179770820020704267365788546275420479040942284443891437795980256356421599032249123608688636602396682339122293324760755513383509865496957065267819963610003899269496713670548664368940210273855837878095731445142375629476446531613234992846316631264414468760068400356025025288621611254991135723043494369652237551006773484392298502921623238696225622334354431078956543973768616779885699580441869983448149533751568908140549842912462813376413634892966235234184789075690099572598904729527480881740536317820811809042511762385584575226149706895584215195200193675044681248612713731317831756220281939897287900927036430276047566860658068484567773926559181556143391680032174153129177182723006312319876141623908360561557415942840752297254122450718079518813081050396450568693449871298758651931095005063848653845782680830066881594256345296069269335169796358238297008864971049698700935728673235457122503873860681839836281794437003695157923484589975727571370581851859664990458194684493180982293765228251411967253928777809554533494257511464533141624735813989836993130158342942284940130326116757301927549158838476405473117015043376436478107426800683065622399435078889577206271683369611013361570444402931846881379156697597505665830034029032827143520032289098613202506027170902357161215029882542336485597999364583386850165361180655710010128015557988248115136615440964300910031256214664869294123340822609451275411913753549884622004810304406916299735453979592390820792367667374102430799038040849526132391466151910527970845569725115415234605459572613379383144662915742862542493625851068770198411515936728251935528737706685017039635103957187824259825217840623687903766754190580601553799895400096188667258044236223772680181308453468009720373177474812189176205062124095673165706440505392305395419707887162485897959685833412722652437589258074041545579434830677739588547248137437974337672782765295358154160088600834388009562806096461716149319475546060662144304432822112409323862780314164848927917064693894615314779574766179552118399987064380075233008230389713064517348379788968845457789332883756565064868908443613824584928623121194147390398850031265375817614107456858814683033029056859702572631233065784840786691948962965125934990125506726720270643072074903575724607548387904978414582589709636574370345364404383225214855681124530668855356139798099194762410654116056546098820282278627631105194632530954503222475950692117631054646222669162609946158512777047386803788971007728944023678222753783744235789413696612660258833027705665434965335210851892676132984417736303246523590799137318062932887258443530331472919783685207358393202233512189065309079516942325592768843778004906842443481788694943536612283266891156137542550909061653729873759478703680919797998245757436357783838729388662072142388359942699948184565741564158101244160918114049019763032234836529922620091142175239186430721226836202822630207775073980607088084059745732054042072936928512349100200492778157480386348333590533131403835863494141066588167921431008451066123812144167342376777796057750063172498600019532668749751128068764370105435780396881560290671891815847125543973874398501114722410221442433247772257462191154637740822305764857208903909953019750677654273264070149329996785066438939260141975845907606259120436091259227192230772427763961913546973745066061553970892285381159722390892571265927829789117641510604920199557521737760501541061792912573499813054523149579809549711275558454965207216478422394679416229924892639073543027055458413759138694165512606012791569712171355211646760975979554983493901347871207858818460702234934809830640638881323968639057390345288114050241864660723149908813427668147128399113131326442432337847852484042571809982567085835618521377246315966164124775714091906039146792453074912061671183729766808936355860592021237183695629616374977374691820875587851826908477427895057219029597743711315775870695992649045978837668408777001684948239698118323637464671968828522348394571226696805151052524281199093291508311045395279505549871785616118345230154857576858893313872819758925180600432390818465480418745758668735129201674667453735819717981730991770695255034852788611065267547579852172269431526851160534983998963927813183074946310691577297533641342181069510929895222820251971136435140181017849612205170291035534817997874468120793801769645111099381158712714480750291942457399567995055653981386184830969073359105809969155456957339422359379222662160157469921028837128706997113599951517855677503233963705007028604101245951953463165879627947005343264464897726187459824097018120403111609383347010666990583943888449467758628282475368315664106616700597073579187553320191787975129095763347296718287778952529888610522128292049605327112343720724041989922536162913997430576183990219484597884757805351581394453519357728910533284991843494436678855599438634293036780930504626441760928296519115470421274066535767878110496617443169456437344705356138972887052410663214257717687483687731825359855393756928858796752584897729790573828366810795548861373237656284428605471324591974983715395212023897612639006123683985985306211817712906154474421468783917482530673380056219793903509049770113819639289587407754896187652697278985831136109905456262120606099375444789210883267386308898888342668487617026058707172548004721948842005418740499589096178815210155365104149048837752378486371304963925650583492408955239019124026151656001714748460650122993421012458335634860674419117080436579641637296036307289161643817852575873683795137608381462393221224376648552149512634367116926180441851156710502834320631309771873531159087278316300760348389367715265785308920485126099571777033340322069497771061176248834309038496909281395365592179973339900701807552417452124695411238784024735235946851883039988188761292805786873450386248656084040764908678533618523247525770287450327035339758701231861843270733137952782563339877482431720225750733356370259938408361708464679877494946304358579466532671237970442750463739963736251340442884017289716990064033469910444436268724060198394509483540213136210875899611005520809572750797721691083571270992207139986100171065716557177059745814064273933546153187417072383648456555668515209850983410091496803044387470295299059942268229395327494912434260304282811871373461192578727867301624630469936797071246152689738764893944415987217103373230300115454861727990897010347756888831966701952912072148444457650578036945459933950985879358351880096174105145867234082001577937913699870141966715841473921559348623035585167426750240879796896254792147046939230015795701199569052653195164194928079665046685225558435928243554583305300918234664370425909931522822122714605047179498461583463514164933980171382774056117760970678543900498507777510492920366322461663688014252646669626754013700787562118918088930826287472371258676549369884087562822675247431454752390141908197014958951178601969679269449163255528249201534105479893504828890279180479874222678021060665091586138377912244216944981519639397391588870193956263227492748303841853550479206568925578243292669811590486640433479297850532900532375784689882626570449902661401040067041778480749254647978084090559965261709957326538959221121500848536711588310711992761449354159588836509202348628161328756676505370405255912494695357962539714881201276056729612207153504358890599754465530006963700257872788055765509582945628731202564873639691320051717084168403566198465816455920864497475242762009830022599762811571858175689773766689575167182939061451466474085725704021495454005657866727879313557655365211512663515975157855226374458909998092330821650702651805605692251657540943251803998251362255610166802767631202219629350896410849644939268670189950298940640139800826924680673073778843233389711180425389213768120786812352107373795927494395342522549932973031010556572877986163737865744826990274985262528387820736993009965661056020144003074640663721911913468001273757900137871054385223311603712921952751628496342708966250326472760530974642003114724138267172564278281257402233538415600456675396886437315432068377526688661008165358603914009313898022788722822734453665407386549443453474819300726208943329112191440918672469873078026590773000651179133189586997129085327314786691830887527214955589425566150901205025305544756586252525787311693821673763902933485454656633911235881473562834897905717733070132552019384558673634306537161860230010569745088830378329866379946130482056710088476595494895887719357206920186674057591384011017529282389775580105337618852010493825539235207610780446528113748680137948566396588635985497806701566271189784481691570775902465957272055035153116093480154874238219719245887155895074207771391381692627433848921289413021984618122776082841907630103885471237954961040142124436210501961204406834583442419135083924971629755007465947020523317311068754433933289114102083772881473376481616374255299541834822639101723933869036755996484759204760939885477049174767248279773001847679504297250584320012705768245801618718219588707742169759447738979742175177707056164527898044525447139166276568115518182606650313310986493172978287575485426530516542237593140104904015190107076413169695353773983529182841678800213380807506299718753748202360445298334483712946649860706184297571220718508390852467370109942528661389687722318040635238822316950351453544172231986769565133893140496751973584039654762900291035721220232161669541615260690511857281031116294983991192014833310029358996952288225473691701905170415311421589726308913383833424366018202174020984118811350855245149921415192137518963569337054433626511632248793782565835020374264539493459665872865565443919125268323090588188308307875540564976938684730092464408489983778935773322277639139553554325581470576524908192762279530635389940801413134244803606647307351673839573937728175821593083267520908315113749695435192564942788033159142273420152246482151954921142568722367292260973560875743705952521392723782445911077105551437661304244882114266122127785840099228966313491947040581097070684629261679422299323521955606632884770743921117013835347198387750239178256243459915877518156374646227271868979466572406740826065446390232884807831734982562476736493102490769630458263888635913542700805422777474975979197045591676919326366769554642665957915458127019386904262175620791685675740951139514571097228129022901374677685068327974493593138381497996923020701632089953481682757182390141595878974957763763912021903673851522310446230220816236294307723205301731982859514428683614226835696511960756786478714006214488099760480255941139871879970114095807453626532866401852579092185930966039576525315979623736925316408686918882025095237064320153741984732427982440874137988715831309927746975509531865538351644184993296075917547447881039698618215660706022600572041070440266232466678971719626006817502354091417981430357917485782703964119368880621134191739607289240802429479095497372601431744661196177218635780415494121688302190522841399649042206096461101536147803619408168124904910749137066216520194709190555235070230485193570602192767910033966050739841781946893469061566762404451274812700041450574021960372955328467957949162301884289982243904889227467208317724475186117553256201590034403228627475834242241430123052612211659306696511074668423739119493467129404397847821056582980770522390554981553862106754690324202712714111730303751281579154006299208434483236659585903950662466238352034732099281011723118815010503396877967711053500440326210296954382357065555852908726866962368631565507004930184821411454083644211604910422369342109056731563536558899648883209095177565680706905129894754967213456974345900907968553053851351448637508723096840366926857128619616190775273232886455537641765950050348547204776357201141440546277822725443614787929509880761364750277098419671574826616577810950487878048342868195231230153512646026572191178378873471719202984256291182318540399884085575653040453184564391051826903410001781859263008694304238526603304522346513008489861148309564464779340921592812831359687902442145863479583349426755374961578614226822291188809635529728318556432880054203159415467929496293623992975540226020445468664661351742492093976394243978914330762734336958674408584494981045076145733009841209627115964752293264344732358087555994870410875285392211141376656292002696124489233356896337861103587097923917311876799968832979571196498027306621614575627859376980743783098059070749421430155426170391089326407142215410999881290213487558650092954879162529540612786863771012710196251765497009801358928876657987740076985062762025757656894022803339211128285179125164452910604735620242029274857723709234379197861057798231820823308386031064802932410711100415415923076069994076507705843431025062266870203164986430034829154299074062975055580738860410954292887632973408958818213778576737318774805279076508915598873804526396651343795298161308575075850967416724662825742935537074001048871678964621951955695313954009634336627813169542780050926679344709021568331856971564238065800448360854353083748424055361645643573724293076257398278540202467921584494774551656164323455307747248372247726717578730462585281556274068326127234835778658740046605644509165245981191555782763725226443694668719589617922395281897434980945942482496712675033683409161463905781213411136632279392558910017836042825235441893150780744571496458083040345489610018446284827952474559155795962653539951108036730232281292865755896612350512509806631280887698834394355443393354643346513467918349845713244159429267327850761334801528183837852330508808257316537740174213670900818782382823158339738165404846488525373538745972746141638181805930000548813913367075709889425613859788464759296827712956891195383164943982651666750867633335439935720549137086178336954668903310492250497755710495549052921923684688860163614943308123486042000318012790399596879979876615074323384751291110603089429438599202571822671225667027355515912530812140812267706057293319341955310586073263512029711001913526372874508804097565581536502649545972241203438716833334555594394291054533207996852483188749570312269034556634337560015327861303558986966199807777896275570484699921369248201714836988072056376592695618230887526319421192907694907705794167542931171605580710588358530161462144449427942246959121818561621035455367191030268077187109853672995974588120039941133236738265515831823136456151830589158665602984766814573338031834878025184343204085417338176065772569980155150962945525063724226432500349540092612643781640818667316862447015527640263030480269417979033705190070339098559519574897642476182099114012796062999400231927711325253402438500659263781671190943581829143377973558603804726124478812616292179987702634011925709289411239354804568273215090526486831468005434959666618679401589793087420977357180543098079613987281031934308828996236924392695002429453507544511043964177400080278176251163256944648546679530538651819723324570743276788226776431526189475152709303974457598249972949452332826571298085031677718849974192226894678773766431165007556301682677811766661276895184362500795679862799646134865244571070699005056676751349661176391188120125778105039460053790488222851090085862663381683324178861964614261453101792800203995968895299298701497019270479794112102027698136133159222408095936663179694386509014576941036046506738658084215426410170702414294920531477586408046901772404051888510770415386382483428339241755023715659023671525567396880003662420466362696498985399950435870267038534928868379529534024468976557859820598517654272308323912766145552038938075638523558488923405050819186267150200352595267078816212036564625057571654192514850535461391076278666894177492988374342870141241044322742298157774708233995589277235014472770774406764581672984587538990302593056951437045389519630356152573601059482319344834200816401342751007671197738812602975382704792081671420182821737014935058778589342232759857175398624200133621772270625951909599941584979157844589907343324624210510819108893034020243460819441473717606024118913226594089406572240528006489779798666487449799018674386595273265329610259736442470236793637267215885942904019602379085894270297692692912901539269153893292080682932387975840449872468182165076593405891088172148001628699037812944782541877873506263074477796864881756375092707658707654967212610791584261289338964365501542629832878724476891877791876943350816099334668346860386830929863831305138787647680700583326749000765851217011488503066454135901975677002180379226360352897999560734384739786294236726531154205004569265587258920482122898280143216038389792337378479075025983450680833527504415008110320267264712981421090171446264305772782197429820778812186069702502008397858910206729520153186007344814467071124080889463473926072844999264175283290251869554739419424937598093933075004267145863271632076936942814571030557695819213464774590141404446882691631843699723483843310125646372800644156293677439055975816158739230823633074105856122519440692506264422287354592985727693593612012575097067352267415873567339967133346825493288172621308302128003233224395812982187684499552492356678671312385979542203440801919297956509915255149662243724095285127312493032423247509436301281100165140911954206671762631348939090993490287066841925901309219090254958390498828181296891718730860399864175074990725611615800545072187323908367922157459298423543990347568689098213936480123787156600579849718436321617290180520770052824697286251232137005907355664195333059177099169180765136458107163263000409141175849899442805515754424629204717866946970920722771650919809667994796885600710545052534010797596307630684220158953645271499366376716471947432218236742341305534478457774338285714102906428487369452169353408184948554118040726865750077908515469699627844955890515235474796230361071257864851881275773075245545352680378377634126858499155263622759989792242005330038493663973504040455468644184778704792371681360220724219851926280712638126947555639985361951336290082152384798196565135395100828214944519267561128786522174668880567409951348117515937571096694938791886194889632846907277749430929795723084284175003576453451685983605401248663759679229435298219706518435615745573989001224849535851947841109373961454261226236977794742184565563803937497556469414718926092139673321790801627322335962394370591722003350526020839346868159630733752693766753320668891136348901639530525142961727825461020517205572130775664249248737998259987909596294414342836721640878554237773276705270138644891690853999437293264140407685332064780759211096778930879347944192190285156065573987363921205117902001158864688164578315707907219990743083675747311734150552790189292257652038074641550759896273441074633194882212721155210826336224804389601314819635173043179074448436130760139931560705406608617655662368779153963284965954421998897649451867225869066965938018308155485721860902103664312442630321982275454445676249244012582863394872792435674967010950936433147879581981583244929754558659605269942522261274159059148371803573271701940731050120466299012820409057213506768634486874772277956415241480050954272612196441257032952443634230921789473062871798487377695916604666263483341122768694553304971822560175580294237476926945966062433418666495742949986278146529776394099408685882907966296368620789725818651760370330862810118650369001205402549629318737316620707188401175945050933832829952724207665686735513188850331112415531314372204913031589688232473511546561131170378277568273539596083858979048015319078295365860693742486086482205495119377043009530816386138700349407224761255337657929149887241870597480011277723717148494726992339292749750727313170489929569373210022990649508059213675917173121521057472838296346660826762110592689092944876839310077114071745336498899538546739307423392951224343869363052993473360543132010324664866201685629093024892741544979050839829827908104829101753652906774945283008156873961672640476930926915183718636173133163702142501758821323566088782766472852966089934121477077981579850143583322593849956746269600522883388236692955704380410178609603450899497034122843647923593276998148293640826525998509466554436466664074385067431968840193186927110265555240683587432239297121816628580954444601719342271657886126259534432955375134674770305062592453682730730677511042166263895827907249720249845525980009367294479844800200231242650830365620943272167590847811897011783944815113496569063712089468673619749727461506961393924405183551852892656516065450982739829112186234292380214389135135604518115236744716436887770276457907559989188349065961181173981001539175038764338105677200826374504473661847557036112386046132199942498509375145415225085992301853620527792566912275818851628746710640009795534645409084290617827536612357080342513527059200844867753136225965436599242822612479357295710921392271675585182607223960383647953755724378504616004387898608361314043374851847188461632370537322542391214394794416922855170136476716101987616874868926808402909035147714509352820520510645010492339309805767116963842426558273923273397962983799804484079976335419920815583931793699678486714741021673671067641223111407541932666515802180021509867852477409225664120468276362321552173132720739204870026324876189999376398357713579010664566563199824916341868497624703978119907744779622934392918526586442215236322375774468537908052137400991598805102154997707868108332157957653456319677772190897791204228702123220635753475755615029288323018988276664133127363251247287509321669962073290555958562648020760122239758713484142884029662496426200130022797075365423979020497776527527507821187793758145706326713006142227637913869326136946387847401188246409848928476992905877048301342951085054567512048020951582852493960693314826334049263455861134266077533099632187983625081725572026172939624092792354999413928114579891990133852238534243752561218874357717769180631363875689788662987518670395868603132749751101496982226227136332788382373458297741631186879448258621032500698328474084937660344421277864648630254152515809291281835842259555156731524772135087445833400363248182814321198861627941745316379326229964762568320579079356863183105162801065927716653543683307529093660337316738096892445882731420878203869211451791039643734074227248358915219795313729317980918016672806657407352878393529188538187176353686121227549042888816469526445592874188357749470359997612679908668323854633055001302526666360659734368083397676391350053467218134723370984731339464940495533181078337704796385628046425059301242841224622980019234212604515000969551912270016920257065849208959213771673300203291049179578529850611745320815667368535409215090817958372067000007237985037495670620811624028407358293931844974349241443577974049166400583154894263510005424537053195219267671778019103480125126508498059970185811518907947594195557392943416547754846646763710855520466452135515126648601028157916824103066443824790168723987398425886094610701218109911013002365512369173945699804512001620086856381647408858131099656572939589813470314295119230452735027707518919177188480258821866389332015272951373427801617134105108125008988746221056694251765989079116965129900276068890671476177890662704030636393983722617124365956804082265131090054830386415020295248139481418056575575752158001898779723822892845236155700595803608497674827802778127253539356309367164742479661836818172842975850205552203472848657012498623493794220550261725279996028874134722546079482056311290453791743731270192830132075059891389593309685645055026633080605957948523300325428319481088921736688576132220847287845466001860513403204292407136932985657830241662767616930609739141046308425842451750054608130470128246990831690341677403920173458492674067091373201379875241899960561887900843354448428183930436030665546827440801216609181368237865700489095900438117799802463172123953830007627674208689601625183759280562804101396391204252336342507991532722064373672557409615596742747499190132873231191225415035460154205073376591526993921072675598829833490575801932745624592525773149054140740122445160655745804508345080267743649902001577632529798525823892764711397758913035797682442564228469545186661965273576594197553326643566679957669354317106113359400521976397456305730730467545740461692252189297231444363609609162527425258608447940557440647970997492741026383193412664400042366804177619939058057782017352949984708201778599601885221485929975861671620423063397438078979861237134956918075802536893793040522008536054169924532886291926448771098123346969437338453655160024329544350390710566910967408766135384478500876132665006075705951535565575176526799861608555366951041644848522261739689917214919125590427432900559164330547432656382607466622574691197695597463354618486873808097617631087302177295938131062436531987505477590064145615827888949563731334473999978770479121614147795615113368877487839789030261606241565169507274375232815810784289869377523448469441961154682514739228019680388019716554541858153723327336210892138377248483995819383887685852825973866775060361455861527858686237739662642533328186847587156403382761945730302660123728897152052377359755902406931485309118144786884724754029036520329216798899937439809299815316392593255194231499847803862460386232174156741163701179242475990180092957784078589423186731391714630721689285276042683550598844820082848280917228672834297990213157858994768835665063113748602344119557817341503385386398371601184048433245557390443757524614071969585477252923826922034301149525812606642786241242209341195334595185032310610813636396457942742460507156062362673104208536141361831887362806499733450880135873289948502960698574993125291220609465854473413107329313644029282956086713956626457074305590522658880841470919070164117571866930081666475522813989674615112029210258418271994540188234119361351009707409163506400128632607330700400114731927033088012763243326204176721384867126111099619146531485619234413488467425678118089353571489971890601468641615661113710751697709100874925740372790420189359930081875819491285329821991409444723992481955365100421839828858588375249786053720469906241191877892841829170226765436818435729400495511559649881718609752783060572765819985107739125806841855436662581281633502917822145132179286667541916555478402317915128733766428648127360423725092722975427263895815132970389999091326944141210666802978630925064514320200715694528012807789444778380556802643245614446451396649693684112911774122942615681527192607417657503670649868708351870838729516569154426181945424994944776561799114744095157304350142646083186966522347596282921279944487386310257980668732115201130613266829589915429861380619899285257793370979370306940158871355855715988893509397400223603490836296846851851544283020948188130829587566848050763388342694192044378902606979484916195325854481652707638369587472758082951056324275985346417705830655704564740605239362839172760361317525166139710664378089071848929055362014345809474352944136037436469201743273299018880499441051401229109816944724108773127288800332755344089536559108037400042971268931160754876628961413955928989317456999754610078312894204460610229942698317480209690897449944320416915000607415114887498120682708244252092236997104274747445161573516046663138726352765012045817921991704765237504754465566280934086076846245120231565828190739579514595929697054333307433516173623083060485763610704565337089911864950359123500363997501519571887154325914750948226983681665239362273873190889332806165753288977955477515578094387687306681420679774931537795387352253060831316205581013219892770134754804688732580257333236213435941168200637984658144270259017135729615071882033999958321154293830046943645886080681267707661007610615106337628511631308784649427116827061922778859953494843333242227078881584041744827901836129411907355393610927228893362836558105813010887843969457192879654031045391653475069273269732846964014284115175753074882198875140568932454686888631574862847671637075297781560132543759029092366350939350736767805278976299161794321578623462657072000000779370731373058650662221296979373415174007471353143641133122054506444596820776107667420329277321930978443795829247011674151887567358115652213734899742813994788302219047943716847364668742587883670381076943712754574243328300435950948028897668446607871278494098959842246023387072769089076902924117258828055651271519489115211677707764144922678358295890023193343079979689820200182591977069405780611321234528211277434124476688195911097391245698828409518929674596963240561722528162445648774436191771565251959411410163507831001321424061015159262795986846988411800790807024186930964672593519211899394373524325974639349102292417256605826388564140089431821082257120188436106157348576968729753029030192673254697078335469106556194350808680383411880318902420122480478584260649172287204917127055765857921416022295463561525208535724500320699910524512770469382338268212556750373102809976459095335933453524512069765750742173977858534643680522009202793288166938285424892938628266363757872557295962995896434209452043363143896517875028549119031435832950471120419758392525770275229294185382084420257644591204985995941525793282239455233061001725015312698369745856060691530716095426986834689570992331975662968885114272039715172761749571578605493907425819390194552749385945266223668086119219448826809142820285357622578379448181756358523709621757967432292861935122180958232424645209824581527619727995610562215959212127007454806607148386102775658906821943482112122239523423238633109094305425167094068094403271366050819871719998061238072863880515120807163799784262405008231844370627100981117607434149080802087054736158525935404635884120462166065233925361686816071429255383456460718690026350237093744848809960253634663883479573071978247498234111866187771954343474410881104022998097024425772754574121573466470126129402636084999197214879233423124741096449753910557240453329209234710696366102075769302646440407616394374055342401261339686250737586694826826478530440647754875395781968424594864377362327236204779680074567170457500957163037360413828879035425630554128440522422226853857958917200498086341630538337879887513644260327913685563604639943947473631281563817602318350365368410437759379160581162676623371964993747575978052396563425100049204393153908996632384158139714964564673091668891040919932885830711378850395910467339998671686547448924648385648584055898827393802608707426171557605188570199791548333712043886141674036230917895410459536847215494014135155061170067034750614278605348036234741519627812303751178136053884593944950833400805324199347869206195336883983688525276215711560614472410901367263676737135423744634357099282388971907850576544603633462573700686288557668288008812609422512117938587825945199872947105011103970995643298808082507460623433476597845292038190406333017401026404096661689969404972324834528048149993270033491085958646994073524530679983647306123953324777522409916679102765615868659447333246929034370969582250932707040123284511664675946213254303991296672690953018917841861353106213840623240721251977162265027797576631433597189489804017604685521080296318783810511461465324399615929450121210104352553729739634029591632692748826166243856532785849725895811641309659577218551081892237396383711230274964807082070694775061944042100788785831127389177096153445212365520570593858378021487631801277123398069433754200199012172279944736546901112563747200451860392090739864305716346310752028332733071685920984612611517021076831285989710257894902284173986731867233074846507439188366008410391769472881925895489987699999502248964539356640785358062512945447492410085334677818431832268595944218592765753731086763493806774008395994581216472865840989417009605667400246268426882611012697393237569439429126525745969765405192779130330062095032168251884003573449736876396147627948253804654042141339428106287728439741481168189454578668833046140617852058225476158641826817189256062854769371750247403441481603376013198233167122563386354367262767426137618946190914930683933373191654094821078011835605293121629190304373815795619615095873742484491885599808771101659284583000048350517889050766608228860682479499226417000868792992387230582431780584795081384797020525633698425243328583462692871658113773714416070776228368764632622527730666762717907363867909624419378469202743811489704777392431998229135529125583877639904602625534549937105741614520011155978684328422042740223233061273218630852847658285701677400762706203608767585289496661730492266272281690523890933461892817180281281720669732539367978271186184988740286879659607019554591208895814162767187611660036427020381775512745044553129793660083116157871893842692046430514027145827065413743483722160613047996931441743562576094099233378226222316683957475987206287890241852389310661147953402839405116013265412773891219383016407360204902061152569304289989836967169872167185935053140803349933037921472223182169862912487625682187209566122732914147265260575725626642784159221780310567098693173759123860246324255670165330809166700497018365011725589467401364586079073827511669030683045388593575018830852652987039446064791605511972258654284002387399831473817354649984635945043352186233023286454493529103776119282018953839755840014616689745114085021468129921043337567024896003720229542308571356896536034156805252469170269158673187347767689154942561410596711006258007878066598875919984648476661649805719299145576881491081381546818578959908870458726492865533994318714001359710080072236065983729625989854070984536598522312515948386197451190183143637984010049797875833849839016245460709361303299817874921202988723841092717222293887558631995550841754721021467811498183148485589166784151513350578126392410771895188840199268397670704371761638092173288669786428195240315118657208670489319327473421218089337165058208407237326017352531441994612817553890157752390812875227655032781915506469203258107443427554703961148947111445949192111216449586805062016122225146534920499326293407782351786978530004487541560659081449822935368230211657165488023860410010019425089807377988842214846866261628414958953065022731694133734960956449187668384872783791682353606315089598766063914143050552009815303935835034330871253108308743078026172395790631909857069099603314881486019586858784685289410489607529126074341251349594066833178291359723835695186743312077639759606122094518451765067019352613238996311172072185895053743477773105619281243086704240200248514576390625385451420153479961970026858672723936561084144799655524145247813818992885406821347079334576304628509718584749204033978555848604683311012019031577230648713827836618186223122385331508382198652434039758731803581508526069117647463518455471095835545713552674189464200107613064062384221654963175524768991907045932504951475120756409523349707310128505489154783377541549286837883952450946745397510079712271163337307608632077819196714007182230789652849116376576995642732238686447730872796980079861855610642736340450096915384488035817626347473095133395897265427359332321918975814983230550611308426474493485770883918769085944270258299582270652566785655888952271659079112926333841536289896619149006079577116384354926833707781716786963374258681706076140889802609691656614273882006024082858250329425989948005257822790401519802576215090070340031821989819978221794771076730227645692716219285070655612719239738581350507213616495951141423332624200150481270316876446709242828788176174318846686933118829523931478318754933888304078543064757203280579162939889104241684342448120691286774369805751445365100645884572654219991114215865726539615231817963209218192683069165958148767530158091329053503965491475234815243720572562100133107602617732654695162624075169169969863276557591868701803274954088299870830362334574112535897795342660224009438206035178326781936569032411819863460446535301702835857209307362072069020288940130945152184821845488108033271732972478501417809471587911276707209615536471242308511454823978092988501352552216997224107094038171140557006835526086649392034390161585423353001352717790638589563181755768884203840258673164838827829653816520547753751901495730761444942810228749570232077530747052503724461990800755670770976117532068903163596543849835926738553391781075451665643450688138750641035672331076576697003948701244212798534097381394654507885968576601096844741825765651639124876172870671983289409239218017438299715563588718471056782103164168051060220940521822304145546363058810886340314805947058999593211983249077562610243650449655726514932330527311039620406763858889748810083246224636575004564396483633619441182366355784599149983375580498697959119393597613367094749427254725831277969708010710829104890983522664242659505235894975868572759140284547622088980911099062419016409907807718042993181032959126480920685835920536533045077680352903666319465505089339609261417859612351905291611627802778754018078960795204521687220623756649422815356009657171063500596375315852741726232976039203031625802494825032621163079845743029376959093655960363874182795918051396692601052395161373493545840553180395097185834842054152257614885894180235063809412516071515373989656573410271954065702221776549338885808603368673005519951296692726034059292377197935811443947487778957219840199126213933482712699738996578428855391540230617387605556722373684669132317986220125548395717932774908309173342835182179135945412804849210750513541674935979364196564164361605049156737071092416903035865404788232789447823707109634222163271148262053589240341694054187878789353952801496554600875763442304276036429797698332847843093509628232358659562681778930258742347364481151735045421718377560157937443969049296960397553721552280120622160059070805864236262879933601369150146415108642567651943141129138205137376881752403022527236560136979251715073562988114243476696067865121667314154635472261618242868019217168732258187838151123544485920020662581936025007003918540108708891257323905980896995007050735384996202945091510205529089747652723550026348168744679173125191015407258345044100558673573638004764410359503377110551843336695233581871454417695329680057459981570526746252262574179220901875371367903817947336048730215487135903426693986669487784755379266957888846216206741339190627622920789897487088268690601331652515425655075100540295533823286153961124593494660134246139154710183672850739567174523547901472505654093735583352542484917661640759464406435711295981497661809274454871105190464076572298912172274849625922576987056570904296890739475981858314860281349387449777650324353781572369723400824114942602695495700429221749005483023424007867077631125653878969011064577194168829510420238492608004042268437486432886756463055080471124467106194453311995069764970298372078705224766580426189035670334252169293016969575702015623609737435244726567976424573356678187732808631589278705920022090330459241344010392154113457981707058945420356876334623926493422306766246358891395189683234693275483073500266607792186320882868389372646460306810653000976108413659897911998355064724112384803159350559477937977213656345827718717716002838241634561554221160786922568716639728726623787375140150487025702117298189496586179278872681709679487918361682363516158656675656248142149849645830685595258673714286043946857208835672801236158842661640832226679022374909992143299297376894342542722816277465025893622875909356061660133503094942052891573297455291779014363086600736997527315510819392992489308657697157664300353988615100561046259773696870540130980597134835032016354997979531420781314570079961084804168382533393831560232521386995911023756790038812361054677542281353157680413517889274917190343677346965525068887063606185705564064039913701818270576225177444266258957890658111562157261324912838242448483523989281760919787373967525670508558085695444612071654286938540239917137912013578106911279453620039655148142960035381115823771941323267256695251280800291778278965853301904141125383542555987625537805787044524180369757624693030757656126248296347970872765825177101447995178699120487345056227921517100924536198336767757414682722511982688382448805095891733028306381442268565572032541771556551903617538758997774674289783324943320966158237045599505294434818881124679853840718909415369782516928571027682444056899245930257778561801535196083774948437387327119824841976644389675981042655040745363146647358701423469504583601310324930864997850287911877040524918242086399154076715531759914012265336301106498225137890056164121772531426131662202436753275827378196294882015369144448873014428333166824423745277014019569113697588522188464640262262076504587274156788174817247678921873819070808879676432525308674516129086852346655789487392083889688279531683556180112472850872810484985932784167236318468990383410800844770023346847315370171243757777202118187963639118176866941518831017427437434092298494149952721969921527889169824367441527252427563863276221202971381902220518558738632022497966857385903560478379118435230463884066173578959542363671136468938668719518001293904261690957955007134979125042499467823613267886087926861415568034559847490680836484671312520303826118933717710660638436642722254004481272981000238381576076408817643620229232532694775814377473860928653092053087127587720832889927180541253360239797266155451643464859037353140262874865678329744350069618376865733693048904885079532508142564739977366942868286688480654031017524017073734472567939468459109534512097181972532566157244992970761357873571590923200991686190410640083642047583169686167843139699140421402616786428092246309606558790413495612017543545833274667542309581649058792421203267155194489120074268953710782867322070779026798933936833445086188016559287574330908823974287604535347344377568603876660310366047286244224464319507658936563786812205696411412240797872965207418264325264317533542701934484467708159673195731185217539897428321480418695127643932877611311293703666714507246495043890531930954583186576248667285008067395499612993363646208757936903940341898555769964239141802779820533613707525790310619530998476145738652322696610277656005407514870858032060570159170593167876851122883147946940325838738542277956115087966505154814088909613433711317653412889812248724521239153132939155426930946966695191905602154239788070717747419643864593126545314163363888641073060646170964438979316134040779896533137999641586766958019852243070892768612313845876914441372699239474868188911750183541593343302840432875711267822612435580517407057452481283826996090737857150490616786381730150558700953753439150573706603643599031064873086109886021819137064430433501830048357421664034516188672915154888088342086767401886892084065121465590100783297130661345729657648126196715091621630412303412501914761511621262010107528874907343722279723712688454769311460424855973109258879242954577864267936211179762612200634204506240815675634634568291233787039278160891656349001122883032311685605112272035249918397455636345587143520710380425915756453759937454871457926711608108901502230794533845470659735146773839655751510950939618383121548406375479008590549141099743367082665995556576999948245519723630746336110756993784868514847691619420444404691679166012555297098234488893723559141087310294976126667038460470983722004082722290861389939774925720072529580806236933148880679521364988006763992576564081071023035309420364328640203647634436893455038617681700688944134354067901227129647408766018398155948527394150300618703331626839472873134307852868572032699863338346158359799465636517144682856199193529138930082664219206466909917742557301079234357653131687328618439101728644987677589474733044872477827445437626527103058164880812159838225961134647596494076367724478982868301314897362318135077372628426916729055105183543180993991462039661396077436450573417978273222761691422742312616480318550504197147557533511411816466946692944830294222586371297042616724393960910242013916954658668294503040708205496398500191698583886994248041869436045657441179944842173755579604180104822177488018419519847593677084572317079623644588121343211196488094206997837628472143631295783393115839211882111217555719899666403357038857753968873128223968052291880376351883459708373147765114368647377228983562483779058018738298930105559984697948722370310662839270776363318579943805702059083439306078245961577487997973380580709643946198802827287350706520368785085402206573954259791555505726033217699228380259243110121272160875800774732384699041992996869937981894398118344856473419256308799506689903692616921021757749082329237542132776341181267130160358244411975337673277503035921358865337439701678731377404292675773099459402106142569273700485738599749374632996807868047760641790273002323940322806239238384053235357840483942012942056500516538293811264630075518986163783326540828943152964344256792897764031988806782442234961231996504024607924608814262463432256588040532197848854417016893778628249723409455848115001562208330209426834990470038743239110563140349238091667011318912707626253593607814320145059283890859049578097806416599752598474886006751848531099385010103952775666088373394505326930738086247030758986682950446196707628844308355133826958479416990713961286336533664389640248265006139135984688731519146637565422558236713747932991770784969532385854750519901409115214159276219506474211722584490798428891283357165650771934943425533355125022145937393834166601133698202461473253308749203706838392415034064514046900740732530114280389442964620859073572889937635740210131060426525764991280817806637338459763092325262810526285949095864442854259157598817773620490179828511381914421170355554813940392508362385692536001925775200619134463000484293876062479632874910571435199062376621201787010427479329759585443944443840048004452222777991377663160080083616449911919717036110921323162518537445774233577501221618257672984062725168050269925231422928702831495084603993639099520059400380359633961241903285804605223150356541891392113331007777440738062757462159076926989388053231536710911214686338433250308241756559078344729124491048174993403109979913089989987150203476058857422545709541264729113168509113761715597962840851373609319913053781166283297193073939976679445940448465271345865769161708272713687162100305324321202030182631565910463890012645055197396938037975695274796288046858492678494590681810712714856962719919862986689896501465566212745881453555747317064709990924238619849447209900671612766614495902508464309567313273914577901236783229966687334918010571796067285551275458334620570641949145610350985455964641422141413983918472160811804561378660838627907752112429798239650649932162860372601443814158874194923512664000184771536050223517816959876667603928733146642750508004062198133441852803864175887238055438769554680518720099812932080568698093574178393986086322467004107821016535766308272213240432343110845060463396807945834240777940313160168630929386947724095401133859798911267434893410908623481923681416314679323554330263408462676039932532782972347416714220939798525013443402287885959892644723534196945721823579018486400133827200200135773428278603437788550841346033862817052547123167850715622063541373157379435261135990973323447357985516235342583445208417322733592102159540853618183689130706766112763686690475556325743854084064867371850914455133380125227252191111289056287142812191281413043844999177840337176089535897943575874374735714477154836251976251069706877390508277204872900481027229606515507929587077470264185478130613686735945293444471870964075528971428478722008886421483848483859671146206381166934444916970443076632931883636745752457968179825667324000804993086434374627822689343481516864050684500127439545000536285662176709142878765188612969061303771112416262596368095562093996929292768762446004549915963701757306073656667223594160150003384202009316623453738848034198733039315377604212054545647889411886548794299062542663454224535249270344469849939945847922250015405553180700565359725887449480308996500032634195538554919955587021406985304064532937789382567262465177052226871617848963048256585483385978088937163039973905566294895709601525639967043402753253012309412406600654881076574736377791921955010598991729944293203702438533981667495585574214336536009759278636391514315840491273502539400184040635216451758210291572499839895125063022976684145009326393206568647178543480617799746507123671827923056807685909329528443156048675111293208034249233224866627914154005875898507944171583269661653282876081666840872783265484275934245742025147272616084887960131635498928483089831589341436026652227686532970556408968752255231981187638380455028158347711778799810426854312204760101832073059924186797591810942988156053954563517349666224249985255528693006721160462752491046598410523731008178991170012204686792250826467006644472401396825167560666517750369508780616405208525567231625229894195999797254668570596809180561758680298551839055966173280976476427314124716920884386938893531300460842466136265033223876091595404030931643618544366680056720209944976990564221378812756924507395030060983919810381693453780477494881174772213312537527998249147439394884378899992606189775010782280611731198439573607237737658609377071866193456163540411467862398017017075075894135024262198702885794915888555747827272737246035133773404459745050682761210439133469830926682736462396396678486782899727187106230727666154254932692228022707888951513972121867258089148814620588783010526929042181023116373560033825185887745272488268133333296638030403690308470342251618495888901306609391111967922399988082120225305440108045431409049054534859617146291481184927721700727916072126321599155273122918108057486015368936241253954395098089851287205528501268387246527018166142800578026032759305473572256186123884755941705570204136216812633834393467249263459501352159964005009255369113445464480741273928717778676529322638365404867619823464737767827194003896542071694445968673940171535915749339114899795285854038477146363722846775333992036852686579025009519912866693455305425911753729404711751885710959500811114459629021422000923212700286327619512133135709848240923168248091869344089425228978958878192542481766144001638619532117157911630581347806962832934507311458341507588562758329650378689268747368114094492653913448025293075578055368097304943911573234130927120756488444005476416118149580276828945355689871362750597196580865152961878672583904688090723502013742563989628150477262369072764135542641424123561410354946349465691272690933015662684605967827149153047594102004682071935983754466281307061578789080857841127713424496271328079172258956901613605404389631029330007486650232589555239413275113145284462393348104409776033204918414187072151566365835571405881861987243785967922529698251157065276899499826625556353522248711865542874612617276536358096298862821907440508745291321079174424130288922392576465258235664247097462989765373253762359616832286696133051519306615279867666834859762804130997197407996612353211412451422487209216632535387480544132853654514036963559882765871593100573735448249472425028000828744691259198535712938209117818210595190531590635383400231570867481687456338046330697505712345856952926809500431120948056305366671030563689215236414623054468180333465936409280796148185242831840068427984392580470278248449175169928081450089798159370906270753668343283932715178548587865296732251404069387414054160083436402198241809819494050055984237283644244445609361970962380927902014312988753168703816426228281346787029936013854086974975881420982200881625683104498454133351387391259224686876154894975125652748557301291276184742545914443524844500728981634699927467533808200299801612495737779685185202849748704587791960462845527011103077256403960804735706302706309467296424173882676353262816441761678840561632644762072160319343171033924220897211741401114040784213632474728305648683880526741385326902878197991770086110988997818151997612297793311943343821297160204226806207905024654574912572315545170706574088301791354368939396945499246322830898675367473639459855479628210408515090218304462893613181012599958756900424258738525637212415519159677779163503760865141492820308375379653943510579408693048667242557945391269466232738466406975009231756335922314449085601677826970863626386325983989687676175692915771138087579211682942432504607033702026768854305806339480231949636627970184590988168229163442142673815456280217766672962349037822665331103330880537751644494107930887173167142261889867130754972075534291517772211479083776082215251869376065590434985991537898061534984483780373025603757211352794044395919231116948630111049245895846798961817540651942958158526205160408829563468984553250464607631540403125630709112236527183306646749549199155264499299937339582931616557215923255080396381390541293874773886459491728879509059697368154071669686565369669508580003029171442375280024571122745706040412087432756782333260201714038231124118605252493724422874786237253579044354527121747575595101733741691133856774038667091894568648902420850681583811859076809994633261126184691790442964080517885739358782254603773597576180227702903510518578153348452667654937014288929350152722929173689897024456556245958621952997303086942972874666135483779456047124674998377142591468450458569670721284591807039540447236844658245352079843743407556572303903638734697194667580271675056669713349640907097767990708660204115395131311448522610927834455449320892955126262804715271370880713431743778748227731763250193712877313971464840945256340660325189073214897790628669302533868890347298811004038511241412277411556039370758670472532445318723267304368792657659751249742776349588551274446989815831989763170366168960423427743298705733046552038305602238194133570409135661533815630407580153372611386601040523508111490187155900179776992528368611149985416433251800134782208383070413925928731907385867947645142418175874404325819001254142239842251594326054583481691639825165954217302035114877343288350371780217113555127862068175906495695921201081447737105659606493191109354089669139731448439696914024286924661264985534676272166975506225739343406383164921055566029427952841481362396422706043081644108736301221055539505808175323910374228758834221385426064288094765826921246402067337212518680582402953352966557851683629531397507015388460147269469685521619398448904004179615448183395666712749955288886717561356796035845650408931030278464270645638839132451882077823543705724461511237230197448220221224966845288069293328395482273055263428279675352615010678965175878455513260197439170936615716136462155168455237122784914471631521716501380674538033784893543601022244789911424794804532987435111895442548144101879788863814984012702856262405254252672791519612999083413185608536041915757729994230947217525317106583447174520208109345038766145929455400741251274487036566812066188139441589302215400600965159277406811236255151778630176751557689765782547435538089526435704733255960783424219535136259811244865154489514836205574621684038775859094901069966231707855833682561427669530354479963423659804723485928949836869528030665498248598990706766546122919984071608217849097100387105821148403258829656541804702590542877859397644908016470598995811530676486997583004197653293018264641749593781883140944783458376257575154760781060286759702740556831036042374607363372083062922634221476024504543461366712308820523678171157426582567648574844684300490437713319354959239257439424940189256853825287354836025883458401966095794584826089656652581871014994206234986313004674478273637055248217728666412811826596598319526987014491648076939924795712220562947020248156776883249794781165251766470629617290738494031782708626106532492273893816364081280997549624006319341508145944333896527385325662925763092325013583475240486865598977861348687904344670132776369200371861233721798333485997976728181158371037657241900997435934558577560388925827354568466656881127258705864247187087026797132537225275985682273184619514565517694374081983391269884837045138765532329749532616702062355217134190280418885848929166397400273938664599167228844798180071537555686278793331492887733932985723416065298234042653297598078869533198712667866003063198557413054622670426166910066410698395060773498999596144708620469968251300220130067397987089949714369121604433724133582404996262828550260422209178068566227623953002882271213987983604454121949901399766433194190207302706484290944805105581258602932681155474161592378108150395371115493678471733399748009414366510269770306819200929699759930732212807216192456747632805869876094506388749520170593921445652820205582879925626556976598158152990112092849861822739512135061199379558884672907029548427017045678399180914264285634051401300352520249824504459148347352126052968663805313339172844310601480210638632939336675509419617962027016824101085316079576507970456772842174258458470289599164017467248072693591184604009453120243481381794621881116566045008625482297722785124854030705524886432167681221189382841006446709288741049759242821707450766790111975107905395643622645477231762582222473907118462180710138208036438642668757130157347903783744298874336747134706667414766210590125918179296328960045834812764724484617639038981484400978165424957243723864081261787632427913873110128198459733071336442997971142300367767227090391862922587386887688085720711154699260035256249864847949931012206922189790080492970207952456713815836723338361181606609437326226937709087131878419500164262372656508021427190045798924793234073717385435555513840825114481999456971807055627706074991268311176957583656762319754057537688843780491738782560834575116847658429536245032781321363678050010503711353481423931271065988325901518618392174906696530530574995681929606960238853925911594460725412999185435212597959470496122524603836996546886054598033839081205505130597501909176911939480764251284330419771697447488063346250558800139100457588086535061855178136809794926375393397871194710260557131319549819683814288581900951790242339812764424878155085861998684064715591404157693547365555200687486996879981469405842505694645540362618142707525856976400677135299455283288185000441013531345489003624368705049661969431091793837609098451959389182149249503375796731017559755159372195959267191831594954474204078871956423466135205843453619689292596108819182601193394325292712257652698043768697414960270719179972160709455393690661607371359059998906978217107935004454239219775407778353548329023809799801109211097070149590125153644453703002212206127600770479926967046740001721898777607248352087836926544524064508044118797919107515586305727327144762852442573096711998970754398013155516979229283686803352791741560472870644485009273757880441306576079365054642003185777821681819049673203010806631942597070067090794863419724530212624063689256722146529015199274957496763960689369525409192328628864782510196645375890831945571214275749275363506165406404890567509926137362811009461298253707234461709044945013665126853176144657269935425426152015984099734662825499109330511385551474344050917793395979014940522182004467735415089199451936749993745148375963605017760656988627584993961747002041924311970051615404627533243817819029373780464473198028609322825344725052820901225819921361740055186501383322729689882757531217698026314708318862957600623316068900594654341284118207826320256254348319082480670781403712627128884001601731717629382842850421799746067638279003854645338378927902147309811724295301722197416980289631602763823156376076724098866865450210043737273626109164772029148970232647386522244667852517742899088572784438242644450151630753256424955723116429678596994509304902443132509536087099148644621288006198371482213357288573266040071185524874921252670151056980557487265574423472178236374151271298409996495226093047101728749483349262853914842261970458362103877965988633808322930669562529335399014448105038023591572428942786116769671696694541051693616837976053015469412465684191806461436002821057298222013611516054866823609013245077763231800261704466304383575299421782968640892207184705351382766942450296344110856223150943977456482911613782173579129701968925811319970177768027120434163417216848833162854991569984013950705737097664499299328535001896917543661606837462192681611619126105902368154985258330240763447011029276961540634423918890370353147001253112493668384109269341203563321768740717558944017031662928501037849933825193000882366891057509459984625728044270396762643209878292467191707678483258653191962699850295110945243796072762620118639612023301767656959465340904048807624011177180326410061224436942649851205570016325852277124604756302172901987083695506580052740295451993986577658855535350683115373426268523493310998544802485253666880251852172306860369588396256832916891434411279491989295167955640497194097011904545117052656064822327498688177678755923940792003865164321611941858558059641407269845838772796000546344810419284244396151981419887333022789812434479147792978566873605039912024615389311930186101755939124052885215364765335503470094741751770458118592903189209820380549545626063197779381722418343568048490547480554817041589350583171474736127048666406127807597024873020994322483022455018651967759302856239843970787162595569673695741073375492864465088880568299815884086964998418508655776727466880246589472804048879463096927586181560299227687625117392433814054795446992857410594930931929318986348488256415133184497942400822548840337589681348116684891399297672493034949514431613021191834747809585862960289007258109469962014243204851065465814816749250240262459219235520893585089355120390254381294759911998581285728705863004775018592223603327480897334868761139916099386543427847405864153463893375129179720767491222255118698677631848899318787871710158928216062662779021784388612513753799308365821554979307458810934617244858692866001605660114182318297336513711405509068657632892298100763525250258305988330865841422214472284510817587189505886620902522628604208161423683683680444309439580206452732394355699290715106446064691792227770711027113750167846669464608969895060196117435488710538662290828051947789800619806585406760108775925665967552163959852677564208981548297303972822800107732599740734368399622815826460216331952585778677617426790072070192099738598851460409443059294049004120554135221531406910900996729301882380896657014669837774760575534995672356051133147198981527564475594548571040408246570451676586046525962349251862195307945206202014684797023799009610260492229355351895241096328486852781639511764415653651517037298942705859959999884290236980696989838173536377386695169486129947837620646036940868572307937702807664755991167984212642707359395329640310656569045272420871444114080574891943573031395327935750310981957991707443650286320819094446019177205359152590003645531287665205291712032139094846101914726560509408263780988261705368708998720529484511427014433961830662404538834473805699487741800855729142508350741664170875500213073345698462758671117537091218898671426403595870112958041696844038944661839019712454320914681891610752936103475181898353927168983775174242783893930551064903492660878068044014713234238268891408045911508029591095993682594001432746989861877133615030724644851024966116133228094956982606680931135637506671682280363562489298597582947393374885706820683637183540385957746597775038659908930993963690641923436869396476249382728911574752922047963483768131335383082903154874494674836387953050551997277643102472961730916019263783329341639418412403982804706105173284066930205989721577518671224371682193369255310208246322998325967871905472134269016829017930726061339211685190093508419200458932824191878688178688231587784579367572667888400609682834822241672738452027761163388464178345219650227077915999920689987935555292359477746850360181295307010325647167665627251316595581529316161552191253742843264286189963994066746807283345697792330697505174637435940379105782607154368495254346113100832908907336479057605347747834805111709097976719928644604194342920757990721207460305323776992383705369837525783388805253987332883269636271918445672319466926891414970961372077562809720167968381525911157465437170578208219272455130591884462220992464607317088010841145735756075516931880710839543504521955504674676497327014026069436410512843129392448165593059229510969169647075072903909524809095599370469947167450408662937895558377929410117198873440653990175594719752399630101181390007711327446384795690487996301234218608521102182527513056998623219150911197409552211564609673979846187250008406535533266418449425161809972410869937794398169955145051127485872551152501009453830667458967761516073215518991462568153066461156446857115359148737941449878857938365316197711583119612233254465342729101340221857925457567519778276586908172879462833394114737190899843934521082109060491073577630179760766857120774009455704538068413471680360862767007205297139715511048108411565779197295922204806167760056709663987775139621521179615566193593752096571843783594244526545454165293240382576684125319992213548088384724433960576062686059914719735269636622250131036464568465146176676740902001011263100665458348375194220509244474087960974109322874648492859558448683512446984456598840288832703792100160185010302366751638463163835528103660886034620060694180252149152364871986066964285991424566595709722052853457127901371358947028441156144135461601331001983298778797139657657786215907431303416504965444186547575050097904600530901052219607882744037840560317799998394353794677644845522763959258243360242492368503769796193840725617608263129089145037776705577629495628775373180552207620035451586211033266582374022362423984420748315980921221109637573899266976401136117261180427356706073156840329968653705351173747127401083241019390219714648971180913807953383553592767825839089822443014479329099677613664598807349855990184675951336772845975013747883170628812676836475746752573877228830556953622016093197622291133159712586353870142816198060895665098326661644094661462320446236974714335986603648743780185423001915278339894053105577619323794976861786958345506171362251784719948040128085334155458990063146292508262178652415083244733128979645876706989758811086870948730820999774306978249792147029323391365380278262538504925281868025878008422753227175505784359574789136332595480375596258136401861549788880229565556558682325867065753090310152604786837845949536922114130595521229917909979915423487348728757742218519667948526440945647396013960666364792249191990978630657193486457692252982445768314301464066981719956305434025992332412238507767324645879889648218620482978710755091946203179369068764942800229279767993303887726761542300001191424269796581432591505495250727156731543462493956160789077261496080559325078527746053016332990687788849937819240910639283942600284544960428751272066465933664032510575783888748032713512897530484228413509901112863227502788457842114751546710252362357850381671561006905296922515645924545372933782977485623528387800060025002425769894306375070588132840870412432877926696172355518633005700158232851321585236108224683925140055843525441278630393289743252354938262241868180798347599913341502008087871770727206443377092306229059503993261940672567249991717947801768575078448573812770835841145156074291952073591163423460024328504181073484281932715550281121823971969905646592772812041766947068137970478840686281372070401419513800471620626908652808508235536252471205076104481431971511375202571472058677245457791031066135906094002731882214466833580078628405928411544748395814608239459488591669785104326129851525702039813675623599471929048133530277051742776225008248152930587763572370294586179801588541247925476870038204789896123939636680937289860288502488315795256965080004300421057941818991724071364958702190472953811108547840412708954594921784985980785538179770398328407721542213787668022389329238894308964981731245782986118778342245763391034785017304408300591233474901215727647408879041578601758867890267326773950225541295919166846681103550596387104706223774590668364345098166480236075827265521109732300350261074805458915415196277579687956647955644429909767293836765022069851714822072620941698137722191696891348982515064614271469198881272306433942482713321594279243840788704527711732823878654746907015994494537351510837241764552058873381920281205029847150806169778855928114608293484066887049623781573884894955362428009094709256087773210671139491473222507048680605771631309994218894176098782150433169366669973823694018391780421780155213558560229172652770311547831991168593890476566767680065875418343806056756332883484120524534959118506885693074899881444240971000866491533257790089371811727383228015214725478391473231485525743499167568563374510575243812253881510675289351432784808928950262737333189842663757046426806020407807274697199033962251768160993000043637241773004772166096791131149474436735135310667916080780573430032010324874749784597841357493238423789064908518151118359365085067807951703529763974414917531008900574767242384590374196958919949567114504586727517228421679418618168401435522583684523039785304865557124557492500701338289217703803364784458558789543013348997724051603686177784261288792503875614526243718814759041004835784654895711994339590135446494140676918289871660255241945574418181045950928021230109569400260949772557734358829722149794592590261403646441631314409138994451174677398039571537976885216916845008467427679011300094079180447767335295305144628836388290289530170205378390874235624758805400255617702520069561195425230753018735002342365176377205807025431955529929466585619565525193081645440059152987892228874648314213123327205394605529879045667626122954990367003367299505345893664702271208907370860636973224887586261480184153884870847820762265337185171996967076057436595242099012145186289791292709440472876285995471608156986674239874613819136236776078817131921845333497434126857849336590915658482481015218265617143941700565928740466681572854939912582495407033587781493166641148777629183895230177025129444445711467636097041797960588493789986641388626720842652789795330255056877664903768155326157647060872223166014282706274620919155996338207616908313110142500010667974576001084245408981223224583948193458300337720909422984724775616519287559688291737464840507206762269566378333938661577175571876662524854377120937183577028175936827447394659005035379262717821525921014934706398011368523981549461196283208478494666630213895686524010354307239793140002807995947796793774659549160194962629223681488642707288208301493564270683218185221705475241387268842652157324769867669515255469763233576054204638803540282656818589463536535783378127800072663216286065356836513780113747414708184811731863025345456363756544939873410240222048635359589373791284223554631844820430614931975159404368675797115767932241195027261488034391551931306609350779289237056053266433147406005315068435636917637420688927019329323927752880690235678478531149620525703813944611755412447992895173099930134471820656231380046199982611405942504729914496175989573225280644674527096049095253350243736230406478700576692364198218322342440360078730535267881246267721871631743046334208823316800487262025231128114269674530822907874321238741540387973364504008991361618500619862146858945872672057604792809068629216719547957151768163458105738532287168745103795660326526368508599782790520820981531117744899561735893777159135621296758417470791313634279121199760329481829333977204993020207121138122817347615530949117220308953918470284378204369119224355750516958272114667450147306883520468394509916412474880512696950874825285134858918372183158931326552223164362424889231916724645898675657259020462053370361107938934070618314893547482716690582284766902115602396850228793344950620688795486240135387985261284128154857436524636684708957291053973338674896358057562238659290329463678660488198451451506348587301002566387622419313845729562435427948007562919333657762731139277137090837765161022771520272092724184749835857082589572124835980043697361672496281938629911038544040722947587766850663311366479226119159714712030245414031759982463034411500133641247320218978357803065685199192703137205867743161688503850868044148467276408631871557117611024945262791890973990188146916839336199815733387789268110934241429639072388211377514826507945887146860730311608998583123954354094398359721564088216192296212975119842578220711308756939651344923078949623983349217283558761692327841444330589274602776905256506966463785618897997244102145695666591671633241412725168729360272989143322436784085617858980583723042729655467429207750643470163432241332902503950355133897995167665456776443857549547913740550201292826819044947620143971012147967534392726337278757210557752927748073463850336934872462746110535201878599861627784351765818108893949905767686851269335753375149252599599215456705171836309101796524860559752084574052671690653567592424637181100966365291697007754437197361067837887391147703188358337272174424436715667044035922055481520543893552609367626142758465305093264111705393975010880904488788780227480196841015536734128589730494477691005954342434983056505628312401377608688601752868797592798764786989291117053224419968806545495235206607171935747806250388229401097588187731225266012441629733351132173212402294338849372571969452504582212512520841544986048678586178663449596678219652376556716742799706747514102777012126283514817816269586470779535647314308076425744817050411660914662189916129995047946048187318869260278921021976742319588092720803454052781140759331034173369042222626058796030506093987207313359318423930351519932513112946986307206250643903426201151743239488308759086129863978242135564812847017338731623659374073984490259464843665539716482533757518706945199178535866816387431502690764794308245589390976032463859987140524539700132968551915518232694958864589997408272723505108495421780220330740511701504716378678690983616402396996196599182922000959943752380227649006105461637101840429897309837127349564934566199826903498796139584208098845035650711411546789298848546068799913457650575655328077451184999438158009003589635409105334095376570867188116318913475611213910253149360302994472105511395026676520984937683313632047613812003701926009124005066285564291292390156557767687556593862279772492150694647241626674120686199757891012876426129877957031782368372383124033221102919493874710131049077195681678397170261351331956655690258216247542804915456651119582338407920202710976550918437927443225777431616858485787590335970718388545419775860323987235519304035072853069151212579934182253783453428771528537585031033199394267244940862128267842107492679919635640976435833424969510437923172170177291800831063127309182827976897858759827285004213252666706925210727361406143143908464439103808406127630667730615494304274306936447938279113314411757320165507060173696794507185048129969087506713119789345134596071886944325758568283467432769885716003625411534497711365686814400629614381457303692084903211917317754967253774818318386714311011402925762762109174622670905925351746375544431893719867125456567801892139942353260409676075873390639786344367315659684880414999336089572090702048951420466876457789198085402392506919074840010420846395436528384069644419184210361528550697374541891080944687859774289045960160693869476425810398287658420183005016335824486518390344951089948563406954420008335816188841965784597655359994977980875805001351955334207978433326039892904013841451366017910719983078192240609113505219272713941360970872397023994935093332128522166535455295169730597133678449245804999749616936623959947050726666115558316517975390893639098857810808607222600859244727596300856392822509457075788702542224746806026096004499171194912780453538747034817260731597698181601819314698454282770983039462625541014492098313144664321307043707670982812442141593206162390809605517895202815486825245495042796084625606839069400109944641833596876297161674812595626962588327224709267541452554054866295588712055304347205156982335764810176855499119667550743801671409510477779629949242283413674701169164803110921531675824186978756491816467268705468886107174205046651880099218123601855853932592843479402183088046815942318593029213750482680842787138855395130298626983731464705053885399287177364340306629379042375432687403498625177044666413343336692225349678426464975112468171261875473854399223490798767858416210121369284959126102682831790774144466079947118382548281991113183922773376420870686184585093236896579358459252565603394163958476852711515108866796859328568055004199271642579356130175697487557572797354263894734441061742331934430090046458568730616444500623942558310246081087066895316961832691651624136044968665278168469702842236883806075794206474368356410005308591662866617255710819193963540859333593887198989524250795561063179327244936048971435650178672502331215157476984311672438627218089510670946405335420177535319420267021875462708809480542536904415153729652587128328142479062363440804836511033872767983584759345889229081481900372882142856404361632905007252187030354674599113596567788887553665124392838004104501957829919486236263942503024585716979378377197590863760769145212742541261102352627520067266968858495962286054961458149517780029604155937701987531219051639427099233254326538183557114939501217981932008480809515458839548399556813055522908131638694787221546098455454439959136451872479386952322974378946389916031824976085715527215190485099743709537684653566064430706492993814763516868136013925906393406943312418301926266324740557765303052457642806707524471163301061789822159594914589076105805699860415485046774933887029347256244581987622172280153131553739243966483328715961508164697546751760757061789170973581591483586430781416686021162328522340002904247968038705294865486785169856152247662756117803150282421303770821069741103296952131426277331004375344183288738174195381112091429212197367442985306815636375746827111846539349199943169154787999975560478370323249669278745434950801755797482345066369583684315340381493114209500285890176404762857412614710203573918446440770644196134032386610083343585114074248014418124611124318597096414831711727939659878186979525498737917115063331998634800691589411268031300059577449386859362134793078288000811142205428990439739926730572741895854345449702075453369406473534725233800096505061471229124478974816012075998900648958440011978316186660814218642231201443461319043326664565901577196900524023094450625413822018632282151239057059237032241519867085196353616876795874741679950079813493289197444192581972582163877190800970565832167746648577450593407606494039701346914376007199720299149141500746210822055947027783558473010082897395192062143987843019238632704235850880788695388041276235584655064222180810197568713456255837471599323618653184268511975743613236323366631625234491550249821194245239435061596758238634830395771567070759714042058192732503787951463815626445618939660221527651994743039418990090880471603669365517923685412225344447027433645689752226631480703584364077798612897193887496904198455981705915856837391489724414377110128810382774191974041191985548516123203298950566251228476439387223006154671406424273830850559958403241606032187786832766380273231130523737441854072421065297295820616093089902031487481296972611044669696778819390059971872179043082575059363753180003257722498534279818923553779147817223057480814975912073020589142937314698394753382639692304198317176998277478841006516635807894832196037701055078020254755435270738520112391351181906220378661946845468306677698001523269181810691594784682353841304202310617081280674734673560700357842355148439326385538473744829378586620279930616254231920634373457631259906451283514387558074080421880906023706432758486874384639718840941988552386187391827195921529194766010870928683133750749371854156404343548262699029146517952363701056629692316765756810329493800490928669259003353865820047109890954035936105025319495552827067956097215540904303288626249019244047055540582993879657172920937934905080055790321743206665909898755740223634645461819780161878812357460443222260771985837135602597450768218179983307652348143773026829780012560680061962777909336443209815343812210874149872197770936069367883277471539996991391398470879524116595624977343738992561233303122995133181415478874654646112518162880245137649573261042649598146593100929207531480228767741871849680298707780997486894867526475450600513603377647384790331959329126319233562599424190041799854778619641816081583397265826644384780576621717845697494439454663108364325003476974729542772843890192152114580406550020719312990102048283650227082583844584930779345083950454662382451065605375474364435391361100966033793753314902392345307076528094926448159954514866366403381225441020918645527231667836803322532046268490853025329009412062893698163744994790361997137861083104705819962794615055272684249431157690859767816682865752678011131205745221136211709944368686201566639280210172200276608515402733220457034007857621690906073952353324158896770701393319693182828084702930708867991343570811775067565196396851745370387421211539043342809217865138149818122142927941789118734306107329921688800578593211074262137117311700018826872150816568390242201122917944195614271946882214885466007167491958797366302044892287721490287137445784233055236126039425123817299928278829995476714752968472210158211561165621624657995106269650007061589070485853808964659229546148692558091209908005895262479225330127272200644660099961128777557933918652942635179413118128948890901056629639821360295545731174619999857916314889486348453595631562130104860710334054185495088147437690590128820427559407428318212801136920174312290516894323584326637337922390975736058254448223024944181319488199918022372654814675840753055331582631309179120714960653814227119873670824060679073653543294100708708884320386855776523053652191599048980254817253333263261418662860920795854343700212871964236588647789905636766612841000935229894558528377913756838600982731799886014301901518166507110779181348751177900729270171121141418165392290731588500900304733766215566170602755979249249293674180743203539501402350176112810827468209145401109003688953623354000829342025105001499716413521797907288093176466781560095270397217359497133654035328127524825006365810545642199508308501023213503059689371057771320879974854077335444248095356167268833373718311963357711135423629560748141961013534572443999370510392257065745520423946550358327044719622568719936493153323975556628720949165228572483965665198802928154054880360301997005353209408983314989056524042829476423811128395809967704030330629660083165048956763513889173230755245426962564109922996710578391023860359472314178334192245146764221361133651179030005047502586358212680472782823102434020749249352165243012533444350252983138846988625623406452599903074599613162175579236275294509483176657350955209685636090029081931156839146476001020267224340329096541776577411493708923796162854979020760768744474276902232265835853049096533286133697409008115778633324764219670230890643244588909014023861277810080860952170542233889624729118361745282151223631186913088720845509157791614197079358816755853142076109385276932779234156453585850794053729191328785671376382260058393213052655453625769537369491392144809009358982412765136268098244167018077239575525618352878064690262503720912538414243298998017639547396303957551588159108489958968880337084013410400008070856759528482154456397512659886303103025189108332749289631790852042163204424937166510581821117002937063807784398657717637713379568403545366798945527116141207090059011246955492371665984098047906157856949843759450427605342195006565225999311566192480443094876781622456388848406884756727332316977188982914614305060558250961992188746614921009428064160428536395420689748951999101287341635488080618242484408540112297427118950783103645849199700375073886545652833947560793189529867875106074184285094369357959165293325090008791295378356034254457770725453923231906868925242211435648626029688983072309302550607573590127885781327718117714145188603780683167976778444842889586090639944433338557355996921185264938354715191519307978675566012989510742405633992485257984752264356225312280316287934777828232734020758913187889782301450870074025015764450867661902369084343217443732944628494107789641797109294094030607181259123173270317532660606267522323698572953715877421090086982755357261660171812379948363811128338381108946871920489968741369511006878907196605247916353909324366429061727062753631444291896859007688462321059886558785465937435656434293795673454134155648004567306225306478067125904726304226377473933762538101276986599565776423350097355544470256806009722331438116320576502298480068933877652411365682730399007328734104823106297984481801272831926805702981467044223415711844070649992544715912125649553608039067328404713038993647812437705618398399085325636189079407871081921098487794834414414583640592217103658662316242881228732443149952291522506779940063961348430984646776514222480999864616592942251278853941082754244301102718256898457898430483891950323616485106717664416580957876366018658418741144050726977396293947894142602138211956695608392945278681660030098968360043493675846158621341503587683537284569844664442884683926063896312409614974409885049335054818633161063984652983730142906653716008345852541264457693299182712002662852594586518582758604742117523147756174399339274902411853698522901632063098716454589323674549273887763754362440154396224376708748601799112088127628755811682470363488498073434903442877168923900985887139653409642965628415619434682881648701201936763424990078716394444648603597841409850572904935011806262804344158619734577242229470728315731206783295845567117357269947800387735110036281817731325942342454561432265099625769628227081777598648489106243244988414165418699369317476278254345169858805840151643740768714385250784516396382060339734455151955818409026358530071540708313521161149897762162435163100916658572486043301964752033417225268961677853265896638513815071934503644643825241319803029145187511037568345137527571383166129130668964389169493021601615771138989019377377809430366799037488320798403628202536136774376808714278392997056033181898950964585509314107952497269999066151456775095984263149709411650257483734907986809613981908450364024467546193382407193735512359001547273230336563364871377538432029714946889612753005552328642341933900734639158698100582329533448364840386432293249557525787656537357970675587833137281680451527589019411716170011476462225598112016665433639175529867194397354372180965667405348478831913259207364110982518092716047799289008634635060964534189121997009299352630614012100052362090655972952076259137302461827796875972779606146126546054345446219559731659846863609202040140984669574002683459791494917917699604902625123469633898958253403480655887457904854208967772744554485098273101707481751151635525654965046143247560090640844634460902586603536546809487476343817148495317471255722116858826632234643294359912105668667504007317420372044328084011474884415991960058890545668263106308558814746631211327298384499564487709894459108335928711768550329109532389186614622144433948052128624481875846941837525446095188063083587986249422415152853195421260021105858922277161766011790204740955850679478668489376860403361307247410322544156419837186977399806229147278723408578439377386786589706848255085217146454358489284222247309042282412356389050789588235273628223516259844349679718752715512433943716372261973950241287924388028967439918321342792658371455292099852665047365962803910000224872077568784825334718290559604734878717556099626295638051921491697588162798218413703652918825159652421297829080124539526439856778796302904139091815490776550953959338191914423073622243381810809431952598838700159548515128129719406000894552147245690209938058425306245872368813921044026763620665144136463115942892756426501255391818210027061876732224463812079796764902815210580332703750439252024039144290535639332701417490582929999476327903490793189104785685073218240820491989557861405683307256507319532873028463729164276271984472537202444119859695851024786111313977243993530830324728799648635089277287529774891950753656372925047912478262404955262548742549092129072237771497146938258706656014405634639586100122244181793677607310853930563071565868041160455812502308592621314987426735285948103627781964822627114749637970833531151173653494760808467586981129764362315404472681757458634833690005714520686110858723454648664209067345953086985053370832220184768603690865835862307748564631104725268004882166748961886033863837050772146939417322683849812324040459268609306465787030145795695915557024699693452058658208960054596212720221388744551859133989614997546616017424214058352327951533374488383102457445119429685270310790404019548266636972674178175094525053627644962336209687903253593966606109695675190109398154823490856817827463924740504448723871725354132812281762159820723269419458924898619097673332178071963690619308065874663470827223735841881063948917013469576743119928014748751747758746823564934333378358402197927365941435642430706758227671259424108677573071711059379973617104948118603513999137617744638319160652838639341735105115858715577330591371967615178621996493208004839822038884963523673527812216402669495257184485177000498617382164630646559632984038966840427369587249410426143160694216481504366810560674263071573074239845637747006952649772676591056386010630142549207198082403718891982856932565869166447151624693807753539838426566864267058504815799182953728636372946233726355091160338444251827518171132707480704222965786255459409165619946781696206368951031256911275512616320984743867865792584564716323199830481391277259585667627811606783561688863041420514551889999330993431660850614873370322912477023046078140838921843360800945261578236328686111915183299677380995058106534979940813253030192760692043910209894002368346758143165089763223809083776979401986346506806275959033698228371143312891093446647724954710624294994232451063754412767234911809271759738697295959587078598634448375868250865413134070979102978085654018084187560894827339410837044561601782263474526645340440634771408195636324188174691846039776967259600575642058095017615770574022872976968694321160955531624854401893345690233586290113566762346649655356938038748709172296527082832061098063878694159574492602777865209092057424129687309666370200547488311954794805779971133062454851753386984861398767430661777181735052340121098405114066852672433640495292801444252355796619138055883806303611293776130014919446972873704344027966296722072049815930737103613729527048861076144140714719693347864476135139757183581564422073285899825383826609411089868525613401642801583711851086605844366612420861690446635517639358237211080942051885426131349437839973088728810318793489864903165703833477918174527981504033641745628759556511026811869560593885045526339391548803380333386250921588351788555629520817743612898447284212014520436939304972079820772087167035594260459981951643967653870862523488962891067529968972705502218097579744296872309383909107646877380690191184000575440011892459832536159514832720026147595366115598699586191672842067506206208088101163979425044593156907394855326973216168962466713417545615628710354360924455286560083428255645193605209151377740933231623092356668240588489456264246419940736316758504884070524625125411658477587634853241219373523167643551144471194309776622963090765545680649635301427938593344427329469888877765811566341619463900098735234499707026209982560216471501247506724485637099667971728951235172901213551958271946301072068826822167656659432691997685204231803916009363930550066726076962432706345945886057142835534789751933483767826347844194378307801442293674464113582519209573732570600066804020354897743717834428288827562712984051631102518475423814701637696657760297115242462490418298071499401879968594553674822118509537973683531667055158474067171589908375741097875055130617300924462972784840663975444900252351420583651126041607796565109188339611656521825177178889381732070155853100921944199534752477963326379151299744943536097989491908589956896549554338959637349171880982593726330005094796663490214939115056682667867721099016066731556363232728714313455260875633234038648801192968385046664365547356344640237562447082436922636269453501153303663897639041111528933116414256115542216266333697824790321909126046841628487116442369822275156285535477661756558266251443143608006411902543186746894076342012897883871078125801742034864744065462364222236135218168100478362695891604344944934829669226389374143683705626725989594295999355285678289371440346190498003686974226810753792836503811425472571354597814023507846374068599878175904618172198158923558944719263053090001878808781249205846030643154071656793263079362196287552762941882666923179299021043657032998494621386328031208500589818285627604095868475671242752490468565839554255371303973518228433671269596193388563196188121687533164111484043996187342935514857732920400183494480044791925820210458724728897344406067820304218974146927843399415361175431908994672906702608835435411085232790997869460577121850239357726135930790274323875302492049634112232032677693430165664472230413996650896320676408297321637143837796083281738492842927381228952385430830848578489646415930884310228367706541334757393628599314271165698447574181469255828407097942187107160606431367445156195151886924006039948611596798196919373552191508746932846286524584784902606104879849374622374624634251145926973712173608194001639164739018995442730298248141159209453081936793427154492749079487497009880428493950638239684531136810375606396926157839681498780247667399268091274653108483539545879972553505514988025975312559240156275561677701413373297283438671811195420667768157435800673464281528430452442742998179459592898892469762307101536626198762740846940039796808700812782588007089265962384681987063297573277122825538711024795954875096714914254187141556295935727239491805127305574036631455672559354107302759356759463920424824459243561231765881108299392814710367056753641790957928776316545307912991298177072809789992023677000419094426328919827770211548940477554327823866090453033672907993437473065802900337601862499780451960392464122952317660180365034089091715800684988021419950438180623675134878249855069153368600268334396814710115060416127404294796392569306029408540218204349416145669347212140618089662957668740788725870597866583897826965757093075844532815018133475243217188524561800589110623298461112489088378029548436746560571017003116173231200687461782047873925098468900845536639327398689157374834291710786761429584857383692179701297679689400146817438652544444523358105546826718492100537302624472462392122382439110094026526236244918677587177870394233651370430340236511380891480496198079778910244418472517955944227067355452686410154584693193979851200420242562238792632750708354627190180567475686781430814059050721474443936627993653077786036032613591449176426726422054151853518438633499079376101555904544677310810702037181780711315813710289413430718571399207373971036701340592451770462948813449205167860603287898581980565687387286868243143440625631339053120892012093077191079282320074513981572377371393858957769567551411435107178533317237551157064134715940538350497504401053890692463429438721482385435605680994572632127328180641294876224854124658188362693364348844243985491617870900441957308148394887333666835740316598374074812050075098106775828917070493583777069204627249079911833786980692233929689842540996332875870006872870255978575815069641395537973134899952510378974527470578170106971260601034226472767756772911553659811423773509646917777000842942203275393870128862083333834786387718659392320151187197252875894780784483068353699585312250845567265885826116387466047944556342448484639251854628315612246284714925972881470717778955865334149624575191666172827206690862554483868595768062336103985048358708389446147011702558136341450186082950219511412441907195208203796521517458668520178232353963131281505621612201114597281482359600530593059687797837933498294648617984168979470997104603938378390738128250691085733328909485265165424777945333475897879543527990805844832675598660414737181895154331340864544921542691238596792323814405564917158268821091556948548210654126319530146390891396390484913764030395863556695892069950919847058589947875268487349604669374259399247191354998550122114897798180077656715030510257782740852583810599736877642381944696238290525878720294333264601195659524205188295968309797789788331192879288544914950016142462651015229904663217846666472912799759041551014552051936526479293506185536578742263430261538520840426948168818219814475187539894832068154175878913982121313024074397883255747483779502638542806805733919696566669176843662761232290432538338978753559175972717679233723649196874767985169335692696693040390328239258468219649035415267362854988523617073349024801410217588165864518264069635595262651774506068573078258168626971684326571688485737790914947025787776491182802156170838623344178725659273660131153999315794745004766636317346980061944232955598180350853251364894061121245088740581690165002084653961012542620306247776824694624167310340312187884014265932932266076509902578731516629814621663145923523232323371283274938777740559023633175173194453098193484721985941342609713138906161445884015641882087817916656069971087226640301794041347058209368856894011602225164488366563661347269654588150905614093058892360077042445263536876521735530143760893145063599657613358126229991377864000914993654836995575395210818039754854688428906774308642303531394377097985744676694973923733341878714220572644452044240586001018157653240086903008972728780478093675478344691776495741318970995260488948819943201997764041062954406438714711718833174064661272930579180574915474595083915179016306190491826506175581646884157920848706137885957518591191543682778516242850117515059880023214941283178999773152602734768946614767973922571151177907698676152535518422754291793005124711341202616987238780065133877553446301943402622873149696282148668457535401012991644101155298282822847113702027888644468388207470167287458066959134723699704822361757041647381671344768749906846240580586672377367330089916209158776271704213378776989644561153299695219821262964464823441365568749571092300811399161791094311080779590330053314468136552182645988546665516715677753987128855778793236173186723745373191906019113650583426492465680973924721402771265763840705605427840700406323095474312375316124271252862342222209562728883013976160056586486993880644025677714047491825543291406498105471117213263160075783876181531568593953540237836356459121589803827735145217493287040605106451898558797687357082695399573741817327585353818936081740481945087321765080854795078429315720371939870879226128072336181700195558823636300778842315488387147925186204430799006405911629399264856897835573476630778695973523679514415614213325032944851628706170075361268862160889042643707401098237654812235611903670264341600862628849538438606555963019174197480681412067976238389340932162696059906013080035732726507353853637459336539485321750739378650848161730899676528942359177457551684633646081142140455126622668763262480366775101586806356339136603760644096727795545000818785231430544256462264122482476020796021940874991065435800073370451195526053306172655396590162664555951842301618984283453875469085035902562412448686302115324209213574345720617897424338774481001915664702820091843416013946221128841907954081503100887744480059720959893075335262790921499223073178138965531391963331719955593763587107986045010237824951010165589978369076810580197871815024896978263149883781801478499126213933515073863340250906683627363323333823948689092574509632805186572660309743067054234775685184827545253802421872388698249969722304153778807273053356606310018034713941745804556762301231242983841686700553616755940551966529505106942501844436989484396020431679295138702774273010158881002273440979585339137549319276266317953489758027795570305580890911956344252717547990386300347288222135090974934621533201191654695606832752943878627616067217944793714422582029071382805003445065514321127686976308286306473796766408372814059864689002347400319610551190331818538530952348260436808890699725491385707903248655709561029920835645863714525674392027089438786258795210982681854060943842407191081264757374230614116760800976467389709244914741207193312494520404610027407624823665636081820573998106761250118895410290411530916689199177617688670367739177103572290189417652801380608102492321734491593991307926513429797638706267593055619640207739854143309424741322633071720900151023100444611382306294021408800928457182883824147119075306085425531805618406594190465170798952917882078342281883279346839752034601862090932863895647953694435524106655867123249990288538334381507980371765787128183302806069743941496637508873866546931356971173716840230772281461259814800416947776567168521760604551309530230852510389080087284892750486943245537980212570737603197990092990785225579622578725186401216241811733981960084006078881085483283994556905236180183778238236835414147911442456923603511828294460498069160759943706044447166950575235386391068908457145023642944526310025332476479456715719329061704247433478293361978389027567485674601675848594803477739420217402374961845213388543852747218653310765456144271614539310747790396906986338548629141045980752211818136483316217044923931039991209286719800495524470014094988021478109577567815615838817207086387370807601268189508635280842460683944624985768454154343695957653593341871951605100638169143317793851145299701625102973548642333329898119673671764194371895454671777514070560893562220910054257885882907402645419937913245367690693497574011571439092266471845756494484960634069028230378126381439155061674071505325424408278059720523014529165924490495455170970074392882888045631846123014441321452711659851618143563688367505449230233750020273675126021711805444744061857939163647902663553090917813881003190376688259694944067986402483567472434599696876873886109986292680877188113629884196539385578415173788077295950997635799343951155135354813256886909778388608158372947717518286715729318282746409483092281005709167448938944404108290517381077275588320269996717843921105162451312257271584411136934457505998829358121041008237671642776022890900599029740147076242608555199972743457714567331829298328999884472331339927252332349999510722923076454615905309838089409759426834227969349390150088139948549425312690088473463166676572351049715399442932551673170589946011910958481708749822979987629324670950512742621762218070458985544162844121890288582673589214212072276166234316564963990855439473431699762746300293643445125635472040442190528321818362237938938594640304581114318406699862019687933443508097480888385696747912534591647136423128123527770814899563097426257582748954796030551849273467099373708861956022394763832887745654388329664143838815222637901699579790307102012024464800655095215577957845963874560704345133771070824493647122850211502292409293907431146902463300326452023676916525427295284500200528611892422074638689806046223458609033093129291930803316203097605125578280142906952907528847523064717536177856328968427023376054742173745677601281609991270803369276800686536480298417703566734767738659145293950643368898371375244310728427184168891229417727321839204855434244763375147754976726658571473251310372823430585654645759092385315912165944202957059207637832016306416343741138278355571687499870244201933815535293610152110470751335970730784330356604277611396589903101369019299858501901163617597606601643661132063384989857336145533355782897222984911405048027046299263654101840858443794637604596396253302674294397153139969926110519552219616181319227793221282300942449267224546363143115862657833885837099187306150940299103154011683311214693704937607872053474667087481117764203773702664218946841426555820863073330634084042020299103966081049891841324633627238812008617676039019246115487898605686793476672831684145164630663171451840218281170505649084545451981499613558402767571820092439534882058309647681387672907765879220270089433206322108157229215854449696140617477163575356825723620236046312399058881024022025838916401325675076969163660611198818584276401991417665085222278979683833708171145980094972144594336013614764854810233436621296944251813634937406962999304791055074699418050257612793333156903418299116510018851363558629023241907852761147001213321201694034429216337771238616817763933508362028093879244485829347212674686556756352236378949790735725326644324778823769032050732238327068669945043527735678135309719428709170704325657522354600645501792581254663537395389819657711609537726862626528075312312185092807504970184837064978074261874009321401499820432714410018445134817594787640698971080410161846082011421753900180332520853044186313230413514135079858105371232095673685989396175539608910974704195885287478627035410071110110046433917798566514096664133435864259502549505386948791086785924545058189926562232688619674489604371143745126919942851893385190057632953154948148372354739008062346151878402696525422223481658840339143230894037534045795346822798155602464224883334849741309126666918300079476051250686926240755177853827329143703160781642257068751840814446180490258884140994969978192251565048201715797660531090289998424970864619820544926270468793597744158581763924891104768815716617135618298365206596957458800763734467953481659811986813045645927175201061736522730066731342621516829108082322001622058811547042508337112965684575874379053445632219571542690716240379052592861365759540565653725074466846640828978173838986386286751992747877042791223044820093707298799321227955768853336288983900222426740099431733530544795739989629159365353522180245359133171986477759697878358917901866093098230509082975168775299541089535687797067390699936092810947102937941686460420005043241562716437173303890120816045185676245772205495609524678521358515889563445409658848667207163475516254138730424997401589105301812221749489190800709847266854452455114797055066242849131464081760924296816777624817357929045209655246246820873712697019143726734250501181078270169003188729891988242971311841250313187075621401081000966548732157242815398764925659623956586207762228243309389510791105583594777652621371256147294669623693222360770833024489559016680151665580822405305905841486128649321775727783395706573204235363629705011261414939684922860544049959960824180241543183586817972072796664128355671191385261624460058611187381277819681808545975137817603804108040736039599944590460349063976685545441840644187718164416061402252534263799836378358790725470091003054227455251890279765256861249381605541451166876499147708532145876154390326036066686642776064970701069149398861320826063646311605491276654876622208702106346671736454251237675775846147864201311879795723524890890057488110449276860044154221811749244989254939838550230151792279620533305187834187743309498507622291624359205377480657695790480053982405934684531380724296815237797283777633284030945956806845284702898021621239675977592376699637391458968124241458349288224063189993748902024111086060316852710599114270418217040351693902434464345646456162521732906905479253141367777415828554038414312639563941515495805029395171488949239773146719074345903854928613169445996793738359593221027704548404152275159265417410207265624934216854932154426430179950151112485424638665261122277159339458104132093398864225010190202783593206738505614291209597586135414584844630885275115641724077067377931103372029593419720602193371238703672400097545988048523247331468234617716738238928785223367152241359030699378335448104672133478161534319583309631259362982317790492803985808097638378457970560785437139328792502496222032677302164689299629107802522716161081485067157116897908137656288257424075985189163769827006665035344922292518092916358319389274955606309106527805163888600679574555768314157140307093464803710985774243082739933560837148390356466031784715827104376319830892322679072296850430706142648857477769069351007430816928208712225903877114718566601133089882831711746731098636947447015147476588693568374422597667402750583513482012096480560763726962931803901142465784140274546322426962930749699048299639596855100493226295376376362315306796258595828890309691932251188935558917455256294633859722659330096450430669511263985564956870370984137021446090316230863539131501914766896739491403567161693333377138123515916369702178171132758342160644908896937790057585009298766205731765520918427689696244186128875647565784115604021354216452368447491559189687548652564918033724038914795392556411570885931211225552814579551241477573117799209985380147260851449106170816617010700542373542767303431541707299338213817979037994783331290656270277899057031368398274360032055699820918093399584972971124621546094903329332286833656184927426981706689812518663769582710176020128188755461882850414108847784886761568183481197127569741468213919109341964356433902133320175141577578648111442382495957490332828285258980185242410916795912310387474233924021676786980936138077533733863041593212204608791805333587925517847743191763175718115261863189373085977246902382656745009465867914720825989965637524962066770567489394453675471781900073836845403789472293738942521467175085107433501811360710144101791962059056122616337249421950502925284793405387977704509954771455350710450400581643720277247052020784558021630986447242300067226820785204534062556177069367353212600072440793092224995734998218357313665398907062843099855626978141106374786494203486458384977976331425920917103446967801873199560420717811100547790720896368823124414145697811982691890313158768018703396587014216876555374152397652383281883236571003273001674439503452005842222527622201857561570933633236749281839515184381056346644527033501680401485989019641400524873122576492784427377755511420020185875601180947640421261632833366405511378941264877603468083670194138885509436962442004164737237710200304931183259783561693571647674801878593101216023810431933698214364865593675225385400544699786178266686434805282876012073717786410886732644726120698243267252938153197044472543868834721379564472086233870025430683468310152582198105262942695797856937651446115066044306246025286212634703191273361354213080906579897110130352942528383656006028414936246664353782943111806597456323900973308119984604179225293171554621655906800260882453603622731012787300551599807099063031943297042975410410193221918771966194605162546141225737084480774289345004869494509644744453630172810821800738350275609061555871455430412473603073312705037764171341601156535385268799546840121467435304621098437441656006829707699367781037605807138084269023931218819360676059291759437363760101868867141693639529453383726179439887789469623444418702233844375305105162898865316170435544052344291434368983388327591971113055132649595148231642289673396012570537308075538229403922496242816113873281776555148773454448060443556888459961356877391137495509806467037391725557320151968200878897358294196276395049385262284181899278368862274136809541881826246444897935359944834225077857975265269955590613235651762551232892640251823650651769706434378851904153738376772586746078881946673987751715382374337845318693895894798803743433212518189792750892845247477188717666635747797803118062378941143053935224586698837279576464007221559087140257302922505271723852142651721162563982323642724750836369295460644809400000728478871941319519047365891384159164954327142726930645864998870246514420099936540239273724663087817040791173874573344873583364985887173670574394292182892387670057814410354442228905519616424931870789527881035288615699416750248796809598164225161001994570124127323732788169278475544090117505397868603055118689962492097263960210045301079197012720660633105448595734119546041985586189143073304669907729283855352699133778123000513670719128690000929353860616312550994700018037157710060418333617079427202219446850743326957281989171980459773393567511408167719836204069443193360429838233209025516885496682742225200936668944774853015292441866240172052495068111452172891171031608485043638897989853156454124743361402733597402281004247170094182553428816581601469642049400387190979871453805647014059003127620831135865111535140169529279656306225559867243183921998975885625727731841628641128495911108904046767085514868244763357415016648247101065508779311432749330224573157728784309722637505279033769788102174644836617137612530684752664057243092607078806441579140325191426076374217224763520161164686830818684039338393996341883748362038785720102139921988035187033449981437479264394115818087683070887700077782869542366327734082083201799825204196340144921852010417394584699232442925255102174914773492020437778981740474571187069827800143133096535470123138508051015305743439580407050068432054418073266250808991512848622569439606118828758696184785267446474446437972928480960188373557376650180959824803314103200854392371991890997281499944965104339703246132583671347580255632581975366323593673520571688856379394638691153117982707703340839369816714101244325117482615263021152200803939480790457680370991312227742904212608955066755345686699573287708870849912835379295835152421434829176865845860333110011971592164986944286956045280407248823657954624515630779195283610885375679284663173823910981485871245544366389614211653901289102757429294424226577778923090458782029989970862529093980880538641931606906965467478782343008709404620840916005353910306040500904437843213092273329907609587711927249773776165323001425038707613287060859991696801193108273179232673337617557186340132510275052405519453958722677872168440078582716436265267044641199483812185034521904709401912979801310290430657561812079792106435763226419983821002104950403250082166848266129897707452233645220513812379916611788512723567238845923284086505418162052969362760245863710794215566170394820692086743585739090438295353856274170810020317436664382504039371341315079905619383254137743503474996781092896882867051394086420011726060752541075297781586594470634721691879547381727944154894537509929112762144184135216129966076945813212916680146643678440749736773051675709054581016419328273117807073332261818114593136612538824779762384515713720659080729527766577274978484272069254239036382271603803204331787703004522873324246522731678291992354857172976688096604985125124824287826435744653521822148159800853369932511439708650085309033694140461727022209474078881821277579584032267332895135863942011772114332941838351975272472473862107289781348287466484063076114003924318343251336033126260265783033064884798155286957035857364838318152784886909342014087838949873714594287335765380947049787973584428652568039547332807773394956813469153682281786733913676646400492132513339980128049141238284646854384422848825702939683409931475826743500888242014952204483380555183355114118599306701984443254482896073287103755779449780690136449568295000888054214844715554522484220191032888251108600472326717431036319341565880250689777619112577444403582589487436910060355156121186820808941331567339430195348714702534418693861224467303186554576716183844387996614847641673858029902998359030333218553887109546339231251765636959822168952230703431260291705458898738300044785057192126191039498274390893391212464890240985084120424768911648821875842668368224705551324316621819356705233906586308617958510932282222926013801840932630928619079298985391583277562788568299651961652631316953979129624225624654503812532655364185828318723223745308414514418003324278200585819599620583218315933401758815451684817078294984942684336625704906087672592952943134584921332653765162343036669689584382091856177449068456468162698837235242441064275785321328247134418200049721982400006545259093490073324485069973314231745430670497214478484114867010031785880839225778945742953431874810014227652688626219393069102103907353057312429252579647492603036933818937783931654745292317902990259050888190931353712796581352475812542114526506088676182288454648840292725991332914901222093761754684578130449467356083089768420162485729901603499093778410266150802844220795087339632153721508774941821225632749950874426265888784223567777927865682366021640934348763285907463551643315115437620719469917744815217733967037797895833575715684654536390816560846008176516571678169453459005607610110988618005861875121127632466840082994027981984686546372660054156987690654591511110681328359975439462962945897262258116273475126988325684343888248664578574859322681305901604261469480423793246377689200204658276309903050293090589629021380427705533310056254608976188338611542068474832019302841383551872411916376498269330972357032314509289186418020124211738155247468627290010819402869665919026010226183928809473615750381036620099919264882328564457004186375727035931546610365611535302754274850406126665841237893225781112805940111900571943939970015863996136686810297399174215491435847466466235586873439146040275589830178493143061557246757449547433597360569292794359146377778415092089374383751497999611993572555413218269577976600613315907661435843329731304251558146695167353092388276473567203599884654605448531087788252269801134426652066934527550640034719910871955250697645478396126041959129161385650733824415485712398724137809259861190679869321485852960798206965151770814081057667430314060752547153958085316278529427385590568631591887353196425739655751792517719322182140405299369232156644998808790662272219084437129779699340181121934485482584008791959851975116151869755255027644921855595984136923184871609125172173257849922227108713300166828813062104011394306529286535202689272807323675462496997727960175244574695806076334328914679327727663499035917267814774540123162440776280529082928982583951766132982489436568568947263773693244200417687576143101432084493593178206491722673849594053971139737369584400706317022593244103155691395514967252916144362340436060759842122493545097921243872128890812147403457085275893362724936771472645722175881559601382029984744664223787994965975580180847907595845959395335581410414566518777860559421901201340891102782653095384968964203361292167559581019267592258357788669771211251167540152231428786686238006081509402535535620313660960919321118628409854010739857208121294408355135473306598953097705669180007890558729280694162098747922816520681800262419702348779671575905713824593623613511111582019711650062038526170640639873070327556039600273104369081887145659731749957807367408842909893156789814360748833399267417874195588325688804004593765524206521534190322363627730441219507268383566985756419783207839490995327742190102706011421981682284748087117533515423482550976257731211183677262018777356934562649319858037295158051666240506658691768215813478237736057660620929405172160233422213341390452772671073577391016327200610172344015769594982620648592620158772783365455252357222524158170347924157428858708680886157458097156910170846914219985824990546915431902408639108247529772609865517444040757242997458305889848604561952876408286654490269822643317603127158389239642030391173260727882099502765178191827124326804946956367040727057769445604646567251038069186505482376300313904485622828080952867255541186439263444709684545756404799083227364398797080157758660115771848359495604565257513486339327857121680984475497126188466486158106994228579563927844156757079864868315771076426929773150814656327672604555465292065456590034323688374927230948433106849882733697793805690809694117525111212017880938175586896757932973957443045021099909502543012179687232523844154200445687839181738659647386132155715148190715012995353319516665353979260290922664902076190365904185584939345838720242085915271732859391102981040538604142928742192657477411576082355618922205934781107281661126569802435698662988498556593397047700483497776636147964106047979573005944035457221100641732425104602708436126374973715867299951321636352754941242011369245089109919977445987325480326341228734545246206432961381910278391442515697348451905011145921547655056148341641701355718339735999109011717892447954691974066254064072933243036774624220824690365001601921479874261390743931709316954175764056719828876922958441269190069707781463456921375704611956471583490710877454516349766545695338465863007716854211553872611047383521617703580362044773041442597239576013020057589958896675708230932157924845298758902141818602371839361470081285036490488134543092673248964433814248128185358001287751597522422872258796085009602544491757008908330930931475621703801766182284484491806765065300794413673506435597216966860157737986786035130237617094637034854329897681998245832327571025135905043346274141704946164762175228989597560876463633591550823380158999045201234005063684410421731746332379111392071014869595115577754578049629045684456401220812600882582037276201317923086149040470599988665634675945926176798770175195550727320299827072624549921727892334050011533105426211714059582925964006441080485835023728593581896701943375385651263172756010026912713653846270636993188300175697674471614807681780733796738658773795677366135582983707359582262871715500755222601248047671811943519021350857954621578765591032028120083284423320387153657426655199217942244470493695246157713643235040910149809591919615859017732036269378942222327661002827316132358365284961264575749770807824928342332974073754783389938693879282248430057475033639669921558945038661491615570352783160117029384133474485898011573822540770202078934473576380364102413337358004808590427248330939236025371105897784836879207385190412967202240271811695811756570507091779991960574957970787730704748225088688370376291298529424662000883438954103976912343964765786740848169340702226623613812675250477161190827837940856915198726600653803344086268167673193270481028526869800766593255458879620361329758105865559158539876243273148100481998491322460397677988629357987178623147850502699433741057698615074617101414659483628962609721978878091452834354235041446996655546367171550816065873301209560037366109190069176722537138607689501255950095288447848947474825996299135916402113969530140270544855381326016267911144549389501766553499886085869696040549869302451486517927980410887991415855200998371760955240844890326238559219806757129099943278182658940941867669547241596966449055940156061531207815265136451408838658074055455418859523119245487600361080744242229706480578483760283290206310391135185954565620370280583594980299446517601838851611036028347921288509962406443423185569723562736705591634628399984715772061450682335280233893510088255817436843070343855361437595565207314618366599592930782359618893605524553945309248625623865372526457300382447881089824145900960648737228330708068036260857791388977717170475053813543759141353445817714335578593688670722042551345089487931632742592152998349201617931433042531478439488027534629770006332583222231979453839121940484713678518691879559945792562190143485969640972727014740327313571916275420881567346729473678077160033805411948296303584917911898537738883684351245475837960025583332126777679789498011938444813390021971613770120632605728282225460959534033038056222514079146117597261998984601080138991315292056250030861372936594276110440219451143556492986405391135156256987292796175966883902917356473654007451326820254729227099331865421516080567198965295244630410780297161179491212352344611944747630101497057289323249678913203790865356554016672059001812229175424255612942199203059412361766668677169047554078823733365300584340969855985677038187658851536255114008878873541094149148114141414704998377443903786533443938775607354449731044460369109830467119616545150829221545546048665523143453074156130122329660866623320486721625555637066095264175183347672124747206724293247417686696640431490440281230308580614322177315721635867749262373548958743438896332568937802437201480387133882476367501978622230726129796262569006335856636778536380030064944516948382174965666341303261535043807882462737792276609537348969604707240466471405528766892358908515752891480490379242206306608268606041167329807046493416304004182009312957637651238661281399403585477758441363600700547115628753425948161360927239679014937279571382460459943951082920685885568661171603084629624159524365519743270929716725894402810035794588372705984721233352474123673527820364685640132287641944900580692528387634704950628077812002080494787181428385173158033360131514036270245576088855782161320053733536762520785895585289301503671270955190443713755227478769817142113384992600286621423137486659789550050579164346264682993809679838834266232046444058068862246815064557225228065840519142368074351193131089532235975221088688801437753136871684970058991198601886478271564984356486250769516038678893628560507679915531834876459825447280708618955883844022219036487861918725184881383138881217838938742667280456008441516388366675442117588607427177465747798213148357064224633018827483361478576105721622660155346859870207149264061165734303484158495147584290126032268638574564150670826233767543765048225531209166711713087237926857747896298027667568578993017508041056060145904737208074801007673027282130915970138263126768613870724761688542699587722326162307573792819365386264754084064572870217232954718514400208244237876096437960662537263388091413127083062031261621413696938157234056289496471215761679728146353882896357541704224438843688968350101863527313563287692744220510167074199901279948800258453014903950026794153756854582090083491131901138599531531587416126268586221192274640705928246411627754706587693923977463286971779932068131236024233952148537953784427717669280451970319477877508861405542402355797020055734693834220116984627194949643705664490186040199887338278796013833121887002124974578396419083723069761737176725319352471680805692651078950097317882208432131922249865754129484003408741940642820149598987777184248541076282545340109715938347165592519527656821116389977818005593660345471869269456605318467233884314345953608833672724423085826636501853878597699255842161436045875072506836169307033768069311869273410523178608194249026531064259215695815428703756185071454543991135304693118781290940582646416519718720888901289615559638889276847756887873800390401395518670732102733147333423509587672450819909201862566551505043055519370217486851901660968769196181327348260978881042642530511260143153277252283697694927038152550311064571259108200400772431216772532735230761707005923158200634041633048313697133816539365103581069145876433425777876301723069732718297380874089124730380730514885907430786493303279756034498274997707450532693635606981462121530938411045771895566946277078425866697756845377121671246049271976552663695810007776838411681650133682365730035730679655880178139839895923191950670185649180577022969847640502143418709413072679924610496900363116899574869487183500971055307491923853041951532419985036063975297773147195395392610776148925680690335230097541036244025646488250198369242184886990339388139599147661265377176859010407566661648211928412800264484348870322167967743190403943339526479777352393924352523078740816125064553032302025283653093461143933006171007970624768482667758089834353672312987641102864343735848980969951524738505965360058924795391719926366645694276903336127530008389944001562223424235073416758564659873515061246858668311362335781610381302465824448680250350847023337523714278554890304650361726798647674573330690055506487995837505113662136566037008478876771736188172548440178103235916078934095156700857073178718935682616148251060643118633570440018254510126898924472984307109849776069377584927777799574319178659850681594702020667885446820027595433128449679133758747182320182490654704076667581483868458827373389903056432167625965858488478601403443053382179100015690437891740798119704411799046130136633426671696404025812884299416542298684723167698509551647075296220410563681728253922166588593725590310031335632456719092596175999720023962566430395957104572366639979879911096082506555824820701656719218984327420510455697091180701096118428044543990548381212425470492802718197468095371191920130302046497791931031296144279804772223995096946008354939450296057141177354151572856845179133536792400578700211306994771089108979344664062049619184508474411916979604918235091388500656437200671648129930068016353953844732243937723283830106295845334881329389523553446437694691202840646284051291638865446008085412548706675795675746164903567636116503084535984222437393934827879601393910726454576182220973204763599219495553162653444436839859713555652035909071763992448495606147856840971752675078050029968799399494183560937331601675602242971057018352933853766145939009482441887611751984888717679588638892984569770269468803558274342028978210929763081329622502286713462569034068858832278954611132402800870259465907046975597886828070381264976000597771893800765880726689944996231876625510648920926606499634405874319841017954185568409398770782974335876929402284778838092235138632381831893987554449300378747602521581770291933252773227472016005671804972885317835245136967075991594530968199943375827258154238904195582996255520285297331402360340479798665175767120440265686190790827787219018635566298219911220554490759013921239741740177137297299226554447213834236494985779685110412986387501213477622701884095261040989496061396517893775308910679352655276002335378089523781403179490917459718332890625918895220009047316144921950693038128325556719124048804268390786432641806431672129267036436946105815842419860724687487723758009304304291055887732634080036935406675726030289472621501587409252118769819220178011676967633901761764999662877623473803436979986277006067375541123184967723592936511266556651851601309218174182611361752363642209829430464265865012206146712806635763574827213221166152747728377846620924234536780883312808951068795328502484004964663700283535153932642233885197559370603096788225989507990257613444665070783531971780407869050181787520980069940080133115464376528308653015177015245143772910512956233886253560080510436284240343484442756716578707533319846934114660732418817701065472592734745319427812186672366979855676560730199938555650129534166461528517858396511973040754987707745883815459350402501345826293732873798159890362802776148342052458861190245584025487789520169000851021720346200183100209755650166996843672073112965822467592496086137211395116381343214722354929425371857522285407653485966998559623223972272750109570995174874487819610084116195158756307240814458743557408225877117576301209701600162489488018300455376712216638490069127486262733433686062235561555623264452665213834699207039001776093710504656319820604000200144496351351211302906979389295638938208059006828232274905592106577627627498696979876324893179794544023314771577523995666552547302171065924827740818823943890288820839651609861525378144739249134865939312866916755657464476909464168049917092994722074630546310649200981852433803688691786254509493437519109965982544074608103765559842639571408220036948000118772559601835341646595231032294733241938094125872004557037646542691826346488837931249250811310020041786798569245631023531134876033076523647993084075625034298447944846585443361969478442257615236790785788247914292811752320753817178365329747156118314625268338329388339214500279882413654642807373891813200760091766761971306448250653889990666254543734379810675491983623318502808138972725322011971770579442074507828163250167814469788842403901592493883664025731258675696753974600310754338370472504044734274039968484309276705185796663498464368430740140706735396048548942979626853821667526778072938548118248017676653947487813324111899535874899356514869354949863764282722461132288499819403433817290691371808125503141690406037381317920663499334793864207287235456808763275535028254000802964388382920734596065306447167246516194612672853303122641497507628840020015562320131310148159145210100413058316154293330329752380987160546762936326443766347756396800760578405073839987293516052277760380445867172647757829142847175170434520284227808430363402924530049733881132857352385296937284257542428668629830519292664058510108096890122611042717781804067120037489281595710922264453458161125388771997787118574516238114448892694029653609844836809242140439751293113307259096334742159281685750164930150335141805499825126539275877069715594590442839686122267265807211798783572217032639285963718131065991392487388524550793954773140447603626278458898763910998831531140607433759276725726519127895360304855318757030369678002494269170810671087485370390412921796023646220973614599858668404769384365328669352352647166527802153922142335614557580052182404861397069874091511418945781122310641787872326664566715117436783717909744170673204852269193592455401990267981744295506859044641159012206976938396824875177403397478323239663939488591473913146755057351812277922957309852375764817504676672884304471990006716141074448648897723777382864965652966030251438569826024147687591608335892794847205159750166409854675813951115424149038638752669595703166942379135238228824105879162833805665077883438450629301235162308309669454945894376595992175583318875990214014444418491302605497151770403333011662694470800143053529866226019285631915423489405006065608696174124898199099923748739803343150228314901449556302990920365698679573812005084498248831113652759809601583420636834991820133628680445774628647340243848444630164357364891614044795720284546384881022331433653051479748818099036864955661858183388973988013355232783525419667934103461760812500058976368647312101475318839779857786157526358936404005521720479313043407240965875034028463628858821254591841797859992961153515530785466973266552022138387942323880027127439540913029266384989299210165620245152204720306775741304605336141141081942328823672553668346590608263696110706270511730004188196956355566325104710881754834909762616029032010759636567482585535379558388914965625524245645427231390539452239113586185319399294470488105197958918709508327249964288727140817398123576760183988323763195184833591045266980761539312504033423397644958958671731216022275248266872577034590238272481407153021526447804531354764652468901299523663402999979357807919744021771252258349694574906494674565401367976049561379712662780114977049433890223206192006473702547336836812338664319721039623060831793572110378699317262434657579280452206407389617755224887982602623069107734777190460273044959848908311273820032512680140955838816447132582723995762172460439756566078261237720886778866948295484870698304610184278979807174846569034785850811189182178678552709257433264742790228283075252276417047502821765596121064700114064128096791833084169563166720766089006381928502247437183771443548402596786755826609997458189293144472384010688947760456361129810777395735136627090529790774693591626602366519038206303129940529765914019990440088453515935880652438270415314762068159383219751375890984790489847532666847294150163032426656028212972543566390543243607579093156752650439301278318233876318442302991767731373013394386849998929764632420881738560369046976633761503442235309870184907558581983490054237561995573809324032337347701326417389179147953984047692495509608089424554706310199027484402948882525292574062731046004169395478700137865538721882581190744526318401021818689352079415226122965517086757683748959048391602001293565929554135188514452573094944096832081387235534716057603744583626802118590542035560556808598722395881065016930102220899929138964131485732592378045426956833387175321565305985585853679813806815415731525745086866421184190373258774393119584396209361336633724147235472047780448167415821786014737955388286964205078363440059650971361861082691446439249464342476963319361156683592987020026257328730494122306421301789207616194670788730931243963936675651539033393051008541582253412850062172480391445722295012224756580851760609921291986128736879121958937128048778518191933123584982246028115992054100849222042430855166072170637901797142892573148656146460408153946268321267468933081273966951753285421006397669687686949885760281045434868679502628684333204165393873869818836185365311921254680727306016021791237249203109559350581176451611629475409412787125119897922199005835783191465453765313448859296957009616378611585233785614299546506287973560972343559677412535794823941297914463738921205576209257131674120119082073134099401408170437925289013974345531877430245497369337089126484446963935328320421576642104333154039069354680132338025086965131568125431899059698733349918971573764149404315705548325830912345976950570480984474958307383422518513403006158250368543739430537457059704392532208550755551029070517690948300976510630552845564965545642879947700471993546627427737322824719192150640389031248563629437731934739670498188807284453812336482716670208078161948867889473980236595960421881304536701079564902495226533600483874262922857647313844110581896683701026450409446458626620928262242698786177059899599844154827621598299969760369511822481080071505941683275079705298441514723154902928838614237616154353933569525973905000438277256863993086784475948806865513138961904251664287941595021470786246299023217472739999853919642881773665184032927589688053602409274097890619719963166624497267431856676190109847647365487942640008582990563139423614493375008174479051546923477535818284911968477542702918104440137795528383180536819576212655268007097762567871667185093978258502321526516756750055130021441866239790838475418209738998858230892435727883787241534111580810235283075924293089016989761804548574343884483441647390942978837579404698403801307684224825312154443823053749962070757676774241008585470674441913392015970215345989745284771976429864470370735787386020391666106414535680980839045382816290434013473068288133194230710973117653976206539323277509278248070824099695719415563685871495449678483589777195266697012299875883574057058473004390449538755791528116211697481439824572301298900935341739712348450125805844389886639419245324060723627669844610652650013785958248558751153844386497904145354954188963428972722182810755952016818739890164310071590219773306932905600161267449630392603333519085889846880862812575501262979901220753510758664160736454553026510128324490429050138487308882915782507127758346440736881848816436311277642285028940071843408210592750118525746601616014149885304825011899612167871119557466524560315728844430120475267081197178393559277908408294602122367876825464535579309685168564946362432142467955333257563505906195474718360111536190222957428799768882809192293429051975209388784211706752674643020678988214191069356195288862116158263169690103010751437456109225229274396353167669604180952483092725090754461341906276059297987973069421963999518097511273102986960536545260482427697747308466980488127887916621741650489320425769808784376310264022083225044084042183827429219341468587201567562670856118214411397497375465150946784213990400042891519048492211667257454762944302648022826034010594137736665830948359651546210073812808166699103797313135469730792042649349004136801117626880193006162488238675415791624446493091446014656684656865827301533706254663763446134956886971162896601187904560055507751820202821341688812062977364244406695841990367545027350437372907424678892477961397671282855258357612444927652155838488625101848232265075741735923812739588052335567740419158749425257789665337869094164755817573278483327769604317209736637135568601257927734378189234076223643295603591046889712225336681183474241779216567355970929160830398287149029696231647576030779930913005705789345171198887931441696027033030908454473839397242673138658115156190427255137905119793953450961294983766734048793597246312580427911473230006905684246264712555120543360519151013053464932212506063134285721883629638646690907935009459984263940490215236472661778908259137748682712122422211414158431836564643868829149023366190569695221395147865006475637542239246488902981301183079998906761094265114557614793901693447489047548515995346953462275553372223015389404916828158597432508565143095613165018639153295469993589850521069372847406671223137509958158216347134792768289500873607324890723062977049359326881390681796967488250838062153926397880011435267446666345212368975995780909325496903763105249893714344887602999684865515785784873930834415196497333172064847360797348089970027926665541532601399364423263388951057645355520550158057523000215318424230030596655531755674921774173772341030984908223305535584230399223717782179377752484047523574891341325281181864861080310877291110589757951545231998976086651333357509753903346590180935756274154073587270107129130675897294587177083352449214420585672208951729209845079438165357836361987440008535191137564044031486002404583270511033492617278032915040647522542284964052518768998656829338420878042454436833886408899180348619733483696468172644354228769876887175661464088730096900157310963524304176238276911479187152413775566009407469820779448989657618382742008839859158478521088181386280254173152377612020988473551737365099655888375025451560289402381456633600383913918299059381970040670099833577865947927290370785175174667942810083729436404905125616088902880678130933057285334916930429936202953339574180297328335401066424985145393946579597010882091127362441365930952352895326395025462147942850600723004283123220987970433269531109847028598377883758400892182226003016921721621986099631804013054370962344866501305846912492589554734169023551776245475476773283319109656814335163268114893732863520882570763395753409922711138471404224239223365578216450296986549515521768971191244639412292079643286131939817214600484383553765357596644993994811280452351313198024512776948136226663604155357526290211482146561974527175998097322731768871072462547380857685639199070451520498221017058001037817758324402238778622870633629623598568683889274147747603868975796726864341745566836470572400542774511518850932186342364662275152913499930742202141017157997835897495074677392092203413260997376417981545734213355970569184966278864398885707697876668539457247871618842437670350418708364634002249849820283727985041637799473632355306449405578794223093729799858006949699843792884822658648233689203324805984577428997708762334717163852880457228359895548027760237531408186602224365638324226965109679825313598086054593535497496983485825560572214890206367224973793894279241960703551508176551989379664620359281074176067949664070073891503880186586622458672983979994209341890636036719286441469521130208487442031948072841456810178850580037018839169463215723438087391876112145359440947429465919332928378864075255224695043872827518210310207308482087308401723657901765479288844466506867968541972176697594380751315663246412659636077201899868053866243966159146467892582624726826533427800804486811677998245774740207682743044075073252382083110468769287202925287750162295417708241264199558381112013232358462280309081912085076169614434269505471740624074994759319469993262509601913128244236040023139445940714984580035614284995847828125859906686825117358695527050156499201822503854768791572636552783983264591135868862501137561271224337687568136519008386198578965096816766249710585013519906750738960498755666621697234076617561447641552558384018198364596269767555040792837337414510564618416061508414580475638827344675581670040429177302154762331908437715678182787707665037642310422087621312821900544758193196635480565481172919609221634802854728462444108165108837213018740580296118879508267297293875026147399215220098186354881347241236591029565521468691638629143518700115910625545651019504955335986669183073587666259943754482141033958985569469602905644145288731630417516525989411740970335582535827538069765744916100324059841901800833144832105303259793535052402040650274587392885239972024758645722879701416432192644006181948919982288172433524047088497123336166603308027104501590620307235884050420753845218634921345723111075413123492631553938506105757556753216434673277460635448543173288253563333409877454026472574673900707501091373190412986315634270536843990189460661584345358429475655498407466398731297091775804214703628285499438363578538530724712362344634758212114275902908448058289858310561056189470104423641169565495763400756014022667245046122930508357925895773550099308042483236321622147777496924109329155469758009306580031515488256564329865686074359600785986085377197306506769542166474020686575029376238059190327788022707191770775105122162192972594243879987536696997565672779126250778410299796860884868709167144888404531104712366623049688772100885779907251264890275529790884016034349366098621054286635639638907224702319858517868972983889420689827383806023242737144828618334898186567530597710183513058103151976687234833964781220022753438350569731256415863852697177381714394766484391036441031642075650634650304099806399431906767284528802486566220799148524193464688330004381031939317019145272001806357450090450760071427433324814932318092666102612219065367688588504732515478224504983924479593832565572861077652560198944150932911301063702851344477965620186706595765683345424023988323470070484051577407754455252680896540861528009468836089628611835537209022812728877469578790140761688171495003587360464428377881535138688293945875826206032724939128572846965776223097262848717010537752488277116339889392143766699483458751881123712088412860101242100214120228060427655791794572444639796648830645995420596391323307189010545630386190809364460812856426371696220196776226970622310222620754650249241912242241961089123518575466797414832123781989818314183281284086410768752019481657065755460537902628992370238183466043806731394422002681808500077371563426128268369213181230867530907737070379621897498598745629019703605313265076812083528787014978646148347741421471532517056387208685007765325870144314369326646737573169900637211886951953984503267745650791414840093315962370986969722714856190850500924392583307328290406834285275915548347332563157704312473969941722434904608851109198642059578335341302015997351288745318591200737588813659825509085633404317693482830135892686760342519954784891716178484132139257297189772345192566947686140165574663410059506866057485909405365871830944033657347833557508708779736864702188405331926536728448979740776375700834100448149660038028863365210569115863906992886334726742620189138326998555251439397292470377942779787546500041261587148644131437741371660817437339672632371201010222286889013216759491864730437852359392933845318102354916437205590109019359526484061574314567883913578483661762278900122417737997753496915895617713284824554798652419342576881111921824280487693198448988549075655147753586455952054205352191713313075041269515287641846848951298198108372962364638095166057732326277319634422585623050507978090304906040153896733992439156436265035355861608520121490694833337200639357365338632812376676427851444354935240179399382002933061666017074953481183323456485167457719672939090664783626790753753296077528277074738654746405147729486354971128757536237672851248097062358227248943643417897429697676799914089789762048786758971119240368622175245064543264280917817378020838909818285609061254490668492615946165847234555725419219137914193721100779031163518745513827148840598275659146606903752301901112514779171746119426362690031654721857708630622547567582595195370781557431414972790563064874979188256612161733197771214476100316396729109862570264482184127886049573462439695277078339002354868221452885622248132184124062798473192538367288468308988204843046755907645174333665335940490195370639008011155892776447782448169558935899918906601602132848856351894619270172700855329377091770433934046694424895181424476379441083877595235165570284032959574774972058901386057013192025718404260304165556465909488743170256044635196637125820786362018123251723935674769234824535426661797578211876157413566194773178877588507262150991172581313865589555091851171307474910280104169314027163199844184348118999684169916429191396827989850234705443639738846832619895482650033812098432957570268320347570325482886147951013733433464383211709440371657374162908860675791591722987502153157512389510130280240866326991910947381888489771265790460947823821050192790400063102340508215334607964809545709096258855395308272047758945476658023322396136655581822030449335040698987741769996304738832083069717649472007118769044425322975805285458867760936781415271153027400099906404925941985855146488566229967646103066693441844565283256157082269604429939229162245607522829367767256204958487771128842683727466155547928704461611657199159163172186409296150384007482649291551075464229064077835775012695562847740791509361013833215500459553273749289251823302827672034828095654580801260152978522328872255168584663588978573589482996888739516366377353201726836808731854352752469110952212030452800669385720050464055886347527957769865494075887998442890774981799567618638160953187722652042968576345501369242930506273165858548440280056096555364978915472391509952683359285936787157221904196599641691867396850997261265548753299307918923358291739319971359130916160282667462583664611472337733965268049305221430738869207853124542811883501353339451537521122219048237730127710125185377221240352636205978704843753183988472621445135417166501384844553939606292342985678100435132612875564201722390376934320501562003006298155786719983039380331765015158358772561958202639834261261652521786129568588247387396150396217822424684146976692876142218208013061261578813685295982756491555063308104605183659094513775151187275415493973080963890678006146760366654377572669773272683523356145280515147431710213122315434541408134273519886505790480111577799178131056949244965546342431857093157052157458894042806688661346780434407493605161094390788437326589359260266949988497582501760649181940795631586960712985522540894247411579074279061725510657836422781118005748040666148062517236408476084406459402157623195189791053617036728580014819876907581676425179417657164710049708497766644425818845097472766607595357499162520979189051239477530543410293688701816794121187069020566784966191314279390118706030501465178227971687525362686329353829199954511360716197191069818913861933651937074381282836237530248568015793801096409970751860581059040729864356744596909156660545631887576812297656576048038843772984769296699359978478924059158683796552553800740287909435887003564557447060739675712429873442956694931141133135563173566389440297442949626575663380267064800174659588774193192766829594903737056614396433061840590225078961090875869501460989627735486218209940457324731210957841970376813857125799467618666946180652494508848802844201657410396899183674548799279398696085981308690834100584083598832678108828719941702629237336599723822916909372413074847849191911084990435715201280756865095759340610362502027255589676931816740114931174996321417793615545145961339369646335557946920059368986182644633576150694383365471381274380032858469616962707006975798279189277484742495124863197881293675895478739378385399236323806396003516208026706125669528545086608764213563678556031888414092378096318605646971269144384143662260476389478822883412825199773612149296487593406126665820479292041507292137281087816746153790702929397410533952452784184614705440115250126597001622017044111499367496201818624866684017481849997757585182309104009675318156172923133329794551377675111502828999054057079998977823366349005015119144464676687011048613796194120200103013731860819571810998002957689426618360597455269672754384134015312511930730555232839002019624654509891104038744773621183405024262743419451213941936767952193740886079516337792662987709639980499605117922359612668036871116948886425211442672541467489028369343892949866304642396237564887203979837425065219624538541648199018121698096273258670920313542220105261866722396832208678442781740682234954877980506050501711527293703236933521550017572469018273759841173969798849954726562118940314969087039396871683480866222400384510088673379255984589882321935530771052361920788219101655312407141128091222210514528584957742596674955124043280403812534464191847461705980898508095876638646274563757280181403568443755745857456104287114843008577951638339752904670183881761022265656330495231319236875899575830677131902366563125360892224265526514877941595087968264813421302103080708625854626548420853353787419013911115952767261531800918571880540417981172569976181900694703053558582225089325570914530046656395601344164524058125136296154224479956393690573794992726802103411184290826614255755405176864222848291438942145850135353113650967345783832886111856337499305249013262057631705827974660661926306029390139983611941691127783698894094195090358132501490377248547682379944314445287944562643966130805926338430989888723731697059263002791452627322233066227154880355513349325945092501722303353920073601641500552795545595229962241405128522723608892766004980964719503925316002389579796786017829020301578501229398611822605291828180948784981351832179276072570247087529799535918362299988458766645175311388288909301474043401435261867018890884783623146313220435348459707691339899955575171478138458397256453505347116994377276484768230032899118221857013218787224432661133128746458365112051809892927659577574128532392846871196593697290089632856282104003764166161916621358504335565210580444075452969429801319169943851221991782685352671693182237882723879749365439134333984057783302735573334306690006285746129657571406230747529008286232187987094504031087200327900996968474958747071043917971863715692876725652620614549340389723671678900271046730053688261237165584845037538959833730991714668506818446446730674069399104159959467840596706455677484240381490147698780690864564029579012522758211950735553525470916957995012927321893685804233516538328291240970581950410108705175250152402919361113436172994728000332658262397217088075030186294251941928937908787629158302944289235527953778534633603350933009412603348164129979563858192714342036663897085501432639201685811806187358665009127564865991432769735002771764982084440157112760931998526872563901857490600068388766544835070774047191198819750293213545350395337582607660793594447045050770575734215775284410402301069227796151390888135086682296665955472175986621959133811225667170843283766712686796292716035640842375938573343304891088898458814629992315072080036517787631887653917584087286339278041994524492216297595440935170235946654546802992138943946118572676939088289785836637339560983870422853202228596545448417855026412828096658271549283002176321410584824377399717944692353358486710751165167009963511801341108978712075126970002846772646467714877549923922923992195680546811355380884601149638778258261391379421661407035507689800599927750339444863739282605036311705118410373155510273131491046615882393928342152201287122076195549972573589452648875661878568348374483725886476063093239054269728211460682499594735320171977134318387167508917093856258141811012062581371092560809126272766267837589373478511074803211168777384149912143166546421694425847754832838534909513328861883936405738904062131028279239372976275065115451591681773402371275007924233744069618429509805401086039136933521894663504461762925167619094967161231006830666569755480867677212245520270356600512041763123521495506987558841148925392129406249116047190656279888267576937057613966729489830595591883914479291115110530633425379424568893429375963863550315478841434384537008549885520374041102752568838331263966106080721270921717497058805249878346309720463794664965688812644945146905762082777908602837117517955433293887788215269907088035342437008742942874138568182599644716368074064134972639446078625466337873430977116154678836532588925375891962579024130146762868892265159466180569110381272544803902356132664259720426529547618534882391473719772230611454237275980288417015806929406496113129587142479290645507595913898096035049735221725481996620883214116750286441191047522807085803511386920069999558871071027261351523919162931159609240735253345689480336701262228674006911517679260819806822310715195344812676410962878577319885333218514788741589059550289918901045702397493571829179901525447222009343497288151232133552554872425394281388793010788836915795489701008063789576459455458502120328965279616807763860496097750369830037809629382632883599950614789071011039613411360403367663859051488975596960641386163592284719269669994009793508792194437554389852385435687913148037195124653015503360628019495993910518044332069905032078979700467810927326475537227168430787577143045830540630796630189617659276996859274049143916191710927726377460049217432727546457534735217373044908005026187158734977792726248501206794053875342017148279897199379572533539772352318480054242399689422795523079361778731297445976080073257201283666309020260629406197313328508445154375836141156337931714843618487541572267688371455055447500341788568724847840575383580348707674581051023595495987269418886133295253113754515650228495066738289879153161333233445514974666242632354808210414185221323502183289207810382486855902809260227556018047348503594758946461340706401384430618068236212662148747400566781408623194481995818271524817847345072769322054710577801081802032994954575901300075644174966302514438315527941464306449724023730372969138834625655371712191528953080858538749668207022471823669834815317470524344055574305623657601029021664334336079034874040238740287204206547020688919984390399341916929287702417318771797971700952943564768002084633655305942298359699272851548874632033800579144708096564055484419959544632348456185612264300057790198194089928783150826410722418429566507040299480034836715494695091823798664271208565317856132650986161948094853218876025791003989528752375460815054372301346514923043122406550518871922522264167353509499651051371995780460569178119398086882090753976803955062174970675292770128744522135576412748398428552489840461432237721343544581787218850358483837929402099350519440189529080797318316844248132382770623671210886319121086040183503743416950197956470759608815650743964389336871656318630339692136859812296686711517529647837496363554009318148073446275441697890036588276416705157990091081329373424518054026601310620929500101884611284799490378918819745046084000587981850820794033157425282597570029099218156790032788916164533566564829072181046998857493651267757351161008519870854854985222983383580546077055434511664237506460303273884717697733783480648426289093845308511993661580611901939667301552894732270292058071468618401461938745743783047737738446080068169728211638090585432771172573722655756125731508859866696350081031396135493749222089453505764356133545066052312452794702993502693277238977982864347230555218097799760033224931214445489695803164788795311251011714166988408169649467305505063187924570411871540226260109157636816320144451809462141377602754971002841646047462421131040346868511455642646217842397703226464086841342631971406961753208970570578494640826117502130152104305071309714335658706656934991370205974830875597165427889800563569313448987321736566218568706150781481911422785177198726574994188070904599850841732447771374146215243796033977576175152963711449742603271400821036163047709377538814510613384755946101050015760205884913519420619961155923675012262764769931709270735631372066484861874434472338213777904511745791279669583154428233159756821216673438949333739260267601176381071607039948505001723222058715428147831596940114037772725346645055522628906958379433666142285123891677712975871605715765528548318035441080199766910545283196689613860365483711306734296488291808854649060799307034557867977280360154917571618775971285006853618724904531665730297473382364877996831542436095573631386264312879573748836542717527816151781112415458004550615914959224748499854234081058335361434387088954248435576418405168553491246735729895358202770925392739833760650414672408805287257179178848751658604167947226086544218594829077466178030575362923920227145031605640205018536102296545687664252429107036125782213032677392185974363407673815026091162932956932296436978008589856872712936052342213109098542366312169044653620914850491747910512648949237050068337404058666643037631813952407231954287696387106236897038368206031299820047047529785053587690881168917849832071533818096394904260592397858262322184176161860580240651784916624101094732478956802705113368278920870835832019639597505533935978659375837922581240391850597654497383536750043103365636556833127370789822648657843841124476923704992222578969038702123858781207722970547731272299113026520774555044315030045884590461857305013284403816869938624922606325676458394084711558112515358242732476532758722501099743377036894294030771638106396470463859036162643184905813076938895086823390910849333411146273765139998541871876967220147688807674552075203988587941875934674651648846995737481746405067877599697371509006939892690798798161376946285666451170550117470943885311183761750868231021579637679599469747850660258864885209152910150508827103221493233189503068749240647348900284759981848640642186038729207247608611450169331637129492651310206837087321504455075647388002262077120958810501986564937609607302434443928325093221887748772851869184268570889104169571120507734954515575726339426414262043419567356747269267964989675799041324798985229334657282007667637193498126189626642226208116851369165546429236101789353951503946232259063131349571012179897270492254669078265241903037262071197273771085299135809599057806089220900676854943988364817831050783119616247082629831418361998384573050515613155335868241045722866880731342884902045705615906215919786454529356808416645009378355241921744675663277586691215507832135481439824397454485495500055058015282110689291603601639455625956862126889530576433459929722435696379148944464490031800605082566437873580314264578392704566111205838599321186993013953594149610837566582944466638047756779173548625267716403833680667805306990859400446476931316064134431242192089450231088979446381827038721505589664774863037394228843577120796156234244989520861804575080158416414329675273347343246594712359346855373946270642926153787611455507996296256202700671765974822322184489612624734599547468618230658396607428863206333450763216405626173090435064050144041040366625462580646155648380476769241018129172249351225604938675500093811700896552955264892935207887878139288097502654114341730583012270830306565759524446797200952567776483323185153066214482326243915925539991211292259144511900880849071824617514612550467361441924630616760304708673249314911719172876193116320484874127029760680376930305675049056185988085028107214087584883113970643226188067196182861824717981977002799120372941565487645237865583142487719262710806907170045257743583449099257854110150536314024717088375428569729284348249495637404788713015937297314476888844349931836577473036771877539093703333587431128036572048171916319710101443469990680559685685165826604382159571808596109722554895816138900233695905494688787875069761779988619230111347912842281980542581361061724448004957444562070672042511450814706520929740916164098099597495469855435333945990852002507790831761566531561178308992271420640945633557088891515923955889611104345831288348587179551539535406513445231976282655729407297766382957755135892790720489443029881842759094676857539277789607465346727080135264493513056902049959543939324081771959260837862342604186839345115015089849217336061119659403807014458665582432948017051041073737671073346110725838612443882680968997056079703984325558818678930654061346026324026365786652024633267276832764640258143462328936638590442354623515221832480607772010454192971115139179583246690431026410184905746561106735010930027296587792004053012936158206684516369486550926439424713451831583887608916381471368847644611433773828435331867345980206712361441196055012230556896259551634083935663567104856978515529942593363570690025368047392608317477119576230032314648510141192520292037581480024452323039804518447082993659901143157042023497833436975752875956273065413688589242708734288855610028963821095038768172670974069471204553782227958585105487773769393497823021754817370159319778208009519918251952596865052971692097974558563772049232870136586007109028434245668096186063374903119361833531538731144971140833374568194512046374515107542736049367445910887272307416116231411097306807106596273631233216350681771854069103137541628227533507857899344843379348300949847186006195813758252394983760573570691364817896058913306661600799059502560712520378516359685431624275408099966399698891797433913135738087470661382647146394533331003099548055902835995252995007575529482162029951022703461217353561839341226248375652303543729643136899960445874738978824721667238346035374206419043208867844175860107076686909380967981713795516431465058093584088575533061569315055785766569475584467414946572509237279213707665396757873715553173621857642501876323736860435602176635120021930444563476494992884019291723683231476551610694724380081964218489813875330899213541681937941096573763316304565130299795432808557822038121062789618662653805463382508425763105063131536465275667987071571886552203878740084978186190299211866678089177876241041211757680079622374065973830494718033293181580164343824432464539896907065066041565834479327572588493501443599979333479523292767218627533148914576936266543316918783356088811055525089129110214234158752191651289718820727862753273106272246181291736316831985106148616016972882195684000044750571860835569463976583516547586749045852358484901821059768409845338056949012244498906300340241371492138273818973097210499601667221361813607978619162882033218418451944537053660901522621467350401977194513526769042557518010990107104665345255826529611895710546270221653359539322916179084003457538599294344865206683296708693811481906710312262839846979193754804971162660253509708309841286533188757515874888486267613101559806285400050981096475478092854042101322708416043462775241914009759883650214785443620059626283933207711658660076309859061287564354432376069907130288948409522402871555140674043878271460754161669783855447757002995121487223266767909967644232689580347315640217427581041989733900010618682474838813482485715662680868680753416142029263796978242073538377980169618388173119850790593201757754250086204631778440641251393269126713271639633213527809085249552739439503074248215102809926711984774358467373177220471274006093859931866158939158538620369215206758628848426951363164898793738724095286892892775589765307687055286319538632025339058610821337283459515402385894890421574400024907142419054480975043444359010548616956734315693094658034523557590016138488390237280858073093729990850269232350529028412330544691347001337303302049576045313614847953547219390280026944080703685066982980289406223635990998353482654131953502631080280923347347106637858767824155631828515276701477948654169452746334144463070942916970006246748236767749092960301004626946888981903040428090150417702881187620633266920523891304476877112611616987165625286500421290169241681075841593223211287732830613998426360362420188541226617165818626464467285184387665513284530832066891771398556004089984772331308176333172580209045287628862739026726390166756608090502636014458461401578908234349672543235460854915288454746808104101934093830954284085416511002124877853811437433821448826237650529365146857335958319518115329626321546007098139500677920217235480451528150707923718919643452702967540095978088871961139741483451723250047469200251431884115876812919310138031938425768337197971535663105553516174478241247437200808260931645310547157666742916154380886749653117431185498776907800912201119205413430812173556594942417244902050192593567284327936357582246767802751917395556761475942540352890320922946877325048232381473705592615532834671984188975669091136574444470551216901108109834300409836345863221313133100578898235624225035897399043700973102247614220364465927551448985097446034521600133407876936783166433231252276262204049591546579521860025634992585641802105771958310912877538282569771984472221530514658965479254268938848891266012333156938454325953226123417855346569169597932535837732710775486094995269945600184918776027000775205745863712601956169406594845462031674353561728260592207536093889562436340916260409515207075063441577174255424503677348122767991104531101746237565815650407057618418881624786017110347095808860117917607354153535179792765091628491140198794065658123066344940245324313728124841962192069607465265072575924581157090311528575613309483596951818457249492727969607262957800646941345720763099059686323024599357369600538687999663717330394373980136078406419613936655641191526883305264118672429991865506076834778609884366595479454880117993829062381528133869528171768277740905459939138684361307421844984083254800370477608777104827942937801701335772866222003942628820841773138942895260630447182807043867664951838537739588638622795194612607357873268658431344545861445020103003471421978587677697398251464989615836374651631765390004074028598607571517515611423633561753689828142951323543706876650031605875392293517971434470192162976662432187539247307309194370162993263932604164235683528815721285610904598062226163483582915370102992186438459587984842127452633717873848339917563320415572060557391868534387024706382326397315069632164457307743831457981982722745019145186205774099210768300428069942762984629601980734769141314478582371206738641861559829962517369660824043378764413825023344636308517089806590633010679796979970661353010500271034193101259214481457936033812093515594160927851432655481025824035964964587053048671214505465112797588054122160345720080099119441294469151546630090846819526794828143211239183284412828548218139357979746920669207320954146366009568635423592327304566308799651966991104603536755925379250546815627348148345532745492748911327455117607117936310048848919399375336155477754796838780416808762308768841820931233253505204770109966121765012931495833624795591307181927582648004884780880384639533402530350151318536057770386871667495583679742264619578674500495656698434157983751620487206692876975746220134411019036520172401220152789590879881314087554148625341163861196738155232577790251171146230235259576370523066963244661556613761430363962908993792504140894548824170969565179115846795813178792680200911156241189100438149550396430397545933229875561296568935027337365715901380599379471891484521151936611231471924101940543536799969750054278987887452646758557602532248714011678431594154063179166910835274911332525269639334024835130418542263459508195969875678513043882779918592345913091461171385618088005362227596595231986266147794163091312028914347361968670132164175951257381998771137278620456654242676529940721391364384926778189893585830385596136912111996849978156011830687279212321921723041301097390260276817824491311119274853996106668070886066184873550323655972302036077205307486171415807458909383282416681635950084849884290388719982036258100936380421791820552479584944970801344337137120145997366638984262256398263221411844333496932113258638996234319763818642580674808864971560719597247998101519411958173363323719097021795749686950983604815915610547212176503271480165322217586827121887796833122064488902400503641121234091210293974131245150846351009227616394073612400966246024272226364240479279155244604495456111031613469910570798938448860423630382110973740574166857615092434572280717199833175979386278049479184449179461214748495317233827491872375279875903177162804412790858781668974187364278381161827545499720425667839763449914848508785696930138258822073491626548621929767257883914021162263376208318455210091375655902614374691176785689046635381355831134202288527819512155535531556131242007853298591525575090101878333121414942448921410785914340309731102155322058419954700051036422468058747107246311337049683116063786463228488450711209241522112441306443848937674842355697874533830577464347363567614923757986445552649230198961778247209055019398630685316186569833833566035199992036854999158948483582462123279435903862317252800169580506902594379619460046353682808456328015847510707437912962342611363394021208970929105676222471241825744045482366130468646198489992955229109532764625001703956044285771176735321301807034952446671644108778199531095566600160763184398266313447816675582833258145404360532552608489561014983624221841424700948578154907881080656762235537593764316333597466545919297114247130887156922968785114600621794388050337322878672745347821157580993778380528789270349421538323858451911616249122201943287768869852332586450579865015575793452336519972201500366209509468947597304146690785834281308913196788182818431526133795264235340471843643962816131934095998463389474220331737539782496328810550482184049746101182389852884948420107682451254265880263829581352497251793489513463877017543548787796514731466197074558600055492179391624244225508685943193027116288276835148265694381378093427866160939145758616258130835703023391045804796432313093418218598548115916719066353607935437614785618989889723290238432547038954698888678657594463779312130908692968659525524764654842080511104637024516695888616329850535155999767010392497129342928680514698242055776426512951324398272234518111464617388553073172719253119387761126533846575611190300872990506332085676417795276306425927925882058079893415027365984703442520147136685955654345570201231435585833151337726634075123647150796686575230387683119499276631922297080095236493565756948479673758920486025772365407570159021307789553039502066152855746360192791695711625356556656216341127739935259370359947656281470796237710932918780517148555284009376612832348690018972573796096674035521715962169091468805771789866308633315538041417596056346638242407157469522911379446633116764203770060275489261199039902251144320936792104689182793671598666826955353031945004143684663307864783959339792629925322148693935911539289715418539665320852983923829713086526077463070713794638453122707480374225354987577508417499455122501944066686062938194313755777323289983799308506419900681126129738399147261922563944158792072373707573899361021976458535194400046845206695467952976232987470611988113041167964666657343687350856363012136228865035615981422728357786145154085005258117264033176524158432523549160450964178238288475741865075458363542778871885986367276822464458977286138509970389358034795283732554239947287751976709408313453999752425505644482923025287080883013482007847643844484354374067238438613771495161369369393264715735076524540785416260461653116669985394457529550231049733765398840175209605845254025506109319673038772560894426041193708593699426221370206317737187242702299132947941404069498379539562406449721480673277816102759533414643955737923494695734904651389821389403577571906851185652836320064925794560655798397625003025426041133121013363309933378584381502525103360960216175486400467633572123631942331167900521946120060707766065046248730929384164685637558472331187886251805233577151221473849603929401730728616474059516110235758908709462349038958418574432676399546654505894777491799778790645153132801863001104549250431792920661089183343520861649250666457173090457568380088490018658121696881880216121516049719225131004975150434961337557467446512588908216882741324361259064691861247131935915200027275509479554977973608356458651719689383943048990856940809600792504849094264686903339654087812073079614578974085211989812407484266268306620629947872307391343760290615531179032173488227199009394925947617328430262986914444507795783260862162383342086844409863899507832697933461697826121929099357265242555152546096511287929828283392307618678527563593414494494094607430122401323079024098770750839851166714095521815527351921939806052371518084447306553405155338151800172068613555781596660123594626834260875428343523813886187878233762126949641073279893980133496567084109241635597066950581907424612100144163906972674217012641331750567851814481908723484208462559465394668276534510021880698920512500689493536095565672949769632952897049816348704880825173229291890625392830637166146875950539817097472832300659088470443125275488046604634592942350225885848930673641531636682635566901483260044066181895085324171151773278510311863322517523304721842176313904065900232143920971264082428635823457248757468323018903121312403562522748428651167374948327993495424448577129316833175338612686357740796616885996487529804451195256338820188902716745976650288453351827595032554477742035401561695525933717094180256995778074972577071938856169358487097663361163372206133366368409661246826280191368991832999246661447133660135597117968142694704678749856256618717167692403843968109292517273567433770997472186591048265131344041648091574625654694678011964429354433875653657518224952616512322113192045407184335817920202313878168962507107781505036470322665614214643797144487105976052778357920599040409191041659838190853853943442612176116970841612132127819235179254183991472207810354713752755035621977052680931461956350677514033189057017257771064158589353696852362324665835979956936609836795514776640301827415596030577199613401217749418117750681763099170276843939085032240105189759635558736678760407259090654304750447118536534219244720602530271893562920751328834971819264404112883871005548966558074051007952282292164982924423713948164123879769942013130746945320430047700589906765061078703570007092350166978444735516207255906977898326616132461708855494495032904944783644190926236249629989600420372065790258699588909655993678707914204036330552411555364342103501930526920745066871372420678476707931849159790744388066594449941983504721810377455336364256829827296824580831182475401587473771927080465379660744233684071826511227571214491103708803314872564841842130043570118536032234472992465256435729042915944433025319079579963134524037205967856772323770523697275517401037758147357577646426529411068042629298442595774724116693597268700451474470557414481154895197752008859855403407268207703754636397097898290840628625838729488041521528207929391989513594090843303612530887520089568132429482045929436661345387034124525053359310156604852867362710896770380912756992371899871957439864401820246868248721472068424107763861555743018277956859470129451758265812857166195128440825713065407152452567945789599835767363234839127845606405648261973970433139374700970948606629771235540597736729901549791924005726965252225470558408480819998760166301868492989473830674416433807136664820636480779374896359207048670161998093684975695171646378825688213377287794509616440545846266796277129818690501916143352833751224992902691280078063356392679830341061428695838172491905953426829660079515489863529781785820208538599169503110956027928523979651602850618189328221514700691175228756486524546929618480487616686174197989960132975679939645681872820458028712430914377687262491826086685821248357731101710873665447689009209255877201734394128976857324507579285398305774960700729194096036634630221774926012182754715478033956822909948622778041864495206446992282856471493086437513129586714907597288205023706915404197040042887721662565824484808538939546631358695351322357550551233405555151968936599310317768108540882251403448905158874894418723111219078642297575374569599673343902266757034041432051958454087931882138920438962992669013556911042258775599857236265708837346060545425514212422690665349822053457845467864796500356138420087955416377671467060550492590897749849580557354905317196730428977249144597719588456944276632663417522804474781779306697456195561203688510485715259060868925231971816329771227062449699869431867168394132657687861933635581882453661696377205716264641101628691600746002907725264469696254752216029480260838857576910319479891598937141517885910773530794261543936110513069975369260334552402740402524797639670520737218739894990199352830049642768781277140491550372731496858599247155396957522210385933221480253917973548385296992118106614212695739995023390366392053870179037987455580611937544043342741045058472346196621242036794802089375550198109821494910116842059836414259268492488846827914052334275789594454405782553883896379860900249747073219575775122172884121954615410189716397812209732352121923738578938882480090600777731252517945630484528604003125078969001524635244038482382417463931593540879774550705779369239432330815913118730284603388071582101356372231875295780684577028659504716105855303581943462220179379248479010980019682816644846207932235875173173339254615430818298597370168801534975945351609626278388461224963330482967512566453495630871671876138416373066588102711907116997003160576422285910465676036110480237106085154827419477726516770153755439870769612798777220345208302203757727359370351990906947799397212468527355464098628406429871958236852010460207480673724884617605477989380200165160203285365672611591054144663316282172768927112169756537677641506002453244975158816753748042170013127751662295729772112036371637348784209063206950308809084793057524133268257596901153506399405409571269803744061576630186793333331848316804203888320255773829524970311874441088813540655102357871484462088627642331328305141124200386870555760535761845810134381377939182796462740075884326090393430293699656014265508596677493142466783542934174994470983382382471696177050458948259708229761358313214794100949375977430682578802858670650331478375262461529550374915475058852534645128594826974291209150680017695354997673625916678737229523739300097770681740321976914642426576879666680737789967679364202084954958182470451230036929461216321201049378398781167957745937283895876977475376110235687383497662941763038272261530633495903488150349736762297778498862185906192307347972622837512643784188244031071721108792896642255041739091739536443454971433752255730532358457664564544842652764412144382782841148898987817381220438583756393723366921909270236348012335293165278782018272271226333186134142086303827123397747571434267708961237976018249639536104796479607814209923402170427413463308668590110867854635173151146709823440051202018947592524352894788022946662694851267375959030082503451305547393006551793896792519251457447119792173480744904456737012629640378229341458736041239069365675639622668239470594513049592543173359871415584020940952139777088157957902077149649976204885337511239586858723595980648900661891121337871144600822394109617178127998646449927198336103837225220687362702132857945419705770133035864593566210869819527607977728468715989207130906020846340173645839924276212950007771074600382113823765423771827298980204836962231274433019392528103960501213753343537113332256725796176873166903695696403557737645101104503301826552678095195625821284881662288724632530684511853345614654525661246844079956981386459178652114314702730032481497571141482031133136731054502966196062652235206085893030843954778279049163020821588184270430586538804963929957301827149496162248752578918341216531354165100890138917989323848348237725770730772227471473646492900008448277276744206535048921798682368115122357124814087691869942161979756481839005416405376437721533856056276547728121755830776860317805242023335951884576064468058996578009063131831347175447616578030086276144181582410307650795677077947436064736020145964130111417346545399032363683881417250290589964636199296044293556026539581025351282764279497232709882381913743741950960774445334484667520610312089065360604427499870631265172193395279589134095398755251298419398017751928879255266634357046337459912357900153570198131731136452265567231701369504917733372786870091928228219054901196440417134696032728365660117606527043044798788222640826370471584164602609307101036074333297893871595639237806901988123845368616028738925694514661372439812470274652443988559640582024037679837275846448839209309792679845941248379775273670497153092857376370123847528229461035831227529697312898260920134026784495930732342654620314465265217185731324035701087831765714881986959715543237397307413017010030139812666397382236474391232432031591583987402541408768273563763983902266516856486717027652162232701772594353647832556396046777769157885475332484006271302540888264121013395620296752446715385658992313771739616065322244979223870101243733134712189310707235866199582272591678414702705267624813395808771880304539265886253488292709620650237411947450035173226967177965943088766628942789480583708883736080449607309275430910981513557205698246247901811015868383680330213634885947687236663408483923978683331904102356451286611334076581325492039295659150047767295767991831077713462478982739352356134214096181660071666380492619773374625611334674362995801085991961419111768544062097314666074423868033949145897268903373669950889180496123108062124095140289103040188742733130113899334991880448882462186961220149495755362344494540544449833910347764365256570038478118984614720189580385164810026363209359776121084952060919062615894624190800434927658575209909697089800002813711698140543578695625357049616027359901348571368599306956421315747392053062907801294192509985966960697314013488582907431385570861258831662495201144412877197871901987866275748775097608620191804540147421049381868390377477382207872476433373429222897594456679780756755994862870390534846041688935211230913962390731313355700095773777430287058344550073447362039228442253959083836665380429646634038595280546218951107228724449863300027760935372516473975349744325994422872223764952532935230957155777868635579422092240462717761659100058376048733836202541046890874792263305071161492646632012246802105993563647509755989286743541020996847729500746581886505335250466697203884559044287988607994659277003260313807711994326756321850999586731050397076236160529333312801400207796377456421970385813785088499045693922727046841600249030756590821088802094426680698187060701519214959601021315623793282742496645601170396519987069541618038295330372226900959600442446286848477124231790342540238336097103336216014364590086779188714263133652594611598858035977999567255152773746654951122413373829673257590872541502338783937285071727440284892708986191285702589605126515399999110908283509143704243874762218013673746612896573407927609619631918144525337437469966614570937839883240998710109515155696855776900491625119631900026445466728450208978992308713731151209401836459727331952124572433693400043707132694333398928998583515978981102216328185087721773744614532044498854198667752976774248114369621800238168472707937396667520418385568601148311671255782283125498096129565301655027583918367975062290070605662134401143278207847587166817918769339607743056512424207293138542348187430448247617107551155105429331290806055089650608368662144156377470269513033190685579597756717109009546310592588783650399344153051989227622551282399323012743220372285904987466975545344093215334136202434217318334547181266597763932433484683854244590767157300018077700594330362517127647096424508596414091342974979197235321496560671757241646184877121551659611507732873652027802567200087314320732574170714603677567219132332947893928129023114365680615680015475594117769291559979928113833452288574575345380181979256654184131044010577580548338117401568518690917073453017310387919045010977789307561272007391822283724772176713843058375498849289305191110190876610771363170150638503349520549175196102380665754118968329346198244357886004845683040512049682201424336217081414865066204046310996033223117390474406154134045438315820789964184209130359247519062019566963959917416650938896320111892324729994172040621442422179805640359116711439079266574612071047197725384153198204205272165568563112829672963333129265628669002216654247397402600332524862807260488490366940908794721964756370957721893469973484493431818610125553789430307660996611721815008776436007307760674202721096572527688812460177778387674062497612563875175395115033472383077859581937373857786474087409453754359588717955737064838453177644442601009831676534953093371147366355639854598497745906145720009670662779634595660497395455479890027790476444651023594272603543934484765344150816739361397288206411323071205952090667916489364711402969405682403489726718756172893441791171669465627025359556471991599064213585732886114017586769121428899300076747406222214923124357693826304785363897657589458741389712060939690645098285222030521397741152412999130950629476322297345413082446969879355006707599333511632320111480578083405287267244934043802617572036554762851923637856322907240964958875375994727986091362902053165733524579387111293806182313745136142430493212052596086535414671775515232510040654312395960028831219059927056188950260715796057837391943663645247428117762262282285140821523714041813628495298913459599724672924287968124609632563854580540073320065955845677102498185613263849333735053817237999255197582496057725542000088422366837387930819022606491792790091790784258657038968308773203655098886501695526765631930575994863661920863400192614701394926087744887257354818585419230316756128549049178921331768313173031488793888032736223590475877443623848940463177671369608979973968028194155530756174367207109668249380677521511521026478627220382667389485362831431923914359073139464964164721147819976373983502124280742350930113629988765231896471839104559171096889825284450385594586570926261423199058571419934885449947635445575313095647984127091130247915451715574132263449008630265282488416204257103512499266447759302357900436485456051880022350124073908914542445480797237377283650379140869615652318321323083421452054682793566806981470373140297988696467794783245732690370249833558831330556798313493408544317695399689091762667555184262399577125276095462940032684887115216853117096834757281588818883401047382468241133299982998479408512804907723735861619854438947274647993848967405379641968327844517778282936331433418782268342473744486345427598685467880503841202100245873259315174052380343990270377556756681067458181288870395697821193986192269123988147638775498579949199555422179154391206635510503476809996169460290243224718934316350269717413584762721529036575008742050060082521301483114135704724582387741558090807899414677494990298726339039139322055623177479004326274317520509102928441715473511659204368649155707411802629543259673974754500111099724862770428483245495560032822024119676850373846340906031678324099669784855459301981662360215427148048174385092223519855328662542120543724970970650632929468597087710658340978594143474589164253926228774372853274088254152575533369181115398227092444794992523810728635201730525514278091274785409246323893192760517140830299234588328396089886814124045043635681474028155905581128008301048741070481483848582410247163651917592707231678501157788810714920740497872699341820497973839469122136036062343852739007584760698896541619666320844152931675704155896358662912769046415368653198151306496661691117771880328319724645257957050974036731851863100728854599879328948626010831199700268114630254131758800616889448542440247513765650962589092703094169794657183410135340752113008967624135633679373023845921912411796951571784049686532446149316382743119094890252089220799196080310548806592959886149124690106820137535564049378330136222343595218463011240974890453498844414453909115252675978147682968963219065380727652118503227439825172269372401521727927992215415338573195850400818610131677616096910519081946015918312369487587604702612734394071639137445672436374610708661050595594848773069223131417677451758731245514560101257418288261328618929203089880247159467973587092758836902748610886540751839557338650338465233048047737486245454143244168236658592120527925724256165247019827362840187829081026809536531973509935708042424711583650469095432384230753791844685906751744915687236998790757213499137992240222819335043784014259845047504875457032659045197778274246554723984461851952990902059527536471395679546811525667909831394958512515169911632685389360288259389988327386417045708040220162086438618802008307811952537569834765946647575442062816015745886908757313412189193584907919756835007413126270577543299382512333887395042570263299382271266611184924224569636723558576541547525850152492309829028240157032109247216194356863953201191895507170160381158380815489919121667352091332962701377751742511333561487625832305459669762587405318583078629243962423362730445506193280913429087673655399369724976898756997847755626228034664156813802396495455634982537087963492961798497860185245721217684151673049697334441478199539976883476214713612737387616851684044553404008158242533719104927534422859595531904640171449361660431437322324112639322244708756776807529304751289330215532813649442204112531914948291477051604724409167462201523201172864839083024868901352887640875801658491284137678391394062006926720174060019861850939148899135032174961010261009541291447310578605138060230143909768045475070130041189291031054282439709729927921995557974698994870824027577444533397108010838641669786440222283485747014697235344110754442638552078529863236591201295013288230129025010499599165322915176344024159631942585420214660952425121261199623390259243531682162705298295840076214527078693953098087719466237391753238211280613229932169785570781378774346783763209387498915593626244567603114420041776150647130586837455297296983191358084506353799183760889004150775814222697009652054586036496512396713567715508719549001351788609819193751179043617079406615217116937681582281957688614583146854133380845807210791542688073725526163262783039723440170910415722432100298937718172569164489895899776848522348588126842116198529402518294884393785675682477183514904307984174720256892944598089717324862227013672963004217263086306986378529942720881099588969383589799468264133195578698534114198944102620107967799334937660876587891525160950783831292708928834901144857821449031880640184583479525408375761231604009869246546103210900724563082653753072412880974234505025627912260000889352783180720509975509023210158171043215613749847940551418299045983081088217607062460036160415608189604074730030401710775564058227115145297691410659853307349390100787310845657040739700082888616109425500208732063518713982493221458248319315419170251587757888191582900175908411325123352957428834968208915828763957920183117373266635734882190265686200538680399606116870396670547945941746596018321698840260250650807262438809270116427853290761257012478217639318098749370448005777124222406556604073356301463059091724821146067397473811350674256201077698699715210235276455753483033170628342016795267227328365115472031770882721153070413375275157611894759472107711863695965573221784163111493612978254822618285858426201157843305561423487638224359229433767644578540181512233522285217618175949762020705732122662980945605751564323805632346775786654009693847832250197534568876227040246158625126027871707499841669220099332284444888601871236093796371783860897741830204580614032078567205292063188157156560303732233008700907039261364163205221104821462054700399425132098129081823192667112518916813924559663664636691317646801102940576677431879357381511156142265868256589232899908061267129106369976663555516522861651013646247446471573389240841931145674683080879931772705455679004963787765045144581817001487876746292756576654467619437325535121254919030192859500015212810792900388047734564824709402288322725066944975153253239065761099563871013068611956114085209594775882157748186111544465502603502127527920004641487006813485403278015270930419588111751348107810625293124792938159484592070115925631158050250013591363107308871254412378811705959413817739482812867998737133233502126476661390598498494700769359868797788425712000606516093797095288888287813171357793546533519353067644782464640632253854028858588092874689919091617811126501555716252302700221277028863974674596795081365823792240186373414352502365392292243385412207705407675766115503027868199768591206906532129775832339899231903453795240450989880431607245805112605224028969044586589159449468203446531149194963854614155546909094558640951308126390308384355915877574958114515302242950262507146080901691770788551416199364954523612727818184829202316853676726269560679740447156606831500956662035761368004913062597120817624492457889434714527717969272438507012100779596255566382921532281900165972274416397460275894307237067901544659591230293259502996816046511166809053806923760945472885578950547167924386935817454934384757921385748391319365382719892313809896785654685364041982422861976675519978434835227621935509515471140954495696641929464289967578488196805545167795362552049662710524417000199371321231043240812838499233560133444999017205464002533679343491854565422545257082240425410052601586142878863891249570286937559863585699681034673128336474446648497666130887002559237509934970134025859507856806068158781104993335984864447862755553297147736445994500691494931539022550525632055467693492740343657977573602645054963340265207642052842773448201520980253718438297542579419442084038169763628373739049578223441900544898045831850622416099723998250775123893382758384709805920318111289170085461153027543651606936424750818322830828007916152790911546986123844825584977754622985824933701402877714984136915384733660191670653111949285035489657289616112111338329629766258442056109962011208214142333653793512872260591841773678220956376416610158651251664764481439520998433702924587094976934514577832489570249620170150198859396257045267212759807730386875833628297837443296671532061889621795158171389185721231697620416527842800644299091328632906800578006437220078745536966693565853741978892274136058084824939574422496109343259803547243985213199684333886938316135554523903972495759434673235388348952440275785351643744872411188340517074534048186282820692720488082978183063495416705668792615414769459008515531838984719985597283970592473024390927596944787080455090114445213003576467432981716856703376931747187661079063009771306321639316167004661731334585582744547092674288602595285025975406555837535726740893277855776656291098839049654646223103944087321708626628646127387522164268115926599313817733529165794665187351742575553087280397079292657543280120459596452860111671449978047084048214907888718095724483309460110757363587325208114702881192050575455893891533585469895542146964437960580906219589908543443252651828054686715369953080584495529733510034314061332673038577563555335840142578729377560755168029310445539568524780055427352819453285251050935900413932071233110064083154523476024009371267743950829981729519217443235483422475032424916524272237241686056618823225072097167656944442237434607094339533428757539607606893523021901610859863652005555757099671000482781540576742341606552018169944599137688046750589980688927965488486305138830308842284041231071405876227469586724114738024117504667555349960954911784565938201967309443583154303455268118198698309834891022012275983841883704795703990782525572099123151950502565599686756415445404063831571440546243509635504036916031761675841916910135469589110143327454814111057920917590713106298524825511942704399725086524729669558897089477944325039990000276315307599414875215364747194753911572230586366480922950777969747674284557038767251246811599232939797410391619362133172107224468651716190480521362321373156589276395932635504921668624685937464054208415208947885626205445523477759598360004129816323302508449379935852306423457772110269852097802610489398386208993585246357540429708572676103879359624312275993864520352140674609683437495293550734146408683902964387536222333165942777698437542432840764033838078626732414949477382438027512904433700304563028971501952822629304744377049302111590010332925028759995806736949823709294602439001861747845612800431314222500881648289888448259626920297071173517608331416992555667951730978337673814707305995220647316322796391881693023987608767825456660784697634784798435445828456655285931776949102368804442632070706770567920504350151195686034180327387089063736672412526229459208937012789585796893747280111228629415714845406463449318944101565471113048398626515914763175149874381666107162928168452931319253065980830399386561705382039714950452769764785488649392819285430244349996546243185126829968519486415571251842652829169093708449883658138907204979182243738433833960432440220611483011049754775013268636371550934654963547835688987452509219333015068104057306958848073534185742792793319893788893072274707280815044564960663147297056462813200049790475469998041946668439387157602138846119486782016568777496736119763541928076562254640776707885569642057296352956514745360965970900034581533745930442965932778585645081294105900096517914729718422110070639831812156626217518525358861413934589774392100702273891109897153137142736612673669049993003818503869586236157043761298788132933589041932218882031693521683148578433709546546349431811252754146455071285196812523439767181832693585743779410758581480016838560293503478279364622839974965243822547778358689296204711914842903613333483181343462147325104845169665138719404839029467974255615508181060881035921175272051992104189863690019188703207337315140585621633464984772843163338227639054107822120442100782261032341127341082254940117805454188141140506461195194249446017567409954264869394317301879100462431967930619193624415831736040738702769478773235246107912486883865589946564545775203218352037294329674922294190926082289505312364607424216907269458444785579234592000426702602929555211605200944123357278348724786895779844230838125939108694055616720800899180366451334469738445353205910665876986743447818806158314390012490191368911967034948604110353918503088608421654658076540948501612584374090756484208411238614094728275180336844175363775456991837072375212288154978869101542464644066436442682097128653336817745377677412438971822919588289902805896595939616870117013534869480467646461609712706807659315700229504220366148521889408477688955634348573156689029055394723872519990464633960270641466983406753475390877832968005735764077370751386651163362877561314238697343190440868835677284130070127211925346108252004702223059467198472074909998596325923623895567815953996016342110234194881912923279023730651357682692873417411229744131278767573685388543370255395902283746683858394931240428653700977425942771114513190601016756261109547728442663867200269082354759755859842430927584363110319824501476226598593796676980499150198688619454672935905742534266634040620903488917161400847155593011202037829667980677535418437823126773062635760677368566988932967330567940584028740177112249031788422197627291625122942136143178105026400050929423400436750937549775323756270124858331132184156871570024887915230121814615173372841503303733891667503484863922485718396135420377388088235909137473538666793000161400908283112875187342735397215382473036078725737307306553324630072005076800023384560544894452055920896207721042869796412432794053867146502495663575482850701050936395109241472957761102470659186131967841259377836026102537491356902331291130502613498537260084232857997401330230913640203082153961910475994793553037870267912559171940266914532130672705201115256734449512576604713033051188009087051345905833828238730902459475912918456742354290035445811590573492736542050672136902209200651124184312012839784711714724103049226483938347950579568885834428069318037887034651187511447186591717571117332650852008181125583836727531047856048009082519415821736566152342758648794535154318951091091117648663959119606294077463325914419061613573115946175298581490668641898621104787911154357372473920778917555105950661603858850869818196454856277963897069082194792173222574138390115003162568129434268736952571647553729863447796568681020522807100347411199146420633826610505639440048028573410153018846413561774165867212511525647696964150502617390065655809749633112142065491021312105132383386766644810143638341215083990723013236579908485594457923670748436234176776971597580028301743173522215511940385781314710935428371899077375861278883586271370740759719258108686033220636437721880137803358747565993598135264323330367479276512765698923311363247328813819761357711392648611097721537092873264225517016349050893675425002343060405603368259387238330842785768911922186771067175920783799563541459613990283182800932996469414920105125411597654745039972544561108016831110253822199254451428853785520158821750444845402535473470965982187558753338733289248320725286745125042811887527627415978649258872502675387855890351387803590993532266310668746630225461825223206415607580688893455564580825178108172325422986995524062965925083706371391744689140317193936287184588645608768123176626642822739617519203933393477643111769019178605722940882045596969016553074625532735434680135371001319816569074874787968576786913084755998603375361392234625044270739651651516406480931134653410713900584153648743199502290614750590904341244783463036787475472519199321100566935600261184095096129555800865849588337595742241046676298523955042329166333162125368561865905604436076009472967189443330709787434061750955695405796646308802875532220961137065978759584262262394741702908509338211281092039671344946242900158118547865155323987890398910990944057017513124354717083988737622133156648672348965514616472158171254925126642703383068649853414118300539356344734704909026062404308865544897534357144334486769031436086239150211011092710217759523707013830456330993948566038111252244777307039085784653366646681155769893820846637261082938633396076416650771664076413219882764890400886257190562432398640730442239053346712318555386646154215507714936202278674715977634213849794589285605317142511355476100307217040004840993030593913573721158292088857139718164615907513275085939110897482716528694687719012405358288158461938383533395817942761203951381546706894608888467803231666152366917043904069762478825307429095767597693167373370599611791326376080811574719233066907152980935276118321746031930389516054258040954887163244654083244779425019935115978131967136261012820463083476783249185364152713533691210239968177752153741446771260651766446451374421361288799850055236481917793639716577623524478796631076508087218136284206304896401298917712518130800888626092887800919968776225010523048090627337338144824830848191801773451434781202989509246866927643610789943406069931106530913678733007400654880782302707414481053993341836024494408281402135295902632383467083392785751665451701521946664571751072972281150702902607210908823261765867666798420742555355830247528153052314079990307622465889173813221830116673031944415562672369717579365067631967180490103084119082618955559957142084736161301304585213681449825423879251457599757558156069642996024478463849258689885448218248527693274549195912424454986764482675213286138567664636222749907564208283826698216419413373521690055757484007185408412679159411783497525675057478583669595567387051242877605331922028353744940891083505598445078489780248672867163073775521943231588732002356345313545432402112121054259933833491802910940347029021315384789136742496052660800088312134125077700092081923524943372302449477105661402615651682603457329124422004632751964472186976127463350910473474328859773554339519096258885293171818980599528229854593498637542412986049356743773512279409870656653263288319376360561622240906230701459677743343326065717339607926616678434719210566101213819867885354005948854701367787611762898548566029875304962683491266048677120715690256062308317182429524785633031651256830415820820194799906935351651471777568860785405770113267209274055093143222317131926167246505675752429210820545285468936371730385532250524327175804618825707902713665030774294121356803890645379375443527589223729651396800773253011000828447263247094517007821828547545758391478606988563704291001940114158456615266078560940679852953388058514346412734413127002245897549968326250113465796555488717621882916663967024430434054675926860771515952492665087833390630017996523613720798147779154267473799573377774247492926633083040624731942468564480532351992676782123613605866405835935984790083245510716109542049798571008242041954327847967136720172935957427967340790265609902780197134661927168208373298205960704844357743462756678238023978138059896533035072878447871936916295484844216382102426881548685160473070315630750302445184480274865315653439315567462022050608254417448111767508995392709774244859982787752385817257792954388927272212908611573855989559131232163976045546601726969642804613076685097854325538011322996732552918223302240009290254734526275291141631881180530849429296675680942845519124109176101549259403545809637022710836581955673099195429337991910729726621302433740411181556453039784134686458289217974628318777993185692060027720206047001954532012251617495600670075294773894097354003585311181844248712860532878362581650718377174373677401789708533569682007059410223978165548788907680329878443154205313912835821122822479838951677514402166979351894636757396019781370822461087015013828099124455641859500091053213144139044287054771302003032748435331742508523251951980214145977547154778707057003897108236362233447502364272941693206851528780726344014390597054762378480629702460743431068796974412483776827419353009028499146360436868711650062634795327880604467350965116330746005534420179455409276563432724742093961658416544559703158190775501341311841852180282774046743032465342295877159537517940749815321909308191927557645464509191807112806012814010422999189013546572180980071015292316524890406095500211859666711062420716867458347794281986001520903340917155251304243419034087496400080483350462813391753736267896097433453763386504907509390791852434793658741135230157747951405229513260272439987302710308957267157920685139485334810584901909106860844446318366655541248774819224760734540258943459780184783306014127050285353948371881133875499759750841839692681926926255812773365010313014508302292759957957389181930849805161950420775298963659972895303709083162331967632548722564033807511728498452698727422212611925669234956036179493076130721961067948116184379914317448960071819550224709321217906820879307203152529595174581447041584614637993519819657514208989590434442794544839967725181471911632371617903358720922596947334966762070583915634459178766873580636416256438335797735488610801054448776113355592588977750737020100498525406748384320485811565528757472939802798720740070624514919156957832195257897077389561896887983828660600949305402904891254040470150184522472617825286991952340499853412952106648169911541089878589242462054051558389508608736756131783853090568406570979307293664242205069785400312771595740764217950241127758613090402956897499175171727282759427262602650457133780219646573653143620317433541131281585381265864282910504931133354012234140353975500918150153062574268616587373891208294355879676882975625573481765669533887021357933660087065050880384679368484372161645851080425716489947265575687842539252722794876355164474180819830415162011575589321037588681309267981816876667554450419925599782231612953019713546361742355475556193599912191636612137366169609413541144115745335822087128043751983902637298724779973649508298915024695638799293484114675562384630104032555091493753632238975374284899424483304932447788388061327266205682353237685528011654675849113838070767862918591814559174695837234261704818524406723931068597373496830049270812409405157285813496815358446357581884805580166148824566682432208786578591676810597453332938575264230792401848225777573972653056075810255489678526295324987622383840935872375775243410056420913740490682479877846855189481626948780105760647925931219886981174901732488799761717617918541271625114235362479604227054350435332555548523050676307941864778287457466081012328892543029832305982885296355767390549754432256696406781851646308089659830372407593351367731328082935523500931879064742676330624677787437830821465618710952173845631101468614048221149707520878803144359161296542432477730301601043396473785059980579786640428839161115213409375753621518978219752959158499635763485506470188149320142381897318402785025717712166622334957934570210360729751206984294472063559828410973269309731680686295162924071550878978002316628546737538729222423113290201812738613074135796695493843849269328844845411484569136161128759457726516983437491623780190014695476549999641338252059616633333174209887550040198772841379728893937575107489554773828320168766416577601729419410661838990843215822300856378634628687044271903774358614646635832678529729351264674662822615678517440464527872197414453120943782209938213980631898307259059725358543040765941887752567400942544859149096899342016312542317494530769942172094518067843012463060708438983343984859122186710858859554577214151482323533193316687312084193101624074623415150665502904763361136524720618527845001626994509990087847096636801890464358067776025261268304442358320167026557577359103731792277813806307388644052057809701576930606771582487280046722738654075531671495767823368388639277900175509778529578854124615668121281547448429078728744355771620769588746182017310743651861104398206064342858119425161750965439051462629727443171755292371363330384773102452434710409939940658959374664120957116407176231944669573097525300769254126858613603934471864263196707336646368580691673012401667311144503870397167123945184899048760918466756777384755916066873862793173124940663015873823329125038103317251875494375448605586449934864790885945876446093397640654655346033283568020490838410749988342284815587736393803127651156130834229495661432534763747264764261438782807241967831833044762668936809627938173248423910657086504505632057552708486400873024433101631576808320706691891356048996076719537270768453374142651707172532447187599610564278422663396060041987297818288344726618315626125013014714387789688944727869660123026847492762131468006218932124570559844118062136344105807411967680259543695994775436920594990820883381023220342272928418870255844820938969645744309565269604805564015352535468856701801172337602906414633593831163999059081602393251340114624431902761560753030644455503558856299311094772446406013768776273855831661700271539403403227371025174747791887205695338662489184408876760170877447868343268768933685389871047811351422040055939497563831288402150802258099422706566616419618232599568596723081543826025955756931829904509877423129668303444442915491161560785939050966781225146224582263428431452665976797370399346382699213919146737153611917996934271415228234430124885864142252634833058238601031712091290000573873268771918252636484814420372140627582644706335672383920924177530028997998316369790263706580715626907271992402690716236113798730600068221450107489387331066189038708115628702828295395513123857928807935377405735627507107538222204263759813771293283442199568899655581041079190575636755170809235356913302766664720122289558634392812362205978951348704489500584543795598481013352228110579090536097759015420516955136543137058681416696130699066859684570712383277072348910832519194170994811853114945117579548346675438901868001833164328255286680013591662206428713952750056117422789667799322597592928396876044024202076736291672914445110368843330605877409815763755261598612399609462309638843667041889216130065643639315766458805772020093498238327748587372350043293065150221925237263015147930495779135495012598214027137998528485981079710062553254663596263726466141634870440431302477250271423729713838428205588965925447968767934860273441668758028630501605021117767975625107977666963256490520287501181935211676538305084338418998683761719647498034591624017131652223369363462990354762395194352779046675264400278810039112847606277917509079902946710674163422723975992036826152101810887523680364481627378988210490292467091248856848783968023904281559111716868870142176874892769711277224273984734152852541123201063109944929881133115845874016806653458701489771551172323220310427009296608798121015103878409422337747363137417307318867464140680084908047251487021796173485784964333117692585027210420545774865403133782440144877092996872276127989635027868511145557054388973099887384450278368909845185116903114432202636679932865839292198355137180323086567631846511533422487378319772763036209240409070887634524694553522620569336549203476631924532044429750784654245744846045304857509101228709878264651678331609014649559924400805428854581020874672132846794112210390922545772321227105851425307672268849596013478969909204484594827450692669760781780889888478854493714712258116759408896649371473425234242297104217600031305896006198488572484534570389102736428368322521832989946768730106769934845071687969076542813362157172712148230883869108232742765515424592701768668464763801024680644017996578321957975508588195814190221765667605743227150097545347931348424728049578444349189834172700203557563796049131022186774651749467291442170216121255438644979457437329950674697979301431960248964326835778719841612779861087409528619420808414468393413420858598961949086810802231480735639177981683774389577934636417862471017624643422491908528477301876278739495253637187080215630685788663616330565136961472741435158393193322637005581275132613247418384786963932152209213906771725031630545031573601474815892239930933922584133438308647628811256533793426754731147629262314806925592573671897076353699071655848644432500258208356342411044152453563294545541280934339905773005864161994227710020971044496100927074312176959276422342761232023803816063715695954308531606621288291932510145298423443560123314833104085080027243238340343969725586929513911591405202038613806346650649542006272534872798568395257179906391130463341342392059062248205864393156013481588570522928541744117360729044035918639944574775430216615140452831659061936698705324064773677597463035726019013776994641267242371475534611853393219755988990665545657044861406448252982343948608741319172034987066557285244748787717722497997615013563871111910889356498677491364451167271424544558838185479501192895460456307245319301559019510575842482678665473100225825503406166239438566299814383123650316965440217318009470731245401258660232492403519601728333012272964694359165726276342755328100556578448494940751616994323072742966959899302197689646795565821409446562810464425157429526422163169310722277737759611636933133184529939308744664978588599169068712243023923485349390551524029270131647688049512217805945060294100863137895273420059873028757263349946813936151313461852795304272848398157917778296638622171272541690925961595779220111886572637669383329679922238710768881584119196677345450542211591336621730218176444474380000658291425399243727768014472778651316476421842556106464320058904667497258669860169169019665291233102048585127816466941345365522355001803787702330457299404129589765796782824463815749645354171139079138112998766315544858161725514496919790186503737783523626552924378101723252395844641100788106363413597097615890871482435205243330422600328812340511020461369552785161556344034990938185083632214700404460291808097765809331033584089136043853052083808564927297233518535479812202738893344761549939308407117244921174982375967932872655936312498707802497093976495681625618369229294357571947227868838009718412331693746674303991424671618930337195750989796082931328329442187023740256369600319106219508953632885232577982919313155632741987483046092862075951083092005296662313829757372907083470566192859221078460216179243693855623425049948135461075378012950664965861552135888173049619571615575712292669373786437057736296977544441728909509755039917818903497665843098718215401164178216556426027835251116258371502243678971573305459731701516273281563046994198343155519172906054379132855357188202233224546086723639858642096738486933534576486928734851609963470740712621038424263702647528578662409687026160121169128326488896160112473930404599278636301323989875912904478538697525512345333147142150664991795874986900778508818317068340987126149468380186688458974417652214687338215910723300587814463261417275589162032138651588848089701654635589082380333946717756835690191828491895417641452328371870564445433894377636729652798579696550640750706300416460369956553230095554148961138946473492817809856768833017390012271791861517549416518392706130950768893645794534920590174402809066133308838762325575402476566809480520629300124540711132769020343340220435773218654178342480020953738536815198023826147151879547772457516181402888338956536517040338133875012534922425082056380154778479639032381195011385443028193386115158531932563068948977353039554183893074847417984370054132021861121461967776796204677419899447019598922968983814801655336946651585865378795476655540228406586474535512013512482779777118512222056538070272837599344994409841027723799322369478220735403519715277741866714834823210213447973799421681650383282499271219777554484000006860261227023866799106391849032648632937381006238276293254114772062343366896936312638816553640754067670367330003941407431989198739455874087498026201003046247914298242117661003558927785878963396048382571067807352302008660241802947060350567745090244921794741753034422790160435490144503641944448933245562270632562713566437328577006394475518602635865340693233730206564234930251439041133882716679114766698503487227648131658410225098700569572950053622110497647116550937108935673126225392942553208823970846909100831143195623613306250565397482923016817980593675198108690556561606014261201422720864194572203544653497051793350662227772030168522268350922731926780519275833366883683863592911697452051369484577959744404235074939073510741814069440423854748388910746334593688383310830579449913654272783642649486683365085972116548951279859532599225816658278983523276439581793745393489301402435050575296717742607120278871355359825683930660269928674228380067446960306909070094342081389266126907945753481696726233246529173302187660401999314142443920831367694061244088125784790988019287315796460447992644551290306473073851131103871571465303383581305330130636910333276148779622448306840837125080992870565110316983403027736699284887463989006166427353582727862238696563681646233890340856635654665518019151695625655548789153792624399348700521657941137429198601899537656749141307319925128597177451538459512839726292553137945881392799154507209413721643279233947893419852598216177623164487121046805506981080219855881163987824799828811295490070364050225076119889017424085136606182398983951607340847712838209757654399031114603823199840671938394940690941450260559020938097456100659865234659277678485741092941597522810214505860490855262409702722717285940129467130769635048400264503506313528648976034955799864960013894901221727405063413147008502213366083775503974531869286634795281177300186945134760897344883691260203973951466496302764542579607884576993838605130664406940999961561277246819341305872370064282179825744171587594275870562162698574984318474806268676116565352031674035140198505507827846827168817063966613372224999810305799388293500060023097181940610205765414216013236252876381142160375561328671917593809511897999059124775242501000732068800873014043908728055146525868566279336792589371867522304211744796431565290180489773305604350619391422675563203704776625820528453836895286740425128503062089560288812788662711317739132574586714255964954511069749375686893215588203233790828718468526003595344166302447633248830245886255558626778749218960844380699109476125847258363262380361914093083408048190201040071228258336550082346143514059985873151951806345607732601207012448983455022834014923292979355432307402461649887184728955549196466839325152526288766480093855977021192105863616259717070117113595989909371071766569050872121012166277874924290391020082103799388085703974928326322979945459119088332138657650666939436142745297143451373352606222330957135800349972904060067715503029374513226013413607966153898905704154338596563869905630738668257814241014125159341326751215569622327730156457014526843050254491580920172108393983577995591829328206539171818879777270381427694432091502081344568656787014037236669885343257307526774816436968425782665011345609499871001366287155396780810659076153875128491518084636294017245222021064979210539009898214998144381677180054375461849993981282956415268667963950021224882892768748024768492776382317903072046094377650335055661178390467617874375680220818285529869967458564504631498654859672906398543056337942431046060401284948595198770354160570056613693647973844847898063513152725325257680103189269037296547761683572111724695898652926822561823370478807208151480347712981269456065091432224149194539920733910169865444534153288896288544265588847244400324594152915124115197382486419171406877547713594619696627363651601144564970825961572827349186742982843012493229523219155281693000228869007658538059521523997513632482713406891682368782047719968937791285283312096564676784524577944707627304652490594606077659343566667521529973098177821232399752858282174020924240228134554985330569586418624785168270720951328139900128751885201244146737629197991439409441689499343812231371468273254724410238083673379811468491117823597319167264192178709181919205644385706262014833163875847437711997434910726697718175654221562633819013713139912931702395520490725704687167181299533706974085977471084609645569860027605841978830294535323401657751242577310588930802979395111573004959604087220823188524153369918177401453371141395459995456601663752411554334114400166104896103773942483856360058099350250953519912971166785626915731768449797629805787872866458959565104888630037901061524293679609243439377199841691149771105802214417516999622003399115347255665485063978751399003467937530096786197657357697911142337443032592966160192140638352392927025530504850917136354296489607232647319332988850064981506728910339387181082140955013462918723356009784794742550927240780988288704740504495779514199971131434629390541766941578106673044645035999028646001410123576574875275101740062048896076167708641449905289365119559050419251461473357919673576260344353402343034461068434289430382619671405922927911234058324106813165223510102993925861477434713080430442654516051816777799190136813536114282618621037979598990894388271440191529573306243415368134148509242733170164055410980542897434480250247217225218996914267598610687355673217252163521054098824277437856089759648257005064311832835934550896472621796782653131981515726399741248715837878700145357707301046955024957669065921073203096407712479029421710417748976873646815108088670615361447276348026505207461922066406544284481239851503995846377937221304669526123269561357213554694561358872591151311447737841287679637660608362234691547918657626434992710801907705382289167913234423230554022744418651572546495920010402016170304731036118907140297854296349151483098353080169450691725079206786130176067688593176784540095385111556236751225491101301732986604674861277734727675344902913912141477512237987248510535648511037107753820267859658425388929791576010363306341346479646771960367596213685552089076735485065707084447077057868899522922615844682629300670606615466590461552118240685057909000153828738195916363584613102780300136562606730534767473871362383050424040655260199361715422991617315144178264222016281469150392335399858869824533814489564683847764640611463456905954638808858082822579409998372911576608353132450211587174510585481399763581503232348651276335252611619604781452027998147422409823040139070255850090546734688766405369367201020402949805669612313658288578780390398668522734698052716181260506570223815404632689724853368805576316384542562678718510066220811773799362177564279927879375838864776204538938159837188140924001587842994006574982179890544189097148991123752472240749020483280432205380516871901217508636649361645689446012210107580077876911064940732968761111106019433702188894786703002350876620645269815721296469399604511056164936819022792771796741931781551343708952808098019899232560132615110533920964194055059226295721406497619918013128776508050499745557401675629826682865079102223819991277797026844660720176061688472684952745712674201137517441259979616559678187571123231241593696401362832100285550922544317703645551363384371237439498783336198686104048360511096438568603165827836018769264435405326263894764386514025930486880669748489780261116829106280683383467787476145228770964933896233874154944173487663569548474892702373157810718850261367141856196710680465646221425469060277919750720281289919573416853336095690763787396493975556992552070510513575731433319979451142769341691199646896517847645551129271139414441827802621899583983496422890282655869222080937602215836681074097580543388256926949100663549736680006737380803079300896576989586577821385175609983565877653044491109044795702552899804695722512844464304335950444518280934551229029586879712763947413365193761262618388580400691690783172072159159116965203697378704297917558519529911457774165251047148584188830964962039348107291634848145259250396344709620664538943020552059357270286548457278684046788701253312450253688154404455874755067574366096271392590884671471708974497816236620287190826709071429050770549238713180547853044697130899563663964411341837402010684962951939936424583174178664113234700096283661682322719281288486975455508539897603430998221562605548924312189938688544517729692649989933678055486927658299776785542213936183986644731170174991470635753566230733464949877319508354029808191336852960779157895346616889643509678512604996746041500404032316165987390310875378881709032128217322407886288615124349155425905476779702299517328597887956099327524401062282929029341780163453023240035183450459788505561480959372628573611148090274183043683172647675850799561093057763750642694229528689857690626079032931675159074698985922538219672839995324570328478662432941405674433841864409047974674687727337727577886604823627035225600409122047047045889537117206966969450337402142134643309408327794935041251256081460751017892600337384519875725136980394382464998150739632453363800066540097430935881176901244284600907084923621902658386443726510333022320267290179027570337328229664079285002484995450354923952907979854957042600498443896924388734295409533971852780296018121658868277656288441837306568169092610605212998794906878936899485335908884199059080567821626989087832361242275113724542228653697875152155540115669666604801919053510627153094761366342654765534310694833339574395921797090061707034749639687485506934855724504210009670389333801733697033282329958065187810937749937562025967434567250991768126794184364696305528953951416618086647638326775612490491593569689621804536469815346953104931879109627576267442171714083659641219206618429276155805854971976546139012352443214263202326421589877322752438151661050369188086938671363682028428381084437783099778068393567129800870072417808634013863245315261638137574414875239420621275859392733593346147536093465260498156864290162065140787310471789297312694806142171244514626878831447270388413780919900305837673264146833869226951238451471957441677876253070387052048242352779364893464064708050351847904893290192726545686006813354305872990502831605619376509637798873882463780381145781591872578365221481835319138903536400146724844067858803766704708782888396721591650077801672498831751550438559779454050296760910660083374112247259982040066677314134635258183586834058733690718268416106124862190912255570175740216181188730636360028786281086290835631248534411163818878554667213336309114008046610100846641613373912738186997794989373373323430211609340613878262051767452922876935330632093366764904320769481340659493880051431747056304673966224732558108471646779186782946308066513044168305011842129819470674444803879151799337155112200351885266732146778195661828331815886134371017990335359854451273206682037052205049099988130387761659625110885140714481389655281605747617785504979796072427780681201012246399387547434061792430374377587685339688504543106248187718937146008919445200853275433264928013354868332689193027162857543635516566311327329235955741417869042577443756020509901129288836294046483214193366530915191721447098003479365086996976939730661955848306302767916812303181913761957548505577740198570451881575022620659561233054694792497356337045858115174498193484869407463525071417606979747371176524388715170759342854390337131524578734121510749865804664212131219402501462569674315386937287737649208376360353050598301440140604825845196836465062017523594882834253632015957365007982680134573726683298474909348590050143711401437069345959150155251300828076694563820791555893182848553204695268685189824234312022669952336331447915882776102348872369673693900207314551775041953124724466095586225217957643261790309450585826824618309743923691793126475639838705468696120152051774332353867532789046528750715130421745367924131348468430130041588961560957971399007984951956321400539242429255127537254974765098888588711041446491370753564299266391947254646498033421743399832980608447673942519996602684153433694951374616274744444402767928205894192915897160927135152401478528800313809017359567265528623035648909372075128888163406677240455763585286363609523210269769879262398270386525638092983312156750345768815050855835072234452126562228007305112678082724088326210143888926063126678573879586887529040389390185237536098184509644119530123281615297478994655850325262070790857418015548618213548518488212037314433171166827544661765659672539794170713949229348810502632387575572125385436593672513148916822835806811135048330892917056220772251965366229481742137618547207352140871377260131580555613781843549120475750100773783828666948132242525397166667265695765629859577560517846153564318620340430823913614130859343381331315694090576794049565820445186530336873090719703866035602272784010618717251399124789686220127646281320393332856830287198764849181411785659921974699221594326692676302269667517182903267107804952493113519958604582305403221498572618650784875224820314252209970302090402763306840129316495621628980605429344699697621843515946074072321738296799098707570869019410063103398296650977323936477691534391388004948334447270809364930134070430797056453647077339889774163700962297141185207502521960241972776131903904295970391018859893525599110360672133230954126876280476664298762903644510184704910390495239473418363592787887488815168652479968484437752518242019106225734682284881172259343386197111286689088170499392811687278745375126251391599201858946818578327750915996136564191146216105905494343528685815282427450479348807721909619902681721844644673809381934775203222759100274429246092841212132707637519487146833256034449912868492508526158322829715724831758424355849111538813199510847456016756278136143995345870955341693841057961045154788579323472060762180201368479749936552708019204187364332408272175052362139988207219338036697030318625551830178984686527856890829855344713816945133886137084874547669799896194381515423038357515435691882101135793337356473924334563133399067664787471166439101763488616119320019962630452488120546985321653846004700554971641157002166440646194704414950854624162245114428987169455746537273007405346690298769505209082788454265892768382199727221832016231567416113186628366642099974267393655889947410458631854158647564941951571550306422766785375339662440215936811801517640274355426102933807969787203871794308749466695987181341756406622345716996299134530982881881569319910284398235308118288087334603009213951744527708124890144770952062450753873450174455727495530676711122183609907397949997982858368366245594592904510807751470900012197122858212834217640736440844334120043427486707127225216552581581362005021177416591888061353555029354970981646348998829205904201692587804420416485939118261075615028072222875275573187778507819564101531854497031932887346165791112712256315135507332447922908787696305600982246155435274559552366770713811722189544747279430035710290889195660942921943978637550175391960172335188043912483775031022064251988638994845678962651622081391316766065545413636611269261096045831719096148442985014404396733557371696841335538789698249066298597782037477622087296998723283902656856825958554685280519087278458034671797518225147087172822653576583430725520794647266309228298020996683233679741516489230011586284936435734343330530042839507040276940018956207520983589265355580497482471882079923184264102210508907750029236186582252726452876461622988514270549438641701742132862551970912264477281215608542952081653696194135217341446601156690850541506035431119118569175560486326838544890294684110292961521599456481507909449320375032987172229032876218703979728547269410015097782191167074403478280951281814582718680362915110978777708726253944822997192504272608149480822867524199113714240310677572728074898894913390286185359858811749664520730532413102413357227308391622565051049082934319710739603172124314972653316488385958840381670280563571714448670197034279185723706982551982948375579573283104653540559221650645390779446045759266842986376411823225335757387781771984858608996707564828041232534186426141629773484476057948663143619357886120510940839983967705519417328311444843278298049912472451184260695451188435553022466010142607949451710376749230074860616837969656991169783518908695411864406774953355839456148287604470920638290290671509405883861142611604132585524787347574463579364326109549787489809183462703175716498276807139522922663679956798450621682353115545525086063552641563490441650720998265282145446536558341065390006469631481916220452555962237944838487427015574331946004221132238456858490526467241798374158459598959672218877452839229280247400895487850892848088113763041636439748629521901560094953272899826031257979935700210199734088296774406586999770579804528715026532163566291860709376059828218344412829094399345240796992683875235994730275509109669691943838767322098625350898002712519984825768431747971498897857744191627937128483380982117602288976334936104468100826408901483403230594565964225970080363307580862393768659309853620777970395901694122596989742460646325790980501990685049437220398843807640541845747012154219026355159668283855265125109701416898556748331230858585428107510640533646972230723800026015834648745481061544419904565803407871092373319972786022354545958796734194385674304946303783270470457255349751051204773348934345753169747702844681443033348653359507971927343726579437446377893911599307399498568388343602805581875216602783834282757998471907470334449859019609972150533664715690139987953745769809465047090483633583802576197815716340174530708329477894965751830251881481413159378061736529418349558588670662257240790024887302426138543222180350853354280857485265291867742180543862284987940453594847722719308435804696578129943588634551208976846377751009967588202673515722173001243917294096924771082444440104024305117709392105905429424225550128233949276637927260945730079153964462276239409340449312942077402558089597186434998613268049117901536145178196755834210832045222563871517538374629656945643688378595832647978872470194759246375376628296672475503720561458155836015933752997126148352857283883234231568902772732986070623951415038666684781539270645180709388654959859499205698021586031730398910959441793111144495488502699361824595203423070191204037571470594301950137912750662693903391001044416552488692622367033598440358543596336873708858400261468520378932890367991026389108902559308546445816765566710423798998943540841657229301285816260674106589315448471089539498525188495934916883404868098969112742473384916642808013497305783177512487338238338218469747018734555430761707213010988601501010634081602666645853451898263176165388041935675662674570640418728836106046135022081509809012190181974556890437249677306403626148449917953332993378353854905256017583727243102328147897061963818818619766108910889414225055576410672465529494632127055827694418193624599171446238427518556661660977430506300936618423574375530229354487786308606809739128350876921798586447588111052445448846101992777044975284845392676541122559195684406558899443062738735250994755151289024073081534077207706218151711436215916017383932209916224438103267710151144476873537555899911470946212885490745607504367710804907904576322681048617801780692550427193914838317440926762593703317378021920358061462659944321366640760170847207896476265097922536755367274697676384723796900257424587113902974145237479055284287721616659205605331839227501480941227639213455850227279916063162008666755608430330311355817554110792674686529484938283288605654189071000128546005038649974272849819398374166009108366626006084528388263724675522753707196806759841168699979305221737145331992815284142007034983572070252772297485341457129943295947998944463068633331540166829342480418618262899002839599688761689081832628264941221850662844141717183361630309815960330451851627337669752163812124006949904209254262052396346436315317153645834947135161898103088061088915041920648486662197062409176359092611426772188342820847198656938561784425360454306437593782883438771039912187082995415880699334664739770725287987159361599509320728238853655861566476693896222813323395793565489750757487658263260065925161475274527185501932072701569613526589363660269409353766808940336453866014472025230819536602033953876260613531311613497774763576063594134295143184426514710076609595709006993747496889451456959658478879580546269322664181654817652924737010560203416423963289071572130896114292062941219170749285272861660397399893555535029359463729254336221298798489915961766161358644908615263649452183155472906075925578257038780529014971558189949551766752102778735261756118699698017864874191587328597995694110384645772570869202355113503119605383990639750354530409640388820269043367445636605613889666356090059079756454878862044473750060783075467325458582237131274252903088246153024310699015998872575892376508147230309309034759506911507728823084370825806445869696110869780481776473254151971154851573752623920432498664979562295911288536723319991664034250882239470162892090442692538228557695166468351473755031729240630481401243584462019259578651835996844040682064604790900366583508796584077222163046634888470298774494604324776018512172631370290575819751514775296607757973035932715511019987803617520009231815790191219075674815416360433646518621552473781114467356016957056988535424061651565769978632263113480430398216004795448366742947769821076495247816093699238871561518756080803624213248402792977446084096262452432998223435660201461637164661850387067513443338592890046058598645925625015120130298139680315156065064113730110876941988355802375726143229257879193744867001117647550300387069087076216609853565373295521525127047493691713417289758020873514227016201881301241887688138439212088511025706700000710841386845135147071072978902828676078737166770002294366040039615613901800639843579534832313988985508930825694497778364731635463098311261228505801928629805510481438469994579578163820468589081030320943040512010320451834399685735376946033132567043366858837133307033221521908965084764626843561029377102152570081437833972287653668110933047764373615235825628236669634464029818674493623500322672835406634630933942572857563856475476773015750952565088874558390439797770781016874600765014416037545206645138207461732713790298436607558608135381150336940751996152200255127822124607705610513789709879489065550458915677111077960421101395368331980342191806094016735693842039650812049355785928588197896966234196607350372188792058397701464504552683007928874384598213095235819797598982925748329801634720502184616275757394129897976467182993444821380882302877120336365561979214198655453479966202961154460366934967760879704315206079334464587420911329087983350728978679141427603641092923887084843854901787618817754260183814485905930819782465075657228338995347714129367943979021079241441766240546038069323373080228969790276938563001867538798515550818025388225193739192295755967205481534240118702324920217399120687435245125497554326715753485155407627659525354953851265411793914697290889581605102976449298425303254174132402763294891195433630976972945561364786954091792062668261093738962344336104910886422534899025587271048229115709370043011146216373846916244612068263623300126294867313516755412862198187735161398761965382099346357891071818188694094524666227017390396832267341051424554088353162931863793988700458559797954614756561965121229201818607831480143297217042455924254484283506939911223022871032196361860602137474136404871828153149760886295451120030691445709917268760842052303674712931468130019144661222664556170317747397252779198577685023151101698966301382415281081013672606925183705474570086368440173728072053456838615402984882912963841730397585761952422125040384331162121795376593789234931334178447964585849605141532925848864398092491675543555338654159168151828092803298149526733528621757446299542549338044708302986886134650129659175845828981218847111197796814091443589670567683220476779240933246769362205563531229193654391530083579416688787686078189498082093359626943728228004337939998627772075260504137799801528817676018352172222627252654146617867710845423234903880276788624323509670330299878688035352355260160038525690098590916853845730723472843587666950653530936438683735808661812092261727052674454164961560224177416862922559609913032616287690319633134479447365228901656255174553788874875220927002843816961800700423128672193742377590980702895395064461264825457100118447123080907090544870232120466527813488224052688247302237251182729260736960540163265493842560011393932111586644424050403498013654566142454512312117751808692917994139112409947774748281607546168525700306814806196422037196353822695199277753450182283521287402522552690847939887876942016837758315583358231265574083301186838777399758512989887040806592711408774238530528342544462913900268910269980371820180140236102891739386711565556196099769436799332960769349813997573593159911983587110163618565550826916513748892231790436750626587643015456549367876598722755082880224679722268215689500267992048270261523836374239713069261052223237129182976794541687332799442630532609881067903556375399540790305654939467680048586502282523672760303911104013591259980829164019410829211693779700812529409335457843337360201522841151182464176502504461458527846821559906330573442587314922188575317823596612058463557541021394825629913234444295868062559385283098166027509232502609044876977293161093259779655104538540573076134817274177424561946592693146559803237093092057733536571146623450347826884080124667604894930900374842002624950095736216129911687334690757328026340825726562900264055520398107547674520029872863575440962375032532168979566797831757896538434555123269678538478068039496946100393674587134444723047938960241810181429829819431225358492498891356734090895781451259876468565717742814097448135121422789672917831415910059848504068801207468555407099548705062460319807960358557467866199471040806648849666862611129256832022217203804280755420130405224089036204910925642395971907394153227306623075440215033620387009294216033131725573038105705886380891900324717064756222624933428085868425045043764587927055363184065031837940626946126875469158864855171347472632655707459376939839687061445453227642017259918227886862448065372004419548186142449040748049456268142045174523989088545282921105384849209966271488106573970232197684920407524729176787448919162290773902576745409594753222778223598232367683383377969111168250266704102974626394397774694647659359229175391945266924923071788378832523931980337315277621107795277152000708282663492555975958927970395129611845364121441324975388648190967733616598594012958368487331733918645417969700067805125933553333714431224755620047986250434990403317286711771560234774307606461276397978436154876562461151011317408546349305470965919230103173182385856532473466875082406027706490497650403096302605526438421012740221817782213946197260424788021281189527133481501154959805380642219728652987950767079760083935020101684560512474442725306126028278925717064057019394497825015366977344577869405283441680662198621507684115232451797324992907232378235673288202539741152820913699268963017000235017764108468131840338442360227884464884071744674237184939619750326347897393273169221115049558070550679646157716649164351082984167581001689955218719563790236051892397514046695491996432907611151181560267324226723115276288119460062238076394214424787942905162004387381345582635211496096932699470954638392388455854579881928427047384091885691671692903016042029153718616147652119827947051440927404873046110506164703972878127115664631659429682994275237464275378124246975295396552093609834148386715130465150408413884369994660994801450292692339289695664493970610319322384727757010526038931249004090538020118735742202742106499350644269724415077647809903147096604431263544683793080665288601769864645511902705743847846943289970636226296797088757440401688451922365917821578034356376739953781870608434648159058566037521330624931696238449182770080909262133708240697174814465374177536148921356299405189350196149757116803210746569828380858780977493790415030844721407408529066713463061653154044441016289435432899483130965330503477043163323740254441012373761093970807569860009754346639487617972645043513233777088558492825078664058926241148246501397890713135439823355955022373652725305916767166410038017940467370689235978500067743941580187226659872372302043932189196079069918907783296197894378407994198476837982588766770449177775385345612704142317815618575595023719065672199919693663182139399095582224548217746625177630492211390241028564604132124187571830234596144506222755578897000488897921945895481260889275772819559139823859040094842769849555434512037148139800741749729668047155884130365782448045732644608862692468063857008063430098761931710700546820427079362515643643786851360528569854277799213339021345303047888177371680813461731860426447835752195645281696642939129733683818133275106201183114643213185781055016231073866129906327287244700232970367527854802158116591887154961416991289834413372387431914796673961841328741365135249148972501266396018849651852038540274599071661908728155495245857851105842458259088198553280481268875367205584454927276098332341200651947956451841069749658162239249552338111495494828382473202107048817921768813206565341774084450936467843830330219397188448505153498532495459027365744885458240549017984392170323042811857580438880006104685350072358089216527991453231557359547331689177466555925184307284974302737319262654177067675359725449880165673763124857622419222933261439917177734538120149081368880259280993239990930944891753178573586902786673205985530236534188787301421092551771064856482736468426036625909511685853936812668005833353041077114408805907947195602253555798063512578580341654731309489964644124344437594428339371421232572169917613837399247959559632562785621091243510966778549304508559792087064861019435756628386781800260454977783439549849799150180222776375230955418536772595666327408372224412951902579954012363079192697588024263953885353546031312004447889241848693340251338426043906794714113248140508211063347696799136052896022574227662512487056360372414491717215905741218644437429749409431533755140992781261795650845277249219618651089384200113107066357281223388468491025927530394329215601205657012798761772169412187297739086993919011535002596681197723604556330021484775787329301347736402623865145159180214084064668451940793572278508525337217140036610450561188529992213654217289809382090035949005261196122962840249466978250854966621371828331415053125182243350487380351481674607656858559382156285156947357325787697993586263157249791931594695362944898001269518149377094919295724895831787172173789309352917396053121254000853377272148324189553604235269738794401756882533571751747312137597787981232940935916280149784370174937396667333648751860914466276921222800275013596071752200154984433409999969463270179836270872778485670205102375153234611253748554307262561358161470946482332526396249021730408264673565298572001193316727629415466086584847468393890398344169519219295212321664759172471628979646085356169366832065142713996557838593336005905937197347571575503608486640768318115067961726684496547523833143309639305567697806076950267027400836649026758107318244423052879076608042827850811048079412139056058959505863287658047167332870747288800351596676425010864574803826274553012177888222530919489452844924752460270602260883358154930190048773538244649725158776333280304525692672706820133164152963984885375233999026366362435004974167675342885908336572788954713270753506764028952983306220790651301515200976582868441394763476438266538644314175975357717282209663667086924497136361702688406774748060292193712222973432672300826758672053805473399860086678046427792884717946912234892164024837175231533529884421996799866466524150243426267018142694461923124705157420305784919849873332832305373189074338008668455929196083128120468250901531921731942528091786043621482913280410270152848639497752427563285184709702902439098112950201723963595481212922227759823216187501381384325206963760975630705505783340738392740402248382559804092775949426604909789315252098689477060241158594657220944416850638243219047716433066696317712077818407916510661244596269587809386397888640970548160943930673087269412172861754623361980582705091042659954296060839363885587972365851956721126079979186999398903978060010981787104082599961675635385668245694743053240360736084562487839891231099382065567916506801915416243108872658868317226739667445249852099194027702834312299901990533316075336476310866186810985865315684347248838563788273188159428648330679856262340931385150666228763403942850536759259756022261235308415872698357261785338742878973789367871526321046041231168404262185346055247376266632329606061125131395052982358001330744544499153362136055276629459323359170179860838635290844502577032396095706258131990560708622721920119611453706372935218187694651306507107794692131197307005993225850284021745890584811733089251241002811783997720040159972931541587774275621454836503825239591094608355746048445503949105556295393932067481312937609151464525590135195201313827619740862034803391208507384079800686489252748777405778180688390010121093129103945612074234394171491398137691711192088610372198377829109990398063778815533248870374748064648126107913124418647645502249092989306551356602164787027562304489614307754440277104741951726498754183471391936216569133594926473001841084433249298146970384241622121183991955871899555450732993343673441502196918958540055906445409114536730271330570588338021592940994913524046717979912578014908568210047314949813990309597480520491926822257983287824490021463393769109383623687385192957647834549251879222742844461533956626098146256629658891120872539023992014512923773528684624643408425884261442306807091460895988768387186602240063296766581873352941904416268381242135909192808942401857641155531821546981910335151707041743374290651609553181204653324260826332535389711190610445248021346271839094908443461661344352754564576364966102664538869141258824077563508514494090142080067192703287877188046308745129890523550633902333004966337734737271449874451798503306496788519229956895908130642227300115206171407306820749008836863328730397451741473763683611868126682428735094629494758386025949294381163773858949701057736234894901743814176010811445583926098783743422076396464449601273650070821641331483134262799578616273703287425570421053806335585873477742531626778137721111227230803022788417919409591450244741823809844255617790292957871507072723436697698669946817843934149326446512676702685311402224408143036507478310798678338431882893411937862106710646190188125985249634678995717609454696730594321297561749929230428502723488479616283190338405314811535918957426034079228165744068306315789304710295180165916925347871716409223168322874404080895534932255617839972279911085605973477146403918739746457358066514068080587897224768246437083312901174019266004892974006845489448332389393141037591279942546539776364720867306697573651735723066866816414899545036420426056440141888395605978510198692044079476681384132759168309999104144060378530280925546772695345310938941907510329729107242976970313366634223266605626612049937978862100931811816658800074953316873300384940785566167036171342736441548853467822684044745514202811679852606192626402169847611200046120290818125945726625471496569458653002981903849866824423386189914347229650773362020072596918162538273163192579190256303491599870510761161399919376073483517179309495230112686181189451588428133124752210131909717593907539998962583706586954602719589662389380582281330831093618329451421580595749615760254709562966782565330546018462793233517526242839253657495198621320333962594659739728053481250338546522677768903740540675170513460986641095228968116737203829345094412182499512549575310438166494457544375086604797793220960124386029481422237012099765177202785797890850667360738177304964857177675074239377576905162596696955552807371641553643902588140896057174901950373657761139919557054479325310621929353173650423032324725681598838765359781901260239020977241634234104091428119937756848909050781457305639424531695581958568840316081667501843711059076956411461650665952643950535702952145532225496520606937133043013907271843074299247652391921318158176146598006851659383132702041898522214368691300765737892757371690025053313195040707237772592924473454990562332876367812328360504543277665834723982240636919471864203757478136338652694019030778429745456462187222421392369310160151713044234775729648946324183298500595290960320074927441927487406794199453565293199154027124943179319460081623013735021444589704418322899747912391713150623349656149012555029145280379369120532425486292124280611923219659095394385044514791210469496728512754092102926047502230047835972778167323539225708779773170232989856450768851827492194134341504818119182415432499653797869270919157671493873883484202481161570862075561239481700311640461190021663876832703953914476789145933648564962622930906270527529905461825767498950589338922349443175947157830072941011229991873351691731598723489321335387968700160850926928563965643140639735288125107908064385301275968531802874874339482834227833555836289251992371290955977430484531700111309057046935507299755988835216126403140828895165806370728515546655423618996487476865176598180513602092980529041889150874799996971544781184383792342857445277771487913546282526615820496615258026860242700864342929228865369627557863784660475901860079827239991699953684404836652879000422497060754959471183243112255305113479600345889522696877495614078010338378396767699024451846967425296646061862033972250451429699844623287893320035559890741451474423105101713731634373021341933996304779505154808557594840795137452165903171151581162976060137510090685842946965703569443475516471623342834949181127644257750989995624680468977148035147581099207019107338999581616722989926605207749819834597828912435187169323479404581409536917010118067039167200808225352848804556382500636155386189040615751153067749892825777726608228903913885830507195930056542457562932825130131619185149389110245096151834805429438848329837518065549258106931360945692459425435577802458550229009917504226953544667719515761146164683130924196575401369478504863372600924540903793462526976389317987369272658703136628243876983115941540600433714254799275353377433441168868089587902164722817405633280274808961660224403356152148356923107394878519899361526701630427070364763011738657952377672081165982786398824428167563597403989292839359139497135772236844645607420702384043214227803348809755781515562598644367026786437877725081908178067783268587070279218325631752412506742008340010842893962715110754565441734692423786365368910303631063738769386359596799952815987181708302107414593272241481224235148519488371846390041922370035197705658181877789413356335641208494792812190542814607812624576043407432794327360263431448919726661946529956013857387922613518250397715255044345002316518950914452742644798263714662952217718420243289109042557220265920566320855183321493409116963704075706318113307444323782927820276604880646678496083816291756695753171487065875140447451512538133874424511415317375260355530275279572318698244562062824143724196989190681797420785025659213954867441555287791277519224105084162992489909856010405606953573560149239433664024633135080254713005109946215474473336168199852710318456772995389050681321550703704758885109155284917989400029042218930862421044594778703635945123731441900717871386865347853603642620293679286828653787829757551763093623149691812578530031088523119656224731807864367525125517324826688642534576645498533031652988878728578404355647927613019114862237431535980527732164433833618184931190123062311118638311271764117780407193975907823537460657306774379761358703361166057144829274993718564375662275921770509315293940012999771710336799961868162180094606254397238782000270265807002867336089898162559438112210189253618505834550113916088499792693363153312956209236620884446909785036126669576879886554376664328594464873445916571958597211309297084932076322083206068847244993245936775871495316124186953994267074909455430812736579117031354261511304009385260130465822548045825533431465177212597329562856378016239429532929563438492775125136023402401624568660792510225001146749269763624225817190461179668893100497080352071040162990358364065944915937985714454848994215757984536886695118130805712766546450388276926267867681638988933077667426250006373616891075846934701457097048068860333327877977435966967771405955900772764462657074596372949583913914255565934913146618816208457841092515984241326803034712889165426043745443604937665892850360108860426029193771699060188063804882135173780731840272102182884306955804639041811718080986188402321109907964271355266895962407253881061882499071839858128530202540923152404685193731265285394694642986971079617169070942845739170585431885893097836595823020699926490348466213910123768318243716740676629110063440369525481607079106754952358967476494723299441249971685436284961999438996939905763233259276695381995945274355920789429058255603174580832626069483754450345736709718819839808510793162036394940995474555079121650180580771663501720863766888062347285590935798204045840018217279742511459505561046823714806639137058174933484067920696643853610503957427872001568560145456737520257928224638632703517381335642184521999993469720248995528388399344205100194764446631506588048139289607546593478982851353735720886417765986388438398830087825712316419074573327235658679979729475602574776054350820797956905476866635675960080961153972739547862423942833369367337163658580196678284851624473185686832282160851774652609754342559188424945139663356999631101714402427023969114134143232601351954546088531400917477929309922924998006386344271352861687894686008973870574522650832290258827225465025890929348979523023086520045741276016868460229891706684045204627049772231958510190214235586346477346989675168668490087525656446336740169924808329854226863336725876835380440065882414254707645051690296359962744835212505005554411250285485110870194511262396170706535985222167655680209853072822034065636777392790554490388824090554482087334184779347972828826251249404835245483836169138750489333120227099805333678560240183052947788173731589864283765809116441580959487513795766060488819411678713484375799676778013536579420618257995891658260972637087658463699703773782270325761191884104201174714493624084717022594684979755872546298762303922111312391128710502913871924127926130936299750229851927311833477162618153696520859467466551408264181457109826638516681724567239008892778826617793017415315271157258639571133566803465205502595057051365346615834770965739405531582140019665363849732985013023367750111367190187149593364099425434753011585159250737561042665237072879587028670724819945828878703294445677839965087896054405418933883176261262331434340331783160280971096705608966852631155774895407397926521514796429841973354809711252597528003405871847314618905048819729847651082583681310560503972378185773747622624942288529820434726758322400865969830589810106532490048486408019385804734002427669101209254072566318358235818588163619320166530472526812923053761712550408348074972623254469974861002488568794244819854802623444156695836920420827760146193490088668561482716283622081923517922140737709908325778230682724382093056554331057075667541313886299970580358019328175990563306241063348126514782486384642615007012519998475690458204280644713384182836630062677131132093602285519699826797605547653982322151947125998999595637735340867234494605814262100933237191484254311438816626182932811968304757375488701727813182187384914245093121267296176023650965264467918887151393906138221381650405343682475978898150107276222283406613474370301117202510158091499758524582751039439049797128341530012683257180760590813587391935939511158154673743635227107010984263215343161851005046442096786672870641055342765117529156442756007281658413059813710108977084809823799864259268330011093053576176679017829213635993161336241353782545375975754189078018083084975788545132416495422405460700715695258169210567252033586318399310281565198773625503831504614554916508861011939180569922111282867379356989453970582551863437713248111136574205812775609292130004837369411011533166112925294546557874283374800382342368816059384345066465426509676758720450916263026451589198727580027839691905844287731280151374795368923769250827026550690538654715269070776238454545063907556232226636384625958745358978882776226978620140191880596430235653185954618010294748175420557291514826204418140986076596798005771494575522147375177437137045754739811658949661655757004631338878881916608782725591705790950788134300879552236543350416206606806355836245459371931465241020066155092073810912426395585928312221494941119983786070853553568700964941001602902587954124616684177782173504925995419636372988925161508802669290768644299123856415093655854787211010264322319853551298497878924177817709283763990967837162784983923352286880272819612068086125955250478854323487345633207440576877634472902399269557088163979892245657043635965227132109844972966247893578220491887340906957744417701519627660085536301141147236698633195374474580957429157350924110195837843652758309175179377193818141171092767801594532535936573666163324906605801031783808346844777724211924649024575617294171181198710560197256767290036521325395425892756714439581883610550777973080739977514745275518122773728117288897788123282594160187211047183514855397193833863747898011235688999466021041783845289224184865829195273920090853900733441838912994372462067617742514101240501780174695394476687812069112672706084628136049827804819397979238384844100784764714696567535889046524924612835064961607748501371089549534268528871548173294045474384228415758169663119286092243755203597648175834562718027672886377124322599100498822460977800114133395362302596093061029877508726259603194853155915146139826822065443705405169184352207415278826443550362263601642933615217554677340062855819340287519924261336729144407752955427320840255683299300658329115833182651601785855516547786382206180940859498446413480904960595188637057927149863067209491416112607021504410481246389321011427778337347787681952498696205000691218414876693884891615671598443104516390739549099518781179450394782745771506146911178269170686119662731903072176362851214192598594225867379691691926905757635912173975297441963571604938049762910632933189615951831928749081955063787967660290496712756673011617510956847834870264225188828981629804284413968461848568892146527931372158153147547707509004526821934855497429413700035909427753989822191071805201495333039405183076604152774346490142692611645169731253200258969508720309139420265185059467021823838865270185042712456582367189936126430695436004268848366325455222653660819779475030898165906092387775434745527628001389718049168804398491192268612409832838176016668472328368269349760816207444817259701893575131424725898378824473620901186369305843531839632230636164969868548370934874339515435179046605268016125558468102222013017631829516368538709952595844026800344943826814180049421329795480375129402116574783519276081052967244525088455176724798592920692947437203794580861874886683626347563593887277428823133737961603365580108427441258672223028130691562535884102994031472711758848428747803465756049475184451457205848563534144496521367150869849295702455723668172927996498149622314076516248850064288214662762253595238040490443757991557556530727419163433756425012026121399832317805769838870119396987623925221885666691128107874787915005439355374620335962862515147759300365293372024244672309408975214890691963482597384614219153700805656423873944873704286966274856076127933240531244346081116385701751707037332214226378692515880603772676957733527582376649308616264694031897380948834779955431225704896719318554734896376052813942498355960303180180066612572378981214819207133645110549806927231438145014161426354432677311354129287341404416346422116548168990883285874850371070811492466014244967017744961513225169095698203060524236387319083054357164746213007184138265915070985462919254457916554418230044534337824107403506833407778519702915186226271178127275293487634173857461053116870359968370420411467988941807217767414482927408611001710198113597769233383822863708431147847984054127237833612538278409893693347294904630687638366444536141957894076636995349611910736547090599773268755551844990778938852673170246682762188531147740228080594802971806766636320112468087988779864946544022924321594062193060510287202716695588902389000503718553739230038506863499563439220709517730062702662899392278440002228029552933425121537396413816372410965395163593512522611550709973442627036889811427750373530450977006009538046914478390849486266853108797450970104765797183833581723701712280045526029978920642648335125566658345560735113993529601102626958721510922960738416965835833498813703645259983327062164652857669593234490071885775174630526627913251600099073823689019029938291162680627004188687773026752618007623399875381771590168927250411492043153065788631222479014353136858541881414398548169192250260599447246034494690800475221107188299164708457803854253053384671159752143679825273759923929646794197642614194063992577314378451756430458064135593847938962287660819709051526761397970634628705383847904869959761613099508183882743380037539339966615475851319302466918206529816378870263358672580200859072947130446959966992107375167806051516106848143599242321720638463062272156422046820710395425555203975415877465830046783786264459424888140535070173905614537570700188899007057365404556210182114982854591006657242170934104615189023191283186836580201215597274160360969274975076490787711826053113704680116698952793778120529745661237361702221015209367356418871701319953081230085527068860014625634838901358047651583853880220282658326648031982306914049313400738142777221713206870129689718522915576623451614054668681202163027619538256723596792911470983363057096917811268573512083715012633284614295983386302958313159215996228305735695089125878282317817868867060788608237291224493724634587872510605365429139041625928972098367385329541194104804142713441168539103056779558362597672383012134514192108764043067554324112919338568049579566831254801615357862912550985066622389504971272901656588578438407461620686884212314473456013294887544895901404547356918644384475711624157396544182760406290728936779363667594680413565086319269621643155585036653925031490304806840033776780925158537299561982502976313873982063654618087330764094134410992030534847896092578077103077173155475049926523052656448219584798864322022884513683016918408301333230405726437637458453280988184352650327376345482703223689605962302166151489421992438019969589946239089779641234436695869704162571705632819515355646571980899565205171845279362404901886287608537522462283979248519225955513421054535439788355505232449026394752084861800638511728619925152591618304893441488652331988177925799925489709274373839874454951793303898963783527004111006728000815006379733837387007208013413410539404894956126064716381120803659529356303479082490919856784865290256388790128680911572283257071457646730595599932044571535228737749154398078021356748165777852262435671113403172010943081077787478065884977007450187984353679934129153181979201677289161098695858197355395918423220638853724729460643299923143686563483983252994880007672753986023069466786821884821642485518008679639637035939181155348553463035917426940006644602943726604164265531971924442051201028553745377730953333633601915863922357904300909762748478999910564374433329382332321477035782701241679057113826044328956590267945141045318392340737802172707700503436966328561689300038189993385093343025144341204898385483577458659912371767764457436552006265505201998123730385267406829608369679426866644302399078662455961033935101395144074378236160157298926457343302087335478607373987875245345419004691720648113307407009018646502124512442926536523742034230095445575847159952302523999831000055604361891205619342359949305500043009068118298578608520382420812939153420026217204774176783317077468495567115842888013994121888028987393557750334719901453618923852609513022991614932206383108758219709067701541317895846424239228817795409516388271232963843834957084664344320556804431530964205787285035282431472476589209821816696571948085216475235041485601488690040866302365766907626628508170730938146627884354481330129499323463522129221593242406225980663115015420345468577952712500239859984395311733537206330242587291293473384555448778869156076558435636219865527269230819003685601455717887439471009882215284526839219209568716522414049550059649767556803599775986398455853129306221659772839367477846708778461032563201967178679084190887309312609298097490032038168968958983904930761129090309209430051985508043110817658445042641860745920874334602161359075297020689361147742578332628615727581431005268667912462180054449756008752271557596219787764623624375761157042676811336394448212078227864250532135790954718893069176721715690952942308281788797531850672528691791277102050258875539726050749212283132075052818826214235863182069060393727279708686106434081499789392766264165964614763688159670600568585355012746255324312155098743429365631313986070387140933771500147328107565016322808710435961399412855352827934057058777073696893338489424456161061030617181378891940132529502563705264459451175936934887711359414597513168992553009863164332202505072850851361638493783680037558276458144078938646549110344080732045063000495503431324182658327052591901070103773978649544835306990634679465623708865038096456413101700621805650677617728557715133551807687152977830619847754330284550630874425651063611919175633302000452278714911770273366244393748581650529751205287274567801690089864063389244722382277871103979020312741262119725211602215842068222261974486623314366599849091053061595688198052227221150921649367348384907766850370709587323868421218449154692564767243994263404017450380270784396226148744344851178813046466447635777662522796526907499771943101783005081545573307072048334553011721492613905716492557865011625727913013803168439473436828329523373375117702616326968636101250456662795899308925795691405026144040096015654211413964194840009581492543422962329165910078579228453593532609505595629086828221708358648751653896121948517758132280417984707047172987510322409216080577641799290901767745371642761915530012055537508708995766898709267500660487519347833249473724293315547117191676249135210647455468580483173614450499964769793102037697025919460972567736198828260999960249768789903826433012384335691642074043495166038114194382057628141047465729181303091907574969468633082861316062421606737581340716449397240483827552522286587819519929476964907143312835398524625250912795352819375925830305216967215762150051194353288585529774259520076575032502269644953493496620432476772067432977313697938523872458823692443768494084368333474227025155158588848987356038950271770410875836203102304611402502482265367125102931112066401657041468948864305758522660814863541135556391237481815368108466328404488677682595621919471525736342034905165644670871757795249809821054000907056798337283350367837738868462324317520365133726402967779986893616653279368547054012680419041912906737821280170749906044399257668269055261211545431073818743782207521133884994253619428111828988576469412380008081969851558991996542580961798244459270940972272522101251263106520447579845248136780356628853650732267808641676336636190334957756524800461129025766052828905820866153610802069551980658847596669596397369334597978515248148796542896444395155028194547916150701567373560242551235692183907838154609986707020672010749296970356759619346412537641477796732710226794202483453183683014602861344094810846923495603128517750281879640550734355158200349606284199582903816033202986035350008171937068495305235026639312267498192630787406530996131277049997500460064014843810526050001574507507340297847094261315322067194391308796259779460730907843246341188138264716864857708587091805249215272728867825882600334190895431897334196570048310224654854695443829812998987173815002000040324798531568924932127176163688262763820289417249934490301171180433985966164410963696938918474027202404694757808597449559617711699321427618838575807372770289053349808186410786084181649848950607869421609451286242022278115097670667577238017649306311368135999508130952610104230270183639621425012134038973440734650751951434584659885103436975823233791947843081556105211481316157232751100381284767711964220815328677935766022819940131814115142308010545548161159627437321926722996058691408759951577457697725900589708477760066293498030940586496820754221815204828989981204799340789276665714714689525344943574388537050799790207979400158523249365718350931571001224682015497437450984226187730808644857441935375110002935427659395233218112588909333813147151882146773701012704928489782852481280094051785938133592693419248534582271221302237935896078689973232617041885396655179048578618993336692407543139254288957716173931476202418166586068922883160143224476248544271449065204984128867014367056014291115269775732560825598199902994067607975787128629166554151343831033853998130838423853057082658926704577348689680386219784837148536089923840287134155490597967319777148739393416605517438289126428641349729822861393803231945242254317822896305375034101860508749863141060500305673497101381057023413552453607057997877390825490476449740339631730930204044297803680410882840479668499998492138769268000138887393558549589602741670029516274517688985053527044455535818347883566676315957705332523687511341886353740772493192790072251013707056922128088264535564709315585013046991906875061941550508949693619253833894127181912371173193390766950492171735397541286474462503597010201554905675326026338356189068073174574237528946097733024929103343940916825180994322275486159951703616185764501405064853620917491073986867627688360158286932596625352328770642953948079969064838606574414425448011453174347298206079896807611755458571258469231507597025164286058872026864148871518633397412527205978724402460621153105268364503556304092895270360684581643665398380754755897602311853478797293390169393420276959739803681533262234756718508174075668958688990837004878147965232579210547878271266365942486082454981204844568788415746626121269114960543054293515359361967532903721752598875740008579732174195951908685985562625208398572397969199898416434447881859737219242409767202545502315167490403738787162162612546703190496077561970362614825928045489499287455550252524250806436013271682529110071525680965824917253564262493952834871416090851310710585296983459189914142850896894304723707105466408583287030624030073940455897834983350748920120354108954694707963342867771509550740953066526345354297783258848036769961834578214202356818363143649152931549717488701933544797815066810764405267897782306254344615768522126649278705088880950775112388853546892493171584680368397363822895547063226124132788422412507933558286037236975278129592831639886347171428078566984438054732629170806825964556624527041371497903849731263790756532818376044200791560961974519622035562313931804190741345380495383654717504799560061047559852905299830366094040089762301421836434236265017498107337107782374638080308472953348763251360884962877281409228362813884849731322138257868651780329026690740594289014678520134429836907240090026308531848039989999624718219036893607983174415185210531836167352206207853746309497158747315482613168219993033975464744938779718970859447544151265119382977090583782949124731227683685067381425302233628653273341862904460986058228082584877583564615870265870705988165327872760087627738609651847254080954166045740826315982766917310743415631862947460875567910867240242618798938933644525789170387279709025406281150219217455854256857020570131844377776396046140121168203887468018281675431381878192983289630134503100306311682712106948856912889380654541787139423244703998817334782514921506646962189736656110937666177886348980925103870253242421710432231730062763246526527819768929259688855885440528642652889843231439506422428233664974333842705848059575425004690571299911524506979537154000596008524582551789727988501508215050744936192819275047642073418695858978921414321295079172254286668965438080038935176621106188811423127614287197754693565434043734321004279786479127015243131484628320051276761283569087953668666930514372007226619256198352170264332372506394227990028440350456688293382379470369987987775095330396469560983154946751025758317264653960923298981040780519141086756417219204020278354677217572998265537807262109266582820187972519436171594541141817504561571072734629053748628765414793826010114152646548202271527636230028874570390635151188842155228044981722156854739677117278760534182287254391444541577562572652334694324011479578774485135755801271784446541247408749596676632267951425092155462354664482866062341172469400178829698316653826220538880085120300428028757768708453500377638024370627365737169900416415625987205924933186804513168968160229115182712355248219720728442041888387702275783029994664866110697483783853799887761918491652451916239976700746028135663038750217495224176497630177495025656658027086274442631483650441657109972547063496228151023105628017179202050613674647023678051142943099268140650899060110244254598487428052061179814593682168729243647566508641136737624491236980454622231037799479629594298055842043675885205398621067692694088740812651002275770372820412847198170925438423070205336977555138182524433656226137253287522451221290811200706723117508867719170907534709683829536823859139277327784986055731722126568150224338221775690501208404513731159863643461528230140591458122664279507557501167851999064368192531493180483150589319924577211391608748803576510081359915114873315947594620184222161708109165069539776646547782876263398537838772127563613280968655883372439463161141496970013688167882362224365117686523876952588974175626151085507482817959276170988280420832502674542156273081733380222597287682036677180404789725921894174111514395041563450140282619913499118800168399539253003330860167041239957544014055566716297268179794341008939223594005642365990717862677914861301057221793261789410250304900380787479391759055249850003881444980056299353432405373955817054828034915065966913873352789847194463852279591852081725919932769470614486035420272363495253494709164078059432676551890897500724252631539386020334748689891748162730642954468045508671453212220735430248944262419913907645263978279733519357588871139065787264843784878989220116164214767397554598334504995827524320195299318196455577983611749984123637218319106645721163895588498874536577830869745918680701106253908493349564898985621004424316747186633574985195018228367519063917013004498111191069256932169615742184545472723824378249088149537849823237359131538446741235448262145371524689642254483012667237860913755079512155668250631252403648000923195381194123138905399332139508757683340795331122854583534981603937326061228467605336028660393298063637030299960920980712392968277161601802248595978738819266897047553652018124082328226023751688095879696882029057618099352804012027898615238266169608437585697056112464732722630667404322692915994680825228820740369792714367628811330005207757155968959288720326459318177473065664579301882477074383232177783872359254097181902035704046702063686993203555240342582157497005183255847106883063729063303007906216856800321267018163668879872286745002296086016367968123825020761138663465294563286319926041455945189690385719530938890994553971348917056831152359795267187761295836230149615230083868927873880847547431148167718623859204327600684273267867013318295617550897045920539995667057767580064478290071130410459233032857217086876689403118298596542821695637624720707445361455138439950315698296663702025274366200433609611696456470601922669335981456151921202972745903182163007106901952431725413612829815931375556434518689658444375552290045135420221329512706709761894607424472517821195605679626298372021347481020915030849410246997365062418374134166854185009357065690175742612436661445932428154381444965784012869855442857154937839131317511189868649437266267241557985996131123605681809761851899333714420868656675651547567509364157011934336121599840908087254120660103153542796892620410302833306579502649273301857674649450618261641759876720489398124509973524528545540078718762197227000122152871336237999939155845887092234177096501654623227836145815415583962398581222337624504314079150117044714392419489672207811886589402097293409814521663928302298346631996514688463293545922507801925518443259369601021587677308730126575872283058613287478046832824985809695705526676377896939122285532273030305443639119210251303091881921607747006261396139488652553503851773245126112147081639602142362837428526500960969722998489781147247349369773112694571564087078778484234059604708221034443037515502575150341616000787439509644088260157444485094951687699419832040505240682671907935014527065202752835749141752549561069649395049106749306976969026929028629357570743269929928611939910061471818338661990014911151809756919332463485687965986524840117859054896258499678775811190682180195153624522037988479600144076225091375935626609008263849886586964136115895804498490871420479352532326784324612073436718499827602728106295989124661543849435902412962701027372058472169611935158379365423128811551068052468347400923423923043375797713209311663287317348335828053719354042111091112726575205677350620384343981591765819846170930523711756277437099511980887834866544009977238279582047190104423306483857288384564952023136603225961954416519798796820749028990428559938922371842039299584295271963828374797973275818839755111528977518322698889546601407140113764552177501982886239236123311828855390592992911431583224606668237624816984728278349309497898545803653652117488926459049498601931846433452633849819981863507490569217733124192526046646818328349703320407833967449318894915844757836152088329045463933700627888885577825905940398305510694773171840082698499287571099824430483216641009318352341362537898535935673242292284038498889576183223180182844443528039606959788469878053991506221697639533769140903338094939956996346373603089097936011895221169604831044482471831643750349905336750626589095790948508248078431359698614264423938010460630534470655011959188349671311193492926279816956830230929998723052617884555978727580578374448124130051583140121711892255176175581901712224643816900416384307621393677308128273163786681462628171180769262900546035024662969799986716251371605498364659988329493244954677370652417888348775802964576714333527285852344485892366504310208964197000646419992052863178290127232112819714141190491861301099211088910731943363225083991625054909961682908106422628750180173305421780855221050912213757475023980636436182334605675859414104539831786730461803372452611062516649012649806670168848299744875245605493626391668223423047942125823878447958142481857368318860542670010983641522238637139539918135579775293771372772138266366389450485045388816606503264909962392860001407189526582752281664652953203117495599716409156379328442918909283760892901405802070482215919210473540150264191387190742623925559973611285063746797325787732203795877277064278442535335547761376042611217354640578774336040828663664726527551799358406524362296345387501583774528803922453108397629899570314676575902059905650562987329891259960938301819009293625341267583853999084035085113449497339620774014481403895355301182958285196368412496392877781456826819499709387842003263577945858360012828402890999675668504052834730200215282423606314548205071211411440177736637065628931410523172956879303581850936451570779150889320398941535703894413375474761918487077443417573829002401078685416181643760738782340178228697188716654290473021774622572357140878817380101616207362799066093529633635156808325701112747254923788354297092877095014915352333060845035196684490918326508787335228776431626058581707531272057407343432586647620638676580461619014854555545345928783213257859607959587216982705338936103400388875950688349623730127064442105315861521389871706580042819785280301908262152136896940678418890562486528258611289923110451872164438465456833704523665838871088895106719211692052984954679833234015581456715624049834764085140137098330570133766778581929163107598496917548176536870386536937673704724086841356971357704269551791514567727315019705067881933575255126711762697830693196294037125944148061552226147058402136767534353477836582184911007847044393070987575764491178762758092838016184192246345229834462923443366399883245477207869220584064467147379168036989581100402628671420745635251097820436942279151564626596973221300640346595111397079380092925787054473380111502819455459157548960077980758673228019386016736896343730227616006998896405843922986830497058182066396623912228068393321923230955636568448892401888406183592999239049111296712630276168527576781692827222199348026111936375434826228396863007691884222611355220437914812379580060857780944784478018764655169975456808526811207247434923114548860271120653478437968964423853015510663698903794129907396101722290912580064871450235259365141991973736737840277584789833026051101975679834743696737139253940930576038089498082686872130671556688236116433686149696454475428978824520605554608091135182437796699200604796387404790060463004164983280212608469263981154173809943605919596128074030679715646660987225296674395686299409812967763627835134350306690099899365168146407315962824152793352909379699215564880662786638260258528471224968870077757586977627995715995444034731537012806789895655073124474868793700594433057765327444201671339102537691892047180428090694822654212463025269831154730318927723530432445756042797166435054617168716474620237034651096227236165105680418898653211904002242027277472746865979573368399793297316324138946367885541494032418332829892473228295529476437502508808165471368982155527914416207067430595628153260126030578548576261233544073473012889869537143086649695182534016715421419080117764025421012024998306893923306058541518487673856799982776768809554644658640041434992511640260026000994046160107649154758203695367968268288031703714653924357165068066999839213910021827811917014856612442065549000423499707061849279265183290017423538175223948095836475263099127285042120236452943058754907776401009249227496051131186784684584733319755595378369212804771168027330393616570630293815314944960475589760608738707150009666722823068218541900517482950132045413964006568434432150623626319700842410906678702984291367528297490706849209907904667011545727936074178592188109027491791294617672531144501417050380042120125564381778762729587700382944639234879879285057336197235466411480082328482711721025844273548129594589253831047203457041730123167249717456193553787385678751883494058839147607504670448044103233729352287623606993101598988040286682250979245389300256307109917316709944041598814504531830444196198992441991528421280708066352277920123102525080135900915089463741613521113912450174097297975731618394785046651515587261035953862964693021813905640753208561842531122977932559979668084708770409854675713588692575905953877472968273260372303272908940197467731686528176509551526382474574975227648336192750308483008815457862513660209360209171430468486367167709287141176491978567954906484722694347466564317529241048403049650718747009855726225312287709468750779774885101671532692402530718278733068244261217414307122683246798796229372952326452703454584860327602321737542194888560452297392442503067628260538714563699643131489023437624433938013760964550007463244039839155410684675919448475082878675729544431064160528994347581458295271013886051255745481829700701144451933477248295229311459485611993443838136575460958353181516255808866345049893775676717493372677592185790924293700413617688582475271503449836488447952021016971351318925458554665585074506685542425548584617646303400494645714375551058124323469636391842256631016519940320809261600167933485421204844809680314777942955339471865499181431064221585372574614923849086929904222872382029044793408697267309792657316109437443034070407799042707014028124484030540321504768404326550523400869084097973199468163508713700910513826278202773202389816989345602734633445561916077191038206670480801688128830141917029163211909420238267085771361301177356035149409754065395671629226478274589037132992494618921802774377934741347411193868728713930932896957426025415233675471547593726505843354672620079680595175553818231765119762781910916459635258804892403474280493110328629163943230926036781113110481907611396475452388679791385051472329907017387473897944998229759199829465851426206175966610859915048750908550362164125862948378699767255559724208784118708714907254326343750059537640700051804434060145892055650790767216160437363026651018013755523639806638373478070110553781714462998985066541793727774728939424064325016847122296598261001325015153595117844576521526317574703267365043700073640321951899706972936208392747171947787811669576500278232720540355164822650332493078752497445667139762049729644193777084610706050168825325220868903288835786369535044945450049910256595063830166394182342604838035808086585364118777724792926209058750735296831644853737984392213273274559070363207785383202325179427645678066759087386063564159827099633909792530049750313966202898838383286771112275180307023526672608258222006938186942709177429488514262116102779504922829222221451106210280680975688169495507649813704021073245406813317733864800442537575423480749647598747968932814080097223021725941652458949935648229482843012528988667774950261177023258744430798294827685043968730049669302945246571284792674541160497005820267037698036799742126840029671134501844839365311945323024523010416231570710216150630014434452622354609824825542784556896220993418733839428828180035078921115448631061950461358376730406054935149999809508612506764872158195437522204598436299866501169170521288532548969315666347253967057250747273228951100455601021841138217722513846723123805496572486526391619038074852327171242656216455310378563025368840494360399218656682173975776642144044605699458659165997733886724034306599669764687618112835113277012923000389863593740673882097691301596091132845128552288153976855852711292241468214673705743894694991576891467730503792831131694489500175702716812557122309119336764230727895140585944186249873956431986855569603334773218173893116887636779613808219435728195087504372303251012314000139987400990967354916565433923953161049270108616416261180656204766865235938292028662674140946426191911853852987979692688297278259599301526885432688584589144716620302011634244283418423525543555231734630247417656424973307553913879928667513329656076876351616138644408203081708608550001592893299048284392340462084474688422975383398198189533262898304885995737141212272878560021953046796271383166014048120695033771011228799671545782382292334933738516598007348993771252722075264411688958932648466743094654695335138331241628553492850146279486043213262660923462940202447552910173417413888722291680150129845862622500386790975974853860092678209617111519415886773971968318109954412478407582704563992665927621681264641924408797839340984649987383205633806801275563821603967309314266749204510123745261503823310555203721600964432304706501549248649253903950306437861359330740841358065024847054240689241113905421983288472442259970329945718533209972343480779016687088180298487772919637312426474083019991877133305445191656190981954159335653629784744533272740365071325282422075733204796668866617653080997700411906300706685857082625712144576940168949759049384163854241113280281485507558795227288172153054489715255250925209044054596074975101492548726474697220948454459438929803724624388104239901997971603621680540115866206908652112807364866856071243358575037921227950966652220217252773899070447032330052066602633288018473615044440075441982621427611417914718869151874292799453788433762641779159117516037857411455169983742676727521261047424750454597007182742570456003547937646609266082330117380899600929922112794728452429546199689101926245320171176539835152750432222479526501396867457809226491837774271083107282962064134324942767922097200637836146812337625486473728643912366462788707370866871890905373576032650599454519701058538236113279469717506654463147712469108341245995239150411669048005153061816279117090001240228447466640513104892815291851959695657371303721266620859111227718299050084343599826409269005689067702219481065284824163387342995719877490413057574575121011043351217192773167126829678478587115269877243127399098646447265072246922610968323334660547991278699639652491435666698046441522785830693814826655109852189324250196217429269139310481056232105779585785048165212216083772672943504050863667890410341880199470488554311729398952532952763948896871560583288827204800971757943385306308446302465411692925559931859224080792705908510429466110184291230447304789028506338328722928342332989309990957010905302593425788327011535699367117855135539682960753841289972953759636565939433628434596169897109736033338247856821422491167243052891282984400100802410722250919176379130783488165561381938778416291915339785751419028561969695400724637555021577358836897829946879116999204254992234940995426726675858125960868478688866661446230019000983907741660872308839848975011836422656870686808286763226354991031310257811317848038461267022523098406867938318834614856873520851578239428298164647419338901076665014465383454599747669748264132442596404401589780143488159407689698658800420824977082106745083955849540347459127794292267755713202791543223665522925081562432435030384779565914080823211423270096905656625852004448571961146821952681316285511845410451915569912877736800834670384288559872197575012023976919128357153706508297269132396725618384765176293882167894980962897992912509206742696326956250917452238490325899750820045240524988458613396078584468915346870592287483055771495830909793635313982981376187351474322175968395817570375638049283536512060965433270564765291182326514995406345994992476505171328914806304445626073007020783576747738747323406609366260858563345098139563453368178136128952219794527435553972757397004576993055611034663514371247628742358919494765342378667778098586261798630518364171595594851121832433948598581205297781376861288748694532082598662559014366306577294647799790196505196549587143842498353091335048511882973988621372719800524487548899463724189959966445931722511828886811509439413153034664654182820900386798492655099833763944961475719064244370991313338008525032905638955333233849350630823048991870508963574340393965849669923817853033563543195949422002818784213018567587545181612029900880148274293325390636290980443972614815418535159237967524480105660335114017127880121341137376011985374232014216042071571441599208537997062174929845655989380161377101962881275613234726828808711412559693758873380129504809215155459350839728792139679806573285935418679416727627383246687224459910606846727798656779271685590900490807555758658224388739332626978184052650767893747422308075127077878375944457513557712097867745754826107249316817276746620334953462559872435071905532777041800787111325627912103595385553535461727610176916430063721376006086954341585494115749977951606366499678970283330761739460805595837668520851652500001331667108354980655139850321729851920500806490448810831157330521987449366317521057458930789773889004448434433494859106708411031054497377589762335156777614241452068896247870482125103340423445457068318772878183153537676533351251191686002673640373389003892062080992215010627636899355696488416225377481626014670980075065649704435497568164848663281191981755118233904395154304172347540196383322091516642536718481125662902349277687109808674859711075671401808079262565575970958458242836665638550616901957205500895997399757857885339756594307550378657144769034030141161202710483489177517974982549689459439138507094797645830028705115224998880678045790315993877290318444131017525264153075700444828600757302688293693850889677620080070456079628831157219420655260506390712839188798789381178386209287805322189800508839293997221059182567181896980281068602654124879565914600210308394350726253060343470207104638275973206412057332192769646900891615497539839320973814267659973862015174537720281259555001687257597685665173849679349568627331545466444852698820748310857125410551402144131802219835175257653001627072904415962468037511179874334958768904223686010627441346310213161947009767970244935456111942166310080223859292571925689367152158786690161652288866984844452719833964426967094632039306669384168886286221959190854408488090473858248469055593970341210283738869497813566975371975878103088656454846074332766658071806295759034019504367215954477927269093117471161113337066077873019458210384096827153101353253291388098501305496383267815749822443560892029747290671367527288051240985615821372753955471103861435908413607393155562076419360731801625661568097534667126958839360855205943063828805868824930089180735852541649626670746767150765490188882015014192132688157037150443247724890287952310801072045518018444151084695387776910437461724501257749824281218201288302356521010043565202419677506081732863209123925727750387922952942356623851326556267068967291574869601981385312502644134806727998531853736162576467108911783507073700926347084600091613113483612454875473626312114852698243089851010327776736174531756549402658449866374716083686767137128741011014216733403172927835418518878332092533456949375385163044414247483212467692789078012778310127556197779046663481927155495544871176139737498290241516700608586092158838509007420309548394973432920660756962661592602296922648172771844975018061848063475280008119634481038282938246058850336199834099688743929530099853477560146792398585794946106801214567318854072773869772805364016671397413582862372066576762089409616206059129728276444037354845700110469598252718152772584981513740502692800496727237266711874650001633474562341067521147073046075161011285400930485602699163852413546333647704651264553064918646055726318442284100344107479516400055829619307234203188814578644080877292468890931886795140352054341883977549446276407154846915945122428631177083246692137892114921930633270960027228607176019518722571144935479535487215964043535064359700548496999779194590672876251944224716696617546715200478566505328647140258435557018275833801692738056056814946922734816862071078763594881111622806489924758129866980515511381431337366770288285176167216154794214911118751657515863524685697807124382220822078015174890574554145210718579376023233955197707081623248253864651642159760814935944124736238848797400209397210193343122022853583976733579944428080758285377891328650633634149905739452303242609193190059077222273867779856045767779457643111061917798423123275871380985246768057652423065711211698587025195667581145755931068158744970302013968503769238326946647390572725918284133508449439911128810114252061809277853216075736583822692062443164787277221498855986121470917300207163384021690988803876579334178595885186310286693092803710164435190480073629249568275570541540061925583356816010945808338587355787179049455821099186241167240984097441485806675137099425291219111028366622468178768138154139390555181443142834633195599329123358981348560865238127103273320294807262424045058744844509728139223533607697535533579272415328510767115441746397514815618140805431576659531256551860676072327065113214915336409996556082667568070309079413276589372710262543954364137815329199715818254524047273654548227470186420977723895323339702572812573679481222907372043844915665263372978020322066914153647842883037413089226136786290632966060971923725300355254720229525985798801457227155119925051751918685810606297895976629591304376352614320379120753899144703307512298417149398690362892451978298431708456357718328915237521812849147640217638038093850160521387055246957012125849306756413925121806603746120319538420757855173922729322170797778102201938088415486177111146374541132204946337356018590581770732013049507919644298683631084590983647486676475372382381300699593740250002658898407186250246615085307831474586473975862249783048526671452156545254752958026061405877029562253981261158610869675547768215156117716405803402372136647488987639243473028111322060155802699138679497569025869526667059716552107813112299474600146588305777889587881299463312527727403601995051100715066186713597573021806500790380308261438725522622630210545953815128785122783770842721351011101623825119326632427533232280715554086216329452735226008534081796421685001110596687816828952839000229422033853694462215144677676083154701900187146881791833983413624000911108522762124808442692509926657900156512559223289150003380123419308816570152445020765787242509671531452690406959989935248536257545444679795637927207770444701761039624900848398338064134444551103131261285714610337539226422646803636070799316161378307024332279862100826231694393864336861498865487703766303278694680144146630215550288261371441316098111283580020276844861954161354863428344878461009977930991345431626967981859723805455711670522250146619196167971073233697513150888437283472238519772043066254308996017478712655014922141423099686459100211280539785151160323008282184941005489665178078461861972660175276298933581011304301659046840615091184650594283424520806668756181210780042026051315448246643784579724605716274885742811807064663456096129208221408621511597307612950284265897154545838542609573163060246957226382001901328544390342451779052960435511689458020448693669898814827198445804251469413965026255946020107333324072567338522271259536019425074823090790911721323010154183064007372922628417183067186436366290651935393096485626375641260212213899647102624157592140686619694629774606381900871342692068714747687363567183036967206185962985256194640032952583414358015179459011630957147557573972877432925486355451321785876831622330472540827379129861574944013688043918328628859302035030305385406867554956703445348845199863553996553406818762026790839467024857182554322626293962782945806259468067585107037180404109684441144238054089306428406346392658642391477936877517160261281640250661367517323388868595964340007071413427013168103229857792280633158465319040089026785311924857525378974219053135100744566868928053138191304809059935525094239306525836198220215855157908778376254398205008554054970451300138473742532657288696696404589294832575269941961448450429585014466033114942029141245731396365294768406935111618208154058875258851378727568466378245743558919388146649317270223294442507422840755625871169701082814838036204505143832973086137738095030074799778314141931798148073019536280356897431511372136477749516737479850963661947140527685575723265644765771805101835467646153460086325053230893294057436069218777064177082804500427102305357983521293417205203664342903041011018071513346570324812208715690723661649813823325871079094658178649227439392876551035773601540289107227230868195876353697260720416345897607820743927372272977589996246064008705884032874841454862370708871967439937748145624140338125111961583398807091791962446390942088539908276740946276445542076698233424697350565910491168350455175339240632796254611792940743328617984844537936796251665535650575499881500201020849237986921980968153496494495563067315101090589759269870207785032757183078843205892282040481621874686444066509629712942807884395841589325732180906622327999056190196238230051907043802615274008839072248635004759150590995516555304463108702048835889681412739031180829730807797947883314165933867644412451068209110826461217724929956208656465824745481924726187499091666812805536495651299449091922915933596941361654846552998649067518269477210322729143160032314016185991206965602574041231250398172498210352481899596799175968462474739467999999778399618844617618956387266652298840467016612708379242170348671308764546015037494280889806069710758482875677936772693697827387892709124301174809248095008905712281443466008059680742104567200612449622544111774520797625202458304210038326604212834117799675476334001373941709007518804546222669176329701625527641863947617689924800271712674419059636643418668941462775993729493235766302299322719614210723357158173846267279203100764396834276723927427813496664592191565718175442165091633539656793234283779027154976067614183267750805576629489975741006489695447079537149688514097354486877587463233621040739833262150106260910319941955354553936696875411124135573441881915804919173089518530728337143594612928417773811286194690742711549753185969327954209370174900887677602045108746377792328326003463958216896863527139608784810712147648491761156439742509713543820554272795739647625062239526065332261804980664238295507815365972385743502883031704534657219223859429949229790017773458297556480178194409073323353001205460279407113668328195863051782272054072829287717451795490499980145121523942179050585379444651836426470582457013608412161926210837242621522177140077394565771834238751089888531834581202254158173849866720277548108604748711919701952432293440314609395066512632242545212198685181254122992855440142360817778919633880279972850097998429078454900225954635968126430386388866438292553563321711259042995795475576997427808608183702538431290653271957544816843973465680397620044919402839345550043146116842524003120091556499501135545124855540924109675130189107021186285487664564610664433236007102877221100907092773479075250930965767848461986441840326324216452014091345508260156642394041888352164821980089056833451843335286928955496306242622571703878650886310011706071782604155428722231191143463614147769763746244385310987924615599017749223289790215702850193330367919905274773487012943033899297225330952289757098283143319229720202769267678925631001341494806069511504245941685007065977337701748211246406021328615631014406608890592308639878378469618315908764649637063943065110236079480639963972929585767148435100494400370860958884264356937903639533385955868482524083939794125055893733989710782953285071183665301933739182817375094910723417709424061707634047427060808492460715347586316818929040470968093822448632996291530447396538935294567800282638891731674225611950308821510837995029014550039770454173978240734204230410684754048212999190532987613887795632562085718336273219583266556177461483299400216466770072452910917246666361287119074825115045732944518994140537829918602365014369588909948507504171793683139707320730848783417559971515494250274072762724208631658805523186639792228291469707846729420846456309812256386165329954214100326612311944236982572135395295841257902509246338677636297779843862282008003435081186989978698538779675558258796022140777794014019610536454350952378717996377813428469198411669059273810858186026947618145023100640462721682049548937335545727792773844758570894376301339914471318489447315610614776992572187921601813789368059508242293942181459378217040300242744051784247954182151946008866562130990609807801080104674173381667456744047098140576680187392599304148600552200325702105853546182461039077480445987898107475393136440033860920604878131509010323115975186066256262456398059245769792492449834885276070468510506284690956207230866220962922760778242175226499014972881889279059613282512524530465702163151801012154817410783077345164873554692334452834656113377976770579857681577574572179550844405533959815471874299363370075050006885414044507095389935202951714111009016896370385416729034413912591278534485763020926615456764727439541703223442794915299010058052859236332750279271551659412061301589634534851681876009197759280317287245480454379882113453647598861273744228673072235844280732332507891175179028799076403713086038711458031112856142410157071350282787316087087184347311154440846582802531333797750684481417688764926900081806662905930154298165840571077370308058511992683069578446918549612061660737426761147499633283492255195893508751494323871722184020716012044161258160852718353624848182385190352325811582376557681988569477383899293425255677001903782952439177041958146391761801465237041199062469298067716094023290408819355305021192746491106024235417087522349565133185050110457533301745477427983233682718914059526745793090523459120280954064256146918126391044997047352498245151834190868782123491892482697943128860993076965826560204500063417377668771573435432058837860351893447906538077210236850084468492781422126059103452994706231275401489252740488444530788697335302720570082366046053099997954409627824515389223997913009550232461329270980300570789583510622532492989284345322940658964318684880654621679159483786848867371992026067777414824737994332871595143810308011542526228366959862301101589730784612073965761733729141854902017819910980622622528409780030197301248358526166370790424174317306015554915883212713651195962354268787406511681868942386844971665427240484485068609901187929856957788493850235805057076190110791444081385617052268499480763239362071862927639706633886337128393241672228238891155650553261294735152891575839224928659659931851740974602694013098795021314785326640518724147678857874827744809965210662102364414189604078394534010234858788532936919550279506286917114218272751153469082160440171452767485924966390568398969096678966245094343806324969434130339205201810849186587334288251304621785421731061512034784124423381742863109216537294121851004379574738580837086024461844951513319251315793795768781656411405948544555995213345418380713588073915746848306419325298898735426558897043159947028396267974198692539444492216885322847007836061692972735570880969632987157166020273279827849864759801538945930319629757991981927626519467395941032753594758411279594132299892390705062660066430728700855979198956667923074570810358260918915740858056036390758781776990454117335642060828309124210104810791298991689719061548353446862543031959552118490012889171062751248962584006425388635746186351223212169005247152854500497172226322307608293711403510977248917650370611971577385827882598033274132744619975976290343556838919723728412629669219932472130683991752190378364626031650116224218871181210984511947115559420494809454205942863660095303545866966232081831677741742753019483168152675096238706620646575173528167025499266112241396740335546312991070976990343455588307434692204075452269273037963899814305841726971203881072925281297244722269006650795519422646500764101688000367714724450045685808330616733270400774515247756042313422802128527769897362846007372962773267398049849457910302125170413957539883882744979672639312613914218942749445499388934619973486214799021933680369966467072933660248806181172213999858467359463002949898915579297192104434789131468502557317494081018188845889537251544530960281436996625886664415363799421856905572801945759559107509379982973676215587566477774591061309219741690628750301034311662980283618875352840890765190794471536288178678035775594460799181893920621802944013023785373593695154420034174387728113320099142320562258334074823291264180766195045232450915223068054156014403203190060208951738644578718911888090140441210420130356690151339340569302997993596572789126629071084422635245514028148647437150376350471975473947656622001624806065665087637844110405967126746033654353647090535917374261184412288991510609514095892035985948639179675006737494528613393374022956243477417403584471660937693594382803451997322721879980076761995069419511913894651626005262675292582310911071592463917167268050141525633692268893707805397871140471852160032513559835260963504073288243147890808044083505441719897229326362831967563277730962054485685855834522814013269745417211243257583753846792272548402820539402048257978431265367368380785331991699687121385104704567620960324559052072511312980608407574911733707269201844030490519315152695910961630999995263859272755570497078036694790483271091373931917969442250070562804422178920344861666097729213268702410279990873106320895572417452041514387862743189502677176402593446075031855185351617028534932854891695071187790403421651172821794520054327663446813039605725517486478422130422138495966935282756914915699505593456610404133111836152759073786734216743131129681730141538328312835269309908640608545416919192200008464421297859897373153214160584783156104002511300115854209379972578285568465701804553454578915291817154114483472373305909703543933827904824982589421957802141895685974055750126909868411114045148873258188756056153251985872238232822569070390452556688635839651332279445977549843152332750113255201521757120776635723529479479023890887151210462182384470738829289420029635971929530634806736001701080591098610187669635840581170493919214964058405028161213032942506749855596811595999389309175682247907064545050756032973813133045770383517712028043862886651222225234510912003526373410184948794735935095516467512548078184652233408191668092084792720638160075436360666613390930222337843840551457178877998759469387728281912973110179903658516412017014417606653862915461244964163199134696701935089407664482240638279515786348439999980886151551263977857641466665378670044531966922461783044374629141909981586429569288371344812985569174642879404363987387220113125561832917866572186902600847737050896616186889553887613036112084305720171490248184532090035071990741949765470533333495971353666669796839671483531178300797158820404989833491750677931640752740727606633538628059613546428884644058395151557629720916481050368655451673985188984726019056941307490412804463846893363614657189352498429802460308250353329885877658419509154023671959152838388527020076972577646405689698508099529572017069664389797309976686946370451655912134438599718040660291759939237489575764140788762413655959131688651589075210588781436389639192292642401611476461787718093504844966151650735522612023448207303823522828825898051596109348355812286210949232147663741113432179925584381839539076239753614689544046374932546774477054647858250991859606425615783708774946124597448283773737494437495527746807046321579511929360164344138905043727533599780479415763164027433365347658615978853650799369592993626862521647794755436844525662660573855449631865108305615300463212996784822207231702215803246606993842431395364891080018626399268458305404842896265112070081645606999406271638213378750549391071916519588286694482026710470518383408025901514025320500717108889341381506111350593378310593499407901624344946547148218978836838304694934972669803535157859641421821553511513996695373260073343473552755672328559177091011448336306450395207501300739626157523519305272359214994128130521107314069945633095004328868586220138861396800105381849415971472275884034489349593541946559678350558871455611809231367680258113891999318486406751558585979960681141143786982807657096626832144479631274401183350597379455599425241948483797265095920511372375410270908571879946433234288820491881053096486857247079740755054876917728017247654917900288443499222020237949670877507907690184487433955678484487514453794702811495457478796749923164059522816973531094503649542444018498679735771744779559182850139188495787350149016013997253263420633027189192588911396839031807270516543481793207640118276374468095817434934232322242910447965416078358619893677953132562990252966563260716791782311472809838600847790206312579462877996926026602865187642171523042644415307790229213634245756731963857189801146115522200756725023507994539460111296081654868060223355002465058703018594046580671064100551968800935979719873082378268886810442157251389631389426587955882342481436230243703273139696789562861661879278229484165815662671778153809458720921754637391505777291822840207437455276959973502511308105866620387219630348760210514371467660952106512723552974003861266286817866362074748923394466319482311746619215349935400043365462178924010400088202571205552074788628210092814551044369342171803210694562642863800732690236052128484729303667350832939763767108008445696724322398050599326641931173643317840779298771497669677925291285026771178204196915980624515341143844231970626805812659894035128037160605693367305564261944034077077987977327616488061623567853298233486821549830663652757970181174467184945477791864050013719917800146468726670866700189708984272238114508305023692375950808523686404132053407334382287152586560013564252117316791631261701635195759815806395584207398785533494191158182034784278736098622589135834765532596879649380451174639210073470863442102252165107469831019349635663306355611929746918246819532590045219845633818092982989633101794210410288820170168060712119474435232927516328713720694344956280913477426309027067838400249254539128786083103239540112118481366542731379093952428566445223172721629620445404306587088612355491320350511627173976399485232278008506162450625473020811333562327433026704742609590151764132767806750750536072844048007291293639224093329423931041592911249662807109658080896767443244254937844679939202442954680072744840009984151669273307246208704220136203682784350031966387486579839414061438881108495159843431579315185803611465932283901301556872140545366437490668845142778609726662236092384728646469698152665150583793617243374590870064749693407730349629305356436400522375531187581630977292956885132409942604739436988218038910341458774346724860681451827990513831188407370897587777960201154407263540957748059291130223963921326686809807461130103591616904994443194876698006039756319111239619533098707869648897726755495468834559890937664711398603270994022664064374548106297035472696720386703785023927643836685112332897959164688229828924614482350269646927457218235130154999107220765878047562437210042883273592070922971703822075516219070002164110084413777042441649363432003688703813448662114210630992881818575628788285743841566986775659310048818281804327296961979359194855469226746845279537827943161073023995271696773010478532724284179437702330952199438885205492836117031848830269045590083694857279226424037412195170832033950711174230612576933753568720499053143696804590430021661793750819394928442765707397733350840870201558993988077809239026941813178025715754462161311604851931729832164762418878952147738266502845537171343311844317146400751560438690989866477509349615550307228765346631970162351532876739836768112863753919816879881056213907494305490304648141496121666734464588829982367506297998895009007619134805107086547729335628391310029640861524046040084586954712125892786225795740349592901919534129784293231804493630964624873896280642102254728789500554290334700912504228701735997347872748835158193218281182804334863116586638000854312871523670003961547946751812944977154934858272999582977271354706603309503004107700303138872676579389105802072885470179684734972007376703433468152026800214058669305260532047814717214694734212610979336937198073355070574113333154715091242796491098519042492767950068281216296738903311020195881110726397230318500982527045861365119092746070824018391832121524700095268137755067934627832134452007170578671490934568551194549570074835532856122455480764922675931030983548085719484135562458037790229667804581216614782062305494608841286950761115969126665723612379822380514628298232245488341705720286211774280864126090607563884951342047148781559323434144014359400454605189353692507157169247852514513421421361575350422037799847507445560400917060008492643752274437264938837728564115917663189767030771050426187854661874058312216221334409095258889425806322743818115586232422960720085725094371219754759054798294749544536468460592718031144323362805224606347741855954402864945463213755732715627894343015897958319536820895946679496596212597862788794628255434086399423659010133904665075221608511839987737667943823602812431642984050362699135833113938060231185371109122564999983757366442830570338239239846282420531344083941597253968288566824441913697966775466342761710695603256393403820108597959105295447569780913841269793308005448518780124824059880734603231733289397569719647571465100052031765631008974642754802109738574633615517083297204116057012452253197154652735245411626852475021178234967543928207927301962042927146958597159213928753622146600905770336296659479293732661103693635699867125719929800629814367405739833672957879712640696685274332457066316741039652498735905351613217042573132753326919832263536063324812060353871980559668896330180933881680053649916971318056366617538158786516591780809451338606951634043591710598980417078631275737756980781066608107472729633067449335576422726907275960801363198230496869814174426777757324868752322701436329051761807228576014212509469658936159483092396408202780632703631867500287498445165789812962340121720359873870588865976080398349377820189076821465335946778497642481466686683789817595873093438929643509080989309051234291256833865051639480270036625275060443917248846739642639863971668240884660178322052816704856206531242797407457085289776474019331423118694215334520727044434104936289105288289606345581982169661616124342791535441058584122881899445971922027476010438445534518512432412647997720059047760765672938570861065479998818999363713989423537759912731121193812278854803353172634900434964069628693637369317738052833851952528367424683701301744905364914380484089447234873252149198047329710374367613745004520363840635784296815616820931917345066968452067462458838699735626888454338326090499888102597935738325054485096661564216140820741976627609119401365906846933333803998574143154413917235270331683987558349944058216806956954649209458812152683078492901629393159579005847059613461599236508023267528317877120051349768384264083770955288079732366379704919910122746036914480662224896366944023967356895172665587324720725734165129612486794158763876138988154777667960780062264804399026642767459492739363290187589261572481029343232127623137837159808372118136357160324341193637822679055326694586764230029043753172005442856289461600018852511834802705674332099431870477381803468884150613124854364872931791503751495735135911969571065808940079621614902970123702550052779033086648706650625236690583530191615542804049894729530916302816815037952800931331705080981392118322113901186116925145505537478136029197355608095036846036461614879549432743355672330141351860434679728430245780224631833863108196526805951190635992362595550313454800013911286208483073058634401559948574016286237348359077501754262519959515196290331631531403436095804999300638035961983764221523130521928599889874436991113307113299580586272924793799982020320344610957629514941728728393282514670296150435691873849544213900639142076624528981423697810960474263695234837345732494494840193106234123804425663752960144417649904801383736009514863401511823394441018298282569381852379603236628900432859644743366988648985273493407558108319174123308307072551383509215688702761336840607773492454943713204111444973966342209655129803506039872051171530431219392567024197878874752256102415411961782888395471537098383319465795939884325599591638329797511601455087138635762337419629809046978364384252864084677265960839552250489081776770132780306770111356282855423091407226444192510852234960721482850996321015829021536735207468771368786282505857466985630947075439893359401929468581444746777177712988899089096248708145710067619950239689344772901371582172557519108771176184806729730086059832333945436074577792879478029467614642318036308920766225660585561000233870960728391169282298549836061593954273247243893979087532964225066883140340124513653634981889937873441955323296945629256664967395349381450644064817069112908157012063162035235806772531907417491933300241973799396658634163756091803440137780249772833632576714847500457056207220561244780994594900514138281274800395398209304044315984015847048031605949801065449715390410103849117066588073443420695228747250366025567317835383363107310202821279005096055012374511945725976895255524348239138001056949200835858415724259128540198095315662891883508621991245795238467523821417727253928080505441165917137076464200126754577305984516713333278596117538216641224831043378896784306543169540458784777196020141532141796189459391813621990196035166662950937848081035994624679320253771478473731781556409122050003101206988582936592319179003195858290717176133339176226327585085658581978042533549026341082033417594658860480904119947924856692805508592037809649511453103077961802035749621248054512132696483122650449914273146475623468100430851987967266104564907061637505133589456887799267620704049039971687555148420863238268643594564882129292437538020904607292936541833489383711327874634905661247024494305326488663154117227691583691647691497847672268853682729974046001545160752830405805707673775958166669414397444947639455969273784613008225903749010640710520015798287922550004378732107488593177616807113948903175307665132580896542650617831170386172773140143019872987153223569958322890317607642545588874684939119287050959711808896116797655277813384423808636304874324978407022641157111438122171708284125773404981718252668265175658668815871325995277827030366709070782581237721764320023144061319668330224319454158952107352483770048602204151111601530653224453609984836589954654035986211695065357178481849370465492425747901403427631399614763261085497456788510108042682939363450895373633139073539436842225349082107972338687193136596543169101528688252029722680018422064871735662694994603088712649436623475186853947584644341852590546648532392349568583846902349934602797112017872499844665065104852178893365919256524742476671871769860411724433156918722449807979822382187905091679923733890112834878058735473993405737839799456754510991379442713866688342611545608780227828783999622072284123737352010243663271304121752829751808504742722396892641584201776517682641669434103591956642998061012699872866186183600240802016670382219832964739067796995652218806467789826313693117784024081564447527926250763997436809259395375473023518170057537907966207988343594273741927923583192411220443278335339846768901571278735662063300509384175014596832843276314155601953026694715140534432746322432584004275146726208283283091814490007863455120286910935225007167167018009248180702840682499308280890929000131119087479062003655617258995265539456831235001822213987378184390606094578062294295811319048778915870085498037211649449450621793782297178813232654962759276307113435666703745153817674722263103605776073158902698056345802246073479931123089764717039779479222666135833044775194481870098207137773545414557798880283482899209834142442640480946054110953789588651953612933574711865057663095055908925324250613804789179689453424848028769265133015680008677438348264395018113526287786186833160195849891014174489513682879133722056460211432249545266529945378223938184494665452735963036133265714994472695324617518116977134429034188793691480989849945717796122245784355955379395593897292589903333044060443916636823836524512470579900826360227005785083667032650060681743045445361940915398826489404424216893139139520920099956917117234516707709866853487812122445397778447028514171190488883326589065650788368445081912292920781963708627433521567415176123417091618827246534278557086812382097292210776787963597179919878708956037888968396389372894443773625661775302849331153546011819550346739538765397026733868660612936021673264123998524524470098192760655887974421634438833529517844000819568104522872892246884611167750670736841337165699477724157402763325312129182459258391127740575698173945981666785169443739989978893634888173453995319433223906664512872048787580554380347871926706997039555022307955146865076743352854336385832301893000808340613256127050690328359894497811685650077851780234944402842116274108364329593116551605131984692327791191462924282371693076783508112529228147907865518492288977690677745667371414954716464330578753338989264545081773384436084649911598909648757345905355735638869392631590417280122521007407930409217202028434333051514954547532660868636816059023398986440895637586754629453605344352496298109384712140535274234378966591612043644466485302317152059071750830363316847241576097449213943897285140980141002865642480684365726866660477578793097843493243940024231463067919695125420082745600058904390227010181723903681827958780668748238241313731940718126713315060386091369822975342016874642789524484374019816632336305236517838864126181077298836388630693291789365021638123824645507458923941747292230734532467762040872701046000338192061903224857786020259195438815031103434995610794125519414207055668761415483189210321164327448007843733706113365137013124130644655485358856916928909120676110887918441463913141993525590904457589167352945821521833736617913869178881797863554325415990052784916589581613930161733954351399367032264748510664029999743686967349453311156034253454048245823654573746020666130659589855644165345263031351619851825604961740856319124407794699175503942659507972688946879344154114644163801299099381673540723146299968419182820936085308026066944742663223147141600539355308147330083631471083404689027828592583625272104618213118494072690255035970567749650312265143475215168265520785264221078264209597728732673817326937474554572311772218960464714079227189456474792573463969367848530699903147673139279654870534324922965069302515644934849382907679861895819554325668284206006510037457331540951569891042471737278881834248010408920877271499310559481323473329619218873956595895454891368563038022140701665306076383585005157233888464393825398911630069726868475148596266884053729473857887199815208496722321502781294171905709393846516515952397274987652826843482360159869992113103536208902112016747291819324204566377053896866058495681111105059352099175715241971325552689213020282916331835087650168684133479820019791061981953934479115246300093090756574325977896853603891952049062652666206021321945573133303949851890771276459714776405175423134155332622707134493558912515649111353711956055267749223549476201969449574412770642778963858576038956599928214811745032949081389624721818366714921324448829569039111144723262750299981654908076274382461107142800748922630799731192482958337004135275412264992725608002991543540831034072191996684551786672219511066086467479142907941864573385512769917497404407301192977481104629812335620784065539354202253174943518141540687984052431339394029855884927469122613962549744136663606214631455058791651532215153705163956409935677752066722332486795561554237188508151521649351230568822870390616093746314244472886789797845762963393793608071959342845323442479811135511075819329908062807500436518811532687481596798654287368027382738328117244986177257588637669319409813494835564999191044030850860399508833015354459945230347549103462668586011250813882296848453577771435568749499733621455898340278152653012909946981611163872487964223449973889274563631074527489126464237505134178406552309482639355489957900699454909276299853737060541819457113313791947225472778624314799228033394217690139479078371302921203912211364809297978822678645203053385535636672952425464194534552744248763128923037358657014967538731596882758537106709758528989285729669624594488023570721855760403731892386172489751230926953581701509919278164519771250919576077738946806898842279461916968601832554005654202119286116052714550415853928021747825977204700141479431165350474028533150808322059878336551345515514956327090191912849205399268626190332996562234688820177200398624245577166966215728108301127520241833453357582828274637845111507042265827643036325176635321308672110017224808839189732008360102886600704240107904619646113580398226651922774837919585008864442507291045854084623559167125417431120330285943452618964765164612946513954084892390510169533279276019556558560761329127604220559168565191086800001320207265404974590820208276397450969104564470419123425278765878192042884330135953640356652362990447317552521936052264241054935144914358612683399072857284114640319044683296811371722956526328389648584242356271395274711859340107570624389680416087517400792107487205248608965587085452201006635723655049295119875976538496406287788652457503306895559105778914276987841419161575575411875295390146412220139181474758949790079039930942916930729882139636750217125324001427565318989794751414208576022843876654315528098248134920193830411462360416101876451534905177795952507349528439995212354302548619167156339336935836125838037623747323015781199556782481216883440167599257022795470650621055187187913179107338055259027174744629774075996414963251071359724146721711625963564140046106735947557244911428874484260641138649078376600700852519935116003554085797549073354848449206689451420503167988881228624856321960626989228822576407507652700079853140905205613974899317987621957574385671526103882248822319802659977721260400780986173984397251640508843771765404872390950213255360531917110919897938121620571114582180526185737640244442876769445679945219919220358319655038981767984248509200935211180093557372669874155915152558133743727086576321078622479365517078794434375618200441223302831698231125116522350023893704575617860958859621771980368688820553296572907416016139941198405110961665295194755619600336632174696918373157106789489631803617185129981965312379296627403546730643265861074879631781888338304957623473179410395423394504131707452637177193757836100686151278244099055651199561142278631462518374571035323222599887506244985356004808290546179169089847293805373379816194268560590322732073108467095458759860835797293520205948864724734581899305522221713101360248700512676042469760096176031804208439444356113232531111092086537127166470089366868851936591240643208589084299453434274241344967128418250215773833694242816148010789745810466610089378226304678055359423508181334338175396774093610805287766731393850314693113110836155323002431847657980162100627423324596019417617152898902129979427397867105637214485209908009060211647529703358424373908372181273056977839103658372788182739151304345056799131958258811642777650344138885618839751945976254542626941592053067866027526962488294883855813032354393979710734547647494000993195799305214826349579421613077933153548404925484929140077303099840506399062302141120481553043109559098050725898507517466461726048319430601077265689183759483094848018075128964995621568184984779719909718792981917869589960213378724882776751921387302806387793801950986636399863199864830627400638789919523580060414013156222045377615387937139728357334482899775286188295397393461169362089726793147232405457774638372329422284188679696623647385290579809786429103464506047335064671030030541078795811998367283386430785907720739281094143972998483083978144997845480892652992486104072259202114344674717172460797790761044831432943273560013259103903624939596635426419836399033873360931812304477954921718592935912879498330164693087818308308392771472216248624944252101431110274867995519305444755403167002891324545912585959582621367870439654514871266107248429563313184516932875674534562229669713824333611602418856062932318895950479384963868461508599540024568002460112277679806474547869257192439481695182603953203919387472860918471801579977469998216487674042327714063220097659221808997165762116850095590681415847609650744013002733022597823523529144575932667955540466343802050040332256278549727477026187138691579123521611030587960336197007310499003875688804174042419552917746267384371231948595591506400469273479444127997010583535959212450784202019588685554206918352974321926969197539629958363634535222925377271174608979634866065562259171018404819588315196329902000855846439571849543543675978504268583187560113241351769189820939500816639285969093738256737250290417818760205740354354832783109279852967658379228545398107031600602304689398334976633721929380888013710098681663466648435708807663482900944157248907609744436035609626135455108723582867029375412764035730557075805402483009423858399818692421077110212542015430040774125955710460205545818300320499799154854157360900236333274287684377993449165413287951061061758879211738603671563042340168665000100696074638831085107431032379926746711532969683749608090244501052891662850985856606444758207072487509834586769208055623873619634264598808220847487153770658921640427972669591074137584809439813857865161596816148230100364654379237615834338568162768039371598529691960050113368798754389754242553951307495566483647230413591760816991989327356098150806267278288075553771502579190932714554728671508276999020464493098805658563872527134093797138298914777666332886952930754207717789735778930956047051634548815149294182054640887868226221930030622523352527952705573861792262816273219230736352097303086842763580953985572852905972532904523242412234331449984885953198766966425309739115503488740573048903849048753186494913121129012415973494291621323736684041205627189112707076871021343636211448685318404606476851546506820604460840984260896163099914771392575689163429688857796872556792838781448956872329669868865887101659493323510966347932606118213476710306367901395517974626726833902755790869422432685273920774941444371166401707287891425480693157749968299206273795811637149674389107533053848686325709640050406524856554893475409513925333572325484684236373233891912827265989778755317580390507655224652694242907262498663874786333697395747944995995173309508926588994166037261760478489854420916430727873647293468047338987375791943911138413706266621045095375078828187216928495831088936739698144555681360875570983070650939214799426090658226392547131487301843720875831945266126356357603353985996569865444547774614874794007667674631376563855324237158962355959619494642575351394588194798590628006324876010123149432670604839331349777245507488784442719820847967962838629455764568148875607976832639761159266406545010564635474372551362737812643738875912210377612842741427210972734453402016717312195098336590159539125190740813910514809053263062091345446144019461290555210997120161947351690283015836207335424340210456410058386443445397252236468333715553569230450252023528974546796968310402888201788339093088230689128891393289150286204311348373737516435386267207069691986764642119411581893398798751155553306798714980348194726572938504102620242912235180596342455039811544938703107752916429090022883872875942112696390110588423695690654974855145442493290633464306198641614692851520326220609456344066150464700021168412096039992294750991963486118068895997580032339775696954395699240329425038636921447355328096100433284336895690030645891072209462069243998866002690694406918403833400505521063924360389168302317725040754419254395359411342682645802473642306449380831901618221967680233266669595157291588388389510209767707313470784090661817521310183494140503643235083500484628145527489899832239544650629340798438265105328026339108207330631078217941641061672520360769252023852844314353569052937027782436524082609032396123688755074288992560145095261465828154194408375595682882902722456220061875430812501232710148484673281841861943692803027270120971264168848640532108540600616131256823769793033391590752726187136731349742847693940629104762855088516869235227503468175196767888308017618251317726263673772154361932565345307510423264946748780741552219741442068151013289439998542032367640854603953092683669591239396826347495326654851850162707299777651822018307784852177644978962844370796403350222676437368841351181422205734663095048262627520460150330227803629008986697839158409096355524581014196526146398451656799859230205639652026993556366212772003833979628679034523513218086043688873711503193656553802371765269170614299202228818348226773800024950900171645106315804640794884799255434532367247350582361177885238026166521341870078841740471146483850895458992530226285444099638412415358425467038925079318115613487523418427749824339019984921193296411039006944902059503119292582484945095758823152662466186487133273949951806276764427711503018362402299637164163567790041984450244596166385496760357788612636287808660744553131070278457638560875377796341683766164783281295304380193135983689119831060457407889410524694875341107013836067284576855016417980568848082715152023567856402277830338767534611855370727126197479867172956202656600134881256463044706976996812368332510897265119788355481076046494502321921816320594483706116169952723197263699633587278286856301312608633109955800589230041005609917508232155749776081652967031076507814087647023239999249628887826207410909497100525452037711616012915750545152225787701256630531975872883761084192475236473195766853412408796371895145551698024693598892968319015936066256655891232265386564035821239239002252884606955972911006222010735771147551690944587771862915691393767613159666892994225688540179616337913960138507250354424607612870127051531966652393794887859403567557942873671756151199679354276081653113106021571447188244615070989192330385250110648045654479701181925522527992255712831295803803549719607344996644206022783530699610612750354157108210776374638570512083341984404646423372126215117686336195674024835716548083219522565735306721668804692670603163408012971423989809259912898821861960348242934535415315379914807084808777708637345672592046978426354957389787307183436634802793808114880829426922479237219500978453883345726202152393554608074562125772998677887996182410554468608968055247317179477200332121281284837563690323770122478789786280245488224323139752093069357648179835247586943562226077792324077246598589204221587334666490259142434339412793948455228109328019240385461629352216030388121108555705715984168068509529273873405851004600630755245120398037640471558620807382914434852222608482471489348241616636508363541566889444350969238692808690350915586076845425127277255141326817011061484987834254765941838584320767860223202523038162863495493965258935700981850413912813006168551710008916223030502197257160792143745026965150420877094430471159920992037604323394290387723660209272411193573843143542213498744062956941090801133120994108749417368006946439378494580762314590469816822062951204681129916428580351022025862099643546008003061057523797962824318159495561219261221532649927823001080791749275959155876810449234906560262823780076707270330592586977941235222503095728333152195699857474179286768014957743568612420457519752468543632530293814419576062045839043507462076376982731080630564528127799107352114935435237869084377613796331232110044841360450770683308997885121949096170689966562880388825884644061064606098685664981949913350627935084327254717644518820481442544977651245111638088894779475762490167808070732499199423147284317467320918804833350831952650565091397714015479173986322817258420831030790904547313722133706294873399057614063595865041388940069037843119096655944010242728638567445387018600409023309508335732046479681875780670943714727748880933338238031803596445329510666606940288000269391027154317905710774738207702502818456451474675990671096158952541622661006811148165541048163483985271988839957345516065503161671953983584824952371977210364821781988258439801925284580648820476771959667455914498003448652009278216404389432432793465466353691358580091931695827526007578049319800142566084308328519206699672988291119708326582843133360801439235596845892053683898957074203433450529051339442989832780098482104300330633101212971174173734236217075371491956782589989283101465195388623921415240378585570391314219617590017224330127548631493244416586211028295758500176359787988609708979563397288550234722262438812998627631485451876513924363761928614804983463854515552093256193944112782860633625857802130674406082014289111903730111343134071052483673097398143384220489446995277153130618447904580002721947377405366614954191947693462662662753349373566565774906472391390410985589224035956231456417096730731275529244837437275279926564116949460638913616594483209094402391751318578554290854876916881258326313342783649076489055784381231677594736529700849288045196428230275002372967334879237099703883771192513375632820078976023305224048467395314347585797811348167295355729904750600560814953998010313342763067525211840620299913935631248984679762394739655790057211899267387318667606759698362638403597605337760111182436826996647552113333134128749828673010913747018096093157240852806138777208832476965064127876504339185586621541006552288649449688120379474597735676568978031476419846146490144775682303473488944138150884881146868308431761843874853284492716771128233012708780131013906046538738034658387706920697946031100279996995900765476774499584856554934074347249539901167316359567724634933599633317940169523669237337138148222492257600867624422286105559803508359916440516289448801081154163237935664018536386041782474956730627376521069985856318038599455518973494998240193092808892066836896181440327441409676849293181798177173417566067122356510555380726459597382798285123975952030643188849363439623081512706149793682139173012476643135075951555496623612340675177070636295496509965940517722024646535741939770276350178220771318723793207304909493753275235284057226500251329944348558963307190687572081897781198942754706840557850190067503225353986718959467174518271247443408392441069502318967918282057669931698883812947806862798095162304453090062193674935748916663041285603824649949559065687640094001796268699942618303650484570104926207325333285580303266268212938286602337322641328509712575883107103656951142398094235004018071164865736482171069237840197835588680848972315323185505929917805845846415955869907920927906631910599847242028677371423456438125347176735236715022103212133667383047002060798604983609460624473393736632879161871549035791767242728579898181926679669701802956078397608825426883502178105853020825576937252227530594789900181937376869032752518102581116406698364679372590740702423094409506686836945402133763264242325697412541433450436056677844040154650321066462708403518486597650316606551642774083011400067759001981966128783825672092697127918092629462288749131498603299304093241190931097662463164327495355728581960668194895905622110697641949912749115509790640605617637092481144876027171023485414025540594970610008665329631296773413743645821207172721145484375654311537155126539273932816018693174512386307727933529636087285473152504984773242554907703851520049589226143958956678723950578794767102795751852658899395127151575486774582368687825275585842064819302859918218509457734833938598439059905934731506104495971777029500818452091874799137627445642108959636561948174977620201112366630173610971745118013870293070177443714107347698170428822772517742278295397312059737957535675052125207652037487028517649568241892637670129873597378895182547229380328900089259309100553286872703229087138680066674665767584814511689246923673470969182523412801962612580386347984935004318152308970720191707655016820865942459184804319955511731702998662656059527681700088170006078927010194767436507769363545474886645387894029648030670333800580980895498658188213347727549143507330411991953134664647363614847897098959932971750605665540534717272952500865656477000782604329294234987235005275674342674856065039155692691738299242230228299158666583828205429399568783774083511213358859052725416188709233954026991205542715671015043177019802877684623052581818337146234884988138053071779887429756459385162477261413581111586138859084120709626847839806240865829165924927233545559525170219496600232180378025029730189392710912740971643681802760962553456297108128772562423621541720855072635111358374339082947404909833809849261018793714722261861934146451370041275055774744785859800466248720638153346045514685357376394876151869009148903467911161623280706812596539056041054497234737196414620242423902886404094144967182503156977729805889239874486523880601244896062960857570874263644102092922822893119903157362995073630661378329501767428355263802977176841423582236174187479205013878678445926285170858570284445269845039846869073571817480835510386763634903976830201114185013193773791670155654047073459731379731962309977068758703354357006605407371946215114088678592058205535681784673142666039269850974184784802236126932370211375975912792707582825064925529958450770631073796440075627442232132768231478394240644936991095992275484302049629177055998177587862757525795625476470349751371595749588722392130005271401026907208146588231074226795386788848766509512497818606785524862853751716377023666810817021652863828571362039512164230802827140568886914996723964136660301065505219879311488701349256764349882803803290433495037834606612548429721386131242680240884562612292519275054302618025168181310596465454016483957033390741589798264137315531140382614251605547079020223462554961515900037781288147153606427087460583414692533213846658271384757039095098420708533731560074009128066000543114442144533496390662870329893832476113183665545818128292402085384222385807944323283381186636769122242359792012777459716821083615591871009644956063130470015463704737477663650039271250030774172432900258666996467389970705759322679216544769355117229758734769514769040704217856129958460073708542937564538600741467599810579085146941772144827259137957305649088983749709553194060774236607271079927670168958817594374376025807294316997112505328659505625912019817502888095146884887260738797756352519951498885950147271449130790927829016425485558109090046548767333069765211591555654190478226013110833200992329843519905784991001470000635069765871903417708413490378184539031942238057370095580444863878855965810683097223327683901549645601123870577167540392025838625888689531723782492741669964002284645613113124112410375661817648942819812806232688232963365997526094496147233849821082579528771386766718077647833707438651080939777841609030999166163116114633829592316711841640000889462176314293284083313638387202397739018625838714757497740862262129034561084383774910112142281992845667452730590275563651366014860222383481338576617413253424956087233635193040501508011380570800588563343256876087901888078012097696864844242381967576806895887806143799981828577175067458968221722176302757320260033726029559226538900970148115471809314078272551602240791900223576784940999455241601401013484361397715985102840035037155630015081484914802535186309460953259259881844574828538485176236188749454085089647124501144627859325216722723299844492495622605966879249707304368236804518809460239722747905060066829228276472040066776290210250356210498109240045981284247156929082628545477172941513068250720710347961240595525114587890569211928799046396138950312897394257219784202642150876320181168153366005939763682867396239727317250433423026954433673314637841581863396579708919785370999466472439593023895091964900442812866593179700596390583413924637480560987433088128545593731299684110884693466611279246003844126629589425917384319743426509000339703471231545847366112543883789418690775334279048733786173198716761866445643527775568139301388169338791668198663362268061645731856377762702317684767284851652554394568014506593764745966889527349235730574052966720749736493113417615852580441777980234230619605291973763278576636078903406305559587265132786558919697526395870392041092634255749180393618268207652851419327454366284614357325451798745473656218295781805014633758719271720447098917803079132681619235100608236738112848638383040424568869473626096592766921050045171261985097770199961383233106943227439875984408109931648689795582929805859689287348477778146854887033086654849745962690705188477088328335545314999473144435780001737694388803576268991035540335959948062173813457950307034782157916924267962069965964539164597845174107407772552873348169190770802169233543929911982470701158312688611842929558299880522495854658848370417863877138388562813100363716182263852905010390529696967507780091389162986851786742052605145889109910023324628820494286416062112367352313800931497166804763500562726517564627513839270306795838514726782852983737428873521421467382966076594630204540882612328149193561062095714019733157845783489211945227225007081150238832308726539945681697036406075922178321004767103182117890899230613817707186992949005579618473812592200661860865544572404772537880815282331438728122627526265604872419985850295389822668865889472894765046075175990403254993367205769266270479547453814663827796659229778924113996167469800507220906885227443306224173369400992570557128251169105142160950223637777847622806428639983310524203605818198351319074808219582269675742317423148153043009773619758570553367447751956322524258341410237561597412700710304699271470036721466927113257306083808501334054559368036060579880592299837861517015633328334145496909686311523992700959110702045884224213300045449895914227309428255794659508850634335860700449204356477533449153519491085280922078096598250078999418629504518335884239371251505820318677137259001309770477307114865094869456461490711014437665561808846153160918590811870273930937574619370679382597585736445093011453441916879016382185493919166329716665900299404244619881394220432755218460393266018476857719646232902700967219856888373924789084108587933324676552256365552676802266570540774568355542479421172569566395831488973019791849231381682076884045914572057113994045142207266059596251772607837794510960295898342740118957015951890809739096302045767196422424007739894915836815190295911784018208869122605561832790845186511566984185929927018514299960007739895458893237348686968537602373772226772483209384035902261183250158900044747845387608411757212537364410581154514473621182669703268977045582104773311786423807937980889993189175812185891245294504109099533065851175017184094767199021390928748457243159900128005076556459738818292757695564427690322709253396416052293940842483900040714030822784756795859723405956140737906679192301212887791428232421362997303761347096437503064710548941059248395445055067158308196987524846720275360853629456192067299558131116752086415199021343846339259702649086898397433411956620624311466645695040396168962678877591849843675849236599347455869302314943757078957929604439052199906601127265787648098192585847835934967273116064115865154476249416614786376332267687805311901410708263076313011990328077385518414452250991451555430453640997490622539101371018851138708656543109196952575874197066838683030171256527476255230999823755674818543803852703318137264983879844036118890478258363802278352972831124931024388829298110075927413086119291600393393087981654307388903811656539948711285092323003586459147676694961499422091695029322266159713076083181069065895961020155423421128630049076730409728024167341915195989274045138991500309001100783267919367910319904755038081059906125383777325022572068787701372803000804297475593688828418555548772777368631407206365600975647485660897996774911376780571817611388890920869437781257065864965060526028528933202511258120855511713430745742293582903047156846373986884675001563890834580742879223864347395904978185745174599737792450222667845020228103332650033911527004018951843206710088350084231666343052685486022765723504053848297460558711542438124289099495449735815285015576139260305991799993156387836283857888321126241554477106770790515790577025417957459341995178484211954143684808141503147980279867044454283068729126043628718856364853388459005082049264387380982272702168606512949882846980628177326517021613950220738504579947025256388827701442581236255955731699965210030006066310964414805668038761561957359365325188798660119681577316623915515125579040299122589163597471719735664309084276402715537376594216837125952665269021546862816824567391790265859250847545221363888874787792912304036367461853036622693026531716666171618993234950146540195170466356020509395481956535840453664575759166058566111641198479454480460286613213278745303936959869192920213665089061136450074898111280195199621018778820443077189555278092526474433069162149818237340381762336962606863187122888206547769348946696028810894738165978945866624102227148290841973697290418751190708897141844228266797270507034941278224194264978072362020806620195181963374436805510906955136140566319174175651967962084015544444562437720385113896572937119771456162980571903475384093790242663682669380459237521574342742962584595820439612852335044788157638268722790677256106452906821196979836326636337593756392196261582496205914026051773306072028977702247676389282798457605905295502683842837370623603907407137309623335733193716371776630185588171891012284494365056857030266035865856756633896586117986350035868412759071973840421855583871187971469915956656550432695175884627264825758610614610218606260802670474179484507738378553081938562109349272135288053390630003106754175133728179661142243260457790995902989253095512865203349176415065370933162439904845255592643770793835021068832132630191436264482819837642173152071353195430920297739544847165359571403649875846259737542556681365725289899400032476592430380349971454332384806434221220485161869088698420783804910620313237050529154946701634257380520546779558651086873353187021952950386172569871218144845339966732458388544881574203221085466381432224331804689224123550842605621844336973807670114701364943405740033045749587329355654569180909693777196159285438128057676154549461470179580353062491428253169196135930962523598132304584022109860911229288627343678271077383898354089522842759384915374154443355644023138304995994890453297868641801112285729600556566883479841601252243251881161820842938563733233043927588748338574032202565876276319781795126511867312828650131164353449937096880334669492312418431937069181169927560332105627127425079875154056745473161682063547968489961020179186976638823392277848471228985168992105034531787940434169192952943637588489382975174304550186983604840363498714425594273280810123033036573581907616268401033996506627261456310264322380206736739361456158614755640308508219304797643410940353514402210531695882812545604719575647766797492186055810651250487994066377744089932221121803961280131708149545686164264531779217609425458697271952347053958717407589598437631519693199948895378340463063582917594100870108558088884228597361879707482703003509155900329687430430689744976316904549375305030861744161567916632412322523102223138914428049135147715314757484333680700352582704080882462567746982313156047306623062921179860144559292326993742385992688654080324075915355977928065415980702426387869760103323424571266687251843336422848684201211561038557893062543174279431701335143191393685200363969235260497280762528904281791002587798515417337363348505657585327546723637817155818625304443887983860204417508051612351996452964922011183611039011675802333049470221435975941827376714402869397944540052792661914519843794980961358840268870240062029187053065104141634802077640236163272023738681339006261308671435880041438735164683798482996576069812636725915681941181464047991984894559984701044798256931102375355363889707196154299908083898900456249517917695603383249777309206025454642295103951334336554318156136317049456767618346454092868234933714892249506662281948400957162000362907944395527410772637612418548417787537425223516186378963116575118535230629256557406594625794573118029518166372638962258118780671174092581440311298613946248878312756348218557389095147691706273981418819283148253520345603065403840261229047382668299284009827145095518707299369931174253075086118463588930264118712787421582570430191607576713182765223247931358088576879951997254629516516730840744399928381970273159189039116292048856952779935529933686417660318458931229679907563072205833208008388621379651013701748032668344030662777630926787115309009849800998075695063618304330353242950006324072271156533361361047696736384394971099682265518328065116621983188534508056197966646695739158745045093392177098873637674088643091029669277750996203489105166750984604418680097773500514165448834670144363229636063181766186415460901296556147834462197615200691994788065671940364194131260679238776838162192469935151661942592969984702120785089028111336334652389834176292849858255791670190814253467249035708257646059272626856112317925772300740977008509049491453135588443972549358102777985037348374114643337478096389648600852996867763544465965423428263907118278113315685608172327671040798948590996511365703293967335424489088390176166856664050749234565918001191078300553086056534443489136164337747212687201466808777009468708436685733951191715426980445916227779607318210360546113236769309951447434050517671243639990293809749342428133117671967920833686863465032410449619717968217916421554995065657886597297199976229677085354380439022586904792837715281000588728041901774108203990711236638731263461695317284929531987375155668593438486081269858971511875933932099022790810396063247889034649345796692729236280398723849529122962629363614088579091484362539842505280963025317934540064983521111472548326445587246478629482012848306686209620725841605102435830850084022143887616974619350026053388300712060873766272142538413817600463577589539818659747664297895763380516818763128703597569048989153246733802749869032705312058381164463240902314172998857721888398587148027925353591978885517571293538136650226592675002524678116745743662765497677820438720776217574664396644019244938208734616251648209124333797696819578827858559656964177430721609402916630036576391581066150086928582475682363647808358904553610901420566025191660655241600827775197532158757947381575613780188027541486108699267422670881887890421328134951534813303401467175264577105030847028956941966927082422578462658746896317274841997453851707843843032930533644836627317250506106586584286985255838987802369888556310811980856753387765905195898588659285938808310357025422852046973639011795759926266527976978254658770101225611898331526716099921751270048021542895282465031991317800115667389270788706203515877626286762899856485130660668189265752671380569187797484091336826703840030720057255372680717127481828714716658007062777469648784502465678331088608459167516644891249608035902185314032650272146565154478688871744165026733863091074184530244005234907113219459103676739653122214958506443553610440500183597996190160639580952106512288786237615744801152354778810222092684401298565250073387499878826785275814635246970491882499679527040799947326642929752378294694749797034993708169878478441097588552079268438028986006794533874723953603570698168337141398729545493919296715637801735733930133712094952071972855535095468711295841251454684853217907457492336455816257129221113671655196608929304628080898928603075423929436607241101633228119949742697284989579097279437264604239047694740711132236796878558878225921163934091738306424746792584914561992358705592429461815185184818097863617930577039200579740525852781364883408866640008966467376576917260816245791409045869126033638696256536489570690676883588146327688587010396374246980690737769276530314148635319229846147075346610771496394016691691909804746869097420286040719228593865287465499719832784781816327463664890044150922501235980941812690044760178182146943189050917178970840583618391976788077991752692462915016037351136668943279733735958712162975337274085263981823529855441719193954155026622565789240850816492925350622439064692449722369829845280143260451881090667993189793111154191938016249252975668252319502961519030982371755709235086765487475311273308312006920747102078479469509305945059762731423424836623210260563027094655378109279244531016212910343651165798605781539205928593702495139666122675193308251564415387789251071807159280980607619692122656775325990589023205119509209902977356915344941156368545008524189472491012903975626613587010596431913602633391926125904933973302444947290444783843688775517574065506193650079243259428151460227669563543052115512020084066464036961601125906714408263737877431398943801802304110444117780924731711373903880953785051723489654509412285759036650987087598864147582037848421205494781021871093824355826797563719937344478058264622521238844093460772261003704722222082667207042353712815445594837305221458150272719129123757286726297400493092477657208549051583949256235515811771258120026826640665473862935484598897147858937908893622448394551228184424091725724882653431267521211929375636676134771377616027254811965187850013065089032556736637428744235916429597856935264186834395197143725409060663031572777479761489681135657329546160112446099662937388006138810468155641692989038468363906420677347794807705522586578320437122491108933373903227307742944090465159296597375926048938420418770566793742683818053393689571120502680988054653131023126498786007410864593168449928235753571479129139469335340098714224129232231192911660473837737341508078480248816952934725340333646673201706653422470811146368789100006380896192156533838906878797515256877462875341879889338797587147925393557223314259719099003410719655577399712365799384419967435649237487111951315358360634441130478542927856979199555953538075430767663150702933332021395627148644621213505956936608731379333528368635517492028511454825846483968366790448002791765145582528811265585211344759170345813697804718165646322917055446166572356247571003532440764288270045272510684442658609994138972397012067494827402904944163804089523224510766351115879122124733690800227771917466557943010948330564817572355175838372439824506749779836915929539432986588519110156480389160287596034298490728976245504102050939290646073634819211965862675023343881518070986010566542803326313956191749139302758385665823120948957186199462368297152905572024558801208127994623718920726582409572033253367641175307455997025410862249151468938034511997169518600936282610450972344499708062680538566924691366041819876779884932883641150103279006587665833760434202250553171534313966789472339894977932855295913311254072279994694558870118507820711395660568473198766675669385220533775652856828209765071610824367344728841379565195926520814188653253599814082605838541252760288830480178927849835009618095761319994301082146757415138945798392590683018390465148320226554895807741086843049352082106671844605672756417992505530508457847567873888279632763895386715639849660308432987977102179753421042718393760049220993182134999425429834185006432257232829804447511265289607649750056648959469500950410581483241347182994028414256208202367191536319626071853121130407050650596523439976550764459774178277468001704505806776137560202276248476711919398148109676075970831841094343526460872014936836134112175579227140406579037243388186996748999580360894890035565238057766779753951916090475423322420066458057001499630285754812603652461483186682889520249449036785751765770969470053617904987712043510330344863731387004660105633821574690128871711342490929781808624176319221424522665532813536781705798509299799173981373556436062192406629476446319350458598668611147155461814348490484757547801450289587464577405284127296067755544929012909260262286743437944446111858947112085372629326037075577289207982093953551965828166234498550752191862996772967698660071143074569681054876277698976189720382534802195618642374732674102017673567434770931035553323276994776647022983076512237976204467178595334824522569358634011611399066443600153913586040224713689870466888850276273079485007118415541576880163201489225998582201133922636492210200582621715446648805724476828894816837630487607577761566213571378689175956566999660547354638138924792227495261974230376399857832504188254125620149714711878420022756297012042196864103650935909663079630726014785194266762186745549702959108407506317629298717049813585688642097401057205350942152611455984091432246452081380201221354125650919809941571224270821206998755876360195502881327616213309181893926908371910504696089526270207591824374879025589611362048139324338144452189590061196604521598335671734056117832041690247426446272598885001382878568612361075687077937091287844897798783597997259848537824876271500612090474659857074935275363680293647033443461196159995162457147258086289207066864442959847650584854162374776432835251649437141764343431101591967850316189230860192622476431707655325301845598156496703699932563766656865200939367320033620248782699374662685285328224613306975644214756905804996336137394081976110188713190650280510320032736113225006438932978995056394280888572864179655924328476184343556322777555827020805290172266274685802122526998779231002109819538834168555955905357549447768242762861766644106991964677544121055271604974588967151263492988168779161802364301203554571757975793924686070041297047688258953045071416162954964904281497993293268676094581282865308544967703723159428700816366140919996487877565361211362481973725904335015199665000373202466044059097395697828740441264070272652635640608929915010178315097358697863131755313088835942007863028894218010093592414809989753510387315567069471746476680815632370097801223968785699309581200967780467270133803889062927951280280221704343796732869767418907769858207286177751947869234630445879195837358029018052106036841353871166360514343625592917870248240030313601492541620555277861211564275047407459907732353475415017847201464200060288727929934752184805998817767592890041827899946610973002425157457989931103054192988619542594752083557122446631486296520882761297253728626906367395512863300872946316484447436981158715456916919444766401541707966432211022851784835650079213142993213649110589517770526670456015451216266523147176885778384996186794782078409955677392111047118057359254298035771762405957343371163705310197108611226079927278819273381786543658706222755525601567570148197009175176233102264542254673661431318098064697366556655207496315228652659313908668761669225631801506542464223864838405534209495903249601774157343161898321424524286680465460525525217005631111609870918751058159534708696391271946834832279077790643472366111870373862867918899219860759360341999478242371557180382513500774023287055069879024079333746747220039204886314249442656701980819490265628644098927297775307029401647636138377652640813654040340611044541911312150149528699821547538414204014727360992626584465043669699174470730038888785116140107254109988112061898782402359868809051358369061283877592146500024991095159767516869498442830137999324922299208504908091935121378318363955133742711555837433937354426379403416233245882984246920311366901657174043862545775222393528742197565199221869517541581753527367526536973669774953158416297308655467579771898854013737924290745850037964796671705050582733550343813134637728944573613720967475593215178763058854322150481448221018762784686346942639910763335850106289181812215458485086041124687609062182514106218137985212229398729709492332324784246208377810071825397277651956684349439931439303055782276615668911562828387019328252889647058785657427154883737690297563758325430771167962497714585197604513625170992746947564690757468313385124108487305284792517458389454989391374375463032999667183341124037629035967570131096338185609785953385017364794498123412548918990572423431304542698424870530703080580804894137951204782269450722476126318425894600021895847437301104496091645887099377056722668157493769889810861968416860708259129022121893407993576370018466796226603749105130821259519784938627373780544482037910389297400531518429955582209357234819062905381641271261392546488899844307289841093972897737652247642627355050122912199832732784079893149299492041985307294629599330002312377996487346197144711205693368752240320668414423999680563394291579825915382359495523432225930145129965821323509886415722005279860980501429232132382939563588799235794477134791903800857303132159482313084804922867164026651447989132344609155981564243871570689178758275298468552888471996393968189532293438688305482705967549447755862826312536387364567680968890668151562192329474530621718430214601224457569703151414589801572159568401968749334842806549835589646469588669982772009205029711620364680772522781069619057196259022624220114383583797605123920334370619140551726703997877562352350856895485953045346187094401382227885172173444730452311896240318778038939556137276502365690881903992676389233579414869660312212759195741010986722190846026521809802801032482931402410713843851012888434313391415895752667378303768959669621440879465607098240180278520252807682386570128508955811487814235145194878285377756247592982638785339885067297401039080893737274610074983505099333230764358207891486773687624414030456206282790790964225367393845831929739580974066207911105958312892640435030842689021545152535509422445402919348561912059687278586585471003468897262277856530531064762837221515994018580337379094493767355527724905531074783316745574077367945457510118260788197803850704899679933022121510302445622284533417165206066487329929965980322122958730799050232245177636556751164240286837777293276162524343350610304298561527225930487585504310873819745260383693313732943036013158988842468731758277554567847089794356825357091851299410594040291987726430991034631163516365274796935962543368511802836725057307602522499745534173069618153587643346138397909161553845542048928890493412651154423488955718585115262006768257544546370233176079453023100902844027443420426115086694582786188407867813096257498945070282818249188466547254370062413286483915789101664768700336963662089647843135677925302972482295618545557718376408549712964122896128631227778695144387418673397862797034262998171124925448682750713389977441818959055485093287962101241673759831093526098064880962344813240444141766457986756439390123544996326312937158679633461761147754542174573476556755794556527095206228893861327536889507736550603229666098200787913065562711184954410069586698615247941708802666395382959464504910358315465901024738646594279604975996488080725876089465029223794187693422724202213188624043219170865992711605892327647219046398972316723191636803591758855962515913339244555349024658155037437427230459033674188330081754138695009153936003544034035774822163326634519210980865684255441840637884003291789129143458465732319839889229062549701185126407049938999239548595219054806643751983536764598864239237292407209351725558350953459132477219530226434959124866012420764757813769903812207639969037334451138696191079632060875452444735933352759572272645855397193906150373627331260641840576742190226301438336491627051655441064900269566393421802931786570368432598232945257488967113701256255656391850132538796227916349752767170188740046492268413157356119340512506468416205035301948900205249733598725723157645074388960042913078724204339304110612874224193357315683079779714657853198296183272143499193277078198745156226864237714465051516978226417416903615122249598807605272270410692226941514315188043123245744076302976233433218860077006118977463834529765907526852259966627557619113640820851498044724033431899055185265789090253026882805204114496071728528496523872316267118946160684195617403311632458358342041542353221228756977161523224208908180874525594122608810025422533830894421782890627810558574164043924267250311820288699737090189123667545502862891144334205914052839384173498315301781593637608284669011872063886902390154301928280212876253179342672355781801415429747597716451181145712262184762914832896350396050370284493717040286946818515743317249232355570374367351413919707799859069527270908605524202781663138366006929506894686006385778561445386341804207458225881450019380077600944455102604766221692701903074363393134935938111328134908094121022574734706702984141295338004512995476171721391415880313804809942073300425980045817433106201160846199776772206076535521378210617352331289436591916629792208234836999454641067612974543991692497865059200323737380011794774855633147409720386976311834001578748475899333189754712852632959947509305829907022521817922102223844008825146033202658089881742348557005161594562488176426081935164294399493855250771549190469432711458545765804916847164785798932730729771887193861417970475591058115009330862236228199500859051027916122369294632264857522572294242633631296006127137194939660741955319843573224448608947032392779589010832051763120586081680003942507280463867462264041947669311909265565913292775440698255681976865699790115609777463984249852201476852560732983656287377223574763263294016864799049687459946988885587846801038593597069203813253411565205946486831582841211495927786631472260526955421008817713201274210481096778722310571989958749469740207335535870467390058122357590843505278611759536659321489315364487740103560419710027203606619340442802658459774779693559865469801626635858691676916018537008600816723793184466351158540016510198993966059518039807416162615433798970533645393771086752928726237093478427663013048406079126329874886741429125143770555523208850283140022444439860880874211882499496916992961297166958452415860115146214424524170819465329825685090303736964604189451532843757646946252173310017522000250780253431323717661080726543727656573887548870965276759025974164358091067674047885424370275840589836088132730817272126559739740582680787245650365977747769655258626792318324120474850522869857726188662515246388546859281380770870642939715622209543261021896860545233959256109630508196196267020108166332598448418195586669590014202771156496809945727158398229345198900012857839201943109166690604720112423714283735928776210938564932899119259875496257605691279426597266364338747802110293450119784367799940565462269519864041524926759528598217617232048678919520543120979830274221463922138399372438972841961649883806866705282070544857143054983599397978453941732247944427798859683570064538638991443056668730512800406775976090173814392177731371683430876297971274903616607541265195948521267199456091890272477551095298700758667770090865727641950062329986332596484580353245294106652141554709282042312890696714267106477268893170048300695141399389021589878619854508637029374248044922781086258748434549144081364671068848370660471663064117880944522948547820783180616645193696672723309438813576107148571159115467045746164394243709903304321286540713234285213201253420661278247032897208534234378302830386467892995518644171946614607733743072712793235056783750982946938618075435571149957335121413001620984206314440063851897655974698625271768983523508919888431648844076515871844423164815773416806914599423815171520868849538419764579261881935701710301379765010779316744050313572128774010283434619936734200831048880177387068702157652368785549728339377235904088304278354451466946802297646860585532632442366489164201978049405306038247350813582872743762301861620629485800521332513090535535354867999764387176643094561007935773371952554963195141465535344681514184673050992432557149981812007099089665867038121005404698825979378184984125077107014753358417831974931644950676095511944509307051043120646751768590329568120893273078296002178326476875971370474102891769788167156427175408048252937760380161395768472529961688025609307089877125263844400219612606755437314416011116298852037948392607698608567964465605721416247495287364835655677513287772022733569701270805273026389974620215865709953310429116800019308722091197516790926459364120307845934295939304940071455671796178435310307890868255159119575068017689578485727499754282592587201968634989262938460966325200568367399313397766430033316543024280502947103401840653080578242593780529257964515082225786461572992244338974882589226674677341163352163533207235239629168803445020021243148655502168564007507976971005003899005373128208503727258002940439386202754971240324295348314531551672967351559447424319014342462282752192160034640986781432631452927811633908328600004053017221540542877448410744797842180513297917585832475804630022086923322864683576606111679534202246287053451761088024186959964210184495003993244463289787428137278635731396369238524433741063665697995230038653199638872504557873923866843757902132964177549146607808114801234912816313549165347479927259239489775021039054320695411120068785411864271298400293670786613715700363830691141416315940937364587327205037432993337258526115559924702687656452002331453012814896161074391033780366414438831350619216041447899466734231590813295980751421485580842467173910991560056990950656563050857493059172558827657210887698863335575031270504332327898565613888603656609042536461850419859093603932047077311848879751587010206139413585353390778349558449179586271488645209747929557411499611134158882809742222343241468422929467042709799779974395599018414305500520871617143131271995708052333853099519757245598037854499987588514286958691655174134631307761862733774047215372327284806675448174111965657657257127463082260883486170220723715459042815414567106888552300259776606486819157649014947700147064962156359677037986148243361655824568020259784662358790057877629574226760828812147628283047302614445876657182291294897871752284140541772474191428452894696240762365742036876650361983226434829948605577721801427939318547075735929229367506140932108716624666857783270114261122382753802423319829576486261961533244158832352645425361718919795244898219781076007042417859701710308315031988591175694330165451465649644960611475249316198906827562605621495377596466710704045699642942324720440888315871352939203450166534590721135059499781379151586900846605296635715992357637644311742847310078299315599936574321452562680041603163380691189558257541271150083249481472454796155828850113335639439331361947636662690595412409899599588404008835627870471745012751512306019514854764401854224585484154134264537048595054806964440601018597070617593395688647205205271264850530543556494649851572196529924309797123156008575122306428618430019932123607833850543091967711359807375997266454771038133972881469548366615212808846626557439235445776086060483553962759918548792245470300275615757611555987705924537666252739972769363653859469144632673850733011631600794299901333160273661141446619246747644499538760830205426850212009571655172608939022627017877063699020238185836817663174943961506332777952214552133835516671245529138802816773409094300354812658452052703367810243557976166188418230262575735127056218594440855097500647431994337342106453137920163636976316993297850073553401756868698906969182826885038462485423551556534124802821402968877995133322378963637597175644319056008340003752739985941023495899026532286331423272509640875713900234816474309351597815868175055803156970557507215137197071909401625239296421516586139199685885406901552425028574874816002831607715122577561863685209981859968331110511570934717093895373033488524497228876138689926975782886989078191542243245436760855000013372728737219161872738507938596020818942832032619776039399388776290756990959246207216849014546224224532361176455040081637673514469666141705233201967214116455610179637756183913713377238387708081384671459758414869446802240063204551897343827239322277982468708850000469937825719256186746144867309757582510159079472508181105230798493046685944884996224905634149194968974836171638586988745126221433245472403325126898383170032117497520864004200650903883641310746801034565375753405014500139096951335145085564036436680386932341201825609805243614852773500178965592559977820852793349185914727956412031059417601619444750007918005077322722346394742359193834996315995536743094607078410029451588508078734234561645801957428235875608250828300315989246037679988750185348577934485562126472065122235450359421241122050368279119963461442046292990058530566287803998541822747108626362866809483555205757943179698724922932992676434527182184543596827852554017892858347432665349227725409404421695845455528241610854957720813363040376325140428844183378823330354518459669869237277314489061165322873237291541488773337244722515462758214742195596790588402844755231546378560617735102122857324986560836448330966089948364771664970102160379729815808502353601533363385793564316711309830163990402298955601417524799827540599145770705843361275477153725963851837126706888825762769564899707995923637122852411073151902301053634452131172520264940932928076458664758363714157767745432749195556111314812485035784936198639253085570643268412533469540361055318193419682861675767835789398742788029988361254010748395451219176631372892186271708020478785465704665486601963229054321101428583665912121100982192657364791539563033270000482659124161883027395008620090158527741068994956841257721355652881904445823126406485098403116557466674595981788095689211062288646736945438237709825045596383678910841082037181719703452865585518630302225025934646412047646446193847371337109993358604491995063639334151804861489293049680469477361554360942578347430486112957440941433135759386242034638337667629268780941127987938120477378448999122816342202413022348266047427855622430513769375471878992148143888497840573077897600689104018449847096707886202475558190477038282869934658470893861269796131615967583767601828671404424274194717290018966180854554379598966533281754909034898544839490823832712917792010247274312802095812939050508696996430696231584478470266021875847459613969206026248009007749150901723071500255695780523486773810164815712696727415520655883282287738536078118498495645966125147613057544035072426736571939142334607820602103895537690505740318711874621824639779522296979066970355459884001044080799790463342155636701305078042386147337026008244548238729818488204563063540963829361768658402442823716295694161189955814982577247376024346691017096782549641416588892310729309310964701346625389943746282941833801531293110679013518485034174587791237779616713167229604164164287025529751402378090416583305727806887529840457670201750008750329814180090388489227701252766312532388511170258410123184290330565744936873190474559113843693218427270587627415651519718686300465081257516267552750510172704119297401554697965056644149649081073799824269079393775506689392305332913597288467513970738163455456471902289337100517547041722587063578168847201383324986540280385420013847887694275660587247199949767248377976694215295978940397195331052914716441457588510206674312739931217883565329338459731187434202346866658630508365657912912686614778848465759463345156110815851848639516415341855188154976205873077852408542194144577901748869014836633271515637260851541498871036222581302155292034406585860988595604296571972967699010515386835397591266978295084030208169422885082131866253979539094876410153932926680199485343965421135538102023385626986912350988797081550624449489723906091711230990609534451497465714427476499373370341730072898836371928619149417887379433310701635310869121399610934847379266133792874921943125878982752844944993312730157200030111662634891625996432812131166252721972503106061460014334578942039357553965488510153631099134940562718407566732735551544708794873769491533695787734173892635805722355709711384470801946165880647702412441691956088190730275688219423558239559227806955442922450355924748707679684699788530126188289398618914418425162392757174666596265994777054644899684458004419845755582941163244579889626015766635261135012409361002571635137277271269227978453965357951227945333144869035686817856797288227290975148013330905904206600138455712405030010888550244912806418002698065220168663742303816963585821212748226505978768867745655704128591144359936473815715506400347661807967198348746632675893396776685401913120305994924782232733091017481554647738222210777900898686290071402200192129452806959829410293236751399470783275188697944247808517713900717130227361909310037787531344767408247228756697583011721412689551441415861533067743572466834529955013020517827619258575432611597445491686606442209978999301303745525360365554373524342329413516599248222146434160894082666662551024308710244769344874151121625521079473677332197966479752023876197113183766063464239071526083570215015384234220241906120097120758111536925094125181497959745937382395724736426415840974110636056900355232842660141075570857443445472713906712544228525452136874868278945959238004283553760388113782756617184985516481286535971889124055521276857411052952899789392287302760251762121838274514842161318402586310156940632878784564366628111630563964460119874893040108134139614602889827682902279879697100879323239464867362177473042906805242771348508197998840247777422609339473095949122595070948166539011949723191203760345767961393684881032252391361433383805792311664725479160599571513532068548605499915570053789147273858745471444021300771727368213054293127560688671557598583656957276811032738121578171817741368540425971024362915850780871409434385874339209448825248728154781369628616574850579950086395791559835082500975630277595524676702581929820222694265420066226411205145064406645977235122650773601589301775846560562017535709210004122733371831998427108079087082588639144429931045763653656813711417402749804405087330444246794621829928502422055213545505876573936878598108924901664062367028225924792983082322525168382992023129925232391995890889186236202360645888967597123156918698433569250439384135734548167243371024675162746637898569602499682160471416938966018253605742135355310961864385599132515777608047726370662743333906325166042251861077878410746170585345707624481035619837258928753803453991687426461612980102581932334135452705889235390031470810387067371550108232715777017436837777652467930576473146385174729969665910411221712532261073440033976890862322824959644116183791063398215795183030690846507627534017124058986460465387239730413699438583059475771929896881144382166923094348691065454122914950380133032070185968631274257628301757489534254984980722614911150694767583917956552584896802491072942968747943221995314086277526433818938723072322178111042059694447346504203176679532896919383400533021419974599991110951143012832088053563531268731986295449289987266452396340330665345785412280241150763353566669995536645166307344598423788516903405680495784467848412864317956941017223967123202196359878480676162103882616056961280645205804058774434258236150453554101789346171576401109038949100434929761784807186884677057215734162447611017774435944366655643172523368527452603200075909946572027111798979479526658246583543430779394021695027430093832001111007331963950624616058776301703812493511785344207695290937066383158143960456508740464296108214694186251377419859575331456087445264617771326655074799542836846625861102975315673586090676708075514352625223123013229172239225138736697116832869296954145318044937827531054691493638214299638975503527856048261690168827953224854475692136980688362260448935623163563805726870060484074216770710310652003395245050860589972825259152108362590523864243566438642586029420156492581071960114452392624837151680842811215313146742012126121898468751928778608689932011363013351728713088397072644840900069501131560382170630952774623858883011079136096555564023637836121209324589278573504924197124427292593050368623529708663598959165757229319138487225579247190288510133036303911562991524321406107705687200426245776956200510602083930516679748352255790873613902433899497932827805923744105367494032566355036785650297972081414660073428607321468620262583615213490869872177231528520634524853221657728119228663781967571562682632851489418181109031098466442481911331027134263664767054453641627905948241820970228774265155011715643089015045481478674853919063636264237211468516531737909090135708921313074366878583635984069773046350035710982425016786190302306198829208137655001698875811660040938587966339705125871909517801398293781931731585404908836686334943560688903567193407598994134520719897080904307921007386096604200930910460694998801283846634178105757954965161582846533892409249856335813582901166036580634914020141329571592633203438433366520567398480559564012439643904980825186673506909934298006770696308992529221580732181582747225973233990702266706549588661511084942539254613517195312994491083754620712063789764537215866555526147983889341612158859321262835625029428934335595470211869556718852939714878438729837118150000870745544467370937489598943839061510980654282444902720594062556377978696000556704203808513763287529341037925850030401052205188179814962331381188289076114318083445711977823059058962737623601166353966379546457586002937667073804279189763791985762154374958282798530179634658171764959461617022238654776770104520562590915360036121840770083760363506478226223944052918905644375876963809040770888785494748396570290062153649399384103567245039220295078076544282673659603137534585834496433070410086278449005262386451018159414779182648132237439366281007719265195346828975525189563622543724420995143100177106277009949436723915089754931221035325046090421362582641131738632950131630189901657210812661049638065563707847241136548387229367527076420368135784985959054615794577292287543121259772074681004729663387067423089936444816493725408953902418186716930767935771943529654692553301502558477731523150413370834430060184702566968092155898446003752503390528551384625247753227400544250118068998409735587907614990748095020317682530709539402557322422924795552270284813366282594071368710771680324431565135088784861577867297771861021265843334520499667722113603028384776970191905316022102974847653639448066128688638361420604009735863848545834104657447132106544765730977515266463624270788381867169428064635786579812945658003494988828485441063310410820698436298141210405291551022788528526025937861798640619264396189496172330557988986921364681034315893156067503017367451229722988424496850687320333676080979603338267266304563390819226333080156976394656163005611116412029570137982557003518040703629103526605845142974428359247930387426687278656637623763892674129317107336886343410281154037259462094875233881314399307533700307258424065780755234532170557596287388061459539210783893766235387714495566339827593032073739865390866751904275973550841218982606969400680220925426443952134017677831697878215364503341398272483408330805882801487332427436623269250825246745014823981022947900713307423090253591945966375742097136424101468901263236251514199239789566832913116392191335585505854673975335418270814926975092404547262685415632374037851402566875959863026775298227793006397285117172885748365155069544893490580737567519394370739367761129213923959957184355569998606632535837076384381474401249867347088391005590074538708863747823691508702911364618470554846927892403497950013107373731863966928419809524528974806333876796098078461354001217294819728573554680853699185937958978513390624550975981202464493593267484540106693974952884989429805788876521131436270408426842786264302191095944101882706960174233990545765631837292713739960430281243595340286169437347170448541956663670315785045572259495918413630068767394347076882969725034932811635463040741045191133491786334395762002974493838117143082356936964406230114018630109602169369981963314488870395438430797258709166919942170731128788961266926285995304046313047806791774096439885850226744158360845828163905379787919665198362010046224861103392642542095830496795697991934117135177256630602497995980592094698251380343690836909990126939166486505156836905844354492800104503756666850659908414088791913602888653571511473303876515829563066297746712942164647704337518067332017442485343909104119272088959096267111458640821835982657346189248100076365154031519671502601771773824251970405364067733343522650956039200582693673583484478612602685040461495880659688303527073028702225713615948934683740759455919948237792872283266377605786637850975692525957664618366977190807235070360383798152603106114074675997791856570881364907044207939670440484788566408158548641834084242396888084401176873695652122090152815813072605721539075790767072509309293306215819547008090024687970834407932303987933183718900651921270448365981111483607342982440552115438013350660092110235353034463889193780209269907663748276452432837177025874639715930107308560206074412156319902852867113631849667226801599387251870748474297599596455452611332610630348879961886593257601905747649558477183771786989392897414548149508606904216383146359279794090749791226120359107743474922067878119440932777568120775261366944876566359619786643773762333903849073067099538567396770268205760360950697463726344779251391955001406870753114818050550471188310026473780615791531318028143829537399169450124758276982514509417281307519664031632159427790316727909187293789711755288630478038360499310553033877218365327806612596028353540900185061649075711952271557578105588424733401088481345215932550697862200018603360357976923857504306671000649572519476609713587781139835723107024809087667199976840491800740537858877561953750584056021410355153570371505376932885228495546785657946916111029568812272784871186040558751030056572807872159103383569147871970701513594509788312014012116527219774066435622393203084067274915157169159848918452434765916233463725489820192505152169556170832483805710194610954533001829212992741084733116048915867932071623876307169413759218863115558727212342844858827274021321848134733897199481808468821074414342887621861965220395056828735928359694824820390079978498297934775038964272692685216762785039344673100519514580142048344447381226699728064623875490560336873179721353897913732066645494071593524862304136670961051121973515417571081196889478675424486036549139172888861170389382606157652030474703795317842744406148027687247883944580304789804281033470110824079260151693502610458897838012965374401218297784061835830802016517334251813682699034491073738224768267533137684183760642411592110183002340155107396143100341583666205393874093248612969932298813727365875591882749797739260419712808144850995038023705064623944735875402641532881411040447860127728989426269620895220325293678719002657647249743612882933836212368105091006445345861701639427274625018335241201560024374178490052051075441895467225091618714344023842262995215060549450417323902826810181888177314659348581199711478985989027127871584303967188625265182893934710725253984649263156498859104936642192008096070040703790270537583932711256582836623183099656298244313684233546510013853128176919106757295304327653122939970630924480931343228137113452100388550856835964412988294916936766261106121229927145653806657576127602145034858619098378049286970707800448542950588619255407256951150626970446946970245265599734801717618664211203999263292178781483936073490069502815145150653701327571760533150137582354313569014860537699926843407127309763115745366946374922654759186540777680689464934752470529342837576773600560462929294771479690026403281049195228988908779360745226006972278005931907329599960254469030925331839363225189811287120843463882618625967402333130028819788483926576164172099881841993662114864822302640260021690411762235364952267000397542882594007222139257523097752208485887575254501308139084462817660916389669261185663487094229158457860642335539841997294126764824983045021911096962569499491788753015318488404863063329437796651240287756303523178677077430136215503760090517432524741564984563201237760736564401584985948218100372060770215675288652477028670517704223795927927496035076804811029143125252046697813379644323250522003813025285459555610679077883365992016096056070996203210070490825421253543660140391199876268051207481328102034488839536292652074775913357461818489082319089801113159214481068802567286629915805579894072683023366774017041072466174454863878119826169180664497516795052769773272269544256980536720388234508598444528725270062137039092133189054322045661074124333901776475702231634785398069338611069507444070609893648450571043459067386543069080847377741476989993115021374052018987851673725062530278954272768143156082171488039645710547103239669647900060415983966580465776315657751124174896081179850990558926681633825121257420106795722333364510852015852118941216444304618220888446051050467487259978825640639028157947241332995937335033157076767366660499147367314910799580473007099166851480666345149996118814346162795582369162874783751138435672706394897838817740069826994256620722427038540138783684792255594209826427227415456392874494437729933872363671752235340378157568344833164540526259847313962103494755404222854343477603222143084954851922059358368567763700475090423619512936498428258866925236969653755051757715543308859872829405612333697562466468661961793496349370465606119268097608396327535868519074340617114232343073551145924741610289353523858657471102603456672254806140224900413512643377302128007423299820904931185660671016578631679963166996484730333652310509969034610281500326659512971226081849606105278356844320730509623165317257358122022371846980815124713655246319041935459192013372698275679389924643509831592912641248930774149358910398008858786051122075577742846442135381941541289647012334670010597581602468086470302488975882613115876589305486372149110128990574651499052147804390456051541103003551570059695886586485082095491955872698685233930749352717657498064938841459950878072807915305331508664605026395332268192156820423032434396780719624385714034392832134223893774505797228932638351071958170586832397231068964373848718148236781585756927179939455716541182299373957860950024501035572764950522850486112320355686594765240600113812385256232074511516296691815476985912786256705911861874388708414904031423641863911741568195222010342874836047214901068082229301419644526773614322013533363582989737345122023310570959215881332798242370500799507239656784947604596096444394306557937393751869368826012083501273786717613109370643338546234561087093962603233244578862383214076233202661799468170279344225404786716860314900673482684622572944032732289486519017028566433082394139219670442845804837520973501922908464846284876304916761400097111894577580299509993289137482132552023129867287220070914486861904329385438961897948522402617520206598604986082836630897753850855026612954630204562911840496280264556150023338251398306944170101465349032983011136822707384131089485867582265664352696116826038006834303088201572965610276090204977535897508407567993531955686568029868259896665351638154376875203530625858416066315772991143323195130276947447021677250210074796491524747848845861928872355840799945903989203776169629166291154279014039263877917648060532865082385090779023257032260379278655498207212140312186297464383967081420301011585113864704489153527630592626429546891852185684700564339776293280212771938396195264529402219459952633842913720944696082305863292731616641261597417961833003081817107194303127674512134860388139432951830571883296747442522467709665383588168676050481759914605492831056824721225384319768280436689185673540538048832298702493835253302711098946336117677148694383264002490480434377337950669900731772428708060463962205462531236278689694719925989819222301290132619890250299689824770298504486694650128508858847323349912956259146624436384686435193353044246884301557417607698256160511999947678633047794006327940574331690756805291651456794061996502222640277521873146193359191697724734297837684346967143997530799921373209880901999389732115615279894794174603260321084941541877914154773946140413154245249348722630760329581015931361384152325883448219349799951174477294183816400807574643065339617772284228480540378715852166229565794904507360261051825995328611290681356151610006873379930289767471386668629251930475498104547417955014917463644886331655917987383071826304848804339064172035912083499249527291018169495895654033720457465006565720779085276753830106220839277586038779413045866386104708838704159877255603642659686484592662884503242519420174542533772993269965143144630103056156545786935261245117779730725279193841224009203298473809940154476699610855983921602880322520483825661518988405161647924993839351311120138451329519269547123655018771210696443993081666652324326833541179661489756951176405388302202956127029654635096141022328400058409583290588780790087798409903485450412969869837927546873238646503974749534788411583687905598513735938303283272941467348958892608395886602668080857958652687255195900951391210685267536357512260595017604096818162036921670360052565223807719820568543226184919714445323935270842625485089870034265281877556681255731767868668610170747703310114929935083179313804270545868555810115126075455558291895797514450187216361148686137972139780434258438653409826468686321729716678122278391439249118303378131592755028342114481486432204626328268394293267770422415150981686222673452982573793150949658736731600933174265552822247182811305376196186296327211447439826718811070491333627534948009224993828857398957300105851645242936419694054027489551557153675764511374344024246418687561987374122566571751681170639504224114567447871985690730325703260356427048421145558129515580951419839195657705925963229707912687626138582248783336621078074873020365398541622399342633036073216333239158463427215104234123803760571196051313448528113016645686775191466692920447802798985465587862178095190939527634400317972274540909735774469541999431651765784264332047166845818846329517935913047796033698116652749713722100141788702767668690064739707318902035741517085438055652055167949150404602516772841543618380736525564961137757399600564808587500360013190443711021172797758187276438041165038525868790951281095917490892685890709415728452211464513889026165700000529253353008354066679129831361660685318031293253393928914450005915720470080936147649789932091420049597450188028697953815454949840910140945680864717434088768363507033078225920496717457039561629195751606043633873449175521673608639834559943053985173568096199731150255402375934026934455537941911124386661025277932799387095703009588221260863691175551041632362360739769473251428151995997194363193742389026259062440723711698080689840101801711390110651605935967216646548855313068085114243561929519077997111563919127504565036287244915247072348989716467834460214111398219369354221089930442845122419115644453955389587550117157441683231529572789470353445825973950773737081075550238297627345682471918781176149334943090047360011836426273240353914299212083915241963417938329807747672840746358408614812237343312594640227802818744843407277076681585246568364650798486258806715327555460689397895434071825471573418845927095403954533492887893060302406565771092571141873626550279530955491376415725018621759128713435306238768011502964975226437561896120897837291151960749333296217301648504154028737986114221481747534043946929550602050120557378661366871180316483857712348560321480347938105886875752303192900255546615549621021859193724744227625544715108158648465596615895741633407286827317325279704484975459592575600508026648407582737735996743768213611476007427633448452774164980295640861923396657063900899086479204675259811919581649408853762798800518672755944547951025766757319314523769342002994283517214023386568555221872947529377588034511060546757922225930592643131098520711083657987066835491411928599572762343844368764037727919919827602551737239666106328730763798982399594213038441971828433785083283456600403667810464571873486052898889277494830335110246200084339093879390123567033634723575087095249298138446668794709262444653809595227105070881693055052307722250559236257203135926299762427281971769334180757208727453935086354482190248294392929896323909607365362830036879183448335745278823250263991128031086709111502268202480938189682194286333023325054883606914372726384552596467952812344343803160972999919859113879284418748233895888425093221444293881556215036260761328512502055131023709025314439430236403850009863227726374561407335366429005611136199561205534696757199277248027445634082021479270129876466452193274203540306271401173823491046215610019570113041739695075597933468197895927137231178475181639124518474336563989639321086739844338612731333893533899324465588439978310223273233453266753599486502382216528787358078447244278247354316218316957110976564363048946751920274311726394198035594729978060675189040020460222930738662292552131792070398889331538204537592756348111513633198593872366479101169663576111290591493052448369983798265173217204654162706203239097884285492070782875174971290634932317964391227564614730689020603916792893961011129207745616913815315593737241770516470504948032347741674251468796797704689580379860367623318409119277797488831164071079894323088260582023974747389441764146156942795671961918967873804690924065756518048499313350526151300434196513466872515622528189891212305358498192172112819659344291236259085285225468204329890092911510632507874280549799213711836064456621849750059205938864003532291212484725318303996894915176637782218487545676453171398571082465604686238553670781157574426004446111146451855930788953965935391276398238036227944800875891831864785264438109892201058226103911342074655281389191494308499660728266139758099823095276694042879737694459585421232532419507152400659078623342020566522103049932180609858582132537551298229695002663253844499124353808364232877533321190437654877300732435538837041465831793532286759496981436075163062703180843055424788253251537558136094226267734305592169662327692688395018783330299276858557288143997718441730715260417954006813444390125785055444773699889637065829821209213517640455068307848517829074338006662757370303538458270512877521152175025730250818551761959473517749793265699149143273767278709779120977775581458459682390299167805420735637456618759046972293709138348748207035344374016562775087763905655383781482273277106458275035651971712164444603221465284258774432665971328924156654486680299935994224350755837166497320132523689337446279904854105595689544909652837674912226331587493460663598723869770852995625709453646835603630750037400099615111990079241153169779765662040504499370255721378086094694293326100561960542303078055832798023475265805047195542500303634256105400255470545846421038350777378594465286818058562182039253356077461856914759172007177572710966961173400116102552165616431106098679333193756026704625406414152327635322187349778396525375672943523561412437648516110397969179460710842651015250868077528916453386886249094636658021426244791258231177131315036738722798156099413437192979778393831095729916849347908188740504932808609132954533883751570499244115748056417746481047791525590922073720884643514528116625133223144745202689950906382160499103967118302649677068909405048559992157674537993639823745311556377646175735657789305150114354511993731135406149655958762960807613818404925246806379784096084887429303704681429818899899895098397471942642689342460319334036233536633890154889913125345382014601441370240646940515309452137781493982705123020156567554368556271156619200625546674271179709411860833414075892582422778526027962829248843662014672824048367710493741905008537439537201857606400816821760429906792322153796388826339539447534739988498351521203449301781117733274156033966559720257577915299722907589272288356178657463373648561034337480154070889029570613722513798758221217336929792073817648762804292974723716695646098033988177703433694950732275400893147194618688078866602318486276258251632710795317014626460663068209740850674738138233896862328546381672183148419690771463449926770040405814604269315260815764971505651302994048464024772822929387360440126233286230493351779575284024089010585423765686015104275935806917098881956889427076542983159485795074505053839155605789421021895414444073589958669432319210946475432372197343968821439125572236533867386485370516743447937927387653537821208090284285933532623783515612096606149308153338778837821150329812845163394560952850546440158071639269143911556045572849906085294623245072423877113989998608184785204558631264918697869347171313853383577516440151270248982196041341849316813416972843244620594594027732267193914450032534685233444790665459192351917170360691812359634052877715463282224902772302788441800165197897054015888368878406210207710950327098940711208102201796301984702582954553656130326764147942946990686590969130986937824650644337917022919557328341635142577789412003208139298091103064895119286475856036985564718994070790492524634493497908766889396396299678621603228183069756652562141116370585176356070612401965205888580180623702167036382123834667383316606426764789174671289643311183834014028490653822568121434598980441382134308239347491654245588630875200332016282701074105067972180436453039697463315918685112665978445672338677729759786357062909826523970825837551822072043119341152865148579569500678002875557050751550648548214420310282338477245025368016831074156232589570537488363822342160027766683135484580463533686271648743149020284745236019039551219797585480088577386173848057416364141372870532065514340081023819057500735353364916375435364424740143622698500793894415325587821526836139453316951009830507013279378509674875579787821016290801994790095106212280743707107518243529356226567763932448891181117475073933834535021951747174346653655276862393553233896929487777408893817554908168819026544150282311333453631100437477421242486685342105104798278637621983066822671635164561327815872244340800108832587435212260343486101091470059906822338837967570041357787607570470952499593229873747050464437275672708311211166110732398476632836873622418847065027138124570819077228191782169173022249291587915516939820329118297015406345381252059749570885578021384523025251793369616290206419405536703679084923159266479199620825144757553682479449237037819656951801797175500761718716008265994936819134532244850531739649363707417191337629041544610449108571691860559646393782324444095356032162039784166430870008312363517754083133751774502911185263373882949806049637625949887708452894982992123060263741309420610962805491172892918339115519187204359823139643770703655888092626453980176780396966295678151608815275889669339053313007318671136523860661594558339415734889051773794232442040660551867677779030562031195215551606268525280433711058085690631892545725810424571242549882530650422817287496505868514106655293473772338067178582813434760929701511111638223505662653921947375868635838923288551956320113301669291353301511546573511059731074438302036361517107916460548993676931195700244150741092337091505050602593524673430314324612400888690385947367876629004613019732253593188651582223928920073254535295902179744325222645215229463827553855439565686176658722953257911677105849069032285977529525851519290924709194642114403437682241748685173136031063793719622243896788487705899317770506104117889500233841935446921896683933806055207400445984859386857157564879162075955330523562766626918791351797739499138073562885987373198947039075959786991216944007884707809861501902578008772220072248913871997759310119020166665884542388096132022275867694070038094523979045190105430068535319881853466979736015694785803604068960930020432825184682397667774688996005211019327991030509771593994002235580663139556904660744486526695353345005811047780598921259072743760193515843655143807513347021871112027259464404525283721898826193720435352879057754136516855028003384623734951118720039463043902619424209404914578711153379708473572458376286956710728344638929571955576665077434466155606401152960596940934621644765679104395800040187963514123012184348604648058305104947447904183740103927703747551226622570114137886329996975606066650301075958693613613952349232064195215686539690484274147918412207378914677344480482123665819014527585862370305079891680885503968859369169645264090045116430791322921551251513347001330115741426191848803326814466086344593092874743883144940445521762843463332011086688004322274873249082855347912282484524836988728592845919446874166226188512610983672505860588135607595514548947200653991238603474602730322607331950234302355961691114210388399170952451807496293851905177836209451908957595784004138306619093277308849485098619160482251199631918030721884559852639973968823173838962552937309991281019296762336639872135746875636929933424581394207175109685888714074994676179315537150926629830777690161650146598593043133180362564989854055598683572471566075117151909195264676955138281653595243106858372947168593813773956363749656860685141427671892717216861777397135408178174705313045941407890814782932176156935747539628060637057933123503031680294301509815034619247161091929506430638114676627277079689224832948858572563294668357474879648009455629350990119211272358279860980989415000543422524432338369847679328121139565925741005520922726130159664170015198158555470548148595467066387265761788074010338879025650404676095103750632699509255622162980010144438904757676426988239859307128813939433061120776860031137051376760367591300678506017867449657838986350135218630358460319113517810406691407156815721927074223081430578772949132870905227323338058774178260384232113101988333399491704592428535199737076872577092541804620623943555243973732820991617348296955731226641781528673900512620457528903383667610357382902290136989177823164692855916609497347119747755730835082960651102131506728744538028184010109624437096216854006279670748643291352329124191424739862689759311972280737515568955279640866076528305849010528058559463471376617015774023374682679243886155463076222722725010003065710408989863797547552584771904251115678842971797520464849125665350265539627747979067274482141861323942617461464376134082301195189028238600645491381138237481228253357963040216779547048962109124693464843610014840207101070265683106076435748434464045114828930627877856183118994531356722390916914511379578671481344066214276452345904299203421804845703497099911550636751643825243044379406968963904190251750915117227733251943432745576155243141395639041714938326300276074238154995975639291768337142248603120314067021045845924969448138529436638319103944133317789594891680508163325863353725392411167737542242231998371992975513347259864905649805047912571427194147927779187185802764909922864620751213448702319217028712793869082280702175971519846661232067748235395054610454307212326763978693555642377017003204400601729233793087274581569819108209154059282527689390162903241958232030114707548335101982545093332970900772161304884564015058911305779646241828679393190398979392128223185849298072987085295119942937447432962410100281551292932499477362860711079035915229452326565734155128247921106878047537658875035813532411944972830534135600037049216924068203942061114372411755621230132329711634784638588891690937409566566314233223961784818833620454746539182413935201925551505009467475337794505349262843328590740666493923213691004159576076215409956581707103992827520601423521285358936588237795233167392010482765054801635793785146560181331810420226656733353905461193890931639359163181542967092759083024535279310850298498022843927547491109518850930399209069260893007452654133925379291976854464676766386069385178892232380057354391276969947005271090057440037251716720001061455502800950034406971090957630369561618414686798563745597505647062417533993496760242551522902513065278987496923958838688793396294893417990533920455670526704490599363179886952002541376805673351114898973407056632337555835515160872813420758418054884944814269919605048596794522162369634820114467979431637790736206342003827660655759390773696722775019105923769122222756536388341175180635758448021587841692050389719197191131426897548417212938289293974050372508153481818541651086613478582727707611845754997263362015800976705882786211534548559643061364714488179810040824816896364156841866925797582709095766256986938787231914146228288960053375243486848198311450466474966976014157003751640471216905830064516310783295575344458440043650452115426129311055141124903070177737976723414970967812090239088473282307235083379647936062555594690133973388762230194921165850531327777091497235057560927669453890276533589260351313094997097791315427126499108927750046065633469950936493404780211584737779466091843022816875343890785838462998559269101663924538708714198199142276012493387324866147056222075903775814355128011815044949542793579823864101721117628699710406295173911564145665490977552507174500660980240057298850001302554758788001823776355793766582335769888802604658737616001241788239359189911034250149591771409617098879904844370381767336567912753943023336620860072602864702319291706998362056571889474456259658076710876955249736160695325745430712835920794420053614197188721343002654288343422206963263327176124961839812012031525590126772153688194079159866256380526783066820094083534427180112605175284424280150574149937562513481555188475906553880729191819531946474403364004953883097563614187921394375221021851432959309969285256361423566765222250779312021478345654468339862271218082259635460520068596318921828085111217940746149895916191063572026608454369463734710254248376048675846675740030023871888271881508393964347278760536916289935252858375175972779574376190235799347976497988385142499885543272634075430655751677913030409496254786767015425160349405561593662391140527302018562515935837924794337199569069597293203264741107295739325924013855695894690029884784237283563613910677896560168962881243781647250854910950513152060053519057938626077892848300008118915894632419450875756649254279095115935600305946899279035984703722099656638183949334617437011317722035350638963592513631393553371178686818592231875531672587905717070681549614535723268531931662956479254192849584059876041430907366910028216162280278325768080179405631784061915465722782515704770519328085711903106827666121899393610517272847032790209129892499847386072925893748028226300228789575970591589760022460800067796119241294779489255274392472553814066436263856723844426420935622622838513879270802606002419249729706846317743096050253977877831892620350708431631507922825473598094128769413088708527217348682639286015268339898610175488417091892107078495821766479580242960596117504874377598847234090008587674951402426599757132366630853331494941853680638290648479559687121476792348276691127925047587681506638994447906758218372438923166063249119395329184585727294477316048343295785457319059916084867189127362326563941938030406650694577622944626650671528967121988108678026575008688665662482349862047559032312365919436816306569054216279540760862479137513436581930169864369941197796104248334866236739693489969311545736496845848242580307626447171200576517233611564728157495562761289055007749238189487799980112117491004267029193580771853735051383818352819719086456858364406711832379005142899425738455567643821087752506906517977586301275400714022126976869798698027979079769445205454631962562292163452011152475811020668031100247278056401574863682518175768131421977544155650176927911398970998367800222303410700037097702699620884844338884145206550790516679891230091055989681414104053798950077917436773152952826958594667772877194445712936893864440218999459565584481713649903962494183449231294293060518933262619815284749797841882233967061763007370967020704483153328331535042421895688051640022769534842436457646460175165810232001212299428539509850488681760402739845887813338024814351199537657494216982020573709386974472006457247108323004305395661164874868651050361890666543458523387755207080257143778248568922854415367458617162327519924022708472165173635362671779068579706128851427089776710861672793838688787788868174577346906916793004296780966189454362907686134230181775836328664255300822773459237557017723737800712729034596144486048162153078656206241956350043445388587642277049689831718906493642807601844846444487700486335476754270006335667646778992997716609791776351796357264666502723204913356989519211223163007878474951969361815611215234914375297439103936766241855324846183781941426698126988704445744636748390541213565466668004030918751221484419332249353363575755899236034190802072624969599379289881740122882248756279052499084759250021013535489055971005618291240709355528340039763657240534906708826564523471014272737364567495559556750065662650235529182018941513908561688437337359237532946304693661559510020533248156504147964051600885801686193939316136932275851826862693230486943947685346482495733766930475548600148270028203357897275551419393342776792015833870995847920194985888976654520823049517645420378579356172074344052233202444080493946006494257210903044903696077558612274342294701808917842394784805021933944961573727856131945573529674070948456635426915127713335829105301279503997093999649360735127580188243697849204142622801159000995587492341159350180115080777167921315225490669070032919268830895322824602127971491366626688578226833994702800781274218469734651953619796091485040527916386330100993117343070790076964284591887858763433416901828945492942716190321536482327964400827394258242778878872725677997974006404816302258010697809649982239350762914839067424111785673646040789998557886732290852008591974758411711694120909031732721000582740355027880073861480783733067833433503521368626890869588997987497245364518404487766545734172629985087437879835624478196743191523535092838765154207988675656415823381852204014820301802915014818877047202253658517428329223631308455402190017110241226776655898089226448934253341375552534530763613968338795331110816897963354208793724996668119073198347283248773891022424744217598493579524241767513846771466209538546210671760651519788206821535964609583914973578139451834225174806017256441948336528087672219398418843787343031367128369019846597229392805464744580426963607405646919792924254131273264748624310190853459075603881675570731437637024236424429974965129433293304716044670392018834311815321693438575049704685421857206661976121585441591666272830819490115342337170156810227519840969802355895917835858109962325609161110748418637502630376132951790992544563834720446393185587345300494142626721456794783815693459527434680731113779587621244238503794628048016673870440722584711752055073047943187724292068022999686037673798555372031118015060189376296551743028628698749583027664262628570268827091716258189236075132644468294514419883881239858304403784056531110112764721189770057015783301263851235904200063197513439806704089731842467952981758150498647036148130615533844067772178074027713652499794758959340132111463135989741597110497883304955897314009377705006026224859192743504945125214053798921060712161430530228708553476815979884961341586784899880775166286161423257924445923899870796648652618505084968873011821468453458912269470897370566159276907949796730121314587498287284380583429371553371539433346484885974535778141912861414952172226938489807715972649741058853578172960025431481309657902170021950769780671030408693320438012246516145058918952690276787469618338603813637675008859233514313241814568711189744251646542074296131594587219637271943048778652529054432555533000880048854442638228555583767954295429407121172287956966671184836170764168866387419982462878607158441919702182344970547045342424632162013395537829926818893838523758162605281914148897248078621945522779136304051179192663380515112838906176145241364154754162977765445226143890741660816511791942551292219632970728851109956221021999242302785677591406294188843200619558712496485831121628179715272378952920013774889363161071771728432433634067094770084794853159568274493955183422354293508337097563300904761680299906857495732818894653727000373174302769080258514292472255857385498301911002915022197519072026986558097776634588194744559110342529040407754250020558709068092630252316127302604964499293902758589025100877673497658599334110290345359546817623699723161067341845098082867155947978331572609079464477709975897161865864917957255933003361422782862095830011250145699593404479496583130443057533831302335576439140933509870574152622612093074969664364645273208431326202831807497857284292426443442328708004465106504470455438197419896268808825163344682934034916392516366584994961037573958153947466895726607230745979405622081683520679929663713314639136279500292305873132993731785216587537747522165088814985035389329383158864958715816655609167197188499374631963040868597248954097307897020547908466439066121523520333426283156828897529341084581174911671936419069408115009840166887097496549422618224959403029464304058316030437534271298709497392464511999609670407944310226658246010767983061471974700952259160604065256835955294175679335822439641685789042691357784169202686106525973088114683161782592163211656969466804807118352346095301002711702963134059944794523837300647211048820797279861682666418558083023166951961883725318632443382260320752014284228765997278716449504632177590209358099636971248269478161568472176656522143377459672614058801054178696670583663517752836377232855160304212317448769693573299721816549640465878873123328392244908086096342158162350478149954210496522304530854465670624323146230314392055861915908930250044907946189735822667381673335888986359320807037073523056207004691835605377857183628422171004179006443228352866245785780258857134111230171523450385635475145949270334221651194982446680729023736049035682412339091934297480417768513362589263592676882438276662059915125479826324438908709769326657163826935535076686530630540117403261287109827004593919723109468088751929471396242725093068358640464951531909910550593988496184858345887392237108914163056444105027522398208519322512400527048677467660678226006140775636017446385563665934698621237960050648357261658913173781689706742151019207082040596294514285836390843151061558663751466045958712941258131308043404478757579756437206530353107641091740468654588465935639643769348823401094896851969563559056920977435666221457791623353519898962707724453815848093328041244772648473713476488096507310141657485410986942725025840811920516053031955365336895504450723268411186771853356746433105090578339844271074945220435756600275009120253230212053193134734715330384583229824378176566051090002944928637292722238109990230015412876578264327827964510019468220258810517797842023826988940069804740790914598663923505119641506653301343360076640426520532344271341372523244411576541992983030189936610351731442193233008104550173718576985277850308987750415137969665633633644301892795791801803530282966166738482813074873643966288527116479034511390913364539257419390663251574712713870400555371254887605078778798563757968353050500147301951004350792731878809772746703096021971169707625801811149162833755059050442635468375661447834390438816695355045768953408425053222499298081222182891123437711486648556638523868979471612279789535777823877500805897304857755662725022049828867037930483693019279989631269868743762189066414426170791793959105874523262037901918679276309152526868364463925766227952059361275235689530193685219914923704620127006082198593677162588428920857390006322056753756915056855905614295492763076008320910092112070110041862617510255459839468740563796037702424043209351532251796196213184483768796506168866596355684075430277341934279015830254904304071735428066335806130287853216775580040720505850839326691920753185450575263121089635079423893878395925634767067486697721781404133685723803861420853496065836800768811086376750722629288248537031299844370141799621206285961330646719983111096875806930093121375153685101377882669570725854663760267255825305169434283085894728188091775554385942122338632511389397002601568382615083275753285338728943270785481810637466162961124239873270603211318308027229504810612511916036091536551961507289197357274720467420494951619811746710737948507131135245535273324982656913198721320635663662511166819737519765830632315502750842678210201644503502533191558886140866100284944296347134553281122907432771856201160377557764963735506903614767252043272060876728603765967333669913963868411479548457645389700885223626894222487837004504582202902716604224912636292853957959701002262718622049852657927150367606965204821867621917159053811762100845745965028816868464957143083196771687431980018229038698949261870247537231265294791737237182940018282380567350106800803431776248930085757486701863718936500691258296494249798214973511022731656500445467644200455616301951963821558382479006595045135152685300290500230150719646485437065239282171618533964528824825046766260956095725154194309709101009400273056293841834671303111907181023451335967431094925022112051544707859535405196418603738204793834607046525123412307219955693258461859163740718896416306838536204568741589034583393858555183065449271371946605596904278174184405653696404627551010521323630129877514332971734907015090317416795614214691174766487764761281241843321854331070057058295615191499610802274850635129470217866544769965251798920009154065202736792494974322635779538772722769604587292114569389641590645085269275368603264039113988964933353425149002993923187491923941289232066594827307885765316674562861927048213053801733693898584238300740503212435685197091368345560041831872404327417765786919276063290446598764090084175184147597846285244771966261696030498013596613892710260377675330610087408886496944436397212934400139276669781882741836505389894004176050265692990715849988035371983214852655422733263939764177624064242843535480304903807103907971137440721325263020273551142599132649011528426894656615681646818639844019569642750907091048767820218608800524716236348010789215963527721000140707457990957128777588087065227133889166807708387097651916187779147343744361022155626424609311502869763229679453487954447953299911139217562469316899256373770871811976088257221528401556431239367559716000196670116633424926995416719801005462175762144068663970494494992319061276648871273424799201501618961411101832073272577441107653451795653097518304136703980801290768926099657877200291421494375011097202943116946220054324501510193910628986922937685841089998505405910736116569634460494488996711292582226019513193451337966024951686554071710015289290041297972858301707828032565671107393459964030097321606054252647101680351512390149151260947133786317453471055590044320644740134798256847917836783512598335035028052667563493370382534415562008179663841307379807444020708856313224076077083749562018872701300280484644176131027092025291438083018630388979511569071784164494220467397288507053094638478484451453560890456717478577486091904712768320375747579846821356577626120610309854989238369578565967064865504783326373576447942945215319827974374610534304859135218483613350007859921377939427013384477433535044445766044717778528310515849427081594888879890789942884205630447054355159870242505270306668370968116331100229283954741153096894512058226675814498644547434187977011788291761408261045905749368367265132338766568944192719630777029922909838862881934651805839047748900545663328446273844234144862189597961927445293995168521545478676199479346816951403430910408776361593710235239165789345736474200005368379660923381762672966798033904203381410403784639412146070183608865774935925675222277471930971818341337619474483768680130518200074130319715615694878386127281950821053997950731554519812987294819502113657759422661139396518148254415094746565226105126543904528566143190562267416573291624950637145698503089247824837541374118711772809147370716610697781708119177394051925493244285751678673844377899627482377266680392393463636954778476914863363143699821155348156265143032086087222530663712898010038060944646224908948725938873734282587562784920498195676183970521686251207815240754576153359330404858170003093971862556446667540768064044947744795138358257213042115803009741842961761452227946091280264688687890777508443540217238020637122172622675244119303482851193713166254518968717672304874686994469884036358584861299594012227062846801821610468347550991701149257227380523347613647283638491204392913614988567192082782918163017484610994676903490349252792958132314563281131550191243637002919821896252631460080809656840052392833930930671351863203735933274982015274801284111606228110537212083569794883021537770538564239269884272748153197389453077044994042856461548645730272507979447255235245585433819663192749152606928846320381990375288270198411206273911528667947931262380104311570925727312566610517402516259157019440643647712931337803944203653640819556788992208221165321633588242293732803781226179545239505451745985847886343687987883483409410101901975988706177059948899740146101491666159050680018784339475592068520782517042380712730838491601740422902915731716368414655072712275077987642572901836054405717717528449901679778199475996362449965523267771053206375102833828805976795877557354578498496124500016776879092907693186655125543268978418117397396699353207460645723367406017990029725679890421006904376684486235911206501297130625175798690507240257151591255934006054630386208061916357947599636154613263523710792799379619376478305437922042433596500741598911597515448537912976211944921994331350860600981303629687573694228450074728393508119049449607234441256407009426796763623250373537582554273740757488788277402859548741269684941680770235682243027696726596132207680495561912824502592153607950616295554922502794185274226345233440890267005648371308644648808655949859823716072789797896390943945975014379932553951381124624352708595721933223821483644290450522152836865094738917861821928485535155250317337391153930252303109023507795973521753430898747942881042045406939912027197686593694473089203104910312896043107661020105164174647686613359898139833093255482061266472226864219995903658691061646105424706947019843230340265463471477465364501747832296381800441225360444707430063311326162262430305765007837835321748509078888209956135492827808342904249175363473973344802059803826894673146251551140138729624494699215737647621273329953775762425377073000366605417841452169468556271491861597337068402199084401993040909922686663421614377489969704228613116688905136796019000817295396034883679516265963786048656173485982310160227218487479138084298708248386556924262913022684629505343308112875057572603602255681196884733981284548782476425979455151857470864535006742157445631889565566962444367648899191883412147127954065234357982039371691571717776824897235572934132219536457663451019043070608444070736771983470425787467980132752708434806548776629763145193967864626982373979482792438383570065667274920705300371608304185816166058176730882565257488438452332974741725498470825294708486989871587291184601371009182155309587399025445215467396632464236450680453314462065105433732679236844900108883861553159904952359976414363204546731294646461436560019174319982934112110975902615870952329468562408798498663622621327116379592989902687370644247494893527348103916093246335150549205842431184896442106828165607922938813098539056326155676392329132692102304079000662693664975467083170151788046632865000589196608518451580968652270463064580718824024749064068187667837075992689505913413723548490806380515098306355546263345167846604439694301618902224250702959899451353320948674920079754387180976930223214368323249062942261951758574585844376339023985092745713929181100842709258779709442317403214888645873904900046026252538659933098199611407353857723404270096499375719930156550463546992520870249110502661595501358906861687374561474510638428479777065261210585478691823240347833409476685503146650260562209519977769729950483542285171062673624420289812357279334191739358260082328894777913121890840408617005537708658705556512922870274746270592659446364231486367643387846811444810787248514629403504764036199673577412315674859853299625345942318930574021430683358327062483605471553546345258141685313753930419651563686652740396949582323747555228594003357681948314438007298245756477629350595095083367653786289596069755685301412888786113092282017898994958809080024207237586658797371464159940612346550413381678240035899653567360827758834795854908873465757316588603195971618216577585505074628610080114809112863153734476304026256674656586212642529370881520789533204561148397627807111474170691178913439845699345394791702055315275559981519736956743866700100705690075050510756319143292789417582347656484519567821162479200792117543765368291737673914502312412377696791550754864706767585095183393370575960498321230766680579099265444237551391837834429739196743587980745968297292458922713042652468240139608481034966289273937629907839843828220594793543234140966150286422033770583869020497101084393857362062105747906014853062679800552264781478980758744304067866989132277845216554584513902060705032196816602893328852278041789914422053634388987438529853306776705898202737736837971614233830054733107283725779375645555242732928769930231751050248785192849882946453313203826650237275006915338823360363121848945904949344949382337464956918582860015691371524416174488431830642076853493425960157362346762145247487778775550556590846237964710623733436289313199921377387978232092769544225999798002092831346928284524585870901957941127644109037479110332171624616616741921616608544190198884673543152376704252167192609351343853256625755464873252404469471190260260343186290387327162403020119498734751771603348778074867027848007890940612981819022951989902932150368186579094047947687146962750171800953856221271322344080886094917434266687261151253109514157496216520613271754796543278823533083707077963093896799594940133876964363171038782818444115175561640833270999867946691210434956752705021661718630708701191436171107813515929498772040464361526936913758452856009951248047685477477559870550823438177955835223257986537122723480032057435184710170667721663656860064384069487381343002948640828060033768401309874475643618248029583162440364116079781010901697685508240293755353944000440684519039252318731406941918610182637525889455743602296685195118222787719820266256861701020111020421707047794693849638914529835153528955975158909961436841994732706165994621605278641582967746596037314025351934375133814341673848727601085457589766345438136895979430133606575664842642455829098505582818825395130106696296329215698512443892389324678749203086735160960425527052508116091775590412302348680330255452786949591047713725685124680230820769377699761452795917278716615210800439443389876392117550595841944080957830113741506390894418544854536972291858690032454148657043417504183310917830613007619465670128890117656359327785514488581974501867368541734739941453915556716297894537448021771608118444184117028516745158330901593297739614921374050655770517696549433996703149409614519371591935228597970723352642593693208587086989033662523924621510902668771571183999103318743206352418716766755056801207593599587252975199353196739441533162627069254499455935668714523778847186842302283041888589707009266710800967316736845496236580580070975957914270601295723379133975950351130452310958504519730025608023603325444662239973935046809883652828696313097956065988263315543219995302537449693786892954663620371024917363813275134501891005878556637898968718293886279716569941899253888117102055792807684802542290417728044037457830117824117005414212149096339695013801075089293874930141661008671660988426105313197271643197308733691374059684588472953839496821043608360554082348879145004892196736481686527009586679759258425967639872017760795361207657457219168285522592655394965568419764452470763054797910838784689723415801108054728963558372442610572541435380350750450511275050041322233508723547290730413331426937367373770065610611256356089293029794402652048279574900165398077630303376326413343921086894198635357427188182692389421790581552028912491850481162648454969038921043335814960273249419148178457478077720907347652857512391786066561089987280033425338365660294870636054641438208464667375372215146436451978466402665572125276081676292307837096780521985548883395166114099072584111537270792667237639296675650903878077934875513132190999752668035887382543914253736139672077096622580523788217114988601496974583900006944484009683056634012790051502138218857717400148781990791574016373170655356180861371506336884728803235504282913403379106714625662669507602535516857032335303362045291317142042513446548190694095467933016207180213656434814853217846111391876729064792896799557845017745303463256951485200746303181600266059512876267269268339957488813168782602939884678964365793141010863286409325296818839538641585107404668756820142664458709684814563906850510277279794838736469819534904865719151654391961045633436180871276081675430929517402051116104026640010393966271244803912747941366856572499880960993117249727356204006671071379949416340806913176617739458538275501329200250221073274209337131874968616005364053342878509962765479538437287710914120843539797935411219221862863910574395966088348452251119046657534995009382363805186510952363460960829336101297815848907167505611263466864975255901941559363221901644916531277376691024882294469880012121866324100393345583201461172469925647027753731167076045783439964955961141722809815123470178027021403859141922377973845488808193050950245472888517547006993298859134264378121306251412827654133857358165513941483205966721346283859807272970023188784039249691086779820377083763168279322558654718760839629676588056073871731076581483330519297625365885642182220028885683331973860109862445551011329884537725490299548196651975703429846385642003488556641233379471152694066928867913587116511986481336735007401338581466799366156635906203400583890623401699230416229236578212488055975475150829589965512554617960070139527560210909918063469729931205801947531550676244512875651261396241006894557353981306359244632215076409797864923197296092858463686939115080412752876360014973842350838906554270365587394652346053945241998716694768771051499413690876975075402864497354755078492837312847918258064448563965032628314341367279298019881157613428775091371358578135140028557745161797702092689344892610535477305183515193758484682320917658572951742782692440808169048124579366112718957192798646764158671355762398360972766647692273287242277600137310416390952216535695249382875318141639828727104719190069807395721027064533608870336973915151817734668547165272523671690151678624666440880060742270213844959940902218872621567892033884452572321032935838429522221999635294065035544240333006301333943439003633696104597416310467113850054204880875374475697610545424975052077388323616771496864560943963129384271021632723579323440813390127579841968431099440704281370805416947266522568517766337224137678916073087621369585834143514538715542225682035026319343134943210475237001595927521396623636477017944157671074891219237528178100585148575805096644971787658709743707537524605336496680317789367837685898117459633256663453756851058690959917443857602838328091414120981231496204916999423581433759435394944604200950368268833212844677888494725177606898985699531714982332048191719076533210763758124541245924605875157714544217342612876216239245313449993780757631333893357547679485535245952016571049734966474284468797960279990201043690633807614374689503368732804234842740294086614788033770330883713077724585625646771997880502833612144973032439723142895476563609840092880739594572142176393628666395392738302639652434266488773933542728919456349587466688815378685689306123103020757100691986615623504949552854119742377227317732196849345020693325046250596978881647971952971549397014324868969535535418533152912730867158986043291579933773455701171380844493973437385273826452101835081314042572547595952393635141837389092691214648160448027778802893750023633383164046592462363309699505766901193794404891627327012063363642467979420852331734486455578785053221693888818417325571755821572738199778016270759091170838445888450052478956318175138590591227166960835144590661833627940794005552008421547116087977119122516316765324652388600513573498259797330781506495889411907543043373155291434733466835665870558071026648769787377408445382965586462309786143269006100349849280971536786443303804484915372760439539115640541033836936603959165728028909078753006591219102825183854802297461912355739023363480205816497582305878853182716369067140678280869194579097717278076267414213318959772515853421980505456840749208159146484506052774436152418156490661536871483229366098377630892497235267797054081368274493536567854693676541577254361147232620772891197110420484780472326695294077564603244213548944898767155215479620912343025195442123535894584381369602968419803211382957590725198210618921413659896370602843427775896859483934722325186417905018289297477711785299166500860582759134086554374791564077059893552718156356461509527703126953170044855764876035714169408536807158539911935606722121637113223816181646063062550874605704300260153028708614235741450970974127905145130670271365635040572194519015346959032414027257380592987648042634730601823955825555632649879455857099385723705242283626652369562754270547651810215878526741534035325636865922051924676140138976849940510080018895557662284035510382181394116006800023252279364505889254709847642407432936796177521704850188103764434338869454976116453311768574879871678125897318747470827488667294211112261856725318961947249066846154983927804290579763652470172010265803674611517000880265575833601603940966873804208047049719503531675857158901753870047249765929073487955510902180992151229484616473202760084235771877320317138774821834822043061462748255427505989852279319423274814407737981289445437390971347766972645688767733383192984666428864496761611761123036122346092751915577297267633904088450308108282617787406542077665442643495189038562789220190087318091806302634536497792920081408332285354447109003560227660389506607164222938709143644683920965332711999845772714605803773694500697437496514305295898349135047409940933030106317991609917387042748585763441737856228359661794028217668915453702415727082864117445473695036463687823443205779880891270264850835401304109295216783306568041876797699099340480466121124298215398024186676467585389018820141771654141328990985870970295220057237040339689132895961341080894026598985404838784937830288446699020885029534822816478246354714435327744175010906465951528435120190854536046931114268653721827149403393450251102925520288003126232915393227828116047793208742928525284181295713471306717646695625666975835641875437385396801279204656803123183738107964613956907977425206421742128258063907845447573978576629295992464120071236828049397728886207178661819251929803833191082596206732440565610469942636065652569971532668561295284721476998878332429234508591095614218429372587446383231936358331828481341044081930536738862861338966284098608424397208554054492149099649490250635043052406306752349648204668152261559135778955995695749367228302514088403151393222337751656748569478157132661521483095246220577538984296227146971853496175681189415089612314132342825290747186165931635214580906922668162165064224109978105466218305500574537686361993957379072181842958012316974483164547434986290973368128989283917948817965356503056088342422737131334267364683202048315447470768451460308376040642181674603963781605991380752270149802520172042911048041436155416345781733385394822094556626082424282638748927235945805154632196641636520237459615920301215889444734276898617077573082093258332365223177674536185229577106863341195127831298574647410069337038357823488402436186074950312995474711378057329049861510543860674641402414204650884488290293355440674645669495071424683907234218270901413619983868420700158465088348106974064040929431632512007987915143958323915708180447896416808397453837157808724878716409877193548572998276351991363953241659924859674190501448351794260374492305587295792072487204870766815142259283012000737902356793383859107294078351824187117412310626108442574835308378065220594158110526769700246231111285236117578870400619487086358470117715244109033989795811375727884960203886374132472091725311805209516328185390850319786950167727519060000398248148730373014652956911091839090121604728098074180306080847573858578189648582238404055833599472710738514844403982193952907100193217245641600192820679933753113607293941037691772839123078254871918198861223621004629903467564014553384041492263536913565883463254840655910579370641843523984092754484603424960329651339695812638177541170977561780735744900757614041568828323740679913030052671827773807120444015191966817335521748471506493084731251356081420741478709833933707392445375704118068812552779929737616028450723666160890359860559231372293016484024437988705280391486942399129065682658560088822984489656438231317097962148486960198719025544311452524342304460793363075817120901735000891335325569956091552205653215934870963175151531056573528685211777949949302688363734947056820929940249056075383036955228531122087890280171476375523529408963895317819718213714018073165335392147211888906166216839520259632783031271632814637969542009568590921104761905939192918334921263935488848471457918992928964614882689357621217011271153473681137489684185438840481929228814414123936823949859514280726765026902006716826331271022959606123166474645137687295190292017053525323351319102896188902784229832357494093483631147323003814333788443778292033506188971682617713577771512374600716387667265373632695802512753792433008422539336565935730867555249404516301868294237926317132693394577826144073967965577086927768949339149973385791581624995839809009242088315139651686613162361220960075380561306282905684781843250655645170459829715477388119249459903752929551242578847780972268071813128828201191495019127262485153745612746385228747859021619275458818868785313262513622942603869912685012358580413135337234754799726358796094972029584876462211302846124791455102898341822958904614684120772838498626085681839299297756566865036139758965011475150208532970422098338506202163624709645716885678088583633169039384282380454753513169552829056496984698005258292837918409386831668319506389521750431319392111300528435772804478268722434024571232973497196487285756220150336345893805983622044641288127930541534677278793796080540216076965750624728265539553329272276694145789474923066051756482224504924559283056317475783115100425144041366879128105563581078952599167482855039865243835661074014780828686015435666905071730608093693513438823008742676296426247004566052960451492380488757577046049733643261895641078507732956322036042172787935300344343758769517685797284376094088760660010702074283287086976945397863328424952900317096333168141249607115516453548862474741980555624101228729116026761746278198936702446275379943564173371742327633250794217206769520001081592159734369779720813626383954808682771760783052833785791012981704191439103107471763444295489521285943165607399963679432065488985150433393743756130636661810386640901754392065942370849790019489701264274996369856418657914387223901373148430174510477966724822536476221663170417853813202475328856540014064511238068439369674303651705037558346635071371370735551154570701778178047514463760282897474813012640167939378473181768527108799071547417326285468366638601442781959504327880118323559171880377062273721979572710045342586041885157923119074924731024878226763061788797632883181437895606094138336875403093524967041446160278589352427542536358805813811113309224443078139175498624691576954901217016035312424502478047513789093339716846366673245453382094786745225220838883034386575367409047461087975372248410941657432288912563795232072730578334104485956673235038277442812100963925260891214016713036862154159960841716608545406548414149456434016364613561787259707105129208094500803136541311539750343473342070117468321721421254109122547570981272177765988676467452685974020228917417884302503629013847351095782580560104730745395245238686031705017444494813217591068510552540731702688119807174899944968805513149327988933180208035042862140867907991954538061285831000480948959548095651859351250632282371941986490750876509469495039372382966345939129413380293180575879162781908130498305759484662306940194912702691883012179793795703287817319535803005633122306071891741633117712607132101553766186551947535199674267234293169071501647490344996383666560037910921400046672510343622846653658437539556255846289215069947797459976866207851719002135255207549576974386141289895461863837351801732312927835891724292208905926748764698366681183883773660111553684371390972387780366120403386855587340442538323701621089879034922982546507084471679235181092064419676366603883031792750042085006787866367155335902396031291092183097089708908680092239581002752929349357854724875412754160953439401463251547607969819739902382438803109829053657012830656219024788977853699046671904041543895247277413001491575872048569815857733691892292599822348690331927959240007498420421355983035502410661305931567199674418568294087895705736594800475516576231115697754995373229857281797780730317516251870663204886508256196820318061766202132154587483463924609497252168874129516905126182314235675123858948358124548609898397050775054023255358733318050987934724299102653032026125279386919404430301276534005747937036846829639495727658205630435990476172961517998440877784387964085470218719656002159674534840206831118736726701998390478435054734295738921425276440183461136934095581407525244944896007205028401205129293874339233528986269944039251560630325145102692490392104118085125259160658968415557423629641417340481558489417770414880382584104332542806447786561349309031722649746554237772418423122609362408968256894627893122576924938340988676499891886717622351592749501986344871743826941578516017483738919207962162105484424945033670587360811658619131887350712774112635736028974985748711934908373446401934299344191834688134643865403691229191369759589459003768233983401853389591934439124929150255541106601042315702225461582962076963268149962946056311092557531876710752171031096774603777652761756233882838670184734710734715360989823182248812427621900000300739105559777974649094496229626129439864246973217531024471756789664985809735946752564469609274251100012637339429958511473820750295408895811175938894316550886573142676158668908656382149726093286689195418366351467450230627172308123778613986905016248438063859117948508425782340423349571897346464727313892827952029297816960593887767359221868226320671541508146850398077873533664585072226156850764066542050777195415689428870183964020456745346550111068584284605531982794212715039914020585053092429623666062198639517216565999057082715207576744920738418862689404765556943283571075981107037076718284071147725900027018709037515711438330185157674574736771496512487379716221457699397072912709406698969488913966472347967075511559923135329836357887023953867689490728447332850869570753538650732510282041639993746864599484558761723801132830566530742969605430367445855882550171994661588813906019921252434300491385550302397543486240301394776288297515170576871754162960596599608569182785249929002299159043958442158683533030639860062877889255965786999650592106075347012226256950930727832400824362492212168259317641990930332368020191531469363673072057645633916549905947739036224684026954983858574454224274952148877659948775192230016640498291104358471468117075275554094728600027448926192734610609917642116264011068647147951033800250431057169797810714373493207777711844740716999609156624767856468186970696770597669992808996083224674987157760958337001567859449112726454183055918238024602894710263036199924805328609263868880835061019442854184245877615427005781498238326650765777909986073970199555376165338790095314939141688336544579830401332902049754273542177456036241209694696701847557403543302465648903619632890485622262981123750711866962991462388004736234067780683758744166832570546964259574229336929674815202816514344658529406686588332600704016997397672099232337178562615005085704345041630501137397058108930028558646803722706217519043212168845911831841158647265001515409135918393392506697636705285686034063154523661615401707983672370183450812531420040803131183945306996158290926552076709857222257550937822538076374165936848555410949793290747142257428251442357934771257416077292677634981263153928623428061282389375144315784852719729626546752305580441834631432268748809822284855820236388579758517409671871063898975641857393061492625497439251296777596655076455431719556252192992059259515217271776809403155648418528020539989050288201649407790028065797976657889010748618408198387055434815969634014009496095690806135197385493583615313419956831958481458259115678620614504774956924713882830423616389657142285144145866239468896829397945119780511414733023138773417880592223266867651314242948435980384900126358178989892569972834424893210199378826554363140361612320829464152258830757982445709081121338666900035773387192243565101960377563657080568692135162659437944490685665250162996591915506091812344250799865996799721523875216738402067910601878624684400079259109984105236257593854290349784856174688404328108281144202130550021260658629636854269187828231536288040775958447657092378896040361519276735271502801830240590592126030250631374435372267616568965233079447457613300046028756717233557738155590776384296219891613423216432893500135689734885146637822051922366987675385614007817507483029286025753805522256425164554903819634225356689486260396685641013568356474580818912123313959114545638012683049929569547285001701131275492463137204621060454438954589984089230220060296368555812034144229284703975066759964481641558346232627883105467113860604324670341323102338180752122016702624505686329659024439075129763475495783211529352609013741114347587685086180693587828118987933577779553614287059077716533881830802768018645159722058818206061493578626844329952235767363595797621484085248618187934043461176849107980522272653047655465261104396678092919560014455193152924316577919855537992930474556197054622262384275000904430829926917293370883437404501677496264716816772890698876677926836196600315179666843915440088420618896006664199107861630124489316072588033323883365938719555036106596111900395744096982271233402092966688591846572224905797735477661397135152987614399998293181416942639519737181098837652214597994627490760195985888769728817009380280858673550517565820536083109472471468007384192505807507053031791058418454490325318852141838850505577997947587521083741921877272568952291693249706855642322762290559537639161525359122815741184509828619399075762301319812745082697905544156572576214477562785094538824669081892462551629852052436803725349620397481764263201932319807483838472548646813616967949151545816959134181021240774425257959897176016792705590426930037405769705773147364991488921125337048541318136219503054584971054114495500785216366375793434298484524317939879448922740501625434054999928196791669552390197306564802466728300339677629664273818797510380916681559846228289316878862417843443790076013010064453312932909594122473394980402755254415060563744328877641720384062269113688762948445417344800214709555520807434673877752875017301977417275406878864406558063445490684423114570564055531489991328747324754160470522714583576258546448455057815237272492405418746510595065738059237156410400229006583954594676117194746574092667760609794056151449423172782953835141767455426884789705399926783873207823900323998834176675912393648073680242043338558136535656855552031759415912802553305886189475759108262925910687296089090275321592144296988934266085614332531214336731770161776124976615737389714945983185809588206341971478387395501866918274397481534733652698607600209174178920580123079215984211975653279621864748270320355389180916305948053466516781362942490270935147660785737633829079762427460703400802999945666243513305220479708421578224546805897767727836708548540730642400110074307324378332241182482140422187908208945925825872264759405277836522283538823908529041595676576860797933081509197700273364852100494733572767381524638368123521584167024005849011408161986389023358447517943550259965560733446887161363177966841700784252620359968062364747120764936910983499835172395025752491191612148235803550809529000110809971187869357531963147901192529751718844501394289500898399858788376250262042691109273359015704940380932826019494339786690789421647034004511703841527961060217461339855913249141244666918847279157887484247548315043075815286071108691730678025695611886935423457662802898190327812072510619396893938174780950036184855629046058180265189657157795164753017421629700928812789089277184901737655797143610013221342988034214023531815627211617861446275215203551695280158673021510987978033979675213220120336281101264874529242577042749625850318799512277196276594222977890973260863085620710555570222856213873009194727075941498323947448917279865685772317868733041497238218299605970251157595167082384520194151281269760285772830334872454484993266966396846689985863243538955233508014649886792895749123088561574807888706854000997051941737206613849955798381620006460308448754694458157467908888412042375363219602907444088738366679283622704921898621152655327238436599328748501027225377105764297513281766816442730476234629438415982772873007111363805031095670207714919921077256514840523405782067863339600512794614375606000488673313374250770342200114238552406766713815318863516750905508165471385995012707706971725287118041310106858687742371001258162114880341486311222033627379019389434946541089568996946168908691071303720948007613708163622983410199857807289841008339570908183579252948269907317755558501142745598427712196602251219844909832596719851074781904825425878809383587974034069724997154587543759360205466200183054729229749052095693788360399300643076386959475955439548764376738358877952552965777570225118502914883832551097130035151796459465840116072129870435636018664419863095588857902000019564914025318514273054163704973345600581094327402972493483300965416233376973214861512004149670673045774373849727132251888689467775261215909120680666504443153807687330206169192285039206486907647319013079447989855901609062324949349051892253009651161363707434048504567374682913425366273555970803191511356881827797641164329940058175813527048213581020133217536471830125644627606204185478757437324360944736681225167911336259009457805277134076297442308934884767510106591949448952742773191887213927454349423705557001446215001709766918165925309863625611764989680633492907057609104004737105134332404856741004847576346440413516648681573906961753839984117902301451386553144443349128080387974842671906047280014459330060059958452784346943715832482501913427559337409311285281479011681269970363973403391696374019992069290381690507646465179897294767556085566875357128907916492879045691873312789742435349184304868635372096782555171114148938178567261040974565109895774793809351404586411840521086586897105758412987598561168373767656490876293943107476950173995237423164151081942445782010865410896701761267945954829575219149145774209811803350744099496536999924432798388658207914186320109315938434692201234155759520114248714828316418002220125743609266708939437509379805663563854456683281416425090052098857440488777729442939337867285243743743834760072468337498422902816728755128860886585488367243570900368141657191096382032376257995819344381136454324230089482567636887224875535285682249487309320992174345639870712726564304865951024185451602355385110465525884311864034508674211534719154396495513135392850540714061074749564118753678970284212904842118883111965835112077939826101313959681053315571807909276284800869356903207160220698958216760405379003933875683048026941165072970679680123275637573445989160975841771411055183332918182641125604471606543087693381419623137070004695872784620946828430313854795161638932155308429145421525905423841610767819786800852709560462258437817627667469463888940902389475976630141614548117120518333361225202250331356835826999186170158233359782268948744865240374571714020382417065342425395591472389267277710108006463653303615973540822099021813811745225162370989129281699334865462193385224429066791930603405435300386852719031256655987452191420247569549278165461937605067687620776100916227576453804509200850985535804163742792834832141339502847292905446522575284599286792970561152534449842588628705265473388704166596470661686232355062507719831473639009124045788788643769701450686256086968441146810168627308050409077892621086254350306147600483865361993932657437277581632766465092419505106429629326302715599367648011048807421458511796452493288037428688549068625873491351426412936317082514330374878158764700297496736646230544633153303273995637173682235107597532675196417207805266111882692263763318037487926072151697277507906132745195285982442763782780353299688937553361244825759472975905679550667548127333223416120498139343883037460562421770674132769957063011513855572374825540895368307720830573822284563104704142806719450730805271382957428746746971321926023389062644466370665172409512382343012379203885512307588706346361451759062781802103233685649360046771355095505845244652199945527889645925930014214213114920760856588776052247087708047495330298180745548582737928378357115920515298606274918533895170627474955875699825580244495569736012382363632527132828962328287547178393660160220420246891673442226607484585999604130568422676580254756673884714191870636486868685492902696727190069088612780762829090097229984846290709226047437845807409068860956628654695170138204759269222374944071426659972950286812277808467904118559200547239154312106123369514602767198526154519140418058536145373765259223759255664902630976402444009375871910662998855517806738707262984324175563915411883035585597651700653798565995969929200913417958710963918655924442264525066132588578693809278785224009139264964888396781923616234121928934982836961095156014976713930491526550940652995119728311921022541914018454886104334100629457087177085926289466444061043034269181453403358274072699380897466925872358397374970456047502530153529645614862307510371762189700706050505078695481798335703087693528685642666969684408112370245049798151682431888063176660333816962809982622881918363173524075141189943723911375528134865457844513620807418240646918413392425244304064667361468163686266540500803422553395284564169785786618390783309660446913705103470691282998322752752904979941587108949377579965473751487373166785128255377858016392098212185767729488544741361932412445271218224857531424992167188257848515438172293674971834458839058858980974078944053833852512596623169352121833500891123515269687849598729869622116528275927082446395203564973253453125957338014825552225287461784991269141619998536523141919689946669747301321723608461288371997188156296080300339510182976401424506375116134354189514359975444321031702359880838016791184715174680571812966948617985960528187833927121969815147003254965727874115086435578010525683779241352447426728988893093118696062291085749561675650059172196191526025093919211697086250495103324699138604731553503269258969221142545446522038657799996297682241909138280279370984571584578251232370335659777440815375128676318606565052878806938507068326478361392955737653319428637499017562604106323721244026174237281297053195264164196050220908516356584987591831862373405637539508785813904406575645920623995898249996798827167848890964360772438378018389924131427538818199406435026569727311421424627660599158209339188747228615796050089053667040803751739087451673021189707496287059487756286054795872475769129778298993733811991744967307560044871067246157428005574355312736522232879748045340807159290336978701297365244834030147160008687824672175865758807153723696426232214413638501540818058825280571991808770306765352339114665441921696073302110381385861415873788343209081863424445437027446015425574204748039314311016469400210122063898091439216343419078872483727466978963112403394173425310067385283522415317087662444173919118524386358063400040662321608190387720557223042792978124213213536037300803208450086646358174566601465247122491613312520714669055533807451636454866004016227710757496537908016605070484922679466323861881072547394195660990349764074993374826136993256681967099297591382872161232392127635192099664149618199344912203821394278512902345504723086310193176091277620658014405200920916620121766280829674412689257356244005884479215236267931165211209939207552603681923125821897170206398860685705959471127683739041144630639921419983377593193299065195979685226292448192062990140827122989937606459671145179306304594338312060433520012468007545091527990787563078774176647747919574046511175795464035665038669217634693287821155711281969446830927088620386852108318026342272923837624284741907676957998231668450945672188920425041742226616230958573751258375676362772241155479159280167003338071531990095727527423956985026197196444863476025964081604496314406320209880705764140173746069644850739169229674909492451047201108435094397236796286203171547500406978748769643751132167543978318405127987543191418735204961444119689147952791535803920781754577690684945555199176848306618581082294133834109045785948446528168681996290128123531362283696765375318959710444978732861029339091866039800796748668670127827788812939503848335044626232150772641640050075992047041798278373869341563102405934587362364025322090827949818417234538734591634450988855718763761541340469035452340296539767923419012912209937393215838089375132675866345027118929805082508102083791763356141476168710716500040784591010205737114398545015041085575910179997847513260019341364815489053835900590049003184434783337012142358933413956525079207105394363344943309889473086874908503000054121578892003897971232919162180687860101123547935968531071255886708575690005528470928324609893483914382882897220783453634090937008110700806730017366029766520082662731715519782812310096445114311338476692232485043632488135259522782068225006539917119654856616395516465881023184633572391761669151814980214618195692404724776604558949008058703270088488543323533962219484465143676238672452330012904248717680751272543647005153562705554157361414988033363318609810077869965942864692593979719485238052430922205179379250538623815249946797438906894096301475874266378957179861284583924919780987549486286207313946790670111105009423222800080615507943288021319482869202259069977305901383325455029155899634665098037778235543804458258239894404127505599070636793079210931045695944580208698448790152475437688318794951559116783130549487363665546663874019904660889618906286285486126880584509779573781748586419890911850508154444348054234892069467786560280635618805044959399543950147056849570797566170787005199899303951284907633561662566791515107723652892885038287150838202054264252828213162739608332704409164823770920343763833023346399724730721689205074603617333402053886431706318589806534900209509717984065425468062771977295283734806223526641372957723294154664743684261123627841569672416845887575151996002847299789615117062695049943720235736209815552220325165020738086490446599180216777056868527073646162178174994385102911249504189324850652315063601752686515193491762635980659084722030595791188921246307072029964847640230854797015029637533414788750155119523379158459811358718943858212882834832116084512672341428693564536258101770974899377862234862281400912716812528073211443532464027287717719352147407780885362212919348286341956296393308540388532437687222186179802232594731801946001414979433740955921985801783340963184368382746959995919643993256605144052830632477479505942397144749597195888264545084971322582932701176315382649825465983048900116645776190640657007193393481040840300897788173315041671423778967350627031740786159181113715328561304892306603401596481073254444764246928509817467085964118176126395331513473789629252209200355315077563210654340144390457691490943688832938526836023441373526400366289441095716846518658276736467002127752586546321108888027082444433091572043873683661944238530328384889547095930573089869463313136382774461552941782706864754410989127602952751737989747034296410398203037119852149181895215038170223908208636526542087231157185505535331322081410107014912023760686441221326220137417785494856927754734094591090407654023650966827963765708558999911123534252618461257417679767690482453761195150466659728035823156211154463148941030369651395768044113220774006843747768629575008969859600503501450427017330437789019077040449731557113871049827250544195818660422738134064433513535842953797891458141621387950368363168474521431858189149801606928812374106878876746386975548606919691040022786630424995022455401801239927667657873231861979588343240886311796936267235488406456571144991697868495158527656770541110784531941522059980664897344957401601197982887315410340805299710064354705788910061059519321341578307811374088292788821076028508734261338489018663379537487880298907497859020087841465327106921012123319120366017955412564678894423628169819705110244372179391488996069898462020822511280451043308699094702973731383543027532329507448201590029851445017240741717553890937747311625237854715759941066565797376602862224610998195037358250036483578987689792540960744025645471590333631164080165963087252944028498355132795465608859970917775316976430722342551728104521232695422752507954214307625181543935761593746376691373555928871670091685226616000762473621797590945718592604247309420331362571597669217125659405450063113365624983241113639113526988409323647928683343925205045850200025514546982478399599389496517674236398496667350555524430927569805728478928140878721348759971279876409783059614626934589744176649765446982142554656803321520960633862843967378985497669734069452158096118599816745621725501696799553946785670491268390306718856864517422037240323318063564070388465139322416665780593670850059794188313532755557594793672731050639442343191088938227335634200198011618978535417177677951956822399505460540759330330878533417790642319872594505670889736837723752688820250180360571710416316399037824167091560811811691491347178467165675408843054272387566676223980289260067640491875212295092197689804044320191550934176263949211958151325459884786745354730610237277500383691064089098315834898831164613279105674005172167278185890626828952169944678693909437189977499694945027082392361101080003437928367043137057118723405433343038024320817863791582674406541042068044795448848939828158422277700306207137699073879879812920485624644800492950314897740383583021659074645706599884868459724127361138801978986503599623814522702731684486224922809726741203044890705609343228474625726713529594693601423794565521586623160722747426272223628928674150395586890244670331904619263491910566863141566475680073791844308175600522723450380184245868320958369393373670178851466097642892011879731735183925623736792973654306440217346754367022459579629831542772837637012295375084674195439772655116012981961446108436098921468006635265652987122615630019930549251948028930906559916672247836028939615973526950244622592336818562544676016199574923740228090017974685214043994639281241613540503088343497179022945888226288293769443379190952927160152443418712791790039219879130280006161576532316307659478874905780902280074414870381395944057749184562057625177120507810070831180721986445772981214854572768253792212448254638061756522704639651837415569922004623996113785382967970444855764816649333774545597179694927563461726898539414633474041565891267195351387681952800537770106526641529928692424150568579633158852045053097110048605530217985268122267408808277303055113547331013399719955865902708615139532353798384200752003557181363125665231181927182482060052474632934122793464182374486357079036065808321535330532886226103240840772557544121838104168925436832273507543388600864816717386335744330373758637514465032530816853544773144372249341072064054705728425821352676230914898129310792430129056118848579632830160475065296454560596688783890165743944074324503801837692923119072392868283905750216929739081744774917802756498815903202238198865449510033153553570259620669280321433498355394087630240446564765432276427563718243259604671541168594240084818822092576005643066490307466120693916810309780181603250877615472836460051588836355039013656304880366785684484212830540552620542267633574219789442338829920339092337298585060033942826293419973934791416235791086787215534984546000333044204716679353645977313290190609261353255275524189456274793975572122913594778387466728980793625279443307968711804311793229615394020036220748678412514201202857124842854321170474141695711131068500588262150976498472031442774604656719223284424316396167335485944548932072530334972615105841952548477535569203397054270802317886594040347182322641833948159597914501246778751399675392161262453077165617630969619244349298717243662298454860063500757293712319739527217925602322149508219175434396779679953815809246566403886276511669669321413749505938376490737026594760187640510309113909553618568369260395372834040935301687733327687288059396375811338310636785070652960992941667361885951217887255845966254700018832859076088201089113031188455160433954600367405669318299027420928991955024268106034554760583150935548615625838380898010114923282569606862804069554768978276216685635137308913264833313891891604830035045386508873736452854174036035327317913571022946739368763494002253868342846067556377353397283383844300357555048530166843103117445299745302836384042946828828262800292758230458045677472737513717102792299957928364592374433905552237370992457763669577602154134851535722211654423831748206496784596374848214263319614389263760825654069479313808567508271405004402943402303274083954363864876398679620759274247115158862364484795232989348264667218806936517305947491987256867033299178880334272550684266892753561641154318279614379834504978420066712532599476992167924714887688297857428206639589858132043574576371177767739724356103036715238252593438080335744523232387509585053991690343654817200446030486417313841810539950255799756674059936825264569128090148395815433241299059014058180437163600550873244293081038537040743564997612523721677622253686724197698836366499563919991954701091759013764781858259009978728377167714067324351528502877061803852522428154807070921109451787570062382998061086776253625041983427251070232809730709533883236350216882602615214141585812777060622024614410343209018524733643015988691599539532969535294523590968070884219950875439852318662770220902431794100312237078710971628030338695921923981995868183380360624507806753913511539992726120972463425498209469900753162570118948710115106332981917817611504048047382038349916110207372489480833567293020984450997812059935778199185414244889837854482114526493111807465376898296379676435931962227948270426102723229990310859241262231801151087226070738234193930344385932855528057557729112189159615933416561471213224648086547510117023381642716606383726202797140436636540612492932155968588809623477078236342694929894259598198074315637005987059242718884492488457395164435938868636923194577153986066170878793481417229664214455175322277504665947041423254185000205596311898511200485002759682405867560096492655333364893383456447725631302087440064090795890000956181958219177818938029839228922524941797967904901929122346334013987229780082190590615246077963904309061703421658360783144565987542794510345205553351847589629985490356351421318070205305581407637472140850277848142096070224006740237099553298737198860543548173846346381689116639490228892993540761382384119107765786228623607185094110915477290069114511115017855676534257193330832734512753345393249198527112744186327191813706554190357293797897773124973492618155584064231142627995307361834869479664397854449017561373252045298461521897418642928044887841581572959727439325548038470698975600644301129718499303351897679230293424000703337254733522437779906146756456164853893044452468286686781982712402266241543103512401513648940398007193059260231904969781396289271736467845146908805979942024614422564824799757292847337428346003512521618116296539366713686261546015503317534173777655030527675335990000193707480439696855854262362748227174589912810709702537199281174239335581365593830344659825988241938316410035710014129897353929428568211242638562753520884088965243204640815042106929374533977799482473724335769452230152446721458963033700450716662544078688002337178606752344000166827376380287574581691326707281121310442615307701297444935970389230756308511285390725817726044113239156565793852000414599258628413521224344188585847774121240863755311563105578386021173081135840134943236320579284370715285650067862776440989208123299149957402688943691123355402347824934579448698032127900170994661000225555510748411678688578169041781483246632010631440418302376594577521767280595498450265002727594987710801414605926662239064578628762988768579694934538596633204719039482516137140168504253690512488945082832956981683354297694103580482578399139366466109683319078089775403655514393373010222473130309588173082722108019255256213122835456735560107775835555947583218655632936445787078107212525502379193521828938319306215106559677286754880708438784230260579960939591846354594923866412213160281034344575135967914123488722984638874625747064551900083803869672035433800791068025906374840420449163479869498178834504511713264116617200032071770058489817399347009967164904812998342959223986448295108758897064852454941032843762674028646692369184782886161659271447287903835294978681574427538660369671479838918186938141746739357806254537872705490592280697195783047690127045172277743868412078052239932204607127455273779833546084613842120188616944868158894153651571623802172035930466160463817788869149439224096675443468668070543025752484884145268113580845821656862490711448700109150560093161461831082857233874892193763444986475321232582952464532478569547904537231579667765072857244940975246931129559157658378020744524932949327363832101480589022185207538442048637873643701883808561534342123963631153968881486019630939031895435933836614483224264142376421503573672690315127158325416217712595182381330121942114266832538547106561442403980758709687805770355095457966351212275508316931336021613775024981296560253482200614586754901573266935045581137571044587448913979751730589509933460235498823196032437670814593843961559127619700327841887889683520189201848538558736082285676401780223290648335593704702488855790329916188818517469829908312591564095754505047077178272446491445083152842219361628639537790100831304275117295257073187912724497199045435042632340667768206258583545163478386122612174510961271974159485103175991490934075475685711176126333482633270296253140159714777003042361611704080001767352175355884116201191046324433145219869088466245013233215908213122302699336842563309564631368889644850641439784959848149649064078526533318291955613155761740397148137048836352476288581430452041219841726997982132295594334600741182262376292737944449641826866351557571819400398486999352450030782874091774845752584603194895952558471725496169733653125736829931479062688340726015896084533059915419397861176188497600426802074012528787007717529098831338133485349995003019693762582829172708632070104255131976437610967510529288123808045687683844274271620547686511611336705960488541946853432595078040220922583554614060839704695425671589018013152582914788971527918346812842805800328358743942536200797565858057403652035493819124418608773022127116770518061529437105957576178542941047645190511112093123800315681142396222925522663355554683036794506681947500571264852966819590854892789026585936477401011941808340967666578555957080800330228989078376428135754061052509582105315830520323068727295811570853525297093307568819336649705056479329971490369979698994126184638566468456209419221310623538784449238302814030387348549243434771592006641471332341335315056980052353619245474647977387775438957707389124073360625075478905450050463059488702262688923655208822692844304760382014530659654991488951363489538876210449319973384920272246371496105600716170694921686299695852446870679248878911703659441651045488527403421052156149624744375123840204435019185575958656189514115385476207013581843810298118694472419639876152284356527331595113254333869961316991235852746505740344639546117573107995559685143042627922672836885739461616543172772675689324448871111525269797228617230314044595583332566017543106371433580585749072177722902628142940698575115211166379966492602353578621525268137786021471617806440659742348584717790971679238043861445553412890334268005927596693071231709274760697388479678248745873680632798371899983339742288964352534635894731968300991460587391688571449187930361639627622904087673042619536243367168354609114580884098755632043721453798681692768579121770156645562192495894778440062806964804726999142986123914736103719377834852102605425485956379244484747223420782059378407110689125367131424901736151738416626382626151175313638844871458746867373323765857089441258237047303211511134012725412661867791598155640024434178566207834219728957396153179436397909107785753234686710931820156339057747840009330102498173537674539563655305378325230741045909441219015923023487757606475797064108407206809853125723035137940065124918862085867060107980154786594559094290306085531499499747447151801470331707216610404604096630273624663071098756008189322484184177995801348716212235234593489846419819241412114169701428972213016521375409701931821348962951912696846329992447494973102881980019109782186893133658100010140633681291550308538187285036922681203738798788157054720321546442508103188549651047093782226819996220236782587753334586492498109759646003796326604725977412467693234844906795176481460844973363011469743298113142832765951179413150112301173915106955302676320813780417688081436194091607103079283637310535063021574846027530404341825369824894055410215964538623214066845627894698948355623501166949229367438615422132549524498776173005708116171671557949705316440326840376344895886352568661415931464268880894041811917102356338526737576917547346123248508887374569184453925686023292300166196846988194976604743982788713583421581378149996282336665598032052188234716844544210437630211500872464223517886121403386080098746521294098495733071585128022528970168471221480930166021554488907188817361145815654702812287489232694556177096922307009224129938635134955111836831408517314737605745493132598251443422737287839079822676874309437637076013196032186791805030024636445927546525863649821545889305330574845770685746672165217848845830899941427765812786022997887120614759189879388718205705092813520413330039479841077950355305067282207076496600261428169453906447687831162030131007046848942108243091275128120287086506291755117057599362016356523137065946943860766471722068553336885259305585883081040077631477614710296724377700224803643057517804373157638001487327507329875308575099898957710643395697463086905038706226171690492675548881316551440170145191622890396349996888408669475278529738002341986015294743637555135147551988971353999700923088444246672481482799774609483676807706067265009590070385669782156048681672247157723360258410286361577828422974372673565601284911233756735843179076887095987194759696588177572294217305213625411473614744799288031177157773604416160481392326439005338329981058268068261608356709412395466359774413384749776497151476026168137600781038303202406139751963443983266133254263245187566334374054235809393482122163113144427868549948888590032414660114250446303182950408261672150291245219045608018115069248670828531581051780211808623502025867687980227853558240746000115092493770421448573233894699050224911663612758068351031576493758596814474025254813257375528945928690999674765422221966988040693153926697645643923887773757222440578859116553409574572302833171038315508689074864534718425783000088164376322090123293665052981725861085237722637273623925818523781513845665688264638516019563970579405638242998749490833160666035238375650784291170830156840547778720725769708719754020229642768843015436103516470544729864541349916875148216157817887877948469960823603009997623504971163010373854413928954297591119209493455934787076843270587086081749060721549134694278641396196280144568774058122216146767613190102744514251234643868149745910237201286428391520802180420235893939379192542520482431569072706477756583613352989844262617576907199086822352193778797326491072536146844874223106460279315488252146662136749417743180921773016657619514217154476128667103635941148602863849352900199511554827431532520593049637719023709184679796428552888916817730961348577979750884888234772019700539492777303161053774629445267613527912158035354786596966282936674971389301533768286601325617917682743942385729643527371716886335669211473617820283254922562052915133112880949212867950612194389678296553997083393242631138039735474087350389240518245861134323458359702929468246385221925058211151999387091646438482803408413074520188356332480813549071683900696376067117112282760899743784009312470437702909078257859253977749809805205040722377308347865195154324047076562372919648378631594370976331513704320626010438822530485092125520987321538253058600813686894378252066985846900452992387017339357783152368699074634209165464093951478760224674237150065666649479091273725171399622289552099243856471961232821402935583564438476931797002387998930190947485774572385656271145339725908644684548269170476888310799165981675444857914816032220479431189272226844641145373078874452503788691017201999561291728005263872642903485110084113280762463829056339706694337987227464967904456802705810608634383703903879815780032103152054778517570847982566476224571257577710655139694445792065480595047542068083051720090060414510087588884880809288297454262560299706159203647084426797806991884491373637442511451307556141220134117513715513471576064153586038606735329920278083044646133748423448174052628577940233067368087510760992767089029941947794226115002887786324796921240301559654023399390555194768302959299813045926382618905091003798395486154943981206592136081500763983385938014918283443900281895678616816326434772220387610110758276499793575401193206367953004006794093763982232118996393408821737291688735163140797263368286107819940703905486126862005600673156909594930255425458090835331746354100763885013910549711975997471524042162349578710931668012404010968604479534039062884355538095981474733708323867653932753580182790956064627629623513808673160146182882633407195635161303342824883669823343613269599489920001743420873589905560880460259196175668833751709223879724433181804303839035499248967317693707012317983242953642330350363247730649768026561198189585920825499693957641063286621463352265548619618612280860576542492913581980184171826202779836630470600040012947267003010897397762710993797905789193905292086880989791269175012334983479135157020666349274995081278259943312301075966447453002124433513692903651702783810112149703019154076245037331302253574967798737397194593553325116630402494842429771400153089640436124576846646917042672414238393372235923482857439814942922125603964966494247522619415423659073099586387725538001859485857010826907453792732521542126175509657701098333062713924304133950619102466490118080125676453969900133134085397467170460818458569397991401055162502043982415675950567362923988855481784057839011437026197868612251599051782391540758871791706001320130891226554749136659296463762804455677888768651113198999318193737860196433551863452306985028407281798492269008911063371007822251114064146263582274659967125930676276454396256447701246910571249079648294654626882301131077668916319879283911863881462045127837505108233067579122481951139984844699526531757918528258720578723764053317197061150365047090817843815823807848697183236058993364751246251829352772816140099726880690617142738106989577470904511367561175341206693412664500192866743731354008595192579630385775764971167452617250608544437865907813832819321512295364591513713709216248609859055438495229323172733793660786527275598238830917740474648109264441160478356055338990869815456627307272571714036699695449202509677246007965836373521065251445532847017848389351945473458785165521162405139992002850482500989200096463599078783927888121035712402636162938747856007151621763877738843599805017766462240554563528808153365417655971067182056436168372965407536507065671346933452751196550561433519694723931947121857633687808366300869763029714585624987540271734994547830824277701748202715444120749215254370554131706495138620936127288715451561352877149221963370497505301490681245247801967932274483571311412796427643510101837227760947873579971025798242930522140788375031074823660694771811780070145304115186458878504590360587078612025001791083779886963344592202479151091126181342257960580938433018839808019916852341127811488427749258065183407886788906073315780980358092988810577061583583690893538847533312623577154196823457081441931715277351786496331991289958782823206932933611109083325208307325091412488929479966681436358583480552874368531945864470577000801295925678051493453134380445723322106762238048053286768074829780520296334024455106871007559188848875398990364837113093673907598364085098352289418999052113139406000438826214247827966686328034345886080163268651461336493927432354231782705545376986560109594618287561111935999699535580486823189269059304598244994063680515527729305127871987401082832527359714734570227484740459399713651072524452720870793595363444218940788952200078475170372874764772863141610484699867045412039751448248570859879144014137856184059803049128559945794452161789204739953373697106460055365395238420415266249661327633241197025563037434215649357875319914677820479198194386725671721914229060555044791338015483481009453466688749572814933374282882132157802431297372534407432655526727982049144614686353765483718696044094672531654670516710470090966135271545169393422499930369014127862942353034728344699637203934274139851643890730131297097791525549081571530479094106379728295341188424091368009028962361454772320350250634386114130333246115316199691657574332564927168129250756880396291289890848042764597500638496151893374561733051030323167134864452980821308881492471910643781703317179738193574897429044073085539133029831890929207836733676076656401109479407666376431111439925495574010321937479212075636954125893398603618445024013996528152778796285774142816999773101293306445142478097110147746322666526436015760444947037186542093122271345638804756219485874694157320901370005134189032146936343412924540129304246815991716140274832348066568279109522897638766319852663589937212504657624962755234888613135016483643601537361504409094663954251530116264605324110331886878637313551546833390127523849279701688520174623679712489764626866597874806334218435652925465872903988326422955565566596013409712871250690321575962901135991893771462172623211993897552008771110136378478345247665716390858488082997786702469083314255553749221398357937264036866659470826571626621540407950411916079097318335231823681614936071496966376145197094636539646643366493771093522653757482756357940650095641425628625377821835938098060823298984570778476470441753255760867092110209486774706802187871264695665495469200444548849697456397834439901787969051461818232065997854381911718833247365193496697222467194481442858475318978216172293881477446500948603516586005390012152606463633538531582446891494435067565310110481400217884601888558988224036813890351604929862264624090587112888605246881916726316016661484517094739514702327999390877366875604591550741343196523797232034040914548892757343713210774035709470637837951261153470878992195460826243292879443698188824047818717646525344831929007953028828960836416729912046447840687920950241702816756273453292529570069549725663127171836746202686736180910379767087339762481726823169311069706207619286422295799231312667775011761328365603965613806603038013970481824379012712293769997344123176464422482794548978817073452070501623097077084612225594174061056871847247367548201848713031784017943474236833748871547678346127277126654677728118611163296623421934395064504431319819228552208390433744465274243198828166894435306202869209136105866472801094641480352872620129581790221440133744395798878056617576852040563150387178616999568849890339270859577072432517281700525808975721330722432299673737586895205376744352383816724916840819058439158053799868015883800228864724364774382729598547918779102203333417302425716473512997486959369835533883176262077961471713494246355158832740014309883551328664206009932396871923243509011628592979594688005299069736345351576463414830841199150134488311368154022126307354291521950967976469497866343840121498064049591752663862193869824512969672493686486758590742336117899373151799622892975788134959678045402949731444933259174165137381339630717587705936533691280052930796328968114396976738481065758390380958287981054753230416889812165770777588077720785727323669729125041888217428964522833433560609142239649729325162222837392357793855206100347672184482618473656073259962901997557343055360261711191843290963812477628017107156138765838619867381870186176452243718965013938713281925039107118185511699086117013104109499631867182019327343086138502103468449372996588320179503138944125918168783034046249810722178367930761352761858439586633886087148461055080075783491941477721886018281050560430252976211293139949556051525709827611104668993052332118926071865114993863854915404299244943405755806738556699859117583860495386628746229953852310028975817749055905388841624203711055854403829242769896598583088591139971200558271740067757746865052459934851820799293591537805805802232509946488691063546183350530822034571697919616953199447016993064620608893156736264963500910907039509059613736525754316384908322834393797383413717548859054008714049161145172924161978448199181256333405678238735611081553737832226696166098331373446727113137526162861810923614217663110128737252403830784624745433510442265945462171805069469282955105107795343680330703734632379539642366606135592725496994055555296536645779567464899401383850183119402763391156729450033412156838222817383860821289722587179617487183508324297290250443007425915224182157752205897746048108388470665333728709076897831992081418198477926800575469096694713785661127509899441332073108314322641083511252914387558597397141677194058941735655347347512145465537703706597495980177571873471687762096003513123855173658600164875830740620548136075626647062187333870133745964158584345573289834757135301093831976965221923624662760257218258205625186066192294647162630279779626026345920721525287120981339067679273950613658432141927495875965053871660621939188367958891278194627882643325618425445211025132683333662541293456986901239992984515038089402341543375817926967623372667648968821154072354635610045195090205530177532154261552273002833316244446209407094758557179066799370414773378173934175361863302921187397997408194508120450993723248105800888264984676668820838060903195636284251407803217052714051551731932096595576087884797946273685229022555227724130982080703007435188908014445882757639324418174652663943184700481956868428224783744841524022388218704929381488612045422570358033094313640663223659636933005266393442273471334945356856893946083494890396026406962291820178564557420216869076919985982849118430803279620847106674701189671410599244153166711458246030464309398970738658782597475279986880196046564747802161475731304455047528078546663697571921216907232072225662960139532132939328007892332350239273977745728538048808018566600742841099266877969264243819547533107212050557578690209231132015725345855070625148914722527769968588082856925770270896771051697393608153678126103150002037700814826138697761916605794931125554691994697766078251868737361533129826051407769150821709010167584728864231638184728631308483671433297060656157447537636024924028020922665194795077602428532499712155496314418210584041695611926810928869905875400704197055604858707322786273687820460673743241836193603945899355161421284642412260975998155184543324474336827051076043164867764792573844751597731964531765130419708917509849466176580175473476433321590105370686419316786773037415391427858257272449506527565952202450655921862528875698675678524301552205028748305024525665460556906049448675970823051237407906512152089572753243379974756101751251783481288142695257715249306676815219292888237768212231825983467205504264465094759036482348076423011827664907207242899912196258753855322053655589716312966460527700532294752253229696486564520447546633936907777389722427406270912735098697191508505753361216261525984829903880986094819168511756473435093812665726274947383329764035154675908355226713401039721411212634918992026407111312377725733423083429914858360424188569438143182794937894957512075659360103888914640161950062095479015740994793407465240530439082191320859555303399923390440371031699319033093148126251549953943318025856015825204704406736101352539579225074692924914891355106283558707988592254803145177833986450096224658657259679526902677440859606572425181420102265127559899470791997604865665107320079044012114024440588079969440062080556902246816181154500683908385073432270650342327189426730807288073577107680166142254237544831076372467442132582503934887075701014080701528426289033969538511993616327149127887780181649556661757117977149192284197591770090862441945473272387013889493893683508922881074541163250251612059265164612206438763882473790818809908088638580139302558274097698947239662052729285244792564907370386969779401549453040715273227677561215340036508145713411882391616529323189005906069766995261894033525719314714551682386704090356597924811065154236405563881650979992566219092492779122377935487251684033361472042336013296728037865488378266712676167919782714573087471496376285217676975199011564066495850366484007901483709282764756036632991739099257527265577784265263670168831947635177433392145969382919220724264777264351524319753053591018116585695389396487569632350970616570835289445345114490136249112957900141510451005039394248686243373481045722849326008986493282169834314076020461991661028764093120199982723213103697069235227673589438498078681898989213479256061534499046250944082306576292565551363915370417277235214648162289946257047124872150717391185861497212543831097818036736639091225252563597209702358304030713396875668370328204954633786443523828735571859929711401149236944108509720404774163047926043264534192902113698152163805729109866254341365168195278352308766709194136457844426372206415741029320719223028097045098735928416399975225142960021752413280342252807654008604202651201588375571213775727004276542521581544949446748409914704466493572738478358860016490209596313678739216161767049229428635518296227146247444067253765242397521014639270545606797258249739226093914039701864586863315552281041817369944218852950993869453553030502310692209124557172674762807309761124255237478907071254165769427238731473919018448229215010063366325417762727245311875083086811183699481454483005615986095165745483734778370548144887537542726805290633495830520731643864377649378933843709858419950708260768428711206002996306459322229764825378980277314442856741384445587859607545072515083839835143561553061036132567659892825307810244904272205256612387775930084960671214332164978509011012079467496282099960574214415824442649569611805564867545142182069122751474524788444276458481839561739559647984857125688255037888470536791520100584340655249761507704026882664968160775303104645293611969376625124964643986924716304555836181969117439742788517009562958119596834128726618113333111630253582108169149868792083124592692927860588815020893864306843979609414492755510000624324795608220842705043192540511487139441868370149705461340471410462678782236960779608268969425633396457264946794777988981068924570676679802025826780211157321595197625629846863767395040929169168217235966979060877802245151973898905380841391553611112082123413898302035965466494881820867385154974049446727354602895765057473458692379785835132355127077266819565821678720030002611400268758847927827018135736771344673710161092658784917635196782800926015932097284732605937912967799677533666280830881467581388922706900210950794448696313665549802200460422910079887010152999515389511766330425373905063519568185525866054082483464109894220037253583352092051763248106342113844918281314779796573488094020112230161564573279206357865954529392090050042615460611976421896034473281173350722120208247527828986098851417350509997010708856792557269032609471722297252589688366808694821888899847892850303888897604159320827978045084243792772017055090537026060098056140846113554910973308559360788414985178009314823100710997724405785275537048662709157626288851946182462970605417602263834087252348031909750406541437896285672469968603476101379685829845999477094893197225923864512295657068447404155653860350645120728725263336615050304514346717648754737010269136537992595934475930874595600399959245806885770771847186462616990469586088086317066773353363054845450543143526296326431754655084604264198428753443461444756326411708996167315713720663218858454187616424222364398199038353814243955933056888344949280889442772793296071261032602188633308709653477717321471804045037859196401129819573041898998371861975147826489963935068067428359141676337737016171735150358919466554012976982712442593400067079662159069723411372945050573047379039664017217559679634593084297868394950030711255337679891479121115286736567447526757184375095664720140681184062791941023106663886658985873471630814602614746361638152459203984314484646833464304517502038882440143951831255911001417338722228237430362307170658995955274228187855453606438298313307068661611094910522049315600799697215396838148209245024993113387007439189886719957024866366733427163809746027813793994264644972715691139470462275686913818372858346488670491392219772671064666615056145288240326536809311845192834620983333162379212301151095692518532666224679032511002243320211001027371270262090958981179432140209027509569255442202957283820124464464042578848225607210080987521045036438087770798692614751362037396213077878861202557581689685873967868706948845593509337156421472058844033020704858789846997630139769769295445879054332995974355369427470774510472743766038687346817722313681327839450262563006449220280325205757820233693118676825921211144130957418410369034411460729934168914122776549347073477258999805083458432948852624924196494733653455750028165791417762470061487961724800948276780097453449280210599002224504674703597992513174521454442919188630436508998460601350590656796742292177061947343635552061098100952257147321653848601332252803212498814507459466691060265038620392672449610543729771592843885755958693419764778961474904767281509208200865930819346981438493784902987276186943557623374806516967372260801436772364238340540611492791498613203423131069842212801389585019822783607048882607315432303254883613606599244855518954435476362369881923821598313375283727731773570729549883832053810747862052048627794388230057084708587364114053066487569126474095623675910455730964558305127605446990891149345230301753270237038346378752891012910142452102278788586334408779003267704654274996355016810888562942663524002944158712631759023266969922216535866279950319670704800922662538525873110149082333941905155532794961006480592024924199547772090965389736494845844399909434235805999953061397475275015448363375562716230068315411930039547252776388796679291233820558789453451025078461463346119461644285623310704977987025689965258666189415216824566009253452177341798574897217636009417983566926952906346531529181096545480627948784087198335699686780818594434277728366191352593236306023931036636733962690329535843403137394849442243998171446420754026349691422675563587297209862896793034096335532264307694430846632797092468906467731608780377167332500043722465518662214830306554494824101171778681701081048871264472671715866458823797924505023849344020366244011366745995933396838351535072086913026781263339336626450477658800187645630742922518910535000885322467176775417026330819559372188841833019034971315812634262234448837190542816460115913621007152966526143888422411984553736925889252304816063744156372884003725743507891444505802287272178352756527494060672467546381736087863468642911471724627709046293553032051933668156277587666542448495483837219581467666100296504735929117710358839824708227339765800930599690073611476301619474159874765706178306077783369206842939051008165445053081233589102972222503548993935051538238508601416579443765037790121707059377331194624114180177053225683897683379227839113060685244059941541169996210503610496276863794014677051345379877675029490099463774010853142372210523086485769395800603232749345507774541767519638495409753111134497173032313338554147728004171548727465429390194686794435634291465164834069645402965031209069640911902980796436867678777482856359783358556907664464092804130715860208263447426366061454863254825350167422950023544906058946797182769351271173950848171183392010194764297414040301270378827997514331991166023684886868365109747953026031034407871701638417366743578019309073138868523918154554678902715851481063832821834757498524751309269021014415845142318826108996390039775766005500629290238294316907587187998835953599452345286706001692292252342875058741517128104517263819804074882803044463173367820584514359081523288480267235432065344134126906283534698876797901253062861897516707899980691743294080297098797684155636016087767660807740043869134407562408678901124249523732375496891766787881000958828095286664765003767511095548529892448654754667072733020137256354742425811670573672596351848497182070222062070844381823189667407378220369276688056686453125122106819980663407855515107313293687122676662162119481177668407705355594780333137924466603436396144061032372322590929776762429918915261443211401215812904941568226466069422431021778030098479187738637160960804086052432132504629029697557441743741262445744692298824656911240529530568101366805935511804385443991793381143209502581459324303314312871255276473899457545857695226005389413762550806385406325055486554582313603642201670411431614512411528060380017720519747423208138131474628357029569587216071305327314267154119314922755919114366617221334927303103126088533067469375133128313556097677655133173840812106527296463167458887916568491028814610912239979403258361294072014104434313544064116142953402741061669947176573592654960987085818929065185565211413388386171152062606881550761979981588771636317742947342022201949991419426185319241498233531375754621881989461136334128064691387401647273536369394701676081615935495973946204846615231386633641331261252362027830754477509475651188032796827229204408828100767659296443628614813905879983682657605171676556745912752181051235949528755445780325957023819467955145341676211061850571887814010461724745402070430587938806131362253217013139546553605661149970631888742098632853359673238057669574335924926641891671561481842661279285001595601532859129245075441665841254409180259034358831507473763366944874623344177332338208808389569324366497336851234634120612830427004830548315502113634957597309874106133414551153101217556819106654328783758990255376206106843380147506733912480143589782215805266660256603194636252900413257885788925201696850760029026961145801007363797133282377851887987898417027681446691206275073241509331322322883154046091499850452673739836257799725204341953056863551099937023738176994636363644948889287238614146723036469915346870976305023234539296829452003906919948045216903013023371732819589014068346866078360283142751302005834401359647227443912575617878553511245360040066035586449280465042113062598404636956010134015810526529060646839703598739557126488065232864286977399702668117836134606369930597510305184827084349150437562300758299852379625595849203925946033653414480016624092258477055726620711403456020569511313995120322105069022383180851334945535555172914396750330884566686070700965033915622958274194480410184904845123890332136486308316989674830023854895269373602758216799596731573154507075303574413943036743170108714968188633364280760049470200558719714973317489292469887128998802079065944928547191042066276887786930926823569087133932961496617343757998046820238475901091386111552832644278164943502296021066109203309965494721508445589266988632651198472686360850935619094432269781268913056856343439200576289919613843735234598629131500920414986170362929218891556315750057914037881411601043851644030807108052348356275876971790808251263635266953059735349296265831829490731973609187626278674958194964293310767830990576280600353043192793937590890723261089470492791085458209976278294130216156908455709477893336412481193518997429903682762924186200610643721933528453990324563953993162172580797513130320437090984381237934296061936850984728493884733265705582819820391013791086311578210219392964546689951939105523469730231613627630128871499808266184707858891542644880040155147406930968577040382265114539482426869605768128251187135129665872817805462244570459205914460288329493756799412161665089804347418934374128260113171625112923821960867875976035576898544403557892825488334112674019466757820830444286388274206655154595200827442888945228797004600113853609849481134593945751720566244229243591149830896255395544312072004729871731967717149238601807735520353766139225992832522654373198633488403178906455060101134063554182290106682417126673926947169657482313363356983061983808263650478594551906199115853275629214130600450758138652648962125124286099315601506992276079397290779612192952288491664992495194847319279565134269798117421480771038954511047418334793414896293805139399040682962896577408076428508261676337762350397701218576060215846565754237599141213894455125447534814738299092352834837230122671603625360069864903650776043795061536537431004447818419761619787123697624233387081569629157840419428062142407568750509442542457357532374536164191688687149958170096345850836573364133038785659109829473934618910476477821688488075180459732159442644520467119551188165937331449770455004337347370882421392770921551604745630248481739473811967808542577948558910789587138631410915925271528496900022323645175241718155536789621534761912045609742907704490782625854168022250818947969503324401584379323448386161996731745074561068012593991086653446742226190228349970514103732327971616435253430261299249911362822726217904619678486926177227253146108594561939129409504671449821870896855156417373477676934779031716920411201189415484317179671086661833481958824069594429441342919476398652067140925673814954405323009673813660048327670360384942177645970079785965665349212975001071804964113475672283778924305451406460875964380054491508601852470159078242475484923022290976615520264189613350969478365325362542817698203774865163365533982399389944090895086099243710369551121867231207719394935866255942668175723115481719743628782964161726825098959589337437060380878843352769939636982360610235922836161289120675750604128106393538508422344207254706624775253150065565547548497945004275853693617720696803444334153523006608286397979125883638528936465103664769712890016011467943619238693504953733633939391122167213655757075658721193352164237069460900032666989224560399551609189728746256691272339156568763377823521815326147040418639373434413165674122271906447650597479191556521945586174050129626890280514082261057476040722939557661996154276231234101750229890268429358432929451501412346186188379836858126308627110846303673944763723796304014361962679457050217181948571719178341602568552395308049132311091284485918398840682958145915536081829834069227027106127830016820661905678470747923823630486161490825660939748784725019936209514980961294068642356224576071142380000405301589650303426252891848838485894032212466165123344009050111323313294820856003823641073545625487936056653332206721163403166988922641079273482218266007251438107318314360619752150960336197255708361865410108063390766247158989022529099805818997804519966719115078364511119922582323522210651800021676697880105368209918939675865036543894236876907239099328750554649098276074962121807648684643505392764814054357453479706478437449458451913527306984173377852323886667910470606109439545676232661948836773323403188635939405046948413298045686697976861969662038825018630076577357515742340520372623967862013692153604777051307254516162429723845074722188758066357761033051083032459073870940086673973779701314661928419973768940354648437804024611656311621288481453328018267385431167381061091807006097744149840170801107541869471328006774304598466537739745145282354476914093623058513165542870127178468333219835909774108402665018778138052949972036512947742689927552635966889430278138089034476598786224722292889884417153571478606388094104928997726749223800900460674903027608392398426331674855747407596056983936907848679908076014185343962461589556056941665343096249416621270141563162904438723941283240852127376413791090853244085625762493133780780988012340017845232455816728593627345960620155057856857765443614064793382959414252742739944016948061672863856764288908778135245695500549817618922927764690127951521309397669502954092272530032810088063443572646119496889478344340508693697348833660147728825687025538376857166298063686605587029523692029902220205018990052737315562409890739234940905905273258581779232048313443183088753361088073024955755571130595827786740055188921992463024869210030413433736736537265913185609214566030230317411519352692635636675237062484778882979618152104991375598617262432685129194902077671396999269061647072931012909811905938978736533876761636556106139386664161187164599457195641311539981982370099221671027761114205432367285043195594853276431678479465743215571869439902254360409786088975080102923559189549013920921360828322284944630601430520004863402743384035960535129140268569803095580818070657635529292369980817144512796107081734974719363928337337467946750686319613483177577024120065273083920973114595505323385095998975718850299759403403711454026857580224941029099956775108890804689494626438202468086528036500371073813593641173921285027038594732006000749003188811319760703896428740226639456694381388440503198500150392892940069158672289051026532854546080780168067705096916390914783069497995533779153576793761806145756868337046977706716400546991793128917017660210008942645695051392803924339984824181406264534467068094968445579729347417268606914813470822336195859813489495681665889643783801777356062715733617571474854259869171284108471721924465291374716769469013194941394565240514805473619222467298713783925210463258747002262376667772469960344321330968024139736513177260483035502464810889417135922717036603274806605630315642184816742654740612074503499448003116483229320313409148201997792633522933894684157800768617673234572883729435768418599891448622746394637487710124450350768025290408212695952386402086622490832699706336527377537807302675000628844246843990689544105927081481267475548827250556947645082845908143545563685483181592105636076437733224858687695819900314046653220184068874409262472030512104676156531305019227041660583473532130097187320018434310168639684648149053563566860578502844497363282162782130554837682392323619213631573388699927726798961997491988112903236948117474162726714160805600715500460189300822628039894774763104769524287164437027429309654469440504967112156026670652936098305986035196660994395931716184776810824119302234362198046769100423399020460337275956568831905757838009276718846084970303313412345746905835862474736656034654631295800936360897473243164399436669089966959455548032618794541318641030044636452792535808221384785486434055239164088124312706530675111894149275196811947449714561604066022287581070388325710179282080462100138424775418908093477536471264853088482210315986754806998422100962465783614007595314318308847756060382296768230127330497325569289672188169926888636182564594680845836576101863932487313422940187587398372134230867050596284111076852273322919336543920562565387216203793237640555373289575173882418299590347613928892218238063548199248331107205807967204262736924825874862308784992392927285331436964173503610369454611403089793164352473814083551654205924986709164251654988535886001252200229336449410811009577938856645624596498942034310112186562976493692394269436641179876470311507885857333593343950237343592453667326696247759513702728586970301524764026114754346547760360121647497693280490353394615466957159124800427553399350759171554117360777318723708632237004070473996850301181671835060542640152136624726703360114087719842452881113545682033455573747307252895990744145716455303975600841324199509354393743246412834056686463748250060231279125454314235131237687983861481257172593214484595251574979018287249849344626596611799759641683744722321411835076052102227141763887491241699613233318599412299512017891055268833215614057036120597595536108124427398649404936441122095648906863777544595874924964438500188361455644660227782466903080122925208355186796911136194150366894528536027446815684011746378200239301217689928593212490272186489458053997247320102531892193337894768513787537632159109589982949854702790882106670014937010960565355555645998121195050048505803695676476951179543250319067811609260790652511638008613702131754335277684934403632453096744117559424684726238993495682744021473683646723323990273205409090716308031912614415328454599354439679907070709673439407376941203358874396214839456723681229036079809230517047325765417587994279434294458770620605266310754090768174616803954262155139911566719484543463185054441826586014027541249056529798784097579186799303350481383583429359360935530874739957161411436337462984076814420189531021785310596388038820871696062352647253428730161615591104591574947381035440768028141814932267681177550885052479921913517696084027397484575735270379892378210307476101886133318333725397601439458307599085666267308054090327134923037673428871261052173690100814414327210182532383512780892237832968157529211759174150380656074975878089300487454272437983005931086422405321861221927637476602488766864632680707931300375568201794546096363601391504943023744994285275361182943145013660909526111779883794595248122482604106484335037379910283034888477335228081010880487098446489499642133764078012966371212285054981031187101436750305291417705221657595432106853569673223734651003268581762141374436840208940583315834678806222926650355497916723833260573732601632172954273567877990667619777839268723362561180795399037238181986820502399363332395748056044581953683035565275609947718108194210227326759203277400196600381395158254443961765684478811081217399611954478010720227453065234750304706842462313547691904209688510951388041904518779510139346596548698167994492046494673744714524567688605625395401589872665999201246574287149029991180960281223526597806517117748312236714907396110239064630747338821425038528578377836018061869351363835563511026070236459417867715864664360397945878358236727216533494740859364101487170857255470232106926310043830429179681788471453176781303704316322357635949512137852731478541030957545184828532865752624649449635894597118805409220039370137660442707066735935784014975205948544027568662561235157220640912683807526059158522763012813054677490690056069892342220860409134073161349173426723627767528421263063221819994252319111149077006249333203499697429718429580168253666091904991876854134419012943170066089673697677040618469737803761125186608251672376152985921838075643965254799406246202898101340644278096491492468667038024599126223821922398409311671713700092060842225020995165754871797482671825147889268372259287988880401501970805517938393492849377139215381466074936429589137059832543642188010568305231723406626144946717393402849329970734520992587070476197032456527878345246256081712052769394149239236634958331716653944567926651313835928388198119623792462275623464294094313967619252019646931758363027717801188015068974152222095618462252046155305041962872043793697116529814095711420253121176784945429400114100343816530359025955181388218525896222491358087045629848300045201298243071680995432033681802423418657348403438420260910398506285304097261499129181488152516001011433706013981236450589893320506843624308375565794758022229682637629341792827101282972332711613642442390392387503405266931489591393275662714418754631356546966517071278813698635862591193130874116162104663706223836636601479456351378714417275142539506694537876369006361840222302499959965693875049208513679832479403024113518535959139789662146455315718152879314446513287755355678200007364981230251981922619002610307163903804323117838495943953637041641058923727162179376825804847829719995933041193521533431725935218775272821801703681501464657354323140434734517351231939475199782745073355926352880269651869773370855138562217753592981766130228804057178287701648975882421949912505240722269534556829424145262359477859148006217973049665145037864040418507049476948233034112753917802833554155399191865417814426846906801598090092712617635660132523177030707154313404008416042864695659003606336457211647958514685685217389357950498533584792765450560190572451289641426596627125843284127183943294762086332201926539744589910528687081008186898269839409044310560927396780248826284322794685005008881696514887920406810367255833996087300023316911298475361103692341264315955899699215703919300813305868734863953335807405084547948160711787543454251388490360427473269262767733590213554160058959914456638507684615147422144201484508522854944119187550176816809004416880545195559177199348940126468808132596522227915854765422498373498793461616513912390346665388395521284352350928134539939397787671528114588582741559089391224456457883505496153962303912009842986328564046508941416129871656987811513730212416791120262265940501368105945769957952730041512716836869501615642028787694364124628813188086316686674200962172496921944132309833353809577410570860386268994171344976418275841011693647893857449651679591828236823189629484877507375704507051255484147473333768338743772905276775759257300417963224949408954378556662237879862603922902152065768113417917735929455151988980216074720861138054570237433708891491324731025221006460701452365480419236922569117550787670652337021338435030137326870068717310025159105570130032556171160312663060814091826024924643555039851229087718337702482488756832072515820884809365276751997033908109153489636449026969992389855738224457372395663031036299054638207676426989522900070560134906055128626634613180323102535684338473506783354120033405527838430359724178183091821220181914271308540817468188816695907943808046101899945976176304064163038160202148877855079918939467863189261834588082284616822056094799789847437453770028078144711557711748968880410934540722300706856983286671619262189214095257339849940134518907147698487853191963166767945368506266573641078821760747618545315055627923009553116557941975856054822043645990671770724645315417516318425879400065421686510594282896701365603192363709734022552025159209369561335935685970232349034502540476955916818382080368198189416592822986555872789297882509077835874605655272343544601160137041822094644689582927551123633837262627111871560569364016233001747226736457681602997957699833556439802840438032344995416389048662838890966599484901059135678492118653248411472846870909690617571802520991434833446193799734544207340853488718159090357230599477420864152422332674080614998648933285788901981297691085175386999562743889863054198567906611444276171558573802911968886611565623096572637497933590354423233181744783197475745692418332114249391232889617055096959961674559905607887538376121118906089691262300374986321158839715832964367322516054581328674554753009516312357234253679379549133192803523033754942825265317704387781860829515972332581371171060288173681614811838422734730131549120309442931598790558565569077461983746589098472860124913293425057329913144850704006717653556721421585949538218993901063545498599470923550173701452365268603499082629466940774845514919980636910512284526719658853192804741523871639046243318142398535368810091595893863848429734231844866322203659556818032982433114384301052300159620482269240578731788706399866480174245327035556435479441495743282088080688846233019087124192577887420546440355257736955285497392388071669206776568097034057528359366939477842504084857608081324967258522586142346438985244875796052489554637595590017109649817517772537548413339467179563611911991569645676724420220265826964460090012005520126815707168705924594833841438401806533455200390723588616279411043453769263777562894512911420520204072549169234953208958835821627351500943641531914797422309286548549124885092410785850691203455609252276516082832450763541044105272466855084043888731002195017502192388994358056595599442606628710054371896427863280313555879517820595093826970864268927898309099497313805280530430304736966309685693796175460121556538694857766346243507229419700697533151680087588321997685035191887010873142795493664787147951709552665706230543452592721727801484714547140929946839917364800726482147708277206381163267495240568193240137647221797629077279318047228552958560894025531828651656048458961155925458990215940536633478819195995887686747222902751208202876952666711100053873064626997505555409682874705937776908911809807046052581954375945230761504539649570256932636713134644100622072577914454945181082440719519670422324006470963448127717689535594850647016676847587630161939269981031962156063083670765005473407856942624144893509113905130234787059974990220575919306090282292082641829637638924174798000846991538920557139076333817394208311252960287581932982527007191826072175027658024067687576164508180073203511838626437930944131630519537812438036808573157230644463177225394944261638015164865660385857288537854845632016019713745036741116959353952393872249400899371977779901545205285295977998467421810518137511659553298560296232672589558589304131437635057070984773709928709859511268039782668767772008719806351627125684190803341768526447107753061380858872557524523233950565442239888876373960659809323809557366584768513551944558284211034721661848814428932405077835797741410111967934375454876210157696060542427762367635901729875165228179552998172372515907430260122136626403429006931817228814184738590117224645779596112291389635719197919060638379518025026741631396817212936152499854814216413902887707738151368674398034239740602093389785905864006061993966533624806696158753586001107464180094950250005496069742821884990673091626599845536302250422784472309803402954506660994193827554483476044267708390469557903849941911217542448281730488540300784801333807278990592476012234556020164683366468458508945715629402321644619274108044014710332943472828074607987758435696384016980663508902284167211589517658773057858402927800456632771993714645456473702293599783116090262102039794295762184414063081908240334714492424974904201706936236547024549279406168499720283762053632629961479952212442883637446367742338863857607465399269584389063869023836142963843428097239297725724042058781279103591531507358115798869240218813607577866669285594332571361759552150327474793534971706705548830399599940672327256024992468782844165860251165761816862620865717404344373373868532505886068238448148226433652844110534517280687002534984122309773884649074076782784633008519886197273471688227502941245381610155549796646962447606977517535918420062372924742218409723757489300518473626468813408513884764966181431434381814394673803403187394144928313244051308602787268844256613966066809861877160157997472537200309794908876312860713412182301700093124511243133672461396973135203294237528892873213383126245799714103371114398704792704009598811116561350218810150621245159937164616784396461060323602511508621590246130781907956688500539084511319479322238352185362429192396997501812610877435628700936409353902224996332434274505563668453589159810722109459390323793439614361562773469237126664131872549231014665859480157983034949900831802806041405757917681555860173525627036927026921555330138468591186878037363937109632081699999924444817285078522129018130940614930146009498197517322300251494167094976814822890846890643712172100966758440465769526342393672032011870263671907416748990054017949092661337885787313385496611852439992910322281929005441404444466299377581715475939972353287924213242764939262458299254133956379219543299412271873702108409821743897674208368436393981906053160974869233623351813152320729732664063993703100402731450932883674535543420500110727328170939338783675145054512065465738008244844784440863738366672702033140439459117666207207666847997149602882532336374807124222328870563853678574225868329006918141106238987148594198725972890290295524635204910230994938664511518888368340513421745974988318765057629709194399757165929220019164892382240103590120309437447478547283267373550951837634507589834979419344032995041572853423934994731715398126603613884454554925531669296622251620144371795350367598277240324528288801251530010689547660939777911022633640598734200771394792772561528326232836029091642083748054678730519857721684448548754179028651531321959897541841806902735283945808953785230216695350241849800930365180233242839566789160807022110543856446844542540274693884941779877854791612125956942302067317182804892421938256422277398100233739525683585552417365764419153837733127201958381703408441403866411968316164572497689417152069893954196630125600975405950309235975499300791406957161171096972002602547141430533057173423583240075520583860283438020905044547405530729180848317286503711288019506663062390204439770109381292791761180017855293464677095909071265418619242857413663798362589964773488390713978259372418133644663389095459319034871077666320832779118504643178948571771632635188133175206053088717736832160855839525673371673088836992108717191961542122034895908915065019073921419564489611618043951212677279455857573149414220654944873958531180764196426722793640056949023035039797754504403827415949279596601993112846511568437874210301505883545653744561463977072107331546196539779727791762767032157733463086117490122564909188030956802276124784309767947702142876208935401432907490110378859961883456064691019259788649097854743338703439286537056053847211030722415000298693057355882909294641811487008202331949832987924027323068260003957179957745342216741545252229559035402012034215869160533476118030499408042908778810568713427307761302674362699019405625084920749590779377134396307430149724196426794759021063533527882599700469589614132471115788827242217136424072211178772860624571525529546159249498074251696188889948603851880729931263081723844533043723740712477933672072843728709048810154893477620305903043906318198449830093774817632856674324812754970948907691026597163307514572166158338969566853013039301876009690232740613020463142863295745572408143406556726426177342781782907310625181316130551516683457737285060706365907714970530155094342057415787829721392149051335907454554527652079806756890378567784510545205355373830565805010569743636471714744673838146315853258139906682047873950457617764843124452643710868230724720686328606029956313641666389717022142677915702084833799143430214583386389274270166707537180487245140492316595929172628119607072382995292020505733718845649336744858161388593649655777736973262872732593611274038203362094642454936763922253476558816724627720875161639298567120460348139361039839478645604363382782838379053131621883918408466458221353946557249989679669344171946796855789213184515211225950327877756173515158780673112135579248403975753921980833837110795739821755188526543197990870501634221358961314416265433334715771565788474505607032730446209135516140386860264194875333422007717292235019762780503610120449526101927843506269473302980492247883274822065923896797413618805900799189350279908879078126372433783172418688429463850894628501266946487910399710933636784805403598229180320823701160573170648730006330426913328452085154738948776093599449209079557912386827899212806656623293714739650067083808135938706531321731270385893154867693487273051608183006441536391789533902100579052698826980071264287913941318048139881968908128512817269025061642110104099449453337621745128781486205865058489292239579344424848600502635546529039330388430199479709605188728686541310466132697398193910724650187804557521569283937746618489077828746480582242018890193678713705409802371979894297878520982853496580357938035287018686400618477556135303261705906572516230031431801767827287732721519488484329710655984567531714930976719989929670993725684196000304984140254951708019679667720635454935899151848864394806750551891632076959862699082092978958581998483959559154953648852762444530897959523346398390951952353322888872068486924716990805255563082112214724731132049419637449513823133596175107315485830985053994545056720949080292821448629928176785539595808137135428054037516174883580945224792858684393801229029683324748565746485937828000540638987076693205651815028232787014652460594959856202642854299229805950528084815345201977694576253647579787255722762189898771644865610518609652997947898032360049483982609834477795173128951961668087329685360226996850419955931073524629065095119371394822617683956416138079349621583205495381220449930451556076193832867181234407442398622850142671127846578583530267423135440928280946372098556014202217810966826598413807834759209387185093278230000254256099906895108157424729103556518758121209269628008275968466668626420542164983364516714047948080836681328315744408555470748894484636746567621240587074688214840351380308764958138236697096642080429534367768872776192870561186042147576573803262244038069186696603812621431688858927797131666447438925534620047994002522772589281901553233167255839099928575543156236356221803057596522926618967449374535246482236438254587807173166168125926195315045534371493447249147995998105232932785491557106582270377703797570717207926816209209247554607343664876609244320320101507419133711558141571319231892053642956736332853929649571735160347806591363189997806603569302510617217813930576507486683138154629287757237049065286823247705956452123481226469161114693413880988903511948060777889157151572220851542614187133605581405583936187302557232191168398288632137998100938635086381964758021908953750777567167902674438161810369501893794852178491493061371928624823025443908193949379881582101480311328075975099300159673068717140891335509856660682400542038611259707262180118246553962157730302037187940661478380561701349693448145194607930055263125593723255178843381218242425997065860087391329509145125319179937971330340733483582646900736695211100909102868236917021614397027529292954271422576793878052389607706607296192093395083996860658274620474277644384238673907335355665033793576389346610757797963077532551760073560663798088743791827075160822566082925951822023325287090834372524756947469162129156793025384927529005729891468252370894375089356750500470119030777842775327943966502434298309996873704455660737216840515028431417047452348907919566533112088852465922541220594046932397501856888740242324847841057286739539102793021261000253523915191771566140092810238650705485138873967624045172939185905222152978909823126599476934168296594678059511728609020221751045338634377485191509827250737474651630303461005069114217954152946552092158756015762330547498884078565941789035159251193960915787189614476051211245800494260635993800296395603689109389839775238268140210382576609845247297881185553227660656416925673316891490751429138688696423400857948490442216450060223159046888047002110391905230516153728925763228731133147635124340246541346798681962717031280783174842509522207852471793296992016917229782675053890303985393304198417697644002815157102359683669580471717956202834623098212106425031980481415146570813662250227489267073669275564287432021527575470781322922831016122905394931092251221947495798964376398175654369446171915577892977045404650456722873382854343611381625168779838302944522184154993259947072325506263979316074934062388355962505791613600289339197216645137651735362352174223557145806836917712513570263025147877178348547494942825034695701067652244148237419520297002942890105575317834076175731525540610824654494196473061151064180826333550697204148113747558721348383087062524479283653240463402163886515222013996978712367083757827271820821216692647918946725456171511409873433388708072697182927472306335179189556169694984243626402929113893422472191087540424257663750477891211028874479721567142529830637645040194076922251681205162511536651612636851053569662865866682370282220851711166487652360828683880937632093783774791981086511583712041837305391627163237506494041081004218463172751569817231997845024955427841633216339550448069183217898793642562477247882277914759260036669048612606822846358577382264984139065674860449955296405100759784407734331273940297739264648813379415682473176637321703678766765872924844964639596958270455155696737897942893634197892239418765799280856149068652453178060600495363235953116381208689971644906532011716888654074232434755912565567189571225545461926862571611532512979850727352591362739180821689484821710272021770718160523635194192988956590275690480805560969372293172056759631651266582558123168070261594719291606161906254779427224064444243263010528502281550633651677073316853600784978829499529839478744829186325398306072129901218698918206036718734323500579265653171640391305936658934524216791571971812426975903077505189934400001033625306374793611793207818399830376707090016358549887971970832345688479186087729852330735155314152480028434241586926744516787255130700246340256817263651359867880914964841548869841296553207284721910447472750960769615959563984404951615046339504853735546054432178478492488435788848937706140079445089361838985727034764901584547144843278001711347071334797875450877965472886045736918528043528097457442001209915451372598354613806987715046483919130367327040486943439726110223903624653107686141984066512931376385772427993332551284279968870026749587843172324309309381837451895758463557416554457828610163415642393697213994534157759221849992386405194219812027692854436234594529268410213960369013469162304130171409805011290165896852307745151410191797586753969281626654992585019842404446855192237901249507076109024567324699573207747905022215762307153071390234722373275752236866021468830848122456033668664460261839112342266011156513339479766115245867752200896044327871487945694421345972262621164237578061235478398460156197588623550453673287959438742966330050935946631581390689793066976934197600326169288829112470395746750086063146403009432999432188133504345544018564372843201412098115507609609925812374980666958749997472442763473090916905434944598307606015636540555619919377551047566906253666310781375729994313726745966201445649159931882987371040005753338123971627891774342782484028683995521153247540158765162293434767268225867695949752179338397219010184084243173689376226345735715163578946528776486802500327892356424491706750880822500980238375525097487000271243757325771320915664545039796281188833349031136802924730013878045722095056578248377140262534293200441332287594691988872616903329260119421755736810989022378921536642198894586952472660630643055225887965881826804280921500412626613714362896341605840602806275882179069170221848814874393289079528366917707759121316231724254919087809144754222939511013025471390796372782587037438467933044279901826079982147119397567745317394522711522052207394451014436065208507317346587373015887983792265655753180483247273078566959164544450525793053887827495871689432592215773236958366301836875786247669319775846160016021067675345931496874550149761196485793889019715815374786776408464624861604664413181437675416977118121294382988987374955961891808257343624515664039963156644918747282509352603052311848907333755983161069349965297986895572314275517858328200452318450621830749965433472403202474102420004959128073161179307745300679743671616827692479179384720229449385959721903600857873701901607992758267426882501178237823445687137049829338850591310445566086294790940877234832824763863341931129797014568783274366000541026472941561317836165356203603510021581567840910680986648017667070365913033622908860727309905153010874290465454172700269027516330863659480945933019413930655198234696650518788040000678758841116628365579094226265331658580569019856437106018450455892248124981184936933605128656939961483499220791696864729560887695216387943187810111872264797447907601053839811080382861988997457920971517084777552200528192860496088590347059762343181288809766120578606339518768859557180766880589880588685267011025332134326909512206894888882905328995787566290387277335840083459938375469545629149716924595064942391806543757473564908290143369293123888855044261994555338676067129502381462552893389138820231618544654683053467067970607437769650102681213591560841983836112099421150894217600784551700699743392295525752868684086349146559290293254332978294861102411817071782467750605665563308775570359992407720887099977295946791759063111270653187949967440556726527707369310045525605250660965210236751035832392623671103515094092710907911688252956380558033690350552604701251158415100602348137210094785005814932339936178926683156668909344246263373216301494521063220566713420323391949522833530623483755726994811938919673462590434335728676796552765028679412670842478667559297031744784426234066181279059139632086649763827241462758148462051948699532186883067505232226186741738347820175488064065454298678951715842690340463603702198519388570535685759050542388082289453833409788305826994931551269426814556837964078991425477955786083345418244639628754714896408046156111397235386143353113927607374224100871406992698697902042377012520618470282009749610605507566401454436126055206744879149820574130909725221767861666230753850048984557465346172283660797177665847209113861114663106760102927530969698051420141104136205825408597240201591781244322238230162861117374793746791967117636132272849496982226226886808231536944663890167226636207499113260854001139752181050243741224931935398435783614220093378505219598282193199049922872121831140720925329811212930476885777513735386779080425988414573390520315408108995694855790525283703940605621160931905207706759308465223174275009259594373639680663180688471169762086336391313267415959790115175653992645794579964699299335560071205325521779616189936467483012485378549236045529970255963352884305072186847544263206203876359527554727185503600259514987111062372109850618612108902591941926260699866341131568954248433980879440671995835965633440222860256179908663758610340394477319711071621708925961661594739041057954872884820419295695896450543874676245146376961235995678415475646453803474751991169390214944523947119080288928173106098454800633838323555050734760155593091872166196967281596737484406452706163457150217496392589237946694396910632230706085224300276350937518076316630577811083787799685261712606747895353069648124330298608916156786044127345161089229670904332555505176762843023516819727525502405960070168004826284001498924017287203140182401439830369259959527325542424426929661522359702093377782853624276645102156861441591997220245850614965347627856906064740562891114642805359423180711075603476203934028320594740102312572484666103672531148049104914710261997018109311948303060337400672936270408630951584859897176524361118640762004707208553908337499400314327898821219401654557376854398389071754650892497378344739755770506066281111550008004580175445673261439434368163469224589013719735826558140581022877948553853605882511044005854938548200638381626335439891925364509004286538098612116621767285954551672836193096389150627553594966225063714575146814694080338877066828392292664754874206901202061519803246482333087997376743910850299878089330069371588882539709674137548789860873729654806207722544074495636706890061578137014485091740394547234281740221835384329446067939877001641593104964353317003527739983409627099507473808606497692038199152008746373321717929974047299639321803528950174538169831044341890487062171009496676170165503541356347664118895497710913610789771346947472708763822287416736431506943128604733417296075259534672222800287740321344518171140583441398484360299243640234666670035230525669478260591129998213101008878827445952626291052681741221133006707442231910491335731030751348798513111393294818662720606926208184198684354243914264224752722476811629176110858857410790609567758661047658015760921483251461330142281652358728066685167332454957403853123656153502695355443379319011169219073393715550762163359117248805255274637718308721899129340023393757409908560409488523382120175720725633606190907542975267570246903820546861219186186910854159069551838029449201076200076161407792614255108119810360568669143912944872793135031004805101810320434003237763798631058003253719453513644954635302727916875262774470038384968326562833900012564706335642857923874510034721725541839121801776427324954630787877154993323124078459236102010351630582530301006741751012893036526705101578725885066906658192760738003306318047758764867137351477931591622465034697144999755199707056105619779493706342014189232771528553919823282418962232706188089098891633389302987112929901394513742473084516370382908723058339997470100308298208894321049915612823013839157429577959159082953212793206412458586037706375608486615682755079641981642129807852343468254512805765283905121673841829995258449338507567695395376193165393712837253708122349956979535763049770711370428381178236372484495930952729133895149275881085490053575405116603944078453962804019737144806729685278220670639637035479639822734799524983188919447505956604329986584349905564112208147349663229803901043719276997311048182959065537466435768343838050347293986603196977894480628858875645685207649482026097767517991028562365982708672820607964467957062573407089365584759526550838096486540092973083172261015934069971846960631357331600455134327704066576722554416647148481784510454976069959724682091578233548320974290941866289648321289565394776146433873589164268734447321479654637622235843468376752130453154002430222449030162298969714119001479987171469959102138310565821385938047530538771839440261633717264790845193960796322511517549602875241402485436051433988477699466011668780381702564702440206495875009514894072890904707950798251057380210647198042324307992152517428609950561061874596728134371409266474112133576270135283062403534080727277267394135888738560144933852202153707867994893996155360186709323583222169684784817321734600500948999115279513591772601223150017726615544480190913211911031685697119545722214292031430710522751854536563444468156357984380583814203191582721231861415608876681967481555528531552017110517767252959838288506933119950476914356549060257488510650306904874638565984540753524476245348694238634063344151573102094785472808008519410929371308411712886485539202381710565378086816509024813612442895374495223754867056886894177432946353143901028993431641692434693663297813274087892789118455362305000825724147799669761786148608361693525898448906690745176502485931123632662431213904196258033978403637333999457681259400671622412851823242491665283370170895185635442312839435631145036899658542395895791664870566243503286235462765910079367523965017092910255572484527987605423787663064404037381144827101343117886015304491477569593506599694091808085105080479621780835442177303937904165147027198199451711593244417273172487606525990545318680816535392104808484646103402512860595980054673014459543842201972250431422173623510457437506981544844199380978350255700720202246233147088857694097756349318939455187262703938055831971704936609196879275381170802995842143173975874831614336366784481117157157651272507296647503544924266549807826547094633096802412706244385590596627230143442174912428389083600940796759738561033364883849087057230425036856293272634621667507945159810421389299934376023304444420339140480715812887510551698759395628828400045984861259591887608718344832827638623402234215873061828139335153583383790288455343435719931476729619082715449327404217662802326512225085669546707183661937353546974827407705901216802600885401366361491542923160084965177101326611665038785219816253888821074538829220015950933865314745521245295042735513688439654459324528885092549907751559723615504169480695486180505360864907208911605436520031523324491625202070046778461702034872360485704013240489187035774121503865576887280005649841823739042856177074243118856755820209076731759361630705569491359718767119001802057514888398789576464659400244539894549240759677658443784384613400552942749630390679794667376861286614931965768194714824953909882312878373033331015363464238875131128807457939629751018890640656169709745974257925772600255034274263714574699024933315591128546061943551214616138745493664545274591861906621787260863016906995852002221396277380446059717063943496470449163127898358218581786416557437507829002841163915834220642982123722229620412091958176444757639592152224356679828877380227138191899092632670577333335627941323686500826797819170472326960917645375007222377276051711283366313815209090445331491367014988550658710180510844609120724619553577479617071098621676018548208231876292628203007211152991880635742001236838249976937143341467176341571876332324325821748189439120614385277658410197818177429836130506738395795852107072757837935837346373837590138984855270461657058816463944782401737434454720687846849594652557374871442794452990758150295254352455403129594644198360915953904163421416052809927112048310189379265039838956533187465347311192534161034045883187970509854929623928465601118728925428721519435050805383067641491947221746869167597028837912173649853227959259445729427661361834156750691671871303267418997003960429693405108695393772156840367313754253838317297847715246794893320700299591814235268662267232630935034736764175321812078829169211434764756873939476699245488757856339266653519895104649845179677405329453389088705397718819985331502453543157340098297683878862175471133327493664576241056272229286802926748082643694989611815417627880742030170814503404733429406003313242853921599963381969964024203511813705980616553083360370711468651383617030506037243878432233024404345333453762379388052810731642204662183086481102989114024846558213497692061917954968925731247354235906458455107309394914806079604430841498406995440537759920295024689654102576671991679891378915863489187184534530719197180900977496421181852627609197918324846323966618404606966552686538450412246206587231041919689998018916558617094843043226210972951014570322543433552998097155648897932840100807280693727051365487838307920229192448623470188323953427284281712432181578561216724655220083135279662892117019261434188371862313672861622660120809160281431176532497080886172598609596930827867611491870875373847887302195152582048760505564403754002923789632289948740766180322770801506637819082773131575784657079726386605226140046302551596334958500357037366478634484220427239918321167547407925260388878782983560292467075763551185899430344731187805351719021151691877259525664388701587083820786625452293115356902802693808830622254761573167602260130808961255711640462101212523152901949961356281327991900418001186047517303503635515564823678333106183725416449783654700531612273834541192547909199362655493074836720460297387295794454654018059932916166847311471925901627436817292863791286478221079575696295676290853746440359887821757858955055169162970283018719688680802702137388966456650897103963614390709647212937220361607707199057944169748858959171494274288325195296321097327825547946392606476488376740552874202980280858488318037103168201585335651405523434124856760703830412037245105344197984277205731594427414464783595232616428274354140667649415986848716348570069707864886030499946055339443597540549159453739793955329090234731793203223054464214454999025488131464579576125147873559647916947802734561706684419435341600004177953190664848298550744254973716319617000175614247927723439730416597112745051383272923456211077941486480054610234313973528819584698734528716627524775527323331615270307647375247063403517808830546081056451097328468942078282753719967965721404009007554035555318320507968412951598394624020211620977862335665604930177683568666004529734828016730380732489376108789006377327258747850244791214989998407871348971575132548069157150848170072885581070642372309195121959229581700383007397592265185637233520341596786416687685725471133892283976515711338782631613469690425376820774563544583372606083666562246844542199862051741088200209266864499569141599425207803090059095458356307152902890398182773099141136020425877032483033827271811450127525344224648511192532296234142406066098320937887615982525658495151801193224399774688464146187469328325979552922508957303994053413678268415089967486215355279700150111825681450546968119050695231322918215613545888315495074120018637573747380996584124309236135812213134593727589099286993364025435056296814224766009758720122754537328039297286179041927657923783019482087810722353520963792521705957694350333926044480366144063829057065098615551472836914013010428143032719801775673214915535784671344724181634425218580859209168657019065842098249089776776742306325095327115663080639839406579368089869528345312755449197041377736439192102878964290401334032191684145021625366704426078890548013831256991590090004738083332116103379286325852727278909889330852156782489665944848449186734186651444188227816876724089389027782188947370565344988679125784622409547795285674035650385758349269001865954205375125823215380651652149977027406246760707977718877398118857662254402755073237226914671729609732225996940595942413743299522623456928124166270818598235792296025099001886486027072770247163005868319827333417927337383731799408038476124364479623799124743908112795840361041454654485254510236133345619694625236409440673424447652318742076866482809766902726139922450004716841396632530485584605199995388337916644860599631480640011533831528223547091464442810934206886530642451472631793133957619974286349808868306263168478678402761535758501302039477684807860544344568477185444170922782041323047610176869799513735185831426797536136345606486013446838692871410765177979037245479207211980797376487833526940952631409022916560036111544979815008843999265406541020001951370353776839179047170824178254644054935461310321753670087989818220590837952778062025537511457576004235751222528113356397892276471104468537279546371206044445047119964258667082993222041231460103490750471358090650248200465574331280161816849245742575276018153710494781257364178532254594294004601509823843676745926993155901254230278524860769753189963207104600846930117805919270506755282446869181509712747057279612990435310647758158589838450583393333974137146494435052241033255093502713465960341833561870252698574854945480491656054671923671253357629299186146957614214623705935486720097737722836424485980190536030842571405784246751794163728560146222504209485470223261707512678940187398614937097382517166477815028115768958198277388008727731666829530587085347600509245153848185744482797616103337457830998185177477148088058929093030910371008019684993510845131581579463628595499787518019395887953964507354134777561325686777405883799812247141329171458778506927480519502333931267439825423491291846781674503835642352488053710941865887500948526369870253896903537846750759205638216842039206809168739693307144287123183760207744347255684236772036825146091577517841541021849614584274465361468176668912679614220405277985234373285286435742432204866787424018859444138930249726366257418332222235239109860936771331382083231865056176437068267544217911533576188031292995276116736614898108690702106102360365520376453506587161180885182961457761112549474456432312657973088540361871633275807229626825990347083510168843667302378432103915139280728642172250293165132088655401158552937453281215762330046081567223932170610173301730663677764820366652023094121176155475667471944823434979379974678364486947267965960448717468937428418084908164707751877737722752016698842565797417487166141841851678774361862203292379706606334228891831659806411335515660590134965036122656499897787052471877371241548669877132086287397076144852101243168835303547443809725604023606116982082551598593512375905705275785914492423205124713012850187085711976928306234933423759053069154919418314411958768200158811583380441198694451919322445235830553837456717884064959155632381223742427283606359865506672010667717967835215258758509967269018591435293454672447882596164412938857765734768414020387051017100777132630955086031564602767933147154848434961708032197959275942284170069166713202644707161393611457662314965387008350147982053125925720913268586909807383381782432901651736194423044241663643777784124763033462985178854410881047476218531330755086921017292423529920763331030428345965142922156640365885586661001263963953641355547873391177412091516991421587446313409677438532969967676145939037977376644490823551953549268283069322470577369939476635865210749047313067215327898441645966574978525598877251000383331660805120863448211800268632300674549931840139910974480160089293381758863507530599440877553014799107430559087490630297791734049836819966308348686942211489463141744729849063108519129774619390048116127704104892763297565091997856111810628089013333074699243287414513684278607728605532363366935770980045349197143914763292585733015528343556974103475813027451826070271353132261694962426626827233250976749882009361350264412121460551209752639850917676096306883762884297236548719713821559365414077366323473103485811350910208706372001994930912765382955722914675144127222117150229470545985426091155390452747665755829477571719041480868266040707988913017240080624540935798446475809512479568695094142997003718605989852027280638446720690765344907104154415891875599884668229210506761209064355719660611867287311289672736544979699421663567968395869718630307268012201027575789239924329930963721046156491821560404470858856692836452032661084146989714982874166518845187385555623937565046464434139247745584537542392916862916467296743190371483590261218856350583771179588651669199082497370953491541504785883974505821443842187492083969817349333339182376856914942316697681606119527623834304600738315849766101284494003544121271032922633025519038284196875990195155239333311714216147630747367058344376782858241281560435322263754278015393858707051602797627321319519512738028311540119032463804787048390084882169662874005810629303811394496658017393110279021899213691900280408323722455007237621881256188737940104510917029444987714698390932287355962748214360579844086982385771880430485543598472489437826912825579072135208382422657118193367469320506244324415363889743955473915279715370069613596825636299758331830062089941871693719682468777439835550309168396078468864025225107790535213632865742583013442212844191408213873512757257922672874205967901829888232694221335866221107593226610611792855144819439385691750080971106765954492319074322327505317342239397292329395309358210526854875011286042396262943367012423746680707542610392543783661862604424859180879749196249387003284777349066167291957886406703496002528530192183069019983909805192299374783701083630763138714373924581175731012012557834838663294698218488767847976243706789207203093697257948913376311451608738439488228153029104526381828318105062816999547851336287911377702249333789222260529104674115483532850292986979763689266701074826897804196854752703146937483677778918311326814145249720404633568816043032550846200441077979211691432532943565260613310177815008593433825671236227102980910174188546996752917021770762034987262885244965602264327956362675670703990511665618769254775981479591464763162137792757456571378586291687699002215835343242615457914490765455104835977346921787748041517401272309823573967349098379697053662771796139040853639977590743144548240944794624612022042208394611860354577910917920983971481510925907376612695477929380305214626304296649743207237073109432246953943895869122581002125248099567033899629239027078904374475566033172359939598814133085286856749336289256361710421196344846872445245845508537138495126026789924801584631197388229919555914084508658003423012235358577585393610240478404557257039351650621534959057044334715028023018830962858389313691982895589822523930741754645410853967003282839657250305177391136816752680416528026509420622038940786643589473939478963193027378214396549573931881335693098825467849433745273095314312538543684102146081028252893970109351631435059539130399035354841312068868857744883425296544838612496319717481592342810534353490415125175595571042065803284414178747259738247796488519679179193489197548481582887767450809123900321124624662292154928275500758625545983743938113374564934860860629311553646965409208637389658558487661522247556026562677471306917215566309008352339542957169568149382531049144448392895095854805364765177369750169139205316235971538705615393495522857220639816051751540631412708642443816444749014488143038790080562650773686668097800726068974281919963557997980713892458831239989263654022330405154727303324742400162366668837952341015977637568840427759653564172882857664879184998748064596750104875719698376843829135434511968063342687177024262137603716838404874493910978940769883904929289759797428243515121564671263010495193323173971927567522052051000293531713639035923226234672106615310047289704079532956449729134655484654867550358812516864660151558559011032274750995338549792217790938818795266062274457295034859189385252602306175050889104388146758682397704804296308239767678837212614283671320722085692268311890720529609672340639646489886432510275210355069419912412654019918548339220280944440768314775909735528794938480166997460830671608681511989457863285168165302941216398785100481468761412976575059734143316454919266184368554206315210011764062949493569837825623487828167882660428354384537637264419652058472717857428829480371522018732214039343011247276495127629678659175343595782230599667063340928605590419326001008595544680234462650041205803081087527529747002863610308511872681135269371413084053531397212570128509583248055745301019686680318958866038317922229398633279428667790851553994485280056683667872374272869705973115759797537088382986296839905651010655588741503320070882569878815685924235574275815295717742649454506325173913631923471504299430126353135768885123405178067532761926979623325731780013732156281360701639218931970799362370629018274401101009191082262207906020247343157734762902564495088135915526913266477660582375397561136460129329613472645478494840209149474352107676957021597300576090050207315726171382408749115374920260014341492889665042210160767732298819146516109136559274694861255963096199019112964750094750558742318878760565368826469457243166684102696695547996527413607153544702404907572836429113433442876697747896982942263875506949450234972025819773581413456654609732721653165887126645762754274588718903372796919998517122651857923856485377574982794799512107277546209501185277243926084792402380320180720047477149557938793634831960396993704391642983381079458113436075276171817658200613402873271328767740618615113869278552574444320589636296330507057927715912670618378264378849035377957543324460068147737911245128539300636435394572454433569243076864224579623310946931825276217480157438937443164629714693251044242883843363467889412784347198540352928133453776870516584245234925919351537028071010128537012265994629180587339264958758419914166086189547050546195124844265585141408258365918912929412947359627527933796695850812331987392033175893845394621853799575527123048127781588738308378518241045253833048710847609824025863854186815591864219359878724123432491169432522772079827759375453182345762860024816694769622784109697510850556260718642025069177357895178065610130506065433109518752071329531544993535215622764074442414821294728755353681820469217286177624010827554645018075165896388174845197802716258005116362942882783925516334729427855245132446906629798836098309556672657167265505440422463384293485294600834614129739067417552464369732691354514261654717572672732587290734137106014300833232537561347498571909182917885280711707205818271924644982403172470977531482670380750313690403125292047046318438859845806180805497243265030096323716508553800970431225090429753891701704622026226220308114527783191403758281884280814449534187196861176124570864192976569188284848703489257102410083652922652614136446582320001486117891222886024327720178038186167768302541731767451607288115561517185720186434108308173070728260776390287763388412728038632581744099707633667192964299157819282889523262592124831581954618122397831570469423803110659102431863371823921302937411277807701649437603346073253761948971705850808168615612163295251504129518606164660870493998002254394890363264581194461733764962697238528243468039409884800158289462800523290954096844194913639752352377436003876894029682976869553864595354223559205550675901811347425953735199691298414291165623677061754398543397301839037405724440371160419292743763894666442319517427324696029240312765876397118749137185693066935900941050621096958602891744555696646464829691937166838255520566384855506922002337668216526089529639386792902339425647853343938523727521775071346221723626196106450805988869049790223659208035063071997026757531825028115505714969338076607809766923579855487871861656491303246285380849987901841876187311586122881811187517719774171360656604847929973428740059893157984695614189369268425329345028781140823796958229299500852539178313504814233208936156010752688753594436975753208449728433355069354301139315133303215017929211577008874270735020782962574548013768105120353122176317788590739733494394886584700342086522122359402887526570527101223597165719340875478707240908559014038653294525056876793163342545671075653991185252088273852232199595772344951311596788972701325474603997703574077147354248792308444570749837716723280400761113396141206364722740736197749239605789554548429325682000048305538039900777436434144023784405856667437596424536265828679606992614702504264430596814317353662058748124889868778921506295006647153216657933808901855865231332378071168388822990614277072194632963981981659920832393804363694582061514498371075196551028002770567181964049763496033796159062556926849084751656736805716168579004149317896443910465390198809049596294166225232602176444156883090293222440849215705318820689933906759897872097851246256314361169012688484365897218203213667689978135464261024139662281881763019252614010019882508789415761209404450851044028176600408618766263177325192681462898570888521774041863692706607722443911608844551457872927677040437246234950096360107950343479350297636159036787719760762992920978459664421519920440913354964685168106039702316213713252474510337702246869563978822446394621755578233662365818829617112353784016206146712691436905734802319472612273766517745703586228267764309132316530111754443982074672851546654523726188170439746902728110121058587318408603373284299548431663225077412310015806385299903344507614485376332300663496482434998195585382818666088664502626814924116912139543213181857884746628001817785400804276473977036763490133143019709753153040984630940988243625513888770804011838850964992414907566805771110406903272460958877345779926273040291936296467531105086009700538005140781264809205971442090236611213597507694173752452144746883526988782789135711418097053168759915800737089826006293430858768813163930208138301272673504325431190582858499124133603024980762018643128484694660056405974471118001036695274974629225039549546375713654750802515455026684510229282484055868029334905318008924299326183398220057043024110614097736517443400882182504527195084907876128725974695962567691900647506773247285510849174975934417151976323170152363870165904669254774798108263270503752012947188479326630798711313565309458777655622721235139993098765721165076648188396862536811987770369417274040321812112259354096193735178967386398588864989721192966847372051013569999496498820622577386077607917347768740633882659431066960252498953009794770792810335148395142920393438453818476183897394029497555489147817848470112952609335544182287823872502004245267935761275098754114897631574494817279645191769909498847604842863775336128680002527564403184990464613770415313170660038668133022591018138210757278249377783529313756508325681551867797045486158781169230353831247290425778858413862904159389941392529833830141713535265732728325877955742831680631472581119199300304102189156763814053498173556019259635324173872674539534633841819120427475799318035204729621581395879274671477273676419715140477546724571953989377676982379803852679953708106064443463303106216649902596680471743648368355355509386654633032678243455929293732123519962635541571917633114982806349045855079568098517050149278104824950229973582731865238717812984667147170577174609389414394468925564877432353151269990190030362700335902990628606491208621494053596058147025598118294713560714556617723797752561529278218721487376525056773379834249874649215013736310804069303622175345329295343267527000654823667864533077973861133945984616495970671663349243509233975311536735981865142894310484502889662912449707068869030431877720628338719410523403512336792549674309528713135474864215917246288035206021690521199685605628132609521981990991440513518877545551677698711303439380981321980103233346579169734758245680690256056000779106709629143765480125693139441947508410892849798228332993023332404518981778189643952548168184288297250467073677464495003685869161481779214640641701275311465328177991970119262027683279666632681449460240560027436430499137358582314636240499522745096929003037807220108407025607026820870388755804905396052684850808007329622293279766829496753945448908479882804858897834859802695416309051983530688398413902380483848682908915484039142270889345967932296118722584656752441814423517773392259180570038996067285040896826152815323738015791095592437700532362273483513368328680907677377694977200746014304169919063290421059775909839947646497930841747913256651514533276118294934255489578124726648732381970405333694634080222134464608538533989113570849600285225189417225469279078549080966828530267635295602178815947314264034918564047717796157449129859796546437809819083649348424853062408897168728117538394325667978461224189782851265580189589535115297822418987611335719386792118213356396960008821696045231862461425934593364861268710731938895307134939461669544170743122059082185578372437953006485729755744815530664733158074538441385797010953502588030434506490904739027471852583334754300399616900808111022976351161972174292335446733825299595303664366012406333760786279791075175766137899254095941405984512090952263177856758042736600592985889322295734671847433315732051949501647894978233053464665385655313879919366235022013576748253880504880563148311788001701129667889863322476476799834926275782765025078082379373179330464730479088147068531161740204632010940720217807662977753263559395081365004362034541424607012826762607017834587770576443915703604121554126130936023929427811926906446777677583262608040187297505850222171932324635470922832144890794077927518382462427753830629948071519986242015539217256911255506825485503661411039005363259057440185218977863914897885541326123782617033707161450783343351329089914718713671284502388219537589006387000910926341693221340915441171130721712223718211399723459696389663944572662147145488564818360482811857412361186986962556536045346427758751270773833952394814019449281181198932937389742497100588918398475015661948755513466643226386997070222337173258667541966306955947178005535575942681149785982941963354471930139546375694202623415153202892236664148203470970306528761130252047503518473775748308969525598744000702979080512658071185331689903297263909065562009098428118618061905489342686775439215007989622578275151229579938079072724658842834353008745190322066947345607757384745719962031276902851593052973569705284381942393705067134019472105125062254362530666393423000078960284651858114661002390095390236459748679980404179307560189405571285500466075963075952134138381465645533426422859019959443840641018830009369459252861414290993788091010548673474234637958728262138797349994095443618417148881269739609963191500128627156883019817330024389491780423013090309944464281766435560107828553137635393096706231391959386908690097786751694292470142631823702672193495506143787939699932033890591392468155460063372677881659565309701645780638257500870650380384005191185168898813681054961239316106351507344671349851616937036246287844619247822985025128843433435010980224568323002856243505246857609570453202343869628119937940334771849569746286856785541604739813392445870997189018837039796802017407943085851807611660611643910018228380678034491944356417409747868627713404129321785480591044859486076172088067392525161167762094392007048590411492451281810977058402134293774596698718148042347849051306269319705236024075868905466537844598862001572068172473910107272441892324673593757625121423138291681861987710239570743298031272275757920807822030300487713165082704195054477455615983811779269491219573121721866608660864731583025489034049265215435618429199060988052538481176363894850337451867343810457921396295669902603933960204903714461274820753918005921854352751701209855170744858858091343219385062185336616598776980788119134006158498005335716539001399308403757685263279087918185045698800053188814692194603965641610348101581685750913855489600936858590872081316736333300664991213102110954679452667448744918662508234198994715397825476636446866236937359903362831255342282479621090609090910247125971060084332560739059988911476340520656129005425472557841515487431731642132525652724543448206208656780612822393807161404413007973873975917413125533898308610288013435696446453719043785493212770415125402763036559976437825192679137825005504623730987469543282843176486157456149595729802960615448497796061778530633849751834625498741827099183264036978977674409444096157937280982841100483646968397968201725153422327649196036423653832245407125113542385896580651493533225795603605367441004155310627443090191627268833964899930118189575790779258553923463142188320414784860231333327359342263310143888386161759522043826518326309282870905627780712566726880547009854255643763247901314817903054649815896941583651091118967897493177306531453776898858328464104573306980943999659067067628131670542434156002651615684558131757238496207963723220866058081104190466476322841721227721646207811890181612566577260082128843634762806659403034354723540330842208330713732300260158422025328461269510379923245893733301200594962564803451337331378666920849018628048195864808230546195495909447336659705393396809883771027593452628084270664358965130982254891471290610883284909400783995207470228693578480418119045987546978162151401405471496762090760843004467615587444158700684597067945505416096664319337213154020542216325176197028169477724398423444715661101575907214170989991442798232958562195073382689283763757380282779494926969561739824334163645077633367362705046449710200799528507836788336843909771473740737806392157951832444762275395180434812382994600493737356052265196149718028066104043103366185347929649368428338678081170458669135606213528888543143282944802610869514360433585962395608430038724046262920126659516275561934279164664739873643343589740771932822403608427818076328688455732857062009557835231318856376978487329106551290893234720684899889228714510825185172601997936796286685837012731055628425799395913466418114475121140226126026570930644432761071083415931614642989847820458990061100252269137821717118818753469867402436536750237914021292285645691036657429396863132304774353131141557898228700728125783279613875452804770759928123922154293501170272148941748907097952035081844768895025385543315423238046607330140511432582812290698191944966248445706685487657067619106816237874756588172231989145067603136014481382227476913971651188924653167101169774390640772522376698292694799399571229480568961742952646836037485066974109280743140538983064724086849809772559607921845341125987719145931845358164155234053241558043883397620621453386504057299911079723321912162888004552331397540838497092837484858556439340078436621632317396550994523906799160654487893622101814741767955546465920726390569781624573390894595938361188232117560502384390345089605685329828102951280943331793566126529453688658804670208909974079915103311407466634522084602424322981030327024142155384888746754721346941918100801359916784663245484870364967989561200396202998752530749337307594074994274193000517710645617844385444636984939677012360356458868625863966192386438634816705871300535497374483244561179566572755850931948104193906860383932924864279138583093087909444315771743400268496184883208808902921015734979707432679133436579188822958743846455141138282129806322787763864935980321685767817110862327801197090701434723291778229987887914401935307150620134283914197617239886680105756648921183657924045760422596408042346261721841291418379800618518644566826644248719937199745397794414032593622025882306245821315636483126882406015388853029778339977195128217533937455425924289751835141294749092402630212755609694123546379279125689097521665857519675370275531311507300256386078146116752321099042084168515172883526760843996557406574704030985424342100233112529406757457506622472904672488305460297597831773049124526295815783474143210012500537214439723974019986435059285659968147773163800420145092434422158202927812864380951244538924469118565108353382050951650970291061174005846016926426365996067608325129045763731599312954665252325621282272971929360307125242711242148575932744433506358392424061893206291645752951125432423416688651018299030685268029719270607351763216683340727130944670155209423162919677355661167572294891640943395963705086398582680753109332370577924051823407457622226938792301717561860533608814579403495311490079282189426063673510940649907193439933429919385034370350849538579410539726183370511734141695255903700359715072739121294924335532753095009687670013293324044520578976288805265120888642457856102620497092130725208947572180830582851483631500598307067796162888013781346624757357907248651882167059020025677652449619535810052945015738210735838524047010508184849999955655196605225354950729809228921872796164955938147633608115553035782376923246186054365953186847329171166873755111001445730165940267013659773742946104812636494077636561697709298729415698654995972928670211910946202188003087213744730809334304406468116756461338923618760057662831352017053593923440891807914064732582839874679859072381600054347108342986715071332546740506364426172819235934729279517433829352960398801713378681444864772601382086518516161815443922396093792160012896933303643270494833571243141654078109215471233756698801299146922178576318600492432448242450759873034433692631653894102653260322615926532184695699095784294645619138280017715891517091605424692140002636631278342327455049783080894267709422994125133919758122114551801630410598323957198144297583596516488795584089401896680874737000952599780091274282679212786102817993808825433063360649742264337196702952688123572502062300648891966763709871411593049390233666995306834895968186264553862873365931857129157543429969286398989879809529756381160383829746891756830512717994135261737877088760876133081645404137361859502456081027071598818494314947207889929289394452033204935934794711758937911119204693580183614067904126640025830262144863920335716300479659669650200181916667351245522336680321187877130288535066437111349088423977616821752370829708399728445107877268353551894851848215634889896304970656565152930740732111595052518322087232668860606203982480082704045654387223551955739854479685408583973217175146488626854148422801379744489492226314306179797496385006914270106936321796482318882551671936081675016816100459780819365738945555835681100873553625595752247423917964561717378568612633881523688844417021793273402274770706033615064946095042641372781265145265560484630071886582747905925260784278796663002668319084460642171416321998741185002351367113431492264718200471018034671671009784196126019855261646754340588289808422597217611226860955554063258643210251109016295095450512159564464118803129648856517506175702588832986321595762053558878441257652535949843130068188771325566737129051776350939577369172505185930379846637528261412844638876213915447128115831042971001704685752214081710635852670160188219762882498323921984603627795384983400034261542331286923753294094644470481241037856593957165873348149984391135751208615061628758120623879187386469910921650050721150089934323170622730858922584574766486499428055317420134989355000907744449503858930329856257810959635920530952131487029712974512302336126979758642160201208811465156635831829207439614668557443258437766499247542228241030595624365206480475464170984239709625476079149174577058736413835618104093113230091355872942346900840418020598048876058907891884418526150479570038183069717231481186026274301811528654586894141287650603584990523622263830904012800728113711278841203166199616408425208083962874699034519115686660941036424759649246158074612806094968856872912378603005739061654822302800324313947095557037206586094622390381577717469610546021953317257451435927638310577392599991618794687951041764437195978332810637996595554158919411676244533619473752622441502566881581145457834892057894976014019470736062471989028560797822963037331449994699129764120115319650112620162522273052426612077463635777974922279414213344817207673105069813749621677462951268543918386611183147613582307165412619678045550608632463176020297458194919552486011607133214502311507757174273065137137522324239338916523256610870623922124984477086960424000847349735061986466874497872152689291793040592174383879545212453936650969219864903453521550038100545418672841845801329643555877045538958820244057480145757326042117039728942574064000629463693269654457484893086508927427143189910806229831148692089236101835626793743452032261990217887961737535966726476803689329398439741789343226304307525586131714279367443234759386429648397401805954514431676961827461905075195336874019956884026623606306867272637512677255537414058217504773877508765236738698343595294844740576571242975563303691185700819517618182357435360033156413637276072148120213555214044626374962048157447338845704632574130914950375170986247828919648353954473824475330283702828975055192551893555603733777100545990300330936104831647604110303907149575475532705385412112388918763760795952854677193089216582071749229769126828619114154218802891777412897693978521593372641443109591592306192171648919886359875752632023887810949730041191591088975552707057047044643700414992732930683061519174297218660297006841438415355359239047558234987107326744171058716038120805833788211214517192459237169573658979570753083316106798640317942814578383785642708930893614448873732729786969044515687789744941505701271142312982669180465520652306294996825966440280030139127606982623073081978706816930321492282794861468083456968363403935665293453173499707354850077076409799512523792019514400918212143415953573426307958234721952470845798899962600242550497610130442015808175762121593687610983607701187189028658789358903340766353237603940197142589515524152074059588851848765188635118881907418550800342131165110392699614219930491526346772720883438535976742755762960543588933975782858261922923168054542543243045483937750045281436611684023515382386965613444998275807815373663742998985857001979789292849360023794560730076563175567535596415076007046355152739307751872377186260638981113464108394906658411751470002075650525368160402339475497659781200287209558973953200686096636883375821278990760940699244139435746641703435693854478434456645847051229692085625658853509988529914453076799001577061432928880330388000918170880870627279010965521571408503412073119885893521701801970077800764964211695350640020373621408127906738856360155182229792853440566238386911425655542745854203320512746186116356608345571555879695070702885909162177689184552319996975884524707230715283564164445931294810347122998029276186608009607523882622264594526510915430064746456833958080800257815949936590461159046064837946538912760891137122065890290056497310192875154833233407859876641667191725561756575447258355823179117729510875382816480499445569572422695291069729405341715707967719872073539535758432972580294091723955064924696235371191023309104176106225056269039249311350427401055382094236751574655216652725841393864101874988369163145374441226550174104907827057066665499014831452573038129773040987630956277646717432125146178057636350411178069585022851992195427771260271083767550519120613461591080601469375172732139973286341588843554384157939970172197178462825339839920569539755459538016863150742761302837016596835465465743109613972466475992803544884700173973821995849280066045721973096473113512628353793670011179879156447058983860204109790324380672991696787802634348209871839397832678600220013458368878826540320665962324646318594823738884903436902172903702459411702546074441635376504099727756903063461090586023319419187343374211357021475617158176320820027789434152074838725372559706766249681193537772218645862745971238403364854399684966295311390766590549552268475515649938074176018643835322728351479799359223138434856001997507785530399958723874592249012620097094110507029108733652291805882473043609020419170187775313502071543924361289180220704160621791837843129017354151294374667855361292816536833471761348080260369101589253761090623206535521745274549616774502722788619817291358598162084574117593036741729726702260035382440748760938957168215428942937992949279283697295080002572119818489016496759419981439030438978622704101882232387354638401231911542883078968403865185353093591208922661806233749090679617008198515026106287199543650518358365593538452471696610693569364999420954803729168455724511429113380717923206963895732853156439969005332980605223439108880726107847515577466678123484185133698169421521550924373307236619843951486727684939097569015026806927318889628679922167193277800544799970050314695476170197654410220397076729593690161628512192291625528588315091175276654375310356259962627563442383823277377746483597031658935850764927649650886043060690371606200248228960887262306507057454364640929090316944364582129675718703459677527618519535794068472673698390735359692338260912593296421416668112043963089544617300730971358334102993730018601254704214989852110325342009196236765659683319412758381683255801011159185513416324316336553779565441885665463100743137312486344215601387053131937764525063327966019147684327091791701685886658761799126031459542444743138228574033898369436528311703764600182434118759708351996125918613083736749226255340467045072506974750192485077699439605460499140907230186549009357045298623592272503259056877148581525473642997118990138780329654279419455301262673652140646764998567320859240782044891083080589135912274450985754029484160372028390821162355835731491295123751657598285359638234207121876987479485181771944708861975075807522081552271477021809662897386001068654169412528730613541673906401628272635058133364177170673417537464248519796571689667560934874916992230812360234980307430065446259534455211467814159347456994655367753370842861882624987383154693772477302540079832575329904206968455527762687055080880258550814375735509440924314109672716054232700977112881859498303025817018195103027225652719346288731665093847890414766414689186331519401360360345668718024099465238823536101721445115251894764875667745043696842228570654901605609913173067998444639232595553757742567486243160277426370471870016883798040561120092196338287020693889373032780548413995912695240533693869025407548562662094479933018197766477895023674637347258431812935103180346900591141476308398205513187110900999507777179867921622652650722074321004177437971002194423051332918650356414319104131683345252076280229723098269091524188927357995631553831429259626072479140597122150690310018750248886561966530339134701807956751785791254085288582169846528505057208130719930709554265204991554401869486538011166885800126717325298500822902582179798693620855391541253948404655568100198915598802500092155197040001436353689311863185760285020355867909786550689972806856271596204973263461290606962178365033223085116523131005290747997054176910581127307631561278278416686915043544944597533597149111356810958768208566633126265775615945187404370696536332496461601682939079919272661856500495138581311592589319259909187347734166689495009668127467001557118235426763314842527482581804513778215613075044619788146221465520176386127439352606211260124977874278359558903399104997183610486690953635638237638865600814928738478070588813497640406705054624459811915680705194390085917761523726848393318566997840320490513591056491301443130430223402566414049178413930716959153230295450295898575128295314350636509813901288101791923090725637053030358768613609274293032270371020846581697806619508557362820472587218401666615422723739830949085921976245368054442286201964852566619214759064929996812531813594683977983549732501052993227078509873888229566061376787095321990357207115959666159306499337022752618146255967980939711990882590403623275614927522790656790315060546867201968940339927005843497859824711139565844476514545562807780054723848934179183251816723861872081930791643521319774162308652187557998163342069745855452771798497293997276762952600758715629592363849358068038789772941169119158974159319794270583407138017510591782266528742420540111149087574992466283153495382073234346799617267579989328176146341790633699650128139444603916374150279254601611861293696779291064824977479998197394498954230507896748953322292652505793608730891534850464433894660987483759824703369792234543630529552130793058972726082591981791831659732375990823929420355663330202344835321920831596624749611536367716006050199768796576048046255939702379340103270654770816307455362379561295914035864436579140241341284597869712145825761427964107229304248807889569721645150277902288241186502346765820593235466269423083037379632068239656010724671660982506575171784695474422890034550365096016499664116887694093127846349825096148208681070137279713015574358829558892768635339582083301628350390533356213113042500496719683641328443688478655984455075938828316015956100220137297457552144482418835300614505317093362177704346325514037672160708311143081412049144618924847227626020974694762768613785637617567489103637662396661493187917095524900361951495502139094642677050582067166542224844197249041621846795454098375794699874018596877227852505849062456892001157046717337429526296241393599120817438747004454975644915438289927457573252437681870966220206808678890679203731856363689327306564991526019946617223896891146757582654622283968941746140740192068110609550001606300937056223830673218496984240399177235478649635908517537750337087655875274773738281368317982377327365783741580119718541252014607221192983355832434246435521169445530682267500677496793984446464441786232971881996707322812607165275382766680101503380879563173427419351771207075100442032648378085292079372147713857152493369274496859103663533655825845927101509092398822086398994246437700927429233599373194852877950319177062439642376318322443868588768507441807475012996888319487384637053221269604442828293084292390779460328615536882697703795297833534267740198131530351050219793972233263111645596981468396568893343938336703525617780839494053479998717493158149767621952786689257164141750369404513227873568372299456853150711791395805073002558446432656911641190795810757323354960998357143220200173745246224333427756342200976243225451802034074424135352120474174490059071913859972400321381531929343836842639836644832230471374312969705651532747289481634703175870910535271877448118246743812841430947731133192946448219790489625211916404991582015960955754647702737531981596980528177828507311961601663481294259990445896159139102920939917443819370200979160750432156383691070437111631637874949685785931487366581157676237835166803336015206387633888742861148050105332384762582093975014488903503367471961023576676280686376074902313508284583196587952266870338515594897494782139122853401135515283553632899062301162883645216612181731165113774406789671348067903649318046389566402098427052251426279374906153605052425270648293825619610976127759883828326678517274271309234450024064075765814534306703051764014983502641956417881358791712785375866294745524456185891877313591299647198915239598794047770787524175069029901672774142496161090948152529344484893019348105443390141512232134520895691661520211591547919832484819032612477017488977091515200372409616584656883519711555858752648365403042036388766365251270288611560255453051701842013904133077639323286839748960644790148651110771651747922811637947612488589944749870145264368717072946915570813875544805595199493513237255096029345752085273920441975668127761700255949729340936319919247138479414871396086655702165250322043857392663491721322167639351757726613027671917660585616055542986475082718257315154572051737041759970819068063951779647220393755526214707256261275299679865398925617041580875244060034587910176674684961735330113253411275945922621926281537411000061392111555712660318642716674865124712728261167447267626926370115845185839519456180107336057620043581979386916610067657925856020064115664309099938295188275139349789699605465933244707737132531648127574389115124426935761415223700807881013825091255954153585265361044934774428519877940489698234531460192613871777613176789484168447135369104711182050298614115905521656174337152109129493987540059667444326562777428423458756598789824583645293013092632637681087791134244893576056167427444658768925072763466843013201026690025915708802402828766684017608576557527730979076336609692942632970868553583572554750270025637148973480884968481899475359962133008938886062822976724196750847825717954501762065035637767321108320483801514624612745885259080395578481662198256868360576464564772497433426930029006910395231409309283718151737324599614023425660996184808178660491357410705261728680280601702084403020770618739261867189865188621200824570266162324986915914780950122939324429265676957715672285413081200319761294876638853374460804913130730244086330922044104030118012037468168337287171133580366614348179767145708413221945368480562560409948626845448260765084936763187752054304314666247663454010465102463654549903960776792341049808195539554874998838346605651209143824824024110841002240301881189814029765771230737540893890507596094031853389451585708486565587888849455483167614127190838320169528622227421013667607412840585508412286152698722847834393390145891285047745819958388814919558604872580946708797083290735043684251615904787222134899745568055127710235214489237956799981250827287255660854656178012627564916167764566112615995288612722394909501665457506957700975684525389759489338341139508161986669646010083883776269809836779040073473690903494452552744130580584623319099172762693920775414924246851710950088910275042527413959656841584439092593176935405109463413850732457749561234892589431519484859858727160549782949622555701694673919350141182412481587326199544616149122091653608260133037727427939704092215052326374273526043194206564246498720272934199903147981408219353406607610163499325280603022571554337704797553761558951438637155796324675351274674909736680089524518999142496376058390478938937563907850714113273992133697658396501479341981468797751388471897609027241671170595367543739826270721970918008830270539584593432000383006269810163842801078839621680944121260551296482034504377827203633810290390651758932226460914920723705934843254539826370542374944751671376172321343328085638686655787516543576691873048077837321709152487095999134903981440902827876697883589020285251850180151649464769768025751409616369796595447819083650609393283953561504934924051155345494966918426220800768980351208159553349115095795178764662090397754413569637905885673723739134942711957424449744124618250298287852806160896646443888241813570052412159256459806981093358528379210774020237343980771730817603361292672378912544074925399851298659622726384201064392103561599269525233658999399579035673513512680228637726446555399672955711768416470769541666567683303574597371451560704239945364354610890571694309405755782144526720189402561467757745336937764968918429891511228688059985412054900401515209134209816062119500839342643001027256126185308794739905025725088801439123142079975555876371059346313736924566827781007657723767292709303356149317095113251761115876420695419308840592297508401830582968712251798909922070881629032902021919677521087925023873808646538929849860277068443102838329650502771204871605296081890428421756078092234890055992032715848020514080903210833217759400596556923826411218430567640405425877404126727297221141198958665115969518653007136346586167327848297511881623583491833530572799749702156117098751796934151224113792865696897221132234783838423175854077156302101251804970477724115088956753275053487511054178105656512195559469459326657491803009234243282057987298284314868913819495666554370308453186552683961812484988952996566338611371154996624481551948635022802363889089937024084081014948728201975086293409510833382201299033124846064078713973169367818077552097105396236964419048648389550877789168879968661980996612023370960722904933933972938782230780209160906370430081700257941261671448205965251725257048883603124538855013627740681742588575911558022925891948583994080123152083107599691741552732159078091600141004099096832938018948811085938416151892540488781148926343715616107602168350121864777920433203979314469629794713381733289918594516923027408835794166923580930503759881803108187367981208554820052226719010266522865992458013903725627860817685724439179096037934241728798709977255514522511292724743106858756916086274913826376198071407967755043181637925559411673524823386125360291701711018741962513830125914816469452243334416092272799568153117684499349307785389798266501054922408242618089225446186321470081330065431827865217300155031972404320662142039433091597218527371259257850373143676409883474600401472147177692426470656362484285248257553669985516738459044601603120997659207732445162039862947996157742639349502169812337922705072898102426856211255020413212160847719997519643777033765486390521495727745664376084541500410520539823380270175861020391344561061626188103624669669097400252467167463167064676794194464531100996949285471808697022002030820068502775263710960403190160662506038791337536785058959117822741923941537914491107751083931843794415645689843511788873264928430019207770230825718720106855193658204803642017760031840678512491244559112146779198136955026443660873990362202376498781224533032092599183592266779413056372228859581741332831761900610876654538766633699673464304830982112922812344264607021114038468408837551503956538946658373848571639985711510211044087070689182578518370746459225188931049157517358268281420130200076720614207257852390731428597682360814542997239924691508808122696109777097864474802595982952589335584448485123398081316917591957492441897651947265501156995358338477746280186832033185414118794772927050157555082252872605284800191279278316181349149868134226330008362320169569215504266256764041730909139847967187794741689876783954232128980782934506297562953197693609703944623556510511621007498990702297657854780199621729300801568373879770336410721185166296484588584849436016556912172440268726409828670878160850469314482700930086008479909753418265658538501200730751353198609277622905182402261872384109496066831542943809421257190105247921284364588438768743045512220958092214827761226322007295141669616910725175771145252510009575397314032207315941184983443887608317404276391065754489590190109256404914941230181010459768646154914151491204358783792200738838726762347717207989934979995702955911758053938065442692959530043630110318673629185912083798609894407486057073166603126247944892157737557737272174257573543382832304625008951374989266183242675055033115373528515762251213113599564468568383229091294064706303690735584138554012704580384558302414341856599328636093307694518807058466071589896004869029655670556273178694106994498585888616038905676492562742499092895890680410400330429273156686637467545201632880907803379591719616193607748965507000054328937705147172526011450320220522564375034848778310792007730551222725671660274954933294250803555798140359528828659978734634560589032877030826374953137032025660309066115407161630298488129313798711257696971904834514479831801979553512004327540971182189950123126493916728905272104525796044993335835616996191116267640233270620056971429941607637984793403966472689019681267510540066947560417273631355867514634869194600463196753667673888093961509307615899378270209878209023979058331072636074392102757487306546092547364426529382489723382825996239724191371468467009288474394632018767087696281288639840433010361223667107803666864282993875824849321770392377010776120781613822571158360075658615473443377638553337138902814510958999557214743195890599445433594748655731776944184337599176577868717236865317813538823974509638326409972222972232226359775368302355653578303213178094520960147447881761735871594405307641606416721911951443317273368713296798794161925991053856701204402246181715384026671599504593178877677451230284184085482957109593210484765853767647296691390463513799342781172692084455482532207775106373716642306312813456919305707614026296884378723431520489764578751034653931470072488286617508281431845960042933905007624154584600341919256201139521362407337387921777662671511635416774049654523763046165606274870132408987701526294777116256971898247865886067949182035579986655151770316158057677411165538569600783668496512478160828409452692023670699417993869466594154532411400907774628637730025742827454199026572397562251047242254748290130351017794367289414524381006245710600214947654104709272012963594453752304874790054777094381657980191392125416734418770234331702131573323708507736321952991945839385531564220477828110022490227607229842537923781156028596203086920963400251795597887998645640771208298073502975274086455272319663166316310767939624262012414142294227022613967237060623992874425540213540007147933112324045539047454171948953002314817310994588733838536347556122192893593927728829202145580976087926217007307315941478845480567766967468493829558054018492670444985249243239653313574363093232095243339838848508155678040055521505053060117059500292828832765846942140814630849333871897950351839823800363452915977224794095350549023073832320897585906214223625696562172087962884983745784170258528249854943140395165796522217256707802437841133726802160814419027685565622672294597334140512224582995538191013313791899833607894808621788916495028004811889776762577326521839309858275125797381889659180344954378161463987548939368738960337228796200595614733291924469576707519236594142522532916491190847704925552777646640102275609638958836762587764439698204117076488339131460305159322484082989636818732164954661600648925182619556318951876906898265250809954143960881875818388204673737785804142148258076687761278330328370884202551028290941157976673781592653151377119766532987045795371730724058976429799576159487121520704265353493312648010311802698442669755208236486447006186044245372143059366097357340101871127325945610662401703347505566367160853129730478175271999630175729353015418179935247593784623989073024317552387774671164461195127368225925252637342404705938282240307749772211413414396007492193184585874504512798068829481159597448375851240877480024738177003111663716723757553597396855131414543951829416489712935838250574735416155320605640874892262189124192866220375713624442852971882907963977560826609725969611426344013418184957387784195159142627108399242223350793058626924965629112907955109255036517756436158456455668533160862315406135875137372458194775584411086781280752680041107468917855400059292072969533535356704755317435111556586139426136463214896976937848009295974014268810472068176716489178294999691202048434928919327537198325894597086470715566525264457497538585466328348889147947075906886280018571222521930455019646658700175536409572577759667880060058392532980844942258439112321633265710296759674860068888645140780286436530587997013223775591099052324013752201927955373696897911774855494285846478134524523220159249902591541855186926599467489474731637216148216872877713208308724016255998150968512746902904496887479957295821688640351528915896453044406152775633081465912795897166536639736493873732995532498180364420632494809985544698463431350330434537155859005295929288865455884671976172868316122882542103835335141885590462472297277401529854289488118896252558697768752275486306706679529615746811894194629305663813957078126793294367557879948850666306650389981852249630048880215346327199300515704432479385113671258520151936843747511984404650337714139859789368590887685555350708581992949165710306977268302291076194753194686282353409047933736476359378087744769366601681123137797246542733484620139421406766435430874849158914875206808258058592087439886552591257294860750384040978016947775247288955023200512087648828732153228826729341505894507976136580754488086960855276179372545624968763259657307177615214576530741445604204691232825513392041606897666735775965762872790523883528512784134184818174853811285762776566977516832801064444585909685686479792659914817715419299326421424090315927856172113125489508211388789006226784850349281198926829059322321619615819967509396732035257183816051120702371178026326282448642545380234945156220955594496476104209146943007965648709385640068556426622411129004942685304597112026486940894155119057780964497355169243735019076708880469365834456705905117907136317113351792001049866454849449375658920931465160539235260238364338390194863433690976329799031964012902188086743807289381595243658342930495775908045187216073200183572519142364513910739747006697261295590477243818229854062068884620920354284098400971459881482111582391045881596037511458194345311391243164310939787172968002616501359006483502629990757009926229351558013623575807567852880739052195708396139041447811379698281006525935659242381293396910922044510690813174986864692121974945567166719124941299272364761185740398281641312715174681258174076381408080485752839074769767886955135849330239875608768980694219544994047377163138720906319167850223081969575478573517180593106603781593226923839256950535363891910389755871347993760485072598498865331389352550332693963812840318579616255496023735617968711403317261227011358518712114795770646970491710930112861006613245348722407537328670273967057134797775765062071413296331232053069296999157232600440831825218874890585737629181427620993603997532088605004639219524364335801475398016201261102254367810028252538806806169485234413034265588198000113017221449010824601692480039848111547452778148717346929641987078123403138399671802569356605991730857838763068797127004555318930688780194306490592131660331309098755061417628120715135882837368537646645739417235556034458671606121964233862203961201866124728481282686074584728153244630497624804723677589297969666509777292196879851414355949535928422557670076281336735048153899434331240164526651531035993322797215486071241444223086194544521483520960615790015318721031823903706575151600466236835787982380511190979900310119091763276625076342463767147826903160871473234413966405835845146483513538252843201939111211098094460780697237762068907265168252426328323599201943336165572536391674231966138116036416978533421197443648942613103615326131743165915032417703574415727696290193453028535853046159703439012091028729671424037170961048250603510918172647227309792690937859294648428188701836536434059984115533777647934130117042823414631578324537004603682047968904893447365162337784185115715089946470496846503263345790514141293573815798793271183154538238273460082604979667717167850492904220047072887664692451583684939507544084260604528767115959693980331101829843792970116785565205162515673714748387985993642811668477661376988481097647792012344835080301747769059868752456082846231953217017419063133447616829138991995050961158905171277501544927420055990929256973159816813042433456457008338282224162567018739117461091473938211014693005258121527539228552501081362306953175904380068115391472589682903884143015695033970730328855086563114688317738243559527807841569065895149137638662138595647010892090073173904134757367869562922585746099779932795339379485953339191005956394272721443310597976079708032574838980231386517312741152283653902488927621536760980629863986464225004633559828553134023956945976808881238555344092512184282061147473340324335994738367419158420436649948478137411513851689495650603674945162173837159273558893843816416511710163542313876208252817461767569279120156269577808947956299904901378911902693915429691249190572482898334314845497406052408038081135394982534343531525648309754148115238125681932829858189198804691524523921127522373364463986744623469058307207382383012866853416672000025501529347481417006474570621545806395619750392750694428965829549485527231622368342561566103336114693639514621016613184346273981651616117833572545088368619147450356247187692747342327518993645474990252491723337101306729052833119656016187862633672448097009886464498734023278117607331984297818062846537380531526219156134564741846831264176281539895960255535307007463804392848916184453703234177413301663011007189350437414756537745446275594669697183045615361491327878934962869023544335793806924196920935360904364367261396979376366001924161215894377792093071743468057278984358408102362777399157350352007062809008771306691214282023168005551192380987214104596313118448018881534959981709386093168480205912901858627991570432719524269966715002009338212654383204413322313939581388810162663156359392153813832534480656734171630410735642772789967076236205330638092771764078622109548119590119909202196746249405097411045725541574583391867845378915438288878141771931747662198589699413614653998352797002286640468993737732892818981071336159081455971724128978835607172856236359589376568120150670978003532896671393521518499874409988717933825986255251479414533454000644076713410689726937973620322684016305987607919465539338479069093410560314962796440823857427601349154386874700103075511367140397888479060336680607831744136272505584511822198154636934804685750588571052088709841207000118598326370152643067803318897992644058583779439673442687194711546864688598180338993717467606370299393681782722968568230326337357124656379441215859982293902772765610873348108325746228062679437686895010849707579173721120412093233649624828846138627067901075963364895741139396837769072365695552777370158403135456546347586832513051599920081795284129598494182516589136251599264800677258579865708794177303087825511691638284757368036884165222040571648582541986499321688844864829564948138396090035618294580953845766351448749424266364996233674364370636727713706017514158689993380929872552195261975807614868036271562052214967925800021011955561937767356271937962983314015535757347084805047267305172953523377195023988456714392853880706607845295022798355780551398840202696898188846354717415794609223135284862459778014947375013362149545178386016562422069759549794805078003377256344237251267673417594339579522449445547466133504652397162249722494932382324072930035263731474316694257997337667889520695664633046308528322180185379555535642775495940936308240202619148470799014416467757607009159778692770203594980807185419321485426570784062272216727054851984076500756262733454608840453247392677255858856908744235991835470526637047203576075853796122443283462274858480976204323082872768323670109770736680096878021312061682468867852590257374103854807395421753634892945502022509286735141485244186877305794957006743815513124732585119147839030933375394480022940377752416769038481659428662229304030955891779672527022482413804010057070276290985878983965999163515118625762757501662140246990184400878358349189825164261868522350309835712074177995993171259766775466315858283970181398282314205431631147222463769303250352076197627517199869164414615534823190344178261880880231390400027182229429849371438985152249646785757524514957823260581101652606625509207355270128148988954989433770582623289714204078102724883800761458781912732882692294386202055236882094996370066862563998731938607917795567459224986129360313845223079735782093162994633356534720653568504038154617515999335006717414867558265990477837237944905513569988415167363013902600525771935923851081948408397640849782677236713665698419849738771495410037090809864653895077990881468092899737951338204746986318857357007437893726418619639463768909110878211650138691124588545870319085336626941223944716566842473273933923894664429115638656805123875095689021453412012462098198135377450855299877963624303027269876340877650934904821956316907213242821668971250207539621734800167104027846749767723625589366812978534190957808738895423174889309242253895202791336736514248160149283226756888068299707509561689557502381009855435145299824077280966439682351889879655032907542750403014713771809331401436898105752919565210689427310447533377035899295749842906211280774332326788484861934336316541116574204182722204305458210169363529802389585122399530900652964142007554320279185599299778725638027023385515157426948289524762418631473884107836927518125643191404099742911259304559224539880565248266289614103437169927492382207935882717817284376571649088827570563776422289752248659003965832160057731086780879944038522687743052309790997451300209496760326662109822329788411948719956592577196924842215229182177066742018302340709409263811478173139517611614757809212530174504641052597520613147161401870809077402166548032309309914221196699444918715214691721925483320374673964209556473000922962065818564940174601082690850942147278573016810328673013412926869585617954530691733237265174182825566892694323358129830477708244250254899043366715416947717892476152046955609565987143430117419259264752178393122361085541748319759628138888884374078234867848142735287948417965788284429869951689791097065273815552210763971789965135530123816528534693421618897031891588580016596494383490899392195626064478366197621844029358744416063879494010750829995719158797525939723965601730168647866300978980271328836769003745310057329072146595200832767775725450864374630325219140238232084507392723790342698551095387150102673399185368772889571410319383325592594752861191422895911690473527573174333286234483625975742447485103179585937755438409951822311002830281288956953471364044540365182017015922981585282349484436293161853032744418692064277440731969322942710747730352748130583999445242247649950628718406384198750171665941334913870516845761632177467832607504229194084587901009179708644899414503627426370778311558672528521127735625597457674957555834757290320308585169150306272120413528047660329051956036459779442656457776980376719925024211906640634482645872575755754304940060624782887549535962264667639016471399477520990817506735098668497225909711394613335035674120561758044022475035747634813583248018965227564902587255982859716298059728711030443701288705564630680024193697764042563567611963329394650989103110844747730878346910333579937214261969088823520708227216993621063615463627569293192229711415628480478585322084665269240284197184764956983827888506393236740889618819098450499345407505110237271825267647331907845961930017909552722513011540304282965240905114418033692710302349530620060169422826676977026891024447533503864488185973648919901457010964651778780325164995561346705994632312190441227624006064509293903654854661693353647077491139223361943485011708270313067266466842422757219718108815825248065289148558334900465651043270256768255629782261192930868096489473936042351757435908740841182225499627183529078633115903952688153213483245110602195090243460356060787958951451755902063682066242783685059262587282163562245816989391050983267645034401043546110524247051466964298403385598717402514163152626207118408129532517422641455100383944757367716624704513254572685135944696732987385430335622023672846220068421506391051568069504602773683278644465580841773655681033446230162967624761930041304803689524402698170275907283835262802324071802731341927316469937878951020523183302700977721752238738590296654203198471658611301426626551138443650926802551753038415184866721833338029250665300224601588828721730876983944088795048489989818129264352162111595489548075762143791613104814188477163859480449914390414082998603504802813413090267193398575988830368697083444095188570584140007114364821342046827036092320956114007713919922684198759270026049417530785706956468538834870421787689506134280767308646394420155659320931498007283214738080892275964259098932357581849152833387203635091902440813255864687332799503096536664346548039108287755240573946746133955069310484487521020841060100756970318902960708161831306045914940281783506328337004167259229625151113345135137936774221389250444847522225597859278371127507987536619241279138339073014106942189388831950867520599163223690501793186413030913363168476015495632271174575068711383347103234764083964457899686613077667247510220434815595827754811005791995298761214587821999637356389232581580138746698613217910747872290760020756836297774201058878914130474476133836451725337672756267680601961036900350208448662025800862301399454772822214502410627966649510726617473393500628695772198997105869335253123054381905751010545666346819872706501899632870065014454303114762220007061563450510790271305606376166201970017855629052480483445372293442425201237381421800008188862910149209751791521263166704068077777094506000472790164647381716088575496950600530209209314586247643243957682552781028874348083813959583725916129104808633952793454198748528711053339431832438938815587896559648609460783884621646850101694474485440374891678573099868222691791621895437879484794532625712072895653203889803676931558218445664282587460979937318517169062108115790883333049836900434681497926834876145821792760319175365608442883776812844081014278316763164276867127586208203130826168409272602646773058706802746581944016749238159071739583823198028792684302671287104946810231363894619207376531045100228726560076801389133789588665056403006184077744173732458948885735729955491726218173920290110340092780612803704958089819410676297007516281124408717620085225562837590709233836359852867243604693988515659219889365533988619236261111519062058976888596866772491945800461551632345467368494941589547712808187917875477660952510882842710854795901721338975696877221012389141431951324557432714972613966313915546510949877419445681099393431502888439472302657478158061526919380277603825024624981650421085314985434513408212372006349909860868011159153613168078167616179040215961124130003268184775116017290214500462949364490966618886314673437795764683936744580486344418952316154546566983150442955644838168267687955789650023575006659042199579793840355478851526937684982682279234654721275616489263659893978127733911266888592909131944550349943965632746258829322121311208980958470791758706777385651488218704657843922910218337393472287974387596307771728448631959229592161418936768253472940574170787784468318273580760375791975369892282819433609053355244824789280358051915845828317585325588175435154882168533606465314145267177694044446837697533456720958705817536428550341400183029071839317140176597289563777701966357404430416620013922774554902778738034275187628939827814953190538564205301435164892951817075819806570879066552137480245405946722918260695975710498113062313748240072347484493375115564744246653568362477478492635818494685693536962371075445959655675590489571687124110420570461639938976858405196445885663200367029772496182529209208635610556427202490588537884152340744224352742935958058828424999790573340985207758576429269097654807359887708595946960941213637122509379666954501500682520482899266773806158275787833448969110924905749910387382885520399209871238493954881695545152821410057483370850776631753178685365254858768863096776550127937121231335265907926695279439605666610275000456517679143841685168162555598280342941067730138496979696423739064417052377573806429913707662368952462950200012123475935946834406660877774434359982019734561566806429266557199292177485115948037020617093966517694761649714262248469577798466293736285776071730729726401954207618574040851326755020385421387330762603462727053385334151915002941259187205072307741119530469460150946861126378346177087576527362747262146750497836650508066711540074014290286831939101718131053288479033162360012641110598628433014241924877572827507288307752397540031328635327075074012900828130042118071065975502233903967448453703369887629956925428003521160487250818978617086352045506276791285762041956665576018825849707769380128954501121241245600053236997681573314518641984947638110570457211973227245778303657936300555436982579006539576941446355329948104902242601251933381149722813927803647267963763969624582131290494365056933761504492946401184289789188498774498830233460370605465191888850612327369116220488196959617931929404045130428913577193498102959099111244243290235866479056418057550621539778489669794710457907448170495300358371800498680489707717005004360848606889792820220283782854552226805851740763652024729092791776786729316165105954042686879821399942695185478343845194033837493556809680300372013696294101701763972317673500907550286389884632011303197267411043872320193039901387306212627110759486750996680180620980801498734972471817525264330616369920999671995567099649918808505259989270822167150422379918797073815328821041645156355313750017114303911163033602667210305607854685542699142452442191357561798067212347293575207182807543265463131799264980747373272336101844812338147583210244659189819094657608063931825785409922352289140446543115080964164853352025043885310048545344198278497068375180877546790522638635561797417473659200867036872958505328803785268964842436578687903774307406008552321634584371410873843698356473008916987947168324055326647258184842227844021786163527799818852255328142919829473112934698285387756428848867504176401219074108174120092454896920546405827894993618970801749495542359715528246774140696859645395716413494647358721166074967582740247548094015043163255261994054667931609765098557791954070397369730160281106464927006018918807290459942741434794986556178163960686340926718965044890942051961443192285683515828839661886816077136165906802619407738674489029053393168769904833766188204171255131618031373460798390776653959289865287781602168993663013633000190902836102856393810362091797946669661595607252580721979273589103718556003074993956366904939292092837553013083545380490031965704427521582095060873898708119171994614789217953649578241581292531305493178768714046019166752000589121114860591526310404211196103898893392651536037798833363418003342674658564674323232377151036848226786612676861442154339593500597734133262073553172138599160101914235451822910327342358109532295577475506919963669583317398724127900627502659480186673666306618336654540679288237144839810459072457928802688835044485546845577520897358017745769962591925852811806140342002322232595025150689932352901692839526197556434499471719452679366567296621812631765818090646658231571200254259023091903898374193840958518553238397327059900805616868166397006581090831408573494854429186409399322908748091550948419633940180384082777168484332010417683625055043056023395006662558030297903954611011650006104958587909237074717375637291843576492456393643685752842874403580445012662944396499652256457615599557739002221680017662556783390226096639961630061406148355475233349547456966343083248133832648980664029282623267179492040652703831127399085022336706550543205319615030766674637486011223147850711005120405844335311052241423607274309560142308704206446540814786582144901694491383775301901329771303708767195488683632215524960932891364525903818986844536144442776108317291994928796033559551115238139853651176201953420533709044658897742049675560347723519373728723883505539018498240629164848095108324767465300262053567862839760084358273590167329996836415848207445741518371657045117456609440400777477451631098246369428100683730007155522602030778365736735450263941112836166959210164221627726184811027154238555877045383426651856426860072601571430308612523057145129177018065695547914981567730234666966933243893463708247679293500413141862835757742499053809852467204724586376402352763418730974780170896521521923341960635486920381572082628201325574347839642652763047175569216469391845406003892052539169877301442823663238904310438299067474482697117356493340355696530696058147237977426231756981009683683019018185473156895780575956111079185272440874164877493089192442848012985312679561258732061248078911101404085701553603732227605371422438155563433307571067020242618488802297839008555519141445433237015397558116597885653711764452360270303396136487080984904684648287525894570217613821365913605741417680581078839173694532844197523248053847231969696911676606513920337691426541329757806208870878529394767558206039050816690903145192631095086501195569668020826119303889465890811256375728699005536971807059826849411111628932219603387408418140172593232547663662212538029949398395562430950455814091748356971911299955101898444149100382043372654874443106045640288520567596265471833239384915176748979863702505782055217578048961635164364791817396244794944094109823169112853245985497391288240079568987189968274024436239721481149271059656612917585876447055330534921733316840588061074558829487856686678995954640827293577769533788009761816486247544578547510716406679002853081170981757871002520400595253108083961325792013117641581778292328672944662427758306678285546430237690080468899419863937715521858585618037587090742298125911932104010329522402017041851277284654046768975754480481054795422679827055187518445296869417012763771664947509930440383518279495621631639069038131276374658583223545254147699002302278376009958804715953430964158040720031339746242206464395902948673245604741957959227838759947069585948108391410974102854087673698491522462206823242551642122210291863651085328626309266084987205549396948024543987574541556149131841058410698362354508867450948427299876025707294913867413985636103150448252188720488607715147655751995522219649251035070314356294091914783146793560229103291657323442379015712167504897922421374804468174847110085855386062253522851167348279175795444136121911743061627858796612704969815267711083503751535080681718462298518886314340804461344329045729120538318360338910532755569864393066865244713066925817067613116725811082443638210924631978662292588728752684086080422725610097057446147561201575627574693218243835806855586680036980493497668260604524686654174394653292872287078959867200919997659846679368468844655020317143530178379159693310636551904274197931451752912491643008585741236039131979780074760890773868559773337714763524526043844760168081078302904215030511531977871408585053971567662450491238496195867804333529935654068720358528866053205634122662154681614240682533915975231809267003438283136160875687661948876517160295348296996777625036874730571880829394181357958073720167186133479259607367078588021832081131291883044068825004513735109662243224616303997629264702541277498744224780756796715548783930882089422941328197153912253508541005191874105852776928652011355381179097563267893102340692383300404936951014243244771938354652953948845304659529490776595518923051566035875891428854260858510240738349758338577698706556348645857339649974907265973888395623683686769613635718752006071887575473290364054998137124415221961047359357281181967720075508978857853316129874153967135979493019385562806216190344661819359662442324202412953449380892196704001659606798782915523186408601489505408446506704754250681490291737791519669197695934937886511764402853328014263892237863245655600112348619649058625893146645550310692345331802355542443982068170025365526908763721156430243242898229057664617728452437552978967170103793645396648861600274759222654812044864356983091298107263215831089700408997803401468207312084591587373442273890115679331574212981614025230551193999184431363969488966630623713716598192839431757952832655665733028991076965454088244648911602550760561719669551203520939642584612822119891321438234751431841722401493295376645761182518396543845210989203735547211061829424252478175740811326285491266115061479045501424488538078845094418000555727444681613000204528347928763682351771398565588454262204856133992328477430343584480073490914880913491327425847064486774894460960845241565474115688552763678220344026820640185633611596671064250944604287458925727294237922230287928476398886639500724141077096439892237257788456835384530907650883251595757180680062240603406537638700538881586098187623338493131107640159035556210482515399595646350974752748461634919884971472297817555284399801135829741581645844483780570922804446184528318634801893994123220889024444882184729939694879611696022144487516176768896003436277297409039460618584389226722303863855470736814889379637202224660767572973045406938414017318495641087883536328186386715942840648107803180581352129886362246045591930812131269415702079735660454988601738332897764977793778094464028815725582422263247613593738312646113056050570939191885376049074830108704011657038233018222217310814128443367926981502720470275654301634878065730445845930237542899390356615575125404977450885614578940113552166547969112209554829098183863947700686855883086772451747388159034687089316303450445281184853238851575827493269912978669737475478833989573371696595932614877576576889576342287787863597714454317190403651529625908904266675739603999246014177551772034851661050460881714850786827078327632497525289847306157472210571307555275432416420566506470590773093943850071085145159707031270535392940287833705475871871520569397403001171457318810095375113198419606515139694938096769219062668271808127569803689424162122241167525677451331348507656791396896725123372512115208606817178114523642393196847641035871877726713138376166278464394094174824549660587922595514531995114256313653549151658517457587709372152431432109144390227686000919354922965567748243590361155726362486137038983986836797587828265098254416898230440765908341111456280801308195370379407324866505926098639063615653529473448565333795935183454197858189503754287224331103834447123385802152592542971267981039342285727237264780047122512578495512437640938335903636560001767261937768343120406855588210754281718788451613035880207998760436503814941114369905258940286818044594932301886780891997047597288017971831250323415470955083873426233610762689387681015815703304060703056981069339983006535514450229117217498163334067021510135365789744984305857061448663342747945014746646375059559086992161081391275747817987306299385268473251669839718198243213317222770824911785389160890909939655731076838241185261978731137260828571765812620285813156088379794433165422775815183929416710860392181678611708233198175057492028731384219622859546885267911862472293233021790042465902374800431197939901011831165484237225164589947752905587399567146947422035462483165170863898045837729518533808286694611670164288852123649008368216125172464494360962800751663923355619836866380659111915361764502434901391623317326229368889755482840451105840769919016584442753997115832260390410593694967693987495210649002614915030313004742738242551279114302362723703416136393021171804850304430980658437625226019513388028501639730233616073995317080705987214746783658422550166937846665852375094367182844243277041896615316167845779517362683165632914737835913549363469193246319652878204067759901902893178388063626413348494010038126229706057899921767198530644841806605448428215433532169867113891439207489502043546204646556788591585925263646366350912977835110935674597557139000908969688147941446473006059944211497057463499625347384463586540579436565646845563671781743027792390458326456690581775262752988858602835507641221405340491351872166701582875233583541284253043494290171077965714774791654954217900797677463641950536633464708826876634705042983015879713132683508892748131768730854219422937728585194732833183999014768928509594641920730841754859325141181858061141183854656264702044619472459543751523384801907975029374681099116156817098443443423859975447443426672111428626343152566323432697800158572352740227767165298542351734466277034089754872670105689683757563972195997577285422529667390992612439747080595317762815893744987354048054740782750212938270526633673989217087913007323389416836207326191404239388327287890415000199307547509314027880537719835258942419517097391706424233634866279869973882014960725392731010468751645204764315694433781956105507412224577404314065262255898192636803119436386858458510165177718292998300244639888187019984196054218788996378071845678649860992523059647706471061460783745933557308852396868617306408835725345647932534035223193929979253125342496465000639303060655417410445392672462603215154281656997456016779365502599476562121256979083517869762416701845593830516060168065992535020924681528996264845018887087325913771248419067197541704907795439346644849315502223298880292115581864517410578730352262743091550546361442701138657305257501379712348763795907672219111070968375997093637779159141590868780599594330964110270416268826091351313671190540162646303239944068469195452988137474288078230301386136999122761173086355441531121668938720627366470904943155531084357449847722841482114527550296763181584350776631350864942877913279194826893178021136353832744854464321467405272864388148445365815621983396964732722698465123438049836890865612198323331056767246262329092429569158012223919780076143055092078144754135670139780361808299337156221520262501727196296112586729166252551996464830225817502799679473101025115744382432926932282116498648498408201703339194391260854959904562345230798436401243123033226425709606601995917779675787375114102703739119498233353970250099261850813251314276081818367763405763598383935053652266952359580522284887206855980795633893705086925161331293475092571499327118111727283492330608265709716923701766037027671818742890481833326036479011857943324837676170353090167914065446706150525789797389772071909977523957467608346945710172647577293063528481345418494371065334380438010230918791848606453107778789435990689190828918282654817170986382035264287823999184614557806424181072728429181982259113335766774150237375276004788010813370605047731849368245395171854949742555496185889329637517603705011337828226616571156156712613785776911246543202690234636389579129831978933028069089377532499267055713744674085474385297719849370186218169767366843149354693913500619060704498169853495983934198389592077433091030003203624177910911601960441221266093726644153446895469063695407266619327218071415686201156656602977393692834633671576792303336871059799925204715852214887299502548684064338796415783029957953112020203356944078840881290574334251590782168603155384235388650653520608053923126741976044470362354109658503220578128643140519807571084872044660528148859510726806159341595320474094183166535521378509089930950485694996905333411300690746441311362281925743251092021387813213773168427025424764054406205437570345962776532372419955865875951648099159706172051492583783170204081502797892769596259486656798943881526359196959435820775259508702420575881397209223351449314823965331507455688172744053349242137380689257391299724529657647021178895210769757030847381468187530852291540246330903146044944459362069392403193771749468232498204820562860840785358893206575003069084995212673675074212467586260068648700990295304742897096628670551787933982878693058624560003455749062666627976489784674989069401564071261514276410669126628990653386849204616542753163583047553898363582896720963829500868432339146273690198375779861466917715360331145383577198696819913622548733368908589811231771060463164903863838346885493628529142550341852220106895003879001573218979041476134169071084936012229828910273254213918273021481075344415474029467521179445436377540597944519109253893634880971573565137703743724601638609792124709182968295054421297094396364052553230223217134396511761935969484205190406644874334239213564964681611190518201290857832211227162555545767154492530585713873306909756131414015299519511716051939108916833689925194922396885816195699989506183477173789174812387327260574419686103228708374525824179255138486433441323107521535790159972222012983855976502604035501439085212549777723810744281853058346029008007457975979081792273336869871845825821591409892559381083724250408921267441564042962897296264749339497553760407662586190459190647689418914785217995306482954556443254283885176194902208588271458127145280799283164927497990966094121662226263452310590334054614981069022153286277963884573188502902639554378061600309629128439114061996652043918777553842621325171356163230890828925300348584577262018744760412709767520665422965783829594169979932749922433720626890988195179051082540554858338334674261859690317399506096217266580219016219994201168587494922874203423680552972551280453320812611251610879970937755270508906728336813007845658251030541901373057557470151559056273747650565493264448646803551501014779973810308753977112382161218380888177854726901147995981829464389933354224491575069555498943236202491456260161601825501552042099640821754239098454509688465184513670998155003312563522450248031585674215275257658044541395911662569482708807151532853821082083280169801556898306118297644435853190655298971802771715086680422557991483983219952864492583345728250808505763321567116128674377760954357362988890562686823773348386449759181620591399918218115128940613246135846532105912292221522461836861068380476432787077470610858378601672475780071701135654978223723845136604803452454392887541401753476864547345156051337880912675637451988214526422732959699688154308573741068861236064978662912033299561944281069021173972091586370864644761686808301044459889393761677778726483483938050319302004075500994152394445179177281545848996739383672144469451177530970057187774899372625372883875793947594000379371344334667167956820363702982934894713518925557222391960673430065191777289344819538497033964282174329237065271680610038698541010000301461409807438721977487294235340059343859454390230100751376217764542018850880313279649865531896285493253525256172272469582737599150704913205495750409338539805527583742027368125036810020143628218777257518933517392643851088141831607213024084484351381506262109292193841342645038135461865333087253379054962179571478974858208288428058658843712344481977683499415688163207062097745859447207464329532139450890479870827561143438519974387162802603483211279484328660725778429334427106383239680456536874818078273103312289852458185715744414555283882421240535286648793380421915562545924069928830972834073479774593704909586571181166398976356345139851772699923935876398541574145519293655327420648618743020232233310917101825042951985024950667451955228539733217712968737535490231974496250440895762280171665564847631655447142484926460050258754384928396152750097701002808992797471887869877215052460562449887994905067810357113394108013649435675688363164461814390544028506085238742013624614854043253829374138504576324598912472544787347251643686958219145040730506743127657187329362830540821841858273758798648856737960739265455583088623591664352795236998885307910933921994805540937809024308356970651338094356970829040124813696035538057889725021079704219825747357512960895109656294195288413238323666407411157257075490497342851471896339377957947259407797630781274150020281340618088044324921933998054355322884380138416848859902170787681281401143341008802320422508816471304376847170527676514682092263093662675854649751291580389740541754840075835363187680603151034363326344449018663610374844224931871271798963281918306787281605860311670858778666859294156508697312445850444093353419772350019085591397891894731853850146865074621406409172606503178905846578850041120741638301732325750707343661326202895496651702158911068586540599960788058652874539780684307241118452985808610520154344292180171242232426374274001422673262078924570513193190581845550426204788922650095039566587272446798849818317231576943908071378037302778016440244801119734967009197839298939654808441108871005272677295644196893746019788585466900132794378442933862195703446786236166464110112468060385373150117409776903034806331822243715500964382581073502555045090086588410519645631304067920023860793582254415335532537573205275954818064372189877835510122631863681439309143862605455583590116571947765346780616547126500849917857688279323454311527385474354214599419291185882526074665559958755678628737123439805425144682490191845879306609269105726448439136664486983895056689037014864185266332102538060616880045439048713201567713862076012771487642776037601917673850676094049584392026464198908260587877360993320024430337065991328507928187944803496488689025612901704397757235500933923611705622873743100241861941701175848570845018810817547669738190371950444741988040692016193704416289353493589757519818253952400206955780957362580238587959257246309744401047538242702044376453046048737042217358497864132880781526042166148616656841674122971915905824549970903930209961592676434292200315603349847748804871938999426406234265343480380267839974827542688490715932958382418731880854737152418352861145688506997773257015892353332101498852880940620564551486726227182986127451827650577755109883157329648439149489638763686126547182997276361867792892879216541541441283945729571553564932599490362801947604200249112816067961655936312530422807092270804524945362745952610090048634562556514605378645200230948650484217842419250365919125377120384341309074170647626341568221707036847083218584001543996711863178036537163780893133347175909006674875500566931345026248648414996033861359884630846647771068900463913261433175263925300381879697457390912289974510829833966294600418126173681756739209485268318272721670532487530868759194213953252056812469225337491397259010614293128148575343059953754156768819759081191956855653986213573850277477078417553012758447459582818475568480699700441397659124058605072143176526583876562893842865684460291199665723789323133943354015086420069733373172683664412742043463698108840699046418979910000270858112148371028725592164526779884935801622050530664943191671810151939502708952274094289826912666764117251990666551056986733562289047837504458099078205946076838554517117940112865464781577962819129302118673204088442655732437852337295267836774811668068621732224334024931455625688521010916335000019447676198110311881794923293381070014899198639132944689632578717145449555517483603814788733416168013439318760732598788435792768558482917720444685349281627319558971640924712911037137029478529268360534722409909726562706074473665467501557731421559878972762887481819573030099676062344863195684149580634874376571175148685832617208281314686215866304367193851585639921755826317024028368463101284778906495133604355338884839516919995298569527111149128275104513275623825199835938703607497122667738818268669666440008815596241768832950803019826873765409251050373907323043439323381244291550729618276339108105518384703755880236143863141196052916365078373461475930248432844571601035179915359014749679649844042679246112868701353283791243754044522013928640297896307766246773595371705046057129930736187874190727036567607720717457938961777448526551272654696984393604907710318885919315033851375730140940123429764917984995215871410667587435980512869373218150384123550794621367265256851601170741688416281309670914448056477325423806112331069655545698551420212571569155441621932076021943037034707024914726229482087445784490344879395251890551513434775351818361905166580252956717334156922278077815445510714320738177301974155980044374113544456643179665430383832380505115440338879765423065333936669182023638943123357709462558237242942532352119225558312250218355536834193520511922431997442712522124200222764828194815829750715857011269429480204779873931034085956827539099912509583015791440222221639836570767348476172959583219361084307971082759651721385712598626989824067839336466185107959670072762524509655991140188203709024615878289654539515963302501874659440585642030157497509721669788145873993258134951305349187780913400526761701426181978142466148792405602221201735418584128931233761258537437472055395835939171492409753005378533768014607997708899152124544329235344426377942467296769120341423626073145164813900342263862384337061069385599700242267015452968004394802930766904527496494515434219112657897997758759208643041663233440229814537443726544694996629572866260950122953137805351552229422919986939671699071911487189074833105938398837014713252356615365876773446427775218888909702048040969567150708144082853597642806522537839105623649259398795683601418024569947128444050116618339630820704770366715836377805672692077734975191522733253165675928363077643360743311878277108030195461489665020363287473894746525995701657636798747641437006553603731349065088466745900081541536119401771525743366169081880659197678949838525067396628943389517188026929756082915010121279730634751832498617481283008071759906002324090086558241718983095486724456127626515566356456759942345132526303747308098527222149282176546957321003480153015452736750826463438478111827040032292363015469374714403889717935302107202452951964819795649170365789023578190302806244972877247470298213512963795788416861367928513085360333679475554460895563446198626004537685966108450656090470188074813669837590216212966956581323033254728867070898541560225584934026847167520694262820766439977165168398873255060043676259484521943047622369337792179553040989683908513321676011695165509655907560456617100386875308061856856033579141810879769806003759386619666970480014482583619685306602891982168788837579872018099562203566520269816054753275641258187364344385569306583685981795387483509727026133514968727292613807215252877664304798613785271874878473581051194402167722523310262790737822168028851425624279713780872041806989856720363051106506317445311871121989946565245282309022966502507301862620076056704205544440488688252159754132737484890916077847702209526401546758898651825836911790067199394453210289803332384942208250254897953628477822974203693267708360634051750622473239168280860450462312118603735407011257879818681213506757664316569900991805467809287691406217993202153589154297494186973878218001536686788408020704114674853976999482751085023480826182456055716479002703133071239145816022132882203665465681457801112098450364712222928011834855544447745864186591929434457203260357221840000905439536909755700609422956841677320355679256654737365009007226921648779214256850448795911725448099248247789188361975216969357926109414592059896564033684819786139022365845788043923414541426406885185078831828557890303017587122651982894228525569248883044610079512291797136151957890669602150823357252467048149585807718271838537189884057050832929674137451699037176285479119809003476872093683589729859700424222052808647260764403551059868261949383971032505317807832265383930970724945321671515314917389839579094486203076945682072447058754924305056515376202131562705142330899774702663018304289060076740761409873816946032293543529558786174613076869861767343427592416268801389714992395735211974768686463134744216243000460163648166684887411326836821343640151676611156843902428724043840036526248799784333028669014261115908568634935456144854548966901332330424613746374301037032268571617946079560100031975105409950764943679915125438919314660153033074756306661177846276162975768912453329393702786483204852796594618917618482537180793800827390678306223642920463703015360569297894036108222109496525040679485671913649674205427387245695753664269239206040960938214299233635151463828883300945956442911466192646949997206808174103998046173279543200036345462605045387975863991532216905041009759225950233767306175527286994857414117737518617615743569214314752852771906231579247704769243286775590942149438266264503172495567382674708932065187150531557732875314248339808724766557219534121342782759368324709465078545951526858960769254728193485283249934353215726741302530698276095135961614437302025661988814952551826874602625080007312392068220821286367959130846771237457653413585896996093724281720278076109710860868779382310598124540009148277471994100723742313162226680573349010222840546586557674389448385721444257823479603328569922423830505328293684587950484547278965340466541507646993725820516258443056818951721805442589080446499665726708921184348229052895639219665935779589108171742437111734522071363296700228034056598627955317362186430259133052533885082912086015110237810282072152872922745180494247134755839652797581719337083135841582098075989330799940829641582049149397677685318568926772979079866302852464864795014525578762074914046317659915187756032325605002387180665152212408892271413247980603531499217555684198996420079885958965492767311054871605205415217375464340150076969034291132511864359684904126573824879009289634051741911472812503471988991029055373846310436723262378408989269692734074020629024857101460662275460364490648609618902651758545172599029908658823271903141806822300318037433714471444559751526465799289835017926880715019950104055104361622501055243867556965660550913687839284108041159225981440737379114629207174518704190290247113513375936365988889813989312159693551321145541523115857217065956909037105883142588703482382041424979147584734092233378431907341648899856477312933582430825428150956775955702824658794854429862269665888485074264788876697874715223406650192739821194018979203716637259406325072439814593707716374098441558105925227275190608315533779728041421199388635732233904798065032208615938075756097905752937567194929988682719905041872346598177067783274686683378836138002888505700129930916309144152380582899029048649225623143759405914028214546772127037587495785830311630760803936947073766578010096745710558532887659382599453771267327891077083061791703167055699143213102688945603336235407736379771239273703002280543427119806796072057791627104935124884616031037860421579663029102366288876804366626085824825582207497305228194300866148702353940282480933869894689698046074105389307927562594145864673339272682089266234799774735042631413537251632677283591328458942258655361319244074507320378985819950155697678863861457000105573981439410246068921293753395572955871474312654529784861940181298222180069618083611862393264212577780872919730462262929533637451808677262690931197059564865549030357344695720541103116415652704700129062176789217885611599629739627137685017557777676860529964478029442594715522396705490866490854657706549471927180719261061878101683914789579537991174624020922942887797131512838011443494550756282545426766324075652453243288773942430854961256419469395200563308128751429911815127135691228991823468928146321754839599624182167797804781495377959751452762502449352887322545504569519220472988547997244125878993858401703516429382625312678515085020728233032684193646824186972441906092977684261279319036850970696025330501663730500744400201701387955617907076549601051478018008009244602763003403624056812614988616259143906775127660739204953168719340080632298370791266507414968677818894766434767103095259503994391984922337990081856623754661826134251875704317338265955885841117598300028386435447889835254081658045070119187789990175020476370852250440107511738299530529572540089648570791882182149313517168990928387029946103229177329906672753498018068300623606057154867495675979965220795028162890647943342688105921762549128704113397288699076090332525159496353257229238967138974387483264777604696836321862611676426740698215561989436060259547179496837738046681387560483243150229617661703887540546963364042101237011175600312910858785677686661897389997661374622698006361532070953045894109167625094708777657669252976903684326371497428953091112058669035637483272174370216042022758168735200446355893963397145974430140329471618979172774309130052199187086521667190837647443879830217137536034271207943129858927977175436898817577590745253278576393118566931522117358840993366154650429952087551722110634712433350915441369997299117078739527642227296117363968243325666135919957511324781880422840989806509353174058892865571452840601906321482668751877131494249216385603176089649106612961442733489145845529340070979657160816713322153484205743757594580716784013803389062139563135496562295299194772175583947144521423271007896226083286227791175513235038727029681643394127530604286413695710105676869645337535530121816167250171336644045052944774391660365935890159925984591527789122124485577777603547129055715896560036499559085189120889617210225277222915440147991835214138179818317538045522747432630271742997834667740698393974235192065214374809183798107860225262811672461140114811467691743689832015101002404703581162668760928129973935482760008509192597861906380443263785056372173895318064007995417427431991667379928600312456772068692217106459387001507636895730778896374582101272020551730885281307879835532645886754626037186127611721056421457462795469709768608769021331371788366139490589931053174495662922865119882488688364627911012948597832733320499532435797492550715752301518989699774919638198640451553443259157770818850641312629702983061382936799467562581748629802965416875071084334354507726019357157933859253157254378663767214345253812913795013261606120722547283070555590075651483990499081937270075278675341902696516039102130728274421829307105645327929325298595734579332598975032195312518989580589647921392148999590890801565941561681073512210000959548907832657587780551176416141061003957998589595209534735733937399740419882742874878546816940225210161122897766589598442658725422170796228204071358296643442451625781601069616569578565285056683522329358311055258939474136989298495894597785264833252555624659719600737538821184310109906691213298468199704616935984120802454483910678247032891067693511060250012694578398604232838628566524499576590867971293316231164311420084686051892551521402113087265081500139229345122587491644088271298622479788202150661803513316631645860361872356652150524943968706056940069210098828547655258078191783276320715061165414340106836393860348596900897036358607876822295906705924685176469852290225782898981885684215390292461813076662777924654634539151473349168782076186326991138878777853452194365215780128047667121529113830613345652055373204210134028202236136169781933951269334496338037394441368064609936436229724986256400916684820139779366486048246647903794060226724132920223799515060575290351197705130656283514927164350452355074131662034732958725229522775005416451300353811269448960445904980654701504402895282442875955682792745407115074802404190485204113791397378415576288443178654994892260558736622708197786028530061486950980794756301452804623226068230950799053239514021115934931584487557227976793126854124858949056844422168355925235296885982468777022759362976619803628749047187485252175482743226424583736104810390779978652854121946713665268345715021992890080353912889826092694880365908790869586962554529451881807375378582222167483306051849301477906654741292247863237780625078918628036569085819741247207851534589271401694990933501327045862111765239451708528023129914030402548934814139108026964522112016712543035980343082676679133861706775908384726074768300335811364102105270638793192638537000458196771232065362434489694861640160572991624665403364413849002869852986282424796155783829498145874765526853578048986795518497232967137768167875712284661953219344669504891987813715051773537679829087907994759043755721678540766543190854049475539872196365275042957229813716844877334452250889221771594870674342569570462724674175698218697337007298655125089744346673247808321729416583567423926541059368957761572310066759890761474690992848474186131537207925103082133342015647332534863254985408940583013833161980947735210718121563600734583407734305092152227670807533253115217053785059436364434627047697867173226613349798351024691182327232185428450429569429033734340499868489032442560793839671645409973370547957782097926810371405773364657285691925886260047910961858853250844019339279471700313941759218892555629307427654140720637024278434912027048189558818009948590372610055878238602989507440160185455506032526640479290183456805324021207905011417860106870925773899529793835740565139854086192196346944445854240697992020331699072782186558625478883647376311767809385454553216896560041848076713382415703949038636167034006352813160185157138274107716705326888110534396345884603125416693016494357868921922508735805517020131151063777421093123469996767928949972666347600234620722056341216008001517494956169579710901707842934598965111398092398366488220380931868265073796169081424103154490459861967245626114790822995083009891121126633446320878425049778224206263230928806022744964616331531208431897782972190573249700988623520916820469419615288684355811487111761492536513722785194526342360838949294395465200325009192100842647161711081558484066790370429217801928564374997640107887583039376433105105018797348377236073804184461016288603756796672947084444092716984454125813178588262897026952694163403737885554742488197633296086571309551277190529832550107568179522285629831396215945126458984321053201293904839911206993538031482691504617765412228515141866455084004315812387329996404848084598980933574484164500288000715505071977760535554775676136559221402809744242765783437046137804783322107775659491406452069799296371959472065707690385151427595478768224701971831525244689143492452591354870593785876373513575470712295003070970231842598683422251370599030649556123289830567380147305869109819849020500233734800004109352945772674171633910767253085271077879259300324238862234735845505747581365329029413822248743732349762411172496606191263370323575915181133883065537394941758421852568479177944447488430862440985639203066902540674934897996824724839169697567928967205873027742886155569770315197345017467535393596993253734893023596834119008197607910995864396583459327537721880422963140256376625191093488657915834035738813546507306712563594088749201621279477854648602891297616697135234092377106554851115634684223583362696816870728960847653147943687098223757893084804066438208236948863828695376022896838283119445902080937313088321527876848670046747161708433089550002338035274121492866971095185312515121242926221736427403979299359745978596741789386393007541384966790407147816142657660142192541077358297200698950931651433155379836130205308494206375464349481484108970518996389961476565815077993420768988754043852658827518988765841275124273850409245358616857381561800254506005070394030746655987860496137443130399351576062787289811717364575279739090426142147099009280886643313729558615426267887014577348815646941737368734495566632955628622973318983254328294781366015075712390537459501783296809910755587642679382326730081772495259384229655609654280808837540612120718479843360519817146813256962991821943913894918441406723254339742362569289126692078162539711472022847141014367281183764975532432428869460088341413424509851376307528176103407918544260530705833489628910487418523344955913836128112164510458893439582420639304444082959785848943275390419158723084790595246710540917559505844847014733618622791464041346080461066781935870101294898991160080955009991627664992695151140598409606557413513811022450247108680441202809187823615976087615270839548825552027402794473922309671154419077954914216621985428404157098528428279040092839240722112581814072536003439738348592534112453599026828098390604659334573062504672079495264049862081856801910530958525619489728143564975027707992761060695071345256886281951864258297877710373871938760505025684727000452010059874038096025640612653928134232014776194712971167232133451455178372601289543364002231966087399462001274327566479419416680122782498015085019702136901410492098380956154060499856374414867317692558497224720731747056022266154413536946829450431703960484456565093398595603157699161827024175361986690980731695975074234505724509721187361126719684236420056059082640895121338323129180697509085564087889682917852569918511951319663198605812626027577844652442041550123730086922424543092696583790692655025222826084757841615295663544969972384634440858769097681230543408086824899171495767560397291477755349977596282977554458977171124282979961966315119120214598414302420545556523697107643704784594484781121746167813236662920255753117664472377271114583767883138350434936471189696541262346618818452629257378541936336417695598418425073494244004663831539609995580821695856354137127021482154959224014318123568186403721788975733213346032177311770522709596259582884366500986845143168150096752485480641951924823095015449503492793995030603194787736714352668787591729979795454775950041873698247249213630275960846449535827400005882634848980788513377238797208666236992313431637833650575461072305093420644897724643082194915531191589326273043943272828010828791191738023252747284544113646134492671169829545524027301311103283759730369376101557314950171649086945653817969009770882373191519690639855885990613837490648849148118948637979064451009822637409394644032002344982490469659527212534219839546937820673831961563763510499157235482485097966919510083178762365669699545220888806876802894882096926764351377716147857265020302322717605175030619980323289170176910794933845797694996150914997438721533248493812117472738829821656238329111601564313051101721238051939806187587363382690957880115608472684499807226831673561234564247661218377501687175944839917685687029185679806016179374599073682382506624956218621050048887975499572922406373321798114760204427007119312090169066978101637418456006651562179874279268498506351778259626987924647669595481304116766340041451343293239100109074389623655391402710657608107379029820649419097300454228703518338248412582271549977270337012827086900568859636299882407908754488169617661244032368054676258120859658167871491577358395047705925326979103101743791244655162788889649741879233085918517295923326133371615136943181550978760311151504212212661086777839576444949942542453205392477431879583879564907846800642204241546359594423585390995368012960517183242620117828906564417787540801784117339494538517161102545492703682218197602457565823390584689356939026445509919238732010442747147602545260678848351435636761264830627681262232821905665438552401176936577291101551142593011586110868764426951774933973712812390036734710567755434991583903006138715122237645404066332250918666402686384906633872224737242695384684322684194779548794075832517234568342236807756332790839817043056254421819253351067955686542135378245053509472429822341666238459414369137694321687073989890814251050105182630489232237223336568672779170747488232296487735880049481403912863318330066573497079305292486120050119737595474170077688975077236610631671072162115255699282581196283314520768080874801253032974479660580146912352578553666604202969509986978977724594570359181155443590585082151847984042419566824258174825777984290484504629619582459940112731781514524134339945117922973166025498693677500867854672222113624809836694217262648299471247431430966756820557714068611786232921675950595201119938843733205075472783665255216147841237630996781435261453562647942107910546787853259843330657745377370247877396930623544766440389351863292970842050980178973322093917044381163338468706123023624444066336064171712774629630787347350668790012551353759696981296842801363082666584574221660141391069385140243067288024765823973860218541268301356529349895410728059515095027089244364481495442927914504808656963708672376546890004943290060543076965027735002386316355493214239587262818121764814445121157560484945821793366104206725901378169021097718319828880821481703251325352670132754333261579368656670592631649535776567067597973832040048188863718104860117008641388898412367687582527729300789288974377182989044098219374418608115811724895932824359359716584983292938611942530423126551116125092305024198252740958911031947255903401711294437502940378417732448270563015794489421637180671483273144875894605723029340917778375511235294843944300654120018693852440083741777999110077828929222745235092713390529801222188741111725173851113040574627733317556217336098941696321994160505800231707155175500404815453608003294339858874234866657178576388297518284035980316459000664432361840307721992073402549624984736582969767776462940473319469976393384071146078149636173012424048479637766574510428932707482216641654533555376225532198642223993762818403046094636805122748171814174250817892347836795956913110458183270370617681494811590373041423444335296147449816909051832104825646186099418025155025548060273600450624452017266246669487047764217921510138764431489791244715479328954645554562990704628445041828816209410053094380752690636263867368474453693339359910977389811982365803778682229547913264511662314428444763913454322404905562295948788016041873234508616359311370995421044414500373479692393952085306153411178714800097323116761120918175483714571797906541900022415772030862708604705990926891968602950781330190253532942980630623070383118597382451376022709327304695801698402704843688234862471149125940817963170258741248359595683724111157636005350127485654943724529241112594093885545808802348106136302094912409576641429357410892961577055153562427243337825976845145433771559214330302064206540488605273445618565971571004073213223326399693552182511709004704887863985164931805692565868966605993524988096456517194906325456451451160211233691125726411001921858731645778099813458442140006050789295972892072208550029837036002626012465076773907129968878843160255854832236235401417842303581660956447767960580541445173828977988638130970871079160095494675163367427228034877590796349236976230218914952292209358895023647192079435776659431404026852406693645086611000319255267413365858774951266517366994789716606411178570823339995380058149011917240896069490674481284289389673864218442220834240306505094590103274438627032040523938739224708428306187368952561499109943693340944977399357347463468231612332158449976010904508948997776080994958801153063833221276977381236593079353963904263192656828549104641017548045869387059182222965504334316739585199210709032488841137831398832092733411757065780954258280641529683613658174311649009049985110547150814045379278865717077782930778258220883672169634181316585661287091339950579137368071663829691482002696379108662984425969194056646005265131408930635711037692709335359661657257159722473909457782503506209099556716503069155528022071007842310488886348102675501897357510262872566404995892574534789375709808684034554734902209149283521622428254730655730934281814675542963615011752073975281136998825516625524776836704090341938550896308963070347651056981621723777974940948880360540570256563500752397278502527941661775070433731033250354242823761106132919092070992612375017403078986610229013257089387968506752969462396640710021782509362864517297361933988804402333673384765211815681351380181234422316393101502850239108663776380928195795205672581724910694623198566868073008515438994451124121371772576664147248516219839325110104222666548008489038743665499969363220387106169953531754718496626266763244209359699403961341991024226665775150533536801129684675197143421201600338009134700261792275529890264939191522551663794720487600796137357930912772275565925065442156963293701512581380755392170626506232103168127451630891213536158075653341593895305594131267733344851589125408980579996388830836255659298374868247216174505779003439107323209141536023548109291690697020126310093370885342285631916204391454019535729586898262380080262624450951138067020860686260421161808888057673454890019651644063792154261666753314740734721837895165281680427005236908041990617289444324935353822954407125082597255111116311458854233475148701424880163153133412318484825551222878596537493968997399608545094852199696474272674167653706516559456140980372526372198603871610873690103299343986701644148122581187341302980047032835604993068880554519128304150409266963333552980823382705283775934820443563330272085088129454302022097268528084698019967983427042233794502298996501820270910654767973118415222702046673300525111354522329110879283834294565666256502140773117121710169894567825558518826013286918525976694006690268825033417751223907116048181222083752790695924902543147486450438455507145226081886113271558609860674925448556733184694364566593679281380203129727443449420813261531114650298209265367839269909194066878768380601962137236242726629417968473450772283413370967551893424522728496378277459990129379472741045197641043462957021147085942959700722418477954683367871473485718741724598336867035714620144824516462941543625661131635533133041847213752154112327242688414974451312991255974222361652947123993172308474328580082941280155620398089318094343634952715693739374089306042537388609771720075200183540433432222936984574564448400013095500125528629038987260714745973092008638717933609528915246847143094757571829552095177017930159443669185388351713934501885813926069302698499748579359583074388337755122710722047282909396911777516181907407425083657054379889948785668542822128695804746044047398228293578640527374670942677372895306929284186898528695768690059179413528735595750801229127722692720338164790756511630742554785173158247220747631449063512095770717984714070958351188906267216316408653278757643224083115437871921907715703947089453152117169164813132362393024797504865876778415097875670854154667528646972805609534304551309903900149542705641463524520706515508437733564354255613611418046756548188260125171248827440753407805270705659663224725038989435835700384327587884231997143564157484655382600218219455801641958835329812446915796762942568485674839421253131066899544667536341017228989853615940949591976961460485131167914230943666713858463866000005505706842758110462756549543809259108277811516616219318024618731037525243735692312838490866375543684295231568563089410516963942547995527760120097026627815816407260621757903655258748129970747055932201804577049883063213885984922885853031858175761973545577830695072351575018774607514234972607254613663669932767308914269135732743695874155697111589793486758620020538312619471069280205299735666783416882593438972914876616650933924450856743750097939826516906316488030035870647096284550855051826232833712939904901954918364763307095979076080655145140521369688962998861376538140446605559989601433621302063982069966048429248562818919534405507512708444688624161867455563941536886920546799142625131599581753816142603197122653582091216597431369585402962628723262597815870360009305459112716473831717300204076571161830753303997188605748694209999731135127195149399871820823418869745294459389798847263707459316398453313230681144174514780209618926783213862903904682657646884876638358725979223572822736504619162249080838340135128645230127529824008245227493270300408886045670309517876542769316394936498622746133401180201671359859673106525503475764596739218623916148125354906867919060938945552760946509442243324069395687433149436509235865869681621837918069465022779011707117995404479502244562102037786700135331008686816940391233636807749188229476981843563995555937224239284699995370818945938799151465165491640914305912312334152275174384953543883964153778051290027203007097152211536879998093916097866027627779190397453971177263291520951057959386325356564176229770986610325910082142615102908968668821334641034241940687236474701777246709234932184605564251823436601099091938864252733086310280744229783683009777277011538313641683798105052276425335285689246032659084168887917251609724390117165635026790392766936043257515968571391848925444135371531913553737244259537591808820295333575206349501743802763854128827371677011158472853916293403415540836241235064301713160067525375325432162186763016323237807313582639444953289843030833590690691330899132313147991036962425009700679155848261700256882809508251316954861518039934547073140407051921554159182572096056676563858976497791089925651372489178853334859298585001631358826198392429436752495382988522493617197129206052707607253406158512750176280962798609955373096625451520180284346114273057980640172016887115702686999288263358977053055802801397539621661622335801424062429404446072236651275730932302367310948377003813555835670071134221916454527021396015398171418102061065513706066182621260629486617506658448642185093996714039278759690742795331267351814963069902346785674573310049682807585005505151338819470688870147268600281255510679098195515277235944183188807280562986250467478160934950902039748002831456918216184096311144231468670770196784764049067203773983646334713297895152825635595537456160110070192168021811122870080882059086114021611495047824214385826699165423647058456195296778750792545800925367426397549090612767522491316805315597719060955290609085499884070496449554945154104582715895665282275096995700433461821805813743185880954555928259236922413359292135854593500795058489589806492374146819320210767641093926671527475590255902294860236424397738505587328112863252150482177767533623455358701352627577518979474879662066453014745483118430605799108206243141817997889496851678539719951996174486515163862733704796311534335940620068212836425198076988464006298691797447274973647921748439015818631299734703003833677868070534243366716098210917344455016725892514723620378289083832001981342539209170852457001154101640387686424867343876470005836558945581984034319495353778252318223505820092999862234320805735690741166403879461386861191468482414551321786277962808354482512023887140258990151595722741807934696360431077489170862563767509499156064527834273530950167746932490111148685830307284482299776398898339283444438827682362701927108369602348430829084105351665056112413395102754157672413486943389116989907544120682786383020739029578571340458372095547082703080875102897776318573111987354184134325201443352707595213268060194545073140860090928737339768405177426164114913520651523811714890267330104183970765986817210180773823666429984667686280928248099585198376103989997376634159406196251249564509388426681834484266018713069237319471264988671857070940454670432833501220623961468775426414575062353451428901456768969825781173000037999772996286964954824794051008498590558758212509291098123742206130766299075117008668693533033158416546282218601243224153660934774101782831960035822387787152966012214334578910882324407490112041980044412787882552319303811161648417117755011631943314394090056602959844130234010222287977528181982213083392616512102675415605499916019794988701613467300564213462235342379978646889453347880091128813235586183103525613006253120887043353994764654953655986952335905517298643385235655629607766688345016709428685674804365404832721676538025960846932678066512854261690323402884860958407618940282173039846997650108613242858942401408755356503164975945007218705916369214421388978435096076462851299084756453009928363298223630829383082553118594665252766770244477463553762400734222923967838251797053504316406992756154910558648608820903999143215670693358009030934917535819427449855686623352907129939393321412176265096155126866726490011043185354443947357140465734817678109402479103118894042144559030509146528467589997981884535647686656960787184452747685353217856629189570614383934358161614938965663933741575234304591219691718777292611139529631590604666021014853250700621003683396557951224970632402640609037670635994897085866724374437028861164927694416886452812274466480198746869304959821068305428328950424574042560099215922837384530107976857842372294817175284989138420612427995863052115272314203761272842476758289747706408267355094590317047483664973883465357191825613465987727457236366005207002651639547051255450121429495237293708592259770854207592312785439517357141680505361525863833737214307332497571526354271906530577794205534619620177255862760836162828259796485837401242728469139073154929134343307462481828652925445266541882995886161383521218678546245246785812632276934242792276957086888147958555392878461602609959534620331978690657146034565923321089975637050274331964325317059149022224530095842802257355949132787048939555627640859262290757565927065129874784506721537577922408946825060633117036030425291656242250403464480425036433169005914052252351030599071042501240986461641948082968199008330571794954673377763360877614226185585923506623040813754779044237044060459356563263680175746454728344761462801780728309192123236586237415662957772123965676567338199644575947321743131686059901205791705856165766722988034015995639134854952176095307516880384904235481740566779493721367739417905505409890140192978897661451775208785925085155948886763247042275542189619637289454560651361271113264613208042235655250365695580542842552378121950334311689756626468745959025831211220963345849623834133772356245971562259162480367181981988489989367611122756528237832610802766468635550487259457629313185611280852539636567546719384155353749533339468197271251292468045165617391170793666576330260777518590105538215468110306635385492616819304791420744968145832899036157585927734405353724108172947151941615710052218103983004791931808661432743167531385249143753665133232842987517900632466173630842077594521176302728942755375009493434989287417809402487568729701080457794607575733639818870849963583985701715203298457786598986774696057752664313456678872559361840594187022572230691723222574643955897942342838915711941515477668227338407876761299810162906981444663288849380722216686668347237762105357585451488824983689064118799674967790493229941109337181162495836308728033847854333759331401811718810273462333062623015676157307948243274639155270352522510425797482264246442309146055240191177254193074127723010559800036740371863317874206249973175460992253197281323547378720940157998459924773912975810227217287640960429655712915524851682611455370819959098503443661650974056740142528861281444161267117583810014801384160500078491646249012988930759162458514133712128444294498114178468819121824660242393321674760316124137619197259274770975087474403452292426813336604703146404073011511205522891338007644788071731336103923366189305728860650196885794013069647263730164772822893070579800540187902516533944318608309727678602213241137224097231826722767816867209913397813194647986944201033154265702853158132551563025885454413930572645474210412137241124121522497260221448715290783081217048869064975640206981994592059985670781864508219802216005254790118278637998945235383261016751607707769419169452756248761188584405595619352489166181892388879705979742122904122204678148164214647512316694818789397944458443321449125955914420936641903759637353917944690778258794355109314336180780444439713471231649817578401877721934396009468396954570953459377158674866849546669627618240526673413198647238197628733599539180842813865677508596927005525243560342546897447997286865088400707188083897437787156784741798277823586333336119753987462743998517793293469688912508151946155062415566762400703136098250511879504752588375787667652438984731324778337576097091982981835099905379571069907162102515216604484238974896052385567165923675475136869160684452448751346807862338138625162773446121807584699700777463201162502863113861398247145385649689873245539431096150372027255380870947494881649860559103610252670912387588324840926668378297351729222981315535700309792195674771767177254408562114034818795264609695541587577108107156657870477492268710339487699830918354025409306544618331309809984000502656672639583772404370869258963960795496955956264740019231435696029802064007771968706497647176130095678202275302905559075731673356635600704898709883960824932200509605439568954895932130730540770756785375140009271174142279255182970422223422961867349603304348452901755319079694683816671484074006336752562328927906001232861589790117119371964642361062836835367719834423556144803896761416313308221133927263839676570594712593394310991939021675045092545180323984499130405651127442195209972374620234126256600868702942646883947270048098336896619298847694543497784969635812290173837358591709979001646738728813989350123361316869474958500776801910910358152350190747143945949253275024117117680521085576509635308396316895497111637361439205041175934042916811613175168756049353140326579895690626812701673997458334076012274967342495486608402489353201193319546682800770131374982442692956611378353756762212533254499354594120440383929428496270258144413903174031942514944295493700881007379424017795804394583372264159701115198581512521617622066147799777219263763804167715350928592151383165751474859325735121803148819572755439362637999594911558656539884552382851464659198387622707242422199811428403131542384063684993971688417454646408685353079164399330997126916546551717383746378056365218301696625194710439630310618029623940167247220889834683142832876552431844022738137296592804131792561590154347503500345638598217861060357493976530657928141733350536388303880179139505073466311584813096694843292861421097841191170891784451399296860914101006942335591229082121935439126204792792864391893394849353096342668810855433907966949800906687909511426003597118727340505005632291867013251269309619045543055712291400477369898534178345313617795843840772082763659443085427449113237707151500878235451750182027046773453311589889225558116782667486135719407366250292877127524404397903841828837131133537441007995833931942023411432113452045724935820668257401575129499335130128605518219085640953984290942430121886046264676999875413231604892867761700013087382596432143672894278513697916823162222874962685494191322809176796482944855269363668681205206536182321744064448378669209268117683515543914952393418009909351704745218221298932653129515798729623270507625502856696011708068746720574138471878828322339164330687962168072636808953877429696705506853229764110380621814892938888158015823949618166774795833925138905053551447448675262630921300743440327630474372893557547543660866588224891533057437315476757339727969393117746565779408535909954811490751120575033325887524223338937023651066513704407867308119174925647809573944731967946739623956709462301174827602948597006138276083449478266867822282727244982812603558766114594909513656528103936882546336402422566670436484234899598378137679824223516144953173201281914029008842919643590372448119798525300630265661442224689660419650008088149239201486217464873134386235634970267781776172476348671524195010351660505296635246419554045467161161734020376389679413906768707001721296033031834489079416939573848449711648147277158931642609272921871628820865833356345557174933461441056436907334262112516421139369926546792864490316516970492476363119873425183526062576786376080167208415809091961882233106073594351257907514705768390908410859676651476152447203561862371126186689689206183667937892597997303237182211673021963666131723056422456185318200479207703645780466440340210111696565761111031757252185029695928523504869543552717188243967099864573494773642093119250715770704855560884493783091716956087560577018178245241007041548757766743788788636580369704494127359494069990389374473894053426377264163349423971943856043010363432333805001673008679182080538565162578857320796429671773389688097488361757154366773743636676709002548030412839420681540067253869236790299364707004958051937464933954110797536895926059455555734527825316151422976152177753517942615108460917176608894318631396909338675232705707439968159510629703983913211922023278421649690624911754835464718418253990624141907270639774606087838495951497383921449398705845994556121027003741569399948357760906832278057626084507399057691765304076773969465670674438495527180049182398978030998363786839612758660143088398494107347896770435881359864566150451422210157845639583583329924556091812241375795595576721245960479245808545963597773190808898505375666856197507896170358197844931409090491967320216469995880763820274716315796637089457187375998726564350993407118847537508844245054087231688551467324375540804198867767542782461152620413134558826577297318038226460074356828166367468545722704074550967132039941293650939628191392292588013412706424218514701579147311953535811550734281509642226822075721868108570517968400163773623570535243181899390353130172342842716432690497694535011665025414559705332906146705264393475520348191057221986809026012060829507985376229425226840164846785309923390957591543171935559646142487849420715737849708572061197890070458151083164633144533403029292055580445897709744871920166811185954580911043024927974870684053757748138143105180875790657987340145279581563960486902480690362028606219024888112436825466141764264947530393592795035953674315885026737400308006427341514525161361947629240534475715880839838389990769989116767175792774957270875182573587620880279991491449808966891449026303449164210936091929711793508593475156993156261977415906894975179858564097111555849242807066402365706174008589672231945111685266749639499496027089885967268091822502026857936809152882317859938350683778265321743414636224130714445376292221642490196053867386330369210535537276675545672065033427985591105107484053691904204205386351101607975409942767031143352047444831716695677337739097836449256655120010810561836627582786785442511304915286229786485843818021386967984707682385886450647471806611779525069036892933932693638970092458201079557135778665573288827969846485654216883275083475462393674044341387271852787989418987338180962254602110535995707509176792750337674532895412962139584973085575890757546870500911538619223127337726323667720741454222210558781032021833905610440665627392106666967039724134285641914594467858287153248098809277861582256220895650926786188206914490992893590050840481937028293795498828769817122088876200994188475381169067270469045742820378545877132810763938085991351676834562122375699905538804532819671155076336007859197719195144095053823411144325083042095458419829786002505327482075788311582846884322341545852886025988742212224930659557945495874833662592498828629931694191589532767246848669402264709406678944985137595968032875508693460312188358510432150927380779549825435627294589340399900111900861086950127462354373024825142190712338013642966688283033202599054812179609913728684404020805671375035378642442943321528312228561040609477940828895469526852754858588007614792805419857508886323245584718571999690718221636997862187133748622980902727761350313249525295038423606519687873344148250479361759850078452070737249604219596928304164726702634098852059788912780064460553180920663183510487793073342065049419010958200321245691442627756200915249687558230012713356988219217300980430272625488475042549959186102185148340289120496811904106626218841649568417072444988662803835395248838944084556473309043910016426870708942300320753556623121422217446841258487035768580862878562884129909249969463755946259616427926703322253571043011701864990746161674753655665244352327573758223157972714850219944648971111175500456855422919668050802510982773948372116915590080377788569969870639145969093816028467451769419973235584582819649279088039232378406012184252290550894104122326143390671768863141947081192711072065022633390031050551685055098684826867670126130269715170049550512420194161144215585011648939615524068423318557341418162439409270307256792065543113447382705778912318589487021157607946728782307437432536747112054877591557629177787876871391325347889906451012190450136276923522930375912781172514565910960949193345899751603072161556923668450961807681720203999284052880862007197114590455763711886514594093597820530490492695410443732279445827334999395804251710375012397412762138211472276372001137448702218434764417958239698222261954285463622242854761145866545092537234611412466373396920152322180694905600629036504742171488220642178666893123669996287543825483474999829835047277544586101737535575020375028289998381139808996790078008774704950915926775669071167772546929313153036322002753384216737858100625141399132194943187278035666764789465820610646000663319699431224897430256882485822156135863056708715118640741703874459866336270438012962211697265688139512225144415711643540265364510108333190421792969283780462281670100687999826174120272847677557213850120236564072234453812789253421064126010520799519298201069538567404732983723645002383874165171548829749099461735507061719785707409818856215804387424821165853513808527194508803078790652075515995281930484520248351239653512211790676791367649478553403465413062760589000456597279494540696351568758819467274863915214945881822730895939292323212857573075650061901279395646174880116281339657496108513800449583191482523999467877039272370880562497146769854640664990858991565603792700761461131671410122521621543679822482993429087731930274815151719185730231503145342993954064886509850268577065289088094243647697639613464466698304496830784522555061092039079345834535417005411195118354715014882130222484076525984882218693131139677548390155367219788443974393218057140709860712896245909896787940278294305047750855406710834559575911640399220424222556663972052731967080340823904961204469002061649504503230692499294869117472191863894296566551389202625511585193605577103351079825130125242109743578989488959439364001601219560860063893825557065252458823057380617055242314630524037675278588700828516807001893537769751331396619376647144106526966756746928647559791756850746198005373715800347738672292242659536283297337417722400848144485093608821186759769052184219548745697722194137683421561664000922520410436705709085350654652490288010679022099450022959799430515183863405370780457821372718445277393545107775397144389312170054603929742681910726854138482328647832523833491792815004241498564411630199593004053389876377486162892035121707603292770778903233114286974554735932636705185285820706648472166936032050868597504387821573929119898812488576747498080123769570745110653097083806007434991167080702942277213735759333937739749893407535600258648463417568428263400094979849413034043102729287330732861558659808291313885568030802924499309350637160756727859867180071850655904358915356164445228036281386287449004696750713251297933558333488019749920323722470390205149855210527761996533562462740175507741145819554926365974800346091803602725630683842765669642183305976506418209099246773001257566784893016292773793129450882931074730540480266966500690330255224103569772332911439390507269696796173670476019011165594688666744148817512093681955465984342429991359829037951366748603272508747894636912069200175989518774806522961163226244515906393427819576614096893719194539656101596492463903027520400698418348816514057453944775331482029136015432978525893017681341685975632259139869225649066947259996107241809174869656974485938085616813405179908691822204943435966810606644425628290074218661047547518842121729551140289121938245899568077599341007447522073090086022365572638150624204682139251319324543487271978681818526064437962339957552887641096209599420711186485860809094261684152731092839947910751269773977859963501735683219989877559121149028977898483395437209318492871943519607105391937414438912520776804957032618276483786058770776985964278392189682874662026764666937446886546363808562867817435458827017878318561808305275562970251387441178125432776801509323389491563184166295825025419818807906630332991346330284078203783447717837144844349440932644649002385029231336307924107622604554346248918857826968876291752284367993635059148533818401722147161582199750697471813712875673323767801588905139412803297722281449378907408054809526865509497905386934764095219224081038267491174626625917732036561345837579477457230744303412733951145950669386597947758850615726975108815915638078691627061006592868255453954898463511062402495441640539378916427018936326289660231526153121668446279200567033749076816301299260991492160695036807520727052517728398833591360700400696348740264995110792832746758113546773791075588842502729125362978901678926738766738867799536960398235949670785326551478946701245745364457268854148000518542461766657158008714845417760401608542046092191582611961964088603406271459845326268482387857400691010826541215724843990300203340148970903143444395881084048094962497897669177152478180459453016120260990296735578668067207126538778614950649832913969915075617161586506229854082509605251639452888272114440845451090369956790013028411912107046799556731201188478087394046368845157913233730494908906315013330383565287594209172264921178860431511024531154381061617242112270095752354024675841397567235782858458646438860992945758524204503546378522197615831110071142366203334816259616232464522647288618320570786322437647238282662505931002928854042070318118160545530241797558870930638919228702951895018800158548171687244056995429952377392679764835605772548168442891386103379968551510347158194840896815198124663407080608624574876522305656928258841203205711966888552841838607688944472118397717863260087348157982100606627777990221061918003178228286588610529500202585790297167108634936049203742671319080431149462905730378730546704993785645844431345713715338716764129268686380908794172323410539787597239458170914788554522019963487662091922284269378500043617905321021629478286312852972757355965485658858390082974420663878735905739772470586080032000740331723325184814023147923650040060964169062530888163764519820052354683160996861067878819042760000700496080008327463590890625826976636661746386485444005160861815267635666859607540026249814109887150060291156417244319298725251419297787901733967061386876313676562519889390612429630309226913603883491646294388762606198121872411267650492538192442194658926615836245729749451584154536716666326172930126680752684316869646164694887617939987443279488423472780674776364754299919871134793199439196713180235519305172020647512496274041504413217865923847836969618294555553753655743059757618037003741032797498249991331912222183553388802702769906168245003506060791734798202130180524574901696336756615008915713576676708098551880089414391867798670418147151830832623738474901790208783698958155786339203505576295395252184849084507226527704845033537855017279092779820143228212484416449071396521327425580299546540725152455126305920310935867274279746323655586003768404367787853923298032711394097579204410420170995820691656963718342142283157130854623240193671330177882225207201767430019154870135862478918456871093598140681215643778051006534397769539774571192614605926837946601100607134065144607174840892235927259899797036995307776832181159458574859318563656293234135692060578070979205491122175287858765656944941545455165976378187415776669098249289707402013410712763711499660964986756589140367144127217834829319167244910420311119378872558464918395733403752960617115384339763156347120149518073043367555127275938544998607510715198618531661318793579010862304323224386009323812671849041842275094382805390122135976370684876280797085203975091384153198015051777387846235711246132695369879160031040442706331313789212463494584287791034610832598583898741886757256920301100087581814256820083462295585530073355975594877726336936927728319082775622660683680052600964923398051967052655372166889747882889470083152210101763188218127212778482516799398122157251655446616738836485053224969064268633984615133226026688039448474328819950123081397506886209450900178892079950898135347030490199140155426651406802719107250129006856434613159655362748664447030488450180950107052200451533420172643638851949759532987316563138806225464769844111851526789728601757350760286980860981359062510591855293881413301591681261162190984666170603361627372203983091109572858576157037003136982529419918485674334114004875611281831010381334113603330696404290179276661422072385495252261859281662246603564811240743025655257071880382985939799866809884226974911991141690528321328529374779598020943979580803310681830966504754992707886628210490931384631651891375954245974619596481952715936033195344191593541525488161580091549227367845186569880451596859279766802597268658584481555577960756225172926982911152563947192734074755246133932217444902772589079275465438551434472379591176130413514682380106050697580904881019293136533873721296269473490036630467729124873651833839678823933069981188605665950085364175532642284813075163113322739001027332331649432122206877532958143112615224510760393584907306379070308895754462639096907877929532082130582447884741307018295040920374127460372720027869103779305176539113274076816469029120958779302279101956300413672413791183119065863305938810461705163349166846111945292065226331176290936265914832239128510723797535934842987947089317947022701522024232237666470735489314698226306974941589510504832901265819011797513394356978828105706786213354381909305133444144040168965291557486462383355984578066108399217948601551430418047907793714335682281826652605616071048414466674175437115705446590873591429375933632143670940027309961709463366543796417036225075991921100057900368084843525184996989406861939749607293823684755441526395553953988824200514428012253698984986374380683738181809276177253028380369645446694957241225804758451525893531904758776553806211801266627381732329077924571382057929773168870227015259218512969533235816408046006432245122366403985105365247528240117940905608975412259726256205926777524089163181781174172561082176460712896562128375903159222010658359160071714395788816104037035430835445881584004421818484867790848995104216352878551602483057476210405542869063583667821661580917950548360307835473707965646356442286487278067252090431760788848963864734271214943610043486680939199842036836342478192254319492521315768259116681226989302054557103516544013333441432851892846246276999331960610600440722467914856373425666883901578319955936379524236592540039869026145633781797465942402288805069255807232685008754374436896848891528434545028576536594517770590984245103589648930181914092779163156826729246910602771843912193408781068881858963422159664769898104339555097205899462962036315481416974945074920774522173082577004387562847128538382866936162947770203339512275959619244179227429379299441519065868317689512548832630968971629020498056304530934952008899798120787051515798492063871336284726240709865145536805657213672077503813187230267089660204513140394216986717890307040346495942737612712456194809570808913444765343145958232268254798851235422528317931360120674740559342945973838925649048072744949124198232801262803200262380688725033327866634945978601285828434218805134996799922720866545570412180094291120778067579238720534357124503303765333319129677440660275318554220581306709050362637334054250641973233940254270838670945907260181091191567013901012996670508450433003685173262400516727027361989810017602626749732115346573543298608195348357413244929114552991813275176845700267582632574080046351439698100317755389614697966320208529081421121959841840491641167905086303053716082251678867793963711117216934795495806375055701723506379786939696612175317500555674255334847568047943070793082319084947175818027273410406578069820429208493650629557395563473418448201599033666784531537178232620105139841200389923543950473726228732751785541355077177244047812546380327135887886734770348458642563069615152989680899328553401782417993484759740992683549302974024778589080950192017794238777006767813459837847388932071932638819781831591415023352886528743637572263659530584591271876975279098664828688739858742570738404079972063892975926613224138441923667626754749005501832200560317402871257625683420986262583974153278575381080238696698805859620810060918045390034817789858387374031023748183601326978002122290554866596885082405974322051344930170209158586861350717144344130390957879928897280214930982601961534430615947728532425534777628444971418937892014081857923080453728705608208394236036988635051648665278964912881717756067562429549297619654998877276207980654458225796214115317228744431791125436754184758752198128389358340385168786663385106500062400700678477593765498680997833169956379984243430395461575558475103243918623820649680528535942698648952814020512460014830036146222085175845981933813656949557923866854784162703636474821453161850007967153480841673124703812289158943474072173277013001287162941888315442316981068555574841779513136627298823873933964130949095990683404253320759890243145792596702361360253151673955510589939720955984665869217330776506156299573694656371105573802406256079491646375059747340729264396723588470247774487262824257266485460101361338744524772476412221022729602290954220926218317171974364934771060472540078412600371099618913308909063787458103920774785393038543149872086089081489107349138916262725437794714871601517125558663057760321363969105161984108155417955115236167128654283095258999278044359278588715845158670130006481789684708836159538241318408781470895489679502587321966646684638845652593801112442668051599550877559486824845045657393096502568348498056009810665584943174280451973172189870000191531089644663130718004798195945690413257502428488907859056046259894617763426030650772741570716141697462641293303728705920979998288222954006327383065578024370661017770749716802060521215447728538428712234532523348404732828108349033249710633535841335264237558224702698449410361138282895902690752617569577928050118275418689154321002920602158314062043660958103744959608311193291058447611352506103838641210038377317388576272315558606835229880461291751889847061960833925677556786566832198393266071265987284937953693612234792970035708547126601542971246058951209355046511190409104095814959073266708877696668968845039755449619835385997271468305185413054091849238670810738462961155210365332548474173401921454040049712756047702369868973031773862871223464822401943465513237675842370974212520207434776026836135192089312437287438748178216982576748551286080021546797043193829073631858699422188375093738778728952173932875655939710501232576137847506359016077582125373928952374838439056592426802791195404138633911700034871728883025337522348031054936269434567247362940587726217227641195511262703009737200632338456187909530569410485156375646122334691533403085387958792513003635525401973075770809926721153695823957026363826648434993477068565057877632620580452010174168726057327085076134165667229122622399985551439898279014740754161008935461938205272680895252484798027612401191772983189718936948099023783183889150159138989417919002025296725948321270367546569988824229498115385487818528840110472555970200805000400545716053479293107700599126735821634989341212415083988466438448186142521964308027413519096907143243690052325646686819780951801171482252028161760303082452627697453756866785239629177732469047508608087787583632183100703971456631316971983985152801088348425736412038677283165635667322413306035502397241998738499371635092176914399681117682239507241445895504178054828534431459737155706301941050614334882128214001102630581701709473518339467128607779564063364117944549027878377374208241129070000285591605078057349072748903727541613559649936543029397754138705005920199826680871836695769577419778983610197628797701114931528050496110408770513204927080577618174082393503084925745478555243016058517977301633437607692103737948690534257979496419784632124620645029992674698142894474486357952062742260004885746767906622915935870861602987487140553103815685840967981297978882535428963115334860212294790650747078675175625890973989402336854787611895849233029263369033876201648239506173865989511914318525903610756994963884042675642778961314943826165664143862238406846485744677329099708589773381536472486329461711115495007688820814576119002841530686446469195698999682286378404213648012688358591757034682550343526836702400017258969800255152205569029219037115515030117311854661595537247663773989060677727707572063823673006707045525388762392972260232119458883398668621859990780457220408686011516803139439157407867702768458305435750752042484638916750448043167173892817787555068954618473641419592683070252987452271811771622419323134661430127261444332295882839478111745433372725222448521457285174839776168119327020940628569278008502041164951930326970392618148804443761681237904494752893407675560532618008946703187081133251159509082483091878291067924643073068601993559793482334067360325667802615681380463760135524965207833881884832490500898988179682423906400164088818317593471165602472336389734673192523349930795914216725233908325214935789396957896403930701073094820294282762634796994644007490705879284564785530334176518875574480225180068562819555278377068643626270229066126976253373015122071729107135901865489893842747192512323942571400262936301776773202849824796632951630229686550977599025740030463744227202249327486036151526502751317658353910563864172168206148006308611998740223150001231687358559582177936115566021464119264907059220409782037878609172503547571324617525354793975662690057405143162450662690999056145295946926114678370176137330987295933105023124688273143830505791284978967877753274934145334770740082127869625694809073399986024636362909979512707519798584250183287179838737484911330296063780464624480372611471476734172670935658796680446243101553215805070171245036180224019060866767658796239231853843700664007172707584254026203776709888578717221779241562497644381226410102228838965595415018355485438879022291138006898046475872995041944689727457621578798935525764344714141532819489633205957465365096103085296334341360807046822869707443641566581840671249282911517288816417728057774401936827187782362265080903307345720239403238838156795009385393529211777291817282966584253851688441655127885311649914895301278716765191269779442065805904709460075547949285100591893817080303699203844872392525343968684219607292832082896081443096209570731565107605310159706951142750796300712505420135778301815924202381080232964000066697817326348045317966875695607533188688784862000189142496813996090344361970623994230260404608528766484257887080401394520554234638392481927352361441772454046295660710635943921918299371380575888418288874536826692358550413071590003605774448456530714886674100315192917433005754370686430508265381761582197370895165063979649777797382915060683946830793656486073357687208801660763454184641897294653369733978155195330068587146408731404442200753706623964323508553973408897095887295693697469309021418093078132060131101316627547536984564442470594498687873518450110072389572415776087727526225934744090622327067946803259512680351008909686431938369419144254326030782923354831692053764498225200057816024178470599133678128051618565119793876461199712090557931505161031397057380275182137435668227558121239969238651675593214883112674651608359536204478558180205190751159303321331176474834544558003778399172256621306180975297361062881894301024756306808929826704392693971750477242516801163727259973416740930791939208931612429373151512898367438621003289628114158436796446591786093064072571420150629485089511189888915867523579170659119605852187558295754845958066787885603528293367564412005833836171557772892096429163083155775212914526431007602521863439468777599381705171064952982085103705911219468873764760749504478085490793294586876821700378347354308200232457808821740922927215447564387787943517009432909431218431027266774125856144128289331920339316226463378851198851853653256436465983984863290011194776001854231187841606380006408905243895706601313553933790111938636502189691873311214893842199637521695224600192476433056252042402293006271629099887715549972246672771656768827106926322612795609178892811669138636252015661227379232484056579435735762538889760751206244036070627059531594767204580789221019168639217063590020595525407437235204586214241235540433255452228741761922278834510229077808411571649962336706715778556583018603527975760625412534712383694110419679387135043100399827491306891782325925626542695451884023886317478353174363638628733304820074369048334259159667187594778116486201488813165567876460488596442396892723231896974123056440426938606419854628801556937894730207830640497952726565523997660392665352479385511363771332320593967949590082263203222686098429935335468717088912982830419932912969401612327805718938582666244554505721120969151902097349042391729219171622306643427779510113139863971904714565943078576772172479772259024119334222900710244908100413077791086112044310655921703991714968088077227437472006930353951714485400501234426245555045907342185323049566051955650459754303125221290133569408431913929320565981465677017495664265261715642380429744359788797774033482080793291340957297586269957670280407893302625779837163207348986478878377690708701790642170620284829371440104944583715397685705566612451373162393607329368630340292196771813217551398874146498547478764335162532825732685174106281471395562559308426291393074107108732260461486151875917562018310308832270665541901889760725197266732034389411674128819360385699835242515078895472783663674062935524833499765271817922126967385662635106948061928033388019065682139855358704020992326517854741224374027532569019061506031166126493442769666058151239018223111879536155532835655962585690628608212410444625750760906869737097680636569082477142459430156278285046994229453628398377012964842465333653100229089576951176138491588001317600160565544085794366449321713658680640217831455921362706696065471544849195000542672040089944833336918768341693466647428119896912018138230696385627456998950249235863249490000642542870212839849298074461230750511163254294019565241988824664555575621880093172835412426847789898752395549528226774376589721130085873464333894671546055525494694573812320200151647532219882915746385666675178830386430984772572866333615347660771103528921773384154779558235046533616661125476708758696069898464809703676322219681113870629423895149754710644669245016400439687935412575590096204887134224476743887656632666442144463569154955055666424047111360700446976513761810154309583734265734322348247558910326089129958088306867767759859671057276112752627712274543998476575743014439677497153615132171059881461833875169832464217043255459266058987684798357671100213615391798727462458664940133735233594570689009054115383347822477316192177383404095299815521943762425826704487902438503755997171275435069295965141730630755627400399802758490534860282786992517516016283021158714239645454457257118174935210179579816843013763975378288634088665920692877645450759766734538659515358287274730042109857826472593552935754636954242623181344115476033971461131087039500188113376360839819290336877929957708019695877095480924408918167025965821937283392123103060363708637665981259965397429009788375130847166970234570433742677664902889434663691177372810168606513624298531269877160129714142469334401919126908259037730813157399063152016320697856411431363604919201668533569038833383368589735744572529259988443878290617912891812641061037755496831131648445362062748386078480972273257763403411745946560412114537182135807299076805936748859607904773672426052871756407354441876903994514479930045298808071843884449718093876327628920216006433454559445248529968701455048592795021662987732532447129058259186476349593245773461772582417840847147919314079286034209328915133874656576283584764357233204162148588841275836092856346185204917721667953559296915184316972559243569079457021433414598808730948689261526236375516850472978642042445539882698352380184524061763323399270115032946391683836893898968538485908346664652014225874557529452657412188830556440433319479730174525874846526209917291215528223731587614444984183025267895651945465568646715237991302543051158256555276591804492898339588771506499838713151751159126063185471493331923929845697123938610368323863807926855537175864040403813677184713684236751427987592319431554469288659366138985649695987500284851603103100394159670622316723968450729411947715487947074227517920714438728592183971902042890802520162888817873036262491189193435495624332986859999389216429991552145204679803763916837869156625998985882592458906422707199210187806323099477972511775883273002447931053500846435759941922353946331018208088366200324534936572731849364083015714261591653021142286092142778447736475607034877941246952989754326442302253274408878176372476830616903538735343361635956164058051422412864458545386457948617422655361940974598796979489906823767014766216973924696136832305302704482682191117567858892181908192432827774031612122488970162592569070386775904077958233851555305259653217960534830940974268902988052785377975361060681225001694714648957238464715590073125802552143179599017166080161105575841841362865441096115706060453090311063776585095749556335970194470592063600587392995879440983582528579417070554574969750984551504849866360736811692011264940647166004016380185998109102656951067210614884471501056584352066836214976516705124612977981163189902531706394561346320944937610361747426196003439713075446743878832800253973797174442384118987182178254416009615476540326782340848253364166498370189641055530485483037625998025258417191065835168354429038422799260859417510466349129677469037594948206022899940839973086995069890640217733546945081430451321377123413814348052122159123237086157446675737267720793124740877937071730303928256580869153019131135454255843721081096452209720434337795034221329656162315813071527174105578275323147542599980253477979471208311119387379339515619352164851394604605061979840241515052776077392435439169201283832346860988362088568589347051952499149264089714186025733468251076199726718841974483276983112512745821599507230660447465478267736420083812774332762079045578587008435990490089837113712515139957849351368060911343157872886421001934337569777326156704505194630722995104680871434471003896632012688504303970246229322175029752746284785083448410156390156426043766666861032984644818059684376624830747895687406218255372837800504539855789864128804569495975008497444001407547932580869012687940406023185078839534445868310267401684419488679373062406536499920984610157607555027234340809164725784637966764281862575786693895781096754765877939676069706236161679369506859787990657156630770195971505292875374207369993147857677385399356810743918342470801216726458466933773943150361493450753577091071449891561833069592919880006425508966836032245589009776649069422282108179724225591571718622599349828616949150702686410900859099181563819582231173564423281396242825648889520874654996095720718586757779911612821464114715595437843180602846281007938000905884867500015461736924089760560280115157348443451780801270485207965462291532176261905064840569961746644860841870705110451790841118249353376805082513095805850385739009481650205161711421347240823028227085314453923072366320574433397324445914727419804746575870515606487890003236406288241929624816436647795713840501703464322224429970939694925625903812836267523036323350779718909121472436326540239230953905518627362584048042558718206393604107719163484278885691407070359142643831516424093433373432805499646406036864055149527251763326180869370426159341752319660499784604603792405722281877758483691020361045488728526731079681421247037681323551329896675177187359561300054821223527136396748588065542582557369915264777309707870374420376858229725293967581130534251949152876547995908232935070707421982245402277244197932899544707656138509291299220828573525414638381317199854926186750758033542928173410321251134557833148870494903668409036331130225491836228609626425135962165161207827815330451863308510512097611969971959465545126197607089849302179949822609207410028713011024150366308516312532077965021854765733394437778846902488184814432667153099634464661126989964551037317543993115875985286109681736494159514623764208223331668544149997088159732839510375741580080216380055639581109954835676044300350784095017424892492291090878181793907476225285310463184315571415360461518837899131959815246268612361088976171095985616067190976562089459055473500239611010742404872518577072017706677190148974873601196794874115514003509225057271676754119441683405041258874745801105128808918491929223290851513740651052031831779877334068937070021313288223997646031888059681999063952499411277551650341130622900954913861091027879791566269094986906908760084029689927487510739798417967581663851419589227167575584069740592032600593913162259921555061239422051730973685908561912509461777550900014368116656478767696402086135636737743176794316037184543154053170548902852084734510262169803266026810620726062330617327926771032060636810813142818204210591670117906718956405697180305869063309094150848411905638105310676872324144090774839752094191873941765819581439255694528641677363155152184057748882789126570659836683397807694451988647854011049587760316339886420838960012649239106476746318360715738045344222914141927894044394270849120352542442827513063920914480301951380983884256011891961262817972335317958962437356204490183628055946901621316902623015307718404608487247250844801256705192221740829265461466235956478382540084686054803730579094679253475935493128681006140650897869653597116266979251800546528953880647603743419370305836085668768340801210866955461318939458405943849474586313438941819789279743168258777443820876030469622088748051973526045566575938594609022069044679046848082991065386910695264155415684417329858217361422301336959924189333460252487693632484896048645616125706487201790863959519660992086764872823372463468125869334148615932983023423579358364437746394629390638645383789041722706329636147190043445299865475237423801434628362706261712719739899915319472839506778813293499941524014759715117121696126202036048406547135633987314048518687324411217920702381798214753045560917938839494938411962440172839935602555567529122905193520214202403456788780366107250486360274810515169474761594679561858719223104653601326131495434151816182661281038394578529801641415381937999041371552678368020550902298503036935978289189149554949598673477357890973937899344267651751012075808393963544855491271980671817897278933629733066809883473467648002417183106567458620032717537557753423186123247529320643709361213614899702060578633456849957767841318009069628606913781136528648924548530737004762400337865009976228961757006492297854076144817009998299739259824291688771311511405229947244063397735442138476591120048137449384508939394205683575781286230776324285962347992195068820226439024136856843924918658984395559787254556484894570181378755713975845318717932834137749639731456993220444118699193692797288013089989660604585037302085210398042725826852156436436213762107546077451248043286927418389015768854174090565241574498720178333447482235614891493386483724105788494754625439895180458450707378416420235907556741854653075488253839050161633265361090470680336384316021134691020144317948955987286486545786648393259640311361817560700530968389895678420360616900155375622200863017008383719710537329184761812902336440213530020182987204152382670662871195746165242913978537073363074554674010546332778240350155956481638369861296015038943531559005222380883245481786458444534466300904186936910330477203313180904610432759402180283557635969985476670133626116200041160092970550808750674007732660836912989717114871849985587650973989173423294594058782971921993627123768748033864487230627408253945015139275311675475410207602039593006689191572874879270345126154777986416154774114621947395813688431516263942848808240885874937497519402248300889316407956366796733806854607225590933115270632886017699926571663843238128903607844771493356907956777801471109214629912901921503454184802063957763766416374149896358710366665155786606544857613712654281523155872091044791525078430810622483533794370276021032452289963695472588506341232550211461096970181247143391151007156784969827888502083925844037225418251651696299095141714427697932274269603160849411871681213149903392806747130091950511238535300860637571116193098474422900377695938324800233475334164019230488655238180590066748653489517377695544160770019552829132714768511838988964160072891100223795375317669447507602038352687267111738696532586845724136544194071660576467830910691223350261419143024812904356486804405102835737541161361554829988786703114835677922270713009900069672669674117498690918535876234173988703511848551837713910923571188978759607228152214900787773939249976178855571932431219497656286650896593043998538448595946700055946192428967062807898406457172145528284474594849848725207508339272963392828400146522329955109377584911974187779271755551786642517703154078244520089554003275028180411699427244812454947745021412713419470638714982742256330644249293746387864224975357206046385976046065174891146008208973536265746445407534360091684119443910824954380717026067162814494175059847660073543653539182715172650480260271688554158140880296452600986051403216997701224752640053185900686420300475780995580201857320708167543391555418788797217400129279966650969617997749188459414902432098285856705621997419126825957432019862208955396784664483396791613034676751140303874103664618947536216272567545969633470656048420839036397268643541127586214027474642892417051878312311637575335134667612651710443877527508540361181814678720272567629900434323253627978964626138337337133770650678501075282262354832627396033829964104764943011973835693923924133047854608786918812600141811607400434274192555737872768179358829174161648655249270365150316062655896897411625539951897378001117147519650604728945251080897863539560198734089097510840400987049566614808608681009946508724449968735499015381586512861598560774986889476802417227311331513723233923912886144744746363204284127276793637811759053484499307856492570076755626974965202527453229101393140249163670687387844572573660257474427382876103644313260347791841924855975574253086072519042732336421037322685033238581722352601664883616537217555100856470402494327260344481498565831338396156597161116084502808458396901862237689853137271156576255496797092111227324520649161755030202603317511901745068818028332085067822510944219597534450210958733760386887370801809628901001341658594535988341387121760974755375212402828900634388486317881306185014303312480261988708271755587648655143440810451655202320683807068120928839556539905631036194577473249398617127943306786840826840311280999384886144425793480286738418861984822728656640549257140417815582887498146819702026492113752152207748418984930726920983297737586151955015798013401581294027244684061345745545825290155188925280320932335337911890869613611966699210080230516992702626609823111375620702044530640717828975356415584827942401261900975081080154101539977748065920717685804742187581506119475126116544897476394765709239679518207108395522954770689604928297180512431631441160928312559091253052798041229051375235554358589012860097383740038955909012217818850053399917764708431981040552045284353764138485042424555253647627862928049810877009692730062360507728082568944326598060776886692849564118845447117136820192590081106191055138624140028901925842447840314350691071457098249703029448356628341814016402840296293683733753624596785809223563037616568310229985386447111369483636119552105426324165371520328036705646854504891471007274588985014965546728478864980764672511385634050469492576708426604329925645589770985520004042977812269771475076695489434607046814001098451416943423315523628381167702875382501885272197320486957653818434822090795778756792832885273941961079851999240831963019890357339784849537132422740515372108435334665539654197205126815484344009150529467100004512372174198847407530311981290269596205636854055162060347730996866137339252091625821754519808426813416767807518963392770634143142043762759178424928980126179570310017776852638488543500854062861238850588517717839386227854551103473255786786597032689963490379672858665406452212786354899159720387009015125968817444774589937228809899965352707394811309821389796391981361134942487458670256369780973411352732407580277607996814682347025827164917904294675083960704405354570013914823849712845494559459845952387468020295930474359376192727475300014945172880328954974214604824039399623069011875306140902922789170346014310767294185158665284013696973408080371243789061969223525409729131996586045914660658609423843364307258761105786527319258599606403203564432664207047569168903874068793042365258323049873052746293163416978397050804836129627676115991639870726573539012568543894150692382373751005821825277491792162296767667871749479047272939960146775788372336972215801287573805456621907667684207432260857512029622313643220261948617900313403064046723106377440623686727467533763703939632486601581984320654765598708542478350908001673245036724855107798317688948644468494390165449065743708701986101677029950460445681294294156100163306725551568329093639149510455441937879197750932199514365771490984674163695464146193476212258639752334941574027701283194225734409476931068341395072118056720056380162628107880151100107453087812544752410191747381797796654646448598009334215823646623378751782098148956541525091781726979035958015655603704215537902772443490439247373276185784007985651762084224097095897562406436442347498149181598039924155971504760375611939486437146754446354695947416767093248775320062385668944049172703175131391735195280815608551441288812308234900948707376756806289938113708687275273942706752997797555851996518660993045869826506541598994121555011143036435868582767516122671598230883845039917666656586457189714877452509500779736560801840309871542616191663909890372080956446358973135689287000785450391986164697954943616127975771132655443585234331798061348034207930792385954921000619013360368648369446891475265277242291627194885175534545006222092986774989149262399887968070662228604587613158393364606549475673138623110335767376812796135509966429198860788890455114797011543897259890573449222861314930055031181208581844017300242519881574204340217400294115770784988582194277012353269140945511192788713143214170516227628518316982614735087197128686362586041403586417785850941941780049933012539418746919103394318500291878981333664303764162485068720325794545482090889053709422681045694529815862577749213785035453132436631087962108882108657706533299862126185001568415460640693768219039367802080865925860677787005429054006274172646803973419218086527602425819167853488985099276837018613980513704163961972173709249210377780322124465397569652215496430005290602036235277143909958588114845088691618131396021509429017558947789535148251874466527674337418599377176620534003694743737289550366378110426225128613431737673410278422633897232267870791169014367487588417277134537321472507869975743616810277672434462861699329234260363554370509214715646844968381814566840134909298043395496317513986686918336729819915579876513241556860049752522814192926315661427860068920690631085795146255109022267752664015227630331724307845414692128517589901231456721263505968813062765203851508508089215451322478075271592811558517640201199240310233305329775836462893432462924745574837242019306668523809622919447402411793322519543728346963767571941444205072020695971879173511706582413567750995993130668093764881169377258611636429766400225857448814383910210726929305386670045779877087249722560656787148416293492699619908956138989308816116008165224765419294867064817745502715640221996958171406929722825827356206163276129900319089339268099609554354315054655160368970363631240495862578515198552791432808974754427706965320094176891569230599279128099303720231890317836676651534237514024497404944760784495544697934498630663625629010217492503069575127442422457260000015761308532683885024554469119810204095536694161204292213269040231142885969369116117140425118659520552394012758832468992170215731398554082796847233698234659391368755577783036564851861870633322686595365540500225034469717548990362647659509420856906500189535647433672749670779017575777886461792583903919316064309656387545308530220177135348401343633916700545535877275574876228170272635763242100374212318347062882473813024080226022111690871458782858126138869842661204021806991653815532641478285010911589717536545604020394011836774924518352658641965213209559531361833081795258731080692365683030599759211429973139562144986664277776829588032761597581889641941976797365438890249954387596482647390091856725746317418817278596358577829298653586904820038955497033330232361836755385668622434074225245460626367129080522670049849109685491775467616765580245812006092975542962958249684065151638902884232012109406349390880916795064171452762407709168429323850681548284512058255878306334992352813943546433874707597216339997138222965137160918544072315229318834649248225114002688074261708843843837253758050036830155926607277318762088839999639046044942289351916132171737132904185777219532697557247174281254651277801007859602983286027662090688032991847848418193468648743769906240516532225137531960323149914193442366900036937438545557943253696969829920720359623392148156475552339321555998779661450061292562142960423381155210719036495236693479165959799756512361977490604190532341600267551920412406473723446841172427032926244702376401451853761060868064063389722227010222335061790907829774915213115614748078190807733730052104516824592504228223735080685920872866657660038586715249473248551358071649515855793817625963564097846612463959363270088217435041113454099382445551024794932957957805150105393942124308734953669444924783267014415209533279518165588472187171255714870533521574926990548225750881532958237107533469004412264266646662321782319844670241344850671698986869280467467006543989314548773129398382209462203984620086396963358027184979037358778350479032555560976989725583473187027950462687393270988905738217226373471530847033381908411628289490261457034845812814334726288920321008901719163156122316444399014561211177240484958530091703119603098106619861978947438208985499331229128604022381068988450785116285553553445953877003544977324587290046081378596974828176232839133468561424814234631491144737116505398187988765920598013931539819739198563181878814432618718777119797068236556035446527256138329770806797714268865694429699297610755219687761868780988905354861675902186264511922927689475935030356965019813611377537342424949712745412854072516294050104325308446508388436294843788209090826901993966618227914445579703774151067818139334422491953438227868733824833889206700912257236297768022816139684908466789395436668978944001723660664168302645866170835076557364066954342012509994622752658930730300043109806509612913593090517256003789986266389287205175822445271446514168837744532170848282245851801844780409782267875303302278390869959551632527611714020684959560412904303776226129382945008506416117258847153799957088324381955213309119552763171456587919803220812556525052295306987301010745851303355776714458852946065664596982314918831656677868450578202560870466904683398356306306422410428126745698047122057804937466672386175517444856670829350594994650165288606187603351610312820886098938294477501344138151309677318522016720482000398992571828676352015185423556974125912544487367890080650870765116003208483157763930705629031481401474362026793893746471257986589865411164999386095772558875107200914633680650277732939410308642867832612229606591337396581927153346955901527384707611849163527183412268180349022586988473615941510771491549531088145270407661784038488363980417842297794766074767400172886555767219796973683937593552115280088477261046613341584601240162173204939593948580376490800302520180508538732712809112796374590859314455151821242528148260670727484157397646180613320041931162510608960460551412799113215663624566006101739715450997594464335642055445725574837679318608654969607066077168130477155580237476331133835585081668464915871960086800941284319139325189768409881661213006095741494841026062686432310002650022352512384760973131508805557024066020682404510201694186707263325486525239109205796855359574581721588987917901217334646364041860799721370155720949338280022089715927095361562972030371301473132498722810623468588096528419418034484500569816174206123021650665826740531857873323866060679749969401913281663673479269882919533595899651307066818612124969026745844368566450358617435388824906912136731150381784524761664939099453535309910939427263751301756515948980816587288096528112596485013133163116241452995604347173955909782107526756628468373550950508508512048764408484352550829705601913202294474799486842669084037466093406126087796510769245833171297427858579950485292675117609764975007414134057858928418060477135560416759428977185202094845916079454576461825439257435628269451027569775988928952063859037606534420843073193298425577874767179098183401640063761186496116288504635806396129658684649133927566825125888381894197965779305245057707759506371515819802499655658003513390563321912142956739329150681110526179792736079120996668521159430429272646611241037236686628376748296417110831092714889033836526235399112253726298673211366393992331841233531662675154434657502752623146818605348108892879406359253223533381605590424307075074756286301070274656440491288194640126888256861380676030193004565800736956411678028831922751446263978605591160191405137717033667217225465791801573073773064628702589706410586271386244916636531003276945152904426065829321686209835865087466507099879489759799305105914530368395236591245759809689547316539659264400116065734143958671537487316028277685162860039339589020352249665646546616209282562403136907247715247556518443136984333619834785398922759566082020144842161588892510421686975310261200295397641651155547393259296446758057190920181996515625923327709917059693507206515739772700980089634117574048881812473718195778016792385022689153962447631488267783560407137625909601166196408874213760755425803763761810892304564333275038810171816133959919278368123396593897239039142506887786063814014754240081266826858315367588578048151268104363380742003313280719749311494012636265145503517224632159071366136364572913151673513972699919004745096450860170020110913599121087569889608149032369069633877277645274264006323842311452277364163348802976734927956722911003822068539548946443953005350523328465101191646355898937020938206644360252706705679721219712691495397672209669363970310645888648019579454360710973862162462300721288274810799665304099379768359227924693715958590023126385233999878062106296211187829611784704213772352363129709751693661844105053124911146312132779230263927643160894199365156474089257953692495454063789633108885474281884015167682796675950655542920365832475425917628459135686663180800899346222466082009403609723282765317013989437039573094845970334454934766925080154054247948114744102325558472608043799022411144113195425348286800736793858525218879557092333671365125401893871359093111981090488549092532487926068027140419414067413977267982802222702042447335517504010339028416512136890481591335496301518418523020881302042458727766291862455419430042633125730893018447139096522405977488739365016683636526380266780536912379592142943168262885224664760630516420178881891690844524705670686903160762986868652574315543871242008598035777360304461295120362677740874782636473216833889722201363192314797467885584829051673627578529277581631415438777597350941975175379337993209095441848638772772347060197420351860794961734677685127701202774100902257680259078965679201578568715270132520788325638279419548119122173924115403711179069074166352256834188430873303644811614181937624773060087097174950062689159597197963237535062046631851104645342630317443416184745841475328057785443916769319857045283803629912230235862570911452544971701123013198876754761507976981046433124326214804170267789700113041564963378273791764797409589928552916863868873359217723952737012313999537421363024922719996620181860385905834689547640052221342237615286927328326745605172100932885461178132572183068425570312259217307449016705070485407675926035043135172921620607373050963640058088396835367026433448685611740586262311118680035253422494494185061894285826951798275147522228626393404762657302771274839475441953065442661051742915182496201885918441363264182964879681431511627841062676999015102788152010467732189783365535822916131907127450103711632322631238315016104033768522576189064825175448834322575250322549774928462888177884509852736974500820365590605019371987166053883699965762065114859188909769684260295431534553432671361547590944699141413750216410746780212236898535239567926766071860332518210392712731536725326254742183661163412330126544150393461833285186718011030298470511260654972019225146862494503202121730056618034717750022218937781835600969255900869580098105839476464055412853555999395512502349870356958160261074778536587651512187842329826125247034312524274178922064280242681614875051123222194704835032543677434648615865383858251565842599411866927383846035989590851638060313831574160467536440251845222550404766705906214325662561148341842191629166865546074566175963904700582075796187298067244586820538757428636570023815662491076234243003873893130782522587887251156125191014365576738804453942922420659746709755764118949881055473532735141456429509758686224056913323151971399023750443934378694178633523341789584922635611021648182851018145974289682552624745141882725195669979083907198225746761744193472099699149577984242926073652102866018651114725907558854889589759046085965742630560573115705630628601904527864316729404005381413536834390772150707195405564594380615194088271772947828816818086469600971366620891950433237203881706088549516472701093099287869821024931720695880215061482843338016723056188432647623230715449384397320967608645757712575760991039048356492337802752624960926270793225321387230946872397557862400234079008919329373417135684690818079470071963316328677962659861827712008588057542829231947546609172600794855378089121820868112978339292767697813324355481740230083271453698659604251746472176666458764087318934529571795851067281029678438625482964003325791504239128937172859224194297964425684903407959116935206639004161219409693835171935978505925299893300956954810165017001939891812764037284077122042604345062874529165105226830483347706554648640041806456825909360925064066250664203217648498815251401527924320997623682354588026733941209922171328180960580706165048313040076701828880050751796043590570487129287406816302169786414105113714602195208729226889394767588683765459692653144948229816068522109603323290837001026100671231611060639493750003250627929017400321672344704104327446939325618808219787862333213105396743317173718914292070786626593869661227468468301185013893362820192714117463511524674239606987294937202862268512977404315221906361406065928302413368480012233578530246596590743043847035730941564864103758265021958521944679474347677790482337146589181313051256049910955046295534931234376857832961337968272102339944489444136790794047951536881689497655451114380078206101590329942299031132732228109183696634295745884410040507726884093627183777709599358917924474169141106016840094584652311846345833746102474379029863873991762433250465272091044072263694457855245629528327461947625021446255283396191203870869489803227825706913102747537623583614808846671487480971984427012182172774488318401369994618804282300610351797815550683991225332281561626870911653291234948765388049136156502509340174623421898249009204787622746120074967606420736844548810029248309857011966024298840943728930478637376089224341225005080553706801095827815995968949142939679693546314704989254273343066419988939712456403024768506150315327665352070998604664050787895284700348819336017024318359681161707679482886697003535406203209863323545850616488623409129443232927874405633489286961932623061899442838564918918104702928473240258021363775938501788051144139995483189657765415783453961880606562497547352429557813280797478716615788599899387384397145874107490826395493561259395658988145851392185061339628975956659772899332271066581773250461134333900339915731166684356310213955484411141892764823874146493639392003700724319945016249652888113326438614546361751149700346094774483026346045554717928965862768902519188688439883243308367965613295690026495683726064780730892544888917793576219057414971395830532748359162500096155234192186475730835917546953834763641938952630701439417466549635742523749782028798188387653154268585890726651991344128690266147345173694260610191917505523073477281483397004003766407602791043012704021379409130513492403500500393933544743096758628154693932202958470738738806159288053507694370811071670814845260304578800468466185910213676467132919865588388190545900686880760355306351113802387267973439290246533594002960646776263707843475812976342207918292257787166600788834825545382752258025877153349813594347476121150329850518591773069129908512494058626978378732720946490916077751001795219677711536649837061474991414951730612015875370140341138107565595489155102050717980318578853143638107294713287120852028796943257597043898000525487054096744107172327263093026939853783634923984483546042352026025661920274944004721871199627433509421077580001538020591486106802990137245342231907119482656025970019674755353479092167125632760382140963534140676739139878395349834173013358421781716932773617120165067086448193861380965814750525568131825808257322945762132087851059994336681137596549874533987617786030082248292761388776602398168684913643691978562042099144191767917065808018920120660355421461171567517840707508335142000224615918428199628929813517954094728847397872772768750903559236232075048921789346132680637215639693808253023857602481750108244894695764590676348443819144750355286992341075742445632860273006171395421291389320039174369309607764327153219609719930840804829323683200858280487215003263061642478946208047168762262855907387409182702458233679622403722365317819206421135174303954430559450794428459056793669585739811966483034945972769964174888191997448574645991289588041500505447381340986400676198120119794814120146011291997155007088194585025008910627764746953361397033467907101149459862573858334729590703267045783460121498291643969362584172208550954816916469373248036760585801387297169971194895491646850930478778020148093225229337770684035473493648960470023973801983403677857054605671821713204676065728227409487524024407641741218710844355146043711228395657371238156498922233654569991115362871425792427247365593798432822259632701122050600479225705129082312836794697864905055726392487841555592015511553647806311565407320575592177354638642168638706732868475659419503377343209098122446393002777880854645042079649246158821135081596821590010319099599224612602396567163889025384093719055809674929942521505646141990730475324736076526943572355321799853553084724764467938758186908466535959854256787854815121293315014645912636046497845457589868964931319945610711956132643096811633222272351223456505420304416502938527850334550765338093887117298358671515385913186743857281744728301320652669086238455472475879310396742249696985733215900508984338174176638259706695879781481573738210030386044962391579162192135562726050308504101414789450634609173925675828275828851335587511138180161041465328951864023113368276847032461164539997922395267014332959848814892835082226405200497850905528922270281071058340417166234689818514741780270622447241177610544365674868019949525079849109078931453251075692912841391502901694172362225402465649210742856519328774528659572358420112984549339581298717226617485302986864362178943001980732947227680836031445617279983162133086998599182416394804625135589935510295078637377562110894374116098962200953853303886936618216627041904981369045213271184610876614438032603638869332346659880009074889381068748556703266188817568099607073933484319036216353999349032342506090627747377770736610875285151934438634824529244188573045848974850643456609036847306083154058361041548439662691070489638640068761352905284041651548809658907839929876410109535467300254133316547376196774700952595093734411928606602226980469074331848188473942387103244337533890867172719578520263367249850023956371273719686988797116891810002708283991641219982583290342037504920395036724602945490400714200937442321360734117373884694495417085116473290906077291609767449458811599514313413948953247517922987243491353068951780599873525730537191419004461631754977218337362998106020953979095414016017887160202449753973402158008297827708091589834075002229375408634502304537683968440881214375340057381015841052239794340304739654418813160492255282285400657178997222594748605440673653381192567831619247170360837252937336726393674635302963374975333561982135366648117947259462971042894406592468001965520532350104644829249732646805673360483231665585089201035322615225706955218199316503317058705045230092875795347285450681626584191844410926760096295128708521122358710781262438204267250379446784668927352799005852753481218250844983529158085881738271362166178056112630464353671504935883835732559560462352537550086816130223859624340467273748072263735705051568403043197479934454248950868458866839337327412346439697458912363483401552599363365546946765843355503466001866064889529206992986190489645306445509421569453787559551050719876992436847524004945211416529087031015918440993097360159380221698247257674475564931409579133779319930580735769247383858676504543125113563471029775282298761407036439701848071343244869720372840328787617369010041422615429018094165638159161910086513137346630497257737416527167709516001416283874065224496495225414800085335615265966906408546642178236407176427589455473564756625667195101262583195923354818908801479332272575804512145601814696979352894860083748551982915261871198997979603861928217518532323584705065140567034572858138359353778031936919006685232253548680800248433136786657808483766539418297930584329811077316465730321464186049095763529967159263239280560221166152051330406471313748994581008246965770288906305013823164036019987389866013320980559312398391666347986409177286178655961300082854468492002252060121397089797764899739802100089057852207046168266341159584072515067124476258957298816741887025841477713119762714295787461623931693220980711847314599557087902874073064731609085021784075166854432965028943945885362912015941067442611514015026228084582695546876491396493116845246909555977696579731484106808389110717064205068666118008901412021747678549217167447969615418839795567811829523391812775651911282229272943804655344946132220872455286880198687670941424261231176376021781864972199242532863133264758554974914183500488279672187696832594952153905333571532054544374840204472442684001949735268075125262853485538152687602529085673451548825330330371893724193673891489626761761373969907012169794419912525755111555345213075576953187818839568331903722388359243369136174645223130719815632326389969309000202829502775362160817539028495716822013485035855491871757078269148106236269352857689870746805215221687355032564266320321728675788898615179792257414092123831523934103627083904559162696439689718286320854272270991250056465665770514784588490833307754321513841455897182886550288991468482101766595094442155717119894945102250496651917704086723125400703090968865287161945190840977564721322401892178489790677451116239816775827861333245072661250735754305354952165470831370947025330392042175030363058445300853282798434184596830771394804459482267527720698419504706154426337649861823132769807777289476803840427008147778914774799201312072746346133450062589817420078521336142877549289329881551248723438194803477994012002294596811510023253830249359015326509144913793603222887610325911791993688175479066329500487057076751787190036232740328779353218103884729518828461271829370652672981718785590343254743017602607442306686633865783113805527042254512488606032155836382927016058600959157942938723796591397761318347698046373149536224935384844962770767115382244441456244587482772867934245809711065522170779148997743841458556589354934160116283192255708261741678310133831568558820198905527450060781846898529883744469588194806064874836597424300057303289862090128603742532523365148796301042626323959899307722593516515742659638963599560525519533141888578042596597937183537322568483012249738932753773461546462155244691801126411553903213122286881920616915325711739049244874114958476838966034568379111063872928580030972595996595465093452944625383252295107779441928126305030857733053554619105315019414600711059265460246916778392799735717952410297811629612808989377709168874893052608504946663186914655407929196982487917869869996301677281610827484948337803305205599015142235959954842535276169528094101514019937005047590148985294509497209783265902170081778624077103750214220709120570306052017969314153501741379419321332568741514458162615105380534992856672100978388716441308706062335302285716613992586299524134173680130999051946472952845229583117549757914916995710386495450222016117816836510778937577525398572145808152731944650468183403134616827800181135490204467048718003316854067047700946577907299248694128853188208724543851010862061553168975433551415647429661862350948066840440897530321154383835454118182719764059382698384854510435693196017303963840510727213032109921263660988072432278109744861439620170968841649916452784921619094085648065469292148932704338453326260739696281168596550742889722152626125236307100329823195852312810932784842977403411385873852788692622831754750739491306903703135808949038303821227560662215668304326091064106904380391375475017097420237621879758018782835025633868845985332016780370206208006509873532400150757609832530372671445068451824903702038894126557150359960532792167560269748338336731764326324456080155805511234440801346386850039158889892831047934239022565336550684526620847100110098971698160988262137923803473362457588021968577732866819245806481557707694860333560868872329341167364602828297128324875027082462177310720503502653430865566661042807278999074052507988123527387226010386699751520710699425987394359391055589098254343529761224668286236123851887426382595360473521736325401989173574316461341023561979416894266887584898672910819596621157987348998026622086938950302303324555757590498912859468649635114898280462921831399396614945464754351231895689852566439374611967077198953674777277012787227042726840300760663411372903612436929262989247202835643664389168624895418430348854581699682157966699521593210569829448210410562435552367860890863758144576830232198730777308818133299346550496142072746624779632198053482867146226749463901381327836574560831695799226474977120884233509740678021439989872152935917244632320150711601802890164110717759677196562058102509001483614892975647319731013889904769646002618689875092000845747358283573604694863309734887169080741958633400319625249729189798159845406700549119151407116172651226686497976374595666852625354531107102869127786994758124331155269977245734230491548170674200142561348691087932599679050161038000230838372496417645654349068100464271910891292278303190922696302139083259399325104961047890519778734791423611243551019117828850845439840897139369757245349327887633635743023300062151308012548514156024163934463253490290945336596534124226986531790615260940230324831125340590172548885074834455571977212142284854549387508999930547594971402731923349787523954082272270846633824837241839793629640955979520770708396875280559883346571824695656450896759115969759007663523164629074984671317157543528425645018143318088298825565369113746979904018055907058746078947485584503802929010172966481387142174073405396770927119744266508647883810173259037124020007909077722182044303618971430138505878279760388582380083973259980119693424485109642201544134106219178376984197324482585516595003417324871442548209827130253681259943651528004720837719857251132938180221031347490979664335555075857283681426195246511296654570903155754056158405124549840969588130901933580399935051294638781439081844121709195010418103448562800718199245445327502516262986558315174787056079084169709967165936952609176425586733877184435595962677320470198817994345527685951203076525221121190128105817749831101029726417237327675553242025702857963364892455068494890253728551407068127103941362915247301004142229013547242261814879227284210658477329593493734611401183907677070760875935367640203278822939841240334564363280858603244744037516035597133430892635934851623981973667688343145984522477487009679353139889248143517246290138723209203230669266713738763328560268209428085512352951376632256197772604774873595686978971227650881782307559240649956026168121977043767918143960413923066371741496140343678135010054124816931015498525429861359688344179490033352008482304270157467001699848513699754142211871486396858020355964091424797794233453995300227771157304106481872462210534506731904922136224888761773437041525001180845004098662933294380891962194408850319426618749634450222390352068563743331660840281449766250177195877444793946125265488125497837490253366951129022555653113388321833516038697316221689807469730145515339030936932140150485020322226941808249236650989597386979494698730066435418235801615795593253874631341557694987496006747142856768809900685419657763876695388265394191260848901118032344303109134623179124916920135567250041066338750285761330005197677631837219640710523503470254565014766981149323985583425312645197603376787653772979539088377039345838717671493382538091768765177164838867644391015301927618424808746530862607895971649939790893964440226729047984823838509646033805233747528199421391544260811814968999444879297697128729168454466607667169380673248240225294441755868006489916497593081484756227235423873525668441454226694199882208917248297775276159978050986439989562078377603548053892279686759166096689743708844891133481386033087948321530843611788043218836119199791807543693954596324662045152999019514062259781378408321807781388838647756023617869036221729369660694210433663220680433788938637590572384941465640837433155699757467212231510861304163476017740106094061758053184089452576953257921618748604911653699792682981596312810294423996330870850025076855859298782348623447184522108666785515392593608851287829392323474491894267209441869010505643242958867544246343156661319483808960019467940755661748158441333735580712016919108102839422854968302155771497476573910527133127940085989190742533229768846001272254123771077500184205587950264673532959083331035471337854408619698269790749518558265709480115320757431635693160708215053807160111215578827569702259902267287416118116692197721298216213687023820102904982842073187237874714342206603938895332737370969048855213917516369815454668266610097222616310903429257589040670115353632459022896209616252498413595863402088659766509801547577049681182724699477436737270485113506002557361218031918224588703417138038008717923868829262170037710712668929263971913110770515054567596702119904648850857577428305725334755527549830364586741644021366083297195611897939704737442605955861386191654393817921863678703495864093681669723848175244804433407422410882779596377696613074647116824230868352476825066951296840510364480629712656953641778191854020503247975752031222353736241324969937515580829152028974765217444370365559281577028319670930043180201199762602279529404981998976500141489665612372764571842740058554075560576825637319038059606517879669695492031362960997663260043684759454888765611072622131164022029796282270400786183831076477128932196079647384901126619921332131255195038670435549086774811207418319356963179726455273056216663127249928596945600873160442030195147547598798878204514267160405538235375250128783113766161524417570692329845565399136599206564321313018499162843514609158146140902025955699151839299404542645777623448566170215977313773564759443456050410645387498634257829013447185760913517885111170360631287018233189564801410335740661078784268335010303964916266358423133255683647736485538870003120246353661890839480695012422687197916465229589389205684495991313086701599269718744383761614189243746652549771159802413922653358824695354848353525331239475038725749680765504255751423374899958674793968272813585337277163139384785831993475229237399909191983525564809922955164213964488357521141228966813558699601844498829029124857693905887469824331591056995819817772703981814115096691994829027256049734380680495704842642760690295051903809701317849679471140339088740462135629180269953935436706166017879397874483052525762319755303201283105389061537999363571618052750067766277643778636301938163419603537172496653043743881118783679877844466866867437641868097408459121049189150293850315073944352084487655398852928778782408791126760500870686809287089523923771117460815952642327127736802390651459654778620585838098293853056671310590887136324659250760912098920602246286127497949727735839426412649354440058057340076693039671417384162703732914181767966729973637122963308192276247733332468736355510009356181169940065744653309973903784859945014035265483240779355209543658770889920219644353109832409032349869299226751555878035730709650813261799017970115469014820864884676131198885128069781346846268663085923412392576258703042206658710836493329757882702151328773868447535714521340328893297703130215258087764416660458013451657676696626511629300609289086937758486254316784734544910720671832078858648886746321516416951637844929634609662106267756650634850965961166110551285701898804202992175523638731922240298207587221517967892966031571275179062396720604124814248953305058491655182820884786271222172385395098416278533796235985420185769229700264345737080574638896414416168469671438304330202500207303428208405784753579765576086037294212790466039426738153815843728754428355166303053673840198519290502099543818913786176899493564200253740514505927233696414301309572371090115959395014918426536735255250960908124205262523946659698319513756435587499253221802808124526374726568085430812972706234142487023726717071114627139555368262099829271725010068676738290145687375164632552838786833121780452859927867577510227856798130516581632675444622302543521109446701689065284440900798354254299038741789965302160966761721735645122991398422359182495085311547510538173283645281139237790336405001618783273759988712777882061534781497210376023213146954355336591069967597435883926718682575865759649716988480236662235592826618045860936417656738335954461307229632467389933556305090022506989972320350476973466447484047323616777721377383228776513299685025796182015171405504248777111110176214864811724082670480719450174305554021854926465565989513628485241191649944588555648902826807503398033722135023714151240561166813766411124188894928554754594639188859303275928249170681164234510989429251844501387732725338168180684456756438446177903875603236435500594748412597840188537458955132444561429702428873476995868767746032301139844756052023740494878826647517927452397540110186239342605739097222478838345683358542118106696199827165124597046150013119609332720675259221491708071294059611628430119377863507840208441947312051555691456500286676637667996304811417037823559097475094936989598465532638164432448973508470113111911021069499716174981283356644521994044191129688317909286554290816488758555405239278766857016404645374018387185302607433658035744731239513490596924219756859564716805909556833661355130978028704413053217593382290245019787629299802506846629697257424461751532602965827440808795241219401555843317686807204629000014458640224007771656818549806574503184842461414285532862765567864891855816811181325769390803302779182315672505149902882937327998306084745305245956802766214375416637738762070068442388304056495394301454857931984293359581020521050245476133022203269614529702775725993692682948025191134620445555509842710362585147047716060515621178656738181190056228456890641283950903328318699305547307088017161841769919338381945226623735209006398244117436498213270636970541674342844752588849092850876513504054818444981779274749703909618895201559459405409579869182509653953175381401608925769660958287293917399082491113024507048147216815560250668225401294723188526628802713862937396006862638567101232446655336193194950101543486725084204626866042844209845137200999398662535546583238297475994696126844540499857433753000750633135662251804054905005156584696918953053537952979378365230740134560913237550805790900313852086786110862654535206801408209817629190890108282769701547879017942393637230171342232469174739844850105354090135828402594902330965670132545018271085897431446992585213009190378600403291750790334702979547416886249913697780585430276274599877092888539720857717730003504013620467770242160936667752250228152991203291804701109836929663320651170135639117630401493404795730789355627495510256634247958577114059273783334975453910324452855935487782223601764223531811790646363283848158356900779401874343168304098437442953502579837079385905446207726108834390650830755981258928969001199989548826709768823725693671914505714505932333433903507640744790952600208935480776279611282857533895586616574883964812691005011700367531906439592427965450765405655593001612971558634802954146884411369845414585152498678755047710372743125363493419372718491091026562265664311530238564500394921996241974023450627081424448680231007847894699000566299748582065197396198241377074233942781273240593069433230684808380826404639750389995081246229902490543723724475570160293510770162513255798432815224093322283935978297944972127638185204462871255408532114996340844120245506194663770028525687700133982011948815665332280974415815316764066373359197075583699985214340827543165132775495175924875259278401882295046472524813232331833412119076510082889765351190771586759069262112951244421137729628333025323827133408782040976831076740222159792905778190526185022175994750672536356155507192076441911264505148190985560501308912105042338939745390199735635421800375413485974045959823860349751887499025521062515485822438470250029180705247107057952931695878440802411755277926109025505216580288703121763641357290405402948074121663791301305007811842319762984374615001774516809019926711906840449822490757927181071717293378489855839534631969186531547637785430085938147287417252349343701635113017054547419751156136837596716775967401597167383276173450328571245927856237450079280275209470323590438698945578795410290912295028921197865663948260927543282203799348729809884121042665539926383903600613868053266558987788839500157040454584536765486705927224917912394647121793657638606060451647717609339787960812829504029617978188743591999606437644405186747565846813213437541890949041957554414823516083872063726221617105564279838790233807878786907734040737283104544561977559366618427660896638651103516306742367319193268508144982346854028411976148498931917436442024644029547838274809322807941304554637463127093902324207900125290690943363491618823928981547373265692663659578721904138927114398230477645961706369205282517632961815485150818430063889712744597728726732896459255439132485961554199732232855642214324843152855704403975270106455952755354771795818392881609698878346480765345990118958950030071501641771435009789710766350046695309033750818490086470824524395882357844979159997657684600441310499742002109009899224636157844910392853833170920423907969564013169453415800639937459530122569346665956290484933679076678639825856864708092307146768342182372009611413298541255502912451296393648942051770651376577081359405890556391324622185375256539876704495880174173812401602401455469064814319917383407564742244903161648214060807198868154119983043615051105510589784860188718259613079222512764674633869210098510455959303154997678469782002390225883339280401316574396865592074354319612230514167037630522997758454216659752918905309391303366412227863142473525602205548735691063876023638864931630886473407731340919978376316714568141662821554229025610221628110729371053320419590205853320720404005425968314687627243187086452676531178127623634267232935816044059432706974154376726072459929274541791455776832716489279528228528995169040619798498158070791775460782402728438515021801701477894006569768401276809270280313125789545661614614160999192307614669780245391104683579508748509680378734535344079756615369909640478286311715786771673655079763017170490659577364806272467570796978516966187530049058832451915605636977899567368436992207791801304868907852948344353970122654291095639444894532577956736295261480129665901428777844863951115259470400366708033933230630582029707036947675208420156209270567206188694828343795850100832911530335987538027878728440073462583328062734477535113879653550322307803786633891571188497745791395811103903488114706672611687164356459184507057784485866636372308750044831115107016677993910469157035234470844646872621695350314114175549610587521220924560440855145987982830518855761480786974162692064192127688133744305867697343982481001948744901165006016614341792076902459016961575432619307920146401733295247131854909935687756982277902530189569785174956109898090015783440984024957074335710417129666327281253142104474746603454149354558539175200029457780858065830147688050320148977005551873009209921207711239028965186800637227450408704647305383171122417924200945379299319232258830979867926887788891514480866886367778068252142522718706125104622754810595432242469002504192622079023173932132689375028121905796725833874231460181306342528172909410869610806175251585958880350500121384726837397778003028104408732544884080253039556425288470466494686582765521179487600333838267814666214663651494472494377598622247952794894228715741914913476034732553423771179780331765912608006527377686820259989413795668664579860742908144902486437852919777213925537901587805053586574686163872430924192499008681104791655892456964855413784609301859751823140770301850686790387113615875527392335355354746240272949020002974759020323399784384297299191461777241717072154275381376551011674045033488790934152755215184908628927167049080618217801304448797451601812805049091609491273418818436524157736281143979957077957163232406462684612664408438342650165505244016185113022560006784927638465958002493015995496010760097243131919050833859252167792010752249989014778693934311893010603305426650911748495650961755411360462545030882813254234807249684717153043174151982796774489959044639475135529492339957632925679963551805987941873086569539871568941144970196345235231071836724624575754538994018896139068075542374417244673746952152464463545945335582868839148429869943194722923964511521210656895535433032550894261484684339349517439376601994519429828605854741039739398014382701303265889047050794140672411719767874860720677248897085529909552965171030769434398715282408450724654435357566205343067195534068917141874149542716460366837927011859692238726828280264067353049754145774175641846961830819685109095909292030529326903549895425062409827812468868156988413777534662919720392852761641149515426212591190249149375178377491972613718310603669970272691109574200208773056171165920455193135471141630842831427335890115041564302366680319495169682056052478754463975943061055323445574734029230022725938652862668803787285329395530614136443209122095171781270797345369789821518829318140434718172888120716353946388982368993879174436267108449521123352489642984046557407682457155902976433379449494783108176325443570191228356981610417930802165103276901957411476892551888091661896745481766313331731709795932458114441363798239642405433566089892466558493453400200521064624485451874506602129611963815076914392345947929484462017891976528786933340047249173764883005980808238038660137510259062079053845236216258615041356239557845863658693980951605627017685840868872585842584768967690278614101669577118741393584385090603273418710217355970599790186356258635067301607818325993612115160528680292883236205967029876408628597085740053038070283461659078989177526809301651402099080479018060478302060664449114057448059263174963268966249360384561383676128288804685149757410688149942724781529422184725029893298639620153066885280919906132872713735485948839692276196471865040424523955067428808351242181039927078529638790927914158063186915454181538190748075132001418000702338206310575454266019345319349373835081054934873201575702026198438002998699844301960793393689516617838400437225153317170099120702442334879356815021679474360061085746420088954625294366885557960109077124196361762170453031061721799023988441752353790568875845265346500506665461184524505873002680645555432718815453221625684807630914392032737076772936400605907120319795619472692643856388541330213024982860579735804299725841914922026300534641246626622039721182609936579626373593841789949978129866471701651676602186404390949671963275415797225373132628568894336286788887196182608653205694708873655181779925844194774451826676926849959251076074038723142356603557569657896234425538638655857231318163073835349390955164439227936955051518792269965845099462509700214136713642420512924855408900963599384911421369209793976236233194773529406580220851344500849572265115647535051013075884733445633910842541309328214592093064549964288310074713364174249279558889927632690236383502353396831049094190263935382926263607448369040214258256340533444334056234375959200097025683649949599915171804691720319654884156307644996660101173281984110118859550964493984654022099182097637057158642149982514644474306350759684051108431670738024634303128320216211597345757655895813906727482002313771948423870093753150684181358833674628265419418872436159565078991018669434496740425208474679581947427835203500442664467162232033813195650173782429599219685102423928095784253763963679915102548087852281048143846144675558503178147597268228773713881721634664107490654336478246288077401228874496669499314774560360713245661721275088522202781229290181773461470759177222771636989298502704614873864055021372503033679752978738341032596882562791189440190776131727483776374571426457983071819081857898398525664873486023410133535240618124875870400883322799898595356113047755384171318704009290275704430358115240597646906105901625859292692030643636933025902290745430966158757402974251044642500412353386616328377976587099445534228628896454707569849292726566969772882473106435527036124475874805801297397355034237568872927107825883112475803149871164267066113004305587783884052995999410649186610966107452576269258486475807407853317557625195649633516750336751648592750587353340399851949491932110291563022998924894511249660565322597481707325920891079576855303368125077076651654593285148493849106286870407521599201958104447737410830252259055530324707979974591451774286309709246440325674981643212262679251680857185775671431026076776991847853550670743522341101844030492113203743737388362189196876801430062024284120353983510525383341277208686280128008766735990968423486589269130506149968367466251292680590860379448566155888320300816015226509599931293827522625707957707125073234412955029531557206942540206557541088329175326862767284666282093096959692235718493285175093092207249040932259323284966531335529169548251740770266282493779888544515589679369121196292724747548509073478001478545250293675875146508303009226980199200047598359757286648818885422011206322330865297639973044975764884840105756457287024940588317329644953108856901012853862182949832502527416624113807968783130998873829807345380113258965358339254590221339276463822376305985641016106649513754307871890635609744950944985701965055493355325239274560743696658182654234625585328386403784092705103595317843595223238392494925820488232300443197131537504581604001117680145780921215830425136180681263730106780912746886807332356660887190963315861799707787520386773978934989379732019845300250853704716833725698151780932926327243106474321360888698814637862368204136219437784286670507288999929346896179697122685261084581185564866624087927255283465050442392485458283066300259009250252922890877086018276994503078233985665070685180724565879781337884170281812242058155879376326723401448573915089498998701141276234742533281542496685661997662787105667454724197853655499964650114310977469890660973532402032856040926967507685126205299844746943359820349687186733510789806749391108662831259714800647695705714372342894812345945911420669845047559704580237102460170024804112893681585895163898180060699872819961947824677853243365772815125060424729854181306352442531114074626099977463953416618672217329291665319284848753868332142913057503979704475923953848770482797078002209156221525431840376491787819723865515820500339591504404459287530738856046389232936368958084090419919797473849665343108261916619272486828191580095776821790161252447272747099391079355241775595431131807609621068003928778310737675621545678925407722301423232279113729778714258958962947409478586299250582931880504547399456357610000385982800818488455181429551089207854990549571672422088246259321724066580428140771603013054342699941134991344763333092690446605991583954366717946717964038851897568669353658052321131974897840079862247629264749392434693057378217648730225959718694774441319158400506362877528906873452360397402261463313193818784868742464896274566104256361619784313771605313914864620964741751816592919322824504490619625117656573583720733023867041055299127030391403364724101568375701028074731872302788076810680019912010804189048449289246079238922736302413620782429365549073804033443832853041556727338225886856694501502422680261332096443025594536841382650750660498519093836610824420784540361279515091911954623403156818512640802433359765326486013787187387026073621568824347249290888568797898767405640002171791178306030520570169538606046227533972722758399153617221072231004590136816882143596000529317875699827975387302464018668677634577679848508307745093050961496041367323231595020598300035959586738143058964410428229634985243204848832831738627383839248947909284577451102817362482670738058073292325254901779194707776081949119323616643323531746099245678604784202169591403618492560644515032033142058624498600779892190003267596283688596576548240727563357128157637325017428663256835975483913573678863419945551071372292926641013794690431814418257292817484928941211536389240342611475663307057703065426402251823955759969380444990115088731589615090010134468274815557155215853231175946605351576703783358709612165568243508167967842864834906706372815693852201763054565536529115583606846297099227158833435769938689065407744588634879047462740743914266584265591803297274037858129805178149246963354426202474107339531262601089068922202727385547309931462842157970117251675332888393222481895848595912098059171447996993633902653062556871962592603591005686857552195957983421795210427583611817509912261842952013151789419631440084374225412525625948975654657043931185155717942348580222061715755553596313825734586284325858377478583443652599322609164394157142381218822810714449642320333462132414485754734284212967980663683673859862577522051428029589636567821969138476095656919461372942904902961168355143440003748144700736926318768878425287425023972076534580894209651410707827672788411623148376779408295999696421460917462408272573815735756403097837191260819570878621187265223229113790723154519491277779056683756523843509989844507783580251707300290730429102766844409167316934723211318176655578530266683404777845383348981752351439261181178784685193533860340629498193168466339712488796755969992683363179926738599657405601831589362865954225760767564969772301826300676403458203077756078342378225103765879945576937215106357032534553199346070019590440367476958320335106773883588631461270281213834156935704595020822561637697447033256164444644842497350859299982712913142558784257611133512625516459793378087157849365874276835967261085268575250406011581155174049879174791967289618577948672694479220546248729453911041248907215355626690801848018718719965743716952861866554223184642279151015828425752560776585030942378954270903195992545683312761616918764665430153011755019857766873145984495890888871497340754224588527345218494610379906490085976460571778466730095439368468278853261743638996058189687355037310477430744281527858802069477976200391556420541511936681145880301523401760881830429228953533710208647617287515301246412126129467418291099509889086514729910684448869719606387538297047237944287296642558215497774828260675776989018633193925890019790050864069391845470058069525194964285230746927576567354523935982576090806680670301236782894051525159937416870958734761792584977285251974665613760563191899557529484652618318660766692772308786925129028133601033028944908717236153449315955253160400261426123424630276344178956649531380900474625763044513484196721294717446087570532790654207624337953062150842512468950803448846050687747279280595868156652030382520116402308262499770178018825333831322021581403055384666567478358474206397413372067784010081694333059915342593142499846628910812848222032641343044091250895003568948537742203554610011467366220919000856202054325054072934712112447162431300984346972498591117475933258536254089259250301747577958245705706988800080574576573945838087965718080729575318164870943503634412452615911826609004614146001631741698089472223279271292185583884033951871751982853748829140589921090063366919173141930644762631714043457108960079254513084395837685371969077162716379196689925343881099577988629357197388403653960570944094072153615673295648185056736026878336507734969965549355810738070406861399483960625404188255393462966375151925843257979648823204322473964384180484609922926513784688625175681678741040560340498613576723019579918297764453582939021578723368202974718372211404758285870838852635783783700761371504014850587199054747990195382843547778080326982242525486059548641247767307976619535945974081252471802150692341524213771855328498126798674102834089357218870344437503809115244111245426354611175479209488471923505990975633462082170273177566573740865119095692481096794588225784320491637825390277215669381295803319472328940639975447659435134425246546727346432312724583427118393534622819834144705649537014081217987719081262060005147594615216134775257026669385709406982913634789476582057126726945762035420617194602365389590670639902506352902071404538603792432972571082826548355580755823801887058471732121805844581505937374790405589506411092593303692872874112548479175038839779294165670625998495151585739607591277724077819808934387984873341357137958735149875457268383289184961606154554831675858453395870449738425248024220582088989404035344988402574162558732083519061096383124832815847520337917855155550373615146231391517133648961950008436872401528403418897920601325031356950891191498665866071531633210749069863157778921119453497601300509118354284150015060532118810290284341069475983723217165608852056328180311124196992076279359837330699298061114480298450265461477119917116000253760346152741346068697139843992761758098617502573885897571104316420298110468063399385826012364709709777075525185630479604722981015033049182580595530378387107314372234227767977999841294613300445553850162125605699151878042843002258417978306853172498460556430598291209786046558858019343174943488805085332572654109646262589179077238332365246663658637038716952617380972905266910078209755842402389925941500571955398611593892740156303739898317338802154095991009177944628139517644633531816698226995980439132824384135822834057461900752828086810908475139909899427185931660853345576542151658790176306662744083561561195173654984090494617480956245527995431604499992763976020733261990304583360010085319068583778324163736859654136340481512314440989756925805574349945888977821253812498458547952639307298213670796987096635181680361677850593819619523084059789214630381147609188440383547656525134550789769511812445444222889221010730080028379734500119441160759337410938783472737666204418222175140207050896252211202105608915487888772591570216267159632280391538538457183521898803108450418409119868103966801226660643990803522350454304539243892080399576534879906573594553021683613601986582501190253956769134926992333487188072963802863933556398500528943511710455583037103301877872448285848252235526456086176715177940453338743559812139168503004184086267667465985325705584845716649142312608081130335528740751803257682769438199438298106473108934393088704464695083717315473440901134861842919834048138773722328694205846991490878819152741997948715547427339016138857892396448140597795602432674550230526787711844469473662018887998679646724679325073083963844058273908362305147523603706649795451474132045762053001215634563629937826150774157960195878556354485427163115529444395581169021904607476928908864574244328216677309436095613881598020474157372958225885586071881335718908692179082287682781189056498780199141986864435501039886519532523189551806487362807457443414652438614082565490319183172731971661194220083912776253981715280608025894794266119849170585583819622123521689538690721020951907496541148073942546160691674436480565623972514874204318305697717341295473165353974281912698615080811890520705909325837824814724977768162377534984376597513927540824514588133953033527808036133971319051191021586499082500002743732263974013576614975577117530301695121660867053327971407999925719052223527900967379444949963313019473443318663683371919148052641426825220516402773058658974343433252852141007237479246154761980906530154858507229040213548982200231315715491836747571008894633060080244745410300116342808554075460260573934614935372540582637960029682792712094571920938387802606975264238573404384995167483899370541242108173499953319504597587111416597795778758861670436247504679391341271460403357052466098580522232157400746674327476245759229765715925223478818237522333724460914329617222336322119605720210315629229677897797437137396129098664768989457673644239525999207451644270902014524402949187943833686842960785056374662393554260159531779671517349767741044683041461731669489055067504280679669220446740403547924721813666204020975340082085508461509229527071969069243532905429264446937684897584473160875678424538005115046948088719605140910123284713595039170503036885987474109913672033492220198039066463601231451093306925723345829805062320764028728161299682497497501640233184101449703753785763770960679834367929944507148732090944969094835120381907005298013323951977578208072655484743035096714270895638175602115120743101432177327090815327841256196813000226084054115803777185278826235322667756106778467910678267491204233604577338784995718162518401919875607879226026378875998045170023240619263565660153740463453491671517844623436508970061074787432742424315861761046805219867001487153560787180863985479995037456243857912351396963549701384128281788199889365499959930642474893664142603584680317230633956748571300876931668731123817109616120538508746685504409130064517748674247645887818409024052867927848139997444830195307843427883217647747098997460439133287954702712200648960561921209182866867353252729924331450805656042953429709617268027662983550143259845957592899223621867893356044341663571486832211150727664842507171396329051896718617545431924844393332956688643496526444562165020694703574560549231243982589394445925575925802674486498907432188281422370250049207679755274410175165851989395585410092456181879637092417489016575211677956673046461729605816414528256214144408094738174010444916519343973760986267808743262524267367316967923948909960540665861518550641219536691209497444794002204900892651591811163515557035291003374477768193818011884838392252855019788740825961930878804416679401206706096179229806754808414438265001640955224146208365229761082014834998126311378523579780256950486271298283837613190364802783219711974158107936264699829086329586917483176945550003134925242935083205567857866410960657266221989286366814478436187513437007581605486287291930756466680638457847264829502306637840384436964509356501313416626583185460556417562329033005474889238920396734877928275497077479040317725224350247775895669447101228724477281683146757521838727006019919296711686191100533634329272646914070603141305268544060713392613383224088088998568314827909067210341510403196250706466815861924603035370663516347660678930942899568079463970453664440071640470654456674938530905725549865519294420875497498361555983154838157361182276531989176900045618680437847124117451121427359673718579559998973169348203723271006166274655435330701923594666026140416623202252899864067472652607531701479770899339531053171736326540816864456618960946834042798278064643929412478198854276016401977218564605606596857899094382115591510402483926635177670977009955499350372373606886767524948578168926044081832878453923597579073109701044314772336104224968889546541667301891367141193843109577472235608047487613951403137213827952870975581882924615749236451444226038440866651797303873947008757964777880891615635720588952837813603086027072602942941021315562330117737409440173478774680293746117384078101660657868664419849216677711492054744679792376619588815141055427080451576527093824255308495101781902021146841120572532592970881639099802788190803854250884063279892902801016931222397146637940243498092289435332780881556172769980908087354869787341225455227437660921849428946565021344223278682061779942229991346238618119234888119388978735184679619044641260939491396426851343698280657348208072536428372903938445070929352719445604333234998647566385908079964519530758873381068647993277218143464870182724914144914064552426052587994896645579557678367083818227569306954240223823742985448644692782488568738159267608826368857057460090792465726484391043254425405352038919127213051168505261370258828370719983560743864274865931008425045677948584987970485467925281312192420783210439896026317513380419382709978324118362777175905166780684569410814871465096396711542808868857096867618234542824447156907755651006049849771034687232544872389804531408608015075667687004186379791981817376347982090836890148150573541668103812001529175861573343212439160159209747549781104402832486654785427481866105606209145799342290952970910500007236163097710135506041840143710507920576318360629356068616425921280277249800392323059250457552721802708279611677880965104724770442758369638062360835781922229733972173603588439647134882168048691915480838347563595556411833732190330593156998094869897770653482170109314783360017833316866021992446520394981166145346081383142000665238801633410338577105651161701764418905427319271107763384942037909982060006823806463297023588264845810551409135603291640034245618700878291986281927845115539685498688742817173721779344231810898263561395488032452640129719595908859421467151213292795300068589839733476218260368371271533114806799733902620662989650889706625218552417954675819187407810630416096944028269786734105313984926191032158881014634561273719445785332883764145227684872574204688925195971615239800830800123564266074183420318119159858641096180030438611770577704043446694128381085800967874947006831390504128833374528382019064358080121247175393320033969699624877694180084850691553437569083289085010151839771718424583485839958761726074384438853474235290361415744009126001827328659208717786448555142113652678504800985878175615382247934872354883863760273343541966295398833394722906938187557512685989181780185906648882072903631445081649584243299650002168871149126597133939322580005640883475352930459573436232855691966676976112708148902011683307669413090905804347216311546820598098255043174149618723043814049800971010354111985550114257702807872557937321591653804595529245679965056241919019823871461469374023411409636581551846567596088484270306255933589129989865277155735048890809145708248002373114312897410324214758818979986505829379883559587943090510830412230775382848220084177069258443066517748479505511953224164289607600325467503296324416940134228443862519320505998899425605467671118893425547503020268784449094129668480763644008699439962985401610317492243804579253729513152272829510321927271662282909471931931009742804721318969938898013602630686356760927798447809207734114129457656322720466459387480551661295913717691191761028630607442198424912535054782778834256647643735959299369247169798352836364153361433470405172429597287622734509204502898366065256613581040433351173114838338124119029459840022930995028145957033180849499330161687348988700346135993198908306038195401715326488180667007975626348062815818523803780617021498062041023717418780268537510490986499243624947836232846128184543440780086132419596572591329922659133290936980008848769294723468834296635945824953491630051499038583750694382898403199421620912658965623936117179120518075086702914253678898822833287265004301024879204164913498430540352447746299026577316041416880518315569642058959572045502979716928620821720048801877084563834730273852246312977757263417634453441187788545685981574733927099893903134442636241928325019817445617033936409643838697530743717652807893706472305401553207232506450656129532236479671827128375848113221363921864531949384679421935349973989849777331103940901809584136205360244696507994525886025583818958211354351265934680633174040776460287833780082789784006043310863774137914150794934411182604198686772495965727543571659795092330484025364746150366328214358084016698777134316656338022027136680873180433029976559334156447838691330372325143212082062797149314805192824291847464196431007083620658529011468813895325613707021985121832433518232545470355574224083182094982167877273817380201481640233128659524791636694066297147134553666861173486754481800627620351608107788618470714059979769858653456699212687208639813029944552465242444047364098397292851744846084152909437840720988203898042390574229936416155109896881042306369252455737577565633250489118232261386507087466276796133302864385158905981829983754025122607678839516450927890834018602773716927976585829939871878330823467349489493761490628340171580637315649407079648021795614042060905520529772932778522512230177305699024435991453858040486350924696024183598028583985459604899116925931376522000811987297902142665164179161028751610781687363539577313796123895140914257792771839367739472723389866433685375835712571199491534536901198787607496846880810283615321542001735315109046221103765254018023106092617694586959469811819474595353592068194815156579674198485472243071509866684379465769552750366779123102611509766458651705534184379743618685560618633635376164640255962691359169726294467589723040617276566588127858584450136403009639625016958865210714469740830871637604407431972969959979026579436030456975281545339280596917853996314860926051341433375052765334373876570963120252584539828459602653884255825094459469339586404543653406773782569402277563222009532527627064078816010294068094157853899527966820809589704398406068840878344967870446196846753146025387858551406043110209289528184350440328041213755155059606473418515485310991018572073518449703963751689492418166297077956571184584691542811126200458642063629914570546333997958902326725435822442315525831267823287754413022332107656898966412813251645791772617962430062007958159691992336600993409141173649087019783946640560971247363632370512068527169631655887467172463311478353363044527112644521088489738511872885811685036226720862874371120601300263730545527550539886095202211076631771935280780282275267921051376977583248771046392907958063187839468391546380220164783121514876752474947437218785103745718365661315079112934552426903059406937779243010350419757755967947713854172295640324543715374458907951290553346314091321017492356543795572683624838448088104691465305530399900720746791049275358539716928378657073641509234173006752739455236781838068547527330200111689174928633469975423228429297018291785593732213520499868799444557663443075257961002025617246028691274257451178420979478486116772238177155020815234834484356743390733352609704697257441263230715131269224647440121500147524638182223405798578273540655418533063687132686443142108072238248548232742204576934548610205238511867523593040378631181949083689776349602114102940226745590370118113442131478886407109583491561338491511922841855863621768606160030443768845925138637579099301055546329329530316375322938735290081455541507411429293478983997505783042895313430966320347466187739031203568113811110079431812007905835475885341018941198493440910478916738377385758876029492478546974194687876272141393853335635567910499269621871630252682417303730168069733749632187641673454644798357560436208586841872419941342641577251923293741835200928260747078274573910864450504905836713563017727707252758248380824253971251672250081747971764096075112128977997880896316166289984602975545117374450542906148005985245215871826157899649567457059298777388181313968416542008505246569346625389408875839714590126396827288944446801653529994398179277941569792797329852510587763631223397610449129335733849977185690594300430899068371181240128592794745758928963770253259235244678945495250511828314501033245220081254293377137166175902350793617790133954851871073925739239601460557116956690132877375415209723696367757174567279355814081575240779728819600729137092439836866494545148278367581834668610438687733468131723218650364283455255957572502146077848614749111021417527551773497556742106320633012274011785469971221215184580060460094595967253462523855391133333284696688917230507034148034802478801683931260531338789711774922192379894010747060158170734785974758104650600074209752075425394362926809940141328703496349839723569008360268197325876586748899691296341634672180404991804849397460231492953946682284466009990318929904751637643809273506571133339931213379129839276031956163763309461365895475992078360613604615929128423386938923827248990444565177832131820546834024505617948031886806714623489294896254214691092561029550064706407270213553873726527873252229544765982479664453532312349880268583281278463288353512820836585558914986865124337285246882390078093044245845922449091494923984210092985263360366450023904891615224247235774732490844060934982161000806460434582809073892138132021306231770021931272875073169976807547813674263085116768460698804448949678092278215213555045525649178568105146904358928802724337851226066237017413978448831982915029055466898589359768061255173014843799158653053986733012654087713676909015244346605349182781894721076882751272024322605915136626006331362623333519174160006767788338947134540708686819424681457014908258750235416033698787742770106965763222696826163914353988299431694281373052971468807991458319437163918514886793035633822033768444797340650109519495008630276819996322657251958139076247092048785668774363100645981470485944667889422961600601007034535752388834849035149322496020147839404582953349824603777576901482838783625010333329661940680795737487343443990720617042276548323109732948673129678265870784369495015328413723323936239586401739619853489392538578154355118138978176004434996270667516658243860524638863239885072968436240293708161871190269739312770817691941609304636250577523172069170791015642868463536927762050069062963844694271779608486551493630122339356798667278759191375334261876892394425695135408732350035765707958242724012285230614956469644591437143148304994783247128260023080135399314257957577519708594270873440398056740786046902967325518088125916585461234030191811934977039737387016582754516114811433731153055160966669876077560740517303307171122712246680673094196134827379207391940005938889459400553921447890804093580072719390023709310708022729459896236055325871848716558142799089169711662423996257108244864500505564941572242366597937875352277431471597885720242653565001509565830357467779746784519014558516357736260086925780902450965005439860464792467023724583985003580059863664400232099387440761505604768732368043067998415586636225091726802528790757569679991275350844727487269062084193088678012252766332698507549500405995186058287316361129187070911998659990797762716164065260767459613120591964349183303253149625457862012275628460496519694797296954346502270424125456238138808837028150539132521512536607438481495171738475902180266323497208047352786043347367884649471213900757181805381205551544926739083618126125458108148038044570037788335339930381014544458493906546451227799280979152098599928100359512189973706854394570757648855560484027287848163324675204115618786365521230364094433311776469126084771416726539453092720543404217218751883244536193221869676307512548129194622080867319184894310646768894163782092086594993802702842562969629639857449807188688028966056082961203151365317259225187748349091356113800701839669189159096358759011831851443533617372264282743809767487532112208587829566898281503218767913274624600723396065733528098296178620516637273654129013616069167791929541437867185768237779146543877037085358090197868350485503511567411411076860388090319722594288760639398780022769999953654723611294260878041754348415236140150618325067440268939746666540583483829596674616877106604495319304202161114406296758512422431049924037221643210367900551840734105632128231369850180875515292542111907513186264269218999882033732664546851368159107673228876254545063625797838269698081802189171160050470574649567407461968425781711060390826357013747305378850841864978946860108408165395389353208479739450650198466542336386711689901859445873315518879738388623518825534588338786377488246306484898011873943737502506985318495636833504934012488357912699024471318514015371943858614831207415513155553457069287634330678424564537972901334016485857477048872194205868901861187162628047358247653362209499299370868428217401123255572724358637981099822272331896520376708890761311488045781212156666059719750006155052073893829515157211296420450741606008102183291985185142727467096322190435091736984464196418980982456956117350352130669937137331384650163088980595993991641348034762562179900765908479803020495067286627916697677020139978070757307621231357080767647574824808490439574151378059071612039170734484761366862916612524035214797267432925969277342328640018372208610809921316952687971352986992204857548990448029230637507091643436889169903437120907971017495369523622118158163016837901387399273706697150198213202785715553896595184341720020844127655815699796956058691213976122061035553624594085878301925573347692993392963771426742452231661748402956309199948991690830199665039643583106894313745669417689930489011553474227608520649318275680761835768809403757000119446447573480724182307987445397683647679490729879179116951275281918982332898792462931396386292131701428425304591631993866074768681052751310802613721501259748072856984379925775229061739118808165548767865957675923786743207307144268861516624887418979637342307944731686072062045235945226423651709855556674421431290754084337697887213738871068748358845340685499623464388426642346139892765738278328101857291607143187120452211306142934524579928792724037301641789035235378750639223639225888499226409821333266448032942215068978676820404810427754025201911730260007522669297254896922315866610328278584597244471237835589389414316897329432284857519786263497906074690211527738025417938991845770838438453389464509945738804976980208076027348467882696324923143400109340886443238015340437115852386761974426081718970224604070888587215701288621923279596397214150101168005910247709803797862593018172686195363807872674994150379906130444145465103306820850720704217999797649742124538053037032562539333577627732137455906830916058495621421533990671691961472346469500600385837622759060423198032133291547367230101642084063464814989066850933034333031619977011880686102041162311811985995153282836647746891104468011939517092752019994443207872727082453636079406406424797128190511490899748442447443030135065178037828097042250278395036114538481495966761230018285968864097146304474133885745042875821665904294261990655649491581282152544462372128950215020947164802453344286956279878508434444859550622796639123359244223572897750182266182362858090064118558550420361762304245709031335731209968843337550284953616635359976479816624801358408126885250320550863863506722708049799834688126578680024369262957474942545908553303692671304385998158916813608793362646839909338486445690744248229465470604906667472396889763188722790255304288026625119369587603797165984297993130931634114879854384670856878673207792057199499682418971727950860711158676140621423861879167179447392603100511560124252676509035727895743554856409991022430541952621329146750132653036484484168768049689807658276446775958335305818534764725507604570087140614041409800738563407019012167900198476659381160626491990524522662609490409822883964219947433381388787417736200979440578843938792077669856504726831846426158493326324600097525778319043993561594321423283707141623712118816681416261807525804389401432822311132813455772056057241747290294303734536959435054148411150355459490711013142071365113894708965935739845946591756851463172491567751704639235560943730310227286484634613669594270608657787743739939452603152268758209875250410572876715131904984902674530622136226220011492023730066399707789294875298011510019316681549007689482740459106598961547410466668434437074967651403007948812980422857100896497075248901151763114121806624838282291109651771458468087609723289774337582175124246703651524537306511146060621412490365217972709860111881543282773649429684812649995550967639769191284599417999735729400563951481015413637804182230918548710793611004789048999799141020876475883245366046447057361792421341226888363185866150053456138748127801209662491059246364392970921118535864794904840503370769082231723749318959406846330463189572791958574535374363066563019727756108667418757486329958682591135056763973763848403605202081873217681213850050681559798893813424573351329701325022689502372039110997468308921645201737944449433715436504702400813932229748002978157069287810441115117582139027710283862154956961775696875287634160517520207666175095330296615992148676043392864939184735706059316965707940302436224739564285997093886104253240219500584336733078737636650246873456354720773539357482024500376457503311081919546189571768224020010191596373179995764045034827445507082394845723992366819839030078879622875034574282199439289036773866280390089833878892286816627405879798289239567477953065417422663851358501444651372484364039603054539093571740454587293275790806145989323775166809342716398167724575564614417186499927966091336269838262774271802083818562095671340458807967208399379139354068195749537911494795209611085735113222877669071531610112155716410122041748792054383979877719107684681002919035123118912316393682108877845174844667027929370246708891545167840021479304265422648717314072368155252465453404909260317500103451547864698281784637691556936273064984899847186289077220414578592215362043960876420804120265745646063973665601724607008508869738009807480298668140369191537530631401562228484520094768675943370198327895203249688866264066981516241368911232611598099727427484483954770820815070098272136306239675632759676740372658647782190625678643906846051241416994160426078727661352641095847496873099610153608655814404868714463677090783610179614541216782924225011271643565220257035896462232083903940230104647207989809848920491250856305157921584810516722115294844264597672660632327147581647712320187327892467267004491257556651907486598852600741593619963304492892295084771089317221447768721209173721240514674544656472586408790494886977922927341127328919856086391813557587200180473352254310938663966139675158636523995348640972720780122254494609342098552330065708808561384578472044919848474831702416937640512740571893958965806951202305943392275896897658065810744186887941774961271755567841128493484405605976156316845686962011268018689103153947565573607090905924053851663710477140811659486356128083185216290058591340961658523742961264756342383829610632506238379516100386377650196041622466799270490331868957433864170626883850125883731186229423604034960496017696601823357838545189398988925370411386122771830588624687661535134597911862918481414651827385647514961815337478317754368661914006697993913434894343702055154682884818600304062160677808089604959886691755834550483658503623343172321066600520774481957805149918968371145947784500295424455362980905871923072775042030832429549071613504951787462737128812479691433704143729574198002797626025266087491926842293822677309676750336762195633992007726660230736872887302673219294644283074093142408844969428327609257972062050825879943900178233540084204008425473324114811394018331768841328709298371870207617223750976166155992179391347106753161470977803068223473612847679730776773084850544745989461007232007195510608523006799049398713134587827683514179432069079785361040564067273918708972968169008968723275509754329719352952196591404944347614655179791469840995210458360908858707729144921826208675967912854781455432158785040281804627855165334579472780285113615202771982213487232124703938562347142365894371098588871924560184124101733801303524338365360726046160675071103530194104600704933073606247220831111833502795817251202728350494484960975785917970313047786605723350475763043977944642045923406192893370226377076136041938882784531023722419990305334589160444389771278897607419658181221357384417773482451915100933484994330432188063624450028007940486868119747235368338856169621969813835494277115467366496612579300394543267160120295167550351316888793549707228214649590403318739368402143912079258723831834363173807561111947340986038212530382545592637901930679490922305118371468354740066798359187576590022127078299978183756391263214237693884330821900500229268509257883078182647077008167502541516870656178966681312529330150672454861758363196164740014434338035317917958762099395108059595004040999154287330118252134053853138593224590633859001159806070292199264079732341371976072173407225221051423019567389104820210048061016765400499972359937547239345251704266013381554947644252017947258913387336646897096789189047183769425930729259577893318294948941564592950000398486783135194007645839798278927850751037328605579569093660029598181445093501718516832716511769050815604323823677459506638666846524445124776027046587067290812304832812214261044166393138541053068110894338381673052293568223630826760311946447309064383297370852869733852958356405398010909210207195907997505999123340294913900578295233658734219541499413424261152269018240594216350687911724152240670429310073742830055352619521229103019594441506473873273265139229365831828200441087002457572383970997381393924441674056390607112099752888350868155389183221496110487014162582625743786679931377424873887486873162146843694011797685306405201905812098562496614384324800511627118159888798289329540878240885326542629497792277859440918000080714595977088297793183133069304771601659417406422110381055823533886133227945886195480835785614967515744955815609769951495416033594604746752318992812796432593046084272537557526899667838896683452737009008213686482292177856670198626729512139228533913597433705577030728712300339762594789810757847258914392590892406143391182256608672806405868936711108970534930672385486733851039174632826018425988964833027011832883819261522185548248500310675364815430138627842006948202943669551116946979279410319386175082990879057402907675313705205445512695192759194388520544204942945593125382830696415954560844183685310376894221575473974476858559204884817906383410839963655750567132905056232632957674172971803379643025010574146734080711600384322772871796112374157656846473601546294198983888433881583911652394978712997680482923274713013820276640142721263243144433719009333414582413772076230277532568672042640167611501031672749616598892606198720971652147985787260480555116109849054211231131210868604340297236629767341579554476363184345104642723932068406709081448280627868017914023950994584844547033598592774095390472935503651885656043554936817063241547703798427367600191950905865128912026561336573247578310026661164957620911324356379273924939244294433355326013439928646098415860310247820928623211734957821846749441427094472711650555012452303881716903843430251712308102668496310075341797098289949441627247797308964525114701477756771643585050433604553262389790113439863523627315718867081888102090238741874660736095583888919920418537719049211689222188753420696073783974513772507373687758484790794401234602215059064266175360361279525565655458642484424381799015417080371647995294607054327229089171561171552862881798941781295631451542626948513386326962335876464459424816236626172678705488682396462317117969567904083672204419068688272903802874169386841570547445842249809736817531148515207475350466567706834567854532374750306560933482250271976193779940813227236344467238264845244007518253866073992720854777854403181678546681943791853086734139627194896008955455622948829071283845683260242812007068328886538846421478118839146159717903119861538621503715352050646005921660937205612680055382621784651775336093666102028990795164853088274025181824272522577358613708754169623516823183898272244698765939621702679271987517155171895180221396576423040012803290320584906498442723696070379315163837147173360904927626156826059299708345304292071666464667438308900978525816933371929415626095991612170810069353114069169204525982105203766850324190966619418309438451984787731269472190436164374644024005325432020733014083537444245270093969709135822157436787724548085993024021270117934652682769891120997624094766056548841201174851387701598721038182878691332718859947025459845379267703189118504078879769898449215479766789334773325866973623065089537074146061548898047611076320694054664504431914804528512730054449174380710127973524944995110936602731546296474146127603636756386693771977453463158720582671285236502784601634581977557929713802722885070700106852857495244318373081278689483115014030757768159323454866701581351046082796570147342497078180544554017991803509252017153992815567488841488699165289297425094663033628979922097654169301741736291261988720711118990814047105842599062421641312121693587008668761404231584774416245978482064954027500766106595259077929257703569712851998449005696789042380459217971869194210056609514124915540349490122044855712148456928185353941735291125051204723100424823840535292588393703476497970130639338410526561760701440025491931769192340093160311227014063777037167144332057804560817775018898022168292154099234484920755403507611525979623500630688632662976284011495547207014539563702280732308642697810792104891499094602738033771529836710899400862708706298375729843625289151682448287053345478891446363381963370600602056455737631275338431956966556697546399874803370121861986719979622323876854926799753941929543545111993801022434185845027241322046923999865544398607934355462793940726086799175709648041882295620047694762550375853838994332595188702808194372860599425397399961355141090460063050491313965086247223322018437165651320275706477566025543093450327060646429282316944353248542704315250498859400946008103681685205145515820677521204389339698600933903006482345885268814176751171490002067091162822049483789280799237168669400411999148267385068584084460161772611601063591209657161928383020039356730004468091828430131838563172685868956601207806269936982719079506322338365594131976906493972969648244011902242788101513398480712658836227211654527718621110933692503981428943897069700703334193869379846701788419300557002970299010990856123018686803283247236442098217968345199685082513391884522643218514789201762871765981133026241778806122628165008472210431880469464532461572480253612486463378263704930168496832682447617632760351363986427006617330809502669928187913420057499675803000987723101721198840492476467619671730906735446578412342161457905684655350045665892735663328167021219397151927839543862732472216006924528823994142851502417218808747367595822732103810733360233420163144943253340578367352725610312433862347725585338332377034279002657132641468778379348990069951148471237620984505778433923849109121922898871012606224809429025340115453159878979638677509893321319185722463202610526129779931535341759858680611385121092508831763598134942725653257842977778571302469234103344466643467757488762015772449096207662037881427426475737278339925499892386825953229653450168113053719886944022704945407879479699542029604418683867611612357765368639973077697544196882594294235329646328258704185329112045990167688138930917098833376886583078813377580371818254005042617415699288874722088860234196082585492763375918093680812012315787023341632934515883424827121690220442980373657078810844201218143991778115399179147815464249503569387101725754967916887322253414994523629228373066377893113850578165336112602832365263312779992282687090767631614235563662025408659384290078958738590192674150113525238783396984944561520771777928174893237259477479552323957964960178643751652635547555980631067096090173680098676062369100628077529064386876952534486276122225260101169145145250392828384908240257131390122081198607070483383731649337490086959665063546839310278719496028380090464006710480221111636363369319395215433400935908106135646290940430197107784181954613332611231237945998653557690432456984390472238659958346283335264406246817550389406691716190385065199660197119626506974502634718724227937411731988284934652006218356931290802607950674385861311238846753314753830900820981176796066391526988244035039863420422836142067575017616181093567474165127459283662504786960520624453508918616076900913424040707269586755014519097294247632689943178298877474387709856275066817841385082263748495739255901914492391598344898576201443871754758860680328612349040006525014812835227114143330794351347396724665322240480004507689352875035909173792362672002001743250973323556695615177109280922265355805213878984674420393059474685647301683074632506512312798795036576951869736241337914072132750447371569590004558748801685814561242106554689150254263599656558299341658037341674104329192003011650195729319971754651036801950109456182890943486996402426373341314982889626602075088624197788362519519905816472162024943471406886984710925609562154509689997252435134872679785759284920018383604418292138435340720715288808869676788835367239875809622680243065845386238383347977212312325924765922759547251924372314691984523564473390951089950143982204747298852825379074800128902255478571914725211725321811648786891917659363955651980153820696817422343222127873494958606482645553890798375392141145725529171017773074241315516169645270222871195139529201224705536230556768476964634009438759429027517348036385044466769337234538080988769549690236837528840418621302794343396442875004770771124219988518510111357942413098011940682159535710246418499470881119194255324392852008841835690131268965954567721516542224647595591899789680694860227706094388567148407863815561561496139889173493088707534627671287543675615279693476747306626113783059102931817479471723819696211644109817095483249765799994511063829748536003376437870979661557354687848103110807939317384515560421724396354269236726600455119204026305298169450729521187780897150768406176809832580488465962831762473413351913287542589083119327459860785385104653223454726239896082864460640436003584788930523619866148238403850398598646748437218920364034239976780032315959150375962097056914261197539627871556583505745358119712627516731065248097360008270130144053360353031418961585150095002650825308091910970829740782017981890814534153362959081736031282243483809082173380194156996849348089697375263578806729709742147175163080232154930764176486637748625252072488377291841524345055359716154355485264371416466585764485557356782814428546293532897886777761392914288228682295945831339331797542412518544208859994653025041070450579909635726556029867565299073710476998679652491676002828397680056294752353935625224052346317948369640666548974712696044450349839758356647085042685188215087294210228888122506397283186944136105647286627230389827057048811114799545978588688182795549025944293281206792434887620992505518592752555160317250961708224888828924145937581074186679835403174767093860755225057035172143888283842676135900692651316329026608486354945052525644507260932732169528054604227693905591074417197727842078448567907296081251285627616508537443690482577608533751854422745946720194406294586727004060278665483206554387707118676646302555898436766277122549309685555970081730865974353041192778135569018400297238919331126099662538125717159361689883687738025511546678288460619381626217781119868341862749723540614602114391393643319209080798851107679576361198675145615464343845905544872781161230107529363275288256523282210304844807274437428843419310709676179443816225258745003588925272378690576425778454730737859929382949391141484102851602466474261479439602500427583372459473084705526407779474468874597001185042082077619293049963068102190732997071827597500814706385772760562009190470879191676131074989836965229781196145592692816684242291500600248867944842115841673377682838835268389772262609126607004935641443782763367431369057079199607756744965031520250707117398362989838778894434795617066451790348175330638456366725315747436571261061608252829144421065144167676996887540700791115507501411732592161725986875796371468936081983950957233425474641534756171055782784740690210161573438383517571962401294338713613658294947527234171575349742267774318383800990063669187049943162603972653126498372186682843764839545575186468639672546996044539173376242316983703410399330950920526671767869798133823844239733957711348626244511727496297531438699744229451039759643741486384578039532192269481561220575290851370811317039190459836645030794677045133405985263150189248888308053295725731072260807095734310127488435745255694334783055063232264703518635450139955881150374435841267822255761405090002453941134208343702706631190759124325372254762217867368619679072160314477823570652921601978931986872989219627212406263087655627219913882248421877303573494368612056166225300164678083503604779539573557497924559117018649623392346210451461779399419201370354870627415906384752471136707289125615440131492952834858589290520930562211164374606219111052571037719446418451967807290308154061044183686061061572329724385969193783330256488642256767687616637406141446524327100586641465103452533339433461718070910954405927771783782963653304788326392232402675458004505431234262070962264706337924213327226742623271551778335844260782604927765574588740226595533691602632128875630152088011960574898126033315801003707230951978656207040957520980286474819549867624102404568767518515393851069622058413849741548768446674078028327380619764841093627918881757341705387433842574544900838590928487033548976689192132953181349235600724174641474220221554924648715259885386882087522304945778559877414765998865051317761715732677591891668795653673105502857481313898716880680366119586242569977251758074229274032782837946571894576023742779595251027399589275953373372805467208063453726599924895429692323087700581978943484509710436578495395935710362859822578324304313641312595308305505299982772978855925235676621320342122154968418146134161874695810219829095236262311145957263480856115341039522578142651519508531304616355018475977775033075829266718639477593472983250242738075041340893369771492232430013275890006057141621904356768373108550683475931127054512151684048558317060598462662478537218938437719534191468254030276206517171458514142904052461233758713140453832416169470290411307906624998217660090784670802145098413054002877075459437593595184021732600590629231745722183606851799824333419817166267199963258012453660559738028750492445676086422258008512566922589361223088733040385474591209777954180871532051898695554889180645893322599623617948940472370000778713224371375204295392055462263254078166348782899438510673583236672457363203993822925249809156724323818319229632725445302373278637961976899086906211320535416661846262097664826197181197842760745088365090777316083158998496435669169394259832381743499293927838617547214229935599504916104503204787094881363431485689225986150426902323563665832998179595806183729517493711471760037905262658421441457352002433062928784962332826854129090341427540744291006845637520928663981570241537980751400935890500131041503991210174469248217179018921439140290860899453673086688359685750889609807421973335574748395543066645174484307396767567549349360007338512405550179500494608911223482519518262221132591015551036937434466960231575011558574942956016213340263994167740687564137933012207820968737884236783304722400878183477935148889565093096333768168844806526811368479676347411403135482564982642046080855496493980271257967955786255142620982357416564898455921603212190641887657069085673587201814453602842727496446879732813058973716455100922114055617690130513542464843671870979031968436838926183841467447801631240904633648898534759849308119704967169613710027987726069342771587997353408257372396949633691144218006676975232908737365830651082488980641689388200275775458745739149738681264555617630732122624804111132410324647521579148862644287577428855844542976691325913491979425354202970040561407733473823616778028804685498149844969089308965444522175208006760575797677525971994628152773093581656119089926321775431524988521276532856522568571478114623015065528338489742784058569600841183535980082132967475152603650642382472776449025658707441906703724223560944721165306879278710796916793462403333882301344484249918849850455012820367807271058748143868184430156506763267029045013399877449065457571097571368708765225579236099519278828052462767006708126999584107118923601164140955219609789330500468174425701462572458163189630157727647813809150457157586688198506107628331014592903978546734805345514781427076594555046529455075325254586634979337240942479728041567639811533583286154580859597284628988265919421145338599989968431384937000335740712218032941807776214767294403653229630550473656749400579094053000414758842969396493322660848748839220969521119699829383530253219006470966854239493719410957936044972419150868203928058963319943767398844386422994086078784564194091313635940891973270226970298096892654668562135597097024301558259593449277100943514478932131908473951258528057085707076178407682422409180714182966432047280381787005064565378354557070843898276292846669420903738149020095727732560946002806434101100076519925608815374774678395322490248714983687742748267086590381786676347529994919259520911568252127917618252453346114145205508917676370175314969907621058167635120350275649587739500136347721140166608331939022666215028050842732248217908319159115174258575671122485754921377229524162655375747703587336827958559116411755298928948893519091101045858708410092456045758684858634892548537369482257487394648737888462162715830735852377723680582569458639405678891846154950867703026924923796377383367421491418384095021169217013060582722383847972978757798507812929034032127130573069293086411609240664457458678542544220240967189661778333038499350490953569103798276299035195643114035772368574246691149693108582737604169166555742110223935416648288925010700209661332737008228131369607131120638993184942649069372281182590226473490830594194135304847183889851855934834304110574071113125217197852536587261898958564801902592845941209585354827436136992358750711389156886468563823677429704339011200482920509842170147411486888864947473609140731786610544487074112380574452093742590798878795933624214009789836418461553872781284157153792024972619690195388471696515323012705555351889597853300432827968044487398782882101924207544843045244690443102971087685584230750545429800372250093684189288081585331611186775422968609690846546435173617489229210534941484903332840493119127086794230347424064283343116920259632165915073182872008888718153359702819520194344271768902710021422121336885642775364745452397887065663707722476125876378043886696003164522578028819345166505695535792144289676232048712683794282993005253171255072267306847561667216312006942480304984542083333310756072433004770308544662629848858770158569342537701962445132392668077873400739482945934170096575258000256321311653623341130956792922529480192180169846747547638471791709694240385863177770220519676107191236469047779338704847642788001687077926795083063859796965300199301644172662268156832630510259530047019343129102827196616783038216980774429318284949256010923500661508794423624980452280192727556226313388372415287339983055412844191775693360507606180529608360872038492577662763446487085684110296394537619419162804154917284434258286733982651571738611598103823929082515893197888004380735489248579019349737788837623349752095799043018719119229426236318225701490900289524709847110049327376400534222249788549456968090285285551330494205924145741053385764338874423665558384262794648844566614218325045146893168706934235103622709639335533544112228592571094668106795959417768405229547532210837555590228943889646975817922469698706075945512754977706593067208651340018585864631273662466208975790254472982950023837816727494713655468877860333222082054587711911730744579172963915103246054710815214900426190416938552026594906895194552275600353204511058110806558268196253795337336896809447378481428132451185924116557099941591556617280852836857728458900589874457338928703148168721113805220195968677537796375676824335771105140576094328973465749459171319542124362939903309120488998761368729434583320884368667892198292881566339153907556158072383299062001569273455080385732244313856875883108222506079403460261344861105283381910489914258885798043496341523740619591567457715757325210484304062065103345114238363701114565323953311953332127083977835270268704330592661935856340781195280538063139418195235435684871221037485648554097765091082999100526588498392562527032566644954992841246419685375370346068534337364737423499604511750281998035904230007791367734465204050716527122087895905415502972911961772329453019356430256865154306886158592495750737339903923559224905473436903571276445106812976445300531321380382291776314426003004864544494756517429988391390932607259077580189961578068746913838878610109870458077212194415358658290906092112435214580408155905692494022383681030491488537475602140373767560524694713065778471229316330812183795752010955963631987910982752148540099748718616892585248386425599258975810556898765705382476954161124159028242274128057574559822524138884793928994515892659430302879583349759899762816442672230852600325187199364790566495534860798704584592168537725521386515349348165572317994625386610506715255162246947166794188462124947359318960589077548804362756463647476777953128824523356826225461910140875874384726714594254666102879624948904512471389507856998821626192554544505298463494056641373216684005818379066002428664432455916617984999346082441495817187571140878967002215827095733226281478166997540472379612897862406644186726846327496964787970563322593693788675008368054142872086971065872615747406816360970072252342866355792805335912602822197354376678083859109098920120840788027277238203817562182470236886412201523152401916529111534134021693450265994425409793704748915655045003088600134821467386153672334548161173539077900604495606799726069246932782750600217591749749209317614657795731230945530201965959586697935889986368176693827302142681436129711745087052730592977595906788876817458563360059086880732820554114901111204045990155908364621122001328037662851686877992565182953181526260222610955270905104880214789633056917363211791527091401401548889406231059711146048816686112318940820192434686615284795312219806875421879058432248393417750009809531237660094582003265105516877509670132218925141677361157130723093863545561612731564681003043492234961904068758040466455122743477565293287979176154860360991844103059536026237319151723429832459468711981572781398243512817084179870787948091238764801701337098660018801533456037242190047334200595499625082716464617316380515598138275884270786784371159367016287927340211018458014092990019342938782478718030333571606850321173224549676934372349791529725705916474894329767091817358911794126503547505305033372997454843381096585077044942454713662858531561645287423590915002563157788530326651418617094071120677797060082885135940763147242248754507475410974953386888921893006544608059122325871130305733754582874002116403222914508564150951577296212132771915955864458715947933231663305242463577011373424602744346064207482529287823297459802670662775304394761316943176684826184280808721899935764395094907104722231060912215812906886601989922700560471402179699585858243100289851522600974465701634317389070916579389188622397163103476414372598950598616322108034011779707372309404248446167320420782603206310136710114940345638628396517095996634911823407949338766639092432996063143343770158315409512511486027133846231658004494087477022218841503146270202905152562616739278477360214221780673533419268261613825203486357938212721760889329180606033822551814412490605861640151894157861558171457181663211142998339791384651474839065388775344323582408846828306431621234915023700593436609976730500694575881157709882558378310577972959232895896679500578653131114861602814805417124548151649880935562096586730773555708798839232479477432142793275920177599903691334817658807292483829872693899787913412645505460206883556349424095726110210157274992234764537711962258758172444688804890875606805657212478081281284879346109168186797056973791689944783938007429626527065974759565164912250367672361865349440523967285673231127107983695589331059894965358949534099346929625960107363774199285101043284592575555860549952446402831956351429617749762738700392438531193118443411371735874829046819637509273841661092046666454636229609847144697323767505306032462934069813331746082276304839917089903620519510831423742883449280379954661077858192785827222488069778290207212862030552856889158614870985755957541767709185409628310057324626452044790152438196685401948535608804083330054105158839554526035893637827087279064023742256682235213446641174437865809328404588489139716276758886513874868456146903413407368543532853661819492030753470968606771377219960350250848021160323596482238323370101193659416606349257676952991966269415568590168246471992733601380614740694602962461254398258866960122523770686297922357067305643447789974583268747593878849209381239574920172450093786467238858879523351345881438803279255772685978878653175796267949756464195748036949195198944247261066902398571651573757363528265789628923846470392218608631416743335503402477059189980566794357458439009357205898212476350524381698329422167206740075635536245150208922708901787814045597848410491514278352510228477694856768682399589920327696157757613163786968231520312290432168177243595167892065780346157034716337591673221961242097400836894643105195980262486357223290676498258435771840435087590605473640063822573074444281722098454165890874426641299501927076487231148098249736023658902095736249130921193673439896786375659632264197344667432474764965287274215314598568031884732928719728100737330723969370442536969091120818704072887523448336166636668140978276270095023102660828318623124050939747628770795858378583781516515630373590742732446691538248638007195941083802057115600160928575805581018162380948655531773154279516810568352595077126614573555307494313746763313389562980605929831876595615522255029849191666226741298821311497333360815325488357234161416963295841936954085851034308601735009906686789214100076304164138582435000369098814667476705601604117668161339494435782897901916866878185720329218195613717560922570248393564209000923931980628955979951145928154106312977027731104402227154379967726185706382303600660879753239580685296932274876237733058207611082697139030931833025050647732052125797657272473938274394029270738112236599462051903670652261089089057420010783055168201365304479404791594864173967212107628479606630745557460381676557985534276030722010879471509685353525826898563339726632415069412549594914985141341958571230764345119624398280253003508756998594831951952615679794420239659570802301153540739671064432260336691396082255480670134290899697333546449392262829262887145913307187329002601680789987828750048185597907678170108754570603919653044914937972544754012496086976999418031371416382728267577436162226240185312615357407113619343682427414146359779575923711846517091638698797295728638664877805377191786576548654147960308186966546187518108635918345288613988031154355308504862713549842073597550129189574141828133529047712354160571766910840079709208796075358966123603004623862949126140692542403484431459180852396317630862697404202902251384533617591762491901537130390681325042932412242129084516956112786545193520221107287234396666567294032971271670246556284540276239036782827400002252870776367186125793027045973094518290222357317436761459896691211139878487735871221334255050669551519700328646254473462939355988235621686713564090812643823999068522773183236308749192947467314029120514420789318604340387619046612880530220932457670946698772423574541871915449486969111827813383873930118868486294854726550880562592076780294268489475801247207874369502021529709505370668282066553674741141847722211640297931579361381378330952118550349095317748499053023127946739759207286977917494911556603018796670446592323103056420079955855804911030431987352325469486261515818189310913714191496444441340805645377030872668293915079346910698847081071648333790790367508046724487574635361470344514382399753291178872078381310940277497056022441033145333623269432344814495479018134233249387569951059826882667393266539074010766165176822488293753112294600459375635131766444695852147777752003369681835246705131441389111608015562208287043724518984646312865652052032268167914558966445102821116943739042485862568650797748098380371386549508040184743799886442686733297807710605334061083347085730040187694222975632020981423635110024836385880575567286282945105026102512105550171717559659393084387047256280488012550157845931678932642864045871395561615761039326944911283574510324217103638254638507163380258458489754315992374249019531380915341186049691461700073840873031286214114334320224561069356695596299836212799152126366444288509102933596712408692488007758808801493472151306785204448889243953559286303837157243108020054569503139180599423518289078564022859587748976834815231536016061566371213888342232110063841213951454575145877259136288060314120636287021562440413979812423206045644887137818037717193504924970337171802858978168585944423399281409581756748887562377912930075206651670493634910767772330169147004018689979292589852429353275991424564573626670936442938753202405022788474627348461018784765006641029399953934713940757594597565867317534921002011722920125489000044364512194784808187123269919901798900535888797134995493964353704054708850060779383393254745328288811960806495916915299080306183021111407035424670599804071486779171049439478470649981694267274672925437711465146413229709028761790983499846269852461299905573477349679721273639873565257892832396709853369543920093592888133461575998300012500215686934606178042541412833457831222274708109875312824794909170464946471105566948395237321765808043828372809044573297938445672299241955785484983705705219261486100925605395137172637131463552736773460580841148457431209777681636969105446914832145833414675875684160113595196198333785674685485804463624824816924264288262429125811673661092313763901840138867026158253047793927169970517129524889702988857879873939469064824778719511668276071905982811605798050773581176748689555125506296606673959305220687077858278151618122491077957061259729710222781152738174145024391626255640845422554708850206941299926780988125928174126489360946500995627143990138766910093531542682165062044075146961295332731259902538680438578712835515090212014143406711183305968527347668275363353999306454280444968814453346389083667785791275271272285135389253850858732273409635765429702907353332311166571004494557713676496580996500707727566949621742528728160232065451450396375286391664152415599590555635242558587034518684127145233089093462949792148946021992166562384153049807864497713000857943568390467740938093624589072242454009474899453231335334399601004950939804322336277856847959887941437772928906975224233281454570358277016769768486152824019913244561699755606702590160555208670605505224979533043374482270383677441590384343573089146243148955166209124189906521028048326486317977332859757818053800172633380035564089098995123994055595489299635691172427893530291834174698686132720501355311770173798725969436962017117005727727316880685285401329725580630228496350981508104294562498843007658709031924325999347595497378432047604121817403537036661102871783392850717889191996395286418153409852860818731482616889556877685796228391096585507408401411045137328879415906040962775550270363015082339964390782508668175676005507756573880948279880714851851208731568567106609893796629523411746628206318582407151571767038455334822730752771539020109640566938777171936763993292403310708721809725649099760156468381178924968618922279892349299910314081645619448485455291327304261726646935091056738960118982147589928724338732736445597611832367628554334605133429466260810876649784315469671220707147209943324178334605159449003345868222775579839817372652817383121235241408449539251131720592769378394162847226717570813594730050380233956636741617073823080972387808553565117581523503736112230930406519539648241142365490723331569999299615211867332128477455249401698331340511842650941984401984290435822900686054376470723654207201421565526217532738733976891481145998844112784064120337439142649978679615289931262656224287799477168203604320981002243887102333822249800589374175623293325668566595397014219758920476413033724527148175341475617906318872595419321251918512044930012781608688145492623393431484580515961177093798908816194796988191178322455838727252533406423179898702892276209075009282103471715629046696007283801209269582949748273320110089130042878794050597351073665922172735504112667736235994250490219246044820178326860054926968876150735683781564639340758353712370121286812017945912289994289974877173609391912083277040438863628702616268398023039005931934442740874615045769858779948821650470808737977423866146173514307433958851061605515359909588806068150217697721930566284561888103521989326270008052859087799405540588484697688573151991651677070744686585183906901852750889125441635237913438539409439882945983075872236118135874280209416911541070367298153995124007816827081444704764503529547984511283239138895789785777598843334761994521982787701371814074600185964286504270159088631846694494241287792713142976701156884307514217292622301553441797233226876061589627890766642078773060246064320542409892636763845930429874264205683873239005421097154180572660484408553225663015392117778491565787991779670897778126597907630703092371539940666838170960819885161438568684832627803216428365168545155529988267530995512535385757882920949851214776698242225988137462845659779552293719454368602465335341761093408418733891912031969179940984019114788451875439507776354137828511177000858569396402727469822446449743262601983834064369226929316567388930597172965960231387791098389783872746868325664483554619823391959752216522495032109908072605158665387183181581896484927551707009458144611318529901155035505250827978376812496681013996440196625191340622729324402353072573942284684228918724572317869613172921785424761162410575052357766006070755401096171504293796311254936653137818553355932081874089766305374758625481829897866788184897499129285676841333466920007425853777599840412630129365370695697420426029751990773420796832193801221012409773415268130096451043865612213252982439850143262273337452558926930712469532044415013586938459188121000343757585407047668551083029407790151275903576643396947800520236119111204962137008339590078624430137682598889774072586827795334930656457702433004866786377244133774290382405112479374998031631817062221734541238662966837647849405872491915064737291846895079123598040468626259424709154970729235318938462343670420853008034138088206690223871919194969837526293306013356687602289241329047728683942660827745470878822354822008786735803142607355733985892176708685346480086847072103803374522950408264429289317765701107506487444336384219054652158368860462041939456097178173876479644836799025221350095655358166597934561963540411036401129210605303285845389608190030122340294506176237887777492967450018748535661067387984643463988986674187995044745421952030087629297396523225779009272176599263783293891968353622204676037207104752624648798654551630982294325962885307036059850446573655705152469303447574226452191351137407873750032961088797198997448149060743663238424516847187977310004453863035973534944326256440009218203393260331624088975723405524069763976219629261352513651228702744286443591089722930192319018231973803317430085191405417028621859194956695550296152211558673251072372387879354797955817318731568674628276010949771872082964079261090221394561529584877586805518302554936659495156472138581958050186921356162893348539606265815863848143173137013726658528193663256897096086877778755241029664809882307969806030890282598473738933377717000697594865048765735835397917008692384529255708450486895889434461940361353782337987144935875645872939708457297802696080109393651682443405351762761896349042403622529069975092374792697093833527619896820079022232426925085777198870773297058974472269007322574270948730289797394020398574883497269946113601894266140078118696085540258708106128291674330818816111194543547740295833006967665919501460381575560440961241881786313097711060514063357280400086728150762260476426578216548958146584183289248982318647658241254890601198808601227197910964040169409458585522385585212348452315163040697805304996565198070536123123103823620775917930763939778570240354581280015818716142882002082514979471720254800023099359982001746343615142724121210194538860487422702780150818993980351138431338607313076563971586267165209996540352724916476847245008839143462441561718997241287277492257791100474293014310196572485695120053125978079695235493016861019883017194746817362437716038138323431129423422613589965997910230847691889545759816605832375911858941046326264727141908198873493324025940368690562341634409113675745611608981796337657677816203659284075210933585788018739143718399727677656722946848733664533856016356507449995722396386998087844835465963868407700259028408000278941620095243231607680129558201745578737603162258861066023933651748612058774988766308447354859535119846284507830734251791655904449774310036249086380008509854425310333708583237166598538521569530858991023096570136483104481847538556927026841748770771860439144427004637629978113170961495899868190508817167312983670053267849790300262097732330052043965512906330309164702314776116904332682481047281286890758503422530721693243782627541695589455365884150365258524811160899825979530888539015607170315658270493095313070603970434622462099433366920225009678041072290512184506699064232936244283508097339955802120921310224044369223236639474659235586934443787297844288765516393633695768371769620691345875211835085084648631789228286752452501621328136692177621980801545211519731339609827826533818193586689188372547033636060851708814815896453857680579063088807458525877460259345852519238384210671217101487179045016052077343051401823318337674467331119379539890028769504025496091480359597834897222619650388879096454984524363103683605019361331347262469336804474483227911676093600233408758028371461273250049043729019736945757845143958658275804499706819123737211622289279197413176512074500170588394136988682654619837207159214427781452656211638573643316117782702955045126720243829604836548040739095791544830489314850443810037472475428255039088425390034513130089399509931917381758954075201302397013496998906274398657106884488474996814894168791146788048788513189532395216369624094997303335431249982914142648458453659936687020288801686113078192289127692190856846379383728927843923242171200351379632328903714092968333943661478642062558255678689703264567818294666118146416995723911262168462523662696984468010890380240117763695961073353877759698582277941934026181171478978604395975702125761600234374488391067187791921758998451727115057645977780971801119564138261551044327896828387886048217139989261173194625442530362550332200660742824539413519702372351791312294574444752008782312403714561609167516883637996516418580150454272967472536348697694227565367277098608579165189575394634900545691076089906484135184196675463650870470247325758073900102627560521549062745747010704849053145097566254426535353970938229822382435341593546549026741630464222590629413353746166710592786075225997354266890768938652641191110352061472749160411335912749717873512737575120922069490791712019807366884185601428412144163096827043721703160559986067796014524600740958113432644447503509237546099644073720570054896371922970863791700233496443801102792991264110797305264316044631654701489032113643013503676797861047424658794401100773176475171074161055006273980004919452275025943089283864298245716759923768354404991711147294847671017539342484944751005587778679439960703294503870787203498811700313975618433240862386142533697285079591283061536124680910477580582563594260861008004356463723057856642729673488414658649919642986235753385915057774428413284583107467639755081259014204512188376417307914721298002809592255851145962206245174552329661722359293937139339231015285978923014883270590885145638507704683999479582661767821946648764386670613140267116227939778446355949716395770947684430359538047279304105177033263517297031427829238908637217169235303418100014960470115650033266655612788469624809430497891359820744389618664662543118793998556054511596097712659762614520330703301382652242408818156805047388465052459912337723870779873696083290972077728900637956636098172773451627866516734514168481156542426025724121037825147356883598387358169412516482245139685188784825822508752326351613100004960753942284158427671101440115104687650904628069656125111072688667490898948959278396682938068955895039236142052448166908961484180014397322883870263439319076051995570583146801898964073500726209898106869066899151988488946406954002257358355334303826433830030557120356390704018212122945178624806264482580428798649676273860882126992327913106296027333843294435848023569074204886049844010585224428814190258782182445721544313297305931161430287799237533469481604837872583155991162710304530316745752854539849839231754524442158280730752681882897812063844010340889331831394162732068177820174077762774059732868055545943266080003539266216335167134619123764551339447912809454839149360226040006691769188244826239628713939177652230076853727942573537166568940347537303029681211364092512049150252964148649956170759634174223455605206675471394024023961361359483041721724270021719267805404921531666687035181432519889654899139693984030858115463529041279228020596074489498551063673996945290347135318079120354921574972964029116762878596059504243906895004801449793875832745385667336868952287163814829261510233886677301393936081729890304806120851821256446532539607401339622534547668269419643634794246417354040897372167903468968279874858685761198706601700655230258084433080486421395734037912517093309517849461846300855989019399647595010151699393036841928222117561887474380569030550171056472741893953839424960171484475408959665323968480620774460520607342215257610188341361366101605597783708582739434004578544892595902315681720563895814537448005628167165348123837480383213784360918741177034634461801908723949474328996636577872358322325167345600955436523455639731643439742730960746101691308622549636637438111166243660003296596871436937247690224539572411832286000743467421556475911958407220398152370386730956671462702290840306086478432790526692799815946030212547699785654213236707169051244862367580358372076707760514435522405904128794761446084050426077711894935007891360000445128336728104036320750943292874778089168589825773149804928668754260747367096215920711184193199790282101024851927724287364854614612323235250758653937381989585242815204442043096098340554393515768209144812146641536665383578499542965037573331312351164659053079554328379359675271828594903482026678414351836257011485564410145266028564905452310482222566094417433699271214934709718299791057026009206892971274677162850066558957835897635321023279504867119187476375790372308636532948607676654668113743226790721124970621792847553986190584209918686900752224353725154198491800257816435650405865483199400900728243286505247453256310957911147493147166601295229109367148178452747646518469735578771133074355449606140247077980318580666780006906443703268257758852464417209757135092143612471993316667639650586595703948620904969133310141038434866131572467281237663934158704444083945896944505845923377826449212340357198988861307055033604071837240574042440848578974666990618683260785656264276999452059443718335895149878298203463959036124558020029026414555941781134463837656342959163592092500530935193794186523166952584114692959308431710198288667482006246697954259802971073550215666659360685582402182533577715332271840490390012859489359766448830738649331101088072764940186460159124779141454010034600554563266003785383902295046834688115353495366087603714028475866776876955590681496896398548419434490043237853094739674242710016066236228602036354305374002157669481476814345901826633376565736692365832693485655745720933660511285639519369043200760844598955073348910455356223820878166867601223652197601392999780038844648341000763248056484893029535963109281519384372182388019358031891758808000293510392658502959065997785322386107940861175028242278905966506316984005083023781371138810380411019515241224891489504132264457877102186932731088415033268142643345227099936071704612021140731802201931116810713458726997856731482467116885510198595716415490290621190278498572956146876369274155985950591144541394321508995569459015876494404943035439223065631954634369091214969944462350489799240194836839450008844600127994597101257142467521809461777907610659923488269751807475642026708142629996580745426175151374425975275266485380579025025828592032377204775799191153289941421485823533369734618688412716811781627697600186329476830546347237239536169987908376438086302000181167566133389808385180587353059531623230913031156361868036265821117301194568849923553754732500036583766297995260082472374049664843440071684525031950016136438923415286257286106502903611034566160894339285521862194595072927930701861405570220941474981326536633387869712290588140638465840600360384347564795268376126896098835001294864178500433358543703783586569470974775082948508612823702131519619547666611416539861381335633570699106097097798945697036017345048749967438884986614339980315591219375350359224257771307738945921760988779555540115263635554925599647795989776188543110284465861381582898621761700135998935408404657613974449487822740465235438514122245429469875671544624149422629264395570887952364378134381871253356008063500479859860250550539412251363391852678070903138335604835087758743410729763535176014698132083251555344568243608757639972448213620102387813776533986518322690091258021391971888471385197092382971600378428226984589530327479122844032869526984101770983274283145276582216752077871374632359413089329292878006392610258093027746812469948687380767495587547314382573823224795062337510849171031454994686053560559154461881037366410531365766468044663393293683044632619605073184998408325230250925141152813424126055394058992858464497064944696201847075002436169965095110216011471992543787857300824830921975851429251661755429173821520401836754783481533461767341164649472310905581084602208243849413244402296814353234014933965961114885393096297510583308435366021784221241280062040397475431900374720571587270460441188922644635378985727285431360016328095597823469634985679994728119324108470845690390318904685141002478923300084920841304979388260094526352912308813531705989273115181722812658031551931012816911057506203226678481584009704632105170995006233958526852326073033864149395778799378742448443522861242655647247986059160421110636983103937109286020054011934706562123478462276133070205003750881531067639905091791667590279459133327421520328748054845466352074407082432507813034218925743751475132758996250602996935276294580815633806067727149221835548250735801216843658859742510572553868209760232364919895420031606867688238613009641311840945410923417082098502405639446304687519600209048716717424689050486888660825615183961459848930552684068975012167877761287659800601017399915948230520959884737172507589687752196847874068146515678339413904853447479964374136240872511435300193813634839936020479996378086013071744394906743610210066328098060350118008477932863306392805709301224601152970151220924347116330823252151986872011568947657810138674693229288985307577908590855043575906136109563403295622892890121202544975509586141828449160291481895112329748401341137470910867931067469383332909948826191003516969610031427813808054657834800602011945195970950107073878139030248088634768890424404205122280135621021801407057732621896242975223475889861067273868544653124679550591400078049774089943431190240180063735183166850076041413119180261380905860689717443369833717549519814607770547872708582340072578993238397582205100300676345988247739396410198297133375477863049327216956712496890772107191602655287218345230776108778846218753315370780382972049751961506093534271703397718971368901964098407971932443978679681898797879282618134480540715967810918231058519743328182059744824330965141925642400166893850792473754158722050738931126881363788176138470317339135505502680087987032855931471137406623219881829341234731653513080054967055576097824095081527140661176966914925243307859298576182227056510504820773216582619069397591410589310796797123631697355678716179479750206478608122675246509478076253895149241775929344157483724441961203248281991123274086307267614850853823331961143178276538390674576881939278095216593215673656415725610698534808641048060000055374343651376242217590993032925298880368308895265572066797751522489162870634191484583460597196530022284637760596937471853152752423981579154475942435507923831777822654125987889223060797307209812508481892206100468769682093760156467033008701432408069586025752660622337469727424915091651053979516075130675486066821291511739175295533290071060952136418619105636472181845993347605868280490373792373236993782736805849911894188289057145293780674306500151164607840555203859827473576050161593450746637490343394766961988454828279531438934857415634836063712306488243765584107979423082253380943165708674781708715651331770010174651186533121053473413766932312049625819242547921221727321716018295124587911816748262786845600395116946395024154086342604400366773219246459945404485472641855867189649461347404547831173559719573914178091042114634852414246002705401949868396941458273252074680928566044373252053627282419011950049959139666581603142736754773766890196230417217220951765752013754164028812772887017293326305576032546801429093500719204432213507807910290332516381338383439890766799221458242048355621466941424618985320680181811162802009172792080971728887381984476485149333768632753127333926976717660849723858544094550038539662476177847762830263765914501733718220583145988707422711990779116583122664088121057353374389398263598038304708543222155353291101428325948660542248427567412213604367885605388176726118652214349792696288461255642712419061308060809644354451362393914439492105438037299182470070137602892552508091945526978696224389306062713423319926238471541641352214653530019288809102437488825903767427879454221136279132554425196479538018234089154076009700107216654630996076073088594336475095805021131635420454851342550793578517904297783591943125326665005126272872165682380441461480038643181411080944851938272404778249443502542507699246820514143644928603717190421238927659368713213612500774329347477780502317845627001847921289273427869913600270740489272455726941163663236450295895493580224179459251602165361375492787322779431317380750813443546863638714309801371677530159143138573395210367059515800730889769572996198525158312400196835508911756645882907168837235069254565615757149287580411970222195094640530498853757936932126220525304980204493039406343559366279873444747344385144960113494676296805839911672016697428986390503184233166571434231730608324616558159252810963167146566572680803924781720327306566871779576371644771008590353842342353787787403194619607965215211080961490497090401159421736615331592671317112275423025433498792960606018001958901610613949118930388396338410707773635893488831065431878811079136701959831031734015106860115588541178222140664713753189675189625332975057725085075230235390435382976019429192834224586016777872177978071129936047281624301816817430562662876272979876103705096680616752034616511196912595465815234225842597698483099923285862640479562810875401432185134401564026701963186536197279386674971335698752363677269407088391818940640388748845598700257905277517332182147133263319742673322684317643122565011430238603633573860099802833122055868270209396031760848287690536851284588502606037641268069253360907429044450992117924436117025906369871964044189047839478821679616576575094369932490547515199694092477731401180998248237632886474099011854699889795209202694241798974427281071380536888762686115946989206695981610059956940157359853299367573412293152100150266167437772309519373146992631729171464863597763729171143045811945912475330262049301013582967313518928948213732822978156412371147288281644047807647923502901970897268104772695194822559373159121400461402752184003607222940345294989382487711601801604827160612667871101243495190487877859040960349833428299436289042288895458715668877632000945048102080903943585466143689303277902278375063050307820234497452584543658571273168984100776259002258108498957050898786044112823892346913573497374778994409824339489120164986950006786433077040256325268030745857307398743783043645675629693133276614238204393191869340291327260894904286711737050758180624838556067680750681051706160020918143948662410407832262819362707870505116607252031774732578265604690940527637479212450715419013319370324663319905105397625536442002855243368817619296643830393658066686636538421222307763438584999314020602839440584726805478434094904234001726603319640298633307096082633151504165099215245436955076870387348764014469024412090371056581203056949406564432090313192750822442701207095127674552267202859917791136185270551750695041443788932121211576152661501770662298810701770665350608920035754604722679307915923589682281842952665727249093157711447777489983200635714247313856325746679270733826066442623678962539918470476622626641931397700801428207117099496820488616731016080563902600099738602174685807938531078476015552446787010551740503950576717055941305062578107753680514425441546706684041382907026826458155797873353824529283482618379589875633486324420018147254593100716099623741081954934979535104775881838325516016935369921501531131786097381353700549898257811680413452935689674397507630895161151344515120928211860764345250633734337763941932620820428986766720709241769134295020649070144158451230796516323592518141780784650840576684764106433088786658659335999100948884197308169303375093752449279311291404594385365893850594660206103013167094289927875530460981583949042827728540678784773736734262779795561329112403453700364038005661156693903339761629825249172919093651160780162874718917449144860653478054089369134577745970737752196002434075665532466024632034631859762484502381993466218934873419424403921694055782636908439184332266342579391746394043138621127020124504816986089081137429846895100692592994610192439445459919045297056332647692164548799835723449008636166276410506793387234298794246109179014856500453997226386718213950902034889934433731042106076575603542462599761261745927823896003233711755044100073665024425434145429247270722969483192365413676338392891952938263631051252307328949072400182899154123684024976506735091100955085742812467242488633762257381642030453008673958726077990682685332562670689002246906505385823359758795834790796481801710417556247644001567675641852662097218930049649894631084541110750818124254641600367574164392054730363339804747059879618704175838050096996839759609605862816349648078548462522922574153049527076540599166162287306862786064268583221150635878078323064557811068691123344771488867661792411313141703092241114955862848853496568345128185466895676732501733808346033799359569141470824238977590258216674151342850525406233441122516829468267182905162659906049427714377461380622291761237194320046828596786448540495200073520762069976544200646677208045921366121544574297135802304138929280654118849830584776396595423074713515673215531937017999712356816923210369241384792476209499816897355862928735295820123193840538650443664048539177080564841365590710026758255787188190427378306953331931199583747477610832910674416528424267492942902422724865099359827742563680879367668171728453687957208921950967101272137347707188465958367899123598204788419377025839433923923433569923207300851678197794663482389020514573058562137178794975045975863339509198298706582107050965083448231991682267419336972576581519092945979300053630053669834304114585909695910702160935676910798509374915859834200812189644678473586973650924929683824494753631457109029325769183196329394317251720797642602515826115667319641867272776386505577886814875121533529731679221427283420456336468645990302434096072406855348638591298799080976238159798790505791889811461751152915795051735309920463882776719260578727277077555111325305390713087523865020620075028853593121370723153991403138728968345307954430467094344435730951453092922844073957381918294596512216658885734253359463004966153446940217993651393546667896961949132026283496294276555598709632526797403093903946891494284334212061676838507513562682990614703386229013118409502350227359332943771515624156897049286732707969919168962256453230800456491017381332774709891733491099803052188527834432064281253851503761484961757694358114505084122744789046125365410339955972701050692556329595705157151898179199347745765198023056459855953932021406614976333872809745505001038844731527037886275330767517786244160294867204384838441964390044708438817317450833537676422283502705273360171199507980936698648520881916753106508913085537293343159822269407786375228777499639457978705489696626329287948769793689516534201909440398610191266013433268477994251979100112362786143657067956329628164498643833669726798189556920005823356349488657141967645553170458210507985551109344209165225978064422021188063972058885553981984994345491289634647235917185648244026370174966868643300093027337308740566277988272620496973412767501848746841691112604271490606943052907171827148823349583050456787132441748180538581024592384553017715593306230522198022281915243484425313177319729554833030644968396788168001602333856459560287620200263549519189764229455195807546083715056206194024436906176331385109270496463744213295102648243508787339038833947869780600139182625687803405573485615976603603058500905644695905299241119692554789399845383385101253417734564155658397973698492579020297829173596459946725758128042407823258336461846482194530175165222755943361419279343331840776691722525071413333897544421852586959868019546481997513484148372908683679737056673399714570364912802741952327514772331840503829718018449190734349869060691487764413691177533366535813508033551427810418561929532563372554471320648057551610608459076434825180018555849420577725672133674501733300867378066583428842654563109207029143174306275375874852283540376889302813781743337262228521657901494015128425521312635744627400932664124632424598255034437417695695998950437886115870164839754455366257946773407079745738013589222770304293822252926288707798305889146514866872615140778946936126659837276946084512605492880167684992986770509425367651216712061478169474138496741266471568322603211853780900676606454229739982822673128295057921870456003763381025310073699083766041277540628869371905024571543471556244538370554725627495681900245273179599674791790726884512356194377983138366231147541409425917790138548048752546310061151611928411912609914175621544529942813804262780481699684228495338357473599984694127546424153937840327462659702176235022611366060740983868758520717472622538391622853508584241739002482319981871645228365227886147889864682775129032502348122904447380948619417224705583769138373506191322649980551280265326434472364278777472960017864276394296328097745244674224454782223067433539097555206859396345956218497719447336878084867331683707956915038208694976414840256700867656874641331393293284358335982299701416336896596820302099061712493753138412283609376558846218480046425605241214970583346442821181322420475440564719620313866491016691945366076232840693803563936403165633834375083469908551626769678371535314174105220997918930481072354268903278480439307062817552456593266652178029818217360184640134228674842613422785420786134569413185483884558978435921627193105974537790620271199763516832928637592095629825944072036712665783517606685034766155843782078131264700186674590852621285353094011408853365231694738663084696226729388861319523544191723604004462124943920421465195205142089932215193123741805166783993232351878891673464680787207577805140957938758096545887879514439940302435916140167355253137951696640040175519829056646221361630325159137858381747109205057219697051733099308459264334718170071818941818747886294739998103315459613471211709865746631975269019578349993186603262712297105445759047819261847303508833693491889747900781630758657438068334550730865982227954641332943532036725944153135071843965133844586113564629790248558283689146093751856105076837584166432986278632376755423478218726670134953948937534419939578570786745863810504461332308647383962758415096324304518815847723061940544756638653305536093915814964700380556462781468028119994138280516429213663033787303395629117290068384973217632446263060004388654519468012422358332502944472360769418002265018373058711011060855344979655851247149144447153879784156213352495110247203658363792800229032620380847631030604699362447468390720443789457036310672807943394182378895435422508242719682890954023197479625756898532221182726019543457759707471558374787370821295455647022431451758583908992456356180783596520246925638702092789373286913756128241687350254602907668820251697873069845727517376494081214748146577505749658363286912118878231077729552374516309168635273043725456988106729009763814761688780328049879156734364805120472569869910075073283855607537549508942839943629176849614287535781780981394356959795006435730218172297346600371246141333689729575343916715719331754567811442710706684969595206918519094420394472456462438169592120441866823137171683121313513892029637349663973095195496070550722974590641676251759042086605107800442177556080685569548368057128251963412147472976931866502191221070421337124167249726298994903068005764412202062455778508480609706289474840784562608003913392628168799741470416348268930678011077821963179072481447949519976315804985314804738452895492263622360985180857847801177758904436159674403586484289751883165656949324921472125401113739743664974664068594648275672301953717755724212245043364256621675010661213472132370153286620531292850789764048917756720027423753988083318235036708929463477659845042506649794507135779057582830838950392963641014056546829071788444193942412284472889240776873924103207203593977796392786840006044936213403632595626618801933325452212289289628352731696094478835384385584517791510686522421758492593781141165545863606218015849124958695349854753803151214959543179432991741012968865950188540977565843136107425833793412864096973218262871316254870417394162787975974310016704845729934729922664599843190715386410191829348847437480826337180872483978506584023962313347575282202214384906966068686503971284368300107564177246147830293821705270164759821488801086156438825324898075527388710829569544513054994602296231904053353042091219566557061239055496133173288687537033294071271765886130308434455222110281773211692160451219523842843133352823695891116522099812326352770692431489996510224932069730449077017265642944460954142756096342141252546764590518972968954833264586550972617926131644807638097104950955016955925712519812248158627227243911949318824580315169823152724083473190498497755287522298381898565187051800449234183263122705334875570878941924887027230391482104719136728786445217352125244611819945425996260892178293717079320782634502509798727130098111346696356653015223125102101967805458820818987215375300268960800113867068967006078913625756782051748126702012028528767368339006158832921355630425335526275525176227624495492299902133760961864285548704497937769742205744883756945797599385366867058417817688754595549082115329493249315141562022077822557318395254939864304301405293271037234988813479776777743964205564071501115584061499187762722754971740990339025907835854895243462802965247564205935273348430863562581115528928107081766252166844934372631658445624606358982890177694949411360887558201340466643682534443655989215679828677595087549794819973158624364033011872102249253096668716142595195865209604500519568469398480419759381519965555744838202626747986835766528936751259325173423944367226318525038243929876260572163756950643851543044396028317757527302341716522849967166405397216656493705600840431494749580527638794002608659525417490632666931265942101558533208332369721576743898806114014095414909015099023255974654940459942977264481465582036902237847278416999060050099200756190322179508109258087721926652841496976682375765016939817197495390579129268298538082573530060575659722323212161751319024790605482768767644665008816315387393756629756764337078208580964556029776171585633769888227231169825344153801635569122263338449113702516496310290425830653366952077599189730305713358489729457417563837268228275990558371695480608279712309962748382869030029342436551763616601283504210693793914232570744714937300512853946006172183476647951728861582748299135918377518117300744763258612293549475532440846716253284994289225694651881924770341403274757918694971079743169371940599544750102192493931430524832553159409757843505730207754259321267856293272343857677970531247935415581320727138112207296916672316204011059776240744498338370765372033001073571725692967303173493815442302005855998707346872673924647308551539322504756490376120681425074296289726896232545962472118624456909331682457209982635906170658519126174423968412589045220046962233004696591265353789873572634594884718962802760714855097888465690174696626606544598168925990666110801914894665597079629442089725959605423106591774700951991843314160139719744229547982955160479599528379259124715504693115008519447323259554820898360981722412408731520471672557591413264745327426063989066320270154503729140133796506420253101893687572525143113174586176317633815111533866744451506551333625196293764621840370624558966402168192025626860808864819767168800049107319461311366148028617409151866808952940859102844665159858203513426647665777747560210539038806662299800264690250418085711808632791613092336026962235075521524977870223683525360924697057189689192368848963175309756568161964793389347382815596705007649109577576626356617146935409775271611527132204344117591564499400790696164785611730211192519917573166338555223910587150436748300495717777025774877728401906969009418418281387968673240558325279490904285955178532911067894531354980258576148918212385179608451156874747399388026668281821782115039238985435781689007402463286249545759492376916016024265184260169437253354363005712572197012330061687155176495564051750492741203944196444856737254946341007328051952272454199929151902222989009125170691892210164167631537573469739427285529035397951237034187591180682600645903810767833023766941907429648447386383242998685156594265683902018102506982338160402664436967457961405713947803320814433075492981744120329963367645459754117459417967316572152276414267212319826199476869962300596046501040872536745048029359385706347174701118410122910609696372637059067240675636072752514541309202177760903686624305022942981176214726236036525437676676076142928505786002299569383703933237834529648029036748741862244016719356595505489473078479110462690119777835587973374597879855034792665210732060071423895288883786017693046265636296691440143990249990679206693243020328873179317939079818748911752068411539516511448428936226547068551154627992651747633363615881418622922254148609385752574542350677322492127775077823803258658312894087081074275885304327663261605616482284370001301862705520912781504962286018031855521154800040200493570665419979394320912434603562916073976619892966392758613631133689686762208720130029952579917385866221064489692313232247489308942924818315948294531094882615483451259807699806366995182331986193532842369439216852119123981107444938727760536320098402160985299034576925466584770962527377361978507912451315739366757480872215225778989290356436647073172163051590205198295258215125338746689603338852568491023781361558170208317767036318339723728413190938062914256941031393328777760022194869645233043306898409618185133362326093845227311338093623058990893734145080307676713956238311044553297402122265547098192383552628134787348171099533360919484099286319330854640225428489706990080092312204375931305986313356834913313619347172835419605988383048918054189723689295040765055343700033330553984288277539471099498630396817109751486822811814769015788516443545174384179810168605786534165379104203729073810464782774858853319858938316309354426183190175604596831676306427426450949197601646409217057969087601358592870842418025179341762442418319148927076983257614089437098328159955332496609010325415170883282052518975964975779923036402484572878865853415733448089852959638197886722228108978351840656804869187832484495810807910206091103356660821480270646766139775659957617239023803722233689174447667936992774858872897260567240116080722508410251495945008320969095400608935692887196746693116800636077635090302870424170524525291193186171818025136552332043821898258354780174237320061062266795922991812772810419666681665411014892788459584083096891973514549462939947429879545886170506863499710232025541978018513892437106344889575399597878706088325672673886383837774134912068074771281512225642328100570100203221474382742504067048303085811314606242250758421743853389733004341527605472898348864842384246276437817968654320492706646594593109959490729781424156263877678710976909791099734366106494543625635159647666333411143410533559775984965922364801773026150660816288367042896847307437345195445394356129729179202920420449951575683760341295811020285520297612709343542325053648145167027750871776973132097845206276242677471430714511609610339418615480809111057621673872948929497774816374636374869021212605957799452197012634726903948279246929781397938321574755516232925087025793244957941649966742450105128416577767003974540189728567704615083565313993312438376164061072181924895767680103073443078552021810312828127959154503068107494639381481523540619071219842843162104967409182501673880159786409090439052489548309811319420779278000343305611027377447898025222602296748906324441293119653329451235367928491570869862450269274974778911013743403865851338195741293249682227449748776881514696223681456638824068121781790320355334000284495505482811219612903737334407844160536419832144394548709233894747111389947616201537505721693573716142403472427708349223663542140553362945007666684382808341566896953218330893862669509634560652269908668982074355584527546249645335420258043058521331918548452848656153320418671278207748268628184634139230404319812659121950906285212164045691025631053051053025272795165070087578678753641281713331004637603021254764246372559346308777940058317300706298241514541223097724278647965323056331757568512405355091299560559627870899499641162757331399467013255999304882258246758347357472761625908252346054721922301668163419083123158420373617966377825771726966577234668916412470916606564638907730240491716746500436877950745920752832598373740037370488060726222407709601512794969909819261333099173120980903187074349465818838951255551220094813873458975697057805317961345053235568134173722256716220311718534443160820645410166688908864286398345086233213610210705406848452030721022266614256081615132817391438767926315878034465408421591439171021767941113307860146264674009861909900344722175429510311474194082998665589921651785280383587983854578322243432620144612464872250527318129997716147042647344586462533541459636205684856190372460485609062342911588882875947069369264424125154121046973794871988931606957553893398955568408859773174671082029631323227308738251116266875806220331152260194208054894154580258555750522525679047468266664656531069350909409532022064488775030040777088623298120368174870868391182309646719166434427675590386223915504353670725472725299608236982995645867601820845172530909238147188597056961878333383783076369160933198923621970549828155555378287222794047632018964055734160551506900637637433256265355184874955592688524698553126983568735908916499757495095840404727054487008714813444020574012636149884871476444004962094738504820325348255297630757286313346617402477088573425448351939357533757195280223138006189631441243272381182771499317814601954309783622667257851350833404070933759239404120659114888868707900046171322736762780483468048098515810102793554104008163054524173581456380756308587564562266234778576758315295384390768866946810625560445210186965722129493548028684710571016973992206442464147472085758568068110024544052411407755609775576308089640214030254864994135634406025436188325979919597595717540288872768918961287766910296786180622604033583103160642682877210072564438623901286876307189503943093865383718812653860275268459137020078955913859436814544977262529720150098112111038729944221748953817971969480416631182711909290844370466847186021119571915847557068477450585985864577761452104104993503824818197116189373820759809500612843372593742397062730225233516186772720993078780375677801533526595994416428676048337943775779966787629978590144458562064730615972164230732228546029244113451191497581446008280610611175918440145489785520384987054476174654951519600673351426064374832271458306341072354877565705382024002738464177954136479647559868355870212595805818887384166042528358688347713951956092430081479547066263993483909926602032305010390013792098206530706078202655886228418264359885531213360178060973088490337877195055790628050996580325177272370785060697278711920800451748711487491622581640558768543049011689153278154583423660142622156749821366300642496156965961685565524009128938120847528513066923458058803420599863041407994187403924857240776401119413891857512753539520472589006504248790155615845278238058077802483085116486703234931845411107353843461729513303487387317871462936977291268167423873890550368064874755058562379128664182428427220520721504046233210431611356296287992472057712994488033595121085725276484386725048867335129949833560662767685777192967563085401750054057520795106152665747223915226933843601346183644774384120718522399904611596872803986360176337035093228115617688307498634504307190618119397053820128428778847265337353340919267044607495048401624595825214086013442856167976092449220651380619780764672945517651990717375443874900350788166233657590047039546472206890933315935364718572227629798613255794957850177547680351213767262077070992955654247780346642631683809238914061398277298192742912277083157944914095044064556061078852683285247360751861484133312157406230584760992934888728006950245995730853781937732833192790431418646283541417619800406208284993172862330843989077994756239186126821502659446875073805918949565013388848151031959249204601029627637128910459324154918402235756226451931593870328847620674172688270378757042218682727828092133296452332777848683504228540291734420333358070284597093148255305306945547497161080907189386228814019090317795249396921348447078105611089056916107131350008592266735278252673888382809782037074805898216453751418581138693805816226704752854371802593260875160567356412825327563272036459125447514557847234823082143074106980102132220029028713168271148761428879090547753144486963975987520254571130910559889290798537360829318034035102308117950693750230269063241502393810118464764335878834569229084775009613988949747650758235741648132308616686028736744846405735636910082616655398291502269338773840048711694500979172401717016371350565259235026443662859910357455616511472661735118471943909413583920991531292627153251761406651059820951918354374411603349301571223624104938221524574150431544035072557035395143168336173776379460201341541017920169381835861761119133853575239483983649871051470599347531477738525453150388336745473488095849018548313678038636788154830847542640287699972982508108190677849912331789558673842141538163547051565785380501782926065054717454269970601475054724041049602586549674632241732242370342282922451688285578176476528394161902507799574398010665146155800376803624908685965821855170245943622610245957602347230396346855451461549872354790382450868222908928700768747286686214115263436405015797863214827365616748744948302888846794115222887917378196371189988181150147393669171859134705656369073926518631182973236264181744677851975865449652176599838026594661473935529224527285115863362600084519760721611510449038988653617414623828856004529561390977406060841479171281740188383550969826892547270672336569977281801522570881517274898821283523862576290306359399567270146570475672020451610371532015584506596688051458367595836370282746853494488346861508652019305329902415333732316710928598191711580671616815709543267886160663562315831767813421967826980550017895536155478425967653404055318561534116739591917894239966505940169939676628139924324172419442784581103832651546651358722184912084344999636641868775103321332908033552093621823064852381137556315418595280563307580813101958488514966230452527466612918570146668001529983248772425203264342864401320102090870710146901738851600703639641912788422018052773557087178370703598273589239937582262065082268347679094441056162122405286971750744647727131970926608038096158464542523127372894166832427096344098734853754775725674751577235961837873073905448625296290596463790581215274425101941501722280573801442173044985215926602680109223248810707348748443297621914879263297670524591738997293679336456018877136159391377991788813962532190967687168558338588274107891873062393512510385095233232662050736378679106274515890166907534939513134735498655444964520517681595247063850204718346658131298452468137683793016470275228171384100964791395155162622250754014079676472631933263122132240429209338970352858756326339228119969975021019082795264492520889353170959730381025639900803283721630717431009087619131019119757221605016758548265779370837829136803880169118913361550827314253378832471586655144478079154508576215862274449524427433302045030894582811487533980525426699030824910547921995634183828937821710638022905358716536434184817868976917537703487478134079412941144141343398926556512738726240950674179760851719309224269752542082268278263262224805453217969588051813967631280238603664301238548837166537348948092851443405527811832133181813457451953158887503294217802015664811660933424141394849436307719587672144032425395912558320384709300597519790245404664387892765797364438634318405766232940363819155743923702178138095394574749338769118438640590888029052287035701683154282777580111377724203768497798089438503522863363084115522106373896180441555634460689486959397464405848826034401063777067953499573957855923918370414025652023604411309799443419677004822548722052568788202280164740364268834693962612631299571996411115268664469979150082258168803090064818252240974226724630928735060795677486926842440081267343968974582091369372434626914295907365469893846009709090914125221135358351182343449621015728562116934137750395781587281231503795165583616833641944350282299092088914664029065589311428457955586426317913038899705793335044978120135802892685147407650970110671303553538361653829928020056459678981423459076031216802325710879071166519005162574478939162392360804773273532840492103781267131662982178365874517359060800921642648849331972085900606757875810666675432047582167141434861448055544259809638871058379689534560331177073802952355196569945611101856797466493585325496662215207455676223761919798616284388356074282079753676260511425118398794367631213495118787292853434798913268919405606303414715056200361536683485711008461804229726708301268777450089726534360304514451868997452029631274537344444567293819042216931540798652762067131410768346087287339739712841380130395332165266672910855776737445182481110627447093088174817228803011565982943753471981855519779719701582405287129555915248774412926691808566917977272747778408075429551419109392572963099002059761942442146935047585221959188679779884336023698329767990998382280654050225102871636207966742836775775552849836232073493680873702853700735304715990074406931162279723183349902322653397064956798075803807782201774731393000958864476711142308073280085734639410641667126868370326112011686477409095719928762032950557981624785107493059703258492780983968978298468597991485943753185072283480356535052010214880215094020398739539718427254518095692690773297851633953380242505493240574754276957458261749887138003742690483278589101380479875125640175006697742860413308341811939493008824722960251128714932417916695704201051433478276734974147688693740095158745637738297758098311847707823336105295851064261262693257871843030201960797725583865560290694087346051980461441814155049783669394134542234591508228798864837546338198278498253090140968411544224757264406954064217204382534928016863723884070136187317004987606527346726356618547555050862119341217495972665658399795739190363024187785084935136010721926329537737261934911056515955448532473230961464798926843006744658873123715496461262740185284333454676643942041718859225341774373991178375324084516239363530426583919288126888460557215801864551832333603161336547965576427989152264316457175488979664032409516875113213862413064206539072219217388552087452258926740682425612223424790887315793722157330722970396087972978270673586119237463406955984442013155637543079321472643731712324172063854376318901890038006036564789248485384784961097786663467395639148825903680500368971618977152223049100288279818242703794222885103298487351833804290505128129449151883312785136305935968462257744381896540624565833516333442752970265707589894546421099770502007473416068596571737931266510394971548632830039492975936755249564794883441427450898625033826246570185396781758849985443076707518795806184037785494975873062284383571658485072241683652946074837174678213115699225363076978704602399420826084932319833167940331477232239461876260776500109602347839381082387452064674288043691677199082813111773581259740987146221999273264597236315580853656653723006292009361215052926079609048405438532009573121329470333783366012247971315156780760178526494774566434001579533781890763436812847166144213741557369238338220145086450880110445633686826996614920468799463428616340229340202114775726049271809763086012530295981928159432989235440426478336601817267104097206033348646598921241773336343437047291043206654288481203173509655165477728878636183500109071191226206700393716386829743040484690802966216400586746918929108064913191943328699581801716176517583996446268087422449622825870883901592299855015686277663294001848132010629229446765655957180129449776913552330934132664206458487187459200656918722250371756891689756602862232376644344753398141161081538675646514986858330515402638241161715852318679052233561673847896479469109239659835620159015670676825067511097156091526919281008513833305273332500369497592543221154644661252929453326163584764787710688836416240557547317652329685229794734962508090634023822286792533151255843939160956483659449693346991290535541403550088662411850807519456753213218344330818913272384094361393026371954320980798018026649558071877697029424622485362341346037923286625484600711352291024122406344137864478940650672551707392202172737595514915903520304506127615302196797687617952204627724631311172956156496448356830594055880278520516276652294859804735766190619695819448261044365688017267543183684579203348039203111584091553984744591037511011900119706714618501278822100814804725308071481572456969612738536613566428786811893452829265669646585031885344860827598670846938571611112020682000150526139545014145411546798826396363824004955146783637811567771617723611219146052840725517667995976569266573713630515713202819384904396203205196466712315504596999244911583912322454276744209401133573248968847305819743108551404949454015445324454844754590690487242960344147218022397249477240524912385210447043237333648547622982905984743692368102644926311594771284990125127416375012687957901351882427095890776831349713461096651596663620864721287027483823837026335628023247300599213808146555927275937218571487689888919756819283082231994814326312505281060532371935542083617323637404500959008767133711900682049617663458724133459535336568434603756005754002020489569303392338133537581841609731740368426593160217451110056862558709084752269519041142707673902093364330002315725676527372656894797835307395843493987687113044008871555091850962845059744367065122011383637958121584972250024714288807409430552300129240356504609742459277105960701864875225135097954369064532668638086954054605274261865819762312960906950622266568941748313697506900056033853037227802136900182330672048873143972602153483514432867632076183046675694598225420699526485492604180202784214613816901787025075476774953587059403655751546143645184314377936494524527054058523976235739097269815952260039967196598338857972981901207671179074925041181832198162908184575363909807933391079919004377002728056787983244670548096814178355823559597266415846593110534259990637335359837461694404068192396171234894734216574250940681470710882721828719528214167121607394487956015421234945546456644883740118799387909345535201332666527902156571262030425307851026604859252008203955836959180674270649348364424170067687274179269878373122609441417094695702533706918197443156001250050044323913565197557840084594455890361549330745512360276671830647759602981965198113224747942289170305422364545695827172094184125116463384955181100760590190483191217685174664733230247387806184258215901697409263605033022268244551328779661928778048109280117833694971324408577544343033779715364429080691674559807034163369406174535026345020562915002212838570567081226155399202938359515678504268199280807474706511487616277736018413231795426648168893639823288086737927786663263497546209009877769176192808703874298166389326947431548034853855054871931626785822550089326015163282867938953982707227960315881195524725273434182209109251112061635337179589228355814362028851142415630420591757154515761963329706884645684904497542141423447960587577503303769668696082851015662836964354260292924820283990487472520915458980730238171081144717639063360136079268111480777610650253590444344977137589268473750530441292690237175015888485203941084313610273112006226602525458845848449411032455597055034742675732972128584568986562642224255546677784222422521598760932873552465604304805658707229559708273861672427666767154844890119892685411897140943270498859239175764491758904295497174630697012383548385785680267518452011849935506312284370374000740416907215622790024764473302808759948292008686418584993866088694833040847984727814053969727348228356381801494047031986163695804688684266894706302729123548088606561007513099129390051633123920154007697761379383892845458063774904993729347318279544159517364397209807710679443486785955305677339713401069412657046664595669390996776295311274550352741675166859338893644052338198120515293684921512238500657447067906936834973034926307911268626404240358722519125479707090210108196341690193057057608080671586221028794124108573771228697150562721374202872747390734745204674352508093752359528693436749019097990272834530711640264105923780510711514193146789351331328842870914235208336829949880939339972776648054210859246884773735425088755044545048144929645850098237123768538750126379514025135834949646487478841391329567922024773371971145878105382073467252913786066507386101022684754483433358973153777324595854199014470149055566532488687265850864336923958655642049742672164498597342415147681180421854913441041946453149618761946080875379029095817381341527144939614515534157156190424396569482863669738903394632268376811504451455603392762224014853574111453218007551201882461799708389661155984272229308977846161760907149372283337892418783367241334128194774757647551952695240973302944959755483288741982955230481174571723100733512012353070968802397913433617978796896647815668288510081978547462923506721542636006207779928337169797713195478422012425820415287445926790011223723893612058371531490746291932512120641865159065899596218627618382733698087056583340116275718462192267322814180881840209720297734783467802989553066811368728408011487998892885812878182319879276672040960370762568901817511645452648897960739860859670439400114440866778912039463128308937665529095050914471634615114599292721611128176686666577203992831324267431887953728066041265318024256707666984110492715339045541890692005765208325340034884546696901518023797660670047979014365602980917218756675549853296261103367193100661081854572686182322559477844110711911498699608574750409728019473034585648675382273660341949943392327132493801485406809111825123914912202730513818992383589191810684359591573107935009604813518827295648709632052545419899679039506320732425921551228514268230759505825530910601004313734718994446443690234422215832017155707968605920446233112761168955172413003607833047674352663431860009401240536604369337490693576282580294812945636817367354395663586172181825387251792181291404892842414724052186321483741899964474445134088096164038987796877166437412551848061025758669185690955915505251423237532069097739454868452214275676919861181203413131678048128550997400504486524099387746804819139467225488993413267043454050027813216395326210905007940401367310831713456438443352112339219273898729988386162392636317875165333265243834432800257332275563987220724006818729971832845135773977045472663812420065109569342692519308602536543994502109447948982200773510356144859652338105880358887957525871625733902668122545317683999406519917154950286191683177135283592040637607508198613489570140096833738449434481470403771318224562357066491397974159814792039106067732750795293306289864781289468859896253360237249078322553689598529456313716880962508513332004612100090272930840568514082154757208930657958140224709115588137366578572068378344800056424931151424439459862193917280539592392481159922649300857498037468721789701804660637343310822575399899616379019270808005559883907146617152384373762201604766454152066392668090997111383820132449618348706166585077830606045200387971994953336380613857424331363653730722002808276372284401907961658228397557001336686700265023326552997929959299615092857296841183488825291465249413536136757505884575031056567616948189751993584232055913471474086402784568768915201611582108806478264170206575144627232724891420373347683057517366351333198803148321848344537649624383392299351471843797672419722932935878178592978500683152212636881399183993093283268709506407407482686309952678267393732502155634387755957899889887380506389400802747752254090311188302715465453520285100029813877011472744346319508584782494356158799676936132111232547967580816408575367032029406521104209412761328074232780414617877309932388729518390383589420120877390913475418453443211422035074887405352535075220996437922323650091116574020724621555175902190287432154599161197852417148707072903629671667547759057581077282764356892233167264929040769800477752131128172182366348719484492187687337753553848743545360199364459189153162526535004550285054236704204575182187317873311581312959661836191316666554203572347960086590863124752178516138255837428610024386497410551415450034286006820871639687552053194871953255896603186591150149805679508240365506112777811831144324460122241875847290166147952446366195625106585322589933760290344684840067858786351409989132179534662753773755570808838528565659614308315874168467192031521287859754828066979061384020910574018583163920389653868762506816050627582660759619978686081548529508702401641929656721991338505537635771565025307253377977197499666067697953270243592388658774643753244568515122695123200381061552324519202849223741996628505279531490520387311442767701358945985383657965025327661447226363024610294784585365979229643558646287445678404174272929559915086144267767837327481373544085946022028040553598104220501254854273816620818006739754710181288743147662486393751182094533937667773334718165237315853449866509582976539131427043108599398663560704577042533264866048232153566126336962749524666960167495232032996461784707835644310981944284095921648880487019100235338751135156417308481643333162916324215738111055045720553319388701766823566965002364511993809732894942072339976456820317851552203516136194704076034966021263037978617978351573386317666637586039939250007988618709250994017089025930180133899740062482835606589195357339153567890797738813079603674532282585412769830027824630165626880086426075828355317970845977903315743594166808835615257435231253256382111861089555704637133332600125321837017756001908943828263359244446816862842021379568327139908291238050760951228152408668614424046876337550146972895273722612544987970707881519532725289693562762193729841322748721484901108849534530977065117757245503516880327576503617694059711379406092836491662927868663207445778668912761657639010983306124958298362829857186164452817845184738745330705993581695257313777978675516180404976720422686809155740247530949273592018391630553504162565605869227109238517644145010130761163665311101713229186341427798046349571982358378855663521425993192799418325092430294612871671060159399887804811061857132638113302576235623508585423812039173529160986461960950780364371756424500271123978733794480192611674182869412832713564384703539989144258183802292680765146468084410623747824882405019221790358776382835493134624180465295007167852162751125837776760817640363364741459630511494271883375822333868548516550690148655119331536423019939006675217630028847807033982766862027645490949855791432297951989792236473391789831800995547060655342503124851047141384691067343295393249276319888739570718381799678349375244626989015929180126389312548359520447192420782441679956546632557131298546596703352945059327577864149156202813934720719964256077727906470457516620212106557025133854612507215452217741064932212159666591930250574930365948702874765164149232480477408042921639168121147171379790391477064498975228457239121065665599435403778294091930486633048399351314460662047207705984581956513838447966377664831096889325944142914659072525201993562682923476968903501815116724140715924950426720970557313641814174253099486151775310943956524111041610456043055415321496654626087768193123386703922008148383269143936402859053802797176045289668988320924804543567692741435530435700688107768314702978862348885360030770002367051082947672640884401055850035065282368902718379533809422792991372105302142185757533063316895695064538487830975314091068705993034470089741359900132792423454323431829896087823514642977271956014644320894482982755285142196407238838383168390388690060211195601420526225902304925979687835834428857975618907359642045127177834562981548693470260623213694422327814873414659480753149424876771214665549352212284771211777342414887312524777193860947361978389436401911125426131459548692595950846162749638902379939734873146017650772214383767805801652079173248214839332978246947652353166801235864669529930753156793306190623327021559002775397448544777025914355217034705845440571817628193335541830086342066335073327294792694963593566092375306976209656892567641501795693447255962864961252148137119541528960929750409955998178351467762872176151544151861660290667745281189970181282330201238688333814122873089861492757427471772837241973568335256183589217320782909819336120259941880124055614138365968400180397736975044701409549373032827901614775076095318844635229131635133599009480745771892174820722200952359033418346773368403538569354469893406715797758950332527727666875783718736053649648135187300327562469063339308275720428719496796477664096793267907642342180344445776861697251128388712362410621430022961787594012733545310004359243633146047899425189726971765594914799232886318354836630009257701661947209568114754304086404828666359544854676266001532364530283001253784902896962006983960408657280930296405413041106887319409914877439556013475219152682626747455208660062707705753990581645772853695648920876210745324049386191972011526112496971614122615405828294417699246431012602850222492985236141273468244822527770936819167403194833795898250543746932587291734397556584616146624767866766864273762568666200361158416060721895448715169373387846947762145755665889479616115168325665342440923997618982154783736954835429638571262271533377204545867132679761903641607252290120195102236636723490916810354466164001066581981692101767166633866321522088866013069822754058199188880903462935399938153530246451587881658159253687077852441739606578146997897357684186405957700154606366433049984336923884175136631636408117658391720915357752395100553402020041287969625947281541331971263091098129715503620208226802167293323413108867460415095728391926047554701747553547773799798688765620794352459719749283725962745704227393044071075133400250471689148085146989161200236507753330469251823951395520857645812291953133798298414041553190103207174809683989646540764244983312591475983436793511274996909506607320883411927488237662280039362629117600990061074700961328727018159509206364305190808135250300099623028328288523419207839912235741196623741967741513677054731673871234261437223164020814118154497346025780569800200699420581989365951770692284125252075262490381172903630266085313500054766811433635874626162181358493800420858401516907001986979691695636548371684109719887978139932505346750529313933871580529252315800065580298531649132601362675672386674366935256143099792287265677826673798560735883670484310665724719470255992215127826356851422742704372706359481603913219720966792314901969459095052564350802348849180545850689503270335901728222520809200374445581509143907870739077921144382909643882677082253728195305773495375303164843329444102963689629040689973696453328000346454631670001306231324033162517097761752739419444730869946117068135098397422840709411152516967548206036368900864806929000174156640229915637597898734489496157931598821151430906294404194038993871665502971542811852214196071053692968849770621852777456835470014355354767789012499083294742279181038725505902619924807589731785705563264816619250600394930887500254071954602062817407938977846308120259673472184070164859073832244119120098049725971506080648271303708168781328542048549494514678520013251964927889033945909753525256628207687000025672838695709649987779840603647002304808237450038087889107682617254837676457608301533105918809156328802700822903302461081392387661563869060853303817803801290919831396702867097108403617193825181223627587628238371391092150731406198734490314901513990449832183102549266250480012268397964306138227721337433130241217493091695674026122715436961550768912506302806918543976930793859849624349414243351552631728291058218091754368493347733378255418050198649994622349523893093723096900063161305189534984143144272394854157754006282377366577167497204738898267868292891486274910834928934876343349618664197930517018641937845620920396519515650589306476869229357530372810449054928679608840854653674612392673040502878888637199285098398649619129568172253942726482542065286229852687112217281366266754430230753284938590770099483999822224855386369812085563624472613473105631589341942611860131868857167519511717295310158912422101215319236850068068553770742855703494827026943358553477578975340445928659895580481345786627939778382322763920557598475705659285290772393991515029427276490668394672116175648427856321661165023288277324148112277578448916136819395759141546590031828629260675332530211125628590081251176377939279509727804982551467385569132772950060795176707109045560440875295731625753550205376891100037983041457085826759234171639289646951902809018325307860152903908338400790704386417401332543843555868221698371172663684723965060897201503898724569568063046974907809235790538002446474467702243368490936610655291131399407469805802680032106266081824067033986724878595083412500516116941517159877350598777630581652442495233767627905027826464892811111460500837744691276629098422756464000141911054688532716135364054169580050902435302750256231852167336237754014643495218197971625302193656588391832015311127587579985407918965985737711797581143409601316963330425238210044720773203937115863163272408297028212507234518524934872324187242305009221750365056174422084633202039594949943171046557589899196122045819377679902317792719492491430082653829186842178337627083677778609417255356283072983630330267584890417873522245815316747263683896695815054406058493903367171125200604099604119618349769374348214981054169595742829151553670288466511079603321455526080548489238768283245718827134434734835893979463038082628565109862078589318720007153976515821243965247574688123348097653945742795327042630488066845475248097286166246971802408201018382473033512738008196321231194404510325761581552682522674984338051792555602004642762959844215177823319179498045564769557090293557693094877321983456292949081169504845252718874758300805713310720328822292080774825371171701142193927069807466826564789891912779082388053353941539012261443828854711209576469285337300768462447131225157433829845171293308541646628375489121722190411626065189488153097852286428326468187475429742320008309067825516395150079965005398802268819425376045725374238244330069356752214248677925166850916251686621631716418102483270205699395449259246582807079089648770681225282610036817236458104344942856895420919571676689831843682613221572511687206684591770320229407822692243756221460025696521763844328719486103541283866706033415799116627649320652246787940669144387492629655145621638168565498209843437255506409026999702642301496510978905648538528211554988564433628691659329384933951490806395585028394223990829168887142725701329162818048366287334390780604898530486411845519018641815927952892024507573745433017938042642054842099517386183236577653679905149286140467288726255473976550437385285519211016051166052124165122006208199796310108455196133030225465771436148492140003219620378038691241663987787471488284283669810923426698625957603780948634110294395135638225618306873057057767870035381724042973542932244973821214269361918984501887697908046440184138347977092917450221454307331429266466300000921770672910943615484762989786506868924749978644167414566084832571335342385824977448515328361717863106792595022446988537746245661649199579445840865860979434715413027731769686839505170601042872447294424426822623191856299714619955133294753577384837363190284359175516529343214406118698042764071163800051889497276679850639640065919495908077119715111940352244869948446397435699908441617557475336544486467619818934252345872761063964944060190361815482361099507506292733855685259703809623566304285397683694789644081733173433398252998078027593170848492406552764101612251050550918947936021727902214500492959948429106847427511393764572531932010327017806444520614960657417109210880711881305953243837625068979187202874355371556226452831493858815154492254097047591352275462235940221974236515688320483460837143857733926520043408017261258793127583413427332526342343656389156689273775864765207737111027129103433276072060449480648036705975425304896854200786593642782284168258663056795223441044463568470210788385950875233339596299005511336486374801396763077164528456272750445815526967012292978686540030718155042360783220665742556793213893589041866513060761552659395301212532023415968065598217523984558432669842683581787093583319026535351788708065437386756240106774138999766781247907039154031087330724178974358978787743644240125905161654025353016356167497844044102046625668210037441588670456036599847937135624742230334609647208228183661805913957352294425786637836164302938488190921857204979096016061143506770002863282872028223550065794696980318854094115353856463936481947936038908431982454315443713759109250737386176276807831695266035564701013275184859114958796264732257732038436933430195738428258719256129677825975391741055827031041103207881454107215590679399129780707973368477534818869519629070250347684717401758280667701006733917728024672317589878242609067224238813137384478845721912807642078903837066899619467485663102113350474366040319472769932394915674255097502977476694365287912175043231577895127453953312357890925776339305485604404620048145879653602911945062489806562395322591383419078969539730914523070229312425404722078361757869228702882736722206638520852601467012632512637137728025972372457496816185786466575941036568351327030815558165978111382617948098112705887592065026449182964614135960542805796972501142005777634057006526757491850229561105129498063708954429544551577164000878273961429342845324059611717257906803630312838553755895424552478087771462094096343927734341063326779315765870434491299150383173819734826455116072770092068719884727039491055114092534172097037268705712586620905456314507115074639465351813238452599854985176245271591703224054893294813982925406945968171639543622325818002208920187853740480008282510902686801868226372763147002813400685834331072483737241481016521410641517495241839359748802801306684580753406937970073267177899783492788205648791683631399820324199023508628819258197378641143609868759788418069787567691475937654981881663720642977259377601162551341798597960043118462433213081887348729684647360800869773399434551069906477836602147700109027153592587282440589928301297686294632524368626964639117734200160687081361348169307440825267690868613089140755565591036968337622252484809256072620915332629607610057573397933244541209132146377055519524890936174361538290814193878363180856996104805016255913796294825193527763179741889206400155006747427835679598204175918052814737429336266757069088181654040578137162059822360478802649317835608438151739227487079529063277053877107734078986076238484919455428924521724842049489638404007213169032174162741454468944002291326262983420818546515977119026633937055670844775812882685177658364340197244418114380942977878981493217985893119960106486013584549283868782584128435400159200996174375367800142810361651190221463336537681885758346310799574219356667708102611758883750223455940581704146463968266509497424861294206680014086359893679168667063174159490242139442451527341588809570620455271728406556613743834040431334243699144810199634401158321987860614448802169378534645956890866353742063775183728223205091440585439411792163105607748796590670793973611113165390337247745545962178308475665261076119041976781093149546866223352492892107719156479018616782048552341932767305772574867916543818152474346650803594644881141083106915291550107843163255576374197351119243134573245932851130014807019677320782957242567157676475159142943860506793642271424790076181911610859982912840639514190381316885617055719765230246253451531149008053375729570591415072132934696889310353173115544662504325225110134046337397820207288074176172147803625644133186794943023509478376132480263798780949493768043792136776446742563699060394346041721720476048697282534189219844364514258349993567906440666749215093628917334797525530451639260372012423139574867258657086756369669319135500835827431730522365779579064174909867779240727599905338654376430228141688524860961596185381715148946689236209672682383330378344433586370080934254008302470204315275010993259888692539186056004046067692174998834169377505068123987728612475691857561556663595928874498209678381482144008090798630246066859053935542341189166066765332673111306064945256585895089545576210555570823123448055782125697155469049680651221734881997026076472132440832366562255163176861583829606652396140880598290700287107648475318022410433160246822229920489749451419815619425599916375994451509741622021094597028752898020280086126204848360001947181519790910320002546956036383956972782930410206861499457612455655662316709968963915889374540868361558176418682060429820007235622652505350436507749477328390207679966226174188998083974294322837799964773980310981036428104715819727506038322470257027687082143102219497723139726643303190454426426200560951401104222082781138950182275218071441831858665142591423788548266353187621241186429196440247537809297759970723378863471355909112500345690634224159057399177003233384187183133550014133055888928292179067506216138437358193998218642327482201223431001036637367836035781360151224123926615268688833515986939899593245788452070428419751593788529724717422496195209059686020584092341795429334730199940766320131187675018487152264503360913068363431824764422335376346801303586816900857234587578275058074725692148486840106504169715451784205125558504843488503272823752145665845748040713771090688199912417126577910758446242815641424653069577249683204066740281537770930971444051064451671300338048309448950277222262673002334779857611820902284427398203281671607445093659314843852127731352539911621623031312589556041716002100040832003120322314834197584138814583529332469085359474884055766138236894414154366542699340509839525885110655274278447816216696088730295824315689556884155723303932779577705084234372029224230946361287310632531750394994344072392493747038783579962366939301991682428292377158515430393994122268407539352341525528186841042493126830318905762675935133563793057383454704008441371729189048049577993180708079762124552935640392761270186552986514907847444591699476614467455347044966694402295000586790175891021246035994755103956013872239362715049641126706723825280078840081295627154245720442329676915881196996365080961861923257238299126691680485674915516182284835045171354703908494771682587506329208939364096661548216434971908929488033604731682024836122742506464340917483406701899973593911117255758625005238630233613482835428515351366858734368583051374995534600456796137377049298469829392321366488941905738616175803104834367228811369925405782098969536347859734894861278716097013248330281217364049182617722497065313658816814647304852572581129286308153131394694277035408021896747273351710627428005066109277356603312440304432599240777012190015953023828779545277138366220276299515590496274857905002461201719768057660838012614913461270614095595432152749238234831922402971245195609971445424000189413567409377531580741797588080026114251704049294365126646925410530446625207013564243426749153676456658089487993058216288866506314249140215550547978639765377598837149191573005602275677002573785526654928526740762307525854534298698556059433043396881296616168178973489348779769750446540477241860872456589930836854988349931468898622374757471772164451282669536175932773981016160509702817301848631800131801426048503035717496789273841432547093103979850249043157770779054403299425729672092059973295398337576950911696278429887678041139707824941016097338144164323193156685757396263247438671442319801591238907124287071636063624435625766840513051875872131179718808523360653450119916956634055142315945617540054742960345376465162598846674784120937027945510456347596535183143879785899826528846957874828808634367341965949015539873761735507017644896275738122638700859945828509433595680429716804162696077833203176554379609178502470152032677500974599584091228897605541133497797616079794185047975538733004187716397640085924639548023151916355454780628117199978873610152681525166808532523044702114079951011275208202147823444474541065637315157467897326848560156723746703669345868931944256447397347238670851711221188840535705938407342210167800350385625723308363168356955033471394012165331003484474631258552505096920411435275058289237942936552874437821045432808475710255410020847967831443508740861020544461420779085144859473362978875595875736057186674456078083555452789384066852773040864700903399860672966045401388284519960940436332890699525007279068496802569309132118339432012729987739840512995388186408790977623253626764292281429009023437730260739407529513801418890763991378870715059190777450234710520389558470791346164148427529787336837713341585044602467875583897472877900729618632024483395146061975585825314432933559238192001890827338015183669697868272045583812468224932311203106386276385168933192995789697398917858083062935201210684460445858530771077869846135318262825954635994963944148041008668997107895823477168010095271933136070959082414564318220813067355599726192823093113748278282458131481035201521037851272842487775813063631467328850272118642764280111590732996751755463926062533394373845349939979707024796333305667460983527356088904998709284301685284114877485850523637252384315061958240640425581720212817181953868512299779200472968917123692885864452563003070188139656673349778921810625464277308275699798440885161670709017523538415202911879353530223158686897305584714148338006352192840914597910204399394731479895452924256976332832458721953503613148969637708313695262477478849265059907081263585074064343538891894700958548735058660633711735061257566919931370277591771692301625253647455519906856540442673071914749696634563781182835251211934989711838056059757160165338698530302888792330176547656740319316503419524349905802542257309266713588289662831255672675920518168596486109819059816748383009406672696617219663904714013742497551585057430984045321662619640448342402751963746589857280412241459927218859605617831243095590861618791117929079465914488130568089611413144519114293850375421028816787444152853696144810998216959387691239213494423127434283627975971385639102449533019466882489987612772892696551062856630226212785832694697962252966041287750117707937394716467588282603176940256769008810666185254141411834070947205954137836225692818008384107938888090884990433787823628003141451796927341190392901690715984033806837635914009883375704614573276465098698390023279848164248166154888811361348246735886473113787515649739123483304912165043782422584399328748127022055577310953483728575375095730254205592944473546567893537107404716211651176755306177026042173481039687830798096812529993739420222799282642092657024899334053042972911691886885388002100500193835065235416337271632659860957067486876745157859103792771352353573110822847400874321291157247225423177477452201279487570854073362373316811471334196339635554452653594735401331424482071167813227748020303048476636383558712952818916873288007095461343964050758735939056567524050118975990221509309147656121299118486569533942033585385983733629984462822188920283512286885456818226422441053643438291845181691028239640795711583641509488007085413228700537264268494185504438993277437331214293212255638381406231394830092392997374512805596080433825798935591294230520052639895277362412240578531274856838743839443154881800265861391572031251903553523785639991984897122335341431981134107848909469066751057983404548289853677131460395922312893267597629488146272077369304576260546455748772462883082327227356841363295517675253618232591808705346824994777039972596925381187222281055103149392864762291308630958556947777420168364052136615293437357871646121419900190650293550489385165174699153817140887308804291593170249917362181863325102800690511136280552114935039045363882673188394557455590336229022377589655476972121568818559506536504021414652305536976546073129071355637519585484641934376507808508212787874829388883110244391556584695372486652376280451500273437369274974123539377130553530317453485785192904666742468402407953315026836762462632877426957671870835416325038042824467590955482132788752347226917835077783304893955714215914378949646070531537309951920304175613416392425106149835153315981625129051900866946555998073721110638296418760211310081155769140985410598788751354051297339533390311772366999094826774771294089631277788920580860006165684365067644794329340774279898767287188865731084563337837129212005364832851233333728996290791589067754183682956884520832741793263251484820947202982775098131949713589641648596128406986593655287044045661680086194877333794044806741994204367405587472241157562576260408671104888458577097898985790276889697891863636591613794413498981281278802046208010136333475141531625762078001733880726978774545326879855145620094073011448540324304383819184427268127913594325859392649601238527370182733785568303462646186793617991134871595959104491958808656488377683277612161243411642717549139477892769928389184888175329166688770721827327834159743488807258442568352698098371458120666577715621913966236538786245668881865119047993361497183285094166307789661694314538134320200395179708376801120053136279451500901762495373137964481782498216830424342625984957892221327519371199156512547168503603183369093762283592498399553344968973498768084776716625355430958695291530523447443329184273585437590688256963602974766471731830452196411795920455658635921585580299494531091513112472724856592218411688614103106429871621287536322128507787678534714731111166893763463003614470733397480081110255074621777429927221877415452818068192074902658081652303926696663627224021551968627900350844089815811052604660180144027598882588871840498924320451930533976581895894979699179011958974287075857187874787208476230005170201264613049587673497951320168489394001280657049314002538025109678875148608244795710162445375334397978649149717803453460067766128377570318579698814814699682712303973486018160420692993481159564144424955120466440165271379903816706073813842944818604756469098321529180492441741976470954423130976125698791003115901937151889245932744669513669753535742401561996339673556762967377977686076779645283955014109457041785294730725488709173556533683752349396514286563894066905513289324971178835646289675265012133041955294149764147549126039845775185305364086240457866078836020832521392973541074368015231993131137671356892519485581881334221822926118933716616769623926486431243111148869899394500583325618824122840835873104339824512091041892825596126100303226222187177861625395678418053834476643027836052475068502484632006917187540477338273093563148898358356456170688064961950844193360271824877669924206251468539957521022587232920223346864560434938812423268936306978257333164208578060237293135278267229362825614820269339950398094952329006209064100011183806719038450801283565371765996127374796750462262330864456718629903533867417025550930112015916802533969906668377806755967083125949748094236875251956313553989547154295924137331655359590351384621039031184335518068264730716520040570078533667871769547870874609616357220661442748503496196549016881128904459313061939198928355901357051030516621963971534788704023893752651401103146888839887896122237659922281485367305732700388836305443765042163857795657397321435565876567320786331286137972783388852376077573444532556516882549423752551261386636059007888649900465383295127534724885976342788782177457358087112448520897981544689226972295703395268646411252612268162043381962855500428704617586297890299361896870309901810728598665485553801595446361188357885964805292577196064338052459008239903973945965747976655357467385900132618931804886219370583803231561518438787522862556157956527115717220902690222635358735984150685303083427137268515846753583507741402903048898489424502134071342162578317161012145716511982447539735314823270853392901545210255648314993368579316319226490460713574202153910609427602427643921617072080634167674527967740213153544485497842490178284879267628406814615513524432443073142526404597540742127858529520313603407603880252463606726307980178303319315780344770034958254518497241065198134585563753420129633248195688392812783158686183609682929761139867456081552167387068608805476544143388697527914218589307838520039346492513814534144917164824452493839252867095634402941148821097446656893565095630492221280069390080172899291170856751929359813485011075891483800719169808799648411718499535978628786444791652975656093659554433869884951521688610126196901330457136021898507343011164941797483000950426266393544065226453644013377223517804026171369047705627148295272463255206799059512859962980047598672412313319951988682221406938944291506668093147482223378887860531137940294097094193363663637915262016920914483182026530249782942282123703284095216982876840507868947884993790983563029306917939441889032395836844764481118359143821759558260245473559574287885321280283236913118181285927491487809291193336801920567930301413737873231933300028181943230457655506019582367645672780622612369445236502483950563968274295745210594020851841532722753097575361942579443386255358738875304492450654503474982787510455797528145042913421914082488503503896742755632717439179796150393947354151806355805174976981508076376456573474190168362349163109112150555123772500452752707909252187820539826362429519485881565576471358121046026390096698607389106793265528878752683468740885310021045287594257868283414257593695972664909097476621468633472263821865611481684021808654420956644184662676336862851447553125682658804376687719907082823282900364147399088580107364018905530608060463154566662193795315680216681252639369385705731325478283721315809688959081065831885636991202865956917206537703452633885801084900624465022809029939236634230186042397104617289986965676089378985202887839861050217151326730182909814232893699618069337399196696282223501681203858270651747227161726337424804304685419659773979087860531637579888001720937615395172113986354006795811325868351412920357776634995555191652084960988905241089440506595017890119958154706731551492035623679722061562089767124622578059382887921497744754914160717606671470463690024037978884693143801970129755602760059289577750156787246156806168046858609183651688437634713629402805964323503426933458733835431807645050128866902710638692479104305865453787053577281545742938295466839445708803204052108795967935736557023223787534968327776337138151231678173471870458993747345346347954202159092813702283492021056158086836428757680275926731756170959685605160144582086580191007728818871844208482268518739121939475220806475513333350103821661630691030770339311836795527033396863826429709014575597585361897926894487807380251438208565048938881304001826245061825728573817767494320657757134359082545943397437156628365162732491457574415716429596419704484292632471151146239787320521160776281758598532067965299792563887717737803731227432521775076945302638422680996660356778040670876357678662571479205476774565460700439467104848611357091613620103622867647846720178930419530680525607011132357444014274954172111313406378437596848249562818241668371581223809693485708761123155638797416262367904723620240757194388338218021279295228194267870523912472224411339014600181340391892028571140113148040404641843884281798532167294186339869498881239042416395242746132697394754478395048902340577384015192217612059792038138139708575773227931371074518972986754388639749286612726944021017278109219255727238725971238382651787523857577152344531994228958220931100852617887208917771043752649286241150433437851812584087158073502441563584613346128776659414041342707087194200906248228668369284550018795616931360577996898246061807525474309933661840803584788841698054613135252279871722863674454882022237113081123946614283517160514551188154926430747393049192973217947577566295296319048046721008586579031678803241734627445033655489487141444011551958276905468721262648898770844183177378126869393903119666817771974799872072636635044089446438870035256656389197498249917417669134748950177569519835104948028696901654966609367611068833490619089531728208051457255994367966691653930109753934772933485992324817440456734030993841242680026059536172771283583120227701069706392543555693692374703586343291939914558086469576530848165247394975000982921773942245147684561348907010147433064589412388512872056841203371881182434096455530935266097533192224546125378860731055540411485852279314889950443669204751929526755352687472841240215121738424931223492386506147500612199021307331712751637939248856649493742259351443037587269442336867733439534023770530748049303457450992569052160183250537682338288541882965085410934795056499628335536235039736208004958483357254792395321264360729326593687595420893721767576379770172430959694085757758516680051559469504797393221766336209736001778039411340660960199938464868725081251489660401129990928842991875136986164803167233028167310030181983580110960333275131540864396158726420212118827499135776604048045463007440701485252772269803392397539770031170612920211183018845442015501090934180741079446491294099806651858696585059170091568176770255016905699743440295480334463774711335901552983994379856034049498065433191518941929606741558829388086826637217694537807353530656889173538848625289423670305004400830894705285010506361532229285457728470525869506216083518946094365453033469675851880871855949937364637162779360267716139942170699028748792861215576923449886976590943272469542260097720550568315761099380707520824403317776985870256202717725458406432255267680876972818399194073480541428039264097199266093087941098850848000413534942140559180947905981318098068038612605939309457905429854747168014231678773725491053395571925180697207248260410589133769096893541025558959095203812226399033228578740311090100901061345533381007500481487432076853686846140789648983398515089907785819731704619194283431472429488611477682353044601187228692556367659517890578330429092650060941871580841077588032537254637547866843600521913165440788453453108552622486816445927865221681980883956978257287257643499542198724827814308115705780742461468065524491135523771908866657436419126014614072712845816423595604858824292758853837872167945840460288422213442661145083084676510323969785789172876178773292311403518914476214634566000694843083986267965364157828308070048958368797005838473132897794887446054171495860968848886643949806189225231120739942342590945760001955696754670490843763814579797147812083017642777569500611631177716875047791272166611617832656497678879424894405178892091427355425278227252771226834106356591775982156484226673276516816747484196788765688488538186789146392254414292394040408742311445590391115826519348373552925990092353112163006104149580832190397601167380609038608613441664617488550166000691720063747652494779544153805179521607511065802935762895237166904257482498543240800629241077610356896696831420165409206187362162945732293531495666062450338377532072972761965817295118018893133803768530685535434383281974883184045535891697828518935741934055424762863082037131958274760905761149048983111707874924812697171657005458259199583481339813500551565854172808361999250622617963683842604294670927931888197298297484408496363750950908694446132303876923322077002107807141184954444532263559547511366878227769200605601741662678122131129077174267271219914636416745494329515899907119805577663373976645121399620212143933163683572614462275817225576750732984116881074505826635773158651297890343848490160795967751042515883062147106132602646414737527309297569359410791184564376140560658792385481719486220501155150850580265256618966217629360887889633081824003666647035951896938356439019679792687584130643794939394140657759339130005951595300572260428896948393388147543465644062015808893256186884994699600816862173264645198970838362132368302297078372681814537908115667724562788070597126493898042791728368101716466981457865428519961898660748075948550051635012205964805469867345713269080903139342597186005984628670171044893148098315061492477912713282510586606785639663612028075194896170849455958358758849555949162519595863927888263827727892582611405209752625063776137693830513183889751307444645408854194814816779165727543731435058272460228391324155922467038920557297835498756114966851685856815777001935931726893275696194448752898122480787925603742613013423297083920474569236677511575950957663126143336232897904142469925015000427904351735247279414535835424493925790163574740949910791100050290497261533705753157674125646790840567561645890083456971304731044283893613011776481686603238346240249864793466452892124852163244797028185734271794398539678577945556103230312452379276561108054924381214146568285174169356863050729081267395699994790371609269198031648758336335352073372129324076119069962185748410651231008769648301548877073791816769274463438942527273100480921680100275981407025924878266061820395788584761482046151658538449274752106929743407385025002904053439113050878479550065730054353132212483553081694918354263087060991516251243688168939601129222295937311783146148155305822397728484951862928063023388904359322386196630301348962253409969205229894473275024431023811631103571520592734527306297192519990839655336476775618685416892473575015564715337924943825924434726873876071684433826277159999062190831435940533097849806800685988828398118121264300030801640001577231645469170642229224583480444216707658563381961318961346721365868432047227878422525140692774445648542913757376462700854875803476638493701092354765550454096592349515571166004642612066589902832312223782977701887430025934686234685924868120696804408277040873726849526149859091221447901639830682848735022287221901015971478972019576304306500484240403726719680829498914100993815138426893854312676897229139772318611495246923222491133510077226249716981028994661464515921200433154030538332742407686354724357708277221497792737760014718922710372680314186424729148043715013647073825547099841164509290420219262526568055882462174071132781605319272160374433020711158457815820032839609385118176533101350419382679454044920206636461562813585613406667277089904314199042579422658619312763127234819644784614707472018510382935933956036158281475589048611191803159849226824943057264268686666617229531339592871539554050605853899279167674681215438756148726008466465189983464217094219901306563288989248603103563693134027776264997226268924905631208079135786160688292953686340350457578551965143160377036187428741497421453669445912655185045128391536243986456932136485139439654855792908370154507841534747568157354247393958446156621524166729007318912014006033031207940356028844014650817550997512994855234390446368571266766296954254183083440419377936114577165312559893891339208987454729512484094875458618666018548001974303440698024159894489748543977180322919056231871255238687333433545941542629113555125335173828738976150586042844853992125146403424275470760560266048938616396155331741741357192863442526716399254447793949185216656843062247262989368531016072546408319910848559842664883598403081987134619672701627942125897293126870913509891327907006592770667859975408709162142277338379084439466275257528230668607705089071975441256699715819030121523111253470646288432203647846258620092009899250582980644430630146204619670703596456549134777125147608017788170204345004028512494341270417805780975913873098638934556563127839866399904668822032708825775512861206967668354786434669324729299798464982223886013906825088224816741278548964931477239642623703542952558347394002860772189979550164987772135080744680574892120003394283120370414192268249313317154526139699244522229276578247516750771535171111391013199127675622398090952963716398857613628952534417773452955466101489491058106947575556740074637643491366551066657455898127952740873298205889182490630590375373956230728802454883541341161523221861280049930762937822174124209349578158184950394096441877158852470537697507223613402778206245289701094523318171010125146751574197224104489294379962081476916927723019878801828629608457019065883883753299846645937482337817303231853411901598063424898905193084761106316787878703471210654854748404655920643567771707657005481684808781832780224965508131780480208564708114809043370220490257879606554783007213313050814012092413890494986696287960130285056473188812056380912442736365787448695426313487454649764005303812279366099123005190092527147107379209408320994916474780711998518345179224718620066629389114380517815171637783182430848142975679472980656884881432769246673188924805150685961078762223743501672176972706101126549073673143459002196718373156652248759384502877971962159936622390369248633535878847035428462372773360741437072231069141299022376750016393919134318554054112000937398308196999053168129007185260198411222302195954170007654155156143745339155268603918680453259737110115601716350868924042659178572791711684712925650569169892393002203336180939234398159405557081984781419354257473337115697761803058059460602854435496707176810864507149685944149107350969869137696048910883141096318093947883438100923602195359913976256262618840395245299916981628688681056124421399852499370221057314915939474501658133221999941657413585934877790679431553782316451606328150437001717181954014363736474199578231663101161577202773003374663837403682837798193924054982858333205076810296674511987920624946921117711428299918656829347268698038613002816093891031350195050158331595599070716834495556814995335986152966333695452140261210706107175401739153158131478561244559016615980904881968495893605585142543089036138834878126417180808725857661407189751308968152845066045053882661161719255419782720814105484270419525946751631523663794679294040166449460459614827021812845037406774827486571078359815665637371878991439109024221938744727744858824303815996264611711650454418636013594631385648537336314183499166587608597986537131641074505088841736247794666328925292472455201217683697586555852656103020457168459492710685261520896800950797934991982090091135656829594339406504980759535118621147612320441261735749323568671353783231357766132455938460751388918967282805932599816086317959403566111158486993440273886971754896334803246447285788238320437989495534079074909984911435530270567479373777784966741698623953148950053350151495710090780951473874125117972732414412349095208331340921152739782110442472946669299271968871429588513334595909583460809934634799460825777974269975065116938531878911088828944920450546428448027956931842129404465313015827474034558237050709188207543922315650469085057103151929816703528468839065609057003485835449128044261580361016411451838314503952464940110098077666374482066571556028684262654914033956161197634981089511684953067436059295073447904775089332162357058191856164980262032220121721739595279339477754128588910798622465567117927138505090121993359873486196065902882668926229900987484566792856175860284950009938560214107231390018105291232150178553513797083804571655954545724797866574069220438576297848900345088146948435964680877272864998243010368164514342579668136198099252121782395281200122117230899446139493461419027761948951137210593650418194688838438088623671290969652096336898925313488345331039783917545664950953227681914329192205179827818961473158145370575304034292390328981266711672431644113327250839312774219891423974666397556398140317225237324295473744449419185275828659794220702243811498015852900023191392525853506280361961573647646726032293140302008910559220529566308729302678930560261552916909752637971340501081550745813472204798944355537382068176240021574148522691447127892617618402490576047734504200160641730949440065692181557135110930429329574395903374785216034115599402644625630352342921977979773871979534880389566386736297025639532642534182257685345759245235354857142966039738186093989189902979971724283733184824610373176985827774398679323684056921468606307165769756581106757356977390856969343194821621478953124023809611457217115592799388481302217121920539825024229443619725845012066225316344619909760874075810060105285018556387592917130382160666870985509876913204248104313544470310083499091051052633186755135441785140138272837913563295358532169264474650447075707671020444045885148483849192714040785522936246500395263115538461371198881240743361801990811181152547974593917161712133629602763158806211101720518107744687263080597601664524265861662541630651864115864541470470401445526919779438122561088416453793076207837750384281632442816967634693136129684413896616209119474578589419049608037849847007401161958255062739122436744974541330969915744922932093554543251503977647923938024940458968735221935435953752806237725615135269219729417599145971430048609189879990151288445194665278979904171808934794705925171732306432381633820510626062450475734603523287361780320654542805131580661694415220860266357005946992520854669261873890269957748268683432282252443962959669134525121812564689570687595707867721534607995740167194758961005357696489353836660950344434663594081218182233037394292548341103150734899048451221352549579951105498170156665347128776311318360959305157098359745066424441646282673936139673151558800994577861914207639079301254540905945677047923810636598700713581138080488473705502859388818794168118461301738883139790908318042764310794189250137024335051571362881871851072054578338545772302304560053398737910580245986252825691319414535479732317176379424993700344474363357119302067584525020490066991062272404868372621754792823248064434383305915946470402467844600568876846760277180336429574255805608605152559849325258277728949604695023957641059074270670902479659902064444682951683160827721064751436781043013978569953935535791238343408199204207082454875994780484049229800253052946983023825287191156274208668587565058188946386731302752952758620074796105299137189514080500156473896840003087583304795144821857454538232037036219124561863554717021777999484438977096268161756311301568416463404976734046583277929974002356354948717715415381499806678151897959862015791347079151417018685046460355153185846656746746881217796025182167930634166360428276763753638137959235480700006953909949937481921515830859795023784170481903833454369066840478358371922953534866906700893909826906653449629227245773740698400761709567084225160756910227414578384346676386602840680236263474149461013933351067494253818411219480753936960395341400949105783025543231433178097298338601196566598697755417812169038368683097962130209666142662299683337360428451689623372132873270822672936336189565950962947740655604634342901822770036652695008904246505419390645475670317074343231457752484421390658624809896571697384359593285953495146084556317915377291003659225489894931145271407680423493943887942240133437161591904207681478701140722264140953622371660258406383728263581429544627051346321976517425970608669773277433385537575060592804203438586500848875965902778700390798240778804294655276186251889375007392127815795136753205071128749974468903400008455616003848806656229749993657870120177079561372669700308830618354976694672697364281330074188716809693668114880452975947497389834706323370650734680453659530804670415752483304520273081008806002437778858359949674887456299397368844997718705426124910155171382624620798646923242052988428521818075743237052509658945683591027658672656799595823782573233420563270145837875360309989279247021260039918539890722804651222521480355601010175265368152967544705510898768965561498838983406509128137116280950846840500798465863974497393687513508350441531877256819058660368731034544936357238517471325030092944551361995640384708483053955973685086421029036588119527730533471245151316961783207499025002192789744026524812495194687594948413375071167599032926127406071495659741994396298822214775093309122866325767613572672846183129381774288170835012998193812381037864511434294889344333464931918140864071812549109184492909785889034786522923021095178817926718083839719749574371967268181115494920114987095459479464851393315658201913363485768202416537356457965886473960390983664224348828220446668177681500169962657940033471450668172088914513178014002711861710912384375674109403490073175989506836987673996547245855254824591753347381725324299323322474642611489557648200267214265040679915396124065015208074623258334730931607812977508253939776293488515387734624334303404034055116174540665291406106370935986525950443128732112716742982564089814510675578328403756247609271376927030549861268600619525081028162673779885859281482122317752549192437091592961208805588841678731213963590966851038893885146597120292372456688021017731453622233563188663820651123161836600333639785912451896755116868334521428053000533239899702209341614079538276803441534044905321594606571597477811903664878559127405119295905964407028635866162569896697333430998723615918065889511201124763927451806828285107032426822827775478118139269135767320344493026426383849166597293100926557580415351262255005578510845810811581195831134753726587455925809737030237911631936247509257407269767101031748285766366929812336479870306951091739074589691380655182877601246848058212852011952701885087521459903143826693632360385045626502474010832145928602768804373000631779481501803136773558252774913643378670681193748607243207011122603657958609441239722612403640707848622750712445984453280442908201196021135735895441316878775101333604158629730766878303328687172795354234010396531066584626216471080163338925780322195410077421032435325138353117111479086437516274605236744181725038520026728241073605657087762739329495182216405256458081863797672619767907132704382242914466316568639929593141197892936194078475659868583460834483668258791456384990225495622621726474208877641930155726086568440721768350078266056246486711716421409763384874381024115677444990376406653755814241991699900870513905397688268561466530763986419160871033395485171443846408148600658673869958358418343540115600076966202750373552022610412255873310894380297730316110596223641038288406055400765998489407283831023530513651220549951168578871217718816680056251761076889972724443475332547691777193332229919583221181379200898663451257285651670880595758304865066563772642145863103694840808807422172194531805675172102187895958520123894692342792467422466391392270337461457904301203612674022263209402494733103914554869180777850685840839132803479518004499957911437764333859724355339845792994780552329415917353503801072193161327600353523383772481490436027370599731449070106301746988762708508065531119287901713682346988675750334671269163861334603453351749750569646021860134002643520250668445857864656992633404089716674217857375089332041155658954900932431744436162846568065634301462439300126270518658251541550107521826894537772400794987128868950318382052893840257356893794979473538067053201415907870515988600537544338549598781979350397001787879624610657685026225549074207052628015128540657594458480323318286918896453456517000829540617915246202473030313363391010248805434295677445625978486908709451189424571378546691266260015567350881677281392381096408793080673156918084292820930434638857639565622137803833075021357245308413400813712468579988103424660574362334194639885310725624977292233015546342807002275161363723517548775909353097776255603017683887911007411813068521865075096955901533092898109829966810779501535017274702708764581652055999737890311450626413731523985505581612597720985705164717401122459448872750342382418134411617952871723892482253300071428476077139728192060009796617408416378333913132510964169356777500850680836982707664280619664388106471322789409942862167393066943349741735788453050105055541812299703301915789794835371047668092160670173805617357439499197278975778033393914405250040612371172197907040872667548573404256332457329360001796058958375189340518017707670397136170941585592629090576008644280691528598439021442406926501180911682115189420976127380807133994074264871125029157690084136611327986024688362528238595463484971634210143250630103413953111293284311494415414617857179519680334226360722549724997001861301193659768733586079667284182519027453377706049175948345223562556416718224616308827746247752576446550340953270770373985770846620153404387209633667104697585480540876290699636628056905159204843156368754298237540169198350378711026778345245346494374982337206846810658410656072253704982119190214466635945458206231337200026274264852986753417106225924261595334047636346592738004557599528071763006280698766235728341607273466029027161656316720665875720605375691122216231793513503506943175194803650040065906020950841287457691211490763660282713644408733257826119864848036162201767902407609589036405621123054781570383408387718719300842974700882089773211364439637206293091373138233454135258754239768608497490906332843229227971690800565038361058352452443591100075767390821810865458313210024798695069670935435143063191207472250350841548322873135871224962762464049828318930502816006689928800358119667942512178176875375151488050748181528846416490461133449352535722675009500170281144861506091982706015157015068529399242728196381666543270382477271348428693505480008507482294687131329601758632758057231718353744707852149463948664961109238380860553239613266053776710380199419885984027529409671769779878652428133897856847090935213279596307982397544128430678100302394982050608578836439968847321928146237169269253628296120886718295280184312244600459993658577324033343333632754091961069137716961705045996140573049263230139358519594260997149155154021148108709310456212395230952709897292823411824924332745361994910255655196281308002576999960506008500367220333686315491522354005170245787536177888888604558215914544802263938525285458957205216324301426876655715644745317470444710938702356353207966537171694763292024881613100460857765473486997962660739144077963333084970885428040755529527974914896245303123577961692554021181772230708121934218179187682407371592747028600758906601198851379783285312516712156396411967065959062520435830859783132774939384212441107947102489968307041546109237527830009429643079292938327360719089084156881712861670111296740545026534666079157692081228599075750515614519344112463572293054902861083212741595710740010135294509374774922340096010275270445496373484495532378555387799382186538685523672208196278317283259249669631464133977281686953897900018523351369393796588213433379826255833944647834458421369364129958042915505617366792502021548939482540623904406926420125891100132749904993303323918006140892798800880380518663035698964702044891743160472966467764224435392311380155411950926989144735292044536421525913798074376434999134846321659967192114374206249679659244509678381777189756672054145809097430045943310595637487604645459527510844855823191212552159375786791160028497058249733594858508034479162080360290739418586349401192821469861830259127659470226871012692730704365688132472328659074336113687303928593389946313574624558444778463001797677343790062862309483384767068319649123859533829570562797965558455260652868854268820131049342501435285059178027360971133577202715711884419162175856198881562941437345146704969337337271938288580111761682488736667176478813568956361719579914121111775079329087736937700399825897586175627056179527858232197594677052829441622220119382562198364523425894705362993594396810939481178351464783393734846032982902534529704913589773573118840726448524362458021441203384013624946892782236303255913579031310336780813221003075809556742268379854430572848720263695649062268990037965289579704008079860386813329447815571768858740064267663534628357005921687889973826103659914335358136706678837844826148207384878683346373803440819103368268091192829569799049164327411200393991964678531208593638965185531744574206929964021996781254762131124998488092491261709433327028989987860944201666819243561003542792117761326752606652033518362704378172913607319015715473398998912606286853324942913641116308753896618452896770173489717608742538624914667890806574605525779492387219874758317834724190404650284031954062265122290465213167583512869179204596299646885237202426484283197061567155228458430459885836069509730313770127388963332987373158944335149946812479529644172684371507391572926640714127541912326702078877951693535346160953583353925435721923997532094322050638905161290876752105225860773913862563905928369732050344982035217001569553799640103507983230226390228333380843107263456620894792870262273085173253357677269602893046158477719914127098584807474885610989961939329617354902747994591717942948556684056793741854633886517520870403290096679085695976621484505078180697089541342599270416484134740580398266622355077627326638803552258896205110742096705548079905247679260937178423275693632348161851336223422012005203567381746648643298413479596509580052503473112336235655217311849936043331470598890608584061723051351696938257979771308523236108349961868603361164390552950388895590775017759277827309831519739422277436457942598386611331722964867420004434306947377889335326040699768456147598557709886908857857145491743207538862320929185834620306763287262574354699703394965952423510388761137436301823745355097920114238455095722216564763498007028220860333318956327402917022860724352299872904506866360081108794020025311619217579764834978204308523088877691534011947412385336905682334497623603364572594858285460901437296368040561841802324178665221402973410971476321485454610936980091309557378916980274472063182173011910325837072322881545681698789370715460025434399954403657389158020546713172016064329699286934684455937577456588856987214193798666583074450430114209920057330085509496784617254629034752741460078556864973852871449706659254787324171252170557406847330846929682556417892396389059975463993212901563321668792588352809921668795476913706624794787969050488416676712422261178698721416970001278930666273395058608725310448508983406958743264224039855607467328650530224306657773120386503556043711341738472720497874486704175989096528670676450568172883880296039177499997864004398758412000079172302816361338999747719319797791044475801917896800297123460555546082754301045022139201215854467491250887092712341314186804485735255346693423264375277115817553418043793265049277898125205969155204480618789160736327318364254802379831964189408145357646843991579968758960295500327402401746379743418258762114354058538105465620395108192340479209989923130379900334932132495225763202786415183415438958789689771290806067209287887796399065838958354013010408179714023435395885629311695778637299235036673322646817080318660148887327324658491459930841064275222244756679275904538024145384279056730538143487781943808006498936503454724493654001340646539983202024251368603788585154695205369021991547566960194364730480234150749520930821405502261315609611550416754341260127163842401737926302471589881543878897316043902324144702528518154857910109893386409940446528626084826730708616230297902485532994050294175128149227709926616481125831852819687504272518934401463361113781171449966488498871291764497102899416261072374359609008740148396087797616680219995311162135363598492726706117541671549745991946573523998671202982326791222547648359251395749051500736440235015603427559103313193178778722129094698132613360067350080161195937395393000361194952297472564370782005842507126879047191663462446037992768088693862121774150240791455610804036867327770994114586767575811444046345255952758069072504367811322813875486621830496454534937496290847179197781189813610777933853996843698582798079869959137817965744682663593155375079484042727509097274577679665331072330058270275063006624339648728513301787617955218548109439403999146577541799625170833906987714084821253668296244489609940332995815860324023978904789156582912574687202892047334258713022915117798217136505951428437703902537071334997808432039237939609518523758458314329797311346061309944376153288172258603135181735301675824243827433832395364572660878146739957263015629621860527775281453428756991179312528212825099295452704554576927688427307840208214449876068285053097024514174294378960575180916014310481405967243268692955061111022449105110754914591168958230298012488204047086826494346578142614556428023282756808669539840382148663351916932782368045620395724894819748712961905806978010551559807084325828097682964953893609387480378060441309636700227598216367099830310451678271102590415511023609458347608469072519142656731661358716815929315824134798122044248682823222602491577608992324775304986136825311839788472575164824425683080519224263158998637314582121296692818933015035827394303154693327941021478757313554385327221955891462291888585229116195173339121491106246561149302010574644858123235411457882516248813384491186757312823007253578086977349515396691529492164645491770023557737978069214149242098905744653780054316354704456676659530385218854651814948615456982343161449945839346817932213499722336441055925815096413011577131840061618742024744255197027258065925946278115857565847265086108452703546408151390961679491502472557477194917303260488650127645915566241217958997977237097562907724536454657515615109969086468370856976194607797352736744778601736242594792044527795026605143765617164323392751943376137527830729738915847098291949654715592434388112096901330677065793467000061173059546575496638609404663339828722181454775408751503237188580554155590169144693088062746810226121015477410947873227438510047000259741954237219136196002362916247483078909820516300109080443269326318189705087843881358790644854219726517303950415191918933668839209025027626518597773305952827786187162027978908252797930636553135803575225186578527914478350460767378529868149546110683683806739932005471015090831155784681442398704574371585455912448438631766941476964991693838362338313484630865793746525011945459122982841377174608945488441807363074487721684687302954724061577269082356496067733769167580832084212912071225711486797755909782514038241091678636208617639137869902892412237503230247092632175507533019874944997548796130807833370490773541417590239717722489510335869627975859832184562890680273260433559563193829958408837445994419825327834881689167981734351294374650377757136157576867726876439530232753029471463415967014233562671315006824974369740389608086748926921460885285200541390465388752037303765372446107135249046849276669799957548543143823417919169370544697104482347838610481516283926902746349269455530142672891578342263270325944009557847507821113694043524732809430009720461815157384813425339760752260492159999923971909342660247775451713019666510313595336779065189479830023848917927894467709048922114878736159856245040757730896036905197704334294672168793697875335182222830859889681502874342712175433245328847340377238756689806107745927232674101227949051306204455901424628253318358992184010691588416302864531182595060373895033282693657361396936304188394058205075417506950489881001468112364952380266206952125611907096988154059021326658357308494594548118583100652303679881911789971028264621945352849173550299679658444698174203145766753704956441687759412496229319296404048952970537596984106329350112499357952591285089219581879261848180066333058921166120618644507317380953620912770231697011231544889674916005955668888422475917645629838354584711428756798245369014976927435985934697100038419534102791886637819774839512820959807181770267848429333837723880832048775535263938259281845921771917845860525130922543843225341486128634944323363730251080027740021760570294307964920757483713510050638165807020564016683041609626491194124513267314072381524120248252388811672673119490079162244246155334105820755001924503845185595209731258124404256809410781153857851317052236909725272450545145060757139910855154986480455769589074709993087936568193374627205295734091519107942419050707453892559414202216890564928886002592836777432686848707752461968851025216279857771349962362315178338108930708873703997598922009300202343968412313311780856821115981390825408010112023229514759763578747128025415286220492101398550920329790010812613067673639458132791164957969385655290119058117532563414159719944364546295312070461005891365032316205747344214240165779979502139463450004601574166506683268371057275186307063515681619352779381491723938929894303027388812548589989183521804882140073658165873425170400626212792824074497513029343560032153302678859513206979039994992995562663175320385530942900212963727863795584871932195229797612216092342226985356342162789515510486581247922303653798093424376410058688164866340366449894215370360924866214547225416145951443210131368266032975146948250391625051177797074300725875646861682725399636588073925282020825110249710281151333087543038671107893129820918940391968082767815558553982389395246056150049887870146638845008531070659251043381434192706712150676175548931040898217021569518742886557202759865165971778860097492981303857049617247057579731952366122972551945770693669774368454629979376090081554581420363084494036993803368605138002745156509596810325960805075536689484369329456540013278929256375683007384309496944929709130225578347389086023026121292286524936457483420160411474290357378783089460225514774540035815047173600728078225448011075028121382987311379650302356059618664258549006046555343716699889132944244942996220410426314040246423844061010885454032178742819527645294268977825990451440926657107738661257833933413121611920444332306647890045561233649299780953999603924197424980249334224829493155954337561827832885731673424366710164660427801691462131643936670257180807769580903809383154228849107192395073511230239849079560364530295316081218193907591500838094391106140931211000020374117077749462520831982161000325151641786338967298511089432063037978641542595177471225228244614751872956111011235637617634820335947332284200798358507965630052173709885594904828780434408054559309321604667149659534840345229250970913826378444715249706389213557046376004876201771385814845523426306621717134274822576697072181819297186198720138795571620915750641768068008683104275080462401610590051365174159706836215506821072000779096105700546853311601833596424279792474620397585775866364094754925969423252383171781208311578855593259301085316617870714954346221994029515715754059325031687690725321446297677314852262600528081828714603959229885686637689363092237237520865429158203140633125220525187148318317523145769697252834615816174129737297122263957997868002961825141935573648650891677508291326252578736758575474813500688816643432391561443630627627749236536086688945957385866257607765680145568447503300878329359370991253787926413821831760865999144715521517520864134058210859737664583026107178211569165853792990815578055744810332063886380856332111897401554919388315890255557000168752314321256464080404131672905495120884391528740498772793624873345430167604750679608209274152971122020907347601542478820761084402984548450481796516773689820786779779451032639872097970352833657100074704435291187636970342033424122775767476675204705535657131729814471218524883802340849316832546216061107518021557039581420401416978008245924942079532338097172712983024046356623050188560945999528456938051058748483135470644596105652653486855292697693316457348244734657706964652084283049363714431493096799045339698714797259652187263335046847398521658172036599192074476459589661110197529825256690512775585486738771594417145186327435582984915969105217258349370047562920706697890900088409528255076932971865057057589267056564292322478728213353434124248764113630075738336667269617447242256669277204866691838512341954162573215642326136507351485157047925343858082040745676629965311163363137725008023269466802862439523487343004881943722236401345329027104631431540894463022403772089878477558369227145405908183864315827707561060236652173668183626866870492038084346540472253108191645245078709043225964730028583548423266044165009752921258456866091345637805610849691548374131683707704416963750140246540669506425735245798284535388463040126903430173622652253851967589646285980347899198389014767060963138971306628248224362479143916775548045593816672231484619972935201083428692841398133358713698695963052810134656755557156038234430202982702137421241000424711101370169705574881779606624950372698674805419132682838649611097592530698375686849432150356662340873250610846424618396245413672118498811765287086360278528200688936018850875660990059635820147127134607321987796490812000608903154959666466430544652842303993021544160702176463069993083981889845217288346664603099243323649003466054553336855512493874716730472266880722102935655594615032610091840067276154702453777402636173025534400956912244877512632163154405642616856646367188611437133738352921487022636914149257320923156410048367415547076882274026621638451855842129429331811077687895554521517733709076149586396518023638972453617436538571362299234828674337398039781430770787700888226257367382177088071294041149407697708845736424367131641505515587975428610165772168185709630265320984892872946584405006146559435979131777730907473195393875312641740927510598671571963559620188555177796968949652596833541089130538540982653648244037870610059731691204202368693278820362361471946683733530909127928424046155550247827806633182333196981196219587387247991626897366083977181762594296037978532672500148741707389087742671194867276953368922374795083308168376293825501973884406947901270200727579424643666700478195562709818345139388437597557758700367668242189724949948479123985156310983720770949749285272917875314690529097866845965392336909251009980473630877992022566527446087286261741403402237935029071511124925418755104171030147369990067903500611285462357453546398251285237702810517192805229027479892829903678914911727935700924106153604425710869288790956385077911079541583039552525757419351186003121495657012293751051049722922118305974315844233930017802849717847317536931816012812438188938037578570027167805857659562060692668509890913193257852551484185874131755211418527245917927555556516440477585657267966736552993719370679300331995992625480488365344654570024874098155889197879287647179551818171767194466641281949471128655629666791265038654877586584425951474625229000020364769798895478746153318034313135639445282825227075581481219152622041487195825979838730262947089626142411077228523631342069331516784134447654820509685049476431647609205810165607392193599205472655180711134275448480319709537468232716618728137799389551546189389105007124872676352373398698202150186788529007189115730242769490440371900782812606310562290682717310670214106536700070132963136407367061118861792497892492634415975767549943191346810747753445107361760476578723398803246550575142198849325806137177899510795353595103591081258212662342091107289773929474446993412247694625347695290532375232098343218983301763392321394660642559200091207366638907860126760559088672715714621264463572517825875580183460158902395840192195621605012663194346733890400122208476280965136409288119269275734635159638743985000575052479931676834323328072709509316406547393962122843392630916567864317818186399278987827979308696510850995998144889613914905192285319216424114387308122796402609483414476327800023558505260400296906206918171346107230850209220823452494393351595352772732093300938733544860986205837226282122392827354254734143497936759267127225599363479610646297496459263461669882149799592268278923987368136728353740608538426513261035784186033331811964469146781876671342066719201088259681331105966696280170236625072141573840499237095576136860829981536816548407526718712311600898929450735891636241223124457931936069523246962916588540134224045931188627766747291187947641725003484725712463438772640603074427344378316159445948774173974759065437920038597431137060042440652532800386279745547244990715754116949848413158675152800178456049608198633233814391467759121317766457205477213362127323753520155433392917186134811538951411146432880627067696143574903628368089464332795597340970770761111860325566879884799793712679419383134776914128903040445736505489159530985567454999089494514830221118148087036561177937981090262582736857741955644646076277313848357087787678515675253101335867927979710344800743607600647906178501216863329374373864490393764721353789794657853857926819111100213798836877501521005029085076967977691232309481662498904889358310187694066816213881351939765482338467438051164292148860316882589431715928505125347823889963760265325105725576032544445381483951225584209591373783433844346833643478080942075937889848691159182522506776653500555542337411426672634554682475315526422501715842111973520637370894836708378701233955884812079974932333345701597943709935715578183097999829762459176852564137513355898343554807262050004332395955032662834128946474688858638271283226895470181739930583378650537759008761130113207217735029737074694080270372479899586986084460323436228808597711919336339832715539388855561535478104242347529874711068997181871901012903738910250529209985986684253435375294318091134611949946532028760299059839803630490979968046405338531639746990918799761138499591805488123756134179310211136734449562923912497074050709073852309537902403817746072110164904796612124068718003450047887907163614941727726943832685833216816519993888831297185724601268202422320504904396513151746456483493660183316765322153356093872970784983195876816707461778441827413228687962398800702723751585545291195656219133935130993807654843141494527952464673049791857855570451315962962650812083394260139655081344705831012700831371775279493941053996682157240398462931014333847846036423971145742616340527638424754687587377363327639926616897854989162343758278993946955250253100921049151721238717186674356735067956850743016663297491400013171713227506550680337336682458317077257040157591811813394887509444752544920551073444622027938335279299229770160899436625983810204026470362228716597172727695186067084039967344007629431194555406773004934549892093504522905354367803864942257902552050014268340618781450188870149915744322920018662794174419212828521292423529096952145573664253614587208823358655520983837166461991003018562775424399240637397320939597565230798244440310387164403159207699451120744672225230540637684451806770782613083697260988454287303445386093114833761068393645503366474488855178549001924240807218136527614358192932062208952291224203706524274510570639722313550541493762887772063920380945547461028806147093202851943995168343998540930410830564502050946459825695153231711709998819621152786195307969653476045550612839161052464437197665693538117922155936083968877693144943373526200202260662430980384932697265690203858507126840660145823885171684352459661761993223406904591771194355036719301463143829514133504632201859202127813165607477469590109851330872339538229939901845698105527645068799778558512351398788615945628787546503179807096149077476782342144062873577914837147803808091139673937468849735048497422018707228495471568962624510053053003153978861230095734799061989494843831047727474544275748817130306038660592317956000212563730055654225668043520029594091028146636874223733025589111094975600890219942261387397287729148754456483289848286237147799916556793294249629815304569069230532508855000047005838578856290327562853654964788457834406779789317039881080195227833180799046339274808723468712445379937772871227607929314028690926009575308991884417262264923116185634595787419158260326184105987866778444492826426457042382302787669130842241373108926350469967057482247073336166352430954805045677642271238981100511618813761260491183271922815596584280804178513438456102033384705614870731129958360524878957665121456801194565466661741481846326243068509554447606600797190211764734807143318435568060488293150055274667259077523188349363943721966026370598421172254162169016103340023130627452832581748114915891641818179301105606040985448994411630399442027590514588697140057434691036789089396920221641584095941697788379392741569137670911131724350018942329956006965439937770371238801938005701487272215240900006307849204654098597732493048310270782900735584867365320800368347339701388953879284443458543414948242562252667245532766572525305230133648432347295502799413910745480841688045602830116874983696410619853587026923347923125429248294088795759981856592212815747489136628888360513046081228993678150169254257190895899653064586133060066535385215794250880119631303097449118187102002923965520166092134124561139526281996726063586538638811201452337042201243143074617320314823363527298240633830004211267660454937324036281094228340893639629597816030089025875606804935905540048500788028568385316693892021786584764023213571546870084194734429631284268251662183887045072466364770218427181070637811784529539583943632142364579770035540735112823218616322431914426594301967801835876431769046867980582353292354825495808997847297805334214911178785374247090337531946245597554751460716749686436018367192845833055340432867140023489690475971776730040568545321330332536227510165946970629593655524907176645075956452463879493359702230414192867738989799025058072320185208755339456911088690021128311795507565111520499933874096382824038937673797963113578210255568017439867356625900739626951372231555873548175829713943442884676978931912828055598388090612230945273530868499455700370610611863943611154164735977434580560997356956288258591476016916739026954960838051999849222660460713927045448993150579704241010217612958263118886303275229675954378166712561701960246062622523453653952952261741721683863573150823398275271124689279625028807540363519789669175029940648084577845298335050255113813499453018266840750250444636464067168848712223766039105251842672641659943180498525522518018404754583888869293213551433076437635561834788178307833659016893014229768377639783759034849198001318475641422906113557351553017616809572787063801396696043467293430130166551416373647894192007836042558717623747994762420642888090293088952159559419537976641689945154694042828190083646983778189347463204452467002202423051227179830245287061368100200759126775283867530123738732029542014148056764744224721766563806266313402618472001933831389415732049015293577268241768858871713669848847124926336263355003934462194714414947233775962972627161606258036941246768158465573272588794631349670098328052956548416540669217276971855242471223263451379734526944288407153362623809353223704591788528314394872530064436795083032740159422700787501737072700366181228824159915007243641584261527423278163271923105230020037808759662690434792518465975015343586750502709653785335623926203649360854432671371858362500597001129620340084351244155275219956252078417199596793324562172581030343422976641598648223659353366752259389393723666323425068845698378054481690501372874033951662277023268839953238880735658722635188123989257230709063379056661957118035113139151688776421679285195849037337927186756565311867695104219719706103389777849675438486464942675454168301854623266858766755294163668206420855622628824143060785248792080394290250061723943916669301108106214562134330981988851117443313612558393159384619358882242364135557872740202887982157710463328000762382665325628726382858575364040193889585858316989976661062328035213525974234533743150491757348200470921791624869207203342053246686131924416984318613922631706138613543436493938961193188820077331213936841174785958928869966402597502195602153318645786094499006251194644908965563637420140879685176105511400675005151461911338127873974507322281453143467951396997960861625756627936854118408579513296993714323182345224067366733283614019204512632205904882717094022976457482886631283099157171539248862595484048428723392609052101580549490220128134222097449412796592305068039265139118932563418690803702945773045464279241768054340083168502489954535156046611919680648922017565354058297897508358466644585952952960345859247431356404314251409628138340630665103603559190911572122519679924000037557230947309799601057069010911253831850313689916809363940524303250165921091142442166577559005639651000759769844644928919400706839350097597824539259040765666245323991069261234328020475738821950310950944873046914342428837199507379395367475401534680094341103394869615033599840695889621250693878896611240650981536841620669261958603988034561595221548467767420221175228740077536667522085827898014230697564497533347979501373035325281939615940457079202398441469714346221524853132666838345719140582336735708614191828798086259613545691071649940208438252185572868550055755537082941030661502989495007582998307413235836304935189302920948398129286276970652209414337703180973140121165670264853344369656895825093459996751401440145388393933297224995944715149670524101270003627209192900307180375597569893851027302223944626479424888281531640636838236217293946789325568810305835300473475063331628672031254515047832442714740170775161619160392047051065088581818107283127641074991239015695915642259549697417347386698552382160103282456913328810078654896605426077486553843311617111556240544972560196594168932791448862429775225353019782716564865281670822111115941564677572919540838530597463225681690427535041699417975556264694631460912880679502398248738916405391965891007498024235017643603850420205901133544281896453560331880874578849733088161889432085961516848966100816439725826666692955863645690816758823124121720123279626080328111701876739083869135194394691057580033882364243836694459912451542408623353967852223900790618006451566541685130790981844787992458100510433932233522940347503111207775085605661555066299695938300088745546291586494610981451447420740589541416337983051379505426252751367011128219707968780029324347423198782203864849542621322092211255183269589270480745531820750065850719561765155286317247859863707868244599272305865366029478716573998461371653261048495005009699614672500152315330516059995474763041327577456838781476051656053638404161521798037245689602858794829208163266927743167619620871992241480440263370589867741937704648606211261368362562052735786305246958265673293233602017938383425676030138627260796257551829720026511461209380468165003541692861969552000874630177714667349059685045153807363027363845988910046169205739075479811584322724157247825701701502355346241859950196860061116591027101122178222498731511916856140949411763657870163919333120431792292770462920921678638788610132177294642030300848462924799300584331740452536006516647736322486984430370527998352098009706619892451847902462910076661694477154231653359048913698761899819749656292439092160242207282078548448826508530633680508727129255565422884970863289393521858592369021384297077755938637036517690653244556272604405439942067528798262983548881070047895998799457650325359240924046924583013891513473268668407001657495685879964760901957057166243123436065126893281257359746157942450426535125167216574946554167712474041370628776302914580877023037224251723337201859088300356306668761086269953090638200392565951578256410454342211217059300331124727753813830841999429445983737324472019659423186364971763277153495896576884344200183648323354113503520797953100159952840855579393699332787221477786234293866112832200054873549747751245051478274869268301177901916974665309071491765037574952103913741458932262243629646663353934405787136516617364633025459338734391415368499763543124573170662059113693545246564660164928955735321399162959573963867392941206872391579367100653861787056785678451567971420893541085933722278309722814798748487642738956749737921946312256318588474280612372593977662558559688567108931602774037494835024700351564050407352132655848822802827126213995384553637919226583416912894158109188969101491991312411362447419833408421543806578507344956856459427959356912492124362767511345089245017311879140329136742055484792698485665854924508136031930634562201604930274501123103276114198032346248415286847792669846634182748221764245245540314576366894614801844469584060748726829123777492302414476747239455028123893344664039992203534725822794068292206207452290025072753208415216720250782712727080714966046722758474874207086563489238085350847622463274463954469853880193217306868984757335559678730238549950376993005245302902074141727293341406312956104297270615007652138295590817245626092626107824640181779057233234706972742369945054516192675746959800420850250195113758366930653175699178733617852202092348625896203444299961719212649056958923787189932027546448282997675478402297350142677096311826760815436939633302084640727367952030775601316409997482964287916112174358366469461424053854127913437719757579447339495014991501112462233919044257523438017097247827216289540150331763815295181707285363242273118780084389136252515806691021016083226255952999607631230270611915519968547719070140178022439140832456216709904429046599753201874997123821229236782790715440661313447342518446549980767193549811010862737246444079573720906758845163595700981138808030101883153988606863471202703418015868711153745345379170125413073715199464532245328606667040467674211759057825994115368085845018067884235265488609877022436877091925223247750562135742922468980962787461599943509120533937861487004768461062286474852235739773894341333382793315973270968810642174716409957110333919542468014317767256356807386870870208042644228594097840471893479354057044951413332521383887358222095180828672298890850561740205114745356887316239268905675021336563869635599919783376404203780000762698408146871888078719468135863480838110862265597679652290491570684651512399077816493524658662416577849844615052644531977022628556547408416324726416938632827668672868258538493121956013005893565142987151418523043022638153210173982044688941809786961234004249232159405146571738879601014422791914486632122248927124523581689443478984949336312705588045740879957596295824018500055474538366027979900517556468668540105576124528003600336344491728778898739432813003837183293749812292867739388845495848140866427588711666721201204029146087360016612793813649141184995889273368796288523380739809982182498406544181516221730493940471093035106387101764029184595892065844212163929087056459038844673816693596867027060196672253751783312795483856115930460810412942315158312186035596980662939434857063903330438959046669237703790620438435762922509206241110446815243840522790507535533046258108840195543351495608577001942809193104967674461848699938413167024590368374578781709964121357765220897921727443080028543807305317939751007342096596521733400845366173495976735382961405789493739228535136284957559408803560894845102289405713190316126594032745610444285376589574277572004198018293219106869229466992250423844638717160800073074785390969581099242872915235317372960103675111698536939238121622885760636535838726367162421448842305861621633233200910116339795942688348669731007740868720468233375415057169901309300625144125043681411601229561020357580042391170327376816416335515695873195052091969127043813721872346483613772025502226623917990280121022878761369663465487298519204718667324020014932399583403138319695081936972379083282712197017375452712328083106890805458598091421089886058087756093764030052372472386534218072334088447824347801464899361222637790106837252349476457927000466562343908153176516987056554558556860381662799747608203646337487904136945372960905756899101151773705421839547867554094689905301949456250354207574956249899309143357070233429678260001108603699548533122455832284922881279018089045703263071825770677784141221927867366476552771765544667943248573501213731381214890365303482263774097384761357500514056837581589049946385469895052724108249405317478267435291292257622014333654497290563405987707346764918250957231859282128996714584183198524660040051174642859673788764154336224762470792863456001376730680086335175184424979837014358302457431397102256037011313046302633914190242833366781351649185888754097507549513143125495675051539441926295950168800332331906608013093524315984806325592412950435379550151819895060535239600445586823573812083837512295573821173534057786157292803825587880693678674792019738179046807849068477219282244491848814873286480798915198332266072610635735142764968731442397649142384968692916841584477142963804151131667430145574492225534160727759432597450285411005947558304362515613722159751886651735686720739572043730631811783960177812399986297634736457323543153493316394118743667877026530290951755576340387623711059646700052377289382489582688549683535330463252443004186936920907813624562338937556331136321565483543224898488751275209445035421812021838313718241486424229525555992697441736299554314437964798566457230887278172598920502651199289951225901409410467827005525168538963199533515634684868587533611627094500652728856551807506578443077552993374246555543623270470631254631098343856545667852416735733286161453278793851413069220200829691712551721997924605186420442980228086215429778355579477756917098031753917671696378628899416745751898234447589896579506921167866671141699433490268365391322516008399921798118107624414856903040880767796229013770911151814865176061155908066203187320311203524678336160086567672912496323666734146299750645599126867965036829471513683844231235065313640220370479357643746826113556270942763544264195548982563389679303433364726680304783582645479849348806019158114808063290837437411639253869519436145459653124836492116394001730272237108066707390612425208580049766797139120643887797962908851425872940855307002087835545978722560890512902011326783509881590521461813499909112577108139001222317924317481985927419049732180887570224024400850655009532062631843973604401221715985818650142098090011547803224131318869379233873803348678279252705089510933942257227528232238691567859613241665778378817293194309262538124002746328343320343223674740136104231159027747209667402958519317552079393703844672736381914052231896947056703692891114402935579351040788561846277438842788271636886534167642069068984103079843926942246510742859588443518069672768378074410215824860838276075771524224451441317961339138209879024995657471583152682485746689829973668477422251855593288966595702956529839803240938792859994906527916399637617023990884678585481368582708215253093894576098113271622047828209258191264421316729762124694320182219423723700986524163569947809963684941309123724985812674538711138498523960856939039210306955444424929723924693201620663702840225138827916948183674067374953529093672106266775736208087895892597202307591074554152486765205303989221834597958228354594972244822362658950614085489444211074655492407880661589886886472774283960247035687300150717865304207079012030439884727144629758677209780835886047226502642374568239837818547651333803317164055489953512518471186610984966715938685944933232201843517429670054849926191323519580204128254481475634704782890031831962898709680414857012778541909557732386067040796474884687412935889043950221325536583012763254315976311252670278228604682913136462142022854120530636650040354640840532258541303272123829151384572607855605330560845117983985699006067967759240893642581022524046166972481867492864500151959828811116860708775142665121837739021110001902622708075671900602024325075857930214623684902122301858895966059450282685778382355092091538652464834704496976939930018128042363972147958953203799881821238287462951390448961365224701466363720967474031575204890984801258746862081781181789957464004318988730387028950722217373332252342084469173681297968725030477691764049330681655812446308918385585042595538510090458606162716861224958365000010965287419002520064191589954405727155079436150129916556602397755063595566712514476395193547805594993821490587179213945729609255342908838320995331959182094027124426035251310815354192139185027210290319892346271176228584204964992185264719845923064622319857607295519550935332026318099802190842101961912875879995154702534395562709224800410271400561389624955148870243516202718614688734565950252453400066049737086608856745806962178647726871508812645167273318491838849687544211246777031771605477272334183238004463076108459931629734415474845031318573790028875370737886751424700224295784367632707068533401786193225547456342446532930455374395996265942372239823230948404547576832706511089667345127192387996900145746067804482010772492108587179163918063368978383343307663715731262716940385304925750725808177699978316841080398097959273969773185221157482043844005100342240343520966291702299262569603484549339985867566994177241962735202383621269952613065576113251740679025729657596513373178761961651589225675060294704164088941152441384590567015674126475068222933329947038053864817970961697275635790540730208944036419886714792702107693247218100731426151204490281494767763071926320605339113194658431562622494182829897242722631657214431298265314453774009654159678376765524032418161120851992231591826655662343998664507001065442900835697667452793576750138915861327208231560721183320150315722598551053822067420714434864260132848705516130904334897340631418331340104935633361084252529641153440081716887992147144681723029318115312042511970368675114365564535320744520028101459891479612211389065197985266546609780723373711414833653968323015456729128143826711124982548768870803488532987124879921364773745757333611962976133848479029152803578479711505607023419218311342852292851286156396731864369716852233914993800160352797958248647554620721146547820271426152628426744371530279027761132932121097470773900854644889705673828115664946884112763449156304560543041544434954338789496476513521012370045714523457143976728547163485530937991800121265876578248090686465496538550566357249434002852901813430475586818913922445436922916708110316186469876289019306763286917278888877659057682465536396606457243289977143230338926136280699730030707436512204929477657779690793461553180314754354213267492250459391445409386065153392831869382361711797879075141725320469884483889255056723654461649574252535850628175141207492221923019995032399105638489390278943561093715134487511724994122041947604312129932105662830278376882393610633062513891968337672034142576651339979492441731174539705064898069170365102832704960066810243333703751068856595442603788560590970181077535351743709620899569004679882391246616837128581858057715192272524985126987565380465373991566846360752213472781517967595237407574323086459029140802194199371389652172524179709237519873621918460847656532000719722385406765204507883618497599001603572268660329948809109443401138901607912819547215371079291583792796027675375402113692485324853255392202790195771053669465824971331231757693377068560890202149033950899107734405354922449027610254053485158767585129061491168845177044370784292883653557143728652474949837775921881617004427706287752487161543278635355435907637176636923479090343830607092463821064842146111500765684338635279687022787397397451292794361795694850702881415978128196800803749117756505191213919058794571396126355079210646503745973132079430130807745350874148440692962125503583534953737143872981493443069468167968104819795483412828195499229977493427067368780739237312694169836005366462979572614790107539308764181733623419154690432698598698636692772368293776901077450326193341314038401118542969569771349025453014408935232474812863697155387600411309163208464669232820922283188359415009916067562016497467804969146632655979951785919783450925095931669868341057347167239015257571586386254528288350930055657054844270475820239639775781757150521276781711395143448042122624785051599652463961814458527695536531193354747594086397025499377762639362484002801113282192980827296585461666060179960523214149989793932329388274890364208276007786283182293465541964870902416538623874264177732006926018161619327752059922419679974254023554501908510562851666049532763139807290097403723793424239644093483250156471358975883416282151038571045846512747069012514558058511297543638505280059483695560099993384377014603834953039006475871893610484546452577414588833541932937951418636577923634621165938802003424638060094966779361919756612285858587037862145287503650232810127594488573602174412220716319610805683384714013370045853212796115107755720236273890110839583319245980777747231794033632414223906632871564199404900380300281908585396950422400096611626789884613256648598394857853266207557812029968994058471951442211395553676050370642356521972931958103625820960668448872541045361087578948900250077128663055914668284114509497276102327350243497932824900889800447976973327082402903865428264454217976418862508729825749406460296383495507802688485383572100752573640928475038252695209902051403265102716352559544894067128004253965075388840497906843344250026616020629536726317991598344895406938404889250206881664278469717222893889990188768342429902611236855623671515142756251999017485912165295931157844305312798129663279442607000185076115721811040964032208026566191181842425542368309189542900856788253042855608532569666522609155328991244846372912817992259899292031075010906685693017474687606150112915139967351371177383659996271253071019949240659986803684666576730260076471762082482468511775597610256481061997114344538456826217721420977925319567773643287220622537212826138922831763840300724375386678143024564731322288023309364450818913651072554826928282910093472223958036395760603896519633254648663887255049402926430111220420032417115418524182967632122829261351099578382002625073241189122163622376811642150389448819894337736355226697869996571620568584230541706357861636968262925564493116236207251717294676897017921766932882566325173944957459956665953888122865186665777576322806820691426388489825878436913605108858514836637842015144453047886034403080280517051954977978801048030156157962495912263925798187961293903138314134653441581622424768212481832716152156667652348528894865041263670185279086568045535859846350001068935202157248907494366493978221940172029065234929369564153642886857241343711674776918227175172641967806672970108253391361753369819265000754509177767499449796641381597717146411987549580133741059931384786619740021794891060331439866183467740641665657070882329329382471094850831143691859749803481624055321513037332977253122087081644986947046925456776101937230525032676833752236039973140741701112241607579047995846333645739015492264891959723901515682310394266174314309917709656457798563072605153044117620348431217942395810611710643022335829156062246341707109370698726627388217515616328910268680094651661551613090556570554527998765911238849170910686009708459067475176724098072310087394987961645321328187119510663263513435740479686154704698935621204661742614529905844461785911098798623217569708172429404738957958581447589561445918146311537013548395739023357935183649273371901675591201228338256447535311231467489618044596025839954511154688807313706482946305207244814196251924960936997803444887325861321841666813603902466768601515884891924150652984622252366465924726118575169730870154443022740406034772922700933653211077493789273933209539152020725767829449954221938590121712539200308589647778815769756772747515134646096130656285774908526437538050236207281893646752083823063146739880255109085403346469730692682316281818227983799943271961961392339836665479890374750021547607670083216584471382222298659377176778823490380452946829359414173209172984831975526661711874031669038458467443171557344167433485849333882812538472311917940112816262940380917119188504220336690297586633168751779956262516534329688170367375569878672491230034081846701993041641291220010320940845923183790485802014523928774037619923925905336276787047312409766083580566672387331692391915625290139526493599772860159397986110353190758559633451766578392514005040289168931455803022835203270376115387481692150988612296458839406211208375370089925233978409775127462331153375749258811466204677347145341665036435905626496910756345105310006047714426689005285573616201121627191686598030878375090203638580138392952366445415699683662576265928890074512665275447080557536339599944445071154520076571919721450063546702832135402039147197357828270421195642835474809300376338438530892189420357160022945307860022763578173521426443516541220942981143857438275831933234024042120530893166665959329621227522575251476872864856991117163242253642029608658542758238254005357569306402911665435167162418407108005620890621483541819723594693541531212003119266618380564348050544597436538530434514617130060191673733403753444130597090657887871604565469579609134011158680424916410183368647870200969001682107832839297753398064116291380683129424164134121176995493806945442404180670479360989336882321033611701748013392835998555603360829630111193317807521097249671089596884288676448930105988503977385234445120767877423547943791966817552760834059870720616450563738387850476781117400990679690128884310560786830164543308324831324994188293805903879726756861540103468029376341124934451203762794517840460021880199454918834859947935496706879708058541701294363928929336455752029560163841955562450543888077636113998273468651850544709489532363805847171054991365862844010469255910942035694051907192737653406740038767087091471139941569732033760008255625999403790826943664042378928774141690748579460092649653419971698524176261089512309122530510005586806497312300427737027905922882970356645488058021344858088973303789965913335678980927562993579347201448572415723628273905741646935738390034425016348664349469923884473341868739460955450720413016904137291783419831828565878416793119283754391833201614863960302559823186801576888000964112786346433439443539795496312489707193436478576793545897961523891999978771514321325748851034280142373437786079150695684371227138140172163068562878996547421634803543728496649646941428207651104267805629725623075954165582637974892357761363151647896498159856332919655132504842342342606420656301279139594946199242380392996613808783748811785094761895540329081222621012178031818367468035864147722940221153302542901312240962471700588668941933702013528111212376791800268948315662384916068124838969273016534384469346601295463482674405785462917078367684323468101056468783337692082154902532155125892327230928419928703654357904007528773627059785044146256373980135228938687471875635792631910543942272286792373914889807620489152473205126073150332808093806486184012184826588215056538888029513398298795087853448773862053141827294402558680802250129423928344455837723973300077935404097377820736114859046484184398904722416893196349580434570230590141924363689314545122370607864935531074426856142510499506466093192181403466029335369963601902522446210304591966598728855880418784853436959940205570097013524842485190097140736273907252410438976300552307449763134246298684332829707298719918318617150033043026584297628107794001660572788489491277280518368287750094150731512322177205414921465946384684198747914249562828540131058722204511326947722704541012820834620159139416853179466683868503187763500948614003017830461166576438190815983891444502259935699210728067947266924997675092011687569486768397971604502259727233681377598191967115463271427687399949965715268323842121783229898918669700030244875505513913622661013701391476175314199272418268827094736682288236466093827494462503585811615404926150222552360476093156652632557150457004423474876813158860516566819220120771025815974957265408780030573333253504712000211555361836133271993825113071555097775043471718911585566478501301851160971780077090759906214668243569017054226590482979613993260956996992828150892939482986812488223974030947682785373646017806303634704531777478724820016257215138216880753234278859031067914079572738096122558555981571510700424775162332005080575957903924730776197992009926523638879995502464755259364284332699141087894662721710632562419226289795436855881932399868202974043840120730798479788526426467888087791594147509840232596523570600449685358360180682738005507471665067475260394227747007462914320545819927045290618604758916069368276434910773145161059019543531559656006074001370642099055068503238615359861945948192231043365609454988431561260734085949024848688471579237573971786892309493662283722631240319453294475551345327132132340949880852631468650646764577933707211701279273057834793466031879198613492911250858638813120917672590008313613969663198876743655544413547734496599261350537718707845422434666919380387475252398058879512830897685341274408981008359851088369018170938056863435779991126359694228558463555820940030528606126206883788922592741424855822885166861748851627412496188953398634141708178982845993383801057068980602732710450919330848190336048574795682738849739262871045656983841768955518851955656608474663986572417903106085285315914394791187496683367476453730932638405242239187534883098081304553080533012595394634024810954912492433145591623093289228512472858505409232451929459412487985066203464302101069849004248051651417051183722880053739437815607255721229215008374486580389289063186787411660537373459145866626844018783399056748916323160596515104993603309306371070579028051836798527219203891403081610766366906805566332216757249533025085253792671188779299190456909506103178883169999297267791349796229836975815102033030664582355190015486379052428740672868278478728702386129734800994011942717522110274972790682086676348657936737258587493561934428361264532070458237322655546209309443013669312271920473621615191517175330973096997567500902485421682340578430192065845311176262493240081593694923521683426186353781440399444012720672043067861419118328773437299760465304789592599556469791935461835355066077094146099966702530661544706464809151887668210940626476281286917540026301821550910093809168548676183530932329588643463309947392824280766464177422037736636250998123361990236913646815655067160904476110498013760261647135292411310484377103124860896206387066831650958009416796143220822837270835470799913964334579042992316176937357789015982444180986577109955866844934559966624842006179412273579962299679291565233294897662376494471512840022078654013422031627298038913782588990495572323657468616782461613725755067500632218077577631872063987217968336769600208943854178438922573453021426511730799853412530443165057222386232527007871536285460567261520038709919610759417826663775141502941279551828807440268878486482702443038899371776945710824938880121890882515028570425398337804878867605263660480361089406208586049184457138197824762556701905276689114729021835843643892117516293546567757630644230183028757763359324258687093180666384053676538129794045114980483835627036715163722664730266718396815927380608616263120261650353051396324873908042813484380464540946782499108951239563321863246815148785043259786107154315422634750389562066485459821140121795248295509903874168456763671297244302943137099160767780264886968689596262495308625144046336028972215491579265872320447047546093307273275382257779956825468561723870288091206742418588164859898936114543885108557083963817930501699595018031451573403561981257215897756300693748804948792164577518635276624974889821233314161404011335419123633306158025137633435738362143945078513455102930283148497720552211833688276720755245449436912472436530859860673427261045070762126034192063905393425017676086067326197702151167217688654904194662584917313285324393423589298848650623443412074183156555534659382226756181275145411330817705522690639982240653599514388659563618846836977447039218426911662107837227356720569915683626121040875139836501379422531826892164662384205253813145983352448511454784399297726205861515958621785115042055512220484077022064575077241686000172272121575043556199321776570926665905409254923672383795017455256554382459860724322506494782569503691048912127990727740584621066156503923652820505749922463265981320498778138646524380739472282284696651911981959860555245638109288736310052161711536176785389078821262638664261643407995557315052691188014624367132991526787567797076135626960660987929628387438711262681857621293215024229539457939610767004918083035921061694349579648867987413131465602652115422254143735427471106117422009625459413527406719721170684930295063395765443626816110600302795118962238794044902752281019066359239876520665304578919787844169758012095292843175817700033194676597959032854200518877148786448069195905964643017544925868150214241374662669419486161323019569842151990084265611632086806204563487988268705073108891938078228096851262259986937688715404093388091395143433684596103328379710403029321632747344921213346880097407729199315237569863066477500172336001154940324460168602317507180340944574479386607865552276680244862179209881842552774347770088182057893370710818476610536212601807381432741899290794255025113459750420611211650379372082923762291239504029593753311850975742163899953287987414057917741617494691952974496093139340541990433745929333629581089522957458057556284786106453967465328302714968465188593222806413258757646600524771571458482312308826526433425830063801369929248651556672561825632575034209894521162451353177660882386566370524457523493107155499612280768268793259558573743580296620025132218165423495322485023067192161091365441478782930984545693621788944142860908069032719312897253123525933804053573449061071039494991742862758285752029437415133320958759031733786099881929844509076185438268937641352397524845769803812481901294651147941231338193518389278576661693940539128423023816619956301417892916532874803337171830731273317033489792991459783572984300309780661394375422801550747781375174188942961717401542494255462860248856613518583471986728975472102341338016171935857996149024732389224196030945331194171591737754445969528272592065701640706268758581876028224582260092894388819474599088421600884732348659387376386071567704553764731354155452813632308319707210122792342871709252719241602388139123090155921235662967168460673359659591372395246990918874924013536366850705980187957275591678609785152505360290991507427190119437691598790611334595594726688931131540347043893534427090260964117929405396673830985763778149069898744885296994719512049050828881778732349989312955283389606426523947430554672733368784278481358429028122278878900307111837246586099717312525330586554527151125314360530296735302058102485661287325460591752049178759720337470721973789627599726404332893300822463789650378081618169800779433369600953072232058441932711625605453554560754705576434897428862965211834842112688470248010148563156533399577406053681182912658633580634912448228591274020110178072479070231181937526618171204979489927513755340235324156566266285440084377713661190833074324852233825345520055728947536031552107330788830666674785935680321739707672352369449111738514544545770404922148427790334566527863805469857887507649299650940600370482177848748594528350198958225637216207656113287099161348936328420443263258608130006276539649737982930337233806510171755668257206366075508165033131541765024116724653867731910703597491979761314319565769225605139010647737862781272787987122954172271945090454056945464525208566876648656703313617086886515429605438594810269404071341394380761289843126926565705057761300890042697716608458420150176581586954737592017218695893607315972260364253898739244325325317756300766522682806353505159471154399072079377234370972778254006759083934009172586140532406590665542453505735290820942234931838549728820322818606135364116302592648676396912558306806577149496700055975270096753110936629594838731440489313228231288425604020346644932789679855946674741806793214440781011614682399600933731533611044217615954204013853066043938885010000985749895332112589525027691640432663169347654024373321335957377550698665515692844693167343677410869425720346462967150140376671436335118567758870495686633309203828266101055486805316406397758904532992958104693700678113647486032762404607438241248689234152461025752823097472829915541070603255989825390477092708262466510653595045349012592764940806947033344966260716240459726211551938121139043947067604986184856462241066400046329324246116055199352281537057916374433844271027034002352382810732829640683062189187994306857492437052667852335153420966672330183652793124735112767912672961770582384300775744902770799923471817942842174668430659625888234755094244199350631034491492410412280453430113165394381744910089949151934061763637599024936620074318756269161166913413030508572563264659285408292305201809059619713181420420108215044272252521766665031239604377663070667236539588755294110404004479396105583639454880248814881205875203066414634189147651879380699503592410776528562736014655914640175455545982820764699413302376696965596011937013436698539258756324600675986892054267059679068690860961896264939355312508707075029701274777903043104499804852773312188847263032599481808767344957106036613486428940048281587860356737677996561344166885069505603394769044170967684751665494511887760149116297537983599913659696237246343804400980646574471284765363333678000055217784477102189741167155607121228091249399282850048134936809314136454519282195004198716809781988392236691267535779157345218308393848766469122055115536383286947449963818044027896112337162438804892255091342722555667416985508073495485504109285766024895379259238037157381036068633405220061274923664676632951733196779134123811249914093725001863477605326501062439899687545358181156597323740159980063076382204772327141804511840485916751311820860600930036204211742234382352796919669348624349707518032168883424961473094513579296850090569076893587292376224829373424862138005023883158604991391686347508469679967916590997595802740434106217428759765852110407842420840704716905428156721793845098966814068236491834697852075124289734067590047110199241830183911211768023345922644769935363114786738688539198717727119341750187757832836111762908961456158862074343451042270861769627720070209680234516689865598229908861846301289152908779059974735139278196374680118716571696310794548819589800644189081366517867371828590114238265817898631345625981952877907805036962673387759004186225230090783759201092060648833368129234901072926232481042133844805907312922432212277051441419428903595268420235716123192096404346301194017768905848661238249931329693097419221301707594547695144643858213916002334397587408866941678761359911114448257066048620897969644971976590505798518752585254688427354974474804933752603188565112828904678923957525693559519258671066255079682426922152194538007339093988937720697504749311752807963811607014483925640153991744017130367231258972902366324511204625011280223107805489298198330368861714069380199923604502272176133993970617362111525745773839813580115396220771179900561282737777045092340319080749604112533040712379506113366781798412742446926759895768090915756874794091015502078582297719581456033648077178561534272371477910306698477757615163255525764924681805076752152718366217628522055966899925612849091986962113109565011335962793847755173893857267244817343170193353062375361753013874189782187778623324363443967460863238112417968251546166338918130327158723085861710802788373133947131134369673123577647193546399008778809095041792889715999094572818340816151624247218152645076320761352163810979737501424811896544702519064431473302403264936509984741459904161834735181677493088693935897549826069568491123626778944993555296081799865387327176950624581449015138206103437420579757561755753142792624931744308640461293767951253661158736930097859517571318341698985791094982123372401780366957459795792365105444353158920389126986840478267975810441670204749159856825200208272687494607683018766692110512088086126132787995948167501984504792768178000917987686390187112438976458920518271480224706985015899339564020221697400967045904862113495187906776736386380947916585689936307930088211153385850862418265238528136584142394376082390968486401048546053640775667769309654556687721168837228672703131882100527627985527058725213555473764726353338184589928077700745039213787942412484931346121651802636637612561290994587421713524666122177308558688575671047920800419242329747126241910136902025014306853276861559672283683462666732560331121242274288192062044073378738852630944888865816393787777351298947174240442267415546201626204774998942426565617297521543964942930943307146102685364277301426198176221228617039950374884558147813714200501106972865492567854996604525090072121290288971055133221199888591642710520803703653541756554754763302693988536920400114603296820672961080534366415180268277272263905247272163275594406058665764875704511985347055336507618614341207948719628599739971466106256044241959714571990954300667049373248651685186400356710014870087884383517881342822798318205659112887474171622607893649733114572613721257756332562534555066753001159478854979552201005401025211372241222950393732783514654672072148682386284472627812643792810889569240677683146184428694012955564046941685662258170930038866411509195074328763802963696313440810938784411061295625543570209002289721246924913899649421400872970594421263177778796026510567981467207397576726128790232434318828420867455297395920058965150700249949336655136976313489052916613764400521917380408809099605382041291780422577167319890011555231693341826869071052335020600940635473973525313278768199952825645321028223752022725846318572330678292437394222743577802237874991574706483725004411132992691639970217281607069295252081816763094938752956438578517696593378155539735250521318128196442309128674778333710083651435280954050457963949794822668477954442078574063895225257438762400527032904569305401263077848525346480692311339166123197945698706816564079810896797008436470185253975039244594296888173870495267953796967972390269515297682979377976721118053096126461333566383578041071685769888475244961430140931121438483465206086157376280753206855130922110957559115874473045476402421249720357655857405672106706821773225503948854635695641270909933473152108283861627634756523121573205763015374531779344735409688702711574458396762052929821841933342919159275483427000951448681454386127527438877135528184191089410022182451155913610582439463210767681602993705409517574095168284163306400107562723992069955547792712931912071552981200076341273812248678432072208509330562430357638850639170050387026077283184001186904644420200393570554735255259882229460918646621215002328892021008598062731935170708142601598995616022754308775415877340430019069565077194339674846737065600280910337029984086752423868524932629556439094286895691277940157367734716115793164658667176764963161653447520980229418617547977726006663052075367475824827877208686017529105192684867905875148766371897261924703268135898519805010938522870050880034966670672736229687476109183962750579410411498500778864310394288784541925394123083803619589347585160509645310023476590924676820920288239844046710094635957988127137791254081247740333733126055126983311524890560624081028914621460159814158554165024569632073743750695246361061915852687438708694233243286141002448385210215529199915898062993011602759781693362936364724873861900363232378003342043734381807471784967426304817242674178853703957938014450199193170853735781243862603986414699434137879384228016738005294263639981510906584954683149058103612628477984140373712422041265414374964782349744428516642092872044012006303398733438672215791947216899159561887775974799846462598079962258621176906494338037877880997073293029641790270216555399332644810157333504427246844923908730151781985935502021270205785243668283181665645334057106381092715338008260412413188116472342538662429329754676166210831910903583402310620192271014790943619683979491988604297938497094232895106469238559683561967381840420993382068698604333185292870528109641735301870923683371306086595731449387710645987873169658234263909030948645386144449662614633779358775734195792395197475001094785661574057299876093742586347213993277715604280516682879074408698301525737396081731465635782189766442659659170547050198792223679399583810782117561556185875531428813688991043855828398699869213458524064615387678446462194005100895806124353483034409735354496508305119158881478232724272549610040296712742468469966800226612476312204887635968190818563771385530901738058505183277447998304237758484503284071881387761946718665727862246863088638511530531325961860257512605064124423941099683233932501734642963328183535711383197936192038753250344275060889367402297799920914888056059395795466275441595423642236243063424743905705552105487126701102416981272305865081744045214280741669305353711689471825307199198064175941112252533690313822764850771074106306970932382741665997654610235584222067035546431604094155784173436496129924558128149268147487647678589842693185998960689102914753873166096029237148328808457012869867930294123974680179303747779321148185873140481556296118640482243979517162714108959217745001618839583109611470131485783251494102357910082790444174650610588126343296386914466139727663995265688700788976836626590126576478969780179589186170573553916567230068992190521496610036580191848405476631342965339699802054070759039385911158790576714269179221061653546170497392533535492410451022914643769461381563964041837251007634029022411407285957839340511325454982407213527547086297294753786937456656978235694365384747671860738359805259000471865721477466465368160303720635873977965931375595759343363416596824722584976809793124794659639156700780855655083252426228188142823389166283768271784173515885513685736251718898011305221893625318626312207695941467239859173761269528201912110684737565768377012838082131227650277524989720509503397455061962460238467524808386724081128521523696983181193634300898455767120061090812424527604727475592086723772166752068116818206528522978946455889214087701745655134427153924920281497326639747327014878259278566941879978030511822379165758218386563067332894577963618536186544496643798133010423654201057628310328454254031397401580262433314631009196116419596092404695503251063201816616151910952500581656345438497024175837321588221673005095419194477864808348645505157590619292960924384809426038888203910927435724465846597285942715908683989191036562479240393579354825168280183139261941555462056032237366876281510416779258894520707953074411091466945013722948568212178395071605140486578696091434722829092233606588117300824517257561028776611214760293292542930584980081228781581653841021624912485132280307217896572311607101039288933706250838169088038845558884709689216057521930267989012470012862830247319219265304617470171585130634979018476887123741932827241567712257439499213957282074291092428167486054855909549278138722680303592590357703047113082278853019848104019372807104590135077608174976964664299867569917335069285163424202875124000242435245792681140576447890862837699734785554380180873340525765649475919750074690026188339942182662273213696281174138849361292140969768104958276077595836712602860396793506449046434160801861230901583736984698969997610562977229759497994291361773899903345104475791014751016517870994173560341174203736750158350103541890020247638196575946504564157870080864029232118744170053792127904593017047919222914374329688673779720543045555646178055404404247888353715144427757647086307335680459192286813919715280444465602398979347686840215231087028809915721940629690193364303018337024616226970292174234746046575817037185560628886644758906624787174291424973351235624646729942238882369774991859302437925971866342063854910084128465602750725552975260025256427500812473913918785771751814611979598533640186318563542091910200886296357564500605156619756467450559493876994350843171609337609905367411533207187694255430661727422259554113727714278077035526335013433508943191728893558768175586146007282822527747935929561558903319837726661188447094917065712123404436410625552445606212443425894574643591228478298073223478716431582356099987442037766416473133189209025834035368950748176972843568651261054403595256617944496262167916525200041980105826725016762399394794387737855810987498497503663810921597219087947042790259324712217345495251746599580665105158621136358218878197301022647278881708597532065833365311277307348840292969403025875177557471161352428227851966893975002372337340773586982594603031815565133222293941406304243821518858209730584927096526600865946112017381113457000168145413310426600771834202899689001008888345058681307700030940225944854622931209953593488933657330791296636529574331678051940709931973592998105852015775684278535256406138829283274360004939575266684369725317456501972627621338009388491040998111645327372548142231491111111687737770146528788295213529418392012604048790315275806293080395038549638778369502926947021224661637885555593154960205445832871162234528791221588462226147229385973392705383335820945995798356961260108512892410743580162100181048256198588862049853029400773159414128221070540536352373503848621263489773350160140113365384503948692574486741083495021203940753995989775355543050986347908817677861760626792395240511985046166962832311020924298791645690415619260017761635995774817687959986817662513362068935261363840029934606892879067992844762379913041734434249661673794157067159725692326589804916407023173025292484910013495621351183901511948394389620948983628338186569506257631890212526379608930744249547530121436343000977308696787843678925125098360138813092582279162925318486367273886039063366320693910702869576283141151915084692912502717294379638209920355712203394753027894979260597788301053471815549894876313389739122212211602895609799108837023334877834971745967545569226438297114311691153760067744976487124940622263704524318265980847669499615141641968098679572528352683784704708602601841554689044609738899711886903582614826133754667125857585250550109835305923919259461667969803330599154716231502141324289332608473370412147364597663964791644769218634500524332710895024991209236045447010026389069752122909845436674969995258814792615363847348951381108940646363477664526069793110284768574828998481777274419870973273839458072127500988505199905559700416213603888651938797217350330042634902600942397341262736357976933532024855499361206666131647716372709924446966387840413815153821435218141112272167006410593491153853150004608717168718529520381555706839996590758270357644677763237393246282952648371891941347418307477245789470385674573288803395715838038433264727622055001980715674312895489940041099447181875843724631593785078372860536952398726126972158446320861409862091629599781436638464214222515641253191203394235251232706712799316741289412992927576337438380744305479156373789150592961042888049666404986220754949739169100478571270007161752682833561904154041984829054669255655421677753970898937251262964411028770045116967451897766763580512439646190562082037135098463644093128167402566433402408179622124100463938211824545011333215650348377547030628507634691068852172676561609603577932104046912227512458804811721754284420302880203789369827563517885064556967056734947501678354846074923749507747900104864763804730730368693246087621960769370809244159150643664300715373636113437673077200811175229061520110304271821897864048369980814799344383627037433093068235626842279577441801023215515190712390023470574302728793073409668657028661125638259693500148132947688438169283471956103394370496635843102708505729561325033118383097226818491807899337796168893470614707174642384439482460747774699464310158701801060754091471809649872777595692986329008383532813076678452991457638831354563771629070532581831180539650763343489184701140497256401267352819421634386504862121602412351381457836463929521992993802110706920108706144994508587745688892245258864699431814060930913942504676628987264116773780245905941061838916086086496641227910647958971288348008411219711136793795278735683600574146958393101076387228663131912194619685511130186946453395816817181137180932849836199008622378411210137759671252178282177026582764523673476838758840672510230310297033536543499584054476313687597782252179581963498761636944986998340211364367886791948779517790448184498060272898273441733969634580227045945501173811348105782478842472298566464979515733610421696397286438689875432100860316683732943533835272951454581896824733699051948955301902120109730175934100864595722756274045752876709094857754913842354727417239485197222675388303363553121993363906688507812258102858549926542035684122644127875888899272847581108354315719119183201926687650609411217532903214229683106761662579541762543494533623693776581868125563279611809065016937262177200433045045958646114522344855082058232410629363714621136024366057345466371627905298287394304211066938142437767775969087635017144001695223125788554972604738660354956254767125616043358239948603635659126181749724274027085260406833361437509948379668447900032097351130468949508860072067796194751529577254322602585448400973002833497086020664778142036634027482087070530213890525855603058125867344029019651326626132625250377345079698699851388690800659908904799341303485447940207493802279775742915984616656072599702200356600581216713002687822603372662404265310718745168895723763382118574262506442215789857190169224287015395532170107246191999596186638749723166643484967061313827907282971548320323604962991879782155385734744132842370597144762371067983023153483019956039027668642185440233006397085822443807128963800328399928794281168071760773264850907234615561315453040237482514545292307789967276857693061385004215814404917330276825537227403950268928359545612400768992016839445894979197048021832163441399821465109290238618230775439839505534953985297645943991792042778438898808715114227792235372616018901940384061185218314015630481580602302600746110805791092359435511151805290056996932176733329104047851491272021078790812505312670338481877529512914039130721178421835339529549268078262208385762584418782455894748193279013459893636245690185684811877632457625079566928581547236455292537178940413387345727091922646462553574314212365965591084105628920710076415323430474120201584372914223269707610032453520867221158287713461549539611834693863884259040265707907323252727946959835636448280597024818379716399990595330412378208199610252706579946139446843247310854476740447941049542936368336703029213671414934219421264306286418565651408749308388747277901887084344239291391175822513341107944662942463165562700785273725570969165215561052506536345394852111696572280546637936643937551471828805280536453943719405064555686451115181150215827364726583242611517375406427741093826271278449394226710165319884297122768004932822958811878706318167306337222222538113585984658364894466063022000600410881757644088532367434862689191879643152744410754283740468654541551474629906585916791673752091817213827215281159196355932584765605140125464799710153412854387270833996302382664837854932106547908885819378524005563143593442294777781039185974934579495106141682157982253053587471679170336949190551945413710101091848668585094966939314304231417299665758509561221596840381733587682166404007144297790236645658329427748295541487873539970353490227151898051039526844483510916979606717779061281854338470493698386623502704923330444688631431291808235194224771627827959337122361837923886321536269291552520939300951612502469251673447464188704817179797278215301658725976037986389713709645023266999474611267684941331241482734168741077139544400489006315566463372143716192787346890878698114157229097533859369218089816655363105461942594552497765756229101437687154107183602793736924271956960587348185415844648819101519760574195781845704964032889894690713213225611190669070828577254241021669158560309222280232545996621877784655463941130921234396251354034510626766815443512176763151005790387511744204663023794337257121182217849324490398404711198012449423437670760158546789341948989890054891135301857138545248112549169699663072763203064572163942724800414741765912527059282155864135350181305314481985231647034873093734478655879313906286051284653089727128416154676664919647472008469463145424190531204253565678488850816762201423585902238000910637541345208038212444440595859322751648082358715359581921407644072392391220955313102221594661427026874537223736737176390321966060540150963086983772141132646306094345010071159545452935182794665291538315762136390765203866880321487985597176100769405441076530893512770366772674994043377107354301404312280501792670157661542921600424992978039522042622136548107591712187977468449247638847113098679565888505983520788628378407712980824791210660465207517884350557986679969990949550935319222012511440219619010336354140281813903202992568765376218669395343145204182531694859385919688714062776970711123203326446698704228725688171991555382165184878678886281357601431100045195459267252553953436920082226513323923188174197396902892308434845551441804527273559959754987340363832506712160776212403767690505585818154168955755414129837950173449579609322193939258819293902151746050054806863732331554245721979263227577408437026011423222210003792121188893062312829677247656950950406797651991990900381890003376827791377983592898223721745363491498477908798330089815611318493929282861771218805001462512673353383256871326771664126538720834990450511881455219279627975175494379088903910356192371555946587987382158842023583822808355511905955560750272466579214143416594277948659919486175555983812315942286875952075166331871644314684936363443013423169252933267324490924404645005474840712058885674751982117735228481926802048828825713427273965193146215946706064870161037581172542015514874487350329340866578275145587880929960428306715169693838626781226769949810906280049164854233805814762496893421114622193440553002391236388525944634404019010164314692746075224160298189468062964005899081310416168435310941276911948805752808146656488375703998696508940268054444248297055981597178855873963294747805268141511344967329028287643961970521839405978735701064875070392791142930695332439102027708444425534309733108996131940198320509964769108194567603133089553539313782860636412316610069203321504652604641277396076317225259496674672316052876951699190443127797910464534913834405675612006099221192823868723881946117224239395374648658488353543675218424905426432782113735113914721658924012597408136745298427558885185645521608544941761378295301662201853006698077701294358435761952094850479354483945038805882842616544606653167827974873491638484614256160055817514100927584394164694063253975876021380516965853388327987787344917000842897689538900374396994012528888983967334860862748208002522713854587748550921989809187793494792087754910925959757949976147647004313389920376212345511384107425603495860914166316752199124358279246281474223384796450291148986137213684036646817821361188999955226168915806711758152706999187183512399285947705521396104318183092548632343385978438321025596549672168353225673069678611749620794930860486792059773673103300877534319263754349064745667705937307077904907244926519688203029454341769213687641644969298734074788186142424935734032320602568191809533932530875122103249700449466505703773877476740501899259548373214329461036940296104148206586632861397800654313788656211793462586388015538948849268789372753177451757731810538240763951406676317273879853685310949915493092270873165069212239495200800053385270293440182083324505040512681662651594004350578893550831841152891414409441101837528206711106039851315822490872783841347132558833240048517060681905007179280691869487516203494836067265611766770538716483406947023475119361802469525103785035935554917014631169285060390570296040976578694333099122599277633852117930814022962512663015412423983049687985118824812238543123156867061677302522187619956126480870184482003913652086863456207952598054964770635216869465904676824201483930023537316138977802070664813061405553564639441442346819760557111262167866812644254924259145218170056281587375007784746160487278007019504141680293810577420830960724112665294927202493076739990509296669746760359825093235023847107896415213505481636281876641396507570784830675807182699267786067000375480361374717349131639778575778205759919301258150245329370157783217434610823923033188469392960856371662899978128992635849250488914177892077058076508000871430988540174068917941154481566414651075693752739138628943992744009933817531949374413013683026574472854462304659193862948462737908330803408265001390052767141056476998257183743427778518726499262977907302044858204379938396389292965179790276005214844149528017629020969978160176172607455631645704757423007790636185243790177296760872465737610716729653610958524091516983416545444881199256015496878108646944711939715605942837666731853222558759304387542508208000074141545222006613775542886119122746020276878643025857288362450788075750855444677161658258358450980087286207349271850385846643504549382176778235932830764845308220032670433908126879645643416696371263929224392606960469033065472118428179264050814758123170808119821512801766923075009222151111844286251876934073952972335521849860155535352085736581823005565444752795264084517993798654209886806697856364985685978919501383167637448274148018478568450618609606988607199679183203020361505699908931939355300347436837314312643880396541347994312822490024860698831703765953790203956963857561377742324065662440338649042390236222302805555955842264777293417885982090508435793018800067880448865057702725760412629359490275375915344060635241421066497584033648328955591948366844514783375835167559964161647235277633690031073906313243186529864258758081155160422854063779880981422863303485225328584285199887482199932665585477061306675267043087617440439920778185649795614962649521485312757155972003318600855665080477508792684312778773184228070807243053627896484516005307815669281051037743261843968109212268698447402704958849946011423457155762287054919663054093173727291163471102920965232469595774542454931642834183874849571474830617756859819264123985650765110087821901869115911243234848515299691487138210294765916041836901346475316935786655387939330839074216497234241095717907532941174392291065137463546281150259962954453687847793916642608211176552871929365564554691083442169905919481752809891162157052632319593387792225985821937071597327887814260887341405962347543366408856714505694873079522826395510198996168559340075509641334119619070876872306646398097939222447378216407984239512550322154632218382142886332450060257872504429265929019948625207803775204851555919394826045587684715171159966593150748547638572427741141830797895167925342655339410738306896403327891924097643181247683967435732910454939927482028164853154782122397455867243769958658661909602357555447272432742162149184627312817501023265795151689485004623459993704272693538322086007649909807033312260422777955995930656980056137867815767894080687251774513713052263139912492357940784888772173934731828084240676699048929132162761260938420488885221910494032563866609879976344442102253882606767852627966840909152809310153713742326532870405373948970268490078438960882881572928697978630297524262020245534102022173925331247774283082728389751618484565117289045572038754363052364993973663277936507929537822310323727597307806809553404079668829151314725134286592654934965361734432515118198193518230200011536669490065680356499807908690949812497900305190664367358526611439456670917458508570430629362651045407272187066613269100300821279274661942741565260094116051558314528866921219305997196620175891718009191944215011141385168023386215802820217096689310763286258606005347526569802517054256352389102287388891463912341777998098182816354426189285632198101760100216285179796183982300074023142079117449194788306887540927381236614775839993960352914520519765524854198418327020183176540740687991402156686121856014971838200930247312283065181313408647643348482856959795099982166932084323485467966769110440291402565884372905828913235004860510907038802529304129810381294697596810188087328430210389851718592621640226902022033571513652650591554900176051594232793402609634087757826282373224951835265390682309580363642452340947350215421381852687567959376045761929765403928520452435749147845300065607163496675660152043704286726687086508658589459898990469512248463362262317032149468543916893574248564294208980877348807971924916815667287015304285159663941047018587509034379017340565303896026146911350774040933569776364793539939248462645487108917064038409354944813008533159588025898000970301533765527302137433530500165377436065129414566838951429627879048692268387618820466644262880966024866921111501509435818400489067113602699755719274429437304771962764889109313337074982548301898330573153460934925283554119683702572341731222203831912187903966089518843707765203104143951771028460830004910909284502906669222932283687222570871046774949399271694714907664748347916045782854215241378040758541818867038923221600100791995691241388914124729991877648719901395952282693216586966368219990047967958463713112744056669971664414901077604477230668446600312984856312306362950510120953444981033633889937793469466592305015421678107086270539483797681223233556568042225144047009471188383164071392381668449241299719657353226891546448504043356211819859480766172405712811337226487747458626475947438695715461967775728892802414894151131093850885166629833215518113862930569762897664972334791059496364759118851660841719538130691671450642999758361583065326937266219987606746704897478638964090160158963786294873154172827495526862381952469788219127445319188008597968768301122726117540985796374075654975444654672588664981272585954891083182366026044759020726598886051650791951884920486010322821168983734637312653066040999951429044567091037168686753948534938925346129722763742532917142058282072360190346955333955531220466002047378203030162001583684007444114854219438974551166095911898627454994787104789608206366996782584532694580619377149156640202396115802444689133310149583385923850980433091687363224262418478209853454542667222380076540242031509385356389521021922114697647802753949736609258725055381289939749767200916243576640844419459808478930398993967859772168331285716933180185596932437252679280523518495333138327906400578868667696477940623835626347684613584624259777509767987849442871980862267637127711597052394145930416913948071266311754171701556657276265994089439562573746667678212242289417357547045070240439075659584160086037789100491038115307153082099762335190058382913568089138168612696257276485398340545393782607373764547850205287925720991163055690929646313862492669039321511414772043808682892120041286020272567543387204902620424004186072357737405583418865556399560315096235367300166056657633748417531244128604895235111964557402112940203632780251807434757646895003069919807582123825968879288965103238421755620524093007320551692967487549720243906422102995693679525421722729216121924590397749906716777286975753362557181590218629447848979692369496693274490460369056893145760582375237048788606675892466236952590754490343658744471454913460045528530741792879509195672995701515952168765394590310810921356592189606892833538430822979813260501479734028981096579051338701127222488171756061130468062831260382329965554799829563711290807404648032737612322855811178923015681454406958711689962804723902699232519996980082748362633541620772444225676200473487284289258889963492878091257381369337752070346755582162681236426625707486695897407687663563287896936387243630587451789873785776856928182471100620358107009459730436263823350535586087981268000570704047155141196623754053561759182254716358198857084640774360373086886604519671379588839067013862720160179508222224887852555728490933538274899449160496771908942834069332837664289879234525985368977754152492319357862522329966728955747036069029101189524251623795519784764028611073091693728069167860847358210546073843542811142537674068967847580774690996728468991963433264335244673702269861933718018559075632022775936250657597402810816001753658372309569491397212293952537082223661175030341183234911092733308526970792589501313077798538721186689237016952410173807914044329979037275785608214417909464407858029825388709445955402630293508558855403345131823723786232911738464198067042568356388696009534566400043802798974623186373866278644824951764824865399030216920241574199222253759723869725223498485627473473642073086634821651904944980673611549234317372709430745034719908284701512124071048385079602651044857837921297282936517388861748185121304645073059926256180816773845109624374548207710453849046989448793664123819336821121415620006891628933179133264002895341232046823517341325972103368372384704902408851076814310435720883766573026533303039918731006665589058817065481841428479548469426500853496257476634552391289771244084992432888281573509633115595243415426753125635751425852989956563416724390471980962952711730929808014804924622537532909116317799453217135028122839488380336263574207041465098001281667190025513463420723080046397591162366125591885680011452761554604752316061416372362758559486457571859997341583036682539180483330168627934583422312516158004107278148186835134956581919425860060353397919729243819839391251742783463167941458773089519861168414847209957018518394504294318041798789918305227753066897028257763559099895876279065707421610528592550818197994288344354491648186066859709035811479543244149345642427692846610000510607671943627795365048350925359522535949907946806295483156683333826036913836569379252342531359193608026748462277044231686258543190906127266027277642256299098669066407337700757326375668848807542096692130815527150947668671984461163613106429188983484664188095616134369738140730609266660921196664608799004069301451730420423201567373504789602901053703072642360760444049472955700965490729326604512563490416477293407400308460370857868890072076782208691053185111913097214995221451214929500847102835573247477306515813918356434093348277388923362406396205231598107613564700693562709183886912248767461438923283885775427659188325923618333665969701252087749042864207958669267585006142721914208442438656264689690910195113482865442171657458185761907984298676684063253873433002812312184230529705649262848992382916515539006952045778498736151208563665004482373060108363337839375537787883926276366548560230031972592221687490051799790675261121861762273892682752918558326683176810127452931272493963644101418024399813539601866886843822138241757740250924266001535100216426445358794756622565332744110717802796999145942720402965637587791098405797497512491203135307963403558607766009396193579237670203392625312277559433681363153862878076884402581230382922912334841703289502148663358947412611315454729711934438612341491409635952238322919205630882971935221239604896822916913748159505445911282961167719456814392739387056124943050522807377354688979666960842653039752374525712653416605427549415157430894976058582358225930912928467689502162596977076662011176976066919007091704645444091684245042528826758793994838395852291510637961113037653875855822660207815692109895663932798041420211881957595818664873327406718507023267691119005812548519251879038427102770487114870260147006254767492168710019991573833149337243741805727147578947721865609478712985112505907606534909871982838516013701906089212192912222568817904468744451137713484120367891556496765672255780820168806763004353318698734010861371334839881983475535392499711897794719199494400047757498548632061453940796121656842957833669104295751714015183876424881337455826039607481521656868778620897629151638861603205763701630874395224105538227813215385545711812751987780505034368847978279598761876189873260020189491566872886179639657226692399600776559620897364703039599398283935331119353748359334434285220716282534087576818600259285764359192450557852436537557579659441286633511915693918088832485390890196490467450384532110821395108125397131635856324747647755304666824911966374562342617332311792331286697740249054178713530618190836414168747927736146632218910868512346234064188942193317860503475797702516536791924605009219737530118450167135805448507388473428664762739296618621367135938342588568912803089532753532025393294238400219096552125193334938355829856909568298416949803887034853176315607153568611589425544801308555812457976761390433845425648211620110936868760566167266432802889868187045144560551096032039774798641707831336120224022964244709559237095433682764280075992737753912962356924653683378269875372646447149632478941027272978452302777800882320527901042857783213773694273060727766214304972312736125439633973973108879887891814707141910852104348815946733070954580743523173404202419519228324032116360889755702318052746900033923225120063555459673482486878658712653852355182601214250147542412259158032060600239208952730366114223364565962653092942594566332077129457214146362037181429533839600589344993531506573459072435935438994563089954799303661989958818910680786219297558571340754096556273646103717999818023436708517729867398910055810714504442451089281579359963243579876586260545913407265628603313879317529992408141498911711955141027570849467231068591330347113825620200955325033371153416752550243372144863478348721684828985262860576093360389406598318875696345063443459401781434536156049529908217426054891013173598301841124383304392165993398460118830322801543851917854000142800618426420922631453982683060383223242890716499041436346989573702890623893228100140654241340096443692723054486822143483643674284032951859890498601737636282605029300105131680973884010804142568698373195039626058094159449926462141018548539806519590101869816986085598707722022433809714498955092154598936118132017827884341485136170385930184677032066728219757901595420844802579462572569159896704657188990749707442313279298877546340978888583455098883304904081725219649734046945370623072731400271948507406990051580844201710137344331221164286003303481160305941077985595716063488266339086374863483501340254832000116217099596098114698027836578703118165175796829571869806165013413893592197004784290700153539671042504374176974987068091686034697301292602343161376496150460834591977233882365760834250232537978068612876513044499019524596831766914118419178649619235619436480667195564875981208655531185024194051174313238681980864618565399985691133191922506127893584992116408145304650786057587629758612011342149170517741739810388151464082023781130822371315233648691736323977109910880725079632306802334048450515774039713655575329063343150973719420476607446911917265879444405036202322242683918686651565015867916324086571859153941102896509126065144357812488193540669288782930260260226658749246543081406921932382477024521074805276035266305292138705001707229315534455512911398410662535800211377575267951274059438281226485676857113977233022016216371993687700331668299982849847525486383456624719569820102416132148268848469976215641029429065253112576549176500239020884170083142219254500089015407003774965031443284857444268365165993662133380555960554079378712467324173498802450910164932713026569752459512257687611559969398326628907210439364893786648494036054194735011614844219643998731002958546701670374014194989683753670293200845937574313284209128307468906533453474559292399377642793268796124906160593302133245625464377416896410871674527546279888851237259242755323386405139180063579621886998499267899236575443117350153900856934320661168488675300286978376270148828719606299499260819753034483102772371975287090614263584829857373726538585949748284937922249678531209885500522096151563413790706385128245040619647825522930956620941249014532586906871292317559048749255575555187858979115772718102641783470046948881949369730901504550931013828358831740237256681569950429284372319101937039940531402552895957736346639780759258721299117874998958652607332970957440044714074829647531649419295883264688545204073962234640456739655443327954867067897646306336909281386169698659385088337300648988060476275316290377489507320354181595130745195806103175376298408961842436359122412599003107986425720265360374344306868489567115075086468770499299497837945552346509458807387800814488447989801615724075163477889368065522553383033824399374152006676112691464161680094059744047288899861177072410752718437000546294162322628949455522934471442530648793745437188007951061519960218065084548433905963247513329765280827634229693373799063855092556211312769926003799331011728775414999096458483570487174949491184874925913224830455599187480403262627603396090483456192071905004657585027803766735525530681423335248628360467288594083226378591042478248200432554892952789250800819249442980617958785126680611310187116931295593692203758305885681272286262304940485098683735423048294204554487309286046460499266425749845615896163772540214297546748629920704666907620909351345624950349599221229299940932798204608252117704734835265327226182717634237287447446269027893337976367514015779572279184484277643273169954681257646309214519848515657620254089686667892222248655391992407616936699169317317807907324150814410078586013075971685801457029609052951466268411476161776134471008618274884759860875391073756337653706753967668824195728309149651017961481839469856425937468459039424160717952425666145776055224591586521979003387906540540138531129707061859980202076585097764482570445429402986383526016627019804317963834668422900135901178752758782588132008412153466579346034353186676928875862748870993829757779583707525665897145001387033644442872888931815759641200710482966049861904540337820884917490747432937148473151592864947670964535117130575071520048958798934742080328542804216691094738240159067336477103789191245231421203024001917303516817088463661767779644621114532665767778376119663281882593978260933442015528257531607351438868732322684442719118466058060632553270478815649847245323174710078548384985617562226194051817383656618013278195381645614490425404826259334230210849453881702618497026511893545709584065987972187808419119820733040790871441723645633233305657184678006139242542035266358282889348652407327088830378182186706471240068668879765010578741918855180093829164838697658586073476608115100277876841248333743842878644910818478882963378841175722360031426300345028791851323964555200951429730521231487842244394009544069266700184223201227454395693944791566572300956698586739526145279718916643882532664530236193669276817907344503182510493861007414780563085267015090764891467735402138671848657288554237946505393072149979376890885728592052721579499996403944542075161555294192499401400631359593039087185753112183615715687151469910116321270873349048397572720956453380068003381935323501625066684233084568623992611993308877584213298870400973361276019927508446734286317805428325129494752596962472714325794236809688193423218925543076598330790082676444110343892833992963168907171218831720155848128841712016545912314978020074305097246903024367550274581146114620600747735509533035429564496305388529401471089537324471243858101063262462065103042078469016214351274877132128453209801995552040986424734031401496013879275524781519185160784578244352320339167491922788352493203872704455871133126622180123249564428679800435042211830205266459106076819014661336618821528044155334470972820382033584446520046932608572336428681010121532271584473570817596666214651994543818008505603733794512194440374132056779919883450239768250616057600653801360264148087055678136172671412793272242094458197452557254770315281631729542455855414911717925879269371141148102541149602138027552786973325129276698673448946854032465242463073980717231473615887941379924663415407762618206941196914608209588328355003245062607160694799831575658975105114008728906255563776776021769350511166742772591009591042946794060354082712104955854591932726424894766058621888859560998930367064098038217209697334778079535821495623654169034701290305785263360224544218745777741495641320436092601994011001923322523945140628949950244495321916402031600341990603460597816644628074218712647298798042344926710849676677303846016588095749281658787552612376182664047157458796255107562350778672148629754546766179753653395716532065151161461583442798369086397236957789212498078075466328963257949519069776928340256366432005888836706687984479949258145038482723439107431978750813732053407899110038252679434417185783467008125447686926191182797472500098140394321496937627137340755978020174387959214772670630486140279192515548697923935870802480438793569527747072885382241042092988636252964333128655277262511134493291485820081918240773307067138780413511093905598374962349859887725516449825085878863803508941082597435585440147038244919292608807369518648963332358991983119620027357757707877847949029251192224906585059176032028043002910809672227464053852294219965851478991246716253035623155646706501522580749933103837556767953765562335500591911254784405550096713766504409361073479906914827825150803393430316435619687135206999393606441533069304919413245675435027395348612113650076314754346192013270731373550725779707681741297351374516429330253999860540682755315483484472117942983217828900001624904871538614559937948749691678439279433544861880649999698236090383803028395312632127741451099724630210692635147013114925564781553025127385503702784239120206019029619052924531133378360785829280901763740908185538154840389936460853296113350152408991949885773463115008360027023875125062903852503185172140928423100889169372580106961687371255341093966342535342648988914544933755380070759228288068856671910975107234406520890756722831512910472137682931759880036931651414502605771638026605530571653094561646373347959439791628447838237912181140090410811251874000423195357991156314475471215396521855694538556535934732580550978252093308906929270925890807157821417290130357016997953485812554190723435739395056393677433934269981877787902839113098073286732542569268943837985627339194353348044953326856818883289324239571403519270389320721110628286967832302150403667141138577936253008997416283356784155624250201450183645405559886989067805516634783973949431871325957843746036489059050738312059216887704430438379102746028462462551443991205181343762129376998582304686729928321065291098856193144910039552212511425246308345680460254519414848893967281896882930593824838978117447357659561105208914577893322127804565068411226005852600204889158343136245450069354457838446196262841399256385510843807546306494902740891507785841451434790154811918379449775495653053565159636916183668563418443008060274431711592864127975158571358217696202973635645571798128737795684584147669671939679120253278601447484017797703520896099446880919384231571132256738586181076154114998389665743727082474053468897102991462189450761426925755777105065667052249011604719785543625232826196177867716823899228916594917581979246720625609769273632123312912619793317671541898643131769011925865083088471331175668473720426339967913063428018873482611901035981126139881766969949991254344395640961363740744599719421772096820495526512662667635336966457024979549240383339346401995415587766265301492946853152478177456428221790931581962937952435170949613135989260560058961764259450573184133034490753436726083015841050172942244310306836554797660731110666871150740851721786348349440267282548156684445836097916543692286946794966514881167511912756839329780450324519526635654486877119412356845755436575602929014450649241609010731280791411791258286907596957811189645872660425340734411154054670325130001025572888845094785401987195890013399794312701611686178370747425545396618961266144662204352073187515306867789506878392515027727092833641550391662077179266714119581635470210896023432987870590153887707318176852633449325641768380170952599038743766225726063540982536008199414738538804222924010811762335881186630694406331851221748280067494376608153642759528829933042002378214610685618921889441937253263147032910917646928026624410611301981970091906233740911992110696233556785632160222743049816944977261634793318476646139510198055655403780656105460747175606126389476341725085753616543931597211597522880915312897002702673519411316259685937169105069455894434485955820644140400867359027518432940308425573292060975004303898050922272535990868103269976853955909148840994690486382807228903904856619825914051511674881153587663580663260139357010007668796874597418963474668789210331466762259073047728767813397211652239957664593785637633853614276105848038191313925428799330050948247727796349050494946434737681894163043596815009894511506891316733049626377157265306571019483569766866288471543770364379292247923051722534323247999452078691171927280091062999371737716262456093915376774960737241612964107811114270199172763905075232154892116035564707276047549647528608647408413018001119728010347347474385593627227944897849631580313237479119187195472687604248110249830316456113242799746412702502403598192511874356675275233219200821633176339602751844149809548771044903348528093986053379497092340410781373835556327975935747162748616584481531230275715232059827424376956056746827118835261127201517767783347045817567878338914255036235993986819484638831421347477567943223098034952349972348304339766394849487124349013936129337067224854826972666123484839409174504327261301300789766994031528714184206845108532309063573297859447647792326198082958283883973420234277154946124028902084245281579733543206836414083276700349859047778457607397111219944166291276142131842165192031985819996300139919392311341740277583325872641645118059442497112300695778438592519707079383511961453973100760214918520462921784824560256320253597326557318430473208124882355606716042659117813504910722308436463838378934868364985759544660920274446144853043326042561157003322210513252005492764764937046252726161611217718874917357109115422421402734322582943217158877921004145750837647040390929837448761143211070124521916288544634532894197276640359986730139022954543317964215693561260186290196431935556039174645802058902913827196457109016304223607625119806412674396654461789553171490892822176050264687950670017014471352794618072572961289086143871394722612145502638508599634136858570477733309898829464231082607963677680981580270670040039285535489772330928725396485708227168556094361299083170866103755393991134500293644869768876564569571481983870685179246583581372024780163184625896094229333815276444427659191779569792963029526274267417653349440620581947999657445557452220253248911916407036013110399975182718682064140668205003266226527575099592949904951296501971537049825173677557126792052112431758432230613198827396884155365773656613039995413430641040395111471242351335760858714072547322333828486196317177805484994485528020095979751739770714967924228644875589698194301165969748887660089021332038837224300834153836944966602359612966261675603315843787296643961042255966764449183669878389913737718719388641088788015828582199894422205420718803366802727607126417867728785959031632542245884468814969802407423150406972460066492560765375398158800089932430332728270638885817362851615131522260588375320011552108755435999526988782959011870819957752430139463490351235420517004698351072982158641077555629105315773514116757743424193634119959915447251381980144585383390046577340131194300904399591928625567922250285363946566809842650695059786437982233369582271521413619119036187342502156386934539427981262282815872742003328945336242688020131215504467634365792360088088772152513426273569114039108711234339384312372733113675682335725800611726423158870556894406364908527637455711730043719572042997197203645218759659617879658354779225540573320212409853309372499574166456100247322695326317138071607133205832723788249815130089735144805516405736658043943434829765646080932493860427180017045301807048770522591954781774441259443074484613767024308854337463910210625076161335181409054396153118053251650517409589653251168862881708900764702614422426844884540969342922041832448351567487987909265198421744623176067998327004979893587016311322831213793627740284152533514434684965174818184282817695161424954146951604908060997804186307914062091800637812786608665408941783265459709564993718812277038964668320872064800343097212341123870627571287729485289444119055722042080591554100611729820204611247031574580402562983375406324875371905315224146465053671049509728385562433942408730290528782696395836300418522665631854059424954924109132429720143356885274522937932807503625806858359620693267875968365247443298326617345119424878552282354437612899839077440911909984199021060929670675101642773880777451134284248711951536501119471925405067723278842705879892002897215028335560657432949096067785566985687660878331755120473584014390262992427277304112080620492266092142235449078785101136826376987976153803240862929172541912464635706237218749243071662032519752612012254139441714596457870028001577044186332366211178945833503823625871791306481602898084031564261626514235019100058858891499532496256129917218346865095697386386589538006923898298161927919374502196824309271023564147571127682055551552853045705141270108208187046706624757483305373757831755123837568308970223933955894114769957262097454747251323695783660150523892617985714588028015296645960195186590647925018236357455316432702778315173407607468460429364325050481478403133811634981314726803062794122792648228594148719991701438735442806974769344600304037874214035085744713832625640516183687971916187247432083420691441253953813998675819286507390865292139662187798134518952604266102912872149797557674062856174214381928056833044652050544288341867060627455245942843348044872352231841422732713568388628410701276012605443923596672271049977011264420539141378419281246221025177428356665343598139540546744318639153710661593472389570032247710052979978315453274956645426410422149521463914370767975913156431901545862877746555447530745737195261425520338826210421835915749544005706444112585684207642603418152043871275388055460678863364274044348741231108637003114414247769177454642328185765222526733690231672435777883910798925596670021754830193203371992702861903751792004753068321331081831281044453450761449252997296560192386613306503913329293492678904180253819965450253834271956063148243530901284937354803431422200327000436238698478941750253687668835444655447390989707590266600604955864519503831030888495986057702641909282321658564033367120108127288908626441999408837588010800839673184945698458228217255832416089651628636470881020485921592700070195237773373053308092956382880186052344841261003752750510794031571568400296487734216748818026834939845456553612882335523871286833798546227941708503749733858014282401916182998935505702588762135566299201662649896669892916795358877842667859543387128889220277763783853701279086106289810743960735130258659191691075766992070252462969186453368711494456424361656923426727514292166113500419502314584761125310139231430557032582165165365535492642430053700615754690807759433316605236259100340954449011653114125555139175010635530731849715044436197395810965715941410175108823115783483838224454838159487177736463871430312619703452319880048192193542068809532580266147114254040011840488337898279348261303826036384398005580077874941870917538917764644761091720693165302888066757390915998279713957048768972331841201867392517682190606032543816071965526226650112711846232233317737399559542878706637213513795820498712294124327404596681286172130977680010389714539199773001945892121580305094192508294651934127532409887708052626848288062058128044902604897525816047046562429764227768873894418781325699966507204968413813008871179342461662748184842132390172257003522094762119056814751079476932965648809777473865519650185355392606676750601365234330427729440307170473940995586170490635588393344185983364675578001350154080559672481849759938959934663902501513087251980458473620286862760316281605143956134670000636358911645932061747913482080212373019868296969072162834726336980776258944440014441259475020131230697542800108632864189740585652858060468096262688827496262378053298103061669990744928507278025752487097749521371966593158819274377916312729493709403420843237338399985493042275139470331506853832253657979079141180034742844638270421231620230508082288993999561037034979084274045960878530184659343734320483805902442208224546180597738295083985111001976336722564486621925212661566318079173664845709002849779069145220269676164322298505882008568570181786952223458414213030167935918874721311487563445695871017501236243813464766623834860149712190982233325828447673106288756356492191840282792345667803628269619553537628623503293006487920402607114571103316344271921058454922191253829480472237715782254440646393693714487232721551302699904536018598459228467468141102663711427844989165429937401639317497953110413393663908113730179111203454835655632207785650756253388190955991014347402877981228731988116844901455659845719924458019508105647101699678082023626363210149503526647141509338141433637758717858080057594305859450704966882632759793818268665424718389089576668996679329666317621663761103014963180004642472127496752045007098612535187128727685312803077048918077651578822964393392462914503104692358376698961193400977217515319092603350473217755506969374387248445682701919120264258558558422876567101288816467928612467503975395046118869352248490279076164676452083105046824245385257201181897050781051817753886175943333321829049994135652899580295320183800361072596773870985822183166692974992424266202539195653550757391194338321862333104340523857695947933531583785200879702571941061976380863956039076846503121555264955263430268040968795378780583344345620304507093350810727970763090959724119147966399890270122038034085941256218122074881409159211074732844454466336558484597540439384685939543293912513863106715582609961617497380800250057620782829513701336577482274733005553323073267411330140612231873590227549768819365925472285497286784704467387473249823066536350643218896322824144374036675313517132296620373031904456698793339079480557903489864542493475355993864083112984817582979404494757299190883880872995053502260262889453546190133731842903555804602235346184297865034158751492675855531025313815409398395530813377902092183285369601835572231665602239646792582706555333212426088911598233020370559759892308180682904990734275193871129189411348749263567580043033717745204308485515056890562205569639790668847899197429875718211360601344789161933866701665072195543549634154639673108822538587797804727762659584427127138748597485822500718471575479208028103211256097882153533593194548484868272468644354673460056760388343779195479675686665392920842758800735714548409323406643489415844822828888915453942778087326331260110059853699916442864747918678147187973742002817103996363839084739416485904451851840884479562623214511005608688857522449173996740300463285070398536506405443726850091573171243283986106555951769362962845404909359950884863147664563573669500536277946405872681650347779762351814213494485109695320645269840709796371012272512821597511868519744642311611489360256299175829776593878028282163104525554332048170903740777152811695921269857400343042487286467907741452412727665425200062974388077339897839662123333649201582763428750443639743125341942191352746620514204601809192556540199840883396079241326087312513308212264634118101889669192417210648025520940465223384877238875375413517882921381170159423502444223844724325269233641489675192346705396777015246254429577669708730128558086837438180914449462993373817964227434921720527080755345257226729446558689564085595442976709430243155335324918934419878708417266790045069163647301531451576592003351010885504417169298115474475665245727658493905118019212139946972730414278624658623332349046822880166312016264548291954393324577634483085350218940000037810873757565965942539004946405777210994454874841880844961429013235531801127853934743349482373159148343952253715818199643644568828302867387717533925719614141250159362427899680515610658172655476585555027775289684935778143009393689724037018023930847075554403401583938381547808200295528548455182209698519861897543122216347391366324066201952870441840476308000130072356079891597225076102784649945715863702955107180433231805226613817001329319326469861947663421764076878121872266410147112158686944015422448091994375831955772152390254381297892040636124241747351183844756847598626302987307214654496228009907142310989907169410455894610157965973484694689289854935665246019861498146515296344130851801615570631729861894510908578205387336431442424408686652077755743782021595269870505925593327260525456825670279607963233139606108393761752234059597161380686201349754941768519001066889662190870673274582126089112989647439596059742475277733077496032624138056807144684799080805349782901389279126647992294036906265447974121982767339828144393675542535365348945181139096087450130135033001263263075637734182002162555312805171936026561266139111482373507023531969715383358567047706878595403338491485577673560568969308058156231663792256706714181575941036228424676657488794103300825845034877054183306870308785452245082602214889742535564899176835903438156741373545194321794094303718521211954748614896281567710250968109325689208407501506564473030564726227114889136445730129328097618622996683412688448831677945722638919989184307840475029795093259935978404971364390830116605862164620488433574345731201933476674928240693051628050293602849322900632224824393682022771034988559792979501340423193806878268680635849669808712652620200915894935402295618024748475100810458887487372290025502667475576725575645571770438294665331614610599785478667164395629820135654419452253989753795649057442441789061251632079890678990024673315155077618861911771121961781983116078156697486915839996071010123669612026163575272455214716093843319677169044842457826728610184490790650817108035419176578229695979522220581400807104100332491634768557879239068531215887827754894331619715587911199594001368662399752210511099436066487444229786217022125911293265346100530096393107374394062677959096357371772601233282666807416767273815514088701472575022056711185055886692905527697624228555145739943219018357766528467641580311661173277834592443861109870476279403200736386924202940009565964673495126089213568731743145510445674039799568429130017851128829990187304946116911257556516636348134456689135458947508353610693739141372055932114815450777444769265379935713506448881722115184786511237370495458486745926307572294598070737004357786629998854388195223305005444861048436973500831636769053033930229283451556834640099135080634863043228672044529433674158342151456455656815620260406657991582851089788527543454858517262993980042568448164519661847901735354530577230740874061608985900301527301906276951730691850689885942328529854734836978377456650958672229393618429720731820281996451465278870785406611884463585699284353815388196617420052528492973618021626686936444236794803265887383474747420800537676389037045371943791785052237640780348746963750285786478962479095500124994129932679157616398866486136222277807967184628031411959394959633484617039857117334908070693911720255820205275465003379015247855760389052721974527467957312310846347201074497600726188767678160331826523895174882397983081840358134698157767212785434540526192128279189406582145371387299841607612216702923812844403355876655103254271878188091629394793519293782123704546553762523548629889846970642390310290025113843010869058835920461390329420872715056615526300013324096437623704280734755485232355807807554287566939496919494256645639257535576865734456768479274219142723857941357655591582974830583405412524175053319947700517912489821163278258312186640194404481654241474905704156927293161989900339535359154235879641391050347759893193916971844574946356810818861878046177277379536046509069985154608806465044160682671848707901691474193213977116859505662948477343843350709634834501217301151465283975018763677887613900655880136711384633430186184912176031550744821315815151356985835950986249027951138113132663224857590189354269491712399670354086786416440449434093055140458805079274805498164141723657208115299353497548309760486517596729699834254058606864649720182024659984641411008229665171177018540187605806405485543522241250201997474685555560604886335251469088221439524820256333163597129816332924235096214638488504909994868610443478839132826816747131727682123751674490968309131367578209309831931507859679880928693620376723018664418606729349509858111660557072259986121406666037866130779401591972253962029171885410651089901450340239132216048883850381436407890261998717564074996511227456827123089172661117969185358801054716303368925696681007141971905598320020928441333954160585239975171053827290860146536641807558659156674270592582407365469614376219736416647874227196916525115881944885387600083915393785209858909746847235878965551531756050874435158367601517600974552452241067268148231154028769989720408318022741866954013145188568887014094364582170955220704233485000183408060642779217021267217906493375018306334893138661888231507134981734145010033854012099740900545608669538972477113064513891021467856505516247706096236029686297259135089551738252661239406267833591265012677814140917931700983312637196544937589099048086121870897278542249971487882838176153247234397865605749670167364725954451354741860885389482895371936798053999290053799240575982983979322514808150507981655188424709383608619564227869912439866990692518714469373535482637580736234877470008575065305024391452782772270218193241810217054269125380720020006407608768385797512923441760302115995834152828742852456946357983324603982680423437275405511732541313700478317961168863461452566094057050064665042843972535122783353782371127142927544705048862779725072738828862296160949356742966261184564515072254733792282585392371078942381942265767317118192163179384199270025512708994093862431764406947198299807270901573047599050312714609298571970944662622930796253660299996504681911094303428286066566066886667257124436516466806129921975338015481583163088461434078300616053832893100943310729261641413429041936238389780342502775810256192541118116067164970165657119289337099147852494343075506897420857840007947241571815122112856217310308785550589980072205449239352936882030554472208142234818863248186845626125999247731317978868418562636983310510613026360294354358978093002290289467005993949689270392010799657167547637341155735268823473571464432368956398602527769259126896153587637844138527155572139794104375390793763029316713015098195293597240029368618628768779241726126249407115566931781963010329013822992194884088436545424811888940399385371842686645296667045652145343083907725795288786417030301027642622220824323999868746412474607719833635604101237596995744599819087331797121187480222633096302269670283910777860778768839366442719031498906152534772408585284926000292382514093160878883169582477623281382003762918711455434926276277010277109462666454831561541604370267980594913993667991014340960543769061768619622692477591275341773913040735151063261320208158918551060221417617791768816152028253120542355754555094889094234620326688678985892443135004828910625993558192462657489645862524188470350147730462695220469346875270710172233342358086407062078753062977349099010131737768254136739822572687465762621361527516610256297894293694563274731708434982809569852017879005821406843552708796713429915710068115305835321533364634015324199174259522263310512808329256899119446333416878605115179068944645874762350416769379127390257284997000156946553964525584714464075246761405640711496545919780815129127519799533094169561761598704794786525109066325914995073282181224374108309838472438175671995690135340083890902011178870017847525951651688267673005967989964285380459227294496863470010681174522487057096959261885019612496643275625645385540456749270061894614380707570799102791747114075350840702691167339236937344756743680571006458392351612794902292942004119345107444028453760097987752179040022292706231796483741803024988762814138872778128427317782023713088819516597957224968534643785712354474376378688573476013362066196529783785670611400629812392775745980906128405576735305974918130873881683958772602316290572615109519835571832439546712866427602476385896789340891599575992588472118260640755229736730928734952032180880769836299502530794165698527437576654898761655439980168487690473576467370423526844050730252285828979061512436606446875477021664123561462107299661061538085795039456657242784558126468998069399190767701799006681428157539172939374431052370212070606735033677009734891298167371589388285025003438692797137886432946837938350649524848834962688857294363209487789639406935845284073659570165890732867333585022911421443524612540515229182679524238970763942350822578340149645675367749401618065129587374365596904737673903384001778114657256237230362945468522454737153922782306087735263254901739674937717350617748427668360100274263191422552381112101089635377271593089210641358863707180526978698939110486885552875683637967489584005364116668961156659058336585542564430681145958117209891239399038687042498279340724943273367791431826290543802333955634508568795110958558078753399971388087492835857605850630434739178515866118700673920347115030029661931005675978755554845389108633599228667104467468784355555352940752657736663990832401090631322788007803760845653169189602251446289448465817472070513594736910836890583796950327922825436467637143876784444315703613353053912573409184391054382729905965884546421010272171414650154304813629405006593731948012751513412276476473672328639147788177783810079971505970609082822317309654462658141505221982137231176313356234537579100838412752811704964418142216855682228450703447266844628019015033763592416288468813520767431153639460552675046358539037794221208947559378530271595642237184736730477019128035145968642662578342551675016413832176825503036337399790444574548801129282560675828949860100881833930223512570733305292296255595077992233148753223676106591677542518997474026547945994658462586650311877424034251303024052454104146296996519931927254946679098436362777767559229973773090161867498611865815826751388104205321208793179397523581347219203954549639123913313271801437472423687887474896429472477768500677913724892554107148902547438839739350916545664296556216863071480293700746320168303334692360216085831840750108427063373024166766489650297201614077320427576301073100362331941048589582692610021334174568022567885619572922071187904830741121140815545957008406014771119617779274951689466284351052520357376124941616935685805537583118172372306132375498435706401412025368406200667135993513734516935448028749040163600745910645988402792630324803626781544228851196975026273542086913590948574180711187258128545959032492633512476663023667486014347580894801088381262019389060553900576712847137517797759187231293980369781588617414492989221241569040375050007148770396467212744517736164355814665378561239470153337853001900836992313724853081280618525566269500064780618019076697513970126880975533981283713532566570057110212141368026355500349147538537151536137230369088751072040070947693105695392756803465473985188213222429024634392546607507907611861693947180896645725821905464774682818496468623673336711653555738422764678018764997159723227123495023452442248922802715245203445930477850736513646868803058635967403346542737182494614605741410233257397781813280750380207689916392889313886978633395876524972701942390487167273946721493831481124710673169231980655315809820010877892659013708872165767497047767962933794501576512406823054924231463819528842397028149081273854306738262909655019147610686917393734205001318301124606606032815383508599750163198962051640854854373179002967098088312988249599465875797962834124908601972878698576801942731566620354573653971433041804251955301842273334324558378683869584193982077501784606598893932081448668814133233193286251628293480158242722456382544651712510319180180830793454152823076937425815720393194954741077060727518239463002112125479484641790828412583534877027117917645194405699303060666652338843037289031317383601152338985067027768734043146792536608728381018682554478828510824247943312527248576673347736034935004096664563522531998696998132594605939585718381496432923869400681579898254082917676799549229925205230105981973762243433662073140644755535391460182586584049631598197301297801435572884044558971274039278733710217834732772021574125251683507408676918728534876427498124431068011477898907437458347752149945387003173433980037082540676684533658022004472065374281311708172019831364827619035484063878626370159617239688545382748127068267492654717171957806961442696658713768888694519645139883104131931511287514473649193769138942648284714180148837834304285201229673801139054757869935964561254441751356256328386332230577241980488189878954276712057111324051628003199137591974419956959937277400506828695801805804993889408870780477876739944576906250571855429122678629358698638818447961180583600098214767109030550065984691865215142371062185758769338111320587434159622547617559605468809169924988061797750705431679413398104990249635607242993453273875936892252999407923090893612937735487078186989431023363221198223221566797311660829767823202866470656890209575038708107341747150962685583549586719203713457094127125792377191776293538211882063354538568311704804298411703750367912779788357826008471205365881302880674464355675225752757909781610793860076723249549731388151272782994307990243542850610711528547251434165079963801236203674637772540864003437519689487938941382712287870609700155440612507046084769444911146597284746792763803453133259360378516620640751844275294876659809465869154370693430341665270095789738318938802092918331281683442630659240961414394330470102501295444837115181274463176216930608800397212434143211680746855531710839537356758079403874165584715953115091790951565360227643469337780890323817144894859172220078880544250541820274764324126001724447996440778167531654977698539668374000777756691818045435199184641705189807237989574288888363372067328590108632019533056504344734158672790926088775612649475697421755691975866988035185194086285175569770151829031664886447821904906360376650968860369978081141776161585523695747341597447760017687441490526004528824740540977242178040793634926442742796278668999675462453419367778987341117016214178260083643166719376543175976434090617553924363349302081861378273762678678996513292504302201606735345898011975192551471013859194473532513056969363178631961322091191058464094306502682915668829858031919931550770473118799831034013269027980205313750963434572136772507154465840041818999117272682398267049404796002406919591145802772466574268260966395619755649230955633608348531315409052753533264140779070555181753375949479332932306309618534052791990884701833397311094402990991049929214009458675094282909890625951429730242291601657057271560073066767692505746058431987806867023855362551024775754983054094478560899312647729560308004871042071818117625646665598900156592609650223935585298705679696475119250215544203391906844115721524172398074171182932111994816393655213309783059551329852721995852635736118530151544151984575198529926425832501428598536747147731070398547534648095987612368702941258877230050469017947185189361787475210080563623439326055790785042598559935141706110856684155716635430108984116716992022331790489955514472038913137538451653343614257459696469948662871411516969238833313032002726462088370533826768637116597141726781182597708397232259652346089768376149173468496633383102095833164354538029895939990469962173923643568278264240850202924654081968145007886086821563829279392667171287305280549517497736943813638187601684300495207728698685281931916096225524807381965325182384790113699284024556690991866479261652168493790840034578867963330829723940482813063414973475284407516037748568125236175925223897425731013480670696043632263477885482937522015837296748597116629424523899080042687081388249582281854943364066874939662656857034441489758981614058645391754656586890430822801118920671515810061459934125543634502500875866986314687817650172871315085692469206963451491029676438303789150343692106328680649978258177343782528132972574257683567170126804599869115734569585728900569020838592953062196719422170802673210723017118531893335240168640666372093834628690392022419597829099035437538890842243978032607655213877480435330074717586953594735557147122651993030303246073537946826606784836283787375437621651481287088053813938796310462962470005588894498292926157216785951078489295802836000794904768214928113079139895567872407273640999782040624336532560266717998257284802059436365783559220757138048131103096990018732205131893492447777259292997036547305878356978888794423390065495325201401906311205380770407121927920957361721141693705301553494302994603937993683461658984104742407409645525897012706848109127424956574695487804628820886722680293840295506255317019337754306088748836514586737243330606635289314911211396119234053266211999647291223435697808422631038813249612590734740397415716461556568612200850046971019401215244183055937478112952627431235381097641178268115474419139877621136961558011076491936220385681021698260526521672516452088763219645793243401627553133457222038064981697587437492368590044162312354161846535982638254786421911016585390487668147297585149537814952065303563647197988061162609051564825602510550749152841695547795186432784745750808595582735951024738947784744720465834670322151614348364378928640814949822978131510965630887884478610588515120060698899569036940965097594853482031279524737731714858165983378857173333154401075308110495355959890753836958749553302293520421493225632595976496078639616662141928161670073123568023135772935539598132895469437285828211128794494193756884551319251777481143010506045677589203217839703912919101495032470846584431562785436786640241742912095004617833262511302840921537933714471046880928797794890595561985235599125360383168448969874865947719205503108737638695085831061695162110806855271181191470727157239492961467736572188128516509547237476205426590908250640384600826064974888500190626589059747318022566727200486268023472064208607911630498773411393142864467208221545268853649062668407004060244762370379809405550139991395475548151891275921978462141801533739008590185826279138950218481998934130623806935197748495250366044621879521122435721608259114034273281150419396376450334904038939436095284726378782357954322127620823313257262010148364155563544022837096302261550757174360211266795656769937506772073995104742436113278806505644147956902912487324714683824295193928658352241147860606839900541995160812137984786823229192859221208078505716031484835096905068242563491503048762430122418612931084242164173185189477987744399586691137044409465909809151933112040583556976294589014466789430218312585380553242720075459398954845992059727215489997809570212814950856701218483700507128774369410225362572556566066734424955232224072698858069762061552103937568601432808368824132216835906177964816133891680185214256627385011792763474016434195009753623025994829168025053603479220788105469119719528752419243140228342202886925988867279439709013361836668183116739521511713998746130440085986062999162818481659421279793337041662849458907434071920778197853821352817735109521297045991605053967998385097413786068150331715941848479457636270842974022903735925995415967244841952089442677654350792778572255324834980009428109845379492872028238577974866631548779092207279425720850230097671138692797595494136192495812309911429681701780726493748726279063818522999929598966699700728269798453284399053939953398555013582904563663074593310416354847490038538425483574468270341121744006355907280246170770383396446513106966264628182788975704616495359539426436594764437367137557879316341004930945681907593611960157272951258692262026392437734244868533586943764666959672191500966818036037256676829492992255893266394680185283599656711631798454735269362673471779193905311136541766096581642134329175738032969658427095308875680497061424447734036108527734271429011039553262518709978781772626125894503788983843920064816972774361920266058070903519015359786293335764421916080388602635786648091541059887859723827087894843915484961715684321455523141442060907847732889380541066326353121758393325403943025966813588191208547395006970497471722124017934521682346148509321377418809665331215154079440422974848083921906064497977884566079623402229259785117941158671073258814982800624023732693459304945149176324137636454090133802464215639819111376294298376354412871422768332527445800656343630962793080347403107951856888453315618353731985023048005212811201975559452449101550927720354667325218307442746561457040247715519473362830724390851310203878723940673397147287782158152778176134262750900615030294351831207413538900082596177317964064793387335773234015367714387471838020033691031495882410733536109277816375509479546839882116903818221211839873128303053509941811070648601511131822792785684081205869738562459185401340365999475341072362033137930299187218351598077630980801716293404581407007425914594730149211254910888820167028242378654343979708279970939281794525998790057632120656797005637338971704511267313466889177225631348857805897230545284870499637112742462033076910709605524180806713827963853323285214222435381699102620763491749737062539851762858288852468209711382377130192419268554084121712050421716191976442506645581230102247010267484101719407104554922908655521942873262232790612022462365991173697783240578017598822895626317189710719748042641453603217981182933883679471431486563186701326608136247339572473793029630855450434724267576877554331989424604533336953297801443137315500942285671952534017090815688418159853865390690084969678928305753730551122318499849913459985324933940295733629242151658350560731407277865983285859832229070956510983946117499014560598522385059529068553007568386401908439165259724096725461249055206057631928839772543244220311391300323156468737771744409031610739674239407524698859237992360205553265444213975835765492974693658298494655364503802766091512672206355936482716363701812494052311654471422496723367987462686507517183016923734147860074972431160299566854177699238896056833130982601943946007237863354322625010399717441095342766156510673234557942620638618740288579234171021408819700446669794998036575738501645228050238451999902521054249090348381202041710036253137712484463470575628889412250403961229723368740915617054067015440823857867703243849315153208794733725286064560781272708585688517266799461553394877957368265144972448794778821064933143674839174993710870071134244783106379279715760532520461706074691286611542565968310733501562692584696412470500485768772059925941174861966063291029533184088324317669647046699422527041657603055566198579799863885526657648708016842550219219737589568463461454234861493916023617299784834226537050398255270845172136157408436058250562462715046806515391974135525121153751656364979051372195003804662896194992427007306966005659232517696424828969363938888163906542975299351587614301129280897975469880571860403972643046829991894074356143287157179506321639767478828645880349146961557011322255967133229700363342463684047479254487512186763625220148119240899199364138306904997830508807741188901986969674339070422777099494067057126462378679385756328279078679443949072184156606963124370280578139115403276324764819809317314711859266736226068263812762952934136650303716702090060837516196781356412735584580272086260844315239831490329877673025758448830686018447966091019109273121439273739324757686432621292735207225744676258883118128642078843055542419624992376559494575532823572031661841350866011561426010594064134681288706655231531167518700636798987692478126417306218539804669938359308284361055372681162669224829093712290884450211606907564585801939772054163226745174310610112852635056431057307379315236374799118682163499158462452438492478388108722023887715656165924944141110564494014453896956021880532035809680878320428938022118687356991811710914522830776802386416553359556778163557157866062783572242419022274465248549712067079881524358145314736238384176339555750317311843654417945594102975536905271783518139240357390434091055296600771500501427685532428144663906099071375424517713660128647533403476228584454408598624839432783739482749199580900976935767621039450407808901163948339461113817570358831782181757595830765486124513460344632471732648617612606842904832576160895897236855257674573233244397848996987337613966534927052198385818601240651067134371492084502123017741040176613460703456285280924975757193504409485226660162112214697346384608674793967316102421268116092768341410911097391525933684530868282791264941281568205188301067657421535558220282513994436329821302031452125128508134445579334442784582752737809277372592759645750427469016068438876891241129489141934704344377065393674038807197524596660781038624417497672252017887748209825473238852177631349170855246562829057988596708683635018210321312354380773183021170221600930043962305509763814627749609660215851955253402129467679483689557242410979707344099928860555332031828897495675193464590793387008872338231735725699935381265941084369082151365843683429016646649974492994743330099607437723740470001483444407694532331021560585674250376258170242885556198096322991878380196178236890625416695139232702513640552696392519879303192260587685371827979867287765271064969219023910267431925923999562355793414712309638498370023214279666549876921360194331553264414008959888215300385408157113886362284319237713375934567765983515795375969324454558866595572149905030020877632253071996984655183733681979151268136194897262245057395954796262655689512969237773682346053127328137059935218266134884452235460307417346260144930855287920531638499132022267466447945491780820946710386153792655360766008600369749788324922857317999864625103355400600136579574422675679411495124122326640065230947561825363799151072905896575879476047043911786837207373583883283763753157420569575920053867221978897405001688758145960053519437365395924400756623368226167099228564552472739861452592440949236045351993840774387169699979761200223832654171059106201609192481547615850672753868930553853986275913430990749223780432303453871915609511019041681345145252556724243658726475480480575334067016037358662694064726107406125804949575049464398229114714175628233669380773398284521525604108572582697198981786904840657682228689390533146385385942676459772513992245250263074598511146227302041686592590229535137238741012822687219256399346569105528194046614710536693276800519436293604384819635985986693673165059062701072904987454278974204744330955927032109126528134602411889079331021915648412047285682414231796928641925669349565751678624618745308758947364803428615481077609685459294780380825976407445006065282415622784938300060286279308381140610731838915829950447294760775534903292135445186902684847507347960276005345695350456963842278034115962680043530460920585821142815308466007279475798484596742897005669873076997810026261416213239304314095583046487578136033297667223190066178410841307132082265211822874527910650630344746639347430628867183199305106037395352000235102285417627235278486546825592648499580632138441772062330768004439769452043182753877418687744978343154653587113857276209283056093430732230225504854610345969881108582019790164326475955214027487007052659758182401626309403373041339115443803815042944962757541972999387197079050064018717461766729851256442204009749460793349169924582559293975666608945870751281983746303750931439602255918136722296034793607548633504952757298053873874299412255087395072356652904517241089688887213358517074882572457640164436587418598549642829241430447413041796419220498089229739615904027172261722578305963486907950397421232607139517243186367552091087489135380620755588614682958977146073884813116115885151419804761531446452041913828253579583212034098258983037928106901065840811744150872070960256446138286836825895034126748955458607001245042775966393290083727580664188610090788647402769508370197685481547306075679392896195301502394705151789473079663827205595953992076655213336544295838453683297286845229615456212924497556578493088420685789277262813832376222439920465983810599586431928295057265121618565267794196927455839101653986147545412027309978540861005614876936486789876208362739302797021426586426821437251295099802397809638108413650649383757443986149484916683436730976903260838236392052678630118207688611721399680046935274139257412169335171495491156204331781936976639466762979343923291436372402410375543443455246773356570776025433416321728341844861226941982674445292571114835809089718900668354198940992611120591142311399743419882885848003828568314841534822963995210807903387812848008130824632272118113591351541734102133700949889383876729970669619555344213368737972741539354982440405297813872776370539668152896027019552564592459052149611582494498877595616808761827278832843497922537437858650098287081698183111831701185717118421680514897896072003350737934737867668064939504045918498580415949748303937255488547181129111319290340904749473942694645605963177789870863605892735623291964893766171959568982394616867309524934738268096632831472434762023759649432488552899122685657277903087011541534136914962730304646202400057931212162676404285328475694214992259916861637378561959656508670860460525978157166372999100504695169137003443280022896362769425135362531868658120283928096491801011620915838092180051965857567666257083403653518906411674102939508577228404543245050164051280738689020956415833919753661401826617796130751432585968017888744800290618968996916394980428792679974117781857835696644174964133521269305673447624931922981662031154705078220901885172348644942903153787563004399524429642680762682319388501235267887885112199351224843828896304994015563835368564007931116163651061514178843073950869338796117389643169240662340767392908161962920703751542556176689211487374530345594871603069663520593113604822339966777415153788591237695514690736245580811013562456910051207053510171775538058894020173290360647578113913694261342314312960289340809024864561501369790401481447553638120489501676521484386798540456917594504429847976649691686320477928985121015631235784237480196996245656688309144739476067544639674708119229477741755362422700341749920605655669321801263663641101194433137288181571855708780681393983302418026603090163398039149632018766873254657128171672628404007336222307536004049217956482160727220661891641969038216387900488492825216594007582952705855948733473799336832671105102817868782754182916287261744785702209729851167222219304814540171384168343691022771613293402965218540988615584888127465289889944229738945645804563543409519661929016217061876408634239120007757875700927163867466653761738831241996008388443665780187856429470507743837767460344874314799639625213245065913529115565087602309662756654063318633052082275589370557169892548097397174113154273641271667813810485559959597921856184304716771791424856691126783158309656200582469434097370998771440334709637154274881581198432417008778969248464503632473345657625558275384646672301046907659070270415966818035042647263887513138677439116968403662591333016493395791836648579248859569333232273764251814312640602667636560484569166726715098493792521227549437155310192811674634608314197928746581852660686135746908873039863871932497887018295575083150176364824504220101325871271893105964839322748738401544454768945909771123215866187731285073105982896609391417734209934160014962676548271615163448515006845579884835623021522029868917331155453974365915019833865455855078243242461287384044068015930848890759388018384341051026937911721210600227918973784238849835169085908530783139721838717381872368006674931356951918078010156418165168028564222532187975575756432427024056417142887027525167941141501905451509481726284124688174897805565900824736733992248178637197983538786531294915284564076257769424324122328584777995938629659192156452897183360842045459383129431366768746818797729048198087880878830856940744748093619415894028976203987327144442501623211944876920622082138151179122458229920510026017830110976003430937269542111661423585888776803873281977896194407081159532099019873739801100390619477708099142279286599707037232823673404235253443992646727826405957261046759639383251220831172414709218576324231720343330342285238842228958029331069434911363262474479054758634053441148938696917582518321442002985795634392410116435651137416509351601188739399233711472858671815448729395857504812122120887582696965153437405041630271763762418205567758535587725079758331297218408073009930937060766351393044567163392529781584777767114673468957721317064272766763366790469079942081307033267226164155715079464708172440024767070282956496094678781704205232884850927402963406927148678562551685495220257403758685723414731731898089182312264195733426959861893160583995156724796032614798574833584332899840080021509881227967363297874682158360636173069560705317474941712076514327222423280443425730308005555399748757270135305980657032012474304262646831652515538690350941069455909284505882694128686582759246649661756308724459660181357822653121659734797141286026454517517229189086276085783020390556728919673116968511186581554338427914260677277821573420625862521958040540163816596527136999165688068447738285753956964124116397392607417591058584118131090773515676936083097792728734301568163478034195792531687429938151286612588368853484715004773451593449524429897015922184858832876277182203755620966770462564322795781872538856307251480784707973842517651427352693352863681850767638054666625649756444084610958668149708616794132568344190885482746828209524565839717576399415433322849322402709514449404365891677712237771959918145370772574793703428240828734062106717229413251098799022365043276191191112462653418746966316222577052485199096354862255945242052465879148629749599590086355445094896994702214484255506385871211759441384266313754205131434382431868267359664719280520806493515195998405660358047013856861498592601653743743497777514628467656921089576397095163294044201417304727675978381470749510071109344744736519274886261233206157320615610267870183393250140481731290753425273638746199535667959013694126158545400973863436043894436378746163784671739162802774649981147640532869852322048368868946681486588939572266775759440353138274889454130369098774212146615544257918816133953804058314129894124802268817500577018261728371710862966218417300817684489407905538856179239838201614146351104744489784291796819213203601435073883026517406324439377698347318760959698865792426208893777375586364321063421529721898096549910134716842193917748312273030520791685704039701213570399062654980252531566013818116525375991644833620574158180079682633443667864915620971580341706911210131354386526131744847263055106339983977819451730159148513299724832777470633817166356030627933233780977236896967079859044733731500402092931746098137448319112733445208150441753741047701884392455449247473743100404222521924475947128550969628799795148604009753802943417035512914200766305648781995746942029208196112394227263534569039833376013004561539968589877598061404428905832465578592032556287259290219761630309801784110924134586821091101047384679366057351060242378000850835718416358973148599815545540732133359733418903732495029453472173129852780222331399770000790798807972559207141754970250785150476529938482699454143708446607788762276854698500039224028680722360729945865945999902468087268828854379898868057095411023585899696465537366483602161364209995610953400429609917597139215400472997677292080496832951776731149296435707545487877346996389102299408691102153523401673066370611243611380290404237886282358349727246726581227471008743041261541202916204201590576405983462242913860661587163735590530655245951390696163239697576929373793014322496735517513188196156987625214269041112349544518366973981570458005485894307087278943349047515956316061894730852324096709946969631698529047090153114361662303233394238274306997679550198999471639229625580621025326848606128021386955701413426809959825730351661362781710526894856146477490137985925986961393149959791030896837879856582372593195876966317399189807658311759809163925765555502165813481702036998202474202612606875990203050270749120528571157676742846365789118371805280910682138167255641684431699361811200694895179323958727770057302349625401537403320084297789736821925417579410913047726086699824841967466235710235439717863727562045364435790747991945037881927737367817145669961932783219044919630603352878364069352599786952694874871253414344780069499123754938386845758252852137950444307339719891782519132037445163808027387238124014361315760151578056590094040755081418285156090310718259050545764430795992174390002237669323246184970222462935677442065405720490868436859299084879032659234009270805949666176958589471286130439774684976495302563420747209844189360746335756500908827198006848669004833351811882324948812818060788074349210189471780714644049488745071510309202374818708207897314390845275319206530023619415954102208908056385276852892003359901896411724134780868911625323402840375533395855041091051764589096140124293723762359476494707104954539600910321428412030726444976415870471150044472375690757186221725219648156409652086401692679868458790581284505825239772090445728569554912279683566735808352935885546167496755435146226495698762615663535568831397264957048515806699033879906359675203694632791701957791263706019852731485802728486758061500200887194503973854460725875607533843838461368568932977841152430171411839717123871639141760621668647448067988938988465883316217812072942028035640927732419915846813652049250284248497552116993167728660922472045074516103045948452686907074818233843105596525964080855137650276914168207448053272362310724808208302531789406325352358436726368234574969843983787915243250431485277425825321808763807592764110670884335741118169249079147131919654146610219011694656081238955452485311628320202458977679378363322289059169761391720391979905959207687541036662648766443099331036745967266890427176610522761869289802280226636660512972347247274948826562585501798250253082685691024535586111257115966864272995721572541073796958533172267128418848079608870832845639376865128691082534028226988857807988938251268521216387816153925292390907981798056544349289846619837963702366292473181660537149121297101801370397232831908735208371202631523396057176660567245947493018910775693570551456691429266470760529585661049588454564688045748075926964058025396937914696587611129522494040875224140952246427283062889246003615761442687274612090235791344900413426502597932952703457799995008034038628963263304242713724817778187508900722291185891130604957185055340726093216452299379512991167787071316507240276029436876580453600050317041070816526048185157901889263205695782352202988169178352782895621400210419894251273677920993006035822335032311558371193524432562109760443684071721253028796322302634771111910641589988914620123462906137278017214950367019671323924910694783773572349315254286338833339304983521154071019883678905003546236321926495241065108932873663015280185956793208709561534342353219478881930878451674874782517172271830102509809704335375680036617787803689292148415295629195900652417526697930549595904163407226066522421081798593892429100754492510419350311569209381754991473461709997565301217174740280791411560982016864894104632324335972744878221238582258948307227521940058180708409072674354124581249213979269075668476896910220826475626875950739923837259286636294238502989812751842642079348779925752205775551994457813631523224220817540802929011409646298534493276965757202176446489854092698050118956202871292479019002987362333662787415008120894941138388248223918415345922346944498303119730177434883813130502022867659097826125134398059112665586885763055532621738861576970388925626300755095232653561861551104450512688637521903762871856952620929235400401535283920565078980220489607450023967679580377103200623606986579565174428173742401373869547918936661414654273722385487467611294600594791129793059047268592927426516734047895538165963255540114858763941516925166301522174873080026754960786005090577168380578551017913978650754549281837804788016948817947718302276704015880110079333372394000282164233171330145779026638472760839732306553762879274773184898822790682119929780569263605149878176348144249284196827376431319435761813730683376515933049693237520384681132639396803788438962875083145185838629042893584639805878445128610373132981621582262006035242850934616410264328328864757530114563201189044442341642703693850359481158623285037683622602426297484957953546541092138996389235666788765549707619728692297586491069346985652800548092917284604861404115703154551433639931280278510141846477185901960252953011814552568201298969166423705552302593676175730184472986975369854839535423622550630368881297453810763419567862284426228235564304050766832275829069321831996817726499285846602303259440569918731779449627675844148429246161834372384929467214473676329978287562698242634378302897083562036819585427461993055378274883649486350193402003437494552409819160792091486246242759392416164499096660407387008218873474487032688575887126246608752006141820250326801524998616629974286021832487521877606438018434103793793825292965583501569740166846280720133227080898566696318758380021798503624219621701079744099029252663692106201587860079851689103068125190690864433687922674981460527175404720482842118406874817267253306078462623058073022700623928356573100626669126397223881522842786705198071125165118074838172979363769546004114052756422683358306643649090761215934856298279134861001878637160168908330309828033808215612650916945821314605645021244968478702641073408979569020432926080696873780772424992087414775225910155460592977444156127386346746480166653365244008941911225432815399978888138114666400447514367257854585687605534667236148831012141071759387032766864502419710597283932711266877403333759398619798827078460438430873526443083760293482190847283178730929300089325889656838097123271037924929732869042862998052572085738706861884824587790812927094911371787987462685413727024608309473261020111154247237013447381004000352559613650346908842744608175497083344852321056225985046855152722177422073636421949097651059483368495627109793437748241132952953869957006325277059043061999529428884593735370478309228840880967907916745588320897730995112535552466668946382787481317470301893560727952393865621679525418244387147679372777002481171997022766958946622593963406061577107969002689980107009759471844578318864602318972959151484954937375128990615802629029508565379491810250316179775481786407331364580923563493957533758078805465735641892942216064929131378083148464676653116715081673314768537183495999867772735907925246641613225695577369540923275941037519870751780821553276719270357807212034795161203355094833335040165366001884032102220059075657131076448359052597585183022066504470970169235394999596994927281196440989826313920668827319603934028959789772077739197803827613527762037114052026736422693646817116418163097728817656470264513425808420996718238917868667674481070974604547910325349463299955383140082367338312726772463618583911641080780941372429789997260889488699115802132699573648880540902625978457487119038906211628531711855734010679504505025087533311474558028601108824906617268891283619142733955873362595269570722320871248911046955942793227906909451136447601059071441978237257972502377798372425952638242965228006633257661162567420211467322560094883467218786228306518066702002855141613610525185839911075070446566292050135198048552477641723335042906465303222262589898328531656862039200475470008084098186242145101480743236066402740868513604487303630475947484235642302835600727654021625206917113694987356729347759550967488378684703466025137602815678738890214102775016869638020681827158845660443346850676324690198623624764266479825736050661693792794709871679631012098128051683717168185038327830583535099075177285061173519018766717069502823954954242069136365558048871214277019819281147436783476243065551101823508327324513436176839079927404644667254930075411175240046770148836441569615671363517421311772838203860797454082134067238464907456145167332831696912279849207681360549870851226228878415917541396030000628469821761529626713072920157611976776803799879785247373526783572039398271260132773807770463071191603980007940574190969929181364564237430820534135629164011640291682285782682765737454551415649532832787246780784264283359115025909275044024550298111372476292890690502087806055509306230916678462457886974747152064946732639087636493300055527956181408498665809358874157097410728859625035918256828342586981338573573037077615382379168650644257298799592310798997454985377004490920386919352154926070888007409486228663747946572646070602288779206742498067458455070593007089775677220741858398234084299443645797666672892539729175300662657799324795549688470821472139028922192549875331319331901729988957790360367377036185302013732456339305400617719587932656432598283802286104025491677476105645833695297879208230575421899000982267788683790735873163005246801081887307770686042019916022522503007762929465669617549750900304488917139225610045245587813182774395155661634167088530833533994310927806243040891795378412305166874317541939194587305773759015240120739756090280289241457125888486632149911225068637896928878011172358443329515142235217051753404496446451992233136742381984842122258155439579751353487314596906045715976406756102050543539673633788430569527211757842276624121617894919628952040793730451869539585220342090399177774529486183962826601968509192853339089018976829304637069446241211045134326335657568531969724890952476915751106318754578488278691173451383568688108552137480257347478635899594614554793794940341039280379389722751902424810641996260629913994930492763760779786875965676164773479245535627894092667535401541012923737578759154032054404679940240906253562315332226039807843033756924807046573139638461813216037773142617348793696214972735351871059181148010206392186609371709052409805415301378769005313868188007084425598779222998457398633307820521456587840810725797286534973020538491090874349693056971153830321728895078652179167340668418878516465519472535839412385478145883272078989303143683533254544078245671713800562714004760726830492306645589510603875796356728777066098464866611716767148260008972845210927240226256725382894129700596748050223693501751118737790482893740553675844711380066535107193050030026331016485503147629901781027781663972999373068543823643404727339807017493402082908232214438054923783849515613843803632635701461687138868386123410506220392767341341217327207809792296309768838967158325996100080895486393708683191348987730461203217254767452472837484329016918058393004760001821225523860207685635589532447250676977255772684302283741777965282333282130346537815740180820412415365569917517822386662847543727115066711203337896723197119055226643289927758315103950370908190498406084774390144525516169437464138934558220878018417021950521162414834696193044104842180791362436569433639185292563976867482883269328117745694776737403750414588771218476451826135694817760546504199767421709063401568155230123950031182066747303400567378356161435496291530205927662401204543625102612031874714716560567063829409507341025964505903875600603348045644101093764439067077471700952189199385647122818640728995391558900092896021455092594511000191731360079101131014826142413787340988736550390776114732978912502501594550654617431781224049099313091817370412111948419781104794226645290481607265239362499122679742970689370021315146578229864627144945764890867157864949088325216152142861806524476247110512268833181141540820372040956626685432472747782209253207757538617446929768618339221220832278439984248944895607029224687440255877928074110948688761336437851639650600131769606172213844122166856255623353146425218965154980685564739324161673981520593154839151012705665686572303561082921366406373870812292961763585894887186141255506885081732851638104785141516729605421749306194485999111179189205527153411979942688170459529884371189227625730654501347402454559445195690471654518451481926973873243821343174730852125705401482647501502632709866628281428023172613065485085546457088744817621073171075254534633159751551730457850127779852607340214819751394869956978209343803508556498912682945661890292855066910489119631050586858256084192426206510930894573602155666727879990986079602870651283370439504839322800336630086222488250074685313449448483212448918850959675693013401147355430378017565641819912865140348458815015589562024088799457351966925647708732777017492615578535393615813217187267865453195073316124238719689599262831515434362993224281050825654455959960899509216043961751529659803205576348977402390500374256959729665511561537098586968258564965224180427624780841951102508840920523135684768444273946447742977287591275822826170358812374228743925395310646651302949606934865060299232078727463923272744353357664244652377708552662059782606080475448010925748577228030108938104377874218438705570896532604049234730322624248388447401350432888411361884811854929213699992656189496667214848356278815299533649699219373792750202832786296449100819097078532655536133432905464578264367067375371479999938016014938593812946388270033521572068988432520760601799837004036551457818496407408623944929305856360517202475698763150998819196444742996916342337763960088878315569161385788723021219527925770767460131221256734413161075141735454669792797931732625056059825123412880583746999173657361229023856895827857390355134004605364518980283466365021959890560056566810630245401291463583559349888739159004353921103628631475759469340100910725366244515817031630189721751095289923068310984787779486136163156535779000347566280132368685425036235133374079070952571451073397527973394060596525474233689390096342391027527961373887519958597337753709730583615754282403497382751948968295366480222505220561328566841194129035698855216497434363915822336333105731168366185542824779163743776476244203915612702357507782251688373432044296834014201256945812496885603757345937005155630325320727718697990418798685644516043393966862224402065949954907796694779603066311388643029330727090770000417126292409710183031461259435838812226647671846633371465283180350594432693643125875186807464653524526358421653893225720928385004355181478347109759440731333635535760045446261760942498603256667736468481681670570872218190813347890089725885654864351365504478020395921219225716946983284013850115047803545753195152722645810469226461501160248310175408409913095699961734244123324723138481331804919636746829143980542595961552523224587059166611617500861886338232074513524432282017280680443988336337123782072646226143142547237420163962369753322286848722353761003930047850347749753655032274058522788232312655793941985492551164846028860746880348053564607146946141511959981499894434356576712460697641831234842777120838167059832867573024810438991061583345877029991177035479662688055657750776248957335228523470830956702854538790416010985442607750975433460659818788677454526631095321124287615926273706269389281152377529241979440115269602599961589371888976837730913128247535446140380029614805365481560117645208064861760876955842697181385433722107030075643352003270666246696806908169873781001763699507730220218162184647076730607923387107129215680659256824313576941102043500188896539704424784466559336626254486942692918717317677558567533062221912902234484866797320667026287423664379565377200353708817978474664701311338514410420371461038417957657268406310975620531272592897360436061385587256494614359925156503148630752815798063490277315905035507642475246479764908351199380055608190463514918522623882909495408128741839889862635674832444566895130574462013432510207423881574721686653946325034613903819127229940740638032809789706364243615192615388441573299270766082621264508309325658234262038045593918629670308292077659067106191385973481749160620700101921649538044363871995773692599960742454536565077878626455084826846501356107160927627889729874504021401300221885948486022418499205223390727442616370165345713751643024628355912101472277969024324591071595478536623109303597571225960793328189366769225023377440830807309306602880508252707953664619960192118746386224699781042812990055926544826614893168016093690521240529442891990723846138114001556814322299665510663894259155760397065346785205051546508303374747953148653573118525517411770634306956497784309531329145271241366448463945674857216370047062557720010726232855892358657752239894680428474585609865454047272297568171864943273332297466741356931293871735362085815936859926217313259061749849464142225092767456544914452043580275768787113226362557588939128351563494723319899168379386101853003153036382276182925689575995037673067975290749784309164977533007163713952813273728056772688464411213463626790666587720723022999594536272718863499402739131753931595671160071274337082203538337373624255216793929932189633536856631854786423004054834785490615895805544842176434112806533733914641549280833245697872015129548105453789357286912606427588425967920056504375369243755858124342593592703081258289282053534931742301270306750902415653443498430607902765201839559743939278429822862404690235862889584909958764842013134266756819051933357735935491998750575335016907831967422483978961368130548999669400676683500666770112934391187986779690214868880325902570504186155894830868925989719971576490350206577889220197862249629905770229511665744159441293161336698315728065222026946725517711784677489742430814094193896486863075520417385665258981706675455839349917180365492316571786025986401754005862563728613236056280904508997086541971697097068617858918030678831246419929176343530062796692820299892076295939846868705218264910633428486044351041798674394406962309532561139027448793446620496385782306837764557995657229606517276547620904299479210337657375762033922025864418943107149320922240364370647226794547771947065429284111941014669793091277556462575318885015560023286384846376018877644346558499198482304530833691532860739830711423472198341578675704046005445704298374209999351537326794228775716179412907129855802281314201643171147183456142440948573326975367055457294906247415394769365503839004802109137829837402958097540103996872566767385997971058956415222597436914649573817479832911427519540885999165165441636827658869458836315755525685577734494500303139897103734520307150956691078862683360395257908342444289343072105157105243514305832602534909078110703746722558429861777807593407015555740583311839285697466353094431655693623979222666376126378347393249072705874074267575686695501273240944042594096685804068976662765139698635256078212477821953984763284206269598038898924815588848353346568564377117021396063051488563509199804540803046274410863979990335843012325768530158945165052835508380492895484243239156906478918750575071300384642438158573304606259909771982415452795667649734886398886815491756836916132173881065468590586005551824577883239827991614595176500204769863144674992025459525175171691466168093626493788688457141971785518890057601997715112190860372341068391452602562695641834215819541140143041851843391169582183029888216471266211056015730554509436466834101103541682942596596837244950075063868053172432924992717263846180389137505199123378927210350079209956419978399560489737999559381567231249540260755816967954819539505904373894262497172825481827994582700416857402099697802806160883399930528920258698596179788311218840420775415812134472719574253568985378559513421528320227780397739778202214867867989162492436513585959238112853031413062638719756607771267224656191912114134004138785439454152021293318180918442789379275330197215750301686959315061216757737131845398809750563792077296461112141549106285122823769228885943253295829617213173097698508124551776219053530649921516579939942101602741443861952976390013879938529264205943574316053777968328878026622993832746690725465477975902829467329507228355554725980049108487522841819709877291142220167158693901313675769522851373168528443181482585952881258636726089835125944266816732882214710600428788851882807548381873052631880522207726522416237113439494392094744087992235912581520105679750898330993810867472049189460521224185136987859889706315463176357163658756428131692382759167213992365548201868941943194838708623051213967108115643404790416228360004445225606252921912368204710770071366222619366244396708187047342398936215067721115889166927567088114416213901046581670068252728171980103034214665967056033916622355119678608768548343906494790188225118139514853235440565083217111856355361145297794927202823133321806753698600888846801976510179124642505528630123463998294677354121258018179889267600233603380744200269190647131457447487488639868350163482212523059168502371744506679696986349695410700070919438992376918761951479383793551696026773609335193083305293265717593395649018775711031396372493573163023237096930963731832577673000799267698778851867365252905393681831183630929957987729228950067711970673731705969335394790529612143604050127523999127379608943479811515083890585627484404162078689897785541221195003797514449326433149931870946266925415276509363497172903577513565699641878917355786497228674512113454794998368726829096796438982807415620555582207860173529320395593051824922158390053056249060887531978458233109622702325482679099644854843925061162564869757641357038655940368436069353916247233508525616687330360666905801556358526581456319283580002432274129731585531480547072802564204209349281549758274560076186319973568963629557721145884346006767814507155638066466224100131691631641927788063238091318391914098314892091676731946500762924266077227493416158142701632311059012257581894100591541782122361284187053733242735967744881720618123162547796014606404966649174463333578593510126929554417748159437551222168462929652428884414677971370770569870317805876526382292763939153883389719196945625309591006005513616177537181616011705319267411989690120473273057463626385687110385651980338998258997513915033294204258732737321009382671131884245172812184684462328164827176116455643840115593523173559625248943870179402447676163480772514938231526323507525493854781316787299544676760762709224716987147143422501920802044957909929778443344622944439892400554624266792482208606954904445904438225445822927067504696560931360228340642120127258762995715700093337180806585968411626379735958963690492251468941833647650782706931879343123859095190069069185539918139454628353090742732398301371867074177195948050218097846635208396670475335947573233286259168347782133680218554827213684575357799844357982494979806901575006388674734157485332438186788275821679979428826346322975324981606969865147845293041712415623167816308768187042355514615977128135558606865672654215861186825532221219016511673921274534364150695340388678715079556911080531440997602943665310639657933730955911864073241111075102528224481776408513121654931794807993511325555768538345276460152568909267045522570334212727730133573981817300387056631098733553518292628387277498492629447849101759171451015422960961899701064663632550919926091764678009422627583859526375024809686250467092944732248381168614153892625167145283829821478520007579311835541556421227282063528836368985609230777395756675536637487042252210825853697263284036709449570938489607306966582556236244975971958976444374917317590477951791564797320481770168496281958223916900119338919977851650409075251849830127339411236569330355306206562492079195648171269590073175316493481011186607716478026545412442201541337824115607634494346376863528262682426163288519844279059943660917166455372894523766795958796162364877676732301288994750018107693385712924470731050303596638383569154212049504012861634653913366859631216692235002123501906493628750718494049627052824334957409543070739213529195456481985822988710027126206389651781978965852026571471140485929427155245030369732515950733215843260385719631871857612463984259383906750963368873194001881035329621393513848290896534770959010972969892109465431976693876069216708797728614428419547794780183512725742581701887776102415723392818147157244945438651960039864953978608628650033491201391151890827815454503946910382042834225267763033687189549276874751721303937291497242802570503759205025236012629234266706876921690500504964902815599017508817020885415839834946432321080275001875526840421744786535021960829052123489266962219992790519987726105591432069125289711027723146963330239487501226176516985331072027520299181880217364305566741424710504938749373077431406387106370818004516824472380770582317072560326564574193953086860791275808442254324554890897030826648966039431550513168394585459082743953927340828615364060983089974340748951212599518227553014014496785784850968319100247948106164258997327515973448503200488645191455498678215636598046755872188390015886184179497120704621720210938555546156636958521109249431531234996889350614981117414810848520482112237760031872712636075003898337557565694533228236411253652433636959159411854877277405563809525827261419927553921167703511147315979047416057687142077846100860399550446297465456837110177990438183055471687363550715068231731916589685980012391236045515641412286854373181431145404930331675633132048192006382462786374307838151544427181200168940763447754765940273046289270031957671594290778222868661868372000675112531952217793715678338209892172303992873250381644126139379552549994431085179558718502438586579045780712273655449754977985072618660781149652516208566989470399990413358543172324695551913310286850292904886569182464606439441668015765059744281487840117164831809365466546938276812890086965563214829868050878152452610385801233847041758570950560746126393934733813889362990936677906477000970066418938061917093531071759801103181385653230667021452100034014234222058017318876110197293665681267734693080596250300267090040417201113967248640537147586000497644215269667647162582781172983593424284113909814553439966370006767378860165577511667372608124694816549409548912950162828206528325619349707369468858379935943796089447255889212024920560851051611125029471147556574476847675536722705399498326594025542836110763422982489546580756879597284372993860469865648375650358994763743536684817165579642397182154864220493020534915824612298825537196411328520994159473710544316585129739301352264552680956840297256128576983821517718809581996825474549066509823818694057678914526060422395831522509784210145580715623278461733965085708438789192842522811180307991039050907969272558254233544164805609256098139311008314368137673467361781185373439607889208065314283748389671710029457481740761540541247895592732594450778353590514631849185764244989157505148179260357633493678105595662451216178713241820142411877545426209311169051219785606414436396048236007523715835476558303136920969545859780536297214392688790307943668152510875613605526615332239913153955468822113535082944497399098564129475689985224191386048531637123228337178259561799914709637811047732946284142874999657147191782104893308207653155262255495685696711421986013314786414802455879410110314273145683911085514417008803125144717824532829620166560153103471927388695460412765048191462034215901364177840119489843854069938148807856440578715401719172621852309217883521818459645842384014337644302346706450112984189506936013795539031792398204635888624551561706197968232203776128477991541084962380618600002599845315492191538789853635740857917675293751214890527527932679463924876445476686413330664645396495528371453768260838718686132252500448105174507407767802235119209048828516365169151596396112813726195713034168814681341361551248526675031835318382861631775956598036103186265077787563957721828990965455747259171552097222730828189526147459114491578190330227113500450852112483512825823260718832353707354847279185157484465321443806074778704984401301679412198825297139827676512514528591259001359797250599165859384426658799123411104588496928940806760374362149868927059510626961793989723625273215000203106399780462571729713395937043212701945603418074799456910397653913809847540338414283699248372979282537721902643052629348051740347312820452014677349089648686354379462599941678533910010752404378247720240484983577949720553102703210894885204907284530617337439589194592349474296640065121665152014950022058716089675128899846667310750393133017858255101017121120277232149312968165738113183804164399506185646108816109288500870161628664224114697769487243419546328925399710747902333857355212286813442573385996122863382565290940420270172393283140254832475489820747428789262844855025759245209093712238363869664847543176970053064142157445134953574085131096324738085578711215184463509849984213867781117574818102504002630090484643817230488260037300994200218367135903697434550079081342988160774299722604851516265771072122666492310241093707151354672626327174125308455423385388678141669771731094378641168020073391687817258505009960765526858681314180615528033709744924664538425777102129649118206679349726527801859189011483755467825116242274875877717483110877518403914236834751196307934595488679432017847365281465451764931010659857558983926305512079434814590784978419718763165941587041028231916618113669162262072179456178492157796450748336150978682530375156267800881861027311807651814561149275600139470812050641690149577734602329520322888528971389929261773110114270074131916538919392005979682324504362866667693134984270074897342561744166454888984567822770846556954174784119823431928858107677543074831555650403936917116478000738475174888054994546101100885202807894654247152873154980341095007993165260534072831689638486502813531975468204224537295353779288403724987129267210153414487251852193478119321508955538171943053184820140868266882510834692343554358868036057086489108641186602319807017929242490085437598819991378620833388276535587201322707947075232458898511444230018890782585601808606297206906728463874208699603992561658391379226031316189415577090681229826434237844843634223262981315813550905710575463534027778959447147526126555043122490754782746904838245482575416464080630400383686335185634930246083302063919525567044847005335884381413096599565776693936598765688148483561187084347036765215499248393791553415839389943118707250999188919553482671855474623319363641086192482976369328917054100311693879596810218519064508595692348357742843963265350466460170881466650942240757210884220902108287065290602583471603593299014791652347321945278474235436036372831516884484036135331089465889990560405639700845208724208726531325887964497075949454483685373906415902353525805395033027542566519216967770895590225170198028719622999232259562624914187464272164069363894289389342099480400009512353189661320347938761385189516636593780548061811435531061714687018403621199090954419226528578868119055110720360347788760142590816690216841518078141349284003221414498290923510351850701659763238389899347933979760413463859851231657767468610100896908025708503018860483433175142373837582912494908462769179885319859048682719829396461099733269945937379528335927903378402319355584866331862753944517388936265354295251276512797390642714324083693133687226294037171910815863457326483644801647665475490385974418195775073594711409356703025345944271884713048252345791259960457138596690879610373986943952031086522027201362735441243808182644079122239221874125696799476813380299648950899227233912914748642281119839358076984031841454009841196589151777620036566136693292914356886806407131071378354043578533836496738699192676579800234302485552161276184153847066213662638086394430257690989837617786405945033499615295502447608248617508554114031637450119013619664050739140353602841411836423415245379913382362335661083405390088867935995544965602953019412488882958765986572064129195328464915560840637422743693814306018540500745341259247988983353864978524120245468103608605886031497213469251791180361906816915860518055824221213959082900969589033299455649922070845936532217430166148073559975607802744912113397990719671254698622890636148574894589484361958520377001926983036094494177378538660066078277041338554355539491800227193898551770463636871053787525720531241185931437795653411170857605914075109079522629611393904645695754601141372679063142143597456382292778619495594499699000255015732484055748485286408190238845156770952301322662771998382472912844176209800895972866028305793774448101218072769860222920218165362699139597221088665698861036368589504373166320331909013537595842768387016842765882419274545698475504340308931983596883219590367171629018886707624557966146998448272712221430510673895041431421134810434818933069007266905038189170198295193890742030686880755450882176087617687959186554941086384852732062234137743661267322286849332952265982550088017568980412449529353530667577875120323597457249817325431594274795631304511759321343269660388720378651278988781830870007351204169838130740992341352071136682503091628664555452545221194680715363353436411418910239735049315449698137440388284166400424699258373222471396076310644782400582409533539269699586335593944256951771278448227073816147292285999346390630411712648401435524600589571083841042467678110427647432775265316373287282135246579298343654503363624218106359528335930240496428017339465762531122159047226138787208379794197615920190398299185643750382524529019771602708089868515066722499393728322184565603240595736409875073624492303860859864365340048443580687976041172949794515451775346498642399063209577865507310244134602808361606413473518220175802325922649778185010050128824215194547112694058519630479201026700873147297140034049323219495400962860108122835681716580701417564998123286986181620165700112018631038546323754195554853977164538018746357940842217982373316478474365474639380121796511558880461846611218552433810052165925716994947157593148739492147796889413807234039299265513031776399133744778676991421528551670210001096095477508492109829673550483238060161094887069450266985115596910104321850582591878484998319313509207727346654764008463611417886676600083261617806223809606728494577995897444376735344248323903339188780005596805007613542505155013605597644448718789058374252606456390157144316103060247961374332570339389453012896269356589681055336984005689528500477594080292793412410703583839367069822405407731303711029768248407583861129947012235488001480031215513445344246305515969877817745531102088009404588209139547873795074225337080897347770720476579175089576511393962493207376697061330252061260592340090054678888343108510367013248510388453249800871915736699060403788198189921054759743353488889446496768493981995235349027213822637721422334036190061383372381155745157207139733506367970288765010539254456862782874870176107677428918710909437371974103982609023366644312010766179545784959306540464546585838682424572146554964969090926697775890451412060820067409615357318183532539315164096462497939087953647679291688478526656350973799963074204997345302383932139721652885835867225123383347915986388507246847199187491493258505489111426364666864431729653420869645272006771604958515661606788638458081883911249146365725672584676620575421983434780149345881582655829350311840405115931713051815771280775933288609509072314192206389078623661012988413471359285556700171257281915217645797008088660453141814887021485669658922144538610757086367112814242039801689766985322526312235369349236724403748116845796294203050721229935617859262187514074914794701951032079524660218410254273002359388737241483782213967022161406648688478433524204546553619837819749094633831066088436209259190631884424613785488282814954407247978081755592172046732784809385944032172751869519186147738077934535483748581020036986508005193297675991699334023942041195162924934665693398146504720512511346331606022101834492364611887575199807883215226939888614913309383574260754507876516026140424786962206193727634567319096561908209737655804780287290239082559571190056504963538501026325779323889282147856614419742158945176803659057335185985001324151532627221939809350232559363443235185536007945266431781497709260945192313882591841947540722440675828739671520243607042611911909411123685614972225627058877702920792471128116033616143096501778976062325219529581794896855468124252281244800757076721223353587738769366904586766744002041085687220063444441030877080436405865476909174139754604061372975688426405719653784501176379805178436607704330460482997919980272717657800328122517819117018648609313743580043470235974352972385391633173581955086581363012449417716460586664196569398456632241994641140583366711529612528709799545143639052765032552526464335816122922296177325336635429141732800664805434329189212060704685320264496022921553213605434907279631179996768996278425756973183267635389959593418319620446581751672292679932022375818120024176429727899134236525967599791425542462102231500037794298429957420116540232779646886782046264652874212956657852687757858883668137557844092304922845778841631043064884058610323043032743055732449960777015235736806248651733450067630196825675865780765675978519423564507484133387394234258201536355786841605532360508941874616170739503892192348886233984503409534345713520776289099397570869924968523850730996351114450883714028426319618329807701592517278935740131209949178832733208320167795533511327144980094782948427444751457490516622607110135835530771963282915409868810596746956299687000405142551943151563403638755985972968904829330163437468193029024547387731010173608883982597090929025573165611833900511928356565725300306472319331177843432012856821059922256502188916416159470593104926877161297764773927084660721145530075758726437745201765666199195438320583293370890866669259367114822943375084059027002524825360518791492620788309979641226774467930418181879522910621297213445992964602642179024775357084819067834916574418863063738664791203740730082271361824821316462607417299057189387973220173078312142454282453821344595702301725157413075635613850759408979815815355937123951021837142649461340241850123753830160052853163036884930643915979228650331988988819508587951915569514425241747625630295679879531385362942341976924999556685149237041295434757471458104384131427635426020564751696335185218690967105316510870177116367620943176239963054710573113773928592778804833348778234543112868116562137195547435536751203974716581744694083411645114750225686611385506263259337534484267573004950816261894363349436991960027002092054897476245092633665449111578758786637132433178162283842481089946340149250172146622611446816989294826186819952583204031742506857480379594492964861089541809659486249844766307878935413483864625323690532864342406675776023856852929310751568698435594316428666517728146180807445707680063799020545847383782540610943919926867616871749879756177462700941605193849374227942658822359102724572394363275635799598035341730216071261897503228051037572542100866214439660255261051017751267262289395513892015173554305333618177179829988518144828980978529904180525001715102599797578732668955658990501385476935807607090433018565718661393475201084452170977080915239203360860385241720571698697813352616385090375997059814799194284828800055820820020976571283248128990639061232181393186165347015352306729884070670410023476589897563773436647365339286479543868070581215030620363761783611697993179197144061110914233549745663913233445283104079055948468625986312207419451923421263268072770340263019507589928374357399080548855099272545027769110221055688358282273307009000556344722436875749747528725695170851554778483081448173197337406881242586783738293779878955854445918068039167112347790724639470205464622886977617457733544671081441664193908158925784045632597446287778643814472829698937771955962348042724459735074169499444735908861354883586165812120526782388708050953705817821150568821503863057802673873818583907165371105107164651201170649775319202978779796093215845753162621288147239948357508729296463729487074982692703649854832375316001031428642938644181642585286173378870648317575733322673448670806924814744201129323856435992630266129006608570852972560844969899345778655363636458303673586170870956260187343532533062763248745032729881186597635552721328591911143394796658291581263695981222835003572046602560566715560127830386328641023373828504925655943570590246086061367748390367750192386065150622692318270257013973733124798162467733827845032283470734408162353827377720511772805944634645556824229319608218258965099045690007584016785323884885988644770364926613528922849913600517609056170413198258332413374606991236943976707612960125228657893813581426741245911418978853149872444140588461667350907203806890498781407586423460679248398121511218256050153428556039582097752641959252450302874308539775750656929432899924923033244082296428308873267325440639135436334905009872526843188780480114161695035512280451486216209298266561835555653638760022911290353372980910190004874537710799470797889004577806847017004994680735460653446968421742367584986172307363556412644239646178407745382209943675576883919308411994743688479634651163519710559562280204396644922404478266754557894208551313433707292379995568629502182053175688974018670896820423587724013638445056748514101903433236438413768314300196218798567629332179070759403400236754830512169883347903934419467112381630834972377670506096953286322101027497710745676223182438478263442187974539939612493272169437696972487263886196508418884234862637138488383109851980602167609126364996318133253386942363730010463521595801140911082930696043598056384576850301473263091480330994118891626438742941646092986152415533349782186914810379778131337296843704347054069993173179867381772732808382592305215404765253731091330444551512136148591133748558030583957668176758160885486500656896252413346126067933973388138207163684582415749623530163889760032378786188397654836607740186444291477663295645310491841043718983402855882992228407216883074906035458743913091215566281852530015057748300205068653142137799480011923667113777693201610014184101946286570334709868725472562014134644538658867554102465256019104160053204539464509721516333048550162219457318310621599287126473154243601549231644960908498092828858389110335979703214164882826184229158695943960494838122517430864302456146791695482159927796912026737207758890266146018036193354588339754230028572475579555511568914924820366081325782540672494997712277026908167344820983542069148820538981497104505877923201097364172457523466672903489574865168560782324687359243156789468470013096760699409499377434494306914141135258630788968867133513055133843699977466697245528265734692605057114529619346833549742112389064717187601694286280863302008216502681760754830909792321006316589046930941661989937177079907832987183292171344730773037020497772421914790564874094403850676079282412102333033473393756011045274489348141624857818926017996615337044858241894216613934111563172326670011210628364143444482051227886766949152183465478117576566695930793260602439782997331650095989403848779023895637299176720138276746048128756996803438069720279572910710629446055162103984037248219234902210503979107731786010079915683616401606713660617466250522096503233904629435631808169531774967741233109842519451793568749386478179548384859179490086328571173416219650940513006101846571078997531644862330985621363017078632352713785734091502900181014047995841001712722187883704495279731326340695083953784020975801025192415581921144135197241021118573496344792702903759431384073889004656334457127105345456630474576334834433425889542113010279967849579437333006137329079506290721808498880539325706927640115480456842227360241587926982845020791743997250693781891666274514392991647807125615112408583005686684108190604966051079835752463630714279627094706873244380854243513631776075397632241658515031483657168102811527016386980096509736170023251894350084025379112563342824507134948311075436230334827025428173642688447977168544737895444773171096544832266446917613073758531470988048070596635657800932860828770979975005209192781847590049716867680329112460440183095394875470925774627273467289297243517927197803731262673104587715224697263076451056834869833553409466356565442433324089793391674670147578187010761804361032262036333086584969645718547123677113505869639304684481021057199138628623990470180448907611768751066797038586387192147208565029903214509221454398990625605829359597505418434856614769080389482899217903363731303413930162812229587441238911622643960311341103581008992213950650125981401984645365997453515661735708440045447028741334039761309723412501658323585164353585037318729778032750633416071586394032223654925318303433432781036411957211141379670480034933998361969939281099929485281670371562798833520940060580869635244671011081226193401200915926579764589905794541866779252306551138879578896615426012735616238171374507509827144701872976226348706432933894983784552433864641784217004018992864186300131387121060769872938534924885868693029237751779056956385894466201787488139695645244253034041910892973236600293134851325250214621081957021233653154609824140707983606494044695482773483734575049416134570973070273546917039661779582623895446155650809854153621603829106875182253554838991986158112456088494914572818816560627206602638606598767547343635267062917910786856742465771603782889447524584379049450108636607604292813413864317918709651898955146823577632107986720374092772360341592676465098865990985083227971590734438528380495920126226042391394184954212231667879089129534432368864576866606308442958243678602204339889045149674998285454742336199795154538604328607346691004455282257873912813516612231844333711553264470082817387963323655012004638878918001621848158682720824192481318702017485810682554133570976873492113273196983574755234762386381582118060832218913051333064991087568510997647041242014717185783835545333125010140812181433622327897550348184856496301162147834623892456258064989950595217685695304945950702435228878462429666173705717345092714861403221141445092087084511985312205307735403525865740075385397320063606357518473480692494311114031258130239514161736655155561377366092423171318205713857112671290975572679332776200795586917090313029077570775998888203452303786176923481437682287985746412192452052914171202290363006313323381899339067265432861975453441080201901212053583466499572985300515289449362394318570266992340288786433587102928089459046108085126052325920096698982934060335693422938136515598577570785736713988830081538953634726888666042899888976832727870535876396181033980604786516182013357703269474159486562504377572539230130146600229514967310189451478745612446351679851622975818927093064330404366297638477044776361950905929139231079249851564298983379280505237568624179024034608742387640968663176723060518145900783972440703152996338457850446299990430740319224036630949518998567564304547336143404571653031659536573002820568983542490111981665668255284604123614791527080902377034556583718026773052633809720436901197807756155343454970949327342311030131439115815925848252662856042946755246511072066999585099393397408785756022636424491384637498858855894470743139897607226078487070990438193350587691835929558587397691507699677218374769140725845988087490909749077134597028715325059543209145421770883509408041905399763322993799634213792053348618634228633121080786101451644009620588465319208280913914597869112155152233738689202180580199632660621813252640422945562429728279850733101291101185600879703893593673723942160355948783421907266382702586750177469632211577254326769533921369297941857112127530266711227469166712841742491406570148318190218629779729725056934984347934256357996574589763397658986760334779476641903645168447019929250520235967562937100501282405789559199600657384367657582135198693920623006760515294622968930439029097996150422625193772375453982800320910215208813030399100172907269597724599571567416193463278790494274083321888804560266113357421337822764934497142823941168590409032432756952012366568680835634727513021399834086274124920161188319108436662774662644159093991079568920978382210800865931720909968617633091253720951603166376785397048451887700140876315772626327143131116410819908220003877232155366949501828115293344344019752127470650407792547112842839730980115831075219889237640731924854172599285249639180338339070432129115720070455882701947727902119873179835679949072040407546784649287226331647638184299673341830747452675864826055933417131079085660203521742636597523825074892813055000935146160277922795511932360904747205119065641077916660649716313138266379707462524464805021146031184285000187380789199467674457860140306293113490452888990445439833622755525124279528795207417726360254627358562226094513233537541870386266949900902561292852326075786557834508241430723555757392974246844490094338262784072049663112349240918402311134587523968483541238288964720946995995505711440857534338480540022821094972111699439221754488224062399236457800343791709336104610253086078260979465471318764858392792590468500643210524207929098126274578362910925342241350012372920917938990138132880489821421831650861687158511940358853686445814843413830657142007230262415831546591543536991887778281151785863975860222255956880066909700506744597217198243279358475037954033480029679146962121519256161111284981737238444779962451625720673923010101073709038330274578651150662785182641281614211486307089650093893070898415396919931907758952540027910376803996723695510416753849844696093706900658769354281524544033015681036082380139141895334473259930735578880057683791519252408452294999840437706515595348101368337984658645133266827862799963253426091991608407856888562590470638791166332225033749703906438350932061605041392115808475758916510569819468411409708081763404136518769171566910140884149430578730386845451981966089390547366923443820727538106916919407935987491889321749399705818244177674078328583056550615519732959219597221665117951877099104947243125664797980641504508148995282896193193177494377285005924578762153275650691668862566342970731083139656426092565557825219162986895729436570793528144804523647788890436384858255969224949181511882652927217685766968140216378612424350033003406167349575027923351880882356989892946280613650461905925863914505656228587137966882713062009012231670766191343749382521408544336958930747459987263115396578634423753929668350067273671018661405904790893879187945713758136410028321934618442909466135833325836440117667847040278772715779683618591835868858875387383175206516446167214020385815835122620435027151461612820278286780299866584205814666606549847153001821458389893450117271335963965659931401307330670006069732791947178195009242497082480415310143566622773178643214851819910870399362195345182478042284682665980630888149917477780542041613452699200970019247902993177387303697147625415899959797783421599793319661534553708292232280745625970350768242934685861271251117205292652597724631108792466987961004636071057450663183097629047847460880591258439861414424087212639807850734309006772589920722970929963857200831036534135105980506065046936178159393526745049275364816255119226955435303685519848664563185419600112161888152296777480812307068796154291973567184122017695246290719678733556360123104880305596037525387257805789785820515485975339430609819799101773302476406018139456868636150711945928391461088621927698316790421317572597295904264235751114766168789374646271699874799057921190194279015560867999272303131449735900944560013394441458978192343273177737608205886582110229132272928297367775795757318167512484073965176585929448767743087569155662971735098681616414129492202953829965979461800276663635818419002419391581521741967161978421678327057934140103231540055180953451856035624288826874477910479798657934597885930779180299629030149982845818309480645817735482735704405739027690846164995662610810050561658843857137767338148864303339731239088040137156102564098893785959153601583957713420976584070401950651547521630234160274703486057810173776909367037849691583872367132563490602015370625325575374116651683105496742526914019055914240909973202885767968275207786481824824480500918983127181899411779298484786188110204212038237395406274900633693262227447126517525625937541730132580101758276791800396226026484513494998467489843538744547119603707949049449140665308097887970784347973152534070719803061462295902838852447728456452564777414128248473353814027505374100709787215751282040578881591163219627053668962265860728695813653753028594659255441926908521113560385074566577135026860854845221936772476256241175288740496291585088246659605815398632487575205238701872389911634758698699815679311555107195084337663960109168821289540575262646827934820967955760896120131754959544525514118462366265108625965078015088499886905937818929219670681207460836759446389998865091085599558272308925137075183664551180285090877759078414971442288857558038780975734326363718454064375781478926868204663228539953628280865319870719351645333828917689706216727702430561269930247406403074276394463525510660957266213269775911261257570761835176739787419046575934557031237838865399795671706949582420746429770499422732141470849534249026207760884467440628560346316350742073618453196526355369945332728899086519398896095979235413977458898703975438589339656743426608745783161043293238944481928748799196076807213831463093803978081061076060334931721251689366969216286602114064418308050406347853076220076057483312892256067468294628986718547292202177449606176185719232101003151740411503282825490861585559268215854242883054107824870377518281373368545371305774468259296136885775491311820505345965797756630668254452125112962994473158123536374730854691862390092242660062454102769907534512477302168137655748457940979292520019190459799078365197554465178813815333264349236775822905111194189211632200764937621991398454597223961362402094406760251425948364778480772944348242110456514911807350871579564017788660100348551270703331385512038370765312300516871551511681356586933845204250657715842116488800091837029163277263559320193666343961572599316681840252485837304113232618137973779516486193541758214472767453118883447168405848540749497224240535153210736641546284416902903356672965430441630164545568113572356598914005833946560465261954434442889629241736951942706537681383402316989404272078708988558830644359362820158070826712082391825530266983368554341254573365986157617458032989159811452815291712141710806331032009021956287462830969366125601570792236982639955253981093680165225456122490135340981380428257333597294330630960332241053350231509845796772516427701273993565345820744928170474574386671226281371493055167355318741399458102273004509484297790476195928838863689812030664234259630957890617550583693521223361596918421725144850450260639445902364370716320344341730691593032263911275117543063016876941873915266834242857119303694341924653425306868540446761157879820529665292814797686136393352673536035861557946193547359543647565956467413238135114555244907871684330058424061107694106238292553645724089008328371408377642103029227666559199348850911844535430663586484197016347681820041088585273000022359297358235786873566358693020955543057059737455587645197048067432976380280106597998051500895904987612103805542741853966606210206408587340547869096042772270557183266112608820833792441961186184173177497559376221360700754660129289350325818752980749264566087287070365430975113632284950767035542125028941926353215209722884809156223079377361643033254606888941854415253655338751157596598321195697709293665578926808267691029727262762294456120357806793537758562781578835451903179048227236517830234916877431432515191700261120078291898894436923071075597853206077957892647899149486640369256402456510888996422013124927397029316815845485117034043697247555411343891003756428484374319673323978258248560439243496940694341684419734412797458264430483322864272068737946534960697744966701287321844748294304924616652020872568307695665768721083932998716962020154277907410277111086645657374867084755472927954383476060163673509650637441362460983372073760897445436859688190830104878036874124743921103829829848709946213339421190671697607550666519110313513820726754067716239707881076369973693154322732612568115617065204459540559911011365280141692583604694608108214835002694732573356397889982628297050617880129428996551867279822073620494076052622940823002857940632001998015271074863246071024797437453031231232586184309667892042298179405731658353989620909111727437677252546158824639309924936542425175244322808802780256425875362565771065528906718326708743190464972917846708710176505260067360766139495483765738530400442378147520034325623069641659310580341637063166870374938394368612047954750045344048782144148186859970963023770098098378991221012479384872019368869266007174952543897551776241741000896617760415123086822988078908720595917945956523799866856534105792703526006096715198513063428797039717593179763235013831871945955164643008886636632585713832670474573863970433391277382541544897487389534178072136064157557288637859984609107762562950601907782014476770236597996859888011179906633330866320000772868570268197319004244267053834788686192243342794336564939523404183480283099342148984116239793261637625800047378838425651110201515796857178762211768302520315203786236086394873254193356389360787458625105816545910299083045841265079109904241245742611606906291757203544206948873649846369814946450504507028697757845594308024942929294527724210970517417782640946587757990814317731518437174484856720916410858101858207653940440335948453656370207322033256141499254331364657528144081333462131636601569188718300665377901234893718244607757672796163570497041489001300945019129754409777549665857108866000995035639980354821091724534996878317198943598405044090810529874637449743613443307518115814271317117421223647226777987734668442683376080521868463880427313462145342215453471512876324508780426405968447687145861234738530693844331442499543360298486152625986613875357536641448094609636025928695098738435552905062327037500996946320651453075169122986564605680183265208927389283842794685164201984152801547522240118495718073159196250925224422143535395962814438200366761437496890639987914756036717605875529530029416520360671731171180702740654116438427967552267876325722716087890696762223660447407463059859525602968059586998939987804838532559263019141524643856281583986654555091580204768889801450320958072577328783328070857190076907019350257153886460094867046029354252759002418994609831082106295909391473613990867233475316591088037887816857775123663782033904060258885649466838254055944451813256488393884700192919352605417620572965852661177603854770014262953064026749114042935074819491777311482370946051379052774812856319319112714282258857226350086798259236482725995497590109334608044283094470326632290893703792255432193793661956114309472111436135260557277599225582089456323355966184265919450090284835678172205793940151385314235792970578289388560837360909477873738473004443794301236595428488876055168976491715462035467635009722576609651384948531583894049710177408387801002708437964407950991541822167953438937307572656013996279534254010704722760065447871163361269910579307317054169000366221871351584682069936230400274587053038814061061909958337128697008949326194677564664711982150030250752226179937988444735167401937259349230826474900610735781641202779816186025523315268825176030800030091126154711229918193876289321465586131598955628331672052495835534424572720738089741206884607563529272992562977694981213710619584827761976597774651964623588866997450034943940040485671556063314327172339122617280920272423252914141737352753057429064547973966409607039917993195440730780190257713201446775529136245331135216488533798627982660987986475346872806898690833061982164372672502420902378673960070371701419518708355257432878486864842265997237657572571924817321571613561798438542748027073223929657522712588554901273363722343884927920731684423458311905227965872471110952387835554610701114051887221593028989137846619035893664298705994487405744533955349236210218155365678396888641284226005253149158111182426356116381815899598998864306859403306547740798903224824478770725529647083376948946953066016978793605552464650095006627774466394544157353661528337083049858981596091493910707226948829509209177177668091685231073557993020615446547519278049896437526780570682120344200290711202756714036160273495689723117231974254688118841062371528272753394483706051646781286533663777302957307147611654881200637272174474259302609377865269949477998452282540540180044555539076598031013092096466596055194527692189951684652803073450909687130106094867792788948260187892332803858401142030104185456749160379057003855610316944768762911970449298904637640511725161599051608285213395261306386208194156850733870886361911090459318273174919392989531453828715822768417712942358523302241408625232214920843929269110248991676439556991275803657851560568060266630621294554041599087528619300002222620281920506403599410539703641917060778247768904465539080862149354650351729842965708297837066598773149550768814173445030320654871916877810277581535010826869831522187543628159864112056893572174724264169779632208966819497518249896217819516561174377445029771728172499679455783598084699336522603670461526903481007359867078469543625980334319489896907657186630447712079280782919515721954869555757348834629353725647502600626895553331007515743288838579905278295764981296275123179477187036572759461186428910140649521282379265086672676997116039383158459635559562726970969825633068342855280766660236446943497191474575083187599540527531091746280483749238853373082046078722674163808185179335089043372270418544869137880564343491207987688860632488912551156579303649079681318700022867754473579910956225822166033361661975546693196607783716184983227361194455309379504678274479435662118948721676568245164597525740269664749952054112072875898806288009999965016999790959850889540714682070166768146109452306612750174698181816847373948217732994100594209554818879186726590505581122482111299365591003659732521543467460951983689063229661658833189937356326045393136779045963194861446858167912076691676513289523379128458937162313267848432384555512927233538756516026237599950306722211520387538709278558377458452049159722876248610968603298306252641371274472658580209748243168276393139379237709273548896367133328605565438733601047776257854424700679389987993354316508797192635787840128264128794517859460284284926553228964333693381394281815057635653230720531947906763620872647682115356849359921882960657311467746902592863054726515150852854863934790371314192971248252489660816497536750332507939996419351479902491325755060504439526019197695902062815331284569848611092055169454550938027256371163423921343154241736016155816679235301554219057699750821475998613723410518947375789877968213010304692827250769746092531121402485118610422820549328955020635832487025634000002915971421386836027004970414111105797195257488672592341786319145575405905096947688144924867664342613757550721154683509460212519359894682735391346567264857045081547251974837152386651384567470124231391463883618348817593245714036280449965731672305784844756141182725034295362184265465422325434873852060521490622958245209099454691610948366969227709867083068279562498189407732163674143105502435487773645117215264329797207410832565199078115320852886146718272469209422458194550404649502022957436898972570207852910932271744428728212457140624233486215914796564860739472093039432414101571831196859280172975731228599000672048150595938215864364479835046377562857116439689520155164384841532014846850113618292181498816815835867933483464135771232278733707772295051527604505276564563499485563376027817468753283749464585027595746604822017439413150202100366393509242874487921410239194034357066325176326655914450868141019418347950301551756453151027164189018442619078911627147629976345747258514016787536071889256261183095317145399925645558867031961083330631087414275795568492159864721905622077937680745591407827898935037614424198848264095226824615722009106961507762264179146315311592846023884477886750623949579824013826675258179874145295918271767160946374773292774091575560007191169213648954342705914585609249918743707694822889337150174804032114338774904167142523939248822808836111997805930527375931370800118230769174011339504453760339570062084683005732280513364292848069845429590926513657207277465063582991163608844209275222347188058121959548231329831313770121161577656681105979670142986382592004150280621398063314454840330500777801416564299443516216863655116302845775565389359668230647059146612114800192505988644813686228359859257395322049790407128396137863070230392625290839394107570944723943288359006809337722272383184101315370323259091908449896755818568668104383499154513165162252795087242176452598693779099303901412134634850217554955633265262559703913644936303249526829677506698180196582464371520063448782148042725993438735024423039045389955005375514194089542614139609748714263554187866988391280132556220194824171237213915643237411099389697924000292553858404104928074871547029529255818352749203442401738117060377654370863280139509896571903198732288376462923579277755427874732671422854376481673328776256479727958840931529532238821713192366378645367491133698608768126926453631839073264836032074563744824509445911077257900841674167981335507982020849230824348060947046616106483340892803788655300489566999234011483106046161033901711796565777137737680312800132721014540187218435864222657911469087119577570369260861323002246647901791331591433734967320590740666415435939704314366959446402874886035121885414532706302528877921422794499838095045616013361691546886703581851352294842188586610428972873457473459690435455854596668018902301847403466032505342717652212375420622222875040674583139420378444829148316751733611680301016502505980466354615950598676197334217046015083456435669046328004581612495865251974549534987227416446678342725678748879526891441256195775095170032765098284273507783056740256144178686756350924677487650525278482068800468414548645620178001921084552592974106719304821099889130084389624041761676123606592243659317774303949217289775393659337095922793489274892488741061673288616108043205184327377358901126253755842816226559821527245017034085821398943987149846791512437730717911587210743635969597151586210315502460116372704703105353555104317288197394401433977522534450493907125975409387791063701866145758707980342223459312095576600464193902370302938594331580374846061798354040873580754390350772341483559651982227167491928252144627363014452518373264948136805298153930655088917192530464699530540948164513392139699978789190560871249442548443212795867956984266712194213243887232013632598059853383917565779608856867550862005214639503467704711129140645206162902726549221559057643788390900375358007610982242514369156728826777641669403638978008738807358878377407948029253224656924977908428034650414633371505535947957426135618695307657416583729107902630688535493220966955425748975456046046328263198250717518610592436518378455388420897671190707989054161507603934058498039445692678182162888146904193489863695765030432599475932984279857513093331501983063906313613544164271442873034454776134770079406641189167240355582366052013138709662068697679577662382234491480425072320201769690940210763471897766516857638130471611402391840617016264551960097909893377128509242567116354249750483176442295474906230346672707886832113661003656942621389930992881268554711651745455740138963971876392657151132009471144575588191796595835162680834019467572720493656675901739187236650253081878463475809407337558831014758585162907535734456962987368875674449680702764448039113688667360003239441672604720399720810718938195492473215307775509926014653964884011695939736651982839768692621294778772371620307487703391531620734557268264870708203156827828693118850075621773072060085917407136848586139873761305155891010439950698295440665389096220747492705984626234688451142333827055535053218777779485207066354351945146654366918438909045194331303802667566878898402474789311934601206145428460996622128372865576409485192878224828643521853199470785010941369388904789180167790919993191959522314473758971690154199441544017550434840661333145698705945047152240695316694271383229366955948465989957706274482669090762159255963010213699451419449762130835321557302538606254608197425270442672642517156225466958212599140326646102309788678072713777003963576431200574360021340081462140640066990464267450552382640437634546937716589615865842761828108177711124265852630100839575728949653189153789461955729483154820294113406709105166304726446520070260478502267709467180504539997910823088008618069286413668206871314519890121702073818759304038298829720416646051648056089253646508200172322036967754249407343520766302943727155522450331628299262302574034675776217043538863086816326521033323290910852498370962109668043243472372145680848143127989453870910597549240612366807326086421784336978083692769438587985081561253957549833396017262235735298310303909228313480772949927741493798943526164858786161983000606222467760290878569398486751659306751433064800102333338200726850149380668028714833128346874600290490559272421337512874185768947846887949361484317361973133919484565822784520730672309484631274474232856691824050462151470238063346283064110862303171574726494693392655569495080764067477071077327728557753442220502103019221104578074384835510040816678833356464016191965345992964805238191990467926292512680373148459705633715191056527002188119156885497235183509236772658737886875422853425738460306149955229621452288686222071940412336812191215241471168797344023765378916840026126574123486122482406016030596394165927843056754774811995626785946288252295466048817107561305154671576089351473305184075355344454458670803324647883696167929943406259634664558841354723605880392237912730702746561140022321458964309785709589234618007128738207546257220959473291618510573345028784497858255091511384520600858385782423260570445321846420605435076054148832336870081520100078088943796065882819383308213134131162615859923582853511101343796525079115046427405565041468856923641419753484057269762544050669680301817103954145175394286348878258085466100510867392638582394108023769012829911111815303963538187564173543334808762662902774256062127671771915110380233420668588453914909921125260840397771417864884923626384337593393348079839428231374826367775450201879502303684747647570520677729175879422797718899257923917520598686340054549053828530926450329161266275265969655409950694407519954292956758137136483002657348591659494312795889321421048990268008508962693946893914271898303877353762245148255841014038635041056623834854202149729075115187226530796361779126446091830332968497631310796956639696995286524841648497249028831729561412064500039322627734909005223920750917927259505340157483367437819064168549943132966708704824356473853125799688562326504002394811463927583520970946604705369628947264145354464858354890470475673159313809812588353075243542728058617098146764949324142980280951487085947489189081372761259343110173989660661696658672454175741598763424605219199403071386545599216011369533435344830299748204330374841901663300966485386571876142654970975255473748062331339211868878742620041822802192703162319448710351221355202962300842155255316455290127539547695680044787143409914805467129825576331505542080616317740132356883498974909942324477310264574723716272713594440103569348124519933114311188813678222044237661623545006714942486490890201192594901784843801818409312522110319759772832984060957801929733363443986457680464921640850854083366441316136507241489124316206704207261709376745292066957584270963177363513088337403960080447354655678715886081138853201878819092792818571821890093944509613713989126048995524800112340452288457905793145598057652940401926248212316928994191483463624271598664256787675227906993812108764581580769537650360600665581473638382993368057099739996919415580150024871485724448359794521431340790875625981299281076787588036570352795178798243074508177826316656931361140354610153775113667380846987586416877083558883627494275251800592731900847060340035936271650105334931483348432577656925614350217070588280956516990430366890284388211209965211902578762681861199069571857217298783034567791751183069941894471268172222078283157175352769016354917744907100093269537662992333602432896691174107194446581918401095396674175399708327021808276393671651626170711397307937266889559252464024104305984465205892052300158698544124739238726959315638385464799077589738891022539482538723476496466760001401774173018458310192429856309939090038509413164626242757300416003154777085167408824388212947823747823936085405913421316219285061734402785210946090454127455160850577949532949964324143684775601001765664897218387339007016714650351896300178122660857683994986054196305512235871802021268981397696920016717880732913980694464522185243487596333497321918571469723859010830856416709335161512437464870627951707438756470615463078531587957384438736065592624341089584111899202346415321316234837610411512699526069650792940557044247544214115892772425318379542765041457911880624070056537045571985249984252785134074880428190191969103939604387780318904288116293397908816598056842896353023702748850618682742702182116912410137414157167980517480903476162268126985931159436716824700183327500928022123125216106268817243547140744698035043056594821591036037922628037949111493015105643258015472273736594142363472808722710169501212244636192968173732054722859994515332319928827501354898980185411507917663929226807565380810698564215732212665602686030006410367860326989542713372432607791668612055000448168715459221014704535346016301955376234621409207740436694268239118548022334808524869050022881321780927065884449218180422389479415511579631338872529407009361075444045064907219945826124717848703265682755611850936194825723037163364956393272947332419575031772737436856834377190288194913991707213144889913344632321868832306824663565694198108181405423170049897130792529382550802294208114732848277375338550338307203041844664510475189357939526527802933559887871974477644955756092435200058927539643884909676371014200159534799603993035062700102961549157673657047443759761730645267172079180152827129512800605919811213963169696722987656716690614163903917313335397777113648595249342482038892900819739869591232304201841993086730704874678960570451295814097238697953886134214106290281806411103521211423931592236063535700716817978610710501615226303362286724334217949881509083411606653504941956641534792325185813640098637669587701200741756585159833395980255156840316693607072360395462795277559655918818062441267713201782011209381842759654676891916866595573018088513818464943661743133407474200044400443252439028615269117063977608586991880150486130716928344211567564679945304957239264122016920959627745241268081689981575362883774916069937912684737492294329927685941438309322392186889154132349953523239291133601028020315336699273852575190985934728555341986631004943719952332262481086540180877364237261825265949673334719389091648439999244425721052112157442171011809513307615250352771702855975449253271021389830804249661368916554082161413626074847508741237392060282243375833205888809731220517672368635840225164455779234229733460567972268765800413340939075400281801014460221310878987728059542688310533245687995413710319211192511632796411706695954770623662848173956269093531446463903841668157836720068539010219881554213589733296766357449887201588442501224088470771802679425331957644871153582994133545286714250803579138477330677642368645502227778184978184845240478066133304584183501076019782874622314044512450690304255820533875477928502100534297703947412487954924817454463948557048256659873081930075191731857917715417243841838812441387786582333745632896979117539886895335321203147824066570595800015890811512144362817051193103171527295614095555201192495598455779608769473596200270559162053960464782276709819850740461958129372498471994855530669842881593754219281640886812510173293442753802321805893715592913824546288349036479706566282012566094955654211724339757222304376098829108094797621228089300041541186801145323519565478815056825070847921954408785417093468660964496733305148303315620407498732750183282511292313762929244527462284246154576223313980745127918250524138569985714261660999522372009420671595556290274524016872783966859964389471006868495963805943162008922522294345540833175878140950716166929748221867755420559788141695163256225002911618182329179914797328401931505260658098574065323951019685988657581402213586993578437427557122201333046774439334602234438296425846867314817025450675871511342797620982651993223862186894919035884411392391993801519841304094805859206215469734596209299263506832062746026404664975590541133450473933975417194822075519249559343981699786757756308231543589861615401609936730332930132856287295168313953338861153199399363626105916980368554945717443916085100754264542430390260095742377396894443700831622702156216708941444458844383413720911509934857869560202947570484835538736770065968718757201908931665851523097997695587042379010379071433726023538468056117520837747472721659372920725812334701574286060892440606727944494639671654524026932611685088779533796062592034096609856671861654279784140384052622215034856398781120471314010657314602456460124830782695084398823513399525158811409193752821339666899951905684276289898983135056285359099592306726164927419538373636331641887430122862039144569048402887390333637199794434423820916933066505545121060117306916418644067438640350348836884709016198598275713722740487318809275792955332102303177165633965854062335677365305572125569242519906070076754156828161579650080495931816673309261351134612226159842392351429293866205161307885992181383276143642221146943390310615303754632505889173407947376575598625090571420797575119279475270698602425414350553765158930734769139357162562520914645545877200217168397327397741584588494578651120293926723918430104008857272197762491591451550755295519073946002823711614339432701704823537602063420406425352503053799087830357223826117453958100002714635144871004487776773441367044804365323617770489884393672649420739190231385386527746748331619261484482438551110789748005097109063374138396844903335366870260841920597591576113532613697389412478694782168949783788397489717337192943191835820820277586722040099449292602140052674253418885317615317198554158679209013716398376347990566356299835338846819170121342475969101901325702409667640894540069689547405696861101587029034795344714990264452748478915619001345753073539203198845275825701605328098566113186832820632078347401222848069957990021672046887995609820641719508385075692575859943163664627051779889532010843174038229848978950393074138454286501079794660091709842963397506582388087664137630700067328673226392689359085276079458908426486157235860559015050672032952997306993198746528869762976510679498433385487627168838866731009382651434514937759563435781708549195259479559403701385125659853587903945637335672131067660369740467645841497331257720244939682663303793389438406303001117002855599476821810580768876494564447473449164000664208648549967667671057632164296382848056949029398688536855207039703714788782911960420453950003355370125948857506390861324246783534506827097749144663306357091102157567995135522777648396558366771525683059500942405873412777255616224946563279199482767122762410108557441076287284614193439114270379391798780741098506821751397140558147973906150640644191573521251707567939459669853848337661257740037264876267482426618881316522910248436989988847356113385733751204829752192022145945676653750183838894101425794843272274585366002629381969864227769282820973580043224283879050298339132588538523464412219207293950072759510486669742065510964392975374595199823745055707762567499807147749968479355070638234098801962476230465093280598400992160399376928278022830033658522215874386790143624966822577194370409993020030683109634649147508505925799900555376576171740541148198798385245668870109129894133811190175189443384328838370341292315859709168748944957248862163857618560928946232831276747013870611623355654633702443019167254101840521181531101153076783480416891710909711341366816372071896194172952388988958416603710244836187162827368354610745191252848534268534204650656824109679203312152818046213716475790259784110203211938813064827958559158663875750977806392458932645582467805748364883713772222641086655665620262836800837989368344613716728175172572021319782869050303440094430694524514470316925983052070637430601327053486214902276629525128732747615247298043753062002564580446472153992261930602486521770130280515135687725194320242325250238401173499309849102933263639486273247720102959625130601270450988489084709879240412156491129816244684464401503763735037269109307645458713404337390036970076896520393959999071552614678632671986142872341609609509653633509830243363859204589660328685675130798906503861388257761010042947655571384544099382353675622536847901562366613873062880965266776445800474546855903706233857287254496274621137169708309576734418666139000544207713899647675022857471421958705834505360154694377414804414931557670932963676868199574380298403291012784145433780609727434098052937163068913087029864800098765738474485666711234987106703413708052983339828946993824264050846687419067611792699761675768563750340272700907303756795498713574292407553591870319227056358430727805449183176474185442813985934612546155819354602093262561851593228473023613506982889479447205075465525097448662574946588031754044645939412661970527144397864216007245594031162588155585515936807762399807207222969541201235260967789327803863638567666543028964667120560061325901575483420129318298804760805897884015815919705947390387272578509416867402082710117390131410681743201338005054254110412086645806888835808201597508388864033207305312133121904101113038189868250216375040524592803063291797774158658199199975270970023200010705755638844231405505945847314248812026120072916486973210359002993097239370929125730976913880883640562239841322098816715891141191644789480908272935138508682894352555815760347602648758387960256535128498105543937438053703189578083618684864519435538384251897597155346494532298696875223002068533304360630517022710666664553389156369747874932289216477927676082308334860625293429517900140937895503683832760088832655435241661328187813928127852048986444804763981128876580515307879883848358556922666314453054502890511277053414002114179357552275862343540944011135516787812877436311965944340865920944361486218301843423746384846475052340629766553779620962497296178113217581979131435674554302668079020511126250232963411534051999956136063218045427864993477768130719908460642993097608550278420653421130807437338906716610614990911241530567016908182354554892573571916803256879629396108797483833590701869828151226101262654488946477208637769922971308669181352225442696291714962357212354766747564444646297734975592028445610291653748793650053994680782767402915716736505910994557004799388340873056151306761772429714238543992698982696677368886185788081921454990340937921726952502637040339302998924314822972213457981905057054886294057048390924726813542388345055083885140485001235482531001552713635670409837722604523354642537590009334819936473727409140799997295403171195981727790425431764974217561800140643747679498538070808358795806629062424120369334691688046934289214940404265218822246752016433515005167679165515844452081087404455960863678864626284916501512593133512759435793373226153040301110065584050537233926846760699942491093282689450892202822330760142100303348194254564211953316626494671275560983783584963246736893257875544185193112347756227751438144983420655192458992714407106332587785269908869618859885701133480240806162726974689492751310387902991062084327393507358680952502020718972110309142653346835333238541564393752427193025924131485753349382333213155800766025847975196819310099866852658491436088899566540989344756185593281617153852739851240120010567468099744344308854438733513992294468740232990663084703130303375815331351111760954016344078612281092721317073000732493520387852601314859112470492771270460115194858752712054117009740357087684089737686374665019449036152301742605411481579434163451573036054212214220868998918405504173361931118916947167198503106446806136366449689439816900789638564289371559685954720280371407743658175088145538287606025397124649786658307307680037403766893219486023608617381310007186162590011731759001381841099094881361775657853329612865536608964238407873870669587411748291335680190123263723674739734216583186038996630207557593886944420176172951182634640901032004721759096481739689705259176186263669454268319117491137340787943941061634003889662311016069126250090939379478454140103366252615329915534384182880025973967452412761654853729400079423929294957682915796529273103396061481758926078072810964403220820289404961985852100594999421134945312415092198155438338785467923181874665412404373890709507297995607239374183557972324216652627051644798578823744894816501864545676920687641654188156786801640895706285979658410812564267508268755959401589288274167758166951688623649630520981360827269383839607304200721700317290951246815210714873854972790226466869420329142704529674828346081449347487770826948609507841430232412569249563223519674344934068551158991780244243267517011766183280932485039267120126185810524448430709710644987038566159194912997912977726255873207408931148592970106479660439530163715571440061757146449094849345187945191931963088899720522977799585867877377148173996205762596724616960915570641809231671905549064493709913328191684054086727898083639583882067009289012750191720960199091057319203358782510494209160609438571196257079934693142848528354320636935625478086532423450371642893153661332434305412456330767484656157227731760775336966278064115302961097027962191960857715522576549662603572580390908755177846660101922451016796841667604031213221382092092085094214521034623756284840833487943626988396235991447702037192682943891442258384922437906037725892003307899937943537633948297996560905215181373628342882957063313751085192482824520685310930886794424751338483544200462420397346701328101113535675263209976489461154256191571523651892845116505140246973600878617567949187032722606814221582624313061495394919901412465734906819967828996275772150664232774468405633998829606255815830140872094082702822164541433956083774971874535603356764626890672549950679543399286008580768193457896304286425109044262467119836870604517268015098117470421513699305123697013244868626428234524161931152867346030438588054951702889901542064893508991476809296314663642429166215154932636119727173568449661287143081751109417998045961330894483528408372551622516203234463941465760874586937548309610691805815056320277842861313571816287001398296903053499987128108797467374131861616513718901767033345114390372509652487980458748078034584787522060302895543620901901793433000253831876828149364898266538225456126942974582136313482643437215479701506832383518499547465224616669057922114271536931299870300516032252762168648651629864372948574241492858604796096883162026331160370714645328528709732931049824069985788979929656839014971344906374910677647294869534971493523243691739819879709922166395225678860190217869160433948408158486205007781696748618540433853361237676975651321864478953295583387695955151944168859203494869363194643528201731239948544006544632844780795349483836107400570961956005760648239498251359322865995316200214769828654941869963036351874920557786692074003680784540576467485907973530113500943857750900613855282564357117375643599550620797981198665434951252303111301099383075474719233371749496102458931202908632293425111528464501051288303723392463168683182134922690104330370759619203424436698100389944200599264067637544903827679059558342495984293916100527117088610686739212103601177356224064338629986150106989020724721474646393619638938296231634082278493070051103886654084070889889415763942187138327361441044049414953659344640083890041537017940441356133152069177930847276368917857075302063764874952548988943762618172800887883446611014552308942006969419202622216607683609697399855568678208853928373951652299139299057400281704536205214870197247643195885997393693376653260863765550369159434375728112564140026083889682053634532616392347822709139462893917188880440501657400777887794169087160657152487247057088217227573314869487632460789517305529217011012539397398543820938730593668538416244824054164673761318971742423369783616966445416996013049980662907735955083273727613086188021955731882080252131577419763175464462045545377059717449233027711829783759822093057540982550206793959536552275105139257223462986945653638173710209729275857435681551016510481431808213631475174499311824033171943276922245602739860490738376025636535933398288415467624035694737070465005256018364945434153039155538483404742598712943519742078437711335591111479119309460287594202478436834370200507163023192583252990524498418411407565340027837287036504409869435707542629968695553237388878026916782703851002875363929077251051267608485974688519057575961728598730995929987779982203933188888210375996352621736059729815142477174748125598233554188661702198643420691773386809054813669969163796172853520896692833948206021761835805024055759644912136497529861929983170054252305054947741388150190181568184413084642575119815574468326825107216288579116389152240603602724624661450270338632737222851659625183893793875824292918249443438740156569166411763162694595495809184133195482511385263063328623198337791914428564072542955034141016971667210914360996917529555447640212125976109236147649361845152196330749990045713338391823794338147626813128946476153925941426486157626724949654414669743241013749422149280133522802625975372284705544406583243644976479351313581081240323619213170218358265581951162536447995811077973166445507473322720211711469404997188894621354712041494651907670326868030134023522653224273298354505868708755599253163227978597143959588118602514229398932186905379528356722957544505802248796076236482788568097945161783118802215935092909325956011436898713976007636881887215360754537984045392992670919940085992844080857105215172640872771651784608063941299825334676804934720788947961404997708431953140693937109180386384777777467150032529422360613153066776866617738931957247906104548753135180055722486385924019783447052733362617941699947405319697775213307794260980109364131048559104126533135201289110194065865007701519056053580870634950001329110325335897636699164849828595448457274084638815793084905290767723291242868074572773373656853652191980764507584943792963499147942831595708183054294128089096617719195780195379797588036824461444548775720689094084942306154888254514217866539064965278106173048340418541036711562994648671192240340013830238124718558656782961076998578708945206190428673024761497665195170571392582788974621661864460165922401440909372680680107695006152781721262862850486863238372559144407773758702465594325635603381627009382026254222606534025892986775747047868489993120148010050103822896561853021047240780302797907851858896552163675650677774997308827923551549866501573202592634154961660521062565323977110079610740449211965939887642849735046190801077727281099978774676234487861181337976170668599745465349931222519841602411895951869854270737760537540026979121201343801981211728944827422346472639153019630439196784800017898951634589200563480496283934746975171890864844107555965387581968848899878634996347687324099782605231429583750747153814060532110495443191790061192718285829006256607350987033885667162943410014961112112011503666058498737209428434609574216823153192436115942904388649588382406980224765183262561703725363889815068276314592530874537929913286225887159579808926100859643435936434339269026260816228841094788188063400252011260165666364582604260830307583489700082983004398387596884690750999155106975668577434588511310783026692407549662954919633726233328031504175323271144620059900770161152794222376072676348535354976231057105137967447363473544970305555620585335760131699712565963280198734465762807312321744488786254956575658672100151293998666008217793309595993861590777604377834633983474724101324232785394573470042008291887931131731788620596308258088376480139412843048572997197299926677843938735538483350498753785851528124707963006205931420607588910004179790018320200421845705871363251384722619421361625820538578092629001520709005796730593092905598316041273233106202084821667255386029626570782368566361286883918041616492383521257091866898559782126134074004180760196010887826172823156486273019385175159850124590622833963372000151372835895892113720269245276892181396642705926157831295493591049709235797296451253382075090779155284086076239523988799704432578242269541005493684141277448518489580434945366960508002991642268090118515538666668435265229889583004974126744438107306150773279028584558720076706941066508045770954527998465415416876564479296743047687061362108168685123969954252791704165371846932131351532224946377193753070246314622822314581097283394876472126840375018999758248919056353873334713809070195862964287190559530495502240238419863978042270061695586160231563580952838878760346352598354543691532893764662239844560688075183972891449169596672639049221953262529283584809434016318799161016364983391003061955199053606947229558015128845473980144742328748585851715769961520589186549855961715145381080806249413722472329955585212120632625515932692951116738001435117051598659671814429321569274360933035751912114577281276487116852417422109866338777421067669965119691379022314729845635404778750668559661747385259177791302592392969729572572923435743800604437075851150825851550539973190405761054940177377134054500667225470220668785114076322857545852236155854451664513052322332771419314690254498363542304695164657728704910291368029380141637436475486963907484751472370698064873497630760594595789640316191177662600013783345303852184442111598042063238879605647302087145218142704276989637691535351380130049008296027975084373838125375854184175352004584308826282295944508416458425237530491941040923518028630475733586241396217833523868816910990930734551997713089289586143992093667489684209346210793440179009013939585721444569567094504893262186735510330501509314928533961934514750836693282354506437845713521700906896087804112996880177965963909953286241518558873569272546929315923164864019524058947508961026296162828905369330833833340456807727176413331130791819526315057715770557234270918060365441152733456802128706873174799657873519855651653471612150164273908159805709983072372350416817884115500145130930913499220686215486796045997605163376253764982086733135920339649473021071863225212073363585410666306860858925000623822667958403548609388595205891614987520583966059284450758498602190809567683544320274425920071349892002730865261546929504857594657968891585545697939097980925562059436182291226250407584917853679602081787515472180869401055846872644143050950009308160113166553393225670434824739675028695031366963222447008238308358071616587675025474242125152548079981964560748538330219950046047922203551001627785574144298158489683609730551804261942111800359298553868084474847054608634000743407961379905247606534204507803104023729691382335946928762323273112241446471154002592308071213484541396289102209846508699584045523144004702834379909682201043422203536866536761178008710594200803014736320233918061216617606695832052864151528709393511640900781832434633289139067232618578587076539770203324962626711143020237410408517770665903099085430519370680904563751958104741385257421819348584383094047875106987564360655412012136910006350737688605178359827691330612556227973571935763803541232138035313730567502374603007351425587706201935152879980064829301533706605594533804972000328663554140473210722253972008826980701734419058328966347678684484950279931573756107888131339007682960268188448459814414724833879339876548348354030441093974276843316906623760398990826244233415236748793240298290828398170760319249803650626324572621563788201274291573462580241530402112008706264052977065873128800582865753621573689393566976778534423758635006532796891775576808139083033669197528303605031341437742954013970154928454628241126747469839077859571945791704318236484169409234853002184321751787639061630138439309254390220139249517697039534541453611384903609651612923241195774098495573256902456295820901265074312744562482078965294360021805323497103276303307740187552528721792382342874714596730478742491951095917922631799452905833490180858158989179928471917236348425958564333047207979785775257240081362291679327288057532880743008676829468940622566903326089607141669257872437195269001537146546382729648640366907159534223757715390110256054744244712887742452204484191820839308925403630994347646504782568644296051777714537256235874687150996194289658279118755077575528402853625976506375352125544281350180949362917865702153826150679561795502739019309081850597732864121773245294665565275351204808112344436450161556289853526523265234946652318106365911881833283448293202246635247031935607960466884531255126430469406580217668826868573142762987290760131903368659900205046216751192084797421472041852893475719467045606733395370385671961483616775706570490314662362214182586366325381433415055128955038348063191682759299416828759547877674024991654451851026776454275585100308732602773185805390782203751245150058379947230816605253306262416171718400584040220672898431925374628827909373082768100384673859498404634406527102807578695142959098982804295433977701091235054358411228737856909327879517815277341282719645901894630304763556245026072065391628395223157822394529188983334583093964098287314780496135834153335303747530553988202524757066031926056445395639252056939639546763749529832826534776364391794738484514304833159959022302692689176533635305747707386755762421288549835337019949693011129803674588032752437862175036976649007357901167211506485813589128663757757222681796449160952036921080798827781402609047446866813937762134060296796882109106147566903834648834388954671936049164265800892008234310976636160399897806438806210556625405101444090039267966457583920821133375166178450991299379283068185890636781234072455692234317529052279177053111516455510892833391683952215731842751069538353246058049230320496770810467586320968119012491234324244382670942924050720420114490158755536480140793896524393071430771524844200840631663937959385397531132645753226697614508159402950903790109349839114911596178191997734920721560222514440241928087669972755097392749214801410176744696941151149822431358190396368633862144256338164065620650143904315324783789527551310498940232981902444103060434210487743560204419130401722796392051435157834598628877430856023972063091955373330123856507368492106673996876816846517217518286096971183184877765559346931781282161155359519844520238206951489655153131797578640541079841869803635059096411231054827222892966486831337523830159509734213642777395700974324923459658295702985909827537776644015729292030200924681035578501654734742295101922889575658978103201178613130659432987408511864171143604595587286255600262677523891127925066364633031663467961795055811990382450788365731688172223173882147623176064691088648281540947687754648252218122260805266588934047377951366135481871034341891880334458564457949683601941112210237853663797721328719045576084684177775595245716006598193436372862052661377344651073522369714832368315508191114997045884711036358630368077036713604126652385407102856186892960833777152020539244396159812311339835147225059912815806137237856581583863498040068786301098405727081493771337456672907850423770715055270971654191648329659972125681493769288532496554307739795538829293420674266627971118273298389367964772328793282043096899395006726478601394050548671693627868828005978931188254181640618811872361266568114700357545942474520174710792227744446796125966388966519094079524671998048343866806371848376024304966752716142256498813680556330124073309691573393421529348627761118827718629073935075124561795422579109379711083227685800328752580658312958792311860129894545080815603641740566613863349877399044030723386234416337237827177606570490066974569620569638822928204698189197430543293536354240547116028715536140845558481837993509285585258704707993231575349527828617450850658727206438360626610833026346947374781413739543263825627170502725438325733244650570720755435155625643456720255445548534231825648757415343794738461704538993570675955457560168494764892714087725674896675314988781204600295036597473271518125620925035355140295846026619634911758156158496894639696149922469106272139033025275494783717422997622797855860734250713239277792800072253896137519993064819253158112742158783137338094735307243784588829818206602727873894266382750717671410463839534494039831873717959119833205977803875637481090758048407466575665581636469008280862997193179238386223340171083197837341467425038980755076688654339160555419829768663229900651398419958430158604672196864599593808924502995910925131240051475588977541632919783802320171828163292998379832044888643811412447668060421302903975659156760373794406994089786619995035253386092121685392308923786187594669798708658932346636181766721546017866926291771626610606170293839594976988431481223160768582962440203774719395867949802237186665013082806240555457662647116796862453507694717348458399753151790874341156598703690818984127060705827801869028752425893017849201476609039784132346013716320331029451316048846009453974791901782300898970263095842024450660277309942799325358874785751154147758884866852593260591209883807648546345921448570456789941694477283858838695884013129036367314809129806947453381546537602626137576758634160598899160981159081736112357139235176495499126778624905995752190252563416119057961267736609532568715898603572766625853499968672669974376436648045963155411619784561267763410204479144287275452976741562631201978550569864779868985622318607866960833743554262938964443916863656230860524047542550115625926042343836622186947500676886887747094060896696847042220542342814784330414192700721101835230713962474899167899137609723814931084803718365098392197972105870475824498462333150097963923622374530060513288158246679306990620045755681449898898643079270470816170210738175163350655980962666175948980076762433642576805159404651425057669400687333231667745545205665195758686866240541708834342708769116507218204048798245476555751209848267759743304427942803043644602375719400207175107784244386175426957006273831692790485238530347254581980388984694330873423366768278084580530748816940015099373821752103136127174638456948923781499363867214027984099556433996248852719013580280666858675274527889161352633633313755483433017710106688159982879964585588926488990825489301838447633413446995436477445522490991849830706751632058191990347593564699888604182521750240174300955001948866455342889148668273757938436071274635982078055253177941892606777400416570204133470521759424098283882860274816296170885503464485032138933494529402183676477699319673377966807761165717205802174936171670954101427264602978970844353021257110572717320799461284429451359192777722979440936512296027086430523976379339747530940921574176618792804083903664533376376584340588634913389186737809357138102615698231630073971856158140577290476872122290703072441246956198458370051016011852434611881303962729274434609059217342254611580813849380783449876655445234207330911839344712926655771339820798640666304422457316372537247558846737270043316610477224084833050523377497759646564906344366131263396620895093158553317350369473079479022967043240907781493595165005541122860620719135351617447851557078650195826457889906528788693534625452054874173255289662162016113507388622029607890672590419499652655962784989422384700944610349947605745784492480499427887260103527625796038466991568588539037172466863657652360014021964066435953698785414280359846041934223091693241417536987120551372072183761033448731480881353762767405093463293149506838772330564839740806985610337585394757167948202672861218133642842092486905880797065565454775621117596587626884979332626931628585932077845170880417890239807757718316427622848926562817799854244408020620494780082662889751405234061928682170469413374322533819987849557282106759207277872454893677560859198531941051565653591523048780894310025476997148458004729179881982637423625470807039883316974306513302055818742890861857805500307688957624379111013866213735986771284645506359850270179144706842826678782192918646428813365776429144906732321209919461610542160604657742988321604594403055054663944174711060218133894545846210080558725113093763677353471308217389979803085370985568752713329071479748749160172796934309484018145126415079072462536027129523980281015483093239739139762856137026223864977668529170629414818702852580784544351899315318611989774313008905321458089464254353259036792402433694605138055720651289826265096326562418052708805337789885911763533334221077352434904884830857884822002173685694516093418329779920921715801788114478865643197665742835700093660463181122965634924616539255073787459256031401557905766814249800335542797537651878937807501015469126012002301828806002716023245394186930771969041328056374074151856110106084113283401755614199484508734224593495452658889275135759785893281418825955140096202331516026756435024715432832990078213672665243288870253637390582856900519695961067446885973088532683684026985914403663301504588663754345161210625154605179521726345164044581381274251764036852822284890421715117589532801271898859014343650957900948352691603356541685982920515721933528143310848533523591881232903570893026813522862044145656481950759447710657403262727604447315681328261345869367638285389681019672465608142723184937407661517990278857461969954175984967598745294922563402701463164658061204784022833669282804402086177773168246305814063878469226447099484899198189753229896359396953621860067644000255965831842537368255276092269112748865547276942093034432873242049255676183019151119370593268901270953772845155192458419512588309941597872356672246217111204606859373022133860034437810763519928511028795853289442015336430174427920828895326903877669356361259187914643423460489283656176325208392994264869067191128550759387169508409720024886610412292451596210995360623031168487458062745171689898024148227920650635469981354134998084970261097221043137171119275894434118285741228199842951293643444494414346441512103467395448318502748539531405220845613550469666683272527525292289632871550213349538074671768525934861151751338639964673192610143484682486346768659808436910180435974386882104965052000650884102098126075716504856203261969430157348659065240299829204168311914724514883000120398615752978813598257904515131039795020992431894052710429787348462928148705162021575109250000691650061350287920725045435158894892793468682461724922827035175961430765507798289815440382666845247034780492679645362249251717567523169160915311508900771971496438306817732158190440072729419343848887057717766670683073282268059247857226896818510715534615297975827471616585324263874701030880682730147094147260375408490599266220671620731443534057400205709046021418869334515076185137219469675453387166906880731515466503672263372177596329196230764689645372252013829312870659075764655500340858344876013860769035719397743212718165891212644800893341055527857736018277453119801542010253740481564368146260123657406215575242730592682458459495132515968928650990420026330182907044799694224156627182525547027071378831081743604516417822928822285849941038170916679271375627991097663399035229924803171264789654440101785264517212205562636154980740031325641980899218972193834219861926902986578304916117849986708868270618561416810570764885370886281123082841948614768165699636061918324980703825498749322957552887603390337969287416495055555821793272149553919123184280127157384302120299628256681996942261906530759089552819573598450796778434616564069244690830256984469035705528060406816450575669988730406946467353579600297577541902960779056718399506826948730669586519358485754326574076834450621395397801292589963076170093656782431974730267191426096296881270715416084141138568054654512941510487227480236821008343482056418469234643673625926685608506392369436212661610838623606921963766807221312852082879961944254465151006626892169747638267940133274585459550746276051087422842673649467597188811217252001132875241824581138379250205376905303151425839644140188406147994996696526344637793417703298218787226726530720183496232227315425676680926952973021877183599182519452834493634282263751237859378809021212065794716456282005671683398709494745234505510360865171959057600453842689711064850278521969808437960259021337515516840182293123531684070300121888290824966185844925594448969154737357677618506468056425736515001128767129542428460187964523567854391497848898432994495122104245059933692490503033006432115681834414829083326095502414735656853093392945530371157713428059531501730820813695214844697674740680620922315693982978321574066725191032368449226554681666039221463020430826637071290443977078388654781644501170419752258056258551574279100845879488701955743419991155507811731023298635338692384109214055415611377491502492494094959140225018110368717565135573584897165252203501398017619501195801529893101677521125019854297997966617024258417417675005542637600557184995394647147914876172447061159866535822429172738689262019916365175817002937912082848872719261808771055573436790433195232723980188072053366626531900661570855056535150587931777389209389019442174625247865325532748985479332892713933138803985692387041022092067640002133446104023119895392732099138661627210450903078474945931544102557519167838658512083948777702449809034010524196977528317604636556315652271101112012978360421327713652701665904633877568150862415552614827100382162217815793996393515630289453146075544331984364547374433238767816218086251701389945111109220020850995146439534092662276329935497515096357571386012428698824950408125517488021442177836888708937520852147501362892737806254694624258373664221606478744548100959803262332206153343364413308176596353707058886331676087662352798252857477415418759458078190163195262302041733680981083385775476215066841416069642759065879232556644241258036013645640027553683146110851460878491922392009088866773011329318669945041213086013748575530755886362573841873689070797275803103358070169592482841062684901010113088537022193614298792936211843054410374004720330729815400102470104384114081745740207704104309001714844251781499388459305815742439945681000852033811349948468178367698468679002018659062503784709161665902417732414215296186071562227958824997317825303748160615335368995272868698926415876220848867796511623485882552243856033913029585160841033069493561479408758355323559235082145022804519755456989518599052630377189975492106911789970533099535170311255549277344316145395468700648450128628995202775282126215202298796860077113672808590237779617737197884962505984669746311133965471986811735975687018271553444367850362990655099337531447468995061147292598256554611345939504436847543969815099106189302611115942681834834568823089657962323874845482984116790407219805611741034676145121101858189593834126822551736794952760966971785727631281048604580585654245959439970774658616355224186727452288974152071065639067969998413564847735794856692506725803318035294512501708618512453797836516255104593877692339210685320298404441444118057176701065437542883105750952389026290641470775848724033772441965023327955331280004023992159950510249742222765591770603705101322124625784762967886422845571566610355924840240351410980164317958572988018130080987006776603480191624195354407301413410079556559431422024408539766542638987066597465788750760335292460873263465418203596932106298016719296055053909758612553664872505854724359484680209779858044150858390385663968495188994465300587191830878246430796776654646936350723665481011192126549659769723485362275866152263998539966927355106162393563945974212245640882435968453904758236034985745125129991717977526587730132955786162721731006715759627602049578099169364005378965863153705018478001268077688554710933133531548756344948506824905762902661001302718415700793517929170266707336893421765429505937786624752421758209451784394487536000729922321466319539477800766215076043414679032779819497396442104367805370086565614051039177620510866115988983952306807833132871072643294880390647620160197269357442133472651821725577968308854815764268705838126013974687177806282268598947573585218058877536433339349023387568432123344632997716527292857809409363500512907750909888994901942413739280933429559313542511007671021901659890726405278825323183184690704833460606605871734299452963042294395075562997986012577087956286427069997224713257208036682529135928485250259955990520314612533081835526898741460103635878596448112617048577346308932676053887314037094219903015034847523757139487153237093463856831913368221048936698237020490550322274848521718598774373836934396637556190792542942468939911927655225882167454113334269374878997543182052940342449496826473219344075325635158559655761285014184534563575597002039815444281876063084871814959159670360787387783551020190154934518072959356325930975458541481428803113567437017358493891425828454937008224779673729443877919414092684518220785568672114479676034858774989040462187739113029174571203458279970792320600579650228232410552634564065794354162790858091843989862303318676221043080379509505151563775451511907327890430058370068629187552622936035202939454551394925271992821626460524016447697591213863978392094437036125985125489433188624066439812917441316432421060558469471946235475673692194450939599689715406099007040711768352913720635894795722545907346348553607755408069042950085462447738934022104653174641934792124276463153817528207893889169052386557860585950262611679028671517165174436482267282353463871253781263759871451286069793213739828560587714285898555243123187067096329573920472125329164363995226083854491362791064841752237962528886819010383679861286842306287806554407159565156142026542332800463717149764901273941090602706318143602768364940414911121383156853443851131811535307497968461172887586861040031236243026954707649473086719073111731519291694831325672820601478224383821972606188248550390209574904612488138500577550344778643966350787403004131339444701493373805067740592568864236205502720729487714543431791496072893890357534790646957691895241994594367633298763058562079154918786058615348942127402141564476882266964862458033368040956835724838837859659025997353634908255802619336173079429603381006762001671328823315477734124365413440391906451499207595667381590661484053587891617588655195989798047332286317343103090865726965258173454021241295322484490744546858106551373461386096969774241806747035164547302455255450563149537433544272580245991162065036825355535171303832798338695087114554854051032479815184761140093510001331901125339900718838916976717561947009151911024736298652684170984555737745419702998649412767715068757774763863901099323814264678930384464246549716622136874836400752109113700463264285497463264770674302664781421428779751813799154655737182405693981448020338332437188714322627532171208337061361433563545537569373199890627136872492853737588204828143494747719446295644017121121630930922277358951453495110535290114634104712456532029967537968304053333418806931643762475755362936886693211944020420427954959351198555608865917676344539756406192621056269104041038876241117612345973198956744494654404764944156422613401006733682901176772979676583112471712933321870585269613325018960515853017541928490377810545947857559596005845552137316300231561995893027590442836023583081046743230092046436571795496373446848240605077756079194347436455686552171060631462098268152356750370404944400012006441207496657964192203724133034335402646981485982363019882668244829996744089836354292102173887498205323814591632404039204686542917834007869730167730012009990118817658223631954937341287181639253390017833559056076798935555765508252644797800445326130794604362528605663231398199309277809785748491262621450928242035296167817615445374877169307188929188785212127071289992642780376383003553759764284418392498326721298557977916776819373613224376345558868603914889385718575293173300016718155659413366098631827594095473017030990706477700534904509818020765984533878191364574845321887256058406240796910053841219617202743494686846428867460915543530078778763240183782823495479965277086567547370831481337033850333590599005689073962114362033134804527753089070782543019796082896576762132135129745397890945499910812685647770558421395422718697558032573938922884580996177636566486200709678617887635509676623053569349207403377022455770149683298141820958254728256181965203308113481002620448725741305185404382426537763884991900799516998056829668209632035031420766298902513195806350179087323728304808813512930445477581014849124179264947962539914528164954760306805236205156279766478903571496955338675479976803255316251886172197380167008417175976245706066264762930591200696716316175976506308290215053378042537282427055184806164536515387187851825013798836331286764250000410797966027762346468087274018455076792408510304332792867398414515223539910548281041848792366207631270315582991121068505052118055640878117381383855894310134339738680224123999452595007814850767230731782358575176864279409687851555441397028965419668795973208951351493505572820706619096452407772888178657283828482383203022308036015345155591086239336852294965760405580156329490920879941847621372795213768058629675983081094298328453194942591003927893012855593871894945059112346653224499333222975786137861118320529750144106325992788919099283399052471775824605307624611945387981022998779793483490875911320779442299773970080595834972495473704865915203015309471781246052103537101800812277466807283158062425798552251519407857259611706127759493797448763231180934658310130176776523211541846021137956263152547885243292996325659964278372750060121321821662797508227601040291738266984963321171979286700313460921430028601799866003803529730271530978652622994667655747166383744595349210180900361156217445542779112618214629625521350830217198482739813377987656543306899266309558938516234942729154109592273834669202084866850816526604720291128326317422892064481500779423232308904450419300074809682745431266789481586279881556118299749473795489915921059818849182717145307109575995355989365121353357260249638736368482877844154280874131947966139779860739307624229825331923848494379909475539386417013871044496274600161303730759397296149339066347733557322099184716802106339122384078305312073817299673520753771087353222385358664788542047062815109675208448511587350152092051137732320130379284140667737038646515636896490848935955206709353411017911715874659639076641136074493028617274798362431715828952260596198416396877911343212682757892772675873391475528013220657793085484054920387866618149983480587763867050523831622401967544210255663210000328820981302461716088105275083667434580147402548077494609242525462138846495998894582397750468033517468756596853426957813136658781400658950732169969487278185251962830032148309710472722238661188383684704069180304334527390202155964372097966217384140707068259604401770812236220449282381516406877800460607024213869244019369254597621163364405367947084342174963625932880586076304890074717526773068298273421786002046043323539210568047677943550454889131567993264868051801003387721252550071124999070745923941886447434479436789357155187488241523315933950532081119672304278904720183779934638796861322730695508502700548156113406734451077110075763454591126738797358957621758472007504662079892039159262914282401424119433703974127073248087711530173448032237906981859096791933669341277509926810518352297938653561723525335000709141637800539107628202483127233077780123634378413289374862425176080683356875539173403310937319990003808506521574720797783220291971689534614372786179424096660846710682767114303586784338792753043058986521939205381230590584624317818942489291138700121788219073674890535768124353156155662196824350071052277743456808675085667838555853687336148906554072155426719556034442627634982103818747319106527664400953484337430397898927545700924720456646866692297839343066996901287726947490565935936637419555111603583349334323410856142683315760543013732095128926520312040574817255677258686879436510104127222039718323737635838853114447627856069335581142032919510434339871248167393233117507286235125087277930475147748446175383527550727392668902255586649850076787855549460130626919718455656932087487682261943259168975616555322578774003143328989698293466804112944879393447628380957000651680379152529871368355815555256459844060343732555466986041872399098769564043545259118167047661438641737090034462122097511164802518638424740196788356002161853067116883778317665372434249314864267781290691789121450140404822990942565595580535895386771642254848899074743933170149572713584758794060188873212341662887756380481860301492970041565647105936682225567477744778521470429571849277792350129263112357813805726403609647701047338662129014147544876511638311365685236534801137786393912677934381414572088456156731096264347078300907388655773763545101623258269898040386455596513198990690657278717670476016360675157529340572870145582540852769361649134131957340977478074423136363531509677256166567351520431996072709066551820518820421461374648831713024592706302925169816930762400087729516297152810527334140954334503227380670541253955561938098300116465788346967110755868131819079646189788862124521333276495174857700984876492049339407461793227720749999848544822254958983658574276393237706477537713303987944093960961495678275765481210536949018056397331789105413494335065413044894404170548115454945930921720534708402605028375024701947423315234536190754883789881021333152484603724134509834617232302981341108976326295860429002544195135544972268502703192048081637067277142030184873928581880550207656114387447335943849546142935730285902116387847149596325389058905753567551175158351729393226633771019490823216075030961468550698565369260946113557458045490371712770537316834843199030048010178964218875127143538215786567794856948079749265130643464670301802424589266844882260881604976767874425503220328325335888899711292436614151717365580104951036358659098098152655406352942304386805936055383571521045596137080116501096128382512072122683510103831386997862284327587080131113389577273025645823177001904397745934089746644051527701953329997563756870458605591173900881611596080321431328425865229108605398543892898563663147335514215514532050372564445223921902954981664113815595816672968378028778588324784086903944219576702710555342782864249810290259149806250254377202908637343067001181416039428032640939947226132335420892078145498344261019014848589237601308695793404846866380655481755798799630284170687895140342246225698185413198817713550005598381814586480957800837290389516975887629615079617715881394837030517863044209376447100892375447217898250982765463486698513722062092753911378910718575610042105526167109413424780418951852246605499817260964809811254538150378021073109650027311192325706705896183724214357261309186861006512410254079397627144397102948577592230566024038355850454812731283551819540047071959636022609202387485952396532160493703891795627908610791363293196994099569988381469884211182618564917162751927044690577700823799114810172646817338649150586645697661022346852647728132257515110380677796814787316616814041883558785821747157019678300809042422197400709782456317920667514181471124981305236182915742672920087164139980200461373524441667864454217678194476991575935883752348816038946361043853635601822392866478363654312724228888644692037286984818282319395671959803457747888555899401340372045437030260725342284514736053879844797654597540058276742481117141522430060078590518717946073810156982338440922929908743923232437442679498943560909627271569659823852223348773955101486592898108456092138712372991303742249768521155300384102681356394684095416982513862848311310043717825050675494074799728923567770832443145417343678812845875775108893492317869508646422551008946726542933235603356447546364769548097379304066740840413934046742549911380704207207952442453099615436363317859194628063035801016196536740447662472717660900497318267720970312161511624854259870267623225064958530648876936116629012741984604402770661548296099586954961535435251298856089895006026440004317040483944351896203539404053144643356828607124838377865561177925415109845740224232040870765946560857860848104535933927775181747594314024409741149188859803279363898657000045174326258883972592799789417201267327069079969499368496809559553549886491317633562584013281330291946682146753970216058449872189368007178324002566584800453226549744575222337625124942706388580555634982672478191569350474652473036625035135071750817054207177222351915010383843838350017188360094972284833551677171876160883508447822830026621667531124093397125013590470721962130253538119015923848376844533093933893433515381752265740985976484980784169249624063733057802253226513939498726106355807934599891613281943752827826017652768966911151672612233754261472858167077167873118720855901720296213193667141080590216642258480509477029993293119435612967640461518038978926503982564973443722378377234584311285228842576720292487206663294730000632137926741365457476465747705687106149752376454355348422499848565542307624313626434714887925029266640980907794516074218508061389074020262590820368772146936686763754862069076396749185292124485697155831740982044589367718458667168536070512654979136621988536444042709922309143602965658196926939163970915772244938459493166763932346478853636854872258419769473307671841903251595530673492280038183085636877313121642624387589838725845652953843819595771221880480132072739181218993850878733340107119566004309930567943315262360449808658431760336871431362265067262393739473454458487290207974860272567228195344008016348065390347379886142962774127247844825619451327335256894660383869004306583376945494497059823663158049677529392352711415530397129203513940212138078297257845990354664282215688426577416848794594025387391325725111550175388700894895101735477900363013982369330109817556216162926727250864461601727544567194836634306528862000446104918065088526972481312024772262044760709336116025136534644173943727506719740439266018951973355103309832537881469658050253950940363022450617122969123798519577406486024426286490602500326383049281318299847707628553199887861080616058317223737195677530049991377666015341701095597895574143930755960775650634162107712678077325010880691256284541927909367759168263473138499293878334284098056237372590888930836261234511758235703513375485835323521094837413625298934140043684357721090504910030715221905213642269511169156954224669944686026794753567452520764206419737836951221468070181857529539224613621171098934135426480630552951875180076478801923556881639833637078627569739419347384065231291041709938111247756381238865104629752217823883888735944190567548804632572682702953792583225926795565247033787451483799867512031917222929097889043269359485633809025931607840736164357196831525776865556873852655293053158648513842677473054358712739807704818340661478469276636101918149246353229159603653586269824940760602845863561497710054404182666914239161474584021292591795491894055745419962552667634752302550431159319795952196674885175486201061831453820771910273984210419726608026773859414434777559103242407505029504465871592248586005410053875940734498501806877456938771297595922742594198794342765306792126063464430465900330947300100147011069429417188701495243698370736773827337327793479184405097241217729913082051700714816479920749726062934755961222287181205251612030648991706156120105259287706115858902165492358054616517607334686802156032759265564212010406259667081815033177825291686892380034339841063038195415460497044261470028529262088673966731143354720697990618230407350268013913639390684190679355228559395626018035303509460377368084706082419437020457090547586937121563797693594749163017264956057348890670127923392415373604993086576014658984242338303680227536071180381542113472937490293631822446514477931290830693577846793634824390865687132999932679539828374105685609718806163285907409246418230321600656948441546682875845876485132731098183781414608078915584530526174786406269266484540906793682709934214764064079384845751725571228510079106216857580807618280773276298147292723696031530744353133399847126385047728999799019453136089288551629896795746347853393965260652844008026053684890108436610224242070363721139614535404979815838747339663354044728631462933245266443704713903081494945225206629729329257109613416151223629717173239691993130503768025013421855762965553794067568862657963115725039074664289596714970465983251152598694218547820875504742655399381619124683187838914139273705736543384200577815245209442093028806863703449065309327198037487244660559040466200211560207023837590161077114602397612404606109909457066735896829451515542139146976895680194789605210029866744216772470031963625997949632423552494458046490484571694770247674689637724930922691568494487740292729304505329789825097050725503563549344232090010269314462503422485291111107550397672464227618104424201145320640982786842672936028240329787175256055971200107920804907680018132459230864648101767987613854596250772163009778100481333401816540116502435678195498711910644163955431427090010127980350437060192489938416130484660080874258498374466479447447705810776191396369045080928651366628712374841155993664005949220908753693247473163888285383648125708906966346239711039893317658112799418355368182636728857035074815619899341027486870474089446529441920455397659793739264162207111091699955747888832680187796017040325244625077919592871428324986185500705995889251525308433228154078195098564383080680425150764401849348518276045897305609173184953002232992898764780631285484160488405437514070431087880507759179330264789732143701285604596931533762555231454113558767325183776311897602503297191143939613930333297305772626217352734591845857984454666294443058623326668949514318429523704236119091098248987006094300428630920138452772176953979542011603653185448547754884419633271231420225850564000219907231899947096197004111895891245976375976420659853209829458159053176720760215129520327863948498227670857347910763112411425553936817772991177550117555152895420364027088975386511788691594809682523540807982225684988211664802664282962348923145575096870662258626546262105874852192646312574773786848434659305717655770938452607618325357601382042374904820125012187354229249806906348898290774038752213708345847074497447390822694345640518335220582316133744432556197547499114341334070160608699421406310567526970630654146374294794258738791958549192319627304429096098499425329454025872022441345894487769783165129129522590614564115795809363352300083255145445828000507392917813047225477733944457138573300652795055553041943042600508403802249651068439127156295423806660417026350739329382925815109511570695734417024517787990605573908938228932244443954884361963801307625955925747509678724873634988738994749582713826094043334185677406123071834318216178654411089981518183149151461137328028309873253546074839226651550055146877835718970259983363489423213471832346184492112604498112177041504392373017169955299286544238318602600039828043139543198338093003123790015457851866114822468724341920196514627172564312912219198563799932576539950847521660277543727125454196042677328128061770793888064842796669464363295148104390594454586003204894367360567916679667292822483252639519477517213116331641334151519975195613210094739970653653928831637592458504191504948051717791025244851768098921016878462793589151697596052552328567677297433744054758405699764535169149133723549564944079949608602023378111566540125260654773389895265523604911438164492951864895191754466376442692305287300498658551511860579471864415391746266213722675115282697456541194377323938845991852148818455079730597004602512008246051252861389942352029621772402832907709562984009840540722624744014852983679878390216738684490968203108029055930491849399813371775717724513201175758435441693962109091658349739957745265610614105236335047712982723559191641441085033771777151383503259142550539923965747838431808091263115554982498118279089500241346030905732085724186237785078141444076563289146083141814681338647121933522810334438433594611386326885629525744086695161998668583990681850376965018229909044931344218818885751426626268286625231443699540890689999741257081133306165491498363314766870187392394974116495955939542148019996374478069680237694395823873501728405176342800067418298345491192341545862454843097810667415164801209789983766227813822238813222009296394039083697601052748083757236508887607630456491309272660080431068287189930454122883275024524895665814972665043904907913563266879066375723111302605741088036495272114066867021949351203944361209537794122548295638942801746098084806520715976225440247113576573945357798922173653211786467167240900565245218076840106130108547734419911345177846871450718083846820694062124061952506252719286040313803556228267610673795436467243728280575029355009432538632362462210011383750273499085588878504589063300987020091879555098213701535961620474478943080541769312601997193696567620267701815754411222595356505042074001976525736665844128951164708523162788950112302631337634835859994991891972218588761963767604090747610438513451397948647766358300741746966723513650269722659670884060902271069556932310695675364452053197507314586160737315504829408499432741522987972243378073691965045051235248971811487101084672487754044673169034298105037078886116600077560309748162076676365607055885368479916651080196615388090962369485068328708797641615846446004808061490334466260014005747434617844541358328895718503886161083291194641047303601722493449690211025900580348767310428268129664855757427803722546508944303372085333195158344759179881883816930192295902018605501085346200981820668560481126569312380026741832889671197697511736573350929418828354289343784236632117281151641617019028674975055978486131865754376318369571948808828676768992023051837088121404337477440654531945357905187298704795482310302549818927281340820568200511995793532842285945801719778321191476099496987508682907805549519538853179934848901076647494447225233380184169209279687841950205971164939071859750278815994173057617101866749435757279232165426752593677497116688432965560754421082231826746068744882746556232302638238078643016430301298135824868184424563497342225322850115098240149054136568653678055735298836225078780935442324872540320243411793793789539212142225599956513428672871226773327680294599415256672418638291861253532186841536384032172489606433292119359428225035002568140053221503264555358688727830030000910081611134140283459683320670703125788955066498734884180632471653470378968683170903647995744058073236954893608217794257106025629046739668414073155363768270399171031590153176153931591406687573774278469838357557201576276593714713674126747041995089087429417923992896014090590114425199339517688456716581842692255939991421650374011232650059882981277782526588530436953260849508956617578762846873318570505165551707165501923714595826497919352360495308673247461271847826177713884744585832583848433249600293713691855221189200375597470303243365915364867195296066834502297755795046611296631282620185875797998838233376910757888495155288410564266763627415818338670856949836519387254773623536341917114315189418014196664510285382831613824545906167279081156094330970653684293561351128468366426765837649227249627028329883462459941623425251171945501659646321578508184285934395725634568021393621017017356445708310898349845370135558796791035577828100196476991621939762315997007708757634506589658122708566842379368375903565070192085060162873520707931199472373132267101753164357362110790069593949726372685125514647605230340090046577874396929542686191296889338771067497073005492868093603752854217421519939355340589045877044137426680686080611256420481112838146473990772969235172634246464003987549260385459204096878116546671791370682829301856876844266163496443208787592117883017962250179273499441599067718955541384757823006930046968798141343125311930481715127411897442644861953393664748766736595354362301828459982156638422943345342730161279806009041813440013880591682954612679766305422053131222442639392301607295225567804681719505579987428862506501074550866862174937932931535665361719715923181997229440795706333658595936304113485687632820384743167470027602520996573144020708180839666763318400182359819994230339287873637202258728983216194227395841875949609042250745938262267727060353321962112594395669710480200002699938762110694009160611071031550325278199470037671152918947384808399696919816363040994467211505123334787679523290696937838551903790466208153182868254073344614048603021084872395008895296832264444164038190960801230907665722395802398353528694884021207290493499116593740038851385066130847037101231946795666464466166777390210729745542544148072120393441583194925730391981175166344336413858148858065294594928229718369442706518372771242406276255860679188689524507865888715616360351655362419497065652021560064246092010357952000313671594766419218122691656044541931236238640742212533850267059042442540499178005939515710453911473677236256613867498540780373712995633090093700581947521414615943308462562597881781959252770764008392360647755273158187540497224938787531717547582735074329750324556924522345957423448552224061858042587572832248375841196329103920381991331554620748259231542806153140455810418492499756181311376856011528688660509144252816063447125763125642951319707677580933585685610875138785247935961640991414310159996516824447767144095871031998184336391725631971993683349350434900384318307309663552004631223248995328712008797450659333897204212178568752361575441077686295824028030215151850948384013873228391535230690209305807374640432479174296180508498166860234020183194839694838873954955151780948565003066497393061785277641204612680145718149542276803872550408856920946283002543545746965766726841189089504255829129365196603720286939169213604616286339179515450824076869400717533741223654983243503813487043903154515689362622409339788309141926321659557095001418427805040189556956205351853548170682741352245437234986043814908423002401711220403195787096571996569098992232755991721212459443696649889504605003095583029495341091628191909160818775544844382347824413533452460491069958910137581905613396017365600350127762990317357189219142269917901052343725800821469090285031908908135393861222587325873980104720443379514093646939218145952948830816591036808007208482171259897462734313726388382018097504018863184850258637355173091065702219447319461955000632378212223153482424206250868583986706310809591626321466584760124217354224623214995473371410237647671130967325315219527095721394338698487436355430281288452128962458515109688404131865988777679800020857133016986172434856740155873870572902629981735829619423115071028280954977324105775711305809551244327681355778224569656625264927834596964925048369658074180873441164515540056615008169984495065893014844861803410593101527831628007382768896307544592172799080993876901361926908626779284837441714016862053597172199419351445799979805385987898286645802745808826624378683789283031241299739465480294882138475607968247313337981624346266958514370735381932471547272379869350129778346817362548994462088177184112462999892312559662198169347898910068736855841940415280017724617078925540477634550821866666705546205640264791651095130897427571086556655571191876201576722536200006280123049454997830042687089086808823787256931297527011140302763831054741354143796969494850166475432711224823530883027969473491191940302602298208920010168036600488395617592764981936206829534767498783443603967044747639425161058189581804772151449847659579481076192750349212679836679877922479052330539599896217434362992428588142883719178190987331404149719163530398579795024221560567253854881662275403158901540851849910470566256513393715441136221313210091515977578759864016834770213246903120746299057655765716947237916986283370177050843482795449424992633133270037547704091169345817369369446882006939133733967588072779926060573637118764199216679271796935297390100047464964998893837114519633665705628608173910848110528037029922675425050571384570671341323027001182408896506158531181592328761879175886653862213561420989692241106621780938307335957529078305788342598698001045518004468022167056334320364850400639187497124539450532015220518680065127258704032607826789182778053734056925199993384843223234539030853260675328276304136151274649278201999346030072117558717493918391884880916341790224203156469778528065456583215989860516141159634985284262809527748735647185332693853167859471326795494316991110943027410518621194788462690782561578230938976196141769337019632822862614447211387129815711169191359003870670778787759879455732999457583627668876462995611419057150033053085065355945236613656828423191387374570760023420050519494414735397753023689651374243390258744111713296912809654422441335611739601549250109853516715715786818134615014606227157833432412045908793787681909039248615469810613416929776332076665560530089974088561782969269528809239585638635895717638221343182597361037393471093237733851114381424083635483254613440302082891822700680873374009678348873002000929600083591421396662143402764673005952378255242881607530812422263552730409301010694442663303852090161383194834446968913465999974305985277024217599596557807735358425593990823655948253678899063098894803183240873305278472186962150023227828538451964258854176929042528171751062200080080852669978008220405107967441477690298416000943892823491613835049253189450355669468290102238754971599527193547377030559387619839768159207535366698302610127118549801671223082904593532064149473154859522587261485954541157810177575597834861855940203974167105990809586739554209380972017293449639966418622814826072096736797727852958568659644083888020161950645439908600472016757523461372680804940403126746772560751759174912745846207412914244382560648211528743036543547896979520649975410887903739525794613463300110802066190214329257101408508259325363272266897594899262392601008826549910782837844880076393866364335782533789326090144813963674463490170990034845306717314527230538933189527888336976304521882658750475107300252563232733017752737634990083865802532151002695623307724784181505434394979280681388580405191049948677973021988293642848586280780586969167878055495401741632302200369884803662257605207493708401934050274068962026901400971458360738372712945456767346355727035836696819087656239176401019608131370918228866098117085539514093342740989759940905537554527782176189434862251001187985577360859303228833573229572724989865456894270539601719002906297933408258938010219288124886071066793993923121718117715444106315384408391373303368222055490923265934246568385733756817155181098508007923290829307969820174994618428385996076223655063838128260217405658742934391150759145721045589311795745718820258532091470319681058448143293704541945042920087246257753849708437999368648535326229726233502943419387304719386605379901407703690914725480924241223824021520175896091932505429467631089830377008254220316193188039656366285521150290716015280335507407814478911553015955766245918089447657256686915197998262227728119842095816694689853375371680893462353033587872751419644238586215652839679492942568202078845211090994184704834579269772601499021895370947213711620420139490194569583683454555148230291194785944114604892853531059079660122841891370398005376197341603973326175122978484111919555928835763883574225872670069295297516358196222948581353864776508593772147019184314524553799019776850531992467571185921446106723022824996120928336879611419191832948133699652072313455235439435391634701433586063783403589186590508240206765353439160638414324600917577112947640907813475948457998991996647732037807623931976869708987556582051488342093624663177434690570125996206272376186994762815365562105822194636198960653432825370787383200194580340105046929206942259170604898554638099070648358391239772052295076218551968724061972923597822185619690217379267369358924821798862433165988471532903989984445525513282619688034304221920223415485723395660027204963109162850183585062076824367499461360885945977357095131194907568014761678870758884773372876340622533559240798539542529550234473593513597868171132716622499866419254343650424543752848478117188655429373830902402762527301239239856690343216488384264588376196292651410813795927565849180659108747394336688594310479616090104565124098694458921229902622703732766077196915050121220902276770666117053377012047944593144441438543904627378317222017949874535304872197128713005320607856719025995024482210005376448154237279538976035243107253671835664981552943166642904412654979731270463465093822304835334728570894717162681790646291515671402122206822312123221255468741012154687066710513552318690570602679320160671224074553415284541878710161096389034771368744137094843369919671827201135061472348665488984430519939151945194149395940759935147066657610348372076685423176475466121251847901965380548096451852662507716531568765859912587714443624025637579249060143722166643683313781783277883461375722951008337255622473056957969756582649471463041408981460036743456723030348983139497425508757138504206911338725807552165292234725649082627013022608420574905205234018661475871448142624892856118486299956082667236521332029556991405133126620101234578270085783575306936665060057582792860051536325434155507751587564265646137010030406276691397296605385554518590259586031217453129417850861478390763975082716369808255689936502251318695474161408727336581324245026107813987994490915071457896684240539493388362064732091149238291797901360131978390165695099548559925766502585037635277936970145446341322773465539848352647943814365704685009319115379167700859219926128470284890069258247811401989632707595921299813923296627879991008827436215588791395219163185018567742517076659574605553459138874856836508116224953906492063898566382899271923260293014801824301573167824592850400769208868251895838262768541248181598028299043725039222155786126379822899166112549878062379560281112890175635538381553436312685818310045041652625312040019704683499951874757500679573260813549503061599878113852922733809253299030287142152314383847825088893353309486704547049121359787058802842344367436157232398830872217879293557548283646067746897315949342406534908830454448859216171167141701978201709155944688073504522097953282365107811312125737397735408491737180559653931029327230177380215760243410095329575938061024441111237554316753502655836405987155688099767258183271514411069429324409844801224240494481714888615426775897005881597497891753938448938823050212069674842268201610487738609676066803508736345477071659112206109140224135304855629719014309237453517036318393647895415073447321472901470190120701079901837578788992273742588827160946615947075220759421330617024078169694481629541260230874747748990303762108024431269411157253996813294325226475838567888313162942709213543198820993477578995917713700701302649900630865487814638010324443233692351868466197015374840772090246129494397543012621704466992134653800833311642309327022611265435837079601487174499123331894561362319407087744057746951355996523382017628530946658759443044097549642942974861115206083167786141002141352708273167721891901285293717717583946441556100621443623416871806407065655551581895480358037722895900354196113019791577378635942501682581095460839423937614197085953255030522099938683534064800896669799740236355223366197594016731368305282776180037941072655339882004808029854107785464822478280644890768935565083808679400188231926517003482917442029977457254619312116127910214123698997394020936274454521784412424292768348903709880417430399427402010355011167395342845595966572736839127345962913888951254595321126258545843787532162406586298605084667028730222081432935739398560287316638177741772056981052439809617560234079194775216833061928690339982838747987638830691689751521278659897480738824880089601364608818848703392775251048423541414687054880873299557730186203802217862489037564332355277273922536905170823011065273808934208524289060391695565723200774149008582312671095524740804176066527097051963075164772098816846559566591961015848660776095518906797873069871239707180334204818872955549248546677727721415181727022029536125163200589394530200108994199794420748259651090542303928857761363167596131939047125493412291891582248468263475719243744961360306369831030279851620879451675633375085809336690411679993201619923731295670858109731272282299357709084425554603625752914287454278475664584362657169730134141983437797654762075754229675125702632023898833706759815900293909251174948694616774845924780519100702036804140494464739251084089356385706106961358571522831996794675319869107543499705117657196299518944455555738686306673864311247031511003890256006708585661360524842310383447355060863180210720856765480523793687759619222329459739355612340341717884599971548659424903021625753204807263854790945705958760293511316897612772729164264265395844083413301381728372548115813042024413446159272791643364374721889551267732892193195745675609414912338070535144058518399375837376123760607755646186551439616090135004137212985338713055666453928154189180331527445475559322483530134343949145341401545797529767926419207077550500352221632718564518803344138966084767096304666545204733818214337731441064599913522815886096335495979616552183663548847492075749487475192459076177604415997651972634651667627567375562885229354260326989206520742541333213525319400173223235777235993794810932772570027973292316873632582045597334005822121020479792671133482457722678094513139995071229494356422354313256141964537110583098709793353451285755804909695395234656812223057050900808473445837862280405507567713018259559986568837774994377708141094408432683824147149527882676943791733900530474485771915479395839302117857407946964153900278485231140036636141764263470142963984774757337485071153366627791178714630702874414950636449110674035798278284859015565632662564967331171817529518419661059755954218691966722969868524116000780630997567901267802891374548149986703394289146840089570010527034465747622503779479169972317475160610892615094103275355796548396640259102428788172353800090051053535739083167829576157420413530206322220235994353098927461916989922235807960639866128512947219328426555233581909289966761101748477648470935021794679473469891328780640716216402885340781630880630172620944469377220559839104501497477486942726022273750087824179520772354567557529091989515957529356089184932067568508880624210856325915937584607858534767953601046969324480037886086665671677485883969135379149444152380315319183590407657776196111032294192816760487621362174536969222989721370452038307938811055131806537142410865185015278169596298975189087945021543681233581925751944242921651273814647797912661283285382954136088348842750194265214172701776773379767546530198195783481060941488543990021661205527516247885060475892661212931218600451112407892533656787509887424169492649503941763922172241434719704430550522243498323839402504313341966257962758038558964730856230200827633647245746551139654445188919390818685907437856034578469655740246982623204888424742658298186045546812463026841973479397882711230561865520934657561180815253298190209086101982006669523346642024975878494734956432829312358671390776092742310293380493585895950436192605303421894560989357029719037437590164359799812250706742857596060517039808454845494177397452354460701931700831099780904813334780348758359788066061427483245402370873196759078638017506358909482615165578252675674173479144846049002018883260634697820777702463659482476658116674263503257606385260238491585360278917057630089429780029835813520545528895805020316995268760083202438597871928126855078915339283700814486626891786324227485231004745197722172553013034018228395922783542318196779692899076199225662189632002862600045144512413492250620255061786052050288004144168500892995217527365915132990286422414698548459789872775227363698297977193538261646420857326539094787232353372632647118723429487345388233504810915683723665114292727183165697654738650572422069687589458115795151531459387661416093490468881304240412379579852077741553011535611159795013259606977813580102860203670814368383458779606395326434793225979075236818411862335880493615665480187132129442640700491302987068233487717179363004988726589521964071860094715186752979130686552230809759203120431646634618544850973075773036573416815960094765759271289493615530997731565871625205512321939079414999426051480282809554947315046646465683831330088243770359664521503702414231942442694397096825308382910940018439574551643708528157237804961386349236870046686332964666092841956131395467375476980742901546981679523410166873992098677766521236216103838589105946587275585650482304591345916793421048402504916142518272829821526295683009086167755009196814959040327322517000819184545804338494865663208282067743846269204400403569311263810541326562576707582988663194956634808817127591202063330451902878997646699384437502245906930059666499843684553436276492873024980793002268929111578533918385675039675349185707716147110357444080268567116322905423059285719923321160020345203585952419471700788145088377144787374325573948607556830566329709243749710319610543495261456578821318606484519150899034452674387879920940151420399721514253117799185698883036849699937084802302533215956439964430803555610122351259622262034202200041729004472978000939605695382610436175855561651052077719566425910553330420613840922106362589734243533294039165339033369973435703669363829495088094063822432506693942901200182244133584898680343585550185024234712904866089013127867370278156727892843480747556557781330424339321507543881421848358872074581355549219829365572552761651002541878737800538589708522391171957454575729425657498378939850334634503707875275428699696151198981741561417586184990383767065159653745583342959827923270018541944369909500656551464624368777002238779439814440426125481188404996120255946309266157776322992289157929258463514817595696223868923745761558980438198597628066373928334207417158472324541813762457720600865955583406658522222792163140192503795265620071137178296787921150217259970504205744321815015789721340534843008107090842487871835167865689695487322556806389129449513706623239821516885699262341524783104275843476858625270444879187057750324926383129279414147115944468087435300262564815854398033025227622839706399285685814643009679624706467702365714996246660385152262471278954577977175425280046585943868795964021058647860033075748162691373297145859792007209701579485552424145706317390767936180991762254246771079671808002300161146933055933992852407404764943492218102915951362045892282613719824850382686566329481633851576623178283012106974178678947722871156183648302236622630452067484377096415068612359820424059246877373080660702795117656561575428305587325556533114520675125020201057770801361551740121142703809892890588810803637086003719201391897952665655502783504081071015820110777821666527964460877715938511079862445925845615608214267591105941540242964958040609149935395728162066378064042430985141085385665358693334517495787549823801457834622748728245727216194585411362956291990404155913942709235632672600841754654227168087654474892781524283035750005231429155238595901712476552492508527438929341223018942087424012607447787711405855796078238875047853487356538778300184124386117399877695508754556432608266218391783927648573550285083795021733538586625595982755768497465328857708439732531054322650851040572233270896879687246501055430128691130368618198118902590189899688524692298892982969980271674736030087372024077496757933309122991395777810280407196611147485939156413870655490775657227549652873582788085871240585328903918261096722090113971080013625268059830756619772238188031631477621735100411320989824600236831325565568117090803338641451196148972040107286913286566318458687010498200324811617088311387783282820444726042018534597909028161376508509613878471735392484165230937528408547141743775013163963228097142675895179232556302814551691866765290935958000759926115261829678214557991912550556762419420010799034805559290511644169392900403789548832211504728538248992030068374005651658337105725357701492503597463211126382009083928851939463981534562296010590914575476648477380792394387805774684700727326934334998983544248557242282226220183710754286735271534317020420748289444825668377727201227417844991565221584581466004912386107208887908260785708600579545235716260614630324169810106791333287620264162053576142701458413383720287364681051162005633136603213993890438469172742009262716786287142683179443520993616352453776919372316191769511967803802540720434754359022647189425200645624949189760210612615146212672708514913591941834019342784527450244450431413032116014152847301312055485477620933032674339583890809419896756225886115798912625404324360781025793481145760728956305661464698333771021081521899239939914985471725238172162459399945586895479876144334573264714750076637293025333616165437769132149237270593834084179737644268004097901377459284836066091860869361299574209716401441054513551616107398568206647811614340295231631686186728299136671667649171799022436526237046870472240460206845560166152375644677500487186082219045401405272345169867284411757245315881103405343824828648719840696622266058917907434500716262996263271923008117671201361534279451978902552715115929616233988912070983007411203652709901279250342952278956816966650785180322756124563241004607239740334121777021924207294082654110022103367221328601880100969929940380832664428934435969487965648100696208659263414744853454340105588813982312978451149208787756293797394603693395512943034882015655554298805165765892534469271506129095480965980533901152437201684418829009234908894480522562139358739028584914876673093747371130715907391212885090488743996187950654342801264753188195488442161646352097797391814441108355270686707721818528083575912290636662029089276698823641234353611895322877609978523164113109339201966870180505142821301733696632261074369412615859684287245894511928094249389008830534070527569419009987271863663405588405677807456507124156327454074881788998797025616662918035965731204838080875312879915902022501115275604015390391253858523456654557707926575005819174627205317473887466342026953912925891382205188651513020029983936234520059440247997266790126194489905548199333558305167326326060193346336433688899115223600571245279287504551396435020843050439957001949581261714306402271569718381391610110602937866956449671233818854108442034411667810727217790108098283069042469130121359374894061523721084907044919060675770015487842835964293820549886692344228582584636882696229435289916413942692054480034640705045673411685028277950479778175961166174889160697803425675693177208110905118821344538151002364179051323280474815895143464511666495769466739951564427979562100508275279262124429322112814231771066103180600364480476469599083150965630309857320140840061988435510765144765431051887831959717905050986043280091698066873827190726307677802463342935893555206256127254984113986072706438626127039060606913255406242037250119119843034206946248720346288288940069795920492011061494566948414685459240817301838209359677974192171548348649148298554780522485279606861880613887782677260378125253962358361705264289276821029465467578997752751165332014041893195319903032884119614157997824532751483594060601784061595433920828675673656360695205153798854096725571447538220157375996849865877828302742079091385794385788581306526767422420232698235838664241563860494399672323816567769541344225379149210642811545929662756994705401153750146920606298112794452186811666392597964428824887303435076337031139811579474518874057540096464478855577233602239948570478960820493291830192437626335910422878568719057293277356550796383959676459493032933987903643439069598823464974826763198514184118856135110082742137237402664517112426881323565020079170770659153845147827320944154967482843243298227292421637534596171084115975561236293106844363361312461852805095036998003140233897115194626526368038078158154815135142893855978400161906901680332974197219929656666701744411568196934386610932918147007560395313914287522960364972984874788711188097022070841493008951376392444893296228955883372404925465969594879294233616825472986010111770341336580277648244786742181942976121195154244569021120326352320627375197752764188329797445626708459803861590107098106465998861060810056256759110503058844337086329417597939881263461600204641876754463861353055840047968799903775698924786767566941571789552014734651401720089341492873487112065745864936205926092453258396601527855697222446678800107162853357317045960817831329021807959462409019780245761527385561177523408019482477794484454566205525010098656301579057536023517612641868079522476018631458151061469123456009953460596389500741156450968715821497368103141296444844373104819027466239623702172416646305969389206868028119145067123907909730311336155059752986911812900029681304014420785991065038548510063447446139548231294854936009770648304769286492054632432223981200542047419950193527226464426583111256519274394993322580027561000341007513045410409170897434036986022781990672117822945534470092452882249964302940233916280994115414100597085981407383680256811007461188008356622791492139610959879559121232258909843463779981248174899068535156067869965277967780605821752429238602576165373277799321947541410538520092971134356182324962644340434051124635429448178466322411120105357958673396144980695860660769384332031101624243166208873637375503432252561522871189825919554280468088500430014575248154820584814811482667194685213697499801693726855600424173414068610375760613477271202433794959294802765781697369261138343966767611186179992084608039622269175550452937705754670070382454988961787440492741080772377309750806754458954866496028241420258332925400206487339914217004091755981374158534058752559774798914368609445315932985664948764908102343943736349473761507585213139255037296147887880227354153142964091743062471925882887069063061284835978339385506355333165924396907207364801394676883921811437173272390674800631812274738906778307608649571830448917437469835749607658541734163622105345928662016868826131522593058007369862293978977958198419330823300708146239025389838824511458816137044083326661539648559410065896245761515595041524760844663190059096422251759067505133405868606447759255771739881510338681734395914826246475522821394900356408403804675983965560324989938610970993742516298762030197571494699640976115067847864551355987766875684785698059309479290770027509940263862702875523990676400149087347392350736479568603189412943374952496765404683477511236266747474007932746611740412731338265468450012792976651378219484818220775114719053441037551787330450216922855065697649853945758761057365652576073922447378400233201889154520882774043298850944299683311068716883393609611064849094398188031091045109821535268823870090449753110599386720051499530672020001297999382643769792616301733655233576303577740653933892761193914320905931906560463073284544127592618553451913474109505217554434174812908643530835477078254573259599705863641828836197259210926464490566189581625821823617514539920507125898682083102468281589051559075801746417308434066908622686242371126276397049647497152426554719687501304555947656836178314943133618166915967983596738816733358128394868478830545645076571140473567402564514379941910138144758914649705113330854035670973610531420584231197458949188815002858141393179358060352335181870315514870564321098012380764308205483268681202703782611368202474689318980311534066754329720388754874609869751207114806891823549018199593018271354058484324441958969679879782177500600571712277946614556386482333228107922472670084254429737499198915629401418351805551318088936454214243773651041592281008616163428826574731758049211072184424134387968933795768484265119458191638801614496835001990679873911687938853762155519570690684643982903290634340121851921931870764022586520715747205317921792857975264127877819998953392906895797935166401922335788622498011614233169990164195741710419896099848876297304729967045978803626164119050003065687979127460541714876585466712483997293152209159392544794064930553543124537649601096140463053976230115072081084410437737306881436123441844011021357532403277120445434364863530570712912461709403622560362359498135268100994880091541282161140632688063278933435923444363542492078310553910453406837004269301128681432923774744372604084952136396666998241904413765216291220602882563241764570712434864114049041727402619746519381934871648777504130008812717303909770563088222963854212938795711371384041881772024828915592208101190309286861687313932327018409946169766369700989673553419473059101377811848124621024723342283676501980393632577834622140945322124454315594399762046426805614929027982738449540411229030900811876581405324479921534025709547262866837444823443329743405823592262436772147950027212402369038700568064070947761464137918691909411452036729196761374911776841064274268048858470784889052843459763526009823654937463167242569378845537323351845981823167096253302890967008135715763071517719421972013278443923792187860002403909323889544832483148424315737140220064570337524755702895692377572262899349375118156602386333832661035571813379511159698702899107370337004745019793904645975322638451802220484801393121748148302651842650793146077856507695120855905488848024787201894967633161451729246931841144558570529024268228371539311633902519118460634540702234449389810445127650833952081711570982948044450831322808112198847810633654477887370517341012292657318096182652777209054417459733369783397389284703756149186867823783775846803513789386442416735109016294903212189046087705879084993829390906109388416751424230407624277668121372123049145809961984847087981731325704549272863156113135878980085887491915695458363730014356291896883791057367226468989924649107314001958062121405437664825105304370079876310111204358115218622119866765880518227735626229051196135843781998060241130543312501583666983386372609102422572784282997596832582190963593797756384670198698174269607303674233821099220300438424968218243123873812264870415975842866710666665012564182166859058389581462048768805558582426195034558588447998451111492868458492872259034905732816411867244405678836115125076590043144496332134175512216979024740071325087780923969229318479956387164847944952445767661099865756487226717041712997703345062888965921036438766548957345566502724986889490819915423978185635327844778404951842248671081905603450728371746729971307588114401923093705620237674701209447524955582014181077989946217470045521647925450382540806508950796503695533945626242516525184900469183754435960097037049568518353792705590227125726073103228717018766470547466271313673487395103160232988749821224051178774885638166257660846830172075350862130230746075677648941967843929117276335002006343754086533609643607971404430884180132074220547736669752477008019263071417906878863962518532410344158243075113245909721386648432703644860867082831125804737426566879985618367967966476420170157914794237098153788580330880341412555044661060617967928371132268360383099475027983993238518467515683416282443998557150545227052881115204160539141026099956601963104819599308298963778541401127480647005094414120194505735293452693711596869018189524900590798879912483192608223157232597022923160620498904253897058564215617575473433866297078213723142464172995877491038931798616044902759009345307043183950006265145436965472837751785113993735065722807298528728789534397375432510930208192973720526001562318626674029494483720352330466466263340421151591888170804893412647824195162002539800370481043340544130253613180114333851974695525360378384857460293052690505095549597370296486366737503523011084665484038246567372399581978497023623775599422602433573606179032675861568403276061327519672372244402063474915630204709557486576322048886788095369160563064013956157652816386885217889601245827561605615043222774482873487956322539191516326732549903883761375646123871540791544099269992686193866409673026100517448880374806386408238372110483145327077531081823976389740098999651874628065466157285284330648352758123733979719532810294925243942664249559607486685935985408253376671783753140828002922476467977798110001666301666398556265473491833163927708748481490408235558665644837056675129469297765176671863448732765359085209375712653099554998587182784558097785954147639504078918649982072670324421659060578074629336817422073594171640394832705296526059318201847302291623115980962629611731233600207578780289524992915043213431341870300968391490709644588333886436093370682238235711299250374430159899396003746281659500692555614998946814753651567889241749362289316542813536393849788089221689748891733456098554479387386808098586573555361146054577836252878419109834014526363236293107129512464244844901785001963838732604224210933312579189957589006551380138275326940394341132371362495961762405963852988782427870679200236934527407727415066675898360990146440595542020128524496270056496624514304316720768175408904701725348746205003051226015580701794044370187913254901690161474516719586520648802928970911480572637846989325883144763451079756409851147689498230988519233561087430931602373679542688024920614604050296331774339080683052610165797509206585691113168660361362287830993856358193295672530399981393246328543454745365240506976418611437048041437250529546183393279230372074187926687653806237156060467513538994047963291149754540111868223432217484866371152588625447408391301718233710628216658856112353680311641679463023847511531650545418250599425592963309049945551469384282894384752700954618512302052945056641939485437459094531470881173766909013660504150695794237351768295460075276565453599698751528197232553096282809012479585396800801162164713735184136234657539964464147498581114026870814521164334200766154211754460417077699362851468370996580663992695997787496845815724239353893957499229430890823061877884801817366281818239860308606138661197947213783918937400359960398233875324608449161016364764570315514258873200359990790444055819837626339915265038914186134156329313555284094483051873930670550840746649168036842618249130687586688207409158637452545590407087341903369213884373833277981938846525440760172962646793684936978577268198745650946858750085065383991549020334965027942919460539346061506514652631156055860950023985094187433591108086881059984994360196558980217922659518875719865818182235585337158283682577385707418073901348689794125805803785498415952734439211766091956499570307295391275903184363433374700492694015051717620088681575227780275825121730764569221329464120627711815054696037244123340123496238020402466926184028550252490220836870859383993948147614665582827910141848861594879864400541592270605193371597842307970884013000889338653054445432465547242824629745311494009482453976198580190542575465615718546562179925254576236163805426699509833548956200445984951466033237667482361253743184106308850290660376490615369852181810798522031702666171936111676115624924407055732736705210828324813247678646864525655083945355626743397898660104552433742741021106128358175512656603796417219047384091549376349131312173773227057267865799039789403963531168116771879117953788123722387918448371475497140193223612019906822660781809926522289926366921465802356675618124146624930456461797766268360071665067000250132627581542749901987865886450576022285905914634336258983578932927401886223517585017768415959142019140141147144377937228541698962349639516448780052802187848072124512112211195893379513538287588538760172140964768563185486333646164147338103170552464514779784782960115019563331292951282617137885995455051504159374367711520819901633427749369094238496818065939877168680671002238508737547467223374952560261113973683849973703129705778552802618259292010019809313567602372562898231296224151406559480315015592776540338393885172164998417673311822141690819803332066501819515069624147026541468487181794805440662842577146424548941566073963473183496753805075155355873957809368709438453534344396139449726437786690297093337376367696865759498684786671915376700124567112561058519012782958525830277078223848970461159049817555160385963288726338872625160726489654439540495429131099726290318215279332143764092897924594608791676439136715164504136299080257757540504798891112591872988077634621455355546200394423734017909996420859554900097882093299018905983733631692207810415933598500777910777637392717923400874105750731942608725818666177598793063615118297142839637434311484277776300127234955566511061179672224606537800735575949659356459974623150375523706153304148925812152717676236545928934956008949640121606679860470589479228385973032022554656110871378681101248606623323351944849368242880780426194983799759955479944052846977738179725517323242562369447225441547768764938312096898165304770579335220047242741961059476898732589387965695274140245748552903012543386930659793578232652260694869291715043107246156094174391693882045000731282551868470210329050308769357602078645242463548798575370565993951311182329436965331889256867806136091099446802859864686489116799236070486862899605913879583737683649392048317327125706682863651772079301761031843316127724173790189733096407198456670554256174314142068813907130930063130190525504709780233736215802502609022686176487167628626143771785093533571831115598542252200881045596403231902734120761729005870267722922285830219447325498027454497407652392132881193949562080195788390591092007313345441650530920360090026553536642685873393834234961568032716427081070682353748348997592765160078123962667962638473871481932909703002748939355359470064102502166685683149260436156642891902914656245253852920712185237994233711508610590874127268242019680811608779290336214540931266720013419671289360681373544871242545756901666814603357581923770718006128335932348872313067659522147107892496090512998856332315314211472858025772865906892993048539935119575860121300939372250235331250118002020443853393861193381027523282969445344976210488255015673715738344083301365106410444301781122625660916015391111312551674372152751953556392544859176666325129893571452424617956095060982066505427702128812483585107261603729391856169547349039319218261816438587361010015009383302368024702141054372977726527317721830073298252660382099244693465969283258135628916188422149645226263105263875039869439485598283348331702424970053198433197481705275037563179004011436246865232201094964907757935580417208993975952997503044236055546461282654271976742980459618730414716651588207887084329897176428019470601911008954184443621112344931213543865174697798389800318458372586327074207702127929454102674188550439141199242159200060348831657499132317806948795002840623283767604555472985886902748600205107453395625705284992015117962490686302428382647570602056370729573302470227953595032182833822341527754473449487460315942096012321215519056427563251504270068597198106160090330692043934617530608353573402025972249869755227566061327036737542472456750992833726286274672574879760578016940824604733862127435886976155754250550521715087554338781877682346869202835765869309707893402564765729002958955932154422665464506988191918038699748449449322261492652693654501622059755979417659491996253242116659159926215691822392619958364900080359241940735336971038167613780870842903966481187973765844384639602838585875026419204529555328897030667148437006237941519467215751520560108601591217506608330654815109842381156689935322246946980646575405367364566637309878610207714995621712759621090607102289232170436696726865630781343401352147785401367443404559620993577944041342209194392334869175507871255654607120033962692425818403017978283856509452176198172345485730410104843973010275481362957415671020747382869873846855562428024878525408919342496889248859568624351048894944466907990335276905503797280912722451158856870361000183889320252636626519895260998168318220285485407245906254151888134785623326658943437034249374812654262867768391797907735596066306232458941576212868065435609300716098577250127945630258287415890032646494921597869173223285073045355870219291017910046627754861490012012735754428168148162955011843059511038807686324786795499959568465879622107074540116274988468131199228208931452934349662514633215142840642053688997718807527909620187269929723103069536460663839011878476998329056905302461732495645569364483407338254986084168981030238423197714822994099470258523907600138567506779496868728570097681563806576674651295799244933921140060967981068587644715828372513236233869795155046781057720644808412294676077012666328709104250697680212761311162067409657367044121041379771738024734103933823017590732638534168914050592725389720158361674755617039057523035590820640577412290068401466978064657793038334791334313398601805593406250383058735145659647592468699426980299097114232348537959327491939697325881683719285663339596123563247156285019379336130655781996880300371407795532448239217950643914654122171281499048645346228726007179259397532444412220735261814898956066117326898978526271249636393198324932735931299336120136342084662426461379552152805498959586090830289150151118960873746661705794922307722465270440775536038514535367694448193080884282400447751813891765076406817085948327902198700383705705886218976251260256103711072513986190670565199814738385395025757332187524650906180380181670701399270169822200506293081417349232085014747994928046863238072829881199172362458175858023844037683766667338170140094969730421609428134973977641156327560436357424007923084115801376550787564664394351502350771527602420302524709681704030353846068204151139054126362214947509823097198298125319765813368368180296573228273593356655919130619673155112390338761594468694139298992076366316386290407400048846378466543397409623688751646244842871759540251479633376367299630476436443695712431537008906786393966733242652535743433892861071184345589606976429936237445715800568573663386548095693432614193897274224797561121042696290341783393407474518090587416227575545365630553053384363900820429313845006563226093970283790987617543727437532267344237359990262123842766554665278139977688521806688972839643219880981243811056143185640673545432166636014674505957992668676263056381441604698955243986882404581747897619436883015270909581290114100896034607271323630588752854346375257208519601099231251004386401394275046729434710784563405352121382146319700052466885988819713306414724910563486766797496482133462359680608962738310848839262111118730922720189842765821989533689360369433511853829421222542782346846906673073060456230583029422201581900742022217357589037048415429676978856092978950284172733233843902029669155462427332910386289281731692459898295396018159105124021821768127298790662686191184532910745549966047076568803177620351934790681373827900918309970896291534490900497782405409392794562899448730373451890972904325074842884497603780052524998281785306589555606947501564847601262925107181677166804456776162999627251563761622296180882369445377118361640909496398720991530005779258927398264982808163841230886678217465693351295612147632072830656017951400852256719024872964417394506328510204432680566389615973571233706085419472704782227404819579999585532354675141994223927080911283141572440438553532590371210866824663215361211122580787055229299105543975761188775058466722452488290651715045653662818089755578275064061327974166618240230808782255621793710572205975820093170645972054813871569084377523092198538701595638783318657756051739904466346967974446501052984226569554571436129486181627864109833647093095524285782008548688638545502012903859336343528230183617954187039925113416896707644060928755194925040007203340631984146102511090845020926494287829921426286758986306503077929945610544446191865321949049708288383065977394604883691994567356059566787253206145086402537075089666713705074640984851308079841601137400158436453552355905838812342824109232926185507824191130278511578005759694075786983254554163701786671790452355273936911942557049538293227952858694988175527122635892163937347157183763209560724818194452961555603819383498432068843966097651596107179245168295492642522082668203667194117434535771697349841435070738988257707004574379663958814650406480870261433397317644666821534405518306602658532204830250013545877143784033605188999427536490268856302067961806482102593704842253974344488499752134735082389124381961918569481953367861955358176352140841251603561087161766935352533455656439614176485263496331535597667779842296365180442727527784939913684163022993031061993380915057267558415498460093755808186285878685892754598832999304997166315130011486476081100443567474843480622383435091651351357462564975696989382616626183670794818983766556208604333876554848397968344152395997874931803134926614469044205549612343112873386974460455241509774888651005197138975904755985889003681182683829446153360316681790890582923822722218070211575869561959164816614111560080371138979701172334393189555235432381291986116459195269432642912279152435796775246712633254995009261090098108936543165094673288919358487298715059304705053653443885323707073449454532453270725509134109166056407805574817102636125750130683438721691772405796864858636429489877990075762031341138805810239443745595279245886835551742946558102346838683571352012437936542710356241652287497719598928696776824837197351758021224518867729041136234046815399104335590236029505007464992060262866791799049151023537970309135728969557209856046370097527059548481930258907622768162750514172256281368169584121020474678176706101683085168392702562200031973440105253520228114996001325074552982941912790011499114655770204743806494433511267571205583798588574970548874081144073788550847380460020342275272701265066043145183556235420365709172114987530428465665929869806463708309024450528753532129151773952207684908538985958850450119259440917691508886690092794117504743705715670290408438484913597559437487110030721590836336113935950856649093260100717261453662046159936516673046784241882619713762197396543883588248950369591324266820026631651541193185748818928151541850031180046135236657444574398141605842780058718006847690778639228494051501889781679224603436501779165921892810968104905186298162516961547951834246669734632937912042643277496524350242440205665863205185176006811352412784811551901037542469999542908592624144766435368372425923525210177781651541954823606656517070834910871458880288893595409975208030741668883614755587142251170186545908026870918722145179555810412806171817899447224070253180312735052196143666648759476837423623926678961103506100608707441343119341388150062986655772068052681404059673050561434546013834108381407222121878875325064785086539536687256419110576299439484463078197458062248044061907148621258743916460503203041810121937412462774620458020966943628497510648033859326436992384439513860073645712932862307862212552871381661670180181308592810491706577095758684002308156119291288635181550957943108555357535195125735498986940265278672079893434413981712962241688173729104236368395370386593878397049812553504404846842239473462428840240589935250399262903795443221933809013773236624791318650768288064844345896046921297113116850197026534890084367293375594259386667785275719312932759750714169673052173232792541569954748499984326732986659087381092076883106550988797308377016155878819259710831147256543857738467436111398035308860474716664751489051409205900481096266264618853959268576741020327568148074303569071833948910356673901957762772036391770476254127556048218937959785238524987880272422889442793314803607286002812501975453865958016173510606354241258203799963983394813303742248895535626105873261303636766964431421770845424950470972765297566804182077946235665224296850429560189083702195717373204946660988975633547985847689177260166509151760943112176180358073832085761579312890368970142344268050871418036890461423027566554763166959983475365982127128541883618768806154607448827855623454056991882242234021022909397354719979163450839685822989649556371366705591204853897730354091758830537978322717314376720325344283723062845725724090423711520314592220618714329935235195177464140871347822295415538154884937839215960432615132583987531394802982479995012411894974428814017826900059187472857296162019664131263964700916381722656041486887418809202817470466035731470462059111298291184149165563901912050305057447561778693986576033567113408875398499227868556537231967177417436756656233096350625317077345902698698991180225125213857783907294291581402601486427590759525105745329445190250581320289136293717253885914077403092453935384751933130642637022408470433661957077100168421007973064825353919405833304760601096706878826316647147902440857130283456007807012470761275147206685650488304499670479027984218268229743343077537312309760589515762306460971901989114331103911043638563804633364054698720388188734928984942854874502136650308620341376623152566151692471158333910411850786809000477577074377449360564293782837678941265992883207934565811094137260170841487123487886095423576063363038909672832491079160361476077872136110570984163980489255161474469616791223902267337637846484755812073342680173455877818481670597175237842515916692301773833295472515551257116249820331774482301463780709839509019940397820894120351230149811624155356296173262291797771564593529100945497859593411258366615362213701673501294951395952853833169963809264821129769635586450952402056269741267908030169769063472311819283530909204845914409527521349653296510828068386007340223305438690528674123580902008628370599212345726548276220377747415151558877498336413558520426184494372092670925548078725954730248144729269496469296700041063879245587449304546681404086490483113012021125603463027716054157105954243157456823766758658228788002600204936738344805811928959047827783989222671220968726800322641712470078530757294505273603970347389504129182540225143537555685323772473346729252364824174819175078852083218733950724195209515313661014096595549696022568472229703539001955473940132910698567255044887833980201487094291791828703291891870312832453815377821482592218259331381449311008662389726578912490557419646805702029685200040703135767578907466719169729685009779153121167102713433983077257970903908799869677785766884425123953916136424828130741911041287654160034597807599675266745973618995573563484505006721193591530010059077293367297630068622428015602740888183154647502342846717197154447462064772510405302828599082078210080925765446443250394828968802462095106991238532884182315508719739834381304337281938531085126442221884488809516853470428372327158486327687594044495571910271695236969444057054032677136676562047621064741275788068583539717383628932595362655371542450667481038051708215483062243782284486313683022862393447091805095858433090939821359815597236297225396528441187298979190564575902609749656253329538939597820228177129261396108767705787932647051050756171457963094194909269772882849015244298363970473992088809340934691829587917119531297493349255504049837703694354195722169183813897655432762950216698587722723808721581572919483165315838841282362797759239696418374874231158189211894848139181714291825689825527394516744622998280312909873692735797668489715561499967985069619479231384768411666554939801595840845953542510867772257203316494851648691061157254593817449110845776732663819683496866121648263612353091994759616560536532145999294817542760374641053651983981548422039192090476256625211497598982154271401712629726618528631024483123965596136152518445726687508438788773854082493594089240265179234825191388597959414205317224089950672066140557560468662768044285632593413416110649049508708046970022858857313068993973917746665698605805878353594300813238914245450735028205252328421603887257588709048886764250123959398887220264069326431522373382473241737741782659861288511415854343835513951500647399232824835311649260453230392179687823903722778259218016738854162079171055798648070799184265573287993541476490555382601601390789937573167019296260958982957556143065646621807747277150700494611617076354588612091320872277105569123178174717003498640308430187204494250891428032011770737217661999717016454171758974446998114998826084282754029366268258557194325512188981151520045233686344035196144999091260513135324036359631564738890438088952883148227185118190347493315507760300359447856994079560678289431890332564433950918416450634952284471807202275343445116301206582019593969718403406433069639722301357381245156358184805470529016771867683759571953965723512500019346984872372611058418674572379666112326729757332324695566041790903378880580659455799871570389122414742984897703108804890639148397282991237882176754999186084913596343735225356884619109700431239113141714112116781549392779453152168273738509814971106826770035055606681083889718181854897169117586565600977934281040570511039938529923496031325272289080341418641806466665458172198327970437118772784346717115474202609183174892191785072028673954618290365670523930801610076031616433198102593390195277750231899304226039180938779895719041996550816991107881096569705450676504896154337417389910591976656131561789853774061430488202407649566311270071920195399734517606906060953773474484129350758234939684532704953075727256174606138509219210145423809265622942333704304002372624843460935886729655183458660383214637501415283813280710911351454628930781266247392834967196774553463581706147864820935999914180650187877516664523537531156367038721235549085480843249920602929984207122638187574702222447159333283658936983458289703357999474718411614802225749571634102409233416001187093572764489731074262173967856803637620848415664490299623207752645007949432812554219446226801313478649365617648983055163926759385339586294667675964969063049705795511057260973370854190594382450326248916846275634865784404530938704520494021869103543697383563089396697786025286285241560726169550209464956071042151939402446589401837671733143982938883327829286394883640234335783674800128701861233698227400090778828974931035633922200824754060663554078626328508835749218188817479235574508505146260700380969705144198174200591047888006623247315951169241740504753628989374034445628996177367691444906798982135058424845000681545018578522970259372779316235428476018897236928239957317422068003979575697673424014600313569166020920699819658750581019125139461471012165994812638939901052104753331361478633200704384548957916901547578549300585257935830002913621690897931120723365951820824615214834318901443540051950787940486070749826980253516682265508757916911040438549892364791460135615335795264097726806334263202656269756628708093047737344722191276665391195660390554026509747623232507186633537064678273658609011754617467429515688472703582889834055411212682752491230150160913720618412530049248512481648826902184700084578385085603677226493195516215827237875556180444020155159868166060243314246000523679652410468293266695488180601206205602171773570436310779205511501629587027227300333776641682143232222080835544588033459571751648481600212934467015143581775420897826058017264815207110334311583875617202274889934434111945562641996906520637006010630484000105588011461423033607204636489167978579155789215233503699638240104384345254249903623537408505929775940957199959127705151673459587938492698183925085715994032153414366704314340727231534269168783337475189038951370462931038550834540727333624073720082062852260315008273838079481934291797364592100031532131127795728147782488968911753450285151839769421979254157683577220046320451097582145897209315890920014872770777307776930881902787047911732592131940498588275318724515289796176397373091993461153610468118630307397073283844443687329571390124373968099334157664847796188014034884744478815267174310334854782034172190992434756657869258979972922148959053832909205366252944697547987325002504519906143184579478096419776174483443034773227352662447023239139716424802558816090539775215953257358729116452179322158804659726645840584818403299209724242190008291520459848758886615198227196930917395549710357667506372182059422774400641259183771683123739786791553396332801385232012177394938908809269045728177172862473891682200119938569435632139064502097094787226060147315384226558928423504686813261505774374644061345408664538252276584474856777511789871637868602307679396805365363461516245810097719815935587301527928282078973993526177605620566852845322127903345634694854143707199278231905991839999841935884899061500692349329762491596137621178427387828248521639047476351808676657401241031172109030207356074458335770014575378128943988642572886634491543123990548714810281761683179207812204231296812457576220801614920752558934416732368630266237833467832688602093462326901273073312517473907122007124332666590567962627001133161398844440057812618417369702082558196567425052782536783160577639869530993885605359279551889871518932388158143854077799780970782518121082186817055723813806867725649696495378987545902872194107490451876944281291291703986129102692772484873017286519723639643982853350869160790485148190193929728456883764548243804802031842523840012429420943459639143684235310989963531258872140494821800648358433162268824676086969473076454645423469401140832920319341166552985243518095996213814047868742428330123497098978572041087240509833558898094540455983546885273875737345976471418202841063501448128995511239950059515431665673761372064280479544946784382063647429206897051263173164436783058155067224923922203144711527471476283951614288999363027855732593921083412472554833521731931811873440565677246676335014436577106665164201691122850894829976537460891691844954397999906602445976374219285185456536439472168949418487814674172326371570201046322379223070657265592596881564769508049703990875533705040739936297036871842612269949784576161483378017809010266994597872004037064100725678033544474746761886449859938581610382563417427407769081383915632970572578947247622586227996441568729513246347406938352655375708338692086884697847379833258871765538235972650955838460010170248581926818714587839740567145169940107354499163257803449540858654818976224048611273626922356012629958733618963221188947853955999883856036452419844107906529433637998389443871218673980331322318436735396718292208510109672487218651611125181131323325277015685925701501541748342064380738369224417415731248446129407472260019550072789665982771577116616797137606326338515730523362324724581613746123349075001107450268040006175090938320129822842307159713558325406207885132050775933566332634117468443789562921685415324937446533969516803380126486684322420079663505066932781538043486932937660542605512664773853737377456521068835527100318606313181257683489312745044599370761785332816757111496613450551431692985399454429675429284881324525383428046636680621507154063313447326510147210443946569428516460929274157037364289327926229807065372442307314823321496876749071197538770690554896667522598909202596157076688420342842080432671079287594695729778516263739077620497253456619135208824522210768764139374484445213062789241001369670312312447028696676542314521157552029509019311037169204812927792232186432469324244072928981905878796723197637498716156786618064111342655101212417271796455616727627504963149428815421047377617774669888968875167728391498776327863926602742292247008717376565147340909552592462448794316176559296846213266320524936282153123757776100975862323966622491860432476445716632354216186152840540788537543749740771326873115971932397857641274924105338787311977927070793585561899754197153225440969760458942795070483974058239852699350245969199176583345875769793523595229090923103749931671941873670757690389927377001903253187260558543886252680363406042817052113422351202790694917543969396281118442967251421820670198466128962131495962167818077886933515762480405259895538044729618202841436619242847410881415197412915859527307465239977883095451715243536977751870402036439224734851284839503650154011933042076188186189607030152540261468517418416078541845603613856630072970284912086577028870579004075711335355985978633541226590062704222466460584198143283991206875456468238532677071227150551498872898859761904325864967983926584508371271847853135404036886570852936976548120762065263385962513665536841090925189285309830682132001784689364083119607947625251657713577600366174671994097081907254354459336338763880355397188291470475510384306991430067087369741622472014748018476287002981268029908653975671889897241195093792512974458913425444534129436107459268686645463659418531841775792770465932500428370126860805964579989476477565887419407844942500010189883450304326809743350694860076333541495731099862976715730691521548688384097544711511162191090922387318317362936646127925845931672980195214849978594925528522497840016259369834971004181342160469687511776017239253227722428872636208334645916518471174505954833562861321922998566375610981666044879619488701146760926644286078850805115145729026712936645719370888122454181206797093892708116278712839135856844886676199829708299111121139237963937334051837520744027179548725991613649838908507378682850526673933542530566710419313288947516161493094747595706626462621970963170200226645797048375959423757818663130272072388684852418868828547713715629981252018228570102595575579251591626237738217184495788648758641145809771023883827189008820173140666675572067686551857922211909939447959007171716613536980669637925044284438180564471577111159374635172822339435713588478779819063222748112760125859611658469256480378383555796268837903075136891066984912085829864321574687018388666007416084426722473870722838548011385505479611257277370857384853324557254058557819761789059585765751450308551873069237151905433193674205037049339644929360214507699917108542462219689895101780375505228729980516839422748816227153649102914142513746404951579216082089489687936499884254005439734386900954067113395061932612149464887207560369254496522311705509143071878700057556266633870703704585903385612632211452163639514253365025250280734347066890385461980038346033394260048697435385388891808956095636514052631064088834956803558921622039952878980019846851236123380116938131294790077945814467200263680262406836488865679321115509199191993333365170798438651585799203411328062226212658574497836201728126519630421248248732249782335111004999147129141578722795540832655758036239340698460442474417362601899453316743819784900172407416211935449578439241714356050245395887194520090205983526732540024681771504835457055270285220203936980490107591109469691374697269141765610401490255161676137154305065799647984765221262968473086778530466082291103775542251062885606179677722731409499041188228454006126263364549651386199790568027427254050195808754265802184260247600265849365467051840887028930610445502666783823036097050924772646939777253667044930789920845619048739576377130613766505877306393477046875664575928533532078693557209510325619707790593276291228382730571912385040849781083021534902170127022211225858501604764250669130001905107058634971043508817782906978958939102972172675181389037534096306025860340622308627655685779833538805860138440124159682917975837652477256367161530565491443387935107800664079757021231737954371720101230275152634092068542618592487287357439019104911752754608082672575196850231316002165976500512658795174075142488703611590569163097702891078952817914873048031424330016080512870497856742084435743979037142005142523405614034563269056734511375807040475343807385590257275435209058009740470517871547251472157768036821118404460034165509354307585806429873426151279795943320651741599375692262785090732790246554095319740697489763674716929654056645554586376304264335759904844309151787606156539693267304232886249117524787087794242661017465058007333708080647702169214461828326761855781676355183028813015426886045462377120611602365802918451672575494924538817317759689583819771245603771403714289376122104094998994674227191136425580256932379820706759932387500730390356109579335544178804963759690420121935558808486740120778839757022566053843781201480612018657429659542651413916840481658326771694424688876924428795943078808628220793401489547788112661324578431701533589494716797737413098010363846443340744124247687357509059788424843432359119757188575238551249315176343129487244303311670353318776069062993885808222995278683056707743457396692571040532667719461677858122676832173240297175715675072712145475141632496855609983666738305095263274354777567697448257718576578474179733918103807750342871457574846499276914562751419380250802626361702755603460897136943155781376193647158365463098130294355016610913186034448903743256165237340537793381479711599281410469262608844857281888677352570118679528203768352928550770923129012956313075288140538964646205564786341687023853542967722413188926876042283056181428838579069442881346127664803874484812215534621768143352476955873584735592873351027382691244452147763020382999144722688956246421125877735130116300458673098898447084408455237722066592490137882968820949080299294503192736029436972822690097734030212975424351818960389569011938882490373409939214779889643710574744774555759030059375620027710297149687739491705633119749599434049131946324278808955998534942161992969021254054836785485517607737948560100115600686490980841040553815382008186012905533588475675894153350890021819192717896953592339782166188971832012790124556057670023101307921998213236974487395455743840808471988208238571834859434322757098526257603497248041830057666752383790347232306909913717951009348920700212918700660458119386202335687289151835488326197765479042820252432808863479662824953788393740609922363339464401785673333254605118277385923885224611056036809992854752963590095981454218182981209898303001163887367703033289904383139173816436820207068934911708250651495135845974678300325476462115922124262336490215746270709663086055527813304779151252809486269441359832570989239521999225737824926822604552900693922883220277463763940223257938595584132459461532590264697356418277295141075281113541374256326970292747011288853643225197580217879189742511650374123481096202879322898842462824995676471027688007165336255698317310963497507005482186873659553041944816825893001762592369496595188576100834257125147437526363987998376566410143931897479117211453215259559734675805075701318581275355449448656858225021834315635714996718831550487364351721898225873597057882713571609471237544008787454885242650131565897271609088457674595726208729071149004107628676813520735227538329146241496090659501288680552499526396882643811642804187470332321300194825822717603026535262630732884733327789110500783950769730412915110452794333494626383571650587785921139293194044739574073686048845143225488078919921060760227576239517575195723183858963208969416245124921536189347893742813453661907487125007856368545038820078266258681063960312264299786648439108131361533973886941931862204098657266157019710694417660905562106638572438322032967104097293629843667304624999374322044408776450750912232729510562576715476020450857761311671714750728582259520203926546727510688938286247175585283138378408619706629184977884594108139130695078118287135423499190117121935261350491997661378057314397059051051000445962659158809991532315752503422201670190186224289905023146771224353017947114773012980486410325039549478897081175239310391194974932190548270609550735297396979499439616819990455143538261928346371566489127541439676090739233896011510964025545452644730077948738483693300736629474896757039844812552877632600477800458126329414282103588816557576972957765791311939147914581856012751306281115714460647538846589445094307695463301177513306874890672485863583638386686826371059838322044277811606946813856278263125045246852946221932008589949625638468323273480646317048857223870259366598536177261498952830635603711153152858566687861993797322997529384859381341334822523824205707104480872503707628311814628667905677913615568166609057730093656084711034988886973719429826436491672785799338015536472551331704942100310374461639584953446740833529673840812168303996779587092315803497190273337648245498532905870132018202362476343910773597690436735096028963536879165497452502612150518448363282535517850320347175966671007081871745017789390834653917442488957037678958252523354855935797985725697867088320508808135479762682046592830951214993549549536583705774031132631850747264478217329917127100918732769526453409695491294852075068021767169387533964475007846527593664001870243098048300548434999275912316470319521110208782765150845697933451192775199211700763375942048905419672103336931439750944918607046882639200642339334933018452020143709350336132415088592875008288046886585795962261908452699951156773100507742299420872289206986826628337665168684163636515172785474250427789091945400729392586357111389182983252238573389928263775652096849746386728903021127894019303992852893325967630094406966627949175401566767527505573366156880527575123007775100060576581930243358688705183354532270557543539786571468480190716966929247985476339327995576598995247544147846675006840944933911447324817023087814157556171162385832606328935341723700352048023996343801037521131592430508236646138082023521537117449814283935573373147251503234137410993726136485498213878634443745895515976819514407453949078075120235353760280128929088998385264113455528028889122286956353884789564573366565454828450119584101758960915502840584200618427390225890636137020793856330778256225006044368254850515085809601394488096940346613884709882714337791820104241813958485265904588929406975900152602054796099127746013939621892700493813723039586884681489501806937043587091234435056288734770259403973908571415604416336496294233914499379764186603977836226235426891376467700337467084885269435509181742711098122772030233689677376003547964917424322220029608596659558275061866683934741614625150355103129357648792769798074748981891650935016528579572018562695710760334366907685392652026934489809668685463243368087392288101647242225111511397067064647398674980419046075289149238897978513388418241860554191375475890932572955172434959451219856863336027448947696747352895627227690723538070311678140401620748428295422274099405358057751459527470606892263972405893544011656256813057313317927765185778942321038173801831401844257537193843234971452242437299133148271887943416542339521502182397579196572632305918872400986586158497499560309747549124605393296115640366243914398331164179857663789105833935017835797031246993384653244709880815846266460577208651543598553380784784252082070958133883120591236199377082213400200086676185359304906356797766616821095799409895309406928010498596295694715774826977090024911460243621456937023099834512070084107868891111411341044695061099605269278605296140260574029325047512104872562588820330103495554958249551101434618305297463127907666041142870606016840812377390856367511490244404787215323871989566917876070178643635215546959679910004616086252448906840661328471871735591271562620604920471215228764125435909729727349100882064572699822856091506265328789013262087765038329673883378320859747162718681370851449995768442521909349687148246007439581955520717552052857346635176057530779814289068273144197825579152842550929106624593182270092885429476191233370525172386555122781089442481178214414814463339110001229220891518894587562224762251735841561697893297687670671245402009972698479517764053106504279018899571040184439831921562018738256920007268439712198257879451977380858845910167815757591246150246659276807827402778461204794152829885782229290642723617138733550688846872539565547759424108811365169792469531930134099527228862625500816050316901569309573340135862066645201975934795745992333597284591723484012180781716211927265230114633014304985575653865408844543192060838094704977811242102669301005540624913013286231295710899221668050361293778072236471876302758735117382777375612035132148053120474417972901896527611507937154826306651416993401684836498177756859550933189273480626968883705515610724776815801195823966651503764122079715585405337131209497615982916812438479925694468202116641628077448295140517168299863870785460491206429436948354304281009754673149880117869408054065781903929748080613631682815604312639597043244422385836451010698259441374929535094482709765089982251271455628153573416766621553169730090442954962361110387230405147367928270823469881167840125310619544379145924399112933047948157441861130716533723662265145053559295290965950129575295825498588068859859501237404437686590172667489793174419841919253764066757063192066562616459576158426208691814359712855463391357928525299218657327134063002988777482841758542778745271199790813943582271492946711767533352913428934748824837362561424144372979758186806804144390722734448804280763436737019070707348244930662597055358342658071848301188804241494411731436808791819174439405196649004020836630247220907761130695844645343838301824543203754958751659897381823077077157903987186739664935416242319584607714638693527113868488697956690457584381331113753236768276605818972340317053399944009531713018959607605545699868963981072700979787782633172429914677389670459253291954960919903772936888358401330746860384866707126847531601644003515878300809129807431753800381066321684869334374364620574944267236224652506664804847270752757567913768377521319105136391969595232822982081310714826602063537464044115449591110420247096660877632150430339740287190648555728357091170349560639402731896373093658574498353961313214321990914601140473428260076070301546028756356716583739138840637159959010466146555992645331167447309372007600113315194229648009316435101040452539033200706562340224799734662459927026574626096247048665315207273034044292665581751132569164782039789626007159289707825307628290599362590525642228412311692534992343138766823428176250314687787812856948976688119289253515468895085628935808195125656003511143875576750906538001430609997310918042231283747162575906497728745890544151752533849523192698835394728922010481906160542778130014111392476307243287731014107925023254566802747509328575655821824361896064817544982485572941135511386517212833590992258621319201105972508081808111693393930630370221905096004531653712695294109458802041373323689888148024702241075269680115217732316732933668855317455719540093338370413645689412460573088408370434522871666859024394315436943044867661972838505994265329239499003580225569578149291781482599876505573085228388929562642873990922176376856053153094315364781964050932915655718430158165131353092024000254774178553548248824198794464045964046418760588042298259038005839505459031881586653169374077746073061321039881029959159329858141374476079206823039661536015352999973872827482470944606660943233286997778514461940000947326268463998296837612745044596428410591082125859349730494205868513233824016679551391661972691834153940053026432710795766236733939793622210102265176166808138154963767976453228235233233702521702948077422781655408785519599277836505394687947777714376872879996572991769808662112016031171676597379844471648376591844680511315036854252855666988550408487648308217113745549313311529834648811472576018878071004558214884143309329169073698834358616449627392810306592434468558167323576588792759556986095873992676944857899202296004234573269112848565692596376076890588593864607882447038443716790361972453670608583524019376688054747002558788638982643798188825892510385525362614577678768884632616889980788537908943947338234660159396590209179679266533889109694263223301653988315497219308744597343164166143933638154731312177546394902382892336974488804139073901946104991297853323533767747580889331654300503003062287574776881884802095702116334596395610903287756638008209958804753844646571265335932638141408005824295185696588309010078867590614555168941837458118144497760195308173495790745709618264518454166210065711084459047226929950686471001213318091671326225549509897981521056091193464787729431845519052686310587350929502332785250314787981187591236630374281427048098045557545032750199000519610077922458999749683931167180070656660294127937174873320530360651090284681583594829681321616911769194221113085379830134791129533471138799494607868418010177870527541376839557819638649126672032045096853297432267151795152121787867781940632472034371140305045300991195429173073712479128108141941520516037468250228003644644815615466396724571600305354985988902493335154852911337022376772238178307353076396800940740146316899836030540073512131516688461648009307868740097601148310201775779159975338143250355903659212129793810099681754091657744612364690337419410555746150409059144985728063853851509891539463799008837747788125687417996143658849035495692653384194346287665323279733737812295731168948836678735110676492315774157040287695379447022248980306144528621306668618102138610179317729651763586656910489336170458869256308349714806549662523669406691328257612629813306998367403433234287947575462749929485595286872334848411447603146128869959420614922763584154004925627569522746137117011980966902685673498336002886487909453015501600875471472518386613624116813050213526147595306213597794693620732807849189381545797410806170709912120456998213621572108935329004452158482085363390978532046573201629965291300042401586563278158814552945645111466027201545218227460421190701636144609339614972194470693548035998959481820143084377961263542365129085838543152760178618524335259877313810770124083202134184698622481837853002424044169251368925379277866143499186675137909951950556551151099995642744048184685858004773183617242834268804334202674704118662053267610469088267074304976009756974118688498352374051486258182551846519815853975296288966970689068472114913803824493151901083475146026588485991812895121141777215766676297140448646196694656825856380910663297269976574758357261000005415624166328473694891117380503241312928104025912278281213817643239382268958858037303434363986853383846025791204575243336132965937482711730500422776554121082301812381082948132140635952611289025372873576439786100017515393131918975162385043835521977334138854884992150225488931598429878260042767861971584610052947510517169950901185525888648107095578720230604826404242927570547171478650463256583948882477765869643101900195334236662704290038690708073249951780856192479537462734229818751928330670890774864805697746735789942487274649632379373861835783460283645862236065373413275051940990655549108248450997887176538545669865204167427087239289059522133539601312326871546301622382179815376054436243902880548361308797842536226148885831918860056613536532115561550651542270241713785786649993436327410809163384928265705802202976690485132573256549560520381852184847134798117270471056699322513691942278318326067351381610983859791432346606343002985562723589807458305368484378799998641459004234458099083496731456736210553412107429836969817352522022672762485802345030158969058852163427081146241271743994560895937339648775100606017221798072133226733663269756557787809463115621238976620854727360897243981138833473263978054186185432064763335139089630158200639671902015797978751616413742822234672820127392742061661061526885243711081670937334999307396710307639909072538613033895291407511003969709263991645246889292499321970692809126291488038146390143887423292184271803642713264357822616650036490539410474905786415729224491043040527097080294842228522626635997052237717011197068820186418612210648949468389912662625360049123411254153085368944136912193732165858305781756580589522188796615038502617450287831790843459334753095413925989045875222761080500513852172036188156499805006037138239767050808366225536022225371547961163350989579059471583252527293806529010718439396543764235505299436147286403083498028294566428514212838958876683974096007458419810945485434556908441680197046145039441725488092452837509347194935672422229843312382750972952077743182209181342591003931419393584336090666244447788945794101496345488020835764981754196887954580527498367005865805450116211317710156506775725226227746970024080107987118862458847025777598277494862102678255374048691453898036469067424988057211423451959997083621650387683235053225429687995209378506556066449123855811546832440537703266186678455261083031569440975617670204771771969858880390259916632640225203775317144119208518589038008653228708453672525384629480846195276149488796810376596919171270581723321698252808906672909613368589721096205569138710645714043539526826444207124959265275457017280679082654595469930240589004044107610987979639661394676756726261847111561993279587555149741778845131030528233567262165837685047864859564272613409808364135527691457017705229258705729774984866755124517175066809226262640762314629493298525459165988219365575743675106569576061590804586075175039141467315330345003805553162993102801611496359605242668723969837319690324086048766919235903264108614361255231379249224772771956829017364707741869105475622179880833211926998084180842859183025361152097766278515568507463673070201032927551974372090886792984660312786844375418574990596773886785770438924862118055882313043003455182986365715405669452597142129473819350548338059680870839707404397278232340625819279481682499361998213592026761015204572709578056900762588362363854273810004836413136106376662987758890829681682698376382955074770899422414882273877485269716453459139019572332086633383352796697296027038075958008328873424686394864059500678300235957525750814697261458838301996807674950867176289495609514098304249918299125931482258529089775322927031439210132350993403964267398392389673771602988565353674318224254048202670859981450651153771870332957913158761733426226991609315042507247127333761730491713345310448414313393242685975035377267381473058823067688631975505580408776576831259860373803278302544902235697434881241404958058849208969002494478589648068808231090864144281042395597933386046173706976761369765129087045179468741507211785048819664989681024613922633111015616964410095916537180140076030675396615423674255718106932736095522367609328859721470608829228348418347871271440530393551517040563172195583128883516271879218457574582573610950546504655139514612331446077619538253810970187276647980175706707786601631736634664886451425397827944731906812373476757313267986024730964351745743197808415669078800070639854384597072097912994273229010265851398440661630644246262724035653480753360318561279091404537890406329697605822233335890862785741290863123112851119238595493882759846123515701401247549738134237186391236662452361474573114083519287908693387639935104375789147407493987746950259170851445869309091324763631768360343759566184760178964953078438828363053206651567623767008347230273458451030675643170733542726172187788129686480054170166573805571061565696990443315460948741068853841932741721288359737590469714285409755373938213540433047089738739187850847148744084589020733339682298641502836403353431577567385140349815193575744074231167254578487261584673639217699132485411748179326550671682415826034812297329563697759687631951735124180216046984491501701803083797720113611957016225248129401017249680692237421936019419755823137665908627436800782808948063865936670239993936725281228763678205742442649632676294996865592074340383710426064846922140064404529236611474141260188839043812290547236420002385386527445452621542166812462325668279650085283420957727565490108509676472741402391280350324864175190002562974302379125936137293390137958302080388479448075086994939508481839878566059313903646745116392372381054762733644476064795422619766287855361019106139731031067177020622764520021822861201136474172578682443901428235474810052270809086988981505522114424168067857291520258890554211388487259755444030117114690262896612530637394015776009769605475709334392591534704709169256811205729883460680295828798961212950357318405042968411566147929012254232418495124413087933314525573560571119491432722914731993214120183514316417176206489234125893934076757448465053798151605494648999391294885465924550623534778626712477310539205545466204446818283784693484897053708123412786574826647978910695761538822106316431719630031660007835916824210773067464124695248227337186571256512022134860289379439674068371413841263702879096960633115719555235725238454926857096928083511397712088792363093786192722435163826422171359510738997420708204161555745693492708937011590580813140737312527187644045240961760023964573418541272156334949138371447341522680791894526196689275937002738083788326376619092270946243776844896640037090374406303385318643226720388777620251124524967376360138106165682838425560756715777129304184229543603230278569282582036694322319761548308094237253119118402007977584987139362531572586020387960968021601365691916723237754235942102983927077455568128933070346816915815709284910400402474618802958061382846235241567200546548182744010004885016403095464247450386421085331562247386806351322977463556022356409198107611720241251684583341253012077811921347653078917633904139188388241003602837843120709410008804940904976003136622718891132000750865048503660786277096285095446593533998402288688520258324834105792254180368448575505082013820911217620839309474115112735835176030213815486324053712744306697035244487929905445374993039210562555104423946422158459996247919543380220497008853986865162190512305889618048251148892567045200627819640937267732176649535087917666897393243559109882431371537385957060470498946113214337152976214286769281623649866280660346299832991849470191807453014609799174806337590354402271531794624131923660320468873746934717201597682395010152270062194228804423565096492752263365908269023312021997236599679631665333140230421839872311641535662359683229545359237434892753762731336304290030853681174912987678527875561617146914629298899215790353307778768568596440824023814771515303791701218523467222216967961955954760277730828251284097811342290164675472383380896961476236873236551165286996680166344579164918401447413561923599604276099886738978023624475975630874445608891044181465123432224356978161340702233972170786377172323454191369847356523075086559632010784318439010853877089621329867895556115361397575038091208420237288811938752529793514939315291862680650719913846683544556516792180123176616552056631711489922148959420084142653797760028052854011973488175372693925795755822460933247551042804886971606743368994052236745625596577865757371394295483856633129361200456499406993954047216338180044238449509272767335492061596035538072983089124248484131759261101172392304941526783100772767894620702818790439901883576313375118532830058503588563385735977406131356977849318249980150918953091560948131239408008133455368313795339307416280035191441228836774399272017757759988521398408381639964927739772873298669009564811717020675528816474131087526136818510243457914728123452945697510704006552701329919300634729505705504728288778001004220708860727364094231560456257220929173593015909891647009047790266552980332062074809458210219244268661391143471963081921540143180615060872037479167655049665338143937647140104859343715821660145578721909968786196491498933137944843010360152585408485038063673892216552535084716150960271300958323472103577157414387460614375656843219220144010362555643163628075189129987237369171720344803622648463742398920362382896893261883534726568159118597114919031840613840343885859427253050099764103593813193441337992569468837614189572741706139750590066473356782977202940208070016143365505568414157263893654169917558558094314483662469288261969880542104175990373409688697667452921583432643808568877763635677342908448550015880429118935131031220096534047044348430685809479827644293819641969814339212316922566845287440480893551816712396058521163779774580831696172066736811418038251204889880424718031416954898047911966254692549454755105180470777587205159083231842714240337667778234280663484950336455510407589320972570266220049726873872428505425837434241914701973327390435895203372115574093449446691667033157715967857208329810053155996114054520235766589674272307326887092867936507036845935338492902770270754402474704961815219858373676521328575276421303020261321681083351248684784590467284628744599889048426475909966264022662512117346243440495290087580656899810590180883836430434051819569950918140115710262694707971200314686436106799266595202121974373492275962291300027950966099423359426818351282973626027006992860911169154186177757239134397168980445620373209874313571083875011244838659620331321027061863754499789603287714869817053896800625419283907288356964005441541224264786525334572797280822071421990108707524855865928895541183874858536521235982318589153152968182267646308552017959243993508826948682766987263229700726633740663996824664961238766251773537435676637649647521945454909701548335342324174509808397035358831301744630714411935765159394465238665797055838294046440838834027831789307524123269820092627798163007114681547231511662235252859004847673860137997239502332929476983347919584682112285930465847814462268992017090138347211622580666541188705897739484113629679384256306706301031562300667422578841466092154666077881729149089937640444848329728264051711260908647957571852210030872991484381159932648760701637149621909300265445514232614684000072241257039797150863646419453674279293955528496505695850790618358993313125733793352354766393204350196329995349899410944309298259811852580575218855404373735195207116865956034871870564121402961872059853861647875147146121704594167352302684417246886043784010830715106198861998007348896519001225088511703971851458162743214164362052131999108857996019354512297009774935271135189438348228958229512721963286847208051105844373926796631405438689167027975434969195112445755761421636798994420667582262637718747754737080840842865527005945680112306982577767539833189354120723168623548679709779859217867613723962979170934782429585889701694325977586240808219473640875527816953391072362320190335459056746315516414616497491305056644992457894178160577474088063483854616999476303301489548939594561250655885812916105708031393921220381055849149573131178719884927765626184031433179843142939790636666480807641193960841638167306275988253586146475951154474320158504493875040532622736127053137236481115893286089601848249431324932192503345001905241689080889938711156436220199709612120694067328895183652739129730901573326960298016147104967381946930137644830166095455287566297014976464013431619648300676868833631254480004387280301298450727672571747995264848677896024334476427956997402969462393793260139633973235989144680337480307735481920313145515385663127681555736528169787924372753581388650294535850445122258102391061471164247483111197649542510716018323375479642253970782527411172094894926773914265019287054365831311706646943082182568145048384935880094079802863286071993121789371020770906623121851850958610283614542477900574101689770318526326593676389962334469085289008123148414460795134485384947000535382681921652619047467003007974642908448014984947619835647584879381191481666433462465960272384082399893020445493488200716333829448204735126212653600371796151599038133156461017178982857687617000761156697260371533960700111033887029657754458045805604966925311604474751270500985443016094542807545352442460569181648206482027389451203723874092924844640910318165334254482670584652025926097598734224312343169769437946082285401806811429823826415747780393142939012610696079636437547375851364571713040050712880953826497696269038308223229099146312589871778461548971690435863264868144402807817708876012771238849148439419039125133082742782378293075456112453173336001914242996961025855579752940389551714867725283934504003497431786779877784994098636872336988575526840064619380268138793249652356194614952553481637056541200295356208077989603495202048443280417670939059337903913630098789220383897556798764105556887475828785103103097705832604743548132195986788361432528560961890505092410191689227450972212393854967793592482286219785944039978029257815184150949525114954977898216788983880920483755790236355086611338923963567324754539851450847686712074072807860391556727354090183014686212321561176989589533102194856917791076494240446076641346978707505675720098620198584740368275937075510446431050572053299042165312690216508996531921092481888441581341889889435582297133730300915865151395114979568109832041345193203682269360989655060184780606752007281341403285640229667642892614325115618816340594424145377929200153272185159807192827231819361116191303421931957123544737379069360987272579925213670223311706671595779117550954799800436575889029683140165174758989712445630390930809214511345955444760268195765695976078675320691889467988792717388669118109128799665494269830280718626459094126246237584172924575710823492972740811358469516587738223663267825997585033596466074095764361315892558802219631995282611565530042757468742460004754247859297914344230641701011051132900072162950655696735765369834730728921930178856746300233545791136544155867008681649546317615824864110303222700057893174485407815998888397545069311102276785580195168108488504108220318085501733665253248986424307340597814522959790987865208104888042311787523103016876657987431092481189364586651180642634549491413617527793007720300175396519763203044891443871415682977564973144698730303258597987341829882555261375362642900368099208726615820781970138992602295229201134294175971010979655333683591309413546095661926234596295587450614804766106495657035760842049218074814063668474452906905592641311486734075822438126939173959819156228966826586279795363607051889140586902758883405817207066519619714457870744014667194815860086466377857532922008610571022686149941725311683832230204065568032249401464688690444205990180517176586897790433104005837464364083439063972230127869515463808963975304018529265304257469600911504913048142212561728801831801531453401159091251198100953550112818757477464677961456940526277931994709689843512191012583118875575726482371132526492879449990175925799653952046151424314380577938095469128702249833995865902896962157109861261206864288538163976236571402224704082124397129102575401650464045568653068281347570222344690950397304672407774044131954647822658719627356351665039086685239213332221807017197964161464629994068052381515297410640782506773024108642411167707592001761461039774184763184745538991620481315512477887099432431588628204157137384977880571925329357290468649021871911064766946613313712688457044472856027823706146116379019935298791882103138947298715583765515725336582965758240932494151565210243793799712753286463361192701456836479125819508562754052286829205770385505448653115613168772539441802136650875222354405244721122652954992428926068004942135660986585812412229355573179358286596737045155587008212345255348069567873958324951144308330745017931427385025250499933027654235989091358192924483441781075794572874157615354660128906433338624890544187545166681685248951131176525892277144576193691930279318558043701016748138766955920402686249926392426612635546315179657560551692745020615500127853106245350288945577599570920350478607438646064323895391062131514876930036909321877918458715777645852186782051460028635351156991008117950629375786583957033891736594935572816976300149284033691257520124868388599781825165727355054147557881064876615456504854074778064127923165946599834665264914782723148994796257037810613297181362797114543284915241589825314650692148618586181098037179886873433804539935144916858576986546543407234690781612838243800369885043580182560430835753956262921695858047854890325710941077109904910637495946439200771135044253738831676447538254504155360312792475338868789588792391483330066736919225973242831099516202362746003901316562366705469829083773139742692673907423148664537650667635958801740578388704432919192846183613394789322759714107455764307950316249856416140412580689190195724198695958339607852186163124214011215706412045826461714742376199255068793749449367900054628421735358272702153183204387731018326419695390688492200525802092884908328090720829424204810402579943700232611734539515613053457967486342773990500501547006779960205729400207864851362750714437942899360452458512374897707513903500034013141235664214707203922561875342499719305849213534610190772820053830988475026778239114588457051424637151902247260341245036496412114774208093163590654823962116929304216556832990434714201200723912453973472012722081303209387238272813817715344225971203867787751793564838409963996145226456380080005797335152221126192060152845069241572193223758430544696115862374110909857407034390608674431064382343047530402525675403762158635298122044816154947069352352017521965918056524807974333326546111003667382250565012633198238522996234560897160327439409618373320244971442757690258515421219677973264046590680125206628272332684476686676274071130036581299610998806567379470571462730077456297108039048107529722260980824588027911253688345568320863913913776441116467787360461311099347702824815825660410990553868417825204158886648290659048654996291541537878121585164806815854400193643561315112981663872257062493675441736465742098262365188117468369470916627557813939702787208308349201497028130650325422748111374941816660530844308593503848118399345265012415805061824098619285433182383952854059276906134128715543135341015072153353960292749600139456846717769405523165399811330045484254963285583223755962763905526072691155301649053148854534398782447571940623861880045287116838061657715138412858294246968706009421495977082049791199280587768885893188382456586396354225524998433664718156373743949966765014654231393201148781917087061427629049631972730852873359962664248740026902885143791665330807619517854588892281153454934770201030370181940444232179637818274633457888418140797212878065398398337249549483120695734772905706346293488270444059064882982090766426118144570926947922194840634051578128125216337012632265125631068285628231299748107771165121941352742019776444138134935369302653964539579930681888492959679221232222836442644723910209539692514184102155258030834327659073577744627547576544221839342852727875225846165134316447033515793383029632832798576885682646375237236631298126693158550817894649021120135255232731943505236627305859965980714698393161824319895602755476186853721934812306275750410900809164653970873740005138846484304459566164167011864524382632334709960216060403041397286916956776958608067025688710538849329519269697390254617662780911298343492352273993880840845985385723231043948980509055739272514503991609796220157558624553452614229116205260737529599528618083370492447876501173192231400184048046149348884502852403396380607045937876423228306264192017624189074616802329058262900598040020653031502230721532057168191704659802546841753392812857948078648857186966033560224507919944733103216346842431177131243158085413380032131710423861375622048575194224550210441380074613836853211995503189403303001499940646007204538408331826269652560807404590532628341778323111602964229998812671016944139395763766585852645347482025150127179003058742180421150991786597394034029239249695931436469563488665091434556385365108897646790913509807676562223884972774997309897190115108936012341886194263070477588134817501203759422936202438795011744405055098220998708054322707591666020995321338225641488229617583155595546299243737179449386385756720255053959645414859329166605936841081224135783871778491694336541560228303951060806486491601798054835239659153911833745114142379417767168205106459121237230809932756704698968242160109242443057672226316912596745217131983262579440860222070207960160011424710569428042987633628825533750961529487974720832775671743909949088662997755270177726319297058487964166256667724034515725588891400593455955074069212192159707223801015944490433779149642762908746995658621560330665183011266307995977579205189262705635467490893446044941556809836289598893770042918321982025176754294688039017446421146067623974720510198469540250564770146093709799119860836021290004415394136898682469964128279887122149126761297730797111139910500207843310568529522912468389255208715428326193513605254255376459486179227452878267841705417868455191615803189608319164370861459793005306005301810593707983620505970886489009135332563650349495265293218823507069450068483549688958289675924906457491597259014572368165182794056157945698115952260986722049841666175282612276816881431628408458365099688506439385375568855849867501823976898673066383798446659019028074127725864883298817548592002754767361400625559581220679916087574804842011586424240787861420368445067509764983154270255111049557889296887608781184017048891304010406922619539682632311417608652495095892023818481909676657877825585232672717260871250772594781109250323818029234129834836067620087113569487981435375641628797155764414574992051522004078433161085341789938859977096694344260400315787313603656581214210569075969401861175017343135785291448950358175197772882855426057043323136429504462583353271608411242286107643045664586264513462804762675450892408267886306191112338270245354107263878703642242519686689011615566268015996382304780212884549819197388926847121705062170893397889028541213366954664230359404043464978431105841075253215360875686364153366941387487954292001588794992375803096134312710639966992363808393062320792679067432670552533701187687739922729213083195304004318883452372869836135173246454548351688475246012237158667593879195575306223555787113170999545751132945225835275272120284510568837910802582547902552678610201779669080373435242902498958030676592882663703503492686545325170841579023195397478108342874986428863439949457950606693735503659428417292281566818572619516960987586232396417766047825637635813768533047264067468602485119105091024712773017453705598655512469317126524853110400154664789661911065402458298469730812380012294505506696714499965221378146507740288724227709931092448841081301490207745154026164165361100404747487979067157475352731085744347026018147904700920756953632520850308219879990195213938080166816561750822980235393102384702940718053209897809915257384062370027481306658628854699104606180534573795966070047429135308910981895260688720663987507485266498713743947249619425801592680204856945076860507341997305447665439719838817020239816478223876558608532467558207904589743144918048078447049733278948779703253551588325807016781030132777669778140521335897756210330746526860816710029177378366794150112425161345036022480406783225573683160714993035825977528919544700323577661012001802458873391620097394824183045092744177426641143603368806676818018941901233007103739268188329681201613024451391434448891229899278926845169898989017893299830097609759832089570643062229751978036283676891695559823590777376536452533718728520631239328219340667569473996986018560887657048922908343537895479580876068827232416919498478039226444867087247781492951748578645596126846660395884160475616085714788332325988680914363161376847844557031038360099925933882059265759410605698198983416383920890999494297605163579346455228907492537893886473716435469102793573753259972811620567132001189819045750572025970599636113994572355419775562924442671091161246859676545551589479343104993545519631383209925303851088823421425467073818943093404216571781657752885466932998821500097058578796344784244883450059147119468073835434223328776467959001770887808493582594202599888945275212155422530312554409686539754959154658389590717549873637767175559846325512155585587636665593492335006259434061510187107952475008030522595647482475162523005051103230470490608214557169219132238630567635578060584291315849385162478969385066781786379187167776078802031271592426432975773808117131924708147199087462684929447723881259675947909056281847114024132596085724143968498038867516016839879548789190003491444502652211834110005221874061819951086078791787131197867932741890392459697921037820566952947075468232408576316761824460242907629915864750043793452911134861076137978259374151164959535386202050869042995067959012370628664749346308067196605378842167920175618664606541963326958758701947807636367007370501271065832852211693867566091717657284625189898636945048403050024865631019068513022338812070523394022424658691389327985310051214801107428967986542549766002337524571523254725184189584831767572003990909066971403619774895968860794754720315468716828753774627546500070563898411957174366696181374366867818962451135798250559553147216480664253285390998265077205405172822532619864442600185182467107413354159414723203368869481964205918611173520495626265705946723046954116748638182685971172920963736259548813632863272110075667510660883368227465818036817391840694771252467800157834518962735140397842421389324305064019175499635349976541255458119541183002049394755114110877180450428392071977534008887443636527161646862920763966134140675526313968210292030817231857604198262104723791974497557903426996898157328993962023298141174093323198844775620291805526897774811407060779956638654303039380486117167888905716416331684428935207662237396463650569967439537033600023451177192735518840705778504610322815565097615706939843379934880174394102593985674659069914364357369318721579917527676851670783215572940135186171446517797645458890371581776858923115211790734920723979223586308260355130928551125146052764113117786890332845716567920495845405576476269285951825696474768989324496066586925560276529794920123873183002847232934530167881623257545282608634107888839828205676215491898358154946871532541264702677637449865292355070582430314158053353649432100543097288538232366037084820771560332656376720073066358195294544179084465951272311420711976219437640286449960174251159460215524811011657952067193558360657674411276668185323756396023282058241747566164365484265514472908300947209115876600347812926751945956513819244281239771186917986228854932269011346669666257742645493559695562904553320297008829014779144294927717482955406710183405032219267141347552383027402149191127313401498834874056180955710632535784886845440053394397940973274099704676628057254264064775187855833830748603902742468429013846164948072722648639953547179832025665567831216248091321449915749572456648305235335831223746758271507941576988421407572306615052058210734371626311815954889269773409024265612775393003435031858737996409229874722477495626934498060436186833503926811257210472547713151238434762743661865857141275214050529113859118732384854400279496895168684531225893262001788387596969534771944071305527774737697352118459665599411424230642679883120500070629347311674352120746905583063841980258877182598159920136883535670772527595005848677474419255683089635874019258098113405240413405009586111310504621336221033222048035498969808838094566821717377827287122331884357389947877999797637932245386236771466076306695849232230998128254980435347659390320201587740875557454194031145162636251077647547739676188792087812957192033965154186690605147078573606917050001662696647675123350505604928871376615316875948142805483859035655299592395138518176079879142682152361835156543817174701234222033140901486784326515672785782792642524360576077264319563386271092353032076355362042951939303970425680736193969568902257723826306602353172758221628609472483107457186763735648402176281703925561676008762385256172674481306427474008035575629146153869820817505071754418262052317014480334513660689684521554038679562185977616406070137254704969982071371062649295690088322466191368895655020868800910670006292642649465678843650671878662950066990276976344072754700078174626833187969551127658150422880138207492289099956568995190469412844113242831737371750187406901035813536459428404134604393871411239491620294283051204649164254976795999431542624126651413630526987968826039842777550203149300819371516665978077482986127389569188100281225470935536549339927226098942624603854375874856628165236535687852859610613679087255458167080224706998533876551529528261943070197782109535084391648300711805545517072216163786189767316835694699992249975836767365939313896591515313908130252656552264044858988576347092932474954168907368348193381821791496421046192495262550292722025258023422738217291898033942503900583653173057597591219633827832713207526447021096863815695703985816623512618470765550932867277126219578159370657876646273590431244115757103508131057230604705796329267316077206034588739278611822480265819426902015674962105109693664520492638138183811059769132348997731074809220042738413836025217630211846103034513760838972771378906172755226723417887762563626681082350901223651185492599596719201638650238462641334781861329970758473483215521877888538610737331992398098326788225162415502097172198756621663620080646080593560121705252369560936560989399195759535142363446978478775783816617270512878032141202990171554978381336376786340915359013762551106915252949981023983979101392100475789438669483419276648572602373788974133833514349439347037969249726375373970717785542894599991557249966220012451053946651026176824923900209825059244205852153113068789303788079364013508557348249908785392718978601557213465651842967347340282117706863856406304733356231829870343665958455679826747293502389121563990277959567960814790001040078470811110337408347627771787596278280237677551138410578682776302844093727645453997147125882301164011421983894044221088785185978000365578643698202278856807590639702607115527707466229101654433619277171812665166516504824145747987728439445775056106922031581021016785158750031360674852906178962839485548622610356836886882757686358403852077478939170109898508564343325177029540560571491932583998371475002509207775246499610522441131562364751317322942244261827729059842463305477375793024047657951370414611810964004514076210785270919283125743703423317714330979260899633909563472788508538348879115044264856922608267684119327613135470092808198314841863629372673252863181510334050123956899233238686067234960785589274957383736756758326045793802209626478556554145792253342558021922759065877256365273993359857398856730913705768265140072280928050443695204885121884041366517717436216761515816596341949778303160897630958278437880192955214051606654447079216567685122392529826142216392537296449510487420906121261915306653801836245832588530142125110316749453079111642843554041476834913255120690693211768919034154212826505652257878820043756533942575656513722480992904202976749734468355463515084286082767153316949809272957784035507848389133245201909144988984263542225619061902675564098535503194628701246773730662142880681771398083679713937028315135376366966987876203447857891382563850483076149322953672514905480735055046195016405722229430157590806705733768777527715373590645272787623079856445075962626561529485700616890576642628625575609303861258308844559238700228001012709698938698660580273519214931601802356572052725804455159377438411399493086134955189430316207127484228882942078035789554391903542253969126332823031430175311911804201504396995607140236204156176478359868312675525696029515012149426251105754592182687714184426364249610203954524685713447068802942633606631925876690728160237398883627201165815306495291420691950216546408612913668446900128140196986817784171901786332424432369845575950627818977154127979962839337584447503292829348048326145776005483341351557397781305433603825595787129604020748962516519550722012087395793656429764646030002191790349910209315134899262611229793774733567615314563356491905507853763696954474559351158528072688988276570373895483744390923471524720748536384707037400826632634136361203203902446914734794826469117553419279409535478394667991741644983275483970041496441132979807571048541413257856417391138833004019130841742210911005029282141572014694663668367641598189802182088935656827818240257020415873863760036889673133084048580871019853827226374735312283696187270229053200874387199212506184887851036509704809395970355037283564070336530375487425771853893984806095504500994305772027881383719599289432240290780620417248292806314502715977655490804339810539532404125445132918056198231888682543969585913083396172025280312642637057782247139008196156430613132257920880553043249052667314864234598906534992558004495294348939532617099348319992543582059213038444406688245720207692379188551693795608150683124111760243248808286344995697211429979900061514861905511002960138934240349748280073792250877896486840538244785546987416440463359065770309120005704912209663592522295161150940654954482738181822891960411977222338853067433992295800439332295579960902615658074424288742038222238614666920031495470846048420896644921018857302335296534158790691955115499934084621752016938386772592788825636823502063820012869873987203584745564619740139571858183496273917958321058727288608623419888630264909746259430486049710442209859284596984848743135088762276451734239542194194010787090389124909487368198640053269082680139769927553267189962969541676386839832053402019207665847018879170591552892647796859446776730863437637433385926470654787441488162094993900089249300077959188758084027866510446475714394941363294569689928537955524969717137599577177484304994310700157969898858040172267580030568386212012601939544112299611571180483968189745520677552831517274572025717321988123841530914517805170342377919432145530850500488218824362606354332920557913914372813265150457799673175799861724767373954147838251354721475534884570736336403197455929832405238286960164013718496325998784411310044513063057206088473047258153732199087552119149291482434795042603474701546098866809687180978543740587986081503497184773152808340025269406546179102457196900125712728390823460377451957503036762827749393347700908332008847831498062981899093152251514686683561240705031120231887133381739889988948660601636421435120922207299573043755618448285270661351585293811020845064072374881909613093302964491260935909790661275825346115431225204768598347563365723527783825176071014179160132535487153393029873791031514799020247749699940531505061300639905350466900670252702667873415630890689113848305569847132723535511941733284475539271155934431360556804705552394917642899433103742826866231305968970411395222642788693444177432840606122334008174931161278552720068514556191463075097004667256890270331556872007546333588945237693571760336136203142990286131956730801640479597652980874292001617858607583892658504733073615725774367435116742663358780647440011840665009003924907561876728803137606754837080577037058440214370350999794790364186444868803391614451521488921819381346957875311233052595930262710979466168272423863139047228391481819630050398174062109706205438162509546134783850688114724103785277562371128927840068576968945617642723607831740073712198113621183266182532668351853541255982598139922303348296919513724503324356958586029701481553786330967556565462690257768722723551121834228455911111034498845837810432990603791910762484456910392470147362995031724497229945988292288755415360045053582577280089716709869934012431926269881943798576848811927612471234662674195045680408396640719077084704280363493203600800330412886151484291781229600794186378584074350373003203143093727039545235072309798555524897550255674078394941456400219569688399383495513733161266863548481159594353687232958620867653590724203013870225653972003631752385459052806125528479974989644792020119473353457146647557059491143359866855789127984589595859448282391944535716088835240391760570261211039818456613605857128887190765149667877729145663084768740621188049516581007748183061087770769952632157991830861141142855707250993771519141709653101516092953811497657196809063402800802508453514132978953212201183466423327185696985913804757322526245915374068439461928518154867955484448293303142920853834597312493959311078917317340916598501939616480120923292119879576732465020434430407141158425696754786557441833079429255329684343111858850770246044965772708598930530675738265079701376097953874370759676399902339075483788988549664687140587119115211462153901198280107189835878777204456412216703063499193541451151637303584251068330465942597088583813552023118079483414179341699339810798753365318204689210326188740695159551460820676225566609640992502652525192378553521255916127298594285731382424228807154819854787691509314315690541419022989211026915266626870005770254377760714052634578079712794981958734654417301368665690258518706743394155041157130500889318199724648877672718259112816528129967585991886804027216895483554414327337994334744911894019951114384665491356962470606203483727765609604010199164856256758320169677805143836504795793772201428492614227795474104492169352460923482207866913439734033221918065619969452991899658666829301687194404544081822555848083646052555309011652183300385291208074464709991018982060339201016560092032720996745526620172466690522512527469992837229234807747211042669018587555889263118727044803932266561447741295103333137452517335727405930410608948418561427579945407494791061196164106729683054940548020451688133994746890689797115369947318518743153704459481804293594619533714562416871302846369046152252990345484538315232166300920145621623722674372481852869722488425919135273807773830830085640330224801649175721944612167047339001915874061086547891883172749404383591349971600324642330822962270481384226653587180882825428619589107598165796005750857696674167986793314800520826139487482030885970769719434736854866592967371180635593907782625521496865843016036675902878963213744639272808884135023855373584186930853504631002702143421993952784566402794174818905991455462646023413037403159444395808909002656214410404795259712098442143363557031971371073143521277998310650300741689417520616960612397699939965886271273441906583975852015956229125702105389458839316295015528457125067812774638638152103942824095649346317652533356212302422699732520975752191657475811763036317739185628575340280428909706740458882343202795109088888453665857654915383916613399592522530120507074817831271795344683507974801068150137494710105179266435480637342785915299854204716442449092914255172435974145602882089984156266795388304235450763373042139041904280280672491792704717885843601873008750109416617438649125938385098577442150659920332117328305009060168670753387287458018937170403183893814985559793445524368060675848077296942013468443181643105224921505355881109247792891338669986915872384281040038772357532034298511884367172170760788823436096360153906693168294927044134859029346582565046146632478972673645302752615051620137646385759886957724571953463048736094445664112786275920995153163153616930796364046042332514786300518548147601887174393065129601443631240082259279508824688870027144464891999944747674237087635279094804471477512402453704015564504160132828637807890533096279442979298553203927546702614608934014050053619615755717372752528926800381373125470023021349207819045088900236476795391953414749678810450757970460946180307989808948094025682143234611888777530108142793189376171064033662156816051207813703762170028779500073611621920133124750933494241413542457423227622255400379006102082992891855274053925725627311711800246456568831940001250564529871593606518256495844810799210637171940003486411045079404912141458111707534252892722722950547062035911849101816012231802251528093021778803498564851620916211282222391621801652750690249369980970737344951153985572208505713078515607868818755392940729161437379564162540375473646741427269005569648258535448412867786052700476205140517303971238227347817960258753170325378085362668989682495825529111493878034889790381894225049926275241756832448218154783563155622724378026919202775382153441211389712979240458428829255067796636916079812488911698621622636540623468223185437473782860866305718700006207985965761899552184381412936964737089047266936721254422055524389796949827557765742642335920191891353808673695777702160410380499168475480488541959543665187370366968024525912663739344561251342134023316670007933105547617055634784759880529415759540740963761033459486351755484557415553057406589658419883503986711402434009382088857774475933641689141131613828901426215300113733391660318766100647108202741600410883223191887937440424356577750850356996661902621288688470495361596447544275489422770763599913320915378584841508798630300255134184289713776274592212838414575077441410022392399158219544178389949104326914317357769810402542077230803508762187491542598684857588716644260605238915925311095030899149225492730576101601461195225387338412329840424284612980890656092248636341236342694927313368355909310491932258959766057470930961714963041124360199935621146939060072400599925043311372584119698682578453988535238383861710560973877802017557774026667551640292446239220056857690708586885257615563600186182722031257607066454743032766152063577778382061876967693240912356757826809149677468877747711270976388800632305849039133219758740072819601659351034842668700870177554097302481775101730266475559253048448703075064836434274383616766041588887068100966421953585058006613954099572094455400685304688555807782445776678788969292060376844687053951362774136100212728702139841802678900036177869282812515336373766804549565995019600867748827989513498537125083225044166914867870238670965830248556550624918957359058044076713571260581981906844123249837270585712377321258898778843777827841863970436076322200553831136718235398825640004093458456392813769284356717938883615190854658905240129336492515883890749500521609256327602492233088549694279926123054997534181465255122251859777345525142639309718252031208097320357461222024280539646336813584744635532929667918953223060745472630099509561078556638035065147058001727659770374670299197602591595089962840030099364105764098339806160283440884165807901369242702523528944007648612481106750121829977733840648542744843429088349086017165006479142835967014752383105206616678390715797626826373370952397396263629580858488568149257268018875973153914929431044177890675851863558184815167596373293989634810090066276257278186522750047119378713003019540875487557640099022105760376765526625039518265276504071451645107651575708428763596889579661422041636033688151288807065430988504815216173528425139262085675110604189068100249242507340989383867476616913079227864607852084495290189670021272550252715884741870404913413209738254212343116558756685421279067321723262181282828992161459692847056912333585013974350923937871559795926509215387088296534399078494539158977332407838617409978717322393838608809355012399785989537404806785495179510641261692074359389065700821117521088649015283111794046995397603358730739451319878281608283449511630200058582957577013896201267684459114795702283954261310952020669799931515613749505776329430586199476347796550850426027261719131469195655876256961624598670489554743118206707236357249154496096410884426149614141767727639884587019245147619961443260104605251493961396473232242021107994425551659462536119060979929650162308134976235415339643149839634813953785149556785516932184215483387155584244892104760497050964921192831643239261113415749529317096786600421807487510152210478936036710728650679767150429916729877451756728908515599318336449729758723410525607181294430912848948975193839770729301814194330657668665055998399025878810268109214786446519978654928249994197010882635411315807773593707803881325777863712722629567856452608722883290441096379810255608778590456624120426450296476856305920184165519064655190051231209255742642907510193323300942023376720949181900584225322230887318624764424988697675617081067018340038471768538443656571627069032726585153595305441316858911378615376404425556219799225318306906223230464503085063188750287588981485985608427457217504402476133430428887981546746185942585323785364198803328284232815094883746583827477342870074761982226918474226377613074814019078533161947527468889003234561226479265431693760518289728512580329951669307486578122190696536434654386884520581174318560767149643033497737796733932775514888128202886170139166336274352662910979788196684205812164376546536804904975951110210200965840151866547786759184515037827345873601546280416194465328011994771162927127232160718471198564015246190612538840727415211847758940468521912512872523286228688252435287552267287007667329030699336389117552414100784895739848156065666248487028843629704201921741455089404781005065418281287261163995901861821473104776960673341467448595470910159443213472511389707787137038575078398747437211243622108877776019293862730434448414257180244307798583983281286273652289705857873813766401373745282300483663769042483430707820049869592004704862716393871017790191704442259203391230888355863940552261814759225655757673956968283959438382817226439549329336901718695169129433763328604325986057446929941438609173279497839460150973052729645833031440083109273460262129448865930270618386701569047665869655769613474890178019955610831178850713663016244117543968978006751911845052068256960659445921322844307126072048392236315931317371739807566499506296736242056344753833184903096705151111427914818590611481327855017075389384710856682283279556187663711470217281370318415840706277151098905584662612985080389385684962795096686411967130638155112855652617807828583057062397358341619409218862138304246380261524495829151939125522754221488209313134876871357781948960949506700147777841091861671256231110776137185004702933350697962110339729736367763250608195527831260626076235793730592987741564987931879038378839060366412771242588614354656389400540759565127426212363642020772423001473947770084240281638587201486922962039539932544555953015859601102039738587634413228720677331547811377715550454267288899210114242980393546135910835326440945652985135264031297260368203403621157437268780149045473921152383332624414064026937141891065950744845045862323364002469628991190283189258087202109895761511767052278778569960460273677046470350813214647180781772925307262424127431083750510305254208850098217474325427068125454579596665401287137837993993994740757574307117716163566760006234979141224447143544733316557239959004262122945448751377609088345904658022527932717990206553028840954616968977823934615418327791964504764285251195849111337421057177824852349664237748562247118997147185939863995671733555957278104762512365789124825070215922338337600875198152404200144395038143072576663932178684266893085398546996174436339104277862846630383082703168773823960604574479153322847824777708293462087064605533273645978152940148197079220465886191450700639563144274096101379377118626775966686974529727257645197651458924620677775669751057811853126489028757437901516919165202165284386843521636138478512810793079920514734253252885197146469272194938814315666661277852318776498007409427984053542042151545746064870516745942304398044419832580523602403677987648318680244668813117945235546211069387049646243961788503759985372385939587985289771335181114614361000099218636043796684021827403137031450394917482722398294568358503953949324311782928273666425264520137244385983538706719399779719232264460780258820931972230628770049718285821807978626150026230535444870553936181460138959295678199697130584423539939086581749787271498772281378886079870909889576957481794458472861759857240288911898442887510750504903638702680376308064903126058970247049035737557643853795537298992626692193070796872118359182758494582897956161028970387017163319248423506428220956957023380011306255569843014971623530277271475917336808556345006643431470323697970358447504950487188266737905642376350997341395465231355874339972477741065653102814294544085387326689326185343916841540753960844999276864875491974056642826623494665868689583164049596361649866426218683003212255081847196831361729637034106947487023639063703783347849812523377940082018824908097170962069692079987621845965298171426850688835128952810107892966259602766858168964468803938573000238316097659959926520743046230721164047808902076701923203747993196390841864847170887650627749546836192448165644934006796207180918700987657313472132091062714285491497594643768555803087724130073213372364050746755416092820896600369290541982523367024227681490634648364770197645422159434464921600863111154200057813701783029029687936162504536284758890385765196688699671918554025410876886547518147897954015800070641437371462254590014376214490022411105402549684273235412207891749303230060416431459277287739122775279735458221653161299343612208524432791698851947258493808176069785747563786277979888736436007651682235009558948310430692907200019496066661425749492204986646312321069489948197944899504481771030976553055888428009428462140158808660357804891578335018298237167091171827990753118572554693358906471849364133127621871182309098834151140878727375934381685621010819810868731971330382954209334122183993035698411254337428576676588499075217673574918239346635605968021414123453133774719888985401771161407428027845393278478462414068070704489014635497554523928830740812040734596214981894514827211265382179052494843273650717001164560924106838730994217337613279430702243289213998867645803982879992452562791346970560650306198338979795764215787691299204855108750559397488047257907426864696996604810294798980573185597884232808419477146490831506830581604169581850642085510193984967245468140823233605938874643108335093155435091937792464350253350599305248784713045729311974450124675195312457508658882696467482649666940813918504600197831547986670514909899688986501910759606795094680181767717795500909543080217656407268851234091083653304292680437377959699040176043838731246918729119030750521305160478220544090554171948109289736842293559159914139211838400850051227722297354545862047587511278013303779730559689541697126768351149560506694755670459896027629549027603959665898635232285904604100749689928542550532798473198578582167533981723120695629356205614451899373378747762411709453900048284874327828738166843810897602672814135398460824129186420741731921551773125590036372842012730737239744251068567472231174209216396149221807946331900858996103331209041710374343388846331802789874346042465135091031614132825042910879576139526387479574022881240904850920129194340855618759210587018932048274803182192985259635164568927870874411598161931316800456840800092342263534939612122666752182191963925816596295137294492501232447539957644710261395373092731744910390793576260865437610114283759338849704377154522320340263989244261834037702958717290809061822215509413889072135304156504551417223833704472281181854675031832724881640600583193232846607922898629629860369624629920738472945688015299282276900683943278741129406188197820409138433207248386711958845627914909470633805115397104063688661091786263819974456534240977479815141122984189982323902598945957850220073491389089816078016850089594150663545999443862038341697308688676442756446753406466714188103762603927359632424582763031605715506708217325478293430483969138779769685464273283984883335439963060319189114609138100041242576127387752764961097005698478632091516719443430663474116810706464754230674276180758194313321830827166771744732001842661763778297706232560498184709584124378834271819848208797979202137519364683281491514738476592672742659864391046174473055133112199806013798695849327834244831354692722234311779806334186462829829000848240597531718673127721099029487612609583607006557842648798361627513647084342687600479323650623614419732721668175270124469002741268609151994195822473644766582141963442383521165077128700245464472132256329917317064972117717082239862814110068543617380826032039165562789902833077704159790579909613746346947508993766552734366424518549749281454332279216134351733843992522833345994132046157388637003476443416055280481540944035231336934053764092994716111239375819118353654649910471881856805930766327760343336915436897054867743541879666305601450068085585161426584626937119945887031017336354437740312074736857333987837273889868972640266745287408689201584925682868910699632207819197605061948048605409876637120403557332362684873389011300445373108911040949048137062382137819878270949514675834639186079907351350300740673603883662157887784425266719023211862361950578016548540663837204456221033753585961621184805136592897074028404262746567524333574269678313315757335917474988679951613550729407464701839849165023044941192031692309611261393119889581022289299820314759936261536267668417272227952534316524782949685331999646782910778133503740979951495188533095056436270633974004766355096309315711758619291040355335782640952267411654705602863321910065620145658746515933102925852352924117484753926456929084624538995216959064831312563791730079093133615932641718930631989038256040741617880826145460762602210286981785827742660607792338054606318381930913240269986730983597560213648965833557090199631735403284063947731115538785172007263584050020449875086762269915174328375895387819411136885602391989208139698838885819242242526734333559761631915417418902339737927367621862933136650878808678831911244755243190574802983520450776481307864646620726873739555799864578415251292718578335568130476512624539963334804056971067908784583508355783260509548953265689849455014995606633932100087650104333164086641179970858220353414913423594834515256299214014271640340379092830338545063508505436052391105140952388812593840158031015405092683999317804069299750774310989433883274505226124837238771641617632381931561171595799896879485446015882765870477546451879478625628433045533696760145216231337355755843387068433645586641064405161265116633501609001761929363627707850380214515716861797122006515559886892083228541220318153616823801515836124038303035557836523363375165487909614061007616559449817601086724960378222653765982100772174017431807434932333449448163787891289797248046697223978508008235269483256931342213315669158134914601766265129090196237040267812240948660405310996882584947315378841325151476948174194354577049921120287665751507096287455677075562584093894618194438634656122381464442804589696203166419635867342905921725045792035657499440460566438140005147967249714727087735160556411874573656910579113216408460469379607574840452545612274727111533516325708586660771147506705889405425313273978337682549935315583132072590468966852184765042725056638451451304153371900314019066250384485661947575794120733218238730791379156412975543995712560730561411834230179796451535716818713742161909208877329696020876790019862461185309841225811769010571246744314503658225434322238636740242549721013925567851332416446367020708846468219739698370620434312972222820732859849073581181133036055127267662181978386933329405315997292120785989342884116980817159153417616518345345850252963389459261592653400581910437232264352263393792895718048747267006887102833025155400207469936529013976896511797855044394542699070919816730411433182366677580012311169462384610136398824468891661272430606049429925082094266697303893602788982619109595828445582656920376763515582965480086412894976210729687335082866589388129839452789873184559884908338595361948728755740644112004576320205848697304419293113012849583824400096758237317307934227055386719616511000743229475771477455845213775514594995248480238721527384972683730429795386026389756559560648698226510537220974912621679776588033496696369052813043295867629070675702933339317349449824020475595534419567799940127621852798842936425757986935040156743903995394727810246268921461685294029866302420037050905885982702128830005225579966258064685711390460928219217890671352674808650534743796329416328341566096014651254718233408895361523706134186097583199821363969458273351559354684866663251510770000184066019431528677799198183282908939644323063212073170319744970670347388626993049852220293166795696646682861989223899464722322763600325456308021263079847257438042552161248517190817397965837127238090003721042400341136346753957143703721235834717460287402761209269324534758993418018366962600161045821969073873583883856189441313515577247977501156706398973991145058637633081088552262833040504284570051903914447059331617783794426802291349564874872695404631724141071217849451696935033234557449769828850953961727816156744647825618878159455975188488573618337904993155879519353446629449696953431974140941164315785916487321712054151717539843384638521639332583074732088318372092307281129860275761529437444241531195783604155376090854034205253621925439473576668102838566522549496560677679333064446956250464319938397705001961325923339896569692715829113058532465124170361744323214992599512575918196505144934101265684723338360984053911987610012392658498308699130703616071182336280631270192541635415168758925805783835361873107899315499441552068826701984273669683383476417450007253880079935447487692752774420176048081322336166043456763464872598909121498106860401859483736430111435487392416322401818473289277431653510684268986790300830616194733272872801987094324008351407314915549707711409838600373254162015900177229744651834402264996968021849699344148486437775709254076321067394333063102888728487089340917725055932493032292127887853266198565429683100209426623166347788647157773949707696429490705137555623682034928287442301711302262729012479001109884580897691723558300348120195703044258938722242391264381361364938106659361141839276564383971437732034078819152066699322396343871087871413312044668375720876965830392937330801829289807671090604584590580117768965921304473365346166580376425743789370076099816101035362917903949513479647588981918347911112153460980407690026402764106974360299319889751085098345464903091747787282391062763218378560730402688338620708216994795425298342082935218416942125654554223398792588393831049860024271184492146272141032228737549460468317969747626520875456590736846715443848707702939756190522574066994237877597726744765605858183233010990036849382796646768400643140354524494046917371002868244814173203026320369353349861120591330435546618063463548581580191734091052819530518288471776511560971565167186752944028635273217622551250443790190982072973605367153453757412499318249009924745310456084478382938548623932477874514784019131236615713060747402483781618690418500814891086716140671848119295525970879842809715765804542223348327076803272325954602921957245744317080456846558350895440106951736458332153901779977756819949108027103222068981353324907037193124448642376699506043615021017793519124217214886050653829498598394753587463714669080036400177330787786113408862075506085739991216466257076881544908363159575567244498020313594052354349659076739409001098987147055665157856885753160998919016803304808255792564675632986148276118384353262184310498694484436757355809134093663057003125663662782626877530202525868597885322302611544637076396805208048720526459205691272306205212924836651161942385924360172736578791082394341889813803443472923999946345004438630386246814813713983355573036110407839169723973329761982029028119270653766202610740261449913450887465026187968736546258973235559432145847218224759948972851049156279253396910255311577839588386728870835676645132330361633950936512545035113589476283325542156941699267976656044874004065716008351000290776909918260147599910507394983135630451697985543130785128382868651868310226354838632638205495343706661400957369979080352549467863766877044508424561157481582837747046176869529646743008514979133867793015224835451442832948603254457921754392445237393035551220891725356145020140672148627383290113519157520948903138610245244043230246469262268857320565836945136627229912395551745156458130375016644171208283084835659716571192247777531986080494024386122734609480767202117506508207358878371111630968918057324253794026461080417612542424487757262930819822727293633575592096924339902603096932578031247294710130867828229890286701482665015829180682929334173293888659823939245968425989330970065075473879492193866965492114514817776994084037751540734408454245074949673012273340167117652402734483396550658166183402881140393369335116770140956096024496612338918599332293920994043265706033343631653408472317238660944561579230171389830075251457356497043783566741837999818041414486873048880912450122932621154266596354050425499280760877752176094788059580456505956663979979804629150291140378054203916545365584474141794938328886333560404514170520357301341964992329611688658810969357359172440438779168582489302471833638387463625037612140242781435385004723090422465342237963495174506278171135808991534083524395496931997860361026563224469738118365148758069120920190020452974200494979575868433065731969035737370019162808454850859796804355772521406952766518977244900590664399492184863259669350392439234213185160123472224507537752110978082185316235540180680589813057668895322581848985625877473216373864144523011156894071097175055737828502200107503901941586889958558700411172035047834648496196779288965957570272165635808140237075779633119753584399996593363346933148509990063817948657618061272685081094054681159409740659477349504704963552248438823338662209168232766669433680327199788560707030959982316287812507302028849381506428340473218976932039913478327737693158279528337501027722663227759312583438380509146247095827894740597720379910499327894283372881316482661770561879557141106101048701478713722322044032037983998982234608136760189596804720538086984590841967759215161014298583096659687850120413681071067309656225530888958998987364385830237780433986247283592944374148277543460682509966535080649685163437666509887597626279471214087132940382400839907839319272622827506865614834646237412034063192621763670555275513295697462723262659330763017406283838800112301607499231882985318285239711612776004021235256340675681613268815370301038200133775634803919878231732271524730348030824054362531045511277759236139781513241624019359298189333842314331261949514631745270690341781285863744508680866738817441924993100352208959600254282404587455288116240429644548414448818305911116884868150322259495312834944075292402881704559133094055317798367258676140932794411114067593878523402696164042846492109872408303705296783351154125618638617372739386295012060898009997643816794233385974282939232410366849512799770952415933499480125727513856164746066443263557444730942143931578753780833627468439567177690738416695099198423437719236687961738901818893772388994514539095463899378446452598397122187329132288780949843343186392822432481190493080162116096869782978997905593208242457177039244550498848773136610049882312220131916228192329511514180793652487432323567947237057248670902139262305509063026346795279171708015378517360578985842784799302831729405276575034420720373629835835780956988452073040629329341273165523473507943648465756998816737232345949709350984705381868585730108814547112213630603679081113027126930005175625285959708433293814617083125774042180909202993684794762937586500941956294486489389206237991200897220927292163325417436489521010239865795848612805537345870030587851185455458334155315801149031391801003979768179461919807903978876566003773715579271090584311914441058113958502906208907059711894569821344916251073628107403267278570647060078871958070815504957439130230730745675687505123081658817539714503518649503909948367336785582289414575755713388516762543128926881916331515159365026549574187936617566527275513705527105475931656697134344464170660061819624326681577707878723417141828206402609698194261933588493515931531022547097336326329378289602453013511154413343946858657031778899838881990712103966290286437554352347774273242203466006336941783551746411514162450791774419017873465286663815758958373902991379921183600047249327796986903754800387572803465426350224238530550706178368736762876549278994243362387920064136906713628877275140673084177345124480646807896975306265423778358398073743989518613411564025104463482891735895589264299371290582531187082979062289577498981329355001266678960465911340443034004462380611766171045946442986183765220543852139845277530036631882647344197539113164511001329322537213906790500099452852598937523884498512077237763315681075855991784338235052170972158256620042124173789114224323418791468908861867000293798554026085504875113264945682943478044678724813905762931196967468960797721049166303731135562885900947065850960488171927228426790864245435226141265881454876574807241082471046783952056244891934234135634539521928303627198878664292961783416513376181581235197958559794788013637862622496731985797925222413161158974964405352162151490187287476645541784632778814269745858651741888828253159445489126533212558122789372140183460068482265423452646213348674702881151338932636004309932562543156274389449415281257766081012119355991204449312472183080653920658964792974773261654502857790039713390170408804518543235252505868499963108593720243750068587993487865726141601259262783446124967301772476493625976047875540261124277247385364446865390572019725387818066299322796463911187486959311772879924069269870810382153507792171933389641207190443546155998771704690319347103198903354759162228434001109289344373522567688426522251738376921667494513925640243881309872620081505560350450367825895113197054061002671614963202207758983074057841028424007272930552670627724263450827779176534680206763938759239804367150596315084861314879537874394865666897277816359557809970122123086008320342801556471977362970655156146595084699463003216564141874813706038500657203657068141784718789031832454651040199342519963018027827108626913271804124588956777732535659928614436030358827427762715257072971632433890641469859784355342024446273104170878850427585997069945984498304303121294888924634058467767095356838844768131976714083523430762270750611534883456497616958537581066228147209041805028286654706099236569003501804846564552561922431890743283810904863490721488434555883789098631418704123693389605738090685049520876155287016888615199708900665968458220355262893279057535311653609457442770864081213441861942164813745580849790462221060775176695093755933177424955270185010729435730117539551401316309125914158934600379119032841918847323991386852528570670801423397035465583324529984033407185904701392116317900907030230856232240438261114819657615679434256564125243826867372356871585873444109458586507546121751029514899470470995703738007028367167418480859155613351994369065331976543119874244416878081639324309220476985792276226218911371081144667873303809750048957416288932578880170609018257934914228009157182257942035902326374482289672422863872950245900014160441316888176082868368626805472228488749497807442159253279383864624821130157935885500947164166461001933971742337459585738770816558103703467062937514613772582396921872074129515964392272370731864148228309984467775936088398537699553430815893718157546324875108350266743212471696412677765613737377406794074093380317578885930442914694465208429550555679555244433970145822969805918295435273219415543867200569329363853327507918522592887589060972635621492225163197705119291412501986530847277757199563153266590105448770886182154007559752176846815239575944830843400703740386731414319096191834636483962616237788792689557206201935478790758026674199238498929408482905064853671379996459789930880657943810190215687206671512968208461437030355425842405610992826136603045454111999452887718466574556664781854893891594132579381401546803606516252178844376937613851874426424363586131154519414640833772725759210396880190029861309125712597131595126733103442143698460615090022007670389727408712048417161162345528716416178339994455737401746191242282080155290146436008683370283683513449592994534208898128052540432543361280424857353456190675568776087042606534415307346253127174730156730700503144745404161042474037801735724860848080367129395911167397392432917059457381209743939592658441623298612268222350169522544399357794063719817979202063737938664810138545146951454180980473033739031591894208007869609098259202647588530171179315251439692011951932429732193207075421009859165303620973570422054367856554481360439018444906915183332490565821505368593738922441504094819819916589093891278535668384071100644214293805845262207417605702084029176123717128514480638362144846816150761772369249230001050094871416856223306127071909576234665461827475208796910609770475361894263394549202023852105716202904258690104766770232546965884072851675536048337110040925867654852641339917091522029205505722598128143965124521936109135786183457977738485508899616308501976234737986325368815407818797254686058730615083850965232060663005552073216666449785180315229969435194889667840143569652396401118405551217366149476152814985573961327516215879806028291885213326897435021845133186129374952825977273684483747038045287777721855839992941028066955982033572339806721974390310752930474208064996895582042252079510264004926223653153096538952769772716738542265539544666575243615394693475140474117509063430888130327977596780610837047323524454524291033536748252163346464950897392256401014993883372207932054057953099082142999321671593022165837162063947872460849205453716291118883128013876988972221991506712773637578796854536176898522439851263613036492178073277831909164756884057840810352519251828243005246704831843875907351060947208301315927867398058154366984065580970808843835386185103157333537205576567865148981123795400167395756178235737676537837560145432511952196497144360992895180281083338444443642119841071103359704931477630922698035884540059473595804281746717527809471669268391155541531650640365379210275565638954030967735606107074377112476203692946683037822488160932054374631610151064203092882553376269162095558882239888506605634560319480511323752061185942074424750272050774469553525852889289181895781780426623995843043012855710963646632711277152135337245378041233766914661375810783971948461842831858103046234869323634701508776402404491169365675654280349155148345848337716435473059631013651335053282564498204230475681473174731857777959444164841802594152851129215109463349987211533070860356210956995798256414391116002551431741953733076184026194094620917998943080318036020032397154432153346749529987327987361541006612021289051403163222978246637226358103947611204326561195049235004085913957965639916243396837417431370665079937810945560410326003017445045785216092844032344006573043545701143659477830678230572783620737359061493230506512500270011218913352822952559801580636288692977222797370279704540799528224896995212795230096203209500726104236602056115965758070807064462822509848881402866307940749975615013480478447695444262430191842008812551355695240370521348046901452448189903059636225033454563032223013469223799481156320640343182834813871035973040567459559743591179224643631973931655874935692726703184975466631517696267762210529049440816169512323325848596403419352082094193752324433432035039662745554137385738194729154213920558063994805185199700672845624500185040612756657378230710618027011888302314820676496873971143488537474076729359803121002210501727587290818918087352475121194352311430338750991911728028264308426105483298933251966983862184349044779745934812005426963653728644266273907362877079283593952517422615650555253154493974476096101015866921952638425156217867976603082382677280391555310900657327856519645933964485991591654087440722786353344547195304083837891299335224443607010918274272492326316617418014952172483203628258203955273686267471387995165345944016992580540566654118343505070423295558092755659264393847680146244114707022562081470778339801484069054123634907803060614790153301028386579554753522413182588462814143232935690557402554668961934245273633667026589734799011499135109674049354355580821580733925658515796082927537404785643746015233855128739088527198966391279239542875163754604654753667099343231992576289402431108936845633077983525252227111139118992116397255230905784431819545000291330933799242557323887873471030986543198829804520070441886397395617616884578437693475549403658727911286170472791673429398815691339727493491868254064064392721700752190889577728573133114358025797499939266692607716182618082013771064122452511801508012103132985157935810267211629296339243500780966463736225912204290397276427689646655414162291367229715394598923586079121769740470998273725885419600010487330873872599178327578569941649441756191817902400437105529813625507318539260112374044900184946387318731382867034910342302032917962150063679731292364955097474117947530235445024132981872825839336333440692957291531551822683895284419507455636427612706548304392672983204298668352471743862781274670717720120680433054748977844034139790902397697643011676433723262146095735655185492145380826649607945725909298693040934799426839436533199493492270312344713106074759576563200899158058964827287023328071616621378035667742019663870737823227668744791692758117704376322082994728694253342141023263910489388903179156334416982623409783264427011156556518196428951893561091088261227878863678966014812035617134241107975159901031423425941132836521662190967764049781012634907070023068453250528772750197626993478012987677377189973907762542648083048548382133084349644495846333046728184487475693890295630394112665004586958470170399693142889633240696887289290080913796361114172717732093200811635863591283190278646693418347577432030521458924944819479537470445719197215250338067369146242996428267095026215646781637782664902818639686662652372414952329990733100218914376991444738065247464479029624228769586020860480931031046113920737993137750488224460219073978680872928170805868243128460120405984684168672813292583975853462991703959139808828093064569666808484174745934505472057638341410717460468884766276655865781006883224211779739633948858505184869214412348266101763613883643871872468669512670245023161981683732918688124588182681511487436798253182354810287303584269716538103217637417001433324840310094671005980085009484488105780587843001002007072108156571099995713915688144802022370241404489780326618963779828551734905489840365186307276887435244689276769323187784609907471773141955164015686436342579641507670679091961493977329765573441613584478506758436946650440027845962228248647563813369233972258347099952647213288856588095175368064299880347758683345070485008163345209914512327725736460388169621322057950991478611874632644069470826189330461351583412233193277570908565892301005715486121222634280766527786251332964010273752798223851218302336823923837045544978073652777948884554002518150641131704275429292643336679622702949866319808075664904975508993184912161446345506437946386111151807082772656011200326042376518178433520370592563177871374632109957123018178399524111657307265990989028585780818843549564670694359848145975689613265652309354903189311354311813333609470225068752959392846418979226041202974156993543555412098346786131589274573301552630988221263167111247145594786231223420006387540602677877403024313650040196986197774436242077439924308354286910981885776588561987638137872381747842031138076506017964465689263305280181313877843542889194791972960009596053965759975905945858520506543358737374958385785438931239140712344752138405213229344922476986270594742243214608295573911594559227276845059221995959325785078923355379014852688329780250159331651473275512387963143093188415910048132277503477957991276836832351793049535263086400718958867302999503940857755091611351771395664524874045311388972245909708012261987797643068621948645768177668484605462427349387857741734219237277474039318935146320524303134918406640461421516942212496003590910246582489956967890124645538742770488959346710155902542502122856803875910122269945990834277300558882515127927363265219305155968543697184476552864427639940953089699485274687862008882557148115328177432962217037530469487779817695882119036131241057527832735936936352873648218421571282089382422255152042845622699985973637719837093352997124067715574991829819173038586657928652082847004455107154856553857748569254105542460825451982415259998596744611938232844890949279280593518655052226030592719442017020585377549387412496197598351609000110691965698865361441814927443708755243262673584786503215129375463407071771493218124095471027009369424450947136202697432621889361636568837578443713253248810196478160905994128113894206292353344211424612814094978250599974001427502029596156255839421598164162671188399030863195190513134119465302228884433507883380174319947658651040504556572235935165455105407996396164615807843747345273861345530302769631628654412300691721064401514525750988410157075050170620039255643516333404189316236446609210502603209135424804899627713645590266590916470201422429699944432875739361740357430968540902702473091514514417030962330555430945753781195398268179471266800551221952175217248062498230578641321357414513285618214045426196912069112377589455749632610008867831545903656035320524732492160597811183015509750753008346649445443405828119313167633393620504071873160070350427851210369020248386820744385650833529854131575648656555333752156981922905295059094900542963373777680851794727310417944259181872333062620477613979972310743990816004546311780219523359092877136070051833196087495368591043212698220925380662571979410368284423231985645220385358592344494385923664267303200395302077838885191994988390872820246535926823545195552226333709169814992315398813908632883014811918861123043931946214330695657565138085394377386673562443117799850180457793023716059615521751876900142828345385042771341358289477739747515177368870598985180083069804892919996449095565758562434709643003947543729741265361058970925494736401452470585346995949791569474753481300985486080605466660662024674447738067097123433572520573027731395219970091560777734870902473601840088271387250556001998556661836248267579328960819333061627971182685569107435674492180963925910780577460408966666050755221513448282597420335010283903602371205239113222220213027793350929890360114082176231192986856574743665612431421060118334766770817186710633637009152414572308733117860064819139687422164763674516863947315538622737504385472416780296103330529003005973136871057261151714084147179877844138468575604731238861352184661642553013197442666753617341507825125517018299412215409123323222476227039670858491348447246072025269365621086322182195048638459974469196143234692658687451386411057104889218476830567273041577786091551764312333060255834693112952123146290389237311783660808884588796392117254871373031367683033343702068239830301878244301805624132567417540549371415927440035279805363395117043346059977023319200991112112018538764114751937841305686935134252263662262975648333179167412832785269428058772358737303914756278415542444176348129372206093644717806387379575215816363784776523182588063819709432576135787981043240771128967088703437820114215152319142886792147823405203639305598777936728796909803650039293103039169207357659571705846221782933427356176775282694289863676252363357233213891633755055900029514078961380088895681898187707102202346423284921531142891468792725206961652739095404637770732567791680608815678669038139366490388264619295319174749802724251314097906278232532269643836422794196866488848078069833540574239349265847212209427572865507464509242943479596243061189771022414078299929852935473940014398120818996640714670264584945441709588623654198267312151133030294106004985754239686556556162871953508622093945155681009694274420346621106428970896675417137568805082981360394063298966297885751664338564278613845424254396688284949116013286682702399089784233491558021397188996448331742297597491940315165540979361501531378323730222661400834018791495225892765542536715166170557725586307056389963540142037712158173616729924191652403129564244909789092513903934746627907540503407848491968218125947705341152355770806198492052446460657443878196427851701033343738128497582707677479094917422631859107057206503427880576577370127340632449584388888390652460506784520089360433652386381313718930060979041302287690371258750234339113876241395062316120397888200334355896903716367935672717523961363286727448736826365784996090875748678862056524409648876378353535989822442990684710683171864364577868662250964525696412102040089148330358947413289970982900859051764210520889495585359665105341080510042148616765984358079751527015875219573838027449665010625024892960342432049642555876221473810001484845319611921460519427204073892460358459843842974048697618089243521873562190851755152344411244760632535391415549443178032787427614413350617138766498927852316454510956429846053268493602436025307982293605083272037090367906087587630004737496918348514876106314650984395424828348248757374046444980433217962697526672022217561151640929134649380756894715209702137132871275755120764316412488174635216573629120853117365496644704584212861652293866558561463548496503832281381323096352035262447356841210444859821251770806235946073681970129006780177455356979960484686334744249507509518446376760702319097919561313274881156046859487559288882707699637251413532465039861470899140111131608159593745533565508593259073752507326832592972531591028273513571005932560477604253295282594904188250497783601602622572703209736196606895721595833163666618465912034096244586036308907158926325552734791922464059296381455368607971741299363848047699055505315880310441216132238150749842645850605629996504974866473519093473698015350188519296427542418233360829419588344679973146490136454584114597094995813300938657969735885296889277202231587428832760163312037935664968173794929824138769915765266526160467314380973592914969008905897183621601253096127294216229577363774445229735793573920778680303097370050818589977628466829174078193851512370263174504533674135604663708499605542634852624727871912032007567161820587085619881353079699318005342065711057956716018739375591690703060051314245590659346396065106750970176643299927099279464556761946724331651248662095413265121047331277284255534351558548088180392074615264504083640666904219247807779963236655968656050756322064839848927631284984643926267845269319667586741055960067293892689179803695120173164173453379442487088171305375260147011515953587098738648625089187171797819288019343381565864697569151289418327180295655886154298127222337875440841336588910368208538847417562687157308713362727888423889962557607312839885999085208060344163570474331149360312734945262844699349040124185498744874770959585031189652788832714379295172399103369217062621348832537335999236124348758409497974087837833986059994259352221039447203544182267727520805375319125192680951541504207636608923586743620643345912204743072713217501401674137497738965246799041252475281162037033441105244579751815290080301262741531358314402932511346019510550053416929458597786548113098879316963741427579438255411550058623723952030175484489401217851340274802294288405138327461909487550190417853262466891325373313759167032578726627154660025567127613614951194833765355541391008405405353898531693629181960203309444986485477882081881835550770705863571777846884083834065605392365951558660414958716207403013083353229723936298358485597160973255047453644875784152696848466689614222564591889945678833261756004138256287873561653966079844099721133715359750530223045339582776489643616016641407462732173742703185529966652387966441306279032137867568158647377374359084987829303224555766483171077323304407298001108836774009317426276769449138488750135095467737268669691062038716452387935240049220024945780272877817756675158112284897025969237775294712459582022792209784433968391057123414106888689324809769838657207109345414161648792098884497279996490881471102442420114920573516689704435242456569016530546918401209843672729410110335380799977066755836259258539047572495737201512878258152388363083381654993537110323701635201617045331699909737438611955277188133543512717687347113894486009804792716387969479077530675012436039623235330179298060326557496529984131611599054092009249398055818932567425349440706707000009290096017867730365183762847783297953802567110428508817011974869112092495864559193601598168276761466003687311096640101881153597339364374517776828418491914959126439813276156152323138267390186055232738676098494916104996558876328324305724998557327818816523469118536047736981354029478050532817151608809103566599175248284170491116482789651482187771653779908727513579038335099172855542302778647912923164585191578925100090251895050677111491781719768135778289782708033905736206897731420077766916712941553864227696129927237840369220776652628931677080881185582641506033502000844659303482421369281496670028491119397216406928936860085556705857340649799551283107460514449805811968733865259197443007713870909070999624961765461180897877173440621681883740479250943372376259291804293546587101253241375978638658120180353744151493126618763705075357418224281784804697725338010207819637222582869341786779673544485081292427262241807410031040777858202633726438324691400616762599830358183607924547596047036233963176383262786231672541690626591116935149799024564075854456483657303237874341157169101260545173238998400129509637552514633119814067937239401195310085058607483810112091350165718627570459060213618128798726705673941147519007329350261586281858233280748737734217513372513117933424905976121276845498435158503140754898878534665297389926261112576527352942467583144937679161769177739563027470499477209177125896085285394803920173755659231542037953503723243706800842900784141004250816830759372907809473175527280947271872266433124869972813609036971874630034989956004510813113232592407015761083399223795114736853741119946150659575219366230419984367724183413806671540695397870689283752352226308689448477694188891035186928095471610701147884920055542031891639220865132305267279570504042743309860957613086210424328950624765799236404727395674037534864624340307371683046218806844729354480116659717528202979439265246493506231627244488292285193787399431336716278642551041794348039185711205182700746984613824550260318660886941555921457035192706567716434072052834193755317371072829662195093643450410766737872857886181931412091751825352215789995777960602521326762265597178540125029437186938535969969035279755582070188625803923558520640738090580472123827099797558625964573388333601233058257127816040751062825438646659415950114699705015803892362310541907987384652992748163224534287742883192644089135186792688918007767063091114888266938201120714748441112821212890389995684609180492139298745869721480031609352065565849744653792524681179154725194427392420214283212816853049528524947151562947469584262600005628819847516511484269125153851944300530485721552210261505769854841689711319534673356823363439430321455207528213494395270492320733853152732765265475496375253347014146053135584791570906272944032774893231678015545122098529667483183946896549983187560358277916867474121093169978494805556439872441452259193988168094326828550773682938151836885246824995061426988148332664999959412026494766704753856114343383795408470692231955531876076017560694926518359195006245203603129310509442414563910804222391536594339576929854503161993688452851650732876116750947990130993944752254393065244794307046508215304922610776117885301245859925025378555662249083874137407955401007094354093974941078555993725696248091312251178439799161937586304792450704634073341580909572079817918943397438331377374828360903293453063706282693112615589242092803463294020388816111310038547580010726062501143855952872333465376082268671487568344098323544882119831164789654373835169231358746071607225770415277400224221027512486652055525333719503817976209887640811770793753396559424366627889630426583218778086520274226642086415814237520801598296786978915623192075682315736489721357694726679841615351677295150368717128027560048633202671937285041542692869732997248147916368108396069451827404429847467199696834687686285613268362196159284175133988639631250873330282881665438505547389078572861455732251740146951020961570942014104858055762015982915522490082567684641412841107654602567154744498730906183826654653616214928324500163244547519114536186532577449958532893926760905531328002977683708645282548701065308729401861010836891297407925974505002833542828010901537678178567284611319131251446377323913960288056677206554743839505443942599836069420447507785299829561292621659566102616031931014127125863899983477093893782310869717819045140957827307506818750868299749547777929170890465479894830127656425618357653006436366216959456045420845201911272270756094810627301132075420417648972526157282148577527476252435564977722884238565041827290582593853937895302824260105599769594434435985330907280686653809847422127125743753924577681781376251808884602266795351552504673509204821183318381737946615435055140063107301870961144408343278612372182150735394668851012425754811388488328827608291722780423889723850923119014626985328487624607330142662969851959013543059370859729294400153322992829205377209102153733878816461708270389143812563974610935488484553017236041243485044176474630308762491583261805852121142763005080470018155005856272853892449190557928904902502069933028153432433485972870388828998455101857295780881438904628041585866289509101446272548297822108651502801184671965191506300443762374615933721799064337348358125129123219506719905361301943758685053570831844879843718525214266666597795537863944981122257450537530775050660905217700353575101181704067411176923569274449258129596936932597424844202568629069327188260663329343011168335404081350562375887553257842153671076498220821301662632924298017510162290725789154247335418767007116875010503865877513372156014816853242758372200508943522892641819404394543339522118170586805443521989094857593191030577818146989485135000437023619355278721900722225996612597145393625306526947135196682772089700700642914528212423194059554900695344334998999864313629416818917030681218529798067249103028688277911707686231727515759226400888342560736732679066088757924220841181103698753523736590694943579624124909956016087919170788522355456527446666635440685355432995431092515093298301464566986188366523801111330480079836299401845147308496015024321125111161510417451833840215535757199220845309804095304930109771454530374263108866838020903223086312823837666106586651801546567266784795708801426957743357649317650969187435918537876408112833746910909546060738927247476182571678495763159077770357522292875808048041236750312888911841089714088851886848444251527221430142747983339655177524547437346933464468598113560450338166582138456606878723990947624600852519204747420367156137117484632818001210519500057185608728861965007434678337299424007238053515748045960958747953462352799014320969738174315881958739901374766580315521764627673477375242592003915584961369468078568112292197450377075000687015505597037733057301264474584294069136934752102414821938486953253530157792810708115879223346349678791698181634963152492150997459144533751833319780151340721509634114489738115037223535554725770010898186696674280751051540362957224779945646036608024264241865588363427995530437337144590082322906085214303331782220930698054968074807794948880468882006890567140415729154393740288017176808862954013050994819734150427568514624746675647269025341698948182153372081515820314990513291214089550170502672340993281529925674484895022229479639268460440688385821253799810126503042854856890700987131177603189250565914212449103040852229238120533084774723564487995852355355448242879347010013885103485684080152624927230528257113146989789956873714696457403403177989672005571305078747424474621571324169275986880531654060730255146203606059198813955646957464902850341695795359877429680416408854802977075332637902896340473158707770481490085965650336460372303604130114209410719275246734366964631728222475564476599788524350867105946730780577414168734565270342356186603945233264381427961467059297009591092468708977390879448423891230462999077750509755559783769679765213878996597619738041097653541105475667420701976713016734132119136276075487950012742539138898068057860448817412729970289438022985627098810647499585211907811413858225356821454458719406127605739651637093171399021633695302113486519772864230704251248167643943518833300714641958623747907237283203874290982302849045537103867125478962378430242472447636304223418396516203799783665014931608115408069447858168613031311825575576709464221753526035167089516435556527660942915341647168856642023392106603818097472630494533130639358082301151121547763342507459316637495083977311969554746777356164073669106738338269105244853199174486419413714068747837352878868787146745607792572515968478939694713174871083142117053843587382706481951167051356985007077285771044227368657295009361292839227192798643814097006911335011276844144223279352092570310201113425337971567032906421053857935762325653620559733640643444413375349389473282956993342293206965765470400599163095534533242559509197072769417779274519174502855116772776646813220887989327087687430356229967453139454779951277017592816484557229050475419712331530693210665322072129160212458439612193357324315741099463376594198530972954292411066326013292451237096137169239510349247439867419881493985319031128798981686475859372828548985631126049905708580891955802797407072503984005389632793127886727166745961636852920403594269649636228553644596107237079752592188549271301786341734612864967492215038372313015226968775444533427000453368442897643479956936692240819572020979783459356717659730338180889462715060115626733477162583050396822239638946321965492109914771225461492558043807008962062557534159031197651808419239789617306763790468318157563820476826090157552653980804655861967613255224354201652601462225373414782595929578552914802502238081220877739227301516121335849513342416117083348612549246584333914890139299868410467756291697381396635477559963628217202769701800028261936889298785002775751804379811222447140869702274464147803548250225082596825967723198709479802148816614741035095340621273660757721046520737573848921213056931855253851100321790654508681273566118588014925327108606056337648034558159598889742154371331136689207190827413864597841663879498523403405876474368943982695896775540436619280530443004920611129838252649394775761920120754139873568552638278683369764716228567781343185515452749326634715096635208422470445453743717297156537065878397111717799447525024747342464646516996815071011551168130226802310826961277316388188317465393170297512503847920546183101153930692661257590999949117318363789520524463397789786750653117330397209345540053907344624900621300614360828158970108861330897099397565382503246116662990742252618538623157008226513095110231782225968922503429567301481464527680316324176503191667946643766743634659915678068755871543859470232647005955645992965474640774483889632744902445714785491948595060020525861790753731992490267140970701777933288257565439013661752837153686427181767892293788426038435838385820534996424191760803096189525094574111201920408170831538892004235292401223354472361297440544822544821958930603989096422852405800906104028933579575669863309693692888361824123678622927489015755116849408923549502920911497423480172093599157812045460220722110156977512658493559722289960038911843691803247739366896462817081361168900632553518837104956978843206742248850160795348339499826194674790371526152809292945324434414817061223362283608839067000238654873858918908539922616724185275397508604410208549503753014347617341055290983285801524412324486656197164732887446682052387281377281696867101336590651443297699790423227327439557189989682959679366351189348431046268741550211107336940535383255480290996692432916130805435566814484710159292371830756436368304478135558585887492720917398983929348919330822916515285163749961551900223726661725345504435194992346215009027021451041759864337181176738213957111298693279043522208418422504271186236579809396963834241771898027849834917305951164756055662324498939599968729087767242783590371118864052204772494844800971316714339035560354020020587566585521907862833294327761886308916315582573953518398267391052097693982801540179352692837400633566132363350125443318061708480258649937407014199104907704798938024431595215516538356399328094436807928078237309635881438888382610836597682081135271170554846578134955161325954159078921179702047331269498791550956998081535072119166948426737967846518320990636238399474724030104812722352041615659024425288193460201155194877666103135833082890946466601608068658730486166718288470529177867188693517118661872286318730810172048861515290067171475869748371069109754951595290707280045656657429502537482108313405680259581494915335317846392067568602866623022384166827308450925117634702302769315305330040227133149956133611724499117316499824228627381988715613376461372828972185498616165464756773855147231444548835766159769119868691010766372090005915495682955019135351011272243125692721061646291862616527533197693424704639402926374775284961217462124491757125545009853400087649832535943667439316810239720570050640944770967188800641860619063135924439133009353974445555164051878893092841954576656564401595920197215174749540172300995875364030117996357640940095316659744896114168337556195165469356429327574755287583706382987888060054845770273900833405040456093257319257647769920637309100310059222984048103777691004421922609894366172407630013229414174837071183730165214900271243440253658691927992514736336008078192325839998817935501456671352964925308377470502488658169364315327582919798331853921199581660291668707258137838533798543725482814119233297735014853488714355867394876935526301465442879699043468743518449937265090303323376876756380514388892426300821688630034235535088661643942541800092966236728802405738562874299622989539512943459818341915566199528837115202648116914394902615692706735849414675646863831322109093588843959487706093952188639502554360687638295678480004057122100503405523335076719520064452245694604209309561948220157816887482274007027870834002976623851607185303873452712352529075134717697868269957152267040633131489601664743308835803405276191372930616372259890802709740432757464347409355244265949611503332452318736962432323398913722512400849808400715180487456789240365457828820130642039923197967386817001328460540786379809482309814688949916269043279539257902081919993024162793762245207130790907046948742489122833999387347279666642685042600938970043434114369144362666429330145889750752493615480022383043867868806550593801054491150769506183118125349373033399729601128462643192922819210544808375630929926202846598776292331556552856719515204612643599848424550784678338325652454243417998654347863015420783021313557408400893240689028869476036248159525407048537356590798110498084339639773749704454686963984814397304925390265721499347035657718572237482021938188381075487115579634888413934167991079234566546251881165091258498118291238020576359307515393706064872397878384728733684032416477320753065460186573782388681649793597227109682883585394098993907279731082253067777357243310759443725034305580500829262647889065968211734862451043990769043130133065995486857367399650895810763570172251366403581108111154906538817246908129350385560287728108007596740255127478639572050383362889316765910935835872295560347064674410064326484074567504555355204961745440020812875616712294086444581145431871342524856374301732320911814111428434686884582211596707934070171373913665352573239217761006752691636773036067406474131063138421055131912257156035851640732811925516415626404024841569610965632086456836337623636210129257384910407890131110058766598583138025638104585203700344914026532992645979711674721065028265581029073756958291952782168815547526246256597879696951123641670217768952550398785946802166382103370613010666521670864678112885819348040099141056060590734617512855678142571680738754102427723871370841091015212741763027943176603019937563752323942509099619297423170755831209257521830864411821005178662048385261106128760866718166427615185470113150803681478337522840027939217563974531679606214042591021730042979670051656469119488330952402628097897189342908913587808403270794161734169051563457597742873098957882451864628626800183069378156498780465535053380915647254215319514437691135184900526122326851577042854699250033067840550904356859814625500718087677123303833137095957263806444998329396067863004444543252486254561142706778678441336784434484657988686716855701134162037421512957279351213162143741427416148915310481501697256756340785437888516496145462735855735133644605019256065765219674160746788721024668850616254967771879128519078097383650818448360561537566577370576915237025196333113857077067220240293526089669297934624998705675880185782759157331863296199259824604534212179734399231848873683806084358435599002647466552589179022509066958870100583394800005386450968941466393689740096943136118354523038598882129588398444963663051761239328391052655724338984428331318482943248086957404875695781516217822777231494704637456281139250614377208209910529283788964681828374656699598224501979910751519927960833447954947924762383806689501530434121828308971989148948845769348969311089421708606965487194793219676794206318649975665350231968214163478123447912694424721211416446470951303576189394546870073513330896795567806556379459053082449107061375981354453009339243971943651583487927564197114833412541019917374857761647887661951107607333371733444676184747878360740978413922748292770227868167784637794462986454880373975401128277930092728797349479123682429420498830931732485273370986112479758817961044825907152046701170527863962388969500011018190272334447706199081475622932452584710127730544991200140083814958726029874023074049854211488033227070951619080793852208998194399939692454082794289825540009261426203165214986887054837001023736366201805523105905829558298405312072339018533751904273234854396719591467346824898410815791638419859602738346554360088669552371031096791560762107992694935696436497838946230199101970769664645664229247266036928227686322478727810920284423341532864445608983850945630961929839719129063905985697270008099428340511071239639646977424151393371010730086329871865369089272167565307239609054293200079440967482754033716076828812216953677669157924694559365274475658215325034207980463844126929543504259233757717135160999373028392148253042272312456555110334137293791151233242889339878985982625984324501523020638051950077756074546429229307418624946527857068951811179233606558913902720216172231906265053653056386740013170618680285871722936842542415104455082114974048215680022850261897193755349113917093037012154815680938958312885069547895075877290098630838714221863330375371639104159823851289528516463654285491471996517902691127208056239938433164446977349225911079248024533524844292540575996321953998105194908980860884273491638037704379715358693732366334208822360127178129833085374837033357676007749109973071535155393374015612396296185107633516056863974935704152385119550155312433314498507332637068786357568150001678603912514627495492478621311516892140913128978294655201943862455655946216825431415943558006622504388507267783837835270310432056106955645895699320611571234843677130109568793461187653210390635997706055046000325436114391449630666295852572582412226346875081240626960941455303185635552038360314765795662965267594223464667701465131449174791453719057023339780622709490872718705977731281604133951953637416714354405693721514239825006092582395775525268834688279742889220206811417084394121605493253247125037420542363020467519975773619634364181621584403150392608055207901306953363537749038997236555907400590488953777114226572429655234524571716467148102244452492608087851601175941389853973973550032199320852249207283285346591222519939036064069596532459004312479524025856116528592219207462462757156720115880837340309151712527217131932118133793071158817823181314479628826215666607634386588593782085681400243347267685168090994761682889875984418926257604775247506892769400472538049966608277458561063045142452657017399843832749779358174185073853699824664731972064819684135026809849680872131864868686880742231065282444000883998746006216454182952049473972624660759413356198085470883188704038237473991325141419024054150252238926479428209560448734501855366805809963914866089498431779861736274610708926646463457950608358737374083991501250530930163720053750375957625446495365550296258358246051610912164354695975006387005093119561462651343815062927729055709373386235254997277852580569870225892291299154379965929892716957802155527031593004036540642704352128076384618939648903795977217492828744793205962292571256271181320502701273966101897522231595308457553751207270552074970162699094372999498317764360175694240593411960573157394408912497264490430487121380802876347630099351487128535654003947852703919162339025975671638902444500867799272244233279647473082349049362896361320506292726831131070605418880230043715919281255337898965448007917149661049399950998087343991465875402659537998072090787869456910238312732628622770140825800161781301127185149498530948341101424059231342805650094833917040009199891559643558683896820433746336713546080784656510887364625749226341033250062068684212913526726239834143091420496685361657520191971435513265577026759060178686744388692346232143905056434116472379912487144891976171293193260651518486179243944866804843251132548364102282377033919958022633265818581624672850580199435868671974870438023595722278188316002980809015138901981509973509301833896621806424409456658669368545471417523833593631434011715135548912576025696858860417983612690579236644281077113471542538667956622865885359245300717511779048267939046559167714537224355947897421090909951513634447332354333284111273409599119824622023388437630385201883085515842710651078479957904329305712225055318565166583105592968980504619205748029772317055685024330676776238028612990532418635870168896634978265823378373934871555584220784952641770658051047913461132280611296911351519782256189064888938036991965512093465627829880674011446311697487983933174176969173992329432671649878767920309769716028484562353099760357184661719968139378767488158533817339864827439734015101307369009810846236863303683755835913615302331900175212954862600275095346373295293422581059460524981076845292620598929044034534614170873122695532788781462858552190276310746838121466219681652568513774001793648239363297026254515733641711717376471881135486384007815771237586397469329729978749869451134831840862436090532100028573497266949534865508945123109326751630832494843589675334488485429457267759173004847933175034297986675898740889808275259890027202629789223749792091807649488988804937119990056789342229639777684836938626969053085022100614840638952955255963248005543269483411836655278369732378448344837870962770557676325241115883689122605468400750787270805149641372360533533961841611570879084735927561865946403517072970704758598089576864987558245590804096422354089110412024663656353506880585092204306758834341851660483196786730707534174806928748677975541998250805218234787121732276860132507071128431117484380443158638903997136272296624787402456982413184505509275353426547876848658686040184034537349141281648534309153643570499586578917072722429378958267652044032056634108405734163642509516226649521280602165270644160084392464195023068887224535191951758412873286003007696031056637091019628679580068231966607469029318716531596446493662314394361267765993986798752252118431875833691380278997771555313615821514949938624115796397453664333865185762217573901866105672186756657498508233105193708029762880745495716008820909727541584400879645935343423627486705978825545854361356040591246980658544273051639298633794977260071183446405474207087437196417579560020957494158154958171975752452901890650310833225935766449862133328347716837061044224673694148986518087722271518625761592567987562603301728858599425252029351961977460220771917894031443304047731801320193094816201001867814787898760127810711493443371183362246338750647721428254775949795722730536086271281263996657951670190509189973650562453159204604280405542943509582386756901371076055995715910251817410054559401435067663476600532593852060952965060700511770062538814008662470517110840007909869676848501552127378661298032835879930465887973939474332085020217736439918050242394756502731586708401368262975859535652522989640199249466195711657136300084369711734694437028665841471627520152445905328465557776092485777650779222682831536374467637036881683706773569377513913098219636138123641938566789059259148487574603822724146396820505081789207347853480162789604270580048204759688119703741724555325820319755413344414738551270978219209597047269637881890063549210085908670972983823250416037822191340248982647812336074030663200091088569582267730162489543194455661913622261146166033671085303427278177096852662212775139126837215665353679343481095960283807028639548310840600706911539871255576516014671958070338838285158537855594856698609554096222425271976154228629366319598005651758675561651283046703693245271073341524616011570862943861497804404220059247150858875836028351689951116288220085268492492280392224412302721069894925896915844334210577946510491644751523003116725490753222838671899273558114840272435794472377233597502165743393027403546224605400725081190938279822770992620410137107214304752697519979438982987264982295963937537614789277841632048148947614418765819373126462907249294864747288271145327525274561904579651332057193168587504097835233178197573693455601008868115316928581694419858853059648654016248168067080379092156966299239296728020798016534325724681169249842062705026006987747397227431568130407968679636594187064015833743172866961721357577847925963874105615652756105245574262826032000396855871078087460812880373128376231940244102081887825083823737423142192393012692064897953859599090781515822750511189958280564744318062789652472821124405845866394489518401726010762856467094733821615322447204764080156386045729969446373999162399802473889047350711411230631294615267941290636795753936368486717704497477006170248522970312207878722075568203541556402330335210464012192802783023737147620866097821115516789955981143319134807586705282604389774598623089532110316821232011415438968359206055367124613081957991608957756620468015713013422588965202959602862031278717120747530795471118177346228372779637097338897111346500949001284122914313751513303509664115407788117407792938677667997916265549300890546176968200955235193090971430411417451691928194029810503725435510542874067463695778181027094424722778209200211599068681052261134462805370000050070429152227490658560578134049380855390676141753044989834197204921762794234069506648821219427628616671556327953333808459878109820234815609467286561257895462360205190989900796309753637226839243239167000069146936083313077057129687229863876700740915538586704572506684754901415561733749743415815588884247515669471274746635568980747993506812845959948286171120713914748060110654331869773928681600465739933212333743906232436223533535422246389326231039517770757020491939983132937194482073378954351509623706156875402896259548387191578148562448214374500308663833204141515649316612782600025082490866731273520423976626726043844958636916034454464707617552615852395812354616870810385019667159616556216612124707134846698673830153630307976216734102238245739810933340183555619535603720384966895746746394189201490580468598829329924355474471426919857102373600446027139630198348685299997082499042443766623436743039963243030939055594405064305125027355435970313722730268193042983238467333623126454332843719448587988774836495824391271824825755308144506247094401858213190865103607769043342105425890281296153184718131438390626257324521684813828213647462751896700343094271930030659621944434536398221716142574564368557204069547985351494874060683085576963419844646550442639517236083121710021873067015309162860026058925614377623041138286102798923316160413053701003848535385268672328645171297315254658964218727311315185389678792724793337496395366085992327252832707567767641856152283666001589903464428107216335359248186440255059199799917673287614980511630042339160008057076399313789282163165177256423777422394752415164839645619574014486664378256127313360996776538543999529244635812715043387652542637576308191026259539534586656331202349058134823791950367572262803564936923424867406216757342119579848849795967389428102987085691860916584677475520335120532420558766995231866715450814257203697257395866654872438002826175890140206870592228483615801030716269871074250053183253538310977983176955021489335495503359551291112457156254387561633913269773606554527354332916842551105993596083804553602700667660531143892083612061952835924755679809676055423371498762557817944332933086184644290125193882490746805763850399369424086778499196491678226440158057474109540986163174717422895688123577789902540943091172563710114234602335330089615771369935411776557321721302084017324980176783860401217607011883949383858961523712769776906547217705380266715410244549474952269925663420530809090308903714837299026805719606065154986918064179159616887765428212797594033013860226095157837743835544034499500422881197693848820134276208149550100063563366023238467362707120952256642429432967690085692633346035125511991456503507373792511883798564230896095114979134711877031448793781161809633071442877144070782044556054007999562007273410771825787757417569826041629510869072116046702044099520791131534839859765195324808534316083513653049819982768414353072714095759099827362488553974120099797458755930526367906305529212241154937735350899621471159092627324004780686265677215893648479244514412046063952142320493588795282028777597616539847907588741634263332739691474015729988742196754516905982184056630455113690073425998052168433045899167561348151131490418459905529664801741197055822976176606119779286583188116178306960118806314047729213450622875441369490295000544080864035451642556290516948566858642927916594604131836465751919102109765401213740114176460723656797412076539496054321152465312998039368355237603866166511910284697424141069075527491510173868448631294198588355620796588345039107817968893071803264758397637044851750482527965901283144378714416285892590027906635818748696972080432248114830940751249148290521677797094228562996337447262650784263185969509618086659864254600231043449814594315831604531371542527282408994696119754976684093404180813255861749779520613344395566654913110695897474552601234002302733573473440474886774142606945303493242987601260823112006977641392997962989146101873141304648977686621134837870351855366378839605953954447337802080072103903121371780834085571872194270756575740595500560071451169297266099181772880063017574421189510884497079213829674087046316947419312618521274546332277762635961095150813821045322450771330296973859353712922250989210805795103446248541296694364180583829798805875889798100838559579518931302541358345749494030891989944921444007303235118865658604594219976189167325214201829724255596787003759475535229152003290190932285497776491387441568928006595420067274973347426144496293617960309323365627971765461035206323245700012343960584982091422325871349563466756958376945245090299245320295085562293773972047476954068838626968910263447557859590469827998367942562101884092837954615351490103894628818420973067279455978143592492602996926545537151499444594321490994225228831230150426360969648657629090486979644264988566241817727821997943278531012367974133610690829909613355432072888546086616747618305075421168786901436561605683214644513770047632154611407495200128405852196407468050046260930602852504017566689985350561952735829001027818445553726937150378632623963877313793513411468822128471276688095280682095664290849598683860170500779033760311185190527000481191384649583774733406040381121797240593511574770960173504640357745333734972801737638170617415808054920074619100228799549509909096772158723528456151591385443000707511983806513252575775686695196716534609129544401698044920868242679233708913213593541121143550704637637523265866615973142961047377428275053039969943377221583061959891468103758073691291464541023180216638076649526870831633484800523082136693021569389449695822674614080813705181573279608866387682646842775235007857515079955058322281658297352785272081234519095022699801715339934014898709115925423646390765174112216412508670317987333941232992748461575426699907596477620669257100177907853829858867180606692504696767122034829377934203056289770182691267866371556616153790915828288349482936286102727072639077146699011459652098512191445223896768985732599641612593989134252909273290968175290093151282436176763118429619034603927420792455688978784951100382553716647726275473890921175612013835928955459755230965772997720534593085784704313747060967220770423481968840278913823837656122235926485748120248784146672010348403180671687430022665575932345513416588212063285899866327821178932963799118435898554626369806901734720174717720721288781727856024232960814920298693289891675308573298975920427723500455444869951833540662941363923545853173455219118750646401122899746384356923063433263394454809204075774298501160511306821632127235256145924316787028072615063761552427453912999741495302806422972506105467998316740181731025844003861072245260612378753241345748630287360940297639653086719113192024729503555031466310331605029000327523772562811636017131483202805179983551401836311390137991082619442877486404215134057336710995216446632172362200094690626634174468423679825102758611134810445040648614745237051586452934211062485412709991027562280235971347886101238470841092920444401645502994532765399265923461254015630617413224855723213483511859261989873547577079907210241268529207758571801546942877267706405803709403263662593337484504711521720217201638994272962247742404583042565352403506921317624234211936822131769081037992678858297199213057778400284992814307789235977927931434780960539191442347656070694643950317222858900838570153971042509777689836960211072214499117727046612816122910228532196455324550748198683655049934921832317044293313458118170754197790199269624744106688609284621333419535565191808878652843873661338895444123288446721528861580665213815933034921900953072719568700226010369253774841188135618833868785398793837267542359276413149117054331358518266650893765642683284406841519780044069845844575832070067451021040012359776277600867729248554217227502619853562721932324989472039892263957889592841602484975206615285388193003562967935394942344867542415328828723918453826309628811044177062754581227333882606877817179683959844830162195524881586740409102333816654906251437738530106204813315871751680346408530181241010895834060126409953373057680123106323261304065285703574260731436101541326772521004510547082970879336065271052812785404955986492838761082030454791219248112633828771056928357701331733728790606456736720303614875299272390217084241857658725266995814502527573187405280272006580162750140388234032673540623088886948923154703571896000938934006449256011695318650712044987130484340448592685174558731564477417819929486674110942311790467381831676229409246932011772348559753283027998128240192572584105400010392926379295640852169384009955147760874568849620343162037431375073299963116830983267298290105193476884043640701553044285419655548873206650237221867571451288140535094036354071449519787890741282465277284570241137073815090253707983172419192639330093503047149739783692056004915627665240194566235353801459138949257783744759528926763050598420939489985926339352319582465733855212551805152622612287746755998340764718663910730524894127113804336015666669885519858796923873393245437495733790657452107361629585275718284895011910809911670061451959517636819917097216223231362846947121677206323622505909842500075821575584352956685275726677588323115103497295834387271497299457046232710039527786019733492995964992563063304734923941005330915130743624185685476190628696644477969750421786420136711274647632403232070221682983234713024932053406942950460748153759645004446832219066019814387438636934840432125300984916871910176390667552572098919882623093739415604701058407190654556234808018408518338350315659673260013217597554438786925019736023634459463196491194756308346562410668047014407537448440546166332933933342772375280148085168213935022087827001438564819120780304144650279579864309063835046497848327027925006242830835026611527403856345677199561044882454658370466881074578521858299415334485888817098972308223253202265170374518557003297882462521704622938015815101303593918334181270016183256457774125333731974338376166434620194040405101341323059947067172130801453260765328888231413911804699472991969261203302790794452265085655729147600980696837606266241514762806085831652497685812053013391183120937502090485895312391975034578230093660984426911742992359934778418362007886355247916495796258727214118005729127930568272513344720714506147057362607527375894737296429931785780775668051513462717613188383860230706367803806649527529854853732432347675847644132951126863247956976366957257403736473767018534951379328203159923984426592492499712401320555441484390292947022175608948208484119929150116951282011402865403454440640294552048698980143454929641085296848021989706642649096710400078454073336898303649600000845897981100754775314754624918523966546355567404701467976214959357970644133006185958188950050155251221610982072288040577516674797394988125739914730875349807065412342706620313453362453349216841119444825979506360195595899147637302442446756641504056022831129012601438672501487126750445387738363203134013617480216024959593864593722042659643122719217801301994328505117511154621136682523297694688496424470702155258434224903153937510274049275758778953467030076028824412220032125999845323033971539015192452342370866571793554290092992590968654672264105696161029090622879878404283979100697205156390173355969837928947844945729002076447283239306670912952003839381911340925119408334864246370481573639556713566151543840212601563957804294462247782133591078265439062368749366512680926057014526144844700082556977498970680230518173169010098513225436731125591051845744635232080242156644425947983169627928560897114441900358975757825562541443569567280051942811235694689522742754894439754494734532809509774997285397735469704858211398456320600446446399579836479914142452673025897445409744853350047834157598091792967090219271531600574527398299846271359613481234028448772939491569640311878679790215012587468003375167544392553879851602537079136986140761045757067144352216981037178170937945067756752351415704354515469345131936031584670315498261850173131437304711140764198418910969932594074525173608491863390119369895332389706638280701346076171906651186813063960453571275248544167657265471831268306470600139877721753017157095893957343517800177264090423702034703182629121156488586711357672561028179155276580997418410138879436017532024634500542455555297782643592632064807863946098807550504528496677347544749375744460813641049007393773234935416149252496991347816896417263614478797242643596441697070006741596140739842599184034313037966523789372122701345983204202870343295783384087926685204189808694218484377210407782734972554773174408011604203612219871022711368868413095601823896784537637668024550837088104457387720923091654178259517795173394956812670526672949548840343605243793690991453564754190372747037822754779209721655238096858504104373477271429274465634883766061477506070569115820920923769983269795552294349153535590733736891608529357895427923704929898457813434407949227140250514306227227615351564305838258564282429933264635701949418649524760415867546709763761920683801726731996615175580834626897564265161139914813549816098241859247512335786198963616565346265838251909783171181831800241226870579599327395077737873874726928017192702370287974908381735349418434471699179643400627917702494168498953311072495674397057753465604763256323244734603744771961367751758055406438266527015431870659223368073974552484438054066241474709201386248263930040115375347698036669423557244149559849849674615038509541389246055098126872505856452475921019343407431341198680499381225747541739275696948004396746338319699374837474458283349309569155043397663170419911652043880310189104301702854759013388464361054965545275229857756663463000716880895850835417492265671282787597569787137142130756409637317444590354664928923436520600553732002758317036637578474731534206849798015653862090581747809837656187404725108296444484796031490632108877543457022965871555660278427887301661105301171961374954321177985635377078888528564292870058043616436327328365030847749500732589436026501745858460129951380194987199054414710458604594575634121545335934191966970265062744615267961587299803887595290949635503661675945727539178857708490780324012140210470359474171912776769633406405704990138836444381149940751531615831608070392792480866744246537712464792444943367225024408596295063636133856920395113945627411597772383982840635828886231654062065116231444265720498464827309771313014049905470383102757823322670184289465255437314462270744403055824201361274490220926031882507235082377698385084481219519106383004840494963215040183056256779227400972697637853648417618541723729320256628909019424280557419143259538100355008299024301294934573717175451728259691566668126903964969915269921491156851653819600934552254160930607855051132496947361030877494576045518984699964223639095936447317744929683623364031337645978953811607232543359396379251002746630841258460889948994933825983002361713070431361746429937164753578758135436084442312375438465994366218469816614092648444624036663285744976677861679989476186757944582278906649910037620093262561492563427284183114186238124276178628918282548258878072388821529132335601240231699535536129187339571417732188991850456385500146168236564066404410062229454754542607455183887573858603641058657460497860878106429437701940493829407804471718115871596262611541266614916961647030074380123189885559614697188667729550523674319878852511615110648989119060196502970792282107181933018630625932631587847889905554492683489496052933891164919418949912966952161217538102011055689690143006711549049230481302837144424881224021158191661807198851784477526549717687775552486214896523285421140310861888019238066332677328126144855083544847822709191148255820608507680732598947944988377646857494849712957081604341730975707206720050462662614874089189459228258214875597119647674555593863421189665618765872298493713553681197072577900945194245287656460138656389413292091786651141072167881376418531100917138064913662028395685091502176902702112250340718023258899549078327278434506667855887789602343615742424327159236016614269891956533787026148905694486830605805102899076789533378415832961827333422378838142072551906992154062143587574370075030211836338592736383940132632536804505599019451704542548032650916654684809929624122131802066420482239568016163226452119419043667840295803733409408323282218055927384476424411147048444278067143778568625081510778512179329019713816128874307558536528513678038732439583323900439732947276347506177023816001359099038418080157103241545928189475325424632495866247041949288946302655994553292192385185132221885444402331934999268470681848031061221226671134439127160414970274971903330313462949078511751886553278349710620819450852033950051096615742130954052694369866669847626528235802523288541015203985431477896816155160126263386908994220873556297715064068798470210903720711814111597291083733343099447472296860905344190320559642520358430306715196908682336650634475396028501411752666030589095308372036848129225334010456866355691610224229469187934983760244629573251183483441811136892492542174760817031425461690765351725391297652193021879223997120903317397107647845947031823162875653960086740535576369247706299962799839859174044591117931308195573987607592498447031848249467983406107338256358957469257203794588044063870205935674723374075814685042959015827356486681442066001971870478123666262954246674668503661553373891227326018629391213921126761625671368411569650866519809123576735847628243489768958241044384713683686863856467095951880735336250864759418762460571567003039436060074003060138853328784162299231504771236255809539559338300462158623768632412785714913078096243460355967459258445475046742920027369415282267964890589631374157813478571866109886645169179582770587026209840141802350850543045345335717610091689494639877125710829245005893150764211859099394027921504873768556545673986783926269631629656503025531891548567651519934631666168505534830799036975989931863749944731896193517032823100954758723674064274541101021338426233443482801984895678400043594269537537924544728134937538213579285341008680201515695622315331381868424635960330801033950209737833085176374508172450537245722341621659901169667780808464014223715212659420285481548078930305839251949856409674702189747767339375520166579612378748124932698618431350379084829394739694638287336698692449343954271894691561037864572014436339295568505619526213898626200732302436641471317735426190422315901589175152137326054384319237182688829501446028645099101003692048167632872063757488080074823054421074863234310460256764555622499032253189734516724967682243888020795036231371640794534673737685482067335448374626841169074668677973611557231685843134888067582315685196994255013980245434809197456057403383148843410051037658117348894823293787855957045185871699213014223559770595915759399195141691810621274178349729927984656856336700461214154971266848447966522801627036943953465870951549956322983772178970302900353933936480792691915883587525302528761465349791229188063402037948727650313684462637063694961226570361313618845573875140312898967926104775724638094919971470750760902800121654399053662989599939918026117056835029794786667106651300159019725633158707650394703626632134689893517739096157671923743983942920165380367877661901857849306006319329705649378785395040776835163782725565755649982437400436144862712021435811315555569040023844391089866316966184757504705924878861907969657563918421027515001211408757935315971162132508624363291417654853497563997018011198945504786456933988749450747138647519613261596758322901063285902569478732640036710218369816894508229781338149927441454388687669511608118455662459497613166838566150189817225139864273541850090472301054790898280519193939118380881132767645597219216915567719185151267376107367692240683044033490452234654307863147409983941597581734949242140548849805317474110351797338824707513801952718452790405920310841320603549127782429513194459863071052839148020908343748899851132933892810743196067340881281190202639921870912352462001854274414125126069944610165449030277794824966309072861037774296303239452135404209865057125188690095589512720837491757970911988218174518508657713395050587644776847147556815755049225703555773565880918237814516738442820858126475229864201889460275320505035682507726570631113997210346460503830388024231779062150228459864906544316023046922040426960266334317780764588177764963735297164589903537919020720440588415881812782948348872493537452345301193180413203488401481087262030511869728891511728856096215375900561509334620173102958591890810202669636273675238802167748697468013094194964369011757979295939235954404701817868561038560312274729004897635417261807386424764600501170590821128747204345343462607824606158420995357859898101380205717759815048849955486870920179087483263788210721858747882807739580841227640663708288428670205533061281215609834183184617744381899218617922796479909941159288201572413241888125282390873559758640578903849950521500449207366228024008606507321534313892664271934334128204968407670452403965824572451932044334955084980550921603297125880832667523726510235295622092156386679358437790264816566210269261869528043394463746792724703642790835473477802119185703211756999721791643069117637263768341330336826591705131055999079939067682753901040450199478032397854835751330997887298686481460218450698266268361401669608592761158559440970573269897095320990142682644133387227200410231672686700221802616746090669188721778096315696492621602760269294210467595691255764720714716422114982555126994630853966471090975774746966874202594951619293712978704630234970105495981080166079066604821946974703569060038087873111209242361228824894005391918487683264411598848737652892270131525192481542467878000240733798592892315512319191446347694332481232621168909130151534374949607171548966363571112063061171589401474667978695789410893981812313891405667115336624646261734883908419941992593982753899272224548915113997848384997022907151607846748081645683572543220343730372225620784654804071162120144669092560813684911186875148853593037041926873521154941815621589942860468055592161902736648861042683437663952466271450310508590746904590489465426320516192358149521662053478356181045568259881368243573404671702367600487214906081546848831308475323825505744568068357465915698700211816037154524867522060928748664338858118188246999505286364625639486381160553991431603010862535479406648982295480949623417619523334940729174675578487499370852923725287186907548227018540315310319278874546414934004033013847498673190584379954174269038808003304546850372862597439382781990819856579549790448579744973309318902651833416683649495181983947280162428116055289654740885922031443892885283996754527251659137753584599383627261782459472762744285335785436241375619690293271681250851787562277347384815734342111089365356964622233939390826132147098645097254025252904666247251214091798519112423929386809067728353911205457105094378927201794051740423754808332025955341631605498015450446212964357964644113654053245756825123930938720345850440682502757577735504084272493444884068654669664175029253639270463395857458950499201603300642454413195202820554683305382797095651952147245217466116208152565670718406708015208834105682094024984888431819530964509838821300607627700717554796523915066777384107182858611429943794390607258309728369172499948657210085376724453497512306380831737281410800203407815575352794626453585935688710891305173044508472234767439649050559276296814725492749734617774563435360733335015662068933178438176507837106186273463699394019710134657530508729428393414792973005786887234321588705277311971337576921839473246004689453324606470597543529914246426909143270079972375056790264699317355091260269993773107050303623280921026914650992768869334637269766063371552991604880386252156718777667327405593255232465197592142093033494980162077423377268523844901197452634450142415303237436187212939959430793605532537189067889539240576542936106812832253115676467973536617509653724893377456757851606034052252729189756198671349153086044458486756245871013330510185760052095971177622109372393696762498745603911631639412402384725556908190165755115022549536166985364894365605805814819613466941417146419426735660863842395999863947066791211480356867875860575328757289027041539268830323279421475250344970326127028405580226856750730022235266053416436334671526019602086344294496739216801552202633690325465159964752324813073535972438048558605819430504267604229084595665453774476145167618855172074920555838951810696401467074762404855655552611979177447040788172295995752822293627531262704664150880448940631126417546078988118690903807440377596038624778845973232933418502269872531093392062193550814284899938630803208086400214523556399640101080146016587011056075655299999099088092773942946864698559661414844106365866772466766284607342916131148602817512090696438766533516720834546730101926475715864568008586763156921732522657356422514614642470049205509193325283168661448990272513633188618628898044907912223181870398198881722064450262141047772341925532623688973634099387308641522948955290948910851519232006480260169823200397371613890318612758328288449249605593200222927318178975437012462016290790597468727059438570158493450687561509049844105404343939032889785168934582231151977897920184635823125710523548607839562647530843278525518885196934275701950517907298323365791580407998180393659103502903283749287489792613097444540760234232118295916284130979158299063369435612784833434372259804536863448622062823777341735060412979797001500624173318745945353109805178738512072796535895612366810145067747494076301635963331954582758604140467001018008556792584110050123152674352555311926515276395044756108134842073138542056268873396502398867149959458125039675928224224802602807266752747562621872895763844622145436308005172521705254896306169185289963227702785364132852086812670865541240947812163333692103086927387870123384708334566762385830950448449344438214484736617234206341705965720775589982534316057700601002117468962862415566094048108632860704855407924873398400649958641238448965297998803715672537710896031817618060509697587786282238485811187093358764430592532046753936737726786472550917003932305131011225962289627034736677863590038714967480959051205346535722700885993376885055272650394218527350350756548070153055015430360885178552629154229498859195394709095013347923645403273370063509018002531061028912036528766364952097502852955265533910224558391007117063353172974155540023904844467995056733974665161871817157574847423735732906661772788447069004079385604976403716522378393959863537782586199435933795050449863485782115096582735956470106467144062134738688750849754265560455925298753395660441090604472583756808829457074219785050716740245005464174552005195188587634587006530453967918776397044018315339891745010345364967182269367746381319152180801340231184685912030668571583135688399072709853124656292952299210308087947147659044205609233042915304022152627819263344420207654777541783291171074749463958547637814596511500129480436588770070961491530132501115914288206598753159458133333452728262593520843852407179986695962504185095816709882097477006283492236324710640968052547577771327885202551474885772037624064007095287475976673876652708383286878664663674972330489727107729921629426382585667663544316856520934957040406039054735875391415409298383964488124665706817089693332437303552071148970488534499030842523996604679583819853522461399107570726360642950152502637839687172643497142570808478170879113138230895159958160828888074890582070991966256542761958398602829869951413922767910737273450711542587016529365278624799929632248056950690622079148060940470846327360643595010172891178405863767350057968768095151783516216344207471218954491537717863331709643256533895065235124589630956379503755847340349337597822423462834690056616674611851801056547137220333450578217700006845275483809545648261645924648270612107898794202420684309543799608709878184521850328105682309443593677856613472108225096122220851243443366591373897346290676107637824903179986819842939989836223554531717031137008916823130287511252218396423130739704214867724799013175354213792704395440603017173876414126822113310150737943351819383443423942004714043166939071996144534012350698900923635533001861873406880225611941627376781992641959081705217178759273756198868216878689516176438430095442945430284404362279393571389802777297323309843977220243005748890330132918172123511587124498648547134363001627382486297429009971625813785215443980880115566276313225288269934124372885665328741745814744702009287777884136594081971320407191148137495497246143058318204356228304329156658677595063140562486122700132808250501180411826189390542341427446346692026606406203870727836110963658870532472203949825384558253595168184292944642040237849408758842924369013637899644189720566890517898817302860551103640002643238867135386548701342960942011503330210737903228704283050780467904731891808024584557031998273678756224628292563635419427120973975368898830292928043286494466269379129008014715706648120279959590563104517657027469985358628835987459506123693337364152573591436850518953485601613740020432970412812138457049762209622053273674434137594093306211117003352863245097208589383806004250868718816397511630119083889375072847114459585178856340159150820772185220484511420379303088563643586114285131449961476699293609757553145156394071867185239068782928503027161732088398714411863407599569475456700693246803201491683844010649076249410333779345027686845904241078208860742517361898283055895162351337023464524513712763845201997000280039481810868151566282219971777620928465211478691685636120768729637093046907162651760578033643656958469321628647004712124513619703268645335909011084902947629963881217851589841059995179909991411546492541670314868342108546376494695333459378377913492732357314253063518580771584592561622314672865809071652097371454150140165923201214510194742830542439380814141679437493122251513246863710672761281362889453092663312366690549716011057407066923483047104907468191201600757196322567852023438660440704984671347143415750914738878231023374358285890118875220171470282861269638334237170688642044737208375455363694493690893441922122849292009567364995315803386474520394514515202745751689009523611611567929569139777403748935887462493569820549351662285918243991822011362850617241568844368726412892743420896389126213820781890444941525003253575797237701101016400719697547608311134843108167005592911956116422418449843831824752337525657732011196405774106107087644475122261753986092951760220740873442417432218418405258612769989574905593310452390793302536982563278791422020392739919560103723294986944293720566893530447908585451273279323392070930586665793067329302541591423895743066358840408812927251299377808970771841758337005537429887376388054385296524034736751774071407112822350572961442751960623665063778125042346750781794233962743294165396985464623504865622855323061147191470321197220397273627230992655312758856110416937127447507549075648534736438485819889521277506996314287293846978543064284934730464324918933432445532633033847839091622274742032663460245327437526351524473541419259217247015124315001899301903365986732775470496111732833733323947541048896701691103545665837314862347863051988437791991917239607654316849925121838481929963609374066884535197732886144153128554532121165583393152513209172044162806308574998521025300832311135318854866920763481693093821289528014265347693025744144218748919823301498779607785023831610500429461008149816551363748363820944996573090250185595920679515125043842812112245725458597595780117022703963498977205363291622644252575173552753553008639758789929871898901547446417746609013976767706766982254333842211971042809552155885147302803481933199171354228468239278452537722477000371487214937289657057393198307954796460441113114991814576819159284665879224715826926559116421979885986419404497911168139986536546725918969800045957076548469012479613066321142443035399320181326554664863672871072313388053993278541927399990601889097560383204246122291222243750691697564020853169039887820266405925517036826515701629792615590659141858073496683386222175308060606419652283290873100388732604556982023768364595076786060884130642429912319695726916411191846334081304621630840434574666850976660079816590929987707289293416459617353558335322051243745791375652498200365483196371031612832395792571213437183299312772874268824109238852784302198786363938324554376683100784078037390706134935564211011661463767458487700035757107993387061147443081066836159189046050947034911435034017224145261407336790203249880659379351032758259990796542755265612344200492993668025486959237734898358971584531706778223069833281810772317704577798567656051998125717841905296053694757638851337517009245731380830782162474950291418420740831710489357403129657632650997592383305581922015646445240019495474203487541015283372068384258727370903235022187285133655032320498949303511183472158546435498245822779674015615494421149394235869979478477739174292007778366292412010231621910223108065642131903434815239649103008055604184201856937164518896414198304765742726393999063256557684514602538303078797235148226653526474594303904542160887964952759565754581908635362155060459400411383882136170556370914495728294262049822924292947985922912293378294164787705290756616684890864225656873202951774424360172436495738912499327428973842938977791978291394112680933287881234262287934004901861267747460927982356943810637429279121887543001893003659123142171065270149192434366410805000252357109462967052328075078797990177317529382608547900073963684110570810769586988773125304985137323278131595768777577606412941275923576973230327342260729345491586028218530765814929549045502293532523822829035980120819401707783278533217932774357673521955778719018298263667958097861794455557169483514114646589122619564619720827556653557288560649941115252151169292987206921644522237043737671616982311316421067414804062685381203627645340205908309041818720246713596241819968026117993751068593380784513520948461361758325309393533201002156477807605339570515277047945008356343318629260146245098613603948878495526298798955654909317606442780898964212097425968681635755589018888923604851455431809442622174903640336905568216316302977866770869049266916111389599590200774588161475687281790850289399002333010752693108285488598338764325747443790286164893825551299539903108266552413593168161072543768359150721771822878912576103441628257771459083761573639751847489133420749882606668619946340541098057905050124908091235511018805178365861816545512074839042750252724518340666165246241327719072892504526255627753324695138429387526012065651702889033984571786550993775076200444671554728406230804445100669912376227247099959697401483869052632376539016689748424580399253465225732185272170245598256951692394641424150287013093882153630047295439640085160926517829221835146198447048402932177381224159945514155871955489308467962792644884192786418883723810855866793484444034623668534259974676824603989088706806591600889371909194253032195123399389541994876620476497070875062337911983406917941400996125317011361415001256180336966587295330727268588492686029558426040147493166573613940084602102251420772289567369108866791426827572248242882129067967380888098462224060923253724943083652385254450529771022644207153895642545213238369972691609210015854171414772582777333520309721814236004208492588550279542354347975149732850985628237720053098664271216200317812879379589813492259809304582490338020327599665250139617490130214993110562511146548285109121625255399021381952537173603499059934586825380909611349697303177219772598033134720742408820776838245019155113316254819929101040411301176040843633821904837710678737465785083131749975518650391483080753832342942004160943363259806791179511094538118047325305225591201366270129171298385816617331882328616992525280452774080250738491352787266188124468830487059919382459900138434983739097829413966958061398839727411976872255030521573168841262040789070714492234059374697817195946960648184803674184060892191670032485726445516289164899481171814241810874132976698256120391472865989197011203487730152466049944055093941333870735486869665412836010510205274393147312402611266755112465542400912771206200448590018659924439053594103787397011361975313596256321686333466777123285486229284681086533030984108064872143731902372052402163667088124584829866907463309233884562234578288059101152716129266002586136603399491765775050173895434697882435208371098968861093030761085791927482136755081638837460761149498140960663483835551905361585668971893867590137747393203940933934486394575344734277968431889631000864948733114238306459905928224569864047177973096416326694831490097921722498902724000473363311280904781195787368558934378178061178892184009783761831626502980313775545903573278411281901278236150879178457956218278899388906853010559145440031217337579132239487547503886388159094109262636750084899146224436763766239597155165929777987166825260547117747047996451055933365287041225142296573157593766519013710086695690319373384665691144361009595904870795145612691493189563447524005130142664161210062306969290070794129907290343786751891668878467617281137347531948175428065449825948728092177364497668158078717318527343596810542197296324281207058212758533303288128346170683017937051972171725432227203520968821216328226602392721259614768383499694163804807277501434231047835190530700028089123445924483706552758188428547525252663939790394488675191712030899985712639465353846959879600733859932062631426918831050250861125763658958032304017477379837798621338299710741727888324333625927752952186591233933637888296467364449596548200589711912274765953588045149209837228149322297082889465892883400077330848318625395954372244143141098455971676314814168483323630892856497314641575344239523594786556967027849874271084095172808605105258856812294209712754428543592521596127293877875798617293588832818070200660209302854834737795786500164218708105078270446311079774220754408252210378566390988975393664079799206924035219855087142045578118545593358848027985313688967782759951670603957039899937067917674151806127122097173226115273426740514544781547609448865365162025092186367368678485792469804452723214059936450015650704371766138406664310279809546417853627452305180132336699428974518226438817916496190111934979055446964921045775922455909098528716828816977771465072712415628196654852949662830697962555630232346278065572705590481559834925201772486873688226802011499115183645266384813813189369838706349351953010393648658850400616578117064711925951468178979981339263577829321675975004897002704073183922442679054817179695415710263506717135624077708580877655560863073399263160713183752832928435427665310107627558308563924558360349524311685712785453178100134415763398156755248939246328993210758100144644230725427020752573200891191039663775792038909111806970016343529443810925716317845813548233952041010392082340318510197019119440456103806559271430226302430961745631260667602856642524864929811909944480000575083776225436562416318305499458154442648287652484944691337555995021759948888678157152676218433844084351272314086106638351246673410383425605964369488431121426772851315334053535239216243720271172028364356813568058459326321617900478683900186709870249429273325951843402831611085307935016870450913132446047583277286003200743530091107733186180517769975997206429495355966573513653271686361153317979447968878913695473006659141295176158566146057447836033108787325810846389982272783789527160165890425036882801895308221116533100954172905697763577595614648590885359952642952958542531637817305397864127807011207425285061649948828328278338584914322575998111112970941909432215167702577910580591456237232107683314919136824666341920025129356118244409203366997758038168213762514836298751437062299985197473756005497672082189543974521198424057743587420197172791959934408524065123478879889290353089033032377333331238561249228850670277962252057248805774442185118513169437754959457157887755019402748305619172196956679966677158236208058526336195681794457079134253703651170663357785250073483047662271207597131534858316916596395964085353659589613510651460579706882597089211089197086314538242714447845525987237343679832195529485042247649787527023307420213266661853321231205380718218823758951208639039609817604370715754907241454670372113240882128469897944381877324380917393675654972727309902048061867463149182818437762885434221543372674479608711601378560392139271170061301332750845984888001581428218764403502524891779586193496589839060824305394415323095871439349097214461655596857345479129843760489435954513501176905471356712725599960439352873612442822439923082866587024268300358928356785007961274437853492634330521375383650621063115247119389686905608225068623860083629943468317789962015024885830978212260268685566608780277265221552674895185825029982101880389286893797538955720481022502544051589903423664473261776993284874359970872927853700064583792003770122228832007005340667513990452397554689493403216513056306084066448874415155836700159249632998635625859997725490003993631962848655151787730473482045646170947860843916549932349431278945465480823963944838578581737395660319325729601777628564814229456154015427411086897471652152740921268746610974247474931568569208353292147333456360803290758911973165391138885679000223020456239567051624708580056691744456143836057260935116328414651969211306288964975919658540931717987408284861306078485765153604612109321242937269537810925928777163818697442147921996686059288799805810232971653300527571102096174136506701904355534159789740720012894287805557423688732847711771854669720063605912135852414231599745148596174352350227753050603537433178956283967467049298158505317154459517342941669603336135733134382523357280503870903154093192328179064319582744118975789944174273308160726860059999485902861115424805013886403698782792042337978200193937797180088771191478841233077921721835846184602002578824925074761243701421614299500008549333914666431894042522369108132266035930181387698978669810827659191105149781256636361879930526297823409442698169805987793023760355390485208529313648820727570207740277973794178455280019815224845505106456697446279193735999378766735629092159221659182053271049829211327861533687100562363893704970963603477595990845533481365480408549762038626507651718384769860432777528041618421677971044813014798735329087179797230653720221200767674951308050107407155617685520899401957045068206567161564183906114252207436061622898196568404291906617175089758848667750711917812023325628337482519326400235554282924166049367892291375633694336487662198358368634277216702838995288642176724941339300863086295641642742424480325736920278179124206404797265563613348075229308775399380216871258933195483420456433259684854327243594163165555613515871357236393858085362760260105393958075120169096941548151183588652040031043384950737774182394222544461792074393497468880926516374692140744801545594114684959696069435436612650122417286708192780466767571393017531898542674895161848707813697208368992059735654171914760660101453907283197253000317395358620024702844132697557552411305790893589994887859529578361108633758170610342883397675855146299223814759155712795036786968796893098769328101922576301174178019818933790685127114332779280644295549804997186127306303568658592341539200701741644704538826011299932659252245270711133145101297160811288370486101407287877115126164186717255712072219793117079705918199510084507850246992173126259658815264519138776011034041344220076728477712087828147195528208526135920225368553867458517731750696033510619335208697403974005434313284598450345057765084792686152254232745347287490995742575179743795411407589593329147077706758731989265538485916855886912883240080117013568436719127312604883753920335099173852482446577439796818704634303546887314842582380792036780796375499502028607568515668668955084698645147435844159445493217337767715618192113214568810268886926070094648176514274228748922754859697794098354424938539169482058273182713007118800681391767320275763685201582518277486160204127678909916322490257941534958127258275523335488599250356770202299705771250994303569515096473029174573911867639517581250095970035062115165458604641543406675294406419813677684341237412732399430310271003161792608440396080881316413200044123068513258423464164023573937372798628606972636366041933058942367669830501272721161705997325273653278309938064465318505240466724949319420689285637661573277037211422781067066596700229937491053278297328428270126151423950024042550904175184219049679733149162787997765764254231431990810771839136453644624933432857442444169637921459673703280250377387266009078512962060346902838912337696449676670283818023790684234956138029830844973561145804031163048264993583134201428766754878105380898032054442992654035739258209459009039325420608468124102785211175536263260869440612416861279626907641643936698214184765345294654344714280479485389362434716372934235113840782268178198585718471061251055127956205825638787028417716044880058487374869227710680853376668437052868178772713216587971237535426035271193294833587012129241446832015786687434836728619398840692845097576118836419500721156670731411960274457663173801135706797401482885894534814703328589638975555070990488417545828624691461675368327307830703472590039528777962205811834739291694634644647809079383467370078432644278283738998451266574718493857646291252816623165069288292980005004402752182136096052744899199107011936348230833535334576350687585500395965350457182471811021618781705492868899849277627526212999328801548863635835718455203832866959065179070376631331855103894423734214052716406393576627006985892519020691305249621220110445533553523621253041892969527565119377742436869759178584218898819912401727944210147269985956331743900050439271848505042759995234963922954889617126164821706710592664176804093098165599350149824560033236709295971476077795007025672606722382716103791399117736546104426457122680551230522578580710397824286547964710704437526132967203414206596247556672251358784726932616090758056505718159379137678951516476629682803507602906213380555249937231830042342744511611270654503059580463401478009652630589734287743688881200896320571367160720760893372194988017598236534487967066180529617248546907004035345733642261603897847540167895846778357354106984463844864499177134662144278857479042943325023371377077139700501609749815668827270223062652083742114714325656912971834541182178546101587595238057915825728892669059390910753509802372611188171243006613207610705910197512228995302879206057215647286982100330058347741325048886931325312372265763216823036977057209884071839768118059194425779256103628054474659084661329500184535539759026531518217566144018612820583972873476609846070465963496439005727027122737895649040436283471107774944979649150427303552837326766562684712523944365129760403027956298770282074163850919498656856731236498660734935150732524057091011058552493846170832178189844392646477686390417552082269162649897501523287914305092642028102366737869552234605679462907504813752555870507429248629563965420526229171701538031938958900278058408365716712426401547710255322706317361925999365112195163846439527181781062669749679368674227281521517877606357661797630295122470058815516344104022353725992980798109703498969523904510870154816547970770810729378572387051744602243007621049643498871797921657187806518567641956797527155883762465726389135730468207335456216034936356700418922214618900965335125036880471002893874155332261930986748824301914188787888909753643327222337143208274555587926380769459478216894587408883844674498164518864307441520450189606599195736083219641775751935024645549860237503680305740751979934842394180286286733077801081239197099261455177532829963047793511067177433407436389740560510561650477914240910119282186314994150538074951822846720733176038373215508754047005822472311846237478517463462526210325192835302107708140783770085395434119984530634768408199567073726427461693986619341074523548951536548027772645166202293207388262331290752819188324539813780893103947194959541940264783060699684048343271703514332882769734107336900641145046767215402121591050053177623147477665046202111887048979999779196223340059224844665602201551516147486419785877646973024760237065200561462178793407165595681708900793673974030198238678722403906509497041268786677465722337643144603289691342100975570017990588324042092490907921713860985059472647730917169775306429128784493379632571431233853181059481237580063822000618233650615053619614433237029482951227644235324835474605124345988970635902628607378267400834393497111109162329190269235272269644427091527216086186045584463375805233652266729974395451469833919796056881265171087703359369838038866554898173608652794624988349415640739467851866146533366879902660843173949463821753029129601899464232665556126900382431572623294797068975089563333084143074368403301051621858600670737881601584755808423131329329951118373798887389023149889002670082457079653543790016860997108863709811722441919659686957373138318490708635277598130030388683100288813167074266555823487675559630847528162354930458796983989327066807939147050188822940009975095066362949366843179655957981470611617668382690829714749420133152831849737355859188093336051779337064363480512418507372012391807613092713373341905367416640919604181944889681235026416848419755852375054624695006878390617238184996914345624862825491808502739873689330565178771039332533069733097962254747281202723545820791388805138538868416101590453767136694679776714668571604107985049434125097981276087041135603530216010576308719633399056642869698974929823161888190465518059972568965655035460521112100393403845194445988137501569393713674448664487289415302906444155143818291145302705942596262678987395061441219905804296277681503427264120917339264094578884363009400682083800410369117947514502519299318516543285362859057927228841993990064758654062074253489761500353719687464277407563089107949804022662895114498833816606203462989316722997748448901887484299052663009578632826542713168801478762404253592278915337576501840188702181951109598342501190879817544248738490799467186645510495558105906942865879920850602477523405743079105537447156265361032530376982776374529843511952898557086784796778834612497511509989225680873044688574928195961961852457159114540009638782503180384918147909800647594454978420602489674152801161426891971140197561892394422338013250913691580127153995033956456893865794772011517369228566276452770567589468546314191556341055070848402234855700048476120960285755820253164909625175264274325828998145131547831015810281430009980704297816622040884265089781707541866911382135123849568761268929106827164786508362932888078137284133180929623147884345060699444028864860982111677852415946060122277188644996677361000525652722485597177059643641163683991253444217550386019699559194093552599773591540473080446289467108028135182863400529728507457005178803088048044710138505325887839603394669515062390931894988906040168140390745781749163842747525330464609113427535278237237262462432427767688606568783613688918776425546387710121348480992991410132331899325155834044620085927956576767313553904854978009574364304215074709475456701413032136196185165177610036247162834652226911187892425638258729922593608942395849359173519968268048109579602955373016913149568553788918609913842206714239866960446675048130533203469278118569007021169816112207775143498444904622444628153522314801594761954009854624754743464004265461506216095641436777612880423190083919853343438991596565694889354911348906848307575810512074146270347055554392334462771887610744100457777466850993542318193091646881177489884068101961020431192689289736778705193030925397528973051872469120654918132083307200159828313621370731029220236171067609406506063697094483849275019672792355112168541876402242709193417172985404491508540539111955254328668146686812342598792448110687172646217084587182238668107407303065055497903568088470797921197691826737326409908939254049256972068295082928777811809730655734054292669310926107648194637800025832854059422859186579980507875902202697595741240315817209824726815362712650473870319538669095687372885589444358213440169833490758593470264837647828042335342630267411255104428464479574382299847012732100084792684676159767212026419841889688287481817158099349998015555520702318937860229561629837324837624480463196915755861499761619640284306921037683503607114104168429950463643325505801700206087383190760986362753650718544291895465186519958539961257663475382407744433444876469189871826009113740003360877721013737977441453786130330106615644307884695299698826023480756219922557615619925611389302722872660406427685058880411029490664830478001341327931223322376604050446989964314864393130594628772791292295556824667425962452864392472069406430698196389218037259396141590592170337689812462766237637012040805329186954583529246235594556717346191307281422835740685363725966303877596459783573547536980385064382369716381726501234404986854232445780097604845418221545450620154645214181024283786447678170291903460799089151294327855055976544249124972266160144749239656822978577512221169325105511622963730786383418053362450820497778180485945629656488357222452222030449920822408025004217928890723858129675752575942571238708232619683088099778539794837420513025028506106653741656851955161199474001138321206338011952929166143256604960245417400416591777207955006560719736482923393828249382982072922058861638945082434508764112666702583634098563476738046416786904565158428456127199591431074290917034174947006455408176625585838869646906945749775846393002741163354604638503467619750562003846773252383876264607589458945174795825584300810522553012346570016300813233539773241575561912511457404730183606970143755823283107922181499115909277607795241385633674937201574589920657381666198078677243403197710226294381876791246885026267842805869283941518581277291486760157196567938398759183834002201162210964513025785222214900142859219850702904371386560757048310786009097495776411297166186854158275166573224309532577850321949746531810517268743344548212780108450878162174902198996275773381040402081960825089633231800428819743815613762032686514472273883274834251618158002259435884372690422470952484701420541468616710149587290967724842292234477124834618869485184838622458078485518116903743461537492031903273707982931697804602217748929042104640689405087550920901996962082498980847587588785889320535780168031452864240786640168689879784014519790241677435183039867885960886810301404612096404182418787012628330872632649820149009293059273927757379624795066000866880107460018963279319669264594939132844020222340750418655227558614779288139366735537117934035018717097200024502785624394117723499404565352771701136715031396985617461816942788909331329717586276453304154684993095681073332448846763325762789241327563800616366492738466203883942908481630004255609305204845984476611699618998721362645055629169942801698500658156510153094634156159757310205720708239193215852547046044930388713042765154883193504282829947436334092067545731513586529893984366527261963458824965041560905482701977706136951916664895534875643121410520569579527481740658478917850820745037387777374216289476633153914058533663966019503695357904007249377801354232609479989642197223346658961541796933159520513693418251105799401750443759999514123374438035818376876596465719456922249499111529248255409027203774160826525151768350633356905049490493074633836588868831589860720049688626935020176200065477245616416434978878329812153137716100409730655052747119598720412096472831647161460185312671874765481384099270859111806455273858971878260370890020906959801536075452830799047899652151842146492402067926615273219726739116645324366827436010347264004078749330231177953965678560847798320681704054428548416289319396513148971857999405689449893912217634472390274650276209624444250616323819863135112257315146554974538990717266972703098312712459851527480205645313021088471499192282387017671643892790561712262481618568600293670062337309181416182580447776147704027382519023541654603891619625881550766787563632150422520516092741489045616186053767872403829487532792256229047850017127066704051110108455253189957622516233033633123270351191298461975071170280785323225233026828773513183862042061026985472636341305555408990300268976426973755881991498105484199479649428151996171750594495961817620957157102876310590676144837598154989717529340188658525458161022752524327672863114670359796546472832131703260621745362654547854599558086019585369668648511221461266053617086193175103825140889006240167618949483221762107265389716733200924876207872005376091399867218984488816853486535422742342161066477108399372612660069547335714899095114083457667940995233944981994603459606188165058549379982127041899747067677827030424587167899351746541544237440545781509716085744190810598879637810547967801439266321104752800242267703722854448581470724582561331153599559850955380488332442419161141405973806330825183511258746653313011480834247305599766373744255036869549125030303213938650178947555171601507629334155871251551049971651276653493759801075206991497524263036417226448127820450182794178921948469647043444858150067063248464076214387574977335841569418946338604792706967178934447229041621745531975073540819732482776945886385224107755470192924756927209348781756371452123440224473044489311906203856103601158298850308970185448403124341252758451263718858545278776914088968026681705411451865327935881706167323289954711219550413428624699921699902782133214696665586643657554769746938369001366580715013436474253585324038499982177793693993561735416599765603897219274170094882852822515099061416195226947640040863800141982143408837753003452908921261327229736433289787865099795027177961987636943577949675087147434029602686204450480591688668668785055518738433672216910813069735809363269102252811540170219929186472330880334257172779120685447907148802004727638952587061296659480958754692092984977665013683498640448292714780205180415879983751774078528714668385933253496229384664802805754245046896405985419211089518365255054763770316886798760094718621165674209056063754806962676461188251504423942377806928783783349587384956336024963261956516370381102569703152951819824944103189768803781530988541872442495884590476073766304519115617045161492843477475896005141488851557932443144570790517612567925278210282896208732849084408829584426145528746180871764191306744330213567602718411543320696592444148037553477421036933123729491595829516383997424759549749904332959269173351256682338487262879789728214220663718975493491663285594762754329503482468537631205077427697964871745641076043185406391562361298198319796023915448530089410490425217583442746126398469782729861190854183545664670721746435570320522707184025596601656866180117780718674126245668167224272729565696729873152198713638769068271886487168374486267422255289609090419752742563304994565788529129921812124817725412524885044978782218524575679288318844184250262456382281309653583027591906122560362505563771968163787905399452019108873999626759115746553968686443540772227881509369643690358692654548797330220445874530736228853605873710254636707552164198149472788408687946890524000662227104189794943319512459939605116712646323236096789689176523368730006907793880464740128825429507912195812967765922896258674420591526226831506282634277043302591760179687256418961175817387382254814342348218242033253207768701878928376298206467790882366180133056243696239715830724470284593523233670816131374760688772223843507949893013173569277630559142617452536467115175233493792504288422951491644910377843573707527462343413697382857722367573640638095745733800276168104940285135657165941412076488971124679986013466197917972948346578203137524788594497703778221546787235575709593954024975143251132671078963913243561588393158198244053257558143489960796134809523908822850212226312484027021437996017360937908824337451083236518382396835603352734364458795686411868743160639675154604719730496169417098470237290404849945437768527112560701562501352014350717172979565526006111482754182425646822427922297203297598006082208678106336681676328923532540958488717739159043450461669006994336380095973347706382061032493107621081968549424168711608635082698463259752780740821706830271352175269698137080018551068020676903848571736508609775337673142404991780288692521078288015273579636007468963519937017418266589983259402352747647970492186763544041857574673233767231659872852881835556379644393171452402481228982390857723349875901653436572363526348324361741553713474639597722737005173818108816417707942540797040777228996531172663723462067273540548004019710703715695596564436950532484839280498836431704889475052407998609791039849425957204060261030586028269430017626595507281011305210267988227867702410117593785169598551978774339100863875613545567678541043635398604003231334881948340287288639310933477944671188063169357034495304744877887521795384144434588738105453579467495939013449056427983259091377731240992740041451840705469373649644015786173778212269776358844179351055818741381571179232682485376117362530765704400821650401236530780862385220365750773169076003676146258280394599362991713235728751614778622684847597274490893339109998135938448647859593899324743307154866226581133332120269113659518737770578996694769757036537628217040101881049919494304116733901283428352074986951930349242651596030300149268632336004091726557329584754205388615906847278029053600430249691943375152304686211347679566388399763376555019924063242164285649140887414895772451173718202547683550383082927757472426528388380833327656961422727194693561217775365487010262809293884278080092379830787860052243486231887047606483339740543849266648783668977344381838350107853925619273919266317331478150494310284126735588725228832338704218953316353690419223963173440293676885287229156564040778182866578436175393254816308359741608511673216985817300372649712366584018931452814649542729491794739155884336665083752902312617718967295244357531684423255785187643675898755871865660460010582089173603928209441979203263281679393270263500129563300454904057003813714022966136284012871978829495254673459458036110759083763032584547348314869671179592619149791061314092137596733260039434464713845345597924878995476619422157951207445723314990112568543082886163709434083522153698433515143270361585318007479455144641584747316689733133197377861161565440868611501379627316230032174284388462952725066614714865747347733705921029373806590751861798742126152286014791028135414213802775160160834642432579497466676161584170672197133573306660755809777083054692083536663694005665734297309009860096301106270941679613238271477851010781829344138714485851217234566612633567894371278361169369444448886548999643731777215639746601095424161292436513203020107703759778399179996008342547117340413613518235136502360179138231465172226698373062330313249727951615375969171869124572143285024537299354135521988776983442256954643779657345103920687052902324547494813226825703247315616909977124645310929551372075777768513418675666339282293189743940657189635245178818151097218707571275528159144533539447326530579696106177097019514299393034058061114960838141760503144992729463963659846585088365463148975068271572426614386099948262562535314490083937716584609441141460184571220986920290906447650686577552167089874442380933879111057190623428095476619319019104129091410195329244428886497592204272616056663167850576840316645599443942137109095301998810866353941749380817149169902070811740109763681975417041600917135318814044685821009750706764634907861232144419443263041492191498384328720951252343408769713263834761873740475745597366732839787176494121656186246363096445763353716068620296268846244208897692744630525621014454328915923613458268851783729981725299355958612643860505726230304812504349282919637302292905562780313994150279222601450338669047675442578125042655506120153042751406156711978140122512253135220560082233011112467193852543555401927045192371730026743793171068227149978660385237255274112424617331462441056281100505231297669503007617385688800709513701609354824225481365229917634371490960419969502140226363844781722337075233849967533937912350711234991380618222570925638895348533282650272378214920562138300257098685001922150274860109382964038456198607268510684729222980531227577064498514460208713831459776772628104870185088578197269305691603884812167594174411973853503104501046938919651426819503990588317309280237405415000464017345490924804699401853020957942712263285581428768913978409869720920751400478497066874656635229747323243501400682933748833421893022598223957412360089663709575627220016464403728925578699391165773052989509119632992501004517925736488922708306493860173870993629657044400816447046205792427019349288960060517709187101708290076288927986708107769435792303023739888868712715246262732169552596068548340604572855492060515572714112906339801173045598191556178075256991125250931557415700324909879292727713780738009983610747189336241710055365673401260616574087707066975300203151930818863493935266461103428534911215471271940458968932839714401770047593944538108713543758735528761427286283122524761116079453925200231511318792063509464542506923597860963698194634712859516080012758403909975767737347555851651203754271017783942314769459078931500517990447846572038393451341556554274788118046957634164381193475488936991137749049049371132355084728774092847074905944096763027674964866492707331144111769133656217252673908904298272245730118004626300056162898122270384533747317830312085640936491021272648593584951867865231503594143736011770566832491955767020825067233826642805889624916504013220854209759280871972688090721054052355418541114583587342500270377714874020363648569984695891526463363591253153268017355960445721869008454958377584496594850120102780368172614512235800488125219592103547700457043166506120353105895912081807853265691502591680017077493209139758796607141918346932525485738416408950594356359822322402321722765890967384783982549628902238848960638017643985005039462605969790512670820858696409495384959520135986452541853261923340683829797477140951438375280538670493097967427508041031580350501495875507723451946461332605387808036356192922601998565805651634566649080927136961320216302309525408368863106184249860852624307120463717009260485077917360277250982209687789829785357587687909806100704572277744115088005230083957823200372546020751795766399230072149847520699279294958167121343109688889308156938748771039446714387511843507942698058600768457366067820213104542427752137645284578984379501210556547181420281695971084867767877983992347616863839619743771556271290968147169226740954767651752208996544482721251289118757353599776368136258060339169910635054724928667033158969536316997452315903451082378082043555795356773853251767933779025769799449192310293113437908948140590706679186974012929562892571367564586441823788768271017909889763219213572428152404374088172029518180404515258163946700634753772899282568222825909126025458305144114409159154410713008007021710259747530275567385310992705488913757472311220658395932779586263622805295348900217349502002314878871069783142203354027532207428450631160879995040970059048428235073745541677246614621822531377412389916072073872201752431944232658196555684929608736390567258152303243819945354511150836751255598304992434588941446437459017150925600542789223835894246695467475430863529040719215778558085693147579840954960378302458001857648319379475707512212643615603194875043213950194698919664923733692071062958951151257055417770014671030818562480044207763873446127881884957699235612991416830889864829262981599694131162268558959705559412933918320207601205669708262520618219418707170131592508652727947815090662188952623968507396185433720683828726404050236478893854083086792929330048482631109384977213279612495251852899531922878525749011374263120471722976197500206950210522913830279570358949144585444779723303218684466351202839091018367841252726339748280564504691581162057046049460088707532186642737081430134718828377563783713726284988705328632873193013213423624845711864596697769926498312964608617055831584833308947185673801575416187290133997898014966773360924955420404118549103337093922862639727653322375367461622832696460472808060169607577545072138326950659822566501870099292215697217785404422777168197404275014619733261947912671911715172014406169658356001331973049753433849004719708436431447950850703911377369767267649260553538588564327611871361775120077530916610914870511887010846113223124703932968065424423237145058475703782941706557824472564977197763555345502384600763026790322333563135480227408613431891678475333678442470018124007844417403855013856635498699317835246290652114118970159162932535883194594139304006449642225729042378493352271272879919523380254182304815861262711253164132594163006894217277789671076054295897037058928743267549721998429312949417804810433521690247825175743469794817375539309722074490093300923584825831363512906634461705009938663318035666280420499913110826652361347789206194686241557752205569596037581941708781882684683050572794321206628006377068370926900362812440623307183724642940752352142634635969177284928043327599446223554941751929167725048640832221819902027680739413705756828507228928191362316243382104934152104306918698185005622813257304611163885431455365228326368413010918496086126177133727484899445119933943493990195684825219888332073985909547761820269577992090806199762798673414870234725852647886191870711122001599134369852060783116502169567298321521094492732306682251674963185891437986657313240634386575817113486042799815040129003849987224164238002403906251939330112762633186686042365441954202556119789646766155525747954238033773482696068219731521927533063353765416989918781482266182321402535518821085363981052780061913430556531466249356375231865946241075067998942334976767607502636839942980962038068516431409622249100967239888798925854639745152887042765315131844512547881361043787032978438134375131550808007537154239623133472057149294198465466070154810479196990200998913606372323602607575323741338283670749543854553780487311455058797250498477456822204139530094646194884135298790192992393866260171544750543548491689705463730004198392609776558702926389705960528840266237911761176969154662448111659237266344863981297088174233122994369975753886303992413090392332619003538830544751677566108594064485007142210259740164943636757820828069190054816986277809079119123535652257883472716737294346305379108549754081142847592226502969201604294671373288298905674342440134995618638298275652497398159462413157479703093981592432529840969521415059514355046903084549774747930339647033873574613223933649309858910480268048732943357531772073332965870836088395150344424752341926398866418936974236656672324200414201867195244610255682708034947344518710962302954373824611399536098159364154446240538183757196610064995635865848762284629368353792261453621657292948183957274843404917587640664344724035216744452070585719887825727660407656150035033065313375984550925509406733163672331221256728220771452578105209197427375335712152590322215783643691837951267463856022390941272273870683811963686980172756543369877136946871023369695398328381602536269243999427726417953856790236140160752488629395811119135175289561523756901028781233776631807355920275706856937933449828529696099981926511262243698595305983732766131970645432621450657683046620123560799523959391863615900486860434607114552202458633317490241470878200723809972251890583677316342278308238440994286265736704557924677727418955910123286785807619323667472618802587232936359239122062990232138508899960978846690306691397025601773479025217893545043795137043757934989176559557079207154583667029087885045877018836775464421061493653469623946061245201568066178717844737270127534671810342684512763524737128852120657523020939029102965833350127380787209061516198323481733776315583351006386792343061879467919561400151654085941997587808836164005664170564946533919356303350457925469834166882998037103486644577621524468266304535174379415003972819719976302283318751639725476540788693461661174769461294527270382241568575519662755866107371606210627914514626452368355746987180138298273414978672897541537912895151909309767979929677791739567554962390991458662053603840416893678669386580467063124366551846371194713071909885057820135366317533284024211283947041955138529102321145555787919182768715392923122214712083607674540676281070056413455509478130777392695601990980856715774891048592746190479995101206934591611139404592619111619058974114181611298982754688363411545265415598835119319177644913945353536045981797454255323539242901800640766641104616612330188413889492247037711342978887200518997232593622055623055504986530451735721606161645094305003154903337313127588379519610392710930752026261381639852282390989891815155132629584915665233547669514020189133061914224829739671761794399878203656907396306388618847762426796501062364162052552495771696361455124886959903806037502922553083847915370179174184457226348514233876770936161633747986885013175578789037566792927007098463396939646153831627972106775287466619803115251012818867227359718286786761684690460042965802329474754419887105276003495235013719043643834585743643173467113832910922659160397104443950638815366687824015195768705781002045233298298902151915746645499644789842317474037986264216349035568280144662638795626964034846575858189665973156294283340232306221739729242076300485204480199879981622679427716359502078960005945435176899504937635757210103257389398226491438762218644169265991484334110539115050106699851051097892815065635367761456325098561793061402290584476363341711420235420360179766593616522719172343854403183038750497879188237853216479664458306479224243365716040149979819616385232250529053552323261696679937874590607259360489877628702969367375091168111545027535724609693068437243381943407530082935030336255587539880315283770578810655898179570946211661855364337241487110674206109559645326867684947138346977271709767070769435388250179133745177238456072620088505555823372133764273247486529935272772991317168642470714016891335403561667810313240396293602236600892817999245159361491832990450425686430463576908371548997933671260634822818216644728422364650102866486605005157851910585547517099638692774944605772560049522674371689178836124416648173408867217183955692557953146420204293365450125707086178388491344040793553281390843684455144850617155465179568630566326460798562181904167553913309429256075956348184594726092634730429318794326637108707443776518973934069868591548989715968676685245447009577873574383565258025813495009304977107038337188433862477582772023063489909188444737462003876899807384452659895725623107371191699098840085805634492299588811939664318777872623899906701180934977030910107120006583860456835746131987410378686324550728093488198061846991553586998327271448983831882136861264287127382102096292875569637955596349430481795007445771983482178964900615276722551052558526275419856609992341941457249500812718631429434171387102785897907133433180350800076992466029186462931369112944836594075825056231757955074140676683703450632533095151567799899569420754997987371637488768537879264480341050239788762871394737653915856821877321470709992204734349958392506105149224214117843154816469417900004085786773259099712846933109204572715795495850881739031333658422908904092163770669815021476468344944580392959930869889383226551162644798760294257182798994406200078458450929348189388461595083363310154108744433332297787048253379731315687968195672673702901736148596061180315375752963169618898661022293058354385011247772511090190882293527916026461504676611940728719265763829608805782107987662258799250301370680182880740772142001995353967914683971183461554966440416876763566831863805273440068267315782290981243992496033863373563629596774098171312198364391775983573898835371122634278397898204676671916415445294539236621872256577748487539820278719409243586616687823267225735202509569675317802675509123316171251010015832748411470841085403987446845349494424301547683975588246958743082331716207790459501893415409918281567233231576080509208737634427921946690514756421584878539932786180658929320939555155992175474620239080441229232331295381821351943786225987945803050623632653163529228306088805913356752843310087116861409237441479302543939248461594576670194278033595009674888125847188480960506529115998690027685145447009873611675282524137293176706132464013511116979631082889159077440999740226180662560452825857941893427981397781498436162826403565446469795487042211955046098757579014829848351827672296514074071580451561679644574463476625328361556736172938665178347393211257552557842757602143796943192256269027816393911309083158929979446191745611146430359153685449228777691773877627835422441912808776911580242217725165177681589185925302160301216439541832659363242935668626284408894707481913983574830450664648358935275412645884328246024743576914217824054574528139163150031631648141101288180925543817841148969216917828284558994958287560245671689333245479953067726255462294104936448357376647213363746332122387267783544376157592613092190912892643161705912461704906371071153206477726769146140801842772559243270656328472685272229909547288797020836438572591410472650552575420479936014269647066625360863820541792420961891893000577074696542051356099434412135825468629309884491510675996664347077299840724052332907642473292452413199591828743338027205468004822054284359756324298659931291605321705441652006879866869889485458581615344862856428298301283598718511255678907117043193447177059713340894945481519242637901379305965565840441007987299397876250816018415596136076137432721858308737717846134412705753276660390304165723392951040804343322033147541242383574735365097480818115222806242430006719549756664069491382935119866794491617698224310588491132891470550471427023595178708039174305305758829987462043760823371450004190552951943215007230833627767297455470723586696765050844712733202376522509550656890998557036317300648537111203445750526590849366404658743746677878148191670670901497440523705919812078831208956575379375613931910364741009284819832187954159181071409498165735631068535749680876715351265421400730142102867344344192701697313350812374029443070620299217740464066041955622121031266125455548818933954616182335413234181122586219374408048099628734238073170221963722662462109575299283677875594765808672620682546695898016241578389548299756758284435915707102539465158234137469151698009986883384540114529169246671618523601848688594234439888877795844372841170988305989563832486410809051168544523273612107438626149566080885712968683852626104561486292689226188619318735257509391025428133270661996624583676640638688307747395246271744828877397668627428609212798551917362297156764529975445840005461903089605375400767823138052739130862992573045178939884457113839883335810789431955506439496519762390139029572035900089880836303952416006394428842763191714533337370349123485497452118388770862738150917897727131708121525742079319179891039503867607190556586773690536450394860288735940582824009614926018294018288516469516103679757225644404007758896091196694785481188740868585616866974173825933277484078136796667397095738845918353370416441268974309634743071568258001283990893161344948538075583214701518591146145197373281362007452751890987034110415085103390886444612081168537418297920654303926844363291673250902265905092986145387781738035772272879439400269483282566622929272902616832507662069224547184410513681188908983732000725362477100511225199660685605151553262238847534200712309821272902388936384054246597025327093365086016128511478445818227778452136444397025104171215548330399179518431476247879285547675657809122360092124382199520259400396576776031722506579881658186707739485870706248170799856864174100525049356196686658805509371178404455435578045580494240574370473319949183591562877636530095829024762481808720747915578130571046736725638305780723026911622178661441263246664618412442246327498256226520080955227869451844039988047647506690503246174169592809756155925665956974961218904920016110721285514048372511105710263238007603614767039915475594802757397263957361448400447840095623802230867534139168638866183796722970630071199845502874646347861047726995186399226555029115498694947072517686069498048876250393179324764470006077760982616881521270396096866304934065994587998228088939798759887103650550087731310982543554665083237717322524172336666002921312718249186523405731192332731408261214037139428723732696258548511875046378791184894379370137657129579258076376083670975434957252374842058973740314255198836299118171400702247928881047296376477747747319319044505443570937818000921323858738422116377566963981280890813048043154251537757072631205852641684375988086476027716818276261017056181289006700694826277293234705922039323944660758462348476901948180653875067166168197122493796205277249672371909122588243767738845848295032246060167658883169828329130900420053626449536319409829394601273287775563741836326477588847644662928831636906118237374615626678458733709240235534632830314780684664504477635261945647587950346766004425643814550350204923256652811796611394584208317230039047715842866986846429500432238161522632881727797298906933431631001300954507045041661832371292775820598661527764520149621557622115122540682916968417812213908372150099094044630636016096618174560772712549897445311645403821754506405079122460411995440578769307044641056975450736837015689082576036942783895350765250632192627824218763725584115859873192049408934506971707550793231194171440123599739160971942669512693421586433231844718149970453094907978381275873331594219342834851304028591318023301548060803827475538400866159405354658504535813740022200838264871651830079048544296801645118396474890993350281322547389746545721675246869839081110188166344322113501782741455597849783093171317690503650932632073348480628665285150738962684073077851118877225380397936519828122868080835917526832951856857978541759089219753827199444381168769993573773992696620623810810027430272123286664385262089964827152891619824215060937058004136978768837013092884549928459597201399467232702314120089086496895339381639473211832908890467381906508109625621580671439431787448140290913071019256207264753951992329487085293978697880003167872136113938538963785727878127006487319612033589092480302034568231775946659598997871760191689752278750697230485021591078445617481919079597628164700687232185895463510103039953796238039423452007976571171987871852308543494392156381202025991118272221121656813259031147638001697136650896555617189954896858846360594779110865974240936411984809400814060954030298543973983850266502665520994311290191083010095790856215508112159132163375867469404522511382071831375446001384552511109982062304187928176197945094764634148158863564720697404615112610577773809111718704928852726945018959573883326940917274123362081370813801616845702995415540760601860863183092278906271687165590329384987876804357861719700066523280183032353956240676745009517265825388417124412305735060851829555671865298623717352252646220025379205156356771455380279836810358236598102887287792186107866828602585048545422540666507721677706875794389481843216811703915798778984372814652366123472953885988733922298396907350278848034589724961950650838208550164384920887700038536896203012595783651198356559432210499089492992624219367792316018163405894099459264789000371940930776270289368635786925989852760650439157654917387395267849162717838946199765201251836671637975895383565338229659528453606417436105640087137855701402712808168891076052467331067511316449780181679932025913746395277162793634420815453578423506571345052821468324170914338706921695834934163686311365325778464073355579262573615984488283524990529330885995782390970576382680703909472724267815425803469856028383221805017773155293502745770768963275266008853468212887678463526721895473409111204763429323046674063290248521561457729070604026924069354718227986679009553406015952047353637351045041800857090996687591073418088315303763263898592388494904603239733970354940651004482303143183271818681437597674732281704521595950729636609621767790541324360748887528589885389526685926830717763396048262602458137273950851075116061724500999893836315298839610714418606077630094189838020819066071829630476805992262420949736192912483245051655313286578589780469726015101237709067802610771087070344696025458835080215643663475360004377123258407267161544806864511337736331174579463347415245350128472920475752277765466831011543104199441859324139248058029782235494594645231221064969408008424139623534150226329243827522704026070056277301433165045555898033687559645091301146337415953056121194613933084176625157473814553178661519235003945146416068208138560007527062153850795016042295001041642623334010184514533376508788551895593560472709728944786410589432341797032577301586160135792446166524759033969860785409357118898852666924920816147838070620018238428604887466613654447958679573725440471984999073055445136202450831957142100077078621350617206077340489676592749498097111853196539957623481172240929492587289647368687411317685503599913228801010999250719563086163764829929886496090921809466124963171428883517579079885751878414501615451338704105143164221335784356439663315162981953995652467322342513511201713087279658848060673273453106932297237707679565595091603382611149444672106901445827137607449072675346086757119339905909131243692952981104664749839542370920961790370837243689960483996578729996553681351560132357594312402807498855365579458859939487751077069219671807801780709105238510265884094667204307233574087723245508480708310091536077120759599165103981181476143664391706441267456241012305900550703989393317229447891606074101772770639406029869692602210485714961014475617809833341777839868454121165466709110715704125731820111611213708883939179364672800722860945306338952217556114827241511456658784516822973247426106276536549859587032888666424693496902901351779076042659058576820233753182175300766733160661941830502860929622297720921913431399641750732887015277287287498344066749497325884434884887999356267854046922980440626315751385237454629343536753212047942806031335350098072264744769420989969700616692710470046671695628058833819533375097593443102520921739610351009855870793903048420296711620339330541666014396556415638960521333391210917838371404245692921642341809416734674794878181836089425239504794333286190926144360458259086727173992193124451240253452578392342336636236844605343273372944844338646158153381305049512351248821036123133177515681424716429561311947071477884009659803640609393827599749471800602672409206479058950920708282232019679389660429036475463868387282739431459142541433805958427631493972549910747483568673605746775860423653447004124146221406865390770201799304844737846677459981341390335905199737292959820393609035620604456677771806515245279447948390529371673934127854001694738665648749815288396395419899877094405932425705370579873768439493324796423433715680310240134659945798101643323970843258583684255148307230778884263446496594816083258316471318267363084686228715718458927462074086678693105923501443884634097438578949322610753065189883946220837894847099956808609470041805728794781301926222835724082067377665410889003866051304498841358233415461354010768655844869509607856182550394754791498650142746052928623626487432916152076210543034638153633742115777032303592294952837723125488880039923285461976236773409593362367304083912406275132291896358301021112071431750828092170569531610059821625836165689517327921130355132644198648549896771485465649720596664988930106570057962887879677409222793565861358544429954598354219395608147330500577267204369689033026268520784089422061859480580848841239546475207237397812251754020935326248917001773137252301422300828243560976198395941283963493752169707948686366800300933220973726521184987999485721587136081130507561322796344261538734055065248061645355716933493529737508374438644792296087105237025966866717966491071052415046465294661045114387421539845947067170232898850885803377224497855612283886735762626014994461815280934168648214633075274974100611447184915818679710565600623315314114267505279922286226577804485796292309748048098764273185226589447571357455744683578781884699202951647633383747105485430714598234025320854158021751442079214511920335878469209601858971494874415128143383518512500870265867192972347262219753434765627440311832126250477639766206902824450293585780394009743487048200878652754554726222789630837597963877448775041142110860245766841072135866442665641784526068754347660354451794636082144997656229973409637309111351365486471540281025380142434631410328392399949751339192249305567734464411258876664621711653592166772535944822801024778622311001103076480504440552990983158264281815877493787945147544495473567607850701199097518737068784658521393615146212279158192783515726000581880782102571020392885741973703825671334565969144986631933044085875612271361781957810562366412099844771887859006022054194913405769503324628030696798121498145278069517406721141800506613765703661400400101088362806208834012619932316976946318788972466554317561015983575167723851924757885266601403299847709999098798761126681825916800974189286344965598235662308339373198566671570264837935988215510318786785526875164514964231259045499779603035777531667534805987565748667836013018700544676936987918689837245826498490851879782582383958612519063604189852719910706043988691559492024526440909263841334135970002064035710973672101735193280075020108408052521153709267668700322145131517880627264961080192417536928185013018811815278783141721322481657074998590932698428993776494892093253258676008594816820545465235716675323272406529244459444879782086281533301068528049759042447977748532488912492908880851676132939459800668392787676745952663704951306743482823498275955703794498907866325789360401427105910479726260717239406213406402283345862847718584291741315815864774312296238223727078506407599260662641285160326819658301332591106127639638819019236668437231484932403956191356337188866825252835189087267370814697426905757516966877679925686219753330640059941180803783898695410569418499032332095413798905535433360607379790580029278118785993788491123391000913817275312042407232503916138783973992034105091892647156939954315341124756298161809167621285527627304620742332007325332311788235479229697625882006649462064009414722183533958868361274635948390396038233609145785647894529091920926698870234362632379417323112118223935207632733991210524964243056687486936492032395890544077542204726361605216102254069903899333142427538149019991827509511434722902972704673011816620112026300347084631467269495485743503006015898584224319788398844423249160705047957785351549683305089874415872180798215639428037660265862140078069669426297890852769261802683909182153937567886913600439377955513273946892973102229252501422819685739238325760995976326046222530244164400664233958438616643823454204806689714065075677428894677242703276983583287172578684887396962390260932946999049005849768338499677933422996277018501024090446978178639362638840150285561614094155326464746867490773875430437645638919013822959356115608524823271223483352474676070838975458653873841369266536528721216692224339449011389699604441502056445898624448370496354215173515950256381375241443675252268738097290502686681009025738458812902875586888267617574376909465146950139795898780274630830443154537337985278834408832808175794634186639595758991487076285660206107362371090631479970035456980561863449484972029156417361585931387517436874093127934609206351605430279644996909554230834870300410670837473807348539315411133581052986468615740294182085364013169549388753909578101979577543145125353963559238284470827836609654506033191768624520000174935239554547928068912023409588831050965727310058387105736521588951744314472150725181049230361385572381375745486925595059139094850041124945742354021880099243011567559578752074189729954265440184816413668821012767437502924852236149475093968044890545832799200540440375804714074755919991381655089010369066222054003089799104713176281455095492033032039477385611578594036353249525512557360183314531397010143871831129733200107619553006053523733468730852070760301181127722103437824285494390433548811060093386234216611035625073916893294313267612069150060166420436790629450479599841074057245524452141957163004128887225837185918791892431871606435164697719424790763377804408909559854803912664763180091894194596843366941857430086717849758749897525414462858381279690794944211660724998092361236785460458311224101046559523510353555127006724880437000434819600384967868730186351493679960290037315686848796177523683223069881080842540069074375930466422254085131286253652657166416778629470683170089754855762779564189709522276984393837771731189917198862216734882226035910784359454479001232852744400873986004858898661989409304390980120988517212700929883877836621472479588820476346256023574411974242662199059175067867766998041411142219502823012368305626578599285891728814182533258409927428034392404438320178651134132066372750419004594791502993313123938122351575751563935540608492315902570533047784882097242824969017633073212766815474912313552560012712773825550663098148462470973545510694581519822710358170704886148073905328945579313296240240270261846301420963338097377467425848379219900946840580649123122362118855651628929080438479185723933373426573593531741817032371037290846879389580770337195722052068164933420490921693849223503863164544137969479750404571490298644854182524402840013313725560769726345739667641036017628795030726917717475147643131167518878428991234187217813113659399308469349912893974713743532853097055136768520188519205938463992245093925497804573092856946498502730774572875362099984151821008675746572050389500874407073136361307140134510463097999194580357905953193825639594033896419611084461194688364367005418641411954699240216372403147410113726720257494352992374563346771106598048761500193757514888948059290906541773499569602745028967666443346523756324350630311663063074575111858993527855698697534536451799764513685502561478890394389471415601367316304022880479867605274680575412312120565126016140227996915768537538313867749174045391221157513704343521281840619236492060520877378268933119638527868438565906341040641862140779622087720599892149231271587225347929849077027284140807729297344692871305231845998286207111963283393221383788698035829488493594082775699832072757435454943776954005057194498964041027704045117893663262941056700880871050441181446706555934371427120642856518542269053073470088717971138121504029696914582707657492206294087198347782819492447866394693701575283900564620532906240868327130737257007675359526394877470275800517121514265045762730868361856882359179230742974746715306674206261164878626632002348421120816571296346104750818435529703308056672391363217926820057119953123362157943827891076930123780863166376693467368437695820513998477201189169682051403266951918449593997578761451747698321823052071208532214245317330990769764971935086462079754442851500016782230421072161010945735264970552264048831113353561071318654832129909725998237542340684379984025037965841925662839406467102266029987631544484590244758773073367250592186374853866186833376873584557120256488134004437208860571579389620873972038823085642772864096488569750887636317393394434854929810573104850767501576374343183686845555944470500972774651894534141372785890687484682592636280120267179683717164277764408121854379924461071454838334405692512171005304173457060638001926139782780503122989740656642040118631609483322020808099365890906539804388857302310516380441327160549967853015346056813534732025992352092372324535113529267429326435050237641096805206869076536102343382971723346183475453968412706669383759856130716264695773473325193206475692154166024109070215844578006262695119424175723471366387168396118684888282333636382327429068896211401310730111585990676325468060853355530908619295063776004563313715618179644781592470830623870111997573159791748907602113014177344436155302281747630048606407085137165387195073277377179373074074399391342330735276605826041407414487738348806442794881256089643246272826135539623847498139073255264317869034073823365840463695045082825472150318413696526695258159855618178548891415554844740656657885216109069273544776478815248457239111509899339214668234214395023610435523344224495007881430605531684704383370347564092607250963848322138890842965168891226002887820591881349043689928329932358465859603350562346914258640418655068164454620105508637572043701626248768015083031672562362008228376636720649589203957657451682921237416258356810684761383340965868487965407546097696423724016774166025835277268609173235444472522107444854343770807860772420055210763518994443386895169070856938676288694158005003578472543046950853022467761928431069175647941675043836483703691599228505377276007399103962402555819239512317542274008640790915956560284229627066342319895536562855150333826539427615076090627722980631044171108447139882076847947655740036865288413303337137385370551823224310985296623980407369901234415142312729258228462330976878032603672742991567070434657238556080557603994187517670250157458023773662606605460421586925876701689023313720674285256943348400422438932088266432886363422903675741420947693026745948852259306126400944059312287874896457936059181479019006038764912112198383563810600036798603399275858326444199813821004628603827721339630938367752676807617506852120130800306397845042262094180652534372610990941088326659837048767085845352071607395402077976183264744181673658670216838922405087933167639140278517587044757325966455103870339531965229974792985789726801342780936001325334172189318954571423925195663491727326261950655186923266832237669623321919769800553506991208117404345836515705270270780486240618772479061482358916019727987554650471345120623824400498936686928016080625814625138069663932681043579623194825234496797690536089352903320390809473373537952463099890757494381707606753162982833895317108162455130802864296541798482167661749849273221636303441220638401098275248676725972898195136913523476106835011374368701593901454408149920294643101983260179019288307412762637006210942990262524392252049292573443692893375131319827439426523816151167055053112616164838740968093918609925809288273027702799672162723939947381618343981831186436406494788623884776007937896428904951070261596326624943126025272024292795137065300502836475669451994572878011753534926951221996864793335014207169348962752309150225814105466043868116119057530990685365902879440323036918982860399604284516819010979276519240448090898198288038020078800928458046707913340649888929042047092374522405566899341115903432596720461822594857230230851442969880376306743689743751635241599343357324193674133231861818402749276106027299920096604866833929868067542057318454121654205134096882812683397373190299585663711497135979367702156857619907244478837031106571228408687158906654659941287022076376882935354930820469743345570026472845896002385019453121870193895736484829838851377657545226735008931690865093654150695401588361678849873226155138828483583179349629362176789007006226520279230939618976881347911414023560075724427730373885433119790309055690990677225909506839589371115212543415202111570320657355839396785994801334820495453551002857292005602220359668198617585657054808563459829585537577111309492852333924325399672786134189843594594720940777967077292240179800889158046091062230762405240450899393227580382525448524575507624683588788722542808659414582571320702559383921300365390573078058845750799604179080084163411011886250101264563236651516305010349238312971887504174381699102708035017018953654978592589481709916531880886861042743563701643126565364197250233978220652714675922135313717612363259374404293638616242834571870349057653924913257728340325971885834069540852622635867171196997407101819928980451732646680616783156920636717120900988023195343851420221980163613196462224770811679470775417371507393466158007854135286440239103184255129250267188600669759330998668364481584720579135555010551385779879180240207138140298071869313077386145118693429041507610045759969237429259671379393251057260832823888600501233548758466623375349481208849760907438950767537588508784147928579727634451210011146084299111985483234106008554943155653836847010683102070872368874811509600559729903785559928610156660794374325752361049728935129425727797753416474269233040290173912687166600971329101031646660771159853380662511362613948271167326572053354830165350348150955969873011428201864886571729192806932163397187024828970034362125337135575221348502258531830606209758075369631295137488470981544957502575257259248764602512693059362626928046595370415584544077314842855014657989600040769893042937728870340206027226504384180714685130036152349271041806847189724591154034494476557690964831181914485217997046807483897742566313096943787324991737380457700994281389903540808471307584095457027900773690530600747011583940961777045089768920929818679167899206535582185630796935744004702470136053779422804532070159031006328278279250726183379922459730046710717895060032078098204984549359972079061493734117550172543704588598550207822990085730847849735193450791906025421976044645002399908974239141546304455418035919394318071138482084748936020722806643392615934526298440951362120409780510185984199229839599412938739331033261364554804854213330164001674954443156169781102463142062522258023932763451375161352952106230196164206916505837225414467835587266989881012585795320654057363545560258259110981983688416301714582970684809950808020313523619367236649103144115667167873713069594884918634392278907486859353226344141668997019580162877415542239419251055571680007693985192158788212455148894683757610772070829589376216753208971411658324833133397976099149370124930603806132141173454820190021335502972988334441258845091491725871286966259729092704966415122258950046177891203724418124387988582350213290924776967891552104067039798459871808671347445168273836354664681591580900911903486330692454900261328045704588545455318036032656351442564569437106461524379312522173576683862876750200905492699223361220254100120842950138073026869464655493191078865607605795026415140775637293747809830548477164687348526265667320574973497405531592662970967412657960959771996038287835378332948120073090271731975864515013371675602870575120020678297196884344655919053741622995046069848276590143199791854192926793481887245029063734472634115381376834717954899212438210103288497577502642496844582381140787941421932134247299905994680814046646661188344478134490953735276784490502634257403299235433786732638422205682759932988209506138373561383091042240958167755895626962955618961140976433586695928325291969555292840600627720834000538815158300497484372138617806281900463486223920204020783523008802111770652572427361623656935141208756922065840600600318343288635568505652520519691097864236954260899027015171753578647362939078687392792000734082710815343429445440629947611648241650959000628646695032691606761145763040647562799573368793004425699817059645141897901259466311815623813642824996968168923557804672376430632160209168188885839774889564354558199359138833008793864508408633074298279710145990878314993918178534504077276143755726826340280811314144586945472693711899133306382255335774979551570829777804738980678830559371463539538527767980439816060384795299922936720139320914426750323848275669386288734816361848812637042426592698600162906959329519470071351119025963635383130300892948310224859358569377121326746340444999254519997812248949954941546560858839092476516197827245814319944020231201502427550650391834547145539856538516757615228095659437731987651875545269818775547777864178838734772785029068780265630795649017073746606699063919756953393139813772824672976670608153797040096256128537983303489550692698480894562429723149256765258543713106080607886075533573700908483833026117219126357523670962388176664040303548729933435652378438860294948165601527096586723769839945104628308924986529893957989757181220334284173628142938471421062636649829403320650147759551496026123677468148791748524594838276661729238937144654551820245139170252709165864225025731868620494700800163473641655548950681797276552943742679886170270698523073493726304437257898669254764344063334343852086571341982290857649785904984462742214536316927028350083212652095240652702415783210427561699947518964551470913869227794967431821105150235329742774318058424290411539691703181810688512167272932029201764624093126414585603285716450596547880352756924901099877141452746414196225915099325065288179577397417591029670667260406954321446909708110135072351045439529982038320925078165591973096685163915456356951316974895645192829095536900180645287923006357630081401776697354430502350220224569882154330052364149613606556971917307910276884162192217029640021439711624660592428090695651226767484405225438796983535897932911532624499119637539730315898568548612717103525820505522100178924435683199193388596890075647905838038632677898121268547200670407632507837371748134546954641113160015573008878601628557126124848474839814471807188345441128663045025053927536658193125523228453088363005794342750579508150569519909282274322109986715080664027284437015730102077505742199969588471757333835824061513622058743825948878757302059548196376110917550704076028419353976888549635961877009707254144950292003081169153155090664608045782972162898113327178763528174306921581365221579522340501382614241910301365139063942694544134628075557456895639243447022096890305625808933337282085387771389358394890749551897659206757457868447566118203996341683682443589400816617624034405402354687481169546614519742647909622968180140872683766472386964641857676367672964261061713740771064675085314410983017162336256223740491728128151549698141531559992105703481183178769759870840652849354077481051470316835064542490372773350895336094196492224549385278520984290709774391130615149643052786071342268445980590954098149187016503214306683477375126490695628325885589314060284270547677000839958217177632052931535050170163087908475478007002157143279128539096171493399040384226167368507652009118915688238640738744195269414061849152425911504820811971165887938904646175355312689025287804914182071812665931574233870167683870520035636565372758687558798743157953042668032436030575215999596422550078653661103462931564315727483892031408993103177931773829825103559270883695390938080305526020996396513538222145975796368946640482483020658819901091260828257031309346481991810122559360144737285987253630898254845405430473140890061696928142791710536831254701874991270244154942065324557483810737926037319514528952867676480583583778533558182112600465144384192377131173628585999651542356600002809600819892807506182410616370601120132696338932768061388757186149313339198567715544071585979414727326464465778335020259820662611128975878503659100783860782007107549952975459006155028943608273212718943377052874243792492244785169994129174449923108782720026384502064929353366268629073963698212008060058343696040240286263240082659972050172692865024591007766881091602494887098397641501285193350487519445172154698888813747490532875732822172169454537787613499707982397719601273630236911617312876126771652592618858378558270316593713411960152175254201718274268754844766299887155279815506511527376530220263330662991621815222581954353944519726947437534323487611085564972206310785897978653521474937775155421658701291816551979389423314152750856042165851197496138928432144774907481385599747741478469920788518783325887289120434109914995487429153233016343722461753052003803469862888495613505670168940776408421516785509594533495758089629791205097815131100347487469184782494458801237728201775662564274116286278488883652467973466522107998731035171228783795404514501495847987092223176377903969638982131935008706219657849917285287223673528519553638448082760813032074509035538291833734364174103171496732761468760199592980167855757057854065863580863846104965855662893832169957500309262288312821471257373655054592830097611670221028692396912503804869657700635832809303254574706442441461630590787236993147640521438699134753378037624931909216024643271055925823846098198469650545894702563823717910910448501005574923190823029758028554582053997870648610315275185327536844056739446631478346821759069511891563230038426874285193169650349773601223444608914526970229260255154349725562277461546806514174974321576131155200617670626333516682278772201317855770269803407691028787405136235840679863664514312662376940165143987267692515538298067979348305151943350113995554669490645483693886211272155766706793589842148021861976584512349213351062271071765567970773336774226533139229588260110871733238842742955496920954558976393407667398799891986350445770457384496721031626163688144327157770936178096907498875715075436316684591051545528824083965033522301228665855860701266496782224921704432562428593245650353272152583135215604415747296000253032791345860861090910910115257396952035988713043060914263172630118219267740793000348572318430567427244118000638568488691850009309144526877641043007921025276376212681806060742258016634674950192966726471966863229840389770957330171734210963747616179334941512974603283838127210157601532955740218580587234823429914511495253784422167428688554448315795396768295675306385167503429994994638950565429478606073583514229425359799168347741477744657740716132691193991851241923960041227901947696598574280228850134422742272712953694602069515094865178830187007382425703829205219174929455893370808338315749069751843460097740478808326927926345124426520452184063029314251157272700966154810836088699444280340028362934298475508073110649459988885756124523185950567495179423465374036002115178459461582600600740047293843262987937124579843021947293118720545997237076084394572997083895092927167416962925925174326335333546483642980250201395860256059872853759348821069206493120008658173919527595607727895350063482246127866180671917179411095227835663449404940216653266752661815803136198000110403331414260737684223072563779287525857037838118824830633457621496783404085344526957985833992150643662410068861591099634663678696522956634880674966956323954785318978887083307310377753104163253892940973393166068098569373758607641045954469935749178829164832322532809407853246359356379960563563120814745795543947425637102199025801998968932340557975873359283333982974351898490902230696932956506278417024016404473469793534398018866544220058095831568150133727289041882039391458197392410408587815107260257256375000009541915507663972163518150756632984016738292772314097869136870212258276221115776247264558851201637100616391664801157275254834755227384798923939361956241095129357087772806923051131200072716038233314373040803102693004552439361484227530841140846749725904133050752364127386281798681953903775930580167890288261992786876204268264180343091976737093872669163356205718020981199143273072783928879928394655717823488960059306289690551060244144408096993953752320839155923420849899974985758172615376890986316315147002491846045677592769013846134060680290600327259663288157533523778594174770926406987149294181536513454649747444359777266307926385131509329803449496670010606339627973098075726034617782788505237301070008317819102939948070063615393872566641624865263505899554652148694201411017956225317335494370090235660895988009077199990756062370283256386445169084041160662780969721002148148772654140859472840809535670923285591105383880118249545419205789647114570851258709988479145011783999345319292361353851879170187128548864666811817200790154125782195586727191273149105709807550220478245743478408425774074268818112223060941436816481617805926169031242700351407328534671285390216276790370783812955019825732963146329803778992420338810827788665290054517751071192396319042056649524494858709916472424410678764639502453128719202323163142070415540819884268878599426513026298082787907987031808556034264240648057296357971350270981082840856703362179015183344037230316123672347739914181537631233811010020583390323267405446667826336184671770275130883984575561275987678491005623967718920121355731397021655072627777267557171178317638686991730806037744036417583419342881906339644375747349004594209979249163443783794442883843945146421928500312848605091944989340587620347998706031347797286843251969445132008807386550093401202835995728922609728289995761891077056580721901536379826555485395122433131724376526421026850743748895120368902836160564720419411019465147946179602362313258271909160176638322459738602999336601037525282259379130249308751263216458185205394302490484472656124746485290150041445209723147495522833449820558108208211740030301659244972730828929124256446562060206615154166887888554048229393488904675590082356207650899791005689180946021394867460448611317036503723988945096988132240171616966169305145059279902292104529240563880932904824013020219147829060127526071812959287802320701841688221383413838483440785103308671127804449942930697400168203462804740411556141161747982552498934982777816693990021909418426472263368035158558700315816602790980725119045358821586148134473761442708018602508751906715579506787857313385451051651350001001346418514012486060484238006699327196225091647158359658948056133187963069994819587604703122924692165948783581269468474705414601720553632548174580764729473816361759272483645038011009862342586118147205833657496990075829502301870187826409182985632093027753866377231079638843753491519155695608656125163143998659847194559727829974581765890319629970948424839056339381640861304668601581162598124868456294912922170283707428010657597001574318767880931867352760688359446391399231427237846932752887060866038258536649968723614732273382789649169472419256665137401782669465606080376674032233145386395559981067727691614003639478870430139478640907861853687218098988845935308760888500994412387660938510440078971786168489937971246792478208968941528651570090105883504817447664401962599103050993370345433727241059488876478142637171831202728730142867658537289210095703195728436358169953855697339995003087471349161419302933304066379946293593831892770027678562045010112915792632973351298791319734545540141134705360059256791056462317471182964677969431154802306272995655269787310314173676037273677142757476321717923123921555111792195450133446941164561453211912738010302100670415053150043339972631562054532943090691781720937450270149526074754052910940550439351365805774399596579707435849411146709996436511925002551762707420890344487324572875801573440255542612356282413643466915166282821932837593874015976926064615665046675411273386696954884752587031960911351933095577687004511825485498939704131639475713864719541080239378741942397822476655961422983489513682678240218093791520911472242720313971719866586432513395886905672710566755438944485745829283827847924481224143216479045027658662089988151522435420476379691281442159993903860077504880474665031970744960706311730595367924765508606309532615933945733615767494054623956881741834206648416637498683782738322517849847998432168368921655781366651190800213230952275238952081395438220588055638029975938756413002333179300183515934082555818548441469733820084029819102739772481507941798980220599970906960787991560655359846085357939482707005357834742383374042650734103434266289658648181843127601237807242239917666025380533101017892614785174038758400790328639896614952264533022262607300408368702228497932621576391311882100609407849590810726601667862707801770517217336768151173481844878675246902282560677908240478544530886625262266777110729799679046567671606616850299217859069454556512966098208779702643834591284781981037193713169238460910257496392751158689430391008221610387072586638482388232807886215692956178872884446636600123183359262143378857182597162700712884284634188717436556880624748064972126490796142978088195987266575071450641902651221820141383092434318351183393331131760697075855799230836592586092728922048098223661813480399849656203658491193782989049638523712676743569050766037383365286299096874956124978240251036848066190620958710075071921551668707420255499485685684989459861972716213750779408545370635648667757454217500073495338555657055630019465096904333061295634749866166505057386963222208424303205005120474608570614497474719571205028335254345928601402128984557713272580036624295162168874667754616760094685796052400559137564792435813806567329702074980858184061992832267399770110957456359925409926925888278830904913222530213996366932899406459715719053403935086296270702660235887583399534101223315807233482719509227909031814638983865340035237474893513273831932773035314440624707946211636629164391642660917324868938105457941900844492784278813777291221685187029825949991241411193632982149378014207206153885799748778833879794331695499877125671570643251259175405328221328902652995191135589645480186959786538411470046554613460115737224113118181112175149047011534488357401223579983041488293267445790772218704110050453268687623177009081971155165982567289724035120144675102870037472708873355122086685133951587734254420937390362476310066329977945550863814107233068123203270838515224198597949699496314114871197054389865970742009014211408242646636839382394192643081417605053591811705163659151254730255804847911961449398460131362542161220808618094200095066143722116882903306390355506449606468572518200701258042391941150922393638547605912042303337182353993738765255385204193713189705958825731423058912143878698806555034358536418957929727758129661878786976381521852676499267711929032541492820366906637879042336225449837541426797734361598621056384585029673257435139115737113278348431549660082355315898615245034738166241575698859028904379841369826001678555562433540641554099103516034269672148751228456340986723582472391775361211792599767996943034725420652170474626548426111633314113626388950094108670623097959500570101411356701843876557401491521266138107363601623510937325505518720983295733654648012626434533949554210151497500285678885808797172755581441908999456210880565934813481926580094916619899250080356070581841879276456924077140974974596489636166685697053075209096239340403566592285930674948498564929019751654531552740290831563104756032127404605448918085980487273681006251550628761913868017171380647676912950216346077837672786170369781751134101087576793795419127978163483649147969997808593890360157974767475821782333390686288181387596317170622982130217137185293618342851979032606405257007952510855311494581722862517407731108216271255882587980170479825903363565087649100027994757546800366208658322039095958262889458281854276410935648665716161963197852704256488234730246326179262353930767272446012024963510017244197986855589447791968997395777172621707412450831722918682635101697357667112895626415042014081685299618495457593373854220540201478247325118157156068538004093365371700963007157948390530391077293124687898827289556898871026925073894846006849620961560856493986202206120168783243536789093035665484083881474787967351694060913866694181448838777282626757015214390246797966863703609916249511325979967845443713712428387944366333969228367530995564694784704539542673290630041042533448258036143370037137341365481476131436851510922646095234591375960500017841386891501110183949426208319396738669165717867905319240146856024628297432352820153344852033464836083852142210878441162740637893747448267752731435936747459036701505266735087147161478819337016953820469028773229338440360734165774686894974434009806755112894138315192650507272694302088612599246171818418582147132287826562497489602056205774527304720970956116376693480363697611082813897056994996350815856539058101603021686558907558664835058642368093944323579098725048148350272233840027391896748208851459504020116954174492187213497983866885457631312030420674463276984846297288821774667873566586412867601700592410611076017567413222908707821198122517482483522593254003324546654916386198296851628797871040407108037359604188083881521857909201156693515622317462133119055917167800040114109015743186800595409140589987584440182648960534993851736247627312440602182045629735614614268602633459596913705573641068078769744733155901377990324626670106834294277820311207542301205764561440293713428835171493508722040748470414334327474006472536635695028479299481706164544632883194329854755808075324590810468791298745198955572472719218133832929492944141324731973813280654889115994467201802548418078366790323695097743657283899070764733862943775605217698930822946207523830260371065317803293026364053815577336851773572161880822532599452548480746533383110099861312033910859850745474576570535922230697169206233710260943374522526080560338324776720292561807109219954912729400083478851656964892338111480701002900011274585084327990850631883843778512427659341203847718326781715835975874107034723735597914997911386282907873582705437916640518628473977511138990006019263911649496573889204723576201828280237377271929884742292403121851949995451026699749564242335153116044501274848052601830643848585353583040901379297700507344952297209399491255009312322875447290651460617077022424276553815600237263910341561921834028169488981626674090732747553371749301519290428940959838883114581944958233769533692347181115362819548482749412490927438942161111478691525022768210759999462165958871146493612556314049303838045424514747328817365795834689665992867179169709985101968654982716878663709489260126547470210591819437253192162250842912551773250838673556102979508732270533281888189818471622663264268026868327319475401060117948620194198265197473038240644178605146849195730544052679514376087392918799991121912164100710766827890265766421635526083905956905086860435826721031185351889455012840189110809220626157826198011765074678937558151135614746138299912699489775439858270954749132010371404970477319260106581793558727859860769029383479284149358465090453102254432001411886699719891622490161557723934920640511915558068288690327914598135623710973090263815795808972643862155248559469563476957575227495544262473320203715363435277182407603726841152775569072932512274401540765822328244298079910993760909541327954332927395700626284312213572122580725160287743707528709682240437657566156058114132782890740942977407909863573292296283114864520674154902638721728491225762711854603824434956170663959954285128722309636870785744744674891853323380341314407875136005802200949687980485903947385755191018483199158358166118746732263704106329191439374586468694789753781851942869878477721743997407603654189157032296498811055168233587545516757893951039211806255279213524159870300930663818332964108496247887508597741628441868720325401669236949170846203369906628624896537196142456134946091255614951302154349928659257924684154210640608184276223202545303491793217668771815962072873355562985737885326200529293526525188061256965752358036343886316563256975467822703982078500327350955441996903959425088015438072120208824921067185578751961688404884983213872979955461073494803605097427578093486459318676898883382830743720935144018112676716959767538708409249711467300130964376555028349555658140044625671166919667879253236200908300059253183063561834203978143359886213447839093860221484382547041433573977775586792242443133561230919752586019702421799249458956151108774237089772373731560382327196968429318535493575528250405629779636898807808008213229879356173067397824230847811459672923751203828190799610153318185509081623367136751668154528009336576250809893710508745762987269034705972507011060056643071673305125080354213541659300225230932910787995678029594206868216360228742596930544185088072013864894343615807774979253913118277212990433980018397384046387134145664112886287731902453947070285116689315048484345835779387794762111968500766990828342205638932809081575618236713134915227424962071163886723919494964216522461354511261874053880855261468679492239599122453642704362737741197657448737499096507265928099559416664581249248254918666649442088873400377903419434366198369470000903813977621153584064055498317660890622424264653931690124900092321123329677551705467816715119132861603988882354718608650067061059013652648232229368329715914592869620861657417095330115666184223272189992388118902824254448372757637897155885638900779282268299600727554110861405520905117695037209217942004764706424690068731365251355065335238602281426063290171543415139457498381310266572588074460910081706778126079817190604821238249021538867796312113022155130175790454913767002346587155960692981423224213513306550797467102873866570276570303124212302903747608640484753156193323628484200396156321642848437203872325995858981389137813203303065929213275410904891782345386795996041015496708220120770952126477041504598124762516984574347732119207407054386604535319873827945349853154477227458385167092726407326688134861556140769528462111956152898500504430034974912053317851106360292269725817885001986053828522243984893527985637451958230859007857514159710571688896750313668973422128771609357897226060105715188055956224680422922583830371400231100933309463404426676174382527616009717537217898471804035831347272802236307676323893257120533996076119104437831103884583974448480678281187552659028326093533816169636133128917113725609672791063108368675933935398962986198548125931915527895570261160791921451512726775963791403950916873568075776366968972154223109418448723898880351069085658792410298185238354900286528628601420504820792365089412668114980274613695862620234168614645084167106842340769683142677157139913845278822469528809699797979593884124175002463026128457575807327793773558960919421834389214179120786508284950890429261146678522259777443453344874726940048764039321659562392001907781589527515720402770276918826357902723433938347257665976422477503774550327500463186754953268614111731408819952518401927059979100888990497512573600163314124450752747537238655695961808979824447764326112545826384211626031305038513760336430619587138279039445529402162593754021127351771836881082961672988600489905595035206813968712645671935867820457520410059460067078966069867547744955892407975257815984567354128235763216096837394917589154123376067679801108085513463324128360226252059274383319881231156409310642854105574714869663283022917672975766102828096784261086314917261712458635429149090673533477358170392925081401687032214321778759655279593273080413834106169501224364127756134811123517947687260336449263873499346877282311337002477338632144769115656338698322612622024265964379823249579114046082006015788663531344508495711425638134440390570627166703984945435730371009566030581711436500359692782545642173167865129803714242039263497707492783381380475666115288457043245570550629631754073835717846612081067446741969856536692650338831606932345826666182690748168423513403562526875860530686804669213624474325806279189003741435127874335684293056626251874493058326608999963502206917244906892202373395747934399863323933562468388074204380204332413854409074852950429265132464600614987396560419061914106013398066293476779721348730817105955861940054262897063703099400222529606280626758585294776411238163091324610505283647261200677928378329312173656160108910945647081403934690403610547483800694950549618949413362615562315145114475049865413483617119658891787918428568403783233334686225357928538859567206815720914451227268151280379744943570011013311041102610959991371951131471714702011320010631678639038667266797736541492782865782182976382948487738013590792883278559148563160968749917431512773676475030102140728384019126167072662004925875749929233151125021142069180075983234193529205195288838605758939628936207670127357392561577776621197121404789504615952272449176020502226765841795095650751962764395583560152717702426491740783426394405405869890219898213463743359475166439594090331768932733794778196872899161191860210641375617787589399622570555125764898163021472338561336549536930982839062423567513723498125572749692727624802658127512316600682251010389788052613471927575648877541641904012700778055580803547432366486095305054715175776116602282712700017120751283170314373103194233101139355908101836588760926519964866094611263871062912912381212821168103297259084947919462596532356550348218098651007636319862622166940041108744183661622435585784605221928579420233313098717064911220708584616456318133775699698364339395151654060310749653557482300331323302098186005928322694131796879595578343620411731646679519383975099272776538158757777829751210254055671638435966811305157669134836030281134610387362092481734993863649101979118396963865138912570208815690577457523874564125815125059156173244743187821355627022380590764101228568389765809185123708389043744065856509018807031442846616683325529128089306455432668034775966061488606763292384541647113640694069043772702469835760194317266252181201044548186656554530486957657028812723454080609616542903512822274815892487798529500663640773481418172950006868562003611662242890383027889164559424383153515103902744978289141126104683053676321919871422225430511853927983991040718299856856840523495616336925510092293819701315769653828509433411599127038191815534533631810931845820705750735768757972643500517623300695523534981471230053886724571986740156985770074959439316069851179968720054759819622032881788365837290665193297002364524716464259726321147494533953934279130846331933495051638214224097794869215097539246544414096723189972059261854883182641307538976316600741517075359259608316005875487121667646992014608425052704574739752494484696770526615498065830372728444090361845694482941039080989989883083709788766492484480446952353691784569735876837642672524119065479153189446562120174293666250646437395586650949440750390852940305325850180964383801497066939714428487701422876864669964518257311373925555076381476718037950465047810742091042375291130492540883408272988717555428761587837021741096043023104664497214602010391255567480574859201572954395519696026564922024927882886825944680069459972023137573228721553603921458817124553986542441371760586560836595180480733528244402069179287030506872176190542516670992320453337741936258086270124928156904528010038697822737766357328573028785905256239900457272485580100650556034562867226302710196395310123436101852792542105865596070442249025937258830206787806701561844675395349380806009989571013702913526134604701231816503827937763171085396819564223050750375279096210500703071809723859278539442348227834794127421586704875241547142230477133460578337131818407550068464350985058915889150120898952529883597999944179047613773688368663131733799582896567532239316112985574895311783898777541861827481208362623536188471169394215337131938045781109594860604583463613397519564704045584911503747369024766724496507315382476740659437787403402302572236099371297639753358027605441693765494295759023296888267156554397672321231419622168663724663312541061877947082628848115566837596302359515715072281882217073355178230705909101183622070984329355791280565108428597139155357375062353713163863416537959334534202879450261890031338283324987779951489792062468438355864728710275651374993196738833958253999744181108822811581508810372891392189507363186265075747076678338498981304156805251611860839799314819516056032369733058612740418077915249196650510314132789647904427776580665223915968714117013053024708001055323149255635631840504399132560158654333711196682451510736187695477415934860702156228449468513651024752932149791139694170779463532030524289280920587277060417477912337718596986235449419515435190440962029031026341200933181664813502199929381827095724205725362925103470587084828039202270278144405703178884507568212587488416962823014656243209542326410741325050374868014839643068828067051188052994763936327079892191252691116905630757422732274463307289340286565338643850124503462176807285205351376186577044996082276294638622474111246990200354372388462164503859380035053107184676548424902901673160199849137414815101883955022013727255015062880336482509475580022104187182789553080031610702762611845742696660320726102494737419255012781406504700242730953915861741240126430723093321580809325850500261878027742850461891793575249848361091735394630976616733807690774648454477158679518620092020376299391568173014393122481126171029803956971753035091566720495710352807081163284243741072679667278936797673286685608326608467133767674146345039281328739883693373024421219200793547025425432221134149775944052442643431851895801525875620709228420067489235307032432879750963673287236304065379718341605135459135102397542336388390980949166742438428459402656843516539306036027724763092996416583891507597958058796041488898670398344790907892639285945822590483774996388864887320559922321011873775546664721005879609129361325463826248005900049792851926867898187219692034541699061945746990277227807774825410862655312103943950336130119064140073911121933886292177158304149031476881072533627617151004724021977640243064389981487568277863542001102418864129813469607200355552044862212140206121428914414440592631684104626687257134178162716356656934864364218136068474237136713601514962244078331415941982424504369973014743464237099607043527004689020664047492369336093582240964953998087393607593873277782930455207348427474610492974098006795053524715115156049648538334986072343555298965298645021875895044256112161948955589898311435726257957183896703835481671837114563650583693275414570888878671498669496457000347470864830495211193676781063237052517132522942924174222394207672271886299146843499137347671888423675848373228238580020948555834836226445049368790977933527743073339570501827438332879445576435206595460138514704479861615020263398627679269706709809961810461420583729287224307764414244703841043063564836920152689928268340747454212906095074494194765430687583875546786076363316994333783301216418659089195011916118911949114111592518070144669089342611175738857439589554987681926173763967314736056494235362543792295070169681050941271060368927609626219920506981274427921131116797554783191056613024624485965243390388019439692325355254707417017405760381744284793220783487949654477937234944152291561698751768013177157605300725578690891498534255938851759835490926843869106452672038853502292164181882300195683882637027931826133847982777728154897914603724806269098084553918074335080946348666735222548650308712658903070384649743844151315256017497186693286603446810610251231238723780502677094994330799725936223572266686795097558034238645764121966956276000721498297685396529880556073971535996506068415097315955986232023987816448627697353618754428347830526054448154236652751252317391180348052116157812348912384613910162472706043799694593557420150921628959055837730510764656102545694907939831902932239536694999302019409091236451429618167888671812748257526777218078274334514124238855181781007901455141405479140068267112624215603826323085368683788694934774574889761166888909948009216586842356970848509316086486698171776411834987005689168468489119703978495786825135899305448349510883536710029525104575152597848992463751128436044394399863657329932488197153277816105169907783509191296879194141758121735285804329149227339419963735700078468009451768751882884497213680517418714657787779917059807031579495933856852823478556048062165101709600413270863964162958979344885229739968316497212743327599905928752543610177657552946595592805674250215460058061759585219946569318760979014817679496730812462045655872920166014939792269314897630179670315598378464862124414229948892956541236726705728517010892265967876934885793670811722819133018578760951848812673475495397311565664555250841443803916527408572707647005405683608634230676566868142556577196266902402114996108342090051963384400015792364822603751659347236541744286863900627355974763473077124697421432104804015913674663824119648398213152995446207818431761947442754086361930737206834374622963876639062602103580496347312404673268266453193195073830940134052332583496070923806974771601335213535786232943514598638055988402135168188152404525908631226495066162953551446806158012333545906346530466962815879248637589986269537419987822778614491373110965716750644448644913386537288932836599266368504598044047716590399036747943971129653203196173662888205517686051248145917474731092209993462084142085264184970167611285968976398319574931271621045953724521284440581778699766372998572907964219535871882796135734655001243661997183985722435597804743121946867064222926647620487126937731488116180641887521213154625334172431931232881956441485808984056439137353872291314483706332085758891082570630243483371569276012990163237197104581667355903332659174969927461601851114210516196572270926778053994320684344072078989450297733376049092079863575282846484344466511919321006096856612839294471314027406451042133739640881781936629211904957523035169355253534426673136943859119452429185065787077393868623494118554590896144981427766357578242038451436441711325569212882598682759100061630326289522157946890101596528569998308873803788197907956698857468692617149772267742975924812779065313193287868209698435476965026053349167672943995784341165111840173212095136662439769028588729425728324078934668034129614368169120832963210881129052802114373498877342032404039582970279546722269968919241018901708452516044316093111016717627980872110883304490874044831805070582446499574922923969536428277771717358267536537934473621471387737455731600115174550899339504172517379653237059983237002247299070029336100504264663690799864980240099556035047067166126497394889763730903909721459625243629337451248920882158342658434225355412422330421581362416788826089046980980797453156019890785816935608358936280469920936574867093242139983017193763612457245634799670777726594368814810896855287839579074459775957084923250354295897773522917286117959529045385605586294180997026595549209514389144316772600476542970426358255178708597531591497310580580924270952189830033742559445826008349873875257134027873833398398470327638973745774219414221041642438044169570918288838841554859900852980900139672047347205981012391291734266482996760383883637896302367403187948979494895793274989269271390080660309298567139136955909078060668455465508032945727664125364481348758902941357782037953306654172588500859105530010128734412362619488678546912670192248942839386690448165487919013059366341551934669860632724283488643029094097994305329512933306576450112348779230236566917255216991862897308942689216884456168682171580637534012615279046428818426747547985159124717078481552732639631359812669209343395233337224438940556168681615324399978088547400846983995168154525339827049554138713303111073331284627848750680782719087684826444815346130143431605980473551133466315244117733206473731029561222169186594013768045977150340214016724867443344405513458212088592092762112531438677813882317324336759613558979077652345953334898028127493607249433292953894344551573881024396895128949778754409707102102445597953535231972467879258738750438025660403852661138829195414437027408233849976077343496266267837791653745909808407761810750832829193823743937714668945136867995745903632551169555052796358899439684401713301914156671510601527309412823932251278956626589409825309644175890445459752238581109432796874098933099927173885489756324377112280728447078295172635660196023639008103633249706836159059757683385482199974972031132797363642436655825422163344523207091982128405322124394518158165161138842598936335890073439826616110928613781987430405715809124685359273939069277686829313929041881912269979270404797707566426785015575141470217473707906440505102777919865439227623747483178767170970878210665376169421189958701004973337807684027123630673030887437674514924982286601657262571518650151299039749616926441637934648763712689257575632512500024881483682129356203276209002721443953526759867933497023704818953667000070873402384073518513851479422577081255922626330854593912696099259178429385573046814299926608137625228287895642689777464764626787032394366697678888877417782680142211442945241056590976997327164064354278374984528641402211309777653457340230409508248254882860044830147496159344094175510260866391619126780133806028860639024557386937908351078658675738954772877986713484880425462636547302450747879651299575870888905857462841296278931062019320717331241703096937962316368685612995836670077958648055159852425918763862007545691752594018943934835739554276384529480663868271188294760387674720011027875707367248753804103635509653380016739734216538932784487021522820400663638606405167433505024140520032832126362067737213800836491667891516882836152063756855641200360590704239361368319603459618368642946012218649451143884890604835919183690571020207667552762453441005454448798490835587926868620800184760071833328592326721051710111686488065437417504164912051816382386824848134607953601562072097842528782086682979987236694630699528445887354321092597015385179909071574624443503119540006629419268027483680198128562246189114288162334545515659186906781020476598094070797894485499994683149006972384608227044857048452787819903177813261028069762160583418625764784515935403822390007582440827644184722954563576031965334441411382072491190753187334778008829845060864685731625464656012193361480245311133789254674423495469515221052158797861643852371493533508654931047345831414442136713652914146011487004640890271127441936673293824189461154036650576867972894683879338388650460053459474416364673071086105913190993066193248700224478380314803225594732330513130188826566752811385789769208492960854667507064890316284705790578237852422680416804749773976782104274408504165624635504355061952786824522727555551326928325521612114692375537261301617835720594839707090644975039712167720351745306800513671463160874465563857280007953929486137491779915968355314849929001325894913649061220631688698608170931054687075751339718683685918166471861626210392970035216173287910921922485436144225565084587832874696035067627027348449300226941759231329061143080057336540116357036292434044064570366906543531466245268257725618585712986605695862351160050187745435016810765398013489824500851182941699874002572549902568628771806185171598594718460505278222783072158281191999502954591545282341829513754245509324190985202281986166847290790532617896212932096785137520701810792666243524960867015674666838252606349678403879990063397839255903459787198552056527947091865914552286200590020400509950271210042511166272289091924803957834436205417264666596576347206173457370252814758330620936686230483759766200521974028831166450063639783562510621856018111642854164893412551115902754882367082889427893301533043308544862222350353650577714345726267986732054145174901515880319466787115638283223963490257438994219168130617296339885497886232984401342745552862598271371408459582483667933756244477071307370553455675935481956881974762730411777921142529156362681304303978944528943405927606910111887118951697695416866667566895817166965437599771745942103404589259957067553394479111068329486423608341764951257247220797986788548134912417409460424994867021803529788238547450928289571707273000104401503270432345100511847633146276753415647132409307050129080936325593661653792515172447465076198499064794865237334887433918698266822307385757196985983968335706099115705126831813453065751588965270182173487743697576127125610011066414387342090622964995855764229058472567936378784604836296402760257025013518995013574247273364835452154063434504864688145799074177566401536308104446713384124419756138354424373833518063996822973151647875256530137196698468982496362614477719851839861909451456296194055461445572955225668731153834143528189204580267132185916328163311972968489310161072603546230063253449370444382728320549045415092453648633419914197671114230508692670850954190597548200855509634920406456648757836347507108631190792470258517046242211329353902181716542437534144039562096651717629578136809423811510600822959201272871013202956537734206500862034230100076890226723084473830864425563688636830229904204241554541633505699999963954351968553441494810046264517507284567986791939804981188357335443498743810705019537520703635937012961973979399957052936586401446643818890382375359588638547748016722660344251677917230867824354605645851476878154314608355683230375919283743886341779448131739817883472252594388142735556589359852173324335374631326294483496041404503556884531245932727415703360445341222211528280292562640205759438475192710543730272205526737495309440764652648443296213109202522001244947080889900731639839938356430110939671745279037992612541560046935052112469130410846441834576864374300070291820959435232225785695672377041822224565610789248014203014592086729541372102842122386217362744083066455166706715682998477982394030636839859655572703627941645718045004264241581296081085798456566455191615833132821954797524159208686237631278601357171008396310780951068315680567265864728373837337924407913115280812084727926824317346492414372620422468591720666252274653155150794404099736032309354027304602591964271697295624526173468218645707984955205947935926134077419194060253791089994745223842886259587283630912923759494038060425015138940655433252527227769383591207462008047380530310661271419223546974088123284485025013423794739496024133534277150577098534393656489553670775676658933425509501271427385072748094704945660218606515448775769451243015258865224135551562263117442495397582021714353319924906316304433592878637478739669238452425337653777221141010887987679592228430366839603458197778466147400436108309725098326174999955751252555594986138451344030666109739625685288303293038234448340464795965177104138128813803523942590324798117428743153469829548527289732427303947848335602221821500866580610096962532860882751988294931268038185766433244498212161900032266556980893103118960668095694775674748421504368681483437690399150179373092890258339337682229961611274291529711841841972704624064247228412013967258158960453536158008732911153881189670211171365799508978298285263272134458407754263336352449099564723402578216810757425449393743137960847622448821981703115757787404738306920110304256568124820121990319616515555158192998005176554881024596956951922688929861472096746159296113930586770608952496063951879269013416251084592815263693857668398324218323538782357106268407515420103414281018644022387726636003690530597511015361804071608572097910963350268739583411372539227916461730126313600882520766530134152014143130453241361108650548131198945984534532191112488749466785310872383934740568643439159837969945575882628511044610753798863160755582324578367558424623520868055416416159160621137268544319843302405490024278672441633431455651640347929989294922282115385081101236821935174411473057220057266500136514121484058555920676744992596999315657984850652368346322221761971010376629373206462908277208252038267907917832251900053291285467365366556931562486066678366349085503359764771319895920121287793116743004624390804598370055360368400308373964012248853281915362806770958471211877205233752007727404819665376117461926628666373409552466199324401481335038360829608701421134951308551613434316038242101393788543536296423642280244156845730058239184575887526217478766319249613082347910436940314121869213884922274283993461707713701113355439553258570756323428940045002875150317700945627203366230690463548355047510120978849831521150055072541929305897709109061815814138906485923418272209917475064135077375497161882935021374116325109895715756276422678954094397364800560069278592045102108283555983747210350356221973599408260786447626140139077040239809941639795546918671429160049258737639283423436371625383006558550856292694835767476010563291712815717017294349237095029852868039493966376572979077966848190824508011590391543030870202898249942863751187710215579912391083616463210989520615565330539148974366850878563713865288424320560115373718358294266006121401601595037972419633610489550638051177673220757553783959879722220712958569007868170742246912659094013774264749529848213388778192120227277863537551660558198355528905021250134030848294672800560737645300991908448095054136342684961219378623737344741285787558557078466504671782642630073898141831148232489494897998805119384759302709100079953221828145331986694370635776193507946942613335392350766241392633883891588975745623745771659100612354043351213620429991120203690023512557694177791750517271849444173516740417256155740310860495526805557075201543901131203145194763073878467106346741672599243489086582917283485148806770566622934295322035822605445096771614576980373236446692668530573779301810383390070795793358782223233885782555089793953813153445396737578409725750803693251816330444549322238481803165242451498362363283109452029493993887667171782673138480871808015562253745722707217267935351126961492560846692786974874221914325452404226393258155063190201330009796481887159469528880396386043022886393366341804918459716917727984246841306389452093873568805455559380129086771019380257423557219031859156487040748630184709142455523383182348688196759038633354630615914611208377430600490483210881300221454526845971468212126334568970049455405542668427595822089942267524294897731630704690713497816181256593036481759683078169422388389027369774297209531736289886592597486691393623751035255653000591709983171396895204221568221366655468821774199212992609365600321010630517686742196420644019881736416297244493410696283232025240770506639120271837362627808437194642743116060610833386757017961584766111385137776236970090557968559472350495032078097429214800387198491776792587606781957160321187309530218458929409144440620568308111080027040843826568800061130223696465482073485753934893710879385914850360283941102000485434972293233433534351256499741716591109140012105383088750808128710674406835716186402316757316343941653918523254218102530448517600093296765020275759403019634081981263957402826990882179063492830567639698775741495379790411365111174426560183069464605274517837072206782023673596002245217888879785989268262461098376699911808817648893039783307426599762064986526298574671390248344597576236253014295004747188882746413450298254356159791479695440958713621702250343408813646269151228306714772078878301448255565106602282223844409536725388795901767380189771628514285652897249567155939039836267334635287965464374930845460250437976214590157636975830681680242624290668855948317859518096413881024483106453979892706745724531297172124759197174452139598831884567491144695230851306988160386319536784086428702003560867831846913312148756786179168007364131111185993568789339767314921023985068330202403518181955082583347566194139547548810166935999095158326316843650390331395927531854065794905530907609362714945706501754154568442203556129375826517247067544896938861098995928093733997026189955321116832823536641130975429415871974703231981955413226539854055272771379855695127715001044749041186056386453336480276878637629086801509824805470578064646138709172498283651233662358913166323556928960811460108713799787591038858759216418968048934080555755266012072987009656996232253473710934851466431266349597356152776334283145808718280939072413651188743716060877361395105537477357975629903423275554917111892782584132697532711205847006777166993907085509005257627862171967083923411410567386024826493463076350561254177114078517557143466478547687398665408092151329830990122547266272328477913451771686234921834174854162529321433787978047179476569496098565640661240023962392487404651130030847482230920241855128402595797253422842901513494149430549201630556861720880041298854048786551128970951988314690042504619102157372619144969335198478053006808839366913250494588953818968519673090180850655714676353886454723805957113007839585559034344250332542279524321404010620066354252135280988158475223778123571171960406425972635257750856298917616540533701008360243180278514256073757263396654060487692588481717719381548351269889437725314012555487511417513323109305358846826727999955563930419663982002551754069122033564990860044310343893645154210770668278849767444941677680468154816722853876045123965813980712298259599094590704907864478140024280805797212294734267912322283739296359152320611529582240776752238633538979109784813480498442969320394856797258840629274844507364232290584400030083181087397380626155125247816423741114542129266049998815172388141171778843986236742496484445825609019001667454625036393575378859077701455558280651524532682441158569948406487384699331469797722746183551281809860168135111341867451252651001446878172753530083665892894813269587915366132891596547353031933129228929321725150848024083725077835073382147919087507895073093128481100780447909782058240883894304648429558517772048922021162092304011472882861674768303996589301016516762935536313087838980990840713846484039296758442226422913312890886519103726434107119830378330907579935260053024954562402316363682978776248530965555401919510194621575793729706888361381675188391349889913142261484608353877761786239382562096644655409628786976011290501800146756104462334543444045939779976148907287659147311302472095007119126359546267778508162490105636062711211540164485742734371711080701376325923121086538653691463584532016053344967683089856596751603954044350988698953687088925066503596674160044727807044833722528690114759750842608026958772365470379337808657544935086010750851770029237813047294963076783682508084158718670497578890364151074952776048946152665635226811520422753613144725614348776693508553401200913448970697564503589690635323769858906704990963216342642468284686399398973306526307512129345010787243418684861214754037511191579268459303766078190740559122002740111625451517202339752431742566789897560947845498433549112427407732650914035659019027778475657979420237916685893981270460134658263391433252915939811613941982428951730214528695988432101316658937957464015986477596487917070916857831968447176778068260805160648279681139666263000913326317921843738551018441998057282168904922833134370989221929356451027018978698368309809995128505139209121395458911798641825063700920601655798503467652821918653486458787130525828582826763513808058421040476090611436557022368723216829430467243441003484885135818071885665818015250833155744501101766315956161200066921072085908186617919885907598458969576337130966931423278607635603817367695610051517226695373635991618923438575256850321710428090367378469902145055795980262532118693476644336498895417572172537982369138956847457773535489654479140157189403931849566821589103995994761944726600749562684184827582253587477805858458325092825959570278798971588342072282411782148662982148242983376161887869488448968892091748954437144964942733850416756140550618287857106187366945535455958308353131133814598067417389284058883776562487145382061053565348009093687153092889425601193947968421478832643421290795528160286320968189443319890313082873106379287961730067245676937163207701952855541587290763914204051251771299366659982577446557298629898377527018619152528859767194832690105334549553179778355342958277560343614764306048939640975875669200897433723877474693041189621462220088035900755509342141818708890795053777249205157586893984907849776692096839538536741167457871582741752024075302284674813939732809976358275236489196970232865712300414859709265119282873559807092656598582762772661652175663298884630110143467272217541859767263258102206591528913329943584702264466000678154911754860773761102951311615773939192627808733122405172234953590397119989474613890355657924924991548624863495796509674748911875365089001313938515765198790345768122720906702365233120262929936109939545371945525416480175867599483285142505026267305500701060260194300654428903470936588756383378678748448337278976194689245001997522441968563518097467872220255730710753812448287327934293851451108899446317082571599159490295586258577856418467749551670111270413441454027146815428508733386113736205524357607278351186229667595761552792691475450817868794439553858562125565200051692283305065256762880679520300464713967650767026769347871264508378386078923421218834719889428168629434770292947454637935182055196687825840801932464673476347537184120045403608982058452495680374762834851701420942407211325893002190490867040078971728239660153139289213181555523941890672738407794196584171714519586491047428182726659292916721465435578118701223248083553968005347395404978323780753774233651392186864407974381861963055302915153245223318092313571522952935172441361024314643329377721765376302356595373023623608574260606888237995858630023384394177982156707489360759702962773646102088928869430280214378302093384031706315678692174206303236551143963930348322203883379792153478697788915945091986381482316494655813891705713564657782508888357749617839813605140892278460287783851273988172058617478867642285919103283737763987624601871714213474877213596606425804944593612866250276333103872515107521901392789255761181617080682973878186618969821792309047922453120860168960075665673642494834936638388295280625472868448409478396298013595416487806435485348417181827053433065310602727676565863022953709187189665954801353890804760190267145062352636474515321558138611855034368158029227284843904862993421127643259139627318643820333239686308003771383527113735449942330474088792021652453138628216869099281553353096140817023702494951671507183649504930907821558041203912917588221806845302357335853459689144330512879316665657769234485716281654638150902212649755209247654462786294726182578362825260657109552232477397616277978807229874929637954697702211224259041461822763946562414143505739976884374250848573867986992706304543587676813507999449661303510382750660975518451050048549353352042849721320856274054033215915524914905663993679212873502574889145621974505743367277951110945723888486808836317423827938151867990829610710322914483489328953054825080702850576377709837074390764512962639826622241623266095886145981385588718269680457879450453728620602033146526702048412723068266556392656286561358060527085329362261489006466455886704599786988779939893341835131791141946121705469059092742056377009786683289120424256774976544350285929872807292843179631892770993523283620904006996813874578983272696397703344130803943541106955475090244089865376831895755336406753752242985149119498804819892078018569633568233505732074918768200319386351447144148758466256315316802957991726186308526844611320565043181027232588343559552937496648431535182279614915018589125065210593023580059553158806688024321927082879869359434817705954733104750596616385804899778681962620294065783037585277442317965426232727432670621962258172747749916926856685301050428958522494858903383060654418100474005120702350252749709648911580731856084673508649511187475920066414368837985807782344474368960891629810775888909440023202235845879327979191054627123957796183716771449557151026473730981940555155733967427567069974130288544754024231770235448284825076716960176583044459476916764191988454162701669157954463189795968404070892350670107974071256694845856084752805394209193724303375780648337358188655694641502975478231822151405287836437467739994929627431239810511995853539353345146858688852132547083826183452901943564264023214659479089889353519520865808632736619356225872842135138569154448253011528159629410316211246885289216615831505819267958921228967097861751149451789908717716033284310590322692764318509141229435178453947251785396436985051318221547229313163102375455421586770064161175560095847408436773595907063032363413280143572239694705427609868509879217165900391251497431431879224230979384256301911893765809117794621232396140425838558513302182517989782195841626448292723051452954588827541588513998332880325197103269364588302552097317596280421908204854554906350745226851319605355770239492356488919167911494916582684667288511653194881291864503232605859623196836833449275438289421640312252433367813703264931088457708006747389710911638938990090572749920801517972487053325199427839856904742538794520300486751029653117877167404833026456843238355454954521609222524198954924793081931551797821636220898932388180770470686519918544145343359688301342198490142411864234407846661928225051653925389727542042786694582835331139499456948036026581880778055796624508844422388354293228639569508209116124954219503210344976342072152124672926735186872552656368532559779137117016196322014170161382448955849082610079029630236869363494750343770112263427660071403254346249489009038084310213971629388038003180922600429664048708097469267588999917753719359082017053773278241024848003792910734039643357183221215603673344482206875586256315480572122602112474270757934075759922803997554066228516053104056158134083148040383490024180349296208558484144091357262229842838172282814693676421354678272928403612344260491575031386380506753055697416964444193779326619982374261822072357271604056928392075301639171728101749515390935177151030766081406579318008183555499887975227230763699368584622158127934669422558192031688243252086626368106866794310843228398546636988555296563223722346497447897469094692055148827302381894399979740086616568214311409898209811172905448308259826403090042008312706162375789733870448750773319225921583541210355735647279609096680187762292670644190074520845444593642720987628438397726106290682151880649747899627828298557585144392812633164814506703081728254505737279481182005970352897155563441531039232619661906813798082524607250067155034519429986517768856131240454149035914242308172139922441842444258255282789637122537888421561565546637233320397289413034015429337330621810958728882658950179180360177048027060878075574545872947060527882567469683692796585001036222780078094869578298390393376551356775583972811045641622943094839290702199474645338250642540874965926872951759238365578515838942704372171023974489178902358552023034793948647070563526013577346615313125902108466884485853398007262902361149948356325010211761611074873974258152628194490302997163636435605226514343122971779367714079841270057456446107057203470046962323301028309036672156415747516412585976892515896225157107083401004839061017676406307291636122600834063042085667325324623630465439950658342047422621744684918062949417217431352430078455526547081557263541215862219567587424051109107724405572954454982689907640941735545740087976086040755567995662908194799374505028277133623967928311145146990856811167195242779270667535911070550815025738064194710133575718211153185134852147661750913100532114125921389323964421937881015188516928767056723141080480801721012048640363275528212421299666577259140492141853508477704946928096205119989732596046038171128329737168986609136884877168035652127312257906745420679166100674688769765354967381477142441630961312898471584579330744476767059166718471851549390306486000789965276763504008357001907818935262629158964230470184851802014644096628121286157605304546961364639321130595277434366971410323277096597047009381503360644121810470973688119886232448153365269577843775470313864378759239857688418666330069675646159872799988447847204805003818539093946104679720815733141224936514324426647085974088737591050825000329390891330073148676207950224028686193054180730697567838690479646938552108579424673664548291566860493187331227998300752337442682378654233809345650725073815908766173001342447813061110142960609551154362682971115480008477600429932496297151262068261609894441446657484203247484573859454166096937677431985566168002839960384905856525620936433371159981478320738275170142891846850247704667222837092344821766078834052167739691677998006861447598715970575689959190120471637399300664012946562167479098480592960119709613598783933845997275879439665168710944164714920161228329074488395771479129513144786149306295482845650606428244568924275175618082361916586144004178546289145777785492919595714113888659543082734269759237484544388727916999695267292436098569616320083691994925108235740913580393914010796828757270043582902259723694335584339860682754744749804504295584093911049001406831995936778350708917320052234975440393610635160992792343346922414579721019201573335243195730823718613730234990641806383644594257148897668633815499096782526584548711200393221962920192712577897221066058326818935768523554920667764200291172669521588643347717158297028975556567502917678322545520990967082076487890292404976814171147230058157362949788801545179728191047429714542399676243306539537319448689892901920817612319659851998268980746635909792619524549801365066527611709295991611586768709146893412725080535282681570919164896509805542556280850300570686044469012695347142475249070594645333460014476243118995591045911558626477500783583345549867794029349811994703912745688852987956016501867399835811679205364040078824606863420949464795892205157446144231597113957730126640112344709355897230415423035555034229853370534558613948637987781984885544630589257755523077393349631106525672138488836042296163796044711156920638376818403253693241524628581090869394667647742287534880350001364095808526592230099716682256648371037275568751123601249573431114023259313943051784979397570636704477065857874824822999738297355435749088527619610351454199662942815923069562193112690171367580710636281107797807515180926547497233857103080324074096117431636626959895021694527623431035583499355263873245701205341651872612955034895650002598132150769316744128939033226304376982717950464415036245731429337603075835880556884354743878469192926554731181756250972570474693533228212217302993956913938707781786444846773302895312627461782918335094650203090262386250458813484734116506026287408742811771110947936640957084039608383948216636339215119689281848033279438323007581992783242401700414351890615383516316948381939718275641549507671212414425503657642894971653303013206504181424820549634696592640137458480523371580297037309237404329821788756801482921606420450218260140305386426882196967385101005378500276609801527238111988751224199919184628007284941989493792449923713987169964680655352354770103630188743669718814229037479307057442354746564412560621355785877903332919537952635379039559788851283146589149499906831714124394059894418311979916957870110008112401944992326682488519785610261682375902443369010727106528117071941242274322763384475738574435245779360117486747569014465293975398600673258189025859199862157889699577673441468520346294756021384475322125447062280266970923199538391534702073230834367996802063266390120067123676455573050589511008654138833282532612006872157158453331843866646136398899250886512075175758800855635904714802480457365205524694677336953384990304570951515311252559075871476435613796113648638629949955549974387523409899880887552318873912762196799869162171647316603208941691704670801971722282536321613019887017923734655190224456073950046625761854615615845459477224672507345219931363930386889833529191927332091116209883727699963064512595531395970426812010386768000574961167356760803804349673877847812679072562605922997605136655612850541081903913412223352021189763092975349044511810016267582049280634128208147303455643800632469111333079078471006685994971813714833655281015570888816733792643262353848460177945271820526466209895002166376973051514678371231967874451310725441287697031439572290569848571772800440076221969920555168598211468454505633978577314783626176050527763890805002375216139719510870883609155521973583889867641148109664103446943291520971161706068956887603711157367120836089928043401821365093736951943634919993893646303642603733508638320601272659833112113617350075631954575519191181368413566253001187299708444281078256172534106530099305379426487718892616882524707895002622873739936480031282306806514604138471993920362091578639512032230355511742151093321258300109317510307625609655060447750818731848901536067919412306795957155611309729834299700323143935143854609372064560290211282379320757801068308898749168790173014160942366421083133374118840803249271875611085594192200833090504493533170736665637935959061761075929465604056099692322052880256946587086372501930987325010652092192073189057502589442275463787545159122338098831029979065011832450882388015440826233494485709882312929136943088722519313112126134159647434085349319693327971806773904317154293056596294145653142793538740244072792003378549487020221964777483047191946668634432697892680226778631894011292275082006392570475417912332576760797224518590004965818990097275193318450853285959126206283491220933070214929389152935239391673948151423916101867991305705695652819812526287820782267772341542366029076149957996574867650867938818739404499265939515250148478127984879996518743995676033887203947314235666009720642533740704355185160981700015441147955999560288588987074789777422630314262862727464373497378773020077204197824093938243697656598006824015111230395863947618042762598262439270116228352111698619519596285764280966799207591319983840062901444871601706943794373624048460708005540053563094543029681205627317636226634447184789800908657651192138330740603838254629950403332610253876345315504742522557977018540061024463749664506339928404121180106279703223990482121019455389148589012871821691079228506717955445181012643165285833746490372131867742631182668491615278149899702380090866859367291211466894549956921054400471245521591072566565039625117941379901954862355621141514810313823601058423662943936795659813648452290780459109754479455109509956262971518778343612236736865432826022209799618961818899957952973850920328678048245025614417359030839886679264383222850247497386004121002981244835031794461210966646844326140263819716221139690143016398995864712254322985380431993597620912406831202641030679690324143266177441053147786342197710062007803532344149308211976927077493123691355390903188768729269039186573845246408656526002640357765746850686837671926623624338595574798750579030406184716665700348880199914321920231302749166916220654273560828937138068430448697513276849168951737828312569213512025175421899049939271029166942579052033780243803818768401816049956498038238844473241939879271416323024959312562107174988235932095959296782840672090369628060935357456994275796908101044386180078950527123820617481761994377159142005045613396157287561361405785896254174745711404634512823541968069725997682586531809224129604626984995450255846868409578032351950737465110762374134412441591372084502468828599229941079381931848972115513156870556297932599600007227624453917949281316118259574543184655913075489486098246224787778565745935276208182352872000621019378762576892167628010502121448154034206125867786082862177754223148686373686915351672309648184214492436241335276088266364545509349763508402027018356471714564272235475909371919032868856891133985667635306133040327637129612158767988994870564442679399916801967931362303638981193534710890822620802046852157995265318546086603887746002194430487291538299535762436390111609424341175518249036386120575500600775057071673695854322486772936310688629963477054714213312612288062928340006939772234811504609653775140846718695574045394345220666609677910455275118308317688602304487155160908246534521218822698997163201570552616081296929618008000363069136774533705923947795686693456728054419020889358296025287726787086676067917025668427886152883270768486205562252206041307494983515334252631049548814618602391621262075401885711231452179039536451369230906844293715163677362778879981231037408776532704964621322819643511262218100209486217422778534577036515562940183255796225644107032212117212604514378078065890499833245069881692870725043293223093617547384640207037103859878808685227790473362932248291225325953074481106708595686272060772182813017130504408807537258240226476218195188842288471676294569653711111388038347825945448576369014903027894965305352556942971564227491339703020090929044960139163387013987458101414280619622513901983593186225939612433252491851181185281481748995290443904781888737984078165303711896858497736505605415067888442325187792229101372933928683480201997304812629477842967034317146573319444908404244043189266602942178850628939199602344706456718778469952309132447625800269268374089116972820225890225008474767208151845617881422776792075564864531481443122444898377389233628717129146260998554247150870405231808020862828862182620316542912713149155078133470795633055068316978274775775156845835033313478840268729775526816224858785803473309395341940790357265446812306213789798355959178104154183561564436603260912620130449020591240906537961383922687888239284212269371598835577539261751889956172077446910932577496807618622693653409506827793971955481197484069389028471371356400117107603548191402899362581627496447306502949543245988475355436697820484814347629870359388506841274033783232383212779648687927210353511179345688869202018531110193669677499500153735901813723528058254434697081492946891595682802851438859258177247821283449239235743888308665004570403955392685997240742189281191851678382555164308216496299996400001540420055308403210179120614426582321465945989926719261726562475476369719121269176184386000578056954295870920803606821821228720460988884432608245964223715311870997880006191018697535007678538852766388832009908398993891063079483401651340183633623796072539903626127912260831405524156503507580875867616368132437331068677609010339723086170961726280023710602648782844497032045236312285050633157884932965823314131810917909029342089776285182551853596170204276891482782192479208320687801320455590660113681026019158863122610833208178549738736709854078598558047621756514514753738388801627467979333423042055264544765765638057125957658752343451449113143587221795783196731657414588705666324192696100078802387164867766304832749962451485392372777143131732335875651573484963861415401307475193717926549760785740086636156453676622025229739391262430869672510967844142642076503015242561253361291849470610017127602170154470999057934674629476214168508018407253099494061674792265259977489617183126779346527525459142571156596233206411174703716309486491526140054107126597166382363068457289693184032303499529524362349033931064218834155984300942754889185249342513734195426890895348277196289129163308961564228734800136693240700550912823702482908163306543491396867144333442802472101492131167970142931981242728587313576037955850904947765849833997985876219640208703516014165208234875354403037623749018750638561869946897128040275900487164931860904131555025190095673809853781819482759260614012868450437260724159220921865028393226859441626460256468928598529318239501321615122879764478675976022684216270061037988364885568662906193104898623813354238487170743877398491533421221875580662688511648570584528787117185560329780435753689754612025399016077786719842244565978124540156313597779715986876800679166060229236718856390995036792738136735911568188817857779786260807469547819230270349620172201106317170274220931209838850892793714981433978443273617117369056367415397807053794371723534793001911362950461790271414537786403478744612306081463107505924089338074709107095686594638703325208647407721089762766412360602363708725950891360447045600484155093415602066258279934841039412803529339789059630543933870292369097541948019916073527879544447415858795620010263145380830500022240570633123892909459592403439355168626371328327965281287195452090027215739060719665541148458169724609922846310151686645953205658438984849821923353247292170827783277690553516256050611178583591894579983151165993648033629100398212707992752454195428270016663450555948033803968680764455382370419375949470098249037147043306477537299288067499230251901472540602381756897779268883458450651308216044394785017063859080406954878937161019277779128765099374900110805729790262985017835506133041195431430781807787622094029619792566260825376691722226270577509495488194004582103169996707600160653960810602730461862764912442788800040864222908539335246123862843250845675561680589699780645724256887197745590073130728629702489425675108847603375890058858131603382548759393416090185428417357472707035026895977313076297825172371489190729944106814299739785773125423673367183389696487971995306537020226954304534376449350840909452027716438275403979447005089720063292968405644616253151125071886012900592565900395710825022389852480036901714188768028821618256840141218576707371387079507942669010744519886290610024555462843608265901838283111222053629246993794326231072170985421070637435524398735797367834805429798882655675814261144923052495918470219096908120680413435996759013989791753942184705722395289345460072335874323716664428801934078767660771965186930301300434777848308772824202084844957419320331302033790314450057837049569907982303432029199450031127394846996266607891198934211425047442912823035569482465014086639043358478972302257483651904881584284053057220875795881783193093036804513842053163941464345871974096395018799900744541911383977480275655698674496340914765307313833657967024868578645334142367666001838656204066070506281775648001943400669977871612011326317707410914255452991731690145739575310188320541230183663113635468890451571760455177053856333954137087431157885115685103718277171733208258126822042611402590556192000399544473149289050938997981685218786255126236708641005177529312232251329488948690156742935872216485059954484231722422608556091685952022544137655080067613334120320969032586512671096142689083584807123086766778034281931138405535780281551725270639938760155978943645459689435776839974675311091332168023438572668699699365084075888553989787004957214774955735074466589199179643413105326619356584772090186941327289778610402282024315582461061594497250690955005802307290514270275871595368414739189967467105589347103393567242442046846685891439741302388250885840556450823381582283941093616231536955671332771130814295627151651917388801429849827886331524738199741836986141179695781246902280106086791128316223225407799864059788629572951006440488993514535798821537759302397034361021157221535749377271121176354034368210173894881048857948797042210444142655529039368940730734989203976543623885085175460983360935151512382117095239356657362894509190082982556419138253741651794126165730016798700731327247416317363651334108829623945166489263179403388539844988341642259221256688175325979284646129313153751105103998886687218718635874743904222716133389527851520969815911311337003822132612506289001072843834174904779711756704725776919997870387961942089078082789171211996389103181942062113980368974466861193624714387841486383278482994164581867564685487713514230805609978273157740114226580288067607824085900703810765366069213018931364529879352193347494180008522258876920171557714352750075520890845186220215621691348431019492499215877238665693234514565861253804455572470888524427628717095115035041969755253321020209044359298859785138536771052802588300794309036162423111371902293833801421261079794362228173339643126363957333928211364377614201489464742981171352108555042794925634349012975166811292538376944527040971120407831971929521151150668930700385358630025330912065029770370785665480151511445514447388672487933811178333844300038868617514372217590143273316059007893875408857715531494983910672869173156842366855860283999004128305467953659843471721779539074190163620378350833886484343022973283053391640682229263660056163673733161012139966202999930554806726773181453593976993118322852476603993628721270346697259692121237469869502326571303259165135262622374500896898445784646472406600346867508210649516751748210031398769385147342139373195932724422349129992094536988354969173758017593449630186996093643333394305318675376692504900228879901592378702846453931228545112089427059549766552667884468705407916946644132811276755361325469065011579931854812420405617783833707915021740606132489353213404521558242755493415371720859582837702331342692711177064626570240948148686097804526517472182696307054811451590142286955004910428183743031888826512488362119010374732013949633059455204158814179427941802783388258683092821803474084234487690371130862099884942241188525079102115593148700076535867128189439354425792625083632949607448012464012254233816256236226732995208851483222432505154105465486805774786268276774689881739201272734898598488193317606352584314098320548910903739277007037835172978994474511845742117423242109646235500803222432640637710904033097442198313282468630053387190337995423769902803203871762485202330943538824091172964412080439587894105079808224258300637406684544168224727807065182745255778121148868898483704235500064532059908186738504156498001889285699807826670334629705233447651165189600507966601836853316871901377159774291518083045311262035834150679832407933195063908706836583134006643540286955033001333470510571193613922039020224607998289941182827288685885212645968470062964233352300164411900033631038724781982506856697517597548336820060582083970329704133400921535057270451647003454025543173659663455980910750444198794121515642668584743048232048086714382881789867466852401080191858511378292447661186366335884459540313264017723205861114288639141199410227978407800181612521297254220629406961161862239416520452750604369807600401316033050290576621210609791787607309595549977642297327523307536671206426209425134138140444225948265263765726876949738724871712670653670423608015086848301045547764177367656187760536833340624488835144991619592013391133768161930279197543840050151592923832990765464403448892082895278064015226203035884194158858913180011530592264825931463788263781548181256007264205308622692402561649915925563548096133799918927294909852963736372233724959907728467809957655884478040309977871309501455042405405639742400317788793481550713561091947477931356852130527787293513948884223928439599333830543776240138233203939228758504604353728313695908145760331451299106436379224172866208019276910056397123383645649537433864820339760937725812550535165903304758680025977988210100780013783000037691901721299418463842189043892136299366201610386160791828465171096752472723436759301986137363140119201396467377721196144285905862975591693773117248300595624417938449930671818661521097801907710315285837558729090218986435380023056276776964689196036074924739429162823432594475529881764794777339147508026551741009170801647417462304107350024849397424775147388322335359201489647878962542647846773388875694623458289902039248584266038445917970180577889837573143067432082847004674911506499563476829772273068302336831251857314101247659426838595385540579492191096281750390988555352279514697500002375051675389614172342146864526841636579063466991138204384865564699714744526163814808260599814619983197329587325453567235622472714767641935827014572463593771198061607536974140570724811084636661961783896455791380124198077184998882039893651841370068146311046193058016991121918122648779588824381248176310877107785394542600985226187429212497755340931610645534701117157155515134835425379817061416800634115944927333265354175834572675421713022132233444208604098600486120828660100440795273586894787570266397403475795094171147402075971567861615311687777912446653440094210749798518902508999616941248479642782360204581574154286735956732501102606744012621589922753709424469540922353337367162219746166949985545193524861178758789655432915875384398350558235150295726113464903818068760998511892524078821641970852010491721331852773449620812062158847536625336744488724179238359166438379822954642699948689504029766973114316830654493121718143841508557250066074554548871465308825593021024667826931352818347921529376796547561240177648968325750528775767756013102328517056544973320059893535181636821916480809941703577662752456065943251783688272609694230715312095693055081444698843967064051272583520175156250282210598954041351625126992146383347896864377961167750344186693921090443479289196792079722401622532597370046950500873803814248269596238083823075768740595791379228421099968095537283916878022565657986666552096855488566420872599536584057585770716564191443940840826963607944511986335374504145388183755080290591071198877311478341706352411637700728151375581697622113462398279111137476471585963817347675991875497646796367030888666449589072802560235336729916828877518853485619653654864436636944394218911688611268525875582294988176661090356244910267261292250134259459325850387762655632388238859261128409634317449485929920335019090519800563464955369800785337158825579463975211502363247702303229401737710856952577587265883018170114661264231687319656525825248754257699500988681693219610605177505620505524669162888778144858320162632962208889088644598826648365654116878742534527829296760355471114492614134303895768240763694616895766275051839342426391889769951877910736539408946959548024245826029018682329608262322083371664991020884354017053229792074664444125685006509119132540640735714263777838023306807075450395978316606334324650721011321071624099851137377955667001476165989190658373502350317222006684641666842763784370145580842624884976511596534783330570831345228683756868283554478005606463055580224098423619121176437993084900040392968836256991921023371620094620874833130756973947096173624192891386977174971854205192709936117825599359154537045031612946554175893206919837061080633390465130831787681363999691550133184719442156504322421523516996642768630410007097415749271411843813678581809877099542428016422916225534654686230484274687450101015044500037245569669718246382798583835918716903939448773013167111545010220411591952560496163356347562447554613693356626191304837023994413726414793114705942791179883025841777116007655370557427965027046776657936104089570312468425857642330569351620173007999169321432923725463003039847016304801701381485068557580685663225868197515533909881154104079760213366516666969736844248251199337251466723232552302319179646185283454043938321146058397363701582821827492840369839034304680126698740468038165717024284355801061503936287757398829240233771290610975889820050251930480360108161776180752959376722556589994772435709694110554734154893243360503408322501594319997254729041354972781389564723760996803116180585816175991232426902189200823577947661420884699553518019462921839691495682556512039957154399749641467049439616989249788337302814792558837228505619957007957192531251639300714923293598423450054212518801632505393794184919648319263181530413155679681703101996385241643795874408359142965270102891017943039061092551277686540433554742490595973028726361404194306614694809031612959582488866867087997880473564924284986917560236699053577015037274657410681086066470159960164640723863620469978472422291020426514428753082734913743766293487389621691408765076176316174115442819406380928211129375021592072850493195728337477521443660824035013484283939540321816710460880907742610272593002918944958368733793414321946555208336129316769396384847875366267269358715784871305382353763998912628233905112069343455396473941910003953948057399305253358970613300223732251228694541856856613735689538846261205980581020499413164293633300342654406314170125287203385717739116781596413774025747041349220001964952618556977658815754747443732893893819150528466082978338740074098658057537123145303567984161274273231184810865589434446581673787236923300378364323987400961481386685393346947368762419938041554814991912956121151366461898715956420091066879592213423512398577390522686032991465573074765175842910202492853701519513227615293604971210753999945004050092109958091690575533281510723413476996274418347675622804235864112451195328742964428936501966329412539884658810064678331030967610059618038290734540329957416427568930449230840162239466768025807207563849720740453403602975548591710362731714361194133827491065223391427422711271898051982794330249832627734840956473616267319336664713118198535006522205099474043505069187160831800849674103604980385049057017393074885975177690098160314223495373291900831191855643165039864651115050930143890912901478491389816913601878087547279548533413705921586438389185374386669157331556270365085623586986224260535998763322786826445033014344147834091904560986533681275321961061783851995897466715596665754113420716718348117805143221579967576192459420929522511183637278602953409693593080205699480662891802331742338494393330910888472555370495106109762276895639234719559570486169565803872623877427019193792780357834961034342109635496458225591636091292502940360896695393964443638587150290106432820811904513863000063133802674267981848037523655212987389051332315712861535121923024294969811118072488415232322521446262568416979045852981810305072273746673828769250399107262203651776889608640190436965972665323538910466449665910127238025385027786284325849033597911027293895030724435358059645674527822327494815826616941980772723735524266317897342121326676552247598113068420711863126371991125006899840469912211160712994712620488502574662820371034616378284898109792086367418726870694520035688229481606871016368200706068548460333752547686261842754073985063393378453446389737460906333008594186134491193120520192591922634216027453898706886134603394696042776376051392648989643216840649787887289553625347493750225209450720910266846983619808416511036897423122312551570001816609093843248576395376696793782499089684377936611379705071698051984879345950701629486995379196620823030185362639686474368399504944694760566785747157865764901267377482539801432251382963072971385774483166962480532096490291084339696567751928862439751376740655176364682598140502418021544015110988550054915837479702145849218096136087281995155461765626629511385821454566089649417248571266708136294512439274092697811988287639570161853942203237589566288907347981829989834211517482819051530762163468782572163840739517915380025733187581999879958367646308188742713757769019001999263162743396166408962717599404149768063961383076104050506951270391606303069559806007824454954144953645309428535693593181194256550360090348052361221739663763970393258186649307135885562928040229230642522586274398720527107876786334770780424735279246802797050776791426998270412982883150447429270099377970411683430720403123557241794615880457679338582505002755167554628004706946189042686554739343990730429766760583425722214705111131356938139989158796249589059035043979398890928386685709795907774540319075306485542955381524116529136191716423346050160943545828269506942206618252418637237623512399173796898093731951303935364679702905465467690815887349418760865913590370716152834601745695642701086634118717838273241435867296976275618649139365452686336605632022507469964195898350608806825935384214698131263428083173937761552813790982517202839489320966249993772539091154916587820105028839846844374133225514287785736752064523644481907051618573146062025456194832486293292242975406679807664292068542769768795729444773376661955449830114416689440977714820941766364600718737977388666925752544046814714963457279147743513723073666044574970079235189084512908342208066827184014314097567836398855568684294161157683839772072848918240758452991271020907700489828043013404227405586475195428963226506636718353559051055321221257840308820500013108525368273291170536600038821801618314054282664281848097292003056732351849644726880879341545886256587845096335269466428081431382108316923844448143986704470705867812597633226456950175056499977607117870819319051674726248434737557643094542961980246626192102483091611521392891993242276844565467062180516280461071950198267649698838487361545019407322294475351515111302695443623478448296126630176044674997540362943492083336773160281617938812670685338216472650158292054461979660579309483661650049495149901874197437803810366018618428177382288957154384839911167815610939070252296703992566050629673331572523116637626465498695490028437465040265586616210345018787227888704958242534297194151397506141154089493587688502470847318553555253572079904705763544831253729475932594371040802878488929914299142510449006844728260655138966072127540670585221477847349766625241791670904252751223987491414205371406620452434142306121175734916286072304436069502418599545853140470517404877463472083984131104608042257611683155667890586640225898275301824787775454644707099463181506426943751049754817474805154821950731747981243255408314804298173524462238859226234000089607096192067915447430356700760887210180971005214236195536390141655377651865448484579745521128362080644691145069105263514134802507278974895005386388771377840105678575410128148689945647655153680130267460442366730955349246649715785908958293228565919071104606923175176149192876812541684342745564505273033453037787018514335347519332227132179219415510732958098614544074464057651636920826785003262939414649576365066632660431313437904616607937638206179922944892687904922055064167263548754421478481150794270963679211660582716117871382952184953984851180670850555301906794346205877785931657944622070841765568832721094408128289845842117911835453812656784129942114021372736938671381521983574504200279258098734001354745218003072892106749385491427998639676136108115665384797372758254844035212316391908432101046375827905573244752193274719058374022284699895400228688464906200930477773513484552704140563649998067698991845948595399472973034900985634882897908057972287721658619764570472069865278200427561937514940686053275972950661854592398794977055899841683974727441776982403085724331222745968181910486091992788766479315416691645807640973976400005418592835564157876199215856607456623413394812329488821014969757027357900373736096218866280614274387146717946031647320796046510074117963902567277175413048705454685691148409865253668144660255759614948014533250523009342721301765290268895825020662158919002263118137523393502256806888692621658944246446740437733284253271450598834357154464254835224418808619746215986873761383418120497162581095489237575359008454526606707033811258000130959906427277557550131158069676496740507141772032541985914809273785255589637939420326597388701824285773043003053413422145248917158973669270306887522779292246778799975986302116739848918734526523962961082964896841884089494570399714132460091416704588035628059453827059146347125025036651482609546564059617126985223201204766680067809680849940988905619096834317471232198372332182124072470757919163653536946259428225746754793505273235884229016403077512719278715322847274722636789948114066384813271871354610585346148074419178142148537902829477944271363326647411705361862930947263393019283914430325911537873888829015846910608849174733845311408255841770568431588085891798663791489032117238117400475367328903704637911687087623496992693658392174479374772719130787393563509220709303575803251353449513962636483013249103758655908582833710807264153997962885253114962189763415570722076682539256913593106551689880909380830649241616700046100827710122267587939815420862373174942136631215625028315427307832173961948203426151497570186968827685566548691241292094550888367275087235684583424246569547812366970459226274235442448925401125204814148926694999659600070780051424447043720654447424549695796187111549065402730734527217730596091897775470032123690267261540881205363126797471321889996272264702069663682009811898266517532290422381162338659487841983763350627381535954755315604074047168193398821492366296847034403576098261792380717714596656875072297485314317361090115231285426937904385567741219351384593704134875485598603952603789486212834991029638143499032886131009615783009802613871574222913753821108318556800126780839746068437525594947365714883503060730269545637748387118151873684450883291519448662952708423523867556016908110881534620032172933128698975437327307080731774626456040376799458954587930188515098435891123081332731146176658788557084171226376834086006721963164487596322861552154314518563542412182036115789419974066394762445511048682003588728878563179691350924571348277391132579662523871769764784136467876214501897625100433084795955440161318544529799652300837671884276567972158002214897758833064310478594718604964126703669806538039167003472817397356229875125526371105438739981655615398829760093472395459394762196384602435079305101980105769927097522755307632315840358605386599365852810630703821194776492901615360177695557480170464100410712901372218496893610638484325150503431422287550335022928672772019596786625088314126820626774988753252557207649852782627321743389507130032101399623119750091442632337462130056646891882482337082095517917526671246639082601358224145850085937758241257443009223415707051162853230723063053686310409257921528544384919275117662696316085074312854067338368467207171793284464841354903181005859033121794169967377031305881613438847358432249093237065872729922503503366107904862007098808836802366541973316378043765837654077518481021220697810522223931961993285098690449747110899516621004518754653617608270194570472372525105078568510801877074485218485559535076569931325671715150952532638545962892564078346545682886181808265197240705191569416723387930089470172241770483403860761386194883962068730453041174270447529496989929556821983332418201083224085178547610125023163962907381266092682593714323239361065565971241923576259956305248844013611082306973730631115828168219437833340275560039117211034772557441667835841279955306448905406636880117285003115236257402771611192246394364296122997662329684844424618752947520987680754107103117069457040853209687385292954865895587005849936368103259277417727856038324313066050755021635386780091610922030485987521729151579512007673320924934589439005030755158720673307967485170325767917429005365544633611401566695244651404793460860485807992161153986826441103358594510252354253809204874233014138164524539529186943827317778799173240403084755785096480424643608663337015540415087303403602396346503832314644464998651671570985799466553434292569555159854688958250090362224496836060531297651953955706709237841199702404724481289744205616256790614538223037665712839194991030659559905116381658502816395553239614328116784044513476862772854240037773488361550580689678856367229084584066003845160338869012528638249110897217952279710287920962088492177527808527648320282983247391350679990078461188175565112649516588514903373637444168956655807445161922736363001819738279083200601200658645840218964153054436871149734821831110902324303645964821316675036176566617939706740860569451140700073928092837442832174596487933415372128866001029310815226943125094148294118398474073888453202212860805989728285276673207692318708232081552458367330249887473298161272342791618792512269445914102582328365474980046228587445331115275890267274856428524985688759579839969203609389187213220571005136534166919302782426587358365964183119784780217704509200156359902059984630309411992659116332611383132534027579514496669020543482710021975997282752463745321960920308015714471520445419035331053148934011448330577848324376831289696632212887992398411417502759492387958864767562991784933678463676710229332906897099403920644371196456720665582889687353014706172686097643654203507006368048732676912707302700064941956013391799054221270005028084828625400390597556916095866868873378197829555104844439344808602831764866530983886837955417876777754572765241429049409927710662818254750263236657634112159319851614112562374146012015445477610403309974455321904293533860789276343597725686861181695497431378615696121765999166202486969495666697146899780710141390277166029710406921881196878095518695220591750341342769175577294184912471057126219314255525750472705762290785000484595433644168606758942100141449662851705470232920280131352588022266385890582628071036171759098957340374799042335595341538462144019589679595923384543695797365431415025063406989604849944713897193770120138272084208452263754270472624408927913983022854977067969376618154844890447450674175270529086088168201427470493613398039072186087714975410890971951753787479018664714348556916936074401799394219655285835678510897592073536548032313323774538507046652076577103444224013977964142100916408713297831422492518228864253906605234445089353679368529000673874153762483005812323835816941435000943622623438096668100709615054908220399145517068459459817554911839663641574405771732529914364887918437124012627886722706187356708088853253316223378422110192025489376104840589202002566969635765492720141618731434147061462238601525504983761160877398409878670597243759271001938218435381844571004108365211660081816837998290400119840520299774967081754049706634548351567230739242393999066595465888757067184229263889678892607638198819151139833716296974004391015160286945161407119300166093142864085420838581085904378064916148507883219502646991101564113940286927372449176485582285468108854487406107498920936502541569570195416725006182669554689179800455254738430959289838436748858667362635576694801295919360195236272429663239650626741204765033476630665108411770373245328987764067503110599331013340107134037158550841983897694715892268825986030316576156442045798599905898324047064929771715505204857305828263582956347483321564783838112555779932643447162818449248592940866134474959059054747481355169372758554476032646836954032521945882768035096624575399852631093112593331082458809082300521716907796047385744797063533921339356432903714911486558559184521041993975800132846125489190462633175638804887440334563144846379677529175872742482973810807746313744160632175648035592759833035883679959062260959336238557966891635636732914271196161069847631065898165121431849300581299130905569584684720381056092481569474311558549370049886695574929489993410289733032960546952649352354375858387410225928105950491036724154945202561508135224003915272697306988118263761197585939191623603562924445303220661706045061753202053870452300364950294429774713106863188109079895476228787709554630099248014690347918254476146080484661693269758278919675994440880684746006938079700309614359044664534581734633384178978652026923345842333608634033154253915470177274883957550643220125038207748822019567419922714976240221392174568210606523063197316927735347622767502390667409753354445444223139678988268343233512366621991115594039821139031921707452391862046036907345496267882490095749248269838287101926750796202183058111091515906526593714702889924263150921098419554240216046437357814804971129628021745155595352732114657912422133587890228836266339843453333246797681982367917915663241249426162836254149095477314668736457701564348971403960863217373202844453592282088874148517975561255812243591045035087623537680242067353303755400996873613658511049822741963131861573349558464157236867630791571229384812558033726390202915829558786230449389845907053495892696628902521512450114305780750694512206327960669454321643160494200092002826746529664289935813756005408928586163493582946428902134903734010024249064012201291832323167657186165636222238204230808774786138289509998480676700376928333789147151602627248629985158154467320303090588886810671499288293927379840249683439469090712242677116370239335470708116391263075725535810422449626622987878673402687533029458562279824595272565001934353164283940560353004535816948470739734354379694577960310664521930338030699941719627289418963793177412813593833687138387610572229720931878465316649520496326150441818628083341395547714647691827673909760689917326340178663732494269769095330404773400406261455945525742958115357527186608959618908723124398837011484670164884003017663197108433871657141537301318260741867604084848656560347778797280214546305570203587508733552687140162625517925219778213113461323197099116145354249361185896765573279795896453417863275853007474077739011966106655416658961432882680440517481046779638786661281639792674574447263221673824583419189921146065835728069279948301090216039851362313627295884254806617321249477015866405891184685263128577602944293549253509879499795269189692446547091237527466201369841182201817861544573196306469798964807020226975877657114196476382827173487208456131299885181788910343674702078438197416056720885616704107943786755214646051894240649819884626904066473348583178046232241223972708422422920095804721090976984289074869399861762650860256815028888210103046501113401647475083012681096424683515173151492724263267010696210395870485252848932033293275963262191834225185224057320885970055093844512724070311679653552740557756320894401182727328758240218675942917499187139568716922678301532553537993307047098604746358893173077658474106800514504154729481376728036768963738362348207044444487892943235666291025999427741016121882827908302802945743665090285950171889332654624021012870535589124197072316357738180056069553788269023359728578513750377182777410144575990079255381820123495275264231750850453882430217738086297882695717851372124967776478075584592577015840408142264894041783651611460333724791464685086974493757315265614280730960820615661291556449384357527817073651958681842359972124611338689784966374481004201274835638139864293595571581745662078233676370131877476716818927255466467847314040967737956464174297691628118395447238734856914131993511384309782665993367083342222720670606338452459128684650950967843868770535095856761384041767077602289902527020364250248665395598978016230115018938517468021041419827515818434543597613130765404269359275016416317444033505735146919623658750270293001062020817637386665193084703073084015141275653514914198104425913166005166811380225999457885349024902469485259350983361087170814577160228244643216547700121868174199758596611566760619978995611123802046262975048211568926866155080323010642340498851228490124729273285841953169339706319312673154561412290986669879214976850522347350266912393307883323257893510588769725010008168282466791884449721340519373538468282350963382358284633641031395689139114001814357248328644290954777599501152319139426610655422991417224998697139310321431860366665948849405294554128022735918606467986182228299095479896226971871426308710232560120692231133779584236323697684360209753286657722606639558985422517996979949732357101251258291509785780375820749253459331829827874519341915437333355093094876249188300135414741228034225145833329356066893244447488417629246067041476540058393861935924729352263982224493396378732122117790192821278213460442889355590496361202874852501026736176403727117486012121781926920223885723486457953373802173098464802505610321347465661720952458926837793970889672168722401480788642101842550352805293743940116713083310312600228733236364845265727942462445372211313077809341255749923676850899030183441066732432742156386505553371464375205987588162517991208181094477620961712929455324790930574546381755249920099246575521994475031075999377736179533124747674917329369036131475753031763612390210040277934188969060950198888207108233424892520671068641117012564725667614190640686331145297187109836963349462354591084300526042732413290770178800696329989030890362122022386555060189933905879382361728813718984880469997418014499446674679250444227766809336528449286454890553723787785295518018618660049253717012894500578900651790749524399499860959355696337661740917312231241124888393209197166094886369699574321727299348465022568039445363139726793165308906969023384748990976924824390370973452753635108370440877752645326056604829435526694774403420364340292852791077562126810025238708737521861048538468171688482981000112272801541067122467164240070558191137615107173675550834784551906023225153710127007705952562298234434304338812938533927104581871734594853378743922154813463543398037344239184932269959721840703940916422767787773330082898395355652502729176689623505845726100401321061732134389670349300092090126842832933382049878939925086445935305626728395191995395782843935260225736402156938545594015468126912660653993720586123799210351923113702285397465642943975287501354221786242904288383224775534659534588791764394043964843246121127022243278246861026408620903858090944364636011350717650820218950787199604255910697279571707104591825837774154892314111886069893882291671195181146117632075603150712454993858730589986784409965382916759486970082386583673634195429288198190945124324471257078330519241589900792646625354822853483614180882616804763990974909606832562544474826642051220528319442641111831833988148014438929630995589491518386405637141422657043589765190250704016713359876758470478629398785824641300141092810075870030202079866816920564041580779373967108953774554301019342149412166429295134939766785417654700786525174619643902254270328324994150669476446656728525302073369224276836044781374999625049777343057671123245852774846934176587185701659016427687663928452567670472291018963311300018427518527775186713761263141525895588016626424016230261732357243414435929892726391319621954015991715039887153434692774381924968046176129886570176002757013470052895367306089248133144161447155162258872199380604552487495676937571446005818671511799952937872762090777308593708416330869384629149665194122786800908719575329053742761319331943859683030751867916264073514921483298554711676746115739787566679336997979503286742901230457463227095785202824331130356312896520380211456939664518883043857308386575834650413738649039248869143304815526924302226385755793803556558315851850656095388046122044766013729524088236565133039193113006445498360206629338436758938705980230126822825046245821846842535807299827900753338883170791694745603465609844364128205742106222255207564990055896545080392266344509454506287660828706659576195988910271913284450470060059420063526966584855088055326390918507965691676999077864605905604902081981121092624567392032646581726026650252448673803629585590723804484717732274791287742921251771611730851545010411452966144852850640455756036354647962147932085370474682681629574228128643096784579403589912832995765006131619290906264698095191325553145889824977236851258793947168584090447877800631982835703862191748437836539935154476051188709507059473989614648544988570085809476856886255847026841399459901726012801702575285723491911037389766080584724877988402358231473727946527913763319987127506512159395759024961893931062711401091185184440796421686729445261768961731276795909239697110736893161035884661120853977551975085329259702985561279834911995631300149890489156842509422001986852358219457148515335752017430008786353621192972308570321622072671654127977802211753484384128395348534789476860264565114291160576690472603795025633946561282035689289459988528465726993156759189101669611123528813765834010325654868056168502483214200136256351425640598504247089541958143073307060200222986534185991677837179664153648188570582202119383670435872624124870130662722681060750057250122319668808771635650979809299090032464723758749613990389341216621049681596619008982658728171906376823828553444761233567481201131800286526465266729246906806097007647318501301563351919984248808621406949404667497346882497124296420057487776739845680741627802448628619189264938696176719156273028078848663811522361521606561980667214397273165725874992521523660223386582662543758670296928389769177786660360388051919555530679992078456536526657814066986926286588495017871838672313059936301635141238848141279459468614222562290017069930659338959690435498127787953182802454988887483294449877611929071857451591167636641445741575069489818260905619534201859435644377830851576608755911842702583736874986548167090149069118410362997967307767478782284638457387326084498606390455850382763755761431298129007977067966410308222034249536756212290019636476407098613684910589699651565573444285923432489629464145668911990206051781191304288873998531102055856961086941194170624110919382278474221258532878296316896525939961716017405554726183434016614611341099725087215905763474629053170530939773246481141420653993068395961900181589054295344586983366430383962792871885228255622972015649446121055843113774478659479247855980221268701245892993304866123551931984932286700120623400189387002814013818270081678101126852667526889226133843015441161342360716679186294605811605439050814340215633960251556679733676485360139591505037156446892815856674149436830129448371668223545876715559866124324332758634981643364540026268678129140499526299226200674062009468979990592608169818895455471853260750676247107023028131581986129693574751573829841762393087971325719165847469217881602198874848403971770278807953573393687124985495158102864802547106848940233487819072394063562272835050439696817458259184168929992396980262762017454173391516924856898113634039541260748226027057801312221130861804426680154839376729461953009659752439936439529067193758633493396739153541576131590773492565374726160060556475004053660623193242229358015171470808167447778702161138673759620969356379503961102502317230263852426705461581583410195109104865043400305011865598399902303068526158527259810580273955014049302200424072697322965772986838213295854809521289334696269039875188412284742714373283843194953015587092022825949948274935704916942075370769066474485401995646491229160389033346335903937819062519978686166713226834210879523736266026522575662385595843146939629237067463392559862380172888519068444762136715241375472594784467270523366109837123196963013931787231513708156393703313469489262644633826012706499246589512897224635227637863687714499338143808103261181114146392782654688995034175547804216321700597188177126712738447738072916865823241555284754341639313338122373718250533362824693785699257172043998301427802733243504619405200493220065505309221148661769326806009432991552954386047055261106752882451771381230236501098640672087673538085652986790280847548217554379572295459387435821405085773522390356470483036629390742753804652980742299916116539787577020214947119978182459525509247662111441795785458421178365282517139627707909090311895045478273860127545223444708547382630734148152838589249379313018543448159126589667533653612851239464491720636121838092391479988689426587391892364457529398984992155681130644104496786779206392747236889993922298893457288245507203162075694238095017234564357170631372134366982641988982307303048027965786353568554912017263870641907002001309435319574768710008512268361988935297049038820913767136344422664939689146071360131577131631724588046827880834547513025737480256809526169315138432442221281131127801410617235073308656677187732849575337594466635010911636292587753187541287787227380849132353103181347590081655991568434529444048497691340452328804618940656435397653935303461161059643621465151742172180054654573684472979683332796576028634160239899440787907812732648955589077502413944580172432900502676787576779206981268131129877413514706100013871561132567281919082761164855668638442087039582328864722765147652944542099163279100031009380751915421422390396104851255028321315310547081762289184000522838924111488235164079793406158799688649357940565876818790115000141235570566295144626871598165616960103111228656733844955805634934092183279996754854974312664972644563611133271839013026464390016405846741762239240926853233515839180702004798491329311137763322222328943386537904245355522292584520016109744942233437335506022325888575214830201213569731381013845413189792748235307489218538374395576059197172836863385629566731761104342226515354467039397212295594302488319260041248061884001549337713088733344465346692545710533423538829722925630335730219128972637880463162794564128143912520122396430958110838282716940610703630145121177899254357249484395531586942041692069781635510400929938858353966525172453208549508847831619418614395578327862040724743517668727722509770287904420344571054144828224320543966075140402542118781044877001884090419858098962626442569537943799312614660978464462022595292977712739438439450059758609730356397999810254695110978791831515489271636977774785172715043948885596704574092939986414301609413689169235552375095309950937709654071746328765841200577628038737012784394862884769863610467973377404575524165659889662873279254255013183374979155265094594113846081705941184868928812428805341078823345178752237746794558184554452192526332696273112324661084066653923899199235696596227208354199162490792154064558241924688372173861757473451914308864259670827730967614378703322939730624604851266253242579413932384373252882198299026533862374306333672263662795525747410532365379279757250885566192865194809051845944598643504524219684749055201410721770230202172197976975152766121285007289138435217624346030418761151645726697498090278460751981738651017655118016895590457997762122747062599581652968587807678388849069007351784657200944679018664281967586387229147582692823605791303378829322089488410864736284887871407983673027947266537805700028629346722609144222871164668760265476380234916941149592433675534128203266157392483293590794509855813615298286727992374967157247092992964810465941533462150433958286968391853481424951328082431741499457757776583798146799059659615433029224796314079417288918780716694533145624104067037314899342193364440810169162756535545479225417491401095818146445588883119308279251921559549292463433577796463982523363049501275494875779789455797697627105640225452462293076421915777827286663683703476303514789466601500639625314462151211673446419363903430060244453285920958300606585899060968591874229411292796054532640094706938984483098139605786983001240504577041017363747416243500978322305920235088610439347791662265773097416624175607853049224664945749889882316215595113767971601498274038316110325509815499063136977677655144124008359970338927396211908095010378195876192109371058101693175855967539846359350397316152610603715143207215346560796426328355302383081803647126398711733082129610548161227251362252823491174810049652971906579245308700441207023004753563831057515196380887319442753819641123053026591979876858877673472162381404436720635134028154228300563242591676913633179786690466366220863155064700380043312786133797626637944173626467690966565202409736243820243483512902427675578485213958260455326539615628558842501373428332959224177745902737774641666925529117005684328500121338355884795601811633476459412992291351070530974751080315332401021838528581033953692143371796023933692327338201834665065472835158176081700749782949524965109098591653472785115020563740305125361621793163222608008214206247327884174630134871015317744352985802386595729579131317980070057600204301085457822989043335194392743807043755811842749748867142712576535911900771524082210393549823004471160897577331553715214829345048117690724592894951110178568163120524917883629491521360660254886962120563479255974846585963156974410399065300474889750237569849817703092323936475838874402771424338739825965133752554975871513804561371782965209067459479690364898664072444140897231646154546750851734775912168895221452146512298622478594314878974204829625443535813267146315239993381938688936260650020319845538354946864143198196764018501712108732242756389273679322936159326528357228749249329333357284440643454425733400722241022234294360439028318184923943983256707440079875337684774787642932519144776724576136038363054204417365085935415034164180455201425666948194045369262207990587537794274398195442777092227034617726170402228652736518547729594475932523215100563837784130001978101992206629846136488939266351829827066515640955160909840457499536840069241076108842821961916880258566262854754841009719106922395053380188245102223922349020685842157535253176003714969412953223134595925793604587169182877526719057811059897890166193755300280473246183383211292277925416180906840177197111258607148156426800382937786589283273854585107760227225065287099303324310718075561093904879322587181806251946630219315963669918417855468562279809373141429574107667285278125531431268515614048851290270136006073286532899446421480481690571860606379656982514539399132911130764732163593369918143165274306013226771550812636799954041008339168047230577074949323401359285356862588481586533195167797645367218944897384068179119217991884061932223111804292263884637605758400560968646330643659078638553656912960989643624583256378204677437917771009467573596547453384381687667181457735169513852273099057520053473814264629600007420023223226418467498141595708132300615889372737557343610246302840635345684247308895029070807822333263952785680873463722414315862605562989283892823914572177471599248165863922158617111773855202806664234074476577046685680429947209819767301455597520281980666359166746598955420573178670340888572320691105756184014954624787971865403758138420716276026647165593335625026270331041463747441735554226378361276123413679825324666190836034471435192568682850624974372110837583516372331477982674710183463895911584000709379231969245946906295214047887910960703954279038781475616212006337271161846275043296734855877395236697119415863772224910467417181723840293633109537783503774052033456923630750752066699697085327864689224849253700728644897536089121341873622320788228928458676443640750779627852067154579795892071646748284710376296917265278468908803849195798684256124284733630901720280326786822119581313496642736265235994978161497452784634391581103359805764513123358193471991283696049487170357685934658599413093602599168547370397236860802882089910265638080484324070812436228284932417660161038678815150622239009772419906471864369931626338117039918494363594334786795925778995224639578522185690073620195858785338840197094086620333446571848767336878391695282587591767970216714628980393064917999990115617103865014715599504049490717932507792678021442605985349604718458488993247858779956469892507675091792810838641778482677527054824930943264094574470887301099020153367533534303878180768667228127189161514875557153076965557711799041336806260549442328783633684055572044333208383420931597040286790327152009714963698360922425960451375862724198862434486077095660528175741904411794605250445967615230831959598812085290360792245625769818304197844681538221354829785381285491841931952265356357358930178110679005898807592412345757459711404426574621881532093201036527219487671872354201237294626103594896731631650260185715027415359670988073556893531141538758194390593968953757188905119420638716278398941373142291212701922213211741327741753725611012211325528773145646799199219245766924095539534967453868956987864496657509555845832238877553097348930950987723249261235753986275294608769801129321182704378513579142641670121958002259500047876717663056379001380228334179781483827653734593121516894384800124609082450710879337177461259880583600480478172448296480579620992608882758682339621837062568011645815269222145928596359764628708044769564265463731045118121256774573712414376371893141512863579719988948995359372979906805928824066981291378075846512100295153157839180169900712535323387960237660191078988926565478831309320711743261019800265291356384057898950180549591778645053434410111538263911194400253694520454874695077026786624742023627604678660054671950846234415253300682167491837287907580189506644124454515412827522845061380971278710460254890997209456690125132434172384887320287313811921641717916787920197353361495967378578824141277285928007807547691182454319807222685205911948444391889753496586239888190761491873069154487319117556752184181482145549771956039841774354700765708897292036516723855453974699072052278068493651590317925165652027632436482445684399121412807972476685005875745421607296520283099128453918450863544488583096516930143565495847034489096908492629485149005317962217052824019421823127159928956978040533855547243286034381264599372789536913506795390828796637319409190568725755599758116677104248886267437009436872346083454229774639589676521756611988190801166443730287214208292355550044362167424271710875974300437949655822996740932315305111541502024031147946620811239743528907431299890832220522386233320190883303577031407241202652431997071537208192581424116008865644985621023809286924494285228215377773717901730109253201416172665804312832233687199601730046338074573591073186979368443808715055735615735369381323178886084819726051301122910063224268299444755701747963011864534947989427622902697053887489239406941595014692240280363472107398868888527511955189675098742909260617757497698552131671934317905139318545653403435028679716080949159072370220638163535107568239377328225467011547444532256532946195731040705004170406412198229155812257422013352817986104052047737043412344386146699789056566925703953115526564002148449815155974676850971792723066815822800731572135504237561349869314308040728134912238305090583678727791357458426866989293055841805733285343006329002853241458596082849492861185680283620268999740899620679942706834286376369828554051355248343850334059924803795211101832855366106434139272458611840685096866549374050219496474168411800015357384916398491365646219870004527435385389033680443067887870599102204777149638156555254277536182948318690800898485956114975507860198962103287409946905401566152190024879317158444781595306671821329023541986598198412810151029845666109551250417365617386979088272242683282862036022952161677314881631312680291806202003590725998547963103945531572418593894705013529190963554138421123410804659823550561115633216910267282094466014721606715965866607793570450493815212024887592037517819781622139248193509798924694661977047215553907277460142414903792540953915107359654759062211171219267085268253308742444581381628333067827664856391391065435940599124301052439134858083051321619597030282651939840579888776600333588301741628828004495829813963116308086732027454782048417179294185151866941543383362067259310824624046570826095271644018674959593862955877523766562129479350150138865712576875610851267148683609536455419100231243024120219872485020375745014605471895669184242405858450520589983157918536221731195885583126257743388151557341030148860836746886015587331025287504026989683529456500377463188618624589766916196059587053522686262538759364704918782388114454027944646576188982763606668377176779083719536806687114301282188232707452270268203938815749861504496894972152549078228024112343332937199652168572129666605328316444047156405848619545320260656220095696770639850677559914509924557085688278815801740845929782567271149192675598673691216875402695757185288919230393383462331773637116726628956097812054253456338809653591922750494107163898954845025233656820322411155283066672115308729424592476511746335196281023398093590881575790910673764389191226666268810306245393814570741776298556247779036968690796454983193836115137042891053586867448521105114548588091143661894960388640421283743847515320961243213315141607287303074142432494001869476771117024573337032780574814363327667760668105435302964475952450404230852742052335613226763319540387612579233293213837573110406801763234227399334744364900396427551251096889252877183648004538263945849411265796340080370019045578865726237318233431743114585668924547245990556199671015690809561796683672389270212476594562380166055667362115215559919252830602916363421409841622777242009439574970028180002377018491631768498513841849171158090956174990713357470020883932234225527717709908668400099688954278518383891370169901382935922667523713894636875889515696138338722099227053726045949078752584429667993333082219336779729084344879322534060470635856764320159123937187399622402639648553397782460991737297208463836519864716301660389477563351136082179636841869214511678874256477861211399459542083005392762459178696708174847860151978536569712158514110143380142879349595445923074792856009750582448614817178850869759189407988592869298765484688198958398307164278745797554053265448831395915414522909087389668783877200122731337467954613705423723485281033267304981741621621642334846175729216581502357354772049544823068208183336457103344976853151141889048268614436880268492127635338731325569794836449982766191462186674421077013759890942362507933976211613456802526884034995754184987676060107626670351617374690733069515978612756911947310431453267426166435904281967070373162749122127182632243421272318371354839526276513970553267986204886517277353264457354268983139618822789783828942652479195539519798828871951345908102823579291026002245351671584994642915271280628500092000784574414707400721926609446325627391750879088335745392887180344470063389924796153110662148445095682790036119039020280822522226310906419457580463583442152134094137265925389137576403414223681009301688942229309621095143214308750894807807143781348392342300848466425104825393664946226038902727712984368834371272004244275448665656385015739719625331819870984801701497669131086855246125617284737842796591545291055979422665342754724639084586978280434871691201511309004166171256449041975361202976821667363336412187855703892369330976141086041546930685058092103436808691547778960111405549138910145175362057894686222323825205610751770535919211875437770539417529074160295762041577028672737683427503153461823787677117767929239076141469189206034935807514219741834595608477489130781826300257120924666702014338771088558614205048576917244140462795301688978354465305892195999048788620731443463591529545405884576237894683806560842574935535480216007228007731711744451006021202590654196344305914710109910620159109424164518288644131816586878548436549686234906679416796589788309588291417266094436284592604204526142084211031151331770262573982258160918312824241158562075827064289416358615010102742848961308171113242688082717837877096148257478084817403605710831486694231473626936673340567432530081040716218180831239901180231054757329883055006528335488597264036906646451181897474717038086971911973612038920649793485699347787078139889472503874532908328098287782461610629541239484394775377980712411587377098164084863588521309880030891316729701894827193540253379629101375995731661155682465312060085005534930832315774155637730095839204203780256866798678948780750819605630034739284809851447202806297422537312355321877730911557534380118646834164433936725177409411646497428844427638899923035632700987477862524628747254124401240247509557331803161168362518202438744934702814996303549196569700505825914091523531044103828056002421702958067385698975273673191798328153940370337590706205845598019116197347935624749125850880416768084984784928133137992928865451767350650476462798834990495793933800169432504250008065825029469406619088095850725131051741063750369245649577559596953294493919308142928384987689829649994033146417832463426332019807998255322144476176406348076324861178246800929841186765015131991103460172521839380458166101872586458650928700016990338989061868480476526421341985298602049476785901487730243178479457840986805691920061402220097259914055511484843670962079086784285038568243113648630111124117019004819792104256554455090309852414971328800349706372553664238982148287444893026747015799058380510392392041878272984916377079701473045870769272931179212234553954283786058286557436825209598592392197671154142268857298557918393012715684232698193002039711176192641266291814486033193898451449453535498041012313843693511053911807724267960662431157468322068484224734788244330214704241248565256400188585679205163501638762451359893157447061265354233436661522696765192492231021219479361758196957872176578657914127599034394451142632412812414988377869870155234114962408929278721328616327125099124072238298117828669366440240809805826149861520227669316560207484244550441325220199792142364523830569843102260918525106583843310917160410030559998891034056147971628115019884368759754515594264800990797802605380814078551420390947783909503009879827421897958026870182240284054658882627748856663481462711292424244787966104139754585556036277826962848346395485428610414750735357727148989199205326007536674167931907618611064899537784615569624816286233994500053323614593619265159325641334026281626902702955049760418228073623932137554557137730393758176180735458038014818180548924396778525219555986012183444301176810855929170062616115240783178589397408419319036641229528230352061310578761879485476521090846414427493687860102862109026527576968298229813933073223637099114931432889511043877330360737667072630712226714956513989630070805348646878507596384386583016049166896439089017292318461838662874051678681459337121859615137066585338853389016162968666461892511457673820385496648145119912187789938115159427338133936323746538085491799066784447162504331117398105352668104860547313867768406857623635464023882725464434657564210144634434405364023062423016444735888755683158834655820242548752342310302171733326480500974099930961444981780927782298830002339186552319982244022603441245395363227967182183652862624182172206728530816774816191150745985434591180182859150924895762266030943138978725934640818857145778287651411039682495447093990001364280208235704634376352431407318496859159720972812400619439017954908203802136173569055257836554373165752419943841431308192880177282301619503160258927138970187092302496294257184284482943192020454806611951421315333167607632983943749304620685507367634104381096096337726171599351544028360329210483063322551337101443835846607434444261096640913391837412021638704568133097434506295086517811899952875803522640327693977961250467220625422995327479787947369246584428695395329704639472849430385789678766515914593337635729019356229909142238510883004735645482581806754162189731125431099944203135546526030618321209102229676994330160021964434596764170032417443458345251474662705502189642398914977031526123733796803475700664497409557854206714881552121676496567491108632374564131345551091728673993505236312135359195093506923429215598077714493009087199211722912285117808558486093627417925688497420398438480887502260333929282131413024431171907481867994282988495195663241912771102000234629734288761082558828306355567546553677716961343854887746846848101678759310297937458520180168052838133082494769540756770650752047718654771433444067992616414939022863469320528385881558943671307864508185301274657171904387289425426526259065300819209456649712038687005695151088853751477657967800518945466394157930420295552690161012731339894488769290090836754980215124761032879370425698856202310198149233153893843334246316049533106865626471837582025798667078388976312979130362172054580835477059270403837699189617479014258919473298274168032065141460228681073000660252593320293211748739689317888503106759209732930668368631863903380561962389603099797136248777525781595797308371242702179920557163052872465388306946238616609906949563925472768451788437215645062622451262522330880886784074135749656097280634956059149208810813579638897587201954008966075304722011481173317900067616424485407280668708072090894847702826724436940209625848283023114647850349554127314358255689786067219207801886246206356817052509916144500950477921311918372125599176470629018977006081211110273510005099941005820170627057921394112597534265598608109001150755530478446132153608405827979715828910341321824608785981197908448871650442790063253509926472303573121029176509538213752576615776196096011702399301316565656540544254354500368440311373490171707451393477259052887801366843863285646159897402690927601156778917639306659390209245834611058178315272453935671867125875387025657345588564838069669838705238036725301013715847278623809328556794067913482951809907611690873681205616085959106906180988753700739019762977650588401821638361926448563004332305116048611377242410205546255627922439431286685000081366845232547151267638256453714215797524920120297796892787297429310709294151539884478051158389907129679451752978087584320713049012688262711294571192307189942627129544336497628757765960998906425162765233264893074870094217335446939017265024461759235505120175465050170281351764792206983006372144460582198832451970623135946330660418418992152559964688595503986097771442764075808555715483560025335145060991788901610236516081000310875552432701452446533952917110930039785098746243253092161409117255297150263610169150268729939388001159848435784672811322891116273528694132955157094796027915927016638125720877065355163219977811174621212853418643727683324818101136656913112239637018169338222351633345088383374910237531582267434063124612289997538469441521715660949087083431082930045861799798218068612939529797545504465994249940499556086420116341912303489852812670661614059657530599517426199486314979957613000693379652974591755001393283053469062192110061921563643211717885767310522714483988623942464104500580616569994503822473383030721543564324487174606604627719636131428858005242091270569159173505579182416860945064920339809052297987474329467674247526650570676754715240998977352610477096346727683144307822447655518175634880657301211221568892414676858220280771347716465614495206142946548350363966063871955010561993399053953663026211967706888479007507015150597364750977187436087515801006031831564094256671268289669550322530167342684178573669382315524857880036591824940300151363078995778925412145783480991565789983250008869895030430232493021690195469897090230672436258676417603726196745164904704738936500490220116402548875207290024591064883603287196515965957277613442931094604840667603755872017049970530097073414626989785265722206084813807078987221326595036803200874760921309622165109211155469357015139114385519393024111889668839837925275339606091198311311210354997251549550561156055951670535859117348425871560749334415797237716139437214811781283840724603937599125061057761868063130451745156903731711804492803025950479661836858513068221732622629962771609267869275943118004058260098204544947269480642413577601648369220934326819585185039758110018980469607932165357770256312472790025284322819241124311459223709965620256140473519748558013166034835116892764041464610665212128796169792899071379621588214278688745990799532287254137435684331442412059894617549941192088935439352767941310489786927870305127538523383580964107468695531980509189157503462249675023779997558780190538555250484291372920739096493079797390754332498160976024747601093869049814847420378580633008320478729538904478848726434216766097526983210473357400472205176217495288064118360640131393406692670920593130578418164235403318148637514981898203644401138704029310021412823544885783719025479368724252874261138099842129593939008190618352208586177805618147294001719818146373768135187359054481078741442876151140658588295861693235425990293170028167883568311733439870714024005836411207170398431609833793551655091169803544991815141176412323283728396856013340596999857586616090465122168903377623734897191718510961424928830221478264169175834445625208276625910885124034584028502750652152800543364618508035457192381589646168951267304162570000928876706427141692985266505983110981862041980348244629774967420604805101396137864473491604746980186164463888838867940614391480995736055671399425396188045243029384294890690796407036536554553378586761671619714989487253228125019387614798058826039729858077449506649252520737767082118206214588492367964979524568943209377220655759076438716662703347681466673600690184043085664776810025498128446479444124411833369401034498046419699771832402399899693597220385025515284366881639528437430425740645865782839667140989137527217567529896371960608769851524455367865334833990759998178953940054475422091011329322613527200486969543512813425817420404965596610369732219532239345042949778707409514605951168779423971991858434652610718537298843520615425648439171198452572719798089295163685886747231340383192920140926651264496174716131197211495453936237722123289742183594228010981464089750596589263474610762137728434566659132827771407757166226880600065206123792363559067141468522964839450230802942772028284858798437710771746021421769412594151683474792946935726802539254880006204758061464660168163921018134806387947152876243915338836675916429834623059213119398311300010854147170949803121490128094215963537965378311065530648788187746985470600128794551589721677620196174775278327597410685389200012962802578380936466973145169423627257208468654465652717116455241130470329006545930772696963772111238132437402451365319549781420289703635812861671729621445568001244785544851238791840281860194177344233126964063207780765516055170206216277010557019075724970198685832637297568097023400869746389516216928214042314501922022628616349613087409327490966351919263898434261287681624102322012132308928019470800678201779170528794554320895159808794454132608761443130369653512906986317358896619841471356244264704093452770694780292838673286581163386361144754129689659719510337614415034492447801065815677238255483861370971051290141405449728964963379904391136779453730759890710920185417345143555415029708779814473986726981489155446391027368447279878287574210564677598837239820281835665289000590977821924025765505324108894235878100592329081558712366314540316791424255673831277904486843652458570154849446489889645404599207310347055732204250425697404960917154012155007376777541803886844182460801488902677685114985948114038570150684761631606443289859808902342062103089667925161885553412656886743049814853478314710477944881823846259352025930634093107823570280874872109927061226624361623983142926029881898966644847239741040766334113868008869192076283233482784779260171367141734868899803858578793085065963477810059493750746608566668757519051335108251699703494931861350292393671534811973504210498588248362277065599427713726586181990377167706911549760221947470051543470216217460334236621925562999645374221759853385145645294949058486355672729197843162994205363772643735283379724338143444667935314636499472936412377017146787746569038811303933854095212531603300757058716824700157428855634701811279316326855885994674718509655559040654833454628378815882242252722471066005373308510292788285868208180527046300902170410013085550806734670094236111405283377795290853208216321912242831217738744705810953518525078921409850894498621544134187642536129320811438379598909971402805492052888068271690368538174591359332037992713312793467432507675225894321170382083143975379895296154491138738536719437481203110593530288164875358380499952363711776611810163435464623704339307519913891134837458300360141711658276457809689660194251831158883246142022809085577244611863898590285208581057147415087156112929361703040723250754684808501254527802221580197159862279819850252990991458129287132124503786556768845758894391714696349867633697196328512583866973436155414863699949908791499381518663473794913475308816746856113167470952254596759059042562812086752427290335866882016567870955915586040828392820207084459323484231441002913581047529660536095838148040150541175791259978451060293173990114782096103275712175759659338057703700496265886909071564661256753067702440270437933447540473197721497800799475714791727785070037315149306092385392306284221540226654084319856618881686184948180543772024932642738083563058596941930481501636551495690627956167603361991023560526044299495775938720957928817999040854359691590105566019115952342558501781737076301991439126335465632384781255749239601262243920506457754558960732208503407811560205012464746907443260011869211529398661083484279266631881850537302497215425573260957926111659691905161229956875472664885084276520399841277702796510997309621386900508190652330062171486828972200725686636287941900185372857128692900564946965479274048021719915564780301077139122148332989016914257482731979509507868784792480249527427491085376740541235685643881763048340099980019932425898381657642238393768373086343390827806332948335701573169744911577061825569750717519280411837740462831122032723332988659199020565124246589010305123308170307945547363360043856099768434840174431340094224804936305594882544797033142063920869202039615733312602338425371511563411059850329920936138486846496326921745635436081130495909547969884939317996258772163174938583296324239619899335755966614210033654360384982690106048873875146146637079814183316699503544738945849407916365948750313449187238492274540231759939863424629777156887001141486977675541842834862716367368859710717717121128463892908722189955698658959369963428133263125546466821090808430006885437418578247389752819766535021814386356866498820651557659792289590454898026603727432083785522779597543675514432582391178992227439026193252962293872423132779560407213376715966766324674917236043154536793102391562091664627347264850090452284007511090750885961115161891283377606497660846485980849148328660269883261732189144825250732769539510667154070361689477484553702978271453133366376094895183099482817867564212518316866719937468811184292478352287400333081144505938765153898398874046253202725922736737233360200521010622080371455104762237515316356111218607207639365385989578236361174065010019337578994385488130237070844773907346735796414575201418824258552330018303636509877740436982040910002294197889599123520717785515395791629567796545578102302322643062862504980219635614055512329909463647580394432892570855773860237444643299956234554576874032690770382577670216825337652071565632953750513164540406382138608078801376449455185250479379817223620390110402139264973722016894767768529787071100059758850429139720081278125443912204477956237257013442231946023040863464558657613727292964150547082798420156638652780710659974996809043549959463222118049136624800080552706010205930036300670229719873561557641374559739709369136005042628657514540941559002125076989737863315247976425869732618832154955574554132884338251967101065093738916353005958494576541661381658636669766229650058843639450564023185066453355364229386245679415142969701752728288501174137351045223310855308297056641927366723008584963175341625777470320006324978718609168179746578591135981167706011670617152608430913926034440335844959825831739707937480395441745347947502308703035134079698359402430325163240850178316450726682854683180039225237272957333487287548672807157124983953174265447043804876183336026345281872290435465880838004885096204042784122631431637569416598766891795662698548067763399302840686940540127449013159641797787505644880717677298938717968111836069938596940272748406441300213934164212511769486952100914536850874291631872374912517131017521806899800903124374726306989090638253678153246992879442785710826397520010458539688233316980274897621152156519975486752343091315739955678710042288698553084922031403814905820660422242860974518214274069819884300757552873966917849452618559368022607632561168753858574732819796964601426613931448396683719530535991892204289736002902945643785850634944627037697241476024098039289736107059836724269539573767389018449431338702531430529695974825736853136033642486353836682442620676248548971132274685508491210594584652057130822831293033102560248432326163503590192697545063905814221503336534410941559198189290038368060063029758635544933949206217185764711857361867402654643816765877034106459200481683283487300663349597914670547030183519982120579360468313229957904723588089744539935295556137180457728883357656642792713943349902563795526036395690152460785860551431001326094595057312729011216087288881448696833756966261368476137127000615031529563856201470401907517055259173527005880535101853688741755569430326197323719475592602599600681458555387436031497408165460396454134904190285913171989508518660063906022119312907963460541258490066127247927505334904246861353326560718350121610519228580471065100982612177406138527048367017472473027193134417360916252185174944093343621899404167829544902906477011155963635429640705575525321709726550529391914518724329548523838695094212654605716245403016964909394991446073327351946842975074908649812069275494045285916370233068580487585993947416452865531363732878222747408725963292960860617362551281353792814457170792974371141607660417682586694169043176379947999846415765660449503925556104759189659055013164743522969990072772042433227676429898624327144293218068223761100171832097912653140155380009586404403562004243438635002956972499267420831372154427227677783528935600320726007085033521340120467083009338169231531062336726864044081869033702130890653522894624145758709409740554765853281173196868874810367303692499048810803751490027593115638710625472915371621043380074433671574864464078302829329742869348928535493759259818242163651150731608091303454084309708989127928067980171259744556464558299066129113193280831264961652540244657868513819871113322955054498255951918005770740022337278713791419351590785948064979652952573744641140512851317895847350562247283707506678181888094871713966650028391892137912862730234776103410164637363528228654281191881365458978993106338312923512387836484262825663564772019740173849185362165633560068036371527600590411905091233792026402492904372579860408662737652434458940621589873002149728490516391086583139820359177458850455915631230918626481499479702123859561359845563496645510473709913224256367314906194380657887870378698991534187034698404069056888335055111236214645717124367568794940162733987980251018376146045885043713346777911760971630611829671599431057408950022131193455751131115769658374682655090292696635623311961063298292924163658419123515323581820205388624381202007161793900383807325507595932717369077560831169839146462351515180312651857674723389288701565435439640776385810321298413580346667061757677274760650758421245642470880959092012011276217082539898653349306824089132309265176873932332250162919041638839511935376321503049035015084473023535297062895118545989798113120027490676359209606367294750888091440166827463192599425437304777519103307419923781781691944008336362406553046298835650813841458394183375173499891304305037029833649164231420628846669726931297998611928454122054729008245265309641942061662099375682867094494561589999575952506820559657396097596144656899387165746338281041431375388926648024537761185343878593261331022933733542190942896094123266853963569032783729043149943678930511011436092329092355682470363393879318307980935163285393559543283783481181504682618142206851399828671313723388362534534406821803411005466998789067409167672858325802139540438582093435151960453800773023753077533343235780496096703839644973084483072903720262598985539804931519594782160630445939917726562305252512785382700556894842060899525412089732467379392510988293838953944192562516630631351637579104791162486706805959609232132216176597052728203019308614378552519093088698589980741499560559530501203406098481316531518399570128875737962219878631115710393205937694585081519206235854039015677904981432551850865388143786460533494472899735565617803286897167147144198660482767719727458215157604421844520930786220139760057163748716319437287277296861139473998676394795387536023856783897422750121788072252565707567877510724967964513844730027448587334020711715431055288799215645449634793883373815722311280936203019718374782411925505750869374655288453504071569653453325076953638645090981828459166568719001770408454625465972818561509319850695300166265425768387740708025424865400086988185866461313268367086910162916160127850291391187266537165265352024645461885605639301346436563613296081527668343055537590932731437331012282758083669850852538293546625105098725129061182393856974916409297842848081473336993578364679790546432874510193123123184400783295811722850044995991652628948331070552695523230367876359416949176268480551419587881179527164085530622670608199262798735660308302948315234566281868190655015676767671019975080835653205429605371784640460949386379990471943524546015525049532956056971199341911650933975141239746818749725051219154090241116048933875504751871213410632295769301883689727974555431432455155796437533182595882259594728579234049416528784473507919205703605907393309927909390273883394615987215047526282640622955246363076211585379162176671169625286201009919675079772394568911557774140521827686929980272489945628461962964966719226348653473900433790355613167078144776222247888289622254854903166115229301876768941834240399968504762378629537526617950598320359128198496781192773723365959310236824346070203269938686966686603079003861131221975756758059463988715704762303299036428610231433778760385582279930770622567992220880730415805769381332468378393089753623807553756550667532710340005313734843174560071071658612250507513259777652940228850323712075016271882794690928388074936822118250238963667381911913121516332875162116843471517451349516030295650823054361970998835337192659135899979358527291137110473893510898406986164794614221971857964902653296938315544976398844810666050426016705261458210393291165973150993774715577647027810201957979826548420186037899687625806783092293782730050813005794215897971167200284440162772970874272256965211114702892629101391248434752410145840796878594797533549954318345069563768066339550388483866432070871992202960962791900882910350199002788200888286106430248794332533692004979330237367630400917276794349236591337411906787708326010910559018940078355970821612330263931410099481577703778868657027527972027510348888239420413324652056264231304818627428736128115680605876422098079103549938867623901253417159298054504418301649442960766708300145292738182520092984143847848286545566064615562779978548255128827467204029189192623426545568879464097896950994553591999448720006001558462314907064056677285627392209664232110031353751191155996309964521679681166815222435470790231872801583420861486877239003568788212487911670319551549801227799545741411120783075055480145837785606058214259110641798013496978636957735990169603441829709765774007353636116671433233589743392030301772523809000675808543854782149237543737846037670690978470771802695027297827105861571158926506662793912752976090443671533371184694025791976415227642171107924036451362333793243529058604505070062031970455726826329329118094063240610960903945813026063339324445688730657430502737982685455249739623834742701508498071269246125278899165234949671556691520064324042199501166460370339570068563458893948612866799911199195756146496567414191668503523238252942907128271220196143288442423997202517416819518806831773122571906836311696053449780294274533760761886956268062731791412125842408821321042511475903926665843972843879027548511576578669678323930377338651578693572528866241330593780973012417844607482746085655633351324929749867376593206933366780760962380413160639526092366142966238724453030792065105421076938905616625107500039750554885029496077668023180534333570903255244924676148064331790711103679643470379200507160998429909893272130187667950808015997564409110635324800085980543107545024739906375875179386311012239630940222815870507750204121772705374724317091533624200534935675075313615390699768613072532188619480658114440115905687483328505568656161697472211083721761590205145007965909573084534821412461943520310236264139255675132447928710004863296794207805442428778732421321622737600667982339689118518175135031333211301779869105730110886308406721726869565110802900945259331885482530730590398303764521463889615615346147136086906399736185085261664145581138574672824087132303564932309810083400918823657248674687209563227219500542186047494784701644489854672099726639822126379707421514731973904389224214452244790673774877155586269423100793426264885386357011891030756485978357424051758475310995234836198429473441709916618439436871439595229212622713201728616403490577543370739318292587773718020938588238484057691219298235142703708423860399450562364399806711353776079050856763462709409228128742121819799402951673588021925621744924816556806224824995400737829795046699322907150105957043822026251988985302095480730524234119812514767565698556028759364037759172627241158642356951544690267281653000414109202139049507056459094003348495689824281373256819142908422207032121743596005176895168924498634423163712299083685928309974168748960476745250419955688398938388638876765202789172500526989988366443035801056179096379202800304669033327145189853954889526109985020486806302213645978977065883508025534840657307328716220676236224051150686231382307785410334187385499229820900390244576058938968649304586908264186285283722642009610625452513503050236560577941869193768497343550313783652724829628005594133193204534255584115355387363517152791661536377447350565987368443904787811401789001415855810481724466991062822786905013438695111408604867235487125357557616247667288584206145044651639760453911710390805706461893585660003829163363785515523532010656663083707919858463484903813807065677888483122694682091035318418320896493759684423055745309679051403247041059032147621272887712014830066290547178497876473208752222298400184653561683480564553930039561239289648259609656412247754854456648799258867479899441197396812339493647612802810220097237225497930620660770262985459845549953573750906497533914042958016120976771627965445075459930204913141615893556062901385869652556759278501108730510295185994467812441502543497035500724773839472456473855983987936103457948911001447936084724980019033638222661993275695357431976785623773246878701185869372130419295126468391046928468401676437627068373988827359255590581574505917004145351305839418146699441503503495158720954752084262543642327460864495779320895311306695110951136319690968760594822748545170749672599518046939464889222543414819585972959509623877209255210903557565735257796331438602138574616659534076091068555233645145309642431532249092770155890459052191543039981792035906443156971685719542246786353302640713770005322111245953369486847800763247915426658302919682855396954899054497715235546385021618669466077697987077590749634522826150437045965683982966014477214722235649855849155586792725492605505661862598638683851878351672674074897390284635638422267618502971718172840758594226765576487575368184671411110823900114824121598175981372553850471453485495829260264860728341658935787026989459471818755083480132474323991675075252283745383677599385588589033946033994055014253371853356748051672872316406532766026603639212494197953490621343165753786324624022023668798826470234145273636660511222354773873597688116367378872092659785367818877909854751113749773025648782056817413300025632220941502225401571307794469012798551921553770715422698504498196593747638683658925825940957822272565746767683396414456871629424454057267348342616984523694933376787607392377117696308287067081359379392023856257772266019268020368463704892079090118647163986489321387788029647231470409846286652369790831883372843846855664791679519206342214527839947845553360872858850180295272756056802557976983016417958832516193901521827884352119034158294356336541722204964209431771737287543400370294258558592960917436184411862302577203665795501028258610742008505784485995690773809444337987166813136051275497840696451920551400787176805342992440006319304601268891073710982399521569486567158908293226974053446966759558979756800248990698442927709700610216838681988924678668752376797317381683881115585173005325404441718527835230095418555571180510714383725923266533416467119167776985296641356161908179721998079566803797778764082699303074080306193411769902288298907621627180252161826949227141996790402882209456038908360481184765861206273829110313356463764097312080846767317027667817980312994258695128043073451119448930536704421572933319415397522518748557585100665581732741705038119661468895337310014244346023933501740426811185879553221898997519148779999529321136488296129559455874330777441129201413822948341499124736604895766811046605533507034423912750720225954404507611184049112316429865718827529802270379990448704541191218461409729119448253061877783855144892214684058112250182799417354442182202314493605887445685416710859289153397688885196274732592974814987072914735763675844871454874355505751389085768543036711034470890213258815568673985034249288532801357353995691280460282046446555514740947032541588768494038504750748066122485837733817033847546167769880435804594964509124363502615477844883972670939377848521186947843577840474160922445887544501586573238848830964998201066977801923606605223203607665300137855359505636245049198174464156472341563803164629172272540395328597882158585666401316954002616021740698661795123724056825421409174467572436538006958661033513559554544334039788044150928443059813975129082311740842576736481408107946140484571624267914524680257190655712202433692530527788494872441704505314550467745057879734657017509496248352848151385603420649779063788293022439559519534784449036509540676641800183498562919207868402285273251738047495137103999268090300727898781142892632053247709036157476617106627567685644713786452708238364514373341679804043394333664863038848938858564126947098254073965911193541591544255104770457619731743912458317284974766389396201286443140386032117114184064401250248482985998814706183048620527852768122010262877188837319752560219075152376000898765319398279764436773276601646400696393114986941610766079869094859858050375868880783163749532369177133419030200835889936764487752758995498398141552596321368879538708018273938209783141907117584366802936664131460708256789341622411606763583809853214046443399342806504508713188886305565447351932974153197067001562782299624806791130984951708339167065800839436257006773360343006147200262985971914347763882856426749612824145805148089770018960364675221561071848791178863230774463236077177868864059197456551648495267239486364661031121900543923379088963866262672527204230407686670436373634376444673597080131010899308453524910331817721103301293398672396421404253515604426250191659483616090267955261744811967192849423208238036540973939445650031600172635803521376415995006442043383705387074019074612388030200090583717137166822400325020937621572313897627619325564564412204504486149398402554094923346041714259024014269193178422485184416571298001830579531536417328747541341172913655234685115395412078799224003292333298487194008145173607800055541764583476427104427267052611528162136210150084387111233762049477337933811912186315568949286820105906678718593757149935292428934694685973478813271910542125176035298069171406791244809235758029623804854754409409877967287863066021239801395009896809038953484285305398573730907409576963077942055705728696592697118927438216522953658918754674656514201672872160111331299871672237531697262371230076233996723495615807085122207637612220950540585334473203603890428470140676837336233838723742708547394844954102866029433922225504671224857173917091662464763610484512786256255296821602204130097956470834333809124910255124829740545418997149572513757249905792409160005196855297408038074274335598361394667607117148201953386775321454638545366622440457282118906356411071345873265216202972858414818809909776620968732731280141570993792540777924183712282133456814044013396660068156386210177250595877825998280848571613387512917762209116527317197813694808233474026566658450963043536986704751193921615077728486282044718742306417892741712410077385673970284176062179674361342431065812947882509058489188054941628741721396898574113768826916731409775365038034823452757689372347100418579434099198015431883886514480571901837913557876286009919878769315545859164090391208655279802706326381746999529446683361295857962321215755980708949945794384415105570420679429210494515755573676070295766811989166249079231437663209464292502980091559959719758737123474139736228198631053623014873306059228218437132273102727698088772572381309677639562502477717815561817178014723896621447516293944474786685363117637010592915000216111861787686295034505545201852291320878218346267875516430073668819382548279130629051720544844628883111048064228747759832843774249014650220739773739699285632185636249662226687901173316058347372268024132676650782565446916284807752668616893314770212791049285816553990514197767337354206680110423486818025552859458303162755434332844204745809694624679640732408916623489430439477846477541391309941798281295367864788080397417704004536318989755337835145923570751607738006832331338991614991827315906456988982752021828004631132593100117953359768209947596901665350891808009843381500302218234796148699657733385290815653471041562118824064235671995653317864060213016410224202604690431916642757283961719332568211034678291197349041142560897607731019111415935962532030837730801360541459497769391429986895356831658364553540906206978441888537805092123588064522206290919304723930811894791422893975982315986753071185726828344672425574617312711668831799408602359420220455456095513861173097326139653000137075560158703363648130902419009534052739195969638061766572273843023183059802645380214119025828253689473060437831359645897541427197824164712505694163051532599083392703380614596570255054503021271603224416475110742487204386279266948393478388003260258345457559553231694780042775633510072634344743059256658308015697822595339967124887265298401507728012177140760693625431019025153952773000898449193985510055412310751842289609030763121728065475139119802200504340478435063305607667866490207158431530354372982242439963024620994454644812455473781910587903577965477702478887639407130846229656546265980807914166328827435197678928047470047751696120280989230003776025692598491395426787182845202858057140173154421689745414422665476549905077148097427515466586029492543643240375919779111002013504729396440978285581578467659518133595586289500255881622487992609991257114227802321566158652576031029235911184411542916846631955994773843404779495716473602094628572176669219764491002822936453843108368525712451446722133484643832035408179371433190370240885591460556967415528591935330513145487622709320683857204546252974021654355086807448759337762467526624930638693465329454691041505785258768992310989258314374192624352862538023104502918059176433917072400598057607214773193621086826368297615636144370080742211314100815407358124056952972511610249080272702097689252743699727569853262632766855032487217765073896190574121228453321386467185741865253262254203557771429689927024186829370116871296388128230894128941943989131193346284461013010206391959765108370715097442057062345383857498930231059940855604116599722917880882690305736803772895308854832247867920787474352657511641916255359490070574779651759989439083130141864374388847395111039307976077566386017052637816563177031026107937507572591362613946676218473885130480216216505108207184182162898843975179434600449402428456759052679783952309039600023102951864222637799081092756111022412395777348895013126484559033639059887898162740879288091933788655190957455260457657002832193488962896777014876223624356677791716675989288150971706947448740901457663703298449255026978048181826543104853787140117631006053776182596138473449723660175777617810606691469005008675588159388816807198960431994937053495844050172031430421517765972767601018299087921740888718901542256553106501598777827341291703353528005179492546317062864417001484166353778145180923807617985445280967571146861730034200773659087411747546095396143822905862688291846498969363292445158170687782363662278015544613705561047679173354193375392510941835780584878283923623732500230688188940568942098937152827835693131978821697271506059888305996495002081590020909287079563835331250573198921213794829459381573273645362584642869301574819681983951429670474508582588098846680867003185838611882713989245387439047276110464350995842726246984911246658081995068004107191632480811410637949366384179132101227015491935953573762785885258058939366063518183864718662053382159515778505131382824537690084657953580017196415644184034037340045317337784484862695198909402926407370604401882823567620547994531756394862679640548614457233541552384017222840192310564060031488223484517045755006162182235841207456800524736595197592854880916129019618360879267253340621384297550834115916071507971742648958988527596606213233324832713538386914874368535083769417281714693602072036693129168876249362271873932720246742512704669205343901077762716182624913970258377520323796364517225383969005281054528625052973587453139812643263904393936620192870747252112833415908941569712264346545945031607473632908963635564772442890779561774912801386336695254433040079417075873362009733942783714278415020133472559257923913816180567459929703293795004644124989372992434984992643220726697522952465094592383643064027207267353708082601994803324495548316483088552625601275338745385625214379935337642412380562748652484135173295532555150026876849359075971275819599560073586870425454279852169145129819868357222777558799011186035175256878996287657476023447529180469287994429519763288797990325796025837743244608589086745496632268238794303090288095800483873059067945089101080124828972983392916423034784699062782371664487157211725743884650325664836340876590186348950950300323972979899347154424383128387814252377886463576141387413615090489907254836673673406740298812838170160258800357332690810353876069226662259244223292057204665543853235250699313199517846369780556146226960259324148357099591156313898486187919901747846478632782355712647642427514276672395479139653683103755648066770273097349307614025599578698391620798465559845887387547551612694589623452633697779266690536214796657341968395580923543364550286454469585053056878903802197630566129991325053385161941690702021033704010117502785342671978083069982512098034699895168452431476729224108040342640453075847086499308492748078207599647465013570989530916070674689754772202730369706015301327374470268691198916064845460560328904287199745226755709416855007340207627624119604146885166587867031901235776998248502175250970002172042322120955128260077388731827353955424935845416812892714869243065417638590032045456988886978238998371794031946025988423898719289511098120193498398368369638722101078496647164950942363965459857303655978444657766984593245623997038778095633132898552839428425605603305288162469621744455761358159570298234035367281913655993629233810505996093149952050308725478755799310499894533006840716542209913954067463802844744910466408603315635967652604029974577026117969217685376056783513191078750600961507346672052495170576195385427557281258401450048504719435289384235670217001326227278932256589114050666349156511041329341741262170016447872454562366584374041582648432268003334073158740214243084033303423890517619484813661997194783301549629137239897995528982702711255850649153075595880646720694214190741620715156420163575042148222824750923611703602937294487393211478924824353786428400505503533297684000945655495619355799798992808465018219098911779956885354726358275025245689734342096126074473218754292158709579036477209007150135131489789378317265117258443026552389096815170511939404687006585504412144073900337529830307698110807079612744818300628334224639901585161726653084521814397266219679242049237627499464272955590955341213692555891640893863557199213387039915025849455478103715350578418228984490192583906196070702788159683766239890236839635427281832286780547220818976132856919387071670720052376471855800309582599879850763430560851029750942823840250987900334178070029064325868107246643377274634634492414062314622138208963501059888237076167573693680934199070181342309972968738272254782464740888196766520123979437342308680503930271320815436728029188267391815869258732159265301934319954149367587923769902084379963379372580278117235730163156886116386426827442906843991378812514446133711297745068604879883415313736005837436847437900347284271034877608233427093031715058981512733845517564376095949531465274290196604288157786321376271221976519619169936238924241232915319677080398153838799201973918543472241520681642282088949181559728237676043928406130529208957423874964464429369329830435384287330762736614360078252964466089622573090932346880491986661029926003764812558686972777785718364162070829236765092089440847910745552815589380011266633588100330825869254361672795425397235367246506541685421523222947627070515957476315672275886043473505891557461137495464147976266634514610100541417309650870523756367166452432333696713963091618159274135459697209453937471927912784498527671894593639108074539386359264143247003407894759952884911840583826876665361036646346971961745456971134930214804268940692789903505901192641857002463589538651710703679098295615462294245688299531140392344078249462027195670656269693771340526450823339362131098072031013571592905530232097533851909284645941762695307262978792783583931969608879632241751015404776400946230913883194465143140215854872844563883274127851434066039080283617178023913956840186913574475362406937420328844283334321554601593019938953392653600415532922222742227291602889424573117709159015301627582834923555697651952738856564608427492794718590867407090923897434747640885734696613148788784036563916594825260595361577482929540183152080680566211117721954190704976550289297917293005527424510066144835802640251779860762773168272830265374222188012861805470346724764989324684971519011850055371045128325289994452376032383655644184521982771707517561507059876368895672825553984347707344146085697376646860858049462659662364182739238522362595878713844631829134325036787463471922039185570335392653798136413028925040753399158880183262855655564455282841134343220732202929878939539378901034296496214479820251702163496213376061123824529095326045070818648511652636313872244727282754840740142708261299889762226019567929700777264817949078293534797739389886492065882766212804019151981076964145151510948862660109299452215169261326030570029609579672363650328373235029238937917217078365830927566164067864954614296918070934399712126149918749646959283234780285035059241352177942915899822750797173406500037773238171739090871266348495154334905341689362100486703402027753828997698849078892535477839584276326908981719415860893312902166112654339425730675049566139463661727308140546926047866278291773355762185415917723084513456878725320945469831727301108689478030472714645283038677571014395124279772683744877528059053711049727481855376195003364041588342556713425057728258725675138000703694599013224166452436509705715691792696906478100873720486921537647135321924307451209504068825564682422089037328441224191849338618685528282637600450660240500128674245988904914733040021176953284509039769861913358934969528785727382202576748337776400409278568487134793895039270410257278026203689043948303742154614280576299531429967815577236734074848890860708479730866710606884050078961116730399691750745423017910903692822901822421290612785894119433468812457532629156173461756088510983793839464099749050868169506490909136676362744485728624177143727579620500442567636769420712849166162656271426326259799684443898452836585396995393124864529208894914198847501174247248731043716298841629530043529777679412676820558083591641927088272591016176657560010606294023287666237329562850744627691565988148644266824938981544672663220182326257957274477619996780356165483782325464108224462406710225473834137606164936350657785159443074489335582299288119983642610851337458407787305566022461805297188897785381251573394622095669355745393198616281376563010576987891656808221787938256584691922903139769932805787318548774351991747713075733407589140708676236796827996764556052907110853819782374031131058517968085193264954311617631871178587388106542012553932014419825292737598398352759284844919426716625057588741792353327801748360086033822950820033850667586559641805565174754013451015321345387262744830289130835233993707181913668517811766815725649933955112027304766163611040403881282539384718788084972929784273585902579701064375901345436491812399683543371316679916878441585680423653873693129642670449742825697008600547104474944515432010264931166653328012635040466582539189161799771444627706296479571403563495616757821150568222356413709366554039535825384281676599099471461410337620697916488319889846836542075773795286122801570217719219133414347445958533241292435699127901128091897814210505635199428693231970706600471772244059585509109742213547332099725828876776447862366686912548116996241650021136164867573800921100363350112701197032107780020565199369184590521106731612041796198739253719577642596438400059249897038324409649933038476838871097066639002607993620642218651761701768764467539090892727603793590617230156916707384450106925248155175329072371263509890410250434938889845431930548564495998359862052987475072860616656969035974040551587264849445916547962031010384701043536507258161643817905550593029497913925538292573686399263414441606022619209704790045873689310258323456151506685859830080757296047915378396824592940307158553503592344509543260025873648865535693677406945599199297603457053879817872369692097217925321374881950841037806468069161385614166007877344903972692008216983094123075478404233430294659283521519836914161113652442445008535629924758517109341636106083971318737319972787824318902258899489743007016326170907508811580119473397112006328338349744500464181360175254370473531849518535851948542441690591503834886043586983086246120271059088735661925430488997725536055257412676687796533468330853430508472490306288565448371375033920050010006012863973360783143636042148325858744988614346492252032893987817342497089336928766905017949870930991237263900099490655556703432515614752929119852716307136645436946574044487276987265109446344852201455060950986116130437705987993375080958988490156032484162023913289433460657863390135390332500584912055749189262991211273609514506116056768939039053576751958453731994425357674691934534738116287958673226588940771342035079898491663864936524718565317727724472516283066814265049170770821730896731783321033978043379797234276692596443118566425708609773956929935863022802159635640528427543931480755244228640406406112211784185385278726433004660706748528341089043923342084801851192647326759664972175857906001863434906390268904822773671536141636189320276854103854482842115313041730926437473064681878712086385118686575990456459150702905078160410024378385323098834086648331626502984542798755320550937468386979845505779261959336255397928586974185438402211873029251022180014940214769942678412834151868380794111311730522366931893131776080522531091411456125280073784282387242593418058625025443781081813578628001457898103251071816737571830921080697069926286144294328849483200048178270433978859348231075551700970021719245277638992766120801033101798587555679869869154547360749857482560318603560534797347747849089065710548294688210060374648143193567928341443130576130917425536145696083540275274382689488416735597021994232251971197170757249786197927759275927486419313458204758946357532496726219435073578609860832780685583728705641873547264500412210490038151451418439122612062882969012432946088414751497380707569002260376664773434235444334592042882896732803613796185367222776377062334369548164444105952776840900699028381368870295117718832097826358892713766441776904511352463742375718608160186086249519075930006553273208577815075030821943012109810879596996643521219333785962681055384206354491550817092389886254649233359874721711076690970425822049343329971779010731502718758928496858604184320491317372115538558289106616916930006701214657297370191042064052009589953196449205916870733499752814787642120802180934463194136344974858865679461305847607401195479812199015387668068424190818690339315579001980605785508922309374163665597822750509771382401711447093410880627616659714311912741290130121967495689504220672671580368849541732455834711648793561218631087381050605646666842058638693372674934353648143136468029911702367064085110090173969969224842387037680954674877648271490747833881608180874752240819969355529302506174909092312677203331964153311507687026096629783012434364362187103413628376255485936072298991195547814266728613703576755403925959095694384671235844565850268456289404418801193493291169572818151912595545502692719547800281217059869071384534184616806509339034356966327847673678504689150745125613272314809243335692443652129583746597621692314609726854631478179361366552504352645501884306350537158811497942557818813180688927205852483372571048255070033356973618970708813273455714618065314530452405961064778698838122622391225102344899991815495066002970873321418178717100891357593162898433620299978944984037573182960532936755140839200476690193240004703901030369063067556604428523155029808244708064263419983937289995642215963847375164651933484283629169100761289230311340818941663596050998505709168875504294306602525846980551168042477193839898131642763042367238336290063057607915045029329458527430790752744790238895627413560144233253362021634118262452727896151786912578137274509632325506387569017637973593365903643007616250994880769083699090804236944553045869989246034588592489183598266146417284754151449907392832375879779271441062827662418632512398922754597194534683890202222572133601411320327456311796379874961167367860813891705493375442931816187920748438827702012103441486555478620271674660049538113330402551564119604641387029194536659857602145976843308433704287393736630936089178174891085406967790963220345069088979083842279377132226464469138344817154983628669908191615622464033760759656392917661732210677895521856142185354443202486557130828056850581064902496571926147096363471577996893819241197446961186093490100328875212060548444571443124519653915700485342375620562088224828531816042653441048518923352610396205958499944598549276035317421539366319077141461054266839057484834401369556387874137047577948039901596706579926034863035870904977224032193858334936280661383286204755006124282703300669763179673609304232204266882880924666941395714841259973904849121141988744925665420528886521198488792531076453905021738810279070465999941634179106213109739645330268200909477633985428154304643431768391076940605221671301719446679063054454161715346609555817007913938514197270910776186187152357478444561378426721869638454111928974826776759916128826045563796962284088386305849908896929869347871505822645737650661924972315298259954417423769102545843846547971590518405773597504744816182981512099895455152259385424209915066232029631701265587335102189345727065506143839581328069265544908227227708171089085727552945773889028260765540574748425580609795511436736693532839813279067803630371801818795506699261475580824770986216816156061437821401407802571550132216023400074950041226123547735689977747993538615989921634392864349807332196927143826119569010709528856791851071294271480991795193781855158415078746083070336180230280201201894428296526751985688737522994013256425724718872824714702238585777686642105492512655108777146576818756871299582035124055182573855946600976044927947330116355870151897527039015528952708502308034169625530049588523708197856534160893300316233128438871658169804208144021669575830499840697868490727213849331604072548368358920829592149706121882931805531997306351539959189136021432774900683100326210992952713933877819002994098514909787654799255946496322384934075231007084229575481240402039342656631619347003188659298789929568994885187767218944612668108910203046488263174655848993118215587051271478191921304195199643365124571603130687398978574045751471944806067127709876847877712880527538392638357666812385230343637303587922087120205589790282589435184353467295860846065202346230412602174298833837398679033774427897222678210273076799764296197788932350810034022684902789313741944443810463520954052297251183773583613223136567832823152277020838521914894810517644458312650607940633549737316853675473344827096540195251078046465314620150573637512649667022171995128842577087307897492480031174395207226009981228818052381655167423290753475359724698448220251076681102055101168343546212652048661786440976588141879017344001383466059213311266821281553307624320212250378200856670580676963306754451431679813420581390976979363294473433043983907761680669535217543796661002431751763294893715738250010557971374115173020531731643934536550940777199084249264120172229327846675571148532445740773573526616652554282909943489246007286733280638709978957843792956956264378077997117330394428097092461789957038845132675250392392192206569275753793843779631265334734685251779647220187638119259062619653193546257336529066995283239448754080368107735886076534154690812764326873289421143471025543664565746606701928026604486525709433176578306213051290162233240778028366312633865700587890660351946408453986977768558811901651525986682459527157129368447131918949448953268510317768919941775499405931587008172923202107877924365220887191743897063294558628925511038717334652374416711871842493746724813650978036535665331403431831466680474289332403033316896362483133549009313368749216827071072016284759182713928283128564711572565543611359531091368932791228242183595026206644090291101448083384292159805477726588053138859788428579216860250439662079371200128178527325900672913243016844000435641488062284935697840130926618602701028690082123304369001562881470430892511045540484875369456594484251925542232967125801390316642915150668442046448391044836513685906510285493721238278913972512795432308536897132956893614884910541864010105931312166581234049336359484698666625428939767397264936050135378755535785824821666760652888312892916005904358076316455226049396350162344987948711479873550786986994453917978131207959946136400921734505835289959573698050136074033885196439635309856905851295048719351294000771842454612404894899861649828341955266199314499323030483184728786161441178168505920522117267263181879368460868926795604531001684160109629886437800466226766009838278371778857018870606057864808713411208761129979691148475207243698180391198331634631323643626222223054819031723011491281008664522201178803985166641160390969711602959568114726898165806816796383771193133190141088398208711789789598873031376715171448274111626584967829641190378027474214444944058120915947718446282409712206687189948720542653844500407223385037904202003658654250026333053059380870468375588177850507525682494870253086672174445518656901028267035499841357921477803806668847505299845808274239093643036283495660405771882186158665434938287381971608795290466101003752697066740526803377254685144186559794561698869115276839346457327558325827309585591762922830858296568267002549421482533026511251362836767651965445074205929090729237900596262344631590287225241100419846715069185515497050441896362514718175521197386230591114819438597884809629646141497081178161690458605489652928958544163934392464851734105963708670031372879565726148337342435399226260067659630649142921613709348113935676815537619275703936849680830342835951889741391667065484750887599718135870445666875972061087308554139867201101471297228240721916146582370368421383634399010211877288106201382733538440900577508810846461185066079586528599295339422109945935934005706957451804513554812889291308289714685904174724564616080544790926952438642916144337478910135080998521158363759336067522626011548241577179971203021857204397458634429152425553205198368272855132981875399592451120883636164377367688044026126187704167833184135301151633120231307444475115013266403536012630913660530719263672317313201682155111936140084460366949497996127667689306468782627007504762467346758033145115611764527025471077236340735201546533876710447002444190018166937984896222468781402596703162670553035271512604685711557093228729532139597286410716223520641597961062743420126930722480238727722300125054011650680298090290258156776896441675972055895286292064718031062024448516110462285367926319716591324118201211703016988080239358269556483993966075171833406553240693083809792434308020831531698774836220206411635226805876952862709042389961608768152767744918962997309245343523934174238421843424407688466123942301449971735289704292536331210526266138545202423215500129729448811490035189165216686518570273826123922576068437224843159683615661469944484839308292069779848756724155006004922857607267121242264136114695995174890927903016401080125856476080805640643574594335728580606749995918683163700420501696261872273025872489565717246991514277577119286412571315174463556785920273111779530281424648209249220288459790939065844254284565248790222665707385383687006611285243952682003535736666022878661801214954110069899607294968003753409405454166659649734489823852405586698432894174406185327079146550492272537575527593596046917715906119255592185995225950739093490658730974504167051154767854785331346194183764877770795367058648889663941970335766977716638416799581783611874427497807729953748476405941985665625240686896126331575741727575819699828347820736806515621600096153765524434809154128645189282754738726855550200724254497307375370703723626456729534275955251542342997702111358641538142844412874890639931349374775369466722110059452911587652525614930785283965607714298368109857120890060075573566160272395084354299911291503824636550620705782926904527195794009009754512075320763167889390846328633416447675150381940669376090261832159492703969124053383370819745060034290282539576281562618802793671419277100184894477566360844782999774099804565703315772409002581724637903117062255916163667538602007219167091952393546668028501128765776060815523702943808265156969900635102642629693871577856879645964999852238814410974178365146888665917730655234028897471008145736290057552597885647228044409336936690263932958731445198536762642784284937332958056319247567973405162233159439663558719285949682900913958687447981016483131210895901907404615314854292575685468052313407354441176550418029364077047722125213531233634962097049399994149802542735575503307630081976832639846149959217346002017793489532791113855851187699258136272280977281724256904107162579526671838501023353794556686426863015271302896809438920289814296368096230512452196384000961954934025231229707661594942655980079219142229713968725200748529876199492496531102949137958470968690150324809908280039668752888418364456291219434470847808786279215435254520345779490966011724129670321780463879997171177263544489994960615948776864705122278514176936784038711663332438082836367439426095634155829233009979867099480221480382936853152116947477433503318747173624587095549266584415019165161501776598834545304058078766363106797747195051899006546163943673107492633671812056621216139153644127873066823271261462904762796145646376496544558799685474648947424781791757047810356774373762670050203484042307587576540999260058455767578332437159475748094995792216072990965203687739814642732374571578928241624675924782351927650809831976672772187190122311356498916701365704500020172371362262411183645289250375353404788789805377339877268964430668202463249675674839054073141578779928029152918598385717483427547646393279978916523797048325957147599099942363407213630708369542059762774166038321415366906212218062222776691956493292860731820853004671719156430464171463430483576077011480467332611239886975440499774612328889477933748749494264076759406837671139046693138249697214461761454557357629062087291727773060218547363743505952636485450767381779325213204715119940458757191757872660308475059667614048730628348368560548920658919992437260138574817680263297911569340716621703347661435571182021982474420384020883816950161413650190796862506942630310229487714560636456332981680849229587355492471904236864044130635995725290921854695259801725714079308999246843912768967621258296874503830072708205159611585493921569560096909725366095593270386970775366886890406236767153096005078512448181151908259183402181201177070151038977180495976180808921832897315944630603453807534122170936097213082678760988829080369244471304352015486244136443092180946151805134223449688399161430002395033784235841754537426466070849168515528794926241479570565401332318168850605278941763775732309246578875280509689046214582881727949223684518594007337713319772755267191186878147297691112761185154458900590060443199814196143835003548025022956055500019092996957990657638004201514381248182762648592806020587644086308308762097526558810633913551850019170657033653869322223187058593533516253630848678795848450231545866307132642988996630583916440245279620895797501897535627297510902170203926997319107328449780608799936022001170205566165515220804197687025576654894621189962735795864168794806585110395678173661032592157922107653310234029550015930259089194402678242803891991331335371438975267254399982051846953136491478416346373239344966723643092820346117005150942638235588964346816218108258829064150418785789489708148871692431800211512837935471408555638578395577501527466751327132526107950512238106549487487637577001702646181850291026856320003611511358271367425589735980592357310135905928547003977870047302457639993894021250533160107464879712530625701253446858964027901039680606683151373382513868553718747822757107048903458844167303096659423324534378783066254176389251625121562650458794941516730741206805523686085617396593863538895919660737754399442780707883463249332664021307411381692119351503103211165834535072773033911132528149500538035613610248316367207095372908622697146035557641168308509844872637524503094386785012833629235460216899367394379350448040195426319704240607421385307620743307926623783924012808024424349069895572054560291535792667400527167788911317158304429953084324523781626340531534578276692631248946860422815876093629801891648063670323423931151805912473883679530153881016413503430979402463024961403442875767250431277691196303259358589096400964016227372428009454536345708999040335655406392629912650951618302149186009279564277848300823867367016253326057340975205810432023441479674950702445332596294072529525336894189252528921078640535217941158412828282972021108967823629334154098198801483260850274223740237809593547684368798445674838076907104294401816957304277910326636826533033867836379196895405474865169749060906039106980189373343316490245027037982221824885792651871160754884684966458335831682967264231713259086614392031199590132212327442670370552266990004995934103209191264517953737779989461106650071669281723383508913567293484394315421446413813349060134620620627910486988490391971640744715052263093329796980224186617843967077486272822169820214150582733279446625983616374316125276254283441413114304626376557964986787733098003035438668946523350575429504758196691166774196071682078797370858377389796091471706674669617411677309364031524439274800067270944219847133265208445443966464847707565182000666118146332115046538651570675676043987024447547575088992824544076650704974392718897871317266284165088989344387296725251982459541549920259297285867206092102553229726790616397305339035072161591565408622020710703635648819921776811626033026947569833299064098642897648956042817345334782464891601734491878507278774550805198777510333195789874084157906100099583492645441901073746725002524002814027706476789168249313274058470894821172819142237411692563530385119662582119882285693329218511647378777677354699649232084404297876119370871916241956205191333053039029811133891240198563942242376637149444095102174901239033584413593068093654832013994350247235042710098939238872518988341110833317563241975939040813957385531269086286466321000214078255852774846698530356186053611276696564194366003653362648818415603691315269864641430707589325933253876517932671274298278481312948867320928192836128348624768563933854087939860781254364386276313780694636053934891076995509811503707923116469543840272461987893287678013044917070989711253455573079706246026941085549862523110161748547929892101503325652046603183764457610084359135738113808111821157558551755116426200901151873927126461307812093290910709842150742652630931948620416620039751011576661274984498377253967869220315479677976309674467752583285240559277473506297028668692766370177940515175770591542927705600805716088710287421161688083812045779060629826243791543055456242612906475703856213832404089721453111607885141799768741181167315363517075539009077295114271989585959411104581405211343362502464558829166719403255852065022617396121962209141130471357641726637135920774681479821055544957742380625977090825711052875922731166178711733676634276718356344373580371781688383241556845730733642778187081035541018149053968566329992791748760977433341355448208177640866446220729061736426350651063801766199397371762211242176937675591191827183699643819746860353386508502481332563732469095422782183913423498772970295003470185851186208652660691301194960371779970583437200196882195784970698496926289794819786213367299561089739200277981278322676119717628383471216484687681840123354283141425667298401514823325620436278046642432845036613285931455562599670479839103410995637601178662378847304758739296009153523063414821816745650517710648702955015017476521121315353784703321636325708056698271248668106474278635998159485205522192734901617641784030679460210393996553536405132794669354115802584576806381965149917895386411262516637476862033484052639315657504160877917678272369389253703169453989813831723014267267608646680814991608017980549290825277442822255496456919098745320939948024067601626703608257860539538926527686422480903029116481086530668819549436836211389359788022090778446313211879402098681500630329543474781605747196135647971423474971079093532913865768667245860769410979760799557630198583475291762965005017346881341776377089580887195836688386677288194890921657963143682774637162853798662036557711195105388247447640116295629777494543148193436895646409249658409230009512889267734058315358629399298947253435917842755301354023018020643298755209782893816022090276301809762304043735319674319612991868856927415342403910441182113894318213874399506934771919500979449606792426326077309577099793699441507589436861329055556723900417874651937805934158100780030137741340762638748910027212843521658518667269613767696489032542354587216680142717703211341071470466267476815356536580028154584770076444258005356433051552745039258326254084957564534710988551664524170259546162456255594468339665458749474811428850677885854334949453231460592261687674548567878788850890972604338765692354184288045452450735499047052770186181572858583778652560883790255832162717843203916287572898142288807477723828526588256113496384642975502511059559599401191319534278294576894132743357960166506557199149643656053107436083903358235961358376445785158706820367776955407593921027713377439727247150282673656452809070329199000566661115860397815994819680689583814343800740469348267548263378434468014155028103498676289677537065698467473026002999700743546818809886355368837023128253762863972740649100452190222937078150575114811348076799253253573333162383474036218830863909193283737126720922942595860293872574523534543568584951268976700138473713211086570236872492633399167557681837292876435399521716659668432546432703226668977373980597937407435224813555498217609147488790171115008159900423920194005819368730293152652030693757448524411216108756241875556942187766441280582900633930510812660236373536495939162650658593555855358928641312452714320418589438459313172374956558966177115632825559389122689104213440214365278400807354057058327983467258270078386579445740869306590005187682928548595944726748543577824468233166332167694124956403339835814208818433175759005053554769954355895673105151601444364904528746671591044230345977488661611038191056249785675603272273957918468823241293904261189480018868665190204067659690909427574375487268455536922620417769276246198595395291202936962200736592393723270771180071951755211286328235994852604928732303576089420923053474021441484164400931677370665693009263994279681447763885187518452581026234242399985138305405158812202577153590005631374825092997061092835878385452938511106182750570208981220911992032807522668588525066539000479087489736196616411487975958395725114007286673173709057762572291055541275019613373957818548795901987791281573041842991293985687435444467677373493867261685624554011963301663151324355502091879856323355303711312780750445711372402879374068876601835759891963917916139157763588103215888633370265277650305632745254060105929969764000130659267741289032966540099714648042351233226628281271301950255658429113819922909177654713965818200648006830383696645932525779618314121660329477751023681002914182688456573762964395948414924466795468594181281435501813959754415186270750924882526967305237151894057406322821992480866703571837774911458347409433451380763240525648454095876056460232423922273454370121231884459965414819857394827507217984090731800212843790086134888443566235699652068785738314985940969843363990860361198876564948239116431345027670307299869172832398834609805569095010814532180696293652734797620487786008463921736246526266889905195358394448394475615999038015440164131979423447061559865074244102249556924129788090761504751660231338173064810180319035910633782583061725630668476188164634057896944211930109693687584901484618912316289578987019875023592876126592226181792937583796199338627175230644001433344967061194668412278622465888796782502255797833551268333771357048852470146873992508566149053815774385540166874600833559412602987154295083216611406992260054411879561682454932089812281692547167990971682324893042065911281430279713299774160651290144464579256332333849181664650148383594174090135252905155423668687730293438946846266371013577622569169201139061055108911612717072426044393074825618556612881082716543193913026493791955786814548484636909466905276021247109956429192943233332050816999325019259324709264182033061136382929964927527616654361431537374426951064490664987552782566506919801087905195022815210522501476546558382418861837383927159740904710870094900044407850869309742498455962211557514185576869970907141127996899426443429312653615259683708240325793185915867593203059197143871384196461325666661776880285817699151165355868522307201107498934982974756571436645625887539498404577197385163463800775209374048484680131674401760751413808573497748768970020267395369679151981228825318572945364143376935657191698331757072283293907926259601159727442765772413921905129168327669646797479452561656934035587589626877105977181042285259283400885733226034537715763212505083282967630787618815378044568685968144998266058112168187106515646786159502233216637854931784603406010733400170951610741137648411014081620993889781668709604102255515016848384257333321467225858559764938185446845902560469262892878296787408080218907688317476418059353137755528937920579226052283131748557353462181421771264838817524220016494281148411996452726420986238646203448857955991815166518896550891436684896765719363897322821875152923945628079372878776444489438830929358910168626923903049087379089447529840043953622145742386044183217770452561064269575544241963768033255369996612379106421107345813688000764934618291201781785704241512963980565314313186306358388283853966790249996143911146925005842880136548008903375428953473620391126302336980879801401647262268594827042425152951162999963085392595340266586049562652967586250620751318320657972762853649803782278657620121771937562313929945133697678631940596692408203270808301894018713931783430405239441751504273756051168936655689592522771179427792861212430018826274227316495111079112415542608321948713655665743175200439282257057456035047905771406070574407548382818364985299914701782128524755315314629864401854204484389599951831080192625148402294678448459431376824719798738781799012442754976238048950886360043433015608822822726230764832817273118316939249932368628432658947319172031029367970678269300282911860507704484490534478634747514380226480718559212154327269052138542072956609714566636012550919276551329370654481355345995595232370236948321738400262897263549845456559906472110071889787695683163706050176402839203216001586588680329355263042294721985461257318402015002055343970994964685367551372207765644376317510740502917459636220615846952262537043307964300791947323335123555743351886010316367455091052164118833649632569403953289682676699528075241502036474644314676242121503080316304077722216436390412504156316668360150194302948397422633410651463289040945016128225086582796972139277908543524788506952226529610760603852296876296304303689585878574315498125370662231306321841863777313257926241301916521336549367699717356144378602529937180861634397873245367584602216863640191654016339284147774830399776707925166060862275446252308936168703560004392150278599612839432401394934030487613793714582125298012353664208120595145265285465457500327039222627865426251720097957113248183294251254730938466641510861589688050269581934314261940800049176522411934155124610347897912559984305790749251017728279509724936097624396536858044082152517427191799925711950694296777055702232117822415939627199338215670299241848397377539705302112324408721264472422576679692659744762297619180025083529994792441220272724763407986095874363962592199501511677829542401164497382487912837463923546085887956353616011988958573607205425663628606015682351177788378507429277106627174080364343468795791598890408939149494173886408927646306292057081914701537373559124445950139331046005656423251518713181374293875741651884601368599889142655302105914378713402102613751396494578258760519159315464956761533398840280796158289311703342088137270891555444588433984641575879802574397505827887721314430939144936314696184074422563086231962857790173318311455039254392326517634434564728618416668745996796509882410952382450860564471261738021796553789770950164083436410113061881762748388259058067543984708457096651577919606359377035890545523359743005444263824578434433019866830709567212503730414349250481435986785040559429525463968670874733621047635655671274109084346953744675462366419265720328727264681328863081552321861904012991732277169887083220164181516371261217471311389301842550721057524910777930008076602984815405982567596820623155405566646722381520655218529451037388397405404661585358419433438287225118634602752681451449655477428820592916074872088727258743432757843983695900890928613958074378903411050157181020240127416112088742848036114399242797896648789635781292565700218985084021644254106462411198170563855897164007855167370231777511263126309058602060563118195150541944064294069572834176235371104796728733684549313863118947900875639145889126798940543351782437812857736712753274365128178404648014992872487175771307670630981713860624455447420846919459094963321862738813218773645857278134477777506929752985185643221180310660600029595919783717084656065996534938023867071498605345994351968730171929805790502116348221538788974709562316960579101385549017462774959645077794533950983967055762073761716742933549025129412318672425402271866507723857117869148810346930332462734375024845955343763935814093608142447978465686209972943816180146417784588803233196660816486912444040543899587975241831918193778605919084393117116931990097089819071193830906428241122903396613051050684516393486195570855529829828611796435145173741965367139144506902630905985743112514868432320519538623180019892570127262335111479815004229234746124613511029931600069516369459569145591490500128022842230487136782070106439257042987257716689021001430683323236935241398519855896300467469059174407917683150596155955984469426413214414463435893632200732849892901004655190581476099343763848578785887040859805421916159449396408907194410811033108819656114162180114769870532735281365503917631008537187754681026000870012501004510463184183911963046744423834377235086737664149057752461752732029143455833654172513941767734431543032962415914490631706499776499721755033129168906842092456416228656371550111394911571551862884667297778258024171929267540547002676432114422037385493727531195519090294728102124632798901961527806604652680416112942262237017842215489341384766316533387829966654940510499863395636360595030727504058429129693537592272601636872117347487140569566571933227770264775848300445597105528750561133286744534405350050792651557741968852924079869278210690372645374026082823960126152125774389409881826478626430364118820708560271228809287764406871489659472064421663997189135391181675558940816809689303998344744305581394468858069264951065619310059315579820967565451907004287448327828061509106114238062991066556525546139568959698201988173572171257534640010068857581845002931781737438475912822995264896190548294408365243974354034972692066866493184032697457797875247568263644508939951382365996554235843053931618853176742402452010976720397013172813715164926057569738612314534746558426604541638635358631567666253190359872927509482265824953608705200849873934630951548856670999558572830806698861256041242515120310979237281720094994974609227658288221731834178350753190582683249605443400186828435948778650891894858738192581266930666087604156503576574044308496193994575277193077792929839844339795384886308431924432581436884234097085599828327536882653838905163380821181086094167200010863575935302354124614504623784005311859081190206162321399095640282473389782036524829462021582992533020729008545379668814317011470529311831615124102746476441765890797869237817784650338943342940191136992974202905838908963967068156629184458703501429355907212059682551841598452113853455910432533248967934905844801491359782839611247370789565702822071660385652222758258724302711666049287731623728757698814527311152923263777195185927734244147959916155346280427641840431480554782702982440242466281380756168970142253071834768503569478457672356794727294110610202701486301453548033208728193111463690124136138540338049323191238181306273798580010778420047651309066592334026004568038482774961046097116079107852027265818743910082053617589799357005430653089915798273680469817498005048826907882417049083202854177921519193171613087382319381508502569264751935855515354316911252130551488063977045324755367810874997400939593286281955507000884669068273183740837267740269650311956686216017140888793840857186043105469876353790300688951798664038394797868930877277737469348721630378599185376108128276988289085141431825817491549483600093583599256046431981091345554353151403151933409331273901688685501924091468425677175560346778339775515179802731287067470247164191003560268504306686801378803389529298212531833993919019717130991252756057875406944558282611870931245524969928289157643020209302848646311855381673905264618426100261849117854519214272940812578867795050574829100672856201973737308072320802181785728798244876104701406225649580589807105948616763001929012354757053002036932566215170223752996651422869986464150184340755377417423547249884251938086019232857102504959500156315173703105588337523884050424273401544497544062740588962215449356013666049226207460349554997625609065978130800479425240457068324747867544372983670414088353102309341160450886457108894397022264449053283965594437920167662580543398023654668821721522565089394645515654668447558071590828669455800175278791620255854964091172257312397376057493798679612172908316210140178148998515866708789681822452902430657011623753989858334779533827105184506060881389744926282425504531222336098637626680680205466486271433748041016036370090762741038442586812216492455017266847264690026784670278701692979106812854932180787191852743562942867898830279037133215207985666530134924636545617977096886972543000862509613108929086109564833315676211551228444843943441843571399536268079427476182524110897645728146935581663528592119091865500064252676065815113147855367518350849155660934586244142312343906060280063702982895107583781169484438206838259737834921762503638673632300599852977461337163846588543084424940970649280253161976219486351190517430170426804792128049885334257191283059336220426824708726862050203504972829077922308413979126011733230824715140196030396139220301834533174561076518395801949169463856349386778540263944925540060926557897271073970770812946445682841665783510242637497334971128162331412791198625653411170842787200441866861609857438579513475056391142824296879331850038787354798595559852451553370534203958675711898521270992609914422898003555075394519858376612536355271619491180935457408266294336158244123305417243675221761373083350268438340745853821974945538558034267720521386881585155561455770830551574376503058941000862401409202080346537187899774671210202992690536290102316676931566036938101242598725534833936542916039451995808024041869573567218112540286072807356535923881635178400726194119616314016237778864008157077774738183999220091084968616836599061269414233393293005772332183172983257341634343124473387948995374174853465907424852705038336401366558937404439548577618704618405955526889525136814783200892664780036503641326890118008082494100772870686131770324448008164893097474420769281512446544387978936762190608150662368722504054934899868602182426637455522085079502198773809854562350156765981064260849366840083680993590159312987407314735173259533994605769158336817968755335250696747008795016807645704463909801773319596568042802042196533824478524380886979810880325453879502472690470536526668414117114400026580737225130614478347261375666757371855308549061270259082354732172215824103611141508751896040242806209569174554233354454471797729414590895938881552198101364040060410947875211146151847546099250397856465893723311435585178925007247694645448626658848065759830672059612189566730320388010349815467701119730736309174791504740607425514384802052026183437578782017756832910661241901055597084781338668814064259702360508352754955043699703222036791303033901051575320423028084975914891473328526868370850887638911837870157395181005025878620752250270966889496494496019761908506581331639408528866957652337824676852088701463943885741672060729891717033599711724557318839080384354427255551185421647382015354371072812317412703384012790172875805821819859414222162798734519260142416650080049200738329941449847078947249343113101183063986214738655905879433620944456340786839365776640037091329419498909793771603491785941327649720016213081665495491318474963812401038888327978738578285016399427110811734245355822859501480498493375022038806143610140383431230647763227405486329827867746324895900037482106788665656753513324266485822097721660236737599789837328121696422259153737181266476799374591418291224289659278208959642176310366318730443701738261373899452695331091462141907550633807596583995379651198767628094982298397360762353759568344957983662084185426443807492238749728674754395663747583075517394018093258040716679521717598894905928149723931989398966675042702013688486174529483005273463940461534278394475701187307437649402358045227377861406160586217608692206668845333694477722560838106260896660516049930435787725079804659959354942118626864003414741064372848525352389391324812754311231772196168984081279879883085314113014328551669226330561977353816113606939425680737975223792440019081977417206792506960043409652541681423708580363239321241778692722966755436420572698880490462666116788619467166636975261945316805499402944725151980932291449069285520084383856046940462924356225242660535478248678221589676439946623138534576092116982165000215540851129403287252709851726033788691163790721179869806376681922522825306878503665333935949383164362288006646626476617027562844793193120912136592348479393335389107309410881282023497986667592697793124700332902053766087099232341618321085209948590519039059128360915479939297104798841688780587017368792460715118874217221278540765353868505859459399586508085394734587061257394276083231185243607286886183166810629785607270269916645458769514498934029618618652643904514648018660465150034476211133606193926825870850641964207159800171971959120336572186025332791458479018542454272955972184319678237831623223769179734682142492525524336831671931829307269956108427513254917471217442854751362167200518703749361016948610844895320661833258087049090214484688692059386652503864113654314959639911070711027329776266914713573571233985623066589091401453894527878731000146775218177854511829425956782715785101928464086761283726423028283107104238544877371484549228645999818846726970512614167649151425843334892549248428401339625525676646352493183239093381165118317949363879978187447880266888486625252291814185461873196066870129416434645188245785488465407729024242542466169549781692994627299336721180016833503438902429151183424988784027506446043802495860488580634877292136553012556317675103976049147105685793638137163569452916106685220802089076412688078044321588988756889981247381803198059411962413010402200355352235470042693884611336262975679464509424936168295517247698502845314185421510221901301232827524426698700325561087225960084915638743371483137944135346454010821581656272982676598896400659879420371477013098357490372089569312331694325839056389576012381036520011871070200653677605203203971987895613436987148207388502679802091782947367775800909268166248299909828490802586590883998645317770864067934295193811103124374919037722389116013873924167769571275913927120642366099322462068438855314422400581228805313244267521374237454817392215903324285765202484773056077188619040017998249710022426178545401000771069957991480908304193995782971393365425706622553912858440644526532304727555932112492352957705286017214701546702127646269976684090363059994601513272720101769483240088298337058103005464636816306739193706234422853659015433042185088747673526209182131851795480310321192127556889153771002099507406175853228127974499972636911934377037434342170773127589961535963519964334149809423308648627687388565931746790952479242651293258331300843663578569427671218219863099490139127742418892562899907885326180234980203785542228550025211237001149279117645977964035949496069070239833760343084211489624902556381091514158157541106328850262609722337035320209066655380239842313370929182725020970712871561571523463917804198858288263298315360972404644345547518097809879522797828750774156516678034390610023106008681215957967532101016202870795959419823751564980863471789767180505027713778071655951985936274816831146486824845133457023369222889718487304731258967998497687080545526975588497863626829548144960168024085277181940589336755752609550718715890487003715069316919020677479192486635834064286641980616510472699624667891005945214998764600108815695559566613237059914286787861136188313953244146402685558243514964069268043736601670632933447694624170221907141127009815610163766238801656886071116651692413353749484007047209908342647702147523548612453101964099278545130612159197017218683001256049033377998551478408838917793934970160307349150525955868492321211530280859100655534561335957031733492410197213735831245504579468022547565373243335348086124107511170427753835852244059529284581522025571480520696355931534488859048948153068386717811139427752602295640741500779589389392224230381348322126973355943523701980838042085271512488714943156676351227947442638057184526630920901373219518225099782301870311014257509811920409117557274777368625810859837352881875974902807658955956318007568894139058322767690991951348105304764334549432085465692232223279566545684668815890188885501493275912222027921081933066263523352859663120702306374058079855031415694797411475690538439492880204062233947590526648890905965250213524237026655746136832476051185014853897111803378662318575870730368660534827444410301524090864399104435554286110333601088634005867945258239292340368984723530458450603704055572053895962729485007317281039993020570615474532087387189711233232799302667261267803499256291367488175833307245366238414208103232314340563773973073049194749965685412576643887333270259043059895279812927978481776893172616675194217564968910810950860412325532956142872080124943024235214945985666818959173754150787879870512691982230889002450553836413010243277984571344856470823623247210502412703484829446393970864263053916819713108371274016288963810815416466162141817398807600034506922472956206301691168909601783354779722693356304362059497164165798359414871589921142036811306887970519743682162475232368896894483778983454467185140979564602356131217910393177845522449020616794871051121785019644879915185637893089550742956534380681411902448493577010212834295141056025831615340190316441860630727448596158921413655447368728037801720296457886130602495354323862722742383207267101833043087854631215772774182287515012397357994256177906522006576416546313657918992060936477282273450959980615378217208625407588513001772425636311720356313975201995623623382422660915301677180084629440630971760387012819832363130555057887646723385204274063358880267392939560700254537058063992273961153086943065199702636038486737062999805151344431807644293097145307659777170693109928132935809052647498810510755784439272761073540634347562689707647677365946524708082715823069983837362401874895642243254022686652184770769804558046787004729195350775454737100028375780781924658767097480719015813941363779865290798388359266540381256233130372966373098385437059313538277627293003859903692737827751389080615604954794626408343611710108246835176496769600472182443065048251706878179166409435112396305027885250046767167598730953197228977023587538894505379873430192711288859350202739171768811594588007611064817435370880402037782248418609990638905751900825541227950318590914126946467183933797064393867811087622175522837297360273523851650632066043050390135681479836920157991505947155792401241389313600352089749669331883955593301508175509079836696990221154714585418690608015790732601112282181579133737422549075495372627642117510423605130907895920850341851918059443112308862653365769680402599770879495927250123207020771827350639308317691606301924302183657838748693488658399384513338710015558244656494184862192900796143207964101889994169025989235430296323540670915979091701826910213225840372252040427914057954643202193422150682445464317786819065025355747428788702785685772404542169041403791456212546284530082090980000618523011630485037377932370720058109538693765673588523161914991574352806952875752288195245944908372762705718606403177689033709207437668808861870198711494418642315754140345407490184800558398866878731055417472207314136520174971044126917435812086753156205247748348059328895506230628254925396503448163553078516776275852635511955568804293895743645180716270392725860628836429410338804704837625698780533983290245486370485994449250219168025793037399714561173872895442872199383417918738295435390166018773358715294495801700181357402923718824238726134681746985651390354548264460727834574914087859203547973067342042818627362562067947038434185155606521811512954961250268438294716442984427813297763336264933215741826824060251208717320744222984641046249215166890865669272016385841570544960458350685503917864305077704037798443422839260274066187240319303799797435312652686221235049306174848894353167409483230038801941614568500232340645537171407691154982651201604423165341749304092870659078988401264857317088700340283225377976466630623227269387634590012811626476743664884997787168287351931191054983735004822629607023810070059001612198055052685211350928162274550687023173312040059921794779912354342645643164983150756800200580829891327368163014523589673927642714328809903132412796011583959258700164205113406119208509791003909946298431575262862806216840792040136959300963560888907456864917044620050043721391442939083367313055941160515499695121535134980505990014341262642714633064619197829336545606346418162340791280189806321168139107379678067179538870952457328508530262031437876735633489882387985156130940254765832592090042228592581017557279201045573305263858847766632692696793344169289610313913278745244211154454126277311522952834730034695050331794960390131494972215317429152047510471682541025502523415122354769148812298658734664029038175599761100421961564406176423046436278268715309520098559871734671779635625759192390091597019715338576243695268951617455343838879797643445284601364494167067197248269441409188693744900725307547265279903715955107349043012714587887593107532903439422966669618931974907154953012420095756707913869153285824479641694763507172147659218988293490860756819440497460540015894598106313168322637492414290229218587490438433739128771416605579546236824057752340405303233746562907986321837588280670278614097226481664430106475359135410652432800590501255961560084130906246170044968092257444692846945772268556163593231383932843768652870585951439882493176466447365207297899183318760604875556020429970150436846411744514171736183426557297376805770190508914204854254838344085410389838654602898672442081659277929406663388568413101520681684170416792941612783701171106257750185273968846144698863639000699886849151675087686141287856031960121326335563519107769212012007342323706019472705142985012735786352351162778245515700909542132870577882729619298948628805493048495321351998992583269318333456458354535387983117184221476812406887930545126281875996886292919044317203632366264072506731482844037810891003247733933644742793666730393593160722747440205596790070894530913265011630942816533676253236982707570544204354721770313488286114196284827362440753270061184708974643620358790409712630830344927432203742877652270705270980182569397227564995219605849580262269842482792019011550461530120941966741502406911778949714209681871905888211464598758534267111764336438156339824736425345039697537447133190623599757157163766593634726906621255320453609783235528673861743203669602799585369877692150648700947860142963951051979751796049697803124497269098097243892913197129783986268400563322674979991784804073422695127763708308143466852518258476828018978832366061004410748963408057666505637690847118229480567318637120493757462188707796326114996399952070102266341475313781795394835141083586672777058555776829667421672073741313317035405565139405258670619151593044222027584962617616491167785752819822673298910340230501697122613772282483699920946039692306420037410224725328195662514085095967441929148959291534330019295763580952033647846790027804320656193790015738595822079882802682561561715684854272503134953933391501528320763024454587282084967721491451167349217393555984504978741928117975467355734494284135277535977096694333886328544539445123966242258067890729392669140338530228201153009535778078450708571170817543091046049999877280870488131383743453529764624557899495992201451001027378195850567104881854069601127327535937811887859917041750487644118017657058209324616525574931928518522767535934860193037442281333070335713338602644466591003012376733272350726841655105066834097153119222771342465667594585040116991459923683053058022892839655087697736015814074469974722051708062808010794242779376427640596784010199270443781637086324161873764101437856500227124004552546129907696473538024945350742138247908784336296210014791215219102714894140900141890621245981666066173087947223797170008030418699743779640062859930225271611523017792461765016766898407921662177653718653882876037170316003318230410802902997938835432600838015179628453907355583613879419281300697929684643658121744021811191860022568627095122545980853139103722821251481689095871951544537491162174440577288553468631636739590505279213864471931348607489366271651866239290850003870102385958837861453994501592937491394423942878251295844577160310148418839497352378127730266777925852510662573830767594899844093898678722973189963690084274411803706570811500027129141614844939439261399910932738149746544738909655679644445279592276654647171286687168244170565180372348134311855339634329202906547760990208043616842686018719507735008287568866314079191949616322654811540809114130880805607486197229423411118167515010052553256361457742191380115148361149019138677637032510875721282724805922666437424270883278382249679690122626716068266305727077475137552163883837489280378211878532334002568909940507001390648049413060438704244670172769958001744073633057676314721005488735728085076806474332687116699238653883686814376972831289691227882164475645289475038245296085207775976677718567501334023198566235602211671329826052449783384612920683503256249962173155131013720445278002648267249596578501123009770794764183269421152708978097175829257062610548409748028248922501111075828585201828362877505756311251443124956993569214928844514108340054890265933024907877670209474127376001303996892799342860745547891201141395210047022697492855426292824645415638555469795508910434299484639717030067788132834962131084036362756593332532946774265294870775594937383721635120712698867216695433891911706797129270948525650423972954254683871993907246089253428247678105283631902017954335258871017912246717324458107612392610572271267921113785851069809124162869762555411987922584769922125971843688589635810379352921426409879922493607449056009412361702783236272252629298741576377765872581783223371178952843296922174387421891194930133061591971146205257578417897315677819824568391682549586088707141026185164128352161061793848439610528581775274386084271229857874721495561449778738621529634046831322553894481683835203450837134933697307782116020598068322330955693902061452887081144691878740219515745092018426417772441254850857661226009629068898536358160541776972350670498116116744043552446408427129443139304157468586274575717858601352263863882083919651490765587011255119279104988718316441108059071232788200055147141654137624607915922785804584270576074867523070110685038894875145530400032885127125669378391990144875621361687246651569008005280136350390381093089167423269862336612163771878819905476836061116928949848450520160234803247048968976506272594697960285954254417525732844591866827217642782457835491463569388665186948158785104556776768013150976678449982351127877459091896054106919295816213354731638308240120171648715897576439547658120250998764155567410630960569498713190826758111673037608587418887285298249087038088750666238927393622877002219087183076142326310665788563410726377287159643428885096724228044219281582591957145820069710720990710869566007856402576206412600320183280493283163318946116664376837950138101145893528659847880207417567925342567767443954248940236955707242242749255226149396341285373866576299856565263488077266542685599894002026540278856858894638508104114400940444339688646658684753863507336041355549936616386571679549633417938083901706533734843940291447446538212080844373673468785216883478488768037001340351034094133737155199579562134634418257298386733019546147917985582789671815382906050614268993139021576266318416477120632314631942171574331639180256681260032111696309456073119214323360027802736829484070770890953594236542640796832032191043341484379236136435625618575542228096832092507202373098072593424150431582113069141173583030092340324344418944086691381822119438071636409102415583905704935766927022555090082630066752505465374773696464086746390252434203624122230493027221002626112526728557157950491634077457170001808111640932357549241421572184435127851044569886663772680450959528515366947670579299850322551933821078199345488707536413116518398929478759093460308612599604596666682651216421392235854912262329820056335010345757884625235861541915863570531960374364305877592624599551622816668763522482974139255944843552817615936578117599415125819742251969941848282381456410600749012119552710908549998431365457179774750996400800936448130671897332817034114306701702511964071933747496208809424774229647752458416121532434463336827603994985044974657352418334726802420640285709640937290455379039850387771288399746082166940262862342262654591744649998087318100179282921099544288909509120862799989974211514668351192304372048672862899090000672915766326945857692007853413174912395796651217498145159989152252837201775086943559212688383610110683079619466363181814125146248492025121024082147981495805959374795986654869307097403063522702888834320335839920504236450408940158566064442383984176903101766607346928422574871386154995734139417127859542694685278459122392794902675389051856454826893509736007912790733547541418120475089588603411143763302218698197978251325579099107297729536277107733187312771461804331508272311863390088842442858900024826679574127179060170858598496758049681009779425593746447302545982062974743807017443376150138115960028939935341229585977437549805463606720897559604684467438782173861489691834975882832663618104931068025131764605283652731061490790993853271264222366055037932134459905768294924119878224109509209981814946878029991845965737938863143243229169479011465549611442195314118833537273362381597532856635761422130377825879907698214277385527223962793160467175168203353013817271353322785562605719546753347974658319087290018612807017159251810895611592002910205479495490989189425387519221786571841572654827483757599962811908484551196366024094223441171736937493016884321505429885090989570099265258850896130833016746603758647400342709590072868124932459619628472929247533150770978874959894847117379459017435400778216379499239572785430404287600035985704448549107303953319209529482708598105285184973736017256411278284008475255633897521528480148205013021070508430060532912072303048267152635068484930467807554350487830850312267085193483938246493190392968159391185429553604213637610718555777908312961519790751057524114319784539935862322869772230391976749604149098446834873757023819842926944335783889319120944459944703286140440623479938954861738642628751939475036570524264433335473656135558723635628971893732253227428337134311995439823849856927124466882434785705332790474916740360972944898905574070815061640688201085705427122788143664756814120721278753035441410366374263734242437723951102547533940206349740484472772261673567585710522461126042047500990327843580823283706159558675461744621720365788032969420606580991804529034891768371089717733560597128827228857838304223431005907048733955663282861717251811988144816959572040548880372525536390062771255688633820900350245205511971690867858704740257282024660204637441563183457007228503147398777065860212739123729959493620769703984359578343588553385788283353367582602580352427303017105872847133929324179296952183958914205707903519431377936704490825107865758329456837751174071355919720363104352788387686381507331686614159478158447996979944178162049687273081492160169395418319117885283500940691547985800977714593530858329176249896596222639412600668870954026494425928919422928981661463540084174598589652601085579038096846145448304266459777115576974442024810828274422381326331936625083527523954425240792277041154387173050623861032627224803052912045955905230135099832628836023623627307559345214348082735031154114022106075680874686235194826446865326076275150580075452776522056219776545660993508341437083910899752466808896346891106423447606306343171563950161582817669701755514233267334731730457538885759635826767052920464771984350470185618723077234933037937194289589623173862695336053816057764417803954223508570219539497242294732944026899507297271911249922347023489238303944703159683048870211424247249035109237989628785637462356403336630837235945133425925409381424631012916709876989587450665103736587709524358017245707213394425496832049689572658600346289525519398760814083748634913524920340249045850162994797779884053386194793186205872869252696529371897715224317117441035314145339037474534331713640163480731646254989951423072616908463361956270454489706361530614302729356669682821233342788560507499828896681585095617721749398562083795428566716129884269486482612879337513427109949354937168509778886986833341538468011208158356775344669399117084322001078875172260611427019160914368685185856149211379148199546264541789132306119931882057371916041874086852978490176744670068934597752900686396201323179903527299258048712026400163272339497504087286319755894529406416354628898034612825817664298402652589239709396892596708442051466596056611711202414087594808092495537840271199702960772218732839757349233450334410501625579314189768468498424801370466365490764566513860497186238774756125332605820190878248757627554387627344456075314097996040009636977728976500833803310303032940816054544705473761780370137897705451386980417185349311057360622286350955592905452633788528510131008312557732332092979221744619509186133081387133893496372312459157373838144382576546361418687600853216050627254688691931478264705505964852927790250736971939921612166504805174877842277564266462492341998277812261051524447245111868506255653230064281669706962245336401787292511229162037820468303739178458558007104377503944911412160282453185143869874086155872459950643268742943465082822009418997751159106148323848240542914246389473272003725635216796637210027014233047093276837167408150085814809994704216622526414757774338655201962341657046589237951084751613829820111179476996789544773162655498193706598608670276978809076477058712697744137743946561679609428593196874881075972324734788329767349639714858066409870321810910579192777342316096541958920420474307991941028732030633430059126814038922698451584636689564360466031582864080462858532109294485475138747612819064127046044416545828275644345050981480022927176091184568948271180530438900514817445648930207231593684843063113980985397690126426579295812375482639602484864729768049807307791232666044176002596565832890021254384763696718473740616872389320052824068670007384297134931286445386458847444157140353284772407592375580723810066284660054920920349063286323692468360124085979287640719152178384056170994325559185948019550987646320452286879923115151726539692211235584198033489394983422444284635033402724079907279805992009114821637460581914780486246086643680250498784666104100450689106571023538216609777564904772308685310898571062242207011239955017806230828198875332013636380551946328072903615758688414655334697786524036106047434681976310995014383008609554129464168997109432316809983891035419876762076518211400191515614364107515555458731794398286042311607663609839034433031203405813458218724681791913024891218349724120580010896276545935186418331579741206480034991844799339807768517935577635807475762513653185154692560903925581500653268179433422172664196463294772828311051242296765408484036809140331150394123723473752462758257291372281317640397840275661431715881620449754307434505689187975707671057334490276874072006374655379353629862262942132914180922515447424276770851959015644862305832579380625304571635137041869897940845713079199486013131705647934582476554701660898993657705084234288215211735895142119635067601038979357361462001759039587485612711166906693077328506572746965288480478765383429474117332262524644038973293203463720136192793065675685874340946641136359315512212166867547308444028134149523420061762583916386972703729902465259701605046323967559907924865916136569522833881847597670942739444101865872152019012827563990031644972081007074129920555763477107133268544401931862954159096596555043737099276302860457637090463127123820187917913996760522602788234129453247740941224309739132815336109659468979399991076037011050659731459153100737584679213954940005303597617325687837489491175905159240671117373738798913179715983855987571036190236053455402517252907361278388448142719064183593450985300232655781513091712088652200574769144720544073175677743560663482472077809755547142672623914723544358784558346598905103475413379745383190145032923054157623682709204563316048063531971321796721225417373980088470864606539585386343184316523584706773195836276821803289838810312477345241695820764881250964119710283182494533882492434620170383444021964954941361717058183268223699266754958390440273849407767435074907378576874302691549246353104653079989574242682345828666751766943766077421789791282927343350762879022394744450299912892711423928791258844775623602496876779156263775860095796052594278561483845043637039871231257071362922372105314962983756682043589809281323684883161308591130906715904996986285681339925601488446700858894712772757144586374342852858227547031437346354193560288574589422057000448908136158034260001023356461625854056233431515699900500787621039616647882747415480773246983613179100941955833309687305330081316544086499053927285706953343408730665681020177585639571189264817180790250598437476587270292772609671779372390460765427780264610428491549427681258595875510926221026351980981497441136851754220040047674148124906021356135712827044854446590294155697678905584412811403516232528164999392315062178608276223171859441448620087797791324879915433518016468779783133640064857995667037314974143094012800643155186196694380689342538869863418174880401962934665624517284744167105052999274520310900452979517805776896324190977994592496848493520371714337852966470096657483466785058102924827325285336892538204000321055482967811539796039252014197310819873330543735749857623400627295767064466637910031291778176304088046781412529080944981675726248608594731792584821052959056618264286777975933521532659175782410533283604157409015956835194424721387122787340282628727520653142058739549790516175500327985585244095943047340707556012597014196131829288330920761392169472587896914008779129260156410712934457268328969218619701876262735661463486698105340490331133700555138846712600116269457075253903093993505491281700261357742693519204130060337107800517112787639863721237184638530535657327800493623358844555663356341247502259756736109869343363007370868616531029035391213375897028039195359785896072070713488839748235603656431429838286420853524570912968207118942424295804775195421039927992513139018900053739233208964559981085969396243532220909167038684878090597687121060461123604264496676898578517454665244548902349826480726514353444349647767824216841307366671505456679448698743321590211493639994142807806073039346892394546706084565734595513081718864764304843045306830485289726191208691154403897435604503682816312167973491583913774702303366442550326931694581323927158479116422726843631183774348639929966038811763233950487090308720246913210521110665108759962650330775624469206368800154424935373919129777714143387918836072009839670283775634943569084158967767911198894722751809965899672851230609730732732660955984396592394729579624488587265330267310074577012900846653133176743484310669665813963599250288449530420110599634852285780906826551613215732058903292426966452752616887894310001665201868249726563781712461894859166115635478733640421110129679142379011529459799859036902036653109335827267535825491008087773244967561957443987489994746130547001137409660647469955759363611227207199143456870204022338440173755026382266844802132986024556336218497478673887496841199629860735746993124819265798458416780103180481565387320650259672828657215951308458289569776261062763473386817536475504785131792607687784005485198225956490279631803576981585215472727865231093188295737393950722394895826801915859375439438198087812130078218740397136454840172733685882895650614200994201070936375820737652416061986069053942944782827098292628111959641161791631531652469926740926568961983186844074389537382435015059772741521441488352075862123781743003250088040641749350918071818393284347459957050189768986959063986093729590827330507004564544891144167814558966647056655919705507811377055767088391395687639462084505433910686759025277037492001696485406370918335917603131453889010147561428554487371168831491223580155628497729882096002680726772694724764665602493396131080911715170172353970947196946696052805873862753981553243299888610761848496947672182791150212299326081975125646689318103682995935931542899398429784235918119535884862936963889244367628968464593962301290290262931921434683855178743879752715748907004077249975095279910659258572404178672983490108952487585984114321937410190724177686533865538730808620610004521763005607549978662063511603353020661983052907613460357514339044749991270673129622878422589977932468679325478528475377759111501298580508109565532033729501445502550379670099758890117990504485935768606969882333485681951727809982706930414532586170167728221412007172538700786149420966760468820536201231889192986667763603999941224366891000872348369886489677736103201188428624631834122258097760522780938674590807052068604519008966635370983001713249647048650296965123188384529008564572535983877084448557020963512315032959507040221822870514424300762862391310571896304928928538619139103266520802005087924563863457435541325538430662764322913600249473676288275765382011457938139963856440010798257291442330620910624249143854677463882363438314275045028763738836811832689989492044207127676793310649620423697656368520365598230736116885967999955782989284270552799907203206320798704362291657547949870898181106524009683712867242615080497204169132449229745420125736669072815491989907727573223787396717141420596432309493838940949513141317473839963569309340831334975447778484392770581114658207713885017065474020410336650134466218951998300325030921389690009605501332729807849039170956015890250050601423731639496841709390142736839402679577959260810994161382607660686589183113656909288062848713584453648859356279556719113789819525209082936839856825470030026740766164629591882658624081757638871897317320814745752425244659075423349353675295848924323977150741372367080032997775059837542760870417116599723663451659551177967344664559884692046780445061825105771043722482740347845175296970730890912801239340635409909627148280526528658264633996705862749771204724996817175648433358100672941048464138200413494236686549192231781106878651890843477180778587586355043749322023505022072858703999184367614780255528986161513806781550107849527320078726590243762750651318317156462162125545414799127874028292409655161706296477807912150919258387861428435530515384024624408004897517671235569325223371006305594186877134775363590767096521837200248112539160942945675752200821160479061574616214372136720816651626648058702575529251251905578756603954386663036341097485936262925962156126123956116503804912231446325953174233381250402337307160828603933383709876547482807838798909927707564166508571051658484278566661284875044813804667588510817278450393436326592447633588385322909070427919848195604459613509325059475543878471872345031774765299526160859547550989746528822949916231155830845634657123631196928493931005964476725147277704327339889790494083030368313038767986069177267173351794478984573014966941655761574260640614619832280040741815533711354957424288616490106705599441057649283096352213218213838082263888560151369180180587575467539457535393579916595535135903975858764456092155248458321245028638254666555682009827322508152226375052873664756857504436249986311848391222237522868715926848034154016666934997778568736364037699947039167358781506453060255100491331849907119467364480475158247327111591891219612254277828589946847289213434480114609776987466290298062823234877013136218729820225803396903889405134152121140357015301092893450697159905500738734535001370574731875357740620384796120097063758234497650372893035768434156044830524468912883852775705066048310940961487384218536893220080714338561112978607716883813233234061369639425895843609785004621175017066904631280188083829611603440865729963801913862099698214717026823412333652153975334973219251419515579906212217436247806011729155332486548102151124607934875532727057270154079428727367997807147511894720588881247320654863093911585901521102349467862206821187860780286509896947961439142558810954569797906427833513707507451152914505792530353423053205619503586680830648770038055429486145352394002975792329873431477965123936044387472612772903500243916357186995660692457676617892988898529952986411359331832502823394883080713763142408170291793945378465852222633358982943970906978737286078539810231031878065529377542281918365491372719204941982397715613629258843560733723060448179862449170461037288255568073307569757442427380157853517621501230565792391126968085184193738993413641964428459240636081563359661438656265162464027232909965963455276632028659054102084022343496302768232653006721652765906010392827372881654605256793183529804054924340459522909615376328290888812320443680445103293986135872799562153752007881872162378432731647217020952637068308594248484779984180477504681775692545845044973269466209566042098441058222762229018586694107053342743819094041172049670675996452790026768070422699979094813969488866683839128489676989660939039451391048619355003034858068571907576517171643881328735556496325785899824177400476470562876584526857724752985287966215416664793504432750095595232687168938617229976670112907376818631407368395806992295606282787974255691618354981084632908777055056670286983265026766224285897131458154980495092482297732562545006727018724279867954754030767824884751634534958970106423978772650757336964117917008391147718200951728168521124260304529328989003852429202454639103237131357285177693285925346790254311988183460204353290579268880290825405101558907063326465596410705307795556838931861148706456202492231989360437339933426013271785057932501931815668016772924024730025996347728566145384157762933861921479687561677834179399095519718922928785889998903135255442764490790197537551070521647311781789544511763598754014116227207175940804087330461511886956751610522876404728038328476651458392378285864242467089851217360600125247376590297480714032561680093331386263624208144488136608775746756571270717259962616940460738418838309240203604115683230683154755412321042450193482192670995637210124355804830324906267425346862421104046074988904053891623040091875557444111998005465594087951339921100154666556191384526152328558341392060830162477937469252421193108768236825067609978059469472841171266740711151529997262449369589619350562476422353283293875330376124953249012165732465680708631155190547528088396048678775184167818590347621901811101484810981139387550769747337887534685647620520352229877819049394891313302000324968059516116854676360460192420384684752423737117192125751517622098691266160451318197513285779944217192057037703674375834705781770103403980723637341089077895644425182845968119625438805263069923904846826000273459144088588887867128626603296136825124137242545429568743410586463519153769143353050854728253988571660704852388079657777587791220540789742013421152288994720460726703911405949400842360142974205631048188299809777358912737485606862417293854002314499356924824071720222224832708344987042509431830001338977893066968265150839102962698455464997486239204087847663987296630787929226404471411407867931709364875346881521080352875204433395945206754713945518434786427324310130638768227990822133505653939262623651264679480828299753460534965779975422221369310130075476889011677041371068122348666513528401291111473200010580444625839760532578324510452927696276542689178832099687589219672592914543546596924822819379634645909529421163233877502730221328864827106286341981208879812759786600876832277646549969290942187651956602083644291707416680209737357726894448512268681827410414406679601309795564467880547498668727069885907923393980535155759040798315740261984956923031243222035539216215143666471486840290828949299663936618406032897006990699898985867109120962622303830540752787535745125270521654324566242413687645456019503825756622620301730865778208534871934866714191616658456778794666401442210348032701838965046613290648781609927147797837119676217424699005663561014764330034911254081802793781684517595990625213663206079216796436754358969111985841498517495974306833341229694166383685620864299222067166432659372566746297150562248957173914329138335167501944679092540093385942783800834690672671382756036472213023224617141352086416883773460805673155547238327913084864459662785345489159297044637300514282006792858186178243627728616958346852147659940704141790014613722690911067718251222420690037561033378152042798463234434652893730991305835925705364102959021882897994755092216242373679106619452663412077018816907778646093140796782391707835180460334029170380417767913414116139123924269895300423940407605177032325100331191965032192074049193906954194984641910146131613895962342517334673930107310090066230512684620105441105432592956299489815973124919481881733084980483784708225569830809559308958829210844252497063952213321339840719475050189518991832816867276964414663292040638749144561273859591914000724422814251053579557554177142795099372659782981216156913432481969260934019910324122490809696514947352209906516928729624938328018550331056304252405242236717866660495515791935193138994371311393184024585822551710273099006149609525614387473269318467812824507745130479721082642522482465248152798640510342569023700360023982198315242155504608805120049480120114229303485374256727182322882717464155544566586223994016047717597634777584625609306760214235363985000613194577286144137010482678679523025713093140861900529244052257752873656876269530326143928679128282323163947456947806505665542507194208567783390845058941950997799425146164852939230826436036172888091927319887712361907397449916060072035545518505222609586300066419521202210100212252348143384946837736505302445669474750696699189688359504463014252028378192251436814517656517587688813104098242622860580008434931972415402879204350368765201215172969226049144489534717519901729150936586586057422314078222543306211856486928895548311161603834984205879509069990704680671288638734052984974173325049175201940467914442157543991205621552080915634484825564388175080772368129509072032234673947838694643703838577772203201565298300175561938440413765907975993772511090889912879834549168578295039350396811494867721072148849496900939365105874946105025164779413146229141213315576595245376265773456702644567441353290878704136717970203171288857354385486702045898026697386324813686147284948519935719167552361645142662555860549405059365263380118885645515991066240920430172197834209836522986299678510020412703391738489319601782188423816824165833654085263032936078798903476941417577945143571017037781740944264296452369426720370791590740103241364479468651349623616334675305273885218399033212149110866360499573788395172498132811219853082553700669479254683002290007567121778313890492242028359318847600606426100016015181272632335786640480385610882677010372587066796186995570160700991791045350505639901714890422903991381275848621188083390419707626320782674989230374294406175622969415442691573193793209994647695379061802343079453585520826681488851914807416695283617708349601888230320497520926856315306945757991212334709061346472665218859143035330610202055241311910295455805041867445534861156716191080414703981276254120735303568435229541896696926268518112799982601708432136198467393874500847520867327111721708876166933602661394618505281629380733061327099184940054033878339875692766402948756571273166620540944724588640184104880266778674022565145130817463802062565766346641769289722151802145372613107327666518578695222459636857714085738216784141641678279210139985675557564129494124797437997987708553119657102832006281539008804731955318259512078369127928792980558893129768476399235111801794498491771762539904139198298065109821556704851684983241376498547562564884062994441770993012404079132418768376330933438626262806448090541976991002256133519386833539898550611117408036455493349117805825441575488733313043402790992058886760896108732029992713350736280745652319439175290605339701254831064149004090668393485110758791479449993800982721216437882702094739121196194427171083064461975780436588799394379956211760652493328568993918610812881219425027024110100218452062916703837301326563174969716974009204877128141703876260480121396012384588715244879557531919883116968526347933942190628246767004213754042130385121962230736663183641411344735857674634045072488102883721033328939229842215897458263003966768892043126411660263768197360486818094699700381750942022472550372129423952928256006947121967152815138027632223104813473267489475927144108476784466734463208231309701331301003683083658170586151003680813366118623346499615975578226405157584553242990796739003570994311247867292322319786054927046535400622594460884666222180812254201496096720212112251804919477230767436926794396963067463393237530000381384376249944576071112796231835706978361795074288109803617060665372341447875898327325363886222948522376105274608741596890935141143041907926419973657438205213994494672728021817564043041589631257472595007959478363375154460429309577642303988243577201079366065225089833179076435353325552893432879224217058516239664681758556348729013187689725637330380241586284596151027811031935573446810850073026586944286774343378184135776898184167524186893389099112791202798966498221217725897464997703297312369927169129890785662271115695849299240252838449580352738539884689317405328240552058971131739501373273374589405423356707011524877204722419036273381334744478118141273459795813802049182718895121374830143070231590706062356073811632539667940076429141063941908130712741264054648273596482526798482846176985177144773705864730009003126389370060381711809704660444603816447558665332621714336279681755930057373831417948019963887446316634749246722477261393812900237175945078603076298549770692962828607812425255281033716292371960730859903107591944016121842968524025239782593068612218296950460011187647345130797253576065540928532360143329040611146652282893496284239652771771534010491817847679192023040167201008802631402858937905406268737012262455195570076583186423766174593466037544523792075837957406976814897488714793210426394598792041142276790546366253531876090454408298771009323931398866971287371395206030378557224906959013666832073277752928302948637224701247752305814018055683230090635279944992845939329803188048572361346922935618679933550975342619094585670359424785819650382062523235443581101625713706637029235680253529237020941876852804233389145124949209040193811086749804221465031183061771180981683398118513895142647845970873232609512517944840558011877805245043954426333060839135630753690410403279684936072336288088684320169326565556946958934132061584050413459587218027532884204675610365161232814216513242741704281546461018327309301557874675389787011388928064192231465461888718081723026593695112752564023665207280463893271684274633005504406999622910552479019237346631462515664151720975904023309284965029489223502655160716354961708479441163835828202621382001675439494800182462112714985303352102699588299200592840803172571206731186791475026168048145282639075599173729659837991201935198460703547970411074800500011532204697122996527293887155796279544436857741596774204841045833054006305922683714586548492552786831936438684062517550245786695266574879889282939013804733051974562546857240493482523904609950672013309160205298249988646179189034625611666467852513406801553673813785000543232074747636726370334130277882249772775091919304413163222590053615613099746629405141647694953889326949199441407066199353852589733297878381657141170961959568202252432511773533286748942419334940576262500251659574993739629040491764659851445985113734822390288281471801310285752833175743714070735875434841035159704107126951031045744195441686040365594022569795661849469139328351423446424121165811911790664706399704266092557932714458761370285241460586072666071404135575088460356500600153611793070163005061522163396016934456738979487632745005224164053362952271680992901524097136986515135654765538679074541959363097319170725043614778624364838550265340619186525525124969236140189125947636863836656671444515616103757818284715562380748526517023782591309951601710674748469124130334827008881157791595176431258540995171722808456358547199153462099251555820133919880970211355905021848772921539407347861987822954878317554957511399733826330753906128521031760549890722760574277719583877013335848328937486539537083028675385716824424570297543850172489700141109815348136587038032862732628166873783205941951824756962220460665912109796984242760867740972863523294755593995059338100563280594586372719410034350284847756730590938383111682306575488543724366346744977160382806755005529109387305287554054912137383299739675485619477919717217436311665583739597787806690029307912985093163996617348770619599743701541912321896955356866679227993667073746169965550884358968652571067660821642236899237401463316030917733736966814538012205321842372738212031956500166272696308313946889764747720405993607666106406511842463729661856429326658186932569385271350161965228608354550918723492530432275665088221075587665593357142690697145779021584565671821413725137577660664384266647904000604711230890370344601204973625344233697226741150944580202891272352877735243014411744698937057531556266766916002690480341904871731845441934828858059642564801475095369589571825876275562447910553871847550904818568609827014382504550859220793687039223978975169859735414675331319095791984826679315337168942685014005168924053660506649423138413440639580901681345992233311849088321632831017875198248684085493519777203027058359094153498125759135766774964701477480758286344023611581287655885158693493589057304331022569745477594652895321209335114029694458391234006872064580507236093794904885833248832023839629677127226078777303734309652958574954759009856050893361535613424540368559822154724310125818710038419874117845972402991999233217915481535564181586430475110744849393600329908210820878586215688916464754295548249667788667658154519208891722296698614514934121750606870051472589292178703193174029329868695377048665056588154816868689463759118795688751499621483229968485946775945472386573223059831118186225992113227906461624112435317659870181372967782272037466414819686512616254557468894427856862434059727100057152025778009833308585390148567772618048256381883861351876517971389831145449739565983783265132225554230169545516829105559276456515950922507079374691065883597999728346085409145889335228642008551213395615308611183113588819392355793248312191097754303093312857845527522248022578052728517295052370720547542649011678994880752986101917246540406167193022249765267741823425731639244749473836449263790721588795532408596646845291270703276063038895542602187161585826051618225473803333337489043873695392211016722778178332477746156095128718034992762813874706853581220405846791730075060673148783827454926461168288274021375130697418487954367277389894734932023397079207480110121557134003463192572887167194782648722875046757030134729435725970567323343891242347994916007497373916094247830082896049981680523919406403721085861050915548138380314203406293675077484653607285301457551020490107890696878881223742020470075397854088795828673465093023828752949115195424808145608614395004435144269562958195455977761380842558241829970027342495839421493718811969772797399151519274128072577834617603031488649990862640489407376751860743369671177563273347404764081288049914579067036298900122596139422542125517904747600758120220962809088329087350400738332632039093843027539495803394711797230576970987283394033921638452268051761811767174973646791979618349632451279693369418656901565657197263866012966268088434531912042761046981414327821714475436767196100753597059543313086911284848985979313110957204891268983336085686247994698488809072555020541413127739070314048118867055312527061204840729626018546464350344991805093505137958213083461469888644845069377128686022854176198054463920833756128572347750841385824373969361747793047043945712777043041348526861653835965125358861883678427362179395436368305979640150378628862745665992996624925300426614307412059919328280597540506518199917169146029138890473052880475355187316536190232979736066198796822355036904280828777931880887778239587079049890087434255183926843331948853764592319063013011215940986626733081002365095639618644965033589236569724172303707816552326251520583923175037849218714553466411626874237344434564128693691717318598092955830777169512762033195495484946065087219436326209201101255880972500703205237023405341854976520375490344181273126403030307037364181718982025422157881527121463163407383065149062677531286531223756111550648779612291298480966032951236850296183164743383519835463977655453643185663595758560334234786462187180737526206014208882605001468562153991059850678606566684534987033279858380634967515261290059015502699646729463416088634021852068273517213714426388252640814013946680821566229266583085583578865735397523341430284849110939915436037069508115931678201914593423107372137139511387660075894060298257527336219140259140004525006646547904234700509563576127313840154933058347524644927173224360179740865517825731187160981547117349159186737686793677507515485868252761219053522942805296771752222551381820331841971353923084364051087727576986925562155717773035039194216219963872187601529075170354182966563827879353611471954987073763100000496804595300439666335922218273579790359603950034311231110718755452940264042568327279377666310269674651872894095053491554200189154227232933037278200212526846091507893705603825895649259986659836922634732909727004245382950684335080029086652980939237465015858082627116175896813864276482825065906401250772400870136788299223281386745473724760138501926384401686021182438331678089585176978743295315508911199620425246745813067319073097741390642902077673731736265484295745234428189747729796244441656080356510546587653263572007335906837379684936509499838295477465428764245871039739616486030975814830472028950957264401451335350178267308759153227930907174171388346204342351548002935041112914157534902803507902928169503692133826520299202737518999813363679642291734646414748074551521064953749894496491548800556433384069651740005954342377318236636492797556908187534509790884630798034123761348272211705698298282242633612354845596530848045565779249693884114139660710554028646519409270287559217370149764912197841241395688753429037132696129566280720664222610667059108121347998022289406887163777280814235966353102693864819390311180736856716371807203325784327879365833676083452097686361732297324122334267190538716012743016905962725145568763505248675663776444114488091144467304136683240072751814328053131196429328587303009485948515367703670049976645156225555068118902409582488689004898150413384912956318583425495925745288848573653990737271599803346681445995002917308971015361745291992005450776651483997087924510988357946634864271706373128896382459257946149969103894192346955153926644022592270349454918606194586015260559340670777502698171345477024223501133568170339455468022878928851902661158868481764662417585527495694564719287481366675976734104232517871265173044081010565057814636168090633879722622561874356899467768117723153820303802065401401500847317593924797557423581696447848646658190230301935373834400708052323199933602463659329777542732082583360843719400637394583265841403717629383813428880744248313212456022750005564387326579383470175634935680932795107033053287925700006511154664840444491574483524218691528319179522441142168345361593987901672831364284921121366837108901455257788898152421695005555304005320418849165018529218744463869636270490691893455295909782530983493302486985176654067741585643246629085292274946578402647328231665058347361171159534337080190848539777480046096911349895097183735800685667648475265087201607203078730931545310549010040963701535731053553330793670659736547716567751232729994067314694445806139685786256484123209409504012368193065734069681590999331757302776052809306416993960677413751431722589067111303211771958553217460790916597990750374207767235383643029655178893400899206283913214760784782736413935139165076151245355290876361243470804081651503403778160091985828949704507815129181938181924468800536839431730689178942803487060079738019110153197621451636131798897608895491378807154366610577785519832413860306334903875017931877077916234858276253528453982539393925059470659416808805925176895371252355680625169168373599599764979940932161343940849503595389619622930756134890304791835492339893092345964882998872577064702743640675327950883388398439132475278525626441342210332978074438907093946733009051599990570106270673995652787391708766640646166344942634866056879778554466821165448466003249460480061232835260307443294334084088752518382289886398081690023257271272625970684270069786591597885437920719668153256014656356787660161605181883238303282691851049916974751748876261923221232083745529211413477203732217484513524341639750812768857605728111869332917096585299834966157617927717488717368638839319805203780971001295097600964179033813377277541575367577580309817921726615115663711701264899797573163634579526806070849640140152995853478082740565927246449397059903877168424750342911672185215652110689984935894151653459137807235314185689797276859654294868676275776320798001535757527179926333376586354417903654270985410039194433310096035291301527957504866459067266250095244921172868164961572488364575381049616433549976212174828966559777910455543356291168232608893402799394035514191066210890292905174929221098110834630662252438605777668288763697803911579391208384537654988529483330800297271484428108058129442699110306578435168838521503156540386238379329339672948214781879445826888857674509568514210071329856553683723555392097253226327125575962158073166167072685142597814708050060753240187208754808800806517667043947157197813608512486016611476352622774739717898853609604352257419607135462981859450293332998930822638762930974609845642951770839759389371542066515616949539899075641979079986404392487407258196160016254897292582861448762814300979176335665699603689053459778183444979258695779468259864001286663136674713477247375565401743513078183916039939890460737467022237019267795978419590033559551354015682415550545395964568858004871807201529187617457511953576161921467073807674863981183183189598731114890275150713649162795569825301495450418470344990298735143627378927425061491786146988452337969665758297106855193366399174184523535303393959246357698150394323991736267586335919067864315979811338096088289126229028985690506592529861162419490016366416093911605245635239981298126992228448692382084630640693797939933220216300749595198643231632939431072750044975010257038193962835772069332386743148874551707462628499088040203786796477637909584870629603986505321927374845994977505545695309475112887194316866218300202516435825267070215452627695771091768782582962332552360788147991502009280783828133087817762303658672772667157656086080841549807830216603718745166223978680848378964752028678425600298670307676160432203645854027245568344935119251652296702897086998382940548303794178552026605120691799369088577695102056029291115612653705248729637137763630974695911536551440585733276456954528045470831995798472608826494006938045122339063759760545186576765797096130147441520673154185648641073487719987736099106964915670386800537140377990654036278313665521192520987183335742066814376479657690980320518331170557265460476816643821249724938839675102639376057971197337559134586122963689372527408826043451884062748511923903032626481510615246282501546098999857122719109632293952703168056038087908420485346641965432807565418006008803234130609879306228023029860319270509076500856044435926813736356967445568680149181384017631473797095015339846384224352634503789615856989755524793118386872645519216906917103868171394431071649041231120262411016180119658478981032228940681357754531096263545627856440924544371748698519615090168400747798820756748044016655632581398178323235492717963937196747319049815506009916913153121425361036262103636993679091284543766431229635205013165450380450790986411888046363171858111702563953674389241457867266367719554418960066862886410324554412086092679400778298991706140545816068050321389178925309420609422605462638194751560108055213018848755451774439619641343458859111087403378551596490730060421798791775404600021839115101088542623767442770869939062000030743526897064250124190327566325811121446678304940146174149480530780121279061139174502826326379807358061687118414797673177291726927685612384546821270907643559759438153938877788091900994331842057820287776340513134441371651891003690848619465785534894470066550225112385402263012007617070672188353842518853420813109016788244748856711754757362820975909049618998708719005120978998632978880041065462632303127339008551141920323590674136171522845335984323755307290898217656555616636069148371768841605845414262124512637718964267208899393270548537628763723923987230461209138624540029116014681086488702359249469459571406663983531207708336020056102351257111751887914631091675300850663110810517374585049639375933975587562311070709641392102475895462162168650481176603661121882527295550347942116469992657623908588468275018933083456206484848706796497660639403813706755120692388036004359637424382616065436735418815666875882001456648919687167697293585026376963814296129533285036473720814437917698596403526262955764382173783352687033304863850593525418431169015150068661679499687946453002636083595440744621446803485371750006770864357285235645746224322171487768712396661531854997227149818723602873373906288792325089949560512803535808319039522446287012376209376452269777314558581553746439975004436439525407314953997218778878191321830516942468676093504851219113374153010384530242086181734017425465700640811193800073885847588920184835824523123258160704630065065587515846680887316074550559962636717000804013670801096516143978628459433549490455765185646783304488066225888331228852826874603221769628340253994256755472837627907229893679493310308402032043402925328204716052987799433089709769204992117447559269586662642387821222586424174005358769221760650037657235813041503028531095027682336033147467748385057385664272298704184342360252570790750481737356246062620053869887037810491759124205346189036804083305838539786129180653980221294236205422017562666784648818902846367344310108435341220398635892598982814134334480851168087837774121683258180570896217181360093046769740716711027845324212489132316843809136796565062809849154261000505021754620068444721950901555506846742537185482953775359004222943625667580502577493923653045495189231789343017106464149330495182222804786754301351075729646668896482760372443426257693602454697079564167791594009093574575742544200935643738596245772432123985934630877937627318107406209600009910501848651550435621928260022195768405565667115680765021492796929419508018029891037124826011276821144919725972513532481480741771836318757290238176874229086452819201087657101767841963173320993057602894340799178453531660019180050450906131112812865573973495730303082296763239268166751083205295826904715723573456421447735419130719533132803047089484606950453651123363238986984097547876588164668798081688132268350283259125968820988588965872930995809383750666361339378820016826934283349167380715212320477979660272937803699378163250180561436378771261285119237604209621020329837094128877069229645864292687610998051244826356349355551131517182243010042739300937305903077029885211207282996371190679701338702167345500039087676568030359215154023210480707091487208660685035929352169585809536147105745716063453845370853041298345270405213181483061844472310451936387738846370585944620432246228823381021569912392344858567777350047074417025980851348567614812764931624292858816765834855597950626230790743738925469559679611181786988763500748312511111409290859432179789328707375248178325880910731160693317219521179484961625582379620767384081208295792061554441575049209582962221365100260919951105329764588677700571518489071539243390907033266245967637817482039310684730813207225490201860677308566470524487808595411943000590468377251728974011608169502053223381519726570791042095837975902696631282887392170196448498732561361705054745136944398171009245046145974934957311774085401984562328439180213690250768928955981797454332807396472738297239568795968773151931627976919229611221072449770054503077302697567019819213159575897997990222034304897389524088246051000998812480055192729926015824050804631447489344176144837216351071761857358231203382809684451399230706151751405794158391964096010833556525574524159995103709049215664192827451105885710796155042468026940361060310662213598878903791997443962299087248576291484503799685041883936122288918899581625155256189059033572556192226468048824069892076734207225434133233888143704677544013607616489875681720709356227986707236174437503832718340451127901087337653056098304282910925462559987362476171620262684726848408161129311288856908533326417655095141114199661956972394785584640558836165935536541801484262429281728616835599526554778052102665137351160742381291854087442973794457797206260522577154415440157979670410083192738760043599994258399230407718764549766545048669492638624570035997584145894532057569350720476045426940701583189704368913523635719485334857378401311428989406059075498013714599185045432023779419309659919782478452635581234631433893505680596080853343554340418648210671890224498600244301615068726704145756882685182166586925619264794367407968180221173487424176958508394441396891977722987639664069222421169498197495080323229985211607853776381431238447115199499918166723070637356886293361793484659977807072340049687520519442720158999279486533036947500426853038049924232986787979624222733525887627542781953714198124361733811643426185750683535962343568608695327769727669277088803780358786329976879810420277812502864673442657466150022497101202032248374552960846332282198927809391658878256197133661019685566949982910880849930574760702463437845888797016255538776681973602898434277850664291037363869285200037261501597764939877583215365952280432655450191014936541099322757335280063291296865145114159034401080879561780647421907185625489963643118748189142571781597205494650654876255960998656085287785121490775414327785705043156622424721773038924129046829512468945559558037880155025847738784309442062280777578630236537427382262561173169100485488920486516131247465867717807624597424981901876588807687496622678240190051935660686228510563408005329910042862979860735951341110241085831963545944836572309938164951875935063103596960643169455567212120173280091552037562988096082792741081442859960373078521777969134393790593844171884746099825018934168680315464883762549499819640812007295144326333671451463889764030197106824703625722997460091670952197640821534362836032813389724945990266683358306070514449509226502317113047623203345404723878550743940249899978728551719914329617987877823543121208198049344966504640174614175040365395875258205249603631372996778963504766924255677553146259766301385516809239691093779998238053731853297814271012145648911765712016303897827926966092802004410872792784277467173229691389541117514318926924947066300778825958440494090236068394775295440240536519193919103256987944591516078821061279788424282798030735674242519541308876624022697220347652137051526623231743768772415129915229680783431386100579921425360542972375688582936368212454975988491257414299041974487445387262878228341610048296864953064527558530265103884735768797153770161623190702045292873284549130000093364755490391974126254917017326913227460721772521353938528205366906346006592808422835889631389243365450766835850075879076551987581993948842480086683899249524498743328522554349373451334739889870624103469762596538528206546229987910964189468372564782043973930718841628282641287980307266530368935328224975917336335749676614060509593604696667896278132533392933054472921108515531115408163270978832252965522271382166681256879286826338127781244538584266826305037718329643778569382622503942052550727053663478964299547260052116799116006508879277660340496365320696833137206105312379288381703130690962430281080327083755760785190180093553673297331950707893797034027322529613065725747285315375091832560882050854263053343897492370101882644154672576521879360002420727025759288280703425590328750488205176463422574613210578225348962535875849960587898460185945882034909666618700908144368518589577728409241390080077380678051821655026659704489985036867733962939507940730086060125715402804937464826666366816451276328916427096358925287271871873906286383889619677831938325905444490594883529797244894390737537838745821601497156737629688517203648353236997839792451295238841666699701562279837797216184526690498934297856305357155728494525906703614724188090560924109278586143336581462440090549805437506408348226247106932961535706881165377088773415510146157176139201122154483563258039139032159452153707343439177453653586205043115880083627414787500364086505278316190974549791940120393429062436051682537625089266831461064360225621451487301524547559555952775704363105758760051243256314271803559338494189864772286194657016185235539359055822232233492236971398074344255714576803915905431807077711366706531743827318767822046974315336522429785935097357117330393938742793817880836725516248050564627746297429547342917073946948965362723348884416107054784348595008909613989378312716677418562611152737959464291596474842005979064966504035483819585073994344802656398693440153925442815990099006404855788890074883591172854972373205207652807368848448270373570202233742638231991555965439846837801849281577463504691490742847640704406452577079894362507439929540341210430578085748144169412192659126184697596059519769716601545178392780836671885367231847160280384131942072942437878125021362919705987972898401727472644832463605503217897939442341132898726230066919418570082556914347031526205963382799960688350605604396325759467475853740978909306219722651128448454617202752205168041156808424123897541697098538549714343488101784794741838662857506552322199759546768871008072755298135226515847002301997321714493251895116603735120013629935963106137545932078973253460208511992543849146631113258079547949568222719587084763791263863417690623314365514990264365101439356847418084363091514969104299862524681938097960195648871746605560305237083367781588499038963861929263163322884395661274626575394457505716307021217460119121453450964253167550700757055819769790726979340035087572346113938819476277679718562485706943180353614185677122761169415457621950537847326116373906904962801621366394418586535166978533109415268309900431720809261919512032570278293960500905376160034583904100627613372669724467253474146735690098856754852881570764054526147068744738050742751161769292419295220677713213657141949218606224393041849871581905471659487933878518758269172843053378123119200350566110473628747112805813131113715589059558457832545045791873137807270189031626263449066838636412110313190188881722866691833727924428345522083857833940208573480732957562651415597137163576887586747458122856184408701974326196794223061910936132919539986286004515294075650586500285571955967519700798050854930248922460002605329332381073800847220160757004347230889251479604849927405967673424600464439709976061946586534615551152782066925695300434660382850613792016343480709343488839190206615064097438360193215067798696120569438024551256566508915268806590099038343706205455837344313960894592843585987146070640673775924859803611558706855562365307295948958937823784944970492596714639852807665958562099163514700603884992629811425238029519600239942075642317625823944894834597815475206793595904420233289116953866119195788226658452163216235682645149601964243768295141717255456175251388540026134545820918957019377387174649089117992673812224676448270046746150349674831295415296535507019205682004452820265105653138324813222078607609968870059965813040254387486044192773110083027206167888198716565061143450510142164994807540687824983170979411161578434227313738842096208116566180282062499129461534663042770716773691657902940857490693513826671299306398831731376151456914228316646490977339402391107107228347753087795708504329029790948197850576234176626161753275317198172158660748981116518715467552459033555781586408510986368117187920442985227948651508238769816699808770403699360452314607655497228014081697202266359660968251139671022412025475863823897664961350610693984796829814641454525692843643701138042393273318983540372882221375411736819755456233731039310323047974784828288276948725140376163934171559812102202330132609302161530073580273602894158645293899831070946210871757909825223749604271860304438797224610493412177539506612481594506204161106106158480895373889917885349014977192956412938707339979433257997179174333320117474387267056927048374552700378820263626158257806164593572319812946886519445020242800744352650553854203997311200834668253192315734120290756187566952536328834197995856434082975922503661409941371264480913986423832022566308685845350101938618355261680417572234734034021698285540257915809264725511870111265538780091054156076320152296798419946439265546855414409420772554038782564196541385442028390209570414523676686135843886741082419939880991118592875431062980120984322356292284199327548443489572499818452855203712036604351842947516954946983863817206770015581459309565341445336249966623763239780702377727870988818104493275533988091112247393050517148842013673951261938633217445067567135569013666786876041748327199802414660481947067924877110978253548527957749890305708735997590900894071431499660109421374533948676664186021219360672624575923153519097259161043236896184674862686898018110383402668004540710599642664933032144715415877638777304013101299597850132247409859537501337526839121423225945132104498432350651930063829609652767559560637344774661993211498785309443103292909045711493256484064371583840030321119872375526948103557918811354290493417475593076579914644444848618488357857416473932726810474468827487505172155379992617023078552722344728591385986193441070015353332939085538606625717877728798476532824881726870231930447916232584808132781601403649817175160612680693121238367778745224689833931295021980835688657036315866743970621304069083789518328103037094748907146739188433783411298764155882627701094621285886892755918187828318717496755790301082761398243238472548662961505391197212371455277676476518114731184929512074001275754147249353318481470075306546372538236245493867002226798697575015743824694235392410630114298463581878699118789968064652178796138858493751543579595177129075132388586782881504491707517267106683771567700685299564626528919063445290535997366736829651307564693286752206384020258188125854407366109048161082545547045297567578887273264221834566298673678888488294475108886134337160645043981396289306495700372079939037808528824707046596097958697615159062747640637422549035604204602399448112819364510965280077907674895402999618500293057384157428333783236685086345480360975668633549543586901221075753059850302860309086267251169489555456051551404917575351435984914792834019308958063209149687106054586940938351143569902250883126684255566378604080335419374679631759323577625839316372303258274148986727320912165067736969886904780029399843273685201908960256520143780531616119301739021753478134731050983645741401453536133596352698203374202041330963862476822823747962084326477513186034112372044672454849347228480578151642485351027848602390868769620186908857401687675170048506769142394576651025030336959527968409780147876473321713707677191621697443375832308133514154660370174565100831550229029228615960052960457553383158033052356438485394482808785702592514483909373464072718990772114139735844970244831078478570590530542296129086906077033597997700460149377917260446007017146539276293662467149022449376608442527712147334021894157716321935709741694702195299578603731221207940362739898719297150422809850957742778524339232976002930350128430438086043225598516490930994785746990759424295094754962413069189950465889092519936771673869283411527503523360934522571304437250791802523211579820720185504462829841056609455519599549619740810235331713617056625751862302386136284416518312755467342980512027385511081262573820806874283174976123616810924049049662973411909795498245284520126684447924035183539140103176516022319831692265039085461930765588016918808001278032932966729129514278482028441224543281806603212203532833122955960221893586827299413460487965900337370642449244418931285180974524637469790117332783224876322729360760393749648243225583191173707305041027338036042086424118087398181408311124073731802004387543140625084234035167430326381066368142160905976859385613999546024959539283164083888274874176661645533900137532273245944436962487992761783361415062281996724685772526626925921826105944643927640717004337246388347423300496778321205051815515168037772349907547012506148119034266264975082039937304358375944259805397998735927479194861718186769978475988545556968641681726610690838551263161351692381776544094140186034937692732627272976914401805177065315829122676928016579954196730043730618914197259026523748576352923337039988650622766498553228821183844331783411831988932444777372920243154156381882693688893252912322388317585900741648444575621477847108409383381494130557418539784174448578466291510596205506083964608326235390339049694996417485775754519741455720409513794856495565990701982089569057726614711873959866813907996903402634950500405022441280914974499257278396773520265029228309843271030213295654240331315932329837420996954148162604544092553117997952486574182436201376995913587215391212281765425773944487550956849732800601434640702972466991835376634065612768296091317986804904711551143541553879643696803512982187671923615132910181718779478932455875716503006256363335274947496565219404845410962740067947486975851409868191412661401751513132884325480084463610145825319463794289706026022666133357926370274588169805945451624389179915443436678976870643166392191892107367265719277086601952084469220666205369011512009075083583102783623120258087995628304847201491050466986043926771682601486426234668187361490289248894373127173583596717390132850159083324924322136936301562618859559547368499995072016410470014144673065977963182962258348442079901719229892924838748000919744315586326433957232869522808052694955278412219738701065362289793952028017121982405568588324961255507095969532878209994245527071866830035930986181186813445921873132632873046457028680015026118916416385171449704947204145903440824880186042115531516151302064679165636109460897128732833198086254642545015803076464229412446453701289100487337751515572454250806627652275041268342832604865144306615943445093919853335229699482938077960781825986101848308829260561082913749438333046917761240120908253303325848743708754877081293713560921809877923574739544179078933872735598107094099230910645848786677152035853198983749807637812168943004829968768698226195560999685446367664671127272109979858183401565216818284617054590581829696410291357787501532893116528816927208574721538546720573264021521462160925825591329161823540385279174099061613827733578963644947156851482676539571532246369609389589801012037733125941659570926479948941805018124920713690053853470121858851968003913211655414642388466792419451405350429823486343410784325326922863404064099163896973378146534299328485019780592321576968624168288594927665831581206869481261787891387707320587400894524724982177837262141073575876990028415496775089941454712142614447638718549013308114216240433645300905197707061454203622416155719050725327027221164180737324974872396629859816915063115065991618957724701297146531833006195953604421246440783266604130008798371611941486453447362048454437767961532558550620237728979356061582033669115363584868109956968540674234271612555183531090215862974095733851808767928956442784492637071199810459890142796132702998257669247430111591400740288680096042586278894596940569393192838524113565784351982628399283753331197138071198283731238359824296821455899055477774763455582233646492181259536829076256879677672434696929116355714992280975847433327414823018864542617333186861803212245851175363915488301731385296799236641083696958799844477961358315660001855206443600363094842585205514798642845205238917369666156982139925183916860557197081280007307653489356207980095225659469948771143149478585004420010444070225484594758220883975873868289863935165642034923008305833441132957054187535960493133222055362264547555617238058403996590671509493324226886426435084179964500324736858981084794378848138886052433631937833524837434658512904515187250795219851258404360310739914632946860955322865218866391782695080622760511950849359708321497568890517842484389879541927694976877792818436187380846154649190032338851409631015372483993228268387369531746117376885877524344765397465416905914368506805204961400681857424259634669757776591652602275435666939712744022449947277253351206837282956865732540289068087975559252186860162797313378402413992268456372141698523997724305468247409688340162046479077337391429641233677444195147138464823102391052419131447941390253448534507448756161300773217883009477682953286867032091662119611924925769203648509967535415711184581243871900423331815776521203721722838310288585041925777577582908915440546552808484371788316775274127821636396942396690419766598314961789283363949700378295870458434867675436258369096838954190735751758611737552859679883457806365886096974605964066919573103909457825037896646351050683948887148482059310579916284145019998564224378065022641643162632034508007800155711359686176239907017545118587351532147839059437619254552237076928518032234145236397621073091038110214236873824065063876416467129902011739409027060891153865281077205538354672542980609995894258958678312086369183480386358440935765727050399409179828635572721001070932737041484894680310845798377728256334895266377155350421816358907082471515039962253828458404690323596012604241795046060061350005728652391060116572350069974193310689137712512820588441899936238128869680507617913515759924821367664745968967798584346616291327704182102356774046168502293501590503895505352380396977744696581194575489500789839140835048398687488758440108792641839875046819984275807806977173987390413206958304644446729763402417801365959786665774111450317906147592362764823870311489158897155015196650637351545331729816275114930745243802532181533356048268069294880674266024989474503378665780911983858353303047541865393845921113345082323853342434145390349768362213213278828837645074465583200860809682503537339919961033863736179883139323737612493634574372303430849423564948824990990626864855754725401746879901926999838577176777742973396309052801230540603532778213586156568600284701954425982790479662721686570633293991631896701741768798296178337760515066091072717838992286997852616766289753851887900802567946686549950118558635762220068903670027452263414326771108001286517671326656030830169200696444878340641411866389131061633094408384497553101600441180073961791546502440448415269811596814090709801930570047397512343572250479457127940156764899412440221660925942837554416814267631081304590408777355013418135620133088253656949144319634355414287320416095068678375051018567557131585556360867298026451448428429289440278397337657922174720150938421860346354049530764737632394404616624225695815786225525563908099271102839274744210344301103300707280084934800706276755861129917249851516228355202813425925973729084683888643272986606516025263030175554102445212271647214155282117926514297154395040047666978503329364755060368722579798798554574557509997827395256202901942558234327591292955676861297971526936547980410453536936806692608742139847156974235853739661837905778430609043551333810360559218936083628387792372865483761214820326264393302884590553838756895829168621672091286669985796370648783496375587156140257166837422029334850741522052894197431042638149692588390691644322831239256781489632887264384065179992594886630822466877283183712809062506826212023522423079335113153946140625754581506940256238427797563929385076376558433758067175583605904671668933066461695023010472000839101706552727679781785082065088549738676992692406562551628923844986209009606960118024985240209848154426194569604236377914566005562717384809546517418405108053675743241607235941996807042994529156420620014639503794724308365437274767827970824955819691922057766227049686226548529658307143687741225605330781840458573313655736903651710757902462517407146461740676127661904170516079723352149195851298314576753853038090206157881051577939537633738087924572361395831975671806936352737098470949041248700499228351537646057655088691407374860953364540908534663658228107609806053248204262006664051099634478655909959678892511899679590083045665311463004377055924396512049762018565589706707957315100432301122116013438998801561643786568127661941756939035723926329148508141058448536775461717492630597502328253271387713566681157943404129302125931555441112763591325426072258662810121788411110212635333823741782183876003076797041468435807891969433170259233578330809781965605244540746207672587685522705818528691547969796528348996382019596243750924618743030198224884070864025421375355330724922916572247074652791884864353619607623981204341948402433353359729912320433007031989417805724151639781215713016446970676913850160099412409196789842458397087966953879445032763263220342427676731356890885203627918706314954081369872992750750592880206840512610118007370956061536914345098334309884667987605038346384030823377339996443916689269018955504417932128341860481886511487720581111495713916499910028416469554131517585813799307567056291824734542207395028009801008029263688798772065177013305778529409322216634621074064769722630803000914698886118714895249637923359236969114964650241976791724191273122881934090375895872894846793259561774007788159145347699791800928624054068788104559660207127654204444944151029210316007750033750148362590736116547473571033820238645418727134035470814912273674908567839504944240967900001900986198796011664330728751371637078402508612464125655923590475445466883627881742623122167568665828960187028056222201244331732566489125411543995432244491980379048054260272642368689309169742156448579398175861314968995469102800341753284823477259552874146306525130722792772970676122232849723704649383011275784556229079113097457711247342546863148654870919220465710426040388015062649849429395582369221417048840551075718234731107278348252693310903121046975087804265956670314736945755336541567897114433921379759958349467696650999076143433001013355165210862462065025780426428801822331439868025220881979654934769758198784477142666434686342379873461848822496716558536803173197149938752622495654382020417068051911087210137361048770815282748861446417736081975852636716925134461610466714295687928093778580700028457039277341015124207411871692117170055816257601481205101371051328011736414425787486911797500003455715572613803971172943893614992518074747705461695542604835475339250118913743943640283869240987066437954587414555304181551236439193908647548373390230382790706287653098220967472287265211787604231298758588867284247053182170454263090513859171199205684885190174038543997573234875646511699295885552413006233611837429020565327077591282953844939949274339641239811067440926247080928470011313748498910551207622159093910221777450227593263723621341291983645370197262246710754391645410041820784622335572057797251426612346816687226233599304700467541557464318150164778161603627050778426793939908779247083276238105390156163526814543706854167786092788505294075090647700639326725938594068638034640852464096690162086739151732217751495639526187787077427529251507058387178109885149615186855642262830154644799576462691484771278467250676220297991110461393248614350098257105047271295982830745119705686245892547496549618278377659712937120637060922531825921149114141359553873553883129828687605299301230422984698198067106456498146621364063527351577399708506375991495882107797754678051041448041799636591116353198763377494864929036834960888057552171412154686144185769295038839822696306540894276433845707457082588043852054405128320851985336059540219371635387991116370680060594623556625682001039591729318282679321941165707158641556942546354474942502090912661904596770779483979774459057802335001329500406176001566216013161844045559201374067405739543905665095299848078662856967378592886968976404027913686416535795601716153709147123020778118772097682410908324001551262617587055066832607130997960347108562428412652014951781927612572715961279666986399856118204819676323104274533981083902898723264659280126851785063000549602930994535149887263473086769953158587381416065712116966002355111135511262628937520837403674541526060154678334224190471731882810082913058461526811768411294226514851463030452352742550978905780917447339319148431494875911262466298325563324626046341585828891659472405933927653513603362979969281288218742723159940816921459532156177916359276887735121206023725841459632173357961737592445961753096992781065378595270864520050925303875638673414799003855546948824052463601533467074952423560024291437186501419987575635968305633210019073137999181095790119682801547607843135816800621786608539813717744217150165462492557568954644391569348101372745753515362043598296003131881043425061167728188604587825767083451367503540811373621157414860724996787562553529427375986247486881476850539362789356085739680439704637239116365426113829810544718838468845710862716044106566948796945704065568062064161997248204700332161057186734271192263522450892972820490830467849913995025250262628492017280473409507576564107412409171896702860993502632689872785477191334449527786273737366514185298847489899857647485296566506276378493914138525782010554038669448196147032586223103596096976079573796324139567453487035723685119571340761765880157615703133712581958875890667726768369666624778576672373733090190661811836098296555520358501734679128961960334254861788060191139538231901497133251844030928660454634299367933281128097086858854656078869459216007281213639706195130294487851818802441924581394924917085192066054169326629950772572730529600447094220911519262700794115473178883344230270693982984165157926133583166159727465671962681802245756392494954211743818245256246646431262377936261189573882315867047616658862007746454281446140194006799860563528896475427713282755758137676391833617988834717500724715770241536111079639749147452365299994575408338524364443700208744333276127144594594089173632165725634352237214206470437684630396150083848142375062714323329553714630540669008531244696562013534334742217207227641676096300940827008081852720586501473334887951806516844905467559434001371539488035486798852204335520573954660499749674223921876703961126095552170257282194077181448393464667268805295136854936313158404431114339715469180852701538193508089790342772752637048119176340788883607901032107076154785501675664487479594841409376400241409501568035502181218568602444807127558417265816789677355469697850428479257476502261360437652739142176961845475312675255593731068052672383720950521894011802033413584696200045874129825117016467897372257795870077111255794120746010415974168712493191220458684892368461461696663387193982506450141906842796538045371622571268986229139700558118126830620173310845483040899209015160705244652287809011653219020319958341153273991507858990484997396122235811987657361254213862546407424865209808737237354960669516541592456544888849010829941480677344892695779802327616085209250957655411213519841271170133284978449665638120599303613885387708158075291594336138545545547773377856969698256589473724523787885759185861982900294433669829873820966434920656791220573791873078333701182377851845146148966104833258571850025416151120307153562541978657526942712904685533136080986532481770283902031266097346995477380559950468311666382449942203423745386343718055701230168543521151790003136014204347844426486501221026530752137918621944768715277596913934712493153119933023467546998740019252654766454396276041736013651349456201999450529210195288455971496075273754264848447940888233384869193519542751000070027053489172827812989314120087071338248097488401348656899102374744090616813257463618685201259484852829887205731939648735214104791502880860491701572859933367716060173957864315392963743714581023155733811946682457062180817909020907515630185336284970968865020205842674966342310813127680008051639236924086757120566854608494585624168848257963949664101202582934944024491625869647111135306037322642594053419185384259096790401503813082644857184060605715128013692408209368941626001058716516213000471956805356855810695209662101592329643871870626016814583081841734649110121801978292891865380528311418113581217660725103526526240710032435496113747429144187583944041014954029630924193370340189816372013899288748645841672946913386746581110634991018452728758502720794939922401064742041868773221225811868339994041571762306851937560941016490266588141725506709856364906477213227271078437716007190093388019673624733807915976612893256097122082360135426742061078181879064486315414355939501089646030796394173672203223310414339047310121813749944389916631826679430625541793189046564306514531688394391201813863676747569395760518492139764704992793750888253626960231046858007401465257293458326315002168410813169754945951943878736759913658552008225649856935124145931411410893759491670529893832277444321965453529294968694679384638916750771032223463705440290493625397680779602174807140532013346471811442742942179338991096564908373295691076587046184695139298968172032458325901376031539956277042193937736648303345142612973193577811179901773567867708003848848601445138622328065189689147426120100022079039687184544518030403036984465685209827558936520149832126355264896015975914959470709335343598023355258881159448648698874129944386611349472076606830076942310092682788118204465253487260521101958563438144974050354383085193725753358855326631880379952850890268011905249683370866991026632974879463209102390342513641588289852646510241209435164133269544050527734542034453730265643684621856683078950016256009799358688391147652761088019287397013030652011957245483608914385497913408421822962275980242336587660710005494273783216057812010032845732145982892950889436044197993659815009638413290135009220625868265219732642476567908384196752933282182379982833776637568774942492532841015579653592806069728027528294091668323924806987698627682142534717051022812724129227043960525496566208913917363884962867864411255297073941797422796407022787372795435199369213187520232675247320109697837756861871620417702774206739545303628702919918891541699805936404749231769961484128586490863537232358871186808755537121926006958042118913990538533318114708506566580775853919176647519961128071437261078994018443367400495317043418763020511699633024937771420453723324221966695119289554028756702139712732327102031226568823215788739425464583695156105289196079988379703647973666459558782118431162583730543616571280686413868921398458551258222236881109161866908431493609911833010330128897817164312297264592130143572632709754979209534443675442811872063027538754557999736826783701762106381728253959819663991573144638262292288635775265635537537834222815607276272574653420859910203119553111418249700206276430243131907971430604051347601537244880196898238770706692355174539628482179874987243329196007925119672364148126347566140877646726530366854637208354331577381145858610987562503842464296334958496979223133918077830486168611963027970263436306263261313431680917948618057055162087639404890476746244081219785939810761418601186712429809755367530329687619321274845106506854636000563940423380695118474645711493066205596961444072787438037410614135559995899034921218494261870962185323996028708875494074537910705582653388600837785261857697035749918896651769111201622790700109564790645406079958248562660437088884852764892094237141971371943260002560193762820828513688784847726781913942850572508534191390726780935489245472101789114406163859187258982637626864546626220689847354045229244486676095137024386162609298217877950021127623440832379724801040422440717519570854043483104045212990246550362848693257963171140688065217038690223957804192938958435856975089962238504281567477713464651004041968607365302504201506172559855142102610868701278093152046157359162693945778736994287182339799354355121100190178962545070964884520594749781468565913528627859515095630160096981367654938855264292667991700971308000769565545749278459170391665679102964633497895033101029106653735934163834907726990813816791013997578915606561123901934678355060254260438771034114306037766804482536618950683634857463519927766185778807489997309975422985275628959915580144926070325984736606010098425018089622115001031349419208368096397966282825096019363121480739847898106718787951403238219567194212022772202345462540861658099645130986084605957922256148009942800395344174289772578805748588787360677271346475838475633264793898450468186675488284844468876498520586142190320909986202247333541942204143054651492736195654982537425924955977501746695248365433108817783669257465052469999722034558228300197175906390310854915815511246003338867763734539487290175237859214678341669277045504680402257485905297390960458261253511672235317394729881310891012849952382502299964701143812593566046016330749750076379160750989256074874376726849645331484628770404637995277704872825522995820595995652340567722120959289589061286853151748076200225749784868997472367983712622569379263916100474659248181584358067496377812949057902691602805859570941750409740462585808491014568575848361042515895635014599193440149494321653528254550684026260428302575466809631397725083638438767415698670075531106317474268744076873781891428620175685730784409030392429441291756669507775675822402189422907941382950990059448666863784916974553090982643452455309986544614068514788508989530937788401013244404457701853809817729203220914238418088907777726456962412925423133870562180260669813657466390717356334499888504940212178956351641791660029572141828032120637466553247137371381607720069835242252137746133608238344944320859790128863254690468775143435292719404296756569166015984243845722329586397730862957093270061526316341836935317266510796644425658662703098452765266729589555731170575117300760305868477078396557436819595935118288583631330510213488827546061105594936567258798474580187554610359688555619144342878707524228775208102028577524569412515932454832883178173442858156584456749659093213295318153565363152525680054761649357573131680179429192876117842451721674094547010657919197876333562182326883697175991612297789118977642163651013515283193554248522722988261401599482186807458542881043218551839163739861108282237678312511286689691413824962475184261786557316245464256115284289240789912952204316815969501124369248972518901413455603059529830831140155335542215281020819699251174735268662599155608404758600739157988087037754763926896527128384248869390294669524845416428273513464446491532073320221376942045178535301610440692819614209972067848608230522796885215452196671276297778165606264019421219222933498340165654588269418179957160578257610556138515382060751760582951137784766201591733187685427775816528950658907379913464474612481867422116614947689394069764582908184500608936506154734904561252088899441484721859194614952774070307142329675554304425209532125179559763969894373560187077202572557078559014650940369982505182402513199527229412883787417279621672972852386843045666105957257721078673201903829339813049370499203431002674291356524173430413913872959494886272878023816049017953608980564588468253273706798524867889366745203455140495575665026801344408881602616109153555616482298682258109612751288513039164155300574924517893617714321248521934785862261869574137527814223702072780327069322699133452665939498230058810044539205503647608656966694170074529577573292231871340795306364813482821730641273489372456907161633259634542569133320758203772106287480268169486628755255810635654310676633645882605729317565116679069102613959327988194080925782426332531686325761984899417843709467983302616277988131290127100023838516537911845978935869049271264791447386793025580268206746879243311162345595603061011959929931726911257595576997350431301591042399382498014750959520289388349654152958003377674376006675719242195025277849930696938108532012939777202202240978773266911869985152808592139071009415518731966659506616347327734162196419538531995867351797018391197785075218014756656541518092471961717034504624838796569619837719367015502867917572617443670135728933744195035436940428574332739953264026756885632486173024273636681711216830904428739318978997832524306533637563642522862501788605531950379317738951528554750719587755501552329229945454121015259187799406995617998825730303988241178062043558937997409337472673775274686446969363275497465629251052851439695961917924929538609307084193008826878880258454315256583640898065702650321151954216636679257279728681601460577056278553936090069934421017517271476713361580263901964742631761315164028528541999753134326730794551370867973606643273690375375706654904645232772959080785238075938029985022024299261222521440629515475880527978849375865131209557982946461207790511862084431662872945993695843681631567705781142057627988457330427159748483518935641304849178970103399479198305266808007880267365646449009413318243897976523604678846016891695154505602943219983710374506375464159922991260631727795384591456300897445408870760197889377734784834104104826894142061247892990411407688077168108236510833520798898466726347879486804203539497567219611420121551021307572278395412055537069728032539559795539291703680490868294674793537676589705235756977850907712443110167844067692363813918280800610077337655171182636804969950084437374609051271582130856293316161805509439946662009602171551583894933577911896488697883474364386540628853332163182078730337714739254973980731084839627599922875326890785419452998252658955121234838733513552208956484016688432008796254702875181729508828042298457844115030884464440792147258452025315976503606800706750564782828302771711492694535218700089988207533979770938782584888240277923567115278853694268610498043339338951873489137756453168592043715689628783146028599395372415610598390480847685248148069621567868971325883774862748957329379866522325561634577677719299323911660034893514318591006252354159417459850677183778777024508535063496718008590944430661376473749424247127115502565365157346326259821341497962533028929466196508134638102915167929177443850026603593210728136410159724727866961974859934850896504259161007602183397027034711097896277687413391299012067666985158972137979868090866797400911448259358753102441661110368163137790335390208185932423409257592193423598545909584900640473002951556256125587184757649952823864496877077691105739588261044163850951283493065225027019947243515647419666577007211304547771838432831044996305643402515119685285524715079533880336873404736476586820721816379590619961660453995455054839941160084237823439825158537177348889369849040029778470580899587355292699269887804248083128017268280578089986173391440688376312834207574114484282800654482529430273271469058030309990749312954419867604381592564794047271164751543092749773861761851506967262656408662974935026182052351840757892969691703802906411852486262905747191143311350869285873877937204590461417670862410224251324209940600872170460823914926593275666354825807381020064427890436509996329085830039658068864396054222364154190352858008161539363151288944902767649022880801678801003410405348761577602723092340616175171085931980647530372700332997139616993613301501954202682005466133766620504362656511120522121580044055808598371132275875281146758452393945931451179429305811358585493781910277178318895208497879038887908985951417834783520887583467480834129256281307045339514757506244194576712145775240246722451141664350000390353785283218154365912962640004759802634617924114836199868167337321017693232940363287976467014961775197054896569113893156956986635908033962185630535210432345239474155596850479216367189093292941617591903974436083270013725354487734377047283024955777369868418758075645430140425801999439985168043902928145420743000425019897353257002737647897223965531534029048873903449965158623043842458801200148259446931480734661453149357697791626700904668924515098058709332470914603004168294146938957863297222732671218728100715729359031604889215430183988456947632036406382646237591561063959001469864355377429174752314024518626504390482436882824765148562200744945460342638873110103701353308962757077405979686768553036115535472032130692383333999314005389630660408881206129756379308752922080161137632128422571050395763903327859166588961594721596313273191157967136963005661352764415213364637493258701942083227583272524714869689234955131592548454782454147407424467899533533753140512438663750817770670222185841517541372419865771372900435679354835866754720943912921283256004425833469808518389398428637064041692397572238674521434443651040434686982719987056062493145962334851906526372431033249249836054980979681479863691386780145059919528397440096259937116444971427519385787954386380736574758916697058750360512655306340734538026122660047815031252242967403766461285050102020645089275928292642117599106021154467153480399529319740266446161897985810541967613568555613132848145685983177186798395317446796920311696379192958075391354878215679262358160819576299687552998878068033623819693527428484060553070000214230197455959162283410648488722556824224161244581068243329880943957117219263745305397087034531625073744165874464910217082723502792543346596230334699356627302504299711008881335721397319135263281758821253870858507253723233045142296154550941792727780582958604218165620876869614934744615483621332281490142942038865738289724600660868541712893415894371865562226487753153399464078240815270438976080645115197708279400201385224535232854662870705726801023153182248335283428328090667248745307457331157760719646341510616681435471540348727173108199828886184951143505500592576593684060640948743433397593987860327006362657900188383316508831093785578880911041458583289767586094816340344747966030345080593409164450357665343042902188252898037073609195778393075589606222493086895779324259889958844124750682314449854006413458115491437326816066985546890893354953864041705430598570753495129102988247076946370015102121175619704134317805394251003967585331060892134305721660445404172063097035054992389135696611457849541273062427413822855066544390660978710924367934522501687381163784483266000750574976412338261734097635829136245336096056511670588474453342664254311018433624532581774731645982680751293542670609308777958572952667390170478389261907109372948881746249270950424392363482860242551059865698230543218287326991131891231374138896611927478770511843937500742391003811611970458262601067209880548143304817695243334825235665794113559386835295697503683460421265949004036916092155342392009885351353081928483379059692177758138509082124752310781354440908984731378625553220574159217678342717813964830681578287981203730389655035771296439758194293657296618607625997941467841846555117272461174211621289464632080747334894629441152668844006407501874776092909710700209197781200154280708796304683411329686783245359541443750802100535124245135626058274546891103709422544014621836432725943088331200787146856255948584590208937384774487311733932096564149430950021359780732506542011755864793013681441143742426928763589843026152269944020555152869375703211411183099065308402403080061993096948027325587721103574776887762098560735831009770100035775356040524877851929100621197400844720082717286756643064320053154686163120392786356202970081752607500193961408663191128550303606475170262695963085206669489254465636223734558332002896560577016436372792621848503152239827947103890796032973564139154073260664615203489550321126489890173065064523985267868160422322107892793341079202553038671003433801563131289946263352709057902940135706899217365932585311557104672367034543931744713880295521856989363276588932426728693647331120179590830666108982228263082990163302335848987063913183242149796566999986623297171520622429655194433384934535786085328762461424826286073400731096100899448637703032654898478620778746976455347732128014203234644443479715533745131676431502038464646477853724546318832595965053228670368663842775876356548189178065877216376121104008043661501617816298868320549863937678271619969472103119184437777176854654220566416512566538591285769762901976991286003667738582010292994478442660432481042573929367701654966031384213450405124083305291388014584600237952622012142287348973539141619638685223396883220315263871042307343693141091662673944391570491348130410792949957714220874416849983696766760756225852503510294933119340674346857458490388308137423562613130187350506766553295907590908597827543423379553505356147544604228608715884082258893487641115598256776680972583476126904346993391833081817694674950468434037004166640973098388571464218448291053909443308622938490236073453651995659454903688609803180495340106226070706216419951838852438823678718610598020852829111297866310393246622859713095707449861251578360612189033449782415420129186867982344862314599651190413669035255710649744604072945302462523851991955835555925882568923004716479650585338899084141919074206918832679241470654532147603460361367223122835943220149237030807849206498109901912655290774331079402462768220775389883959461495577511599247152005912983298194975247821349515509815801358726151190554950985400989648927654925708219933285964062918511497994755335304575717712977715012392796977358119152134414157676452291200566710162596849021582339035075524350402297689869507250383862487884731624284901297718465768585476312256323350575612483075043004479542233013864698065176020594288675993905883487895931282393895365132188907825460344268369948115296550156241428148970420380885949192967027000526943717636893026353050589361107299427474656634265871700817217655017207755452341880824721915503647038021841566790824024596466509113824615239436422210976514258591603412717034028269499323729243581216013090515485181788797349554214427626849168700510525303095436818912861394127778942333671972429515143450530470620214237171481082215594039661625261282147071351936643942627289049385281760905603975179109494109835865604686132206240549903859903517639105226611726281429129880624192400016455663131348584710681371088801318662300216408334594480288217929372961531271842269749138977341368853267784282224412764854283582683779703220069652620948673280179794029708748128074990339713502712769726133295180687220757763172711387594479622721953258961249429110140294583176728233005764607833422617474882479014570916818369190662764469785918810698282337574423818641730097651338843224414559242009053299030266429853473277398220350624228950476866596817178563301281560903758040840336145875711795638462620405601071340116816430506703442168453118936869119028834207270211746962637844315649233244503911911683102435608661313800206043451253036906778279319338585044745685209907005489376375557564804450848064850483853612896292153190347930231566728127067480520857345109073440200422496248928442427171175842904830626332495184925601041977464197112901811236190490963534416805248427017209462194131685641156392021266734790988088999448544274964690384445317840104168538263281215445465741860906818299619391696312950813696311162406017769843512963031831389066623371510156186233515635584964008780196235109260223598383552636599200394189132201711351148731830149181794229281712043129226286597021197611195046557553028009215243678228589522022835705118118543881200790251796873942852869034342936073037174987376772410658774948666612608148956235458775898691312272464353137334420085715323292795878385419454780299091819275249100963745780574360053894608593930965102109614706060480642025986847376081285385385988039534764099786037493068413701159774165956405072957294389096146416303377875391722318429465078193816044553138638240003866588334670097016305775232441940545930681944005763997600738607519106783980805057259528511722701891917287511899154054629080100987870191589578537838145700920230499824033558758604011726942869476547239371349702787821185701197067054432986590709416242894522766091755718490275299503684949246101769527224632828694836684125353131653299493853030242854488017653608124494215579421479103917268488537048305116716135794353588454773676842657167290412734987456388878068064175936719758684336685924641836935387521785823341880219172509650380664502474666965761898876233965604901815812905199919119076303549417358675946840064769185585494924747497018275452922840933838611679845101023944096862567216049017845668243805286233786318987167416776888563291943545049380782822254226977137835841454847536260848381590639712559266241450695870326629432429042803726030051137320052085310967264218516398984772447177779913443505294094927749793079021393499420141522270828897035225036515756390051956977223233019876100878541727674447359998117359967705345032880957840165557586267536868804641413877208414485914229625574751839219892158915081614670218996681369489647671733757828125785144729643373773633666605949643328919968001719978330009997243473471647731326893206482313875301608095603540136561995931822077629694946195373969871175861800857219588078990308194039041566296979821455389682464309243903447738427642922435714414717761865788337855945329565550771696738726917535076411298851668422554726718939616648169873543286911807144255169681376949462267911058398618349263655537596431212585722934035120450460845368151628414000492527311615152726586114290214877934222596631532153864475300144412806153266764363224290121158218365159903734202877861537742429766471840035484978065568769521787820133529425118910472979274740003010469083323616782801376846708560069256534025907922902367181687882749560826335948230173133213992270054627915985935261788777184692590791541591832551428210960910310476661324507910468719155901800582877516328942667355871345264740596039129024680741687123075063157967231376272586385602748682407081126087394884830784645201800371335049275593701209557980551593836203376580770237069830272571833765773161304325213876383794352738370490352666368855400131922571741276436314437616989557813548583105976162633310428745470249276974592963628242709968968082067417952031424402675440597449922416966557649499721061315147792946453045439272278356300041532657411592107679961341160011660666162106542291498108037185444354987573405940460232921358375386140685687768167472317181295172116181639231353687414347020234073237048105853866052778949345022704410760649177106272265419825324876296042188481119212095695550553583067955164835176323513947089103266772821836165284193394555020325399536316650722416099338726589662524394248568129463076687222502786076754915921960591650134764364513686463062835286031571976401960053381333273188485481813735924043501078968658191517880798959547565707185553152326781532548483212397772749249536768651308598571493519019231652361579713273879398039675135530073901144307340340804763309718726446686621410805077421827170117614730071020326632458740964525164405998334674579879151754414118204715377431062082021906238731186648458416678569902964478066057138481029875161450422804174982455218747094035296122295349077745624847828994525728146260325230891823358221670998691437356273813313568387826839696507182951360175752069386091559958777325272471371337356887483097617366748507324641265368836576992778951513988098011659880934775786523960310382073654908962836138780971795858251655113042750359491981188793769019811512533317420750022297040022029249163566802511759186361966596283317744746282444292708971374819273476341583339320547204869832338679561931514088942450598091475350309455788952280049505478812157192708052654321745021557218910058766847488492293993313318292218236371565590853018660440656264511335017086878481308432056727374508163686918525351358592579914330640316469380816199410715432483744311726496394932169853252062659151136528517707869644185409780907454370752424465556258509964594815982720479824938047752531424351287228370800761999448676277227752888638841023885737918797479017096518547935445718620978655485325683226799205315697191328203180349019499135521585861033427460250332147080005556493203900767571842646449427187868911424982508831439529671427178398537196545245275615374654501162959639097711519657613209907559934518936055956063308486849507307211471713562629398886886490127395929173675694399865590798717162200795979765380349461638386308441442817218801282827437723741874234344231911089382494978790632220938560508125162867214004380979408087152695804078229482719833730561776957330302436094647309686183452458577393004698389990144413148173668765885986778830865359425535490957539076503045833935956394482692949069367610963593796556324326575966013827545104680563508582288562429663547934400072578331608410012061447568307914492264923463563144634713455864323476100348040084652749530932879658281443546823020256535897043372028272441268621293636338278072625776513068955220537742913122866180506487296109731884063570017797907939212792995783608619773048329679288974164617188764434124066384225922099325968498665898810335065080310601521299210906428041156403836684744157727634715009994046495627319085794776170793891927296388773079492120112295588678865712831692857856008579123687843942411733550399079322697371144891142188463356912825445961240161643067367195798483250173799695883157248277013259243923434318783558021413921963105463406679793119183084626083011328636093647314174631675846201156477918805057013993416437064983472813563429322419840930955412415991321720253385923266079570968599938474672188276836261447694591422115087120979121488823458097325813890925803565773526032488637411697251389685360693849342951431012737258643883629890399238663899769277521515856738295111070821158967856303306313638045202973235489773338214186863188458616241130970939387116374205910075084917362304981395320247580038893664963879991549438159825403734029541087628835176126194612164765810112416439071441885994417577628059399437097711052147429845162001836486866196585371428058661307944208019119300424985565737126960158967841399195724472222627814656236052292071122156410420496514555606000354960218718409387854576592346075369410579655838348317059060379309286506371692720138958319932453709823393805179926464484911177717170863412748201384473123208901748316285902563161759594983677809248468729966618704622031585906746632575464491059004692402854136396773349850033902219159889633553038313550751442742860588798753508670044734869874594060463240361896567943590401870655977960246940928610152929199287789301982385924252900530207306558384724582859181638947267207393236151826706435104443214311781786917660283414245138140371379205837578170545680485649245220007937784207298726228039981315198250436274522395609122953226734916708031209324903547810595565406955306925231365427799547361845572986114624166698119226490789818384570785601375897270514371829037569741740605623148563293054537864449707854998216502477622890546271623172172277038719041881073778152730156494939439144297427292130360118190337220833443510800292844645085948601484731438445250488988786075888792709613423719971026081689473521156181712036033249170507487820301121600841637618999780851566109372439318227502726213330086478052746392039612736509527632259957980508738467821739067117774600016419947167949877600155889161626129803724166059428805296523613959790838818430588641054346788442004254772699158506835988874280348927661392872530418640860420503875662922654912135955951310293110424104509123162816643745708065115211365222702700056278437912157364571453945201928978064466925136705084472377560954817649080424497627257760183981926402692551778283354549226816866765440546190719251801897416885291050682737238435590526253797705225217793438332400182472384080440876834885344868588350319457892371935622455396522539776729673082606762690174898662395848399998158026431161381249682973631941780246334468818978176438191810267347236208756715548438508581169718819015540774408967060574871600237569507830506877659226201781367510512623665560540405957585922745960587874795288391742050913070267243148211024158580952551073024634532353171100926077708893840966955889219053391623085146416526389505543672237923126888151821646230392175777495037603463055096368950482181566614346349460995530256889801482456847042100186711332690056643836433244277493858140836056574567826415429689896368458723703300097938321030003849335985743646310929271150066050564053628926574180684011734605360866043016116246289454357895295353962194143949194704387499795547688239226718511509352944406896470105864747118917673276906378924003619640250724270835538023255670269636426224266720029834514089675991864118249154804720590229083536770339983574838819740929613814324894205576916646089727761629447399033582369887396671887792748426102417242419712043071768493407857754128028956982608884195522933787337790435134538468966362855366070207488950824700789755104881821890128506478057895677623135227282501373595483996464525657065954206648402374056732583530493015888696768319824373886608058456675374173569839059738805128577524276955548458684652289688915110228184565746342020773642853405286004005256198211027960760633961252947358665438476075123151137463896186089088075002516539527189244976882783176457982990076881317446661604327161685490399258337869447534604303875380535048961274150220023905208831404368133469404472937906936491020982098813828913595458845077548175075563884433765704406547140031511230063347294463375882022844584743989854509344923991953316431548717142208257403514748045794569360217911544344914338458424469808454872232134432252039218072396879442841019007544482789223254742153936630912781841252444088966184602168691840915305878855273106944552433516798482890677912941790598800456775186683520969091170578298785242755072561536492104441294033278251682711485191481720418657964699157107007005268361404278151242100982132132151581184843671026978641227825062229504728014428026721822397050491792006320250009874544354945982341058095906191984464401898831392614567013529064503819123468368771744720111956184531575718038785424100161777309975395861654146086675522339451225417313964885438413802197620567641124282335337297797450607178854078342523357277764429435292052948882721178182430338719231265056771883876685880797187585884426459384463641676228920727912318722323493663703450240804859030849636770408004924806662768945275472698687348427096658179529056561552431741934074315426049956059620598024440706894364316827321511626511276815350482628016793645711330431727090962579966510458736443569762102309355515168646715122818597447740287352267110997551697552876975195872025590238590675770650082517893772603464769336181000670066264150668445009879056517946855506246908643868559082125939109664059447527741734084457256000675345371293724904560628594140860996184430249029024622016510655526194290169493195043912160504380695627018037603081475036717066794427876501099070737086493011069700299994221652175296592894616378294396809522387692218625265517614709819228174675255586550460335948807995514964114464700269980990800511777980654906449935596312327607489463710815367257974136254977353371783293133997940735686052477734529404796527157869606727003028041089142050577688461094047570804555801161192522101580259594384872862015815161994087988538454949967206780745505819423654746608449285799229308272594096540440172390214427164724655634972730111165550282846402311402737638238603563121696386467759412001633230530190483882037875270717219078615225110301769004810789531167391621641477668147772747296547109069788824455454827662963133068476577750176893973987648603145042080526994620469838978446828182291458080255731974349851598297052793962297708698166318271967818456445675224871156074400792442150737439744784526939482439111155637666986031797742371440451519155188762008681883741773929252491964218149974980602335776613324199020221860313464844688379105423745465549040378984582934367764039457257824298570469621718183339304041793880513763770375833595167892068028873878527723753973374580708436593581375550312077454579730010986187917961945921469703015487282112236792540476173976399184169903428132195635294667123351229363279959463540821927169358215427769647553376726820005746849395987250663945334849318824906290532369071111249691469635875807631760789108510243674207622161770831868329240774510617775169906046985912036227349345403999235964102690863911718822358686180255208701511628754143301064200315102610853411551280253535733470027314306026378014362865778807832611339256213812023778508497284834211065273158388383161037073461883381354260552128733071668182772660412590623265078033583896968102789088203638153960130639325610252586066722462407147606812805988285632010847693796472471334041573718184325609517027275286266114440523041323999711942396307612020735895144584922955816091929510169800132699478068319211844419873978244628123204429216459462540286950077690643377869317916305475417091297463328528555736455348016521033381583763505346357646971658436244038348155351456609771495428915605716784859400388174612624334077936690500862564336851721812126231629806439671112375420262138015827259724237657923117883196469113685016806284436825051645863874199719478429576038701020351927832142968384996520911441902120679123028062497747825301348076813954576117438719866544420936359849761134391754050223835116400077964709239548727917562207205791977242196193340205606622529828472901109001923637205476182206729873715697357651025351109125689546240419032251068180763271919106455996745668529006090772881667241195269704159323172570689334941016193228766974073971257807911207450299146037352477938792536083591875921839477624400808209378349743653832377209726688912734760597366361807657135358992355994074129039417617534386051157229212657414312348352647411156388742643347512582414215984641146362985711071008207698050941834741952010283056502703326446657451580385369773418932590068857002921075867198964635580820375217486181453446535647898469245260392357616946492899879716309623632650417892090207559701877188947475020716107267871313964158217496478710424683938367215415714630389955910632931791204021682115915025144632879782894765045189170175860572387718787676189222250222067083225254467171822124958400327349985722697667614925170545566638510575237558976772352804880343232446916551425940722592434506472841148599202246005234131025698131455968243268586171473197595348370907652899763066140518423959256800624055224643099533056911612306194774737570142987637092205566234273385831344748772044239134121370283018020889687836772697729072643449706162576979067622766310750984273687465883221476483968579516318623402266409572819498001565992345417567577987511929386128039153815348364713786567820738964861671637282290651362965903888594510774685370516616991789812389373899951233288013176432048345553357795112397686307309243929051901838466102591523514100576225164707500943699337251398205956854515871995318000451981940495474692611177356658400147243231355845010156215954646908335400729603340911766137208138725347050311926756379614934465638409945797897408398587101934813315090935360151779636605075695674774250246972557453458507732689540471830861041906919586003855208700460204467418668802195238651680864920534144423868403696328227462484470967402764360607749825142827632141951391644443508295665387845072750496064745634987176050674841324571775054830572397417421293900683956802014603558083402196743567831881569089789143779234964929582792457187716050885589757474514688112390279068496889026988978187698038916294517400278712352435134560820195673101300539578658761773280905955909846305733456940954897793048996020174441760740715699329698639003676499023487436055656362882156732981014006304375339959117458414540855304932195547266025183948370366202398936354072609124028863398415083001454195501909704901198833328517227209037207281055442690052498123046707163847920744463904705642834479237381269098145041424290072018322064014462263463546348818522140873534260637423544129642980427567830595360245848920317368739523030316843483887822858181729526372180658268273089778420458642658250293835212401616663120977163959929163638372745892984726085537646643299558316219904261820022837761797602433886044471566489703757961315164606610133521752723071436738156900921545280275566511360150271689573465050902650322537306844272678528939845003680125112709403241184215362125916071676978324806427950143626622903734984033567347594134171784901688789623156446996843022833644186524679955937068944478499874811336217772288737961493075083850108042626007943396560991749440324490605880548036090947470582965828192091742265900647851014214898874729336567226083127238378383865428851824622030810541650547975575903861625583501045070574801226385637833467290552555423075776593703944307309826627290650909421129201691078990489993965080807232684307127517736696404129186951810431962077712992028418747116336057370088570573853552081712420976018887164635524393620476771189814034854535848959290580803224652906408906327792503657049776003063942926788464849247794443779857045309841072719432375704790182327895397613379496259787617946098226596732334965905405730024345152987945624543255272568311826245709824863011870380115523485321858349331626179997211995507679189012982803014364385531621461044293077881564530021007093019659565610342342801313274630721623652451846498578253816975137323976370942628142462670035361261678464648015535083371785454586644117610943287773186650245696169993043421214682426776811303396058523912578468591543630209213028474376115267456721721958629506877148423953643166187246428155559816556088751976779382725461584386490244888123155171206305770593934840591553555833475542774207380002977725620134097481064958548882249386386656496465775246862919967192239246479187684021271704587408762829298225839091387176771922973975407059889359173910945784168010726642888715754285586955033084177377438464928669002628000164114453188309331345756529844104678112802407370196926144331669928162663852309085603604268259757956509908293611876027753719575397728235231869808688820916883217210254158465778902428936701419647614463026574218316613009440238105539649264931502627634001253631508845437770071773647448637142265987583194467235678329972540391690526225565825051100493513276345961440168483755974119740617763196672746716184495998318676018559620452141658149855520412066387853748957833650606680666315181612662943725755757553804534657217738754907317074644690503437629127351616369855169809468727213983942427707062796503397865721546947204184048101172280376230360780193089794830979821380295912923008521939041475880707162107091526857434834594602431186714512624436298166593421170991676737414569547851980899124940154753913171316760647406792601244437961192874574205724676447558060350117913125779295896282445190163088513270760121138863029724511570624063676285326774684326600397747550478094918068070968016461672043252987915168537393465992988716361767803412291441537155618915453294393094614584515293455262687779073434455785244358600679183415799071123486028735913123510324780850192034054463112566881466758849436422880572952257251025609646896746501274908087851806331905673822336037401908963720854796680493812627243172521578628896306631395113324089565243017990195364771173444320680556285292524863520905372906924757756020986760834162017430841601079427888345730337777617964003511564983481574686969610126016595792255624006508761648980256704900383901066854915939133557532500696769830643276442438618054725499588364599698679535923771269813965275044285130999048880963132003607129575113846761882348936399366288610776263191438401884669312567142610281842683033162063407235869851938099883633471346239846890975102859606322450828219805841346342141392295045693900886323489355584072425393023217018295175188062481257976447953610389415807935267226106117199419410126595986035874992995288138736373478662835405098206583712950228211756490508424425263675010353588522181562863706405206436639866087362117450663251333139488296858229081099768156815829487376368920716854699213845677329769701178875303875191804982965217232922211143689229306818315452974764626186925138546918440166119596126692593463478487378824216305916275676156945531846281974698653396653518261241407431619178163254620763512849251667206486359481856450101964104235181595031712109389359769245643573256392088512679988275984176668903699522088782136710818695686521201232395703660764764729356998047357273925605985226743087008776285897565735805266482699010076702464998455055493058517577092318293287117373326829327104821466787654357079905486999804600044847218656448173812606486588905271127793920170555111605186648005206702042459728982678486455843421063196985191315708636579198989079997192491455063942869153609131211649918673133520196368683974567238067407973223705055271254350503819852934556813830464159095633051599054380711322757179222731413617655512408309474473337082350071251706736064174498039459207900340977104969425897391144186227562975337924622880706357608623479224243364887128054440699703894956635010013588154043456844916252015639342686881110516113323818765118721972144631156122801187203684819398086200825878008729478881510989816013471114990090608040607863173677335207933539960588000548084698748962114342163552357755676326295259533708413652170163537050914974414767548140648098317169892548085795221475660526824060598546660337717959238010187566747684957506300112586172239209116565264160913271323261430848598322868925397546915539909644028052088488134507103205036037636958655516537369982092603955507474120234491335796727136350669815221024992832268945323588422149485255069796767009175457793114240005326353076966589723525889568947206753560039975300516026612542603292347910817900554349476220002816468921859002785419444894749857815421084149932329968476811031025845501769290476009274645408607984431670533476125168805823500128757678992168366261517132967558814636851701582153074549616047096981179590426100986872490161850092682610509070417490179987738419805254546250232270127163403397713036862348265071171769116550827340305346168165991089709761121856453343675084920056295986843432697694203870002256618104681409476997623609962201331055164762312337791928029332466800353025884965288685616123310294740953226774403397139801244112464456213985430780569746345636851463663366411905743368968129215399105286832213524506648427096162443674854736111479116498838893459826690950372021646928124731307439867898762697342970574293459682207110026167601995513314109880090756377146491886860044823027360124382156154583308681099133936526439572772546307072525315561384440369356620911349621201102080824813052278062341870761126449642738219091045552265419109557104799512117841818579802204463131665604270196244733427218209375665992388997398788459134768351893808545364027266134113447553493295574813137031619459472971054741438397378392904198413527900680922049906883460074073561059096916332657844945623523567901290367594787683514799474559080569235534401714545697506323678810237739823509383898116204764268073627316615366315204018831852719780170557591942357473748667894080354102032351166474616209308142706283177412283699614911116028982519119731179563073396926631997974619922740163299702179350232600808037491070243523767189918931733037302813617080498506766984993637307619781396986189749971331081333824711442113373965978227634913108792383335099599418836725949544848553385457481038434983074132026229436850155792410454131284960464292134887062364956267022151565517915114963631672204197055600961075985840100849051410591505324209836584950190787635421754114695742508186919171070739379888562184507485037505271697075331348891234066715075663413766125831271555530606482991802138793582123996599724601513428532556044187173108201221023195219565126879755110423635427988295285518888567052405417529311315486873251998639873908832922203531774384826808589929308959290459533750975448428138271863006021951387712622430223412433070607000197379057948593949962888610488410099299156726859200407667163810486013099570536996949999238611451794400027409834854722781624572589487328396113517130578286959607372643258878258336667318923896013817193259127769615404042899658948846736328872154819268355579997955679764665395466867435085709449093908135276289989249308927633659669746703977012803350159646140527124619785002104474925921456549164990776324774941595807803063179349815722335970154595914381364857628285496232965906869223918551652096807453033069463759374942573447155362781669094685254577848269985531821167244612536173826803558048664439255813822021072901927045019019517402867069091607275655134352228865572460730018039395152939837698561959646853845481797985119000108060118703617063157515798464112899050346275770935650478640176481896518255620234047530517982157653747470123803718849540722787872758567118935865110863260062630034338280730745436483744663525081092329813260668349961346455583132934371065777708261820229880024044357212895323152825091163525356671074902709333773639775477162485477452465879952835664694579145782286433179421171987294052443873210665196965000717304859682281021901332826788992994414689043429805344638190935461825105197182586859534259907155201296985255592950821051963710612001340486757335577293132288887313831724148215604249513134814636500626812530926643570061842842805234153283200021439101634084573051944160521785213568691493886000438057101445603994010036866154864453195454634138413796488099967147312470582022713241970536459419518692656701124164744060067708707591814038650618568566956442354072175415361176446247687663401883853896365357479523257888548942408373100837934669503217896953934325835149344443903090432902305292890944190370397250547963361234327283068321829693662398629627705546768786216934602472172364287712346978033650565261507683036876422598923137714449666905098974043596218501487751153336555232957668547007880751291082280054658800696433764661021743304157645000272869037750377786506713747960685953249254721981267456875470767070921260636553519601194852412926926233191476510022605452999550854996962529526824692343000103313578063296190524542612012678415399791360827245257807585414082665566842580766586080773379264641817313599288014086475907110162832335166364030767025885956059314090210387438174460413254381073817167560289463983447094205200851498302016775170982727950337669281029922168240117178163238934821508369841524328313009995576811296275985377668755845415081333998168869557048062484086604618812389462617670519295496797069964603131461295949916546595815281716544684239590424713913930162704062653829092456039369417075390672348999420738841275185259740310238398228863343695647759321691780780608972142527953545796255821443311315545088329512817115441672784229746546006151396443462117841068065426315346477651713298957884028577223266897853883231113481673095581531587734390904632733998204152545738469593054350404823945160945489060318102241004326478489829850206959500577743844205409116434487363451734007206991608378103822846688616885469269878529821628478456573496301550418337387504763836448180606977436765020404214611558310162946276743365221849737496580682423645863013682229484434152617378649411732610508737634645811866434675105727432098377652986913531839430538252470242280624105885743856815963100293646124727761930986223879330456098503773322987078152262967588667345798197111391085425943248337546221236577687017997883425954096440196555432429746537613484705530165932063356258856688748146129061267718940758644028021905584552995507860979577454529888399154610195912859412871633404542291134132052411209236131941180495231003455480033354584011578925149200510254054746857201942595095436545789316249162161653705397959684631734401522397495596326945172552970709925792588035134299191275113815290586769301863668825386193395643656695341139368648025668697659365988532086571961751166733790963024809548501018258629024319647118560260017371511664899842930142508876436235267800311806438774597966478643668418621780421352022674276926935811805591447457576826250995188366428963384183829425253572001311172044099002339280988980326109693444945345037079992175381385764797866274169268418551673170907494132039744919918246419675117830033636528273821852634691903299394006884482620078514099796840589459100973268649899345214295270697124011598349623003945307760083367690610859324769327323967517217950382145556023861056364441944045296280163212122386413733418125891422742243914015228064069950294360121889930013661871841480636379754015632126321800282325564648598231784788258279524302400155023585136485552174470758345032779981884597004570030116042135255834737495517411877315118384691299729692227188766877046268894750301637400818352331495459342734465127400299346952762568927711661725093121447599764855942823213433132200816799413898572512906055144414400046340376906330686798580202720528869827357135836082829965540664494814539781769913572252113062489475050731294549128619622695751582689049001062177879660510808570599054166681607127700952711043176462265092533485120496193905446311514824669164472397328707822102644420278350952708024263556469009109205549326954678565951344461095282647563366090881964365378471406049594816139382951542562439468705916438508094664762467386540000954836784877527606334254224019298204582566377272316632309179050322131528383600414519806459100590992339232375264175446824007338260512819676163491188099487156408670546373294520163196184311938357026564023491374814936991636222942776550545146386051557252166710633087968191810641070031559924160335345904613718234134844135755574922083141431904414702430571261809067036913951205425228957768377948242322652125684287096056107589743183462489697135878142343468092427124496921550704392414434740752820651118868681427470583563750951214158249768825883906927409684093917675330859859535866368210361806005324819177024987699593255921050086224002171512243769017310159314676312413015531424724268171028457906368643332883158853499431495170297004664478783532740385417923539835397087989382069951670000324790346204092573273549758165736196807355455876969521989619108753330936428441636631415527743975424516633080833798565874185708771785780759219147456022138849070890774152011819026781181424588650286075206970640822770678854568590745043843103541673359467819505706305954413519991551045108758234110883895876619139714933471211010120423128971037161761442426761772444308758243364153695812343730897565558132801418440956069985495510508923159236532270292230217558551402375502987219718153820440677828595505162415634916248291259693491483942834633732337867326059486223187190000079764669747256285410663300027909512574388511226577172981676042385471715154638303064927679626196821986278944945598927603167073009437945003921769364825821632469256107268238360926787411566659375533336242308953033561037223273085284245630788712547539179201006319860070285328089604707362457317542785029772721297459108645574891809727664993307624481415944657709979209513760967630183225679451513715637326867948931346060470421505594516740209927121682642197652013815480726511779372235687730015427723269021218433676634801415515855621543326412993589102349669795805415798945659587124551518348597872051198500492908680596470621645299436599691379875910592740239904490136463968985529193496766095366771752902547586766104063968055609745750242126306452347012893626337719666917379646739437391753575021922998900044075284379591741484657047772849719660339409050301189929964659018333897817359537485318997591833249337795627663215644074257048166249353459873300578979454219367849514584269395762168154339366914181303503935174527517165985419663976650276366663646721590589863485780637113644234403870588510380047042397186284352371711518578936766287159703952828502009925116094649321223927467289991017888887416909991529559509909289051920657585431849120308016546715915790214724458738300532890144464460730109448755626314284336417487109112164629473811794414612455753752840597562224157441309492164454749198161717963840281029203374411261496601819598621706016565675898916069770895411118245677903640966035693967532651398109329704138097372614060164994765378750625321515709886867204018648426702924544956133751056192884513224457036318721474779523808141743548064601377268396055883434227487569773194963089560708513880936805797724984721081279800421939922848307622862697592172616662906208209193114098859048886680192424027180530470508333484041833609247323494349132379533247720387731094898162984783132251982293450042453005186135969741964662084868542720153311900983161939857397662577953069460376089127111911895788531293033943726923054781387641535540390891249814906097372276515359156974239376728235757571020573607285771451754636433871359123743795602745178617213875200844656275759313621184449510776646502971673801735650444957794571798224246745815868646175450575604923229918248388490274657110430075129506914172829255425553121720881015959362127398684195963017758933754824496151520335529744191583298863569516605118638029695625429878708177502547709930630978697387248809343156079889277809678967105272677526190445001630716871586164727734819455213572948886188270527860877484987266518644312425981319778516816185017000988093552321052367829065564594314713288519023666331006491581719399014276987178074150436869797799364522585713483542090780332609280058816611361266957797241452163911571409393673318078215424737967159987301624262949784045502795502365727010947017458447731917144153714120041726677344408467887649197287951845004215434967258984986865927320817789572540411918680821931604703261311029823152187356980845120615076566761548810022249004404845615091977289973076638931677731870392821590464519590842588059765681149174162204578411544634371617200137731812028116202268231553984714321141338963854661538133283222319979399563371517130148243533375894894074740331186767580451629152501418433829696278619347541850309257314093988519256643970383823203084768389801715634537186571136691239600472629193437573985098970140842893161403286177198615836126926340115975437832276166923103632442650147094201780912326357604860262203761226258871347672330527167718337241839069567314221753490403426239174468659792451567506596234642239586519033548808738198125518559841912796798728030003084018721985568292232995700049522653907572331574951380504807996813456642149325067613518851636636655133050132570309732676963076976490502158844992247431394371169629575791605259380884816896200204295245874169754948160758631509130983474388652537898135097021642509035856931359650442403490082092025712297345554810043168277865030902176338433814098917675095263285334730472516642989787406076617749821698887122610234437176693992637310207680140951938832499244452226723468083933059794795640096160468486801994363440383682379638701391824592077621869614730352497651027096595049264728719184871947018815065064583881209470479156287760109764612379981574318583493211345595324175444444173488635376138160064747104530330420557471475702675029797330259747682677982101725510054150458449190785288502925436695129673112765447182869893104090097298649607181187625985146192750952586691636229680613683845307301735745786045021645519888420187801831586202091486836178641787312303884091900555775383022449550238588740693996169985268531515017306616824761698338708336925540434918158840323892770279844888483051424272390301878548299669976188458311480494745611618174359097636336995393487296044541518003129366173174972014150146390709493621651480180634631889364265501242308383654312725475774520615065930438755355317305020761642956504256098844789725511548629295094849238439520519268774079634715237160872850889957401518544087323176934714135156619163250903062702870693541730144241858523006304002257975501822055104088129285832568194660615485591349282160264944174416191897245646099111961596950898206121727858622755688028210290626499393811867057680600622166926228642162766323978736414684600933988904784868718197556567020028939149472128176013870835483525839276721623566768564130160638855870781156120148130371037918025455719432783847409243412911889263593968661815195133111279562795241264351118406364973260362503958285572541629658182791269935620145262926262649951562124185011777330298222042653130040273084601618158068202884850281189411075532134779291086905989317562845035134610843382020339024738395262102613635424581978727303231715875808515443046895139481270063131378486693247025857066477927751193515258543145777424156052690168433969674038414822182500428903747882946470271870057056658723841400425596819246798779936864013151527114173582217642101624749857162024570692545435770972552146840314487967866837120624697877174376547803457162949692791479954291156544225968214973135729031287941237308865843647148323452318495898415147058805378080911796942932553206573573897185586789508883806970209034420717503599063672166318269669244769942485810411125118972416706642804493441480334724539173590555984872800083077116278199318199262558522789239803849399990923604132259221917316339152557736107765573845343318249608365618442047223271837829818431534100400134501014187103955615043275635578935580408942027772686847625471793729070102641072252857681633445481326581075907704159592981146037837373239254750618456158112006912146073651367770175290687398380813017791442944798445628322569807644082622821143787289487687247364093140796417948718911006835436778008991626628472013000769719780148992015831580029473232365801669109935015934872023752105217311023784181148778313264512280168045426182528245008444394843801535266958166161429783423745102439761856314784514442123257599267741653279825003685693606451963635630256708281847895087368176602640090459836527547906416526801657111834644176055757256404378478917047166500507984142653611542246282047732385650289947873268282431177208425414190998645177983566733172429496648415708941307779250163807900577357458116410531533934641176085617428563945543213967194907178963063647601762884294678658175612200017432970223730024577517382322040434271987130106143038003359514598259560634747733388354603992065046808403167355104169246405349114774373121821504227026359625341096186254868953978925836419381856841620826728741945407833745914311707486799342615181773107278031815332107020835254502379717979570522725905927807759982200017134122929903145932056120886257377432384435506194021812481954064895614762065669358286710820988993424500411651935240622173440513369297527067085844466121622029375119417686669637462549055697921954913021602265880879569391537507895761765163955996970792708318433165857663067913487762080765059177320308898144110452508554012953630063680095807851953276423431693361638750140238582154172490755310207972428038634788146931417997506270036649362548230922735202714896975553449821433075750426571545166076587589925619759147813595582721391544915754065852320018223293455964643914015284871243620885013683319522563868518357141881240078129762483831555730867296174151658288648186074700964800063653404286539553536117937872714756419591087959696564041472227969311730772223190705929638170691436836746465107482058016937937669662184409463722915501593060758716656389592085738904073075217758254620864029413656276695334033076328356253452375472696689964346958848136498166580234353643323190978655639799934649063326943702860320173350799610899550664830622950169494357264440348445660430027624025647156337108095397187971006543500610121367380247766454535463650433550504310707952570173731285136363108863900974890719085547764675310367394651559429664063181596147949359794169585042482162586599753301540384995232833821048287805328019696707059453967577971777317431978818546044176158162771470694259420352185029549093725305681718064230075441674577179323080937907913884707608666460984764218859204030753402878921100936913863183182539716498148922790970429869515396928890677660924135349657273566321136984897144370978159615676370875162052949602815574601498930714286191281339864953023162150590004313978437635184148453054380806926968689059450674710721111510706232055835922809800337151846494443185295684047992687048606751670126770992693752194881092235205997683867226025269830661983751457152932286395612982808426286442815618900066829996345714587722691148449237629002598916730363526636972629962249919868938687631650744404798995864868564784021448759790612719031676665299610468824700900763838205543070605326078360173330570300352099605935106073624883319223914812842613929354119308708489291806954827402252930285399856117485145946727143456497695585806090812326540631914190187614243871891914286780183870148788569864180008842396131740177373151730313003136011893688609008508376387603586179792760200968108906702639608706513562534646896470868932629860426352753327410333464325827922830088281824694468914048422075917022550627095258905183324706949015749175914019417556283202737533119414976334172973009972408483221863629955378510978737567980707356311887305669950145488015212308577580484754636195606252760540742731395911221394004546480785901654875459137450001223315055042584060831445482869819935461361100869091456639676910227313222757071481464968223027035025201777044493845074024575332323107915679306669958881586048320788913575729605283578779051997588100309074623046184644185003200842957871540367677827698644012308455984240603551448630307844218900888186944930307333164605695150589396297366987935027865627696082090979688671314418077757653290952716384961254350407271667079165434849617529015286187866429382045835750149861090282565673297640780284386667349559026767816493675742432074795418440295671233335913591369831576227974388471014796488916186325743518237587240239725504721529328091972076079883607522290758420557112175424427281518021906196858852358178055162964040067603047825364006412055156176562726443973875733445672110846671194558325537970674209051353355570375513497271201311794335782002335625703433630857462399561022888126658556129056285605560635422288269693799644013507728687876119346749866158718724442332319802569766159294070755119145718323482118908719211285308525579639635342988659503108518563192462759045318193157230546537915531307717337852062361578570838390979007924100862936380023505605138341148419466513361447218375506973786365892789307911679848013615333381651007056681691595061599077825286823477632375492825291440890132009956000615729728896956409754017712203651562866675453396820267205955542664589274798571608256045750967471219843252447221794812941578751800260866075333100089432761405219147535050780260235179588569150982630647041357227517119023635822874747986068849337614674747765447917926815669852463732194702324102195612439114583600981785848158308108302037437480546081012726893987697238770247301289779161026365212591141532016881491119271811610635759028061008181352169999240024048483124542660310234462916981312740488418829272605562168955220899946626251846430708502700195703959430571368912590230058627335506121747200971959707612797903900047253853277989672477911122350253483948525826519376354344152615839383261770083364180241277469308203914147551735231926062362154645811874188576757381264497420620190501957377478829279577852833755372137610777132553802098187612384624631053596561668043865590856113384498395261234954333890372425902200738877279239278598672806953260734611828104689784592879185559806073075161097505962644436447833511606918867349611090419101373560465486715860064175182513002334740804362290156203257517680097334540513678191053740323752752182147475960216671567145450418157452272671549613229940576158264761945545550889345476448186012710037569141792692987191453945985024738449787964863760656080527717524560285005006862334048064265278179499237559751518121122697509302598399993618403403730083756527445345995082647220108248225623426413588372214524860844151827790043873346435611951740781525524095229090745259445337133140369009474031532309225818381262893391878862458063271817128169316065422887176810020118036036317955224532818529007634427287986677536616288703134460187057471720739459761629260208495748595535769317204968375680112429023607373406706247968165616232699459172366017625865428749397324125603305827620565609748830502249448623665213780280921659357651149264454197917027251126188883934472386202939736430417723169058248535959538750767837072172744167058424835464496806487237433158951013567517765440393185433731354127555462400314693366084626083633624894193899043150565366837396085654177743647124366929783435105214214300173669640130293209327319280306445737201712919052357404027909345750868720623413502252883844764292735180607551257006036968838343565931871494772074600937535496418196699737478744537326530134539153704695308378932626514996061450932071001958012702109531217289306766616470320397486417244400325980759745333702923715536544481640749652275595713112006059885588189300813787063120999882267093848783344311546555223955164689442569435433030063472528564329369682228872393163699894654402779382177105541122527372432175599477181924904539076412682706077018609452683964531201231511087525878708440742091752532928463030088867775742519627062200861608320885276781128572379642927841740689491042635509804249764092135492769299026705665382171719559660255857255868306455675724779398102182132979860232433606231523007225499941090866537828141263416924603229973019643101212794125273087392735755837038892632692775197542916956005730317653940842284563556391321742227921901347863251850910587557816098025524831354898423469106104079337609085004189138790075466257331382411748583048249979139613648299117796880503221323538259649104194594996334327694721553132523380330388478367349594705924890982502340160246963504056006704377083702443970931403671077095364483307646484835238483581833662079987046416635741931231835695324295637283402526962560305435729204785990557245346217367298091925750148046662246179733209263176493055503696330864280833464294480906330375490563496454372200212005574887604830425024584935066057607563957929674870209774740437693149367983824120607444197386473893161342109005834248253630524577651687429952211377930700613775084420027056175997384979323137094297363754050968595480459092902852921574998209377618853885803484861636765359255094695710137062168079922197358673643240479034785923705126329071279380592846057013870413591844064177981668964230763340253905329869193901038356700161058759642698262657088052074081056190827393359843441012814393296332169236156797083837772530442831632083916894229864127879927320914669866391939510715333465272470867121704178620945597409726984716267264616562065405524709352560446177113736811706376329540138367297294519844943850327984428034814114929880539020606283844764403457017872166060685530100241865472214953490695809056343852317019195726631142620487533781459309594571480129501584763230655249411655732955726993336344779369211555630580519014690349756527820344192199656645587296271777059149577432071274502899312449125277985973005142392851994263041113430075152853917314252541024101087581336787181296285242090937155564215864562477382218344690689685325711346369064244577385036973981069659823745874709770079973966022021146823456879531298177198925384922346219081178411787794271100535095650424827109856618008854195546736679861666500502297061216286781300077228102824153605853574170953266824832364777434105303180776411815612100845875221885476471063737625670498215297824075257636129507618146998093206761285110426914653639206533216760540947699740396404183168686215858163872865703515498636474733891717180436618317928995369904003350634753575230187596247078595382396165559049567270919195507500011128130394340813866762393684171759802915972943832774609153559889241878768365242767225000506115975435466567881893644904477515039925325558141346647364368537255113775723132647600464092400558584940668376849695144463045966725954338591765362805101201444389645537998673246178756594175239397181564091239205372251874628182405990524873796453366461963527988532448465387094273527120437237057125828566171320489486160298402081733148208682940176587096449659669242395613157421509359217525590122268696593009948382493457127317886315000101533002426101045274915303941940500971214743512624564815028185412594887738608497558341738236045270318466252291113914075451384834518860731896302041228769265842695494075804630431004509533439665679880357392987744033229764334676824971379473209344430736066233394190106136301838113038672253448488966292177730535199009073015054736749623737772279615277610682636231518931564399824031061502136053646914233402222161496119058380267006936253394171642665230641522239486102443625032204700026005127037804255609318100577831311694653449413643166260375456926044267399753484321504665197872769234992365077418144030885654663465517113084671743330174546438934406637654320004320770280895921364734983629247198920368069736791062366297854108710933736360496596207092691488634503349665848249837103084339910645136694918495003405383939564756111517123932108423379913407595443278480416617998277257254300729191576151662737745393357338589112480947715587265217560570540064458973283778388430345220803002886407916336685437153432221998005421575728334978719053706306018826465147342813542947096897972677564003876199512590616248270832927686013918734955837722623544776244767251647276637048914844691655729466942697052216821457438395625078520657250126228265793378148489911346040876789327970205110368719658833757250258416276205311858353462590152093854971214586960640692686740328562022635121247909690466741601011454409292736054614020079263227139195016877692247166075382937257332784884458925493631532655365801955235913515400654443382669223765765658317028857446305247525895950839781249049944368005668203228276754279772242362821350840204154113884456720299276242718099187285794485414432285063013153133131384141454822274944731709987546257348934652526917683263952686051083802005979587632737056220819646468618321233955479017474808515148842142128933019636353445784749717925466064678159098321488161547614373488503099845406935981046357209964161918923640157487227748438458840822794592896803585811278962023803256754202527860666346161990615924271653193894151705038258058143701270412470808838522507852750355680459840013847836320557581798127140616060639881116413597455578110334646788054649919966804095040806853190127739615698791762137041253178191649333999948065035735013343451739815323482566773213840705169180400914897159441918967141174204347702360731516124209513865848186242478557160713812307431790673953743275632376031761681029684432061288244093323804961927647505197079619825644320042301814996538427138535985031772575977325533679009828736370599172983047135884309655268017078108994046117037859699697288415559122056371370188181885221598480710035875540664547117587857656228013098657296571240179808270482727462640856322914733807479976900405194160629417596860447468827657128216220131140354236522223497394632962696348010887129166523311076409176684369978683284382735533842842988557469057865610615381007281686329473288734329481357165884104681344576736769788104952520214577595515916644546290936695451881426794917293514550261607574676875872502020464065434252635651161795400864814042170315284878588938939105967308848773205311737850443849021449828985170653470264643307110039433807273899338356344552265047962228345471791600991601504754307370126180509126676739812622150868778684285429533724482939437613922477587335633937276060050467162493855421065417803772618676895644687650258210066261993624859507054408228167477556640809081900646581392964569867620000899066682146655875976322526981340681289382627906198183146833105154352444826601161312292203442252030528132700470871193452324196501732232484871622724452936645996754990263149168155841213016486602665718724143720911420760094312035903643261922428836916892095218916753264884154584430303256787475337266016894482665940262339521829162332336602663150210953338583912161863747716254351683574523302138514465775552347572446671624709723850709917067443032552731348139328245560551092967662755313449777996821117740431521470631759791952289478383303306290458349222153721116344338411399160214069641341578090292568057689978011484006583615958300285498145855747742066435183317718751676641552185001778419604822493402627982345386134980600067995178733353333107502408298113496187548848442241144332773443731702068561596956357974240978637416189843044485716673533778038329522210174595334189912695322752830790865485304965552368990297264839235219363392483274048737124693739047729311512571935387175443000683794133851927366302149780365218400416938693582202114223961663602575789158902839782278865081940301482770838225506772732400189034721853713832077925875530570103698064197326770091399520648446757026664105428721892654630267981402190894552867495393831464055106955481674600385628756938295890257053164454308766976967254468050959795396724814520625947749053605856346522989276402302213081004980624233862444676348093964884201827449858899535274904190657421976504929656004847872781025746791513079669939873452210040536716740680983583872674995140140998881466011033639431436657428760298434665537239132097795793937106630180569882409852812660814441386085404370671743587531382308212225962141321409444865032488431246860472224876154634532106362807803191352555316075164530878929177238972343949988192924920210543186291704791858335086946787350569422821224408704558566471989060855717285820978818568222939775213947530001571610235436503754897651715002543249746389423243998366483155894623431511384930491173625717201570649874774453222340563333884936012579456686430414645843714196616292897745487708803702272302125854961071459259672544368064999467613891020506644303946471021451997884691810401961354239116244802931386759713301535820697496846459656137662272555291224578778130417201450675580086896623303834263704257775392916055931477034286003585942925751707558167888568911962096032261862197243039208975422885452527921620493909832794316051469442085299936922093587446007279962970620394598785899774307402308792781449895137223815786204496115925872935067865278714314256554797153854931870157890259686707213794932328040622086323867941231114344062929558331938060557980759566770643459375622928614668864171288196180169368612836026925529256902888032300068882646307125176089246579761747270290008485122944367165079339045863972407626853963701134158955421112778624693250447455927735084650427125317887755241463391777677307648796838432308966871267939888933614711043298614328648199713052081007808687615706365252908903772656470899312484392682413635738930561352795164739488907472832781875758658654954489526321446128232166485717947517964807668620149982815668768930888001712858018014988758967479595148490556740365664400756915579063770206509533082650301267985542930468678147838653973744019367848026727517304871549527576290186872022367681394234404244511341208344621532536011971577898041938261363574607450658902505278381701874210423184632343575059090116466623070509442454001000784657521168709439550161307183083293229698212254718412014997660887774967952382942287374911170057785902568698668646285202677471982508544240642176884453381026821752655980289078488250656115799213176009851267718617188891183113212585314925345969636703964051181761790173806142447951016228175197986195248074298976510847189561067684123877329085242929498540319105907073768156683690795733740096698819416799020603167975146549004071793718833765809397285778936729789659299986657984252622842279473137202401366141774425160667425897261044091032703768468075016755806714137785620952823000286244241109297757614796377662479568005391444842379610301436142094371477416031459822111458872810653760703204706174866950711428246198678791743593426100464901734390809008804552140480629728606882847221364815972460743075815246408238582130283946296075065050900672616952983091825776081801033243546698250889499757608753818457862247001125855878287571251060057764405450176556113672436317812197492700724861795158659539238083223280021560013101049894199808857377532842931065020288230450406962547318374827248336273115229198716532360799279810742283756816918111941828235304915971664629779576383224001687856068629034349931946190156021819109256341544196433010801290484651708462669436705519876652279572116633657963085307858399534836389469788650923085914632549412406291726600905608589866899733650275294691405293380314853461277938620641870094810859006594066618466824417631893315561603732093277832459713151330138082877875940589994406628510680928559093833154198933226813807939571126273235354372227174739581112839332938493083332425349819784851344865250058099078349857358431077801323624569187390061551645560061263314614186556277183913918497790366486495292617872354969713827989210410692371868054229511040374403393228610595270256149573269813893320240904520659785942435226097552565799742094187388979719730604100387662144542194682285851479503327559232432296591389163670507557279927254821434487196403103635765858782035102497956162760634657814885660797974234947756053114847841588642043089253087677699048351483312733806360340789226179689154451110060015201770160681766496096316845010644399147406393154067389444957021304630309072525112326449659763975488966337964362695350545233998301120414549627027309152151923587183589693799613523128903179493787797961141040922209001949659945477562990454497937920930784505823230131732267163750273997345184306445521249351595911685790072949415739772016430495292972869643917693951623067439861884444740317479530932191775874768274282725977830499313444011555924859733410796855492307113030632616216969204591430852246715927051445105651052143690358539111956660594054159571890778811412481521008504767160105256404524539599551311984479505702935085887143757903189259081127165049632538559614702989910887917794951799587168479514696828810688773850955340701402180329008487883183648915693965941212339040392168029081240128737928386155055533235462775967465764144808304200298230104331446329808479660069600193853282034802575833132880506582238519587238692199471344102641289564732681800515454338811877411271862073143920344223004200163899886950871977155898772601007140867052406622760638325700587967368284790725979595052264477318715931853850493188537864170255943457470764804272785167042366160420449601943237726872478481121411870676999358761187241317483720813807643119463146130557594982525539633662987367298729158477821174173490337480073250096794395344867806918385120541919231704264921787995544261931027954232740941633668688706094686175709729470083307921264700417126061985476290958292603926143313878284757807660982973536985096693493647568443443537956383662086368996371533983237617951249777831661949711347044018259345912583085232436148219426461623483552763104554812758124999234491748167977403895523472359887515196506749213976213616131327749821005869763440342742901204323822636095457909641344603373867649492163230669824022107571574816569671716717781767576516090928369639724496872724458678749753358284759491333300051867056558912146736048621043436658488165019674356927727473320255120679639846838786281935180550854102734389507426269814781240890435026090156741343772388108501994490773045905944886774379366821456086524812829749064514381311889194772932330090528043641890560073549491881549967828113080133670114685018170363495573972741274645458835186370194560470504584006274075574336050708288686713128718305724839837151448219740693450193872048598278491761174204441890399431306374727034082189821799041530854708121240311299398530230841208564159504457165495385277111801206743162545000413991653556360962663405835841319370756288269598695787921367694816225118851228839130077194724258200086732053668798646199494627000104993905470918893429180945060751548004788326671392961062698349015011969608212608264670110827407645887385712524124585155362276471675145965553350065902066350665235373316824212437724523708640134541536102318820998100402387741480428759317094507223710090839368308237695310178841620218771004794382806417109212034343888885458230422855995908758840326645323178020452917210636948848521621898802784888392130900609662094004879693348253634730224312207280427010484794056646107146896383155759193572942299932374039780613292532051286349570445141508309081306852289471903692993622193347561973180092260187053796398333115801284816738175692010373870577424919071747975916457106097206993635597633527431675282584007314137518941393990847195474327985848500140347923844891129608353476330847804571230035564770022303848087069965517690471679500863799168896218370736278839692980331749863997763620374909224521996968795642708364967049264616316431212904657018738123744860619615527511116147756289535111474161467541467581094251167136265956293144690742877262819515949330813485831829948614779024303993547145158562653804910481001105172841282889638292227757469579921402990035326685842288251369083226092167593276746829984528561849467685380009832165617644236352622851603111943480248560428833548505231477248592242642989884619511031456746018291365670843211399899229317631284890881825860448308078512905235522166821926930079959996876419405246660824859869554225556969444916424857618427021468663872679679042534508177155682489270136929783361223213391707037250559423339688327175168328684471845650582847496331994181317359093427092862869541565502862263638679003272802976431780905435053868846387091390821038540561256218476784055796851645469203440391763375267838009416612292133514817376542855109952496643515461832582657973107181805338784459873488936893302090959405730493696512892513688002499620443517013365480052414685000909648989041948676871085654097442886427942051194588093701405812296536391982025275915529410916709993702117375522632575438441138986285554433735386866949195665016857369530040768801626562982345960824818878197688131129062166100338957078860590431037305887082708233194962636867083248863211412135336520006397824187713673463633093551058836329665738212320782353128249350297261207021531470593690641233391823503579482537061845798191911011083196727256247829282009852807554937344645672951926983314539325410506548219371286038931932300364407872068560306663994252663249373555862076797866820821073889775990503330100153865038871220357335015014386671295625727220163307305555264314285310909936190474629781703486718757761657104847121226024343500545774753354107481142760714009792447418752271655966959959833800894728770792530581806036260050921516069425944659943697252219365985594530271332418716262784680101481181001645304470771061908965957069711072336191368272743404462680611565278875055307387923692781623806787945817470812553796910966829272602604529424323564764472872640842214134274630320165886957612355338905092249625428931972262234727516076569106200929797425289696391215583405548273114721923102627164062546536868806985153353456298237469385147512877646762657277536234793823376598239625782539081519226799802064951176012560462154948393983441479872648250739957473781624774642386357653618151268460736338766615263772049677380426868539957234495588058275595669951802403738916534147790185069561287124607875744056098291572969435768980755607703644899434443962113778704909587338996827439473352555041652274436785100709298496473229983373493799899113952472941748276441889889141010706549028994211078383065738388170545191792134679212175104719579521914504065617166616402896435287615640583186680354172918610685270829923555064345307726623427588156536935532136128028543784375637869981839585051959243958695241439153395550660133361689313092620163927777853686237875233026069891598327489789213136657246786476778579045289994796956710197070950531851274461307059764708425001150058080299681293689397099759571409119708225776749767467836602012692759479297707332543722429507155721799598710182051658155234363468401615725957470209388539066109473785130004923451987032260651709200181535605889532161822624598424193436860721689047043412868837547152599095241507796706534842163666966986667312099498212915260185258448320547244865552950418902377633761536759343862241890390784012749307615846355249918105549739521125614442005360107451546975092015410534546890033349994222010818767112101039433108791845526756159721062223708479889240882053686120511104562885156460864018005411980690985280614926442124101844842774722693438450868949177108410439062308476737981960063373760611499838640182483125999968669489171093139672354766185248227291419706582963735225887678819140635478706684722925952745716499409907888834667989066018093136384662045066594993402082329159588818099752477425005943964713823977643769815071496264211823034427994624492147526847526652676044054914042809699552323919491804309451382523336932966507785673433511808963411197711033290796053839942421025663008016652959474995431135170316840926793933975214665157955285299497623346833560833409306958643842504319194891097690738937714329797943882214562387201210191871662074674165593043507088647275767105086787809990628164783434247693119051401962924510705108564129107347739977329389747516621891540084931384366972651771329648560376202663504600580025632473975722419269699689399801772588600330179791359712010173937724310783190937872877375499996031945014624272737683162004334531762518188327169645846809658710785333267554385158012996570165352411849727086345724169777645729462774949537496458125251580707294170631831369890640252901473268095046230014938822827811840503236166132766949474977574406775904174938473767619989115650077307595634544898766672255050364282906699631682222490194268170223800704399120558655341055744147350397778660236065181701936731243017789239840471329257611411161713761163515011237554929061405297034497097557755979822129481732184596892438602083438312530464015020398932876818758759374759938955916853641120514258444647538261069823312621118658181895530161749057358558983588079596900382133480685076535355510129647756379135283870271893389224291758197333425985612276952602367746161719176881504503597955856271816164277052823491556595621918824712252890667452189536637789493317661132147248431293902612553806979758152281681991590725068142651188657870576790484219075432090277637683590276667970385470345156095762933730627850923903953370692938399871433829772361513523396803430324157235406388914645284866676449570662735797077962210069629786025977313120973540604001602702149942406504180539532452838571283840548663066210680917101855148637534226123727251833342041488232483950712365721023707656399879549764918648050914296607419686238134781211224079071032632046947648512035662658458842643482621756550614026829093735804171728051654040319178571001475479765789050230530332084634636029940015158003453893115263238591736489497790996618266187335581521418718036155129792215478469653021634800982710177739767374354287015845770876967316853552888366512313332011545963189875310295473410501608416691100144555145269299977618342768717401925560020214111123564928835300221686260625308881442772826065517665155792433448665461452398120164660332826483183400098258866749907301177295758027724748081463844800843324070072107583247094408586063618521143276019680051109136145219899080707229822851238483537978261401176751442064464600141931813089085971367717102444758501505373787987067760122796781320786692982662402717658872760616945159817512770252799748232434382789772224998291968086371610354931930941882363025231031793846659395361108558126784039146881274161917713618094410769815127255877092578876617893840143430223933645814277660420212677766058723788823614324887702318696386094346840621061192475081991244454879746519257260100495156639559171072048527793138659891065253926735108973995583576655368574185998816908429380397826784909904935226422877176615311232965867962323236222677148656349850011500372115344254847065513184966803516708581227117663358762330143969240920815384681733942506814108369134936089599058347398581245243199115726080530954594221800446119285222346898940860557028722179228320798530663368946261378847515478500871750038288773175714040995274666204018081814628682586521814406128983936305718761887597526641023658424753402443367588027148548268157626022685425193991377802461197916660008310901686597976519225951139202595586844980100471181187095125948968431377452895738388840891189335368618985253117246087343384984556343682433651192046215374844019562586049671012251830853464356871335569795371750299863755726692999736277407373100728715425579798149507834099559144575117790240522989776395065925844427764992297115030591331911875143217798156890598699184341204297814386523874344173823753074239716073627207730990742330658490502063367844917733585785315952850205329001902263027490084001077409150912608814769429628115366502850467590937751373821138608405771682961329423539259608411371933579331710089308420313050647768533932909702654049854571991078215408802214640348990539106204540881532209378964246157094178172865523467363271370193829733140727975149480429226329406505308149868836653541155554400965558712669860133392096969309356225228158616872023041146448665864815600936644866460558756001624161727421697404374324116534208735679643501290799638531433698218019041457773178265352435171815455014433551243708583864915049121947998944241225366066117197813156807478174205633706400446792869871924960281852880835501534116022322336612997470428724873163373305247616222427682812262067868693352348791037575567805912877170243130091553120968519208090361280804619071721897326696634466920789700234973166843426548458937786266702231717862322285989018555056142216127541805786874146926001895408351389654464265381599497578965058727547021419482819644418606349896682470154936297231894506053163379109831771044618265850672362130511601578102424889591880157599290848543227260410295498246773575492786612091575867929637032890398719975097792589887598988447445106616033538104263974665965640759686138927697369972403175885144210377598215595377887472049494974467070887984480343284199583720773946176593821964991983859249656266016851525959007735208731300694679201591829706802997152286701543052038008405067168170860911634483288283375932536892195811180033886785243513255879616049867949536485237379752993416416982756505250158753224696405490614991676983253551905167983461929894830437325166292218052641085756342545373514560138154363067243460516429920746972590959556611130457207454818825343474975021429918349431446390204659931533711798318239854749168399409079329681332383088145154595169850605339650789517266679412081380983916876034299858517660147235368137511522704274124521687771400122202066158865546167888427111381303465220241821971375755777800041438486512466767102238303794619389241318552255736783167595015385235910940014036726985316805901878779498370112584895507775236418286652106993248268494103751870084356406589135353728903613639542107639920297433021708773067431518312404008420843446993827944768536403598020914820899485611365137664169185201040587138091259432486936829854215187856722258331164313953904108815322462201394204546410547068955005661988516627028658097632793711674010450308925157549214578467641287563273637300607525642653439550105969926049560808277810347692367536174288630170381529893699691599793966693598296878171177623536819366117922161481699271309750412832467847894427260896615969559280462584179917243080774429029587798209856248260372214298325451266797928308599633142517307538476786883779094933694212082871597168940731608530014905077370118899755786203251220810833281685322433165737810511008773242168848801379873577451719347947662217558027969085396356218423140129832732355655257987826781704846354264618414546780627241134424084592999140530553044137537055252186255734432730193990716295790965273034776820218725854055361766396451971347929491069479675793464765227618369241200399265835315739464414730077714397128496065833177501327945516065643825218650388911760546064914007008056481242034702514032413053539602696081297121804423171985186895908957237629951631329666674091927104074879883331333287212106966210953014111085612533700107073821049050184255827110391526443207851590400942092812934517361282995912708458588778391541975861332856813713865160476368504956221775176463275739283573012392698397010872521746699924822395352825893599474709963955208380719323347828218389548937417134272711792113253294618173123453465146531777883662231235722476562337070529172601092505553671214973770008102897599289362865640080214879435480410560080109015258651544043881727450637308885976967785378852788590299381524513135950332459041013341968608673314204076018013773342814736929503200166630824568108175666917779436353099746243296259913998348265375748703704723122457133888860581831205893250334242524890801313534398021415233784810080551487990249911183031865589196702453711571891898999890143561620748386002514208645990152256892985899795363602919746619225468397565234328773975197133495877331315660813219329185667001026114871113991425410676315904349576702982975668892115500050229671546420438958613231940973210625330176648268482723750948078327121715682741521026759776725880983442048019499128293703069399462161601943594929227043475640526397907800289046632482143135354280004883283459299977771261423092211540758055130766683736471727720527157625200094672719150309488527068882659408904013127571975452503031876236639637339535395954082010008433047089306608827119710197652681253497759319064632566845440280164264399315487141615957074936664406884532385303565325837022160197577918784004302308078824869001718213071993492056328983555884934615005713078428810493652252874687564385458219164708488911870122513689626399815522420633269618544822791035032743346643342652957804888622554565290257382404492150599720589374036387606441010940594285143478099456787348156748251128715218642595200475326544708392647009331400879684067528443545560482779411796129760592973657923780777742144704263504585799852620286302309041159617402223065844517055917793634168761503021415259783506092230833030687530534879245736323504537188216479876518438457613767027617625027059308262087165637924528466392026808576454962873147373211312354679460686370799993965323473681693431241778220108556518268071251471888141711432941067822244395192662572172818826861050155106507238942642199001287884214956106994264318462128660321204127601324336945822675664610254478711733896697789238392127806780437838040631119279003460678406119757839651340851785302299232885174996679259998120103396591080667817197253578546707845797600021180390964961518927416084656791996179959049305481777725349700513786186143058716167074527848169246919221279211637647643314129582702986480364505866107959998343279363740329065793235690362207917308978248246382553635610966595346009606214347429376665629106554183885282066733514131726851879665891376738955105767881355738426717814040883468228967782971028124937317785209820552682074449031777744663607536216332167290369006182838334945547217639346703457018125510447977583269331712287143828402190536694445451806761295697748802769562424263829614828533922857929928747427976861184368774972681058880826755225454752432999953914205882894615963134228008496454940854436363777647808008978620680010970111302207590898021791573011963832967154112941867107658555113139695740291610222847587181242107160933354367117719156685146891534428881246610217922405853749988072658428418094049841930735494418102730751717930914413295915991397490089025082863978926960827007435559501892785565231196773873611056318145672420611030363126891272149265148198457663807452032730783616409830792001787051288830759523899813541029974407873110396555613106408457127069026093085658072421724319922869068491840921072736813649986034367680627999714128675191254311070235618736318679061305668740227834216749871127993091693912003057734318324084743065420757321745430474174887603645946636570608116528037693063365607515467090612973678048352604335541946829879617458305467417894011155079339589909387139473835259030722544302125662017062906293439415948089154159557032705098053864311832472039973053307073064342274485150524565348640025307167603819674205778699114406009714910806065834732036751138631982944787254699466216963508191600418607776102122999115959201281367421826079902253781393471870995716148331880348627279218766700191695247700413133794977098606159202558784387420442887226633985783237971713041129112524579817670641855330050411695026988504456136742079875840732713030101295403718561787785090687864852039933007176824904873537752339976334261204643108278010927378956752068852084412964744692844116799852064184126800480509816344956515668974119853318455241719137346203547605730371919756740402483524472031496638257165933742838911790342670578883145553241982958554795649517163835907380435920806058872409231532429247293383243051216049715950565272347924196607326457738756553507349465109811481230625131699400031108005712968531302150832655451120874972902063510102470206048125873846981967162413401462389062698957338272387474438327343586389178503397952642059437584856854885329378571996922545459304525498024805500867662494006726073221129485970004484822819305595771795184893433267332886339452278970711398736869133710828427403875465623102469004323572389383888318021617246103062732850671249339555772894509676903285964537005962498253292780158932960748701959938349600610800953771105505171382476215144842425498823566145674327802799599955486033732777769710815145960519489705829210961785758271633303179845086339171279091925367437914885877834559857585767647822096028653578941534569330712469065156528731019184564354797619004325397700132724275543341115426535632544421858852906142867798468334813482672699716024876171009895181920048100085845215001758240425210208894066086395883085067308283904615942098160595846914124168180240300902650344147330663359158693547381782452025505673238227294420230964878150433246370355933644997399846208271506277705822186192130999956298598503082915532520957095338654666019752621139212199525398662989140662179062774872161851338051360147180921524839004571980850651741614839353432484780517810490512759924404711410002968523855095616838651023180877452457845253544895776604372739263073121817861577163208354157869220680926509242577576766674769821029611283945570010118460754138154100123820538648550721126044681982282408133280267288763503817079193097137652731413284054597827134849507724479720873726329165409713034734445085400469484983515159244026869516699807631799464485802560906908414865130910582474954936637345213350439145683313924135176705242858816927573544167490899358677667232501810667139583623861119446738505039441672093543751560809911896435642667237050852530461822723351840264194407457405074369097133249732048377550186524783019296146527434758995927072996136583574447189858627278150772565424732531522694223126860062275823135958743737840984154665299863842732018441606620256506801681235761354001587023621365597219127970900775897961401768398167804315508796617805214626646758793465713055753292308810187025503383524933135047062503733902547895022410938537797849925661038333661672329020452235396223433131324095626725974784222057353276387404493387050064645244513738154529320711732311154709716353198217087160677971601715781078870980264307050306696739197059709159370774667339708547456685094112484498963250588378485961990520096748161850714535701497363679331659271534650452806315295755943567650467375523053847146574708185468154153873313839536788420197663032124060745333365701773121710563115753425712139634363573658816096462092144722163666020315549603877851787864874585994889458463840209102409050852916051927552438483149920905001721516700788250157197985795192759361191785606114856502931057151347306678351340878752443936816939216111769818694105604655552518735356821742831673220088518975628673995754521178240419341446747425579264559930948205824272968434554248688233000670366762680221460661740535401387998516277124805594511796998898086023981488509944559666607963886434696320620464699092914679336636387315261229510716180803099054480066870140784896914216745535116262942067025946443295428349613834762272445493840448391708883348357654865447099351100637475991908825684237576258572942576061749501287235830247076894126777660198862971706789895387931139016814908199777415494364486418711701518809881074727673279625791879500582328378846843726829082769372484103400401690393813038445737734623622965462642010291170133951053204227949937866200374774053653487455644861829127245687939760996619602205460295453985848940481696622037873271706553292480847153545193132596730763408251340952894272331784791556756846578359492484895399276513171270466955576587158166169317025717511843085483848808856683352695114828654493711433749690972888265406581088687974317588186187473237241792460186403024537774638536382968891649866976290011214819843558928303647778377570106431683536573361374955510454083495780250005502800080202365730762047739614616606418240451509126749062039898359768181622826077218714433471851795734831169936735138052312098739600146848229591714292650108680351994876222195661636112547366964018208418348437969295348948408477492986486509617943785385839439717303691180527120477726546018358581905150783182268321642566197961143433105099976370014243415427895913847411744458060849484657868430066753728113024657350810794550064638985271161183273673272998972160728130911476249182883818589412642407690793459187108832242215987289110935922718764012561465953968948144192741131512357335424338905562076812783205298087528929056429702650562133414005207146953816908971206031665827203679108628780980315784359175933382476947009767001441561678285594770731592408732394334076614668957789737892179179215183278937378292667306767936271992592256147238740693133357492721871127861499393824477946636673303588506813242514459008744163366986733725776222248672658644276499826327947124838123802833168992901838959686464307602005415490515189985223629963624386027026309841869459643580857791796275389782187013477331743754720830918747716336820650057445431411356564256652573560820302583778272843162656396177548181506937760581844389622112232906268288007816071376745285540388217732091677287092340797680776991269290594968662776307566813395245713062803929449619516143344349994942891980708938507878150206982486471652534374324599404641875764127517547198376726073962102688914457615747169814374727899362744421304040113351731803095040596559911152395594244214434691304825257059414609852958297738583537933473481908852104803654825983124905300769218161583351577648931317724503535965454532489960581468116573324866801487363487890447759382228374427147833252853502144145335791155701835362739502200790074334774837680267924909373795578361285401338310509897487276617094005788426052894214967542134286756594499040478330931572680019295213912658267294480949065747039290297211218968512938379713933963787170127459083404900853206433173998749563073261619106977453900182998589826134002772535374826243170259540071783228444398225373139569523749661063372111237554639860998891454360620835256731133778773392462879965531034094934160181071702614003159106266126885395590189775844134753039415160763849728646172102701382648720629140475858991323381802923908924807787210217659550588200401178791598967144750039291166531693612345753472529688454393844917442045256050772877643506817353929094838673094930938111641281167011470011808441843891234490055065697648254078205953604284997409705114683414553784059621241394361276400479556927943805250085583806932126370370114035444780247017885395327218034587607108342380255637033835665540757268649195915560538412347426886062498053517563925695397040934085057588434457675938876104372942243712684985017370825102257282048039788747519415525156489485787482995581583619691831152031084687820525151812611184027196868375253371685408269752007132932686428438515121634479194165551566933711455584295892375531818610485015595271537630581411876634920369427383500469102464588075254121365109061478583168647239538034205623033340403053543014347503382123807868604718707092997167018621616958417957069057448189580677725556978778768284631251466798456156430141370456917453938534019668623444163364844120427964771403345567346394487988553915939921443404739131742076016969044247750588387261416143933810512744278516636462743799718335845231607866240180472518895414959074625884615951362975471217271770166481926149069985873301931012432587296073073010825601376176153870862319353813655511240599745984983617853780093328994688065913387607179071573420946473301205384471495805286365773277936423146072526922438836689851432500794214433153736566682456772452371097166732943559081057116678277780439428437791902703161031569439115887290432960804566048370482290627574327844880584152153791747461485707874071355327111054675545457081111560893496526537728091179243610781196647611901120665573286943970799088056495296213840981312682368162750013464023894957724049804269470015645591002552387845130940083526018317321454020344139770080386213595438366372137495163306008046915657533394764630292109399411482165981459772050744421429151736101766236901829406920943857464958958868532734015409345848930660035121178396525606093132911715146708592648752258107447062331833630423614496722040450889535439119215952314939256709125604555059558434087886367840016503460233200843759406804617058349129684601066225035369976712054815537835615631753725671544221455276463813427052215872039346945650553090780189870028962935597847225546582107493054309751088538507439999837357024360243950454686476060993823731156870592465737891083178257329090139552403645142042230736789656865223506350034582983053619261530386667118599636362094480023907814655728008055047034446736602375369872319294313001920385979946038417101633827641016936077728001242796922321472355314548287048222145029026667073521593207474475645333043307865426504694243159357442756511676089673539382316460427695623039059627728617180270629386794531410654420597535733922451888524347773295408769182494380314793361933934689908175197303435702364269270114359736176924020796156720048356860793228733805284715784596291274230374823038462116729314698313606381859168288661945657898685196799790510437056183956283207764021848729515718890021908174869879805119831872720950210889170348377983442792348972778733537129183918788761413799825044085375265222635963372934328084249883222785130447385875135026928795054800979856381633031156914125764745379565151608276588688451350966460727281543198315586594052176751450401250356772594281531675651295738524663854798386346403556816151164818120153122192601800853211924129016280423993250399431147960931157642067486766085857656464181509630544509428539676664725528163999403452409911471264949903328896582716298399345696683069662327723214980606363077165356278683883290778355587589867278696092466816883960222651745106192256834359418690021824932388727263369976175239038072672855397894968875965784155218709601665950030657026341965519991149070232604733543190144983349084161349029652010605432311041359263343684645361701560644074220147265021755201897161109517298095418205643102705120004684034258523159675406887597644065176126269066210568428879997635164361898701345866492434859795402615029744435321678812217382111155236811535777860631927215899690262188600295561012608676957485529919373471866872792937455934926716928492402054034616764131500256126204860015071833522667478715201280273399414014710258065798467434195864838917788690540562666807260151747104845497801841240025235490564002317137364410167445538705389478958919495634241796985353943392365116108957067663325047754136285977357758211488697265750138444306089890542056533815135004054244852838006094681587110621492892645368514077072281209563911350516923564579531659879462198422817332902684606626614977476772539693123319522416211789509277426417366288755398778871899492169057607482764871841706866428007875788517530671805835844750684289575605392094862060059164016519537744983831041949953587807553577742303918798441854408310442557357675210732802943770885717317857420857467242253072854775049819163611591667659522062732035701436181716022261766462046179467682994427975343736736533431331305554666708850639217280645412622305752935795054560619784981857148154060052618668246812682373999190619845527348007983390436212595676880572707039747872700109638817770330003219695296270381933373069545201723763200834272971528345755820758632019339963257805579212474728355206700661834039143540852580887790092306482791972530509672422308198021351144884894342940739818763075946551317445325207332604423057868619112132820369534407582760578602979743492998453483152295751450834224679953874378665170764769971671807075710319444826862374511915916797419457092784277877138100709418527375495918012587849878681192478514192721558221454631488006300691907612428387254901693795906513479651848623635595878709465177094130681185554882940316410482754299171234773744462848497430106829290615356746678403937248371476341645366943285588149530717974666339343761467783443445458180023786767025772654653898841822732273580794641220474945869913521029987709800103639623590359107594718807414570509552537484442837353795077873958412848070472087590819563430831593376720309378959165199696125801297833404406027175182340474596312265662703484348487803523877644372219098438346079404185911887952871489255603198863280028453397022114785559124477868813664524723816770928579811699976892834767772305894099762210507658780522606983420283346067813374958206592006425039290879015878904705484689875811992678006844555190502569013577562646039591712630554122369040619570439172306990823176999044919962731156033861230581916362677311578877979158443924113428641488185795568459726893957889321150723156944604585977760292460750672805337142376408174543122421976736940995647186205122628640649270352761085672196484626181415046140814133263476278544918697970567728380379259915994499535013601398988972479512070763837705680069788064652876148572786374915909128695368504765441032280687622826095761389983710589386393454359998031923003361386755771188886473847686885640935384734547443070137005005040006935775173541552647766638406490575447328415433453405514364656513503180509861140271779309852190697978751346776323716997515022662175650531764090056841791784177597696938436446185750811088865726839656872484614376795363705262671399613543234541797315212831514845229757099042697282181273334729246699908851101471536220594394287904792955929773196641172985086177648559805755302053975207943539811895949170829554449056058559470035286645274642088945154345327210998470082663680769264783211439415540563891536671935974837713921304077237680425502298981813425205062386904152676402774378618449043320145321854435617747670796601483118424896959863506502031773341158636061896416264947507324786286413557985062293551689406755539822246824626553477723390898220368200250493392002419477200454353782782742008671756646609569322513566002704675348668863152898168408635010409871919407816167422627353035885617025042183363598168623496939351166141317745626907418133300975192764297863888766133857474448027296912703760111279372083258583758798438461372963619149882050330250716612637700425887831936692992457420701745469322761202112188011183328135641436474923169753625743932497427501158277520302140657779137179511882294218798924268043465292231007147978357222520018172121474888351725528504123224322961926440381487370222912341916883421676353179307333955228862418151714268657612702198794482340783326490026692793540158942065459943254898074230808266290480163645363449495505581148042685072103090097051136780867831952969529370241754860883590976274342982162583215446011390657113327821767917541755629932563264061428488199198732166848921213427246397282970481119737260563319745670830649625393770283793572248811819597521295985802000068056320959416281586960127151975826355262055914167119627436233386378689771982248523974042888427506081985515510307887864058375191715194136367863441109274023295230140451187675375458348862908634129574377727464121787114038394898159116856997699749836587424960332557722170264133436185444929463643482443336575019170495305603166579068026344759538719324542002475801879265332679742980125117341277452672176493124451968927808119501241958919612724129649116600125260615100775942662834321446985885683214299080023810959182405500171058794061167074904988753940834749279947626495637318811222613568520560201859343066245134582939832095825443751162489085365442175729255007525104785950468236334759621992281422590087292427809057997185889484353042301088998536076529796617497944852979247357409795085710823367429756501586119041184616324863316696054040243301695860656047604504318253064898111937956072794534540856455103567861026990193423098422938048897545502095054328683724994526907316033497195549737214677454475926205472619717154489968167474980482052693737586229092514963460993462089375404541673118035423314895285279308693615487509877595420924955144796254592409067764032239997873155354943969374606140495195247889062298819142664376517931679495117845190266329167898395791567444032780408802403858765091244037919307860666487193262409890156129463829839967977468855452521177399332628626801674129288171524249581678338796985587562563476610147751363290197460883843688038819566374548171794021017003205212809075103569903516429949916725375448378580999216936127419192706135712927214267483586973128542303190279165153955698208618223898512626769561699684360784149409146383230794772398712941313408151786343419919986244874658745182619089198269637561699923790430257090302866271657468276973389632173137097664644067958740769827438437455283833928685566919524324827616089439043819539989866714517840669180156202862407641532140236836978512635861827621536918003509264605766239466026213492320346597432149232276152092451759703646818193439467174698082604742141256861606795238728484689613572214964089983815880011447660915469543243056712901478678712785909230085682294746494043724145915621317916742335696354301858737060953521777894111843646848050146838115613758198810825356882448479479153045738188045929361439539948656816929288753188774225730366066345882617036643057154115713717409795206072783750588950128988111027453924691669531204982881279083301085141713961916891543436385296519634159841965935042757553922989516727229092670075601861734722206590580458328877843465168069670721176432806803948154667648617039764601593546751048255165133711947130251359346231959420852457931094107831105966382185507369000264459039548353223754398938967151046945638859624297247668681765105745754940227364659766214431247593543666890820863341511797210848058338293208595112244747277028072165458769605185648459509514640574663570470662677711844670571598608064906097244756106812594203771910650007083870602112138339119615025844268567753427836964811809822069697357051273157413758938517862011209233653309059935380034789436646893942501309387538019618744198802462748535395409855980660876020299902734812295867197260083390593066979775912946308609307263893768097912423047790706907411688726013539976313913752785777537322777643392100268009519974923801360276124869577532999221678220554343940121350583626798758546022769304128937311068002604328536042662105042898627338236250519732337850141732754942757657129977486240713237887595252114414416181984459598728941637093701359781562670113913320942392521387980437477753218505018544000900387701334138143917628155790673647232570756128875571058253969025554569552676296253800882626130732668716172335034138444949597924083892706684353304067071225683244964681933908955314443805787678201584145246606476112535516894333499581113068656200918003481985079681324935499315361926047013619214913844304570432570567480781571900827826368213877653035513022807157823066997796988414500193654969818127938290527980892207880798605847381439966396692205414690409855111681626612300676532658774758640031770566869553406825649328782842025624693442614165968003331873932109861170394006567388693405454344457652181988023506942449597906342652898332154291832705095650944764134897277127460825154187418996421031483938635318744465738171745412147196164991854488784508496081607949246859646193310376536757550482728656811495248186237689972354885338118106694252894771550441115219804357715331676499243582999818492873478199961487889885905129560070258891302835841993844284478513861006020290518413816115890501773949399806820612093072586429429537282677045431135099930055643128038201418225261835261721955847846001961490114694196865335660409518380643479983886976419247486892401274746149892290764968973607274404877642704244482105098719353110675405843219973787226547741927641800324818104850911887454155452676498238767189829683918849350811621882520421745841637354212264600601314517806511287075251639684469580574409286465438823153579223160764768030228958255532972965995205463065605314224976316789808208207851111325407130714957128296471935082872184072647175220879047299030199461115667404910520568692910955667701954217346676104022207155930619359244179470295476866328296953022793319815596477339311338201806379871873154265779902233710778407745138664641426573258144904380482410013130955040880683252578497655851834577136613573700537666607784075704562153952775889290563175042623621686734414137139160271620785454106911292997538180260469163824918392355942212677013049994267431188981832713755543823936740734891793446369673918907150347512712024724426273920008316974849913638077102857916582755693663950237529270813203122263540029263997548424204808492237113790501120681760282636203836074361298080979276587891777178154841423613625634264755413482855732785612937873290195471186203409038633006185640450942667186740948414228858752921956921458975567274285037812378430031814441837974477977713367793230640035350005225154579534137252370384673331737738248097866985258261148526860781698365862991596818910264227965121475455999606491305093496846946611870515255247498835632163783229872050328815924034739618557468480465667089872662228571699282542163248243795519784009852496380601969921766827721543064120849241787279632871325305766648862884805424069545868668567114167512876652516955987491769168375068842971471429560409484449417809379999451011743382366696802287232354601178479753975597080644346692498127297080317885462130685604769301802379499719039868562787329452448299891491630465975609698951017091068021499814908748558318176115906851535672003517580771112556289256489367542904891637777183532906663168176754355801461685914099072776388315930456322067274058237771613034753590769685839704466053336490572433040302529806348040275174226722635189445941093971184159451832176586803827199662135837666096418547499683633930909975927819159696638543392681460778279619810069172743501963852804838402291263062995326271560121314506794968948072886840721016269175634295956549009003335941661141470797246334476579687456990047501879041085992349258990118358317191987344149291094428543187692957052697486954316946236091430568536081729378687882067056440679801767683798493579691562512616952122477051032171562643994300838032561557379868579451375741072976793437674260976262776877132974319601738443003201723940082166225115431099008378655563874479497965527629653139445311579038362777446400412723285289631266863831791565857504262771582573778271373674953059397216675661334566619554457605534566782149644462972782653277700745891331222680140724603738491123718754242981118429024499310034025193816744432601329038155162285656002563521630002125804954520327756377263610304551760625431427342253503059472631899382623322512442560675478880558531522880130360583151656806729160845298126809015359797952981678934781739958728140335631585246487998092928481015841370574226689626139656380654857362717263123795036605721308887359747517312889102214069516996186869253111070787450211219617191739478019468043933227197163485061649371086765037012691416522180608006233206606427222367683234073799153578855887082225357726039430880798978798029155246154502665138259333226867324030265231729447804391719239424375831262048990389623158912634672209408093691200951437667698654142346055791701564365558150325005086956683756851179036185083925595699619751306279708343016985495563890166055975796745880673995832171707714102427734943913893780055397283210787400869103459734198073688219356560716615684858067775463729549868711108027659168891085605881180116556059240148329168225736811111479040648252440284590815193495720001471115230787909039621120481813498202974433315998650292708802583147340947527645117082583559273145382063679863254024384652903446252895781055187703096431027606067267608319704153547941583592489628664283881154625374808532910608522014677442625970479525490515423811710638851083885369807128132370636112495237428514476000127406741538549210171154377886741010266863180441613469898589622576440573177163279867549953766610235963346993988122575243152349476522093971528334924731225027289502649987807452964033471099515803542437635766655682465429114930458118580507298540336404940705967965381043210538748915354802897413824465103995535846964821029088081752639322661197255412598546612029458000525859131889863387757375895535596988438799244957307446930653566810382449773700388322085098809388123448497532878322029045332493506109803724387693107886930452843316305344757256008292181354194648876698166693004042680292129903554055787822599716806354344022463229727421285463017870528661644339375511487613651165111430632824603726981095220658642783436106136440116799006814273037172375182484678832693554622298936770936334506071728559736063005081042924928279221419298217359084626190697405188411199071086805015901444625239279534920264001403250074685118583642554714409452220911745193712554070937123854614182024671407045571888615898214447959119363464572080058946996882789439011045379366704045906380472972534188277621591455631550445516232494088279628078740800416540513827730575212678708778633835603066058293832449306394128780184388266835954491385114653420770219434121856159456691972714165351063258029025591045595453523589782599952181943997124276560380213522766916134683177834892276346046973057627141805084016770763851845346601124476905099194796845633851801015608086234735484889989410026833970092432926021816394564279252110020064429047518224258201837748856483575153640841147991389915756237055535313150805415749877312528616464585559698575639385408165429838344546465637809604604405684849390280245958228766352765145544545996339329999768865565074692643937738445295194439034546909560395844322927721162859741630760890146948331383688998848308446699466113066042077183069720414790407795391098955683167753775575098295160974643830765323287155698082400295116775559984840518691339309354867539580219085455053480518807119890785377929060552383982549453013056525626809815921889458381429834026371590213387208770408097318670797292131167717797393392436949521540363484527546937705143038190519736081844610739890125619081848897499422536891043776435059589969777378721157038238098465953268747828588333367623038212688893301375159189455897118836600751574315045688950567137131391580893559661065866507187356530426463586981574432045714276032384861257476743725166270562002776663426968985682739377635939924368834268690338708209530795386083813593566384517397563573487801235565674023210000622675617860542858253303790918635840766295372645864121893192402212774117380176938117224318294754715906497185962441458886648840487568504957929076297345057294230841350238162791790567631842872745956452268961111628326022838088941020724247290015801168992997827940824706325293165544848168124765585894141024397930936636617346838683214948886322479767523804838194432998149046329825374154697149818499528518688580124737610245014477384171396335174487613805498257702985122371536174310277239191914626556217166380663507030070263268627896831498255752271084290231222617053097486614409810827881479525681897995779231394943329455425098995896663692955794607043593853118339103329574526196824383277085951097143433779122103949658048349665084541426767390414570176832224236088991653112003411636670808296804528564290769269673066484932118508818594944461570346831598710276483608294003289100854214670207323894252800725841298197937867218419418672859235132669643962009628150872045509774984412823594861013276334214071863293011090345658855085631317059917702051781648500822347439942791565477454501229155708487828023657719456997630730056538044237869172205464881688964487297142904825311889134474759185281044470165156464316642518868399109430448685006321173361833779281484142339830552842208809089565511686938066104158300221562771418862357593953020146296229635734829947472150189814500873836887655797509440098388995145387157263644969536465719662011687053233761425720647071736795356399508426294917936442992229399642157384236231460861721586966765758907424797344452376883736136206683571547099035701562380955394143426703221590945533021459547740403039973873108271436498257947418709740313010064753592618136071575116478611573062303990684722328808550286899025212311792383920630209864717231090867572604186912215966577738365872955968064503013842973373715254144614228578981614516115563706055410879993302513478923662166481035704491337248625193028423985558295598738705486799266222674400021360376978500442569420785867494351423724984725596886609022864744269292508268481208410568235937002340269141555897575678699190074112201931710793457761402422712599355472589069179743375417227782209651532201813237481137344393453183566161849839392025678237497001506732662618510691478262969044365140268494595005916129969199531261644111823681841604174005284464660553981191166756759478346512612124473504777364044133889766015139373694711565877783752725489638906480710490955259335532494993127113900386990493489201953643432019109679187523775946677935252289052585328811289532707403908963572952424309242667408570757835444603198700010649707122733854659851614496713964460284785656663887734746922827381289085991983886062892150216330176840022331427991094892108339307757649820110742110042211289791500820634912774490154452302351403747711838801478295531946175220341416662438721279251593597297712538653601517258603245572434398782800484918469401319359651387360707183615295138719530644931840688577050543269544071379264319131390000665576459807029268096556995769983078070692544245395756402047019922348487536238179589043781183263537353995640761212083615511088626448464227485668769261434333796579454458309109472909419203580409907046064666543180692050785886770778802797632009393417826065199059359972347023555494057186086242554795456842707044789527488764752749584499057459605484938804513906948655971809180673019180896150013149472574899662316039722797894094436539379586338354635147064130194778324196103475017481294089837149587963571676280712980134205136970047779241223717760784989559078156050371827097594839809076613061035166685014572640225985826758523385656314698294087272480990800966581173850630659544675935603026517531900129489532662525642457345564320613664929847772093060104422834357792316991966023855309838490219920957231434685459704240617106405884354430481822568794800564429361411596638423785163181759804162061404357271287846994684304565701287590876055798317245307056534536702401508308546087189979924370681096783273839219795224885560836541549623312359823561139647685942570122507265570597095991082594472575251071838732895994056121888172071229632423231080992265605143064817246193466643138120763334593346640792547890002358185556362692312370508295221449600440451694967930177293945782830981285453185018851466218595034776297312052006515337861932374527670484904795363519038850825831711327399173433649633379423188528408486124118563440983727161896429034761468113186830916633014848995665823942375478208855729312562657584400839462512970714053309240797433594321062879463995785434809970553111851258328369083009024085664701865102173271846559307299937074522190223057456611747989784020611127005874869606093768097284096965069132984480596820016612586721252812575271364083063668332119975882177836067982739425641960795706015536359899390858743107747834994127622752406528835965951737521679777885353008324489379401330282180894827413295954019936210384520728590304624955985253684162359896228650474449375579779927992460247704989120409558896868129000839602712670429435537876514087960645424761209030915983029242016486287594100801565004476117194411796384533067182463901185807036276702388436325154503037670469458804993631262167280131696632515915987660985225715036735810318274582906858770691901027010335844608209396190559942740063955712970670479704039108806631190789764473144868428378020343515402669839098817676588623407219669371416697680812277709130285322110177389543598811087572499850138590877525774811373022826346791270693618031902357543154196892827991950328616328943741330890685616849939599689336662095906053367638038779129301810905515195080175759322477333479110196347049198248401859545351497061276091676521427549476234178764111343078745706180670517156503100613679329212162323034426257981701783845618987233190995378986337755496884802309283059759925145849404008963712729150364298773098718599464259986143945826390558349867750674968811907320130868094699744565110146335757304439304450157470321680353670112345610054564168591504867892057322897976513348790711059727859214566373098482210974666691764369713908927651510281331119064117843773981553212657356470453669201104616737684371112046349389211425545531315356331385871396381623301317452268846910492764744398910030697009873346841915695083317315873532414967238713784898304118016440610206869237905473130748489198210978080280008117017395078526844604170164591100826750213054188019926686789823733617073199963403307379855912266768844699728207118517142931958488239966590545492831938332006140980848981196721825981214854161375269852634398046190061220208233714978016582620894746385334839324085199963948140126756460277504866302049920269202347245157263659507495709586355338912906520494511326630430324028890630722204680821535530525043551780287608323945758647730703992505749160352936707655567507208214866449804219347884447270878860279588524063689201591402922738244094513988368594829533307714112783707782749170964612592212506600062762898988339001949230133713049008298463131076833470897644771834432792453273065650602339288173059133138214837044676455878086896649749394066023334117011763947312453446498684483179511789552646674412168240101616317815378033006127963653714262828957842240857338032902717676484731239475251256180266729216629925033031157774879116055631758965242431102563696266008986154499517503648252083260370955540502651399891038738799717244456155368925816349769792042397657041134276099236359139962784710729562874511932355489334371352207000112635019062910637918352718468580418672000510544588049955277103158807731831439683778387941974370028756161036443717172812012821386340221203523466302003683557914948279245456891668636302043245374402084467293340593778499037195795118534367916109442643631554876350471001178297373867482640381791708376179011604674267534684364996729983608308685891886447641682769658221551077658469033710171614787871193079709427232738401589182809687503019285035102942166878108966847253913301564954040481047483630003835341041058761735301580716242342464681715604377650967165879292297004024895987473283985211651875313024808740116168481662754923711287223771776222546947872037169722557606688881059155072358152322285103795171004322931090740991429081075709958284642970976249648851389733011563148352439017230427439457085692602823514399359278123874082844407670750275542512205592620391373842776835692144229876096405056155766813697503356114755098869146221032796343279503067909822710331813997807380269835573839338203730172080946834418935404416720827311327554898436182549818864134759252290527273451212208839305702770672963613194210744241547859088938698174287453038078286838838518129503836559055336314322833137705502838950598458029783488256089313569826140402507039808088455190647779337214500499907067983783843970590947645805006315682921463149337008294342118564544989202233177963668912538328127531404292669175711362700149640112838596788650425582634318788871319468733741796328152220505940852456861691956966766677665989397873094140746178329123391669191547997407146991546208151283016884780397526166899771476279839907508251016274545923582701964843250687632007206243672621796410008578961455639715878382226535943559101141475461171638400752139682680862520704615816630450168641346902036978073280094603779117558873440837183887252137823248038898231763252437320392530133279745546289175768892162227062151946088760458559934588163257900498118181707062555152401785318607378026907202092314289584875962326476279656326368468607743113086414666294291972283520276394302154382067945337086564765712945111516836281904008683419905554654599825200869994435589636798362732782762909076531979855836884954687712983156581915730634001630499865126249270674250801193660708306859476394024518185508786025337433158248850996784238572149046726532606887776173647040621085484448200318979644545165106725959990416181601016687183471085829924233549790938213529891994459127242540550751488442305746754046375106581564408569194869501378368838246602259865536487538842603684960956802171377646451280265836677166759677720520013808385450253556314231255117433305896772593828790862314904770945372263625301752276318268154314809988747381050163272139843310877520820037181806689142047748512205930581756233884578891899573456894459467972860531314342618463707850467849329262026306596384040340331421201558249141581693343927000835162888678794881781949159510736815184614836397469201255416539344658288086945781280973636224985399530113720437372989921022668753950832831629791750888323702833805376281641666737044158984632054353439231346696118052412793264076605650186684940451127420453630553820865826198557337759599667804319506997989829696672458097890491915881556206289361581934015362972931645153293003207184787808070790434776578864885858166782729308727039931485807192692710678089566210901048713288531493682107617725206114290220686656799327299794084186089714898941766718359646275519840349613852469965361045862419576832913186712187514720564156054013984467841752658068565892253877382801114990476814589329272810635473620714540106721700072035872726345013026471581657873949566125017730638619731961300943185880774297255204896342399431337695262553739214226298409655535222016593736733222924087483949848504130922347632714878100971390288271979523324503274142394109378732638142872352507039353507649246172535613987639418894143932482017268901181082537004343810108377424962009609813612517101409565107328853139369954716074873468354928570750241461652550070928842950133227374558954925847821133918901214497374035778978744411579597071218685708549468381831317236589134642268780881331912473026901288431494421060259691229568171341011599226818703890329364357878648072584485185311746749659340197612410283137463660635465713746133751485528800955598153088713664218336080896678738738606337984853512091688815667404354026087523399142640360258326105146102167669848651334225746032343751597000046337469228531053592792654905198041383702844259915217314331805907603468766817794604256185495408746267758446851796345144249255786508882553835372019854246194541775124306340440748394054338222757820390518868413903792584713414274583419604936330180180894913708485780845526616919469162354070338627241877992974969976527623803458233449316436882355063829099321932859367610464115855948029842263343979973288843564815221973138095871016279143180698434383706391606053241921443994275933409891465141076499407610913429753898272788786347133414130976005303115177755825643045564949840498106989507122819284669672900605339459756641480702688473977110358494230099245948582726603082690179874134321615731757928618390793154112338281485498133831834317069305087024952591558914423152582466823533032303468307569284709451444494874694875940204303080991160487636578205175405185432402300599251221433736926205026843707486508614852142092167127894155491168546365449417636530514410856506014885668774638725487649029925451056450338346451531998416229050612521809667644274578909299727860382047334585591606862743183710589962653335612926649583940266892849980995570118470408469794076230753031730450854998619662545844595869552720437746222196960471427233700262375865748885973582638832794014476250184312296097431982394644047858779693138693324305479692382383578714747795381503369130733406529715802131386239592351531493013892384916446975940284206292643506910755073770064073806908172892235313276149201037127148336136793634178629477915057415322008098083721916337117145490932945364278058855915486284824825696906604486079736227176922215308075013947541907774596324029656140489583586333185244636323111753163329223033690068305721232810199228408111789563413941935390417665506562666136950217940873457759583056759198476263453172614899925869419934591534575466041676793636323975067201957738347290399558147613226123509914684234716541307465391386992052806363880133210733423328527355119510324707722645619246361662767496689589578310341082533445799413070805148760373242159310849647509592711214114822552933598951871854059812970330333024898292492269202273847531306455097180943568437056673087112723695597873600945323792054637009791214231212993363422929883646597656062332735255137330625102119041401384667212592847081730783390578412325876812765970980633677406840091405334792423451230272925469958434213740940013713688676186764478534463865794983227425129909969284205146278528302018315490926725646309523960112996623634569142561270607268906313479838501182914267842682982311362940670715337313265318677057085508160696382875094556842204181378045654012919388574599474661076788031722687930446450595605177380421924266216965363367454716091540849019273397537440027020433211308525964400864014161292404489762448676752944276712929773069497963573577670624515689581657982036272485024503874409247614379370870139496659146164645214111023434633382127525754599547078223019058241007351518039175094313284807507939197456201615866537580295183816058419244871748603864382487763647445874224964285526025897755587740487392460712095744083028259630150757108273782894907317552748142623689088342339770995020662817059781868376458289259091851050473822260461919266405218957238560144756752501741383746972245622252170180816580873777750527343330012507330277168868800844385323422145036134699249783525777042801175105018874248336330752520965966154461601120536235325813258924965577549598435957993667958897709467928931198479826109144751838919969304630276192717594264892794441289506401752067727860494814001304225060015029967514595763526874524773575020498709231098535672950434725005095354019483474121521079491752816810581620560892224578880294447437359639356413805491371353768716534508530576521148527283087383994233604212579282513802588293225463003063986112810823341107781612882103320676295864296345269201282290889396315436943246641901326778042291594754325860046404512189483050464915483001748700223175944387714307573699962777917891483225270534266111027579266932910895542389472730642682428331485953409469168530971554507726376624994035056041165406965596739456638384837097405460344981880638161919184343620414801400759282052337121312257885312006946942839017756508401544363671852902573756380039169957178614897558553629462752842563271850355675155909154162750612846568848790094151186835751058801349004975134296423036698960793453951004975866402506307807323333188818955902007436563552034719598702824305495082949534009964931442789312617837946532717810789813890652251227503949273117635969380494723210540610867299779310625342489008734937660026573847511080795048238263683571767491370847369441628904249290352731767586163227429848033746904445635758898921729865892874561908828489181481939149840503103083399116056662539694738342655419092338432568619994043130307195338701013377796077126390818627763704872469529476538728364287061886536725211799530669932381916615990624690744353672522299252353030907455614540045162292133554718516475536366500828827704660744567933341208140935277540307777241041615929693023294600180921805771799566771522150206992552924437487263908574600044147956478169433633269969073276257273089452510401829637788625483372363661017576128100516640885998688337997705249670604219609702665765313870817577677619221261760870360291788524482612701166475185810944469070249811461840859868293626065569678229553233919115484332984566772751935728478107858702180888923867044947476257368268694877019161979963533418536181068358307462901104378502328665446242495944116342519303951407195001667019698147057108674426322614547805218901079125757220569349988462006102633284448974526757804009154881753657141266892036764849451077873073036561838340866245628451646234058689035621596270611258945224468870345560488632618491823625957998515541227246182519157650831647273115809614286257711671499675446565255093020594512981532669116756388574897585083246307550007758960850697795738258327191992078783262358851480879335865218397391571012160354588420845835968185200650445283015761313025910951566945303108909000957328807701538919657106850380605029764504640389800177417060410620518087043650311584704064399108778886437531365093001865567073701883957674849269069185708898235027164618969807617041476634425944122563969328923390074988396829804433640863905417371770841174288373903676320771731193399468504835543965115763798889942976906144108807643043722446285088383529555434407197098730285945100183492654324000672296101650229255238650232730755558333028798468793058071860659107737497943444481929073334485915300276296044011863468670098531317726460393063793952408588423853634777651042868583486513177729948315931165483464480309908373089741327411046865415601985231854244435040978259152453288430349827343880919364390567523097501291112839392321203107390748194386927207105058608712165254065266629013597224286116973114056027730395558871726297421812220025648774804066993165244105776704685628061198093792193706057783538182115940596933367655186060465332839677982578610183879505250185445201286251779156536923369728592990282720581460429945568966441045443783645238280377927509520560127547144437787235636848241529917292359849861927841971632036120007723612357391047695150432081418755957655594805260948526339527389754453607970514454829031685923905665748184685899370541883967246391329529174463687466939061666387630361466515683446359146957372072857485207280389801638703414705727562489038924787169164097638295485228820695627578884248086813912840636916412583788633384964125903711742010377936036830644834144280292342471997627098275264521211393833540297007025914995110576565242406699457981924056644701894190326571285159407354341365053125080259820432903724082721850060542721137297087308042886274365095067111927431806653423444522336091306315061815832438517480871530726536046031777760375477449053030850055193379940205884302701586122853620677878977063425423077593798909534263821528061986580329323023902953578295230872695077212910182930677030903696415147684893582771478581110393942049662175914794774031192300917674338077149556835136873188600368546138964096437338582672106504015067209773786329552620082629498589390330395565391455239017157319222683692308577935693100427031620489789645270988493598179419516212315665090098211529896920737929542522781190715357596049898383430144197839654055243769758102373993500480753067645264073395260984772340590948612736430116609133814411310340505480223842524464145565904964210354682153732135188903958590526685949201447764451697421202636595217881784603596277620274531883493926771671910325427889611135666048249887988739206974691720658649919285800109643114239542243679723432229874131797887490089868855762061369328562444121208264267000299318084873283409303953446421999324163931629505347176682338334925769391849495892262540188680648923769277105972317163142644767406027095824408038649889951832978292842204921410414109601691189437850782078296380209763744091770640488404850713424764096695785527225266288622203566884256430209216869999223717365789748446696630891220488439567477570972783439734137810339205696791252043046079724096615815554222506888702694852218023525606585984636639524951265157663350068869572699269764744249260690446619514686636102470478811989084887632507368687764048150257520457799336377891377449701000936459248325153947187468369986322411993291172829093781781046276699966872897816203573273374127709115442303567470807896166529702213886814613916726391746045926675320864586983359163497011572560156253872735223501503530348718640230193036163503440826911505440492390183358563856289791339242621948982345493598629834793558464501925005482948611492429606308835004414025162192196936955995461935136945608847201032817686436769444559934186107119364713056734821226863809667079074781363443033155020239205940062048186445733235249188847891832298493596005345378277731624259995767524939118368453719295624266272094942907223550990835214477760021526248083228138719120441724105007711948856725429035238480166802878329912279722012310303327541853131958599686589293068118448800126608115300685086171264331704987509232318050648236230485843764782528490137497904607091650554134497119491084098496931349316734121220403962622497193904271416188388943514598596220077833722965859654735999582909319748821726981404541592521304979332213228670608437698408956355377948395132444671293780543923565178385418716938357696800072752170027370342632630688223324676980897950862418768457651576080900156712596184109903764775528513654850015151378008243195625431305187560431755430083089166397946859823065468872368728633126307447682501449665730453031647661197119542033002945207413460154653989291398619141027508834831517723402335519685476681083572154171359911240535242072800106945721488609633934446260679296005175352117747407601665524407198292717018432142180496711361790742588181462211154554942423729432662671169609153767750488877024663889951705316058626734797126801010232618811202484424769956786629128210113532867721127570057971080055823370482227882715239273631236229344893290300190280232636873187860691781521054566884594851581769210168436524638382152170240925724024196412241145195523818495904801691413440985079564191239351838378088325037704283564012368777052913913703468353328006192033883958958362795794908982387937368433998954210050278923829788407761995592873470889907104435602991752239483768442151016524648383886107396423451393093899408714202157773566145704696738142531318996496045948299779910192069535477586805251492652142945384911112039102908771955402953230474522537002146617573705116559015973131808827022336694960520696451077936042595526510112664030176934064348203873691039667496349264020734979396159752110687649616843566694246630213736977438046961037732113365677286283224544845752692895905375166819563972945030440991832793665221256688203534527814505030166337006034984786674151710348687360085698113183171501457412689760200605339359923654420028922367453474203062453140323729408233908129407487800870216324014801238773204289545247525114667901318455178352743672165833927937575418221701949528938355147319041044216757823274785871850313100974296460975559954366912934637942761717035727053851431365516520289087294516886231784630722913714180401283219696273645040820506108397867236788002658879315855297181137927034423997809864054382588442492284184805684580952523530310740527797152870359514226485881996871426327434913129848479472086173922649141230365613008132274372170267332500396315309607674624801163253091509052623945475979830506295093584329220499112693785828953303065859733821668798219353445927222444398001101749193841178244887562886333471050855421391329187945689775169342454050187240851643569203695353976985919840345242271766668908271914172629798069308462028511366510740872155741648640836175613625399464327632899937820757267837597986958192579741750969347797947981228747844545511668275316104521660013659799243300881355237906547876355232740750361379727498014157087131750383142491781212707332002119448534466275916452819419468659132214472911363425890924400659263016426704851241166320164451952313097250661185761732789481429350528938877586681151787989040951894784052064836975125517442323543763303217239745723923283805183950605551867967844223472266301182243811167054682589120752815158480830029928489047158275460878852751201523101139088676183608112409558773917296817332366299020075823987321464453373927980068965792271996463483440990480842471410322563912700778873893514507325679834493552487014596921412130906419990343606196323002423309920293665433341756780328677026788690510888597419797666447914704090500343479646644378323784611526953462686795816317325724514950445940850508716142236317721467752859298787152406354222459022204530325787497200128332028474463612498105976614256282766173203330894772866865365345045537998285688017777034269884881971816982184993365782414743774090358762419813367000334639008179539806587640035194536654178857060161843754874498512696155726398183147896121806373614586707114796495798431419387359597791782685308385275634337584489518758808712168045154941432097062490390881292173394180261356029233400806644842532960984248296336523476442265068599088758431792793162878172100729026035268912498500153591665363205309559518442112723525447464123806437653090935120956454989975846313122202857445719526577632128262247503816497013300235479946270649492404585586530544441715038911121822153053594350328055898244785076057460079809723877647082878565916244010180486905104729345951217885041663717304595964405543870793404277314068788453668622271688147873862611455129570384173394165932068418078945298478454100802535165043690244483185912725210733065977822472851109627439120554653406211237720565644983130891323347040082999790014489769775686772685881922723852653379607329835268064011674954625572944303674603290196932772257493103499074674714171166849948039804289806951597027957023492359949249719190436169931279056690615794399344862756364123549313218744424415907822545461582265032797774420949394855745150020254967999697923689878321300620448506823373648765463486301827169762059466732069970253845792561481156736456947180333445261636579284565463925311039265827475453671355414215788478244378398015662020902417902882192680282761295228015241508271552955286527865892186446553827514619655120089504099155256605028818957026133835360266832288383210686704720681127740178764444720601334999605000269500308986361444505288596735120075968878700601070865791307307056317516179572962753832548488310463137054693343329086977757477518440581111079917360179519033729794199470060742771815145233460692447182777495639998340134374738924938263960988611733908514472612437930660011347094766416846716546430614223406906977525482384027451352143060907564339091834148314455856030891400905030750615661847425769148652242244999019034929703787509430302776443119881406623951033767255187010952489360247063699078745141657193342917797486883639243890188857433002971224657648042653490262957149917492823353462706792168380969106760834848616934481306153649738858245561445409075887132470789207969432570321664439853327706689592995439481202360407016538504703373974710034853818460992670817824746865147085945072696944738284334279972099722704465476854227551472460057804443872942289411644067419137623762005684901556735492564719226117526850319672211631102035110481825718195007092681279832657260204285895296554085799281539265767566647549892355341428199365196353006975817963189729110043670447519626950385042034149649235416294586000214806248387778887037339640478299913667141438535376884844202227207266516253239333798958559134848429047434041857314046582358311705260139580487375756932832194009029895501398526822805357952906210738965789504015577734815292953158132892538984565115570003179552704131359266369817688230824276958045877306997732770421264660958458227223333998734865473187167154231707550051799769483913388940783173296485591265407875446516546124588243757237191503151873445939601985523971268915177739101141155377544710779032531124869895798144519705237195074805745700220636476719323463117418047059443308724789513129828083615288108886854409277139180157918364226934917835171668514118647909451002183428531131302400251244472961506232843480943439821145861987238836712554130438754840818053575440446150277759945284903778858115069085845614202279154509533445914270761458587678437222850085513322042579138809023279624983300404960590173777871730272330067998421243404824675424640060673071507388060912852642195156024682248573426948590294893682244871596205612283393623434451064784064759852282671540008013805361717722775533526545810135133472890238876392458423758708487770063995435447580997076634559981275379720162931445601071489110464271165577924030740286922876532483409193849452847010404174920789193077120845900900015806448943848769218850802491727871264583711840231549384986925241513046641112007364273798715488836380159010540354756387127481360915642254404008149014092324339963191496552383280996433597144864456603309304850926815562296979880532884933529129037312780450024658871527308263717239225558318210646655036222670786920600434323298479964254516268504756728835306891707052969717263668230775461250415930407560683231012051173854206810461069735842832235395626220308998764627754561525040645515553785380404801020764221361115276076151827954710621455645092209038679183533653156224703476097263865270487718939187511903089895972875342865528732855602943303998513993572995680598104315698011960695920136930785480193292841528550545682577447970017261699342972976754099987931755387132667507345446587842515439209044473037715909672607753944150561535869613522807830809688738676162460297903526260723038190720112543398714891624593591438548605787782662143357088909591321702274431414839146040318619221049609581281664687249610346900477010372374228155350316669315252038891241808282051925546814769176293035838087385860182907092710510173029855188097939302236664894489994644091989141684702715127491861720028855512143647356425368080042157151386740219004092716990031294842021538194607399786402505286689955709352822172435844244555987384171342366126062947152751097634176588468065208984059906707674248078725759941421605885972429396152726887978491884328212394713899674626247809031919973406876546598141991159160950597999774549477875484982179732984851716147172128787674751458713560326423959172203787519509998511628321610456045454303552020126400835930112236750013760294220152887082101794674453161845124444806995482957907046620451645389829052233552645326881585397781176785745931037020131992183114751578582507454501943208587034148696443596808013914702823417812882489820252909942331301981263011892725592676288066057489595900999999140009893107158471500798485643433521154365912130051110041250587830238226988910947737090192561540513274882681145351806134489155452178828481793338430189061530343273418692218291805699189895016448277127737425922485246444559334195950378388694599942008370480128337922514645194190426334450313021665973249688691987060411380673856368649373639858694675562628818331307979128762811362260386075248115066458101496483148616740903129413889303012339116071501849373399373073851571902133548713365740039058457689896164337123789379706985029103885375175967112942283331984575443572910725329003734585291528117963772655949144514362548313766847898591469868608891185264857081894380990794281413308182631687754324470517438181974699640333770724540500145980950991107431186839407773751805353887003054938746038527100333382654900111405996253023199264063904448118259614140917810954634828232400242997759039319621133944104349295051375741663285208543632531158011712568146726996697675533339536844970064761744679034541108926025535686365632474856507880191152022416628976218143302860660605702950354834596716103171948932496415609071970050771411851903412564100879690345252878795802106843948407951936869302469515395402363515035130184575481275882271606716752797035739010402188720098571550527792331647789119924075522336296942169649031026705891606297040943302693707271627606704405049732747446847413930841340364167484716247036693620416935338538267500942486333383051649057290836292935852403300816775774267056250095777559994530175418803662087092965097258699130315222230066294941658201496541340584444233856513596531380394289975779021858251716305429691791462047200547865822842697876245829867547015030939475357330003727279714547099959903097678307563535106982991888929278991863699691922121657602427986063716974278876524022088246094422765218113384172333379832732738882564732290336663886049039839660770314431322523838932960928923128266995664236148187014773417993812491860956185180789747231147906264915242703966180445321473713317130366767117952591956937357688426307719524631790659338473023149408554394252222902292329336568110862138030491944930599901119987355000044590734255188012768508480344886837025218723338349938094042052205144141014325583411458568253200787481569861009882333836939182246916331442344095610864567228402766364283515787087776551079711730231243708571267122955466699174910383192904479589995858503410019925806009809389707821516566381771542612002785830996539736592170274405705096734117452736814006733543428297087564110223774128769809394709676446788962579824706782422532790218381264141916158609320869461196873459221031977479652386504594592781319441391147446204225422741027245620390778977048767658197724302364703756929223569684857547186497472453396426858927479849928724455652234837052577950633018226938084411145035781731299421581045327530556239400252196373324391802540479151866148938828609565092904036840143282290457515956627442649318462541977786250712748580401819380876716777382919480024266928399035189651900544530340556416742139474348650235161933216888818056324477871192073768649843712166902805340640115495897033244927585176386095467311322686449303565608850637520570449593415726350659953106520079702740437564988351565606727201964623403119188710156619918637004075074209607299711926481351776799969646712003153988943457032907510722140750785833639907285149437554674160095947109679432140180376388591292593098973367139088930086199887203547179681375397452084938585797489652188427058016563375359949359145130617767697493195222126274134993821729626907166374810833294525875423117563061663618834289693071290640004197185850815207176204608912554916802772974939871817222729729996052434341073127271430753012661438247695119907884622160264146992124941143549230344608289779884844629474532807828807704609886233688809179399711668420537861152189075650610306947209966754089685982859050658142706203312808832190539526115099396492760570519501645099896827181971551276577460567678159820850013186828402256494353418352759442133757276196094001935308511902177483923163853952464920364690159214027988123101403821251616304280130453124067926697281714288438638552787419942882959641916045662753348994407409008082671573234768569425685325072589060308913796562649282486552085276548216653346564608058767674368244582043047796844815719751803571067376710670803263050946196294992987105977555730616887375426399608063347296799983437732776839656279753608947389537749470389423794960712800933336292122891203899227647372147895843972698744382435014353220286167038217243851192497915362451815862082320926581696931098430171906060933357981502690052548290431964992395548107226995019784751169979698975953654724163913489605097846590707801634008061206098250921161893931559092846370803525002190408356922959415058686856952690146639094836922095073752645680859364904297616442350955352902035711360062665678283024372911664292214602214054871021593429122879662590580117516084888728921438848946755237367526543331019308821472860429616523692154129540025841549949800138353448117310861688791310918508448447351953341453350209985425979224066060795756318377284086942523159645502283594791868908217119194195217483739110470278262665948799638308050593695460086938318186479312511969937009164376766854456103084592065141929821136895266657880755541422469065269594979057178138680181739355244496570199519375086768093711631083862841710861796745335889910281477175523930708331007052513529261774737534568235366599506960021691858779827276095944067390027453266728898148818694443688069722284011430931844912659737006708855441167591159194287101421701712629506712138606292454242427034100620517271507445514849310459458152515763898022983019600358129960928560244269305328302366454538274807697274473246097564536285682702327269502671880058711342651629901950170042178075386914295328540252563218375843380326473052336927727915114773087311940891556302131068618895239862650323669245087702339902602375930985868811821103143222376224247165413644245225693826359268233507717588318021837651706835327899565549726198974047191315350073960567757785499017902600574790315136607423636985568878338714476438677269791013980353052340396893022614157173300703265145074166093715264916157424608166168004934812311181367301988505489523820771011425520732349737628426304780922857569559195059625649638020913905652104227304996579518306673501412407257473038096834332315386934355060381524302112025547875169233990209833352811037244036300940652168499669383183990233388795219137576017285259786499920598272971293099251044093236055623958622251426796828316688666194709930570697067007331004832033726784668782343846265510327067358852491075599628017603569521491562809457064789245191825818730624063489715256049492519777348444774358267826449179694352570009750087585008668133620431634948190632629120068750774535476846335663803779152658902445618785994904371404686520264365096496992652566837735377374623283149928676452788943717183904182968884231918314941362137575113845423199688354379240064745157237496236692744519201405581575403719119059945235084581863090052698152513317813119478982340052368728406575331634703596745538790485362297420548788978819019259219808651413125795700520411686857521850158719073752083506614948309011032656250880059911743208289511102029414429378504263571094488529647422169109553313039275751997942851509299130750171699535510674485307187949950547477992022223729032035509862256638813278345872385063032540865440629105955433188924764923220585102009835737433878635737192655451572140265022274588457917473573680956305957435287093963867674013830478700687101476048278055420816806618998476126552910834022949025344698245957855777315099429343024715972194752268157926251149482721573374617378024289985938156309818094783485070281891957641848389525282552553256191245361239808617001231851877351340813168542578603324995228648943102529112986718083203117386394965931337853699959081386238973327692854617257491488703059828184242786862499025721367025832936618347721729651443584137983377516022564928151760807685349865227505329268682480992707778211973010227368168663996563983826166127503043457385315869549330823019023020428844542762260252899207255687719814280762317489808182669748239288399364543063360747213501358653765597292194887902780551008812531793512922603432934315751586363669977212785338604760876180979938107358124257478645511468479422901688367742663795314065228856922478833202249552504911165903267874519057202926936233416142532827211072220417369571077784341213700143941942175504412661224824163117008685002506376692586328501244330912559531209168636381627084215312405321263075278858435531087141696790516599203849863698311935835624337503706768693130442292449020299164736871907349180450115438640869595829997246003549588450188763030439887832726211271828968041046891770751698528770158887015866451543537588640525162948463096699291966234568718495110377302981086587765666145393484820891287552863442461996090332776749297636703772387275420613394729231717810213833993698034904895444398005843563318139837118257119017866154851755189571976645118443698933052348075292777543454830122819623012329703595080665934855112172411989131096602208526750091760719003447484582655533216507307034062872596532835020694174472351952069145125697057792296106812263443868033549019295322485034855302192016494562109501520683639708403181120799647203255938388281690235745938889108333836561783375463960409819466928154855934351023885334301226803857572393888573934041617634213115982146827204960782736591671162204234289052687182891491009332131412387040884973856930944868358965736794557325705589329182249108114939195666692935965332522829500084441497419787677745619993450402584001591292736079002548346448887728392913192919528943941141582412706574351472809436165250183348300109251206942608815802030732747057528115048040999248146814782599709175058672197676786576309250332358963322453051101070153263896421346328440176789547480250377142090094016259749457075008491085221597717468624070645371559469519489493784871213784049050161324439690674540322775847743803213478328101557330418519917885297875192208334181753836544712901905482421562030960434595974493038799197782749077894157203026391733774348048424493167101983398156417293146865482977779702112271077356185496086943300714667254765725241883165731179664886602025987730649624995853370110681068756875629593451226639616346495802107264442165420805583602244776216386916944917417571482893127716911342290757981037906956335198243998067872387686511958827322563859835192175382179502378670558423958353671598327571676588274893281248056155771510870677540205149336243690690515847261867205122200076101019396356612680832984162037508855590970436068820413526057394078173940402787268004991985197444944869918559943208620548655875745976775638783914804531043976134026269197198490147642401928132745692887663230003044537140219232080286377337753135739452348854150034795346746457306345635570084170678879628361723663287382252695760845324174749434608115741388567688581214597575733136437903761112785152621915881913279410583683693691572017788416194487982226665420088389661615279110062260291092745854443248996005919212803941557651147727763777381743798640956019098858316066003596263981243700790361565696691775926742768819169009988975919082959675840454763274067919063020960081299787910684895348246281515026186374400963347499594628210494017873234316314029336972362510243562951382928631268073398185094626522958286577012227741349412651164110075605913989247684825246512114312301350508289500241088153284683878192464865587512669527698216827737042507126863354682518040939297160471719654095886947471260290246371967811903472515705716188455240521361945300742243433588058417889781820530766642066455003012424129050715324117370568652956997765627230193403811414982029120923325052088741837510183678047476896275268593409648151884457778934946521287211250756450233569784788643365540695675009744946389133219448425315273863889855446807265018062453286790811362325770650265973076719421175600598727055622241941160697342185747300261224421126484688070857467689168117558827351160158800173511826631681759702806251089322982956248651589906446528410786473630398214850625612884689480180373543877175491431176414614171070041486200421703756758756967249656526853742096897002059767768077502448427852163547334736049411607488189967733727390263364826306429474908664832588137177674222687848159199750494784165140191953573206523361344665745159322121765551332117893994565208144901111713514327957234771237431881929846102261995339239609902902264602683406859534708014712548157557680574268033452093916423566249088734174712096092061392209314742721767407194260261269749507343126597196054101495044809332647543896514899972253788233354918033036455585413069785038869323394648203361388645270803074653009318653063531990123465054821028267385441298848103605020440255125292772225087902822110486556206351447687408617720520649870434099915260735722102651991427847074429847933868559081018892845393726863852616235365009641199581288127837833220942218990952400301302658154020899800807803544755238914684156635519154874560806702035113851364732857950622751962843874824188930195560241936829334795550755118488541689471220800167488876576669318302539367688323391626537431465576948176559253616178670068498344562315652055114030237403920166626562726327019660310992235921422613439812570423024585473184341198430718667537555155440516323768943969127170420232096684508392933771098668140631042916068105169575204620077886126784822254521078472695779174051402114103191211133702166424476653502060016011371016894977216430871735774013672457194731717743850215778891734151842168764885252864249562033585829366580193506421317915325176380277362775622943911500993395060161296842735059542384446040714921170777332559375728791051686562245625228920191225475720739640005629406315980606230597563782941758868194847898964872092708116691523013359450263188916659504958960728780033319390470612850293114633357084043352561349922330234079958977226071394306453377468739863169410048575892669333457662716409883555586597800769072245888356359734250903497945230885604739580597560480420398351714106102474009356082656202076396841653133482518378329129618859787054926910395645561362328584262437100951824223450109922043347293920322746198232162421601795599346586452494591130303376171410603200867637616483790269403002344215115920562378116702605782873217979366688260035635487610554774250605542863036078621731083011525544971581185355461014599637750474447882601311371198148566529510131688385704801110146244150018512845068138039710024815188911442499545574187062289031256832837785348932888648522763465635902538199790625397511410983700113413305631781440654457779562653006425534517169224498198514295156951357010501968423789649814555825377127472857067314107143658161107646480716514050850996443745247264818132433780350883728446391722822011867434589325359795319902429181060601246488007405570060711077823340543646423565064643376457591980840340037511126011459035068594424518559650296107264080092444210559870779486281216520992514360070374495979884429664597912465143831402956853902476985746734476593246644800517176646850050537436003582121918102125580280913051503014162662023603663903328189893871450047772371483919325935898418574856845342363849397598738775281258624567224700472170751527936999563535898249936471487675686875737575322582496518521667522805725311057910201867072340734809195402458183969323823692190937121243227935844360274367944219595023540502571048214004094141218098870856074044946356944226395055307792272174975168557278252812226017335855477013016241573940695477352739820756753896533088402081207704340400935251212077390791038873266746675057876565180989874181607933067392620244341951800707297673441895739501815659050139424924021339088434436158120847472777092340398997329980652778847807971185206492692938391989651137341953434798725391585916386495062521894987959195745242592592253011592471509936630588387868332850562835130159797598827912469218711656257516751975059947723669236909136964386016023447616709789366012328416935698377589496830819196427710609816104947743145078092957834944117464269948435814101968987748143580075333763753620714648665606985777612187052921851534176554965661062010863919470076314410295529092347692473398023226678161069158548811849179342233287129744691869768180621043561841662582432116107287196303596939481050597804220692193604031698776266503842570982631781699283872168301209924891536404808763096833113133125922095861140525020290510319216029521511329915874725883663099190314311296342015840519627250050441283884156581337347078266942523936300768585320264165820995025810452481614581968392506560336425362806314461680621579558518590889271525849742944633787392110751557722170868859003437360618260321024269790971227222409878133333092562890026491525388549088679860517221593821229425435965017160947913482821925492646048911728635412411369502846832835237966520089156715017010104471904031727295432535696486028466039408497428945551013407453614437146466535131725935763230671393761822970468267260226779179741443987959108467333635035477447864272871808675900033399673770569766301591110276944438919287619086379815860077347038593827160426938694553114042402355541412100082133927995955958128513010601986077179863893838443608212922909412142731138772742337298916108158749866091823421320853188158585163615215578505111503452969339298007310501954016528202445288577634095981436668213964047674182673136525724223320614049480439866113528877615639738328662247869798499387926405639257725846044799785131994021415550546895085829694906747305304415576401950034148070134018703611112063646334721831104297758609205398533590840667192569808781457488845580628816237970001458184082855760187166247714734730182632120481508169564969625445259353156061575505377145938990124762715276062130422489460536557209401327726392600768544888727180913403409642069759392130099609157960130278357293302553101280705322044545867344247268897072237092541590260055349186915067182621953631021892791654201089920501313598684603357189570684422137837299609970387182818950958883778777664790397161294899566257201456427772579663746155704410450613365277196805787625543838634141738873368199743026838417466298148516888359828059415979647416532059690422422738608453503617105959964667661688488565206523508028476565786249897083607904372636065237888384146358317391694950419149884826439027092067538115076078460403441451169996306447269456804579433844042297789273077838715525716654885683763720754972112697152754748723299977846899767767503217066534445463392392330587746724304005447190209384712160174245723086302169107159389021122890499638278927085092598908855943383219735543006697993220086139701401872571809081281410826472480650872768550992054709538603897755623192475396545951256283812135056713332749495827856459354063136855424597204061505111049689756085398194998002666127967735755970551522105023260825318138256477009511899754459153601204296335675840118247979703762678447926116480456570684694148130750014209379805022738475618345468659964162092829072414640019529203032631980673240448458895068171765343274091569420430029028808145961763360623250610576870042177062861190875185215590478465474850854916834463976468109133414548083663409317208090476330984851469419485010681895213478886461606888217682243670149767184673556393793273017954023160011739955865957186480284787994199174483573125893762261939399844217526962046792689246653392074847836971070763841898564397582874300819367790382784922929812326245398857707204921429732935081911318522503550935450295993331966587745917343692711640533483817150361828464309840246356492714219420590781687994914365033395863418438855142650242133701431007956914286348202197757280096675650478740050667531772685968383957658310884705800923689499548796639640499903422269645624640810302911939718485279626614757665482064530893097066190115146965422906845959437663350645885152600012762312801408429744603869731970574346266166269849284963563483320069755730457358296623647589821590334455532529641780401629329189407173247244845718232527130917643038837076164049394113552846129497913492141548510558523434463863932307961374276107842941107986870708118567700273114519060287151809489512486526108389010628387809931244304955321248716388779612635633425484727738250681089167519264903379708893074145161505471618636662900672551421190031679052885019220749033782806958443232106778615512294021276123013500741919636891917743722415560660857816612687486876991433251806851001746219485332749747563254798646150844210843620837690680825011471912689415655720655048154422446888600752919104522800453241461897689250931274032501447195281712083073398674574162627941622309457321231103179819724290481669241158186971136838611343930256334350430068669368945355894022170975187559684245689633183699364004399444213077307363452970324317134981313220742679573918256106999854136596074448382552592028180189852043518418201956110420530711466938841225346583156993440856585583733686543781481957187539597318555487632121742179985671800108235071508001379097670765939364877020011988511192679344461813879036092159687117419960543538804378111052457233113791043201317335844204298882861131565280140518250510564411126585533584974677778629808514243440619335409972166833112701098674192171643783919173569925846778064863467948111511997593953283931702324792698529230478213415353987190960879899726391871813295215798435805795177886090663983941505711200516917037756277706037774002237061885230821041114802467379469418137370071556873674524271625032685899013856343994731476181528430180633425641945937892060665577433954278171440897973419021861531464671858559826880623632138064886743125224987414200443633842650870082166086609064704890261583773390645321535990586743682126429608907376265036708586364995509049998606321623955364129108398380750140196190122001843530845232387800510805031473224086332151835883210258902170048694550476847381577254075782954461721817671235531015164975929172488763544211282167977460755698625955119696279337523489817057341235329137269475267784955721062362702460412617725681775784150563327091728409704340201799898448074762755154701868754278775853180681292429071037225541139570140916504682685325358691426411317867160974405741560240677334429972624743571180423697252150682649253692716305828928596439577434776696367357525389178936973004415632896942652508835631036077830679644446994430045109724622891247066277222116608638393168297028053745180135404535324533962594829102539003648523284037893609833752928390666445679420741935169389964936124921634058181101943842108869025617150826843270144692540538753789416426665041542879901117037253278521628125350652916207014345210829796624747946681105984017369745527874533211060878934120630202175185304192897701538981536123929425074244377960207473722787681036790847714052707430734806773680397649110474850371687657789449178859235192342009941146877978997964108681173611789185382814435291442528152468881130691919678631718500545835796686382027310096227588236255820882664806648988313615873052479788968129135578120519562668219928476549991081647147187003333915543792030496197706909845782732120651379514539901972963750703391444610671732536122880353054157023730605170479849680491240888442883564027342426294651431673885998917461485190888957032122904800279750390373619945858632066981631812218342952295839983282552308566253342475065036918749769628098568672427043835174073832326748371481133177687736614720533905847883091492451403211377121462818160592351773411886432358209979573296389282894910315571560220368833979188411884490047701550688631236615888995951354698741847175642965000088350481707816161812435746095276554222901731751581773216693499622925276773312057311147931403684022852548407223720345821091988732507399330484064846674861893711589795762737001306670797897655511891807715794517103321463303381904040126289878946364466086643630519873425221130080770818947106497120692913537328744544154310618716898791231297791608934154264461709395930720171207273408905925624003487477779729615049711620229907090927577714706899742221072006502811340886720562035751543531476621243846660094920639246468827501880791678354274622455014187658337042268742899501126797979272704732092855866740642180878344569222557964898697501819979337098539302855882553490346134989981210393194711230547559167321310906564944520647546378248796496103106585265374556752616922061752175091377263869717499235891336475769029135517406721268013657950555013924239946968751066995327800976477827450228811863185462523638759506961822969360581156029989264585298980712347330131009260988628370601624458597852690531950519036075343866052532877158808066279089191997035622452699176988138430111771083581034020709269338403002964792580269365050317845715682323964425615070475829694643052727257235080255868944064390401861914576192494442831003156732953668568464429313842356613738408018784893975029029006467247258407573305315350985902201370935928805254877369827351732788074051053725891179489707115462340730776244751512834483945512631740277154439269820603342305246321300238743756703105151229710106590253682385453615629909508778485868803459874722680568649821465578539944121534411920938460394216304482179917318058923603751589257198462835931258875073831715198221836517642883019557972787104737012002983562518774974381286642527770047459390970739145626663715555349943244462588625864052246752899912999676759198011393842653155552902841205677935221497179293577443969237941715286740966391181677155173159854461635054240450463187845583947096215621178227345873147411595294666739852968422144099905484773735672466047060209958346964919482365567637717419210360539325666413889193189328196744152116842481764070294054487872773658922288288355017773149500700349565002076376057602515750506914548499602361121224665381055822144818745795206749182877855738225786973172446193079700307554447221533376978623210980640859904071368491373117440362277509413998537652638847750094602091512279562573968963060218999808194959571535856726646774375273234009385786525471871300726020252218572575042495673078629433414428276901502549808096710734508855674156734933042381671933102490576419667148819320112676074642597562407989636487913628570847892731928819148767584750177347055930822571579568340407073903431449266874236225921272964798901327024996966389214028585228484045327232688518416431858731995302083884945998119874989458728986377122604366994971701142601548563321596378500514006854438852917305523821470591536273948136646292400838386445128700478307121730613359786987398114567078003863645479093694509653701649975633621181050155750263019040112528282956704990762847723814135329613573164820119353063371840709854357758037240396553456981516942575129996259603570190218977395816195455519827473232141639529344916823466555013411585122006293196375539988806993730657067327474542371036051876450917893254856222916261965374657118425082494141664705960871081919346735550391788399360367122401294596880859022332279577309311171636236580856090650124802566681209449540793615268267783626497087249789428736344166118294401912988634108626970783776135696294648156281714507572453767072761453464480816221742573749030467605835395168222734398595556859189295000682945722461472141866175042053271090189282352044476027496100177280482223295122929727579501471002602740482821076440618932884530899928612340771069138986767232302484436180472858436752810015052538468434468554814181802698454484721366201565589283313727524372414779284354726634922329823219520988940798839735986144402730696836906274098379278380161181115357521363398467392525839506417899798848808528852660064574702758420407358781977895395944676597441002104764294680071738675424468274335001954522149175444941857712149765814600744322012384655848273300526213144980155138232028041595235959170445132740111234454532347021090333394679862047700885402778763929307760247564617980322687177933991374519108652500987290382581558225039184522669780056715823612121282869267791399369623336328852033157935478652814531343838217098601000363215418648008994850823832356046885895027867544187276379727555260430988674272448787485992402146575066799330829308406837239209262398431838311731846851668148418369687168727019893306725581388949837093506319685677173579770590431165250582474785491297577666344370004413323406040395706590199257001135458713018196553398306503123088890598268004797800097127901238615617291872163006384812422050551271397041548411682019321610880059621928501931783947505662573578593359712400849764052924253269409992046364479292466590326088563430565268564052273218960345945785053631013838545064981929999899096017842423137014096817134266394819427068288901150403143413399739536858234552152195170015402172794214677107249051040807433264889127537073361467219840195171286481578699369702958536677825113167273697144408591194748657186008442272705496259490933178483488592688306073135578467263800936640998390316122721134267088908991029048696386090574513852898129138695324051668956550753425572368713040969702209439368420239852416360845168732537754763771499009047498002172026009880429887053346611149408350228351757108381517914013303862700503487949795602774493843761902025156421393563485122064568048692123249965868015467193187392039709446668280891442797818089985278702325736053871984421524489633004031901547079188097972814961710107821260492171732387164779046561780459279237945650459404848764569375681407671492315052606649555913515876947652131572118244919067656709970535523119630678805305047673511092531682115457470329321063515147029839503709582122216132348111064806203975003906437333851567807546385095996956336494872910806447708661657496903632886305091240261605772348081552745964602046959784416259685298019139417717629843054466206966984670053619971141354283816722681768234873879794492733185428791903019274365385477856257293928735592098989394206314814375729758504586022923137303297745516072386548232095819384826964409541162721229208128658553219163707562162959035872543003638646131962129909009875933292431045081490820789787438388771854916418174059543994175166324319043792015775908340160727335962235696315467504550346139805382851990869686160914156583370891964854563194365490500299832139688966105934277995344399591850149509470066034611715894491989233506928331193995389974389634571782707551973897551521832246595726146238290665918296537806344848576390604248574083534186291553827570025283260915823825234399423532830559979087275759034971681780778215336886280936612360603639078260077101752327841169981063328556643579530854721566817772727750384113743777041807597677212641663606261282221006651695710079060321606588352336482841903150009567668493603405934543179638079623581426278162512025966914613883609020249837952501064389518674381301876208206914354866617443024216504400526694578229766977926702016077070335645867880126855966974030620677482963193161915715519832632594405404641131134286031281525619398916355627898907572864380514130469966353254194802014488866428669418935578217752045805347691791561273955714133157295510320663762651068994873508669016980084860502302508395649678610658227478664168410029740121271252943626596182174215912067775920556331295458152322516305091420171349284257503859659594030368006000520916485181329632700545137535159608488353182474845001431838862386443713958081374285267784388496730352398186591739340502028857413414378230726304899251770639684287334851282077449432322096322399100354683898340725360537649623760506247729063713619072683527536865568798357581539749577710546204212433117823718796037473664555103432227700053578300127463317360156519489110107837461334342306224716460208174654810159226002018253918711646262351459979746877480326428313644338670505930624079244297302302446797959155751324790234434526088783752724735641875407456119878578199727503780143354480199555064977314308896410439832125529267108402779394520701468028458332260728059530574151170364649744001877243310467569707434976579134700695051205631419224751070514560461612457522898413003643112848080516479256514827794919526328030291235986917687940303451896965098069556143551099687264192290938910004356618659481886051602182119437439594830935044362436234748164361201288598305062072529609090499556259570468510646438092105125762445049703513844347046994810598987263508195398043675478268479594429940607974347247454846299417812063378410701098869066150018286631191063792042733799156918275658999631312063492926676390543596110388616180505333149775876378023630797697515774552754625390875156651511230872773663430712142012494464790192308837328275842552384202379784234776667671151654547189205655751254115258521209046963248062697228300540014350044726929384956832554841449396417908057214362068503623404668382878408061544301741995567382369121952144404558799202067318540762749463390113491726368595976600021373697455207267144844659174563979403063670265601582188231541782890932889731196271136667081196367901643355066008489818021327629110175917946710129028829738401575850754852734758017013679907604396549093800896871443579151686290444791524082479551685692141234468477168801538787625757985730778436973887382089606532596160391453444640436211192404113009788675228036238292419950321473572788379086239834917091187469439118113674159459916716918479612684872183270024210667882935327761499151221444057317401425445008437940787494288091157359403905710247714272207286376179472764079134757879634362767434677226949442316494516375621938491178060713465967617120569700194239067218638286365198526730715880849078053255203322563341782558245663123035059932459707377700003473818836943963713893307615911497511824382092170082967935310245629390381645270533099309844766910868016700261961297832796678138065999674387117962342343074903457122902414693873657204571237481932159788104226908169702137092725810717937891535350272215071516664822640145056692870998528754983255288109906484108902958974028848815798583896803303181379972751560741634977314422621218724259772796026608932121454239359781369453615520358970154789192441406941080560981798269324734854702951961260972363318617385803241748045192811062527194417519551077253716035167763609003705559709421432755821063746008969914105473939683627845739538411858881103783083472124736302775204298846830450109994257301269265222930461791488723117817853780332216681696121937410453197001131958558476532192066006349339408661729086555363639936700461383764425716791265755182596130174890883283414737050602445763584236300262948106120672598623028923655100767378076209950130063476777878792909728125129438232772159382554295057566456200471150606891619037968541427088961069721144637787594950370522273292851496044599439263631129590330601623088101185125737069550230135851822622900671947136768689749506868611997898724739659573835828689465806297069725463429177705599189238072689153414793586846077539531825598665916185555448685051398623314508011707760913603003795376054551616986530087692892698487942489190018213341536394898309977364795322029137591332353470522056472151700325846404179678085893621226306408632833001469860489830316433788646880535751349419453060802552876966473732168309529871809288888052338968759836910906444837206254167640586501923438520820774116170549267705639704351900866904971986885533305482144677821590123912088997365421241236827087993822576108764244532554572432651471560083115345000382806006520567186137283405304465401119630457414188606117326225841851226909325182492376231754032205435841965252053796886962739685806100406186254911043270588910500343674461083698915871958840210003687453074260111989887495677035552698676616238702245584345926563304807793038668414979690502105837905880612461784118845501529368254291716023020138061972408210135309030911775228934729017738751466263749235048276360115000641407019480342887307635486077636263061664461662884772778251743055593171018535659329605019498347072511143890712188241031118774799873623721809856092811975253238254859815219064328922467265671140995722687754016318759589109315521382584168572184835627015398165159812032375028893924604249114254984177482554944699981515704899474637801921157883176267479583805420331438802289133190208589002341220031803871116333426846397844105515430216830940163584136655023554748969581063915991194693197235315977506473864388998222271361876038484749676257272569557796765134300812149234670664210261257468101285883114319626549391197524221429701705725158047474759025712986926207541539810396822672960661698954950669114982522714407758705673781172637458349343726158004554382730319882591854800240184874742849437044394383851501744927475931134370338690131689274348973319252477573750672017055001769704599899124252786247525202852818210034952041136425291644221402294391389393488498360274645157830918217990839018127293731238889081603845139284359955661745400602088531178493968107824134048295477704264991873772067874758941393213794946076352652410931827905364060327842045774975646240254860518576676824574135184018930645368108341582754665674541299130700743297533533569042142201686849114397018173278596703371939802290943748669918821382799077940812627603087391393995405588975311585187259096437755058166264094369637581795573410129970736858764104793187123705239591468841011703445842651694709049945303199418140348350376917305081553688049310463498910706125901378686062262732047135121650953432814106586081208724135003681358712741568583680291320785601851505803570548147703294345539135401451683842608088727144535285688506977363189348798837154755568526769422186501092048236427801741676049361274807801644271032130886960590136254603180304196908430278620010640477782042370380240454830724278852343161985589957589195350872435328572778649699727145805430927821655627016069109552173006578598544593439745281976537688361893736882701353411497481053668696588093737454156446930494339177232413711395997890714784568657770594059739404222598422497414468182123732990684000017656983832743350086796689413348698433754537953777332690458041509148283301830709569503977834097156573286884139026064905169614882551883544766615630030775634012740632583995352667427856134918787365573071103172634859880524069493739953769288043048640632368234665809537143146000512067656343839729779787884021871418918906906451332795740457966095941566951343049207872337296701492445584099613373992605087643854512671929977093102312972077453752629514766933382715126459715927762740632203222355790687548809470946871511374863616795371267838722926470247089284484817459068690974467375083932754695152191354520666275408384649109350892908928477691009919787553056633965277984523515427338665726769232545444753957844846998403744952066676430095792933988592051646014525059048685153808552389735674994344433999000949722209785234394914182570884902326334756294624476621342899571923639772409643432730218760312415886500815850258312104298038199724779816169364036967156460176535215855421429952878051174738759790018259951608371089102887636122752831005190929542524169765078530369970146850458035466264702739474165106415351771272747541980787400049566949919019518719659049692062196829421820038795620755344544402242123940147469654573384200259104383913076767133037320095932749514006857594583114759796594710194799644955360150626072885247820477501769955663160687362456995219013526992783385115781756971694984289489579811176862883094779644016590417499262264377508154795761839074495623160871619027188927607160238426225672967275559367889089777449977108529886697319697806902512335623349494242024979167922827203500605581331049629586429676719186478018767811302882854540159656301728179333819298156786091932653032870171482085203117612304419673045316014397896166915635243246557643440393699147330007387459694446809573294564213377890534085806769445195072674845904971858787968769327159775329258997187315819461168662723838641180421267109413106013633244417765022167220324733335724974272540193543464748604444812838089459193126783895941050644699017258841751517884642133216883444355356703734795547904987808574461827748548867801781777173542979506525812848527219227778820971752975580131960523492841335338529616707990751275176275979926686408627016997933949236850295705397061787694664784034791572135235134894265105518523123261302793273419157814343622814727294769936908377251743216448704058118459707191050027505853225957462513618039455426014825316384819127159608689816468215194233315529993004558623972706185233895859386494459777975195088261895106588659185318013755646621263081419932484211851692616716975785602473653330857112087278019984310503894289326622013609430325778696466350962494334617366474570562410122859894967752453117137959336388401052687530752227609359760230813188696476340081137921025112245359531533005444133866175675863604044183237364053897284642280802756082866689098994350239807351703656388110723721292010377098743569728274863446151370857849495831838874141781573946340338249960439792610033296164146496705785677618889593254877219561607466141627617323297540811959714496497971960735697628989266848465689023078940765274868688579794011469889389400059588697839355460841962249077791635567290051158606585606729910600827462546651644779838084276120234137171750849173518836599309436405007551564552684579608148420710612028043779571323210397141473546546686102646398855082958248708012901597028035109429847001253360299304258324379465325402554672685694819028050641276245361210403180712803660119215904180761038114195541374996312542745105338421221348497144945999870960684239663923528206604589671604272025602027097518746219569065621419010955709497250455593918289683771415228613042774312786833581052622315834946741644733260029712345138744618808868158961689256314951289791228992141951391572474329582513220695275118269755499850034649911285106009596748273239857275542707675385514595061891845008442523510867030961098836696059983676852266674321919667709118565896183570309129120715655511428437610114861800574501916754456231926779568236976873577114423109364130234731477283371474800056240838594370587097993900215571182393038358786287916194260071365639652544777472570589834589456344303446728107516164993407197797236848323671278571583783557973716638903405338240204777492782425728977615926630047593939782856481568940178841641918385657259528337540905253877673403969476208419430276821978121140512681812840552461645801674765980720488200488013997998220098885242522005747794206962491809042117629662979907898300799617587359103366413843488512647264687524131859831228127724641679177810267047816476891970957752988841143972326448962304624680449540317487793637418149906866860126068235857141862968453995733731230341757467236534167108067149951546012141751546072643106188600311220967739299643775729238985744172359643692331691982407818283958377736823377030949443181000286472758088637007381228051197311867362654568456343423872826415795391987769291675128351188150584420922698152480546053448378506111812933168526779943629996871947771655674017606663578640972141081843775217816732055718637612979355518414078400069043719966398583597053145331985574791489918526901594696884366167462944148141219730352505907318200068095568278174447559171413291956174015236961716715027400023370705520591721705234115654314280214668755724134317015559771574313282248462250401639165959999723535837795709670092440671440654100223566965899134060466742436316459629981653066247156932923713499710723749621003449953295976184128855160555061511867193637737823482871977825661855409098460928707472543461790011148641589835736735169526721101101190311431499850778836035439891309364657352998058608872608538542599603841673064845012534550019609876306348093340332363494572654818998400400261677105696148077779872897425907825491111810278084164900202009798708107154622240624644580203144688744019814828817546984036869732557987392057712220029417324236433674147461032448664932090806674915322607280348829624017196815235900325911665439459863117257542600466775516628941432190231562566036560691779419500548129667166464724474542368930710887593174967314770335578991395949942330387882083359992608956541631221592554522640558831436911074458225941017381867360017615054187528587416273705070074264765010393542833535125655060374606981764459033772945226993742205830265149681007343230665938985343757696040547410932350689196067136219792891787734995338490270917635290908069880850333592689626682822675708464571404034319308812194343871389807886455083911957016059196085315557009434551269488287110995234042834821567900817028755150086139801666740652398098259022002931271802557548688069826689258087160984400123262003057392270878014841005443558023260518747032621727644764804563924843486304880363599039341120985262890191121985675329572660854531100153265669484082077186564692841059412094762162203519743265117363287570610344751047725144255837189592815217418723116579986686218771775492793270383536981612141183895074214273648834718016618985452675073335095337959132344716394491561961919607416263232219299164809274869318425512179874056247089202627064493932454210531423694200022489472886109516495027379138543519621387771186062005444346414944687479345520845671004030254597159116458637807901831541393989553514216591384266358927543563657378944206880483241632944824418099286462949633567297243117036524376023150809469714080606788604075431783554994007878964652681247622691307980179792381932513910769567349432761848741169920541138627872104464380439537488650716387903480336844884810022632413835902724184259826576826388032712278731824737330101538356938555862879984138625068231768775254340341118524499440656010931272776896196807844781228761264451693835735660868607842806046559067734181195888551349329866029831290163508060596933824893993603576983890729531770377498948075319415226659258844790156377461559084813353211810710013799805747939587555757114906120398750530763948960816541998562984671452064667404538465894060002370825299252997379421840658656340945842807903823917159386798090906264126188548761829806424625823940823752937836425259400228710242131867525993375543783753307547528395392853366961883361524558335452677732291476841091619469750285320953443649501783736644312003772762106161252041275742468358703334648958509910704178450929890128617689676734668904715762977609134154209864154066164026782648294710897001789570409271000053378442334611588721804434563433359825311342639695420662179945234827630701599597823992863237868080486574160280470068044198928353446847149212879009614433954620222231647954210155794151506899122415033469609667544375909592118795292426140938879484619285170542996999400956668336450781154364987083488363554944834017585415498959693532686013478268592484480498396023571378579596856153146360593727197394661885075489986419996093893343063084207290802346894029560690769271805255108988773608955428991075661445532682327291616933895491004574292887347247581277203062170238023826423989218240301176990184659540590492999227139250169828667316259433696099236134741598299878379797215520305455930491500345889731396122991073734674093817298214406867056358548975766980424133899463162383336387527828043228881011892445685389849866384738802588666444664462673397085559898638405230804690958951239631006135873157450682773580419609279930930179349292664912933485944632945234105793226259192766747337256021663777875162381735356087517560386608482449260957361030906271705048068877766047020830981630401202873465050864649412404324206973646500660551368625043064370922285346935283430716473886657730663390391483890007307152412997397042789314415459871934317172258925583923628942169969106429878564157029686070765630651792697745967625943601515606969819996909850180287745834386111364195746815679482146369152340915094558407252405312395178724015324784483146898962366641498543410677205153453859336662895360896581369696894470401520839339320672815503110020887801342090731151856497311597801784724961905291757619998573937849054464071022162830621259056079465781635622627439771786521031154330026782032744238604732735164698971340537985033612528962209343883600426327116562642105460772465441795515996785031034583707252518495544548496731614167499512958548599007798151595060591657646574711775552172533714344922464023742014900132376554963515533749568198844536429703973655614350277200591717872517341268882800153230914807146601764147895544900632532185601081838726067047186471294849744188867054337753626782386211698554980978641215838964267532538166400159670996957726088755744200226980790291128651529105133787145635441145520168881279515654548586090353045870292205589354805574157285354601586181427470179524418304656875095760225686153460428600497061546182866585221987791328221739629335193011151326310879835857970816746003991553710481694926732229837489638255623642256066184238672383113221138855114863009365005098198869682052999878561503930568869755042787017277352918934402442513043535458580451589798914502256278253321296957497293705321861349038805341969760762904561886777194351340607711099887910972047484583202334653495904496191699943792884154535249169336109299704227939377841548409590078903377200630165566406097978883987998182619272830205985665021821376657745860906925572884135315059612155257703214085447697710252188728886946052738106027874215732846755934918027536084901821726016839638337656463573523247149475876244776202387027496934240306292444443153066501737690037037082028693883156946923734971143164584168167801973532948318019292025917278989100642566696010533497996786311988529222345675378435886535590997193573918699882188007006064773230113807750073048557671782985808198858360394189921068869855688842861904111095307923207438424921917851764964083710748374127081405922717431870658940298970267897570058448913501094472152727186833312337245916911377638156006979676593311939792177602195744036228730186659666280286235017714669383183720612561981613261705046346946025368645825689925993434589598591454761474725521849254137069110227622267558383580100639413584372790732933432524770243819132187205264988183071942195291172108742517299314813545275994268019637166132302967358982875605905628294692707593621343492880890985716158208107679174387209781758649157100163460345185848070065884702395732636806547225159546184751229247171256824916567833227337276765789414250551861127785677332325080707904226534348457859276549971175927042904180087245253604250544812522284152518328435710630186222439179183767350816946932365597820809703210135943750501033017619581735623394795962770073520419779461183185828118891414389909493614732995132696883218346427111209247636646157766004190816761345545694914104149933955755854026704661218162129524845473362795944304667709109494431798064616259929292660585622924969181711267049897708200449101826174316181690212535007422516865728033165840823507686717715735341253124341939326877109170331357351071316482763519144106303764267035353898965556265938176632854905000936429543111698854635604003509651968848118869321720893829223441176375699148135791496037313277232852190272337219859668848032981962539799482620053828579414853554547650131443898521632471541552624686387006928164221328002737530711944554025759349723805422308656715300086876702916289774991828929931001097290589948421256605070740659082414872886534143895660742570497644022725174895898535648341257878152753152658588057016071865865880700028587805475404188227829125938029520215734079757533667228666379623466961485404296447653340267101524659817278249191035778175039594991899566514581172108822085939247002294002050993571586389194184167624752474497226198659428648620838075743005561730334156632306439358945305390815338309835116275889281077791212010458789354484381694462498106265909137208431799547207810368821344761286957715647297797669396359320669200807139661367419733821774646084656473617280313293683760440836740405768349883471325801011631128618322668278678114498026609036798563216571627284672353628626729844177844757504516587073421885440782071542259954213233766094588955020619824075250984764574199275308362782488066401733309770966533023393294735266819178109391754104309676746613095183929738211262418825425818009060691221449897857182215796124768280728114552207408783556666690425654175599278673580375016911577045172460659655083366731926031434337655555769921840155908260214063955276482135569484621120479450207940165677921387991651347762364815746049383189295524270167336822122508448627177968866879142103117201618201510468314609198327276723250396012924464451364391891790598218610736822644143510916034717047049640563257607526346626969054346959974420329523533787973499408937445758833945817818405705964901223959275261674878845828758684268451070434332160061772066119264367629826099412586368590275770994271778639408543957540483617455101897090950339098274668202249858261216296124255242774067412766572096528572932043266225137731210362434941961922589380370119684960264131813003882750587902595316728322782305914661939883060798544547239811371837632598776360658318246902119647289727093544572167785719563659567615400884068515249787418971264083544172326695102627932123138328628068821101677761590657747902543901292543085331788878899153875031389083099299350678422511245175869460343230678091807686831702064880074144528859626201574316468109814626684013160198960566840464169532060261373646825785955721982960790882348766281251621686120986551833346137820619752996964875431198690616748152311505806316953107363018750915591455489929026431628168203665589301887529498939724290257568817955304772214611028779922062161236269463024623710052318160322704733886529538499977942461855064013320215099540844721078351205103099326952307158688885441234895483290875894295007644525167282430954922790503708184839679072482725588370019984125320676448969090846874923337993251396385111512395879998578998910333654927765151854229307515727973386324805422012744064051276455170715139353264175660769196382960717997779178910793776553511377532040591963293110437920847997291748116019261402049113750054673386637144842782916385969693292521120831094103321309230970924928864162306277142558273324886305997130125146463377574686361795981739715796505372603737499138023162529843620039393170034045471276996903517804876949892709393999518558150919582915160711069533679718877277031775373930565608801507211639727578533561719629282789351704165119910768306818923493688187796374734964057802074254966615963236255978730200950594522023702186361910486216155755310796229594218143551880019215222610301054291987532231418219888020566291894946330700208345598305663676604348463401716686418483402512601109320781793677767746224752211297013037047551922553864260071567190033980487208774104242353062700151740858098675453556711386187655666457043246980779706548236909785123547972938423422547355966069533856339331423366495128588422369031824012809425455814851333071607645149315817707372284890283669726549035046588627705252025379368734874371560129222974030674044968772964173164633092336725501270766478742107781203151964656034570995214197295987891814117761300353061055579634488789855186764589839371356209539247432243098516776511159187679172374903117765585940420225516918638459847814139902026243057800757308305832461227762026786415341380841291270269091133738287714090823791882632917661076137811424740194966361059089911109951119040635900961813976088067806535867968830756819157582263322052169466759244520968028188967797499619078564432452229499866077589229093213518039817193259179561831741837045998892437731379674926880356197939499865588116600546015280825035896801778378595545545959610108846288529719064464095225054219408017209661985646147094310253690749460561781196435424454908534326465807909560878823450773238813540920709376156752215180005908238030209514151055881003594484731099439777429719840485904776171214314230255346027080059363885535475987494793843008904576768133878329553870684141827841804052895695085379638267636512725844891724115260467461361157629477479464626989494747465814806567586720323374990555137250997917766063240761521022018373662791388611515168601950668167367927548435003546705435644118728628245138716861678140273643327501787575438459458862315271202799340709425701224229074997369193125632181923529268035774145981377592970242474974800353683058474806390391050382646677852269217391024892674252562721540265079930830750774739397922084767807151396007404134208866430000950713644799984831817218449283698054806296439204895297070422876197508391227176986780244335990215031999338435651083239844114574282345714641691022875301597889744953241776615358355727869207771329770062996823837060630028833695291589822306277839616939687231186443908498410141902547610338566563102021484260235588440503030440937384919173857930603476251439505392790311447729833531455797568894554698280391899402718037513582672296384831370494456838044500437340483481474555130968942436689901011753317946002087866228902163737376417952203209792545313984267855757674472486444556518402172623494232571872357348295464512567797094207300287695501602810585942625286569810317893060230559373412527017490458920499503028633651913423782204728923215906042092990098453534943276086513083665444200828939995092365685617090976090725495000061885724795789661446993392114056054327190744864355276551687099087532368898252724603999777939472650549994068100560379295106512185608998721484491216348899663983184694645491324290020267965576352323984572065019597621158368711396245370844783868374563174952335309949847022539409340512602273900029010567374220512849772021258785768867051309813187510056817499276696193648281158144445275377402203234986050555099153918215307731239192172949296520309341502886798833044695342466326106480852161771386374150776591157414541583961014949994456633726211542993430301611629042780950608483181297727045045490420807193085351382566060487923484647168335172263909616105686371538763059309200961630869349638492174633159341378111489851379751869798017224137530095888907267300318981059065928222341614474659434068834490734429354252759855093283420605511130704935148462617448986400617413788890655600093666653164991793411503127001512855871048617372101174746398707010946952282694647511079763567494719595837848043861967910544030363824092945357797844852414152173952205200699194138821691858529686337552000026034369162634642727259376393087711733733699031936243698104571417770708571325732255677244463365359406329974694964467586521474751110063541834002695699521945637124845229056472463891641074797518974120476031993436875800178744596764727280271112060958822914170257772879193078610803872519746127925458585230515928294145087211006096448200479319165634899888823433589051249348622060838160974800301785622102111841505929467283594073537836749102635622965027633820582924444797648172424523831233321181663961589771019948169192864390475718133758820634408836155676117829667090641550058791995102684275724807860150491291548969171997183200160480496294516074323663221933798676755162744944192486068950904322268017163559188992282904994022557959969868353216186588936221742320328050905050678532390873594389756720599392844982647411609300088039038273740360100491998418313653726887418475916112029383245329762103083842998438257788613945769573545010624379049482807092863367088492232847126694246259077035553042750191926478959866355385488669000714290369629772961949480321091151644547659226022984678114618359985493429487110913455608269087329262473305391575036925637618704294973656595917026468508514571456020024626807903318562363330672215799523480149197049898631682711423759831481006882356706552567574926097972797384363175538033080666749793655321381407063691865209827449178134967868866287233255011445082874250945846357974170347598024764853015974562780780047165810524533166353091097610406737810762025889208690138110868172914262619729400628751382509558678396945131339911404865583909822746968465723731872384381912311344265349021240706280419529143841762861560696396477115831859986607946983785896667001885692702492113672004077922155544081684204525956852560486781265034678160238459982265657453227890570322721168968090213654764634303784512697194901173289991752964835480597042135559067590300921504650080223066345745512372248370804838552201318498515100249384418914820813651000751913828237975621516604328707311005199207496039877169120040586087049217745932128269314004254949882117911380080674103213927508029394802986585995808219797032324782230303696032361291770836409732969486107962648395459365975715848586253179920883066113160994419744788770213290334872407192498789932612572377259056684838920647244099478615550342030483241500240752215159189315824809751565620864582366134024356037036729375436979262091306701027263490185431319520733815638438503185610748368092641138266858927275173552846378188198412577772410730294953071395786560329247473855198603614025350474927825761097674600764167247131917396080142524661956396290578686628124455446296047678827301870127397610632419655975598401894174583372328488038656876024257944241683062607541902121524417487905247658136108566652349985399992128830394633063507943377741719250872393211688203527361634859332245902106618792562881252037968485540487172120794383972118951052123663367800566119926049367530481497969238454664952196607289278961440422663604881756726731087942563127560401471464042636010838161831793168420176677985253693232440666376487460953331322942045639725643658392934731351936051306798150423049007056003073974761165969190721884997214369922655827898213846288475020758842847625173244494859295493609342075579160276419622898219995416533161062168689024682466085604976503891338698291854017259812233274438689803209607436751074607322343678805164981920508334551934912343279615926922005835177024677314895564392414279642749008565880814822710019745736265632062252074977862618589599811400116472739243008328745687097641707142536036751913845734522154986229824828619252230678000744849951748609302318956481817355706713803062136325004573254217492888740179806339111037185757303781052104005599425527216144747936518349285430155541256279568924534466244249880634671317283715195839859824944301701130849333019791416502110422840764460542816380993925463353737724012910345187847362766517530600145920444709764729099370636057804174715474745823639019103079430623101200220761477074286712241145809122164913551033458683574346515444390528474343894260500538467203557061775114812075143788055174044254627905101799394410687925300174592174477166177160007115071286251029166655405375900130040880162948765780331224920884511574134423111681287607047438892838116940587573704449674253228752142180717629703740457170607278768492104374498732649148591893642404474889014372406105967282138281766220605798203600961364069814574399450120922970441159634105544280551315893062996163306086765292120564978009612999131158306674368681458033140831756662741171048375062708328981207759909125068781413459731370571525548127893715449676155024938750495039204230767453659596755633970496789514866938392023726406380513879289608896804435940445387358345958633995167424127803277226567525244186667360269452048293117300461179078580571877718294918604320403962725356539628246564985013017698881958497601334533640023926638348566265967484024870673603027004999842366573932878075485604982473469710405457449112790518352151515673593198329661178358293112292023944157560350499546151585258389394253968820273281533683712784840970315254670466562735830320416766127824315730405027677777721740096122698231110951866210122866461421273906708501806379710765569791451988114712039526280317117930948270775645059795199157553769030447155007285877083675501360478883073993045193481784298144563913820872960603138474483610714346058313781700425376962559178658806628238385117270900603810978228000859946719268745262480655204118461113134333521415336940463895320897670549543990431886471199824125378910737784487949753921281232648374831624465829182397832035400603297634930465578413756711278345231869944860380824449871761157027262545387851001483352652631974961432440807110852417248452946183051070098889757685921349478919209766063814466650518022936492410883769340939050136522046574275510706661902753363483903976632520592167984270332985184548985473189596153686907550406246423253737661651462135029958892323056910323866876463730459190580741020504778476345563470779102431219540306973797618583949355411658345404138797230549366831170807282453277289546285530220539665902695890776728524447403645674036375312525666823349579549727824890004528511213412962614066547307322146886454089271613492298573615191702160307465097186372417989267594107379175821206625620475807533457782376817863825319938300385084877638285973204376764027044228229518936015936692367655619708741595512556702911665534784087886128783953391753147377416495127347409845536555862821152756955354147699991203383677679939156826839228101791870433408797347191234766648535431231104860172662316946185842345495967131666264129863704091192446852130946731924285847788783770561160875232990357102897434946096541541178668697488934361571071804294986295918094582418443115921523874980127601508312280945590561724948345558929521111915839760129329494279363184822764716042763542773029908566051857889980040995795759381001404060287184422442849570069459899086665742890727705340552923404863641171562756744368070228414519649554988013113468109087950094486566852436131061465313365921252009186112136955569219115077287397080306875639066323605889388807528175700401352035312721572229720882175679851017128275065008424051046136840241694996710145062060422815206772119600607197616049907753809047915810252492183618616887255112976778229175915061585976874988302000123137609893730258947270208475381288426403878235582848172835046290285830468364373361312922168191808038145446453367800495424595411953853142949464858955017342810216647494558582817357685184303773384254511966516779406217213325177199594498671131515241789405408718404850529908890717418657697923561567411471419467742018271704667411507571021396705461121186710977684635923964842229327928885114734402713467014806632670549251687182102173756500540117976486084693430064590036360432687847758430574794090006606327512082666679847236887999660188493290767532082083489247721058374606537040430674385350561751049446719839636439594870543573042116787053583474164551653204869688107133760311089161255314632255402588392725726894328566312585536044173197120500114126119630627839709129174853519346142771060866352507086279046728002110980455948814284477318357915011885349202688243958436166653691292155182119592578254549900261538950534183107920658251784513979249716299604784116613308431523816716642205164698416176558590349245617174986962231036535783234827464101534746869395080002960087804120462212005923899194140389423393739226211190592015994990394781353497151188904827447389975424769323899495594732845171051372185681160313007990030300887467064523915273232391603590182440647390638293976109939773241100306149342817763394767378653704511909241557662938326364670500839892432129577640773184541505967173131782011959298625760513461581165670193910033681469664667179349498007633207758797617689224543188492231971232008342757712987161747425177458697362039377743206418612841096186276691194931786917262264424711021659774625495291864335696940862500197982621055437993481069553947247655972650770050838332432740138768863967703912234963193913681376811964894566729850531979547814859565333590055406271611092111379081725701534329736466277781928451126097645909200945280253509772479227104240567650659373657860178341125493306817192184598624078673189354950589788510178020133069987353755078943663629451884048305790576721610833259370475793356921240852989063091087605506967179707798289292175402535572787524883411088942689555208948934825908296767903304814638925936732888988533630449362649504224235874079650499396129997339367053088274976591829358988670290308476863274622362603674797942212993556043213782094860378362504591611891090245770672991520973850183690591474885318802534146236923950098455722339421146193093785038940006537365463376787117076912072945000862761949111990086586044026653215521903633233880959812004799155759820654679312961125006505980829273043287961731548359896553904983357748769652048225696459467845137197419726486108193668183256007737305976537058538018959635417394465359033666003593171907954368182843901572648431658504225586901415980577737399117100648446089915643679584812674389274114739659718055303764913806927419219465036244143852851011498584994413637967516539459023228106137966655566661807394753238530793041637977345914649597106377258852105778658346649113110158591445184877650117698387595100901790352575200327260855567118350702058484931945026151102697040581659465116157317164647728143079630033201020330314819371324394474181408786471621713081031658484311791012939452998974495432861387161243933840811962491466066043656107962771554386076355465784504768292924429718084407787913130326603730693697275409254163817592886448449484370528115330140014179177992553978782967094307729005592676327580808214473468718130501562780729356925981007571393983083905782209595078382887333609636308071239024738952567474620662089531812968697361544403690612094880683753948781038008022072401851418675247755061395064124234381577939200160880852475490404014811525128635154642220759315955971772013527310554791007630228200549551497520070542231841310712889779143666508174829145329224856479162970969859240169022989196348819090169355631602971975809250185843493990744984251491040874249737471540999959540866622581921709610436316318325376637511503309471601092541976735130711682218549344250184607692939673467458790750533701226158420796832507478716081807709758385271919303855324272297327810060503072111013767516144628885295603893909720689114477209220204840896117045559495462459502610303675679930688486941070471901931107006997226718967622113819967103293765731715046863854734628911712160962730284064176575291572858346641980641637153274309919018303789271906009313644654193487657687586666414402744074315695459238610629496176591161083813321045843312093750344804920747851321864852320564382848542724399908157266399425850272250969745325474843550644798489618171801082382823350769880144580985964814731025853371392442424844688968333324356677188990252395664625080479194603481605402318155983801169790991285652785286038567902499392823865147866541868882598563232077153039960390648677958024976488296685414421461797502808339945795117888033073562049522785514088808389816792897177216771878325465539068280363239119079868743376540744998299680682117574272412937039383177252159768952328927413325489458399332515725747607481687007678209943545904475269007038397336125949855567434969885600651745090427492223500992309864326357737618127058397126414265820183809961612302016212317136917419691521782073988309958828391981276405983989312942089221206803764905219299085625670447096826790735206063073834851498461264320165879032918818421875392788136340046638173412312504662110336050147048775523079238707345018709051750604721789608677981917374643990728793806135951037364019945047400053326265432974533015992045207325810930606067646173535660460768568075943917435594501666148029449401998636482707113893927608538225619781561469400113941114716412087678103628583511999624200348485807706698389432249621280345842870559189393091432885402902080456145302923370776725221592297937523677981603360415231128525606106466156990415838803257030774430601865335729017204239402813666225882628650516002768164659917076286267280401835894987385234001387962133317419239344700758453495429467509991349898392970673349714211327983621359844456907388407498902685487830421582851370832397233746148926103372906348040727234707938630705526560453483020240741871126312261574913490524946946055028748322276811689710076277691534071563428242464647047770202324620964890204542749505041294113254335200417392686699997035451792289091985912421646715094730099083381992763664458844575531236205154206000795721361738693231855082017983029038554046081518315233564579045994475485669483678464975517888846510698794051867983715565156104967757805461192051996234407821652224186248021879732786679784867513514234325062812202755615483577369535445568742702921909226377660591056795056686516452132720958237096063720845781879183083881909557387443550187467116337798377953669196728140722266408119180962434571613565979008481785090260045246196588351220056130044781467352160081891038518680554829198255318426267765090736988617933047365946308110078548149989642879019228462707387976293577120598263391277040425154652543700531803167718493015343184896822962138123750196978077908049116713514871851918861710841338436881687880720967807267067386232564415722320935992446027427822062678379664968690694569182183231373185836381892248993511781061450891771031629046091214265792425703260609593056195215458254228016773723817687576015423089030514937666272719231434485361962115554011909989290306221165114244567209639112286978272976273870364344626179832310473570508702171044924054423966956534968346961911765838231314030205606895100452500414435283453287861592473894561382874418852008997491848863751184723854006879610291107218933511965972932337516496801821992155402974880828304213806768395865136903786021764048601103226022289801936319874546921322431160577492949445992219282494447427068494472997824688455717204266971777172881358267847744183907098066204227859606763596627098087931803163623403861513513858477775252291114801130117472870987354129022900872354913460964048559681752366183764829141641568114541953854325119564132202244639427321719972951010204956436159417422998691077398613352925958828411102580234573597357357320578430714767239434225764565593040502938399614931866234140698981443742538167477087011507333391791461209147625698543223320901164824044159147418795050410402811023758158014550004879395231115357375002477768404949983691455738912819254774209626566676042641721292587800032581642837153751264648783919071193669977609306619168789751469439163647254091810798291356773291217989715785904693301255313870284645570721022575894309942785087825790042224635774754255281301308575204409984769672351128451598938335563949814469157070067237295332662462237336323527620492217454727853681458077703427657825351914909407329105396639586609781120839514137091067437588722908776960934949675087297267181138594933809283518399837761693764898240134755615695971012403126428255895420622181294383467651558988078498473842214777737450724931557723740875256260389988948759459171986320680468859086707318748490797281662325829196131413150575752918341459355976290538458036340760402399771514081975874614836724379888782204104870850877141906774993820628222754978240250268977018500629683599203931657119465364091417655444538295798754557565283134826022863024652250972814492119059957810899601737238716801445407804445616671759870854072005898472415755817726229033354607063411329551914538619870930989347400535282974603326987280000309174072347478927145602353095918822243139736431446318018942454198327751257970813132234860579341471995208107884584954926791722949388970798832349923733960435434581682102833149093419193639134719342230130452102329280720704328933735311792824047074292449580855183627349155681973515223458050752949316670389308358953600274897658429976042446261277734492599033541166583406907909163329490090655115475183584956546564400014900077035891681381592921330664849860059887219899011572129855120189129304347094509093825722229913249510957188105339868155030355908053131770650702390551693100996921568594923553549301143326742292380364807389568826942414752490595297151209813950684607887499820222396867803946081540993705771860550483824991197130394813478770357414530538228507884503476432126604236143463250809599871152319350525471590115942630608127655602673288801915515969921152929003821574416485111151069246811773437876565598764668306960222795363774455631650715419935203788175503449534706527811568608813481178363238580606882829086893296723763174968871502185132332105962860212303056153075240289643125219131622616023919608026221237087951450023117743650835810659235032225633081968396809403287161584266036879213749948195153873035117231741433990952550949385344295071118400982420613215811440140880949518483784563682013237451534909437644809829082870785098683510373481051872699041509451271011906265625967760998775232875598135875180564003585147625767147115458472009342385127771316661497785707735192245233384099949455743280247975195941813619903125219854772377079952300191787547013357929192709082798451414538042186517130816464839770055700046868691269599998785613883150409182611440385431133878410226374818976402817821568739080783288828985747944722339598914652303182638638981134709542005841773320488623403497214135061126902078222419086697066270731542492306573081640604097160674549388787616083884050034469807940840924326537016871856958561606102747212418805866868421622637554298034004821010594402604118403878730656786664366044354401205743779322011467784249651193515636909663593276372478108921402215746458699125048213289086719216140999468827247063365134617252107585367877257630654598699157016365230074189700581782750329853190148180719760031895228149498377061514794132310540899929493265069545972133706125785190695078534823279765815297712728775022436597672052403940447337248171839911817164937418914454220990703491015649144241524506180347949829974439493561946091392372526357079210173237770224337409862748217380313014011439948636553499188491262881087992525761270930332225134733240522626395004223106263529004484984842567108511752958035897189038761010376862303300188258352675622101213552379679424411224787188485405032591718003613440364843267550880224071413519509463412142581547523913578241611820707627625515625757986580837157790045213791200137361245997974231893242453898749927843920231955087581227285120967619951089651565449587190215022952749710728216744765798143109741070700430638444711308412461732170163021879677959690804694538532219867880056176673265113129785820731042388035441558797793096302075105793518150631800134290819368693244715073374526967044862619941648622069535271902737646926033807683146254182326880489473037130639551969663191393879571943815131929936426401488166953648621878186252432718945684100163918659605029963758595836134942650983923958550071926338018649494243161151789608163793801538589779705947595897849320848121536219494163892943008267365609778948536089427957695569491703240654431350996526995210314431045917689894557595706176764244611601447030969083590178856487164253935227345194341896218591878919967146262237140603884133092635541512927226284686860982231290389131975053493491917005352077339988321244119482508762727410571492987648827763046454041698801836534476640121083905965258586370306470317115281519756622088992697039564766541979957605757274894941429308727081131489436215154741274446206537336619803442471520084570132961470455882897234051391247501980959402427539828554067781786406739200594933850113403568154669613317845853034733826135346034027794752521230417715817865250907570510543279707411324527141999012907186537644916816958734203365722256950792772476851920140450801529362164827055061461340339678478316503933593182049671171751971355738127912369326408282881462272643950824334026614087508528113842636490660983342564814789301307775796327959737713380628307264984107901316568821514839802118849889692874892042187822811438764638148658856578834149226212943350425836030862603156273676936424175110341985485156463430365605412261525734318713495610068894364976135790443195965777723587425793599857623626665659599209728996228524088841262439599759901833168724924161991445519775278073939472764127748813115541259676864901629724279702045684918486184906752628694023982767326104993095425934361859617186850855316037836826629994368729589727609789954329431945850663516615499983729074075932390754459518866606597227301710908977496851052922546419651676255840067700730268817205273520221179986415374231788177499321169362275473710627337915921380808773722395198013405108918497074831070223687372158027675049009754676413127255562620783046872295364385875129923245183393203207120814512482730182766825466786210315190404469284301819014960832513196647881686369313959325026131170961195081456662357433442080592759382696313035434573398575239027157781462192326259568247196378626919758902437576023388606254616209133881248284999088486877287479020249741902644390410984802546097136406815068494042854771204417111662035334844772374052245673507337503388209849365269108723048172138875159030741555193119211701482593324134484115175050251716387801491282442946481563185963144793460072722272155689579959205441188271248792012391509301285645850780690563247891553507352271881038949328508193191913873400053027958112095604265694095438261523234542571651660660792158145042632525958681889520837356659478791603604030215800949536656376399004255932583350857879836738692528346332772360131602908240445695710736399983488989003483862701204357644581815499373921940936904590580300096889353793449397783197464832642836619516992540887658956933648693873899169492637453104426866641269639884368048671808127046498083011009048451218501460700589242756387657200099580222553913472820392060561111883173488954818917857438828290203690981282529667064255277633384409750862036526746562776833556065934743699114483710845168091664302554258393688722850363981755892682425783541407520582012839051108797540157733710453374394043209956058727957258756524029256026058254086417857312316122665881072117839384136195110818470356720641315235763249218907333351469586683790854183761624433773698644930609349014443590573448858518039597863027468485827308150901699088706507267706689638220814541492960683694208879674836182727558844596024113151733821483333178935892241296650953817645795482986205434760283595336765472045237062111538635131865246699330023464508859438482577823771854956163865222638761341710759456924270536610846309786230495161665687406449530077837957134186825109795816957584891507286418921382658404406424830540388103943713616672817776337330843075830036666782574048525375230446540847923643092380130770767995485164490789840357925178907133867205276975822626863353937942660736393532461915887883734431199818559080410210976951626885325815419597532475756105044862201626730870319268463703550690092743065798148106372680970952334400664080358926922688425090302429300002297701734950798562655503983321395903856296604126360575534345256380044468109236467097342897665623705712338500506329933709357428945147589494925540285913811489712036272167504472591288192220867475560461843890785932443038558240086312787192674976513556468221335197127314462833335753121326030984206527663473043028578616455797091302885228065344226472088835543681864167781157487044211380290990855117004997338476436166902803443102247965967755166840632698509841711221179946373166067110921670606297216287256073487679663843276885661354845852411767478669958236858994371469738981849963967027432622939703671833749069003112762943405712642349019105146106196820488144333886010305559647952987758246070041512993105394222069731021116317745325707861619665954121869489776106194903462362292856870441564395536040292417045527966045139837817787728415626332154535075385148934043209810449851846855000111411832872239318044567656356169179960876147960679539300523166036399400229790465921506086002263374376299495681636672452715564420664856442644273202029690713149261196436207153284797444739173802626311152479062028934736866613095748846985819591524990074438304781115104145144008700323577459551548795373734947158836913133525221875012526409790958200363974090413447126963373111143446715967648829573225432950246505305930742464842325393918201162785448456729611581928635684419654186875550202328337895095522943067449149107007461835913799987110784301626261004684563475821042171747059543921632948743727280071043937592831586011735512752760587364051163753784120102617985120731961157229668274037926841855274589970097056546074154589843566939785419086646462476646444045254281706296701407405060187837228679246051103278120686080555161296975633225152392532097305234802226906214799608075753667251828583769611098805108428230878731953535160049871749126685577788103556694775767393672737882791477787879601577674026397241495032461029127541548211213340874363039488407050201059985863534606742321723417443923070112008667722253144801435114402406099879569201375015698639608643425296407792872424683381561334247804430167159054868531600546379764451698488738689136326605076632991758419258884043661373498032246361013269130079593862797740750912722492105179552106856642324231189093773708894545098358475697627220499023869801698000741130397764690274622933611277602882947553789887832355230097141598309400179175993000523798334599649100434297391070856009925507631962983479800771901981878842988271480564335709567096355512635952325402440051153080000042279003282377443967491965186561866771459954711953554380597286230506903679912632904599075097163323836778175404262580149753234392224965701126573398979616569558675228699502262433272542173443593754218050837557239380215906918271460073021592827666290821975536041048982939415843039689757203412983554514615002022007471412676775600975245718550241182162568461777445941575546995012488677381088370164866934098951533926087549871361599935742480513400385659370683618107122534107588584767266449937156689748443803728490664163030994936119957488051461077034774973431573949258206267021957940561460328816655236021593371055244711561766807113676131525314775431819893068449525475111810033062152544938773218431546253782023702001353779667187327515386667505504227008138368248215830550269531735818375986617462303774492359438736276870558300824104473823319549782050677575677914107911610643646647566131630115088738112180862335804892380819246452000481995833643546570232131626339392576603363106460123543760560134942006004136092626423061473762509595853779644548622974804123450563397295001310393370524776216236521041739245830307015362504199382044843996998174840678375484731222877770754634920410088369430151824189172048502222733230021985750154123469669413862209894256985641643222384040499915299274951523635100035412330393100875905537445758305205332046261878194398519178407454943241083435260221347532193847383239085722578781084594822205811812866730207837794739258542585311365219917678523972582002977685307067801993764152336653775763165061210215122255064371962841403825991164226225378274535435657468708365542569269801615015464991838873968538307843941954590645708224462204037182839023178136705143093660448819942200283805885263438782902144392296325961163296186690394881696144778979576763611064290181956077473076929586422783512690721101663213749608068761880895778727908539027927317690943713412502488668827991089048949004856393195778913995412300843435033124564228658904953917651675356247434456670933114570354092249809041487456677260732895035396241664056035641389893275999455200444610799195986672832683497378788493158525091589998445262584080002482575764628282713297818508264551599880296790542235191583671485237792535679614363208578216401457568485543917091178666236246330540805162895183559433412263833131551589444293414063384528431191835377568667034489148299485147275838317153612786523457590246805603838511746112062446021425533136861184503607508294026675650096804385361159941096953799103348639581218803424685909947184372414942646423883988649626560937281237932889347257055136733119828845472870755291538837490376960307495828767053842260539472550639403202775004648598984580927331220885591172082965139243088633609969349639337507502130372149322455896975963121072058456342191321564360128369968993697651268616956369779281735425427231806213972844265962931393436175966347219925024485403533620239919692395741413483040000236249066811404606175700433853740124304966387171051473902034141697421406680911310243422758637416025563651887706557159829079228050901905702291019436938305591005824343045020228828787316179825316046470663975521659583437130373713606405848984219017570226065636292203149916983929553235039682827423455976693250369894605065875930374461058906992863711661661862214987104566661873047499238715419196749886123112334482336454340976795271169366821905879005524750086453212581540146408300887520667162973686946315899152266919837389807713652219664248568470917147307895570809791752709875782118062713043799642476162736774448971536445683462682031315287523398848367612467267202547175571845448476432506321462363933235755870248544077743231516453560203675827314469239367263090524041404574150921057772460551706096779545852748599741825643578889023375286506461842173139704035910259247125759807617812794866034398581337924281744907915015066904545539794106641342921795612620396643508978135793898292980970660313245468331821559125265211576880447676197078935621292000846104285501371480560328170338851547586679961961800139806147123754219710260091920495646208472450718860645308227692219606589710039068993201821465362498055102151544750475624494397576203837013908546530879492607850543972345023428460544322922909754555493028611489222791503712337016135077064835756563488119418339621004863761194873749834165893103528776514438033801136547645741058640660052772597672256540161217429085372159646703294997864191842885770317689412438870116813893191922384819740302959010745995588407864569835985489290398084248601741065054492290360181509766164266223832847479761644419377298410295277628123738509194479276397017166156561502276987518742568477934340415990278995608555061499531991395707478522001720519950132404788736210469456019508720813447322073779968171734286284896972012789261633661324216382570988303168449609285711624345878636737386223340360608443879138899196538051071692586271471809945968472768947291605561464709222269201089130196316936953416102750901949512378140128300958774780322884516000706369180056936498794489957336673291691430055777567395425926231665975253279615063052500054027198712488007318165105080662001762606469660823217677426505068316188349491838043339344390813930040289406017327314371626569815219942811916409425064141308836665807862432829012786081383864523923819444921792120311530576430564768236772234603299241716232340138074904161682376969835679772477331704308642943700528306289637639721738264812158378161762203778955458478434461551493552431284536932560764558049252304558340146537279116654835991010596311384710226133458844004413680575419537384941146212803545459123565074349528781190380177812435809493615553620033416231347588986537956121975434126177058002311696338537987960210625425894529522709022893563978993687490033446164822478352060521581636890942533507851914579565836142169626311136662127478689530658781787595552409060846115000328040570941545246707721067459547119479110344552030016443171766391962961609347908230833008386534034668999735600646783781479502643073660977924990135075987230430165274260857798611760223330868148924824445876338373279974369631312782816099426415094147986888525197374523726017667383193669305168630838347078594551977170011655210275184693581248372651539560436884846028711051928027557385441298087689471177938864812161205947626122444048046990361017807096979610765374479429234667109926187267196770356517357517159276810167737581787209069239452744008466038183092194954354215791575745366078766135186003260933587188629531391639751104570676561315630278415761285974255227733169236931816542324271133091933501352502806256766336368029246561649807109624383296998330103505925258721793722711620832500839683771026704233806692178868134268911980325557947428966006629154927998647652786142697610300868089038650200018960048167702980085809886463598529350133259825106593179436853947678317434709100896878341264992048692673720080130182193285859226121886628441598380449068281715091046631660486566638177079708247930401912144338198621240171192611103963181295181605424696523069216830359738156906296706584350415242408910923723621854833205117660173602514533212462498677258625391342716948117728517916422324272491190254544893170366439801007865356589372349458441559454818929937614205637789425348035255648587414830963375854360060175341588862320208248103156768195178331056292848042436498160451228682159072606177934691474195009393956585013301063825472927384915991402683355710109317743461365215593114693424649677201400404561258186544630164588959202184666432911277297134568378623366672437653476740276875268540855414732362807404800715761714639734855666391872970149877569703878620866690724344769124930410333273018905159504222067971727590402105525444537675241114370221037692194816481242987283551628268892107483303911277782438282446387634579052703074733884152020334496474672581164248186134384482332347037928109323053721980433638222009650715338112040459802884596414225806349656911329118425762639434540212976283056519838498677194643584673211387360106758000619153549112252247617511046611410892604493758186879963404842946288224340719625150366417825983912489403036384420721032031978196595848224052262366237236778899131939318388509732519417416802304574787464759885031416852964120763465151930128196927179184716065563870626903236625079562774874867548203289451507293160563024914448134260329031469944515543671562092725932279769669380605875054248865400151752503018756770142400423308611206128997668302599913072762700085542216589041550511228392819657106814551256966841019301284443074823363603578206572713866451221346353884524787273164678568019687502557413088766752226832277252839712386781946039693832282177468155644823053341851165851247280246327601082091935675762382992889174400508974646332426340787448166362307785084886530957986476845040217226132652185827026599164478771977038034327202631859509664826228407207365011457450321998863966194010884028201147595540118982401882138735514181450054898530766681381461353549102614001360239175090179831269077772172457513257311325036983109562810508308949728354357948500927158466236231465951242549533681162938340051372468900130270873536837530144764383105790521740561190410860258933469599304829310085171754943205448379265476304694094466597201479232174202980668007680059480905010345395149476287171217909867519620269778752730700748147275158021352685895144712484985589753025489472622520822133050573171610545222872642117519452638007036545669632703457948616201799999682434537857025737491301007869886376335187162225437428783172618773182643549977038744137967536755175809510249487493873612239289946136677154608965125460377135836428008163686607051451568161387587409388253101668487470145862873002347013344944605223455622614814296201594978919325313280560738157091718773704633329485559174715679254365904095121629821369929069975985109796859388040396883195956889334767492827925133513534514178987229436443255632408399943450238971563046537904673496711100435381544881176342147487824408345515728909981644138413063162082393753169318665668098032082233874250802450505181058168322456804832780394613230867516872075773993025682684912698515006497878352830749581170597823393991161530119384090537985707012584531551142664466049249646320845421289730885819612580940976400332929681386176851912229809727067838698349985373099875206472060546669277150992137273662491370284339263754213658737106244220855628007436571933389002703240514565579982680026633284771796461631357613165070136998833866159972274415779042619491980368516401986017110055086481087375605706007224746283293001861421623797824283339041407094108665543046970453120949582472541053985224446666440361403581093769730050647032278402584424665767159604311461181642122802274614398156634765652638916082388949858340526144871761299322104650562211707829825110221353568706153708149385334157374950477523249774030609343248085084193451245725539101370496399128019482664419904519684750838113034839383932613994948543465094581253329205957881553717536767898759578077857840328364496659737658567895830673145935083309097972511665637003349372125796101471287130397635561308902596307358233533795921688550937124785758228278489227942722866362667402293611574651010067621083666454597859702246312758281231714674732548052045175392183501976302121900961884757980604091843765269395585263383350565288310579727766310645359363400170453147104424989236906046975982409375586800599108724694524801057917670383485721785775087549148478697387836461336701879268176725333470914585914225828004546986546839135887550488864971972755280894394470817009464340966001339541143549844691464908606901345591187117353316548144093534608083961174600460634041068257766651802386245157239584872800649429554750058186616119126356713653267072125857956675581201457933701915600288207645299624863682938882501712983454848018348386247849361714734591767570841686766743725479276383535104955163714029125751372460244514631484572912583232013914165886261671943797792180589414471021930840904733505263450925198177132118030405434079886767955473763970507571308365116599978379582879752549562793271603454963876650399770648306813514026501149411436446665801173440068298806291410276832451246113037334312726543735894720598046918667076580838281295327902235261329195619144381513996940960532249223841268271394668936624193770970167268311623017164245245493073932271909483299798984027163402694302455176484315587274979576234578891996151469779300842594890820959666021083042529531444036738190150261718868867465417124266802875161389761381888614384203331715077012999939031847746505306379887844044618102529076990375700797842517549172339712158527962559698802208978073828596333103303243553925945841137604161921400512190195004038273033012215560996943236879681440268695500310688780433718152890706555201717844432608129216435194766609071380676390922521064324004227508942675927777228436430590998017673587609155561252933624832678471328568612976520070113362520354661582667472606009246971950299213807911148556092467353937090414015480850138126278525774842234230843387211504512743035011342129252731704200191577304358374663513485593837284346895938671702651085367112922805575011980810533460861366272068265860301016096268414425504637610853446957886606316812894747474691564756001480491967309815584488223383256975487076576624856649487145552861277330686581652136490001355565295004050686038100526656312549154763371377269814526924329037452326045329218470032908169888114801386320976905803378137883539852205758968785187550601478822458168033204470378787568769760450826929032988384812591948826203489818679749949075372356200680882842711722031683148616773513844448482198030822543256715935449696824772490458972120584878157441244141267307934314343056237085562730365071563489142575857932558970429740404439470070548999836068123141530782967609503025005979380593942935704547112976862981967693507223894203572299779371196161559133356415014239778676722408755421882260757991881725749970051341740836968751345238762826905405788585707902401146856357451935622752374066627921394909218188623281867484761300042199596289163461250300126798537220391321434412363577250176249735764719565915859566703237988770295032712009863890332815885966031867415466089145663439676604605880895811750828841195867723992092067293783879195011689931306763706994103365918386402767206623087735933996345500224011792434209927762502387245475109701252642950458263455003845463834255949416055291299257126228796449033467615535238058952748926393456696131732926152536475237627940486463798962511541463502936811836106926299566802225550257255288235443569148420809797157977102160292052195099670686221365472004157264148863433574830571515955525593503349783535714616325872715135025552731385231392366266007933078451564014124669503299049008159364428166982828957671870466260118788531658022364772351136967134326532842718543007176261479384778153885574469019462903543935388745176370176856419736701411047219288264978556116358693657898718154852236428002905447686742254759373027572153490704735092828820936745587305796139800307736734729090287820173639358594611431397023545314784848645236898518320346131055867238780129811217246589260494912480709964155937560548499701174660659794306031673304397387380189997001920419623074985886848312697856979349390556271382592796126345722457338990252636699717052798602692291016751325840616293249598792226638765572155499996716757776556858023087490062185774941211165341672783440169266016820560961458562106409633435830963860030930023450257435046774466687526903137482970499295062847427022964130203078370717822155687969993301070171351310801823562623620508076787801231779374532077825698905938335588560802630300152670257168325269235504825887089384585814976394359472215339273124777395735310405697131410191847858331595529409591449995534323232986992500454450668610086095394260840808581031630086155177396624265496457226829998440663169048124254560056960566565616355489366119899004945779188432036010829231578276076124515555355921260684085632794231466613657973192882605059865461924729674877459484604172083791015811405863781027790357405300593586469271977995711283472514884577773098839007735881356484270340478157669178246774272541190816879352604513608776541012809741637810386322499647356153741485771418645449359892865570481953867537608416308224625561225424108012418786296158889920380148549243868070887410981222625400305747645304854303341546429183030386489392811541828080801467077632624877086398815659284113953763769193390189423113947048912413046766827949900693715308781099367855782605606484251365607528949662314911391349856974511728059775366133146035465415098741551552278012399691777565516959212235177651756803974601019485904645282522494064589547767289446172234195417579718646280398416856145324810629442869047981923462857168463748060965818326412341024922318133594327568448070704059557397257638280283413515030231200986514961951826420377688844002956660432521732102387462406666097532553746447706946054213479031289680587064522365302964022580053232171761391536339079927045615457496908958219032515299114154886082196354540580734111607146952233876384574722924062532607162710604236835777399243795551254533879717617040694319379167967665186462532279729412292731961089175538146393154672889496136727251336947808891992106758310499614202768338466139742146907252485036975111235975181567320318319199576097747468448475705549313333569023920049908205562058925879173713152261098851492542940718210393823186771504813947606842604424603034830199961555876686780411834122046390667553685296281105958108875433459061991937298584371032208975699387140435809672115995276742891673932562546752812154751991970724561256194156569619584208597322008430711333480131536696692910634488769282503559331948993705947197477824096586957706541881816520498864146276466925789002684843531215339855871411771325378104088082635617786916650467833533955403807084424902197501810200868982485911279195229699609158240393420160840468350170180663857039847361263745347202325017887272823761555215850087254534865994001147535544196202819305126121796526266285785724014210315868051670018478403917197011362290426315075350465000524404841591659206981651094640018960738292167275645583972502147353923551044713492533620832690533193391627660435789600990805939204563018786884785968811392231296557290802738310405362880037444811446563375413571307949374038807141004586944109536516836198993089948592312326078058715698357734220653393444941095245657816155106271106282913042472052197374749604125429319092995026446573294491746064860006724777772518831579551303277635709934251416923973107564987222191458587740528331629525141146984824210768197218762221767649443416921387042659102744115453213192970897213569415650504570977304178272978329573261953079138433068356768784748362520323117441743544785988132142638489605661178331772090908999382309787870936936649485045895832259306078856668908220343760118281635600535409456112723756412886971325208585493251992709916603168465854198583693106673345072837908082405204764758339218411196583240711262651856549121322910678442712154175946848703961589138112440595276077571892357453742838774627933435150845012967818102688873577634377593705383968227969683512476819952759254837950582716304903184247804090998826018762609758519947560571871770705298280534075321400805470810666918709120612202286671877914196029600223939683629966445418104657748150272190280755353870657336532278141820571934880311501918521176195749152642202291625162212042021630801218344187244774588877714714555165923307706052758061793682867206454659978080130063696807992438289302989518022736412307253237166586042999191033174666787590097915928852415687755839829172916156866165869970614050031362023283154229804845549331529923267507332584927923413700699884138324403446617118180099845101001533342684449646647344291214370928011829960441142918554928733397343452485623086699013448026360184105804789450220799409924867287659884152705792837109290253077884896131276057173333066552183269622933001301659980626018971980421278304170122619720706576761754787004947157175716938239100758698701698785176215885624770279083666902561311824067343301329590943860367390612255904707257806783195043802466314070558786207988640783221399660600372242982619437777692717123446932761751496064101754809308047314161406836593339262617797265624170036152083103500884925321659087548265399724034122582377899130045381549958255214256509379279029939820810361741173554271550242604459837195991246988013994691580123171570770534881822066455477132867207020324204781208748601259022475261755002268568841417849320156630300785022391312255627757767265877254850421475116674392196386897803734644808294912598673992160486474981717641167644156122739583314617160919837865092303538782301219905614177104156270747259283394751336379803092179190445732472020180938711641781169328161319668796941173547222490449867973221251484343767827829393644439879351574545153399052581829700122809422745291136493515745912684369215131926410958923423586433939823671539247019624485177782074874886721112688625091960483841317601598469203373302322866272282721296827084891580549840043353060965528672312098040780827280677532100278884511118909865876808121151573156463975998052484286031721175957505866747074766896594002382849621309809723502577162772187237375881403780237658088497566400206983968884865115536116158282855973594070883413849895304736886543488979829440600219322007842667021501339803067275200337733159474598864093932068332705295138626618675430373176192186590688314935865092279886718855170674661143994017081824767438342422658205564191433419585776753992693783580765322341170722797796779801038252624557617605440872790474851385368376391141347947495456345108731999909466674624309135673615521356950562562397765534288611637699395115454076505374582941303009545213387472655654540057898789750795348303838617686301047206843948075251745365493719696362724013311415293388564091043381034800959765943438497292055850222206216461358258710824074696873874993605701552271925915505579566550624758184101369748522320948349014129060103420863720746344921684521051180332886462944371142491680678664999531006008170103912647172229849090731286448836109257021728778184850635306952806617961160551801846688743648662121583502823730368314028028256677330102427334262296284366406292326752962415648053120757374498952204125141795605725127343230599635637010365600792708684978561600117621565293645168286457053036538005847422444385410172225297462337785336842295801290266287737815246767266492224817463427153375142628679176423753785422521172585221903164837387385227101545992948200916913959737775956882500295219927274589742146346251418264375346306610959027890067335629297766398743802155569249294780778213652389098716013599599752379913166235579319298188136444233577806629988954460129712998234890644278120398066187925202650147385315593533499809304753427976333904374894731242606069887049924207940018772156743759983139412938223524542402874460708703628964326194983069347792787222363400886532624341263226262721051560626042898282893648973921461079853854791670712882613342189628847129295261875479697152382904627894464075525918434153779955351423778449254478711186843760431115793795528179432315174264669901390116169282271014288833395382597797747290837294790721389590604199551792306358871542355473995127592355196649684268214645248860519416915139282384856152052698262835874832003737613263012444699320880849877168039164868043473330107674179938241063854238480689580861102944909162618246553862071553470134793949794471858344661627513078848720188564309666554055671464147266701377916251997423380160048597015394878230904888111170261646184556604654283800246904799400790536114245079307999045016092533958683163330302260332532142208304114620213487835645667557371366116203347822011434200908288561858435434727318685017479770208017857372222445746861409840595133009783306913074636234606141059354305593150046329565947846476086948281149128101279319203250769501438531785746967850393567917037166080577519235271856582516531060910590736612670785618581901582112244165435110967500119927907804092695773950440066313075905917403670589552207342436009362878033465384390147829967821983024905091178470343216977848005371581822706957315910694180873594245760235693011175873209907945427527660136839584790507227378118882562166853873507427802433982918712899802195486791688782752723271872481428282403919162884225968872225049238688652503944030506135636802133946199981890715871146473388385713164262780211772671132628485643862667202743241317396527382416815716199736648696383075617055454238758683937639593130019896722089473238236522013427695885010330169321516075032242251125992677434832892263122198313252940910236511342170967872212560012113924716329365460996770933032309569604522706890867171988052276134299450163029120122285766996645699204807275034240799238649860592437346353441920330435415207954341573058578898921177450299343519057196757747968458774649151797347021685254776208114668972540340474691612989481958318378380362904138014324647737239767214495863659564641932053772557983267002508573480304692416793180627825531762370714464252265749675375860353506650888745257168977280302542561314134089959012784347841052007544935765444172653025961577966249797768764456275509221384433093145995302264206512671419887160828576900156901240281914698511856542148271532464534197214255237918225201052865095607158962541914413375762161975397048346195442593337911372813253960627168046127378274494726488141909354047674225978029841375668230875592594728858995251985591855556683238357353371603838562510539382160733473344347250731249925440105979177706240773280513268970328576694344552167589620462411687784815715875451063154652818184581223855849554992121020164219396635631593274629781369170410930153429444957782873575888472060383014033340526594962102275492069965547564165424183134597603064684571749308582505908994574042640170840361515723214427388472701860241275504154968000278236018931465218980557789044739796845224240477822202945117928625740646424365227571490907157741719705360673737480202702062923771892507880860215204147326024722794793337571649031905704974718404315136699772100543851463340180059398445586358210908803799970126954810384666791980982983840903827368631278683158582444871452753130628905018601250306714567294306302529649787267564442160515463096100840881845532304386783354723589485344143662512873857262928898594544554967542395263779764323747093310280187738249248945998584451978114386753839664703486878835028411120452187682881133312751090233334839815106076207067695835367262638767544591138436561204032570306846556924903070301487700745693324401923570865732629505651929478362285069904955289419886762203582681036248337210482964100627697058791696001602198299055756391562332309004163710248300745946585742012482582321249723444108608103383585657973617499262237402069706941469832820631182044545005201837419235880664690680038792543201664166085269638984050119190928636961054851663048132652429289032248142693154707288663613393507098734235343869442228533804467175575790898060688339432808819771099632171182935640378468661616859314207100891942010161091811083480211935429571932998562391683171244824835600944838321679421441914754095559071295594798805879136181246651670216913803020242488542408293638989587009845219513477197769614706190745783439463686014814628763545425336259683933796063352261579148769912584505498474083885089404433186969220663268299800285545795698076699788260299934692472246848614723798743385514928572331971682790675256800388754840088247586980058547705803219977934240018158514620488653191445207622568530773212738886406667039973354038157612671607937621981368342806628958746276895686632631807355749161337157066158947301606766790963564943438251652679911921513477737758346374916407420271152644823426609486562526405602092789876362915354143362754511395907267037195469476560739536543108622577509590085654620615063717141678652587854914431680448737709722143678566985986861360431830160715755611517537818439926407486677691316497613758612740700579877422557109850699747960445336079271250820052361374403077264616731043905233195820149938598524008494117652351351800374513738228924541451374111331473426764116263840163555840115680079319898469126779986372204129766930426589967785441721258425999617257865076680431707453635730336752727790288379625565328073087374114235260374567528215116990561350821562557068831084126911299624590799005561348051683277073347109128871172823372172545482154366386088895717105032790401661731845042381460614250432800114300829936663649627743053462114085098660887285116291714996930177307356979435122394510123893052095860025048419660711780935260565979601971594490824330436736671256315590686479204560277644238395942159037838587827349445590252673175989762465825127169503695283145604068625043202486080244909793965733163752056625003176319885749979216092987367764817405543100850467387291690576206425488673368918071697690673282880105393168625691497466295509267809005170437344903930781445516488685293563226613991469386202792884060158495966402600846513878374434562447972360288563264230344712353379653748451902065834483639384633228024273346787757582715518770529660429244243015716351280925658571120690938913427572299362893062605876550604995169432735221067074647145101613170514871037935716943489466562549466231057213877489172635846567036815998689792376693804329418220126998955252964784501203342329905263312111992561316166480796274034708890603121306635499549940929861612867821243764352638157248104789874138299295360276458170157624536543531583250527122982775086348920864865602532605077960136838233046228311807009723566903440680616992915287413918267558636923538536938254438597109828417711148154216382589616328891641655147377373633975953962414197774000209895236665371762995037838012505029661706108258383786150648757867987589995927518863869621909042661243074709551295150867648817665134924411740733558676276357312427204554620335976727437624667284029442401700761539830267954056865938798761154375444613032770920309068972802284262799062491486099458296574301385152461592228236799738894912878050287973174940002417785649164544025171437856317654664177120999245459320793318403874543173877980587625395673149574066548605777494792489518344280152571154064295985381268661522404322343454904869262614585971694845595406625653819156472419004816710028906281607185231638731944393560232869415175520619273384722215472299609427490642558280549960583277569855412138195260375863635841651790597064824236861314964036347808045484251939975803585536630773970462881813971237866982571733873002655622912661200994199686589973642962706072702823423512048843002933175796444489137923585832400567082274652104183105132037314787519720757578497492708714758739743355993777668300565984247156657281595514910321260178007348582627288994524292892000126421940980866654041216632698714700883980695367134492913670402313988409571902848566201003479077526493820833340098942473139818586595614591498173723788681591275749585240581273268344094326601321463134358998093523248846797054136709063900445225296336879730053959369791487107481240770136450106868217164512975951340777672430077442194707870769053525529397945741491285197362194959313808773492176391260657133458284457701283447185865746269488659995697871496472240809149881581086165473363374808226024203163318884470551332984254322053425461021867509276896677129814921081800745828445882236928869571969128281588880266017303045260600116919557455369903936223581331815034409210607603833304613958573206786074681667969460793151493601188605802153254836627222195328301492222966230429442239545716209871724423416867879404747874984736992510853935850221162993993331054525904117537797425580721977457256773297799600311685873694776562887189787064269657277417978461569706788037508994343034268875216275090243846489077335678803355380081930481281548066492343528505226106516233977817125890656631099910724679513257582157074281926166928689126519498914157013067219346822208579303908172383244832574738714186665122977597051012903687528673485039463697118910917362506060339609612451416808896612104501828222935869397848303993536531806486686292327542781475184894123452563549997992398098911169818718888475321162349079224446876266010601396224476407960276700780134312889157200431525682597887293316277543447875834002988343860132945270991780383722003645523860568699300479653246240041037602634890187713115831818689728042598163158649769298917606055965519649421334231286579456964671978438731294222190018053701471241076512227706084770024016276279713530511592934218560586870582138993709942833814442898562073759581427123131222811658528873327699427896750328488509157594413237157493653381259724157454867294716860404018717169575326910020540161984114387707171947034503016560263634818441402116546024476333166033842995976256416253902603895485494309556981787754243774087704177695652816389290054945635993168148449070224381031694767936227210177997996517544460180885660886840647317054490910045634654342643873881752662820918783074692514164401115826856899781299652473396431321584005509937648681572208984499006940286288242498393968643123257511554451779130556414090238074101885622834796829239759685258189815093534760858467996940957802253893513634832959716811652453967541574077633643759793801942154940857554331200743777450541850420991663867715607372386144901792156996527044432948821766838468804097393183381056939734297800674751736366198496401138502957690977175042018224104015568220968100479902813252463638557039138801899179381411138524827107544679188152053779331370438210993124772394109021709386948460378198290582755670565811728157664781087926969818981841365380104042877553204580074774595518007827174158416568987576405487436810856075356894576714140466083935923373505589531490633365794629986464708633206541391790187270628260047777703376556430488361078302616269541973936676628126596053539502338238679427943652640570116792853453968288785800707692283336239853209125311132817958023644379834703576036886241191958170740568929847255908990420843605611385726787869780919845498265794219366578620458494553402330126091238855577560863952171068493763007855289293759342983185027048787833918576596098969557151959858025898817658890241039236881289289081627343456132261600823371102366161909595501615439144575154355183122920206748234705251637011867759136147966286196947512529220927907053890279376105139278838956812675038938734584557447807296100921216703905670248748957294644800943047903383233933091909346416579544009491482534818461881943180251779815644862116888042160951553051349894938838818651766080103510528119507793027582215113045631779593378472918987928470090545042061499979973985128128692291617444053712042996716843944108156476896997135534863069865543565706710168648587594423852343949130187384718159801182543035349635709837981795684008630534570081417827369207367669018464453579984971167359171187781247875007195662705249218614469554544496517044451668246138235065542350862183636557178361757395952232273467590175612438019355431904368439389498795526119189397252645711738657039275406496975869621020639553445876228217253078328424882972352391371495595130200736237829470005837614905290741284233229410197021903857890363323577078722499616441767726802870238152997410756015027961616317041081782647152358368201606288695313114195856780960424615396563374711328136228802043027443643276301993651481692574201094182822975109574240382753679977237956682444295791839968624707289305993562954749945980634341953353417414165764204951006260990850058273549889528563848613996344583273140702546980585307326906984853822415779989558923484771508475559891038746317148032415881713577087781524314520237100048748062449895758757559810196840055153854774353899230038455459397633666866245745950697302131437002175768755997672492792009967607645089526388219391675577161370686304454971221379906579043714379935259220540007447101280689399633379321061616308413176882330439291042551541922832530693627219867845808843905389424410044683367150546712419969395412701164423561742217909584002172624443990622072133643554125318609461482543146448449358145470261127654520884201181443309989324902825332890125378723235242127796599982892489656478605810079236538497545747259591857406309543511960322812259165030960296254839377553458044450375402571343694755382978152367296172245542561943332769759976018420005365128945158613765276797969010276440886388339746014712918745557823370826177580564955664633153748118070189465598046978557340685878065959648003921881568365022258176659937247236070890424350723265839326902661090649578238755013339579723024904141991321966620734173980926489405209193392433472944510439359088397086708622460425446399433109506639099202016204222900483389625170382935742554762982440121246056085628791497240263707719621180620720752170040315829852348827768064958231494465009855410863759286896267755656480116603505234510169460517037239302204927540828257160300190174969735521640179852600010269786574522597210513611001582344956741278230894497963335803478306024022414501631149486743024081679182608793592998023485190742681351135736670000458070771671233674070072307422209134922504444562798082243886671519804487421826195664413598171417835307927292921700015663128147194476950142053294641079489706534262072459840023609974109760135657120051140331930392966545581632595300455445092344217655079608354526101572690081166025628968722512847538307008637612202808812957306247229069934850161100902264890213206037494260813740532003730175646098888387101465733073712173043597047185886703997043223066677461297468016011550518776252075048313498916828729384663749787632903576487798052975236887315210611251002885836259851331316673254266084247438536361339734052836037707333829141156963408530578425784376339150326630352315636918030586758781794041523436064683581310069420492777085851627947453063781693670763893793156958631481847829516919793838941414434268439222619237514851931583468823631436301344141997922583906542988544070608325886543286834764708454450444448202292138407301156265804291295399070616564273213020449928631688872386998017061190923125618054517031084485418040621146546166634262343386244291752099609707155900516077031705684409849449805816572193120780735494842620160055498099454148517768520758707786552110427836828150403867877166074147799239396284423154139303612697932871231693740079406127242293626974837475376651251272112334629248183843285523095880310670393466685058651579176692230338633307547951093719465355307877363046374916931288789558219006927668400234802712257809883965258297169498941517298814583576790770707913001973212964746167187325084387768107473341817313649691635281115030413301755042921386026556684418333600587143742663068955803308881500641356595687048722204923825803907692172931061998979024145173349933574638621234224213728075733154446087591416002020901784452034879792983220753266433971302948434578081381670257446315321165541608770447773931198438517251106268232639820740559642260284895459840026657694820954063525015285606231813768739650567233453373095096891647606269217706681320560885193909852418706183848194799660918772009919840429209791219828441669040604924677465220909716095097408229757212536126434560013716109466518074205214360047915460676827856073884069559577053210015669997007730582220631049683639046777460418616174335614694060284147800466680626225862911133001000902530385863479007726543143443919545523427274349147439042988844177451982581743737338047330819995908009499486445944812133653231639102701013586367218412362032888926747593145284846144304927320808654225463944937841843795390880626069152317789096483654011555895188331424169852478078635160605673561685351877545297475632528736298220129536256908756829339985658516604624410038371390389370674472655326844733038806392289905576548358121679571501623872759277563541448793050501876394895494338209793936639897731681863264243360449028746907864517727024215278044940902510747224241619342700239551499654371565537388167021691525394769546229487034826967245169032290275746301086783673716952252241684042856757688356008534560894636158043216679781633798048802054269715470953325258656467664646773700470038160770588214665057523864547718635286712031656936145486402427929810629232624625152638015454178943279600024864120972525896165783893506765837407879453488648017010078001222729527497218511284718554891682735216390027497021523432469329786381297722670803478712407221335455428782347701753049858225786456696685831828709456258702573559009666483657511029027366234800181739139058329822649325117328491727877591947597773316759833943501494469318823505710440027756614514698603273190961709173076010547361825443957367600338397066977696886402268544734030088041149682165057750018635288157650297314866917224145884590396452442407256111814094637190076995699207725915638525455586671962859777913025188368470217740952430167581394094015246354289280885840149400285230557690120334942950449811774067113962091609790962213691429826499965537273128193119703872198855443955287713727249368775949247822530166781355817947223558235067324103847403194539077903801793022872480930443133941769428792272652564001853587215280124200319027487551829448401724681561861274109229682453569236022192153311621236844521055377283185838306957760714455989516049234897828729694338908703755462658935825538329124937043995440858887921820107638493294549181402111408938302668140972780713471738897645206526251817096672232440668970803848058843139685593046696137052789388479763377948067104190975937145682378378840721121303091110637914958052441280222208844890114149005574719846480975977186860218047190719849844327722743371576113192031689654743933478606265056163921271276060169205093839740350850634585507943316988732177486998784153075284441519595965859644647012395211880156864578086223475639297503164817019703914811918892108197063196277684646853764241863093907053914438188508834390751038984144841681850459918427422179857860124284892232190893114398386363154164442202690402551071867797680992557148257393285190779645909912651024221961364078941659295547530507952653514471671196855653866683552299952162593014426999426132392447128696408153815522212601177485524636268551894037885107857964230291497880621603175467798926121989332772518604115746393863906921739135248193170411037130536321710102419736434292220291152702282646704637243126233060306348721243030217728188518689955605316425335019605066687611633753390609859103659915712994527048716507259947822722587133955471931182991312274551331538053908282019944687815849382049050372363048590906564868011984175842620389896437941708997108032527546273945418267128154246444095167563398986724012011779833752772202432838320183643502320685375025790044727518994069033386193066643426637827266740276012797487060928248456573146781480561771990620773974692257997702915143322080811926433993005479249722834770773950560142569810908881913339970621290401423021229530205212107689552621699513392197483936107984180288843918477108346645817131983806034207305276201457190054957403247849310365765538812055638969807888873366078911494235527820757513295242449164827727976015383399767633825894677613020627367988945300615006985092359826606361078652343823242905556120048087271646078992332724084467144311449545296751214108822069684412351149904480974827160074299094479266152446968560651587367927672903004336913044457297968301064216859332728595986359474528735969137678006293370475888056730100373863264009604108979011438694642610358463819237970537314111115090787414818040346419705770976602388647906264296942509985277100409356633410249706731285003695733467397500807268150481365536415365459430306005162204093731372297623127987816132405417256299080334171359252862598595113638261711041382398464016602978137936939782287374476788313491021206258104812250685229007665966752972355121079491099719529815395465777070359255856138431158249004534623794811025467423272549672833245005429109340105017980203069780260027119214534693406965996248556247107670464073381983517365453753514144903327927319872838790839819878152366157365117747592790877577743819155418850415021542760233141877601730243690560639643037098616323160409599987308151414929800451935583860460383923561966877240702780674235745348029436861185896146266272100787917690203947540494527480295627601052881195878145866355100875560575732736709900928329072625650209757068823069530660634724105182911829036827051548895760803383896927575852329318330382641338227988221364977858226969354690453461079029629250810751906501199827862199177364799295990168018964346725085639261171485636060298923753082205082913109349334357072599286865882850355521647090970767095155481520910506564229322660803179662873220766288990365037771347591512395081700169850639644543881611509274243097042815944755189658252218719814083503569154028104401912728237711367386038279718750863353015580443546678052486076612861167132742324813517299952774058999498134962114310754768290754376911590386802195223811676244273499092067331020746138357556761015748793079065765445799968699147400211036071675564637259541594785648538674251110311188205393860087085311643774093517352982859914342344078229012967698637392537549501824388148282981865493618629738970567012160617964450462095596782706602361548253773701416785283113910788177963111536678649207962202632220870448832672993733058624868777264327565202418567650545685076820172713474561719886976623273245867158374852049988700675134802589373602009112682037779624163907524627104185561977569603202725502788035838710632444137867844023442535640981234521682527090176489595610093470473983358115738305329256104420824692345421205600333477281317843970318640579263683645053683755619741363313895151239863826213164873068848341405430481682981493108851252085546311270282552967792217162309265477559221535819839251774322134091857296576926610031395823416325209752498397528871200400915936759268798430472905445751085963989323094077950698111236226090733286714159809063562651247522475269755556332903122098956559408026175091909713597425811740846363705748904821948686955739849276336924381744018855707123078523679963432521386901623853453238078465109183994468515798540310275780939290388089857299163921955251664607526951536286044156132145869198658707909158027951059299736777392187033079421796929890757817909904537058772068225475499256397055417495751843964135947264668217824522184535550294961327144134791507274867523546687433299747224893328206119557405395626393450753841513953499960556585714789258623215152507915230094812548335486557171626719152008188378889136005663168508704213559288553028167228678520240304974293890937993503267323656713600254201981492181447293761013719854039704294418998653962923504555408350047109054448419057330784708027189249830749065843101752575080838705360720777005690726883454232793068462716609275904278584959370192098596500832853593566589565311748276514803860035580140751031902309252107227335530764058563945293684609017764677289751354706644971535662359324094679991596721016456470440033155563429116226350816562376209596082636180845083528347634828510866173045316893756271590045449610601528534940138741184548615020814076848445423968409029670750850675297853294605390109159935454717210623637122624217857870135238004288085111713652452196630617962454427166027855958691580626886631930949880304112264831863791695135049742557698227076422189034727400514172279467068443894405327489543304068436646585499562315475811689254349522937316532887343667111889903439388749569577762255348857333872466363607291671555675071564607906839891110230625222943377341585703398282327366968823535595157690971089707338696092766556596862072327700012385141100508298239107335788373939463647638942091149790198191779672922429986983759755877533267819005122237394820172869071767585341312095337750462297023276652345424191111717192297733231063379994671308479949675459420712133594810428681639414914238524195138777287034642603313341847356747309090453547451811277243515679463851423205719621510960714787974220680328680162060672589314162637990933162877695862922275831938805127497206199032466348949739759722605494097714138886311763297120253134098114843048800566782828998409315496482138393628105249224710113428838848515712726303991155262344401721178168842017758198677599463356079818621558515831781796097033397057402114112362887227743024832253339914855730422683420509695202629231919816050266085582166104328733936772046717975146163292937683856219059950377576242663376586367643790379965170746658354081169660331127959943877388999569444829835922024089302709265451211096418113340293403470417729853200602552000928770761615452806537101191380921864465067441349442352984083982222684295295087145647981392528934319141380088480061705224639933357976941703421014548993199206987157808650089278430260784985140194518532808218361861098684439025064980157720339193031724744131631491158752540397411729413400016694252123602720844710584506360157792087748829541133667862038501404574598929572057543901882158107849686779760680963080397314496664786906968458797401716055591766578545955157722067571375245827294750731441111210904752393307272744274451507242542002824055361969918096718253776282241786791263070129703704456990813024934811767019027375837303390864350141778286154819200418883712523317058334694359681287087706147227574438205820838497736882551368579359262656842607678695635692161939806994238238074212377580257619867399183220161256973450026393385901886692225244408579977080569146023868305143463047155002171657691701775257539134799281656867869263575179631174488788549984882897996598511524241929752888911151850194156992914453151598571590238088714770638072741661222235913618889673808045485907956116023543352400069421981357326991535091850895503308457550367924887680734987606947531671581467414750916615748920284959901480118397742204456232506960440921118461678735885127243955759642593685193849921509452757262902874997356080461357342767022241043911141678446344676738537554927909384412922162116579685822385852653648129697607015961655775694499348833476337180556993085770319018119433555917021859055104098517050390966341171391440829577715978712746019980142139431291981733148241511650210246499580271881688152521225069766275246676847056902581083859498549828764958993527219645812507784236385081532912104544507471974626590027297151606094087901218875418647820456680419042269398198780704598632078956297881991549821755505676008284612203354692275622065129348571431792021691293653533123350196696152439414719617086538402246285402165995387081986112614268310362621276833184484107310938618829292861679807398679732783673754091278451148296840329220093732389661104457941347013878067327044572296997829029088700217045471249084748178833195842266988424206315465389285795223651326787751331862573508465068547785240192747088900552433877681354180876872434389870942644124634604384171303105162801603433636617158847114058291420240362619968299334514420099120339859029615913581266214578065895342210928352992409979617211662535971651157870640977677470293268177273445732259207666681180799036215456246246469148819407681178239925381735298476776943848086980260427602894554223547944122347206746676146883306069653554069336445332012320303811926359026959091859496984476214271901347046497863180431612701014280702416288023255755739886922198567216159350151818221142677893863435983430615303776951831436010610726777980730255344816521994308555326580097156938226799130613558136505827934281307445378008345641166876239262337241870700097505748048645078530304635545147321559759446989145386470264730392425036058097604922654242323114227961207317953650095278385130740308451943523005697819550701359115039349444657499290406576373574815688794970977824305766590362238453795349057746765597142659046448440044402856685841665682619741840740840614920025435526326813790110841040017907763067546056108984973583976577285979157087405034275427904545583821888852220372745671544816194709195663610356761609762583965513815939593258645491062140335106582803742687574799769798272263830670574068248951764251098274054485888755191106230816999959784293403062803913451880132346262944751394967048520278249164404281663681435303471101140794681381721945417960949016574238200639381019737506564696366951132698267015049292876570824537111736475037033227476887592268882995360418193808231086013352143053049689656125025532070609747813743637705395912669180436152512237520321334290938320594711436299534830819992808456417416448267497633781936234806711427133524274311350982665449788321834471033119270684957831312979186805891882420800822440917639955093050860905456496048280987023461582367209284633853357439743442073769451336320096173296793095641333375721602886775635271885099362664326590012527794950678681337385396617309477804870838305758994139436505188241124481566634803777019610322052069518451031165661124893604512561665289483751274261673529052114976965472346062240755312942499508229799469951129403433405555357609804414314282056604557558078131423101136447465574670184466718961219425198880117919423515743033829987973637356512651724111910407382363151566277447596034733510732265639243525868432788573458118983725238046737826620114290942497540239394354966117313625809480637489063181705458944908689239499610881699402605875419037185284242634110872367064882058743562454608973834337306288342755245945864278678156472294957556264722299057370850327581156682658224952831309599899718522393244057235422749972669154674421500282474677189127287669786291188677778999147864738652824140188568488340490519362605275286829590768369527079222984090196137365539811807244847553573839585680506471534901302322880378339961148727835791221629515099637590141923535197237651689239832581674843518004583581024115788365494101822816187681424299956413487186337555351547064764776393866321284322278288798596243145675991219164758022706485558135000741173276379117717890944894579450701047641370632158031286928722887963662415752186845139776712133589894335592403487895635512287636522513986882722257235469105075862821262596858542314965420190337350991484557332205686591587248742533778886371567901694820000575413175627583065928723089417978165722917873486556613884018703260233332417532597220876353523297263925714840367963834139992747704142097404714038748114988951630523822345517568766018883122035662038575469580760555644581593343512110619581849663019877661225507256094599073152990588219970473009549018430281767336611427726228481309617901381242207762677083512857909530597690519522350012373887249071015105463257369107770926401033624019840773015773925118370479265579728920793199268706044151731675384537731974423781495283696561857268007052725250554231651236111342665124133721502052838157548857454892652736838860090494680075606271617154207248695096140539358397440423938357674268409623997688980559409596164531424954940743805207022403733938176125081490130396943389745842016974812638929045377504164946927289408880918930735723843575975289269022386424718644810399833820672986929624111269890548734642761702273379846396032578642886585519311196903609630651945222711021233298669489829173567185060263669096219476646509756445998078428378897675380686677316785474149280940506714998590917363034546544424398673946509561247419402082756242237341058499567090946268321790824755729293221870347753168883883014341240889571161630608246114717684390239758431406627944154053723128306013224647166950023672445567064000053753199508618492293677746733245625347868705402920974047530585382910428141214461243943905583885018710798261393987146613593393400316399118210999233622809744191027190654762025597651508776435033020749429035851030592042222201928616631653287058696172134497580247500434204753514397247135690629053674106542395062021064083140139501646996333347158733535533299481732602708602925290466270860327364559051340151416972543332509469263572321009098316056595152914129466786426555593866974607061089007755010430978126022723741663213723192123231755242058024853323837459665014579617913987756863118583475287005736111685946199649364910585474007589723610279040768179137907984268183474019326811399033648163388043239007208844889365243273779452298808818988989413267523042917799481981997534037664315725090858953539873303159508397935753906354838214823267972396024973794635587756750197948214167670737723157910951485764331566237156079652921656598904754747029302932637722776782038431028091428988161547375377476347204409207994275329143013496661245239494439248194098668939802347213309500697021592013139537335043627689786934197025547885136443743598214651265237547360686678816998507469831554257367573136039354485333694956977262570423962383310999670771940681933857488131834221927202787250173939018971469722748803789738321373702586944154199173957131423891199934838905246841792711900408407979415211527661460510323678954089610800128016359127878960489166202073570630882845061270245121763113541843913142405318644181856274397609507905305622129745268654408467974675702407384704482584049942974755673892977670830951146608589367954468508039352167086754651403586685275233541542815138032597776220509240703055342282149213090878548820165855950199056686875946241525006727344942145369273852095857459144190210848149525470881605978366914568879471303196141432235299823045375394321090463165426609003772394865768942826933220667126990543835246841349880351835184374528735802016346633807265949697347488086232588686822937568096169318871586917407636543845878901216916218714273495877609902522105038663237761451994414523489799960378567751876172099441059366917886078335603663931215408813848557644943040721763161100883534691539275189849242573650289837454563987683788824054093864599152091560892706132980635012048923912422895720338242321766108725031947408907006195340513167952302863650881935012175604204074158560821460078471935831446270816947497360153789454042655295411307646388501014038901733217905558993390547423689188831724702620631320125611567965866443173732716222425734453215993497759634285927243415911579461493411674155509505620833317602486726993641721027014590203722451266401991709539874291541804084227974279572591138551916192332466324263778494904867716521654138655731922614430181531216955348081600487441019979060669048363215102443751803858540615331861826862674555078474849595353811236834856906808050821287162226992939338985248175055477125042388196465676684810354022380319830417616339011601640534574678310944739486479203098340513431844678570063478779108087066946761911186991610653737080589876905075162888809879383254493316296000133330104080222355694931946674438688454691863892810628685878657350448154909469583279136652337873699474477176979910102090558391690791330623218199473206648348888771899652884550863011758390714702040632594329494555711374960216147524551685003114121916030126871799688295570747624913043055870455457342525910353582426144772122509454224021848967163947493321665559042078014415220767075267263748262882543832836040467441630080196193584367964830563506600146294407400248717660157434457566080170864703695587568285119593843697060707899007380502740879799136977480977967606543709599267490893632111206964196010589002222688348000074495684031658421022605328855349164232976509424549573453546429232751902155303883601682740936344447325878950550062899501110694465799750311329728147347964395635127416042816854286100853502864660395914972028366815962712450473968450023201946634564605435577895272653946881574976599115103517857715766160654734877219209545652839325202011202089190678719290502032649771008058823202217772073056533334574666281974622706941096530959710589568798555671434602254004327957416706782449642340724264098108186323734037744274026965815667638517375103772718568206049682568687668190528619069225018111432094112793168980933838031529671887263637353804791506583224039224120122598343441756405642856710375755665553747575597862318207315030459049758953895166568051629640393579114085501922999325865375065175774907504478795058065316425929552008505798596487937970505184531928138232333923831041430549743996680923664944679193475055671910181180331434027531558833262846046720075676553624977166468910496720304185078476994201820985183144266972986587322109031234792370553824380247960076709447323962821813969325709199014860921724261495097977190250502342026890314313889990573413611715739482502772433624217029227612771443928661884921816235135785945805350124591207321847013789902776449900442565494377989204074326572447540859857203736402031691877037241386656310238622132316067234751108178452302661545526851858970545261674548519999404746464693392108427620846657098398332564097484583733521395674661088558479492809299884685760712048876589916196453144911581728484252282628975473234082889816920042326055763574201596063343433955634196135653690926250171893893815001493736008014714094299832537472822483344009164672683725541651674624603859424869622089863123151828349783263068885909500487878996660728664457596199595925467457716589750668273097392921114093656133992320686262162400875323674566635160752691287763573563806533213998854167422256486416450190842947117287268059067778507860606433253723124418222723788833724077878066061364103816596703498406904061248111517110058040573263392639123300832116076192428800942464762276289598261316588773789637674556280054021088916528722475340373730072759232501499730022480502091720238603254689695279088077705022244736654470531036980379990739352215222754070742467918987328356123232835175867954194779757878903644158675847011170890908551698691438384519794617209466773160128136564933518104642199204190558837568900088665129299535803432291548243409597925280979292337902999592335348065723315305545691399560923946064809267187766420195225144694172967639125274709348105201239672725941060446753447779134098867709836644604186980625966361398547975174277169091928930179197678143707078392480120124054516726433520244697900654733326754590421609220178746460611487925125587864587044456679111619635841961048089199826192281815908472467769978240822570214736139083635561079247515605664548365129062380941578975660489382768251479380878858495425107413881581163599122398265188102306618679570570303512540203336402742551960321544411463651402952701861416950323106992511064788282931892795004721044063192207794825873590840767388750143384297734321694353950626460023232175069508279591291229475339988589163425252530918145774918728325733756363560274926926984517168531259501133407001313302032690741906506850693140823094425610607536527102337590675150938645297603587433731576309599530281169601981344221861610145917501358165692764918767788182618869155511827215413925047269038811690871624913432029069507908551388385902682642338172061912687282855239505668805456807808138940240213084456578834741098126625965208262100017899564009620337925277129268487892652697385153793799000967937673844620029560857581622139277093111765866294032227612412097657404146587662246076645885250698093150343952622871546941055763220959956768969485202652185733907934434451848963300193035506655186493057210007223088619786671811925219264597312581560617772799826667540890295401647443201452081679395666445733562259834010358438842396809100303538092964466097816778507416492780618295040747013884749336650537907565588928671274944496759868589445091414357331065066421962743015743577225288818661104246304851080154657394162713068412018635122276144606938056656603172124180654107779328821621374143433635582898678627342842974396495998119035864302741240343693610905573217619857550395359812581449142368566643635395491280673837017142979658812980586328157985933190836288583906405948301012117428436134179083198089972686557764519824155898529418482822279769325102072468088125349290194516660844985927111589696759089559131902299991556038000215473290092690727200303361252772000826859221301829804108225766114098487821835633832067343673835651653932300837513755223591903983296262331427431927759627078188701785438026775535100090133204955190815510239545913163018375942327301173439383619686735203036666478493499807023885897152152739162754462492889650869230911244825580548473921341035600925101001530463596353003355989547259916798396639797277282849786672712305838996005801974639363329436938847155194806057165926550090350429903322817766206091328909543347745686560390054062975244811470983292394842863669334364772664156794491518591667183594618654937651205370477347102943258778345702028659098645012347037023570919512470436837514364843160355311793360539088714470165435894756189501572157989678629434710788489559625822018562007480360937471612729340443071340906590120570188699425803375477353710768664797279779137348580577120665860422846911536491978993801969012094863244410136123756361068270355821940821397579854941994732613044796780539290784434007370775700380673712038851817383931252802756450662029564424310335560347198898283925582148021928234764794228183909217361015250314845019010668962452915676612777136622189617987697955010101455994265133781004170213273826031664719296925646032573623325720583467654716725541510334884444795977968038000232436159717898619267346836966626310912809992719396074682245275155299730207135012921788300097260739437834727534302195476750845474231436523274506551469335544110634068737599976196864162408765502414291419482250339166095162406334586759671318248567522698931811905282554738897139367558649714900615993474118307804715082662456874566065775348440911560258879403478893157583857239160972515555665142370390021011250562811262421275808987365560312030420712255260404566667177094507638275738009260206692030451420878287284586659927300586869942572875729033280001459555892396784313884883006255847487618951425430915557823066930905264010419215347965175888694540646234640615978598638603715211235559408865507235596464968859605775849153855041315370836331938467932184021205839224775131753792595681444471339093957002060331649321254504774741979524062568190291904745814000693858528957738350224063443354822986037225613944157036121072824220744796110749525385068622368578497065271184587465165697240975068783069160821372404238464700134002013156042081430586953552268905439265061793686563682451779454563868296277478581553160194301076897356547970500224153459655282387746867335874244559039362005608570054641609055579275957922011759523954224222167263871566216989422248065439995115245331155884210598969797044073021649954558125302747563939156107291380574130839809552171629256430559974902499466737820773751410767430109369221146724108533892961748808204634234065659623677737627407080255517036139887281341975194426196407018957455529374884084619765893137135595461415466570598944220364162173751057847524979983684039944383546871594070543552146346475399234087844388749140108174598251320610329043260590586631141410652801497780934968532227633959342834950759885719481583373688810799868393660527843171864297895059590145222801513688622715159864704412433379369040435274814662051409169309964672468011730135248374989668908200506612647160474675443521572624408587769879431388135135473311646466484072613629875378728033292183550940170555430333532899589398356931141786165120031804749673895807272738011916664026403514919177046431394469228816923803172427800668481762044891587841687449710685196323809868052998047482024667749225541484894380021071826288563495999017353181440202530699684400709808341841959836901589714989062246620453025865514278126562724669790377479086918872939039552197568872409400033803501575505982890913128179208586936398170228017475910411347545910357202603286715856055592908574811062966841441623893943298615824029533884001790928242210860835232431026750020788095289612980950230217910326301530324860748149292215904007942668059583449796161299310604157875898999511593596812475859602096834728608817193576669250878983296177676526977500322473547663490420649962888803978588867765841287909675288847527657853571662952293141586698045556966838371349534793145314731923268300481370377111582382962640437151692661582889452675372425705771543849850439724916984815988258790496733565516740255099158611449994530787845164503288316758986186195281279092753214864048259289280759218791354038908213219041764446579708304814290471737266947562881160662126389720600044997103934890136122862029924979461100026171151584437373099266385558431584114801554339780198032476000645293246575709626918556288139841050160359543683759501826534574491390964295690427977913591189723183430075862820062193244144953361050619449639995970746029940558933650954102757839521172757605765789391148572637590744654207189968942487172868600996659632346919822977707971471054343072315444895317631105397822360320031361619847275353366950993442731893571457667406496248941165060469997583807699245691496519102489244385680427250351778290333054590595432741804590518736413432004869188938267521212805027933604842053899256034031299174688290828509425373839553338032358164040866453469081873780968397455243257565623852097024895414144305153916966026730023547589104336632180196088476313915089246223679862921976625034440863320076348209300840055217983662957949145086214229996524849294924435238380118568632562037545812248594963310708011645114296893596076078906732878894165472407706008859018798573788804753143259009730263720193898506958983083799805460364235310596871098522036949744012941436908282511884027631140304851668240859830139196039988834190084993476717487567992229582379342857950255465232926990455894387229108702587184057710790974377993408305789958775304015677544583407173366003613154690911226949254941038070546488447006770348556570324370876633474834962460695316431020195745448833022148931407059060575246237430351486992399653306315384050229177098623517782781409579705120853172717088402772577475017652408888387878919985354636283087913190583583648513529787523577650463487992514833844810353577396004135737058148487603614504779342615438961452398477588875876576425328846497774625317881601413205367129459472029002096682012150858704642906687152592099752626286266004011023553913863970633509885640971915351868704251756871851917154228510398402951807129898479466780503125149213744632139130454051584750204464606791351023869696589114077520133271477708609718623133065928547315875130556701109774631539378826475230893512192524454986991133979591744346680355990076647765037787255054318857435756812170315255473979195084568311627269376772843645346547526303966830378883344850552380344533514765761399787897467980269839433004253928422383293050910446984887759671935399630496659726981668946169727676141629166812480091859510182817269702299425844006159263119082880378291326994202019611603808981543149265544559092507188200064676311876774237072769895360588610466291041124402953935814510670463658084707971933405645850717713760728342568982739040494105817753525471718060036946923475688447686062031506694750176089393344968380229042218199677620447656915712629217587324040700425348036537542190028620602157150634824533495605345181115613168220321522072765894546167984706827894919968648273985610648236405178191450218437128633107347203604376448213755606175991237711126692471326999360842156653823449570350279594343163010458453864238583819787905802780449873787733917415135606767785525557674793015032372785357737756268748012097229830829354593627232994447520676333457135776494030506071695079852381533181550938658032351010432453084873407753175126806936325890847077832846029316879758866503039890899093014301588695246775610193426045529434001968091997471777762083519372370882943148909133916954140185455878590813250650325056363012744650676069816448408548835359984641917510878910290094440813809154518419005314182806315940540984253174919256226055937387599684157181955581424094303180732006306580246135455696961221145838397876200268630725133156267970454813198438842577793035429098039352345830043033807815745067179540094565778011688414208773024587673604553531456833722313284226033117764009461786837250574625596856605425077512016958271751580962647707189052908692637366039351541520456056577122651201952447501440867385005180104515237291829336940315667740105812836788949668459828347521165072858670624856252411164405755726814726106592597283028953719646057703989019738570370011654305520216531625432478482788757701046115638405595965152350323219229814634510963545621435343543902021202679342373618639883062862784785560469210788076714393485712018107598217381559472013768418263009496853530379194019104199734525565902991550914529994855923022508139476763759631605100986299147885804617542911244341754789053481229662625492425268704593820305750531246296860700958623909617835657568041617213018952719464822801558513080838198615491312100566040702297856855726316009665372999046198651637695718420773891106624591015366774926707735917990386000243445340661951704370241642601319646169010216059075062910864062723233813238160261854026564049794778401967803056079446327936195364239542266205321682511265742584545410808317673341902800561073411872893625174008825282110241994371955110659388962388361764804700835180144912146579043847312748796492814431818315741828625517571244480417516864648339369284242768783923310766275573644947868073154114561935856134577439730785792150940759631864628112699625505692274635412524571403222003887816320672396385167086193988546859736367713456285232656935452046517892242818216722700283530051431863940682133044158766496063914735258295752457019188933195584572431904051873566501050358124542949026942392454474125677301020509205851812615326877529418127210033643627177048442050419735940203903037942796620024719563759813059930886232446597713056753923645487670755628947828304858547230847016051366983529149560159528620730000752195932837403304373436689394234349642048857141829662860195414282356435530732776554273926466908580043242187224153349071071584950999199624316191435777160844308368949768211139945769349055177939091208682760280505115162079160822849905064531235821100456301853712076676962457207064507356088452877521390413820096904242054490267490356244663679040595819657904463966485694769342225283400125993557441272475421408136573444388976322079043255611491967838249960733296832394577632179126195702866637806753148723520290611167120707623464978109006871048732978117894482549574896587595243597374052880273762673839792862368542903280368242155618075999780602460047299160514445758886684265485599451561719190036360992605696103470712341757225139389684816588143415654260032374845762881023769846777645343792442163113951128666833730270903118705216033960914678165485074255666027395487612885988522561981614033199354646514695656744453645965954727859190716260443785644851764495988614093860956297681886936031962167670076522927485558475877452397510338107586267216620201523521945913098144475576476617965592416372968168428819193323559409377883412046001158063591143019377968820135964869590982216391573338483853925112620107885226956526828139718209446343767837730355329099320197736757346994859580102767824334478476948878825235980968433823631416515863406658461090976101715066130012337634234061431215394131225780829782942688906731969727411266094925475417896692700478325163265576789189959653802336773357953977213655404991571685858335033125921449909282116774584384420294813341477090902486453202850263892174136327972102290751478815880629029670579678839479863888470776538232117551823426354103133973173099882115860917420762464441139294143404023411071614470375888052241186774894865761873944832508032291978221749495955789843158886892976905796016493688017414231214368842370690548085361739178648871420583027393140896908649405422654204085144074481744175992199363245357770618098110540442237747876498284281144551188949533159334540587969920579766650408769718930699613972400032312714036276077489307138830116790768820474489606634521226981615036139955272683777313764101292951135481461015389014140214002130422272566445540771221665021769895305947846989255831338912190053476862924490352708526888435732997658310568927919590102986987342917144378357117334103380518030123999070293248824130216171485626519616526083174903295728455552570485194779701744064945360981973949504274478162765884538202449983791070667600388503567360017818276227745209807773774093082658145367642171523240226409195411754951213077916258383347363326165152870830787152406526942893147595678754543720506502284019491118582263560613218551779757684386710514629154730042553573463064896602800062271620280465074075380386201768843148599767958937333711297941307247688917147274520844681267814210231650603026897823223179710601283162420333824121505576866718457739579190928112542677222610534028938407611963425748657568123572640632395496843642423507492736471310348532834371389133385065095011318581784003478493988750219088356881344031403334988960824893178070499010432912860606031446887323373943687843784787797145404845458648298934916046627387643431995774919795399462001505678890899956237494175762346080185451026830579850799853247572233636172312385208846044790712561405452990028695330932938251270052802872723934527043695025819929003090440616559734201497420579816084399008466145584599688806512593307800252078799846978629139576665971283017303586451943406964666612090256697942511535502851869967527907251855419710887149207327914424427288380944478596426694232736024076707781664685293025926349120284562102504550525222093336002174053556185958454676571652273816732136652908989922668320638948882469446810956621442426144640080808903867819244742103495657969681596885959205170994067952076012593770650318923901277812087392408172086035237988737810502899638708933455510142843863334876033292139499353309667710217333024722829463894445333554947195494145414944533336453381551727683566827986041437025191063491699870702250392969847059667383143277385115487823127539611007073789235478721371456197037284744768659672527960385329672530410561025389956352526677359039197079701533243235420353257996761268224933108177496544584484412381353189558396073935467601092611643031383318165515388653183208005562382043567003019442482454974045706553753128707990735200288795420861881334413445294957338078339720743867532511199464649249095287693162868594790470778793060966744719561322095227977191742070385370430578469956125645421641090632262786102708845158305771624694155748463089791699996793980680092400797769720391324542329296032371854108440624397404567776937017817152359844331130128861237264741418081290241377847202330496702525971438565243806645272834384449605538376260723990969129010045300025264777202686531185803667540513295074251424053720876373362306830779296102013331893331329519038886193384428915237111878468717531246049984703722761663076526516841761898370520486841084328300972605403819807322070182915280983329567741675680906676676922573936800255824357909141506001814786019367755420250044958191493496695993520663781921680699665791895271046835435749006023276575783069399906681037185293722235566869849477322507896387908387726041539993952422598537019021876858092911200477422376000296054303682537147856710899725334483800722111767533047818545448713257474437783925049484357702443217052838994668039141650953392083625599487297268688891254482989775719853290927450684920787472495369012644679954162507420039125492377757592061470152707669323973137992813398786753692212399038705742557990491052608872746920979550751601573057599268568045894321512172291878358128734292365363152892389636518652531417169311950327609149161902965500978148451108421027735046337849100241833232834605197353802999208728704362481945456447567110188235173789752988329979659380814165597787404643002612970981795085802635828192451383022421308866522657966337393622203924753467447605298570365566124277493522385102889872187631411516986628171766525683137929315392168563277785966989507893665596838417423884090378709354517732085513150372363968477459700809630893416920520134374075328882445670936066901465918898159509589070947737269712761484136285852655333499221615599416366946841181196813262804490848314960852416883129031925244112373750582027982535256771090144532725991706313245673935912416693178017764469994731267725372797542442802575742784925019611581756898765333442468273569176058130694836195495403577653831027981607035106878494879657655216840723985862329544342472946016943741475406889846070939460540659057121909584415923487645470497425150255526673858362867685421238924992238483400344968868174868822191704785611523629102439775995948907017793379076576902273205333956430101844719164743679046095471867973291680724601490738206047695649533066900196598235101677642924854102399153916210765233377920010828093325291727418926682565096424928752354489553121974408300468567345501964100648051623339578552377828490567391475523478877633800992799964264063554749003508621981606921473709493083742054695873671141238761313873445564002952041265084342491253445235940169233860433870904826005497894343931911190339105678994213940559430195605204392102456538971704104717017205098791923850733932785526084245551139342863683454631902050346119066834940451436988584859022226036528687774604614546110831184143231050277926248260595842419681962304969828652904450119924848491390945597820229158507851285641097643144146541069913865417175151378104265762368098208577011586267893598107499833549454090228675111547451391575826772586410936292167207955430682186854219582402188757476071412703086429394705873241276369468788240498636928171617037053941937303477185351069752770150832328985944311712419962744168803148178946946494713341966787051398175172292084027060937877216267780271510724360992160053636291531590399158835491211663133418134991919515521217598517905983271975642765152658204899299845257611411017755662465248471311025364444458583407222660913200549591788336604051658111764660457772104973154597210440671017365789653600075779486749158136065042050258767988481323779629204611752860223577819160365607452289553643887374978357925642031322301241033533704916194755504328657824994388173204482615464554833153113615318657700609345225607708578482370647606746611336225599018412630845498963224391194070147391835790810395238852415242852137339697961177018956026383177496303337730956842668863979735926922908710568123397098532292300977949646886291196163492798558463308776570593228697182625767141607789460738409871198389535933846671927523624041921190819928539337912415531938776206085825937940672894701668680985727657079769231034254913108887418078946265200532173466253363057931885374555339434574796187120687316395223273160753860485184966477619198926286009504080159657110102534462606342715304379480213779215978846477450696817261939090684463381734538931253535877363676311826599590307024573714293788621469810006957392870647166150473550924550160739996459621125184808479706415039685510605654793526827803576701865068123011503879197032854641833395965518819413277800877001929626864806142810137398976936842037747028635383301890336087608065585995065835436178493912228442200936793539129645794252127792853595316351995377018824277301660927102866741017749339734856973339514824994196152465596894390323102152064209240757230634619590122050631489457211938598450382791253853736908968483552471692596481692523351810432549504732686354737177374421014405089461540317020040900407887611016434100101364643866092615835077748173414103210371235486443818442429072734475669962446004781387856759736252984564288372547193239062681763024400247073753525181684365116412555004181262919486865068008000291991466071546133170421482083666589522832354668680717704615077851625307025781268697312148488258591449150114613043972215066655974954562230838852822265721529086007143675061575402929192308965059026289586267029816582813055061166370334776656499565229449520830068480915973420388027589434969200153130602901272379542026455351690239688718011241731514803656076856672137283921735868753858659080285314579573449818524045292047796390433170380008682232630141446712879649989266456630031243212586679409378408165405880673114230180416830289950570359833911945573380090360833605390945491055425387598278055631314517139946159921540333131373661636699691038786249978658522329864706435796830261738827106706912426921011485940763021702321864538812850939141619072911923316799880193810438795935513870630725379088177812972369787237116981031905088643462240735239662295935121232833049873136214819378486179659453324902815793365549930428055852863075964769484572449420323992885144599808600545223707479718889554267247430423285893543966662548907532743937257811949389066533350668031219649891767468257779559392468471896058918156331372274645608928003190929656477879477331828734070504895445818441637628757235556091821646161182936366160477135972827915177091532986897356460302761318724838461176907349114110704359176667116443299171799918836733905568383322249156869864682683960110589607567379934702778067472057739581782524906686460704941987428796175083673631091581370354228041330237040158930016689071250111404720666329194546034721602244558126294288910546016782263450420788550778763424460136915116658917854044348558550337214785277569083227159152427002472434473565471875744530907205782950527471727548029037192319275445804974071395710614905986963375844452168858410996945396365008625580234620642181832026060818568667112366072048456301188411678320315256191319180384803642798588314245547108708854634122806655415212124547088009207847076075739458224780598096071138359264253584633473454828031096558920877753012827641131934383782551830203906100251725231740953481686744583411056988576519820797172765900507144095426919932856056253966758970721285326818914707798892246283318465898510632304885240568033769690248080017471489206199083618071705235326991303962111382250300135967850902521327993726823025181331531516886080432007372806159632118601920215802292999092527782726744559281342008079552428281781924977999880551318053927018284740090935198104749642761479247093937156365017275927930767839084193190448464982205648994145059735724761587069594844999262073361198466399281612302954103050414872218898660477596480272846891154437006548959128894704682486239348756018957135741917039802369982445363203908237155397312464913597508161506761996793305655624891255785413591387176788807523718985746161122592657406712623404634236658949570285904713271659279431733269910475188941482390380387777406206711318483176705341920608108035749465103345537266975746067524129500829903198598866158879063112529884623607104097366291268819660396499487445647876002936878660742570783632969148746370457472372328481451167732906341203102262060696904986428985371149628160619297954967023264551479066397197552475402576542581205465830311053424395953348677148461984606336263030509622897628264058886120154600596111305161754962288124774956388690637709485006334155436956466548728189017047556638440567044909920417537420666685676896280967133070950588374243858892736312999018333389274926672393831240761290527972903137884226714289068754226056671285160010166036796449622470673070552377613560308313401858011454338222580056150812135956071231909083096556658747077137589483334371372040503530448404228167978873199417877801901230337726662855050952294913696378128498049513064250489723279528519046336328361685245876689582183579078229259999822692784894427169704386914828941953067380234587319751904704092053070102759756525734215768210883038295519278001269843991669936903224580701124790575332490372883999316249017195516382585481089420032059928713289199585503597717291771565975772796728016680469887077718092376224288821716442959030091640529837353053223940312372718795520755305920517086054431125912094451054859371130800009154612491315234854451546820770184052655961475713045919007535166519484648020954218629710945000478443893130508201189425526578681122253067339577887875378592923857874300216781912349427376245420400329995700626420594038710034277095437772728401486695029984621686657817989649850958410695653826043020093210788624403068681602720072583531753472960582371760660252292028608232008659680224836123887517981465506747381519700848218635968740111434129965402211432493116528632419506799048409288622281489042288915353214663301619385945536425316239077550413591279688041577825936408548889997442782329041345437119741772076884461568136557484412256937351968876089695983333354971546077867551283144837956848685647949303798309163124099849465830850238182737574677820083165980908127051609701100476734097095828304544015572121304109005643958006206828980451414203090599992603962021567232323834395180826116312736561619086947306736632862297281525142145036684210850354576141085229346194914388967463376441230143223272451711714048395505203889254014034857492767294498238988406845012661639701670415740828003102659837032354419902803224307099109411542758481057663651134199009780147840421655081185037187384470038378943372383133864513692028866734322217298766440612618975127588390553680680570152876374190908641604827079394817167035092334629526340057054704617222377540207206231505831525778250350410468773906412470123331157942150215135898479347154601459210579312843397529799730022456927037650399792871555844617894831707931842295234920003873426741865473837437439225196488279392071901064306302298653627430859257220593477719582640519193249569989267290542875390272879806743566307157132490614303199397648483609395981943445185388936663280930856165682327666736668504056307322215161586564675968554907949080418024542617013765242698040001973247796206714462109345398719129159402964972681288447659643971941877522796505197476827955701471775188279583104995335973470927474069143416201560458704931970851435333542105300389801066152555194148163188392711271688426270666328593609813295121867842099642186860862947223786944725442250460914784564436640376381471123708031639182728555032174610421048581947888131147460037066521828887332464938562197734394021432220516688141586892968083319011987791204409851641660367284722066465800328368223147472397293484744312446884097349315973910881318355737226328711118052223363708423642064970683567558890936706633470442484232762147887828923284506124496603270269391892620139980945298160677289117546626321520770001058862168089953002834059051342377163574988006199702381038163804845007732563007678389072657318468379101612388086413492372725271237186765657603419231682588309765500095695603698212018645631689437126564118663237072773204443372004538741105832016883432859179296132683191263734170197624343134200887675232770839460847619326431086053936334803304694318575950833851494391166514528334504171873375711927330545484476171228927349822572334418067531332821532386508851375475556738028842593161923398504645584729836149709935249617152956313610504877223689528237866356503893559751792713538047627150379312949390954990708717902880557165039647529677202645092308698415363573932244383979358494636655157552630044689588732561552858905606599352486057386349621523671617076031026392141430938159472103223727260595039221773213410786176040421699601405899784412567984471428313907128694990606462029361308151816858720756667326771354856369441620640921189414434029555463105842454581679699006750685153458264618182477954985681206372958552655265785372284789260350159575495738240700072278716955132303626328164474087532168270227361901199717182379839724770670741929161219840565535889348551026135836735833696425114828133836930510100688874006511409283372595165817154342766002763756468956595350209246318398676751797569297216951820408605430541608171756085371140573183130625251235986716015199358398110811545035731317292278996577665594095778963087402214748764727532370999210409430364480529178676268827378448351923045911253606675878694801303978601258960198438922387053317246345078651218502415337229644991981138857289869584488003565426818877772954099577759391291479052054062905911329011320167487962219843260060548874742236932111310747964875789904236137648873232026353418083187114312101415421219288277504811123489201703208563579231225161695808469405835972834676105379161496465823130023870585990456312812134777266999371834638779081428717631073605504351425205350272835810955491788903608535406717082150694118222425506361006103639522040334114586709017797235796213948768933504763983848422993993079434353559503819938856405705819107307788006514053352605379878516215143609775980051434551783526502591506732521471672193609203521181454099973799454229814355465018338543103913802712180447623725990690610348446671673668112276080100656529342496329802438032056146074818827333682471077489875349002269972523325186085209715221617079917455035115056293201216019791290547574272496220669181302660508436259093688245098711461749954608517268063413698709358983312642341445584441596684938185782186557846289647433310548759134820722313875454552737178360671431633620592549431838092510538367326066278238784429873102729222940155581145370055919762521458568797940584666446083690052796334495018379115723878023494288787643261653670693932735684553295756797472438687851116841648169874178118086463442918951995886647640320162970259573401552107271430780039624121876168531831237466957815385401425745974211848447852431580496100061171513522393923586573048476722759841570350120357098610021555751246019100314847078892020320511118768075517468322413301606785230890806988808485600325337057469531098107703300171638060493011182692729962438271607645866705038491324864369007353193846037043307303301153252272786679426552760145724830615754884183950090249499900760075722198858484099246599200164796251779064869089433929772372994239509454167480421915279796116681722083380064380713767131000986386782101487176985501759255539592792064254306536497443332459342651266157581097605173582838531422483337988469982808226603646063133941757647729137449532209967973338218208719009709854277747980413403604485615765234844080038844534224802000813648210971496213055832404528918097484883907590071759065389221176844004831967764395875909966041434651276920879103587959944124373004765682914375890704450763892280707729129662057150637951515643935303425914587867153131693653755787195310362122109120312117875258542120565701710140844992554691261978421596359462913361792590469186366096976769460740518888131639192626181860108876713394167461218581384229324576773795170808430582165217472596749088525000025263874232862173141183622798362248996646491431349657434869227197404103538731649965200988125440707174963891853091062957692112223019084620358975350825429971119679303335906413142786510509465361796403532252801907357768186022824688567317911215429257470791171149975405119192400022144407932522908743518111152317167415035730237214366358094463913792294855054232656948992886700518955193064235344206155206725970953459589398246086119833930322634029910734084878129203645883925488223653356561422132847168210917376949150272506501031502679851959285206700948243867788208353166553821896094356483213439256197660553141360299806946008766602016405053726352073036076710263796805231155943889333446240823686858495412336282474442916709673552832609179396767481023413679955108309899811557885059769976634924317377894258842629370452309964517124442295268847838508847304266744044273629713445220864910708249722950040838026107261414127847516744031492358665363490639425902118710256614727787075504756861763143449886932120150688195147190052097520518399384905216180378597802881459465621305944774002890294166388808155332948814048610224107902897128371229955151352555939737279841255117341858863533061867310114749022473914418014655872310980397946282816852987430635706784725218888727719115274649596901648772357581208965573802142332389172951295199249069208381965294403758301403979005473317200598775648014869391243771752495634150368729120173540319186330926609301317341880472628232457989543494347245436998559526026391957101878565864221174043832290917649152597558673328547563804210002278301349666061801042116706167213975985731126668116888846899552877992738359118576726656469194493022133682019687269016159673283875355732771707878103622733675567037956752138377159198730707295700057641829997494997052894525602193012140885992608552901911673699649973060429622788452202592823255572015242178999709815911089755812273824085598510673662657445847708831991503972267034941323689378773151659574450919036954284599253408772852571830899631436993387090091652039301919504910760642809915253509310251286395734067603876378323359173479369822013589564463071245037908387306834964817949723715981943230375153830790387038752641453914254961446906669363347272577388413058714043513003504733167680294753227859885176958015326975986740815166634303707398542991895900837697591444282181111460284294681607321948887025711827280528587474943195989303325511324297814953585785611074888561361529956448653202151572305914802700543104535631881321756152203420876828138461511112311667800490496705563350273792410779797085545520874282997390325280646908861925672455221104974657320339494538176652705193529816659422773263412420346620579939092071960704991727747322809494445148290165058358245003484750974249453397540322280594152132392420560250740123030664812719362092932470030651283361200858292932166356061014680343034957466996849755783341942996866348089302850721064152525275219698242385077145113570359318074324827693591503690727272641044639616486778916536352442470338665238944867117717303308643403054095634611605076612222678338094058119926452449899771547282547775394196995527204656172561601244096035078277777031066125889471775153154957242197238133808557573698145797632122724100121638984828170261039359567077037848466101123060025882701285448514910986932343430545357129901261461897580958477037630968567436614741660902609190498238366976140210591554332559892404609548893648790877580627042839108061627614013160051296205213366895804086906233392346698044027642440224839681766184076158015668962331170098237215774056147293000281224344640757435613693929654884592826905309575792244255778573247712644832239297967419467056182823428443902867267436910385304167207385300853647550071999450070559934523083595931712992678311352809011493589140164419602177176583235832118014986040961437062358247666895860060357802681617338794035064409993143903022786872672164253320728460913509926286715768793470592623764651237626967566386144762642607750863647633194832228346278032456242983747024017570811639937227892326463818701467289286183388994812045465143957105639654612493285554608110747145668053191495459038209605498501947068489814038670320416998292512173179645598590427751507718920413210927130593202607723014850802367840004900873951010148950468037255569913932283555499218154187241712859038586071179117779872620924009515622755882517196374376712955575610445380524925557809108936417808402015054728903283092775032241138513776283516889576705533240717724747469295919487629304405187568186242195509504280581586652242550797492845333319227382858599429421707681758531138786662655078586623411811765143935834943526984784131560246320997361090631467533707412766558711109402120368949182480982393592706309023454620964718342045051913843954427002194291145911421985478614961074927095144942810770143926080052713929344187717341173711366772948685806937362169690394300671903970743387617617165690262777484771755883706339727260509156335647614911684358849033863523568671908836304636114689008301926544601936701267463024485170068145876307355032713965943579938625823028941700160185283537669738171416145631097810954541778887332151454510946639394049910533404488750395752091359330827828814368075002761944779198212336363573336448630382232921677045599934841590228352819739159369477381486243131591257416154692685362994472899964145078129577710394991913835703043793404460209961012086173426971468407520980189315643904185012480818387839824184513436923785605085995786847187288754949277343744196301771635340552664974116388754671988745173568538227150454913639150150013141869735776900522904780265167612707918572766888577436476491395744061083843531020403573387135444382153819947671055096579898126547446403115547205021691218681173248754184165969153253961995382749400045432012096701995530434271185415506773505893438723767118068222809484546422013998442347381785143137093250858043618446059879889399913670062382719113429580486558246404398018001143055572747220890339460364653825933817327184479522061316223413717390343385340633934856877962135910392430106892177077570532181984313992675955304505943488134119555081299960101232105499617016235742755955518642582109527624872159655789932587484658359436617878805618290971366481593133136600200768197637436428987155832126219660099362277689235862546189376078808675278740484109195672247951355070392480759666472157182314676129518604069870785327115066621547163780972613561772150153514205030075375116436072341751406103910607087785302904903019337941675369748928845797468061994813483774637646173644012679443187110574375031066173972747807023440150018094975690852257474612944575516293789370820675412875003524397828065410533330849462820442871063252510603997201166009263218468664913714989203839628766021069492925393009134353162576649764245659242931670542704892120444339937657755310401418182795781470044800876758226496044713229275887994936980286943578538810461813073420571545669548734577110581786386794032997026464523003858366032949820646259041542972967145439356402130288219492841503191332719311924526280518694302857376483251132491671905387797499946662158593943666152225705345818688078276147479832934684562094042770965317346738710719392366634013866182623069010975800574313034859599560131264966641375439965794893127379757313686099875233101246385867634929125420833406516053247612973084913312020913285420399145788684967468520544263812292359288681102631398814959357651175768432450657498768100853104418541385112976107264306776492357309014607551720441893015686597537423083790654959864512919472199305635890947749648980771563561434646126765380371470484689751683327214107944146365297547209800896268512572350946621318720904250307420041119958822209407328182929305285354913806859213473833200879084957428212964877925580774862976959228048464414472271783410321639443130196410848665254248086485093572116350179610956468616005242983631138368721435681980811558073588017853677273330109147742856008446843742574232387846916400524194758535090832631932445182655047416976461492890740155879298518549211304670268586848576594520369171181466883183082269436644596396788074978728782316406954666898848024153159726472234810650100556752251639169740182485127273820893700519013306762677014679823531913001891378485327931825946755401797974680628450736132591582246996469807475881861919342787834847741826888570330814063955067431764263032102588972772752561896958572463532521548204824033131354156627920158530541913741370090686081719155653445066864913484733582666242020210789513045171751253868117805064583215381665706283862073299434367044496384117652157728754167053464385044475087171700660767788131719079421887563560652195897523423253434245191590307676244676615542124561818932908764414656986187479814415204509678284628073622682230209352921521808607934856710435813378536912334294503518819859540342481327859984099934309958082206751335957467782614445378757197682203821707837636965248954918254090978394388242402070314223072878485766339277263267817751740044744057058769491705637001239701220411054027930335746207732623525839378070140907974997895083463806236533455163336808942971217885378087303324879247208231359517174730689867481779646916515593241725935813330408936668840999960671484771817248253900045873872035270851238867940561363137358947526648119953200681288734585451631547593086657059620597963208146354246326779336216879593444505944408272637444453184666725797571077803242051247165098319397370274501546899457434803926462942965213157159996275627737096238644620778655552059340820204509610139957714157516826217005988325931634464106156117881278386038078450625076514394532707038421475154018151727805941847626174967125527933885195328926665491711659952599533291537037735136274406292430405251745067400324396444004368060706226056196085541248443399987520216593108710672255968955056981033272576805340901157221568297565684033364316854751389162899010711829804499241839452959511314870921727392268345130585251199553279797918188877410924928425206698597353996499485302729898469494255447080085432869457028435279997614017759823976423457617980556445004984376385531713600336744255512238033836827151191094556622170368005737111554492926038138600026625527558360256921761032118785238640452774762605190397198564887736043036413258732182360304151496866172330161815289188921514046182052194196774085006899384419461506478044283753838780839569577200645003908952871964998771792767178039460563085363229386223887073173630473632138807011437298712856084245929253426628989080093483151158131338024493355366422983608682915957034417534844491244160345755565753506877204859976350975083599836242606962391576988028887935694867472618339856447175574648931605394132717100848444805329166462662399304601496123134965809532937770838184137018565172949931037048275492446999010333417316661191530220190662681515972240430880112045390677943990842175627955020190425821932066629369041070930283506735572268940066624097245463098486704136947294793430004433783376365685909119401407707466879619029176591096674695151315819943439146336158430574496266345378264086207044585558207163551203593803436129600935396128057500739773768000862950570538526764834786848424274694251648738600981619944528359713778831673080275995922547336832154495675544448252945913602264882077899355473160655665490572828464251650734965198628054264540957477351955215932849860294532014742015912242873756702638806519229964751578108201866472890340270969877609619026158212710688839815604635377355372220159812638462215630996937764590118399256007990394279744932274075874868247522814306180156459642386544001573013708234879221103023702575915548208657287434249657198218840019599315648067452822046745903205269748264268175482192692157025147572470360410812756069521110856388746569425006830677341392729067240444569785607026378420746548204009177028933516407009905033413111410243312342807276521641393466884421747165229589439114533713878757074925028824133817538318462000474695496068488930987291122985234011001770903356327292783953985768592563275754089141932545788670194111541927464038265515516804247231513122370058939036148486628035304166432216816669296028813231490219827926753312186891644381523947510724141679980976356005220436844267902969828470739350786337216576875033833837232942288968557946310667122509364456865875682922774597976079351224926918101131129024067301556119167289507003543451802902131114701064439251582485463522310652917339888626690586111407242135294055141512005415485234791312499276850033188273878079240563979210356551873092621326108031844395279681201426123855168991613316715875122142089956458232595273468962845225389201826941333821522802310291058934097180191092821311493557170060200709091988837954365422550981636212243636600509701548698659266150085330346578506816762801403932431066921815387603190835575018514063185892756817339475889996064154611067199474079269731652879011636555630307087108478202238970226044048231515735237576973716562646257478321276419798997079418376880549490588900892145522905359603945899626676534402864815744950333375851417258100837088041707845671757158272262766484878210764778810795850397438792134164921307147957846055807757547469489350287566682278219949313604404585420138764304179210193990543663899568894598241919462725884417687400049625920482791789434094806207103580251065421104490567266616737257840927070892882223864577741671129644765129097748929160677647551815367787184185647237860174780675912775987803283867575710238103852049946553097423129298719321951538520470468189345690648215229689358925369060350729260707578685537360685395060367920628649558639630777322882822230456691288366552061483656376578236424358115757217103465048915641404015194245252185593090562377135018787037468828732626172824748426656259514771188946821226805266966920809649240142773902865144160467149652066795867233984714964607911638008941846014341017557431953018659852757859817737337401628632666168988963827128865830253778245887039984686422366230187617705174212250462644034150431218156944205602433549405276347938139500957827516238171456399173787363739341934512229788783657044957835717779666752076788186183494954616113214706152721114612538868898596308956137244238706528202590087402117468712231219935306858668472482390114640822206327918489789766501073881258836802759668774115089421448977596301550433252145924366086983894987625960267369714878783218336567628502167861389296928240778741930202162353602694857498911088813977605274747389307323614222840875556387608525942342717601725230125379449178641838971336840823800865347398389680195036676066172667973545380392307124243612848376863467292063902298353883583393786520009356427897469240146186647948502474672598942008474316714214287114334604185222651720815767562362414482603426470872723356264536986479767345039044709439798155747197142513953162294372844213530331595216952262557660580308486742995092828951312433623845829150335830768819551247663381749657652780845735903440411400385519691742175502832423490854551442587311674798071788041980720649218517871095015184045124234797893149043960104471235112964745283850305769805584182749658825782705461874870998179895188316874076002223025459304370854419607485720856257926819030049465350078172947833693115283144690607419096052583401387017799951769018455212385044581115397734235498271572688068376669385150968520598857295836144024578714107152019613418352569582441997912211645999247799798623343261955862755936425269618516139600074027420244031172863593332696330463797870682257759867827398684959231564916281346265624441855438645071516868664894783332307526074405245956024319265930415617852436623656162000108781442976785954510392659599892357914589065972216376690992106438010693446445754063848681904727583136936603957584586728254977692010079159144528612467425853688260665400585975159904472759724489433027044000949927569320720406006633759320562668869984403731271474443093311656873961817413702523514582671266639615047667565412874719497969295852194174307859736716834129335724734826973210385706475093489890172232592212444518129275504440406352899376968878494599352231506359134357075030994992905574656804594360863039417900588399530339660949330777606852360152627944050969205069758063411265002420932952229814205274918053287797759193709924347811463518398329885418235595342915033428426034872924405063532393492043655099875034980981891676547786962640671453118625048500414083398600763824585169220275056354861216816102227791909431025566260331652162031158010402757774035589936539607891962440932461790726105430873096185241126537655904567155311217948061010772544803122036147249555417902012843228164299280518304955688558714947974451756854810913537887890137316010143215786301275905810861194451194743684419750223301119913785496862693531058649443044723593669995894784049068894551013852139444690973273398222794481787625869852858372147323285651268298236800184423211568035851969924215568778101614742158240799336513077258216442587568993317270152133663076944104707567465268059528877363642082228717833813518977945792761579638047238791341455744359895865349569521866094212981905454533141016855179436075172129684960680713678608805822837589699539607964817914767024551157188539831714254772467728553142702871126982005932940394365763274475209151273690705234866504658606794865981011889482149468259749230688926067865550065916092286755459935870353637931898709333849135608566068937096512143477286589523729433459644856379061631591570443630195433847789834818494762841197279961234628900102475713126816026764257665529957920322090216518622975756345529124055279689128485283092048283495101370373667392403258893236559043576951412878901796256329058556555434831430171550023234145365254127862641812541822536885568074596850981854026245506583589576282598055845991823142224900893495913072854316909412638212566808408685288510185895838481177871177932502461061975765478138211511120789440887751313383061444382422784176870946969540278457669027586551465861820837724253937516030282385584645073062188913596779772312441776888431394195547739029837065442743099026538094523011033639183476476550900297406866592661382876849153601300212386598637826334403291077313487890685951826439638218064518288960594287818296025462310594845271661139792355438980589953241198209979870964503335361226004221377574000679339717738445452744128706821494799065275871441674434574595660419359470190061716043756953040830462565437149387339997947609785642551477542438797362509010278496964721481586863066224402286667402487957384791063669295472800817847918539367980086000390394730318416726373971470077203404809959526417218206488671722212835662311084188601042866296938663245310274719034401338016408139664726172605664076968909887099214762095151836289394307271891820078053384752875032744837885526896899614449285833708172144901246812586169814199639099341664268897801988994803956080030392752212788190462317844072848471159546732422332444181994281605712912137645141308453883437743960156524555389413301952953785231411705940335340753715556397242278198098650316710929062007011641507464585370110417146536824103617921503149440534595073429825904264968586025152376656962672425681624768458947396284711474734829532582331275246990682564211256287210377684431932224699253075016190797630984505068764135565599363643849716629498677820638963983262442273777672492565751859387926760750152700594585046463323274593943681070971617348406962473986051537334458669185968382454645822036370150443338139869378569382197904748721738886191369372844792299244930138760308849474617439421184413371914367436448046313070812343242757574629861735759077885498756030052472388016209979088567576074948263448308618054567907399023765186106299128402621894584734221604192929622339634351862565968514804931141119786737626792303081604320354534709746162872329924586096127350651946823015784524289766539512732304740147103296335601091204040504689618415828226498282180649538483730298849014374895922196023667365541818178367055930715174064775594594710984853153417978814559774995501247425510517739252161872753714597501504042564162013630565346196133205568515967020372848328970748972648558522424848879583971223854127292312334179139075566844581476372243828882877303561278816078138342515031404723609515253217540851416351482539596732429217951335601065279613138659666482895428242971919582899201100429001306403693518757200335464351420127310619339592266133419261779901344995460236187903800186479732648343200267345470835577180773451461341992138406015003587357993096955691073660253758511478853748000580932948377747407860320442601237275268198000135082214002664669520140294530810984910668132896537553941638428389781559609912830699758557804254796577553098752778920679934302343578429727026510914289269536867287457594729492459743848143592046265324209745811608974756491529236240604482435398979407143625462114584481549910313736175805781326618804629691725400802393819647870227323413171515207036956805710355482971399063205075538678694803452185768759977219697736963856242182956157002163607599018230440644349212071408609502096092898304345597854176252787994597476098522587645184440650712876296583310821882567364227948828591918060518668871566532829901617505971407677610649010602057767426142756724706166442493669199453761632234783833518993653552507184117606119386583955140622178402537918509398716894141574336434933675519207921907651416087262938609264654376071766740724579873509734466363174190759643690852310464482209400146800276045445391698188590926716704822778471996462736662558578869914713997724976513134473446144676353145316255383834632683969648543171056214183785192917210303800837262256700670214525660799484018579173062449013806836133947318984362024349400272126054784775338879080222609034211624072764058603058601892496372061591664497519029451616280274371364986106887110732517745798865086003137647363924392150080824405610401836629768664774099822530348249482252457408494515422371993846980218692163522466550292713605100361521054497344988020218312655028819517692579674344780905021221690325037028958318360909961131913122506858961140736302050813742378893413892271932447439545522107691583033172882935628364740828082957649350928546139539841727518128822286901249120490454195836721979346695722056406596136138820155039859017276541655208286014755066634015830127763201430571300848556029662279234892963924443254068022754562068644922572287754966052931564642256319599687601353237639203242927251876938819740400016674063507237784038467260054373404535226122875437918777128721445284530421990648460227017759085259581186771197636410492099387913600220148977014040305914890726265011214124519329667055933939522969708344121171408562391529968531428268851341064233892003607551621054519440701716530096055479742562206897288503591086131121502363560838551716311781306393057533183796584084303524625601231624098230848830630119724119334842102114166947844468590367898373628200228562758867704158827945873376637969446118281787972455080887511464100197367408271329843929445617963640403091916534379171900589811293624822405788245692632824674227124608016659807799736385787758439158913858403209140672340600878369879275440151604261638585901892355673739841996306505356903602806731642007456137445590030548324027097868435387440323982204663508243777780553868178470929952582558976978332313270485255838361073003166508547073242621404475797630671532279534738999237582655675634188921000961260212521852484477253747015904229479070285063787893407934554210875877763545833088845323122093914167288267961808304366807602552781428245953010164980636577817031462797281340813963537465525939567204157387029976126847252703678214029771774675641126468375068362512446786138093889636063839497307293121350196031885512776642570033051513027514914706962338346852682860665117648828917797849076806204715565377822701362889579479925149305559113912531045110810712359360169387323268205425619584270238621315199476889709110398110430421123108846987607984307016520696529156572417292057967861196739731193707896887969448956139662820796066764383039961204659439601748482370957877340736413411777605999108831034537778198579221284679199920808405710968033949478865486832565530993701294670929647794197888027527044924704381006848249490618654102714264716873580420364644703528432464110083403206360653493402682647155328545204870529090761566340614894983610567990623562300228621498140269132433771333334260744267452954074010787799971673084961597900468172460290854925627652620817486279563611494087567477098295827180205349758338612192643296266215424380454906579081414365089985619166077620733199055250232244653135986148758146033287427936691047393108895492217116746150560618084461529922267491535892836770223462697458858367113465362911263736583019583499050474493936516077895176534437643546876485736076213671180903077248582679241777409279528892542622597274982146826244981320454165042050499774544575232070254094720683268350776837883961042239966329930940099581841038584830659361725748216877388218859074505699102354828365165233195408280812515588538733261843412886257016284881668461356098904446744221917799380701027666877402608542045778052408802558673178995884724509673957830192217128943090292475053203656006549110274419779119620728169021152779841839259833744840132974165573690561517978142156539033852667629380671829177670891799610893136883643912999183363383210100991870677846829622209120792926886427252113991328273187603123913638439080778082318780216393883763050282703767929295990956318994395141788368555290626130808046710695450960139257610768864846751794287838749034982150194351299119165176403099882150741023858776682983459952879417117443874592328387823857771259794560733535831906710420862849216646630602685224694489730769596623756901953785206847481451749998348917812463300542533464656319242881538092030290782310999052831363671304806987546204419997427246830599435518547041462383009014184579967432716408386927851314294729444481865154062648350513999367443155000138798472746994342165385065087696544845435855240451600592975181900775186523299708077590217090775266385301514980431641357090755205364760097981164758987628454630052850796200181265165513691701961026221564229439716349383170639885583543806506521318972696662475659517915629698065475056015871791107842978701887944423420166317905292634749915923657744028434636380044459083659555745375638864104826712950380594499230168243834543764551934778553527206793507796451651397571539473740611804561010650138836365324476834433671184234770512854748414984039817787195431806619993154547409518762650944883460208481188507928095040796993307055408365105725367212768469365514516855463981816229956050165158449924236780911696104948025650339782264503872849788939206723701441367531975842587180469054970534699525988649538722763802959648448977877990801820322942599668305205320978461004609444563315687110505593113374782043638684572051330032390591030583312702011873332772044792058002231316451405804189599845936846909288816797500883675530578282924155889692081611092881899100586823859307039044112946527158470989040503104627064174720778964176263315122073971381691833731050057159446711834165061147431199250424083284350359902655751563178033572596645796938476968736390023062401944129297803548134030547963750968996921614614482544175624930343023739361005383333557428211969840758076349192133588771075325690871242485588847286663462353116157651309400661690661097094775071066523578703137183432622281271476386974702342805020956476984972963959836219511109662035378000382209284882995335990183011584854293280741305440267649593959625893528642622009483892044674290916315436536149879460264884976632917746202235958118999222470150841604525601475358894374234691284510151235470491390997865686170791086377660176059292175513011534718202201840520495172461127407736526504985089216305906248846817427502886529503938702473999264388241757736523654961272740586353822444524751575118813718126587481110979986047741704371994988454493194016306224836177894371755517160573106888049778860634603470103542402073784957737152924272051554257186003318969642283406207347191665182862561157243250506785135035176386374330775509156375894086329902574199110257991675150855985386065498005825454063108776042383833984572388484125995693180792255744818181549216924151739074252422870672411337325215203692711434254070912408038506732012095812482468836923869833783112855139747489548744220268439967561273066242302735974437791911669829249106477312378195017909920298308199245970656098501475475584589399845992089554255956729073447893152476427348602782817912353902932511068017206213515646859074800062788811968994717640467754613278270986977746165869909732815887973172480444132083134397704761752255267071612563564763370361039691562907534411460565697739205939380257527583882044429647686154028535575657154822143505467743332902275415349930088426225052939404412818105474850271162325933081471616779217026174579246615675637431924386573062426396660015552400915726475245461922412652412173022021804299657529852422324348165553062767705387655503480999721785568525047348931035041977972930999938233822232505901732090171303426718508907328101417134415686960337342411999175678048256474388670340014161337832673224906585712972799931112422474705508358589509661908885714647689114810935621700371202461654080260707615080529398200014721581773554335688407505527262507483384229221605439556913985035780900224390786712838959467511708648740317808247992983708067448224051488257504661246140605521061494171650297258195730450557463372139582554861328752666106536559126434162990675679563887892976871709093845958284634410232875166104750826331883225945861378654183544504657838127721164925971509360276782859909241005890228296054099973703495509481229630418479067174431309963545856753685345151743643630448365913101840142715381967716975475264282772267841096927819364209815640278300119289040127031113607196393253950590991564226032490137528353266548719630476485481149987122253565077261563773139829725271659360145423774362666682273209578571523981486440426971821327242639792055442170463213819755562080344536257667078087869090338637957417166907521221865600926282327030849295970088428739763306338226405696076899102288203789112064759259262324980410709093484100796048347637171213395941405320624314226919646204607803973404594167629657883401880075461962538736263570496472907830528472273257260833837496651601871625052784178687666018045903690839100919097200803228833735377105372931830257410863374085356338600938602903187008963896901834303763165973858762015179577540562750994367177524195320696619305482038861094777833978882520542001053086748110413819306075816104814072482151829490523759282781381863185174720208912799351190722574577745760142786547815912399869603043486414487702210770534541570942831400815194478292090082230034616040424219001882550665746098352459839658003028320667256333654798548594168981906244658727592146027266657858376202016290262263648162492164911329386926015596235391920142467741497949854571605492892185121390618348844172863437447928004419815943741147373238431218866011765099959540164216213961242917156823224007206583732622089378903582420099664632787632918070777544598849478465763757901539252871578134662161731033964453088228925672889024401101105968630825514860686742698389238624191367864914853222797535814058432997777476890982182842732111922402778815276936628307452305889811944240906673984441987903965680631841138762414659329940278403274424773047630575105853333588228186193024167228185129671608541804699617416126829906290327631049401894594674196284808588254026587134735782466714722099006689741107790468112029429958539730047699028099617415330833940861362698259258545579071414108989502175640208340112781121929916213852445949900987976538844095281544275256574691670299035093619896870866118155428713738486874007172240720489279954565933531843431248837114307305234243441222672851111629536293988226445989961806451471469126528431600043903975233835262459756785470422808324814165316743773674586520296011455858539457435077111667980438747513469949887346636181243213502653102685515931448877366686870740927560788691479803620065804233312741232502295606911873526848212519246834571183654819760493823402895009812041488855988836634364489183635627761765108446924105539372493404995869699630443609403373576483974750851428762899378401298730016603230428894200528339744488951421859144725260930689861308672454354116108992731073215493984607669408666516919778021083520396464976958969448246443511892786280067481633253604962967994831918679319769645828217582073452313564241158490803836110637213969322233913317967390679000976250058209075488044711421272259368563494506855563068775336001219714183442850818936222151716313047338390638068731178360806748645276861175224153124958677978713903873390194071090541538543446627459277484448310479587492552175013733974874275027211506722414787550699291708121568910460282396910828202353879071039530555367108359633352796843892881921747576083114282261455259150620856800957478422536630192669619359464770319462963331247934578729148866203020182048945094267497482691172029509757435330141624497286842641248146009726074319878920097236224988366054554895902366211921723896691295854878537565115694095572521957202081374740947681113967261212065043069131970861140294075914734271008375218722003891412141787393573373200668107493018037258797000760864602540974660765183132225238676409066995335341295396359486673682848402387389156625070426419754650731703999897186710736871660955442963921724551119765535653833175664224451806045707729310571604634442462958134238308953310621060608617691797045727002718083558921858243257817461505387069838166533759142225016100667206972651444195928735913763897104338388311075774180520412313164674883882092059669521127703736516098738024446438367832375097396080793651248820109969415219785746637044830321614061973068606613621656558804624975758059422674788093251414129190809560761417831006357559050886176799075461310647066316372207603275381321969317759944074237518092665646536499725481275010257789991796720014376104282903200745970962441255679638140883676244598679416816297221380083202106605494567704422248420265938357093958332263631802315442119573758618095635731561807417195036763537368041694448519508987147803323994165446391256479324724660730250297999507132098699866542025635562783751213641166915841456687392507475214387119475917782871201697887920246500264585048278372567212858915216356428058357628667392820917148065668548864480421096708068636598037009474342284402692403134076621701392939595350938590165151985740511522800550078279882302597629010979278834412686084454275121898367671268014545589550678732471352269806298544891458530196041435468501347014537568246876814679181108529534223894777863226274176315737447708854374661148608041021986429122002167748020030647870847296115416546187905444657414507682111226054814917025117440309669625110115827333812575105974448706999005700876447366368505477724139027634499281489924159871465173476535459367506335395849660549304025562414459991150034958611323395282415664321405854582172253987858553374694086888245493865155454774571184723077719728657184246726724745002863032572000220620577782176720546575274222845130640496018154328654010941776243070368712305608293836618474618248389309968252174412700003481288042526909960838993554733645602294370707106229737486258530337848587478473169955498578732327058397148876033372811431265818988586325655958080716289038957779991064870993388402330209762149141267639110537428909573946886571079615860940238856192313579508054780326396582072456745974090411169102028900675610776535630933909401250234089523387468270385885049819164936084818239899419643566092383474078133300837419059805463359102491460718547039018931049971071454510669731852921431951791438266712513471086185737317491196765154867123229723847028621266849970475345614762812806373515272054327369836728982685101755928522868997613336658566689477140196825066352654664180722480149082130652883667676830360202962147353365256605778792662465100388389648691416579785289457367242877496217571203032262145405477898487678086757141142680624689569560072705356335125406119586021195533133022864938054391278168277447895305215149513784708720552033541308542802801580916389706972447632441405303790469847263248721411782782034703286228812938903477177772341655211797654537075171727892429907443582999185517532737793809739410355207122229608439497002528394900639085116206249439046340428172398856261167887036982356345489738683971087154187448108854368711752158595110036674192465897060895867520255216834623695048231721493834593823962775319377652950870389245736964821784559623336749356296467112686177880057443473961931254900727635210234601677067062871591020795955036602766541708773248978209730546355216920236963929220621428671915189337428660751114800687516346501177004881302533096991536287927700180398308062451953418842889865500471714333028147738245973636807666046061437955586027850353614240673215041526148875230658722677573645858613772038092606137766381495884134674693523395634523883171339111325755542094498940396212751251915434786748512749734975542328791153854886080900715815905701354090646196953874830929217704407792246787851222152699893146910154556332890086850479061361410703808099638760318107101577012945808313287059542847344904178627047013289745976581442352583910112492682938211605427364280923322279604313594429117795533766543744020347853481901766417974454154535766693869828092629552997522209487317170963605803591610735043821488358280742943068705675987786563539393282799145798701354421764279357616898586364586575358536260899233102559560908246039716033369874067038763654996438766037338498539662261450870727191988403003840700640483081442405312461476584752601004075093795847038603425103716188133247216960454487951101041029421234395862170885785747688264091027629599199496921467019763445765813851584101346380430109880354162504436461681511963047657588458600640597649990662608074124538818635506593245322501778810561708340833425006815538601104675473646416484903370214296789713288656348569469000639712459352502496968422083919792321887989401293235547484091147027583239337131245332141308400444057933363045205990592032911791972696963948210732269343736578273538684451454140329471534264508603066962266716791218226572185844207446317736541582984778150102203364656691781923688558481212997472031170916791951700582359483211892275261159065107712940344543831234202961865490487738953467777909699856246622932137572246277780677725798952727385139507345324628480359608053374514217811188979392274492922866062157097587211655200214550416481654481472770976093915583587026775235755533631529513103971590548058841950792867376557228317362612244314230433903074125878466441581782313355302085516433679752748679603225069183548517543108285548735514211328292589054613195054828064118623655465023309960178992394667964262091178102386823731886459712870427801704069127475835050277141299258712797812967789581095119104013165723220971168272250254534899842112070283899276234119562428915236612035379125916759914936043229987613014132366787961568200199405808995158963362426300123528382423538413266638031732597488144528406129794827474103499409736129323330277697773859361742276833483269764454703566525289495648633538877368816584253386596483249636699786641661877370516227821763683007404524949187953758100352598728275336061485140097133833335152088517290300295906236294419154967432032355521291666300652174467134841260731214463990107827142153440955241764211468009711522378576587844535461483521544085090948011138284735133771925146773068927096475167968428730445053573701342359911664621424357015462198363261448744235918525953628133240478215710250884045076491477825858612045822359680722007365928166208839572374410441842945061646074197072014700616487995178755255886595039482263095971798018006573786706879479987103606254994902079014770918164277011770138527496713233971466664819490569917097341794891197854795672604877215734482258573345964114884480664509456137141661449580590185934231121747776702155304012241933777641988363886992563533941334246755564841127146153473091200639509499312850715394842876227033509175748066664590770593516692754719328584091393947353210366033468166489179064421246502173387953703234832742680651078376571562640236144795942345496449725686459657041380999989782585625836894119209814409154315683556615905063235164546810665460236686465730519783426451097307097835499783522837217745410915846408916247223952083087245569987199751823455220255596089337921590617422190248540975561325160674192205540966482000593759166183350547068565575490470113943665059743640377913077860522412214455697235283710163850538231857548625229694781707748230567198255646019420545680767081080022812924130437213994481268919502697336673595475708123330747175390239526176721214621796534127493711352328533250717337943743883690055748043764380165741692307361251904934141198858250765163803028015847461789815982575956691699122227494192285922584557877929598235202859922266620830916806873982811568802634312360926138949402041433763208134164971916793850131361214822240230790557488280642004447557543854293444862638983480880458892301448069367967102368783174943890546379190105764342850086208706297725087910357361985255625575718054943436297106424142476541673720362330235496853431862374739199774504090902430813176832919224233767195275581478921318599619836937843500018942852805082804817267482140665474633323220667686107760918110827901738896451806578171522774338018218516100330585397396779562604305032300076435756415403093905027798450766975494888455324837857872089209551626514262724067269119078453696263011564378821212767447039902091626900401436136285985603473137574866134019571035261071213826054294123340715014132633087452099792196927795886951781839780079621384154514040316670145533320542176773299300334926699695295582166703182599024400218249193161065344115524612745336149277885282736057427567488675133625036567484236947890563167815680983405286590492445438631241028908947351007046006738125252213123092800714751896306573939749336853247645595936832890674253295836650918328324379336302380405635616409625321394266270603412494472955630737982960899159224345308835731431572890306930723161806060143925603417308834039052877627814480478347512014445268067487032539597029844504420655583710005210866476951667832923973761928384231871506473745178377344632100537116793234793583376752684789576331102342360079454785004797165056701910201355974951788865563904056150207935246864884908322031415429377525710593087255683211029570915864910554561209567481912048332050779087074632895352826043656875194613832625727984299005414663360335636608726414186846542414480131195854896506254498193977436459903377507551717003372034464132008215204320868380667764238559691851746143688486228187266279706286073203704338948243530444955905958953613983158103185695303086967472758640543468875176474620820443599683527708712331447199106853450631262961015386736779779186410014452145489734173258498135008535396100441250945921694081235707792742315427083411368063154360754738976487683325921761208056021979259565387881867410714652701188643667023778109517555403533983070276717683549529975739864884329221540159742817298721226742100588628890425874615911368673731683556630296194891500110332622018321666682707085139204836148098339375544558143347441912204983467323599108659854171938126559250315920964053226843771885904527025153100096410651306435291625678881490471652379986505798374177243653499114843839054777031262690915670492171564969334175393597901058110332952747950213427929691971672977308010787344822464159554994723485541299901595830009289804721589670720986201593131922824005264124422369431853774148277985166233106551076455381993148447676593216105313856942235046758206160777795160116727253810066460724283013189605692843728768223437653017834446832154313557061804523541723197725269966152476839425691399373449289402388162999844838011877237675490262518077587179209160379211946180347694311480037421614664243242828601695266524659510169053236803957102962568635831601168971449729235456332438626946037395661106649939251030579261984798988969633192447311549767654616829180874973253322030187064532034614521420454435223313629421144455655667710099813667732456730550486618198817970518024351036582659149964205960657557363412939648316262408743477140329885542591097398874068973165565635263854185587413781287331235577047741796304572122913307740638688347463657951437270456070939853610778001014555540232855120352925091532502493467686266846774274855043925930976954936091260028765992692826673197924623371605572502957767645274821460170599167052159456015736461445838818040921061647753172075488900472731014594813727577294645996400836430335010118595834340230168308170519827159349789448987546761046038422672018390472267553402146784243423063843627188103660946230089133050041653356353977897373891069155955810308642431378538984930977419184845917515769020458605115390191822609967915684944694835619271933930091707083759723871714579117160023689930723202552369725622408259531921935889120483131807374800706966922690062006688452301676005294782199699599639806205947166901884990583191274318876973363192956566211357272752103236551920244740910299744502631047920460885178866426747509383066440633784453918184456091994369775779453650953714557409078987530988832972768294041309594712417927354160684649567409445916498693174753186378689309400670620731475826176001044674462920049811503408645011206535143557218567318351361062541956387501705771192446450941945828535365674511813376107945787099424406079008444833041726029275527108439757691292595078508064877759414280416338253266635213191176220403404658724689043581582831550218398531639716911632600327437306048607310190732568977640094096154135281186665249645880701875573165961533103183889005300493083585588465267764743592251840493898557151996362309089007281097532735890289893180583735598248400154987659613950932177452214014335834442056182634317957414961469868390309929278373608584954677748692257593681407846714519548864092959692952427157133889536392275906725140755691379312075009230419543565319084839636338554217463240298430497199730787780191688407791714934798442336868562161438121419601514632019116495940652915098051662459463043169795597416996518490319674422139447477234781308584070243486602790225097187592719508428266064482819542793501028914522481048751215920631270542378586846329387873984861129180814748480560874621075485335532075695143308928104145274809347184761916978661706961298227108118916373325939306203323666638409856298558880139266534874932170169795325583979773233828739569300720449174371826691569805872821932167897683877942367572335830730647273744617705191918719449362275058521664237880872604790803745827749556451676118932025839647171520056669917520947829313504145706692953685231174265691199827482982579102273623670319651162329792177258477323257613977961237752192744980880221528699632109198636871613761776241841414065166712965121514456038180828905098875036223021664828715436011381583263738729597472675840496759000698009987906624004178487679944291154837209344464510359218640610172597651259817545873593512553884251915558147173144586457298393792793332977406241038947512052272505265668533357469274746936479618257964539243705310782728357196056887586579139867764527159432391376252744653150367923411716859771016808052392180380627587966761116400238227550689234479879005390328337630304192362820473498264455779770851007317926332977354436556338446993522935173697330771930172981249873094399312578060765063610706803287720538141416246355805009358279430685293718500710964471088306689555282042809865049441647406133085985931486790739024255423797442698587191279719852788022113806144027889228292352412630052301053795445327104353376611890836744668245950744913531775960249192904476197806315189975405929509858932863089078516484497299669939301671049409531066156876015674656697246000216547793798406297736311597813140202079392442136582599727423587687681342596820922372194524381112179664817325074392434603292344665805561131498162598026077960738374214098183874841839443963036979407913929199014753672837739043675936711623771247602888239078379251330580447905467271800102652724050593469461755732812305391884254015596648725386976469071872202367744855667171904264611306146031240258375012762478348349939108622177056149364673480702624904053869675529836327637393883863348626317166205792445805067420059965820282123558228763158407008672341927821656133576012107900947488384089102844798155443697267284019065316505145329355297791678971605032770439848407499304104381609822936403554878570957043256064078135702682378955934625966601194410053025026991254861311404370536350750601658182651600860366517681789830328202181267041659935416878194233324379649143656549586896020112300257371821350979415421476920879545669767117992634206400176524818416940918463197821905787107377490988035586891429784595058112499238683658596339798495051064826930963355557138875046614345389304163955425295872104599741888787975927431769183777392834132905650647452411359347661318072235947002820162999891759869366183701601636633076490871182936697651264941990866240684047969604088411854883743638994274260629320730131772630256455985383944419533065000750562036971482033628176747253650835465251612539659589187270314195135886544682165816523702665881356952904398148661395932343904435433271424205142235471565942083545606854548728295756684888914067402441752478449287960966685667869697345600165641324755185510208611021569106724843734242293281808577567830771007795985399232530316501603488432129445447295905006499463491322947424726628892831047516710905056033064470857622677638629040832504082139311236448015111019193364375097747245016361873095218280919273273889435663292357225795722445055928395383222240124540321790957787289560849473168325269689069568316196123605583908538416258787043268987450021202551812266883912078213985976458014059096075771848676279662286053584583242394478339310793178249961229501350213511681319869279932960086819355100660416089814467426106146119979436155782109396692207778965910313709368926855934678534238320625094994162106422249264029191685715054766745579539389335304497708076748834864251276875763303915519283997415523224737120594506930206961314015269262268483670758284229768559113632317959294225842569030990836719041270318237362081505595004316537436466462400646009326322130823020443535886821425470501179589107632362088131446942591464632017415700446750207088185588133917719007053250336359424744944575814908397138004386193573290740839574473197680080021201323208123706640523736149420765585301370386229666360363068770328894758736956141258323974277629617448394937332428321355988079703449932201185308561417900862342087444926774198009043197489310164572986550669522694230659936987137972524537787287019466991426441065866481174070096361035977859789278661883164718114775044967451383861189023482372480625335246392995605248590734435924060365923293691425038941579753879496361496327643669514980813745081654915049229398496770865377498405640019639688795570695946917220397283721711226206941619797626908983610430366822880126716047353085892168886272203560877251184193841951425636408308002234070032431711015898524903847401973787923525739076834638653861643090919974375227427606293743288979509955697711053012773652600181989217022443704516098092847729734180548590130872391790949831116732362569446131311627370188975078830960451146472752538738213985569097612439998217990952898589698529350268780706644889915382587488674425597641324931835132500874202576790820133165599863185713725722840671032948854159360509834618743652095477264417202094504154327841912847135367408624681765971703918842839370248917364715082812227525413816271980227572680604055880296153916101989804084886469420823540843026508359898239256134671723519290482036111773154475949001275337114581530150093069359621734927779106380632424374824732737709656914992689479139251206532004819832826726491816185516521585661284796198393196780308506655083091421948109673386071583610799075585075624225379815260949772294434487272452771318487183375535134718726836875477006348632983157686558848426989795738494755183940157034001904389368655831043207308402953437566695823336208000497820740104286977529484723517206614413037557848147783757097051551361145092439058601806518286487425822952026635815393035460438677024762435512461078145058968116452401559942927938937872515419327895570230450291772511298885934683012202482735264783221198033156993580698695549510793760133038823395726898183678962736650631196371853306930204762992814775625408804050493327832090013508252172104002718482937136307677963532134448917898209429025282914700318562360706175372126585672846686553502056186201605532018486704347036365265403541979623766317937646230424069523024151938202079851712464349351115167411439679530403822423175831122340504787183388997916276604639332145502776249468661022553132200654626987758782330047662373724773609863981186843345198303429162338803132590167130930988029318652696646930783060821436121697956829430566356258437583717024950377389220132848863000732642711331301897952568574237698681276911838480905252311042593094224028592867601182026905428767710023140122401274571214612777748135401166058930305102147940850328444853192163012415639930590201944321160308243691218012410446900578036787010508272444779732875718859866389354860954317388010989494979113955601363709671861996356633915200466636026780607728814943246725983723987734892201838418630206530454704739338969831415343067697666536003845478718851999995464820001813042938605407513676356361289449260278959161832873193980335962489384245554443101971022056627425919973354554554080593932769650069712451339327573295529388223779062635459322785422457872581336822078862731026420506416392284434715824034738993820095482803115023251071907255416562840291055031070940897236968493349226341036290386644791733788014763768211736390253797432055157590991203937519757756182094796759373185473052839518209596842711027826036561675836260465243220947764025371388062207514172194463314170272017456536431682356484537692586447996332139873444479408562055808726468525067898092203572284652562042085750937254765973495405022574777356411261336757206595326501927996185340965851877331217155295063128544523630325953995011723522554251172953416916191008678304968944026908537525029576511721669629565387567659309792460387955185826920172094327772893051640255685254045479020540690490674429584346614009545235675159718157463692231864306813235126359284231600512654144485705745176520845176956874648896348927397193539763624577617071350748163474738348166747796867958817751913682612440854880377870277999616871048882533450011177507736355874384368808780029481690262913633225281519184396433344066463871962957748413834381994859416222574293318857443327988663606279893674132421915085654509965415337660092777604902487377564982305799891039398158921746680640593518948622431831322130681806209216148063455673604477833467433418621583316557050343203138539139907410776155767308929552419524196319566535357350072747363733237238916282771076267424788701726937376712433862817409701162915022352704090423717477394557920394318926692487806449532784980438021442992248393847022565506802646652590135538686769815570225459510866170596713673354241735222402238212314850881242520454974461740188535622951886398471507032906204079568746659353020971701170625745552691197100722548907384648109892008599043942148353184911738314348987572410187088764169618631439045450313390327119693862934196536383348867432598178791211301371139336598606010991259527224273384471799577315176672147804381050050921092895019446621196174838461581545663950230267733305046193916513613872133979050639199435847512844935097343699589747339533719837258060092495660057284564312342939130559954649325398504503959817793743223187168246836239493500755843423730763819784442375552870375525639402440085156758770696606805249343888623885713807458417020722719713362898851752204791259089519162893121228289026998658563019175419057290586200675601747428679144854269079115908846150653399810820317237551618582868178629490601385203837609215448729271664710241805860986023539131423853852580389911432198417771190315083073296707401475426871328279209361892443391954777662640841545874473220625141453282904901260514695952131100712172935426685292869687765819258954260379191579628679097284218024780332004710030513458416060434323954792797266774434452893709046963810723255662589726904131954390159792680205700523040914445777491424615557192495299197328737871490259000666536794392024839208100328667901170826994159924053990471873711672072271115357387698461945057020755828850929556002515619438953032659405140914424937793862720028516254935646642662513340462666339437633808148700227009357798141844755438810996591960310292009009541325408314347192725865814509877433489280486826435225689466854221534552685319217567895649229778433922529498096896091135715363773071281855698869568909165560320359296886342602448206796826571393741323617255174664423874030776881763713728005369571554843572689889950105827951862319244302971397664502624649992759661468347064922269713958497036663904712288376818484118165350463984908536214130788737056763609134208268088393215749894776594388793611614759272250053614812863948029608669615388342310206249339014239205914379624395521708268114562868031679702277707726162168680317005885556866986670409901212529385021912604432648153811301620892109214040783929377842106943799680448239554588792003985148497806691980147799078858353190556984349622527995065357328649618051022802428206106942504764695389788222328542962578667308592633232413316025361403865161541773549837592442337237948027567604607513659694629101818231497030450530093057833835708534112275513517204729877056583947027761687654545499500397404094028580035404218702947965649862767557015289376884323438912666163811156998325860504387447063450347291942056369385145411496790714129366232413249339531471643788670157653136521768344130324657275360201139343859141470524182770530537890126548354255756582449807655812378913529362762606057814444806070634768284459900950220927033364927392027674531709414985776288041579056947707020407287180760779025279076264912605054666683573934923339848417360051420241933504718223584028501120852484574639147674862399600119299847606435336014294422315141536294283107456597034281693649544542267849514921295197873987925046863811662861354888925333184496049503070271635647692377944610011447012443980131801366343204225099283648669097137246510407943800609648479155703740407970334886875676002198078815194640644056064980544430805947247836278924791429854239521978648171069720897713563643689444492377961269779191589308629785047612530667522569266058615254173431691871268637129840290697392104315575423129622729147233236961370564610776604166570561320132652702956353641340724555093006486299290273833354654305671695000081269883579187638069482378012059345353029470176762100734031757382340714789436037671709131289018950272874126869564266524882458286937115314848171342689059087575448162874250679688848049333673118599927917037178798040765244823573948549778414870232017772337737881819187954007511860570770831919305600698113166203466463082259499532103337392185162470144044869346828176652095803164838809514558355848789560026957532005688501534614260251255403151354588759389638659925379306992911412529153843831255778181006381601067873564195067455760743312779999662227243558158006254849251959339606470512701965736779343205523608122844255556564275278308242408496233886284924966974959409400290768935420030499528679875885694737772727309799146473774362690674615406535328306393794286633379951228083723556657335873395077882015037822847490072379717602628773075894409708264763438307912954116592422012214364971012164235772494735362410118235597914903207731229265719901180903554471609537383505946261292172625698365326620066245524552662172674952071873228989784929614924566939608741916298860248994438789679086723795108524738445776217997321617936114211372802968053371622406699472537707452731983924744743922019837917794141178141958019210874001119500035582885706750257367195090766850896824685835331657890846091841151582032998119121839262423703728848522299324704754314676976541071617897844849566217062711912506647887966143236290943308937460628431468913662410959053553558875065276001541866314423248015605580887630696523106961259923009577403470848547404086384464366153563774367361906123104008177026513577132741229662921795189813474583740487652780560287997111714305160482189005215304897115385557368681060919429539316274787094676934804476867656661292898528115603903635883345067628374778737843369696379332710429301411574643081944236081746775001030506199317124691254540717263923205515485253246907219340107458235518801755321961446632231692286160323875318542042124789961752463794188546946567843710395195354579035910957090585843358456042287484222621117853402935418009774196762790727132115863409463874822562574245638951325159593731252101839651656266638357727305048837921282166246046806297703653823113333132436071027239172839349886463668066282927747199375060391993567204329687244915637962184148283696153416306923628928022415692402983431563408087892641190108459934848040294710181198121006251042041579795804315978195362789043068919755364035466301935369213066407279355431256150833317564742263486338918770405163838126849792094273436768070989735736811402039055021897300888600773941085456370408522657482961522902711309132983462516839864692185422035386338855798496576199270981066280108742374209101879406581330581867337029726504512206826587278104460714010422826458802950791931251344352210559688899122696334944359642329563539934021270888890703094498650131859249929891759985344853625399587768939474967049718081863511868516021870608198267699049329660452605609623553834571593390829009307951193678942566944687127229616550862085384466201281990545509183627486437378513792665063127398586484879394107897665020954937355758291033852412165460199311600184338608013013923133623257342607171010374963569197965682937099278296833625881719764455712712160377625259293465471554497599960307079419877135453483696094987958612607822583105399966677781439869383306481597589099930364785350005947296375797939738790069753375761336341042815893163997391840034489953727961244514771581858837140068283396400499647402707416496861322770286748314860317977644430553615046092985919277291326138211480469576307057148176415614563488444971054874800614656950664060897448435352604682512409813662058231562432916650713004682583629847804355879387200971057387014158042692043217598751645906938036441659922263560303810430777637520407153987369895115865961656812304354257695672990631151469792748689566881509447968859986717414024053266608417398363896236899664246698777352157792106575214761483240411639190525931198637530108765049227443514064445009452667997048261850519162409309087962786822019902951593507003677653468406632049397642173881137538837205977651255110813552227791344738330278705242682015988996548701241476707528194596479745959669460497114135207474880333627455389392243287464214216625350228881445386795705374278961267807086021964156485843810984369899081744348451943766821119654254555235185000923841370760596521282435188370775773553490864305291995827490117729405696396901917168897410677272625303656145217141074375006973998137340313487845910767187974300603939021562761736554931364062278855715062266007558931983424097197497533011633343503443370020451597309152020430592605398989103210045755104451800336870800233595379973202775575758443771134699931970941371176072279263126155787688435975802185222746786060426358270960471921405949553984671735734053127315237669425861466204348778119224537586637795425768051130130148384471162000002388062229206869959046739784576420503881186868875328046012011449091543796711203996608498551718852132513767303212207207480193777484007007590152740862414340904106498659204876891961773915826911715663224835494748068911505234949676644583713654132142622458861274276348723264386703564199084269303422888141265728642829368834051828718079266872230479368161268611853065618760593984561112420050052574982106751629024194695053233392195618921950820580764073568300564045758974914380381064936112966166603528998715911794951552881308896910211636192451674387019548247574533046522502190573242964337965195042558688559426132178154972573983530308902861132166175263225527985533012913380088135081822667048511626083537339196519540394720235662804160946737660187067919010351757365186341812280408292448441795017593808455968677472535372896241031199708998796353614715887382282195160368460510645255955215381510324165567991006486469199891473958156518257910109879323492802998639239262371066188835330213044387367763496355994359061833161720522179536315388289908955355727141464598298856272129477370667905263723681021771836544210746005319800041643487116169929259220674121567505713936745999597033283483263832889387570251605073229043907754318460214323661192833709475448802180941835575929886978271493470949528498136164333694236636703124924891663314915392262749459377494075479593796197183517405841486612803153246532305654464292892090707530940234166718266778254299093336863506364748348474947149376958781224243626171665318553213422838094674839825824614471141425393537165484375027461780751141554897104017704433052121197399737428720024181293480801000515200751760794275401457926536410250857727456032656981286452354052488077649896172279393899234418722958928116290144201810680185737447929000202984595482648973553421582680542561653969833674733978314341175968052815097143445274516912303193132705178614371552682449182253547319430874451541036048877006083026512112157135770028818259231531444975496603111026332581367219140612780390713973520578088996406010445888273613479368796209383767086069249849933189607613861067246379158239548940240345933376365521405461214865333303355159551446486494341246196031563200302362895365214581312622565704359179481656327061784195076911775339217060309768613634509495875419389882179389376719096753505274859993381375398386436773740930468276230216456451007442362648140371827334076415211397546595599821274228525231521117221022213610251584699446833086990322923490708319956160560246401494683137024818270020801581355420388166004361157370148461319557737586903103227287603976643071929659647780914798971733757401574843838716886016219302044207313807337797225451712174887535553765523800195713017514437506436625596947502446086660214043702819904755927170817484499071112512827470764189584861166736855366172973348750221406231233813917184956888898346774591978798445546585434129237983286238510751852132515200424998369829084636090852066684441349201679548525673970820811863823348181064721677356243340673322635276273381603052614602524538244800897874952912856986040217159167825655506111351463191075360478350852786701856055227846862889274799744608782885008485272763424503162346659576835749106714403537362881605966257395933843305853745513158183825056967845467293690630122833130082458456752492469654171508646407266046518046305154010767716407789263359401359873771947627157571451215979203651361966271708392663448998128594085089069368789978996357662806673417871506027135068959587642414284717115699380404056816263913677515144713277046563557261978657615407279802232085793815604672794326135761756866084855793202827485201060984113846881527400469002064768855119026817368230653149400084279017215363790965391087505385250562132035821504726896755762004923543279154825054575790879350479822768980068125966335197440766283047389956851413139283881953470504631806246982611354571266309131582402798398565447137372636039671354187548615340173061601107935346568939127157427946421323256034854933594020437234887202486893356216059403842159442563560051640499200391926124942471496105983663648911502532809049274089523940536805038074559726465710251847533335527431009522784718295061501870522148079073667337449323491611180468674916914191415183857705519536225032734208817708399754029094605141213946659117945492941192896212321432821133481452908595161424323817090717372432551963125424520584965988642473093702732952531531006874334447063324140076856636534148714877871470562123802061147529191586351565753483805200340225181994650197900918157835782593288042794196404251821475699592200977650391145194278381086105856322678249540634043528194926423679813165263646544710645085677410709939851994222653363381674775370716111832727323498166516771433748306859352730577847212092466751769588327920698536531604859339677618094547656751158764576277717729219677515635109287741612021631349892474024766443798455332497419916112260978114080465993569311860150709468746371982682041375757940147669551064217109361660244166642274489787777098464149494428237669799325710572599819642423185952808884137914265596725887424888896145879484635617223218923167824933409984831836117999897448230920951787714193677562811294835997319186291715333634474332933282490669673833691293804629156665901088264808086227310174271125032445802750380664639268749115899474721236962644017520093205546678148201888097331043566684084514526994882265344118403211776987655289392558022553506965344399056054511888082718722108859713155228873966084500093164680432138910504238149459919229889219289486298328052826762210756368242964762970720600580753726589611374785991895234421341810323816867565724949431088594429576435936213615486984038120322371860258753045787542740538545176659401333870629777389499899650378188007967802442251090087593752782914368714644315127865239290222865834515309932919260847481100654903673595356366038649945883755243304416559415783582934862758514874516618849577852597805691375346615310334263344924581541370099325250688081084627197641983218304824221417012538886556982596534317704894216316869838320263445360117744181854317958872125888541739177405474999457226588028535859250588491950982839537435360626749470661194764088860682594497498860657298800933657558123251562363553842886329863563011001922397877976326740323977917250971238035159137827552529728892667558567349694769493917422539634148633263460427931458976799287365158044503647864459438691018892631373159312671468818090334013015807886921651884102094383554406296759896080625361765667080140403887713645012782020549682637703314568149633282245604714197150920451697226658215238383355150555882065188832000779883694383332371471098462788026992439219541933954823092307159088408928050741612778876036684466232261315098736040908187062203390443699141575177401107206337782036948228985188923656672418863096200731768833089911899200809709673621289855490382281105522879657258303286744888632122700092310344188009696461156536550402531434768594846008426188362515897514861884595097304799627083849196455528611385069613597219704129357810019959188574952956320582421456987844558260875924882012574913499736374326912370850584662370550723639976352613072284168687520408091328513190953511795361937334806742782998473587802997107389126010993495251233482065028835162825204777808469803938633849987035768196322447631352555334012477804020344672271080392019666300355555072511863535195820191094248685338409943733990592212532723157984872600451955354319170195278476540370447785293418848279884252774764310928026585715589755000434379063050992783432341983327878493556570666177675938584494453795260216579676410680798461835638428223336665476042968206299619204633404620691467981247747201914616815105348012835455796367421311117975241769687899091470163205142145812086894610973159168749328675939660279663711491010932085307191271173178502870943766132417599749864722070114291489616759123258729269850799283548410491056119806068363299627815853917714273080351852460310165520086092717976684969122854640526102988002647166235504979694261976103915369445768448102753229954931436629075055975797046112288573855473076519459451387783062681118043091003403190334182468845152027885932289572288376888009213192385303530636941468679050629967847510752912746159615479414219676835214900398879361929083866360380220424618395880104342551889874550002623287299830251291632720904621733156196963863927880927433964228548095671793895466569640341449448425431916921262267773709896932648709823885867561433609821446066349757333541352772182241200789629658806285679729857113105763843205657387613707970536435088288553102646855544282059129658046899604164681835426897635881533070780432723871269951572679043953713085158447200172373028620908869436526777565721012387908870083821054938605085169586464472787289443919017575311271648114878052210286037660751641482948117383574633365602652307852281464930205858506363021576701633037807012013249462019307756220958949565639315131353359586535721372589864721425016594684752864017006685144031861025952585254634169868609911447467577556435364352870196045745242884799446559616335090158059101599462049620333854093711432311644493964606265528996729808348433647555917302589621507787999137737962895012725061477707681110080928059586145300454300870380979552740793734155441090650174183223673738625604657769261772424151071315267670870609363380772762650759163589289725611061047355802086608798189759135884140638671143262733795404990110106848292930863004659342279921846725464178203118197215850948150588303124382116279104918327290865382667854147844081739801804047848377885944952082264274976446037614648126681511321777600321690125132393840475055917157193833648504538506128117912944993988109707908149737509112182918373130981127938699893779302457111032469562673758087317980005856587279203254279051611873368389124078076805532899515105889416116091040790985134583277446128733577806412953487826205079648158941029934065602575632039752621796494093280182251793152686143079863887553113686924608890761194076854849452965489572308566637813974321697469176456658465991943190978458773851138318858071266062748195399968129575100046611980884760957097570329274957282193697427083344604349925991341255222205454448062470729732395116641551859891925489482259228402597196745535088056154281074301259935353076056025667289591898338352451102567142966636554743288564985489891339180821105405188787818171564673805579821578790445186949038478274951125679159160711412603363416356511925990384107668590721397544794739401743957702320019326702625094122030109897177427764576504057558819400517911226221165512064281734361849825599230098972847350914555367782591315077355654701923752737796537892557127875361894673387026811983100240380903577562908084249550709385396237202815506694647973044506597448660086135996639648556033759921903389918638707269018874304175146251487564837876099850004746089359478859953463292183757636560664000199812439751508440193633643104566509397982519427179122338315825082727383991750980909613046553486847753584251840948822063849682079209451388382152083988737332204544851172913569585489832487600196704892881690683333464723834635705729002732862996074035671503221113484550753159938136062249825423530257369625913869435038851746131269062560645287036073053055961922691544971483662259358081653973750265211686080840850473050835009986490864709900694645266335248528664529483676087684357167480509575996914913131987006154961147821486807544436209274113579289709013913900867277088700773416766114330960923408605403537544949576035166007600669837303157125769843562818642552052957426650655536742475521157375284162067271041532783298069884941908321685633809652531406866715686938136826317995439181240192794401446937325874136557593779902766278930468850618391528602983011072727949641416339023259998958870889840810677137413470094546340550258476797679301520775375880566670309805856520158673659966519593299745529095953119228992264719601036019208839947806178843294341212129993306347375358958736509543503498112859948216484857643229495634634171264657763248919467524879866872884362003727784309168555402389405350573888470524677124862853260627110768079035788824215650145553901851225110565505220714801530535067618506568217089622909071220330355255549782388419438314636041554078360616800517666422921886824007124952848496967063855952283185330104500688259068112029096135200280346508095446187996319510428506330322286739897254224726148710698333058599647448176116667763472613419693139425632078449411630941452840126615539725451104416370116194780958856987669759132860004376770062529549594660660812212573893181974752366694439400548985912749747839209842983539122381906595215116320606821308206524938890714152838378809242196293757846173252131388044339053813802285000961751723679337359841786597193635879339256415039597852798738928217705087434024864371446578620462588072817979949486145924770152364407366858352957778407337133426346709997656996096790560176800988056808081512376607716210496492791291749262659568120941929577334584932665773817077797567104841451525006751773802318942917052051770552649082232784035017959976862738693554600947517775521191901138086135515791056352699838075003109438299028462826449985249628863294276150240686073491568381562163229261787694224017267784977035019864290927322771268212307180264599303041561000334951534090306358147587998023487703981185118315970133548421484063688801776791249973759886552325687282850477637237142614443130274254856132574568966944439157138374655514630233102002653669623636785139292981573026813782471552656229093860625817595067945462152870072631736943117189148145884365761793541112381531160428800181684763214569623317480586825300165929919549465605098703992181682760537346570874174542748985429574319158671490978940002452075006488119688805104793252492298628257172687458021116175590030321246009649817678712606080309787312740112882964492911378879769219286389227560994094351219051218988883583616361288619394169939662457436648029399590380036766548547742841291527340069647296183907716321879644122853914348704665353220331533347780996961623640568245045280732437715408269721521186582904118356991471598463407448208573857494639174777593448095711218560644263839047747237304716877787997802868500388106000891287339220851610223325987417104292145942852821946885871567018223384206807362358120448352324099148223058730344421580014148195916801284546763553321665510632808875799104825504678962561362255371867857058930086413574117533661313003357959847780665224434507620498400590976204726153217432115234277488806969195896542490279611076317468636016870139656964835838144390306142170261347018916454333096308451471815832116120967290589176024380211625177648120504155769219175317778250332091683703201526682767987068750086330988857121041680535154317411974817362502017529174868090753511451751385696614821424572826548269025846626410574850439787939294684391277358038828944504418114046485384456097962710449447968293047617862078246139954786472448065972631176753654055636075542023627989514928285776177960508482322174947410375008377862435747686937858798002049665799285688787678763109445087625345027478436242678744141707526249940462695747109771694719970032526010304894068084090744161361704662624790115688426183237855983319671302777346779883402648228686768699132442133901552933840054244082826041804037741546521860426069116209886712245257797732606101455888590773250530136320144595563756657425890130795682864063437400468854190720836043994361358663348083164103779248213286001619387409966631634316743979653556092736362839892797820830652021559740523428053028297852042444270879005875059413509375630562763174667648356757488152199426583660695062090262547776128711467999796914410621791019373313957912395150292731778040506628287216526541816484445351171470114337203902541675226925486269847485635590625355557601001334422774828133486778180615154515671206911093229706661023233188698625536864522382018875885332989099249065098167117810609870979376198458822036281182066904641921503432800268182043514252314070901743610023442238658240596348314667097712763095359726068518683137608048603477430844993448170681514971749999356001006571183275189981114696554226871153866401873172039314307914162345288051902621210758225141939696830384446708618946937808797294239784165833474594120391824736197570770611783292318433026932810812042190515457356967858835119167359907712913406918900533422236960081957352212590324781422461369731624742311250974055997586575745529308539404264052809776373953962881212164626695345355557699993943543385347971384332220279202362298265212694468572021064985379795767760172764331470287354554354409590089456024989148917381994443934044731799266344048060983119611306133299994378580390448974506478278636524510813517762358204739534242490758466383702177232099191868599245076824417485793837172165801616536864325442533102947637934603138819492882235298487478887229565403905590306461955618372384669124687052442489617561357632339347084767005592581343800003603387390053113019975823104918707212422646598509746285524072654022600565579676854145087728819520624669057374633816913745749508874037149935878068135217460118838160716980247477575279030877676446176240331440871518196515875999321631232214184996442854488946496901476698341810253290296871519753730878155425788135768482639077887165455498931257036392953419759474490800858057052329264023752844730780896690031205383737291868562545730201936927734671637962728161447972323236684705370923728574990771745230080384258758271948213949417265292600092141577876736082007057772121568528164444683074585233106388475909907459431695260999738020607317691915101309606852047202988658602734610777444103309565573725086002707816443632527846452088239513367809920046238057383000218793205934065272818943013209394254556156659316710991871899527920859676090226366701294216699238255125583116372174730563638642860917942248598002274817636471167073034822889209867103425385637574633162847391415919455430228766056271305228690832216123447794497976324831275529483101045425587233599592304107346646266916698530353020780232512119859770866712402562438222498100688484391737108045408358841999400631341844648672942362967578528328274923239794773078310587268009529799609043196438902429961725509894673227954448999978518554604107225705447363967803162523783064461954590092795351332755584704016109109147264907589203439621624571937021727388276446124602705118776160597249615364569751666341874014104326832938506214889040181638680369886854591968351427134706518707175505648484007405488809967590034263151049944504326132768726664683726230285151894389369802097048298598156704076685415631037765728592796849440927181786073989895802120866488721440658101308200251318506426750686822383870761756466313663888129010358438509311633371536339139742690233793079145475190201783578161120090671567820351539669784629898454225235480508549860288690476762052897493048998147130050765160317144168253182728827946206563523397209002903908355126734052790945866303531080733475695089592750701144790322504033465573044258998306680644830276144595943492977244594493463464663529589019818789134118306748441648815008126045133646586105240043362629440928746043668531461199342000171649947392568523901394668747105964123319686466366481282689153161047050957408906534560201874647296721897188806335798283935024973819266836977541646517142138074726822325319576079822472541186096678429676136939121518677958554725639095089827264983895484551657214731345424425055505950873603580794734948298097560640058520489129631334024404982316702009437117924825637460129829168093403513467701502562555302560007622266790179593850607977965999570500124482570194116797674617055808360929232023219147115795552053839781698614099437885377118420051757940157011518276484937914712565308229964091185114872081972616057296998192635457917402762263385580240905362819206007560283170920300635129628746023037971585892282047386134613735237064187612974283928089569748249763113514852866693306150304582312439806553249264257657205041301745873861603798683202906230160863831042598477897877529499927174093971828467875273460181356658465397074509975205455734058802198876349806934387377900551768908243836281826477623512042120920387774064213253239359065240362888267229299586380413110398210857919854622605808714565559947149279064496577893144512953293089425788874971779213769521616665134849902379979918137058118888502166683193121863639531128195921915417047765017045559076760058094692904462875096938359184734284129739315780903288486926082720728224903034637047922410569253653901752077202106156174005313569366376193050306003548148455040210345006938688164003840363857200255270565789319352546495712549400147217923023212867619080382727824748365788495285506361514815364207543490611445003589358853595100609868732956692838836368120907781837086763184310228288895144352234083002222713404545119369279081320566108784161936066805295385038242972102863201957365661896909877797611984650187766714154097738057423537340226434783893725394909954986194639915423850914591785410153591224091706886191808593632860502890945954499738332915663876392834721901513414220686297960037766751042638256179812130729787576045797239589336254731828090285728565271268305057898198475110263802557393411892005376451024712314148505764165395866061783296302373100558508462418399801045971532573090015025313182624887973520668168727334639439751878040506478484805752086263497912741561900581291359907817538755146878216986419275536958102320883905569661724777397818957515019101483061916687111372320294712369928622870909487004008379205718861191670312246042389237100728289743137659400290622320718916054849074662806280823015540940137382015095463523450937250249092321005566969445936293879001912091753435373257623029377473315434169557110383988585700984150151992140440958452165078484587836261548239379002599967123553664546220585234018246472852041016637612395680482171818615267174802992345076511403673492701067654836788585138853614543494938291313111866227171748393333194442053947870374938658857508808078012534386348643273067502656748307313124322348290315361081681535305723608335613534130435443205654462428554477224635216783642251849348734851575401855512790510352894678983059987293756614962480385652105434744564119718014713086364601382683159383277477258787856753595915545672634004912194086415827745820048808187979640865130963850372809779792972014403727023322239329490187795851386939722948713207429613639647970261330309642492225201154972867127005132152920309679230810560622167463053008258458187135121947054824640829986672468090742426506361505944764925086518261150574435119995203003813051370474143371415472275280704231196894202950348063945522659608836880211479898090338157788021863249802195820290606370989987183778018967167407561697707128864834965167865007366486250281042840860362544887209865779843483940998345887794529603780819453381609762527402029752993033060221919104166437746443018404711740351583614168291853607519241246889384854329459574182819295602709909662415876697356311391925891634831752455814910307338571028758603936061990565553160897613679837175012813240615832856256612066965866651876624697195746434228613130333690733209320691495111502580692322933712000559651352274604321459544222227147741318144992733903456666389645053197454971292423957469424518282553744969077831797542325967633094211546075771119285582517566149986365139257549700678197443085077386229891566453047765393480940718632956274172755836849932384184701615506690029984703666620550262897165547466657453265636873128414450756309363582907639379875958030591733408908297979685597677677280161411628128606524447728116763783345000898281297204371820298036063190790297753860131776721816095612707659891801968947696441194730677563169712502920602576022084079513266226944017497052791197290303881136641185016548959315305931249833151342111707744689583530023604436055564323426704266147444201848189626359577883409374422073376744788194919637783170936797080221929370327349825310801222659197900878369459266129794664321366956218353083378448768447595221264049815255835777189186843463353651235300015123575294613694141038806274397554456344799198656760483400784067643676894326714550487828396378249084034739975457227086041877752695929712157593384974354382350050234279540369696768678852339805902632813209668886866615646827800320791726634877933696974868447365973376318319099320720985529069830986808760806086989638997579074856389383721026558285127276920544466304508026262763942109531171040143504605651533853570906332840160032094695521465856675420456654925790815661866316642912847478079608086304669781228781808176950523042066637158755999360308302060743006881793633751413484298531188338021365684265889845123557381265583339097686312607405764461599543346002084961241677108454339858879756512660150585333143133953596674720027595132069040382631667314580019925045368850198120801289293640617630744991032945451040377842063132509419136925210757496681325297695857497858903896127867097894561777300783602603261566459570611700633941546303700427862602374776059031457373181351166336703896598132430709165985497485541500613349705810267330333303112838022003921052974164934564201133408743518587769372230102858854884167745315172581604052503419498540607158815492643511801602408021715114095716951287289248624747661391150852854118115089191660678903382743053914388749687978276199623219838045747749878058629697876381766498789379146702432799625278764089950751028267967333414954127942227449543364851066919645239127139925333464127088796583474776929245685961648381841683000100245303716438998662355649003221289618035803540208844629411756163588494429653317696378759177204166967017633673179022747824699401589247341963371677166505806179832809875862814835257502905361009517850070212928802701633480757433683256922313518257126393020684026143573952897300231236174779461816645466696402945272188798019672049988702326374552434957819583000213453586363640330721993062022921308626489200939079035770381380196880096585451293555331600590992158222340034971257235947626838029395140177683651041308275363947975010959057322445444006552572202027580933353536968715749424659451890025112816465597784893331339900380944823470470196357790844767724007016874525049611627422683009017382078531778324085245729319272533602142573640588426560336060224244754347164092916128308105145116526360817046202086947533763005219508446117910688561148988642799618842315146073602619190503747967070673597935482597834999817083528880955195932077049083242440514696530657400402191123770330599712296372713315608151629822661227874087012313942375312314329148273728113456677062495425357691653249308737919743792992541199342821630898996080613232209996488233687908408936505955107833887034975369141353000255099006738761956031329321020097661468668573162171244882939579778310238177712157607522143277140742593949892458659915147904775548566707735861852553213125053549749285401029969655660427781683643735041160696433889215697940911883284181869046294541801198616013611058763831988350390821764314194045776396711721261348135214767703593640767180165123837101176714054637896727283365698029573058464482883167285881114400625414350112472147659604254313511640170428300912035611955232253978588573362125946394238013728533963751763227063119758209086286578917924732345064218133836806477081714741842368796342202242713447447705948098921779510628266896853835177758114461759139206071778812570844652333266434027117490234911901691856091662521420044714909054834483397693509468899939755869855713775275063394805246904145289997044054210046123755315534608438573940554191165973836539923760163828471762592740901620376615124929806277743913882792094418916368367615848867466378486913724169196311250757475743933065875040581500218708462179028175618481755011836247981117822524925154547131176921123982819137445126007499068934642364081164660276755012649388132234161479801577570806372410749106178584882845605350464241100451785327743746392258990494326935840679586789555142582791226175065694101118081411265659955959888286849762595308523682905600933773672612514216552592929760365289894845303581248684423563141882010372520038354540045812968864730512457792352712221030274827864254714517223545596530965844709334171223560345797126101590541179028796153088161330705461256197446435110076080802567020120995897360437660121931770018952044079155720967078772563522767363058233195175599024852015193553045461010288503630635282819600972154236180160213128959439106533948701381757141850051022860415798520254670051801259642605798945156718002213832030867298148845750978994373965474055821500490498875080149933078457340614755839920477764736625542704432288071094419508697710255785841040796299749820103196890829637594154596820584370339783979254208465307355274555940008226389330875151803577130122517077280040161688089597601872570455364209451975705048305063254210653021034788354814237014353685019551277064796136113122848549453580557049610496129530383867153172754788499253713688340684222865289042655272732416161374030616956657524266087672052773436023531234751957853962738561996730322093987171620024074083800992087908901495030890275584087308275556821467744197622694823371144751501664701527890645710109645550899364434407855935159118225989259144493976522610977586280789419841068785801414488011599612149580935131213154096532044350490100135192127869958593506973915137237613879116474531737846387676704156433454325446205596425028425247510405999760852313785275777380670837969854720693406714522475092698898728737310862648419384675878878856610458955155074734065119374990363699327593827600951227346913395857614034716618767208468077483243465902305175865944565298711642486126428061110248410196734639099179592518614426100683442352850392363364695172394734087588421859866435414134655364524317511256664205984819927749588851278574000400309308343919980964336891672019556842318740443308893838604657657770934978109612101056679408086107439181346656823469041968374683723007129567727667110448171905741285042856956262553626363615187932758027432676347896380220266403619059204685021003116516303525688024422387117813960898440386874865691965185109692889611037107577248938886856842051167714079811871545484246591007687202348308046046525279393268053829514679291893769736982842669902067543712440465157995248325967646441848778271305178487211709315268505118925452857861168425306983240289203971751993881646038584680361184094598761484907944472015091678923827330974176231867919184275604967566372106642056989845650272704901828683040679083404373524426445119354991536243439328564934327255775911152861639585931060150813388851184085156554124696770751242124254398756223502071223842286154470045162902719948586187466908693480429393381502804296818101574213609101906815025650192165484832877956661051511436860397899590630648748173888421417024145111155816472944987109257385992256767149132009665860415184136228226406779572161903429348906539323347119420937251109783690194937529808492118156959612363088573776111673597570888476229340282775248944250831736937118191385080564079831762610912562900831985271188666918505773795176073281902839978525115975350657874084624615640556501802537092928714248184191927554446352183680448681232179270554740766907507058377571235964307261370315958857199774330337468188609586213024646210996761801149929112970294119951643803566376728843491254697417509502398852129260093340150186480254974479149873380246263581186367029017305643847976800821501133645848959627255356091418646886310328610798047756847471242360725722707612850435512800806944404390709369807199407494234124335143582878420500974544589464612056615813699304269352529945892665453853476756557748681059304328170462601795848408726543756300307025116647642290070414695784198758138676137530391823517791414177135296673078099863528801251228454559784311810064955813372227617449942340939321583539360677049343023871308404694001438673365122920542069876804668321161232559559177119741899137872249728357335108559388327730179009498749250775754686899926995802138123178364636721225530540712151626654918382636267526163014775100925324585644015428984547710776200443672886150409602875830254562339215317746093984188926062974015334148306728803846695897957560339660150741826133589818540555923213391021940399815251644597722939530272185316074597146468758121729141749300034959041142883879810410124191542960399817246420423537496784663283595787324696604466732265577975857939511826806038733543246819784627699060142303366947899505123655506653339032038431373831206325444698861204698696731512348496822547639826638533795111087614612786315295790711991712107936141251261599246841407539709347727278514947093766314963105102648426488669102244281806786143894195606863972107626643227039564656929991765756412066856947833573042969991289655722198123067016183200622444719599340073640062272421511167315926992461780419986797723092588552220744600525960562888740377139912874528269227688084692464608077039960398320618817943123166501600249015405814562233439890805995932735420661892507413900970917099239014406030731211642463320701272146992580563103691041688051211388489030314658275042234449009748763004437644352794131296501085535900356807733279511020241587639836976982175944811113980118003928295087266801933324899264630904504018198248962417451721655816536720711627244153901959136700197088408397102794356807823490269248746282222730053189383653096591629553048368179478193701278132449236261712001698658699260728846813892224933785468867698379725812869126320662146599378197194532887992962767297160139385847161532441718120761785144068057707201864420755254576757631493313124263846007137614517925557780996243609652959341537356248336951191749419186608569874759018573378916448717915544407040395410020321204567647147477836176162734661287608552080926915372181912936732397894614329893736890977513828876629153568388747612381055926745820747401429761703701568451639129311520642501802155159170610095935686681706685902856810338439755238477564085988890472529877964766597474193032758157201437916147257940067369653226910900291640456532415239513188684827806328245607588239973970715747402563610398695113699316072647917575159220192543415672606450195341666032244759046335149772632606838104553400349563857969484444818795833542535000368411970574075455455175224811844474889474930907408051751287103915344837947069542164170290443249588577082996948679433250526914023295104282116219599138463075932121831484801481570712386082202379804441635934680197100940823895756891329175429892990655799534268161631756431958651116465700707548644268248783271803374403647977071505883791656092761826156298130441993640455132633792924669428737358322808453752941750045113058571361418100397130559144680869788882887608047144753258614226598111392494399308009694857949942998563739130965772141387223645817104025011994679626234734465043478141961874028879331599030292086284172244713945592621446106951893276106546096639503884714785017657504465014617475730643661815055342197992939412434518354706921136821196320877382430312357814415500596337267625542020003982955853988514402960688143933603323998506748298778035781266480218476740285943512990825342215522670748432771729497632010804543437357022992576730729822729201477655277056687501447889480036646131115998083835590938364202218891083008391685699488491090218192983668818625744811252804377216483600175813881789513088954553402756445689200148875485365648721600588370940276832673957318895922367233535344515165538434454681143805746751630491866247379310763580663415635386143413788040816718464155378683568555585901243184817489672630704098760852328999515291541673040172405948758766396284296701199741090436695644366085300870597390341923739673207586194458049350125963600369209315723635170781571496142107431969247671742031397468067245959244177537108426875022647375507144057250331136581848034122518835587712348944833254799457670997905447313419523900813382848468012500595655840494899163320285294524747442735440746295944825097113535759152875539393845392441856070271232865343171131930994939654255482287729050871407981357569163206293664620400320419362362886946331625019460986684215931547670877781230715099374390877675385354202622377226136650698921060872226079230523783576282598007225773684713319013728750061749834121675055496657393902776646139312319711816495087409000443449597937703913977192000962803213591193626043956184172913650035747548844737586754257167853648478478359616854217572972516926214184096096794843747076645562526480694052610103607436596533121471174570582055146577508590159679250073141096165881647416889749296186862999468792302000274176717545838923498379546554756580476086026828073228444347569214834546303451526826059370971942869863865867261108138005846902534510784421452697994993005811106330850931069651056997370380745325034818036375574025112713840689517360927037344588328723019149867548474005915941007636121438627122927018176526805311500876037493248218076978921984891987305446856493843598953171133627607998136278634095154712331794623870573161829373931115913870980880203954602266268919632874913929591428999337128180685139702559167856323451943663006714744895053341602761130426963619700903223236301049500654427544483522756356993846168842013031353451965159821527490788712670932669202047774244289975083002694989399489991882356240382611518132012830939913505176954774189988275357528018494637896546368071111695266415889785690879148457520902032470204483152379514270907167678633005942116463087496148520170069972937487278436024757737280837758122308388592136568390862012339695381899142736616227028925326673338922686218989333823411344634226107120648894085719417990853070493411854290004512847520294339953188454929238981782589613068858347352275961130447289912073402669314998360788272232095407782485451991127741516946723128376843485580561300807324986117934962148014955535026796799239835559108838336760667963752365940785772129243666032277527511037560683044807676011561675107928806346473030728813317498263632141562537377681203132807304148392133849832848419781377493493499092862395891791222180423039532156492891940365902197743199011115828483251928790264084278558543983249886552994811755363241617907202273709584127409365535177941115149059312587214201895931984766133509461365878699663015323891145328409009410750799921217821360525823349683871914635989821482879319616019116735180549173635550268107337432292418283591338530087802242549230520047636686076392568235208028400535916859531863076433372418344090147017448093014761494235925973489498069451413053157656189356879581742057909614054222709167821620349342683230133734417154136521394953491869226046714573910996134267137356085982710103246948038429308143897464312524530101427262911098594192202237298526294143565905453528677084271721056197060957391982544445302326357735775176479819580660096005645886814194415401970642039949062030615965888401952755142338199681199034512883205748663223603416184849007957254713446759401891127201289566696539623658211219807174581567497843091829738231143792372187129751172757588645265026332725471306572330977742628814684425305121198352468880457052773681276631682516543277064464416294496665640762460579319671025736842698956955387285811304919451858104119244244122207517060572728187867534946815628790931850553615085216383216674502520880506690710971651513484469810598037656446610382718817305388359160699788568484758203684147580655766740397663716268990528235622379361881532046492193218121927004499320990705478560094193361656014611290786247406019343960383470878043638899855027906850077096099248050859887306099559995649799390046783215618213300407749422591140357656579321397394534830871513976879127571413725141402555736989578355383091137864233925467566598576127190369395156605070584932921208062607451443798492536023249907765908289894823467675539127270883510966027367764563891262933362186773566924848171541095879904084233033316753060586571059221595663198015626856979962922431995559902277510085886098024020223025061731235167298434212437117895560423496810115047698647464063448574967926892126291122399750630359190929749467834529511395623549014282870238373690711163830850009488459490268977323298479662737453475040646475654495939720267576870822822582227240160200534618317453699182441650030273447901574131124742814753107008950134173359571880194820191567118931240566053283862735217012885932692010118506264086048085251973580726744510319682078487191106146108536765646113970243910664779586689957288015420287813945223888616302779639148100377526167568715776828000033435742102142750632369653047840966530841767663195481915278764696788994655116793321142413846957758601072671276896865078146787842170027640658713530342594995834204742390046113103200545095889509157579254170750407603474946316707902502923240454345224590242653410018625403941066469743065180970942112465662269636237166024865055174932502180896929018252024670867989065834271047595690976074148715079967563731685671319041662876197229223382558898634349176810864207323221500108126660251910441158373760301696468327441214929776431791998050371659767658319714987277713579072989757761701405554735612674074701346982498798520715611320197574409346647347498514644982755044241850176751199908452035759719300659519627389269950249884071847656944803916043947181751842686954676934934851773102444747567704268855107067420539646807049538975760547908214079710334640574199880650311303950935079186663202052260938361323197490094664696254259154920547834215935358964392904784757168608070766519046573851629424485894608287535265254512548619012727716697465614787114563469943377983590774091317899517236390962861597382442335909846601208692957359671202322902294373637122963017412641700321126339948233142392046577356870321993105000248072762909605983959749006126277307483087829783387282709421921280729894528847149267328122467386667947898163295977181798724259447789154765903366873205041072241800281788214579229844267719635524081156722356258810854114713926152612539970070253465939690784358223611031782597927341937401241207094363574862925544395892263873128766577296434798256436001616653237991908221401136568446706231612399174779280231189380061680549120283926744754582055242071438654136543065949180889568311543146649687447478914017667692623697256978501029394859737355977449809349789990889930367560243097243058396680378727728855249538334381545413286786759149014324260545169891959583511967033876631499011833180066766780189618320715174876748721959275489289967293903084790777010474107666725202059230317736089462114023111931690037404486885627272754990419020225213280254202764994102712831613064937614248948367854945638206244771692867664283576097536844304949290889420954043331441794165409370518190015858785995789910051337210398257874286947331489459957141400892375773836345542046730979260703797513533130424505487341902097201110147024663545095452856009108681076605490665666059505996009928401992965467905010736894633511223934678447018339299545130725571729052790341656125056784311584529770343599098860802768917728585159752271436810849708681110868717690978409628860925789279321561382982156893579956796576295560082326022764249667683793980430352553949083810534270251881871242847400095510063750963937082994451457972146424104558645463148541404153799020672409773886353563549708863169605555108540669854227418021400332628636371132926095655183238297999314994879123996158462281153407430691527236720411716875185236084635570278827946116254338280787691291577450204830327187426522243660964576916257395769015748753605992703509217567071903423138081488719592563427569212648587145000318619351153825802361346333341171419052574113707639850609071335067505989000581562834127105023486334398955493234965770922082992588714795958197070650754385780682285838236401434367180432784006235481714182536809256702054416497879782035814884803471669405411705909580419541296248421850695445259688497939469744611070979860425908039038376580238256167420170129726186437483781942790513729241426134467641152401677694233174875468296013188250158651056596262977288554695608450200140486302041674814805514960984111624603180162358478896681676701516875933632052045172966092527350415471836733060788216314302313004201786514205361532575237484560043184358325253323127967300099339146978317072834940878081289942088904404840963898699087515218569639821376334774432474880252202479132218452353201568728563969595026937928115374124987900659583095345020887464464677807183395763804435832379217718066410790559873651528580533123811848408527630101726062777608976825674924231015853489814727145161707479622824096813120269324636008784716253685313643593437964353056615933265508384068176339114652454175655267499064489151782547586382518648308535004850433461076880202374786142316575597681170960336390599013665820288290155076931024521767950137562679208733573845812126300162675012468545712175734334624471600760877215701011485657472379284675995360090658005023669483919726301129588238606919043048409056191071300486534059933444636734553464147988128511954597784178325629079166557493998024377517537457653780511284433027247367957125949988332614965083218998162964442873810671418180700963588448108920778258053856567467958624065654607416296771784760598265388649954270224074582171042398721961452385747236440924634128745940660438847567198327172761732148797695887032590601317322245029196834920558100731987840613613819801726394126523332790926903992562868275332934746068229855646271209783986357368078621661417236045472148709066369432614486252454843637215752780349319551343356116112172874818292652504611501976985273235245259018334501270365155713334471274257643382908398623304747945648925785401602246433450418561883394406553031156449991541156832562507455733095035447122106467365155123910006363461569938077970122591167231245311112742425406904188546258866545140185602898539090698672154011499615292595710449283851676178592764076214192322944318542058163510457750026654243551597324333389582386097102897025397137241492705214826835437578626959056630518555465314626955367341426620617061937293549758281377342550174263154014387934485760627195935884804807023773532434460620042870028299300599495724731745254369320789552010589992681573921425301848844149006620199528729966838060963738378805354701839766155178242560045054141064898951687710924383883919649289634989111894246273841643914737773946486929995564387302575346665370661111809921921915325137958465370805610040554108878424801807392379485430707413116481098044556936545841674601528720445558420265896178268169930579795646891521002967572000473170927664346395230640443002258993453672655502508145280936818065236557393689502692450184091159273957062746995388250830885259139541361369941154995732373394457842566074617626637027039183979523894358091145541536264817565355495309499271122070362865806092319390478344594860322306432575658871553782002315033444915952067681013164758050414743503108521951600867730018841219307148103841631852330307528413344865805792988951477139504029409088103998254617772328656661724322414818707441923010143180952970869306733408531504061795250782558115312847515723651817172309848838416526115325632411250468674317755211633706454955814752958720973670051277241710004297820873810967814501376362584327560897001959264207386380614174487104020260837747233695743739339182461225187051061846002152924773487079255885227963426392691306575588280630858188201691341306159544979325127406410150635411972296467669958865799327510082426947700825564870138249497599862686068767407957155669551391405487744623848730601987016605828669424101026838511758216698660408167004877142643789497569412064339199592518228443436038872138937001773198363309161022382994525916738998484993210662041921002739466461652400057412417250362312764624724057283287150027113420705480946624134623116000010946874690654951626152070717312013790456103505197742966214612478634769306465154786822590999068311970425173859429285372238661369207459098096167186513482471515376811476697763363480507882850927250744133480688673867997463715854093778947715038674064464395508440802037617502101241162390772836075962454373864637160919655367039645519567060573208574069294735429986441640650726536035836069387297096207928965641140979212568882761856558202064052320583326378399393529195412009625814126190152620082704108830274697468128070039620718713625619946830162210944219544769671154268142632290628629383222928849704336945857310647112098097936810355899839639970085101722270740621732317580301047389106710078849810474488644924927438393325413791745360010772856083107590259832912635848432316592720270159036981965217611411939184410699167754481969849612587468163032467112802530695200018981627836219578459348474233826521313924368709422832359703483390581140383092899949050877479044118439029965998007848911766376690066002040034375936328280819718446588532158789852150017600899377522497221780500827279536048106455755579195050710502260274373646610272951802944899132194122111621233978207415477773045096107888250121127370431775245763437655467261365250100568285841033553261908437805021979369338391013904660414673298788792916526835689902795118774450702888829335670565534978954353887518095905550415380403161235492538125224778351706175138103522676638977394406930020770667615552321067350886861953273684527132001119869391550932468153415328856165232427212739657784856111749301101851206582067775844998780781459811193264119678960664501849310253688292110293783884324683245097016118475498093266992313061973821352566864307146827007450229781281706415305327450474298075913925219002771213198913197748063506434607454260164549366962813698087582465494755008592207132871495545679074485827043943371366248637948891565182618267245641119562641473730499629759887946146187886787747477206604708456652860923675269875451012903037857527457114159595260523034382868040280325738615022400288881510830382603375649275025948360391172752582080632835557452834492593388989973566552489712710731484914968944903266002799010520492891303374355199114032984922821472120764173236891276862093060491104140186077967435852794550006289289969990879010075641342086193736941352345969829383353087606780993006382949920734706618136402870361437937999456472760142724539952823794781845717499242915371923810240641347547200017313049834804292331250300556079013483123180060892781082538256098947854006398681016140784264320829320605949130521722427071234845214504811300732275733379775092651699351861125241949029868681965768946858418985175598276825452332962887431228001551034175178889366750523568833962122751631281426477707543784450483633588037435638044134580193276048110493726321442329555153441198940363155494264366601674212482029061534302999074626352365425509763434190962367602773545469148107847140161143926393997694427022765400528514503710275440066126964654648149642933351134392638815976427309860475669629469940818570664967280921190788541748234623939651434207680466418247093359519067274177567066815203081386608397508094775154041308156848345474515652610312289365274676954227078046711527881477592712349912707808453996693326695816454849499706933273964762641591908446093627718317763509158779216378569545102315217267043331152087935945461863270314020592523118929437970097915850474374398974380357282900032140219176803056644341507729003776382252918421953906761899720700423615750753810756789323715282706440596025104030769524052952046133353295231046577734371239769657029131956028501516681026692877342583754789302385409288705693596755808573442139614817057030690158851573938403974863027315588833000041478168950097055062825456196362852720048218329008051894854577739988239366112926231923319566275379561914489869074736069600210628847801617809065122042996239730486987786422052731543710512457913977505497677842814777034788897567969934904683138913005092400140963948534793400063715582754038698938197510473546773138351139341698849309213577129566983547727721392030521778742208928450835108731845994661166323506037633879269302505447698494291027519429426982459528334457391634128451444983294437800623592799519875139584666600220353680746550265958023104888713113965943461953398909356111475607810615447669284363180660768880296274545138688620524114416226396520950752546660584876450152848745091250663715495518040926360254930692816978388257248064020712665295490900496148755678328741122361625671881341451256804038434171406029412138238218869011169700606184881565954865946647529696676879309663397668918737943789494320166291026790314413781989814757462349894355756639066281482267188531571899777802742414283900563600353506583124758010267434395106682861871959416915294718736136883343122407007942197511332224538104841122249077921930314051708365184603177988978333946050251288195194974566736817819795572195198122393984879657220612332993893064511742510464592963508214963826405838760529426991741076850858595890096481677371689466946077819449963661453517546659772214923318063483204229458761608017602940639921016386736507068094577657264662048403541086932295965873814744393938282721667029626195365233642980154086228824431327324949390479755377358357075263814058849822511089248464683239471353608662095934050027574996666110841536992226372115777962153613235729850430294391852660632639563506169028578074533296901007155700870034572697120062046133508158678858238224961574021838146289101570671112424157491447372628414041358775654545183667575685445235862922617231383819709359329614850767691244226519780482958591512318732090614912350917493411760887322637234733333999769801205825940255307741488343298572079652664628041151222988648565569992524065299961076250940370280705393548151674813614515394868371446750383168404488489025525191605366974258366930419722489606461317278160338204564571116416014811504585129303743245439244273639891866615817438893381457584950799363878978521759945193376167478191018698396162425197115846679348086540637014113281704658345438656553821357285748958848311825089508119056132470079166027138275669936161985051001037242993923592154427326880434799563547915247899105603801379820501214018052255834178132310344077008646995353942361579638748238905941547586744854428375675455468676791124061816353168853690368528604470077780779417902356052625655499065772883889927075718001391206750619533355587208659589425515411043032528208934442131153793730883562027098084893485791913970026880272952885815989625335206335786767387444798445049044411569657239971026374101343503474108866604702585777496217553114208448236903168061551797913123046062428188066666012336816005713788134120076286423921584292777618448827980327236407792394747630304433705244226164185320579383949874083853313482027998206589962545744547716573624715273037956953792347368120284254554086849970840164970397461205096324725534930731290548790877810934526587802911848521881197619521817619797664822496754953033883329354383761546208182475851554838453841360232554139589415987655069951652141320830051200388591241085300449313976186089481482420985256121500587311843482567343962170548619335796692040558756192364269913550810093359552141591063588057188493138834047308670260167621709981262086379626715154959691817467602545249353822370488412501109453848554995787142117681518752827442211979634364709957484945554121320271248263679802763196688712606531002209548415025553132137857588895560267981886133712917847733638239049133280288517195899593245364305100910794844977918046506774350031098887765929607050936954837389887881219698603997316886197466551723507281592780001359762071441436320220718267342694305821237178493207051219687432733236748305320601341639309641228139713671610917159952434098814200989993301586195937058856239527211851070869554018595960153821147969027551392927779591881727616603874567987440690234809360964253096972022127317867672080919135318502339377537984869418649908320942749876081413011088247623864760914941031939746580951702892996074123388338261387736483017357300004354199762779729578093980994814868312922638388723746393433143476049634150010171700694965045226475661331141375812176223203260253465386740595160569036677532969707519080049910216973504167634668424065452152985116764151793520809324653901174156938310816907605449127641243877692532212279104317143329087711018374565481447329197978863439333617649792935253932592285165846948499625258401386417300384072315742218515761847694841617385594784542862656090443814324544485981627907782149653971075148762073467047727709746209517612351170576775004935983520327204236625566077070873482045205189462852069666444031295522209878426534245736101626532327736157022327213562000950763170632411827218884056170116385721906317440204993025016294383215232426875128980796342279139338452313360915481850352743285826453052780399067767377064901347026936931522760560546956481128791230838276483521581571294778156214546029976336387307951072984517504573480085813655238326769553066900554632486697403525408783785264688916469132137930441381543463146158455885371671640152605598145584290671600119495434152143002782974713765466115154310028853519149983436238011848146535466337241925112039780794178902152945401925620789156925615088080828017794923876834339853463625419619354995020725748602572295413665895669983995159830448885801666413131486957797268555846550256442441022770566707479237208328146394610387173592284971182626857539240821929496271036536754968351613453451603545664110385579507860905285755270608675318845650259246573421616683646538264702412923804888433579296636040282422997274286113444516258346608318509140674929364124994168338163697701666567632597805165893015436836527364592658286739945864199257909100220869132475619350074220249141829132063979023008593013692101014196855399989857238180097503326831573524646343559770166157307581973792369348540356221942964913960050042582952716660421964746560592201874419016472979319759139450526720311813327326139313488717775701452932701271103610375089983950123638137336842319336550180324545774652818512011269043060849335462716591241587600778284298765671223841928410167539157438815810555494045887590762444960173342827051943100759983751457760164013475770293257558166520313673233151415312273395088283518449665864503149876608923853790231933526961354622090833597485125958719855944429355999531001256548225515835038951545968478043563267206004257994924948841829459790481394807182871739363599910583219155190050805502251986818506323179571623819239982478601193052083953698891483666615255078968846123174384579004453712376758719800032604118587567883871828071717236261755967576579179615241926638102881984466729890031964131113182569087995006343348220678734759602433647892973992077074724249154965859953117893386220954368681974892795673322067694297484689968054508130718284010517595145664584316563515581199600093378950359748717777818332341834388199764138161342160032713100333577523016582734002593685164653694858937412382353130711032937434305324412899394050498942042996741961118622266507698117602707044917598653783797319543364873714851149207253784690618178460100582719169406319247204327289400112394675127380318514280785891514596797275326757092332243913044663047842966121894898788388489784891653520506472689930842540510353271840138414417007230254508452955999352709909921425259756832822287246716582066145218741108850075057127893008402069884439645322988469472667344047231982166574937481378677028034203487960341953812063259379556159130835153520545978000974710555652694174248280335478019327678140979174686794853872368105126941924889548788905164980488754345093284064731414265030344810677863068435455533589271471709494506069136476451030772068311427366150028010202630652915447024896965269256211970817655012114824872940267428379834518574502612848152941107546180264271067546566893992330600243610900194356624553533515098270581015810349037841119903128620828706934777544153435849894624365885466150366401083359277150112285077927348337779242740032108594510601718153431747756841730203383392022846549963738955729324742428769151820191129305322231206740246731728886099682701597446277034631766644759887296269944422362907977843074193657850910233721352377984053818206784117217528205733104222056589956503473904493421220065599648730405168354634090519984860200161478179678359166909985533545226729258065591972294011044864147671033151249074951353684506942263611866724876448927066436648153950535240866409470564568263866511698120235247671215983117235156518305431062860641620694766683129022624757499207696398050690882309580325507853720545363526529313474014693816091657668589509607217300301787994180303730036082358677613586064088933633442508648910880244112011510280873015915512344818059631473348990856363234810185520277437574833142420331959264637478219690938768419491899797707631729595796940602345238592960819433796767288450678945625235309850227323292286175779233288076740034745906649514473235314265606287841285815005900622764787119063591481347844141767813622516642368539399702867750621214037705675374866285535422973695741008104849177830795977578590820930468526168306098982374712976739336642903393856153743318688959637780466563659711251684973696085608466374910097727397244823686220658673804505517947185109067679855923199561709529246704794611263948284830093225023414045987374527893177379245661377125080869398763307228192354445388507670704601737968440000240857556314558809060903052882490930998234662494155530459722051677788927139725998910985899936133259401107596307227266714542348406238201235822047133567194848797212645654321396723890549502975325647113970520009277281843207219036010296935794604226103870910141423806035076795262772584740720034738827010603415917874218310144913225182537927369573979397480503467642908153644868157136358990534380552455928588189077025486693740070157953613868762374793616809123987101004187431253496987840267587981833535501201348592248695764052027775585348778684941151092329066912947674576026418448309663530136661202411238957685952408844140752296604192980375820016058624432154352252235474691774674157648621976683825762814516241805877740385968781769388082678846690827904109509877218692085548005071472469688775639057258407895847969667680559024236090552928532106545674557616551075883759799707348837617196916187319550995723159672255054470110624843785879451040770536246672303174700195358434514877478816684933749240835005542522431063922197560841477741559188221267803238978191921408950506232731083909604717397207193619827460941561462511562758064341736359677664166038157415953465316706080005878384335508644353635483804509316022426474616401646446738350592261710642752820718411234587863898700491306421486198526782917607854085110563703072504531063197838205040472877176177372984491220436120495325577827947663571842697044509370432785646027527932300070968620568221145262228805901354932815188654000667676685238832153176205410153308557209611363377596696288352548608207471644845545655422284885927172526977717661504030316225902524214619989495654038608488760263354736010988312194894146734633115791320575053528544646216395205020258726620697274458656957880452429499587052881864998248725559713458663112018292889755314031423413350471540662372697787261056949955264779154485918664173619448524995399465402353044723423481007886983760724404858552330510928791975078178182185469102586998016783999172254724117054359467566097185712336112733367200012381445384008336856338035790511195610818015359835424083448584920445588664413379791528852478216074731176488567642420754697200502548397857502479425047630622506559706300547812171488941456512780854926592509066413115025983814334758833639013106416592893805820946582387791009868085786718760274825397016674044350023669528213532111629110907920006268955319353519050754226475686549376032556361617850805562778894243376972681055891770042328686121219235504500561535249355839923241986281182130042733028709125117350356814204831952927265953361780072748025152502312918552016787744206360667830643639250571034345515654241381352269198163480814713210820295764433386570275928145285056299827316370571198145182733783072146601235281567260012553601157915431220600172613712130682553805775975757057032514400873257949496772964143082287605294009430920332489717110494103468941404562831158309000269325710907828606169616825859437169408497437725318395665044096943215211673626677004798493757593691396109893312249579651948552088673622427783324456133541024707250668029364461674227919225676554648590879381018535175702674471128361674502018514902807404993601976115744944641969225469171146617996720312262823841090568183443586965343621874568648446688904503358398480752648183372644398790165781327908212208019770696768454133408518861841974525530209103187123311631912469082469830014391076469143154180507667187466655564730887732557851587290210653880569301489436496269993927422875866956921796348203966718528182167363807828520711019247029427133364245754078611115400367603091236374072477368142776601601043465553810467766246665114927832397586580992675116998293380793007097401444619394604251586448909978232090873441816367250563406774934922538211334208954715397116611942065387381698159259353881051480225218496635375401318042981244499192435725299465767564644600663316305237830085170964621679478634847584385744686538214418083325601914371325132782462552635496268694533401001594073042741912161752934236997617414013386667530744896672641075810784558002161129836716256267120041520544333639329291755294852485586079343310305674649579017713220079989654750860262214937577229845626996097858713792442396535165528557013105191186563132443461302660726808684188376276363609509331411377258267578082019445896022637630815581362810157228201788448884771503648975232350414170452948593639526344569800410271196806721129777295051762268396411358425382936945270577329105431820992013954717327754127424304206566561318796040446084906124357115496919338257453876037001948814610464269436123825479647175188115918930646277724616799539076066127699962959667570777381485251807601371319449096076274773630423223037565399727964696383748614482807137800707797342916701626868484990055833831180960648184006680554210515363527019167250252829983365222923462178374880609574361004773053107255205457691674959358509687180628214686037642965829390093719211008705451243344599492656618514574523645136479513334753590594806526473923023921128220014296879936566763650638430804650142468995652602978654024860873198212912214769839324358459932401604397201284693489071163866845974705433479758616922500719463449692811248894613256654166893323125468141045499507668848536663468349535754470638697834683978051887407416600783267680225137540375131939352502965281833814572178123068615074995283584574742312361168664756524980793771461424955335427711097428378583696994952449688722653339897354337733744582004284534366312312160532609818854153484266125964515476658210884567722022420791632175556862894161473449894182232689519629381071165493136107414081288127324439847816724064681437372989043569861276474323337501655368684499062297511977658951332772083903651561920200307943384852241922774514411153895372330990902681667386936915641604662644520788364044272134224373799446278170400523759366728055410447800877484557426437939656375067107850117299080812823670800630579317424426870227460170313184471822551936835267958182393260738821717112514851243034788626545497588830530072373094481360276626169739863034835817490086131467016121007557031956726842347254889314427309999468311801598960029974646970695134477188352013113064586135039189111456827645821563639063882126421865690881448762947251653612068245519225398846420318633965329811403963102064103216335836249401190409130366543802526570071155103265404175921645064111931869702772459529959233540145766933538251244633512150483368615195018746586175843483459779978483935559770433191808503779456837120601925625087636100378060842852448994372417097014410766293981144286523014558809527825028966286925208620859310993512365676258522554126895431653234088112232696347892815283556549284397988518223351417210216152555683477028572378889764343936838655022611476488447547028053016425031191778907955611398315897428680302282948513461353764396874817460909208959162251102978862358677145464578646664006356035951328789802017335723820553360325264277979921696264692772118111423656912656115846713568779659775829069265491355817261003696175517374621858041501825749283362945141058030280057541530360196571256764597887609681345057974505609843121705475846149094095657942119062058510955040957798512493294330705800705503072848747795989981015580859129188876876612184697688750287257753319958788081342372284033665195412397988698827720755258491774420265327148857544131260337465482937741703029251856823876140810227726494428385556415411767968685674807451056489512280234495993266420849761675197367729981705801748592874615436789320261574480166013696457935113505318526834791009132562382565112916677422510086760645996711595799685327808722151922713930257409560323833365684547422856628490767767668754462807205573661260300856231513692902053966199443381232309100683969306954108819691646382499625135103940793944345983473039196548503301605418211368272861983312230752051650877842839677685448610717432405668918289556866960703799846771372924379737444543158720876804526708028487161888830191950542116995053691095767574266686242806926400813694593988867289908496348073220023271129213007119957702262368630176260282521727133450870539849116759131117017805999638113308446679504579934391417332933321950606775953803443590863713304566565701256162575717729652272205795263261346690568682138354496941693724052270734359961106508532290118133934450909105592509932165601187375537803880731153257875754714518743429080127199996108807965253455683348968289015739090815519881037427963380707145579755925894606719905406651300021080335062019954616325087095454586578894572336876591432589572224020555953823522272356901356659217410258849239086583954017350367937276340325742211313056289776265738330018265916452387447203685307669911318434027031812654260003178114200805098438425092520535530986117141272595044623270557736338238612676511816275940524662190144323511126302301091342928084236548992240570528502489863158182625241054477601175686121412830556732951914373359760526578279273911548982065349170415883682879970619794429359443387627528028951454279304279350177250686993711996785804744509081635425054453397029017178138015678979248029113237564063749890189384742801671221862339684909408454649157926988634549711216259290865879749386080690568582844717970690426946323547135256371354337319943224707407871345437311635620878374567927183596394756633931551344389012964760546516956293457125232140173427237284774681123048385204796402333134089322074937316216094411892191219586870604821442485373112878167942252375788087949319795046455895862176298684240675642801091944901406132211119207416085154379541257523373158096853298213511297514374280881510663182991312232488019512395940586102252460740263947447943152480302667458897013121883619948690047372737968513941001469252139080089231781061758020779341887385863944598029910467557952717166178197318200529585199857931524867680001316436217731457166264135205140791432814479023377046742169621927509909175051805203551121141624382300138997739488528576534860324183768563036546890547656453157978961491352297521767919901384612165223765542291631522735172596377955966343341186246132859125999476878920557659721623585345591770776423847966894617701069526398701660332113822831014751940762349509122358521936502124594834304261157547819112880094665581184900531196063012394356731835057119690357058903185712035869859092149682106926669847211781292477582666331377216167857875814065600338489267028391127440171152802450978876963970041282081870089342905678164785399784433681819488790056827331662612385789604045057006663486583932267950461865147549607841828213679812232691004199238979514921921399928272642812063728815761030449030898546645631695963012546510812900477704180110140939593386955645400701010238025539421645768583266406026289065593919221022337051411428771755969729050819399810161184979640777628235153625372765062964151426898119162002429768812169874474743613465323957639052705871093436408337857829820313612303624892042847643176726307353756761796255480987105731995578034532701181894062536069498365886172925910038405807566865628103806241912608866148718925147169141496454818802173056373203269579386009220339624852765433786161900367771595328455337690634987960971500953209199897208862354913863113452542489349798567021775945776493671866605181339660704534595328414834830942313208362960811456852428221048490528130873341723784463237181750560000553212753974996999094612365139534778771667851878302759338600629661402834298290760183367546389776617797745920479707757113428302086713369329793087364110024256688632937404631310432630148971029020019882339913682074523798353700406289664587224975374121680698305757991486962576888204791802409726926371250957727906108141828087565890975661818727454645655415626271241526490285546687069682685175849347722532391532984311035993055604811181874584468056255970729081936421417025702664611290868246573220818500564710876903509313256405048643929263449678821205691239302489316880911181869180549181360328473292945571798572757766467114549813264437639062166044713355772367906044653123542781226248534081360998398758735367368450856817873556474294527596428632393730923859774380083368783271678369755462249358910658123454977351222524828785233756696133056223168331250012123065634325910368666572336400109706004989396068859986890873706856208507327930437861574942067887986070479107832181403824491011296116890860197935515914520497095555196000568213733091473628304108150264568857696051925094739028859703608313222007513750156988079429846592922512411683108735462478144336234061557729889461867751001895342910504067001805760506364644334752533136422643813139951753010022566827247072674517219302778455960049135241307361621341507076836614118867573620099747172151404648133870431425211166379974333162065926438442098294868183273736149122373651087657422472708104154692258506125413738442808527381992278975911028906140554264477104018488362643935132566897305182843823103720226850279804710590571677193724924932163522627467567088752924518756363667713212189924859850856082960440486908892974240633013644123806671143346298150562123204757685001736332210061678094166529422071378494003385623524244874189280012190086254619802800437488354217002878727677317116027900453028643475733754846374347445245956001265410457065218113255111916647489991089895001166752523966328621319845957326690695270031277195261545897835714264807198380527063632317805051896222941416074810046987141343958269508116458515788031165699907043600072047342904778191902593956471217501483119146903425541868242891336181932260226264961557665558121901780293047410223610525120490037693564458253898417771095991352375431833505807286165769328966918424818476865215690355884599920783728765797397486470673074623815670798226833864728860193304518113380603627668300774352161695650694450307583204903685854717881448462733359016157228366704813301254636730676114013189345756179408303168829396452600959235321525125479865947026947694803177262555548282783846526171995806967006118829362986892910539746573058034151481734268414626543245311790503043631046436457312991154151161676110124624047757003386503754482215810687481812565825122559889938532710185390033211008696521858845507690005731766391702331601735819772338113094475396977659718633438892175413822631133788387503112509225286075111404999697443434413294047161399131903628288073927224169529498056947039858473407685637771204980681840555816403047237788516666641299879322134484885182940985344008884200657654830514717198497761819352499672061603414921012026559683273599736745079348002307306895492661449982843456591122364603844590843564065626067781067029493835289747102391253637986891999136559683582166062717623078307404722693984236419716658804283444554698588627564873884628714557083292645060036762441860458448783530416325524550567808636842081013358451912078911367931927904006284815798257529965795011532622084868982460685158983333924220722225340820201874513212370060566531437127360639733618440879046254301021338401006875960465822519140143558713980744611330156998012660179978906518456678905926063187953131669209105931842413647939708859491892725380540463086723693058076417864086946270176725852252949745439375073511463323935738229170629012901966121478171467710655709993567840986892657199454510441960764805311929490845979180248649070870568154542583902726005275150871414091915210830551800517249236361728984584378861162426895783412668213136078436040761410374377953343910837546682726874744176363891350805509539375764443256226933668786617952549944597815156367971677923631755949644954522265824646744140048151078162158396123953211239601775403893283055110178519096959902018659157698770025281608051530145536272801074629280253822258919878974657170178197375088841027897657644982427949494940051220637327357016682071050009233499100296078920474167401430905854187600657313493657457683771556584100140858910787285824732996585000942425351780583262959049114423818180424873560983981969161825573455375631556801041210125302695382955755275200670169595139191795658190589651327974194515053023765735980740336371773245173277420987525526773990540208109690292833171279282261916870039512953098729025827333771424868747158150941293284138356519160428457469386669781817154186225117671493544358752147225015418080017075340754909413898117160266435725945904355137580210008380628781901412171223857264901568611602491807650722871947700158131517286960577843578546018733270415560612866227478454073568923734331736423232922069446697513354492438157959083713409389659932289159790640017879582385085334918300941790453589803893121438344050902769181437045811363584536526576606962780123206931477144423020926397503547224388338347744972495303843121684879196258453193252347634552683414974424079725825048940360118746344862354894082366810162007567073984541690510744631237345262138438239839147013251589872424869652466510962285274483074541836985172587186950381092354032086476127348609213844246319708728135529339276381741298913475605891829258760307946194082913410381062515273372324133562429519748018178615096465505155904267963417559933043448593501723036562661881076249243556338537991918912569151065187237230079801413521268459058285907850338707937530434720047821615083932632272855705513095971479767552318916364910499688942829009731576404313446332479386533338452421700291701542574073706529088361894830227451188544368932332422165962141435620582581325151762146550561781014748118902988108789333925987144130820051882571213241413647067047307791519773584244711107831115643548359522588381712223338858139763557756929921322066213937031396770482080014507143008051016216512184519401054716447059686089866590061435929875169237617108784492000819047403149299420585807910910842118679556839585536557782233367218048600309044190286382838482805198584000392919880701633706254895179865492332219325293186891450471108553208212464297077011247736526376242663569874046671527798050151476984277053588928618486213420043988751996481355001401420248773350335550717853370938064351709727588694667778490599595650374335366002698591685145134548852412367967979810791477105342348409653314124703075072803714292098518493892517952065770729373837557024412937733641079019519791951974157652970678680709591673823593604654518222280508773853329844314214081409739387566364049431287506539037783221535031373068795576149852125677679142133545781409169695679876554840223575069147314923616179841554440423114929485877094665507873753447174797321176947213139040823774540894880811288031265463154167770708842641214430610120480432137464012968842128579157504436401458179273673081595209856551453964262184970798765995170968820782088689536005004939902800369046529245088058825551201792783638444001698476278534138089248951580112781791109076905772023391162355224381891204266863911783297260459573177393019321733065815286068302206869134925236767903997669807667435649322138958878994892696454073200095085532173337646703837280110712636395342486947705080800451864684040136186543736448999937617412644722729091226367148057088445475424858182197276185898619125412056739727459975806869847471429273477904946384249093134014593358529741785207649016781393777049664763906234500985580505835293022736707919955743669557642572652956894564934158928679259037538479578247777756084424463600532331321094286842604449484919762517000092695349765380292051036047698211952335234524896801972467802389566348750385230022338949973437087309464324034040141646569255328430317443990282920956899533582291824621570082526492780624486819507286031719747565134681481262506943899517678191742522020293624236135151517240365254355633647972512648490124500912357744130135087243394137929451232439176906699136894715901283118301747661609134528308562282416300237041236402798876572536637779875897813765848885256524809632819248508741064976994250002004441135722661537462000451721999566349644069794951872388845478662985911190437063859014093877582375107880016794089379803786525712067813214745497697820279295712218985715382103310007545817903356490254416999032454795382047342070821537301854526134051557195606388184800199646127844973002325850273651119850340209798724133259645231274474205242929658631486301961269476804449500404818467446421290130032281839598979956106477201585164731233943911792100018306704464381203907880371896908296513570162419267514980984584004571123920895365493814035601724244286768201662704881519852624820356375588475148367997879793373384548107041415182604534422417863691347541548792892563732484450097553737414597959582852742346294100823649371193235186327962146115596836369535642256081937882087530919813244236605167603874567471926461053046805785574576201232132482788444248423414578112792388579412064212831496537903304365862623352692095014607030883773501086733374382536594005380546112441644323488915957861236050609177963042214459887561913613139486593694569495301564727860831598492294789918223383130537409589252442477734931450046912213374682159980995240970277583575195292689053387883009016058194724075388009802484473511995594393770041959820416205325665174326137832684970595174011532529802490329462173960408420903906593286329597787994161897922290591485688150911287486898023835656689001047886734782204416017827350611949805017015429535867576266720798809218715983032182858890308284582334117076265301861344022621518944306223312409286004134867196600439074355432703708956814224853150428321943708564639237181899231209174649153760857971201153538790308410502803781427210833255369792550533782104957097714998037278451342779750234688479224165806690768563447291762817124545789849135227395499749685383236313980603112578895973011384886359264538765518545098468525636018772801539431010828673460607085442482269826979971714003585049474108283234037050328639265469083858523077194483675369053395311471627895233140453351570863375011806405827334139365431685194681741945178890957607137566352759531757456883472153094781791828641431403411250509574378157745097531022881546411450226143146823385622819264181431601004282337317419490222223501183162284497789392343085746436523731277612675346233576782567954091533019553486803792679793533488196529827446911303266988333043303300280871814893221247069617855661104006811340848800024172536369058936171276728753435940709207242014886886014443971604109108661468173665619622712920702631280025165068173657033112476835929793881035910053661657669472564530945065304077463097918234420755225515041768852432143433964433483893695706428443967270455224399788857031811089157012627499276355935268586607454648505786182481259403941123173850501263019559264198476197926936805140385128843431347040260468707459849694864855394555669422966926179908473375597354100331930459811780745243116448902773212866847793719279994236902563270620890784407330488301191840580947169295647740931107412739653056212349397464684023515521255347981796607861075618132098725982664670579486134526683098230956795628152726808149919360181565416719377634696322511769995957803902749961030244861899891410018513307299542019543914673563581798462109942729071475647845421036713064748591818108282161653078985694211281391859185147074901891558567254010867569567110904032466925074365247682871014141713075704381121885712200545957468080030267467323166794109506085547598587389825289350601503580471615495567932026825041521079587368370908409426815819186556289672792221926680282867139366155673443907657463689254786022601661574195625912132581072325126757480728563284172370357635518838999853008250426533247796042556480603953737393152533710460175490207142039991831138226815777948327458699701489472203534849095037551322200426857093260302927063924037745394920022310301304174944374303432061406411386486670425230694665130785461524903917517706011311617518734635045763853180180025887825949547772016242725985454112147418519941569950277522299265440082960615355567386272384695070642158448369792722759596445481462462817069295102504802724753286257286140010221893968632068832418252732295575141160458829504060737638214673096506237363642501123874563062815003780868293024748501576043963318037910161130962081022984884777850435015638517052595049580009573939656400820334054134704363313897464890663761890706146154724144473899891312524376015629595009526761437505598625348096543842680718781826359536887464386148065998545883051685084594429461091649383278231079305065266943407515190648666558104245286132036963480531395031576676545593110015562210350295892308185506421379376252975759863390400326129311378877410167353431644805607193256714218296780544926899334373730890013059584102259806364794036588677112505476189345080475968668957226910598484013768251706977585648581670741550448540114279142228462710818008459239761714691086690194230752418257119105853903592126879775790966784289902041209235666878221022965669917385619234432555286238938976092246760749406353755911360893512437424988079877655544952375991290963928635034460912004526718704209909298226875168299751648260267278205623768919549143268078860996108875146832325283063505643750716004222676697431880160655329503307446933570036880042926787236014147812516255503275006818871478913239897007207230135405894674222233620943955267378636484286160039780129479023409864707263947382715618935323128190134725988502530367677013543254804458510436817861061112523880509073824166073143955109668553962637263153218521309218283253049247545731396051838493666241327170230293848421231410900131439639944075915069579283649584878058319390413800234280364969793393594022484175664561893304751876950471608319054224913844007768189613192105442276242799736186470460887753623628069234793409402619117714991878328103076165099504081288264935459042827908477809028903192099390734123589736816339721226255227707878932906012925600436183820469767106274064858493125417554035910488986698102298375731172606372329203172035979087176126705733312755789107043369041030396055531823907667401009150728737793466348496761544234147817407302144456238056712282042136661086624857377415740764133786807126770284499387452645167628588429967742434846680122879308174377116426929617061826054589589251858957525277213547885825834056207767529117461018227187032574809667495453799990410864420572969117799318478965808008546298137959899561388735674980869964948547963940923970372514351178819877242818529920012999109752272915586780287661656229121719605771602051524954781949822276775281387955473617818187915882479013380165419935023727973981462433796380875161489370101363260092743276356875856660799389562492282547151784117476865077137564195570013357438400039434060213538676592225382371071795104910194966999340011219364677126440688361992336217917197952485677350130898634795045020812013117112038123891446351550147731498123862162059449232768470672660874203944028686191009721513950066338065337243374804061856324600255012824599774090737483452330555737125524079196718447407000317221251152576121128670245710561889174595148399056689109920704291119442515908953359021491384663087854577526642270028607246326433185264075992947650665703715054737357571785985698465452629864860091121416722091622924051835501384604604488149215069411622847017680002793988189154009818849411154006685079765879939919046748179176220893683031373088206115476837225985445227647519920337180626669096078014443628476762192492644628184715584156265866587405272903459607007682473298754663935415228737929930783116502426600769224458597346606155983751116069578844509812398243645050069281067704192739591577277727860582750490511666841963048924635090806199606547621633370834630113684824060707292978755496067439409761954192229904676979421621670799722675062029622056489143463153692456677745814175967110385170685141551535398084522447272416766559152728093131781063980932564835410279986242069190857254883188129702445112664330365891693649341297378363500197496298594779751925868742560398215377263723083373239874360323215542402082180573349456637526745839101887392229309422851563959129735508724727798187630819037246560022630121836025412245333237210051594855947132710831169599313938927655052677557515107258824976587185220094447396029722318191271197537572999736625877559121024751371065832919655630737070396396070564445481953236573522938752492489692848489983933107264032929423192142854675421219761413084257044944610089578693326192233812457763384663274584540565087112586065095475947921754589360568895160229074957371608149486957358591300074103302336916903975124559145939584995986874591498493546098120658207843018430494976629797029495627823533337892551243461054003447899596122508310607315628042585121786406045261381096774839781768621989105022770350990059874811548363217655554756973419835748995073589575029189408482809906020907473477249263970158183423192226301947465826603352836150113822968193323218980883012446573770651635220931111819507255973070141421908076893797981570475174679143703728317325111184109732541303939309641816439103785305195478732712093812747261095440083950753077710976794270703539012162348687734109461815876645343320194204636923703112027551707424675603567578671449927696584322584104478693009183278370283038686972472826569486758031396240430867747073844778586192939092483365266122794174974555249812295818143054736015236615465990383008287399404350750839166772455512279715186017837483831372903319451599021002757562843640721434219057791998075246252831890673259611468527779779819062837644113541964358897495544773810769287210420511659270287510276893663860771399333318641450345931713836685070639880558342028734965693193596466382605397613549956829239829040604766116987625472041149726944583280572230545475734203260624690817820148123516017131333500454679649148595760453188005440191473344359336743384740581948778910023735933093078581734892651002937668616614225608518346709941265350198780023550448515093473988792182554840678882361354774095703974746923521008309978516088497221843794736024871566692382016580553345531955975193194811405328553347081309292271924169098597751096693386262373211010876295896040483737485387159971313324635342664738207800109773404267440316088987202316481759086650247013039785654588526510235731051337760931418154032873137056390252314503196846984293247315960757542422342003998981899278042847143409406054764189597301089208295292367471703630862886033029775505379618841589080168067589970688995199141164105187253854468916755086506087479670513685923480935169039088967827990188959463336922234357429199924721310837418095736451443609244910252382599001658038196865554966022196069168997366553422917139944173974013901550721389888725799688256988312289248836543578437679720774622878752582992544462329250218573274318043922149876188080625316576695128087702697779215637017153400689758954009366617422523913483114694825376890427823978714632210491225135061545008596905277500428017770408687937630400024687788756773766610044881831665166983818106529118044745093784238036021189514386653903969904199541858860543074943318081356993210732299473215193852861682821534837942733242762838590329447042465296957553981003123426425594485745527136512007134379970747646011883210481024763313738670320494901338046890388671072481718716487153897355037428836855791558657597064805947645410664673857650081030016189973679202312942586468994701194070201686844083339054084570223194433528430465309655061618720322756296182922229625158274397013830329537975982862046327114543721270520389331065942086606307613344704486022569128011344209690293287277106773650770270220398993123997122329593511237912443053195380262478815289073933851639015913828242679933245721280971276048675046405158605561762298139654316346724438408433937044549639925184941360943354364001499414702160608702039608208559781157544624879968503990008921077025174695458554274575307128716677832320217611123245088506162174402566726384194778936751321842071310962545993399807074042015099049618664403792925237789402890333777513945208218576364288362696752670416984996957809866365421133026498174992811174572089935360022687075111656063773255978017336336177649237248086612295429799690275357500998685857413581531188540299326086875587683991782049111976501272524349537363311906658345626824030388725844923941574725302532539499649808972854760576051016785834597708893989683817354182330513259311685654504587385867085011069178611069332325289106663454075824939697241483538121522469756594485713482544686354380688643549053000684802041419121049031297700139923787242362013431978754053173928467746635403491975059937919189155002119610365614939830796773098187580017250951386548802037337498768577007187774362770368663251229534763327501226410167445912795544176396850628480831911265081075909610666600664873728977501380526454299610522664903702718954305987620713637508988073657465765189998608615367634283627164596640617938368606825732574284956786602762563240311990863202843929226965565242908603706282292803595974250061281879268194141658798811359015717573614289781319856945745468218989482370524761640779211828447567130935198419304080501692435809036568069650799380822742109585467740269919646471609362977252228916680310381329683961508523056641146291713096953528942152892222800098272753193828922355437154909935432171374056569935403440942679485158925961629063465171090835171621815909531760874021981451807133979146785019024865136655034936368042909404098887032035382382418079058508273044422380216314998167913625962567817998477150450722791655206563825808073157115067198811935425425781359202549903473127742800271070827955218793958189590679035597785748071344140806293114292718333566700567472542102116507183110373555013459357667603748848727196104176954116176856834967628124479488651257498894997912267806781035251469627185441161378885393825955608849764107542722360727553704539247791065875611976834627538566644554967588321582057155667218746548946907985731715183363896501210669527771831865893367477812578433045979635312752673262912170065508250831683130072252358410033321686231852674693166207474430416004769040663511606688347471886692089194763280562866162592818808255521655555695370020009261388435683701050879556250361505578793670057376162176909231969612258219426830889404228433027934352103999746558030259678431677745729228914580239309193954121496066310592274333024317470050838478352164320908037412446224677960622079774361106339381733214114691413716020046231006948612103033999058417606004259933310445255998695136968709035872151649494652007088768249671184056023334103978842643187058747674301832139675849523625204615581016757499701496421122189573931850001009200481118604609358535359620338059555554060477487204353587516840466161504784683448931843278200899800919706121124685205948855135289716461899489828545630819670760696256122155530357359926945175728137357156174196620826777651436534783884378032548576808383345474671551230490335226960300203301132155929599744396849003088536876317033493820551133440916940839411507072896414877240090533986686234264814247216066102245388334620795268690616256774479166006026966893696610006563296825907225863786868662067093491750466228402840117536240452544241144957311830617792911017540394987399964215506421911585109889073059244300269110760390283596316540536004456335581789157260796422381566306269372254508438628167036380240594552410031700438777611413764893830974154655286203404563948191922074463051001899423448873143652641781272862462120278518708815742140051986878184369704335235484499410825994460139294378703887198178749814668635409462781531430713585616525184731825619380481876931926815558639022354680377350270275902924695803670112336439430894367857081000675297678260667652264822122033415057195904991894090533301949514316874402429622353319880286177331704123257416820814550421966150064345159682964023047895968060760977993845504685647240332834737628810183530275697946130999231116838319405456290205746033518926529691533447850606364736233903693075717572417727399364038221183552546026047909059904816804854873697764669058756379184394949649189466011287178951604070654531453878666158081265489140965422033670708493178842672063988667603478000495712625835945416374167357016958540441310027893257335315445255453495721277932890726921696176265148637562062694810457725091358368723199599279320047640420038180828810610876105632573980485124339543038859378770734663661103119225914825741941558689511151336702044326444748146733870891020199702495047935201705819667304242497164191720378772460785102679083975521468618387744867647171725839092995021276337971393276774186526245604281737839115199578576404921528950497872596391954934656884209835482220499855224931297346212583643703913042984212576854771338116605294212747929960812146003884184437071061878231303469373398911776714730121850812337883697533691274474160846181496555243095764541848852609317724903560947718482354957521366077474802006648228644106149899660664999490508184558253004033853881026285974493104454657990266669626312544079685722627954253909095099667690606235360476041186116013697634322103710152715532854935372347110045513238579078378709234905877306553209589820019304692986193417814077939811128475801540062232785427915009636265197213945974521775480985284566315320324071861692537162927819273087904177476941487304509458812441186812341070394610763022823140126448874494933493419845967926689528792270609785957391224929936638849979229617247227291183775351289584686180529324466760480869373323049014766092956892937948741910000113574818426115289515055447456510607251562651319562655328850780090099093908771297001535782719721601374775929103356443200267234231830727560890906446185429603159516206714285994560477328494904512465094646425163808882227508559981472924714880723529277028104596471624163288326323989426405521113807075963204048318918546235628224285354772905319738633012257114819714499776775761590620588085524798309536261104370695322025554962397059226747827444744088798667006377733061123665020216281493206524362925216228080432791869025668968752094781030488153258306529726272916808688678589737758690104710759672323020861792776702121986808148697115344692769340473326125617308341677398107943803030708007443056528640296838288991741745719119360159655727014456229015257727758447455750534127906573686847904935472835327033264876294858215595408336588480446592455188379453508697620928111128814778335744823496666616826956381103386187918996467618460896493221435845119361858310681062823476631818892541956077334275556108520404418548869583762858883605687765999226674038188392096971151749672936579733981860370433441297795865361481047694368259833306760715774793746938554072739297449853274453965396308242718258973358176304054793905989045627854562879292221437743703116861375612256541211832778066552822153633552491948147950800457706823261287335093047793015529025657267355162309138836467190811639896366477022578719230576655177788134328302545067968968560820145788425082627336952454391142688658868735733271189456131993887405158863404594155945587481896976990548682391304042644801118313027715045253957184787983778252405356499348298495556821219178420488579204680592326815324077548327039533208761929691312326573965979480491436183337446801461761153489645404803163374156598133128448924559624670695557150488446824519633471201980499054660720122616041841423180215312350630528501310969939355523763832390477670846925919304161413425293782939687104925162945296855811146234922767744365027748167894061149051619164160538148061316549625281816221659730300506704266654719740538354091099495692195639153041037129426050028029066280224785270899609399291833564240074964145163174176522626797979077873936961217113338585153250422260258927320883666843977219557176572797779821550208093263494956383910194126716224006553745872932461167600874277242215800803936629745491311600403721682813790429722518118690482661437988923207481433706093046368681849502447195817139755757613584358082038108101385142409998715233324234717897059530441817386302407655922228061838419719000304661700910889187887335620011140222050701115811340054788544175353836571651847306709580438230418231591417605337309577437496495678185465260252190514471607770226534289357016393307246156706578559397473676036048512678157410821955372822314925723470548607466979824807822656968328317537210099874934863132473905917874854512972634094288325163110913996422406133125139258665434169013490057639223837093061721521408320524034442089017341061749111500743356011911932153381063618838715007479785267832587105622105080474299780806809498384880792265866348137077595775040671876846883420461604162323755568927720551614372540463459551367811431456261050423881412891522189703309459543355845016663135343272387287132547995109421673782159366478200185511800443942450804569454801917445647995103863178853450678016217543212483661917805215766832303256714176195773833501169734184111240711495142698726652804819268299060348436973269478953200710443401576784232960892284763219333651369577453558808147538358156373437893134460234312106186842407870252376557579324618242545036109803300265594894437336117821149444393902785421930858460381122703607023552230525365525991693082903346966265170358521615366152467767831683295209230913822435397462529783369626001779302109084016755392896970841221794959525647743067117764272729265917009225531663669118871267523959088985251127341268417470774085838533365339834031063962925454171956678118574348020468356016173812106566960968174732292605296636869076252327514664737341280403172551901971320746298433929814345540018293261960751041416245299982343847049119538142211247111390216055988196673537100245062452768515830767213471505303588027379644442922805043650313716082503305070187132931955483077023857317802188617633530433755586924096714615374409240957633949193555785062663381108492370362594978882818206180906232021785254258287958558789909597246281973134112594441896083009468054308962045945649844384264499362300261489778400906505290038254825957452624412548603093140534711168933010727661603434594837561560466793850501594388036211372660539713268141459290697622195151448814264521330702311693131914046523137141162219601223181791124682697510032566625076897704225645458031050253333757458633370158259622025869576187945896883137010272594698642521880627750715120670548027552613025411814899248382846475832219486199391538025584187456101723436193887842584521443155374091583481026877584309044120095391706186818998871294208172551282378079339160519970874548287431782427307042982062015611829275495088932868184033572358128655772844270359284656078943166685292789912294513069528304930359626549522266217408933211656391484507972125033486985832748689077396747932503384539367280696136580417563230951507482141781919231915178215164536946155672944103186569572672888574343296327594073036138503817129882132328189068516969775360443199664311731320526603654834425670305991587902310196003767069769751973352745986661424009720137187668636701383459852140108075510018703963246893346420102255338952916303182594804133774136789730972341192689275236246557191655827871181149773119312558436929444146494022620920505202359960944561625754881139195459859637013394755600799529007654458216846903929626115491435767111745091840754953718477744951254937148471714899924490898272054190222514384495374779961808741862608279152074115439517527005077084551540554141952668242165356616182094849047431317584773796774970420506914486939443567018778144787640379630150728001620615282184566515090794050296350900853018894619287342796287076229298963918000764303349138382971582467143296453681506205194729772372549358241011602861355481298842530210943003421082334776245384581521356038058322547032356702536711106979114057336659114850183533367513703984972543452814499691752446739443899601632253864142572199299759465388574099126591395827383527317804038191346122468467126942799808137228458876207244420658175868557315661817599408927549632723001573513880400879496399707625284154987506033150030487871918232324640679742273506304355335135460093417246864827928425904486949134351294546795433689264336280876596359559485398707709396165599854990398104109266181235544854866391748038940421176920860307276102357236542402250163622771829079005848343483347897064276742054944121878852537614407553628332538881963452340175008822398608577582152388527044000771871219640934130284453431289993336431171810310409821408038667571672164886350775300530008739149103779739557098862184171143260849799204519125334076784699978278806804471610486286839602051383004553064132806726234257974044220235403846666145649192434743439581437930900705218085984432852268786720344531781531464861536788157700205443396400568750502570601864309632716654372857522413839408094762409477836822572721951651911292522757205557772422021482622486526633739586597836792893771541989218741108824434460912134814751972109119130384114163368006697621887249011908350226158473676033273390255657714967497644648942552372894607398239887864713472412182777461749900333146859431135571996215583122156066510916550519201969055852752233637413309916994877735220323488397011496217223288904899097596468483353624242533004439610246395379741222505812675136481040244901118542766703618027994935200758514161482613767117756263031974396609973858562337749397537251866191369185606722169959327642864525102910889897643465711847498181680682846915977383979416712328466735899303626477848036889407831923077454267780961252612178435993574212215692683752154437887009397036569051899949234356433361048364882219512845394436652344739083400351705414056495935840541148481937409498693242201148767745177311398729625833759779360578652942730547254661330830969394177732407569185363467904060930663389820633583660272919101229909516008366599071704778874013891174127045844660757003972403393488328758664917284085069409690434214120298125387679855928192423171427390758911283504326920163019520152463196962279737061968227163659310715562684626040492909932934992462373885961415114299746004901047666274257054110066406841468398491548331489706645126037145761055289139153288967890010615754040813521683344976806098341012717371637543029846712057756112365144124703733530873260510802711994790929525253145633773961487472472775612539198872691074697008279752446717374978942014581642470469657145818600719511728497973861890740548468868429461241309035435246508449786726084068264736418843064726688091374909446014370879746996934009262855432812555274332613884230697848447119315883649650207391873757361111388450033662329129468909630327897959415469917512122970643670918260465567916990271271958091821381995743262848803321793415052318554665766317690832415195212610933523376017666121984557747320379228862672816904515203855783816297019959747576769318964606406939290256620347959273310370361756649200931911195371398492274824876645735597217727703329059702803689989684714171139126124506271527179100362014374221308256548886903438823619208710259470593568736918079647623798714668435597704273674154161768643371684185887000884518416599310986202897326866771320323906819621914960013482149242084467200210707794659386958374857046506557750629882378202889211272262259892278037636248959727236924207930425571109258970865934636260241102748255127378605772853880842936089675275886186253737879524965243114452411458037632683467267902215465412441985052953988881346656925516956899120461816294215554620163177714390820559368866104422108811809896703128113375092308679842167202409353929279244647253954867196453907854995365906726400021409903174616962606962566554557453743013918122843519887328379481319642414045915285847516128710486938757350478341965335589422917701193601922366951021467377437200515782207233907121075879994166346128936182321568401384215298386091114576143115002727449293508779887970723447836654709055520563314994016439899173542881975628488395971339079780773293481457264365108864278532716172350891444645544770885635173586069792291791842767694028264653783671549055478114499574057420735302254679091590468993174139327234672040624067069072344337410468353861113884342989704792265086154180391224179610734766907232102784344135951614885808257060264931227968581478142226819091007932013497112204952130587855313090105180057433125218946067613804810834890131901026105207452552607932241608580061315899262497684608578454703328978092358584842853952169168958318426152372528504955278999745512992717898616783792614953607330802646899037891982792454792149198709905463642520912008248074443924696606338600929778238903066725060325891104806477469774915808291534835748440342797314286498134181499395909225119201358018155450805342319965083697486878376374490753762061708440092881549248019340382261638184783070418116847996553450155527978753501285613167693506478739493592218216039557550528491321837653499175276287170158373396879785719655513511305818006483963208830594442756016889545470080656827841338274983196339169381339929808885369040574001677707004977437587909354333597279489491634698792292306996944763027711575295841203244447278241428745512840026604014318395208349328374493402210420465386617975435368289365794914985747742250764426129133855165548755424939322924604301155350695711445777693357195470865844508998045742943278435554162396809125289586556549650614721103040702779815956422057317288658836990285286574579047515512762624395727505176864583002858579704553607089669767109415132520695215160115372587414243478540969151902594028462696096989266813037641796575146624660140961677874399350722246931402294894126479046472343998762311630748871569319756027716047677474727469473743795401865070558080159466312167913966731323089904297737588640782524233311044058676430372553673850707070008739792396800045285586828089827611232269916285207079893279164585214885120771417392067294426780277141593930051959452374942352772492075390726147813797879297346358122614866273541801964083593621665353558942065505936592651908017806729042603313294598612085387534398660869664080185306746808047848531988709088054587472147354003835325169979630823620768464910607862534927321231124990251951663626471044543840363714139257248273688758110936872472415195153314125263723174227248524022837794784608224225444203643646236659230903761812064925539513293824237677647042374809831952237867807573593706572482265429220185654098412658741229703529948697010774181523055387859480072450572730171566128686809819885796626092713281941402469541542648814695948997022102978568464703881600131670000425999820250835264095507715170338191556068370366754670583520525215895725989915917589388170996575025781468654173041910289127716184392918659591857483145779018640188868748980439094939313116937150124663769844661392351661508493918211600666801527279273985539051640582996884011758148597420025766022883389207619000852049770609956717105875607053905932524770007629333539875590203348815144739895351270483996424910151920152789943507972488813313806160127004237007081061572642817963566632483417257849696646109769547759179010975297304380338786143233031746123580760001514085085233193634345057735883642257591653398643542404291033712802754345553544023498513175197802144640302559943473251525096572441687852329047093446906752802884137741089681245350957547246787984855930647771729084960148147253362486644471377037419353625161354295507862066576391740310146920152608852967065536255402277313488074175657832477657383292575377852043081574398636135142177216298767397611231078774410759509812675088482508291840992280007623122729713252761872016427573693398390037226575797079228731502392263390458444542922960700734377056226525106724287130410157935437594372525831588556156998708616521927528257635480521084428924521157578226744188013146912353390932773911971022136278276670013119580034861894365891494068332707117214295110082654600995308436174251790178248952372475105030771287008984347772972673516283081148782888588557913238403376441979894002719207013864399001856826248766699885124919414749190505205293791968854766293765212181031350969810019291345480857223115091023587056316150622648296175544241468813998417402848361963521978763612268355498444486648078172164166289794549402647659655144967378069731586468968340298269583113795149296088280423453789870799012841949828414760736122387597254136307764496723108578327676999741662700894557663388823578653914449990726054296343746276835991664660708597200967657137204616285796851290892976684084707354788689115192303382452663736071866156099566787474276934101723043283428967157390224760014987981632920641473972992055435746165402782949143233481756886607507885712742959352806439654903291118879104579788363402161371867591172258718703601254134193108198335340063750688735283226996029297063927490656913348951834463631610357861509592663020684781040090447939923819976047840865088432890867464269951194416506864081495943041035854777870785303901953449398617768228362475512289478879584126585028160871421392679412045312674155246730136161876089617821187477262396844891172353827493019505704527986500353286082926292394594738486835863432380383567835214321047812325713924070380612152873222937268230206997539664420491903017279343668483913954514069184705289143086569490856082138893354793853073321816640507538713498848521521097225835801246577006975716457663149077122423998463126543368194089987014737023326606663472155954525775939286234184907950895332656155956635260633732816840074411061238489691954343705869330289349838977682546241945219731146344495473004874010193748883624520520911583603837802475184077340906773582069605058759822785261450870707480622513919572126074871480031440146274824380002576095588481505464126015756774524187700526889934509079995493971436574394597418635284216148325823767328513766478359551102940806731054929801953859107949678635349826685660319860814301877827182073570940451008364289739727773802926478010088795164715660608067404627878309173354536710280425822977387430403406148847521184627250275973781614123942219767542736526580654766768651406559810915353768094755394696437744836909105233210857925847803642864707923397190905893240687579898099380682800627067289448070150264408741552688455783263962876840931157280675873131004813116371261198861956853293511988437789684044330376624504260663718171671341158114528618927491394528500623585402512540906540294649796714477097714133444914607048120702553133334015153577967910146877463399585456318949331853497619605009551950501565215301877685581029524167145136105804088888067310119530892630114603774333510021154533066228182166717733474627137078960093524163098660415994192443617724661449453980635761162159577436167881639801775025957650178710229793494458801398127692560921334116854332657373979219132356518750819021549290417292277631569308619109296557004068116470395693551578927127225398823397801517416391054715581231859444022696186196919074200923161770685546905378484628872354389001352584657499817153500936128027963370746849679482033095022251406554932058440016877736690665745948614054445595795983394695147129161891873342264404788417989281586377660709350937919000126967810581258836251414559826497604200460821717328772032024639637231304557340499817187969468506002285961741411442608878181976507345120321043705035798578168355049043379385916569438443877787422712634104519634260210399074599095950886391541646649358602731175549579194631335520063299446980214803540563053219492200648487159364658968433334498615644349832815573165814698929770539613982637341428788685656543739745606711307971973364406804480419646425738127986234307034092211687532368582754321008826497812459769496534572162553451309062776109200598822949602006341355649797286602618047889836126983060402361123773599920044049656471925721906726819279427852212998806786788547066471750917155515343114966669702708533081165986291703181096149072786650268706738035861733106453465443724184354761794265048156363124342225816555557705695271425739931750650311723501210482051881180484874213139325744685739844396960784082354958185299967754018218617492514229821370124697786319038774418904934075703119583131239075434831931998171389746381840836184566907317335030404134789907299080356886566704511988338552145652101601217551837705614421688345049940519681774133094409228032952193435943743573700462960393571132627282768725032195224503698056465069412509417457686623168238373183974215462311442458319122282901132877882862286539608832293147501967938003446084814589437011818214124758370736940484851555367525057306565427043755252638692334004164259867413248056797364891503564041232191195206183817227559173306574856622668609409233683323929118390119019904713360643991296817487304724416279580769331393340080086216919927037892869473762773346541162462111094125974366563395935634983451692936902037325110041696418584346642111442719235583313326456833881357129367270618595782320324523678146349530336833744034038414798985670345305006605498379212723742114530721568576721575574585801003934962057506511466246536684128580125920517942789796972398208847476826278812239189322743638983923787508484709791989476274339377565724573342709074433989400797680886782833831088100772928057224072766336459593580167091929805411077069711523971142696899004075305469263438644970291662873820945516256488281785318065308930375635577296193962296166204353702004415183252141208463276670466820156843244601286964039992823108308020848804015428379933589435984246078371894158016296267592909680013798244492128105445023229647617180144155819629290917532022978695475597236764393151839140176415527017597977277457084500447902737474363198257170418564886009505142274109299030670630278533059597588396937479040237108817782124008775285123304963255920151229118189433881217932061745332941605611950676562541314965255423349502354630984962881664068911230214436834732493295735597524212943588429286716199839700822653599558778598247941409254073778825383541864335207807626031877582166515602462975098771660946187729318797144759168866461772139842377646071687154048601078482206421635754355776266801593483332514761808615305875449922929454278482098957237456195703123816811035642466552668405910227260014067673162174368032455750505123446566483993226069008188981266344103726567864688017778779790150954786518140665368288193697507228731485906538021711002428329725653463855669377550448007973506657688531359642695562483769255979243744018200739100548641119671722909274590373345655815561812785373987914223722004494038595480999097216637280452767860740247103779338115967513507498600602083602510910387168190964408318981518194105773168216872204650170478586218833660383045049232631164836886349090955379886894654947087820418812524089658615303106686212073493408812180678533602976234494374710701883260088666180778184287437844067045261058605574181840076548095360586810584315382997215679060586746099590423960999148137461524740271947808066939741092906547384492788526171473288248590243213881001313932420226858019029377698613738629970306597709386833000779849824709241229578377315779476693316449993240470546358049125149299951103294047239033145203656044169326702771502073199013666048679270301928130588218694538777012943290012024142186991103821680145802126386358155514040557016096689945700859138336363757511690664695159982449162650641348931445528136423359106798187986831897619017320326668343376086217831101006015715578690684981608191698536205560959183511789921907107184552172881439974438823202728747920578407604721911481417096128871263182925622386394864558925772667747856955591433946733071271496845288722968725266948147304180802089578747441164080854801367079048548596349652564149666892713996797743033066181900908688401837163998461269513254496987340405374843988123800721257268269060291131894015795886021007307358300616446149022649922889929259581761150578635923086985026181017822554341984775420304330987312781433537601430433874390524896117901383735954411187889029036509491646521525301871412904675231364945549067022564717379719243448908683891973119971316931023477220769411801388264991646992392087531422372538988290212595465752886336586797662455531776080879024841471381380124624559539299490811208115378356455730218948688001958807689397691273927841262031979931552666449507354805557353568136352777519849207897071098756524161491922366232236923698417483549972555712468285874335937873462702482566668286050616668120017978821663710431770335561865811287805061083890128145086996947133848047285845899729041336963998342454742961663132767826732188540121208733424883640307338475658973544933273947498050073041708174327486535892539469809583541975984208937393905209573840167351007686642754817560719565353196241421234472525432556191621036908139354793159298650110919295554541901011886089659085082365117517756287099106435843526800811025023452123765782733074564863553298906149029285047596254677316509694727912531656143518311615224061480389959931520910666461746908862004314099612328564841443935235263464881271433826042740089418167259689550106009849047276053446014102489290798820524850147055017223965667556934589033353206002460245053625787973648939127649382902800740564843955084148569104230859989021236929190176429018795694329043184281783343607964855858685404908540870898735955862664006409549379970671324665209439846260893186979306118607293570328789598819785075654647678214856363554647693216556380933420674416827924774537094340506959547124363101200754208089653179980328486064657963531284413855083100401843371847767270088802383364901974941784145732377739329580596725273247388775835202306002686835177680158402417551778686500656490871496408403336402232861417563592772687334114846915124262563833650161697060643050620988520976054490774962017190623408126173560602515054629789170435925351757473726555005192249568314142520665771870400236841321924486719952983046958724582556810382331734334196145368047376645272227209005139604466342434816234428370412382866647433017605916652323451679084377447574586387846667044054019487307732703042172217019260887143325028147822928237948301845382085300952078279533193774859225643895961523426835443872674434820341487512072132833338443369453668736721432582025659565014635276070386339819297322503344486155160178286332586139682833761822039574947886993232604662340957091290090302382695061737335859357303187741611883405701643955668709576959851202631826469349331993495171513886055204055230888913620509061820988189114075589411828729398257535425349341507694598096944591859656896889931098470671357809538637404647595219207286624102597134105548525619891620776848941420328350357886794907561111036180308088860659958630058671922445797571967611610651443627501535132815957948066835365570159038853453773574783854691066088281615970798867379980389288076089572075537552343101357826851645765187917699997133430717347441338030093636833061277500280462153787121510394904998923130832401618631533192342366109426227516031239009042317812184144343107197161372901505758165956191224357565738513280420051665898963059896356934194396666736393568460340602634893485624722788174157527599856820929472475036580989671789807934438973729677900538513876485056035536426280784869549691397919699495742602603788502352592898939788417484167709376334679855655032791979805815851923004610592235567817858180125723479110741604594950309390075554653310524908028740759154099164891351529399543098280200547561754712449740828963472953941168569960023253468042843061707882125266933617165063586621752620627272803232271508054859101785305282483312379462952631594420530061388761498676746841706363839282196804129473883094269093214827223742286516581430230089203418130641654440206138078932446183333000052257530468813337478489833190222065550619871375572198896700405091631263009742329016751099871638320116894703944319801329099640143113526761516678690947589649230262063824352245933057808015276270918325436235317769003072237378151656048632274467728438145994888665211138031448060167466409088486420625074608862763525286687564842492762583836905915955554992051876584642823284429772204965719720817224979694160094761126742985487667510415607731265438761092415559949457064745540198268274932974788724615562997113284241293377709951635396476826903924887640650060122088221800105182492936079554667568255891821592955995953021690122591669860763281485745202669002592988973546693794118935397490905787568081717418493352197308673694992157904934199488609667241459297168076962861676396654664176069853231904827193458328902912076075901519312995585883932739851202618854538155370132050028336080616382726897604720749858263266405735915400801439671376144320856775392264175262994133775721557929244481910654724797703111780899727669700538088890914917273749142459559496798537016274130500596557919370072724382131348777011690342189412341068145525011385062176227704884312384391855793772406973525469464895368566425557274055043394363352869723651965007194522236991748155411718024412129991956943468124413314657487664534876553897006909342811361509095944825057044335157069025235072622161744869621205716218462617934646898140058692126414738766307023811892922249987627019884543316525588503834792747373913276708838896879479140131017985545258854014939633732750176574623985713236506621144797261401283747081798116789260747416202035445545135483172970746566964711532239945410613644370405308775820987221453230615694698222974839949518584479217905050902628430599111072658873274744681180292827185541032239020515359534133998872395054622293365456725038236427999285243810764834824030700788705288030404259208003828418559860772688532256213440167385355105900173247137665716846060332270209855718907279949923613079734480382803442279301395010467837995836667372187761357924285246808593721602943187330971868833243621214218723928063171212548041044789219780698536141124174229706097002058236760494797383014473607548848578661407859363276237341440279284521377456639621330179777837410020513973323770259569825147234668406943116181412581750428678201902655083953823033238184065927051896299241877820215402505275085639624021281431307720769135019353779177716886069545380609269822275255114311068453787731493166081341776830002719799800412444483955569719285378534069908238068303931306504431733489109262761637639854465893761849409418926553161351319375020840296562223232459204095208285915739323751110381760053440901569878060493740896242134403160825800015369193806392409846747672301133325113725692440854218605040399217929998720069773628867995538601397200822400516170593289505150437606101255611202400728376667086922547458114482877311229076113633149071963016283355252226562893108005254346385541336526085674141796372345872203728151997424565145914884879661166604346209353442477924486955877570275856461246804996953727490905532527415865045474655781108299370599139590678661192943329904696172290033076078698275300518733644152399532560861076059933635485363281182152821813319103475511471397329632072193238950538193885361367626729005139122004973094792193803835543368380880034940598210181133982265756788172252486670246980773789228207461413981051872923410825910305162100649797933590051874831325177718660873085681648842558052328830004675109697669543511324255908101252831262855791698257804877755366368800488856610274108112256438357148711550295518770079614269274432525171760935507381277019685156421818064061645236379633400404301377245241055540530865488012808953662768940363005645398734238694890449808223245191428643676985663858725199525191525248172333966944998102516244109715645920935593548998926343643499707516452647408932021503067172058102653804043582964150500617900664315562461897152432192670129833756905508236889139278029013803516735681705919469755073849860966830803484162841375275065466689153948040177580612062793106291485733946137737182994800155160366088292524023219831411705140910431444450917853204862403209237945713160685873011100673925946975594278683945939793893433844840212337499195909271535016817409774958927796204282256806597613001623669351707466911141437453849406948070908672990711300996331422446335071147380375712867135595691209183136680095526855907862740318368844627782191649778812464181833263734062599724979840859687952644254712611857899832385030578157179667145720152988619513554247272506725212093951881742512108538258988226113860171208201336388736536810689950737945556651600244216580948244921675905562648496738596847582896269910405330673107570570985016306311348291342168578367719311893969168386341139717281983334839625248738904805357914887589602128188377882976596653637350510616522272547440258378113932662779892579970580074808364696666315323502730342817044865607440720210811364488263046141984486368837773677821660479758840599214039605016115879925525454673840729430134181922379636254849841089161647862338134004654370481757219442745130801804060864928144177171542962744823613781973031094615328285043831504606627581807994347716844516116212493221912876846820247390281248188886528288926371550639765076246560314460134551893741479727579549179672804826016145225257688727040973113809929957720219311505153008663826804107366697449670324437806762348663090121369554246944450972418924804882768895415011383085135453549780859467353116263530216238787881637369122649339358736281117551940350859716239341023447786502795070256976315327299296617454502144190618242062432907137936078728495748135795975565543413193876217261819635267951667319127763605569704775508452136780198896005635848036523601622019263241235990952960351578128770249828162646052793884665564683161366786211191514979252904657955843431899639205026742314556609057294631422289992295748715260483518087470104866690230723339598223745569383901136997317045688465000548154663538328083242806726959253309876758692189503046688574061875055731719831995873862531267227982230205308881010396699508624480118191449570436428928156391024037906239105556590553260464933317182734344889043019130503230495801988510121340839655507260166295074720525778388355876047796027765583955891683978945828518115812562394317226001028631192779129096026083728639103276288860833326885036395866950379288948906064927012437472371629647001404943481450323027856596002408958812665815726531064164185542103902604770128368640637456197684025969329763339929772888771827789276016454379082358701925949323629819146464902967675224185652497961946790027094819219397492642224705977592363983791459429621278019927110821954850695390059982029102024606574803909490630082382369225500732998774082185937416630176082967498535981120693278981914293319074469785617800014208059877849209443880317073277870640432913813706403078668070370182402466882426240856344641067493243842034930135082211346656444566535223220587477814894374654755071112959579872281292436056283460172210362679801406497380123376701842391612260753842098135076640431182051347556521613120461272062307716945365619685513934340575725187957190132245622269304802583713007020312307004874210819153888235665595952116479354406193873610270724144536050651005377821544570563857437364077744697621443668944838325628768463660127262874022757643246765017137025054354747437725671600296130793561684687079510837395402528889105914733049232587865212208159707925648570609348747201863425678374016478358937250933349531219789310668647290805578427283438748306329725954514104760706736177971158165703196381328931837693339221125840155997589997192263851454784706080096145609998074183085131998625982575834863931873048194988017348014959036440910948065789123519950450067541370488971150133697273302860791980167265170241793506841860256196730971278391380659725370571467965398023896642749550385855935138119006557950354497525899986204899098627911189630748705363934389409456391049242735890906923738492819552691983542835726270701931068456882119665072407399169389438457635735634078433470997599915067219913072294493255491798145450058365679085599141781455890437161087419320907355281789691333209586161076990635243410763239777388391844302092886349754097197647092488834426233654187549214426802562391501936165349024657263190664353393028532816317008786649462930044345562040813088700766679794509512557036791153882364587666987575420559753989983321651156817717734262525325316101354438059220541618287802970671085796714564789613966325021063105024121480155084237727646970935022013039850998140842618444101820903263632115230461923069331110308703066081136037769570063035760319780337416984119885916653422084605887906801567176806368771930927821781751086536014317086828851609503631404013624538269708631827523950593795003018586893804205678178465014256300909555773415213815593887710922410785997037918173481582398900613398283742917389506046630791372664428477133496795069299242898850726915047426916374290342179404189186727513237797932533543608511623597266717913985939768676711591293273125981900058795267465181340240311419034824946120661620133441072128941399491314721439273158179592108892637739001164859291177903302396946350240383435061333199736528100371888386789962445584732992989583988646817934498864940690075552076835506154349301561654842875056915182594233136329053847819030405504339305194363225794821144148178947042795524439090145367991339388018334546900511711139437889572767609102930572542884357202358623865590590000764042795735367636507458819150099315089807593574678738939710741908131707042362685891852227798865939608253752135180272669633776890506121142981226060153779422514724539025428001318770533376123387983525701179762493791031048118129676625735832406491659467028130715880348931810535680524319644630425248875586409873904337865380258465190934793281347263766420125267505953947033296990041666486185168043115371181585820828850603186286742499684008339049738859005911560220769577077061561366975388110532952986224765464607842028517817878904781279315564730274500297597465003783555743969104812254719651536538879256647059249511067699831489674727481719114756760080147507456546693708518644351865244530854275267635123475529362616890080141625489853187831488116694599530736972790349315837534621153024102486077451529220400413136269216483058600878813075760082656318949804960170452959311841934981552806072903552982870797325920328475543571052643471859735423939025614290978011427424185212442549022027449004094405250798953961406071287796236000687126052472555758520622393954134349093345893021920935488095478091932445599928442189839382801261541595381158193683330117506606982159971110103430164734359420181460358213736544804692142373080456483837145420419022136145388369968265863794192339982880456964573167472230464407470428418850803470164518841660198148451482601943665803675021498032193471490943383549584207006867938453366512194203869418460427368896235295548270222301368948979802625546704781653538337216522404466698707091800486346119373225688531850655440170717315186170882646739455975968801961451387022262901518980206596020225123783703028539190193490287055138963197222800896307152662865568625114717696982286593334185418721263474286654556198261336960909723608588456547422441178025257694281113020541937123876733313798912623944923418530989205537418274135622323512832223110115399794486230571037640598171781184454908454637159328812163529509293081805376690946566142762143511726848716159338173419851075554588079394333708172908014642422287786307709538218825625608188782696834145350579643459225161782508393765408534930338390101641868855322308983651295000466227427341890371510799419982989485368160394109380610155927157383832906541653482695009717478366967459164012956887487239511937709040578667037266293998196835683694167535392655865872324178853000457026504122665866137179250103089593325783047569994253488853891530247058980743251517970915115276026899116868844064758891675695677011854845245298350662044130378237065732999977935784811307671015407520833795782343708351337570708582484198649844951206851316732323061952328639804441596555301616758729568198189904668230510845360002689916550150027361743027822818872056997133027347117150851292301934518923639433116561202288527974474836831202338639706996401926190871581736793020064341927799821912007871744480062240279509187785810551213176910537805394905447908132894078111623664022947961227476454360837817555213896941677755520181432825773851998223719834742446198165568418362550657102584091380913264189707625478782324094068415573905498891106293233872746810580459396203692557393710027374635192556864718166046838291689720769463645959664761038003841722928835004008080205298690080574334712973543986410822508814648457928150331066383731781505430378320470412839700260853586406484771151131995219626521393646457502061953595149229878169366584092693659165256374267284769388791928889047465131009405481585804682192567871881721707171472555892231890171535381450684918574012738869775243665428455095771213933152252785513127086350005124035202265168054592812570933395825613851994412347122483661477520420856026122270113663813397678416802911243542407748859215401368311183575043561671886463066455128395167899593745537498792411566283281545128704393263492115638597941196799875292857163943537643648180666629281816958962462133066386491672517349703043194961720896798819871504493175100301398564922211768828547037745838063419061605439576893656882081603702406125485262962260101601255591182800093454684894845773764994911584650184224352517812476110426086572366560219592295120304289829544129861639628059397425868136658922777088211975896437364443333843770794563397404657877138613236181614712726341431734696877110743292428191239257553785793126586757826497851145571606682699410704492499670578479619558275971896859425287398637467552448405021369810384501785749173027536700371391964733572337009227935950426966816407601262311812611009784443089473794748708199029532783321011487255786846217060135358626901713180620516070179685459815889400390565530310350805349826762867403758779574230727881173469980030968107965243361655164601676107838458487561943367584513454119402190906292487970545116734210877827506882228416956341301179390551152245274419112008596898358394539644115249490403842708766685560484984402972166319901888269078353775006269159690243503615172346189335999427389625073152786954514154104447641779206949404978231949070287173106032583035075262703598248176986848770343769987915534841615869216463342555447440163712086253535888549145455960313529750340963994183301727461573039069178261400345806566392589132852868290897066227465625659307596731779285992547090112275736916538626387893946931786109235066259430644401841350602352300825462965734601897061296075309704760280731711492159030132780006462978075147520942763343302912309640668373814545116788494096799541718547184837922134434274418838871840519646489901622216650594504887910746640218350844691117628420186293375796796728503835069666724192923231653146711056447606366355967195782113682102532969312106701451515059706334283965592226181626232567203393128463508475416555277844567914501691258011572495853400274214714835454722386376071838130364408304917916211418261810600296500416974061968593044077394395597606812387842222676090102837797143526920859164598875794846546410110193283980547715493777378244838107580694696597192492057369615143318268968528105395823331020276978585506458857108903055186915314087383823955771028485835187351884760315917892191286900807924646731803627959263917728515762003861716030327671123922826642575332803826773243988859621481281765566651782619664122194112882069735895380541233114925828433144885042439236375896457885719550502276214800711586753418469838326548385754286502346533482430889541488270593879329457488657648164284407910945207924460464312417046717672132598544139101368441742974117117230216876140431772357396652274812655745923395678761257057075878841548638838056541765848148513332031422231242062991695149391881666273345538499881634152561132249743688945584661017496871301879269383886049382375598239366856728561794442569617601774488137619759548086598616343839175689629463545285149427619853187937301226336905944814436155172680710453173477932506504323379649493748730209698688693503042662645454918598846964718909896015573095617430781549917173351836305204066217334535230854376221583085012645179147144635628928735139404099530794125611873165440738032637869243576768961972023996902386754271499322151546336898455606272244691993925096834842898439927355869709525001457007026265333605894211054746499589765473077621248637772179210818885323286013064233936265781931226331804119139733421032796450011327674826748486559164431218357715513340592928454762894589718315467227405884708041712996513313761574551672732812368382239668744188631106380841176051134855312761307415110502849023703324010458158914465198331424786518775932687956504356677071241680857148668968361147511969742655594397125077750503027881719206903719656652886362353302639953491363077298444199295138309155986851320605106413302302676179058933324938291856937879385249283539229309645551333467787624919707101364014852049719739318918781440663108897653864941743650930384543852542011832239622323350347637889254480299593207707800907874608708140286426625839213595160048584131411313020380479130543039721591992253537917450418418597678747382664010428086372150924035781715094132617517160817408056026177935008600879356707156275685107185280366018000963887162443571857760777448961286055615075067572208787333607811680607210124359814892923284843218650180420975217465946115904422209129455622019339743385801331361675283191759711262692109763378249949938002674924799779898651494177923856937469920145827076920931902874546119181741341491864444784921896923254787808533754062154099470281659935587824503359568729608010443959150706268624479880682018274159800978392690467057248927700505816287132133393338240664885167461994444507752826684934984439799947614032124979448804772874964797752209890611889807488335181796458287434039069188529348143217187689429691975546786826666797498379881412914470174657591274893897151792077383027867374111943182572645667886078415698565483406883574441674200561849149617670884283144694740385401099895658941478917466111530214723155047392505046244672346769647612787832203766076639715482308208799253876004745297177721250804441479135894343356959100404028821448716602645219109911344334706733957185278580658493485227815200080937922734596717552640373321550957832646110411307099042870518546860194355086079199946922047168005192370174173211057994134708012305571004772067008804625284605831443603072217914018361242788561755383618166487789713850823832296037008871940044581246704898826849743763550034690012359114947608675399894039679383693753242879754833703342221367844626644542475560705664607366631064987333083256092432827961392960089437467717849004268000822853571452027932948115086218870156505232379838944820350884204047964270942684407083451099623691025827112031550179090130337820476605156746615339832578116738719114559320352165412460646760793437155168920945380098969627649625409721535399776166055160037896536118377354146670664542166269629257375791822526652699043943872434490791850659895356925119123671184824782729005515128021115447995548407450338382141663594962309437432513493939339188315595964921299743381272040810188456100240764285911832569769231064895769159433618545411449498053145185746185788179116170225196060688282804514627063886775225824820471427382206785071228405005554339230206953729461439160185342091707906240466773718919846104549824941884836100418729469868807069016794262774577417386607118977574198061378676441673912402927206554840990007688415094582913064899554135166421544411703615266634647553278840186705475460493764628505715299926869626263580868910460803234423256953371226741641333721394001648725892891275647461844017917270492043852667491801449018596877223004233123765036053446412981111926426383831030263283053947635338662342941530531070103691022727442606360243292526182661175823117413303752307564425692614600380722307038793537350821397032861801636629790379210527231298385482325321035910686896311339751868621381297757948576605889315274972995878044368738079959818450172883258761886854128745121722185321930446142461213492923970297795396875218751309806166448148209336214198459046734434205381803108879942437548858203596312455911825339229161520358297682460064120447532910644896477997532427190530431405875687896536369101004513306667979166633156649462627497264663442772067035985824381779668543592764710852805384123337195383097293732527600808845385151834458738738100230000732462160096517095591327086144456311867376885919246643961325554801510590526202004306274997944936542496285087295347637456759732007275733575456931905222174853783036140823846355356973539732733036220024399515365718028918429366168633368114541374670067635355433859027288869824043096031142322692479406061177035818986500478558072001460651450234206813560657904773535570921116878702430826108578466710658374017913271511863359312980348470505802478484229861485977654866112208686319852150127252788888249576947629126340961588826910916636874873058153181263774111754391196382271353394617485935209223199963160470215242726343852867742512336422638751005802256321899404132912940027390698401295632904819970985257846464361666384179660378011387368797063325572890452559111256244435768903837349855159501526089065142971196123984640534356837958489511438732958393846338211892837104789790846138150582299312535239435543245884511038289909032409840114912088799423252797432563475427392538703505618098103911350711684094214568256716579618567497867190789761584702567036398973551575075789152791977260408162568360970619113791951171416196155545548783954977158115219848284692726591285599973995705646909205731580985672437734692560016017613914673348085440536400935600592602146998182837466573648603001088320047646846081528477111921349624018202700246169550622121587990318336473492991230418178986535865024806234977248846783573754395120206571045475426211042781906696480570672801471334531626828566142981816779767477198304279772424550890824630362195234100699782724813831307937038217394395681983793853463630647559898511180759116904699926705720253353636081362610306939490849734057517624055717468672905440753646294667879078701536592961540384762597203995643102539589640471669515651053756946100027905378817515818649779199948067446684682723776216572427427347161828791677763113112846710823435049311966979966796541723945466936261570856580831988636305418773456006002627749173637876544422552380628180610662017896659740322513130519637609345867263404492418066591685944439456519547664497212041671313848375523435277948366951073259587027242393147269606777142200753376098598066346905050994347757968461194444368568260283608549150163557196307966625433692546333833407491869170009563306476115106559077842749501462426096672874666326174194374931243857139360102352636434150498026111987434650392827872517418299252742765388828450437324123363588831867145033650952037744167038661355658094836549179283021109590165115535110503201176590512487075809313572710323527038051430104115415133661373596844113064412590291387297271236318699296513609977775044553408967577680249202548717218272405918876079318774142778628057273026579277037434894690533200652207670809944985807353763767792380631509322622065835666715529884829080818810023501449930727155670461276510058621427802772788786491490166457043054773232252405279150559490790440635775303124409721248321130291615261921090074994919190392434647117744116506050183627493662764531808052163792035202163677944464184035992737396495207957711998108618738929158241299522192073791459213829559817633602404833591743353663837288724348993318001462706930730755895548257954984401034477901581685091726028104431498627954545180944212988083139309605261658775764546597491477162929488381015977232866227931348869401508827199591203855828284797557095612408358117161796463708349741935525102232477256390421204940450649971477039234632857249116423485873383672304120152089564457973525973849427974711962320631305530364608294405862633953741757494762822036335472769920757764679619841439591900072931678959461366021654657529708529859119482805301575839819695092775075140385113317600367230349554838865387848807686316418431792637633130540974924211162814774518467818182858902033156873283426312720162423972767316141970258889030486858542327079193214863591398348338665292846502855854982806858544426817877600753408550705606988117953798944113150293312255126794261106163901303353718455210306325051532474174609788212286359210744790193870972074186932687391682703217152141928961453590353057991909806818444321436324993075903403311427074647949952157965125851913498459232891846516886006119887111823746396671645894353704710942933532285486042427375991947576032315184906067594409451107914556243136966824134964800413195197518383724623318542828476319115676878265983712711299468643906815800789599136119550657184790021624838763098715468516772038804818844467818801239629159024971274712483973524795223451734279248738127367659539389044379091275139966862198339340742667725126934094202564495782142379461476501178774892264455651885664970084851586686418474878794662623431697545526561910554293916041146733728133786415661579615063411790604513911027624968511444959099935051281234045235830737774511900883359179901102295596545634721522159749898105051476804752399563281468373707191023762336637861026179961683409119398556520093889427240781034414799855640004876438650477306689383419848691876245117732175983007046436691491298657619703728013193876765004027899270881655720397921222345469984949361366679829769869712961694408961985871115607232385281861375301313152635355204369655047459021252084911783298783891876473987897485948898568059217789706423431064646263461038211993874577826148403832163306392062498167172025473415096419239994850130605983541114825790096087202643950134180432657858978486207493441413034589962604747387848513418540452809410563125197457932169442814541574833084632067416569373020788209804979702362889883719198574858900213422919284432036920397195668467632522314882565599853172559624171322507252770879257005022187532692349750013586885259595285401686056153457370166950725454606096555326716439331264726368331802649658274304960780341704543848257336134259740337278704294981568353650277175825982645069240627414338004171881780631204872475178753050411008505648664135247438869213082251339433314901483914766316725021414028033337541174184678515483449677080519396314689463639802686589625507976349100015121572225530448777372567467673981940156290566214251101440122058394856337575768215604262065906083251265626793103166007961566487224456445467293855363725985107887309996071385542386176381500072427396908024501278345449114245202796520837914568555638711407283437411206746090882478659526278913156093748191730945154138716624666788480713618447232666047299644496399369012654714158521163958596715764907591237124425920693228477502689150688121844998864352313358318235809780595296416128734699746277786122677697440207801942479385029285661589460689681717078446743927819168624981556386003265806205075210338657345247968867087631437707569119168284664523596787569895264534422318137513447858712960380195830187050308083776461383399704340439639782112344631791556745922200344521794794280794520825569345746898587866693261472850360517435439174656444676576320925835745580482349191144085578274087776205811611020385177051663631003918876895049962388942403426292980220803668113975813415363781956253428846967941428031607318615484637178460491834713361245923752408021162954384054404498764429537135850647326350692879001504477797405387198000612038737102812060257111469204727373221075217433429093297622274665568852742453135192068834160553891075487908100073845642885226500279855172591782928114031963442088516492271823866291187215838226201926648480010437439877387178744978943029892447168243786828993155548240964347263961887631250842634230314315572250184234490700639241094743746435314791692934002768364865875142920901096918443426033718271499916399495635163842598949544218852995162222023091135461512382218998677845609569082577999473946954301305214650209291104783995651905305851059167973844247928557935392135742797887356580211365435403906947639187042453667806115473994005436623696955441624351084135396652244451644336285601391359312940763953414405566002354647988075700250198226867960389496691472996039013089733391820264261487122191138968862757797761255267526879640038793930565023389632833682566153015182834697387907295261621923698213071828576311299558543209897623937089583779029636237123113095158794239853231406675607875757052191952484455461837426345854717774377310316752257816689450600029078087278396696310013267715733113732352580818005726346261351560435091425344638449420965246730179709834461300503735163672087742334557911613916726823937074341053879069897028671513024197734860754112636252188339543526935385637548723525629926366570087749152894900566692529034797552889458743056326035367589663900466010183323221604249697993297286658655219522677117471387111313910557443301785494386639608267918623400974162991995830540766159113716524240929955477307938977939232572319543837468586578428664475665130111979089448379108967618669531859037701652442881813420635300343748540567599931746387392535086601764001716870301656145795527711236860934069812828751813310855463761859401770879620512254020157995277560385800395310281145796945269788991238796497455279055670699581417132105572491746861797518565763953153436606717943817403866853325236066097027330117005638441079816718181944779401991839863833574376603754228061606536135190074071367683532444789223122479854132419051760862122255112732633725144873496124820645321462359935950097280361566772811618768270322776409220147523257236287763884531317675976221115340257014990604376580899081679883786252709566416470678280652933599890827739471766572205221319429247224284370348676204304339503247867772598024224729355527065239020409315233562616464683326639032316656032125510679339119075322582018187580404586725975239904659294555504347791824281736388930789513233817628251627663357743288014501091871391829824851571016287966556732301764054150443566705022022951316082334662532289247048245954713134577085212277269866301844807179729094358508524247478205721997129615804281137248671187903015456549224413086350511293101916173211371377396041768051666049074106829282929583176407939529345086193785222925140799248742563756085281180632042820758362303643081561297160813140302153264794734161442379513104229773834098760418133191986874041018926880632103051476842469836915783482982701415832902169884975820586068931137707258822485755041109093541990038228699190949786504166265056857430019828103219496571264541578911754632245209113100175613577437264950286262164554177792943927874323574187620964628268504428491453926632120038271601417573072762869821620092612117140890590715732213427035240006407901243090042124082241676965629417051423414307521977002340361260370022636567626608231822199020223107216524363527985634921581849089111734720098540157917492731766388034663033152684693797339961362591663243098761763855142451283570656507917847662416660635012309718398237353403931206535179867929503932434438999056477474720571016024776218781780110845488200335876511834992308879519669258718630263616905615728112071449074097526852792591985104223713320455378119324770554996838198424258640958186973021769580552688127610237997839356705289732404349735851376215367845239532865325274742966221442140323509886546401316428139008353289052810831691564716868900769252842484776813299368548683084244172555329242897757450113895255301901574546854327541366678584919124984439365963171999163904070264493316119346595587339681329050150518017172495589992806201275703219064047621214995810701967663984767171565966401029391974501756324613355466218327825770953460275681302639719255032713170274132256909131675958135137577346549202640931662408719881407421987819712057109361960359020208022690347903053325330541125918894076814406334084263697738956472687207859650403814838962065228151125401603570350430324931027075248814624709501890279545511928027275483346228138391808091081876314401684740542030643502476494949598503898487420888034728095387600913755339108963241330149679646973833067007727987363368208672122238731709605839932692326076945367265003109401172220629001815245513956616395903224227533322203715511519456941959347697419545014101525984097853066225754391426346141897613971558502160520220414849847373055149374298939484517376449142746029363394443582983046345781984546764856856057094184123170081820014662262365175892006945541892676852973036413199188690971637877415126313505395263910557419459464432412351319368212029191002814579273165865406167437214854637052323361894805730510808271446812416295408836991980033057183782549100013624248082278609319331727262697798223373285303108367771360506583418092938393681772253165726708091307974639205882196691087824879633343729292619402665270383862989812322817211370805388499389068365676613169845667263935991673889521923141514877241445181847019972384750923667680815629355269166121558171330532084522736429944985404290664669034583669292279611230173181969075461048479948985492295926899581615173116404753761429053311440022212844058142855749364168595023868282040052385264834606668257255341647210885443460066323960837126138614628151929988904491863676709842673221712695790781460205316825447023693668157002725338924191420287724924553250578348757473306335867121196725076400976911377941607577577628802971557453394925660780973224835107228662274551562816140554438848682659154016195817601456853614243221460044694618944015424574962364812624140310879511488243152213573652487305577354390696469786654827562277899224835508296327358325176087018240681478384828062870123198430616751597264863262757284450648412466161572695242561930229946541215617774774089428724905935186425238262344666231202661792747261386649109694506391063494044412774003251616256283555825790337178725402636493654254300527679985417854340899417579927087628774663934496724711212872183519089314155649149384793060629062955082572583139618026266828360034484564792814835978365572006323520797176492899576404845317846907389704912513379498137505777054135151440709050655148945472696741125230564890920527758090847334854486115039117238695818658365821316813742756493849083157488753668042729760416843480473008136822170494401057152900479888912613460476286271190208127531495064451103054739171327407613017690624409609395069029033924251115200645641036131844124642272375941557006515765503040540633823300735747335918053354375547319902965324827737641816945262714288874907666494248940761150906780103053367424509789415926472091090726686541934930155426000967063841564259847981603999148491005779054543852867680228696649239176077687287581617733294711588645509255678941498442881760370207684762666685640004126868097619389989032651229023114010682985492031575241566693523029860884157925763795972775549139922291588722113246036032190898603418804811538706399811717372543449813974673121197870731039852411076038605580187455916754208823898951948132697887348323028216771684663290497748350675727160304420215573538811410010410244099712633593348708264525925797000216098611435684377353626943311411040934170757238761942297516142498254518917027484651379701041296768418635486635354918238444820964232490863383586222723697927021655663986283255871532676870003824589141092775128600135515194434400183940964906993243964521025365287145489061214221451554010250720888337814527946998853046809226640972158660636912276612364756335671753774490285867615424793827663679295076045971565340087390698693756366286301082397188110660647430852192621125071266947279843422454359774019190256012442344575622818669208455711411329653158146353889310517312493981372600202409582833123778722214272878695798544034810242264101514709696412514938113989574042989779573554919031545155633789684268155813839404677195366744820413102878783601714189114453010091426457636388823109865210689651753442708495524242095018511732919375495470094325542069151751831962289586201237077626455638673516151081721991904729213283549753338597510318004623102464891732075288280693983711437614078075305583355707211954545801573232395412470439991595556922258692439531460002452976375200977697211417557222663618088558080271344773260804668289002917410938236969908372452837267229844534428931448566137414743142358363554683919829497491336230926250040184162026801512419477585116181904207840910519297105199569766278184286309249539310675521426656743170149575662726144736921302669015276430670143840814514378334711748304179407729789353742070222834547138664213288552085710460988284622869996559384129004988777148202523704993340482508168173206822877402406325039726068119700025376255670180422698109624664490673629909617836462090230407684621223679722136569345171451378541211274116259657012467458580299010428933251926531367626046908344177654761397999244919830893659272411473869632577266535161536772714119942347767204111187791426866524051695703150099722609974022252281685267157260764137282929419209458928223311008814059589188152184904254654211279624912889708097443497802517491368115800784135397453181885611691156894308418857135164507459260431529036279101299831274330730882131357418447730451392264266686233870229383767317833130627477351029390430713333550126932652159669170495704751093761587994883257915909685499496073545675232226361782441836205771106284525999317257924029181550350220653983413041396104222458390202551098707023745008887782121056223851525351214192771850479155892064432822615564570561019129858362288104641289747504907585371317331408326145988437366202001353230187837097083284094870203784709914098682854049827480668949376291344818635676633029686175856413091537593892601917373890144958757627884718549644303208465693558238640922498721440697916683621551111273235156564398586370018946544144342041452059456805834648232221937727448158801674081146959060617906123023503289491575899131225403162844387810208501058539808345380747357983109702348282974953602934424052010354927244044401795039347712747502556923526429831178088666225896251188251007542813664698157483932560946813468317845155433190492239958977193874693127996455166693114634151972527201899327585149816435287682436733827946407418319219343139604456472022089499332344075365114380446339634144381036134258809852092098028080801002368092948065816098357803560860084979754209667917334484084717134809883034373099160318080973914289256505679331560278065517830588148064154625204399181310744636458404841362432884186873668057952634934792782944414131684065700957900868470554084137172562793409835882025911746550383623675467554583318372155364331650427450037086144297627512629154972280301301456256391914908421268242897857810016371482500776689401749843632837213961970456048497497895442171250890645054162774191705484661334446088794079586471009080081444375731400271732446039683160898803593684617067405755554999110417194550567843160473565362754628180393537622054244251194089855890742704269340677213580695966420007683903221660551209178669997017342802569035292167319331643048610326016446796117224392121298271363978980667473814611780498197112387423608667787929357198331534057006664477294588490183160724378835618855025190208778489971270824543700015003304466239702275971191864001082223322826145344849973060805761097503876790080090207989510890660876469383799095018027248042213057919486735852504722378003871905307192323636594249341580293331009743773637512090875971358093373176080392062722833093778271654708205445899789983262923512125560384617141684249259713674078316979452382735150290110132169223082884819544088800100835978356285712069790880182304391578491827581448762169588682497448469096169476252002712901084502313130784470159416617606930113672793242453992691029707655744901878871308836409598241274935618281780168224843494582368285810055830745031941520045180209134850966812836680878934786387168496319216951547281201479258695555762824303469280042714990761437846680922913564991052869348792519964885504145783076911245324402551828542674618495907846150084518238643332618974648273671430338806384706245044591753722535897602702705493450810418060850675810147558038929210790350397844954139742334950803150511135070588107260705197688696149653647402430831030110125983783726105480082353327297804201685018738466780395193603324916357979292884956194013918296016052557674398000250563411422564492339831582079726296914209785763808479351819959469547329868266282655336084941364657137672634723151715752923839212588004275999885844778884742554926828572014884670423911952229307199255109302590854614080519874940689538885923405405891158514109351411587422360741310856960796841673845016596182159762984416586629706722397354235528447355477208156339236205970205653637725935225048759357742706638520449820432720176706946539403061679819765370916349567072538749977500991254458641883245515359372746172861153250056431455876165696408247448063063583920869037469965534015308149184463684855089062018612897545949474504457410040862510052279903526553516382802449047771002716265607097299458293861339988240388461779462690600673476328498960368180203215382988647879367606620812191593347074330294330807750262757012397026650859270025759013942937903067408674194110781095129274452453762227519792281378726842496778591692463102948862017279259148680309047244994748123513342497457659236175894160556215168623445553069563598226104373545004707943042119184596915837967291082997110174730789941387917983360318177489409772338283323092434059020667149722925019563534047678708769325761406531504023422683123499899047143964610404411607053460799417604252423415512533196423875752431845126664936653751131260070680419974177507210203437708022467669531516216276081789145100061594479581047314164835528325385071235830691071023713368261840811515956008495003772178332534834626162423462263602505989442986091282825232440204841019935492133763263305074398473005123368872723996492370537072785545360014436948745112092717857065582175657280104625363425717380945679242462974060011274661318099901391713581227996528596308212400614255567337277702935460305070471982095836327464821646984773328938740855292630123300949292597587764861000672747433477739388345270619261271544130484382601313488299884045480014908813123074860114637688788002949334254433213246826960613473009369649457976060472064073697632365672623190379623678414877957933798981216857096814158346278726415828219630114037287480676264558657601437008842425564668747183244873538363147830551575754801609587679999558158900201958083248647260502705523780226517239126972212898211815278119159649006842708767093250360123602368106113327748327551100108510536572479043376281334034723249469711227467433554155680015313449426226931808053652071953631780532674911890367703557874561780153260313281037297109988790790379204312433124338195922791497523447727386284218072968319074972418562854992402592703155461677870850483354102428987861852149064497236343859758748603143991495559689012235051065190898438985953780944650864223424799951737658105663512867704630865454383793103259970593444817287918261034362820724908441991758225706012146192825703049165529602820409920145779810024514574093710446247483896964022869910999702310521929056484390891356829264637771856206636366982995575523099585997909381617708122913686608948518098431845197659357959765241594232087392465598500367829921833003645506428679118630210202887129440787986247942566541733670382594068638780747851817902225979473642390930705986172676338395904773740902865537846245219576416675919795724849508090569856984657689656523478216621585123472491549760861007447621969811800537236951150199593893926521522562314364601755864595317253191140950436198607809063254079322095206450284597119451290797916751232364732228910150622953437407628409885396670653252606727773172352784627902993175348836783555180255560805424562955866923826577884152783220002322751508252766975618322139236808797615584816788903343670557188698822795566742984621298107176387677012464880615561332366820984052873879113078853967346931998529392780033536828382836829002310999513836409007470344231768924774653837880843703833752359452266877998252260973338928723641051928257308578600353935205020849361645496375017306441096096513235439726243730195945150580156989037967012273453870994128404909600952588634771470407817278621121406439683558551442604996670167994879671209054751390880023990412798487832608609247576758888884258451582138208189342573447766394669122705373592817198051948530732122345136101791429684491716664003590014156839959606542741627643841512261427153977744718734072427353318053784979591735226909666926914334297231278287602415680316179054139360612996176062549745834166917178099208140541361200067378401542211203761820723771923779549752922244846034246941066431427538883377645656934538636131967585818459149096478367234887132536110169367084453851615218951374300557476800451281328149265402728712911039173431533592666183818393727763344988630488701481120323207722131826290825386212869488190218752644775116327998168661270463631325055411008630908325146314825330404771170792553623832125713502770017558072345544967925589067628602657924544672086391411496872708923455707137307789793236228050060340587933986627690418939962359027419803999730874199397891349181120902973950109657379158993657947771333906003098980775231937925423834479529595614947368649672777357790802439852116219040338661051309373140906618813793566093400410430934341852694025283919100879688516808272814254275593196274473067959014006562211574696920473296444694112976164941360082790410735238497009830455942814525357161174682834474351201635011548024028347981973336526140936616156029148286251671129347830398985298946362941002613076452745557044272540907482198783818716163329594939901028300900112542735370500221830474881453525423861144974669348223531029957125570897509878731394997969149289153402957841605657251074874738744471043297947111389709680719272604594879402704495304147417789685733330028208929518380451507394090304306165617416483927425060769743443403259576869532095197071905847158460030198070094757385000418207739242326314832636153974498773186601486198519076367486987589667036578068650975267884023494320828405487902028979206019991454656160896077050256820207895826490742849412837510903137860672723707565612297658990514207610370632723769544122179116907511877806347018281443924568842167706013346839955991618938330836173458525062706468300947303184624982661553614035625764462481829902267602387362591371563025859431419593780324211096150484182354540402808392310224180405974472134744958478645611397859230194267363838166942325562571601134159982804578387569622959262059880478982128569532760113869899790931389625126988320694226662752143359289206597722509147478857829897451068770117594565432071938481109536733311853449939349671415545209089256395676657589975062044391587237686604779527367136592708227674387425051677723371982396756744270876074846112562907947327504241106820866290351266871898231347004963350928668727519120048005621039966426086240940734906050755548283664741554730383019014610272268434182447063677745218905854177724679087387687307157532514780766070607010589241838124921097771409257103337749177554249172175518327796772387182161615896770059336222586917527026535391594143830802942380589944773199566735635436580100382371467166654748435088372136790816553118544315645974095219699877397481653483271282810881804861549618550551747000820485793512136281274762609250051730934888134543870887668313818861789175757532977068935050958954357584046221388056563865090860703470489683829908074505935496742043188758296246385874496032512024316377497028621065953166845276005497718333822828028972703974593222410778251660056647526820187321460072720838221190602679235964164491681509839493130136540503294900226522368918395023037610953575558675582595790667548592652171507820281281248678921853092036996461824631750760258581598436596800384848407703044569911278986549648352044491105788237456705618463155074535468299913137061082891297020289595495979952911674926323736496717552588882689543149446282778441574703581694270487288407900538459200203443323441793550798583850685758484845254274183362944630141920930977555551856787371035900349147111867058068313968408555885814824982224047638868641140442122162984341700652464201991141507679126596511951689495418561172297790964778116789057249789286099115881290758492596882270631385379914492826443663963686473275809478255525436773135701504119851400857573526232428336184597158141767985206899379096647452392233361536308004320780078012073197076642343214276935576065523077295007198047952186080312700628237836232420208428242267666842943699550777313492955259731900032167554726312693543792136920259833594816313636359119351649739272193107093514387738256187659187294243105507981317639732981585118352336665255398202085411810273161318128291801243795294365569040026371811210168762355021252915467434274779579412174157990534052562616108142261783285920685162995492319886871172483484287267676956287595018050250885652874830352102468932253864421631578842708651525456592030636177361892003395308939402108330600006711035217311751313638064970487804404209719893468534176229207177353389183223519832247810365129963725271432986867346195848403220814611220642341055135669629812867726269701090827583355107744866702882744494812162088320373136299788687569617099823596848748497589151648168559223041761178751213173187290696956295128463069775442070158937881917984538237288548362942983861211506208635576398697830728234504334078756442180314096457543982594034602631372095758425267660895077631025332164139648556238599732825954840542743147695479558902919214774357229468674439812483778691164239193686077918270781011618184842449702984953716886167314554305829042746355805640235898763125025727364472499186636174209170449993089435793876480966929678107551653847562115354490355668049435331411711686718723161549716528056488416847946911455382099586663170642190036763580035141695604714425040429397475174368218161284833620795427129356570416243286598065109801821173058794783346723170438322094766006749211027332166880595286255139176245236089027203192364108022181409959369275099874223476462771776717002943901372423560798077619890475106847808876058433364512414669710351689922300910173778896796791913752666246354217879005645142077412668506234791641451342898187522164001376596642969422695336748362030791581467294624069694362976434155127995760917063728119543455567967348803667656746831283545571621379110106425508513649064758016840563253388243645537613864966602104538896104242116948988250097252380568706382410245766924547487714182874671969382485495489273091844406884015875518453818203686504235319602123616123135531050963121833611942978459007653771183938981152607564754273580201059186616930743758086714125893053719567981677651777948125345039578609670340545910135340277599052936084731746552565469485602623001990554136068423708671797566478714065960558808212238254707590717084963672174580284926087033666599091635147212412484562069161527513868780241068840842684201918706624267127978243750647783301051065466933420094353509617615596574216839259737742918381349412182492711394742089919686517810552177020069395197640974285200175012057714958755010478803390230831880244137867013906038470501984599698040895935914449460933950398657829459259707432677694615399799102971390371387884213087653940789013806784390794568513265242318881866451706832381878092901118008518958395750773965881921572206629738971669061150685950093939990782154531673509285667976348975062519551087808027714957017359325050475551033395704820054667136235087702194030655617168928374965878294173898873087944600107812076960841803424811667927607481169559877083505859561694795228523040883747821511590149905381429773965344119774883097206130096206341912721979320830237081339316902822169550447426515843364018086928644146866093615114952952274506065972363066757904838509103661597383570445320514546167150239200047697695670812008269309384457622388713522087645216100648405268721828853346056733799825381767460601646263483600508097994231412758770843469312888006193322058274022298514835100494702270902006567837490376832269230396159960973306362024800863978598538966559560602777918909549225360378326342351888878141525692099144369205927891699215141216513146703700307496120729886310618861160214437657867258414503113377317713250919566158336833803426818411599175609712407311621987220660951380766302373370321556687981823809164638891083319151997807500638033372599619413471161091312059279102426381383786008512423710315995683519325126609226983370213224342778630431673917901072308871360577096277658523017420578138023604055393387456504593658879721680129808511392823980366420240634967383039663650393649493417377243945228206299505752008983033604857940875254570877865748057359292677812048723537180333764283752793258890715964741051887375603668242459119401932834144760244453086282486177940163781382845548062962140003912060806561129021578248562270658842476696014942446056698982436691328122770937053738378567704622502132828055518241231381053317674433725251347775928749641702347756120202237097892906072782219077500474288684329510028865073265433444970383949413627695200313225091485535306522514280261045948277262041712538895196967874037220187660333384089417087048827161438564119464588930396026656615850854166225418181262821002941807022974064254605843282236518496086614348686186171375842300012250554095331315299083066391614518535107101591855987085948794228808941399274937556452052518403437148850380924812854972906980222526351675584843726529241271985091275485774852461781088186237891579580390308564490287051092905032172558952409513530451393493673930785170254966620846391448299191695406480486368968074860491497682269461908874538552278571892270315481906973760264201952317689643042739973851463464765192738665471301788230722619427569951332839327522515499178282688162933394459235036824828227452474930402500887946442142173309773188714134492682024226733321625228863549718243801097278269964871773310030176507887768246199399628335350251908772107120352638929621392282916121945468435264984554637821946609977890233510667728908077151117726335153481859421872794292410956065358978449641195883352377166375182500479940512625578194895110523631168688889945744472615426714328307131937852419020248636435516746358142111377497629467165722896137771941616887270531530186441014242576252531154270233964900463616791536050469611906460534605821151245010277387463110816806331345963683438994971418085231350319834467487370731064964852101238928066014388409410768110874861048763180744771641192591082187112619985050089481352052752159055106984600580557884124678526232404388018285958034279779883951107510903697565391070824852300785649039214830647895984205017297016524885084150510045795728165884689511630959527092857289566836069121575970205239257405924577367550699546928126978594965759525136144782747347854541054941752943583699134880698410611541038953065218186432368294668219737710972185156787331153436680070413166145482721539351377896392605597112299861392905293935573252892982325357351737265252763138298013849930313077992848631518646353869275937882930517103914640560705467009660032453347435985710088498111275842091232532355479885193935772219005365342292610404542214479933161002645699794808086348645000246359021456018488481763111396643348133233571186288959074251790013297476866482278806859656199838810075988468992502550963473082633435621972973810725048054960000980468757389206869771681236624124566165720946614705990402385223171787931437324053258942218955543850988662672834459889210730512754738415517220117966985150612350719200302604477611603479862179136902985693874138081047686046044095666940968975427456278017059038155919405984323443094830982920546875985936156747734798914232586544962867012935152125752214415622438691736336214960260717396786209889704018212555168356649967961195831135931352101283848295216695136111624962051390404508983291279019321494186138710534505034019327622370926637679536389692803180930882523971337466207822948209966884510294298609445572441926310136886653011215320247324337981030860809862934110275514360023560924200017379579292007169098718652475196809223861404798996603490908574153296487900291679778153632435393733389510111795282024113575822686388610368263470712878073630778436986663101723556307473939948859907483765636943130415354172840396071728176874241699558534688490884697752599496743514207672837741509415651819486394332914840949448835910192289984963860870861256874190936964921400360980587323526233467143167012192763475295605339385893534278253214972339518740298721631239963628109842706562896813774889133659897597453925880771558169204087135657900176670448433831076713343400058708398323000988106560167148267433762550992798053937299971594026532652146668271031822828275445677369751655457750268983744119970841177909359625242414950262760321884331631736752503491300582159878114762179854984921630729903321738424587795986344286955793868093025803223449939947371578286478649038809054671817737295871462290838780441548429347399806964325014144819049344716568602360790540408314389994661145440366615638140732745814832559226974811997359708818378798350399941602142277262024133746943017124935420246139767266512739180232992069281972786998330149389642986530557713755008885934703877367377544760665580181876792283646697945251699962112729435273866881584708710367524431110379816272741198557374827758155770032715370986443080690372961551777013746241561311332185280570973514709512610462702223999329801021357820697992844554778895279444939240064301747098112758253373689497841174784743019904109361815269650916465977382082941178987831353489691862270387253765180890916738757726573639905975232047686055713510396631040283024585283755099832555339742788129311502109498975944777307662956261719457545282407481234406245630886355501633906133776115891013132043874763886649649053172213345863688942253741580198679157751675443929815378185385678743031009820257912600538478526967359053671693014788407387927179795219076158899636148783765865430476043314692912533770020668494426257598505345526862939260538773958659300747413950708261372702875838450719394842076956060722467880135719935644805106177602840226391167334813410452145488833448485433012413171862237152781152323226560784648496560309411725761047060500848091837122594895361230618336608809893365789314574632702914967127465547268361462533258567060413764946039662357718595197505586362265697937165401042209199876950782373854555085736909467493955871230637266632879602410108191311421382982009863690985330443140116806001349400880495746421236502545890948377037065934136229348388202474474727815636184645993509400819108066492923679063049180803519992878381659976731096999162920903341700974390480353605924928275113978360463513914780797204618916121417459398275496047544509691493304883919312452379228726298962787460043794469128994379321445179014315765302410973896233539448197787987371519002477130157305821813039134333271151347988741860155017199628042331343049756451230797502784601568078696668389170301894764566839976460259639499579249397475573319708364193387177907719993671528283005292007158859476136671676685853473531242934133932774120678992800190504290155648674099241837819075554504049575581865764102811251233321438160404250287085663511275981536750911418632794350549660838871681909408966954764857660429905117367961398286854995249841216989947177881861236506585401337069649562589448890062575140593469414045917686515764737585496681047730222308009413713658927675493057367648660564707217947313825180554724543592455322324975550782095578487088924595790899385955083270297798996807892385675179176916878140326202849877950372557939665668002595824317619455807774319397287190037802910025188714140876125659490376945097198614989447352340142828416279466120027132034301929203389236497053821835680977234180546699414113426953386953133613238004230512722743652986529889626707791312293783933128837057254332768481179654988092952056929788989954656064247842688018657081972364266194461633850146304693419181055192735449367934314612778944538905118309392129728555912971934281786491797509954330073151898280811153745333646175541162593369906358511425530992561445758147905791816327799311045301899505064037480722016221484386008101760028851391200442711516918842202116397839991575470700700680599034338460094799938967468196478795432269507336336827428644036922838088699952837641588190265781008231725010632908657459677360975744109839594846299276364103444835314770691101651104794553026978437203905476512315932255427098028114619307816742728593564585750812201876108899477970611579110266412716582843161826752354044681878273888288751222804965069201591728978161390690861069681160735451570396398472915724450329074157283135537616459050045659361940318294188842540248724653944055355149675482307642463737138599066762391454538711100527544508143378330674787520176827746109432518018038053021331323466655055829729810520895522934034794574224220788548640442195705631759501918025599479800764092716042103035925517335239780560418393176436229266981929462979453983479969436811849737425610708115086308870232381171336214622361229233266609138777619436102027272543880132044850568908376379488746587323584785893200182583474218936183185512096963144244481082714416391205497047037304011424091490791530615662905147516950050220185082144270481373880236742545837768570915645201849150713863506102291855412611634231597305319351325948321464268769974640305644552441594022410145134487828427274506990481421814847381314504756581696022942482867687244431544940441658712696437490566623702531580990206815112113733584277445394877697085944997715849895154016582879279276899905461648188336018365885129321198726651147784651790487552088206446139018201065532861664399163415171802015594934079552017438763035441375353645661455198732386685028545297576687843458917178615755479836263721114509313214647433282665670069097677255201422851593290920574977971608051945818234394190273958875632105214796837099454738671765423700149171747232743626314928262024074476504838105781155305090307896567873988159548893308892809569527406446878131686901744169024519799590168497992504371133301128442073776224892827942795822003735772452587537482041003151138011897053399479734170883408268255016334343231075403416335520501781443569123255906356194778333174574141550443923761478245751460625234289715023424619803814343026502888869501294471927053442284742443317909366771677952146591990694660622966566513140629993179153642261838194437255998775699605563260437288887529025596906448539372418052000221594794219576397006044681499566244810131252088354442078883974429054416186992643442655593329609193653684557762641366941968728824528404450420594357188464766700576539656691625198707602313450505007261258112929408542359098638989762154412632669485722571021791229003139562006433595667745596323810603296122047297124927482903081708106254016641482532696994333274752876509038111932851770333675802149227357952003117719400671313413408700305958022643828039610251757305762051293556872930455014793814052470686669142883757090097513890326049992230053768688264568811135752705620182124374026030242936956849363794358360637176640969758805089686568435558705271852584644927626885481628347995338606527266292065631116669087051020277894016359012941732972598556326604946666080573467318705949623558824390397787536170315783673371306457297454895989484497235061278396406555267014596689167499577177361514380780032673606271523487431195494397291869793636028256607455632861038127947884769822544101964839151016010976888309064309766325720393928846866965715034374273878637770498137610296708389484012529034356170535597366162691066399521730954866080443145028981340675624483544812656042793616114512202864116780459404532687155392566749118914682190609175154331827093817312588515519805723257391540514412167895253444882097125410585840721536229958605235970411751383150298048488948616188609558183265438366335785002700498746563971686890312752442545830292318212738713119866120211716641449037479652199288599512231765354679458961069536534177262970502841961065935965639228583289702424704630625886494303194382534574525464414432919715021777979413332434313186353096463773037072975384964963362564469318308787064851574903562645900094594019591943554246526304983682702418159499562995879626056375649888043012420035543321716974022240389696498635651385163185392672570899102248727819344611316474117513943743005664611111599399394947598730641988002370642576910240915432686806028977212556040329277179224268063296334776000082636711160836427828877786190855716042187898526362668579728024411749882967426488236311334362864245825874132820348928920329005078550185296266919464715939987197131673587230780340891471024220705090254285594480292943932065345888750401484671598125645478638297502329371749548713870130662272921830189334621330340884340512722245942789687940943418136992644477386319687512667514026676903001817880268119673834964918398043661218855744249477506892245644062647680770676545740280377006809645673867739747188576639584483848279240126280937421873508883940517765944426626280844418871116949603103410538090912993729901795015360557888681812307950515687377064025284750646000295880720336838402841517333837640443354846147086675684160650893282501290504636977654955440978218632200442672548242775723534779436662357751273970604889517028727795267069137696731869482502171337403714916999385941868467497274951169673404333223151277802766335973339647381765019510083868395339978590140586210353238460431889679184824202049691159480391936432944086054402799946794543022274010696883220870689015709671760053980263506573329707293403923522869106631724436377556543136041774876906875863248542434234812424972774550445237010170731741804989586690178027089241658610023519045130801712840128633318464649918529480047427547020537900102576459893145061808120086893835321951527983306709583723807327410659138008149463654273773195165503822902736294696077844979682839889071726014575104052025950822600900071684099073168510165999214067095188765868064102255958393480273484262748125069618592464712724697952671069256265982694976890095577616498830262974399768182313613147381563766036931345764894364021540624180837742047118125102165628795818344539044303403005916030564047562618604000919269545326647893534479249319517823307686166175286357772263280141832446284157662906834673946732000582715965759585590964772163474798803803000046485068042150579324913133142412662736466459844843656386016936598603725232847225201294844934957422021408370225361188722335007495004430699883092027803731156838775711480118748117888630808355255045394606106342636858909479159939289557180648922800163496932392980300469818621106314060549831574276185464289676593377741281894384767845159847015473882381190378675248574522342105177610677893040421656221737136803713526039748379988505146558620379468364675729300486650342397026921967490982927315882181156263801257848704814822471067659079569230665139774064150292887309753494727983569824249335685242637606571734387384586427383714970864315724252506854462427111237774707326537086588710500753423538022466117038778729283772932547144376876591927876978197358805817031285652231006274603113255006051307492525739815095771913059864566755158532529886184523052889568347136155427933673847643983169423914066052350590689595612773079592591759214630889324108984802554184540664404394581623551403591735641876644995076695551926121915621771972695808451527059790600281760820107254946629193242526940978308859183727408506232402749800173645624157277454408252134474199356374959070079310563683818895855977355600333671069964634107828864640549116282636909458849402865504596340987812115009717314954710336006706971212738245745804546941323562881038940982011333003009761149349675738292829203248697702533525777310929470916696006830478886442584462974221940600208732813241638489255052409747081621285285997575824940447870541417536103068600441292831327875137810995432599459004167742479359523139473297411686295387159015335679199454638621270365685940642907214563236573291659386858487538302603645806664509944147467827521173489630589955526983148198639955637315524098268689256430037023460590025179198181035380536016303834945584601335042501492696530356458585953816554442254907917942268660605456661747824423401115803053540492597440486403310015435148942805950860814394316739489412830071932720473750972619483764509779230831723125870682036196426459281379394130523724777922188807721589575367003701223085678011413405804604819859598551678032290543037255180067113071333852251545783990145969486388324906163974585161916119420319783568964929195492788900414219149081479043144723684122835965516092600439933178126210465606665403755587966730205501964791769537761173075088394074574717098834913240011442633266073722332321776278450092790534894242924644103534998643570550513556581048333436395028659647311062302226634492372885564183682308126588026061707420951427950695244399507463342507371488551368840571781562552356575447535277650320335508513982533682730278092616079983939991065559054787296214254527587762334573928347995731539553642648356373026353679192803862141627568839966115983840746893663366313393760756076230574850119508123940369200539163773215236964887885238111611283151162012881753056731703452969121105204725437958520290829442961057108842741117177074450839004271912540856550449037155836622687033989840618937349414571637749194419407680732404971118632005399097031791048856509981269734558789585968613263170387330725764901031407146565431417883755479944513094506118751610585386100476018104350204510797189254911612493852573370718315658051015418774578929111269372284800182389439098433618117213257492866520631648844767261219628677381620212991072909245867941420045766709844430082298433870186530334230100953801545214371205424867263116083952488945181837459383806414976411384134231710015975569791976447158303562088225988546886283259839324210936994913458170771900951480508710546007983710005385856745473521658954263662504424148252336683744940863261360888817839423824660304299756005905909976568942272022144472311001657831765470039857520741635618125950533493436733242449500408494202510460498948575260125635198097337037118221306724399700774817891027474530617711194937216615573530342480301079139805908654243284592676214307773190825591306122701190449942629221811799781207211215439032173640533489528260448831953235101808734494099361270566149818891237911514084381905175770207399163776347553309381254650014622295321497506966727090584877160929609956438539615023921592316479039353175566455578652269647451125461144234407849370224703317607746635233258682110515157224062580309939314915856943747097237203930741729803685439482137810984548958556889789913492955665279678070295707153059745605492681888687989199562244846824612841986961416379091648047662491687047807770845311342804254480239444341432302825245170593552853430098686557324300058986415683798211728310591204345926874193046631510181976099617815826283031044665274329209882511456568492697260941764486537032483848881076319379088493140010197139372522583895631627484871904503479544484309434267655694018076801603074134191745332624732384114792694420649776856051383197044507340741588484063207462138620177170305965956831630074070068272117466808681502180351194153354118957712758080307562642461878013245417398919582098940794300508672362115780179884278902359165501167726852153403067707595560210148080188783619685388415499528606058373258302561127441763991342079500834071205766039672410672045937451016258548787927148630781042856554847764948395617051146104463972415679783523143280043286778800824533305638155869910962011011373773675534407438831665723616897249071059572742091698450949136111072784094699505137302169637107287703054207331998835881013045058121960035203482277831092416490614633979577208358164735627729217403639214356878228814162763365501412462788686325292779102217232919958089493313267245997928864511648737333073965109585810850107080231974705613774977208618082544220983876957107912017942227678759099374657916706665754912403036357313636852220652667461268408898201816750290752863536933699748996135572486356506998913403622938557454565271630420123349335270321452896223102191675675025653345263584094234097447505499297584954958417966511814273963530807071810232797417038801882856496026790987267910338492201065357568092540045487354994081586933855312261979646154532723220778027849132537528270132752193259509536910314593204655481409942356085403555977032816054551548453442473059211025441845003302540575397213003679665264718532323230280450296680168716877762661737974501053635985794043504233498653101161676154015863127069478861384466499320790567436328927585300173777299064518015413189381373038956030289161462470501494830675953436443208015056871782758980372821448775272299155114663914412989923838177671560580766667545711480346030586211358688240361407926692219745238412768060186152044443586181016722611004407125875046759571671563314130092326505386456951171223775084367156400897896854168857120458570800681035287082457205529940160225456818234649076024407866969039268872579179857460541601537503739725813941016074067167355208639836467663845026594640158664447691322093706960269937284034783872510038089142612250916393866891335692762526752182954048618859884231739428314534339827727743043359329676000894847219424278695769307769302336428008212858193173847149936700049604800907115089621984978092083703753419436292685002517337157521052409411130056870439754228906007653546564729714059377757294942805593955136526255663693610133297112831247139905952764982298057949807532514782572351717563496386163271076787426121266993871019137455077794630203514253071474868393823400056799062139616047947801540061272366906284459317771340014845617744336700053592594674044683911371922498838146392873941223372083830028384985367209077664270646215384524773480036909613380439848567528011455499032667723782885738129261242609293060751023111351605304831877210415841665142289110609130768521995865766443903165259153713767505693610753170374961190077304713218783085098892325036375208565361058091104243982571690523389128847477516904318304080602115926328203221368049040021294600124730923143689689562595019258221984681626119975433088595113456765886844572017656262938082816048253707037854791973814020810990420918570370764615668383739670641981273196136651471398893322774318538236492192523235262740934796482682024396775783081165384688362172087037872214302426818274280802768909725822656203932624994850990611788906493913467360222890656909926455513005255405543643580364199681478468551623554640133525369027007528584484131077197329525738340821647489364263926821100093079232233623177707582038508518331158404343889635583506143921140391654821374909751844989105709200066671209936706239307864652596013951054537930668675557389950927377630953878853741013559539225185873247177861012474297180574101141812179185575535867351593936572822749829398791311397727869785177539865468127807191777370978624323639023601720960222756315956146357914285004547799195149842696887893460700471863821657850691652488032070944522818114008122344544546781170626217453330258426548135427445868433373545884277978786923586592715232596041592761173265372966204979573343347681893213582910633593522069678105646801913200051900594776745413050767865728575854372605180574613844779470361703597208075333884704712257557633603082140605025193723247680593296414175697409012658697789869899113447659332259906241193182377831312911003002392054350636655499390529252594222003124424219793540607020681152073983462611292278953111170948498656372816494205934401112161117196241351763106105819118110068329108597564789608013702561546930926417739815293853930124055947620707760219008931633543015821180540495520443140810505271880665488353680060128993025467201487991240884484076207237424527672405168521247184053839189837376835272038282133533860119071785554473243657587000516501931682328778578089063805466605597316615979489428683912868857315425289081661869130597334419120262204247123123974861622252771457360972584875090607246670222362482245780892385004506113823181861667736832974595283491758313430988296525552849450733573629631297403253964279096274460669807063760778745346093582934847378467255516490645762493370558882756924137804164073534934720921901963702546825830964743763994069609872545023087905269518542201592799740940240911079105478561027063622760568080168749282755984491296987177000315801397068574804958005691588000215187910675159014430710761736215867535804253292273532406635006442890377235752083511753461444599047395808996822844645451804445723691902894204005226597950248184822904696963248693889049365719557470230734643776629543815757272472201550201952173890877720184084992498636724980749347481699130726296122970886687157568318263045981776519718718892642323217274820220519447399338948899552385862646222913635861957206685770940894283006077394238596447964616661330250907285248072163869609274275582111555731101813334203972087666408597455859972804331131426578397622812987303803376182516555613630018000948370238300835027047183623444747947949144965609734838461461960351333992151069184682235515099088823910423848523752349191147537529580433306144985154163310334384011364974870072030727606273159363754159036369378905152329537728186926228837480370417629441436332775533290468069444492775225531989722103920027036815408656144037865199290725537046286718982614085886906218939077066749492671743901240683485474054465811368993225774879617041041312542343959030348758760275102374608522836363820990804405211648695546418685394759903677892748847310032769299867202636065074826304242505267382311762664868048627953267224815706410122219703251889925946871675744561354607695631220221839786973339917237923434155472826005555665821754394235192665124890998665822914560799985122006276587976954674219357236568937141083855528665330912406432801991050896058520932167331829038378175034961759101374602568846991159255079897138868202541801769311530967549020050216408206461560469347609852859343948117291168622973041512539371512546400521023105629166969105495030428165583816820535751157461802268275929579764375316749391681795921438067916797493369854820761344186551228021398518037339503025132772305154129849176613875152205089903037033864867234733653206521843000329682768520402016230645524267835022913862962252242655136247918723941656117491415449885535496298787320348287936256005537037488160023645266441058356647109686028819710577885309301420952349093517951818963199387341600882092420316557352331000052381908666120323527632967136372430667303169853745642519386112127413017347404005092759757788273077982620416567779598052550464529830675305358299395194013254508857476694554937707477708904740142547815888643600121508984167270663655886799033479299327893668825737828330678148831275937447858358815630969174947451870415498705888955604696153700607562020290604392357102754491075639348303978979277044963676271958755170117119476873098621334391912703966156341137648277780291637979579995493949030127256266212881122490239052827974810788646465218863779710711738061131842159020620804663878552277795550016200378920650869850980769705651621368558257099822805551874484547972815503661168803210906442052354290827258710849140117834051797340656499221887956281431597858125461551980585175344820427835670162762722914495004467028271300955564268278933151196083333479284517666730571141616887902357266444987552238106412367748618183727221857499683358840079214650700145766467394612681709703858561432296785137856566587588953767853438698827742794487209160852013815516824275886470693025896377080159344005019887987539069272766452305985649331717279769091549162102043531478613539314273206609405278840750794234141079254924745955915103803156113337066633904307095875985508121875735176683292411504743019842620100496178993237531148080593319683549327113337925066074066788680668700521361970928538887239705161244680239043774290147513839250727840559206929854513638815078671019794169109125501880457511297921581333022031621919151219059297741967878678558536239793491709577001223205462515956941020541397446110099243730844210869400526708645223272420525733245144818663302749224952010347993705481263539601251353440855703365797199268008641325309973705471783168094369502972488933997946801792634593366397174387266693485609969170634596263370342985923317071741224332708578378540824974130769600035812467997475978424136596910674736420398402725484658086662983103229043533755059137854769956872097688772223716614793238924827914730597878635713386637033478971970792602011193158604424985598845509243034536160275287725954797509862271620268077518349765107471630727748299895680702894748151212790396372884387037198301413575330773132518525857096237288122996933907439938972363760801808640877751670321943835869001343319404822726081868555726385356034811563443592576741474485850033561488999937899443008321163025172573165902663854275451333229764197310966795508474502582436273842576932025563969446715113968947295058411489151841333921157169647700308666239897616000121555926179960668135026909959209111219431921572587735193986614974552863196248086882484587916710194701391657757711692525264003975961340482107733689652936387301460622673303220712432738541235386977577199509176008312135672333514877696813146102477119602904271713844170450600939954268353317815303972511853907147927846704060892335135000969799118926271262940241940479238700223316334530212576456581544613958222613111459575076785249207147393380679149922348584333618026527521687047367912248064648642935581342386161127637851707924725174178261039053949005195986880536253271640186343043155319433238349580914348557078257893191239610734035740263485021569936228125718449059247876982590201768255292504598599026814773393549156688903522713115588081624813451332332175115070419018727466697220021383784103291879772749435410489943207491336416988229671152537923580868596622399878586168298201390988917904368957611280318128324381967888821589212759286956871870790170283536567335939499553291751583756556228833059143246351118835585098303101776466413754763151266812674547653240572531087451854214845259203933629992828081794597780633080199234089966158954591480409693639345879131836218468539028656240291706973165615525406698883797970408750325566358619785148809358614726406917486906803002156285590866574615110318450572196132161889168694009642639609088112592495030796692362354409359408400515072981424497647316362447712690516583503554550485988123509854609598329912962035427355201252719703953261478714081420988180450715476179248312498341631048371612004105082827947177503147988961617532088720561167871270606244067954605049543535619949090542086152067225890795332895143711010815226795747080007238293238562507265982030465832698455159150192657908440703430810435102047680331104398104191147780691373763565154292698749415063274735155680746555855852840328962822150355448537117662120839810463978540666602564481681291825966915569634200262710268002843990848282853983876963152811525571239025156982496528773125544970545833233055642579155533420869941549375692315435768615705120068392652065170007124219665622581902091396153337374988938678295571302167502305126362614954065884944892049526234096871695551621310138367483952787797947191088170445932045870598870107580359162440713220945115059491212344865500675946518578197384513591284355179710527554620835020092709416047334908059311587565365419191331098076228005774590500656440630051459450169339990243352944392555253601410910621404146706418789709218208564489777902949136697389662770061263679953035795867215804619326599113877802417135284178776147479349181367026999863520372372172239532991815227860817466920155092516602063176561312261218343818597279110673377354276354405102044498707004843731448006200326431366533739383484384379580865395258121592352706649896153090253566123941778320882082137806566804831345305037867171629348917385594908097948072506538334732611851533964337680880569135492480121201278065095715629838796432695488517677003838279557732220232292532908266408027512196117644386964003413720452151852529715550279573983135561969793804691756136216307791283921402360473139504458386903643351223546052675494396104408723350921543714630070789378094805608027516661529299019482838851846802654277321626757864730076024044949392331100767398270875491704363522232900399886048158443947890694793825663633270442291589695056130396078704801375931550481315462381239894868562270333660334558921351420307240255803532859871803020405925725196541100804818648717179367577306808625143623268708110504980808921152803645708224438355605867188228472767310749822056027176311961299635683363740707315895594599900241398593615555257315697482463574888090027220821109972037273872304101051457341327691905051378345880914730405449450455693174453208505105745639650230604663751403243679080781667933850564945779976426386276080393300818601218930287429603636021542881324793184187524236514774078757366165024636710432019829228941913946379786137182054435610801091985053398886030836134677717425834945218809622691673172416931532051568060945437235144280633448294036239358223636965080707876590221254283200823438522559267559416115089049422386735914139107954699463444878501934337825011155647885046257572490030600058898417672560841786493593378352264012390494257692017225540401669589733145127903591152498338707343727856956126271358475802227682493917692669778462400653275553189863670447948037033924961195789306824758682265861008443689682357499061399392153316272117879691109619679036652386920596020849090601152854509798591599847169123482173893663660730262921867854146454153444863081054722998284014524311780080338058753465240470251329052255566623042608723991756356996830985131541259505300917842881343010658030596881137002529933870347493840945439880670569357440197993107701047326385407243494066038835384672567132097510256596782940516245962617461341819693553653413652875963745385508393818672441233447709868357616222554705660832451086192695335279645507622230407733677285472367551055481073539275676715212618277968145658675267205662327982066208491919185764106465980282788996809563454429097520166914920387847876490738967345301691301286086785066133948937421959462765353142425631261763424597367591362181689275917451550436484226399872116743430728869012668021522814006420519184036905379125849098712131782319924142763432059770811755380605585113988732792620450713986673403938996538263596198690726336136712534113128211015992783411012057978696874566243018123685706809106581908546399252980736656196513434967926665234349066813709615009059241761067010161514367359364192936416321696569728801267584638785050365250148927818897474713146346889198735765197856027684703060686443450815971915054652712853736996173484796468055963739327065898107438010303369870194602750379964594266558998573747597092532965961956072851432987505320174555208634081241142433536560487264833247984055677255978926339024999334866879272304354647835093155511569160909339266388486418569319092665591040792366637632016881831699946593234162934845563669354620065850214774231689750466140392906487897797306666410986440070411135803374408816247801889434277759983031304178848818162784549121527964819946886481029173217061250660900689609724416794971257963913432330099264206287683126684662834424021420781157253752498062913208176165630722334268575856662589954633267940958814191154302371638734182202542885069367301637024538923238137229170447700209006604403588169605217990376801845396376552472308212530723431878233136260221979634345525505603323732276909725128867340362522748151753961577885409641583797799664718207709390871776683984275992885161025299548495817255456681048682172636060513467057090286962284280346882735873392300624697504501674993694601079889731131590542994737080942110309773291989046682898244511376654212926552494639923123496581718014848060391549717962999482731634659351480917735218739218367937774414044395761148077084449719936413697266841977755772826925097458738326914245476975071971639790116915790324591565396805138057671258191607847984275145245732363840592232861667471239853622341272651717538246669105116400515521899298246773973353163444923836556774667587180480176493876441012094987210185246188175313489633672319843474946358870552759760093697023127085106035221581954493211191055178635013802394113858381073261059776875449202045141141483627968604180748608640940922181947561199398009978040612640256188182796278294700515688297439290590901507613679508991135644795858234948072394226306732938276706646787045887477764293255948423981436790340167048301483636882554037898292127023690587838163886507780451406189301168885576568804120581911391922755133248986543696290706729500968952000420128268368273779977246433897644078878255021059705587339924294985166965738543057362554969140701990140563749663363886790850988599544770248596281819187387372258880353962403391469700732836348046738437468575121283663955580852327129933856478559550532111349979054397743899448214329144379816886547643960026365027551786457914356962587294855473639646881300027111662792391688773297825453594159764197737011153294947249837751441535056866826143945208634581691571505356987598153099160360341181990215671622213888498720353040173703289372949067237497105443782167934757009015630867000235947445479295927450823237768375372139702639557990261805801627234466297387605946777192677427703641990036769580339561955954533826707053334264747243713244629198758287895592202633807189473366778931257790623611739845069154013988971530068266486864035420440874149163554038320806873148267684609487168868297096928817989161521836882978321378829510750735519658890269039387655412206846077028978978688426787086230714485471302142528923364075327494888824675060319045181445954902744538700852526169118809295169228042605762286839508903391501029953137834231874392393883107085712500354068754694678819513810050577385077386452158677483006696349983450906036873539641591289356741403483225099257289828769381284139633799575460283074062774814706333639695003749623536965030212307821595792533242378040852791653934428562616977296780889267867178469727521121656974935287049242739537482560144604148870001468898803610282022142542301243663576245350691945191418424652410975443156248918785782721878361568150236054235206541954482352649678462549427907430100829042039533610772006193318803621417943702419947087426519185408145260029388358117716708294247492446358127364872833878096663547994760942563563064614972290528807009458466693954564295144427284896529082153837435202419418441351369795685251060639586273880410884219340504197482481373519060756116514884485930795693250842690129409970767068565881365769138079488147234597703632805267078956808537644156155006371810325775339354824525389615487445259501336949322652270480776838337859733159449526753157431053591686824144333654106385375832161870408589871487446902607473227236360327974179579592740239927359095569546655551209282194135220830446121566381058289789348058758731751981926778285871058389439212036082717970975900978450112566728395115941443417251304983042086889470583890031705902802222639445873611667005609080826830031142021195923111042472990774514729310542952236134842439891251330265747927563954080689586364188147798174235562612668653022521209551458870106293201654429827710858851458306902012419593615236294377842160575132051702566869152491694150097379564658609296749152240658651464652114943141022636300316305337086072666663868037843730805591365324441164113900660656393203104964690442850881270043629325825648041956249363612951793652995577013771819755335725153860852753455779068038026561862716424970942267438978393662748460132329836796072722541630510282637671277878094531576802472252390476606932012356791457098597853383702939688992870576368777433632618536693647758529449464754478476486691114206348899946774322179196622343806584274410559390230297221652843180253130551875353058673888023339608613845821390934019087946642831055171340259299402998525147232110993320170508703452744801044965302199395832371848778989123288604859734970632711086927436211758869584580126612004489898779376196487148675357203589001554145892161651550987822669398581003953553199287289450836487553034588808563028034034334959000079533337510714652947688592660810288270569482254812485746582194208307140164855595817538616581769068230567725103744678492685692318527773861870489829257244651751774687333562820375866710097730721048730053318637732628943561787937816580585466065285042107722591434134407660598065151660306743120475405452652237757324348075246726252671614215188973971115144478590246362244916600716127468230839138398089332177315288992906771553481341698910748047534343467008947470560858619567962363675786032041486930319410194301040986706532795002365346411552148030135042290675354486247623964843966328082962027335827138561082537864493985470946773514997693291983958646038326032058307317178332112699996319024189815507553814324597547697496780148603080349327302928764553654286877458298962493945107837051360682303214976596423681066761892003378795269090544300997177857864045855097392256650312022700473007582803127555511154703752189055786748945059457045856966208326894587811324041330550604551839378483022404962054944406661218808308327151198964894301694613556731488846055673519724899176883042321888528160325196821651565619593929454142969689833052774370576715899763573913449688818201592472257244484741910348770362013120539022747858794282084883358599067663610839468559636346484269702350068771978461792825481406958713455244677486429856531842835660976135054352218960676723490809499531890524959597402836941224257830253198250425986612294473387171576675675783107202492092117987602493294032935820023731844725052615758560822036832079994788477480936030250264089456607576895703444358927973843813440198250335995929093760971718445611786620829012985649036427673578807166948948934627839261487962037705263718143774989573811003810142147801903330320591520748165171112067041284897299918750785115201929630542557896957583045926637999793379620921783273751139753747222373520634533270518912666993810207969207968450804969953344363080077558402003851244869369687671174608404889926407157839603947922810541485856194541302010588579711184138825017984745831745513729563176651947376322954759518512521210389651438713737366986577250385861873949470263605274821404358644483387394551024585387594089605171654574768096134704450670956226685892858680956642612049711105728301143774388041648126770114860691510490537005136851653666965150055521081150172851219394479213051037657445337210213754809486735899435810241922684757550294817079302603743849551789847612105198678532375129720812969825399189609880900454703909916877816840534121351111831029265602389892426967216020646971238409536419100731682944403302230089554248639966164776198158700786474327363804315699369488519130836199278128220410643037589617442667033336191882323750493224409764960962946902241125795505575343620620492115972838846814659227220936237524290931176930465621724261817307859501093153729908737948721874747883916355936658153901547146139915024696656232247373193864387238330560403595075715816509246553765840076585850394043587519861000225258190135068821434031794931786715358840101294713698418398167381226505647270775105070528372377103084222749988159315681725547836312365385333194369847434195248770624826700132007022462709934467099969493194216650941877988380621654392475974359305422335411357666348360933155423481475655837451951952566999041027481880917804421669306415724763557311903418365513220845742069726269922873381475337532011897019496600479342573550587302704875166772757241014855132915789555947512017147810964547741521286137728998479652056702210784465044327473978848606786479279408844570282398861099075919573660135351837524927244162500588103045510594916224667111560172951399392820670367141338779137547240811495064796256021865879624073589471072246427522376795897077028160545211482446222998677331714075708136881947765162797123633873873891072886703665891658569990943131847436279747309301866319857751406666942416318625949563256140579463544967641203535963482425866935482587348877256720018162910387528235764958543005456973655777580852500982110174099183669421421075333039358396386486189859702021022428466687202512193094763094185374372822409001891420792506867349114162135826824469702038527204111290113199899430850307084482601347965553456956307336943984863605915010163200222392947136149172544741652407300157065097534786043319213440303874505117014845488131136530907558123677802497255900412276769987095961332882862910756727434691383602497467613983682153845257940333886778938220139428515126067744966860833215635895024886089897041905853278227900958323326695164818317785216835992432368560148638998836685906076729152360391217816893194763925207480345861798956266329660452036324647693331680227069285105332434211568899384277225539268765894860272389653846635970828168080269711983015501802517433356219926233169583216871421282423532311311778790048336568590761762837373256582050797367278711347488856072155167735930617898041059581230462561434052712620567888381020890763562726261223991918540776585902422518268790913090249945711200788052886119250134104985659640450082634353065956248346304890251024886896183986240807641914976803990843777580635988460741948526624605003939708066904148172928195158588134106393418885317042306294654992202527121431441946468421794833052058071480546259674261563209285646997105137504922627820149840820715532181266740510773340921428504452658139266229770460465495962088890894371726310560432038867911179089679899100430982621113773236344541515188344543788169201765457497721491180849458118002248355192393254179280271065287412672044204434115864285052946140042064829519917872610020761508244693366905189551522869090876786933461514408467251580038619179551000685094301403530566053907725956793485248718504756464753596744397004315626617025775021790914909522125544945385839632732195204033619022761432339284662674603321180699876731455102526628555244521578330881057775278077217919668040991576565991090391304392754184458170491738268632984021463305499649070283396604108119530460282929693057922392560982773050193901841812003628573460635971285568250533020941455320022135006032025904263818955189269264172778084690224491749647388033839327752707743711743532532494142887719154706289916374024779521304090664189679062411480069832907351597697103456161785573118068961956115076880900127468763766489114966349946115091842677452877828144923667239943016658984094696642538984844494489706893575910234455594396213857201782808575058515961062731496446912348750030747324764936870980573721765896206988437046400468094340175872386288618139283571979589955040077989188519272374806322653688477667394078758225748013218134925498311696323791735488561673563277008498808778840080774422375547544741063046467925914363327467785803431156610767018581260945099186839656586899352288797577074634689878788583230017814782460042651641199198982501495657103340948601125558615630050832791917691064286069894929830738557596555072674981758425976465329422885731073636758207154201776388326416192240317893295999634126364015460320392122610884567524353143245302358158459703551863702059089819831068458052588824853172201788446063752388310894372146444849680348214895013264727208640211382053691968181969629145377270819217856624375053766117508709162128465448875931531428483593083430560427756507271895538702050077120703736132533171129217738653514512123666060267509403011091531071656429159169910268935684319325316276132766315041607708638981961594447745438800182101990441666479249434601312356776566231423016696415555623981011734283853043008766444512701736328637928087396259925387717266310311725388110626660563241096318164665773518007229178286617468770408485656464032087651318818685777932676020111511049170059408485515917073379062833106850565080014491668540908004048826314065744963623726444861001297885246533055725382578101225758725973401446277754715468697663435105076578548842447612618804269071076743704857615495486666201583087102782382150566580383140481811074978262848521206991617963268505091660430719914673094827121613781596700967526520664976275031829990407133872389112394956511355389101034953171326386933252552972422258903286844848418583438205807327034306146513767827117910685148213937985338014929018625067007115081194410409690049143823514433215524990132077786651070038952065958512006596190306570099520038687543283843697280624460811483354108681705293832998573521253967814057303919255726248205838071252256491209015043605796371876798851626143794782399982278318843786590644002608760805409306464611626298789388675398309440488904660869817361247966517609700923438114299161102509597289770229510875171961534349707308396569659120422678838046399964300150823204464422890816175172034637261010109462036971176170826135001354997349710692148759631509404625283530803088842823336538916435673463619671427987194359617937465893434573589688380949610117899626269936638177505465031623271209419913251229509594719175858173912616911065097303259294986315421929086306963007054838275028926228486919489711160683187354713468289359447842278743862358620880336355156246751921966741014776978788587185550116852025001691431986726760363212271286313394659994702144644931795552385328205112134668482551222265594606681239943346534827092065026856559316384310400055267049746386047774498727436986820994770921195256095183103130887484464456341769810623518055305630297959956913522999911948082718111242884599606331669161695172448123078313750349969247039661748302106963004060886904423039519468752535356953527562988833869702277565507207188378877579256497409905621763473674110069396357068065289993603049200599848762739463326778846947817555394602871664856352928348834394576333637476132516294040412902546462280428888689126551741989786261017993859338677711790008970492996291814399360071831141028720050370886673592946559085187350688524497278814115051179272992582648414561289527212970483995798269905185497009222548530712457592183131289984740822229672032052805003262771917192734798518861994668976505686729557708279310112654829636107481507275924486451431429374056289494614898050934446185332985694882863576044975199925182206498628784650076554306959629424106300429024806363545650831762196177909517780000987275080247732035981580430536977612354222688834791653308251507698206845327355789262982539698750901030606421769554102722006670318150819457422185963692721157090167461878335611478203780814692464888072552846576875507090120706206039807227755884745296961407761409494102383240651368337851131460858017452424769787190465823501945158266323052104939526432880592713856734236553630004806199555344377046702954474581650235959062783478279031246407936375348528495576051345939330021808032138139398685471995526668817769731484359603403586112259639228409816275764778600813227135141441546213545806843967894476138692831985541263847343735867555134536146292383790245560946232705997045109938613448237265604213417798212605997217858803314811542315207712119440614035742889656163043298120020829563850953811626022026544714477350006513637736219016199382151570867394792419991060558368315051058603712926448999482928076141824066617899679556702591264658990272818733608289827665144308415350876124345992166290344308969525024413435803190066286968423515035189300301902104688541902654499749851840099659495314100083738613582727037218431716369829805937533577178570457721313424133859125841669626709470397274877723491152194066419742735645795516414824331851718045080854465788403161666470750141275219316606964495604708018307339967440941492665633638671009322421576284367195567745905621540333071864419078060675663454147788234202311708495551100164382383375791053242765552194013174202462862992434926755126330798473225328920481835696144191520841051555174084850915261462397088933809634170230435390630189618152546424522640013793882556142153160068937606510327501841406283764455362105430063217757978616997592595601332125366430744674847966425317362118249522572829630207669462148802356531322771792064848938582230859370751312530334362367342875852070281555152933001008808335806815932085521346041606684048198926054077105194253070595200693749932884204724091219187957702236339729395570722189533431512155786943464729278292268457626364742161843735740081414136738656282925584667728905744784362078143904055768203142733351022342792888261242766743482778838344247532695505904760277711071646244645373204771451023727005803526489041279118643143426050854983921407173273543127623581910175467114100768734335029260677715640797561272355237582894616807859315181164474014623583956420884062613257990773235791847055423212214284861927493858174589919101904884486949588534074991223376255381558112448302898564237622047312069701992490705838090476190436130200005702622272983660766301297647285198875074839255645398816118764108110021761028231716123027658146056572648981014915582068721405490466163719482575483140910617350501128308378604400083349335907684371646580648019619872947100107781911842887827493712565747246286464610510337247060844804958868401840170448459340454943833173298848057868133419150623624119765434880968696526246695079130024224145505514750117502331589436517205079881942785904278995847951868102965380838577728441142044943043024932835500867790226402106685840418657452114977473014596346732246273073965898179405420011134154784028274862745797482986437855934112509757362211485071539406568809408029740409164656440736686300197690881186353496812782191099068152635267845140741086340013532545587391748475013843556528645961176687808949156422881637067306465515880336741398216355766855012014819646342920399003159758115351276115482249279361904636937795896384222327631447031501143050279387322359049937249130874485268409451590700446790511896260467314966215958109629384821364025371873152547444862774970150121316250903868338746642170919889770269239269602693791178926089390460447561906747847053461974719449903559187730154231137743496512192541350609913261034296051247010958848101622955803718579251981007943666772873106538639847877079168855296091145695927962300905359612476087684670440465446928603931634114102007658353052452577149560397634968913116405900314837023381289347673111322112791835319614302001377102579523723471275906868971459306076195649741379206600287984972598166687783352301083397367053939657517899335807936645341811685329043467921451764452357615566887667462745963581011227185641344671397326015777233345520990565627804435222618830588560457589610184428532691622947867046451729538950355481661299147739093499838534420319897604389463185378054669629964731386530616222668041476575617658651691872157860144459427337589561555198283183541311813589414861547316030436184353996385234301852828334894201975892025068521865265472074048924740271162651813106835923404170832947457304793386066803268625129415891613535360565050751626076654796547831742905963941428016791298176999060010687665865574280305597634273649686543796922899138250005135345010326910654830548442641497007716522409000121364345332486397506872074867655430610881818023035755039739328508577350733546734382366808777422542398537371939053675240210054000712295965066819005029674380225016539188135463476854309829754684204370862884364854284643073391506589171111623578632683859956694234575524371889939659155281773112803373711072663749102069510376348286834164069324866445487644453903478526947630879576604398379233506384231576310244301689493272259739608588674046481371589124220967355142807756228766044611730347537328678824619008207710290290156327199488877157961007741868078221899865306334251099490904463553380251579409550205037560206650288994960378867204870656085033887991704242662343207055578713221565335842371331474546732479823743993203988692503889552594895754678029110208087445739494453732371241820387639891675031640625832705606471964571596977886491079007091381694418558685353058868962580646528350905678377281017337505444075417292665389137293617326242949208112039619303289884283263807967419274358505029703727438634151096877711217622804254852717458680613902763482698058510010016530142762049874952964270783032292564459792361919913231045354388127661862993102889561541504007724044388187933428125917180649201124006381198629437476869426899675728006549656952904555082040552883993566749707826991190587202354217378840780585508880467980150543389525976728801193430449236968405942040389678643307965803961473818074415805502398678216207696919640687503907743825949796823163100262542654831100423282082664376930523333799288049907401654006356793960161786127937354884303870748068203911036363186236357785897643370116493141537277384761975214563364518779781321418913225147625986106063764866704342352764310289882117787308806184726319314594466635244837902945064408043423160307896383961235864527211271344246024272923970428532380373099895551351747486143679182037114204366621440653893047232110829348729400856038629291669448896382663907842818246540907891732426754695921317106577439100896722637181353408663932824477189887464169749405386500131610190918430278469074807531790815638072431537932901298291235543456385452019237740840955241704650623570913155590378558551829146728245820882214918908168567002981185688182765802077074457476874931417594483933916387700445586539842915063003041543500842796895249060225860911319731782636593726206900119414242351157801717158632502695138713514277947242881491735763481205473185981383818985461065764237443387341994779635763030835518817645424041231145624335838250615281746144522064668603644793804649743781417444469444385211952016084512291521643271999346044067100889751543476913438658321112505619336102916809717392682905508286530656690879777328946742748576540334368324105916579191838067843633932244666878637717321495158211656811450739759981409510412251947158125953250163322191470228852322232990607506655259630584737675320403315864579700869973924405977886901611911310867487906622084661650797854433305119796840138306083565479687553424263368115702597244495468761931469799239404773215558579081791569898587377227690264920051844548273655212610226246880533378452002000471772656940617414337622530806667748437215872868766898447884835570128078906325345395763496190476567665245225957308144876227118048653150593623495033280746651871155525161645251406257848268657997573585193141421403671072070117764668276812227709832814762292192292043770481171559513477464326265824643862746219559534128426035228646376301844741073523578934941898097802447177924644074406690373650016539516824928819838359326491090332655245922367541292331927765890894145150257176722205759369903758960107554481138427300099447016117467196908096260737490609652360347537136376821365826182220804006312380373492518446307178291790865022343245141488235631545056080065591063380547066673640829876242978808464570554268895800113255640033529407433236157402899256669711892730185729304410313902099125200727054324396488638444662112491415790938848268047972237703049867146395989657673668240944446862307674767761317285305514651220679469439318554725638564155801555749273174602339877584051358965604226424249593258165904009866842499349870781595891248681286991461612157532722671419557854740668364478791696474641649707914274787847171200645016281336065697624612493771455770551962038137491775476494169995425441531577905975042797481213465678941607365237613233804427193518028024232346567621208120508869544438187101685928758421711739172223168540733189683172298696305061808122923170299226961366534966140195290432318771984790030771335576906026435688330352134342489711849213202143701931524867377998067602450248121175491919236928047004165517237094236627577099491906362140105463708540510292634060923419052391599097630055647327695060964766353369938812193207000273476080997643877476059567139869286813807388919788318051684706579462694453990210869526860865706033686181610512370907636180219315602813893524018395469170202469668276519522690777276978207294268048681035698277807664799076820957008382753692563944177893138062184668747796414130593264768771242820458727553932568828558772386189119202824071600973808550257712340706333851539156861966035851463962859025288317269356442221816454865009490476944834397023928901911226106255313398613665141642210314703542699815239945616203094259875279312797842254224861379214471362337894777011658578661968423428679302272128985786271664409368932190765497190576781750470701383373602005090541462546970562318601564492760223457608350936564077891450739443987121977830737561073656734839159250489985239541447183480012646998229995957926471005846167282599488699819517619204105589870852042531796864617054210060030342422628210857592318721220456237740334403074475002670713055686600355238695614207445024393200597432585663142193603065273803627542372902253812624393108351637938431451645003254842188772164408509751316310135380183533384966064824773994372960349322858194581191751969265875699610857923520977055106445999146189424365358724351827478326227180958905015862027119651394702554192636979955263376805341089839430203064691482813181142249449686528981745479014759424526982562935509428421714888168890221591047350924442827168676620693189524079169842215811572350120454084632141783110713522804464510781251063391152542398072562279457785026881690882116742869925547495994746353811944259924704991357937060385279064825519218267265816518717127460735351396965478929839133610134317511527696773616001654978744285908771074501736532619817445359869713421115005279075865383786359579002305761204161883226758254453788674059698628774204107471301986491587473125344465799767716844356470878269489587183684307299157841999524974825259667799086497817067074954809469623185234788391613287588363852471900168458954037995102435976620611662506616039936000193261985565461738884800092487276168210323921737524883427884421538651043249753901822239031484102435903771169346653186064289538637291071769351979933512637826370275040603813692485550714964917927522443732504013711864432768438699514385746328848073477850579702974608558741045267392666346362117655647925459434204819887838829400152094478026445100866043185673828397908526422566139691886861922765765505806201432373369477440272403501314587070860617054637209344770286055509880964605443005487545103287408818418098196321741095921901337873240503457457572728694248733752964281910508318682604080446310323947482381490963347066397345504450286299569173118657603609694934633866946395294940756973252214616826470551992878328883974215373438600153971778176874036385934206676675905931352583112625916629550880576726118095571177166538789986552466417390749638530116060538411800280426277250866085821403542302596287680882458495176997943000218451122991211084619902709466623638774344975201457038804271166247715361761089753345697574968779636301006310334306456032600046001956942970391756048819499063604548080282289987204244094145360184531541967860972365262015039497479979923489405789043495003517772149175657183330106727564002984618924838278296738472115872761192054201299995273569850929656784377715921260883530918306670008227320806684251990357679909940367742804052390750659621829107891797196882764760729644153795432711238838005953398226105170804445438052168745790238281457739403627728430735116751373544492271003390704899586602746075944839906339301979140938586941312393476297783925358473393079841519515060894493196573269435996958355487081370138050217618320357030603933578537829282580672219253490458182655400990586189952558215573083901202002669433191359735271640947955000397216837057951337743940651885065130357491707801501893211730106494242140247050041175194015099631372578351889499633815366910824029941042049404027829765460452832898295132789424674721853850553485800584268035580298418216020281500431316983531421543065539608161201858822688548174646890701509522314128014300574429324942007110526227745604060411054877206681906506713618355682860250948029572518645354823799697058061573638480343366242507251215403138744673175086508499429491302474118642658054064945118831857495390582773749271929558385912778277023428639403920767952723569696108519548572531843001766878086294436535584726662106518721060481396159994395100340504581855744131487684223118489555187117607387014212204254383319883838007017381185469872359467867428614068655498826719920467292677228438751484886043113926097650504400181944937033951644738688146031774846899549959669379180715940129097580398717900452911534112244566736559793008574091796860426487603866957264858834687533292753187559999359773187934539612418159126179157099963007277273539846724396369856526552210792927873911735023736801833324917190927413992126095853912762276227715007608499352908648372287060144624905001797251835141665745672814776931009094129471443751997848590476283320057974964765455060012277719626466055394988925779167219580860422351676919701592230000219286790520041679531048427762608905799958582437318932811748878847288643268950414497041298321669113918717949633216253642468127751916837830672927373735096004242082347375283143422439276891429427825987170368569756535772541840864989721609930412913978466128599169786163786027205076104693257561288826698877145046069315893815264764756743531569926709712408274672398356418432877606701420717270490465821880642075513993966350025820075464611056794070745921039194962938747696059008396509322036311793184950234850879127800604180966006365984547686471537866262322008757694873438999380117942411489901495602893309014708428962866852445241390402924995310905514417794358886263675756504862377119598486377358670807525755040303803889730983795902970696780041391811917643088423836267758634001122856526863160629375704596631116934681653029160508841932592058837012471386001558049320189489119271040306182866680241679381602790679393289988683617538139819235575553731707109062874571350251269601785815264078492909795290338486257427463893232796121072304397776492721306682548397734788880076448668826085049469851111161166530663477451273158216353668052675589265804465265574794104728079086887685133638792261668077774851273935241645250571876950739384195545828021355634224244901323375892910518713810922412091247717174964473670141682424604639449978158906548339181152520515707930863590585085161731401556738250927091713944512511921666359300906454105655670618787295831710429070502895657989307552584778029342622524328854153412278688559477842624091183706712463136426685548024564966745153415038970591360076023507016917695628748857846427615684371072475501637980772095359142614598065600526784388458956594269506490927281438554403061563599690747870444851803138612207845746448474278188487229030418362076783321918353219146754358069045646309744196654898507972947477167563931761715621408687736562289102733221556571409101351401606023847896464801719509293401424926266251627114605003081469313916021595629553674659678362620374162791532831248883473611055299940523121139581145008396554759866345212878165837004574529847881546520124104189151073634359992348115891622413262709651070605851948137053328940980894504216153139068638926433717165118465710515243380509428183153418045161818430252752775830410954559557635505416103195040210661987221094549684689436470854157833573160914759493849694551193304990734951496927547301698810884371155853883007319908509713372902928564939733983609822751153753751820049532006145145826542512745064770439993515005057238982502371931212495521640381256551564069895614206527549887820711911551346622415885632087871526916749476749515911279677518683057054464752401172633854477619374033167382460020294034455948690499913481220336315840380510476242669860355303089780244579463776428122410691257088629524254591279607576668715038377917156917408203852392159715465472272580935911181178581575259189226320511919230391203680143366124970209130977461280822855697307197661827333448297700582124721796665532049532241196754000021955032762770171168028588767406665364696924454506606149356626574664984576273794528999482251146829991093274075553602397613023891083155550902886463271791250659661983932310490724462720526463110315166098007685572231218520350487442646385091409238585975851783938027617876975992352086074884671434328417340557544345996068169180670183390344146361188467188909006350735596261794993531872066528127772415322239912193239613774314777868020594010508983425365928029856785058384659980123728843164949930703821120524137609768433611058725839476708762288620150321211327275571587887246342344581193596076729146604665330427757232851160597948301010417283281142495269026099285255642837990228571641478609859840103518796354910125661955353046329959809070605802443628779485896053991110339609969586814730016268795935861008446914243498271437062445159181598358828719326498719357198894792763583525722694269121567874222288301073965643525066052144870720143509437736485855747087235634436975216333141209130464551243081381036933510038387574051041287764716122944913670353176714294427421302214863685014669294329138747162740669716375270072870207716960940029077013148596087762507677787306106443023479250599213060824022616539598109169214327426892503548193822296446425971420693181865202592411613933702844624831497492931469702538077430286328450374430868175536176555364933540864002163111742113107707922366244517152478131790411620666020014134938241431031178212269601957059242919868822680661787307389308571930992685273860816116482097606900624496004531398538025045797546147893894099652559814772259643036499092556916840170085387082079027280132514030522007849655300234213885427636794745546153318389418043920637084601459858568322368471097576566060789310202314419788293389961160274406031455411604548399299501966456673563485094214046681901913971158744631160048848366954976447787772546408597635700341748698547507083606911350916627412468616405097010172549929423693096934614803367245715973863107437843694974446768660972597781497223900557307427324495472666717593476695871261848009957596461184835681231356012724330215540830983638501904123749833152641087336267349579643062471647318356594016541374625668109838022509622844628804633805020873878445247026236538558294642840592107926918599828731225194804915622147025339377181056481481933095224082229044420522176286690781149363466850970493427759264544561077831033571992511242899608403289830819472523570966449059106192824925257553557501858003821075046588186055453574294492621204315963573015622236570638835381576469033186825916809200764808218995483596545324048142777456871801618213726617667059753170114419753696736302558567397369266841326943952789087489491211553762810866761445975542709607768022210411934528305420124957296499951219160372955145881960767750293924130010532332629365476611575730318768673500857054691911493436388835923391306001053110232945196310962611239008789659890619773118184739063432518806544376147028327367075801063554924518298139359572668438156851765277893612983436453669639546696058171591211214996631627040868111298206559221759210977675864336089500191326133289641792294891963205619993077545589152678568649576864667364426254134454347202165618057485600088856493521100815622477507520205046112004016034501943234195213450408601194217335413264347064944035395654317320546182326422095980933608311652005554324355155419881220105288829814058415229493323150543984707273072751404837292862949346630239706954312843420863164138433057894598853573125523772737297528316136451457489851626775723401433910810225887681964569934112247661351658859680536463908923486218708171551845576678965060849507240894227482079698756912934846744993820075282196149643718771251100290159730886689690995145524224142111618084442528250986477590633664215605971182882973731951307664685586201554673889527973428417861852748271114861628728249839270339409262987727899595572388406576813640442462591273757139103708403204055892046717659883343407876736376042684666454764870817272241361373885901403586274773135020352787964992709371910471222857715018834656764434287542595307352445288260936664484238669071435704133408731572642772853067736870035256812677723254242329716403088528328609731583861069172528644405078333160062287603229466165365153344594811483581012714324660876662153452431773640681274990597314322178450129851957003967034938355347510970671641387860393934706903344171232098925364569204571842834623162074783300278134588317416277459906078672433366728219407310222150779222320301975059249069207342399331990243046988199502968846656010811987113742439235020042330124130527157615278544888748118279591696022586751183991699617716486252268798302922005341044872284050378909605589919378263328162018838246144021472392394730974758515492959967106843248392218176114689637454430065361888683959554927592384496169220182185260405493794526731921908168756085877912993070893867986478504837524557805746493236912291620123718623353872844298033493333893222358842125920817259728734711763198795831373680685370930685673331356981316405744493142091253092566838524259854254762761210453478141263266910990580790344035365835984820521553881978056092936647895194774245780658483744673143061260580184768961877133688365268116997510554890774897526446386553970581926751828086600806865057416040799404637961717531057999524333066746289381979206096509383162458622634001018990929819766457049619647145201652867802516522467820955971885003556230848283799498358940388901926402680228704730797897116643254982315570355636153683141921465007978793968918306941428200607857520089066570992722457897420081607066697546084328259869634717094699275114371389257499342388548591130442162014411825241637957003946102830650376837249490312377192050570964169140199620559773555169917172795709557485874633200626643141056323427491273153525274012016788862803312515574263069268745578496041842436254751517268936872983116460018092291673257838652134005115667210330412490972209463753173515312827465499575233325647885148315687698216920807909689983635776617824833888174253817010926292879850833388751979936806384414392199964163816715639041054228414794136509604081413520996601123175581577509753666590139227647771971794190248606661345931275197309186754855471176340621956143374206763672114146087302808876016530804101941719601172143673070231196043669304086737093448444908690409466335659122724649891724442916282880781652420495571884454811345583106293381711643696817902250323027723567250513951636767943100238251466061435542171193089820736993521743348480774599168371202201570270183481341612848803530184617521431832229519277532179528173956308324564615703731817798111717875861904683224100299782027249832932275946023534628673611078549101469243979435747266509888947424285481541197447200545848681322855975345467730668514629033815471923908081136611526796624594779179856515376470169259115429098798331093705866542359331690386313574166950559334651842626136925148883639480434537149100310370946104284884520340986726130011707882392444883965420901947222730037277169925147276973528943808268755199060815839716887409156815271432669447020146905742981048689164206820834244717090348359948243902190905005912439631945359325182054642435086883898050309662995062344606533162765218415946412122203093922065535863627050986509063616312048645122327669605258779930271741352156301143119835449648284727628149155074725935194991279155256072494565118711936959139343989900555760543332841521224390598838053504891157605769519876181091633520401598569583172759483251723468774981596637851864373259739328787504563747586060628277734265863677718069209436594990321138405075022521458898143484716696783945076562145394403035332525291478406760870416819510029793711265877991954303155017547470683258231374602389361088541457301740343087994615529091415477939324930267714293433797744622788049453781741280166776458016571339057762733201377693731334615698696307248835325851179690393301685606401019963155114069487674151519025207065857306019603919080442290579848352954398184149597353122635356401788189203957232919265429964082500032632299432739825816549234218394135485924004777482104787008928881185946014650053345791402320677497489818436313600278542567259508830753307230675809912988008352524100333256706519520356922693267473230564416821209973877350487288259464603360266195847639372394554612960433013232441279641979692752337184356587998941529361138275201361582773053148814508281422887631766669407755833723896582177665657835014959208995115176593198092770222919846621617544571066960892669925825376391510518269877086119369449651456360740891625639516053845089431287764138271360615830611983662706345839907745081060153184785319577210853681140199296913330172658339699901286985057748069673808627342333039808753459263892649381748296796380399346133856789214326912498512312272420827549529636058344070594400915954670057593306006360825739080016611304587715028893178467074189199157594687722100315533710338181406449781439020826699215532291995406897681431443091692887991026498361470710587834845434640619593486270198596234988542560394496038570996219965619964431581751170338038327010757360453542327617620925252352065920130641162183444255436681179208308723341289415005016728721564493409211393928427682509448604134686778758573623515538119667537751030142549134700416797956769854741533578952240821285956753220115056623057518010682273873278774709508937848360276117073458887196384550011486974380738299799873357344431510001409415838201907069326588517927910490962062231980696983542751979821840994096486856584783932364857743421149377814354950309047954327617037933855193085434958115401919714888504701467354174266222853294853515477376861566588227368897245994775885664098232428245591673506466920997952472748986646722841443114768057985551772279728397228943394467070528880015796377431769277313685429977761872744738612139307072240354832638450901961836416439700435012359787273131589611153508030407413698553123524123587457874572028515388550757228263232689913152382835713871139152200756364906888497834697995770537879162263812004980094021467171907546427782424593032430996707850142484843440708779149394149683593211899247487726870419976221455372167497370790358124027208019050628454510540273478490071024457740466578851922441440381950539245675301093644593221283547357068106027816681864308156074352857664151189977593519592526195550935540311959040684973581751760308048351057200913647856914604793892822366616817973492109765557846974925511582203515126401596583940142994112855395871803427387920932046202338526862909606463242527878527545397379530936776662554800556635019943107035603440663641244098992919497983484396753272766671277892810559670121094353941466409770276474185822959761819153856095573113937563069951373782793073078810571295783118749404980209383852825911174681711069049807411194333657223919244174045813815133267763345411803830026117162522297055100315425142414081054548196052153869459110482229558617594052845028441414721036249672898102465332850492823584408057654342714703848547936233164726863289340583625668715892655269593345251546360348748694979165807955409728100221826646888211214617897660321330150426911164616236304862979931708774156907719144744907162254334139845337239699621651683155784245168227906105864170440588252823447359446732236467474549044299449101982019499313589861678371157960727599764302973242427060376673520076520208673614746093686725491894856831015750564863542075424469564634642868695998139210958811512955351768637081628533128668587169400628743892864931491258293877888695050689061871915184673813967383518594748266329733163650462670454519706460229266480900877413640373384424372585656164116377787110671381890910282592747354916818280531275309379914244530654642438208182153747996223062437152780148537189079211006833647818737146618632599603485200388259253448267804978146667941243980617630903331420525081473806563645441758258465334021191662945175697527169456625052126066422016787514877960062704510812329951251135971444008840964712096631077507114908933228169927159002663225785662005589384783549481439108103155589486199164499601825509745770669051641133446992358853710338392603658000366964506600186875877003930414641580630105224876540299204184312329089908512248323877081219044188504801968670896846230399238320739184049301058457271986008390681027194707452719222579699949628287542439271845468573030635792180969948081792382108290207328968366202615310597944607591471556463816864338568344831079639469946634133107970667540068543225346090364644826198362195111779079310065357576891403525100774014331494775696689144547067902037429069576505680183105828296505748660465505224913143203471486051908388525817278172872543653248358800962324992500588642515892228477964624554344951991946713729091179242229212977361480901785247624950958574114075132475963408791514835971879248112796042840839841275149783513623285482570316438175844929164013154655336231090072822518067421933225810622089348100760366779143890821077501040802581869991091323240659394398518098682305599570185574073911813078857709665451396340866971701108214057175933157267045135126399461954351168044691617428551867039083743897637909590535746300813973340794694918640150767797623060599892101489790850158813053430683214829111843234262908568617620161885217685509449466561690823778679884879448923162080388956079144308282554749110022710505531262274815768016266273296436557865882517312374284934499747782638476131213090405050823536122754479982191353192029151313272801959202973452881559880564061748617318441289504565290069341700844294892907447960756299004775029842861236187565783256463209727087080094837789662943880598362790061819859163278690707415254948206025370077042348931077234333404978577763247979186669396592076618933852111633208882434666494309260449822731681282580500681378938134611653327262887933601445678441201201794630797965867305759772468543854918497950324218283331321553658555695558206811191331985969576451446401215874675411660311944740457253560324277466099793451776172259282772544150966195497663185952888554868068409671974569726481364991539132662793359165433722793743733035741731329402424039011193500291769780625282585585366033041621867222290414754373585047034123215634428764062597057585742983024564146928426668683737034009971282672147526933805663746364976730268966352611908426857035190992326571802489317408437580830994394798957747879209634357202462562654766259983969728833840808752961242506683564460539002332369585934150360813466315116845314416976232515895295111388347304095684018253650432389396031484122693413633654863887463805174163899621960983745667868843298368229318219692736198732374592877229429875718151450549817856004738077998508044558276933172336025955302923144276614836936238584721543809405069180419370713150530901601095751372886922343608554853538176028810481710723475230114005968046850586865902514683521756454967260233570053147123482086003372221840646880954812839282784673012259981279335959070735327719305021362999793460559300619975265963871134153278379209842795450564150318144471899571069497859826139493302304336955435608252688941986934597983192237114383032276977761045577121121928801192616065095668257278491308057391146773681095500599290894151923399532676541580604229155533068730881612492692917380101832469100952212449079681484188249027161546007518897297419207462815305666398701436167503078359062381092459973178847068279666511488825783350700079457279716606518031418084717595714958579023418832743812988065902618287016293365902488816012727110829119580488246736832027167742143911233789153237940202039525491271560146933848332619683161421047050924163026275081112538919940711664168924627446269405739290027229472316780350363003554127234848312193487124459850398806609953014720585184598982916238225589323679407273733997473243043089211489973603563052873147335055313867003355180785373405283770005625452632134978865945522954131236745331902115770793426474829678771107113528143318216084156047969220550686190332076622469485547067950989450156601878337262048002118337505671875452466917626633719033870869108058335294557937184833819052560752354887343539130103027598092341091960431176223839477722693991616264740027564312377048159268151300506806201264415853947875478894581192643120020212561216213923875944360040357141395984336931040935264703822125435558979815951117082962281566109473251044917410094083075528378674621139569456826827709326008186875267910127888885831425196062280072597468275242085725666211819516790482130339199064065628016355125553288010124808317544613743059931166119270748460848938078800815078024609345373781561510877423923525408867289280075337287384938908280438130494814315406849882124426999957747157873156390388468303422470030652546196432799994936105118700358981334704189954279072089229429039767300576329857629819538681306933225257558363901079767663846013396174140394081817615452055471493295074171745572585107555892748341718625366821496732792335531687570272919823624520037009663619456188947222128428380400864998458832382499694807217250168041354812079532691785523737382085423755253190632707988667715147376379285328911482130348233467548319678392199430239795304837569293364795849642738767261978012939694790770584053507084831907885889078642110850386103119603190382086192733961245793268261333041267759483347751333536395135839886607156173708569669066910120593699213927272372422072530912969278453195364151382710691542463455816681106844499519326413547242370190840120909248900620867661575936062956761847214178633601868921292045019719668045409303019148661581183411769533102255099096279020847938053918857956162170832272394545937144058685777411641264483299205025223060337249746115313099287352404502099496017650677630198030413407009495417078898250388866088860585842236746257864166387209492364628617012480174278775627047452324350448916327760412971435460357524620883100387413512657128272973163966722933108873252528025296608401862391087786906936741220369121408153420888018751051690973948012356247191967853891190965385497509986634418798783114832760069676160587416890120418899965798548954341787958072718415904524712072435089742553748802604025668792543522666680255875602122588440573764796787045880025139611871084002032483180342585166537735220791868431080591275130375060941535107044220942759996180306822119500038086389588348601016053130158198250659602574553435648803677610100849588861471938806851597037749704458895145913106183590451706032761062012607165766202911607295195700982621005515769353363555759746804067038693858653730289394244147592740064670441097901647092353609581065277584956275399409773320549011015385722210033683534084717521628726372392263460793447238854003232691092682317793413033537077245768590510622238209529778133088792409484586727235359220390105045623314466868405513422122001182849828541562639626691084276537042441904717535077066503668435407849854590950384093576901192100804457631217293495076077030641818106406401595152480062222594284378987042197752625806505856640919747594860248307654640812528949944077888305148351345036221471951366809186477543713940893376070839485439800901659536398358651057739319101085149693602287428054877871605061099348805393305861145025762046825202271580363222053508138125884965990005650724242628289614138552984063285691096477678061068684472100108379390735480754593818732014121195590480000758152705034304006653222275177101909320453366837924962482002754159309940582659893889321850373595440975309518030167261967063423345891308409743093599713405253526512501552807640765184517085235799685838889687826724603321467426953982868159901595260176306440635368246028844095186969154504518784502777392454879512829356334699154639362677568437761984016402959747587537850299686306240785167499859928927831892431992222287358454279923132412121386924445132275839144926908410083839221324048459519766510187856709269884388982072506112654613469666384913151168102984308560064863219035192715601889988135495444792795883369438351643838240476986312320599117633651402809102720816274451025079304714427982433829438048513335255808240141076632223071734579442109179096793950147032733911576183516196035002470383555778089800700136104287807383103827891346538077138897723619731148121218234523152443118117786925514669773225614629482068486944007654323621052945098635022776138353776881183581570766638207069106611497168582426096323790622725910307972906236445881044637416648256605686268134953721909487953223165667256182773494789451667013338613319172365728074396753191447995660027506074420369682414280089877165787163044157603070824670567159640887636804264759407436550869723594512495500678686709844755532927409205028326786483010106936172397264832241211194504339228276602260651409890804677095866681941226951423792180489150909873205880726955800311213778632265389051871208304279809046874120645763145644423217657698206575179564280933089518261771039614928751973523146738031858090489992189168785820805266127635222298052824779529818820103048462093088772658446465052884693940715918922105007205606800492140994497195549687045911761577400327932700966224498355546857162894417758196929308703322408539405536051231738640715479022398586284852061340141546282739360595507147997749064519241775846841930107246046592976473091499184691591233337714352398022620475527390781016049672399368342892540750522014956466545292150787584611237586699722155787385391255971305150539457146164758899499922803910952249442346537455499526935858272150108860156941129200875141227400926303440461642288226244412500410641049496051276972091203101607182152381856867102460030026616780919228057112009922945905460483400461845505621434930150703551537440939882648396472911100901264895211869137785622226285294821543635830345974056743444039534865086680048151186307699841530417470215270031255542256497823499761777196419587502836134504194679169490454770759402586269537959225067692115048675838719548666655941127925941120036556228820790038909939415592329252563955991000686703586285312149422337897688054225754933321778351799482464136877746479451411030036570128682438125281943826129264567548321388280065394918927397146703578799803518591094881493559794578414424416998129626565819699468537091265998587004577796753736637176682569188161978404897310192797593650474356057187087960296417554176216146991758875139575401045591106612006615133462586491417501677282776629916993189164046158771834264907669377220018733989226805119523796871143272165175306245701313666297874784618887849938971820048514781263230957414398523757304099335094600637741250661247756572397187487225979320277333030346149659197340664074064258184642980849571494282954316197682715859625765431055701890962261975123006664988919689775414741678404372920849215387813603787455127888139896959020420301616124016898284991528776389376584169082724510829289530321042791339171206377426834124938102071181573053970419351480041937763908154969284297060999217645535061197234104856018462746505713745683065389611387365939382703981401628890123399097393824331238472962892539754943586336568829085549185214057845276317723742304426957822592279336611603383232688465928618939866093611472817895647517562681060139352289490057148100307594488893936483730862499146281156400818813723581529504792890124081785436008649448087234098481253440070182284682143461064476867625214801330748364410592771948680392804446945686647395455960710124730653414908341684790315652243684832734083562379447364414788800087405596343807869241565110779752668341455540734706618794091715224177642043926634164747552215708498685067853845116221684201965082860007652125087590092570593133312684741147539662538969978864035789534562557056202683092191747526466951900328792011772233918089446006837913493547767727920066066267283652818495647283230656914887882460160972861058388380474489128640246503385406947179937472673938078636209221875100798315042010406462417090657727611420492681619656947732103039077491888817876922719760127951338220264110633347346103282236481633747756143764607742751851696295940678891958652930649620407894174360755603538000441331378728218053806933104951559798778283144335813258979117805539988413293133815179954872684432334879265006996090997409157327689633603175417875534479170047659451727316765040109074938263881325586425273151289182374280082157113942424139860017594509119028474631926780945623760485970498978188121845244529576592987571105090349594007143176751554073327721058735778356557141339038427001307139566573265005787615659480787377966960492750848320518756049365702678342764722039548313205815660057635238863700387791666917089863588565604958482603188533236549490392192975824931670678025109656221220296722022427472622903248648564661734430095419811166954017202268170911845634102813320081643835753219568021858823070472224823427791530954329464803852789879365103562021317207277010820218431809116939294311476880260091355619195616456742594829304975276367447285713535086383392778101485569275405114007897149663897268362561359977727792252018337993619803975442520675100722562049363787519794144897617184473581792741438620333827161395012096411790178979259998750633499000120211808437339376681983613848488637648530058454474351272941122579193389850912199085644684313758375819803286115916744410146177020962699500603032531885248860766944140360988218594649839822933906826805631223451961113699300427777244970284244940901799139074443251745668029309952033337325947110939800230082957224293248545173016192386031621573264857335780441664275888504702910165351149054575013563604701073970636146737574654393399151807338891171170212092408989531128202870211249938386466164028139350171269140373899569532400449322015603971619684570690417498237342799213624890270913519631956721637663334289273190528025416056498694202321471825289387142408738808833728622351322399518118383526360764825153390178216450098314548884208067963897023996371635923739648526049795762361517403358113010580950032509116541302284104584508967242059567241654252275974332743822884221153373810012651698794978208255278847317513454194925715969589784164296272709551794039731851778455593484313391279683538603382486583119567393814115158049805689675370597178946609625339086928669728616524371195409419679611915629630031799267974899207231102152962592097221757176658112768528092383495366164096783410752924578469833344611876371157213258342330469256153700594889011941992782409933496468755070043117384195008108121560929160386317368490354114481336573263759251574450963157840350902264642085064338968777740637565473234848486985732798187346681295151152200583892960826956981738937440805577644160389464335406574446527273186210540344987733187833506490451171946440718287109253276003105831207800198863948330757130103395443122168002732491491671710785987984453206709726649134334505825037490756587522147908655124063641616224128533282556873881583483030280073869785757817449961214523474837114280633891095788772529171192065508931847194384967751282304178833592716651578399210362104028504165978724666974818140650716104875515707775313194649722417274307736949325450449486478317652638231514394253342170511352656207958390486114424423028683066609402070800429158560401326954655776763336698073666928636832381028689400406718073934029100884882742888411591994997779317346781698867941045857717832796882391619058560168370099868109675241176433968409587618575213642806551985083534725636777714399636838060347824590693971432087407623810699790292093811545308288256942502756059962114991670569171752521467591977703882577629746193640511964414010830108065782151545620082675235849266356040003830044896600458761196527158209665412844793055360114832110212772401603617488940825234647765342903396774540315084133095744025816344875485527016349286562020827219769523923500515896892793575609249953609522760223190127996981660498138834449018344424659852548186482771318725426871222026372317058546957237492353751972644851167411055551450766040824032915510440678267645166586472904375614159590660249093134332454545893375633504676818873688950299581946080517406152482679857274543921811779534840346291262773473860191217140456180265314425907262005887284267363988440279692070009687832175138745366165407588817921276444030177498488875104762481734213774865912657414633244925698575371166435559957239922429598998951019320967760657617426550616088106275435186398911302334978116715542539028991577142743236013915794710475681409298669380751290970578518041096330774054777462914387138503070250636480139957596254321144194511219615423141894124491944864699840007572150210359365699075984598666493126359438203741992201997432606526975337193413273882777229951946690943439485281043361981973260877277932575303750706211690127360216564434655063991269837754289078050212854349541384727456847754862114019510369771571974328558542990486253322115769116898590012556298916250140630030990075416782652199168865662447943446834795608179014471351169734998572991563929280534080990682683739875601331571732389136668686347972903285296964996240406114831776820770355392113969337065489989305447949364677423406974255820682065169134624623496437998327527914162603971056797713142463848457725254705581326849327202044900216943554080317817847876962566590484512851621800924648099942034442634502950888269664943828192609157513516513239009058540543245208766341907259557286531790374833799106142030982794200409277443421074093342629902675567640910733001203483541300008873212836608757380647881787885097346954916914961305610801351551145397605098420370208830795714340674287237731684054555969690975885359709808973153696886010333666564843041693702886925379691790227725469116270932532029207549221758618128452880243598541693934137579453542385618755345980869573581408151698674712660478214979544280606462876089909163811316083756050366238379671812664816381048336621844557771867058384029087403508858503286526087432224607578824134056002652432127008358823283165268209950939832539824712909962665195255094349618563085796956298305380017847864790335710372789195167611872110627312695501710224272000960043589923502696579469010830701728539287616854902709037250156873529035514004783552126708153850660636325339666618636130619799085149533684265449900868978811375528870084034905389898036818244742284979755168713200342948656638044624788907504672248775081293084668022905026308276629603474626410255609366975327730196300037102280742851943813602172875218455454417074629756755557959730094410656751651030396973330265385576101228485312627867737191196137667227541701842602684264431211406996959668060808000437873108571611849046802272148769752055525510604745925167013945732581860159896470595702223649247541525961369453923947129802667167460271774878414960654707004247258820017281220787553931509296951428255376503578780069508042067943103318024013677716080774213179773181573701599071246830822649133431931025960928751427839071283160178022653704941380703134538191074797767145241290683337788652380373745312009814914258216153057465295424721751985091367371757476257273700728189923291844797591710438048188769096657900963356423503315936645771782632132505056739352745250299323347845297892464122912761997479718534783195397919612951399067098406769459492955581554372273550927901209365355485199697684594781013544698580906566145334135297789127733504993066623966791928117586187817452201687237088704377889486175268056448645597010861265442798984227963533459763756876114496710494718481464544897111195644404646585541132561793792114909027541085503558381737556438473097292814958119754259070289393487725585114752107235273155656550174323824447456584007173754470016330432497966472272426266562907181100384109663216562417949399465876845110793791415367932502247509199920820516870917903492011029833741792052581562291395168810783403200028203144541939202389535389678303828826527523163696033744376836745299458035968620903391962898788586389824108108469928605586200653245628302242081822733133152756183926265453792124446369451606605983739192815670939118790772915177600654171019775439856078599624471000890960336092190939497201857594341579134147400228069891666966301393063079903143752670693414393013814312746004034297729885685313048518814876499016619397374751878599407401485834790192452342430859184573288720820766576964734633216383046507483397044271696941630379734537927077499870772848493047820583168078859014698141212636282615786923983108024358400542127035259314820778738367029997164461486259587469992803231603723407760495907457378584616398494584069915966187978163802029245827193037681943663105503879859777672118574704704277525712846107706704642449322586234515343105736513343821955610344986954302535499409947802988230467477574461413803383927484125373667366941033218217740716937361246429675560122642623282393829095277209544029693967293140103475444598503029940934057134143759583295607250389546093588638102393958711970558343110811186614935957316675044773665766263061721471453274276381189527145457309558094408277816818360625531381670788435358400610080868736758076940704330371683914634246068922736619025333426304064590489319328300818878688821938875930464717217645957161305170533677239166739564757207597633304311340224187969914334718185327579737515568310497788917885808228913911865478927073248937780329409519036028409143064262863391470102826024097336971773516388866283462418457418066001464186228045706119307829501798869101390508531138464834562366575166844479565566249146497563942618003355684435624100763374771182694067601968518211545677563771980109895598538622930901424849430134753307635564224006018785670751763592673048376779917952563002838969445656988905415017362342369173384642461415006371994998803860174017437111111450206388183291959925429908734530051352889665891741347574732577911712269060158400480844020329915185635516890833484293300447444477845102013431066233036283122655530888240341533774084665841024103732272676524100256843267483927553789931061807043036615653346244428820432191249119198810790328642644979765359582196049542939820631823910290116864535091667794721625081074737213959642878891627078959385691654521667225686586303248653938045202252729751068215758441034435929453280622410023327210557128086954877173946974591213232540684703629696165436174884805479272446305119845760993877851377685084264329564416832508624336600759276955064712674262469755149148277988787471732578781321591930328531477663582538477363038280069260511541874977763684680689337128353766174565753957117245693366187095859566150011431206974166603303556551852483233407656022973812501779490932596794809666274018330006766185614970442043669001385339357235562461365552721506335853785144711216651893303666736749110726193158407612168429738932929666723530216703690187613607760255227125977423576533213706575305503160033546795989391359689494051462909213826351375359546077137009120356273090983839335824745176995929765543626912543508558952424955850248501693485244347731916273193497535694678958080035566055882686295528052197935967444151571293044748890359876998691358241870960038403566074386448646887775934105764225468488134129545681882317850827516021846677725210036554173780597772296071976096837243575999238578661424940807976230101485679058702210087223481021881835094173832862956881820505249174157694588065726001607710793860369653892030784319129674023207170777954538172598931858589224936304098619139689478183911943318114078523760648156484908354734925031629372697890667866715516343897927239432199122131137089934210416656709049407575831580809803898264853259343489665872245088849909796820399448832690373718509997834809977028101261616170666998699407199703550858317484287246139387218411203259568895693356757982510616897929473953671338666450181101540692854452815695884329188390545177291440192643400673148435838845381083347704086684107856239488172777892489316856933499773712576323428748093517507216067063037011619224458627612836703277709697701916119045497740300958745968016405111321368276626462815496555115184518077944272517075238531783166218446680180217454467300124000642283942713707772384992867151681928442743927313357876032584166718731664416595573360969544767301467005886015528537973378775514605752498216417010943711571566529362450133080000283279051402889412236089604856271197319358893701278255188825828002562038906566946093199990529524315084959139719173337822240763486040358958475621871977033527160294227288409378667884181721630080460350230721677866875176228361817081206480045512830908384460317199824238000663484723432294102641018690699231608440860468525211742463343378025953442824495769715415257790363009427556750669249437364071151219040437655811402783265137514327471421941094986294519359389075223564057416601946378591462541373791279801350831054535763437435096796317508472458947372842840290758219736914146067339902949556679823249963802137925776499547933738682386314054842955704950622670619619298861615998282448284088091422609281446322174395304405923373990583259615450046450186283037769050786158195665796603422394852493757023296099234498023425453369290146870625464163220352351619720160689459818406219097861564248328661527825311156786521137051378299598038380801953176693575362961424538807661625023409093368329660520105163957735954273419790885649207812408824918667358542287499054671183036683437723777371260644483946247524580901718731533545451510035308716983766325581249701218946130212062687535972000691436575194695167799131223074896713115353759489516792776100332441981463248142814336097266883298716463062123554289984405990046573689488889378605783694707272349919904786934447244445824964225086496727677000969073293818249833917663879061812398873023372594101691162431136407918623143433056531997630381691782992922105481746209247166149998266233179957676430518070478558737970416899089533067197058301888231371408456039159237183315107617068632896703346277471423973373905235618481801083325410690649360173751889321548001384624023001836987251369405021473069776795304814333246171081843839558967060509473169810626904524561937153857900354001591234446606318333598975262238600964971339334966861535234446710881109578123837713166797054961729780887677011166240776381152754877038505909699658557586647695257758524085294457406117727230086211666151116910588206550052704161035726568032538934839231125984639175834759841855217065649735633001205547732433040635064695704397794861796756370703805049770405711923719578795003903860348342697367294261332021554026922195916923839696430889384946905604141472498206005908046033492882484029436360170838640199257999692180845765929182176788916226691621930549332243871601326066113323347369654929816066392510006459171134864997253814685708928458592415305643880517908255708973481061612095504577660727814422038686595097451982686216528637883955232433228575413041968220206145155790496583901606632556160491532744409223655625931342218435371838014342618483231866395368838843553268568734249607108538584460107595182919889565928303624296944638829584643258857027312383196165443125687827230578741156198323064023924944712271246058266985449863172130907501504796849763349708478335024545033531029162525588663169572686037136297096890841001670656620863509323227175783318504501226103762530948248742005412641811793607948962226659454042938200866281534467587484567316759847429471830272204036776961616285422977369646877291963763457050198561957797474437171654739268172748839227638416763721104569271542345705941939405829391907895814682865693915363472219986451553492066365787074514935766954481240051482942317877730071081698106752476143875456273605465815990874612195315733883670115600303503470360155115136506449679295110435438747835466881118889352172506857842260945993354982813916909146319989011442267363489029350883541686612239725678520783661019930042951265030349926964141612151294666049970142106213508643132814927558227205005599413069519840858319962215656460869643072964164012633965135012532476722055717857684086377852869367470110202363434326844362788272792359721576025605893021879929522527527213237333812755865854496520449516266171146357030584146413036262449595398785499478915417881190291341910142157210988589104111270443711217430800036949863830719061844519403029769469147633396465799183854646738704188261781611749698846431538336801755294274805374306651035119636514644216725438390193464913827139320733084520863297856874329437388539911690449244880981490676410389695485023074278941938199684211643868300099546715997038816926095882044053486372778957346336943250671569150859202786310678101469497485135773898557852789787598458061564576469884914892148033062086094729475156277362505022758702625833278350434356830913719216230022192465052683283201698211782051078121089159296018955083582116350290399546683909252838833411715783617355020802099488104536281016106251349634724688843626510926421716123483622239934251009028219875184177935419510287250034605861233853507425283790493656500215148039905197543885602982423253389352133326852636671279326589072953776120500159366660335248664030351166672410842059712092742759406299750517324020397752479295595758533751800376618954577521569851067101005978903958122940874991221705287380250079770936093236962780764251905221146686523890090115849605964011187669663430616932018470185145499056465001941691634553792875281084013912275558141542787367833850320852818818503917507088379151012340100092782265409915064267860942070661107415431331764439036639406793869172769870528912750020933214628653178324037377306162881337227072917946419267617200503427111989147000769422241840085687159293774747070351910785009098828237598698388171431312746106254475556105320679561531505915530683984385159322076202998408508783051229835509169315960095781194543011009831404526632181787293587061454709651110119494061570771755330068787859721492573230127284630657504980640366662333221167287794640194027405240561837049283408997936336936494124145481463141648014516716447058923643719181212694352114867189187555937064715994388872128246636933200907002768699355509892725830996421020179978069841435476963599567689481060985676443850033056016033912651250673710880672660936725320336178334767526522625504250568943555595491114639509827983215289635083331397141037057668962317005336072921539932294512836042830773943308313843281481423776614033965046535457290231476795987225689391089208601055723061768193526024982734005823483595428875254134051333794092862897962544738616295370930792681494976867593451242188288294405812343596323000496057026988585545031256061631785266841885315620628948080482068002542593196816744352696789288610726585088196840902487821170550473369657772977346379365388366827354393515062758327386063514536979322878202962463874897222158483964088161629128514848602566308904513571684383696930844218461018615074794964836595123489388285325920770908748517208174301802213983596377088795465651356994972480446956249715942282138505595824699800827256846796978267959800136133131169385862676119562799708398280473945153768666519138020877681142694710274543225857958737260794679060121648600734939430832414887151968139408016330816342149455189222710613733395453038400142411648648560992263924692929065034590151832977759924324698345703249989984335693260203683534512911186345903752433860992385748860112026514350746316472880198865112011446270376430280421211180966127090039694445577622943211492800182273531739947984225571044338657901775629632308822925942736989973377552433536979603945875105074564909589458624414341338035061353740177011526041625874424122430840123529961150149240961405706468667877006442554902723649024020670310772095952896645670309948914410975199586287776456450214164324451167478980196885064248674034580407387519558526161965725156965906651933538302714303670129518251406209542606754341581498376173007417501116084377049570664702000604742103376624603844551259664763664328914530059065820675991180091648465051757115227159838848853156487150511412064515204886212361111359920582464263172898482769962809851358546665388038893306981440892706546546048478891244091384710294908612407892973072799259757240074937118667336579153573751610807850267976841682498234348259349242973944616754208346263122842549014266707204470521395556241367854457040774931345511802185790051486893142492164044928051164650243021011118813166404020449258999530986793645842328439750779989127355891870495498793995290217806393312000821936248380385615680850230298431012361179125255602741304229482187994216032997149391951452474779286816147912283691188226796711953509574778030087925831192627279047005679909890398345950730084040121102907496583622340968808270620087187338966135958052696552862253335607516516454905465132287549488951713205275267483576553428941801870140893555003468681227946482499734670056957167030289188905371460154482441903327751527866054301484082251722879591727488315009412486791441331679558540489749362823695238377400128402770228432474727700517735959931621842038106921932730686544144120329050277932215895431188471241188819557435177094023632268927930520509413989188712740970918266503404518828160860068280798986040371434700895803800963288022129444406376598594666058310558088489142784791061324959717738541483675101405414986806515762290018696153279153128923126287945574898909114570102386446131135195797737889344094948925198158839842929836078064179620804474466405921243462171734849153667386789477065773468925967399605969324061562053843016938707239946153570407419003270313639910651605442930628002626264793989051404513811176871444952882220788462716979757715451381719563553592497478215916013742629363837517028175597481902317083814731191180942755792422652477554496705281832787780044496690463280972309253702486068880193641049943918207055443280805104587524787760538608031515891613147461441204145909117746494970613415315981483814060887216625394176759480120166111607102290111516885035828635035097076284750617565408684834665863530206109956571155336859865539322266843621173298194688849833524313115749319922257950731592872744537804520842829218582895763540695563815431817495122127018820494020735943184986130879630716607840329426989983757830774167587391297595140543128826427550573188646244289943391189222860076212517547859241197083446028531328015072995391843328949714172098430960258460593874507663405162537540790238548680997539897140523993577380914321142993322066531467550004313874908027926452203696770248550621399488273691572022773272174622416663470850829180035098537694641944355931441455325239666800245663218618743929433969128519774005565668143875549366091219020309989568596241558656735395010862637010871828962250093463798010258778772373122167544047335605346096176858493667723016174414463818674709825986066864599024582998883170939598627294202376373220259012730509467099919299109288171381726032413757601353709878302977787451333298342778475164542144758166570812728353927558788866676718812206444572146219764206585892275271858887213635303318598286228488098655631651627459092423933205026986083889084146724398049902473755567608079758213066184922057194079929376960088116169151092981365477788599588468719080356293968526776762870158009872362297684340127938929811547830142763811396277174140284879235987918574649360848823314107075769470264257876594154409192325638571470361410483020961330912597039945157040581485202086240327690446318766865446410565413727436893857444592604541467435798244809566731064042008607308540460897027419708710401235869956839185776075280444467525086720165115328794615911767384149256973977796129739840561474306346010368041754512821206327682565246999978436113794316911393641830458512006071690797790576723858846453102202476619490410025891405187875646345272679618606992167728959215824295368486695141739288738439755587796483592437978690823016599960997262432855306857681190217254015342937621210163376537096418443450675080519381249303168238934183340373503179258295699395261092949501152772868771549431831450642824854625909933284487140407879544520305042299565491554108159248596611259474536581200103778955675429358553779612811223702488126125086163161989163045264063906361707770832879646899033840335295440012139554569102052231004254241512450849586972765461648678317051227822248996755241788992628891667952194540325994348053379130562062000675312938942674949002483583320217439475247632477884051192026816066049433632553880811417480053622931512999023833714517218238085157461562199189104604247694083795137081168091597060986886299322209614878036612128130145350162520937577332870369850237527433642573261453206033293446336725282828465752089227596483777982212532036202292485877062725312575417039281505676140338321765032796145034357185706797550967505017693138117306278603632192023422708863061790109262904708570974151462727988150684073730167556215431332723773575906522318709498906286649235792650584383660280968354119036926197204558110458926391844712704938930690622824531500852256036221997224808143593376408383835582111062440529372418512673232210583610766183046912459218136631148373209602366107963708959940913696717922773237123824281951031518089633560452883721417759284766825123067971722472110732039129598355290136626359484946065129926466818346188826269107182911004825253243847883226766010498284607420248568795976584301919125464362523113905632076455016507989510762107961282717383076823129247118230621739898257974928801164436706782731347209607388901936328762152697705260735970403055129420617384938088820701099395882528948657193375704750367112271724965966102254872909292406418452378674208828556458443692188057232615421677730250622473619465359051989878312849155315217628578168132399011173293388158208448350846916915108501643151849208725988180850421877432691013956149613260005319132961044040707142696658569030094396496463840528008971092909594199776221551189347864900306995397691270419827978630863101788795808502322254067361579513574854897864965238587942489405525989551801070545528161232336465317654058016060759735398011303988812741541175048186516743747409081521713331491034199897208265323267403405894591600538230355971997760223217301670456322551938856156506323822646657984196521111936662935446357849529676737861600835275008413950283991825930751635501064076471963543975515297503010841981250021958599145384327778439123091454432289864706364322346133110828168856372705173811005472646580240615571298754376579713833205523418213263261453105784515934907869045061453261148464172615588880294056073488981655761203928021872028072143325021957660880900683709001785325787144345540368162528039528722316071127088515820469579353536684859068757198831986930698518221058571138400286475237221035006375697974525255722786235372005200854551280299794028426238774762043804420535358154167693206982475867656582745720051269638904140767207394633476335314181964474894472671300672998513315222079898161284783105817742851794442185974081178844935948540422806798237983579435965314795069063214215319203617277181169663971820720872291749507917234687240444186036169337319738808830725365099117994076391092092072514179227134333309963019869519372378222622508395606445239211384689356689676720561121357700835800280881210287143535787098861501398492441678653413039555795265951180472846990631619894864831418665015075652774716215360728230041812876002776734363488917477425895591496751202094247248030762306537474639505492595395326094461857772844031256846865363921321092918605309784823122655444285385083018839652021318997497523514625093145030494350281050909606006199662805195621223394019780932836391329911822921985593608667150502741792012206131315171648219385070049277914433140791765046947623239407595830669104708226391719610314522891878574802478975294061349340211659894966769003427691764666325894302073393519235173352295739795033133852952240325695959524343848415696369903150813316591269480705487529390423323738335134371575791594071074838122839900648735387863108456875805629079851180231827580410750238665762956391924825260871860356960876409740355207370661114315040360801015291599854032778802151733450066087972708613386698713560015211455303925237707069534904388715085196147050210270532264094799799659844391724474195494562286345496561055035888069984642963386905298388849375705013939544111641894218313097353127807331699474826961199462132542875874018575407873740799937457171752902549132565440435875275170086346537105334765046382958966358235783528671700236633162994202076709170008177216025901848196054052820483507172310215114730877075562137403731507514515875045091933719571463251298568376835897498107639337178812192611486929116252272851943967169774405683060448976967135923704602242849159137395619567176936089142889547341073917321450199799372658361133918343025346166800049185828689834028922791976009292929679633936363162861667680220622592997732743983313156433680851978426456838682495751593210509948534269060617072169805843992614752898665651418864650403973434097102702582620835206762941619858877111400778506513477736053636848065661353250303691622451344031759438997637896273493591477380920145930240707747580267370034611049130251099795529384472422281112445578713630922771080387918526129901607346647542630535076632192930258041197660898323155415160739285036278341193911033668891921580606087737967909826987854364584712595215121916681952954290321770770186272358001198520639016371562199533895992426427299908584266813075944469258753501060769333923649397001158983881289161423505252272744526557874509789226876002013338277306858445813092532756100549320163346947789542429424572416366780411612088919450371115968356835605392249502041345290050979659468569964304607971557974329379898372002733441927409771345591651663350438738653055364200040150554780142846162321865736198657942749805710400641432205880439378810699841977029654391436923237446037155406646905377223384715742689303379016602392358645064746732200196133194194233591886366056089600920411402551280524164189249789265313410709612988019131921873303219432766372786687013167488562430701978065813849948598093845539002726392989647136022570276891196264122660624902109605749985886023351619006634947858457471476498262209082596404296574170447094932391769696871243578505449421424850498176543857845291288218514005717249307953219512062626226620537275137738796891903126828933536595749148927943240615142915656616383822158515673184964963728647236173704975100723162575168483107957330141385122335253398324806215774336346816929550091796175496042919842696442339475137689529248907166634811660886944755641459304005910944024463414030587227594358686764285857977985626356379424047551139643013720235228083366451023348495574469543542913312188916301226774240431693706234280157742072367289148981842263607091293994966932387475435483590678075402078902152927187716865754141982606991434418533909810288541478660027825472072714728043570479334469111778389666941461192813861620498957926491718611671556243458754591340969279921444476715147799548622484103345546021646452816778842914699950269878470875236136832499398126488703794263726859842897756568887748482736898305577987540939781102075197592933929255537839835816137641612961592253191500649753536639187050068599553893055365651681748257441641088076527880934106342049805068372003055652900094397180122017629547348306826067568391134658488100595182728393585997249588518241127213792109263360523885224797870188887124692283775701058157168983555056833937149803839454916872764962478460483169324510636340966503435729867651876476488361675069058361621004120245074937630579929396118864168301291015013150909503004271109820338284539786531402359268823866393783978621550185710311073645707985233010602124545446685485691528043866577472841346857782509268484459305271907963474106965779395834099316897190280410348500655819678471277657155392909382314776953414729466486878546414049324415368224752390021621530164945562005054426641306734619974886259071199537584405636486116480185239861881900116769396484305422971779157864726321737348662789521349105785027592489343043255892856651837521889591070785130140374892044289758361344404710741490543533767132551003072286238676782587331102587528273344455549568037280804158095210402942098810215702500073451923556966124707256516112966797344738463326188020516132204170637229730730314539949569573121010557827451314424670650969037194612564464219686735027770046394495868139172779403555007773060408775179101445216757521791162410332010460326157736105747983066856676227595953163358023186772589220713226891089879741721589024100462847772406773441884341322030547605454066324374505984462406773868565697237679659265398839936898511169269257104366007735417019706727692282097800933130231906955270330696796137200932447021088069198551656973426272901647117790312611637085616468175746279443437776838526475004455782113099824910546285056804481672084724076125505747406569864911434719131607552162681479919144123088472298630598843155150798604062318674823414283732582788613514836266400229510232295299097522630663748559706271721011110567277171274825090052852490329030059806094864718810062268548196533661866927791273833092224587002507486280905977852210948073145664588689971467124206559463539863996009154866573564497302002018431966063943379827110017320132075526282619108333203612166185403925814899329416224953648729703346769076639045943484165533679252136060352648832292447483728365634278949312350658089233095126829764569138140640452282384005216576409970068072808604167438034760180641420091419977997325072040713376578140738739707013180690339009965634857904877044422092526568367485981181713268008391990915607328718605789980950697830178411018683121968407483147667229370834676653368738471138930134128993604371308405624797901296159020414307199349336668500994287459779941495062444681153691446079572701239052084430418930991409134232861819094989763103289120486420428174457506740092520833216306641820868248121985028460210654531480670272665865257935552490632035114578900016262359536362033891843619880886535275847817585317522534650295258360406891090519149371850004292760418849232906904390868951837491426913218129087797736301747158201126507575690218294411582012141729824789530914939826878048774407410629328363764554351029035135499759397207723166562326425547737183242080027295419314057243988492985868788269247570719697880567531862201142313340018570272074779698379678463238361521211329857352352321243148819096409886201669058469422833440609728985963139115343191572292672852998041523301155552104334839062203539083230251590714399411951937887762466125694423650201761498997997049494678940230543849001762773397127884875693357326866909120200620554491311038399377845736301395971162676472846292783613265530282356656991582760020259308671843003457204998695800310174552562400979322378293989435884091815452014400022808910503110210604418891070481429648646302223957571684458675793230619500298423137412396240727696335071867824877260462123823124188399760086974161590488611281026309837538223417104109218570007104060913250692355490060256743658784922400163990121737171446264662589411769630786181394636148075126527314559618765333005367043084482253707976976105302831728138077070513255051435412974634055736720414124088651364324232495612457548587657375619496471420531632648856226428235582328988834280211854599713711566207708414949155476673380594268178176524673886789122961891133213721758765024242057396519602776937145303990990840230894384910677451586203593829788199407448626846390986466984814694629043609009397453763193920538868852727842301485968487266249994123691191696435904385181806872635588370695909092768774617402976995461643238120658649112637952409362117937276862553288066062204972247391100555829231289012425016126664489209558701480784947364587788016541068746222019910330056103605257376578904556710874477752096402583612557930082650316551145680439935318341705335591834560530824114106396495488196866415737688832166552461197324903594239434543979195982141910665539599528220898516777046572241359965938795864796352364642748503847367695964955523619937918213935608174863896893960135641216444538140015138999990197391363098300253110695167129802450458044796194249245125253251435957652235633158500841741497063663048273543510347058717168904864832557737791489524267324793086110431007770910608212368456999156002282595920666450945770407317398453414283041587350485013996782176420122985898272129226480411667031074083467707007774202510499761328922861054208286913828575794835895455569090625957118649002082051612771757953719368988476092571379275754672996284453882796277939900495378264223290465208986686277298526646983353462924985313739210709732335220216689613300112341771780977085128141771980466406216010233284880939506481019116140928957108363796757390472433252570499705463233222676397039280419917851205571416051532393162284625434960803136046467310840620955782974602853102020448832047574663759282557025844294227861469140483314068702005469946984071612154771617591924164294087910081725598503692935264895889095353743320994343631810395697308761919405550661127360271379103004657866766578914424677697633436401527118380304944963589805420481472291886560414450056621019086190289490753644650312843573692524770921831569355262598991522721862776138912357340781839480438763838240900956046567463894795439553344842590856835883650175922806234087276115193426484254948411315356331689656385429155915868423742256803984477961764218285974744417013234288694087558968258776859858646891951135012852358448592714231936184729973240610776547514719727970738253774665138872055506251537735530363000708593610073216707215524013915924264124510645269554227649591536827164266159168378703596043514644574987014337224221978968381963939201926090828731834204779953918464161899034720876377801217344413536324678976529035280943956497428997166436213771070974453862826108004899151257743580499769243566701119717359790557051843071094541666221005301596921764483293031416050045260892276379439098534594697803862115496740097431925563757324943802591753186370453637737764999346162199765725531312098959130314403674442000294529094995251547495459336680633622874401746457697584027135669905006492492504406769957986335784493616892963206615428513594009927841385016644378586266638109165176442071243933941407632549451253089106271384490727196323968541555106905252923990997118629324760681138512646018194061547488040053441505543421471662345867163925440779580435892640553559727312337926627053207449485506993159340875951308149015842284133396362856581890882648775219241527669782112013579388918492961481895773927491893062397319219540069163549099137237394311374019098099096612410045908326615185067068009146181091273837425388124728566921184127210606613243266765855400072589349732155459861067743678944970569178631920417390447217787996666386949457715222913120239799442558447178029574912769985470175224174682408498491162983978206793640553051755007799726926147514663431326966391737304104544407947354471329739055146283424033664725850479874136281281505594082264111931495366153672968219037382108016241125431415424263678941590280017106242564341870275037080916659853827105441157317785601679276971512892870489866262046018451843644850459067968701777459041379713883766008219413767327347255582808415191832812442298476498383102629919319878614224324035195284354042247029192312925264552931615824844247722997485233360668813697169340595011727779486338270970276122998249040198097986970661657543165983869975180272676839275071349342108199995260386139367384999566940103968605491949671862476744872900191724955768574721541888078812559191985591209654751888476519654869205591470579544747014067094894748118047671130027151941514160899192525006698705336183197606452841853626544995626824331836853453110333205113593742677176833317805115101948619978133822251337957888556020445952684114134684028566183511494175622331666350264298261522388610823410240569473577645474996675334294981826010158847808001284052409688664092353944863957745594380719911861431591278718301999664154261356175084736961089504643306515958541277642285372131610425173476528927921071454404379939139734088174699077970445930917111090628621493528974652126191574170153014222302496540096234735174711024173966093983240062937350371202524097061275709346920388853006016821682561278677914723551838634354129015442064170208230665398995115136314984760852866597488201701343443089977876155395766033501937440731808111667022228593347218694789622026439836867750688526727545683273291483289220536704501414690104213426030436672185031805772888916672652230539613053499467540794211857782157502845572851548746628095605455925849422147717723319822052010275717394587207997809556949770990709756402136683698141124775415382954292984755661438985708472476841747077831755287513732527762115079878716965929655115372865681405430237202956820378420716436468033515759639720629895017811145894126248306091924976425757757263933812151107133256580987615565298676687563931236387416660701181009941032978615675264224331176982745235828178349527676358329881171480086096955230274358698757300748105238546891131549605218287672221386030920746973282271709154421545933702213981835085731707950313193875840976772857032631187312486002091112674072993796104693193420652231960423100565894451143955143342609040384144345709889465716779790338956845838949649168252419635413599436746735259557157420877213101969412530931098190807395748015057448119106682409915671612850559993949814804306317735751018174817272317556357785419042812923926121126540899943336027004167267168535744330214154460536040333829367838831084425968201934121319748176622020543279211208130262710334835697297555420372262614037846379189139544999148349519467723830124629753981448164141529493704253204472716813637867575088841946087574117185884080043977392960157235315207428879461464809258715803835767799291090942515134780197939732049117604363557754552130965125856963411394549097536752864819151637780055926938647431585389761088432448472900864784174741381202543983156007571614422390706480000387302387254326901761770429733252517874346039140377467924492099168479023803588978719411438506929573905084557641376380947802498220738040432088547469937192460268098087981464437715183423492102317208884970793850263309276911124110899454444915544280561953747627534649046044276654223061125880784965144331021604906025149824389756344337444598116616395476966064365291484443303105797795550191945690624214614162799823513189809497392189950956727886669585961003962029128847100790125146377315194751674354468526009212738682853631182910083571404302684629276105959353510621156319773474664831603164113742118673689689311340630484044796652516946043356714216066974784154633138402802434814834254030225498085915338674904723379537910987892792377820860728072570960274045472350263890620351397451734986841611080571294692888788175306003699399173299681099355543902235759352809998778825595815834590822079126978621694485947308271876289043130780039950395872460158144070367928512438153125605495419908528593617468807278692416509023661851255874038742892128133335061481920296683735803740766825240511701915676693416952937913963885130252992537531284996755187311360493502485356733704499192780264240963258113891044581542045460433575103039786702953835723719908705934338170929421509763003785801123186950500744885692635011379148198945683000198059802137692344683933618733243329470075140381161106370572708393296032684531504264980763450813416137423312046268523345028686711656987438632047250063903652697476428817677509197562956134102556341272830681701779081418395144817411366661973075861484742822826122598165559312033477424682650822913930086426647205017447211877257358101359633065340104426277344765586694411670166247882390771716964389495751354775955672392082015930796453998394892444448196496849398250892110681963550131186788963892475894247324695489367176185129059397641100606298820427412909149110086918995295599676612761129577620967015764867793108069603850644984014065573312934257589059255717262088304869012512431745556836296151770583165115656502264817270131246732949969539995133647380901457175526562813342401588575204758038973438394090288768706801218799301829194342029081776472682305121778412759882959824256089961823614784100519867879091722708218127872017827860566292667493860439071305458246614950510063262768872302451560308150593751829003576796795701632212858565104618906174492833140846581212714928507599789729104116295958474640582036935652476745722326615731358543503133551158452673407030532012796728598454927525673555020423735081442002086191858015710440549290627104755023957547182207321532130854834429746388070115362215669042172841159281153146568034181208921746923300338650849665540191096576745603775792528838052620210273147905078649984447046755425879143024293307190062964199772541920417674917589475864089206808954039859503821880645957603690574787372502257512125328377172951964361575627143638866209827882881240902885139792580283337207710590417204690970319518106999940481431528819171488639398264689663302889312653379494139038473507160555441292253560860009913998124449638145397958025872848215192697496980140632212951254822390445193624904663253521316414064624326690193365526571852888555987790075344354027961618809120734257257877688187759082560859972942661354107851127398584432003970496908188001577189992227764526692942764929104668402801526875457542298535000621680833412675194776921694677585241375180786126903628104791417661196958738209552046313325397793210569937539451275334491469971301731997824957986088137119111120738656105617648208653505041224031499312779527507712764748095104330335203336198646312249380609802458554891262805534921106008568983506748705085045515917290261752432881452541167716846007036431958384166871709725789982012913075343739395157767643581487132717488575203772534195329063159441544066398260051887039079108294221192729855397690168439609715112646459908506877882253135141960177876292983512979548706396121692110872509079964762737127876612370385517102748456966429710887408764531014877401376039132393127073354228944631378722753990472415713188164199867614821375479859638873983938724870659071749400407970745548382197247380004984802038399001095872604756229866249539723101356413269542451406277947733056396311633118463516857535515367141058067256309619544331795616103346131284445273543541042016094181285807914520101710554990709852997632341729908402122744791327989042016999798922897382968288242939458376428028008657450019227605994277875623061639456082228027232918480550586309525372265901821881789608796708612633705680610901007627574409075475041867328596953226842445388913436693065364459181796498210673485108939353223962009530513972802604050907689011894024246208480563275356147094702725982579309277757805239178870341773298344102595202228022419201661404915051673758230007366279681505124198778357574868820491720952098993104702417017785668893823983898334339331165802704426111113636632329525706422028927745072272160273756260382357939218892885253661143143031798715136848722386286016103115445353349047158503317262465600018973001645500400440915255305698507901127632495160015753358924502335823667515245103307829221498659132444475773945087416388674445037016371697311037904732626868980986435963891460602300636838957843018772111092729501482982875014960520313315792070809251406290957983851048577509007481370045389713317005014895806209613484182775416617511644487913319094041751121648171422086371810703605190097507834123566716490546500265289771830548915664797472850200217069656638863564392693047524630805382473761424741036920618523528574813676288643504633264513502274121163473348702808016007248635492667874340808244607024957033906430219775927603347492868437015223199156308032879395403342971805008627791275817901963540315809629525120777144990263052600648537076266407852995541184160020300377316604117775738029463848353637640111308009756346193446960532203097775719653805148040678946677067635099310697540496669350584138734445390097834463546038934922733069176891058591058483651901585810799390069850613161508251248736782290795422402818786364099772015166068762143172545969465506177245283112630221476109337476968874224994423950867339449390993849000002425565406608562518642580017564942412932940416906836524491935237957135551789318460405137348556307224953625790569993917642095386647956912118219583557904208226877721870797572672795401904370850019623227365387591485741034737660186713846401320574927631588471612870186635844340032141573882925049234436862516405555556706591571051087010105196410838293220964710575164453606573406488864747265293108806246891818395887025734211511748421407811853037554467849984530665805195938731512873690830695210747808537207419910310072217627264370686771548341404791001815024028115987503021048506608010836955014657099360253291706940594169545899435652560636164425577470662198935188716562902056199332347828148384728488797870108907281965390685961563767950922429946793121888649327242814252725069146977989616825911551146697141348471199443451315232705236615492607303749538458548456474584928473383776506168428146692986479705156699040546657155991267484470910472516229455329687115351338582128022439093680805188532115553725724563135139969812010371027163804562298409565378663157270386996414432679689319911150617799265142836667913571458038761451193927167374564197154981792630919704610170348160748645462734538078037187589840115701480186561589594494898058922516110388258335844511635654453010976444045760806060938884036741130036866894807517028952341374362327987996089593426539603899726604894454233492548411450490110529772552512572994928116799352546646981619805759594386660836424428881459048627712585106395116832673265558578383324228130786114799258213744057780227063235118030483772967822364167865955849503375183093754923121449834626077437906096494537039196997743204305407276292806497544803427390651948717518366621048926959790728092553302743605455835608893617232306189211294500346738566217277054573526155290607750277389234436610887284162697438265575849191163683780520584538259100434183457595324830127208589817257647751612954803505749406909586225797453213166086076214222821683483246358210524131164499660292763047615719737675890940283850641869646492765121467302747578696761719376036752929184917600890208019403783659370236832158929891447752512535722677437623657559710369470941361178659996608415469566124527799587201596230741615694116841502486455384021889912010347459669757012155126621974591452569045155256565911364143806772899039681328396096690431323948380256100234613143604875825068042803324333924383424523459015811704741690179128488745381980975681048426760666813208387315674922570801985530940976196831484070185632285836795038043281094138417994695100714133107731263165454593128582301424611654491899320036134876779632502010208628371758136234116475993049387682281033544147303236215105834062340779794352413165403889406620575616825016790969785334495129521869230091780229748730634218124892324720250011361877182142148212368537898235519446913327708906729561596253602576765152007668026341114051526770525704046153270910297850072349873192274836081713585818601985373051083283026588791542220078327516721544146424919367940827481280681215336384761796822583688732529797735916422892472264903511650680387336033707844695589572063946518311320845871426988445254798588092455154689875970035345123907861205355492458154961938190525713035417706578046931120582699223611362133340147412424145494103546457358068130864335909687727517779318847018588023553860636861545175741761616435058170272088004693649022138411864423733218945343275405822198405456889586757459558694501438905532369037595063968962669051663954525925697990045271961353675644867583320444024661648260917392249113596746892684303575808398708151443177301819895004709620013085473582020159022520467474835990507787995153173838577025493696571745337224644697368334308472501428316889017342795238872672624253669987421609754787752897728456343666252371450633937848790224630077395595780084807338266706861564361859759337532708357753291447915328401995954764030215877801855863184660317757965925589973554267333269335320748124413912136226167567592043138905368398315722578497062935421071345210554371709577901897081033660877084518108003370425622913121985822177449317627793195639464859103951930491779064472359300212127065535854505833239297599899273813013939822495183686736157613584481811160926064385238606695564273295036336012247700585217205073248313678349546087086810100280964023552381657729232690736159001228683645811960307134237708067212231913133176287467536899164116838971611867523234925523945289395448646557587091190678494446238952072649008748729847487682123391810697552241609267864285424831989616022548150023559956125473071756678684305244161431862557359616903735373745365746493002207008372735178112441795564818248484204865110316937252488074086948339191208955342976147005504076974586643128956157098050404110557450192600243962073246904236309925637314544724910584769620386297255939997428960006918418458549022297242818378852257251618146871260326861235629184027550986954420103770840064842292606271943562012304106987395510484181197607014841887686112309728092549714471576638762506650329048975335340130094038049618320775964461279521454228977194863869996459024087526669300677824992472623546125482222417096822232393889605678374313298986358865226158215922799308890780362993448572665937058223542652360257318671999485931641585599916366274553769719443204935435891383170045606240070791542767503141875482523255834284307041790992278594402681387513114000886379971479223830842820348315869168943025068156136347968004634515104237710685048941690331363544542107965321249241739893846040696033564203791767203095288254672164065686785665442870489490133673101613790918551018296865085408015477990715370139565903141725279154075795289241716651633271131854338878388848557349064121712109718414171537729574635514930227274864459165375742521973736889589053808964934024338800352504337753490570282422517657896963472804839583058889713785093913912317053689304510003359352595728218327199894817032005722411544996398031006785617442933403922204334005306256612116681552801817304866905509624971112416896378656061441777643523568337884446170020504319695135921375148988646430342364427162694954248373036027072826022327011871929497151387012761162197639781148521669976819250354741552451738364196835376376284053678520787356957190074826597241729371901685151654512152371908269513226168826003013516353359991683561460924012970378215100170294259554225527799684772038163066893840396583090878034325243907742388879005134249930240498254162097447933365652394986897943340000822294185125937578326893468211821272465119119899463698403573495637729141087591956360850908652841674657345491923900526601712746782638078582837054857359076981624763085013963431499686802047084686068756172827793446826306939498400757081040060580315028591282711060473644880970832981309395975670726159528252391109154505258820321218033421881893104405194990623589714813651794263538121883551882638069679580647358530068454576240651482121597337069850693274477090606746767116552827205389417958809294664881065063881800100828979164711196787100695618879951195408189343780310844107417190934256719632231131376868449585560319905013464395961934297917758674560586502865023551091366587488827497401283922991574719228738245514370344819790382775417729791800371863233792582903895784310849321678935028654898427126103230544600466817066276941064535254204501471950397691006968483729916457161052955238128818804160146842190254015820998341323497620711171765198645427724538339263444447056653322593560820417888667502595788392520706167277401913170379232246143969283947809844898144660266405420497675773334761172284648883963757953002067511841282005423974568175590698980101632183703634885342156543916837454439159879754186014280413182336931352152076295881055849025617112374458266051608553890452254191237192093433009561467080250859444104328932226749747013176632959396399463821091993446166661980203742329433014431078074437336523316474987708382364795120796192294620499837972024971136829576180140557475264155261006020850450184315945751797062121689085731369841812469494962240994314515342254209526822213594436492254783964307142226178617313297529179547832426028217902532491958745172291675580993278864983910908576509416882266552923008448887989480029859791580474817382726203873338349417620568092427581885519943455656173764814852244361442935448200233049481195539239559113873890919349830423178941726425423546489044045238676529228657576805784609103584961854069446282106284562658717661550909079773369698883531852689716804735032911545622998780488466989406080154527515025680468545107782964035490345448839620189626594800411700613312770059426306206170841388241094171832581353546976311222846103973329677240121359179898007432437687383797142303254088874074191394334317841155821375660682270593105286383988335385650498194461992350723604039618629246566428995674885696270103222754442883224614974426436243353572039079326636760006106473087570449871280278500153159485617079206553420718366190745534980726535064593847452953608563132850324935489089804132347923204371124300901338207042003779169173334803640800247745070060873669820983950599037858828811769712803748209950157022651920286901631360741819293291739168457646445000251514795288748429597315870840429723817887943799032667685195295277233944951308941536689257764776760089605537378019713631442305345175161461939949746800067727115780780822594736172923689824566582495733073213172931566539804738224525508621318056853986810445655407638285632253624426434574423772331814925799412478191297281694096482935951270308368313107269829504713520371246423107208670182225213149750290677206190501689425234922115027717498086377832800732704717044053819133162053300714186304240113063384490158005866078682261967146161522299487571656089458802960398384881304671380251993315306542973200775470921955026780043044111190909440896763096027405068331638643012067505799029811157773750062919401141645418278280029787767728723230921302546664030415376423983742025221633132657937835109877768989744541149319513317003076883976158829889742051648405885754056399708885245523969821966084164794204992514269139711854927967021272201649170798291817542950764069142784619837716643106945490070042307414397816754421059315766675091255693599878786642079001694962729273353987502397093307601048289872218091862389125620447823577573355040263488756494503463303877482116825595991770538389121174147388771740165070072442110721385371837778524845453567651062885590474140738231677483615149917357106236509099830409016382543448898526919478782798279878805777919891463888610500990573709722421152105203812387502761014360493623995602240423270130182280329956149178199195589338039739851437574588565711669341284805627830828857430446679854552913290745574879891409676750925550247950680931088301011764920706362880628309247339295685990619164998519694725672600968332072113132625331758604112306659740810595510551104704473748588198394642641841659457478216427131198590178650087155567752046531367102861772594842947133509768223735450744846204107402639860875601439993828786440194895150730376099957253695580000342728538329081409612317897138126823467406841668134312951813220291808439653561994480232950376036911975528557074681507341118764932453920708774253352863153091643640264168802263732880177890811713831004309599021568033382720724390391101208796432962025914961917986051921265478009192986282673939859466564932328081778684482608815076569448683158202393729971016019098885444340666116627280637184535635872553353791648467340322117943375964637518621147362351606578181762499356206047805188655207011980919242862873092110945313118217017973751304870405100170149188672417874427879008432169786247415148422337659084638525977213728162468348234773710519080446124111918597883801783032670481311583440910344595685832917868800413811167385826581670639199871258276206513066660117103796887656054904647855164837617921043806235381533609184457092015183099433049129326792618552822778416770568897216287714718141726646453559150124770357275194919445550927746735811065603428647345053397752490411519958391710089421317289593430990257437419174562162378210408018704397817999060284125587598482663317300170141062925971571270560421661252845801969053061892309739883341971706630042330971032981265967653230367748743709805981293299017400659012992648498578945889638637209755623352494825582764534120343558576197646414210588502065348483511801655600939613367784781047455600625036648225695662254667365222488935081044930805661110203282913174164890294446252216004066501709116719465455398024122874473128076745566647144472746547690041374737198904418751911197167633127467752799281552447893867504805651031400245660699820871019870604164557732447523749103384334528027790116865643093129726693426923185020908529169467099321428509184616555188409792176412135919577297536982495772464318969710143369038606085729679620432822067414930442715334221681389142800809593424023482259026770160256336196968709961581570450949422592399533287187239298137530969830510538778753282856257624663652586060927582342410887411942546541571840543376648640100121965293600003425664374980543574199505039538751804643029237380015316702098137561081761819264725705285627710879747549846288487704136547232496523236926453021464077125920901973362827575737423433045791418264276072557617947762121387681119951019378662203146219628255734954490971181940254002949742709605790832900581106221217750272133541264465011888794752584365427307415160292689136239089557184136634351891358855018752954646424193612899885213733236130951398021347952813109576430796590201523172021741275136542078793672651333173569846650046663704182007724977580782367090185901354418073747743882369471529982805582327227439984793760857076718295016704501782851685779137049059828914558560971093889811152306505335229370208996767834239355593042865098673318491355124710990680857572382206872765343845756649381238703633840625844197021502576492077914072252516881962259189710838535240207550595255386480543802478042152676293886870036291050534968022201419399473670133154437284178923471094619516595824271301032342065389469898655064564719543024814029530884421769679721184224403272468400004380011417348252499015131793515226119358562116248746247948258611634818777931778339202584827164881427097827331732143545420954659572197233502479447948648718585960915131631961306722962879921867044818537706148392616628247137399612949930909802107729663236303462481712371911548922898666304420430999860650598360110055643366591002094077555188255087627157222572725583793932749953991031462470336836386451067127554172134324757270675723178149838740596053287885602570379299142579556796996962858077128569748743054638685459355405543237133585055431174256857100682591316576784631895889676203055216724006794006704541202045055026654710440038222485564682585851918006297350147101833656172643582775583342760154236437195352358847700326051228854308143253935592734719807102262474109951797040375201400840916162654635066114991466274943828867435201104400408132972191833231990123678527179806531804554964524837572096089148154862831964109113369810405053479925888117566262093549414704141969835609498949576705102375213201498768535277484375812255608322524212693138535593597999605744223333755507235005338637685656732035718153378165594244673212079849419803375637135972451362416173213532395124172493341534568906378496542950230356693694786544258975513616292786455013276858565053274147453083562866364085138011132649678813532163144389203228114249855209598361826889017793947310294530941032814900788371073007808865992489525737090315701881807712525832286243816348252304198816947780643855488681869863837976749886259281313778098326561033295018521292432097412275902664458721313689126453819363482975796775553552735532360628746227933075449667094556292135685667901972650065968060431889208565631528253353876944994309186759165526522023095940021474147595943614777050316823968273997464670606940046956714361781122751532022628225140560007247342181433266686166638182563873922029886063422565428464631094557666544470559805240200370067743725666098076865542157347453127989924663916095261461678972843733848362831946659781379357993506507752479038065767119234778800910154145840814145268322197217755015776358070207590491114115602635196554420222955712606372283499964326009294137145768014938895086228410317379606626692068299123275948490723869787824213429425576491875088034516529555669958556009749291058359449161490166995291132673306669516209348745705033379343336690369274478237692966151844684171306137248174376165946361581477294296203303538423619631300048144679924262631646846881979858967897355573458917233129473147712843665806918938938149325721015614777349628859935134284601939058497101588037451395042199622936641925922537318577688515356323205800684038439091868033746815107052107149369420684619552717605748950189063980738586796316634061972051059824494706088022192495614770272606811616921069578065816246153160456117051413777060802017528178898127023782434476221575423429600095979760691092671717621242624757245664712120267882913721619215725541217456151429160232884511383299653566947442184815136836287487899450233275610097726039140961535342992656659579431618695385010708592220528839261835715671491168133153601201224954849870589982130355163815951430955108231546651791512863219178805948870958160906636774827900166643189469024917695947141195869480614660232538248635067754336944936992274731056297136026161780473989264620722275135782033512307424564362399977596218648652106441965730593620024543864014618511697652106881373409804622071575245331159870642657619017121934388807132062436557256900773354045459895563338288167393352832932105861984389266006607963098603827136535004761271572864268042914629832758578215598785327868608129807044990841700345530809547933414076033487472402624168864254062812080118810835178876042783908977105992422870404051800059800508747889929819844682582332486732099625280874631475125970035181499979032378034338994149813504049512896271010807328247389677282697586371219189511825105826253162714618943976643906726179250369959518081353185017566536492523074716276173209536304144216834058531366907856795951702500062519901791729908112356815419395567751616988008125460858475259898835858238889512891366961494547487961715225026437250422458200506110096804966000671470632223024824636409937483421027760761926596623422458182223064818111185397450008896608604396716888246622267334996347311065365370076018533779458439635916529739335115642517756216374547486358909521354489719355398712825994508745909406801414661864634766059368471336642255510877101858359638602531862512214522660852581318807413691611695476108353246428064044440649418610150468528628000233909246881290965761489604169433669056892846822316536366801259117250060973742826443247942526524914046752882864845333828653979507196687317642308018594041387589679005643768570248967319543035180904081642441596903155443881982120186448457496302571659520170165829160736136458616384361023648335232229951252873314430318569244769539048175895154198104673816611609045736243299591810999837055385275871786799009500330628957001290067520034345527073551538918829524747603525764699955002625689299356636552321039802236398759190972871834317021174257654738258929518338440685410549933525027207994010841158050877157078531867826183198647681857030375472428389825620036504837476597054300517644500553575464586831938668092420436715701781180671287550208050179611730413529333336802966876035414475597263122246042072852325446918657043213520960872543017905110967353051782267361627734556502992444790522964665909895233434626183887975345407725203632528738602766086769617145190797778044914677311409682206090116445866061358571331893800291752978253410009424359625195427603646971571919103272708692360071312184051417091488364306132687266755568530265324077087827200425719470012470928193352813332156537663187593177283362255127910258973569245283266974987432567129013440226890444884980903862602024511660505781121680460254116581521682148662857740287145438623803348543398664760965600375438339119686769416414496443017518446238886965124340576991475391860884909174254821641850176770138864104789653942766552145045963878406685784877139822210852136057697881079299885982911479335950381080815073335397494370204958452341144579073623430026518930987681268443680610200993655209241017178254667553035153896838878089680054255716167161632486292991866784630381152165411791408316088241868400583295673532436567986476373994840772820500959133395954456056850131980671828673265704720225839617819829926895992620884871283755447679522122645204606962218294980784741905980997852515175664968960251000548928456569507360227906050832617377129001574884058592355643431397587560983899905924753666695376742552702695305704393072618742901758265674710430719094590855076447641689301657897085162992437434860133645461275856528798691918530984197421386554985649856957895700856933118809877233542001892396342610113288556515943408548348281764940281457852857789474093417010497487762273602573240669907798283412506940198476446822499522649772964538293243199512760345029841825709560243435448972024103259165990973992897711006038010142121438260688629104501026877012770846769193585637408014611712490615609070078893070489159967083870616002802190408294580759723343772942830496077632925933057344844511454878249977708441793733338707909971106455507251365105016582814885644481389803084586541024150878524075112714100544582170634262124910257146901398348060374950085791045212485074218728809052495663304575513160375024983228529530391683091992763211923403105265286475116858322472330583112534243355025799464590005488419205943108206802866728005212290046553326536891776705468859758168169587270622590645906305743818959146457828848458891480539220849291968314914795141212187800335601264032197991229520038391740259842857807068575950701744393384190576460809054194377230346348112760430317262580414737353935688586083540757992717932919585058947375712378739885775203499274320192463606620922707958606344821238771896639106268388025934735067527903387817459344006408911379570256400283120434215421638196566491486599156378020380331581952070483245840760782983728570222337666729836952416728099045715036024704491474901123056480661783387250695135684212453165147186947429077371052603127353862120898192178170260252393202571708866562794036192506270112331500417447392796647931718469783756683315972485068929392337572394368615243958366442928672628934141125312585147327952277480135046509357498830764734258531526688509704639009994381014871897443849688566899970860439214348619462763233313698003758645871955877252346806851336613577900918490883170324890289544561835200629455463556831175922388366753788514921730828200223683627133199469044314335833211133530750052264885477946783214031929995017235124380087007404932913386924210464227332442556643828279424286266997805750772318439506686967873510057796154755510952298782706437080447017905823790714088048447875274316441588354366418618629757652753034590479146237071862151610642575679650179167897952640323825581213164499921326743227919441630724472289310370673266449394196522843748540802317771878472142851237856919223944547312580136155076843125100395278837027499012381343752374627159244742754851031127354963798168413527360217542912059297266918945393178159397653485004346250591986741579016477039096330440427998872396450775247648893089090267913681259474779365012277280004867433455370705003739724494311433105385649507362708614103293066235962675102778641780347480697357810919045670938732287575099684743700211943356891393848490596928943562340196049679216784564470213447077866048922366181774628330887642596072125206431525188362936864980861651974063112641289165992842747152783590426068085289231422696144560539320785382706401551711159837001642180419557897399607830418899178399907539601335348271349170160557362425515454343742400890224088421891877123485059582250770800838007375032727130806069089627170111311991589488154014477917642198248496545625277964386933683175073559439460103686211352106654391110787695852503024231912977920446142169366173453505560430142209486875885127526479403941184321272830024800514605072586449941620197772716606130910835157205672536815267065676446638073008853670175435082464004892898848953424700544030001089133807315893493874852720699707554652830074476273379352046147673475580142321930548945473070358270905053299020142925341522353920397858347700386825668169003168590506088213220425019213365072945810271581811331779755662127000841754952310047066682689651273978330781656494724163549375255718319977735008975878265106319865847392458756260443048833904296745639376309033210680628847972436560558743332438535845071349971573188665290314777534841307697194003823772822907859255054664174741292247139973621540745272605053392737745031607761323827378876685649972723647987569384938947729197379758738741784782964109337768255726062238117816595195080048271356801717259811448216287811286129357646110390374136140919431851715778886530966027146571354380308408399187626149262101230533057643960998298972021766973776922456873725075812978353171870038614399945170874559343389594112011199850381847040933562140932235855337059454971330065529905079250831953043206193379719891011127761218097446613241634753431875750791423156535422701543647853370903137820254912839751836284482143176201949126962918714277325097738298166149496435485578695758812473898106048349375842325681534921700717498108759859744556120298337361330094974407541597669006198883150635778595738282034564722451611332089179159841121011519325516200102178829617483834214175322992488450840418588622850132426865388513634241735048525625040788961302374905880002209579875335046698814613595914062561064590902723414631991383486361564238899368101610644772905753059136710821330137116446663943007180720616942049514542345616126266385732002646130268288222633563158271204882676339166660953114796278280180809286422096188068045922497022355313867764053928331073312679675911249467546305206610966055401385833301388345388742779774155406471024008096347439070952201888819012356643552801068607090731586908955116917344864547295834592414214269083882633933303999754998509256209651526847656700283920486022773475528581742313837611383373920098155869419782400688371502447480918141548784643103939459940757621907243140593880539119270877339934174702841802405944637698674952704984293014897413279168057392414699199673379990800259710145113613592020537818678477765652998596750883887510632296961705174271392776413758053073254469939279651606781228269747398784364718296856705590567662583193188490228599179240252888490104441464309861075221251118112054182118165039752614342731254003300495496996687806401040505388315811893778282542763355145342109373710718188926502453072684318435608910510922914997153915074467122457873937696761078379328045828940900225877490398379723578532040726401360836835419951182410299337901500425170114280960735896060042136334523184776563835758327552121151899883368838912133839243626908490636782894825587236101652105144730125562051737812010374054683614330823002143047506201078688333167316396592155653102880166485542508065584747062747288738947455427690639966720637924668144976900353273810871837124265265193902352476862866228703873115864640558323017893643227437104910215284245220114390867930477154505425062817321355905794676894884849624263952088371152289359152152487336023546893495987339649018964386981542436539545901693528694964392192197953871173993799111774394432168264506554044109538769818347514161670300098331181628402940050020895911780574484048786161913787985747268929325031033691887533941768335519248487716911238905850724624046669242004188345630810876868791758545455500878491557925921781027884044158191956824741944928473407419120256234221187094227202482692693257340491966160979587272314872866416183272571392463859870423527407945879249776081318259534534185994452202736513736968592993393548508404624029297195749814611139120807571109935190224263834740626083770569459984923719077464565107234612174216902117365148078306161912022267266485360061078939381904208026213387566015817951763617101169137838252440318196931061247366079738143062741327779876538110994085548589983778644040206341715902300726657604321429904252421070496225881831607223448862680968712738639096436164183700690554335741660318841083730602783802417601498083213345395858712034476859238384576585237876076639864244451631977330845693768890259203611005375859761949626351096827307875426192171006898915644863129260033599283995455384866917079221491591569408817466494581043543135446076490478111632478291457046822143704166999692182915999039040891847080662862323156580688800118349695569219845377263387011455016391142033505666946609575293733125809997809186344489195042961255587974898579770724760576669446598852310421169801948654391533696069716350880919213483098116000786925909811103548587824800818143414512080856033512947288050360643206514223802508602226041775719669149247179724832813588777516030321457515437738792602816474193382241003018882627350194840542503970589243222184259689162165237166269686694025907926333711286593181816843532387303199432168224522772292298733461589488948937270184038452236629284594872368175028878068340906603289195187035169116927493444558960539393000752897023056253159703092796941674307921066533657450124598826076380095919804167615513837739019693060517776951158161578607107324023842978455420314173652024999655344315264650006113587917065464849165768994492176418607591275317636270274800559903400666990014785560771824285274086560536649798127878189216877386313681530543574666821710335234308498279238084201411931528435455661946188260811768719341531324997222417306263198892019611968880940154019870269762479212380699895888165962818437168158526924708559180596135879272737515688998908160183756740933920726960356839813481007576715418507095542965202782634278253653983653640280266084219095618787503791273962722595383274453574256815000123607220694782400648357209064432432349204547652704630766776508937667125392033612841256606466763922608702374136097521061335138003339510289638297027026658065337105428464591702828287941288395730753880567558621834336846851442002520790642718932505089152425813000545031134512526053531291553275762136165140320386307747745310593197523686897581198040875085353905711797526809207982712607826788561474271649448821865193669310982770440881654025181299033914361919470390839010294186567794319059817640682218687471193311473873444749091239788597419429873468570375703104686013691954640461531929813945414261740506924271578788878141236311565580992893913472473278951374408438403777746841599595888178775481452978668471577880608901060178604248735473666923452433794572989108958489942040147668516945574397396112092452118491996235175098890420372084505743821671662475550070898741395953349527758222480764653383980250508555086032052715828828567575514747297847316228541691308074931493222623797316529132506162308523273102118968933167950393695424846874002877164371839915833827264105480758153411229324173856968608979669118522688824690383439974415774932405665182568876654634594872162189360800586714207944891757646713254259793428780769077859286828290743419529883609699198169558734627589622240426335984026465017301329692202707961727829974634648901522810350531006638760070179794074085060628129862903937007599396222476349484768740843819315509758511979801068652903599215292573666599281356204555909053395179780214714791485779649530754668905076776943712492377523044766646896239478324906978029729122885464814131286973492135602419256651101607863706836048392600244038029242915446026016434442896013067051386432639652654240808546972949938532995233134009020683218335201507301172991406243224405081539905456349217993185648294136903336131415086994418731559957960140194199958568592163297628703479102105645403010654132807381036811644005078905574846189436199731025552691121199478599163500843367566349206199518484031422581671491974613363936534282218949685374765139489644627176331625891074352530325577476848591146105844325154096807337002798396739700142320024187196834660611144490086034632399937444854764126288475490876892005833508148029737167595163622578176343130553684209154129188751153971655558062301868240696374639213582532683929492927076214467972117366836668276351879976653030422569212324646778250326823251330823494439236976465925378840870528353863869302890621700663784167208101646416319750650373860742332670268912937653429046504315386612540913653900002430053380175761940259822254792533384695563090910183808974833550085409927088207920236442678840567671298158632915992804653710222725206111001309002192789293077642539654226648120511514253360129686598546041648961257861343874377957857456773365115699590191469033777379282457124329510774524765317272356168916250888202939948794632178908211513881085801881416986978154271808524960072778477761604954767996598190796424759355028529921072537143157187202807277538482275108646476790618515923375066605740351025225392074714456032500303220895206520368579402633223388576235802651053197570522546575445160047505741788253788196960396294153918891467048109894125578728661838588716799710903054981790798170809869281999134212882866801400162701753696971761731290333265078644115988879444369838047104529339696352051011057115068207808830363524847696332721994460652502921663549941736396887745616709108101103782766716681887047876698433769858122067039137819153256409018597625126893579282167397379929749606202432018943816187811698346038089502932050999048965363061319122052732417742901353451948198268515456989500613677256254498559802599255182770809639773450273695988841062149019451611522750175870363813985240964930398605431960729884690724450092101331582259091588573422484982173978291939585549422273872667374575690088893169487125706876038062915923541851720323201305414389808158317119825997509067372074099789830264730607447806446623953450914259072537669653147759558079538991807690670388447199925790968837806672502916469563405065364699901280235334127625962754881460874075314156822073857916012580339516542571062672197718627075396769373309852340690010874312453966230774502802304520624396412861004111617383920518104609956004494494766486258787880193821993184703088332851011039531640566602836615491908334077354645632411919196279600896476089469857301972476673705366184706890829539514725765548804230694075841636438451942832761253899854726044080338524083401101820245969256950109449653466724595400914710793068583803080221920810198903495627179455523123164205189884803270490705650202193710492590190412822053508690093787792791438322199564293318160487984729506687391472465365451636000341577186999327479341041116809499702171286978143204759134321992777309937294314487833966362667101841422068216772723513325187533556553569233746979847918903885451069541505351676704878755751159392287401004793197067130301348974467158837378530242550037537519630871310802614024818135078862112337137841492940531890320806726941697420672315485133887669424280824689141440796301343207964321071777208378308393272668856755280231364393181851101591066000340366301338578080521509828459948059236446080170004853107860778375085289146193740962597474514697634416955904223406785199505308114616771243488696153078257879154024388216894277412498119660249190685719649074219117896816087937769692584640784849492370675335256704826366923827858197812549996865019882545864217671860996214270019527669867872378577229099032521143165524195781263975297850754175760375513705352064552041778902334396683295119269067546619178551244132651994694190630258928564147981706702038908510352696360816997691816333509317600326670261392628776731298565440017580395844221837885435596158569190299042671164587285517262972186014475716072124143632912714059650814281493587749096897107440668742897464563124163198892546444685656390963349824862766887377951502434676520311628435814389929882392452589668326493889523560700904013262040092269082403806154118053463040493060357069708966359660376882863525700433016408312374422243315079817650238782139995287152799997865582374342422493065013140496297887050349810423352022553278869250172315998704825065697982527787416302199436373537740709849624680800793804059838257636032851129387170045864057064529284639980303014920545487429512012881629872373391625415024493813888462715357584883960592933910695120129798676479188974706751287352623581865779906841553341892867416338663469648132052822477440884678143704376240001001788417926527522074021710723004713471449756037566093068188912251678952903417693184361713732843145381039377427503717721559883190766548861114780307236452004169238195885950214303406460252241818562608398556660030516178615983910361504077226336391156015036028123882208049771278221591009176734731886326654495128804397659566219350477588634469214951504762278428361170154317539825009303531360416627114716640481644739248849312971684650103723911271964354326843189148822458503853135318190529311842853047955905279441770797661845134417774494382008317117759811029150046162178602636660702370303463238461564585056878776603228948490453381584843114438120436166870121766491061729877495333638422889010236222720845971649676956144093435751439914421109637824209749172208344436960949272375031217590941592325370439471186475053156485429517370736793945074471664342518934701973799141779263350960554181386750808802299790477120005054192646132817896146049405588577163110959929346085614869042485445114335562380021073411535141219208292734775307199419611294830015338117823707798053883242033703294968396801650900533150708344896021411889289241570156530715097536261460812121994887447021328445705837129197220148173892210987997439121491966909110561642811080493523594049567231889238665787628753225443418090518383721783263369875924952083066142618733196177477626195324779638844433432026128084181494083979610187409655668108531339681841182872598949084058053557789982123678797475436059307054001097096214082388441436899087619577609441884579429186811686263990608950104862443777337023533951511387965721316513806327538664074530603549593321503402543267478908094542778843911399209501731469811657979287686537719090541507333320588282830913400873077689870779609737215695021062362385999881678346722726039624086655412906400941388845015766915644625380922420726546152852101044382942442480381546634298437729299522571198597831401440640734310925041352401900552639140553702053125725830357216885410838390611477311933261775895215552278230618637572062767920531196859561055703413624663930828142007507853398815881380135450388523389358841966561337491871936851277038350246182957235791557058649970366740101036396579116933792355417339422733854579828687979074758979392691847056627124271731245371268629777820485440519920718836465670772116061028848587684969861662620509321644401333684176690471604005783712260656448930324771671340789153967769769457438230675097023119724269033140888389847386574695489162977331527985671741449111964757653745341675756997737757194151142013044435702238750462966223613407605190996877190876085788788496183794038567665429786331700411194589154438660006317002284225792295073216760077435792944478927183955781827828484085500193359623924071468723410056250616517877633192791266606225529946906049402491133981137103606059644923995718913179490085821351033537323775572109266475839994380901735706152992826313766871535769235646929450957419207504623608233507161964436230486492790707127249733405403426566292526635751669302013777662460600735532259377184042441332262839112976415587059013805069237103453661292708761802959434300013903946587683784947377814635073264409660239435952935097943242990010224796003636025011659803439760838468399237324577767432886188831090170867267551256675023916788359637048529655722721355633184415978457021349707166472634452594466765924123626945075030865504272051971873307669845176486869698340287539136503453959750534163703059130233561289248725312856244071673156033337622650404634637279014377562490973789820118255850652674709890249479269955950904978510576870989269269125865158230121639424444968918027592378826087406464296182275643607119581427229786705985621974810901579034256319601153401538534249617293616956565897693947843259061832976237135892558894778547599780182461805719975303547329264779964640725676397245801254612640263422529094697956395718498068104986188757518395354500918574258091536847963231638194050721467079760661506828841809848828179102861107632046589024974116559122906051225403979732841485544826443617546950780513143102467463901743614848395400626544778375259374107128839932249112734853863297891464706976230137299376093050145841732657238056177537878683325089066154203206801141449901220316686622423217492250080521401352965879501901327559912477190562194540601408476057618802261330261009059160322501905965311308369651653246015397317507713164730982027889186531860752758837948457257546944057923402297520707156102642540205224013805586779914896008204316755173322467525580245866732308093873772928897972854692956975839015540198679840492885063729549119578615923964905165246327970459193562417833787248847696980327589629193078159211905492260791854744125025584526505971171644642086456246155217707462425504017042475315733140907869892020546036384046686412452573782877900779057146303035096406184899933475877261292337454840063553052077475252789879539332189807373858436047798802869854521440744633803599744663876505068920712617862275891021277529346304535464614802573390002174328825740977010059248431135894845369121777417938862680193943440971509025032028863788896770505246505666716692617667188945978616402605160579087983515381003462676973463262614373628688518144744603740154231582073187270857700023329253871277341754149184119391327025162972640586323827772964590519606036746131627052006561311239472192270962316979728269611254686477607722122538564742050512716446782847101709166599218538678343208246778504828008146937116058723422625152196990745217666256830637507049950894569565725452780691040721164539083065764028201723291223579868661605513834572614764353380956882870292626836245434358871183071327617166557719314212344882878380175053581669694675587053046901447673565688684803890082849555404108285425987276012103331219689586348932636147529725303439576040550558155718996840005203954487397458157077289983886638236065795684899237270362463919988185760075921694316937247825255020533680872434372561703345524270254524790772726686400582896056289483054231423691474932872657495084593956671529332904460032470723621072926608339741509668623936098857585561205068135816739581272453065183236516456272558971444360396112944352458418351266418915365107500065949973397547463746233239375572333174852670555401617867055203784479044611809253920870874784112701237670828908589522908142631880718839165632602154769686174975246818660966954111894403064066180634974976107579516142524113512258186682265814825962678928991699583354153217400133537278769554414802706758506463232061043591382466555221698734738726090871352342906566513894663699523942399821149164593384934143107056198642351689708210028957175384374225406610188109943577602327733834261702523985321364221698923166381424055795296637201870314354348538484456462326491807472849704535963801596366830588592860757611791087497754492888596668764737036594023304854210936259642537536909108622632472990824333585670708715273260308874229425136901788777197102911850362095619414513366750669433559961617192955598244843691739537865101020027424889110494446068360968939895077095853090580880014922975777570665834965547679717300123586543304894020818928765708393689156850934155983123920277996555611913935160746140742038253462369049892234645043370455131534419990041872717875845841479316111223595217394459502091632747061672860014597955187614496615084503482296794707622146815898721689292086710524263270115428831865914044715356590773400797238087021641164386511699611945005541248424958932915195012240569730100263825275157483963963364389656206595038426458271132119496038631562278761805694554238050210673806776213179619199955271083190817287493995323865829335789393939442097770652118115533527668357288448284922985752501879478123027938469973253207633357319575511505482400454684160938536095719223010905325748429220552083552154390442394826816230016765866752674052280444467023485314873833006180075244176176074555016436462076561518799519219721895337649252885076958583701167997379414530885141870681275905916637010864618688220482216209373174960425515614480756582832782337093191302135317268347663683515945034772339540742822282579276776186099469380878713225269069089773808185967802255189633398576685557368869425255824546625138807082568133891357008194808223011481737723068043003324993966226633908107266140390021454896365921595938018274068232608500832583254335739211912076510626799680278952018327068960723274466548300405832734155321661054999961494392009039357881801892369045667875831695234729432611878654115198609845408298827045560716780691401264783345148519990170945237560649450589635532605429458141514370905264961843861339532531561007615327489141759609257094270686587799745608183712281565642624423422217325011622110376008702018397846596314909444836388315629992120958241941721671707417793890593456868812403624589420969862359288565276730262209206172926318330693394077478429499720971214049236951124221526757743728601797928084352666488766928433321161156102615888512740772652643059903535626302758715807900435416020378216977338101236817737202497227542013086412382554106960095946719303589498805468751463042691426582338257703606763509399286924589954411081980734366282716752425654998309018930799363963592809146516901707467485854860830519069243228271734476292185461543855768962325953119417035695295235529928419652994687338723308267940961164387252531221712382026372726028426872277853286382713614315080373065685664565972499052586565719573043874724267262697036914069807937836840679177058606309202425311013668180987300599586090343911102402560805074568198026337365106096693186025655195388801508658219793490274269586808324688315759637804056504311258843722344845363659400191825766086427889893224642076474993477303188525507420498769327863258182476113700038558708010735240582046653445952686469790297380544093854305447915356986625122030820777890636845181451686141298165419617689750765957801093254843061624078613310613656320361907797332027308707572024394543046007336432055276545750348768886361935914038502531166904407598376577329613803918735964107832533694144018530999928339192854044805881258221758362270218677250129643389284324874065936559027755123379648658400829027933943789482551212375816076391622048650311085075227156617501111068872824237966396270049894695049782585393817324786371517693960706252361185221745881522521273608697668145960488114415262089074680510559788952786763982304054908477524363920344952715823140709204008525646384140072061011441773750897719155226482910496808870712331094158228293389743891660252263355994220753587713125226821827765957216944161569476209252253848072513549201237654526861397370599549132596652232827333074407760176395824810514631953772549429202325370098080914110726707270021473643077960924753494719324917601841528752111415625291012604608559869233976542493585683132238923536358134420760375766149839249747675744788814132349085880505188158272875850337688805828740888425348410335968475891295448518487986747487017731812785357657442327657514029535310981988004509926407082638982989250642324537016389834134548117912178478484077705573010380082442169002079913389644885062482280658890602754272609308584390194933397943281466628983718419433364835960981480822081508890882671758009483311532777912402100521343959623334622573416645359614981277296918563369205305129876812879011331770373789435391310358294858016209671414231814803624390869709830465836827309893495700202882394898235558683570360363765657112565392501287114007076516211794343456365377261684613462641887614321744223192808208407986550642310863084458569273609029116218820140325119037130489770566820700731548360416448055830377479454561723490703741551039208198417152460744572796743323202232195431265735656549881880341894214142957953969021165788577831326360381300939942921113869346286048876317922700559144168550222474451567440715003313496588390879006202264349510794086568072458198064599756710798723550471291960257205736083632710382304110484415793244864073182368863172365880449002396158646042826532977539112130409495582712657931818894612871958487758163457207885236788513576504269718882536069421463763738637315594275347993654878104028130730475654742121735021750205831206414342413380078849759529512875515297793899654580714822609424795525510377898330577704735707657314740284705290693151836034926835558952047720305798343010248581861631625863666244241747652239819707463194799749966031857866295301339628279150032815080268372339600673322682916311687511237393622964752703214032362931725654351191578492608338358096064466511448314976314618455049908041732491902686492039257969981144441759038415052593851853121233989589663946237093800472292589770338870033010445863464486366199160045022105054616695508428351305946900541102364852580625164191209145684203761001661403493713865762498448184727751974425305071229653902614759908830333606061800640464832856761623432299578252967250622889170797272398987191611433373340479314321252003376049045868059914288621644502032916765177508924945542499252420792064195337117612547985570962263240021376880962727930078403935478631765193450665319304078890292238470206109910722346483636534995275614342606557761441396812458612742698942064267314580635166786741949593196393674552088269369678916853675573265925614481555123794545884803921520046207470914890681346548950697913595126049543964985759681651869270571166055294145512865633513911932312086341197536002078289445236789730657837416642233458480768291819232052761540885626184770448861337033689110499777893400634942851779295008690864771445098277262775101282724077964710109810685639765552158508139784738194732816536442688276028557317358186448802856966023257463177114650337083035512552493895746678916089436133851286904633787571668715227920447654673971084994268198694362367141415901227406751807938236052237087815066458889206503857938002511717796646008514591781590264591754382817344185955936785982191169574761214190111918967610227700369093188374852804591107909035792928726915339061205997284465527532143995758749669919103724397341257809184356968065316439602983156447927427699333703572799044327362314514980950779443016794702159826423011802122438615396380386877217844997504485333994929979809127636169430358756931710847706021324525410404484725288769739199085556271962824667398483680987917321571620740925522087540011406061950644266266395106246083086842817080255733311017127577775199347845699013545674437612229129762320880327147335670402027559145110962320647093935812418728242701340491679397523135147379909789981882374434995412839686330606261754346569899888240201182218068957676840318459698556693583099435023144039192980995602384582374634490170657120578006037952901325266767932033770949743781900039604442706504040491855375179420244521305591946012544834475939605130354880277314692567530488835214049191425363555687784735528036954155575770447951232157824240097316973371682184528022031351063520309571413403864570700877177672813548073583200731804854903889018995893176427273163264529293359352358115701090636511422865884301470090336823261047372875905664977552522107394677022728025081155079324000791973742902493917550618918917526813741798862843293649451310947306906334721253876590189836370927570487705331061034952107893223653999968689607938213462242576473287520121778209226795275915237641826864404200929804418249610909885212135913045170629962918942255919013721948251056791572696765616213940813536100304721057767876486927732689598390850396364944971227501612524422267934167167441108470124806628707690696668031033313902856464206277748067995916746653651316970524129644014410900347758568903350655714117520907368656937579954752727703731545188240459737212751921580707799394237437312406699284017560597405587827962748978513567469560869840209521856204887749202352081654162748814367258921229837758068284543382196622137774696155286845341817515075993536130596324798948616561461422938042604744426273172070036216385663668100968339181308835165576822811574679713837211160867923967772201669179795854442377635765409795072042572307476659745520282472516814882130748122778146504723016061925584589498311291883171043502252693138627716118360858416730759360441894405737804937937184072519872414186862629983761617464617963579949102725126942246651588230597782313924336429691209157206744238478052280627103766211158521286428814492218179515723807345827849094417564936998131900229394838383609707341932118733209420414539787813729373807794881232155962725078208972059146571831957377281633834245019586665322532870099843478881357388055192935575657706688228023898091223807483229721024347223042526868371522150568380135652998626757671417105073289367212879106051070723560908113999294268453733103452220579524025371661439635209034951177966130620257664395765333121416230849369345422878771581798045580180542630215609124353398004226528917909869708255075201505345588931144442105525576759405338151116243800348189675346966066770320078801221560764807472675007459995380911999096513937037537034832083360109333101702418583453617445250212425391191567641602032007253162774579922070686441316799747252620864749209714967669557740113821363221468956286140831196065860757136929877273924052201358809037850847804454301225849474021578683876609882876828487850132931138760397422771418723003291830797825184984383747771003987462062613346280161015349592904223238729027837660743570740623924276792902024180522073269973456980367091855415191095614578651407491053471359142293600573788513326642496557176526859819504417450154597403285439305669590500659763518186467939749250947205217402112980049569712587234997783586312285992205323013878970170252084541266708592498428884686399075222115219656199005673196476740286489093016239449313752491588539392292647953053147664445691302957910392841273903578619293599917396868163630643882008017834232171593537303347974622136600936983630672246373040710084226135893087766173857007732517840637263151124513972400752343643053970292094676902713431712263583693497413520305485512994394693640875533925231215477424363476114667377565465420231720794374144891116974448674091787012285134231421289221659451971610423204706682548646867441444250668144944759973595013021946912129629903841635345585972419462082591387551835962668025034967474456454562375827930754724458848605608766986999597084812495791560046254265024790192373401542941636803931953102628178017803368162117281494654477211490081893226609996028869675184817491750101406065876642461016654726066048550908880573999082669796316448319994883900155145981600813133658323547238832381386470962022391578502861643420779499896087702121857391271225761966619024576112723547484703127970490346938844017462146665638238230148941987498974575942065853968262880778610551250427557316178235311633110443792077462332148711409010072835608355222477132927871344464503587177566667935995974815885782441845809249971438443956789012980754397680098377684437482385126326349889474913470464616220860524623352003540617673475134736085190708436199849001238684180246870866402250422180972078341010546243678044186709397562100414000861996158016359967624465761205339713730984998026786003599571388119761163740814358631571951785974825623890653416187041556636164255578741876815384716911495238755304796742624146426087395825903890302182141888297891243604477209939657403679036163475679223087508992357468477643263680388308716532812318374711580934157904239477038776035258610747417628597443955192501602498562392020027818083692957692995623905250532245429711825198672711714056491895323227183945567771108424812071196200145364764985407502519068024574421939913771972692712904699860759944835176462228439513530501456290451737164817982374567982468791485352744693145555235256773313268172285119863976169490016414976980956105539855079775591337785898948379172339882404775079232509566691711741505982819346098781081898783988610642149369988271211175014971189989348334738798123633755971099414136146235861216624043880515965079144093913679119170598524133480738160607614820515547860897166651405478236045320232790545373724743489806730148107137741843129091052145387180471032221800716591694223259120820174718128956197945212431133654669565661878265063766888909224024407520493413054285217655364628023415996848103512435275044489741215401040447433707960217294240749806264370798931307667230043554297717769952325070518478918575450327559373061259299752259129875599387588240634942605746818442211034205266391667956755519949388147216097254437003215926570434346643390787736526478729117179723358602112906130435611560381188689824309001518207932439205979978071828784508548988804040470378257747583852461283054874733436498015451328974950822384522091319794024918105960470269638199013828044642596788115060638003912613272856886875844115045536447241574271189418119639043870006699174332585365916389154274191386338729862483363232393194668851136399874284524968356421685235308146215052814075827525721501819073108134665806032818297829833456181164351178962868967336060664401408123804042419693303987153850335736758117593117432414403991065742783959186292078621631308928545085968649334869856358605691790722925456730557779816665120796732962550499775777619798805336208238179927030867644830031592211611933542665233518511205527439251458078526770142716574807078061994247927942215626017876897050154300900829259040203208832014949862837483458008889993478420170866102827754639965862921291888040137134716635495307364960443372703782170002413561896584765317760993882265434698267827181584645871841000377625968455873057291966027124152940425689431354078503401247861163165691584373878012682480723923927247133934305279489923724289079419074118336704705642216161360148919837231686408537530717389897326156452000719180649894801705424576910174978654046681606175049657681907492559861925075583173432416986135231411155353095277586884401668025271887831311177152880836313251587257160075897083184182279756986102659810425822008615177169288827078438078382254888731483086321826030860897255444659262172842281819354632434781667957447201971853104841396589067192881073445635805450847098925765859697014811346616408178957018722675510095561078248328256012121385274266819657274182935263411016841179569430231161264975128435015422363165356517699526466703336748168914114812584899594474777773352005498264126072502586197061217106570379583841466235542614299684138731690362025730923027093368176365243150666230054471852332050463117651304513793084051445547003245903746266676421898795070124214320607502262155969349089515930984853801868263986405163554128952013400512346983551149435636511465824282711424056425143355300496567074723207686649872533055774268196448003733233394546740528762641425821400529630058073176489911310391383511701527223745034403665141752673440405108099612792212344531975510730089287687745372571213023469890531005290711017392436554643496421172373551542586047907444288258226632372450145763797667961870807406091919152801273697196469169799566694714097852709686770768537118635240247680719983837155011990430105350293429329767926309504384731096345109739101083301954648512156318019047151484643768585668712965048601793471719191143665731836070527040175177129860511871380490750865958695005947273104047168988722271355833687695064387373816148009533760095103832963514174082165491633742069517475296613301380059083977861779501041749602222760264089089083249041458690627140421347491589634603333673969665604532208901539989755509906108674696538679449292289832773796276338608382757665646853502206907614378636546623031938987390342801207089975911493531226165197996387041008726753617815595218903407756485362099618268971079189494959436533254995372444291105777998673530019031273857157770494248019603613253972826858882005462588746631388664251236768396496772405278300918435571695156724607628013220691164971127920500074971202455167967151536835308131237408710213620140298621630957427243901240731174634790832563963660717501024264234857572722748929647947162584596896053034277238820419621759934576923936452924543091718129848691372847599237685884567645662122941769733199220052844778408406518285153531738992012004934372809101318094769724050769303471947884560385829677454537514226122876799394538148464792322872736947003085017659940700903405264951210185391441802861974903911205614866181297559626490648990823968326002795029316407710974421207766994957263918593335397469498782537057027479253829720683873913609764922781530683458825773560597279753305478034534541946538338676571965341650553442006794873540299981295238535783203196375936979695010648364604134931194735604487752969063623676689104056123376972017696601373832427111767388721902540620710011951211683391871596545257852489690211136144016926408029836270616369774804574701747194561327120870677944653273352020008415232628405150232890653874083175384805140472980431855767820990530814605240365450499117528382479471807787343474475380107989669038478160724087594109565371003297160818142273197870877006896633053543987456929255547965070105545503940545419973063049681097835253494428407520426621119636836816430666466912811237245583902852711924260633427804966195992710197196822508720338570327904034035713908672230139598366105594500801343978826401275429916347890255622826055019751066686987028597352072004403476481565596590075698316596490357314386938261911091556168863757260259136790876110769497349618334209047526153604651629000821079578751756973444944130238248983208096685129696302536048119950119768472702544869732109775910519008074852699142272598137387217118142040681321384433003262919529217693333906254446113461501452586767848805292898022432245452766462549474474231819064734710769341139710156727234550111304465277021831142680192412692611823069973107177614785809384936688317287830284786998970307179382531746242559383357669568113733358403676868887105554555561600013665984275307384603951351527560873750696108613403274296987009304754379133578465044966551178435431800618835658780219375612184949864980702182710877917547334766449704587831590582151690221624171873316997856922936414771784922966501862475715834185918947717920816646691169645501687134800665991190178410807449010886029058197919289317132843017172280297345038981734278549986834641093815217237247783534091416275254268051279223783820353368800016285816668387013748822459959894831068465942791254457064083209286095140518915365382209793075279195748250637685813229897397692390200115038415574240067938448803690622880000216817969272264793768842763073849738475260971974364189747961761398384028411918678812878502352541868391484936020113513313783376176902786808593138965113639500622618023684268316833074250699627083944073199546993151033877311297770831430052645783670987812256215375293764963601816756511919924729269942644303767897896758528264725771410251964166423648012147729579627934935203110460676096130999818064371952925625620816800874467875655507056236456781163590476195402250757982581289954961612828240313761531411750312533508003060006181790210861871388774853734847887743238209631665374748381603605257090058470917343913496868252873295552519566437277338228008217551289300017726104084025099713588833619259809180862373884874411096612055882040403131015338922957562689292951902298656301967275769469069800602350501209721757113453615508298562530960103495392714224736125662384318846682447670703513423936032991821966140630162516310234443294690556899976532476076084651829465929244907522361803115372374911112530243124856870145297936777995936758811973432415099219052359730332767176692073280736964643802712277416712653916211622008511284303031119692850185186782254564594771622654552402919915941439614221464139384458321024283087549789239797418500390982477767587887857301384279487888086722895465771265120716061974828757855183763276312080481829042466672949316178249939494223983988220780406658526919954749259619185335533791136920315062065424950918873185540834741373002314265650807060772087640723522540743693814838613594288026724958231973304968980518457601490611173082720352104497880014524854613224375556916978978269469869556113814304764646160571350301262494727326997964234169267637323128057674796486482471711205162087263081124912505794783778370980368449497336626047829023528752396911108367475145848475489143360578704632857482445176922286195810722878777136250327295628789716639557190627833763595623582245045739559549676181764874896398845912839099230985915644761774975800635717249525240998684641639073930968046580639250234797888642049446800229234016616591476375824264423729876571028580472123015430620676592255066838253525668803901771743413647318209793827573891232258739242326115740931737660799224585481392739993991000950249286649033317017335642686849241243731037984086762351601777954409618032717296399139450491173971647150373981680062835733359126277758390573915667771484626564469199177977828710366136068168803356694118448054625865486105806505474986594769859431316306705059044589861519313950947207025850614768173112606200257046313559825331848412761261872168943603461051939798079837369160978704019086269088372677586751619409300743538722299080888811739799856283757178081738280794852613443956150651675147017666685217645242011513466656517310255619531593230419531122196795822860400537567763316771849062300960609394573314338329144045655129267610817252244308323493010408577850829924676708543475793542438061043612071815392728732751220377911843220139463774346463662629747850336676074707676394651507503561015859010631958032882089065757774105642512168447650168463777325947171260330540119230539468681952438654017196859651404098489449607060575380706631194213673437181733407256850865217251431625033046433542843839035832009596833189407237680396833853513719006187699013145528778403272142019153940554086709423070808458193008040893665692240943165448544779717614222394411612089746202162253157891466518283947266092590406196530850766709503599998345938128993714890647147854049056415321000861899913801910572583226345095793129772206158311615456658784828790523267743756927618469828622402866367440384090046110131776699360352836122956223970585149931187726164443816816807684686031258749519682474577802594823972728691079512565105869144219360479993180144738908958499464790286371598799798184453798948247720211144074021828616567168147884858753949609764438645708078112884566063515414735652776504187045815999303611588737400961352932418226194852834604736222772147432796383319763243756335830883145280883623236860269970781847708635089706622795056233861930255512952740347140877335724102461100380616557493873835895542849479106479255042540009553384616460722921826309182040367467648965023057989091558174922770197058690574072401277805853979791752218266760212667943158695695315134716519909404385566198407816400983383023088113786201886205340214947401094319457973774811185836393355364546033794838877386932758746369766948175691911727298680678991597689634547637557332162672322591832085257262051353367859980864306384536313924906893807715841572081977917972786575639055041180451651203256915078335156580155285864112760903746840874976076694207332605977615835531757232479334428199681172989598013543649501321895594285577583890354362263223674557243434660826969162335172109678093525827572750411332921192879113461159692332746506981988692398413317039150813125846280088669236772724274871333347287527161997316353068429868740964378909894511869484080259408033287838485935121278804474159934463303833820901668299713144943552063340668795380629755809083242360736005439444028766438269819403840014379099243711456158260949085146451396621938122234694236998679762357943606290907460554312374926223610793028801471433730946046625654160208673499507002673750628296631474697970919882340218150145735850738112801055061043626053449967810028389063058726219039730400250538946030781696247133660650546542497356644257604668197841192892604987903362831975515220234573295331024867610221892343842316608395025750117603245576958815540104197620872852520404322398538113195459017401018751561110277245391021010055038120160652649607628971023119293989222902153909547464479412825338672685600108111111725654416074039951398648367959137285054805095270897949442134402179108545334165314225921775097497004148744053403606476338318078340002494834856069441144488465794294824085372359251820216177592218030804646475739117944050531360480010718343625219782600247544776139971300827828394048062467482629991065396448826006671685306609932914535132320507175479461684974331981488798309573737228242914117699140177310034098242895293070983471788785575545894670959129469411625574117929457802611366516753337945478657678295081694534671636440941024192934489551213703567285151676630448236715064523035789163783605472638049049106622835561500947670301553989915843086842634329751898078222740024778419642187739991974238889154067703674178054212141742195929287030024306706098869444078138330512379022253333769587130482895516868274058837841628714809578390035109292370170636193076203533234507060551852115336888922235353084423224932131584768885808901689791340181934500214479941590412299713988380494882474327630179191871426419361279368498578922170970992188173862776293991288029481736366406530887362041762775315262960802728182074792971555842156502578785065332428001867380541547398781796146791935733213947453873699003337128888338304219328146809142219097350164147271356290098572556609389334846467689850383152305322930293257484017287597961161174527627857869692478655673621971722877307416620623205666941994934945525346785732416074495199327592612143812280674330849337228263239960830800144491774879361888601526988791748605513697199774967319656160140901729596775349892834207557506983506554985391406810371638538138755005980393646537749715369549239649517847352854156486208256596141270418472157522803707714177173501529955196667283958649790134808165029338521466714971728318596036675977945602030262950186601174599355599384090608527008022710628860634156315677281437269474903715596012485676661781026327417894870768700194444780560463876517685632894592884892153045968706565502871384863345165834533233218053966734128354498590708339731437665559510317624837957996483896684380637822784557099198751459513095216410036818863697909337601160624663071661099616362774322745298584772937799215014132217023859504324039842889940140523432863885879912410205829659396209789918585224346215734675076142150200824928498075375525595824136599562447253901837443656759206932393838651951442585977132217129696143833299722444867263126767429635946841594157352709363890061859736234017916052937652323373369223347563831620666285770506451826007428356168894114522062944541612100579509554707786727282461540885838607320209108165714591672632963271945014522915742116893497789994023590843838839321233204070444246250888954478280303451283965633321596136159431385918345258920930538397968227857481363988285007194114878607184727170023317332480203502773033772726355577726813257649024077547897782850198470953926042812151357265330289420392003875904438611708905255943761549570940234080787987170598137203165280504240863279641418395942465907626416741142519072235946144410855846175279424318140690345915838623267565048112190567535565368883473273499486814084669865709569991075405142742473742320081146267290067562019600520769765245858808631758187629833145125663018609085867696656460089689018752900979541308142532154961593911033633549810250729541792025111597782398300715604274611601562816952704719079539784286096310187274694636479580246756587202250032581337222594319177310791588316697279817964387805495826782300412313030141716604034417982713745819090218255721018913302125961217411012339336399127967835685679277597666245024373515663437591700956546924518679984612609709316321190772910640217172105473544343298465449159720893033253898244733097176450203393088275967820438800454431081571874235552315013700074784931455173106780958134593735271379359917417298427965548643422022810234647904173011893286772640659192164065966883699062872740786340150649506712409645880084817553462106764336533647783102117060333277219967678572310876945487734059570000463839031309436520773433807542710991833791168630788519550371056043804953824882972489239506802937936729595547099873510745995805953922401410470989267970126392058290878717651252726254959279487515778868615341219897803352491825236846810309049165773488267080316166127383704880417749787113261568586171356628225801075607307409749160443867764720137238168039835068808588418880864932040560201168890940819043380031782891698002540046411349109812435325319873977608884087382678007816505327688506722032316956662959815409465518931578003788023453325788041528306901536282726166296597146704806610875551298660367209772055618694775440054616434121823852198670253657612877950569091560977905655942898450053544640722310541097195168068121656224345425599515075799770572436207775369029547401891701138510001157160852350284793578017574474057579738410363784365096215464277259160701231832725177075036197009226046316527857079840142485331197355432346834947232173843536992208687231863654407261449825216085386305046121592463161331688617748555534815449470303790216478658840903814034116018056970236673738922956337518976570247552401515600217844241359887308372650457427264154818426612076292109766816057634091711743660517552519155872591924059290018170925461706236913000478592313506925526469355466307183625343803539864098303539196118938921427322935115256018989941124877367272819740448163389480334196813932156403420667055186676865532003722950355398689352394210542271671987289896991285550520981854623603515914798066981699372412403487647951908442578945747926274930682124193646673872440074851883063265869351652549018498002209333749766292324441162836962640491573920153098110623312672899936438621115771488876872533299487600996917595588699364077727932427281881893108309865784441950651425496103334755594627135482944564679548784975595028683274693403948105535693143801193995869882196231805211765996254024638795900196045319482992318302978416457852667362666373492944065927787870851745720920734548596333169805366689019880982250594691982620098906316312919572752561505187671036081113312835864288798195446260564322858098999106072141617597354745419339381827888905245551924039032809921726769712952062799062039650427535996107320093364660641712699571084600501308430375841753606153934930056025837705549284684880055047804293115051926578081283830747869695171900306544906078880555326409302984619008144899985940157150733399935088836884136678658883949296264864298567818211236542895497627617732541348166965008909568222160070596008845461631756432051428905466475881688596363031087389384712574580507499005957369346787734193123998087792097202783409046699897376619259228007588331706666699040571117595017428569333892056204109316746722845141713973864001471179545190564814562253301742010312982189786198371332671681574925211533589973688265243300762911807426457992346797961421798318900149773455610098023470129689307641206019474798509890582122889120905172980438205560538546932242296206594753488542256303809493302798339135198291178364058770247866101739330430331189982801386840591574187996493028906109717064560447948677619932267011493665139618783643866376391078368909652384146706879217153323468808421039995804534589520901588397489101490426424179680675329974265110858482602909424694185822996694005527258343108255456155372455790813905349601248823568773384417664760011598719316839506299896556158522181226675947016053763382057128601128065796896757974369562201485245941936218006220641367178287509178585253617325941670259564097522382524161559331182854008414977488863640356256008706322429434973796102788551706871554163033006500034666270149820327082939495571945174057818552622105140503238938230864459091554990081688330478406200217482246004918578140226214376535361929272473920206514398428824777093013867702813500046070698590103064355223506034541531415959716549130183158627871129130546149270184160818597724878737890375408035166737098418904347653449860672352058777555584538011555923290796754848783360129895806962295989018014316732744064733679690267774770896642553882586450511072546378150892821793962236284517115280155432793775397372087723212420086128748592245050363771378340952186586653133549399111004646206594325453581544986214724841327990367564277018220020962886830426772373305869561171363362455375776693269293501449549297739971939143017825899283612750921799801853051716177138269302905511154949183861373769981235432886317106604498058421175626157241694250866452380710043562800999185931324776638534914025658900963306193518471160424614184750738518454109728113352887820404253619752796262343415152656390343323788467997542880547447969744636167400791685997705890231929305732609457997792558816859812635655027788729838101178206420141321750653261631292489189575013102367681377367127292779911234694823644175121341383530495968043431364159745094420232032177793578077367055229440169668863845669038115680171050621036731461363868637431458076634559972841882853676030735124260121009748725174208630303358620406639896445056380710402611703754661079128752103328040457004642914230923032416327225082379429264048759465952116427653496805752940342749213130188675298321635849393334754031828026923289259656432856895155991723296174377916682443951272625163690553048333098843197731937891245109198611028872153699991089529981786237535077535524426725056856609447369839628312323038577782949371068876297567384569812656143142078437576338973872852689293553891543033877722875125960279676701511492927174783435483154735791884527970769779762389111986303879517666692688911294588321608893566132216953916137718740238005095411662932190093242160005210986276447572105913996811759936678515356971481006790427041113266194527573385211197216860687214053640737537243198939265247128817334728465166708214104363027759608542882292613124580241266331670045709567915019523035607003590398767618226243270514645601864574988487899717617330796750466387381768448788676087283722162480712702408823224277470942836137319187964827753354423741838476013071932262283236519183025397910116789007874457527111103782770253298571532582089940645743469159681895122829915348280034140606541305660091256275682894872666819292652205622759957261598313706416535365933536674092471722528540782677412186753391267198706696632452261231756626147441529851501109405956152145260003358457274768934513678569604709760011882279180642771345208214559019398977056644299890779666416670214535661688936436144082943553473126839421181649572415339196718813821046542862525624163540352360518971807911024449436255073698100133526166707240936853176117054894942348481635440175914577863255537975032746189219073582771739089336204098573934860472521484104571783615175708110507323340349765457173843485446885882485592234860250265388474033244975967714082612450423058388616419186121819051475172834362450869963668243829538884987356580504922209386615283541686295881092026666523400948002847585801659052964713887295712579181188898293839687945755822409110097742741438919247174326200201907134805913856490486613717039724098511792569242713339504351560622997126843417364689795258661842644641066113354186466654118703734741758522564895614425106843279930153584291848434730356270201956354290184086845340638409274142773471258915683545033254926080274127617165286839499425711585390015096054234183063372350035161360720470294658988526759402218284028084168498408112009970492699646952337547454241511483304870935638214468111404810457403745237367188833688497338829584628274044173510554756372042834818116034371631975521718035904689006226430182241996850311996847695287849651616952385652846410933264567260496270343219702217573677710005727960644462911871327478082506433688840845690004398229005593809605976985734699849286907802048948281971216594637899042764456754754495018498234100370042199058982484347271535394576119170803799821375252497540429820379697942306318452327831972903552870454904242292386158796475710772471583889259157699527614065424397034465646807601613773806197090273414759544083617418335436896422079223918004054178027248830803843327603726648778991746915219319265324170206557017632109753244172635445046526002344484241088689680059823385833521946559986661937634736303224449042441074554790748406543247033771058059400144320930523399633656132245965653291834030743964955649251257281306837119140262096623260684773348814528861532065047440131859717410532920957557529713240333055758967819835902955818085992912493005062331095826947862426486151512836291792183554677803487257259170588013360875917162542573199287847057350822210813535085038605209113091546468333457346250103759306177348447768554382109131378326905283969338608863040815619962163512045102861491441413145693431418005956648354782259308638617218173824019538326973553147669376511851996502217364027847133330654751820043828845214807600272528622413868306010465938787866238417802776067798166343366860757584312149164961760409933176936784828172779028276537415017292684544190870481705982220179185983087211173949922909806906189635749049332304974889311770267589861027454183498805634347827267751751008096831125993418711952852522174720032729215952341674833593815795260181846257747740878354060975425782773936828622543129984962224829632375327069636544569578134949004854420058299588065999409376767598296962751955799472121681151621153588817782996597370159286377703348533981983384227297169479520599851369747428362677137676438662885359104825758626251831938115566843374954307195690254913303604400183476935142017255283114371201673687735807631807599824279009207706575128675454731254271895712104174839838887227654459087593351490391947201177735543509953426498526250806470659122027503706120093048557983382984798168904341822684008726073094828437551947007286857768687647269511935955662822907058225754125947069241355515532820723203579442369375687491829495351245773405910164731499060795262027361013068813860763531135611175770668834782464057228255047090150097983921700322721158374852062397120601429885368838666071115184463895901048871096101928783427919739107218810598085095990858905769483829246313337602553559866653837519072827709010389979501560829480132662971624888016929527703832549565090374718926367829244980078721109090429887314424360681817880355281744758433671710776746063016121479153025716862161376530645563625729422981379063464458759623283601127914823859779678438989779884224895789220122741540943112168145213534011533304855291327080561452947205780290984275481535341402691945567373041782960107164310217515816517474060456558277384587585988905382807971594811287888547542399200583883651542415761273521359326551288505750678133369064638109019732105228143784887455316855495483486628210375820295082021542273518069637181596513422542869829758572557739135000827649551115530253807325397605118651185276458044347894400814644439046547543464434198886969008136563489639822444815865285492282003821291880307650030773749708671549908511349587436264977539734315777545777671384482496978527161849974035629286630165361868798509750742384508960109198884647291781363037282711498451497619084977895577367958529813216086068784732691876268240022916294562794499589219609739591320348430928938622243790310593211125757131234419483633844238673479964153015600737441421533710506679079962182233176861174845730193601657050856845766485492126800110068170797321902791309044179411991198473059424369692695039355883257798962930536647507920615441658727058885588913095274055999957225217151935230303978659006024364335249004990243485373050449083258153771890159776262624144612895099913645707298320805782815580432259746159104219930331713688172074982072083007801360044214476475668982472432220618689591486486391127920333522507020502799058967811906046233720300107402525808934375116145845293229285886178655371694580300377917986940430346046282723720636536274342801899241874545394583458410783554874260481703557883465811475459966023264514983406597017534072518447640532481851432165390028451254728974879739513559912824096401366139423663697757166730696923580790104342848795621425614714565147485279849037463557793641502326416058037744306050615299975775791744736682323390902017704336049749310889618772777520670251444815121254371166319134201066210799667947921075175110338758101534731220440593703175049860086346060065931497132904810454701223746316979035329909346051288586308223367577334434023393775582220309243434365517701472005582750673525528347651278880443948048292115370856136245705185932374252844185500726085408757928388722676307398572474851495244150772853477329748915939051271757097297996535313375207567291965718179133001438629465399069149465277074139895254687380766324217617698770856534253667703200067826916564346502966314425075322918307283756635612782481564671987586680225251838308305581310214365890677564059848417556571609753244829075442131755393475399869291405110662640829845046918923489776776828321972705310872597919292210508128590148311555991070381819898164395807645829932488648197379542053647471872329165542785938291066348069160364167946391719135658283563060895113641571043902090682447546707948332793368947911884929498074972488959999217641175166872123170277280939664291555064216870393771729610816907225833587944206737752557743279881343690072367582062819234704842005221715517174439415726655703155825867444899750167841190820127217553117004015780354108147438188707297581465359481181350893668729614241554050029155615248615702264508826387368701006419488146616986452495489775261718263049321624233111939226506005538159459675976728961087966743068850766281036650230141208421855944732737432223552387829958784222037558886262463688077300940164001687295213006657194194984867176894807735117583826389725568804741681493518311510845217889043555632453920038156720093298598571781513125258900327103177302854015679325951136780677350609706196447521176152435371017136737716395587135188411390093973362101157463272081316038036161468827507519818121894966881515838739228776262754949331038681015323083248869003816227935689602156745313406179470623602711855587020353155731430359314476424031241055802227065585298572915021853163498722089308771998254672800062583285642536889002337077321529415890668761190357075091559956325840984172398449624939416281796477375906566478471547034861375230337044006124145507621975282730658855398531748906621932306325918256070564223311135747936597540094490542096961804264270092612890378591757233691120838868873280755825142101811291764643616646807314490904653498398735558625900680845907075250734904118665645779040495392649194975509474755735475192332901997903439935134763686817361107143258402225931415396694663939722038597612547087581401912741520124410013686237888420727356520870427584510015608434616588905769655874561738179388588376426386631422523881852030141181115188544337668136884346463324917621839546311276837841892761025773579424609746619215907715305458802385294572952176294753740469919234229063567405323521017987557847324892294994097254195336531597817450987316215679226873770882140002237199904408244572931049014694455478171895908179052556609006670976380344712592727078192079794896120262722968501590389355350070897735793385689430459242880842610593902409409021237490346928196039589469437608276313644485205782146093151661505564256436906293613402260410327728009989588385506527078881580170555449517852761592810217654065070114215812058664654743023058916855441710359565947795782836437153414832393944959098266600484162017315745926362930153403344729455814529344904397351132048924080012076610050162379090545194030675975880670394960739855443865563825214195944895975702331905286196656079264450426093557932864275739083878346807715191067913794425577043050343749759763820294118015692433216794055707496032181861894750638368294735610107228127253289973061452410146775830974882385786391937359490997888530178962823576230032384963581752362672990318627413504764613721329511838050706684177159297034612032129886414602115815946267388529492814872034659541302135975094173959798554406230413055660842848998036856739741895748427932222834553540215489681059171423341326194787536569687680372720052787806958643861175566944732622263671571396558903183192924805079732355044466611921558716194476498047634998452320696765699274071721519233399044056223322040915338860934029672726866046896330332818994820709865376366410248381985086436939410063506200279610206883288880983395387558721606956165419274061051578315379739342675074763169439875805970810278358206898187391215465718605658565178785717720641447776927267043150424645742810515189812449108565374142655013882321049831434881252056249661967969829905469193614507191581726785159542272151994368785958023441666419109580890762309158095428078238823765387715956024135216418824197608560669725042304140940659428661056793620837086909486951339074070331387931632385320930238193272942293949689171628741569217915958173403158144805036802124409165424292905925732522143483839598892985366084265032888771420660292059756312569677725423979868038305772013922920415474945323795698880103305887460802923307403458846752528866113349836929938135520056228510067606460414110180452406331114707123161122869229741954917680104059918778552222898759415239058369430343551765844824002537788583524293767539427676849040279110783862375335991479447762953149641509938171484030450254431194162515608569174913828477357588356587321225000301823501304621207221043541146497866585920103049341231569744839931492840400112588316129577416199919010080015637639520348827729434967746516448357545581591403547816890832806183273660662852476609097139967940016552932487441008656784438654010413897930149514568305126785669764774468140906696221086919674710669053867919202138823559747256915415755069497546644485265496728383804379276940059931022849817628419525391491492216061685383776664107208215251142400256332337033570858181911332203671210727863875997515845555784864248409514301623121364070706513355925535335128185271900094517289355052735704588165316093854357239819654365881553977252315894292000674462387455109350391518744758676379628416138992674232508238700574357323000611347863368479094466831592832464197235395032186957012020480572622071197381050062431235654662210220559236196463437554015514016659695817037772039439349876500361147595009919564239897653871630627091215822113964497377707853244581674860564953124597126089953238278873676586431868109963083595701820452180200145952351181554180713496296605283213158870774305757131145013609804882056628106435976711382964951709900470157621552205322036876613736766512894705487915463559537121814678517417213198568479675346586351486395663721883420196728932683637562783214453019324922176227090286556358156694578084013956827920498352689741994809471961720078978346718201132570167759523517101181357779510540670787746245571287829073163493791557567813011431206518638069357126716605504296430098041756679952475295511188177186366203263610306576955411364152855744437487821902271709220358648563290199492958136599781252540528281895208833605478491120291199777575417905109115537133113664062910468322006921670450573660751713651477777403823306400808693936829063803658605629534424242408422037520067034654112151015324571428967483696612907495838085212176678349180615694573449948931835860018050661838403094723723809910470950185451531977784156049696486221651788979452350536998471252201570643767206104983431959765461969581220924643659583801727371022002900429846740938667727044110922808615370343710535347503892679510873269070702550246485103962563071753537302267866673679503847333473275291946722098264572646849177560271866838560205667345598792439392939785336867074598541755600766651239863231564942587222266700039695998928543842267030771980218445869505056346505977690875728980522977027146736790935496657563561769741828025777080111360874591880141820030606773559775958599092752819445012578761986498315918315126960032928395001465313966784605169009060941735098528208129608613517932106393320586734327788343462704324978795196386305458851792491609203492201555543412052416017892496539624093674957854986211018654974612763927934902818724576715202426152998288033519889405210136721860944976147830371087026447627606142477077874938618582268133045375831086556969846580621879833652207437756628596485400771563116492034930049067336319985861094949245652085467203610422569620815332275399321657283973346040852244409650436556377376271509306379437886931846486900158345451583713428558893348620537566626597469444389364943023759945694620021881595055394186059377898964967067429241033274939691212818314112592263939824287407513197811905455335968860844687306735062735997989099881318642529253163117351883732548704534511120491490038600279130391621476384263749658237191653565469405134422058784189958015249091270238522004179081715096331675108729310157404418664682410154356787891397180612549232056319873658093800370635790895678597233022936422498613863103669816445120388743595950549937016122909789365502673909828766102231926658689726560271093157447654454412777425227250884698129311696944927321916154625652014622549455442406218792193081874273759289121420105978123675925898966135431162770568235411701076456921157872931539379831379752460360926036328236568816121311979157380206197705575079571731214792426836014556422139295669265607779730092942715783410425563369075940628050225771845129171824461450541828439348207519435258821205132205614186754188330685551976187554702493972615796277421033405848428749756499353379819514872937869100700789953171289808379420839181370561536124706724580514339661194770156304844825472121826975698448691930094557157309425788400660956515089867835163409844000911927916233848924664020641483632450077802514663763309904233040280150220975120545131390292644563097908705154171432528625881398162631805202192042801439216690798238857811710287435813036918998946161090244012828896154508756536261667915050917665754893469987274605478193202323690186494700165060321689410227615671852351359402423852357400812165683199365996178376663051815432777122328756942439504315460422412420604352061579172150707446143948980399957979479307188226862899920034767750748381534372500605935721725455070013806303707700943057455281351236941911818848023082374936011145834978732785978021624833267069226008056921575424046310513789179046990876636063985400483538143846740352807574733672533097015343061834793799907016628141942803547499788102691369916493025666096371226246137888236863582122612857737393088864532466961923975358907331047147435059183215827597272585784680379460073045598908675305164521982451618511481856123105332504081684996534567350887278415697413899149687962400586666664007710518462261199951514628543734857186764548696774295129726481630191341069486458468445807318174174766292061509178458251175152768724303379416897306467744316066162949903096030650283597704357054748365062131855999892666869739287387510268647414333964371483703339630536846137001511647427322280959082996725196742342053953116107703770180648581028703209329040374078212870505561213484176881271740785571895894311254252455340372223848180142665641255229724860573657560787338338639032754166133136172919356824636622873719822723323177494779543169817700782756899420393500279290096265065278637444161795203218695418801568169347864972605661491826629045297244369369097309173682709961321438509341731230630716300054013257711427543722548508975889127744100141452546849752583251553337876150851361282506975966053611773637429628218977160725281037133283432317942183429125945356808704908930394833412433463305383605941882351822549345561256366010978931578154587636745502720179590814973379470338981962057284154500834789350022709187065885298137783328172782780901225325749033269436231040573012273140920617885519539205629261414172309339279986688179825301577839772493506524977486662076213092883268269773184132164226790193635071708963044280143648128346873583278697325811584084313207397801862737476078148425115151633683584474341654575282291499021531163317699197583524752408837796704384393786903754210720882168753341691592305888956953678792825667909145917793870933000731342150627971375648190662174638356712007093920376870525828302043079369012418421438869515502116958114552962451106310237163133160630087390888144762985015368015900129312277467035802565522576479889821529160060917140148750146757417240927042597597269284036162782497581033965450086335517558164845567876568482698337653111625290111939164494723043343510469196905946935563783427529114711356265924845435568483839207709260513585453594893440494465714226325209368485516344534657553268555120258100637575502862148163921079194156192923726667920982418737815071592290570085073681595432921489868566532295052256222159916163922345216518045938791967986228688858282656750845476648918557806305556798054414866938767422126783349714071669136297111264873007914670182986123777646547978905696638654884029632722290373776383036033260097132821268500862203464780415610144599111881410754490970778935935875170474328373916429797701875711105397507198583867402441082412261141654770965018834274331988794806642698347164061168396300752705932897056293498714416566148696712926813486132436307904037192826264298729774674426484820045337847993391395013059337033168824016233494483517434478837622046514085497179783173502077421239038508143705141072448796609668521672517311000011512493005827994777130685360358870709669545347105572554404497311814336052550656245535457939449984424653822782053737706656443662268592694538875914842840630438426845246869295533877188183291999375400330831879630553556319431640736087068970349169428308069016936649427117713309485782116601368587997590883903379417785645871435155097719324040993332233834642138152590015683080759251200013552212665020349608618368159856386436758640839689181947751501921770216269433196928987900373780927944361188424309305678731188401319838003003830655663130576387838788742077701096688427571945854237539115373124854517603956059071069748150508880741467019997824002921388094381673892643792964347329926145354380155312116541569104172062824992899053729372301375612943833116773904998151607250622099187071927009222585918945109398838185005063536919435200758649692790240128762769576630199995132831056932630172911846745281703480640819859787499526615099249486668472458491297264033837055536211205203526404425249400456900231309144334243746266872026396817943795726952769784810528111738494514534923987226595611554252315190534137195536304363832317677631253680042786045554624454045603136080994089088401464644227496936343602791016086040911470878345126304155941777001893598698327509611681502638986964247061768277020075203358195503639808561647930649016038868671624704858635785266020045095743243761228475234918991567975392803227270661974548826996070659896794538163375920260706500167089776718141312276248054485438444059841066786854226423778711056743334842861480317625389593345228462851845897205731551605404862692843056530489719462366109506820698589622420071462115345019056195672702134159640577511608068209086330105496502617953117454227295316376043441010943726395915362740548197652535456682369116039029803894611948997680398148715059070034796081533162954000103629103137774941459220595765645454387825543318341088241184600742674784490116356511131975511193150233571265477929711826560521816394343475692315489671791583045190626605626094167854547868864860321233022076230144982918204567499045591436533747784667379162700351130019259828993035788433267156912987661856641252256389170869621116619762893521871653234248528084048499633466815896699309799120242150229039676501495976312076414308045698799099342688027810411680543051744371367712231500641577974552556437296953899798890473765528841020235563326630382163722868636218821594188473914834072397837299413705992265955481613811684097428845843097304054366124568485201051823655105423673341908695963748695773101242789620579781760082055272475836101080293877583960870535559836149474327263692076875212619000889213842064971352749486198454803101062476893531030919935833473822443447821010986622142529692116382902376490845965543523623833288440294116827228450228613624409164532431742387438163511381352402067258621069265700117155164203076721482276074080790816332831504778295262299399225193919183815260086416139167404172619932045959160168723899549759491874082277947991144485744207989387797410807839684934956750128076055715498483986046967077874886435926046276183422263377633633034902817694064429497775330927043932240425408544991710533655736471018773773864505248752285910803679155803069353759409499578034718085005521447370420001541553324787461088356880588240873829972742154254287463982482914964159933425280532307769256550933507145910976781009169771626071910314277087357574426776324252933781192046741959588667728990924979766705026214603678406749524598782010881715135787102980765787402777298101950675114077041855158772527670856476741173692208698316595957199858175160377524189106577106821523996319205412626241516499214548120787786441161600410983792760799948623686738013347602621349302900240871426627577722518614878069876550594910760797638810503997104127835008951660960446244348250609690707174744547088142735184474690220801164352119380252336192143196142008047394342856074406788365015550782763948384765738131761275244465585579118617853494300498221892799945663963299476715367331851848571984958647561473689925075783434204193732526488167705223195122494482965032690811882870812160717539598639041863790577947317787203255298983599829879172810021676462589399224423282619513723382118254237324704724261490364258562194984613827455134294149980933619979443962052809437628469900901306111824432620391663477559375496952179977258002116416315759141085899988094100705176653389572098565332947192074593809661837942177328569948353018083772060172685656460910739440617803867955094523993682404699998380055836050935254422070332894743649911144428511139931879527687196433381393072227557361813671849369958703578313589631548220912226854895036033379849212383060714981071908694838052620775125544935450000194695066244868042215450888271194342575938274596428511346338653118516169041057808886871229356286454748090781661546554690713015598409408487728552405494362623666531289334751207993199496456215161152317495124470506873899819052916482340921908558721904613758438630465268794822202211082102558983816682283539191980307623538774023413471869979485360754926479229980155891722676950465654599452923551277583585710413606162883536999228810634922418846423915138279286199960452844915982970086642658436676881569066940149538423530613181550634795159546728954846237686556545679429021699983371181384409000062994632026421790721253401616760011125453743405872597054113567519205715457731544805753935361392256212817254093213691192843221224340740099566977511139841526147278023561628977091870204931427844854923303349446358174513957811137231526638335181599750995165138409150877745007159453057027111773564828899031798206693874271439322708002583318533545579842224506439579471748263123016383792542616456786297835153073114123844546456616056352849594525698673529538368575247193121194326252712349448762094228968439486156972893502491059536298561673008990266319151930209062106237606826394301561203968420179729076918734649746562090456178449409487711912795425599089751301787113065496660855125064365354875680787099567240669200014688145978539573157412299501600189265834091378601365306601715477018118266509711529436417160322579512418043393558349765957288669069944077796939065787182449790980960273150280918446586125647708266990620804954597604927669542681470743054664595992967086108979067646838243012746182694164482105249755804696708172200241161335481407697625967793036314216956295578293144901838028975980613186484367504113306675349338162749671964923547736906086819647562422004091487030864614793696108167524780399163444857331581806957498163310229741990149470798208560054498871873705281107159275584265155296178224092167020890127759982194332662894362939659790616492924194966413879547894267915469374269126644264145630597743794011781522790109425408005602674431615031646654253363608605530819239969298851942048053581075691967197421375405965130229379933863479146925783534712024808449255449028798722693974934017877189550643777942096112203046816045637256347421724868950470280262197254001072816194007704845971275309618127895247187375801337304398488340065019963823626911005415277964235491341809591453346481774873803150629775427165161524348217014295264744602072688892218456320293137094393398582438769366160949154317107878901048703444051482918547386764843840189238790208512258573447514363884455966368617396801865361185220319278666218558103016112107278219758219981015049440731074035972677525241459473510662323369043653071163084514254371763996377038638886701905530276460353284392324826139201572655990523425095685740239915229952790484598927810783210234942027029671520247397976535307154999709110780915416782720817003339130283357769707110308343859224635096057138807243515306216567397781920642031738256262462288104584804418080205707089601232365961983575024885044080589647217446986491286754243146157797489499706081060521645991715257023420747919527290951930384345617907852891258641356077619626872108417584090028459737884755589563582201632863216803764478376139833190120668474025923102447491450593336463678974199529345717617650934367262363324534242588466907021641219052446041017897478322731028944915054771556859211612517805986247263899453837234955277093336106903209416076964989844438743033505210453384678988044282621438264150513373338124537460480409907616281234583542202973013179935221585684263233891037149369358804590375951221881899147208404709413971387416666788604560613316289489352877322397418615530999723808937349190196062307582527891863141350340841730664124282180550535476768510405670325985619503874299456625793384614911079318191634526784468879211616331015437000543059025847725687132630792651947322071743958127808881813978673360903055736006685435433582340411697683165426220942985126137108025662668116427663994465397467754419342617198568188788809141410852850594776024830194144696177252419634988483628915825145398872219995868153376340105483164505539411465844252893806014485849176642597442107652603077616610624902341283266055804196489097538342212225561608809284796590048673448285725974753874011809912984842864632797480768003620922023973935738295404902832583560918934844073507904035540590407458704221663289843047132635580083904658393559442121819358495709670089151990287563467874590078819608546875973364268655139031100601785965304667142633007237502064422438065816406866840896788619054590940767028548751922008611375032842956292928692865691334026780135542043967046839822565263549784988172447323172354474903326099807925916167693374171993685305713326275055571100296615231170244002101387942906552666800623538583509672505097466261283981288218924334329806076327522853264862130471479930296732327117032764559339994579656283734864710508347823489240966844053586270655866942595752051211581712105498703430929520020952769526531932482442223767312418974542823862838215065572483994683424840003653704964469731882494306120597766603566487745391793173116178348341969495966187161963198386476241988719881351863880898158368191271127108601788226058712811797684841901038420314366211902717882188717112392994000847592506625156885440931312967263379251989607863125899612309120767002789584346993175157568061845067306927015320766721958928025745705899805644405306062652567520857640854846036183372015334141978342539456294915889943843879523071938341426301007933420793551737499232082834596984462677252597109067063386170463149038778553518430225601429877026941021615013023688101831133498304717533859930552581749007427623816457346949383061354631256581685530746016122192459155236874575966249403434799201372298413149654082053147946871802399902013584646559415408493904319785625657413892983736514505619129061445326326636522500572228868458170128016162520825629364331004634652155802693080725850805069156190280600283363613424104918981582655803493582751323528351048163748239751552306612064190844681413674718477221383630700717974085177175418208109031571164660988563212102206681193751782954166789178081480219198386367344768267112048511455055280407241588368164142022494153194911000680479606540071689985515728781226273536538526889771055085440933528870171186336011960857768810014296056908251866687106253221678207055726764260682914024477970564123180218267175164959475588113036308973444530286697793093658371419984769292586325374331457198547101909444105299779427483967220794030681010647123514771897546125138737153909144311542290359012870088712423999664744152732099341647771014661890335818544759457868193600380011458747544474799117783260725427444315100011858578813599528480442651270027509393934589304351240641870553261424935979914739519490927531080140698468792602874308157862204831439935410776341158531080165695335860204819695009085878465503595141068527569257964496789293428210873373630359783978593151208173560786871163620408695813278869851408115721510328381623547332535713230558284478001015555677739619773683789072372943326434808836541684043040935714232507907487866905900516275690385834790984002277132311994252196897379568282783661259217093656345326716552438347045592299217890837764599429705735182640513278638595389847714876303143520458985250602457893328775255638156738843325643786949783264700857213165096241432504757290528704566260221168979134581798981641583571169479135783010543416020495110668979908680781822453126739607472352734185922822904644327424066450600965047887991839668995171113463258279117113003009600109224252056948754005213673598660834104247731229833948061929919691011871971770003459971294940220663327767145164303925369588655972693998153052938342691300310458796284713063805807368311134125862855448011441190223968831089938675198820993249444961919469659973204062356428138649973617092871691452305104588773004748066169323953205905740737085666159934020685120854368106950878021639365226623797720151919956345658834104508624890791300452442468485416622346592883276375395928091356797896532890456791167202777723417305119256062157822583079799486333436662623386127654156590003232187053192993959515681087632597154979203450794203939643914088901612511218456963889685916181922738212610739754954552702553791440801376189008823248341975195679574289759151821166421636183391257092568930241512374353243807946803058897903200955659890562250359549176469195150453058687747640977728222278653607118279689434696908167837735070953724212794522264946962283110082293279898682734264313083605143515026876603172688197003283671812701407482624370583059165306678845506299773690800035469586680277742439550126949880662297239118501752826373806407594783818330711145447172195033472329905470689106501851515917292612915536998107460254295890073032466686258552760003187821416857997096447575286858682440404345151718899990849709931654615721039951939623586977977361381678391135439111421730321148618511376782745229384170841912747654738669676523931783048501969562373446575949572413003840270185444191577076328892121881127904434440382125642163227551946441535999793533578974385001554953247048169635214706305448016072586081186991228608168043324392346043040818739038098341029024912754711984576149527097215856540093081814240183162421423330739033568695319587796265714946297394152139943463565775889408858796354269039238863991872805214868621386011796721184826238383391556646073469831043340774509488906045234178958297889971047958062715824162495156131762074468924760868056840461230482177538580771192986867965433808003429829362021095066091874784456527384809057052817359286083045983692217222000481864074897422975412722837208552095235897069815794033227485384548329237324853482096390724500897038949146468578490116619678897921002764102949683875522310281787388258273594376355309517163644452974544296463066762918469711692977444073623942744787873339919349936900114917095690913199028779000994841004626292420494032822940879042390988943806975714181566834828066903438972692032675085418990212093596636974284358851410569705608847962473205298140068254542936374114267892272099145863611236875958109635318893518837128379595446420612916758442477499692715813065140034205000856798238836050696918632764195869678478398557755294448498051802374090898895114050800669068973455984357646910260222450707842140498150683882465679130317447305824700065975580763070096505294851664828735872898088730557778025782393000236067733752958243800476188290529068535870048224799463936454494968850864345590366057071393696091259118387867481564759967057619457805371057407561985220599198821291299127589873261367891174829523781844815744703011734329325844515142293589959346363398956461428119244246794915580178188614486055312906122781478113293377985032162775031193515526675963048375001399598366083052725079970262934060914172721650191873111210821060011650397405419238144657427998281354365687929947641649187830865467882410852131865619497827690977062595481553410830622297849994289798284493186347672108848526184399716283483342933735598749524496005806279064121733170276633888904412849428757198482660433309395402113340987118895132232828617523031172677457660065002754030322108037133399336229058262651014383960491694181756132646179049332908612398410306453117853823469636916217037077995166572077281392027227756359077223722452992335819452748838790718381236433244740143849563544241837055505144524032167476353840715176297101451068236048463307722276645155403697766046708731478191340023284706079610472216738707033396802915455334806387010856989625889357102867043393321130628307630727798511178624370843451786955344568133728188687687075000103299232239926414044929527430758511994847196957265771351554410209970183074849045421500801090579628591369906949865489488581472166410427432068152800766475270117771923828386213434711073903038525231452017754106521397185364559079418497979016702734008447855837367761391982034199822116554037257179880548260329729981281438188065840448860644824473411106973703021242026179259275054772078410030950609019626699537790095883472623200013695139835573732817584708478699814244685874525636326306105127700287715770931902900146544495440084819332730623544454171807930678576515854843388617771550351519450438226210726019777693843007183145167346142718843318320838887120777934641839400071714933467852243882186118710324685682438558211971951790352542463643425294469751461964451340689776906007122005472541410994920578915674125395259299060504578502901993891423359828456437589904503688078209477592358174830259500261554375873822507167269463658746267845883084062401099224530281479093153618132904320406471639942093075744098337767701809330217741626692320642608287619473046089939238406994597716462574383265831774324108949066592309751855892121248917853909641282673971714442551340260955593975747499059484491686722669544744235394855504165990515026877227500381500248930544829724311761588189344396350173336930885422802267075142724140280583619893367419988669979838996393751267658297289513732807522917367284220590586377924335511335292081790067595805922460020032359716301324495775595410523135366372740567977699167785105155700815496185694705774415895260714312227156946494638795457203767196145442468456215996849380449385092059427306156158363035760158394149692556747229011095875985423974293547776627464942863711946217421917934457577641247198685273700239790629516430725567069788774897899191193590701282537163354812636195051174973015459897870692297787099190514714379041815666545032461947173867007538388776970400323522261715692941417925477101774912431465271961536120279275933662700086070120218312770309709492695835372817464578987326562735056654834600857954502786676201443649177466415738344446017655057876484412106870395699777352246355509844539260181191198972806679055263358530408495247287763266875884237905189012883102688399083872292580357651643855108341346707826866382446715428736373978961201060236297027725530173444923619623815613667687341085498807714820960578935672721610544011917456630209613772538177084870351473519267547784977635263191772798655755060704377696239294442040168006071061885111650369888619530600704487501333282629829857891897984843614929340189938573479292842497372104593660388130668146215353933248183691608314913633766139116668573210863964164640138273578419572017887988803357656542739030233111182690174769085723024226998346700983522639348900052487647714056399436361614724905387324012070848226843816758465179425635456093167923133633684475572602289810092492296136618242468807523574796125528607627300500739083531787481516539173329442063250041052405650674600103737293649716214977958783126873631493596424524364671349037457138387489323728286466336499777361968200527534644077927186928911020508804888805205767286526354196220264317062776398507473681039018388714869413348999347544418055497301083453864785160780520120372017055489911721062231087243175042910252130443923899127369517643697491034041027619833800581582901896274490810989975647289488048570456860572264864525998501933519943924550838391242471100697974265106892435206082789267844400245825598708662421687385086959636273187182604990116603510639601209351954006641654945459979074899364848479558626995904002076591314283012071691079840967961669385198048482818141648160565413458432268620037742856816541354170714695773469778538548085435951174500679253854397068731265981840897733626082957382902295428597227612772991133012295122033906576270506226108302662652429713028694444064367204476004317686642482468473012924133529519375464956310438716369958569559317106858245463640958821222305578792689681019000222431127839741517102722763215151819989777061809849357478129080099193015819712600073636208563151778080170046552084437472500293226824355806806713380242864860847752611900049660003458542258781711065051560413888485719129324978393100632934098403381285688882599295958126826751549712028082031281644624096623360923797594905092906259686991896510520259249310516937119640492239720865766963829787363890481909768073677356256041317782946529707002889416653758941435489494173037694240137201853300531350652309325446879783255792466212789949914734825131680916049700403045354240984759737880659097739446803794003959928017969108202163840305724868671518373733828218477584783326268984427560790552826093258701403952270992827237586577867588448386921019258119745983653327543750834298722462485307805581343165780370527423239981246185858042771822200054157132943205987545202257582794296746332124878288403654156164741075866401588293819058087040419265701843025342185119094340596074383880712614759515234484543717131782201282599676798126738720011584574705884391108099209682954773943991471741438002481660979152290524202212070279625246689018895526562585790568322395727025791039268304778053753660830146759414018193271155706442450273552475794923776221040832729345817272642046217223038487292761443795455053066457610105640083270647217816993168530321620538520387342983510930538103729544341947623441398273974087775364331814465504205386939971526537420111445048570265261397708839214495122765834906013238990824818137971470325195740763759730098031763305464444751601512268911361953878554233935545642722761335049303239620447486153170843629224940727979828822097351231701689980583220481836563381723943483173318127804853329909235590308486135319890102636957109063590299747911436600392749730287833029194015964158416399311343362012703743639022501583753412533114795654218732902369293005017802358129131901908921172367171389852064460106522041079958640682764512865953998919917958699221707658494365735533587020038380991662629080502850001357986618036192189263420964622158459141557249279966879359146987512120863229417626736932302731270726694543260981304989914587684388765697761055572761574369627648344117048025459148307276365631313381464633478085142727433204047554191405714666552632896934043143757873654001531864003025931115194318678724639490003224761189762148727062402265468265437675631817208224349478269119745296133231043142346472021507985240068016869380553468802067421857068509390013748925356010983839559307493130848267091551716444239078649941046650139952687468544274134461917382616370663626771173114653470884463912106146166226994831784214082064221216408863898946592832132501893657871356371700800212901521875466171159680308867416504219695855940725591422275269044203056788705840606615075088436229063042594586628507943048865544588308378316320122306211124983712472133132258760971081560887039778131039235293950098068940730067952016648210847279837824893462703493124849851293828029484318915333622874576496639059555630818251376237226500722597665280985408228378153128057100368906810821465354368974888716986926167987806334300811352083287774568465536102054538543772379496743738617965279069080904080532634633466017657278301297158109563124119304567055145194881570654072339210159083773459632605649253794564526248490002693501367985461366396766587768667081223379166741354386570621024296861162460906786733108925427337187595160289135978096138647954939589993977615371173827198119426277934003587441473102211091942607828661731179404031665608892513696346816078942301159664235563433069256159622141320618628934878065627084106232503224569140816231406300863008011097014925911133541002276203832267153939207051182919073884170887176995367806706301800816303108588430375390798620702521227550205207424839032287662979076602180143233425066649297536274638608197239839661968269396676604920294321780942236526041841365972657591062185652020795985464750656650695097902666697798581934378908649316946766846762257650291643781855410611345727004029108471874849887885515464283609867025051074631049322424272161448077110772824274965253191013357930367162868903923348318476221773800009942246786762876932688308431128641321829906361015099039115804984619579374047457767637993132994380274595592061519107933719120621064323258864552304548080703948591810426344148163873652236532045012887143468044409931186395816009839570131010040028384007945920987104561268579780895997264909170209779048732924056676578882494372789428430462499287075991979240774760243241074525634564996782113376353380903786097720407753718879435714264855507396476287198055584909508929544432342078234464195551415247561871759200266281229120267348086050376531783144762785309176065407768418683743008329209826889845809396321869905931151736686860370856722856672452252642115056924317892701655433440104577399928712997532484128014367054477191677426702293547374184716453858552217550914617862410445652508679549164827891052603832198584809280383118046297563748757900289971173061030735860034047253020955447722245202076962183503887133675488805016797572216633881972539863113450762467470555158381285147238097927424521966632929546255462407127660430523277124953769498166368688807075151696113364111708474425571960992459637713699666821376096904958057308622185876291979035875070630284005135327170949627676977094548582135736354623052778249515713590245898255601485824118221168254081858242601179120252724654441212909273355171317713410467901895744378573681231634003702409949877824983275658758974604064797092526476362807979618774170568440336382440683915028198295158640072053913784213315077471121685485656655431529928140367451590428305718750052530680227315374987579985629532140417028238195844585734924744499986056717980306531321919257602472580345883393884658033741989081950529360496316944850387898673547843289159732843936934145583205976809586784986676186381950064814499353540900270118872398589113319296101763632810224574310769348857668973347937787667568840716515747527734498053841545610742453200417001001948224721378010980708747558391764280483532777231637099440821688333076833845921574480189988430035680899220572681790446730533648086561285838979414555898755963192601977563195274882234434236772510786558721569983987472037998901731962029810831841466393645563594186691036073643366520332443109669374694576574003054454012835221503318360720787124345766569832252893041321162108594659314565381593429889543264474934847762012796636771015107452992952067279630337724491785913353705431011881375605817063202004914776717645100467164043945427179219174870774803976745213707710388657623740168645253651241729257000442537296211966486122450075633605788826831730183781199978200737990729025316592120188656915471812401704680258409070001764483268337268560264826952318042309242978799916229156879644076421770673633794753042891376840641309983424515870886803648688014261499554730619292408537741013047388737237404700173764868606210337644360000197618563034896543720592611386262677193628470095479008564377885076508224950959852757544366680152542287293831646093460931464123775880642450788285015894455876425706379131316351068248529701225720385768073023771767613586769252443487011618027815363826421681237894105456585704783667631114564369675481477528332356046539827152545467401409093990636213034639013995460635168088769761968656198107582177288068223997462250640410729985723018516068535015102244081078432447555003420079257170318274281031518831228284467863914379625630498374030795444316959134144754604412506325792197459903134815080668630698864336627606469376142644602240773997084377323940482154375853817988174769695975834345577008908187612754063954076714560437476567471696319035911607608143275189036972692259534254990196356084411025873080813919021839381268652742210851645196848383952767122878707901651161197122305797447815965222302155084959804070191739916590652333997150835965957263435414655474747130926826046494525308914194202710304215649964650962656441919193774749355006314344661988594575102227989386045773876039873593377203997943320202512068965563358839371498869292107745631917654924592755695461544564837361138633084717374152634599410078452743091884421161138773173849306339779841091770599378280830189409636383300917760481358223266783970200319378520676485831706536039426136833134633754656720782516801201985964305150341831784217326144701839187797062027245419002603599017730576824978383316378313262917641082771799547846246439333440883581055819378708478056544877528387076198564836714681174811375880446011017785456546340438250555048859875328562105176827370444107841065888161518089368347107281511039105288826662141765408296979058756523178907947322436678210435824799708090232250104854512822790946891596486569599153513025143343364481004247214365924708322221090109267363452763458226472304296215829467882003430532390493027619388337148513880166033864929367656312725485100136282475854243023218105831158504222069686469572708152481563757467445496487444426198067658915397975374183718129249835569759646038561528755662147341325636155241454082570486561016787839094970950772491860468338104085305791256748197911920696690609862586323235369231555347708362302558849464781981134646637639480021526884373041408955803373326565802694091267077061532732554023687141489410371207496677909712771934361623270708305017417476665959164856301252518928370523789346202868856194845347108968509593097833900844321467388862045112763661418806588391432489724374349088915533275333926146245358314946428470295178173616650322567376222807358652236449576275645881051279339530919866313331540803768721811669762425580326790771054153981050457945650349314877581994597477377071827158537137128716845969374921101411938850967512241397712039473352624767006163969644211360197384202619989993336245641890379322718041262048288035999665458587116743969299890154348950645391760520566337088082511309654199431521794631718839477734366718971417298763000007420754137781114597650179213334001273407278075717147079256469385640872471972283703830623926195938772334521559819590517861721967984608022668161295078655423245711284986536298399667964984330796101520776872057303670175255233137258887988217168721974377316652733950773834068025306834500017207143175967703543689171819107620707298258982675809946454133636534525423396260495366939519612374886636715967343791288035946223463307578505506858636661320805770539959119585029249437027029477923054715749345822146842699512442329125739528948352460398557164075858586898554441781681361441576099790513939755419804727697499902236553745063301457744976952385936246140449653398202770279862348467750259628879482854060034444985598069261615819437083732500540713126206542194173262247190355186174712608099900906431465798158032061121368426364215637653040905741512304882677809243066012663572003852282104167142256711025099002232044811452002754303084040961190053134776574886629142409872196414494176953346351269553473657047456445140710495681525380914323653809556010102252620393298499717708760863784016104032842534399772382344250886163569962954178663735283353403894026530103256231597787333423490318834566879538794324847331891358755348029074124318471991051485043574648433385829871406052231477873030909884624811476640519055673696494383122945606373256366527937711892505896164083343086880805862204001175390028127565381917424305911596453570124628009631707268290822113235400992715689374796535576554828476076681851490989506238121884438016041310042130976467813459124995390643367878101001370948850774471593310726827100440583877002429156259084466867217835994360020895484122474231130203536412443081084337084119783300241281707043426859421282821003792716981709359566900372483729105999282125107996529026367621407160892713694681089837692842836525943258724210781021545755218487273289938987476938844887769201983518772015580712076744012814361977199152555374936859935668259711210311601693534443833455191862018534445459320309562633931547716924016837937776633194813664633322806556527765924229972359135814781239868057195156571028081156548483631355930357054727610533217845642897829065268939957879577945878236967092773245598806594955689609398237586024004135361855188777927534578430169487327865080556157615340976298525820335509635320023800967904802417778187627179464010957381002495545729855151305781859861604353322635898392073113483103546246411758327800521615311386258996607692781787320953149761400722340900171152578951497470931484416356863039150252689221548015071288520189529275088785581173719492357820347157640118392438162963603386208656398435909129137316254736910792981269879117516183361199819947787451782472923159813994229391161552833614983933450956314870479782113019522402502345562661266876482426477511869819737774089766084924623761342842552028548813462488704680391836337666868460134175788852578828970520841379553619299541825456650657283438794476811042350738097493533425226467380754078815711549553345532286586011880015882491007411710134035837586148851834066853965455052675626049050500692910589102294935355230436915290508559196768046584298793887018162975392277007083157842013327486001679884725780512877796204331370929274234194222613529135478479829895090463578600334820209927977135610251209213494399430797159496113216454413268604313564221735416901149480747129483261132246623779475316933346705145173856629120235933498668422610131518565585488768461890152035763047881661309998503009750568115356714428548315009609324213703621900053257225030300184816776144043379340090001577777183822324361179797883744195272826795519493827770320861586183304272572137188776112567532878372717096180003190019310462956908119684387366666163441475265730352534593608617963651122760071074058215510911878540269636004080262323740062777511865636273238007751132040437958249242306759431141706491954911066554181164031152644404345554771119016590227815849432820339477686258510941424428021543547217344857692181962043799420109941923522808625260018742610807211517595753997179136662147094622874573073726922799781414905271710006420329130454690487053728608856475093432699948699962282992099373790338889398687446747825956704289803200706389647487547281875234677522032945875655683482681436249773217495686411864953531316633177606299725633169901243871750808812155121144482569795261423746094726211600556690555014512733384114825482206302191094769961680836005958014157837347758834902977465120642066040512563084380312421180020987864257461359617207685279288390180799813731423502845078814636184930850321334110242072841873781675234161835279873535775432909816158163789503651244313081535764614806330256007896241261164816134941043909259233746871027065032412441007235809789253952786950766230137787453711384736981266144908780558750781282678736010932425951215201213098964463707119926051807099762868858408565461393742692990820012443713366850554342189687442223232606504355739213732828103496830710107756942552769994482555271383227264680257109780624302402395789545759352115074969065295380793717984363029232823068936193283138948255635585757944067041620569211031775466393704309854546312858623128179012423995762370879346315406015961124545728499559202192152169734013480143848790843685268781802044950799554104285255359661386666073076276598811348085846238778607202282295026189544530703960745345027931314088096736198038973299092344095642768382602334001831118358866229414724571265618333166264980180294660709966502238651652914368503385707482116840335757232507433308540495616624959633298033025886167888224574161890245872246876228383531643352634676104827912543766723260687052902464249716821523797209542377358126435555132248687096170862632356058170624525501828425226289004875607539127964940581474194335801511705011644913233947651101083574453204925421100313177209180905694746225395419980516745936429737225429030724761027378361368837613541067915951215010784623189695328863308045461476963984239686044982822132162033080248285756079298487912945843902347184533693283964982728298318880985503202310954421070111790920512219132711725144172339842141001870000626565764320894743036962714292478553790535667387205367154601246248646020638726751834071274519784870387740771303317129230048354600524826768519552483629909779890134527851179907109046046360121193460882884609505229563584333725952112313078650133152733738722774818749807827092061488651014834791341186977651263873593859015086372564979323104652969794546104592808344021111131505270697977551242866415640818455296789025935688198677395888076594599936374598441109628913396375245114924747609805905358413763447184780684502641005848305162126099277343004031561828956294632697412529691789906010632971015039969307450917997185652110149440771763837789336134781237075262882048440710721150334910495502627759639716085297651516550210654581745479360140359958002823832654081232685753101896441263460305756814091126256937626920338963175050996500170102292251352845617730999303981956929429625361952743183373921387859976810725063870021075736063856485041716036645523903944170728452282550343581649303847365495167632631507128143788123317068343752058243590861614361117183242776126718593686520272944950285438886197190313683423225799467652033997054420588353853712838854229755874819491757341867337317295902221969315282498894515062848488666744716952240263266128951017282580348110116191007014408992044787349376157452491943707348878768013300081694835774791165837508204748440668745049141741821738990117498620114948308037204348099185611161651771916222967357347812830186398240396450516268723636819693479943404815691428251937363956023630449180805787891754048485318680569704394360819312176780973508930625319335488619772208695681414594380425365886780222974074836740868642620354037598073045420979847906987566888195516585213301221544710216459996379604850501993221429600043337248962269996740049633526527413995467426057757024379441569917117378038377029879620009587542683177451056950504902025212326362896928513565766497557605445416664178930980829910179789234717343771940763064406519247521193605132516925196782190552520772397041583230481608989188953276253244795603377089395646366494770869636200443209937982100899102796251929028388026501965258171889691213197031523399619829568482549703476153937427166030509528130651109465917388751533715602474190624892869509395090924515675317393230100510833181671007767207685483556522687795674857104137906055316059027095802608956023454273720652696844445838327268177261928181937196101685064734687523261327232593425427703053982417770257563870143605016544363309792124650750365382497097691997847685540170178556739774338043679079855428260012491147892053856890129708644184142042331671045513070633417711581243459693300512138921872979190124025191562512442226497245750752132740649133780045283796292701796346437288022512688643940161346036761580333593056921445498340326803051239624813448129529769412084754278195477041754147685284521934867186420144246169087951434977494249251285896657728283968931376609058432938361629674912673349820801210913607636983090486759466003630922554664808182841817158904539397147603571956631121997627094873902727166763517377713385373089783541974313204228605126437112616658439703749439990662802388628698437216973225032934710855613933122276824727056414216593066913131730213598315719510896954183644216274604916239276064242957391950982903922602619898307500150568044523603837503462238620316935163839301845837497284423518265630492671252754405663902981154741646616969539901300412057948449911439890963971768493968244786098326545838759502735036491672810137220423069825217338750490770347138483980033187934460391120469864280967697933388291809095458415930504577391197318433411865421687187162985669603050628311689001734557310664655586258874392481256205970380592302258523971605631101142089959968499539794626235850509691286604786415828961262235702819303181125593866495558502198350306828301720642940639695617942798178701359539859029093019964483196267513109091169754070059988844432860762054540156709924242758005779880522095592199249538455415008226107105617476990213596729841345671164887669773269735852339678880819499246854942176459587667112343178166796823243974021146992227386849786373903057084134674052400282372806088994060426114196208034475139062456213584481971594483914298466947549347015152584767650185743428243466611557421017310886127837853401055857393063198241017682877137005739561642320798863696576624801934413493461143300308307631378274116295519376289397797576069266629595690937897113822184974766130837021519865244754666087677436673876807442880275483585598686603938798715114194146803379665514648791053154199699896734451306736809831834701717038806263167936906564182264381455591722344249732043202383325741646801117103945160690080631558404257885467389757888896248524462155197051645005601910695813870682426227507666193959401158161151542979817008703437557097765113328641828541874337520008025356779625269641750795704471165904909754079506938215271063390099422019598693665896367261034109507088904257586217318120573688604791354935648444854804957694919040463685127163830207241536342958478243929159378908491375339976414929713026211934640929734818842575670310098300636065391065771560167957864854384769101361172431862491708739195507370112540888178151045479258391432413867547981052485213207175384148493322211354836112024419041391803879291723925769087227594593051495904743741285671783618522214050769685759307043592890494657846884879433178829676193996113883628654880437353001353869562183562723092134631436242644229806444922084845747415280394199176411793099135380421043549111475608846195389258253618658424583896409640615082448495669927020832455069711622619078345505562992657267438765668843896021308565817642671431993891440203678137824051667044659446653579337162527477107139562918806212954928648246265287015825509941109289163448321195527444744891314358904611850965228076900360377412720826369608490033860528546183587616947865506659053636498080482185209482467662737883149039017609435491024243940641548970152694178903364215659160494651895698123968631046550900415497363139677951700433895881364392166050460827872071333846066097700101325064525331133742156733792921239190116272382519593849570758154966769143536770938941891617323334592138678351420455434028042756509421943869548931107161119565143417493881337841523550331128848620646961440475717982359774512469752076407763027436380190342938846813120520575024159293551932759911183578124097315136179599737672648137908729589992357946149957924067018631042087266801301661465766810994255713387243073104595359496765004499276982336426703072768906844734806125724318418094630693007840678591056775069915291298815467660929476869785729361140961387712861223029032368515384957658574823527337707664594254663963400416039971973853883141358631988157037002886775561249258007731372646817371792996014574719528602278901121747921464826733059022959991072181489572572605955201686970883633825911819631554748936068679674835983434739253304674002135194183492897812274744380895040739873190564952604384529121705659466169274354335619042372208607658537019358190106706263126258301366338972711142632536132584285201571294692383069426454343709416864622569952364250807325660556102121669118154264445286258865188947854306958732969554579238249923228620118448361570037782312287737123381373527881986607268423130271765978068380231131482495282130674756111092868806960470562613242951928178635296550085920805114090537579237539605788965170875430927399527236559070195917363469053180828779278153538018371788498627017885678375417323913044884415174741027390927426381746526610386482953289229318834579968487663667528233494031422367094400168053213225655145555957150620788634812355526076046472736770854992043986535071070594946484501848591830115806922935329651149463934210178284056057631018816950901134057292859571034772883599712404053710498022056518040768227388830439125804217319184456637726979635409794024110206701958390263428734474137817965042736766406227934394577567491026583515896184647192719960444165532251826725356192756957532588217873082908096009614652794688007785638034503338879285372244922049494657884140249384184032852842529718500881428892180684461251834576333368831857491818779157964002192350792724069492405207555930603284724121701323673214633554767326915254804963923503694275275461099526924840922757470558287501106721561277392877186991788487393967144611772867614857364549325428317999375242313893661787011183998642841104144283970312180703822286978392389351698317900015964618844114357503319709901471957317452271691455071585649135282513439230998619815311912699020734798887164000947462240514564536474918590160700936767894227742486128868754031035157845281241044207229007801536717930933476503098055160670616761699986473344358326582729335200057321508936905423128796842873596605135755925435522056535108236671674951051077067753639711127135618350129629191693628178383191111437247830290321217915009963958122798823831157579894530258121720117406665761651679376506199325359478431653167099181381940141775767183206441049113668176240456339576748504586047794045988081209550207176450006810008727264643727533560230507300851378130736369709344668817348349673250571840152769636741509580260490768019554733274322168335958552939691342641032493615480890864684322349321224662807151274944729471593174419182365367274508875054335523557317857274489232326035077021161278972554473984409883838326988074121442826439455967298232797238080505322733968112338586963292694107390018419719467644857261914261072333801327837416096358667699236857125609298008220855271227524684800505750592146087438920257059710584532479969380672715401392564844183973223664832114162808147764971089799191068984726564556443560885286576881363079737640688814169708535998751971193963899411362606528520504196848905473904748923604580353525149848397824912811194142286183837906886738733212198031633694587871930819838946983789775025693367314801784677490147653065074393704915941147787503988392311120871205918035943744730745304484519271912379980447405125509472966384246866310673699270326119379105920191092953910335787818503991832894945171132114097093376187433978676329282684600167383982508284630802608958470472054599319009653966182824182200718697633816914492300521115028095847259006436051663819953484085434739038973598815743770148130347413901271476151086748628150427147336735089337851683927124582182864897903863918900217079453361858128687742905246230687041402127412903660605297111409335115710806856346806631245498541544612848289201822555637867927627050205642041235387673035587750515132287017006794370612522713920039934687761739820651910909331965471935824525104729344884950117277544469863781725420780632672129255598809141424148350703115416869880061051876512695150561169395056336199160032198659242518156920521901054488750183592616158758359520301723893347717254280794911422910221412700221613713329390509635947660401399232070960629749485655801905587234614162478985295597921980118821327864185498122835235620385051152898150934672539770178994510000458043897638185510091388066634436946997751217470969922514074062216081557963841970381439040917994193598288304474345948625778515848426729638419768465636414684587304888816074010833158492305706834633572276468387298111114535695911837409112194539209737779098374735236202713677158639582695604874722699428151376870125999487430471285120460276241321929914526137333075073102703060715016656136052812140498629390090497927487212503748829026677424223943846555665065936196439098302433641552564457251025889366115780904275301560754964135354211826616356148282497852167587858081437051692891155073142459731773179627472101581795649867228693998793317870603147097817793594439052726959018342525089903269451149768711713493943510015055861887596786929375452288608694209513034701950394587333427018685590006698827444155455680334630942098933367173110281983998228065547159201608135673817388461997160267148917505749203154812460268527193875860871291388843014145623396016310357013960998620653995739989929462154018405960364714919765664388125921024057370246027079649992273586012980720918359112204144470838520389173428992203501976235500554560620401625110895960762994241960720680652994789716447943755431491999497662730433901541119925212440354425060032181862502786377173825692622226593561010997563349517218950933432820084207528876437915370557825431244483652023199150514744845529478266445591437585742416364011582148906616830427277672816226144328835779310208648253473175054133158181290516809644077476874438428981549104219502401784225500483979679352842592452736143117778501803057745641423707135274547253412148874028858768956821578734070047779767897079722565506245927707338880870316381146483779726349347701343883509726334310502257215440699056703877204862756177247055009326844065556807376615467846806068980367540899613085668130303832761739930042141259478319254125344455283455305727083234304584734307547296731493086278590149060711174939162000536791857352465432596265556829507068565708887842023739567214404191064608046620771040299323963139246345633301580798770514313689261211833956242294029943315695079749787592357455285256070221311901353504896597492849767698120401175651098937575334522976108719429673722192707940963271218879340392109510977602085658951606012392675081418510748534472111800121197118328990064011599514392129179026898877944522474074956619018280284422693839608812237455959766239342261424188778630136369102602209167432075450591389496210871436379017313016041059437892838742540448389277004836047554320826014761776972514518740328483284916511592866206187463158592107018440917071157024414787248403235645168680734588491990234718240620466905955395108666743298319530308435909149207095061486275529707211591991385277578345074921488097019292893269887177488830440934707870254607359787268137716669449665051304201060286812486811654284198827820462907470337966629545839412876459434818194306472451829137599208427540065517844585959717667279215759858814752841463785671453701705490608082639052302920384125565260098992638337531582044908048162167911759041584814716573980389964144233217137665993939700140302766367366459391585327539432499892609604525879544616231586630655825114652102344628442927270114860480796036423870305607885730435036587808975936040604182226805262854117201557016783797109593357359995947438382718971048722465297909007629123502986080222178104069495379455187158766740549581969874434959069113039086188058783020968785984822851160735116023424643888732814523540770282044904342031107807981776068561233860963037363805562897025053563240933003303493853243508120418196986870978350876825836062019240482816716862270205155912089936099816327469324054409622137867886586888378289485449142024798258640612047031000488995595241840020304756485168097296826513424685944325593785638737784388884026018386311989209913525377071264711903935228087446183737884002671008471457162428003253161073129991327060302477187838143527309401591298308166161162007237058961713800928399034746067325696592423919547912078191741267549932535567972537050913811692307573252223585625912104245487206143030135535812000591454933932955529584624372227189535779497153725389378410484792995506737916460684092771877991756503550648689401295335082816604237377639403765038867756949798929855269868792925515555879312706676589316168300621683727002095078506854618199274148371917031155081563584211802855278151116126884097158446020197049115726404677671534005319331508702893615051970980488647184417104955925844241594622813869214669119022874163046547470285469904655695046280360133279924684687440866038687867162618248369332758101054210494456427980276298031080382257121898427348191308337088253412563510910326540054457935592562484427860080648857632434527597988432994270695620515886589807687653755074038970573926430186532922241617322255048533384713290593979919364515106739940317828129226819842544310378532708261574436357676602772371003098658696330037445481668219139230619104406126572568949793135231878099569201060288915422352525859743996454974332751845432079233809986597528598183342878710472742973844832810881759076748014192254947379027571620658000112438731730639895633232546899674988161629931846475127613105378372816059854443865025212891113596099817423340756194359330461480263436341740439490956469522836086782661000267780752835151772961536392747057738466795549460460260325402231910972014202863707423110988678321343651173603062142798541230618127773764332190663657769162664822917983590413389808510860132531454291553257796196589833989909463317117354014376594673665910345606992024826276104657852923710908831015293645031016502714677643296579178244027030930314632703325284643951666797825239101544915634099985310740366185557662293092335693039575517908479047491611257373427680266691025275244688773626112993596144560415102193757821804980667637805629414457599616930548544822734830094993010844094456682574828181114433235005267830902575266616900749906721389926836271942473586577406050471281233250902836567976846610096749308984342970243651987464667379362962739773911153915709213983035259474411960487815854585350258429281651677417521883465071294790305225795028799062903024483505360878369550411843264336021670244459642885007871718296376978644005751507303483345277586526363259001224292587411930269615155811263043842976485311171539604352944177727291862972238021603520117940459155644190484360879859353506707339762890938956319306633661496115943229816800682771433740288437314673077858830332974098491236265906449831701705027830512129844970802321586683273213382525755822179883410704694059275480010274000073954765468055469675041877510881652659276885728232434984338450690193774776251398558604304033390299880882219004029115625194619652795340222059070874494243786278851975890502067340332882411161011976564527932219028461087533808656102578392243613786398747374364515907186661624132957760619273187487022411091002757151294810879624792041479685247247969592405754624247650652306540723067278713287324235771038905281853291001867012929065989097195891555669749451517100868048240375374174510927588634388430093718578661241734541400792087707879373841779901852543170807678719381867313768351957240466515683843044067214978097383475101200290998931887536081410331418330034094745391685417167649986146817169241689984587037148784133429173872664815367633166365681055919567301842650038538765225639171890107278247216023982056111007668586081340275033961822128889848232373090091493574973301712617732400625904499506573866370343661610982195141898649405537635733351784065532527651506073126545760353449340919676134738617422451771246245883450423826746583617632555925011274821216955274675647071930919945814777985394601286586680242252793132628646065064444182932298131546918794118358731899119373745253800336857259920240370802543293615866573400476581065014804628780765139849639023191566095468180795648558587353567304664669221677071473657243788684444952932787470253651731748202642642974992552146040730731424996655099817647885674160606130879992707860749387380033149093920648890034202946838406226778120632152853272353428159924357006331293235403161936705917412135159218751002362282356108129882609256096547189996395271271040862008031285390132959365795290154908262975588834203485049146221084712355343221481197828894901079949012286465366870427718707266394606760082592749289542531377286120256970864070566341207525050814499260358636814213348241974459833011386975626330762440432953632912010705280931414412920681351728691278427982808541047264028891855211702464723851899185806896539325211521225867061747280529672600603579378673189226244960130959802228619340611122076653777285574036896805210890024020049127861323457662545332795920169163438359767314632320315141613536519371864860899576396869507617674953565554214499001245029339849106541788517858732661846113466228757335449659791654117057894573654064790880820808187883237823435163318811061783693068331156034253016001998092626294933666073248804217520181382480115277695150813985694694303986233958015132082794014714886195141072955314670312479044177980609705531465292418747745088379413935897450772371220128173143493127437042201825137134502819248940868558407322888149998781340771680664324830531288080880689196103875883500057060279633446573736816021844396159144180543403940866332349675621592786417447876361212320333115836288084096694230620665276701808081622452182166994639076296197213386761899906334170807546072627974414459232490489859314173432473717371141872692709525525658002241303666307773609741299353066544345378333496826693081639522078867032644014878433958596733892756750123832187634339959188952576493865121228806532616761487690231987359879099197598534934254268496558980166010644815619854112685113601845198199173197291225885263423430836691061005886994250148386773257744239053145795002905933509270915310294906833501652802698343153658017794108773510102207992474822244751442382057423436961410438307515087567585607060120873312094656930728468314548828572881603542455295579504872901116646978040893002855469118505642260463405527486039958105340847912922911150807396184373657239281208117200328671612318979666278587190851249646037862612674295149172230707655679111702550228865992782644391851407589387579174349160120108370971452010727201594708385174888661880543475478009176143937969205236134450794704368704949655165538675597957810515437273601507414552464269106131808264796295954255869720161913523495946509562339821684209123184437186496511365837223154871675563697439461077048364017534621855481023623570155813497767062107269126951884373328551574442562442431224801753141263117256377071663612100846438347288135884780599713700454033715138849631491801638351211941976152055814206580302424648920966544037762452531779081083510743903414312720825076111030346326325500041202395986882303877625586664182057710058197953925259218583363997960188481700587308898573546925365231199988566720638184246042135709610377716428103034390294848555432940260984761453251160537213252355776247574881485839739371970746410362280662344498997790853133367691150315795489393611326442490508074629027999346346026495473474470916445538918585790132935061840053371863071599107525649911468854442776222713292677899978751716639709051346338907369756432491957963130395762730431145276521015390488836526965970711310326544646819400283817598310401740212769281018994704746912950830177827383541563807684054248354862678757863414022683046654962565726427595888988227852890866760371849649451405787115265498324852875146780808272745742315178207577714033439251879768519882390569785111430635464511196826113662937477430188628824117737488218681013291679210425179456049078250277261948555059618414666491056913057180004021190584456776191830001344110783021824816325978781142059208740945408106096362490212409278730041917647748391967245619563356972509567862748515689184310433573002485240941828119210387050411783117871831841281682853204052372784235441812336975125262573965021134700099810318769911748226109269932069438561320280335483539889295543249807033778271200822569701515272518966999147337903011863298705625050991672655366582985314008508859797668304005578874576064830016713582486389789489399870060002870072984402289679367289747816894578937353018862213792139761090349065765920277221161800125866718624946235239129251359996672980207219307850092877392780838831514904636480066197114902740079323166898403388016024662213593164270103690695305397109853638983541943189156306488645150061816880148686416088427966506625128537767780897052232003239595867753298762236025661512633381458272034602894999832388794493406468285511454280689048693911615652739264330754142275823820462007766846174583388349770587386945684277863030794316507829298907492115943486351526694810165514603216152052121506262389588405061699017588896762537362642121527651304900572488296911673156422832221030560155070850419089450629518449382591523318882431488780234137967328824232600296783691572272348990896784447900028074598816757235312018233118269549736461160166895065527590711245308443678939491311648572014132375550513844480381387882529122547979661995618754697587320410017270502932310405123225403226178046720048080712621096396368019286352559380045919612658683270823243329189866005083081517022623206975066248159955859677372964449791415094915059846698324780635649112088686538844213191574300277630085220390550190513750079882370243994038396047770752136016376647604193787071538338947707566746114532219078993453557038040866316535232961772581604271900836555116532726141449495275382087587933104542175408283051540978096709982977536278963696311572236205785246609008656930330445022418657414987076183805962215502282094027118045715129218094308382474458396065583327548506769493657210713943858785510387490227163814188733949201881746056680924099300882235007407994157484707088495579632128682554482790579936547343695483576372763945464940096790523567952717428613111214733225178143635825621917078826583001509410029455280506944422370441839474719543216537938931886051303282931389374847619865711373533854526118507592970567420546990086648720721071794470998742792559019156642802539294160743388451260904649720930830272169054700283639629572973661850864446124289858484469961443446276284025379956260708084954595719340402635234721912570089035505431072656254651234638973360797383605651410754107324177095476807097093065967762463250904948631116841691813642904374183182103022842142537563702450258946071641861422424147233964794433151525963236110961967232747553114101304828856893241644069597805132059591335879641922585146775510250792850022183449193787709176976971232455117487073334754863807440899133418301720423248963061403705885700143382052786847590806733135142073456675136353327717291131932111005577073622500692990274523155783908555945162981744494505161151330762282672398011332285179151696136094078644549382349653391680810396012812831397155993814344973445173258159057829809756442026517919397317612144596577445871500120798587018657321109890591712519898668949244655710778437693323147996523056683386364533754284514940141059854292027556187829417838443057376335617963042373970859341647688433129759887979937638958094521258054684403594664369264373598864043078861923648674363865009283637851450043135892326930149370639719616717569394301522905422666174973963560391207089511623616019794316019277115076902299872747644784631666116638577756810707324207396338424132133984199564666185248253847241455667308939021773099235525414990106270286728657928731649287911921192439878197540752464622646922389969794565788738197369217018089189595793612113566630657215289943771084557770311793563298565613988071580371688802344607788729181611912190157878175429249288109332525463248220629204086591117817124101765052438103144107331485564018801136043544243296997714099379527197693163502290624700893452703611512151474109458370160339642573595087906240103160642318401117508953038890591326543207910458878143922427371157973261833319049793016868706684100253563511183247329313352391407991061560650406708579359448046852952373679985943720421660460741773118539596929669674661346458722755162169560864658523239616585723593724376066333578989607830637835471471798863061039538274563785349279038590049597425514837619145194401015746204109790756987990020974645203067194213382473721700198580302574332059243820096334348646533758205319785313839056408958147164361200502074094469411395976212101484996973915246367488881467465525719266152421422789244085746139208903365605909558232534225374671095164511633600489265261673697970717376283336574913780750198326267126510256886199064664775028180922703555881868246545167159071733242204642925364057091129988842219043239725334748418308224915176642058101245701821270101524163035223583487830485323963744911691330745805434192724082501375847298443259715396911419867736192798665448061405740582081188054311750657978999405173138437299924593130305682090892580574621941175047741020324706740325816375231039874246772759571802617859174622320173387062741374608345894688061251139869056044987527828753070635620906543285018152017360382479616279486561885529403245278496038998721901951003023600711198991460896559031920232694695200325983163403508635550146715246840400023651184118053330492433332515795260152708787097731813314914844253434218477743066468171195430274721920750885299306978486163118667890172125569317715509156271804738198420185407221896996457740602540887453775319044531115679976504582413393441236304622718233718963490155250005472988820599793541814776561319666222292651202072706517118765000071299147588125614386232112623901596265908635634373856519529120448628114885166327820682073460066843793274404093223727236226696184840906529011738866557659839562820496299268910074610775491186900537131872658600378629654005516269416894688518044704288915226586855185304505887724231188233140260433625331470321526058306832120398131085650707588465741509212332075951724206275988893496797029239353752752361077435284421767431764949746800314400288602292013239241662526969896825702616827645970746552291559657038249963207406228056188648120521884890500573149978681929725475660238787132830170372493517578432055942208369111275119504878450506843378509228559979898566881343593991409294315692399153716414305056996907700972010426756001680027898752954323493835743828018866739822471987820558368272809395666459599889887810022640345185653280185233788274386714381228245610504353433837262923043722398793510001263398400037332917573741180372477366894693831235276952675945882855020588406768470574771938840081274278344706941675563635037050482206559238366967994088485499800711990823997345804205157614884193037000672621468477190288574336576618024108545654757826538845330758680970683596752151043480738455442700187667828494285685360463193910868184973445808139629064580262697671895856549479926431710976609405796826050271648861524872828639669861288473052845281528478006983293892671504479467552037474468766910618604759678220964591733771524919959838449950801277274474603495621033982922211565258266784279601494757425630158369119062380616133757332534572234355632648441682330631724641256944129440582148724237662066026420227125351154800753863777643283971625211419469155717267112307830707054928613918507797033305007060642898424492249656465181766569856303357524267088233314228989579950878207780376987644292118601831502118056470747323510980334504331011048217075105323294221419565839084750545512851622297193415290641397786227960449468806627238495282289327440880847989339918343749977328706160773242196326320319739758987007914104550558760115957344631045755225858642569034761257692257222711701571075660846335455969977735842809134096002299391180249184611408141101260664495151407931218318982889241439403101543478364456770907472094337145366647337258029806657509194347426448027358526433927105296483198204162025384026402247283863732551892771148627244868356680692973522879673151493755186251885705494712982947279401361819879776386270711034914820318703283427556091908482475343472975776031507624766502278082646020914620620254543288506962867258311130680730845938405852723446967302087567623348560649479168262020469762285048042810464263488068072540968548002050304732629935119190720754734754949850371922475934153260083826447282588774094217701580638586678774266690841836521119394965849744911496535285424800010628343342680266771053293146032339287291120056615903904573180694214239692110080662593058000996092577788182633943227142716173424939634200976033824651480175479691357733888049316665854808303961050862643805075684437269430871025409386792720970416640051997627028177097080605426493972149895328151205693985832174027022066672857318033480615475773204285733850136960559239778178883465112408819706800180532325405895266285286582056335633906292588086404652630605151569549445915492396467716654467798226923844212824645175622541673561107594256475812482045049550857068447982430857622493847258679314437765081116170638883503731579250604433870505753826772566785681150782842774674132362173724710353749026209902333503371348160182814016887426144098050496229490302702435607030070588958117844250802116006852361704491377253719679118485863077719454769964538339116567957869183724161589653875681425680857476854499609626817238954551502460349090252210742068900534053548126220191656711110832213950542406848946589087599076630639805607260533385636384136322457949371780588152715822474449653637949233825846823480889870997975457598175696796687255395248265813675560927690390793012200059212364268584515320914331128758077609211311442712432101199168364283393464302673212584652171990003491647651878224765420553122374937230319301004629080407645130086338336665245134891657492067810779390026771348714788465482453611159848136257942300932104722383866234391617856716841648246664410793788938028894942172685427994594010835289800196528106614421402475118505257256083591590535472922740259092065012047112700347011375936087190468714007000273132556215701928759686998213281211399560648998832278821539477265930885311488393033300963613329338361123372212936008232489867344289327313742099489092608489950346785106550575195778434583890983752834696521572638968687886891346902644245118258135729878192990418999207241787025714150944531974304255685218825873781727857883820925581912645940130524546403123985079937398249781003377135359423328701454863121655591267590070227867620118886968394473019190275638295797467704130389165317460052640363486317523473742420502706503931170261146964678520828484258227567709568617216997957972698815531985417005342103133784782029809339267194689199795747756731409618963419323934609942736283148746781493695307240142231731112640985315348578080335799822047153105281246416402778483461685207018346400842950360779404491996461067298369868015612561096407019580223358592623216835565678230865033381155227193643655740072483537883015990022227181273337957207540634084833689340556110982807918066631569335711844501690060677950785219124579644766144828517552279851450095552257140436541095224097660550256437017462336574057544310009330227962465057209428077290773139337569537964950540358153747130209183558916541547088547611681181171371170818360730766987996603797463923347675364773865868656359123920909198400928360924079332095627310324317165797213708431980046315036820976125332407897450630896567214089825399871685425127937438790505691543152335296165601159498014313290105542410982272490426727066188596557249401159854147559487368876397436355550944592491104975441729706093655443055279593234612499884899691696590811274729404619718965805438300584372072599836174546117634952837786302177249859283239428141984499903068612839773508227974546570123874216433023573844329369869235322230824971857302656059193186779682376210736320949314492065431168540606905328102285935379913411096050199371742048793178509223983105718453372010509682122469187082536586230073500850022668534952728049723758021675700652944850935795745853260051112629119927914508834166155019395219584190977586838178138406855284857618116788889018650307872758974640587600558220561771605397115071307176983436365474795611605279452817803238399271506032892191362303693434892756736027208571517782965041240659560181413134216280386187979176469252680447295390604888780623959975991611445419492843033068614756669788513815773055263747279751120921080647417412413492138509724011767588491199705877953639146882836982839424902522709061618355841605181220620581106292097433242166621155446843250983702311060085408589337132291765885799787218758710056319568806903568608981199174955898184659677434082932377420562597747060614183450205398412218699219590598446640913157285033173087246687737059121119381016510651049270467925679073546543703856235485907252207708400946122447595967520180018742294922692684451240022030100285271615443323342225859236044582553225190575853629660575547898093314749486528098429049059768285279446720211436607533828392316530179283600637639547625863943758269283290546849744798803424054933048422179726369892289964660258122108815143815248945313110084955858956016077336487428884764586904010113478673480538203167523773191114883608069099512669317426875831890464310349602760045235298099335103161062850636569409972679574768639880586244089532972179694603708749920451737405116001491710349780837611236460988693995095020501455928653884866173170447506795111707142917031316694062556195031481364643855606946039040479623096219949536164506004265408043326103100495861463899055273233102527184462014355679375744792201593089604055841698267522231238323242194045902527849376711832196509061399891842151917497535512827261095092231039125570338062016339986085911294191335350171491956159505923140004477905756557224747833019888543631415610918672738071407014023717892452937388875194596280760253873761601840496239708694462695741172593557285759485620618566294389531149830875729484638472367303977175547147227271444735076805472527910921200901941429535203226794297992858190117488037769192478362795964321255020099573102302616773503036657117277506562240798561500838851409231830877605085366546128173474313018245200961010843322892610776574718774840532640040411882420440797724299070047227092459279600249623515011262869084001396031290009663427674411012278985951567392518585823447087356749052567892836501583268123924099053122918706017635749436147373657226980447861444684419889352185345194570982277863820602057159556314730067436413026048779986020826093456703831496030893525289885851653773304098460108546402066320179106178230841419971007429114152356310046867226427424515293090468053623573351147232516089858662189580606727695194548916171828645281622737746880151705123342599469820984968283303012540256444486326820519953231982284460375533998489915490343084791104208653299611552611649613095762166081697555458312537223880039101941152031699352593261516830354748848326537300868502515345847945108526592024584566670993633737608349477277377486472694386900803803256563967556728453292041676386388657817138390533466686160989688600455883602114178771268795528313884164589940434352517204052804276154404673652352578052598421011076308135003933702902909932339365018120415524636178899976995813141742516642487361537152291087875324437961401230987863313092434388926640644428152100168573759319627428832838552170875327151889638768964870935841411482232008297464317267424590765575624272403972623683423768945880562492750757479240988942276207415073233258005996325522992014968303823666115266259931950765202332379232812150123415498034135514807770644307951538557838069958508191948892892143799431246598058997576480577619517490454144765433949537430420423259858680455270005724985555262568143646631023904102978244645938811068224522600610600491688695939874935342754025392906425745569545882486754005737305569279124975569653303556561304859723530369064377652769068431538360825305035741650818373630733519096634228550951504212203858100282129636703956055440806641878273130253148402756160826230451958170980180809319292678101875621294134493080905940396371957776504707273194010853808064699476851193771348912381543835088451691958866971493799605683428174882026390839771378256549684372931453082125059398102282394954513241815968009335688469942381476582281581391788915432862798800211753108024391113458410054736986586144497888085864678686155253294686780919218671895445724920200403948860813049627156626317367106965791796517352932033866310188381159307439381490779958217825250440952330159408577089388201707764587508648857406735746815219096493046639932972197915000209172508084804750900059303975796496238761544521578724238369851421439655883577161615444783668564616000357301362419659412575937113143231569729837000088368033077571053764087161592142074587766046297208138836589320488154070493104801912054104927419436681263419278904507966639977874322698059619940181190896314822143197239990771033523674364903664542403098064753105577605254621844309327332766487280024223435751537547594496252123242597216942226619339518319850418729085031334052889494136033089631741475988205481796282273914049696158474043777511217195687609826652142741691811567360057229442140235432209114144105670279934326259397266476361973564931373834077199863179146469098828561340110975635039734623885496390447475020476567792719153574273057253296678985777702996099281878346566014476204051088520595571348483087381628736939887650433810162421081596051536390788061883988088024069689954725228311048522220058228074846535054743129399048014079275310229748261231592399419132338085604738560908882028646999724953489044597656847558962208535843948720445671485396386325827716246099354214067113671624751730350144065998726610299147531999774741799991689179492052388140395637512783223350455388003717383971837539701572598548510571136141866875612511219979258054920235364814245583757828106606981423431749257198549761437443780832501346802676180575077365859122046814471072879731758144898533241819512472262281942409325243020592106701895541538166967603895815950280191598498883712486367909292349225966347512166017909732320025929561040452455288858475880377649139248191727479601352934328633982787774121058815877852289807419495212385785259564585015854186220529917435796268243093812016063961246692728193651806575460721124808238664728926866014899480777590085929575484980903591205464263588563485142463954539802797339971027263133914946491591917569035093202449446073700804723132978990627299142299137604162564253341217655170621908288632999479039610431715376399008019381716310615477643937501800023320210675057114208237873246139419025373556068531193050920152241350600029627960195411228653780266624246994868944271856725551848921411443678552745922365057462920207593684556369850824856617755236052847445627573205506589238726650926792104860063250159968413464773943313530212542710937443894509937838986234912761630598300973043813884723708065381550504081514197171735519330898661290474721278754952109371682106702791702239957665993021663324155485966700903936035144933876934620497313205623547818566587305455050304678058380561145077285815326784042907140010811820568581790429845063867783088882536539931764009392323887061517474596431216759201017456611408793666213266341515714908369767505773093068923717574355501731389960250959690532393109457515128268115432171369108886211619814178470885038906359964201605938034188599745970195407877396605105932673774408332373430800455580036166713399675498426159188318963554977733790311394408189110067941089368488915448053711976248967370740448497541263127294166531748525129087228373384433289216217424840451416689166800462462068049926175247460223795828665221436263226271608961992813304777958932864943829202264253182224943184899366117445048070556550623622795334843275468410778338111930804212813188108547431479551973431139650327538935908639616937317526339122957502362244628024086458087836186649575883141921468640795097913522823573765735909528983303387366909369133296751969071253812593164393439477374859553783533463846456916151289923552782581323927363260698153831299288479972706603863033788473474877002662111321142472151037546731482605702035326726229404588432552900158220327632626409392814163936087023749502035328992357517358278136483324254177060776218678656660024211137503407280952623445168375364765153282354033853814697128153500979043950491120441785214658453752366034956276573517936498262447200716174264097541187724913451239419241090048008321145443463209968212483898414121461436572725919239167816017157415653044181025516454986076410785502759321429591291642944044408479454858243235760432927974259892854610172474482626163874335756191659610802262456934833441868836529023549201531069530006849442313377323579127208258608974926692804135506199795397472391398891181831779063470365018682584672667307072387475135898481761049751237697064347015147646183326466272675223344282057315214080025133853377846099075407138274344783467636010064231822678855796854311975276215007136681027596358677490009754863775431182026362043345316758074049534316547081760648121252278136385177592551833701289531162371999895133226599410952373760760880470948218558393835036248051423491275013964317471492708769931310409050252639438217332232625161344498129287291079123844655362163878467880590110506233017410669898190543637345232312035110684576496645417751511728198522780822081343397733378736001233596173705767640172855103269182623027547705594985145254321865672528193421113538811087168508300686180999299835201032522912711442511935273056612973619122570082489201700843746578131668531769619870734456024994590278790595803650676608157330446236324640899454459793346906401391799998445775215032149880132612931301938821664538241298353717503239157406628654164031648653789754708291302092579051177292620873128116914151109940846320570542450545376911116003997794449096075454857828649322844419220719858885212099786698639814664879122853161130585694221743881642122847959078279331896203578270809002022487129208312846450841285440617844542352897701180179210017706698593898928911799505451735490670800528115363867798963140706886202271162120208055404234369873504588645570163214486274094178623777386016484881635833496817951484577430271721022129152144275013496407809778199660083142137254605157914895686987957202646636725202096267209840953809324321618600144626268082157143372620531296436300672224728710039629169959665002716557466827972098147592795493148356307393222963639784498020747341063244961689269553557793691912385907655367149424181141863845937017932122375022187328822893823728647659507479101908200455526123528551393136224360633444383867214347925385302546427794304996080466571910091347645778572045247818511269906672413164445922577236638025208812186393013211706405603337981479691745322291697825257746532532287055430361139020877752828195044172467617142540760300471869780466939019397267363825847389003460441908674954341025300675964215415210934762318341858029438629766237975157878742966622662922307450394602568968380719071569236490139332347583952145960270112664806724438431738245732750418352556364433012414299008270560749297604972510784500886674106335441621386193636722415127551576933322668277611183340812049486641361125851211448167559789076683098521458845124036207966628764048980927154956848384486775339692864916246631328099879409350123223394595760108481331849741087257450216835337770640619151754046060399924508099325624503806395165452667988253830762911093653327777876267522556320694319977375913105629912941927885241442588225996570203000460306399420580858648051665311669192152067227633859298116206214030870419595084349293134878502822513274199136027890542695154345028606609649081650119387499057035721186630068917842406701806899908773560549862421326252694165939532578274525210891479308668972958240660107455924563712952408051135633883856103438983044848655005184908164283572724698653114433418623242963559194561595806761328396391105935496754466339418600368637389780546001738797841964636197793639273116863581712767466032505915074227743190260760076346475966330945127070362791502714014712556437264390827883702958256376412791033046239532757688800771631401387246626030456088767420536885377947844241236575733124723965674566459405147763022623675151221930605768003463234204905225222494768651776246581314046022677169777649187459099295914464728776040423206246676282291859315026759447328121174135560104956585695461884791698487930353299786608738167971427470686935683408838034654153252259962267283762704058183752562056891033126473808908148009064582621316216962506550361663248370831074902309218992666756158881069048960879901525787668006174876231482377735986331888038890409023425930992654278310914909021012045660840613336507995452531115805872958442058982721172868267037567639341556130289897201515406759571292186774592891505572929267051631592092931263411081342801260908865881706720113766700104394074825355888260891876009208644205831990626872188920995898944625788045650080422102653462268649741911422767234236731711708394978166952531238373852311144930165982476909167049444625452500714812595634815736140201820107348097603571921799600554317801329360483731592366678587816799316936613233470411410040545239414971461224365944224573132564150610600423248737696942078373254913802521075345806721215449772410267385762575768744108866716269394172271653084318354358580476977172916836611434892351256977698097674449769999279159793993238215631692488576704746751212405757763209637818326620048303587896514674929159664733811006236343362291140403200409058826457625842211838202905365932699284753912896709478635178766974157406636666728096503312431175075181226505599272338555664042292379759912869597890974824457157507799286651076119115164015246823446879110839084836207665197573010281233920796589926310727856005257371372833269756033988239215519591899374539598751614795648006046881953721623722637131347112466969761391524909637250730130833968519568287300396614387185812133593660150250585015095836075145129942817081171152913549112850021821867569771785391178076607231699810776574579886596460070150078434189716071444793676927868023399799470264489871288153577793318777265418750203323613488504454478278492976514655460172499393777136741089843936714025782079744449132000276485891750665914639857599149540699016836264543063872598611538667105270548855705856325949171383360175374163073287478015154417515838952200067571054797297062264346016483538125179376607297026608047134528233923094927640248099602557319799681150624458814623867613672713742902133465325648463428502588873065338731061151946256663853095787677912129389370705221516501872664845137498316593748414732866250620535553510103589354727991587491953080838577245236618381246346606795571562611325470813465850198424270052295466744223253623344562115184384985342140246739979198669026074450199958478600632733824344328571249838228901470274092628588664679907769803134480479758808227296113026533639899563789714409193093659653861000095201267936801932105118032358940779597798432807610902822642376002579262613738283315222833796742868097652547437888960705637597638642858950042319023477086990868400010004871370583276098568489780626985540892728543132520393397225144702212427372304172730437238943811116036566407858273670416663576731203695394335586301576683886309392515015711135472875527498830563023449097927903189341689048417556045866826187414885244467306515419823477335984486005995504837525269602793816542419888294320443162449334564216224156251725338006252913273272255047593110399372142260527225654146571185237046852449666469101602731168050044111898751561633274624114196416403135332904001948675788160346562603992287544504061230952676412966323983689806870129869188893258445587865338295132204471935450635539095003536337989016347586396831393375075554717335546898950828457115021301990000674991816802672211472982099483765150731553057033758269160537293515919919151995440404174206323694834987521178628594950417026541115121618474913924374475958477527676311754261437153855057253856558062656700403057933390873872134273138444322159785669727620509707786121103716326812214558801795365774324195087367791947969414091320850344226640848996892346831398258762436952901408608593957333884784511166305729799242461721419366925022061548679494465350120693311500714003549929978947621004091747526856148504943515972197512408277209343701181767299038426054662993625732588925494501490625711483353379093732396838102851014495703492761406726536431965518679753908794871142780411337186464517185850906886829186712062107381531478732759960705977031291037445528508935026263942682324844662242883751033548370333934919408409048638531472217276294978563591591654233290449347383503435566110774205058779614650145401966180169232389134523186382167824627837227268862614459989090936936233840375770398134425165333433334668639750697101561784474384267645461923964681237542375220447579010133688651567935151367823636958751541107261928417753876496329210904063752911637791424935756703128844047930217280910520766429339149605757398646887906142103117905186001555526119332654628446068598958109708502928322186435252078985946940884054942754716487718440409960280870701131199695934483066962066455576990431325463084606844541388447121265608772897559939635846512423569628605519986171359045101340350170584998609141847936770706533254432003263488987000688455263447225886951137877035268672329376283000901568948174610473760212544269177405480023857686568762424214979337685325309784280733976480456094709719848331528968081946813720804560163284863260719568096366289996429855441790947981131021527191613974590656611919086038963894768172010768297826138448284668528089781832594687290917084900893584421714635519767060389279022228440171375506312232432282851592254168487039638412156971060259665042364768286956706079857337135956148427656650151146544055297883548568575669476698854185548307537581992388696367805104409332050651851084117457173726560747180743959399319223285230635893540231501137494127981410396844282905033593474010340473644798470143760460692305904471274226265472618144825005808338916101714593185857340755867984761161574359643171063656047023157282693560565196505035671331597601406921064412269751020727681791739619120021568919019980267397459142510523374696418433152973516493883754996602974980554056652089985090135640373988987515338964224950484244375955284636982992286825871434694443463124448833587250440391551645715968748927874403056408165547688944127415948180570711563279115963091040583331297951282108927760838442335816291146085612786525896030588749545038881887108492719784926349375095985824412272281387321509498165535548716104934363815511012641842201060375539268292788258899957826086970297673105028195884664008077219378697203131012669574625315418412105863944484303097806199632729047595254640849079044269047773340953712363648890954687048539131803156531324819074777195434605586189592457021171290706241371233521416012312126359645887344664744670010986829307178035635469614146177622473707618468539937573492427302740950499272346819882627770511184750314850143598957456045815000524738366445978367118019237822695098241702473636724773215967229264732218338250868473899061279996112802122819129497776547049812916260501074821426057971060274839899420926839000591684625183832496410551658899026032369652208292256183280846288977167345819529034562654300870857308834780740944098026588874131598982498174587169515770861525667463883966507385041209719116845983310703294406129008062551869759871507249797199724885774037557669419528937059318204141014780809414388449021115425403411526584171258275438899068902633270180481972177960189544820402309362231125677983344027547786507135161002240833349490721117647744471508777804764671130944715689499822694957922169666521942120180647101514407392841093575730945649920602497222013482962816301152930342547552817016465591554912910207152231352330301532474387940349392783203881773977340475404730225983094722479994654508525226685804543753151489081606600313637526828697484014368644350819282505812584543743809624222695343593538733878344748902669505869814904609917191360209536664197892345572059587572862505774512988093039066052757270421174547880454116212888260092258272273607720648373057244511489524117892440501646531819950532742063772963669430919705135057992773673103396069060669672328742521890977453395791133806511859416760272637725582647135646271556192674556543790494448237794697459788143557377179382845282577129816772049229802517963788555336879532348697431152265232264094067405661387924798800557406492252916923395593818006652823024573916651246095151296586827218602756693840744140798750243185012386340294289275206618862627448800691292732641568526917546002353442224463284303213975681454968521621628836229087956099801984301878804192942564232683068090096786925158372877024951942106117575136173291437479685617678142640447802961108829081139894578318566466767676553453486665300221208890920867246580873386383503929999254814745526574162907803917019015988960518012643245684166610628473356045320720143167692639614799986852503455482614684003542009812528325494279624282153839263512716761209966487914128047389472472088424351011193043582241097158298750377743155686018085231299332320239434041495869416036563116258962062669932557569161697891013856924496640868558528843102082810061593612520327876525128145433198926388121865530037864575354700358246974902192415194780542738074315207320967880016155272168642822426634302015317266650954485133612134588892641956244944960661642125438077292260117697230374389439722742763784650572009751154355840734222945410354828674759419539185939378764039455184368535362349703182844667261677946488422468271631756859733608739144139863808206266001168887970165488888084879360303588834056662241062246637905609932369649558732089074153300288802002553436327655904797373185016696666065008397402289386954333039176030006219314912932595559486415484317643370707207786442220077700889867415776690466301779816278709151146734408585285293324348636972490075114494724541398403984025059110859974506751008622268408339654533748807530426977113793133851210489105179843376794843576355229735618890236247800938182004461372473460701886321749530180719123959434851046883584255645692516931003049954604963449839491933435503955583531792520225564665739348212465348639138205631951922488015898601764072332306410217422468764042436356847690347552966673943953916824735529934443837561252702213344273095177168797316564724847413567882482052974109845615886606022960129940238874905333981899164792275901742020111638593118033156208519875755911809087889771233580735955744131982801846905979620929626477795293928155138706482447548126542146082638015864480905587968756513132706748541828194777908093726915288584111138766302527397621714031924888497067370842161326188630919277318468937983520948873045021904766263186301806895828289244728362692648873979290871723207203880493673041213923613762880885892953115189689279042653291922368732643780511307356309248846048842021996890625845542343677392471742987268455400114055211023500092926654803863436616077141575033678954994008991239586074287536763803605173960094899435194104665568822023128968212625250309729515364950809782160879499845789266836837630484798261926267056917640735029973640554923707398041065909555060550289543426846109184198884628224290714906832177779287778947846884807910559506820143243250443701225009368600261893932224334815959768569493258188908859040568277359321923299215003904042324911547615098706837672896219156861316444899312137939977237606560718175641405026830858295383914715346498966678859193776322583781882201542421084298818276590240292059624940216745631092727081705938615902261046885971556071153919664014174793861251462701884838352363309185981706261372252947309999414521078762533547195000904729290704185989676545898706635261513466568817216577113331535402883416744606231715257718180396504598587501445028812070142615431109580734433763070255051865058556849519143133671511730745158866017804885402222371391237828550186570851896941582020386361715082114545968742590328627568601424573419783433573491265064320581809439116244716751842441887720780743377072549096610405101110515508660643286515037465189981143959169208412195886874226628318667079972044136782586952251086554507481990570161588636434573820541685943421354843446213370417954400831070592863595994501319813557051755549949001111257772226524260020191817123601000336669019063341239701260489351980397884302777243422261502562851245573187452737767699749286874331863918381411903530868029083564277399405635368699890033026706784003235687303751335464763444667799679164521694876191387753517611000059761905450583504016066647498165557344602011853097193024466239447143228421555224173691414380680865350011722849702351713995561194520989632816282589220325301204161835702403915912304334231046364857187851119451647202630419594997039228720570592197755860653345952696434846239895634707197316858797746283792699397315182935897610793354491759542954813463616667966855880861811240982323332669187690872584249466885522785789961970354009083300443825920060802367644670402199869688774616650489353026393807921069402210009486230328802505342433191574436492160884325722854437136670756013267851410698548703665408012232020893765284067753106019727456944656293724607184256549008700508833300171174588020362446848737372428866763073924953903796386803007883270403104172653319005553059487984891521979053695862675339071174006879844540441729486988661563028491097947702327986512518751858671523361475084901124952548896796512383210123795638242351868395178870395547321976738659250342454975258687441449998381960895687539274602302824268136871243742320939234695238212071016657906717011091220427816132137317196179782108442107467587733700568772398836162972196140590402063045859502190233897455154027936818946617115454606499065054005697065193519450245992010244984893608409547695809892992026344200164189941574444407730687709962444332169844446379035140262119580523162853102832772524798498510803925657574314872717423142353697735265977629055341465506834224871441366597646463644611374607124363294125308114538235271162642502357421096190171026534035992924818993282102751028727060846544161598797571355928354016292440270046837100276564544764603171190186177195658884645126524299013805663370828414430922141321925935712070275874144008407729444975454801778682828593511347609513466251328806968003464003356869002743803238979738857465396028617207147255952689965200741981952008422184936027921547335899309490714428653534846864455390969666849058176097665847588050042100037734938966974926200763591606702468789602381895228348151220081904522374565515444964935593310549138711826014995399118323339867059398374810776819888914801502586086251389586727729863603651981276694286768036154957726902782130253891684384985714071623029489842636103200300608949284514797132864958818946789570603847920752326796211627358071104730630905313209733540562119083172009780649738844747709979612515621314728268115597996789900386939040002957890873219306699520153342798356129378060091306943869901131951664830137659781416003125478860374181847180398383006025293741256696880380774303126259878336906048623412220669190904413314996957804794016166288220519629696363211864861119534762793716714901072919693156732529932677811518911883898467984302506191183748611480257196291950388117842829293711908965378399993538500868550885986375781395247821967725418639531556559201961832341037519501376267211844527120881727744733257666007403966351673093349701385283569982053334416118968040855550037319805918787970469575735961234371831171121599538924480886601939815697447212277168864120468242073989860747481893121890958767519597972934334052626371589665089287293254726086523704591724867468310506216564500829954664874109240349622241653159259172612689977737134856106696692528581777447499349996955820561771402828555155793015959385239817971572701089440672990949481480235810450051329186420644112762541787899146985196089941463086831308125379483227063020902396419080268629236526493674865131017227729184996183691251537334283290437743712903752865108030142795482328192010350897962897672469373374461765609861161791590386054694624866694094710879899677333497791372233309971605062934888557790896750544006615142763479531981454527521319322780441732493290124823431394926034345695006770731580738356962070085082274575118733462160272652433766946835156727628700764174969404770989441629472702129376891495791122191594277979257700822302285595464456295198796235369270544092440783679689807547602742021152763601294132712381045734613791044443714923168810349349430481554783273397682451419850802377609310654177676702662134164243468832943416403084181914564796127234657655858962849787577568758997511370040666440367354814507578839481014195132109518244043764579814794853363998701038773691926765308234541958635323029793433295155631892159211083087403180951202752062292018722862959011064032313812513234351344720334545784510032723187654620151935161930194912954624742790533000025840789123633234798354329827993846078604041104537528218207194360875729278937646680129621151762820559833735279617206016366773679558096407347950658105040730365484531081523588812339425073026628236411038006709195331743049787433908698792059042267629921829024887328557571038180739568191082940419577384126945622641102044435702645845292526204312227365650345231088160066495861357471457430622302202452505298421325518507729971047786187359058144779881987284208340137053872494599896732202391293933027757463547064002037628104877715514941306109153220324927022008308557053361615698628888411746656844134979179453102639863493374445621877108858331440776975554083906536336810843846735019653373893048394108065743684577202178054523262567012020174683525368033307966788476072277329095983359381560632467542445739060713651173894466357464306929964787548671492831822714480303267909120045622050531392307139811703797027359571674632515433697218005221441695132728347943713643557030162666349331253951169686956961958727503762425493801478496758889613525699947528290413511000559023627624940651721605546488616907940617690049113579516519152986550922859073899617069595390663363175870773620699831585780860234732440072768833745310413103207357163669440732924368873734783092164203459277929817204693699665539795340359561210534311958434698151104617501457828695636747066071480101057852337711368580259992077535777899479295524578614725791059787906393711024333417988971683958538267866682234299890651508695670469168774752910674222477039404766906770970762613675406403777671757854108630387536124573290850704253758329858177061241765690036620988054267984569240943096794092473244492108598480199528416915043400298860873040663931917372366834851282637031140265829301250877088601773427429321154741253599690830588916479828386901001668350787542487667971838446852895510008768421804448386561010842479975192328339295307056476595899853102393586842448790580942843079783546568734179650620750771439070394082745987504422549294375952077873253476301829161941446352818156688564547246824061940396515068278112070221593882511417617258211409469624937063562302316630394833388147264929618697578229461417240540437796496036454066411579741381076039656535296640005013053707312496351794853553309215046016646915702281579251577888252283855391166527190331243518479863851873020513981688221459080261304292450500504021324749738079356284821931077183429320412822736639159971599565403966343043974549336644883323419401017620597245145660248042679116844209284412219826893774975178740733526467108897990293712950322181122969258860300859967215168239580363232650149654602531714958353250452492370221114199518909942015061053299733292834132293366775768002421566803200600376005020298576321661101588710393588042119387612164640196533072384179700299186738384176819399860633215070334531541611693683027285326432311951316194324018561718799752087260883468336866554657527659638119057136679658661950093463578671060851946393554858006536318678247255678922484352932387954765981008607889428411784906990301492398582939624322703135044385396080135888209915395616816543942464007677511798757019310702243370480445461532706032616026023131416646847126397190623037957130252501044152596944006283733699930372821422432882296376361064041402190586456102040480378594285356630291661913673284706664446968936578438153233503561012678017307433380010487534919891838367812943375263723500671197743362926245908153349214393679737693863450242046194176178174782452485565254770081027639322580675789268198616991407883432142401459226576305095889678230937541305336303297366745427179390946227760863993375802489891856090468357518644981744789320807073825300407411729933402208620274577953162837737396064424907739552615772629286785062481507779649822358737549141575017065238726125559452310315053329008046728456205680888685855106867190809956871013975743504248590827515212918792531184343554252257304676648838639595160439402249280795582644837390937903417124082295341033319008877271671867866894345233481603672960701170172164471103756538121609798142964771795037262167357664987563601635066578541135555723726541123223053745025471483948971794680920132988504923294498070793537924209317929966129021274684449146883031716047328831368646695736534616432965949070489950054738028557715242811101933480672679245953582056120003531919252287534238467563331619101282960932415581308106730042370908500617056365724398556403300658006937134883935935797156946034904584022883838083836750091470981258597611036958642360265756255322001740141609441269490065889605492802017300990833793014623360385423483769528751689722343549589692720278539242107794500065411432070742055730404478771537498619670318185465772541281802814496863607997033935301361739027916570577583047743269920645408468703034044290460764868715619568388607375539188035536450888580737076936726500745846748291392651405073423720895912020987227032200272229735080355887798654188926735228471541179174171440781183280323202573202958202163441211871475103126545260682118831895993396571827658016771271908268041661074273604670857361385957432644176176112155294435381264806230716946148898248283540893354094347035368266209626510201028244105054480714690634526927342416221277529204757836476001346488741775228268163829742149616281181993478781255925565637248922323515390780494884511762867173250924780182231716474767394170590453348888779922865605973085551220897244940112063702178434853291399959336645740853717170483722856540099049086942021102064632315330555231354128313951843552407673269658221548341790788632146172895046185229169175495423831263459476727779443962906590768816013409951072830682423540783872110328931618279779236682597607765567996968535639393667379011573515965240126643732125086796053526568414649901566150114790994183905159595748909016743568073338242437653778320512233877033992361130814895217740714045707610273925182398525712661596085663715001059694159813677022699167918934178551270293393719818623530309695075652479968753677105005483805447076844517486594764966052624649186630748872585390764115087176283324275887252882472115584489561789407883456159820047770172557074705566311088693064843548327536289151892350930243589513700181414935302294702006048392170775463647801712944077398546235384141725215766335679067975352084476590523320338146536190836093849481094928762854992423321385523373293346607617337954592249416958232784244018123776169596918926798987751848385598922812936415333774229953542530994381770264092332054786547705837174036459143656472303846807976666027053975311980178637924148794384865080812026774517664514217678870618263154589336956026339234583336793007898985230251878190701112016470204071019295949819720007113145889725339560937843875432836338607137993476578294015386781342020822738563744354113939262640933707334526349351872328047516075157560897081847893136505976242181292796440212391304115003062752163564004917124105419791288097057684694383415333613171924066445563722781062248083565393669282165360354026547688298081321931313687027334559996277243628691977102802968886701448690210748107535274273073819304514157834086033804016845234426735206001054332325172233749391726292422714883101875405708944655325283179271790009939008910923374046559194731690331445742309632683404262562213371216936440672511206581227540448733494327136930475419019906654808034426498546153026001748840336318686671261945063797553856714689608750772906348405483233244542718408460885410009160278777347033589038969932635723221260606590722835742698887195410677903957720633312497052988958028691330102405210571578078151471021573076433495655140964172217436122346420683068613023459162560550530470819168897398834453213374935236254259817510304331383629465930220464037539786816571785476983184449805579937552892970185448788514468163825973339263620076192247071924547163534342716002050951351133178286521946148370988567070032171628011807927797015454492322246133970319301021876822880004440889447215284666135113586761600964365728780966905502045820359303015494683899521543265016087874293844929453336705750802317642736880798325556903281967721160907752302579798792213547123326627649509164066528874875620491579368685563249333458661044391614334004688298677850889344528596649051017250065477034305495965062322807010178898236133156242865566111450520189638042890938447135462774287815807313273917203247620485599690092457328410315413941423449680282188606322890395234334226735500250271862683220622703464886799287655646903127834331981175270754645583665152137157982755659410389512121590048299504642255019117743564268898232620768426530064123890677122164048381392264509274590089148262942131102721343483280978106888494489854859837948750680566628182779641340698985431103647130169984881019116975845013353247517998008178902040722421787093775437266075461609491410338795696447872016081601282722602099664611395906968090304188119233344153403021933740054269066936076531743591810323556382296503580124955747869914288016337332607408387848539225490670410655824632150890884309390097043280289542190508167915790222015489710533314123762290061581659872396009906305286188222767068182429939720484745543500747729544671893190261630929000030268478089543084162597966088260287130811497208304315197689693618301728252672870806460764482519986107405174176467925273644358140667312231523440232104642838031829241009719393899379957929149736939614892234945081768787935641919101262768219644531498369540305402899502244323888433213279629093767772894037043228246371241895547415234444816176964185633132950975246409477692568022743749873233854497086056715171112401797916310484425369581280198557677142317210055334948825742665739216883973830157630257510996108662739894917935633391272656472385141680796545911269732036215708204553045846717605506999920349018390925229587529853881220829093139131230684281433504291080296888588149718359722483856509683778847147924029154732961152515412970121005985601547883287539122741608684505861605983651822814655184252956284844005724995573886758241301868276037961518763045768409087877810093497118150532416794353907337764898657362406610046748932929496440752255209543622735945923730797345221045122284412141528522335842790170736699489278814520451575796476762406867340798340880860712055513777303392636898923390817489647607479513295535257546853728952134324534163786119092263042940848097456396872786231667905126000970297682117767680411943535757124756983069578436018552245363220102289893680399486904525788673309434869743564458138068966500112031865577085910284770966650831446630549843064476774072103823914156555843908691794103416973435033282570837419709018780554742813946289988526611962680053149496702740614462493318152711666218188360248725034240236391210248202347618070584448644177813244314304234658622545984562786212766646118410781766586915296537669644055464656323816383870063376737931533461561572537512114403104512537959983173062943725049060674493966614738597395832071598302832626363675744372000138208422591981600158884238780698301492146172681375844801361284851540434427610043444384828930109097805783053481054733145984075922706041705898359903080409311204725839123294528110319231122935351834646434683443288965158579866838647767817772188846544354658851360389671733115357774359156232720996314493912466849232412129948913162394771565748076929802164531325619508067899111472110937050415891283301070959181223451713268904634807494736593742802324991686848256040090156344113415093146516004512419469366129747342914170735305968994035621236163243220430430810379810241682887230051150568648186760453231265739717963408011884648187465913214418207849486151559948715394097134992271651091551207033199891210711394925834080190604490106170678631856265668892784037756753085236230710420145446532381133621046083147493907839415035349104598664941293872726681347585557457589563653540951139852785178309872429147885496221120866204404976242527103125294158684029029561231602860146793106569072624956221929013650490698065491356550785585154758099890480970833585617120514443335299070687330061351009163420161046788267243090256040498298154107173808977796816435302596606258714431449897197719894344512379682305102797393920111097764397862200607407107610353910178517679139316099699002311090740768345419401420237004767193923502819180977047515159195021561022938680649761737185239239576779931290866528688160768055552775446669477357649548913575824349219188916345644387180444699856699633704573739410191426995543606705134253845776278940081967723450438726043430467363990816035136086312178318836775202344324412296102481087082509379958218788884235991975112249336907932202019725868867113141072554734773693168535578875755909525117923281520248754157439928492722504328431781021431129235193146588061497468508965963919167521607305216915122166028525204604637076586513701738549364589097345094323909294850904520567719783889666514132633952692170140891336788194233268328097364549668148752084215250893501819452003446846316535717771712156695978276523236974735785668199720018227388812721254528652219527687270864874295721357239389339538448729009829958919550398365642574663083907273415138552314843687515206916475381969689709678034462827142420016115207493816946921806850828097510534719212909739849890590437883047951601129337671292879716247813286247589953060131396581512281477668409114898637663804334664334599933119620564170933548542271202988742782900569124771775027994333752497135457626623533419058750965773909173142549204324983490169236780917956808371070754874217467221177038354391327833098801276105335925999238970278712955555849071325755738942204010561628204160200371331133266158236398260358963630138099688317923756421889340258131171741538201559810947981329480113952052667730922843124822868554596257122026003541405739313109269848663213673560851522511647322491999498163934134483962347569328839510064682195282776844264004420946877072035700971742624163081765132100280793663062452020703302910865150086816129497023019394361531629582244670282440734943536957912216452352601957746082742089302411112622197205978944203457559539744550442493037387929173196322763199729194961249829696922336388956176970655564611133422562312490609437922903899431013982457199822842500263822136582909808018877959865632970855959765886053033159995736493621624925718547401859401925931227957820611001259024793989457275447242935140714424846424738795915852560497941213101799286876205979311781717241137092757492604304943289666739908858761448909824294164133236111429370035057566512655884909224839700598735917123630638774656437952219777255373243527699424812063168656546716903354744953411150603021471071770453481068827091581315024014610753856623291248214210423856083442904081794064379304499699367498774904656381815403576618612360723435945144991240953664219065135370786111847068552471314018051665579769613345800141520052868692228728399740438579499391697978976803840636389560725377917484067173635019166765944370624557160903689718513985524713720049740023722074022748441987982760452817770442717722138114099895414008616137238943448494153838515521316356913183900998966293971700982075484495741156427078606235741651987439545861480987827515841375571847490561116795748167809881246844148733458996428178803075084729469199085195874561531608845844853575782622243758972300205483026230066937522728297337522832485426433841796384966541450046513430078941910903242887574767297494502366750444972263145910138067402241572853157506314241200123378672101649619047512573264173610641372325804091360723350851281396807997707098535432661869138157522458563361984168413182897074103648461670921964895753576191649886155071742532441558328290036900928569721430953283870813445809755848982241518277285946466950933925222393622986315179867195732786235762405239919162435848258644808060821974966219560925716892491309544336394304280519824229757070950070006725254632505102685422041527471928191372397671265709799577414028361939751541516062758113089338718158361858282727609991279655656385367469076713926640737541034106035932390804607725824689759116970906930688252193998435381172870650243250543871790773765014588418163938189329421533491948004959621608362107583489955168910221040942189583573028655433836833002085231392971960103021854528243440614150681960587932054532964165836679925458447683293981219656572461696667138535402687939027729212718758645685200017815527767931174698631832642975136708911804379078957309202433956136967477490285446663972902115600348255627293060133031804946930622565112970792067932756579105259994180690671717827434515936886615913134620468100176000030785236805602823814814938287256195745505731421244308159495761680011266727997265553019632038429071070488482809354490359063146080468842577966882922268875474320350406639519222253638495575873620981487996003779821741934039702950988643517972156658021869598077229945222146096422191791919886331980284015330800279471064524118666159542950731482044809154698175635542917489466801835563880408294230848224766966875670183010933628954480214891249662249374396628650321705738553562605219084216716367232725443438510002531969361136628289207749045144535543403471828636166968496082442026363786106645064065297450576032876999991238473066866393864793399636905022136258139599685180546729682469657683320293748997651886766694643310357080619915207265312952121640512805135762777290531844702566960588370674868314361813775121111011422130398177335834557779516003021131104521870084900095082155153058426712234671045691386759327367971355571298222506676558729042613248327099467484734299020629460815276671241555867229643547065406344701346383756524895687848194094072703840054991800894436655304770157711408617627693507192155812074665659578794182183814694380197184278567108691288112144745002303597742854173342469723039380762800011643411340692917174549342462356101141886685361696412469457021236098856158545627405516193756166678866440475982817268890800834085414123981702945562911046895137179688677324018857743395922053389749190576677157802977155458466724915641418634791261052996293704309803891300388817680869296733603082528935900975926523241089555796581761344833284142704916496124084822977852650900060656309182240439094049366078179711982869536202940428931751327248978680994989090320055253264308130080553344460186024680499389713064423252491186857128405138796960224429744152981860662381953173710933796583842220756266001797009051967902670093837300486953091715556787067140922642192743194401391186184468472126020947536800005220915766206191037885421646062381764923424551540482521516048763890284651315612594756881165155868069736220090735622389894214442162519463013033441078078675153797183935708613301552472117135162805573915526849886270563895704648143922277257720235210125605682743534895315219179782643079045455697490008074797724783297113620820678461523723584286559750018180877122818458373339503065755727407652230965009455083637292983573617806708013942831286517788433927070858834583926992099911593707343307437932901129099794953198891655897756325822192262814058496732869828394080659311258294394137882232202436702248560762457710496996657566869432055604246534862440411616718469377085802736053163355537747992451038471381781903754210285627716051105726076406751402828800261367227005483935709166229937173062245034675262951929276662760464406300065887304249924833993344389041571500273540616283977617096171314056551237354097817729325765856855681523359302627897408589898609579126032363645466612061417069071845954976363305770945093679653284263473149093240380069068328239416424753438625999054831204520783927566106081650100505307036083429924702392087196514931520963326624909852136644635498914331481314403146958441399322866375721942782172103947808550635036776363265339000088319030142008640536052439408755143829565844771549265162486390947558173596305705602070373039857768132997225917893499594685525217510264097595809620179493413927862434454943003307840116683928461626910407918868241148562630430566629523701957000256142943801747180854340988461567087124470001722537538590619478765794198554972306793719792108596023148021185768997763101173022548595839543644326175547143082859966196149783800459245401299359681160776681073373630981819458176004747538968254599965082847804455040844119263631770575087310073531741562088979683371536687577642994491517153613521551261350559669480885651461466621890551692693674028862961151355005404261172751846015260618051197346485342557565109515121182385728013744696814336809911709974888458541797516567299482684815385391822111710206789161568414439422999922438176005012633430655545926630274897176208480825355506093486288826759368837555011339677974445792728538814845840133657588415378608004704401239449585915613627159808542971893758512921214039261175802034626555508857981150421309978332361250165914071652274763464623255331349610611374425572882249326504355211598516352909167205017895272065687926657592263763927055334756036237724184955708197618956141130922310076833960636692411921884446428904484326678975785182842961550986170407088343532862451701297808157783509171163788811869552186765058522028091718622919879869049065400719512106179332047417254049244137890622686187630502113358152182574048313599411674259297638546340465694484338030204669020838465804328312579883272153419611822422919564529291217491873429169566643929233653657660750572020467450934294397357113517729098449905949682958101799948399956471401283194228232268986602709829453467371114592343176705100130799424644519611111209732387449455238907608010918225498286726145927162451402710366882592535872150229358458578637099702354574744229505596839313738515574628293213660236173494009585513942843246856817655732239004914576527464752267232317775838613381874299917498071970458380559971666348457043945594941402966827363367028661128091030210802694421052236954650229035620806810220867173708161276616865183595403914300149161774062433058129764707726322727478640057161518221343745569549713346049921809227225907998830817009155220841005224810290532176947141420538125559327881148138770232540791463092348232013694269989246310746479184786812420598977542825973278976081200061881427216705204665909843134664999126062071790843939372881648507585138010398441780804368281173247076310960583994570513718305788157186619727769203360202202404932445071944918348424069230499949000712217959866439290866042948434345757829923657464208218243883733403228893128832209331337668736360148612556403209765871320580718367191922823035273437149470056479578998739618811812493090218225538495328426423614975676681837473026650173154084012323398029968421984987041158059460874591704330888791376252547092640636899224379405484076952653558179973186306026631371424335219870030131741828763995186170623279850917407275404600614540142462056177739358934029486486907896498920737845099115000935168210501981954517680093674862553283342002780222922280159661197651708584829985865629700557893562060281423015354510258856249131834552362361704858474443770873689584720718107569927976623755110079026940135087240213473557453189044099290481330991595987474906540020145640927998846190823002802807623925058514271692833191770270565918213685451433162264177958194166227235687078866074427518766365367225627989937354162963398052402689802271239983720548241974618813048201153075243203624231999231787445547442377975240546055801087215203726302314811084855555408433574794598916336832373262378741231114933382642410285430676259708716473268374338161612026488398232181340989240631120373317480330991878300686960776565133793693287820359551469913013498417589506159291939937215012641859998295917815654221776382365740188271129338433698894959125087909493318743146355690363258639856677179078695356356746985959747158434126676376765140695759180657739229350299563966338454393277324673327199948873317012843820210711433330474770048452247598852131032106718414733840466667116814710841477226168865955494218759047754992579811701005668350448592288027766763523898131248665722050081035626127294458969359971392210172573053060072149947640220237622448392801209378516590895609070284322152628029950260219141054310737277318448299505855904557979635367554866648377829107063974723097522566863358186259705266381460435015540207399197984822230251800732735698497932797553800946873560355621167058562831566270093666206067709922333209540405627894061325854071911206842010783723115459522768116748477973605484526621725151766024543439312385306335663663941159529914983234109610286081178880085428273689516102512344071740767753494038545444484405929554910400507470001169963434432522049052064148884194320845441706576902737876216501948650777203000542949818712035906795187329809938667191662998441696572309009638498448783825765624631172457506513130239712263331331712869006577773142545128884468120625428016823472858007615863037548347968597123721400024862367269931709554293384670653023709283351605585993785495016216606201924125965431746134688236887495584990927280577507512453544305084427269344432586032859648316356765289545471339160693234711601820588718022342521803167499047347618271503268096448949977269429517295607396839665029713363244576287583635457549578847077142557355476891080552744143255063782658256272368237469280696478328300827912420289950632104121730241359466463962466503668332142044443593692676019901357641078193032262806918043938164775166896914698459082620714167958975421180938632376135493358668463730716554682573426759175214877369405352556376817621398584066090162018727118366404485601995595000967793617761746134481151112765465415497171490624006297736562844713418897162016763628670330191464238753955504121907506052470327327281935114886440411077265515366975526023443448788262779221203895721994652591309561828706427338856626892094134395548984787163660845325230791625415637780361110004139470616111043268685015128668901159309408629029736873128662369894949877532092673420910028950449208557946155187665903682088204413187808375859524509898543969479706155881827258009839071843467305641891556853526318107049526596310910380135005503274737186724199618575790757053076947906315915260190484347657877628206775258259650145858835008252642262260566034879738124295663347591374574096106750312820867725115678448653015258728785553176391691775946966577833834474364462477493644512481496176098799292154073703553279004827385368783205934865337165522053183824678464317556437519755956821356446269377369012934384409771553849424787535021465156971800372573414808399612418885728282013239431004833149477684340939537223358140746062971659760948760582399199045317529980957822024853902506626878418674326188553296171576619266521671273446313444289403743293159497410594434232535597335070297781252211060065223792368776216076856761453993334094313088499476507691829915716550571175459515974543873813337018975245284316197835131915096145046513894595055484338021579425693236506092026371836215839825475694561876964099649317330893778967262575827457941043298965973917610928469065864147273855377455214662886271635293632930015365930701138352823446299012120261756903205148484748852616665807271768489369171207198525813101008208287801364297292854862532958447569219654454658747633591727703836151580834301004412767017762962952249537951831228671859860512009824408651303639779613055230614217752378387813883783455227148054566979121416957158772666570456238331946187222939005796374761419981012197116893034512977424535613980608373093731303932472395617113908877294893475893394971988231424533210526311121664644616143460691207681777835799621927004608083750782765830145036506802281415662924721328183888140248924667109839289699928961416157350276043300715842574305274529495755446138470512406473877249290956778888861070856832496349954342471074676983581206955359071941812468534315649246965231464952842566104543989837177421262026258365928280585683318119969538367062150048269503172031538882564019192825853619260865945005048887108532978129545648409618763638889226818400074234026360872630154754420380221767301903479266550304363408643056292660642648031507657470641849726002723277947828471128239630692965128278543364308670498762687871433354716376688909343226904782194276839198162576076282231952932452716975187370213386635368164649830142923322773294853705367265778129094954873558172021531493546550238554914227909086935515230547948711259414655110208026586823406037570236564396104621498314400024105220994626982517747160868273109414513774598658527272127744568069613234298125468915649265545399529105633864278538770974885688771002976056767515093172242839378832985411743784786883936447558423847150870510784200360431070285263735975616642193457618266084258262546283581394015793021343058434354265908464944715163813417046131861053848658761299450314164626093334294980606354484304665034455331377658622810511136535250928474137543073987367739936145500933280589662596121627379476153929218287233541230366583479928272994005853061224266594747531575274455945933699616432489523380355262689925359532412805209714911221852793851111183061818866964006200944566370609952061612037892947975567983807555968687208466864542131894621862620992248618075235798617754823378352497329746333902547845124307234839541232881368559028114216335224338803928349715498009732344896519382669250164167137178427889889975080719123118718318323550383233084786321068838342499966416285494489671272759759774540247742500700776814438742941261464315962802922461217310959542724140306429113835002209207764532113896539499029978750368854796816420774227256955499615650203756259963774735220408213851835553895603612656168341494271217403119392315107920576277799072869589933595345871022560524796894348071447751168511854751416607595188302398598657361570220014183750827928526059361362246547212486594006880527143171730853740713964200890819801108175395635337452553613824442787826069842863458275597984680106146188472077917695117280671023558254042658053774452621522701686345179652985817210172348832787039536469561804729282158196217601130362738092081649383968343658933748650371260911916528171472291128147449533130638859460972392551391440605921335322858135462086129522128857679457645740606263021719415724021981408474351618290070300630277407467999679822459855984507367014976148658914798604064472777643556694795773275394987614870078963549502951837176980386159928650803335018342668778514435572033984305843762046376684303034263970882592762243643815762898882996052643968157799263102899348009138213404593334879728692769952440841715596825690495590108480797938649005020072052432747631896748279616847356278715510222885404291634244169077652564165845299553102064831476710026321887104917768871391814414209551680026900580539898365298925639374013639471879674534881311492852018624812177283028297336737471466848066929068971189864324984166472440035748735673051956882617801112435093745466491147726900478885943433850374249153652609209018830136157514148288260001586338881292451120889540390537681967585706379396735582371988835207795468731576837026080865820493109625367894729209610718175046100743488464235258222834267330866120659006225714086323537776978153718938688727685095722111233390448001187959528939413060511178293730082958032006420726230919269968741381625742463845780684691074735899428853066819617166755819540310498626947120987377441323128873595340235082522201853681661179269353004087939803566360232647262267862143539354952153930289083282732850390653394945096235686490462819629165259916243914216228926270604963225395384991387518704951621021901614900348071886797486864697278893004316984072336612528044531928108493555787986161464431419275340934874048158031296857834370551478925473049510888486919964754733939673670569761349066356918915969302412922593250124740990721942852821827486962709873741399126982660465068835892827233910849719472547900855175986522283394562112301704847314804978837358645200183212208773436542152126343527675488330416246818858753330692556619005247441855101011422479879596253759870357130355821178977892491578353210427730047596150740637920978093400300055640726617416250873152668839252015476670051038671402384634353527873781489614550653428007152788484155698072459285878132164607569315459546629862005733341931104363856341334875469336654109856087794393638456894194354398774161172425104553259257110111491602560284795103322865935199855728669410673588652579702763238927038194173101251791578701765134527636984696387092913959446743823079627137809533965114636826676641212607244749273995284552202480598709408217798920665592165893370837708896588261066653597529433059847308143434862032582796649301794120605262024909421182056938529089920978939827659060417036435373870318044644017966967653331482529020746515897264980619886782733888932376157057123115365247220711593766892214938767171511450624097717277155005245357630272053218921934000721572292717863259857934284304623350356320515523015166510499681946886126800389899972769111588971319267867014166831466943371431960695381607660410019688018563023429323581430275388165113170334649837397246793493536226169186520354908007264300406677056090205436911891961370593722512827800469027800440375064741096670693311495208719673804631433945325949806291443001095149262374591222977557857784723591607291758852651466574861871157172628641835775450270645282583549655275441171575066986347166816085736929689932919649962199661799409209979868154172249600019501604309363543170216993727153769928558941125279308082752861016931794318274865527476759396926524400407815308806275592411686296090094349694913299505563960564119684350289023899760144967881907789378758751771256450201833660887312814248309738766804566444171683512183252300185741160981335907379130584314521647556306200686272971663860028627080682934088463977188061092627135992671766802017052798188122680493795866826671833130556932460079943112730725179849034653561229006503719791459613423968143947504965099796567319176900191056134599320985162805304598975098189750898989433989366791712812072415435743247591832939975566655337725355944216142945322821600748793535599075634642503929333200991412257594664520414483919809089876996085492667068365797576449180559798773685872659396661314526257350489336501789774705117082152962532232169080873110442049903484146531770497406859510504939193113163742260747433992467073223928175157037364160320050023352346188578116756317078772346694016009962292458237366969250981772703732987444708556726893169862318502492577071383108751928839523350793191038156310951885172939785876688653919826193395988230061620992662930341776148565183811620224042866167198571442196504014366484682255186355207609787885139857137815081458016707811569200069257236762432280253128706002873063501637386232969925825684526676139884678320922446093520473866509187493342341449485084234333508110222604780714015751480227912699233104742099118051806376606340846909226848587252340126728557808621475509394692571500259787068723576826321784524955831571490673857233851237677520668448272618602553805361544101204250654631676360054512145117036364881352811394161262857486723022040676668027197267904985415928704075359312283332558360860152477748635166751612028184204849878197710897218638336797303545162302874589044404438837504546238284378777306507334272715210777899918231001256010598495066049917329935161929291848726457756905417818160565769912004129643905039789271079836120908202263915474209584768958664279048281264153339909657832119521694469867731373493532504839270744586470692449662976052507322335101152460014830606361528444428858925610308608473813427724020348399912864660060170909810975858872498370511787064443368192742329169968637007461106915187567701320753192930974420862233044279125989558174146856804633171008753746156301944702978812025348278258803778307897209267276377777708067314419454804994116294028173890216520899437090994505464780886468910986473240444761114428036873815528037953066861408780382002920822361129062487928544338468670620297746550323694920003548775493427394558622061514006774714589391495098041101947572692625810663829197516618702131166586996794412097514117190912573471240857215707397840637418554097333495090542560422714799102158423332213251475722352976565150064250179979631151720859845147313765120615047572851448682205038903177760225170555385478275608479683839537519631602800740626691705739477684312704635487691382540776330586934892058187904500537357007738257165447359052808205945689720299878578566037489077142196451348198453968200089187682948227376818905592694607220206494486626672632160966503630429047041990885434092421781910875208556695912324232599643906332179772288722353174733864454137561223054579754321554035063809175360925232609319513034369333370052279691135885695486581924790487393951432492282325788890627982784947796295234297673612946482448602049828348498457622363567663457823543644647097452370451398626522245823421272199886999642105025049575959034051086322683404221686096474738524277550169893895645463937585163811635887696498862427967966441804957653205548114178543788142954254639751940165528350238572258903805421576152578002818588116829817656885712311962974477856806396727384028856565117969902896247944615501490040639784893379299949714803626818403149838488983608341487214665015209545834482458809381432855704962867790023326090739275020068010671076274108446759487959052436576839355169311650516801922390887644099225291059351528542841281747642625439599029340423187938514136593901860916622367826539274225521155363193647719902366905156582473352757122395881928334572695863504689753967400981886901384698838537239140277106978597560654531155807097728902349123918927079567685807038848273735098428440439450642574079944920372616223889837488829266488315560434281334062389994555404367758880468873419996969897613986736457232871201729888846051224339833692093958268016784035500332585574198600587492134555310346961831050359385987534290606615350453543751005826121200228208652898459164722294240618711017417179174988079663659847249430439009302079892122624232105511877036736557622059332587211874563256394227007110330863258470030068077000474850507145882992134982212149245563468922310093671783360340801435404378376208062216972726103628767748425042578343045556898245364448426813967623650837903656125687561189791839098861107081676733803546160292435539153702283286018805289568496033314465453071262234105520138879100428595863629060804569402943601152912491790205010715664796146742488980401469340589276786660159100866674763384128273750175531831257818980809179417875817712579875611711002887463284303720148104558637399288592878184027977089042413081135313408415884111010014340325608208698403321800445094172125631918626400103574324081365127623895111868404947654172953283537623261774550844684945506417281997947350426500405047211439326793967661335678679120060476786927758939462095217932802024218979964573727990245703357844194433973673214225059311727917100556262686098085544159633587259665401876458648918874585564439181060484576227740087740115328315332196262786849115876286351356164163029049094306766693811737960810594220167997799413225104404362774409699470470970768512093621615858283053174595428442279373281032044617607197407367362555697521181899459473603496473381103026985743156767263155893026160261202223924994743278564328289037214426732094611733247393897755359872423098306057356519907717957152312140325001090109757066943019098167303941281191604102566357285649058785056214387773245678594787812470984793733646994922731197890222021461464391595705610103176976504526179386598160648497073554272868904263247985180890719346206601114418838197884057863085132513503707833491429920851138298620431491696859973350362706384228789221450055104636589351329914302696633245687441839315712317593277746665813244766134042126660064698822552312337563418877090942653063292298147573598825921678225317954425816115936118206961241202432486743101557074384039714973035611724568531444542666247934951074816753605674132373541351441308342048765142066023350674000755519719320072220674294975453809843070979456609789802306190406295555197284131181317827850680185196093452921259856797416070992176021958811969666149618287075826014137188420192178370702805557839794053271451180914299235048527226290738406356044579510097401817287081457023925714368292435428459001460874245242001407103365239211055461000874302213707712077953492816867886332680811755833348201634239697126442543037736047832453487138671868134697742380252953359838007977310458194804882222404590193523148662272161126176668388899127513263227482552159035642338000059889585714714331353989939910225032072999232055041505848168884915284109976627822431926013896454597339829624120656541352399803562396443580775005760262430572821858693814419517408133462273510714972103981175136930397620190268270164944292162910428428067249365616036142040927160389747858092678372924249306468114285455946244839084462897481237663081957291632922574563688016031080146567288212330685655114587656731433881907165284927648345308880423130513249525703214584448448271208144327777853344489351910269644395561110261042485951727550532609136012572802096385753411214627403626105707369112728330630703742724503415573665639705186312792558886901134981330360004934315910052888296917753062194609995915537180848812889883313633988001343343219739246442117405106025560490573112043182452414981103706460056220173340178267148504109307439819934383076608613563980057329829545231642872895913226454037696328715422373300176034110971376877141956185382177114301669518868253135453178977350871393651148947140673769115536710534629617933346575377035467646866979647917380856562637747380736985518393725589996266391266537621380316596504248767717016510315971100112442559769107309703220560911166732859795283113122409332415869464709926233398782129391604323499808294744198475850994322639782686742595444111549182017335574414103828864615207452485404523683400023489877508900101234099757671187875626689721187459665339507066088942508796392788709162457722508333960174924470337410958117133824782223302919787439251194265498544254500681853542654683619746372117694781636143659422427438687305096777983107230153620150783190379111373573864628447022047943128568684156396885012416059107956747676773098572118381073325567066477285283911409260716137474750580951285547875870270872221181771026299566038286176083079584883331347838108886992296954281623943569414071246359682826229891996273838118474722678321983472494497826291047612946660565512515321115934545305659474113259719281023569169437483003778919606851055683801422936564468114829214856213133439460890242265891778231376844028058779534029435193740911657987375346594835429923551708100165155597859213973058891793253378201783103691768901048455276140564294305294782969837494557709578375915959187024606491148660037385433136618197433946902913936613530104211435280533327836066029277016623892616176923360107341762344227047860849795957191531928459034431283868478533243403470464860185460394589563084461621649707841073007811344327173556831006921293278884652938230243101921845415772187287010657884196839316467614425886023765754328002006634659114645946363217322381474477575363693585548182069312163644120179874226333261719167849734806248551522637952579629824941380363189594312296266481212679725472898346257907080857020026705733934219511116148548942585931607547569470333198448117372049290105439597785269859230511441231835919996755733176124851022644571987450481304682847214748435549167612060178153948042352829087838357411811476753902884901377980491787657174136168635342375244911363941179481914368876353117843374853501752156616071871228309339891668368162969903031904632647853594459618627319351286113953230191335976180388123098619135164212096774038040591782491872558705046773107295320024858316597337543712800598134383063433017064276956755793489367025638820586877995473174254262946283276076945733533004725321868721546884314761179748528861543231253859813521869181370864593778289155864968510305985784709346697177694461895558831213640657394052002900236305131105581121509209293050218666966679560132363552619660795845199831202223767026940068586453708083500417927661564602950743793584568901135840228335841722431651684109141263374822377934295442658538848242471350181849359940118461285667920474644845463299247761179570106451476354479556789144264808188314643616440409560795358449138294925424768115482300499474626729896055938657808667061567236434639719479661344229124669024079899143993502556758436698948986255585659068761764129609495918998328609533993769394007875279619632667292114457409462466299491263074553892526968886765461228914317743750929977963961943919605414354572961787971965152869774285631365639652989975127624553797747466943320732690545363817586675854749630048704829962364528647911345062549242808929963169647673507190397289456377468602391993043351681418999747735915559939590661447932664833566137036006344506828656594947541422649938930730005108781919560657889075824491287311942764232188591181714426223297058505046178226351688778601732937961883800640554168647619320612293328018557362357029424246049086014143244298612517870649240080863797419462054835352724160589800940208378247120844723242728767557189281482395351401637597538168788283754323568263615127217913766476489454596536700447836738960149331926222189709598172979320671352785242189510250548623265032846035462022429057479113006839310763556922586787056825991490515568596962629947238807453141006059399483626382846120758691499643001415080706738243437878058937305965421331194645448851596767019311590856260897905656745489705480332647746048370754086570804276063656174141379668571293962040034920770426369357416784462092212497971037963742386151007872399137568365768791482138623825582699907616890625339457416616718592355879443670556986827733374947455444760225608568412240631392222648048659751528000256775815563999352224116533751186326650019198241147507018674205512397205874075212246526346542712404879437986125863380310186920899181915662131407022511273500729796139748583933864689775532033569766778241709887362620611134137416962747916402658835466635798606498435266501279568743240925408879540450736214468265116082280662972856111828043580493474494481379220809776263938963505328922128987725069696857471382764107130939263680646538567286809673283717317778446833058910687420952066039737258532883473042840055972105021270910206620223377704614382721873946748864801190695660378213608557670531126820234257179632016114245292047209592552802604367089472453933759767374876469567993510388898046390014275568368884920561268952294942459069825787249458743988782298979570904261086150229134714801251307233550468643896402913592887943586679846745467999223596397720558317135636772496327983410089733279958531930562621912374270353042184706807504283071162319081816669310085888576861400295470489987375807062706247836213105329087214718615637029443252252053885954928229546294749884534279692776284771954832534458148479938494448774088458230393724724273461296652820879727833058936994741613911810703414973631574444700445012073084814797716884523329769640669283148160651696785198656415073315587499660294481138858269047834807290025354089348532285352025505693428532654352162420681567898296743171772169094574555683681496003872463117488232562891721460364183896133426151854006408981975629168292374331522243792313334815642479961293422187357267068544237174472514570568588508482700371506651388252476388437468460474322167894790310161393134386895234190637670324570117328341876656675284097178869963139421623196280544553016934771310456660732399467422936489973878524703541915993651607877322527263167067228831690205509196725861020825683682699781551548090406269805519446157631299244315872696447351111003964845653039955883827977521914587056964003577403931627124474330052069871387859512787765154930083985740091780750917177690668110886613784118115254328092407404062129492307019255573376307664543412522170390227931614343610814911535199634149775971511655848629456425125895336390433047246422358984386540436150171204684602956256041270576448248273432767092660654259151553504747260582885785554589749020376921022056498376677805826160386004857648702226915190029824674411929631829972880894317692901890702958660488035542167498594443656157965626063816580228207851210092056047538980518304354476370034383738463843478265812069837752111238372198628467786849699704647078552630200076053251311706879542284973795969767559199293408400600728381883372917717048561055141170114460998699252205842617336665387581312539962031187145784096373697078395217243406479439389612456984171085002624692432575966777956294892029418091962611260702424757093552482659504519338873276726506366035959812495061367043916461818646048969095266478495546462949737914112589774316991650684707600534101318043803748406325225561984711405480217312027962904970608874223355078707159949327100885745634698620040660348084568338147018507392828409412430475450468741805460079558980422653673917059319984025874025831558073959648942723524477666598800110188907636197171841822592193356025316549452722107368827810402652923308667357038814135385275143505996633738816095188541144934826875373634272628467495098447066479772926158305704109163615779425570443666812341183873636453051013501886415296309551246720243529075152474791703675990402343945815874104123911091347241377119012141361978032956856809673640484346652081304162249728795026507005786057545091227385525804212674128532056786083854576138890338436056914653214619982916453340479167689573355719626860599852687717355412108721609330237656529743286676880891376491234516949315520946955563974620722780481644656793891098076850879885443538910115921630329594660605998455312809469259559870804942732956321793345705198720826676797504981674065173554095532536260155802415074072844872333511565720478596667771888070205870598407481764459721333298114819687125605654090168036060609610252354874362557293402288969542594521726814316203461246130471102102591700738817664200331065784480622343368351681558153395584203211889953292345162912272805798288820106138197182779806894692335576043156192159975971670122812434156003666019662976864854381486343494845423402720097266571562584714432527916956069751422694120832766353906150067056519061541578418501413828793385851885295646574435581549733858879106410478696452756207299125554475355886240787397619369600336235729567705344908620253171481948032201332785651234267513999214459009872852029483945771088382078185961042202107684601817345748663316163739612792137000866980388212882727799632674200909232790409725251233553224085843347031407768915966661594958118577499879361159869625598986622720686549605666690049434831913653327175474239932823711847644323375540481411147443608882369373074788336727228963486617206411402076131724515719061470009883209569734804931450910953928141697143625533211869820269318036949752424033192970612998919149763161483560669292660385597664373766035075240047069874340315604693144327285360920813692100614418505348293506963301771518784417983745114800643979195432194870746415933172458135880224283706989024255233934389434764301564993915355668717658693578160314916248586048628592295664293266790308034667025315393435322386856343467317358609786725926226540932187093395779273772008721170506719324324959022612499927996832764472984101624814503842411837326560898720063235859721608252585054001618339630207663099460911512716146162832804367846992225372245850195222068710595999524896263148420176212566141554448167598056403982763535219733126566261488340388576765767110954962285400665291191119305016837979741110355345657595609929253308051022473662662458551690526385992053352882983032837818855259687754811336803221408536728999276884222564544542805839111560615014070947513001400626654461026346964844740551628177070830152703867635436521456009018588211469301418178749737392565364732224538349299881756595161142586213227406997954040570045371905016374350201399775760430005123787317229270082384762136073065744086637071638582672112936562233826238163203626198638119651310410446880479121807588801328689841174317705301108108184830967298664968270537010674810530938840620266052773673180014650358141511356661874846083041788668164064032495858169636318207332776432907510146366890264436800183089770889765124225783873748900575462867522956841045386145028561948530578990975165722503483971620460806097790423468386282257648023002769037749387523951547944181302683740193566994828239692825953562943355693999939816296512154776927468305870168137683191906791625633592900251217499780657157349833846921856465014978053640376819486657822882285985233005618747072289300878710695494186454901939904270458304450568913892148788354825713641185458658729819258761767860793195606397936404027639304846387765172788816026926127679622664129710034001613358241402576968126864612848131822541263908675393542080710349714426317245277522292025762700731918872269482147710971395707469150466980710994343442739494998961742589968507970597023328592048713628166567591096514777651656626609262280796377617124377609832376449852538100607269162617955103160612775449182487754217831373211428834882765000540094191205485256476266992215808353547297613869579479207066910563808322353553818712634398482638956085348855509997141855303800527650336522928921142320207001344270561714671611097169258975102706636016948768425801148926054510833881786605585450416787822347422814781616998057386523902670618839221289896456156884729578462084873491290462514894997574969156240318614162305182839364919119951766467014582088517751984486480269299928867204466053331926039173722175929491096484862899070769925417693760842875475831859803986188942118686861988690105961339799684982727963836958028128756047815119299308660432493781385514665810967129730790276448622430066864495904305074244038963430156910370454539433314770276423631089412268026157945756785924320366333291341319834246227307646649654179436914617796238703087394175893211861063110888638887175369959315392004690005146981156303392281672354720728586835032429818546799562828765835097239257728676739317896133966028396236543043327884033071796662465433377735165939850802299335338949410442081096340181023981935371763963493861843737475952144731862074359717156321795012018794843299320930717877179425422608877723962762535627106284387243009461274134737235879844764785679101907551355352468574775170493168663088746427814342078300274279978866704340694903592712959890425251171973613315283441855818062100135750231767581722727195093338683309776380533478289917932452514812714085634672961534349556369687565188684798828958994842982939517347189155475892953790744187533824393109915584874821693678143426981941796230645711195894080116744223011462331097841089583484444226949584380183470637451763972461733599093837628054270001404214967442722136805673724109939746753242174214415136713848546170498363382622526487979850279064701939671865739592346102198388289480655853880652470713404110287098222772484335465277751789186964552836208456602206266193607600015497253429140124922547853789192668683539774056028014720599333634883822525168502133917777010385394829319724548816949947933909343335264414938544373855397572147341694907822385342009850957832300205830886770349677704717144810321925040723443655052126174159418323156671452552696709027501588476468516587397072080393717260827882706732353230443089193409728034927997301359020740955343803820961236035457937104870945323449647515532139295260350737169782917127057728109569370053499561973363286170635199271499187335349536570423966515089405941634664556692850946205802244014537210446702112525400262996100606689197551024889555575600824558049056422898777902144208346000881410904491533413844559417991354006985209109011529863592416381949950113322001308014360138144299354987916422615123497442282174199425336975222420747920694574880429956961346161028484241218392368520363169565405968235415503194844322448907508684107961726968119026303685037734376878659171369684982923594018322902598675068690049976031738872564341113888828133020722569283786971590090721757005679063852514654374359673601434688300372193290863651210732740988495785718289611491453355565796427642377210676362056630805278607812230313207876311268172246836049380007279829136791664130212276676117064588013493881774761831074464006385387628359062227588139586971606977433547161562601803966578523279317535562889647352936364779216860710240856390574090424004671916912268639999917095851515493334510401912288113421616107226595039464121147055591063083336297752293426009113489668156503933605920523593547510159581241982909865515326244488992815241035398193367308955361117609553434319132993267614349522039530233715203635222837570164000456989070660924071772793684849520005846884308583241490706186819414608151042608167609297864035687508045764470058979200080334129752412542440382457405036089804381119157877022764632461889071515527048462361396200804135206998413117490873779152053110087505212287266478482659808378707777847651395565702068645364166325418010603370004375666460105807796839142855277414062340484380011154175160737407176187773050922622191520765207846913584149664413659953802042402686085702096203089492712932604710615536990026532090321391097303314439722492758310091025925577512811121939863644331884759390458048787246958847021728482669793243036765327570401228435577403351242185023461025082954136176873561283424770990417924498373032810134908228208139328376824617971028770441836562715030108142769614388277692125242758738577591745447768324758126497737193098749297264550144873540883623043236761000048983059461313341192775982098162875166597741919264733570560332339610500074396809348861811510371548135707692035784574629026757514266554309094213724531095737883366531117249618612387076836049276119831527102356239260900275401521551293498789136247710586154582376206083119057249681868772605461502045453289670410172840242690712421613491545316386104891946879048060903998843888122878974936368710199479416294336513334484242757660733668569894454879917683355739072662337152097531076962948746613414942297237167971829377082166106494737986572968423050867324063153266586063592487065253690142937528205261590848543732121410126079402789375049943548312987821951849481215732049809261839080139769126847091815619940580919732986245671719240386521081793178519950266964499449516167319608351113237868680145599912178910448111588001178972144824597400837838438285948317080478781189855139202326779640002096425020964306464959262367416177439736481346075884581520040122961764650235033389427712950396046241309490352048784537641160927889689737926724698932446598643863506537404976057513376863492180689917803729264706670992660883950651138560988774635671623345226693476506977492300598312868889827547748869001311341434803865066433866840846176565768735526102834780792525539974227538127503991372967451798912400910878892533923325529281896057381257473659204587252475944376150381996402649950200826295275445438649502445098067472579035736625087955243193396241819738738238351097874456383427016699351603937911166664602338187635008817938983504358627943044103655315873625620250241885532447807780599289363586425230569474552048578929314021004650579011417409936484424183022381527271845864814486161802412592059606068836322013301774328142803863151416719092744445985648531976365255432843518010727117688760861733059641400178165747454519101013161738839216013188667040557516640843799758773087587068823040502066522966293582001959638194180065325749604709478868538537441258631190539025519052683977226674038770471048217195852073765698710971049466125434301282094146430296517744263462071998300709514940595197662938590112972088711607483910408053227617926949558333119865154870950088878489325762990536381510871196960368230304285432721843365763642801825828970124830301780128785582439067057907074584913636961341032512938120712811264618396465129076962401969003158671735244109206671911644828364215845502855422803894943888309989367480580942469629692279122983147595654974426931652792772568493786954327170542803901850504355164286938564041466982373168461682609385491167059461967670505468924626198701817377118654744846545041945069384307822400372007035876424422980190381464546330064169756473085676034666130852831512720103892970051868495165548202591975971914994383409055223442637280117293586872559380490975394786181004299395447640762364297666212367403220091411429100491882658610109866868239139952048983612817809466733285999810319349825114915847040273968548298151991223473238403432479661208537200779744676670194996499833150214977098752652002178581550836945636481888973167253422610428825931858731223543784772481818636393603168786662111343151388115703016887203829623560313226592674294598715850251006627776798886915615538372321091067903330515586411228915406019644116675197538541786349212079515387968262542336288051724389732077260570402718476534160760537946535872338777806802090608212187604777937005262245525829784802458781791669128251368985370991429417423786461614480743429032414435671294868290438048498711016955164341872148177123278969304273581271442708662240266343915901223920600248322815262956027037678689515728834828122682577405880511936983141464910148416349854239552087322252927976146142933703325865203461050315360786216831050607735097429861256207617551859824441678881361304863048812167545320259373239887418983237531266231653042595215765810312661630048710983632845507590328904584634147727695714770230437970320113466939821648433609755482084288793581146500707663282253750063988904708509096794350173807099419671417394805523398905626434840186129694192438878597027777618750989095344964514625992953754274332785612311277759423630417089833620957146881216969556805335600643917265956198844103007276065204453824098944683253203691803307593560048228087216267603966688443034245616280705547668822671053083929352338756115764275103874253707345694703301239111272976147403350848363775966258038697023120680385471064120746981491097911151868255748913120601115897532870058806554149448892680509874630113104368478323915941385573507040230937727733613239210930705805589682324534993471019014497148399299546870350344465105141687372268529915343019550400996344513994001757866985144886063093715013788622229871839113883513396225848770106367176408921250403246772818417410697793328631423026898120582813504189789825615899279837694503508823222673016006602453581779655349393665841784855394797599385154400261629138014881366384515941659445142134213718514505706698427178953532891059988743134508575450194790737180867371153395688856694383214745495587855948670631143392522231838507013827031810449702840529874289268546651625949691051261209874487335838605749284290716913170186821892490618771970229895061265265827263787187059249956982994183993178762072012667847469003688079803225955110655464589138288117831044894916352906774982434944537813111653166486391605651960435224111504681239767538535843243211745143298190303620117377475090779059442164953096387290489757851951040921913966391868295711110074426245999774217854254527933183585991172164716729927448879168330566714934173323863466382155696329419397634250123665306509711445038109899186445521778755247331714346995964856197398270046700852757696758030989582390873284141020693789764669854625103354226743621986260489014200823068502173136366036887849271896653735938712399995469701168311610912645808379579753099335128366467413615855893242787108908728478032215365544178431679784190937643489058029085809636597216740873781944757141372446217858633214398750835026827855258581533948051716327583387428991291352093197763338625209585709973147595696956341574495697644278527246476235897782379358143940477816385592075368257861602855003394855166531059898370785371115896305399084084473758065473242478587855532339654805443762260689280769773918224845207017786583143183735163190907509131015852295291521172039038982773228711427488138579033338741726924332557134547397804847783842648443354533992014692927695362414349511340532434222761349098562798669254984036475149162136557310176085583507370436433272765914233598501879271154545088785653269881973969374664198637516396880546661644212452212567674607572978239891269205261315919868097429543773752218987244482594846200996832593113228842927212785456110679711562700172515498058314941759709362987563195295029569931159853981711681031170253254378194349120172059771899164229586512879856783760892267374341287065018450140395464834680229288001534450578212992699969824971644319274285025026749462446274481826733482055576540149517762515147749154614283761863569046766567043508496624952620843423892125410365719845367837914058286397714010252104884038774719251268668923104321180228260676394910861478240819799460299377594746293951502165991015246498244737415319044845004449891002093254999591405201989152452744844810031129728834692901378436672792047523165407120536297654254847770544820445239778442566142707415833374880467139903597789753933661602639612512736132441922866279466568205866276398687270409319173472188860113611246040756529048174464576819369754342145970820348186888070367660599116658646818767601794867675883365810509052767259863807183470079242921589938756138614970563841103272827098243531172503475094936803754903304076450663501750488107170410834266459789022882320747067980822356655152650016371965229133873255635096454427854719843361892443375796732712179795763870803152457521944653720623463579375980660916383420337578740785950224415694708703852160087552868372372849448504228672646168046347293246878582673810021485191249239897024650454277881020623638676837855643843077553281641345326483016472361802246367360905939641433489608175283154340244161362771359306241372364581346412267511548963921205318093324981249373496363565353373993918299265331857059799161273884727594270907874772979941593303572950927720967908930791322403492776154045975529754298738724123267287439484198371117699673523313266449462625878843450696430824657154226285237084866184889674437893134134808736800845585668087958555291793455605131829203478523029638870973670058085748764242267590624810148064405759248437118757575718177153464372060960292544898569191924087115774816910170584354747102710011297357883785166027506213739311348870277249680689982590313171822417944361413143434436165114860799096117152064041857612381151656174688204251203568399083505663459037258518347655404513657794800628262223365124381929466302110004336616653083210310341766539244944202511978303495085033305503733296265549814303678407249233396420381416097286922993824574018390657680274546013321243205391896756043620733509028103638314610707330901904526433927731777903436872819889813108938383435347916328425261006927468121045705525804377429397268333566397951579254543360462598996112817389109298104235512593631623174900060008200970325034005010758999181732295847292240748316322726059791868196748599079177797724050183612116995335768676918409567326467803525075119745155005882138789181871578102433365517103748635988497427307282829067664757223175067784582289938194401655960361417098017297479267218478147721089684294243169768153472433132667142405051827663756934253384951993107463571858780213831380219052388416722559978422379945974219970287117774862695049116573063851783101928398780327535143685950396816207793270398626049221980198278333746566300979501683542556560979221610576337718991352890438915652161674300490935875403216664443869120301273301525406340807897663635490006707051943297170845495301157615129387958170664972266069238523027940234009781740537792786572645109387747865232075966420779420657941740328656775745697847562191459317525132856900033249427866233828392254314815972521309153951764426852260578764965072471049773685022463847778922010322747933639719119748001283124642303898098805385099641613349772686488463145568357254282980323977009986301764985076772365542958274316398321839992063586058305478714808973735708950732072835382644608142721160720184813999714973823415962245456562732576415402740340091808187705812251630260838220716759912046328926631169658759425837487875415799324614155848529176024019883469165544141862867710860466480737657220086037670538082536648341212562999387919640536320539175243596464734250718033945161821078883934232614603363844392184624371220874225071071976647305202533931107958149258892376710416760895990418457328861429616331926802509520454687627425232501367473748668813460828665668100360245152450247659023950635818596873221015566412558913260217283430558582350649235868657362695586875386448111837576336590289893295468918851651210930212155795303396408453305159235045360865418411018710151015219644221547947463368407207398150447442864776010794025180124572290348375859485743117437339459069353645076992191822163372376681588834967020260479809412187383767999161028993233976614097641923063151104799400700302998393135511380821783256946234849291163887578268234583050258050141503813862759491386084248239640844157131700734929770699909384906148064546565598777861651589682229221175243039513324388583844930084077722125637974672649832632596118402323889149540218883036284860690972136460968754434133225096464042843766712155130461654142142474541473843709852017491930355393902271082937872925368641813846652417972158422951264489897528457968908287331761982653753721424310742078251278163719925231929800887724560531684574121765477801848218409145045469579829719746971344757617744656438447054868977286857254021130052687070136542796125155104269817204561306205454463617150708219190975542171711973422250659885028943248944812026423051003019425921848423985939134090611743377426831040362185133044775933321934577854273058087433253593807568564351596099690620314615777332959746357084216720690917799130624024560149408492866550701746103250059110191655427080546953669056294707657936962456209486342262085864103799395818663282463183908778982529406518260490042977579291113057280572137303849228099591672198212379782517730859306016889298513855280041028742899164927851619605790006410660068163708986418978534916148978869997311401281381559362756208267402373769952132995116466493650530213722757959940909815270680281215466212630438804331224539384675119265859066134106986950318405605555654398823285042534967726699939416617639595852507910678416272806883338544465951853648098948362961437491540621796402230722346058121281026682587391840303923178418604724026525489825839132964729231184490376928918018757865907864110713133816199654996847435801783098674472260973375801524867496580047136687236127134214722363640839300842049867606325601900317578016091571464140250078163751066938688770816154184760255162778927445864493472567159112774070294544293746518649817836093737588938261884514078822203056227029391683687867418498000537907870825571251127919887977375418024475821797371345781433762593036597916058267481465774946943881027458100966447636156262038866650453356786189936286126656866997815515804473341166000794903554929411890396359439686310887604457942905515175056262538882356695064145126849300571297491479486294127457096006125449150537898922308881650154927072892243941049165200618212868257806947203385552678164145830775108652766750623711760275099178685804509978311411928502719937503561383488096545899739046833626935494429391274084587272589255151085703373583164863842925807972480483345825991314831293063231652877704359750517893981472887293762833567627737428520234956378098313718584096201981852423909409888275612194219221301863803683535125524319346552013270482544161446389060149297987050872493571923972167931709501030859031945617512317605887525387556739167587109197114024572140529055017772339433332954424951874873359765621948061811514120787006958733507995643680688432755199667841134293145144748413751163710919384771775171481879225970679061651356886602185032302261150558861954226158419506135467434975541806570781752898218062414318076076498367374267330477000398928240490235822507772386956018918534722417257668170596153125430351357395782929315594463924114695529186807301556261931398069500500024025460765382276164103220421882764397577782121123540046430976457041306929513620832852596109432915891793122838358035330748694229526474790590668698779767001879851964388027276587846952247129503042285923905104264870394207976377478853344174124745344870549073709093438151903520880083880483838326920290990006408391113978331613896019404553291481759089653065828669588399449604891260525597682562479018355742550617926005094554909253207952173156077963259635419849864461859735887634923182853697816074287273646205228672135981507257646003684306001809455000725510433299082827164631663782980914601501635922465790656354789596837271976729542910489854264687388804834734179650105073192179537980086165327627061062729147391986246170761086463519352292348562240098705998238752088537081876478148459010216995944509932143856235002291562923843554834678197225338941400500326921961743944428358171901050366299998519274758927273462078180954587689554310974174694728820489024148192855131732781731556511868042891829696577186949958075703841710730595682135161752466950361002138582329363035647812841720097012427472061121846722473284278737021905172187824042863059873479903221396348308491604241518636836450449662694125218836491542850491687141630356637451871451646394699465732867765280939059815570260521964690445873558839380786743698122265731164595284348126233013599804281406720296488235675424639990335996830729820498888192564320748845108621816079705859199203207750544144593328819101834746606803434768888645129672294954747295332734153382450652201962434015072784793953115128911466221696690881764701447513786643344502859385109559930337096653286858519364458982837854201910809957477313519984046702744396915414492474366969947152901345129755178665429370965667183663658640520074780280910220739899658222338744780428202344795173751567636459844655037958866139970333534958225968682493531568962487018553381080727978409882467926032128766111079015285383215822898480996814375872422935917047966209482616099608028403217249354231065746125517452269227107506345136853722850648160935091333667124636448508756578865957649804460909574461730784123023530652774017085554138986196201807399585764692581995334363849036152371860561284442323653112362920101062935667475798808562060713096501447842406548302861083734288516866796181550027232112750343261963572213562871241415320511578871745827604532349559791426341248017077074267861751115662551861881813079610384929490789771597258920101456156368556815619180565798939131195869056017597344796139041781775502012575765287990857735939794799261971829688005163412124254257430729244280238561993114554279156010968118477145865662876775393106620637650485044039349117136267055562718696856013476355336417399335205985800308100229374534612100570852731007105104112673257075841408943662594477250931783469583555214470584644705205037797986706331029131729584340647499120578721007303268387207116574192015744224907822066146936456474020441619461856678000441315212091091088832333179117508638368133499547393209196418052719346968354871129190025089792101076101043734666795665183120188402739828869302011067820791112173380320841266027844088687606756887527369184860103990104372238963330677456423917490142427663387261220628357460631201825711742313278421229092721998063047269804781572942878126062555904880012993771681403745999167711104656853716048123290142255654532441768971253976776999247037413805068296134874414644375257153539108449760180476623820505213688971102691133083625392825136044030999660580935636875689956066214488681785614382181281292324270375692912081957409920226959259077421406770010262729149761465192679192292795364419770098258597736780923238107653366987833561991191181169112164436626057065729634097765173969150684328034942030620131783530842444408763331021450111630959680564791442661252882690286634227354518531764967718346152352333088102645220281685498576278839635487789758656684832577106090638428166537161088464869981274294339413016616700308127722341521787304068932064282935986147984978846185349867197297017342017656416979889123691087057888356714603325391404100088848967707168320021052879691642851889339325861114079509845899413274816492352748069604940236979460387772906807817356317376728721326823437200438257526687868922080588468176063272970895866813695705021171247539289697050535350567041085158433205747145231612583065250967646891896687935608195573476962278190967641160920759374871754875154046306559900219332775255201095506617922450942239911502338822212580575018210281364517768770337028312908601440676673022536947080928799604804236953711076966007070321292320072036139916502700161569207121857781883118410771225899856407639326116372326781412375836573247678386528815653118672907175474232074636696716651312905651170930649841464570995255013048868223138114681895064126834470272764993259672921727835309088303603601651257728823836094783431143792694329970187432816339689428950897917905649350589453269566606105212805406866699425491671124460940304445338180614489204061505174207449497849516491784849008412121580728148528747495260104024718233164779022701196314558552589241022636570443859362066540183021304572517483666162543772823614073268491274777566832364301206087551912388312352057713447460168237157594712710706347823529003346049391758244139423726893400743219192449882846118206345873640422917120665559821874229353126885160529763635137734739316852174019993173269975011206309677063969620192633366617415068786903424248447490119550936414663697489278956303415375434408400810891707622634473606832246628019128870224925368981995859839066488620879208569756601933515157457735424820811632270710865584455323108615672017140054017134098141978842208441962906067983671778913315804333228393912975977178035433120832895896645929635828556585082573027123417792568692680803495486789894548632038181303106655015742012507376800706758729441824877501236529663012277123870557405841626146744382688619852880470219960129052919041041483730455139357813399327230013778682625223103816296806888093901676230766249834976238710921378450629268504504124845161124488323280769855271255742982065820295589338856179108124631456055050042890485321970013800020557009260006341211912099684211128113529916516030821212187110376947944230734445163547267539130987947401130276515611724900918636136761517894723163884609492256837949275341886431847025950831168184249970771044977986089859304112334157461339201571142990996961324598858077043316659805783082442099370103897101097150714399371857931474015811978943968399011895548660246174078919958405256833700215285032570161861165845982241075487952188059338966039148029529077860500898547216467807020292069240793937388178872627687524796275404019178686360961807174888129316738578977906140040249813813857673264074282742424396035985434187973986082536434740340544699155607558646005336923782323560583305311493742161427970825137734196167706108146024743121431195029213919629654808437847399032420995151398635976092585512630097360465088728242671592962685179751022805594649526083805491803195561325244731295836790362076223872550941892289582442169358424652474038543922694691016351348593214589609761189747898027927050574859360641761113161314106402746257568625022840152937690144554139067368740344016854266610168780110148854652877340246801317295668540648831516028790855634521874974791445517687447234508053180095158793074406827047991817662962678696121935148762670098248680545053837491472902735428483980625245361198634402568306681892088303503811505042343417736646615292475702200615309546352976544026170056939015693963079240654427265057868799544667014739666972751986967013497423058801399907808699964329926494898537290162074278592331779553341447136322167875805560839960684267875970694210592879494487490150251382272807046432962804235091522300451873514661181155578673147984947788180866872666249911566477055299973158776647035075613447939997801370021463745908651399266878148624645248596461075074425658926564535298756893313497299172566971908480002009451045211357896159829781571087539173113293684432673542278477146068115897740160191778198578056396976539607966564879743090723664456189850150749746252818042810909518029536514852798976616822918288624119804176318854822474411407178729873084349943778400681945499426215189835429746994098144716975291683613354533406266877937764498829161314354729441671135816335293556437980840300378271632178883000677282003805828310231876983551523446289614242351081393949421943949488229423560845047320103517632288879538823854534089367202669944416137966682374760270456013499385190106640285845141530373054872957611499415660770015412328486760953509753697012931357333877372116707370192931947733000455861701222632639712223639371182526633064636111279585563645859442515623946021104641213769117771542370913520707585590558112033019516114381041787553333062792926755991432217042868350385536371480883167233188148231036008126315028129661460693106210814402127848362121545155515058405782709481431190875804193863105588102871093558274430564164763850073700892015456738862899768282024879764626979367724406159246112722027639711419005196629893307954638743951688654486054636582498063945774632709534990283359480711668298498417005292313014600927166902645903675378877829881262580594266675980920048305122349117121470246925599011799652670346179287957995586726624525152459858623457942335848732657551591088647298068901278625075448204002306700367228879116332874573033786255001125093982516865593240507521375459021883292879683976178754889098716588620151360283762409785184346770077351458483108741186961240319302130060192170587506538803245271917908775522487948097797107377415058359542448032259433488094261746201041932778163166036471669273595115730424127540590661122171341306122056455688509824492348984352139261739948561682008223853980766468646925918963632648713775734085124102517222927544906403980978365266711825846661945496687698381421456226877375573973182274329706726233497343261250566915177175959073603246347799871361976668702923568057973763459663914685670650620789341390174963478504330560001250443775831829473491193203778594376138753536764680587060185098818205217700920159845821636848743864997111646440995745918029705717893168882918575664944622203140530905889239519046006461665060815282725074348467580444923141633355170875134884142017728460996035135871886441131292884950490508613869446126305395174209897647554609176024261902739602960825905326613265265760344113222604615293494067294252094921497380900884431631838558076057231736337096151620598765835186649479945667101935213896333508332662990419985998353976823836829885278738504318596367204414827279203616056398392346816447011252292294423993828127580182952340416492696913698969863008086310628470673072559019621783153137732973433615322508602697144201143984534761502212748047208954742942087653051968008585163299021976214357129217187492589562102266865009033538596180751496225207637320960263914851958883190672561028731153220284231252596737537722714043953630765928379528239426779862564212054810949741888388549634067659782237092246105236720984344370291200714984094890445954097401224443498248869710107575811654271818403026713809979334873659982095783442219621487432122234100043694733637162669764614068008526966798322668951892203564152453389701056850798221767225407474270232978220399808975808570731917799470640817409787008505536359336603015753358839244324673582741286121389834603860022230632200328535060915911747217712386057304469930961709823015126581062560512435015908464524201428483300988626602162352570387496045065277385642811408533426069249389788096504076284255632021403769224133187877700410255385492920781662226936244379867500404801201299255362193675938745097039432636639956189146100830031807252177054108757391094781565234080559186804394227207497137688251942023754739769794979055430474806932429256559093803913366236382339807398259945730136440096283046347258416690744950943091636498234150971752280258756952193529617553969589251199321221578060946629396984700365584910180178626267663245044148584075067778715852945906406807937120144511092619054609779305485569054337666671298901617054890694160237408507860817875422590868121185506039770041301645178584800690693444267553930207599586706208551947447732420754324298373074280384260864193071288487818727413395604538966394540758961320640920470058654014929335727635413311483136088611620721726115875030907644623128263450553632056303913044954111520619775807069907082481847541050524277319091693973517257298693921562219817383937788949623984273006926406869187084056540049679729416923643960789377262477799903052343973001110734408028636698711124919012548074604514780543982366364911597221629188443840924035290514823369531882154074848561258105358312825386155302750959179748016472837481389263991166706115805214856315928269990322074212817332304536965859541434116604884820819984188353520817110573567534307763544640237354656609941531657191605872351821481186543915336893673669632075050993344435244399584571508726222821084816694465694597037702961693105171441705436215029837474437586638449294978410814357566869950588523240332440300614460364547679291215464402522858699700659212270487899874535582030216267738277479916263183834337042798349720904069830802520880374866688604284726087471555020922752913180168874900158291735053081763845283629060261953483709896447993502537756438532588834211920894604524782532295486203075927717512825543505132014066471266678745256282759189209671111175002240567465943825652950518796350557824849723194419906131197811625281861432606570144485881674504488366878332441866245680257664829485557829643702483221932793474768016187324612866419952896607103838930744492877925704544440201215479517080400214243685295132877754462728339199043077026740159759125182043712452754638252582583892169635968838958854371173514274586636715332884633065756430723462585838412395946563626496575182954851003728666421746674504044624165584794867690257699046556165732853905208696942942817349093867643554873110479527258706416505022799017889856749200951997878773344295629935796708402255050522418251971817508389964869691378535488705319686859659735860766155190300002413397002377877126229650713261743316504009652990976576958297019018310219263755551197028798185849251985853498779479733681175920780074092465364202538818280185331026732828661966606014672544081406578413224345977604253305609755070541212132650411275436773118731717163573042409439184799706743513202722957729826871992143796440029883273678553199738098663831482518730602585793397817003619241241825680240115149728690833091873477965190907564003866795715186370491902592144190873237594233810652789984997634451344265851030374995589711964544377466583055007849657152089572480804789436135401034818464906447171354579741296538656099701240639484539877716836165616307242583376064454294856990000576414995698951175629839098938622662475193452237198006693004453526415643159943242264287180222575295552852408483402154642510827526573877911319124411142633937584905348642715740067043844216354661444959359330386071072794452350473264065710889793163497293170761819820473993492372263771582482248945301780317497671273628554997235751731319521011325123774113789870174198868350490409790595512118822396383621807265111867565805942224484420337525669350777771528119452587266122207069539139146019905638564539311037020539861288786593780561616601644910986638192557500693930946640212425053911577670909134863325590003508962602412732360352600903222463768114269689274176219813203250173757221179666690737646228416028348471982722382591534098889246024161945843908697095388935405996575992829417947144750714818617409984333870845810939684833912394733921692465871385443411407550363147255167591922647146918369986343885867313023604122838791832873918566154896365813830759166920128890962813256904765899866402732726282465046503645317131598568736911143542158536790305553914716360376978823647242092805851359062978774632231508826686445530113519216095465320989919459501839140461090539586647107969019123202690993272491104108086609352538058698828320099867063045047662505981008031193351212804551613640242803804003211536137950273425221336298978312939637555398003394211636288979676504104666587053306181632854422793867678727039858242674745947497875134292661555330855086762915759857972365671257764978823713589831365756748766826889838302896963854490212485140241116268922531883444594591459043824905669849757743625598116954012667643540107346601287440542009103455645512035669257801946861503157026581012326317893835874162433376754347965565789766972273815365667792947789941523018575800947980097084865052685915530616035376294941074313128354765481078706567564147075260255229347747013387016192682234604394336280299449444584767332911552716785003658266899588094839699299436728440441645224061232421311036426708487000489791632539014913213426150935139954438283879649523516683361421998358552080678972570080468215445757846237640635875379081170038673312694902136933137464692615226456801103146923353048650168154642573005877070897174909862503685155220467581217331517645218424373732167008873347654631333199560059745994468907107928146687149949010432922754622261893972883477309500520058709234572489178125525976742743393674677158017293405756194972831889261077224323437630303534966347035846684824255447126963645346165706859763164417001209711094447718697818245066880780658146026123503186478002395835276117385778915287805629012064467545220707673772259511057678896565299291031163854612522936671569851475439596749552081710997396134084916881276737296284198464041298572650387242606738580723916026301078056950226845628953329491004284142540840955602779605989348910164367110139701981923996365379904541387767523331738620982961937484597490921016450388365549212910774935652391893249036607041510423710693704459678970214319107067778009065925715115755623603896663735660521584981736134595516653230188993474445555959799564587722452219439880074383095531090360224182852909456575461290971272830433070339732766698875529466734633522884216473736283941849115262081423740527914402127774457806159915912882587789770018097379890632125377106030992125275672491561973276533677151182162125995283336016670130978293010274062089426599558391521309010748349259715671785077462931933389471861688333354835241170817613280718419660574304101626206775718057663139885690687073121794283369689816255681562193266066680737733272536481585321767771164094118397476402755154846674694782311071860086609576578832706917536770188661965090612746496488506155356946532197049552443119716169896044419512345840832281077663052501144014290054276410742656432138615580144457512977880398898628020166550941047487860535188839745129941771282332820189788980253760439345913083420410228908607109166450888609634300602780612407480191562832852369312773729274139946321335677024229915573748056785844596268415322148387523137395521813586426026209933824088942912373676969700562189493974432359069597952702768813753141865607037075226519632618436904634163849092555767983296229246739225143007198924872683824171436822638531950452717817567630897192293192042555494859911166226408147544627280901567680206709029980028104202895464011155440967639394961269528657558655735894325438930705399234392051171084511755149644113022570119601785152603740994261935667167985025098545761082402358033979519102607596034257718791324795969311149089320972224282423518001261820742834654129300586593252710723309656366815823129867542175732219445142938346564425655652424022284256627261055706181336801261261976013945283634002947951173912525010663435155871439110958978947506320017840929564745596009855209901237202647533856081189452733484918187812402196434324229595350756290544699179567100292322399083739559710418611259027875832638995852417219368090394123253809480472669847508095454495295766273322112063009295437530805601090037524543304412962561186554094985727721676569613224681939791355354873479476796256645504479116487852512759282841831745753355083045891953453691413243278909827011049219401982982989177996198555849300426808333185859347989679996486104591450875435999558080933311353538448474280246771743148284868939335354533043498685075762128879578240681969332479636823165989732849430771184762223707697212947689343070104335905934567963207670705230716666778702301327929358525384027202795973509795676921229767293171418348517186558961535846214884418665860385002179919299522567718900916500987297584375290964188719024565504243267194808223195717398445152552033265971884688029124570559056096804882807300084995666693695282687949909130841741233634879772133728430036852446110321143092226300771520500858215050068053640567974545054549093079452149097198254258783109128097860553155712324704725463137589595482745710433689814751862578333935611602510339680507739168548940398082954223010946086420601812115819034702946589944413590848117980457897218958565125242218924403965855340507693012731574628308503189206060885195886478946892912660189748383497805992341966136982869651646111831055639677195295002930229597081357775700681567125733499600934065948756637156894892923090751283781329957955486234802210151498848965773727178863458173154543586247025139344293401419902677200413150047600977264999040891472907945439036330622351798394156447466659624852137529082565919237542504313926441147068997709615921385682714948683213170286903460835648193087963556371901545853733487370312388960950968413698917796718709426699038795836491961493835116450418313829326492036389372720725357888285930511045537609544449282545058508449923363385116761684185484214918374522584276751424985265075566365581752363676970140736458787244274759013949940058353327724078535491984606612625536275770617092202378087045643996899705641195988632091525552098677228681471720400126700236377865011910994375392336447586784054119509587712977817217671320326574030974220248717110957596180566563640416117417958922861929692712485914184969431079250003277404581438167093284913086470065247897612748878642232209068255390580635288916182491849592215020778537831197322072812780653424853066424138176487673749540816312032513516504815279124397945027075336385432027586991783532179176781097588452318894064087154890883495967205581510054372133153062611540237638722966877127424902021235045547603417464465453225088481672927304870493263721899011477047672288174113001733106199755895767895626018511897953490589141365841195821201715363937939240379437651259237666533732796578509659834904068187254123325588602775254979093903486917365570693638839925714263492129251744771017755646413896912855540205838273859339139432099536904019268432552835310725212783643553434981755890182856783339037960169658821693680983403349532118057723040981851979037580967208557951530118936934258332772540872937861439455418672686357729311283138385774834276308237195816339021956554437257360434320306530017760361460159786641057877019382819108747038810291266405997419201254762369912218804695922904616612654427683351155457952566092008373451113504131844404714090016847104002773209292424467074675910824252204331589894022730984731594604724385825676136246993122412068262053652977406502488604889634909927459290213059338878330620019485351818397498117794626667301336032200554336255428182980716414035302464144842673229974399404181193040707674057974781659160016385009013853853944843366096633306986679694058564969005224188416958585996748182191353232881719121719370072026736068000178078997358029715643956804750760022023094623581802304453490387406961203063404464960402294554086975139731037187544474802423129345732711682089675323827672511852181961926304655188036501073648672704973370708742004146659614190021254608052060989958896917984069423184451020786758768032509696585422273261453732238546721879912105127429120307632870138260249913824461847377618960624070087973002707172436840064517658861602729031535861607039418059950857368609039032417187857479569693893932626032357145357213117037825328787227927453800782521468789221592850115852583879113598897311162281286953693017499750412025801292339196452295594488351007165113786598893178362677658694617844760427720554443853277627292172286668764691044905423630234063590236069551637768617327009450673450127418450784657839959222366296405875879779899564152343984043127399087098786914236343290953507781506784012148045574795103213970344893211630862414845004910815344101836551384002915118363522479090785872731779342369599753628759215122601254752335537090289465087150895319600467624380667308628218957983373233044065505095899967213816222180839238897369723653287003001620191195064823749970254241475661146341812046881668976101825655208153400337228406044934634803545049297026432100245313061952242291167507579963319145409254150375469353260865361635536980739627696051272876205127357770048395637204594899320751931054107883016492770278724256780411827121297040942576243033365117548106966598579868390449133154322228258655285819155676067071958141985306507162318590354829638777918838969244609481180633069654143134355549075808102836254826445110255337592894167008225921327703318961700987589472705036412936920869810094407936750022120486085276047370151258157789414706925665261321246510531723635491633876919923609371110163429102229893271723413610572267891546722729370703346368949260457270946209853806547078141248452499127881232184259783526631399425234016061988776727453706080000962736609685941975848128647246405813490573795775563159116446052096480311499831557042959929273457976438633526771498897698418790786626372414530404666839601049660728239331640955146740688759657174091034918696520424821791676522258745065985823035522606588395849660707609995434285571060239953223567283417584960090302370629975170832240746386233816043257621076442550380471621022498351850299894680587848443909182233691105307746792505041155875567757938622883757532473424278411024266074221527017269557569731859156744602758516906558099818264838717807033714129439561958405520120838456807282140436245771297536438483465768251154679800310351009345159881657412869707556788897311197985529631199272752310769874222409422196338396652914636033431392213758430568186835120840054530851046404106712743317452484452544566116630595465536547840078892465004665530964959598001262489835138090694255937359581547049629638378634988133641476629850850328687988166347097619484013410640739206116923842332910701181924262778110854757792187105800341789287625618665939238414994080471265308047782454735522542274088803104889103198916064234780709899079448616244852003004838515647906410652120541777142261341951569746480831278186650741526260474966449668283651069761421237555279939487935383816894535786465146675266707793255104474083964213705655382860002345783800218472887545049091620310958791212519356107366468202619818413979643343428588502579392713208022648866348620804046585950985827604434259702699163763052461581399695217042119415332963730449612220679046744740040334024041047777348510722742607919665253754523938703715772596541078190520319834007865522509642739491919476788223693996621679788167089361079477702187965570148185947979187624668747462353071894362030350903912451039898082555770067686328959704658762014159006428111651649605694003766422145026390634903905641060694786668564480482606990407205422768663371317346219949236167853003594317572773028760555816632433020096561072664165803710280872835072403112818799319742736808193824885475811359786856907543234444321083071336789935361202382275354356273228425675811309476774949962696110250957197994197131673211926820949357216735782433426877501695357680866343885885552148184843899672739964597073668778820991949410804599681891013280953868211281663939233057060115026805982068409328202023865717606426279748216282814193831394657010001121254307406408273493875383482270742693647038931024457561262596691204752702582656845855869549052602049297952319353736626736143047775937190565725408639345329117073886147900526355787147149845109061478969660544967585281703210420347588046383781672298584045561351023364826451893378160577741791282904395121657354307107347272904973695785489472411825049904257703481792494269520905066176228647389353993271955000005810287515765335118621713744799779297977890939744147470965246025599522132491190445864356859363847572973562578236561231821944034980763109720684757119171723342069660836522687238499277701776823473304494954061289540271777563287147207724138576112322581854382726546221585436404308998122748686772545278551385761611813474078018252578824423864280273073105775015137088037190710208677627555068591617319058643406247942799363070057211813482489501481074512314156164509064026067654090261084888437316538932373350093015378513727926475033446631923875135768401008873678311618646534292004065452841205875125522316936165659424985095975475394180023660551564269331680540906795859985802298233287686943425812026033613527686673289980419572137501754478771009590114365369546041376827406722410307407558499273847527919157743975859049191424844869386441431923074712399827516197337655185266776405398769196283439116790313969167244575751106684252048073102016920174102507255174347757521710186198142057960480429294178512628810554517639525835991355311221549668694132279816159478397056450203492309210160033872322278884494247641440803366981611332478566032727843305502279638987957009948653423510918941740235079743743198954334438456832050472328121995070141688792142923365809905059171597471914770420596605365022989578738267512880491213227166974682384731364629462078382050664243860203442466618403849763808269716652316294496027567079039075951303936459027608555826818415547689651183338211985873445804048787388555400696712686392929998155880256442873762917827694402054293940023820044462549778510421876094005589331922464792800414360415737410197744596822892441111515892241471653331131513072642349424380052222453595015507796309082681049589768281846919799440276332141314059825861176525863574830822667105008076454828178319086043880190630424615845052965691035525284574072383943820910673225886536883726415435134441344744847618172103870682009762043183142388586306075028133952419141194128169383068585810339830163880056695031477449622504511831580615029830108544369987284710656748446288353821444020523662075348123737553822895357641166243119594706871623447020322521627276415166376990592813692105178028409280640359415732845322005987046583506609726345535873076966939459224589990495604841954859293030215702543154645825863621627063358869151214767914573534679715810747583349388282022547631542771041908660688069348866572046034897168610538135281985571388107978507875976711586943843988171010484891245184477286257090311378463504053652573113918622911195177220347036250459460175705202035486378914790380191691177408250570768059560934767140641127864930502757254069340983537244618135916970732928012389280100668095599850433863543336807602243846135078784699783569023953584568285945886571357121979045066496782271085650914516589980620033345862574395514058880056576689894413747172069274989828458981131170127158872655806946000975061301980166166410192569705853794158524761135210270456064066350972676896256799243374678785697470971363940674593878432386575421414158541208921377157614927160765385424513829925817461870022475547735544169868128453826540874891989439190573840046223226903791667508881109215496945836357195351113518474808900967328806505392490936457221193106695298602751284097304119271442371511692182718070791562907575808289276004398352979486193906515953801817233322217996788306218746918309730028788462223754759218724976485627567529580643817696419853953967352890581910145662883675492027110436350829010524307290548217899703522871557316596978535557322383703135378480296340973167829767704193503197897101922135829894109122276513829980359734198917858202409498245039432422188683566654470080596753285597271661761285819635385278105660528348641755137815929930109924318179249744558948720414170317115823525971330181445665351679600764129390760153585483043527580086664868365730115103662273469310640359192059156391282828315338940226864352622146532645146887917343456939210689705552892332505704508625835008548230644402554433835065819639560536997665182912386965995721735746171119400483086435782536509276717820933180675405766544687579915437333132688336883137752302866053786568308016427510304731097804245291778386638797772664412882541830814847751222724939631776742043688846269221201715774280956040641428396337728755172414254350729523437486532721523641256482434179082395480968100589664678341725187838926232726526332505050062827281482650628030765437152778201804701607146923561258389327624824202531565677153792333868468264253162798487514106756712629918925953491257697866748697327637879795409299291215556182609631666762287431160051518543942665365601779198792600581647282183551204131158191245197435789050677446781357868908617767380589912288594022785332827841679408383465144011283518279738928200257872173404797917266039251878024816069047681679038075406702535070277345497401692681994296024246819458803622227060052557943089540590994815607961345203226430348264286052549643906725852567417440320189730315984851537599621685297350182712331519091435951640487679449817409265551921790066988445959945876584358017884996825091113791537158494623950159586022354096004489821895320242616965533983442253472259359977768885320886563505620828556358898173986935335413708142415380444751573474366967884998718471725053313001595941340082918359140249037642344258705625200886945721341930387191108796931180545902605186528080540184090128771814405728501376320897450005226353319807489437056102633807316902854533575074957559425414379350103894138472954066391800281520272329005653492023359713940385800766097522303267225402887373346056490907524061528400179088795975566278267979346935557781890013392624053473296835337127325584242326640985418750713062308253250170073880473159111184971018578231397072531765389758858457058473934012454137818235515140250128937650199849559368276020654382347246320539126005911869915870504744792350162251868992432090353329040410076371144750000037845764491305842644056626833214919249038293370822837108292380834726580983142727893229914557426832627825773849621996564448880399589848971103231938286188874811207693386140165930167460687304190571126145101945683946555841077419306373763013190040634839133127156180892349090809280472126421355657429013371392478759711175808270089757073864975391552608451683108001426927088904607213595681414417446857152103894264385472566865992373505295728648883110087709398446669356517517688595784604103116298734960804022877576148817643571476559140557809143672619095485100378905007388954673088142615509799854151186204328787834429253187053704807833538679551564789218579815770651433217342160130228384110070966114928619484822789097985381550296341188031363008385837879829361157484902276074630166237268059632581077149305374878278622506392720125289314450888840775361431893315818370951799216694510623760669461629446071925881556189656661372602101249341700959469779977466017393390257359228382464717401544430306434790110991858258121027394515281328241206290773632051113132224164920497086702024427265489508499589885291101446444205087143309333554491003936184217702287689546738730526016538176209803736925004915387013511082592950635055903849014573155114333574270391412898947332175579598314186308998879897545469165141268811842625216334969414714193744525444607111012189408634898670007684684037823296774770501554382160097609750506362980081203509297608288271801235782951406356987449854934210831528731547412872847775676550625141622997131965030292610948615237652088925168572960408478491983328264073140796227881355255335519965798875745642868601056049412810989832561514853660485852087445930661231751149543791157125046193665383815402133999246312685009605117789023631589088833813448947278108402328951206219901770087147427956336264918685400336864946817994678010316651389669677881170002933305911790763687257064305123809714514746514718642893559052145997491310426445673000125156583559689539023137463193808356692914950354876609760118129717530175507275692156088165928168888476385470305307332543844545300284824628573791016581308788730121442509331759092220335296322821158766234676691978631353634011209414082933033180718250909770005930526334952418996000163029413369289609388084500552418491970750906574490242114314624362760082624823250751492917243331587870371793568805510746060188188393847179932703804745942189925889712442216178227616197465216036521782459618223673430457839372694259015105560475061436687465439302393438301881467211789641931869810642435412283928021518907918362938563141385478334194014639948838085830073398360114907888588573360618227472975555143165763231913856073484744668234069134458283141980869129039784581129571803975667628495095724133157867373588584719797412342395339332996821649448106330093727062685441452735958452101235486249429023553262140276541042736802810419594802285244600952558483683060096061070997708943161764897423165139821913915345173784677460105709944552118162035681311384995044908710683775192574389018928861617757267221440985186784905260022918982584496063958755923905543093249082476476795324120584103289390614993506877857474463835190590549245293002147405485477546114137533906216692353545993579720364252700017663630461168356057780002267064263193186304133936318793294265953487055534865716221452423196744071855241921929162175679284976159035435004054488620442759882849592326200548228744153775464738428129125804004706752362412184444379862268567859227983488619404442289984366407125962263202478762129478966875341765081314194041047633907411972268260127816391179497126204791163851605200343959395428523065604030091618474921173251549119679414023168837588528398752918190236404579841202297867671006442784764313858531156035231181613855383902849491010717669280635060344710146984030909486077227277189714915583749653249143482657426336911567086938623007351322317041072514674666984820253673995819968184058841839235952073016723604048589306125238300568881699492079639142943525809092466605724439832067925191390973376839166809642696293027263800067660812770684364164868085507385641886295421391205091153885926299076739208893088156453930076898226751384280852919070503001579052106063331692154107018501442567770824825838378783488695503958628715932780384536684388937188495165838290541563423989823730185550615050160398713860244211578543246157230548782702948596859153393932857900373726798444875452855805320761517276372402416647647465865526645981339347318296250053385042633320307093255947658370687299794919138900946811915613268438389696204821646358273302863152175296463730276359819283609106243920384395659136493741972072099613009236593085691247306408013285614491716243890479594808133016871510204331466973665443511811003086683714194970214991274119187533798182505986945320152668579438901123714988920173759597029074224066388076803818627779261369632858877758502424034498203337009932501193764275657645365355919319241442915080641322421119632719982275876700800138789219471724100786448561808268576270983623897347431008083186119974505000181291088754190796723389862025049360241386881698934625712613053103804658637125609840959152218574358724377218180028581667237207166101515270593362470037801719119932433954049311186073573521346569414560612743598202142662586285340594262429983974035972745088852070143205239309937328231542940977488167754466240173476285051618352919860750852659030690356649372408833328831128651722966317595754958393754430108210681734622497891456334756213881506636576675560873628105722731469833100188778258931970378711566893505767881845412597435416328198781862288199527130153684621078372797995182326574901474334422955870836288688218875705221358232791278471357125210813212454493391254703134346204100880292267079787396777022732672720909307487262669457619068144020430418119130288384728410439987951686784798501960225150001354134089570507277841917082546852958221703367875924875136677149197406772147040817398791736802653746182687746882363118932618005610995136055589909496065436332111047779847517913251025379059288825642967432940014367576266086624426239689964091392407131232559659130270180797542582699523765659018746399285813458952073623340471846321203596566005581264319617984211539358742609793824372640073229313627684883648777066680535487173440370874037037338982697094519684027063683308987886733404793708622217639465223033487430467314978201158719420708853855212625630354568241316935948121674151336679208741030886463571040900969213193752532899336604852625622180998846633897190692875386573828847276134591511317123405737000821147056283453641716126503192050533711938886716174997350898118992694839899626211074327247229672533543292522665214244272704171035974806014224821597952768731764896132351614925169819654681962447399591753294479263317981833517542372656363215119802271055327310136911857999431662348295131462840808104384874754042696621174966995745983238713825373866923997159140209818108904145107109656939118889043605893817073155928691063379115471680955870371053109313776288758547090428038576587834649282773525301098554995352040599839334613644329083514445381246133169978632873226588971593884517343948587803293281298677461311351810960978761529121853893087992701613725210322347606919335774211690801324687808562651092663558434002478522514575391821378319747751693935384021563992091068110109949504547695024089332482255685081119808732940857225691763928058499137287414176594080174350208436575856652565750866145926087567869933768487708699234942627612452202188935634869801656687109028962049502862012890348595019022982860708079622495189419795557394302348340394197088628188514156747997324019285555389558560466406895838326355336211191778869255303339776517290982914062688623537284284370413333571453329637838996938606416694905875276090951933146300345635685827128919584939900138859065095081922980381776000131564585620843533318060027375416833229359209614179646751326273837218812309291521936070943357759992932302737585649489929076379001468081930038373960780438151125225686982411041970531808993613416952088658005146502324692920277539047089582615212628119312051143588753651072072997425757690539406811051908667043370932285100400068773651858149377747091294750917853345637347844069815353848512767542009820209182292593623148941676555785030065499224032105084531395504352417871135491970845209844877152691036076400051216783665408107991509276886734418896172922693791170990940149981692664327700029048704189317571054799452626635949130092834737922442684937010502178912479431982426478237579446887039636473123951004597129633353548527719328757320594236108433792579382301883978051754581384393637945807678575566362732330502286555856967144260572414441305142975011526827796605743471339284380772708487678199119689209229930934605912152173995060413819661556719327840501829364265643719396007725816851487829449361892364293097877284204135429938736741166347610957554883541919487041825930653680972978198300502809399355298217030779696374881973609986376453954386824212424132047157129414062924641767667408529714979835733346190922575921758290244572941363228281558600755105418863014321215875255086000116230645123522832253301358141139542078306325484094879833400026205185743220899289783297229254734647208574404873142351614720791064117532495717019406807845570524751552331797280106525022478719667500983710839965665848856432207851537306911777637972334169390422810198755612189500591881094454676244032721773249029899162188111842608326678497466725173254804436175507717326444298646387092403521438466306220344292978080410011962471538687280381765207016765071225020560281301166513802915110076970040256314618143840389034849052761372231411842460831827851160561366146300622991869394129857992227927031905295767443920101372377704809189992941487741233343606152273408665965870350833738969794899372827816573906279621723058099111588535892894265398998405671351446758359763781432728562870764340054436786248670487818181077731557733820969128454200394720850020879432894316731681206648101226353472676678120851762032422140613179347283703056240376339664064906420053972306209645462382091134388412252280895083557176381742991080833175668272255132162511269329721405811719162309699834877531124686692228165848028305140502966202273318678214163317676039677934476470524035863772554967978266659870453571079175308046520303627164108058095526372657434540356716138638403749018943518294630151095609584806120005759639946729301082853050353741959791437569032563221916564628476205238256925294875521889907803431434539849250835829223758512805826794977727884894458523802385995183523927637715778789435091547457501956120847253877331867139473803630319493103566244465019658532270388281054474188400211282469118330820728647465742774891894355648389510307811795046397813796606477544882476798474142576837181717981151193338023623581371194915971607742351540164447527024650645935592045600184032426364095731328211098648778941656941641329099033155410653723515319401222659186489488034770839760473228816390284506665129020648473136734373311258560200260226291622999369594386268002074912573768473137237471411952467060714169379854476148082798253299458834558541406236443329392460906202601278992915117873562331046697969827985409763208576147757389289058943614033069601928684994414644141909581141149546423785411689497583221639414201115782089954184793642718327297853164636569233327003682143587567996467767542298096533216438567643713282442822681667698566098408200860790779189002405753920518226209564674169115816593482921570560498413753248873299155269149678225140863781778084693652998302585572984685484360008231241861149782815032845080418876456466285316662311788882165826290361184166914081634271383867314459271898355989058533481347041348648550521369259788643116878815724334648652232477848132034410045796294265037037609016035220571756524209599375486026876923357821351510166875155780294223737235115560315514664105399566112838415169510730056072337285349838766896443770872040787355209219228366022286979442134696080643871773658211320020414576164536237909959765612916627829822885297619855619583597402966692507636466492506931503273906651757802773254275312237676848683229370204059377606642387291593976461554637315898530718809357542621058851338240243081681320235721930067159337773946281391635573931006374890363928051206102178675006853648164012841164085163942880267407654310282657155531684413849263497603906513996709203144567676365304050902027511049287768638395867841801908355154416782842498055402745555992327883988229512801746131983979454163002001248836125392448636861897576563598742468084410185430952719371400270661147573422342839496498170475465501987459904235574535061809497270837156912382704153795366557145295585809383365942764810711402740568422220973466899438685262353951944529372385074762401407611481868491162643669026989705842261519706505079740203506814814779473821474998026825206744539141044018337852793772107160933568964961277191415914077361993740656310696279047670547839399138017230295946520182740540536509733579291695681122154648646197623183514792812773420386674024363057119001508491604381711662846492911506744124969933087945699381724505838300808956638708590171644030045522502703430261233911217024775691894466215710281435727728482254675208293901723980404335048612956524824728972312252444171899263393544112067976212691239333812725598828563350506436312336021007299228850736873650386535547169388968782603243586264778141298702855617771613330027354865148024261182901861908213049190178023178773882840219480617843086492327123201436825175567796877952248611989221722399894632319989858866158729044369556823706004940546236180852817190570313334249660832968287868341328926471471301079346302950855150065839116787633407515822284900626036799703980485902045955097316256649375405203761525911087635341034957072555650004622106023990428289213985320929416795777296777596277521274332031937287975096008424809094800604084196343860003500787965216640595925658779718902027205010537405156739054303486916758914800975238823375885983342405613227287612231821945550646572947585530624922164879783433460709261824668926151986169231157779238989499975000181417867415554179838557153151224551580473102215926642856071431389642164872141228726659716936438256391403990184921610531019680307820812649652828681379881742319121540208699277013898665230979806587068327762845619051372839829735937093835014925067156900515326652854567021870945423616267233988686029334156191470291966136215477245763405761435854944014552397142662899920651356687624087498138238838586784342117546522057150153014556268436175928510888915018125047355035642979955419507346925440877809737340337877861520537568819802545032834269415191816687093941908174922139489684364873190165447909626125005901365555784842714209018755566515321552868320638401411613333285399085865080267594601850507604322272120190416153869708927941308899765291672252518735082657868650200276181419443146701108983113783993939450532688346575073740870463947478529984743299951891850817391972545972928007735026687693886790458801505861695018266373616846710871261289514645673136753369045490457744010920289066842608957692704243763209211925063637310001620045854325606119172779378492979164640289739353155632517372198273438355732818482944366090581737109157328695821912085044228541439515234295674174519158945566181460627817950210494174294760964500006169338013465698421606445912262990359995050566249092842608805279076732800650925402196792359232810181951376295361844156478970142884438216774849331657329721016765728035001065560306500329310901593419240205032356006641606137549866706556464069232111627228466852257693696808549808354038062036354285152196512681811840473139791209757266797234808006883470467705681334559098378937300693769367422745649923226920098448499574122279317661205222717465076737601598085769667308530568388402137160668003429300688049006962341835437190321738905960830021156223213894823531522339152468437158264539181864133660878462908942642235323614095686060365737403835298095966615244304389641715015848838156170721354238727604562960760325023179415988538500727071516438802698526605828552276583695517155321395438251457552075421565677354896575210420423176373290125833723209402685076510160578036148064567517349792846026465779282396718731383865963135717778555680526614731522763180904219291926360547195060635774922406972280295745043529659260387148820919460811911112971929953034833565814399802549800035697174286924337854247295778469492713591018810508131487063320998484210016356931540573566498946914839063938703395059284689521536196736237004719724842367560834713090015868547629201435907710695483518146254090357277978906906064407715673508467282728031017229113478680838270875238916683958294795620104489478054308771861427026113745205466501850330711044692083516894492672414568321746569722790127150294408534447134132550432027606117022807824049489101666527068793581274524956718327189031416768225766582321961592752066304394900957906642069715058703922538578978257763507978040553274537153642388887628551417359906855524318492891045909339179245643621694958490370399480454433661244071701246009589235667620942127242514919869668844024998610591642662483667559109769225708058214145613998344255189541033248527946778727472275363643003259107981709183956820942501815257766487993503528515938373565583439553007417600604100987638781724955102536977439553819127957308041350320293515197216114466922690244115086464601871863698160013131472754294877514312606645840322451360307911967640511167011465937227491053852964568769367335353326407608310854359814239034250383381892032819378359970632731012366792446123132217847696570124465585750989890016416351514508320147700541023803804633595023061106431492468413307876158395617886457563243294372280489789112335374175832749628537548972960920627700048571432677274204546904182681995544223574253124536089971522609340766420469035213509506605978771400248686189172129234476743124700258682986918796122910446425516934969438064988782118080335963894646089436162058752121562530862598500498311581838393750148596039754830352425040530631618726990983003689431963415314711969748307032348034053318891132865541519699776489280057335792161217194412632073643060453579540824610107503902250406339265215742085269871726973540595089769344489361993830810791081424133296190363348212021541037172933263061781171507071752109913416026505701678287871689022983379475184662016181166079786914337546810276928101361206840152279900557636138718602610460497082659279371702148619514901623865158427430061837394827500790621433046887798443525078612390891138054322812700272445536627147516199136479163630433957085791737189289127098571883019298951692461655423354165393941808848111429534718852695153891600845105258244134302110099142166569430617655574104391983419149211559226953803972921322619415734302696024913915810419997229602034373580335140627952113552826269494848059523079726951116335181124854191339191288525228614677231797491084474856453325070716989008034074853176566193370233357316535014285835299182249220966951517586427321160518372925497324241594259651155215426282148086619389438996202197309836115134621302760240382246339359703002289889611422562978545748087232246741190789571146126960651870412694474858212884857347284205082057248745682423065348142360531291478520283393019640573593816799108951487540131056535406531840483109134464784692705969996955007250950072549192185329149560789680856920872039797739266803581982975161556635463293802321678816688176614625300703543877087893992749213905528002567675135227542251323076609864444015622165240247639877371276097687271230071631911621964091322656087061767199120133438574319145655210883201844240665262649386518341626205724704003831989305557134683855960987185999540820782189655258500075608187539706270294841970297372533152065797340939300765443146299103956875380089985605563053136241006704254264205597726806943476359687959270482406001832291802839472376954001318080789629965211328418987557095566722726065199953879455837622894490719778574679484194842255187935457319197650761686241714883630078908345339561837473081638351398490173640777064564840074782631348907826363971524591057026327988850485565891969166950347932494193758029687254605461034108508182397343991042804980406378678822626793099786415959353851445764896513385247626668392767765909995562591873891413635414064310392495261389876254443021352209620228131971938847834943884968342628985406525387959513846006653633662193885064127646982599498390407443941462523680067314716728486389678655809357604392018117052937125948889547902028315852023407275674305917856743365671122762305613164532738618411955984170760728589518813887832484863118609517700643524696440965037923394687895550993319404118630282020031159691570282948978880596134275205010580940730249481898092396237804407731709917943273835776611048575498297278895815477517876084297656622866174072745390567854736190613050642589920002610041340508995618321719873487327935713233590858505939582812730184138071547416468557245823655358908670277620143601893075575068768013602227166428457816462126097648845453609159204229949013318642139258733137262096139695070782142905931470581302749791184402235121514459295468520093551778555648987980652171150138913273505294264435006971081901924569830541815774556693437926986803807283787129496552302874747827497365363184346043586114956269043411796127974570344483974280429027114673756385551947630292513952367132254894580620417953568512749899020229448310118629149729063595362904878789669245540502961443171423306141777984427115086981057819763067259504796764437925493458005271539093480040236925138854381599481704833213795860219968383110409433765403298648927224382764556952893358104435112843275747682188158868167706855736181329901295161095253711048734565495699692715563436045943954279942229488594630099038170672023249032777014080461735096577373215361785093494593209490837467529536663231610046274239428335507940049396338062575603204379825411235821685675634589031282211748720008249389671939715544341715048135029648553383451134236878543111991994123718931289809709434649758526057187729665379279323783981336497539334737816622724653793187732004231943478642006391732953973842783996323134385140086646295334671299311526844170967619633699868769214213711455004870349681406517593090099049264971448702194461802124356042052842925736530005627258381520417648728999217856988671311695790433720101835525199573277758866065049738622972101161857049307705111437573387350694400054086461803959873441350076893029512280463342480018135343084537097845319639619697051350107717610927163022361335604174885740911941757323330768663607643822554283934294553583172647066713823727967742995185989775758892194382368443356705309683316727741353612321482901598922164577138627258044827454412790950048708991208987495990982296136589126939710719353684486445085672752106752316455625176234825816951223371124070946216074858512858779230973426598431339064940322586482491956762989871977951547331374970673786951791421714979438881834523046396765030565951598068034482412492005677390520551115765197221626777409571483322069299232853370100157441657829727078008621174973414605279692132899810062631487456936459825888903504190770624614793028494831937557539712794031038876393934116422884526511107554749205718728913883955335002250776909194727221439933834280161827790626518132335874209347433687759622077662566757637103032085486440758337404359898704042128860527725498285333401869985854921935691879177682146268522954037362736312130509125484103474862450640812925441805667763842345249532913493428142692265953466267192972020358535406015792288863698930239502255906090519925782969105769038461201403849212808835646896115445062278664606953975505670221884202315144830001830315434147128731633911517352469315456698088267718518017128648154581855167288552244369403368435576177228198893397269044782546769806629935923416836641721556333326165761933693980117232628046058419776202705245083789745653304513963409052212506061865495310574956734815751478303481262039577578220093604030657472323458273227883974824481137656820501281556178883514286036164872514656534680976927125687612221381044708905313420735835800062953466728827430407207211749298863566491860004873972140474495118220005176972663923327109908340753850386202028466791277946386523789065075591814869073641784599944207007209846232570396342322381398503016880352964307325494326225222039028480796345570995144580139479005563688772418907238566736141375940362425929473598271404515608750053261665865157010089857661274317592738685461842188727531399038520947275842375941152287222848454027196749020169409319956936699539279344920598440252942548382897371127186637554590429583497521479798902200681931335243279005499786062430539560350353635273573868301126455963006674397335184406764549594767277083151326873221854053106697230513291974027141319044775344663510569101498575430147629730324919583546064546098452630289811671142516683019860667904810094862964134453371481504546434505186029364086416544793339133874422964259846980266866968829778869943258468478919874993591314745659741819231764873092727331791908171088975976132969937925603578320258108978227792974856738719783532962211099773693511470617020634151819138799645445610946613729730545196509077207843688148215299727335067584164129305849543190332295498729033365065770873083351893502680190144042359289582117675010082194366182805298927647882419481452851940105669006167549547964229337067661673860683885452437349829148424792557044517584349121180709391423641564696112339239646496629183559131395028710969859710833767031579074572028205783591546803537513161648150310355200239306478562204803591003673353426666530423497828701101503630394795505022810501986575729179231497090468664002227687634172397791159348607283825662667308792018994274850531802469834901097400892189086394864542384808334319839461017374169001220399686910533292180751588132716777948741645006494722504929795913733690201488594662901932379189036300507974180721106174533124155119526363556153480100824428671517483395951259457501851455347737075064702890937772500377127201520619227219047678010199837309437718842897077555089245564885533635905331192683352203374198461306625333229485116822694910899279292734842588489147597433419502114951144888048477218395605453226629914439004134030205896277232570165643039815976174232988839429630992421127686528179813425253312030932540588711775780922783677227573323214265556498365335831377459111348689146288622202318092534580668751335866376691434307450235845174455369131450350991076398607749966062114826274507487514559517504894436998669452569260207712790529708301915798834025921790064652873720417110370574290122691156759925611178407819794385538228614414969964799538196340462915828141045629969975443487004567890069470596769142157977014059978617745610349471040472386356195572223701056881533702451306684305386826253270969772094488311016601127786158877886442809836922445553804043031316025001655048258758573956680929177935773352242864931591768780287721438856194151554280419615202014272969297498801250804249919445326119179673079078963669175527407844238930580890960005631624618063790785242977908463150163979060589539152817586812549619450251326640909259176794744868036282994008669595844745422154470005274298893192256203641686551384225703695468174902283541555984640953045991488733984902987580641942212281589175175176841556160684931255227464216859139834681714176553359549582346835579193022981788437709640825826930590653695106810209894472140401730919096924899934291260717257829479708453895618082087000995802984465363124164133785522628409961083799826902231601191821672586034566925792992165438146278756627118354675863144928741036700049868600120533983264495551187006275051422505732124688870428243733460158813400548803589084361171996785633026897015045623512076650899559385673737561787936934252139883870925930392423298832289365340283564470451653284245617753956574599436809553948853380771753071610229433630847297981947845850352449367284667024415394189010976531739700155750935340295156669724796841312478770772124466629051282099017560396543637876663972369322134651926705013529995249089123944854134367702110171301856409446377949276109029930534143024132645922060219326887060669276243046638292966457424332770172010664762192798617881295406746896571966576561763852017308294127683055802668958488973927019392619583828234666285403961672374971872358884178164858456839426148218917867302878219007130943978415471307619838807069905935505496111827469875986358540417209028958746982407541880288980023482477547911459533657806873208228239273168921433932433728350520970589974809840161114567271022520633619619154627680890347642914631477293928609011071602104287855612818284744906089781553295953940382988571492472222426998998544099391542591467143094469496966268164393542436750816966210279170746388365734204596203488763148491955785164952932642828611234266580716211271819871667738709648836656395613597379181824681991737360797394557354847604540025630939372555730339908588674854713422238775419657221810149534555126708563935916827818608340567367321960591170565981533438675955876362192207168311007186495542052482008741436759681892544691355084973463244377378954982860971588845417641925774867142585019026834859958138846067488588347547801046169718543817263935657284193529704353758914988110680571573230044352162061808365233765719233752217794322952000601790057723761746059653510298242640253438717282703728735680800880502937594239130848216440254418794953038031390947802899622928870710831264412991953665299106762200221421446472325092038716128696744949531414964812006862661928045738198405596110544597964236331887629839898711691182529555183282596638480012111730265851161839541573541084303377725509956421453551336998254817884032919742058242529581117917202390399516633958512063997153481759627710265329290854999256291314001500054129299874959857908149537583524599570184510559198368866780917075817567558930487909616729616740316971439244693437722925210229809515519520445355688635938869766723408142290909812450512509424445118931852972138929095832321708053772113954623641582020404623481982172878675755947857769839132379737097903553278974153914626366843900638670215370730511127149125141645564405288562057728162189132450823731282749220609173682530742571843126146363765745271255922496047079013640519416955962240892940011507275600619834495847553395011100267111282218747625121298325038362654574189737491005949198750913142195412572551105652507541604788338433509869087580384097787603889342449540301471566060983151070893852179435965413142904210040417382914560388140641041581268109393614069297337969410328975957147468139799215213308026370585814005484217756994011581448011706920088416199497423642317844451114784593545881336408000659527180631352030192969567442740569029345166272180917493688755290897988318780984891110601737738795449525953637514081257439213928346004530549754546365019336469260876205827221573269524997413144332440265868444016748405056747674970656614092262221766477482492620809583331353438562060741865373622804491703026507627645333137467464719096315295170382942544584135723727512639122840482038943159629560995793334471095003633843857993174441918806210309829545610132111534932831360150097683603412677512583476632556872667533703231557869791934985617227311940149782598604876337833299614376263456771612560950133133589988330122526000848465478477113534900927873261499361427865040544883481473853273019283262419205000922865150477661683118095519134210748427665887461112520372515137363811836334600335030725386792581855494032566717511026464812783788571317664341189861043949223237716435976731522708771458288970047929446179589319276707293617249165703666967209925705550729229104831622028296290356336209326242450611179002742477294383683234588451095114814955146390443457589076550513623147333908074996489747710613828466151628041603394886583612523314358349912753121760211137352063770467208646877615130508845486087147780055502818188657751576302614077382021346983161849462300998161644893048327360994948760075542990611908681027818121590831522336671686674176810887754558199507915716863297684159165116662810329007650677496377976522617793158564285514367094882765863217825868845158380842241173122429273577276922751070605563943189343723898709163680511455500778102559445866932560998563737996223668167572821454960469206374762119982286604408203529600522568525871547148917711871739154893950614434054440737568985524563024505632529509209904967685447124951680738051200098561723416699197410792951894032435945291588220820018066134317504724734982015145035845733513727804741048588816497896070678032595861060660666581622075633744895517721796495488152302535601730361002224818377943812156048216574057461059501122277186140841631556113470383089560203124991497212326861994275274522138415959944717975130776163911442504920626184584656606775266465299172174922084225137446235293922023879592381525102243201305148968006791706623312842111139071372652937057918334377158180637015263864870422833762574656090425881360379456428911678245952388407391396926471305880475620055866716970474468389006040084935809022866640962087690814594305280656662305758389335252272951115081911852107656527205744408625274469869688712394717189874189010831273287876074695661485082914994638960150571901286220941293889384731731583960064503371192447031777978461608126986136703186263549547786933003442294778218835388004673219678063816662398672077228344795980586051959434251035923854273235144067646983620493173282969928409564740948985677569972939518101486307034833926370268710792362997221001835740572452378689248949291195063041748819941217048243200873677865932943104334310443904224491715147035737309123606860513422384508989260325168309298833065242218680975405004063738730844063907019770923697581263119864885318942529522491353008650742630394054876336864864549728067048774662560790200021206678256989287260183369090880785505738496818930086682785918969880137480487751063460002002193410496395242311436801110750293793750987685323321748419717504997035004442232350517859938586991857087204415634770034894624882662059389502253080101992441503103814361848518139813039673742526031864974429323014889254213380124562977064484947928433396086590111663349804722297082885499253782983309279363637856891735675370491893783338698534893688049685631149203874029926642903161814256778593621268013183669368547405611031143599228504519614232257424062830941394352738135522861347275616478801890142542897255784540342285001494804606494304505873248167291909007948302090242956443053448852612138525803225300180045274259314737014876976578301961743273248568379419079675421535364451944914954736086489805392049885386926151679108520872479689222461007713269650240842786774155630439225748309136640107331250132415526693051157678035142761803337738529151511121886205807646941495264695614104500454436697400448911499106992191493603413844782573707095599499207339646544690629124446454056156100888393338338609576366257207374720887482778377825629258840380757263593234120411000980564953480939759396898046436128623645320262567008117002136660506375264255774127559671849650203050049111042317122595366045756425052611073073961481388288137893970884842912600237290225074563484521008379607447945498206056207951330950856075430886582589633729968551549164796875468290708989948018739379428464614386633376762337804094211011509931091330856117272532314204373994593575154544055774796168152175414208467058532481781121448520320080528016124499274567244432616320761797059149559062532137724212321557492159124706786771669954809426980821266198505553045053887708115027284223816085962285393637882862441375080000532624499723802308495847327936690168523625534871249673420041639872069085951359913092236759147778619676705052471354687451259553762559887362635847598840654073177227302803830573404092399241974885933164556922360246237689563106404885767414773567952358001823606751420737418849601754728292493799466639466104494365622366428342094632469448523390091274483255551992430898910920258656524103157724154049112678071351649977420882175467656965225033930321675102855771482767039976186608544897749016683390200052054851977926587079903575184457980038166579988056157539917259244863893808743196379663288345888322124711350013823399307904976569125756221386023570032838905370227784394764623740328908154880790065077322208643097571663649818097845994706492210887128097786590148254646837216535059391508873547229762130761096720382305063864102442898267498281249793838499164549982645103557333968051299277253882944976726105690177197591218000677365145916515466940429975257874127676663419375019713529347761822915442248145780906461312841660442817779792249917476948833925335646297047225517889442853805966646411009267538136205313566453487371628217137269772752511322096141175390054427408663935264600408030768481525606131452211550486225485968250861929905718606170000289231731083304937803009824436878270019111861049883134427016350243665350220425151185690214740774111824606270502838147782712325167825249685741350125271573733554711557144863836856243219726675419829396147383590489068792600228500313410086049337380356751578169112002194967248051323608229798917559554789813359262157821838166240979315330988767303459168305282306938535594653884894316501922307787771451837576070232879092845139377733855711033695301135866983312557265005251310753107026700450474700166339607583523376446027507679918595926942697329934187294306427154507992810666386924352190064465120889622843855529930440750581410970803599220477605106732147739632939411069217110224238024787360949458949815298116906753650658258426808840005787259054312411138079350492785156700961303957684464057029519636938211305399205057738200102583595504589472911179077243572428292913749663017395654530866681674519315812133703321532391692623273540030856273698886529857525340601644953327787785951253219267621861094277841064107044694854815362906188238977817902415796987486279165930258660703008644561024006463704820582797734736846363334078223660981015535502181452963832120954922006744428034669079028459770140443505291706126550324922731652853789506955424490278983004075611640495343511172967974608208736954870585719611323690479255218845518057368188509393230602415836342148497378360610072816805366181872369480116106402736511743780532361756482656314666388764870785402376339972562735141090896419580424187091867008137725344524539821415952727393389466736268657698884401315318801915014669733613455415445425308276312928514417598650238509091706806093430336908044000949072266784925606380809946803536477164736174793755644070483588401917288748136436809535968923992433693676252899319790469837415834696152024965847761438960717645449355657145546082581691873440805202844660220318582734978987885802229782781364081278751939574419909020098274471501432127371317053105568742708172738196963411310608758447941249440547151598877365650854127569002179582802865791370928085297609198620301668475542442305144044947294428014847995905942184673739935577602235949448555667487552100975964328939998107148489475647222757805904478444882426952409376300923816203905209931572537780541877343281150302883710825597969503853713891601514773376699544387793578716792719471922724478203130598432093060311310923579144092227387821401772849353006228953417524671842712218484664874852523886268869668918432477350313703269887798316855367233410145641438824945168381394878086673530642370481412043500567926329310288684219469653670803492667761854473429202257841901453706475645145213371705756379965463632753272153378718921671462031001588263596942798301726074089905739943604666993893125398489523071909651405775306964853168652046470437956249008413770521726614322325805329459635569304229595525141203900225425292100588067290074237600684188709066607902366646615335294005781608803713414227403162183954261713084032893373395526172885694649967420123631828547010050418855796426277649535972901838791466953961814364021241682525619897423359581210627641085894690928855460467498510763655540318882446560703474055982413616201095456482014434963819107034987564083859854470681931414649413515496719429780099107422545382331591367821127791604889901579175680653827093909368128482659694861343743476142243637826805398256199805489933624199132781966805556390229723643762677986375338490792002614105163907462067223386922353867590426899066063392589835902016531741479438847561710836822909753283152678451815668670622712940826763291381823034912268855499089891662267915017715482216001946508391957384856473968321505683806770553008623565776658840380200323974663124244233389487786367936517378758548255050675807413100746625332815004076796612520716834608362320220450450931158204564602021946205578047991401425846041296138224077073131491415177619175262859720795584510455617157837046160209718135881608632706603161777427128609282007989385080602520414034532430732748765038272052454446725592707632029798606382331974136017038008760545785079618240830496960254096306283864848434657253294342680510323310313346932328978784751715448441703936639280953944509533170808578376518617990085723749951799895910939887724161380973957989266892409162341955758612766778438557056649916690534812083724957314097701383508409323252965981388319790272426560795773577108639055811826132953020086294749585128536590134241831468699135521377452196986543682762840205586706877016838077615715619391267035771565688668820602748016237231986460819604833240907354893621458171096766118781226972821817811553862995204747214669141116955758045426366814586165571981842265435992631520034133014387443199315705231794851790702053431278996286431352979848285143431458256972872394157052605870636050106221916128754473292975949037075270959503028393977476917022944961226913708765224582988957291596523923211483867501021417655214072561248400870646641682131065411822371369229269985023580555164499034547476892965252488591064046370440253180653114171417026754097831915870308814661952295749874509366497088321590053015056403762501141131273582201012081678488647520308196379977695923768391403162161882089649823466024438071873274773902949980888112115096507919049085690018108161587035813415495914486717060712649124388104267608720899635042318963505260113674117232273817602160944642289767348093961699687546251614332061418818305141639613034789026932542485824740938739983451776234648339634143360484707838994975710333082799935462645577378234927373512948213629347278598449209047138018845085168948616475677881395857888291428591670172750950139921861046855092721298051750606927427104666241246492150514789322541508878860594506622504856677853544478370822042115366886583169086419540159960876936290937143488582215156108152522293523976456946538193881014700531865447414078674483790510588579912514837180105252785803627087970216875058168116827373769073150056193548312148966744702984589560414895712648491522335870014124106067985180421798526959888984383204741140286251624705308054394830376501345398716357343884092510281843377828519188019489859311488685932156304809519310758471893867479470750088939281964226248217034553852120022105640509376006002430966136068667444478274340768615700500253571184725361856225308104001522321077382978303426573172536237988384114088428122124327903612586633266592928868526230709025795778924018185119594860935670765811564192201477962209471709631481779546616080097534020667028962326112048764411457314013648436020974694759701541118575838245581178410023420430441992720652878184333709930351765109475785342399520199459061557564477900943614846131264774697786123503867698482222030824831437081392915014640591201361745028544286691249246705436260682464526332284736528107823907658821746078291830664858804405872873720735351324153671524147761030678702799579248141986771364699241277951387539668161081650393831573782470305761145620561190745769175828091274698541581442399904797882558337374324323469398416028999632371390484330544598755323261672381338027038807581291525082128940588964709926122348704669018116970849876391477800784289539482559381922704564622494170748931869370524006939301010608348406969332175823582432882305316238209817324433825270202493275966330898122525713885036438150973192150673057607498858331240152266397574329658416171000371467015798961188225172524035509763294194987059128148084493671144509057066405545190089058975689525440736706170903189685099950245919740262430274407227090665696817211904952237997999043369263444463143781627311914902885612351115564873411711723053335341933328169292529642517395857073319635495199815520656277948686634019172918205337173794315774562542689499865604723987160523492595980203511973944434149142015820327965835467933805123857364833543191342140063623157066148128098709424824895835356096223351343496206348722044171296264318501529106445166367150960907957750992899619475459262916328457511842689516694261958820303970218690596072450094567837699368495342043676012241714772037227150557704419335570582199623498863703022662976613388391142174206092235736279610470610510307969810229998607334208382175403849491645185276024869754188298857021226085978872238882733416347089777961976643120460535728430169102108987396723798730893799304403149899640972687395201647270478737332781273498585360817361327135955141287519779727997323728187068662159895520019410998108882276454138668302060147450560202261796310316077049866110943589597068419420389110783349570277171210638601502922901822061031627280019004192838504396941863575188813276639422421930554847432186349522368784299530991678764570242400023036135280557611702179834842426385542371041364396798839418035983918218395523119949677875604543244195776592936519585735374745727766809687541970686175660089415036290326691203270708031598406337133055363908585909777323918879596024882154175211193928103972741962788487700547984089976919844663140109503305668492332405888188417678001102545456684680164751160800681170844378980076967337672270302266225531176121147757480045839025859004920524281261220471654349868949130868538253010901440012674181519019697595890224764901793488841868103611778487512693365561317545045035219418305790738023463051507026420552433988527018708505123362696285817526781850214945393738711655966248157426929582197018367754475815634195799670090112135145788746485977994649360216170073025396462650579448735915648262623501714290606561702830079919734319727902374678102406516757146287058962102253292625804043417660315386501175012362053453707778055001824297464314449596374087528326975582621739701586983056978468067977127886833355776646688308333177177946327593715377292200898220515081160935774895515403202370885258657251358838529202001622632866763581190023311317747111688725078254339726800055546895672826515978305458593670238054101198816454710433236781710445711259487676456493624426610129236889502885124964246381018549611089351431926117878494867819585980078652625366956520478930995688053589557572155738542814689399282696206184541973379921612715946663968274404336053151417126065874774328381485650880553066735507249656148231707420600655057050799572895701469049294695935271398047506807795579749383090411958378315157799689500841183295262420506468436272186636153617761501753801684744248169691724465214521528800148654682883880749824698436667380970534895814094397628237644531913075110491947491337606223433849617716051111100843804829978313891168858757173769694213449417016760666243078318329845911281580519375866829879405061672950966738604140643366690637021232187032375463914407086086826014437209625518921005986334491401731321004532681643876196917490062744923264981670769114603453880192189888598834841833081687943068746236804843045880417765991534594213300615936857669968813578788295452227020552688851072277552979946573312088564973715971041112139934586465063623079739609608887974018206734789233456604017679864912181733370484434412767616180066514809889827538675472234981408037728254112634893703301493239210840560155429600595165066418332333381281935827477548696425080443923427093634769864729994905247174131270919016655361736194719404476025682277209588652590547773762111846064759623665337886310919501794681356414199549225251295090982446342302382192609177915362339798185268182302200268439615291300548124794577989222417962930262146048424981971642268478354814540294588538414522888946578664211693193161457562339525967344100039888232809901506894776445243552461656515082238110444304126712789147732253314879495077318193650378824147245064649215647316356905235277821512909604832041938199489670503159863021859191809737591567671944831048771665072706209551924924716367366317629128730327063121664671538543610275479789834631501989144553414935020363905671493580173806582971956929931392000090071572827054539372303962651367986308389690597820620098421136758341488985840763922680726361368850760228285856695550254855567990120355534516414935413703750541402226432310297723206094765784300948289380847443535547183441440659903919584073793627273567992559462343521756049135704330245956458008798362444518809180927530878672711678584573457721982215181511715822575408182873614729890876245812728855498173768504525467948944613165726011475216720056774132145185534009033840464287017316255730850149675728743134358588984548866296095049382017887790816879009168894517983680465636721032802493896741785709669621103955845679673588017360497371242985806234672177582714579021602406143965126679159589694708857660689939083531442861147751951773885858252879008963653520546357843297207750450085961578654348981424271843005507362125482280948319809924779636983861089633690490066191282191387930382782419835554228894577485017595311325706581246562861941119859090410973787891603418246946754548891840229426816505218749476449140353746977294119502612209771158961675264263636402521841717653324565852391559769444218905207342488855461081910458671408951476674333848862859628721830394554163314261971658706841677950331214424618572963878147616134780504352579437577583848873976821937312695571227354322669315375695111652718573365706298601247843893087388031170127420484127812306178334021819776519744377912938859063008408258483584371405577966063503671841914680019289337644889420301919849258411644731323886494232426450683670966244113603720531044145486044616094413885260071151131530791457889137338940901021055626210808579235221298820891871412208891471263602136410024452374592605139452751540039322431605337803403047641731023854082184921427332240666912495419690898305870317098656904912081661751696472785198701243853877492042623700228298858697581563550585024536007902441963685890549537481859544231050950776611731808123992739709368599366853443252297890741040703465846297260229016467352915438766931661133832751754431001650576502476916452131183443968262353174887864203222856206265782341558648567821938204683355722147814254362243519557177002784161734833827142314992100363300985299869281708702134492323162012271821636466392243847969034376856539495956914658765494772580657055648254232232502025455586253312981249834129710955818691895273011081197844943132860534910270776246463814925782468078319012399165544383996599805065857005255971725517895705636906967597262736167697727931021045878850560924158655602210823288837427968075843229712250647000942657788887398378548168220701973146562903108381768733121663892212216906902492452575846362145096080972420026290418178810801895620607052679339244872742328401184413668886118841210496329136978119003613660825316363031236670879751051121397463540720051324960967188638807465984345294256436772749180570957345570574499318398377868953011948115242786391686351284723272868041242367992168566601311066964547016643880795921124268356424249282241803081580909064683790072736558469221886123168594309956982683669893169171101490573614316699918927817110753582572760001745728564993952357708379385466405645884907669592081840951337380750765477123569964719224286735767338031401132529016122240066405429455473245531185474320509701694320801830852171239049495566645725730219221480213188758276204580171539144956982578181310471374078295096315719909598665077196363123994921748061126402265651542147103137680549367573170388216595802564414785096448738731037145205139097756760343028358586380821947241710738476360909937827243272234665499553760652869369900211246409928189368087254616226175020892180677342193877096447131391679388440100026510140976627548273424686808289387957515873392013420512842045916543678232857781863402947638239826230763991966747712229962884006536672103562630577029462242621063352206855331770109035158321136256608084032828373051106415410617937514336024171629381310583807783696160929165519943372769114623764667302348082494481171906947576549898028378618532722866578428540737349685985763099505660250410334449072842377619689491153114023563863418241248357905255921855057881991166806120318929597767655235233454728815856848662058276132370879304387761572829371045394638874023006274203122786574740835034456108366041374600463889051414464380089379798424406001798462650428497006709631017124259339928402476435859523821701767862780904130214233916077327868642026862178223174729190559839921163093459946472456315342529760658397800911113408679563959588649087951933424006225658977005298299151400140103371409432415940288017541730301397337915244113430395460429137451345675312504032124353538061285195190446238067343058527327248643674895427616752460507665193504860359073152977927984380634091646238970459974028209624268582561833489653078771512618684611472195525574971098805227490437004288750706591522115956953303027256348875357761269680654991504500047447234217183069763287632718107844925950518599012484106605996128458563496830987190041624151111496708121009282584971486824424628974373451655077386355450243929165438875504660005028945818029453186073254026018696607355303788599738814868956249697195711737821646752762471681424388067290625205866909245119764676795963919709106724511512616628736378830918795221703110246732625160098013177931409860162068288731020919025281880567893374709720068758147970244163367219274053211912838117867472960331142871081021523991960399737448310504281871093004437044519808818092752682626281523543635500113420791439525357832435779048387641494832927328574434821565185141095126247560570802298704904685387929507126819061867621583767480420213587941000939210717338223185947773601501114517961603229683017672120602439193846619632539542550995047120837870008786876543162774983093721844323974390442526065693080313255281041130897684963990663094482074384539504298147499731714079185254714636168315582229337860533552298763263843883491164294786092527825885263664641849562785653849092168329508903124089958934444682272345523129005912520643791422900424964197425074770415907826297178719823134031682275089752288826627462602878669516007918582095838798600054156665030244427731612619877993287812004810646505694938714339073101549086543893503093884864984252206038638361450643066685611365894239123201422486540412301859853554096852645077010581437009473134666393716158599458587785303441256854546261472084307316054513945037296406580326193335140945619269729481572413342405790647289584132932521330076285565781146757988401999580857939985919799136552860157807640372941350131752730955058174616584357206924237088322813633735818959096718724959654367998353143581692604878284313567682710683354662161571396756445954642259245017571967572083138670660529628577008972044163731740328552780249435267764422893168252982264149556190409395760461269970858677902262222281475094134155291767068241106307189712378160104975267698885268600910653766301227375248478256807447735856876594630247287951649344193356049358813540388845654400542642164731305279909510461789337780065282518140954563023085973616717575595637742046438330149159342732310132989046242522066150755396108961575525599857015385996058069324211270601471320342769166179488269327209364402621846249376651396940095065648980630309195235207103690612187186809074332543371890966161998455444745055387065791171558610722060225199786227852338183229013392239644442594518637017658797910446637992934284002767535657855500407268304684037553147818541268775212079250823994311290417058946806558501989084193122063911392087907101868456289820262868451953571804683808207015225107205709738069351224120883461187890735414860578419774785978434729912464202392476058717995554699746505708902978307887923580178162457486236335358919398327316742935887288359234752865784855319197670357847569595009855768182351397430463409915757459602301054120350687064819590400292221301537634631937792262728965462595244960652958365262536287161630472247713745794041806739130218010223499235397899639734673017101948962826298738677159339740284649422550370978942314881983174853256184859411340641991150750004697336489424796199470365522286682210590870766705070576485749900828807842416438582844936988684780774995608763705839492311769046380104397267206019478407000648489200938815883555757393552499847274900785566438803400994377080158721463907664524485016580816107074742473310446061512648259088838186092303120192592734094702848427447157828490940924968425626830150373695015638004849077871754488030642150240941780479350811805116659387025427164027082462617693776968249987975322955910130699927285211912472484797461018982736375127914684824966027762504759759105654373974519888046456811652043609545632186399031435767091717370393986360529790193432594732411625182641418641088698636899965693216760879835748206877670231710852259773242451635324012294964498551504974485653393337076438846417090107324030310709928395263299707523987112309626442691476322065061555048236739990997770600615706724130448466002745134235531121270317877170929173094767781699795295185841303244403390196121958784240530366030319200332053016198990296039619872386490417931207786076169231927481305971632870209218047770281866807344006570892981585577140990806559942178415796037303532028962928499926411185457922644412072361164609944147297279461491740288380882902410076576371643185671135527249133750755680832053933740685638408963829397326199277931324006122377126665032329916861525848191004149593213526847503740793292993979303382907453661815461314296642275947657683854923241815638123485207031889172567250923713245919774273904714124910703996675399863786078051704771557456027867858614245125730908923809186469322115625260327194386279051812405720474952770519137215810427924762481246997076044901573860429655897448007007064868230552087082325611775659482532790246966129510825384313378520858275483218370148182206016431827769044128902685189600276973961253284526666909579682856833899572136535484632572816603517876072544328297831502825725952210247330620696292182139445206909433382564347399153798541613803171449563874906558865489490620117683664197700739440418741476254515577262361638501110533425581804463722306981692517545005571721518950719778689591940541807485965547524936817354524270312066741190118065164569019380954209710068835344636871134253125557659165465663458697161488296241195335723740251101621256608058797774628533730463003601107012370688052456893751408732720081731461672945051153172727057990802030554227755153986626727837018454101012657746475068151960135160478749702868230475052888952710268472540804706458016385505845691053387313615178101587917943709680915817596855377780880676949778141358563249753151893128521443105721875527519863992526641882668785208215949862587480244176822509857107561341635306979341278095165673710832258053947411271829237724043201340979671099621833495192734804262602684559011198993560400126129621985809356357783907896703049546052937174264727234257295746297343099363740914912697430873388684772609437552066633279327290923674603982252725078183783540591485198301142178129866557459581432336522233056333764101878195824575015249850178596005225836724858552339572940653605937542999074046781114308925745228306306921726520394074013690871561251276235902363044588874586593754774247161012246385590482223054243214800536855985192928481117055782336132421864349645900085382924682525835886719202475561320018090078907325878974235121279571901917438392771918316054612411613394346750117204472468034208637493636351368924590500225879408385215003476919884529477798016723088263185608199938016779841439093884327084259181248078522596085837564569961672677448907208132235139864435158253401984014616501937046107247725604884743595609953250592445514184554153921702809104530669801315317371139873377731524434015843947758840209195843312633677953503889990539047007753593413861293019863158140485400129623474877325580462464215650045328028089034966622218030614682374040800972033983623226120356701880683003972477809954035930956573316878559749023274888169449072214272428510709883835629098210709994730702235177309101637661280948470095637760523289428857856942406130043335146575933829275174730526689406650097114485292329900484976304517583756420498569998643740008401514569319281968901579645848270751916943011664809475981507003752393446914232325432804784657772827930551046232309683892823352728434931995314064547979244812428841655242591937483334318493067603391642100108354878713737914332929891990650927775242693720992831416228546411738170478561089004998885849531798282335367734950295918919549429413986990906753560526959840981955523524895015547164687390081592823217337474444054370402421299875126598337687203428529835194076307139018616703236862115967471919827676079334782006394858179234246855016760137853485470881417756035768134584303752924292283500740517791409121581712708667732362033496944585403824922940010013035460765155794211482876741331133364751160992260045808685359206537820504764975130188468380322162309069755683036657236257995455910867095396790009311533228288107434687457623899267803996744144885007883140611654032944279242969111226747730415135272695126481315289370576475319121926528201250503633420880686379562760142973873174458092169112575721316145167298470596956919315013062921963395016660001478477540517929869695427247278174828961552308734523049451929610644927751261832077832389646722248942342303637787687985349090658565627700476402562933489412540035662887057597826284576033738363156518314328103820091965923410196635657302209668811416914390335650185509871219757435362150236374719971182623303345089169984418115319972123935909036923787590081217252381093439269539954518443840758661728044984339046444104574266215618395889663184486750923225495449711599509218882155101578613506191468404420824090050784194726930968740893878235341082004634905104352950079109390775960853900855842298250044693427105598760748875284920080307520467724049237517488119334707123839026231067342000840752562976329716516689144268300620348105472895491478757102614198491750009424068971479525691965744262210756136019489523213314486682469479242726306507992547525830540250152789106374526828662598626757365226625910379244653323321659760127643409236263005207188597795192957127697265652333705693118610967141393416077520713586222670991530478886466809495253153009323479633339771806869194636083077258194813031769860107168964828158911313941794088314032657455678286610461451003536750915284771694956041664584954972102743382753308157910061122848953114192614822672881791614692676214545014465845480499780931876637540967689221142846192147354003854621360015753367380090549988752110639135136662245077750738996850458561250281128186030992043771618786768984244739413089862805313706188043595348745909174281192195912949292580311275487500769982188270135798603379051728942691273458583272793997420574411314708711893708191788493040636624787358575666730832773443582266992893341663631832442754764512796222558333135455746083907255170917417222204003008587192968089023142686803973785493576774852864047096140669867639316755320404630401034647384426507061497684453618921842634154297072755612390574781828954313537011395918686621592921628714251877524566125312732965971142227861099455662247617479946467022441468790075476928039537085037493304444157945921369053437212993589194547911745838918916828325908803855185459481105402446589662908877348361379826497277948701366366870861707816195259370566122018759064219096806451553690397315041010419807123712320636066314311810610352105917138118748582340619933797418770795910272259857862080257825626994721248728443141690364349516969122429523773991037828177621000014143221373591734853833621297087904546673640670826903771796178801667865069235610675504522294727335649950960042285268321101959342312574350801048734971016303854122327565413922058248566820184826446991844671981809411646621730303365813492900384937815265475758851567115603043468754660989734895960641494610127289039340546698132023954554930456138024486846726253458714651395573756648628332684006963046166743300908230329267933250954994783085938668448055906662350847021138170162890004431770479117738669001994354301057598764997665814726995928561279756489391016169517056903070910065824011014825186783525376995622948374542312872170882030427622700741667951494832134174805679083470157749168436279482344664055994136408597549813100268946509755160637454401597341216790230538828128754916083924538707800628194828849814068726741273027181316563211050332173006304480580598610781648917775340258033128305084241716459046368749426460251736531429452600217280951492875532961983724784063634022663303050499803093157163807191759577435827305120763555572400290639716421728892108747243853757750345329824380183436503833209424595519133776140874360219248619555956198293121103775900789563635824473386311364414707817730815125477644654416764154673925582278014181126380981806439973920731306212525323434345368985154608966723944546762604201992408561673152580139081520385099176256460318708809872457607060656271389195607613081816610290636945741100544321469553189548691571089513660159493706687512789093974915496094486952982930811588728715468748402033188365688390895339863756014781825974529207973535999922056566107421739377782178336165662507415823453623834147245062157305594416045899004383151259482015593358763512345722821246172588368748825300620640679309015310371553510513345251573466572515836072486698827471618311069265968923670905354216965764032005715927782244503931014922455209497446351340623476248525083662548691670810412102581167126140219837740708630663762092808611935883869742767875339679180715993232774244335696917009631268607176544504093897147140739247563102463982649865320562285477853432911814562064875274543591321401748232290833422675917680462780673298758762463438697420917448854406351993594019976861416191321661012728654115358557238643687852247532288420040384236835953297156631516586042655155593220738774911525510511845908251235228748589312660423732095598026656087048248796183782982894051664573659471775004633511121721175971006200341660386237199707626495046966001060286224175512338599923866517431978024748137928164783803222692326685933452639294684472912331855367365517283673938667962984616471997354632873580325927771188142524242797519990986250079592267618020896727198067191861479078596737616099712122557942457735074572851091358298355025644768911579178954602454941428806111465324624642384601036867341812603489773574836349132994272106290653509048008097180483756211773675630894506580130043343871551823229755815169849174491429691318426971995672432732986470459317178059913606692898974223546995107464721262559653353900313937865421212125772619589844604710574234226010467353356518449862493219060952222021169969064863714656892817828031655456773807651212550841071963587364734699638836301159955159555554652500549623602964405634210579074409576034590942843200243242806428517048277185949510454484296981414290171290319596526333153802934971659687364841319490188744102819129684407997546871496254817257934980818644348526165991923306782283106803615302755598194981499707890161001319551088453107521194536358682975817890957022813682972925685439038492833182427459247477283943642022592396968857245515259498688021036936176715450213797263684588360783487454707092555000551412816881946273176999972565607212817497819888823063578397317155760098752397236146060482221876093223748846453282115551228640881054633831913538963488128914506695621966237357547606212465908818216513626624403079971538962632869010082447154045890707029522771459098860605378478110986133751867020361570515834328811617248848788316538076713340311650909061328415396289138451442635880944683422425841722813571340948224230135998908646694286387316511376605010001241886252699177124469936557759797338420985365790296923922815380076438805919056265971984385584703795766365353156689550111734775992982924000761281604602745138242095618329060842591901741158589047819769338193975736948626805720418985755716354276506980131291446419126425775627194763060338931900191989493265977450847982007157681872829573866920101603053427082564311073474941814441188625615028806843987969832691897352433571427672643117584823054832273848968312329721690631985145430740725957842630380789000956823727521928691623124098193399734475500734746143721008691283785650343913548762750724925783934999141113847098763727440856494886481633660622597487669119678108093495866107752504017895466401615312347894668220672926947713013107157271287879557673656059249703204693633218625360929600896586077782829560961663144206307898331938173110271474203229292227316809875113986141580562311735674021513001433908524938947221020157125796543825582823788379368026316288145746649102704532591808771951475673848018664247947789821892938223294936510636342249938133752587979761716173734383823276899809552629403077795797824828686914665707861979466455359890593573010219403212515163265933241059601421295265336780704695617932642627904836672282836128903201586887010806296245354040131134507879232808537702322925511530573641320703888504934311994285768290329552894533320548131314569575601616163615511692223617497680317925705518945683314527880838646906165517023878412901055911626960472555273014027459272736447516315991045832024205010579258774328270590014612200590610482026606121471567839797797829377887967839361482646780121932158281513126141824966360610617068826720739796397455089608873887184320153510059098563584993132411150929896805319436848355529810288908593739794484861099144844419617407713526675090490746385753985383265734197478217706408874203640522046149599691023549671805809177335096895366940141195169058573157954151093047130064275461411734256642469635532567149275349063863408945597992628657101578309969706472055768046744551929356100818542073266951790475783671859680593386395529379290875096167601153288079831502341764911651238295897510391358541593660312607575837200016192987267839241432242838051895206805610054236801191440504342584576127210237042779265742289960769029262156833489455050139969937057865757396743524009599222825149576253056335865704553591342374759056265727190286638234444939402646091333955397937944837687103551109580113837000690599728577631504001060311716753445168567196963266478114986149945957044489320848531501014721802038350923565102465798539206026869689454985915161087674045135419288806706322339483971796973334543557487390388370962607608878379578192182264026890320291128411025463433390688214943556123642950978282032891853735967910955290171502813579812941397094767964467929976085726177831435859624579234451128912499148100415241086287806676415958718726078851810205148501289324204944430707709890120273876358988422222951793353923127871879620955822299719078325066161671572288797899976774309305198407113228553849150427077834063703193441261254411611440384373684965900145368638937753246738556497570118376468623535367467558710753917642206911671948264347705845780187645665449064716024620826872263959340544251817836491150897183101441121461469387079308154779860952648090140352043970111165456026078839464666684816490067933196213235909137589174661209411772781333125534295690324800636205535187196961185958353225286741184917480488334494782103442014364779512545790628343144522170586065672341364553930566676305579572923802547972018959706221899161047499969083709239933137227279419883323122839354383651044320195929228650932222586747753651226523767355539951761009227583057324082465203286243348760927817252542556587031400527981072032507158480323591526482316287446809519725832268458920665163464048897772631666012986080351366695158060007566841951449533486477964367213780122608703412451737083275648116699543234606774993665455544725855020646387508197352097357710405628834518795639197365219699773076390843380873175976907776376722551895140558383694808647056979066255810681147574878208358838888656056892775562385405427347621806037753312181105073080905717818392078335917976426353999767154178018941555786692437290127166038063297668547082356476438534958798152718623619682213725966440140598118574546682489390032526228637674546524412655243408190266239200365220126042875386490460796033040830002302897182099782175188272500987003367293525980121249649012043809812727064123858835565568779358183846487279609004743779925361595089004788684304607463000876196098789646954318444020488941794223286227787504666682372527238256162081139746768161541794531885703845375908573262365148804001979658059502792789746725319485686798039766308926152169271808211369060173197081689213478114754981753551367049477051044603694029454113134944708603217041233109707514423395923398053406562509135317483118482067357300608063927987315355706264808011064710849501176269022959374398353995706829260746459926198867484802518247421119286961240196570930264670847514042295434621648468336825818755209085967940024010357556727411727130123917785667291887324632879428555440763635387102801319113595733960115650018139660299164192838631218410820610281462651590216069129289172822978946135883650468611138098178515610087051598601621129189900642523216607836509322499847585863987910985181898355953833070973121695710887211817572094396371015935344704383126396406316497352595712766387281974814662542856954048024244101642842870676351659198483420657729713696270034120031026280417766016883678340823274717643354718868509611687551501470792510466250073719603986442594019921790542320846338912744039845467887932070092476300868161734501131604417007205400196514449240598984357236871400706219849105489305638012111628287720329941156912462529988603522882544802796532956767695680865514132658311192932117141925334084154242499804968355297632301856913915598558900983967669800560383242719436606451067577277112506936547646158431382397342831896480698431691449404646893476730934330118027539746766753520851618888652142470753756150177507839501621111658854553464618580995407038938753248233236978213268991234652092310755072745900455226396526224826253158937180718611586500066630665399786739133127861472588280466783655147314525460186449172070974164542000622062103343359431203357984357892557653775239957088060903912290680583906905508545672333491959874788799848585598652095237663057050327786522001505896407818561291404308796532838347585862313943099074183055098226201667735245311648057851702337255677998728251334427302382861510999308901978861511001929540426336505842143638997358892641525795842593942339033373218069204585787846438821870153702128161932049587490398086678554390231785552636104392152533304637661364180344076015147420227970830179731977464195303436647083655358688087105678123570068453106521445648029793180705411088603306856666099514918140422329033411396711255742732816860807294522953918849519197757163781020611763551795954852550089508818063321972122684954969552104091246314700848902480287393285916028795152887212681079327107654748197044159476706827992827382816091377886371000185694223296444965755329380760207655663871541101031141308181532523772750304710975706779710918772415861878142460000863412070989097730089359783891508134823280553648847372411426559432728515395558141688295044994772428846734967375037758942912854521446197447872370098925347157279955873928646420466436789435079614616011712056715156932977700167537984384726923236231448388930756826025829876327697905812867673532768337011359340703224136386927237745700936441289023516963555456006644628203842440922028089007486344742926004934279832998796838856218174469720421976721603518429216713867161562031361482295835494070233915517874442344616261670427740740272046953409142989303914590964786970707224925748266226318217891225066234597992665492498542070261319442079829338382584060951341054984683767206497395680891385886278130904671936653118206706445899384785960607457782466401282781580570955010957572333298337876629890839550562121978450608361134713020768732927441447621859323433466098497690061529027465986166633553447861401834139360968718377543272123995477695708366740133687581649859090335192024962316834790825205362623194692711715260155399461699852691085798260095295192131953844760612796848755851455583379157843603460337359674707816117536282686517285831122957781877723846797626938449091394399038938425613123476849657388916111688204331636607831103430649890643753944504147374326192388326392817769117477532080602128721996842155838157560535811115397730648899609053588529355628340172511263307537560620203183432289459995010827786979568773378140975924376412193559052671188799482291516090449128744157638554050662414512572932842808657023954452275000315026220448330826748683548942520107247899854323741453068458157998729642819958333628437876067037996072415197152174343864007018350626499728520863343287292016979567802490689635663806502470913104269651158575917235898799511539134509539066637439500616140507787385016152200538407243896245138182882274382112374381476807988938302637639141339584390193999795194624997237764561486050081829134355764401596519718552425754440546248073437098138389690517591885582948032103877361990518750694239121702591080256827591841722131218585671432707683682687779837320046071336465732855754907121880736993938228101468478581125639239375210437632840131876651670946521970240988045225309267333599244590681275568167884009458908632736536909263849218344501456690631084669607276327483282551259057230423015966023360975054902296802944317792988294432154948636191338144035858601771394852131157320998138146152151737626966223702625594301080619227662672409237346463235168406797591365807156618476483500686011459586871934151593603969568960289961553785737099009831096521411510538702600478553613308268907430292003105701043500961533880560064510579150784188692797512536253654786809661997520330157761765883881242429887074130124416564783538742583846070366333404692609337315520412365698964066208995956644997498308401799856366521073846927167858063057568989275414760683906447231603408511530176269711757555297511281014528771338999720290134697287432851580097912004175647912393393202954562920439203409660045549001710464923373139794604765891571777083541161822737916877409833710519644876177082780491791965844461222251013028417513399244428984553664015371552744686204480994461996209708603327280459222027398862011064899211352027845712492223717095289482267082643566588736051438750820437444816474823708884984380188127262691551028716733742039011215584524188291374873909021523030605350556697383963457216180359067925205978201481932902390582674717678731629953277430768253958153672361167120103581010627434181706471734339273875678718306341168053502917684075373227944774651637360484740403617470168517923401596367384315218857561549264683950731000528743438830357736740950721719529179078276195323725220643559053035749220945664682332815381818769536630955262490339170876502143505347823655011467885876191784611951483982149603689397579171895840686734921749784245646228365672352397987957949493895583757305147257661845542653637315585130950701350598235508981746118990119985450678821988757867612911734790345072111919578054794760790256112312139342950062494267608552804879637701173549945819643701262156381311277601606450654579123699008558858906957431502250533109124023559373373744284866673270253000821385821790110619927133819457049831210677358891871266322048061004482242233770086274642562148819907229607153823874367871782148742118001112818502805608433829005661761904044083842610010432851132802397744491684200906180614185127272996591816068051637786755187558010003093504521685791689128861949284918817099510339104752890685839334632774779876440230451002947946197814593753286976783288308878708011625035793554426039058622611239968265834527177306045024142520606194818154033472959487987759498365550742354995663741082064970752186801143713306013741760327042156799293310399109048398714105856097236661959828248284485590287510500016436574242296594773324596914335135744232448269632292900110139938711340900472084506240506348265306706732029005540330526460478625877235649417190049020506483924391892151456015980600414972781700340110317345209753121014022760896277893498437663562380191169615886877987107043575165949053882781084321168654531290120182008814422039572409123388855442914158522261498162089708970395633653983102473635973374265838916304561546720795762274257827981546673860242050308900568580245397933016019488326201143187701615556326453038120957491357861374661246439783318997412213803475839503035865091827834404014079115561227947402766249421066905523795946892413453753058700972760378174366191432302492877989531140195126317487116154841649211242964320954570855295738533894826765426547238741313485891316558733338069865746814984741936653070955902921280616673126081525177204058090595743042090707280860056726152011253057914846564748182348569627015830128712255351238945327087831848927409649439856936256006166434284676955277463272765574444487245538004636676698771508641840642436307793963998872288356033502157076230223441787692555955402141795896351867535764798458392910373426029180555352135241382888278491496178513663025447562458720779198673687092520377472284598304364369057066585827225823774025589194590568518800961968591821492398928222713563568116414127579966081950642969931086605495929783009773906355307898737245960027766660792310785008594717002520681306539409101736815422698317108868268901638101561988012797433690024203071746802358538589733305650969253093038861998136084722595098780826392736499757916771218806761696605841449307632090883822552582697292026178278204776519570095632021603173219801611175037577249477022587317325784591450200724649187277936565366999624023244221411428756190398506392505754416728742465556637815609212837329613228961488153931020076393274333478350132537114570912353547348381838862693843976157744203815573277303884613554824224040048145873540954825997263713120377319655563223944706142072173470764141643928790818419141794673411286744639320756358278714278925830332114766708962831885708951370983454439009374787911139138447049961096176666386933524630592050393619872899636057958241052234115242598889580097500058217884632937025787093595360837582838976829344807352317520425851882605658138789063000773421155797912620317246869017407982405555156103596165868807276545392331043257766566010313576196679220869088499472991074877385453425212726944291956254307715578156709781055884568884305430332641061754804437519182903730030557781321876272999306654356703135048727380380258857055889761166085655329225210431675516307904972744021213115099594963303366059206824679832953367666957017319838680413271364522937894539524372955402719476499454292374829980596256056080104220042657903111878863283794104744038196754154752686574462461549031181254087512615793688058658870171201433400427343810830491367013519678396812426741714796898721213131501355614917314931540592793350244300402153405489571499768261329521255876533181715612511894079715617360270725709187589889244462002382167430383551563946678395785387076814362552215543806635195701890969422548470788599165489415010839200694825957931091039946770989143197106464079542975579358344544419461816987479823236437423153631554296580167010853610587180343080369731365405714857460528506637353574303481009052772720887552483049625488265777481421362025059853017111934316551428769228313863846924154289489535768096519765186979056563991016593787019880064555206582069637180583160555612792461196172725273365081175092945588804000407384116292878851408461259159396598158116495023969373541963890309003554154940225731035384385585114630728200369592287912901831142428738190677809510229917513926115902350788184210759352411535196111078371046308797472097717397707923588718059355346362479783455152744561161273597945492467371561204099095144048015713859953621411450670592003756648238291677298827793536089500006267187494962229269617602249093500497556441634566620957316061599300045922936823172112403181732092801550338938937007171955191237156059993275527283602140884277181422209230114321877233453545681026347027178468189758434679715553848397668802558392012545174159590552824886922792714467328907673967464473176098530876967295693499900421298582016174681272182804611222571254712258749719491174075335184557285872430479126266615240654398974063004496202368599045822314343925027598379674234442591712929564632984846582893817799371913843342031556984786053041450113565642718514498246107696539152016002150971610412558617347669533087511297706006442180139566724019250818962856595970680979645992526116551756584755804020105969243381931450804175199608465433382287051272040252130357090529975511458909985971452649735716833361348040646950584428920536292996964622845649896373958140227429751636345646418054772214905892871819626619023073728263737449121122306674566829067792162589391352243222352905238869899514976564723498538539035140906748809594084073874089360685632932449909893845723375412067193492506466055524756448073598203258096576699791411887412132674139255872260804321316989277246523463057133001086407456312462040948995484433152921257735093988942216528760017496201346426418587246430365530155955373381131206072533388182957591610584893541207725485018006859741066136527487939538545166003298059313983706873175306718160634549020531851625596105123684229717218556351205052987448168115614803258334796773940023982127447040038615075218272708023176288671005277021117073331544839231217265761390235470763057607186304349014523480016037967867111230969673396305878701710349283249082188300798971587124634518939761475297956214521956222697454306094314496830012169466320779686065019992194156309966050320347917792377137489089559970510868419857975801682439681039147591482957156892075230492977085341961821758051029342679240898215682249549066844479042702574011033638284780112214885119082256021106277836116125460324227057869745460095058725276176414314304657304006482824065019731471057144580808535558459744786564525109629896675095573194507037742204254477809186314782098697682171294926476453681479093551032900340446921055633671868138515181197910532127534241441953027655323242758173814528310709333411646537313197991522844460044617976022602924253358021716376736670737848581014989421120508506264462473270307300588459674939079054281491533782924301141902222300763588252444627833306199353918278264301075147204676463053241020973731888519143941091810171244236608946358115447519603072630950092939154241947316540965116227725615977177368247195258395360810507865791471486216025488371676460897555306870536547954784142298437906684598135061040618202384593581347786658754202703398272939908485433231458594511891982226581052879328470772407499524772523686554057524212352756611777998007698491764338800736077022954596568017386415960318376881959848689183025046331612828312287122709248893982235808569118785499411244472857829174883914543512969780133374362405162576287117835821849814776284026848676999103161862214023014493427350886512386782244452570825341186989941089100919098616582044630699420827776899903521430188326805330158482590499900901629026136992371399325612799536343285826354530031313359810008763915168941027569058223822181866325175411410118745852955226470630201570333735088513476960234938939042633914650931628581267225654685019974770207103725462002760911559868509676856832869617594786257106203980947403769506251920914579206851415189057560911701338767638609408261448510416020739495257968803560706500521514047466219012860470354473843088923368095582969083206707148454059835604903980787932158207893624583762248897359577894068416191028016188453631079525394219738457435515769141849604276979061862955598088561445508738829962802487919232308805313927193132465781353835707241248972608530878072893452295404568309452426786281291823510401263923200026063047194175855353132881482980752961677141127182411088182711815591276418742538797401139597793849720921736112394056081082048656197039515287799985660185530159323202909910362511831026497138128893245993468193763860636643734535467982720722568931371638000792376560581898156743362278835282721857502800011345589699338459750882224278298717743303743241135438360189560428896795585046916289221784498301822983349011554711272188957034969936552271436743246651038174557823418031709773329444517441999904169890709130455681633312222971488031458831028118601720200064894095621122390189725699396208707515154560590971038309580037063597783887379230532779892281042495150258996438475253918799712493748089617948387598964207142100255199461970431010720888090289314142958688242779561517577841906942111679680211911997820325055944410624347160531228901686420331919379678886331129650375940573347150097589592492551661095191500987844001037462486875151541925701259632373753147547999980098192247948447960741446095649034345739340567940101764609187914980571068111423146485449685085128792783818145389364806677253629432878792654804584629705454612954138165821423734529468120189800893630714487146351841115003656242221697165885897599455313439826765640891510771439867281142094881131529992970073418918559759758145287587220882658398549731702876509189821093759320548366619364768757546307133347628368727810948921124345240109831421927721240220617717629703124798477589594295110304185648136523703674013418073150160828279053052797285110098680211807276938360299771950557052925347530452392999663614747653275428861587137426625315010861136739867871664691654054654820485287741045802778242240771735215264706127953001577566694355392715259635576876027436352874680877442819723662759800518251303234974284064979057493670617156552511011984292071571303319029410225767647078743778311525773860266134778411777457318445164709313820419027307856591843185564318242701093301567002287984544199737139039103927083340901911499986267897350347325454628227937156490530532656115677182299213385441554757868867323470408494003071359233230250016616104745731388219875877939211473123333830362090811214489957652320939128852810958876775543889611454041151449376692885461228060981158717073231979324760871426747213120647431089814525298639351225371593723102567961373991791562822545145061976173316445122111927986707777514158699698691262875282951219050159408987498395783362804480177402345760551407923191618356508837868091775614743409151465875265152995485888280649986320999259452815678595553737275039307170627040129449459430026125818923203505312569624852047575450163775228129135096656783296224815656835000062101686316791343712115039024990175977493032464969655805968616212089314550806797626948862404499191314874220203446772018053403628690322300472074897638210169823813680916692459792770851241259912614842854509138413859089614374008682024299500398427488117283281229367334681615102428062930710177791440286283940877886932127491598930987887759177415656773979810813640485375987710886562104040464951577755182623270672416197864871840170951379392285837585510736633581411835714164434563856118717157231920415843388434988741860373967306597842783111088080017948648429429260263689269112381413638401888505461351221208503347047705861048425962522022288329288629793981302800471792467238895075910400757494050766024032991101105991265264209207924255684317530464190078749931882025789964318429378015360893697103194485463429385298399655150816660434476012705888740209955368028224761943711579263116779414710314240012846077132410555252130695792864035049095910219972382202481567460494013461207258891000232094084737559983995485361933086155975928114026307095153955243851056721031706782588623919753905403496692602864096778781066932272723027217457542024889472789271956266336743797555035984134254117997881733752039698623466783009692519193784476559281767474778587680490405295427086256182707296320940094590247165554003496340036147667840168117128447268082030954691950844699917357814015940004461623774444577861132287440917015498654195874531816293543992227352491226944673656377927609874815348831862800973693640209112047100465731897155020388338456745302627335950839766995571380186427245191283256139465989377544699127802677227985293262109742599530229123351448360457636640367146542467484255385253590750902035662503433835802213739673657653649024456167199065380825129983772625980628648114182370053702861924337570282217933328190055384183417127010396056468208114775341594313775273277538064774777663804997928999065848673268768945450942408527193479960834550000059695545181258524469514501894444293915032862408367907927099099580606536209056442501904563138759499043624272736932396698889859652771991223304729966438368275721350696062648324992613658764787705464518724336210574786290706987586090237490319984001412843960190730899725240824215504189243512080210532442544309934468701793926778395293488729061270825372739460064421554356647039431094690391450846808236582691517340198330296524782320683594759491780911391111006319935512441814868696502710152538800868418619986115507445073773184277371607220250137708367756827759261391445170915305857821130177691457291698618829568789616956860606527412826819028372817650077351738054000188904424760111912906063327699114738656060084707284836376987144735481919117692627241357703669708856033827341750963857468384599505206088381022163228622502540465242692170479073622622325514231579862792392807037248028617491071262321463806805982400951945694723146479554480627614524009445762307573304901754685399973030269863167003761103178361913803228970657164202861511756056295279189376821343412347682918975283109327537309263104768347738086806245889588483347757471657061367056788049487400680934272678310245139800174915979755604372309693331095016698900317323610714616427698232658849436995747416358556050365171877753495916918836549080182154124776896560250618665690744837526375969342624245895973703178317562539514445091174748717276835578195290788165075036141767096175802877670247986502693681715247803906856798294987516138625372362586514108520187225734061489802773506240975020409734355286995616101040674305859463332871089585428599598374350544933540341654980165467783029585456167844165174029561011960383383370767322981278895268261177716023386683156923618955484530283028766422671843497235850755181080673257290795449508559195274790758787823412712733791481975350908132752768300124259976640026192809357393571290778197545323912938708710450977494652801913534347979482266725689327496422192061728027896912231140050571581482574214724550699164151581527953918382126411237862850936116106201637587519016540209178212388176477870142906162587563797701023421270786129324675772591161458466906972863503698244678169576109556805015367674774660995072696139318864168454534920092015444816712591051883345733052937574577968787230931437343212110961308558629073053184667428980454975407273412610315782307177946191257093406399860207217564996689849496632034867411254865037459710127007811377496034930973426788634136124152213679054155034995790341966941859917104859186063063794797811854691853670745828442871272798729321239998552941709960706977186446968462093707772831473441274439022951256679647740980247394233723291147040619905009227100734799274463485562192943061652714118969141380002101782671784606028052876652396195462851902271328331998795529915228541720679244772419403541871925666291299776575217859754938610423350588696743017902231262995889715885752038901511505204392102664615815018834135021461390565027500606678581590849177701882291961616395851188967665679855103797344264112065962150528110390641677286101680536232616728797769097164199750369208786335274002185917249818588889701028906876159986602207859072124407207234122212632161643460088206019885761437268456187117845696583978625732215231489866816527094751326357110505560907328483607861995799311914825036508043915939512468763242588960326713546419226434384696199243225497336513998281175291575837318300458757296360698234702622498572544881287400979601380982203150361167120277689074440667944109305476371869003388272624838769476891550665100379368167267307350969275337941120050779353601392467672097260775886851416902617883346576467022505520309996830678853240802870073142732195557288682857307641661254338351228406646393248475781365529134153545586637310268945391205146264256011746604142125644758862402906880512140402057666191314946748123976166994915290965435566427604631403104391844607524322718589381798963639271159739072704310539941781071066221128237975510708160047662977436219141318533338898409090132002366561614257432637409050723431179216978541850205655568640117559999627220833019130738816604823491347187531371319492190530908482924733026218789488160834434496580820042821903704136665396080527545664671170929241438991028854504062760808877758262845756736851223110800763338469902980498764514267648792283643377122289825052403633347871912572807804395381280659401548845623448700162793548172906205568365722538638513470346375301393316704781599064339448132912566733498531360267626715152227043923495917073559758490885681578141254504868471600814370131679683503279366413794116550982234456759262322897249924323814294544593472342540273960641320340840590647996131620789026709046655503340441919734513068229585214221702355590650590890133017258918169678338576486296823691242118124526800883442666703780347255906852077653536777687823537106898547963827263174043211882819953739881447295056930330451958141593072650804828331007043521153008575024661316177308965580772404684805237955825921212888958693244101893994966774783824327702379544229499316028843435334794992130482578849772363389113360514725355032299134561780042029773880147133775242873131619164969052310394082800726643628726348630037532750000049345320747173560649385116421467682931964054392135391768871744185947107384016261326443411118782001089472516419933574929019112526083698146319317531854130742249422301017575885886034969014381604310960174091902150648428108523540901879332190278388972076665644520253471677315265034191697288297312365894701996335312318881377552176336103849195283534778460693437731320248034410726204741648724796968020353508717311341118416419835925708545239663965131042146795896143841232308770398547102054965698024322044214044535796821876737849350442795824943703173735602454122493930882703009429510873144019162189196998857095853039554959100696122015317840150748898340586219556988567558096349641601928337902855491669382251059315133813514839987660682036569616638232383196038068433271038181966427735084758466277371032905416438529098033449881823563368873879910435448908022946619331125452810290729507149755463883093883219144327971512666199499601041463997209594074873191520907740378960763500960447322141502072661375110077773527424252066458678941426069159738577566353054606980424701215822388094674773376942222883902373807993126752153161137174588865407761597584077922859271313088741528927286410154988681490071763040018143115702559000010053891906114280177344997441773284279623440386557335876795844619366658816909817227273677451080146366097894992639317138696904953458433109960725421506935991173632180401067401472268454925737943394361552209508162234228164364290386363795802936808530332870182135880196080073143495685815333451046872645137596400819301229050993500465138125456230969228696104423372568214900776594151078496344127734199477817418273739690614508782804499144084400426782124166145800432735421061161010514579920950648803991371228225433185303019985591862675618758142412941484231586821203564616531934881694109389829702183331090052512475034312773490851111671326087099862407412306574118183764004416296878084480518398329572545369602098774099323910972215173965897263022703835760842616259894068654041118773345059194288757983584244493647820872867558779902670076043104522965322064506591670030941431500821771667480011137525144636994702839648207819457545357185460740656821218665230652296720227866913420336469270327359892498156588960971542311137281830967180403541632324872413141474239667533497942685962920787866557359484089831429603031113311516999995734996517154335443444752970604921016769069837463456471556056199362777909799021027414721438735832010038102119500884941092205874169791578073325434224267185950397932577187435835566324217100956124770043403028363018342157371347460179353259222487067397378872485135073518627976789443466543501212669429943056696561443215543105813994588797564537357753823420617734977608972408808233448839444841723504948546452805794218723087372728451466967767538006735843389143296995671152489005791406863450212660850270993275656767606838612742237084156750490298605678266624587386669787556434752042609935506660612988841255381584496666259331814075049191265114852392036324926717189144201947048075271352715093548348630729499582198432645019934252279253410768333884236030511587669610415980598410260329233772297704747829375903463303928633279702818492998987365683209844168197421694802882590500214095870982973468605741486670344878551909686616976137562699997940112767519715406905747869202503181230984368794200020781948776017277845261393520112142045616531098490240619167220625147284456689140520540346916785191489129811457970015356818865375637067606257236661179096470467697632223974457567366909631250943651993176496304112462003273475764846795993970032816371622550607058221585134233198832845771774535468358932203857838054328759310336474544542733500733486320428824643053430855944459682730582913344232137204722473864886303787388850419203216381145872537773418523978318836877932458469055095091545481960029859278883418880655575875706815394885144638627394682446326017262433911480848422899592025283668271262784515507674291535058244574780484790539548337216936371971763438021088047766208932734930113569400832282805712800410016493090052458791109690045412818338374784545574209068662763151787386105132386973147500819587430214460011006031124475611379608793626263824140539705281553651198178750428204519154682489432509346001641247311051974088023105162030961914624256058216779146700630251146653723901394301294457049295155328238818134159188097729020323992495155543002051999037742141396047774625648176707370273120315457165936692469527832391584152817004538794099792059630001243526505954124624952140317029476670195894153318348500316110366685290636364348088994394029560911770755605185053847838815592246518567491930972560316363153158576357798051851890843474944793138187371372047523653884302431672736925239573968424167359569587222589000747998338205891228586058609727980929380144786303503657721209348014937545243779205271248939591160135176964172958785804099921322138649834504466649211790830324588482027586877390022049505219885206899152986704387069759371225949373227218299896310000879139669583046962327658905474903721488584481242820047847133962494569640809939314627613171721787818058160513726010836760114704453266496853661328821484173221304593458560863953696647626132787547593771010592439175654580100973600422423393267293430411642909885987116998108033991266171743127426327508822767629264973933740891802546611963290000164623262757513540968797441733126437277609741535203310161404720423697710861223705335851770780582805397002564285334067288814000785997342841953277782991172950091885211184668951979203196642152284977780837602133159117526098664075850810437378841521581873130981840619549341974442638899103466248385874898694040133867924773557200643567694377853644534148441817833139939253237038177608872738381960741790920876549136035858416147491152740500037865691676716811695624350847480569579967033578447085755666689497200044654862153602392117437116089936836862173595911390519206560616453675587436038315116835614239659329939902301672376665869568565206742893163472075073816528511652152321901460509689792911816628705012594024840457172762236219545186160203110200699076457204634786734558863954513511711278509677660555046290579328547222220932546335206657364113826271415025260937558225605073600875485872898106845922843665285786279109615403783824022636424864639282671411039269401637866411017692660695098069169412761743596293101438754072838855651268779397930494515637899515724394840165352631882301842299409510001331102850315012645421874749493498375567179090183156299749642048334854909479801713224564889947250949375891830485032328820273649382382873874896061851212745629833754161746272109380916075267240189596374335327116133619032708181756164234033035959150008608363405860452148277680874601868551771142620592060187066565043924429482193157117564103588438375001972721717206245871816987886804530924205059584092738796980747323466785959728488899193945635913956890139253795231023397471802478291788788603307458038612954256407800754492861695958034514616382840894382131477361644957563029844832111266622273122499960186302043679311859543486746788437429747037328240801911433561554705702209300430140113227607010371206332646867278944032536116178647964736441875492471951399236661686506818536305872106780019047514130721648466195605399341979682920267376171877026864669414297306900766602548238406643411066360294122264043177652532920107913673082843589595131103537720999363573802887856424430811662507145947238304305890018964251168297047435830595741552124221019309220193709159018921566873442014106819052270098463210932764146337258480198435432737595508424001918808115574349455118097848521989870594099792145940746835183149241172065335611862140711548101974302511205085129917679752431226310025999084016469223303717751059758883460489354041481155750802058090578216984009380703978691042789077479644318651947195941191826042835104175453248732964059803306351394776970267740965263198441171679023641862470981990686164063321098533182510509567580746342108728406573976562808074268105208817314582273119215700977656252569953777997493757209217787544069586812176921942179284826833426459662694489032472710458364672439690386913192370001077195640497651386976694230533902298009230843500167566345111394635092925766501052680105770135472710024672315631319516420370792033969773332229918994046346345641311690494880623510298549991805862931482552492289440655130262761748036578205211154705195127067252642132541247035600457956640876080886184117234554945906703877003358092368526624216977776989036087796550603226191593923114092911147895654367823982731991437384166541392851175569801697923403530213588595040602431640464626329502090358357323054416853258501659543843878297310490625386436359694654014204618957785537743465493001566354865641308920052345545072923303445468320447337776232155479554414869505283478995267736736550318214850328683856087771130054981467081188991316655309740679790382929197495077270771208436571072420304980582893031596520855659579112387374420444928027019401404886024605655790816351486790125572518019775704577739972649833005789335558978233381485249298881165660888414293840166937178373992274488199643489314950714070637848469482692277091920008283813326032369482881143018145629336051621982556324255988243352156967501605391848213604096109343360170812818534353126387919794696057359048945413099397473833631502422692131166931017824397645908847417624994604256907251225469914631261426765198800745545616028395050110921895573869282238930237496860859524070935003695216686874113131926016424916566020661014192381106191850398505891425504557056700602998740988964126729516861614751736047018143744338300835365316946751221322695446982471248647179848567635076039586028182559563616455029536924722152321453407788015994231797849529434380793994232753141347877695729344535685710201756175644132025139120960433583123922923841491308185920501222499732519383124331284607139098181732434130459782156794750625439711785306820440705074347234443399619344918192105934409694992016449515924753347069142195274486043772672115175904783234726843005668113978225546109624718298587769259963679984807391669068926071942965174222118091555389370545701850586266533360931251754010356354570778063058260986221855059915069695095171022498911348771678553156652123228751089868422578570296144254123342817469686872126277112826560080677565567600192764774861346174382832465069803379317053931314719118543456481430927665437977905436906016822916924373553853342124182635635852032040109476914798514163601695799011319359463478316292789736896093397095205731668523851009108269295393174720448544738045264845673862913888700551884358173672113600367955591412143111546922982610605539908288858812116222605376168542352483546704036727136686257412074645439851395754816498282617198297398710776399015065116404204656474131622238552212980358670673473208436866634582561795025111383080741124686869350676243047170032275119926205333438485854372772403155369717411307846450998243664027103720554445618365386331561831426044332701135933326338869827342451909497428076070365493237179338425501929785348865576770865327261015793353518268574603930665530882958510459062925007434431401969134827086988144923973006581869711668451167053335781436599251719608442093608040721090819647792835695781658428496603545755822840080451673407228690523797015382282221802099547821425456315745639438228629288112696873386205276681744507479099606425380931836767859143244406505315997124235960406378641193060633253649921099303239058332067475648904046019417911420659578155344855469266470801002879588998802365198330080668998959938402505784827894624210254081739983871621988779637299259781311978748134756776250790672543522015040489341964319132156966262469275927606776700924454705195362241893975463878743037377438024771084860232972112794539979228782326792032278529086912618283134594471356771939333304582165310614515636895646162450904198999315351696173208481171255387227966801077441387463961925705731684702217609715055566953605934281974504773899835302690325558706983214920170869711797252443684088050719990742945738700374548127493496197373929929615000122776449792389973510419353076687867608837894010611240143435538007212366941443568529065659947025084237295438967907808482721719586708980892458954640774129971587779134651107003311611852685617146840537933535472933667977152775021397256207781856921603566248230641029801457749250055014853807691686874228092129148566533598673649921445897720219357203409130422153803464954577804498443577905917870712645280503365655870555057301446481422205203822719366077035855016995641718779777112466876123354154346299442513118943860660826332735363962025957288943275658187175818345753828904286508799527414588840095437261660419336822144068125905566771121461426169084419062206444334879097440236679341194095702305972853023484251714030536542833581410132764445424383573955020093756120181847230856608469840070404807264559882974832442930260144659824408746680881002601428001750071460198188631275244353143088427795857130456945416003323814441252317601342097312274183375632183987851830400092960903208715408941589736490049894476704592521861075243174821087407579674116659028714439582042009882190573176315802797891075165262226229607051614401703937477738469946971043137385443592776654500756635344862990671430970728119030316128890345444069087170677813855896912077863939371658567012716289833334795220294144192322189690079236822297664612852923232908678508921061344239761809717126412609667468496851617547240994625922912856648158345592260467309282706048727974395286036459919155085451788659498033183625781623026097171078266806603321461624944836840377895501867259788018290545000073119066823177433117623237922737193215054797913818930823211818025816058808739506048894498679114739566507838735420056616978727541267089156371845477494327950316316142401243335673007680753929650410269216582343559760312583035914510475270668111973310124622470252553374505018708310490094001763081140566046794516430731076727121078022653200635988173402142684432400471849181994731940908710268780641504601956734326341960445571676652282775110949874403600444336081372675634342477159472646633262342774669014938237387753882549862208731888398105872342068892846067693165494483662510157032465815050297133526571309789383978403208827258670595161269065383763261688106510537655105557068359783911925369097127477367564182101004291320137640508558485167987328216774225666504764826476696721860142686347055754723991140037001011189277726327905156235327138086065780439064915757994266981991839428351257887594367138172154673603452756337923685163792358219578860701594699300369911288442521333395407647557248850439396988514682076766110185622970752033247572466118192364952265101967173678062993127367695262486277913223479080412495642573054062288463134209630172129664076651817188205900218679547773702208355498818887828275043055918826955395369790756779479988125322427165667995939115751548053546545179887138870243534428371077047958745462390600817017377436714267033237401000385493591061353201015081701608120469049472575064662500171493580789532223298742589725419321617847760367272332188489189166467853119964562202329300536531502422340934539176117563797226324780174059045009124576271657945034651493296935488354243037438962064862855022099520286719646162815355648829289255947500338067682694894403064042251150762501083118958631284216957187675211938067886887052765923648848340883407228664250101433777565904260251651234170128860391917210091790093244560326481449685968991780291817549345805364228874403297311626698823439532516949379146749228684703898778449891088323932038660143325876970273865608583739137100261771446189447283433874483462709398842030638620877481297892988765947701719201821510505528321274202217824437687505479227589861193074356465432470261812047313914228060745697438242870012433279204527345154711048235314858858110867108974282445207095099765025593830064723199540786646316705529351164182730666005381763472914197835882599407332803549483260663692494078718688529833397135813127874875282701205359411545438276554530672952817475691470292829169599753411560903682188212266450963754896631695359893092228184588226403740668816906126503681989005252102891458695886462170315859834540252116828514715502933940498546439555263813205954111431793827342315839761137783535043415618854491176819254408381482964929945383370462605487571241695439827319884443926816328139223144901565956285031604222789846680950908131615791406367454349546973915142114937741662585096447809549311823523852916494465270238332384611715349190087949136900094722673793275040547390472715011442759202973472901282658233036305223095521930152543676164924416043112951630654499027946131760242445597137118794860352358956508805521363845963115553140289730353176528460247881554169846632336057045715918514888883848116972856322510381883369507119679820671813081965470510110959460419637913133415645755805705168632682470144042067503933512766033874693161282429268456400266123842070092336515721629325583185715775470502646256173366254011398620241811883191736633721607358787429611370176737162252252561043995653988873518179201225654574222368230495291027697601104077270316184196377069624153758859948474773049164780892026945199986035158356049406021607569894395015888904444835891522084961555015492018209932236791753889632024231874404886951252931699327552849949742860802985754892055626440569480444833646379077303154119288614187112269208863667305644777895494410494896157406494362964636293791288424573028770898479178571309592373005883410590974393353277499743166790537247740615251586517828125213672681275561180846457695076112212236323259639757377389803222154158895196458664694222796348988851006940557886376037774163942913851000663272055561954539535448939556011726635319204063615511273942621308621348612255493867337269792588577768599303775423776190964124995536104262471740480163328944128030845590580318101812540909272181811256273766474315674126067214928396681463098836863951051108156895739802676711963901270678318202953989770729468647211603966802016610740285226332079398328644628796467393855863974631592585173196514014891923098737060719579772682097507195241477974129311675751692904967411891915338685735948171002290930852614829609108156358198700040954180124059411996753137944801328240048781289994817647392208004782572632996767151620450009302753028936506892618237740422585852460995429159526643254056782246599511918176712477108625315249476174781095923171424109386764250125159909621702587705664212607797077010680454232540541403018768708947146505420075841799625433456022544550618064430120605607248374828533477465930959996601735757888625294317939086656534970161067726058298099629292686983104062473468155409698413855262080938255662756013135558257882773718918983531967835125264909547419914296476480824860707321446740131710105481144609616844910466604112289934286563153675146403316799244567713883166005806529153869998023830275505903885926995870082990800720831394821127224712656423608041435117199464836116219348230941751902390602990730235861278520873948949327311505645317141750454003839981471840245475820339946111250563361446927865081875473331031680633915355568674061460932138930502901140379642248989908296368448300780139618776052453350659571671883925979055905596687401204717900022057655306870088967141919207613981419045729654567139917956430473373832615719658608425503154340887043402112552188574357309386042456306411847546799918730431451617258827428309942485299367765976079634407909436480952028443095954844406361903978775865438725993615604081946300743405918970892596815537965718424035579496784454062498308083007392268999581018375371757062615300008056583450740419354851086991959487195665669515669984653348115843676017897029910172501066035984694140943292244016844973634549778361353853946655104923930864781202604953995912740125880791648602875167249566445137654030544798800337113040919510948433840540540872749359763245550826788466856811129630194939185044914750731279653419383377399287701735733201389020247483404033611144210003403706188163846303417984950036563971366339085616743278747745749705324434680562923262737536464907218705612584929790798904424140015790662574614117235552556897574323846138017163666322553436127491928617247347541871736670846725768684030386769619465216197179012839650489965828517191509409953967128300315290327311107992605365553115257017156535873346246586615544134820163124520227100409870937605975821098790176826977579822534947745053690145690743580898350081817252359765095372871524813000782435547864533636013428598935638453706543059245563425870534333189519466162554348000476496029629547664223526451797777789471861872598186803642892810292628363773153352317875688085012861837980936033212522696616709241050966065822880699380862685555454177078240377341773479838788347877096181829253924301322460845002496883057219997138137176664297502637981014549609682312104441365832632357318412710415492653030420784834376146707166972255761008666243155022007269450907546017477964856143493810356037914815566138137225250774533359201186892089474729105512883171486354225655390887981491117746939005296161814871464663395956628098678952822079694324388603703380236848869407744715925069220399410762741051606300433801101166848163706878569334614401306145470439989004074766558596600789900129615894612578000714886489420668802917711397903235553218419403632894262026382335975327806809497386553226683002148099311886098979656431884232103042312619454316103193118320739670288146329853781959863001564990201972808125035077536062723816567511583471442030095588800664940102517090598253479050968785557810473581823167746249573366676716631015307496587077440479065060932384028736875160260097763161821310291133048309786862201264560265751568070243206300321377922246454023682008773057040371229419050844760245740774865076709258098851088509099533086342212156521379889517068245198032289823391668764727352341124900754357309430106095811839507565041118155655258615041079416882129472763513635298509909317212983498700981714417461670410384413329975450501959665603496287888876130036272479810808755997134422749492153017241565211165180193056207828503016326619699437913830160673480018885158453208970392637519253007763665562370131180284695306906150900228705512051474815543966186679430246923731234609169790813154609974845899394926691130068666557556885172001950369815600326386737685530814279246529845286520659508987086955304136855994974508735371978502480940064092032573094954922742546147205112341544331419266163548859803645457029110090810279227938345582808107042049654994173425865048695555330619186851761935614681625823686212295802946414338649532991467576327555122441687497827335894117883159455519153186618316904079754865154629803814293321849835126759249574387157739950037178827963273242575224739561056956493460384758263078893076994470014860538215340281939496591567303909378621254995100573630024706646988031530337200204826334678196938027891917331756324398030478618901069187284403232443500922267993816526454043000417771540747054930099289722560952388719464606231828288175173925087511838247279878760433133221052218568775847268140997566374054532282101791043103380883843081144057723416282818117034644598015701839601182923182586844017093509422583106882785016708481353648226279106567147390066402657602878857390435639947167463350295957008807007437937379778409679968781453748246563411516384384555589994077161700652946939417943941700171254057796430271451777579698884704988566455555975701955989688850993079580306597574340782115638020619591969498513193681564168394777576885737328831444994374102146198572890738834448880482622020889601146514129823543728804849408257908414119899914150831339929856969126207606878631572000449855636193503812213768494102726694033751039744775490065078376195079423987036121514158562876595108776540954172296091290280163342694260557117332667729469237262435249062325898161406535029419880988801986398694358283184146966639165425242180074845260209695110530884654972826878578395571815560108956537880126593671770986864414199544200890210332935351218274710813039796422483212161191010074018404318748210955742838528910998059589472621832636119701563020607181205082247351503230957796725919970358672868977084773858892913795675980386278184168636675456943772793725851885643989158490654648610437665941870234376539729261385250378666781440239036305259077951321612532160291151929086621569609183978623177474642273804635688918888591739036338151285935211727615742361718119377216695462208115328535540456231403177226770039336081191074671004315826853890613997342414546054273552653566600601397952357825547288108622231831684697254902885672501352558680661228136081799033446116647128636214025711484898633615805688636735316551248220840469229224278480386126157820200847135250783472552215880237271836075249051813601541650262224043324820261407664739968053872883039562066157382431113558454258835565398287839760512881054633457058105501252138137926960795366810149246390249425363063982978283760746370959139207221878432936944157019146239645186101539971797230249243153891360367403287511166447608193791068577709737258926860375459897915239532702948381256768823380821130824221951028415662849098450456249354073443729858486023438889363894844660883052351878598159557859822099737045325739753861810700885723576239341614349993509148632675154215995964365039978050597252567858527958626540251027207085880462789119435844794556114091810200558981048046699164582180091402794284712761162476500253158932097092433882316537276803702909957852706024219959503578238278135945734675587698845393395628821613877026008044665274771372371676758798976114277320209392890090682402156905772326929790522648576826287945639871353107724643035640991599785133826741753935841289371151944872920010698809151705923717291357224254134082411731993367182850162250405537945656952969583990086506031243266705503404910583286883876675628657798701636142237131528009929945443977610051680317993645000280558987258217038488655223212831597020603817540301227507954891665442950249253884251041186812285921841615516276732677945626791368760393739704653309393221444827351596164473221567287414262596285121783510519769023513119813105678452543025235376615996433260460794857689959946190460273420670492064295350232742260678607799164852496597721523080735083046651375051678632745543579859574456820551886855000012498768867921163897632970554105097689880930294953302334058610932264828013733503971283795210207521932963586038663624662700719109825852693899583680144094221526968849042744193332182719776561721178538269522773915324069572539422401168223082117210470872659201863563552714594752837427922764097450714692226461793807973683489024324900679810378578895066288126309962146521576009872756586193159520020410639303281054545037649112749196949614624539070490690901275712333620344731295824423106724286601523973926219788049492442254402066168656462747045023884761417827394012186335428707108515783222659878243376372910311702387763341435523436730091422702908229262935335987235954549859236773688076088571637794484605479523966296597572035297552581011029686915064919572384097453576196247978748709178609338664147308694808765559375952895915619674139352742137076329147370187190477773165919581855300148585176256240975818143688071033966361978440371952920013477925114738720454105472041502530954703260094535856952834421992292611553411320893164926320745121821237236737418504132423069486920278651596517321109925227165490814629362593503215741210725573552113415095147951730210368754604109185643329432782420699871478916309113529086825073447005448285349333463312885391561243231833094038227258017912980953573057437117808793329194088627446356344484687881256744705532222283466646939926712037918217835707175803085763321192282672402560324354647817345216013258819323252208455028947757946043073772848347635538134517262117083429467679785649549372820866481450636803030011453593089629112742762718546443749143933148673439972339941741609342648244533176345033289882578191215027878889494044019995685117938252783955176835794994974583195678695831171500161808722562731270537203216470272064372755350702111697492374966246206743600775799653544624862254322639458160551963161487342541681769999863612769752065982851131521369885320039623058790739555871509847184316961200661701350429265198380232203220382572523869665957354640687466783673991453450588815402632714660265682986832059729867567427534536992485928987321320434667635147014311445238465045041885970416458257936447106974398958701259575099276896157554051811386249711208983621742679993544309580068287682773277997110415601648639793531140950773505198904083442730704344788851000498214494552131682901121498093284522284890160670002487953217138866074697759001790183205655485401378877958127738391602692840591501726028021554007296240173861628309974041587222189920207428316214804758927635166746934353810855232849824850914098333257316830213454428157348489161799005119488771412170866794454822562905728846654147056747824123013108930127452637128117325842256422134266958290625547206327865599592376845800096936522578181017102905640427109860534531755726677356239322826757335723745666135589332080534792625706795500121788226895999301073874392172737195193503404405738739604313500762894870249109137951950375713705179357330537202601669839388729472132871128192003330852894760157650426220998735903360498747294460581603194058127408076940622154162634702704847013227729733515654085210112461370178715515202863667446357735749574361039817662711187848567982475184645963032097520203819639939189453596321035228356515996692386555869150910347573511278948546280621987264504524689711401576969860800526052782382887524895317077279798007224939204081115392456675975449475330517231447859134208146069288962833204020155083068666447023680332661174574096587283142159833326527660883758388002266342137509416247964923428671901341543555718584739756690271959050419807526114318195734741851765282679078086407863160823558156425849148225783627064466405481689146766716801533017002817933304198986977042667984925759873581445009195331117284945863317650880693572832843354402701162059216648515392869803325137441694391744089195123703709775602583441388177187529761295706641953060031766826300608631157425291715880674255204495865978837665855750426341058407872449286553580614214782672133079628990579474242658838487754498398992858611224590366295609191220705600476836410628075300787334908359676924279618575221734820322553546362822841617928669625331479458704227048378302842087249024717625847792185961769210659987568365529556778065844778208118869118030770482651966395719880652939005008211820541525878282342519803027111848476530377060639723236274203546071799113196521167067925757578957224715070255445532635529765375852519816958059881989675702052374566168376560260708765328162103628204051146415424000770217250953018283191132182840610582457467425253037286640550735574445769373662015414865651133064442134564266751602993959664188334436465665103274554116443302629608986210025037522609230775299520023549830661617910759353423892539417488380900731772771452034048269052904733673467166622545805257978449900481449757700317198765535337275985065363576300298259076570795602187166552366907887669065563856160355677829008859412118719381575910021822719372426412615562739838128612832129298683240012900516927973941981909346281637457575575132395487443008160332352404930161755773824649083221342248129903755917306283974537382974044380812159563690763721926954103503257113516971362651113121794319973580428203015143489781689590298355854182659700799423007409809855492890226600103357077973731940358940914285517241533071031626315106201620548019011995644561363806846312473231300633185401912114951589450309882512836063230251692820399795733087845151938967915442283720447330269423549828729774709020477270869412056221030736283727275542002919078094081108230314707173459616762344400191096747752269770943583900501307572870245215586879515704570984251218496705693481583408866164320980575137998260636497782651500679368449741749101345070252092715760700995874368338079861451805789966600136710874863321323803672172963271047232668808023365544826806391136722584186190256512452738304492492403210907961321399903905595912817089418897649480524928735132971135100272139322291653420546087179421900392698841988066193143476522406204486813153162258100968199030128409009459669806269441715496130147569577523685758065043344200454751698514365520977175959124257590858604442544962075405926982376580083817705423243935488665138080171027450365170707563998679792846582968024151434846606435451443201163421946872528240119114460452823890241905382351066370924135179848744084066752539305811611577728125857965710349125056792770020355163932679533250307668893712422587686527513662279346393135019572292749963218042929047323201081817427727418690276752198125075275403239111058942586166581346592781706629300638914070997846088954336530840730810265874637416357652804561822297723979178765363386503746878632005317219579136201174134410650991161815705554560662186767473761263937894378357592628901758276319578207795255474992138578571406183891857425856015816946155980086501620654340541600806860329601984508020015952766266655352640805425730697727523637034594022597774013715961616425551998000569577791736903166419413506757586331005787282341657578631538689795917749721918085930958942556329179512767176897659475057224899038162115036878872096395326714037938641581254811299137985225836389940931361887027921945125268755668531937938221428011475480314584541767420622306202478750444842471345028040961038833703978685784534242268031064966878997378617570073561337812323591566706694762183090039823710927413369433030919351474153312249945574776079495780973449517402509245965664326777156125404289196752693950798044915785877207578231851762744891450528731320753384342263859733719736278242551069097251486109545908094995661589015540536709057009476224861929697957561102719593119120444829119564227656927438456157404210738318783451814542674430221859016091194263038887310624489315896721554975737884973144328699394502793335631853772102484791913386343460868110454034123488897343097793806068538552950299745300664740197627094265830094259766981874742559846992129512653096436205492862197269079049418288451874118380749181409848369124660990561053364792172890580038184880042467283692107757270780914348866190360953636295716564985114052408862345858555643312713736109239225089550167270741008045943453722873003771807295181991938808598731749212836375847213146064071059455077272377147604017645255814506642182014450796539889391459464500391918135170109236671256273790092701472476911721785099723278198153870565568456413829110718939468384019559806474436467339411552100619586923758665376641007162246999971750715699784250618943797965937056514751024142397517682004431177327304148236185518783643799391300374315002415579172747879509555833989577170244757231322262872508963848605862422253129319444130764104477875061961714554908818335076215148361818608664488250589140685676266791094280957520889627026905903645337670372472580553090377931611936345635398493933921567772177104049492624242927156525038349201904038140681117148398767710284439790171911494562654644548313831989057975199305633633326976947238206615902541963120594639192006535601368299419164888738322159889916734773086097635694983840038556607338442682738246110471929257295107083472795800645756725642016879340394768594547586601224764230960494602295811523294135177165715942653009212448907141543419275908073404246276020014607260710332203098871673697879930202830012283395889992284049328942399052908811117153943153021977528249086210350705951242209444311277148109603510568639425273210825317830831960699290039135271862620354380634044056754640303723732745144666848175608836266763240241422009862579389268769304632900283377544108544687630836533556171046007508920783523587900531228396183745591266002802548868979976325687427794888475105373304049612218960840994539885782253840730309032720837176923030591206758638724304118893036803621581214822892204068884061090155462292622485366383825352810377460429949741368957652715463062291490023557042497751738625321489311580933743491195488798689097945111293634217667363990348842163651964839925687162297020356273374491633822616299875758111598039246112486198658444196545552930564007293410408256081458380909572219861322089104916946260319624829828725643524905945152922301338900001844073353391511111136873510799420126295896366756992990787969813749398067919472988760572234240355396544449712912428509149695505683801465167180919188290456411740189509475594164090264635566346170070841379370766599639201988540002537840555565537136320933176199455130905797155671809981300672451324379287307427903040666098245756370673553506554303151472045305323827019610240436077028525811079611472576959445538178992517160001992056197463115418644424242878271912177132422736165315584873983438133743012710084977378242028828168478615858824599751881660815277388074260875699611380535564339616311715543748677257550395196725904111054240490209639619293338046112717708018720504809934851467787856982918917345327015248972524972342478915046770274380701041740896645138726386236538640725913842499784301234852584267384800108964314619369747374929964818574806231628972345167378334024827223312845393689185641639630784698832390148213815753322027943814663705622710867951234720170328364172668819127277856606213586815310825579343991371094497923209458132865206036501082939514268129211594605020652306848620572936012670795504216105808467562462556447706632595248758127390075493493423424181646760272325287884557120479419668450467348493972146285063785839281020759134520074445469649004058585910057741534267924834579280333303130020092593996807143468710704087974725729847443139933727485350587698762705622043659250739659851111932495856809917186177016814952486084124926515998168563483765967794456577454172656706058950204367366367020905328362587189766299208791229957319524689334948197643096491798658707854423065078956491000862681193107895318712021080438500377627053269120948250910441583683377412178840759359120306913308802776549373923378784329732057410397449886261001532598334134268820666994519848205889119535814379973510475294503983230369209123545517438874886708757209094795969314321214029583190053107389776022815798360902038332662665190598333421044497367379678352719307788338914667708266434857962043035742119197264432061315021111272667887509631481600691627967833699258058317201878130931795576083344883843406693850247929578753356673523269475930748806437188441456468057861639427298190416296893043087630024724747308246070939577930062482982652327154142277658272424568794483794462173930228098557331025282385857458116376120159968395024170275573417207229366920182604097447307904286901891442174117151068997353249619016068096768479625361003982099820841608794448767718485992263337510999271509981529340392080275652566743499670045387757226437730620461203061271057241626514222194721668776921554831755827641826084617294563115532129402926555410872452476377539912695279667743557307996004505347366344190862329460561618991479327930937655894475757264490421540833267282677227840472370101532205925064523096321780141527666641629218322853570812359683931222808635990984797880122902580195232808190736281406345817935609053183177331275967654711542050874180188121402951420760497322158173591984118219441156063530448320859745255718993321241702700485071379039667610896252831476848649803008646615815926340540607926803827543009628013268202907996317041705634923201068732953055714458443499167101097437976877607795385030766466858974437310478996813627289823022173837090992309789046186160465007863528905678089649316839073943200354427236806490784245101031082030087511352560864441403165173376001286618536601999076519819881513969415466819649954588615228179321589559262057491283972358471969614280340464721187951933226072623018838675984668110397210398311055832522810949471623702390589193015843342374107986735633153270651916681153634600072239104685060334527489954629122192319287183590538398148819971848924299805040187902590363144119368350911498763982868095029747654589393499330274728613565792448038363394188753179244788433465027506617418954852037662795656939667432180916776696820960589536814898551744441756957450384993659917537742567523135910685074433682690344541804575428110242106209555702044550970634061508507739950233909713502065174001247150997058544645074727529211410038142645184915827228288006656358851196186606843638194230519093841258413222728885964160775366928560093926372803531402932882307792696892035760420682388083252651850225687344879515768232290155617399249065638486436058192791408477998559732012871676811273858315872931026828826026623511625318495196595646560361145641740686571666883250478657331022445455943074392473005911043851459407415075943188513078096735535878484032812790745476957661918637914014712522033535923711293332011719689330414842530849549196635987850061562124302527950766065042030125342590109203384608739024058665067926820896671297841267147918609806905004913148328155385008776923046708149439563263718051653283847060852794932747971462519758824665652537275109655072557292022779852650573890658035739710099743023444116762392328634424571419095552198100281656455196398879372434436257313306587277602154613330076834230744584443555616556823745090581144954608221954540436120514787828149255214572801228117941768089667011459709302801701546023159079694791245662223231840210845037204265770368604282670388715913456840469444077735526047726491961906959974508372253768243528624347203937167135839265250208291472548526856542506387514646055971707656982738844964267357960426064113638946083252752033529885531916383121235571531864893290855101094174817299778089242747880465230764386177659679104312974794876471511522671375215035095102933414637285199921653709213550019168427383190704674421806586558372688386674092727264264585956551625722307103449146350103865098711663118922332795486665209260367722605883166863282500229569487074000747714392996157094402699848896319605746376677648959933880946150243473064637824555548105198313100442543879709371321345798567522630166253997314287186848249192483745049487540871371478438829874632808280497716531554931462465840827449028216993046187186282686708205669342990552880396728600652510689445844472751931373349831079467564170139306889749841821739733181226229443080183368055786211606701563977973576268577349658832474908316408159090718339563846504203909222294486764973837238385940595665353360507233969684495399866166411934442536494905534859035897919156603369307915152857738211160889046130232008171234028520437690037769227627196778944181992852757663330989476244533685680657667107667672278633567828153179324148596637815515968644963136906193744449299725303901230908582229591264082384268027568984151164770285738122435525636089811376451054072860014912057157982850991230340213078058294143436255019110856166484695119961036368072308868371682960616033536706741497938966358359912699303968961053253813727386373340284387343194545692326563064927248816824557718277449038094185339412163343611881373999356936249299075530113700034264943396603731846675752050246352478474768324465135938539880559297369389964108465543582672428631585132404066816259111528520266566316800795228185235523253262422798588331992530929548336429606785537633858860851428873834007785640466551801466383520928847517488718160633357224013402404279706043418638806313906150684007929987846794722720644122056134551393082635544170663991104457881152269907012521762855188769030709752620017209603532062397191762714246927121803169410785242660409227444393638777371894953825046451470080924741061356565045888807784845130792072778026486187324662754591477208687309081547101928778646196506909983881446341028559901905880658725379392668151915259762260102461811452100436724370047084278776196950909971030253521865962849593833268905664047507909337973025983090145578797040511478132846324127254415186894714760813198893823309663431437683677216992557084339886597546692909277511063113177463929265126820384262920113060941874830968499150672850951881391593118705160187738770955701751015679986827541418740414807163007702255207073199876854881657291767990183045846235080048995613456714758257495971117356738778200241507870512513123051481507986291512114958991761645883153105578121959656138303121001127900165087760385214051760279324109723889475410204626986185240291311973961680636523098758350772932694467716476960196085675879847137691892328144064308628775279067436242260441004601954290973835472090846744414486415321591215759002353097817252053105033276438085799082296861564585466221404335542378791017030892115070104984220069756970716731786000720497815988031860969685722888333324357918729501088986129588680628143661636422959770285204918997022802701932013678244685857174953791698405945917302817409372802166840985556444814002840142306700444727285409289872757612727704256180843530570040959774237323060097470359861154003720586443169284678384347645336622818538872657640402446547807666103607128719022763226152593593104717140779612754050240535679923275075226269810278230237681551024691098399639937086372947134708860421855819760085191912251912562319977178273601770812818446402658289093651683524696626063213270680957781218985377950950993811374914432661284557136679001828659795160112003611029305407838022308352141966080821908347030173953506561568200227315057699681583171070462278518555767686304234209413042782124483605098485945164893842714284742338086156801062274895766411173479381316789654858455277147263180890803817246204908396955001779895660849628483688833135437892376989801766677025319148259189209351222830236421040213287237428008816261622569806720443190074883944104437894961533729513030634536441565682926855992564888772470844311439627758226449586743782885205255516691509253912916671748747324305087947805694090762676749219392126540154191660322317017790434058406156810618024705760280234459288538184102060989498409766534435052816780422469002036526870361820288159858398130694423903778208872522736635316620918839104390430817317025150807207648875298552304934661641830629152077383529360386407183931286029336326202735211091701442753688876350438501953809637660836301054853690538816443167512938740408217290867500499491986014732707754931814916725922877904659979776543908024592511000245052512981000861345022017257069790538759903111266067201864598037792831234000510285558992089157510149209487920962599028884097373144575886650088929774090323333583876711134140313146990519379694924035081125133750537065224187344890130925773235564977830014762969066585115628827440552937237010718850675178658868630005839515656319237434973553132791809833142151755928011473139550082824599852582750359122073392545332778217658674612649626185088225465283580381093355895116102418917780291980786849276840628272589691739561245238819036252856850838929984659201306680599666525274079117673279748206982854139137592334500723991242683888258067503487481409085392725890674505439148343349318380089644374771406949899086109513964652187458665919311657902452688331134773457328737884573035366498543947734305293293134184695865144963725406647835216086191440648520457107515042866869353259739348273090307726787861243494292529490670814630353691193055690437413905805631962159779765749138350644713708248264389089079063320679919158766453561407726334604118235292819376957729197489437864263794412465546006788281217635941552246766857308857120792929951645875338933151553479529035959274612771846116889812558759759671651216821296713723209783398458466353143907890177049960747680367036858166332542055799812372238896854820561949474455404503163923162852384315506429270336324411967798456217543106388464109138186344867079271726564284266312925497399919877623852134552671478334849598017552715792797929662089158117179532108176482937735758101617091479409924877935926220054030862932741152796006818892859333620407552342051104576021901218321275487965792836775794254722973077948380798660136052616036113025341221739451922452698410839132253276120150996192489491318185102419170540177664379165474272866485974159131303197227214716678958798361082260336090403030188173706796261061603164294567950360644396848398507205666334628343509874567575182572036060714469853686796548755982140334268521926804990048364624032349857371727167914659644188115250297821059700868101037500946361873852439507734261837054871715182705348835498955684460298552568218783124803166109707768922417472139376919270760006271104492799016052592260644882230663584698465841376412889990796250948199141808877729320072812619354564280728591756117259885381054723608944337409889548072627905998409845031077877338206773080276298253778786645463327716307508032362559497043560251237266687051926975762895054383818418323068798243869624010356770793696208195527937481092679694716642060678095686199763275624918871987841138131043728268232221805840509900357954919567067378060576424802591464984117348512832067005755790157833560249306775444938993195748280001542813358913968425167631644623319001855428159867281578779015000618450488931585604930403006479438314521417193988898370909913883876831952850195153276941216334097544317122801360753222985520288531440027056657841802601627431572499541110049008454019605145938790372534095679805998620461958053940097219521397316068591878617863516245414073329735522880229094690239198891674826355850366520412733607815724130858141656648460402305185532943088104363121013477060554606730127256623066998199948024792914496707250059340822567989439895494852013472078605476583204567624821498536993155145887493266616457844482153609338384291282876932334129990258534570193150035647149551481988355533156500416296777971419961273636859462407901940998944359386942642819776164102328080243055266019607879685343772903781955198109938202523000877903687072281926246695721172471362700840356088369078506331768054825100324912517298776079389462856546293781779423395410056597377872199499100085142640702629243492645033108320834248452361124775303485375844980317107150992543082467569382848616053941757379091874738139707857369444362986409815490303930337480752754299713171290459807834403456995071904428533891170847119984443826288701211969274062771966527661280103927183339012192650092524904758846276294015675838864114763689244404258813329709496732542562878941306795761873307764339881942077208344751359239244376378829731741705597486847626387031396201970180111177194686234285076190135424301220069400390199075419918451807562303065525625778152986247670669604486884118540022095266210853734310504270307386378618381058176642250879179842024249026908577093330122427004943183569249953876827076557202250420532111074116807784167514755940987028418961501097135804021375172924463911490614210595763276119960826113825142033911597292721492718154617717440856869060516969637286922265105451522081727207781612662031135929484573895918123774222978122342491057979131555321882781420380590597656989272157770236324573666827306170455349743491399218505872699810519730611422996459985823297516738168912970127751729525718052777698552603674807526186469678468192776108628093527953219713798885937331586802156785230230147046289811754206888368768430421623025644778519452711120483749190750242823590096356906332499294097497665892226128092545316448447555567423533885541815869074840286117427553942744759091213622233202871098861264210991715897854438037911876729143852440911054237550618051343446176438510310341747434633480091272210325673466831516682656895786734278674729706589144567420106479449501854151243471803943117411702634651314985584535555394165646319818396664826586535972645687374426103783931167721862461163385012203790814255786722858595335108088832083964584455093770275388653678789640496003628699814961378523221250187833164823751478965874854539828149372580708565110518059943850904213141622597633824107621995230346461913928858777022061256125183813145432095270594165512607424854765930232176352554169279796172760158186606310975967106653747809535539950694906249508667210705748885170415988718323233259659767159306366092261826983329890925485668330527160093021456303293233224125164084445890021113842605461929759166178986855747002281374720533021972937954417344047051039311927514898409823469870132108986995297285002552380873688200128753694558967470339364471231754690675010885440958385841649693284135432300168946981685085669726733759408076807852886037714747287442739635780820344146498348936123366988474706760938710986751235509916534297913070073550229714141935291120700880620810060960779333020557693373912285288744032727118548592888291002665768544709665252816154507295314369291064382535264315176672047954138554930746141420921912380478203307958032999897992055216045298631410595253478772044899270781681217304328486613284553199447159301738845056572259900894530497019201197399291378918033243813432210604199118249633723800371130007052161524960932287943778331306329217371419695664335179136028449851802251349390489363579638680218750945371387635992345980805259211807195505912443073622180560777117182998709653215099335686375191126664971744435843112994562773433600567080582135419397482828968758896555642510494989329580148042774281108493308118103186798120755506252345805563322436528138118538958069871793158847053455032369709564693184343376578724646002178761227414168981326630733581679704673574303709117436303287076277035686946308140766827492057433364525462873338071837654812266348840633512483450633287156506061631160464059258185957000296275514091547242478857422274344844465266881302480256022316822400779269355120867318617863326248368410708379288718906759872508415298559164563606199016812890819852139274353036095124866146282620699654916475706691875696093481714820736793550130303034811887500629165921690801186970245066433738814285972346994246020951615058850352788919777063754359616303514656848944835288765541726000848786530242483296986540242233908747370407483023283937332091807440126011384711382893668377939867317860151504767922159688403636172767283413365598921957733108317567016544309050807907796883130212696760281122124904718905545103916835827444458922783726339283667326505008628645933229636006640549466474720392851298256432064939142202824298019524188819938157950362291118796764562943713515306299588876907288506272378846008279773730069608207805558428464725539634229056785042153726172354019008146780094346056252874960959632732073819519145207571986940561579980422482075720048381505919442473636418633595578642158564160797097184353154619580330923899687753547740296797684644036739482888900837348421035276370118934208147033142886983129146447323654319501927284785443018497746467670725920372033752357231846153107876973026874105734243637911642171049060986697448362609618903897180268953111568447527609077258490429329816248776561553620551539356675403541098727643895061634399182104423229368579275856619432843862026990789688802978241245721372397054777728662276046980919232790588241658066104837677765908997771379640508133403411020149669799301254989202601608384117199071818371000183663403459885895720515651947645173629083268320541094642727306799587354802288684053194555028220910942987935142405260479246110146577301747528943615957066515396048326278278770720402847498214711817380381408037245343035061476935985057053612627139341206210774783675166640372475881806585488869031456662902087556812591326007902863839010381539224850602201176820526982959201605235300099460074500920459017984885445469608632790842794399228774307426184741996675554519350856795763890805620296238174212354120137024485338145932062827556587204153512911451473473449232192142584939605688729444480276603342130846373264123979180361937490174337213663137182719463875266544547326265759677114540414000568609675174619338621337050519928307292525000385244718036787289270267009593208032175813422345399693851290315375463399432486503369311754622384106690672843217195500619984057408439283154050828033660309087418369390268142961058175929821589330956869742209722259499237338263804651067590195955398073810794624039034602867363709230952631999590149990665158582077051690353932433964362544587847539569423968769039851307517398911469002608966986640744151244896771625179335830704269011873930476613535892810075775800136595936301660597732530586192941957676134272093001121008019711072317834690832164183025606559215331028801873548581338381199585835464652190418952161536811005771791528234417181206263513191805516926262112308156729307515283456511960536838856460966225179770442926925837791810099422682516794114310330327205105307096500093239449076244093518661159303135211192849817490403107391798183852451190462604071615582322925659715183708644856771897339749813633583205915286343953874678099234313843060692110444083923139656692319287888575766532986309532653069313993716082217436490758753496568319862879527449158236191250697033842008322107448056328792205348590192982630830897121632837442846807291347118097688484158418067983096678551158852106097624439939884342462153253903833948597769576052272946466198166833428510864441972761225309873739845940865555339877558571908362529717160721615406406688948401118133862068215283015894311164692615628725275317214303327408611564462884432848121461973761662462516529620872187422101478685198971076994408884186641728738707923588120863190118523846015183442984645938336173812874500107968141656297757216858525864726573982651558863636473367837099846962394374478883576918620725503649943512061198127175953205691676016282791221640061530158823798400968021850657407142706397689213123095884298776586483047104681769028850711007387705966735543707967652576437444080704987927301656333228610481147682594166578204831453023391954064780179076305128615511682879580702119337674108363699385374445685319785113676755091284874211080685207311442099039446247790761430772210513252597854600682735007683205188459319539013981799778682506776542498719713052043075865495316351078318871389597128946643960801231593923418739924336196568620733285579256837963718501422985715518449566454766637647403740770823164447209835522460981094550178540932414549656263437414549969730008716928904159800243089369702584942613056384072703855674188608486647118301989955169892285520657044671826967626372279603741681631245285068698698944169414326277474985813125694132139077080060989170358482055707400506525411274333444862011982179142893911351540548176488251520591637571960508252695386069315986522478505292213687757921589425110077533568464118764020545192580116554727105543798487126999846837748408047437663374965319873228279394837489673976365329023841978330206233408754269819245621120988638330743171059337461397574079626984016534763119013029683637334103050223198047328745591770785549438326146154289679806995193835467746624881452679725800929746614268202434404566915064359800276115703218716201298838296377550846419155212115015546212534243741248601505309611430873563870958954097601842783573019493311502936170092680126329501840450059215738192596256675979847839785917077376507330015576061968517172286905986490302108844444584851239862499746068171207603752253984032181784579473939170336909133019852894463900807508884634590407743868276298439410484308061859955693480247300737703169775954477594255577103488872892097094706115909180105167922848851562020417471446208961249231770742996618105054469983420475432519099691160814314603205904119618784732052208847292772748203466161866184454436525037933821529774473070309313881812092758292632785077795009546759943894228573883495606438809748940680940858762173420773790568720676717671468165833612814282327746926654930278699368026907447614707810604488313668132729656673553050697507903694479240071087199414907463061088684978342483451443086089178711872566981337437375584051791988017667077292589453320545980408010213847785519057395621108135394106627837089298371148683521355605160992673604916122484342269727098596214326123563515202177562192777150198111017539249270155753545266530873365205413391848641179323487439524185368480235040571583874721687240471422419401244910527276838038318512895293909598515873786448731602703239510272013521987407653368521789415003005202370866327780759114085054595148504900643055643212979798506333707374831219736421157097117251936378497681973415575224236965546587176649103204238600488203118427789955852989225820615690116549776798742011425269813496670235456179243105007664496293407144271396101114484497940333330567897874729223498458508521948401305060063619995103734570923657989052194097950572744085727360183368566921435105923961527469356175274216460210883206806131761360899464091684107017416403457805156548862613698200414055592893011557818695613371646457987841734624523485002404659943784567778861173053640597266642873479582797966004070468655951817252448364340827962531709589460038915299457553985822953087046860869647659853734831170803580716209315034494603243719112166851919093846328827054016118010531399488604748075197398172312147764830339718924580269498577832212248306867910790079661948041939162566730547966434504811050374053098582847470048202751501859867252279639968263947574160704831515091080406318868483988436510788366624939999084405076736055556129070415170029297066907548606035038995198787530310100500536634653799418344480145510067647222418552944241831849399332441387682968687615550565770706072732266473267258457609565380437214608304516888529500567482263800078469218244844964759166700896019819858521993803200355899155353188763464399087581065847985099657560495074618340860090201435393132414446472800993969458239043180066296589266324649803198544930376235470841011100074065628030073795226486770822317233262671658107747312320910207276963043360126917029776406234116017202262331227583358240769596810540479845070623350287271355945514913391554643045389818286560024160374605997822861701251434343297426443928879734623657461899336373892893019909303224699791043560557826869474848849808407921294277377095881685547809766213985867579681286247969326123807256833824968881082959879413668005379220616993782341581061367099182204286814604131633190331452516661417466431741276586781753247029805943367223862432118556122970186322887919739076588100748696457804615114212403969960048207298613974096607577082750287340948267835770537005808733821575720802760449657204000289191107631520217285429786698953064826533798689233403662024913512168155425536598889808146608883025175854458365837472304068255144105029978110700155105652662568550405180652253857372950505523033020963914493726370849254439309822943898931259003215615789701106705615369738281256190540283938026691828491342704784268432564566388301695390915525579954849570857384346659459563626050013011519504818495548174572376207303775070246730771044281089998477201776519657148370959302722194251645802732821352673358276414901008399875490085870015721847480817771184590914595256857921204039149478357748469929751371860476770514448661626629382714921131049347857690516264862069668200684028823602189355998956886603827211606771958394103073203226286605408155570133248045733450299247292526247533043594711336605509146198031731916332867462407692445056532923398561154741813067311660403529395506487241747380481476107170100833237304768504539805886364967100814639648008849730953184972518551225513181933237250994012680398338941205062375763819792644678184444220481719477911802296146091411325629560891788717704702662862616692447378647839509065776580315889149615544023160155960668255828143503332550646302796697451574983302892027935314369685487368691409753190571766425613112243138836666521015062135893181274533545087334204224109278100704016090829305580245059861804345078161076795333438353586564566248795988156201695484944783866420320159984571880422679593167098283012685605486589095404829104183304098090203907897157821976603576631761690036000714750434591515603254470725533671959538237904496903969586648812474051499820509424931943087562533491723162267139805275180910401604439334009872885055492138939754425665778761422288916615319063389132736657361334423308479815544470184770154543795264198039039101991855305504719481664007086797396426281010665624481299520186080720716544884628125192354519539559191449216244114046878625007953155565630377094698953228148049863606674412837435912871931828106007376405564915760522202917608464682549389052386617689228843204955732576574546035135648882061841416137246673650854800905704473275228635911445711697051436675461965580470407483374559137423023464383181893557102413680091420021713461393808191270995626577550925323212824152578548017908245805906071875385941354858807011096824534408227225025930382599055196168868567213276181129707955038316882648138926969967208506129126407316599920529266837322287384551759191608928683968526858385740907660788945870110612623721953880001405648856978456090372387367767428645386336545217466886543613948443800437401155483196590987123682414495200754281381076982724229390224604257408439533620209586237621159388310178131743872764647148521052058860620375606165597151870627314633749982517675192051046224549908867551023062611970164715410045656020727614855981892686259933785060670974695648742883956923832042566337450392889962545560010058668611314977736042024504046344551915401963671502169557478651929688566138662682395615000133597099778349470315801481413990073861276827837405856260357631201626044969782971815716866420122286086953977992690806142926975274342687912931325103002840793938197263735216289948669413970668282045808198485163783826012681707242199824559757107618987299144608690519271399515322751848787469413319101402287704291350135306351161284680341128722443873289641620262304903886667526792405569558337292260197420658431443160540331094493992607268021735061766354066375769754536162163214498589750957145260541758916396499267065183616078143836381088916800332908797781209650914736315860916605204760103912633972172394032224069800664951611018412250322758040388168642879500466074805575034438384241719060539959241872491833730148396624983952130820608663445727083415873823044381438131511671311366799555369996894669021502851827052151596366864629323543096754425340768376411443387392082292209391779603966061980240852642146936004779817825828582628724481495132239233692414252968475493651025547051461786200335659897501649396339617110842129411407082318449007966673479433770033972528080024580409253790694416721860238905353820041206430565277153315230766489268004880748817003496365181339281302322505650942292597523475929577199387365002082052966017625749118814333708918266407272030746368265330925815737630102602245156276926011742686923329428658798606513967477359593216310069037784458505443011505867477391026281328276540192753362360975237734599295651268020695571776035028777956197020139421058345062111767625774250393566602921463316437276755101651783674534716557854757262166016314638026414817786872262870722786435195048075879811366286185391794134275836917046064267403676872065504981050296127305841161625117412357317506283123958996001120614541417533633683467207092551875224091353577116080793594565032960657569797906908706582573715442992823509931776423688638681230662424638267986885553380968405921800432619029284028137833045901991665320165610670167164401390694098724155348611438705911885378716195307218601421364802045648142122885015177336500701692521666775404785278582672950622122919737091609254011406581610797036388110499965294430476627719073283082442441159058760493511006924026653267346046430009561614593879439147024333036585588088780453944941035096935196910596020174223202471895896794182362004513919657939586653844374883870381046829588935676529276099471599648505585370996920444807334990947033035112890980496193249468795664812429743095797378159554901919352420360319708609960447302513227198469081306470191567766872274125343065651330171547920199220447630793613249023469305252072256567334528967072374653990739847652881800392697348381350453414248994144675627657453824982715827747580355575192582273194539243979350226544265723885478031095499022267408271749595631780942950816510565839999009433042485128988514124267717959857142203276787213209831311263829226911891123121645063329551305122908564533911999910184689935609414775419654984263302699787639323706996987575064257027714728456335781929488869613375194505467182832315538513747886314911721439139404949609042474718653785670440306970676365249959387355994914261299213698555124261263411787750545759710465381590683998224019324361700165132898901616176486183513466841498807358394091102511023839602419793028989236937224190369793355311484493550311331874338211672354697021038846569967923835721678824068091519702729723406854050892495593297967098257903425832659545484996631237295892131569135071141626167297738484999458613908702380757314531155962174376959689080962226355485129911823139067443433082094162295109223066706358556729213270808094813341289614373589718508309500948916245757190690328375662540180945103979642958610978785026913276347046479975976511527566966393360955738287958912497664831908306217238619972516902475365835311067089788763654332810518679573019493094926976700709925498331402037312552358188421469989792117702201927224263744896707321974152629577241404307483385257698304825788179817032661495736316859141338813960500807741941498374376785257946510202959282569754793737280663522859221614166498941687269995036949274335833776296025412506304724651278551553765555825708581595917207462475224458834794767704236723471245793585356448022765609556102229927098972102462695933459481004071558428037329833847946056201200472439428327725797375645767507468970034019973813928105503442119129154236972799264843118068026141694320356420537839014703853756425914721646907385861887885827129571939384276660709455242338610903902829186291637980632919348402764950134039145487858888078777644332132704933909433146520525232456565517833612340923008794671339681569322433269277553529403290879737931532924387778783477501087531094757329728157945618597104408182879306853765213181228427875641574456847535990824557821585625622947594172236953452137096006643330657410381849130618987766316491185502876541149700644864807856551549956149975691465961955382677518436551112847918059774897491025337843712031228583695380388972254602443692585386019768214229858802845726714367645926810321584828068017699952678231621783622442757398402276140690278667811698039564655070858807182420215523950361858778651201724253890598386278469133504984173221624552215379143575044478919624286309158684693370421126765472989170532233849185880407438297623379649833220712914794265385954244495180032056951637365506866469586202405507010251160820019524339401843656013670656143096844036270905885187310419988417803327671795815986757274241884917982155568363278410141207307445830479785952923852062506843134347592105584017492284409435116550201991100512057447097792038411650781230224724216888798974628154974588012364180079807039312067118756832134837667079593833440779685641852748419440873070558205254364257615881412310464647070248886993631451665286825357841828683117922904041824680297669119254230334403139403402441833995693249183002912958300351348285477443232679569875156654823862869080571834742096872582505221863986575121865282150509007821896435611712218277192554343606190010168122478787427436511537111883899021107969339099946909837471267148510745808558153706972685314781443031842531928951440238751469537960648587532289378409478709040863651730075789693077029826084626447814286212947458122352437032994207587207526797084107212772600130461968565090992031831376832312537678937150057346826305439510635462271189202230393351562783574157500787221624882575783030641105245323714737652786707173075735827038371879597572878717167196891071539707979035905339207694507260617127262151405928965875542473555073113441854528646199944495056322039036282556498651207942107061424685165099898675425394156786283602602923927803405205478851083564379686015746088402919182557108695361045589135463162664987917071962974339990298002595064346475983630750456969613102175590623857328705013737090163808493503037406089526277000464212620934328118786974598110180240978338069806983925831444931546632024185817772333150531857804358756036824446933592373838835047929731786042403895019108452099444796623988597768173468679455157648441387597538060149994905420080423585632633466525710318065731528415523543315148255997393531095793688681546547910971263784737358899995636281236829334751496588670824531291330104595667302277400747506508651469512713944693428432577451354551127298349706376441760295721606765814183425563744719423439789150682633859402688950178425602934980561775588582436276590675544890410689299614394805918391610005860971546502746947574382935219276012197839015366541141891682363388790403094850184434937291037285234503075923110957292173635377959813756149850824908390457477545811842282881273183905399465620764899119342176506467931282763978112984648260203744671971893606504350323714812175101045940651465089229883150979731710598810966445740838196976578101191059318286808432139816361123342913821656953916107276203888180408803630184861327612655861214861137567019650348014035490224103965205512250211114756142325314186607972260589790124637623768740473604542466549558566569934567699649465092699568686061280567809538791521989416372515218830160290951683791615489168139281751421477862684256438652853105228352862211004064159204012490283447490682602645067231344282563253021414432785797242033378175258724161931811594782098764263022506187409490062848737738852887854875605810277108222683721253735435234869380696413693177001396003920602244405959244260550018593726191152530776796622188076710454963904114708852027474221314844101712073091329017492653719140269735974512535441750069924457732950777511139386219961757218417823376861734847329498001213707555812648252409135271029637916454949253628686622039278400106959010497534464451649806970187702512806251841347383849765379100855087112919374716020500775894326254223528158173098597482204534580363559301804383406030811804765192341522952487063558256817661372104730948541198231402218363025475188387335938948258357473670376254141903152815721278817336001345583933462060933110104068324035698394480006961794179700654556416678084970902463481613741212022725402626593970404466498812959174679979722534485333201320970749319690523288334016209216500141612421337007791941846379999441003068102282763695571491831494898277859322962445198602488445774464758701518887671462261008573542444269371649971073901268097068906762142327950166496399340109599090490588788604454417653770257729767613205666093547558878879812301959498719339380252117599456018023437453307704925726437113045709021843980032395608171099422637825146581360976257673957389802519074958281744939494574467356424942425380646975663836676164819629767751972986799263089131486763398400881439347907978674245878176433483675411509209001171356049792628348941242353269705081949036958414811785128381257503537073157337003753572365378844607040136863001998479997233109692422387697035477745879651237021353047083901659877673935062745386873791457578813906166317760478093014162322490099342086717504946973387738719761543043536398473329154076694745083747961944845552573168699566554238424965439561084060172781612511775683726530320141622400757380057602081474082244653130255279215262161642662984955584602391258294645394199655464827159133768731792609205160633578673009481941333872986570374757321547299088167356171603408270747605455969150328485155199037365267392949962726336073207654318548005630573827858771669954429064093163875976456315924813817550682497030247942711564316644251933212960909089434758761659020149095587225672174771204872174869513355798954192826802281653490529841530043089485405456290628399264512636436708753752673263199196145498091348088163548894962104267324607386201569491079167028107836055140119207251409110889656466198435573668935402773590812055451524682373003754285755137940283208163538966240293285547149130997245893449743847808881057554804832924944526329842018556408186142468305443138836432420421717682291782494102784550780460987499307705490437042429860876362075425196492093695118324612613788352588887583171665048038919739224820185737440657646030299639751754621157018472274574431287488055945115420971683200554900892996881272214398170648919839463041216908454270421693986738768376278290017572251370735025253443443998324979179673679873265172059335341252092485338224203798131419455847329687828114009794084929143143382315125329702841050886444840819194608431003142366484455121642286401044149705795425649896711589718705962579801379457030966537996175902249065515790969864246598882494818692151844240112856023651072688582208019567607685976300716979841238541828190311655917607395931975492143278443122240874949788158675948644361911213125709445412131166799305779012249725331448505276474786039547088213426568922778988504285204890914617224128123820644334204608969733164039418222311399956548364315852523209759833024029382531041889597924665308539197115098648905688280986779423762810539807270864654278757774778607965663851469022778224691996770760059173816547404828892708866015521837122382265490192205904347740666030038066394825289897624232974694903592497624722482919920270968317150296117867771064587435483669476249802578041031108272303014965890783865123371434193093161971569302624634830354970064669955257814870260559581505957009877340704663059704844197999865838743704032106009870273717681381562425269728263211561520780858428411119082249195791825832255213844272615472102694590259416490734528088299014788434794964441041991274083138090821071234830705877678136424919572830176497709026568010599548491575121209599137820381181098057559329772558337437763390686274784485878838535042068757467718649616793500124821911072126202381920672476368043350668157326621755357796293528055395474148428795301404646730177093588824261500459332512587405537837757852096178578958191811748742136886731436369704790403214742197636985858239199719375606270508199771903997912690429395916608668394372048838545161489637793248562863239211531952799208845121801709533241093952215885908884599811613094029019934387354265863778715851498123252191523397148901345723400207828980296650655032704575586293398003529380761649988273043832856016728416026791710636383685281649546449885122158929889531532009022507392710577957532631618425162815295525009119203156973286229059015459115982108084299131748040221166098422768079577701547862905237323021428677515916298130100398516386931527081058878372865079084411053813916505624475339230584633578745811307638828374731002088577342183724690983819130362827800340115866725657869326355971506449475314561508923328422179447040998382798078080282666981846098247937537982436046126104422992895779689264105598808407182280592512461822942945126791394537282194937338330602451964231483758199569309837562922676053281319898931503125584820784595746423985203524246637525434193902152150030232056127042354723901679712866365656444764290726192105043544127163313380717297616654203357841147270912909212032643587160617869209498017163525934015871103626304511784268508114505156424263325668737693993317176142258782614464370493955756764809446922767022936550453795999482668255088912218126166883788921949660286469841927577620071614903332012041080656817945327547938778495425605648741284246773801563477834699831170567780183592195588277180816666978844500542264332297135472634469755357481938386200519136100116599522081656536573580034753642635818661034194132489871346617545722266697645187247305115032048087018896004173952456805571236729790018020715794714264571928666720822122654229963263444725095002385942746388011646868346451645918007249982442351037995715675827854510911563568750487395781818556412754128857724050477304257832840065659576446101260264603263658370560483477948762556937401009592679486311916668790308233920822711614399474869541623967961447812515365480888748091294670406616189148689218540256005863886873553928747182666388509258092825739636629685371231488747237562131377479313499678664044303482035690793249848205941417325583484959449460791352694094118179765733636893476140941405652146410655203619880680692601933378285369354142457351953980006370545497746958798394500799397744220212298859826089739523691437840879691622486203030700117146879515473390318313413301841710104027949547634540084197124326332782348972759726512584635405377007335230411193128216475832084941727648763102443364613478442493606886594423833551061225178289846546142953539510765084014206608605610360289569738156734223674023609639546904026200313268043934464067723187923362115122984535049601056679991047322075973370241269007301074403175230866225949678577674792818514820688246435709834678764242623800927378020139925058451503025916900534648040900836179100773487131085557222857874765015667260403145128363669850171037173012346268385630491898288980723488126284960730058830992577305939185684659211900240610561575483821893802764755297932992595004924207812067265819953724896764557163902092491404220043060843432298528898352064835213023448907881808693999920068519920397659543522562961523765664848895283966981016475084205309891157239262765419629110917464179833724800912664270905568705419356429019216904695458807482666999371550470223276684593165970878422088885115251380306595869607259638593679247476380802800675954391612323044044037124702053204533067971325988098320674724262612470608685664455414729204165577618702656669354666771045258702616190762619452726945640422423315778179735278394979653223480060515874597304394923528707593067501489109660421255332845063501664541794594632068130319766182367500510036780042517422512695190278433683695985294936192821904545552872277386110003776043075825183912522393735348456501357345373034145834941416342391094248772937259544769089621020375559898373494337238199980744799122224185711098599318023341626827559172343159679487036647525335230006937493021078722552477093224612676725480385051380538560166403088145245590375080281076737002824187995856800711851935196869612476427823047453049688199696938584000005033304342260105298808872947987484485771893683003108472286057305397652264760727166490600638610420971027938435689026873457816076616938544709348005950030370425883039103335929329285686618129966424913560966624598580140545384850535612357060300586431234957614957927782423274664480663614398169821801678104464567216522991262604054334699185555033632782458389946155954356519183703847329957776060166486291221582312377719742816635515474305941087214512098960928509014127610283089439453199514628711149586092089291941585574698906698259568892996495401927126694531744876379220001303267088646305336584257328675675501454823680331695756029907653499843004390354843731399335827934530805269916095745382880419030533331819643880039894162620883685932004686114464998950732903503971944426470077697134934996105078758894764173382475607317299345418235276012143681761239685396247215595005059270189649266044471656636382847348087365520708174118292010269392107778634263636170301519209649132026220656565800179927311925973854098186611022357735318107156149969542963109851733973289201638296925909945298750739004034951034458955349002886920065442974631708076602981250961260805927927821223302621618261306752621275924043795120673845671886632922843590156140173002374679861719136094164447414174023383200502584116115451611111175203667050351997524248307415667826299783199360943799900174425165229980432279380330682398478560660643308881263426636274019558862748956520023079981868592617148776979041484542943985414019868618965221427771380381910251989248944840916581306477803664866953418697548843769101734486332195066831061941353397024100125674659667422526835286576162123535193811513974844202720354337764511641252459490936967629016460113707776322693212791943384413235934424212437762335947453747247434737221383261725311855637191995796424145076942499712803492847423077831388323885512728170306552170773604799791227556385159652626057194542331933614261952209355987099655869993678866302278746302355631756454637496660982118526975478733810860787636064130080859236352074340498459005724808963103667620942485172933044292907153945649976102107614051617472838918345330770113167284223667926151813052385887015130371165552134500498035782146492373782361110629216912167217669835750338921909090216203934794387940562247102664619688801403150642247543539049678640922441759031593810757546627377986315768904263711461031111012984575484207004101290847676418430111602170018405280800806596668120768077274324036160810548437426027795088319951180645399479410094744582302796268643251895698726997070042804907875932815969227142142292460835626299841697910067831670913635738378545223930865323868363631839911770694449993380981508867754478836256528731008874843358616851878347923585466241906397254225114214222835471680937579493421304760804307224191779267996444002610911815027712406758349247290453430344476416772779753010374769247344407857685173016593410702615051257512502704769540073193199378295788165028413456734093543788365561240504640144865964238095756778229875642676730391033401197876609044035607869975771338639742049810853724252347630687296139741926280779925488831885503320652291984511034106351077103153414157867211783349382403321962662056166608671095939855675626670429696051207053917908753637242164897006785155541322074469035703127114513777481854710753515149003129334600908149506147361586130868834075431624150436331404609613785638678583583284387702229839295337735127052255713613792175481536534718922958766939682078101166517972346262497451464438405511884922974866080722177579840679260039324905534009990209331192970772028956721128860199789438341405579970814878495620937247958275928016499876516584974075348538625354011363107598516066478407392536040030941245522475595631512511414647093266159392205817582834332942337606449461567063368821249837876060182471794760023770497453920957359734233914438127752499380825196288933722044931144806957165214909133277135029248302306414780190181020360891425148421950993782498334890171732514005992174446568842209318818197041803585811196269589532986267341240714250909218166719446072643798018435229571198559413387066628849371499837823934458994832980993164218786440010197288560401882927025427831501511983913613374211506479968984749505389120485567443021754386939304232370105274408440752604488447181576911163491827266964751436665097176975988167867054356748121381076213387685698651070798285326049397635997193041005554556965981074085378953928667885417196975651396479583927495283303924028335811338619708035836803090181866724079488526530881853399719047103592957107830424758689468452093873340595780911626623309435459739435416074040416139317765739956206654295298604880735537445902514705756710145223114861865041403868801508078396346439728413052878563695119580671701726201089596627227899990961600744311081753238628623869276790241334419231136356354233701847016042781864089910251778380820687061932198282773966955207947152441985007750052930117187040618695401064739998751873894336341220452103589739876867107409317970956562920798806710168870321150492402544263827517737411424983122601748037984909485844690823010460659684755710472576577172343337050251654297199343120108986935502873979558701707088113683339500641633796466998145465856717914928001867210436531984915938966898191015263608007442488011234044451233864447995071330482385230350942689267051697214947838262417385442001803881686759611028899397084039916259675257254010330700136382907015902994778313205536768005973005297492243722867718231918007218958650059198048847188086665215259809808413069798353948405590977098331779671292636327652694703731070112062004440294274123107730768220635590263431174276047105078980610690300582994639218850316517034334485789007247382704407744995359255522098109217008873679082391504608949059139033509236806820725898960833769158734629695579814390503528555872100454183965407570862427108772052437567205803786526331914940993939752608507085818153213598405900232433630005033304997866164911621415226707850903571695066848726382058773827944349342294561267821212026825362850958763552544203833255591833798742231273603964095085818722837887388142592296624833364932340717065083327327867069588476125249072894917328265198713444322371902762742223084808650387415328890247457906272910612962099635771831493877450086438865148592885143601711293389292040301252465180785710186853772861683521000126699497973070747863120933590458814851720558417301280086365909425258908389979354445973181890317173743458262216419063625232433685908249685456506090028553776552249183911701151755540757536875962955282584324643335309622126001372573073205221745263141342621125154220872043140650606852009048474389333118742574121215274673099642901857193092471449135957071031939179018850871116174523611571650608246824900922854938473507029331994252285355756626905096068539546850727928791424749846351239381307409431476777832725201740161018465962584950042779331547211873547014483339225974400366599243801495386402432122992765232390345576946730355967589623491116869815010223166662743218117404940298364115691330574504421312706598272312408958388112950624143367698480888657859282461418075080407618816625543724444097342820834052349147331396417301521269216465266549566491335829147728693909841256757161219139967951938910301861165486926646996487799004394456431346505928039263481744911266113797431576924343696050356680798295306706150484972066891925069406831647876168837701337861889950828242897344938999720385528429677587745802969484487159553286383956330805259759312746441117773251397337759511341561021563767411366354707955912245763437667753341156120082991600471027304858547842276455665939342866862067019840045878253284319771973659643518314158941798051576969833991780836238003408795117779041775132387627291753573887696430186703976853632349126729063323894963227779583739563387132473505715501024928830186063086877212020278055056060392708614001768369900768410981736651652907900426245069327379070408395933950402437634330939202371864821571481877862628154351036690702673557982061526507633438201454908695492172868112190698153910257831446798636870834918280747316778674605725621851436349059298836958364291967320417330588120537334568575664590379299493970115350881103264650789340135639763033698473417759008650980937814743286468601606317737023516391268667350528189711558362913944629742915981448953851903855730904653741889084680407266523358449441974126785726615599814875671473012015839303964921801065731171658907153869420251559871445333034694595931111798616270573725943871909042609481006832151478836334698767777921887974108046054629786297917356625711345045698757934241602478096816046089860011969716328400813913928254425556169400798892703392878192502398371903148062423265369005482067814989453175802387124073559332303303109433969121335155364937648054812961457771720107918867269352476742456811025655041991338377421697500753713612699372720948877334173535448370134448495572134377009302055514781446012648081803266146621357362412623916942954326504613142704707664616323842137143503282130381329195187924308241011698205621527578828890116702731775219672734677281404695679147076975822594588264971314106877839595996470497382237171833076922264432863727885123294612237208907041553889301536419211564576551682548924106848437940497291633365830707726094369518315683414930223873433059146094750800717821006969143787257112562259151347960096246593968561249277430880226202852888780828476035235268089967137794694764772516060512553775779549170454129629456610408437590927038400884767608801614508045568217323527206576604478336542612539516868556628118729631936258288325810193972214857345288660861085860383822115671068937496521990856789846151414660368878217783677381266850469373645243805925329159181956370715730816063585234206803781717005401836664024485498598613095646764168938021883501960747487863829283161349145267143904813203326818877124989086799568187333277705134303140810825468390853406965543059068215345087051326924876246656710474088152505957610390709815545887688579569109891458442419104547076773579858316337731346705138142067445022041804007845187375575857166856070184732297147633676231896901797110534907167735812247350205732091510917282810384934375160373329537378193889739641018130899891881338076323659908952660641492997362026840421673585141905422999819574405803272376263326738599273142469181228877975818490638621758137394088432851191701914008965563221286774944177932246425764813604451195570422210783469100971019619350870764223567228424085687004918756869819041018079508421962177494179392551940544689216418253901115826965309005940255488853122248237689611794376304837441760078226389307951560996989983557253996111597125665129282592501893431886609855717621020938905094222554134434837994490884942353514985170429124806697832098413714641008339495463490137765775650121517068233242144366904556660871749366444107862335720647372511263478650764488834673912325660047655063093612885873052596655196574217720886859335975535367347572356770494795887101252092868016007628444524305337514234916258866528708385699208529784020853801125581324955531632215805880707925802584599830563505960678298993107462962640495985107385004842256947166412015104485944569010110086918935545432858583447685858400354855793124693612952110238560399332705510617288623744746048015602239494149630629200202302027534666047077113381215204481268397697423353327481248916755977722407388712327252118884726180181664151788378963737687077621219715141775530823846842481133383898762187211924275406566961643374628413823279715813532879393178282996114306882140307384754114962252122729059496592149912112125812635231851771578995352188253256730767115590057997902895662105317011042400078569321219562237214101135728828592984196339046539772958455395205350291484921097931022849206708985248806702531038634368492844317608563650968722835754426880896561885104120819403256275005134065394513777527842879686871641045983831561089749046926985667383598964314143092543335506109496472161235932168421559139189786205367963456833901527312436448387211227283796210229741979505239380593474374412590852567238343522004772375556559248384592213580719188959435289946685221252585366883997067894861158387791403769205996982184727110757260464093569472719692040268904517587394873836434723507080316581223086229471790616369827264934986339610252754460735127354168718010761810808728952803771037610954255879243416086608185976592726801100739926218038382044111978442229793521253881592433960704916300934121620813329879929922054725620068305924612427644535459721856489925673668072866814428139028273826092224760213071721419005383748240613170580378551545766226522914916896308997119893157178714692653428612293056894221726958500875876008843979829168592090410086174903053974165555477597218251524600423128479878520411250520197559869261399043169726481451009529813948545627240965404534366152957724302411691841974927461336100887035155531530601537451597475822490579154250923422725169210105333138759288595192048073087712604369766404727352027862880010068198728458545279393982008692292565565112932654046636037641709857924757032747187092400236839562513830117397997515044712528738769917706329313015401187400350333989981307732824236856276304303058834073028190086821487225990571853188693773033022580696189592897248000154689799665276669036773410875637480805508551740428048838703934343230722837338594272721749662215814334688804154144251474199478745869312167795865460999753607475845696096064665471281877210388881683822815704408494082909095505710013318941095426970389154726201655244731954624052213674912724406699169847640525961749934152583422278750486089574387910375944603990965899209439403323945476445720304906387335969642960004161641873693874010093445397345779995115403648685939771400927025162610992534335912093041083525304258685453365996280802985545395025602117031407208394295734387582706180849339785029186712793543336468744677700984128046052016720004582257744433871358237772473820482951171690909569658561615807288945602360512599750252827693948055707777531659156869472987925680767773762654089857829208867657904676227488212093464478679718346799155434217751736715355470298961246789155944078359476566228369007267048894250635187667552056087406279203767424936389386952781747815868602974263748384663737908907691380115655250880790727189604083833058750982826810599931990801664968873139675509006097411817917648827429737123198012378091443917592308443274936426478090042668884396755210161274553940352875380596878976223173461153388277572551601270074222792153552844682017080536758172431855224637999431790030338678232920475072431014435462109391562961733775647711528921708302988814055299239897033457990283965907787136023226448073822745131102418469147522022552828446399924484985165175464569432129102132985027938898821236656752849947777959338724480310898967661834879584522609113872778641038674793012888604026756141155361173355772072555975870430770240717408675050603100728364258035408877283731894846949360603796695019646413299908662528056708510152777899563252819731499700683860915968650020815231923703147102691941049451025590273818513138900300602210523865278092953363529914392524731736868885588878858117650776419883905403667165682006807261895678367493873570179160796265123521274358098766716763685806101931576117556225631955194062118704115132489486431371419091650493476182036389145675122407604849873941339284130338864934074180267840126712960709821448927895094876829184147864376781116773858124964232398648942971172063794747262820075271082057900053976144516451864570077469180462715524367428102897137369648053170071217587387228909603000116781970625013456734157919428799419730741785959518977523904172589880015277081940219422252874533102724020759478749819009411836409754576029873822201646171239841924896347770528124820990906510227943557067920563660873709479901009289243962929631378621324612092493891308533132583941592516980804886803357025002577037045869000538099755691167731237281300873006856504231201818457092249907659240011021883529921515457591909490916001888425806827519981406539613969196507128754801600252529293340833528939729872968256556879717463417221057300177798246533611759163452958547649357295124323252068190741208147352708527667341518165811292788668817759669220942776327899902538035785542225348176149591394450583364144841822005326947241513818150209746842463976187174372579658825976289223125535264040969068806265996197826172344313743569060337611331545062072914134303460895305890337018132701494856455122214357991067781255907614059197595572180417700665653692006815215949311090779376969030965774099428751672888090167912391568651885336889434900864879697216634383373987293197568246550908539528986683186565173689268915929296314558390900874596014886853882868867376441121118071551173251431098052718189973508598254238434093980135111601916231623288327919333437497423560973150292322348024867941360012988251942857710798555408659295022364469912739619818829912102684238711751300905335760639619870611975939317155532297943082833961447028606976928658077236114454414018714468160201858748095620196212231886025738356907810813468899427640325049946886918387353396844962380718163232231930323229253506025288282580545504669110559573303668321808628089542672911653241065731444606773146909294239816075338958143619741539018245334532100675959788192028328728554137657903779029724843053028373839618218753359941000379500206845861447445573377855091733788836091355280565428876600182526345414794859228345688053038525859163149615824479080806209575870450951324169130439294179271032378178013308471185645685504871721938749215944761458725439702338853063354365621082408708955861481072267063935624710572441801801994036139863299504041504842567106586980642191546378356157501983481701201719694135149960442132512850043859699367909790335232745955584227022719500611366780822740465579692898581585476791756014540472787081197925810265623331665959284360851954578178313461459651220747223671250455079392954169492405290973895661723164024660561386345336631633818398241259140229540682403696053038052878081647245942457404514269063123303163419728520006100239219899330105106906085063323052086417476545126998660249042191601838156909404580606468726899053654698623925229224953410199158736646958973985603241030823765878617467512366703756399774556421558558597043769912330996606104782007832801725088308400037973226009916069688490261325967509842098661278182891943561593111882214290324714179227783834411696890523497572731728329072199184235266357411552698964769827542115971830705599321193770777363393878135300439207736844465805985403996317173939618799207953104210122291377364685965798305643812299227453396917806311196087537916308388377287316828291086168046958370915321311998761528529009972497309037046028086239813717065806158867000877080614307710432486041073654726446079175434561004534604778129816195837434797721599805580152657423744838848869020048834527187652068314642331359369060948067008577696585634584932459090992913258345002765295654672506092562529470333762869130529812464412225672677218058954168544612407784236337517248696807894594004198011445172125478351429876563042926393055051020615329883261132972835136751534806398185409505912967473079222916721819870315894191713774487597443968393819404738791318188722994289596794508033377396099348458429107277944670568416728972317109894127988124982233078316963952523534407884700453447745358382655477294154351801780521389629414454744594538166239991659004275204397723319868747656123964293730619516680760429478387620203409699384599039586595511518929971504207150087126582841678200822490786629965906207440582009455410174183542816743896114232009794367742416903704202978243912403265464174081606789239691129066132965145173589935391439469476887397518443196530073286834125265922106775844715851273547076091601362428837707952598501858227465893696903848209636179815983819802981694718569419852892539302415876979140104872327192013768420426470451482699930668794586592088245943526138152550805482735865928867810214108410982526951671226965241392752389466004445663776086994172282704720699659716314233696815212691290560441101345781825283521363073575386866272706089174212676933681407624385632566043896321351146857730127772883068870042164930319238612188329430562870742612106091014228075962076926489450603570936865269585107935676423142485621942215323164395469809031995747734236476959749394024237714211610422869245336555811070755878428291094371752315610361499649489903199824088065202237149585690028816194145404753442295083719230263834181658985244951252568587931792068635094060622665263769157612373627961209037921215009159907427451344229244497091423229658746763211759361997933741691250159422176878148699723863018859441048894819163765640799417816471343327832925094368048199181895548100877175865445143783991512090637593784190546971397778803155072667939049629329716294931205163684410830167377993445389071052193968836960348027814507077041829762304423634138014694253911307529729092928826161480172901311801819022956572873518374840959085109899370248694759523478091700114985570591088898498260678044692023048471651256081407369250208091095307795258491891556320012748981304329653263189321825983168716040955088416473985226307799851966654682369667341370631129385527294219842236596169424444661580232072145302204690294730207113349710741710674178052580532024760859480985342502418007761594625882493352551789791977495420328183832160104493048844000302614314728712381345049950038322829195234096444532351875666785657992890859934069835144157945064011897972652552176590072381505485550537762483420895382914776275773403027621897785672355546748935586680832512791981078948940044194506637057587766839984648482171223999944479481168794943230645656066656376980894270553806992738465407605311611201237767973446271965415738121287140968477597133540792768767364939416514724244432496570438292795995412380435421408953693772395566760397454929969107215014770414068956497149754786228228827980132725117754377960135181282756705010048336272426997248641707910681228952388266792082295040565776871667103593559884098033944993726537027454716773888320033386809961769687844910838411929125573048340724257156112086639389834666065417829323576364567539296987946928905108533590601767031471135172589622684990909905009386183634705857546685601629055226353465556050995017368312698271011040450293828855300037323836622333104475442488115639888245087048755372145940836171257903104251232794698794094856946153197792753837479149267494722528988413383300493681283142683568000396039678999721634190859972256227932329961687705128762713327501772890006614877545569064264831340875284560735676537247986055653265466792510356028994009419689129233244183651640312327821976909522833482138963124260343160551849400252302517081368191520107833283075848636435715775368956040067845781509940060446879558088068386338616228129683277538051652656038219631342901871556380025133359332107179361048998140662520406084102851374721786238511545049858986330818117023924463845152210918788187914132672279116825563464214945854367750370990055888887685235750461159951776562134943610518417605480699829673192835106903296308828416104591308284194398895951502518372122711075031818004754913599406676295185684454377358705879923963895564296881060797959272795893054765907166293599923823763025592000646873305425840051370787103354492174030362372502425348766428615109124881037363609906128805005522022557674235722454476762867720567326995080134994984991492765519371564189387289088926706722507372874801109909946462246593291810696560635630079727927038880371751113101520316757177256375262070803949676459756804805647750533193252719163216804355244736347839301045511847518802998698541452328482629741472448096517779568081051669406110476183451445186338347955434626533009309799506656098077831948947335449668172646300298259486140867442045845430560887419961479369673464119373191433092815629086660522427499626424892204012786718655531493490258103580714355555254696149304057323101221275485132801815311250917412939696057933240217912794967384224832960500316808314354199590438284036967316656332902514863729411801454946750672809845702257547940646917968940837517773684168306021801286637872340320283274938616416056813455624458267048652723543587316541416727320089074687848935867093307665556456195428193549211501534395779802123079470942186778734717178186764685140747770842359686375120298149317195437543415478682765343263069775647742331812308382346854926518051738893522004948369233728111329367357396458870478634451334503071424887592180502108208118758092109304581116317721799832759050178193397725823674796076454666901603424756771740395115479184901472335041568375491065470858973206507806873852325486151216011828748992214002572756707014150091754330747989898815442152239847756524903569732439489262118252725936069119894193892951634789977088216279451317094687205584225523490026481238624045633916959293049294585841581545379723084587772978873950469319029107494108132806468062584919335612582774131268293065176864884242101275739016531973198773489043933627960952940167728830750224502736139330594642903496399352979587925085351560049390334288791886248090505164759275037494491983975232007142122640326120436051349444066938173358356722420052589413367168786655600045735240820825025635841372165314423360027439841707020577490868265401111481268762205559102515250316182766928585766087095891194757498829149896679789498061350731505644456213417221815916994557821194021519213772149629005375146465526065797898570374201945775003130394487150984325718017393351202033815564782388449622872937026416212509777225223104253041215218100024670321324154441761871891106326501129772572242879781092105428109846231385874501156073341237050146981803573047800082402798161037188792157249980725279472602323403712369748629225076835889889590950709505397781590212946932007959741181930392766048539103043027104388258756356915957247010216601048316675423887966846452472761393513037393751355346895167376576761341401693334335983666268883467422379865733170393892986247723327342444072149887822923759721088628965224318130707752694453162321559151453892898731063180478527944895661901647662633700324742844891167320813624630342397355492216165712156973521762429287009837548946198998838480822390639815627204229396685592980297060372894763124522181885178701214070781544696853814296434013082026840558920372182079970465857414187918238911533309779384502616919177685249714080613902069293423339803654152565966703563917551067513148677462166238438460289676327193875209029411814390298567550640057081901210140944014526080658081542961695558230553517201370125258336056848500989511840764159879986998209281985315312451133813991693593438625361461854963826614381005833920831574880064578798755831418254865967633437885399604165240340233621185090026465077214324690722180987298177074597955998274579663936008847771234432991412836125750554742560969983406514439525292680814356118474562252853860769680558142098137093560078852951078430578346583049938905129609471218690874258770344039323494937043102293191785710750014478341805962649885482318453490909933433046105805867637511226508570386915118900125228170754737957605729380519347028848256503348781699127391365161156558959387155824114921939936141550843748654670863402704015366644164840445883288321525543203518530611797363119921657776274770153830397092405892040504856426336827024638016556797355046219271530825276126838162593585100070291206547515469560596501497262708593121998066670613915087766413058347327940276939621679710703471682583372264078765252925302672369132346119305246096163258671919287052292803506158788580747882105453841913528706462759474904359615615220665473822717125787956502386120197570667737529504982095561326152837046253895614672544690460158929943779431719128283736932913824907874725258635960065587201456442406867957359437007348049534501692965557591180823087560870038060679196021867408033727430863398164355710798275408776845354012611053299190354466720343682049015992493067145485866562057854147425124916817663279430836011902338540162145326014765180780802139759309844166129191818474746790788735755392505580334837684638533781892146288189798548906018261140043218027504183532245808028063614280834028421193881898685816043093258123878270563219348274047616039396555560731921373201523974483648098025020264631825421048809594727182258393267772330839904186012861288408731803045671600763964028784503164712919981160248104642871513253178299791392238525593162712209065812349560267369073609935710772552418120342367503671495706123183358568209333037630621638500640146435621393866624776664464059134508746343702778513509810662906489586388386509984025081660629631953551582923405843680787004805330262528021852836280053533533677291488464154119191615651250270118846190984117571511699821830265946802220910083677632396835388260707046964033764232349127685796436016331831392195378469015784710278926505243208573306614001365025363835946856889836637452988375650357314263945374855100613247363834288298819347726506526235968749886063081171604499069050748650768840420316415566381472773430763521295490071164958090827268074695886517381302459038464140224901852134706772343653689291175805908000317675538510956919831971227089216888611383730871862682501643938477993156958509964452495872088712400101617493346445399381030543270283718672843337111999179676849323149411884798041667989635265446914155336263817061703150877176975996451161024401642639099352113717417960908416952746338056763327562079847876915837492221577124526851335831379214146319929767625586376664548235719102544992592224780269766593277982561392740314454934411460693388599921652135233746615032875383879504118722331017851518157526331665848519533881178097911992479878952552264335561187205311153012982127511416075793797507249657531292755210179425680419435228501274196622175947919023810470702105857900736630405034030840122491676728503815027320762305427574050624894738850020971726222983483468641492296189447551044179998139874475428371405074430155138244293032575786473849002684280037360741894586261691633257583051137430413484647769079596316790485342007439099689740088461364068664589042345306595654721261855851678176969510788237368479331568317035125990309883456348725060851981527160784860760226315502022707878312779565521857266241528366607426000834635343494114013437544361130294954046636337537575444987655487889945079625360809261280173053149314823065073807423311905406984933648372025368628038236958409787803206418334347645603804810279072298620338893775998387717255019085643266908283086369292157134433419472649465752173331058634996663755566442555039699272551390903614445989796634731635153226224025290167380604600939184970261179799301291698629729522789736574039175429969520522349775094399416838357424609168559232208413236273426189858903845085013061540369823861386906315769300392266253442499538028200436900800851982296474051463533764660363353665661219410189414491969867195376280663088256004154923842229501096168742769215617052899239106202598565767239735974857067374551312877147965218378047522145267729124666423948896079544896941193870895798101465432390651905392697237292271741853723211499753212043772095152928159135913013770034158475488820559267992192146596040348362243071389276391713319139068131457712077384110951687454100521942176148788497743733378946254959229379813965146804107011363789194955262603961693888887811301118026813636808845927673576281946498510702658396939454636900338964092073667795260506005454174817014046120082493558391123687957989365680305171273443340598385151081176263131103279137350087866209559904808661731129291784932384514293939241636205119749831068521297987574616659238682974452354862888720010742045516351174110820907809148688821118083382405600464532559749115392353784200855114225183038416924159806993826396174923006184557236991707993028536620313056373334220770316423231420195810090296527937965994791462292343380517508671469320547673394149713281300925666219952876776600726559869397821235992858588142358135723741838307182956214455294634558719903461730529048702198268590513620817406130060641611837663550660282786270861200607508262722748317260548273535243324253415116315542645683102697118774755545334570097304763096430813461496158465808913576932258124792912422360088212890260559069036962403634558038328008556393219334243551848247935055000339128360668202938820377538588270881489146863849730707896149352215288217322554212878590007994183312181837361859907620514854192115859698286553490548166613437116684827542590804402789499886584195090458080882033281879661442881157872676087645696030845031981487006061105797530438452877854958170684117715924804632603723194742471282858354117918062415127659916104620704044047768445757457958893861417505381491607642215534973527616913086340028903393636776848754694756015831558119366780160125714405566082755097683346987342450479514054498228001962002291503147957958009392720040502805045975814519680105213673585446737643556090190302655703832764454174230546059944496188450967460695509239681075738744401132456415153394330882228052330865036484438504646005467241421793747107513050544579608654295711997263992606039266674893441828712916130640693285863714178571622453145239301968976597776560031168137154189604628912315138604852185179085552119616858345579635362399177656409709849721703885700519461450099319844549045820706349758609585167086350123211081903595170422373866547794348377961568500778004327296870141924632666154677483651696116312577856553731320615806758389905927227896444419374426056540621567607960425910472886909295237280689883491988979447381377160761544369296751194477429612672281854389933596582488249820798642432334439581110014665672061076132748005601737695197111529841001690968768122230265979178926605992591116451915595055390935229865465874025341215285765471100455904740653431854089497300762730955551879607182898914400185569198032337090904671253431285003221505802112560322810971334127742582611951084581824346411900655161434758827337755046587820017060955504591871474757949978855935420049132938740825888094533506399927538822881904077376909995149758150558170239947558922156430226114026146074918933777800015434585968065340813981965093118874917181391910221551647869309362522319750915896656470048514742777037158253159376624613332034797462584804063235448085128689937900450913626627927118302411395574770536346552435298886306295213970840758389006015025119280056559223578907278524803621207728023946351622809985191122477833490333888363803459486207973866375502159393327613404497045293544418065090270875798788294081781617289895182837732478478486830305258670568795165799871709605658051331626103419378579510773382398498946577885377753366964807115611352721224388347477777133934465802945473046722391728098599119044719288314266025799883944119092938839334594998906223080222620533059339168264878563764930495764174906415644657060821665993454261457262584039580654312262671741094176144564087010802527717912721790639188050738855668996969087361542897864089296252348266417913817899927778629866651288712189954202091124877228871724456794167107235758367132951013837046766607907095975687931070020105242775568940026884998687423299100661644112129806902377295486896163529916751176147666690052589553783734437567171999355610039330343406187697719716780293112966824597937047082431848366239356465825894122226275591959061370328467558082396576439461462372785039666805904759332578414841421424552150711951344257104617530579981933323337713388664397838538280753679456972756229609341698922007185222992469050084880464405450999282016006663834991540344871189733273747712972684235292655245007454537763061614075041638235871000666763821342047543836420631638952081173541910074857844953856626247945304092091129685806601860290000759819182844176842150044243851327373610031090042078259895890032550092292640427204208392116388303919484998009615565460836223325265275669891291560844507170022139094811598488366967065330244140373607859123469029574104317901941440753580074455498272413609578055053578494877548200477673275028293744534782340331131910502318630458015464530214984310558822343484652816534244150650818118667815002463232278309235593895746972797732382707032406709634434917196733522720451316411121010858202773963515038807465812436427555594259914126588692337754753772577814546948170595940497401701171107517619083586311870406765885014005175862453128163639542452278976821610892822012657310275203489807646605333775203549212868833457564257267062668232945403855791083450793558850388915538987824198730217793579434190257573633874711448487794411156040164527107435834030820137660248759774715345991514055243806670709965935652039305296191840044238202035595141022747031021307337409754975942219540187457489730807983621357739488067029947776031735594065385023532476030462897055901294496354095074661298738409636160454147150271826925714765479877468761759237670525783220825098966333630144134523679288459992464286520852869777488290345403285523437104656966257934843777523489464714001500129979310183177499797106115680974094647515898801558233781539925060593601183259109205668654861059050492824057913119881591674740128847277026076402073617295526131521747718566609592285942419900434021942531104173982437328196101033922386197705475580078016576091639318337035960013381289444086985350407500412492290212623649697849919938555528165538754180659273416082806279330368197942882278594079209244746477528135809166576527233435621227299721441934896110475970903629993388912348285002839963505483208960466390880907060864684162999276730753413404133258903627798460980888140990225652407373211478480182558586142899343770761194677452719085688582801583526939968505976840258585038562327070912468324450967636759304695297037743743208501884933276238871590224342619297310003966109597744377889849597761580254208989286974739442712982038764856523567278107172641461494852140243162294522523666811980457574160370104548879207305470601013760755714882755802090154339228753930091575678556923832677475747216251777255844439811303629647561632887178473719433700070052771553964240054233097370729992253624576644564384245384741221371950839232846048569271143181363051350665067935010845611542148975976075821674144202705958020908348382887311042726952891449837612257788081552532904056094926702238455424453001599717873034738404659389756979541905372157133369691676237937040763805578070239241364873125790930304029154118122812492666392831032473185750630124693327257323604732371893985986390256969507709421187093539074796348246543743756380323063112964265430101274571898676722675254601180502370433062913236178868621783946734467676201290973074733495836415397970868110011431346632861827128768536056504673923556991680727695204368149876636314772201057885549111452557236554897479734540651737453303021675595101077168398678083758071566881022560526129214306402957249699488349169312439551165276751284723292472361922060135043780143826018879352466250903569015983031744674108398497735554499837256594333197781090778403121033157339194599241593184641538607072892888655390043602120194458274678246610090726537411276027989657047675613023538142023283331044437785778023367500365444996541147830506209287959106624922570065735253217541124144007450758638819198497128407979364413882234677497780984924530473292961122108024773982979143843470657490754629157055771743072248007485234751107165161199631674702257685332910296891833961112073473225997379002941825179373852149271272000539777638742852143877513693770330643704283654118549200992261298185223122405184192211937109792219427022645796277417421392568289969762878576118883853452714618451302332975885992837076972640268106868791470563168330976619459525673005771283955893080792018261184853770608618819199462474943310997417379304025820904286937121144803378969387411336425084533925257621809959478050072322329999142308843485487611693203429280368348987485913595804959357542945525912790313118981264890428067034058812530038342639046608690031693104741906331279378172018923927238054107925109624449507790455654905054624011341522088865781165286431545515541512439281884962711311045776750829214276434133512806257708873061503105581072116349532999466045194551991233213831415524055935786520615084994475063504073041927640868781472585627315928180299824330423160894872878351183482939112637473608525416571939987000284968991671680931336503052976456180892214759374308290998966110729519404699230739047693284182996908670399958484581186810238495157511137342639409580728962100496687159286112623745552167866852233887675051337658493075719215859822916746566052649755216664973691462138772654760760224481010725993177659840596033397119928861718869526781021399707942409486879107891498571413967034416729485154265243617847308852607918964468639352413732429180241449598149748072450595063365123633091288103523723205522466624427629564481317526141016710090366432395047586271854987370607883290055897967948663271627314173069660079160897413858711481735339296307200996607762960334434049128703954569987518380981801664536296273534440180412150638618413602648184681705824179207952323899697140125865721896106759899848657100066406444122079002283574636114568387345274709586295611947705874368387800511545687398224589310831076382152751935863327802224983085377152783213713820760006750615741599323485086647122332352869166508197819823890756872806268877010804022250260199148087408548965896465494132894333767218977021799518749399197450034797683425102004807738793416247578408516940064323462716331297370041968210437733007487629605209258944350624727248428569842002110689915857711174175135626860069826879459483777006601030411565459225821380093871318184536301445110021357676438422910974157178981071540584881202882855943982345009720274726786175945660975425146067515368958842227208862905381795041349501433960256944121187143838183447954196079499741160413671535729516607512103599077541458891801592446746715283200802884693349234188445886778507324455681596259593302661549945822015867627984697287259702830953244383329097458396863917479913749161693744489618363930172652311726288106081462021359281982346155079262044619955007098334017209232892114673053420480508898923399270529524461156273369720912498242426898654571957639315177237928463965879335722109790275679207234797394233840639694701187650448178352691205548873637198732825194629227168052553816576803713226324267767370069984003254224916276214936494459521466383434443124509913765251537167023960923184243476921105402455112719914758570941403721904840755725344615608436814438371776389670634763155551717936327418152246231167573468287598252517333655757758832521498161934286691972709462530880115889272141401952388555511826147212843056592639237889771972168607727460278511705993966507415248274822274920033142840592120479073357477627306045111582828716213378659404161646408241005476656563193634810138606809164131422414355196847356551236326143809204956159513498642211945849524011885257871458521067938874045396945382136834595108928915401443650238557252515657369587591877984086081933056214166642004290809587265675221370574633593358091350082704333197569183930071664384084208922132640755014046556776182662095843909660370569437015820510368756253425301301504564165653347429422381909524294736002142884870461439074871572510821596801208364066629273097159330787957115515617657322721297995518288546699507949613538670321258208044625056012957453721436704653614865940577454523915614998431444768957434690597891830550383671502651262940214663314053854091780403735656895960425993394697712923584974949009348651766836145284251810874234493128557490662368804656518580797957114474563178997479877094546361980788724735778327063372340206741952628362687572904998636417315814068139068827222645866242024820585438234814504711372432263726544335853911688376661072020710012938124633142919018238785716860718170097020086372026358690155208435004186635035234693779684687904128840583159976900936693800628964706687854146768389123689300402303226429954707608129938713739368913997840369076325754646423464424880873875174866845506644972868817690233173868571770057446131731877780975798014633841974527856155874571295155380794610158693663766143908378480182961335274571933336734923413126266856240038140345873963105230753528845355145922519084516519130669570922850871753412447418295728163563372555008155089070225509093321413722418837353694438272600968171354006066474329904828461259499382400368100233262497499179962324747415551329602842678601759905530743576578744699803378427833289942332699373012795859193668308086155612823714192379081641833524672784366582542862440033288276787898854613239075393762966598173019749295442613734902316803617578426411863760950910651690747060666484941240754613380791815446268947669721801513973386040167824476214754436778097782917451676696795739021150524512427473976826920669049543617313486294518340565760928150238054975068825573205006807278917243404183073226268187675265818605495350978364380422064388735788979009530941689323483786794478308010394154018752814735980265005707471015401694601527212010885387178777847609357424843461206665561163940188636302027952118338894284008162537460247157802031331568757799985555570415556977723710038860874593942377494379192507594878567488363015599377729013639260579813530090169625473809312143259093337886800811104961364900424812639304600284788694964184960263954834905706075270206594857464483877063081498109188782536561131242580641558168720410860766155756135649049926425937474888060688759624141396393517711423677810890313190343165878392198409502918675047778596970655593842743464350080948996935793715150420519941669726174609064629035165691205556157075844519092780913020135229247338916385768030389661910069111026616167850417481277899729477083316420672134553698110578135970485502695193221779921611803888567682257894971637745972495891821781464395447509035111358034550387260745202709793667668034938582132918114746330694896778644698318075405474266839108613061106488879286969131638663242488158106655277014203815821367544044215746445667427075958697120236349777856761346726209341858900929996923189584326624357032001323491652080270967345266473294284676638739279779173881376311173940739140198614482425227148178155321083706653735234443991443432191987693921761380645696165412968386482198311019245398287489598561604482336287475823396459543815546870193385506375191897473657420063626133002066227441204462289805935589182030832639802843773219377359837808255156248267225490267215695051990880685158960791172094205998669377209612068079910576221329303384966873432714176200953073615216409274069531147091355044062936088549993925240013302254627525491131933713326274421737209035668083392442422910993326409259020450693930142527593933231143346676777374047600361189271491734964437491926696931895090660505948163584339056685575112147151336877449978348641176207172832663466830529978554046704982808501380787649030990699814236035302320301259647883566120209438768288402849812733893666761821048577791634737806169524374922736421198171747237692257341545112303633544965435233656075790005051750603865688737527985063380431335649035114214605196887785907100335123617053229450194038563040155193673105329255124612579448641262293892909506460301512229734164542426958332053119151938123574439411869129686902393192723059169751449587327090067559557117738494672262291777148157490382530032902227344211542593506139471092844052534307275238282805453478200415819526540696122169262910633829239253070614513193275389408827654295480003027940756225424540010324837901014323396771523294065889596799859921246456292656523486008843904102353158832124196535187351538034723047904055100878816003426208042725809241916916466104093504342723888958886103339496691805460748305891171856571825498581900021788774300489348781794833660765902377226331606976320603417936833156927873533551211070018647850192281055681637634221691499593077181971694379234370742253987881630639023356844601538622637773392595681338781790450177111874229062410403850279599279475134492076039558112118586705069204335016781280266803635323720489315238137334546649066399486242119807047856333956993452023478650395452598521992030755278111306054103923104694182068293039687440061183115922099173254327372002578162797788414544607293299851330650623050445892551502102691002387495219149716982441931761960750799185949174357107649677913473414412341325458542339817086852589011327652636792014456796613411098080906990652897387924596734199179897602797394954792955112917121815751726130368601807396321620365345421377800154840159717705078655851005255309064558734516963016969498354323833116181915201519132233710361649399249582221403287795860297897333444880280385712294924354793726453672341092477949487696036970978503725967664906938298819361849705587174879644207538008080021777059768523025706588727348342108945775904247810453637661967378956500377622632121112312111915838887544196118522817109029083184846239049159141188137991997290176321928674022737930031893095723076826163119861778569892637459336566624843771574993498711539752604111494134188541408474177934665470233695298540725413467486427812088476929502603786298502505222709571231222467106556053934051560091135506942025448200354239496027292530914577308361711883138606293075023406504291806216251524060879798732775131523613749887690198505982004062490464411050644898125814990622736064493781710486403357853704636841569037541484094426850399168077504511335888955558280483552943157261125589252751335716839599538876730369535712267358347394020459310975106763331535538419130999751146887622460904027009781149597399498097365504449749681137860114774957799900236880259162110852086638787121142751069904706038447084861283492165705889171581530155854358785195438565521789910886647862715077361429887195684094546822056175444393544439346864528574633018618102966374104975682499813219874090965805794542360151261636107351588072552577347398063902325285063967237556306787651457257362837454354781563189686956770664530800969956194746968780852327244368060972787577170540908124522188578513046952593457394246828189614060718863063345204356773508574358694620227999877178986784245953525621736448967886591254472439090068721289105859987136118982176480533182428172534286954958270606746163667780868717795457252927343404350315564804572317893650435931157677940533040514772422606662775948197314906116517138822592145202800121449456153994758361608535434034927286536777838099360657287401392829594959367881455242876761814490736357850622400345747868138816045362985201013571183060223711734720848868918995826908648182277389425116690864232164019089138079376458506507505916695385247582093011279879514446378715402346701016142941874741581643812175062823020503449058981259315450024873149482041726104589326886139545281599043711612970124793991235771485394830997828258176486299215819906074909667609500507715146614818031351657589422443511527271471027899801569232747884904771327831306204623189032675032420163137887628338138987171228957147397898724152157190004385995469619519241040814223327846861157172803368165639960370474965545136086479791139063173706160791890828154133572848110690438986145334366943498755541426094039074909891359822338370055974530864696826625158589227076638103312251533819642259820960094642226726509591054602273373445887663728856599278648174365802097755336980530225645926290221489314518667175113932481469991993366614778089046358134319052326623838267359057278575094672773458861899778399423296175317512421056382114961185490180308928117367362022147155623983930128707264759452620819845722814821860516398995265202759279091481414817891943192551316605496164489401609735866067537918185804311350891101656506807554039083107507502335527077590263742500489247063477685287256453755246752527408036842475997933355306777678144194916632438596560273621221891228550994375488086200330320129692527302912030644931410129566126271027045691027424983950121901399572810526356646293523729503439168339572455888054698012231694314425715223953204592133198672785927629648270628825606265389032630840931233056857375756459445816444734587056875036396051260137861585851625142586881951674709983431689527058334318228611552728957002855663646827922538957507138234341061594797166469251503645238802705908716690825141408842950189286665003962428814751039443757775531257372165324481075580529095782244776387701941301383811127376331341171766580869640857896400959714902078154661705267442475780165097246740354191154772558634062438367733157843695872663479951436035393012003749799438743962198777948523142779267007493349553620529652213320238470130614593160858039708334702287179041031005752141428016533825803894746286334656434227130101972147005244592615299275267252342965544735663849353544509662535891374482355459284061785667211359243920507633147654291434635565203323800705289583434169019423020655962234419087768165197562471613160628893492646479124082881211443798361574060364480620464987735185141974534230642599906318952817439404374688000856985409678980502570014854242102496093779135052888705490034308279592097185995880420548564826218322739789119665633467679724281456832568116306898782393549891623107675319589953663272498635992234078227931021286338786219614294903325191292393675517581492132602112066589377667428738025157880884711682106027777469032504477007658269721110334467804949077419021952062036490004269056082032369386345289976685275975671324574370879787389521028715734801475062785401144151318316804240574697929966816217023660954104459491432128247640967803039067274799542831944473915392035509159561677294948541707498071292059978817171607283243755203747037157276553342292288977399723994671023820663316695697528563435220783486525566545735658817045972033110847054295653496986556671890739906543248764455858154441660249467513166766873346643661702717634686455928694069625930373632887321453840311954124354688527697213489391105118457148595853410149798979683024189857142342489574427912108442405742423891797890773463726176288499064165864632944075633608124100680481253426559849007066820517883180425754303686392001530944502576587705007934020222695133486299311785564918341484854059538910487854093908884897793778864161785650923399756300513880865785113867228673404244509471695098295307382264516925581200351975381350853899600160616708340711963702915835391283818329966214087459012724325988404739277131021687732476634913846069403300909546783075448763160369723382197802445770398518120257907689689607236570240887810899833018857683732159656881628874136747769116603953008608078904769655597836446963778455365330952571705012370447095891455319057434562676345192555504678898250115165178357920634822774234144905199770148413187336186560588181385270976966890972454326834115829201607938880015304169499315493173481173978536632397948839872767493725580245492965979827206699005678814257521975197784923509520318060330694592799279613210370174437743504070732241458497845791627684981831008023610030092618480954362501213017490705459444744620744975682201540761911865126176087042685722270496696011996815751934406779413286879732225427178208175600932845808513761198402987046388075662336299997817204952561860669958204101936947762747407470865646205495004386588538157439911897568546094153508598920256837761242685973477349544522487492829875243264491342647485224582467464937413485119632920755380155262991005880830070114760614327772526516230827528474731429809813054782540757866172656416032934167289990858639777111848482942143174843235223545359740960190154802988338295004471181445789099778552060496418437459622746892559031995984700997870016031126716690588656577234670043399048316581399488358455629151122374592482915894078563737407579542078729552743685428925400012603415034255261901384682367617337827128302046491284044212003236098270379967769485176553519236415184085330084133264626008174780841531492632914266811195518087518663422222045494668605076308831898101035497154829145288770499464319081040440283712195264053407198262018934027253514634567099266539204571643212553232162543636760131042805277314012231309789380053201914535989500745160270425084151730133897835676060257666139943730569346952469750967513938069021530741162088264703075488494089081249289723315698912150712209462481937241979117515539085596640705753088134735719029822220690604427085525822505004824515563027750070558139403986495322338278732083306735856084007912123682673291089720269321011062221061881883215006499133481900966273891721710468682813442688976774616779859949658207341963036181207296657983723711677364398358615289193317916449440402405394789242746007032022965464599222726870331330194663854972285172481742563344917935260482239383353444784441763744314393070026119181517984578869566167525934823897156005187502219857449241929208755879485774994000652047722843767319363634520558637484461260149150108532801208178319501575711548655026988210331151028881176474292933373355933815158781178554068258911213327560937708269177266866726441598835234259120437805586135064808377843252036473404474680566628642935654180989609783054272664366474496293969506893911045141251905009519098431926686370950252042554793901385270882188086574264427391351867388049600121412717499737985520840281722057771251149266220601577850109600354035965314268511662522516361602878049410878661525902994503781095591917109989065633787440632182808940609337803304890952962641548605173115607460093630824449791137045042399244611730680889116370262973470579363004679174889676004671289551116415414340077975631658346566306406200421798294597419876509783681357807328915181274644114922777412237921665326409029295242278463770645704293610214749980376440817026570585604624084047796551044247293436871974949079250694774629777055924679950392665254659504056967838232247405252015657904851273331231094588185379634159502847222994915738580557477533306917650848082837497025067644017366122130816987644708003780114802339506261804288747962146528527507546429031133882187286674410724805516298199152929852627781834812048398247525094687597479439742458321543244394832146549080616870457468117783805792041140966149853126686293714216710633482417810622497267496447551790133427257774999712576186700954879717097388788298441719868183891220793425872355511289222238874669217763940694890025234203358893960308430449230348773719554072474102575211901979542529971490902921518683948674110666094961960135221405395622717972477858172363932740677984102018926554545243561480354661270113677315435603632381629635069023302269329980189464921926347856706622850518036022985652461514924138177715437667086760144608120501082351177396754053887663924288417177041430939524225569799444369284205053141096517260167225823855369800731828894969262437161663749471054071503098695764712120101661907409083387467141303110050131990160511864199905339570159173221013239626024592919084514186925782341646715178275649710435528671833937369583171374453249054364085818107993249937271063911153237453008961634810081857213111513002428328585347180795092985158845421052729384022289564515463486593218753196006898550467030891467208149275154602822814316705465075227062172535588137855369081985556809023963231251324009847045910842488952248321837399119131617230564378772658066225306965601888278645759633831664271084177975122053416090175990190338793364020701934333210753548048821031175726929090872027444822871734179479253555219611392792530232512864867264719650934293563728568677631740075997298041485206081407647422668292565688930150325985573307926149835251641211706352968822681831339692062905806302783561149335700241873201051273740215767158673610573929952307463667986342623726476536721714332469961003948669910414549824892309307785168473666135620629742955689306298045013840185016294889537583775357044396633432695675020880902876651676937189308411474290745351483923922027597700050713168306038161923132729662918279149516853683932238197551748288678870287489703793903170743115364848490668848974045486444905655158051048072043753574301061476117201471849297359674592206817807457653975933007999333147032865242106298665093286898376632055449237920510404788462915072425525012128746198419009455860442691475754133129552247353230977972227897107740264305852339657670019592232847745745492669595095662007315984123444430069587668029561217149517032321834318247304579203518310463352001328130500016664469111655426763324267169892982420398054226936605364454503884275806111934791050929501821091361347141353587212567741895188212745478000185543871843849818904195341029184391402821380614433268648710530083610995930624752254283613602222480717825729521403355723080743699038489708869665408436895430759021692372058524357878614633133755531259680704933276137692720862282224127422942853129446090351690413316886076010095514514957278014752158652337824944623636477828818577421613107186345805493918447567011462789401683499420372809703842745729104451241012767043704238320578846955521466600901968014393962682666076643042438018187019712245451357657638763643287427540407437542355868007615307068988748046015518338412446805296714259350303570306833102074188012341803989473839690001697979206248274325200995750742737041157259828354123382594773032963940664300324603005744064380030505469954359209945015608206180396447770645871953422070098555247725188252062206898103867243527890322015846338111824927981152594347465176201217860546954914625438673424284218402332105885322345493621809642340318647109399881575671911813065947700180992349629656086672314596070452336821913760868783365953995121349875822943808573131236804292224973743379463074942983123065195740602214955971588097154401232755926554775262477504668893817575782043588986174388854058760485827557709824163126526900714496266605188917754652153616800232586377253709349345853087945984696326402954340951722540649768991609692433283656809681877616577034918437972563399706737832774026884745056436180969185589437488425209187279095604496384816130820965022716442881002824793452911439562022381313899210998656851654483323393130310390994440513866024659024332997678150204860552023489516181812427078410739248398628297751583433626278091235808885710525649423415370596329837168406841157037878088003358340588427437140128349332025419717179883956356498632737196910332508902602802113713140606138544299772535333881968337153568838703871448189217986513775302134009313066172684781147863351537727577343039761541758226065990898596005970962732262494963000188776082447501229378854069419120426528710046521305552627094824195024033955683942067554208911724012094231266764464214538361387821636919248268688382170381806952126671481310784379565187847710256228756525204178461223935368632690578990257765408447271176304945484858294934625167275284012373980790158563145924088547935279737868312401107047075244374145211326522957332871177496837445478496593685771878581883620033077076672234594792954562634135651646013787849213082026443217501114626208967925331115871295502676244522335514434921211450024263310543182483224176467854898264558663486349015857542544403563797766661498134444469525119406088550419767337398402100402131567568485872457972798488295862790037230951611633451997469719820335939997069502259759442966439490467404136369260314434937473493573165754271298939384517745042431125674337835954380124915319449085456101571055422566744400943605140460024128957674716004248234547162463395790590376255497593093796207206465627086406713053520304773998763699555048934353082319399284746767599890890854835386004976883775475713137877013727651588510070587230142807764814346723465340734120949317290364340571257957805291325871273897652016801560269520907345139873853287128172339017237357210125096332700094696848690511543757517850833211628167002062033752707692506519172197764111518955013111203337175531878215935721230253350145690913744543040983934423712493622738164556388040690425258583558437942154116115488170616562347824438147054478654121985597510425947592721481427711433868501544074126401736859660986905521658682504354128602395163772492294285470334868723505487036461196871186204289836521906985262511699575196775503567284817741279257539077667958060564323384408417955456970266977258378461548199782796181816064451606276113721625049690754649246363441824605702020386977030182121740457480351926435834126136335036887249237058951093416290994672540255621778992720372971809000810454255434714303649941684068417579601167273818490450593698536453007172933238639829022719122140266264384124934135512991452154280712424962017882679127944069745518364797205882393452299256048567849578847235722478991550220816709641064531662524860593629804721548333332745496648060364784557162385210035026897450089013107881205752846035748649990681098333340231520426914587901554640527092837341300517883819815976444788170505009966077064610629073231418277009661681206543743310553279903722554905226126307675380695831569723870616387479627099013559692936332125048727416888750377293840095095954932970650179614103931254128923805996355359927559186567882878726783632634859423924580473732969905030149528661198738180595620760095478110906107077974377738338904223201914596773330079111309983679489790543923445041191646746953872894914439419563315138605834667445666713737410655008080851016137517516259663648319432625466902203837439687484826674655471561760775276804558424236102926798926657105642935273799583023238192541825171738528212647813001775566402610423660764900281853615527268097316867250449990747962501199555858918309426153375095187693764130125109328936172899535004985066987654187551164953659371599785385927977899110897797704130824366686871325813792272901134027377640401374879134549786249655612748299175761841712661679043091488531969675167661675256285071092539620144356985133527222309933266014958869082999358823904878852235808955459299223030269600931831394550277178023926173671182006125808439612069436805290874185902555113017264867201739657731540790771573327914557526374809342710274867880480665987855383557468426356918398031765835586545079938519967298042905361898688549633041425167310313447751338530768417409812217473215865765179578211863316991432962353897747540061937267046900974666595620198432399818940574555827152514650420706866381552266303180989682087274461278617672173607964189395392404907448064766994127570795390039822347778269746254191966873274861040572032290844390177206273583276116532176251848686256500851312484361411422220611069149822784687330380272104926684994712606553571649991341005649553426898282652731093539656006015627722756358842379597190737260353853698286243799869213210972900010612677579354222142522251393318181987462830807045062891198832877869596917921864608264520654196010416125789793029410056725238093686021812265136253201580454369371181781053610161896824060878482133897664095542335540077565047425623535472777506855331346303260182419050456022639177498526132935970183035107573309494005308320639586615140933187368678112625570245456367351859578976388769733261708961036272751993819273241438790196792634420706195159473596125862183232823419638143244592484963084852970327209868340609921974876855721840452392099310889579081582772909664896878887201608244334035947765807702560154297161669209400344857182286532195633838311070971369640616012310680480555911224895465944835234841484151910150794225200004624050385442796592190812931876581562137649203800370622042817027955309944022537692371350236404533686215583808508935811928441012779317589563613174300544698245163214120818297819878332590288545683684863768469106736158534316792586083369056496599948406210413427472605092026229892998414195546442860331572127972856373838988720676726736921611934983448016569921299163925006858006589716723556141597390685241585297539922213179735483797178201321383958820331331654524262048658668266501502783514260602437823801478068946794272138846966796803025545972359462445018420407560421606313406886607505125944261655335326304731426678816706697346267145788060802107827066421560951309323539311669053943247968766311306275071759558353034463921353553937252735314745319950133436900200904150321306494268078800300195922125807500494835752739117838710491047749796082874032406718629647788228138028318486267837107418901253297117495216554609028327210743177243364022453127868909627016841830714018936978157036113770012289491356790558418121239289854979884646570479758865610213076711357879176014751803009574727167056059607424867700035997677866223145736891614171605084052841290168802255219036589210269287332466390380311474094530462984983305026513282816946514236703617963505570666838637994918369361185834280578159269409001176801548184282399231675248861791636907720880072935057724804214991062588062155950004026647999611934455156938662781774335398676824744477990836752710431403169386474775183094024846477408180618922359469250950077576540011437016351754975908787846791880697818242853114774577896456979570057173216666424166721879600702277711749431003210735039878933685081820551732859962807671050856345743628877322549564494006700153006471146838762787201873177627083030246955914369445775898411118472984862319593944262001712605887689481721019442663413302575872682570365215430352590161399044458328154486658907478693742187437244698967342375832101259644407835270847264763387115406196044474201100859368978257519798519168266283952765006448531543482108153214824459143605472905612916676275415276613577392993298988495012908425325700738697337316055241143661024694249947433370737820059526013635210075650211519045916376346183780227414561345862107801396092863523519411257251798436555781734141121101914371013898761853805951155191733466618968360922484923289250025614903636211478487816576910916345530936751388597117096357940464158857840023274117853535317321417545156100509657678990470182502774857359268556332691672035534786507870233481868418070687611504893120296635217040649656075382498076975260394126388046821945963816544925990602322231212318759279641385140775424900297190577838663366596551093350873105910885070435698948177167351324905611275389745670289874779283561657294024500648812557163845153186484193128331877262770239861320232976823804085067919809919398177242919567991411330976303481374716215334838043196110656504367892617314998180249682433636115974573603831552436758509799355803809570689067975482340469944495566310814775769865142291234679964504140957703684280612845497663100075543883540044438801504399366156706196273048863897074220164284548755744747134527806579992224254681171577913433243196487397235087095540895805831945040552774028323846599815527856173448242335521728431274914921726703123108702949071206809348991368939066026255333876328278342480072081278527682533600404418877067179447723376810682244191499245852978965473434226900319983581696658174628444332922806224697044205463120495311662789266496227007764792035481118194385231926614759939114148828015266902261234436466415325727419803045610837973516812045496832085404463388738893334423325189188690374822738878927480793835611136652941636545268587537755511919516506469767798602069514128133491803903723225127588598300433112942382651499304202870628605037248983906694627485249735447143964023092408029115364855282338125183675397831272253176244882692533194396418502752248133935439961502062019455529310489675205808938993937583085050473591726941334923349193901814393359294349971963964928438322639278719635470459698978629201709966927912089715001191904512357529798231116564259934986706975624085627478821366029001238700228152164132389307046321268699197773303559602881843606005242599898341227348331053671182814181776754118109500589083059983503909580010017876175256424406886092189219837346914117710803719416622043544009572737508143208227968358942383334200167350305756003511566709991045283015125448424538184786522552954937490027719398994313431860571521520335164770761256362946601863519732509556276113925972157149272992804815542569579896668550487543513463601997484888071811423724400690978692367965461218298090281857498200894432495379661074919470848346468884177988967074645412780447705751706323362891241830182954525669274052067994689342885703906882594482244776595488860606686661398827837975168385761584146436722660710550526631064058048548106668184313189650247837213045352532331178499443184692656604029106468123395138305336044105106352334036786308177320626847692634397992673153143486269788645285996527739074207848648731197317376366747692814795586080239740309033609609622256731314682623784080766972544029418029574017960838603821756072952811218176798191885957794996388532368472473728964929747612404208173968253443589192685207479686508410811056931502139616357407956402626232433152232908396210770977840979823864056721489813581387169778046220718917435790657818340322014786938610077664201833758804288028631846416038194283250449710515870635818573281396134737749639989139181902539805079006877037945605901978591068652944601900987217483133457433302717958857958560872945824577097049759491717314163680981009683501894889026338387439281603044589617380204947059393065404237567421825584166809705467665685022554793348168316955114526431589171211399354580228969595419640912161917174196438815211211441329256823810639766921511649302813054537704615926761467144120442372199282015904918202570957279249453597489172098979322081750912284169547672027078630209828908757788173716977204890635357576552039002387666243358684220531880099616444447832750339743386052279400938381735505788501650198466937400573483520902571033077408670613591759218870132395059525776968662680794974142673347344615186422085534844664363805990718674491195472539684804815185162997105977558528519057144701020828115728687225828170368443715159742281421887384429214159101670745645254785076946975718504072234633004609090142748613332075066730466035744636510704953722565197309429171142462405629147521446765397761000442289777496009315588674109584965056718400625642706861187131962470042594231915556989919956896721245957312724469239164241170738906848994122033968458163885669531605077647868675497088731606135427939882875427255837244418204586306593988969522784187030343162490481403710069050129996628987984623153582889276295077188400032675059437759689818133633730122380618956748614771081758137639725953975045689420140852013206261147786025557028177229206954360650143447962465852815279155504837827211682137141586964773592259568998595296988427894604316564516591501764923421589984315025961724654852089572931707950862308542831456409005006889773265850391784896256292009907709025969215663371061317151248867829347245594860233231795616707289621239871426647240252238084072981410341421047362175504451678118792708600736577676062905694932209418093893742397156526516511680535305302762045604363556080048163580344509587605842481599296884653252192406196032208622523161211181577323027255177196537715672258396789893388549274693022810636207960321003080579070792217784456399913723888520246963086976197100104325076726148986550681359260597684107322143743009571499591164864195669382984911615591751916735664637946670848582348486820561698990928314654934441321297158162676381332993434869740480111951742767925030906480423730325772484055076229156892812046572248357477706531486537935404943946039166410631288767803382664633647327115973726950699837940292031415844018919042011271906983883964493139570176863854946486588792081384432778259886462219433004868351983233441611693999773941570736735306391995585162547934988602778841402128876358085900103677188371291112203692077748637745537634171436449710720877264989199980469977500401369347105212758778222472000522999550967757919868784921559477797977293338208021955095671531715135062870479138936202566025833412899402117211286712593018887752774800081378859078191654341437817742643755153956339905467487064258676348860700259140820785375802009024813575288151769197067986005397874795465157676154007791455714524915720068745031746325512133450632522021873786117912007024004665669766718045904274477485411042364708310236770675557194755074985512380694266160506319779737576641755971169814260890359888966225208185826402659087451364394725500055343863396385006241755440114558561098770417721705403257599648385557199236424665318585425587265814434834745552162753893481606673985693604125986856032902794958782148395760615164769638338735627040549431344449831839772506742391444308322345106791155020111417202825608211586585607492643340307174836130008649176938918418666403921386592378023698378671754603583719930827078804918080234067499275282171439190390895675551633537832007283550418118654533764677636651453463602517125478662689815535311443467036644489297236846119407038494980828046750909614601839863765511839736407523409661827689048961606530145855598523566507094903909557863277656428745911585250152056957701996448114311837555957979511624822584088968400454342208967946515823020639765344577189281195524020466346356667591437519289894133144100359152194015440701330841763947758038596899162488004378819850144949478870900938486252277747610514961506051410152754709336500031439351146557343177773090497690301929038306528922710338217877022561206328470916588931897662100752561850701383423542393160496304076771339127000754250714679608351311372268064541260172844666779226217999927853407357502853358115986930630750819199251187328198912837158409447074922848697507375388801669335310896451602168957352680624376740975818482530983668484132085402150351839745177807263012593401993316016872704082273776653008610387147224763225269396279169483586927147127726025864022841627395402279199809054614980269374227012950411878294411514924532419823406956768126414574965364064862059235179535487310791374375949027677013190865224772485438770379761874652824449799425879651886430017449606737018010999740519191154406044488645620223482963321077911552635258410437509286665033713685745853310065675358740547676296919670938377015506400309781088727128719748125103872951434896534303343449878479093181281663691335836459497590327872527314671062538322278162854468959830283392880029929247062109041899249833555274999026517748645933958708828609668041509102015891039476560018201728858448681691690279033174858915991134626374647127425156532805863055580406005553619576402584875277359065492970658675442004698702107644156238293188778665468279006513216773640677757180028171764304023309144725590229766844206730595247477284780572840822820936036002379238059035579608283244280071445256382645925482193741582065522767591699751441592755923654195451586728041875893306419237778327789829993081258659042483651946505038466282737211819562514811367577098144878994092315123300294628777236588606503237464500921007573794608210689247554673566642268789961865429821234247456997301060875294406576571326312656440793251040108012743544136132543849473481638926359404937040375123692377253064693511745360446981365096292393050961636648261492853055706697515626134655831486255962244295295608878239062346953206758570043035630704841036856293909531492434861764554261497963065462733174109563417458206534847071180695021182753255299314692101785438740848665457761580553618291167019142768994791046496067313381448104554133458094598110007892601605793008136089154844140637095706458444305730645372744733918516313608315709295798148091952232953255113576238426293064800915608075969172828783775877544338967385027479945241321027722421973858404337472653876486213393772433363915574120753785627421494932203257570132972694625207015199278775009510186470977888264875638452283957226378212857144455043299110050800482396875902233170754052990596529393072564961703233029646162243980309716196194789026232130429227099437756192342927603964056152179227479054295913397714765308253337905387720973118667833091923612025163531999283161193469688511736364918150271063357428710245336069847385117732591141501771155573708203240388575434367872240233947397875876046514568921020503459742806233461868951091638538233714053520935366186656401711578395230834336977847715010310247719121159282263447778705805890844319267252443073658555609426218734402912874424323402941908942885953556158005675009098007421977498993011786426246693115265434449096535581166583424962184622176394206189175387170306037289469901590720633721594841896636552415035683386535270930732430336419873465615875001789069265373990595451739428150921047297728869415786250657349779199424899027756362037615574625609676135250788203568543233301937875255008641855648600440378497187761872868699971716166711252380293718929495101527311624129298133397174853550034438728691749280483893487439529669436607837795276217931311853188071901757568769111461164083219904470700386819127577048486784440863933356863658372442255968076229439451523381131136471730748957370243243833619542077308326718519615125925171893287860429396924909391104745927428454833989336405551258805874872346631078750352581847753017676479450218823895655217439700745078483207402088287017222969239476190168141802350732625868069884131288757352278604776457010544517069500712890400432629823999869329955181782469784830982167701840500664203797809321086003273890980626528352905630548862490697307219701927810701549270300853299039657776687327176210455110726194552148695567820940507701281239206984468673671050947048205742443038324790044614089259905926470993080163170141494723514219747984898471769099106449107220558789542467854357795789935673072230342920964314610178708113469988863601073256083996603975030930551483115719736002643596997568549151566638255164862256959974498532529630449853211294389478267106072636447858503222978567154515978426342587523507589376767829566192480379711745517972575681603211635620978265764648321408835872828174838485806879463613627888848941393907620108647997551199225577266603240833339783371621749315878977160404235052054550164597059212358325953565531012946796120411706767631903124254615341962954325306153807605192599558305320637873916264213837143867714681103774956048022057910468613734621430714578298607581196471292282849731944544230077332746453561012389360189565941716754140179378886704630620876152002515113374659523439656470940674904402110643650137598277175948631298269512185635874949795662282310783485169092538232156282199067367282672891008680040264810019686085158050923065143298565426438425848407920170639093891154043569480960145628538966051288105874138254959889713959694909228780467463289151890735028155085989763518539033389305471961842845930909099693083541224159858484677333600051051810197155287838718339913082617944451823865637347878492087197060885023679146896041069442601798765862156299277519074161596816441088470925639012581396761020126839527871258055474083493201387938802523548962167132610143995682390491133022540970691228930621729824715662117341744895094934699826905677254381711538691503033825852031578450443479593436994405189616527125044445370553111613173142025950436337351736094199641802892323030200688684746615580293222266612857937119410477881016214415471720614790272019166504079783826422385381692883164873463192168086086907299747612072741034913124808795223559927729455130110947174000184779440000799088813426313195541284505497511663235567945210317608199285415334393834529562455951964099658367185317963294808101665740458415486687789238291360659739795097819583489044746809345347327526530617553774172716477863187678113441496032235281488830777973838002247308641836575260076141180064432090068154035244653164944910212855553529536282227693530876916000038824473209665830863618341104333400277669674053593180525808952388850120139104799453653845818776932041408891453504968681178388005970841987806219425110902316849290056691457094588081957088362711945988066778819922112242809373073747197787822504339738838430260584432378979645761073532993469916630369121699986224508710572298100325811209951851596601437544741405385039861801784884745976547532406495101260483212097753439647842750997300450750339719687818394990674040002183864114620450150659697702594152625925199184349936995678903957245370848281926180018342420991523865461681723171498726978838712269798530786007439409053376777856374803956296391689498712574642749054306092335967893121861734268548800770299745797814911265938015767584369792720986485997256431223904121193266187935493471031881013271223033021909308285264941898436813113021805108005878012057855424913022040532732484424811550060034579825451223202187666696851034367173052540011214222590357027477822469633370251598068893900235438119838137280145712021426103136069121619861792733221059647619580778513166366980949763977483745145375367386025584077737507767192370856775172392074510947749648944927049158572937611948667593809418459617611905080091956395798490825886529129442965392121049173056572682487664271741525818161605332304473583516339780579693399668068283314576581392307877134314579820030024833758270774175829773276966199089551268608446249237959114523230475934949155626576342600074908331049982730295322962968980364085099669394735244106417906093494094415055577133655828691999785851282861728682775306055762908842139795037092087933802865841937415957851471351836423968903699859475899199455475852880646871681861557764024345357222649358138640895925486039746696285374606678384821964568938973800875910878755110955241137026793330439938066363166158570556974316367047661593052839562224683176918851272038804928743188346723502810275282742791912473644411139179278421805368993042664445679872133669525733439669725531419515951681635496813596028860511398717469782694629797895630800359214698989569976491379991289168078913618946860220016436323792983002192561087386895773056035736738506065136719815593684139148256223482782054267094672165603465930147999588254618151500896884093321911301024909916100627729409668345159855603888676547410206020524536387565856847707673018189843882079275172183346042914489151161779187524581063052386382466038176702871077191877800486058170123091442415007031619190981882899981722862224119318585141595939708900943444466878015260152280177754145437381555720463418391281659141891958623926321747302393525609990105291297666732146769877513627451806692832059986323327770790117755551565244139001049629043883873316798275862862019249880279839921284328849861428630523133739437815899751249116373101945310780756094326122942461419780597590966834276413650696266139296093605393223277827096019430970605115827204257909687513670338847846850369874062661364210193868635237938855840787213609840735074161563723399517251341894433261289470564156565853528431680217370271115734031238042015690953227661721579115956858174739833256197848383973868553873319131346877634783691338514467709435038104196161125127961873855270706461455057223963615039229181247384558102785866013593056410915265403861060526969033670447259636260560222135059478594185069993696561820201535314594435609469842009130045476341542217877918084619432232363877910730638245814461327084480341297562058783230150555952710371246413200741913224829959296914633005327630193696822557593778107435724276779196833260134594529832634349114097315674918784589886676208351537719138066412004042297144352850591301629526545421060381782685544735186373487516900010678769748624942695762422772088317635640986672053531021211944790236305626537965439492346029379170051369039146904231837817798677288395889263940209710862557821650090409370730399825421517388867158092963411191143865404961779305604684717070107464025199560351452851233413733112331158565768510409248755235164076252044538224969024871228307027529666362219000952510448615288707667530815954692913564761344101898990811772942769501757252554298164841156411358851964734800125974131942516667044208817669101005654087858716864085526016720112420758188160163435293255880035135619724184837502107896859916534085073307659696965897017954011803737646421888601673319620522899469524766321542454698180639049200570516818155959404936017273674163425248378416789756910048163672236474095486240399338091316336448433193264637437408359921225033672950768645855817091802959799529273541211218085590462653824847301612827191812358346442531463958218388109153936587982103495580525753651247424620512416539663862836668066098034802498876466423943773478041758022287958049503772713937647101848663385529788899720959607697239336890405091106870368396914464078702601022665805590228127749311906525077254485908155923723760184829348329575749562044302184050680892342717934103997831172193229296637237177093083933602709524354050753411044420412206698098661965823509219462222276068679242999147466662548931589128144207612070523630414030750206205663382173733614793508827632671515045155585006049549164906453434728462132056692343861650471262392245328269355711868738771246494155201175700656733354462002442275358509483460019763442716464795910707022845981399430106593031546141645771231285140578756187595777797085943190213744909467605992524524196757634201389483247714717784239243706627192302731992908077377944598775708904098707718964525186459645290416347113720404381452754151271626771074196612861970401899276019902865621055178344070901877099439943348909600794424565686637620047972028238322789360994832579434613909740598564134199006961152139624832282352898586986855509669000805975707525726553306202776761335612911069693011880651211655900436035870648950352985171832529289649497856342856006478341484023432053084560989647631994707560354956563323420370393915939567062027272404331415818156235338166876576086378532905998931241100182092566007098928048767702595360956805139957536253273593193361384594638355859721918085967281623226911155527814708154182241037808350368135207181767991329164270277132932383980072620503930191913403644704023400777330504351251981517865466058633692115770667857795231101022569216958686746175263110111763957206800208382118374285208825545712287553264104499814950809250291396657160944072276611818113445751077537616131834165648718449845531722301796008622547619753827497868526197711529630711651053890276107535497524735323336778880375643409004870716299079453485699336053648560731381789093320175136891526340629591608410308718063671015508677151535272189405329154522097616676986584212907761431749211851508604311261898847537373522987834001485503934266742848102960665182854781487305758676629730470988170811755581878519919246554573211932746034905915740763562557313053754579242404180430121336492010369604066049606808648405522873230791790959934685019675597250797851061055457363510922547363238523924180146851837061131307224300908597369132988596264332947630307174116185222413515569261876721635013622123643675455236357681062460234042726020235135280312579128915190059065223593373764291815033741809589537845278686847502586380946959548138293012467605513172607719130713884944645462349014007950512892983794089889906410485551506618730025783601781228064463017058502394479016583882288858934022148946623280390459367761827314482030123587674584737205850330568583586370768251934274058211588490026417245985984034666951523747221798499590630394833834555662275466581685317009977762285169965141884926957595160258828938775310166599987639224330597842114124895042730547136201384366523370370756132200793406756654337172883652807757854175333469202234950243948499131517874201258100428578587857390853837879091125677497691533376456855164599549159244547964265394112792150827862895365460564773072833817475909801412973132593575722396938901378539539203597244781483658864304369321022656870352162297513212128703509000229803360393042664385924217442636677440714204103535950870717694537075719848940907690258509093115090177237409931169098342901111459239479180721365145469002084575988399813767882317202943708383236331218016764977173808106537398858197950304773034064928334288327116883938046919719662428385817060646481419841972948020361458560299408987916788163570964165832048180289774841525512351792221920270661625735406156118714697256514914615205695108531251425599622321605885284029346427987836152103029163799784727683698862839051572717875946600894638371512397966763068953147728391991733012949377543778339370818805132454315215407444966479119956425574259531867779623280082430621783399080461242005716047146170244574193675472961523345264600693623602182850948288559965861324822490837329284612207541526491923678459873482768924719341804128436802518727113226732761014051914929935816213936520009372099943666006838491920727154302116154048146820543252007727283362535642303770131099627574461728472893915389796130857859076347851159216629892653400329642323759745783485831281972270271162476002890662963881827509496330811558201724514910633149660839546586180942574421094205860747127101425590943147466975383402449514976977434280167642855501213314003550090615480710773747600846806945735130830969796305627033722332296313488546313281489160228008054297528408269586246601118990986081877299472906926810926297174131257680674543025952217307064581780259780125724113090527285090762446151090173932545837638061475571695635253087101490843722876418261629470690282870995319112669425840150720606615489564782757410877888351697485768251027134439637065514871785521606877749276327078032217940035746471483790270740201042102302649613764953355894827089001176067728042069304249705462010484078089556637328896513248707612988277116520354607463444801922332159372269775533078293564320067010218286962726160855361262929469625352600800838601835079303255052855838919120604636672354528046867037633014107612892844179125179344904194822626971139259721742697585522077702610346364061793913505695108992826052206192677893138289013254449931345423717533870788902034361092036551705787217280342967043447681928118610458724957632093319821320444369939395781732504714332433984849631772755115544687003164521859642943310330334071215192739919417559050186399873713579434189818855466009626216410877996944485205527084377203572902503891539738037740342515584457663716433567552401242432650494326277005810845020697687101562805550916757883578894495693945757732200668067649455984265107291120839748323066456321685628953689512288928314489418626604341740795889458141424927985041940080674735462882627621174805706329783503436953613894459253829849936100435255920469129130849020006988499268878351829702682719827956528843004577157047828509152481251529503954392126013557787678840693485786028183618801954282832258894532862726580506950581420215084865294350670631105732158269791927019815610385672710035680714181975221654252204230459052727758650427590131984040309291883665517981202955073476730735433164134783360013027548002895015396322182033217808359034011409940348659057706368274014876485701794671939242600419401579388480376238672726715943638120183958618388896307228293751276730402163310650798640775610068430147895786815286939159251240681269598489755922608651948672150582540256096837239244156016342071253814106273141363315291602975739404806917242706626532900319727395599265030010719233297333410261624398738453907978584656124444449031516737404487769590528891820645468033197194471146025213629760156923981817067951834080089551834296165407667158678613768030527819951400636485224706669418540850514103587740844711421774242615817172422784813037526143874968137009009422166536330955598230990803084323182977344689196273369105013708634342196727194189303474418797492545355474959615387944238438283247265760865226774167324593825762634709592893433318290067415041657008993374624401396149722554267300829340341314972913039311501817466160656889233937648257737367238703750184053852220336232348563443719467743271396967174947493800821963643349341185225233723875600526951564234334183652958665846280257978161077038261501562510071359128387455929409134189280117629395319163721297412394356838744940087428280083087854088539082610426584898407122201302525844870970473883285351770025646758813939594572349079387380376045870492952515467359473584849900184995213178371491984596971065652795557227867888723740294771818760286440958676607560248695722759897192325046135224818534630724323382186363514806816363825940497526842772619331862306092549103335340024894249319575089263136980434484457020861980894809836907804363900123212420365336696743904058493076722185033913049049068167720089911131496733774963626921373584275865536931431098047587914948598212095472206166183458151821748344272333143106654851678877976391326833748953178158802941238204349695200379967783936626187405842521896896965778886655484143602508253753063155407018501530230919335946839652515334804923242704920279197854523601148036839875219146406094936234877666241600954655950873952160574047001154839607436809739258093971106337051144558588954092597454027689845919270944583068011501056829855509731573795847403182499519249226066853963737349126725390826162939559493454004356079751852289561333102723468119769644423957054115660915122886652892440288545673351413693652763005405433835929214363864956669053511680397655228364507118781218037923745225590377774388556114302146999320650006566634148890297250562010588206399875761883717903265591318817407697019583546186348153975375965739510473461841385941154429348532826259552137336780425041862396549186299771692133243037521847337417446563156074619530980999433551410253684040476784222409967188787420221963015947728739483450859238747594968459535511725793089752028530244762818732365324377241355626318467533876857437101130034804645077139866253030842991377608435222311847112964350568786828846673550217748894398323524028206681446761133637608094518973707263527648520829409320373255597437202632551980272776802367882890575142697624070179754574252931789565037885583888890973584015031095676994222124837623214313383435302878066535179163738831880928372679376332243273718871919684317178319972768440979150604677523968215692369117869775598430604355942839982404303396291353815511671062097558185326697814989460215941512936121907288424108522629389418151410396100226975924273025386402433653743834169403186755269700234827951677870980958045564858713840143576689714103161656602230216991833129181345529511537723662402878740950939300690629381985581067174116058871240289911732958427779491920475206172062293069392167982446849091066060024675119242803025254069949318558076549900932315599477708493917758961923005318115975073372256539779529159457608846906152657357326058499724753621132859763780444225606281685062235010115155837215423865244093287273522857983259763367126950713622775722032901035392090379838721550246054637070308093392416985634077979905027428820234186123032795846217782728791713183654229919814443083928780294292736051284427988687869877871960014489923022612962754073840264434677570483831769177823880565003814712631156253364132698252252168833021412477744300777297692671326054272913610681871550732237124843562170050125027523464150390793610995106245008120551063168261638928412196452394813177496466559818303129859779293050734485997570055517730680111673088790597277824533560371265762933750708401133830642111657343035984023574664255766248051163898428699185861624560256676795663986336252082594861723931926427542368914194555594177527041872327433165955671943387021462851387851776069554565696453130444407764810938691368915422695255065953018958744882196027483866315032914048676921307813793297082312594695236955662112847205190363340615918123131310900000189090186411042546992942255367091899896263355194887661346461726613115826218827902738870041396900502079167220074305527142236323840002255513246661540319011447674999219076011805709823686982115507042951427895107160967022562448917130212082457236727833796604931171642274738337623709226588555458710640479283582091302500432372636425930088533194534965855686719320319255799577002223645414751203003367435000754681210006513509521153199372990901430359882746797907263031625986547930665188754144979628870504607004446258773233676556231638050688339822988197004138360796113141303814370575314982165302438172550053978074012250535629304792565161297095650117128711190467194388458866937749781603803870667740166117854405638019805367765707547625130535260296480866883579146268792953875862125941857567019221839713599509772707806880147941435064632413803705988970404097729359123897604634749535626097724256635687698928989318239302882135718536865481674882195780456290065356363374043866862919756560113797141222591192513117193998732805235578379371409648014557994270290342080971660415163558753159921749715686190103080277790943530913423849346268625498016695222365497794058285093244491986778624882967185395879562406012414972847023113410194193279022892434810893544321635453917775102178944620257680943143427346661818867343684490296816313925164044551748948497675660692168640719377982188938815600796674598174354508772108175162334555852180679244919561767748099128448757405940892213359313360560557129905247462152099785364062928645469426618221393858255681840763223384474963545683718609471587697079506673227410951075564187887996518367045389052105619738841580816466717859167019035130080670450910129401072301196601683153057597257695462227870394600368619522856574659000889260322375363929304601500187311798131004618908722995016728249646342538754334996836075731321382531821215813023707771544356944609480065018857572852819977043106066889445223400863371622783998503608732783202302916869030497707363581707350554058919416533822054598144195442995574660248107196691678477909720537953220274354587001283275793489132567828294572683030746681791326009707499928158293838789871586654709359524430073469943833912615456822222870676788725139085404938956002837703354336051885883416858408052130291161795813633330228517969626196711383564835476573191923087395287215005941859407335236134017561986629587091388600198454760928465705183687996199340366537595811224535403000473134414291267014266773463883897186640690369313502811069361668117430067439457766457679151507109160211817921997316142562820674568386215769644882780571918478346602391806256278722559680263754151795716805112661336002661354443617784912269094230332351897467461903322681791947026552539142422557670894110598763933499317840270909475754358067701643278016051503239556451276190414830851963804853803601999243713288655560969703407103292122191167087805803226913177716688864487370899930236107460028833799293001527457491699118024585273087344298579953212072303084526707171321592098370589758157784452855506573721217669752821488507477428384222859763265672348177633401559268224811827527483417338005424192812694824202692105840350279900005039017600508841375842293136550226431499316747178149100259237812795885422735843972078275639536580244475235669508663506439641496709183201607809211621421577917954434976164077231056666117882007156768260533033885612752918203240872682893252187449375944602179358297284030575225186638535512225406430044453291809581431977742893778468437495757597525305227502262251173042276926140831871379442756291387014412767079144781605213844036698047831458216168014331498347257609306243020341873629353815735408896434120515467001041695052894167215444469838419455585940324944605856279443595740036018633094762406013002467780246389435242523984874718660926784548155689563661093587728832824856963813550675343803993511505768063035862065683402484268765247895332750411020800673202243029006105328472654392358158406893462397808649202446218871617771163265490302434084558898034667706598924527821554389426021596497792487644701868041512756835509246257071120652476072872137885598412928196552589388090089040930425192369917525084111606159508399176358392667795308574037547324529226877264574284699334104761307809737722687000790385110971351580130641311039768098955352218380878146223469404007474608821218184612857690422416021552275696476169852761384232679460720327145721585987032141767470293967607198125511383069500945850115522660310802125031791717063275308176365045958600423359160559748752463976329674233226989778514448501914427105415954093548799575671070010927242853386509769942298527951772746105626005920285219259892571148610307478492416066219654333871594974233710678744061855998341775053963382166067136414166087037180462404147979492025748861768195542669288845904666396471147402948265126114264752977921225056348218137367432595001496238771078827531257503550331891097979620144863611458633471613807044465058857587038767951545444879334506466794540590022006704268430192387613409041714050115824825400045408557354588608957223761474365651776611024517688300397764606493595357002077963396195016254836385697448261627923358532996073137350662906545669334880712078687976074181411744248878501215728384654825099517821142723762273991295331847428333188951986145090171541449639497192161765394651779313939958647454226596407009723770888146054423419884388096105064685345345665409802139050868612684515213243748054236446995435062703103920999834317638711100349666366237273198937147816590547483857693275579850448327164061807933210391013983285524493586836080786909075675502847324212591837222872001750221127884717100932744922897657388867178066363087869047974141818837940466832567041960400948928475055525375355683209423055761476483625600282444579843172253570236876987321186300693774877459756962460168741581952352954884355856154798414481785507765537201286363150564662700920068740791424452458946188239371342903010398247400869690935682038698135583666393686206592100472516625700364511897570242793749606197233159091332530451260236389884220510763067656883754458598988828515893435951701945986405812821392150178205837846973029885042129478900893427091058340246094893333121869008402574349462932517239160221497361687408740937093959686377743640421699917782900267292074057820718150459675918849437856668569601212303084620458851734683996428281215803627664544830475699414058185113880841563339525717463270019512882182694667702247441672978725187236503075186120652660475767309760254202128021018054785442328072569180818546140222397152551340418114726891549913841731755323909349903850430801550728029306408178409290470854203134570730617828692395055494327261218216307503473421792677350182352087694216429546710763628937315835135546688489893594222699590997983311797971842946034392099768174671607147859794550030837362765041946999757230371369921540443837750678960972246120525475941951414950444897149468001741867055017392209994166037432649968872387077772096706937448927925970970725302791890111850663091516784446594894410521543989621437846076259317990381136766891422241103662732954924657844897332417008085715653698853497403753103993243425222273963871362279330300601879912636737292360747116173023009521954477755487283002643105897795926748602060430815857020030736226386310128181603620458982609867026003909329474360889429735448624092487730398850750791839002536496164959489870387003609711512583461611335339519642894865743626831908770650738228345985261695736628777790707650755608766852528836183358771354159731650310033364091849506768801153497617892920398863954394922439837581794725793932920604238315926540254324352905465321169818811201209447702061972479824213278079803320841905737661550460091426094460988084475340831891419814852597040961746687046001368486432782245643761936442471550052884047499499812787948617915954277982692170657736394150013856336740497723056423362887687676092414020566698773956594829164171592096578299331711241754919148429918827977656241618924981285026035542016763117332807729768365226415043039091842866509465048140422272761088384179298974516551359595954831339605048631563902215075861223542930016920856336895036333607507161324009127639123765998453849803645812738719455185977081716533597133938378585000257686196201703494376695359799791679914922103353942473295677839785486979821653530552114026674955373318714482678952462208296527873816485777738304078928205306735556436682828784608583871300987280009405560998143304298110969223590662525960617388063535808446272280977718969394725734358145393368885821565666449669181700165900317732645003569550106352120527621066924581091417302415598973263183563177325763941847988119469633537050815903936375312044039046182565381987676100237146314218655859712082253214219138478644085614888382272660535745738664672682497309849583658333203078973983829964038985407514855406304697565636500288258285284658681148258397968953237002509601125325531018547086242684076210195764848745125119102787537312908139332205701258557223268241492833233558778420725351196350703524598643469800136653349467430522968105041817001524797878621961164183736536260084530245997384378378662720442499951601286130464154989972281230703198364214334024165441617065729597311261281542944283410441925977980100238351379113059746253456596503186658774754612328237209791899922020579209575066109144356952571185374576005850765392887929001167756953882879650178435190134408960495540059545872293038685088026784797984133553389710164697255434596612230726645487694072461068588429223507951207198498933051869110370175850782811847812844174308796795073708087060384568590155180101609769492529237114215285902595725949392249545421858529810711569116743072887544117021508659778845919078042355218057170381743690595338536519713432140045839218996906869657573523558011036716127444647816795384830000546693982521089862222648312560950539162714161132322732118846814946746743321522234171389365681273403185353272430070211590862435302596770573560971959619699258463174337589564812725798181726567437535274815428902026654404208456284734506150408021903191700514968640825575675866053163385953945408687393073508160429644097675439127801271829008957952088747029552317718538987940808490439092132854148419709105139894030795484732540133470469161994441537795238248531846201239454559267007110818000222938214067090405997970655349897367902780437321300466984226413995310144108126617337891751792514414894052370819978830501232469621473902361870069382290001660455406353024373013982063622025642228076435275591829024305104406942273032286551259806206385766708935575586440602282773997279772947692328308400111878092960116114874103965083210022620429859047666607293647546384282132620353066542296879898046040634717129010278906991442905990219338507959596935782463875804652123828952697551395226413737262993713072225363741312269683596029115815392767752221342732434691029671799610240519559701560893028160334540945650210741763752714075781943691250738501971373473202434762572077692484711448095256549701654787846591228733945678480782687233791799256507714343410206071004250879106102292073664121874759034319232893607572298312254802692351140075629122530137770001534736634360891754663530817285100981588585612514186031606089052011890576645161982824093178036775917193555493867899905242497603146263925504942725424486306876726986229408184181134172498009928127675677330531664919742200047484025603842366211746541665111098559180325492854093956572630428880849605881323169343197789752460627080001014477886326456663397398862029313630521363291334449011194523818719901577264139726685534811905450889244332736184364720580221455508291354008483424380817907847336630432084241591031115803501531501918481476991077287037994721066479952981339661151850960971764728910178155567052535029321029808032657157949187960196326805600189990502448421460864719189919307267183044863148078804887790941756346833617893611074890319298490957851193567356543831725635633747648570028252169251622357337894483147108581102494636074657464576374710716734184619660029361306013810687538447775624468850726635059958067356103108993693932297658152506940574441412934212124266151952279808702414911388915572261056982192289783125183195427844610642426718469627528273475596905658990963322752064877222691697350041173324270532124378106648463347571555646104805540376111907252259422431430632890443300378506972944851427541247576902337759120778924742040610405787752994741688038952377325043644133537094830852041513087571043190380965853307026074169841923385672039490029357347122822461364154006756122003287700681485617365093463452810589675022169815651467836263365953145678044866083105883855633398955295036787749746944320720322220366198157259266311249401352205310167024454170680408326278499026152238413029088748625432340903562283955102511504715512578479969116658795704104125785102136882208174123030087852193498144746379953570483301121191947031761694092827527192055916326055622868148551005738564916390914522474003410311407332161339836120306303167647160131362172733432812659029245752309746035405413627821431235352005125170431194834873349664864537773829143903505662073494763434776270328027240605036463368443346140447478510510371022234231730002580066902601268377961269482020902861448085214183656089766970398641438601806433185420526427228544196985202641112345038566251166153325214450600063174859271527889343747983403352773856111614106715110358560812840686865987475150874414756669281643024909594026276285338291704467245106314303108800407640176848158353820411622372730558260104875958220317468296788075147968371376547501718642847185891059313974073659496908708463647398878132033876604706886330544182180328712177885322810301699235725455115149048367331758086045959626515109839636883838771559257910882176904414468286791930826828537157715808248540574458342605345471651728737671737117241181582490934142730315842981038152437980538998446539191718936552601532018692778221945803852495626057896605376472376545510762601058990146657592705144413480106387133704763739968039854832580246305321113339672026390972445273611252749193065163021747703539863976708477179947419000950942032345978562865886634566874547842245384186012418266938583272799221182435413216655071838622641353966004924741155986261918561453963295822806607330586605848184789045045298791739825190277310331607524341484907330046356477910839741949019080421879552204287086235718604880413721874143038717472894321196245165787757374829724067803345067619814884935059187606458181778246097653984918415520127016478699460537703025498970926250757742389763523990757689753335026614410169599128696146855100654751361560626154053012569767129806390965354305230863255773377457101513799817356301672708231806450291689765148482457337712803526867404234298387176056608725616932534298207968889958888511846868119038654603219696661306444392505574066156372008090334307547490337519664564296774450242363455509927946460410814146288907954711879204420604715840681291404981849440094483908192591613733115872676021731475366888190967085657126764473251679987868244414260832805418661472003417523420146411252872709622431633603897615448112527072452158265289830818371390030979721309928396417138655569879712323178674752832163236026214341458184772481406181128714172758348530977683786969590166117878676707349815405133431128152489582966654870011615560991086551666083806427361090470229259453590957126982104778872173872884189111092286417023725033231009158386370836798190543846634078270337966954274048124252128769431740677742641235383317013697776700956676810670065528607440139570331345418644907079015036430397774486190597733462730064420315676582484933549023003020804942128874482087499520300242835874966270211016173216757868838332747623452567021330287692995096141017169620728189857686909897510307846081956235056715315674060702062447666539838546928877939660084024527075238213687076240732683749575141238372207646839090588691087285112206741035520631549042073536610662818075278261173431745123931412962743440567990317451462645864825052546679076976830624956598048807039931810759721881945471929401618849030813954919946428926465441283411398620282893556266670344964385773191301561618790268790373035611286007157248986467686947516541608982929039128471297937885840062520120968309066568265019718517804625171972998041575894151650828694111324461094552448989667509756123794620653677895527939730432118092835070097710255563584833609532387660973479037233437620105356498568871348292856077282233211070575569753031182907379524827889426137670220543847742051763830546184527041210324849076021214384517505830295613277473949842919039896034905061479102491729322718427016638639667568391035178606594023063929885332805772530577464034867181934976845443778224268078741848257948817488674456812267719815740381762692147159790794092212869950299051152960069036337605213904394328811144126846673706036496290264126884761609538362165348019730270362294668848317598319651538796434976390297755311536434076404962608091802685665585852388514512639445711049675915654698687819550032133804574520056290287940340329206550047586676994478334650044462575785606452115512753766496202145446668814961962369171459355689889798964715787599668372865557195562683105286051314741536364132026568211109957290825723809141315771773417645890876080624691473585410064821096180772291117094235039622672395470281160551238677054976017627619794896777199795014877029341280970604637173747054341826517888862229372635932139451335608142049735484499926634356695375455513442785909643547528479123626460966996236198449334654959718251940878370574977323767790060854217898784771892728953254831660283706288516220310728910427746030590427217062002235801531806205112346314917475898104075770054856785539275716843677195418990391961040470807788869439079260931567398214145553280913743704653542181001700359389295656376806603338673909165646464459329322175576809778319037463830583480050824101454523624331992540125562107823454839811853286228440347280349119833494439072248706804182049116330487042559559072096467148538739743663347766512863154177050910096540116089673589188361842105237916986585387348095901745628762374953100864642759448353125204242513224834030134805750201397535240290417089974890611893394962032563090929814959545863684356820425392527036877947138767252024823905211339742754239321196331581828994819347355547598816948992729304294849711746784996920398969066379802515976317581336598737052412360460335206465096401624285008001580783994805956571167838188258643850373193196197460736355990174088455542171854299781848777357675659952575289867387017428819160046674283442590989764439561826587813983752095467297872345667092766857419060840480126393104727655109983888663059700716339749585530086790282479478284449249759145138484684200288804231082069710343677321107489020996244722389698190963592129583892261732961917930825736863374552649686043651178517016706081482413405181685238491294924581891683812401186992765350420545580298647715637094618445896424990069906807728404962921896554727963105940710045555764090259660759010020427265974286078485748480629682653321513266191742606956700165379394823859106817879723591595910931702353805261666089175799149462324540382804680980570113887319241237438886523960795421176887015142129318881499968864760388776712370960098577364351400031375545706381809047265872880788601250590201657564345887540414061388103056964183672113003806049524970921822975191026555426315680086844555416224953498271718273046453585327016678092996513340488146384439343824750034697468328972888171345425296805777663322286916892393055658284327086180812345927289905586858889808891741700475375651658695342541931470195455497587334481688651097122665984721106103536441083663049024972226098246236692776009787965416269032096443489519709355123059058614150373321992627848361313921236344937911169104254959550381063288938691987032097459380771297343939114447790812104513348164107311439747285834155747544780574708384335731979646669009297650285584715440422938680255733057005348803220488394604121128887163706629471372272136449149524111973654047174311487776646715317358594607891259645923778914564171369439305004424494661173250429126246017453972577109386980091853310433048468358938967032000016530326250794888923187479871317542235319533874103566457238919396507514363469777893242894263164046872384321048515207197224823465417841951610634830171401379640423923182911682840354930010443877810561961803556228589303643978870567728456304264953322767658874733922425433925890351977578212559626567973830204028009391432240052598879387116128832433275164245148463213068669541965529658925390625092860227457523657387559004845637734471625748154145535950087589729229205705865153147818783769399239096240037826971291500560071913934019024908376144595059077152463111637689238284452229830800027377248633607876359298819632617485089439084468095326830876817865744847010530288243307639820012636196380082951250333622219335078779322761661183014578804571970641944696051599166364736728863630748356396588177014475844422604172039457799437154879915884187517163008304806418494014407754809597073164149680479758972084110527201959903468906010632113980609466341800667257143468201543326250157689795074287684732661477781188580961121815938348745906557042934882458662471309084181571125980681527088655370653855949673772356701164380043178407899171257244951839969400941122770021103145388894916069554529678959262391636580988137383237337710627878530062475757639681322412993375485578175702422347918305250463781390968578420555093344526836173584128917169060506044558453332166019379521541806975317277724041199276966406269324657757636105940836105215846816351412481810679223823598904992376295951506268382250124357878871100781618047964107392364562171843778972650525059750681740952339368279465673953264401107952200048668400559918088290599322014332810563727778750222183430248717231757571257652186631292889714748119666816140633112504440058932867148747825177065223942183809726554339762134387159275662542396629347944111546851424448540575671978653041202754831348371073415458355171859840539538441432136609611535439791901770725028893804542294092917100427790291997485591701255205092577567860753727269137213738240210595675721217064354730861600407871758363975857700519610111404692304104373945995141760678563046151490728634666235765326953104086426045484776923132209784840176176721179022941336186860569425554552964551226868389860536007227062824276201648823894106630425951355733219653529039300538103582364173483934361433396580756805722889713006758211233526600271333852145221261346915686358915383808918595053018288053377242559458214841303390189036737939696553081094672454577643599069918020967393683346433801806220423965168941517758759773401088957712565459011381629075071812497402726318534784368796921120576930826523336622721930351562745736427509588360433756600406125520157446782123363420405341641273680092433854381212733885104525187199194266621132775000949291181809296641445348732684337827663872436305418539546367731613216748800732422198340633836257361782856585191711629073382514783596828308011750934335888798498995073887730463256774438595233955210585931423974140366525772576574324467810166489401414561529229551449837505028179528582828578951580492023199825911621778284625253756865602474059807519086174115858181995374344821698993644731031120058738544573566484948165332934515200327516460102746647865254272260233773406124659430286587491143475326286772382258743725571026912487054046293195476309604978405233933550452060115526483850989404237283841670878605632487209568617890905379167933002714685960998417237759039796849733124835910172926671262361705906993817233164043690297297891483762700411008463190675647011232723318877705809099305734513666181423034171863831434192846372197393349009545620043078064964686689762597112346730553151368858715237179217114443635230558155687396316235742314189169198252761011790715432177114418535430709897468852975682122928976837697179135210249266861090038313448997127427510504468003428264677838342205995884889636138814284748689728101639864724004401970164621243642678999872157518862606786546763634212181353153435792801721801559281008590153919948047527168610295922880428086750232743304512915562775851288263838212246405380087446325690308324609577933560459658497933339823334838928621553172264885745151805853293911813071388018444977112850126459069330063661855244742963158383452801253999750644721611604097731402475737839151510756981749942685735467859004476141429182050021772255096994730742793517995687484063216913438488417065395345702145049478450906894214579126309841861667497733782702922897592441469495754667880634965946931747181941212745165630506404159781654365891045356360395227506072298190943699350913855643071492586347638609780447729156692160372438527163411060454559596478658711766395841216522547204352966931503287521714924062643172757210385436554650961622997159890247781617941426640113325332755524142605922098322066746724088679978433322404328327257530065972253657105570515378672396599783913325995099287670201364692609702542387239324180142751054446260512001499655018017489462371112665965556833692766069246887082667000973650174970022469671194342390453425773204130615947669503134298166041606723720191339798944983889733284107567055325692317612425439810480306154618492612772390883260463015092845410306277031362976167849555829780146156522881367425607583764590078413291531744091535575658063347740450136595333254554435776070235138653502308793968756762377312437476926363465492964565365241562148614217830565966772287876340778978590049330389516229300982799460512362683027226324344580999533044460111821196557835700905378995919003219983901443635524006858237526378592288803408236958998220352411924230379811977201282095107166307274145270015569240967029194543689320143681545397680192124723532975765868346835296219733272351058310811603619324705627107927259135556466503077005345164311986738626609737690255514700811652371901674228717431372330478416878654192957919236494739003135442942869423874188691261903653083948244261148230938257219406635573287157546285080410924289478123319919385974059278810330125975779525521423808383322437940697353506496645808892110640445109306755463313465012864388307062287923629721251912738781849116230534503897248243996155075939974343104375583879401148367802552006519220830582364050466234515316301827988083358755468185514938895248054496417257307488723337556741115962236845468262476386710985539637030338466865467894841599387693526949661714259468204850848849333894355570886417548058024214241662069347922867328385250984537667106922257881483981571036897617324437424450108889029005290276507496805791865452750145107170197218710559221569352368013465112931999498686105701595663048530904377681345499028170511397483658636252824404846479132728961799666709418291554103274178651750282291542077058162288166966455373321867122978855518624920475972712086351849080952907957877493887883276432717984939468516173352678206987101242466975903151653610229859858964935983347903945370444060525424622909875075273731941952246129625025947465564395874829882389837040495574998214172829230156083354238285663762692390288051193517790428031826954580791064713713075958509329706119390785800960895868529274839587376242069359141582084243467526876946226315808248128227079603139504557015959138598300155649527368095967732319773011579333497733219415916301293651829065592495093807022705424607530045351330630818633837860925272196882486130129075492430911321395170529247100709775685929574667211220472467344362512782062452391066904122870164840242699671557742768769377440786690689665735979923863239344546990916773891943318909249236163342653158416855985380632592320353405986602915870534131964974076711195874659412607276618283646010240977690831529158647280010936407830034302987299967147955832824722427719430547757165307183255869771582341231132387944642682286731997910710742844321417316118792130805993290027279887292798386791832588383771247481573865401799438803204530312228788273634520112108883317422838605956082816969082863150541162392782302880139618035054275016566228013633629097467327758203444554829862341961032854019068183366631160980438967481716182504565813918975303135523202757404448760061300527453289889312673315172110930170690161805384681898489650697743003607770789141421120689172887528870552301008485474467873500690588618294484452536996937956540135439412606571400207462522413326885140144002094356338017034019387029749829746340648976451940800392212032833209000989725194220684931961630224454554788127465778157173694490783927952531761352121455066202769880341332450093047917279903249229909355838384681745849103029930070824116369062861945348741358165389743945768126137698741441402046281410521859535160856503633679236804487510889870726084880359763495645194982553119182021711279148674302508814514056959467060289214468835462909574595486677721611498874472139973402498062615397397844497196996404285451935252847593381924113975171269606584988259232810511853388703690289117015566301358181012086596571187699388629066629700344515746636438069011412315766049792055977545687668325994857778266989733489833269992066170400165734117735319158531076443674091229314327423778990563446437009669500650961023405045098127899819053697152688922289838212430239052608139259715350196169921754034169650950861109030979461662259512590300912614029536871305650064021634864409032755298548751885418628098516233663660072891626984208930478660653541667805317505467524906993952803938141479297360570519039271751395331574797762440845792353932853648610618144153268776986872128830043769197350512396386732307190296054082645153271478422041586468492143141923214604109505701877441600170613279230224998459246780882773907647045612581752870200241424314481415696188434022813802262896754881022205247659872863017453662121395396453786568858157085887525029755536658018508383922640214818786110338903439994360161059815931857489123473456828945789813782031478198307889374212395189542111376631733451417726342228342560726939122388047052110604766522467632723001929811125736000453363478244002200358565716278784452172354449151624103513612925658468332044446040619817069231262448595961423592221839699930196573933906418951105882654236142645000109803733344025931062232965925282262344413332314845827208495114444098394752948065918540915882603026095892127407583531895960940016451093274215795611528663858835379497238058813123793119349269611491487752621251836214158094085721356599605957380020982075338890021846672598729304445131212434964493799703264418547638736777193608326519755552374907094010595404923782739134029114900283123390990020444226169079042355690090494529706952872893391870192324396738793711622697270558666349452767574156660116782622120689683137646428850224236356492307127870313083404256104265892880220806293930691233746881705519745889336490209851105446000530202059535699864534146008557881997170746016447014924369811452542260609772232512632387759044125511288997439038929736063472985478016614431168398724153614846123093839714889659028696215817407517230929811031311891750305572327168055989526877001998074030449344318573061981863047844769412409678016152688005296051444918329918399918000946265144871481614913483676376723726617421284156660253109942279651748360642540321711011407757874599000448036287568495294283906187336496664123382367512398824218658195686147119066153731383829006768094767555424998090375530037016847677710118438527351380464195791342093819561175473533804240218051341575097482905727728449493576373951809376786811749004222048979068527771149130620750907562958623210860303117613525183584091831159043382591531414739069975560061463162943853424899192935708826367723054175501600585706280843901042412894904209074395588782698499934789481889121359382456234865290812560985960367021112959336297733661343731656523567740301306939587356714154354067116741769116325686440157294380879850683055451444654473155501172632949923679264250529985252411645810141878748185164695990391866781577471325739795018673309911749619435958090741623999044033248835992136582542919007942525136885575080916772353095797462826760137169681628558037090497126235129427863353894898911681129444917822003187585211820006881215785217374446142168298668992286646769102101687094537536596583115516053722112934455171179510764010863299910072856504482590582531743309864576224453080701797483037652181412736742112605412137029589363452228458575686152033944629565960105797403065940222326482630464336880371200651976277492516376360778790922677239816265706663078169221086839596085797951119749907231921288940722508065309465074332997444087521210578717548310545627167209383099633019542331570839191896239969819866996996787037507460109560551542276675366689389051344730975700297911940466782671358573503536747780437831919125158890475598424561417544953592546823221835669194011141596633577176688484805105488482325356700903333730726846659309474464583071621092056854701862623948395788185877341826468405948733740138556055677971500082220689635933799132116212825725153460414402232327664791690525808634336136021068279145906015031141290143352033112476920414302392526171897721724062519278615274334769518594818151024696648382655845312884113659061092337387237297033420444627613999095333102175891910308539173611427149992828290779330267669366896934526896512668917691322380203120737494927937292343711331368631698202781958183709118237513508302492682526924477327971220466682075599501708728798243230374481147168466969883500578039706252287114127961361574721812361066498957598371780754140948334139681862424081173419507475717320148840947657860215027587547693504707247561182574629609320620411342758230684777144211480973791944229769203718949439448375891094485583929311798595709140100412925295119591017149573937384147330480317258218565287135353325241302051878793892862403988456333012301748722431369486442696519364315384486482802422528226793628342114231084869128348945621111197976865748483934715903593631685404903033336537257879763357719934070646207874255764350141718687140900269321012249861336250149644762789996863840075547204716843749421902409806379794628620824680258174405914110678935114244353203991149675598382219467253140946066031369952815789606587979949008785435301506216274466906158903283497009201839745242723558078606189830799493347955393195174317203195350695217337512315008259927892766099627451336062714451010799155167375941673159564292794851596720947918366762659515382383639599798933822048262556609248218643075379772228630414966816045979557749773950609606119185725576167363175628009189741601273226059379874667098535082991449008981689071984525029578477185856103202726570821863909240005998792444490171341495865668002013162104955670492732078702313365554857787410427576905615253435129734788892679156651189252918089996165798139872244556851189574535614527492520049779665400972222049709183191971467103700088152149036740091495181789350148670144993516156030265461892256649186836902676516684177689835704882159034018150624270439700669669138902044295905877500081519724182806596650184453760550998811322240634170196772254090072847877598834358951612885155683993669564743015012028074527812539103318380157574886153564746725065423045723953037168814187308993711044074845405847829534965191516780942616106979469773059997579311550269368417514375032333061699974768548301833670041571275770637057311975809302446893626664320636622610884433316951509451450449875208491846790197196054514965623956877717276111116694149147240072190345622281807387791846337382749817029155983401143632709946032550493320035946645531921607236785514654169991219681860398320881983894745185850616228295432069663120941910669265556379657566282308651478067509583404027029666264332725803923426745554899312363312548026901836841144493135580297030307344764295498971621602657433558679193759768772837254769192412300837851286002317040077292097609175400981208324609405195611680267359779086404960126096183862989581082210275130775084614256584404206582684844720206827159040671996538881287161428814138849404341306446173853704501679838249937318813898281311087482944042416543921133494563216926908787747309959173818919717546355574196695039605317004149403780327718084915384039343894809418311417212633438242328717741119504088522353124908960490221231906791107680859642426196278497788340608094285902355955918189548553998189256626876366851675436946655278040428553577004231986901125069940019686596112504832042017205364845972362991585630403128981228646638346800598560756778416895486347478229399373802381621752124587169479538243236253091769302302256968622730123929966891239805629400611136490613516067483505875857869314860034687745103285908790566953214423749715641868877153857129729667710108133449298766596823469755485181375868889591123332472180479164172850563676524047876108267703496941752549328663544612100235385174258103087414226641440878908799275745387693107965455476988744523762349512170360103878966843593657949480781143491156321750372646780547026044181052906893790619068473095992394657648609710628072851181875504161068518691297064191611617600397734994025764377508382445141874266829185303090879838557547302597968394181574109393393240381912135481549423226166157782073750534056938237070041107729974475068574367019236667911382785535516551011712037561210180320420623421168251209098765854042526555053694241180702793574960849864398039481408408881080893280226869007230154624513294386675220498473870525951561235354016978647461120222006874283726937283476093247511727240311104966172097871636804150694102443750083509080868382485594439125928743498229316954701501921952159612952552415605311145244673990325490434748084232707042347980135144599738778925092438825531587177451035425305764933272406704482058420059153445040972268320791395653906398153489915497752882800261469387038759769027700571853690424172938750523733591786579372073331449527732071108239307655530440617417178478120667444134934492044124943349348893676506965446876602322242529658414466711196031847634524463506292498739318888103850228160740539874384551985886161506831874635938079812433813551062264302181362748505638799742110677162686104301186709146745428559941790274139938410266425249540572539412979903632767945175820726365269789318191044236221503130946784044807209967012299313188346554182511782595579261197355930445582924945051368923563772259072470069539081341766327721799353115558161834765243712201700482636717053420517031889375541622422104664262881655315976624258176389116125418295648384335732294277515487676271674303430784773678748002616561087075089319003175215584088405433338033425851025641501456855417135577372259791450693050557884981887581344454129932602124813116619340653163216251162564770269223913462857207621024519349555972988825188846759873957827897113855053486063826452202145091188652421474193507060974767247925588410057562627484337470993652411397117567328066916543984330250255768688288448696160274462365138050307795247610193112907958173939697560544309271427297328214059392722516952653338910298233905592647643795802278474487070501400707755239815962664699521572261102276922523385265064564827210298905665154584775483882555203959032878417792820728630972631808610931593896413705573134848365409111948387495990975122939968446147998432766878256507227969593668825048995498170904690679977452011166387387634117446038651599485292928187320349115416538421954907464985979498603735431450261011625509123245287156700531549290555501209610537269189687560242676671039917020311845476778728318203410004107919660425063608300732213193939984503972552212325985630282062311445667968642177971608736789360623960097277573403058132237051063375955344376937278207386904208211266650202918227876557790872802111760731676039533889448474221959909211661588483713077326352904119940065782434908108153905823279756756888012626004056208952247636838737082551217071409326408258195466371839911454049051647338706768828418758617791668365224819423907237090172514119751530270141007212639151520860582987525464352395656793288473490535359837602474904337912240762065923885213087158795867946834552422125945467876081997099596472372919236020102701530637375927510140717964006869903841649218774731956909522840752527798050946438293945876131142326744737047603735613601058698497925127935527801082505142208148491257905835145338476996914603310125191171979750245053002948460382558598148681872595342206740862672573871237360192459281523486653157542244121853186893909814840879867744078881096307074138486267541859997105215677125209707021483307920001840524718602137328687876294000370521640115706558701875989285833569644588918064187801517858540239780725199863779794096254435799465432298258508663287789507318533639650445565635798162646352404474605518528087103361499574740190057073628838370467268501724419243699408908862184741725641010402432985433934720372807414535821850414058288752773994290063435735957257031106883174904547389672721829710291054638614279959478365508424505864655254718421661697284976845656740173914715198819962089774346545767675637248844495815429296971971851368016378607081678794843930209500679511630778815207913832588773990452642918210462282027904424299832516445577498798609379374833055583402136929333632834171405947073901028832862456719373048757099084731994761967900216271600096305470812682212462064788577038427949744311532191244406814774111486765545457772946657102263572312896085697903243918863230140610404669602868961218867049147376657022867061921836663607690754367295711260563966820865545852606014996996340418877549572052583679253373097678363817256083707947494741766663847654435842138314952346825300063843233362989072282756635790298640542475454053303445673028975405592800980213453534104751662062437028136925929468403649066096209247538072743140950275275016995977024263356700636855203888761247089753569913165128632354341815996257574371285195811932121259668969852392062124404664195423984170330927682733937849233330764107839503083626012837934372264052486539447001565133288759334817462056710965305722281823165901180282772422068028377596918561741953369208578410037618854142987721930794040666952704180653958527784590484048271445406336734226624404505472462383149578505996906145485963580763207889015380189043638629284033477682836881946080045234255790207285212155639414409308609141305647736523391614405742812834700574275443630497416346206193767985524769038001554543552540462885833469668249582004782908009518677968137491205574983316857188498919919614922762907155935547929497386152812315568262765583034913683582131731425350028340500411002579916510229441366081986138044167176030158781498683738746415131516315666924966625122106621292938051991007673122263347421850494509656933854275260777910540150986954772736050732829316946456500984578122058763939850322294064539678186298254554187927432776385886811857286846079778212432862122182498210767479980366960789379903077518212549245019045884684047325128385422511708561899923994610271225291844058842387313669537292057282325236972733982563010815930450222031654761579286389735000841999366303852056452221217437886643736304437466267685613225443650125571335026066649903189307457787889659840048720919931627901647969950208753494676612383644866029040556531409087617735544719629892079126814631407223489778710804556872139857862336559356188473709028427967538783490049979659918821297948734629732476972447424077826556618719027904843748371617463156342239274578601153291169473330521454949413254046891255165632498452516539850590495617832817900290291201008510061187882751594169003962245356985656851603283255854276344780941739056974438703861797235616710449690849428748969619362324886376051793660257005804341226395135991160353506215044684395145291211261681045605225675111437091399130419167014497131839234629958025022690287397296147222565026009853357587341762782927824582459187985045770011186733302973195379658864982332403810433919492161027860691441486875159480847213267115624408961477221195910053371223787138082680619268466783828596895963834305603937066395745103915028414426515114843113799437237653798716997996430976928084761251656592968310898712616605142574277366485388430952357238328175639368815010352684655178680537658125908780313980312999383171590948064922765507609959244586078121373060471438178547528677248818497579301876744928226488635337313377413416376631649613197908912406157730968446917801042404072762143290763492102124656178857856316679297862680977564932145416258674255647757640483914978320596861221996010208910226222401989580262750418091601469396540967851096302128631154610928792819790972780993017448803437119270840385409756841602667054872630887070792433795195404292299561814043073363470941553012978683888648555206114200670384778717903277475892688336483037379304062024143556100621651712809493646197200259482168403763010476489080681696546443049520080067600911869658796280413963364404612262536182003656088207125322849354580690301163435275708897840562590138415220665226479445374285664603592916149248514277590346640971407240352178819833306869239018862831506615451827801453119381115784212515719737194595173974405468666416722204455228258442115195856311857778738130289413933813762723671655915687277541762213227026781446135270399708395966059010708147005344041429044613376160345088060513489437089975810558778477407888301139752893821015084937623898543810440176032402121477931914027663327469594864354267062746333554942909315209282505197659819105535873247507841155997294542726542882305108753988811170343991361596703165855088027461185033874028345174049032599944620234139088284959298669996300026217390862900615546046438712126114528238575126746108114301985770051771224611734577180062168337816231993548141040705283546491100563622536683179928782909878631030175438960163750837942328767471048459784274487498258931583714844730157814857514240363091255535828044984681994947426242813268935899617445066245125523959060641540118399448782778818861277521344152216201722634080362365837462714462739338304782328891649104177718697005857188338281085971669981264677069520488449823649883648701282104183924004311432534882013943685615360225321859191797431909752857442356252379540884882227410006570586159657255175014048044974998574696762267257069012925989042513536675013122371787698958620880611809752360064367769534347264442029452957599456155812774957111637272604473109969703411898066364141011565346702670527489422694073390246270374732164193330975581659409855595927452351253057075198371626138194628952545333904827813888691203619890875468156580463266581076061496053966361485229878528700286743341478385712040950416751579801526855520383225852193801570486580323163433542891118311363495740725951035208519195152152723773131928973396620976445321339550156324178090855852332088857292729086011815259157934493590105195399619904473075405161976030444789203275511655274427153950856901182545008733600220335241856300343115488832206929877345736388593935566555706606036158469572862592008893444982517766071672839123437394470068589190925398273772228495411443469821145693284922359149214296364442427015807733885592324414670577536297519915340982080079703463334197150360617721803340820558408708599839657765984960208266971292384153105876954761231268850245578930031296741539699479816423129801920296726981877873696593605804238513471347551997323403732304176304776544633144326210130091750814923678359721892702683950865103568547334087616220875866250021482686175566547808848382757021266987119384525461537902160777863272540397259417014093420292769573400222423586648670516597557044044880115864610531208410531142816008830299985200177940704497003163160892925695276534277037454214729998502822661588475691593975828270908964366905202068962122760776087643676810218251077634578594836606859226829275454820890449681104376155908939668417333236532047439185827470982148593084032889340453039138997811890719846214140933153796267910926820341492335605648393516849424774886935328411570664737241825334761730626968070210197534412971120134784814047836468901293414175302928771310278086176657412326741588578906380962202250441953409993354788831776323906289077706271127455787630209486507151779566366962551806765124011287440792158491927980597342960305211791674478873659044426669951573044328496107683200522738884327270705858348775049087920738407887691751493497258883922005241941514839919672950211734601381853372311453802944246767456236884138321928505985628053491697768638311478210759307076559228042412039546294300300895807592155800173106059450245423477326634938241942422223878274949994759924730999431382635121172242066855320909797243880578226866236268008583916698562452861455016098040793459790415092789459363852652896010275750934480625951051051612787956228162956796619226660559359131308558595715658765813761751000528331761607100860811065102037576376779062892305572143768946808906176784242530195492284504258010860320522649976156855785317986853398557411119730871922011348379573808353016949111627989270264684479698246703011647092108998985166407927925382032703470483753647608445037118427949362649958941469646101287906403300304643478364028789750990728104250963260230606967454249536319527519108192272791462026811485912323189300578222354515865155204390014231852832600632313105493319231017785687670130285708503694986549204185433958887448190986440322635738441619922682305808983900155205094052462309570429262212569976564576094479686147442306836086523103283169433616566623025769295191601540266181120567577210281905461435798969330193276640168465582192508465156803361404726822735863068060439933915047879422103424124115119397381861091787344867119585652977497967003219599128236001795032138346467987861218473676119206225388663476505638110122180232393997061664227836743773599372419440864252942148673592977465357059273856584088555945326422509823451511876883969859430117872744472145350286307865874300468433305535797272970981218743088679978851907543410267371198345524733285105476799981836940584429060757352005476778887219871942523991488345743628479601158709139962015385357029773988533481754447880323157788794973795517653670157421911279673952821322628079857102920208228513542028975497634427979621338139624200683034710278026619168773115350507690586859835140240047932892889815175335845325306663224887478334155077783053436124263530643571383432023382950111855301418844646136982970442947075363302197083069661676977731068779172016900732425491682882664703161498270946927625978510880900207523699316432495535835953124599572301365448400490263495430687497243916934601432535587321038581918691132411956708079033520057316383876442231574150774697086423333273682503802520354350534253732067028353550967340009493231711301992712165984575908205636384094779316111070288836227130484993768731352456533934528671106892153105143198140049718078472291379597993190153339226264038540050744989270759399504056375326602632584141915902034525472929695084375525301447514561781738587749040711180836129134710935602684019264141515293131524351895307336190324970237352093722492630112018857010096707333389842259215015580936493310172527513801337667208264576452228810002558421627168972594472187887277707729411520631403098270508023857812686941279113078544313327584196684196249971238655897740410656822615732888283538548017616982931879919989261046170643610106329074973241451503770227719775018456397023501067289305858796087777197926002878649532075025572811002193865235641344754422963744054603641287389362144131191362380967855141274518571315090716423922647383239615568379557041426589968484499111241859393269761611388265928704517830067438690839725495534101064711162872889989352504483112180772769655689298468789048277531079859621762643727575507658400378597351957549693825458778770444749296217253541815184488033136004231762628107703530604533075623383591546502546443165999714107138454099481369411080707139950622249883339654375717345284852363687841059747753918237422963945436837061197211899821669901109654892229008265789195949248027098466166295738059432296644940723827988572513140758166437276531449300420259333397058148992101641777926006546287158347307824521432559844173927255313979350521130994286714303589385825769648898189700630725706985230087770703867527875544993753075179862239842181465208475897336720789032898403299521881882937612388452402182462032974891859065696631395282304198680885969683319868238648460589725361329652857391895515373622232423128629125300214873275633603877749758138432299351554842457723815210739780001071899941658709172965296167955125087418238826820792024990189686602418190693480463776930860454167045431368696804542354299608626886119966646248082429910240862816837071413077845976845391373638671939167700413654553253870956994782386106109071175356549312185403660366196674637010300558021990330150319413561912508220558618888824942954096246878298760798678766504761686534330534637748065483053405371245071991348618860775032027639828392169675038382578056377571082504607377160100791639145445123322574143596718592284806774818434544245874277019864031838866944755043120983510764025693696054116589970939590943294183835931351944948404953988006267089680061272582603595896265424448987497426813934590395323567286177519743515198758432635433568505503740856638491103506051065599537320355823371564579216063394063014553124739192543098216934986379467041267737938954188494389384634507232345740937099757686631356377599555450426438708094236293549755235467894532017422315913281180683225386159335374952036979456819636727563484584328685749165660877166575462861198239211164837286176520975293738141701800989037145068231913068598939497014809400249354991679814888202993498027339051532943763938853637913927126979090323582828607271610132032590198883453671356233027228017629143324869466495161528702978670598856115664019079464323279045976009031502657243624007255437859786774739853423553467183711833162081694710253730032326493541652866078020077665927954017302291065324520947175180549451592958492250974001587675073367279077550584161643878966654451998479601421804773819335258788210610114350654592191970001216698021772067045519148257193657644664024700031093327762546613711621074379742616840432862851953640873441380208547486271205232820697738483585790227624744893269113806187032707866039294830592638489829203892829455241240958505422176996189332881652952616186251940935675802698174012373226367990875230876775251324434451749813558593573846646908691792747050546748189402853514681307172112458956353665142562058462146776991489832051430881235173456496884710834805118791698412363046005832125316033065045322694695220865379404782600165755212592038975567506207447388267026337557846088092740219841894091636357701477704670839940995833539783405065809199305527704277496607833780463095331997213632009060733156631292641398240336373209850410234990039707951102766444128862852472881238102015280758339553844399797903398656422965690750421796967148003760226871019577845101481548948547199719813226090892687691408255203947698760400557097212398661207490705833428439413988243558431996409936080011383682461970659498697783526151264361348936702869586845956588437650580909339329773043539036960030644105481986877134389887931805064344780227639061773423025365389482935108335606033780328154389846537936817470846266399641055852240310063345015839900371196922608260727847295547153787505162678099342565653589613924469048972286291205864914736497354752785327094620834649860482373877912714903860170105463315446404870782052327802574648533597908793365362830870755157101958515392351495495582136630832066708975291221157622780864926850207742595719887529372450919567328031358410703535180620042189661061636124597881668074073810738660068140345561260356943381969207611649777391369414005270835197227305085621878780887330749749440534804120049793117381520332573289902639926178500865961495217100676298747321108638035412733200634022073074509370412160327483685414633262577440528716950892928726801532595622166686747325016807548957865451247344898585145205595835268357339739109049638787628115747226834187016386577260622544850401114169105822388656444898820747098013216987950265352187568869378778280532552397446423709276290313398820139563846536238205660019144039864438592633812516601902863156192162022088248798168649359023368449790891364283553369255790374359041225973483573380698233613114924440198129490206817049748463769503671942133760706878814349845035822653743307338569381480760013604209098774943675913785038174472574689180217358879709520943594346637832039144330982926673877667892820720112405477776762916286719326195593616892674236124080986553655079380919961652849746317119177369535148027500777338688587955342502540815093786418598728391539271096462942171744000938315926832727653807160369359702356046848352389294516602313311338919769434397044247038180486040499182337540516467881098740118541182801465683186133118491542167094514414458225818110954823270309684016513399513512742046180024631800713757515954523093390804945257432650119540257985872160084094529346398908004348173302056829091677847945250831111655006282709740000448253146678478766817128228121339177315009478700254707761436564121697082116869310468865247574296457697562981754139535134305830182286252346379004125330859197428202452444813600118677803291256699312589545803386575684953513439372577275939513152754126982202640724758442031203049031168936907126109953051778814566510301265761934986789974902428299002443521070694268856999775232563413766497327253401240291361497750975523302697914372040426305272313266202446732992274316881213975121830242531710040653876133976752315892972869531815090733554727623893445264920356724152156865248754398976209396755325450890559284700176002187450105250229189930858974351362261451618235911299914314366303294244095845685334993663460215555529476702453561485116780742960351649382622999795429735700586694591067655775879700982482949510640609898113821734235138033079512432129455939433605845832380800516619345230707592602094652349762672130404449589290696891300869145861244288749288534172113483421531407160721317240335092518290950801211892909460974457746116814440715025720174177990344305737134025837227722871964344874643074503457311064158413785956516695769889274230788455983853991014608824561510648733774319021790301210580064876154427794027961429029412480926310503120549910062957900422194226062233214240913473252178846312922838720077103545732148512358959545949642616964036623508816780862866974464433932188376786351461333316106662829863662622013066510990205495111859676848062623346850856885256654543704670315300787414393273136388880005919513664346709095497916232279326342810697603332228002598782470151711267554815354553000281829076943112637923828986404824398577300456399485281033112052862299371866971569095553192056645556954920234390419947733151865309299453924747523028470612898737147923902874232112584330142908783239585064283391863228679181328524218837376674698331787324160920504883779642396101365534137422511024398484008948190069051430755940058218127635227421736567254133066977593718845551207712561420220579025666184188881827414852003471631375333557771237781877586461327614177158451630969304684526031632027464049893168332960147584747256529904637231367487460396799943698857963840296466856361514798223078045575819195465464363583449070608424442274243670341573946962866819196633736089399235446406891552020433079272674291516317081132844931258942160134603025793308359444975897986469541446559822223292787088500520714887277006759042965576593961008653671625135350843144983315285261920054172368430473055140440943608201780222728692254568664409423442473888709266276365030308992425964195164619005615883884720406522500184728428973025478546361248969561381493905961839035850663010585225317197515366772997092405985871586540097377906316262773202357097925724689273725966235705864853711753453322606419764269134564532614508401100449919863808004186119181840510475194433694331798853986802333339973323691360879296757271509183395670420860469022287545314243346252981289809439266860256287977487981759532561654950022848437606660686027505206782135303636379764146821181328504814420574309243529345558840529867130711673513735515958066963274341610391209275183808658447572791241391191056250747986730268066281499285157910048418718399955606399970624859798723531885878255667473891037503554665727501162802837834497687373160313661818286271470241421767482623670237634279667365625178637325492400707611202673574459744006839532718402553152798505836775576400039642575599349704277651872192624531826196888646958776074165655097339003374041402662851640578294901746178494319210831373408780836826043553830623660296196032057027762665354456288938542082288124342871195502872406266988794994756205292781139820859673796630205763346051383610760684267263138603115990860083623829175087719982938964326868667869630597096182708683503322530173560394396167252036753379327439469173825520500673069057491846905124251892166693194324608237382889592348292933188431362613256120686895239410154159349748950330664757850760728062546179428636424017119099191171077057361947729179262841258519905419870190795766490538152266133275719301746600456755676981698275073456167861250690592123158864562154374520965404662302021777080955786689555572278440584257339143519552401957846756547184936309681162688311270346070978295196520286127546084518754101343847167317411334663651224353155708922832986024733914404378308329939470681936292724611086233674438280474706944451259179758968578586776922825669769799647830235228968401076967370240196629874319884991097673759506327980525890362562549291578468972273075267672335596196628955651036224599721331273353396563273499203344654605784030741543499716059355004332522480712642145005296233317803928055878399912681757030885916082855367016659948362455612780551571314890122802593516451912613632921347547449298950752127321112973413800312611906395734626886049237812686160422233056069973581993398150273140122733451994386617359609657703315204060563420815456568021161107083313712107014402914716018903814494175963144484609545551524495035190782833760966460136311796651312497365183449833850779158999944356429734024541622870693857219257093426333519209410443891015308393214383917955900895734687914141565756742521489233084220870131360813432253602973928956886306151719823239604416806558653690852827818032333688683544020882776988077646788739656297957221771809232146448403402948744361098355082352346815449825068464777669511961816132655867912125881701706155509662049998426564479998534130260015042193750778648027604855692012042437481595158027834642292977560334484181512333017541540608066556108583773487411999130951249366777072877376124475591046067842951777185545238598547195103655398029454024921801775495857695858204595675395933609163778155876396742447655158475033319831701997941677862781462581089109723432322184337519376984086737595128993195546379547029132987328432650525203844854836804773049148346885358510771305502810457551035572516628147768411252500167895503270421184108881210022748986366450596384006583691064492765002397865066280459274715967177101234091673313902728151666289125725354490026597505054448952371687762726596839110584217509356071755293483957519599753467974788376593564937149455204392133427956044610522488971373924176739920748971192928034799453166644747153373292108301111358048805779824014824087853009030647248824493496334608573603737881717389082380830559512224715531270298473680486911891288698205128057885993662147324779869058458433611329165625521782180469786237742337960190626582776175810319448674810716556501907957009791210474674154340640014525526192612177287236135790042825872022482986515337674116038381892059067462452189406547703476945846784418899828480450301517680552540501315798887241071003168612331495380236171956599924626902975500647551252466529623551450081222723309793913696330205442117790930868834533313194528466069814507761104744069405217082048516549432140848728058581668089409653699525432126164863743994998774089946194537902411310948000242021946575896388928377907278367342667619028920998061122525247118003984268441949680678674234607603892894910092770374843068666846539995163180682568369957528200802697405412593165437494271744329492424326097411101476703324520256141932175636887622699492499214435981966908392179230444081579484594317091858006221441550417581810465538640949669656909080693493017437887491230212290940603535938279382909858942972262893147827259621299961827947698933681456233477046190397704045984913593496429047846231156869206949768273176416616532264458180277542155444461511116351665668189330338269837756814755717695340647367594835509062153198812031165191125059068052039106579150686406036880953723696742625328666710771863656476702270807853003731832371707829108226763720365754325526439433476722549259287957281437193332608252910673135699356234947774190100416462457485448056370789569415299386459282518849959642603142410535849020131325998007189490695055441662452476405648798378767388424236106471716322362207420539123576056331094014888903494714933256132955515590900068819914167733973501477829661592247103899145486457953539645137496507421871838306869527853285120258641100968682686172891005113190245214744659823693547027974283819344022813426180100213753459256101713862025277536451056944655563343622611322697688174308823738295984402184816809880338970486972366369450311638707784988586426113198755893264738267055288568242827144334963914042247173443674981595027277058502899569339008366215518787410202311782460131983117808687307145661957635621508642068611950485602457836183259225641826741274587220397066243669227956873921855880128829716637302224115958010376991157049292109853177913935306071081081031603725075571096552098582029212884412452536061961555977922659327431880010723107480666698609495475665738248681720524461455575835048148629928954695396126016604742213375269372782744268022622315912766990364804661598252447129869208427347991810495058300271637672619979670641582686596338921371079506239824229353533429342621243625204620290795024447438407183132754549665406585198495388784224137955870497531098604988877717084639086855442132184222488694573271669045291318689849480229406429476991188480176271762675253333026175535136404970760682330968450155413285153270988785938665200000304457629384173015352759040393011436358276865141902233406723054351315973883134643274335886980244359532521513020431187863609497396039129426160585888107530839087722302261005890858334162072088029995538355511283117238353019435765032956196263019181597101009168355259545135581053700323530513839199756906831574990681625738751809703816849777829746625223194224068796183277672191181130796913160762786723649074314170786500247821598707019229814211435747885741993772718685888485315757621687436719581678189816267769545361808619035287814051524260373221830102624342475111443137857944690251076726203651798869832556551699407995840008965770913704241276272085845640201331338572279664521499491961611974323709163176478907687878477797833021674762984309411328948478111783131023174390368169797701889217204231999840158393473892497761132452587542971567171351976812868820250565666893663598718416929871736722732397313726856879544139110492175100144215929502529896052734954808632009018540192446008145427957297267293038574955428644322504593008665005420072281087645552968481823423215750257971567847021581469538596995670280455270106223363562959752833404771046040437761544915059337473097065927238067510692622876268142426209663366567391396667781496501899556099806563262161418710162619601323060022308328274581573992330703232490494085264407874182624083208353501922699254408058285753193305614847883512064093101644180075669322068814071723773485453629969794674333511417656838575039910258503743902626739029116477945820717097493810068090780078472137575963679947937091443991362602542868679707172352406663966973794788567002022413349626059718269140329599712313756195075775709748154224978774963433895201290038849995452359496599667505211162858328315347271435527302257578626570334417214599324031782976993777603197287576470995331616736192486988248963842727234026036912485219216358925053131416896203259117775414845389813009645498717288119432189445327198143995064879050690855735554650662321467662181899618068145801558695385742665922394500070611320267835733832239555894088752466759152697982955214970468424467479812999495358614278531863592146194675705286044255457993926397397896089935157377329124866976278414774315167768435852166047768249277363725174484386281844707379442170451004235089467337427008865493154656503395698416205911501745460538390608812756785537271990534571243431906412877594350532005709745244214262773116315253871937086664096233983587360301632565421281977983645829544390996062071695588412565847778485097178288392968474881405749994313869640093146349220547295119397890549066280106103611066258656667262588870984963048657269799612474624094312068941620665892497574678298209189460475979522575080692588622500345976022430664522354066741690902182741659545966551975373741686872742183318211334335433039281057337966841686573606514578326667915070651100367929319752558240480084137013897421601925797395225546880087305107722059806718649838013562490936384005683046616828741754078350426612690397448869249918941494603751976199345088925051914527344213857107127451913585450973931265309807401396343343338784498782417652041733536661894303479456833561578990724019915466650927775465738338700613452058375927176287415255544939015931814583622620567046525159550863686282388124439271590063325260014368216672601306508999214396591100240408800046461175041709922610511913018625816883828542597829782314784872937213265268462943884154355090552265162428506750631830854530020899922722609163870712938623837288257772068144843849908959818193367963173869904304149791750295003121083376918320404906153442138604983958435854214474167051039447946850483740500835642192369171523530634497879484761584701476432930540000783237379939923183359633027106947552498864384122852748164776947726585720813592612453292433564752515844092225945618252049070317349264565485769326833865258639998787970879285618125918707737095870153395783025081696115431590377150608869616794847622226282608981417626598804476907063478163346387181994591007689809405082724529442139085082033956491990837208994693806740581452200071750846386998661551539315660898710111589707612718189650178862745245587770921145310300551928936331187630807969690938348161582086758064695095240523615667386222222620036462951212815545932340760943460256282995649278285466101191720080093500058830602422510361799551798497575356955884119691903277591366801126212686856962132951244254996878741396365923085306971608646444116883410581937097970314209763547092455985267793365866513020975851190160282550516211257416900684267820743376195565181808906412046965617460617000581166945468071740485587564468620115081616835906229799290988005332935190106763501541993171263143744310556032528870123475882809699341977817553729554534144893600858829948569549799748953152027970131769757148385666830717679961544694003505670158374206315328246207752055534520987509346279030531141056130410913619713515869000186248966848758034253732520551958079212315052277421895886675378739737270890579968278944994563532863829370132431852485831182370919148277937502591378800100824323302755310703305351941715840455221917931122047795610402132187098355170678516097220408816357631433667785801943258449840685793759553349667756941809717539125112763964080525916775155842314632060935614645654096359259634814716532029328542592078423168382042717826808655017395965240957334470196293218737875464497793153073414891733682248227816530154295244407185947053170450106764026105811615805351365591979547703354793485078856722053521870680226454437092462793897801429756310383073668657847140586453500893578835377985451607434154481438322478984818169976662497046501791714812492068281428968270808375924809560179329188391219423143203232036704484311247546830548998126472669720063830242800080350558924553874233717892237250944787346381904577276292844817222496425405082243535904831417979080392155325559239786670804103532816445301526591922007149444400663748013987755153869499995920856234615237286764921899269204394641236019972822340697029917451262601568551999514240121925278997447114495581829555694087046329080800765777532351817480837644993715120282754038739585382954900633992109427427507717825781786597092778836305293091839127898075335042242842399555321862767301984051118675060350440641245605148253082623713505072674078259158897664620080864346175202288576045511361113230969495056095110605801508557858446323142509885176605695829667327155148678577806421481250428930406401516923329909651017759784175733176521075665925140757267325873348889869889239729519937781562954335328507451635810691021045599548746521348424863763188409780278801532736750929875405136415226029958023158311154301764025951361189744540883638068615814283129975743524595861765460381257202240763020748043335265028589399719873279276448421390879858512896799394875337859715396183355409959074534313918876655071934842819139437208187176213694263932124369517348799077897216266466264554254449777065445650202511723053411540627157341915584056755676268116645091407473438216963617904078939038653319362082416792968262753051343367069789880433367245028758534170412335180109276506392382043859900900710039963514987751872085338164608179433172145472637519996919042236261151124355290801508824060570995748497495661276271865586176097342808454320795342991199345448491884251705625022357895122164205457386468857365034108554286889459713190371258757548764772085440914892665339898472782759197829367964524864810859229383089198993541435617457086537373786766711638982621806966265312588787868655515022764041640295508651448033617820243609880520826162158093582077026126810294723836697149164408265957069062635339573937755130005847078748656462076852146027129160086626235200181863496061952845279633569232677516966460591816809248243867186708194522701204372023394582673528180323331059811623062488122877835754404883341966401631398513348000191304907603329188778239591346110845693310926999290370059752790151899364205997576172977588380011121174983590332199073012293622120134734117298944381433991044022464379810338305275589745574814703156578818748079109928937975378903956064846976503396259020435968324467913003493446888571939605175106443550491696479687252614600276368116047711598370855114511525948075629291415062803498924812571771024590130068068952229382772179316876442459310445710408719297877632445439653740016756774998554147753653354746490336397613200748514723407516426797117063901484770447807726158872468193682506730074008954043506418880344114038734150340745461228654738811825699790058513860309588201988489656501188876103458913260713684648681070396608360287543937284127855775822832337469744050890097289773947974244935712273877549654373124399100266819487561427573591671276312490527051074243793861401119749971576527673975620861104197539297109572333624232973684903709631170411999409540302416940207671278681198625373352870787770192170390348390109320080123639079051668733822902106330910376816750121730765351186639415168521444307203919796156619287987189904593024008299247646226972179197246938604643749271967920915593602528366026352983327202798136263107296377945478433835776278456208845891274428312336735118484411363883358249002058623610212988936562896090383510843085880542959418904955057443901537476401701712345940128908066202785975909303653240114521379305418843415432631712721710176270564969011832815141896078947428068437092701718125317022990681313912007775487109963976581789402178699585993451350537443627051646413783100237527462904526562741069395128538337459745413037252426842529665312506306071924525601229363945348935228586003986547035022064249410806445470332587455367055484406763662305880640346234174713595315869913448075044630760061064534524768985170986049193346192877049519783871535282854719978713885627535583119875107887119165860146166716135193416213682124159222122105055196434088643627401238809395081413385974964475141149376085103989099051139061647407224664303993357920815188977443564179197485679962690831744271142457541464796294471463948813379054386095437902526518393859059856428040398236638709041008449926303082458037395929011907018123152208890300946209716632253267513365517900428974311524847125290319893324301818883043829920681788557573989577518930421119568944848974211808199607177130409943875444537056057514498715159912992160559790760743474338061271447456968472326054572425116788752389997423408426029447655677781732221080077716716951780053622298789089262566152107706392529590188215560834762203709536576027802717734242764086733646713727005085998410058708995319824144353393731733171661989926984594380865462666351675977032869257776921774330429754269569544645536846369085401971931538393183697315385996037784200626164917569110503000724555621750908169573306260382223848518754842162385267837430533194703725356171087518389041931246557994108113350112001134565590821296846014697087063033984095000299107154532340855385190739771405509002126613616116451999943634625312565330696906959877821295314550129102174433737604570238035589084029501881209242018551475130642440561376581567253977923584250739437778966713068547573323323277864358257403137137669073175625417047326514140437879162128307553890396597889464272198578505085392559937903905588912456159572986040944496190197733794353677038272697136290852096247602669357693607918743705755849892220003463456912300282117103371410241032941804254911678021110068039989350530743831271631082681621318345098040688116936177488092218223970879281694532149311226975551104036437274322438421913319865203743000775545089897626940623533871872705678052610649904255704000417300500197667291535445544838410713571051583238839019252364293903423660227643022178758325458386083948501419514032596367311332610823216583644281228124106706028022992117238617081595811404479840500556741223998838558758716825787955456480319428401780649103433406469331238916760797708359537714313643344977130934814413733900849839116506721512924745059364517671876461492662671833651592793692159781670761242367412880134207870555372815008389113617631242994670834952443855576510043274999981267488252361275144748063066005278179900899301665604283443436548367695120864490635531754302283705013860214657549357019814303353781918932020633329359909407750642728631134840306195387401400036054375744836717551337581930026841526006998324237767107286670799422031131983625547403515619224509697602767243075124305702281307787701886784764238435317083487814866102879141730451297152887465051904655763352189474246561394568218227527966756087135444612435905948412083512565618281026264688934849635306295694390562917736284579287695085552089860372060340757481075576611925659626168856753473396927432684525551348060128723205006960722150216666128260582271683721058428061478902072714158343748112460214521189584216733172144020369133297280114176987396202443422718448813657835039692423554727116523312493297705627145965554060098892646746079322690828819136404541201920781961922903446264922667401425638877227536768070574254710036037021792829624761737858741081456521235502415856651377437392138902081734305385540810673842443875666077050034674892369553137987249340493495013270734935948517617948853592389727800933649052626104530096434785209233971752548458279694332163905769191051894502342917378915798753547233743093121854717351345726943330632679146917290961584581576397585638177558994886798860301622722903228414436775810706771855987671160132208361149131031729768438582612269818232886016922592062244379775626236234162241526076671810651634349339848422632442250353938609483099378961672780205021901864228749719920188783818974767206342197943167347435377881355813892669264445151032674494628553519579016206814995509508863780096707544398343384055791804946772371773400192350362288168413700166451247986673570044669651846585696748790900435431426558194820371577870116755756371191485373631263492888321206227641770268287959524518025817164915766552101550028015009769244521872741664468687821914767225073588280364578922018683799685177820913546490205619950357490424684726604722044808792400973472103840574305360731155945750576713297772094689073165157698898733023493986440619550992706973235930124822041148411714321896954356590657441599538204950317022957293888710387437889489289350647794671147168045870185197406919572161026764415782304018218252483068541773766877895381309500199261536595643175806545543068914183202182227424950568472582304937562418723446850296913486728760212840792526599980662000030791927334619719033010289933304268025598892797347694746385972814458303324303214868364167698844649091954061110992519742469013853387098434197392870246251523846780408629640847074754737376879738272347533295780505805426289915870053744919923972754257783458379690059956885151282241350597976574798242807967857956374996509965964770686421706253044374715429461168323043072033291480050365313489838979918351992949911450964746265167034497464899133986715301623333889862557784491458409500394400986315752865695755428768805327296793440697241493436400782284512760633896462955293238906405559078095460160810664913161107416051033139742431289801903964810261158056651532778777895252666874677246502528079301258642181187526235875753172699464797090417068178634211959714447435137208726027681346198625184437545674834057512137743264122454566040574680976860664662234077042205551399082383990865431761690024954424090697941764757197971595171124833431071147811847777077686064323927228906730734527107090736913699848679563704899253788675503890493133271459623358679994101776669906179890985178817610067911411991077332175560039807500137644841150821050347976510366510764722924074716427422104385010113666234239321258015378725970452654263505322710932456032458267522799204261779080825736946449540838991568610737505644747520807093829496211728818088566265113019565567922476356196860464840978348988357805810828032909242317760456148545373268530299788842072475154786418419874600625547353683762089737158613434789020386349887889423136286508131056138243263233443146093590069390215549270415425016750828690516884338890765139687873236372064950200022738890256594510427306523528483667886308764893875659684766158843791106771625456978290473178314732039653101328865392503471460578926524086612883638824104879245776321900392977660340128980099058531356902327927961437091546145905275202771368133594232343577795905407344484975063421733929987078605393879887434187334360149429990573509925636334705923559351009756587150371397238767845537632375520927846770663899021043011147929423730984686764138532258866064781373344508212078501487567997627158713582692782643107547483179896591978322588953341991938704401809317854519104155060331613612009030844301386841763551542375765945035269901412347190048504123913276210026858210020432088950732144943152024735027056865330782981036472129285165541940036248348263561906472201378768279629717903005740618262544816859548274031751886425886882732367559800287167225896201885815869581887972285916663878624222279404911750768137936003039885457928876857316736408011633792812146104825172715514846396158139872478837244489830262412619329210331259838232032907177130543247739606931242889146005313933441499816332519384434063728289745148943091705749526357007441389694988473041485358588097457006988150749313103920349732486194146448092629922206926037179932713015421387116128583566980657433650008486632283896243414641147338895845807166057112417703408354213689970449868318463660759016537378721072421862531618978669595414250169567088907066816049155306192279468598152755093053309539028142534761264029093916181853151105926248486663105729649156654420616605059807067804568789152819712178885350731212190530778674949891879379475348914349971337189591703037421051008410915549280666018596095919521987057050366996925802149967378837459989013243241428314134407905639921847506968462010897850016861090274484568305364227985995847111108794080502575221477478992329197631310563510017928815471037470744334046219457002634333275952343773923012414857063855306580585489027832135635051741359036849607014044474181286441466247738304533660354378351412608381305374331153118454414453828596641468101842830708441376607982356193308140237108885842892230739296394108359806187104173899735908024256659563695130844933816444147331385924321168699906226131900183806593629613588382236868105562108422917059365771304633179415516174926935413780460074171829523059381159230342776524091306682081381569600302030766975344037208476807591546968642018137728253578094972587873115322353327236814962403200446167027990828439839353024427279190081986711643677665079979314817570925346126365349091545901328856250826460251185003931870400342253350004588213033195426646423878803517007971651706675509762701764293891643064303295452900937142118640925539001256506769266166519106118175976335738311534732353522046195409059513050555251680531662408536624946351445770862630514801299759443039405766231328210898530427331245670867972898255892901830591909740203554143089569591632214243078153160842522429889846303706062559741507466584420411459217379688170823136447604092492651867450719276127900212423918054605884303475056700285167128565083262205235863064378362318295767259198386457446670283641799249368971422552888348929511157243858779729916422441302510640525723976776255601961102535267565340876420856126116645476598665710468072700866315261391705435652432524391435061184189822514659931613638648301462358147192324922219312027090831166039572561985296844505096985629153329461796816888565588285057558145767127352776767681014665350073441508250359317637528186514587268432787352554706036135334559290772066712113563518006245751950449938877420746507234293973034211095639414447797945881343420648380714807465287976421576575860044129998486606161919689946745925142197163492131821730322444963162099968454619123444294854768132936825894730734457377524802531199274517946875278512760929168869258130087756375756930686885610639926592757041761489936640715374913372659039214524962210979165178047073458948368224467545931768079819180579446804931653189688116089774243195507235829368368276803195597095228500421203110072906476018464207530514181205719575126470606736954362419002395579522954986748913436445266193609701318849463849203006873098920063161240476510064623780171913154296039267575309281802305603287418025228280635218204923771764667769952009501523240909406625157278478037150789951088993900284318333998543818081088364762026668050457807685112217834574230211998612752972580979172049875078848289228532405030531835655013460670659335074781912548310918724127043986224796966256763882023475422248043779848641868220636007256411141489661600223510431711487131897644479251509505789211095174945749929949284557464650677642348281886709762915755429411249743860134822022284321861944483561939509823859306712073205376803751242239044153437651475638273257688752607365478901669181530599915171621451848394194738484048911379882050998232590038473000725385091318310333261913164702130044747794973840280561994603239492147838077550160225410537623440918833860097266857793026503860467265923566863051629088093722928269097220176431074141558237994513469053666714150327855756597459725105110177236549147510982967212240742894481024094843658446586868030047353004397842641647994476588491835775679731242597731969307001326501295979825230881291263618729363252746033829496413993246011093921459083798051537001486375309101245700430035515647346587830957938868039137019061918208620281346288054244286506566784609687046456327160928651292906457219739869766804864000687943326431542047443629632783457692971508212704667953026691810944396459378938097662983590070690526006618845783184194787337767581405000070826767550749893705485393276513007748537750643742168670219410792316418049627172171427442797318457984946984776683769376391972828124685173332547726357437284570902887752471078819666653024831943559752538678908244684326146169976310888050870753268814587728911161101683892834015587704107001074082382645669451866987209982723280227674919184761453926100635389275931724528637426320838908950567967848109027715756359746118552053393870669973440616922985839463556046493460423451550308972365572235019424595198939094678405374338398961880452892218182543357167914066778197442227702421037005191072091009189440125230743291781515301539887694771154057861523818768774604107571675340713670085264032125581300648887309591273288574820089110886079768665352865804973228251026074290200682248940555680497987528429282297116979228733599723533637418562698243160920816868251564228605254536938987467279217169017789031208329779983478995008866334495358586438946473074483873692409958536791662460498439105262175423866688735380556914527271163879321349893914851205483245800853797529129503611671537537568251815323012111267835183360183352599744408003185414364995759135980372383687633871694416554515366328258161374667444287926913925063578531754988072131013991386891627498964364857083203698276257120213463444149730681364391669240026265835789762963061232212301491553628942004664944207738855500247636282875378208870882647560616518581638689413138251043202704311920140853053086849442752610408077569436304160980531993402800100613414626366593932756982558868348554045975545768989006045771466025344269283188388978017337730704819753380250636464510982600842126184663981108005010203007516416042235475296569679066969663115638633931831430264721456102323177696258044511812647117112540901776114948075174056191902354206367969146729045433646737573263196026810867588827940681233143074274634954453093380284242492917509552761051734039033329427441401926943353345454079936549047010037056141741224376410709002489056767528453499042954689562563332589465662223651634531290216797051459481292283467098993623359560055230281900169571241089937469053327593514799557739364458471354611449334893343464707338877573525470533640116014066563544513095916376589301598610895768133925727590384580570434965170063459678881024962302272240188263437332254002051199230082852234439823147367388493930988917471460251079675613395423840789109467092183748741360076947099241607369475517922832136152035892900077986780462692227140689061626088698459165049550017565332186710955124523455976624065273953089519809448225088139886466652450871872893555092738865575473173058793660386457060882942332485238662794401006829060282144923045017811834589991187546764404173922164777376163335725671469359574060399628051112055690454119451381937925135878008700399813120030932235517597403862731960770470806830602609832707182156658331729333362588989188591956722736426584670717639295334945543500322569435815537566631363842632919781017418878246911687361953186574317340093238176842322790741025110421786038682890799874318928410353263722124057170970482915044301893823379734087442254344551428443083463366268091080696357905578069353090267431319850006125091155351860604997911031358567460361733214080853834465007992362902180832998128706140900327794528264211423551601847887888954164821395716075346888629512240109957901026787588917689608230458702140265481142433647986666032768287293963403354566249602159159487189477025319163494568754584552919417313889586019793270660555419955328315394162444914386737608183224108211475628829716259144100997515994739997900698652159829149805702298782434260141933455240610907743522521345641896369519316404830690887434173244348586765617623596037160593777245020118451284284848582331785956809821998846390782079837994071178712937188298473159232755077987731642685210598339492065039904496696016945072244898618982220496561581174794865181134562038663114525268002387537399570852622538922258251473815395856822120531668074178875686003431111483417035368732909110011298127846688923052728730978258198550553257529907747936817003177191306682972869746075478809251038666514818421443781973821343721353207876616175186079708958857345989170104409481574240071844125284843686797687222318691013335970324892094624493315337063829236020193157181542541749526271698828936816051879019661539121817363657226398421203922873759839517289174453388374730377505389206598417728946944722008742733234023415542304068661307010371413627767057331544906704579127098441911878458702614994388615409757925226712373773170270716137662831842949114639358778641606321637073230300785012221290039553891622337925794939245680814790023167701692569693670685755638634701479482391360961568224085001566950346033652793319712433864394170264026247673877454402638079830525381456458671408624308627060926786305304868011513998614350361423092418427713045546973654397029998738839690966015871962461910602313021665407009275210779122774603598327923333752609735241726669424214721117671042036580101838495565474136261780088292050591100204753683798071861993891554059716662203742906717444849282953566645067353965695690213061451952843407747237188012479915637704445938199116959690471189846265907590266444216133842135061058983476055656039005903455812879032112809081478520019182532378697051945842805853210788724548813087262264780242343663960962432497624716614587593718496155954378957195480442472464755992442112703676372934113524185917175592337126884394775425714911813998227488450858550562203870634532183682312512201424898667327865994511380448010211402012271371194229408474794446006060790560940384124576386970888628474459801899294107257848657211438974009573183856567502759524683642360880616038687043817357134670385460912047318502168352250918179413057281540555053885433766635118069060391538404728037430940465569753545743840762433765337617254561835307160546144849092202364522372233766919708988994580397766383713393805124013173256520471844813527234443703895038602490803733042193120335730612535617402104415261975444332697099132210413384832302874196365584994315077716436872988695592117246687407107563828355244320899941864025815350943261233250530341237242808152990568565217386541729111817746408319274133972850874953812507229124692748253580881105289164930960157541039335772377132711331219725650402464079809228491191502255925773950135464511431106347812984671743987524947829814773144442380086067386646895261960044570434838591517396751349644922116969265000261293341697940649090161372180921986698357049240093680353564698606946465447923860083041351119215052027798381561124152268430739753604559859706478763098094338293270340870801654850079211980954585035330628624541257973234638925007433329032854668387399566242948730946849136864322956213439931610352324896655101440591208515041911461918174903667753166964896277088189304121165062396126077184958794297082752912340734848025123063589353915471313068159344243216395269667098230794809634642974455743562973433847909635296297747934162386652299141504900523857417771148531010844202492530170813298787240492637616568199598283269418936080096845305346000503068392667124603101237355089614760499746660465649827258028650227295884385793127506983105608075044965589204216947899861784141187089614821681703717853634718431528861080320044611496257123462927234842676665917803203238732965784707389211085245673627390392842976461559695093212604730486944997614720813419860683496675025389371361743698158154054499440140848341028415970416065080125521115677020617272583238509473943854614536748613949905733393494923706854984632113653769157933090691206870390235226035709991914230414483810214434267491022839971501507294859559668411337856183826316576036322234791176333504012587432970911822109824174253264501985779274418036353079958451541918083021124240200198074764015555339834265005330907851812729179216612854711579259830462898901884046882700927679615080060556516153580241416626777457593913098105557102088785232305030467794034498704205563117287678209059035588482807992675812464375235296177601138191004469044294804095863876239589683299259405195263932238844699659382750642740443979376633909037090059103607937143897601933020469203469672081131101632107572149593176007583862141315951839932260211870283015581987944724512696153218666991486882452946746759740139820065817240186433433329511232667793121506638423684941352953233744859671765756317270314953516165793324742264177353137477028610596664765879427877771708176309362256136852448990173318240249192756518795312096078705237088685649232063286687021374513911881958302343777595561473503210232678268559690508449791324226938457090705678199428683486522476688270099559521124146358166357340871169294896183082550612905452885413929849596618063367901314377268622969460618497228143360670255856459665804108829261565973337030988251323883435754096599980447408750975835045780763060913163871793545420675877691671747822893081386541132344015113358121893933572861888317525466983993336839717440454100568559959316865548527277475232541873878067134225026393230899101937437503580436625403686126946885580561958312499476534328654521602667347571141583720663083037195621719332069127680945702537852822886573543840933863460836850928967061489369861790228898700174701871916832807594732296133920141329646130486594004018126957108926696888859543694066249825028032699510264972738241044845911102055270975350483524032339689712230044926404713329415996968097270964848077444076406594310781991931029837981818669632214613840510213535623552888837356345288308132914476854078141870661573689848877045454882723674793059177624762502429630402895645746026283104955517782941447886748742261978369716057341645138291675209622154839857174398684423733886642711302575523823466896395120461394917542353842171330014700210307394144618821579898682870343019660906582179467568532739016976238856283915392831363102857995785775652098183722319709178639348658559966322076258522804033704370962188397350025521851546678617962873155237924800600566251219260060271926193024936342589382224818877538940716722813835684522577127508129650806386926926117136072744384167747292279825302094269768512795896212635266569206626476650891620131936110676043802592647195205380041229606552933443585800544458953859580530658073259036527500415011820495057557362039261217493534603041412928064463580879097122951252315630333811799122442917370738703398935486971912095897110046879005647873247419513795032505952342784454599925787736119827626116979725309471587329712572516807165197985005018319292297180511109570751659084213500064829030419432824541736772051954636530003053045573934548757727097848312901093943136589999208182761571179108581193249421661602521442834528642806786224342860059088129247473819734637992267761095856562995413634043730199778896089845284133499652927247125880100189621476015734919281171969368545391650107456708751263770840811398808830515194123103224479818106874330154535885441053487295144978064166722587925457617757502069618066175455790449134402325559890796748048464188487328062376682522713193028402492655731590510091582637295224922953617266675220918397664057251660167750248789321581402640556502740938559841143693865396988236262924244268879581630098369046435710074390688179452924606710871913930745892447151029199706636899188342262506303060319713274982706727321982521385482247062911733962126415692104326783496689570683823280772008675831624896552181798588699426135320745375204299271144388498013208856921057356115405248056867796190736416064439516194887189696451949913007428005717110020978518939508550678202858373380170886129878495481373118095317413540003095210921038576321434111577754891173186059544590013397137365606798575427090401740493876845856596608978602522071680221448361704196390649522195960426295597365388242299901986361627282976689516205430680612263978827263030945684644254967508397989423541483168931218643235490046754952469207626958268256562937795445082701326194993828690411667877927161814672900011151943873207876012624515363769124477199059469622665577233453504871592301665360721341849321472078731457016318654841185601634194590850039969786003551471609552385919692516884177496889685262378608795025925001570563724063339866717665654624151260957649435335048404635320889111504550600657190367769468749582898403849721177549689267549755665180881075874758312129606497239523890532893904611155842849999309236036186564943405524510763412580289279268495158885344124643556258094179404179543000148834432550817717404856286534294018281518088903018005872007234188989785582290191487996720018413156924069714777432206702223829377539410148103571341618278981386035155652113714172113008740142329099801316842539899921194906994731572686699602914195989784976526630092630522224147104344959878718542367647573409024750365028950388426600176559992902471261797015294477011251131028645718181141199304578707465228523150573482364964940955846825666033898292405153689824404120063106331141854958231380098379642648330698966507710543685921794544410376758330979991762309591274233336845638638415068219516690379737788341240500526341149857905408792461593325091044769286186009784664156025099762793284877314891332211605134086108112273544279223844157236161137900147492887008036221351463747193756530260583332623525414906903787946976040613082548186594122916535147194645080850876667955963055228377534594999717044278783790763435413725459639161238511826709949993001526407850219175445191491893172608124987322422928635453561663818272885702964484704601775494080335400089153347625217974840400364233957575824715128325736220740062848655252392155658942640459592903661194139086886952536153453352412514300104613523270142154579120779176387903127041825422621222682327395545367691330047762257941218211399984331536968524655410683171024463166935616442344415392439951664516062655226687025596401498646963240442164155651951498216970662710150676851657280517291677275005201209818905904383261348814105627336012918506604660785543391555182266202828685792055323730752846578004174512490990112358413415332186459042587238381620031324248570479753932996999908464510531971925591518200113154320707788199016832616230507707990080680940489409936612394776600021373382153513671677785336510665484641603720114893970542339737716336782425846928686112953565628050774400588194885429509095321013964584658172757963301805494119148316863043316361923559321301669484721587136223721756968095312109960098152945940498038465462855017098650895443622911357901568939979809367365651891133984462429152564895095615793783758083412298893696983464569801126539555025772109686142805490167929103194754563431265394067100013283265056274967053969307686683325628228825147129550341445485904177540381016093981724910344069224275168437402435678639788128310415243050766124566256051990475155835592649722598834451208094265940809652956891811628813548118730763925409950131609339794440783015529897474866100513271077857744285722315910685007259846465200400282507099204780840232222332333591590172307318891141439501694568729135177138159784904584272010595758966145694853918578194710086816959048532641071594246507579214744056190350218193328581329919514202728144760253695393013034761384254363598924259124403074770629412568763246913077085494605013500720620194291356779223748537312696004424639789627195320151888544108958419417469141599728236413722630451529467857020903440800161570771164299764446542956785720305828397304785061772289698455149185723857766877043368945090291545875556413201394249832910093726310611516807771018316150940698706212339082389078270259698366415760853781559977963336630414930979848846912305950149600789048128517974366694037559532292315239206109574471024571521335543556547485133985047678524649678136511492145136604991118376879782025059322277006950243671750028573669082390130230986350644457635231518925958438815041892643263798283811008665213818255062740819681048091752270760561217599121763147423508515801324279365889816073289540496663393194120706887975933833556063009724612190089352626700305561099771669665048067911792154970653560301644239058581625617308530803102665338514843310531008970029352468834141325226110714923588101805819748381746185505029107769080912935147524261930840899018454867674580481909091332882567769126105360298972517777498921420688562630478387091273174471788520350635926405542974336759565469208820938507633006958231591656794836543796736719639461650742924871410772827506809444098201069286678644673986511312504501950181421624231105627656128481064747784374115255676030076560331989240556238316560447503437109511069407568648887168721024271819419792572695159746677850109408503646404903174766099136841297034044922867067792080459811702484973116081616081230838826316597785730160983204933174959617754665241507524683440954820408860642728591258587428874004221151192564792863202208917514100323029870207942543744797755341618023967041315030997940932965034741808086768939513747225992928893793504565471036130356970149588193310740814135599292713152262805585825340328408937412233426681237038220324094539926817588687650899676651810044486188607072341031686564207458946446425790287266448834989953538725600709072321710363078643433030437442598260996550824021275561062727315008948717007416431112579794555595002596653281330325006629419502717677917285760208090688353512238459673154218261829766988927317737803542673271566044889891081316968990334800378274539925084987137399461913216420221962890302211250735093055495895394253148814935652145956801332114954421930248626691123762765416518275497291341078569666964580205097669964021113802018171800141503644791803710853891527999847354564663514804231471361879951996274806516426835135278894989691340051407389584535505378432717698457349004527512506991662488991733653959616405588974269151170404640021494355250089016939660072040702958526487076196546171457152460523418951129636881217941686086534573024193153484211824238213373851248805778606392917534202253209888509400817334503028835631997419114011562458153605002260528652240892667994092911531307545656149628915110298529082648226442541822363594409084172772588782103708119892323411873692229280216573772708729707049254008294855072312779977991812144295393181467636723691511842584485494491681893765147631302573276205344501453732652865561012482613213345363026781605031075729787903174344790642247758149638203770259069657382948295413491370969134881124214147065742679699176383339592099500510354790780779571158991527316089389919653742373659897899051306393453688930650239140482251370046379986118128729854313347425568916228752325063724003914921551482384522787463172296227536335658836130104622128699805889133432383647816350306450420169628020203211333950050281455080381078023787274163039036406728911111377081614540328347653094873892442730728911605464360433284774734875827840381564544697914659474409818835603281819754125619121882941726920067274096659470386264743098978634394171021337994554457343390485839785383755886442162513888861874840037699837861257111988965964488392724118897775893912012407140628895065627996401266463547449364947982636513857929656381213479133006110812881002934298988422918570571429101784753876662552894241383622099582689069802160166837372507243750104700127269324227792988014206892671535787094524590381773329758118813124609176971184268688635936748268613689125811198482651225839548890196438952316988838609184510219217744048102027321380682825310653967099118782177489315778692342082305348740490443494758556280709003258788267784533079904371407694371892469551948583243295228903092542295428889752377296619379691619219478015069019823405303758147413528195047411169260328337065156919711235568794096439336450725980972715731373105440973209535300450237707008769178722898758837115009729062117219698715255710968379306855507254016945902631151811871355392688030454298292870528938159101484192946770116170060996332858423957377627201415347279677996238269899445739266029697040730121420658346386042646004964336452516220771211373421131774265613722958007298232291197430741610923566380861020498383034814450966273396484313331131495152301117678556366056804281915114016564598094439715024948821095380695038192014851978402701972402094143459798046461024770775763761913190636306733731351638875358466342330137809846953109328359017277852702807147277553699452215324925029969016010450997301596786009124109376181032625415130697997897105046523861851560550684288293155913757000966453228487768974328245278070728810325567863001742402012606054783546932653612629823869599093559647005922132106562686221329215070760447105364331238725489698080270815612344437206227614106683990980052377159401384431553760524234596925033736423518562056863433143451200927599716093949096104976062528150060442093446246389683697314320608656128550710016020267875803217002833650117144559539860474112218154582384698819285286018646334017643053003861513349590429095225879529576822216132446238944496115835265158880226502277343907838676609714822730150758688665575057535182184096719106857361958925961969295099164320905323879420446378502261129771822468131797609119415060324412885936964295194441297454771612375970584630688464486193222723337948154118812831794942249626358658678763107112805508602551807343995556985599821108821900228573292259065022752004238647521751640198461717992956763632957738648601528399156489248124417140951584330551247491208460417454268531425686050320523631053552121529687341308816775783339570420246748252931555085138124293297096127358073845744445323856516285703611956581990778429807359917604917802046748026082927302555671418244269783807262364233892654280826083997448898702839072362028723226236537281673329135635710713914843062538896803477670370393350214513892830050138326244499844436301113164370810624752761089243211309120301404579570307404333408073527860591715228173290822343318816199248875511907584828382914072942800685697583988689334137085236503074075715806315944424273283953706495850574330508042215303793533164311821582021985709495289394413647659920044825463585427132932774052850611819248139254610577553179141013652937075836345819949685885573436721217946214362934532816004893495973134712902689934424911371818620457817350435805939317616891592290514380381180465266053729867914677989224580313569840132324127045548219880141544503032742871317578696749109822898101447595361202855034283488526281968762370704704839613105886382229677102839815734296623811060497956325149961786848845292615215103824296916984902645187788943828497113211919866838670606552496367013576940222295531604325042881353006461526092265235559731586017996906439383729824168628019415632337990216445820850319584220864772520662594423065248372804573822649606367509794024066895956490866485698686625801556328991572592873751468537344883396014144826659849939318305525395136867617776083358191751306479935381352761146228810216538788331713114884296941461115829027875051544708466425452921916414863747360976124583959260924542646783546764204432926394610653278672940307614953301157932008081390359402600852619046963012414613816059144337143293817334347483795286311758347425163494912383184726775308655152130286900648552216261915255715828366267646910647057899213189099229788237954984885377238997818427823930485693870556754829114329206041481392730869843556092896184616708782445402830672216447081440562560169171817571211426929526967706870860565740557785212158078844790053574249928022649477205943730000575150943626314496669171493182137005936215601865393988336450726141523495331315398621257818883237353238239137876969162891329783054532258212487039247489059441578650163575182868017482977726699829026546122930368730436287560493701970193263075069254414141077770635744215055360494404257341264959405359909304878390740462897716515016220704721284334631483706562077512403674353008795954893134481057884581709249942203783568012223494367717134349006904341255896292591811573153483126629930390127845457432041804522941774185207025995686209116199710364063538749547300244559565292458758731870574832737367819586018232496817392853269077807917668203340791536796877785727400837105305627493869892371650300885710007090472761273830142708654431756580429483389861436985846849978372877595727838455431568903474538976977962511303976920925918325538638166827171965630925744242659844651300723343764933122334528985538318173491490401703849492149677241849398117139594345805325017712650915722949670967729283214921465089089542561153912531556855573705405838420684219039690583391871233515929466344343637692492357290219647933084715122192684608749681853237337626008749943399049482595450332030426196071623434335170179369152142380269874773961414151994003890090668534870417721071272382889014704206848874474362026403981759108298211333648595612705573530270532049105146088111578267990032054748131971722470474275639690697416785849058085997441835709137324897020166982258190695129302853644071751708503826639499392901914919989816107941295986087099699003055412754087173988340739880988354863834172471225190456317334915427178701227709952091283158705791320707255955810260894536807516480816913863927328737357197008331627620553644391503485952486153398047612918303924923246142625881603089921884128991243614957961566665973771612063505661856896559293972972225703738356921439570878540584816282526691342859261980487843492650638404785809709937295917563658295368740664523557937887696440207749804151559690694904475390861156787035201852652580998403436306217043162199094602770290086652800743296123219302641492718558089369151597619189381965138248712657764376838153735776195655310668390379148070326907158013859174236897572217796696776820599838938007382588611187697458198871518788998159551901996562050422173112511644048049112131144672977801448633470829758929861792323844577213027269804143104755446798148295773138910197971974588027649517798512867658423400397067478040258113431305312108062815627146131774201817132010281595854626599449406467390844468095982122616049091884072163363372659302581145309038280258181328649755140889857924098362517177219763914390066579914925924826100503399294266758209580110872015874112616243744740877775927702786993826234444578599709035816375402703914347856750206101012515702243953401149943261371622805047351235630230563400646092933062146303419085944819423617094437691058975796529415880730886881418614137511540439189151667815112445129622660235246558497273175241360040834442257765135817074111097996487854351680276814869654161849018693175191402084842380702185063761264699413464542810705215016774508435283903559492037024404038114812079271270944075713375093636136665550849149893209352603278291244493474050009804799018732983301531058457159463596949220009194044022908581649229988504522836489088571598510099650317792716050581831531871704098449918352600874765328011526132144115668557915283878913111740390262095183680000126278865557170432370267644593962030064584722799576784994972416818290284767827110413621184226742796341892671067471243957842919299612468526595076782935500932161647520935546261433914550260254137609164750152298568525270299684205541292897259982945833164228805101031030627178660714984915714007727647173640293898339479818916982372468833444687904730999168119309728499114455038267143074509633274099230796953010067520415566685098069692350502261821489858886975036688231686071368500510801189772102664410271150208810254959327104745261210373074497754087598707235816020327638777135109709978418791436387424507808203213091852288391251176185746487289802824917801304091843277275795221304523854534636535856648252826667017882963146558143815528898841468992789155028898219936993813344906883323721803004539785594971854830603394392521207534644453006930897973647823002630708833859261131288394276003378260060770651039829707154921612683679239461633029493951696329024151358016259667310815782486824887402554405161720450721399905980230143651337835272796754295631232515501643977732036446967837991533432915551431788136797517421730223813189967814435375365422531750999511965723394789222497638451629641172342313120246844240680374678421758276841498520297077169769475849488070420936837121751938126283766834081045910574417595944706015074051030251590672140555644003190258571347832124605561033741472047730097919509474192850525593625670540176154096304548049468512277156232937338964476349898291513085560745889738713183019265264381882626704245433258651152014180108684323369779193592940792351823673763707565667835885076013403224848102775513112392320404523261132121078956130658521909183347884015444299109138805383152053523436391813060146631579976250580257991193525254831257983395225478353001992639274769991673371304862115749818567562908496361137414376006799225511484756251328952839514739705119774214225908556642396129611947997656646456759389302769978830383374203400454358040490330911993148879791759230804163472033677934779446113201233251693417369603100865763748602328825941951473785089652827628151375601962438609270850566215297517796068144866695137631572252646850355644703461573996362359066930656684307649478552727792800946191258209621124701556505907933111683433810640490936877440682199279599970146957416281058524057085289184349728592763110288736956148253908130478704945168450362519833877413755318720387990636318719303906762133985139595118241036455471482578574672313080172490012920292710240185588843324471683066418185593008198793966022774771368929317816987535437121829393324120690198489528891073534881537203637907832015919761914708387541126446065449358704790270351801050876390854100978053465689318839363677280489371740872107712308889593315897132063576665015534639205810847033040941857069977673901828774037183654600840663338408638569746992962394403031384415617689149088543813630137169107433970695907240140922208804203656739412138835525671791821404419765387580968400581291276194877304601155107965596309426950359385505711635027342195733226816529115081497333643872997149201180027222244083872706051392939243753079637404465132952338990524054852595418984294416435654709294707312818546777953756166496367696862125959681273177396777852860862356117329361806118697031003857283852269470880583986612269736527431432456122101111801213762135725227843000184447301346848615236019943365311017930577797161803335301966112101062525541397130076786386363266487914719426420018666755921327354037333030496991110637894031941575874550867040582462806714556131470900464233723155757425309379504021302875815188760290872326781887561569827724042633958242914157258174778276020349029547130149545532094548367070324508680359263120804137246420499897576146989926921216955271788378177430724288161427235457549486128246053695076971092897456207388613093919475793567626465001690061774401572722307580911313120784782192748453905082636350153449786932097362225957148304801465235332777872482252479571416595411400432811895204006656487320509045083950236036719801685250282370836784885213564709691670370024275679251478063776424294099902457134948727355397998237847757382527164485378444375966112210393084833766203571920427931136871480682242755464967330368302642045410247382170840900605380742171508613054099297008357982969732839243768794638647484335860126152348185768372214649485661200357954738265234348227050327837332269928244473692787626957191353850458653771341529620556713007418841796886012569413598758186866173944492919467984800991281154451651563755680072756860932650885163685566949060899548371216729165278663208242058227783730588143165294173918969013999241103451173121477635166411850047007708051328710849304322541108582526597320308704754995547282903388370406816812164194216259172599432004921505028192477220903803449173381128707295609670813639454163044609766707143023414478491322223349937388185618099523380901373971428432262995460593083584458073157219364751883561135786800326638455487566065595012928662000966813371332537726958146075022350904101312375605970484365477969606846536298270530600263437368767017973310902676172805279230865484385885660253679033890509730535187340901896937793513991611170703547162596774699098487869540896364559963094515356391141412300310420384823186919359157836622503629005229695017766579055253972927850878238781944795203147397916840008526945563577027254870885209395345866803346345847404813209446879870204416970460522398786269698778547801347981540269197318048145403881087460236976190726896905740260811272907582410169087529821052675193237356696443685277034441520495462860859788838265029479244924302956803025186535761681549726753194130745051309085113178030288292226182290152870737672675253087066259981806029378186761831274984904428022169934251036933053685828532848590654331357219678491028755530855862915474358374058432347902578924926903750533232930835660694523836157645564372922231648422799062329515647600501449735417460197502317035944777135064047005732302880542472614655362208513288833238145039558223252557070935563781537747519716496522319212430833168562569941790234094578115045742955705149880219623264535860842378761551041081053280003721573220814498905747976764144194733941024619662320700060789391411892899532944835015961703436105897935298246266168446501871997302425932656696150555174774654998665939011420874755866431853047032830981130150394368143703601250550295708286851798421485455913254937472275299907000643125121267786868776599839893950848716224014389982707040457229252027506134219292412218858429404661949348775139765346363608601210510093372012210451108471053046612083437298811723163302157313883282896325821040496134743466117990333849538648383161020185969443444503974288883412951338975037797879116407452547425689363737864033307138773046747316064671624500816084033021578168328328897717342331720480785399216216554708190535999764559310662312548606882075953260933840224749294520755400795960813697021381514931078516907746507304995112000900680173076314003593498278451472330858326014023314875514388684978497414211746720528620717474529187342032021783507739264892324882022622549390685639317164427580927327710036712134020543884786325631671840500123228105141056376854068305989395575053190539453477153477606584094753264365803971699381250318980870586944663669386902317878065274522234942528917052774651877937636895016556609488086459423055668889141504628768306466292327282163917795764454831634107022089047291405556360570447366279639042700161457586689637430695877080295490752802636717345631621662148623299646062911159617318485635266622068177662540882160912170540787064725892249008730635722427496562614204242062743455191009113087867024880328910098958851496881081569437990836402267219164146853713566189012851382435865381257173099497471921940137990672954287975109344349671633275207017316815328651321769999795604326305709121208236885258053570161019566533665826402158544526474250180522225485134082832241909188283540185949623092825438670174681635072913440288894337615763583890552933020998689892813418869583783311852309648660875090301941927687211727915817797202373708015432184706092915611253074097602138738093325007434553817328147645678300683487897404559936505742396387542974699099118875137009749340325084387151513382542245873418258222942915585797551366919931584039536600953428474609796319268484198070088705830700619452786562019115280077561464036605276321134568996873289604777949721162568481000502037327723591555419038440214703462571267999532879921389133316933934077268484573965492904320035063033532459591483585170108377327607237813897859366139703566771576890312942269131278674594977501660026524317695966075936107140804099374177724624737241450679560264439143705036346866045588238719090340940640130683942244399472519668232847549226693235225765569709325184745303492692604108615427991637257600169717210878948319649053642191447863724724089676815589251015977291131056803161034950952304353751536908456590089592438160299038622812269332683968919046433393697486164223300142340743743377827154953025309679591197345208008121026749369156752331460837227501596168174136161167529067891116380957479296461096282539657674166629252526215727128424546761202976801784569705323793907202936112182259872281288823921102223716107725699675714413258016111528000558626114846711776524484155056625870410418154187693423524299793805220185932199234116245381986887188487821133186428933389221786797351011667819386956382664296369356750966649216264692396272569426473080684620724671222856512682591725841655959746146597166475860737003354714465533843524940186318686751877422460679167121455743046984668944579334506378484694087374580606043138142229409330679332837222722196374003551739904199943167865353579456216824206885697512972522646923380338401765652835031636108935652963549205859788037012755488724586551660153194185771968403205837463609739465742060228607977791519088258552106926449433060609285023925414734956853412988034038921368834680279634845448923391678416448087473356419120062635594363758311244004274987467278996601333106353464685548022509674690435116004703843707940972917152956835184702099616965581140437467128200709473351990813974416225187777760539532080457824792514413690948973136621486261738212200685254524962035215475367501420812552292673616078676237417414239024644761135255949399956472213148049941950119071853963715909323872015685094023064441904381766671119479619916184128016437434781221575850851642789714050921459233305201685024671528472372082073969456396282594334031647268828268532582462276282674197768969088321131994203400570027579255986408521902565823479498731380473541880236822511138865579123405743320868189231900804820011378454556620826353407860516247944562123942629176658120971269615700266068124984836437655460755709160683882756575799542161692331176721688387323954253816178589693388476718131341808717556830973340747249542220237301012132634053683171803443599123763166579758221304832393124097128829635486022768353393622183381295089458991853921231722089167331067696640560961505588417845182949656450588181594112097046782486339287098248405856065152393385180603428214767452008688927717016451061726852743085764397859075477759237424742137137051220335364976118117479014817871290445258437391469470567350155833574827544663262239592164871871144282811198164619277637443750763152581935926595017124751157455219264195344727948023227059106167195427538222780076671601966714718193105995985884998936237483545754304167072945210294920946899482770885857921106676182887908440400394033328545228353522619229978560172794751585915137280082117634777958042495314507459332198393878215944609586997478769975370153643505271075981846662584954810362204043432390275576843377586040266734068761830789244033699978588903966972767400882061195985904081725403462486856300638790883675274025122976490880853402005140624459580806500614655282453327350089303468189204828059146906647789665896636130736933876529109558823443996653945392251770674318267293526292483539657750521360085707532486804266317366157369061692423145679132167744109944142361071090220599374459268848862184921084712315246682023234600388962210918668155058914553987001231154531099152796467910374998343441423552966279370346818277072153935499872126648903441873478179822115630946907800779056141232622611816487342771102624582625057576750154706499375383777725925559505822943218896715667601367559166756943739464322565893825067885880602545595602327820994763769679826136145374159178287151095823375037942256651141512659732171734114232521184015999558263640564757042172185504210163701455346744853741869821685514359196346668620915360584561828536842697198741615222470618317007858440647307129919713913978426444663410417554041473580822703494712245575692338551450726420487739247928367475097399240237651413059711579519770049007813857404862636325376086497583659949785549381750792460439503651481886787510224804683356210581030880495849899888555985036157555554880527082785473573205163221460514684532331088411540741172779895242743133127237979782890844311806894390925935449574567648461774896376764153270982565146423203590680993323665536121691457524312492857566561845852991462243255904199794951902712448854776254504434376876292884683079869618760606190862978587701809707080670405943084567175530602382263508955139174233009520478471796170326420820493777141847988061652762610151274339411975164280694927946850313181226663006466453993216378818020244835795268372598479108943943035606461622754568987779421106088881390729848584645396644539907152568260351295719436910174973947943774622363225619952251503722653234721540034125920872710804821999201518676045568420378884176650498685470321947114486602191660765841777540413007981900537127815900668193407205577808695341864985959786569732006273227513162331637817345017341027157844726699096566595240040938800380584164092511637116907044598761892191257357169194676924054771925687233466782631833620692166473335144199694010901500594609618695061079124929997988060685946604077845942324838003580120491884200243113954280804553386721678580178992813121101785105789652775438709068311376698709547283862252190732170206954886333928064008046887169309733370293676879537559444774337329202493694395347855994602121744291508131577379015956709308200376768734039770616248372210761938583949111848830059315144860647960715342890176680671328648207151638061312436960569523261040074598076365626439435853703071572038707093605760122056237949669072777375442541796940201150600000751039281873699344839045548732404446106383452036067550206178789783467276831295188961768443718787394423570175375112914062331733978339278261196544648713089508602211565487538909377008737526961921482838459153371232163026410611850842752940233268135037928461363944430503922449010890874472680874098623786313322787015781483581555834504730752200276989493194779822405522511331352288383007771355365177688576641245895369449202311648759950712060628659721258357228161777469749835788087159690159184470042957914129493908214194691450414522805347372824065388306427928458997649677521515567947265881241669976736108330851434452391117186780000309020685405464181087215857893207538095272775896496301371044328446206210807616424069710504589668770996879963779081579716902497399505976978190730431990741417639063144669862757514588070497241335174667565219079698805009507765975654347060247957652974145226605759559164580313723868265129572856806298099417518851104967259260463869075360557596133727778738850740635654039465172298582801960923461068727159746396163872694279477922146959671020515385410886772211000142649226839440737380616477289956666953625061623454771604648377081842242665048087639709126561339968920356766776629266043888261595221635986622874367938374695264380009733651638306485134189452604294081787879899038113890729898628540646197995266863632962873356242584912352744360744412763026119005660692402090250352315612928519949449629226131394788118425155896515643716120249575633982910755727363546276449287689330772738976064574093963337808830569919186545700847092907817314575017839459890576543492124529790435220036033675445713630172583011755562246829001782222693908047935542342285091390290892203345530666985437399734729757521269315486186463097849901087747224648706211528661640229634533111548704991486043375197354994963645036264701794114080215748293988908060916948476589936394284232198065922551695631008010305781356489580244531949588418621977368646504836490007119781105516356636343017952710632535469823792159045858560307891746152971248374827629021402839213336061116862113482146785221433839225157600588340124311769316221353316406924329651064914440638883266469806642882297361450111240738415914939453994895487742713864112933345911762158984774066457087316953688699834459226699024285570434112461013326468344026208202957668508753914309890907230201733471169834371952644125378115449953993983721922973266559966500952769912530206998737949407360463060988121177261026867929718977209712090260987097025083433683909208482418798151985034971494022925165652055280783786782678983249010333610030552527670386200633821018259336224456638037674603338682215867207671870848390604575508625204413657261098901112494424839855031197140678144449364386762443732536230760251854316998472304698446762298367763613698927210264743875024639373765120121208353413059951516243795000037572782571633180870137000072752561789664124316972155716515347598007067298898874554406557180083493472077338558982607736711367317764382263745564098014247447339866206570960357054122448080842020847704427392911050925605659590330983285628795954759923755472175783712177323816577552428561502898442784583699259069839142875578616936235279305294993953425494149114865483303759123394340741448330509031939276672777346625420603039825334217292672016945227319500824997226999294483916276348578731689928694249296379550754327000422464020008867835455863190260557437706175284655353497972835249941648262277659247015618356691791944856112121008676217492367428330118120760906113848269517917797762850082739443998023638196317157929099386417389645322746082868297468154243829848588195883164284493866307768108397722217032550725020022392935801009186284094424619227463746515688046635080206971622687335802850322386212681554499411406964913615684835879653785702838112535974661879881934563264346082482068401610079645886567903459926836305858070397795849266956544224893052847490489066454773975806740846483406057022961624206770062515693095904324992237147494253229714728775889464315995143830174963278467366115373431889767745663919305905426214124062832496381269323681016946073699962042801145355188756668394037116144481480420448591253144702768694609860615553340249163676913803909477348196525758507838464190855597814120394170908637421228970078291843876712967175727827066446341906406607753687406157945068104558978081655776539737930388932058207719593711340851126190121813561367767072432003520629574589781961125227879967482647238264130812141331179687088700435432269348432122105490435733523603712335218831851244593124605607575382730181395294347939782771134937903522014496478291122042143072546527293404355845998228112281735162329227202600053081340234609408316164435346523974357596317529408710655440813661313152946807480902810288523394281468262046175146423643489755700085377919995884133109176536090667464270228095714253904108803684416464566729032825411341184200758601213575493288455431620914583694133521855233289227649644306067879286225768669167659473895812285688774164893327727485202826702829392015553509647345896641978996029785231080827761243632048625486856738052804349445204185849117377411751692325080828920005963303074287477174923702517457249916937402558103311363289477334004929692865849736468326528225952827407085885226139849723830989120665998991071097158433884100102049849113687328619395348243424786741819995572884524754072010669524561616697875627169149871483152603229799342227554721657658604388580971893017877780240217812572645191164037079965356088165308714051104657904252413070869895303333924276586915989656563008313831822146693571479922211391058322282036305633013820310095544366368220076169559035117120562702232834211502015669978230277057800822849188793017758737980337341704538001870984778913840592113087530660014189937180759558929971950474242466071564367573005448141769501184063547234753329976359044186352647666215623985126234738992540839303929930595237985313267426657533215754449884406509813087074143768126778978886095774466302138578530486993741672269968778521888841663129904111078469539414890952262058538173173456765439158329804676977805749017818983267245236363075187230073739256087852669136845366703544521725413909012436585293781574421951397853319956250779260333884023805187022471008758496336035593025722640659913805409833861707880715970005305415600695772448180685981747004275142518427251200949198329452259534807547179567560865512846959760949950566284892341712273605435839594638652815702057256813256992000776561671275835073097351532298889033835127851366474618819567643029039710166534481951870297920487742455308215927430004675392493396625753174777192077395299905464605604808656476742883035115890934201027259529023381801965294238161548109995494376342276296131459831002160827720654675325559049965125002272279121956256732001539116354782670484732974458280265432599652344092263565488944160437407867728893080048490054126704527479328259530230328159678471146124670292211510725297399325101723820377053359132104404470005683913710627092276149075788647567384319269053351297316418841106199952826237453187716450702275208781577801293638735128219986834315072824774978052731658950017299383361812637692899894540183160377282954597729688100530183869691235202568929493466826112771039602512398610315016756125509269967021860152997503173544376216400595942888574425611423958909512934376909234979411320496740324319922995896162057844983114505691441574577743171171602808477006636210473736590786342695331349812776918689153628276708236557595146455581269823021519307467405476083545904566151332901203547044174914785983155239946914454309792035443759169939698859862166891281638122055069933838336221173485741016113417994168796862271720237665725122411118252832752839942698013076290648490286409386148098946067877216660256672523216759350697953700440007984018011356712946747567572445084905011700806490015605667007791997035284495495231474417276244278799228504442560205307575734736303891137162256087577248021313278870703390469283970792650900251363224727193808854077167454522476029481453149417029432640752675945670266515955351203987066816183251347308537486129325694797106430604294725924228908391919016179641944766517462203138661548199560846858615299836958581935787740037595510839246793009918214429413626325215972949546867843079071030277035003816706619155318466516852023045373916041507041553927060649852381958534356489765495037909373147874887324322241999098124718607346755719629570802267354784601876138743660878965234123424863682888909123035468244907174682726165090659448536656041187080599457322405661311429033338405990977805638004395272468267418727736699124392960857614952809036156373062715248533067902963347693192636481853176380285317819890083155222124965273535241556642361120175546659780492813152043564437559768873099145199792468790726528893945585888659252424891951185910169878234516775124560550845495094986871889302372626759048853296666173619661687077394669087737948300409847897400588290359016271713029882685606252230459998606507141047082489661250889904624362258540083283581564846423528854373442558203800189776234739244133951075015241475589507908913077684219175023591167366069062723749563711042469823532982256083831528489971858206164634205603518025747750940475526237091788219328806633380508749649897681515277828340621481353583126169318468561956983056764897597007436994023267025952764524165990583920631442089408918329948976263665818365651970137452281873942005353139845859282124224336667766618575714461122190616456416751957888431545145045048767014972668758082013589462033072762681881359017276204878894939651710568793803481758178405628641683303813688865919563709328743545006735444274292902041554983431144923366552534502367181735965278903378522570930270817975820312253234809532546446239502248393135189523923950409250448539849248782953597140215536920872193442147285040300753320160464693747196484820069549990636744112579248652177812835240580759928994864581919012765998208263071824258164601783841581633793917092956713060291473877021410620518920361747397811491028919826598768433927220459158198173830463549762533267530748764471213396133708723907702405965967628973237298676038176494244320557383017715129055084618279771506519898035940622154469289741919134934064670875167217380322250696481728423882939925584620220613192838123026700563606329422208073462598920088681869891225268261490112652806088327757995406469035165526084475336601756767297428437291078417558105363153612437711285176442191874596918381204354398314758050638487470102460048927874612825366833583950208134090778868835646842999730362568041969063666855168652865640936960018440670216668697949461712352041497107439983778708934785597017345928722459734948758034079577931221394249185561534641584678195215014956916047671334717292138071104714227965841651299623250489312937590037592927400606841226702757097617771829060705466415130083332676228226696330391988694507068480628127711138654430808173238159998195654322680456874403977989243211628896810371611164138674228706437730036868761047462051838270961165799693974649934270385827034437943750410341552221806114833936038836963547449001326299254858206435006648543739608597954412614483701149114055320857275420392789106492893992951150317347819741751510830178250381040095546397339036124542916833542166331885114751912350373610680509591292187344683968418339699770951767585498181805545184133033350720902858291470971766335689967221406705129277406067071391747379276397706398968997181715368006853033536795070626371097580387816155521244789135274077444207461144241103515587043628823882172305936574087464364889642593094966454891172958890092581683824120446259988582915277635754046754010587639822005015216785910293191524109554261107831105752368656281203628044431086660649911187170156666533870565774037890454598879031364523574106887216117626695187818100745282768224707409698665567274105568976486799758250697804121550467711496483028931040555455237162011510495722960135113562052714035643362967434228478785472591613556385712480695267636473586143237371879659485067002784481582435581677262616199737416092587558300259813015659245302725562423906752366153551809974753116288064142733627754906732997696301158647566991951410472671435503019848223666354036175632394845109627479622668340409912045975767591872088234929976399830938507738017059566799959306601208329627161400212134618785197760736468581594220110483811424385267073921535521707717946202781824203268680409174671992703779044071519345619442312758953905045317730386604273964672468036318218615311028152229676075927393365998453331444351654960176680166744410062153645655477767017224185727155735104367563746112214872383074413600392983842233950118236867299415121062970576097483803197569720296349064532631330682027812947317130878325160124997437573990184427563849886875382566953456402848387754909847817296814216008408827322949166780624982412433537403744775779007117277161299694000979186904154433961174475584613095218340950276663187917669977175254921554224471985474999144591778586001784954238577135855627656987895307411470694752527209057317266757577282807639689430451046259436789623883728225845249503976834400177203174900451919092976469429474774366039741352156589687198382114040603814308106006036695654213083242229374294708415835716324162263746598641162669428166892935169183625239071317788960755937920766834861398160336569116934538961736746843931393742293656116616610319319329465843947449588698417436178285429199368278821895762464218333644199479678758648917174858038953134471232454963572843330918067902256539573117829507515609361664451731854145819949022067225719518512110389158650533324353331857531800664792792328652355320721953649461250008172960582313553598426601719261778048364808105946746541180515837059474631374635539837025148262266121403964645584703837606496983212420554108670967395335552952559405156429386318878108860151247557848205311391648494689349547555224026933810278961905890105042627737921076379709196589136487338388574121473569063267388047692927405583732951511101965607139802887525986418816046376582670784361071558277344926799557475835078036223479226806666175360091676248641448740927593714422972593006642928576141381488357051120375555987647760762992073647876200085899943903319221270778879991866441318828372580648375976477287421869674074840492601499739830082184672199813916957908561630031655151801092704803826295717759464519052646098789925069278070548470305511980876178718308306727768647792065641458154607950161230965060982141555156669207331335812422500809505524251641058184164747762352666564398271359547106869500707410665868544555617542368330561262273908416737631629005037189334170015395513204739315990925099912077719040137787554593932399944327350491873361753484490597496783532968465106416480544038017273754317440738520779945507636376705653671485314526551219117334211877190168066408620431452123039181287289653657928685043231796611621869817473187175916113593955682025130836396274627993286233597996996023535790205578010670423886966195764078091389980479804352049646294033598810783234424775651161437758623659719175409481458053341798648640661033685956668982999258433859052165394079202143898219858146489915544131819039390394743306828768255018444961945468021552168655400373674931639881189323837086574191386638996122012963234479910722834837141880776737711452708970654245604378801075874531419345034030670331049257655873822183756276816266133972883069849804709461971845508753644309126655053801514066326457475793197999776503994541572212883783849250819286996536090790370211695768938297813737065208534623709532379515315717653639853349752112073533573981190100694554594542832409489915503720535190303454505796822023041906015504525007456799216483641014107514956313805893513692518680521618834969002067852565881813143408207399724255980017430738983770137187521180310029465491064943829703570703966432322128811995706704240591417383809065586508846924642465702681549171219014426951057712981345003662094117835073088939851082283464293533895800310068663374689149885886881312687317610717565205735356184068651521138636598807017079403640119787598351097180919490302377133086089844218037956090096892530921674364001898485618207287066835605333081464918549755165077693798334905838765788307119406828832569513554801975551488918394107507119989121914204570180730517898193808190354089342605286713889994301291047425807856090422278759301645733063895122587889562409890250946367270044212927312605155602472656528487379846290085625300712937994040509265908378043634491165142191202093041687253781907046825594389935265275192936893882572924911634512002471525109190555525559023842848460292548505816619728601859540571013975132440261329563990137068279653039494964020890596848329842951437485613950302467800042303611165874287009117993963873546642893591892219950489173358335304131851688629122100422103673837046393235071378509976966216266744658446271457192741385514778652787883684301804738687440060666308674512541663574666641268136323306006622072461545943861241539915489535482470907002836104932263609820591672091897057614994025168841011347380715913539489178519787088756089988575534522022861375438851512783788054944121234132081580025890762696788768016593978282956965582514808754007572993905812154896946289327374128741299704914852088058490059322048403214276211537515915977536267485506909636573918266937439533240966258054129566309355060182530988886454853651392485149557382712538530410419956784951377655437099197327286109593156257414535746658011696064920433370327165481790398981626319158726762290201896217462387769544686503373533627155601523758909573096738398247227308950549719821547712075290895001497292268737767854164407112973855704851036165268515755520127798069788283681419952986127728119894654444233842093968214914834809275724536210416467785483755169417925734266961645200149028223404437786028373176797655519941616790573207225289284537723105055388147471732702023654394306911030146691814637509681908952434845236996989755906910100245276104248823829953600813496049993028530941835700088063585255206412566491352323199518173015751639506782574986567558941138114171631227921594890210647540716475031682779082237410746171413119845080826203481843136843165774160859634020646870012873986538887906954427916368338819016737534214804823995393523624149822675434946700751067693564639152571165867711744599796641332998645690201765210706584688116405789011535303721032408707371133084824914768342142113693800385945994891563180470785028039937740556246585134349414869526388501211389408347734690856950206198547678226376204694106655569832755980021471942403948058682585697357027335463722313986419557751222931896315593816733952450905222254767586694763615598032899013493636430562612574196802688527180238269269201548729763611905398821969703336471992942728306349022028371744694843701052181802707559111167676407249567294672346786169146693819816429284557119783759769245233180341208951949532398218044416031372901930833042419285503987700986138872930788836420283641332884790229033186830237676404131612510777014786251724854750627861576168408994455859982577029089678808751972226481787345323751076620594938035740795719993310814321712297135974364172375184099428272698116805017758716609879109069415849995657602849071658501729436776754063358033027030210361554799964907869619806554991209350311485162089715343065008866885378714068366698695915920471947011426703873984190862183326659788922273843320313245039391740850571259927846683551091291565384661550800590327392862127778440330027484879532552228822681618830940351857996203073712557046761272924684180133719326786937619351608643234446725206505085571638674041390998401359469064843265089739300172310021040807394074507017541057734202767494253876424812163018473235391613951957853433343733934582003556621487615545968417208255431647733515312670576960422474690244879458983194684862078194675112487043129030595232729711184624224552423515380180564745663121352517893474358880274983797927046758187726711196668094206182958949558573658397443723419374735211290517478779594620537686668943155647352107432858574324893074726735005835246671679669971282634311580543854967018540965167781270965621616265609704508769462581546120892632055071616594395554984864578095461625913898443494481139073571225680751216675523268916363745797328423644276314654659949298728047981832850047423010183666968070837168292301476135726195771537324522977938494144482050290583503243057178823546531915321743341166739250062249398062266013518926052879884597407500101931406472549781448176249432886086924910037861819879468061050024447782404204463101721480789486079577161287753209281237791667940264473869562185664135048899117175522450194288045575510675027529900181551759915091977138710898725806912666255250928294133368493484486446950848550559224732226604819466031850213324562696993930890497737409045402383105630798574219784241531569285592029137504391438872282275951362621289041128540075686619334772798904219655966799477397764286735764855948152969280590578481487881611913140107617820199142630633098076514705099375239235287727743621419621643896429726688717352063182175935744073462613812842185822298869389089424331485372769546920560027924459931947746699525923695976528611949106388731296576458795260829695025269366299504467609665700856577107420389610827050507845059646712430271122691983538079712624266854507792647468029737584681154620182708745211560343078395336459719418891380698169070348818452671737068125344410676745969960648774663401910891995295421313414834194091126806728246556121575721317881438245294830016171803226753586169095854695345889703717996530354878325567370976581598278921425669832161394752663988424811575498126215623230833890611208190837470213423510108668545800913264891491358565157411733531189980334933778895993699929842745957505580944217705548888603525278340963124878486655071161972704630623393217370027859340912355585685270405060074600527414245775059710916775166772196526803428515777211960199381787370245454596025199250662844614903111655222567406351229218957175675263138198675258584584294824914403604732389008691293453268106681992401515778918514279454852102962569137818214242270298742964554895904785380692407177256339343548249256163627261108108906239337623782917988690697413655694186819759252128555843141549778592405971767188046496082191993520160505667348802193228404243871436780580036772269427665620692441872146146384852880984706328399048163017728807566459149050101900755011310862842616092752912873446875866992524119185321523599696805040284211151215247161616965469727895271151304882287805447377222233101456506946413805873005560031054133025154826760497800554548136090783662272140243687725883008573895599707074812853602709150188141306170277017257372652400870146654676083227088451744792991588878520329861414464117196331617512287371879922912336000184455876330731946335108779484664200162806236452680446223723184213632500174127949806941103800650216126146866207048347272222031055190197886844679387285215776889355461588823937357216864266551187626812871935743868182223276027538227740862876516250366005123295883737147849187389325726841264052907835457115064372500667079577903046917813276614039310311259761577160702566433036487700614928201027506015178241230267496272590787686113662275503683536357049450891212320665361137295118019678254024843369195953994257953092361742737679954377617861509108245428578634907687659993512088743777013157214971488231455261220254195189939161272565123326517942511432248206606931975858504902904930016046908892992661709149406068466057427144982650073078869015824645700304668432156941745528506279583772900146812666295152738471602237870710498253383496321539812106822992299148464215781455675460132770838115160818466413756493035646366607593820123312120472653590919818821213734356919589515388493588497945053402655611254283627309451856229218977076864592755484088071982260499089386555233132267901975798254846103581999462369553418045381350558284371241736440319157132624713781059912581600053584861515076661098371694454794310762366744650235292969458100969890915953332359634324936457605316891452329956503826204050872180005915361269712089536055846818461806559811397552226050465009137972348517161474490624802612037568355623765216104942442200703371251689893856851479605221123779897799174014295932846682951862571143928651112749695522511354776769147210813534250255538706480917109694542338037841312548778415721949244100125201090309440255251507963172763335921004104170884077357210234034948663143931154777853947935735701514757376217979875721119170398326658106393290508732162147282099411361363428170042676954060305433685226532855088015471405383627604627267679357569866479742614985829943951031750151040727298940605604249989992482758986257038060124087004425512116622047283441790788576484562995781639577707184209801551630552259239124949512836121460216832892230456496667681770502190122503428984895978350085434978468192699776344413015687850316508906118014028147656016644732867933024153494979732060174790744772659765413940258446027055119636418549950104714205847327942448844312426085235416093727271411489374763716064832375564289611341563533047798644758501395591245038511046735616401066999132162175753958797975721972625079209916343421164490597944059456261047684134921792037395474806938535632188031913331969895259859258986986478018737822702061534502934233763492235655762224596423316214152710808941594287202716888004609209260054880516720600267863449109651086617346973819960736178309575657016127926072339740345051152091010224825472799164729921949763815837911298009801791998669942677634692688754717371104217620973599758162105781728795967554070436097806771965468063390336428804111416107621348135162374462384380036835565667044251148852688221197799701519357987904104319942651612043184923995962931505440523824670600815954050467985080903968572449921358721354918946257224020168079162821576536075551935560653537503255318470405495851134216599333769610289380057444757389027145541208508344076102396575139366233987230174081299024685275792596915012101941003669901694547493189971684985446258516774016305019885706360105044013066059023314387490691708746043995813372261381817006618519585044225488181595123464273979985172366807098389411596070282306375626466193666857057117580605881473072464989016186733328503213341096541352498338458437898550515557503440685671557831076647032850839549378611792392695719555392940183905655572699243660794135484816456205288341376593402136542722674808771966106445781132451764822971417438820478809456969309467901798311623325295744439056955115016622254392213631896486400501866767131020076035432797774177837424193853272391188861144110699237992613337599199749114584598657235831040423561565868358595495783480315111918622501230246907431473032984529855804488314135119410901071636521099882128761838723561353663308513578086457086258338707664797196437924335821756604100912688523122276991054444475288971838748437111102440715971916326926401136079361927780697890163277849808848811066763485625943386420215584884480645480780137022756581151033531027025220560061880309468037744359648714087489201153412732523767896733670544134423308197924042829670794232043847191689435528119519131277564173242712177400575585969016994755909973382446581592006726219774249925884468557133644488511440985385036174267724507966639984311004919546888143421292726912665121658306535220834408028501247336666550712621300780476426950427512428081204894357307106163367403635859937444715351119625557893228465500547345552213049017908951406921295942317995088387621230869285651810323592612569710740761656911868924146475015326850152919229225312699822597553719766999777160472601287797549946250049870176346462330720008217417389950099448642807018935331756055130094801695334614132895969329886165985476542835090929340746893860375751343417405375580704058739076788553881279014381495623546855860467040905676326666841061658668379787203670837609279425693212824337807090873142135083963627838498452817540812070036292425555756762652178278260417795351308211827962730014444425556661067375995723569940323692734510139218050370384907949278966545691371211055987250762692438666359126465310396258966700651630660773846694615553241437346922846078679647653274763994025191218839569294429938288045213347623462776258708085900519049768749175310023708959577054170347998251470820468705678874403747013926859375914146069302322236120460528744270297698956618702971560820913490529300635630791972868895739891804291926578413920511734220590530621080819194784756851994053277782354178343481312854922998469716118017392158769263388818964290763512944682701353401964394217840000426338841112731283528511945456176269460065681963225728932659873171917208417847915409990128760973329422887854022321211037185335490486418350612813317385150509042532487071483534188695255996632270736515477949178842294317834680230519457457646558233132223473465183317581399874947471541758898085486457660677854875373347564308236998998071953069064585842523578977080298708745596906925681518909504665581348969871186905193333293215907047033515241884771068552905946595934075142801794715431622624895778181472142223385233672414695261631113134382736255566400222489096897050867486222577633035742806543235947227811248468214894500316497509641477680699844469693066722219040465495050252790924954521460780792871611023967237574623012565954331881914772896220932372334042239689333599621921131217382816073683476852361917634456748826415393098416707107050947104976918551397684615266572974527754493394779611931856739886522914337658899283187429904595836156000156626501928435590590484695535752193467018047570254906168287555344557905975967309601902981254564848402422423420287047930522573945483149080105894103456913892007973989237629790134942938611423483533763252749932992104964057029387830051182846786374604540122106510480847565904684131819689803308824687310482454629297907077988962414508459434841264811759490445364592749258926933397063630446739930851416810609923684751037895178045259228319810566351866123296612812463487010941546142172084911707152305876571205197874207818425054308544416893872080616399445086639308206669370147552930726741255910160292670894956359601193045266179241360390516579900876275963466576195280065622201283868465508058664249553573974056754555370105188516826673170650473209077148862486188117563143077855134076834500941059311939388149365436411110177800525582560484520624601744047912381797602047625996214411755003163493055063108636709820609726957317221026195691721638225560711898283110652923961583142626497431948862507276768793756118146003367933279086610336865466675695904206041793197116166850157497194637248552670203775043302627411095762880671210415626313042173240325971733325147128469423717420713022587327156253825746989226092115276126568209112088250260640932711514103775686389948477180002332391984883061620969615865433043514423943216908808341375537429502834568391678966061093197565530727677222077609391692308525788998418899070836991351941751815698259561150447931041908723536809552994424329060785608550651581182816691295456471602442584578948393971732572469204082549788393475367048160145338526930613620217997976118291052557511207969966479783911615778143552508375460478301061204653952421222660085471901916652888799298835690766115618121169197377320354751518217531014317106409921511335581573052046851126324586413424781568635502227177790087207734620348985637311712690877703070607853892101020777655289353232046382104389902174496314585462812304595334621538878968187639768560306369611809206401491547036660871362873882241641375073924968177915498358795267437881342210810305229941183669936306611477936272993999689331592567893165854265538539171694241545610906671366240432925963019739428407167748630042501409494155265454542666919825766442975713934817926641799952381074809995812226942418520125182106175154667655822091411687978517069102393622668454072912991062206167958190236012190589069181368479993052362599647345605251823136286174101250485047075767293511698583741773644167835027828956816154685063827192248159595021202222083907330412064938694772657006910234518913329665101379637335645147379328381618713496168768523941286597166497435572990936943206383511389342656279091353467335247832042305215654950739509820598684540126037157622835466226902303449159507977282342567521611555305305099873289549481739695577117622714787285370188740351375810828319694712789497182805352849789665322381788627893976351826271688762365081475005391392235642513954391690459677941069005123626836543602118819691356157116912763567449921870764877787227971161056454097046076590942279812961321315716027272379191400959982621370263665282695562053401040904837158208976224989027103272060849701597585088551738894631694426057964083117597007633425343047894572174914979565743805970111493379144605667873980177286946335691893044883357599003449782134611059261425672584827520724065221193020699877262377118120459522549973494648212976419928717192651503281952399264582295121773686803663022690708275772412917363204155594741797841980791796866634393696254149633418876505976507783205634107909566715463617645847819331999233777906009342719537530166520464444634213899453092076797046652856089375386632298709279765654387786829783452092870176162327878645646127404418147031828663123394290385307365157534691657072467433655967474094475883492948541739649100453921342373693099415931855165717081293469629295890325903376735857100630973166927372951246024562062242348973549395046058361173567249571994708115697167494350993067854963121901166022917226156966048163878540305842742496429526936502287305952847403755768472320759913278955542319669409096330300791345548682198851605292592521425339050380310246030632539181961714280177308937258408829841848913853637471678576924716948211254849624452599332367590279705822392580687597232153264039848945094314895317416530817231960509804604393269894958262918064661425160663627017737030353930617839938551244151616110412925797710676063223418763102453151310753801344225798057033956222457178728059025379246427690310697458051803182994314996021424208615857791590851036087241822546548221957024775133270204973241786140884867752206998473505318429204034771167548377886934263601576447787746393274724624468520451036295086230726814288188269697698200886520068780619303826612873539465782875990408786146735423398236077587432219955688244444819163115297046912931048334762012275304346743124236176775915932718437080275223745499160663068461388338580261482128022176186019490449336050488954618163045826976170091019061885365647463052166140998663830514349872989537348942970474243489006990179576488697947614781388513442025317147303213333655323453057927279827654437000996904859443229487422106587451408615240995617985803687270870664986011984991734111945671920495180909297868415007246482637375527656039831036385283453825642554328103860237755958145005646720813894411682504825143201646652749705143083297728030802838555056264701058776230411400926324109435367762088313008358802130362059630824548501050855756575527652542867524106706727439142524130302095112703584569483471394390024686466294885324885628015013887015273522781801422752962640412756362310932871824185417586885623028007818332042659237599636810914216315530110254088189068965329850111652965918364272863605356823370839764695796153847933723993542884000273126463075542231625128364831214267477101192033234553878255226363507660213522016276361838627846636427878566788487896667215003762823581038880374282136498277113771617719751801430408016236089742055070469446218726074012624806699949368730375187576689752891441855206217084018752460773035949507597802403861027559427639641567721192098132515790340023897605218983520250298849195668707386570676564018149329237025017359724845475899724907264933169080949052399051733287399912498499377813157340685680902606017599173945136747690774308632620012565589587094457708030280071052271710526526847586727564282855533948488299662249340438421062976698425738223701485128879091335120070923228365733136053084350419247906927251078471221912625384931548701059835176644075065254401980381808356380888811326734160187591353981479816442053293877787469951758551707613214673514499105836513037712532816609201087672422708882717236208469050302814626185371424823711492160069567799266774047369779571834721940404043544270414311935559068134361720207058814193099499419650336117567938602899060872779002472343724114867583224024212950227064536059288321545774160350430407690830805301819215817355451644332886741478237892695355867018644404142026553010421246284563128499601648392474690104881147531278144840428581761451686828717355157106534823492532721968920002991207501782240571860208889380898756639075215633136690820123790706744380941429277843740693346892285339592872790999173155016556213954973036149269067023959480472418493449252280266591432303091608382882212142797093351212735313511851972178299206256124463456193915846505752251801941611343594169420996984850937635969708601055640213660951025880114130691971399660068954294990360657372835249127288945699440492626248957441045410647703112996300660965272464897589133090809118337627601529240536198300084279922592227402143368654604757805463053041491568202673309260586671093007440165328131383723058163218931568242569903097952829568428227610210943900305992583767503210653966455076518093924374612112290204825338972533645688752019184845095053169613934787151907382456926023837147650977568763681264045999011667961488758773421154398079598082502942730628540112522811750804109615075984783719673597916247034860936834734412454556565822081604062115501778624664941299768919850636610915750209291831141098353441253846525653370887783109887195105947023948337324777179283461125868551934958757484078404174490074090332641199811414178662223853642783569448992351753692391356641649825425745215660935615290719714182177562328095440939929220549189295470456048077458717689085918549918062710490265235306111671101755987364744851801360423551922120866609006003410605384631449962889763268152832283173062999375471196677237280370122602198228261607540567620157987668573197350137350767271800341311021381798261664066924218410867993967619525510054297510170321709542707676548909619335616727323115516074949819292405155652366866930077543106402124001134623387930000645124778128020887193467162903578708735998962294547270972030146646488287903179416446153980669734698116492923150712138364540706906067089133324030029518803390565480707685229314278030779502646411665482489964516187965106052962267630412825069294044275066492053035756100742004477797228499700277895588282319638174044682070157594393270093402271447700692386231335804228858834091658793988858386871399890982892199284281567004689131171294395262218166408803491846498041080358847991242352813360905513328451396563510010265898486391699144825682134452513498724532167290088037349290104274825685497786341238910068938274104208544336980032213324981999886194242056581770777884881493398343674494642210443842858549909684103071069264621690499630997939240678474210460497990431422341443770556353564673971854855343414320571892057186996676848159895281720352639109729690381991432987846857755139709690545917355373864958708597031707904538682371194992997001139285024821062391435657750881985815566633273982106152993158984994114504124870075188522503798567102933454413497060331194358676721903586626913009149096997699334265986568434003898993269139311004916135637970399608490782259171631595176771417462548153064445289677269448647310887348983062964385535390776777862139771621095573490360406613787136098867623361981691588381699288376347267183883435670961645451294543387879736768014090138484267226675953959816658851778421895057018134538918082939603979125883310138956736621100977893048507725144712138053930500844837784033084640671585885561938120383811862344292527849523580669418606234378748942110757491670568490859843337238358763232449506676252124571185553393058101744217044673196096738620548097397018793901950149030125726357519518158985051132060590575831535588526127015844297762546520572612758456734728274120464296366503242598025068228164598456800973060241285831768236775335837178292473666756066167178919739684635711041162651920290470383047745617689147758164675723537621308109543059436137088750048942680503062161569002710551443056810493482386320821277612894293238457010832542772089921396832574062944684267838265930957046129054715427453113204096486332144363609679934195585229450296498114950669347385230491139530518634219443334471160416666537218508359753147866806633519934796977750084993551499896527641058125596247213217156439450994754788254153935475074761292092932014187880430034736306239447806184209949303660294518601539592673854029700001148004382934587828234006128774921155012161284044682314202627121090323769791146272585813879410946314008355555119337795126107396195551329394015804907951760660368547686403757417933415986973961097553931523863828056894607222438090792625860410333908950494274338719708259102476219920439253326403171511503179269368854191133065882514098927145142075592519527970350354385958928367101293378198030280697985587805124002031685214077305000430524696321393583967930423353110655706737739768761971059646815345389559998108009787943340368692541231354505139345845810782688278126667981137138597731823521666825551711428803804780745155626325160818770512804661580234994149433029853614506676007460676348162287324881958846974384597459211094368087589084217424128788605803588792714732204864521159650967203334448925282667146172528061510605282802865806092055643360425078762240574645953705376252766626496414133156911863864489100056382564814393558264418696256263650904041637586693442998723271993279318005253045131158969953610294121690160815993966964167832825513196282819116762137032176401091206772880988569781066518423848795091550367081357184054342657066401076406769452856631551687609362382215127165763679968067671363611520209764871016101739005077089837968443224305794483001655751905954387980168729147131051245728895105827609389336575180733367382404547898050698209167855164924063655294857432861577538401683173301287646550611992053185980319492095738665859699631634282698688651994577904656494464666084172433059710462446581149107225263994513286642616429620950404603423596109549229423647565200915166137278682987585779000673662470670526707442222785934594401589215086385562141086255030304878032361076763007193611617972673355916272933805685150243144032785475535467218268394461660656956370063768302132899875177194807544032079202364000754675339681946720846243989786712954115677788354106450071358317774879754723622341276123516677579367168295572261134914370996047515997463547977244885177339820857099473274746554178692074130157501982878223024749919512078516688444674258811373261821219673639426983069319260035283470189781931938816959813039616071981844875417123053155300738086372683270735367268865410780779580616273712395785683722771444348869960565306589769508218175817470653115224062380748631025496983032236372070906248271110593188543707786326899942333647443578108897749382948289152445836405244055586827891314713175326433825210834285006548063951884647891218188539212463187326721470758245377101314617340173341535617073171315919475377227904814604067412971577659015352154765132909073797100693890211493339649195412733735441938533093376307432610963845826329841163398953741645414525126771057445454207091056380766442054669524073790316538294192557293419940380483013270328410666356799929964938409119438230623068832696426482376374809338172602887470656913835922507425638630147659657328572677277667231751276134876061619967788144048231422874824389188753367371269704506613595810169831495896338044285466303109623038716555276455723452484364877643487855574227593426330082278333895697713285708443595644734152454675727362861809119099141434904092092362421527172238142958860580778638599782576213597261108386062566528072471435234736990044398092260467472960170607472653321133630201158977615621302476949313346292124756052104221130428103826539311960079741438404255390926558418100307499192599536776739921495806385740789078777261294993281094506763729780269681073081999543101146626122176281643176762915595314715116614426342809103667546399931834742012675476855753678390008391063361791149021982995095211608692050287449226500659260437805538186245775361731496314186830182987052957004737859568095387271617914412201780332379108512475584590259529694463334933561344507284764437827382693035665782760529694021235019340270860358198198973286459445886390268986036778647462643672936903088515325203779649016443066295174896618293179500034140211376987023014005794712579268823760681609968277833425514245417044769723933215807348546961109590280618407908437832330527995881205664855728920371951057498066137662563741184751804404865759254462219182073483802368885843357059235557675399911914085247964361601540509992030536108457492003658548798028873484133385100231115642540203832995366082547489322756736866635295214738889260147889733082335617391237289504096974932198229911321142858347582164346827698862906496968747167954799122172977798787221702048753761476960092053296582839747204390076534849243196704668580062659357711802373658175324688040607365355674803514150027315549524597014973287750087559965760854633625993356040338784354079311361902877430243001501705678210457683264808181583158523765104950506015973501636773400838000360451903712078840923137851308441908882951860699995709042714545781488980245011296287456408167482591022243477227689344924534742859020561503974057259446260070993263091224350923746359969951851419264620157213075514553395840638563501439036750347185573298212570183537655136203964283722621852750188418647256060403348152204938505915934418726939436972047144422263864499407797039521764976565424451593850972500993509365363795132232464915723077386792757604108610234402690053066531389153417431930427000866146069483473982900285908072245789029548357480270154563237067276380011462644912669124433648189264096162070036605242754364397270779107272705688726676556870537419271026734556884894356936838081868465342029624874996344800281817499452774076153007687268783348979528007789835459105308306581324283613567178838645670299531084808562806195711116653238497589256545403738381362045054703637086869154433283717999488709829942482073571666176770731842649798981289715034244327983197101658235324491445456308306261441361205888554232827541453293974642938790242134075614511254006905341452712472633965078036369170512275270247701994407913726219401068952517040552595968436537667951877135980468194308599988706916367687086144777113035698401545239783165416741062993856039565164820262842678124711666541314182091959618227013734235341691535912810980143576865425917568882216827706113260981438863929641736164033376677966533355212172362942817278754938534783617948831030604352737604123146010884912921724790252998559168953973645098361973498705469783699256848349980548372565083958158525978619552669444303652254982439843205274604997615407076479513329769482097396799009235196719516330661915025273740249252928507046270052464248488925520957275509103418166126693493407177197916613624119632597933606209476737518684033484373819069748863853326396328983950989197662467413478555345981285134018622487960215051471276414098885343208060834355724513388051082944987866066677519782106667028182297218445802003057288405165826635607543876901257870573440074905888423744109437475630309661382296278268131164925955823810039249439709925819653529856515871814255931961718543854619234853575451799534250375249565481813341572330203679864688117856971957735634902634188271205667621837640036978891337165123817412605257134397752811505406256292422717832395896643702559318894425861005491146100824467406326289247839071584448203167897101245047555708295621823046311405644989189806935387902619158917503622167198834559347291063766469420327459264061264751337376855409660646286942967346098248731110718644929910804735012804626434187053084450363247223385885068232085588641989946238333746499799276149248726022455276081158040764394283384610875999081008222269724405750945972174031883880923719932838373654488299226782133178520268052027587032667595649442172396133036679074473894482577265094140641319374016356979016209129594457297038081794188143013425543671107403546045636547181674520204694481079126141241553151242704068986130003260145072651356615499120727518055502558341921081391900741916437712447943822412504435999189080742159359428749877025896742481076150098693126253192050284467023672086405579351135910908005310396863581664907842458578102426857566143643193853865761314318112504646448758088091301864750012542477347346207512608392392289455822322120125192411763817235070683944197878698631037288216988472625036741579725884369397500697868714568350690614047107831779516787386433371632016856344975877006849874332645621421693106164154028343914222621053257686861231608020950679949375842841430504621800710015792358780997040985630211482854308757132171842451490685833415085339249928282534295385635516575152422140986915047401082288263051905509511423418746720980563588349421349406956066643131879761945430075945494502041246673765181136928076325306060202525420233194375457099877144353674468812323208156375037272700564962929987461321108314568737788808091785517099775868507922037206104787974288478216974667250521689470772432516177548601852958994903115120564227449800125841519143551561607299045329281547027267598460256946228133758624708433751793227321079468724189317783750262209997907916314862969102032367514299914424397680121347288726464528350362530359706491273531737443173605281814793882314129554667057997115113652797577515278794919733657254281156280289996790923789720832376868499090353270509241912417366043069549002338254300188658833631690498589630617819333435133388302843541298415439686950039684668503970487627395112731540413729184706781832868714607857314359705222129537663963102157785174990641454217172434505152364768310702185898525572734116922907735020264704287930191595955061084459460776975939136985916440878017487760904409689211019292686164261844175781977196730933270775056080199937526098749266620111007627538524131485166797052431023297402462091246940464442208125594716401389883321862370641907951665045479487644123199633990394613510495467399879701906650838860533251555993717574016227854336254801201109177059482083497646181774440704631219889986131423637385095037475905325334066560951622220941569636607222398720379950860287246248546274440576821743769903967582036513433999090297114676350296794709167756921476011329582040183020249260144317257545280548356797720798341080474296269354078629110088515414072531091196381355440701102276777593347178490883074569408406748473612303985888014171503424709761909649648268658353810421633516498023018693542141700960815531684643577219800279654854460128102254187675739338074261051681036805415280385764172462760968737382258841944934095886202562489190996117569606528565877995164365447761131309097693795505592380596463890381521370713312348300780012030682977445032704220029052217968497071938820807000484637530683206012468339212889957534367399402978727496946550751067476617948178969246683807865878966180214977986397975969975895708556265761392381425460630871362690942897072864065330262178856276163650713298553139215478496548762462377495505529164520421055003647295554294211581761517706397694027655176967141912651579659286162053838261387426666768858756969485850327806988752898275845860806824968956461720391993767433410466838305310175501520299571215992110044387070137697605122002852304957160020735562879468253634606526672410923184681271710070275942336294394783419133361431147745672223016688177855271244253792504998742970366507588427523270517868350001085622124234813803799188672119365087907551873960157957691959122085544660144563372746348976763523114016470822887403551448794067092368750454266138567938706512534649613553837032967277281592234100588933153318603364833413513403153906863918353101194403252117745740832004167834510027725441836642496149980032038965368250241506774084171241922421014347454365062125661070088009735448572797513565946099249564168997279342858153511430011004509138353402221455347079988569268498086422471667010890364674407571806253409649475635435798322735676030949563077658373718388141954852916583696818378669149713862424688098208998264695130263272560314817069526804134529700643005822907760488703728900243031187978026050299973680757926212987180814180830962372284889800376305529597558366684749177193404399835760903786117312049396089585022791104192684520703807155293189930918907280967817004837712280907145378873592834604612631336675824415759390659592822179141808365139969238322500602969765685074722910075780389988434828178442590255917439101417880148860406154709150111591214241018497358539331033697825357624359148505142293383579085102250718256424068372409478089253586234479023012050810096457098742469209235048620492106662558523331224459863499495210224070324583211616492277783106023729014795601500646265023547756294943578050787848338842275820381725427640788633563476853873371363829642302187293515877503595704891781768842240469719866482255332036859029341485952774748154249085251847771902550762610299292134111905286718361853023125939392040084998616569459166983840252890757051567411803022305495460340604199942690855726186269191641847693915031068837284577998761197039084723742638723959383674619236217964255296016074665821474232968990634642765166048956567622123910725711975653327063529087584530333841139778451246499176741756647704964309133837085013624576854749713302859195113813848939634777568301525017229172225590664842198978078502957893237214035903053636227694960344159814562536918231510740213398935135129547358915345238319169666975592308403594391746122012122265251375937074512915290525833459450088501001792161448938338283162499999595427278516602029968336844666339767581763835202994362346401072326602859434079865160017402622402518459505604704037521276428607643515791173059412991504572832204709382649609882149417518825253993003344700094812447820402319524798399441364064226813869254324679579776799221695659097491296682555764633217336653223081912654128214761596894897703261993387494538579203184770764902254774980470932915048284382240076466479232697263934789907066852406209499047207543876298982523276172726582237931968709006552255242492256594714462881844374189593285113557743298304515916684590164177600583282182849105435503263265796995541386902310275148188187264550231369125594575669793027729010466439684767505726499724918863551262073604139939965912927991944983760224939930231456542997662003940112821619319154110043184401334733752334982521445430623046975484470018516923519456137323690809537648146236608936886084678182123566152430282336127488065304534224272412887350824165998712365930428020961213658827735914218689000940756084590650191817381538330964316729848569301268692051684040012422941729093184604109293163254270314323181299285344377714687062364780459512582008350062704686607693804757136588385120018391545380496053731183395553289359015739848347327683129633952128480178836363156116935738309739776192815809678807382696986070536578290249239434275076315805968780511294309080360495088783248427251411312401563707831415598546489497016464356518709593155965054765874621920723391586503714599690724074389045885953844467153542221257951239499997441647078967429871115869424792357963219285252889272464717022067655762851472810020168259773249302074476509638201493449686022565168983250923451746598414058701695398746238141533944424526120753125843024284588502945867631671801556123689815638360477433773245248498538720223498872350402218156091030638419293276957196135149981566551100561780816203800561605248256687825264927833866053412956947266397738806895447030661071618705618497964896570324326844900673075802672720544270837723219229146160697450486586474316714921710878906152928077127252826565212607980617234661264442710041730747854859473411848644411484281405340469446139240983538278118333045479364286028288285371379356443234477485208842791481354393406506745145179298036282108071442421269332268795838234557802902413957395332073939379784013594796181797044885089785113227809342724368977243699622085281280100932924719078461751069281554399455932281524154683363694294072062313015426579127975075799244970349011545063131568038508042424180088504313830405215374114137731934032643398042241447386334352832218121082655172762381784868247245906783309528658509220408216198355569535155393905742600699874540908261434039333449759989886473770272299686674778648250302954049894280959840775863861025515741348088954749611896150352076827890502727488663235363453807409629133214061454873228524537494309744862518636771327067390665687037813255949486467227299606957372919689954786210363415204561076046955257680218874356403523043910549616597779112494835831178808338677735071759669198311401156502408996117131519680805311203116199397139213326030692607925961956131134446770045823316027966366727484727711551481003040228124885018344646693228452424334243389416389028982553803328386868908327515617960321763784252885973558656563368941196776080093473563635468754577467770490405849980819225379078898711138545212495226179260211589502183872853770256248261582202995317433577402012756613699804501395982756772702049888973542939463555902153602034256948841518477620130661063606061998342151964430080918184816507269315886019965239928231553273101610770424610463376094391173010794734257512887060716103497731077927156534095996270449751842330653113306435340594005756895684548795045538517594506122309582270284511316055262348977402109019729327571277296774234968445339621904164290752953179835750578379965719485343944589021261156112174335507953835771272706696280446750729957338574509313591649331569048179352314136923259930287506080848294383204702130264903584109901500144961214683939905129016076316031470313431852236839431341740640916021295737795382372714153018466922510008888219201536730505251419631544361695262617894108317798094978766615821277616909978371796806770947107601596828302814035266203309359230188713723549816570117327368195646414674380400981241409544150709590967881327742785332309413612259575649528545364376034465661831547698351880001123195945111059731429593214259351855592763531484998988270099638314573064275683161343722205647205696359548762697594498190546142819116059590221430903910574285261460078771933846701191991212032759108638945451659075192368997125388531257760699044412678773379736430019609770631770728826565294419531721991063692862665174300126889263282657403750071294356165022345437184603815019459271898906326027017988367087386837612892949455802395471446496033971018225035842206179354880361057055712812022971631486324241963250033233615462371583140074120481115905460185726396203853342443810300005140232302007186041903958832059289881464930768937317848426692435337182232206925387900785391309394103071336091691675921876032395990234395957324572699430012208787663759054784407770340359145895057230754548971432276914366649734091310468667008094172397304843485663830425178479919860463159413645544763478320538004343956593169386621944892092358746727708588483890430053255392609281393964018412495377063364132466350698807498778692142872240094726138162673207618370042127648587797080948560029871093179808415084704568125484525640638529326293286040827823984947583795590113420200034233363732677006028174970936154863218836531248042114908372469791825287110320145755063117179650439238841095967382832808620197266685626433733936868955275083618258445976836823209230427177512421662829288024956689572834107572380676175093902002006100128685425684495312088661067528629984144444508644585897883219082509359179865215103385626399871524893859835049049905135039358948098716866979919629287860935852269567924690046928378647519384425860767674316960778927442808887208671958246240259943007981794531722501870987055981476499420676821373691008596836520434904463999250789725563649974932200833485894486572706853795802373631884066241334176929672692553415150729578991148895949419474506888706090647016586595073315087749077783855045892109076418536198652976583221146363930658568361972234809208504338472316939878155202855054880599508604946348183690442901624071057430105318962609832063208396162705190094933634372258109608402914959646526589734592768177900609071856161899667816669588444289595920957732245172546715849458848359860565522742787796042632923183965465104956112813121834988386241624635859976487238981449468807446702274080620670147503299006700752842929797196568106208366838317999467950534866296735455511576869359355804986329916786259475550306688740941862685184258261104861210976041125576240812445585574410850601797573404057874862211277195905720747654595647981688916337334644150525782808611179482047326514482530167304893114417611960456768984628282044454319902996829448627939209678825655456712145884540782467707800145419277525877629402714539474493534154089262897630873170616159738394085229073206688914231865778033631015593486434136016310902616757586034789891221355084931078616323519052296066391328770368071310164522532251357070699581875128700786857290352143908738661413092194267745704833050446439711155722284479308552390235103577894713071799598659336152395051223214911412432897899721511023437198608439005823539413822506973359899569413027515462476804194455252635977795220016805565573029430712912130810918166452200832497128127059325262469101628391979719643903998299072510285515670298930685680272087154730129222537284794778904407199428918626231334813921124746973903466731272018369152169622766424871298800196562985837699445390957319847560506282547972062221109389380923471374185039649362402835855483232508881107831586217595821930616961784585786166308074748152125125906773253223686236223761646836597899860645215797743479674444474327988202614695420047091986598558944593880187573192764677298658879064926270772092595922324804369202035990665724467892090582018583700353564101952755534933516199700221821111006573531034936563215512451602512553535200348773636558922605014669695935949812015693994729309307426952813432931986004184787859002137633290073130792039436438166507074892969115506021034089879807342810840717684519689879291667301110828067924356248494434059437594392760356166624784406700536283055688045983054757918359077447984854496860434091761192317419283222562551040199290267018681923352652042873407890662552968495438561053335838818234654265350244549738983673018594079345366858772315319943940572913306071098999657174769253088552961139850498048623486678710498169300114192321948613539759272779062397504480233029551818664266872297216605520152897912169034580943872123317297237308094542046980998416182007520192555086404078910603709089399928632780284517047472851805879205160302136906949628347861255879358257861722896522652647103657344726051737092099591579027551824179009123172253556694826028451140592649065312630399386665715571670271758777160836232251833187263878826938448869643016257185329244555272985100871681199680695353719875785215184000403447783070314570196789129241321951969856058658392454809316827698668451331849631812752390883465185199741313796257581152389389502655675604208950995580564953300318797814995911078209766151181977382360416286134436939099409890394871326745136883445201617776618469340005862952555446112821070598278600961385509678354198924998153959802917048063820066668002076700765844868343833268910774636979983440330484329104951927675961023336422223978121463780595685694211188580451429293833136198995178878593725877223417509294161181244127328942344098280899242091186880817568959634267727198345932726321027894669167369502161461848432555318036530508888682791974619959158530233294286048284996485368367097428383686776493981056006375858944569284243132376557689841924173353614241084057440747024094180562153775789842360672531706746630589144596455031778181170464861170261125516714537560591479363294276797915329247359076602695828021972568254917761558926326688259772308992406380763499832547686770692118889923417066831725892162641769280022155296275412413482227847834771961515735978773473690963620997587723471312570745694555525769884177682258337901934545122362191829374798435044076095815194561456949073556641050455083849080874715021966670228945123762941607205526335866717797137991792424190591502564415394619870636371660428891708343215610109404922433773050064658388333599892732035549192934947368798596771435857548136940946187896448180741973511048170391769868932427572048948151783059865286435455793362335686673286208718039476622159093171786240177380670472844912423713616695290082767059189282275843337113504308078471863267428686576667145075260262973657807658017412826438456706274585626940807306470656532247530001857036560590804904469926362548097875991560938452270026067450977590188938695541716826462038319627207923724120681905194009159670837945391085342910131275088001059330944549075589465246362889041932691279381988259555221628770957112120629776539057528301544330059679655367756827564713141359893564503857245645597872127246857263799066730071470408512040259959730050736320770084287836648026294245175175436070622026660516826991721288961312566095905834230300689531082880259052146579528823137817550953155578804611142094089879408464299977114409845538512326030547410547238929392661146926243320874060789267449382570245317237626710213886891680370823755669765591830046457123401372512594325561647631014063851905251269230032361500262742841905453419182038799653742600372796625978710918752628600571275765184647287334292341911838327145782817689883332327523386042932755945234797045693662408597165036475554258725377524002136183495695528552025009498391994370127169738051037009983730996002142953737532443449113885918227795944435858474772132818206456806473023321015414009293042404936772163277393726087337797905349402273645401501151605493987172645411961573758532971703111625609260155538058729299032356564187745425148232166663632084552360451948280440956773801795483456303386167471091171445519653376622015160771137429732743761915991855143410805120957868952576038430201307975705162321018078714687989928460617388210584685031257077497999826929582328393923410878101586515869255116207831338273597841105342854474438814001124407992267892577020932413840128236966048147071534742654008616712914472352026523442737047538810305410484246779919459358421857333742430485863374537201682598270869097045311266546284169812953730762555104121096591179700653677638667132694298359376917967392457306881848468850448450845630463020053377111219570798102214752099159733457071654042495566187858926970203083827807757616137465771468418981648703010724829188929152473340586277888726362148744028115692686267591194023906729716157622110692371204549916950595782281134725494956878035562556064648428917594826411185030844296617551356228100154693376700733603716753591461895066457974561541193040288588576604915907508248930473282921010663623758235902344278619645112524199392186653336249429919806243172510901346391894911587415452770316520616307197296631771264749004246857542715872798617633278724382667994716747580669395368574186526372060456810447234091102572078176419214839338229934693947039632912128103429210155855494019767570278850550852389792069200058309691126010563574458589112905032808425642123203052041950380771274358472460055076550931916507471805541385970337329312163157466372869600432345692816045419737429649904178557076446710969671873347096524573728600933432661491971131150640987349842645297690469370715993895354975250141164510357567340001816969293634194949659775605150235427353048668916504194868573450226972206303985528335746017567084819171461770709066875976503163555201503303087582139989590897278691025605286485450423991848009603506337648369652527426214216068785059747780480881824065359717978824589296516766874434201073113029762530300502951204083679495412954583988849637018357635519981894524348657224005313612974238640085493511940292383436453559411880272736193565333601999014741589133166156177823055552921451065241154175318466464907044858439400553665234972766553860699047634313457094296362382552323951825259218509111691490137589420454380837689051826693585260680232357185414159288910015362934249827370571148545673056658954571478156707382538165628232576952261890954486014136380255894652745222692003872100201526981489662931899954140460129877086110589373514394108624703554327149527944266937878397405027277581135914181647624184517353263529608404128489302351095414517386783218937828196091377362896990901587429544871852040948594532276057124977371940286887809707449843808083050345242623117747837117331840181696082491171664595249777904688914306667613562349155915661703683597125338840971752422740247272981316532290549383098166044983221409892546710051738003831535405023588638074139181153397426514678487335864378710801993511517240189549360147393474745903043719105189602223655700052978166694314069817826996822783246141866558557245300717219019282031761141637917762921224096979662105334705330836004164187338281545534349035078093124028398930370343004187375978779903906218921739222729128376628907921593563165810546471106081265599593778422627572122726102864598596999052262925946442022972125473142131666595399376856687092162757316695291526006538690184451480685862697879054205890167653698471030575664258039100154215453467982497206542751264194404480197342604594892237977775444215819221719681870166581886146639898211721216184735509438246985024540300560302794935106400722857966738824074715951318520307991913526675888569829939192345038787690694188361032394425886661125989954887439613580420872039061275216291281361451581308250998612496931496569871216825969359024143917062392914858043538417137780750902019812850590290417701870972986461343402350725656773984383841280660545417697775016478274287605718847726736566522370931757380789035095353950623949352834384246742702243177673331859106840326999251702518445193200598590048748457908016199269651124580191051461232122175373795414222971788496525917710957344677246950268850331153793309659230635612753188531481733378159522825955177162338498138603284406395371401443751981370230221684896012785242440368725505790765473420139031683556201595857265118911005912225365348443454407566723475841982406758225332560481652373137953061546489431442819159233882167371833739921105440198646578775025355972338784630241444691917528190760570147622833265821786015199134735292799475287057342469688500107611221814999380695246777750118215097957705118304652455500703433786263147283388324897604806058656296799491982562600878622498354585360426098121888449368582526674575597273786921375007485093172027823533909348174696216810390295213745839182218346317795396253431829248835454553067982258340135020406348969263951258357969359714369858012282904952047142407952272964950132858587064011415398658657896678931795548361504743795827543742529296562654168832338403416483326234560187326800260418772416159645887562232011792722258416964162860624266976264263925502537204875897116198109569246018658937804947110643382251632689644303993229897868980537495251116869255771185984509000571503637166264278769671802862977723587492554747576125925013360984018987284932561816227498890536948655372475097241254764031517030084649890350007586728363631973172750911519593213828465586460928980782404704039004605641926435004944372389279330375959203263908143977750643805643726753675582041442070978368741461264400054379549471355264436422975286248752547236819732907496303385866172746897330186242029580289545854525395892509946459688480996841572251454193123902433613858295024654226051338938601494110716067387766218534120376903386088198780229561147877165385535549868613926210412332902702104785680540706244606424329126727429967100062267041211784132367313933443334302735251901966888187815714024984363127702886128580985794429566776091085912566143604767041663103314909251784706608866667003645363331511302066862456534643030687984784390708517946453874548693557458414109705813031176991856779489292996915438882746984325619947631406562079948236172723796239437467112378653291631954837299640181003951520321210362529595115727165109475322415232189552052821218957757644019228644427525565012689590968838716334591288209969568539180212095088527568630755587900232916700316726710544131721897648631540935332770020478011104202601676295937118873995476203968744772179097761541001553291265238316860129352689345953988089331655853401464178274087764682544402026963389126026253092820596555587184380370705800131420607213294350148403320157405927065620346377961075744166898123248472839259749954616906584256758849356904264371302759346118754055985913022142586570428668010103288984370040569292594225922561813539654656797204998307623728741054170348998225943923145913991580497535746866771299771891476346740219535037981419459661421036193456928955580758366546347558017392622033211917311779543464340552627875063646847554165014568126761660067930239310343022997755617746448303557299097906145783290249365337327185223209010023284020831435241852587629400805910512107418952834369921890367663454211376034702444146466983425216539051411529167856625057436146205251747728821855018248989675090724382087607435510636300585961104030793718854830167429313793979923664471169271343984002851610111593053160611358749014875923633720322493659854317558511649525351468287296811125149254327469178348658923124694051032456638335313751376987523667253371803853534311691116418809049420114721746559309952587514987989184552341564553716740672894577220705202430400445721097780546556862572073422667426927670084080618312572833245152024827701754283051667592522292141312069769042886214684211107310189443169578905161851564145805327693946652393844166006619346258269768647689288954797495422308211793144426985220079374401158259098715417974537402141101281995213103805794292686438773259271414760257012608801433295182196636378593575015550740073047151607568963884396651020607094282232235749632671476247725184692808339529741555021637831502714375951384938546070897385111880803022922227595944024155979156004629207542311687627713121985945220662542476044865063574772157694879226469399291311546676092481173460590309393703613279569645746532984698035071212369258850467636884517270697588217484956780045475805477267159034125519556126366900687478391283294062047340010537369935867721640545862981224502455137871244377654568575402692493954792714596626907283983332056286343644860594972368594755661082870966246608145196163964086324707971820208365524571692425696644700108794932318944784945228782923017356099256478347475294968153517143594854062500015573280335452160488791214529881923714639543647935506828878472583123397971488082290507189474757401589174132661121076382440327011665516826236397826333365146322080247307213990372181989359496901495163599805037460210467364082663417661816578752497335011899741149601377988771692498819902882319652521244475678741486163410453266940222809928410071129955367055368876069614928442667996401787517180489047162443908051774984672142114589063682564682057111702489343962281662914568143423108145698920913558196319612877267203106437737499710799192242274447712119717388231928867830761332280197179582026656390364744398389636703437115531659646722886684363518181324944215611477507784130867031771487924724957711721710181168844728155306943557771960740509209292372871467601048564703568737933948417803070737214247761451494284037163170101410822798917822132757187312335028581761229399338264888871463088574021190152963809445328530250910838798566910182922425838149585514629317578107622777317905041360701252309237221283095580415159414365108632634356894201940731729847762510575764239503006542414977037653318877096621581731362187718363727640837675064871765125434825750517869960727019371119044185271719727576966786811761161975654534377505918363109611645889989105239352784941570141651594754864981534160746620090801026771926865374646831369324967226442471796202168001553467254212887302776443386581561698364379692492311515519857597129980692283389468189009823243869753991640712374536003669835014494472767095182366968155324803448988842769360368292024357035428110128366574025330888823850031923143933292694085519906199740600078377451730387614726099297607119572333459639264470694970680609236047629473249325266821778968849655533654243005107178829162296315181103435214268655495060455382841633590965222595652686088579301652777674797671025564460990132897896905132928567874213516771523443691787131267000525162779144217764204840572779326494809458628928635606947707372822599367786194588346290979663620373301730808313202299299559396773982790280064213457256970843326181902821218576893156329060661361324667715679933468984755953619611501312112462842050866860578624547461295590942775226038294557844170360890870653753691614305550349216516962767917415352146829313220695556222235359558202133037479806582344778657852938870331626142233264355393623139723777920048931539929510035624850847421802335583658240558015718701729440601421631034429303945325174861155921472899983030833384997694244952485490555794178874719834667938658684043356489824317371330672489876016428199890144696874727112962022527152851499426400578290598386540453740810643456734777684299686368123447783467958491895591425290118826830307850930538223621105402875979198541711851841974834277568788567608290405912912778400006892935734006609789644372885757638101774969925975758340710268713204095749912794423155037833770066941437790736199988446594867813234233642254982982905016619356197830591354828951971316172747037689827462473697610049839350953605708553528109468731748276449281522323093537423307271546133975684051521925329173710777779992279472533876271040980714562890399752934442229799723851401788410327260763571202124776602470364113079480380115946947310171965067529889711215580894367868167104549090651220227852057609638511194681492823411832550921915022267223139240368285829277203546825085490214922741860271928766957607295161955078455012594422376636528720666484993054203643769218218830560013583216551729782325325827502121707951627450164804506246346074021650741097268940853683039304877241740102919682095437326524340088148183130911398961154921489156105988285798930977142478191793173256604623381690779508107654947862468159351387351300836391910222805560717072431548211382019995415014298381979247842220975947332522471258120562505832992641360976782864171468469952019751554925244841549234360457743993620786608157344514852332342627788980222528763693108993019436809746025102826140268221324856227679489764222485912323083619954469413826718309294410954599215952887036894630191114834385356574773810192444930512003182902049863623215058991429326055860789554349300925908878921652349486793688871581212034356589514628394227414356615536061289895993753196965860144765255050707280852499846474177855883402684371818296195237124457474775809606061174662780814205635134352228969611181235617554023484958431153229064754135718097729311482078547438281689923465517521583358807279612860326888429099900652649912869212263474190108644940436065046877925434659076136772818495822392474029363571045679558482670918093716862259646817233776234827395255198719600611924721587526978151698459423972883524157194537957889928195898790017824080492265169692110691070714546707712643996364000961706571974824354543852289463357626176474011493803208000298544421215073161492885414866372753657508243204815485369653881039160941126036614635041799412657207315049245289715716610256571258356355291581108507692317766345481828503667177465539493007187513809276865515547443739805188707646463673037306070963794956511424311615464334285038058259843794486717085327937128431358541414438997170285928805722924242357492839905163040283864309950478383789482489174645319298702642010977807910002942077013709670198603265987602567228775801284309364427407216470258744456137671767735178588015541815550568132423966410961068908215430347222748984983629784818805333110297943964831406566805799426692006741333326682152602558028441561017739989472113428952090633417156506141741026369646409527835777210616403208728405202128565749102175077007645308608682943481233599648086644353442425781271788089494542834947977213868610749608662877344582435437586255511243033909341253514793518492019221672367982004266260670015355364561767319008482222772321321265948984852574983679090795904003784670437384949818593648288480900039240901928550823942812682871057275826058248727580832956982101774935136966521673760280261797721915655134090815713109563340862585983825168331061974630208902977439596584731019812765909411902054920751364914375395148050733545838144793996922627376219047905210961293822488942549149292170435500207182047977926513379103639796681961532966766578630553195231989942497522655890160765205556174917798143992876284100940458028885125490756071452278652300263280856851040234071498746023585905043508647433210598571028208593731339545841317990347747244517497329889975312980704682273646323419437024757650858722755483016451879754284281946197406972073898439082827276200686556411685790851163789289882078161575548221960075694235362794444762183643778281976330672372243194429817299560189619010811492120202854843868421117224653797573043730658102078002192700539729213601234563845145550381349828441347135327775672775465395543349182844979565161053399621279671838953083754506794049512451615108738547195480499233788866070778217471330500950099291171372530335780337666523701456969879303602222710274002017452705784869467618370876542418992742655025106635443763019597318274580719335722947325293173357380469510599735263218262341121813548770438092260937482280014800782656331383294307875633949827942702661434577310569790140548464843919902381291066716972484661300559330946076416907181558065165748009386120638493942182802851048340802046917273067820143741689079658051897568763085319379225228828260729439413354455596454604692561736263512035756104469726237904548759027632347049857659193255092027533833560515574960535880537392816119046282422560671444284752874793873467498058232927415591267153272128879909748943731749171666231026289584930520309605519493309291903982626599819350052512568454884850802283924482817343207747558930657396446407155500470221757290345439562987264425835145386862506146383261785293810767720763700563597459931147897436075902592916568458641784738137149751299750752765687363554041036732024683798849106933159934867212636987601090270371721630341294383707821322731047841573908524642479537781155512739397535834533403399799450683541197667135690068729007510295150814209186716854080622943072660762940704023329879386914740271321040024218043435015596757021287832796075982631078123562215989758596637492284094941092274964250463193341850990952079032786555052471011959843235307831310436541274222583025748907722372547815021525860780552869871174229295734425734556318693971144792063411871831108395590767819780257549980343523574799391587801549184515608097036964890781946453324585723048992311290629432046363632480402534967197587999514142542376571746958648566488096826223334740150785435312306369458592759142853149956614225203499896966479036496735810320365737441686385405926032307003802113114831223445221972028515380544961260108485334576763609864028249892555321332581421379170773756786140890070334997254446513507924051483220484925330824440451934464056537293832374712553732092599558534038493987480179682935491806396196868142421111148867682593861340273145807037315510975183163128088222345436908915096282969609878773753950746701403885058309599409793731137813448339340711134654466651292457323960180830106218863698109772461419416377835599315608564223699179803259235675154451330555504681697433361034851079860045104413395838794838836614311048160252787484066777814024802551335500641372839374385384017753061610696633191289248411970328838992427182945979444027579636074937192747583267900123798328576028302130040640400593765367530546034634245141164920728741733690531651472709444032322098935840890749173609963064370526246324482428804462314870036721817502961249586806427128534720668373237158706036049155169746979885859590848848889586703226438698420683923604624302255625755025100455530795684990096021034789057607188790808964036835527842552605715290887727251810243773765920258942606224914243067711254564875358642363345736161694103893270671726610659071166491051611342995069960521241562074062288821312975807023916800165412567446131918064464526239095549223095286481504478174120047323425153176235556297275413553229377948990647859107434790346858824638533920411280984313466028935044739088924314013794930321936037787770353301374871679685472705348534472534606448326107216638279713922436960699713800693261077518727656282852225008099076117369035743929602330118976323468108568458974211804515186296717943741760117280271861572491745940700892406675802778054869416814529240487791854807674243487344332885768510541648879056842130679170338599079406706872380707743148165790226809290843306746015589722159301721970615624586398888936699860241819899666557049917869037928870382160635616860160347387546264003632023585661486109153640000810427693126814981094188219319268107525808618939243135884650856499827076351191966274345975006563772787078575627795879537708685683367473443205515014042863661508530990041105910936557445629713349952549064200364187652936373506799032566127858972997290735656825048439218885867849402470323742985176798021822110662693389720848833503524601338741663869725489037591739422163816372571844621450155627263656828812460600256266388437580268816580532937665220235860939750400325445450699105484610849775537712312416536816027339868598841284847859050948203290049022984282056354320622871634900805270234193059175213489552036999274988412916491368060237045696981596743189079019732080185786606964482875448914827228495510091395443323596787707117064158460662386318048714950608744022713062602407710454628607108890666627802991719415203717353839962396188586893946946514899317066081061404327203417448648707236453155331855290036665941499924387596996155593259690421564304000734430896926079891656512073048757267129971467018681835094105114983826494457945714765344082603555647775665028429240801290272357257313726979163630641692579890639408058277379058752483667929184273945542096753548821024671567953349298039657040727153856351295381139002123737453898484358292635459212743812828582420442050665092521909075029859090941587629600407619363557391475205763326431508763008793122090098669799928796560706121184643687809470853386778049083607472942528214580184509933908644162209510773686819137978765039248377972387027186650969285183148182485605603017923700201341476259008017261348462243815200364994442309320592939048965429125538802660363395309705130645434369647975630011335404338953255081479888591624937231486809438060500600439338997766131918198708904576976834984098004978875216999498611735807785643972456108342189472091040867198222618165291689631744329450809283985065712781091388064970600840161793145139617288633850978978551760876936343852919057726082089215270301752490400297179049223840018408248214227391218292928911568824414993654103441515472257613416832593908150957431244232071660307427710496457912291080398843892992201447230559021472397848977176785481448845573298384782482476264595898643612865026950093260885528219367079763593802100512868856585323240647927987180810317073441634736033806285129077849873155789338291277554510210622564780758627358261189524566099349828813358203069092316135112591288188773437991023159074718486506755262642230778531485427671391563589088415594378996765244386236272172355689089580690553328981442410831913229493045247674582797061948768100903043195427967136910508065703742080699325284636493086411066171067582098085221480103571783793848413625987008175181531459708459201014886949467141895221483711296495090152216632053413466360697300413809721113324320027556086599575808356947674765324073399020772291999992895643251652364614666848304804927702119702240471778102589513733423411136318570179017742791668352640776097231781427971305179180653236559212056220212274919010334313528561724333736547245073186186225734106162814938235075443590720375411605011081668933823797567052673158101384001922538802706241972729757832851203805347069842560831216396196397756138164975311737855708901997553557591248627484585635332882698249436684189308866975586383364421102206380018935145027870772502743450239194997436102971036285010652764736540283738786783046303972911954185051244639103641769395136895698908229090234578582098638207712929163295844580590619492465869947778002654766107405102864739194126093853411161744109923274610532810590522466208490927772364481810928709902412832097561030152845261036130987897822171546419044198449746693089517079571800595468613967928326054584188242752207125974054810739793164668273001055106352588301750609954805616976584282963019217245125319992668382540267410504530903320314193198243331978227809563146751915951229594881782841036045343904443895626154902498626677627916928320414789425319925339842244001681172401607916068415102598124221641376571699994975304072570545914737482247177258676204965225025220252456165041125290917390722966884194770803129854868878622117196854887797200321575106081840344636765738876513796151964254539230541203788946704629183886043422562312261350699240917005346425396479239120408136341255906011062859918105002895083954676022415742029640100198918485900950329235877970128724857818519127264286173717872202035241461789277092818745080353171316921128189869514866424971894168879839836428363036477702871695378463179724906504707107450155085304007154637041289157655525439513227393151035678447420818220265088327197558256802726904471605378704966773412395739379158722610597565204374304243883084995289035782081402545868026479391531272256869114956092485846433830696185056236697722402386637559846193541672170927796020804732192830668274882693764866144777172196262142580418592864021553767261690059397774042613453536554770259441853345392163059522248335457196048608025340212011902423330860097082335304016418824659564692536093266363380797552063754198350713988852367198247266625965575624917105803952956528129705159720349797696629454619329845576153319499612452469998912231155698258915123780353226066928196388263761948914248609921302924753266585556447555886214348303502280229657695338984177181988404843278667362033674290722357175646839353054598485773647742144148554380389648122523143556577465350852470773366167929515221283004983020434903727172167599535861793577238004107941636839890551453752329538075954362681918794672622549201774876012147463092227425525017187963488455392293590805721848995418599767173008608994595049275029943367135128908583810516240010877098542541563355930466835289183643252143516183573621967259120313017821687374795108230692832669385862773875113563439581165647686584458539990034840993793904627224630313404140266125056692196980767882700220990095946793000377256589263180797260861947654449967723655234358053648533907695030755316181705686308285618063552656639207335507295735389705234778363307112295056236379341331776716997421197962786239625837734404285652177349625690454035857720677337451898088770842742135657029356217066700164978434271457691007398326562470255335490762717332502010879564770684541416136068941617516739139671852205989786873588473023136961452188492350424141980609251899950214799938301503269776169704591797792454902972240289889569936797766868126747652015922071849459865061933366770567378719626108050918290933171365501290415946276778757172735240774351100246372785865815498253696195241737491987435328831181298269292720121344395339075157907499964618317395141558156340718916105515922194065637974274960130610096009338918755600804029584026449647778059850375107804835384196798661310038706402030226078696484579001591593827878240653969054511238703397006078191957902496721703942523247869304781390169618047102187749535812344142373423595497693688788616530143209363187830103581561295310356766319464318001845107152384072904372154546006254971246765587264492341145272873679051819161002308479876720116312132015222553736243388137171069832848257079737868427975631794951198716437246908523844115066082697812169744574599340100562250185917884805089021287625122972874394433192126891107019473748765765707106313345969485615476941008515242353684206112497494109606621327215223937137502358633405181787107965970431352132730820028985178067390408661190511228308632721153046491129440807000762931319163272658620102493317380026888547220351690928755885251813879213564304460979952084622603325160223727040105513776504664560905893426481754672105484589373481795800686671302136082544346096458423431287819783008874220813593857985983797079492473934767585027660195032423603164269080026107217126043970933354636421360810154673528763350314033057647381329221679695595782798809212448517599140559508912303047797082248442307776374117326803557237793147019172687884807183754311353614634443111680743322042630960637697590568078792797227347210467409233645942545578698788709510557369741386984779964547856203863101575024067888415020478482945413350078267957129354196637445841034168923277100663087002721159514442364411529286518846149653439603147134597755085979415157815870970249929708810966359702035179849972717314363189092166127205219985170605069920542709395515747033623882296812964789638457232007588535981379095887799484807917665055476275200855550002336431104091616489639944441785937290161250606508707341887366081613614455309589368406685079535600539683848632757011762454550756172207981615309964719720204757688710030837192195815552949049414535900532356842516368783554000955232166919151336864934260822331051181197314883892957535696394045852327194572132678130183718124562029519274150450931963568513977185524517795232558082783883336289385002083476197578728358441661282499574514105738432205577175441500509281283372247026234074194551454349694500387890421504022178077049930603482007039467477880497954727158029349522992862684247321346630443235037960389859955337270929293421591398363571558698580014687970775640277848694337379858757160840431549132773049206910706255677924769886259611409191218390526386980565328281812863988117209938454619395768881357204493982411546585010922930114718920254413833926357545611577808791533732477447219162705971647956420431558698677898582625788950577390892765515988658084007030851495308599048086573582785204650508188522005633802624287526562005203960707401137499182832819746820074154693166757359421717916060000510406767481971451583021900398310990558010468046846520946129857394529555670252400146314716487957532645109069046038435857887606742966154140683714458641980793525588355010154554122682777475571944664536233843357063238454346857313504582218748794127782907308307691041930257747330483158686082386620683871034656760975801022086409948524256125807181847812836388992171039604643822723584954705651749674987346449874818716311324440958178740700378115883356161882765581900594441151569523412975267123002700100260074726982088345003406620389162902230827014663744284469934371981834687297284611888742215619588546082727112974781624677166946374941147210616123711283754486491459472789754436182035975967648393726823449065331470055717767218353961811244055331210187046929908899205045974937270519914353699300699303248029827085014567325213049782981697411731623791012715866067065331784656805770988793159980176342386441355076336120203166969711800717555748519555345466837960574852917341395631278682736793632216305744229243789149594898118901998799740120526689143770868090307743136027804341770539958580484789364588352376973057766058499827198115734142236605963287974820582311397962901783081241496676738706504215161517930169808200037302960378263640006746464365338059584514302391480557884959681737769938528998914245633228157282761909487502980422696175965516779975385248747038057413692686378027685178878423880320672567041728624271565183462583454992884722530841543523649324548956259804178611829320470925709902932463972681043952214014916706442162570041796446773405750214748032113575370248103752734940684770376743129181124814637537788598619790790882621529996356640361505821160686392998621858412278971875217333621682986573810760613327332334482487854922743269364683093231601120586941290071306731067472196371648220543512819467029164870584108566998161293295505626023949451288932180863076293883435559721777926732721239993567783857669611938867376466130534581006708300481359532983240174598207082184022451261802498261667352579658791091441528414404212941828867768579121672084058641129857301787481830825221246923048339523560395857363453007014899532059283112404542427479704276652464084153269646640416457684693061131156190039715326437941838814798015050861352835025564084930824636090000726086456761879784103429690074470956623966964859953725345179233627612452335016818971368127840609715346185247839395044136142993183221703611335937262684333490315329892109017693912574132499432712647464048087493826241606384920122990474078469843113114564538011830664766882104789254288679500237491662933982502019372370458676592121901765306655275407408146271732165795183322800444554872955057672209516922441031157100600928927094786648780841697403003586213981955977931971085656241823671506896317025973082098503010112503773217228183540831151389584555028935521741297828586930593766746778214620036120050627343216760101344164341467906210375274534109515262610867497869493095053634098584344761066083762353234576231910110192938053655460216249554833236069873125241597814271843602132502148283563237759326563132070401708089141621636895444094060774632943905178501408004701960837862155687095724272185658679780698582766282485208955231707681070312806082023426458643418724927637468534952672660768264095216945053366387155713018877487967172988400351632217366231225274714854219747824157667011038322040502483762732607830745843462738909108966455384626826197586100860384040789852942270473444754914165110327434431240391081774879106272808095686108901052137056100016669991519727993228731200554050612657086662990965488455097285538445959118728870670094647201253049807220407753434125214588808597026572345064392357483329759057782374298378170945255579500945712485179893753365600219448568419849924048916575626874490337575740453843895208898770536944483868017849686066228163429026205189686657736995005083505343215048327983548336035965594101053674683384648825386214968728090828327164525900774703844240615390207325062443119291192000050689382304911327251506026773210423946033386924225394374017199370093635133815767619887965189605634759752901654925450262158424570009751849623535804180697518834884056476259729311904705050510739246047962116390527099262476610584846010390788061930734852952991838568834921548876972106450164075728871065401300991681959838595702127354730410075174281455916602495207754005614986124481849092594585000660676365998788153601125045155120719840333747868440219386750173064406567217455071013816877933867795002940408951611463345613352996979702348942610567274768654201510311172660632799504933624953570279004004464983222206906215706222787749304997951652088587720311479906555291174005652514693834760484874100664933487573759276766567644990412777120906821535634964407591845027987572211280351909469678361092268831677186455715572937423760115451969779815807566138697408220644539239678999296996612861829227490720007505589912949615316900295650954210357272110447092117634988022684055923411593183194380650146437172527072172938769531792563916832366066301138734530289243723178462707449717321556694116173349458502668641309690890418293144548078277428110058733321868336633214198411695983838828079875796056555312462549312924363251157270064672449254069304936029083884677129756553681205285347043110861971411438446146992778563219439247028405498202865305314320942126614820097972677026087551450744902017829925353508529914913315657784586214234803387658965167163618552197495317891436245795593954212796662851384293417032934263687320564225424080060634672996599225364727743433507165622658290506851043744650004842105740471087648451632285967405835062574003016343829002487222408491868618191470206920654973462186592761811597707364997396604989505784593995726556282666083913553291256870524218336546868446004193914649903408135578513880407452814716259405842280381870137736573919815653064192217525642123641336510056667133013329485479771189449052771277628538660407166131572837802667507277652693153205049902947424811023536157621070677600185417825980683359146666500590494882789583387862143873826191385896956381387867507065097007560381688485960402128165931935947423142194376269281402797596324209562819475337397321722916098812031506837091887597191323573844734970289677717246354557491287315130291217105637169034096646513773125495281424556282476644977564765299933988001274781188845438949028403883960324064507400247066094317279259789441776013591076063940167865078785972408613028067189404217070653337661142446191356506285663907206132844305282444891698513329324802630165918520732203805384716642846959240050809809632433091882640267551021022622729055914379384345360179738118747236212145836511597338594888274701393895633864650174081883195684131309909240780690181564392581084769037153605625835317725066764300875943802511946468825320392218641733548906119570431340218952590185911537682120195597410109453992981168511403077633915425441534321762542688287279988642304143929947964998161162185593364325989204918197156071727251529070348436768066829443857023325822246625839335052511541053648008691082538864755588829528521464767751905167954155755273629468519131641101808519264560191935375216073611796714628922816677192872444843175911775174415251931328482616250551944823482361078791226592423885699399020886554427897505116039075556801760523111329814867620933183901480650479564460650876340775379234593434695357002900331092950444179082271917862052003143318948137019526645215781925581353090898307094649668450784922870489581047951117058362955229078502408118304970629892733662611238647314479372460411676729417436719702945431862056720919948699482102093508171469276288102575717453449890205759207962420386925754178265775104274328713930904148764731937702717393234839070196127007425814603815171339921401306669724009137353938175068803715180734510589205520072890406312377952597334254664974954176722994719304069331114449201104005836075889363792348275094942378799055406355289104466685247380490753900117161619878721085644288852875242385726652754794942551667999731782385003599881839988164386542918446387691607086799658988054830386880325400363317739793947702066608380121393050983767998922763158436033829424630162696058286196744731129150002344675210461653651673353567668435602587080653056775005165038623386389903331205529565654637863822173846270704458882743839930213785875168523725978381392413369209728502864375468883460180716492914619984058112123183163962534692932057480897123979877075773976339287252855162280397146165810271905034295635813660885074811047008267224272473358715674629356314870341354411408452432972888729178176461743833727374063233127647685405195363709442674728441966920711652394266042594391937358292211343644295497044628485662835317866912656806455721844306518718369208578520797817936246226435005402056035407291316149350601329625730871360916512196865270016173489547138814326530308680385758160317526881814022508719717992537861149010981870561544585139350817412917357570352405320513783956590614571040123496041922832175880064504470554047068125708088699916436920004430575441428489967531560254155905360192160434781150535709524463022457813932933611497036028472164307073330200399811917187566822130179069981244749796331983937868245471182369085448825049174396837247751805475761167778197366333616097258309914575082303598030554590844530339724169600630939494456054592601443555020881127891173865618312348372482647292006859394286338466882698319016881933821816687973404463454604833484096218670250146735354405957405435956472512515893597725546210544160553493894810579937717641569211194743187961045796178222484579879576453377068048956892589834882902678678831713142482252527687784617097413274572935157612441538250780681969158152856609029804255494948458971212938241988007037737051406599585708383841233312753757261150352047836984702469753069427602103036721479917334127673081609022581279696391180844044961577369685376333570115773595674047601994102232486621510722330300321598887226563465495401015290402919623545537110210182907603421546629706408871076159678511091016648945861455515292714866912464321046580600945635923460936115066840039420221309231189871227321060176597095007132405675213384687361423204876282778104506521195341380665476726850272197494831003306880355742743322842423292977036374107907378749266660371381506904787611991534110173248415174922235186568696100179066772979041911416488743005071511930373299861769651691706398031808784144957716209636352170907526290604303901667175084930690823375866783462365422372953075407696978994923806986427639058841183128457689387492792082262831820133299895586823399838522589702234618448315412208105531059557255652970395122132476419077721014527336100565401400766352327436014161271489997357667464779752777177464715673707482799748518604673643019783022475436767903201778166642720635120092569214555760761487598623936031865619646078886719546363449245371606311437281295062033883121696604026950347473899923037029158250687462315384429678414071114454554924692932235734951965422846924624708083879428267741667443208938945680345758867028846627625197117387483704747341030984760934908924938275301603682564365987238259200670955893787227956173316070614508902957942834076707331028912136437058379158929409886368603353790950418989729716987016436979344300444331363129518091409654196621606419255249707811614326651586921923853995743516295131053310918020325671989784224420462414172603552028635431669121922606935606004429835581174208177500928266236126242406486203699906958803143099347857993638995105247848705802784968922842675670362529555599906257492947283115955436113743471798878370344745018820239528397146233171761344258591894259575640555599175257342200458833062271467583148331914667620776204463526064300214094503067042578523349908875091567221797186688590007690525288322339360498340913718318799213038014753233755348836584111257762609324507497255988503602397855211368669107572273944872501913272364551337633771359437181126773854438436996728825051673819856125547606361522947866720455072619513036236965625083139890715396909511904580606361631550374658275876750702291248442130044876584095307563025257638596555772250157345527848684644279218558225510983542962658761739613500181803543669300812910187317273963753941041215673278625635275418088904483032418824535682151887472482836124337709542619980960212566105605803369391762592280590544614326351069989311405771823275006638312405363488082401269073109631426335835329581239801863204060739679685132645273330766799033892453988631631020621418076501211864044840260616969304363505385979248294969293741518314549115376584435158246311066569221577660563024595046322075961421957305057114600830834383049739239191511770583053490627659408049367925686859504108542273541082565620366400676927351899901741463209907859831254876180981200534656791292951064336074266087653685244215997571639198907653080377146656954660972186127250992899643649160222654447453824502960252443341995480112890517502940651606899699247917099705858980651451678200982106360211305566214195567744726848266717098463309286123808558272829309525069028327338654460062203877897263146491090700580432199397224374813237352844015487416598746804909068299530899815721682023538851633779739073272061685797239676757814633856069954813824141196582770087520351423214657487943380291092321859263641094247611352980070315658161334872748445970691423913268471272108077440455932617977873022722084229479572027913269635599929983044860959146317731592453152370462489455135689512468632926111403851825920349034240462220387500635013391370561900391182005143310201019011572166005719546723743186494797662910383771752530860460969694396860565351491747099235682881494561351988483661495897377807148434175676302491190360408486159045982132548640808712612855883947938967371922482823975559827170185801431353120750898162731771806984995548336340246532614358288686818591780182877908835373380328702714157063447546758177792196459674947271357614549259191982616581997561962182818507403590481049817360142346841719982612760368696399953858799356313423806235989298118720681959871427669037774448224725040197163819137824257726625491512634431962419475469528342307791582570270995774987687737250519430857803762032472950772281754777062962556905939887811967048448413623189505949747723404144016782637960308279365883496763631338674819853349823813783373627590248935890148011227677142102391485224405804394899003971860477355073717605137145242224322699865708461391022752684319113794449747045407694228867497566202756493515478965096912602727566142802966199235427635038843311689171655193553252158859069865840714476291988740153796876577262223394516737451170509123638979016859610041287179125492040141795111258399483514593195521746473699531523841865701658385784774947958194067591588965962694226893504639537296276961967118924546746134601473264292396303415300718940353861894969495789755343487141984544383309990827159188665728679380598372778212839132991505227371484795588684684683873578993668856056384127907781340105837111227319370005802427616971084733145195296943857930854206133167869793170888922857204313610082577494353347230574816179298311645931243484397735073208990873940361722396149684984140119944869365183360146392923305529598839930829259003962097001244288561945856429203224718497576011037064594705529200173059562270950317448059091319856337077493281982890397694935020233682635991852115422009311613364544802077161456795441829753000552530652302734579985120908355140558157548768259735398813338503508751500242869103837708709933505467987420152600025669531851645072596587057581581967408096850273257721690280732994841620275932887658338508531955787104849112972219693369311835147900969476040334009474529372644762238763947302560735830043757401983616117586940306157236593042981405816463073989494201256235258765546622746914189212376332765886658998318562646903406525235193685174711177081264528847516055685436463295893538604710887324853471884165233999064074002111110159595783607632458672522775290457334339767388855304005479017967054734035576148944001070219485984668578685045038165711579296294333041165278344214204164221474608175445073371168468476877397705884003571350872494416317010777123970681738252328631210444384046811330311490219747853111931446144981564317301857717978525137286392052720544902622244517992640995546400493776559441900154515826325427770227794870534791666673416782353161068398722634584102734366992765062256255633094578574366974023092065458375447911769469450639698319633899915942607322717840058497848975655762529142529359288424151911803487460470274821970670714181348252572806658734684589640676697668092098978028304438270864578822335553260079049760753210397819419131637888915819900842983628424342296395992245443585562968501404201306817388316444088785447282017184891464645620561657608043842110914384298985434111085608928935944178358552106047883606380344412544842387022965121102642063596897268527538177080400907837272418223359374357755540115142899204887572079059003062511894059477935064766370803147558041057010784289424310405730867637412124945740717486628671273871713942896274725214142897991934212355884172222354438203256479619334999637463437026016238583594632337571931835021052900777762393845255523139491842727475910978005021979079837847625643274548681812497471519280458930415247486792910582258907988443503496507805338523210562595192107738264720830460888475828998875531382389704588374311684954755957795102494909895370358639169626927750617086220444338543158530183880243013518435213539585530262284743733401848553446783588489280179262181447504384877841109582647584287359701457761345813080125199497532418438357882015637437195866936895504533692314727954994077792112910771983523769628465941168908970676797315032216282304893161809216485210142411157476149450434264232425594462242102505196551394718628061013619460715000776820674621628376905348306755931535664804398023667370462986428825320102633896207566788881073385928965468824386390783586753626007446081375744587190687043309534539097795909725510103927398861434378538770649082251952268881490634099699577564764049616991762393434546800625913571763098671101120531680807828413178760307106661886926386816741687805098359615229853470880199826352831706000039429681559293393166591901428558898710266471386214947740196625519721043412397756190100330561422895086723364093300803982491619786325124512752726561722692680176737708364971232549735377612608265137275634278415712422082364213900064150141329513439280898217439227210318407924766762128560699690952551617339432115576219997646991610102133034376346670841125128973310755114804267075201092543747867202304854150547775556851076001278479462147171714509565341122595979245579167875235208616285891165472012401942237915246575969188796282009078053515539921491075334736876899310347879279091467881860902734557901946358754776673272673283994495078624436923532392046019232602903830455624773675838802370100703806206285825892767489913380966483481668702915317814068839414162668708159652821493283790613363476113978485883704297300274017828181637233178619564784305330199448877620788955857235990837294534553970935111286427280868418044286368029702502150358121977735432552261772922116305808965470164785172927023495201781364108298122991688291480363525039470578482223722049232246080306053308750608245092267594003037838490812942392591359312448192080052392970648724375055559537070358861590248446676190444642769773612229189349770929686338142539709209418410038344495929780658927783804974415337654908773653079394882900449115569366615845203389955006207292986733767938776188576219904658936268778999425264524953040274368002844811573234139353322192527006144909589103293115642244106194918668059483670841471250543081933901743104879967670661851148788423083217259993130043985214053968069974292442911827812346752625291605809771215954371104822373019421449087055924995145696339203743785288636498021554178458203212016902929187138036293687519351703768622689604932377723937378869701479439244902806663087175161571025550965323585639088539368144763376394662060572679978433017434125190982156261133505527615940358014680093214161587208114356689466281781771167752895210951180248649966000870820269314866248714016716459021680487779226832533779177627518288640971001348618168066345425201884158017598708821738828271980030373613993027463976028714686601983954692351483519422209714808310867569505152567537539231201095640984067941292306862007272562958689334782709102357138895798157555209590087741802961776304360664563147944516229965693011214116716178041461047046286791103770808044606994640410544062507054955013700724887234665290777844259067760853213964745815269280895319074597712770599991467354643224865035238616125408964201065316545370524026359003124686664168538921710889887762481380076244180994423902258944485566339872929655351205478992851478622059063746281639273141966668330185755985382890462188543824816394691587060381651658811932902172480854872320002464963701426420258069746243341629921381205473088012545696921433685615703774873947489341252665370057875059086624453671571504906206019664642434316612672151692209085266979761931347735911583211318240346245396605965429885567687246514631687375595042417038756888989574924667749031099629670962386448812605900415779397024281436916104139284665575473616101022708601967950347504166611246010277933607507331301727463665393249355888388387273446479470044883005894687955080990625346803404586410207370023584871930204807004421677395023460750890524276810721222396984139051978266503291720771640625697083384156321896085336535901354827477745036132184189122696203373306206504071733873245239062937804395339767213776305134930803849648885155898267245482191517448444637659361284474246491877505440281703378330547936029802259817410196796967411765379880644866608549598606753634034868824963447098359463649638343648470903450460953043725070003086956999320681422981757700953222912978099479057443470081431764616111488544665179775325842587410881051611352490541180102644259029320029304675751122131908662254394036480387966125933231608601299521493691865062749867593609054460957389831513477419501650559433026539114367100515275506175918336629081572823619985777588731949693877213432080719297562680361226934006150777893153684608827339522353916309485631832763634687336775511419722059351486313803780522520005298584825570306777989458989430242242969015582382246766071991835074601978399627757393219756772688476993146857319827442772899645086186598505557886786026013442197996799885923898225870573179618308920718771283658723171241272331352904685030071551624387564013799658883479816348742611121072414236618498116547007928485192309138846896220237914260726634958602441739437507247853549809560940526379074698368997613552740582840037204072302066205777017365163968950812129741035619490646169210686933765590989554249579410429407396875851707400201837650299223847797002364789954162564448135509939324575246690888477979113201383382297181441757611285144509102522542216730750710278270877855239772131793403048190813544627746876326500986827579271441083592987704097595904183398031320739121222346082729442030811711445159273592036165897363028544685027150026554783720888337999597855498105259129553528865055548738794928852635245407027399703942026047798935985520530354920922455172480404838207168037946490813806561246070360037824066512767360418163483899741226328901171250329684709566404353385800757381729829662419899749758750720689329109474246730220272952624335950259756285661063435560949802668145999053461845249002502100821360907255334318381741215027453185363348117734083220318440891756166865527207399115915170948401675183528465845398340510916905035139759187097258075167385899411606645495598639072903945618678391285318381695574517208078720986559465089288669735729925837283296110267666996141594895054306019355576915737167114686719208488955550786362786281330229740843286750504799747325250696340027805861926740671385164393888015399278783549020662975005026460491861578141604574222932182659292958913718978843284493532881651645238798997680414188522254173975146726951671020488845923998468709548135047354694138904428764577899180017732695896798479359835923379603910305144665066119627930688297932724490787523980528563217200087580777479793656771433447317311352640887767489463518113974789298805274342613805916741031845426215192634874869328411108149165782356930649799097831520629921575691218044579035888011670343036449865927777069067455684287776309574573178229090529610168759766895825287836162197537849235507231580847314564088233672765431480390462612604179643205247416626119433976368645349618188924416074738330568887176310132061866229167590804742331462227967719329915014006364419807636625154325278836293563300374917739054099207997313733773284947390631030214484901810826303928832908215590838851223334526047021579839434008660444077936978436786733038966228012750969625362071757792113553831625044754514917364587188525891126374223636812139915816956250910353472598499985667292343839226193104887740903856800017889436751449235125773945919530115291065131315841704565060266428440889220380465388951866962204165211077925913410617588772053458971290042729893330639063148598539574814168890323427632812597216802261551986330097568632175242819356234511573700533677152516664719016918263852450571089269812445150970596046723496302137300922433263142433613088144669983372907217097058190546089758893286805497007047194169832998886914687384557228613455011972510146864399075197175706897909725510224090699690462621955875184780255975179333803426902313685275691156006154921646589889914691600829683072047200642208375062683865391302695634732795758039182549494838439345273141583642236036519939414151521446350613506970861316377658724209612383433450591104330787912416511904299532714764622784359074109662001232616294808363493404980588274526920743009610395113258244795773795918958413391866684750577738190373716441720016633589857558226925724768942777878176267936465867601278890325084088309655657941745932397822962243842285498304426529485208152056957289701809450961942711343034397399368799729510251885891537798718827769913970053929127553957726539065736442280865250609315605145609843300217974716156086351359076845234833974416067802047497074871233428095393020270631107406219685315121171240893928715136440526704796755445696612009357523819933363927360892937845870293879127877397957284634516346915256468914691116921401897823364866148380693137496503032075245407748512058985864747509475011294314308451545943676937656611654481947715377225936756178401928140871423459014971002253132191387809701783139651036042535609086355684519266366234297636657529160878934261022749897750591738262246059782258253364130165422680054226929094629618291744041267930157349987175318963010529987182149818891015706914669580801159577383702626462846902437103609973043417479232083496492302153328732504685305208353553710221413766937297335503146765943323062165578081851500295827835668203272011536097392950060840018262317737547357511706599715051063796265083706837948563055484187775222638379206858071311485613078864912153702037977945714960906615721592375290315521909703430254285662537974564846687545367505392613503950372623503082174422321780707692553524606391576251759695655717044639224204556189234410404511558838462503971699431881461547611101826800008966698147552540793239303628517160550354998111172883653512451758706861498594146674456761390176746868232338528795439204250100133844184186785883047749333498860479704109740110851046578887526820989831966577438356047820959053766589295694228171147682454794534085645813219078782892968874982044007010850457709797692043358117832898249340839063099509916654422689606543755136608165967417457853306419520237601229145140091845542370786704221872863805595855486714250415939153404603284443461284321630028874224427588644321220999557477410722949218786081179012394140553756906072940632185194951423252412912929976340123193681586744597993413641674031537119258230154357756915331951196891514257367530967632240355762802545959274583644263418809056169583856312748291997700416468124789146011435072622530588916716399583385558906580483765150876564297053283720900698340769332248474969316340458241840553644585768530093561016604432433175570531245648500412644897924372154984882586007069124427971351746886798279416240353522222311684587404351705075700538073810719810520939703357466733339679508395243440847476671115427434331501788581929287626126858965908300562754553683939065217885543091643147612865877320323946165207282792633847219148779871515592015860830595848690115716115518392207136440031720581361526946070608843791356791996559929793260206962016627530699528749149050632287645082591863971929971864731193251398782205220397532565613617692964743772113585592338836502001439160829796355889110162838466647844260235886892738326833004525310970869051314713744238649932779717318230065799159409246588844097677007166125767541678563235662199532158453463179902377055080559255818042285014859641907682723270105177205022964616019864499429631298160186815618242626993564829806893685186899673190308507737290709801671838938234316750613045687943909815536515699708001237728992167967667464991247102424173912580936687552860433079914827556796270952260095756868577288080065649291744695215705393219547491236286156338450913022923290727462930045248948723694794908530738976869421765933909382806780008298557626742255997441861627833028223231179578181311764509955335844510668167295700366148942399835840180773934172433483809286213809371575061722434182991746010589395728912056121516315372891779843581491306174906151759307424994695122745525211034382462722665411231694776203613080343514719850059349521384734794737179973254083742987911894718348863938313102447283107540880817937445481599623183885236647777214851424671424977921995813695607643556458113454751270419262390112607930449177491456587521327439773360854412429122813088836077707379167671234141419347046328073973135263856560060795646728830189580979284783788104925896348909337308499448923278804599819067418712453654979708867877559860950553464724569396846446946949230637997118514716932965024455062298454675657365774844232679484027378939640059755563231262970974824842987662295296725718460114996457886943750760688523542773177158184138734542885626289116514236868845610238614638143404677158505878096357579349797747171098853477091452599019767144476184660582553490278262022200225499099323861642884651973597173904246694796711058853303750969240908836670311908501539237119667604288112695039617217462185617031054470041279662588193552024977219910732695478800459717755542238385601818354262845826545911987192215845715178349987583074504137882518915847908059183328987988840703052430613957192617050890581790097797585604506219645277075185660990451569298919315993187661826957887831505114844728961192143765286197197810967486058489372617467191178375346742310007545806272952096294470131293518370382285588778643861287679282875269936180226615250150514467233180430053061923935344311597284993299544206408496470327645653254063106953982222687669878098655687647421200704190177812505302449544985711260331268972636788437142407205284371766622602567583917906635253313395649136540766729275669514156521123334246209450407334939386570582543892474239777787791200595697394992102183240241950783112839927719535123341935330220099043506993888194161443679576212531308199020594126591816323457022132978544679407069069692005563580110328554668942166350316541829153571609162113228719422986901093412026004806285012419687879821218488759871451944722034793397372345490859213245418959660497271912411545175704939824459302340925505655592424830452550286465231017586892120370503762746676681116342902108483981352017561782801862470113581415660743654391714583127257481178907566615917125604443200465420219079670368062223100595674082984034302904465426683680966888853881263860632724751543479141630130808005361476306183941068400985245165746585210504878665032765238274857330644803784427859885374086157141186329632781660123089889379297303575228324706776323702934881566502699337312336741359530516694397524886417193847691040324474603458016758611883132703659080271153842719972793370752335571717116838421037552220426719554816761762678378291751351352355415373287129579988311345627268600543374947268711587171586915119871244481012213715319363813387070443014269301649204983859837673863452789377225413155468324630591221475128194766691548846663632763037264759706990169662537741350944618586681357958517654216777817645400819092299257483839609768074564796706765033847835432293986868511576159304316549039500291855995622388638453716533543131259838473798171326792843938347153254380987121021022263948458236277235000433457760106224629722229115216317617350274534234426699337502804981012091734729864054821301983595065734415882146887572926736843326956994714872272392683404507518489060005465026718124522487120616385204477475525268990873727041421609907708793702082611683516452831578595665777710210909421365640539168569670494673767118078530654723411874822481332455718178759364047919411975757099707360720387622914728154342296875768544587113025585960041116699917331732495458783466375748894892840268304808370550831241673839794934036506187575630768672261558862315716322979259414886746135288281492182457888335479076617524871732268522633135930941294808836338419498734497678945699799319452313550738593676505299634252124986811863666699666068561983248407482178727257280788874552607974372444765769903107553579636009570927308762355958520953388489180219480135665880926582417313280420059219039782211293271792278122641212097202942439176061448830124548320728378461961236232753230015570955116823161749248492981199470942277617834539627763492528179950843761968945806446098294789270647166805980086328735396656478257420386559351512230488090542059930115828211915226741499489580692741459912919793998177568239343240832632668150718020014412002131333981163538692535283256517500645922575158345867992521571700505910822665958785255672448017996490854190496405159143951715947748275262219110782025312641667644436448565528772308268534892107488869144178474323951878185371144936095879257865739589102883047661354590859795241799419543367836104049427868374727775502566196472613481758103628891842417999956359963982873253357918499878564565664464591775817219673288831247326581066800039403219538034491378592498851333130555444194196506348251061679798725169831097747517237291267172216798125505911618715633565644503561031798200295501834887077821959668243445320215154477036708338454241984035522254786946860239679767538987774646914275684196553411614566871874215565350557030221248978646075161862246717946836100097283979115503342053017378221004275512637958492767832021135673230106514306203812499876155642819287474672380808947144888894516473415684805745266068780117908643751995340383512654376171213827534960719633712586147989053587256677020199039772570464529186225720910103201124075744004548737266844566249106567433594683240834219287733592480680157543441440679456138262533520494727680334744828946029344968233897315770362223683251491869295683410828080069223180943309463347279853844582452870537021466714475468161165804137466807929754879015665683279730132486140427634963295641731265649839141653235275258529521434915642183423105644767034578518626134489453320687265670719126018283871372327238826070922469576160256834174526404644664898750342145426285248647920951481246558549794644562469142382725502963569521650303454374422939099284594195639104222292775846420286400149355322996906115718751097396164152333641148804096670724549015119336863779037865840618502310935442525636469998264943507487425573761888159462716066417141134092438309527880600336100772855774052001326975278894999330262032907593608031534807466667678889162664235115962321374045305322232650653374522186816143071156692256326324685371003051661619311582423936491789786683044606189173072433328927880345524132158709577726177331421413912657872240319491063397419557758804105720466966137670710314564309406350852757551164020194760593431319321243667803152586458410321384914123596240322238949022416730625020290684862754887092287147416011263951138605668170865760617148428039423718193251384600761901189230366201570853587577517718245214249231840728544956229160952010555649825065470374837864152696856876958155576707677691548111998471368601277679071738220429104730859001953158087025784775766499581346931618597212109352741241057862067734257105198466006327238084715657717452416447999953616870481208878767395795426991440251637846175226466725214597722163848800826147853243897126636365236671126302625032660192021734854872311322097113324056245909659831641801096102168782996955102583257024430564993389820601900098049681042631301746516696537645261765870314946024202081159781274290077961066262883746751200739652438670960604142189091902218351164016830938825843915967429024972009156103956026991909408021214510442514025325389872651085116400556939851974883181012755996142744763021798496187759613255874782544358173127792043131745805673836890780369336443384075288032731669878453294086434982108593396276218790182905397303909887434740611750805465468058819143925005473426198882315928949545191969332214022746766874932548362817818593404746866741196027852225577908388711023761689778990327455013684718473565456231603952100460121962257520398801924163833771500698048725402445596765659083800217186063615408876126476608543532912864939443569031143641334522766865031717784305340764289768023373815535183832164218626525262680175107701935753170442644318341015836500628726110606358359892257051745275927829836382836136945211441497920593409917483479170607472456439645483961710002985555745885676861805672846570570518061349824914133718494306110566849198157335030678686758959343215930462804364621823047509762700247866635438152407961901533966015372028251010851163254951093024817277823551942581132962709064553558111166839377352388568017964923158067829245919832137878406652612001531373029024636082771685732566516111853411846055912726540440973666144830993247913912477405402245466745765337035642972943296829681356719833540568281694612308866650816234838086182815975076599295617353621833485035801521796640694996382597472650280272979850323848925600246590156371301729203520194067302028759422340770223160258378142597449442517228518520877852347707052650927212315307723643564891663084212004105404207591387248267875317184848139293142894744634149873073372811899653915020811670722639966512922751771331663012483130790092413142490289999999908299925221277588757234026889186952488282368853347165543783106376845687502610622823323353720158454550024008722762081981939934289677399210792678046337689114520180484056538824321429770916403891850309814545971279355724062009394901293982139842644611192565066800524014715473415821487981891947399251980648441495888536997948630931623736044797604956279480620741244956674564334860251985049337097047283202963342817463986010713697464814173379835162158594485092687730856205252057560072092053575399668911873127773668314480402531578912326834751989471341814151443757036666275431074457437083312336152089169643222510282164630319153405751950626387878904567860468467883181279904925167239742550335296476879875475758913772344349535603317341164695765200009044245937761209200208228680918457418084998077071161286328049821290535663236069624158943030237519760486179110155189371135720037741687414243218016126968179813507271039683926599496849532189329945452725844633419913265036455269157858403821471994128750057490940836630434150960586613517239161253681120361812593707965588577226006303658166983547150785616326176654517968497122765848455271819754327115326103152716939201362334994740519811260326522052882767110495585145672036732198269775256790360424151489530783952550285892618581002160117676919450648690728059904691871776358499583926695732806043178453512932204983252763897800754974091088590160558200181369345029089230092350350084065582585564213315963439910192182190193999518657450364601132402219724833518202099169708558023612197564067697550904762075990907390957402671003398315849776792897559093951377337410529055131639505337165204311225236540354429700900258775150634098430156915126649731607590056298252337746082145794012070310967732324794786183730513972667526726973065504496571683451799788429771065100595273685998689841495567981507828611611628949838833811906055205117329796054226406743493637720115467806486686513908387806615949742352007939402753142449399369712965064932915274034947687302185635128850863002165928970375260858716115793854008009662901177158511835467393532410842279866266716492275602929517347678791533876638021417279827599634052754090827323373122214739322026690437579903852665135530681820569485472152145866923289186371270642721226284754863374893940344814232578449137213328546569958239109170141735748297986197332609890687301623346575888763223799271619893656355311364553691784172368834314279019520425271617391584848625826544567048232529704604975076265851846440384275491263452775552669597526761030516234145636832644443412807411800367895991577244296475598641866848566952033349541802201750162114192073118404615534515644802028609202496923804181085683752966200280224452963982004924245400084214886297403555778539875458035005751118671960215092661622514594934984173289647767341350931840638772617524070023726808644936987968907736918231334977025223022854613909708744536764974210915480938382518570782246755044641840089731036335660811978809988886947591560669597362163809970110932585709239981442660818275923139693792673738389231014420897482985558963711405554427579467926488672383105468443737475243113720039326539049663391316922980941540423076024343258848281538203006329708892928899857535461852369588375809375484235272895367346670085321549547291200646698110123320923224101468214864996974058054202636883549515926107547513650828838123321284431899737585027520134695125135081908010519088531454637675293111242253479997895922980677337717722696693401175129114371976873826308326046693809634407250362857929286319408333054070107283686088395895024867994060536576551261910529118955433805604274063424586793502600894256497331235850250777286902828188702455869439456409978026743547415663547376270251281948019247564289516450490604698705496738969577763327807593986152183504225538444492554960116313813942793009929388719118725235998172336692729121425448245594596610195903993226811065324140612538316210946523132594232132745565302202219499212895794359993850809390512162800024434312981565778874101397346076857591917147622827203280112649339141536500183932437608828531779653392647384864541136208674346083099921916381256743756635425605515752848633218082386092058185577936033494140907488700456925606523438654425623424955291182272366227678449616687297925375053085040231079420542517414853945954578434313519900310692389621751450863975888349217670061099381388962025796334328610816898104480538986222134708415700950296681761923047097142260592192772682719114075627918569651221134386307970379386358815054913572172923922554743244739210060978049308419527136907148304252794882602445630425936828824058533279236117432457796265020010638398420201671808693936083089481101100506842779770555652730213519236867153904797911964161196052034936178382956239532153750427304152972432682661786424212166527160064120651904416061792915063473590350737672870320399566273957598445583795237616466195994980568434795155476655523441890834677732960420291679797706463542242318816474665015894812178880992244943047839029098313345144721454968129256056160876731348215227119430973593324064433024521245657753019055271022419182750137669610589148331832496707386387224429672636544167184068508519193173633991368897613726813211104084391083272274732210661979864113725722362429777710223877420354459383586659153906262715031047869376477508107573198794654237992443881482853932755782306660111100458271884366095700188096636836290936391292507895669294323370405500139813530239692104565859734918473707790696455867585336025917192839756047467205881688598096882028196838227651800701581757555129019120559389034008813093048218566864403737560115360013370232991833741040574973948862843444476609515173455021901652266613483070228943952874156159173049653938662472853502850773925970736800456113142025158629692751557516832228129509688009737462458359170425382510724478348778705197665042090669705194640345190140138747041489474074249429068681279400637981541645095097331610170819519240898290860868170375340576923562869283203048515619290199005722576352464944355229775376500001377069438905658609164330563473976720081786482586144288141284765185485181785756699431643099355148157745624012566521216138464218754051906693543661229370350953234021743602210972629892643449178899982539085778920706190590337912361562268139161680072485016120400295210174447416799914569874924257489387852750221743771474997083106712656544528180541076665141000619626301755635967496485215724350085610871646369881646799607611298234542186325887874529588006913454273208907956167005038340062794060794520826610004841870151123565329362605821482821237556641508928600212882285337095006990473725423596034606765361212388200820940066640904051484966890645637063574734041372952375665233799950107034054881873893533183253574609596658693008624380619073055066743621572482327363088922363089846461247398143146877976705293508979506265137370249039941858743052014456346953007587017680986067476227217460395777705897740330718502943529077733139982645980401292650195388770022357086587875751626926901165302717247454508603052436345491743319986547527961179367536820706479418714654198477716998587640345700792992347269922000832683834490740947406264262452640597239996504774690041225328785965423510554031970648865931228401656316666336751930189615057029780948028068124979830425108883239183638477806750441408222833369319403655049795213819804794932074375844711666586954151772411027260382998847883300733724990497362559148001825981237851094307058043234178156412041987767866543549988351459707205939716129186150017582187015584909651802857314931442603242576483218701379706876032844189166600035113565027705860067464301613859486197686969501820396815003197052923324937046453967523281514161360631287033803618521191015641242174891590605619431239528804943285522900290765569728175000288882808170037481803256180551373235184540679508485327603101912760583373912806805344706473651155468358736011851668329441516497568364921799926709699649134583919204959022014513666555646258756383858051327175675061179372939408668649547187094592190817358570872539562613344768091246117306212528359742197127100746331765917933785420842623783454560232940148703519665704527977781686859610234730441723416420077963684627777629176038005262781953307136915177443461291993650034808755199824930770043062102946996705599280607523194022094268439641582966188278165333912810502315933875917186346947056341834982971310199828077071794842630729317469029183792737076663552010758031525281827195743203714673534805947342121129202932321488486758927471323390294028248223819104881053545674534953146552376590994455835534466326873421506814449865405934482647346114466481066648303066729936493646425763660309778104073775508051601165849268517647396242493270966354679987217527642455689775277606993430960172920583577968444184774419621103115378897194955787425587026233157819960721104447654267012927795059490784671502984951761192694951647506546934952702064941939355290371999263013490608234528909411663815056005408344546021174311447814748490887386888811206703929176042931273784566434059507049817835671630308369446288411425797345542484569206463841027035035860201358443082138448998603471868248122914693938776354653056072027618639032914865904417425195651332229468717507788207212990640797616062442960339870952729330745993671645799916335410046755620929681402299480190834406590278718019892579290691331410610412913628949368918964070681061189233057376316415513968577088657752088897714496792909518594688214961202620175124935294283263365013860318368981719766145826316013006309725680864785653750681967086821050104894321383735383210858896116753756514526991170642981336625106763732330925270122859751991377082644231318309268251609681811189156444257416315332217127606860911167901728562464353268161125179911753236722346334442239769635787697003322059437095625865895148825308878981115781063725942495563460359209037338608445678416830630013661063087105314753804081054264368130140560489320137290090145800838361531591111797567874161085172174551472934034501632168720716222945562513602978006013100162134103785935381096208777287492712037635201884802793808215728386867834638277447635686325354453847510897185926793615888748042829075427036683245219866759738181238188237913632421769141230448577828845710649881281857869802463567715952023486308571434194821250278931753332001871398896832651405420942418203244268484240958297077373605185114209712427665064083086823721406328466390163109481450647494957987192624229382275987455592721089597560477915715060577402210833441779873458896754557123121983267296323983640141756843476208410957967665804906397331554804091128748913531392970061700396427491490159765715184621679585610815881786833983269673012328264341091246033204447025869696419961598882791181298131887451549748938464434341847388773748239750023813754676873873968131960948924472494695048769214483568026265524816714059193794912719884900218587830027515998368018047730560673198568930689938601275502020082094732610694749476683093237878629788125728339443127669794687636913289229462289714611837263176684869760078964549919144652931495460661109608682501830267846676659927401145620923106590315607050236138419677252126589194156547973365400298305292695001633389264840201619758118213275933123488291748567144862239123766546247817426774444580467528857787029276180404770753126154233541120909935615611173247498270106036195181602224276725372445827278216684918039366578566337823827750682750062724308400150150070411703644206722196131269437327343237819347206974154350899181573453571619040294869715858745173276042910035171475476077138552674452527183631658938068535531760725306159377658845139439568593635460272600500364792733323150293603469948535798912732124656217592057508114255602397210372444659571635986015329139919002886213770645739434016073329040238374059980439791545295343313182181483262994168034024433209209815731145871552387677322092720016215444699668836455403299249409284094042986112523357677749027977801116471181197990195643555401091977543453010176444817009263902508972184312683320402893125915781360227265535646070548397569490740374172387300496857318364759780672769054138315659306542755658374334004806673744361176411054700077288746004096789412281592426613437170038578800021176903371849325091864652708671634692262736476997770698930974578662219022177009043339948467659787807825536132855369567496623039553977012473310752173087925643946567595601665000434320335475862508505214583104338624433549604574845794120866305965106330218988373958696089300134874781066153967009159256345232061205308949201493708335091751585386871515441736024007202032215373825783697871047584074677605820603352285399052488759868390077930354251723186488294188829385451340867842263939158225946802877098535366908408697552856532838871492116967347289920876117676513525287799521827079408841994998953080173292575237334871356070259361664975173049095622965102753148508409458489440756413899762416712429642906771740431370745059025640508686337244528973804747985117879786932925181029415878251828218686217471354500115704565448169217105511700666071761456765611432359421553635037233363322486059816041675992501819628144493030695531790377913562887299595084443521260003311031128242204859339358095901375001863556047174004637503576599183955154080528263525304130669059264574772232126313993388727620337891702477916832887966063670710133554156892587770886784876512355440248146640878289369834953437516734650773174120914193689155456809117929034370407474225455910349408039300409148249302324035317816523293050581151560644994661888388567494117244350493284699484145706259343207395816798428890602014491405294007359652196643083130831178381033134668627471863804887691786703589142825352175578483601442441970515417824144963755281207525947424387739174744194090375374247290296601641279389436700074868263666237981676662772312765392691203265991201721579164437609721486106221419662551918586609142581289192490940931034644030076302700240667528887360296233386686028776878420669982772417106403086169962350645117621343020458406741414514508183261430514577747847713973464557381396237623056826169766247120627066142331722176441143238406789963995621304689737034634610291004073937089540572860819394140873251864005092548547755020397457943319900792540640652151252369018662201798680003350210584485108725812450434323376668008292229195556665861653988628275740059743796152369830624616729964119405358951350191133462503628706566076304630916267618405437878417361083518388730238203027048226299017370209545607321026143147268433807212264660535876629548000703437712403114032456192840326481621424341108963203478708057571905458992677231289867578452158709510990322500377088910626059313498872433193700892058910754641855352612881498830028040419699886262471419813402336892199783947953996482324273604799853291081964398337927456798518712377978055174602293542088885142934887686089855008805252685811686907861383967726924411734700995138168844852612806154139277855102370949540964598212861163315864238732953601850734439578406401340879432283909870181525100964159652378321012545485629131235917251030042135236384949716890680272068715813391859047773647916765068032171803435899467526768927299725025209837190637644586008834419921665302928521294689048213659361746347194304997216832014747423114111081843906632946033125328987692885057454317225846165906427391636512136419189405962493377029422674782266233211916745030696681887376003763266841043149199436789338935427312106978930689504022902955429585012109187994952501847470667712774637995657434788881842909299415662827227055543709865673423425085447302472852924170754020317104236835242873801645187508797573520763058854938958887445686824086950274019227004871355369843912491318066148755442355124792930162612532494935011491849939674939155057926807807803517780649579827045753541652326458858133352920891860354869770044936692572645930534023348891702969103398271047943546399764439592108915696948833482864932599656619826953232147460115662766235360277596863912025169019475332293031431520848076257138387497384967287115649879287880599026561182227824627500787828659203134238654856712424700796743947895845321252535228031365251134513687505549876161189983100496897567972816765030702421059619415034321520726274032644394352118067951179239292946637692826614477156485342480390224521311619468311551542170370423934257978269456967236811399041164969531703764872992191222299363695682441825063523154792769626407926926971210672911360438586928867143353896325987729628059494251034323307126707091846945143830495042519715361922560737545329574592317084830911768260317122394595538456326799724503951410623623602400105930396496882432816024003095778052853934716963267396516327159074882679393745761764261252961312086353693982336167142660298174968483976142983290378901208939831918604367230489791685824429389119534558380447888675893905678632711167401495365576682693509382837405449720803738838449808141896999457058166582970302480567243337150371123740545361769668917755485650020558863448451849109961247866552608303027110564022026661182231590434448821573901981289149862600909057098174483211264595485381064850768286019682398466717959180121017119254523583730460199693029735148035060849372304220802303239637545071094568314005527062703689552394462273549145647473146406843725424821855096558093846552383393899615208319987765839109942193604890503742438608864378032943102591469169797728139806314872149211243691956661405390975681032960023252916935739922592726444100301365337393760320871613783922336759133694670064919849115069804839894857167894440011471287791590058390502639782525932900427749072380387048201123603555105811419610712852976573806314078167284494562178069353963291871490027768179225978326138481008977671216989661519169730866369580072316218669673139874760487766135465328789702427056329359139587917902468449115119332872221126559715284216365002862103801353687484234530512634854706985861233104093829963318580171102630529953325383028143248806038379540971670343280497479953221371314819099683869029939932794752113291815189386852138043595665566054665043516090676748962189857011472466294375507628823803645492117255209698679415380942402275518494050403645484667443755485996176103661339545106157462515157651473047392818226397868262625650340198299251944804470714956330413944341904187374258143421384905999858268113401888859767930849226745904011998200549431205766607635259205041435324617505451740836912229868737438041112684112478014482853345114981428978615302656399372013965178413070081145381321861950379402219621416426321936153809789296908920674114803462866206302896703315937283394856053467942554289167171543744479953833795186779575708936846850472059853470038024893743098886483225274812893749016550242540328885591690201825273183239595032560529149773463804235363674537965611499714968888094791421031406421686896084996952126111976249103753304044482734233065335117680279397480854414845293778937091264430707204092526515681632992238657034377689865260251436082677900232702030638297522888570181500872460546314786030529519620701187814100136611368744052606918628713246333278879673738891293093867581143843522742140811209331994836355167950744223236872842577589497708437455131855060931479295533541422880443768416799142041472992829122993822464472087562167109801403773365147056806693942422325722941950342345704759419861456591675522648182548133429669913049591145971088272020703545015783935919214247656704863128502372653296477376199592345251960774249549966674906916858098586621719718341318114597730401065553041814796453323740012902807194008077065066412842332216677317568340890348151389179481731529951221865282680034435646124233255657302387395866608805598300982731636131682051245602259207751362998658401843104802365497948991070017032173992172210885726161577679692003722914948366722472686132436938018047269013157015100127878318536263748020004064506448688593477751702923365222273719804478857632867711406281001782947949184981370115191060602404347223366472410803377020160248076485452068100198276281057367238626470361042345156267960052502681323957038736915337913289567385990137970967761224333435240700954549980908874298315845334803494091786989746218282111606130287837034067918536163639296078803814549707351487444533939283749603446234451851891542021054522053340306640534935327880614968641954629479766974565203811366426507070609481626527114148760429350401076702633514714555010720077850076500108025874051303396756255290309356767869328873507255312882037246904930181650623833872995061725486118244225940677366151941959813296570121464304046062587425077965248023289020471386833540824223809943954731810821000803312395853377190849470612973922051676154493053335636770670927976257288547130897514316828066302483652095723317282176935712133964841054306642015111795770174239230035449074538110223699000740857911389018593691165433071112352728331135304932522753775614645760647878655000432163046600530159162931623803868116032367047812384448534940083752296181297915507810065851307530460013562210803975413199278214410050596498680264647117654566499047084139251193721117780074384067761352276318297165994280500445711677897782588970090972638265112369713324838420367019049660556347173294380223481392188058965868331273184526085067743765349813989778760282751795323096283359478111215474440814681009666390232509287863782333998826989565524351618218006948936432510581004991352077015391682734549685804017699545045054008572722116297183927015828380136094317378587803897222523588398860145423745466322772270320033768997044885438678492523406875391212075968853987018799246233193320126435313849328035181959982454198113868073754553984760206672376525439012460478361249072853694718148208450392241238570719522794360429299779104063652045413429293705101471073172593226643967728692523719348614485518639517939433250785128964131723083803719195660021326961594979171619596112105796414300098669631792350265298885843509384321468283496873501363730793418668637328425528134809726418718166254842479110533993398364946020127735222297464291252046917232913744845498684878319214063230688869303500010297978109505919511243513784472688224272257336585760133096450532581836375533772601634396192751004474043128850563311559247581360327632349071520407418304644504429140123095806839993579180703746932471670900175704313522021134689916000466115701407323111797056194001055376931624031195848613719264661383928497271635251379005983492615098370706862519605195532228093033079416934013549038602986369024749746217713993745130377943127289548617860527054078912721940419216038432519125025018808086148405691829325713839925109309280297510775834433574314933925741112118744219909954950454187293921471020848935794063299001711022092600634198559234524494499480201538867073865160271123104130215927546926204466146657195251866742985490904982021215366544519161319472482694871013879973247928753297611910988393476005620811793669615475017343515604292837368768949395269641945740313425652824204606720177465487179314510560715089512647594087796186672930470822306452999062469379911590904445947159011052955389756887805514459274953755737699067006357199083754600785700915073886512802258095677033269713874681134159811319780158323700376877960392519700303004183556495716375551860171471475141534018847391304618586024355674072938486397091604745579366706362447964545094505732182052204006929364351769302265973876398116151871116219034411273361068811429351378150838235972463063939719195073107130653873529527383708947352848930194313239126031236243602690831228804222924431803125994993011095760225849540223727872405483546228064805724998877167059997349509061600020528401702259075934962656194883943568399898243991471774206701599985607116512407230789578805344861111324362729523194636497119007926763671749955881647471510771733152204012637409286562132828274526292048211825473743338864320813967952898615329764431256147177687763078346207964886302433837705114018093127912591538009579791456148337644241492730034817824843613432506547193378449448322038814745853218885685743853956401858691171728178019844187274214261642426831113820993200005845586773078458647856348113790263327630644749769812840236658007645611040441619668697428444239315312670043611501393815458047975637621845556628785705206781394783792156462555173517070709084234335982806132820513443211177534567693892211293145675443771612580263115652004567069454476301284415526278935396163365446639753432369408515852667336109968546554564583236337330650675634693689266151842459081686906107564042295780119833987346877633796318341738760304899362619266671897462020588118302816292415915569703941380610994297451592189020636786963430582270188612004671523021370038113297158772358241722493704067850761185707197084024271837010214618248503255456819449464651422679231380344367551136520128831698606231209926958029336442681571263805119714318213444056651130343398927265793675307510464374072896067090817034425172361056280223390938591677275855973314484853060900186395545508561663972371782713654899122255563109719089750348623588026012877209963849401431075689542398708043903633669486538619552986412455613146351967794372085640365835273451827157348362877437737908520117847121215995586327363430726222811310931391309458142724833177344242930203492684397550587143914722873903332386274996364827783979644131125037850423619182823961725074618154004637383624814209044192450957854563149156782371109774780217545886252956678103782969185571296194489169179562831964421508644386741237388662811921537246962163036959512498685434628228705652176006395883059372459583029765433647280680897151966045918482542112378883254626297923040102413383772071261650482597120518609819490998332386836374166844002094432577433243079821730353913553524773705930325254812686791890678334068503584777568385716347013828677574499088289806944293736247953976404893736354585638385055750856842486328769284542310294960829054471638751378268442017274003165714260905645523839457808911428792153905973227593195016338966409473269788079827936079426624546141768832331589549050563194123789057661902264029728749754543772765002955868320181749184452372133946236186104534748722474489505691135076790857572380648430327986997788856975318413188512432530253990772284779957915410787300413467670678457559966689327607039786992420651606795317543684900322607496496453056352919068450588254697373055938750316977212183220972074254271221586675525094477457593195923131669537774172455046339057639780445875194580958739752054622798051911389668191008074758579692618555988239411824346536827408800109906577440317658399129813590266088633262411343150134481805954593703732781128483337737585812544588397421619974603214232558859285538641758580936881416789021658312148193479511211068995025245176603431688086973508971905258843785174257823079257917394552601652279782898692238279268451798952712273085363639062962786924421908101829842035274195777881524719987359759960791059372391879546397679795660749035917321840980097192405043513358186344265042557272961870930700427252078133926562909979319270968224827840524862393704616718461596212083971810977935559663330776235772131797810165565469137153255797699253131531245909735917985583905181441201667482205239835421375736049872996062794451123400550644463833308499734072185304650864661519319610896181394982025422512921788394293818234980547796674999673163123705945153226728284137089769349088495755002660471868770792932333541850415427214593287587625835919852970668312083862743716474272493453242408277591004645431503505334812659785329644837197052663965202572502388489670218186853921854635157637037012677373934878122393364897405255741915829086093010594131485635614468586429681342194633155809908665009783413895094505133501695244366625021635340180824903316675447487533162884483029119226978927704667427951032268462507013398792243537664914383225814266515677027620673628917403207965953508625594458783696651752623168986987009066490760913583209762438518424343621664701225018368821672914063622429578180994990284122353662446897473753558161361058288944615681252083558249580052550530691357892744724449713474770326899111186288769573429817921248696016887489597294095287401415667522933685839995708238424414680429515636319270725905478686995721971419551699923987253297702689556856235269119000835989961754967269446758482626579548693542534662634330584474729546792283826900644621907184009631495621130281841224980455590177991066639739263369906764613224410418206664054977510063821163978608168121277748752950935652223737991319519616248308030721428132257549550381163302090648166967735214916708815560028561592202158264960032171696683303783740380409254035939788036612821054367601349013159563498832666493905796997538082227924677333402477645212065614847260734041689081927728504191957671549734909591593778183452398157023058906431147279287713448317092092011091606706901842884349236957784590527287332002508136269326072092496291297297420179803925608533225015399369674984565926614833935186931870218466823620758647287081738046816375965348150471376886464222402873157747798363962917807453860698528978909779741065833393425583506260100117805191998213138462962930699119676440613013338321109845529316589681785474190077677175477638708308193850790307608804736457957971315699393493370564263640685354300532048022310626249727136296175367108753006660098030954263231812367290067601232822139679966921605203709828336634746320216178091834804188649062436689111742827971379831542003140421266787929833054588032640820413789554301574564861473850271300046232149079020391539927355869168982532967170242791690904259033459821410138107708161339900483855696009422878497752795116986637472487359320205655385143384010067860307022580254378670887287940333172176264117133887548508737536651854213198874282987476937492307690269014627169094921226092016440084451041081277163833679578309476815024163233338228507964657138552602993750645763775332429968876079664632659675603282747490804873527651277920726482333932596496404570156692741990598226545106786628442456745154284505554493648951583588340585743249447220606125424180744863579833535775828681594409618964930916473467319865033799923172277838307420286168604957831296910731744994776196097558466325444504363556960321047151504450666913658343390353615571755716020253029744215922737313811960476302976642650843754345021070640951623981028500216882761271499568153356454213986192750788756906588399874982832150304671118152549807888244948064550752815563619331566161285532438111440681383930992888139595622341688955281717694761010539899155079716918229089691431571952970431822147130368122558543388214729507153726655714457798792024043022922208710991276370953136305042739433327087368846606452068801476390230106835529681037050665050871615763357979961564345425840704255553696241172270639797529741191233887078033458064389777708919042130733942002376944465415938113151154019249269031945619439681273124946712953159250944128314542733388769648243384424012980144922618141771353282476562736213727876393506649115076848134566785986152232741507149702822485160150185569799551868686036165963729225906450110811546013557042551177071342105350871426023526601513282511757236719403657041367083768497036852259639408580423311258636883838155545625107342803219871486430375694961161872787268105650600629947201239330995935202490144162227694943197181532840175021206560671869289033079582456702327781911688106553600697464388606522909622006832321340883583244228757518032135523913227304972438713914271625162406444332477580636720093841621830439831610126044669410896146961186939216071210873143768493717293018588496965880261451285230631536908956213646609588108809726020798311388579224436730853375445385054298241799342335466617453366717735154371036492104374169871910310923143042839601057144263197046250237105498440450600746778368659768786182427956824188387825943898300661886793119886022159199376519098746122811257745584669835127278561481299577351302646126151348117102299820435173608541149846712250184437081935613713495244593859945601722247415361451021444427448612300925737749691742200104507952991420742078325227112859416296715614936270334723599518528801756564463070814950973191706029563191652492311412536243154721811214957919889048777459827125396553022036265994974912690002361658509862841118683172939989995897372844019092995940947458831985328117008420566966281413782916303832243309721387774255426406508781259519907356633608673479266941916199949444958989452055511945430878047742979755646938634135515254052043067407733028254290392167123113241818707815379088503697289789192550450833051958647519587069395004891009479977248772166852964076659585570691454781179889431885827443793945935596179956302153392182067668865512806862114008641407371655012139033721586242934572159153079776898537442719177408434001070748956743613720536478225627136082228622377427880589374508989207691002661563151347711410877029364774807387556214533939950470663015014862250793772612649572367939715239965165671307631834595662334215135344778564903041629343266992916272263478796952911319020266303465443239409138470619094612861252460428961368358472118280149885079276199084287594607947017690070831030508890378987780145548031846840993393792512337368536493744159267079079456587146809359761229318915033991820517492247031529856093113390106552868552888610212194956750067920679438980283848072822762590599732455338583644485724538483725993328091071631929493294787327786297235327861801710523784540891514736483142265678101183318646894127990260744317730577001112592465582611116398569742362798150481354504026346264484864571702357370497774531003554174890034321507199601565786277854402603411160289910913656060425354625564912102970184574009274360949313121348828554104376299127709658859999827403922076123896839061702113154317845233147613344605002246680134564936739220583807425544054391079764212126566099134537772266644207850598868126386909750059664925934668890040211781647368671424799381716452688704878794924231577489371678881686427636896010183351107835246650748646106454090557156331160860500115379564398794361278663708833265009277887534522135510287810520662425135618835601989138696839262700992510227744008990454447568032411492351923684748374193965370055687548378661008990436505061276874319188888290145056248247986708711966717914705003871649873114948533311365475346217946126578934701253054790311053685391934526860838474551123304419125352774117636165356631282115745903016986210646757177959607830066101769969028397599101042540454057279624039132893235867195902782471820784198123485215132814804498607360160699212619940843783315527779533275513301577532028675167432927959637453570898064594114233006224450400655431044187728566524903424225398823529201594583275829805684901382762924497937202181478997218828534812488713438785884444500838246433820224772894383331692079411299864842553854080769412179062244539514036697928347837830022004248625655470783831515825053170886928552873313130547837905344672898444989293107510910895486852041407703928657358864253325886382834867857862471524059973612958166138023942694222266704186488650231549693869892772827833451869347891754335561339586526039027308229287996527131557145409673891883547677054336225917440455914752004809206810905411491913494042406667739457933510326880713680571549927027287316565525642688138585954475951677728050075275270472458438142511747178646518705972017900913585503296304808391940962876650047822198757187089318495696174029806510994851840530678350984752268244192497915514945909917703349002088414022571025529025580686859996167736961183891087575972802441086352853878082644237342554284147971684055666443303398569083912868187762569190752014172700097831773431601935514424518204342487894341569725010136378547295557694937304282126583028645329471921301298112355571826916296345060528626911833514449720230885987378108242405752110495722649469455054092604167918074910423227997413502549894132871976202989423821643118122173709292959684052535318510954113343797803609389870000023084306310193257927508606024860851548480864310626003458628003907988334838148317036408024205303656738685028404180240949569357796917231686759303681874435069692434209695366542749807476234595475686402360688882244667762579096711340779341854850436643448337138467308387195840580538717821832208092294280706092950746220580173406865357686248820571723465004319126984448627085474077676398717717078487401762702329100455991782357963342873150428866829539764504161828811359250301331223347083148023430022727121851425555585047223451830268685166750003272996976408835887726920743118513537833411918576828243582120384272995530882887994754341614269879396839750151526573124864869252856660099253457918687267011641055800262392215860554671674496892251152094496908393552557888013479891829407641640627702445655744348525853321531912684421638600415538503774173751364778986801235900865353479107591057482778206516092659030144187926434215723061117135946898070650598247159565292144321225493952174900326253385523035773817386805797891751609226283861596639622425631562464449201712940533855468800557984229452526993057956135764529652103085277549074301993378339735390167294586932446327183590524041107056573044143650055647558601925568733544679055444981936471802557291504006646318830185868348465870926597542918363432930358594818311399268524066103759820793992191918554975135390845007289510206401795603172505144172329268262867026979901173477094033639102607384267615799682803415580059311990082818657049717396401626576288926757459609955367675826765004155392711992578255591316623522547112645672947280625933937901559543670752380900990541577590071853649723610054840740478699795547986037306062069684977161519380990167624733463410995331284664909959480030815813931058440197369749489686028278414766983293745986393122139413567428663379654884710103287738659384481753977182386233880998161233585893448864813643553718070837942035052529633102942604783139349500060369362806618131289560358579005025648449186545595317076138091462865489153295254439311221010601622263640296954616042244140650691040510875081124161384592586793962365009429061989670717011209767218084679793418547012276693918207322906916080045187179377138729231608205191348829490603791566309571578127303333419732148817831717792049142117833472372012780691091136044123245045917226985184653725113937782058724557214253074116974948818435165691413086744221506040660595219743638780598798538916136338674582447998100593808472751786901040890221434548506296205842414065839767732829265338109886412995414416676826570708052406976774490653598545320575599587252314423295902570479538781247719563554647756189979821946098257205063080143036068228923997642814164544283565945323117596266563826716150054747555887376373442297972302427749019113680827772778468219327038929801621197168246122331267654792535629138401112893317594687903063178726347376874481972866945569017656861117726570940245884151544785344534984006965747381295673197862656960248708663378419244464729394490847489076349768563375149871904396926428799389350437878920156295957195382178704746250579565884492085629423908056158363328170746916261313132565724653134150507370548621232124847574711320728048054420066686959038804245504436394558797211150344108572730217896193200799131872715931825676236072944892104471103535874420723696517108405677357360730460137718040300062394528589976587910810412503203715882379649940923805793903052730154440563803136832771569287303981559063636439449402084376066952092661032142666035682179163143474345890281274942445989623223292415958807300794306850427844112448966546434767020774032626940193740042648588755496347599304664347946679060635584125969780732204537842379390248354335527240666093457293888097089756525321016073511769553180238421151492774720370215244526183321891672831754811341920894441204979445986367343301980212802580360130871361124906501714044915299229705171621144595053161083273039323699722442997471071592689371491612916213164760962685220320397162074092591591965623285071411842433824121043245821514467053243451614112767864486331204302720469448928996343709882496280060020967092724279867185215128792157826118931879372727715297961252822049642602021413140854975105393605719482359024120616104876954716250945399480283144881685050027535987450322413565998588220682114640593604766392819970499592869360936205291038821554334586450754099479695658948351035965154956161368200135581057643838179153790934193507526586412856690986598492756318714506474834763153097446039872213152839370855991110757090655560513659424381948110841302151393634274096761864314873697860197364679190761387936950299004746515028243159715158172845957794116096217777972454621769340403860744297989022392016942613587464164863495442778166845488005246406560652984855561233700708028895790858575024597370079875168859660444029656667038174711900281623853068558597281220805302224911632193099082802769430729092025928431500644834836704902871296375310663794297356650156792105111276853682320128927832962125657174870552809111815093115496806311873193128266140614104401613825045248096227922050013550694424484999340903362925536703649792199668884193345606021467614454353021325211500011416903199316847406522073192601955122412521000140982470996084445153489221497390187651806695153635716942665878994007216849978811598697601555631668568924435454878995353346716211770666464681045074041283795023391344427434589859293706505540631508380560004703941187743857607150959307544720743407642483796721935903842356854263212803059077391744599567505714630027493971974795150905270457365412484124303660599413966392393389616839606435264088639253700463158139333262537885594052421351802960531250896020812077313161086010125224252138804611865147543843342018719262354375882099880494486086135463272620344238299657331435253168965207312306791755240529595191668900295912483625938295921067795457173015121033321102949077259773071794504816193126280029237460807046661600445431439672621118540034648474364256252143615849689908618924870595069620775533457126093256384843909337738831148720676627367967534271284052232579044374377218986005527285476674646677491694820161042480785673758319503241107911343050893623408097850630680295451582002405362546175457479005028563115044300806970353925883851103928834220082044790108626976734899785586435504479767020129897994599297556430610260428952889993667120901801480991085931978570023901895609060088775783537654453300560281375615443269492975448271231802971440349684692517973732083177497992309585160585354098787841580291890098248752027080274471420934070976657462555410068488330917407193361850842118565418389417176927984572394079307252601391270015552164527476474497885636594928542902521940385994723083079436743260217853458876113289173057199207041414857739839575277442310244004209231704770370828918189590905128802196898904280653491540470421378784210899116423126411107495393441868206572025909182550648073358310644491477530154849433853335063710171906260221660024112231944658166550074264438159096230350174738423134048353903933588467722446983939645943032003777776693510883469228444991104423197589216558790044860266313789870146463177408281418145361480726879805308599442758882808508319197486392050760965157438544460150226024745901603556449716170049823239628403492212439237993849975033329756996287102340076255326821996729011284640453943236118759876662258789450304037868025682447148287863572622052151856283178359351304372872233536461384557261442535580300131579164781162948177888389119643295764226612871858664409304801893480017853839635343381095263120229558645832852993661219070845224541753809178030356573241586897974499516687023105338437698143371964645517163802998407711348867068675988981553857811586067465382899443877279895695071378459204195259376129327190537691099010605794895157577613536987189116710882198952336424898983573923736462449541685198481706613259119626108746688798787049405322106066105831412436813781601765034744489861273172893368404966783566161421934684749467986334315851802605089023384475324805716152797032993517508068688457642196482430770309049107292614615550609505366134033850613670974772992151078667782164767004662741429132635817222163055792513179020329475235711168565953837401833627434070229384751690831604826510423286409801592570948591036725628718487752425251931445348014959841263691897555472288926532259643113752538405593591168904228793846699379491617053313840000420720641328795093057005595213751933955501849156924370917243149561313015260489383587239769145428538701310703349007280785933356595300365300860460659873685176443233247348163922433383409630310402378879618184341263750100363827941859296482039094858859307687713679512858247789359519168174502966825343391510356296214630218414181426356046006824194049502273527626722098364788295338596765815620925372108092093643978979088632453006196561276445018027119980107066475721498704279608361155785351481585001126501328994044633917128081204167600849926734183702356537080595366134319049418091663880232304366268008651444478732431664001163853100384428751533087514300903715050426593159911452083912800615663089362697067172081253603816185706743962250558968324587476358549630925117498272836562997964207295971999044922289742419286088894154468957323718088363132141054962187787124511302489802607195777667361070082244594827998259367600351630971394258266691231131322196560808866869930427206626512532348212318222819141852198392174361123268626072385988783606654683407772431140795931237976432218613014778960300189397651159132419834521470045501463026619640590879363682362057055176870783974956341504809320744504978795997891555964000931989491903869803307389864963705611003018841812882927300411674536058473439155767187058160100509512377489952140208485675631470877652637658916060345180702270048565801310883341149295520178147095028483214127286041766705362277078483492062204026368777754430179194187605409310600679543723792436093438271476634090987010215424320949040845543654728432384199870315414336501051116989630062767885495279079827168503284781577223389597658200544300785487079276661763073466717636189267129149408062831600133300515373952189718820133258273358089143306562699042953309050941204748524364268794367844584468764689532196175973193085081689521922137971758063076906266054788115416386740735464645812890516378066371319695616226202873035977992991752912574857366034267335157661872959124375580344434846289183349482286713615968718210684197559229129029877864947069346222380977206241113672232251262584727604701012952435925745760269439233091648984365540316745074727556438018961811438827809619566963977363974695571963185705130859560732920306009115107508604668202445834192750855644437387500304345831222285351450294435900656458281457401381165181237975093811120884321081119667204489322134910996637349097386309384027141553569322564803707768397617914672753432316133839576939092079128635524126986380649020688988448721552196594671361588387458745690103265910168803142788756023364551772671903662630226351336026156510416459273714488558686103088608066467166533056280786732204266769691655006841165674965212877255700918892504919623445418664501977366343253031934720166792152285331485790312425233154247000201920964376371419754879785622748100174966303766543163443769649157300570212990742670886303887439916907933811862544869520870330626152447052268227009209039442217259992284127078938426152483447237011190109506964282832158225885895648199261189459185075324838131940075624647841629456554650171250497338916651249673281958751257745206162953914640784782826616643492270752037823833048002323557968873937777724016217669599927976478636507378675985338935259431179739890897395889667458721818528100542954350817042368519074235529148848099491284031753197491923663757049446616656003565984850846297122407390713980033952378761463587096979692927888940589166574071974905524977762167796067419286324802974990765895029989208109655673930262763953337715784061509781028584990499759551205638706373237328998714770312596150168514463097683506091372610896347296365472039530360956373628817804327621349305686389418908985689056445589772081039048124703557971226937834657306137029388806587358075334158943087918952766266455350429251007815080800501367026218914407254617982588878484628152258792373268900936383388651163071375331775687872835694635643519381962617409254342187427201318241988204237461746576106284242445584349293870131846094803946379384117808146660124373728375237880140774797409923487574645983633370888327455379740910656236852947601684057056900185179028875194894451265899344748300314207320814319254205051498395124818855940506414551022453304947477234715466937027499111324328050270958329677729245369615899130006232188596701250395558878207239282886614424152157061501662833406453380472870699428266720036630160442186842788934395786889956791648544538779679065312205554538698979701298520882373826196441956512754526787699458490115524367930397143997179812435695643194899669259119349677749851097996671977942243043854827707570307481706566602459136586536402456270799158246896750733808002994639765010936806403146579206026161933815881806492347795659632632727181173741748335906335703713823458586620979034368163992575156405991211474836215484884644159742723527419901869056186086522073822099810878008803821726231277964785739785613110813815784864487161338404260927585349247259410803633165571908810519301098223511440728974526667394858744673316529506659977649083398266543038324405787380587300724349314557421485802479599837777502016486124729673761281798754145768617531412577257676447482944294653940363548619744855937286834887299626878637985719279075128824294242206721056764219786030145331179753497062155422048915473785538920833302441992281613434002595363679960907039375556841639839582817133560323769786656228027609845346020629018421225788266510575817374982911462447306776388044451633156194438847035470567936721809630293847037602207972178004611365063706239883262145937662870395086007309666538624635682967292551346127252772146810366761459954771611828909627367014201033596555397500277002707775152230308566288590849874933893969558307917120453068826529758329279713841255400641387350732818567921648367504665203091687690969445349421387588788964568614055837302901164039863485518507934785640266981626623223184615084769820462969881732293811647340447083288152859868517132035376454932521876696135421018999321154473459891470814325503956195010896340232927366254684844514063274478539004031908951858402594382245395039490845901893384166199427925154436801137913806562464277076661778859799195872235242964578361915627065801534803763388874527067935661974627645731927758466444400981602675237370685577611059526786778592571327967066366918883758972670829672085970678995005221847634950658877463362808271554065487171586828763274357661792448741602648812589682927196683907396311631403898479469393342789794916397738758764086035628541340366841940554945977661426119059775551892241240597211990261602234659021584179291307194562058459642785776631631855984300561639483993290842269677955409920490577733857575341178483084303025040661550289557954888896514850034860693372643656531722325979169674747477379608616726910385930993766363394260244241580627774591924842374039711873744487964403685122631113413025495059676762700713971035450290485760014063991270760469937981815634059897723066553755663722613203714345250644406754710000468937181218432554317834555730144099653035598772428944219548748867272332557779214602235486805072130848052520867709832856555876465418972319377976804236727858282518617122702180828840241447933280898364890963171623481821998281254015106226885806319587144230239004407449416387254567871229207733311446172767139168795700920682441531460201105022815662086536104856254610948707456204323600718560851010061377940677564435584257609327579031154553257193792224301127013566922223178116835121035931626716296112479327876397214474204698663461222771476929791351566560901077410304575343209298410070653732403339447968843720087274362057812859814970180902725345737767568996824656762703497398038229891912737243372662840177313881898918469610037279751841158761674082261843277295795801807210388748689329865493086853290675418759196438057515131277508808957784810406475105628261695014639247682489615998808617356435256994746804923605307757210952583659473106284109672296606631281044710805608362464761788435109012037060143024484852926673575781884489465543451626837861788376826910513642782228301580540404197938766473743293794951692008669895068997903573276031569008426311474287451079484578915753625118422471537440555494209347191771058541310447809321084886508039265170077979715605517724538280343550648141660395700137715389420588204818411142530858636188252889597843800130276576718978323124427930442739008780968797393148633693683314619878187871414861193304425395307460063915267845161527860412472815746610498045600535042249807116009678771447433457949377920940497531151821701745035321321101770445186169312798480195944350026587747770790665468955491488308374848504960668412181895106370798488137023059450994293939802948039616066366656369050328083715623694209480141304158250066256144858232537787905781473045764704687924006966179361270880196081775407308621181761216893678803564068335102535437272309235165237658900931574034740544525569052838872953269293682088964564972026783484407180756651712885096225985695363307443029973655034781988895363401628608946582379263202885473813990750217500313162127338783062446860801428877839215491741082408226914095105696391088487937406480779142579361328492226068284971203921668663475303977058127019692880890748097696066948183591738771564860587496979854618309945430118373989334306915927954347269659443493541024525778602534969964504901652225255981271780038859197247962301574093827612764203198560127706729940046559507857989457595822216216215658910242270903255825944189702959531451471751864475961561863310704232703901880865857795756204605363600552161560103400079671592674616915898021969038578176245625584359104962310315009932063240842627596792243831205659609641256215943789212488186938525805958942675959758069467501755965297656881101346858311661387606769566213033582692666451047709736452070107386861075585867590957272936210055384830841690831771491674921207299619341506048654602751287329405361356791279309324515607242114688266977278080259773832410991041685592376059366593108632277316654840927086664582292395448124173170256922361357660547163720943022713359107808211582261051865408730903241119669481204374579546707040219113223644511065140859781670250351917650264482210255474963467094458672553274574306172161459797528453940841993063884145719602402633135156081642894727394440486095690359928253648690049198756678505924996786946721776849798287059025171021665530289248526675810226100620188775752559127724705463009286141567889697520136160871686152967233269101629985202711715337303542506704382372339290818293248186086770869883391328678913825710910243486471576606104074493171661662734445246569471644689065629478701217229635492919015478496089569016522074007468199154238824810428504005483290816957587639234724076744090305071214290808913102773773766144973339174347478094928203914703723472672399506350347191801625068264196818611686835092122214493361137557361899612441087269954702349935551893818368723156457722964032643203693031068252229791408043490218188855903904325889079303742813234287145404211086085632765381715777861247251770659172023305327030086795826251004935028320543554475159788097544781139436446638418654148534494105621271701929995029011557402939901714803187817212504923342415882926452370683118436616033167050895725942735748903921708721096097841845124357650129996111259252182472355743744466803563936186046873482748257408382003398104944595509335686525457646643330935864606324063165353466836403900604220336601883263045239521517928902479275491447856077112447439981509546775441059978532555930275354282702297942648166440321043976044993206314469203383694502556788916868429896522460057393982042191753741546058980604723881899277866722184068507519715397895279209321288732208718298312716459326727421785207602252072155316623951961044722623673176848281110534545586154054966830113610642416500966987781036697080503256632474625895530356894834946132244773410622690738981796901190375145212697410207190355720990811763897973382033377448120967532810184098038208450400593859995594561966331634053602387697440685854054835904123106871664714714346060193894181840450261762421600665677069035645001511614016588200285568798105872029570032074690772111907528383132491470584702596341838378400283155617147773224241022427084924115247628628151017255306044126517793104518403369320235285376513428959065392962942069303749711149065832671976983935614143148377821986361362663306220921511152986450828715158640764324864466344463962514611548047453081717309288021013573098825915854785972050185232125160916917618179154152638339240327626148535065939632869604543668048875647414010013537863408181351000919027837565270779884319010934951498397357986726095829446455126557152523842412381465628577724439734778267721426083926592696125266134762354699202352257979700468746023303358313575651751346815593402780145528682800388194168911279912095599178748479154823891323654063404523916444574478070533094211062496215204266056557222344601116380628345893634776735581673793253767019742151171355703953186577102262067500772200862064515262485856532641627508931022047706065676624529514924581937519386375333818770520198617795764559458256485136470682846190531786165766586988637377581309357916687545613480911608908420902937686473357227206679298977365988613542934655452132448244757106420213806161504207968615607091403207239584061796721012614515901332860947567869176529434971036757490235754652737619097865617930053018982488216348026958399122362361153099954992676066127628100140136825770998791891379273689063523506743650795975503680177138349253562099067506424402465238666914716718790889869275801195362527722954643522981679665781441168666720183659449360586293791205397829200259422281012329453481344527856220475863357719661731700839870277268687175000018830507215360065299952690695620598737978178157309374910637939912672936636847328162630674487303780328812861558565624765137360702353065864823585252194896967096282792507016732470837497689694277648920343097777961664740317834561537517140955930426796234392913943021859757895494523787806484981263857434256759674948294553899251630548574865342754278264654935586961513840236030992624203162400675784172971100932144854055949835076575070254649924248072327720728150665093863308472989573734743719573746888699843688982890190229140932463885487589961178278453223448337725438541712287605765317267195217008946743995832773424905649194960075015735962156949568489646078621945432956082335752273206926777454483661130169368028925906216550090746805029756949334539492118405166073222408715519597151129648299839349375024928377761213133402630846886673458851918054786231743368507176606661451998035293135716687375411858615487206360401763507259783810207373631583454842132641308251285882861132269662867978178716319167788034496070803890528982194422604951532488036676105951403727065626222822832484155909649064755252551276585822013880289064233250901199488927711373459703122204530667966017663952611180981610047276450404921241049176760805474161949948381256131347380403658386520537594796195204626474984033805364917483572837244500600524068146197941165778442151245363025526995690680221006599354901006460512784381031300807873569194163152956935027474883346653944318274921217637044278777061939633342238832745332886483333361418648185089616320985243822851474700841539732320697745773235399667573348148026529082644835726260622694411347588541794965626054482947050275719560477082754899478553226312244940763822326191784186042817427241948861999355012819880333607164480333734324467164945275412795434403940451250554678312133927190067779339302517031076037033217846105287377990216383964783947578853079537480392858081400574614161621771974497576262516771537825827563495158630620014172641534434347771839211177725836859721036258099227869611059637823900081687341588336606926635063489369911636132170072671741603408742926206897329393267587034941117476955207524071976370317739259389186942514256960779753616469114478704266975249897817324085370171522319275792389128229072755799926604289533617782936037878683035351992688428745008779172673713502556727294083519851380043170476053233750640468731577414415527784915246155709330479891791106977279080596955971787971448152520180818801351600029062942090392124175947801844068954035052243373731932646261027889622812468536121018509844039315869351413181149790817471601341615113066431865977897194334167668524766888762065995651117445914024023006673539674394559251707807524835591598279882531904797802359006182679022375176985779049893337825613517460842639622084188140581506988191978591694363134610903498829653076814879374231432408353655458526549478726836389551540146908312627663628812820729363111995267877146842904257440764144675549224532940640389189484974455548967919026036282159522058434721997113266257054532058697811275363754494659526202674304905335777000399571411969136897079039393446491238109735325985473505134994504902226329188194504103485532183137425320137384286228094338495491971957242058435593027114146527308850902057283224116621646767738318138027314985543587313382060951802683152838360177548571850417603993750669697026700148996564631918584995701072536611637764568459539296655729818459567689933983107408921915452280219033469309706429385431567713409600119684868665039072851899856699085829488755676231849774477522237631651012299420534012239810562852141538650311938454010456207047063612687811135449195190168529781122085893909599868547070744570931830366223470731939186802590004782358719641765168562630997797989107441123427956467611833038749405248330314084962640731527015461998746640715522296168665349779211598211744790902802177504800241420414354005462656861540489332594949435460796410722083580708582412527510397472695383631451408341691105556801860079029194427318309552917120884987313824738267939311833711944605522673110510282372153656614997039419270497920789298419622174999511699653238105138291143986830053426806071649450144629509633699512863944416058539432052499850869993783105757414256284330222389666665109967226469874471384815926695914595612054774363444788383787749111799954346981475959458046484470339128084822137706451642959170336739764095372294285849144750871554420620754256766772796600631994300686991992582372751956062597127357033403310425230159433761376829884533062388310871540332541434865319703425210301605417271793731265804158659839936811706370421287674754153958573393424080637231811848719542922674490704496871290155712883859805158680895789880708820839710988589951059283584890592161623295655162005361241501665458074988224151621724356491264873494014895887377852923011485471144912748909857967650442457406131333966161669266617195286866083573130904439640249963254881227642642666737899658507471786199050019606631484759096003924032297610394932586179641250942372040958070097056375035204795803180614517111638951427422906470751327299723609513210057097844588525178479412324038227822898330606378168238623962689971297750525276183079174809653914555356167096855113585893171005652379191131672050013315620080615361404209531445589300699588368566049738561494414517359097104866400436670540337469407044455370419039179822238116496002427740384262321759948878823652979347029275731710950970392932858167635378227535464546568040884820785954536792602096991057522428137358300369597065114070052638776416696051104195490275190717031721513809551298517336659762319404835351530078942514321647924149053865348101833817521812428586772545719339436961456404220906999000786810175633247757929058291827791023839433057299338712563174126132496664092724079954227075080698041997904113683941886162410434009689538729879291804431159713884644911631601051928501586840987369665787432658923110464826990464209950127122924039644447974701010232917508207984619941601518744506774920366660491494570633383474110630989896156285043057165493422926609780624063204625452724842486965974419922486511514682242430898005538491112733133361570550325789595736285402870651673837603601121512713830740107476024052661804097134959113136000060075069251112274451605657249475222266534262883250005198274672079921855176015501308577439334195969416439121658738608071467066510233110490566960753901452569004942917448765705044620508063628976384054816360638828635855116689818072137172646786093646512393297772734150591681604753588237733409836441635864980390446307045260317006485952053288583656712447158117107786756670623498282962370506798008634391138017587994314545157496459008476119647435240275542571580554770098293712070033432443143603086061714472140947953488983879840151937515302726788799636880834161350369878431402903264199400104268802565670402057712368709056967495020330437499891061355652210687188586861030634382717695496777343346235474241957219091146326198888410095047871669511236303611219734404134313575218129217802574695434283113300962876443239615506696759105843977659857794770429393099438612434324629882528701275274644044400296984954066497254112618024452010510952726872096150006752917337407287454762077481811900525882106979084558878814508004519101810445151400299070664165778310208964313370170824956232035520223461800383665813166872060463961326501361832943164501525200232924992319303741684465473071895943831940359249153765553954041228070722087456225681914734973319703200138628458834838253299008780553711641632162851171432368776053963756061717977802512922663634213439411857343659729299339595360230176007626179257392856777132069537645343249579190204869761906216061184633324688578325445352757045565572898711037119180852115794853561292201081398197897089087153428534197926214645644490899647605756611617459106407509293136318237382047310443218701748925015433803757460138795177224953402522232879739526450556776738152504411658335727114070098983048991306792662238496386668256272395176570441038056612716870344093579806526975995963736523906872072624873148213231848128858618352530283960715602114246733359078090508330658591497117537835639456168584401008211916883133180959271706573439088411225942539693724423783717951472572038950218706051141781567867022749829122717785176685052365519334186331419023850909216044278288244437126580853025237523023048925417258651942635758178562355567913525740498841921648938779813860130268269469981565032841324581248035515581551682267584335259723196344784476583686439044940757838271458443053703683379406087412833921809148080589206571025846950869494622964203974118980541194832204853134547840087867827563781434567160512172228610131222976524435136814675939803266312084352699043973049928807243620211726741871896166617924120613989086276002716739995621631155891544515981249504988504048242095422081414116094801021812230983505757166479313480136548037439479537046115113314675198501148765417473141904858497810944957682987462554844985131411483232275796722416767522324674750096783205065660928963062691094331893890016356263582299780127362156092616422380182993773117076794873085242795213346347912726715648078207821062037268676692046395161074200919889778298600850802125492943881412700777241363630712567406444427310140816523205947971643150168950951505666928241520420545750135618157671255377043789151657982743943149781332329018300843911589408734652401879526559686451573496998218465262801062185904718466984932706043916424014071840149519735414391501852515506793470084476575819254030701485583418308456613899816867094488321899819610271239652584213511368361903223740019405419972896158648886374588307319577447290810038710686676915051484843658022403833061352674695731758066340914200854206500544319438641333313505406197017494456132851006021906997894363633902299231431298710002570717092320640767008838118771551178636277774236499033301127422582654996414580131240475548383520428475732986842658702703642233066394604514352053651334364729987284802373434873188362979149223148049301246787971610597059347186542748260480661035908348948702551166579720354393033930007804679800716720337744344424879497663514777743033666083125354496998846600460166493606838291176797202180203074153180436760640787160119352824239826744536633207231051252753085699118144411884916800028201855529788507171236691239335214841187097045009173854408404360889496892699417051454629643864543421318445462917104683313223556829904137892833990989242608596337681202954024660578654973509582222438558599331933605248562557463634795465478145453185164337802887203543957329297426099817353215073064138419844046068038069700936676775890712325023642409227671677482476079279383954930043140426213087037183705290058870245455316796753675383297240389982442418526764162002132461569857479730071582269813338224187304592035433412143415764220092132039486836783888801160769807176292658953457787949396222671071638851372419120126934944170593509785365140477138259513166125380376796305365327477115948223547598602715714500840761880031768396692429990198765316120933048875079547786752754674721071090498409021346314565116558784234764500563983317952399147095938871753693360392112321604193104930273237419781278617184680085104088436574106439414226706609715336177480707382524379685857776061926682956138759895376819911273338277834470548371933286684187177447429889920104340402310074403442835577383149391784076880099522742118623184078856398584011068498220532415673063114472672527573708184327182015153489640656288090727874890996494077235227756605335520301392027756256691233184261044285846662491179982344401305802795890930695311358219621806692448052131338491270024482851098763449676240040421659092148889200433682592095571331831086209331955775809346048472964346148051558873479178841258095911444704993501680320009939016639896088594555131630205808273324936022814497098801098875618241379851699716145740055154395835128653671701142423719595962019014019683265724596239748017632162764365008467690736909474428485426267980184566432863604666674645848327193567246053266844380952304985314822385985232970037368526537551217079400213953142347924972432971240990292983833254120547668334506862359488935300540134648124228604993364303122915660357726159698937592439776664213031920619112342068461660486858212703676135226504692980238885080144729940348777593364491873150008933588575631220755202691957602311551398053942461882650636560578347355958747550864277248028470061399425711786540126997484741384201600985300248456310675935949493216899397188821992844399346665526647877738078732050134748940416581407343060593803680188285785414734593662597535223639011359619378010333633388236543233967380625580945444274351231917155857420913354224961684076680266482399601192443123408241646008624199057993646729331461367210467456830912989013865506889895335142298579443193617723092337770665798065860967145591720455963374664729152122327815749418888734191995808180021792641897496841060161990797555526038440033433325243081757460666915669029875738478765236042201810756589076259812923180404929448347783544073795173931930450534362780102669245588399371938051307093589455614604071878860605887771340291801625081898459791655916253914178752579989147483403271402799612309748946522837293555263598815691350997844777977470381068387073902760845324142023510539371558858433309996389441337150475303422769278655810657076729670184867180671761945763444539808889596041958897496947050393303372663632748446301159250656850804940337412224964574289238493978792710849237545004721628446719107390857461869679984648420061637010353266830298412413634962546099281791003207093055308878609355258019176332321230843749155385920360122960972816370198801808633289718769322009056102519213930149647019930276591706091606549030890905947530104721328281044850163679390869048921656301461907699334150875930024387419813971987997012972123227671355727369152700569527269773267256348261696510734031682392129751285800763595964408058426883739177641145084139260751431588104754896757590714074204100108712061841074645876791245774990421149865606820586091154297806749329614320321012688163021073021838222346261390745438542058594065522372906353993951181792624108287677115201675522036223131330798099872529330673722172584139015327424074093851998211866173005838410092448053704244306993044715017164192611552639769248818148309577996244038420341958645462367919151801914963864151807400157161040717570339816009614376164040332040036177367467479264118549442509168006896264411443032069242287596957894742120270410454578708562098464126289887512426989964755108888420753595866505748760647420140432107205060810113949264510117867457857360887521880306333203330444693157776006511247138984049280563833909368817643181567271592490999705237757117255427754421108953049839073768543435775467078589275127096640855471323812597646310399258713346898955548995948429675436939976167114990456093796540483070078228096827046130768601103161203134539131341705320617943045399855301839777555505721162851593461086768221430330287203464664799553485073979392900490014649948069839000115219277664524855122136278419183050281161836592006656164093384675244020790676916491869293314700294641970631766410550369684729964286770726119488398150905975910432513558435208434733766455532412751657374879533139551895666972917951865610352009595162872902616725655010301155680536508095081264913340074806371551992877593170787829904325794715649698228712504793533446932349599063708806763310547563005082006658805770191386351435376790991622852223083677637291152945902433239372055257617513623966505568209996148232904465158362080989010034267355504967437333626409686530771039808874190689218230931848608631490968595648205599009829482717980279513753522308649234427856516135689330793544955595512510624971873311451330411886126418129131031585716348692831869929494526933516105660198955308458298549950765021570364020919389991798044909201890304269846041332998370737615743738835524652245132650268973600569921075456740200306490874847928607182170255714193266690691909664836671806197071308202307545838013779313514943500327236685342763537267207674861931953737952505300091117601277074232230663266366899781761062281095989185683161983366613517338309550250658547669516373820954259919133240842501990769743433819339317748740975438810760651486390540503532043947570760969038388275345365680553598196445642416083005143909058316676827174252709293901953356403158989509559965079237695614299380361200534609078497530545682005578518093671004130984702363529886608800105301757524013641974693860732539711276355540188427911002576112825311984827874941985475701040010129479959374197835546993906353523366364519443625321352850708838443968629628811333801979150986382968136805140741121668698978337204612462212206806833095495365736659453589807118741103144843926634526095621855004846675801381996532607984202115080059959408745692405747925826867028374554676692345448966966140473736841549807675142249290081969879382576096081362740759675938718138405265405183121688018385471510196614125895474321785691122502193663829155822809003456482190513859482132562279334410323636901843334608800689960135826061475789383289804072036905331226342152646990056559161561218302082042609789693689969509330368872443046364842625618788966394317994753770807511159531280571359309529833551401497376502775318179914185133604094152422708674439120736612549395781307654314162100149680051324244535528055744080697400976266413031439849713835795540736270659628970876260422713487717481694189523142019101297528250549906909966944673537191222498986208729292554569516833412534316782241795900140350430664216347809113252128973659284544393096870848675979148476221183939921785791848374243448533243439828757465017834260373923826825906393538452967602069842389951884688657920255489111455753594137386830771428719723749325431027308447862578619169214547931523598353621813865211544694812322662512667237032928064069477671624133028148774203124298084797693777854764681785538645979001517767278217094300423955562380077904720291188066049435076022260511455293126781933271369579210250660107386699427349440948543053634894687618520979830133594317004585846587541893117628216029547094695741810656606722521741580054487137052185370153347566510824795305622634960415866548837209376153778274993007864622495890164506235780815375502304271246473054265517539234737944263583397123116169385808272236670871380254890445886629735248847243064111236514572905546319302226238361646569792148033140078542119158460026578230825537502016733181700611621519526796474669324693344674743942868482694279132109267228099996731029500032321366786005650944297342669577327205400359846859081378982316457765964854799758757289098381713151813707210981705204517921135974669573393370698169571697723033520314491310085583959805424418900088852216837425609902549085654762123455547538935986429989877235811678589374896321801442064967507264791523515292229654864848598687125947927911020195387604198398208028221474855898954547699829321750296955811771222204164493519944753254135839056937809793119854916296983662167016952015059013319626486406533887050480667351215307035645880060988540359217370617582682721570694461365962840720607060201974120510992568166919466679581488496103990698712868365236074752580383005114385164514822573061623240172879281082044846511787596561607085420475208859712679569587775517603082747877368606097832243916886662087213655756717882409259631833359428195294306025672628595394026043182358909646138939755723509662359881543275067457149406972968588304578840737080703653016088960279257321426054153571388152358704556256335130068454518546349644901006553398699434176166652142146108228158737127717257725326081045580982881853559053582465525002014956961646283028803228111811193377419972639647244230010905229775063719124344308584376809457549905639652657943613810864641583703521122735142960580086972514503933494799554934593195613071726106999435276467395244206754351688482162319854432227431197665666548589549273740298024877350865083279677456108380683304047097224086041300021959418776152936490179548349621688074451010760525775866272711039731272101198135155223140892746790568717050485312398237549436770843359188939967258465795581865957871953034688326519501122919416378255064434401944263118767164205653973590653407378630509069107350088077072688593985215860516163552414763087367373546743803842988731207107159907184712755972211081654764010537410732640267038230956344087934627594078934989384060661427952324148339006302633291881564502982392557894081273172074331803527468695987371824381010503804555498043801064621913027068827819549481052267062704119323893934407638233304655721938196239375042515455211974256011358309433718500214031294615620083189450046024825923883150402467179345339896276157047449115854089083624765666090845789962317702844333261306036319186199379520320281155169201166682512939398963860791926033956585352747741017335091181330726019097376215086550870268404903608738717740607687117244424499228460903966356727735414368456357467141637414905027757177438339510861592722676041610067805160509887032457020405458826110020271388637005656385700345065514743313975422510180361505099993373730491436002523883541293562850526750252251729197537166619180307836338165566106023551580770932077896310625920111311821330120531600969428699757812139331925902117933731914258674933473778421348616932302022013811564625771789773389478763961663134164345702733965029328363462444122196761366497679695233665949258938288657294976685079744328376536874316191748372686567863897871916806874093531256242382924915470226877430338004895498831890945982261781893464610553824151745974754493557934107754973727192705721151731286188288466362463073627929581799241482287160769986602185704361748403148713245405331694212589266596595314791378135381242118174950308265422271674223213524343524431485841827351491108633649253407556543652987686004809264900800862638639543663972116193387613729110893900163725228336053488583504695245073384107848968494808707303932371482534804783625507422068961778620052520873513547879281836137979843922562086023261952370124583687745491441690365283233992641426726576858005787946798247035772684287608122211998442806382050962491602804129551223745524818354055670070847382975458378060984232916541962309711692457520249348641426719915424937980678803415223250758959387747525483722355363465247277426512647140452726421574825473495899720337161673146117012938049182519685716382601597547855937380765157169780497806173649127149525395360884119230490782053750961699626371657704128216345787175990614942063146496278599748723355541484786959852145563609326840378970759082381387978549743660314756681819073423223468658705139536779018071243849464682365678838544211889534192187206073043452833349058931154102842152308051593232422363449235787299487879945839804665927407102691030705623468626364170390678114202680984307498732835886108690518274303469662861336103620266395651563094804932091403073709264872276369139029755687334172779968627381756910585803480800345072323896116280593837645288171252227562625665456974567850015879338784868376536320656715268179839849570476240089516134840167786651945216876834939081569024642296140600052718221128163806185703951858354214012382738099773839806813188193036703848677698359160201565695306702496730187189307365017659445361712296669912707325012561422044897680715177520578725871526728000783193003088408561437261360707034731203507872873709005282471229020379328161821441024887131891704734414162011657190397096052377421983647266745116910542806151272478263924366845344528298634179982023543753894063772243733289558680593087779196768316937270056306112829773282383417487470700928592032213930005807212005856288948397156583797951654647566411432421787284975005398939088862201824406671345179114673230659113764442169161746426977521428903275050274278172963753439009038561136175837396598589149070897171762966156104206196125456680943679775839069265668864736243623466328843943374875711838474772096625135894314015355221643325495510283828247990470799672844084043525225224650836453498149359169650479474807656143670618145363441680694817944840646221333601016969532394653175546932233120490140502061250284790192641097145170193188472660517413988269775853482269587798046612746387150789852403160359930235114940072265992019288721255369144290904441571321337410196671512678074037120317011057240713385510431675639007413074949646861676062301981691956898052078674680971164215371408452143432186827296796744165103257772650863361968209042120079361170930357701152357669549381554648163710289144129569093308511362352150343690025660404999683101515015048052304737267517554678233284590670490182356805661616287680455486152045304534823214129973127389107220371028844439977290629312958726162819239679779479210195478655198916770784268553561125725927875434971172065771413738493546744696123488533576285896393911521826191708774768072006566925291452827023010833099278538430952140433126307297123151795023937659724899309346662192097766255970630654093224828771994449269010966619148797984436394747138906367471545923564421325065201978203679301790107751516923530676989226481124106570832263317408841796316084945063716121350132170885874579257244740186837992597128562263658553754884687748055839362666485542292362341735029306459738343277185576795273913342278550866419244120281213829981430468787464586456926460434397716249119227204110669129408378520984384996329314912102326010229833625038918067456215923687079633294634633812452878322222325301056351567100033080902607767094671335166111746949488901450058813850169613794601449075526089152576866536598124541906675828721876374066550168646600051189095852719479723388739171235145304220250817407586241613626525536118974548344443862184125207861161431106399778866495471144529192226473088416044413527478273260330115661827957197745370142366902590763471929283353763618296349047304772028532190123731833265018769969677035257594278480326245283022923921819691585297295563718795742519543090359342293199964242835652163621796040249570767552148548294393678578776893950122141230191362924975819674071221959935106867114170950709852774756882724158851837572051946927167611868980723619491305860254026958719884441725096358713917327041697465439280653450020762163894122862286195478892748522336009760415491664972574961814338803826331093879535777623048425129832016322290987269547865889767508099704062033556004709954558054013406539528104364218852701478174217572629933001463965312293508326060208078368376374249068305232827586290204905146297759013947838409514330329418125967269773508252960116162266814752787796605460294612183839509060319152602457289377018647770102282938118216548253286092976808059619276062443121334352426391427955547968829594924099209830185964991247967234021024775858795418665410317273741017281819898948851398728560582531821560807165357817794262899949392661151633860159341808265470409516635428176795483576231576754853886962296584968664466119320776148234004254908546207648034083977488162767549441901497070827421306160078311896534538587389674196597343121876557210266060476750801932595145328698145262858989469848216927872816706432434204639428621159486263520896282368691160742849000096269337472871017285672934163295156438726014600708264020042453096998828662735570644384909540739985915453044299087908311015377038931674956632049120196063384048740938934433996490526449042826378675338210872524451977878230359803871605006192259869046245504674636879346286540250074187797802836315531961609357509851876394754719724823575713722961525974316677552280631865232235670247188495018459214292246126052754524623644986891599532557731265319369154904407881567385182032577699316957288641125141058184848248434410071411334625008977557880255443582518688906703932878287405283630819233161546039629929971767747060913170254967535976679569803655597322991949524723220398812217781536587340694137474458657625471270878080252482985448659579974486672470979206597812532768657986614055925439588736808143155199952469155270209041061700932097708337826609239718209946312633814735348017520269003039584102628839055062068959235665515589442564710633391781908056221206193192622450984974977844940078485994164059399923071976292881424858562018549840679272498261325966133084732889519311461335152112264563322073574723965915470562828459080823212705544196252627727788387863694568449872814075725706833999393789239214638875162191512464039358878028016386295035708894356380515075224443293445381114875039183557196472003103172256665689153175047166723702382743776463074321433198472585040218320057018994127225280498018064372022720773792195975050639265955521912578804559049075761880899246878586243091721893695136633028560260243936997215042416580379852000670720304001437914001773246904520499685898594298025296985314396108680563584057308654143785668158878854057292200079538855127904976653505163877526418911533512535684469794680407679932162428533472148861146788813210403646849236254030052997063472083639422229812372301176088502434346115868601942339973726205389184647472446619739562416173875267985199884992784782362769073952127823848494642422771629208830683752162141505613694552516832071805284402433528610519254058530787621451140729667060785357251257518269539055947318053562220991473922176120429127065176611185169981545994380548942777115397619820863272195041146359975385186051439461985724537697649396865987122420825051173154598999269903559768357186542273559937204894231735212492470877856617541172996803442127988041317639890734597431651758990380841733309152619217253516460173214908148772357444188899955688545532423137785770755853688871204056289907457415546384472670961167146489655036867518671221084535152314809960305474610799406195981448139308144500196363925439253847636986636038411426255377144023788147506074780977749501783839256854342372918124967078732594771359707080332700710232959272002565618341011208419972733497269311978210598698120936595667134740661178951860835323622343038238659246821863463035875415119548462212763012242670565466569721252635547065280804567797769776239689610246641699275366607976635418771187750431289761733387799603091780780941359727143863888433544289488857252065517407891949506562695443919765168306868299361835456460926115616771439408568200813081378099207017969114134921127159501449743630144316965850660113838478282393814927547529927751650901082518624528960195942165495580138679176412573759944598777417987427226674079284280110582945559310508317581158631985555346235108347780711098404479026078211306822048670277692179695261738116333938888074065666929312338863165931017505162770935224080224561766787468888257921100631403511130738326516072292627674372115652708614084557726382559634169417840771139874247992427448394808266152473565720598456484989754642867228427345173803749644281526155559192580626127354910466860735194761201937719613611275450139382492060367504529105657683751882265021553976714075189722190432474816544557670567428888941679220222745267662698392128231895943177050516881278423069174883329098198422988096310103686961694142255993634609889281458830723013243321825421210406281337916603033692262328291995148399497246493372890862885788993468068536524474001118216784120089364870016042871986015923092826506778515934908576890217694901578032915640886595981950286497562276660497863251805851873951656553173249451036983591317133502853266684839018803374349736939041863479831684122795758632769009704384144415576370537368606351007892806583575387719018356059771351704244563190678550649111558960086462588850952970335752679683976051113618233984761908903752625277198667728493132598411038969954554071177081349810084335815097312161794417073542987738244587628089170382351717169436087372994831875561403940891795927496799412990665035776427516557457057332750223601084350358967490767987615548823161885611196324288839311560790228759984596666549592415957458519040951844287948310168515643298389679997231724625317627748704072982777165551232184047487671536232263669024226859216816527450331074820776841628113657176638349592077069221844602984982645783290285290455686205027421764336254051507571158935798067293825119604617486388279491675883024272772472080513372655457198551638736410868998676754495189133927218705483957429639727264914979517970954284458930316276299723303325632741067285534070392173444570969787934772978218359934841213657231932603840655343432135994941489362800615670644549977945597680754088000473355903747928513282574818138195157178738500021398744471433103966491138320458173896961658706520551300267135832604193803312687782474719547422839841963106930839033677737228330696421538165668443236455285633436782200649455578218858316684336638636695034335375586034190560252777869040681413040184028543617504070223313316148513649951401585176440420747776060039682269674195338877314119790005858898000760625444820599791444410532140314255747065647151345804426116040250401967675869288253168715851208038865749677053879669446806572317616243797908657770610784618460022703142911226183090684408675852867784277484959466252543140272629784577545623746630259295048176181423329833864461394889107305418872023325430199267489643620354277769556914236586211997736973358167141314852033880781379507929811619412878740600826410781585703644588129042562917053135793998017154611175216961537162976993533242748319323084474688142281633605600622856006085594721934207401353721718808884660630813954729582848152939665314301825162734390363323859267827456309039437265320392658922665855560761537303809964166376753367710452405240789713124111524347121286560334795617073612438043109035512079797486640761187139704696343660242643614068034146939803672624954251586798763367688727774992795946889720009573436816535069525261444076015903436169468894782675510292714120658438300983059535991748940955890726369661593367476455746745484824070422869759195274865241694316828828383275037958553486705915626525451882262993546549362223671397495139048569111350481770067906895263363286728745018799991957905479006660519619402050183930360853607116857467800168183502268269032944668474343729100482213472755477960611168352219904437920848016390549370375926254759579881072867642293366560675026920159602303724599717820722221288339744085605216935334193942326391386657822618988590901579375772540232129790533373133339557414301263127951690254440972245665606727799692539620889598151930393342822132143697465227306766344429989116607945027429102111939798144166792043279140573092801881047301800787553096961175946340546402120500459762832724348155391993861764330123464196107571372645245743537805466137401663779564405898582544942111971561856746683832685113556121923668863884579118274573078103189953826297923078398358337048835727103108452390134861426388655692286812624690667304869422480894518787340178991099382785692338405554352373127452293037006891682205840222195229563222781759944444503361015489147201891716916556156248854274732102754126937453196743510326339266929479014869976685594788494767587479355196851248304950314300362761744645687940543126187141714310002926380046621191423004296835468333927551610145624982295903964713262773965060186707198993074298465283124760988336079519683406455150446980339010126497236209581885470833200786553222741322555692247838073979069006908594094490806295851155177757063802424049094019058017577014499541615164538169707325192187664661031186122271710067477167755294213711606973568578379092145786682706693289918693702933993138187657285800680023280081617090885786124228543436396533201762745967879882410342290353706008091214539602660955644750716143856176279052203852147241997219441570588617165980939121832021511251587679531744569952524125557210130704648206005243677357542598038313113429744849931551488903658770220120195251816454436431268201339899249495019276937084757883939593850024360130527237808923210068674710310721826397323813643084035174058735196905935396877011537381630850585882395324929420307834845006154946251183976818524561676371163824222894734845678521506830039220523897634462982128531255589309468462156863553278216715975955617548955212985813728183028157093806057230981501347682316333174951249184849649508427212998834791894969689983239051674476005048739498575085604998195287314471892661175309185523600204119773141768669883403025241661273567676516082643482905938542996991297729680843486887312366353870997961504512089307478035929734698241713844456227311281669810015088278379349423217160503807039032381583174489134383081353723908259979932811821518257632276184659409959161413784489297713916382578754819921501214725771355516596014117244410384253595205638245951808241254691257068525328655194203632874726884145310091148882993567402220428869480567609973083247307027817408805446116941936043616616865663212699055797439587880056259890677309169788404703607113988481662478912128463881341218151956459903146276719450388332694132431074923125673115375120657285781188191034958775784343994967056509884035839090603288129413915317573250992018744317148402224525867094824074287033926602062830469979706783683466847254984430103328664963214373353769002177178682249691076818871728419720699962959563450873004391746660978697844156650036330379951252706604257228896535441292313798475435313852953675125667881431568524615261405764193710493238005094706909071035523457053373680980108315367775005308950906937682828536725569276964408929308745483695780960478184101735825386121936676133779039564392818952374217903775870755212649206671419060724344985583526795625303847860143794882978090858141494613044863557158601447705572997393947035956142783223061714924764156580616683242830584902600476556625915928184858555822286332653725082326722963867790053404722269741821435614199971192519895382314443328331260816279092947202586496782233306927565408372724756485992403948832659543247498230603882540822876697526138002943577180379702539307039303269858373848464736517155400667078451411098873656389792560499627120525670241179462895971308733921893503663320188684199348442679221531532885911726692757379810221594192543822318022556446474365099772286001498048570035997836130674858372576619409336039088523803269832007463353883079328633181486046761451173429825946762982256107684595721446894894520938288571827654772986133105353585163275128259311103269886360045644501890075629089399792199059864497774948992432379068642608414853873870539862958191060416592969801087894014631716221398911994218997342597560858196936352963251376907793385566424209373052358908681011015724256897434711210282462238215654188580593132721321691521835581975091227916709545448156720903828005310864519357494650997431369697175607979544466792752906239272256543745660816718334044255630402514336155947802635957455684507317054276059518662863367943091061682052501927771706579834651734346686795047389635698052345041657910350415061020915394849896787149405009065292302606164726855414133079676234576178457993402210376736232277055633836411518195165947902038091401718435200179207303526266295469925250473492424380932118219182006209098538579070551194820446357252533461662522435421217198384457823325384311114611721793772580881542266954863232955124895358091941382801703636091067209902419416538587344990543565013186863126354072018310096075709463636263406349411991148609401765774845915124671605357193047097116543507296493154955486410761627828150607503126923013134325056297167741666624615261030710658980749018270711024566772855727300868245784338470341801692523938329667866036398325575878317867188596541968629442784061321754404935514614599171133922854186610799848193462384712713584603399748848558794145692338107840551692405405480698687691115490295409793583627847895036857235376393542441914090486679910152996712232482889314367262615058408131496466254432668900035707313225396654283977535543656895741967541705755261632981968098229240074452205606235992101022834633709539817818367332625577902630947790673145382051729630405743612133182097566795431188804085693167709899126620050355564797264133828866116976756435349889106353833598243895090195688192288235875428198894455281395191950911753917903904824300203778574998182056747717945857521510017371256101638735108383790386924140545216836478151903991487020653212675205035088930367952267496858504075857091497467222388433448915110289021439808803186354452900382309954700812903239440218378872050717949000537143881954685236085170636358181846488011959883973881005776932140099013223152282746150380037464492004571515473344295321203408139647051903974102911001697226095926091113337836050534042549875690553552260869525068762943105701640135628726881201984270211507419246600813056015409357770304473685651274159916118606806241620800600142808839403769521100768939612609735869998834960770023123890646811626002896179137432619296693751218432954713968217302559948049848958235431558967390197933168259069119897514883792224159217327326948752749816621784203357034830300608999841178481153416898224126978626614193489381748794549879809192991518713812091921702260279508730609728562842466894141448594538068950216850753344466554524294291086828103633593733003815255419137023822489997851195931089966998318197321304381834577947313903765096317557247436385213409653408656717872751586929265924101049451388043811986836992856833967641394080306176597058353779435611688122058973105296461861357035949763238738786658591851658658393533789399825386927391642667055532977163829295781038015414218257204201059791675620341866217104036317935946644680415915090110342374647331722122952521308688237366749931447270293219398318191426317772354751418793745627160876957018174593757224963915046742481685870275422154019287213795011977838639089004360278297597288521255151104492936463719789507514016504651183071813065164712832405944414696806726837171246868979670712743769763288303598353996789096642338235700549299573132830204635290509188573624818665851843913091935558375043367246221085779508778147058725918713200738542957775418749494200717642773576850901672123266921219577245660772118960439860645016316496966992861374252022796564200963323839993039216604631234179843038930934631149052197080183930331568370751020817682096297621369682898338956601522899868585107524995648169676464112356509513758379311018890194915889505404783143774705638797837361972894213828226727556425125391871086196309041336595045810822647852958599761083767581663361255748720290809944760369749464257350006168712358029924903642569959911091695826587360798812885935135465573794076577592448044288310457278215287902598742827177424947916167068298731081203067718056468457032402076903410034238511827073874229321641640661434946614972051874844277657677927152543651800397208422616278315211524273475169076524709103269266119184483996875755063553511228803360408455364242914192220316837251066058936566650626017840191815105061705894049468694394958298522828790319980950795568905739695694084425141299559998583428807957491269772044159136773061969241185407525387923712290368311093274138389476368853622748714396531875855848527322447898527897700988423537274267779406363465565653148707846267452368355523777288635655220010955071780308410330532388245575681744906339005030580414374265190205447975772917762061973341181172119478021723936924628583239617817970047452319539524723407232173937668123927552459157840116233038476079413595207422926585548598294237700234277732157035819617396584040222377053101472171520650628414566064465897657043782060145494418749986999292426080070573265143692727524855647210257229944158280065670129665143768108707913564933598699509375233459808398546937482500679184940407367034741066522302813526960217913940881583095012192386734942917815136823309349775864031442060704302778860858849361012051688112369640238012733197299647806366980501049015861947580086019954211570803145223019056715272026724465268175473714660648371504488645011558835533172264819223939429617693071693378178601084677082715036947524468761611385618323645757537949272958493627502204787616922057272883044729805179976677412326158349817202121753295099301890424537715478577155247753368659843048248050024624316729482544874632058275943746996103529689371316647950760915789091487539915251590638599645720060510499193707114368328603118841826425011961108227311396633267594925999821840559979601941209251091532522121925799026197487735126456218075860174892806903399672176497865971396232229649932277803692002901916935208894715942305535585910968803197804283575852040223318053966838718664153904072097206075728349538323208170686513446900920014771427542790979226383926058509976135356439139964986507580961254897340178713641645323978716686833010472330657473368906189521592333441694382067562403260873041767478866125031021138327032740240770793770878882499888805709731041036418272401870062083878957716320220072793161955769999126973094083662108070943272019187241702196091106962012901756416703021042457483381617992029507200970548505051690640258174124024868179555993172830062571654152997498009715728205392982564221010185395667101080674818945485451800873130221536120410242762663231246161772370626886213424304654466094898048785021449274473963349635266720652936562682880563482022582737669660149479306988077158631902913647639586196162565610651467264892207400276034554228468721953166188750460027243317956910656545504538747859433158633650141465901919899737178727492356800529634200765206365657459458998788194548826664744456013159048591493262670739572511077703257136762743467593860250583924675102328165414013460453394952995460677730441735172109899984268220835194683396968546353263594061327827080547657553541661428981599813697284151404646927341018189985411947899385514573194763582522864012804772425018986588505812429564301735632534399729556640498867973182063603762431518866383968998395720548116283221610854562198296951418277275459280204044269621126296351399045083486842124876634141747704627428634554679642357150120585443729998126000009787199788450299483245168092246730172310887889709417627067621619479707509377990566649445451422784041671359216895951204203610173635000683195714934702166320838643673871961243842483042114295139823166881540478544763813539925914290562015304761261285045237013418187302270583827220128715946344758745538025677085015941922529977357371246895948023429965830664588390361702575488948264741832195313970861120404693801158612061889713114715792958049418625786570917290589589489597137428278622303743602526188689031499817008509988406108125720549892940704127902479388783375009588267754160631358396979210963135732714216593399678706465926772884989530746338833055182411448133171007476214229502379669225721428502949398945304681279613409667452149057215424962511619598851233452620828745207969794919778488596854416253075247911260711653734192229619373427603464013273957590274874260018772131530229873154879221483948339375049757879137844455896621595255078236539395233734646012283001547154230228397449399647835656411752651151093859410322279100070165672775487756936525394781397538683614054316709522814240173928414781714914119845118477237163200589252361777619382791470899297726544381471341317119304376592452027140371147335308534314547609607715626185966267634730909809646083788781764871483310343674156969309006898177197423609348572432153854805404512959861318563844288334221972467526183752976224890667032921735298545209571203160151159415681773983148055947365725775633884737346370459362688626320310827558914816547160583155951240757647727439473207011549665869814477582098101372832869661261000664987637168823837997044275353101329932550682405530733685551677516903977335412644148204555722570333953123934076968531504645929627997003276975227838496433154175664225457661157572035469156510876413755941428075790665801873776350821650754572428241184551901983339720935912174277826883294518675411751076656130225805806842978030811261974348877489234334231748196313279051556410588094789528531855093304106406183080531799910879578062199523668524850492244704996180456364356065858964920450612175373809526403442816624852864064705306232619754508763599177741277397886176070406024241467161679675410407046679314053745746378311090038435144396006428750865795107233348781864453124548978241627603309492141050494100374589026374373776645967958410871261361817205525750905621634033420658685914122972927347970887504843588116773975338641926728073053275244540046785073094776434098372105426542356973157305278491701108042721127602815981131590004037388444306036139313248224218863803534077132291429522398676670630285938165312120037141195746860566860348114981287375414609940742444886090014841559035981968577320132938161981026494384183214874138650298297963154206495844464060330852892310034853552955112829568599665504944933732400343158948887774450110946681256828518904472385854430194764235467981894417323208688599220534081374993703579649008370979804785087313331482686113190376950358644232285547839388742270171149262885756843641488187809287826813699205566440722955407217796370719169869836669420435020527331486645313699078875084637466896233194586517147954130449055776805439315427322734620544268967236581319357563322339116411708577888909952281834455520774695159004365811610937950423561702242887769604073083083717731013944973623615703419255428129606003422824085682467522843277535375261578354057185915184121438726458060687019301710238814690469089208883968890651146817248665010007178133080018239844927351645904593676809804692973359504174406924363365500711246751507482590810904606208092682541968929123444620179835218731207436992817890996385111799491999851051074704728802084556989166285633713876907504359446539187998904282791004772482553218178362641489688368674530394572515399751780025008395775778423643577587046860375305700979117837634664195159994885092295300579147606387714747157523149052221678652778491384633659449945155196771720487933744786543267821222164761905077992585591824267378803072708120738907243298432713587262901915766184217805857359730897677739056478437519788571921445146987275021511543833183734871364667969805819297361402606960807998250035635611233980064149043877129983541011238569569654759699313285202101726868684017516841456935302348464717721845022433714579510900837674298189853971835767766537573001465879522064844107694384836254006558570956077116598948139256207448220794151619477127424330431755662794786249783078339762305335362436350602363057644774248173423467901572384918245113335403349388916343971113315016978653398814484890193679004396327942753434678113892552006810558655653246372681917481505176688487016972187228317582766781833090901095149205443930780269992945496414369715559372393140822871509965012028835937517995306895839208577686004416078302445460824129548610912826096029324425865724902878188495660845980996033456784903947759695764637261174466111148703112738678042861456981364867076688523375575875150094313426821891954905810295258406874283752217155377263166595082957229006927063731736026818905278809100264204175062055640053439320183149811047778067707485351871310288389118628625177643125168646004688594217240148011936914923590250908966791793673954465272976362019867376400956213914955807198765366551796591025732057011020213235071429167622056307189797740772747523485173165344147222951781352077978760260852234734664973225460745489083470636007516880775127109465417892335105537654678260455647076271206561061027535658573063445905260598534557309160398011056598856179512965344508482701684867465562422522821309905012917446862718838855260246536361189374580226447544818708768133415527577832428439602659163328158952798917385374821425735507655063311204674589211775135409862472952093414388863789739576891535432426540322819646051393247636218478877793289920663545118889747047226081875216453673254756058768683627069600491624294447142992026310629442628242729188282282500865546972156461471464353872971269907628138405471612060395867214276475368097692769051482008148225885453593686614265041433936997969045689258287924646346376298009189057984740438998075226492970996044032640230588509434822295098510524391989956222579501129948692125009163179685579883312060430212806408007779201030210065769706480229614452409928074540321172995835437958577402859400807960000069469564781129481081659560977499452980543604226284495359612036851096250615498508447915718437249419995213658324406465951975043607951777732642106873822072210384237960556396259187481019027494509303980014401316277475628986827468307155583071054236868407217600724265044977605251123570394616432380880229784774119692989744007531714337733976771616622706278760288678808756139303210337396255934305659799258915698372345427631549706696307168702804428660018395477055429723068053974826887257733220549577758115650100256724430307062283338323721733836382896334809481915063491789647003863530078656183000916029929340033563764890506533936087548278801617668090774387369500291678875534174400468366325657877323075267180884252092888792280777845258260219897451582399014567001295764157683979878080772201787350478463995794475994848635921814490534389098290346652825502254091001242138481108531967899008195891851140668380925949347578514670159453455581917402072130155414057220110823829146634119053642108549043155194295306743263932950483456728288610126200640310940734565170623339380501742809013345049327929794983751644936399644873798549807833009528707820175058040933911629047343668924432891675407914776173029992163229448974042275976530623893426572073436217228231495979688757380507752017030958921600697938337415032264194940426724861335060342777207883427766546611968436602163207457438132574800268348419205830155973247282213142506061140443394268656552930686487787131658725629379619950024362528704093754787194310765119099539684284170948191093232762415901685963081680762736882556054315576989730408177201168064109262238248652071506239769402002850044410709543835784329057117766375400169351575059191080537225380050937157865244741739994938158313900556387928782428709447469615450209290528204864052946265356915344746011289104598306293023828311320705599075480269700804865721189110455078179469498936592263942542022889411644170277021403501874093070449924197176646792877536589071822802087121626492332140392171622425926312100310976012277096880453050799696144920355892796152926014276819739913352554851564704322557478318994891696439080821377263474098049248233391799971460731809159603360821890077270888699547127365205765761382652211501800988236394409707594301433107395143881436404150935631100177381616454786318529401781924534065639757075717394555824828195346685449933341052600719933200363783846748856943193557810682255758140955625879818936265623900928728998205072696963364675591922299423406978355175787575467324576042189937561344016239016242905146863103616233746612766148691776382801805957220264151152631131209826525462489574964560422133619498839272156602161267473974621382148082482199116031903877855507508315275158493912117103558204545774101305278812457514723743256739628585087301369132612984372025315740957321424969459876722441466434389009474519887974854008130463628507854544837964956306865963827465440673614305905046636213605363627020788949638012732657918375700869490894619478339518765492062779717227902015944349527203892928963753174613970076814037995259689124646175453498082292066498728292700588093774552620019636806488519669650200298115641205269802783248197910030880252711165246417024192430558897265242330957977364655646513757578882965762142698644300989671121207768030835010845466601099874231309219336431476970628247253072890269335443189859863866198746954854406240065698791309497151512901861902669873247521789994774858254208942227253564826780250013669546818133084690423546545154900576904522375248351165852656612887670376520157459375697715899308029050766217717323307981941577656740993674627038940699247352098885670262043141083920127664145630960926220340851568737616182244195174465326997153073016600161219538779205234419516311031333688486276657381897707186733660800894958228077289236683663415788617420673120919059827047437646201231962340837113004755952275457132181410322667017475319277240392840462750979785110475648833428780210652811102047119872610265250564419758739444744561251981718100800566912269883024589756110988976731274549798691524157662581999500398222266907882301716091060706108378695067048757972763673878031913436544900203302834116761989786168716101630836258674983456881461860844702215708129887089420138205791719539403135726431432081689283627639872799780540384224023557224788992583752726830222359596051948289228026586902078082666508617704830093523954966930590895668487040581217119130061566162361001245931488857844719176752830388310338151493961900721652936974539517519847149629086418679568048567992561624391366060327008950482714668585389245904203756503549171295214670170727204749476641143988781249751409441439917402437460759210191878079033523110880645858742743387692044952881834122690241157089908018691555451601718714833998703492648634201696841066048396396778584545229553961247259488613773647421006689235112072315884234484490764932885451707229993659324242305960807567539769040370646480732755322487838698716053354590936867894334757907717999519052971474334029839847223796111642393302589443303847885244499850099032318429581295275771187466966615295987082967946342175150228222877230860346626297745058598418737201518738297606995331789450392794998239993926900934306830358718438032345659823264234509076085180345740438626709545717856806319751838439836723549214340461179427903771272780020176515532560887135465317986983840705346339936274809268584529846770703411134348376149891042898169968567124024291782288782101123915686211698176851568304629619694346709760433824017673369808436462405870344072151296949002145377715913323955495402678332711141406141415911011298521045993232670043522821811086836881065152923962154807504341030136058652926725123170849029356653574360105064108251702353666994279656516776905966844586902165853432904854796423760041748374214625728104142156171659853929595801928844359183268680048293833083547882934162626682393715188353891731976392934328008609781214741752822781324116723616921968333971170522474629918877266471917687985885982909198275876398796981195221970644931234498512785212975885383124344926540469492817352382764849437657098487879233456901318254151889377584087801996084674834394777648683117449297023187099163427665086755364187444008393040707470665362509660775458962063592517626726605586983939908182379100516102736591021868090233594870501127928736321361710282292283692626999009802680382781329284538898406681126803414886947493105770048289610349036421785772432530240198984152602384448076521728104647618057991462496009569278602354163901036892720712995472060463281187371962942493702032095226015812172952780137280478641256595541743783032696539116415606240736576556891592633211149592100603665491379474628100504169746056979607975371722321988350108838494863564634488455277850008120937348201272549348975309684355349343025907591658963684247003550591428718226422171820509838342535198720942456190613490161535817666851811615573749513968312051954259362703511404751883297196432572012077221711284760141342197206071855841292464208990398145564597178134969117010356309767768509363958366106097724025001391572120545578085694834992727726252132272450354027040636128813513011798521478447897123201734204584255211093469944780649017332591234712492961190113104882230951425267046794901315474072045562305839502903009125710387323039058824570626480018770945139096432947910479933734704926968220565498767631359385958892672397386073790626932007882950246457235776733397974521018991219440266380409193061611185720609095038364919309918910966027303638493715773097286558437766950132562803095061311965690778257248189157011550419515492249971630164024684407268058068385635569469971487174985314635292362109686320081234730884768333442042252205990241965481463498037177831408310290799893066895999446082069198676832947403101814184109025169480309781202224762449992984910257346451409472374692177064169809610769998469288104265272515246295789737446945886291763859998574028453380200262054904772681463692757313178533145446359248185209266279874857276102714520545320008297061092653617852467138256519104061488629050596235891578281480494051838028614675057151095119064398271997069076750315169676897930632688803585339174505978866743012657663520912902307513849156281026934491693906649811092083591513250697712489960797613700543016538255712498813408950349142501470796848978483973429484995487596211823058272953820760086355907292098532758819705250243830015536353705189371608805211117691791333539500237830553244027415194535918904819796467041137537586347413607427748346259950417337982666929526829685592787427253355942462711134463753392106450671423051278855733747492693347815577669522936402793505389536157489406009299227348586518811292081552142392249531530289906902374155631542673182218626242845228215602900885923407560377661244444430667096683377859762097295649022514164832766699169297860481119563572146545967359609070947567904458917106088740924604478495683922689942250951607804280376235420995356114686227811397315151459242455493080413893437591156990758342443848786734222407602173134985669262539897710489193195406180712886252032241443730170878767269061956657064978686006076497690703239387266569303234978426196093391332849075828519784341030079655867906203073820525346648737075023626004797906851514885194360011725129694271278502978930560783576295018291847508018928032765285660211914745883084357987347429139285598464426480778041571460074372347711586009471637579719473558918770318430217630746016004685137215148031796471870396698970485914886113720028169103094493490923384518979910111161272482961721241769388317402212058654758526405580064874578555516759990589890055435423929363100283850879121000775779405664394096544377418492768854834614400060793842531650557308491308146285605616870011979056479325927304218887502926572236910232024690774423216725535896812219662867699677775789411361174405734526154886636026639847693886038570946952338747445929568689155532102186416128564044355385473338860607237098866445029008751088869528251946600614201342672615098128187742302821460542395605294510442329435155115874707321813998845678463441571098035731838406282740433567542899582946703818759594328220759469274935880896332766805142428104780305835374939172021599313360868192789293958214265467212653687704592986632353630964817227369085110446798970387366098187946872859902358159813092367337359758276180182918327957792936610765721379899901926178829001757890495730420733213179776955242907045394573296740367293876671249535062154362991494869610647804491101688211338584314302357501383158759878406530376660197370614499424448767144191983216511340914783707848701056658062504404822614342966633490954559712933889952214484661564349268689189849773468977797534720485899428829081249811326376710658315914291762062526853730908406161698560385337140323847214641097562501772039727935920916453691690731720810910621736985835425646816546245152656807976611102546909284000986932260373247187898781406933155400478483439816035353242586878867825588384513107002960600419054827652891109822213762897703577132381548534804996408572050732803394268023784045419207090675493008729565842213178519054405896247879646215907472474613003310089333019210553524237410170393056207584022445669251022170212827363751802425750954883727781959767064578141571331223782422010976590129967476956042765462980427057096151869695508849516283912635037935968937867898360150867102169159982005819684209363879860777222723593859067365001681273714027080599920796444088999804245266865428190201438017280938864821125627650147044375355689585222421062118569538192999985486934021937963150520562573234216854790285834844669168579691662332879838185933663096871341999944399891104891719779942422006571885021322374701836816832421582679269533223041841958309059289722915011530972267792841735953648084154934116837084515710932694292255125069557473000149370456590100033665014347460023514299332469470987046216177821204426062059311359754538075851033011812695982442898041720322650353000815748686220974311136406082908637973129147091791677744707544944636710931205104466670282525418803447374109684370224136738533425884046513942786641861177880948455383944718117903576122235141020325892516815458780583560234086903203935423823055347748007406660853010162564333461913128427486366260916786129082125357100033333062722693956561812287188289891767426726974046190212348052857106271689462933825757499650735892276748438637118218559556447570949099962800179802521770156879645195711096768901105700667406256237323257448371472835939034549342574158033691544129937712405200452367966512593144575625088018387181074426099582397192373360191442975281568104923900828237037030716692836110686221133023654823377141198916555050303753374602350444653370502499288081287304076117141251282842115517447858149789197407468260346295945577087301592112480255459204081666904347776771573849505176293218969773582658563511054814520659455174475818919452310312447066731463401883663281594077457495249460128845181848936147477941871629911729167810579882223482814853965457838620084002003292579575001812075505042324085177544941109773705183677127963805210619103147025161215453823845806361049442363388208879031508393360250043871017556399721816560188262319873369706839348399117022129184093383258128599266259846660442195521468994064983127116535215766098938649285697840581478511370559863009189428311855228884464231859360865770037749047844383801617678285919082224663186325730830663003634132576795037225506741907607291920175409843502260776799070608821602429867426782557673728102712664367279906500102339236517071299790694932938611070819135764145896019806903563685438761237212635481351904042851800621672935558304823165171346291576774279248477149488742262530755930799971947088044203623193109065161328222804498359835276974949114646410964067876958984756211757103352107759594475386776982833302239127866838227375822229276971724209679672909122351584999111250094024734478293135007319968875252114665771496710901217839293272711352765567676216908256379358767377668786034700153617883304390491818422232423005044901446727669856085006456696503655331481573571655112391444469679457352254068088350435080305143932623029405673838271374087122663371024933998520652477318688022845530253932102107943893345850277008223846659490274641907276177947394802493958289151308103293832135934746472320424373113293963726801357786258406903138800384363403113479930508360576760487620413973776526186610149214887917240608238576764608046795041138577514009892686419682779119730801035564564105502028716971183038138494203890591936074057464315073545187990782608722521056961458045644183961516988929256829133611217206791674831542371811564580992746315034400680412281581725342360286723185049289503213474367686272365065028708175202323994069132028106212233782565497550860865555020480240559386441885363173667036333514237075816962200937786451762344001442555815116179837110114516847041332051464095456864226612457236401501252721248805114327635840772546047478305348150885453910683962522620301829089591362154120185817861856624985180702222772269258792527609490140946865463238674731186600808743484855104043672389977553318838620430654214932060787558572355389516787848754845615541084392210059257272238253061698792446166422719708505157619376268806432193427284292420630030658535673825597220856438957810950323114230517750906491108191072583424245751216446754428658231756234567534750181823183280460030068923258015953657997647266632975492079518377980350935735256260411097002068144279014948510614867083740868829999921775454167060598171947311328477917078548040610782448974751398582850902562429002723300823229253717188405924629134084359733095563456627683223803854461817123033697820270579567087156720898537796448402866896835678986190844219229685707134328667072899245795846798916556237047499115684586161413121973907469636751414977897971849749974081456878845201183970468536550590649863183942978870429968250328293887029117162767338993035511480474780729528005845988252284616605912509174703594291112665519722980754907263297548559209252314674889831170931813213037185854418591770304629912309885398392175294970313672904742969117720449709148206716333199009672957397668733088336019521211606630169668820453689856519768633865115987995956898518209321794634833774770308443284003772210035037502854223476146381434414210094239184731202938139148323984251790473881751296394539080913405420395187988703754974385130708518870117150296565562549412894940155719622041243826380624605906128688157164970765768434698236192905393875642939470672084887889595542443685916106760040392001197351080451648754459791412429287010811474291538019804364888374029909156943578661954654746053343924922000665152092955858567043649115967610997705232930165752911041810431192217769042900154878144367388340060642774217070686657360639496678308578181492265729027359351665870125024154838383737529991964252532143929513202181938265961052243152360493286356418470295853738894479349521037558419909944643917743556045883768909328043634176954121496092819376253672096277133513376461018778098473384018032472893120426706259690252614394238928717826901005149426811045558611037622706799484073161768501137564859861155599811575885554509312204657376319662221552796454763700302891973733268889004977034735300560498099627769631021284023627779429114551956541747381982536303291336807355158028782228130278942680082027439226337307556743924585466163554595702337908724288606777546913474504321194022948264726129882434212662642607216056607124360718627729986243958065952472527807971673644544439322629185666969912574604163941192715529761763262263078946958003558061753295397227273519696843912188781017839186112405741087300010207240424984902147128128291406381513899853587871562146970233330685945510910498613261939998300686752940882730143106046798194357330545061776362859436296352291111045025512390953212487814170668966728245504598991579283930612470229965575270756519358428951392509272640247679440913854280294296125046288257252793275309132096703838752805721448551470958845529727617550913668220447341889315716856428791923108443603796094478121261054527828821895593656913964212067557343978331869232838538805263072879514139174508923158227644513699170662487120728388954111722465812420627336071643275819114901068292199718459601655004589794338364888427781942108945557733785185734951899030143452306065751307904856566880003706306595349201078771973741814139508129599375577152123572197456689167602811608893155456029082388376350859766900541824549988853417840861255675608028826907896603781451043513990244395195512727834614161459342433148469661148378083560206899446629460562159275234381888853842085020248185844766658200245281943207540234010991826918202925077287165190777710682310924111369692701578588267084403517063369513942951336733013829787666666369741916909066464180537096481060894737089257417386903839137652666741097369606631965955261559366921192175318071534998533629617638855649139927594610044198476504729743050480715518504306455756062606529083363122455512277962023692932643316764512484701183654889123217467109656353700592840492027787756784993255165225662808953160418232952387205408400915242111414455594281343959271030811440652314549134441574260809409020776248677487000260547847968013515237151926963872167027683489997165659230349046997152546997967833490559314724460901557938127563868411931498618043904253885290162278936582728049007692682265692807137516031786313597764384986304514698827243344483490261343103155763073531927881016055395743703879283541147980311918556875273031011365433576790473819344596410399237534108054164345008713785653715030851234940797381418215334028856499488942009322124211254611573790763844161115619295613125035218104957805610839926241190146818367441734224600751233655407580717495064763190827911992252099117922170111076114066736745335572466183564716138275989479046077829541491076494063435665378613304400448928267877074539804050061715469497004622999279895603717435412560662558489439782830784110644347675452323277273098684376711982147775219752837689054058860213296141895108406311563925795162059233676399021929735065828094762646329244934234033141727672714445954510499393452857599506218368499473184420018319534670352373687823471710441209323382304367110277441116266702240821877649296009569791730576439939740469691346393167318071710987475973882018263154884528346164102639054753877650405514873027214684884640523426634353872315031110370100959587788246806205882052401906657192247524248196390428788639909890618619210940480778634330055760098951769555413693232270523010574370347164786742567086511340346397979583998328625346225461211349946207425678204462059923462886677420182370795657294675581691867813826499625863452457789894632050731268759427033625442056168505903554047695157081272579854724066510652294312602538108883683323618809045520627556053527228970133847010141181570156885510708993127735706676472239411303276921446353376901032201976231860602000537076649603404895176879750086088066837808462878483341128279425434484317339182849715674324088064475098881824814581338767903581826570844858694057043453901363713787811929619894114774434057293423668154284170554802273547668333407716416242749489405174577212240341068303198983880696932443481179155399673989212039475137935466597501473456764385492664149816041126620127869429321141805774726954485252233596677543649373546673946026797692556596801537625636700243864848034274894571178660490014901739012537344079129443262947478397330932569071489397852764483779228838906821200834780084523647240437321417454928572861431880635182695897370024260164927811654597352971149497674905764460793210347581904552391389574073632453835608963019913487190914954619555658678364925068853725800628620047320717051072173562254535029373732953397854401155193461953326115591999210815048000713014502834907968115989263495031270632059589741173281989429408315732113600283331791296436177540158746930979300491879423529378133923976796967730809343469353885950046547636669401594717020927133495696495940494466313511749458731564041354523479248779445611055289115439731962111888119533840294688296840708473616880850291085122367136875623125617629981090235254877665811210358944339056785279778842635385448613186261552912331521843248860847094643943247791183737962439872075725218170420888796611141821454848843457609372390235717124727829635567817656484670834316521044419157979164512982783038287993458361084450906582647750152204346310225443752126106957701707422671918192327276568804645355657099647865781724480405097562475103009276385754188156971555012803592511080280319031616504132573404851190725136212790952389588752405624094701432640276384717288229031801515285552271509569868236089529596694201440808603004952591321999196618685593157718405646460964409983893385113294194113328464793206144994006288706898049929138590827269689682552544892029908030065709430874036463852409805094268406402130175640107676794840760116581972538280614871051625161669095708877647469710038272391884714635113782047198290205559393352435309463066749610747889987321816969238905843432767976862325427773687958366660409767048523078330989849512372133748299975266954696815293859656311286297460551290518313833569035631119596911945699623394972162472005033584893741168351773053732104430802118324522042907377171009264983006852286082606077605806165579591684143476439127930988172440115761824660577078867204237304324450779141799540007957252328282296874328588380514914511999569203101283068126691551434407568243533215019605925126315631200527256088916441788680224463719391168656313056548554073113380949317934398251097507812486621480051798920231027236090550324000995629862050034699477285452850988760020928879659840594818786668250204525324769027326639330616527663131879384692817417353359896967206692353945609119254642448839112354338673433328011457671146976609684911932229755439282126276215235495270758893279526415835171997680720945049708627553307472052569723628703937935871410933144107884987072117271802913964495795334023189664740629441809965160152508915008028746181838592391635662088678774859737859372081035451359437907028618621141843949918479907713326685690800714727208278481950512650654874373326767330653462421467725620984438647115192296142616451714139159431211299468468385779205704319743731399274375588673440952474795388233224671132273007342888328539547545751418624462791257344465910977318803886995092180031891966470258190541624207535730910996507101546071810819073145435006367015634862905673411699712374900476970140126977749223179704516838537318403677957305738124344639840902661151795634471617278489330482701859254491215452754775625051724179301953638225357373785520506130097923294027385629876257954234738760668163517116493975720815483427547577685501956713771246172680164605469305242433470985794944616619042043680707383964889194169162431492662648662860696843778914427812669870289725344097019915053368845142753189351966539833347631921822431451798446448950903338987421467232496954594631331490404280533816519141295111278765241658121291880482652120299765663945779462242941063671491888007462756836646269242236435601988389959068055698559298117546329509089318907555342828809330136132809307375620644041807799801757719295519904540200599417473921973150555305157345944083195396696483770014253701593851394379157598276104375101461578953071501463658071160326515821062766867023172363979466298737998550139148903764533889046750192005320649780439310601288339704788740069111811402781135416929332015983219351140731356170558794044532904654875153098141099880831297632490131313409758838592021200184347195888402998259766203107397026888330434207183714419400608257294920536206086137043657913393588626560556949397211762533731497097725911560404513536010840579381957197150165381511171107564590857601978928239312517238324841685919992571538378595117043161185723643655382133656506791558052287901023322629210935106016367231558839594645782781065805356497208951264380456062681631272047099856670668535438162467332393700360350424001045426453649572380648175566094213031634681492021634177218808717667246638504791072848632151577908578029196509277581358918052591781776148233747244128425904191067945657184561992023630424352952051238840915218130096482869341533933700439895464882402034181242829028034442973037899221623736240894290004538543415482057764402391132421708836282549828804348295425417121636898401084605451562214381695473367268611900219021299546676032510657597239938533803938655944134286546749706649098076704324926878947766375214494928664430043367257362054124414184380454941382643380459729693426964430572530630080621598472107597787167308204830815364535711247907956664306629001073609705886574247116415750635446286795978602455275593729125761503776237550824624343881089910924568627964876757998569639879558496625305691331996610350555611463875903737798790374553428125628245301023284530304966647329236952206161606496057562850725479900169176142341558951028517785584644738877639054827387956608751334786961622276859520638453910648002603935270015868866849188971597979092111116801657129914393318441186632352692263339210614881768609524860109131447205406155410904763642395676688496172405012119974076933232706527011556654745076355135679972652571735827964706947300085024393454826768530887258538235216201690953608830888828919760675913392779423102336113287334326878781338891282142526057498829742067495547522877459288103848988834030570898446094250902699886336002814767360290779509468797652978633452918236080936050544242419818942604711563486678190465233461566684641512024618637908584943098704534190896067053593557723525183210717934022176230608002734960379670825072035425499114233210233269636890513562185384040681432815022784405156190231293999245299345848496069275344490299178154643948210740471183812381237905566266271263290394349838753779393896859039764175555461011576017056498256674826161553193994769028640076869104581366116918590224285706436637985079978705996080124073536789598281798897816526814441349360988136851616369925325291015333604740859046891137440507469787687387042650614870631317448318398267801032310940631035586327981682416442651336224923853624342207877649883190742879963717874545685994879410941215455059997137667669986154229025596549516188618013346992577321293557866144484776743443946588364422539236954189573243345126806268703033892059823805951342397718340176625546774699125344316989818054843707920760247947687342007914876950793819963339635978738269342183258320533370105756361724782283029570903749770071717988195399359372965594284639202441696421225969206849477629622314323953874398276158152102020010073197757017828662828326879802085548687284293464884904323808385526334931904598210318931305816344762149951785170818777508259769865302486699220404072056664617464699552003281053052973223445535425821162972216670785149880814627523418448740137770917372193918279096911354045761652562809116252722424982968272663634015522783090080979174409732767931595123747857366424665211702237975970831937335458950293211293561650934729538209853261295373441162888193756455674134088782959595618800300167810157386490366505944311220640427722872555033717736472010192893450934347895218654533676577938295817377186236646372555906993781000985699626720870061103728313460461732551607406390067459021141448123148916142698832400320774451697032194434237994808460438201289206899426067025681960270942493418931616373351643924868187703053010382437585222467082892689934014822752069901582632908493476532481717130706850799168180379601553933198759011989909032947087557195324978435226017294773450550826299264316048599842200333963317187101447502930507433880357802054880561074409051397947527297944213510326379386317178264986763488805648644763336694125026188213585586811461287737615575334247135599750874689714346515163828973595930674590673762581411181354941442622443984481656300420842874432175487162950078341841825161413141335704940242396172860079427759847063628955913039433246711419462391047392164469000288912767255524577410147326778026656501374743437571980176306919570916365409196246658013100139834836210899672359939290533915506114290338519661782713153342152583360564191168832617524106054847155052856077533984057252278917522822262252670460096610916900132677288236124476748735151333679001754179287995540586841758306403828599990412110452336365301170567416582674356943332380872790131021564339870066982606043640128724067588103020030841433984560377844194590055874606449430278415587028803841390227376194392763227452401491094102647932832093743082191661023802949901479189952644644803586714974056910835585178259214683965547453533283172433701685638323317341976670725915101626039422652578519473325710957330297719281900842058814133379813350914179608137923759521012637578962321700398443547249869378858698797529863849294855318622284328228109071155641181479105401183446845987046776936148527409841587827662309015993516539139229433559606318948912820484110380527727930084580249536457753235735567999443223530038119260136272194979156921281941487780219867448614047949732886076196861422992726275572897173874036554273840427792778168445030755983424654569706642390220067876373701256651539934947515184118922506491630453656916464173752619911099215063491744216412800415571082083228967045325980500122965761390285805315167160650980801171274581369823889941969437631418845734425674934553160196238794882909732437903314303579278960091158372218562109120406727545348136064992404205340375675691046194562233533553667641672681350795098627359541291843475091793528035947998057793895232636334676476890887284833282546989877996699109957254297444837452645489495808772862203935739861893647261464116939692089959350809732092339743561307380784160278037936881194204308547165207346310598885890893765465065641894238418557066249642673862549515379159267825237991391946765226208444380779113189292169037051335985527269451591957358789732408728463614717755246376406032072897518003022911600157054665318560131702837701518713800492433814268015597344337951303005346187672016948500320714142836172001607737437994176909428161954378259914862800028776911555366401802651786977265327988971518684739153286841640739136169383607704722645952201715745649761273668771451106847372824771897441504702435246560539490587088501335411408990947942452454087204271323707858357509046085619373105375438779834911662136501032584123993827231833313147817071502377689657672014910440189978359701318120851851396494178645291621693087536605676497819251534018269625816531595712637388580871587930509126293479017102964415869559915555034898028171542972113283770653738346958148237567754609081167554364975476925472521550645061076021178044874285550184667979539860347651735101109138900202436298790386726900126241696223416358204672417735632457247359667813095628928290596411109660486225204774049290632590479953982044222226255517766142216831986013353840864333353710085393421489570498498835426236089231108227566529313774236007545188339014098809432405700756391838297109994469056458286242883325324640618689287821511418128677571130619618540042148328192010365206938599973109156379814569187083346817607719114041805037764176631691610723128859334483138062470011704949208039133736971831942924346674356330579720327581314750694124154180028293441526364196880867345882766188745001363820886071757278426519177964616732144447315845897308328948200303374837194896016511682777578122031558758473050652074606163520870616979144767138774478344872105208114335687330799224743026124130865824533545024501951144568644253271318254489208054026550930466631854291930678545592730512457882395005039608528666580011712575393102770653161648754455595159053820737356990894428957954326355172735089727422326146110685425121822178940712204100656566402082470020176661217496325903279224352100166772537472929334399665165345189006030779910927777705005209020187771067937586939945899886453427608081197623767302740082662156338395785829851688671861401392992412024994135834981126783098561256677224671854750581861038936735927877765920381919756647904124341098663562294416450698055157785171128745970694380216183051369377014415707770643684968165982898999017884923954214941967206227282535761407619644455724325904641253052326669887535803028977692952368880904822648454226309781400100478666951035028307171688580511381338794060208980187121304022782697665550508755387630013767803975227145560107863808109472251971587384496207801202606452231573390058317109641053473684877327210486968098386801644822137821096029827575872025356465616661474454156043459568010476970267482450487772130772434710278545935537053332018471262684052528489475312350068203072604083774339657463211684478639974912074940964353507229223248432475996828186506088857829092359821873380395282456798129506120981395563127854469505333982077347964755069984089733117781517304731536840101814083512025661572778294899709921696625509478606879636258902699812555656187621635205427478384712696764694066318965076174093803199526641880869496376663550070398944639149339106212174900634305267935203133951128716815880546549607415236516978360490343209821984881044050157020068462106005839176575537642944822848732001246523215288088829866005660458710407464610499378412587936159904562438667962885312472272704346691774464568673898398794330967821989944157414393902378509993957719662365168947463618554540734759050332221978764681048098688020398660364468816470509407777763353880975143972198367682701406050036548515397480849375236525656344491093149574883736502942650849130005074684448391644592067791824343878432731705059568790807983082853912040423467015862832425625368552684258158980236379213987521376100060603240345889261407729741855033866391585625223378408097801146417902022092387759044024713341002963363398272056317817929200978425624645531258948069235446984011862374651919425212734594915591441700938558059491861707274145257108764626989484681696306499608856128280786890509474187335895160036288031692618190130211903527509691439717056043447684437721752246309560970010075199959244865448137765911207765350887642934524255943104611453777095036591055097502346915904816288919884575582025008692232494380406347130188242270662225920757003977735424916120306057482064336792296834739973753577231790480547078281860987793866132022306623073930077192008275861149911139859337290583388557849960219134456718056954367032202211317611712227222931439552140619989971828451364719059140203262148044222602744115248693867134442684124385984725188907998142703983738533416601219541395150894512078383182267112792234595271024115378911863668103823815771190266043532220033314431494595894575062911540502821342190014728035666672184138572405222675874295663738545298185182312467201253997822489589895077720528681202704045997687419031092916057090329996888425134355848728791785337650604826542531775930929890378954127359323334066819725437686202127490835468518087632711457953751019394751063989564639128820791532363308152990686039041856297293971836881263571609961268252552228781058299234173947967250175303529911707689420023878461193261743250409775509361552481728700715183995690625708191939623889167097514743364962756847529281299330166176673583020939624136268387457063937303842757894342096689422020002890648879316143346121051832239931143931966050676999310340974170187994040711655918326412689749045941279116362609883184233127665498485746502238826769205471221138142507247840645356467933640947240051874193639526648705040360419231904041984772720219932772938917434303868604452888905755518010921777804063510753063510711223341698980764673793937614761018135299981063562397903922044059053690462730948965852297028208735578900746717000295546645383485786305750399021495812676435680085475549208549694734224006433019971990032817726510754874217507064402854708577549545868610709314197193396514603076427889536874932441447248285706294208033690312781196524749090212455768582280137861528534383106101356271261444523593549858108813793062969058400376513226463853839200819991645482572256413576108827192242860037057909719644914601887336746788053188099973942746739113363649225449903809298815165628329832717426733443359944913003643804382532671040744280068497005312096310607124644652976710428060726219040600180749065699958432434909187994918555393174559926648137694274895871001752411003405543898446882324098593117339684924971701634410766698358051129085161939013683022669677810400266181449841490458795883051154155588900758021455575826255615965153249269784181939879999552635912525489978148473093445901535830799049502801648868534377883398533859119042750375452075834197614780063498348168523878190649876299305730235417346753597149751196872561213022891716654155332756814713694657272441449978772383587061400242980393988004600965597840629155477348767136668687398198197071779406457619626369071590946005675375544443394787329613393240284419620414716591340732101943258781652950013878678735460910027472972696586674356948385956760469058099646318761590142821078152003911067610579101178178014653662105737847026092724967154285826676685222596524441116274911539748152626785196985350068964609598695956620297061898651270616866015701384198084421945776507271942671518946491740833433867872125444946816135038004565843043487394732945020006213283209465685219969715665629575157297426928975004617598251125757280783847472929192221647594807598995659101716056813199013960424825437867369503102576130108377980798210101960046397453961913522579683227687575216860013231484116992217918549404106128121889385208006959013589324298467049006135354454755873747091772277508011788746680690160247809211446955933601593497607472406013800568506156396218590366788816638651888918050012627180477470619769470362206918510153406690225339481874015250829657207440325950806502589088069865370060429857389101837556415694095333653032689606678805361958869247699031296076454467451658692854273955242951963157690872568487650402382168479030810665382900627804711740222603826092241886959212126991165145730928369255864577305947231742175280498837655671529785008037061196969880737643429503597274553878649259540013284467892978585793591630558129769962032900905559354665511960269056956574300645450989475844378647419079166434708194845756605023493514680530629713535568623381457146585230907314012967094568852689051158679569874260116732476826747181595726753079718738078434031599539010597091909065990227857718775805588453768427009507160957793387418461384455955189233706784498458812570241780016749627829300943003181971436889395634590755203041420610169502355729716019664883377190789282251371117586186475721033365244255476901170685251671212989231811711290410907944500603111221462385862076910443969079349300805706389474507419708970556280009039258883986302324435398231017782802126611494797214110398869833021280708115716470344092219100518613826854389600881549577079598241674548740067876384298985311267233090815993612912149986099492510083551002589496975152233535807296332255214322873021845002705026250602546838131012374667419024551825283788151917836712787469083691150178432716448439257135303077095091854224899651163499752966438301284002725652281411804395207226536539669403761853546728835039103609543302093076331574219468234851970611856505294289505231943602647245846370416242703609133572478896091929412477527608733430548947463755779390748921403997529072047930271279822139720612744208552238927751029960076260404997628300745133045061842291363087327110653691608640143629757175687539434917937123689886255780506771461888306787545264264638959522635183877720400451619993130261946665678575607008326706367481342108038243169605801311757368979306448500882731696404531458636853531674195493371264860384483860281568051022871817923896376481069871326163422737029747040052768050763128771310874844064987239884538736967571696311337798556983959874324443924485298192255073553638006744469305062706740032598032563350850813505312723750848673801427243369667917847094544598758138807170267008490154732537471209948249795264029058047218425551573806948585531682656763549783173354596423888306537031036529401794152358776116823782155579944248545878753237666723136936221460394038296561513612581183560312276262936927750672473578755575811995798788639991146766861658061732331132673583369859242302037910596653421280964112918772134135649725050957444462772230807759330711433655812613938232055362871754545826251964175593392393739680839356861772693685152480766063701704420102901638053437612410199324375141175850961295237243069235349701789192508733330613208767825087037646030376414875854658454933014473576168056316277869043294757628254748495335700149003489565049943641895261890270329605505209409305080244566835371391980027522619386649538256787936095189068690968811382350791233981304440218063955061870790615210704911351081376057868719418390266395114414793212957877060820387030912179410770165152403684859333721065922179676666866791646781084268304909428766407566010639084749140530185137032274412719015739897955306431817024204955903101898212296482758049202381759436814934181832494389152945957085148451727031316900334309527692543112296757688763351769471333528887069384333926749604920955163111112576854825071857897900631419714254872761604577340788584967085352154542297645134034019464598920076521947909287472347414438831921044642825255350587114907641379949421718252384268479262559270648808483014145750054621696860398094550792493203086928179183335934206631625525134922689498950100897178986759917731274685774084579939432985091903264813057629749126797408077768211436591257655641026853135141572479600318804119763740820551489177472791850828108167289967132783664991195772942748026471743856146418105015740089236631821136965773374963436890605820906502979677703914247055321783086066774464453790138916144698633702539429031285989411126961751517397859805398562307009013818179507994132869995354289907303124215469126877363919623139848726329361248874848753614374893489591802505073159508489492575436017570572590444492860612957031298048326342686399821711271501999189579822136121655092270893567944408527126806597482541479070753336158604246452503552380619537562577018317103537199971194827264503280982027534470064027045149320495929281667354589802076236526318443951197025749439591350566365136221212485809046068553909725108890487156167829723939582374946583130652519322943628403761811412372347345754325757516549870435528487585048253946919615263998331756912711420621661518326503881028813221496154456117227427641758829106431290241541293133521980743456843646704409253023566886535687211881485303423550958940416104022233594925624438256887405022619403316283297495639906155700237142817188415839772620996311594067491006805755552875609221549104015775288786972110232684830584444467612504041217648649857130500775571988262390708497804224499755430754320694224932824494635601826595344961223656239311346220361990480574467973304644192442684794365929041700708500906376378120187655518651375684890257348275674430783015945116302560800745908469503640472478154387959615288665180987068682868505333289166507796078639787607149434540425622404076517613425049876367184739066153747935127619868630751958122796570159959337778506294354876342988474868775909823067382187629456942023936164628151275115115945378399230763407759540765299707762851552208161457766083720461798909461601468988289590266593303842648694929876706535434525363020276912809444679799317371010162946526417233242760688375625544302555526958776438652693018758863121537886962456262441824136759855239520885636197908942522363177416091583241365616677274625403788424993703428575478166581783911820046518337290864450179056919938213013473212485171917292116723475827521260075679662260387878770435110805438202218084207722766696747065011243136975530267291200077663237394741437941330359263783871013286532855308153709090331127345220286007606762534030771718999860282532177065358276215640791398011986785044283564055807552197743697018767059307334108550525873375803402721974064826399799050659695764673979455077794093846564699358857357080860480681794152202717636088544367123959251926916894751484668948895775217340355863168162797078726184576138284663880983712149122255021670999390986143825606399118688375026330848041817325248540728637714816005929237698112416075497208377345669221617579286250759929637645883000528686261134721964694677049502268632452512421866836431692955980269491424255957421725916598027491418088369793340275893830090290311105549692498466901248655280419041105443834585234214966008079199055700122549999217524791609928918473223433512147964458168874793897310692102473672537600307592075898562372232046852954517800405394387952789585496555488994379767421523282392579384911512369204425628148993640193019353863818774883144829882586690046205243907324882106464457291168807562544523739008272596226996379009147872982146077291321636946587852918300206825144361544071591158782438463080388056444285756855693256948282103238648666956097845343823811285439262797267887657501062658950012682652975163645948473894965757821511402851765301225173092885409421843142126112703405611667856382090763961902674791410339321522132499542360843491451162971467834638877858969903750071752768966963193988110420029280913115273161480198418005345066686898815357154108216097756667560878027333239576598824912048378333260804408652094107805556298631586796224361171819115986944815878739792862313853174531318117622584472119837670136641709338355686621503590667202314239368884763432766521866771854575529305033825167724760090946288114968045506283422149640807348641596768219746423234989186817574832428657566886306140145618236341180878965551258034886392065766277396587649364569367229135711894133845812272059513537659427770882548450590480950095243278946884246907343344525831316471880765003231148003121471078989648033685059624353948090436658824669872624249029579683018348602996883852304643682433976654930620556423697427055775393605892073461476774471822460592769320279017768803161527623054797505513493828030607213829159081888961810315999130273742322108053417749961698066602019048924747709021057378863126220196001758194638668467412232559184467389162889412801406329725112908912761090281323538170565162400152094960657614163377860644369104309076263894170890735951246822083128076034473705141146206606886304181657164245761727583638097939402926720227823974245685597630578859736935682054205038469442228596604951555510161475481893650161741088182350274469259819861802621504856283182112072067197294291172710071808338437892512586218226178389567449943967284319803547111704288358132138408462023223527216903670454202793411038482695647144882669888950030169097574513253161496939049380131055231012012126943284455197499490218381122193493935308989243681936884215016399978169745227785685067281857074375359111622327437079767472482003994142135622675686693934274587150473910218748139225933301993926962755652027912687801272219421895941762304666398932479858397776099890084446728762853011758337448448769930925207227464895856381905628078472283208615244656571156009568714345148602779763766124836339495931510794689291258682125151268072555916173115529506408992564635022007865047675172114593725835238753593003494559442231821103804247803408520391692758890979576610868020263377676245059391329790668634366864136585368218778668884107937011899279281368491956744300416672206001909012113895537376940014244470725112679945203749783629830009314449894796159788520999305352625002675520992135266001283252365288429428520856501121274756593174041477395400402253678919423215257308616993834273633613795814595552022072012568664785402857042073356037713217281140802782519054492008596118451804224249201747884148999488483994616582089316214821352591508751520833226778978124205627424137679614129309030908328673728460145949931212021182343556143304396613475143613905298115260058939822712899742593330952031131564821683312458800923382396159660269759660318722602248644557592472827270210325856423066179605075121534016536626814184901282581224051431600721483683469235502306190050372128306684941604652847248820594822710993801402729235753801981176966407416457576352397368620340021548621498306582653989599312332184336442523910186751856303443876222944691630326772250900466064292418052074438810056366233980485258932986346988928735249253578374295247250872643151550131524405377825678372937724006087860212270961335889685948120873931184849625583591474089033004974920014633547305455790443561935669638992255941359295846713796938270795882590812819765723931970336606262135510724662819062995176752649402291439210897795930882583826900259732550817220181534363110387306472359909965361761239832211979319543480761223728960352972209904323789204483712437135364428604671147760651412792180651627506625979713032528948593426523482085141541789737193641812950131025286340089832925510481056963660214969602059234274624108658735499543082717939631637442239104313543632891627292244834580189440828176569011001738032225637561873874837854587933483810600318012830387559725196450658970188198814713085852014520894789845358632023983458784312813527585546603917360783468217849341913983849008946263538465490128271363806356750952918140147260981749438464904827138199906557158547454045183462381725718317415646724559889304835959815902708753870801785339151434769121346071785026422295345697874736326812794772069496285310797493566794400579182000306109954549083692705809668079907018236412774276923290270605072949250662858416266810733925662903195174002810791319140063453402551046878621638805861950471023372158012659655581373321847916191763202874532670467859318608759204316718979380831940154667320952743747199869217737777997654942551685964768045739630280736166922886642607365887619390590665573730172189155191557233046268214284409387597809776409941341271696702564451814624301241669132631600789598164670045939063402886817970843743836024796274995393548365231893488084050148386627854232137762899735341273993891410656953364172482079922576836979367110349590487314666606326345291344884996069718315003826909508792130373707121475546485746629539850009633986575030619409152160977200102668964377958051873333268417376971640661271014103703085746231296756651354799730104973989789956458184934417493633862716856175232140177031619375595301477603180956729996777928298379813149884692127091270137205479989052656981531604326846217021504540494959162366977489296050741179911889487127025287431149785400223471331556132260507260124587700784783599310663635735724905466883365337498864507050689764401477347177246528034977622015206818713784273575177445476023896262240364537818773891953015982547891050361087019552862456779247383724955413295315565021451100528807754769972694032241127205682818427828270693398805705111253628432955360914586885972279526990751097565415434196609477769546249941372450815945371156147206247794662623399106283755691023049902955343100268668320813054449748441103709753835640898161777816104107499589969115349508833323274932089473989782093983419328011241483181821375831777326089864451368499666403634627567226211262964093017283702192861431178370197931206973172138694715656877336986898241238316063103918009573596608249447705994460014110210483894393108968080778744089977066681350670760531703755763773729771925954246219608326394642341120117998641293575317280630669300411751304400443540355077068117467215117851524092431223321438109513691792752451635486198315223493735472889354436357584154671833423229151024012848035399614144306645904723502637169462133124575734636093697560976263792973745293657001367164754449880294191478538134502994778303486747208238173773036629336420427206342955533955926505506842743477152602997964461787750417799090409683586435455287436694996888545323634936803194105119584640451750645264724423165174996790676432290114958868381411684844078584000091843670178661990655234202075607645546750621066102680382327280009158709576449581901684541906125088041982267005960263168430104425383799538454399365542569041525228463727253187042700901933378148800142987689167882239247804727730918008801076212802949335879476593739048260562753142600317647917213565219015353750299332952030424231055608406177102997941455581663473556633946375849448824061353354609234659715131656620938171271925694039661526997527934692330503341648433704776826685542936743902638666657626984226028171337259844775951289421077585101255472858772173774454396799546451980091678898314161258550790897880091340323466551627512792359718656410094290052107138334262734002811877129568254282744226607432089185978898851678310035028850281345250472399503838619500779098870007757199798444329362321096097336219916089104868302323572481189896762598672655651511019540862133653928299217437474541898133471701174777140244119239572802976197537657813447391161940095901556054500716721820293761047748370618369134383228142804906545595962325790621710922435428369922734967846946642428384751461739713038075697562400170774846174845616344082694436491483590954879228970852760736256977714686575317774200418568150970645070032030726668735637278131882865319276512170629980588102261264463272643988313615185936565687566996387209291954954981061961303065995956055891373134003702962954137970345637205954740862949563856355849044099280277996973647230233175323085274534264269424689643119247935245753891642037094427110745189940668673701357296088113137787188738662037974667896808140038570908926838238920916060570886096857694955260664457923806122577677170224293999570875582836033386263967038879520850068918097438460014588409840775318658547061611812382885723419986571747461743747180671822566370169348699015681290444039003448741772515881877325345390657082925140055160390534313389270553380150966848048282351548421780639122217606913920610624509142930812683649751851741979232792892392202419437450577089913929425011060696121505502466813226015565906303089572092566519787930159697587568555333297311106426954506934714916614136716700019730550443828877023265972600629015554994038733943547521030468448864536399008036835899238456639583875704953888440022080564467377743893280561787428838370852295308661510539912930103193383903920113565821721588508348419491571560022718762914427165302805168660880661983551730522821154709424974505487213914624996444891431807068236868191412042087918517237816846278513171710834335827446007712289571376589400493300402568784278655263417243444615577198127048212206436018247322846565183942239039619019114361575103582658880733395105506923791965242153824004735048389046126254869413794618127924507591060076873390722883457085280792033340694504450888445301708447983285607870935975322811375983866742230601318509326379467653092097061537630682190027053640925776408495384254258886650588344412029505688640088722659166601203663006967611411889621629742832615678403005058473618988189842438149227815086397102870744497032049629123674107726363876323990521269810577227334996978637699006358059616597539830965614595502391640251602286727215236627571928484511838842691997697770189617219046355907300529888487984733953955053023912012710631119681647188689908962176212925189648670431949870092948948581295194010951771855009515287469989202812545926185817298691278755899579482234137277598169587726701862000459064398499264154735442434725955726775679191129156456409766486769819975168768163289605441981546302975754483278334386797850784706433680179907219750008124288954780618166781689530795128364423903498190650031153021829090132161177016072838565958348929026772151994850096265176141855103149569414938841170676022635177365489605822522740064646441631104199975017938767040291745060663524076385375193493061078682873490330080939750132583017109247483834872692554172540340857368221683358762428361675810093151095461250006716075063226347039143159639612013660815304084210674406634881978517943430257302818195951496923316053615431136602854240990783785688009148876314312486879144172731055619872477446784758455447417581906660557957452699946689833697324434559229982304514934916210304300624490672564678061532830185573722688118278289281905563044600032887360170967209174693971199121781035109018607772350595183770084852102169385777270311835764969838615343900083940245347358517051245811422071317106171764335030153760727960479863316714168094344189560448672629855518675794369971785329019725315894702379448329260444929707226575797639005646996026345106081869117484086535849620617690895502263941371629971189385726993099945351242294435308338118859785881858355228716367742670566070253030246712886088808522532824667368260834861251111848558968352253000281523692625252048715666177848491945911547017245564778643960463955382266315514507153995097736331674792601294717098890065904645182216280659450812125001896595380046731522843757652304420554866806624089324206468275166454147909777967413364929800899650792515150007370633125178011722139697099455696306613354902054942837130382015537693618204703975527587530552627800573132772806698894597551441019940761453812294231224166384881176778829974950881450361679415559736481034216885962855415928581793200928510348538530051438928920568243677012452689071520917375785255735208876591606589116776652119403089807085661867825800319370407913934274906904635349837286186647854016981046309220376735413590678004235287033698419674061667568491715187370691080815537124230604324501957314751126643473902742184560675444539102771693145256379060400332602922244562048186870332488095715339696340058422510804519408171029889659035843265330430728840544973963907206518346691078251060624658178570643998643937295144490526150835892321174670940914389059874448449140905411894815613438862694959093655823152494356098954415675325718248204659523384887938908000439656691028965525144779544497872285580747124524924426492176870181941417833604146719067652314531927375045244781332537851685464465874268093975819858171579643054971516042930748619703391418065125995834048087401279335141465294635217972114689469311038259230494726462355106204413378475198905805827998184300339396885177982651794911889591423050301765312419503470829244707428506173161979338671084372028728807841046582090713584096868295992381031065612025348686681885753159891588456401144511579341061053553483323410673994234967315221672941118209344743883070248188426205518095113916564230592815676264744046366004685248926098693061693243849552143334233118162780020650538836405066301372135879199896291071113604171969876963297044731769399965140706344963271527223117390291027413259851467885797417842801562136976064482156346620324974469590937396256775352928117327438112069017079937172302206439909014774711371454925784838362076192710656978807181393861129222358368516131151024219547638624007714392240365510733204875522645446588958112156606377547553406570574706279279002004563606703167057123820625146767068263024862289246467895982508533192158516298423017563088020439152109141336798041331818891974304897026868970700102685970602503491849271368175006741202090648929455884492624603235059741028851580143497415613715881640818811778529108284817515358139311527176842415175804994795420462532575566798537623249817131763642950446514393877909414556452746398862622838670049108071419517998604165064335891389581775167400619923827214544266440880381656579055851300528321974968719903031960871071796602405420140006883338932984148436676091897429763559279574765961129574656293480718207843718481316845837857613055554211761139892181025623729799583665615751709172400213307755359096838363364969413668934627547469766734529742816906464748764312760795795919198382375756037093088290682372747629678866997892214048746538323171183204602867903971556408340349691981682628934201529854442269150511848389613617290214308149666123140231759742524723783939131358228894261399540904094230500606167560537728791365415133138341559151375785271767335885675834700665071154656819014825710794203197007551355326450164444501582173877126035235363906000881139994943387762385517803067047857530175194774544775710124435254590750251715327161877541898055789667862574602095555855887335051935514324735167415101175245601843282790108257702569988294780063077792947764509385988767929031911483184602061589415651342698742338785341193734204382806433980689426547047295655320102925672229661163517237064858339301906975471929725863707114250154727217511139466237901443094642025304361427046547274136001508547264900943081011942022447532166800888334548137983388470688022519868398371497266352516412770404067603100109860581346104333388598603256851526245451306290082398466825911043987622254658738471512774158509587224887508826398733616470714000863329657758719011463294235351923172736926397933738791932021637406699808433451078875538886354506388577579796256061442998754699632994877579917245068576936941245154546265308409994273653604609972160009898650890748206679012357037062576661212974703160975192240662208174891263325927029001101980939715435553740096589053191453834461511496489537647785331220226327886861752270962564263650872671614466564303608145674751202416450544882570368488640192986732977414871546364914868714940149313657141869435413989042103223543020824853387689340641267323168288937217577272168314481079173125860098504307634436348011634164488888207531018447939090106197085553761364696071702275162381526024850963527722984385377314942719962903403925263359252134870649219677164657230104455334106453561817252513230418116929789799141955996675026129186579503760897012530410995592569153977148451925705973360047939716289663967060738779705546737938687678283621913592893769538879008392995715200294151538498173433558573520122664013902704427793042121839031739438527225796679475431994022809854848850175150693668366194103017185236226801206122799798590876591545877260647786356333269596581308825705006954309017525896327521350382491698321613413791065192591518434770148201519887789643931257224744786164802454645369937442491000696311406166258643391236855513940081102934312875362557407433923285115371845459992165606597356241421026183651071670767908484900643229805585150166498228698621149133893169531525627920570886490064951992122645059044111840125856992886670088859149927648744132957422620651182991142290498035385980066543798078531549968096243792789923065334787975679132044896065064373991831334140451942648106702227890653583237587154376931236503053101163024321322506814151437591370553011971033352659775617938629257193802947763715567880740596987733765837635941935784067158872063040470325916131220251449673428227828761589922863184811483052018700190060272755264501166475092171423678724042308589568609358361335051741397057094427012172458162447718899428437422657821557317376286375981223637694272171823340561574482687677476341897659935687643634977484623428801175137436444664960484710871504432913144699781265657458824473829967800077494654510060388084869913054969392913315726784041858370990245108337149857030223874918135297841950477244966640534102184986546661587084317053612228132422751972424739329337116577446548734207762296571867259789948173772259936511587585675462838546697929398166334967652698189539524924545764131143347091792227321882218734349258532424287793794349139471220009783876594953148061979713649311579771573072159261104956467211705653117336766507861736474440570763763922171973155141661660937573255805382457215500100608835289409398651641464170601599892220375156612389370318130880458693947791512479901215472532594059858541107085143128828724300672970849999634058450497326383192112663854426677776904405543659295435027827268889708694005579617290642565596525271987440279486472989916919634489844240680959777227011232041016455374750141943397896655264789948323597535415517000823110490123976945196754398998259571195686636556219567798703930076349446268894079809792180178651303472058946835423657891048371029839217864967695341495962523603322720560621446190401140378877767270180804177570058872626015224727329401574588739679295460991189833159523054492011692701717709792451940177536014581275064996938004083560990135107772432430096765047402744642656148378373151554467023958399368678730359396848396045534607800566492654326854686865532684629107090381980502598493175887013484683231521809987553497903441512257688312001593164910669039109755632891147934635676874952967321288069650044095233832742739790860386376864736577265908812721550119156812541069124922968150795334870791606008333747427639845801257118198644144458801353997074091854205537873955065360236671128032537390702523331562712810096084494470974221102479865114891465683027082235346510475810996631667463748771809829410606273368314195197110961754234730399097044957757001152506163512010887890486787029548847335168026409820438677615335000678337191355554880748615611091922874779750607206538204236776077389673870762201503969030016949319977944901805357985605779910135297453079361974785272023546429090111364251503098888532621136419405638709312087701195802156868418421621122423357031731070531210870868446563144380354635129656123982654667747928025873693645506211829774364945134793286367240833479314420270961415584392409988612989515705646083118854118054027780559194011823945919410472039004114988971671102641265342569861477590911774295253494514181018721455916636577754085789373566948718872292929702096078725937322201356810710804152758924290647030481030398621002738110215746363634478354643159000965364973237829026122258355939893723921531695876045408827784796214431544237275230676529825804998770003951958364881576393219806650969230533241211582330527891075154262309632976622955937387423278381384405141738784774012362441440102840101785725467728816203952306107160047287230592961946338536610952039114569851148491481442364172480647298276254769923960940091916129536220054485630697585801590846458071306545964896808318604598790549119162089082899073982333403544300564344241304198713235322461864108320458705464106586328007535843994073029833236610807466900165090763043467236717651550902481502579319553526787769371206693834137000786017607087356610342474206463157531886335645550594896659714442999865050037747197304543993015194430534336320806649728642512973538393023790282980434943970998061391337894950685470953948326775146462925810910470459075054973669099855953707371600873050065589563399260915053629707796117443988774136603818144675490979313568393572379283831050211183626511077937052252094089498329208853112980479896289934699575548515036399897432594095515558213071404698857010119253157624223328804049974448816030136041295957370074751234746864874563965051371262475260356611227608420502996675159477484010894362953703721351493219579864058326474499868138057333072822108466537348765831897454549378854246013327259681190440353660044871691816824223062715380533862378519013071628834382192656957755975610006072820933145927317359493386742767360048498998230591328694475294935290355446132312849311123371609962373746321207390386055220794653528738759320701499614739281902370771082549822788216976359755181730406143057248533674011748323966200608562280201995761869237139528750309229492661646354648291126468821638160313231173789147794067957498189197503186831033217646401552765212990499000159491954541366426127138917745282026178280625566573940157002363162717126096188298230337652447938695846590616035505214868418154756348904951287311598936224754833171160144194555941664334414368178604689635247806044488524108282713131529246892450421474366602288035398443857686803350882734348887994911667867508801288014827877163188797986592992937530583900204590451645079036282734272687671789469885939279600087781634267189452561214286481095632496206635994636736436912547068424341676984259982768208634013927032351907388909170634853170672520872195255234402125102831962745989130413700533819291963774698679981972962196343902624016171489872646328269210739051550773405565277627661801646199024615900296522124732041705034213212576296649065027317206576716625424191800955423302784556097970829500970547313359781500524181473130540907840524851264685636918637528263776458774987391430472358827457950787261944913935623939949994807413342119332256115226255239998712474714076206005943217882325591391773924104907790416613702464256189601451110709838935046780437861823132008497939916159433303118342718567362329479991049504401331690864793121396561051925822262308731063692159010923261805197186672960202280458733810709147460311685269095882775202010770534991171289384380008043470934380371223114809945616025812250662389121850637680330546295732023533467120469140014316812852274919082710890424122441532476344357189132715000696498978221004005539730403938425617100214848440053882291405165338002410478702739002875198138784716080910992688861806992320731829149924329301809504944662261730743528557146875317132117460557188856973922768107750852623493795883393011516824037073494829574917005344769993265731185731104228949416699659249299515444932963124095840015455558182933353172178046457560235270842618896369818966750963328146549500075035776466986402454888933942884845688444510267801582894119140950180222106351374906764144505550818124079730373129753055007583752771995063134949916782542679604726431565926934588374088774294375570229744191677917597764030741976914144151783124450723042709775664090864669296195411293087898853574560436760620492758858605762288379936631638979470618663959746040995699347344791708021857774058395011343426261198481298718651486354234876649386229432078318743917790527775333286735590418897041535987826284948991280516706543548341439653575736070953983897590938272399110657749652829494536317212929616665260975604264599504558652985119284112237596954958348627984221442007248309630799865661676386411439599012700285962552288452267394983171047298646927992206601396412527058291099820227228479347632930806945141668884916495922314521010240523977628978519255904433304798526930899286267787472504191403723155087743342275319219972317126257162784440097026651207446485781850562385677803697319824102266233734843757763866799688145519402649946717158657956544560221073799931380376263451063004965478467322116716531328885084897547715536679026328868539136485637688728060420781192213217659954363173355597819488054750047892103552220599273894910578989980882924209356851521166195633817573737362180828972633321287305826285108415586187206899756052555719436534197903983056544070451934181901203562544475744397854468718372868728856916995400847747131019754404074970531295921866620547208361845242182894061506933950511504733427423446409009055053748022967628219501278572755994230286098950226828448597813242742112555389827984035248268704497648617477213291493774421554064274311453793783904052302630121161787570315519982107746056878078586831884394886601681858064216747829382984303032609732717575206579539205510316808921424964490963605632591384633187777867206758251448089176826284303743999873865141300538216900350049338712230491532085818754434250685423730353038798752131308487935351084945054905790163184203137351697720876178760768422981036837429352637271154109097303908191575933189317539389172067645096788691122535524036269078210226748022623173973851547591006520243533635630736773771019678052588292449123980214954631714228375281130268187877765079314280141774553601405225659213024799966613132111554502278667171043565597178120851998565560830783840379608548290581583009948974036305098407304342894394244114896430434775747838959116726019810288854947559676507646583765832709783388412120439806797873088918946432955688486039899789868708374878642480143314121187229462239029577012845978148218290208919410346050551831114271444386946047908365595751501226112743362808352960835438871273222873570680399988522629537576812028082162484838064806677508143883162247183100984801056931729778130224349133749805599444088800339655226658059528980239989482357985845842356606707463835130567365579304448574116684293474054487862029773332572077376350693646403814159084402386142331212106404816517711089063530171523984150503305908794273894654484226377287658753379045462785869796221924516140092499635016110113352700663335070410391662620134012434183856225459364113060733186155409631061744780013252612488382132013035028826266366506469779096649363706035547500954785797883037894863407659271246208131002493356333395509518125296868017498919939147911967280720819459256936428434210039110176883743151360234458609475359767881336187564371333012403005192563288055798738723451532677089818274872186258716369183731970587313601574980601482400685325086494922767361120747804091983366486608681034156614710307776551923328282738571688637997291871115244238456844701779724915893148254051812385718632810417139862280553204067822525407762051534986927033776123169936931430958417528047459226525184977323994203995235083525615866970581725783357306602598048385857062564241478678138071482187195673404544981078755609246424074970286086679247975719528803707421010463301261600523986249983753788874401035072070648812292576119271534943146144176933758970728695332488543710328989361508337998366786045259048833975600435401727290922964790474270128697241647992424189895832524611238579569483818674172631481823221331833705472525099428671073606196341216690006650096691257200527741283535864301203913076155293233361336464212718138562506522302840047458072598831042102576870253395598699032167649607021076005153667323163186258766840625751935091570484041183102164153713283968133234737628594331054061365220541683214467613585968741402817335597116777909479042510645125400587089096223513073887082989145114902955014098844041963485020664346844315444456455429244763211763561657752489480144897762132315427082930608297658274933246834525565303811269436491796503971304525259311004457200107799751949621674498389926483653351726253331053992321580638729345482815944042448604218431023041210278639352870808307803677527396841548281512976652256481798119032430968577247466807278485232359644335212436193720776971522715097792552983517107418675592992471790725650002087113944466404240679890838671974505369265742231120577635103845962219667271822299483826237737893898391038217607019202375227583607581733158557498675534920762240231523912374471269605732153182279165909891672722194294451610232025122382993218000943109013313399297866345815501225264787619392650025505687190040320664425688424306566284993106022818600354604712129273530674889723762397264884637941557430076579519163698442302822699991210426637423957491495107225617943107880960098316130965856038397497232239527510750477271929547282560627333881533929036452322919160409052047923752594545785610843828658827357024358410735712922167068998974416139097280235968745095866290912498574053461556957541855418687222821217712494079179861688918085695780284450534957262155681704541191626770856771666864221088696060303863547708462961341697756021567062253080600235455503853266895012480202070824476307375299927622868244010831658280369199357184570403524340275068531844491387614341006226682814331230500793954347547696558139142316473618306682158829450125812502346128964847348888998363279928537564126654645290223206187109046532390235355372423479654201068624555202585295159826721622436101183336665547502523166827000440779637925917378509527081298938849408468632008430864259200377414130728144945141118785624097871089571492889542059594284324110267071099561527009538544658579154268812680912940952629154858496021410062551985384655053263468035895150795957379647879105316269983055277449511952735623492893819258131675340199587875093079851343685969694875787757179878625886538843073455074247531373202966586666424411706270880365296590170444348718723419191597102717075051270916817336341900291739976293262400473720410333450598169006993566760447591562696552445017521765188190785683182914304997222679073122299689678251326199631928852246789614721449220437763917821815199071281480701333787402621647026313310206270594693805183666392917618962137268534116096137877559415211984206412322809684506342942331078212485626704771263262511494459453091882111625937821678310293821756805197546157257971894897156245918177824402170424124539277026028868430957706520841785524384247359752749226866843513358721924439795982790927451223304235662906702203757705596767828038496032398858105360928688361363035051287265090110278380811096930302127803404472027614989778226197784819392168176888802886333127198653777141069194326558971723955339583239192513383663940506861993920175388503670578553450369263590278504439041565482700760218464014095234689461726012234718588239233214933416200828186926371013057063288992724207642120753013343837295257175933769339638933212294469799741060498096424735061064355456539656377241975971410256036400556088416656394649275688394249607718341590485229294127197559205562957425175374916716945580643625872069619683611981677411926012537771939928392397983861718532540837349066556112818225240373598733039062813886095133635762349205481082391671142883369377003494260786269019643278007812790862652563346514489903039064906169174453668834086836949815259911491616693123283275956788601827232451870878764625274272033246992956938289853448628815804856434541134433089565339200988193083168134435360686337111824085428171837475850880355172559848585502675797842974251850831656775949873911191960595423010241197777487998558861707719060013652900344994820970965903524886115732114045170376591743325939675142428658130368160403841869048258053672280523569986435993287291846111885704311425055979621524303451576405207670613696469108087816442908557903935340474005268056749416212175055682415645011908038879025645946487946645008173811284364452019057849512412830846327688365810818433746638481481942014770138610408096521845884062189711611238362506407554520833335712126753731100116582113085063097110489470518510258944430958242925733098995501391983669746076303232526375349251434121167263941773002440105556548054230370487690404431521314315474944911168913853732834299214283769786651851263634918149231435070355202613337781741213820756019987540946509920956880184141240311935812877068109229544638959387043293495819400428914568403299817281960922795584188458047647137454491439073072636563692374515824419183517039315885199919595129191107009586990260650846483564611224654094592492839293316102860743933791473424972773565332773932943734999763784119377405631582289306890091608098969620272794919238508787295398935231987328352681927749741619219396055149781334417109925309891592305336229328187978294460572363691245470459196531737022417530740357922408434155278662525803450767767496823220304879671472145265952275387437709191782245347492929973720034226628996345326217848760487735976076099101390983541563264725354776710941469946942491174922720593461409486950234086839471004490635311029311230043443862234846747011528382778064973910102966285933212293200036243278502143391231454176406809359584954639258972651961744854172950383708367994429720275558034976370611938680326069227660235728061149278138904812471644563324988764241405218150262323944678691915964452008058022374081440597252265851740201437239025929110168808949391016874547365393896111042244656586384498376773895250382487095686029709615471801278994412185910174505251676720928554428217549557215998971476941117158070690778498972895520010530219551586739831915667244498241511404015208416324235006100916913819321306913245184751844835561370782536440953527119079537189016429319842394143008614703344621425479042569671467944449205641841308903528829393079473438479832746457503570827010427200278721812172165835171669638734058250480291416439746844415367843811033641178958965590897580433234175991085793663866266463133603656943722288827491704099043890353575956950638104993279872388651119490279461264420477990623400181020491923891719988779693007219586505679142631743584087628060353658960731851151402732114687817902002637076175848951940289222394508780148619828341699849534819543504439726077674004809024250226425086420605236198948687964498701977476726757014330977298074313775142530025044348923781447871732801592195087687550269223734365001938779867315079149991678525294573196141782800430959644841489155006321305741220008388814269908117944106016471949232110716452850089627201529476979573924218282069724868468887486614825099490754713862727706095785958721955134964439515255208869928878956167153448032808781712405671837167073549777659141017810034679425547990070178692951066698882961034315482213059800731572492914687164109791791110529746723283173203185512368089451869866081262194403143703451247418443174105850023443882141477607768957931763238680883240421164934767181674951977670486902270466909902198257390504543197529174371364720310030120176263389458856771410639325421179008622729474939586816967529522961180291985788613002301791796011081951288680213906920802266119467770140451821234966708192483701459440730072728490473645385379569135158208851470606499862252497265237432206842935493813288974661041664358833367993038924075706295329446642013570606275304036646499119137799089464272167298411588626640610979818222569607706465740952878760483421397416256993428456731734851697748963058536138617364271305836517859584825772146158565752101963559218092070872026642835482217307828676461907438060421478504134651073365766889893965367315893103281470388889486540857201196662863395565225109180652788191817655082128203344804399807250923911920232472411134167875294163968269896849257356014034939898331675789879635333284265908402229903434621661539345535984805287324064728110235962656288117139252580662911186318599179691233632636676805687652652390554883017825039384414815601758042519484903323417389956829431796898021975486251019348122144544580200053755408408959124830429765927376889816003042392509164012439581911985972627785758578290691910185424401250502201022130045679833447859824976381401781706658030656643884957370649494366547773205142943322670156835844375831008664169454773597875780947225915476860029898386249230408948545921865546087215649385897735635779121258710490774743195311602689755880459092874431623557233981643059510263763315856131803078867061811497411910224822424573569711773453816102408601415420078616885716241497758335261067954742054748900584928862900391819783849424364765776481405243619370276307430936834693460691936243408079687036356526545003608109073523549393760941113208090417928317339050409815126053669288920956552240560248193537382018405744094103232363297336673629176840656470078881987818358273044363471909178961556150215231290803258365948840610454415501703933952151013545614913805367672127334190737863495537558418450999467083489384169529383259303319753518071014395158100773014210576910507697392731776171338547602073941526085841416405024744288428293261633436283813692960921008538200758295149739593926910355778764701363828137319504708621508706502275686067774988646022338531368802384994975421187222365767836769395131238566259709328833940041247609250627243672908160586901825281754521205782989881752178689797891965533804098694320706719494632810357794480270162348680290665214765092594418151756445295811154917208598700541389662992737433782096807357215813878319238633157812311708122832622412479391255413588783840177933151026934995440943312363606316745642699349073106287736121874912410954010209372475336366142486506286509378218734565639634535665679826009638681690085257135451702292491358996123194241983613558568644520710338756417882829269123842000906660552604274635473480445135940395315012688186309814409778969655752195364537358738141533810292333286182934873708099670556013590091763601613568031543812398416024290182399497945503183674215310802230860212082751893264505351311660130299305280014836922728862182689312436186181855788353240098017084044279868280578251131403889331678068277507600812343741759670229168157766727409664823028512227114132901532791816093935126950197873555123822511706158497702665835529836305979025185922743266780143072965171120885097959794169013276152869419350294432511994437366651608804951269182441664884863554509687540746311731145068056870150196817742983209065713959176316071623491699877802949232294992138379436958321643454069929131818770824890001739022783290774129365415634524810745322848019424917456286971466758888211527755962670939765993854669652583621497104885914497728096978387660541993322523106032784061594479186639450495295474133420735288264484566701813832993520874405734098393170344266841589612576176524095038845409542757129032410006342601636285172264199924412448046203058348084101017205289400883342234311695178118749952376379524607590134355418768324255606022662881775932674095212922670514550816454385649162615107915394713205559457804899210016975703967024055925203822411767014643212668537663014044331912130347960647102796180809015725985922426353337176429309446064389450987326111030308927862662296318011181946163724200230014353894750141760950001806894023024568995428341347022564361439463368801322783023791571684228947391804076626837203209735400880553911512363417143918910775273189781581689925947513160342243055581753881757873214953719087195836305621927114415970090061671806064360574926454739354545523819747878924810578123077432501542492662270480074874870317349951082681559519874116214179130464001554696576670240187737378686227147071597139329497898510284368889905755705519972066389118601681754757628097612744729758450221351224931772658456120892123782850918705297104990786925646217069017227782121889323272105940610706470502671765125364713748275870359120069927379104340816221354914658051480794977065344484053342614413881760898533529450202017888983739088312784813880652429576847582908114267497002950313236125123189755429598936489916685881909918329753823135253884467530899230519928778495970145900632713075812295134529930271229709328949037987544634552650700663993258818532736090499384968705246699994712623850627584732219103735914883223187893615244417248800076334276482500440543779489991883299890498415302429525539349045039031580386360538456745437610350011199782140086360894878904685084192094650874371912094312270014038568521255211260706997047676181393077816805740108411144516987746392109442619777524560614475928406909307268841170048709867002673720542079254004551264428243277089469430689172042644484472831199659907297985806922529671941910193011374688886948023659395335931840943176850142461052566520875335683328627567518775273844497464981267529529284740623811471697513900578709089056869334383563417090654210410144193404263738289590931197970735941310938064172490036555526781668724905544754831006947759628046224338382269857206710781677820220675134182274468190220252586380414874787042005594136992337238082602084306412566344667971898253777719143863197892932980925791513814483634620750719915870774774272981937538068471630108044260617375975679041995529255999459209893098238943744746994560285043811122791016870682211407876937154073547947654185985805172924787163377441617851849733701457422077517155561846284305672598793123506643370652907638066530759887552728764276427988690295890392339211569359786335985468113796483519403988562116721212988929170970440409190149242328138153609920401499968377165962162533323023299465605425870290941436195660838358486574007398880054929561522717014846041447882581462553459116618178467370723704110671101665036412501972944811494077196354098475195553247085273207711288190055830664767913634130081434893877521802240190220596081797735562119059479813176764355546269223891822788212123571036953346949775717664890692505113945624563753302601087736279870246402137176197030728767908246446605021681824012201712855952319992015903506093439910674944165766346308179908708830840156596811323076113656540639800692823310334697278696531731903878639189673748694000585424698812980296217556898143174007901536510925990117283972230652943957597789162029498513613714072507184479305214763920818104526505210318137439954874440433032924366459189110574428017728963200559847444183185223110650453496303323330961220701158681420480620727700372727983839288090043087993686071023278415478602577207029689710786241354708412856075575990632606797069555185698270157562513590568121969575231439735204434598717581290391827277902507744843979455129918601644197666874315687879006350253458993272426529548071736702705539980506684027389080715427083756417453440369658743359090029835057897187748758449620281215882252315946779155634372289473401611513629540454633307039949938419317480424974677449126026805995862054268575373559022367603384085564834713779061703390085538454158600337372974906722322877137679601560693086212032389710791764170693493896478083095431967925990697760206878960530146349111962482351494220750342173122972638314722402187433227464514755054073247520995688917107725104902324409967461280774949298043936391375690375731719489878755543811062149503226949991953863249980162561381315169240801303289468189868240817046468870124386750839780167090048046428176040289464741178377643644571169877521799757821054570903721651826991495913434144495270547598922274045896507963302237993176427833444499371348082231664539301356237952506287506724300790012485849473925323349454986724608364068208531328760419168666233826015992775306194784841385880945941822307245834602973848636994062180677712508887144208501874475200503115555196977219982243501634080660551406476403484427768828346652754775193482585768923204779897058457492070769641915771696533782562998310982466045689353929911210538129607286039676500106058970559931298661883191940933288476194609610569395919562539215125726728886336236337001077319867628289815942624978768837077305358940120163681726760176082641047329474221746277406698520425188550663665846529513071665626237267344207069370800512431796379968930122133169033644757101702030427409021455145892699554216431840634195704826211151946134715455840704452360325526518510887114684296384430786688288474328031849410750823181326621432774893664419165368482507485374171014411056197518528661433937449346333534602576981065378784985425789392265974744189716638980003155256336875171553302298296218295277682364760761642639404361094815080344148023243217285288330433733901840653233369727323350918705954620531518257636537446151432639924265602514556325335078912762543995663592031969411278728437430108397087739914188385550040670594949796177910916874442357592795872258953346383503722259330253063543434908780291769159738388556298011089697046757947012087111898093599294462159004769937783853679937447365503384951327544282748242336388404318419281212127469791819775665243429146231571733492480399647383802023040983321566138006869353758181916504234703784390350734893976544103328696345208778229535147948821183285172621632915701660606266863585887655313856926584103330394687554779276484665781745162179492636994671283398279228156364637070444706277073350254055538694818318009201324436371026509270550433052912563196261283388391063382897179039814287200679505419489361489386582157380248105335058117704598767928892616442216927724562156571065200624459482191135505035465090568518212179153418415967476075267366989639080868738076874328045750552879934242191605797339984175690190852407417725676563800389703362950235291048667046813395365862309965741377515615959389037498124973541427969462613125387911448731611155862876521307620759149202884578911467335298564412488079853037119262830164483947475826548971135117188040699771891296411610880727357936433415817177323033586412084800026934740190098750811795025944114204427806971571278489013235734988923079096871489282717894950683181058384334115604947160291715428187252733176492407093068387798108007237771788089750250793307964353816649427865180940814159895133840901297021607655050166183589433972500825056317436743594843447442596002542850762246374530808545507640462396502549286188921101703527029590376179041423079200003002142040424527745134393185415303702053502756614634678534232384122209835449660229881632062906798698172547676663321019711902911663989425142324032081123225248285468929706107605852102783577357276926355794534619531211263101782819874000622501049643293570298674342248352598042995260514689821434624755287881071132298591873440627392610240080982221974681293581347355798241179003952423225816925673887454189181520168460238645332865979312254101432950246629569816235953107732862544802902926989498954412638841061907853710942302182913070021105543687720126421600676580856405811910017122254762742846589824178956474697903374439050605902002969995596560341076100633325808433524545811048957647679875476840924824521006145569858493446767120312190282236453758568752316584339967517611470606636580963411195749530186649164406656117017311855550319304414047432982582424061191574429739518003781827585368872079432093393495678859227082921222718817410250604301633909035169638696891118316819859417275198056180898578785726386578063416670523397417279354037067418529088834325500093120845282023080450540909958583569925328057668510079067027383888886783468197615881322972017848676551375197014705968704587420750151775657393161451439027710343942792628390333725145685755735903820220461893890325697312791378793807912606679295678909961294105457818993821059859200995991351638957651844208780593282052483287639884254498169767004543355488817476998657871980959686080270378259191050338044652209172787479699847721532893750222116076471869942933131562974846375923767915492839900383428039545433640305967584401052568959679761453825456572798105781675054409878949177349057365515099202609802275230628396756630200947075693482113340314892212968349967431618407271801617399295899703416845108030878299894348196204867287379772071937951615254692141091718036986677634139435265491573714627706608184108997954009676990274688571758337440803742368142392692846309445415939731876425075917146913916562974293976245359061516025156414377305750263801296668814069372822804308933908119589256206134912601546349937278348099088662374439141067257824912917672376272725397430816577384465722603966140889191654382031308572208266976615905933252137740764309582016753276634135055741034272796324433503558218998366179709673939141007080020730668955389783864247236062550150923724316073262966336548586237137435210706569973999363448581020681109930677296785657537044790433451917655965798782902838856020201703203595510634616197649335571749521487400218109081100411166389189878138285080472094999224294110319474370121630513807121255205332457756035502738153358743158091399699847399888023528458381237290584700248439781928728683309112466029059963080106268815188680628905724936120339454831284831699591410762678933814208354050823777063008072139280406542285579244751654824897989060698518218357457245900789390302008592839269738682046943883897595904822383828534666074003905407426965468004123078785517340370911121645878563773078879566337923027114017215021746259620710153155011899376703112145916358818326617798416309098203938187001950395818388769139877267162685803691691330599970418982235485082385182123793739271889696338133615359737908938232755249488932979213195063570612182675313633696881550942425565647163118082217990849538554387218905496494573456672218919574097583518328397150286586106054025043022992010232090068545229180340644308677848512328367760926414915564114579821813581332033129191165858208967132349157531198379988042198264234061668667085884881466930997360194323725308848300547239474451517658933702777355094548364297688946275910283610449249008449871075220204809762875402601338182342622860802395722158863690433346949977895824231820549813651782748223919515845955842038854847439893317306826487067205029003507232656223395098374353106213683490247238663965654780117669094789150067713680111339854360053617582318643082496457175212924858496293534462390900742511157560855674560770358394497739117018536946190811317835304010607208618350061328867274643709906638455844060316933811523353423632590115202645265676432601404149303948788935250493936781582022462700660274141433796033100092297016271710976874925065264146140569728954838220536711753139089919738248367610920181078068241717609248885077695154547216805831324435384439417038594938760646118569108261464943620392808700055730292530388288654016844435801838528219882255402332141892751895005242917624573898134183622955595724554221884037082928220238652513621411784789818509509781869798599188997994631714336367802674625831853015319580061273449847050290871684145900443237074366864444241313744764321307038103423937530847594722331141833302606547958677787101763958304736894432793995952688183446328629288387081435087847969959945167279912672712042073366547058494720176761065814926406346324761109679866312516930914985378666260768314095752554904039657123187159684943640703488259104503354107313536454174810657114984519391873254799462470590062012441021173098228969604155968514239091334567276743843573909258481494690500242114388695885809547358825729317262609138865412650074782293548453885025695905126155922834923975339636073576665463593700436269169531905596877298224655929054034520827464576861904721125590276428991539939533481488555947115854498163929143086498085001819080790588676589418600916989284405748923397659577683279669933172416386502894681471652100040581429806670652507084894749855187048489009534195609643196235363802227611123190789476986408236201460937460345853298869594631861176996583237620104533249214489224984239420488604348211510926450256246686040558707555593100748842132434266085780584974459858790852307912134699053851819414163360404909393662420315411740668034946298275934611880592462386861431136498002359733288900186836332149877312724008558643484070735761066361449361485681244475911141323534456321326677710632676176935827695147637876019927212706798030664714305542083982721891937167391906438237565651658438966204308486633033356280882161130353738351610571946008606367337668827929549741931393785630610279870581605899411612189625667414718201284323030777394299595013059016958548606108244973606678268836966442941202596117780439707615849056844177260186361002336576047922282372798967248778987371288404279412638998787011747196277009358293963859034823218618908596083620090011814518659931758072963117755312169920820945379502031878050511247040199416874514162111786758398156934760664413404708205331861180275595463908572180481504623771770055262995660082813765357740351507021810526260894950065178583533353751652490208114665886770845472004791325381369817137771454179204377243722450221006457497765910344076855942553679793133577309240144112952227163431180654763494892746374383804251835813908740823960030781854836477278960618388757992118028355663147816105167485098909137004527147272906355198169151798604837448100719320185964496983596320541635462991469328167514207016007634939958613619336115580588900059065413296232609502630664004900348702329137795865632955374650556559747474287014034123298728754443933562300038105848493574208762532738037762906824518644780957792077426192434754863929814364994420883793599269374981317855443889669697056894923534317092823915040373365351124252237950946746131515602733879143474544307582721882131985049379664253162578718003060435141024164338187511325041103104519804641599655907638085686066963107881501104476063634891509018109733384059600609106722284120063165042238781955079918641133584520216489014577700212783118832671245474015421914973820132727640609835593403827869403742568587724048489738638054410543449742119526352817033543030653245558829809743388795956935452506868201537729427086267250416528746125887831949861714268931603853160513545899676568477702965793130283241005800870734548989200456656669459474042730678439532361516937599153971359854593112125855893649418573091508341596702872848814922337404273351195716310594655337304299507729072762853460181460142784856240926057477292250969675891912081417134504581721391952219246171948916804986072616346793347119930295713862369476733924746488247344951994096298462861934167317149940748141313514172010131819792240223308296596094142688120998935465400675502605461333878460694515799484501836888701980069623409238715580261734071793191080478666041949593354752786024771080275921612193999161356970783025066033192336531037440420645831348179619072161975594676305435329439089444598150899044988746377214510389132765426333523419053096374463553113806634834782661321543558085621650176243830263399855133692390939723755837737923805344858060134868028418222157404596671527017252452187211823661703960851271567328204831191924152259187182162995041238105873724754344407841687931096469970590556185679606833879035616245561680880467844001781545047191883904173687482126631298072311126521268791314782291131583799375387854429605349098990545580243239005357943045065579742160091640229569560139731727563052173836391446432732357446313498788532725678393943907315582053161556903845880834019780163607650916170688030383394046337238623369864131375825084088606681247207978977836824875666112702139072614133689745203147226548807128223181823225185606602128750960183086452557998959742062132857824038403470940673574788299167305399774609939666838541795950535199135498969818140269430937860101409964127558394792418625516301848248367503546859869877988955703032388877865568333259266267260690845308991491059760767260832112389217690616190595666758427823009289618534686686731027332333971410312657816081416650643445087242138260927618697781037800971481999264183883047400465910962466707156066271897196874590075002044232381270268400845100886050343515817995078509363441724829370327808528190627656519250863967851577570274348341121167377895763747841854948560126904534242233212616730769495136982350465033265949147100310163529164945006705763548987239776052274831740010266791195857875686402099053163144928366922229992951211001909088984401756840892935572370195402641778123774632305065931125566508903402870116223925089695403326178510341930485061915523135094212076546204305241612251108488815255600324910742344618175458776028825311045390379066714292319938447925920364931303717361875709149157247655895844059221127836863374492828978827649962410780000181230068508673021157080759382262209760669163297446592927088076813850004683020736441226169807232627103335471031687891343101055154393920480430987623675523637850513995719208794203407493053138526482324356961605309714968110100926936886286311355851057005145655696987066470012407063938784361056426555352553730632227417912906517060107595259863609669232987075108378342862519581762116868830518183244186029459771112059429565358013722916639123695349702965806194877016156796461435586727674464164832415892446219591891872094462055852631674484945935643348835278020089400148812500987298429009668283600914044083610846820451031770656220379097360232834231539630615186208536589751267533688774388174797524583156841229732223820013923873648580413799311915626491019976138614031111489954211133957641647326926199782199349451164878422573662526987052876360021971290956992860962036063626360990699997879551489993749920414706521277176951061448823614176841029978732420157930984720804189362518119656977567206284384909951042391178507220059391758605757927426066195198097824114182311983424229919653831019597104720153105225750644986415215401398924291660429021332829022339250622420108947851047404282322326215468909072330264798039066982047642798070695765827568544347191647015356141731876261457273165417934700736663252455117008976387615397228356748903049469630640493158755372377948124246441362638079676010790172503218003171335433504708301898278553311310769709514867073722245174686115831681536864702059924955719236135546677115827976933972110964350678128554180329648178944957273500520501593474074451716646386712790590402060022181129425627372435721806926731542641332808965765715516031341596075166147284567306801121653689359418778150167232034805477329523223758238655853572012440765549337085275035945472241222606846764768267853477251321097881205175604297652156679088165084205635898397654578836236304368632223054814574334990115994507029621525068493446631210687468838427367079945431715320584994547201941339080512499449176583249777313086278143715939918749279678688884413168547735769480940046479573385764990888177625275521306801507165211124866228832128862926456371979005475048214274701230445750808243077559199120682979072092607771959681927558721990451848826300680036239429374633254031037156492880068389877561260219485330395460886931546336186528332550850063497678155016859197136581075410366044177638369478863452680186465228775202551429558985676919480540521183562305102338483118473307298717954334741513464815240476982712817516836199283901738607522565948852105191050282329653904940131113268986652866636001483815214323523887082853740137257427696762508951929517574607502605665476486516681268630748966059450590036848552719135837428069780636499223197059611411844244694386307788158129167923179073545977503498136062640204708198194942143345994879569804767345605404211885791007059194466220296750445269679098993985624817372398132050867686057848787936679799973242105111440336538895472740798729280956100157206357341413600329108063960472357293568570923180100388656684835941901152090450087790674081093190482108120808491255885135620874298251722936119404128150297172183758139422409595846491293290533466369132900485417277057462374242329046401098943797829959963430409764158431761977182072112001997714401695347249470580725286730091839049024744401639626484696433498363491146373233630811181657488772528428801891665730901446154559682787455832887103063492716897280944006938045621837822982945884035929443561243150454067574348313276959080088152315321761833843289908628146259238727953226309142996726601078626989495071557992172961782660543319587293914343840558056751690453596009561651750224660451476220160002471452060739404034210889992092649558974512842564906663978464621774046011376091271039748856202978916362080840624293285434633532586224546385871478003757235326825652491842465472024230682444328392492853634717476829844582192411537943948925789349897895896741244343518783391275628525840211762795331580945169441914004872842560397633952102743038493414708079572420743923458798934992234654228070132053540620151465694173016356713482011780990117942362266525561938779922875048312483694534021300316549719137314998727146951807026993025004758874266345855365073049876100063213479145035870394293260833227612151482735909913573083300233152571545265021236056988535536581738972219430860289130028530183401355201049690723635577034284647290499949673096085354386129574252887233294444559810532950786967348220776157399798154207176853145045507825374654354314190582011615146440432688350678274715308645769950329461640671041439544397986060164421255173007324522910846549730962776387437500993488445190345156767535511096511373919142503566084102095358772639203717430309876640023909753542698615238290674878819862624479419043797214118103972619363599274956015284125019749644497058654942680552961512088136506032943481331400723743832033393901473007764108405988974404335328982285037474073399961890342563119331342935074082648604419652640474470787550377408260522072261095467829790595119423415229040379897074144274244668205086179186024837259406346996568481496779413628072191478415469886643669377781910487557084206511657589609324840773411063996986934458064099310787191931009528031516222435790434037015382048248148472454134805491675540595158434661026932594597337781704363498988139042685290876467342895769080852361689198942442271835314165599211636408301155529930426996657899313352327738799744625304899008017346941112917652163880775507249045079421200520775650625552163490689512134377759472871690200015652610391053416714952690386669631993497023991577734422303944781276119261729912180719229967133916473797541698998237815258844648252622787512273917370124543419548121608231664340390851806152929420706381424014366925700242126842785322643481633627804535638007818131997145100149391028626193434604243414946474817656102469334768578823763503943392695705027387100917904210086347837405613587689663881849575465320595215019653897036236856971023055499288707872324285742964081364407382988563379547975101070207415056727460036246607269804132756020823860656192377613879660307573619441613676907639307759508044049320145302617614961037220143122407664322479078632013686490838893158871407359611634147195437791300995826291293056910238529489202066749374617071144386390502427565765154754195843613800919567852412080771815610934263196420736155923400708675396539216232727899138635859162439351127907317756064520481505902487775843362713659695617038597109188244040907462653522345661989775317737977092996897073743016026838283353752620698225223158919008064307316961418525198378414378061851413927060126421406218184320390403741909056015179661871929883471466391902589133353152416052872548835124142439848081709502353720929810472136152511409868762178964564274118240071151359031897030120374342318418595612495245910179298323984609455421067787671109787837976186069889879288999592581825303711037432917928872720939574570971162568500548819352152467578692666710454417867722243313928892287932365088554948065915372380596600116052438462388141408481720165113548998377243336545568599225419684699319859194236229493944521089819163672678435295590632055765038162373078569085134641048143984644867015193009726949909114054386208450909801436234647825726159277772636429670849788994133502429274392791330010531164629342153096286679186933963678660038618856102909988797704977125445802569570674098647537563991254023784063636125133768996571324693548019629382051947009692753176170351924000201401690601095216742682666715259456097655753581566463422738227474904508151542846555872697486586360453204701229056600709614846257568033166602365820059744366660998570892695192624314971975627284006138040880485253417234730097327786353121800170640494098934569322612569953459268057892977415490394003884516023521832945348350779887635180740464886804305200106454377095645627923717728934323986119427679875226660496449992423968652336959321497429441689909847926466793130919758903935632693046114155077168480056725573771367706208783864015803735826868722360648140766166505486184920968477526400224858676521295188007168684987162331040716680942533753382915391741293426512151217696660826183302877616885158577676326635186437433366808563384395482414153114745799215494613965435935082079523067606413699533050203236301203939818763644318487009164146274504070546012784331485533369371012838586967153194601294715198232844225418647785826551573945661004986577730249695521755883415283374298165030324596492555235037343950086062521189408521137265074623703698749214453112990368334804513066033491670632629128667767386328165946131087629251881191535489596555400275388936409550573861788163747449683389163368773482761304018101567977060718759044158603486350776732065302608656613855289712909383814693820268554529718902686837047292971700118833521264882414990235318311260883867444233510090206021045264948844658849985684644320766395099122144752678264946691542589288319628849326601739415921494374528722150163169201890763183098866193510353368091904192166794567779659575578968053262551442223392350296704680725477045310470215355579856142391782556269984051903773871582733809918647896479463951710492604913616657590234381289957324558926099240242767112989796967067825348053250493338269830514577250385623891514407529060217716859146944810180665360978844522348104681104062888091089196097602609019887939012403392745091732276106537156239066710190437246851657027750201821821293327500195280093156130982175375872999015808923741635638855943132453766573608907898879945625405299323111632822153838807749535403499703251860206323641824937191028661713752506604715149775842382837547586649851557877833741751071440114083125584237157944439434162884131218600880630519675272163559918487899641403469262547256323778430403670397386014018469283600851081483988735146838337512132243469220146701694879929080779037667096725047585286624338272034803104654577774940985650145375817593525688324078507762980495945995204963490444648171261641258635399019871012306150468129708742031607678083476531422589293183051432543982156915500378544567893710920200086336295634665348562132566214309872213957665501664992777630266192118506927056229069069452177675125673532948270567152671792673900040931522402616686626423500797067898703736424858891888300305799478199578219686788477890544692237523028055239616937253883715777375491529119316576136482180437986621989771540396235504918187492521101234117508559009505390075617526853601595118295542866228789009398908561397579757691394199735232872876077116871681633109760702410597537889687614612128536268675429849637038795914001217335525423811103487790360219272057829211728240889352870683137838986018083585871455217871059794607835052609638867751657910078205813297577729237045300538012811267167654366235143569474928504175155263823041250592469921411598153169916227374215992939914691955001838215079931398669782437196644659599331284496137143536011265951143708355035643858957654545369182822712101497743023652867827138543928667672039450463559287208902209309692416298018282169621014673504940351541969126650791884602834046766915262849505558356977060596841301188556456624836361054160256957289400745823999057978905452857167490675405636056691025609145714829289522694719887564321674864635490710328130501000425681944957883763723388175152703156177841079442376771115945023191954982641319577449371157087530850814583462561761081736634225028813728280138308329557764464569288418908016835480276984862904377179931828273648011035903858996568538293302675639246687901143921457074984958947907520105736392995278272554054567875905242204848757833268672596147714811988812463479059420093670442686653761528913748004534789298366712282289842944574434328110123358909121305895823882217941094161937388257092974182544779417225682051012945046087161480933685012036848928010754757672223164903359496208300009883092299628532332100081383120986644542344027030849761886834606099233036998072772136067136691553823149539643230520062580719795484735139454936250225460977053574979844082118422445465211029762135416533941109065325407393058850262726907956945648147210028758362017264601134361407952963736783135303892024495856627670463152533285588732339785745655952088517811727848341747062477282667416403820445651542488710867373444571709051568821282951239114432047323025809356785926456359582426244493574086148240087717371803801287076717497334388593663258127634668790389252179817717573548478516083959056277256226761042968651517795261495936418364537005806739149419804629265392569365616749927615897014819827264677016319381422374025947326127494276743608279700145453787298442767817326595953371993117806173824821312068369259174029873573923327887790253142342307493089968453430554113522228357346371181470228217785812847689441823102590995474529241002576143894791481908205178651492845249440660982533526509133797807146530488457835716986303472462153238869751522099759765815419069972210168520936457552859932672472742194741516991261348090355337560018733208829957249549791850819446747384073373417045217406271287891387428608372520720684190585055794875739500361210504929247380655179902080299247381362023506511139864195569367390751373516533030861165267333848286077090348333358478526416380387057585769448191604821827302126605214519797114777345070514498317543120556397587720732466098627857504649444068067400487345609912524534356727470544292872867398772082922962044397083880917964293911669128237946461137027646018866652153968546424348299297938072886874923972994890553411016397145828059769861540674363558485876926178760726555843291845870537962920152108890587526309946245721467247752407528067608334342394127958306709240108314540282050896824458569639760105410155103039691518663745938701059458908219728896939016053486611291207170875671987582440641062030891881827343619588177848955252809131459952412767278773339782227602359010875359044654373568120056025063364949197311876804003386592069696670677180617301862526287865284581984541288047009295796554689974563566687227663720354880830315422446364654708044069646658564792192280666426953376969326422906311158285994406027014058176186992650968418210885148006252365475451551754058351517362399252305406545926414376681660152310743108585888619860463753976221747852213102560272157872962646962598454159270559150906583662495914538738205891440135985208295570177942247466977049614404148668723822809058536282657376458644374483183448831393435451268733611189455930080273025966898788672491446849850382069197977135553220701638689050621113252893941908110689486079828344386401344020334674784205751202851835373206311664431891264252978674663403388734366244421012746426881980146849581303574227376125008352614445958422820411789924661498342676626156629332869927342625429271843707818961558976052169737418107476610429713053805504518536081503506552741550655158405394575326473324447770705689227765767345915014655645384161698524422042304655438885190813964547788213454170950332535549274317749081607987197871910367564935389008741374536788002800547806434033777068389848672248284407162660676953149059759812843964405252034031566969359825491774296655955125817448020445492939415229521584535079402414923639511679100856862569351193618584098538195236923237334441676015937615284751019610384626864508712545539124411688111552549192981643753650400410813580218257668271716261069984378899078688121702459743438899054823164363881682724595320919772725011098437303452442105395755479781294695132259498864095902729298888718296894681607557893166672008930617527128935803167531942213006165080483733108304211757679494968314945381371683037856749440398443056810379072496916058907217049580916241078193202364064867319684726701383742074745783918050501043261692520636310362228563964758396687160768297448691934327016076569433742538308231468617266081829145680446114940235516881207570268120499957702241640470835712899984489679952745256797814687060828329656772148810704614018870259332714118997527129568818757598491298500794388664372338967410506644906361106665806211740586893607667819154111823832416164315052426959746729453513943837757225980613380493377993979373405152962786110180704140648820805787468928292917503302912196210053332874836649297475998555627747399314013318167929177296674018587571983955311296712413885193306425054730917423722812198056383472932464143669840186434533569256452202358000203772874719759206019957000924288086794127387769914548775977632725904017004372318080656674231531330505397527218387054656560644265192516490404678199748892317032462644466230994138099749590003174212081211614951094589058192925576687299627642124849080981144606530973279343640703780928285175074085900632078297056311378995336194929455322348759751910087117850555283785914190002088662633980640196955004822260747306283741407794799395648139240178556684692732720062012732741453223051436627829366334911016089674680046480791599434146482034924028018245588773419184792899959457843460648445925208599626057446213631972901779871508423772543226402469811786873107053970253801719018067591419745854522879392995287474506567680317616486971278084132251060669095066550552331898878814233911303664910473805433516615118082924656653517543947923328064533889393169728923090102657168044960489561464704604461014413275443009797647466093639737235651820849170677634891309391120269990666353531032681836067329807495719430180148716265410505415403139957412423855052274673296021113517136450263493575487476267224366544459845893271080865545948918235986044313788330273193124297986967275972812979675571810715276937758833691790797549934431616014030364493407931026490670340727861549547058424384371301668908241385076578180015409924537794360018673037111405033900335725712222430725708408398446645343887520803535325876144586605628525037998498584982220454377834754609167349705469911838543456058474137746996877054037968854471157222661283519143399524876851706372370262591421194631235044399320955233257865148552010529757965488577520324514077488735689813773427681619412081790066181784831171713256373667069277954745395223953615053583152588800844074143994016859795636194041278752482089041942282488059008596620559694382086748766926558097994598184168408332696966536342350043700390839237408615845954150421561129600317456847142542095590166406049955531908958064427525160819057522800716682144848088282665183606572981139316474384580497871611191491135249425166102215069185597409700762029995825677260195567544856566434126994917206462280019738105209573349029704305500662917548070160815648195289029824618559740217101735211801458607494976901183925027948743025182715824549912471484817751724382149256228568311860132844413198420227626751947853522869242406616918739351985263369815000250224966363118175896794720592710391737392978036058659696337264655822531620587825199146036543211595442938226929044470914155032886275312967851610033516506707563686863847842879689421889048871291521922704116917088619864727718368457387161243786502670877639258941659016181194939346553564030113914265628112789695292054860020517062040832937226345005449422590321441617118978572834111443932436241852916662300424005801606619337507745429448752148510166209062543043437677009272909322204250104562590635655969469599269114757227076645829551225442485519691135924717454792672740850422068155303410544617033307652398482199304083624791256964184023373974196566408221554461542087670809811588683243668001984057027353858160058025785850218985953261851683807184722615932123193002387843339120875460244213457036649847230848394434063078702739180047264109318446260735127285028307823919978927978572020561683227703416391744240830702549064153308156531858054105179829198688954236031480524797494984826483796528553369880033497985302616042406980124858705599757725062859376957550159301484014725529068300501188345950871123476144370535123477779278854376485894510199063606287480119561038872869484006049423162589702254581775189612584939909804261807313999025522960670145953580491761229616349667486115349961481542011118898747107046155439945686235013357202820485986001797394080421880230363456525924079130726722545800022165928531926285624478836681197834146376583961161257125776261603357400476108284737781136823952352042471750123571088845488170259696854911654383285064002639270905548601129634483490913900176913010252960580330198997382587286110531799915825316586297338102315100612953813968660091223116582420739005814671953347856786172031467804214153255107686229839212506451499247720490930160150009630284911188891019527033319622616242456961247056089274674194669043121768260761260420275297068825325901731349411529620041259793061743451016628996882384196609234675407114664549767800610669473894207270669460775151331363697253515267257931615456009760907293666472899769903672615010329141123218079637565841854734074008092236709634402319726432028717316599567621413958132421344227363082117175670022829954783275728796557772620768038532961482508118963351249550723404528226037810330654027752407072875096592281630930751984757544319276320487978053547300527129467604277979083564043253145713695370905166706920126725041369038999112470496269289468884787691733695566481418465105877626698678826870137309222197341361726616900097284365808210895606197910502024028413418248696751218557964394332929337772078787680627729883828577078617924143703071525183629755677438991707271151459837865619552820479635510663079192135063802700288497730575194752103016765712673437400992877213618634211222281615479616980591692947626381564408172044050534031040927461993801037754328058475175577563443426537324738674167936549455991458175905877017509854816859314034220251956370623704097667468511579551050147555123719968661315273148967167646815118241591802687298239243504129355010648953922403115196271485698801376812054842719526699833044024290786162026011716089066516554027110749828498387520360092572017727801294825127753627758328589650569317971790271530710826455018852486043902597701632009431543318722150737514487642888244740395377884414540025322415225885715388881288960029850263286139233863269291921478458075860399060740477683810701836996123238572351587050875351258262773603295765185829232315563957903880535862636739652736235355096657047110544656362354320927105101401072276735417852267571724582290768869030756334859405345591527898438252929385610756762008648349187243260464581098821942337413019547498113806953332391777858828994065798878196539090582576373365779894865798222274886660108026211816111404301787140414069113026013484752233234514412414471239475954575016084642602965300711467796909945380703789999918674296780037107238300786677470106341552144705253145087727807591900450559112452112651593037496775490523921157102343048163775664922101954396489332842761776106607234406674897611074720479582711786399645303424604274402482449543608755433525569301626739368602558892075548782053244082700543480919997862800676050937201784243525245487683892013522044628171761625389110833859839643241955609217810390701156755276278938444393178319552200085894788248370201511715111346826738708810433675772758231114339900807612209298285646663041398224638525290753979650831947915414266073511589610364796643194814665399594280061100009438008080567043347994530599806246719255172796910244979389801054436617579638471281232099744684216939474898320617257284650641270200165472311312849529928799499500084990082786575033876785150601802342134791546845721218938121468245107580521648422162165425427958380861526758207506925422324007427809344912243752694134260475744734508416702776360488038456443206670888057689803394184274548409166280541916206382729649798703873842660347964277343902038197088845825673740607365535990139881190110384921798580763033575831046713461002005429849369532426294340965421544196629843501795189888198287071467512510467697373459377553034825734682488260979514114248992616043966593162967833125149791190097946450219971391379178220835087535801520876210090736565555637763197964852250063498326999733485103610745139885831558501706566845678317230443448415783187208556147058954012545464487161729086460405237027966104146591561137137013220903120761286969419424408987088971810844694375013916809399499569508671308732281161369392269969129631248151395261314566244114024072784073313839686776987764501766780253879070072932250141141303726947663498450233457171502987859376534742181999353018898673253106258653237268801223156289400839284561423373632430774121844141793209924740653967744925203069274883215055407393856597592372095646994906257198741594965893844859680476324413784213604635049016570476120327599533993889990127807761158787644076205265590405264204949000143546935674455926422381654633430346900713853425633814096373965557697384552135127562886822889365060704258359937307351486427133985743786015468554937144857791567007625667379578222402837527511794043606322030890650355812075439192662493804607248692185935564179623107378956140184351549156298490601172188835063414152208110841860824069800204586147941278187602200641929098434591903722515827947364856618491982006493232652215178422920567146702294142224343221402379451948697921616137846516618264437946666265302963664747703438711131173384221631479060890184913007194962159772050336221683168780721107924403926871610185779558464504108629940021125779498719304545501546507101821495349412377799709842417093954058395532672257652772439362898207360391554825848797691740905461597518871439591231987782812313116582685269629640292080821809680438313072491461228514212529741632478258561891311209944510045255142595840573163554198840875394211686632930351050436506882768008848452761064128798412827747280591751099069259670844094570802028368947269831088424782574876730200980933626755773780923774964579807055858655577169380088547818411507760304546689350588003918270817087262074107794433478662477627191821921934866477911079598420273891896696894078949937705488160545988731846798865319066778431277550830813607924856158031217590226212869331329035239501727249187381786407088624162540549562735525874711250408136734858395791962678515210558972325113808724096747454914628085799350779427332926999453905479014116464564625882687870376969428405823074726553421783281536178744621442776170992287651975111422196842939000423511856550018543043310182488391222106124519147608886986593756231409136424408478572706180678925310385541008576024107707195990343454399889357747210450060359509298549701621293742872415362598727604156370989731801472120010354016384620736165431213391419424601762267870367166214435673710172260163413640802894116682966498382492540954531769911568756542773739589441795225428247014566557570562231578592752737611450244852809726740112758121147204368309670484348074011623339748421360416221555949195280706489366637464031664260109074263255308835879608437274373870187649644689801339806594354066771144826381976174454799745773519181701669785946973255281657522007679561399478782350519404852197098653326821786852299401851749083523229158814963270064432954564066538695190521929183327220113447428159915714972224633529608226114764874225482662930901848625665143889475737104792145619093507560158257094987845229052925805528494957794252120417546587985968363503237167294175699472166604512278331926862138783231469325339926723855272044647562800804123141784481506000619347394350851012414784962894372095774002649393861318995076367586735504242545381529142000849205126864287322304346128746389710346960469982013250127931627173389883219502223963144851629422532913813873202655163533941797062440660824439582392726277014658182836087705597016881476404431395022842918204138949507449162317396245424229799651129739315218115405629519242359582630117627212235989739138580540966225390670993972079165922969971075361304915327433355754587279528565554612764778335209938864184078514807726079982384871113620494994319134820019732481402876326777847117971869942493327311861836693115805297738450165210361347100131519821705851672812834733094694162297303925181980406719852130783848442361049205915830413295449743697441119813200799457098248676826593295865715693696092211699477118536653453894410194458651969938868997502675076099046333011698383980495540923793484972762470971773623836074709303369890838658268970168593144110548751389468166008677380259131460088628880000996099642746970676255121566432113032769627398996293201200278750456038860441435525993147554146394276291116527889959361451219472835167374212611255298734770665717636592757082134461509921320318432140911757633291894385874212606582850258611645129098042626219037548561083556983748463694081955496058966336323868910558532909917025463064334258074291748389700484612646586290214200763265498639334917317597355976853342313119920456102808730324165181437890861729520096509886378135080976336554258569609416072145215335568004077045183265190778204384834366667485756206347804491349004502128960225949812787019261718797337333021777883497982069332651557878940778324235605643390428037433726482986499347143440019473200731890619390458037936632468949604610106929970404562158132579756198415412325357763278333242345175415963747356176356478224984727593741684573105627680556113523422439629129491036363034307777339124255839697500906704236011422267601465269089071356111934767688603775290022161135470061116503085508385166305353651059024552636303631448618714912330944732073196630272827593899553841521047952497392430726119648307878672433496489455435220170872382793118790643989339723602665553242955893240253714994674844100776591076890986780543382185447367371258392302083514164169384959356957251822636010191713976947136917618056181020383961498699513955280210132567504671963163553168431436966000802337919562929550444949069029739694917812286403020797853472001465559806294696469971741578583352130443633207743781896852149579474016737723313816716634615382088686207551414443661687909828230256569669510004436877820466201511003663644159913255058964341983707539514182183703677096870637922882651681597192565689204893051448772143560329270893334637500800805753196682277422771868912451753358102255911379309984846016022345010233680889624830875211735223827979104196880866910507887790872415602970368080593425145587546131950319593322336116894872753943244884120039773678357296234787291645448203629710389438502584951077347978623488362714252720198177624188515997396172325090541419212858090917346421873444806642474035545792078735724451363246565449290393330663805938160747089663411892161978542100536757640698615583859971153601361861612806578868603640213790058278574149618128924202006205847997166266720803970873112655437488692158172097289221902615108230664558403544656203068286714578259529137157124964149688189081265124891447406833792337231218029349025698555872350742490096157031520355126699890756536892187379531286943461290178348764547396470270262362155459370918615994569371841338218358968413829014100640473958551687372525081833833170717663843115934821368679009234620205969025023285506780044410239522078962500468615650164419457362932926738634411162677244458842999927777460138276334008592381980383873722094372013320322183914396000965297925348393930299488573052763344861576478396914012203795387972371245046147475096553846365844966301931968164113692915721621967395898853911686048473853892123193139364023459367461346125041444094183472739946516880933750626122403161031971747807451535508118335093788964945979312538775689856449595601307252863519863852609460526431410910158125976403349478653265607388883454671145598677563547139354636570826494749630067888768018490816662078259761723632655173079760753575268121592613034972948633623336066066200401650153154315038242928315890021921582084721924109786942032464279571714274147579359501482786764535325114730210561154723241310492690628253789552792193084326445780587802069158457516541873779785051770345995976599171928800227677821638758634359621104524805796164523036998199540632752147764713269996909932901106670743747176499338414280144604410007456991835160739209665497762812409778026391786497777047835059714347138952336018951024302709160722053615266593514621068943742766084043293763877415093562873303198292123619186027803176735853658766831075626963758372520292369765693416582738006568176512793223903102984947817025927778301317411196405570931272816563660201334078334395141500165746913523561276770685103263468142896139696136698973836054127700267681570395741971190472130199097528372843863566817975373975565921506796486908975260117073513700410230709163256477019670185143425411995160609030699234874218532150524940711140272634396956334588621541631513964621522112821976350919687026110819682817345563030538017881879824367959419569908238206528355047679231621952010555715106126189674047647381905775925234187437739473638128095717717523541038607954629919313960678315463428743952168637384746927642567266550876655443002519631246094819652584849496464662005349285344272588955652576981909238695750398278292429514185694142446530039861153796452923786204400748934284802789038787430808992243175370434351306859525800310186193181121585657331286350426546410837411097234633996724157593381302096047851856156647203274934322889066465849699957286109290799181969408606197593230147033668966012229746723346820374758994872140763349271354236935442609177136029904805998417725304068027061722958267361733032125476136225304301467988824405146331372855048124759047417126411779988842690002198276720913873633177003578331082444315340108539959087515294756052213031595328226018358335862844385761385941487602582354668104884046021133830953578693324794704642115546476942324011641958030960077813019476812637356054354686102844696179112365222716193942966072816405620804677030779311763934738144915692272639076412696956582782110866365080474434561462765100716323553610951187235068851271383130900815130344271593751402173171038482674309917212596340838272005406705920774497362448830164962243359174945105922462214174123819577943980011382415576180462721441472804982416435557036490084416645985386172655174977564188149335753925762167727337944374030080896315398411072907646385143620242533912466276755629380539675448968357906119054752884255993034052384100381073290004483604119256033572016407325866118579820357174617853461929228837042121030610775208442662426484128940327658295008713649161910737336694009474481590039530026110223216266385470325781285876228411764091976445917900629542394701290283845441648527963480711117016736956620538996423548691063986074453469684348744060555692221629229758471767131347273610008017990343439276512390067852742106802029504121158871367470919127429360225401752629402806195211343798244467853421459370295574101304040941721347195645189276913665257400915990240363781679451335275949785246923392144506719086900750812744446513103138923893097875060732427259659795978320469938161641232467175768443562477311798901606974358642571112455711021645037857557113334875213099219959030915370268083275429963233521996254799657024831055847710127779611549963702651978138862876930652563185165114806981656170881737514604646526881100052110487835660983915106965930625403745484063792421831499195894705312767890543691140491138852561234687464629854576026154619436651982105154597278482269301513488905460596022348986849566361938405113187444515673383740657870384264520694958244896603029035908442907870362126918320168549927128935314342567672910961927648235448548839749708452214864853162036088720607197906578977446147985785971837239306659710263124535244470002160485759938747013230895362491601087008710492839093733652284032907987178086336698188553338001706407617407438404807231814445818338581474400639720190224739688839862420506595981101345239883061612160649536798476574187542277728413445722594502101750443557784245576585161674295496267867327940810069885119945937106580197045102277357671151812491940955910326537749777529917012522745611291393954481498574290300523078961544059625263898905014254879936043325531005682557337366146516103852017062896712511610966303981974533333339958636851892579148716981170777942708044697241886558557671518472062974547225738525499642183605350257830679140068844814499816022945535165788571619260515923055985344918631915713708128545059909301163731019471888724590826539324226610734114745336554522547255221670548877275152153292309967063067153194152950215890585829366167027498632348830504183751157970493590773009712980381495091240440858894844396129716410062626413044972151648601013468750439271216521861423579816419801004515242311731353918783205851101247056134609915790953862876240730530079695360464179574635597442698174079852075944861691743430596994591727918593993466274022902923651007419018724910763814491648075278405634019580550001414662144361752102035143554716079058559777098941976966553818168534695528223994304327782318284989905934023329708094962928197865164935195210338747471062561258610210112434505394833196959314267439231158719325008357641788372988801358093255368391547966200361555643538062561583177256863950536725633230546430515422774730547151481606265035758392197386481860539208797683561794996405668653934308204312575220388471280554064672478226970053425744612520539421429220048942926647110506572187243524996140307001175345341368406859540942814061114373313528941360703805058022281051040904609215345207093601822480029890095376947951043913621823620177361220146443999678260148197935902891771338788030690853923676303506228681302204561683930466849764011283825184973256626644283119029788325421152544973064362481637842604345070730814609782640759062829001765302954909939750865137952915633228588386282805054948853374790739445289358149376037601431121486946260985743121774446341568263256809692755270625375900658563212817822036586169714786995379871757753525777535071706311530880086670497697202351611923192880432143134986318784052142138451323712564110277203656318162332721853701204881966264589222714771316865699743745943072422028216884624517715676131489978454089515068175794226877518552243671686071620327324261069342324637109291927178505389583047356394978694175991740255478925212804530863567130771322408921340725344013777679128078933998213431461419877820003263139444320599674711097038685045051784280163927282243033253641185511267733474104482136925622124148395920981246646473597354275173737353615527646537939008616540325413491163673289214115307651938147580666662885314862394728299264516243474191824017324089828281024875823845766519102810551918316978441791275005888449279454251181467098973660214460857666983695361407412428447380180822894744101344859322940357498404675547138309638340152649559940509488691459821597863039908638188655923887056822033024560425452002010477874882081523176173410038812792625372697974340919027480032473345158867047400865635537930484309516293538557722919125427218173958875091292448699535801927429891212050486026265943487817497409380072501688566890199304351806420707799992526592323843913039308521560114677490046193613088048421538203884775851988001976381788823020949543676128221148746219656797856869215812972651469682966239998353001868749119330219099311974503256492624178668812867799065483178441133844413687953323779214967165663247691134402836978473618706437421971001657204127323660210147086037942649280361132269000083024092422330405329823073110925631006050505648511960995044511932410202493272864797533127859075612486596003533124219732699376653727121603362745847697113633518381819570491105200726623397540800126414581060407034577351437917825918017575217096268981595229671980536118129677773816484508650611018832400404469016049512948380586772243051610691054817288687606238515293005966650350793144942022892766343202291106972127527645009059466295683985036126212417236059262005901310538111256671573117245418241074290140823941217398005215668870275935613258798752456034870518881854075202784386507851301796760896083006715294524220036189151421788873735088141666138739627228622862840315307418673194196322908143260173938867682200685213379094172788377515382202703275380959365743028801774597949389821071208844640010404095453096609196752605404602429731994114816477805985582836100197008483057488698823119624464900766558921902459992084566462313069806434621170266075466495168934382339694460275216781913977075310203343445568069944564226032211642782945855012372631138585191551967830163528386001188343365671800638774635608351578518598515884405974278116529874664756296015025454935981599916753832975569489484906791652435230565626335411308005516321268508118172870079473993609742879939114150049601021110323385364851159707768286939013610377153533996181762824583686998999588700749697603605466945117196972332236587706245723735266378390465437102774597509146321603226576692855036309082275953621839826716103040199458117526871968164163208554530872287653035990414330006027606243614510357372684866500712276818802550896895791473585809603253477088823311070633181251837925839588325766052549870493542945463669018261549205567202129524191587132115688871155348917011557685298636665900123145105180072024991295451288629513305615948501376775023330057264730223177001863145185044328912490268158765816556232815151381246669168633419452300184654632879761108162936417490822252262874978224018525999742688283510293262679177756065485389514695967855383833172533210992847425437504601514144610446871957674303015404983119321617699387177714292424590619496184122120473340298166445634526507642671501364648576612932076995733122508307130224976633828023866245625134758102810012658013932350981389954513034831215719809497776716955980003302080652046894408204580990959219517327683904334115252540960622300775781923748317091446442077165179897129246020522418743022740545127189274332518535297206699665468155693199339357310070134137865570927740749828432942188974682181108474052029826129801745349012590151330145146444117121244886943965641668870559971110231217899326635663677283684159021634777615269310601170268453699727347872460412804005330766844361877148470994000737325376835503055411536592362317953401181506040016883632032238858625626712874510973335954507014974043980367964617340926273581673451780123157661137401892341398503626408375307854253977419142948183357921413100492236487728088228036353709799646185634173089736395802066853179819735433421905225902957450869716456434478310008815647688785791100250443078777597264460143615362608354533762708630161846364516481167890985696548271471219793485868667234086094714274769008728858416137143390295338841999180504126046279813007238993151554073944331068026157390324868273848707069156827805389428675301758087063551995159031442580637079090595619527949224785978194976662058667471587594748688748575039688751085290410536810057571464510185657973725493097699748627579199293084876944668095504821384037574608805842759947183381883698810729676792013191108958886893032581093722064681261967371759705862240511180385059440703075978668479100233316944380133750503321098914521127175128258291270694951257745248016952255833228337040707904556526134590511917772721813024256791663728064021833537255193066401800038870350768147049459320683225854019769181010225811761732151628740289954939354332136642381777009065724802152620617514114038472395168474974795288741948389896327381185417687609422216043654841593495160937778189023029518994368006929101122755768997893873898220931642086362524456567985778409776486720299347160166598140141802338519479392436902619785132918704735806884873565402999675834833211103135346282584217853154274165144359581698529585998958643224151180990029948702950243332287778366202105444466069368395353604044378297200911014755887729425639447199750781706955849782091115928632148858025656772704761296923608580123364529712115344451128639430440913028536969303495818149721085720934594624294916465176128073422439697682863315524731256143436161602828682211266696395595811990841276296373578063165334053238694660669573958237595140851682443036003395814940931402546328129406300926365379306005386410668336682373428610411163789792201008842290017810382264148496803098300313872164403682720439648005952032999225875866296409562593130497292825775995683746245159093871127486744872698364578450126569063738809034770495076364535337741683644167954513788348062822484697942354497134308987277402419696009589036681249063035880212659409584158750316739571642832700824395607283194220017723702566516818214094088457168716951255843205397512533101680391860941887246085843757021112277064561325268525657521489565539599870222393978028973837451430062408333883154678693425974373485451660069795023616956153583644450209309610984395724988904695282655962519840042844573759359175936851050078040538995503322999654226548071229769670476959420045772757088215725894730918095289708009459039565309785250657694165903154566838002265133303444412620766141106787757902556917326294014040248380361730144947748281692338202621071959124694781795805754057883682203634644777294002769357767515445705421059939835371156491380294599621758885799632326385834071955595045589476510773504085782640803606800987214304716130668904194800144779390623756226712922289096205934461248942464328055461589239867220920870386714251442562520152572508886035358926476831591071138645987903566888053262294206294709029806921288306824613020810702277230162570783150336508450892803486328854393207415114850724806616836133435861180453686751263879511238323051456619282743346630003701140061297089486048187146428271887332488921338967692002457305718311769242349029299611601671258362706827831925251036653183796692266505571207364127695298589623594392768895364191032653108744759133895983482433328073149126579670047022072570592890028595636710718762409920612023459791837009041520868000245176488978657540131255236392240231398739876758035449248081249363347783234880231943658573468341174116078809859548377372061806320021444004239706462862077617858000181490724776290248326471913252040981707499344987380560304286883896035634978367448087112725683381809564774028748736721347767371587306849383285455540311976962290088317910213680581799401077615215145426314898795459507854397004050977575028969535875294224794733950907638615446381509673751135437811800865405341473998680006099970260891913755142180757277727835179362836148430747031423217746868780954607527172018024453874806944044904256972223823265027950741926076752017561262538553636458204426100321175422699378582908598929931148803484922864009151965680900033338920679481995984714856515953121495763148268132447382535760996504485401975383733436116170882483197402828741312688835128288384372908113503715338380968386244217077662709676896453690397843800867540930048232777394752920887038576987478302972247606963635746741708151883933957174784172918256413551727805153755699813448900476382737191560695356529305485957640135455257453840391725004735553527915592585946090066956230055559764366625287541596078911189250878196367247970084961925968186145002169822845543004259193063746235211479517784985702889532921347883560199947969211207016297775636860111799764467426112626595949791755178233563778077288074581916166028506044004596932672626733663197272708289552159790495600381364611346501245357407094452519910976707501581498379459937019794457941077513615800162759393407513408052772504124940048021354610409344231242553081839776477945968007921804689717989395379420705910918242359804769187755211249294064788387263763386552200807050133016552490998724852219309340468625796226361326379732147761338450535853182309426809653206930669038343078115429304817084826890543091179629929107901073197074581694434187866431244131843614122409233393136207419890358017327523805718502249818915750904561050412100837584304177818191295487693711485867921854352861428740088583746532545007776378978821249038986440462478431629279990722580827038301834424148449409170159185363795605439419230493632904442614448097287977265634231060147562300817738902207615379034214140533567877118901482378292258501852778878363105251799260605158723359219920628254773023354611262121536015206112055998859157916077283232797725326182375319304371685488454559027759478914926585889279323197346120314458821723205027370229854716636505595637844652520875219232015214165140231706326050462950649540578889957001921819634042804795340425988694557721259962295367021013086914018006374739939253537789306869127308945428422514653076900597238959446254402402683212961248763437956411506982896844360725393706900059839143371332006892404749802163612025526102751242738923648137872016248827478196035564777686115252038041965798756803693864383972031953477956618139680885259936293248460901913711477649712655786929692899914834249661177747388535032305070126517256484800637518836775932525330199014005008969693404232575215367673042014447770587617646273661665178864063934896188766137287587677835111137340967332789672180139594598106326517759649671401399482955386185063107073831396680004665629663411350049560712288712062592181958820551872099452681400971220756564994979733894325285015272322232620729139747069914275913442119400590102133722091595206308447398134876861295820441381917284611510419161767490392762135788775857705933224906004565168420110930364907518024280852690380763726250502395773429284674709401402345646754408147470809434698234929528912891517557045656717409519594571419343434471073520616492673236039956391474728947060278429807353964900770428233388491149016934012070761853224861615737415966166582397863014933145679386304199248861512652692248158371822297871121105231016613219827781384755459485970384954460551927839835356087947334246989412764388396482014464497057375715771551578173451446986902392356082004660296109797239897899806931039470915457474289274927499984204325734440519157642075683121304012748140592457083549398136505071533444439866128659519628264812499416444915754332929435246725239600539495936829632240233224561553317265140854039553808434805813031011610072983103695167433972923120849166365553391629630093585446994194116024923290223236163038187282751201302903863099859397644731946324757136758980336075019152987359792044263185798860048056317855758261224988426863179794923635390524380116130217804085563821015293306147542112821538710517569062658297359770335447276123270969339404397925612130906192651205834238093223100996013924386719246731103982019733484798161379144060271244891125952598341710775927731842710349809810086512302921082461411762565554889240154766707401573038164157275403420440124713496375599256822741345609446552097680680474405889436124873447431177484878417282066568243835238200585556111787454172905453982496033135970077751082898442159415384889572215471079509912865106649662456448023086580377626765058757913873628426856303721835724972106241560692290966263796673044431747051556024900288646590234263228597451608574190571801231597987735309025285209312119574034826385849198751286934241038013433659857460793633938823174220025099095488601761654171621077247128039785901920976099484284856779161978973988826962584102690921964885516712596374876500286184819333098201318100130885624152042657505972871978927923637591701584268385478807268023457457404203549852747865537132730615984477263818290881507309675705487122846186689441022070059163345743336109410636882616887322264944358108577425444414819253140126029592887539130451936319658693892349087501950689228466184510571555509902598224720414494858605532343303349847993537306192706368281083849506236606797773321018605577277184473100126726223061595144404123846795757635817188001648371415926108946401114563295726139996690817433469901674537193435865789516140591980272291206691008611875264176019538380087250895416839212074613591953265915474519457357072222569084547015318586291060062039272538996415211332802686152631268344132783141605356043046430192465406376151792039506772847862524548433535957886592138374949122733678804049287702353592858771875190265254760208938513152073623400781726068593710867046534063979837693832945801869779606756157049421737835853351371962474403143564262454541612989926820187544529043953375694690925095053017102079737094942363438765120548821290090465555427092963724440950367264743262968423770636030539775531444035142813730958520209507871480366840763371194159347477183156792676091571791140840717673035070750967877985421888441024695463890014301166360179910709202552987861341422185945559704726603218414141936790583030363753185424772349450173517970389515703480063437909226364642342207664781086174870930827392796973107101941369198342040603535223491603357813015681999924493941877661266816787144639300214386129287469094873492989000622987444957294720293500456599427618588793388315732608557306258065291524869164224503681319584992788807692857073001096076312518075198512631765668073447141578262291343916850180159679259346126170464276194547666810206041102858151298284513455104316461074266556106830151323665961926063427003207624692246612488103829973776685106730659802359080446134159120158266887398048487918050434026525722028608886661100509596802218647083696919082445343116954204189237577919962730241740717205869573830062492780824428764237817572922076526062650094396431643136544272853038172827023764507994695809856924470859961047221469442067572479696521625480762707721116549028629066216124158422896935560501191437119491481167573215190051612038615548377132679352896427412428202078958229906799745022304303522407537826584276767181489625717575396847512671489068257822230038142054635225869299784974424904048221993354242169922094169383357482754254742363388380517653306652131005990904467121054855558384518839546184159420339688211055090858252662021724715592163602289715201895492267876685257253263448510547929714894049796110824246584446221230710058109141838582763993008893197399108359014188504473968223275066669269137704710336407806140717607734317472638348706618350475408653591527768062086014728691937741871746468083004416016309957220442267625935291711024828904931319035697953860719066178075317894673298165223618139616801579759581372417019822651001991240544870209178269071657590064690650328375190030938948559451017883842617700250825352131043806043731410862068458074188026207653762787833494471240840111006291500771578699401610781141516052838316133835092667880954182862968925378819839334038946004421916429087196895903703457213350857421831011242795618411947756971382420849915104332569230391583419352458542023694387279573111697892870148366211179468015797151161087299036451347945679738301051217296599245184574090543103833772124789927127008794833882286607132172116854324710022717328735072435472182709392528718592433359992205690213598193062399849946113048573059775586003605701024771098427107064500599952761596703856173986343655116323954784578330821187581347249348029184374171020966792646217847431078271100350926071719698060435421108006552026409656647928913497800013329310080290184403388001414119745689337840628105723411984105720440295239889925831788409459539903980035947797989912243072501335648523575325177218492863255019413027962525663410892698556560700226996177238157107007214423504285159053093149993308105778105868884814500252189467709723812316479479053181157851193961243341041439225827537135640194745119976105848847319809247894316072056835835551385569263567486563509993041282751323261907135675229529607365832898356010576716739669519239419014892859348013737545294572882818400490541860589430586724945343757890007088405493251629333815890957068203153541703125653186428219466688204267772398814711655059626541903776522392183187661937780260131283576835116585029569879979499913934766429156944903477322352036056083409217049294385083470365862944864025672000652765170104317979991222914528434987571475125997469013130443532522550813274587490163093141091410040200156350317678448508392995695806191014631883930506767169148603266916727110212085825087767086875310854417006018708096400609034775618931965606338180973689780495424003173569161674492212591239110614537277861930583878169955315316882525745985899822578158651402168504678017382178524236209990114611269507919925569658843721486795997894455710727017373320074150876640678833362756711273871640282925622834684840002792867325265799483486636620006855203763491052177382906694057389668533413608938019665272867977740947681231788891406352124557139770190173359607260607250163568346742109564273427024856926569390914561990929440760352489498979106492500639072176740118420671443897325015116691846828878186777689916213030066432403289241524346017931553547560149374762155342204060397264648763921398281658702356931589058395705341609927314620329068181235476257667825794941692352169340572091634126503229692802303967158326294925737309617874335541885238334516980603007166131024759497168453750973868902177986055971390898080691259754655001372765212368966260291914526577125537690699914622296157809959482221226150528627065192295500116980291020757800974116385678386945406399129429918901176476477850019910364122838790009748381191326610395938511206497086939673601685966718043883442141536175463266777748955197467486037901377792824356526793895428946508346874748144868398131824657357022664489733114693646842767963829180185025620419608795909099869305880393890062995385561655928759598164770842098438992441152819396225202914222482883925511654332800569663017186053065396168289223852860118230886791279444969608590689131970954134458459626713700592527478654556761593881599044831831226960893393801360773131806713414600638355615191917722067343659668704610465781744415282851113237733424033112685472429870077757378839163786442790353295995167669094994081001761457857867486621889208316868725015809279941119590816959576893387503102138460431452330828332561591678469385626874121796386772168433297179483274144772208334280892821172446783438363002679144005296493610921539530963152122148110931248510538618239641052143031732919276583162147357326245118990423265918614153671883750139885404168179633862404870791304765629729461327784477398149392588987991391245193940215046441532134086256339397290060487347939469866330143873470463234226248446343534204478368927036581660081402693361978477972737778784828806143373591216516520166046431106320359598960587260627261635533481417509591973364026256996557396071061634878353774151659273093461242739446223605072312243843715772916093720536897316540086781167549382469147678037667204375576970545792043849858357962823971386598240244677175658252109653476578053905225855082039214127557297257142115537988408648277542965548727225814088293588100611796940726137929419282522307430769930075798647935967091496145685739202271837359154713695972034335147921843488377120382407080964169541754521888319028939105994137727100879093035997919356494279557641192287211133837294514443390291064569549876529324721178945120201472479969170176729319955769747327574430926115997086240079017906524719480851395634332443578019851865145661162008608664999951609327469602925737607461100712888661029995315161685445139874605710044171844228215488585126012887335189437889225845487400580088233706766972604123019352551198754515111037422954369908256532377594210760678465675826672631361213946774512537810446669230413865917743299202676589626817407260030908545210175363563491765860705689225606578542471247740952672256161966177743439265122951065625180854918229358102982177873067477958855097639649534557415091360256709424149632844627852790214734493088007110455659557148073370834127648079940555768070195022140366387890129800662419896596043778403810370262787967534399645186831994221349627993689106492192694365361909041609150908151231826049034212035611577195237861798776309092867595721207738218537715563652033821818365397523136714412966604753367164056634846460197335203364244880980311646385740223673643190830732799592205445461518493442567614666557752701363700933970859209180066730406317841644042789034062086542160241538446960006218393879923675251288377705246069857923053350324284749695124321966664957660292296764473136766754440033357679936718139819772864867325129150738447916585308746975034148673565961028134553202072059996343857868743488624309675077723078334800293230371120787682871440169254545426759050965024221577292232035216041045833684376628802624578135047152620379285043360754936549950058273667860198160200376638779600207459708191410310840855000134523876084784140689181831599798403531308452119146526722552854496760588636951450454825261441034188064153497444186518890588086201003080698373873505013552691510807811871655685215794625854268571205860899606623431850369117687859620228588233071371730982713120211366465361199410085175373914565153156044660454038351854961725407390452191995633260215251707907451049228911421646958501594517372000228563776259964566555836378843686434976549778384425793190133934537251042199158677848086573294126723649313727096123709787033951070394976569846280444861177532826382936809192353599012127133258236891895567412777984245186341955127001647153165209002842562053378527118297710504820883576811237989627850718465626235750744876892495343133448859759639272605064390929475695612599847447009268403931127563026159059433589216663003342621093282896339508632473259497715189486725990069699817630737551890285448561223538766204879159999764140673313312295155157740956381101030272757126962718451921203201968289466901814147626783478533907515384484515501026827889103422780231504787073080363507973118445309692691056419501147519366564868721089646267327876679598958330545441198783700162588031344268153247223984175657560874587066778097772225390876973067449378735719550274113869220566843802220155827349476019697937796892542104604549979086824369233992335943557954261721476828018645412210493468032724009558471645591618610714454878915688575012181453230208573514169253854857892678345379804121930427593888099298407896229112859344680146339816821970802554206091563352326772482362584037567513446192564980646163952067320211226222837722033109749732897013565727345193615841880338808497343022407609153412102469348127998810741694499714901022841075223225197380704364366049059227399263944850897282944574346138543333041020353541819101109196715351231387208040584894383388960018642288007252493614259431528184286107336812081428772858000810424056015980234781383321572464919091007237148561904614005425633965185500843820099312409918367130107886407782730477439326332710624575230217274612926474666550721848727224700906185243596683212859121919377493156354667390011290180347230780001865837908774014874710621266255670394507646737162306128833307272149486562229975034348773957067491374793152512851875360972381668205127492473779483801032829363455621227678991640888211327918395390302846097568930822654065894411818066756699515610946463983476101342221578429551014955867241220696333405442917252281832654511628397234897767413219750688762812871070003209327966112033556681893722845147877444822953697769603737781272045633359533252284900226021643348122206515951572853291134320461476613325014056540737719416747052944958870434561791071277506451425899915518857181573820701372655715930616767113712809362913233362644219169984620134493847718659606543250763363963108518389437868722109468385150967800940116325511249400576030534453345724929371143012841354004790181173475086214988392661602914215989540245389148451079417056350408942687635847142367063447953475338329086500241506458597360945191726224434247961216326049847236581616388266926539090439094602699821870856392399093694655309197249193550268117628903827631762940497828902990045095183471053132465023075380653900197980427051471558502693518009771506783491481551623046906683507478488771251034030660083097331755015942497829708292113638075570673938276308864974519269374618943053780707673758103970530649486279130566454697389859406758321278976492236595660386501556422551570418754939065465495826442086404750569953595248257506928683575857823645737170198881967132957825370647601097395056566871162678974975555059053708357280789050260087172839291811236677572351090171958481477465129483610584943638547168185550348196797628895987795959604924126102561347614778207567979309102915076838564653525877629997410974566257653697140837035490985762960142593595655654658910999912199086630725597047913668143985176288977590861298586681052546710897972572459739256061578764335142559659450447034766227650396627841392300036845250000023677177848755238349731740531422367891789944048980970858677429837599186860805422103010124693036278575297324071285945407731486541824598765539190446220346539839018752319874765731763431381280296842252809493951013304500963157252511753615731215398917548968155723107313874451365072947843439353846401984557890274688619645487531472665073917690214801319151124709134430531044314416427073165377221862659168975293974440392033493598915008103744813641221091359267754086954014677561330654094865242480738031286287839957987215733971124967587596278903818162519957948715904866345474801772073801740642100503280519785180134798629617170411699356683636602510680256601028602508151043085489658312187119913763752555459026898822053467401711435137654590901433358429755523466774577971905361637333781084316746488275771082660899627334153379801847040161873309992836843524410598298771125010063184453944600553940485802786322268024912413274047942181755692137339847410249778394830088898770614285571096668508172683074243058441093331412146706527992000428908467687447536860944935946045754059712650113295897892993221191335673462169138139822363459881334957310110671391218092663525673590589839844083706399523395165161877539044865014816450957935882806434827569884162017318663890077456192355917583864828676617573466359256062775587567426855287633108475631639066549259360244387708934884748278026874836572005170023012860044045426116112514004733146767970718046397424883247778970797294452599699019211012320473102795822127960205190984919006304802867427629130345115509735448639406460406661282652290163543869012209448815286590725774782693694813957865925433525226133609154380000784750274996489816609498462866786274573349275370633971072808759344383755848534930235365066157275180865033033224455387367816188723620331976748386198566552837890778360887369549852019253198036671693431468128592485520048218959095979849000653873154966786156927440138770200833295343007215645236346244510717556837699104091401053729210033381701808526548313794122068814781006523453842412209146534538708770203591713425502941658011289438920421215400859382460440290508147317952381905373968292596676602690087976387297383461977292908494769218911673529110536823070154781262339710510784461399453345448106301166470407492443072332778303974616831689377583600290924900215496047655092687135054419172899167971223046882542046802410264362161653763341050439884353926858783490205278092914533566259669026484697802681650702489961643857994391080283637506630224926944607062242574401835817731231641772283975981132443027528339299052587066834224312126705002359981744020303477027442193870980327351069114424295020412732439786534024880557234374566719399587889212153620284273040223133257683238233791897254408682998869376094365703522655743459659137475658414628575221449598807516885495521229956407006104801092606836125347642184401623263393175554974400477789529052215536358436985658755838950333429796831685781400471897199072438909721031460418302329951621473453070907338954918588384245406480983488654562447070390466616708595809970873954231293506647786983872689837004851986577460122034408273741375594548104206677741880489240027325865729951878424996576175245240703023155525303698862727202128563808794889517319235003965128675113127102499302677253909220513440857261864946707795708176436485155934697949336339223050516638725489904544863429948435294365532903255367000996297027029310203556531819813124742225589915160739013793642442936408763686777856949554483200092942294682651053581102725746108142217392132820380095476547757414748981091576801559011745380588623789597105123959886373839439465796156308623238729436842430059873289872715601140895034350864261644134667168011015519977066038927401462175121077940046767931113277021015456232139489808107785554999281776782345720192179180316292350924922929470267826473831799360482018427264097838045372179493704791907904583129477169182324552949133345418596963896104516976867843827517980750465234489765368560318471505831282039807122670088203090509285912797537092397801439387143926435928166198584397991872410480987074223324828788068784737642130800760779956138335377624114779922805613835730465490817750194528817647444503784679593658411428268320843840780003643428846224257241327975185240242890050437425554347647576877591517403281972424453893445059618128616169770654572634823878489903521564248125159840047040792729804460377445853008613754597356103076647320035301136812776236318982859292916413074043314715638407970547430441026646141519404475571161864224288066413586163226059887895871008542556060702839212081105433398466420532793549609985429417208309517078317015112786447052929134092430298694881993963549615310808156966318206785720531875591546761188239069769754501855760143670674703344353257800032793686965407386760540581717425800898590740452176527783946843741800531471276972599727477140567517879596138685877823524699636278633991160497649325961791580179935719315873345751838157502352134216979486842458583799250007559817289501488533099989980122015940743090735441863834618880573117019499279209163906561399378830647877384478552200263730329575767179182081154021541015642402002657610189288812315196098074650646966246101568706797092429231234919473230383755096514958121386233700196163940125916577021256579736902538798731684390028577850549704348624648471243333536955412401403356843414069416143565351881575335291656288005791889763525970303800410161983827977043322316567638756171959323103251952404824963804012374470810713803449572543705210529946367484441725504058634710042252596409830733700100665940442853057163764799827360459879040869123085282275867923389228420362661326275369792051534156520692203056478524181879249351359680833192278792650460055442296518524472373067438145773635719045617706911352853619360958696286757839506221953851759551100319908342015620205266990410212449572096773140118223247986258762914325211576509233620206511699777827161023911332603672281915553883007063318285681332334151047679930540547237083658511511602325517717872943119401651724159777976619624020461516146563223121094457117067796425087741487512891964675790688108537318720313930776178406755325741745359975198525475466259360283258972646947538642096707865172060593589675270464772954483181099827980044913776232930659335160962884608564250964094267807724754830603162393374167678680434057274386064124032702534804865129346836200754318846105471052289344878712688087570339007533933981437713242260347653487765266308088323225830460772438498905235608279119129080563545990001884331381810221976322844704713095462127538551508551897901218691757085385019336285487709877915458515710250642343818673666897915181712638883744581659863957555984776281523295031373030256393424304358968614925897137092642061821412254608731964942700488621257790404704304975016231536634715378336391800845322396236520115416333980723485881616841400334080458797891543674679029882256049184567939081667185684737000324730748901057606570785781754339699676886196357418322220680439058795528750501070428909617590764048167985141260724134179865032907594393452061259048801123130352284962113663620139615673367706428036000515093051718470372223403278717430583762394772578399924876271785619153021862284418984487612326770097905599909877605470055633113827854959294393092230207413508416446575997819496800466358537434260398884220893358839954419671767605176132073026744571430208606120192799638493284394862443856433452625348275228264057925082408165811321765565599933818390414533508134070541770427050589839938903042121509833334790910648431294460751157015749018140644652059374953696308559529744334674798736724759292205059845558157105066189434729970353564113192388354828399920480960351141632676100695725730896524066180162179061076459724482328766885779998138354739007433438211626346920751073597963272191274955267637906567845471934801017094768396532168917709777664360580115101944195563453766995866068904207661115462629519876845880233101027189346256403265875544481712340366162721800484541625513976629033460534694794797719809865774519944350150957431546956043859137536802961004749731971656100000377122411128156707640583437236997824269470613114755086829447147953700994528559095021212986353056211488693792487620278611731213932990753552789977641002688201483344287288913857952921668185961394005735192648331657763571541369615802453075037395325972562747428740797432800425323780093477544111792051004311588562740471876425378673577444703684750653535758920757908571683599692057261070802874939225128683841338768957316010026886252266781326969526859595222664578399255318545331684567000758437555757481701140900176498842386350856275448201005582841931467021920847070260022883598888507259319956587294427291808435584831480517695272901204035676370347079036163936133556760184541233501598903932434155262199405479080596177819845839349615274100640104599259445609084871315878197364100721192621621718427361652368923264985543871497010995618790301061234498172037350677435273699048063218403487237969794693449313652664585665078430801774730749294110306801974967648995469907853146251182868148575838870933789364181751122589488176286531941981440888034644994866326648033101428853475500578536719153385191419423047815945906833105914029277914117473474341050892382036464452188187697867045489085277978825655791792130780948850582221536373647859056354859244568573504792783899577338625975634356636091423432280790874591828717027409188267451350242608511430023746862267797696844100837207979139757090744218370596490666972397395501646048599150010333298820668567850124536915788277239774099993432872584344178378883371890821935409372382589787905458448312649393179282730490173135649461759159803527411972118001929551983721442721109363251501256532317560468785905697099552671087319741811967976297238939053625916111047414221326898872836480082715756009888158517555624399722846782120495298685406591348387121186296497190147729799678508013768149797893141291988465905646402092276248629057801206506055857162845397814558104369169210861412707482576354365028988669064893995240556436365202724488915336864483006784997383588519761049231080038743155306016410911615641435047988844024637562395633251736264590500060855051876809249763709208627557416792802667424668687931086134607716285591898207705211378548368959742534283516184037219069425832011031590515353042138359592206505103054264396126872430890004761748727430122467311454230276529588501145907226945549904404539798871689263049602772007693713551639722614390386793420633470183089036539903122954073477723898705128128534683931523443961240195172434120352936063404941485195113604382866919217906986797599512101208236036677825142369629180509795030760618480771095400830027103639459269174601544119195340504471164503223211711999329027931522222474495908183545122533672395743181182369704315273436266218478337326286762012814582004240034696682341377365484960652863365038343183404042573727981848091762802293540550458056688378044818761056483615093559312557570666400893150972711409168260272845190345213939964427505370187742504082129690367222475545405871203984050875258699242161313839062055543660464537747402801465217524675648290384083363816040876024804603949250703093000185838548012708344855989465025199686171411992031581696533206328943213468942783237911246866380260999448140049341078351091368372102810064217463347507049132173186793387196068234331068095110710722163535540092880250776978941650363082988097509315528369551766392475546246731008661027068836190783384658336604592541610990860279258246034953730891198081677775148685125196694120623432711397138188549092149462896580504083448832306506220912898998754576835112862923034518039148381034249355408691969142801638804894136566846374567689885227316482383413508426462314413439665064511569248711089889410377480157168963850508782997776173427602021891013026701882385358703884485472422132941715041402593194940561384405166079385353024208329472467424575470386675029741678641147755223535446086852153118239798507659997118115367443879030155279378690906771454697465728161538362651764204785661670145044164678201482604093091335712403097452262206381814945100497918813875479569510775315757932864688481704522003915764954834630332842930188096575382250110116384867928942236069204642070704844127506827072882737231665440948493984084276877424813751019368826309809676473916169255580633375883485100682343201774618129592450947655239161226678614742160433925569828865590315085731684031754843394731763221516712559192536697856936358306057509343339368818028333234926171490303002051201021909122022691980592105897639627241434917832546246625621621896455078128836806943799889210551752409939666529260036677511668220358249015078645933657834507656095853034882432932097879859089013759474299932389541727230153105042570434361647631019074327768619637455826207253598305256088193077037905630208166255367481260063085369102563560681460312495302174052521176565985605212960227159749697810689880579445340859808747892001522058921292149042551952345015295464597358759605064026774621222465896866262369351808579900744165248354961319786427964449107656203382444369849748792179063672933381908344792938204326687656649423740623402015345442280708129671637567162179748968951363203408429829465279926483706405278290925143461986476262859559892491551775306487903153543157346521298031637626156407985747297306198579995740928879326936973204753295694706138179696869249424411142223869618929947524560738959616872630569692292685859222078862155987358592237841200422668059804386943218461735391648359511252805211443630344867963264593188733064575787042485688334025329911601767866535653853420496628083572475945082839669304586819692153750460858072724239924979669224656385569753212111964150208040527403921139731013884043828377344710749535327197481087432881557017437867951396208761047740449742883799637838443319340936397570395013941708739504257583069321817919646874098363356439498546236047285622433039113158465877753308285092118910693169113119984185887488213787306933170243493944577724943174789034100858984426700549235595900500530687090223428212266696956011613074325015534152508103108344804275154735837196349942989669110407250109658357040654424797890910177288414289189945927198086422106821136796988759560524978959663700125992174875807988160114845369809104569404953803135398301561098924135037276440497793445420052320044117583052184056486390795415695149864029917012155191667402465940274891587201184368130647907997448429615226500338107008104256264346535023751115985290441546279287836069057617224682879485409485108932095375646111498928081032292782296919352139530353950710428126298743883405587921608152851562185818116925961431993994819330939214723125487567402897786380037200632990778106587430760693038963486497102887250062174771281695477681773767114104103042625160112269642905072792110304468972604932492789060239103383877861907085737818335540275561244289652556289692300688408434313709865989938332777622044993350520467122028625463308692599378767641337442748237464868550079998845005961630473424782064792664783446790688721046292999955583972037003744961617310879551321847613799209247870159849459655302737275957539731261291285800908350990173970722451695371387713281607662038963413119645012781053534422549837615394622335722412879472323148403177621008467557529100987652294966786842048091230836770103778271237282914228407579094660805975933611012703860421127520789123658764661387549715477168118162371587471968430897400765308512729852017414720996047858413779411675652099813399258438385431801123721825931308215806643971026362462748064965753731307307614400475966371197843696341874176822377977322999779260828674994527212623248487829687349744500750015272467424270686916475638818290999368801888923459017884314260082451041278523604266579884769634895221917286875799121467928830814369042613064266828140007617386221501619821874547556261464967678584033334658323249769955643621478814975153876736191102177803740478247006622646739730257040453966576909274078124236380748342505929838381612886744842767934052522292809172893222499427031997325813456533194066437947879601104633658210844643270953229329507146529665940674289794361368162195644609855749413882920209227134384853893822982690136633018212928225498046505294285260824826529913570596569857491427365423828148565800362305406503679603520008349505473967751473388287221875463498508393978531699831152590013615297579737312226399298218241628020188401102754124265406426300843133647593983812409056900097517821827916105807888180045448306037306606825158710491292263143243127591740685723046486027750330050247539035556165311797729197251138302215595955317610570681213565969709285346427696571597680844064163461980206529489124275386454493363052180101899631721032522970980281563035609341074745271515590317440252889557334298893399309319604777295155033457718229225801400713884986372276424745863167152595503898876850875791500083313438856763286235448629989504751961154963001935032396607935266104946774037384741595487800069165761603931091231376900438022594136260600207732079709802839861294931533207677673398963228050183503094294896644238972980906918404250956522412328386369894358118179169829522282901389114474397377582385579844033297783192581597853606319511412151162920417992472020469386510210616260098590114292768282149772355192174298072821242646509004397050410761475194066466247068313034383549300704277971370904979511395445918652575462127721709384579375601420880287513259458457581935734061304958938891561699644675238320363375570974905901486589611932648563741904370373534388314799055688897501280794967405717815987195591187478724530847723155230428849835811099334292417504432701570567656701198771826329611011416176436091738897915364764155445141479850251390660452797280805693238943636095913725939622335710036654026914523791322409196321674989871823153430591434782172944733341048114703231562568839188999245518897785605922743198393838443293013132538077539321407225934966847866324224080316947102526401557346497317185305723674844125939173815197706929649922488996710378330374693352297488827546557956204890259994999814809702645273791792430169007717694076009274119390721897161713226991913246368104792603193717891616273612716425301828264921720001812339456711797432375512374793691475372653897085819063465528212093088623639516594733980217337932502810425630027333069519413722736562700628789288422590308093356620110531560132682137150047355920835926915838269059731124026835912489757119880755651849696076015322382428671100924682352936808212873865910816023562506871721187897552813035790954814978538182764888771236331236380610597583119793834411126338060542066763352773933455143230214414779389861846377194420595580680505911724476567547738967376422295695699814360786360084033033491147292429723176384791986025358444154358300886011769697142896080659280352184625728262760421245023977665167243422825615193537535934992625392873048729921083140900349299886765335112499055250924779709666640793226327477457072947473063083290236428661630025116026567513589346366573080443564129867018705245407438500661241665504228425679210320917528193493323134192490377098682464737473185155087783693586277482656972154937502727549485612551421607510473613360309833250033695451417693150766632101369636851727285675249668651187044113426395707182296079775274821821481065334746080152095082912205094086848070792920017724428501205524127935002218496505708654943239317633458825221810765313226436350202834664975262097453258009614465966836929469410202709375331853861685428372630271255929711216390103931689326926184835021431695276000612393288534126146981608170967625674079065061209997564555796703885202168807738462951362373798069285321431364335807999655435054142121436277852041769696216883652692366840716891731288149002921125480714869251913090448427101067897397081849189983709073548684262516232801113491017634432114174728434121809471712121005112492242654209755836398240982835669828223376828848440137652379797470262895686786785578849623122067927278359980904272538738087822965452778176346613619485808172862141092719329235634353890801204406880792496778503127741789254650105904764709900661230097837192812267907811572663064405839671709550456239108616903272156154890953459550720117079530824873475337353052621040830457820682355215315814663724486850687870092502590196207468204688171304861841802713148425389757620037993843270856442689316951472989164748368939384273380638229958929005803990609941202779878289451082452355111859956775533379519142030410762640769531556784233012709270771270032558134164500192283993230651514366151020730721103213772849920615547997192248315073674402984407270792037380889840384796767227142899174755282923211767897002620802760081503536360425793025108491542244013734733875590085451189056390597539395883334760756556447871647047636281075143899099974975502722737049348655001651030366689498462556998895728142520805535844220520255720773589879488274489575900684071379168806941068381108163848009757163030291385989789610582975956916296400249602874757711853218042425249117046639598570959854138302839397988672021417724279165052285412408334446894024654540307353089559290015902485195324938006058427236709318997049583697595480968900393140729386076730927857510495878999508227754416845099100681043417147632287286215008790816777879577640510799837581683230407218934976904796659927346198041482312773255114526941116926796115636297600082181490161341229612776478294272806527618531600376967634429127029359932838926066372462950832244101896599134866101673553067110182761025214284795130881784140977301882106821537294126900662323580479792872016478172576296235724123657327797377138072816373492718354711078308145996980083481768201889233457303672294592326027917235636452501911088700628041969518664222396452583076518037855292704631136141802766833556017446699231804327007963728388299399641350254359145379821914935511543346995613354286735440357317912201770624501122691168840493765082859663945629023321702627900822642514170165908593203059246350539807417274055140512355830948322070426059538334801761885422809516683966149271745948951407572786323764402669879464334227002211561574084128643891718297157993036338185369841388005312348696866101877151763652975774789611342597592940918495819851786297035456371695155542328538853939377496990255100998274979150742530352907389452522788323410295243525465366135030497017515576529789764472818285798611263723489577573370292362627422836599198765533149855209688611889623639330399332853066533827437136417712785230463092083462203151438281784741683693836227120747570437379610898693432950047476781011404498878059411868618572022243874475353001049046009062745915835294808038698928028137186262472596349918615590866250171243385642133615161773382889476077989079789101001539761875241991404803315662041887074660085673537959842132962681804119480496983904498734130029066611930636236086655804238912024317745803446689713006632800504433034106126532805757078522824959796097674863365881243107514027612363578812410996083462308330922028561999862158627370453439659058667699204664092540245018131444720589941936877660482253301743213936129878779139429498869785840184137101591566335094112679585685216500653443521612708693191227417212814126012101177516123015260495680032943262358923350038830870755274261762694087173668328886469349142089623332691219245782774244137724726795661446767009066343210617823905102552626488330313712328843289387918532981744245551638225040362045015807365995957668923849151874865826804612445025559726465173729569433788358341562294270335199089503849062349844432779450009519466107918741534087966331657782388059655476734670485386993075088169849687390162386959888504372339429465083079445804590716974430218295343001873263442604233805871353077533535590235188274264530637062417753670821869830082024505939017539491726504330326680419524917590564045548696851943166564581157354691002517583726695458425724492766381613132883623637747163188786296450167798138130128136630430240140171384856474329972398365074089204794776625663402694638823589193593510485622135600403792146925451028387267443635379556062867961185257274169000911150260881922553371569475886090587346175248048370004182423751601922756628109418409654836679543171098279473392905558928621278281075375112200703835269075689796541838509077148837104722700608346036998194453410220374570671177483716747066958434267476266959936048446841314798782498377786818576284464743942473793277063856204269242869751650375951186599427697026232499711329449129068764590918857297230108877804353335414850423655309484735753443880620390744402882476594769922311777981360893329484630090671065878169741242509169225006070554895886106334702911921543990866238475106265817808903983971332595563321391427760556556627715742046773916845396536831858556990327825640526101797879272054947085379688161178889673949019800843170300352955756501416467756671696753135193174207524687345899803430522702069315592274970891175322729408937667053824050767825633068481096336302378741833275415780581211691202957024573232464004039183487857313920746506016978771722259831714807316402408360575734202954308714781975602852145585223442445873171233187999280372969956293207574349326470427359240359549908126215754771745474716697517997574365115853633943363964583723677590773266589605344105781526227648985991157876893117094844824904150919077898188884439241303985515825485153693634537186748090012836741769298917702304812575689608677023768642590646028439443549259486467019140162314315650023819607192015907258228657394558992535258412674124865641722496907229984545720365307694287775558216201429683613314891411824597811845041775870235040210648848827788976017898284542866313039768682820807735042516349876557170154463181012260114758850310048326637786265425476580072027415517534860720180023571497110024946828235143786052823265863470779004638854613413423681668165579581103159576039503787343893598425942072871275248919476896297612421109970271238024772110024737670329326113588994765317035031968174674065532869152232448870597263423602926838468579054794850527713217510770079909339154138646771773653698309962781847670658612982256645309496702495845388472957786188819722728038900742984956116488637948202929616242608352360958316597111509194207768511445075469398017496510003218334926947498593808367581241178949703334289145872925656058600668166638909074811477723829516653941549057520959641931883117480747558362434825262576514232016210241549791349262847382392815449934331478714075124132568446685322483457924557159314513919480465779905616642829701808195817468928797307382040326675782291375389010160614119645594240895334419285779123489297795061025098285247951473492510480269412448916232299554813967341553969461262246879178214128374994686930342317182507424165240648457649405114593314344558295314649398901147005258940109258523777286315452407219582224803123976287511268405330153774653545424005812762284252077669658484926911871325028135620280932823001634770716579552866367930360521270265650083784535529400085197201487907713199738314971045606690177648535162173378200377418780586308662643259338426072492301904560630442109662012437395133802743149354780723462890569730940233494113038266194108956138539813321642992663326552393788350477702141699107311709228614467786707834883152329225293859924407697927485701006412921955488019105500169524628435011930800776944964988267359443076706208421387191722095660198921770048625451154394863446085542052478927958174978350704377711013765531858071938073886268219662302520980435056324424586888344358644399991810513490618812754780352569341777464674170789546465178710901996937407967415036186153495360731233035920708405084182637919502884632951118784829709180362244950672262515677867741909297306696309423852895907095153309571566757125791450318673310008036010762310121643737687149329892658186643359773754241188070488148221908169128142192960284774042190617752956806174610712219014706626714936292203285058216904289851227255771660185910439392275757757337292616661378181286562351631830310840681842912948006255438931223963398344419728296274875258865991307149872637336340701080254530344065838449294622618906389677329326530549283870429958569671576882018331712867967050882042753974896317662227112327946299073467722645255230146929164907487909279315880708222410553837140304948062906061682048655776793098394948456167328683576800965863171923047669108515234398496518067322511792614671168457267156070940955115226226001978712809737255158467555165676124942336776091428187133587364089244628002977827291772357921100072287475625888189612676845360302514925396702175231864232758403706422786509278881321541713764903278639919123399130714571012141746231880116134417726135823663097166993978545332642201519393289742101372307777437097158035594333180078180507282795372014042952216614390637566735990724448002078549619286341887439674191490348021035848787100249590865255211172963616903762351416607134557777077744471992696547707219721729985723242235133320192927818266165524999682222075440965452788313800082986864464472130072097518739859814863060192810553843224105576904502196607821326574441291727260266765897547564456114910969022698782097284721164307966131482577680197825484941216755508220884166759817409524479087777467056184996887563954142273125366096569455982163318109762372513502339279779010075621047804487325717994462309022819067597282537957420313138885953302987387530500441833872848097764563149537105587003552915846496240000435541132299320492568077399077036620947760275573982798547730415883075285372665891949860136702480889163052889937958659722440817744178519122629662878965678922852651147701911536160412479256627594465957534921092297718786104609346909408379490862118903467177449301052564569645908394193012622898623105319291575232932955798986384178996887985887485766833017034266280887056543268796607044966471998107096360520284947661673258783725532869658433689063907434723596788539063529659006442803860384781496343318682081156208553834643223125382691268850693458641273925964779352673226175445188970502427103256147780516512877752894679853753389683712782584928227346356831806881935466228916835364434879320221347622660435270411939070133889338044708992827492313411789696622001661755596304276612894730253563758978573721390177751364592737855327962883078710992287656390802570327825552371393648676203954569991713850125557049498674566838482721658302999267434488188582626420843847220066979813369475249729930425198023862215220141208473323076466757082273709613656935625999045375472203422843268063574022162738541641328779409441446647865085193690025897384040786584465724058913213300284857599086003350870756673150338187602364697330863179408505932159685351187998143486478888779930799510669459223181059050381472875684551937131641202868148500374076103063644458598469079163476830249432538412344861932166148582357793888882421589011935334515976261817543548529018018991146069081383743001211248502690271120780363021525015944006327918600556539817520166745658534809829584070073057711860350687189053920266056975312069164327833899037921974904523373308452849021565749365956399609251428015384372246483276430025140220651336902419994813774865306193144587814078382078057934109629639121364276259140386510846872322003097647683109404225803088992237314679626476372225588484153664474821039949285630715576775577882727352940695407227755858249589790790264479043782430915529236002264347389052721915380241223176998804174706840079247697874434372214731476786334921025669265668562736873562952143116396504105373449018346024399626073192057925542326537287394563927134894671772803226088459994663698135105721541130615690295659482362429250284801819552361265617292258309656507383090223584344068848291794863040443285449499236770430170324833483675861050102341513689474069891913099876180143950963217667475675575047333372414184330527501185568837712577537476828512601869158248718343338683316343589975069441208619224384706884655936611582725871601399614157814732955718202227741929760578345523019040451243874348602957306777386931514539465150866871181240538189614960054339723016157361968746086533068252002759500604353525798453726788668008025207490997311703466603513690044445041572353079242822789836215749704357544113569621704913518457718000320078719271633438053907913686516274558901310871470889503430056799890966087894348481123964018592403610208239363379355313593820941805023035416135142139473568857822827264024044402985927782182214904955884160822202750943527292253706968025330310751112691657095624294520561850807075983300351659213259409534155725969623372431945128222906217730225395995476415301265464660218956228110585268349166584087836397256335404415938189333659968079684123508678531222329104171068888454267255664824532971292019050358802386564458329860570912108908689555508449254824115595521303882991294866826551557768810849995740104410038907759484587690638787390995757707990223570995594688806701147288126740902703070737038990304549794527317055229550097345779444746377771529631794473538415819685601511315276553834539350339765861585632261728272379544839378062132953770917319155132942921719710564988658143382161967493972405382119567682636604464157484797749245139439134527110485461211443902219043408171110758336163403242286224412971201644467338209632675629017545810106149228650180025721348122962222267674755313114727539782798273277708293720585416461051745941975218224019090980588887720785849632036045958742057205148477436295286582714151036234520521567445083333728723110801210879537025514167504838881559984668504000804037207176493589805503024344783705056641578513288035053418494999730916011623981764119530346780690984857173393779452996767100034311337983183532652047852549319938660529734559561756756305267891599085502227655701387638771890024985429439929590248092157800407128876947642653666406901734717072888490676308573929830366767553617382955919680905088508406981675903424111214398881808097253477582330503456752495843561077302230361734061828049739725374694632812584647029493827847289803218394520604398433752857694682693819741732121548637792599327986878327077170332443088125373281016966721055403063243618800200372953412071889283495717036649310691877408578439552111809441326094574338190259520560556337699325788532697193317289137825173598922816539389427183188794817548811484987915322711381090939330703155190592034369393987810802851033198734420715320518517058980658751858859971320009675095658700366095206032803694897819690520530784105494643473428474442630623496422226411378062715128530893782650337644393431578908939606242258856156276418859769611932271671342677946916119263326915987790406328045548960681776739283126857254981956663088056492382049119296327726311818628933438144777766435635625797036261942226155045237772333369775158686064245115797922623928554148684820371217986780864838584300098566598452648542829425078584276311661645159792456204763145810309044976635761352109269564425031270272569098200149520250066613508047893243286449069225936449753957853694965229630777939176002030543833606396103947138046313868412711246467288458688972769342678773828615583532241370426098297571503577308575430435052642465646560175920260410379849855686340097004930427685953090871512940845582589352348661124180652936210990182678843662170233210780786453370683090145422894430685860569336420980869243519926005208490039763162128189379417474580716358566266698975644320091110072909140617164993509488700709622411764216437051141357542352350226527813588575510209402301846390854971853596913524802100866068132783786202518362726846577957279121846777168551400634070991595161471184826447229376242676112446480974591323254557452423610622627776884736250113295431727772359409299408834191815450592884774412940024495623698419835717554050665500611857275063559642734665674702176456567305671820195911298489485018990687986595168376689787376730597526920734633923710187737500130768208606846234493388388093131338776785266854838789162501502599170216471204664721649733622715635336040352516155836876257872742920272640650448761969203868947984680986231473186366437916968875522096714078459644513769410954091256259564508591224499922609397123324242631378016954655590014074297014139456397099794665246296603253801258949101491209483696532152762895922261801774746216546501191313738483755562971743722788619546389682067525553310454108611815472079433786917278965140631684185562376038006754122325654926898995214285534431612798499093021523546417961013000832580016520718678155844723287163044866360107401778424631658690246741108005034985869537068282860233561345244088194211737958359567690688078929141239390788444828955870183991088344605934522365915302570705436319033549388864830925840101593675915768656510758626320798904422872444795860284693800801783177948155602642057074596542907458045912364303932860693074365270519169316592481397464932927299387810197624892740051941153079633757199908235284119608343185525309360819966185321656045800970447321495611308050804680677745046549088326410058699491211485386589238291233794589933034842616974657512896084713475765247266731854919713506259066132477796524741358844216773996735029145073747771658100241195303024141705807788038457861932238756468568906096319945151260798292721149110637234319352682009676905516509061336485266660625553855636571062232878689159187010453877425636700880133022206357014072579179088955999893198986010657579353819100655708558465184283198117091584581402158650220393266684059355242114075316650146379370602021766432559905023497710354701633893861659740740172152733790889622205208180224830911992346772758537821026207004981442197790038685719000789171946660806393821276692798995490708468054905899935372288242432324766944957415733394084873729368210213707001351859421127716462352097776036975895587569188042274053712394238155089306004830251269647295616742582655721286686927624593675654750893362822279880647518396550837547507112458349547138797706732028157045644365163695361990083030636727509418324168536469616417884518670899954437667500202042117181618865390861354063206713455455035677593488178855949074640396033985176915343633150490086564125007486852214825943340170352287698416327944950419819616333609968301253596717502107841569956935743944217794447983631219902912253210666016228227296653150744698916407207811997616006421734185688864709571566582540590167807826874459725705908740456966476610147382425899186053669605462305659662525146553118088325402170827286630076740835195217352153725220874486177871239577003513951586838261475144723955737290621158330118377614742313807765509108286464262171296211845374598616749432922430376514762444992443395460420865202345259543565912746622072213598362725014086993823752319575304891588143334088152682157342636639208750731880110286422886425185481584571612939102099075721937998084138453942109387222097208099809735873624873021011898338744561483738696129486562290678103509876901233505102407952387810743302935210712230620170783461058432894298395248120106518239595469098454946990488404285446508713127083752423716518048974826197457371806260528516313024275116901939203242219796638646022129232356303280420945665368319044215202357509717988983942627361951828094683053709766130737794635777232549787398034601916249966864216528640941792907679881998162721002831197667273793876323339484398445505009658160787330256305154484267556696534521726541537825245158164399345402119214336144752931074962475235906857085676251312482683647299157451047454756143295740712677914082416869134539915054165663255260230796420339426746186329273183881036558188450499920686840080068390126626693446425988284003615358042997228495699245124942576701333093313932037197568526271615472034594968158360822042210648670528243750978983174250289320306994310397417926488248344715475398392947706841998676389258947103920426737388132479550351967820691955026996957657586236055253278529780854391932283698513017160213588994326093828831930232574231401468580167493121226543242080927894967905400399227250174048648237008670830793991497071190919759752699147661851307989722394048431392625482388454262662478801922902166796351272169795925095570691285309742107481902803717543818511218153106100075189719627406109058765602882210491646185338394344053845598839244710535495215955742556405639513313016435825651842574777013695447264862357011832253415203712318399674782055375955392022245084660528729441917946412035460247237245453517790058580688647086382324876959881195772634891852794577594715287404400844444884082263718208896189238812464200600274137767197458669895275187763879197431076233767344255753436787112777874219337046795431896046249907942383936735196226262556772719749057682284873342257166374505143332675948788585195707039759758008236047327180697361401592868665712143782686179166915617497359763284852515563491789006459269548490346193450682654618908301661983209399583774145415657182737759998053640680238518795582803998135974137103156275905786222935969156772286787631395084914392878600897674512913670617550977788933353166645452495340390353177294737189644840141169683390936247907107234235352434210358307966246708638701130875833546057319701423122958073174729939635147120702067705730966457802639011391495626908482009216465992961630807138488903603219814883885051159597676049749342536895445361986825718237570002407640950659483782705195362115085785474436616005040369945582207532645837206583820939229948682630187660182245000855575854811458470263033658735786802149885859199084903253893157567791187221501921617995344784376262195653169586377930761991243701938284989001174489489100352362268811768619792699636083010658354356007049757659298526054923417137289572166511573008514995568458725755213986448024467106375080163506265224599523205802362376914705198202080080298611099887266849160789992719793094002203978000513550157185130742760424323508782030712733909416068644538588084115891679007809143659501440304290695990942440941725422021171305724282655633407752830344440985860127462668506392341554446902225497381249587569878889280275364769749609493163001586750128189549276305163209286222600588616033828168280823500419985444563436070887520428370277905778077088863480944386698544990969480875383619771021328723182023282713460654928875545847577543150491243873004661356146558502250028107895409167300969234021434240857743783818227583575050494714151459721627647740454784808606712663369361247736558877577566835404109562417547630405674484091951404739601193098254190779233157034513759413221984501175459738942784385988746451005644866578270753785875522033229408710184508657790240990244186629268483085005317573881153371852837281617664191975864154190218910133111284672623934662140448435088204820605559734712906653424678253528596730051971457410505717818123361436470902422441731024348891005879952966364911554215755553789524341564372322190302926374105502836485381587299135939101755867647478718026068772627002707327276541097604604248584322860158057964183274507008849833249793489415585683254197352241347969196973853069179723842164524760717125262231013644625819241320585937758565589975512085706976384002815961739623936499991425804257833157469881821538567117219447164056402280651527056224475697679114563719176005473992219323193435393858191229355657608154446887859530783997171181496433508873006593054294872215192976048002006718512350412079341945113496472288104954242110693894401061727531563845075579475583975925079232238604862026890345073085237398989475332429245103122504122578866353717741418330422207149159220037922590761257328339360626970856502688822350311823818484100458828909692193343352387563257396400070131060628321740320930798467856062646129717132524210909707861129204952981062715993134308424458449823430188208338465245529001379388335440063352765187767251501615658577040383469704772819724604605774687479580424245564644089355676561379542422716470384566935237604149995032097862306974259093463656368623330394804167979341629863052214600586154485950971133327338537688361424381055275796544505781895305905568444861534781263273948957194629238176977600870059782074197141724305346767839114994023986354814875597951388716863474976433918336105974515233850765246031355578066280809529830123304701745458745679109992317197677170920697288611083175049431062230406503090651629948314226234944277102117853165697309477864799612115129190436447200648847453034617770347927864609554163820808804720314731552324444599886577102577474396267512601278931205007592596413239962660689471484460276129652752505791383536122220144552910112805576802348315639038950293434617631900300517907496071763366059709845714794097691850546901570212426155291215755649361306078217093696914425138329154261246156879389517076233733951020507394939758059153370291382654648147450008295529222793846750822175147828147548624219469318389017978488549853855443085789785281767652264537833372847729824662026503704355286553262941441974198943536087935436194513462499717442913751140705708708513294027986262413795275506093616195902485526795775274326140696253948247798058093877436963440045906671826710791626101298917781089546365022021181335662805673446491745415149029194219469250199217666408786514718892697425799474004425080856303509843382008063715257089503221697721466198443531892834775991348090113937043640764017509906307920476752206279651917877341884466713467062477814604854119073880441965099321262222057105447462046606286919972216888979557858641420153653954595088317716353321416801741798384115804471203388964160978701645136678015992586696199908586701914045647089394949623078229800597118784146587431871285471122188317509797470664764617896545770892279732698585353670564793940694778428118891876006809973516684141518814673865472328719643344991970896077790211312995322244858887970139992565304393934566174437082308233825540834861630133393395677564813086915698759154510000784608533888273453441916511098636975332108867061575574095450697415732637572160382683571630763287644469474513741802308237981063595440045265424118747168857958787105253620090917382504691190640114389929819272245247560350295926547930729567141178179053178278764914374680637001869333201249031622476035610227459273930206498825735074735335669169324113014617335364481027487986635077481233213263409190403023062833426029442159165949686477651435895634900230238953446391519980557323819172074761368569696736051720461810079141342212037651156734446934912290456492932371900498438177992296638089220177988414130249611572936552593312449525225473719943642341517467360373403578742782050983590240223397130536789790928072134474342739471838969321675303329785244164801601313350509612464265334633271578936693269740631270355307215696806387932100695066150506403731399387169816470312589587934347887789608599637209882561157468851511338536801214725789540985396471708747417745824575458421612259835302908788902354033823239803444610485252060139792291898876162620243471116845088380769890518410019048222691930916239192213748379621227052711676835989569532092472091974149403090627477350543351495391003493114564008702694125919714928459437881162822491405546093524821297724178794518633783019479676634101566154723473111871009880260906701392036865909726456594575463733794197843882097569772996554421611338624235141001752161994049158883863123148023490723208003302858939658595249437367993272692650388203100348729958345297076496785416100005514576267626220306709596257798687135885494999694884739681800781814778951239961476409653333370341750446512850623090214854783139117671331229959127674488257942757205766631587919570864581397341930340116736424837926843386515981856220410092201049667680656774824247780240239276500803735228537886182337169351640703093237181456243047389906804675367277928424276847964503508194278007173656673984701957828659422562122639546958360628386394151044165612127663254913392334386604935679359881479522861984475480231786650062444110571202335656003264429153566190725837109236996442467361137267746376117425995460497240856365811361943678571758128909428893423562471308445906816700505539965417709035095440732716130670165828274055892815356811075696513901000707094814248066057601577202479211967637224397203336898696999318198301643390034520006619703580433179855869458709114527614703964707706164427495674281196632761145956204426152780485315048630990992735601277945850130604300569760051112786239849943976810019527819282954151763409920655054773584328318857340373947986856993157569849329384122669473301502884965553267949123193218124454000213588073505424432616657889753033664674445638955245038445769979081259386623325648745143641191150112244612865721842875391651042642816690175907783141273741983114165405665676092715835541523851039086007448312182758174404351569757500981988531343846697081417066161883628743583218541285287135365789512367860334950480054436891459311009806282014027153417954732506114291098375731267713704400051699157223000584717127114608668022509923563542547181064346809384944687848120522051235449893132662326245738350306983465516020083608391624484822441657370055019607621107289457478928275815626493400028572512383190192523785707307959863530967046948708260776340362623585181572970206795806128882950797748025542174104899254606129918246345429980651427210363712897261441973016710423921163073814125803623854234064196014832143731167945871272203046856625719299693920480920238516928201500078456467515577770168335729656942006931699071444975766112886636646576534121847101283673331673531036401546209698247898597101770913731116322251889594258583293307486059446044687037578991998490570782168297340687924844062247499975501698730299675860034441951438180691017780201994397060181610781259942795055064663044747655548215431285532791534676024720736034841541701877700390055865744705329809872675801518222582079347324491347829159805262459359738348863295864963573580080763402712101789293025503413656839653682482426395360438540949093714578083437984664393809275943620504426731251329196134224793890006904356202796089700295684396366445130627064090207458385428169938293227560575643047442988450782926582094151980560281060719042946406049417193757455170011028645008252946717221329605421410042955691368887378847573362941862968485959899828299758207186962859951205423594796485217858757709090792980547629307877571600202453456467455403872781252945663126344570040803263756583722048205313303429784099092147926676355225145923537731423132191322199973204704910800584293808759223918966649715941019674523370006022448433074505279293201454056412518182046995539158939790856317230797440073147784342295114124800254069274695174312292051939917656522065359240983113894933983002622182917379039354100835800273381275631782213989500679967200512035475527908017521375101638220430220043521556357754401864987386550868154380099356854390295674278102208887558682914678503661803181914947977555741386741548082245852732473000566491448969809565953371825307227101482956396283710728138770275252333191760235141807563698905217166531405661194869822117245458645271663529942011342801072976451049676220277055446320078953585211028798645769777829377451884206918124088705711995240563134454487607232531108859080732333070749168482042503492808058277548572914683068583770671175816652617533954209043093557301130822160830804002988376172584089519666067848410683748908160598762736346540883886929087517693547472494011513680260003964095901152463069058476749030378302282532529852030520770101241347697352792814340476901698967337337393629302293008051418205135881184856247426099328420834406362925663579184183331364497761598330862860297794649110556101356376905005400298170352142014777121551225250306577942463982854923130083483451237833371381738342225705757193081621891608967159923274801149659266909003799347413660862869658101034402938924895629089595171990720471781811821029878505520662662047222426902277429011547657346934914294249121467592403673028949722157202823568635527090113780053844787276504894895294340696663235097926939163875765434356870872721224232062624951956664923832450325551234826825798914838928071398443373590432780419189977336665466456904930690067103561381081121727552872136317901458931237110725472569278209621487027525722363802295588732614340712081300351760428293138802514152932752960707123178177017507628198234759036730185891013235542289153698328689989654261007584928347464122161026778519050914437531940705357662645795142602842249090721469526180557603023332220125279306430802644809465818715999092512302061338260319711730641664283261208754017436433783679991171958902415239087247043053390443336092222318178661249512953595680025557789052533448075919072995003291081153062146067669118993587897500461145816114106070534860116946433196393210251168529592710421057822415248864609784956508838010947942438071212639667286965031879759414439362598711575022393178744969980928637850649610773521165367241583495719693548080917923080000268307102895120950892017361380473218835690125280840484074399995110487007711783217933269657988327734169897090039253203510653530120101216793038232736286875087282093889053502802130891025378857514596181842136959774478190653752385852479595908749199605133490277717569950500146002488582951950009354232967706569066306693327316571353020768228808699289511650595649922626692017166973155650773965827123958560500497800261229484809002642454357774518908405691318513901106359626236281829792292405866683135450091634426034456676212032447832985534860066994823485387404979588167690303624498132115086173070112321800807888163840998083366128695979607738751289191500687552764978508197256044293310657219008520165254671220946544323018583175754711141219738313601053174165482286061123097191228844755784804240174197551235669003540096125421085355174532074786532993742404471141359370255760704792936716182740661998058308116953005149213398963724671668060824416902819764809255785255908524340248986699693543366613766136169712140242533806453716806661102189776817366650539558269757212134028698845231968381170287970951243308808563538669849042986218195582949842699492228357871338400504110486413152469370225250308915658972266391664324166229072181743020103778199391154997109099756963038477956176926178561446064984849780837540303080629100903940002968018638743485622812383423323995154222008167922405592858796284185273257096848223076772553500950351749391000475765915324659081953098986640499247460828595447676632774417519563724522576098041487262210178859678944288306220612153475249927001278614511420128130756764292666092712851629942198203587961698610878616057459944603871802574039722975609523846501764890434873113758369822208091648850496779701691740542338055625335614060730177178420661779923382236673072336709868649970760790215215542665167393262497065970956884305628811777832078486105536755030238025528158849829044767312529438102544428952210446164529833032695422028045141183391924614958980809435312876196965935152081416330091667251380372992466470113980507368789093688480531419636415528298883212846068121655327205059394267662320600262687677218356023349703462333413861056284832205393681248721330620289429260552869168855788576580302862404813197181873348121751904286057625552917937829830141650086002835168783231971051887179727529307115482149140743009274688653645759679279199365315583092711555805129993779353286089091851901307911663332368771968264089693743298749179517988055354030218317160362136711352917122475030724682296748679452478070949309276943751739743888865790637487461862129224133062997518361732198054405131918729309706279881123120202155320887274444992485164172371090783987479145171225143236491838577066150998769965597639114919428864180413730981095650113601290725468371922822632804291685242608153898096994661769997603705508123346305497829917064358221551161486625070988543410370658073074810721113508224362260040656432289910478015333846296284724863772970445582483613263177371704448138082110911821564877796696147410629539963436417558500186521447998106823655807872872469451709282596053492746949074588958846415916893475208873881598451517640226261898175440948013760030021480922531108928343163201499056667691427348170654711140588288279259104510491683102237258584506970683429236483825546475574071878083147810259261484082728650860252458242467942449393798553402707511916512738575759427282407729145751934771299468224389063875835381720497245773517222542619981085033966937185018640440022906764452224372460893758473752755246864757601683764458369451759976506080233359673009767524140047466726655640945539765620534574986390012512253648586632727699592440094083852666186083788235414022096675986207525697455526915531101212760680220319710685134593428129635311710466121032112870939545728360854008479039421507560207671599882906453200471558296676032373521488285058367182161990311528552976510126616870575719382099953263850082247935980674268816724863537464586937159955671647794393682731330582565765535471879700606568267551908240696458514154122197369283498003150839624411088175405520352359755970999493901533222823060109590166018896541952864072887115914347482397310168204778535294814814814359628920620313701127414948302651327536702388163550156797110027664372876125612254677182486756289368484808459414103081556612113921989426797035036274482959264174610421700731508143560811058475188592805328096694040660625128967683870595152690733866028905063182292411504364146354830075819281427004817093815071871699971265565893830218567631494036348391821020418592968542862024190456577022921652111180562792882861958734527227667955098997037299297660142036170926232342078340926281173786698199683140107273985341353168916637443318781396943148543934613668258020638523642605616005600862996586966423698504789926625825248358286821904691487438359777998187307575215335535078276467523352351931052478014395234189501979857957993051540410111751914074019851501434260997410167317819272192936034258523103833650361509736737863289059809472655424506320872647984151147735046936949430560131813030632909184002481488235162093013044813258699836803288144233413306502349351828391904776794970542202615557084428157563328249627921443146291658944268497461677921389041732449632444061155221041207404279409759814398483096109197558529059155351353389214695782263584336815639355948643487352484490144618486485141490033463828407002836175183832163481108291152491278255239578595920493828393904871248529570692010511352966813755349103245851903131518393055035440636322690038166644843000943472844650827506114215840098166361327595472691769186993106096391283048831121127038852794728779383655895855451772145543098206893366660188275194432122930312756756346675022807872670676119066036093464097152661251983638895810778105478227975120004659937956459949204235510702527825601787280665032994990913891456732780436787831381895465895609460782701465334719879673645301650133019157888038892965765744140483264793560091980577795821482873541427493229535011006015501341572102033643173346616730355924031801021779695386935883752442950023537513292871072461976908567054159424660796398718171488980272286449432066140971312931210496660373409124587734089044259395952577074886392768201479723098964548344162142230946109658773288247460131096772365657939124068334407822760695701091127843439239412257838632689994501621863550472699633624316198175608651522095228517678839084933788375083151516416393176745409160466791234077860502975132913452352087996738836801593519686847273650372468377354495957293782735102032620184796856426266801123929920993552108264548525344922697912497874862383835782192554912374081635281998456407082018401571465049380717270930198270543959667231618215323209539180822598827669662976428829998972334560263715812258138113746316673658939531946667049699831996874825734634612024716487959297410208706010357454296818195548986057762358808172494018803229075441667475248117496251006777142657067954339369655302422694914088299316251182565688198696176083427307033657550674472072566365887122009062273381765761104977567811653751751595161096538313090192570424339176916340597255239141508187985313457402136529119740069529622685102033212412743017946826633242595343487749020624449227712437334315840335985071848996353498375452262297608184720021711451160237732601488851330343842191163033141943202144073272932691049030548012580293191070092571068599622965189046191310706172631830131787031441166042854779603419548419592356271379604410777942643909549397225227032663297082052808528442457585393038201825886934676804293027331735428081035755528103237651092650203521167052624942712128352767247630881922113270729669746036945710674501832699955448698802267034660260531182700205686983604042170120650457047785757223999446597338198026667016804871153050641879491883948340331326493578580724600228406638089467880478086478170995344762062966529405369704879818386773139561941117071883737570960587009270545492528645570335555987890964381359815742139513196957839698872808232057992847759374110032641400140385155298083937238243046475818984638727081794173077924137353045259452769173142955011673197447690045386713945863141944717574315986165146601507826508383049765371315520931207501803881189087494148583378730669255009285027185412341572829714958740356334591138713471707818990611504423587868208715489132887716884211379882292327442844332452135554068376941790876297424695759800082789227990108068779572917403657294774450504941299417928539793070112125990175534511500737717382428767461680085387461629175025751834963728462862286620691567239687008626871728725327531213813947977027472860217296057133343445863650405780680255034406737092288903531682752716946043345294415359588206792813214088608908128476862121536416761476322997398868031580065691351277868818044107143558387011716352962066521224661161803937990139324225255084649418821571849980912984362195746315978824221134901468604747349714669345548115031990669339739828712444801027531411926715557286263630744439428911046434786642942141263560250837511639165294939717426724845675295051923462020265144307660762411674650526993419981199488696659121440060716111333841834123083393064537366836560654142516634564530909853980566561647611893458400017323424592064275109355570434555346263399496905212534842445651037144782558467984776249608996433613323182924309986423515455170869569109307893829593254582077175202962932270230584264008604676659232490158174922143452300608628893022187522737491205612932968763107167107959832255039594135943928896289449387688014711745251365068261184534693084035940972647548169497932536066214252324138670389807392282880264110886700003937337491348274647258730584996356941500754082737041670982160468804563121251243217274980026316438367172091950238942968411627682111257919701682223758425115102630575818423356232595661277219327271935942019620866655716336045864965617161558103326344528118997538123041374336839772206244576765369623831533494403711942128377966129556792030819684975788215006120411308532214120716221346692736917534550642168930436603187962233708201739026809680537232533481170069116770859662557893622829934565594344739888067957353642772544239212920927842305428944605817727387339019838469077560170708093620875115405257468906450088693292558651550997986934542056420971417807933703534890239796472974482728714339417269732896059027484743452251663018287779387465599974649264758505083269042897747723190188381177428631610222833552284412700939502351006114828623252033530384435091413306242336684659169860132263139282968280330855448597061287199219379212728574903613751307180412106977841978440524749969598662064614462308193539550540646673719793415956044105407843905629197045960144583200181693857831022473438276624394429715175856344932096176717720655829637821136050782086556288610636400866503898896600505843795444316113760124348831308970870623607386572294640628247218011692876184004163641199840373024782124807725771015047587232565650853383102009131127861110410287973345254723871791143012987075053857276028150571513894013195601842346163158995072970626146221467997186601121138339732477620098613318348399282668670131080930699242809057617529150061763677227395628778000366427293539186153622736256760674514739017622342543539804978130638474259074921826262424218099372952954093746084829600542578585855949444239059416354489124868883054168692144456700200531003395622286536454866817401098706069292739149488834499752250728592884421768779375346481663999528076462706353118002697017584058002114462093200830624445659055253190373736555614943906709162187409769718560573332577068124739807233508440316146661193200201392152316161402690471329174206303394078740233853875595148192124664932484062540766670246262032653146822613776210766027189622395589267210911715114631047169142079699792566277058840896909962463886041377393958595091867255508416498001965396393428861005701976560183669941305785501439677994744909914315717701898050701055970894493363192026452529593573050806282825811084088468221591752026174519409862457799351533338884041518290229922486458612331526479174207019701224881692351625839247955912512894300332690876327317201864094844619461871976776403502513120046354800698906322773306181165797806100340418447182377278258454717286795100365165455264826482261774182289737480595595565380811666712751370910724344689274747071332872245736586112249355756347331039457803663922974704877169405078870015726179170261543649752037664435877328221336265345166992452307695816040117432514419081237445109532519362400951181689615015352199162046947996140263582270318883760782451629281878531477996957139223015247459277406397869253702268527956879066052275428572429320168401980277949286230157164821300679264423130506187905029760915128590740328021886889851527378610871401420592862323377537109055067080811405879212107652032859489100306730345013960794240337853704290752644041409805595550275083379072260828756584159997720232804329957831245168232852697141540425115098810418724823758205161860027270132122874846100720201073728551529012026320666126025104862843405597310283991699061819701297002721766882632522388253478586938942447461172153179375407294264191921579434938745101102201510138706945738053078900552115518588234255355496498876219985700210354229993341289594897591479617073684575295968443072985115197775115856779056622241241527810867182122418926823998051304597136716863159908821413438890989481475814838937961185998663996837928118914639924571345552324969336408506227314775637931340967567904175048322905062897014709517683666130884714790748886300792758536639007234593867345955645156490176199467999356041550882425756730842739221232380747616660813799559542160824509013477973630119949900092792423684393473184465567941708139174430884566922765139507545531176376313796866155141920837308942061655477035141395269912554287494404512409139559510733342497174684321096928398689614970485758683164226297440021319880284365021445345231179362107990593725503409889338587438747751648330022292764589529243211850978688730783562770753978187086246262708254176972234541876849576510341477931809733596801516152584903836945258836288175811862446669753025689360772538354812160570043547658017713691144444717593973897943072276174938265710284191590372886667882288667873228665949486106679487347321853944317126914224904661978156221008794237191343236579158161733262938987339769758662155215394255756656007577179746436755108276735049501520215008085428178197106860785616724966184613662290119404306495661468143536653634549645224551332008777772077467081679076670052981171430721884532653773056427208160172749682040282300841526661092212258993344228678669192405254573624597683932660026592750156161654273411388377090205955190177366371530244168216371604336509734161861887744781327252537568206715455088088816245195339294954387054036048817637663322722770648596317887701914007243757230132128181337980786965450652716429242903623937666890493421422884737089056993394360866122075149457592963265789436750677315228616016773879172250778517891250652361021539996990508718317718565724958467610710714027117279724351134609257820413232091992014856607932250903676033094880600134036124960774813332367899584896419029672032090907611608070161559551265049474225138122194508255310983279813772336658693864452098498946211220216853880982866833985142508884796045465255092890802376868763588043388924164913979862382469381855641122250632721086995849443661067948929426866474351335639169377013546358844340442551928918459234088640478294457931817390694783327209942740445914056541545258813244776887330549260473726906947180074283026828565605583095712595117584271684403615726711756014052937153110175072434240743675742636462726180613951481540811774417560965292242585908018614295979887900513366058648398704166188737073621587346014732830961779517383485979585707129296486824843693541630946942731082093295589428896914695686823816419825447883820031740890725390818935353429427855228496434143701568879541340430307809953870593530842355395586792851899272742572705865795212098469278891340863759620227413324308927396621312026578761820033995720012387034751179183438832214550350772503916552212568677468284036820182877016923708149165515993019179133617473405098903579371515335004448868494554009289140746019036867610337947447600046815883355452707273461933940411913732028023106737787759314647967876933438020616008031915369193184614154736634802680880046895222917052671918702570919175545582095202205696691566475635353153834632353333971509023443455882480595733370758937763324315773689932869715149053306351674629934606234753024358129921701069360716955566277680309497557220872395785195525617378614764206721495816512540690822277082130015840704816336742266789392998617898308384385393409185024127981365642513644742592930194670307825309946015519705163675342864260514871908214981448438298056924098388493278523489541868707084246936314286165841812657629619525146794384711397402132546223425899753326250699625774615538387788549272241482073810178708591795287331023541267828741484794089062112407644634682758559096089994133816313847984673440075341346934454886749204824017452200036950129823613905574674054953235204657443773872274964671417164166465151042533020028582667522058689164521568629211990456573671993276279970251942413076699844328689641655061841990021856642571926014175175473466764706164272580166169033626088384762810696746477132643694003747740466084313310323251576289110933628158774125099627961171238301591891939415536206775175687680106971757570097943541957077005707556415728225303599527865092601582368303498750272111520480292863698438150064655585020429515400977383948053940929754176138342083954575525112052040877571313031246991000155981051393689594194415836563624517408800225926482683732124836110200469050383055391077619209972901287684203696097279049166410747671502929018227370157360718439709885336576370308775575082408710920101496704201427350617860254872109805555692034356402432658098345876092861333399808898335647961619520461143153014839461799626791333517652396295296333719902820950150807149170935818751822751377484588601042086723531666336214235825423303268254058338849798373223929266984228511675701125374800226553051934522017699979413048192334401157038642275581693847978975891493913819690996523924592990446967634776285039857621882910269915762339162174606295906764393773917375633834212751874451386163089200927073521937462235510071195296250275620525967725246456652473180159149053218866922491584983205968922162012147913970851808877876952731304026478976758284929960280016227430955793067369888725156711948503792111155332961165083308947457722116737438045136196910708387964640089916872425129087401934806525533686484486840303731422958130926120524381032473689833398214932238386572829542825481107989684428920218960727667894004511235650824673755342338618256014486880351895327489955454349374603930109893058242373489231615554593289345229666211981567864297190898772441751942810296483176056665681738116946373106449108498938444537899563380809848188287027811192428136817364243033074982257690888240820123351487498499135533639439630066742673599104638634198815820549195205109991409445835343524831641444019766579419989393208705303425183210679915823050798585574900312909525273241174009317149696817936615384711036789874903030211290792150259582495175529817057069211676446685377783863215498730204743949781786549610718322620500773151481048079008572483203956697111409343001810093508699677406303631567191362404728987063788597561667243623466153871063207587917160405953973221356068329279459836910344871183243907120971832678077864972843841932022300669766076093985277404515240772137421909792303348855330496560965006835852877764193704118162749204252290052742379631003968008565081367849445237165916856359793867615999852764601849116701324031748022572421261410519904918048277881156428975310838037417484884064267385638883673728219998147293951803455864354118818642564492868596183063713623299923081717265852827548810928554717126510586493447200235397669141329109908170896044512781665115071223292103943654042248679291008058945268350992682393949899926678825787511697753647488953393131415812377782043533503634111159581879623909498518202057649619910086391512107924269835305259454054277616043163463025861341837148871699344332207940527817650907438245716404674727235124263633078865591328519568405754730407078581593006491799534449635990706143126942882778543968067990023386217912834636187809051151557209664737824615704678469752322432464207111006178676345494332348719436603107834662536963886326632747756529502821066588481147895830679882196208510490343118252793459719956014584880937515335840347062150331739263991098972032706053141256496575926427643498607502659111183129850539064177303154898165263499608961808564462768168022237335354703392846718543434824689764345100618084264225162893403992158736285605769884203212211441452378379132683189647262296364392267507457380579160441703595367338632962468136423387957889059246598223103854099364241163400927916073500214453735146967053170822047256406003765797927337666619663914252689605900414633166061910368884212687212795584325112441014241291017033203295258771690271459059252179184862124186735583415353613132570939726693281795336075638787952190353196245760804713015823053765859628953712495388721218629821161241475814034171517175857554771541861901552970364683111158453839342376817822022582420034877691083376619054147984968758354322466256455040865752661043406545847905313250965446516518784606416146294108860794593687108041192953502718287469695680980826717148916588177548427395321963153834149282142331887864455901970568333871889583464137303791031009692806122598649842081092043524060279742919404241947831577477889931206833326217515633106848985908831918039027666875285694597867773833375799195009565835161553020817931914367145815159492380318162061338646911388917187594735437025056374459673665972604993113275400837859736742462718636397589748072286168104227890927375179841594801916239430724984110279484358683846948848205129642843602221103159390770669205364889688620610159178873626045951693578119824427587041657403945621238452503308781566772071541260126083640438328871101261703438504183168726788238589814314814459341630029702169876795974776987182027358260609990345905444604570054403268262437334048446185025510544823486014695780236181122369024613553244926840383966186872449785956774755646923573875693649742714226476889098025676040854557354784991651702706505290206506414302036348636192423726639671258675714570952656259528320118351919435607914356777101054508452141324563251289523779428303126583153962413304268525504338745746662729216182414371452676348181388611714171759567176585691927113758597193871382068173587911119015022843752705573815648762342129609868295169822015114649714593238171217118069876732697731714183010546622689786370541041496059485571472519540399003759282939721179343081040452704625061808119341564999702193372705441343221306625119743398112569317184437002568073336300851964918528775371038143620254178318143499950702533280826671136037318675432314297202732147798589380571868883984306446738819618839418810548421596795083872368128045383413062219076455686940246018913921473235750896278437447565265651732036208907873644253392101545199942130226937458580382705368956855256465341654346906850875272818449674660935176635459906944236372179718281879959868622536096356089282450125528221556011856349314604038599124190600289503567265786200254322151382444133189251229908342442816283766371949266377075267080185515066370352324196141408897767704399511518713876211515459303571359037436920871328499152870628633354405198437990762014324177374036854372084334130627127291390365584953558142534322381013896743778020431689776581917880518188742015050270530102685092682458649191566666280617282072653541859762041705306139649407876971919979492819780468198740970253648162706280054677935984777897337967195054327384737870135715095371564000556537015217747077100252837437941190195482138017106518511504977887963299243852125916972923490136130177700868607255994979767760332475369427513776941954532233953478211255684209426124858382764352217459990912958644993244932549589870118088184599768873246945851546100879828593571966811061567888049272048120043015026781868424749809419504501086275440090120646093770838536929190453803401682723444128893442989429471023179106337978127282050542256351248393069565559935844972992936630833105364491455177434918030392460583611002137070276487735238479115714112419976027626802429328659009106078474979403118640454821125912291939584962085995907196621443134015537487706805556620002387389974482875131516885339343456612832129450345127837047292342906987885005286530354591278544524237416824566990263719728763078921937642845757061355924372419793012831114838785777777481453358937797399801689003284056710678005139174627168525748173956143929562597896017332419100285485442053500725939432111713557216286303100459959004866901092893786972610211443074667241050936890552886335529446953015440392414746750467140973611033177740682224887754489942730457026685196063111489407237535685213781766776251279407462695429983262578253419977979038221719580903785954935766187997433208749686180625095318661318611886594202349298784199498542194054707069023488905384222546130357543167886646770204002986367473960574636984531397244232057516164884746871813199563792345068990176421015008631182493278245297836758672167760592370435469238259267075237429735734263056917061087568721079942696192237222139583497442525433520541513876160716279872834734053132234540110917429513490101717197720604994907223124386828410281618436772488371184940056415300046772751390222679525543624713941982800228439091528613535115743312394890772006700414855162324026057378601913207499280943841871892181125431720807794622171883498481286511296730798696919472313900435378057351650054386453035309634568328945803352072067063468758001308722049513150450311839754124694436440417760731805307322121147126598096823680021221553675123786309430876946809607751850539044524411432904104825317316342298440186123982349189870207604462234552716342056038372973596464799045202847603852321291057481195036490270992455778595731566323202411031462448710404022529672470501883548047726580990366051548672888850334936293758863740594215411753580717833413841249574968889446014069639449591843316415208972655197029101233652698242431006845267993651449419183217935088184365176455246098135704745586361107249867226274554666456963757129390972253539161780253059639461337490048241468925574620479168932958320530002682450201019144457258417933396765346655453722365573566926645037331888815920787103489189009007513069412445123620693638132440546009095393232684373849121361450576821881085123903836694723374727903954708656581839591351316561557398680805062368672241809897097383955575878894662299928503837118552244196638897602933994419590238767058979567555646423632439932055183574827639691838390269363497016907030697773022505270530862429800784308323292829345586021840205517869763708441456100172107336213439544430995130588020303472911134524260351398546344307300992657123190761379448593534294114119004874434366618449892330164417746303130004325628800698681611014679901126307959824407308790848645342414752377001928767490487980948910953079159781533396670830074800282566466523499803923252161301120395835754896618141739260993968216895080989588826365571309514056282097814590523489933861798015519052571158066693582469663639590703925064983689477067626384152027262649900713078572730951244477149756743916138579536126003621989721767085053416412321553904465303644789372577639592898206965982920203305007748230317169658226646259065552854793333598638765227536033610050426272709793463747590775505045801655345363116766170321806663352625888848331029953465827000224856339491548558641701158528637735558417774722891797286448573489406743383990195461586003864455502440871551723715995015256762084961560895675787150028450204007104296231402042476816103614952407367390921224704170814013106089342379871390863907011556080267023958183019702785891190382542032445939725506142105327689254920349401009373115045061145943938567716608438080794569997285020400273593094781835449963239587121266662836900799121724083361187684990474630611883615953279123258063422924969212861224428579038344008651432409918366267313374623187474869209819030194824983924146840445180293630111603641915834433489822426917170929027161328745959740476705001345751237579332276397878714828165391345987729716537660456813724905006278737055357105191643425376948255775412268451075028340894338229696907665758871415583258534619600508896528938937638419889931929495617866741707556337635854778170493286790817220866517252649911054234772098841339985658794258680314321742628059964462663696139967934252590038542264516552516052665896175148416135477788619951206467674945253578122788918139459503369542481997814395893474493106194614740665341990485582405880354216286862088561758237035184460059888667886038461588353331156757886533152950117621575762130885132210332366319228702277256634531041565904614012032495330668547960967557078866149677632318011536122134669414550194876602301365242006654438934996416505604009487136915973644665635775964733455051863908055685582596065171338280585376656289919901534123231947112137438702955136988002025578988303709812826586054637577704710298315394248276878219369610652212688157050651630150386419389845436320600005736656576722358881598569969309234651037704085799570521430945788721727501114617606907081066230309414549223042639035466447452794205423360705580965175342771690126879933787161627324108402554875468111988178176416113721855362748507486053752791306925741883562022888227405344008511334418457183193351023631334285797256296135310323036775673672792388666081539305128262602419740241803246187484849550808826483059737121777951400584777969274933375356486811065549975089577418226767907265128357608348886211917742953691367303628781057988502558564106711289496307791552530181576424830640710390191099490911341360630110715218314456440494012038035626767918474469743218448459336043556871664318305513285886291485299240770664082654887419526394674767082098078299512455447467647424505268835965459828751887408575104012533003824964378493315156218987218327914116004985753122931053125691284076330847714595760526236088042337910868309613394619729397071727788977638695301534384092782626798020171323110916716697543533845329643067629775402875328297431137875801997510702422592898421831516098064527059160507842442788624051134413363270778982862934852011277074700776419364665913876614213754017209982283116164581578919920614779712095798123875171628514187267109022362972815201554270611352037654012393070650414142439113293845770261123765099611794667025822269597245519879550405953142026996885723025405354223552375372053507470582346397233507601897065260846776000848412190455854463453555109525654898917281733713036561106293673207509500246856956195032866697944894159426324851716181546412563225504862188518676670569700577519673039034992964226689196955628391121991324789207047888532123110394572400462139941829231062876481554751846547636327076052148442648373167190802025061882176070255763826360351367291792630090813334728463000540518031620614910494494355020537333670577846050672249163250988734169326954936720014023126156545961307428416337129166951938805100719028246652179860086153483213644948013762274582731549712484781608238044678730583789483192929456108200852778427968211324464611000128656716913933881137285489137549191071746016196038777868651882532564394851545707719068291064658913495872083890537982002416800967060777343694373687123846901745485941528889559983901819442134988814442954651594274121287337434303104122428470218402351522680833039765520113850662368926161174764227384835315106732383990858040528164943135975409191851836536261968556883951849309826177789023520688406168322967728655647464178028895337262722216431353056169829605738349661394193316623032332591432875090044023176882950124603550122399806357682110833516789419017118285293238462361202574668531637817403840277051933657150156168172115496888188636768532543386643688309228178907662383018221677567635833603232009379694575859247847021438960619062800968377850990460605319613428258232845842557440655227571703517055655529132933019553836276289814589714884579228366597028976453355325576457713425133109947173160891269411881532560818106954285489662376131487328437078724054022565460060702864304211317896119405943142045461284741047826121216575674753805251231117121647765079216121866110311297693935032509769275078383206496386616154501639342385942738001030084359402856828130751031859038368482166591740052241003681504480813988523988933607783265694127530419535555243573676963287307406341144237456669822047614937075229626247009664111247172117790819663414983960025987172156238503382284611822572062527075264444406848365250374366218897491160438039425568648376360664668131809356381069989889043643247874837958986221724899598137396835218949043971693225951142111441059939963963632492552507209669867592397048644634938794725034754137870757778251229739744730447156422250970208644606030125403310142768416159543181172334482629810679943723041796076475135648064728494402615876389477090731956775648339951434524802361740372342831096285618231922776787834358349511047172515751298246263085749082825226386502942099517509931060470791058355871693958189074036226874616058945499636590422000134346105720899759710551971860544117767787761082339573568429650431414829192361061010655802248927670026660869587881943271126785710690142101321668083180128097624882014417290767167749875140428412092703241858114668641443330891577969108077539204788679562228488031255653096822609861791898665056390894306609275990866522277802784086132684234099113445375056002933045707376550999525161437763252808910184726519962777323067697936422369281623952469407948760427697230452500196800725449860350846215238438454449417052186943102746965396066722572720504834399131478758186336476006747326559393103632288135072641067041366994187417113060083100369813902259221386492654343548279797382860261373364811200665323322723804787379525730602212853582006088558763347155355498480897879797942939485508103503546158641712114672741307135992170898778765429853806849514042681989270024725841946678648751797475624462373997872384363292568714980388046717383376541125633862383195251328319093986532483398908277098964262335135351151464835712085204556872307523291410082455779508100646794665657443197352171444064285343939764761732148154406321548162284937782735950178116968326457853242937980752931010172152467106405905913161454954422047327872868735899659557053185110128608853401257072810719169169112178786982010626411573224075907574454086726312356640458133407035737016086050616743108967420226575309756250854057727571394285806885039698986170642526125073210652668587303253890323743081998020570279661946401984986274991116648372257941911907389244685071692908790348504517143913259642687261717500248520558007959929561103041137735785118184515438525537190932640608879100717655543409932205763273367054609466392922932397216381144796990329403529378674844744032263109836886581057211730893548124395383384086196527681800064284611407528814969242087926354890770933704559695549454023919488903249222764275382631607745241227153738349837879329011424008017344011660545645031442637796237559137383105574870435870214142032886875747292138587633372156286195515666703331898831801315300386824599920607850106071011787757986659840406953007217546926011059090300065929299476144465857016803961174728471575268203701619838516047638265662021299547169216475882849935864678035043483819497833874611737586026855428841343090008844529010931818599491475657245053085136019734069203975569791613494666937004911620648180993725406716306956350745479766048794242898681320877044457201344874856388316530355783142048428543317514888299304698425353505837212889698792398244508442933255652982491933212613718678498076732336453191275045667888888822923174868413392104283260745312343414651638561850758553157665520024878824967908461825024370171988375033503192034972274002420727208913375424038114157975819210618157677163383097384982190761545264269585838636617475507083237221554745488402894315644260377722092528446605347784025100047265458169570378569251010402353129533751669146229121197374997148845109180702968581647436057535907139831716028030732170863061719076168521935958635417145156594803597675209373713345360064423687459449266839028890827707110374745213440781567476509059028878692561012610365583875083153160466222768800135822897523572985053200070207936239312985271075727141946326408059094696918073975496806467805462441302237135017978766192540346041281274356612124912258016235963920116309180401147959508740896281411732328970828736540080619443406295102754472994511976457335136529951992170373436979692063390475222385654444971646343071993649620502956542562092608803707324086994402746491442330951303047558580709224420019387201795283885334007556678196721804058284509988820524671855058177265974706022823548314033312585014517818049696982865801345750649629844995530703830510274568133513324514791150031629709713703263825165260978224279375572904403476144894255822508153527891672554635174051227660345412849371378292160578007401730381577414776094522065679490030866497420072902389886679225013176344073850656651226693483969387943835087751386921242136641378773782448994534355037932844443236511952538501640766184272186430228942506949101453721884725971739069203585261190321404360139838998585150046871046259414869458825882025619769194532907258566464468717060861959141805051179602335530666392823604594886308723983421057426060092665350579475314360656821446654423499398731885728267227872302673616509774701323080968893752319937642964889369008214288681289329991536219050493276724709596959077735025179833385416131899454145318264332503268409501827150901322004676565782043338716329158934304436609426336001312198081001780059076133834862038676290408594332157546550171819303589198936823841288908148374646414220160857228269567842991188916445513813371578786985153341496609099507386232700332747388851492078895290181860839800656759357371380720416762901903745939261937080425255455313004050978058281659413097495570619764941911692951124182605568882528356700299604154264846616715655738585073850561694832529848265083675857931539590946482147518112377554112691322932042293464482294266840161944203100745073535957986734605695925858375494661792335629210292203782660297219683664681839172476499467606439298690049521905315860800329038598837732321557494260790059181083148859415796455101643852168876617113559917878604894382658057189613635953712003151578139332352892913423047039639210805403328458782685021386062136579831195453647149516206133550509922935748518438098287228845233324160258669382762725740207758124707884670421477493945407585656154570068000159228496712348338569249136866930129690806915507842094806335475229359749523615945827849097478261970706439994022767616278499511683446777720919606109938253030803137910011130012920512781081629303512675001044672390369379086101856444095682651430816325378736454259669602431060575139196006024177409066018207812267017098037947951635052403932537981093420826184022326165655485427870281264700843321205326668342878027894383867959143293828299357440197150800349736753173293319806473713384913643082015825612253264678279043097654745398345598992325123885906350306858075019756651088312844936175213079126169662993066586512828212088662649097560002309705756707451274161993345545248676350616942278937123771714861871605162156817130472245936988916995832021479042060543419688689095129704808531911575993694267887794151109717163441832198992245845094380089769971484741432472865912498484781601151136258278162077189445424602246726845594617690739530028091455020693248081827537458204371413387365633828425388298269790385412183535312414598363458872374435664735315118443288881350766613802497854511198023332677398081556683499152516610035100232877340226308235997200847039745123924515030037676198630128770259976236247482382362780269314194398460379708202061850338233030630996020000379339978962507865345597812877168823111046014437904716913256587725819345139096372707615352842188480582181411541937759334163994475662265410030673667853240713621704158229574968510647587293622678236717448899933054529734409819917057386760850669043363965502234282303430070812888524258223325601318794912566988314978496194982090442342130631953727525191394365605259779954792077046434038286415892901848680590617760900989506850493900571802307830034310369545648353682571046745380844272581525387580100983288495997208258541566929148675495578983625101014356153165128757505470315097749235678189204897891622144130742360722854852220386726715644626860616727684890162674686464253918680231206412952526202233831356966949795177061828247225059668534664567018243392737123953099102187716982550149588116585082113798291974714712558812865903837372778410645090384245992855034765234413072091432417554711474709361492804029109213735437748769708149744358889242423102292752328100027751671294625825333536424120331878950827087019799522242334728252177277467004274244383154885704589556157032507757328048442054403417781705319340636996422831473682848760229975842806716368656676609015832541802562859191704954931585255282207225922581831518201623739643124755409165733257048803375730337597983068686829007693370977189977096103919740323773154356533240889543415470349129428102977579098744731891702898226628403833029615061206619257748491987831341017346834813838499843800910154861322048101513483232542957120839858755398206583548537795337809843887336078224640654923399455010738335400311190455167130963382075820908057553053205237477057807955937339292388386220478227417289467479497915396579684109410992471262051898493467900971806312458838278021452825054923936397497155380094340236863259241599325827883934748788591934786422662310886196139719182322446967630576670177117162182157677223602699587547780776856463099777046825453032515108676346038656495763382853671909026726078143937773481898284491146151074938263606815721813684457538032819008337751904010396823882667041626830329487095158582383787991668952483451397821783404293626553005404609030243150270660249892782156855928058834426345376979824854745221864387828326989787281757125205866113128346557432775224325838436874298292557090133900933471579794282271940128300720372531423878784591458829687322722956777470480940859235911383427135434650190530844915304920169189429847761885587515093606839221004258838421159584615468352884364056349885685870371527849377027984820971851459232341612614882740565762480417941942009452279360438235401823936242977238664344457732137329215355639368645577797451622796775960174410678189044318176435823855395657909402154720674352718139503923382706546082537840706370616126874707408733146316499992805575559848769922681357690857430408297658558274908754515228023262009184519978540588099940718672711484924802346289845072403536448039839668007435456139426870371265006045938504799183861847948143395364791272680081583347376050059071568250779396680175538572308462895822148945921951883206582950166326843883366889950223359562222632133541911677102363080773075966446741229719083726395278494481914520522236098631670994327873905563816548475789703144458118494847563293342842976967427949403848246408834926000264881334688271719275800928319665460830259149880831219458797329271217409982364645454878012878565806785302278721895083755018912186126573262795391465782424530860211297128654650145027497693241401093009147903940422373224985999948379210825574975014777955956536335481083636597669389002537993024162723956685578673591442022666890461485635803944069885531952922402104317321275308652896701972244949025324250083718548946943217841466378295178996272583115880866612850913527669325711979033868160060701061532057952726814525564855562130053220543303381424038174681823201409582300661797666570063454858814944588260498542448451477997612270812510210496544453810740243339713470503771001950960512791650861733324944006228905832387537178009508247924706957692975820147458754509236714302209389051087680982449558477707983341321634473355758081105872825846043021535435585574186169045270550271175366945837660339487417873993273937603130461142727459359689836564747506359346192850795062162980429467326508372098998200476596083147168853250783379040756551555470070594257263505689614460960228923883154753069208606667270767796846459914688968984136967593015500349025127289584590692104991227508368551619341928948830975040590676691932705612557031344365021264268155908925165025278723649421112468699188511236175601348430182920208141390936657484752477412381299687353781694120936243564482098688967686732771909764603514133292865884943721450203518669314574565796667654424549066674717556244917352195202103124918428295966504723213201730965111034161281656783705366314180783027955013447527422151952497322608633021101695239888144906498414766083332894713649606615152685452432347652330518841306548556198836510233782772176062716846744034778361172360810670915553860766663435620466414048580727725803152851396029793291698713783871193659089530248529918890752842077008900647395738054157625427938599873363380675655915178658107460275311765568687068308583281455383567168965413956009176130116109547866933112545488454723403967250401543873854352087086565757472992374130324851551191590707482544252609089392189458928483946708022312087584957371594727500393924767465143866520286512681503367808516012335720848154718610824982025764720941696058421746304397283880123245961826723822707612366930178508253655931533990561723664966729890822468172381481630825872599812826931630672205772145478485815720503186231630041068081273197742106179305516968379160516211831459711688922006479688394927946336767024862587526465264664068880050937323101663171314029627408107394709290674923224600978881852126610442538530899594018292536374613512193782020537521562512614000113184539842731560113668806522071170242465711057331831347000056500487455640379635143714681244176597600981727352909466664312469702929462791110158194291108851193080284470251869352739540404114693736749112715238941462623874493059435649038844699648204536897565563846845423570810151446850377915218234191208213466416039822773254803430084832804784352296407229850984355260960108554248504819578383703174500083853151913206664142665697881646267657561886751410233281962726418050296305187021709262073016375765655507943157271559555449995383455765934601762729228641109340664329265348921085140456796547384199572074091547044211519566776518021876872711223891442356557078823378776555447767824442310745507628566165711411938005004721199528873885024174286517212385448577061125431060365731640349291524196510722676942709218451650526596516775108187808577425530799768502087735272311300091250270197869081910863135433255500490591770710045985705464447768994439766153769464236654128598215805002698873134138648944028368888833157269904140928778533948269203033465689634175391246525348440053754470157803293576611906249297361894874979389636505289468692108912115956022338830213358063360861270384955728936478857090678648079607211438581554563619595719574874391534512109542465948478577717089366880432197178128830678611486839707811097294061402176506694887604808111751409653960016201959713429698891923301047894434814294030235557252364803890615024135307890441813701394751077787594130840873855459840118658123086285318068929021776138200286438752508904155458256909989616223954982986657152020580850161224918371265628982461064880553383135480999622621795123151455726322864517419431894424690570334363102562188345322505524511656105119387099783958495017803739090924851554177354859334193619227352360532327252361259380249934695605835899436532555075068297432396974741016188663938374289600349151765423267029752596403970616650276322072841243478748306554077931565627523108575015219609876572407564489799141654601335037683605565258798486969848517867716345885974674180473434080001194623653469374018661621216056360389862644409001006984543137454843039566562845715426837473567461154754231382918354397826443988069410294280698941536353682183140993106859708377284925285373928725860535560076082166356943061192399351388170383549507914570456294977725826822761212929394033017611474701908522445136445983695458318634425720659102605051090533457222686838079354362544130524812075283383181982308207211955867679974677963941846202037975640781099209410484775902032835814375261908695887206531026066625490228086652661923682844319046206095371085395017496684434537414430415125834541593006697451761729859793431090721396597210236423842092582767219786147935296074756471457779615413719829413323485676776895994882637490646768410993398103269128534569827823734166582352978079997612596442897168227189153531920896784246280986807918588587312413123385809553544602405221685887065268582771449428901754578512918721657927903043127086047613949861330191820070515561802549682128802008618341528569166263075953936325452656597406968019734859088614926259211108863239963299135760984921503275926627874509408716577443933384818948641152171456406963336320183299511211874317360255506542637340257366470441984218128923775044972869372042886139702886236491616599567704370079914580241464283676753545467437464054749562130877153321386877388153371863886055441997907404950513153956823624616296762219968154903018359933073308037114700251340362966036729373164146504315815565084344270038306672161463373962907472891025751556651514318107014335650281667595170882402105449260844981278374037115003578508361727546252531366968953930190319079551164394492224147440372253598970059315384204739494070601764379378031162613159215451159277864317372356870536298122425200118461935459477732701830184357401720401267850809485664107942684184810495372414297451241948860763547270787329940841942953276991228855548693802362429793151119380274701737745950721209981504548467669693468899461813028217984219374491934412891755380466556080158183438721625791067373528817367247753881812950928791042978292087426144844856907658349820809625759523387830146262408492583516194921516633180399708639866993391862893225345904761388719063088382627776205961386895918743152524907923719453800024187946678933417395842655192228025645606433021009648803192563815151451924029709678400469600531475131574272276812987580920431201408865057561604196159446919185864725742572794852621349831077705300165498018918971126235357475153571238151566031706080143588512041279942347833444895313893121654400333306471832723316059559803625399625652243921147178099843408629289521717866731303207934477265684604083851661835191972056811764875556764112492580520175656368488301523884402601483760687665110092407258269798128235710543706565971490156974874441523721623581282101531430126935488239877492236197227148221881812484685206250454071003590134517780317327591316776807575218308702604297764543315969267023839110784443538749624207673739781928302848528215609031369260449506427762382029841578373456761021636693019857462735459413174800355959404606729778064209263841135285246451012745934710335969800502542228088844325143351346800455442954966811206318522532417870035531318195968270521965748503011173971303335814209176141944980899253698353734770106357369910586167078468755404682265977271105693002575463757198138000384496044963495423420827918326416896077168572704701991368437697635512497186745157571576208414744377439982857865806400227292798036118968320891278018261150557259283335747262754372370941498990377583899888485011173372364277464537238114202115011009720798101179431744126543442200937350527842560414759628794636319957485494384323091690242399406357724490982731923026151156506123514109632096449528686935384873990699425807169864842402573926530414157201405099370036886794586006357197370092733028555108493762144591727682415952972806792146903014844522197502084768309110097707355255779346762252996356469115501648452584583125761967627269916605550243245087236656041517099900326821484352511608018586030693259887384899851708206387655922639657114544408767707804199381077669353786534159978022465165256909344022475558949299641589197310129411820362472972486560948134787604039998138787213997088759603802811274102240692910582991954081214827044938618489641626710162039525519285478648413093972069590264500742507683043455443394648523829723649350956038268204601168782334943569708725228279232036248179252099053024091307776841622036663979051486233679666339420766086443368361324290052952666037856880769861523360427635666474889681969615938934832317630894739656957089000266595292147842338498961174656731364374709347525114324200912286194321428861674712809584956016158363600198046210528842047185938745281208971045991006635182896524599354482598267180622962757530443996331181935302734053985244017801839097495160784263635201540647638050213055280284749432849318639386218148935219346197122021014043377224604183665831652345564692145805356969736735523355089576719639517690458007659663353685799297894343279239545077742900964750299328839355542065268230722513060089947955174173303535698423472230040242955590459712090699830461921395008891111356444006284884586209171863178012621414183285412127286434000317010304864323167018295997667776066293025276458255092861433170331408310399664116433700575261862305099579274402539775973718737581418799100359813610846431321535317174713499922542506491407594757335342030536193896639071202692349585219868607880637074894178257290943776386748558830006804944176221061429407999880378348882968314999704783550164321904465938318225902172705948458470540566781464199309652014136163224003869120404179448721980736632523562165198953222332317463852018165676359234746775842402066987970074842143859547806869314438333406934884470419040591311858596117312596619115757929770603657794359017969657587949187272313438940845512814359121086749649803608078465058904118421114180241211593274839085714268853662189709760605034409447945264564646413395539854336317448199014809937620881507503157736891898534389733702284466548176220823285186618996600454018306819176904266019908237072374995929060523460028311668314569462771305801835832558897573303748297346067037114142033472892086390245170790515563375602604235902642179860788798495541320667331582693357305979474721293886351334475334215098619270842585430442799341253866294780952679739600558056647394852616308600044318263710182690600290855015962275966085732809581800437751924598138308441953227802624142462765437146375266985824966229148353922049063689317607592527718802702110581936177481265270478943321942848043086877316894534376397708331433718229179140045382527763322941703083215729025301644493896005988846178899990203952882726511967243854281806801198012670597849737096568974978014685907733597711125708611251611167196648414884263073644338256209343656978943541083931392623709546265202712720285147365339109835924083096944467512277841895502556143318854167721102668704900136589103429656487880724738876289665559518038953850624259712442257190439151981023715187857434729634146525431234655719722627983824214491161773559915225156995268493902347257127124952433656773323716950955078959764398387803238368777404494798090593382783757291071198176500206408776189034510720792555766132955315824080587522780525727214372226073450918322318687851535910284210501911032956230465417650006085528552762296402674104664596105003252402163403570449208336688464291237178733746889500634994012757791874619495723703520908110546739719071597714761782957141203955808065775257696603874563206270619858299063943817473806030028999217259080988378485152380113174445316341358002519092217487290382332193112377843126332559305768863624330821781796086225370435795650625029703705212287578305106146884749417836256203447046206011034536258348905744546058171948710047347162413883739435855979914260552471264241553884074943578301975383682245545777015376412731409587762652307632027727120118722886387505779885871358969335353626037093639077210572000964125490152478535709781810834505118544489762112098977272183578906520720034961746652287135285756856407727461941366216973757429900991840130373671777825389398791196800984511040845794642919685169738804506847353475137367762487963766952131295239623673318899450308138701299026158518290152438135182669266012380759839007360358569909472642187725429543828525605585676844287548816290160318916147883106091946182477726080246334751353118719953788985727502159881469373484238811224589712943656192516597343535879565669701469584308979451100830722592637803125242802377999063516068071654718695390450200012823855560337226707392383787004243201093443709118650359009748618117520863827681722437516032261086273145561576702932444913710919852735247435409476857591043902834268900030490251392773122785121349583452915436649651297434795558099794178915790614082313356282010451227063966039388934859588369921156912390326519134613947546831111222888170775899352664990211734127893032218359956150452059855221386188337901836962577015718788985786828586957151471065029111061871062438220988767762230328746175426215929307240829873105044297776972481771942390041935911938664360949912334547934167004996113819444776076535341680589939411153944309841378360367696002548732376944953872718801965921520981261126087320877616774019175652723986193724238394049718591434395778955011951470393242828230612845829396926391164001029710412009900546314013481457364112310453699522766839589774880265618789635083457547197861871921173200400665922063197246280904689319733457483450480519906973906483670899517025237360675775678225069095069988885143294337737492271542299444070788255204492579724184426531436578869086411425863438524421166566648329733037803001520330919400069072537560903070138376102460713429426864955112008098038848188862081379616463135204614646019476781974661739936017673272710397419507540171970063756336560665330015535621442617973821064076165669239935181294763935511719733988938421861513023036881171915283910842344285735963948780182610064398650323818797525346825182298530845477797561774476551479160330076253862175667408071970511255859567310540397002411029947185660873971237193394367341629377946664668272930880166490749510525668832259628275820944938778909321448801939745134606352250977036598912315158588919388740901847505360844782164857041761767261380181317684547553427814426436257360754342205306035854839857652380570669361807587949701822338353282915308805565789048115816515123280583745597346059871604641536658057073067323588850233588526883607556530897690301478690898729080941192872995890546419197705990204626831559822824406005735579122772051721905189455713331089472031820225529257764621011732168177202217929405338109795742622114267659021547156731511585538138759382460047319628399491227215603794900384288076912733425674017489648683400350092888004887233353446393791138373869434789227261383358588232913773172661969637287962881350066051012764489567429978481627246894436074238118374532960438099671298585150871367599500819123306137570406973195364029818790145455552842723185216644252390401163838182697274676635026157795375029165484054224724433808973912272967510385542944552947923245811098177815256677490121684013775262104763468204885032131218135544423004633922453365608500792491763874650826973361704142207347424011125373089714207404002572075854836736971956009828347028021274372177848730903303585729049660353264336408511152952481161144854786933259684697767047693723088952965827294943244009890699068718663627037668162985223504892802171551716085910020539920537662776241681802731328163739651409664538046288934472743109372643700963016184945756504845825196192996198054072897863501160175616237442624713387553108566352279207186433841541369587696318698274069429673323252089192875228436256957760994567042078947820805464059404597181627119820063530585450740493295796846818048673843724150161826151844533776753871810876777604747731855011574615789726560915627508836418894967046450846777222238216281936163378381944026989563897354075513811908571075637735732781906267490244785312084327186813242951002948312364615091496304378299838895218818144807335617339970664456540561742746829132886946795269520788601243538632471369721242779588833733205581766303433720430255919596316634623997304387078101746869360189194737816872285548167216512401325676518831539044646682935611669116099188296829920751086459288268279677928078905316241760245867790616806028367253786633411247805546872825335728451127449122673583665650064224987906780324960877680616142430979911670452911450296892495445015820386131781842777039439944544601986415613655135418352692936300601313006771410163787794328297505857007475080620553962534698379616208769455413238652981551380773451796940471554204148806456329922383821708479608712036594714909361023146372903087329627301780398469457028291148868329519293451185727929079151573773441030834173772656143426324799197776067677541518513726026055625881844199030891788495379883953523051221783288348049689343255079704855241159962639704374486526619138415563203426901132686819348334295209797159675447216566921495836463034824576400290450625367453917767573422078857860703228222882745489417956727150522751197153937727970986634322943273450061967489534123099037956074785022096951937669298922922816512069325797874826952807592324312943109892767045425375198173424304684420484529748666309034558909312886317273682467663632230536161679321306115702682752705097375139442935318539413819297945131812034725351155510561883228904639314366786410226095705122326011214593511784754612871513859586151866774690545224507264676842249755081365602368506480213308216511520869311055678700706647648146629457709528976910590097510407522978457422690314889735076344955144858933046096759088916411322324755401257596665815529161703711685755707061818407094749259875732261462665979866266166728559023798374558412780845907617524210783670905539987469793295383317484176522024879277122065064902057501554245733848184071476428526892499041016915444935588722723117114761064916347707061065628025585822384299500937546120554361155591715934118064579857915859033291288309379789389866496779581614827276690594117853007775274564233934393619280258000537705030904746747904976818361140936009270329864147941539587688355246660031193485619816899470594684751149866277710006618815002966014872749456517734207409995931582646680799843262598032511146376413516629632375603318441098324494882493936682427069663289204002129802165560852391085325945493979054669673593326677721157602528571033814592955057251007077155709631106493696051337197530655220648016485698332468192164460140907967988708413081237586499584636831599700891343910182136803519044522376225688762848371274716061732714965889507160355156632761299389583429546668619124242704949808881652665085302143939230139523044871521063058383722456425222993480946266112339135555823922593780744389496493279896725937040972757524167536060692863739206914259151981675609318857624252584507199338992973250302363187185151818719155951392385280423562154044117276161001688963104724741637065022050053368255993363238519418703934176621288011998844695548474689948628481890750535693331892132411566694809849422750933081457058060322969489247782730179272894768833052188325414067341659200138619618963787469510852184426923891922464040612556112741295898853345913510247668194380184421026465404638885999960657943793760423299173056171777088608048912121845926783627452471559978653803130850437989524953573716828333400296901181280217530922375993644847555778670725063904834186628217712308821850671120797114602372873438022207646713920499947844098544368923825965457208478671931106730522640653228927606692359710825193640367790089660342048497799807457680424205065031452915779288996844162228347666465561200820854100596387203623961214877484100633232630575707936812168558731126726671044718926350409835327831699394419034657643898781188887544412100497997657970321858972400515224472683730762810264596151888059270865937149177939712973285775757985690859091899793181369783857048223103650105129223707426235789877386973611151281270861769045433650181221054085074226021257933198431665315528931447282882850774741628057388592745469408741108561748153200636452481423877523036819538904300874279700244817572851511233072818217781731860739405645660265232206524592392727211971104054145286825984000789613400238126026419221883452562751530646391823791678508821900625967211961261579724811335714288723793790179113325002942908941074188088079525762372457876083450299602112272942756642190393668007932165177284770980631855009378942068525204124461980787393253195498435498641664044164422470409175644558859927097546050681916463058091424864651005339147651193113030143573728965340078762481242104568389786921285995843445597643031438493920574848871431638535796255513720939068384226553279930801611824474411869358155337480950375833528139216975586948490518958808459582518399810112388939930434075719491833018858113116386639994398109563580620051113153171673360542495530640996377895585886473650137831114631626947048848003796342546268594688180627440567894977997305982534107091881068485186377096501767101249860341674888341213742390471715003429279084822316715872407225197498092383331247103703575069958062509414394927618438240285278796474576477942348314990391385725360850882809579632414606719436212312528820000247824449032684881236087477999019267052445506407707539149690439536204642608192334588512554298747741933504479574952760227204292188252806169079831658911554318195187874709677607763046588557246563085899113350055074063962686336780464975140417104124243145262431103749511919652497012331075820515461936842964351393602694468181420881696925325981041757687626135576271083368538423648601597832962526911816928666245686002236627358711332143110956007968496573037267127596855644641706278727968212719863567389175163246204710017433578926734807339700249059703963918827008155174064153300279765525965591926792701799578768464007561227013727845384260707215706441126011534610966660417388246251472723708956782282322974410552171978942156939930626434550426375491195880446686886518586881765461600058624857065300838682603295202837162123674816700656602293726018249088729179533057515244351812232392978703474928966457502953535210496270990743305868425110931987128794404395812468930320682764291671997353408431811888625022559168041001985268107250321140097856621256121735104257038635187967609118433952171370502888881287114007899612919923428852948471409942823359461560988255604650979207965985807525567847259740370905592530488308153950643125679570111980178706225868914130486169841625600549441079098970965232929829744687142339213857621539799340762161026740824919471152693141646194813516247146474737516999056059873502213726109593723201143003606323092103805446600372075994034225593485787994675242759844350548907891246553235676713143385123824690509533236927373825687147841794480744130411638134773260303493934564847487416456180155223004634169132275970225033579165771480924628282245603966385365808696918936995703310226778583793407367756893599559400669855107104530547788176460516734983036497768163641899997440145713998855262000013625494528279480204995434469381238601572907799609884719702101850684439814452041386629177854958162036035346245415187838053636260690963311129055808009814353925325977369750711197700706917775345050754229462529712043038379797940155098579430098192612698360634823215035233901324879452584997482084665805303562997709208849063785222873087456241088865777638403415850943603261657602292952486286488763852142912912893031620457582786239498579033591411813105119870143728849605251662664053132378552436525032517141480318775031660803518864926900442961914979814601685312231736122633220327034404476485296292323933562364600740827169585302924397040103411234187699169229716231203853640423923991484934344092051213012626821776449757860079529036783467489273225655726760276920177829001448524871669253859954338400298683582475551975751389854883799511847906536141819079715988462100921985844945568396516827359405127088536493868991239656578540539951770071484521378080545783859675259224999393780520497804431746683166697376486063847028485214422120725721158724804773483578695057976424771571070295885750000099252385719503723961941996000473192272533914045586953568067269163584831997599904716155373091648287778872767651135297656903513395204640828322041443525602852685727870588337439923431582510812104853942093088142762197093130385220597090049489984548364237373404519372937199831590273032011817195098042661066234931473995404767379985283084069189247011584590364840358798791541298344019644096443362761237179013075022058232259750985163857100912517267238949437732316860584271043621837678135266868337694052383051956471399213408530047517299160508421790924837775898202603643791390771652590497615116182147028937258756880730870376693285138771243635735677592090134262585140402208974789185154633552273031271136320150933416457472255019756087592270067296685282969745769769867853220878424550049167847338997494566499635382403697758487502257944637576285122212827453559556881635313703599069364848276095143185974346655430943782555322581038712475098783014576119600384013781153610318379137151261509139361841023376639334015863255685433331990756949744897321768436337211470509940886144533528230997144541101326699134530091885709300527376054297860909083402701506493903774016645528998771463916154435414915182092875957795834111863153877529462169789148064735144357833274596684212396741715503013882484549304202037485268022471123092610170005728989923733285726848170907934990056933420677087400470090735606286290889093245037813065571156904216770656279591556164982569856274780040843531413902456222478113180754445366590630827929493757672937761204105103614737185142057024939776765562804029880085465718884743285065967830699490821561443971525152956674713793372332648423128203419252218898262956317358119876784090094741349160234613673305548006188504835489285414965471781883967190368748390038950701849118752923664355515092723207962063232185010417479847367214890513185404312033185443335071446971752621707209601648708729991523461446742546515339065192011641917371061357914881815986189911633478662919307392489020095871332328899832316287845959294339686927829146086388765869388395195584885833593950145920921420732574244006873848017153653440646745934454128157866469183187170019423292854933512673640511651612128607856792730294110556263570473360711669318626116732556464064673736618290542172835568023941522190859628830471765784810935053375319474476414153158896980073848359954516966115013689139482606684666024460822602176419226529659421643620492266537483723417869541421324342740754957909190278774050837243254496034289245108657113879444442524671251961185135995516712910496775358976341734938443925993176200825357777956667400585462614522739838029669568493668375585975170542899139052229598499398840846493826395908898000047241067710572537642483584350213707115823389484482160499376709132121752523508396307804187991040497009172922682559180335418324952055799201411119582327808006438605573484486501086662441877892664077699137015701959237600478694618927831542526982475365253755370524122867028111255190911672161575161635789595403050347103300053310823530646824588210425765493297290568991176740258822498121747930326895353450865294961999697195605800012633447956538756790081460152259174101006637724167061022275701718059234424277115830396158224562274141856859012233381785474477965692372146885217155035590450629123419510124773106127588957440894696138720787262402865700184910885329846500167674654869445588689651029513721591101248215648875526473788263035417379496353928066018648443696664008959668946915491352647609170361279259904674777002603578377743253459666178049920250421647203653905031112551576964501871545501393097096211630886414350465036903365106859323118575668001927123248213011821067947514562529905599443169943586104496009734539078298717403257857230605569670724129319597364207194249702422520450553784194120005513360254122475016882336116046052349387411813809144681044438058708406817350136931543807041704388846733007272745123710243184556463870712337211494420582624495575022900875937363349485418682355529631905510031327452763364134009545658501654915806427562396368288420458582626320396834635849882654704857680067435314364226966400822692481669254097510334271237884455641339609637011723221703214165242176312576346737264176280902373975784117228618594406656482590143375436713047664386289406334738918895959099464916111441610092140307209745636857710182082949884878184492494172034636768242104190163042530432113155202047813824973607783663272880390033089214619871839204767019740941557062048216138294131816579758078572061644483803471213087542398034645241109548204536045210279529101010933405897561630576906435178528303460003939830803005393399259147505436290655007615251600291935680382931748829911086257812693470465033635132586000953754018918279348377944937977439686418638012833729829408295315105683226836338642234068044979716763782646143822666793935256809896984399193035840504863249127194221581067013216793085265960041491274507982829273544889954078785092033663945297794163158698282493308669693534395039839366253789833726557310056749523898492814292565429560844995235732240938525914535919205211729587860446103742403703305872518646900192824743286558442736524481869149265146558167417463829929198143478740161221070195288335095473897946561273099356826879399089334357630110966960795819160428638657877400855031395837284710608919648191275502478483342963170464889988656671785785732909970988154452541680983342035876815376636343908948678439543605660691022090444002536880169742294787223836459584824864866861628966809490695299324156111434809305577888793262120648543948126136915086756926637550323243037048265577340509121115890250099263427064611583908311406213769012735025554093164510420731688018333305998605646563464150249433604762979276532440403450394191239382669446869281495218636018752066768833998534329858169248285334381517556137235235122460428864681320136431844865948509925822778995638169435433599710417254112021394712434763868990078665038664419237656174024785831642388320828715984184081264407925672197377209106414358201017150351742724563123459304767499936897025244450996717441948165204152966247003559953111611786305255801004472675791295588214560374301091894435013498282041577478992283776567142392190038106967744269836102051797584411776935374547283545993961695639015965436920579166285901182007936854915884610439142545492207066153966998577823090022424466607737883799202182624587005241261509585660951203354639559106875884412704434129058893793049006482003909686302745653399376101384969459713878966553734647395630727517809475364669788375000327163304962101140888633362148279839594670495809517171551571834204005994855204888826919324419287338702369044366664389205807406277891316023674416199383806358130575336304791183526198197717805321031951990493238688464194991773645518127967900571558941588611727249441966685916103656293856746075995581886676139740293412441160374779374738897075040537730887081316126215246517497928988273862159936632462204246943802756517044304979974744261698654632039682658630527671922287507600222338609276170040027025313402756026636982655730931634952356927361621981187050483118835707104398926564967840782215455677189517474003544245736762857295384890143068853336194875894704315950558190372536557201050063430091900866234064314394640663445534864924658143042284979260395092025123108572066782720065445295163419422650278541839790747315103954503458194680419086853018713561751561856976728529884953559767619600222806488062104816714407824887385324959855941650504371923611262392397961821038396179418954956563066678207430331533450155171492743061757618893957076105830460497351291659604200636354143624373047927526871292821130197138475725046194584931461938981288418126392545829897770789687809354336134543660398383147387788570101566154065778071458745343032389970252026802176880821214327987935316379962015600333070179114498121522850418424726874803062352441889027620130041200420583003795752668469693057306345054990175864973206246368552334775727782477243160929969900537023049399453736184440762831320226628229124825208851975863905412879634287542845325156325882979023361036843567079329143660154354423627979335719286995480965257731848730434206405513781670574225120314467425152554209672798587257766984060692643079865835367479568785137754044363001436393165940691506682769162298841445849625881814995992807223727704360386288330125363784069180196644242708195726343774677248634690660533520189929897340671731553680849060147225843259277663054073009830540909365827092438027785489993864629403081368554589365166879686344554402604247152795836237597008385388806004841649981834700741885333130879336494164669428266481726199271275988059510683990969435102259584806706246126006965804926761352326703871682236229146022079802052337185876554685072430802276342526065735569947135049719052410608340368291629108475874236134612771489704771110679473074415001370291764910786099425794484242382083006795276356084249242394208147953396048430524051149341990624495166613015805367703842317848930047922169919339854488528140436926640074739669163026274657539155589466589712314821094934103909269177365606966522200823990916423005611877157931887535920120311727855563533080588404963564638892767878706863051195301218811015035914287386438366639644207604813062133557792340023928580074252887568913342596351885786999151560493531464240683010260981831322246513991787275777993105761406046068982245031789852720370444983002132595538303036439178482673588894825323658234714175686663847114402392489059862649069877342803522153506734866255769251763162569648323153673730691209866314801743340894852430719063061561255338199211099775614049051174328590720745207703582163433225114772037466879183918923697290789934096501345967542469557861143951051201262416831425540844912506431337630630429802499401980563638458993554261149174949409342789878068593220069130131737028867631710069852560671953001793728974661556975959527628404404696415114069491608274106034442887787926013004411048067724821646943824581108135700324270038569591685740633556264528874888012854949162488206274340604117121420961831928477138924936675167512327291701978892963068274720851365413014932723766567015972622352959456748859995703719653597879028149354980585393055123081521167682958622748852379421186488885895472857904212744202380546741815951498924570390383882246258409349255285612505893207660200378540808745651615000577109677566167255930885857183727044544198856106633616258079476776970025975326097769653281240401555124609911428100937483860544852744010021570086183242993126803615364790763374457710119103422245327593997564907858035497848879582339688882397650798674237005755918526258055919726546099606235168969149020012382189689659137817150945710634415201773372795292758849413082004217951039412847045931841635531914284845332523179058558196414277458595044228547071982112183615637413734668513436650018958269916751732477157582114951604866576833765518481650648184449812891420677582955837636149001389780843752897321654588043760588544198237107253009872114986687818967890728081563442559999545504494980709818132444111008020260532464549731218027278774710167262973361014502839371145982990511600679577408307303287812721643282788880928614178024497946085423972691803236263726858629332569333664228555461941819866287297604160062549314284297527825943589056717806218673460320582589491847889225650841681867046110202290537458243031098809044196474399859529712010984485926885801647725203845677714989549491546716928944364749921561904167724015686879549630204701025482145425165379217004968275264895506384965667460462699699294061151403157528942227579316079755949996568512859156091216255606888247165794304173701674772372131620336007216628693906372573999438709732517444664583650497206520752236518048382333302580617408895404725858332291954727776361707769411154116949715840873627125361791771781124259692539175570860882238634016854826168741397855090035936047275948446455430308430591634905150437856948618139671640261679467648414781151461086667153924343216137604114482837264096911592875107045286167596149891613369383079898760128459205507046812965602663919107209061093248021140058567007616555426370259491320323154985049716833707639548715545264246708810994096802422865036431099605846087762675744027979427634603323008074342016732043369076720316212427657466578371862014782701055147252736445554014411598522269344345638558071118766598720583924034088390527185323430588818603142307174295932483038558711347895613958076728710331358004137227496432559368802932701540982759167055451778254307173340743280183550279242834975616201389867544583480854720502159346200224112536082424620258731293733901390182785809465958393966495085808598293866899089665681269229734378460205721099837521737545392475936881056186620345535755076494502473458758494432069202364494433002219565332698312474539484521709373622671479409937699303206173737275387319655027166534000305994627291587618819716514523027859878666640261136851803147708082478658404916165805600790421935245588762369270210188464641081378005743472026549036076831208695675901904229058748064569221205924141742370803078084565069033239203301149337270658425514451217430932027011084479548071246665375015685145405969738640567493437086347647769972593788980520904496299835514175535849381623076245558568613591729288730252998757381964468637691518465445002609036772640834474732714469093336015913544530195626444100583687039645359056638107520555882558586385994480301911643446051947581824993817948022690314122008242521303199496228302676519129256408951863447902732292406986419313873196241824416604973670958309497481208762141714260406661213563282801126257952623604655536049761690014872529355904575991642957187588512629528506496956900476852326654760479448901172143306491888967322452008957514466492470786318877705868637952012180031128201955316716712060243362856653819020689790005293182578450597144650310682348141099794351157516889995208514062598498226547118397011590031352053369198654411273502121527141731711778870614487694401813216654229231740042329200886755019360263919827938213995494159918377815755177446188973131135887922611786958825742653539962833313133347553233552350334774100751405312659103526846724530299774129691305939400167120617815204367210643165143199511054591842213624968719477613875472373814951151958015286717975554580883521689019022149997999613317519164810951112200038389115154024735303422580102679974378733411348584613460804477886485418852743204591519961025112405778097221091520990148443175780262484763810663588875456125042211069172562406758293699302393753781265060250758676322553537561735975773890216528311208363094106439318500409930023800581358021051350981547368546979909672936188100042099736930415461423974500041516267944753734234152068942232027406411017483405248401543927476033129748942441606066503405675713536083525702367953310438820865151975381756956206776750656942343933893524751438145256584321450935076329396449230204729000320130066695363959734594179306672769526169888434332811178801663456713927319263557895007695937962987335071643763612142649415119791890187494212608807189170701221455965744107001430978235070902935542704358089993368309386114835147266532265834868035447898261135459661455945410146725041939691591423151383362521211708595591017970272800056878516915402169180389479199795947862192578127487163499703773135932150933813777260464862728709642557002601342532849689178145010849837470753662897668123938621102932712255443702152485770938062516176454502493239431625275592912873676765792441840293777402302635668798469678402515117021302742379632230730572173933639711503487672304012911330274691362414129428702479297450504699123905537885357836168984227232564181269109272132365250541835676623425747346952005434211593929450663553885250411307627153046761429054128248631343013594968536715043280265277266345202600030795306088389446292826679677659657592332817807894463343017741366648782318156637116280072717287207566059517770694677889799351620638410512863038091542423818406777224166636655383711827229794973925464330890774897865433590832848299669200921035298257601325489566706216786679241413766120620780061839491202253099364324716224350958297369996324759183286790742263303468719608040292642658085881278958777332902717996763490358021388990984527950514269032501332859366215215822515297242225949271008502467609273631827875777805283982981759678125193308910871419307920668647362009541756980973559727959548667977643149729933045836117118423901904633502464747640448293443182431347041709022651180514679427443456675533833684720197097834449037428667060988767090163021866103047395303485125875208087692685714419200572948026823839669790976385153849249008329560998409368506400444444186660081856245059642386060827041790981636160140495733841866281617129059048360672393657850964467296740641846077065056533228074125164532961349188199744055003976388083153184666462577744247001322600063403524519885423683182108769017739421554328320029828463028769847041047405095811359553966012732055131616446403532941219102226641083466826027872555117567217010780211192124918641337343599816422972122862016176406187008291171985519204079813596812322659628478648154406176362594497257872853008224302094794116682105426092838347600904906656983167241015984731790908688869576170338219911288501890534937197132106406435129464732594627605094286341002625081200010838581653409705035988500085461537827548915090890939795083512555751720381076462907816730424241946980222209379410501018772118577958067828991547855979370253555308300364416324491251340206867581806564675131357861893689079974925878087178668987742471666332846246174490048573660240352808124257874843457724982526425109196781488337125811487295549383356049744689292313206490994667158792632730424414967159676759151378274144693361504532821321822692929679450393872622684425687947195157484413537564533589444886266973247320405243829275793883842989095361421121898900599885058070449390916525300513983069633696566262880297475613065998595539880608122192376478484775590637490010481914816857181517808033652114930271331091389019586284422478224230167742770123387314181326058306757838626697028025192862604735612312127321490974202060437580932900346078072804286276044181801742282620176028642465109124585959358604170952240892718220874739109330418739034818326741740508485258808512221447153479153530102408426273665120489388653878656203641772474949030131935985713465558387372320834515318601227856095777290185867896762122010292777768289072675554494196459662499904009163407467511312814403879498706986788967980459562410705503184099656217897093265507922421614492957688217086433288181579148746957948965172254020519299312673938122934010060361940726449447865282397123105408361939183768581523699627107092410972138291802661906453454312379913648361370536786292541005134092665256264256149560173071319974265586249504843640591070790064144740172634707077264827908175196357564746466015753027531981753748722148393294166095107734261281984293605499890384770978896652706371931007337915054674546425060193312363839125127048163983701953447368452807317944809172991239715284983155536823965073725819047971074289664630992496304657189303475954312568292798330641460619172687419278390210819455605259147758397963756755568915112804067040141033996022355808092848865425028190153135657137561014053184938095824217268601585934358604687967935506526513552189688691264677318417395569205045565622466043241212969188510281401458302247991108243434289474634502733356034997810278355643298204355207023778925001458197181794243944413827638670597995127528831904577491899080735196929667402863541556537675916519785815952428911952103925649564784797459345041796962554910354637382350858141645297514283149116101737177221181574188827316533497132320581694154092561936711232293982371095672653487407315139190270336999595302296432920494665396671804497875361797857156694967433370787529546079593104526735660466796943872243890682922670572748159122543616522717648678385585878577655627483316694085285848056160867352316484054766975719996341633588917758215304922867818540919044674263428589689254630138574324710119083243596886212551718894139438583183093896622628387637525914056068826343031844771465982640719799964110189873951671934072797071179830294511572869519904192776173451003672761107781161835159774032106802834698993257219504860478472466228809021431164095833868448108449712770999472036942875346474946475715374806915589080955760498672604203007105464388417475431840694040772450385048348761482482746402739648235315777434298160258865870321875837802016876629755197116661745039541219734162295047875770765132670919098347678132711169695332567999029851066462965096748318294447696855612439335890559537222289790439881697503355938403158637611201769839692728381380787456813247873801979748254289925358632128773562359311567478739948705002272030078559694558165969113293560099261944576165872412850695350696863988615913591856023976828783999173981488320930242879205874523350905836754554400737465073615367513821542675644781015198273843910250061494029527198328239774369177430571767095828732478235005515869830160550187887717559408818972180887725462313217291798903419876149650483508022635515428401488455126132703736577194156955838620283845607222845045769699074967770620171274595535679541610670769477129682591649649975678269661636921483039505265093691492357515666103575646943617768613050691346762282048756576745859132092527108898271220007298755427433858244066341199806716717146541323106387928974110774890379512260915406339854767421286685636550215649786197684443446220917505215835536138303084199561393966089861848714935206648058127651355190954637772394160912271654815317289211058115713649861458653722548474711110069601547101719798633802916575381427850025068051795948730836037411837740836027540445154655186385780277488084723611688944668481240378911232570603379448790608355401988154622638796678761554684824077181889847218063533045157407770072946274082660964746463576793122838349805490376355257346291860608943224708937936707360623533959645140116021432109872022280463315980936660181344280287058019680007156862833208566603372797466456512958829073377252798539751103932221472956230792619776265441015044802173789994163400934527937964671404238989879049476437022037414515230327661708705491530854697884725427790327484757950409590343385434951041204574727389011855329056272722336689538225163615290470519862865621550579355919092781764365690299831307962071864252700999825226688174587957179619993993460395685019907762069047294943492675291647031064264170503194263064555526275674623499744384794512426103391033741918760892364473834409391713889255525210608074808613189074333390577212635888991376959974737843216365389795431497945810363172912232653098406172198245324027452296321933557060337603654258371040117859718387791565820849628116335962279317122448930636338563010788919901748989629891595320933405135534625067699392651773468810495355210012704570896109838976895013241701621195385645910149585371932528906901844933496785061551717357329048139835016405787013453130997592272510086697411531828824547164004581972423251508524652215693786792604741223896559983029595212063126659856683741337478710925241534053395819246339834006099315902952269952749782022797909314626878543577180864912223185499899589781736044150984560201147742850358944955981217781968792920012800661258393937315813422164613500018531855676352961244124640489468633309608795551978643501017671498518081032303020871105081125120205498710117969409022726003524070062867963825809725966157464031752126782507510453754215019173880305603621077293442948053599332020438103062465020103697970908791702697868236001670139308259901809352592907736857134932843851414436289890636617742291656038940981279637474243793329604835236171348130025145283218535150640120496653393825985874936681855888950107627079819946615062294316383336828011991410651596492444316543869661720148382175600764226354116083553035429810944879244988187633098690239813512353247709549341737603983289174327054444969143254112943991414353332065136800138461549718241734257321327739248975302444162034835719114372171123135233975618776607976768929538628099790615631386400239320816839151357813841673939931563722790239824822043020999196960709212095442768237626705717255188364289227295579207324200202180736821035660268736076461651420481342503798143984596587393092967023498014000539694949806833841756261613609108096171868383352111694358046397551607490032100749534865497639163674829923070807335572387681521223822096740076317742176318951197845212146963935266000185292722523377742189142781514284766037451105262565767902819618356297888180494423650073522420693711132681448434605172851822282873706098042758796694207527404875408103284235161933644514203260295957675038043043512071155447737901514265584857868217806499610083462608173034314082948761910757441591434866738230049264945188179700255060596863911773852471772605001006889754128622204642007350216688887166801565973808702778116659650036869570796288291218582459462105059812710388534896480885992260029506577247668556966654309088654717802277649903676391646903243427109000605460797646575152339736625961682413297898172609063359372162023448636703473907442316599324281771409317621052884578430769942491514072785152317249362300448842595806388232938700992526004505128911122598586563426827473584915060271203563595205735440031751566048765071397027392016497509101623468809830399743659023519905569406120097226271047448941523084415668389958597733018222084857287135247651975384397417731019542151718823629729041351170375434592482232415290683011606034568832146351839620927719220196390241835719128100789168084380532205258607860861113535144963134239576754730541735493556695789404118223234947959758444651942590562421393261246785038853714979059581768330432144262535712000664717883167550539712560369397058921776237429037711244650011571392611441249695657929621517019849416414388642061650313989602454010772473080544772401717164182019003435485756644249678487208406503368830014782324239137077493272811067088686133292300306106430425990188023527845606607079816093783927001136483406858221374846277552791914549933903371925171301380158201558996192548787561213539176779431384613049734688120411528297254632583028061227463426868202855895762481861451145398995111890784311518822791254635666549456099297836524607069498975224263199993204919406455739453717655806390737826840632111597120978240827507068722567742925072567159653135060209274372474400553955765426905522694470221914208610764271864446568085135919157880561777587175065337478346210688632597176579834883206821150668181315174888428549826174294131936753075987643612203338268114747424614638575085112929279010836538724846937235740181052174365121146322904237484029344829849544820709247646163898726451335025723754039758986343366095399368032154429627652084560550659406664047178179059876772107093668477299323896371655493665154972346121042919216561259635947306013046997844135183397847804057253828266063122325931918718842222827360565739514609627102394627284156616987909342785994478348872941572988633825528367735894992649900392916487127340938817264109712965603772056927939269256633384888224986022572671338132943267221728419275364599047059512982630279246478873398277050838141385012175878783450959608843016412935183541871225410321683993703527729782299543627582189825021279421957303028964190410955980739581690887515311397372004409897256265159628075648474712580891595346462647171321618786193424399091639483615697142982314856100914640677580373177575381734953905148763829068127077173458938964035433544736624375485181821276630833902387342479224936391755206692149409409539673111544295647994935423059010786514072849014015892456725812206807452468224548554169021025635124245095578699432543497530409770883410505390022506560438302913796379736949273190150528757586646347060633249005641920808189044643870500220205294978708787582859130258057343997091495631792196411681864797327248265463844821796453443840179192315831779427385014409853874387214847882422553048616474214964120170593220789453087909598341213851899484188364629571804638984852482677680863620019735368460752378891838932880021733263080025735608294152565176293821182391504510129719869934870428697389081428428575837095024530367038691519283256492246562234164396869081221771667793018093187766626813569701104081477733305291361413291995163611733768715374692638740071525203226447005671191894685734611615233477613308801286081508793212492018981536009639379092808048235005548317460662258387054895455874741586764643923161763792435545259285033643578850526054667146243861227180167514259429161255282412801823403083800033586405240756229929322547634912199609353871823837714757927751169745137852920743711040863354179454073458053036099283829857176037807196605033477517328514734548243632878860384582893208994189873878403178132857945449826467873350238028996474726545962472135398088739198027423236897500484921982897611043135513813197229744782849178175087171572148666230489382897713366768199373148290492051974853225005576727747208270601968408019844936980815488728356107836228987045017844812336409664384127991645021924809344205241556123225172044064150822940866183028048835120096313741101533517106097779790416430671441532666238357725157396410710666861199163083318357242478531187048953953906136562996005284181238607854189869002661068333485188164947105298044789868635430248988737364246692474082222079115289445361709801432328073197527415552889117638322655214941219285107499304032696511597223623222413336689024773278006719256020767675641049514215986186538961051370405104888173184156245221986151413412472905921139610433465505474912123761811445371533421395602143618914527329241116085089970233690967080965474753592196913952369972129347004463358289717887056409340929335494942555699119664814225498004754988660423309228121331268652141806371956413224528779642732498915621149181293365762808282517577146186439911322344596973020222945640325198189694772431226356908964230035457405303707570692193893036479287685120125828822444089815907245624132310682517709450300955597053515533218304241605252162978739923349031126282911180906148131923174152851245629416617015985262687125702147087809550781018834077777358683567873707720431285193424946230759755778769534481902811517963305946392263594333707000353333123010335897302885267776612215099676659898046226425143524836557132584691200802779353357426702385935586235988486078173606716866943065432221306413183996760019885999720523901793203900643469492123686938244256268888839487621169314724239556706891715582238948759140602062848774634062495967874207928083285312659564156390707291872932240243795757609133076564167153149813633959206180504588582167705932893577277562885483293209905375761829305807564867973743428963712510943031676195593199795103233713880409216358338859036736821486468448047870456814437202575512068495100705960313321354718099058292179962228877506876016995316201097239918547667775340344183815110333530776224998614265907592733172105911841778670219192168961374896256073185769404704441943433833666609722801598439635863437283890369556491576574038790279797851711928102482378310551204945002929777585180404781328349184688750274954064870252269996115543346621289443439404726164269383844425248747732813289819207765834453139037492552998524680932105977901057881753586650575364659946087486865650443952018361825915079846228052434292235802265976926299265277433952677741880901792936146228691242090659790717132846246635846659978873460767493509991501110013948602257968455846046134628000161317633581142909019849524139136785062354927085396507145207660184901859021557188527781610304839731863816317558967501157286778562994888711836797410008933356817214948339535917130478546337637528800603162579475383414118320362407682750183848778094716107305419839604687881391024463079316550365362913244552185937881454995346894723785856446843025789584649592562264444501991055506229737559586042045239873755882527279501481180379025560450039600660241124841996881810147549634751786322858511511886131204982752070073876930194549935379094349928402528628505973720832635953819731957294237933258732795833641508466867407459469204493497824930645840674221324578714794910414981339965781469748924802459751222785237437525217511538917555122107712970311184598198903997796621301017399676231928670630032002830982329532378807448844180114574356494527254941214353878246362002997621567528730319597469076765746179296458389751142495470187827563549524409037800390603431941693952124999650961007161033751193987610065961654741497468387813099782657211416614639278190355026429426716783039218479161501743793575885280555556122982843235086211561162381133460262960417111748542891745087647785050050490609266917296777308510799400221890053338804914821809150423390621331572418068839154053891341408147280387791071812491027904579352339883934675549231181253890908388495149569851178471297713108642645266217454607069665736429249872855208651713112952968657821831668705585875655052020220149605530813749455212967209341906808825350391867114895542490422720400334912635151905032160285041052364185949362664939466901847781320204622470647142405642492594330997373931458143550793381092143378391269065965647606476301627006249962916947863749395253542471765326714912591071029012044246231711595632958839345159095308004922820142080373967688967207042510616859137369680216730652996726788528148336049187663919003908938851946325196893195320991282729643193427191766215317573800507641907229535860839559177395121600535575663226263640793416641192791530729411695509489600407253532110378014340935954962765002009927427751701430384344875796968209690119332790899166930599608562664261931450148548342267453661316725007575446992286622398412979019842491409727471172531971991534373230841466108138298598794940346905365940566806926433868050189643310486207469957551295555845128555406219593763529564083662314662463078744742042020588466045514915543618432107007514948102655351993913062296563227816463533892263718811539019958463549303311394715358552969975059745867027610447228943343099223024584454703209915196807428121861568362220531920303493169653923696316652761512807579713152057731501789819708432681096655279740553435275735407417340442649954411742820378746284414159597071543152318802525750159505155853379926543108626106183018081929470169649139392844907402342575334497272941625950731121676300168351247297884812484570758395707097516891940991747375336060048035951637495686818947319067352358427395939338765763914257522240876129298869230870407269423542855078690232459265745463879447446102327137134706451756122622519354188549803432875238539299211317004683422444681271656584751396398341866815230251974091172569338986180910526542176180977804451041135976199684955597063286039190843217411008569881298317636336360358434594191020192171151704189272983650678479253026450121922817145857733020728321371000331675897476164469557028759788267078256165363597988876136197180846673039453639036539404278895377814214746823735921117498104073880224248212559558752582891601165860160357916296067845675952603053103216529088946978337662597750552288852403910744064845221996715196047378144786877446104165236130082207193088013744527356669221831147894546658146402936107948094993140877130030182957872407528184518498035591495416459468722622019421544903178764307663883203091526479274986108551963639979878815658721144714407193771658521838241369398316612102133152482713584902570171536635681247684715884875575543146528479516443484934612504556111629682603083819037160847990009093743852107441913953705079919643618986457825980761391342447236974866122311230215484859451411884744533061920769954131489733683158734996953074566848382693316026792759546541323283868447016515383647865147563137963123316242006524812860668483057425789756527318118962713232555964241480947633931746175315982500569865454714297809376058287353325665750406465224432118127868986380077583443620861932733282536442837841009882421402447260392485676907845717187956088160307093483364132539928836727895016983323826964292288943545313890347550075107447132340125291589438120324463885917833907539332675775613839350031488999383534141262054532126506865096199543729010764294311221491501207961138247775487116101045578001157633306919253842950516206666381225492431900192931645599697748684510376424368773942653034766823810114735945843899699988068272205549287489444037423926458578506023513676291253967884510160400368446209926035260756448364847558788922988864806851521648249456762325795867642749233659927603127465325759879174595463344202069909084181197449486471572657756444111893265713789670224636851757107872135748972123941001518635501312381807022550526543458637263339318218317463709485236777092181680297079959732619008726843763024426928463749457165369064629062539744376197728136143829443174863914969569622356342030362152504918987207342089252947481118963965012758500182869612720872297206168198197636710497869817280789161700525133789314307171638507415306946155176600638124592986682989156443230473303575773853484341083237382357168338001610072883995962662029309671142423180315879050946563902460659759341877673235080840515220218179576674623048977582059776384147629093689134539960349421756223217725580684499447018295732139903754244357396982487352262305424926665929814795616590908474448432714797422467296731141449010251246334439182976966010477343228175716047165271597579040544744048050023353696028054687864652544493826874010127698479682979612976993281402435093982517473341770969007954929005714081009669123349320252356293696872445333302095414836046943374131801193838920829546072449363584822704073180011917991492453599472313091097184982446681232497572794664181452923690003496083601811492970682259500660084145882970757928686461556103601754356834120151470133614901450910593095528047831875077769492017082914630651880244683554066149707352365373491038699355959158068866575951514004272897908370494564795692484904143644609763209233628709934392308235251372538106143018185993538165840003813148406608207769749566688028404927305250929734308848372949051055155071660806423661128063941570163396428848543905547970472849697545256319824041541980852042702936171859141472231652035032059573652113224788021823640726707129263079782492631884013004641044817828525757956972366725014875391207964408437907688884298890301603872099081406352508854065427595923308562345859102065712835855034607823756423426715389972279031191590923138105784928350354554615508734898801247177000349635283382044110513985474588082148618801275351957925643658838361566723466753413758447952125095540016273063567069190679793443780597418150143985684348148188448292210484033495004379096208390395422668345913070764816289568079827149649048665518303469221637338029876204368761945246385564663446769051344362618786529500556116869358763812155000051620759501018877909258823021066509651831948838180773447464424852839968403002750104981005883342273055023644769945124028561004964687254629359815451196748812728001649316431511455689682101941327201538916700785709705644912861358834725173353210219273791529532803949451601173232949895948940498713366374301242830924577407163167701206116504276734371161199072144780518372869440645864244096888744092981498613679296216195942718431775471593303738264373021972992150873736219123910196320595463278639206083639554846344025120150394773169471592417456819848495706388896626573565746634368323834093605662309226729999783493030311982360210679344426349423010769755868554340983074183590549588530151014312659268756533041499777234640188073699550248445470047220469549736815552768478520778059768248904296175383521614655189063961872683884530247249705376453343923103459123199570851503984271568950241465505954752120849151764469116967273259273495417515576378646583171441209533909110160985567126152742465405069099458050963774216937925609074853767180753013614860438669381003583731695017797340657821577835477582442386599954429584251964217274374344787903147561576019718903837348270212505645591124465843652554486397432049002061270294542468661605711441865131622814511422722224629708853127767193414699436898914435454233316637920264418402914533905952962402444013197142899005118461911868634967533956865828507653474345231832440122723345848298579135852440295739558244712223634794331789796654079549585861062343047376429686716110843089633641171796382383565735505492219592164531306648753627169213353340751697354086027135801673274020369264045344743614781212839832888006979661155805545074286388073728038042883237139499733901589600277454331097727957118153561570549016190070487341625553534663908892746819246526512695568348403854687194938777792195027800870031964283157472847819787337258239904115813729663584353948871987365200740909078441163497310652400335698300512062983339958089366368340347377573183538265429619579516854802777671918387235579375565703746109325978621856590887970014538499787813287713683271357391424604463057483397567011230190774771398415728014141171286130646368027664050513351387412394417130976728441497569941875364516850859417402405014268705645650489794617628991668532960318614486904478840434765312618408802128850805745722882527607366408855859050977529987135841117482794366660537537233977360980045829132794340089101588910657712604964957464765375998057165275184217925671111511503163702894878458126283409573797598933863717988392572185439657866605203928079374326378019502372931126490816612955696241501026711923506272110484783875249794598865113457676606818657631520934111011131132793313271112787472571903313645367423710090163661143420965534393236312257398497015267199062685753056022148653087787298173395951540722322285438513623060918014165112852267848254121968611292900038433120639287555406152481431500020190375015724327500849093093255846253722247490747834502840156210225197880089765262832765479959814142387662220012801444823332712270798743424216798167817945376878464097209512194879294358400551506070463826104004672490714248566015841767151726952130471609909636752439680183674014268157540318142858295981967933525380486243535826905851955707990233426685815309721163225985057434392596917317187490872682654052668444802208643974417125797415093479128892356567673196863839665596056870988978138155316647238005025658860193670618219188767821707560271204904338855883174938345717767219335141728598021635069727420361073094448466488206600174893137003636389246897209679631195157028267403014012314071210301560648486602993514566284653762027976411643013308278556866743909848468836582759174076780990651649099657254685083577637079191462015907793661296136947466861588862560688595418186301892070100483006125989373166871345836694704045006700299545576278303475611732153557587952891330625374855035380291382679675826013778305996807762008502140496171730747441560244311379812362889681721910274834027753600328670175372686319237727518069123452034745859936684828823182803808040379645189002402015608434415259083084548152223333413471155546335435760333103866048666580945115180450887255721858445682554226627546119947287345042580840055180621526730173792009352190501481777519161123979302105096926563917205520810264972164344465925013888681000439504624873867447154257281616391397988004241541024743169286476873969415814682698742877973982491390096654689510454398466245592502777884328344668238972163505889553142710093018531698579004568593070085331913968196501868927789213865447022967057641304033149848859813315759786540468314436740769230343332017658245572742699637490201338796538565392426007675697540764488223889459115967373958277863193749574173861492061680743586427435227170466817413997612486963161455811122808506781065218320702466265415245769313128134555744779346942266778586570289054914059905211076170035560787372944405571793938143085156816748623318180938903278363659634484480361649093460160788665495981121117737150448964938236718331741150329996608306223720035010795080021595705597814167946499017915004360263688889558976588723460099066198224675124534966333376733575368869913919331043203112853845905634969814178445586649633738272138071891500198932450298006353298054819025050744938668855187746658277916571058927331502830273079067114076938983854734351410136223582933733876704563686367298619034371277011574281156823587723312374440931437716848595074700208074779660850049614980056820389512931950810844803616833907649089738780558826166230204188134388852274006188939263379840764100050442160944876251479397811425666626103859549585217983665805203074536427738734860551047646106837722778336045577921642577463035626571915200318901437768943156439381177759509597482064728417262898026983976386643095744777432385012368991717906532512501419244124401708483460571081038219230068745787657562002582464313470484589497888570858705655528064864875193966208233394612824065803121715966127088163588177890861418367490083887986956410275724523370542016261927853072909126812511785775649018522293002353143142690382457980876087943056570755348464406354987867885372970211991427897341764712834898334741478583970478087572496653886020322738764821271710545401669433005309953605645369144519528618522927371476402237805261025983415823498156999234179503911275203116738341665856942052113858934297787056922437494144807144333011799356984576849027678158561028902904614074748835413818581987902399201637988744582255267852231143734141298092350490334090747661507467457811305766893337492596177341292337822079830501530648079084964481086317357390647330302002837852596018048201607960840327276809250489888602665648604738871567011308888146974664411928727665619577773381096302641102282356639061023329207091756718070648842279798279081773326995050620542141066021370422507198217128687965775477139020766901237601215676805705786959054191164646482608591130463403666978078520779683223133881328682806161080219241033842520686381168991286323443604561180806474877306942493985049704131513500926833428784552308726445045972199374773442362237967402505900486871116813537754449124360236966637131734032655397360815002815044121890165087223359990902393241423169198592849089669879259096310698932071465926428919992297567101531365374317332322266077659481489329673301622538946457853743501025903586999047170879257372399421590583222918181731551039947353532827541194126500286833222420414623998730757143594382846203863977081792196373330318305147147806061867602919065345411936395280722202495345401409842672080187481862978025844093302945011901208948624945861832070663908354536635496114025124449149681708089069697336562334449188825193647293276559169429113063119962247770628217194063150359168647614297888926802999761780804391993631827514141641347271051871329565808056434055186220626497944130565157120550048719207201346534106106520101503226976362883752787637120172791672255723853312169305249394470674773742370219757126743906344793364899441622818623257346665218530998396549156196822966423360509131779335101214245383752209056723091450922135349084391517556950732506176893934434118632542242509316476807480485888626439547326760954107120358465261897792112182776287841303943209796380151166574452282747428668295819869300049272249724200823603945262709934949907905622758610204510504132322814745963213110005742432698559270420455217189235557819900075970925812618643124490765618679171067902648753499218473369111149427939125797872759242730133314803118672043918131404762049699923818872121791946170462456199026424601889184807626822330302009533511795067852054676452906599281060420107924100166425156578261278029987403040737462914777317141288548944533074668053992150103416334588102337378197374725764533863289308051793158421532819994240965739089155030921403899892074299795826456812161357724850489371015671514341507170406728531481259334132574783966419442823225048897420713832968697058910500995370968575685403775164295675762900595123582117276961024338502401813974419126387230543823692846478764388016700063405133741094725824955909518690014722960806592676049174811639979182357513438906092131319727013929646319536736657592242270719910361152067790129027871845303065318370379273379986051694254547527821511999494567700241836675626541082496096782897607693187528115914273365826661109885624644324486440876796532075129084739113614731990251859380195906515546206478912089019835072862634485843297535986462283054004099267282243594038766083623916907133502040614468656243519678062457760565760835913799347974059417690732850268827945459909292194226434903542322177377328110547575375633135414711395091710379678524231454242480449889815058384828795287478885217494056156413811394681951349973447511597725794728610296035685078811990082276114385363563670131811350947606858640733555163640853101498912230880581489650381866512443207413401614509888342176384954550767838969907311350430570088375563075070948564013723137648174453169201130690618053852263685296499014889710352737838163018881168144028332842799110209206357841514525841117607492339987271271641183680814553883696850597474740318176298379647695041401444994643995036123762026208202321752267084704873365446497790467868389525375615165858142103226873456283587803460148019651293357726057977859319061504393289757018745663184408439472946735164422168341303728029129025965287609082479369548768423745360272769194602339987229682760361336354591634262249866393392632587563396382400057670402659039795785958243842133960741509972358282797625056859414562589001852011623920613785977758420725443856798654435552270227102636553801689421468495338871376083565520610371547257936527941162063833522179492803811226561884561571345687467087611996358928817779822133272085553991140561043654995189048781428974752704408960506147229894573342521210610133028778000803913246682028266048389939370475755448518926289942351840402180389547045363908986092666755926088971687424686678961573288553826275708690410914258970775863162345769734448040513473413578852631252713042604480506495232285931645032933870438395382805029001381201249007823682194101615602225830267763580502058616368676298590904128855532484607391321367610396314963635629715599115174821865204433630114344887119251695541370303032089422423072721972727946813177450170784915387045949164388767365802010782412474745763584330961962393052658071315808269322146448487290386294182423542697677789764975303624655399703616310059139763608566574012397358004788633731522681936215980079362253864465606955021467867252505940604173680452570087450198618084426796253555007260636103124105995842989025026095926055693901250418412174678234544380261859569134069423518779977717981421891400077828580813160997818403402852820846169993783561909890647949592535725786375641746482434248317340508703311898767654895212396019473307795600811402724831756399946182206909938424246401891648208808056987668348249692506111531829905595241640507840162188337298928153804330784815891417767958562943994044035357011263915190231254498783178723506274938878431805456998503239213742123465177905302775691502384744398957305921479526075820081827673279222181622563715975934684040141553392802632981507718227807555272115157514384492896942220369762277321545873274109634948980186520136832582258042869025700909256625716986175610602678870632700360745949456557443339992907519610473107812134635013104976557130941840777013531537807523273885758432894387409250502572567712200779916018856278127283683022227613757542766058438474614178719407284851364688180583265475244791577048951733849768815712370777395123975599205112901949415600474294983859526533840324483160552776194775140622939471563461397156040084538976904988606771802060202093798979491017584856894400850442428819042728726447156286615984948751078610929308059357428901686921067788280702857424817206910122853217157381261328681304459877398622170260706648200233613702142128363796229278767079659047197542881644401451169701020426756310932625656363951911923009599311553821555403537316384903005330431401769802268979320727352068742885458115076195515708821497294719756739398898116349400423948776479798604754123148760235761057235313248286259297926860061731698232815649722191607142200104296919340837130927041184191671773774049331204100128618730381250200031186507906425965316752869811230209201562510958442580623806937596867928453256739765455592976835784957395819767222605150315543169162161429361693332300629488059339477518728346657187446027923862870704113858794617939013538242270177298401978100462513533763670286554486247537347127255134610102909230794204368320492918167397298000265188140913958720501977997618501308453797510886033917692133086252233027103372297033903858744180488078544269594767728791702957643260578796374119777967180681434327141363906588537831848464262794224424352423469112192988909161631418220390223380307591105959119250389610000731872275762521339840946495019118715270079500429317911702257076919762098464912095972810858531552050159890763604701235787342120076194756476253908069832063256895385824665010703302785644729059864389849653408976073449035959638827928545271087298214233832290769272649207238481891038625186479030885262801569592972351037253162999169490072435658053406964202148390066839424965255145623083043634734192968298549055774949176289140890137462525628044669719044892889002859421219259583412245180496178106430795469713726151131701506274704998937585476872962548826891852545087171478122031923064732405591519199715531103600255824195525031733420031583068006602196134604470545240192643862533170507155181815497463453751540333327474277982612331498760853285021140031724178366607530184282826137994162451888727461863271672063250840687697913319742548587754939190286963477299989644111175636007912639231592176328371018746088123302208442947486836226768283752847832104903878478783320110555085248158799551917527652300192948057013938545644391539853560019393588979743871932300140208997726827166792781821236564539452871152016567403018350259340857140038285522462365974454077526052201959421947654469465063071832862661035086169231958687026953070269468509028781984008097009646500301880865335330146666949028135678500187062776002077020816177912678023478207639959989494372635521435334855642837992593667744818875308112832383206887621531972187050282068238771610270579912757187959157449117652123879962601778789287615852553210708594162072821846217979770973148016267971085988903973573844339846711037727097239679550187158022581959337675279020964138226176613717215864762788033673246342428407356343449693016445306543944996946203118280791463825519518094078567358602908179058560634517980664190845844935356874067725603559025233067290190628327414045498522239883727820016952090191278045712111974961185464495819575987309230323341851011112063502131999940924044251199207410335108484067722859469867554274346654586420796174081286336652287913705984311920503868638476287715918048050639399425000829573795653181896142544024221461424494396822975877432110982873861109759549707489992511649172689026320404418237854604554046972783731715775964932061846983770810505503881929308796405378317132653389197237219221582613643733885349586487671559167562105661746358684147865548002390413546015354587862710230551038265258439554830344491720749924581847069651315401917106337336525658703119134840065369248579815088657258046124183255983295309948223591866134833602819645916682840390070031774731944138165639637189613301849758062096896107257047196234028953598211172715053374717167993151569240068993216211666114826013456649134911755824962247886053025833767870834357452501880864408049392989429986045831107790486653341547523945164205373332525437776166165680176344003393771314220343097949798908284688297990777870622844502622878863651042201952585635094902928752589832600043079218618130562066841744639821949627517623273046673175476220310427144087732362239247403604486368979928057927250991376481941268665001153136089730968119797773183693701246301368592071683089951300713393073844452657518343620976847474119725730904061832596603190711864725042273068554699562239910872728415398468764119980165787313492218231430455230404443513102210384570215568421164078731500801729746316402725817342287091272760155669040236573617346241326624206453924367091053507966253259486313590573528732092149147657120132454511110788860613684326070507311905772651466994995505814066099695383995916265181094132867217420556419897141916422747682640203975587356323311936740523864513871378978867972170191785704073429995155666137218820543183851170407488122311823408071642165327831395473433854304169714223343933356630325856191502316129673680553273633221281569049131571043923322787450420073040050949934948776157016251266121108017056133276636569092697314962239428921386842492645555738245013612294237260707504179540019418726817614345384195711689527142150127969777493007322406402778596134914007564016373346903277837410416064681113416382417950291854146283124933120610573221663978730826402278192186021369007195853195018582603886861811775198216571517495527073931641619818035895232372363485914932631578362171664752298373501737604916596582530123946201169558185202414369504719427569266783759120408534156189552699248221995436071735266218635324365023912098909189871799537648036674800446441454983520235703202554155639813949118163738058381830064144946857456386874394726835319415558323726443090908722328053949985589290521970500283772096139024121067407944199562029624873137782839910824796192510098199839276505398442767317642879763665383561954483016904362148140060012506634173714542855177702674804291366175535718550483114303327441953642083272378413945328497040924584367046810058603141003061758742691703219914142585675471362136537262209560107144568115928709031925647909866697501419742354077501186532654774970145230978419038389756185691382129086262621529489622753862533749264450757720222758953085512997988058266891669570725181517486254149024926895748498467465797721956019440519276652702918900714639352280087034656773076662916055767966259933790174041592033491879237721799633507308234319466545178917872537003050198670035374548354292920473519734505484867523709924066394265553554951333844386864391862341433182166411810933660683430535665295071857483429740240464940279554974441729777914221119978255142784735064162171730258354944103710652135674899353776692129045438002239076412929909109023956472696032394827590774191482029695882517631595301008149853480760757676012497306487223784742798323270256689034203638281808973206682262851980216757324388077057346913458675756649804426729284807811489804358976506495864995728055920942750002442918039120022746550431326339191549430733696145820206469802467102917180567073187588627607950607950414533038600023486543470575702113891802156978298363469595179919516538281177110543821056103510291844423370840079314608520533383252128545666115473158960879977897901646439878130352355956298505217930375212808225176647941698221824381220683766968726258501243433256603285884509203808294911458749318647374526474778236057867697575381548034871081505015366544208889633252786081861503129036879188483942980048715397077633977078315990499716675025980010967404142319213049318049406865635458286224594693583100848156691050764157256499470951089451908132849932245772409590724115364330067765939359416257391641523869389060444421397149324572173063231017108680411820202167462438398889538725388239332984589561352655258897447002841880905265486669458656644375938380580054329119078501257792319161927972994512178633198964458110410440657566958033104507769192913291835722077902056999771600473858837488064553525100087960963810624322758830756234044306126008751958577170619637665444041216107193499510121268382235921809617404839795010365820071384836089714700717528372084721938563889527670462451075495476664662327978517729526170700097165625107507528063413663080699925640722328768264347325007779957249795384268159294100213342335334298479044051379098411427383899406281773175329204843653759469327571798090597419718662407541845151690668925019502311980065771081061665342613166349810791813672345371379239694211896427172081014557641347454871638635483551889806628599407122308339376903454607829337180228073074147622521729427298832905446833695823151280254677753819220277211193012825266944218870802601477563504542433874779307121956524513801416397414224084802910792080014572554701575736345479862781825691795723433153443641460603885221294171760083769683774627344102787218249346391312025079906973681947424506663249564672625254029081767419660992159723471541348798925255727021524344415201558658927563441363226714558635229529663797480977460306052307138000001769296077410271916397850670720238330823055616199482160466619642145259476255767395304865614358210357216117278783452081739518151469508629611443485297852041533961912798624800656280232121891794114896065558517496297677588409713416937678111934901398327740746331703667079987655143716499020642705799511054273665557599456006249198061434044055217541882689519200420319915220623666300591334391634867241564973243356469288914914791435207649735185676942641224880236209451821200193414621976138674907734193636352405431618442307931185536516485204504271147076140471523248272938347746763761376655117724445579505664478807220257726044347687936038602639313753886876853638459645696402842739497477837821039039530231395141907108322917105357004076230492329649357102916683192724192827194334899844983925926408697322471923754006799127484317407667516436318104729290915349308688613986546740124193755691156531058970033406534521383520841945929654210466113607472634630032776990515461747594319215321995075684921585906804901926069232771244162461050632889528488498451330990526890068833480210040551281096284906042186803144516900483846399520148681728990934772914631702887141260093356258537352154430573146105969887620540671300638463159084803082494934078777218689192847008271654327201213828294530835872120020427593118714656950410490060115358717466692045863820174997933243399508517271157579264492047552584244777450233419628296801779923815033947622299675126759493896195530655395815888358722800042080231948297349562165095887131990882991647651014886217521410189613062131286456163570721418762163545413693255932388891418688636370832673574301843363182315705396434945010340440239975620051274515052441374597668530736862046918112447760180214408761394652986187173149661111633176509908896439291366372969133026572742724345926027302819305949175590983457480024251909707275783961782061719817194543324654282729046835312588228519870087645108898488959064231860163071573938667827873412042657924256962213562637637475832542292170537759837549390944263536939268905259534495231046960638091700899568980985790542060065873588570629316722414658540088041064488921951535133761040105565605432496296490706140898780740194430647158897427973362378433709894550192822362809199875541818203539476187511986063419468788672684074999129589478409255890485873139957666148130241254082101324633853358917330791199313757449250404695202554806240384382403327792143512481153784569696698198360889603700362330607604712053861853369212533768787918332496978780358740206943602588616762514216699565440613082588907373640756815631583750881371926818962205917366197017704527667020428220020504443792558197672871625545421482644912493704175328165174133140471139107526757659248176521141355384179514886326563238752509414062369130362498193006152985329848896078242635372156504839766525556497464629276829041581529361496479842162620294227500189871252696945679359973078717442961446579418832138066336071552867257591496263075750710547892671035257069604288767694627938812678090920698152797438536152527748920937120694876245163352985399712775307328726332404760510031758436857111225199617905831071042450382517248233885233103301474580088722112618998487814914857340922889725450915392719511639327517956801099702066223129766846899665978334043620346268752156292119248242655676386930194361209515268478848571810888552113911273244845712469848794674563292913946934669557437672415674062756655389849079050953795722148293521737945850932848716732067837180649624332240901981414022406959635408398381655806815025190934387781714352121446259839131131264068502299093540114729830828672305000516287453291685267638447370111154433536178065706144552469075351926480655153515350283508906056972977051526599750993169036166462781391708937389338842839004580815979469044093202744060545982871477227490635904280813568529733873622667069732518109397307986472094286537556157431655617979607553418004449079654781488018104372469569271447889361713869494713457407843176196592292418453319916005287495992527625841581720921467475230655449546187445116627415668065716781833424836041109770871376236338459118821665226557638260708829882946938808578649756876838346070193671272852332096834802295022292710188797142510018231724137947869072306889369967735429452279101075331998644693051654601193068675163105256461612937144356458185174566619841690999366967373230082939509242513409749564913413240296549403919322921910732066774659199346681914450383585797936620074057566461818199043967713822509771465918821778674707616703941226149156471838174877087762836084722062393404977918132975719022887933244848569878265277702893564114194821371854863826350056092269575789405384667201614174747078139723979798196737142425859939545074128711584295669878741377815815855206694883480264282711513668811334340093841327445727047690155554661756162987564601080401976737962737292193137242426252778648370811458864607718488726608412822224877364029237116462766351129182107919972049565480027091605620427616274139857097374045107808631042624912134202170547606462236690958468324477703441709441639044188467154668415302958127095297756404247389543536393159974558872187189365401046942660869982086692523162741549362235855496891914491826624900267606740237082541418781969130991695043030891393336013974618277608836413963390908271415461507694668928993352597698551362248169315824756607920297920133831053615992795416543004070956596243609771306716772681760967013585859805287223677842880716896634687325259555445233013520312731545546981515892969418878669540073341296515195355489194542461709232219742410689359249711179208941615705564186331400239410680285897664560220730813797121608764150451261680468410698812087643818085301878289349605838652569463903469688044123591258699822622359448652770231925209039423477860068822221647358758622385375322101620418359102823833623840569081037770317195497961344564619455601630064327631982121705772801419884603163610594662023043324906173267916995256333689480527038494360885363165585654776695461736541267727535229181522124211260569528150429802333589162977339261706924361762757245846857519883738913638380468898801920026720914593239283251503945498634586077376148707432468431547779671216449541657773181292670186398167336151483309204793866582595146181440334851000692138559652207813616364376908363591064387681723429372351467652028333013324215972661781753865115958530282088584185213955863294494626582422749161067133779605499129923596621746080689388429310012934619204700024227657480213294282191833986585313775846021756000881857407161822479145574754281909654925442075728594812618273417262539932640277222449430711674063812976401593054308210827987989847448249354390221788451026480213882376933710918629310929004654281145598164340941763839755286844887196095530833294482963938846893233192903891003707464014802556897659245007819640482692948905261654282252462464821730161774271102185197452371452668310084538845273924837923031464193018769005956148410553346147115998043322796304754355693982617879433679768362500354698943646127397450699816599174710820815145511117318509311057090560455472244979578597739688935867165600155262622108785022522170753481264574760788346296050192464272450139177622776608015097674248067597460983678390222083735902885384762706176692567272896890321439740075774055184168342315608698970486621570351429558626989680325116638861750614659147595844910535798146601715679560342721382120736703779072292469229084671381642589119131277976768345371808232881691390941957041110225647897103456868486445978656815498623747136070067125556990282119551023027386720649503317649947936067756093609988775434399391401834410668975698873238751516310955789630731002795739841552748738379806021754273859755436691841146038551678378483415479754784679953400828437691672523619427481517804882804127282945185082527291876377570436602440424064162959611761736909578674667869967900078449972150495222668586458025010750539082419159046182197788158776453813462900475565177531155674968763037822922916474104492067684233760131384003278410422410824862704732515413622122697791243685406162143135676588172789650980307204955791896542733365515715571142263585726129582366390008494573700237877657893862714350736377846000268185753634676033239831344019113078676031756171254385498184394752730594579750690900300625682274550983603339316060182208284277154839757560137033808738380122340873479809579209875787866095030929527664436975684804023436961559345140438186246017555277361799368607374868319473179252341078067672543281938949755119507035279985965755190727952574531293993745245563391493890591894346152081666669285182594354297063502414848539268146113569909196188226601710795544471974649820287435639674451160183537803305923988149886204241029406635048445050681403761298495420802461791409112512509224454954004177648705215632932285210641340191277824973403688671686176699383516109804356379808107535367218026577023398467656098186984588711314579528666808409853592453036731465573971908066975397599738404283768823667375032320012600445413803430077531496503009364639409538187085157527403328464624280444714578946774308407512990391242128906745267439941672594223741994112694340532106264188257537719975710128149799936722757209915953168835807255824989701699682462664724168348523092854283017549225633978692625499300783627440821635218676246952554461308886785571821806936101944961676568775635206142602019829763992906802190655992923806390620232202055879737012829372202018016917004364327622695403781115123466482218752945233446042971345321400073215432543640176010014195123686704028175092518728844350577729518548113011905486162582187031472227095360420639616003223142725276507731338742100898035274742283209815229801638549973501402168928457835739542088700914195379711786808067299742794168614404283734090096755226887976180360265017614679442817706029363679362310181528460826010697073645208395302304333626317984287269701079616624480193006622064147330445406516654680864456964735154511152969371393114229244905042357359056238267044562102797607584974072556712724601171941712048700164970194014748256962907921049284734674223813673710424880982692956934966215305218250467200078119121102711765947948659304445075408941828133692487905429169906410342126331257861952656173018260602989553214811184789585455270348152038110355085318483297140283743985453594722855002608176727307231472463293535669502331078333994292315992215378882391705096601926645149061835267946011695774186006222007800873524896677017088406555539968572912903298403118972068992532376841540285721530137114373879021719314149251188100112020722260874063449531438537567249527772719876145676028692251982203253487152576189519017800378948636498459251986427259401628799719755177878841331667074605128687553170698411938637482454864077682636673862963174929437127239849549946752876881302566971618269029686274669916642526648136196519688490840010109256787534871660818902468204123674194976123928683995143650878615861334186946894899268599503322324498015074361276132642727528695423674656193086695919413678607277133619314770452750342470151376473704826176587344408286164316582336068943795074992331283477853162733609373452160016637011054411067291218525484754973148453204935727105560053724639597298300187424692906167837139672103442981291863755566230358751888792859309628999257412753939729171514535564054897447667166712354979451577208542632054954727150632618638112936636912389872667654718636029827110320439684207114148959587658291707576099739309647339761820547864802250891733526875866478143935476479863065660788581232794283305239034455171162678587745603946407092960031793500649892896493506487410418048259218518659967594599097749614564545204333884779721132971624490676391207619959732819063197013251950887672808832817409307013838520665634445846700778549904174293855278920104295565062589743130785979151384153931594538218607530786155694048604335389261620483803869671928223539770768599414740963501879617496725491315337087830972363781781774842346160280363351959572357858407323130035166934307022170593684990371739163862970117522874058272142727544570011863258810356554406248379121505205078502439093245902017646585251565693921787084371630926983696535808180863121217840247430423302130733983692088614880127149984058591428458708542590153654186732225642174514386844363388406036991748337044973091079929102684109912268842665572496696114365364727596668049524462300857541899839725005651128787112458447209149601882687297758661137351397524448189500395484748535799048132072631121043710311251701540858767166145565205929315777294572023903808508197957786142986954382948540920069146746475552402410245483288499437013369663048418430144958867431104770711524088390172704073369285409704993975762204926566779052051415418498221568177886675999864858362354324675517452281346691038892453995770922431936770283582976009791944374036957430513650848580890677267505675513853279310292319744932181879366195512958678067822543237200605182540416845931946825886973967021168370460102641174333078729769571617528280740184531367938590102299679092917478982765125971890537928057019924518167974488140104817834806925181130104074358240798163188590530349555782186539088616766457158292741548787807276321943827971227527092190955975056445583362744073079872603859812760729174589032089668993502667435684021683321407486274303552424482523715144359124679287538652904378607660580133157277721970505765796276798989802174881090549687102204543736296590798390688153627580062835122951035292840888661082356145963657979205349460113935470447604361387990621429326858382511241475366225080222737508794960735394036613918414840245650392256905976378907956796706931885327341728350338556401355689916461855682581470704178745693683729858619976655168382898365641134064878033179830288465178843424347330279079941848049811262352181874163819319698345717537609198768834709911172515430850428316769016458069718068654054696548112727424712051120451486839766534417487962147828788904012876024737934146373248241085406450472718233403181617752641024628008850489008055016722484115508918034984422263153098956196799213869995729854889538319304920332392536717622673031410983882923558911222235410640815204282198617137783941292438227654364657483461634050174765389228001799753526027275542332184505916831945635883916400595017300200191215673535620640974959002237043337997868513946304760572739214149263941863992090615295893280272032551645940050677861755519527810231115304151357132075710843298768312636834100614136619617987093999669174249096112666458731356151182602506979292016044438100668132890756524020417899887613354785257628395889074464728917966239101179688601919460074503508607837765331340946618766023491735619453371787290081658030963517873355334048553954887868461977296659566014160698939711900451898375382395390138124869883291439354858108497058912173336613944477242679258538912939646665855407100195283308937905362066960534314019593515644469330006548074643854298108930399004656706677995818540146047893552254076073711092587749670666608760280017388270383920945945641646006908027605276528764523357745186299414746216003958376078174302962594165436894368164746289798195173094233702177730159042864415689058248531059723806215560827121481552608432130493073987699495231268397261315132981340427224699589947037448408770267678505894927338303331986007667116576709517447240531579506037210687846451324967848823265563354675000947051985130553260112001546128112484744295435610464287241148306637783729893927102357946894991539484414760191589441381365421163500783978267350528415313079146946895845845003612884407921553828105919647526477513343227768126135245311406991235246110400014579647603099478985160189238882801422902378433919028313897973334703864464725927671050748061599958246709404121719125944433475021337318075949657867272214478371058920248249842560949924776451867874548867323388706605522843890627126508303663091590772940577901163228936934654915150258951343883296561483144130625653742787372650997008961954274516855977832684676430801509837663771695195802643521971071618966981809485255417633612395955864716798999594090696966896630001019829169414012340200515044998648381454074013829202275995415339203281940442695252263779116150991246747837857558613512614322276542229462360675801518490179019608722010138265076684036413716919262108787339517058461374783109225150909653224660284960028105155548628634126894314914321870581168274982961132028666802013268947029974182987817510701349953730760198507805431240331822510969635284945296396530890721893608081140301883065888658969080892745910254001283664807443668989553183868114854866095073105445340865194938447908188202556464150862448066434501626496597074458461823750789487178693236851481885069371759192286254682967267651107223548166640634688270059174923145947642198006532662926988774197086567202800262633047750223274196924466406434346552751051686655004665739972223922329425036158133257444808311312419759961136355785188838130880067296860051354881131476932502113866395007425516206146464392744454417458951898572601100293286471370810973295771784699672131400139959868532809186395602630157844273556193782320237534987851033441209162837641452527097262662006422421732453747645752513899422563699191346748075951141508489074448700056143959019565249858558973956460714625025352742462437417274510252253444704568605418856873581853750523212333194116827252303362228268124527086029342414955749063934801024182588510520095140850528968859003905464705028011235656755405490360380450972475659732392608789641374633174562392702375849283967705062963198593062015069565432478962036776880086874073228295058799879913989858635335734557403102896629955333551277362603803757371349226543293326637589710553107300328922386107691209446263713458550331583742735167481682370098512381413812524945137073346067105293871714385401152975054257033936139501214656358464968204184230367495431669988035794379445543967535348225985333912277946626306666286680939070723153415564622603980488907858400732873709622631645940578351743459288930424161665661639665859872748261746539062454620740106969150254612582874702591967124619504307722900781678226625917214247718032080593500231203035876986464626144931915021874846457314388126351267048433117520041901219322237857659606156325831235331683021691831292384730374113243992083886165271257283906816118157794507768845955978427948015705608838944089700644590701417932840539688516299228043141213743623579060133628185357805317432894284491783502657413400977634757014396093240371920797653670533551368404000358552291753748143160621367344172584869774549855244251887660041271040734903966862677062124913758418128552135770526844939545180591796262353901390699424791684602039235766449741628174651624293484162618471393339350821546850138320229049872765278755949991939858193198897671185030479279767160691486142971263493611575089876578972738560486035076462151816596026326875823085307743695611229280119321015892622203547056413253912717870063001379477494514545798173471272867331134765896780091316400390977178488790895921339787537166252606369041035659885253622309129990841712977803109885023176842853834792722615155861623098427607216088815788004701493523667205641478997245697108370571411228424609795669575010705151121053324076430579309536437853139306477639890998379129224621553828600744089829782244552578386300208055384000687935256855850309901227547656331368339307872857033680576296990384217086438653776472063779764595054866590395872887080647296860359829457297590216134101061831576086932899795240564212795770022986546642209434594787416347486081861142040096214857348705316273588463935186568749730842803782304646072687845880535838223783706280948238883305647432661964840177979236987439501124489424631059207463394252608291003015206160548352902454961923184040299315202190106122920430028088309233961126630074817573898050006401118777981066048546120708122927761294782860875828971162053519202614400375972468310043929151389113158424702237899871743393820773579676411498305315399932515743392688581358814736470069653723298184291774857571472539190172489991077042584181469662802620290543111404347748010324542539986248368287349720790317343449039000959633318442624442296486469670280727833283112197598781311680217229843179888561394105790500896310678327328100177742291701513688372432064881299832387364653914368024396570160794584470694670897374605723726250404005425219724389605122381347664697739149481051829655271799823673676441413644874639650499473010769689361397721298813189801792934236634328120735180575294256733486639522840709400250448597870397461066486830791234177131629406073064390324890903787399870496927185271337960398914811901285765412760015222197089678612709225439821863175645269136864610619047650195963737046417714262767436301816222897842270936271972337739453431739653038075742654457425320665468854684999930579488175953541589629133828589422691323765592400650173233196569068504775256843039818932714407740806328635178573849952268895032735801747412709119030417224895457678010021949372245626991122021987461178479644592717189439119887164405788256056340132533306047388309106326833892327589483278391745685267105215587785940053011670114641939257246263197694990388322640275725717660206687412850446360441288795929157236600400567182423276424312790024531406959025689229739927839298040605815409442182506061311041940927773657449856595949336791105217783195705058257316999641734913365144029831601110092512340900896013615113999339554582938539037936945158597665131909489867584315336858627166829470646556310449296984849215356798710887329793195775984179035752801772115805739612996684503044362821993602878851202621326773651418399381663166431023113810275683295739529428552096971683055972110471167923099944716624853320086386911257764789908941471611773060978585265171100906173740018166003708366363555706925279393820925323036875581613314865932004223669482130217999746494572042818634238001707141449636002130282181805395231912036251583820070791888119574704887565984416517420810996955679838112077125902168808509133594806139933519705933912984186603217690124807924455532994263304375146076097366545423560928080266654331280802475061046915651587013731757567926020436951953883661809181462452315462418580863257651612310111113398483915211749010798777012411054519535839515177280118205419534113422386305171467809787780355662448077665754948120856012317489157476910545287940741074484738079430421030051999718211265071549784723751882359979045559133555730500922950655371613300297123799687261284298443684926782146559688685502291799370482267727898534232445839003231021009976007724511247697199818437545313943218855997058999827471533202309231845476985544288735947246788931987089060853339643290247679105370201755463398017210807956340505104401190784064964770147135704733165210508874437858527479906127870010848255647953620549412971197889902040512224758284575148058221575244718609056135143333920092344293421090654586567008052435708584656624709314941842037138241850359997021446160058465826642757481229677522008519753835775647174205092755900568619831597893791518464671417564570335921216155127283264296132919311431239519338594780360734259109533479568927186429811714662039963349959906649297193251480087485558118477166700779960725712235796970068167873355908335963321518704863111971857197839249750283279464891892310898450917178326657920420029466206960947626449928913643109539752763585921897454574449507777212950726665791023844228260638379946043609803786537560927228052229248396212693089486639573971493948068474976609805640566212586019054276055342730030160190463951210973437320034326557833077128038593108023262345925882956992615520681680446424685826697672651922656764089578581964893384674048858721034745932491549043384691942959591760516776107956829483550679070830194274835376084641839480017123421735205496068362711135818702493808765474647865853347790814440720269330889901844317840691659098971376306206033683298482296880466647425584293386194613038953423202344018230385545650368899490894113356153140304154492125306366573651120782291213864911953452672924005858191289981412883065274414528283638548478941592813583692107760215743173215806581137346625047290222858563473606415185521810346704690909549708547966196706572532121829669561906070092761514870540677713490254200912896253250036438868060289199062997651948993533763765385919209051910384260366980267959570804270997335212467723568667343918437425815381927825221313563268426923082365526422227636576737707569368200462695775090390415459854018889199963832522763362024327639006566725709841528703182643567116053425034973956839672406633243405474275430551494061517234143286280868774625628635254116297875760406796561195306416380913003719396466606729717239201466882225279073629104707804168392758787295828454934418756711359768775671488844171255978211004803066200843760030401763096658628292462600028611539839146921402646467214770968752148639674650328366148915265199338994456503886694131548512131039356527930244684819240723191269416221042337376326328923221524891152769862158819641893067821328377286112333146436999714172304554062107369994368332917205869108959715193887481073132161539919616355107903977462530725403342460391541596153191036430926704381867813564606539380179016355153210911122088627754051959350409868974875055372957072197942731300146198641037266232063294483057642265900246273741816646779456282015381208019938243189474636121836961003121533394686897451482832491399822644987465828843052986128291607076061792656451971591909523719905444593064885834038800611526490236162756186063736664357775930890580708036279356786454938673732625422492626659318037363386619685371773573713393593340497789820995038499623980814643253187805818043062370543676587275518668568398364571668560885385837916671293168699137050402006976400972501892437392648424744018858766808872016193885549026871234106997212143201073383337012252754873014636534021789818986208736258677073809811952011587001606134798881579637494164872069584933910645354837055133565179279857619144617182999720146426408847954843644931924840022145254155217826594704890818768792948753049668583802132658884233933005925767104538382595876188768253005012386920298028713146910026853310816063928346965791264705004152577927108230816041093716019330773578747686712392143066721092832583116364363316958955050192506481691691509217894966013321244774355616197558725423175003573182871786456523138305229374627313337268005038514729283053124943713231839605855536381228944976808538585186338848638000035714589936286758599407332845826500780373005671399729234439483271695418021994912937125585840545291211011954564233361290763599294779739255644219282702081111113880331091640377444042194325347552808222917539254928890567274142294527177377962821669059538951650851684378309902279796804916681570581925540578731533565790539916046108031699911878234713033111792908096461391005640147293271011189382642106575134913436028198365280892157426203818781498952046416527319980634804807256251557668484164970467440586591250436256723072861558279096269676739666556857239350707697068236932708836046600782956344898061744535724827797214743638515887381646905545444969742333136061526869857078547072993773535239537013976097984311036946609534910394856421184679297196883585770497438533518246423643379946133412311731296794045888700258914873337823593397801445345789876493514589468006412238268295363540707185945951719801329855491695339990085822112147284991395873544594680968401836305674682039229579326624073100585320941296425429387970054312108043409503904016379087196195414379550452933846212223918924461058989809097611065071551271202452200113802226367365407873186256616852310058409202132648354564955570728618045681178958135874656401580539786046567953363231314356729239284373498302727762009773895110236738738156842475269423442280283833224089697271112088920304478474073510095651661756467194663628959785352945587380569488263285874901706145180179169366983509757751211114491545922269630077458822720819546133452261472005187644694713109336096728488350884647070105274508698871862320143861472160761969378084882964970861645990174773434055085830424106544598798799834781814470963892624498647679792212453303853388473884572919978550779087981403806650293532348531863281251491553857565184763113879233363958737571654936642441909069728397392153795357830076275574380281261128488894953536159599273955312675638016239743003724451289242862468409660851233952341587827318602535170449872216456379395383458886568906808116079772767530772624307548666801578488389355179850701104720931630361571547329657805733183220085270892810356528906087045595413834044610895508909954355276463509736244581175897145947987315083920294445656842439375053860258741262742733361208300387532466965561545750471915829617438791250379118104983460645605871071711436623474474159212331880408687704720354707992147059488855018724992970083708298461482515528723972760889543823427833694509260261354549235600130082306314985818816702346217605779873183133687141382857431124926975731061537141659708257977312277797194783554093064836460778776401591659381773421109650333986235906056387775454150138825090196232910404734606823328563316427928087292181871392725696277894584057872856295003383997166241552745896174990023531561679510953518729152398706598756083342984301936090430346208706243538046908269328885684991350069173435936774474035733325804811372355156225705759343940307182348849984580371044931818237608966812597157709460868135160503335611609077176468036392530463244980659695657706447929167735371364208331496975948149032127883089374801760098415634100291767620487106223110405685341193958639976425748266256699245856871418292208922424208891733346157973154723880452681396869328249012930567945735044120140223837328971784907992718140458228764987599586939979537526674922634563844580696303479667979570100181273321272940523482527389560660944838654797953212810655387676095713183500034631542378703426792499510157194238315388526718825591776693615156117264655020221483784178940716208258265995003434659157835552889037187337804486664866254697700649444056773949546828038923191970480555511808568523894257543319766684891426923597181534049591440053087323176408172855326726554806268587118594880622571675720447373072675622509140887069528345678700296290307599268569668392101208288669981523595206154625159564667875148846809119623417408409674695511549296822950958872721335686832962681583317766463843967848218796281074962622947812759689464350161165229169988811317307804499573214611985437957776662677622710579489918012520732901476095025092925229599712745817973701915344185711497104825270667562121682167843025165115195350859042026056356895534762132688250645326113271399926001130530827991213270311906916845443422437812034391818342661933383697660491465109689317388044086900956225326679079157383623521723326992103255203889743047892688559266210727393434692835403923556220882348529297900773453228357577110406605625902076389900600229214741477810811809806918121308743712261683856290927752999218717096331120091478657707388482156921419328017079058435552769608121634469993167569735842076835465071332237981300827581218994584449049719388553776545604639196350361327607645907212864033955209021517588127462964396920249652139954854281870493825118127727953275279169241070931772164892151909214124597064061215222633020675756581761712837375127527630670103922624960897940741718147316298711477290601456553797451408320809606394481422665913311804336920268825152059545172244851147917123129437515203785295639344333152902893976014905118916127935305867439689469794945315608819201332634913056963629408342833010106959086105594732411192559828402759585282625999715171303952017598665267766981040319015742545559292456713666050087102500806091150226690785135062821900575763824969197771980051754931194041386652203782688406536636283491879534791675587685816503721756736501534885970064144167623444550821602239215091169325995590459763418758896757174804583946942564333243082794034040859481785838004174167899957386904582976393539426862686667561542620112757699338793605527016884381889908869163317042907379504378414972922422920456480456732676759326090936867621741422595500355276602373446415143579689589158044215066532789152565973683174335582896596250094510406009590507296987294119441646489108093063572750234688394931019154960426765890576269370555617468956628232741551426636727539380712727002476185029434536710174176197320527009000205283791333508969467748437420460303501483371375802530577985205537737409559486427685361730723512301311366803233814897339752343915758803433695120774723497497959323795242154523050878747685094225869088608499274973207252922540644618069073171884058790091060075813652403860680787153362633168445389719057858608688069341465566652282223984177902522692541274693948836884995520439191550949190445924937676748873048200854611930902189192755404129924713062781571668142667922271748264877167518972072374398617085328309817970530831743545562409231721527473075355626810437540827560429497267822487311750069255982350362537231796956829252331199964131086635187168082131335715645937590480488593633906516769555478823613059356228982526007508963110615733823493882224141377843478798962666972476670022455344413039678740603182430092145430921154274978647286512813243157985409918364908181254259713420016134585420822588749435430547572884456536719740691858628648699631285499747579888022282607027813119725048587804951001203415028610500944870331310062939567648912335412779342351531354007711505691659905072742000092874296236680245144243685607334721883962124765424456419082174942817269098853262320266563267715823764916567145220937294091292092435204635314797386964825858450736670706934168890012679538562261939712651428193567299524124733081264262243671809359519493031000869465458360602277404054060824883762549656505906081751022244415441103153825346699308894700634180340542020575597177439459923785405232758645403553203884632787708425303606154911792007869779122281232546012689715645673588659032113331003640841277867858868541741791775070642234791561025137972271006597237263639603956243568175685783472216916368272798658518903616997095133282281808627817265169426100582982913107350250101039839392460468826801129438054000609306720040070367521999205644687173419268137560295402841170200443937651765278967964348912223046096168331134181750850643347258419976713483300729467462642883977166969307400459974098682819485087596715286891978235835193443796855402070810603688584694734808545013260423326626537451971736065043527861457125925038318760039853104388984659420783349787860926972538888314283254629815438542808715212095345922713675296344563594370214518809612662877794036442368005649195471498795411656258703074045308622735834720424965882661419623445819087744673633433445120279002331269200999096657822963060146571680886334725585182917516412158389827684600550393836938393717346431292249244929113871448715524188914992093258104710850745542852125216069050076795872030406949573522899944644927431780564145957773070564029326404608575213762898311688051681897229039617985441464516045210657493510083863660979476606190389120046642267972614796169000051228358305437788219536208405347218290401160629401217690725034990890335244860279850478684745519416442283326760585177446604650402395351251448320651725909244660426044436217651338199442169860903336565289347803298045336266478629524466745955898734733743596713077396356788314550233928774771662101066451359485544345262559170804051533709617570496664783640866078579413735347486111559732125697040501820804775562710730368123800903128962263234337187014943657184794410143602407693595606125253520206970378024530419288126842845519857065622444211199738131071940288789759024011358276000886344031908273658842595065734599194047802886244576567435375993052043300144952708660524287891235953713558855301105059280493734919860246947964981107288210281045883251861260523382337624925913285635116615359088374124904349033211640052942136914283742375525216368577721815363072420174375274566025598590613024370711111572603013249162030636579987684872990481011514351318330935649591990914389819385411481528887774448101556362291019062863690293939316211371815005539094716188705456451658381436820279349596424487231287493467439854047064486477094817111015391073499055945275860633087616066231715110815006984147722384828598812929556219711222813563860008433735672311542098055356573019473498128176181089175514469002064582732646732981865538448517289932653144405567553082838546607439928086865063293978140641623361117848256387180170915349011743446989506999641358659655443779766409157815848964990685007776910347244745561607416383060898611905942840054680481170047724570841880236563587427162670004165737280997228874010489664265300347844307787031598042288072603720125191701057579726363779359426499775189198622947750068566965032020885458752683075332517127724958308759282775858705487475852991064756706708264068074934703428692303488503185915474396453186842835179832307747064649555920139451216349652236728364852083325823966941506174782097413866157635161801497096911019530993843515222064667403631632960049749490817751981152810295702597879076552636270250695569554017322995225248074554769317210234141941391322924285646159632856129665072797136884241570797039402294573032044819830000875512343888336319389222734803051509241950959383274733263452465863998539063454709234626881533239155676865789549935278684905503399400534405150450175804509052453280320688514573849481636513010935009529388759785216022232848178015461109372126939093643100576890865947808398271761065265752717276184545263003298565939983489596570717889434637582093800050741380745249067913958082810216153445990856373164514411368001342893206241828129445630216872763481646463317687649722116326683303223866773128021894312394820906177685790716962018034188419993401922961928122770551884402204129151742935099378675788072663084915464121739426698959696867679914135611703126515671521654655814053772720555550325092855309157503714563106360949852230914602981682649264770790730295433641143893497741164550822958171050290085402990151750587794288737210855861883774792588696796949881154778807467585413578937081361395570929368597497338191598256065101694208973373285819051705823417820710600088483967364921285161884944021815325654555137325986676388718933733301666904281676595788341437554826422115907720134895772072041785672423486410819700073722646441934471396093833674262185891794254633861842324192195088557688470681081803038609103376290571349666966355238096821895518709743769448855044248082846264684630493628943115803293638338944465504621251763055255165447552332421832313427681390012621826496048711368640010999000031143238905550441808446012410919249466503667135227688958152329072551850071424283214351781592443072343989917129298246950176836437295646100024522234510722282331012178964880292805025540086397071509776504789382014307461833236165315641622546081256846304874717224671915344962310863442320201711474031959221307194652128175207448674614610651084743350834486553029663709013782178743528752300163995940085172038880909902550481075704096608976270592055841637265257246793774861983174692849860698021985387530938325082630920979754135616401146390158289633330556479835587973398826108000423592183757595923742737445869173164052816652246934803097270997979985929799629488479004826669906440116772759562555454647025365567227174600910666644536105108505339892210683905970753570467676273523442774660043687586088903258466996925017234685040966413834569708036381213137871546772212618913112985170495164917827361413469424421214901402118520035835919788055289223213336541072033342776785303003470028144101167321723566413462121371237580397090016828738509891497851512887197866182864078888891629562930695012704875439448651106609672489964694168659124669641852805241017632907358849364806939763166231716066948275805875904803466578457182838222179574057800673378701032735070250156833116608024834835556624975535573316071247736172434237820499996900661200953027777080617371695949371038005013669113627704324372478485561206143259752600669808018413177111933895359913620349041330592748349535308524637045516934484950121912215245715835472503373732860611951641121814415050197546626353855978250970238078704705926379511269451850144496301057722668871752631654619771379925755253907149327493870399737649133305166768112697736516263323312391023529549257837906860637910417309991725277115393078032901492940628518462511865892956135989662898301602092238926467898473729194339279996485645445483681161714563296179326505710584547439606084728182142278014376488996036475307387224611208331298835093783258773264125370350177137792794935296932765762860328707054726968272156348682325725889166726010636881332037816615174827757899306414150331377103689038568592227738162034210611251934664878049098158021567511985235133052177129682211054433607974952984897946596570795234682084942251319769551794196955945098596607084341792973739963517490653063754709345575758742964050502789533751154908865763016713726865796889037221023285300326105688034687653782943329604355529260960334587580031172897362441199451486489018085807375285846103517979402988500091599404165575100452964182444068574333012655785760242348240414813597297017729686841897604337702018603099839698631823801650988440862946494042193486067801704298170247136514591260368273048684083931067148662843897067202679634157628686085341882100810898435246549597971050580114004402709779415821091233723268181781865077911570827867894527516985796905985794541671753985559757490380900163145247074791616882098352645663445621407254322168087480428790551491331854584212499144724300852387456166565660208350427993305762236910477105582359519647170300183393189741906549324446044355067517437863750301388514211425146826163323248656356908386939143391002485218056808525154599358409860373755177774589119705471545954213208529827010772311880605950048348001145280106128152086237120841255456016209813391635428634494576973120354983724312780264743219567688266380284822173194915741728345808493566859202151357380342504173999192478494207953062821002356007929759588534532767351946999069771907878097718868613756464728918053273196764142871656629495005992347344037164552494026687718224725116361806067524575124482423210300090067952681092212248427063267400223194456526865927050896182449554723530819888648280487961151705882158400168363040842865040920769114111986465980769829766291781678437706983993956341619857252732539292001882365524554093723539701610355912502892376482492034553076831326284231383948605458572067251301911913041279504204067742401146588347372749785529984263845260935493794398551795701646825417281587131010885222795516337306566068154964983794237995918727918576558483290088179292465606348206144602746148217674740784763490761336708992322012399132566842254068134677187973983916086154171208920261433956515713735246652567215320358615516940125479799932067249818119380140747455669658201313782938155482132188799499782572858500547844180781982302234323504699996999978990969348017464759026326667528412421424460804977445407391425695207959979252567764412114920054715788205990244240329118796433244027594622739948695073793616214091133543324708423139142362156488883145450920001277054003028724148677670913925104400904982376409890079697875068032990375230695129838020944047923119773929841081217395985612940990838488037679690314488237962748504193071246710173936321458652969083288734132601317085742068344515724546261747588836486221609599492394409514284726459844796628059616149188582398998598187078307254788027875735976003022491130531854484503310991452731064520733235468040194558498176682687327331482626554646259286132152705097034797934720810042924012288544275008988486950028062851197256069678660996184292983443304460966459934352556473351387848630225628307604299884468162806980386871524518977952408254979908860112156536838184051096839879149037092395761917432195485295938606118214219078770745403086782166915911681848885575724011730578649657123601547365136831814147346168720730333204696183381879382996274594291403213928997769717723568145120180387817775340019114455325089748992898244372901932025689248366799326380136955577608157514780069303214288573205090622861474213893128191351059573914851435207373522837167240069332582549236393158255200931404157692162230110938354599500344140788890551748663172460122769667842946249665309118901960721988244689310803429874110556680930726609796049686705966794176725336029754711894997844346461628091498695131986305165474122169706339617160251373806839870113733103868559851767175398897434157680928873966614802347056764869763706499287836178962149446668387560061271088390585061666713892199070486518985009680973958216025908043884948042263951899679831522021804723599075858909880465124111155967029640223491401931973949169461458050370068456264580318350299946683195671476514991355881787300425217580783791999038544954462971826652939270415992554886545460417762056653148563182289816676847959295772260169259520113946468278743182862031818452412878604984900534813893748129352784166125962089319838876827877345723311430278181840136570898754477795155611521614525063022295170175012481043271134790200296586296175746661215894511567622866849931285724847063685077133750715474799064034028630261990476764324782579593734224768834437274103609554158392412981226530733338907925635199659012919814466004277787406768580991859002645763435144947588149289304075593098559879279181269597266189784621725309308953061136794427462225387460129742101918558662921647275022658261809120085694376138367773253066559513666336923948939882804334036709782851919681976687618598320894858933845398004896497282495903255914806685517261866748476003802621483527802134381364594376879629486068917360679688622805622559619018248859246046477145821526353381844764438817485300285554905213562184470890802578298685475069379539707250723567515578815804038970301588181008833178783388750099217446749365499866371314064329530787120040179489411244132451696124131980822313779766643206610314118482300582219477806781841945301010850811101119265923482361815159355282417117519933532602463941931757971022444526345195312664741150502626813622508890348939467601753393553070021793530551057041821332690350057037323709644725586757387409736338772399393713440986213734449479208162801711348815985081214605897051771625499425473317837710691905043456705214103556485134421180413950089350801794803721557050611940527024396275944512830761643425297123582544727140893679658458026477446440422677287586078230418574288634421791846527278378965331927891782644017117525934370042051274489904636576991833297633361236979288082603564361384200654162654753874550935391367054429468005041749522532367632566278891420461512508164402013971716573127148239366237136195905359042922898776616063897810386705917239143123571383506800352118554075595331262697729478592062657133205387779150688261111469686515935379948839468115170488092011386380770078398961095385322856752378783809593593087130856747369309599849831959217815710439527520815895507491601310461322494992456678648257987738668796831218583933390906033485366405346288836973018551373244309120646703188266020611752954041029768569775396490048951645080303597939331177203959427641270501259884645553260102466464637269335232560674271476459672878921355555579783755406062157178761586009883394964420410078254542386073434588388543747222207805237108057268011968303147080223032749234746694039164229233724855501838040633550070289086326043719898689040172757083880599077374890695546358988909484188543932158545021691155175983862375198764992539196690954647868342655104481186107987694588821531701253829346647301818637212531697032969710950339862927792713979152162863944993640472522135460008546841645754136373574315155688810794033414290542616228562125828590622328054491437014436755265975853543026615280296993834386470999431499159502803038309391635336015915337123070115574676210141083953008883368583404560474581512857532638740972852480639400176291231172249945007426492870847374736709383121537282672148326788002955178007810471872381801318996873615786013997126085197055133710291544869859253830831915460368512883525163285215945351629281904176912603751712763845678823533797467442545366495961440933304142727852444935367994384203424152703446998824239584706399436155710089818281082703323052700780661732090207201274159530385356133670636702008349171375254428132836612261411847506537577312155777187372115605916532288036292662893359975859489918022624543276102413254672381039311531168389944466543247911165722638325395446414241062608520356918651919097456752216178450963852713739293495327808806741068115070390713558219314209467719172307281327116318931222681027658149825564831827630297782680508388405285613753118866990455945919215237430772269475582662371190742581914157652070974076456103826212289187092006656925228726469041856271106459032594111941518978251792134259551228927977990989892044474524693894553910390191294558033948689527373734014912152972491655052567336544011322251270256924977833607413599954398143421935863012900200407678609711070008011096129699020747559881593857877063268660259501937560148238879654682094182937731315432980419945538570051488768692179586960710514619577864824250151792067371893996106842550575886005487788495605542704533305114529089258160930548058777811005003511270903177870746438839108289749973781717443103520186853185922554766906907143318789359587685663278534109223314888837212691862680568219809291143811249900367269706304439533182650383113570543110812487024593070838087020490971911761895046294494281395652301428437842366114190735191559420092911632625687390849160678138644665422265962963207300061249793729826167782154803939475022793130594002613346790258682561438538996451639564853609202315133842419852126044998964404248358317172893698976898823124403372293120496186317418369237424905792866281590135158350342023757345834978602791324242525870610305878886688872759378055762496128462156454873074225012604266552556861608486661415881375790002961008950164034213673189083948777064330328424199367722991345662557574852496583403238155831176602001184875481214840292213319342874960858793093878252488479830156672117073061571766070997280738763165045206526239122696155352439796413826897790747924915392387900025835548980395900575376445828298094839297778770267980797753186455492705619236933864787879817143758395301892203022109868570290908983710385275523671799275224243759472246843601450814048151109157526620861038036124379369227265784070058003330352124232092111502267904644430430626047941903494343914677146846308929166404961124692864762499775499263907291196152000327060939561531925707828375488055681937163279451256739047322522952508526340848691555011115397709724352321233092558057758090709116568193266954163585968411143009108361718780813576299316687820249227291418703059958065271739869449407930314560815585381471471337331588483483404530702688597981017030077471859241355190795992924925222125179653299234995916156502400276467271114505588541368941503079946519727558802547879489875379907944576471863255963764274690351685802703151758102442745162012225975907374831557476805624416743508124618094471753212469772984786255727386133678787970532082490646108244078969519454659247856954973145449448373076617423638647990147282443656107655804909313588813310563956783068319563234782980831587238248372336814999886165387670141880187408303844789314289557383897429977713887257708780206511076649833971357467830079065836685030282372910709592524033599497311294867763660667956408495678337834985613625229261529920335495778099337605367048691506529959139389941391677216422111022979049963152211111786828107201638994238913027739357446363507741620645997638486796164324497078069603006222338822198167113502720264762473296552078308651511564530206132588200266175389355289487149041570025904073362050124632800470967649078276038722764168131663671812753544331400727842608746539985436561324102426252139809031954101131037635360602240629517488473356584603720395760398337507395091938354466526913638363794032498768517774640019221903226486984895617203350834856776470964381085860496892895543950138804250522737480062575815684934503410056178526622015221139982229631143286538750190883596483797766900986009823095154071686150814225710418171677941939641878037654289979774735500750752381843277395502367561586040620726183444585599806289455450582740499106609389645263267993104960572722281671230965236339663368499797365388864342399104516402625715919559414839082387853707470243578262727791831320569578707751554675711337996672127051359076285319627129436622587987945847116666295139533019942454558102982988524323224027082473963540572321173866406636193886081264527686506353082509403666709156159912047264103382340426178916991479431755596523832589312880366954702709499616778567488880040782778283021002486834518615470579201775502520394657943234413110611557181568081227634642615969866062061463206830904939926821889149053041672490460728145859022601938684858731849565372440318822171528352875222190648559789192775409663241113188185990840649964439612581582063295894605637666766637678782239744921759170425723190841904424058123456134374017539413809542908490620670223050074802658357095300083504617314042832135755858949377615253955926237353558624270626132677919152573849123258463824776362249420398086676106922291942838183352906115109069641938099853041580210130619036534070805587816817994673577187462398314746618661166727584550858921076895292501693612947391878048899619123275602637908872582164156540445050709018782433925006851993724695871535552338106645869781571753555973379599109672239016424673548863646098138372300903727669848353779565066670545001992536009039979544885661585584697457540640104342524202390857117966345073688236034761639234523420883851505312781552362467043205352921848825256382905721785355817611015629680792100390336893720533610130283709158710542579770930799510546154483272514449708795636380796576999760285202951070082582885919025722628245397202821268289268920952540204361679844205253748816658689223949586741615759823931174672766784887356041350431892231058459325755543957005599052990656866665281443068183212330085333359014382371050728513841241383050698422957283721577796975376336196375466598017210828545685007169714268242745703729593513381184753588617913148286080529853491760995188364954346236143587255767830123975571940838560753033221298170910890909596431788213666310711840793859164149458121743127589185757726127740447842347326658904650241528711726315496419749193785309248542880506110182605531714105800079405971681899109508754712960162249200374036194505600373530600033178355510590405649613853555909516252086769737285590832511704825562191394517407077710525477185280328633549324580805269919084014136177263056506834317091740108892027580498340138929736473493441706298330902519742614069895469790751537719588151612246167481274154363856075278209477029050413302978443795207728955698885295347258620095830825770427518466316378827101295084173511923531743598749514683016864691316940779597873286664800721307288777290611845048822237260970815947352105356913236231441190391400309311912224911308690825632996534178725484768472030756532568215391959943343740525355192188008277215670119967327156809570230438611755483878090649910303597594994667229063822957881891908038417962733393210435098385946953692775077098466775279066145235703289318384754455469691943795987310267357380085142180941292895347023153914555873534377368586283916992610352036872253378504641443520112141413869554332697228054025934408855603103974770351275183977972870296917484940163009395994756620149208621533129795192642441204662340016553972684249793344511876796394518499928657662858173732538422457105985873471951460861607392537831147832012306663705667984200372206562177262065912165942088383341674158109109002145863390790101955599530656773472316024867539572818734545859325358721352830397295249116995054077465820395676606728807410513881874544650888386226165739484783622058289748208032781707035351949937655287320522286177521861663611969225067708085444040065215474459035874366345226369697207073622145311073445246344128199020863644409510340549439549872750177601174390283278616217787827373276095521303805214561268733651452964104823102492392349882369481759729168281218609271190509199460006302771312795866976010345140690258873302241943929944143058771892306576424325067480493047566782413751898323381503683331546900810833451130526681559259899741296164924202793904542818260921690906534011912103424934527430191388276078851529081704708682729976943358774241422405748949098350607023466965854733493915785062153649592342821973704246509110770348987535452639475131558323456820326905523792674599865521438176206125540190945208426698190099759005667840697922228374290600729302661249399908079100432357378932136571762347498167790517585978598398390428783329222532862978180024931245844451420277666308023311952016855303606667423718344884642777603820964469506390048124162755867939217194629110430067684190493016561055514695095335226940785746581357367500888882901413070824712163707335507614333718493769748300501996944136241334160096928450568101700550426562412931233034471050754636519200345543728188992054139634754768866473506989257466279562360399533915472131797705394626462593673911908784093230660168203284472720331557716816325525611964560068840246911204898002272778693217328036727490608441233548159806156650929426550079131248912159029265575787079480859752895725802975562391440227035394841950947324402718461665406881670645716289249645730545625028783051918639155140373964086949517746878039386289322357807534066840652131786389126056754906868712936975604959311788003114121500166132855632552978202838975381184944861086402108966964240008429653293859713483178751707165543669661038379129233489435341196246080701426317259697569868652513563731264036994312887012871312254476028913187413295637272811743317790777112009131045289714721549052602712393308643710881936941051922933996605447487096709300344980656183746946342662358425845383743867389465238050274171637074074347796493953254126314413601718006741562747467713801094243688734223162843604776428866884219703455973258179615422268390410248424550566465381638988102338916852246136873466911659773961244101669819411667478265435384484595196543928207822615786563655993427444809984316127364931595655853460219257263825825901041723533443173251785734434968814510620035695445588732417840402650121249648826917083352132047333158990737253222061883047686479143130344814950186532405403909892986516665129656498679632114417878030718600645740102868531464180556249561153680398164176988052263983470776136930183321945058147967979635344579896002120398502227327800479305423755244306203488224662317861400389420077544131521782670218780148375971340030615753768928322432711554296505415951661773158449436105293856786747972812668988832140182948746715526962573000542241839717972503300478118335538129281328633696549617014387180823917836821478521708827185883473437944883911271016064855748694856571515979936450245303092902829360727010108699091007854836932275924885386640683353634685608510076844482495463027148082200959444442093696752136867174529560450741556674796427296645531120207098246876082979859867372764064318165445418864924255702132991310328338593740095690180058631315403277059928348533896958089015720014546798869111250021045809938165960971926593985982532294120098900528782133491658372839265503543149225941817059396196688809037629910537871605834422889099462871876208786461055992895444218334137426488488705592599666208192058432288463554099204460028107318668482346473881184897246471813524126478667527090625408907990787660171594109556086324127184710745847664920956501977039297250822277938744811836900709395971735796798168901890503430838783901922978627187243516614547494532834798386323901510091233800431197840485061844890672412632662641667649909428808930953381770267289409497710601589617471960870913388792599004056448063426182304098411465256733367428796923542493376607607411761102683762975909533402686384079016730465890263029096262917855444260010562938529598256049180927040456368585398204120985483546118261855172625045870664478684629899763164997509174391507872273635819971659069653413634750227294727098419465561492981209786948238010804554368896523493877079961366477204094144260570811886391494641487155941559887277141627658599505770916863982843566088248106868463462413551825771388202780665331609972535290805781227630621114946393666568795916385446531047381835641080533368596967390402312308977303010895204195173995963571598453298754386597870709988968218752072595773043925417871056143664368396100125940751159724978812199999294964727638714456869286003345261287204094725731739236044004876314222440600356748299290095884226492575791039047118677638710338391163992267857635371602691966674479796191805372627224628266234423360886628986533159322069959027875131481112898659112580918632572564022376285627933089116537198424365058335085574308353158925407199521325717861879959687135339392999933509512280356852492732979996918345203002463664240058938373663109671031157462054631427186779969446742729843853608205508723415351952804923692909313075559830832124511543701757988970363491401751965099055144705246167243929101110071231546068109459626957518183648084281746422785279444511298881930164513106898407113575404239212006628915372283404247286658217220154399405082125818583097148377127491944247137084422637310416816536949579574432760436181594947335236887391428892217778592654935719827173854585184074587135746682365326007961212776941748714847042203924350203890412834751564315030730468471428513545113335017432152841141256657171341240425653642785086710845344816992322090949834513221878940909004569913696702849365471131466115335385742788436967717147737428196622150643162949208970412899601170278514190137606396795510956136685857454396406665630600399514562428359386681249612300444226435891559233075068578879664488664673848868081546738034919915650064569877064340015202978258861991618201114640231303613215347564430705435630830034886609206619311551009019435225403893268033296908531511946568866090329027505569146065627582179089906630299947042605859456184444484666400319700599928277045749967123040887695056992975331409859703077657230893247471895106117132790255861542530616474696010074766206141969284798864935719031549855436210528686815787972380254596847078768643222229965021936383791022349490421217181922442141819141958697663223953731094979204353778007286718617879465730410525328729047648312617128685376232869538792653520205536222825712433924069428421565903976434650602280152776547278951088689794994528749345186992187306309604994598313008521949066510721228704435602306338435052166533223098092698878527527517899330951496709288080894329154291915901859031767277963646140812433185390704218322399769817647330812097124148628767340711665824900458483920741735602895303473695254466577290490129335771726940815142914898744982370506042150832963048641507959726068839273991619298493648139278590991053694127082327608620062789804452071255152826609188194442363358289212686892557254417663253637882379217596849834117306774137440738745973182907892606562200878008816319766768777052653058037784999452426904488673161163114463461730873255549645995674220564819633433330437561535959539618059278075431350288624052923098479113068194615766941111491379143699076596153427622251897621232641375771846701605268185221120978398631251902951251555141042237575689584918543739229718209156438994487057178830277981406117850517912129870594543888483277918806467210088608019209532985792141593691222126904939775062905264492665071570345392660740692872267236053778923945203051170315539578675214152722655307993434406160346448665383977467103188286409974179990354944375797183361136039564000399013866182685713784482364933130576509527398866260963181998822954415462413816122792875930346418271557551273939539419765474535553626048664518791301964520013189257741935976310649773533238801290408175216633583854123340295471424003561398311571740666221700601257189645784240493804755585994636209823575535421850379008173198860558119544459418871450592998676948307545050492855591244202443993504544700687962740312903148733134994352673564711148662429913772246366985832272164976515353965980677585122959916799048843723057471692050668776180466457842193441438482276968449310115607138139415490265611969679320190723314002957684079199625292024597139940043712244950039179741543211643562378086504859251466338862962271345593816736589242418302099515413523179386491013002535854265298070140519010818075211224179086723969597674981259381843828301514620372587047009995416347690173516170835976790846028898293339059587063028913085269309743737205799725607429469567839548541730175115269174478667283234589501798005465635120890914720037484112924658200931725021029253693435676017572070424342053401136975042437226647948832240985033232676920518026279355301729595883943310200060046695002345628659215958768569448701827515197808868578502302578377850855851779201761432089759318116908765832688070424036031488562881251387252644558421267775952593078821274212955627426285778194601854229577544728441174886743865476866218421241203351482538974657424208796123711978242024718389687672909645689414974327745065343441671284885713643591316662994222173642307450427226224740357233050830385266359613146803163429001085830594888414142446299513185960962749530130136020641982469979460211206446604309473436526993256523642255573117178134343127649281387432798909530368522715863016188521085793392548895316282405324347396927463042675812082952380522973745174575135672856035880745727547588383652074047507862312638677010253815376970410313432328869172806348978723572538187630883866924166593933075924738541447943610445954463230892868350437038945025536474041167116001632190062385162932778666086607032194213290010602757369767080976952916670065656820983823594561467256073724521859156259985299933519634723699322373795445713085423416932809657522412213779714999465802160840931596168552401162450111205161423732541137893044008486577068048999023810473603958688416728375266735556388081906670995659658559811734294086085572503910086826711037132348111634609325851049336383077165386282518126315520517585766718678996794773474068166254331710481016593669439616781974418225889586863237756211909375817377559677648363883150291756679146832807717160464960936715050220289879527383911713644407156792604413904225271251493828267825335983755315839769815527714438421292747512331661009084987354865873602036901593000359669867210471638806679654540551619936829027716830268479362090957753907485922810928667591382632756639543380183824739858167667127978477229274385821733129127225244308351754391669563131908697778168692985728011661847491138358535186953894565522412932166173860410331037372754740659593517157646247572934838278788480802760257263969960429398075211002971758908081872473561204680047246555159488626824169515155944949185428119569089266858474610569026059669904664208614465795435370936083159351801624049706387031110676259985388170902522207883798272521125706622634479681190955557438503186092047971026771153203238244508431421209068010952834281134901910413291813038101800630547785215684883300779094316381844973767164129319792497031801052819307708440578403468424251374790715006789437407780781539057398723263258408243008064688734444595516746962120059619771824353550083635399214989145264810902248450482196047980800830567168587405563260580778118875845514051980845340572477763772449395914083703021554207608194875356388091739656729789236188176397949360107541693560472746713566935202847648593087071496726878390153369393294753353122012749454576227317491106563478864952001399444939039381201721251382985265942197018251715717428505200762579965602644994885565679268794069804619008230552391377430674494103367573449387377336100066505906162159992231507071518576840210747883385158345231442201567726658232153612888139424255257230109748573170103936787302541816502649018312316432344606850135751444623459576286523336909871206334858192022553431136563851390199161664245163754851130104701255935971183523815114926763616053062912010606234986022176628093947843096712741700031693105008374889538070729674142838913308645082742108334771759970210796911370151696043955369675871769251443044359995582430725619109080003852087055723519822995437105391122154210575504988048190073801774524944036084467770070841668721583023085758696788297755334485190849572767039967607935269151285256418178040666541953586059662894275030580336837458572075010880954430835358171302405820744380982706581070389508275381592035580757737770130076379040712014848506650567845192571174597946230018601182371204608397539653513969692744778439087162897047104637617346406214596365026136248549890233160078030338278789543278006875434678263495799153269676540717695396750072070653338287324764636481419720163430006009406577919289759701297612415453877825901541353834237188250894619619568352618626870351210938232920269484101235242338306336563704544534989600173360101149599089817554126429165026363105791681536207887580062759564550919758165782978970806701591036478215365291627936626316858984158225523629058092125220461885983295171957818583272150902265832187377517584603331372841355386953838828917698458169873514261637031819276210330110932094785733375915742111648958552245667090418250527398117390850350681353047017811740027868287366720288914273663199780682194825863302012143429932248509015145646930583614404286302490215851779634425214487066316464765789323037310357804545007963068126782437341209368343078580811526559098983852994212511444415225479219234579302582459940466947679956405154484100405327273718683758092788858954920122341568295073761323590159354472091698973994106253348574201199782697211643472263267216890204285075394596378485293360174318937684196640660822588960125768219870874870951659454021475878049099589540692422240769931366454230248599693880056909083462947313397958189969497875013761587915278260573997666017287628069639304363883093702603373637323742598423641394478277673820102216297904548867263863861579049436962195825957601204802171700523198981332638306952137505616349518167252359285359867985606373691705373359681373004912742142243094151999105439964298253383321261017261842186775066910424097550684151240991566530349675421825488214170630062938851017242913653797170635981506403935760113628682452062215567507965095974027911613922333660129283855282998058967155560853759694433013064272194286523884693263945519050609278049302124596072000932925934228029820040018390235678734202817725237133355428360989539512852577427355576108463750531662663551165857878881074066812953019007976894737941448756886079766931620575712195577010238445462963641043803828630173452426772162940834989943121853977988269314861096457528031608726426826330549181608545413750015866904080120191554382981013389291718836674490344233261817179052540432491930271537041375171210947598486749061594116096887088728010309651201702916038670410915407525443858233770357390059162042556415232221298326400038160366734376088575749500092816509713038942015880019223659110235579407991160153296113220988801515768326088052930164059071554291321159417005887583124924761270511250955891229494417765199762441494753002140466761739438092184249286485647927037097167039155802439996018720410513442194724747578101189292246577413766455256121906580429156798122698801411176077204539933287125209110483389456835309226831809513616711070600439053157264428812773897586717087878960639362713673485813124904464883312690738604720189192594163722793049507944403764930902810517334169178922772520368809698703985856958934845776562746090142121134655932085089089178619710515081583566797264118755138756119465598383675583394330341533910266308627336298836441249434094833538984658970702363660084408055606724108406955951825349362257589848522838388562787483048188319137881812213463493978182944182397029458112414601361128771705898792716347633443530519354581156906904009299637977040168929166434842358937981783812344482626604384105689125693739296909390482514865891253825428461432128700258005429987322999516941729398868991637049814219157764641191062290569098801215282437051461266373201184073130650927654922017170816793426610437407289125281635199053476265725113626857429556508972577720369050204966455651100413635099222834528648389467324993835818951846284164479558315542586259390539690435969196749451237787395654022638887507482945290494119415318738022534239747165887918335998763702351802512631102630278994414387506329030499455658856242696146044893565076605657592359219794627463168353964452401345438492325173113847532771860790226376764572356637750581017387075844260534200532894697543186562655889639712458877896819174756022964394518479973359160293873297593468570808813220455353825768506278410377189182718562224958595467585212816546433798799898786292125668564989355225565615950213619643992976054713714589478497868211452959259069403587688343674013357203778921853372461628498111082196710251180564315156340998463606761906128760713054907923014546954627873134298910520429121883425170702120059157647665714377362793268260726885676522705757089127262712990859848923032210599591395869377841578846352283343130608591464093532745601155945825038406574033197223956981253509335303211560684097962894594274722283420187585191599394162858649497802168571904323694894208092279053128190639711323143219902670732326868109046682027395847317102012365275711569319347518151096280577737437116160122396622652278219335329499307187512796168625609939139524684898057193412401171363730170922335178906222205980200202435516860527759907007012126586594641513197560054808652918150999528106238903326147604505748105125542039679087395576745629826466970792604989800256331079917021996723602552114203448398506726228280827783876871939383606244927545486429358891883462996454369022317158229603700716875118583375422119144726863417268129650697571358014764332226270818259214797650246868036301041248038105553316860255793399910259772468142428987574938560448203437787194963024846529881501428937967973117800592223073617952270079239306766306925070806849455569813177326155957023471374647251361451723042304484181355845657567269711333098523105800216624542689469330436579034408670672667642089733120664970358596808218348114072807511995441937782346804429755632623825728206337135636820819445518323177654303032194518289569557088377082578240674787498058770284411881229738217946879311567940416231312849722092901295166888626156477211525470444705539860556213346093628789788481252248833381051299979034735930886338163618612845271144893812194049620968133455787798240545186225345686094040266348700748980531673294718129455749936733315003469884865763467406361110425377582871427259704318399484675738299915424833175788101228253431897437501705477855155700783097800956784132220084604813303107132374702356407509618442778172268138773932585196354021680851062690263281884344305099138231257598278907684326856174510229664931791910209878772560603285493258253341815264329721219579649883653332441920172615304274088609716140294513652955939594204014322958448696808291464980452539446784620745404881088990332132482467476449042308477667770330409960436814968237381644315863573430051357673789970075964940613304638621477897220470226086169209932258528642932939906837414349581716075680284350895738660277130365411580013526832657438711648149413008918680894329658621152743317226539776061062968712317617255212366931122664364299061845434146473340420182196990687585787150969799701394792882396583301276575678713481881401751680940381107277404649559212225561861847328065680454708570065528708441598177125173023777853697047978879170961292180397095888640250630601937282959278832121051373136975124672217432968507478217310888727710539414432654635327403207874143798046599550550356866447261701255512481326278420872690610766621198418264093052234930805563955988671005778688086125441303620103727961729743205737163491388602860471239662496596081513663902077528996332124147589416463724028282590104151950680288657146064561718272000587878902206658332568549285521436822617957894318111561009697985783315856310997538339544353017821065457665402715306599877464096077878938300084230691767155487402984350805776510586269173889072583501236806776744456194900530261311529817995174585569724080912730421641438554061353188320676906709739003207082616378429019177477449960458594261416106784041193889697788993668996439488573984276367350419115697693124110485147786704108482942992582155809547170354645820751982336771220598906038361983589127089685125807928991742535445346421406765115414654504064239173703100496943562966186080150042511172729768524417946226527370673883452921154505553511495086716089651567465469096072213083731608517426990466922760933891625250579307216789998411142923835968814545361797057809720739213261935770719159661976414873858904471945696884933744195781103664993518364955089891697585679727312756632100104617641071287514836754558375158368447417406948222708258384766611235112933784950010968709564759896967563010216253679068908050156579416526717446105380075479464580044891149191154496818239474045398069776842860954355666250857073041429605491677724147372318169345754859493245091992830975837305683173091387411766782541392951789684860667750784133752590012311920446557476791486777265481557856507850312274215975563080292867420717906818256930333639202661685834666975888155293381334372171118419909117797513433005222991777625901707402095272543744147836626593199704512242948178307355268928357888106407725105890429723916133540929405613114406159279434725892177123382659012907379754984931804594270726046634793506748922659468764170563141253012491596399638054943209350812261526013304265329726408274885772832148327552066674969167220706308816635182532881050132848818138060105557612740828358871241418622184397010515504053480755420375374738901867735040210065811100303721249650011628044439751841188210236835650650974823647176326548929519885705347115929526791206692182536168746517929700173891726182507330689436442537376937441415514875721162008037264918799629780561850883506146842104812897531210237457129323706268006850943389092816057102630214147101062077988968445072299875572402904767000418558332054575815637220655958738245572994480737135158403540589216820842335343320817092538485750072248856325696894671363430298144726803349221605630459430438301488288892938562718155102135053245995349960940099126567585488054040853369162866333818652409801366751267022491228197420949203184690725185178117307257331239214947902724907733677631539367006645110334784328967541793695958087715340751946598567339697113524533376374729862600427340783878543702084815117776020557321794660082057640208495868249956904011091003309247312146847436495265781262061196516413269009655527300951846067559380925846007292387473711028647454195014881936370219577805610243435330117503408178908959362062545007341377523612207761053925552405781902117903076032260993365989962920080064662198702437302451088834228530053067896278478049602787993130001909564785137563259967494824512379996935753407663640560146916165108791819964848276181795205429742816419371737513565551075896237403495020806245886380999338458976976851047178101774747601045956047153416073621210736839236421705233513727644044997139414795954362354219886548509238307555051800122748637875035560330076861545144396961649563136261846267982820728874293331008725417783622761445451045312803882353064547308787354995635684082770048527354514919299962247012806785275495640200458257385234390226647573074424997792448314153743901830881772143894966240390050947030974876078935228198569194651251007031640118151905642315798655726309718010278850747928128253105728335305363572119265700878630620277076312459270555668320635532486035595793912001426172547936470350018346302581831161987929937836076663841351648176790477077723270766772125967335728981635540374750953679057650312463637485764662781960275461895704762730926573125247864341544992526005736221090915307422984796369637070593072142278738532463108018945222457793209984340732087073575492599442645423932630720596733964098913126126301503925838243987030660370174097028824301072490491275005354905264579290994741810339571068668263822646881140517814571094217428287239027051937740068627520853943017906315944328072889572080907933576173242705761625717584957573436895728373904513702211158878533659211607759928956931400170160378803708420127497315995972982385241328710908754990997447358630526316439587383135862317339689755224161689646584272221809964144366749727142969833682551501006523772417540013774693403987799980940640323738469433915962221083718282940811157932346337491226640234413398680961848923495245969677396588322997703519448823832341222359811814686654889261416007046752151921328272151725211314869920985335842370555131063176813216426957345030805694551917914010830641455312137266355373970740372144595012812561061338672382132758375313190626862496829397486464556126321636939358855821047280342020149532661204909212167944041675311103324784064105687868353296999168979385795285140623905367098920422283585784747935600505887564909326710226445353296223838789488123921115069021031311298472437805933730101494036572988166956005988264828006481513483836926866208707157237735955569137233754489220742332234475238426470273420393732454857297795384956855029373344709552342794519927929092264516757801436331520973856897417803912808305516239756515647261480726624247549782492451152301918729532309275126332148828890228432898898505916015366065457647159557719368956534415965468341129147330515594783169554173022271099643425921084415229078124644063929511371434872411289334165646234800748300768414837350848651212105976309873866777120862373847520182495912673461708374451952878408008050932198119114132299082029863547113908947598170835529616270618957244564555183885257407450318312019813608871684857848358265456186542724667718424420417638162095687576235897348958163680139994871230980371614396746254132519460423628536637091884017997428039263952836545871051970018808031514690002200540264049601349321061195280090798733277901490648150986162453658474515412747915795383845067854683309275111044464467245079872859239834417820084389610827141792910023409318388338365658996116539376263074647288967017967214599157383236567361016953797037863569154392765322055139994011640753219562444847351338739157811558495643151908475445391605749315367125393630612932767103797361280632676731592210045245658101224862713223022740650565580853738171520875045617666336512763611532315436032976965138062519905292378731603915453649660792012538427112544911857936177253597651229253890927381911638218599981611865952082790270770181260155747504714349495823521082534594006607845183298972515387586733206732340237638208456630921702837644814661550418252354554898622271091625931646017712508950415986183148324797488171261327006081951574850878214150414342830359524914821567776817815402123136185217549992593660499597992669622771516209374592591767994796174705169821727951715391227386845948624513845982416558830800727548298724696028311841083653814753622499196969127979758988989974858913975574288038171155090557525134470822691651664726247609733215482327687649578172752219314704423902167610732085838283523694259300698847271011307555356070784343602086487007896003896574170708926617485787993397577989612629589268008734693890552426946604668408438804336797976075175114073396554882270079085989474071847102635140965741229040467157742179338262044019958407967738108569054278106951562428754141303346596507922137680873287773927041228711180235037498352449212042672113554297001131466726404766828169792673713859857897627894169236458992042979521840050059213556773514303768616103855007128545644785040072775777830762864288058992727485025019881296910509368119303106680519701909339573962099700170585143744768522867049786878536022531847960217547381494469945390030767831115501446922650384373405778514022189818586824118899748297560548484364953706469625919657610613648147615893587821059856948675919099917665065470113552210129031575192686526794916206182246757686617140437887034166345020357497076821948738656373240515771970196734542888603054859715214432996427905276500408987871953841407640436527651280945366011061635028379491959779459507100513750284140511592328238714048027492400772659506418602334616336630926430967230649895585267325908517059184708956943264155189760598720516700040073605963440859555926954732598542047765020044034798935482052031476845844314456789287967246095711018001052956088712735844274867283113451587480018970456540646799132997161748890989095912346170912046863521201527658104369852831930652264149523153079379798944169573292633712089768335223929895880728017100371272152226172874189159141609391396280594832983439093385701950349340491740280816010695590194122253309002725567884890967189794572248213096007461136753902502695210063634733869929945213487997684892654352123061057763066520570602121706327128352903140379549095844988708869477957264271190836560171782211707123511808697880275580687391126896293988209136428898209377242619817252851698173440152137040448946442532357400719668744110941849765724929745236226111499561122107507347435328675183080755501544115926447521037346003535503799108153722748572634290450025751754831195390736401064105190497004704952821955177066796203061088868956623080776609700087539778392452265694020058255150184909981055605203553743432389764136518312020161482400339679849900556481242053454683039557738800722755419897112412556622423478512629679929021915005335479958348711299521844827691663034236514635573653416597202514716899569673149212087215004932346943421182199698622798287684066290455626304496631795252444141348090922309491086020502841439548123310380220169615526614298013829274071610062262348508374041802481278490205231574671261349825950089941599748758591242170987094052431798620363238242295725205049259134827581410505141361711984039671936910341636503600899838907244941188095596887028313616203465152718560219446502867430762278752253949104915978321270978998020632186659313765253351635311832307423337711014095941124136621093619227099756330594309765671516775984393450869466825798425801551217143560309542538788972038232848146875713050425151483762885250412845299706952121949129126441114932694609148690548647281793787253966132869474166794307311791839360485972334411802459414662829362030230512056559407010620199033408678167024160980098765991291062332258731059189383724708237319050258435610910258263386607944174644080566184334441694048375345603771790011383800401720666029296355305070393889198037017776495818980151175602459920027998898616774322844348326913822750721739716617577925563468634893865024219600394474963773318005844772979363609996474796586787900047904722652146043750453889033256414190012305863686690907705288937207073460034951249682921176105865604306999734826758510174807029487182587834262218451880582171559909775861333265783020989888732828170492484696939687012714864341922500916870884794934659278356166577523396985813257508802560533358781043179148226751484006086652103234957032021930805909769448051828409592738245634796118415161694066206508367269629084236092812120927130663041666919881753820953550269795414139783321324379623122795863510249240490787403927378018934729685469061195547820387975160186069696847582000111761146032293809832445562376652583980605247948296421661907572776446950085426806271711802675977811791945861340495919146804352618570242917682362728169300243578615053536421635411120836869608763362307559102491765260939719413641326143966440118339360127783827413460751875164258733728319299105293691638606217432499275751609598510781185660485431798109144531779553994808008191494273777140307316788924387673136061860657463068620131315487037412890679692281912507095374062868295260934286034886036988136510565588467840377472831769897644621950988237871674917672117249510061613125997250189111256383544805129741710470575030158821832320044371150505731207153508035283772968966826473962030040776159421210564360224330406059085173246805682707007904421369434091008905622623407787525854402733573281350659858155564922133756299118034082088506080689420552743023471950561157365663152973971879695225668143948213792364716812693493144684849597553833150896212085470432732326601447289955246353034916208714522158462103122704186683309904351856248880937689525366023321810147505634044728935932802718268481814587299710102659142625377298071451770818943662806747953214638175969103717463488035166087463720957701317550653244585062809524801781466567578029034358405576660133424980005457553159883084221461936528886998539274521021710634823206271308791220569893354027024221892682914057733852761108123703966601168476065228834850381440807637004867359573355061027293636061101570080532438097090720075932564459032713954427954104003852230934738111183966598188767157483989609401024077451549683114874736742112476005682576833085152528385112228679314586988870913731376289224501228620796077308288330232948288163767320095886329755269120660632541973404280339622965855988183870110054781431414958578661359753440858969732668165072007800318210816725049949999642823360955445572007901811420048800590538081799212602577401262564607813884345271588698360399671940910304405900527776654752182390460290488096253363558897757266586865698572196075022961540503325969997563152956630958392576191809048786432575082770111479737224603453082577197627345775947280131855649729494487311902602475724164028312796551565265233073705795262495171855767620599757451903379863400948862046492287304943430644930279261615994899533879132191255915319537422578464948683842200144238819638288569115755719222348873146497310147361926500392187539681616815707245500109458172285965338201410954149044216085631397801358537376253761658083040519182794737226322393914220693422060637811546708016365150132546144655429186556144139003631455565774817869806139386343425129811166280535839957483322587998721218542133139557666902775457129491283866380832215920756908765505357642431093099055032080934430320435543683632407743475735996399845902828373737995084602407790112136242653422917427804213015575288824504385837658123237311978962943828302083134770288394210395361879529805296124887735666225875109156953100183183345360436645447782013815453502539778750171211097101000382528499272154151695151838165662651138840144551620456411697179584775962763502179802409811897448572424528750329976921127924421845822764804918657872131563913853221992596542541404079291119131418974475173472930151440687463280222331942885949348903396532516562759471028447586819835919131248439144109781223646910406236031991867816342654222372727801958236548115432152635092522025687194353391549175979260902093843091503448237493861214469545956507113814380289618848441687050607756583498884456029188359754974803971153942446940889301141583376566719015757513065395372854824710142893805401706359537660342624332168746968273214039687871730291343952992484674410828617574175006571148103236039869173349826620796111888710051654110360883128821766740160585455948946961598458969674388685943440256090041350690924324838216725594393630259491936553840530144308200190246113310105726825167516415343454050069404469563423527102279201812798114257346158877491915782103401584427270349072619774836615522734664278584836372584043686302723593577056281390251155942934076547507865910393276029288790131517437637830248261835893809619621926635588393203338192580140506737299596529295152918821978969189891175249549712736064532960176758547059458026793445423760234921181159521005420301107536895203438412997205158082961191558212826249146076704178620881525799474548293119212153307186042604321237845539490063030395501885405429876049085329084509362681066962313312544989653938956433430218809482412334825514681582067972074925866109466864453160233566029682698560030302537093784710832284768246833638436558990026135541947637385154499796977277147583441743093737501869738984072443395898228351597437810291901899681676553659024505661190993865717042473945086230284644984554095213139849580651215940026081323047817204300681123563329899842946214890489776649317017462977780272777671762181799123359324958374078707905059036194149621440907195433222377494507718662679503257337335953662009084573753735111022947915713945816751486712831817182722177712954685268685581812661890265592554627551649918523352870028178608750817135552793012661096109090387229239777940734408787482247148138571784038323476100214253014196069874598872108855249689766785222654203939379795464597865746065321653105449839282391387342005878770426832316180825581932012352397934986002401996165234468899444793981034440226982135056321095976796296597155778114217317351174342426085683011660915986404916071448140622706907475987308258122695202766346979920273506612064160573080109577885271995275580362156281315959272133600305649585033316740181088839387668322137381621301250783642468107977207377967287575571280719632183628089852197228435998041520088179425412556162315740355230280542374025001917938911209972956355170983458429425179011647328878342094801387930305771790278165967863611603156775667367035133702781230287869159573436777186509772573134357562798769294860990392841645281752569211225517700463425459807548728089906205630464249999877125082894767911711289688639385941114589304077429187460238699197047135508452828811210769991509248665317436389093538839685114131077654064807862191586420372179952497784212875253835198789608716627852547417575084319536877085301115554094940907639939060191791548417215126307758924904597105763294266483619186245684403731972607589162291471730351527874154447116401184001875327845695891419814347852957538724351723440306517344394297484734214556103570907425417265028536513201115942649057599148272079053828191861796844363120856081900433016178954051510224009226672644837393363644458915388896996002757677109738038914269116295430328450203093673689295475192194677532226831102125984743377169339730008553319475542657871727362431047539342660648713374535152756514850587615208610917539121127142362954234747281417513997189364943879726806650411548574686908480205222521517173896486204821760112868551064818486517408764402533538631678531554992603202995977762765771868168246634133670953111133627329215669406997153765662563462757434992350745055381348578729485098811267644758105050451893207684546619874541112201810351020853400887663823748591116051134759354587921091712501223192706140620955459020604788694411706511732029952141539375564122295940193270404615571431489642630220808085375260210077938969055961229889074035130122906026001797048760369063258332242264707345483313303426785563539320847553194653343958765961576939815301329872718810600928391308026522515912248836744093111982718638008728346820002707876644415671160395802808243883050949742064778535548989574706457369891825439682066535147637425692723155265874921986852259474485751769382904209714761613188889278521091977644218366549632144058895392092759892514023769984382601173877697255926755171214670438951659514318610194110592783539857800944218283909323480930263090676598504727580800612653712716796392167705856222604368520272253799500827493766363506574681932679588645265759589261047345026485472850641047541211571905996617799062131881163896927489602847932886482885086875661186649345519904337144686540276715892143660517344362806974613537758847377024179875773311129925113447728669774743643178835200876398699544444497098335944940477574433301757174490062953478886043194861196180072616620077910731070343894043135957027566873061997802020732983711536790030446227909989853704195891594570877930219396445866832814471211629537161803910773285537392972124997331624060745630373396664870066422856142441195223189254296533080997786590781794511605346707868661523157572161712673346564490831055949116911185236585476350253350468108502789057523348346647649194846262820500352744609376440038503821493441168261112100361872801650345678610158834639136887745542593523224575869809139684796431480038376783856981345741473520156488597726865512012967802748269404526765576824223878487764904589522342961514291502600196278428981911122131600947332105623058631307535417056857614346683341004371731825392962732306679476700138415187892847792054921670444993496520155341915518225077243573688624927685424568037094811503401436972224383040762547693596136546470779703134675251011329820509592931706350036205102346559921974485915004981086911207131547390585977434043028894181949963524400272593030890454865114407460892453856599012564899571181064400234913804438345695554950799952468908921910714828461232541734607216338910775440938405658249604651002696329084231464774152119199011268879692977165211189357358968385485156537148225563973453239578978998902513398566467885544778146239146602901784028044621076531955344094182736440197581047722833812471678162502387571263290821934730417274181643779690595885632174558924285680759150915432345525795774479173973625218025396827795599751067003757447210378092295491390921137253809844504792931997976059377762600874535834919554130493441055017175280401457489298702769477850678824033471933790856189799910980613917977492926482074253803231870308003181466722217776859039259093023048680062155323538141641392939530052347718037552345979379504047337840275461183339628069795909437941446564569414068554389283347939632871245456631785932319918084276999010637948231384190082530349487215705013739394838718658046985071167702430729213955648620833253369513550288462930367788959398748494119281495807739570210771579037804699988817547781505924797072529814423128925783175481826078764478979860542128558177113405598709788708631963993359720709801867809062319765303608157260984785701083740308857300326960553796203813103233614312148955355803420236744304578407923898614284553490821865865274012265488594101431068403968866721446425291218705067616330661426383042126257126665537095134226535947768400216761651774084451872696528693887434870622906128813764074956463118720529246088995079666456340509260978500346591552662342633307685017884636082522830383733126436313753333079487180068084782561882465583896349592000190246837144882764437215133437750873750682859849959514644494794154116964018215647346684577796306663515497718080192982655054615102290531965462963129096350745672780175639644198933980765164830213535395233976168695398526797232597957962292725154195341405923561920649280742124945332552499284850447497417374776982900074663847909884513228344101070039625589690476652077833981618018953544082611792048378359831325927395840098105325881709784452395323263727050857455038715583537255713251426820838811956202413840371857843219175690125163940470796640101403469874964383811577934790797752675183829775499670061839924150116210884767419805740376483251716642099714376223876806249371415447194567098912523295573778057127051910239753295093610654780029868344168314350272851108048615502943568543820081519417328352971039054232701368688902361057183799399322535654290454369866136009251515424924597718304492739132223720699610795171837146965076092610535382506191845185437543793632492227142829935281358547869694931483750044776530692522950566378099059718460821233014144385272400593439263526097902552631645560198264808531451192840587533618391020066215686011251533856234357689758317904869046677583078072376251302856972126143345035514596088176379416550267680935590515305710907740841407916675060910418094379428448080054633305630161332927727045037912531504272582247190857052293983732624572050638221031408731877353080206893619268995320487906591995162400826524599916763044194130423563375770272827684745589432757228037782452165279908051222220067977854207531425664194862997296068707232889979472374460675319674648509805512890837884012760894912703943193452207870094951639331653129425617521146434616057734239673985122613214989502867069848220498495287980703343837097528500017060947966797816990495663534186782935376962865500173718059372688739749251213848668282591949304432140459688500528193831406696210080000022423231284429456538252575342878969469877734345236559587765714727731756107674898165006138125392921319208867990557880016178299917473075941387003121768017228380973345987465730032200581872894272697175252956929971816144611795459403888883674340161877536943020959627654957656483839270625863038617991229834838866226521970674383875453832920157362893813935180831143806481837699168812418850972761906775502007328828784796454508288123140914913138708514030206372859212838363906795335316943933740158165613684426618107450518433721725955645436131258344684373480403308066268368550024368469147792238600008971491794849629735932205642375926616895723535270657921277015671108714311674162798754018272807997547283746464493511881436899820502733666662524598212216791106333545146680214031197060889547089634510892114178068968985570246065338488453360139750488548521511428862775329885739309341377980067115020700173359746663657392360077488993870708299378729200409498838332216670551159429605783539600930737933220093874413787773385094185308326911771070284062912326946467694684006467808803649259095577141179012705680961742849047352435453609459275605594129631756544986638426091989954250182295598169134796069498827278892141168267314770929410932465049481467934269158194539640332613897263201232115343174658568614957200557920586964191427821180793210401148584401354579039756223660845647332751876899858287476506844280753099684462215389313085500247496723974154907367585520520394102889840153723153212124590021794409716621497939322668314966125322889426985205151580527699037381584729640301496167110779440065241065535426381271288316630751962027801055008243356624095834689696089644553124902219906847451319819626095470274843850545724536872263814857207828981017266636172689435317563824231911743388462055260805867403013682296499107588084309167069308911767613939659582386276557471998991659323080624893630916305662073436490631253066016567032510936889049908410142422778750083059173784817661451682628617268941956549694948742316310997871294675258839970395833110315617648833818598251838073168081741347797509939223417988991278838643380326696479234650573735383754432978423918063707064024076776771229007735602027109298202434448844982635918882393004416187227474070827564160791955140170710496036920526702137648847371560176175141282906942022596966561497617008003535293013212943389607791606278099309464916337107644193234641771033619140971085346818813828399607760198836754923312406168432472075950287853418606562353405930754036794448048124622115545444891833401499776927789841500644598227670891532596924787153495885512007932983443738115770674065208126907856274029711753168060406498771305308328047760571536295483784967495025111543174876039929365925490110160739274894520002876760072334405167869269287939222463462542698522301489743792780441805500909547164944261913659006336479853674097317953626378941446513211240226757527153284668192451473121402295848627578826414128205189759469364231980155927815695128716116054361792577451307962616249486240908742376658386096341850577184384519080597152013746837643193712149618034643339671507120874092248597047396683132149401324468787656299582160100439370262580934869370037424324931451397870612187603466618077610566579975466356016338069292384683185135392340640795502096831934112412964132938168911314661492994951590342943597280915297059307656291754254358619500236728805687596117150564658614746675132993487010452522724642439282898494836827756737678880959434970701980607498406743837934843850369483667068916862284685674505191352617985549164442979222566500434754302685917461162446542844231073750675003166742188952044069512145311278656478517784501341012306934490091434859561786199223918737470758683949044322162980968328710152996437674367282619227401290571729838351550343268903265102690227829452529326835313531265878714294109577307853517748424678383402829860308443844048182984941773242506351375885967788935122131514157985240148585086080551463338911888395609186797887439791996484120157058820252393284812199118075325788029132381992208037282172894831053455475644918851474044159454513004331873621736678194247608717082565453761998841192424781211443108342998504325172526291580922585471421418168786176607029064510375309636799437864668142542700824272479738038981055872450030072410961837187279694280628632745102621830090716870767833450590096177152158183021056666374813619406926048174829647085726353871696821887288841007542340328857449363100301767563488881635254671984242921823920835152760138703398246976557279087500372881934489887252046074922700706675127095611590114671307376017744647909124243643363461739472324103533521418173513024810532659728837914141764712546450255935592106271496619318941925641081097011496218180614451067015180708029895683616843026835788870283474635388364956101886513643835455728373121701742862107207377291337665304357797851365933142299923373927822282474825379452208711592251965337246969250281208045871545081730261825899927529338649234665288680103479888459203870920086081969512074493440003321768928875381198034015715079733879654616204138417724420066683059459579584869541704221864859473811295452006211712460279863511973817392101279030539222914752961130398969942090269191620225295661446777623278615064110151675799752876522204097466169879661221968338924431998447036127557519709438423680018114889118474708786415813372983946006072635957081381046820472808234090174493350408586706639941439146052498896427263838916295085189415158975645538751985903735092190924944670055893524604840900647653010535645900427029658526711814469362384018661962038799207076659995577674914258325973035370167086345803822313088320696474391635764294832044084480572688318974194744877242145335631919398444499964959203644683655133152443172378245135266340277709928514340203282660600346720713117809713630468469660809300917697716214737522864216092480744192056335786353958227616333284288272506248099734633294691654880095328998039918825706944263353631745332586114659810554956802738806225677224528025461809239938378640498699359107788496266472506981677865640551372657725230581771113579244400981955899973184781739560597316454503206011760938603416135929685021162061068223707882613722286731177933521162423244282231037619033132478007753231755540663179430494192893615473083490001355851040581204480396578038661477372136612564643205067510406570558804137918418779330961871500176517906423086635506488927099896776031273083741651830516471925161128965528296398445692148581372114029531314466040623271105393854156302280496936505534173703194459954235251394677768881550313094571791978894109658507482332523112849432425988553681438044010764816780461229371055650150471103710467198841249918473044228358150399763298159446258869726134851830495601000769086452434111835908927717603743508420712804091384207447837790772102759368424901360575120061212821879470727817512619380824937153545117849299577814217217197460334103135738765264217970748100384997475836860010274496149605216144745286238680958747538203368141026975035200716486267180788212931563969468078813288196633622548329631626277305672449424439078376819506609634708164214772571168238298063059741914259785810598766358096832077420275370797174726934926848637975811605200439342706354573675773116782239129061371853424601356645333990396957426371117451917664998522140565157776300322312337067520982982901969956679411790458736415131987995232903555895344100633755875249874984534351367951717288220913556682425572315454714609097854025996711428481547011114753925056850230237170107780770260760795074227606725274794248302179281309425125502026673955832685302228787167512743936005028898033825819712596754643769783187785890562832225352729735775726275439181521933240385611114338732013545505361245638379851907366041415640016245354862078219675646412772784310278351074557814399894309248044564210155731357286578695314547586956515469644797667040982690944700916192040482823935916253357035382794994335125516427359395262314094225775143182029090693710593661516594921135438728171569986573095134441613756756874276038269731388008722768091650246556937268970467967685859091036550782733209968710859018546922448908167576196047661713313251072843058184138821927345911477441853686466012610902412537036847903513288388724097626866822850478531179639524254855537252048664907388289641654374709199686502031235754968437863088177124143992261908038434052617849690554149770469620052226262764847800218222219890018546708793134118674350218311993460589609966934063928337596820904863003710246632985908201345878483195238577557283092238251268885844331694220564830225521551644538045076458173804851949601413398042443153849762760189809200366172742040988978410578802910697983597676863672697875598727177843251957239241156823034202129678448381311408576793028029842313128464990304553402922460239662362728909890660318713170992984446342936329197153402596387789942254957485332342997487221177607752407372339373031025534536785891590685512599284673484877314392672667625799267855733126358729067563093548387077369451063657775817468567734313951353136765207875508515164992454368446456223741482309538545493317913279014958964696620454225442052452659098702673783788160869745269435216534640269039651360623302718778465690350978583651742579285936629595990196666660806128070802434265859433956936045191643618859227940313310528927996299968806106713625110019362407154250715208486498155504626038245765470846822830994957792915123785983620971397182491596684295828728269683106406849148796553668260402856904344801898868988979957723434381838333568217351906408260327198583164792212866047049279628158606785184243429551493135346337324991853537628733187274280085714724220809482518677737097175805676810741972923864165793294562670504840463631551436917117831361927423561216596185140788834281706811872554781773389059277288217358880932065937832565113023942359263352955678719859180178864471560640224551995188405220165368244388384907563674424000194704217651548966436964634901893616447594115978984849828083307637239355603465584457371722766103326017178689346989006755470003168090884170207652778452965145889291496179777366628362232188208547208672377053919287420549126443867895174996671301057504440214573761333808040975408932531474631234856438574013576966118681541081988013864596609761202784531406137541754640276031142797819737953299232412682290161102516553521626027051924732348025670372199845999057490428509522467881073607755756415800380906541740905168523376587447675435273063540247502605465936842735286029293245051916252553770078214453713019948010312451565261087305229982056197829158613292017157681734201259146184103476627128760646844283033301121199432468828132150029992756269890865389922199686541287693274254774070706464323409936921753424332981222345782629321968888358045756241304373005037934849585774146952757614273827381540435562245940107051099522144848617452879509141650469501503254794816448194971123548876904977856162723420158867308802339084432836406119484456686460653618704902738890029476846850679563478555499794212159555015581686495225676169169144767669402921958878540990681761358084081644397465752647954474181584923610225775583042246423577940264582904095403884599937693391426343160821853413616641444571092278153535257353226213482852126396800576829710428006392884842836851572684724867732972084423947202555952971593834813607706545886864250686375064659630933389753668255264413421744716956814614675484078545394523766378167744156759383871051971422017972574913381528897530756987978254267545963265318602146225231433354782103283539149447769290087112137775196232739641780523587001735923122253674964427812179893840368389795202534001541733800826256081526969616717631465243013973851131321334618038663808319149827909365974591152078234932454172950933731521958347318089141017274208390881829753028157495958605792650233711533215559638725530098113356599946330613652552456259118705190957976062695912085249314720552328536438797289700013247586683279715478811662571962930359242314552101918008180889018396323874065641175102412285502686001245547769499861841155086465638683221872485065638013222718944006826045132454880188134208140410751950382909625879200858662287925011799797405947825073219903929312416825616107661964516963878978460887548507085526992983850110614975658492574134452279624204949275272842526345383724367562057930965452358110132866224178403067562382859641600168564359729386517578085293380150356896465837476700028732333735063468899926219812466185756304075286668122488134162046961971713124821721009637556524114026723304045869789289594171107841086686701056050299362499049257790723242078052574710105097592995783187359180868088746243767956827061463781266596810183461385551500754394292921738500449428856827265771612124264052706768013063236664229205269570777411353032000550156744773140323392671578804418134011210918160638975385933423007512248150907488911507179516257748721492847432503588716118634513922830885243263261965891819277231389535803070307810230228745566477403083862887415970778927178494937752271490692064032941484971379014441359956901726803856269499981233320683931307003161366135323230195688051253862797752019269771578450731515580675047525500055612744079370642909583747294995369026738226158616334821342321761307103559751850867238764476356810724539975991937481150944943101134789218726259027318133074450514331463547667362281213475997873514925950113360689487150963106712011509672976670090283947404906798218836737340852108259203556822236093661693478726072055932740541608048925965500392438542626161419850624729528188581468889089293490186923816941666102954810906518497152475326044899608648657954508253035542748758671474240267519056857981780809337588971544623321366528328800926259882969680077037897098529134231826266229505125127228910520166506469716241004594923071651372575481380205988917985522522411601505002839144565018071638743537030328334035906634319712463720357206941273168655359986119414374626278527893543746223121664593439160683850777405316215750498915632562168884226788778463352097996797042952615559269438667149983795347681849439220608665689214026520695649158684552251875001104768660485511188679924592961702352072507899256377404208215197568938166324308390291721738927135679078403963106225908098700171084043053863884444462608219116690831865908175020353112809347634338646305068142816864501903758208207732737566294559845318537685749714622776575140145057921862878718958293300157360607616007904338594143659035243287438618807346423535319424932078203222438013925896015489466198473482390349020410462888118367870758564608328354956810435325816153293462099667867617248203871881320713211416781121708827078248108329885298547611896708938504521441142023185511952075423994393322099772571452640385291342687635871779827349295837176960768356278848573789979078765856811456928562127623539536737519576654684670806017941470702853612162790473678694787676105375831078921950635300225884686815020326759821509655771586326277039295157366581005563204669129473686324213625000696111775413884772743388981580658609769804575734846878394702022457613798312255797455147945695553898636776715718071354544078215312661820417188263620293190742438525690069223261776006359410666391234902326646227776936598203298036537946696594651526437528955204393682837242049071340504980212510254856050359050558305884646149420986091756996632756876733757726232325045872868518799554128331208117974640774107007082154627369084149765315779751815451540314550324664250961564358317791005118964118885502627316605466526711814563867385122145280912994333069726005675465829616752518066481219990210975800727776030546340836659396770718141018036107541044892528329111306170895222839083472136702301939066170647739178896823655835158194335176015369339414541218585713099865643782706837730145367105748727013170184019163959886187319816547212268285338116565135348276035270420204115268975247060261667219355548598317124391314689222045491352795421089895446694582715603504526644154352737430762996555312007636228820023847917336381750535057226959896200486848583727315349416209363310066574968348297382450098240581686146031225471572427287540342249717264908269008557950244137305663107662552820099534046403791008497077712521184842621664750176769961476113711806759295846824437367302694641535340700891900409767425884874341187399367316350313382682728033511381574911909603543061072209439034708775081377428078580214445874805748852109349585330741916502976701433686435729088817259510542482979862647818479832233264970883778135185276408947725608874974852476233174276254778536407342532969705665246465550696164212305655376188422393662609097068980235856963347735953145190839071521066783276160787217425855953568662820270524884816971347605558230218689110537586061089838542057975823629786707304829699320810476277927652473776688466873583287285187684347198540725944917979292835553523143923498514739763075619278999580704060913069640162710795249463702088886463566145669439143286463930020420862184154266285968517529005495527663716298049928485181652777645007298121123428909389882131433834752939479983392188060919460159267610813353093909892110168345319380583561364755370608848447379150769984495320366705415191514885035688910615429703706692882078631357023929968437947527050681402343074502626933703239502196348247386579351765840239105709058770529763433044266890621835231642408101227730984828155081348568958026203654509771737142680825999039670814567659867191000142820129718873517515247879244416889019926385821701132582061546963907962109973167109055243093877475091372470333056852756166489796271974960427501776240213654964351796188505870802674259297126765792535111477426773099567032854055967794697879772666111635614614673336338322477867603081045753065643978004759820139638430806693527637500835906912537435593840524694465111044845373730557229735172460321592489985613209000119981704567709884215724977109459423074374690962334433264831635917549293371423495045588921304470022065806224599995293273925733263192351841874850140821133248079783263708469241775133358345823722279956171948347493377036767299308022468917591491515231929149719966311949049839372498184361867293103952474696970576899097143947196458616165045609737063159462560016399768504723172021532897990575859768721369630565908516591802988874939264084330947785203901502232439064996914620259059140841153407188235791896055461665158815514930647002334389758591254701471333664312124803065325856270189308439355420487602179945607169054166091471117438172319247370033609873542319947689516124228962876679423670440350016714284228277157155947044705233937066066083303347741797441296117166335324524478858518570368302345023945290120386804512109209263142262323840883058097884904521190295757999355326054897991770001005837562478741113589355452305531228753195354398846007256452996400771830007311979442533387495518382075203693495753129971236796048231552509570786547491511322232171549571298009330974978123048042184045836160309040133997239429354273176455248526244647052357525930618351364395899569415895551131077117448922584922901797613271424610648853226653222106088258000965661328115876130116929580115856051292935174263640274461390108416331430335764103774327234165785122771755656597462944724196751393866752323758025353600581086625200100575523352358797679661593301565591479649607131610819582504639677372484002493456578429783365671615339647938196611080487488480060536750825154587051330759110945036836429442925908496653714681392201934437119461848354087961017702437661483434397620134612525426240771008148445973937638156422712845707524882750105772568540156955871343756290976982441724884545640989160987106417006929255044298730032401181317560734134057082583563455248402730652691469992205441999846324306267501408155426331481951055462452639628851043763407115703670557780690518438150724050918189525413018748385709270388448851441549777219582014490409088831995457824939890403354447790960107896371562490535042626213454577390606008059018458364037004351828143226661766887826403647566544644137710581594972116097502779317966192445085629648236720158259875002417612345267714238162838551604320793718049810049153024497084049879359373712418408316908929867088032064681802136446763330473355299989582902952474639787249131039875658166708930627566760865707369308530544829238213738460096997611367610492544077022416469377359371736206237152982701637582497720358882691696451000445677377038775965030371950179541109009462639908441322688688129527348224717169146320309357330905195846194525355900839304609013017152135628926272421464931737499095439414187789306531841226627713641493768828566235889035930708255298891633377711052750404410226600014665351227393325522200241494635564273986605003063376797996775530269028645224723894013782667947561375034736623509689734145496937280530675230214799943387454698997838113706550175729763859355195359172924122414403607940729280250925071368901492015510231558810354111763607039281502452493528843690704216839184566541888031144878767799099631141526640152884676113368526246707218815779445113128353462059460662419030082132864452218408081859497278508819886273172338631897397820392681226464132307536588082578448056358059094093947008475259800470742079982333422894432722698711641070266508917029052933716761570651294350895402628257615829689410590921351352175314118141860773636725601337075563709633492717620743205452860717854659656879508710255301408375272224960148689409698180180459527396408615362446554700258227916036904071275727452241048268279236638062505181502510650526566312668437444319432435459506475060955275835958019453583670616429560662517158003241714836249033925690063599629481257588956835438361110710601820733718453382474753288596023367137400026954166327895711254118535553079432812927125217364618322198746969192692116415419606835156486473457983032902142935873678992676983597675472502417902650173494701102132271045263826741674723462858120816020900199230014674045554319139871672353430128214182832680809999576854125022055153358279748780059489013135093706377157490831803075587164575050963839576263828611489415037457719418849148162945729727684766929793885876737329434617391661765659185027708206377787954831275578622615432419692377493779888233363880079341584773077432547749708296762447571390359035084112778333280679776129564980047988519911260311480636876432101957295131882093459100888074505428680542531174726304264539106061969199608609189908408611281622887236898305130910332559199202796018430883774046967994817607031473223425739721308216005267195961955650431670764450949891179180943974590659584979651961709571763563836255139475375130319274047686229170500298238664368573873645045533943166480459879494109832379976405264977297064064228054846454977409804448461610454942832011846607603819818946960733052533266551788458869663641323117755272429552569227789765901736627825839246628816946206724151771252351647557297371099797074788083293997914108582635716492033557906371865585062556755581267955700311761324718489465455233090775231859156157015346749927696215066418597794077990984758090388311400799176223131561236018441836929007602513509432413490394018199496905176236467343694455441439955020735678041681215434217505224279248769000279237887784264381727386850480839876636482273900719529038981698964828653933184944408176101199181219621582911528074213574956749732659114494791367291770129815524027462319780457748982322434287795085605327747323363026108181170444164870538657574838564314052722805077878345678898986727579848970526278606143223401764950515076922911252930921320730791744866504000425039271427566882078499723730567313919541437879299198073508856329481982868854567962034542119190619399697536727341169667343471050467173880609956081515347306021144303675023476875440929104703566335766103077737475510814265305040954027676353182863161605642039611226374026463359133477900312325902148657288884145132261588485473391093648656440033475386378585384503565285569001057367460605971655622492578911597512179659689102843435837758043972513099163219303603987908546734006209417854084381092894212980512247824823092325446650596138109782793369045848184631695004683922091985006012426883669699370819189448473817226705077684118940061654559194531479336962343801286086360134929241000509310447652423626922682652520167901704736435211888244969536303578775583113238951188937859602403961629718318352123002175164977460234116357928000656488543364586160712614495920999092526835452627968802773637249231518013839918980251793254009788864879739715116369686649154896688625406592342307508113048752259860623119535378927899620030557888983376587571462888336348177639856453475310891357068476371002327940509601822349344546914064434043962633572193829227844909833788179975577550204559239111606400700977716957789233697187052888041536911378092232058781096608265588341705005337563163939506853403757336919209402424151629151642680883424733796704977720067659972285485690570755277565682147251681379150852312164321641099992210407081008048850708542505461593827458583911535681702224944756712010516103353876438047306717666577637128700711389894083145153890259126237683365779348598211773709244692183211679246624629378059616820380870782109777545193289944147672430169247664944977770049529422410660867128718668376474382625564940122369686212958064907037997902680734422631818654915434587427824687027697255423076661044887792889065055061596925521641299092067819501553022697951408271752903824118544324105177665245367809405145499136988288744538929109383159194736238208129265933885936962466274550126477621157204149140773634524351989049137736059505682363245787256058081915155430927027159721546271671610816130573270138987397722832994605702679244397895846538126370706878037209983003298522678294313123990334628892835380570604950352525184446251414240078843773472382098700157016013408017198691575160610295399076323653274010867898118973773999306011162034433048411943160465351960829974235648111838891450872941232595652778206303961548623386822264994746534572649949907938564085272185140465571864739376473886688081145382532354523475499205755118202573309524039756198594278968316100847100838615113889731954185699394130897205404605655297216249398120211023043250117186789356162537729113157249527395527769164339676652189601870497737085859313796950939835004211146413441905069731621797088116284020563774542759546871167174113726338253779700736604355133301397476071646718918763938077251496975254568222571293328738260394110783460628357248902144767216107376293984394241009095034819743146338148132497968262357712831079477700043954976563398505319163366216678828563834626773370806908114055933163976756973644854114555103793589217744322366161787672497560631691696704281246720679537241829730191828692256036978413466835655639344717699930532254202586849179826719833913442438203878375064627139049115767318569909489076690958900735248325487677054295377192791460266739969130005762931249806745439340929377501162368609628055720037622124126048812059379129811418484282676079291393632957320770876808350334398636777989425732449839900051652285039482609811647658337690546904639468094224288166386871652342267146397956015078170790540452063002239230175936544313699767895493211367852745557951912935062200469050834894798228599210565498722544433221035573857350973643502663395537531026238893562215666733868947013443795360641870460050265591071059618759579500909448996817159175072468172048725583653533460429936490751430919905850345867852662601329523491491241979952614364371952594076673243189233584916185664497858344136556283413856961906065763581305053526675501395812890985520603783336943551463376601605288352765070944931549166026859239364347057969559798020969669782787692115120508017883187746858663876243512069265788089092341732769342416201060299552511311282895016241810470193056434573527274611025322198928360044735964175464244953818482695377425361523403809762381254874559055245862718791548434040268364691898563666066607794243462488298551183994327638256976320256298651778964943040660575541876817932048027016589933896525388143946015843860206056275075078181767354799783282782412861482202198337800929936513434395277793565913737979461323123164965515709066916652939455037147726131241455712961284611373092423138139279558048670678421396134443784228714115665338053026071134652047975752262484765801664206255115852272330470521520878811450383290062327839005561959121327710936366497156195433545305893276218252613053120537525303473714235563126423854492555621737765899704163555658866779199465404186040727723660750834094185114355480434839967625336755399296900022142177671321137031914685918949971271959994685828083237202870247396585282455717505280016284722448783315560508102383426769645512127001330947686510066599741407930344540558317215176737177842521109673549525289291832346551727746953994481281120560637597590238415010181645156415404600754823012109067235529426827830334047617634325717529563251120595929177280926423176241865836341801294369963361236183763036842700112037121555384819504865455433217756024093041319931054568211886794070682008724431557436705344577539990453578584158495097518879490096224438707775801196389698918304565996504712510534770137190022835677703026468459596920215256115116224280528723510394387290693990656852457411740840471027962194316032937735934030871100034146904902693055692689572585628784677622177165990952630916926376877596696107750462963178680749724525886533142690094206361415726703494357341788429830006632488887012098017298879127432774687961894858175195729805412368995520264353051412088990199346952018448194913616526974633014779688781950343929856860820290559418087821675353974666309938760593727733895791055948801608342296824459155703629780132426671694651417966912968957662960058754179837027995288335966474554889328022767718378310260449334426950777046209299115464427659911704030125990092701998090391308611762191610566743473210671921934970893038338347250658774519742077834605512468683667271609487684952786597951076272288869249751952954495575725693222762163242967344600227112616832545345388381923909241127674775644678188261443236497980289209010027893814440276196277253584661667979819213251679696458510346747248262296599574518602895328108144790985586740092250454806517182151281566164193989981680606820746115817906230978402274985995349245376240910645832008908762202499663487554266518974513519663845764737469426652809468734777349747586742703987007818510652294764936660733888465409323929365502929929173693802369751962388696356097112744634507991355531378853312959238183328140047444985157389170382222247768807695050563265256854905898105302734043030122879832917414010256797490341403290041044716368864912471171578444695909296145253243347733644731625556351646610544332311372317842898684802649083212287202773457441645468333886209934614135852986403240256152862458325025030787323391898515355844858030492900864451779668856951788253520790963149872423702171603750715651465407551844539196800831002763038054047391216615302609260781807780759713191920266653352943736838156605207618111170208161358995226607929990996861591216064343893981286649324488406198761863602401045997200661948941991720441252964754271128278892173060222128858755364259694944360135110776468865462036701887406117869431077776980625994596721785038213742226714252027008322715573089497259864162130279306900818360730635426152719642363159069969155587006933932580344915254996013527035164070599703550765719544906421080653702279651308214921617552077805280058303692638539190154563994223623958429617897051317722534089915531852254434872742606775610479207778199450923263499646949000490348211670969312052048849563355499312147418363389600075405787349207445780580929885526227300088027737268751207440518976618562310471635674972605861152277238099172785706831756812681036705339329985990793461054783016218579767140412143698341242947252257645672378234539166773524634572377259358245708245197281040722975639622955180383263809707953006227039384040730456765237363894574853896681536361185603583536941603545166958478833435167606507413621985343601832508476510495446723951357115155467827878385366500430408576142284291336563057303558571881592318720752385006878395587655596443799259259418267113130872551327373254623623916502274451054471170328975033038469643848027045500304286237969964295061387059580081681769850195162780403297426665011994980110873177033659177074915478480704393849138831383114496223388074247688912532123803571329160765605183637306700796298879331515651333004139612528891566119520991504881800876681036033225276094079186605710651040719568110031457093879461259516329791117539673856030052813435949292539093640980013687524844173538326750057605998783134491523120580190881911136197200861126936113398480687852935760881940592525974733737584073164201879654747815274895996433790041411704296382640187799148172749123600495999649448585394355668874396729487921686371080416423990112248147281299295667071590574999269342672696831047207980495165850637210330135755766218438334822200489621038857050297055200909242432460795381052703719857950446174071488718641377071467485434582156702538001340863764436623394508478989706157227972694098964264303148480221306526055894321647707688868902557329479456504540427750913193948971213132822723740290159853775384031765534568104938132391905705723562583531763669959246224606417923823368879177500930538284385248081205215358611445725953774930192645563485428138415003157906916464218384662675074211077023757457697034213389368819103553592439694333531050219369836067988203425834101163524571056013175508327430403547342323525275101820198389295481540133814692306767224473823424717954778755607672396896945105790832146481790064921487648253629297092194452973859723864443933582625146367131715533674834283667234414415299813600941044285364087905456998232632042156540779763177758422438291433976134060334854416744562915655337329632251617439690692606082973537446664553680468155851291645492984068805748212750391873918924090623374194162076458197954486735534769458044894667085182096048716227580484443022167082512316464221504208404741289063615766344152994894167208945977114122295510103028090589713220749853100387499800251139874812894809525859063514090250323503373261032612453955488095875321267427376513490935925300708856099709013361672612944446310121802829783879695627799068291949079239545828276414592210724214535777930557719255873119910414829886552679221594396078896041663383621629746210538641175021141715284892852172719560279118936622527177017103706869736523604863319462500880924700928157836927093145092658295816141521488618786631299462353002426257583837798899877951674214852198746055777260760764809137948870314179221913594878589196739110647613476015164631376822765094214690363429754331663574644142201604184816999568311644401712086981126049445660689052202207483122324365111266341664581673759323501755593258110996607405351723329279107107340772209953840056288161929675602781295092738679160752622258423436282690126993650312757676066342350341531761852164544859324803301414449893701810275917805952750870616342884145137792673554126809942970289025893146279686087175328874463596976227535058324653327044254348776544940162297621751871768278890670061079052139657909717309563472582153071543566312486548177810706018151063346973618113690662298208835887063573890398156384940090622818357215817885126892364182257890066421620629935596147107958723092584464147148173478574937915278780819638653014242245486430005292218340594718636420180535633359217960999292383629565907550379639491965595757815813877776916103730521436731848533701816829127651603843717350723259242757387425750893998168075760458480536084269671096600259633243902489770139794080327386864580915062273332004345406277496082672143765251411403494136747907885395813713282956130214591319686887064283230970654939132965011542892380798814183013600278020939812434873518469964267288661070246620228047355849202120050813977957191648751893366984660720152957943721687946533454025229865997359063179097127123319381748639479548654573446834350170837038620653147493586352739734756357145046592648474372771505410995642305094607807795292084448612502690118783245594372724710227089470735538852421425471454426868302269467910566336326170436705302293302360911511383865601088226463383606813170873363227753178333631220566138664244362273490087178784180647548977148685598349821510223482070954756158067278509602829884344086387037679752870045250502048607003051733507551959085031305382320246439568928525440147420063589592102741220011013528973085473389217728012239250428844328559042361463315439216531223495083364775760778941966842331833601937260822653852953286350118078932352434942940668164647845008290238186836226971969917780493307657998806682180775982244853138835377212221850334645526204653885975298778044207345136793071075632543628886566425446860615348561708298936659052411792037138226103013139128963920872067338029291233783998162372354213128513895722314307533263554557617705911390044840157757254671779904516569436566902755040114288947755822298463940249403213819973333543330284083769903710451082786999817482439392934612939780935219824357211086646693994757774973456572503862533400932349251716428090355638194261788390163083645268897064149194929984811229196174004174992731533562789062148637252971311436418185345923841890469085793219952412315306819292686986346895125399900611013659218064997067470691760545359818573108939849165749226563061703041105030392844346320137816699669437521714195181474072370420624118379346876433115443279001292548298349808669570661198745472802671175929487219440411893163133490752298623079781320831956420540840835918772942439206801783262367493304296073580620400267882013219736421713287854744122113958825528145639488004907841323342301312004814970631795479243848894893240891870488786430402473640699266924426251904186439349445370263005394149464640082169680770340982126800283433663537556814322834019424776356623509371397289311159239759411036089313415829412795229549216184781104805419893399443020985789635374336658126161523113401424103777592156304516824744261064582059753199929952214827150232596884389423626028210731166670823539765178564448661865476915608332847827665204580864090945723307495452260408010849622422808048351953124923574108223559867944917644515368881715877197749268462188571838757902020660078485485053458419537913144072156333345198894743385354166518840602950580649136321740072336718955517213600389953737709911602638665625269160227565386096396213436928542009558812321542129488157144591388660426636744446059915467524771586171664817985144735061128631709058833630485390641690222678070300722489007116744077697885929846575858882732714993427599521767815064694484879954001161691461653894398722661162391195952177909643200347174511120628398992472386894655095491878814395870674201318925846180492936045066087999299090549190668544541955062859283106561820976348328659140267674842642984203647952760638187796127537138999747273711338550903047169149219423866627648945184879189401242696362025425370531164687432961492478803523134133358099023498600888481214922900431281203699068820090774399894079208968477426986659274755158010846604737097502788274918024385161037675592231185667365696279949512674234075261179339943292725003601638676005015182544818511364045278705536232158112483019479429337174434042934561505401820269520251828348414451480935432649751851954729023552978660612706129545033273526440255556460170529529932648511431243212294548238926948435482611078135240351632325711027320769515278080263283632328035080357586217747122302875727360733401947716157693326164730963468582785660207032983928128058153496639533896115343196559543515283985625642562232019000869819978171098352504742111756895311314987666674375524798168341111467494535870392196336678145031614693625762092316377015326219560169861749369128791028598327686682788828837535670368616120115671930227362240696088077156530268906795442736226795777595458319370630206506579915330311661853747696090693396270656116110671827704963592352479164783548206024032402144040212783923548118646155818844150207449519192385265469455309196060464838906790660013360366596968231202117981928667489256924515378336049900980006056776518475920934014662574331022535278943318423781486564915132363962692059133640898658837310709232536203891372762309579171055404823235060601011477841855252974796487734055438605804284304435885168082537304845263303652032508569853357882560592777877470750277009665437749419244057206580462656153206384865782126349393583277509314802318969419655016018907183171568442430851343409417042442560491500466514048200672502134864008122749747100711183363924648860649977707355120711871508755380586042121456343419390684585485193844113392109643667993752783796692828797477891747971459205322808745116036418274992417573692702278881456038221638277306107976848124847941428305480410360021994226540260529846233797359090652193732680735985372170045744296649990136930349943625929193903950198575545250675112951421774850740501643944953442353585935994579567284275922364132448490540747635626975191388522453816121383848179325146595854115204878616977990771312455743380125023034816079440383709879984487216546260911759482384446686217180913206155885691764975075842556645314957419907779835478675949466316126081831777843642123487240365625187519828715552724931139176954592175855921443265045401166534022029332501177230151766806373705997159612401082019429818699245722657117462796521659317665299809626069596566812127777520323428110898043117121895774121299076795848193756534313954950931485387846166669852426803893264001530868712457181027492254189577280661563828280444388705021792781199831846823339274132938093937703899220666524988068118677717374879679496369195818952388043113707658536742124585669465434952056404831715438620023420889244106292643695843645578105078019335862678164761726671021358211343059879983202657664537536054818937539796694322334823970953801543055128505599763644783793581185306116824388238309602616156311482541646332107461512005158141493229347788406774136012621005715348061831450484352333549502204744749009408957459491953323226850465357578575946735312385343455270364165099022892068485077209467207637889512857294340372060436459912734309763725501187789092718597524998669165807243958620440331051135817715660247640943993772388469448706098045270070480487661376209336575207397265635989429139234768023735815768125044232843615692585987194607828561197118968779052367343865996230062728075546026850516228383841003134398939052414258896697259189084292325180796258995636485827709596917491686914429629301295746458837263579845015065650126724324890720831957547589322021173519142189754964995608131548548008654411501771648497624713532639498272489477915187860912976849870230662078706445843629865519208632937138035977899068699090273861926075632214202651281502598847509723579403892634690747373781071784914883237821507269331823824168775788030111691877427569383706457177612540777500619384105870938130007549514963202761177284524207376601293795989251088029350706876914688354559930346003388944983797777525482964257769981396582836905751103350854883131972848820540371368308924122845659706041770673564539614480394437315061649217152866426304482678774036780633689645452585963558573238339196717710378869741235382221559573890883534757173460186254273441143222359906921535486898491183076888882997417543333043728576335421354466105040376799094551190267363553757449848750413259246136816910724011826368281022821791546189968445483123985182722881425619785382410214885004070333424097730083447255897159483356266133573751010731185291000251717965762854279023997117080022954712504051742432652771388761920073144707780474637571466478895618982962624074440741384782716043003636950718755233649005667203938958229247223048066840142286110360823511243829149293222991881886684690524747659101456327026731244118616701507932651198555213356645531681340098020497404378319412307397950036632597771059953698848527992867995914566037784528739212687736768975004988139423475746081499613835260597753848758400177538677298898485677767124654492776502531462894957819550198078326048788660876751817243069304169338679497394746913728827934810512052304623238796632511573258451430151872557103052492162757844711296441802554952186256629584224016705485106293160214232199600290700725511731544905114678614247754085641321066515750227284600948212922033217926024846249446673404937146887767551006759970339543462346246368603863624851083770842774163513248374834658772356242736293961273680000910493360769754406766151406592083609896971321431604076064152718792353544085653325025241249852006275104108637055273300379093422802348193600592190991848891925009548391803780296224432219454356992355098551642147760585617529644003973728828024569358218309737258152300877513490757341000890331890956548422865947806922663051112056301564387174339763436827186646430382110914875240956217971650667593117868986581538188018964469661419215757840228131897067053089062138483618855356934112750819546722584710647826797120494735429574723300862582104574054029714773106985482192803100777369806651663049073398076810365414095653162179604538649679959830846455066797537402098755864486336159801807529056218569561171632567444797841948272799437868989961950377906437343967015916189872433107573087372297462316121185657198410855245409379652362474900541919310501534271078069354487444684292122436240778635685242379818310964039617063249227481164807078738474845040006797521708773531227012160759689781321747857642553164103015748866713110979280456397973402986578636718221659717693532200626665067982159469593137403663497463330297323984996028071336522342875065601079170283549792206464537621323184788881333153775951813792334939966808873000994045113023684253350721465058861553796899222762433734826123185226931934981652706302977709292842564841154638831503226672579532065383942809297006611597446101662024781286070311587738929490935706796626985153629417794418492752341701243394788847900093158986181148423795195887358262791807330706834623071338077389256023413630883678503431745807735176058397116152313011727174323016875379728787709903378229418924692194785659607533787337021936739845286007184310032041483880353974206239632131733819027495302534730370429468267748356638332219924139242554455657598761803820737198866376426692198391532451298147320752537021596445011188962071605466101943373147223299185980063740972736229382820053801685379629815366306232928254693742451643096725396435918262833245585598339211521312996690223264565087317394649891190484114341460647148829928319690795572617220446704416599158831836218130888400535658271540322430295988931096335173118689117922129646012642524563008796354548926199119764081930080749207130550423537383020314550489580094590161952412819306140831474059808284738562335999906092933020076959696083207776088655103953122945292868765616487735812245842627119909174025206938420456229768965468355048630583006099352617544625151030327709366521174181358589660052833979357178564540996284780777185772544948113966314501998555466977734086525463234441084105985475317467938859193649707653686280053795800280047860591274663952164166894568371687989410401663857621558492682778632242078618198365070278867903747100899197380896539400939013177748423810399866861108973225120091293876529841343467123001655385832019375350080566021550372439541872262968640830303054487493027183034209634678668084108148862078141741974625919093098920511054864981704787547447210323531128600705964761124921185884615682470410223074734410760934021412089081623886487734205922927347545425277090637685013528707375460232539693549188436568570122339446481098448144932355293696875244817943063675518566242609329402345230762347254856660752823288348757489780158241462350019111919011060824127582700651928573350301357533296694284656246108645202549771275850177777904237884451149626547750004794011222235636561584667501496699743360676445732206297553578657611147168563735252203201343097073451352002840114888562044929008419397350073290158773253350353909000737152700335000670385163266369736251884923992604473873023076006318687197049310389327061806142319002235551303830141395289321876017798327847454239347577000099145554712244235513216636000138367307939380426834675827522057387340346017979753105952882424011046708331441806265319622539601284069158524895799618115364892022149870105558103039079501155084082484161250551926161871129114340053042373522397220297999160795459725412928507443618631694200118990280556557260129776123382722067875662038953066264354970226888938017186580042609762699960971133789469824527165618802206708019919449489754711238414220946412278346772703494348567678463094691033058952687111993842619411412611541547207286533003135489531631054722552113230834383071922186636585977152545885788047372707841768415973950829635748647287341278601432336899239497462856111722634026002157963637949153036561377458000589301541068223101574821411999495473379905092472196600023644251646908770746841154267703712166844575526364967080296462268453500364990712294120034496624430549891670280036758220842541393988693848208511534298876781378948218304616395811728621735037336852204101869016307431079526355870027104419086172083259812961235100390548408883864673936115863625539352107850369305305202773473510182401928238907472535473419142055870897544358301373996341104406242592979901737531699497010006889679334321591255044390556552546072817573532625661562309118838805607546831826047550734608677230973898284486226337605073821673915123262937758900417811514407900043184564820007137652543114154126704328372508767863976897991773615572219165108080636851393071829573483793376953938135770084660823852156535954290786929323826265276050129784197478731577819265096859469879949174201656245855142363825980765959285119315175984048190928101264056348120610432835164590248274420621652993428401755739369842503093296235101632654643936727984938045089022014912822405061132133627187977002999855612815969451106520709345945222854488623667932326307326054614437165968954456199003116170692591710130251841720317339769119168825446930959752166107106268159250598885669344850246836830686177775055947175190376406036531299011705629848853262816922272353810628031018044077652226838157665179332831072603839340000138084542223694435101353453602754906278825623385243467775763889840372185063534804577647160594550191297160273891555017771496183527859406432592748621805630537220164177128102511826512658907580450300269234613599066412126408753916164233694282455685023414821322495451500580451304347310634602365916812700081491797386781576874822119774017884136645320900203645443385169364869449118032566469108497714388158440681852689220987335267586946741706273228207172440330830696966559297657483231777844354334953837480625762215646027345531000835211430983791382933766570642280907045572764363299888786316984455609796565911116591502830059302217032243728131146576074169181971297628783848090064002814616771167020181541968464234658844911779920360532302113314009688519415580986104649096588304557746455960978334921583203232252729297161898168204863618211998676602814871094629572720320954992656059126403121779889197492388767110418459616002875903935408233856148088010369493292075029864317369821061498008850242674352064741393039270384720581165708564837627247329429001633293564234160608760704791515122841917972134750653591393176412394088119166533453941280989640381638546704878923582097693165963993990911941321164119771425796840031099956349021164514159212022152361266469867923522659844603876015415384131831006145871142670816923359440024749679816663383024518633829018679058704517964482256073244586541876658602680539130638353781012598958862629775621630496660192913737827531873702980561537293351277430888942070859730446045793942165133391540426957211072148262265592312908949142359671788871016723809977095400492029697080436820709850200746951418818395665869555170889716341162076889855709083134557854427164779438991520069190484647758532279826911942748130090430714489068672096889876310029551930679696050556195533922448908992693913101537733662275225540035782141349862878221366762344814223952248398621465272248899666306321235329945136093840329899720300422212026812006992640067509993643536636708406012391710753002746877631636056706305071843132991491508442697355545120020148204076393011731356559276910301777254695741807452895405331048558654095315801060555229451699062299891977819082677249445671518664757048217219508295115967555973560962022762574855689534576002415795146050011109061687478507837819660811952499697563454918125891214183286133319229117959066151591623318359309289085923076972236479873734493034263270771417893194120355292170896434293856974125953072080163945207568387668675162165442571066227533066977521858843961028482977176459048106189280719398882250446275658369971170169336429230039410193328844520591706251750803015654306342202323053002890436243271632884189070618880381555726531760165990685074501924429739061201818641132038074250135606129400953337885150197084142593107567484778426668561896438568457806001014667253501728187211909275092632492545418291236000973823522072123249415237565030665608368030087417439559043595710562433268436273520802781157540402292627563346308590009298082114731050052762521151107402247186701428469697834766164922670067258818594737513853666056994580697786047687604605274590898917958072452541052196677150602693653705751372114072667799459938367419718464920390881965439566928637726396086215883723330302705887073350949731644717922687227212775448503588603532901595463622062118035101748379076113049489847382525674419894201888134123171117480946562265278838033379144579003463589964717885261110878409478113258157685640218700454294827026279218325225764398726862129233631115121520754869956232382815030010660805221153814666503620520817376072846754676584551900379876903774143151912410704688400498160787785770874789502982773926763085132919319750511221497865747655787172817675658852472301696909384753409339077382498443617876366288583409099248358041176030457854360048095257399962337595846779880793775534655654465042927347235504791986758763635641681111279038407299737557142711557501351043773367555328710114031892091463262996330126999109226290027870889920393527817226705159803960435449137172207516974853159481054518041647128788743450599780954746754985967969890864874146612804199585529141011225391787180788838571445029028440986987907475496437139161664287736724122078618650604013313282903852232464976761598881013889954943088520088559423793725870587847315627188753331298704718559463541230333250374908011982003539159779880271702316858956181092200525131081631864508286452880863217024642131359728782818076488009931415520895010046083965029271249151645003184444057066277326543344031087113787393215449591509000297817986673876294255899160730496062709212518481084609410290437984016754940012942913245684937981612234582499296644074330737983830788466300025897195530533884579635241098394142294991477728494650557577643023168894055452249984894156952567808069410782822606648730073566329799346456971826928564352355836588106831625217054395719376154917456139290795115552828485771565869414614600139699165144988327466713380218284575348548787647982273929222186235468130416043862539256893530197952148180811490281057998115564842749327089313511101169987068516121473218948828939299696894340443765966808973832817619506675850489636699190405039070230176775295149131377812159121871191383339360134828526769315505067880271069359775798872667536347756330505074209706354851276014584720867775658347643658168085883561079544665058953053734336330387856179749857293921100564926011345061384918341629140573248826990019459900164265608697002726871798707077538237191129709001814924019780974422865172435170016220566735104888860897095905750425397655475412012050296388116970974077367967225137142902426165566122484523752956663634366758390672970585079717688836036293371884768695244432377794125078070111320664283048827685001022846980371435967282801893086891585971608067126472650862186659750015143650056033468061246351532280947424053563567815327821841026539947280962243261433951709945426054818790242241480736607488751787877031413204632987861147629963791428478800893012175840009252355787136099465631120203581183254328860962007702961058776208094815939729915544623207720471652019984870315178788921755860783195239454138693970441583915356142351959293373119862894596570166155728675625565424577874383615289020705236706295934090034844914591633243572536697676788427256079521711719735440613885234256443354867169237989399901380885756369849365496836985849580773193419732965702697016529312319448133391822442247838133554843716043381651735388788154182757180000649369870789574684749527942486470600900322095489701648748253763778961204393626380846663694579256834302481134980959212702541186409137777286645729687437549096115371377486245418782961942766974395020510761771424837809354975905909837107366497115775508946267310716088657062892688887382773200670494218295856698164739713092409293173914214794112620750478854859444915799726886952340751420902785157486536840848381515964038681470796820956961681438310926296540397805786990065361561828910406949960422717632704263852103702647233692258342835744720768010375888865617498428449470801551951049206986121318140575987922014567835934804154766203523575806764504192860171342857527404827871263809195914719242636384553216144195676126713765367859778220049489203494859616659398748225743146044268083263147985144684709663035965035249013907526180289980937366587254894215376465429851429429792638192444174836030338193206510898998043337208201264585409840964312852262228039376719618482308004406349493398953250582234905276734409048817248859302429411111386273388163944837458259425209451507539127780771792939969131702342580119551254606719647441242180097115908869188691130521205521740714845136917059569626448104062313217505476328409669688621599048506016843375812817053538577790049261647951928353257385882209120395703367343695453885862960155534839067906654049034683802566092623930717413097816371231772185741139450470644101401169214271469055253777818554224755823746345158682187611061663572089526892185343160659672563758466710842240585432212541779757726520511381340183425348529090515358793398939116323694376662285091631295178767168823143561039775332908712847308860146530102462906042290312338111867628395706603449988177700494208439313499223798352374264419757592477361005682325048716086293877966692269802375686920150805442313063833070442205136880481034512682682766794950445246815268442337529351407219795595403499486820764790167318902737205306189557958937344507210318239483962134198383865173373128661756609676866183139265255749168087431841635994642305465591528374230478929273965291918365238708926793674251174447433560021529831478283911446038974491264733502442057819601662359057857370146378657520374987212469882168134965909580583380927497141618448906729952866845228644593556796916420822320066341037498774553023065863523557477451461381380133436375309883658012959296414347599472008882612930180827250935011411905473883255255037291056963763539141081170986057288726586890181639110216516088420399135467325398593055565405005976195945150136988189494603857650876423821808692938957207004032790611787107597412276265123201692241273980456233656658836448804581953040434380868780087527448665728738254428350219183891869148121071922234114391880237095348280818110175626342628329147048014541035799684789750869433862209582715457779183661461582053302415484513358515893521641234041456350321351623779918560479409750958090136291917681146764344910003962543188174566084359079791553492622759801453649116508709153675522559058801021250604883457680848879226151929200555104872007876955441565240234881140300905061266916333303189340419869685548356578960675899046767552880416782771407239709006563593262445215430509918216169878038498848126371860498016127425896981580797109423733342384406435465912065605730357613712841106176456174949364923975326286182837366707025178978918748783325302055052796719742426521620905367137830755422666276517701148856825438556504555522185138350835669542859624693580833831149422892375905767257949331179608042971323687899123860096430781459652917411018228721166100231454493723203536544150409982458756414571505895305891539986353124471417272832267461582457091673841747097236931035083857292527127258474144022836258019119423501441258195147239163481818143137538302719364263712797585277845188578530356107516392509909568580323052673632566561251960179482727522595248989136557439533173414186393261302045203354133192307198276685555651479001776118632516439855519302601081038468006685058269960197819174791374763836041433671582926644090986933388034730695762371633774147488515382426884268861731542891280056500967910075755258344518874686681590396400193355644952622974741604725413798023769225339235221796282856690095215874609372577257773602102113253841346623188178739436027941343182689681163522323806358157784381624334124154818861065565232411934085632557083507786207258614096686588249611338567885089118305594253904693140793100204468410766330535859672409061391103293578072116255141113351923629044126498012258557128242797703134933190220792606476626444692865843396087449410371287817629216159852123273266378624822874579466192519438629676050624575238771338477203267824731619877190491533575523430185312140922166965531853907321970093625033351467466486547929870480201700203225407019587148324498579839605885122135564221773512334187133959252967187368744912507631316372531036552956170830230172076337856400090216103763916971158432642124957513924451514337582843075350480602499667787377400153843103758589294958112114195574454322206264556931494634541572879888229777574025522033594742489138357743156808657823143950348642543986464712662970014206247588537387818893375561011460234425448245327481493925203729666688279327834506272740122881577758730448681991999833057604413324290763292691888296624591541940528900496794343076652700657318811320324966480155571487099195179126968498211319982356436993769850904798072916620609780377763836215869069732495411454336295442406771457569822821705515275147197950867039889438858802071617176653195703504687783411513828012604980667730096551167566415778889241208690977261594940228696764349227804089528608009498345820656398765122852912390894184093939767457877767475538147329948750194950971542505498445814122936220835285295148231485720075874501970645689740506341411248360586489642271522392932604147299724832471683958117797143884824271059086757995348937596381592670651441783831240200723457982555787828621866936801782649730718882684284356043454704440546921358146760750256755383349969471756742416985432381834404196091287418795831717099933502839305835823985365323464505923289532069088749078206961994520200460126741767024039903058463075656786790205529397192654571860038347780671469424616554061050261753134343793827577238897374356763120354600695125194453665973873668915948166211251442546385866707663209807420602667913558905464747928258024392761766146697332397831770889818056873526456060737012175730092080362647886225161630232291931563418817030656637981743445296729051672731400958391839115585533732641139465135596303195244850981292302784201202236643848156226354000357829477051594103259446164000301888857333129639728458829058571305660629173722499326014516187268992352462569647131143155082334578002588816092898081792299078582862957824388220957704983570578860282413761148460390212355307667723772235267531065756338422410798598946598778777012483969324273023662397590053549637816949343856396470606543597974411809560687623207658001408527131528333136426341562460020019737237551410386352946674556377871021707944145119319310054425018024425536795332021866308836564406345027287524352163665370033223741079598391803325304140224390273911629295757659932167336385343879291921577685960553195583661359924695420010973671941049659998606497867079611041606391914392297601693870860832139588767435703379011747292240420337143379074799912875978056332723363865797899241766736546095605489293549215005485825017675643360311614063874830997670452452344292426874447891601200432537601510173342382074051061025507185305236657163263653201399849490791030257589852273652624120638411783659994911289052473757843861238584809775015840503520384964738401658631500835756836749577966351529031000419621586116936993151884339157831983324546622720020904362430090570738745064511295205021751406103563835745311845430371494638349995062996591450472857267062274325150812949850236533301702977570823299846155885051125376731112109816250741715356914895033835381703152812383922825850373350196648582042627429615559951450444992898330053800839455354477991779775615260389605040935886060569910926629684193682404166947281694929301604906458113496079921164198081699609173696111767428713112389319982793897034294909200059713501749032608159648696416601931289657230789113944464002042447896030539429621509586175640602649989785832662565161628925871505090997881721634048745102592490265580835464047780551534308628023056456603990789044950258243194022957275835835502694057202733363513344406541102280001447464972951647337063143246141140876408175032254865827735180988325208276634248051039626533999265203859931577717530323574760869506359417147242437189236539377968688252789611286960222711919632640453633677629060062526831825608855285517367695386388570057131271435260042745763100136034164222155497416580035335391161448635729887770058309998912968975648665289974129331501076783087281182607147556329715291828757952941777314970118885077368632284336308632425072245572312417620235990808582960256612414556182216463262714287070737313713801531763611787594926941560700723915958763175559206259435096227180623538229877377853969169406956803921397965247799006675870556684780281113469520336071933967904020701580408009515246023701409722051361687885898572266791702918761682437582203094133252955019596865316548204811371773286552655650624623909756701159263427725366501961663398936634451681601492403738253477936921874253357220597276861452124304968992238896391755287725957045365513125522286266000589630524927168117254946907990131432080620155933433079829459561750191898328263687883449885470554404116554937328408529724061863554671629843562448134324818093623325791710786756262844776982164859844944379665559192965177486308703452886813706856482824024237260528491867015693938875060981433414042817191916438457240518610953601811928571057099468716542539855938014205425319162773640650771389787600970387133270993492755968696655225416540712208928537562594398774773168213741833758233618821917750550742161611844386923276788928588862860048562415782969770040882013490522648412398633124438642994592889249264712344896452285817888925862614145062452343362041754591261071089155299866614107224138190658304850401933784169820007148775544858114966786529955095260811655018491774292405429365269326867304655485285260019335252924629192214485980924277567177961390584013546358961775969025610984170094096425458767333916660078819994928201605588941499636977826953641139215880252901161463013152360964258309877440752750089371210783169564912139448331542081418479926625100404606432161534646294737726135286554021109521547085645137494010398133110626934303236818114406793652101524792597931041032756186209655156989846914470089974900247806045119741740765167471899089891338115666485620238001961062114939186911236791552651557406473397941404157067671180361050815773881337274411272817470580483333986568804924174183536911749285636021643449403443471229093712790445174466831451472457994549069145130507477504446428451225763522017423387287671387957298386178464534917124962639870915628409123885442968115559411867244295492101038366610496225992370765012892781930551526655298674446746487772681124639279149656073711143760188235407372307163448331425712734961854977767673087177501087880647395424970858779012477680617682097760132671442613063695768071529059377712435378069623549825180016153880643328626852896242245216171867974567073508890938742136531750165687888011688764097183595693733369009636257050037698150397746202078056495712721255054973858602334916589493602283911399772938167126932769153815866576983298414057428662381442192820797586146545500931065299588515250422008947886181915937254293437702574828783563326097905270721187296779532647009833428172993238859898871045209970764700928529156281448074465821169220967438234009651688510484584585272025653587498134735068191712565141820156003733491927078057192573335378981347559530799078940837588407532398673452114331083957745247115743821302502228853431510609628019662081152882418146221912284499971513347063300377842074561008940136163706261929202091312617719921098324836616163021769567842304396297624088417911570722913316369307408381494593183416679005471450066617262912395422906827431799096228877364200563606867797959404926374587378964231281922627978723373939014920472233661273485763579396430091631561816479742475003675146755840203584994278851137096201817144640019358952780791401883789507822400423781870704232552822622541918556619185107967950656750934338463625105068874820032525126828710325535194858605467310597791881107818369934908764156800159970389933662478229604334022155245108236287654330898337915720873237201894079378805760866976400819963159229392736554268084443997371681578825271971684253323860237033924521380322249455507125723890220302914807481131513347601105336873297888131256702694916589430882935140594802337864754061967234913560538449847280796978716347891384133797477070686619753889128488257812537531815525512863753555833605853855504315211238509763030029742060557796324128330286055406822008418847914131800805733322966366016752263665510904426869414297252074232286565845012341322261433626509547504550359401444382900592225605684480618337349644313939793779956122119840590461068310380192423857004237769593519144442746734044981100824683882465172541802567851369530827003127104395904392608076745325744423714201175991558220447628894154737729402191724389105880267428884254653957047556073813355682981274941205781729735659177542230745340403070306795205646402670638752111694650337254525900630628488324967605261520740674785875244978656131387133980149018270987155437455483309762460787802459411815997221432364665980685956055942966909083617156843548699492162308492796151993573267578647063510290358280924708456813202112274439813663568121366486734069895052726254239080599999566173980580184380722615301475087625314687603117472336594603880608102944023784762714878135515711262531536226616309534461025069639605362665910647470874530686684626990819936056613225595118792726407812744531632262213904230898346589887532471118133431819233714306477225717414501796997612992804784699203986360045346555235000918126444798911077692761383083472257392938144330545731678318501371041061833070875006224011688162802594879454409521220751919187888229825039578938749484766197092285847843703156675844187937065314291173950054527128448848451507056934052910958123000882730218657724089717658818526830408849567594885186819843505022742785365329613910329469911025156337648191621911578187163268381517306445031037518527832647934327515079687042328351996311255917371327291395823916781088427769518059440092062847637234201363240456096859708758523455432312029013795999268785855602930038461202636870910066215368003494303565763245250165611615801297613783698984675164690103892520627310994760304605077092505071526764158811381649397344514712565405643647365610550421481166191297853493442991205928949437933013834295791221700576876714015319148873338830761976367973289463492152051862388075361448150098231916208559996843821120594956032227752723206612358187917525415133790447134649318512156319046640759296385246180626637970343906273281899938927074882589683472378796436143985945825561794910670188794333261237517465597977858067510976566886802837792113094890647908425975845477805972472178274520762792796315429106669400153206494288128620863814822197488234139847462454353303934860097591438642289521655993817192290334689473171838113473449947845177370398478519893082693517246838688862803903789039315218663660756898504561274527535136345322452762576377582754071147703102569754319312965880767192455201496087138637885760684615162123014424395153592905704686425583075328005713341324941751705265308057672289729684097428219471415682907611765662335867861146799519132395929299089202446928508610235249577298504595595694480938676269541527393152760414964300980992366141018521199106671233986305639822759493618614304528577796468050061361480821809330275384578470395806610606468290123607803795308229239316743987163617017424225014106982861880617819555259963756277808042495255734965839502221696144001684957547882778775768251066781653033883979849089388169269243342880347330608997125515571496769879231171102272686105737312486380316886663884577129813487950552865708900460825727298640888968468328904393780144713992459934529880098772628055779138122465949590531722428408318953235131905105543325977290755147843089323405935563505342017946956253743843038125943703774198674109570128843013795949169600457339892830695559032628006349463769637901065258748273156549068023289344230012196530752863089213645374239811869712597214515844687212190829536769637298055519309125318599765534883762810684319160347373841876837620377896474895976966957048433078109542547623736457524785389635266272782619562509136555198624956171495287969574292588307986167053520389605048519910843139092208278946080634110214385502098837564656126984245177508698141836501464143307679535050230617245496386235329861224407388709145520319656678265285084743956501693998182015408897243200602680408734827862454176104492058679987200918269955872030594039323974193224730304284971499381532397563293473009563695580836524955060197365670362396898047991964248683778676419103240864643156944529127591780584048276146654714470059014892640214631051093985593367661529266714973730337333617263765093232536023718827857399006101525705687620010042031025905960948836384340779078336075620370053936693677158503497134311186296059641512253737873933222515452940267499000746856820611175867851750318857858340083391882539530236440722806447627972107471822118363672402952954949349167323929212979284071095180757368811073996139608123495152122196064631440999557562636817569030609275922948338062839627211741033025180567447980725996470676949848416195869532488149731635035098186054622655179469098270953918205130905713370731809444108046298647279322479462545655734904286462718756912985472099177631788365214347180783279005247134138053951080954734575937138514558756069955840745721686726319813713354709688982908277284767622215008657126465818875032688387967654033473244119062621561833222181255265920131160878835615301757136149464489894387624860818771378691115508517028250760182095375879711803150779360849247031487013534893389919927443850652884674279309281001431566806834274492397944969418468278367515039810051157413531480984885982104698063556807385210643511715751408390811292445717022015043799575262250508592788831924439372401508570509990175802342669048193821605208255423795400109448357227710147236406314389250803281906884900605471794778370268540123704771458340751885089026647015497395442026276138291123762369247925174665054085664499277125004403436012517245486948027712077348750024672442014724839567908530816997368441116595471502498071395436815744383944665732337091016276562045679953882975663727334343003538205679649875679835793090680140414467364242145352851215289973250262882169808745178232092793432669244361019268804901308926559535257615072124455828318937875486881332438366259300022539926609587406441625215851669736787327728179672786776814852770112115209110923652473989274737057253846133192990121961984057922372056092982285034179484937011246253431828363921578553169062728182991819752814831580639648429361608338856339402796448666617738116220676623538441132136610008304161409218419432697692964625865962419464329648245975241492424264449014643532977961638368215053387156959997465161501269653473790751567842174955192665540857470703282902368963508410467323150725614799840549827387370152543309253017693864815402020014566852577770317465780771030256067383075615696334449551421078198831946271322644586376961222617851979388225062032616897065391149918376849963591030059339034685687920629950346351546078910831843638629493676677754599088097703920445963125812379755113418237286132367382120016204874157141878590734501541947711245438968238603686932150251121082776880125666677474095489546628932845306638761652445986576340107790074732932191924230730537955677979420082958798498024144360891761201280304853700898161248080204949220781245998714634891224692244878146150241013568149779031803531156798470395280290438396762241995646061468492999462802479297802837019323911841311706061353849858512178112718957704617638676917335873246965234437884660288678666224506878053383723764625914150323892804801363836083696549754080630255949480254477812462633079199830929720909707712865990734008534350242846034957859609646252963551617406125042981339565998962634890472067672793349155595188772917552936765936068762939108161824961246352565047046228669157400093150186962989471865360987223122319899521550094846938621663984990500169920826352914667118206027238343586989049442333815699207735806377183259675089826413364278734042885679223576998590009135118659258093187790843604847806477173885900592202790357886239065671522911185465139896688318438555245600026386732263890448684458648319962829200863548989274848742919482404286418265259990566841241585512634717956197498144396231201151243363115370864750669733707692857506264736438737495320310407407505409365923307336717406420174245504175084457773947379935168710684808360157896239658243036468860399921059985076654620751007500752947311475050559342060352998863785992621200788609726375071044601468731609961183802044316371796114366053580643731304208997726530032951053927386644247732917288417883127073795784508521444234163964736567064098580226586188950280806984744360290727507035480355923351484165311377796120266240409351014306878037379311056990218290553422538410628411649679298638904489955014833035874621293020182838803458804599493138713794051518238264852748634846946872456093974729005767656382109747073055302340810789008075162306276946865929476847185635807731529320557261787673574707930813720723492495039750595222928378079515725431493711424427366951227051428516182924510504126371482998588320236480737255863611849675816761192003843303435263965013653015164527238645683513184451954132904294650481535772509442865273794008420755074184120185217446231121274663964785787766788714441052443670001019479318401928982480402180918155218076528517312350899271468852619023293078919776994156594669876428820961608188329757523552517284763368890997720923544661159909102629753641892306446287496109399682802034856340890940970876334793243054759149136583727519534830316242323045865293661790946149581557722885791225183861471845304773199671095885171316218517146397314124239431835200098956045482750673302058655901325422833687438191843916929685439477465759468612349155606639634798509989462133156513630365490007891479220648386263361134453305914948354178897254032892395603695205516023700768658098389150380224644720979397985779740135972798297244432318218844278068415716615137199446195592859178641764442388760107798736981336867891406519578874580504611306457021771735922848686975331665820953816430962406997428057844983881389466021412498158972295405547044130711075636522771044068892115496667158915667879261998230170855573311613505617121512340665041463956148660944965897091596566279195853407636375119262722725711406009410667768115132324283630186766453566501186466602481481396816886469177798948796065252895349957350922884138041957274287296637908529064245078037393536983714958944669910266260953860771248754394022147201463761685221062001196872396416054508400181912270508300888535603273981114501544884637394164909230881157057165519086817060976251010865215863456444016934787182771161391530486655680735872937867404777212686162491382588046671027505489737664452821681501307114011416269107855543956745701648949589381200346304934392392621437782109934004957041018350742003361619887453336899817140213757093701550490279400424447569739587835466904130778110984824637227913397785392372799059098309397607630022181861755498388443654420919804186679986586128818272080739673829395105672204919345881316534406899718216501203792269904932699657880745255040198793140209035200900928509327199018092100895791701383284781245064315801156404636844485223274048679059897875781740429143013618030988441801804811879093063866817364073390204725245075954032077071558236707342738578725846838907756276892144805701255602271779150715070667961865857582313162884794283239359034777815880590403105338039875922663227514023479287891898500883668186328627661758649127520928960608484588401265842449323131698033347955746732957810482998599460336466739968878664038304529848447229854859692930713125576279278209693217183071477153962112453308313143068911584946028002006062510940160646525866509071881452254809408794645047701616043480071592321291535176224164881201165225968278000562917843296413426748832143557919483762601633099567419190753218187290179413052167982108859891885148110611791036355293987822822512919144130711243842102946045333939606113546736675247242502072631949590618754383205195295067061364763144194973769180163028996294933456601465056959097071883798333559936656308060173631141748984016928742066919978636952128208121385053963524204554972965130017948242395149520549376802321998167835702545451158111568792065399439209436993848531221173381025508476965748157164479705444472272736521731636485907422369380909176958318891395234039587059511005173382347713664196437865707674864629001196218213126998479264417831383813335679200959024786524130467825610587874859918592625927006518506008670054147489277185692659023673170148287240624702619197586920301790230768226699360402285820933368191263209659860987022369619611420910629445017272463096323818350560560649772535098122555512106693316080278757517431538082682147871109118883736904065097931368317679641407568135286003206697088123098022784790724361963706866984633302563007269830042362794917269333472946200716882078128175646289223760999917364832972770184568678184567609435443326677598452235512080764917098935751040675401820874692802714741350136949537495476514475494928171836944475990390782842628204131834404871239247376575102143978731368746699660900997797734653059309509170338716936100665615643049596541619835908384662343937350895969081714628520834048199531204309179540335638033628775405487087702817108341409914072614049288003627023275409859803582950225241008444126794323175504778635425348380836851160631749692965839036198953278936907692893081283695459471960041258365172933948654825320353049020851629156515344328543907628281986969135579434636891958878501700392470567075239073765855336894837149398576130015589664810486742347249752128195490271504423082926495338723328954787917010187277163785991953496665675235590281129998808902690302183685616051547074425375327558310951684277893248209147347933407259080757373961517496760029164980688662915808883566588413711841163554505737103247049439813809282599856403247366051052137086619944601362304393259261080941972362338742977466360297875006476310876377980747509972247631321408222401719293467353860221045900952698053289720456071277149268245119275376418066384799877077938972099546330661481292605763491364291025005953857367272978011139567227007772753707238838448610250165838553459266563237671878616699049214692407703447189223262123152344445948317355960479064419423128248789511625857813893003195874024888505241136896456812133086517401674918748659964150584493674084102780510044689339778354944321078916804990003552328962148658630933217394934075767261465600954264566642578568738906124690028148107858564882079842946503701814441686816964101302848539112387953815813749786666931282149813406907148962179502397670941401327564240857769544083480907192281331849543759683576338495380837396940912853157529818104495095116709175751686482895705818886570865643021680383429655565850841259449184276935604598045686524228087545721823493474791495182398574047138519586189466098450921415922987103413297883340989723171396720306164390348162094518518897936776429612823222155498076613991770225323248975152214804271130912887591833768532347604320448994647338736664111146924312257038454452597712579724206888203083670922084926891734729281021537818012599963667720245952518462508626893398605654209481434407241737803763915362743824240673916881092579654642351584016361430172442386996282163310429858910761758264250705574425509989779545665059580034631617514765795254069989530703304051091617551784646743304703774180672926659093528090613051161209194105830442584298642484119552187370758270443066556414339248688701028977622100481450741675091742962956155342096491635276781704155611227323049342745016226156651878647052849755679173238372266633680684519906312045708202109155865232728506959821828394654949828615026683922674407481140924150177138594019924424541000669778832425037940895704503229790599168242012636548073816513887493221609454966942655084732521431081916939002583459252643755778193515437577038877411587623057205529295792107578579529901610753797169431648166728920809982581521027986807513170447161758904206328582779421983298088042321933108198226244360409164426313316619002168621459404018445570294501600987908020351967745608427590183334058930586494926537392393931608135231623067298744882275184004179211310881528238629624927796918994670226526266976033915792267291440858401457330013439266163698433014454831717496496457506696494841044782898214902010015485948900042978773139929021980492198308721525138043769000244978434813643012926072068628030952943732394238077075657755518024737613260833113532732529237650404016607136358529611216168329612283425283407627254545426296019960525657953815985220470449484879214711646101585977049405025426155223635218717306125776337061495632380245772576252827803627291014024452063551282572316751344967221723992624088561048585363601474733614718540096655959006927678172216698141235854652087958137952838340540593485623656221454977142156254308299685495111471494501539506038730297774053702945349126918112876348221248451585145009301100340822071867057383289246362224899110560206407308420376863897176034521727055032337101481845620194131674524279679708164474793429538364470258410293794798184881208929177361467087508021328778167827105093995892980520743469327134094408186721588127381868813494034246062269627518102537436853839643588795350106642222673601201879313469374449408092903327133793216992153573014665573243037988568249942583673103678296426775889502353437157935043891119641743497756639371308054583660542428401200348730823064075011203896091173409062179470408100356850041494690289696746653927206676026807252198001329262688224873888935417876181078336439632670509880671485779906957036279221007162470928713107885093697151090390266003578501154806726291652462729228635248641076183331256512228377794539861714611409207027991719745730365133483402982761529675481311098799070825370056354818766916467216155306464631569387333571371463720660988589069523481296624442197130262307909792454821096783387566144581453101571736188640004935280246948296826728784118468472545707676445692466771844279003229675402158928330726748906589422044775877114059329840188810694737442209351504413857586681443668886092634118524813855317379388339845677216795145216746175585135462271977778547905537650643204193728876644462715143167201648679074991889498026155851496375948320434570859247814531303154207843715841138106140462065139727118059408604400664976311420047227866039498641599203839624148889105875917216690927789316148798165339299694959265861366424898324117593859538324407759298288816134873438176057414875612738945742239101039066231816816241810691761727759208013922304292048968961660378173557602267068351834915030760127058221953607457306506325175685319659427848125878691655401455513907244821097744312564501095462464309540687811176623658369012454600212239658881215657592670778937213133091097019619663725748024221503057732661920515852278684388455329412785945966823414613115207086772958025530798786410357621591533197863626147130727878977038393127016358567163796328521999277034582664128754871136280647159710053078398226504724757783555272281424389418525210973558544251269174621168229213734014259637238631092455499263520846671304986934795064639294124968061606093213723542769224548199074062830895419366136238888418624659323312581566717304619768720720654476713294896345843700131776035299458160938410621567429296064563284633679182119795805131175118260209783797439150187358399074271841102950715032411016311916923100436016456077405145661234218682343538771571402815052425906553232882698379338570003242071509318342715069120014732435628186003132459004324969836404487693286168919460554811067660216546734469799068858782710355658637768172496052428592302245333151527106775913520581710634610362255588866408587759118671505731466833975401034752232562151313910585807283177572874794812581712338999866922241679302586778232414472098496523236464979698871680163158982594609095250169938433551754801028382523654247141866332665872353970834587317116789849290003142257603941470043926716857498639089303154389611312121950791039588804806366074817139825402123015965123935646181094925664051748578490505993869003290570630492119731270549960508031783435029294760644019358400679046334490441248919789599275604988700963759483753840651686414686971392628631638190134895229354581841199327547534384745543013555612192085212968594775524400088064309735078057751345056458430689006316348816971685036004141371196013037378350912456819282556764558266831847520969934100314630375440381618257825164519581381486156495869864080641246756379709560576383846085902812590156004117996399275648044187619646282377428894673688474660653753949231389994545089658135576293185878481106235305381716217712281117270570654843351029427508565353640322215426260338877460129987678843485662643213402670435074580906645258470646105304629429300996238281465773502155384978184013185245092757956146761287682381223788740318434085721622342832264521338301340365933915631309669500128379969839413470228138181458866300083334728515315360996358723307487228126632129433578782478802735402644576407846536027903150458974335967319139639554552843177312346032795508902936498792682001902822181618318759178320264508032770220386653680550924940301147746083260069045088732945497276274634567454743732829782694425752790028287055510953789451731218232170403346099026542420878698338566103176695298745351243650461340767471167125863025830606158493738115380469286399243731113146543681111546878428506097017101882132853150836168766093238602347939294153202654310209004111409212049795774011631141001406921936455303183928713565220971036431829022942980219478536083964592238554546814731431835335206583499348478426799930659848613095829946716370636325553495302824385325138934392384076248184728331280784210239005327038403334714316967720959513066248663609720369213162421042730597206446638556124547637049249169289016453400407950616181651591550449748012804548790084564827517497848445477405883836531794620157883457060925522894556977604975058233175928363105559316508385902867325924027384189706665904809437547927708267817423101293742162420707229525525402557456078056046728430533983788491914634888264827189316800711261266843052834719135781727666416424353153692784304396041577758905748554369833283355987993027321655936828128859958092272051319763460079102926733659731421882375763049498392005027885785588337678943305822871485899522718147368934155235469330678455453065070258359052786804331554412076282476368605464016333902362852925747564294410709628969129139408735476016961269082343149144562271068187099680899031134077680932600859433267738235566584900555706107064889059611486428357542708424554971407479894355774748772857281631871581358326527631431094423551316791736296553726781213881757610404404030330529067052880656257868722881250956685361741732771466740744560757448815938976264120949704854031735196390683046899811631629148810523925559028476932224209800746156363614034820025959161128430044273627246899313144079227007622314764396662900833449845065321538919571134815312306534133061621522538401119731191647038000227568882977837129814830302657363289103840129715379517443722913967946979908558377584873045001096769271820930324694882487053054889181940372802004219109543615911823567227413629024601651885522936786457383174827183909451265341162629461447680786791209858160318268432306429708366468672398189154013536371409524923375764459438377029275642160552789627096921080395450129682252848704546712796123488778939053230618038220184694649718628170532335825122862142475085194511797085611307571056114579398109713400446093509082584557122922868902897832608470588105878951668878004007062726615216275674006316032403949559971422067002734088243509750829918212376481591919303186916689683467528496976749745420011833970048379084106028106276428184105671044568602272070587665597707673590539833520321273860538139472470722332272800039159608005184718248678689451853668224037406311547643028620543728142798718676646000799207369923420978661125985220769710198529230288455642164563960757533097014157129529216524690329154255464317082899649658807271811508426607311345532726012707275111266518838459371370368839117959173933217497523539445956348325651837269911586574448168246044290220211578414898220232453625191632779159408102172651690799776441624537938373165419608244216165489978220667737799609126514827038041259657167427717538672221860888828708035505573313866318006398803908727859198654007781889744349389896590783994122169868902388906862870134509103596951106686878711364058030913741957641766870416936055495598844149463862632085221304181331786794060635053978881068213600589370396029140613834837313832714724654589664409674303898661755047170870961474413813257133726243743197497879319068532806011983315038502296764052190328773298909018761196305297484616380380436838240725189528315022955669051680157110290609358354968463946170999339184950757764427787985224412110598036773227527962281862067568785107756600233150781358180747702945278610687501718754904209639509665924193953643781902979928245341821058286501935959033690680960818026629461481646492603270276123016178460452114640653575243560611700156398874749663960554635601905303731604352805184691195386212110865705557714191520899388848618485789416686889449030829831371589578755826990515024726023715754142088723599633209755477783118201415915084229853331487974870638806363402352574805008159842416808493428700103895434754378568338260784893813572613480059686714539963886432626953711520208772253866985184484810602678533408806163933624085332483519765965433637412440125671640859500733901201433849319048252980800338247834211475568501947157431164656935218690476039630439612168925531746687907037892977946222978793858861413771925877808757629609976723954021693663985263115741863721948595411930796484176738970318191147840982084590622354079952016864765040750311291818749832594699312118031363669848018954225120096721828885864059403574990864020333315339526267137429044644583715840304876450666780508368937868956838610341725432857924995696945309767428838462908601413149766182245539674671110040412343940263165609371882791113644469204029981226541065880724676931245614797110666533097636794452757996746306995886795274463048305325098089903770861380146213911574602355363178215592518595097500854654531288872353741770581313024514567121122997871108652913579683898732007972598491443729447754588587478056406689437478433693210616533582014185529986733859366121813620720366441449160810418567681419224119675360768148975432577102299792098481293924039667052785934492076520054317486149639093852889548429049674627774816688155278177307096022830056270655555711054119030700971763891869276685253009116550085175712607823754030707494137340641912244082460682327356897092768071697310679038317529725995943813245377470206924693741880395675290094194263006596870690162495396536034932365044468701371647805810468039888287283751494310550655500427850735850486731481648113429444902622003949345256147364128157887299378359279588656834720043566612502152276802330902495640485773151346478010011624588293717108147399098380638783933034561469817625853401723674761656648947206307792033701897981221983030817236997650797958432775134126512366779389118920239483136082933440548784178893150189424114235906503740563991909574286238690257835157784856327037547688433360772839191524023414140188589356445332705657030488500924242624385583775039885606344253750638774180351240661101828714111946242464325089962841768239122959838910714044513307854033688893671231211745828916263289736196248129345505192950427412036063381249804596880563493398382475616340697051599714245284935474407925896215814211711643008030293154282804765042280841638406676621927976207763215876900658308883798390967457035617738804004679875812717714505353874686984601838329185834167095512349209177158124307695146665635898066421169765576052659567164481848909339257872299700831356561864253671322054703314443984139005451662080025749874870057538900097146164382912592467910179576345003603053981245767549477314967565879091054845981175795057889848623989603973223928250835599481161708965336563656408050143685327209330429506324631545206758927906472754606365941913665456455930158210196006183525251943623627602361461286492504785553750308710665490177745511749034462404033697100089110207338708392567069679704798615625896188972874685612738682561898044807283259643349039962302690264447240910478410494398717687524506690564602433762068449659751586989249962644713723486815314968082678876438716669396239430942446999662746160601065025255151875221025913115522078493674386332563973496355227428491043016737924486337215596371997244991940028000410391315466545629871170740142999038156812261300871271929937091405137878424510172677285154127572496671407625301643457941982638540108986437802410376954281465912910737659326245396491535338234888646086197385802565907995843432744365257116034915352528678171268401077302534939834572098254729266831348001255371226970434068267915844012298006198302771809726122511569336230489292821310650947741242283083223951171229869175599318407412534448975216910123203263734960977287496653618344023049332196343516977822457664366870090904188117861394496210548420648566545087446092165234337143420185929041972500041344353227502516597694228822398691797091320265760911575123382768831951238395840649065716014630517303825456421055706753073349733712476133384918155453015038118314804449468970090728772316049894723127797474533884636523192085036873910069448577360174667131509571944473963072915613388133592339534249710530864810762637473152440450437947558723609245322962925085571203971019071704130068449629964987727084691325766596020917721313995216659770176852644788671489331195742652029802370346764119847775552937125801014413263611038852717466574460188976200909890076885521373775858828371550660388049008316329975350918407069828298417807038876830767923585212088713626072671697345784810204778387739953909572127228387379275182176023524120667531028115292538837643198799184304857564949816248617396323652301579032459262606078791638888545727220341639086062474944953338544394517856394861914576136428604120527688873344311419696099832906476639209648227177459485961625970666297627879853892855648119060547917592298738103165502818728217639732896085232349564123826014356978608462125336931042499868441632504683995654721017073694588136374761443183912133163547237737973080004610910817355145156691908747885223503337446115666936852314279725432912523420716965525790913171680990759650166606148312430724612458235628884988215809326302458367617865138083918667587754760649605963650263381542907821160240981156026261099384833539664487018245821802674374391993505016855162965649338475618964981643213856385027946979688495029596177623295658805203885697730984966513863792908994262408315351740184602608409054970282382168308779331567285528024249755928635612061398345784091233244904760991518091388071753319776740720049912266374488075005559087856490107803436722576175082687554913197104361268299476361437412677300251957579033142385830417596449198194459093690844891870457986830756731455562581123994001221553938583860181499603690324425270293207838578216042348713150713456209780831050530148782243151569025577527851847799394088662528627530616453400843294852268056380510894387595599200997879243476468766091308430321055010236955383252859046335944586748884933572409306592467904059543389563228688662857932799365333917940670444971255293790871549285894949191707812905048131775725989649214397595990767664778396634414812290174218843618359395525263159297128663960138741808515580763886841488315057166496175310982760693406970921376518952819075930257695065953018725174885421800781903714947674370200836622494334411124715579132546219069061527605046877632078250583026503025351217183757731738253975963611873519965052868729488845401126535163645747572952137089101038548665645912430114238413736484630669350174652469422623164698292581189899945396203628234357580531289302203922472261010086701978393500334829790054610868151781467996502724185022443140648143203729214566447649957167432547748850227261103876192906676348620559541033581589040937442225480882397926585583831885733303592378700511941849435025945395357360570441623773024682510438161324828055291373491829402441405336456335802699278761109119500369748172301395590862981337062458201157933955710168917056501239239297302965969762695097423309841363633233850612950666512195565330591419497603105168482030825853181582709975396760464441004747555409071227669402968993376171787620959884925438500898678336348459010040582946312166886428040434822754228578871855702681843144535727441166413148492793567867095398703579029807159862181611082436084798119797072281742930842478415631399605420286333656874025129073399684110019777053705787230869020418648888367296790657489098152570918367296573677753446002826726668450323435902226851073871963840024368021040147391024626514809317304112704289953549553998842287020715481478902223872067249063255511478957344699699593704095158412228992220916350374165085304176517955502345118491340036482587346004483607032408167517974198050394873053478546380819331297961756611625532541339554342649305153435803513725180337856595617700867400115353581655836841463106321362740962072064187225073252619258443416915277823164857922575499991277910200838938062038026273416589979001592191437825201786233645907048519740836796784248252426527576720447595844293886862045404089840455275273411858899657211849926034530952705031172976704164293834212153761908057566531671268685362284011008642498483900747710335184091147868027949981971582170584396092518354803176325453681775662543023883459730581723211594451505545184935782069942961565405183085727063332727066429844523130933008082541491203976909691346587252159138004810283024734839518110741109358261316149172214359548241871796927646300236082829576065889142700475602559625950060208871388407344945071108507878758617775178171848493899773313404497600040817547791922128260528509383658906014103469078667127765232850012118779118343926182181934033165593580122457012780052082007639655401607757280640423057208701077280137302567048992599361405475181593946406898431585267184833515662927332585482849781587244308305842582409213232768718648824122417143894810051631757277150766984815058526784769032995599741800769205887531972787280637527908392263183898695777983899272495841003908351239974057816501919384365073213830291136174669053882805371248436599798771103517804151179459214657285359510929956713536456556425785943916630413957561303118858401805272951196707052413479096137277127650670860631151878761096146463479432552221263357916687690930478817665387521966117708020552911102004976532119475261640024529601243480288309210910177281708988865816806569112470832451743344314353040632122278288340152293670056881587561707552276384827297467305157302482425554760709934636722097300885199480367041215761397442351228363204781909439251950274330256365121404133396966552302524910162363474610118851511175141132298750931085404505476954360588857122668829386691896109334958505123705168371372870501338199436683408813087199600859610281031024522567547653782607661519048529398551057752505983210043013916193415562678283295127108920434905367491806553950707975344904054724011268187700467807794089260532516667786296932995855032070267510869982038676843728063043463709568679443128711930024460528835291793005168809621943360410553708726024714378213605725105364221643820163412799195698361888967680296000140415899857505429456123312588724897702370574000046615752082530080133163827394709428807939077354973339504158054935158832077935979034306137561644491184774449401701855958031957296173594270476998622990648404916496854767974162608166616151034371959932420897053269209039491000514188545570155225471456031111828579905037374272017003120163368104753710082559272131346948990648788925207978081298461608051917352632501066616587085334506183415026762475352841811740768278207036735233442945114704237220104036657124397644253538204119139541824067786718620821012238405775374233230416019999640570186697817544673678121637490040512241826136434784031997656081275656024339335466315111585644739454082418435087331143004994684861935938146304095749139387176509406285416600056747967192552861954539782078291950671718663300127846855700372176150881870012878666718971252866946596069043489918057039581679411737869759486067756447358571471892792145330020269359047302808156740385107010011718745730934975830153701834425747374543151597984792170276132460947133309178699577311203015092948990945248445576452972039767901987376005833643657224674405673763454790374127188995792325807730261612713027655495306867723322681569996389383935127517631820746035917940954796676226849800975144851662614445882094176972508170446337134242783139989095866259891589184899287691529346589906679664999963462071957013313060950493384937988023649458299726890381914659833863790168001935388893259331691166774575516049204664922857772570780537652456498558053178042530164858362412814245039903928162397658055297851549538680281841401733104786984782539894448466598329157540923116178479909005051169467869052410621869500559886542971336218024945525800509051601123572658867154534060111204832320976727153922993929766773934035149202070368191318316559773485354914453201051494087119541176885572541798321432690125431043989024055681356805264954764656244515911173518555698068665882721843990943756147519424205097642281811072458291581202632224563072512135930543507538698017517223246125141769802661179080033826864164167145078538011308016647158115269871988063118409202276275353448623438072905981172057223720001329590957031561537634815883843023113196484810702447469133254354135583963084983319764711651222691187384831005267737456262882255564722672670566499482779132322281145645264972750477969371183538826576796483629947411082695445235496804538991906562221457449508146287169230373958432937340608668247772269792813877562188093046728010606424085679595619437299339800255303129090056022466464148286160234357415419860717856365485810961014255869622868222198718464027064541453319029865049902327153720307514417897206901207042935499886628320370432403180751101421783245604160274955446938548473849683489931235324443797240285525889308431116578120430576829523140925913608675429448687339210123833125397114247422049157632192278525158281531064031525733033780621394741291972680453170885133778768321175718392690115117506115104668959948317423767108412838146382068177758115980599176707305423293917352731262408502913164983819596735586623018148077019372238153574714283697517273031717061320959170801862003678178589839830779497918981512641914797805794594188330023188871197715603235389164995328559436560785136515310816119908889798871224595740728987585473163268301141642377410942569954929456806653106741187039404716628066593634222397171694274183661584685883340967678679303939432328378864831526599110496146033767999173470769028525026389539913141041849499613422900899833362065272923258332198652551466497539679955462484972254034220634966503273840144417447049733227900871741611282778050848626837954224738298532530153289626232301364116850199463730092999201903123433620253191019182588393434340592954691681684620046556078132793368775808973744818711607217414828907671221557343279472457510044157696062075633338192224246055072926972353308798432706326840932521089595465650075297344302936524227108178414389272809499858474872025976521974220466910341130521587137456591102293174986618402207889590652048187750975292922354546060723093023838534057671029739609291109984576765828537094633879358231060742676426099046518686853138355154860929907029190347610676883951191953522182113441688548379556910370327676500123711552965869385477410637097944909647771052696909011288374740664760459031046226528660295519422655199377264850334754265611545442559325853914857087436353340745960460367145575653276407776421633958244484568380055650009158505855578671623540558472621167546701374938418408709718261213194950514305426501930798775492585219278385439422236362705654250444863418678025545357258774340505565037009314780676566755029028645934400631227483852834215836563402023617297579831065065755462802843688245040059338942640064868003153922938277198557278954561038785788817057568793573879142672346173813635205636925508022295714472608167316325675840707272903683895246504277386719651279385896087307924250121806526035899875328273738719790810786070380251959772125899940320081779101848522470792453754054551141375095404292362404645068364345376192128346364746670411317912183259877654396208999416501354275057721091640523570292006603159519129493351675061069714928024800510052686483453923009143535997567556732867613859318727612809851187184644033340235303085726099870488464674915833248074447523056796555982474670330257150981231412967006535866031316336125402891375171055214485938188193677546275028367324560429157051765697536527084739527665545216376132456102959194401980523588221145017524341274184022080860920171206747410797432305295536958358526847697489548592487737201312639128711876533434281819395686598927791994206672742456981279132435723473538877807279517544941831904266768012154604121426701715833400400904744738930597411913585225411049209941277886476635237317322933271562279451320975812561223988227381960433714152765665107800984337323714161414334845059782834450126885296900983711143214558218824548045078853896362570514566090741534860959562022047539256835740859164924942990134395985362381665219224208346727280096631069067778469949768008419563015778490666475243203065551616661069934452013282415959607781634772706382413243986171422759648471008001131443740278651742128379545945300044269573304377483073254389785705471026252285438270448272750594459187217944132476553888394944968255765476889516218520979874113732889973837884364193157803784507782597241658424212863574353056033720994215578239446446642632845032096097993172269499844122756505687032797757050840234932853905097636943123981018593405005890908396983048437841133926432143931065686967617461565616069649869662485493792796802382788805328511092735880832014209796808738283409813760491886162580964689452650566938634605393336365773768034895765789020224804613338957694886336457440171539055352665535899439304237453421905003849083613914610227567738337749812380081745772431432157113479516244925328297653983247564999387000589433353937360092309909500130674882168543273560355734210692673044406500417642801088048875634851503911708726616764465032698208769815594733706202563851461190855868324496767181624083765419151026720620282058202891642995382124529544868267407662183406271985945061042417430426847576730451525415266853962095469818697648552305596733852714589969798224864190916961655570723492022537801901824804980902027551699095759957581103089714304426659679671918384243598971186151900088131236421729140604293165445158025989806794454776981480136942222976701286994354485268202232292220360722041533366672522657656442141681270177960040582873125169474243457687044464428897674443444263698832701937421589930547326971596187804691220564464704061638007758542787953000662813000198494531596104788063744116801313767112531614577243782092623429800812107775483484007325222448095603600990306980596691110628950140433981530186536416476434004788427204589781567208019790516715440322058152157442934540061788552888492592366502745686229986448135133338029958714243186417170381181996114217799708327539726505292404437516454931632197895833276388839834626638153498825198183049140597680897720893311211381716998749294563973457076325373597930597286560741340896718134806484242992077645106256605610946317246654708806878726165575056751264746970688427566459551776636272761173312607915258598627788919261146721120992389769923253754572535190015561350270665288210033114088323688318091506608257635719341190115692357701755085282163101738068242502945058483939697840319137136975783450249381210415968960840928414823223194137045154912064366642823997123276586678654248309653692707373978141299901974559190766178385927756973365984584356040502536251697020978655747067709958436978062402738030609471914186165453565641627559435737016134058641204891489854146946616129419642879910620011473247262343167356589593739269156381933222041628646947116680347839831071167304157250904302493989111984599441173095870488262770598285380674112122054566205204837209274312503700445079565517487991576929781804530540691170780959304661711705215302497183622951270744617253494607216406755573003935228317737796454985373061417410628632815945354805450406758658130402013674849560885458545141598258410294128635653669465929398619380829176009962538766072284008729335189666342211131426644310080294896447088400347258240429713801773915116050914262004711619798546575664087010825035247800027240482793241775873208447460269199375927760520900894814523583149536191398030127932531584773945323270963207615191791237303420047632937440401400412733439087268186722509908313357179109625233585247613965653778407417692928128556594368369946739119698628392671262229371042835907632545924292506128411486502897038529923126447562104859067337259399025049553107353587874208827507371419027595020904848176769370923132648899002459733373033437317170971676866414523928212499464612431875614103361393040962720677761091598340964088982877965900549994904473425343472008646633477240268305669702203417692859122690371579876970793357132813672727521613583738609785086002314999766964916823733358531928781926447165038161927779712384924946569458663030678697031130667241270512153441281219429490109802044084283821574093834904767694513665825006862710100895891792436317937172098208380692408133267240165327302767094492971276382485818510795460016448631365698670142347054487920064316803058727435599091009936468504594827758189086511401063432656595190428814631213555197860242689226317872064472696251243296118469004322014101674145650477604312698716470679718557560706789203273063604629854711694836381039775999916825241385306978719372985007401285703609409451846763021820607468549480326997475947250559965560306814914696619085251389929058042457834955617710512886653008948917642263484055559485192608313132054444294906876425437472787778804573520061744727740525597559731665587005460422779434197774008498809554659730810832998108575956804734527413244171134182155323942562991319945579045386574351638592463532401752799456789925755004880465424572374231009643413644938248119783223472112632003365718503776129776276293716336427009443112463317849740449504189556141834494399128429115891559882507309843761556040208379846868652278925995275114286336273718282007305582078188143189720958469614611634616379024380448316548565911798085055706511159295993344706072139342201167529302906915091287264450899351143168594580876387683324985350903012643953798657617804352234393158694398658672210947305029552486873174677474854551736706896246708711309692666508678681807519992962652423772253935435426984676235926976274827193584901394681690257728881241248287728577207571011704095958971427176465146931866485142749373251126698389779020009820783675338662258113069015344362624534515531096069137206631486611040906488340867865125290429240260900372604608225889906556058315932463435040929855525214117976175081532973804449921978403456147664073234926964000636724692446211536912643051862468219315486465464922148645984734267996710172905452965339945242164038906941709532282113364418656968823756625791072072884736142055419734453322624073430455717891710888695496285039934507765100205153616727237243254085869149964857311645608864704030087744219738687250367833221400579739073430230094978011939731466269827809873697374725671776832097849615585707499880935317406173980046898072430332835713216670341331744916599099282461811221835443571803321472034950495012515282525760637351082970392723471900334373792034330791415764828787175844942218902097176268763963662631179494180344910560608483358188831790189750194975234329868687228460300159618060440381524176582571760870547043417025517214129873655214817977913499577173354308865856233981779102469440731388586555400576717242735948199052285868794047510176063993246173312882929487131433668123697315201896371931123717990560891469110332688314165467101923872131272607126907659742417474787651723275666241733471405013672371930746457779359061234555848968533994835718566681001969722205812193543551685058246493250910176803514307255487204299903494646067338373058116238016007304679485599134410367428310294875173252376895120907893933667338870723354572801114950124359745317006179753453376216390867118975464938063010035962714932264544115049040806798175315660013574778013740768037563092660773070226978183424793847194998338992742261093087309662230252502461890771996554985250796843651483159131782987419925770810100431595749594864846661184458589557875477965061420112461913656069748747857534027361186266642665187688131377758194255096739983421480968531339279969412481304336427316471865768479782355324478995638475884749286216467355023234521377122698552908424097165661007685273112427599504293745788853550626708657840069476732539099909908149001745533334130926827646632462099858012233096060002839026965500247087958409789649290531566972936371125303006268204410167255514933935448686045881463901400260111113641967194616510886676605526647321694220103173773524552349862629427180695502837388773121476871132466927277339099506023216051339825983110091608523097897943393799075865441836405622813611196145551450211621700246603118940669976042629665471155293265119293346018374616383617626927481252783413610928815623049035509896558903405708629535804504733371747885027936493608839546710315697903141544987013004820036865442662904042562948130852643536986667152271634008767358479190171570426853467614559013601818676514584944872075896549453945506248007546767316469513667136348858993111099822100175801946957464283603034943941036291307925798165928315316007432051753919655496485619012708421225034546543872735790597833524879922142272021429011744894623127476073090895630782082793905232263601227971054746591863719654030018634079215926181394964700890966004388740558795963385287104400157284517128822748056386605269933439160759652512000845009839803212655722801617980874217221876765429431349287707033246717806606473266370970549634827500353255885398379054929788587668391761265674570203598306177593750450787648798973668262428567133062395762916705972692977531924402308415016244352631835480258783698851759679582514802616023470006050408828838197133377011527076762374720133045768277182478425609143423027262458157529703866134448311926403075595707207337776164168490491608729121833238623260543272072188544210768592526867453236851554492902483431494021079527686256111033211731222977074977958918635545886716722367590446780109873454770288479029855458081155807067023202053531942481720004665313173627154248568193762452500733656046408756294087449330818666292805403782376174023214500349178589354641952656156097621715835962623124129965121699324366389288712710325006174143385517944755165009287864686422951814476500934975947816091598292035593113829747819495283990691013341080293412160333091210520568974762296354675665939634432883055970623948361025203625475510099257640942942324040527914392797625203669029456941926432391780868207487788137473455907806153202379278229966456827705417957458844225706086687739186425530240025693048525128475758119497877258523197381381984479733038757618425454657670615982672941210560390445617161991430185668716037719626841010029961802815432345000155845073080190352603786377021435099859025870245396529453465915383967983107264113931891115340178359245318190529571771891140973484124696760737756645742563270442529472285216712438493162740392814766900184949509787611333623793624500750901741165854838246723338866283343359639658856188663386941026259542414699056438686409739840200565927225914400318749117591337172835273729817791357373438682665836039207254269539286048671706711695140970178432334337550796919324901482040751047255097049397510752923641775634988819692436333082180889554704208414585399907821875888839003301082371605974502606872017793272526354773559960779960140226410218769171023444181658789183475996907653449755559434600715337708761544807393133304609664661244067720961218599661248996855320053842633089464145245884475332321697884950983770034885999751075350447235359515340365784976361252839841171854470633201117246865062198833315532608080922993817444899469862600467141360889080771958023882747469128437067555188021168664671970158676023261950107204903461155052358042007410026061952642273934305881493064334959141023658267988728831314748083842380989857681579185071968671411051008385590335588421950018106623226714802948785147342533521005861894178638732104079839719577035952088853742211970405811592219104138382761707256213399923712544955132260898240229236856095771365999414506086937340021087979919441162524964536987968050055119773404924178753543132972527573572626826555551383762392643926315574010708718584223640279804162483472667822099434230038677682144700172912507948789624019621638310533344696334246159582410425469610079381342557531014159185384011106496671602964200128926571500248192591149031749953594705742127007197422340764967851201650046240305173130898674877618751232204168210284674475628813826595425190615914185355736491841085279578890104231136024138894519642073464898812952697512254574259582677507862528217583207527870974907960927229930223929194628639093215179718506010086360279535063670772585978062501748822143598364248101304362672756851095635091726899521731396172180986710753669181078136815777265129962866737246998986634642194730455386213088784242449187832508804888734930059211791437248273630599951588027709530384575782593115299444516386529568465488445413136893697476283162595785258275831585476362138979131436435844861305965733779209201522839410148725526378031030803402673921728888758809258731851186666189675509490988523094161131604675485450450240833662191864533564939292692288745499413120776484648209118794355526068431362605726260639629862619905213041484306691853514149520558170078893522883634902071943799688175540517406649165300162417682934379024092475738004989232127595047548584662118865197000699624283485629431279438284805541909643870097720378830382725823217857982238604348809681770713060769475507023561240883201677332203625587560882996166497174350512343706035675871592611774525891629634591431497694078414504742370661309936439524838950629534528877683792181133376500731363259786016196266998411688031595987268963345063535013643959540409307181510843349579084008938183448092183010191756987068213019817334988851806065152729865378378079932131600486183061674146667393032566125047772845277543617698164976707278541963775300776945607157000985489445475594499384571033629650273950525829190300429723823281609139310575696456938242621092104098511892308312288830946937059449793393088986995634591847601609326163208154433663290789741169221399001277236494961410566300812310558164568934276005167007062936235113625679540426200628466938949135539272950310843523613700798890664221381839568620222018135577920600450021790129281969485949712336383616165161913416596213384512755816877481748030366153312785707821568509537983174878113071703029829920527076805758525228224193636979324686833462382116152223546231598504198966498027654590814027073582968310052993500925031924992020760441693062564705494403013310704941555191325817465960348583357686317282707451111834401172090303322576447965083298165364852662614111270233074351344958626097703798171568372996065300573241149265907798661251922232050969027608714449496623834871534554452668550226716042661387170282617864759508225380715023888492565851168853475341138076950079452682658939283901364143166493983360626041391328123684326511986202670030804985107241382658864211321223815281748291524460402244363416625731378072839738779226337571723647826500129833173314553150916577456978089949016796617183242902805675007228275239385849903395176836804152009290648001736418450098814990247501723147323014592941123792891404921375605505366566259037784433231313268834565164557318292010200327769455889342075313998554194010722089386103013084985999147762270479813471452841723512008897379665073484067833611443396885458847547023324162183934563618490405575883831764808348527264042529021172932363079635140535331021488648684114858591715851098926714157468685703793507718638104491640890933902950125945907451077232797354811086873087424505823420337347461847498268677764974097478621536732228539834605697347176136934492787949077236012670945836020932466613672146297022907927745568766930877319952773222449750261728818092957837825317961936728197803857604574540804513416834350663305177815990629174837100581321248704741270499883241195942168487063243235055112935314859745683028003970894852652485660478505866934287413225565316650898924409843346817086780561694854679432342915590401927154746963665611597885107231240133484809843906596252477808474540321933409743087517785080133327948260290905059374435032273763269634501944904838842562643587694075733450516544185982540767265361356107285495101107189305034315466210279701528122455499818431147303952903864942280709335635768397830441171584761415054100395251575271230389841922395716712886983538829652854715018679565773993681584229585136880105348715230442765165738591951925834075566102669100418102136851718069122124959820887855303791047941653494948648473359627489051659955594970976816317032651696055067857626858119679508585194132128361710590584517690350670860193208693095479366613549625658999535106135873922801307344156832327551439121014130614834993469614254001551827900075351152676581262068968550252793569063056570818799759360233111923727654255749420073565500463074359414540343037070349534043566663287558467547651255575354749381346853591579019995154994703940260668646147262306925559033661615682778928834259260180608938419933955112276455500459230666339293079673245450388498583713438260734678960463344961296208948840659170428513035553191282774954280808915841720003502295926079721929922258517338352329563373872195369690401328522434868516509691239337276344613246944752182772721957594128628233198694612745854321443301435864941767918972916297614326909915312400124970274820710026043887545351496331259378125646091487758071983247983831249116129390495174614821946775696160155348539990284773467097865780121354046894433867495939136467726033469334411466634459882301222406440139131818213317504085515105716814100060551387808593429752763412952521935325511754246049077786605558905116432368446184490641456525950892669115298838749753967134139201422644821438877102192849981948510957449974245567181573875899861234678481370366521620174781640314057382816177012612475100921516604086302381231350912775763110842547492246519381983127229862434985622020866170463281651403740054735902998030564066452914644332875628089825787150753273732239042494626802022699087380174927895147956007265344859611383837209126684457553248357071678248502766388434896473199336913941741114109147689799400301167627619827083014761639127590989455926019671909030155797840451860404455773531697038890785733304450311913685244209835004931884662639640518088792440316584203652779754433581553070772479767486431738536290317994355824051941672745791012386079722231924587664597561289604440206986481067136533310168295702794901702663828456474942017864190498575640351845422523805852931650437891497085810589675723789017137184123601817131123251919327565123242913523437677079565580924286162179739259831894843219249894476622964076661622346147109440080589356264316625061712184482349764757288870314584956949996701452184472630002799137348702240826343944149388723477130633841123735172105207389660109408760814277449188905333011261174056930897556089511199697747211839295720557976626496980638435288400005133168978674793570494945528724735942897195028097867984892777620302174186662283323520920599015455221304858188762911230843067397102596852306714700927833177624703361273618386744407294675988910451040330451212111105686015492302786013323905783105297351783520240160851614500773929340782330780538928644990541828135218082835955801558239519442095939695376742127772484673557747904748494607097572855402044203369995979505988218363260441247500279361117786588126548433851008480777946476788308279963529230545504349984248156021309385926293659225529864507613071217281657796525138639013659537270833250359725430697287034695059055542218006723624081148019823324042314016299349806053300017222558935243436663576529945117515777155690286101561645659589264957883523801855126295288928331933173491412632618885980230448036319955348852208999113165506024607870712655942261996176317290924449446152289872810309807345246672396705890942661915409210881154358591064356571090655208971948849623800481144906193507285396836511120246593199919238805517523045230499683193468103442497367546157268055476636151381042862012528523191366243624274352784710233704032851538635616054834241686668799738066014309403579898835043571267261166949194370624468625016059671165525407730566695014114966168389902789177289307314647036350288032498984678050380510198237259127020599862810175205924162061842763796436168672617818322059534830525097404200837943996753630442134408018858536087102888875767254144591765030598225122913647818325352516586089752294087916519932316108515998775579644907841417754948293032361056551472550074246135319489758000674540459643876494528992437383175617615605361736213787468861964053764243087887252466576827256618821239002624737554093199673661448503936159697288257492519000756697662619590640400737714652887646146706654887873604112586811327726413698144824465577795477639922516596543476804112832582149698196076605129369167734193829122882334794341126355446032764904955560677509431168380881053375675209457289510805015236501551855507264594698861944153109309407281807173294760209377457805511431090106169470529866977699839122370159082999645738338753779455170498855597558717871701287953727984358839515476013359851400223019586471444227543270526924093308339295122004427625913767076067418199669196165183679410738388951017578594693253299368720979958033915669433004917730413044843471401308508004269774102474488610548452807429565255671682191943067697701915631716422695949512156965675221999619467771526343017158659200540370162875561446770917959960407956740568616504578629770567627127837881946795541489901988050712029312584360655353633860046702529331783974057734483102603812534221534337847633594556674496837179309433085278703704302127415255503408605217233252300275156319829147720283114766766914612639360533860888044439193328104267318167802892854794224251804544786764032572267441660121395506145901918725015887799683126025177991270290306228636623777132355697736041749158658009517820875864766029385905359306248635373300753531877342231002537785933994820129430641591073815264710790928247465358477715445959189660658681852615305776089495939210548784458644234273866644648779980693708834456761125189137293536845705807948963011635618586138132134147487694396399813019502127189585529263467596962497978950322450805494364256699222542921698859860979681057095082761477923009824721807544528075668840019272752171265805292262595044651509965248818300651933993995716175719479378943247033968856599713333850030950188923527039021035742748614325854699601437534765350898225647383199014641251682194984905840764397079187958932013885575131389090340562702456635934535333433791906681809871939045523101430410803751531578115658088431232586335143907827280865064322397463647111106096693117097382471838134373589084033877679322528068622209688946363503523703266017318971280848164061781654719845173755932287324394551530905311858771862894027210112940687607484252463151068235479670327983478545826555835752604944848741672315739903084481323485414184621105201774201223590941607919781550444754535452323831296689419280205234027780884972800523829573918314623571498959842261557343380934015783276779126393245961676982583751793874319288978133352310990849300893782650563284320991032618654780235828268677618502117780599933299330489265534369194491555642289834445287645610718573943289981724214351801101555421846600026275827512125309493414054032859399840223911608184201453063531767976935966745976597603539373551804294369989932060410215327795450624922709135566898679286061399854337694903318644192036222677033186433675036986785884589378187595242551042226726705023970543801748616569987118192107600668495846497755366132563321784692927948595246544653524158940849515013584573667664582163319494458607374108649052551064727500259309988517410401676798261270070799955828740380385414652740779870823907914596028323595099068554264339271962982443862810133085470506152584302517704891307938355851868031492255957526665460330672982609579378865031309185445994612044951365881443979597481910522163700024443718153887920827614217903468270584503674821113582800611830264968555305844019730320242960162591114794201287698767712345320988653857488571625080765471210198951189424052931419290335434670113083157126806463731790622608298919873505573184352919711279358067170564107462241823193004746073748619110518957096312379637556296287791670370718468614955603975112776496519567551863862401686030176378521626333646518336231945671841118749075374663567288593923875428260600003756847415197815485867723805263767412995554034846481250567536914382641730667969167288897773467862688091356019072404720441788616471646757422330864401417406439135101376563874292263375963363260885853011355608123911822707408547806832046825425952662616417791161488400538639037659703058615012804084227112965115261851499910023097608032668464618685461005991059853292909887628263590626639772728771118697952598714161018918198353913448338810878681048793264667483280246268636755613290568457787277026448868561992407073009505807577073966889600412348352625322102759409890227697114966091680766658657943291536896199725158162867390942732374843199564411175688162662891222910878758390570672899947145014625852136141215003244399921838613076744988668944462781803973958480165334362832483244053732526469763051117253549435819802996982356174658720249892917491593076880897673906400165840726854452496957333459800117231243127726982754078504412980682322001633930685740774509734515893869165578337616372026895314908724037110606441675316035503445626182470168414776920823742298596141656803773473680160708857778980133685887773380093057113832010515344155195248792419188461391899637819540641094667405422313576531148869988972019765521394328741349138105359112267696890340062602887725089129878933907916987437587660693384106522470250544133571634844214606370998558638492520503572896904659895623513769932576089183505871046641418309423801835712732215013131853664537998769644785348647890388928241085344972188944346883000267999171854974798580016547243278193213201207101996213586640202520000922419384709503332266064931332517287765818573666868535055825331215069358527406733118055034872779990415640297999438178853667005314100237380864092154421990857480061141349536896307857789376565699399777421180940443396284179400137688645034188623739237534538756416219155287670198024876462969659327214662707882816217507376148120939408906389974811276481010617037380284342241756951389911608379339816013063852855330508390127914530244633396059853551963720238087978806581816798691328862908981672859497213692118672741628213860645180584140940577501655377696308790915185321596366589801057385653174431283919202822861021875712624690068637012143507450533617263001781636857491050467716462947654438882510839414679824714869837875740913790156550631768693803508538058287207184695368941409530790934192978554648732918879217470012428110492355324636846138886213485463225504881769205469024400767450492965716930939168698693708856371982329019468788135466616130773324959694479201764688400737406673478214849067597804638289220024013439256659249557469703457395638004893345160083913691707271991535749261399339978253709250939745993209587084167288008289479213865201940751844492983162334781893592049402615726485155611422898930252942778224431948834460288255025618312759637868046367541044042127825842063822056263715100038446775432005556711480364517467674186362869818397697324456919437888050698605918215724120691191601857515437334586506910385537821078837151998837640504226175413408643454511483856226605962848433950879492815669885623880319066525684143332066417236125818524328492555115751097076997903373646024256412423340828740782469895202526819304642316179934400988347406850962333346679904197386126496179877220918881071181002337417807557064312426492081354398640546128352566310887790897006505743302936833365380153005684028044439843338378944316383963649840866131313587056022790009245845068055160818383008587371863805698010733275441160190401668882013908778856805553851055970976688308446567490794892061557723072708849102534752128638942166806028726201373631380971849491193312126481459682968406353937178226955862306861062996502752098197698903949926064104692426432341200692235745866080102054642377192632509290025670014178197051709478797827292284796873099721301113575624747071170609039925700527939130313847370107887539716689763882838910309957936781821485852010838187414616661967321074964484425122729329164952506347372189248807811833388228531937403079650201170177619466827773726591797970966832236974848020874176295808123923572523959655223445515812234613269165105834692855242932409102715163997145334398587310781612350597458611597968789000001681212662288548018582952314333828379911044889120311552257410957657572793332706075552969267612966575062109963397510497311558544288265053491267346473823414069732159502734321189897961732195185222009231692595351624804084136469239118301444876000371697083636262506373732781584700758563264534093256370540620019733664539705917097479393950676125494405573760083509913523629130993669319801275679780562182930888881202600307948946613799989271734938083171337462007417544903692562959647671402538890699705508375710078003524414152984686731364266813502605611380082069816267253288747871619105720634179865371724813866113670984001593231739575630755218945250593722156060656085722631010719202878795660988552261682091908189185708769153988571469798436969877391427025803279611445721405802178985571996394960921430009023584718707437246887751060850651127375739925349993080798352534337146974590492637274027851020177550666545785495554478706764678001674980015525592979399863146351700258483904354646097753361128489978120490961752616689429395188334997138916413969814178683420746531069822455265523051747224544775816767944505231643058133153592153143679015558553355259903039127734289422273844479246278988002865451219439060810727329551820497141495099754796121912789144383377351786752822899995736000745629113634780768175903356459136765990182479895084937877132647256279883127688856546101024081395669801256710394983662135691528608431496951849545082214327214349778543054487200265920456842649785278565338664406212925903247403950239675221747000593266657553264721928305858187178454447021995895713399526374239502712795957660928015689437487052245730224436790040593355290281837484643798920066565950933654891740127294403734807558290195210263428505273198719697069305174983247182748550533816779450928267835536663562976863081305339132605423792099501849435409558467727845946168292559537543812422766381907142692300476150362980312628964544334784985921694674775705603318869172072930543181589855415629989349650295261328774011960622873648972749180751927153629679225329628374960701101939063903546338244676258704970128817676490230813449540188955686258873131875682931231334102743758770751978904562580730721409670907890149668733245321397080792559315776350618249374119636085584814469346122200692556035312997780220500929002237926815369639897218148166198528558723753011194867738167214846181391504367740613298796802109136177847126724681827996109034373267892976682478490378490818172532323156571082679532959402696629301132024231779773736241892061038744025479552397831918727854137451651885065271267640592078804970639849907371891232543674933722781723728070639134820991805556606234953738363186254833620000808485815370636522025883701941538187694852671900144954684711883126050465263255685030042384084160195373679214994777353471641682444692877762047057707777021677156227783727549930444488614600404322606018064790745106038865248573911101514373265814623381086751220231523621048709586628330765139689150772420016226809377691374415906574192518064632229534844479314082906146724040337580013326221282288052359549167488583871717867414601615484781449273051016598670613810942713216653591211022576148117806437909258717617179605465133647839194772825318657161389091436171818836297841486140532687588998352612461786643172935856981663728621903323709644222954359544639027882023708155038832621497767122352613251463130231971631560028094336205114243543426894459830589658842252477025940215845544896680158627068552042602635369514762401437737053944569675618276037394262200988298000147304251548285399135538501348501328848753605672133193527868320255582862657754710989802568990402681386240760319121719592582670403742230285962096794220723968000387748287560447149413992270081474599073965492212025452738035165636900476446927516429565113463184516656593827053841350185605344040117961512919480339867259218278982744144898439980847671985166840935378067091424859881512984746527409742509039342053224586288666495943599585700281313361471916463374518116497718083225958567133682166317433782351764462332575083823570830818344614207687794408296628815025467773251061952654669008690777617094679592836567665221096239191540498793532364712292493824161006302947942719864415397040920505998944101811653919035757337394903527546663522833443831221898962073397796252110994816096658373981896939225395770187331629634387691626976510101695386584747608410491322162808531157564072877185632207061338429027302431866539077589907561395904303846136488621476884676711147640336988603201729672237888864801581658465551931603679517175193325749616007614002009081420694846242899630100479883858843356461701677709509708918585790466204994575978649494202019821762135876741376256295838998491977137938137049389495757923093141520559382371325912862609178504632899926515649629807500932728787644102897827069992656544046645437266334133415890748182122591111197288768108372237358704230428827950585729999237361102328957040086945595575715097130682214483806938874159145194591404175006222393029702427230245977244939945337557581840638043688513595466424407516630952994014057834935712615799451658667120294059074902122316229964342668191518134558819088809558548949283512856692566895585502619156358917160760245957017524366749158226401524907128027230863371049375190210018995852563020664042612945478039081695154629957561026338815857189503376038980268627093313093485639172227551863630229295802655757392979762192699482134015779353863066748413837628425303335437507164887239402826837437862292992976820493580329867545163021995829802815915533994829957039068470896543594913698526433366903517539094683380368744904934559491537028837413933243116533652520421548067298811211722400766421343923590370575176651416986047678303691377089158939414368931809157731468162781741078902592174873896115766505951379592976864773794377352918248670192207967092615511702809182519726185764375208993297885720614747354468380475282885778019063730829451255191331573707435236868039750833510745878209105483693023160597751998330410464764904594500718921547901500276011021688895922903720017853895001806364724381562895546210672573959086172837289482432609762671391497416806547139328801237870126120189087906519481688502616104626513556654176320564995898563587932128072970610587377868577289526896815357348979842140245282248193320595732880269716677502657658099357821506012457337584475842748860324974382628571578262556480553262245680048107528767548105114250313723528589080536178045726966174970921174180546183254383631333237261771113199088486805653271576812818313611141156494675140081140045057830405547012081280211438760290079922891919133859371364910512617703389650903028161767124417605336190585392850213242018699300488946696691116776143711074457257663282004751628713358291494012241895271537820932223085711759612226223826134774323311511710140705673535895939860219932333797440129766849368997675340834603278946641518423161195051675142466175166769523473771047101475221527823777191117983660060896868977996281777274474557548706091369716164361173082590344587560106763154861821836402983728241302182946015215063048031656462226690631435470953186533371153854763096314264370847959216383933343146136557556893708048389869277383101732484467166866938980806556381328070314849583539431155170687130882067107126488660565422270482310356428328117953690052572764171368623084931016562299590640943568201040305004719944260274549724688550828982515202457189626934555841232710334191002930330451311165686617986507244034896096400568593700081287826509740164495581848688629919639469013399561176317629499098492892543603083863463389524039924785906764996069796147118131801609852490533389668175234380548453525378747688280104772513026706484886288655654121258324892370566760380295011226271928710851338807918201374747104689538808647699657529371440022912554132179692302061651899141688729159543812488353457079684075839199051269016365300143387840720225391894704049271994228410231286757158209198905923405288476728084551736879739079860021719803253336860354557338907597700548972270168193038997608689594005525352909079123131737260635090492084246451477914740333283931602426203535142881864226754555746529274921258626208087452598177180970489107607146942337178452765193792637682481341399598647251036682317801986929387400666241596028724265041455269883016617853004148181179278204259999033340581014948139234301324345918398267567098363037125083932155517521721679594162159083874939609990504572922898007379312677831099016042935760329069593979256826827349721110549315553517829304385920971111816034353542030872370577544527989741085346586673656945663246308263643549205994113586677962680612418274719988457077594780607972063270876612518636583838697522188458169898452761734642627889255298375297193111196440067862143257498989311524323545767661547126475030584473113075246591310912482483304861137595880676466517859004043743769662679488952911888628389516103497256716235773938333163789992245556011671212653800494944084583250788083395922895034106190672026922871037087107123957975700285563554944002784298873049632189633754168131382300311388177004209634576529130222201395330443772209272653490290395769209468863308531604893531909404806109278557205747575849655059225441138750993331453007298404696276632213161556867563580586434231883515585391584587172096843092346928853744315104760366942951118937094073014368080079248577645108884929140271561846313136357906008493351260459272701220413055212541513716615230115034431899649059539374130224911715013104087618551622134994106341149152666513693716263481868193049476290265906670806698600202786885290491063959304939376775788466552487470724052250806543359860525524102811329150256019947529955425251123594893773871675508160495460562521247586925925668421806093244621540108551583292289181860623648464076457732127173238218669036883136170935373468624151696063337869480273953175335679189146873149175656867850633740103861395047287895508300542653335145091061258135348271319476224544105233700430641484155303837235748108268769322417374282357819217610354669377685478252165748707045590675333946309195827354392610831280538184958454124014867623271671880627649366547479178023562172308903205600889772293853491860624952909759157249712351973680909948352010253548653564982800140561512808594961583023371678823600945733562931847856406337157518383660626635579481115765347577228925414865093107966681863485856084010902870115017332114799773428486023612218938094002317046320357209619316548330658893969991845958657756950306566830833993714919319323793632859298270934205565863801147093482642469837092680522892662838066003158191752743960189252556485365055832143507115953337373077446959084025611656721164033962138750189518154434145941682004288842596459887557016546190935631317146036025949663021525529294806840902791713250360505607847121818404245838723183420679138310878900099849565517680925632575230264022900623911832262162337479027699928762061265043034805451419753516866392149509684902985856876538711178281487264354111062060349525121351819959130294646470574512860011893044869204127329250712494416926767124087629669110863993756646366687321553380037288720017084891641000402888002890436132927102201539507612750208356044167147620046356320870448980595195957553503817988562292211634543112744794032984643136564832993865317943622686778909689256382290096299403309951630803349849745337449903760022990428443622803259876220510295317662948966588406741390619524554695868825101772126171360038465922306252673574256999351089153508333035148098761363889131891777201446261717341073494031012310699737248121546800489214044224925229037194694858526745050783686578813619533339173868907424654703381375536788383501362961367321693905859092994987090793453590108571360596491463415289395493717710353163652108836562503294255103070705009025135325228732193323998004474190365241107185256054994034639283922775266607593779095383982506185987669739896966871058145243970064133860124048394812183461267904415067129705384919664907837635323153980223787535311824701661780245159043200712603999978863927856443071595027931368404639505286216207848286964075492743092515071751624295624416921202419487282918808402666103099324629817998514769259025620839394124933702717324943069303779074996759717782514840813432789931344917089893836647085269557697919322485387457963185866607790149264597227047234367594129564251867543395307212475232013693156552928729618373657393714117767986521216505054870548082454590818791772309429087406503406448724440734739762190331980543294120052608744054477582550840504550700523700212105643991493061532955234468553123979893010483842390395468266034278502127282681758102116367601208031515327023638768037253240032956236756613077405234920671826082557718404378285377407150445194996598258040377748826167641519137990327644752392262796096499652920593780689248168720228228254564473772387299835862811537583159278495018177129465322047273662257297813776395338580127589767668986850152953865372054114894781838955544996313420319655889491954747094387249735995998156444684633212210592057825754916216868743821306994479643503170742338819969775139572019016592852650739886771767203309359840747493183390320666617875893604697771869474012621944929621707672066140011432519773207105414064529169373086058180784399418347554962742531535356559296011368643652001561689075979897875471552335402868463874948851726925159311768664933147150534764699345031548268384133728499087497930419480334929035940118610073510177323991847593936387553079036601292180838916695954119034434307191907832256684668391774322853436115026457884591229915843468325525912654834090498731917257696038371214640044378373103525380152509875372174289450675873866841610004671782363564172790962456141036440388621513536002468163240269242052674177157102416771228841716885438600587493338362275668018682899674771731485731493409316855933219063636355542968323038755097097658150859673556078889379685870125686618568888977638149052558200253090031339774089916673248694714578059332469185395429717001635110680701916703846428687796608598426986212129301310835170005454454327355985381243901459177970840396413928302336386247682476112990446742604385751694836487119419353361983078132681294809884494649764692190087790838542581655855091306294707740031622984331041553587683392865703631402383826082673172566960045230847683470744416947277149615760934414934593619170886006078876079344172201169280756924957267420677747359391259145625686401445462102969347777855258697996052568284171027759351193982620182771075545528089400219519144244282669573136888004324694628995187392134830165092843121110910938575018686124629836237252600909998361743651115644361033871613631137995666899082973979619333887192373913192156301596293687003292513326430465609232116529155982733399376184007711660467895855907662308287030894628069559647873140754195929282385959459368104353207206285201085916148113612552054300224993052468475512817868468821752367819615228002896184118231117330915879662854513209528937592291593260997067203480195675500422794600517367931844436206271026964608365690136116327203657880127284772343931755006610985522648234609011596073984592635157829775322797091597798082130814832641067481525803379109844525120218707315668333154643717807334021133084657997257120910494461509402558880573627458887784196946841519264057650359528282401041150698092575127006915677525728414587777021303958931676591925050560111833371573641884583854510824214173516568149992854612313755238171097750355825225037607852213822514239640234039400835007840736067960593601631642410504134745902755723887037082694693998906344222364139842547185033968402260337536447912052105213556382369806353650674399822950820112785084854363350156955678112857290161216006224100948312838641061319355107911044333281836575246261324681609107319811380807251643760143667415404526691764364042872628083878703869452043592933627362103069524052832097564394849221362504708602439370991844272205351919394789063589677914042515451504429578953198606452705704746954297622247171143882329329433161754695748220419098688194735475468827309374770235388286501827361075932035669875790240738570145939574479933508763797773892205345920544469636774299001946821871080809307611439377804122989990414409101449367798757405122862559386910677592735167890816044514813812238622780500655724317047349859485491387580372393153247070517001890674674342650930437642533956127526782927524156727121066320851975324665885769593198326425812183783751357118901495738780911313556401934601542513095628582996748094609768036218934295255227904469219491476245722140389236738994145625294774843169683205342098010251085069770879474083323084412620005289421379654171727693120045903143389856909829414004093298398695688604641995865750195878000367950208517392214418221903869151485910023594335528721614933861206763526275923780262303536676477396416783838222760909705365204076141870962262830370376420991714317402651468395335327065386631821004265649353847319216676763672247951085543143660918258624152701476989164084914694627643379412499229801224485603773580249668665132562645819518497103177015073834423405253625883833671273048753170962846242316639085022796458804312825622315831916016459646291018087700975852476817775924614393050659163203414458098880367053708665301133190362045597314359537805662592472831478412644160586414595798857598303836440172423414305768749137218637017147362594235032528425166548646664726670783096879248091720909560854819485241471765727592671741133463332860775783083633461101206420548253605902913208697455708936210609688931186283279951180780990280337014511541206688803836925344657286689451210693150865545084391692811676231428187605205927807967196097457501429331482242993133641828816235393600509492535720453943515043355820606797559483964867087537609765717246722521601125570136358406663081683440856846366453770685901037481042246526852542675110006235307964966340163642454731152049241871139187512188409713311099997003959365522718081100066536053774602695423394870958629106379946800672457645443503294316097186437835438309264918117491739464976649221347566784904620412011034350632148946393968499484095689185906295421086026354213660921122866126402479572987466100039522545097558324601909711890754599625838377754901130212152812321108593217765641565371074715976598072995571940371432647126429818702323269815875425160900442433616835799103738732378829832164923073028573708824080321528754446439225653093704822581656521969848376661260528719268436373668696263044090462663698323518572877786094164297400304652573429628148692914164767308636474408482378140497767303914907080450057831859638103675017273338170248173043002508140746575102641944431145802871122021447073324045520815966225650371660957683334686554568718213249476634346237798811236063962213270687029946841182388239504192122872490575792277455426625757138145805980329402030687108709894626936133289796164002106320603856078262067579745253797277279978363855787988988704699413158944609279318549360984298680691680050222180201521049667216887071118888291269537577257295601012811417868165936344347072879620197051084259117606237233189563746027465102210648744239227666242044257042347986121283420972312471797019048358575794138002751222577029933484772542205561899120302930440676648312622971345374269543745204245157729525401904888421662003863765773427635659668394258456111974333773784871102866840614339144224801130682712848704233520352944507332404725465515833584441703908442619778496769657429377898474845766681258411065336367325671717557742997078049864429786152104551944089710948083111286518839837053764625136490399109366443671498578747614805993671581097873268954628224568112340473848312052107333589564616174147956585076663467338386022800817745663640023809719245640725402907410971542592834269778566762347102021914845475840092300580550230974301937910753792881702776668625735293946225144412658314764118244799844147872534907435540467860973333355743006206844701963794207506798144144961697299892095320442445094771121416743395871144331178620826518186497042618182795009507159937685980811130198499591000611670041787779083803946840316472255551192281725190841593028125502339089255905298406731589873413190836111600455018719866698579642923807309692312832533871996967264028331071402280131761640062528188040831832158022634560921371978927461630735725538167651339729406589565416989862401470535111511597073209867274767553076419891406081652393409106051908670195424585345673751393743635251376038236597734042867681898322572186183786505517122029929044510842422308045310151317197214171336439014536960053813743949816119544412101477374238561566275970692693617952289706161911368954610522494600171613434336962002592982118572384068641632021704326170606674661500112991106802334943716084390473682161858685999744240559263422038309808637769826769714948965150012495190459635300217657389859391600689824661177085262003754617075045451687780502644585713291367553284174478276226090289488398270670171477080234530030947030448711630615871086122748974045092764787909443043903014915790035933362100743960467908482399381754407641178255092697203434095749783879943744458430014236983373308296328429355553565736335203559550845353634690460246170703440627014138260414937097819521015582691714964051262907666621689459730582451049399628389947253965501957465010212420465320529111130717912209904018237287550288334599172555606144742387474260468391064996603886751862795135428599987676016582045284394778369453096490314826291580256570210401556360887102147738648657817800550130847704999673199923565970165236339119452178447213600492818452318589139874112940425900350999766359387210444514175945796331286019144962982692788695101758724445658265980271553560577064459548250961081424231645641427463667459925151110104684094424375773721265506960196954793821963108082026679314259694554379175249347383058369448862461272558215627372117272354353819973298856686805372943118851224741482013461543807007736302584600120354955353278839690420081541836338563494013437425132495577912599463949326551850409255411921048609138132774528294769497521516286071865862347071195933356234988596715984346346921608456268694235978035959474437321002581960005326817541454578702149365275174750022531286412759645373611039964388295219721211273008100196902731798639451375130310247419566643334810861117870387858272042323405329668664655665246103455669687158081776164553528735032772107729353043995817505872730156528747177569220997394977240490294233058001875804834552442179776520861886748624209066826026628923604102144361702606685909737038058774614517501389005830500758752958900709681061360697596296751197045631967672556633654173012133654539840582534024145141810231564542871581660883228951332406237378399586888326535748536274356343902547898959918232649854274690188881670616232530311241993119138631425535808143069602141660832928699691985742123447504428780427853285944862489624644657674792148708690868820300107194863782909225949499363954754850574790893896696877058922992863010615678037013089368458000072803091082964142068774859036410758604951996030576539266815580237014594277421548975993809629046200864918462553004209756076050705646501692463041485028794442400656706100008953168347118059306363643297017628105994688739302794570513410992361268292126003552138931863282962821528278839344194409415004930061098487135335147605320551592275269849086142096345252888720027971597185347252625508348669158784454703271139126753803394121132058430773707663768593541597846136956998750695090566193894585623450979908455276658059138446710760814798063281075248398914789283817475041609425528772379386881815055948803199806408728675913131207630544696513278326759111278987104690250612231331481072623277777034395748070719775917809884044095684902131625938010366496398812187683498732322977444324075807640872576165916136392303456242383210511501798925853473940761924773986927300119582849027335796812102842372619096900468763603868927976609604765277294852791737689422642816548517927839467401833352186369102825791219216874314551632120248189230271999617481270549146339732898172015822919710735806215441090794362981217841991464659550043783249574894423746815270508403314298597165405220050335449065603448741428500162137383392945962239061719476396383293587814768913848829264021856604845197845443855632395501038332338444119271783381496472748894863989590377396107419767538187582655507614403239978309245881750597423659069995450766227624820410636666559892248846377135488565375285969135954632408431616843548762785876463058978973960561036070024809362374209528973066609004621172320708548417108557638192667746608284196763783814982324446898547295400738307736832022499987862305976963725307515952842776514218311204790938492450394249489555244475609245288143491073184754675345093643976924547189889688019803297357186978454134401523241783484770715971453242800359617816706847845108358351025326969089805754099892714081910841399763961138814744962295652063893900876423136328712804445788408133309734794498107064569301299030607592482645450030158150023262532969624322360825104272689055020652894446726755954977997306112908501043399515542056264030777978816759576815196600703107772833685130113686654890675429176637233946207524514218192980024045151440868103327594841143721156855622766604768519135497867644032662301549618820564393514224748655237905220028590308353149013987909334693281580976902365565536060598261550645302293486692247153597331306807873578614522543802509887515544443778390765681612244906516651387063238117946988155891147870673129160398753144836779050817182104363518801300344324293806670852879654690345669726924811347196888656493854080010325161771606540978187501374252964617678481540190433269626533416665727267076165695657000799784732228750900667345718847516797943425434698638048230298056409998241909742227525707626780185897747491631595872941009552215080525575011831964940380555812962850566335000863113915625975317462185406015019041893537644256682569726106446452990349799039621302189653425266755902503004465888703706365562606380690212813180365736621948743841404613163464223692845254236038285316853322814526615750493534141989993304535347093827043750919115756233872207294435106732422690782789543493340230484370480093352484888589494136217438848483257920136114173591025914929144204408419019536372953017121790315709830074417518472728650589781123788517753664858937795955980515724160444445180510045909338966477077759937695589718132780971866590012797177439995104603892449005700990405784451746161042020040622625234549931058392141276091168685656387391242734060410180046824780404464602256646575149655760183109464091170472832767471478671599805599926164561804815291175951583412723241894093181197720228754375008738095017530973328421432703573100934733857032192010637237799944204890145267575211456681159731821659598834388256243319594527194406622789492639654750112389430723921562036582482492017928750305552604052165867034290579314457122387310226228187903020198252265094366284602201895647274468812400869021776965989363501196918482235919911294082177886456864081070680144546242916543253840917140077803853122645804565032655912258966436687633469544361280822202496829807369802180299400398363430385293972580068732670448168199918239622941169246260634642136733535231901591354817937285880979154796975014552583074688475806672690978075609422620516265885605334007886866878830722479835666579344993088738511886724420346677761333208582476874430509770140857524994179627692347402127761320137442670632633542000895794254897762485372856714485916349994197365002446437690131984172947418973342554811792919804613778626519391300947808534083492825752228310496282554414264097093024998354685042379677698668291830855362819620021051054449918609619727593875769813580652602815874137340659885626432426517798241990366016665354813950158455306357664940526605768377667473976801246624542485420475794288697942058194307839703203987177733432223849564283102886438537846030318435061445485145196325834827635601302774132717755277129135757923665442238089759687220050380100146899802634914811360898343750884059580462430558387778223255239667761361426085988991820752976581053470809136320150021434826087305996868667842983466564726615586301072601055224409022030718654620167593268104749848593170953202828762951062525282577708769954646460964834312059434640737530742947436816614295282470828256983968457985690596581692941750263004791826711341386145954021662622440335103831567062266412459412956883806137897135698237481795912278310812432664798124032244288478414922980448679044565950032853867619990756291529543627598059534178134293330064213395009562837645603602655124960113217032181541047878689880358400340829659410455457986626011854001241702356108515633272200250781265663307437650573380537402673666581166551843770835912786058741059362349920854371569418875569554527656364541276210209240052555128007857134080948383909072498213255331859345411177636091999320165786175355081343290203044174322099590700839288252113876107853518669359914713819429195855062428113116423267907106761614798309841087727808294069571361977726747594532396149147954434045397489428091766619938112141703116940450340487279876403450411939294856359067871518410095913202710455316784061198173595744476157552550181785179832848160549711554725371295181326780029944985004881761524101089147685636667771347605944677449544871981944239217764974103303071303830903618646352283095283129695632668253668480771549236927548903974695275345185329030246835948698257327941697548906384909676272660579673741329711946649449398095745713200750695290683619072977101907092318726804481629578879095039267053473666892938749207468279485450679362473273094171289118695963375990490751863648616658919681657181188276036186789838310349196882554508554696166885698380472819927379772546931682992345198242998826139645921292473747226594320245145151085914780257406455750244844303474852121615662995839684059985302136387366333987051627185568346423748446503038274771480221519429983875335630539771153700668785212025273885065043217214811343434283102607616147188828470758838844139886116980537164033022418671139774399791808278775711491270222794362329792731646856689809879544054309482716678356782403031153892902746840030638389667429092866104919420659455793421019403217702546021631181781832904856884232098193883549660696715876039343687171628557369608660424672491285171735727565821298811938637501730013142919589343575085303036201036867667987431844085974385478906111273892848682708999045165246494736421920167275423677986392587931807062373372426417119410796024144262032686678981650174073165222570813983339330153490863266488545535035147750118113542163057866810154535120998795473862672983324807064417797289444828293660724003965980701636410655471139967145445245486953318659985621528601940652031426501783132235891094780107274292277138485217545087183914227439090832355548464302619189182708890426039438814710193097319509207936109829643276297862116187592327105766395759899797517879902736608979509286078349204555843821004761129789176636726422041344509384542494037578814843284626524709731992911391567226753302426703554060557561909050184904529460049131440406176235512665207822844233019428691005445304503126078195506578949010319922113473590255457137360269017645800957181743532836170768467345507516597835553460935317104944899103063248042095443501209902631616260820255938990700525854705672188632134900315655441317980331883713680297235083914931237675313623663103228909531485816583241349749179018593332698210944930082430771877002835209504000866755556304414350872105578789175640933658387985759826308683891630610419065599914487150733888872469230956373961147083725951681387558207733771735853489501392351073048354985933760140125401179912122537310848716804778188473990950734097835122579279384895253161430745816079299663008361321157487566673879279707463075008762875342805847379227019982255417142109537553227418386738156456517148524314856690795558675677622228122547110970322436401942530740746954763214193656869292140203418826823839723011526793427686956888667543502817461443295336939963080950067477851915263068228634307317477033771240358280656168057494304331874668366893248128298567502354268816936785238945852257268281948750843463233081460750506056875237790923208159660994049787090783126835899381961395081304246738190465097354894522668903425723027415425334155961385625997364581785390501348232976002092267932314967441639459850579628643198972051576233461287768991249644433134372054098969433362493101868137955570137696778308657140254535299165114009614087116827622061042622448960141001155234928218251145350932002758050965732599286421058338083946484316901690642034201568397490673099062912008415514216687616613204445076573875915066416425838474541726943313131696017256456665495752982627366002171956249903797273251436227379005570603930569245329857470538398234753644669939164407599407892649487469691088676464572764433609884397870763571755783271712708483350922990416998745519889557158781017728576550304221533274097865495746204173493597806648861390687041098737039733827869302957640708727340210488960017441952621695447176422666030751347628338280854587153081786269032971786253226267092920547658615357384584257618867926221570119509525899438185978901988210808440011499972156955655996555305865131213381996090763141237695036224882282345382450034071428883560797641188022482660646379550921505932861836417009853977183378906591019382044809538789203420152942374669517298540565973491441691095417684176372225544987672368592231956971051656861416174138883619281550604514001829123427794300174270977838735918119730300691636276190412505708492859651147410719246684153122019578187724640168651629862686037437801307388618386550339370357150955011500115795998020267044366229192776653765521978859888175897234481799982850278952886204498290836245794405333513294376514458041693516116997018734870685263527749545009167905546115709235285010729548202332394995427085355870219097233572355756776091960317216132567580314200828720221732638165622656419961544353949706966372560541056008438510010567463592176254641980642670010194745098205631244857945917893137953097504646134933481613629641945072785831452851962810203059191083209696555067180385314914734407270821857222393536891690020570293751299899761058542877000046475314992243201209313673561162501293551842144855765009099654799246260489731430749986226145822090282347645395798357119094554821532940214951670076075633911715901469349277562028874584706401332167035710044875981570910688689978677510361070736279136387667676051107082693447281286140804781294874901116280194731446591082643780307633972899275235237363011498476848277598972269800914772090818513307855593085324459283599089395948989196732721294707816635135675950748275085762444969825316276852037005162985575646105295772460762479468286760267877192306258153120057679856050001388830267792829890220494415512079400245816658320294986544746190079911371306119660982713675197821950370141171814713202380553386573048738494343342878578285695972586550581649911980859824635403678557709690306315545530241717670342973735426693745679724617750758185317037953875225956427538118442983611706593707994946394149002382243145460720232303612062851901224162442791459435727308427848329589172418781087249401040072811350764886526492095293630968465187772129080236244187509571119241287211992550625906287177829002733286811789053792021553800280850447784522648250919949626877077273087949728266944700482665477231719856723013006259282821015891218261377359124488603381867200768748141481790631224577261155022219949790619594597266019925328878451243281282626071255433385354232078191636977879830025193417667283217255106742858543957960605478073557690790620316918045564839680381078424187715523735700585770604081705999375624156904690465863160211466897786894824731334660437926975497680177853111480600470626423267614389250069381317481922483611959681627503896644100015501772775039588754588429434703121155118086501587336893703567010146368266782210149321288595365496411382737783410112005760485258148583904538853554498156365169830668513339747261318721792204632518122148657369092915471406064375044728183608345853528091803746979705412470517033671209390000777166224372578681150926138374632268033801773251483902622045745736934252012271831092443468221614245983630604157380435795178049686362946115753536010270678178811551114638646087524470023410371967893575939713939731836961117271122756935392165403901049380538339555206859992497023250799438750924359665888565167088607372086968470823959755340350656360712960032294127381348831470161841874966584252740130588737944717125777181766975336275387990544234055979130503799790283204862014688957499528664735917112733616779925855527667624454532509986782252858516475421421251142672896727522241107543412387776421539532159270202565116566970928590293014233496152037413817358879263264289298493185103520554197655554289720445789400749048009292125929196316501158842618379393179892271760170994320838326524320653501440027004794305023390245822710492215178674050303346320320551443447046536279071852742214450432322064507601708585595941458180626171958417200670971880889575763126120978761097279107211466770721240172771843661312490687514741814594192610773011901765396510123589954650633650546037377256125854785125311074140493977779583510369631033794868054333663471388515972388945494757917862308372019977386078414976975812213878339530354458240404950423468632356751321964514111669606664765884704577920906400158206687365040355178051902890023274545312167377055425349140683849086347384192745932717686623471778167110738107851189768235330819022154495283953157626712386951713396551696174271552663098944949555022601392392564899987565365460204061234905905208761436665328343913087933545197624692341004395305210867400123603443236884935471991296946999969088212495081568727391578971391862858583716824316398379189468615636962609266640630764198450422917577773220178448635610452396134408157224534535311759242541244657636636288028692310805511838806635600083101640080787076329880999836753304116449592076190484105620532175531039618118799965546282420386439941353100385935820087916093283675602846111889829823485308450938173795485337524015504646257524864448384772717117235052426665087352686094607696975775917099371679878428341646974403391715234378370708056392410375846249897754199701167299942425979149060135862228989439734832458705864760836669365769232847407814950336556288966083316416037718443273303725253123826652177090922173768975566551448022338343975688515898831756070475592931050348616820379235156209658976690483164208027542664621731219549576283058769649448096353167908780941012772053138043955777681087625859165981284039905177981235460938040338503093815802347845641487732839759644935493627215196783415221470362847303378654339674290240406803850971947560604267788081319319825456323720455769848860438168951304187066861743724162997605119264238606642045197520431124138222646748543910796887092718393405707094146090772862717853093085009743832462113314118217194552529707765122766059355994594946916849899392991263999852754357146480146543454094952779676302520031775896810850581606590832839853307870689746596039991714111279376855754776035110391412341604908758581262664530787814296426504751086293065021852251564817730229697349155205636424704224043184417249879694727846909220765608760693185919033989646910552368254907469086236441940974376754939261294431317729013304220104973290509472440722170622276387733900451030791755360235641272500926419980650335232388062612339613442257889450610443901998102798071516014366639352618549795573654987354168378060507040016979160093826968784981647728249944195085604751732933591548948531200576205056067976299778446037918442368264867493147750177284890232651925794683744120155550605232311828614833599835705316229909498766926283888557379831147392272983579478644023053664235235061559830745206970128030815622531317152850478934467521335384590793448945922013315899794695095995884193596819782519480767813781552684738778049508078111303908211490504227913002844523811314191745561177939526356787746476699312270242236360264017281602070507098772809420830392447447394550936088220883654817960894839162706311682972656748101829664330103685846858717968548292121219588665253612512420306024700131174406643632035581488858359738022460615979586416785100349583790334208379135277755414893311665639642003102324691008327556730481689108176147991092449359551567128820979564465282875930851966317190710063788633792105520423892884681882985420111531292061168535397733778300071931430041352566737586340054187368324325163952715625808823906091165225906466214207485102407493894956014343000550909916641806497122010595907532530013102445683970023709597480388617482914182616169815126218153580705885947217132945967253297931855386109890984914549310509708562653247629888117066847548600113222532671019993656051525837878609922432198495118772313982276850402601305776618098214672181507783077990737001357248175763566234382580090657172513649449715806227866625176311429758052562463386771675582476261312322854234962914749001826213096150588734907068719355593888124138097072938108020805183937992047298923470164047402928500434219697003122368334291205053645679370298731299180004413400620852762324875277594973427121731786678024901447715069805199222013276584806576112212163697942761145597525426917627133434143306721137780658220642145853025089935785201650992197957821819043642377190185217712457526321329161719520095847571228287557431124550513293818534312675052363402886812992292800999943630684239297535043932790031154352081341932257140470363580815860653402497497778268314809896598227623964943157599613687140191652647583126236754130997789586757505043596870902040565476530727703752264319149025890543273424730060590034182106435819370771161582811786344219770297547622863840061698603867910122859172165320443916375270187480238563663816912407471670286535175527254474852615440263092520834381779109671284491188056739145033985747646598924331166638456849885015568150606005771493868775894003223229676859370735423812362218189930382699501772838715783786297859481130690397778318740144656159703974222243390454591546176357712488522135869762947126003796344528213308168680375939550414895133454205253628366712242566988034140472099033985483714325166065555219723382602993760243860891699948074611190167875838775812102326467004964406894878588150542072475057858126812498398898461259502364834723472678624669081602342898871466743175685437603290815614647601209824663140718034402950238018887783425790910682858087657277835988682861355409364565794252806357848535194804917786627385947635630135693214934576386840072398090350490717572594043581997823243641521741711151130801862832416250558618660301527017744602532830089107571053152298365416685930556571904287292546271564569513998901070336504335347548024068533832648639107291646931409928848800285237594921746226718774749646579363275126859483992327062161417226111028046605662503192889251854532548406946499151109253021685420573887234327975282700151839146635739236640253739125092388898534156309046698397605176604951500733709442747412187374520587630835733087430912868244850657005144183974045477865347738590085394225520027154672588637052103909253035639205301829997444510570565587346428890119902730744179927766916282218229056668628181697169293003105590212879647147035182961248328390593049170348371191966313782727693263801613655172226576734319856491600806597182987634129989233776503819059091633455380310168706326226412967931828427253175700929369963826257701702610579758186726906867930089162692091568435684665025659702697808746949813157353888552055150754191811067716666776104820631353659623726298896654512445324425972268951694673295453913269774981428188992820151024630637739824210656182734982524137354093509038460448578954607394346864755447798988790023199152674047084504658851504325592670344579691342338215842844728365903487741933381432132326591520274736869447570309886548028331479090622038302327340207461905685540279349405264815608856499670644301617559086015302804992825598396086372954190278166353402633939992264881331291813593498886659376714438005275331507326377071339504538395763846477429404926711197664823859072554733926621694890288489862209859575221728616938582977220473338497150129063373752469820487287975736368235445907972027245571731425458913122477640640175582811485140051541852063647618411834233327606884286571263426240829636777759866099863352779251066832803309114758878944857124466084224646684872235392792091293757293275119814697689338672384312238355576548422599583844138113523349469068088623605716849604204874430962981959159089453582687325408291056751505821813088666224832764529017653061582000081736781428492038653911405550169345719829607349069433206746483671190914921834795930965992129683992214250686498470975513248534387185690351603029389372053776234510116960398552450604028673211511935752392403692458424168850029674653565826060718717255616905308092102289002041612563488894867345293056338221304439668285155661707055010058967944648107287610943510718309280179973757590427028189784684897939186512769278208275655060269644687954922590297396345988299757138606285521486446935616137641139964598989654891850446873410889917705438079206102564026607636522302689316228187578197488748190330260740841167895634828705672990718408694205081581890153083602678369220984412811740606886755921665146493339274203052773983933522464863575607839333854669616733285616923646787600470641745280108113470460979830817196188455773652281793530281306674739789987903593327298661130336212550340208125510198773471062479733080355076001168891199748203979536496890775423924625945530412929495901462453603853794371541102147910002552176716744606749021010775878284501076522317299948526734536955033982909839258864767460957224736987915414029296614350281547322223457121682032124828049381081736296214641549819419400171260769699640555275976493737950177389616672529019818128995250109088300370943787447816332439550095813799319443960978535244231804451384683115328761490933085496007541197105076784189891515788618304128760558860677555220242600234308532314120831473011546757595573837932247096234548193748298812371916467611870661559112632479743407346162209982560906335820117175870086660796783216734119467963617777854592432300731730834570759846898764204207670492409777061066668206106110158437941157690302837767913211379174314174769788503242114384343273517594792095492003562712496976757495021414179724552419115854375963871982151388468798146260517855899412736876625984128862128141327178740204271060014985655043053250600163714000780605970234902900164059555811859064604704208776926427460568434305126365513087929341366641079543836841979484526233645852861779750729211108406169345845170645860893308145754513758636177060187268752226286935596608278947356408699372922036310895500150136959116561100265865534602181180111629891451007372030074340207399920261478342186183884865358691662371569072185010337147953994744902057716135928089783463361166861138051875697436308013738525516894776688164410114603372499297235997367284538140258694164462227260456901411169243758564389772686272145830442613430911804887914630008208697379448152468789582851430781452833761029994966692139803138483539630757230766063085172637090993602732144987580416445510252012187787719558450503863735134564185618841139831742316509962544215064357428799865555990009637088185663024479123469757582902420609421630446950638645147284768889297787576767357501321923160334554653122620214675069480885727468963226657216343842289400996905004650980348051555544505003823999302460516314282292879237992508532590035709976130676480792809194414194089579655318387476582470170168742511915311560156560755571251105954228621899932443601753962676954512365992692794746386129041919569636041773340407914301086226613690465030672484991523923720409153159705955177372970534977973573921989310520684672620361470109049007556611398561860301840812986535203654813501528816162596526378937618480535367632267145823923424549534964303430316592456854319644386161683588985455202028224526110779712896445054721350983929124047394803643339482030570021999279115254387193316323008434709733481834889243427291896497034070135905751126067800755050596862325689292795879675834609591379706326008621055885732011176709600701416488017887222648174178536322873269303381422949351133844082430715464662065165823723873367021899258909453501814000066236689997022251631085876885806657506150295589781107736843825274986864187258884233290275543202370659839711513795395816706285765016982728145275094983665551975371838719879952790060542997612382561571197012315228129369011263590500643819700638617921853614007791193335659760233549845750924328021265801496193373744309711158849163133020586448881454313317009831500036464171770203341488341630442075747447000157116101185364074781691442166008218957000610889514243827862163226114908840465779341304762664431760568179508384298844467310782677506297032688553083714390169020800548844403752418798612419955389200837122106780242768564390688589021362711829849213142092230500938332188705294274122687058722515351192478449692646977815131839624434813251006770909317324208562883633016740728138387980051350112999920922191681437226802616791578197810969993292272263228614889431108562801117420703491983183549537381906831404302802328425555836534714464651076267343851927152832323431420936086775852360920593102784684655210818413737170804361006390294066051198401953088205805705581944929414790771949577671635426917770798138604804387147278416901611518398190992215156228827725212890204697478909990281435894445012771329862209071208533536380626853397568790683936792582780579586961874978959903351964622009625123507231528782353074789163258493081670153187252929581139406979772874152660270889896812865608462209000842123009469814827822085183244540419051439646559439248059585813751188985443212818151208852624266662107304863634336094435105093141523783763612630720271836122947257293128050077841577503063123669929872100626232487617324943592432435841708869298745585091233021291641897664380729236361221124979896856140915048060002350236000687152742874023644372262182969975006379383071977270421110464863712821039198679980440462826995537959699717482031789227846721090762436547544088364261183484869110388905091073748437589209980838010092939520210693239974294814715317228940189110785313040657248722486743408394742104179400639244764707993965672274307602104713484001012989319780373037539631271009431691164089244921858348790375048495239964691763206433484734296122160346945516322198611715844946495236095602486428906530644878803148236423693037494269309409227784201404483923219114192573881203558990873438737215758033450102635355604337080734028753408412872870131135169375721379561466392624290310302683771736088680816436651129556719638137455658333789638550425857076435073583556285694125486329590183446154369298401297088023531967696736236481084915004133165802657615244910432730573025578254028175583093881570104531787526310958190932396741174886235905056779262308595345705458609439604620092295440531531961854137247389103949696826822360449304054733780970720363184746976476515411061813096562071995745324571806824324243459974794834639446805382889314837346061299709373948495804582672827065019933013049918999437585511954050370619576094723859139089632346377060120149169290899455512478226895844777686486439261962318196458615872943516918552156744024554608645351574739312681269310110100122260607766134402293958548315512272520903490952210284879549728502280581201314432723815582976455928615989928899630501949238105103440803299647895744273010582094251786250608064334608460703786237565421164865101054418382202781926655197519212879129934811605429929554497673347067193715750752782436992911629818435855898770021544070605242568683246451314421639452088915056894383662663780521619476188080407324463099160070458840243671344932944494908692901920925114888008026786547427106755851641455389334912152780875592365379810765291834413468399276653077465700843118413482567612543612354787525916122754067728102560378427575328224362516343872583000475558636402382908714211097736130745716929241061566406271310709295852272885896301205917803323416230917856103205568117964781915691263541854915616411727861031676430996169883020066763042970558014690853532787635084617683157743901803068026395041298181659873621468464288217491824821800495442324996618255867839968122485997903609749416129720245131701710594651190420861401872339663151104735470476888527510265674466986533934983615031653007288337934257963381670111959751535672660626214953549231665247187958670450352980016739391632144369558395178372018939044700178789899743867660984842772792121520569170308506430700388688186961036449379244676260537800768082759338304213025618430577139130851019637202002995972326871519595209579408989713936120061604526820013734402815697998730214154772916260613136739821200981659122464611971854432920038128691638744214481481531836042129915376609570583005966919628721932658824252491337112000998937773801874652783407402512911351403975986525458077999923075837727318460679593751554387387650598851744663824939897319084931002383650840530256165068142103920708687638017969155170452936127091420844078549317514000366588349723146057652091516082856334176539209309420022540410835272798298637724535152948510838428106038823776802821120429103598666885401799098734361374087608827536619490217144095781297814441542504143322700234785697021651204484781689559900891310924521312484200374176728856033593611387172537379399084912652022608427560433921759566719149945908340688974093894641589938751552428752690159220543229561013616721080853049311733169004483969207714758651615179356775819878334452146073910360373296422575385226104070183114836670045458692361716818475996198852622063236999219653378501629338232337414387781030860607662052256190205344651328291363355129958820613738707456962975877799475630587522931718123029196348062171350647570522703791583796921711823318283535707076812735200395760210610075081906448226461692443210940266019638212157468924119180352666446596884207640370773249974057823266994718059242028198916979662138697608267389055321956020668368769243179168301639853353178602943819115711750950493334240413502087655838018370594302606572422239932813910266048144726623068296659847186892013244679515089716799103046120348429169220777082474707298654607605698269124077254633830296869819189791079179318323857562166581423611379041874956036211488464959372846285301727523196472046516192127376763010240248412778274010948431200302600704470002964714376261704734071597324838107730097306583270497104056206783607339918052349240802466558774131845683796140252259801412622007726759070235329911688299833872298752445069779459119180510176173045224940539425353451223292775649394110503795118416377112188912563454120407815519663939281993581469867233458095720864723477542836248135893636442160075174971373607095245426194993608644087920958031034949701342002531856785678174662261818525935851201189913870795065500717337470492220248705287848577261671129270153776281538206593241399954580858566115568579315562222056787708163546272483127826365047972584110142599629452864199763317966433099317643042024336739642073426542223610522499466623407961095953040894189231710710036332567106446188310225390987156134089454498417718291744077666594101303971372750299391769638384662156411567918765175512409010980921718973087192515287186838411265154247151110241781985528015599845145020505177695191026100781250250114346292207781256630177506601336961713784152668368617585342614144987638224422252376789733977245255322977239454930903240589844853703106667756541776588984277733519208666470712722163899150384721305964987372282165509527870599360236730667369413682877728359942480093046159155249914450173442603978833962176528446493750839548039103575006259447961638769379153056588630307409143892641017537200643892791732672785072928811724991076120294390273277574620988620787778261816064683343386479965407894015503581545401628497251528383378973164543918158681717772887826428918629294260522289510022751258775831855660874833641105853372288395484375481384534485265905723208323317593595153344904334870978662068846099694208629695473111194832768766044126422100029217194909451542350836512402355953323469466493371398217545137542712457001554386677830990460659515684556622731987975065269197915782202032806973690210949379563299826681006963115349087788327895459070374907832981132298497521873772882761001620513748480523823100415935378962876774302041077134677608629435252146745181736689086947864123555117646426977182990400425127641828732229893594031719518214654650620466597439520798727343065401390097755526595782861448899470675176599040343697474330346623848438076141931805347017111643198674988054074198921821155203386699590083000000622164239744149695828683399557186735080247749835823242756473926872063353183287352119610102293530064501927772921472759649665981321754505790408700454134573973459275370152469022236565021880556507782046592138800211544957342036560142890994247276748308429890139261048569229929181474000682891741185380047848831311647834914682686948196872162119055571709742289418880942567341292156751946622906279781193601945778890476568414303080570609199075154153916327851307151358356888730190918744650982791837009875536090533569874930189935212533246053063029740821807590360178409854188681658190206823304997361603477516412891510276476434791346741727113744448359516114211756093325463552540355023702890536138913675061375267980015949240148156250822184449776919976859151807729198628589201260008690420592783491040446777700430892856714417858997957329056137545743441938281057210461331984483856796302996701832355414123894657042580111304818594592499698135931377137444302603217504784875698496507292387486101692701240860251330656912713963978965662526674758387787737288382768985861651696336398576240355303859169718270866617524542178515068257654996939021211701573533332848868573322138057602220366321875235040521839976156722546925253814849470309147992553211322516204747457619835108186399591204373162746693401738488924832472037079957333980209030089046110285028391376068982464457281430448099468880940297047400875844504006782805718739471138395836999361913056858687638055423373478976272497488465182460829034548973993249037691578545388227472959453203829466813976426734326002508714085799633380923377836779499883370572358313637923091160491192893478413942085191622270853400753437691680346887404937461063015075976436191691578516129145364908756025539524095849283892990405486754709736657935180099860624344381183133770923051277930639642089525869590229391384842054460369813998854268419759439997496953213575733703644400747697696143183372655958867692698469670806381161515528938651241278788498141170285484185602960867882337059454127497951155432422638456951389821191734637828155193964521563581004648617663050793374183826758847105965461928537966726604974130834922034605815569155056503943469107529906957418538755399803365754529282253774549875140375370219932306411108551041305525459927369550116453734503119133343226785623362451744508901462899849327585254567085043417246367890127282001505296545999936818348598478410408686711808523844399313664198361169009815949526659012771603093869100422863001950778843855185855326717101354250732679868006968613557303205571893390208022040489918817114194881748371965622886681242033709371251004466092670004041561101406528073301302681457893967952610459455207764189273072058198458250009448612644909025658077769471056359799725625612699573210677414452106172278556309930982333690072079218407170647516590246446461080061599864493004450496508337304789023055983439076793775902049067225590149766417732191458885988164750774767925445566539195277540947493566309095893429841136737642425008583407075407654599067305693235814122536699453661815478746021632173498118098982859566302796769557575715946068168359911546389195149317977338465373604793587643119358165969239330853098319011281281012136215301463318082935520722368592532386669051456103185298409158503029123171971949174566257644692838308885744054615080392832673447681671223392059948675467050240596554640629726227342089934121625109166804616018847801066197444673232621736517402668546573992222278936896317896772204285509078993725069837413213890906085922037688941874303668949051575081088887607662503446780530137751984836304974928836280402513174461278804002455899011302126370759948845986849424955350801397367414761644335896139021229518724491152342656847481132804918580481090918459102810245527655101040995500051222560432745114238812447059742833824702931296183427528095331407292473359569444836545144015053232506684680417600085972087452712573409412648422563183805767200571251023045947441120423523240926679266948723530336246686080276821395450226112596836126356783048317968709376549147935171782030900921386209809192033395080228536282375523788112340602374810607975494579162313623413145199369184516958597134946955113616121261907084062485110449126447875040397231705355133555693195229955212169274781674922136563772814391868293044024204872478049784091237513924142992348751299270189603767800014130308285928156241551888059572853606879960362269697856231949222622392466103652429136326311497783123913131001496862737639196030280136896742617574506949577337924830541880823787003070011351495608455851924895932989957435319386460070636518128820112554173574567570590661527711776345435766970746886911221394729509813549907970050929811621101758946790442337633635394846656121705389551849543717116671656745823961808856678288726376084816685549308646590464137061832787186591648966361667176994283606711371712624155508570345854364405116537334461358828440519338356229321318568933114669986135238139256104025909707270010144014486202300046642089347674657668026071959050545822349739576644589196890685148933844447322531039547908239958350635739959242215230458543464283491179199521275504118114375603893273863372465581873118612082738159087267175027911750785036326401016003605056893629168623548398530640143142102647451952227152918429862122774670181021959105282780740518810753473598046455527246182910709697536089028129204352384593982380473356233247657718723010325861216525363679849848178410870219450103041442475059244338230758144519719129597923795139776881215410777937133111586470551152638279115145853939614314939979550905099422549734085701655609028852640318610562216867032124823895301346439104645731819409945034947303252659052478817377164686415391605529309625606576199662839477894698086409757646393233679590422093592129282002213050459005365735275156523082991663548829045493599261289902855915151222270009394370956416242820796470790646052539577219559427216112383345160102751679817798816087181645011004555157283410183270975802502556630140835589401888912137580665796193701236329800659947323921452438324296480176623973273590877167451985425603331575607269411109978696587842415106621643994464773010099291760862071427636740754955365849252740064322011842574614118192234092402516268687282771912475299658445364363382031244539333185643386385123921048324807358244758295821127749982045789372776710912591281246602440237562547532736112904704025537369483205324782602253346502711287885209481878283564622800195353329101786084228922124428114222483879333326719237903785041987222842186667486053630506854210975823524714068467731452418216143071264652624357731544650598572932833630011324358764383826511183264024623439785914146639887320453987851431613439107496535850487415822660299714990565865256158741462008038915887670460042640267721415384314533057515502243949484598878573954499846057246669482093033754583414299094547697860563776421656062969457562791653725712621398121461420453134345006865300238612213876707482466354580276716733751791407638623405870924862864764617496933296844265889531914979320262638711795586926457520108155089111245417306658871452502105719517519301406577835865422058826300581035820892869444544171476323731801533532606098148130450656619326844174473605757551744851676910545963421255196015164804776388408924718261722347292191124695408466387994175937662075824780364062234182572710526647332853188011408278798179313758331571110842211940822558473763923891179327531041111808767294237052963827039773955204966386052739921308460591540316975611634551885315648888650281581641867952693659958950959543227077034834255755249156703521724558566636392744849735407211601554416701631152655895928095725264611698081119517129844257224105871773957260711675775225211095085893613674520222040610131654094661612743887483383947900537095973328422285987217806990430165899732321179907283382919514179501443731040489230942609512893684740797558797572714132472559568873777694691631534927642933204282698754187366503244905920128125001829054056601329682171087568103892321587908145039230986080086184513323337010152563386781021560367342653296012471498451536815079614742564721708465525802155541856449106239747708877112255845491330744812834088465814960305514109824852683286449228408826330414132608372103614033089937749053827452233998035448822071619646434418026087721551934253962444707397767718817786807256810969131811753448497868943339584819396827367677285789558253958945032089661841240490764236147622443003596190411074231963675982648622221162252488965208976897249278986902542382565064029735726110398576113689976507776106001157821720913193513427516653950244276409390330466463365938108623198250211476739896035109727113022340058729184004725873859580325401733769001189188535252477862376503389081299838456394701589270487393927360051564106436805893642222179112661662880236639532813955812675277698857525660747442651984117342305875104074330771794427385347910049842891372992468920699282866168733789997544824112492264382589374357603315057825798332719366011028734893028893483653748280229572127264202601256394192355052026914421979155657121459575158118033073337035569457781093001770732612816871152624246109563264958867272992996204517651874413004390573738860677111829471408692738588422661794533996543799274695472760674348481985882063569179244136332493874270334859312994124614430151651655371318242871014528244327102648596203010643973156226786994693273799975370086846003854990077290466076861488081508071161304656123633855830235699871256073489553815321507181058506060934159287256021358616371267954848872976809968646390697809314342642742549214633906000171056729795509732015238292187254525468623320860921275619697316581685593504781389031701005365765654111340168474134686120428738417849338410713827688315434302290554095643821285794212634150258180317658829388494353394510085548871487639657144971999096565579762651830613939727044438934404370157207710916385566478539183758352163544595980141898011721404581405083089992787006854266345551612175598012894139624905280459314698594172896521634000856541127729556978132391201383337096305130808149916725678085418656577891906987297657423396308348268345724477751159198775924027900674435987364674896193790981930450383946212140452170872215372327323474991251341626657186747749508875940852165682385678966770460449706950855714995299933117291155811574240750669330950268121428087199962656890974680143902128734946502398092186976910834673260331248982654197191511541948899040818903351673940452804982553114467647049001702749328875784306302992764288792574099311093202115514066856792602376548671738913937317138310002458358513710939415316852672088402822796548773926787723068767812467258380368437544024823538901057775567608722615580827778754366147599605547243419888751001362202689023335089142106878317165059285678097313473026407091762691686798044248077344192626383958160834335583016261385472899518638951387568297725086933207466384357338475397327878318263148822224357105410812343518411184082429796190672889105782787324071264250765012131103373812220885136887621929185790985477832160826066120620106579399501409502879741431267285292107731481586339946874438935494797567202340955905169271769762707580484812146822926802614331938048406868683709249739507411365784042488924629711508297797273868326329143646998211665807850874270477879099306334096606560594965212147985546662656422750590159680628282355348222220946865236195136761805450119854259450665582688340013402258405512388617534989645158877443207103710090667122698052338783815855683433977400318086086591395608406217730321055813843892492682589378324037044950939304368736132595690090169427990418470061560479291674662997851585945360410695714506869525250250172598429214152909925927008151813737927972415281495193078918248333595471672628666460069512323572036975831248169601685321071273167280676658872211548868465127185193636965801800998068763735991665467485330124953672931266232506154985652454658042161645505699647937850910352024292826624338430726463438891931860807249054395093827989278033211265462490577376102430491908315878102302509346280071367478155549786316486947676255052693579584675133863266252945837976184544358917983707916601765189669780990957622349021567675128531670895278586438446971329476062938184992375162891684983922055983426453603664336823818767760784762902368252331625894756803875168856283006155205015070908267392823426886310638262859433194490776365314175017121602212260856202029043688364168462857554764255430466209721747433822709613515555710681765819048461874455339080081942103201035116353121354487137090237727263679446329912617958297496546108016481249963411903589631644467427025793075549952018719908086847559030179226968610030390430155174610276079869459051753521849551719621199142589528710009606134048115469686793129726473567831183366051993443824039072660345335030178017549544609700266793842292474710532046973340451334812730413632334827383774940229334519657777694301124954629605736535806671849989452108323806288943180897737832049230119171429363853666518429031660805609327204967593290441802799045656344303765900529721705416727330731604655587327918890635291704569575635765940038303449664208497935973528748242568412677665447017905027483816471212397136903836717001692884627851588957050651884654592758600878839501614730010877977013926082504936210742424900479174497696822445544449778632122775434042651640959524294109317018173130937020588858680586898839616664190781254142189316295303225811200003390105648766581926729324202798658905830196437977512167047648363249930854071322475133172394401486077974959581174252541912598835583719709419934987140695501344476374140016086298739043408324696256316591192010747431508170145455957948012309995177864568232135886372558037879004114833747322913507605078939722473336992643724004363936539623131284516281438966113618690015362154293047500159161073562666951564470865815859984217320854229547229500521550148019950893791362489370500351624963944650337805830984460510031740347274106311679416795893301886610374407760120941645453439253340754795573289913589869088181592637880534286951338764127327215134947732300657264852486558039568602561193931511972267031973002020602769836572867168529100824212620669653795060876710298923783987247123545107582631191785479616766525113014972093722001678214122302800080425851089543743420938391900196929507756517117159827920318484077539796572180292955346536121567757472534436220807483099036269433373992233390657977044547428251528330214357080284661688373345909142816972088916047674527485617987447508565034086683638423660255920279322711245314455964655181074639738125721872412898468045636175100464129267005199899913617427160985556420520729998096768987685686396201713423772126640780648475440976051967196696091611810840602939396532827262267870686611213189055951794063903155251796384597673904815041338628256082365916735640513823912626876484889146208118460846201198774512985695540797561696105413962209981083858129230085700858070548892895901388813041078374049182858145615098816897200023723711567460762902487376759016706700459124787747374955633699974973113516115186899959391365770242500240207628276561489139432964660714698464484844287659255192908502337036959244784301472467529350621219734217278401770742801995056409168664676028969934501950181802596937637812702889573504802610677970753812133306342483214110837446387733632924327476307979888831042960771355926125762533592875189246270716455525470031553967015524081293919364335097228893620818601990454558625143449351340339588775769568894127465249693656071806922325502014532671331984036987783988835628566817891136572169369818003260407702425774074503666435863713760284746262110839206734793099247697208292692630056517571551547807387377067022473780072171579132456920278493032309593203860112480670314501492878662811188742993603894041197545882693567742615728350038077428107515318362411541481442888264460787069908502282540095464226753388226230748423839859521938636825126871924841213879927700453241225611315615980844279392455649478365195447814953470650351391328516022466171359991118891910136323671523799166231642291571626401125185088831231254693789085141242775462681035095503571813079376550223463164149577325536324533255633206884567581341013451022374007128317234040863018074292653414515247463744791408981010411877099204488377279799395741949484410424999500197587886716947264776012306751693739598784763496521835049628767987824442479139167933543807885653716463459895863240269079042110939326405288408258129611667176003858301061360347697025179031841461174761292139636948950753760708886126749961408170048671404983008199630944514809140940727813329567622190395387514422365699480937439059577171747149370349402510482565206115804940603344649168400861982176616242942260050926160357236421736278757408068002406687699082975267954523896959071735024526622351061551878480535746978550034576133876109489950996053987095595462543345667435666342463844242959874006329309664218504392324612922245448959103570722215779090530119873643079773093044465640885256793195618047124831882908195808861872027803827648261282766547230447465862874380256106597591110069130963874703854791501352874762650174495451750468579864749309977282501698723181154391024971994599601290204400590137353581574953388236376545803753191726011914199414291954493762478496685534827365201944002252941140986128961574930108559124134101481403989412314829606776156523935480423710857017743611478702536817069595481265000413871742100827303906505870762078890426847412959584953357069281128533673830433299939459900855180797353878520605699768482715786169752044215884829701977818960576706396996512599836951644905194974579075386047145951810163179837450783654826956609596108543080653501969604873422600561339754482116604761919531739101600882050791783832447745137897406892601841384843524276002217571053091724080778443964319193084535248369345970196087786806822893946054971365677926533288978603875842026770562150689813398857255128000869371534236284440851968022888200684622204551238454107016962888969063439517147290983099804725153209414680222662912848459678916259657134603948870709841534227254419976968709982870815341495009254641151632430744246887788278082379386955426428680956326242991878987584582252327735722728694254803589702260529786732894646059824535725115430363274448597379738767710911742253058825078351655049016451958656878012964843301655819822318446567836701703551460976079882369787037814414022166093389860984029375347828187567178872980044160378225336009775251980491058226982047296619806993598917351588067571751863953780504235864786718352563488874649608075127110569385598973931057478649417927990962341169664313588227713572324804317592119925016921365934326937038542398529510286946570716453108446551776135875272155028404363536577608181717104369044651148575544246104634166276533104227113179752846503435453802306386723547758018222927055734264373253131296393185876292719900689728314016918413781574083923981428180969359738964708763984150145820474280288727253959916544186675202460255138451462220124283197470869384230385343434166285437459909025874569916822810402447630762602947355256529060399786501786159521128794757115718945085288529536011856032274560888702134906307623352672054699097658650770445472243261782149034756549406253584944405245916080488925813544347994926618076499473888058729194637721510262171579503740314649773326133202759727846899776137364219928111757116658336697857893356300120421205797530057011572442537901939723373291340887313159253468066149949988167601213234774321831996538402175192613123587865505845124380078899042511401522151932790835555749845275320646471484119114261104509991962273593827565168116864266138198994257202454481047806465050235909959071323067943015583862604836945650723856523928883152121431221994325565450326884139301375009366690492187873206400553445257157723370735812556581474553747910920091816545656812186102304599261595035240668656251009150669067348010792784794641935392878602878021714248819781047081993798805927528221617642188053808122508863351702678021571248515272906767350194354795089862947698815102213749128372364558034444138789106214697263804173188189659757602972777983743079758990522644147146146823589999327548774879321678054675001009985471137576955324353316972892218097592562031226148774219476075285580033829489223496386528327280861106375075656415558885966510797596664958805977694713303661557495601912171648632055155656326949691773617570679114861057631745509262149585535968763637657192476397208077004833424762510196666005810449182802852849495401463500686292218682326683940441620002000521263791512111226870341573431580802664887493244556486177641986374942273508183846700842097843582094952892003810676126563152718354069042589896581768851557146938235415397565855490254962404247658081235690945355510928728908656930388084860569517979940551487759156786444901970723417306925345129528365691040234822784489599885980883466807346726088324602758334467849226229581802024267461978435832089440805573923715232721285186488613738912947147669863862224934984743937964698257010456458356014075468490104023332303930547891574879186554511638094721460367139397731553116510098417291696002628445878595837957930544885600722628676718893057554886220163561817977588421332130810161438743255205525322525291467503716964091487176699624666310273293994050481855401820693019057232556409483735610881765828777424145430927634249071095987956363006181764697345348805652401428553909742653699560342623334332262744285516756714668781763297986640644772884006930920621053943129616550303268315820368334704381082916491281171317035616455521821970027574662451686838376763312129855877420396655621199605763841589568673190570342448722573354378790782126617336886781323683989831617633673365639897769657785592444672029361453223573454041882157127613411688156335410778968605976151199859667685904467897298863071890840463135718048854857437527306580484662128955857647060443275038774688279876483083466695012265113972535694387681343822510387027132178748788823452896013090765575983466152063929658182896290557321815078916894571552005063487880372254468273228217957471044945216149022935101284686995213732126875745524522918592667538825972025400258636938360812320079322261770811675212794023266994993264700793486127106286056165011830425052773186838966269536780962960201905930322924294910655544264665298928925856526422424352160183612848839370277297611128929493682293240300851770925972412375821398277195372603922133495453800881762571740619240349296041159372486972854180519510658686318023320504172353535921697552274179556794788411943322467448571719635824685150666581253371386050178060836897937603915017181167136713906823101360867658089821641033142189639748608184918410875324899365170793266749477042864845273651804906686319831916568520121146905243948434571232314289800763549951890826865262246786145679688835376547542654966134538580676708724333071185369082696169098851644227324285134890611090086487293215701987783478248907138821958284609165427821236224764184694515351478902525774746681670598471936041440573174939448762337737310682287230373243925036281522131357358054757376319643679619551174596998211620270738097692826634819276726843319177806873873409991765461403847675682471886455746729678276154735903216926993041320789613075882314272705322034800871359497492118499185711902676413407001257430758717641465390111862978499554524236231827349948183104101311980937598665032138366014842906201771931118329505992172754167974140093570997999907313640225778632493243001375843633139805749697141256720697804743069881938110487775823899447874793686140915338739887048207672703598990457989784649621254176193859237672849818588586640605646318508584989762570042061901471855158517208151017326365113990870573244856350016905562808996112848348577251520765623070018782622462758550117128148877167113736999943923816966503204883603210216138873479287049043349086360457701759414444990355482434685730527754206579076045930759805397089206803565934022712809157648334142510854561263478157653210297342549059760416148530974587701007039372244026449425314456340500463684996794262592719671646868304406403010452765536195208410183262798043165558914106661171193166822585125307443757931221950984331544236431148549340027631559783504339903333039240163193340464113342426588044610078014188474888514148411276727552377641939642663418102148322933792090152821545680629411900780920158787219651151214583129221525043251439706771333010269324729176834090650134328385738250357160819849784669749870504593048232950941376186545735564076651499330366599981790306860514946525409423784471820371596731376709520864780048666623894383546825449698695551699732249240877198993462355975123084266184810011672953124485262181756965013895806208803827784781235044021507134463753674890539231718764937949339163152724456629574465420851209915286276145626259255464968387859112136312274208250121787599429985919371483478614329882352630968837041953255107338521184265459149671046395721831546970328595309223405432238742680172803536336404474056575627582951588871727689832143037731397718135002636215585513971082652101212420754562279801797536717503670336848182190836067188897673336780937228546129442446355532048630289456222628406462277813376093324872486670477998204916282563515983888367112268634916413985364037804458194980122561564084587897380662834087083952330810961484865874612272601386651489511595278688636486788866924643726859327728709014889125363368918467306666346109785942838192656891683046866150351233000673512007704029451567603570383609694298630454929096763390523991442627617308295746580807534355253700228522545285694703551312688911393981683015641642840279263667668801449083984010240922679304526777585635476729873309000966814319980058838080656277523868031969681584203954129026808923377567466650939544260044068226506715464501630315808252961010299129076013750275365464607369286773459012674977665640897827498789201937409497083983001316662272110859505918644093586986804736844658871077361303934554238936545425465943884624371273683483969852988973795952332849786722392276472832945331055689284689792864147153188168515464474391709207164355928758016347082574482592757164852594879548225711765010350788008436146257971647752707406341027582695300347827772492021567012131823887084111365253640809558071761821209361518516567660325286642900233958404533955075933784426096046200338373837285582820083515269111440584686981019575317670904974526550895995268853095441360120568505283502990205364166446948951130175441773476377555501972249834181824294853635354411189984843343903789864959426508853613723155304851417336202160875891319254378870722530106100347796692068944495588861188346896570147149345181552053979189870458206709188457982221762376502076693741014067507247258670257906311059376783185030378516641508029423186516554864884589445629216646609535432493942097063257510499563451434679232411338806714780445644926261699957228252084943743725344798770266703423652638196159978616044502714293661833302591681660183361426985377391209922659967766183959358836955951102519088056524567266039315898569861817891285790924151350207603715003064695889500941654021819448016031792500077912308410001118116702028032722823719278450176699817075869326652323003255521440126427836503583370296254857755967671540406569082923740461526109103916532936187783975910942557378322835070342776747287478054428685961607845733404609380824473295521142175113066920299538399042889836803563775442915888578711648386626269892157390087423409113072215975335801676853054542499978515652629090389180950396688681742410478253016699741276074860191696257485393178457380734770910024089563213111585994823349322192382154007768800030618365702099041968315992184474349090758689609205437985826828202186668393429936896612855425320689160012483716688302731579390687663786000650185593789458131981034004711461932624958109021864521581338112501374670627252850099531985492141029408062195627549729312613116236784753532963313916747517391236181387953548709384059120110452079580127693338666604348260068321387996904979098539548411846418158588399875768103346769273512171238126228978598224327177052110842017362289843710756753448619870029610763299602643480346750036896754441144602789397842787768678059108011996172799165258727721216091711151931158638925175476022849777741452155975749799088580894583956253103194921193872951845463813243453081940272865960774030496623803368809960204878475878688888773006753453892637527510175548907935702051152167386673167109872045955221795498561347990457518589449698503323233904480015516349600619433644485011021651001041098534631641062812586248756870226667860668265617187916432481575379136806808841824454426530070540883732885248839088342895965853016353806909266201775853511337416281989791343576489853216969463546564449233608024879616594206996963766422011937591504561362706776178568470651456329720098355071452493172748496008083134493387657965926756114972081648706006482039000761174293590001665324889043369205212708972584217329171453130119677251599642341265280944253823986032842653222994407356639359577437120777967787515060259341827386870022722209863561813562480456544510052339699632477096277177424898585109375527895362153858862227238019196432416494267680005763383246389260034893282160676258310882310707746373825355250294083789269565776125106273259589837438160448199732884112096243449015343492219658318586632864969829211904338934809359855062751080560426558916252728182822932657820143496831300909061699569289826968055440881765040328981658410022907152280515496392111930438711172069834270114684032161156675358315853825302885142703837368220307610746302157744533513951825689165027654316868932645857787948368130989507613031707913397719179465054656957419386908337234977307472951093710033854981817042250264991289121915493181836104903526552627206311061494274464053709880533330037192404236730125590037781139278781853106652285945853380056911077681537956829031009751634023711949735993063999779148839564922115624367855811353767575519699848863106727653205150387565127206802159641241524865460231681189896160617795646467292850353706517697705784373719493417775415286208163604848258752635199914757187113822612765623788818413195675170094944705816556458171007989578999745306752127936007199859864428081920542565895378740254735700441798491004586323864233456557289358942698697289734098528308034394490684519031058288843731229783856958146449978407393119213988589456807860525525160859019045349237148110944240665850157145735520038639664200684102639960180956203346999927018013093348440210663365626933571293774065641867893040421881888057285895948534845304142449995619844149044839842715463767841304886357335174985450969044976004183961674544940923717579262490550117064636422003964083978334007251829222071397523551718338658165169514980776413482684310414941591414815688238409998421980955057795288902008477669755917125532588164718540709487216041845554423347808264566167382726182955281323016467440191450447718792151277073499948625603789148639521201396581351068143834706898664998881772743300672738290077154724292770055265067300502896059085316824110986003274655397718989695048317388416807969397943323010819155968952829846594723222509269968800029655740283931635523465246678030390817111605864582783405144491090243343973368591922499549399704386508572140253093406895684942677322643090419808867117209690244765087086509690905661934732620550727287890388655912572038609541226827228102681676849765941582740585142354850205353106126485643769806950854030319751022686540704865026873492099217749819589835204795773055856778618751748878222661410286005551252448078996636732099347589771396378097422346860174213149565626938321552540527533596853836953295290830680582122773323816431435857742025092794801357878737857878937884188055354818153506327663404002129446760583158840301638108801265955032676018302599403131467298416536386549071358011803545323645707771889134874719002951612805760269083307730067999636440251262522519206084927408060424695506478647050792162885732182089886806344531724811136178035816566672012932281695550684388051510954437792327184731066607997270808708714056846718942869817834348870553957383815952735212771477077725111528871359954955906038405154329882771285836798259046352307826346574512476465676041665544763959034592702567159953623676136134668018734606670753291490409525747686389635408437474833081311127743051847412548813046547756154718477127108764335975111959106309050046942898202335850108432913374284147119107869102719101056765883149295944547972863893053928843849951457149126807879829381916511842547826237771916826734240334662085348453766682960087277882217813027737446336363305208210347781005623473374091896718108699251161680107838937056877380741343516310980810795060310712186776227445082287988976403369094401095776319575055273300741074018730008461288157827462618175249797588492765858895934925452090580059072726864759599564296007221244900193724271962736912569681163745636887815228484011725540487555471797072615136452033342249156421436255931022842176021951650360830929786727883474626770192504970660843350249980633595648095321921273378795016784003215661768507005196720866675366449245867899310714769064482066893121765756343845226046042587233769728382416639686243868740295625536722574820533791477961856594123069128246571243669347894158472549524902700372186164641019300299424786756796345525904932491986596428863633807064548653158773033268882430453766996323008284102697032555767039591374965134515441469755218519777851251982486107347815813809601806207070551145132557880060354338974650353987545231821215331267274152643463293397932659537000756300302603836798651725943144136129598539486215930676797448804222653597963143068344588664458008066440394838119548377471350929022094923998779435013054688147899547042529358659744038600571470558693732594939784366076545863858281419276687155052916502058267695792105090137354714560680699801471201493334185299555786045488587434181027243061219872802140596127924486810621933393228754552150791506432271655333229258691719694430293539695145330578984934473947062396364143137419907261750677389947120899001816639937714681430178281963848900880506434067711027718763918080448350265128790716102625931541832973292002189330846875852316499572109741344877639863650896914511131429020764889186427434282413559901248737771453626894422744592663808369937287381446420163972181624524588822849025132218422236182023350922981303753094146550094995597716289050413370739784165297340775224480147455584172856308623809881626975573233331141576713488804735551098260990755456779932893333213308003141700284281494805846654638766312076569085586944977381091129228032064536118748040144176086524639293887262853361238659917333597166368532212496971849005664108566367413659060448978228638408815200707146957200736981832455058355952008946615746355892884146371995251314025111306897741247586588036129436544570563063717963196461209288681885856049118264606641422244810030714912644271311432794182694593599505038091103302381673254731959912233404636662919084958442398981729527385052103591445921993375692587326031461677286444270069929790828728724525199160678969188940775669185220053476261526555937889051340341108255755914744435925517960976757281074187624065339710510063270136093419124340364760447819265112778919060380456236428475949801002403286246874788246358889725688918493506458497282551105786958305267587458337367521413262686236262856302600470198554654629456336183399472268129486828773582949860495596435938165878351731192746933651048143634961592519311859057253744341642225517092104013280843968014344782717393985702247931932107458362630593203878384295948213955018489529082896177040800626417416797603642789003581390694155917620617388145472435384008061798821743549842296122175865223707786900131801658552879037903104070813165669785853366963655708178088384846654249019549688153206102953551917243479974732512669720028218801491718851805911705242686552291374033868665333470924846925573156598788572336545000034340479245239525720506449759109571046931386170304037452140228705393258281236936883469726163645830926173061882203020023509090998121802248027859128549950680722484511169631947350259265695295878603722882780278478434019103635071938985074505128574740153804367725006771743419123099261081094882156363544152537441824059379937193240265340884379825016744000910668026703516027979738572489503814909078722715844349953409942447631319513581183449429206274321315263554678314134560975164780336192467801580549434100435339667970530411792833934129365090953326154490228436762721880604169783988742248220189541557929802391492750032922599899921351686992583398552358954287989125035708518552098208738306658391591950044650034287995581268462834036609354241856165082860157420800639750787442736998297606765167516950891018510494764222248969477280574547326210157991166772352411558841570532628639626045127530250216668093128077779080944782803663313508852921596799145472042108045835604878868567497421464159592806721353351886082826229343787568623594131380945621006121589601795256000834813988504334013436536469781641230492133577571258826105570378715055701288473281741406173926810597266295546389065153838282945225972957016876777025529566578172088287801119671946422731353118432045964741562114156497885381575508136654761375083969254606265894560864146868162763502474246363242003255435055410868478087908890453698863911308708609675729519984244185224183612264534089583409886106826223012336522521202257793370668337949058650316514648450127132534606567099333000810536249987098771811367159852422494256766179413808047982966704931808254080870221607009056507878157361276852397391299101210079213394476279169709036800047418231794927520516996713906996022606383864854515907851738039898991764356131162015009126268626434609947014190654920544267720452658103032721121045793629017470715869714805467896140004370467049937951189920933855792738154590210956097965616616578030163046887489100722612445886962889657802973831195562930306716396826532631689072842061907496897928230915691172615147391234737710214067185065541321858495686340575354161107605056974992659857150295525290100610175001582118153593712046452821220354976779186840579196463069298415388355276912066980486830376155203286612980159780113338574762219967326427254625490186286463234941991790492599477142465692393024032461880470852334172593510592673918915705821098421783575528071213490758289377412257683952584494910705271041881712246162177574571119455158682735185170641473929316364640724914367459591440345779660903146175837227328758055971007555100816829214815249192031133501443933538034672203310226707922985984851561630673913249408660928466187099078114985335495340105445495381174433534133506498043863109188238893206658389556669413630504556141747683874699968179148180418496041477642281575089378178400258811765939434069977328542743646837691152976317743428728046216204679089226688182665892942363114194599887261090201049880987829393836135283848112215828079927094632405005257882105941035969005705293475078022982276264646746100806031112691082287311725739036627840153330221109686446044626696365460071765880323692514300307835211953041211231847325558213115400953165828522151242971634263469604471361700687751219242547811397682445937729807366173938295199469613981342746480836705641510339330141637572990357392579329512362305788677993279233728786378342784271644581931859586276836267849337323397289530663818592196716103310701023955060748675617075104674858698962518104711711314735480161327026592104603266814355574562537778148342610752836857407614554186713908272517786247991368180590615007866899580709867367549705997201649392783721834069305078155871257725233429571413104295974259639196881001071408477668955578167040166544342680915599284919021306098889849073169820663948660665315826290211188886392005900691681436346914156408064994856680749813541595815521805717789778344546361469180190459706481433434161725088975619331614271752037831414313917815681177960577815994969506920015398170985327598224533919030718919154346541059921445715364298359663470820540868143778227001840340544031820594807451096863327613875901459427221601798999369735868529373896849703963055725525386536746515370433224140367843761776750463365171009148398562769769907011517358674949114240410222871574141816429533738296638656948595471374592823493811501020929050498291336783927281006884404479010398640735740799043205612807259752822939942746021481172224015345200266847230806925799401052384683724025474150187886089163948581053616951412155474334843062217761665004464063642438402042070601441835847580496986927370730549973058811783413637653505114512902211103446366017247839306361297603256574848892610566712249896049962064966083533438981597483254166551825439465620572333249664029754948928538273122401087560243125316211709327266129027142100228569323239616160584392233465862763903093171772262532328179180014078481363623186571827563657001291554192432982124200285788604253997599324355541212801126806399956522828883566874466277782818532294499182897795535941936058353020376604659638828171886882368863370841011718124528774789501264635034396921993086010816350957637117718571788827145352450956585507672236635024050063613040781591475376406970368201794575339245228107226742636062189478852776971503335444129284901445893493108474313086276231123409606614913631617825713274664122318826052490607664639726234639716807631045957068809065412375619902271361085019002085989994737964155107465312616997089969439276780616023304725946076642611414092992745499770843293118644682414036254325211271391784187138185221464232438560748401953383869615418965565183361769061511043011882255428782799996286749517218694044006344739318128386766094109535895596162177434065646626635048462268804622974349017088564387388497466930681549381973364688097431277260900272784747593464300630611648922676617933230554328614762412334800011176900905438115989879456589178614589542916988208415914567393010260743147786490707838333330786540157205629331347511600378205450909037862595308577854460481092697519586342963448432208180318808259515564738210246222336246829925588703952891741710102407814241952606702805973342273783865743197996674991893991812885508683228035787492087264129191624761625468919486364633530137818466674744293099080166431427508074469830854240930202117009977012846212469281211998368773521421178255201679698298692446189282078810743440460914462739056825675456167239957447661938887898732832293288659127749035668202124201947161346593643328665601438997583693100065417971954840283664076683705400193104406012777679031705511520251808889179523427201581229648299425163472484421401445136415620111169683926505611791359998585282221647893441126315403381906334269069204875626771360511373428714969199666371756900585224816513549444488224557035391609339801969744028851956561702885492456702635032601997616805518698476486846539746233176075595358754041354328095460571625658564246546205657084718368818948500688516419551783415173852283745027089844168088163904517350824422684479861146725102362030633886649601904306996734485286929224949618549183199495588505148489245232363786977941276657092232101078138906293942489963396931360475538174065552748090453861721080746498237457573221221273477585374059863982200552871338212392599787439121090519200417503619385935143687120766131800706379922209851489357737924169643522490174061579822813191907494904932135739185448708728747988585281948242515968238500213489922110535138178797453535358394437108507334718209627640508616566635456338866359213362693266579324099749949951468882984771240476857134527653208392092827406296961182645806992845680154738247112351473648804906175361868959372831858891382444439638481525603661404145041848742884099214069365929920219762747078622937707628524310745483528149161827997047414824242761931599418341207495166328549543461361608787723312591048148054181850021622897197915514521433594701979528283040705605504261279731017850415696297680106361326135570911998389957909240652108415535200607796729058953690572402367642606609387757227214889030491994365996804359727276182066553130543073608790781278828823818323083495894793636258162126030269708876949175112266627293232549684732334187074986691535476532343167023958615051490923299976655731956781970175981077999990449448127452843491404969637815984294763808089767906807299648678043007020953406589176555591925240677833168349307996007767710424002066537413201657284127414099156999419015524674447684648724192555382987144858149422124552656429060415491009245971523110285700312100744520715694926628495254497398612554891889742505104951822774249585099759170008934736517305090894233773537378465734880341234251081674972620597705991998887933016177343978236919502947221011677203296057466357799795885333666609509408859472463857420273261769794105251839090179849099812433353143177036424352593353749081001362806946877981626903011608727107548008523493444498809977030891800508278121922333166198913686178324028784813816213018275067673288192878498445343533363475240188156064719847190090242145800527853561702309184525514268535158924461404832173045414211590871808299507190461936774280221882223162157116804110974118162015086783223277706163330239439598768043306149083379635963248468735349863628760393943155419437308607838321391749663998389998308755246272760443372738858597575240654943312223400917169100904265246481957501161684132338177549449375764453778319836967493441209534711237109850896397107531880890587017955136859756327093878739142688052405158737762695427958375899608397162798290844672536777306701408769988381191768904874987716457830759297627500874349628128079300081469680093445747382648689872813127144888677467779976662421781406088672346831261524036796996053477687458310790011076073338671803426065767712435508081074423271988281110155478522675307955703282887473930063094232093523916515541532029955565174270356330320117015131103330917957216326810487652923661454155511611250714319761461925406099506867839031565775063032806750012702010961703988104173632106451583472477725270581273914034829654323158964256252038645962700947568265910188700527041081131227060351654506172992665976159889578572603734318418344771589940748365029395030467710088162778954831957211229578331079773643200224971220681878701349434140135159460458094028397026626262680533631266995485375898300246132401991024915158760613200707552917651147473680652516819441831396702747005943857524268511216144096607487422929217453866064099280726866480916945533341527559503179679340235012126160110530193666651985481888471650022520504591829210929660923837354224274111323036385657552998712181624410765976276506996880474091434590469223372086057340626592858678054220246770277694556773961541435711944302363503200235321993377899426273609931283630695709416356861013005926557474830193030789882433192973908049214197594556523228297073142562642308949938600882119660314258661683659919408772165042816808320386035428675443605604126489180814204258691287166817498333592237736397691992440897485361032994470310442330747256954485969998073136026104660058908975477583051927416539852385623924281256334841706094926168970787144043571004064954425924786220122313358337964931248707039730860513868312077089388953941718520330128213269819279491820280380930414545391752809540491167374293448979393557747372984885781070930745120889513234108242843695097129077121159018147590343205110330970814337245757345388545830488550031793184783304907816621616310479113070502673559807952108021766039151846267716353850031740233356240600802538307267914765676542667076121698475391740277598582472553561084212899244391012971947128446561133436949600433039461445072400635884183598850407398129920939987749397773351442542672181913840143537255160947637199144736235656772749124602759941016239276141536717385055822680559305384250013343908053583810465177607859473099440481127183600827021501571522125943196580281951419804854471030323378807443607303939503025701661363464538651227398255283788787189888078144124931044735805936957552839167314065812033279541879086167482661714073828768807608827265592643311774339785622963670557348377342058360247905607126158822041793145360461840625172246360505860069259615251568525228543613132419916672507739466895374074840900693229254882848619815230028863797328274471493974825673552689246878230265513400903219441080148406289174856895104910254974804725470794874058078082609933166542332795739182259332310239950882603648380789851403606004195667812996478813166610255458033388159814518763564845021190353529319433151115010432102133213691366986329794610890373583203691458023904707369612542836173276005453084972692004321769231315760263199207822642587394644582821770146140260432310313438910757646420422541166413396622823896286442737163997967122462218357450858452957119217168978794883466667885196030832514164562510655920281680349133131359246309464789318358854089423052175044619286006218284243440291763711208176413752229120117549703082483933339781375419176185517618929962627484718648460875275011487417015276820480493746981690217483208989403514769072470516165121021412192063401178499203023430623064449180366066001026948285384042786051629530462559236906462679294464232940039287852655813551992445449248713934508475936958122089498918954037998028498966084440261846386880102679577315152402782187883180123378608421940354684779547567134268392745052036004029010676692831596060638122666676996083844651170211667275944883470538886964020771895534749361938230121950763206786803467242131738302607554539461063256657868954658623062531933132397318317303651336275746531362332486844571110443087167240031360548223273267614047614552440835182212208226418570090056406773648030482626987770713099195965807674643037565341236730094645469440459238108750961157730564658525413089550355979688825684809692440809908364164583548831516329551997106730023051564625930774370087623768330330034857953507863408866763053647565160015194160865243480238869170083942514310273647197469027497072852352566354961930240570588919338585517565165135122665536736186504122538290272142624811951424148178995945719942744434905590494712728763502535800677906929505587260164087038360982472226253464399749972923499110118278948083609944518995917115797274776860643926651497149007688535477556050004560728856800454795112528598271713786934459107492287840515491116166245359762007424107120297287369588497647592999330557048451193433379369634871279669297029493865320027514945118857817498937311771342433592948762743933506276788123004273681692925934584341379039503090810535666601284939509995285600376067415660142783412775050028003854091204450191791266921601218914607767862561462659148946605992476551705445344580191874410945926299090077127875928615883302197844062871157275670383112216198332852226079633754302269262253759777872784567145812753907413510965256047277633917304168682487570724762260401144263789699526651152199645771436389753691239453511541660891447398606859166971294132898053151578601691437528065598747503856322597732494882079300754759550501816927279222351972378288005050313840023513467658125707819154437558435588603857852009146966821182015429956903586645864586849929348209662745449270626753318900353748395116118640608380937552954703957207632466239559711994985220550848869569963621228026822178120502046204913792931754973262685577952966125664834324292379244470638058211419543604091010781725176251357955856153727051384897556091873706312863255797253084947677567497697575617246075111215902567214255745175653370788844908445860383805992058145991352187592328805641253204618421729100817618323732167257940131904269248272994030532959036652668710877104239152368241794335085142015306573219477988813276993443842195914667821104029339739957536822351571602041616105851195681293724144477882621770449173875553785542288118365215811301658320265158842539900201277142578913902379928276686026943782220783580657109104632921510346294125261925872909855941777360986473472895487042041955794570630780069469288666561160743502757190803651893872524105172107832560157875845078642261954536356546879196282672057695642881141177346030351557668528285636784165252617207990647499807513169400354289135993663658880790961031872588034057583020535470651850500814109709634226754571875844904360231187860018961390958577370857376170702308116821870739199499774286188846883844385411318470448438281983932666400975492619002572440342486744339125347292606631334433981870888674918799911616514204638693270636662944281008223618381432071599919402494761709628838153284043969016269906008804738617347990860527688637672209669664410589485057740759000765735035452629036066773880913401229776529716458489708735520112467828424098534394591353246574097462420720068447079191589820577920875708578942870013292745596306477130693538531829617790837358493111946210446712313499698756234826332145655363510639985328221456072408981215104392157053125899412489725577275772636916538336878996284514073255013974760445754494995869762193131781134199891658255244042786547786182637165575363468158886639307093056728922328234080236225889148840365845205489148339685137002675907695661318162822109441714075243796633979275783942495237613314312888533048958520255298138865716424677949499663729847834321816561588821462391739984725616642136371219365006191599719559429109729707476244290363841067057478053857407885177239661474643770035287412922097553299538272054540561674475098537560542695969970019446844790658114056377045493031852922101982167457489760015230532125372858980191247652328923762448979147106211283023589586310343312150400394632063029153202556940417504652894383513049334330378650648901758426693418857404367735490473898023319801654593522447502014250981660257843166636217428355924050186893911218261392577708354575129546738472486255515865255242449628525652643502441467089626410539231648802322423401005376063267331532522576979303572748062429857920174523880392073491764132518953860447879300442257092874030171014780181984402250886826129545769309946263928939905202906379324522735518242675281385785582853956776207300220343914608627608757727873896930206880679712796845499317801655354451151258725684469114529656535531133558938322604946442471498985382707438330571190279969474689599981521157765739705742982867311738299031504912111405383949075081880961768941945385707336998299308454422694879462466576389076166600038670582950191146276630094891565815023034528320041528834993601427541000548168773052036038725953748580715210525839254417495226950387798529928659232301633701689487107769098395633236321198829568578867496395583778725480077394759062343776650416887184795704548423629130845973100801564697765519353357237730186776287692333194979991940845510223009086448237852120377443043714316819174572566371506566051786777257578050354919863373730280062010273728837832054081894502755252246122808190648204854733226404002181783840117217740925513907967825119870841262213499336060952274241342844067831330504016908330832717427107421064601292525106877217822058214151297176194680582054996706600238416483376190850579968687969392679420196652285915704310092465348903571603374928984718151664759413857508892139521609043881675725830948050938048025249346467445720833351084345587313462258068098740289295992988228784725830452155705862676131570271028649830687460741036504655692120111350043754363118169736457258095209846082567190996958965064238934886487444336981327133953502079073060494820296275504498231449615826595075560687093419606182538819728347663166029137590628124747507934195097357242912474599808357444713482906634831489223793220088068284611998405111110409076477669804966594186360638418843621072126504915126653229478381040123879369521024918210149650961547190684360433942008694981246289667637360543910650099061918942355109375310990275960233759179870754313292889440503870122769570221448395378636868626113870567691063341693112439746437805313184550198798706683058820069031630644238859504630487658864210012193190639212034538868791461909709706011397774196080462413043925438947080098075932803875549109447986700198770635538413769341427469812956347298301905479268900958715199103535680642962375715252172237357235464651651144568803049717387472040416372247286482033396655169811463759766707018397967014064653428220872740509604827783555067659665695149483804334555511620177622261851551665834511861552556736220876735787698024536805305955939504255489317832720884596956700230817225757933017809400715740489914877701475048711407835920327503621830587704841996899399467874850389778921029202931360687811565906806931919466452269644048670610661037127299995387505609280334477913965679529229739845185684974123696492284268251813352659940241951637594621656966127164157140890774250981035326556869139195936495790618379838613266493279006625050291090011445118815689385773868397157253023057394949076187798368300026063961607962015410970127246020597868492998742007481091942540956539862720493091046369734587816204523871082117976234917661967464578738165066900218333104157458900028595180479271759560717772724939414032181710405097213857463984140237776895964241810314811000167041294820030806557152905681947801840074382670246115158755860374138438561340446936812067068234884492452581960857593017458711024524477586329039703851782296100058273201864635585824163161852026615196186521353868219550844739217725828648524651209769332234154959407552395006332021737262111592991890397034575756491138116432063175529151186187986949209554831112074617419937142225118061477282235571123458924827853938419742410346698060136995444967867668214787218113299823779968558750403493359870803574733182306423047557637262369301201247000324557145207972404977433108062102993026591004045062047172302608463043881193716720139344870127090041954740190314719121969643279914651622278962208365979541071668572203713716742114482708510833640495381829788141655850933616566409365257531565481642634497239689251792758240982413191176132555621143492415076084338794293576209180261383864083439472782529950433621466982126948701624146588576601001326884892661409890364470066312022636624882598137697145051951543021878507841599125256675247992182083795355163380493587122019502320143710503565511268358832649254988305703717965763951205878947197123109169605530181912198604000016456001165303127642770747529013988418896711664602245013166337390366146650243307454465714486123217137863157409410039593429017681220137115057545005269298563383738741757555630953588525051283214032390475739534327092240357472511087414145030277915513898931422325904100593409907710158994133123944883095298951726219367599102199540036354756009255347609892703275948202706425234220500648220545647148289139090806385646485637757316316108810572679601583224260527326191056696277158382864586535542500769447036730343227572257466005391725064712770380539110570467682721126184288859422287803338409970442491297354983971643065250236598276062012918395416104799869580557239584203249499847044430762824436981650960125033213404619518389476626225149623728268514854534860936677877127287824678294173452096625316164857306960084020293680210996505189184927355041391007434505046950567193015909013009113628796422993499171946792009029541633139173501304609365809958701485315804539909917984999192740388693362232633785893248936263232408909196936958025631083746278543776367607131892210316783123211350824759341328572190838594612724287578428282768723700747489103590017952577241418563696927759616880977789299284593292107329317836396768431327813360699316261668000327948724314514305713147573429960484774250797507493540762184910561799998748659144564931380741235299301547713953113406267295971205207765972249329402383713312182357448432123198812674882848545850740003065338147634358889813523169767251222236100880876067597769188854270907360595460181827516043305416237263018920830692715924547283354606602980646348344289648702602348501996101169150857790569425277130679037236081234781083178607335265806363329388562927372800216661209780942355069607571006321395472550846345380750545200943756633007929807984139522809248997380117743773085118477756590494042899154044883268533427722469888110298895479147761662192618299889583234115859496068103047593482472064858886410368728809743000121005307970058650540854514415697970288312407702318019560733931281785946826802721454818478681848242039873902128895095458507397634779500332690280218794422812379487728468066691007845926183543742938958948272443491071602621573982078660364615010978523962038565785331261764266637450656542900641678541099650518085928132126213564103883036388971173282146526265612554052256083344561096701016199762786586260022075961680752661023277976272972512250109359250460937775977442696758970453964295630514840677933960657277763338592749170591763575750460274288017337637800506603660053482072402990904917961830740491804317816907951216401229996545464025270119733990450333918101395971501329381060267587317708789234729961497385325949097267248520268154896828084080990686546084928095179179520355902075370597950000878271055025695162792136714141248020206896408846614860355519868479507471072558051897324414179454587619723003350681319317864418043404135444927323923108327881694236725075938574596235002840204883041729601520811221448296037940099136364661897535181524688463922675011891754735682618241854881207575177172227811133410488528503272229937827677739986478300419731375111335336268848801534211704454844807403347713583125810285260475527513982232633426895206356817678176045642226852036254666011238524769487841724100170571618624757789761080530002752519974010588981406238176523710571846620356461586645533839031376642041831433968086914440153944394516344452605965730615666218022160243445224172215859955338917077481434967918753572656158244378879096933037765070815496361941772064421216886211185976732302445489955743396206910163906725761529588403875862173890290398097184542705662704253229315506566460001106782535230983432505417114271088743627498338517248557903450427817933642866621806333300399958057512367514862492900649927161432472715337675981287783502515547201479723888729790818325624711936136580561233419196791067523561086862200946838060436799819105265415249474764753601765824467827275957505408616474927743532236748560756302857753941762384646145944789459447514823038455228497465362204452000240539775229486441731185385186965246699276810783713947016451044264262135514694034307434901942897903839590077139707280245525904125541392513455661661191772261442768164513359086558435490199284553256276428062108513872598861366712967780604846943450514753320027262884508933395175053517317044869475895612556448235877357698342141695354215887339356974511280174954127096906977334697808749064077705120672583836891805184449295948549882814309387016595250013161279374376512369658479744170977001550052861511840113217649855610147316176549083170773340598438495976745779091332953613399612624082799542683987038727340054764374829268449228486498283496889620880502970513023238647247839012488162171007202487022899626367209096888270477254074574073566760341755150088715188696517696679485781682319356855369567001738504461231092842286542769166060536993804900304904722935917614742704900000257083966780035557794760010814646473404007104437136369227362708653904766724535954031641458350212708278289908728575374708298319035153766645074153925661886188952136961427560512926150212766600527213270353492357644267538072047632608217964424650939776707971039511423691110617366764155289256195415099909767823533572913674054031479130958284459024337377261251928983312859142213712239890045682013610573948325796860140254048208104316297446113385102223637632757248500801545476509672674428932643636152106577390489947450113381008926479671367770352025899966143686164463757956401595362732050884830727710521780503296866786778237541946037769764680088451399307433594427416019139795930496378314960232122443917358801560812584538783773657470514009238711534684960441274400805606830849967693566017100624188854134155559782108160313772451123591628810249696676610793138736237737959246337545529107734364147120718619469893090222024282218693073742504499230370382657424618876797829429346143343289237344721665014885651494891198267473732521983125440040638072169201906468740320893515580083254411273617526677055336638147806103496918303445335298555036453254225680771441897469113586005923520552169864770172139278048852397811067121927545776585112257370238062369869047887678291516843254849347562711487671918843157369467810157658710088630757863984989653555006553524594307816063109158093457704305625042987833471570519263526724887715162646132393078602946285219030463864169351417143644478416486503403555640103119592901573279183717822863971735733878397892279283205727437233649381220068805568980085569792352629879412474670855427304496023199232212292979958843073855362889930506702706692915611715746242995241412315807928235664293130831044398521305215860549498225552954458622905289423669174177282564151103092896074778681436049923241740947981433720084790191103310458979238644075621919224230941647313091917428005646904212940080910337769461452266930594788978541605919556053993181903409312290879106415868880132599103628878050987434403253586916785479777716224540358982309175948419365457430109604743529860276274066137305107517738975974833636845869777236655057173415312102493192092021315990350868653011447432384035275113033992398761950219358585828637512142111422915026340882776655826040542235948911146299891549001781397446653579233515910864750879611065369742783024138801358635376968174145341891918182652468354503099369209645867493966242641911078550603874631247335511458934146967445202802337090526957589563022371903871162146859022315160368624137619493385022727197974397602249013428806720146210100047787299528941655982677713461083587907894638174959552314437605898116370594648993963305123127093973078291786212710053883823254281709473984696933995725585696312019394605828520247097059300241748071345481411532261905682175413914978325025044408797294683776440907931180096453144956181222832724768595050756079312480648151312841557652030618438889757939085324197268876247083994476586407076068119444002993026088458894681874650360791604266630315759052609012087997594064541099258869752726431617167798648434365849343003100594747142279369674773832320736745467426992811908003702795634492343252728633075130133331969524120836441336902814186623408123380906540584824760043167171682771408293723132046191883016480291989312056812948748387731590205820233421014839521013924505312522001783763311213735432455528026274599227777046494907718707200410465829072392196699772034866637910221761419827851046678023893412238195742941785271491776508850202532590605326565947816311731505637012043996184483849134308197507018724945782931643710101854533719458246801117954362168077915459298978613525922518621997164401984599226429695127965705367791757699139968578273058209222811519093352059013258261331272582680384991864306526204943721794232406735812606095491666446176471669070039207313846904226945470095941003703970066952080621014306218500175319737741369273685058307809452551598275662533233779795765929045152513806531535735224445802325960051255212065103244473526950444919404625194363286638334959732489135607648783741975359277364941779700097811815165856712592769138296718879523906103730097009755773482191472758958389766161302904912452942969821961814632675271490069586152120381541005845841330692037292264042098252164140843255888603439575597653104175289967458984213335717022927978317078954269709277761597347232706749960068721451671229464513578010125637873808233235659897532662507961377233653800820540362406946412799631490959924774311441397377639603464942286682181502199020377575967098182382197774899770327983578523854074213152487553660331415699061000589278112784108123534173600417777817727603711481800026976247811851053117455332351545750963732642735293477405089652056515090192731291561791404338704209327407839477374502581513442765331744631676544053010881726471681880785706342601503841778230568108424493854426432934324935140331148721261063027293592457703442187428444726510314127662844355923082785594396029268258209852914027596082661514285598422126871372713522591859035662380747130835272229826004087300222288613438754915926934352249325975475624516002613129589912076240316155490891296619060712333544664337168796394798102466581601315694340691915899816416963371520276109218870766576722014703864880581585571179867986692266173326542882879014131415530314831886853464115599695610340831203998475609399370079455348631721118682266811290135683389868030609374895412930586885623890239052373702021475713938831819180466719809367363143490231721516610034298813862258764182285436642439900441283270440332895047558486190439042817385703027566166590986178570083782108305295897046057184366108181560762076433607668656539890899211313360460900825419713000798501385537919817664890324647786375171261640688025135489289279151844260976380112143953404983157366265252527399657356782738876313655882054218151210533592905618493164063058009340571732458239808858819505857182065050776936802620250899424076684064355958748267031535729944195688078813221627749939870661419094560625090117177531222675409515021276353289626345653802721622273930495224488564437440190770965022757939810407504009460856932109208977748557387774875984223208935086821863137896005404092192124650095904791833524856419365513889378922826554066262154443411242622513419422148218138323861784795592587234011669064265033816882095011265084206333826372072238330313088062822904697279828381975201933269791313302547505313396899351211954950796755744256080794877837093712612929068859883031149321351930867878035896210774624422097878508308511093550480692550061917785188598964602407909675661896714686818902102101995993003890155436694763731007256808348760459914768383022311976380005594771548866155905649209078325356733195062358660951284942627038225337951468390041685955903069153544588070143583532845113470828336537665308818058704468767501753711705779436269045825588077574230482638046312112483344599764835661294699296627570166976487290293854574804251675872496586530226923830797307641245564321710327792401639388767243556277729424183885624052903276258029016334083111819441816992172771732102779086420504295860221009393705796212306740187766445307956731459599621780894266576369501380261095154310978533607562489694417793542040874015388644988208889706083936993038498380826066920385929741340166595818924511158750169579946997758296519438092135545288664880634218385505348130681797028073561260049284244731003942600103903233578483586629477914913845729067537925204637037069789093180350952490185024776797169049403724452108704293429204387187254300236143929162571935656502631337641553735799161984230961665341185528647364579643475589550059458363313279344394535320099413615959353096560789601878520424856796504709680369828520089921460303965701983699819717543195037227794552969163518502957920390129516173724082645232784679305149929504734105165155328880798333262091625118752441200516268513858358692143393331790144137941817832606303077707216341338015691201090105218002371532558463095163953208121354672521613954242528391580279152794501885632708936079442214128351494120382204256281092382226478899841925525480566545661081284720954136848306175399207868036519267043740699642046575502021371889230770262473808410868340156322050087977081503503332061025640530929149615036549160730265990258489772082704074217762956670325695297454272326124709754023465866302484973597634272507627078863022245021396006676942508844264798287538988397779523906477330793107539249915765534276811181510446665918210484436884358035003665090591661912411263444322839322401541942868782021184340347507119765602337296011010258633296035297696692202520985927601069494860096263662049602813316282721008762785725346227645446717575679695951418002249111098814179221612290737423349434667842064155736116753893224175778882321608425508030306242771135226846790103733982480040441424966800653200969505034388310533422348775259210873719360247041848168397760469354619850049905278523994296953790096638923482703063407828480523009864107673129181303563725625068310650242196908765416269533002467172854649046100106224907952667965411865588575704584077937232406661844246910349754895056398953594706740244149439226774615446615029986201341462066168514402691395008326585038806213361187053939633256846089642547512210955054743564140684576817327111002149232558343152641809595887228954092455235491894575341483877931135349888265216412905181981373426183252217469627089360172720635235717842098082159032647390558695263840784931653187829379402578069773321095172179950906031057692006516567159880851598219805458821967377838420878032365198780607594348541298925172660260909640759890006287190293653013200089824743318405166029015146084010583051702486601637935189986525212159220406189538737146094201099152682154369783634458411937483294761861239822367081471726320609442224358127396716663807811438802350552797936990082081692118438391792474655473232362188782216978624957839645125311642964088275084120703402139713178286031082062899982097211204352999964374549747617965908506222663927722402603921146800163962753403309571941550295358910192147623159792784695970123251922017936083698597111625233844365296199040263262457809090794950919148965593162912382162875186850533085274884346147027200855195006391096559507154133589198178181406639059377195091820862881941967113299152995667206823365817945445367288456594939726824692560398478335949316073255275427868482604718059430539264996918238155489538932603806685508219192564820898585407259012478678658407234306206175917578540834112150341918416902787471497388007196688926811696286917104465007405530031707977794407216045634463375856054021883173417099865332490339923286123101509506038789835016455949257858441011017061581785648623166975534422635496076809275879953475169044510066195943770542130966272401727486974218629760416949791578636571681826798121274914698849571138025696715475710237607264729768977345835541837549755759640836359354302398185283842661942514728665460450583178371408575267988994259229887158549776560723693044957677814383259933795032449312262686914569352330025499678198394696787459193389261439962023017851592043417569272618826069857221356653163827961559578166740484349935758607016098389051133613671271663596693951123218172152124641475462184478988748002183437807239532609158990168083840925080197324584715360534515026944677253523105275198527606394514801951353233818676596956943672701624577643794966989816234164696508706832611201200596773829273259634073025659006951804147846806266984595017995310625667239198624597978382898863922668438644921589509496999143097624036813033321161437540757859893718205848075814183904739558820681116531855816229605115931318124613929099260149513717509974426172799901692179423131665607453475178928545579623581865367316242154742099082485965703363799573238556618060865002941756799231052498938845903015757524026487566724360672404529365509212588146444693854205800906831738880149155187363262422098277567896251363727886538146849138215189208266118297519043740691496446228963108639644846618531361371933735057776590352916244355959076978128011496901906788099325888004495958323055728740666385631563213959456864960842202901319856225046770786573774833925379601112586638016309912382254944167724778661168992045493709511207363016247768356661243849867422053311620089259113927718760684245034802751539818880226763552909312914499586978994122371822812717719027471212722927142046733145865391389434342983846238331808082176942236950797345635950903703556639742260407457715675825878532780513664665876977323013922208172567627663907782614681254370986038670785727178480433248042394465077888359342040806935196915306094725019023425883393941958706375164103963382472442727570845094482752091066787118576238565106752944600719709599460380650586014068549009606882399035259732012948317417556086774491625223725615074743902099100497708990039024737095634007498204673433916224421925400447461319325616519446170359676685380252705271714257074917251095061552203764472035227240652951691689176871628710290282078433251639629712599278726757806409646203445023545990965567447501936079468962606336576188544830526959381362228568777920736452068758833106858430035568375731827219198677996095645909672790281704508448141317605457366837171908093155087081696131833610680785635932000843135019971006024635847062598164503450602831976143169083842965764322408207785144580398433227522581465785844889163226639207204331776904389639555088442765144862275922989221904692561850928563156339302542335719318770636592749224802693306069708738643285458693498269284801302244857260584422826449753896894170656111903213012053073006589765641818793392575999130885416305214185090315798838885929306243776384716752867403523723473585496644658942177986368944525014009233630271895047984758282116741136202983139516462947295407412101867175590404621314982247577478112386052480638891465501164334458130900265330318674437762123750987303973060366019924290453836935439319949392112475686757758192185553347026224839936315042531229155152924335757701868191142009866359246023909333405531788966768870519721561382862645563462414793650773983064921565394854156825525116683513219389857156501971577159199228862005436748033397640602262969121458307741246536307650594985578243538515405523567183478331731337974426603763732247817483327555422880672226280071897345286643981885481425129925016610198001162103270136253889560804556770753029844981607022128442285563603815785995600835887209076772444448483904768645646106665041728288646005588461566084102293382773373162389261131532228719817113359892199685446014011627568886115541149144147900833656303687083381194670500334583748775326175978601164476550325085347834609529926898046753791182312359914629820252400527266860072228561528391515086808512457130275597550162359610920228238106214483417078602725298389608180842176481587143556166795577713326179385747240917663650046042175081761733683222795337415379457320947182970009692803387646319588423612458596114556685609735512233401962335283150392638348004214062372935383174419284439052025313513166809962924375611550845122407746306413605716950099584319359658907578435669808804663601087109171910034561091864439816998234806922780131786809292106347010723794684227256545901318426040596342613537127945256022390287686108468831520919980834880575330009062145211027484582715413116617424726314648445376058537194582285483879189843901474439899875605629306903472422505881226711703363404091936968184626134804103713538436206062415715200523217901084184611989393734128291304844480121920484305466329968491016330298605139185747091204219567649001897596883631333281646144048752065995866786724099548470827763345985858146726289903646677900145259440631898513239521463395240167716036613403451845886647008253797030425521603162528622539996340662864042850741033801025290108021276104269988067129536899862460578939425813844983785633017675202225995356491209685266101636314552358420837627988192002776761099395195201428737332289997192645793162843615649202594834606000042694440585698790838513658273699960819645679429006375291847290270948662487750961767619004768778283009022681558562761713309095780042168539979992574231309754601487135895760369148845026932256643484760054458701900704680278486696015849513899590007495954287269945574535212585508048054223741205522052858035819532702646934109660379361978563594571564192866566045137290912075500923953142777538544236602429693249809211412467583019082653184222248412122758392130957028230946634809674559264980542455674190394163255622964883564164433566380364772420445013129525871583134539372344383260654863112389685530838576092851831231246941433216897152591806545616125530900299516110673616803458855550992979213278843050296439146666496248156802731176905237413531291025450725707531309820916390546995040741633306762032528337759645955085848450174348985164470619082916289120135471928246804632577112522969237131060380995574964734218869359849788739181574848959149018873509595139985599460958137054263687524301288529395541751026145197463304365049890775783010961118619921928215018017635023801787313991094328267088055716067445795556609406434193320710465380888499741636944523867136659296409472018591791967140418002980270093672723899094775967809512697183561711716815715192784067132431564212980830749953262464331863913952953570967966061116896713484523975058029067606847211939473356706014194975967405330749176347073657529188519285895738168703843235098124617729815254257287512510835074089603362356243219901947478803874536727323647782463754853364080130105170210293513206494632612858559609282561738268366664747132520731582373174469559379203442005639947219756834080527420679049031399551826176650146762033943332725527719729205249177133961459287410643745512733665948910348565726242552189747015609206759612995314647011384962444464641515321717556343550293712211068071127608356859598251986566395406721676504916664550646616108495891918512467923378122383308080606707551769055473843546528537888108486884240449596664127895997324870745093533986794679430713388590918371283341387287012199744026001618354995986164443286188620245553445064218132836486453659117676608411168579661429350418024516255254883795256966239280016760713954005484277545232180207275659250376945159624374106513767567805942266162065966355146835809529284555148618987056297264204663231869675361371659536655986152187487121675956984567172447166222898250525760268790285658323133132211643461681602774370609694040551968115038129319935390060528445380909963686058319693939884867748488200804069285308833461895400844620704550138619464077906576063361314457750935908465332899028406243556138777239853650996577603391073454124001131454008599331832785001627756600009923030277064476791971844157435743952464364833733890932249899521586638569926425925308902140326387415343460941569567352550234324604391911301794071520394647333776436975847494849444775092108276279468506395593554261732209029925938944730612399690501147608104332958677324218993915911313065034531640074803008201808555797229874884123710322363385945657064979761301848647304876696793589334504594329395255564357243627891404327590288072562568939456154043958088150989792526673177272052118286802444542362465721933278433771251627646338150039791472276872305132254007977600283808902307093679282352626896954665401783518213014544055006702069007781985587760631966347381873021888313970238118771115175691044058996523379524797886501149127939439897743581030655239390024883770446049278902976472712850093647162850805481549492327299709171015515328932231370986086606487259588228054631393364355248902709624696858440534781277286290490039486906107878425640024146006812557970883030259995347926116787333446377506593320321497503930696185322859036960438960430686956519335204038771899816517688342107130895163801861315916104495298377898144359560736496037172834084603787272033919657653693600126590478183396891611917000764105649430715561684086015232618006340103241928049810818346735000830478843704152436905430552949760673516000190255221504931905929777409631862872621696499833387882520108317891819448678618333459969900061084149075273639943896157635425533566825882816024772804775267062776226801394728617432523711498400358169081911816512610758045356689680906923972289180918175961960785281329937426146311374025307196119915951927176499775820708303841986298454584405288282853509757476199510301795897613276179133042890277273244290720563137312335030467561376760015282051050447300134459666311359553429922211178316001690538395682382196278147524688145607129045979931011944279019291976890700338875108547515242428082689802385120745354849230895464025226818790543138613231513032354786005243978581494406536443049439008723683527525880559367352221799931433286598022663173573937199302573582703276200498140745961486069739979615284604717274875453715141235060045894802214831912675576717714871426591923284301195119685812968503897218389071141418020296118896617846856713181533910936729715856589693223868128245589234894420151893075917998211367552444114849063904740545560936629142259531028368622571447698129682644034285503996271322705720389414447901325221258703965463382028481582374030231755603111060861696775627457231418541547124478069774964242277864275932994874640968131140433815562709237315311919199903745805982480290398404989314504860506162074741258133405301505669140414062597866486180608330217771523897207080794634761706427772954342826852203727265929635344345788816429123607785651930112859155835746920133205892621226259159024399235575617650465608956146342359137553701950270116245333626881188658613723679535464007485889122813243920804519231272404745173117826665118952517858638175701607563247835978934921463279368238887551206240217090373369687334003868423963153933558220922161216926918551318348702359914923831718335472789248330823865694408877271746760155832672187180687952309992386319047270443438744985034503288172965100289866168493753138015393190279958572346955713114948824423854810457208338145924540090700479897931106357830444344341616772138988944890032001615408892331989456234930145099844162688050462424814768218685621659517205899790731960997171906893722641225246304946230431930360942910193864954246043389264631576266505163930917274131042025225140034340764341547098817830009824015803065816962270097801488079971641054021085610251502672582367743398198841877263147528464285746122389040493428485452617353631241222963819693990113590330382443749301318318619813983117784314696704464413667128038015237725171714284712067615623484922287740196869633225165649550787816195173795819429638467306023072778350338529063265880695657462268637674592494376301405616109238980967306371814374839816744529851642541286584591952732716767235790186122465126005963018069784469038165429204015019352642208221604882736435528907847641571025252817710652403033329273645055737064284569086750306748983955866619971677503790974682497438333070609440267246016344543464454478959661180380072574436736115206450941193173741093694391868867290504940216826551369081115775025792669507588376698427121857318457918164293759171100368241004765576356728760930524651170286548680311332070032223268672953867593953654385976660696719193836314450365800065672339026098183318326370371177249980199072978617991216899329222707988847931498193954415849835658849908318556934782097742768330742418136017239598584258540958290439000208525255731499901667306061249838864229507375285705296933019052104401234094520953559350310281396260779803311910832256280093507162681120613335311878430853786471925131915595045924265932108096106491391585033844807868078034158235850921145966167947391794328616143284232324501712795648294043776228342884903694759807889580872273182278350211368584054941267321482103772894922451912830532648088174767549141252949808275402317627714567338687423276505464662901736201498744081480166119126854260820028721210351872496126612093512277075619395963904409604485906379414731269620330844454401880379781221354701445989879242975879102743472192831365725896384240047779507580082951813275088511070425977982706763068550619563322395395499500312291143415684264620163299208269998196347837966049533687708990070565946327781810447263005348216650406543938707668132607750335891741640462057205562254806787362652907470074217205609266294125112492671667481191325847833146687662515162703954677103429188363215710608820968464398564453481417834948733089976518203394940041784480257168625819488805824171092622987168682581306925681291637051919255888487759526804808740143107283670929859394370474378253502951122072479262371175795765713176186223249076996848062893350732757946317940210219540405778309136801104119155051211189622899280120458020582194780522988464148332140169196394517396058594983579601688176477042882344598256970411551842455375789925670228838373571380894809264540881189315301075422219953565232902532249825755904356759938279823345338595447752621390746779785397508801989575558151571472639684837545360475439060774595902915218055285547743052581665827261965599828708988984405422941361376055913347732173194849915428882747230647700783743128553939673361835732469762618345667559166065861318093841606816726518140867944166704865785217974247745658926233748176988799947806537189312618565632094097982136132270855993249278363128378968050712681489615233392046483241757328881922649715139806274520471195439191991906584107879059443169148093062041146425755024165502195493473415972661295500025561419231209144057550920215538085418653721763773727131063508278536500128194204924043051428900775842220159471992559906845405180880555754976247716361891789793280027985284062372798207740737580692032205069934187020230061931651221288435343021456473976333004411657740883137754834369030505526806634502162562752767596516627050427112791226165782807608883425359832376858952904718030793199264837413631716908111123601455412703604658618658186531719387224787773487658994833657841761588216814586648204380945122658581576493238201177721879494770820276064419741064548185141802575669070313784265795905985888817906615984478156472246452144552993367140972675118769388265644534959919489141212881180124875419105502772139817233925245584990681282293063168572147446664063877472318299788213920286535530408726009011910668671883609796220134069869822855013465820821888039603740473789661677774703848522926127501582036379011068374674682149358092642471860911505503757645983579746594224281296626332402838922469819351301453713023445969871483468917500758281176842958301506849727749427308165885213382755016198068756547312784195663570901798947951307139255072025519011688022341666913400398827172580933500669631889501896301894204619579387452954634135041787578550219131400686954311894199799032456532311837163162826126558078368571866342063324732789210352878664150464863308632801595361501313319056792581909500487530353701323520709834313954641005148247981511813098938388720306748191804460963972361583102764938601295582991008285841730565462663629664968380716733805636061327564866102538784630672964027625832723032592483864343850546390211693447902145638378274276061999764778754595661415910595846944569542998616732016783891159684080991504888518176216436931905882313759420104557051526778333025938523340931352411499696574837008309144214713454935194742385135124473103392413841908222430123833594622408093829471249235324748072344652288926770161538970036360163700743594666571417528374184039319966102766042725264021890994117867124286043236123317254892540549313937723385572114539459056165744855279303791455186533373161181097321593447215475942666686518278440253616748185188180904881835816142772601712387506042716212933534521560221444648225335369999698386791737124445772456095014521716551049817227934661820278689479156986525124789113775116153154637997836568969478681048787241133677310133613007306296189557789841687824311826290202867505346383945094455630864057758818041718002419460430685626052671749266839415666045061905192918749134276407705462329307780563683467736627187948571877915233043833255303026871472399966041189742929440612710496221603334256016394177823911953913430002345027338542379455731334036590451072620836970490268115855412340197722174761914908391348933907659158024476491795117845225737153342214770468118182273530299856450785385288864005159238001165829214352505811835054730689993575873253859413326386396391689208964881029719638878734681091699143551490939564373916314189633948224029705512171073836860807973894698361010327965387525948325000385566753577023785211037081857800934192454424786395730090123876903078600217925572966244609825242881440872611603556395961834854634047497187215351995689761818865843490017115191233393188372693905300136311517206228498977307542770377326977730285825717444803612873923720174014175037635521257117250744618269392164715177298947086038298635029255330148603200267236325611226155536975400139464281849144957808291185462437012587814309423336050471561933156766580451918696817758277330236685811696655043137876726834089092763627824451759571607793573094981968762183601238073327713461179388113536054621249464556143645976671912385604052580928315294484830756124945807579600885534632108268520637857845048287086499809804310752004442842331757286785517032929529031112330637517259984338555922668338773174640706395690646150095737085818977018859338537323377261111332809084896367424780502905452899515239130529305593426498390530193254107738266812239071035617157112618142089971098438284552486781820527493049184041876136911976005093428296956538644398266558719884756068479636911297283850108141204940881396179383139504234067285516537486500439752700120501390520826594191067570811208565553099761418495669463960451871670300734579001678316861364780091510123155987794003550938979255788305014357858718087571062784691468576447458073470230056421495295186154126472163108176724809500481872597383988723565476592686900410714360630029382063302426981206830301067804348995225143010261247846299680189678713402051741507094376724411403534171884521292584823277876703690886739207423443962542023537509069570156885310253476592010311064979715315685194930130994550210910913773063062369005049169679041883093720132152350025992784692913792866864316605014930431910873756042380153131091184206114183958938644014301591254392027549618140381397379983489274242876429349217663274066502303764010923076445265464916090209184536331239752058283404434853222721843880718529598774671680763735663273268933419371382557416648369530240782437294690033300318555220376909484257779605812956202804558249216516532869277422467796374713337422989147320032358297587622085581452989806856535739245580877806638818640878613808328551186820153979032724953620121034740477270054179463282993128667677410112490085017326137891237903221446084445936503360353620944709942395758543467353257921533199227556110509584495115986790125829828221112229820581839043764833749275606354257455535345299277243816963528570034841525799351634160084027316212262144166197447326855859656745682388554538122689144254338354997755502963453146991811509154985282494101053518365911518977915197786686840917522875818194205907846485097712144991471651376550122646921364320731060886592914513723973873940922363368593719484817163501147553658413720688523245794402531839560595555886316180549979351415856998386956088455930522347573918279924119402571094534339883393612909829670125363984731045246965351859175739795255744518100902871817739357332747395664302613926094644579883299620642171682290064788345846528790522110271184109676740892872165401415265587674392355424586781726696514564710817563151444893031337363707935846300166000016271200886601831716209470757806047732152410940391230146835435450639938477753073054204719150300402323833696643426442177735023013735250026903457370383146860713280092088934538511976979839442736363959414102289526932309927005571312032375987618229191942509387984022036820616573655197585188223547962467310053587668082081981861233637725349893710035656523933759830717527354064620912160382270257705967668396230646049146662536397217744188618182302277834063455397853855602287226166563024030159096936539794394040252693134062709636570928357933739948325233105937608959617209030761590280493658517496452264011216985729701556696919144373263903528945792182740032159725413226239088235727476598860496243878240775156980410738428004383538955773618332107966740100470323991402204830571544704671694246720726600465864407466287390738801843045588261365660846690467765492330789382467371565963898807307022633336352671520774899430860077896759015177711394975616486968611138444026334193326928106958456883896325902995624299260195740544521377464834717196536986797880578164966514708586261555670352430451484156592641931558707803517995389799680454585852847319098376198263246143529170869292217246332846248795666333400601118003928363875250830263374712343032010698874512597020584985217231512257539193565461138601266400681480403194127973093670034185345314614890132801763353652315789043198713909850585819708825121522706289596014617600207475611679306129694055803138862415694944813232511867771011257340703003523465892067840268919722010179134802512757126640896414566849337966437573408698085092395332186188756056801717289909564382053235054781258261472961030476133496484090940444032647580702669343705107522314669356356428163226637753032470598185901700582646907651800739497691684087666369474990708341384910677060827225669208356315749151701126141191768337743838019673614601561496200046710220836376314494036624956716001204940733035260549178451391078751309958253084683719204570160585866061404985511648225799882349823677602839800317531090349413284035575663526405029871551658783297559328409005482245260023302290384906106529384018561230088536198383158268794356958827771393019911776648970021289688318872666984989123911119801314058070005054270745873396604961090380560492076656601858555139191113879634482472927211779856364829022372898620520091645689093510024340021847809304460031761233145811194649654896914069576595815195826688530431881595435676248355794928510591494012129083164384150935963153339302390163666007131431310616509377297574007513185998685950434627177883482668238767236167663043650536038532409599388285691818315475959679688210292745841538944712361284114074626456871682877059440987261536828183560252500090846618471630844826365065566824973469684164999086141692098923429673344432037696479075742817437860509857541404427913746100141356155208038572934842199026808168992075582451198730945635038770422150296639539096606315409167403700876885690027856127625416048563058128147080903632225091944159043978984855873780620058981387669815782144010173832625386256780843665722167222814116251029172968140365678675393479597639421107216621400612118030538794682785161259818802681894409469015010736507733552235379826904906514137243466868535128139041292149469469686947596378476219946033492906585634838846203112658992131668487866102331858991586175876182610386927075628078295020759729652134040361232848155867659017586808608431504022240346524246037595541218752653684916553293995232080748598837226824831870149605148296992148262531713936987966613830258552073893566684155132595032743533671336678511104261836048707291364689297508576801946229928475037356232626590245303099694451006823543449116181956015178715909407524602297580968479527825621219589656661934106825307991985424158867511874592526835952223941339874205445272043388553344256612967188262787236323556498320949433422605400393990799580638784317282293198971143031268158262175175759727704182293980773366580041096584014962624645735528876813468764696142273730272059818858082456924682706994962914952002861905455434437554412398353562617452281411321367460795159188214632986762481121264280212827313174412560849804067388149407268484225114234216293347238820273587130103277564708070969442635077968115876334947374930640515944096016178682881126696644991071145131138584899509706435454669512360114482419086790939205973341566885769135626415775780227186334792704770652714060747301282525239247498514517577983043541925797352008910698968603007393932096966243124863317163854371630421961023763503684472150656489772664353812129263548269377643816056175492130905176271441780746353393516107521409144319625909087738044510514762276286946786735918410607233651383663667500315442216360607888851199053444844929113495175281825730926947330321225303986669219215729404480904670536359882885932084714200527588580433336107159015395664798801469699822406503793622298892815379257880791309823056960378225175970398689228778079940843350014052475721173017181691363237548136919822870601499745603902178107955432312569616795513008417049260603596659837658200455943282078937730316521419675161889502724782901979716904152895647381006637035809299172302338649166388608452962949030674581846722763837878804863616805338441890580073029699260082243889758900250932207400524778435895289775760497031521766783229148327124528659264000684663695759226879608536830656579583046039242383353234373621330720316612170031486024264832359812353805541122007014989426531703976344676523210682175326385428497730513438812586558312130098563348951729209858123489008681704076916339578425851733749279187204628290305131001334173225849064532887202789844366694369062210567245321622753320969057008592693859127746405085979535778686137932123593153936554792335186118326060215357103289178601734282074336004093598370815194890498310810968049667046316483661649647913526070121542805873116671744991595074974866411729320406609642135293003534555617244279124856990926950440451301665568392677266802557211011535152024985125621370317617434594980855393309679473772059514345707064353568522007323354020542243316633828906862223211510291085515218280430219078915986840198487896835008598007973191849218000124159159840677534732434418775360342566303308967706223710386520928606908642553571057984450386159960919737796118590448578511255421833307872633059308896139237522261236359924887567711900175148591679776865919111841521551730450068378023429094354676610121100029225865090857872094091955875683413804082325825179148670480171885271349120986688831794294858651432722179027155075800228205947912714863868191424880519058218214431732969584397003874147426483124276576118363745136857647646830362803537168938197273992230597929835048814485064998913046385550172156335421661613880495739659850724884564619452819434150766326169434796287790464528097697375538214846086314894858903613158155737200675829430944333695299395163781244972401530076824718634923617987535210379820746027670752435773806176663220442649287393882936025103578639023142291367341998634316328704801241086659741425085900078814467369690309701161205013720313675026769313792058897865887189620154082385859103255754137469261831654950355418681857077215768607474320962479181999260801276150081595797252502951421628895051258320769581423042876113952992053278375840113278082190473690779441101626579735184021213619972352266401716438059697245966149829733908677926494718310649411765067256767772577981024731509709259368585725605853361514404080465794977969339431285597146309536797649896745166693369970369225682028359877412115206255495348848696790245975886573449736176267553043483912541379208306689422672553658203205182470124486442174859713041385518748347325919448188403561625656617873468084198023764855896094756407000484173714644790542401035723531040481204407691716375633122001634460503776358960449378423640006474144845332421982305978053789409383759585535376642558875952587982136851946134800016778884514764482064845580051895219208952949062942539343156025176242715536176426781224615539570187596799117881842689209996112781850110576415353399000073068138198077275428067215224561137277061662178448476886668050500590117214512320381273337022261712205517602316201494496706813647722995969082884358064641857096824153479033381487553887929675056774982069933971413704314513859663832707201323073503660549760086890148951913607996956801291236607431079656013718897002242984658267450607908333132661626523347321605111552433215141885563633907018142766631552384525593815453957259327785012683306269200528689485131827211918244362141640586183437296946693169252675987363378625215619849384432482013341243281391948708885278376952352364643430299677137821050228671146364112907804204938826275071295599028485197458225749515174972358593887922255055995134537846721392446986693044479241331947867120787301261633785307367064249093255915674021240221681538747728556448900009348315868435669074650199136791987828246755065083724809533667180130892175408618861241197383297350350331150623257463999991864870000171493177012239030081256425795545207412250418795653132478163581232572925517860974637651368206827712322187648952389770172650381567841926149563273530359953561198529789247001051474168068819339314166467206328846465927569940878586533816610875207309780374709842591571488681123270097663399747052909846638759668151875473994392181286145099134646037771042802646598239653199590996811470913221181859847655923285119097088628050834556757441984533371539543804262028505732972184287698003377952507932642958284058481799653737024791700078750010205114494970619041516504491272873746634992570270072500257282815460491799754571354180205827138671109531089533910464811965738745152645679825815466744988586227783841134054604124308411625684123048253562952516025772223051566665874796434864404632344518000863579278560360997768351471238331561794202167649427618799850983264329858446065749499071653048076119687705273464116998133231565359530174930903402324429999976833547697342236542325516612407701303968448400508929741461091017925575253435848757330254518944798640853170571801851407406194688741087108403901748806624098273265574075045636211064599702855422953702629143446496866879801456002809170076327602396822730735011092797024052286707494719828090360925545874495986740478130975651540667808252127102769489312940533097035388749205933479702111182936934413854654084207523207076841561873663618767597080620916585565833660446871451479184565538078934701952717921398096460198814492605266354571919831181530432778808694712776088617943605274820452262530052953079467367043028526623949806737505836827509463218729406407356320467326339149886024378583397922754772749932300410042666326548005766791276937778967561856115621939328787108120625872584190885886640403314002438564455898822280907223298602420887195410209766326994828766027301265697627013163264383176931875937024738728351518176376117379156700651579723076909968564216619357030552772605169732190502796518055579739141435572809238816591650475165801437795336030899510699556005220826274675068117430843304631460289782974731175739960941156901306770522240917564521426208701925417523553238133879905642489772742810223164850004205162370098014351773984434978173569839205332269391570957367044058517538982090282964702958416112817607810258151891716739854716112511362262510768554359033797904492853788092145711921273919890678172244152867717429953060217761170273511893989597808794709172482153398134808606300896320204146096856585647904462330722274474508311659331034417333825596904430374821495456015478998997295973096688838627804981726655152513373112693936237252552475214302572563433800428603216883391394805411083038065332215825037940847802342556241263675537330991482053541097067090482616394853035224658256217196751349718521140456859080973304885772949982219588289553862734057212951809511252800317043383554093416718868195855505325174439310897317583700369547069667663438968925344361291808572386983238287073878186223944309295964547561446074550625519633060783955515464506961192924616224309802440190903192585547293326341986483728000786642301805692864590199542520794220591359086207936987419842231378948799163051854802631876256145969541251058161674497106485772390334008152274892886521600727316226499288724093498527750532896776979008109820740570937353804069582665330538132196779071224506113310847061122684183482475065238187099764024942627659674359785682032200043133964244975432156094215177365897703243569355169831640248370470922278157186586095973815246760262367011281265342118555330455183676211004232972369920736814787674768315486842962741713038140425137080722318362749890117172816526518401378576094390195414438278671092404822630932906867079791868341786087580006312606769190069555780381981099587736295128612155347763351937215613084476804786732732006033390317675412730498386665333097696172518565453136128584988012201279875351723017720735424478791299129523197559995500450961934141791569287801732962638724278198742616483356486080704744708679983314095631238595068136273097663346424907143381964510303523628900712117644025950201376476279610862179984669301595798547617102769067678519979664909524686391305854346350040056705479909796528196671954131050796510723452041305740448001786496623358148620382782883613897201490909684825882348827197209943207020465997882557870944052966516978387440630561517647742408389032283383480226792149061056421750530806319876858193185992212554559422246579486737966715318286574199781274414695823139836619619545148085323624076212562118765990044690125741829870417969459019830794662335636751733948647641342068908704994175809841205958167811371612244093134207369124902754489640100472129279831512487677295172568974438922364694281194530995439500891267193278290011170121720370565206452976503982892573463720551462701237116774743335143206256630341806740460374894113686277583096822784716031812618954382973051327813781845490120116324727762138345429212742632643161621651015768249322989669780304888130887099954687808398131515335913163524045624892285526074143329649345764500790117227228713125252421579567155613800527069787096986767295903099256909349312165785577307777077897078320209693535741854744890029011475450273583221846819649999751528005312343074519108132519886893568147925798395320439452067804153622306194187444091463222284483350188497695465382940074413607514346958897335254200517948784299669093273858742939435272961077273756750509689308783706943724402605113672514225245079507675212360635442406768994332174885102177233460764192947891035553306683565221343689527492110245019600745462110024491118636319538351436865734343971077996930719025621352712574048223133908963123614856178194215827097050382869591127929923447655291622503301870815520344277250673150776982498154558276454323932494919980489288344897241890075209857654448453274074469759372940291317260250117332143267738603815425783401442372111730193007542623038039710509989389899845996562026164532989253951646682979879339286076726209419046012378980419216027702434389770138507383373277517930381608647764922315476225897348014363486050987238404838343416955916952779907267647288019590116876985865891055502382580425945875810205383645378283757857311314721909443015655470390839829132560527024023326901762209422306061573736966025584979685935563803437194203034829361693857712003842745892856884636556992962418928826888265828842793922054460195669678861473090880322503401068704677672937130267504941017608983608907209081547034670004010487859201453474487013049072146748393274201779059163802078200946420303950433842247163919037862478633847549822205681924509684521333943956460529096648174892319363216611100755080003180971414277189336358974999338041656350694427040200567415477965923626562412235534078519289628379579191455377473820244026417312693559959764474960490040129302999608189654536089828296458980301773211209344985728522936455952192687117433721255511480938731512996451235779372806181935117364965321429863434900829024860099197855077769994302422290863414194385657363088039585521934113233608197422690025854889544664000234954643858075838693202313246758227205981602917969785549693121373117602261157094925237631981169025536800392097082168276316975127552241404915404217335428413455737802122696132340889569751417047916118321260656765510217405429628333848756838024454070322272554118143210657610565050968350829213487151691619586078832105299112362080573441703766157884695855835215471905192097619288193354221097987729088025465507488466938138922853360607570993555379710728814755065041074184010734659885119265166557777583009483285167733167455408286499062346885594606032936614864870446813823546244325870788031856208045158684151852016351871777003447912736602405493559065209471155412176401087143718019364342084011064262005227945433493028594211097188888030754902640528212655272112733862474587339994082828022211181263051622175423668423542730513537647841731040265041894962413194735596627518973520334862552776021382337596251503057696639171832190616890733784659982745375681875286630696939617855414792567047241510435873982275495363775625078792030364228405081779429995781482317096857714976601605673910982641176140979351885624586826727527305567536900101760911164376054165635052567945968962872242272019026274816248296052348311857158437405041573945621076376323555391839773360038249989563293517590832889352514974770887904982833265232840366106569532134700462870336188147885476953804001115283357525447761082290524552777845669140858091919852501866296175494412200318454497796969122861131004602999548739879004359949152464673756174172455318552852235653162024135676100938349898398932489636342214655942114789348073939114427853442953494241247917198809440945666114118872663149166207687847910173246991293628972260077969188569311051989048665042994954995147780299679158194411178796268820276432966711576180801817656311246446406333787764076134105819497254128574618514173338376828070646628196295690866467583562573993247856499772838648979195564830378264096915821857337392623976313901260539712066529853943832668853971065774857720287297257797962739611793118938131411194686254037137730341293115289928844355792598629110735591603650489730916358086683134107736211279342414185324065763491558702365492229329441546267375123311341147987797599914646722979231436643710108681248179830961930550836442364839183838162035026868125002751912023851717505145292411102728135553334644626013968761253409175791321049798691107138191889265823484081847679412190529015178877288133100939122184853232848939803256500440673174201786188024886086447967385167664903592788380309071369519237495281289881401991547728710105279321535586974194037771514452291499356476751181471729548440268885723821577320724281528737971746590151679227659929086230382561163485808267207422932619633391915491132492899866304301926148759598349816048817231408276175685142823435733138946633306258722858086011559279209148745921526039404349705266378309873823723622092445900757834537639443508022637484932260093086607191600137105207207903530896004589787627414144802594691153619214581116097469519197469227506076704405265791192160631835470119163854637380830907317700821634175993911021131127774657646146330273762178713274754568011393465144948673631901718787479519079831943384092102174398230101063524849261566521698412907355564267122617592107605652759152190826961015902203692145116316111615640664160293390280323440763817967105503798130060335732415277878662535595277843533270862909038171583690224849589786218121503319661394985592105765877716607584159869702174728855095843841503727540535540984648113767240474563871122290948269970668414934952564234015552257591311761174125228561266013200440360910176434653929737378978758616106033388319406737564371647769834494074278461430802011809379013502903283607389483728965331681599651707617152747971768687481788142862618216543122144462174975750493377450985569288845477086304456942046175986913282418566168115724009337835963377820492449269932334895613488222480304087833274428119526052951801987290343323797080604374959290297936206840104258640308119084388385824046343700180059564257199371016352238742425261283886658516807357472484768925532897483591428791733405967796023428541373256475180817144131687421846127303987839446387266427617412191912080529940159238308136091189989024024530093793714649000553230997551502135321259290035422262738936427423016404882273107262448457528203564540279375363764959743947319266851633565917713338848978890353345667340516772162151285234559361707431570525484302864429833829674213530259531667369367323867484592099937322109901640589436673512481709460304295557116048429780937818396148325636675830232903701023165972467426826010137663794419822424323298296664313052912823263816697197890233285065812863752655446614257444826198925728659067536909561886947976292583076506377631110930795133868314355693365310122890118297507117105413737693023113244550696445310576335200000699469222169639916344964126325490745127242275500962014766257274364924682233486486716783639030237193720300599876555548225249135160140257371999138550032706968796033922976574309707434788269887813565797377362035631471581394160692705250457899889861771776427078732271324878404490783157696860714746231618838157538013668073923609246859008014431508340633415918900909419292075045158887068089701620429788514361309372372147451840900314295666207626008910528987190244531884406110340833686448252036310914365136378077085575806261270324073388452533987707076040668025840440507521536210876399977950940855403517615906902089263210001413718565622705613130884309368772385691254491298158047352209768381816718417181288320533534125049832592005291802771404271726271648179903083781529269625329450225362442049525101907762361577771252852877396072946499775961935867187708992225466285754438942483768165268822252278345671262163009666276244576381547754519800419985426154911409069639103926233796379437992627531151887261286524080163717248546280536179045528835146597014519177968723395284126254180847923668097791032854447205874787101575564003580517770331695036917491073920251846207141367598593727107358120637388180047656797238249581599345981862000665990455317776947955279543522714001651537055965879722854207523500972229008626764895822750498437829546088600018500743814938464224105998006147863783389224762487144922672676670732088905279002428463549702688418903837405251243049352957149249372979243421480510845056682175609165936177207965788221814858577952183294885484945018722191047201787394272489390918696974746117350974851599944363107799253111226249067978889088932332687960966664041406274188471812776649301319996129816700933780659077659325780578752353779712872953752402256902838685422477938681689602117016348820874020579660658895547961448152336818331353332993826625571881000739804024994303581904478585575290491821435912474176803620937086407899218092730276062639939719880956195461458490951907038320791209202891710839337303926122836493337423376920447665458657492536652760583995512623803910826067180002789151246534045016956376430734388540059614594221641569395406594472765645459946282638189814924210043707626380424736646529624974101191930325253189518126063585811594265072043727429749419962625642102317306898772439940089605523129656927414303294312534887880863178001797977902911057604674162400622219965802043353041093653163460636008006350414859454587126316485796160443793434683538506100898325032929432820000320143072082719476667735003968338276018539281101833207659915436529738839135458752218246369851341608499392637490011221807107784943358977006084487559552118171107041214030379021191196104516972893119761663916291120522465362957414974305425028606686190643084537233766323343230268049083382797415687295602263869014275787536754975310160015839440838562800405291693347788802024269105954295980678773080230795373638945285632602556185343411116037496736485278050935008375413112085123127124086270317566023423773339081339656696836373332551531817270163383507517024222650665587179763447128682495706950228034317373954070452981142296816155581377458877362635304997044050561552746819702935209018984563323516700412964123006624712627355596643129152075218092740153888577291390601395420543341515263025531006404517849012173043897246613486483293400010603542879155782093631162346322778721448267314282109084152218626914822097222471972997376258496801803368004403439101568088561677392006584017758683639308293305800987689284765598163414499050266560815332196748695766450949233737974808838800946661953664561066505670693391033942936085284278199396685998160886092473236388166458573559342284721833838876151965207598712522128071298063992453692242475653839370981216266277859336249198389180807005417297972883363487147337146111263992301355046265977510611214693295965450184757070361143391424325153375199222795418322385861832046445430063785473632801695311443891939046974563359863453775879274149409340364791441153723736274567168267303177961974263542389097450695341370478860713985277624452162928576834160054159268138514391331466917961585433303809136601768515944803713149180367632112153009007029917856365985215767289899650933055335011625399161994258684189574025821829717452119438955596250141638546980464499475003325709334559473879989840863569531482767436971904510606817239531983150328183783432449198307804792788784162803983882251888878903853981789891237711886282207215881265944131871275909095727849119775955858637516414853696280964860927785590771938824696064784369244268476705428887339518572945227164046238331863491488878942208087837903080648432098960347119290377199404070813379838804594714297496625340170948295001313217779107799624950854884165859482552268521109233464863733462001236377975412253891895999697520333975541838415092737476531319659438401234652426077560157562208952390437706343503739504812713695488594504939268000654400962357751496269132405055280827461609184556229786410122234189095464661342031464533750910983712755402565017423459286498780334398543144960843494880974172086103203524826689021953360371418420479917354713553407473114937599247028093587200794518926019738865769806096686438743890948378144777749247520949441867743614624723331555995627695664001220567122476530291832707891968241031974124323483095451365493138416018596533566563608792451609698317487059182112918795246909232190065570319309716651290829078578098265701340422413296563273987482613240071429604742408357197828552482534938050201322125650918385577867588599688402986377389310071367060794513429970951787336400015907376006708836310536946631877112639512898075997275212420430177809093840072533221828477728877581964548363913082673947735338817945754934505375780457093917919737790862727292546735121590231370019864965120393557905061066358382382074178863346952832233294864593756446349718864664764250615740234384945875225623646043519743909951680632051524907044391619974728471714047060876041577081365098511660403719975972747072292405251950797108449382285379363398172908998459020845634344170353685317501003770833059563585141169982608128494475040663835420543257656169492921812673762860417379542191160720721006021403245374987082376365825049117960703013295380051387174302635305761913174353457006874969214588091341740194501731055857951587883040153941522951205488657581591281708794108337904805504749525070533222214574522094160573133140290468570253976486760987544857399248269013192469495821210462969682786059781519336165120654463540823741834552608127759789194236696046070029778666708990161114871049225822783972630375847336601201251067405889190149797922236330848503717060475512952351106131204211781159770583621446638188965522044301292493351755821464836873621115662458403651627246247306809704427110318862931583639146218687010576759779600891792690671767151681987491708303502238217650947048565301826522928216695205928438971484940839920706602054935126173321747945765210275409781722317026775643458587399726615153189723867987349230689215687801044457835882985977727793312932089792022352475957959112539935656175704622823040238386046141204103196117644440671783908905619344559829317418486480801956456565480588877851968220753072302064656102471406062709243305499122608616793794319795086341912708341608589091696763380404685313415681872248227494566559934800554148544671895021993577388822423837173759184772331813137367339890394268112644546499757696031425511995446216472536637007969385246554192146305289045452581921124825464136658142346839623912914058523497214570409394919071278198856365636863629264337402861296681504338800581717614722379442240466983589725748232361796089464383322077918844443508339344853484847770666582672954574160226348015401572648273152851465801798939702381265033535327419851637239526947337563541595603825487456122888042582763772643169862201356931046457508660768191228604273952438471519713444831185302506219477586168940756351096970437372993495632894514759872268168438370227488379685090399676034774367090434780389475581611965014440164021791142613301967982416388888766924956279754337713079547605366515565792432479492467926925024084213598864124073828039291900901510529593376483761030129226630614982859376945682953042510770636639800069957068806961859234311339999721932586035009955750414351906574867042631960503653062132576340705866135081762123442090250925986162992758600370337590643852413697463019730301763550785993227884622988137282115106472273666908919306610940986186233282351560472418552820379676695183329709450223794106146135535158458958052497768865078317586280006372130337777282271115103833715757366010246669503438194780963008791779109059131510537033544118007057350603460430376089456407631429318986390751836783613269199861395182490712520983532611825709846897532852754183789877689060267306476886009585118575052094207850668158070059277829424960755908369002357626966031628910507257769128743950131915604120098061508465516570475436434235532040270750987925217330443735770727834916049405062573877469307038727115800221250969186090398530308770449858044648556628128554735528966741564538443795800027425177088233393385356376837785857948598974595189686142374664156340277846806317543366277141219623560122819953405962896820292359954040154524453798847468041979413687474382027528091708439445651947346248362093485170807769865269451410812053199473265161620824777288296148905413746116645275048691671713742101860838989903996343961094399866055509837498471138876906719479716587140744928012642506765860974014935517370950759240767359702355953358578536096638459546197075145821419915543000773875730644197051224129188322136845844150091787434007800007995770199714402712806513991006393100455250009009679388905280834717643886513491312508990032728753374768257791838998445676710154954573774453371794613873490497378465776204139010421174102113577889032493224544614828394712377012263788302821455202905880355934200935376209517260833548825547744892228410928186591985630646031777096379539261454545625337516419913026514401674991467514196885482598224700790169325192627006428035254666577388187220085665606497748238344050529936677044357769305080759085887989975714911719161060212014055980726380023511817021180107033222096160531192190905782097355300805719543972771893544636677644253549318935436957287565851852771876128482633995905115995100915335747841492155908173585033731514897689968982530198688422298061543240513917132940654686478817611156986073982711495294682964186381509770159232120946491758050182724707286300958982129514126766664664959150580878235436871284037044658017416266752801105143688135147185700906502609475169142220626415538177655846817388284789187484835993180448644053643318609093261493449856604490125910296075263702550912693003038299257535190503987372884989751213964992152406992936790284184388009613997930249877003968560856371027036513576077499981047041069652286989554733262712150688934816057376429514064461330513091593169299968994861896192190478712637978137970961643930265829111647416420966893980659982619460060505108709715794778748720208793288844699873593783453678341037636172917678236170087351734853054977886472881177744831249392254029555303624553430344838057936656015953377042122876145550375702777228384171172049105445283895611809465214154877144798757103702626560632902549508731021485751981353008009357084959723723829888010027266247565010385605098131677438966779480292005343690505640153229464617047705027576358766275854817178792990779357688654924822834205069591306391278117464740827230222534924616889154448296788599792867200272740762389403186338606931579466863552938471066573793052706012131660667497819855011101910570817638341447701100363040425549701522429605311425245926017971490651466483584833206182794795607518352826723165644489173205173261977899342678811271080068385606061464700984232137135155816343278714266578826617595686375304026802194670398682392433106984502131811308246595879052338194015515063230701790113817556652037986971827535860421648411920322301340147215285190189481219381612959728539265659205346219789982219052014512279397014384599853528126139501136887657618979434301045076753755212266860662655905037025560260259431129182687219232034513880590627882507040668395141680872700917285964185840910435336214602780716704023769675579469094376261497823439047437674978286012564258346805293096269661769270936382053439947548066431964214213323186762138847311317854032433581728601004690844563702584229384383562496385612437880645264043697228697680323486931288699911915935171513605438485906862036009579748418345421796269894432546296413213830022872597091617438688542331154653800567734339646192839967659328042947039102454006774203659326149819768969080557410944916000750759529352795550856446255761722145740781853280739765357779523997278388304290537677589791239795126383436462564192532329421978787241130764544182693386985549750999486493368422989621195684173193401664733269210176730839873830359236557695798159210634159631723987687767820877723289580764031236408655035809302045741028300261623751171969523429136976880399418929157285973964026239695410322430092204080183075579179199469310860708806039727849856555698793916947169026509870068306479729586486013242375334766519153633906726286783199453408026438757274270331951997894380078767558898485035314011114995388489482621039073513251276519064223286168503342807069685735612945464267135582290221305091793266972677726527570700197077973507112759373186131747813817977796886122586960202566295963003704652986304339744584127498420883357266948092223886025179404594706308182401759997305314707341648978351582772975222803071760878839612819868741466730334267537379546484324989156004646118146250095446734233347752173665431843169720335258272224218079061700811160540613745413475355457734245687667146350544893643639022817718024419084760432917856537442904829269498727960793460059486705354260682821668464362018727195176164034861350285259263650170216968828067019789292649706612867143274899360713369580464233942762110638319616733187160991449344006304590913259430934257833452613736011278922514136556221506763966569795424768234824277985467160671564443943361596103811363655382583795810529132146132843829254142868970882246049632623368024492029918700364530395043162294375225602583231846719873545690431078963309089733627445735301001070975668509527380956715483963420070769978862480763488810153513971657169880269429893415503997453284303607864306587558682660287700275988901936859831443502266424283197696610500286809920288041459536546910037854497330144448673043130249348706446846597533929503196652668465238571776029010618520085963012746721914678812363401596067073210304447471513659769451052491826894968059207240767429893305049994258698519864742110016683244528227389552016769226574270173245677264352571999072120671174696011421503727855634229570088075048646482338852198201516392289369747840637068573812282447909370761778676059168500985050701725901367216335448238744502621109127525401351486420554446302850718660116161829264374107707631548451832241179156393307909705644323927014307570716836640780586268756003339484957152760501710416846923432888842182501117713160434122434921777300833356429844299697187211294623188991071820617883004452113806542564726361417658187377538228210833335425649136770316606424842258798320286970866449628337889181258189607719266940001807320497204303281829636357030212522364562611880303945443715514334244713040651920445748650549400347733133931423880900302017969033933861377571322801923500740197687558832006092316500215020920088422769746642483226801180349041763794860320357737495842256901951778216985579216705558944261000768858493834842737168879459047086209153299620174183312337644472890399800510148462783331555062634780235653631246494182005257441748424201331526145014723047122762246004345341643392664650802839016320829344175758869227856543533174910792767671754274606182903419731561100213123847771144103661262827590877661071277947090648884866780065029447363139065193395451200006540163213525210211046322061862280173304913900480868787998287485839206576659563907867376527939020292360583928131590506003360360639400168729040491365488558462056931082194446584273723158299404306232753976080124767545175428647801140986182877356290025841723110032881691566258909288645663053318739467053213615563549055843529190716778699982843564862993383408993547051788299582401236917489900415414491350196019791322620298737313552754936524997027859459738615514082162081711795386811071545610631425224973092298584444558997123226501012846966754765586092966388761869704650907603288184501584525993874375684172075906836493489517060673970893126834897074418974925041590332353297356923141775888089938878335906933943481043729792093586414484970686627067400875334718397332846811171517424701285948053006640486182341063277393518474233918484998006651095864844714500271235605607677535569890030253183022404036075740618616170398228278508579798624822800844892739664660855456366282138820566066974134241957827020333157202192889586688739189213584795613275464519284174780196741881882742386593165140853087377398882144563049853337157660596867707995832295958488964519673026502481443588194440133412909825281881732567596207045965960103590037319596925202266618267591659444154389754274984633978079179430362540048992025576826075203118969870363640099750407205662136378553410866654129078794687937365768605687746613206692841013001483663341700018052550248134952037614015857907882420061710266270707052553656322894304172148988917435696000893477408026190660845321644739599576285494634737991000168946961406017652571496992334723095503509886097106973572912894477381402546670294324889567195589390588790774102984312532994213782373977561823224171975811270941303197765443145187273217158888019025088741437401730679838451390165722221408324251336593942488539678616863432881931372460563072956287454413728546940209557545258937192423730946542790993278944448651426599096888278041573487738421796768524898186075224117536348518184502626270567273810740546060188790713559922894813491020213377140776166186973093110695213705824484307882364755723060340132290814012158598252996023782409366924529198184894764478616550360889679549922016451892949981504838137540558476900678409190273887996097578898290108399106464437485134913073461542704809072226339655529355622788798183215459578119430358397216365358161093780424220551725730345690682509190009664864117364872136269908465616548138034372131992647102481938889019390577614008257286711526032711827402878353569494137935457533891001831392302783085040361603724402331968259303633524058363370083492808479274070975313024108447457523036360542822186804851475902949767281509013324395593872846863349286139982192755448559375989745789629349303095574251494832638681360015416843002157536541452285739986067513833674638934483012329210661217629040660036852311852301434215514900660571165058076596132072209132841816973045278831544496850776005411191899035007856439773409430635104521824824001740847448576430091539544981030397605400961235646918843383097786619739210973691908572409042389764109975917702946422477716478336359303608924308356333830059957271204891624442730784049285121588243358645991591288685238003216144910118366224528597660206358465480754121289861209148530289701252142650440958917327330068085574416744474686476390447141773793448974706442100773703199644592364989067557811178622673324000663401832917557645365219975018643920168470348403552509902792083544638777355887422042737661855115420689704321946740348798286844768079245512220182613510889590922406456060141951567979917918307427339975563272440810162793082501980056747141709969843781038266197853328294040461835988809068334116369545466760087736724950786373487958778826806509014835754687084320307453866793050013043735856225631269029427167748480255830333481975785094918198042924708110883014829217510523891850415331971809150822802687346446503920220013640449432969292959762693489478581484288220002154442811528619304007740286534124473908913723935688162694942007452877070144295988928269352582650482824430071512362346546940035939529492273772294345698649310012955800094333606651397820771639552914208738291277607043064013444251866036556371435729642547720198094215605437138096031745777050869958991281798390209229788674414273236492021942189623897783940450223066196209636602064966851259035858623788498226009299773911013001776606839766472610456668404103747049057326394477387620394274622428223666561311323677261118419620564645739938854877829892804205308734519460870803450334555156122555475802080762653375347889031460145619352151149012002976433711585638057135470139055493993753933832126840865716164545261409086578303273603683123258082373845001436990176141730259484809425275934897409215705937037626971375552605150917947270608212591318792930426232258593237743814954908728105012641246601008046962523757000481222428873004737942202894018120316139458952856674813426062442767361796018483144255427847207133537030353551341873904262031858461664678355581856464732823957870034877443901179432006254652999411583762028617143331296466654921608954569920039815311350643355535554739439317751224089140095652027838778139715559782702864508261772053840916377148556066453390793448672543322727309432527713557333129990577802700980899791577947165595656022183302626068198673889496291466061006994705501367068625632539846894889228962348242720944525398524382693440129753341063148137959658822675554829259617427711526448468133789717128848173859084502275771103206470459768077007548306862963491047851477997641762002499939335283462706510838257659308164219499025492372082662255173813791419355097680774504675525342106162055000200378088691600587184075576848768952377062773594566061468642131022539692174000205013547756540291111419824916272236855885043285981013144831209399705545343519532159557839446395486689909085807479581729163339181660088819646743975579925455679316231029773943657612895647034863259409757150593254245631953411173714168519304748205721205258387754450792436488080680534416304003329863681018890612331430233829109103369375766077601454269796905850597038320039513495866900043951265124274443248062453362513469326987905905058669144613061825259568805533841838327495564275917859171111748571990218682355317348700389322791636598848424060300086857696282405551660351188427914640521177222521218543649859015241500082866455520382899321628648511565165881869713515530546607977120634699132056836046822078102045844759789183117000514393986838520308336970289707986808996438388881728304359268594556609478403270901059280087567582330846631032505783695429622076669058580971897013560208997755003930457592150568924646214978868491640264818578296742101819992953674993882765560219123410833436364808450648556888737976140271027628844005065240457921861464819822753056469747156974286173104610983453970660680672736982143514155059997602797405561503062536897286405429039671547028489538829428324165900119102957449647655061957194766911165903829976309423549098758818732918421802870705188590338047765378959927854934536937799347151754414021585403238705676579337541882220797316012166920176020460072034438291373170334034299086962935528959997295414331350351082046938833001492988533264823527764927937612525382522655553686334516191522929780161176962293546229658130778320974804345841093567052416909050856272539251792578760065708478650299191119766480163281738193252509486936753007290294529844107537462166567459216890414157378994476721478082756333784626010577360357832634512657385432883157508881770804667653729638954029198337085053410152150549383185568789089470290965407635081036397244887648966139350813344742595441417555052905516037970411036569725743439754625094051139250559815274496749058179483801103524516092419786892868880413715429144512054716757413645953645103220345534687065155610111340790255623821100094037016648129675005209499435350593267546276921881901754374717617290829230022735762305955427451317474003003654237433599968255839411916589063813615793598440929672295070790425971924895122721764290781756256086789871032651395140804751080022108565522157989239097694538714200048692055148746089323724423369077477865492486844529856554343456299876623128081261473044194885976021558118401950432303027899555180176862385791032851368717678807590589483236256535829506867395648275122651989143806123467926298931846185919447354987679873232649624931392079910771307984436840314697314275836915521799093943362394833945895922293454607173023308846998752861415500200526873640331019363852877359381616391146071950829868694723693701883561364785896396964501899988154218997571308668004028702608679811569882434875934457531308265418368755549774257524362478441383832084475510263370314766239464313453663740726180183526964480565222380956141709643871254032399861075153006138069473351192969325300909789944791652948973555782054862166063406211541989555307445638404329682598107139977991259044129783528129283077108467007847981281892004877260736791102437793320020400300009811452229203076705235314387447189914326063686779903981250285325637898842121713727977733650290556097890929762834053134898657358938682035453642558796259346820512192763081927635094992790190394156289388218714550818850398547598056978572410867402678384473796097360749801293744055467903961621556951936805642782140222470333040913337225322567686445536614099507544200763575235802196295747063595698004062375015950498042058240797547209069290848135528042513438262647812197282971336740267093200435163455345652201913651477645371126978720339787821858941139347022834291331076966869235203818994127441651973718687179155043120701012647504376843299503574392756448109898965931076522039773938162369922146266441095637159857417829724188263683072710686900771038449943891752612612027067834181529881637774078460137932557748348028242584476503657155095933321196632251396497799147390584342929837610373511227304034833057291591208060154049066581832365772736187904080948400969595034249478242485994988409087612205984061138023405158364498158046771018342032601377901753434806588436226914851840354863033266971166766817071755915622866517922434493902373205387491874653294398513712003540969848039346543687738722824256936980373710395645411532449985598723788120288542584632656424026335451081810832843613931421380829941883127727840198108122866836533300588751804770412904665436297738159181992045113050517687361192939970980146109579210008561623161608943063726791754121077915061539772016437508110538112274052508336085159075464514334325836567386648138545694722509541741152138967291009432044754812586175654778133172897483246239164313867878276131240501656675677029204280787383990914799102371567133763846011641152745515631321749144845299394379426410914466194194960455651246420663509706024826910912039735656200455708364102078812782531744822915194638778723844450704344289766668372221352653859613526709070628467143156562813775055106826440098994518186320920313089741210952443421991201817660729271722748202197407109552869097667780099389358384728624187942493853122744522130640833896478631875034521579150997381437772059566583990137938200065039546844577565595517987567808239209306670468473340899755001187150319674715486311287418929015193386252847657565405843775716154989536812964934997900813383294422915531263556691956929526909242828251698864018291699393526436404283288118823334103404530228171660116769978818868426781035988051111418526736394938503486676900808702723229194010259731365240237094908630593622518950404267692163748713273375705999770745865954779139047350025185218964629585259562826440042970214982387259625297924523552978532785469184334699586439164886017585316465261660113513673737925357713912597352707788369513857452189697952701849660207119587744393440427156595444527336432925841083556681393956166865485632154857688813664486961200054831198306145197819098715834451332807225297140908211574801234394157980386557661546318503113888080113241513119799225703440648752154618088041588737768866058474840211062610432835587087514527645741504117779233023891811306947714827727836755940169200112171312486843957319349777445451672613768296824227545458111436601080070202628595288447794981849938222329328786328663304240616761763491901957067365612187376096986306520075677874962075734281170654596794511645888731100098080392832680067079279999045459292146703322545453324799014819773072353389458336857233620867512923955434499771442372852435418667119824861103786429716366688827556335598732540667298374595283753956077118642587840731821150073171676106750328204016725524890757518097409330035234325992626148950582854416381714895115829480563080165179835021852563063042456690621937790394446742106107540023184229634356156246068875942800382258369058485167026913650682483914559166509548252366682048191175183526768760588505002527341856267706962384901239186244467790569222148205389787093532941684698591240323898997583028049221551265805042830603886297626207796282040858204382827781252204869142508640895729537702846134575585082772102963201132910858989022285321085144920878902365476966991358346220307034433616881450697181795752878992982054033251221998618702522534367608939165993429429476957752517938901377319613763159457610961450250366199820805702814670201948696960541802984960219976067059543071303366210758984174256857613858336962168364072097561263291544788048018457299635906695199458746755738912351562150691542925994840701528499904657223531672650110464790139060618397920647877220041577366231845927206443098771517973451203414755595111038516227739164088664757782541183028043583400314717459174837383619732543411197766566577300263937664744142706376327893239778975550021260647778076017568994909946122164312189271357762208030831358299883036845426534727485841565826633189601003511971137434476356627419247683658081444343552972293170844289632513785003466088766788143252698184915355872346832360216748508011617001649826491131972532853158474140885579661684953602810900542928472387664143742070444956256418687655593536522548878599116914868099719735193595886422167262817065127043646115193830353108044287627447475275680223241865934883252789736118172224719732585129452679497766864048075644748871675287245874065050899043998230431377552051656169237948868552221872882750710964389777037287567543169254557382897302737122449938026927249708605031000885277732839592688273395511244699588820745705426800934357649094940589045052694161931070178069329314416743492727447552190236313024315489570319150588261647170835732760111685877997485781470248579515089775832516462053119632023035622267345419308262285086482189357846755615743629641454209428019213115299243024281715497503188709292882442114488749106957912349399173837662226728704471585307422080641404270454255492358884158991357167515354283735840486478759064841587404997999025548270469777831744201571461058934854413838639279195890680747677243231128453249219976361813685871579434696830258412263403937973531381723315619189386122992659731124415419136462596065570570439805575644015923013727867053359541698988320275965465299217445134888531182886687680798556160846392633816777619943884438084844363119668878899075082841826933301004990325067083726878602506845482165357625454187191171126571754130160124747555992809740813496121949900768471228777348564524365307098022692119655704198694684024297220165171955867881200661485547539520709018937651426406621083171709366099705347258910935961820031441085239921953522250402708761330133861595660772669265917398377914737650009673447560628646571185525825491296299211376999115924352295373591579131845096964483130168932009278041042986780887268458649766718378765309560153927434024956976041871090861317712271943384525165069164594658861716010642286494947611754702508631008726593210522580567864744318113242728029090148588737713258165436938651357286621577663436736795902255846574190841098679693814295802006069477543473074529084396494825058896761282264321575642314617422554471384377735495185718811998419357408075728796324150256040120591119834674181708151326411616012992619155930095038363681874595097126881913576550589312000356452141201475728227839448152097351577007133207361688463624775942618857578589617282693108111516947881093236099189454005548077437365792066894046508004407934723274166994117921777540823385313265994977979893055344650704410110538953999506345294330405447645576698301483093310596772478959093416923924963613181939506622572154477162079538249572771725049328788787448307698920494449310626373665666624548425445960538202330679984144208575881779908659451678295182026174427194343065755435797887557777444385739646987779760099623108290089259152987283229566433489724308709115934184067083750253323490937655133769074016120755543043067686379782251364302739158548010213113953784256194632125814013910706967928016878871594227499016096004695181246415458238361342449612373892994534879656216270702931339830084364422699376344688499511537530240234358097454675016629910343061810134575059778500410428717078734768725011809477427686737973668307897722825889265857556078298970980988331597426145072353058342263783092946348260565434083673890159044969618907070869429999018076202573906131879238909572858352694006713170661108090058305080958325358492313197248477326465726359914130676109561703652519808234156399238888264266052288733187813046308248892198914097484500825527272048939543259840611481599891572016977833788477821623025076467855979457728150312787023212140507203989885456084565211429126729385096643326414337773915154516351787304971787379728062908531059016723104659004996389917483504795939233365903057493358683207507655187135855995810186008369053673538852242242686197074482061396503796383856574684732529079451183595307848592153032805426572070253901933829321707877368902898670522004657591834113543509088185573789410857257199582053594122304799611041773598000319173653874988556667062863876685946396545755249227670489821938547234616419786419059942555803017773526505263370692854129153792785709327568326588560873308861248461786072476544019932471437005705853831161166178798213175146874268980287404111424092565784251499164051121314995613505828028037071173666856240959122353170018651676222858416875621808334303221222211449748613462922010999302360881900750982289952914398385606219816952400459192424460366314188427917429404519472410697572669166924216303329796275691633507534001225178183062606855668305239106422398037113261168882651785663398022476377408482320481967795440504081084846143780466310740702371100873320259177869509277736044534848267513338358769762135778176489534077338714358275909252138504841262112595647524026476002774766863063496052544304573288345041679123948862274567043650019942900429850324657935189723755953308630882383156947284495649589208501075315367214072538388903633955736106566967541037968278282770533240090996041243983898629221868515757913473496707860005500158132385974202644088125117741537687837680588392552895045215228460261837163473081677389180993022142150180749424431177870298059187575502668953366148532944953378319702216351292081024831743271721383488489477815173407797809796025381969558714699403117219263110626742064339868639886943440523505503074831320459039403036692214820793505870549236590927957374371776908283070044642791938720315786840489885250747054539604463363242644833953694978523913668288896372696818707665791304082827745089117602996438296158636799875208395966400069838022302679847231132141779151330036247154402551420291048384833831701455034789655675986104729390343061768206596582916744911464205160675957148044338277487650726353676240043600726570423096243469155949443963112140813853477727025086610288593625420012760655045550570091887006169198360184971811478898325338229076480451726192220657579022100279321124873289102372146270683320111147621924265169711503618691266891823881361663793647743224290499040256353418924744876428045173289881283748920574101487807542483510187155080240564837760809921964544196882117186808966407809193618509384216404867666348863438871777054061470014891321276072668679393091155506084636384592527835238875671466138680837830673772727820633835294445730743386830000493189374649582315418584259330177464659477631946202275811774367332356374884250751582455277875000911644235783167938511680930838057284564084097865739697484648140913428722822423776004671572635198669818634100511587766578211074737510909613634715079948757701949208359485568907471140365153365003943412393341912868586835758458714589966345631045390998329015537708286045342082792131453745309380495812337365190381525378178852787876234995587824876114488302424910505929906752995207147227435827390447098994768358658092450141911922591491135791578139346299429088137969859842684324893276262595291250170126044718857437578348466935485036742701575367416727572585243424694773960228179136671992904138695772235805598356284711002740207466769109962037884380828273777120808343929988954572202170549645148852093714850943592712664124163607500452284871662892933695385681830049190663045663284858256332804027807871868520015184501618929621829743726304042618161554864121517913573091394294959003372450995211125759364002344729426683950526926371215410681482756223118927117411638876056795304737698106416896303298974462912697837145320325864048702964594100761313943240084902343597113590028844082622260783234270939375297020730261557292111032227077104238356278899973906198445177771847344813642421946849827756716376094181083668275810763423764060686720709000986376072213287264356523254121011813156656270278515933098106167837843703557722672808306703681099475615410787884492589876895773456137515707069277374773595927500568964387824189359013498968361190323668359740060213976260228938787821737877983368467186052414106610746842892915503657378658458929905351862061258266134498762653237577289091912710373021173732212145570685103519161784501788077307507034170332518533822440780664892078536696157968024542073622065972182014810293160716567396744045366725458914699579472481470187370739045806195164283484998704753379494846586301402537583356278916495371530255275815211424421575677401331352240288413323642404235694412361097235930531191779092812304614118596502241543480748018433937256409184994992022506139774246430501228495792387828642415277317674723055046448657906260197740314996861852722216653296563528169107837214497310913157848449246234148843301853854635318042803196546941320092284830174698460946676837630418076788571108793237434029164863583602097699992100204562131228450511185498892552136121093885598306206043321645093625008407073303424381378741242073935718661865646684224906286009153820054151098561262602573397683997239348554207396827221398447013080423701992109832565441266765555684572151571207905737355097432844012258897120487942703087965156239741443051188788334705177220058460777325459195807373744188544811830706876645411505772110031789521238092146702551962052558141646701024215781153103123895431356848389730283100223907580289501715278659249936368379361586765418089281566946272229500301616627187652489338739447892892481668572006035678836123538081334975464806141219939436580670796757986386267124091397983182463291415214338035778467905750919322368495916483112523604261915823012965239319443922575891023964412339360719895340032648692515151850446412112920822973865888283283268386025932006047425457963890310164568267722247185003261656688583106525971792366935925223216972358902536535421291174744984859017781596367135731309138768284304380369713103689713307673679687596102521058746288719539245838370100467604323792651283111959263352085496301176369331326108006296586696580594294037490865752067332147663051868747893845903106887984925988884362039304998520498245548766352406773659686602433487387991746254143351593297095871005722362975641633591152252760876078732616229727357293675419500509507790811716573589908052094985915981239819316680141400344833898670150446061769603920615593127325197979246011957089046076489152664627163590924893864871013715295019180448059138393100706054867489350297739959601381267015674973347688766839051189679212383814901588706041727984261639229614158139114799920163987689155373586432332147602565252428969245146368740298959299896715656724088671930011610271213895947981580856312797565435309315717370370851305195161363696130494429570831253962789054646608808995565894416909102845839663306177934297749217133512018199926682445200006689925674819398187124248049466776417936586150242678116561071508072158492192810376129339198246283933581315535330538676260101634954520302194760932613683424429671145718843319602931908685696675456316144583925067308947140557335142087425720573721592396010250151016889148593300021843098444877060492035050874246102001998013503389235707023372695082959323551168572578747055947313862836883786851744777979197571154856203676892144606441483439569075670297165624024396307768479751368124938503986070349351523329029171170962585576707873818753718450750150808391970026406606481939910866358388618280766929112367226893864325049683496960069390043038628289390971448514539936865090652150366889870194176057892607344074762133869397785999277523828639595807039789931672998499488670826736126168868831697298371419525898383793139442320810579545681342450271114675073644467934106552989637593054442945428873363080321521081986532410917191826082924058880289336959486936912064545829842287095178194436958177104124490789510197294981777011735956649991205542777202453778842792611545204670403906856354302880748286113568995900637726668145779598985577269594752808248034289150526059822056398189120594283889577667625118029896361417716215065475848371164773177436206082599380738398138941756448445789121551672295803696624382775421705071072677338213021445343489109127910103891433826430361710994456234110791663508922345792060747622235214188619208249216285847761377198193400036465930599746452932618668478480158389113496760150343585996345252148923790598555115807440567183331319123812704603558203940223138271039078911891093594358778495175501839450810018052114612696630679370972366978689224193127047502803245363624210349361500233291380959578874098493756240495812774060593934281661733302288712832655748003483564726717595894712807874590733362207284487338546898169980625148995513026890712137146799936278300332255936536665562634655873217376413853011576753687311641047890049188629602116462853497281919051384720684063957449600374704593688458409342429154831173947015814722738339089958711549291206212534195650158484201567054456656811612795977559621406389224223532660713535487840061991784167752828568626752381317052013791694911192010025105475386118694532260196595280810818879990201570411139048958104958596678290494491387537764977600248814881202582450837715006862122362339698403940318550029473658665894317896941053994137141482559377106073818167554308586566292459661751809254935130626603593813517362794197614154301244533966681582294395346084473469017548966120547984971382350006919911461171940223461108257404509213717188867139731264189071710038418458647139576931780169795481382729832553808191026686664457684671711208716552478873797891072764029769701285611365301886201677498173440615403639016830111906391407471364056492205693457545502108477658453247367524698626130226996682291464454255726321563582700191350722429644109159674943873120284849157728789281663831134178810728786664341097828978855656176008506110465500227605439192808608354062435776511544048993497392486577222743178397034200379883096995288497330592544152396146723584297682088041686948999966603060202931325802438697746217283673489501734905451027438034067158873226900730973397842077990207308589968929254167566126494413230248457424997734872733935472631554036433644704048144070775217277342095871352653264384274218107483804045552234680589123116170992589722692621246111309185504388843942312366865166309624754906427718054753417614594053340246718419633725040511222414983575073929301876053071044747703695619659979323925069017923834630829915505374001838196860343020552302917522490528098280815553640562400699680431756753115916238056747043410268433750985549410594219971529176157481772565159392036096796393503775677010680772035484696662861460854783553742443005535834314595391467105777612472107988301148275796283514116769690201982153357174325877837638796470563074188109703225000066340862553959384682702616164550773037772535081680136157445172531956504331590064633384373541382488546297260474294708282920955802291609172018914234640796379505250805774910947329238045363370809593930649937255553232088294115420360238379124710597218955235370687751840536738075238755059234968911792351786400491647406978672947047457759805517135311141700824555060707428985307910829415393048556784196023793215841584184191984337634464002049881495058371703178660812111162724079492707108249561932420227501993494634904275354768412793148950734045756471266604526369239588305504632064364350117422106111496415361197610389035680032266945280243435658965345776020367729606538933438969933927652503182745799502287534218867327471426539529029944308559047849088491416266257319455103271778604318537519402740911739287887157531033713425302052807043044254082727245070358738855078898316306883375626386820099805780393625587053586827077299113861636592401858414152449034210698864638421192509621489747751819124000184822707574313641835296136375498207021514816340701027935286410969242287193874130207879294927336742161185645657806386358085668949485569466757409267960073473874627933243797427369311052801277819340157753846023909859932818247261589457572321887214748744665176421480123231983688129298356352187519006287012015529029877934887400025117240324040414210278190176556885655466631836424260904839848255799204791197417662126205170574179662276304560703129274104757446030361755767753081373956190337071552111296845845784768677641194636753237225813901814398545230426543100614311561809269431188182799528769732486717387627451743025521332235226135528662892254104736765359379477885648812757444304861630263525475924240896016938856037877730650041350314601460813393705590879310986318750800011781742977839536661246187954285915944545790178301624993247843933145380434543034303377662005141123606348852998631346979194186617759816663138858490088170596412297114342682923219854844648362941483881946977241114156429771056660653042841315564348453141987722512714572452572711333844137271519008628442943465890909532587967114691601653484499488541559411911007787788320198525425752294292653266027323146575595824233754416165598390783470523135821770266775505701606575430905265302367041000774896997619068169981189767002696162491929917480410734564212011354725128439901830699675806943868424887806922891968190688864311100308421820030396325765093293796802912123828636765145710533999360056372694676973736098785193421835401955400355178443692151180812619081037922142588634393253628003969142035805128705157494255961416068916131538587146655825281136191257003304302674104521955311043748501391621844180516793948371879949990242757215345845494548552645964010793688316599359080540955113976715516286437282771823818085583580870640556265470455798358955086456407498432397260953841381231973369539988178950331555045185364159267293131334756747078435026946037307235180921449082174051123969789043079267661848223708974234098538093678696349854863566711142734391791973708789882324366628022829191254394949444187916925745406328712214131009045089104115351616078716226518830683658476626456594615252126469392320134484086235686210870599911176285868377145032760282952321350457489627749770652753416752919231486626608603460361712586723574152215341304537340759243237974549080603007221092191574277396511542937951081474464895244243519845995565106526025975455023831112813214889700320287919561398059573003241361827062850765244782428930990996883334687081356388854172183769142365015380707458293735971657223438489576001287005409439490427184430406892289740133950320989817977270082373653087243873253247591265901359363742081655906619584973147878454162490771445775167339807236629922296434204297558185447251684866802936048340076282484821949975699198195754506751379645806221074568120863029348223567049946220145764386361775427743297533776472702720548427949085905608145254821811366786988378342047415587132974865071026119608197160339373373741626193956392906711674678856826859214931689221024710250061968547306690759532507226276339269064749974731473220799623294798283908125291952830007630569144673853634806027904440665647806376972048631984501065540306791716772723292651470467945370203518060965434922814165923222791407777684117610545827888074467452010758525956847886670190816954631225161092056645845756976097636433816619997181177794831854358810465490054129650745173999714771462191338571809013059197430602834657339058784659035013419083715879944373941434715866086073010137704082420965165810266836992289768042108985048288485383228207451519417602006288459540303222605317367732974158662305411809758557414870586268973319984812183460906590559470390500410000794787080659314405203521684125367399558186326265214112553398724354958442307515965269149480645378751567495623411445506508297140000859835812620467576822671845066073769065881719512402659808898661638743447163701532648364484582172308367012863834950265698965457443367737042982238509555889507196553126251202109696367337508004448196679655718204703852534610781081218809998455359371638521927818708330108851739958779168556678514299839484933133559007860584060889802850069057549951651430592657694116368625977437862602432425242864286251641803954949665732783257154735491920666531627449016776397256528506731361834588883521625651416675564928092282579012419515121387976312053134043047569856164234751153619959562060216641364210135137367920287186408179235756516245518704003858686945081966694836933324485013270797552901232798452068378884744475424557104957915766358893453463571121301075934399410985654388001176528140743603709006144660974791582997465633859350805420160511760292610696053477221813717629253634187076620431623020478249353552565633719577982856618629312202970850740109910330072113437031758265530755120907881523290188424648747408955548449307073808167409835716804653319024222077890254082960692953230986223351593277041390788625492636102097916687528331835612279861256051800896485213744346006252771850162421741197929361190907878308550609944906693751519376554462168281186503491256708633212893585618857644948973397355174361661962616670039766928926823556034801991016742435291738634774339188074153131297754357778516522605048562638951448550746099009622148496760534311849368433775103470920200726508977880210727325592570839389898004040518399884030787548178644570463531788720953022312550487812102557879726243833492541977973145835989351645092693783807813235460655537065345586687811735785245707890298834279376813227014855179083688077733628467672365967658318115343244492925269211586556034934055508633141289216690992114813950279003631958016878689573830568028756392693948318940595361506254622214150996772853429232676126929856895499502408892709390537861398658901001041107464662596292045721154124657780581344892445009526258496113712720764919364913981536171431526723193824255436972911831998700971026643103058778758722499849421026568357804522826466668321109888742707053103661987549194079827561835374612216411649337858186331833342065954718351864254255812970520775217123150306612577387179301469965287635088903457988239915386004411758461696936601382918246433001893819129027539215535918826004803441874878030567002729668894699913068139098162647533190528300229002850313344840570077312163524027841684151469625983281515885419045920384699108495525026495921241010206731695812603725848790950034345011765612554688781941244405906403328709165874400994985526946023704539883662420461281247748448884115453756353945440936511080386715224481130022149662464185427634717347342832416535943832532422921155758703843391063410403467172015136957363237158243154611190415361820590825356057274878592134936302888015797299912868231959307262735939483361406111541392378178231545257291443266664717106625667947527218601078861515666854994613814264818581864035109890573249073218345936750580495325048818169236418796414533916761065494105587255716109423947677272475853541425543383662584627673079333512376056149345730122310405711781241475548800712890463332908053848387684988660751214046359115143545751766384347134310649695907376669454736783285046988925053843986614754918650170460812839063496293537516342446550474216344044484800731961267522068577070028756552313186494915610024623747226704235258764185284252120302605251675804814702566741732934166755826936917640368970685377407567066628351322284153894355739643090432419169286570630616874312447306871631461409691248379608571788578020363837272911386675667007395711976298894830104819349033605224095753794708361139475546008544736493593479969325834746062972999181036442622174323397191644355237771830142624090452975855091716539655502988260145596756234693565681288524785128418889023110924147764299317744260069184605295523190224165931782118422044071045709576804616737465035897982235968731754679353276765343209281944512458286575176251374912742546537551463917511564438932664492287393036130429929174711824180021968381339382849751765797744439466403813447456402075679879768084855698793529825261450685212915975929813491883563718384118215824794398656877811739171244292987158445983356017415873355565035650150605427826746935252106361907430701184573528932108437113405489639295794121560177085131762076655556284216658510468931630611232983242840609849391343273213916192499479894289947636535287615929600461444172951438554061425417718827105595366255867534353813578973258920251256047044211969082090789204247878950524255537894613437764933462510853063870601759978222542160608086389055341769823787866743340232229115495778090377155156095794101839595474693145300530518881025358714000351220518660759018103547735357526379018122828051352928723656517764968486286478315879870499274195937160629662798707559926331739144431401917360703488268431030924555428383642739751379841783979534520594936319055018065711623384400393355306986764404672799228657216247538657246108571046968770968946828700599358014641810799308607034466277730347803151944274650354028835279701379915655084464724430453323289636180000842142571893053146288762468720878209035800525349284552631009030932835721095627491723928888310710482524859069846529719248291332556745249490669149529588607514043395619177145752183331380734603706556764671688455412694367350403839692945451576979290093692204174073657849536511593475878274489279718313586913799948944968755753542657387990729501862671272528984192053685767324266597413553825730307780206315158073480062358408196258958732856376239194750132907820616926158773112130621765502657670080311185120358072252637871179991836621472990248377227017896977317442286818126018667114110900044003151442055931831539701294023497864840518610501619299551048882160607538095634024961367360508738547486780741703911525141126022915139132221452306057202373855173912076706271543205516958412308562343879620084438705985955060786123472312797001679249012488307430483043279429696828652001768943102375596796698547713157497771019090938588423104906096345292325990278912718306694538066157034181270448445770512750722143317978026971704974462712855597781778986379667630237348264629273391078086337834525693855518545811468591834391845896281454113544675928396425849839529620547099379628866718254627150489256917630270927215284800536572387457708996007852051813221596738720647824860915288246971024968766270488121204440089464214044788669514375861629239499969659865289056506518278235846696387924460675121643312170285272749288192505109667301908909814538401972201251919816426364303937994733813351919116399286521852631853075913437341232894928348712127494937897145616195941321048070406718454855958429535413985224521431256340375900284115088512783469416000671443874944594055179676624249495328715130995448918375436471178610917017144058651162934157277995904228102121437315104847679040503793498697654875016103735186496616018650712358575522022240291538168755997540656842316998214865182213839309468186100279610636289481828778880030163509425274949585119733080619549740900342379403586369230960638372472527615611265792904997261490926780320087640406805839453483640584306390887972889104194248140829160411181400596649438058646030746040266032465156330321114211453079058564791987083949727151350225377382784517106215555846238718996555116732163962145175417605016284864602437601166363266889275291187048525977798888924768678740109251162118770141138997186640730846146157337583368399439342777152928024095055616391725072030691823554954520609906489264379434513424896511832160801454397117860406964245877321083156514307407870572606148115567018042994803206327910369978145490751718208389170205261084225991291362309972674028264696547784412031347819815928024144019561443904570356264287060155053438231005974103985035559229756750123551880827630403748052998863952896320635219300600362282116598772826686884938922653826746657493296155875151159300502154230099186811314191732343211709883737807770127057636413846739932854224783037054627376701297189298541171770767321691834596329017312125876477045375160081922764496939257351769839730938374416119109794336078691105418750532238297371817011112337888919709653470966219734782393310317009984833368643002388190645433622222666243478369965275304539438478420536781365536925169549851393507152987225264054237103131948254954559905949247027671797977659259064267405551415437226006354206165772247654881593755285299068358447937851564229791497260474898179685557649898418158187908793886773880891989164076109752565315894423248181172411722926879929201312802496289180269216645659010573314074160291187100588329753790332082538850078757065951928411338617902613130232373782159049629146840322621937605776344837782241355033671093203410978671615845080210048084898142139283722782110293061784826930022489303216312398499792097303070248528693117936584056196194169775346421453339341503736758946338130678333486186235779937147980911886076363285464826713776041670737189951891817949990354233990199654986008605085280877439996277588357229112025350967678944571215589319142185289931974192489707633251758019431620207912271231804308779218446919709548298427139979771282678248535863804328263322869238252678195276235983433169422545541969140285184506287607297494524792946940388135259048298193436538027265278547872433061701152068543154344077402895236302170699045490107513895524585347122414890654779800428746582864948198827996287791240340086696293121163581771341556651375956689782047848077812617082728357010518951153540621581567743285329043223422597160752883635649604724353058550012220954833070411762780162834924472520232772369475346378252781583791468283149691545483201989376958760876847592600571275562248482536616445770323222390479555780827366846488121199372883389501267580446700541126759930430600471594085329614191214441857825711636144062082061481252750805376089397880250416613948907124053169217382883107519969511960566851158689651084450171543704477017618975629831707316244102279997721472348113207257930775443696827786924807726303893992431887964849008114434838990197197375193894879874219783375529383743377054295355875876828072691910468530135480856530861108172688501276048853779492299252901259128749382289482510496783374664794402412865602887925376605613798033791852887276980873227147571179996413406730069071185525611493381484277596976987212885710187396707490516876851640399315016976128279899545848177819549249192353429687186730927521386850754152587471925562977560047167415438393159493480768298508932786341718652385122391975872734077145530362542588456061972133989821298121263680979928968972249550400812117770909477777840428049918080748530528224862132957520919249789824712782673770698776611651005287592196420041628710300586822417813186860487964467734279431483773938293379002320736644774558311175057071594685790615113251744945759943533662499510119011091660045383563625837119850584301529600186065858582954920154744839490665481947471135814228918371892134377109587470095261000849698609717560729240131907351994908603283435719643520602044846263761322758356600403771459054630177274439114720942211811525844939210769649511051022270664137236218499076327144759995104462621443881344980863685629526220318315810521052101446846549984336119018743242849362237124829139523219610166489498343906464714791945119375847617446708061356161942939421675844922860126812660774092718091006989673550223473100970446885023977457288899217938599847616225078280911148058654254150519514412947962074108887994969057913439138432674020077897156612315567533597962144091458417960435841866404616387904209592247820339782250358616423722046907741939542150650744972717283707720515414580798461879393039529678677096253815550472023614162559594465101239961915059832017881929085360182722055333820067663823853808450489614098829319235224094374278910766142448375881186442620243108554840283995844633885131612322556827389676746375939146079858366134891989282138711329395147946783048709028031136016330846994368020369939349588460563719268339751955409234287734399649394527013022975741886467562601863627635018237468531240518530804915175802300755176719575936823075565268121700661504511310511398435707068651645205063492249018917396216848218112568275022903651227514371770897831923829307756024840560182121124465595741496668615839991669474078737743159720385719953939542020920357002841228784807256773190266151259480519089589823754375102852815028695531115242764656410839347782725301304777313045258226413744045280953667531554122364201352231166301225169053135032618577390065416819644841104409843475221727629390268045287461674593185390453766631552975179342366812572615010127426458030688980270788678402027908651584101378392857232091865058050927769757992939068089860243877683121053980429362478163851328090002389200164878031398644937258071418766900487525493211810510870631468443386653440284709635786242846922445586385220228928347537680293270824106360633952371185287805389347396871207245911193133851769580249860430526393737410126377550057438545051692554107891636450050444742527706170194547204026476204419599936899728755146895376732366034142632745368556907197568304643194894834237435946760308735599982248272271941374624601053782930683561798005768064147613728970347523973272240837935743225217745552671096947596177010505855829147509028278109338688122007668802823268473632532416329912057267636699349422026314645940647837193708284182218078150035085104978851196138362977966256372123533775545668170486410834188484378723031308472734816604631110658796445931469558679900557222525498148197336535715093570202564978244587222696941855499461624459962426508692928962225788248811906821761966749430150970429085267300505006757330784958960097396042835098602725070708571721519501219026392608774570758169173897897717038156852396218210699548376899657543944618885813904255065369737868746071622151437899774423923685768501032553678117276936690964685163812492466656776548253007165712716468567228881062594894388836572480309389530425378725931425643728861342927719765578414949356557114857506660188579262288364671989680472826563328945514816851239926509755961247394391057678667228202346008988776057483613957226133503540773617348734417121181141039057874646412240235638358399323299023648579400691519081321268587362770569528070436337330890124118541411069761150804117685663334539016911362254351305888012482097340370438774207967667284287310720008109748405731575315881420228461812907895823200051514463979318806892358567024807772116973362721686845752444137406117833135902997009414641217658356516413160234126359407756474357198244452963508670631448732483544178457637114744002266923844476972012195488111157224175925345278244193929453141765357706685564275294381691389951238025215085217358474481959567381892246071450737142890803987540818359627760889453786908319176014397119358603807673583552627763375231586655852048915788845646726273340103301358969813841638809532255861442653262747250251346434386730061953194645624138321971810753585669244766829999228652821345874040410289451369825322017672390901587959471368680473712358060582522502794565493464166728179445257294038170184186186191762905770279423732102963285320042842734100173563854413585778434218589938836151937806214389942482935855852283403742326490730034376848495766791518804131891039044195213073887669035862722282010238917348286845367116307923549563063917601713836006201317510210790580396390364637276266502353277225527273774896525003694761282126651566916402550382614513612543475415202858276858316757372108278764787304599149354991323050585923883127245672937540647761921290654006165568796057291630566534684623133114775430082221356122796567975170337097122741008129556511723910245236548326939329072331272071852575602158736825988632042558329541316513845950674305795569539176759680051840539262831318721244558632942479339303292973652687800659029086306567369680924917856076057290788543802295955636566100912027608718216350203280801683365721912560632596463872394128231593735466016635043780161862733171256992521966679774641486952386211558219381623700527319959903706851744928073779785083712920982143399004231655823885170477367299110120852409610456141611042391206884842772176090248075644837118475367071855054769166867439750690581967654036611891739254876521167625073948091025562299616507653828020988356330319667769308762955186131854783307745858819790886650828190695979620566595540749576316276829078482267806626763344273106282861621896647024819984591376080241687620575720331347009919622662346136024252729502950158069341915297908108397464082184283011169296944748979686502463951800753683484800805685695586888410529011835191436895652272276612447499897355191566114504395768783261662955158969923179075440877776717504481937365196984407679874627355849568708923489405083662540120191391932983341090560510401368299566907145071783603617726981168835977496057042613679030784725524081472660512225837842838436912121062662091585274995159600760483908463907129872410333950796976119007660136340258258652831100368480386620553935777040329628001859966847868916115566550967827255451372982203479288305633766071094360845814497225557009377886470381317297188615631931424413325949746716124487535614731815294369235455491572668111007492682461094620829570902108447115304795869480893670063744345738751084914453703667064109820699138649671513742761500822531092604840072465764892946275585708254446432566799413667160550849168113058489484616012866372118154595910245209928914173705949553344749214343504692290115652607366018696986655430505651335852575691734922412791422025022015619765616320248881695518114775628419381720809816919254251986993592328238544165695468270176692360478886480185670042910242460507014375245811707825649248269374545555790564908801262221431420586133557875115490653433480604987695895485061026833815740855078036771204181979287946693911070557555350202598967673130891106886128650206568845482496454801062664237797580581151190147955320650054271192735179781504851487453887794791376300253721411345578093166580211379749006155612870239691365657305971142057450668939377685401569480094450534110923930178032394085882609380055149830746747925168845152619572345317225147687748700855008328777539425848886627995782986544993280647565469809090011712800918352674074488123401907616532981523388377699579442601244766617322244991978260713626394619560107863286638786264022784362365190355577386966389292529800417660819664601799658605679202510955761384860500461806145437647551703848955733393541449925846641729238543398737586790626699160432152957404199375738022547334101749813498879622311590892956307229218305787042982063059114635362694313832640982055560917570107731851966765287024718702605718147613805031104701833212301054775869301749713793734254659926389088937433567304548237711761198891913481207165866577867225580035873399193955781077717988639249428358437491548408881020557595176268892766369520684173940524029640821233073842598865879542237162828464345016850282540388971645990700324499745517347040106266918280043252126541849480971640335295372638323119821247084261805229651755466648786118108058289556168986391581203979853792593675664572871880002752777960840214779296803921903547934818416532037491115885683389736441624561074116702242834803302957013882399737782088571293075328790301284313728460585243641023363634746455783394119781109424710471161670775457606912066724476416597689717179320627578783493375050208446897029788657635213996118885402393089363004781901350460922215022773666462960216545647043890150111453413756450593201815597720061206412261223944562979551983060947827340300537251366564621860169519786308106603944208074055458479922374271477299373979927467244095452075383958164187854137494669938390607192135095233476096149341279530471186144879548464690744410957839971496098921574418192434860340386385542924385332394426785045751355705348145236782827876763554858782333762611755355819062668509924130730126239959989665043268006667307356957327417907998628890682724439385303653225813233541030650263979057473334998347365621209331905611608625005508534690489993002484114934403755017848386669395293784562593267350029921671118500583401863491918130402655597605788475949795393389410278544008302314403192628436927248389912453680809293221810340439380579577404065071109516973091067441262389359297421315027243186762062850508854357842606522537029282098305195269580673448606368706578318712734928969672227681788311526544157188415116492295447459157276578745049976298397365913499642770699403840954626925141449950857384561034405274496875052141592298783354022496732508040202123279318438703470992790680686344940295345937909566549086961019611293778769815721407892529745042556813622863135608114329898000974998969736912395249042358623617246203754752230495565329573848690699671178225595406564105802469104224800717672302748696528453955105995754525277461396510485719978262665996039369344162345667510644325491306828614622899097894349622407067334886047083912844121083266755174016503352632936644353635061656906665627662459795326887533973577328616568559450994950325479044273826679637966615610983023679365878736123668085621932010818972666795331525194468157341276129120259769330375604131736561941167214386142888184766725234085693333482949970739409459295320063867189103618692490269458926324019653603340280319619943751732975032251368949376832187396376641382825643911568123583449875418702474308701204736508424874661660233599783562393051311200428683089872241907747997636568556343918338702238522088982024584506676349281580518097763733960109095807696272734814947892064206374762463216045244805708882261278211050461223979649304891115630983933335990798637677753993440287498377315103685398483884483808384272781540893015527457695254621844581020043948601708377105161070267061789736663003207295249663577414252636939758072728280522259207060939857963311528798916436799659084190754328526867230468357927971727503240200574773002905803285001211110196524422641149145089679786213641227844096238343648666816979054365926777345113198648381187812511904067578169058157152567596345653750367043047679932181094768752511786876929084893201724320222884750204161584130554405821596772393716943013018153231270069849441056313515546926155214139143953043380116389221675276982783974087583422101871067627851650309758334926077769321854035772886236122765418601767374171239294255659197062040178813409946238968833590780420705510645592800311208383587131239970263094147121395380398063627709943787791239312633360704479740180064424000194681537583146815358092116801529874331260419958513343929840471393192297192711765312661221850209732886624477563382515310467155414134495399908046721406035522249557039000886756706321935209874694514379613221001405172799562669688440583461118752250354903096511625256334450074645972512259282472670677808900081256326092171832815983713575255869584672977139053217972033259423211772083678779743096877335626685820711444214326194509775027518849561606694310431368672207419585290226952598108567476885113196873929793570861655188072957270371503645804941078767156073612534535506869344273638444875000408941975796752654726710222365637725000615482105897374753074725875702262975935657363575019965299559140802831635415308175257825185491622499412752965439119262300023602850753105726565335121389250275293808988221747046013710529895668519313942377248987927178971595422353638965232198225867096388283593809738182404746497104831600261650051401177675832610254790465101390481662135004806950748300546840040912616630242295973029946028755288426018197190235388865351756541108130177289707173618606218131439736406141604005683614262651700102348278140651409942297620892097005684989186398537446631023490576825776845951946164894152602656321088171759246442229578075029276847550730143516638194330067015905102333470243274133275173112958732264510913423177289272465295330519094332878535919134740684370866927528204702159719135047747269192187541978894272075292202711394879678482419422273993283546222830223115468446719920544189827435235088805530242485884334982490068113565854627368459955479058407055491055094161934663262125714182678873381138842966893592688639756006680643708920413038928408747115411852298245261008275754473035013379593592915178694345504394484482564462039827314609712654515244795752933037265561839034843301589798275083686822368531187357216282218257299104070227090748350016567837835997146770214772226053048103997575165290807512400371848556038120131412991817042521798776212574865008567468406454418814566667048231615627340221050703025205031323034619231016507009098378635387562218609526448522862043230100269414332093446786056359048948600165283004773600447176330699622457776066718512758998571227489892360879222339328189051069927824730246889471991824358252646666850514223364438990242719529308627357043376052761122068105402749163859149158282640696844877727640645526484633548211741517954461944854412293183140329562635034372950558250173864111949513988968912689260992019648668402195040492119077985374297246822445397434159680379982283684166366115361146676159147372431619661310238504158356798622968347218596914578706183960102915998988895057534194692340201812204077018199438116572079855912729542860478474921113626573365119410258385028009741824075624505013741957051328099761844804863044612908730410316735280345229345963885188139877472923404643949886383497929433287220155889917071605180233714120580091065764135105821295535478384916234209290242695467277015549720158604548964859098653587175831457185496049787278728191310818151220037567077556111715992122392355222018011633218574054612621562730035084153065096886897003184610939833874836968623839695552041506822971568429899273724000489852504585088054284499264255268612126122008897921118189959623863096581407143848068210599242877337377412117822149290240941048447951958436913045090575696103565353405230599537273563705502569778877241922973579842474291128590339075740300329810601522371658940216008401759219922392098205029440971631866815615656759473398568959001758591682730480891339928819926702980532186630646991378128251141208795382391805337936434463006343140964658368881211497094547008398999171569343238350164951855773471944916624839989286889475232509625627518410250170582591826651473754936056630568978106537837132098192599745564975735677253898597376713616447175972514372050730335542186068605181239655534673490062522066952319172270411897393518165715463377480646436554096748074873046907848143467370336788862533617179908683706138842870333018389217717192446273257603350031879756741637345396645193934011761860852033488708456409818627487251569155338807226872677101850195729198691615619444530652321261077509517398669363061354365586279246053914985679747770665708231588782915892028395327771018839382748464916851453490249636829229482489082909129845349356617091742795670501188156539320597179543248901372901376476036336207027811515685631575076560148559891936470659966304940275887885186380466562997068418126581936699698038972728710091285831211746166538585274294499470755451158278223781872377483085283914109974193483785309060076829712632554551727737701683924203700631207610006883981809389640585711612505954480929605783591829756378335465145537322263330455230838391105418111363556391310062415661950170841320571621247430641697514831851814829291559189624288582910832294025294166371001719384165073431630712548756758037000551693652127504952547259789454046045706264109544730807919995650894468566676495470411677212114518413562895070282890922896809290450178107186697958757610536587467770202374179249766291527559084018967638585178666836592143587745551988039510508843683726058814480236021670419480035795555016382096046933004090636019830528677914663144508223160932403425665017873850751733457621442584528820887239865413733529846028195986795642313292795025893518327794994210514190923269385073727723999352284637719942701922219928363815508829366301246117964717798920767201961006665404576877333162613926806209073372367030686482853049524419844192756096686175908106178663771253066222052528272979643304527269438625146048152666165465074326094269509468300355571850959964201192742875054614305749155470661692950928857071699301545620937047646680568425040968080054184638195057448065666225082258445897746923129336129996246929552164799068103794746205836771508954727029942802133224939866750559676404231760619887627281632594595338689439670530141008928924994512445616137485041099662429109617796333335835108698549016365690516712936479620999106410825046902163602490960946769580004939534367310075586079746933753914717635369224608127536939935966147834304983256085237858603067282064528772743585693141847892412396614004898691594762122040637988045955056781825346869601273151962420398024652767500062280851758847569650591500075631449377270091594963465636463732205545790134692570672009515975988503070574748783115249179735554230979878294985337398269526171534890471027651448790517825029218502556947105846482382761670441428205391388336732912340373569348896928060667608832627188735887975097289909282967696966692517160765033669787598399559893219178362548680575967333563264057475442760365482401779629481789173049996864398116380106255877819510483463914698031190855065104229577518995283284475955664939876943913722515215823441375395835795001315053431592457814355283581766975235508894426243403383671952576154505883661407279773242745305789800640786382060795292272111641015759884607586517038308411106722382527301793819540301585544142189714853147326280778004062009533396705032040715501578085132289672535405047891440313674352789650389735562118921726141237912696378377855124663918419465134430662064598549061385339284891072509891914830867401702376991796406410421197016776673749808204105290026832881754905955423029488606615436294133895611319252714885730799585789486802644182502155183422681329957217983203611271752237924556220111309310324448027919696811613371731366369399833836979676431159209985259944109526206392333876712997390556303646310366847826792663298406619809529211509339789415001353822620696334985179792062449105804123079900619765171531216731637512345050161140318362740273624800982767635730422809441176780788489902333021576837642295468734174393568922644234458752452769224903221221447136139171973346015123735058524664521119876101562306854781146116178671360048971884620161899045993885081020624760696543032881102331194601662680914457670624309365490223000317452976389855622843074179326877811167659662002666749341851044444872444034820157103591385573812054518169280790790659274768740009044695820679119860313025064913258567069514965043445176664873085980491207806083516403764405171584591667863003334152287224943696034136868401219130114384444330445567221801384808325349425115418792265268552780441147720210327867869788114318250077762386176892628731126090398637162675000445345936788077035864724318736845660318728812189535250819992858149888565958512499226833058061479794160486836959349926910509109104084411861209467068837294756186882173834165464143687659545535179920491753703523518137575498296688171358708004755274400074093495579988796037863316143120235259774978627279614064628441949525336784008030989304414836786593956164155515971151091212791591900474804995750176541224721051948553386124151914722369695181269064023971191217607652157694367515074767970571340715074698013526250365337772111591381005039828332592069502581711530691370630470042839957079424677059120179656618941417476449929912495109796133648253219685996129817940100438471590421967666384575319033138074049073046773584504351101566333519773033395743262491187792463623655280469741526242425034962848679907317511765308626259214794780835370479772845259743323924027422561443788449064098122451716611084606501768036883707632828004669973759992891980930219864160859441624358960276372773261419648271229655794068124544995230452155034267713289218383129947813605313385571115406113958720117277558282384711199892279926122487476976538881815796854217716440681928852572366562993411942318222936920682613815251231798082296327287409853899227554627361373472423970151984086962806255971222512824252825245478670838998214380066033142672628213165610464820524939130988159197292962334153297873177405434129942123183617417330024395737164079970569521239881546548097994748334810290697177334776598410951543507845886400020268710002576569726731996891672078332587727403114815108337774331611951032934570782633266947666123413503422667947517933283347474880135931961237066090702163870497773091415128349106692462181013114044334337764667797908631955971620207439747557582320475532544691808668412860561495471672722756629339374900471990441115302135749452065392951911773650987364507296686345945513275784713837943372913383058503499058860547476132342101307090109511148773625474220088786996232213159507533664076530956888680997621207311956713309965891126427813112473462961313798700218997397309827245054973791484665100505064150651361412457943644373348550501701981960290124074313810482479456834453094797603388404674253064691588199703049008990148523681355746278080313989007545225181437764771646052190644009089634140183599949131051661687493143287975529561704287077404257499913974442242548972480965535019547099389819171311422362622680362677383974818417846007840273798052273552337876420865223023056517492867538647581600610694133202640953414198678621000268554650688953859751616881175291245454007128318989820671633569471557291352596965729391781190522778622705014499668927293786265967005949917220775147594071943380226611058334393960048002580519334548128465499931558791665288374030216273766918034928773367933113011061543839588217829453455854593362473138320149048404413886550577884737504520565713579262956987910221126504633994902707782450559649517083845574562142622490122132515809914729447121126884799112192481313072733438899799613398051056527226681864157394027217739637847676284556094063571826962152016704741062147500035673821133541334325026959642464411723341824184218741124204380180274703128924137129131024344704745945715127262116114387391203791179780424604040832701317566265057190447971332108889070164579710545050153276819246509851946582810863405213738906085690649767478175298100656122522156265934382610121709969789823720228049482621948115903935256973463350654947067747755670243874064647451677020492824035215655900525257750742850778636544288050755686134947230350609325155036041709411920366955282151042428401789530784664626543168682843803588207099666599347600700728926621849304982170395527197439114852968678854137900793385919064354882588270158880040562328765294098123861824719641579767747053880622775653881785480164951274952791746091733055459292889182706556841377277441036887701243907695740475765920128178266891541046574196931152595976803304939739316959024744248895095801602761232283471243431030745900511025284722164132122662796307761092075344782018251500786127731027223487567992574386973361149502272246016429074240416273258183907569623514767281791607665837963216246278296175880284121635962454482236470148128515745671046960297541456557072531928729538538844124046736451533667941127105217651387085174819567099379907592420508266965944890298815529706953164488812024341101386776564866548928946313551205255903171607512628451789201878380569811981560835163376937400745046645402211578584403866147993504605006552673956442800698066768078833165535645241564513202428084204373220110651784553378984308925570556538572529840096351762467677346934933547163785804176162743481806733280683283045458683871217923199456717861406843229074986471724091519509601272260715224655287279659521846467230010368074382304617619720453169282522675949776237510330819334478825975878960584407821983363719744565978834403569205827737623861541805288453972610195390300612879419036028579560038463671440145924343846049589144508094103101298649430636366942887975886319114510557647972124085426035461251263529306604656555728692173268062320767513531721228705992391133574406897982625054604458835443830325338248960707409715430808043355630556451825662745632736435032295268316555893070542783356829657159261364350541650179406956957162109442276625684235158233483290299039408630165876777276333815817450632030164043004104070062170903507158754978997256607175199438105446585877522118556669077657533995176794064915911366136995891394326248359744803271903433609373368022752746814828748745296292096832052028822044108044665652088043783618632576385442700343421390714295592358987779159836523322158855128813062800288039297822863597551577662529519637410536652801156341606589202540324556357159368519659524060076948814456645429438337172653666360471748913463807806879850599231362698704679257638622761983650904042026419772938963585650752857471632003660848906407206109087130610042662661100442860854534963964513738094197626004590547110606064573990057404280544189033628360299855663710914133803310964926731817584483491356063300080885697914883461174447204168789093679685156476121147339103339372836013487052871912899546177538842982687376866441859693160732462638108054585314289181628795820826583810310499554854234655024145639426076099765769642998883647743359851557062664600622165409636647239155427411484501320289375491443181434471011775197948233444882086992420246861640116086552878068994554501464054980759239570419505045979029252629192727456781295995591121759554849792242207547130188614275566457582162662296648816411166678663830656262437238396404658026390304998193246192916823634225749050061296108464860372625370767573750994512612148937547301726995481218627813764688658521847770200971063774246212310572149861527139957655366777215013447596797010864655310546862057815613456143075744842406250421348685135144270497939396099526143460824885789711814930901870625091303235888108240377240041106702006389922218532006147525774970203361076652135564943022546402673747561433305759892714346901072955777460275422023046930367467194078756239248834909387998519134207269930837476740109174942263927554834929241030256680527221491274431190861693472199120110016852625037348509035021599181008513451934218199375743943485490221460161747184150849798569443045167836614485361979578094355982259044932025619874705168974965286611857968963039646576182064935832330473361602534406761962649737156996641608819247822524655785374807899370640655871825198085422350735583861767920762384884258265041989671893823043061907018926085093893791502399670595121108839469857635422032883152376384212990491916238355297629516511945524812680707139599254650456411613556991029203767042425544099919211576471379130207945326588275321344308264826919781358726230822705458880703247518592448846031450731804627159735128845080615735624268259461298282144719808947440011189870268836733168980894354568735324611728822397697876788032742880749925632814326849964360184066053530615403206421714658632839011630554489067354897851342240013228287668009203555698676842688972282099413408658246633780589440452841122624268846237595336097379075365230915962946843013152168566415653890575104767498506480438616718098551012189942199756487637588636750919321907084453391029679736397161564589676971774076453108814017118300891652707046354555628077864762396994076060627361872673385619090118985499867250428979595283218636193958117323245253451686706815327595506866798959031441477382231816302947438303367556809468576574646756813188698084108101984770867236852330991056613899733108270643790418837128052228621021978120815487161882553325756492293082381516898628332299748671368625315804166445313757112875909304251521735352074205800491325391999186553973749494659249361361576132783418738977552521104596305386247769447005309638341811080681597081475118779703714272220095667376764877783877251628777508877398050376066889696206635808177954252082222045283939859639057145528043654028932692046535881433610161044278721172387950902534889555656234489642698560922816375844710297524113372289252748588671316669277296084256791530551539223039790245367944960770929778699221436346497965282457467517724726470677663386620570286532327792370417450553294554407548151514821994832799592837891706799657493201719862252656317256648978011116935899349586366552054363446605687336012849100480486443840421180532156987968758938232753598000866010594219978029185887051398301514285515517285875450633810790556881970249817924564978885762714395635005576342332374913873081501707041921638719299766404777209018874337319600726099093181744158973628570093261241870494090450363165644975112891330874008285205791810672308775729278431979401268228543861164582496835945837457844738399819943155230373215115826745652759311380480056663541237184790938568283836618917084302349477652059804120586083491408287339678409782875190728446534333840234326272735598649972538837106250705240380622571330909410248534341852123389283011942713574608691678497914122031474925039285958445809247600422913691913102248913989384854710942571700048709607775741010847156721437022372626342720540639412978662536365787150042632285982713873849286541593837838250461526470726886805709543683516591735462885193643608708334601561796096019421596279109966943742933379930330676357294178900706241506380872630451697650117413532086389638246418318552204058434391980132692041007147904682562084675017242392978717168338973717942253329571941172328691981385635912250772768662140929320305218025620764034228248616439855440243810718114989338942638062999737990801202699794109775686026895070323573538762414869173191712031030762381110439822259732445149155036057833182863101508985151235490757903588326766665234674069482518678172186936585610388347587048434720795620090472627114449262083812361046491874500194752196842612629611769887413032500394547933303912971306392426811297056622932144534542971164257144357995755864485702743317879261701267236004778098144984050643185706501600304838493266778804979782461424847514254320085060221640085434113938861890595162647568891946481980625025686561709313210192311013190793074228023429151092720253172531398397141267687342516880280728284490222348557009711357882572681589101422928580015025312588253268482810703684130233702494583768061994547811154224408917119624864784694863240609260333049653083722066044826584055056952281797163901291274113482813253294738894264947352709732121674430962722046172623204650919694968799749385884818663762396668795598118193581167943187629553250025006286080803010850171061817564615867560199536389174296905132454172212602585132247362690997222344759389861673183893410837054825962416413588983876523457238012323936608593643084440120959843053190747812266354557298990314323949787238384460876871270402350090124308429021958273709966970156182830260382309560003724513760356726155971241026099931767842626609565002276160481243854663873024764655246448260976354878220134176618360392120036908249788105812705461333260511943583755046624591224317225797059164710197468256060227968101477789691768966506953743388328557032028536861406739305675835243493465568379203979975074042364681509982461369357974567989553511839444405976067750735477164830700907494621387799844608770749972023349544732404313411415769190053361692461917015759025560008019747869269951337111857723882621258438967106753629879215117681432471190520264148309081108893869938127958991797628946513831474775858441468185755525168335566741175596256116818554306714537113824441219095474781704155890727888735114921103183992903375530064876754300573054478804119750443119632992631994808513270795451487501450067200877845009094779324200995212910852434708241031383470599241001064178695210831037479454721655903601726873339722738436462334049914364243455874923651268394960646876814740299687098421528253571480617580039436329516576599688875514947287609785441427702778525004545036566298558828167625972334048147422739924841666529111104220738251838418944605047231056786427747231159484405911234614137914366695588304784746178115957731198939858511904998096176002534436222501393908904961203058525665970972623237784150951524598683277355844550242040315155373201341527957572040283783089611208503398498912695427097661100013249341976172720054733477166373711809973930341581087995623835819345661276406919635989421632920894538271242260539658521977690782226262662772693261519582534908348740338165264549384041085577230302026293088594078465262406216874983281933431822654345188370770320728357103699220749260249421083488336841663259692446405354220493541094122447241286413683376327611224310905725388448691698332909080364689194781154405007057096983414968886773163475711829311876309531269571818129348008220637017609799559369773772725337346342142500384422453195243834882273781600610423128913244706407203437529672220003312892914312910880448891112031841682464073828957241378191478863166551539024345052966688403411825114384799467270251336862161589384627899603860831311882945771224668015692570622560913041868574676212767034188811667793408083822588950059393103436234648760077632376343169561495792691945415376676253864744484943585317163276278695425820678138509436334895864561488539515850245539756857914155187702218650742267909839788241801080282002019669073627831814636007802096461271969061902732621856184715374351067062911525284846652571430454277683503507312698444672984433128686665549108830451762809707330687305695482676083479115683410468960219277118127734233627736576386243640996633043163705369955778927942778720367121792374069197943682806971976026192853417032871989294330742136637566163252362701526476594220009742630386583356203028703630736131035848505807315403920664855227675039357856706100939369248199165318336497347201163493894101344825976975201892513553443921569284998158976496776016337607193300370973565566452772545048889673483264585039116119339027415307583129782822340133244784680019233002993112497540994297727779547588345221055339083824018485200790627289120616576530664192511647963697270100198022171817237034458983882573578898613100018520016111453290988275058518783817485326362885570048002640593753929703254546587931381804963990205411992330406030242171282483236914175322661823220784462123904079790413291167816466839124550897808852687010865206028170184905400496342710973002076324096580723503928181550970167528735697819687856766100398683751050624448250107876158544226116833453025656572968362487918704591134151887537187318833922222039411485363303386009007831242778309823186790798096053341128487449583567878247101399711404256892127571395901204827618518442616218829559250767766286279587256366986530175557821770882401637297281835711106000929340155280171169381474744521617659785886612224946051379467350536856148559947756964841188702992453104502209442030080141029554330530934167430598198667265188895761506576467244555134882265050669111353038499165697370247727439941419213240945937709818949228308572275926528534284957379616597323813079784444158994052152386961309160716936060719912195420812297738894380096813155063265423304391549242796136828512845048993117112227651187082644103469948997347966698302329098748301328712188466003040798546042774795453834099833366020385722222325045173809226377901914405449906931804355814099987599020975716352264708605130866533475796647639102568665688019270916584474288620502098432407912375974966046582202456705787603231639147381958036232292467143014121329658950214157408504639981975542256491447640352963257357930315201236027374605758441294618751410733019939396875792715621313773409339651766222396578074081711914881736678345731022457354058424811974879777147587420490611545295721683549501113228512105241220540261692140874605331500474353866086571288315647500594981938196224706864214077177928483385369257716472871097008528382585491546562061197878888437578785104504502369001019487786940656742482011985743313715119300059757198073799286484663628126236106561332698090667403474719517472092580809731672469738151450518646598858140558611934398874943075626608600215299430531768183224045805867396686179102476863250820861177762987367818226410572104000530488170243978083288466191568040112528972009724474474464337360088033011125366176933000880279236011155447955725970205151482401540161195575023857006668577082684828043950605507794504131053553283927316710564288620887348214854241419275593118052620881335951291101172815143864306294195653521236038956399984510200970167589113927134880389229853342493888907930588041091788816565573713743700171309067820321520527069246701133820214729903807654943274517865780329387756462210230772373737211391924107354525399937019856942499364922820543633120681170509499054884096767399888142990764162635567528213742279431558038867910256889622353861090682672224994225980511158531270989305060093435801683514385901379655026060186810589599654405345220453433537191148187380658554152260224124557046720935543589979308510486463309814061713755785866846217103490852796853153810778824897604230559053544606761780580517816023312877645071486974727562057924882383548025759974702301699812672102856280565838767673313776567243299792115592468022621445007370955071259082043566270677286211689309441753420175177396121948068591079725688717243459354018135183611405748766997582822432947611811567988694510408360619290732341898871703141450664313362603228412134562553351698186914180629671469516091026295579413964854709572506695210759675549741056019102686745295212529310134135471406791765833743265279160679518455906295204812681667477113701301578854112436631161203755611612344615177515025104090598121579999138940735858374475234941524628337221227966186377078195494990935598744634257879613945823734438922485946455165240204581135334942474999564034595811724561091537255855679892368260993933737559437180940316843240981467014870863198206546257001578511741378742542036681613430319806914182001400879672258466652912670870598812270848108575093865989379257321776786094849942519739594019583813971236838301585784924945178923777857638942866309309381689547996207785800022886236199012289417525220196769347217075793263228054842497335250235194690694269018100571319668835327358771768529951363013372511676473857263895047620543584025992976144727836747528985084709828566066220981143201025853818351136656227009325509560474137521610630070662193387639967141773145072598425922927409610249766758256770899793802577468322715327076489255737630213587046179381630267360141302239288018833934452773150366189544849993007050633237123602750855669320929317703138069638353913202888232298161190471483262071470771208581067508100179582873309734376081829775110863259519761799492353731213829059896775199361052524843004695721469030626151181793116335500552014616270132082691939898172883814688368895930154631897992497277952424848143013971716540864193434634863765855202780278157046594751014618340297932003391157376924743274769019173577385503365424396307468166996990766407899527019225072616294346468879444726188089467590195742205487911485387220964449343903240597217679939845269005773607764556265585827251759046141811182407895789502431112003595501552434158467431803303581106362354201155224692918205255893885226579305746535854125616152113102656568846980014835853973014225492131951884013058410644254905557957774081205215214167091582822742293966575439251482547656499226586974919442298542962259354966645208337066440524697313314664584165965411959265707567226898414677199687022555267424398459571664368970002806776512717787024757160472788419708150958910497483092776291119839535423757124464825901589181909107231005616198449189433707809068061876355659031657101162863748795834502526452463664561695669932164617597226718976150290800838002827771438702761179405439085269381428290390784337288551831352385645914259234306822004819622726383679752589882736978605993273327499995544696362120543523485139725983194995915533828755343821247134003823472461229787086545458359795226726655688014049915687832666407636242063897572176336964125824345365895775044758453462726530512311142776729015523569292213930295751746302051515778210837501666474561540335156538280654614733091552024153187990169536313049776859508839878166306109647653126561669290664016635383176143443982942636731600288652265557419809032904594873513268732376501727663466597098706182433636700636545857826425567100295130638952962449316993330586724597300164261377040266616851726662956108128266114997700327153563051671883116610362299882884462282981600566027108041623977761309230378281332337434125669195931791237077897743123802985879198523245538241843817820760989242571703797513830529663588016236523832454622273066815711258353329622623348313382095292251435010560518050801711731869230354198252058865461980609894862887197538063574738152859424159013581581403795382937160153468457006640578923783816509258359179322351577081688275889122913010034548682650134761004572413172587998431876365724110392205725970055942499965617310916408677536977891718310169239836711181404806207980310829776388078751874447933354207298065100149707237284331083530105074023870737171833289486152288685064631176826211533591151317101115529652851668147654274286196100969693835601679825871910286074766402103177729393272488750734981780616068196298569431795335119063876595698419992066831075749982569908078904506499588421398329634283312743613185343380102292691992789728008174603141570716193674412092192927749071445087837107823234302652608504014234962060289270331166210369697156927047347624581694168222571597272820595996048580701709788170513838670215391800610304319136118241325187830718395776703513893287836504961162396967238042319061315690464321139706991673900664083423036014594282328013822059725043912092800044168593249871688580217364030883092556541889756133841329195309706469010566172425887915927672096387815639667381337466644388047565775956210763460334326060675688729997520083167007620719591007719197900572251524794657790843640382710977248646670961615057778545499385759704900902054118598032696699888606450406958616016371126913087614820643474868959361574694239294889610148413240397909195049889188682791715609976932031396018459113764878944763698667049245590189363675215086465962265645967033233651507328089802218048959656811619638768027083171676083343527521337303454094986576822155726725626415137552899852857554950830610353156592350011829032834136211145602253084505731578100804398964418081200594861997485517881764192722207735556711983965628587054933449925219948916629602387189981023645306322128010266590901739759684457201819978417926455863524182603153231649501027686407693963510570025316029638822689158420241351933830457940888245664105894173266342389055467414067255522627119162003904545209730649814382817430239086490789855392097514916788167643194493433115961124956440930714007748185175256942861086884395879962863848815542007723512571862890215736478326211850057044660225283554763088549213479079227893089248175874941667746905762986283659119124526917600135258401749100862453576858360592379121921240417923123716576382708505906476608397671887413695248368667665001891604176624887729918097099469722362148348368307446369787900330485318446130893994668567958856919881571615536008030177285031055711285808172691394608781338306688499611550328082498013951304080394279897784220877388171934125977038299075400083524315712575813713734273082157275205113996393320793179382997474856539767765164533357949436824152376879354462045230310202988457568683381583288013935764983469737594858245520716771464725348637695624900639602186496769428405189681317249146681931008735615964049810764255236198497006601736708821072893102860704325078475141966326151146660801842787442706234048085526010446547909869545866300546890254183203387231616017113431360799913277741487208807730077435155318535302084104222987390719803497413469466869166698513012504063883967853041484871675557381090205546998208739943415128618068755821288931600531905489008828600372463955209288093187515100811626455331726654902528980504700385018104671943748794712594018189429246278012837537101103454759404443108273499909562258070370320841172533305063693719279324010714045159650731966784957409260324344948804908702717438947598447910711543241051583217911717017283947841889464372734778465089900043791206691534821849670757361898660403887413928746520202274702720784982698451328087826302174059694714573849167724352236693500048569391093507100437938710127703685434848097162267250738247066848208220376320929238508380503283611151324910954682819012539900398723603979202655682314656338387492533369643003286530633624980862262539584674363316534131142750174785722162921094677680416444060271036083901168518428324831958053229248092386533048642023038387493911045664170560094297986195393130388798519086002158520182362150233837338363857412102443917330327380910070748424269417542482334667704438333452340483026721980466551266668354146296870336026013537965032364047759512485388216305795891339111989135687902312979079428450497657056461210644985534684191913956839652889110149746404906023170537264125480974859380593584270728772792345362342164398781913992264381027526473688190160498488643910303980501320093550078473502452839701915055391407286854759050334653065734117083921524223700785012129404237619305757851860904007501635639036922748430639078766829424015123624342926713950101195973677482918545826506175351544192222741411966700545476677005417485893119556855590558060654501656636362556790701048590984277163646323724150592869673418471214925004705856023841286872022382603542938199250020095718749248517479257924941858872884360142361678440938516560502808361493461978928538018246778159452978864631736653685431129022179896728143947699108479823676034485295387720440019760593899462882804888977736563936137816985231988245928703442920766812821754061515789956909990136650926184242882748354910408192563209527450544604259715620335772316799823826679167976234779424092276805462713547275080904995449548752746136200792658886191992101309555697523126262112577713296001281585321616136212363524057422571755214940083246458243321595906901582551703392427016291042207332034268047995675317527788246902094117428656384699059236624725352366360239964916400016481105682571610967930051001227454860560164798824726284516703516510990572968230729217057371739785673224948263048621651332336337240731826865128350471601327829465902108254592726000228245055794554389611376108571414418418712816529638183478379004055168126060437357500622134215940121493617323483360309034338660498635917381089180509980927768746031136226662069492518735220525120639487022796434393081931698521297902851337248000051974223919874500170605517080501053801284636466207670508575357965248652313446402530021293917982120986484248522333490063057577575885260280470229152577921493434337986465438287195887624482443097695906104741254433694972481201738187003144669182814650425864053794098663959734427387235148974203528140064059405321669227345277400970742798387484412206035606712258906866323387810958845634984048800891605417487433162110219868007037065473317764053285119570731566431269526631576530998961154539999384081206205848064288508851260853501709013113358250884152961870744550527713463774421798721402159998803939744382178022262026377456933719615609875853762378754476839688639352213047147012465136556407536570321886153036924439085985772705664091962062246635762795496800553749230608898354371259734520657294217365651744712942328749684103392915496559167896845390534480800537456539233277178936249001903557353084005356994097768967951732000547861497844776865850863297198041568159468386735733649068495875788301431390158049024751719195506981791679154361367802259719465237189985551254056044609590963473133042086244983495536680165051236838537342504721980381496326398127609199230303937743471183483414873960802418270434839543574004233488658626762700766677552737916228206473696946263662346900692744077857351353724746990070525098975125652113107240509557836135796810436325084947814581000915946544463138159042327223903371790266597278341845576758037310567897806030487611834391071569653671961735562595291758827651644489403760028136333478125309734923986295574368567332038983535926177375421472296088201658474156569444158552510283474705351373694516322734351263482125493029174849230010873520265451239799433451362864489170945126316772498261880984313093565870686142336307167900263024504334213167349175353354548953393142250576977942723201974586146493465936747246140303865720748445946969756096460681866509810498041472926218516312370579815619059273121398621711548071987018357673836987611954070162238636316544741358904135264102143018109422642534083707911823682351264538809117065480138347873865619798261875405825018953689837602760589408165732622866642824100351770638436868302559312519989693619506686812023765768009738684940336077710314073565206638263578759603039766191440777855346257527133030034475900523325482547387552870213947313052776106890263652195864448971394099536629567819314462697793168227272467093038989158433516780970586843518257689022611990901065197809977433785392229512008054231359052856585827904707957225824233554004219835659497232351221364127206720067255909794868276330427102847254315655930029327043496942415126785985816903943101483113859034367444368234354238151030682200928961903231739690138396313621254388371245872405625153044893776388975145946609815887539107872338360101825870604259737385281882137019285256367204603133828120522501056328074209589620776625142361796975717787550889682520592361447965003221242744318561251642449956482177504853356170743033321905658037080258997074110466931853374899155880053654734776977208136330837252160612731806909615389104017165890596504151123225170238789838731513040695280921357126288971498554260261875829205388118347794598049632718013577887022659059775966424556421195483205000749236167590479484657653932882669381290181370252929795812183932525450223235950336352289775077297315972910657875427525902286796351096433309063839662206934128997484995673490246524949891513549552383260597099347985039833775839426190334455153950223002171649591804072217758026634669476851918513383936729365445436530109497540399037184445466059247975521832391573455132172804915700292422558609269461764432231951100301885231629477715094869177598468552403355265755105486442330927445694569196820283717585404703483210186468889717441995436341443652067901938301354505690319121548140559692163680471270385867648189871151822937801819641943077361449770411564193590154982152862984040978393153627218981499618147851301098259636496998509994432600471136377593150553144742063275595481255325208367644427793822532530204728659059281748059651397908964949922354181332495629105278533413188502352806456525117273698537972732420121979241351241092361365995530973970605442961687478661980355598694230330741960106006360970558126605782835441636464464279809839807767277358896405518343475381372215834522973002093831341957050522859351099550511574613920450687953673951863727919948870655415035793172781032352664042334927777558114226054301180043294347783749599390404428683230474518775138415153180522744824412879313756829584524898143281607194536647197159354345342985653415512619463687147959166338726313925938572282822316427503437168280707912770520801506956262348988990304651244443633086661442060738014333087515837275032023641386349002341220405221510146840979785624424187019205019549674234887007032132064545233295140192255425144228935195216412328721814097431148000541215550578166065613256289242609785237929187913790537376598376160511124160852410550904410275791111787078841378401291457175950307389530687510074108358402432788892416045584661678216438571881800277666518681986638141157681719743383095845455964645246258765660966613382341970073549642630113619868275981252642871570164376073600364313372787576309864124194684364139644367515033596447240612180928653030620087884024998960752665094761568428195072974883814451553480278711002024898451143206284661654637192689471703170905446742433320576397070216825245863125676838206115920375564440416776014948663817439873635685621883431116230951698019958081437556886453940671709367857394405499555618482409050674363647939263887853006112052356233193751779550576613014857412354189638372764532207849308861093750744036510477466360283927454506172352357864296332673554046094216567850570916058050054549710062320493694463380582680518738056894341199338980966599689846864966990606917757543782762163479432701586574284772402310163880908543390983708894659816535121605974024454825406947521501319163039716460411061769378801359840493625122837177782480245648028957950091165188585305845301008889685829384766515349569868859952998328720132340668358778441228236701246950712376409026904033505918449326383138488167196515575115243042517466298378931150543843577942608924789203520448317925497359069602972583773343238433274796115214158159975416008080557164838548241115811724517536128964991629598278819919799264175814956139371382442072275854314449547331200331259311939737979393092974505660864032358675616567242190442904557331719246931081404407214778822645381332231736138260211015701303837986568141469931739845377271445890804348546648609485004158948210016323608015034678839811753970337919061680541318215215252546755394911685375403997755016853229875460365928662408216874587924133525103882737680188652267204056644081434387995323872184860367037892243934133062710840018932999365971446339100144866590614192504495732312842989262561968513685561871271961871991833401564412009174691272830666662022865246997097736320344778472887361165424738729656498011321967040067821533158187629072556009187285363110896399951700625422838789520432107962404646648176487093433220937747484951937631246977144168086002821220801462720439138922714412378974653162197014115975880833325759223627670104283840317632407442705791917688368624358020969431609062580151217723199208855212454324279367520177904917648267942453438514933162744646250445637072677641577956682161329993944811035095676243276578481822808248332727955001575622843219209245380211122772197486589612169759029342368566762393618683114596365522258391501028048680750909507709837007568398352985691782641624867291610982288734278678314384093119908566448498623448457102839635388796592158260924434707424660338359982334256133889303264833690577451569054821444899755731820772113209440269366254612725555896685758206065123965838334431275220678860659192098304612324709935591906767445844709049866098346418955942940415599889493182267164925585960357903524250031227581009845305404791255526346053660745238384804198436453114016840238257944094439883359533535524246011819126866121649776252160782157059044086518114868844629123491673886862949651864854703349563188721238297665185861352698074596925831530304529077824546847140145517884582830602159248511496930049281195611090733707344631175465857021953670761644895049896905426864069772865488114678905827080134274528203034829295982013895273441849257420762430803547644546991157933248934959230306117830887175403005030901321195110330659331824973257293065117553085986660092573131815343357827025012681739173497489431822686769190188843884343741881691230240909599166163792515307797258026192064241521200280800607102912889151427146291355839788174355896737648492321613036608320343898533879707225615518021800130782317692278695824091826863297573220429684873528915357822362664637345440580835139508813097831109475566390630605990105050548150494456054323346663903641956356857286604459985509503834794679628663584577555635648592508027794234559486017765950516295128855817506220722912593625710722907940750750973772533996139511153151663607418140069417461943015050189916206441713682165245240369114040596769756065375939339082340181094827694549750515181087196239228449307160123471950323082250922936082493767345328181583715063571176251164784264269170636086624425042247999596569485840859353326601050065344634165787271940589967934932540856245197466283043647898974296645574380770701598303841024431212820268073079821949197873773439332901428692404679260447317274072263409472299020104795718083968056893547578603501938369088334569470068345920829581415919681627861162198470798250974237805623621716614382302244532812879900003397283292249481291782106122137085249825566864104949173006354966771230442536411620051182935708632483217701536842601758989376025127369416031302181393233781277923034414378646818458362677755832286774595983645900626482918844218319851394923524129908552208373247050926353181285681424412057531931048858699333552165491354605503786500825704105755798223222714326859659898882380534103174430551357754979795395236945909585949889786616904731406560467542223213999484559777931497414772598909709547280978176853215032671367446947299964184431383239145415458404902785950205670387449620765734102511765323760982006810522147527107907742778995963548916498658597688148155239948814357823359643624870661353724739567188278720405088668960046242158058278804083435931064354779143487174204709671040967399705983027041377309665419990651339841933432811055056423394305709151357448205178373857835297850321763133154912188016458119716809264580696148044133345067789221740522813512203716780580725353537943298299685841710725094617363688315375209307263530707565702116876230356234203634612950352395088713838168598714168434237218209859907644750934514216873880341791304577507028206704546002027639904232270319568298653557349346057149998616790794762805736123423578165504273849463508411477209811166925795257854863226241141746605167415535439282675738146493600867946581985165858933781968932462119786423690961856212095612822504796995261654212703494138180396002207241657253235938676720464433173585064295111933621085040551511933668243747451610067073835787614080768824108269679347275215357884958264692805975531032087471582685081019070106052488242243518580086213998567600523721420424671896904202651269316067305644881403824806595697255459310728940562394610316431417067243067086660126801308905092986071962610375231560285019230994635318039451577433122046826073364657355486580969371117276315732074316525717714976241782331481158957457869627084516694399857172473767509061719100189030081644611644237590818512032134232795590927315862842234935214269457049082743698718013311651502999780558107286941012998536265469117874231735458184124663593389702593107315400779553710083699231076618188485201598965912819248779387927613764346039950709091785437582652777181230813005270395958022720780820699741333305716738712315579110533629085255301714786863113774017862560313013135827139268309369322590684750123455230120628155738013326066526006700770012741681563692428347286330555163037914876109880515766492692303001421360772370002676417508635569494016319634449593215782730098145018582955133867764971769821749179734118202916322400117891284130682213115086988293340521415433594423724758832078284802232795136010241425597076517474264802777457383445465571623379182799934342526325145588861161817512299473627503823896625442832969672692305164616032276325970000326586686713009754950432332182513463817225955848345190547925557002870923026598124151989202411271461339544699890275930776881767615466498398681734687264296417507662292161006002625354664534399711774636939908236611596196251108889411201412012575396126701131852289691616079307445830433132067823242414044023840957913918250800877786821340108762055749946849312070788617459383161645042460080809945446814344565861274007915577215559644253186868962465062207224214311268847785884599999870458875581408972087999506525829528499607674754857075729902909250715510689501410988054623384622574354738919799530668411863339332195732842970580921331586919009492544856498628464887926716990593899733684855296904822884826692904671966941146281314478974876509497599099441807507166575203192498504918418217312029784956975601677064143885542054588548819904482293556052302400480700200101034373940825114621446894218216595595941891281477356441397428607129324476307079731650030403230484343029411869007093207662653425694591717212217108630675018336617449541719107849620775640964201464536678831245694343738375883968554388721212297078523460596574095263120772309168676540034637482225164620501131117867742429066190914588214629736091415827325636916557122426341698011907576231232940145052002109114448508486460136337799881903363283058547728297172848559644594903618078947243370375558867582280277061881446574634008903336436075564434790025652891214621568034633743886211592172945249625157727122088548706309658975126565101921819518199712240362144828310023563963953564382376002820771131748670852403892399001615834527648794588605815562999993804969204656629420680224859853735106865139865242155116330393267417236672694711345709492564734003942732240515610888370852716112601848957327714696578472079161405542938481330086774841098662664779047979859268228596125750359196585569600774652265643498505893300844774652931508952152120154438030982426161288911938866870530043810363325840200315300403525134341682175302288689116945762845486970449869670504278117669045928729854518808858792015021566462612120370573490327428417921997897496731957373090408927582607595032694293944930365971349196095059241805133072749866163648872132866855265880284079347107796086380179242203817473283595712697950273048375726066341894708512189243066086587599458439816219446736263388371365454229152227702119846153734174176281281088819383733142184723189499144563529170245928503491491152123521715888230135942619741368358352502109526148161936872895578409856387012527303739966310064142302328786049409718300244640775308986892622455114589415330025158659058265779365298735511794728950514691447380684566506028312285523196243855692624495479668649752391110988771166395882778754115535893255691207161136134662925486583112340025816458352078201847245512533882291774637142447647198009546363875241738658108155157072464813552545314648363616972581513331094524675616805896113855078626202217502768543101129941271414392985930994404065582326648283056940550313677355206363651409819575391858425748529716262254618748895564366180260216073146912845469921754085863808196357470465467425465882264677887842373547704188013175496210484721731456899222819228941831586066119844884513246577365410535867945587319225423407498379581226224524487117843286751807603094122388951434595667191688918128632746683812075217907486199782385790715072952161554887915253550766270489184828028061250435011934448687977694230012381778185271817169582123736174468754506106475823442013727991173343763515510914132327261700809726783094641884523387095540110779967464214405315150317089281367741994288308441263106400683531231698573344714870739929211936678636850525805291253003736354377686053511435496019071435109510590362757032219788666951301441836734188016856292324732462716041098069725117700776015224099117097484129561741039771614074957777490645716143079131241279476656227950885739900854163912354901778906944564700078419959222066782984130886430585133163872641396204148504095563943255991970554596624519458034577457285506980723547769690880637368785506383382275141239379691400874105572827723707289711639939963817948007724688685568554396326248659896519651344048086068643494581545035354151317497908556109273977579196391044108169987454770753214096109636783910556217825899326439818431730247244207239277087022362301199080277503314187989302223366928827615355474706587045705690151281688517453340229771700696215015558453656305028213527638768000699925713000296299811260587542379468515764944500716673478032012728440035686372637624333415319586241355281966241541127407575919462826644932546293358869436425999198148621391181991087213068748482042965532410141518805848269106821719595558292127115940299941401370211580897010041434085437292010631437471025924436285446702799276175295237242042102730338102441057730798716615283481863378900653418615501590248522052823636454318623612614381689062050309052277410738921816307578923294185234690414481160026078119189601580501625160158812199036092870466226699353236973508806188414723913564943622507516897238664732014239370369687443297886925355854281558215888704811495606954114557088300665448845858678181779748736334620492238449930001406298075161972551396517876252869025755801279419560422256087136383242962053654671733276870448211951326643923008689395496275064982739011265629072879906740965044499321961895838746653723055419170431936036946974525702785124050501116762145226965836188736127394912591237399998185997855105651704642560690587118123912096112266790404186483016893668074328586914421754986073527667383056694034224464678297257715986609477920037921236924013757782455515443864720940964573861214680687721149891651612644484220981041746826962224884903251495034081436982305408186128376636171267151839594538786447910300567183350756517016356724397099788512068146919422538712852658192203886894882404782751530527952135629903242197725312640913714448563162005131825790783254360941259826296147633182002510442209690377131865794542194262867943916416103990447377448111765164013917118053156039647155989875670409691709631970818012552728781725406035395268979850716464443449322948520869856128503876508325275272606668500576766359922123191777059162528788711838032787402384242728541243917409840148177519146536381262696476456832208241554128803154142606235793984702594621540544242352735095295466962365910869204376089289369304262966155653190107763429832049170365303463165022186331357599235973275763480788575267783237651210723076781183243865455664141734961727760692959523803136560706872709951225418440791861270141824329954969898134618380008532191729914133715887093442532857861094578132752802931127405219097005917566499364833872869600287038020673398381277430440692307471283123991286953325240883855182992446306184122531145054183511984857595863430403965308357810171372876905355505803713873226723653072279692296064359806563305778621951784944150672526910066203763344661295456777255990733844564088613397574613883090515859790226284840010544019569760605959949110897989236612865454164152703181313341639462645163723118084894871837607219799407919789904963784363292404199150841410454620790786881049731085573295957466832332652189817435990984753985403809717559540788090828721863958152130302159999428569505632656341541389437847241042733087093007818780581371706661737454795355591862162919049164761643389907610304457332415301628025617092735808380380371637700138214106817124005427643210415181153285273144802242756005670878068057632612238657415436689248226557142973833599653280479109408340903662900111857505519432311650579984797485965796346624440013427239838851541928280088482262967478541873966006681412365841512828010124180980752804824197970730706843715906706375570566443223951673799445711301275681988080426452375990702639857735035440389327249246813381843373412583698367743725995555005522260601702360573849370140122333375890103951927130325768130935449444437302707717798937920708001858840428669542289000286840286888120997663718622242800100973884305993597212112735772238223190451140557148916280956180471969564311073406001062396572854235296691756717408044879002815683341458311576938584899226570318735441665242535305266041058356075888555551059027910409120032068606703242699459013071688374144407014067358816719948806400806011194919286105842823681063007911223415974339863205072343507137659179469239538776706737791548687820447222954713152062688225136798788865221272982600826535524721093356256763019216495431076018416745321586556406243445117812873383912769304770285874567640702938283265200592711932357104491578227907231318418711671927697270141065886623270830274692377689345801847766348004432291237858313607853865426242991261954038327401859231054728230321591584820971151838922134840794360582083602099344341598414523789405105246142953921610384258322292369963073143691090743842576444937380664480497235635276121463278729182742951423540256309856084858705375922893802457320020137773745015158046067848552500937505468893489472266791851261893312815268698251056020706854102364199487880342003567462884413667048503882654865739061304402621232147033743558358864297250901221904571283750958298048093089814466769945252263857304632520972253422225307439795270415015162106709755179770686952043875654435437580166769106424867005241645848714084401806231485912355126906947268770663345150499198623310210515663258252207229694593121346761035887028237035937274106978807720996467949511495357590827037292214226639193783037762797495472258417850188868697082245764067317969149043144185062329736453358309496058790721572773176957184260510003689791015696635942459440215561378141601733747659483955835177304032715732694166735722043442113717900971602725910213988328919933726807935511224751204272588628438267189671665973734965089890071830013618695508028054171924085550523569768164945413942485027530764403426024197362991830918962665472526710487986982166271381238057035793560469842988499835416071804328911134594485307144664160757499111984604934916759028664507405308228080945660035206314064085932297867903250738276217990949320039816411773923749218809704537500673402679230754983258206690897191195832856351434132906432179661166249416146949546552586029115679566177723718887380228361799423201714563150717245318075440241738102007068541805866793813458883779821340885611774127417012671730401315336635048070067794395247453845186273075989539264201214873834141542898195666907095951987216567664828343173631843204012003652015464344087384264172746899669362063717806049647403532082806214820937718763459781158784304690392227260163485247087160451485005285327480094735547497114696354409336506836470505590199213480287655576598837275260412429835959478927361238674474028573995382863927126823671854993066401998963636903056692386536883911483531372588000582703975464947055774602141403973956086757774065591774630987816568136873578407387589827628073884991179413051685414134195010143756309826639525327209747347006111218586394501449417001379032704254698416285448239343654546586097375064286966610698551734592386783525736104004119193281336244561925397390964383109003257662110743345743293290771016860002905816767438697991034413072841203738460946391036958288315765083713344651744822171309321287147548073848034831356054515986187818298001602001865050130742027566618889096719372352301363293176633470365803906953041430353716734151029011622381059526335946471446045874295011138199735694511750681012095579606773961941516873195769443753193269051350806499924210859066712110575898433656123403577853858454128155394303048241403896227993461756697346687291726261077217536386988824487523358592241911162008693943528289511017653365111348306816066013798021814456494378987263993542912236317113362031535053422350083065505270831358738873857997713242277064585607212444808672150047434038348518646797517554729954000859663895691708316203130150461643723228535987159429701871586677818658969753080332047074113031425123513610544203093222961776498497701191409818177778074259685880373249440905963855179626590243233592571234430377467701110262088495487014222547082517041769258252357877467264484440912636872629611765149303969814718069719393945827613891799950679018531379101574291049145379046521226365447441639239827692576309947242397621876106253787134429311953235529613515252654591968313504782765493778690482315708410013303611520963034915917598727057424332328887618909443068917989335869448179934179949961432107420256508173447008935470042122025922158372756903079582536438595385407951049951491071340377523639483238727306441320494546912646821972333821057928354952297055664886420621352228509301979753571302739738769847074049944829563324197772115843120071054454794242436929048491546735600707952650349355384963396452493587203216346758739780743272607393883508451846673763895026484119225019198557585320034575524705857341327816890169780320134577719056389207671430189493533607403737009935411517521087836925100918631871390691208296805522416556857978406587302553837686552012122242917677472655594387219374929307819721745753179213713355511385184540858702291821499393565708883010980178580909368291030632936846758743082137425648215838296163558582976131498352863927066515240344498773283630972987755774504547015225349348455778481874156156392435292499099728197609356126061082740722378463033983836417161294082189076724985169028591007022852578214809850333826157645438087886283073259426813250579688444117234978688495201885302639024784622938023526769794117979487117564828550472665858850496442312281017666199162409952330962408549457464176083576394145233431518985198416983825796569823780903138561115143361246602646450072134978182843328821591722537809097889055812125713445155235317555642885284448675369188225756939281011159016266638129498188006899700682469812733576571242907934429460116104138168781486287910533060138762764077850472121618985880509368917269456793656611154100314008354987709095418605667208179951774346767793382912154206988447055373698241286365976140297301156942062005574596674472512727151636011625066817182085272340149161623761178304499318426371936016351567206705092740113065482760244251628366056557557579281517283574013274345921983023411631701598391524687210234176750967653320467515466645695984690410391207418331925755885812476003972239991495967055272748049242642885022404771963096488075892718007237092639472385887407206038485095040091525995813930261978803372147080981442556101111596995460113235681050562960590564080030819117073103167388000716053257361891249832020322823944774201543829603309646993592970319761487275200622751865247315746727449883436550140493363388919365601538602635737375111704283502098513141705421351196659937536835849651997144453824210802136272976656316756758391481576486735853833292249210600961457542404411859710055074231467575919245860161709275566756800284493214467342820674114302374936823723900309961871510691149226751326525832290608047596021704502550218600200001766743900296248189387970843915297613248537955159991620338319850743654160861927080396780541229482276011027455519480542194167894167831001031819300825294090914753629923430691104629837571085335875275393068270021975668406115828905529369665585493433757653649825698491844395815836699746529849975639426731543323841185022653551773685424778594780815435739205134961211525935355134336174787084198368413589295426222348853515022700587490916481990368106203612449764152395871180013820136420803015509626134273683612456203965067218385365593589134314209876232116873670878936373972497207838890076526195117865512600178615390038888276979103275867694456568189389964266869265209381684822954630727863840404085812337191306923068020398281943253975009933235728779917387837807704965814293017181977362611954409190464105420402585627443902455326389592549280005137725780541380252899636126533385941069984492218661742578059297354452590060761582843901062695773514917005586740123551502417682276202705114378963649808353479474630383531751765172042804041612623713542953824320011724458865653736725347164153515872153473501502186268564091673447172668669585514976206253099765737741364720192606219887570248276019515079108572315139965467490451364492097277204790579471593966853326382715880984114854547911747718419845159576142821308396474377152338394349630330194174503161004626685688959333422072393775911793900714317477790682052791903889842980585881037339762208320727068985463060619849790274033088137865397130330760321945187896751194780938628612383940545224933603395236398722517447156634791371943761354459252590085257728250079796156826297652348051830269207562331074295793212978739407451083996414484810852148802946299204642477911832555817511812590240742420801483802171085411608318310070590535804554965943654236395251517620035718803120987055935734815354606974501875818396130400880272801775730362152586723663288376799788789014529088159701893948327999812374545547479820199884888401330388995919540675898955197633294329353167561997109012695327469387561149802509173823317667407713840641996907013441509729952436394201767280250154850107393750214899014224192796431588774391183110133198139161705358464038663885706384412165313124823813216609079434560411970947051456322893960457441904948983421117870191468117164395777085477679723626142544386659725034726502874425418854629095240583301827557405474075717377500778245048927097974555362613899455607404292898828714231477660113609249064677883051315663379997199462709341801676023877196936530151598034098621645935761055595947850382754900872484079199600499022485900569754508527783081317510656919014766770473109214721269886711473893134743174517982129019499597466204485772411644224128060729653766553893214904562519015367807691455439016779973317904553541711837808494010792303248689112498932529127534390526217784013786623845394400472277378977358719499578740117379601351095149188873883656393297816876403334751667192176497848043237101624379526765505151005936908081064487355947944820732423751242909574169698333260456378764480528567618758024279034664219418066999418007243671454837676593018136565242663205276013354926601432849902780618594952287043495433798037279962553531848717493805083262472951903399833808515060577192840798508334714425724565071846070016592331462770251143231726797781724129288259032108825035303791665290191834394273774472475218721458551390198362829393553752387764502366702565705369251872140264445213426039985489709797700629907765830880900919282884464587012801871699012758037794626638326290601882234572003190150545678462275458553691412672188097561238527477319635428063088125558576019344946744451174788802400575802699261910580758053814949512599909296767122924620506410508547086095015214408035360554655230490631763295660699734767641004234986996314744494641338967543429337949965638173557728870204854500905074220283606555509959416594658485985070005291747091777453798596307953699677182595151410620711356465074267615196350245866167654835167714638236428029846404910049216517564383912535331260836376208103916026417608216632675208784278036833202723173796357349061958333409771926722339828214698714750545586199053664950551236416969517829090839069407681512069338247991026151628750350567390418076672708162820558215079748326101548609833905668129220658001613482184481196800449958792647353403333392898100952328131126746809905085775754436635495097997749376301675496691958475806628906000954700759396051637950928415588378440186655007046536264493802127912141565398062453779794363076945792029973765439476166022274709316858941491441138231010343010560061293089115519609776283277348354911907762602665589784610210685368328901273099396612495342035505212077480571736465362601945464289010769432389814389131783997949099679471582345625501295769993433087307736449692063045045419605971843697871393431245761836243421860201527995598216059035809178434122196727821806643164537026840728572559428622018012457356549931323925541405984514287284895524154165898070384262800650951542028457812737466740198711836383203814608184254170328895698569287782781124954147676591316410109713164006671653346229270900774589708480637542219062651549095009416084709624126904854644922529566707116174998903468330777888833655459266040021240699147292741640282149842011642533767812194531095913715423589441127739900272992783337342383315539942972567319626216930875203660440707433436100654814634073407659996918652620809431604064359240965682950280388335956282738385970435143609812430415731893315600588114162905050953655334818571486962844797779999648419793275801179649268458863087466317773260621569358915546907782842357290985069299282845598869075737893769773159022581267559076423874668735411932140449993909505888926934679968838148229166247297864621928344740621998845286788563532377803907396092484979489178483056674529606629402425483287835189893393943741086317122660330546850577438013047195879722057707692750777036455270174682198319142612926456904281569608602060660359319072278310859102645275486245983508585498829655027213030973610518513003257629286114269365780225585694078953360027339192387947068759952512356009162495593759526734750787811954452752360491228651481151264543283322192955219073945734512398754432624061619013456001682222519707479669147648598722828725120138128886534460761896005212556229119108944924436202107786145411748427246763390969764835268289401709177864215223361214337936960587674242037545288394039675895351333651148169652430904317476930784393572322567734379565801006819968783954388358006453206334719558486522532486088487151257673277403792154506250648084848850060421101747126042409465916823922635744598914752784269956785271969150482432207950644512812086712059712363956032296004909898983641350289859777312089448859398975038184077404700413075849538067556971626912543686583517195953873717907411031381923790169681970122282219599984976355875130850592792185592883575478939998712862747147741247466787136545496070758663773698028055655551900437217279922473584465729961233225427860891143371832725136889247861884955517725689826239420899974241044801583798342587468446968317957646121676618945292533706410452509739577491991827548803022581122286946792787302271967242503106749349274749482733783630475672709646419237040510238066286927534715954059404327184790261929171519419639230034028261544598273662624726627842008567775379970063265228943069756820709731013079942474078627782255730804841681565452681055158669895014464808336662012031653630976268470573901739048318078348970428924524904643519571256771657815181445630586652728917699778673205536185770411050135620351837300265685002586535892973048954414562382663344388242008860498516383316977847761954762842957923125467277317887443874231509015727504023754516156981160319424519725221310720437585728428457495089028962148711937715117126422578345936382835504355292355914584771048422188211086280360669385756543231579811701112268342705557899387305358156440432845867416664344130501616124085551072990132199605083320583855325892368396383164683235724813022407345789054558493213920196438317818906193243268822517218781164933439360806127495637414742178966752431333468340182759277887905713072647936537529041876286981602066417326731412048924308206978771954113230434739282437163018328838031948007478791435744445611604726523080618461465145697387470001234056818362620226857538597354905552962256294718595492916302130556519737566255851166180185299475995873725727319166803502764501818054812328091180483038719681445906545153768185547204191242807453390503966089515668706804254400600438125262644985511405872128189041212848292016110273559017508894093906730304311558943193101413176154093521082503604735824254795392147199968938708539448736170786088720987358521894250412063562083897198845898426027745668137152437154459049402383419262155780896148132989806090638989759785316156703212588482227149487088717447583848260465969589968623799138544215301004966054498956828162046743386457276384045937159049943890931196888979284343226271061310137084368538019902775615844723905791115444963264736882683229698643877615355264965418098226192568766392703495668301978388146264802309631507190276244561939352479333972579210001974866844801878561958302909307344058708697354281439958383256643553972996175716086665609733160492275921326432613818013308105979201096614074379146195967877107097200683488880688755641806988117000812053209908952062198933556751390714139780995232295243918583927337514109832775527279753306506013101542860781383129944902992007543604357829592645522536942710110838644045929100523329705315214275200419894481025429313535518736056090744342187885781459459781404050790037471329225254090731397526445619849963681559312044431517003369428991581050993428912945091577603738712965613833435100225569120939238361450689721932683279812466898375717265961508418690128592418056272119844072912980643512668730272731865043020465684678394087069452763802900036263338094648271604368235880656177567979673047789926599087668565897756789224575532509124876735349493750631303167479108201549535572461015669369829170368390445769772175256781611230382961847809655875560591615969562500924516156693808586232452722279610524043837392955985102290557973829764460127323152303209817553503986287171262679044394853627193147847207300282776793610981001225142186318852513723832226244074329935226990464730838489350385261822711744262705474532592694499054474911891488359307627402424952011079778349642143721999746797871706479828588568970642353962552321631224221577408267597881838932364769161799679991405934404204245808426536402909841924588543771946161513447121380567820726447974295674163536492730464883520655681209540201630586460238136179134899208083326357241107704979806231458522896817105260143536043590179483511916580535002352626478196604552688261623128731493411310622731250542352300014372661166404032442694923023236266011526206011414835761851835844039584340275946178240392852251861229967710119009979155812000179184834700405265156056781842296148451287229630119206349673725510769690317624789127117279433045540293139542052767810553779157086924446047531395309895524288417611922197796777327551919790667598666409849276967848093122003897728076151036289853499139289193538879233864026962720707553356148494960575026691217895718372710665997895442382590247753374521958259902621161869442259221073383137336451308813452686714474012612707873954028375505215856294459764187652492950756156182756172019946651184701886754247051831289973614268274058700992645640475004204349698276992676883422560199407436942479727544763397339650671524391504751815613696053929188391298894638450710914913136658584984314635845255410150868425984522090271328493462652446239586978884222852277664970999026695261859957769770762434983505892302438083235727036295124243976987096552955999073985907977555302041787421063945340447272591902261023920918051802399019221246617675432406028251863762671573340489795776114088144685817516708730745687243982147089677767354656985020503479300485175458292912597291871072818987777977847342898138228067443052011312539370965156857836325931571636391750079056522537222509013048095348115393520462998212351650529253836766287336129229725251996280447703635598463798806761616201319055481751639524238229318583236394697086898958256564356072481540750166384849889519699950940973001731062865556446635794262216292970201864045990249525585902986730395198973035329066703515273284141833113595732273743070760861275027961666899079326312509644373317485166310831916481646000799597346283422199248683947367605137233068708101861403537951856479187425307525299152472347047914295219401162588533987530037391514394098669825787899182003668826480630436937570634770229826919071509475635685280437581099344296428137072875240189540458493640198263496904282970786748549567561421813281965586472497224689363137525256594264874028005015268381962768404853551993147480440578332522259803424004896948517865109166747943180461177367992112856188590773387786605882328472277216577090219562310484664911203625615279517927208836665638850138063440797394167186266051042643440422471537005390353236573461324908470781120634246190737679587531578340311884496807696880228617878952680404068904024566203776856124325299482633293805211039987382701525571334204664224220050055473964823772317650590707186517850956032123692085162328772925960868959055825987365723300548341184356467848945582670213353497437894235179219991430491621176562517339190299279020434161402032757865585706612079085104494261717524250413678937558970604776759520790679813293062592552605438459266478038796851205087199538849879921983963243869710282878167458639860850990045187393367401507863308417623443961733623570841426247622897576565104812766959915400791697982988136410198620307042110265162537800631907790604440695968401081465572770019450492805061607989051862637903011024953423426044700248710032955740672133039813198869214298104289641679994804188293685357989928804690325521514784780758225229420600428115230775828153797522780601795898310356968851213229336278852266637526078752450859961721016881228807959032428120735154082087372694706014218484337346199825185400569276841269634382419397049905455383506149343100641552531142120811979615977218204042909692114633402145675858447570362813409490709380741446559141493927550635228436483441347517817016158239620686472389479318198973423774568831480398433360267755232350975772802575412675035163312598442282556844182824211429066069364542856351308803358491045026888852877735134414746221289286674323765558833149908567728398072646637029132814930041272706927293584663706371555455702682982667283745670051093871719428368485848456418174295372954414704569396996281103034710364962787582586031491368954164483563173830918154939911644339065392252350772793779458230845790493191442307246110474021714204331500845361307012720908669338364340723465033245778879088045200978912863651336251349527106881840945055357473660750533361321357456168991948248148974491894482133733360732167956745678456750390975363740719070718489743388177880262141317056854650922395554901585525325498425092770031273701605099705075576034335194884456410199191450829843985429776233319751394299772672965535461846697961415815792389225301966280593373345156983100614686221824363551154371377413488042903977040155675194313957344214349737548985016563857476372964012464052095129480321703143035261767087319201517036115592424357120967749535754070692572180074331303725825585596911315027361851553036787260725716751777877499755352643754642403295150819799273197623900161553225667212782646158068092620669579016071040189978141538700719591241520570745398054094316052160337923627283214873500847937894737038065079236323216419570493364744794486721514362655435564848489665384675291827411402183715325769815641352995494809286429528162378884479123331514233695514793474604527279872927612726616885137197999764592005384205918491414953110750463523594976977272722956678371791537130425478244528098259857841414235103447194491836429957056040339535524218722156021137866188791732062140048555412978874163786317120365902773408780435575954277439664736595807680247434485447145410668055207207044125115026844133244224310828126835398004633305483535074346154939474887597424868589109011697599251973739389693653030844875656796469960261425485491649288961872587212460594962144143708235053664200058210485060797479098341967877529729039730850983776089957288036895164365754234373535560125404713561673226662283151415567509105209976229549128685984592805961374996447536248644209006442089675725930625321598331932607017400094338261348112840404609641905538748795407993474212247716517992418056853808902955063822176433201866852272305602904899190127592022202077713732208769201177781148540343818719676762912666837812536320734909513817933279457580224397497462571520341121196748689066658716378232041958263311004446879000298897591724060933587858090309609765168773570460490857814592144839231597558561939391866099919265216407430884418134622054806865042159313707906747752626493320851750417294461846251696507535335835305578326641336200076287713096171340219473868987285833155900409733756527326768873350924227923532611518045160583622020074006408821250727022961569258628971111028855887235766313609552442055635759905870030824938916699699720082176745194859093256818199678397402373083344640671262272817339106578678781142691423331245468478764474010389989512495252122726137576317555451042037172360038850290397179797860144337161825484114477403181688334255566899457724604151647902758302209070091086964650374041264660087640572502657070840442359335412815226981730901041477531939342731924074686759796814853546825657280414333851103060428836027940559161227813593590182863243122151938944016694576264998582850284252593938942842470589018374729583793520193832321852163246155725944289320931242373085477513830882132197143356514239227535811841460014594438291635406043631681240109677684237670316381902521077314284461708675196102449309072886061179732121534983657728929085935913377609028388309699951401741372171151037168141735282418490342704792290898469736500189250246126889071959621568394816713172345368997095151028829396951743368321110563206029763233554012004239898424404183201201169702138740454291451281939883939661884199904623484583336658550581010124741160825644055777086801347375644848681823425134232681274726520181298960412349885414308372379325812418539333778820945221496503502597954967318111534379974319231494863074933843801943327759225791219403629759790193580880230806158697747515803081525059942221441380458235647171843271019151453192768551318347812719418218481421197505561837307015508332451679331646164125003736438736236101205992686656251979372951656362933379565738259126916890203946961493446300380926158263967508926558801495445587203526902517646007783020448739874472785850085429801536515457177577447210031056676955495268659068123179986199963051874050601450859969549528217241342562986022399494384690278813841739763745968896911829514852807067931172997811736917577750859453546630768723121478751032695139480433122523998707615040092186415036010171260992335740325912708524209702180771228828717130137151175459808653640698412469924716802353707275402196431870084085195375635035198662085204117507333025332754666755463109700101909052647508496347601053553202707014807193055149018059811949839487993794763914952254096540412436774455625232885196762330013970192842921289258858867237752964245715751472709498982104536228463268503302265175495471413168560507685282020858857432961083911214094913440933591226734072576070067981080787946584824220833328672870428972234711997023763876897981700645213046537664627383484092186361909646543731549390938629374961886687681262513201706989323543300001787775352898017122995341062682025931060931322649193135615972680753513685173989625676186063307557123612544872975146351458352018761459286877149649281644620623331858820911583544114594926090089011959881145676026002200197398575452783271116272129699736326108065634595342161791552319371113993492402864282171556080343929104621623201424147710343523038531318568617643718086032483085941799839980325501826137654597656423366090944274775668309600773712235008384116626056310918196492713601369948878338026081410192997166356974663543881037635800292942509297964379034172107975642817337417912686621980813033832553678751243018581102564431945303177038772673197464578650915812361953361966653395138374814456542732896502286882913996459616440929757893734163910295881123006388965183864617243224908722826672265503495973026068509672506690293300486539682241013600334911718180393166592330819022198060240433981822616962216880837240086212814038384248198656185159128905691329738095922403374160719727131376221561776252661754437184974444823321645124640616536104313664215016145040652851849609977518143454264799310059210732304671213806896986377223342707999278712377353834174513753454206166531896049419321713796827426587297263245737796661218388171556157670171494399361351133380998904280570325483362330852470519180354779882088403474589291242653356019906035461868999120469367308379933140575489085116264436677322539762519337677634649246758022745195646263744088084541571588102461456734298793254049923960753633862737243674484662488909290119464946321574770720874648747564549037594111152240924731966395159705358743800589962796141183091000976344824895725623585461822516893155213151620663589614593941824116825600321123904236019339751823716867538197348588485728735535934479176908053028177478459274388168588359957280507839857052949660111504757595118300925497908269732167713553917191512453443889963257441726485410113158488959106240130927943611420741885489965488865908063890349088431122528135224425237090866203185342542160118850221542164831692217494187417544327593666143086178545998348064639976191109566541728932701046988503366064072315586184768705536985047865109788854849498204397346250471711123740633315978005906111347317941404954129436959258218709908210182369958556197933630504618640020728708186706474332432223536699027868390797126043057791005868375085169693236673675305331992214167036949410205424196708355273811927118358597842927708099437446436424717351069479593974082913321351816406702319167591639479092348013779425214675897495619650202804166863794057578539901643735632323780454084138471939632772521816117590216984176492965722043052318973984145974747457151087824451977055267253668283520055811113627626429712570939894027562471049278645816610862921310231429760016004444358423898903190190977814759227017220504394204364643129419285981234159261845805846908326951801516326695102488556958746207719749502415289268148417692189088461512346198486125500491559897416580306066353379164781417164456542406888106796160382502428850845992099920450606192190075724059380880980577398087431841547442438952062426428866064312046569996892908187048725678668573282659495186876279607671947433003698791370339570764421717352038703993137673113711287153836835499605561299802198141986761012846993766781093335259752347463385463395962347817597808870953952229279813187720640856956370584460099191992408489900371002189698831256922474584662216724151328732997951699009285146768115960484093835893376007594357933949521993430358947830064617213641126413999362032155979127048396874772633573370075955026721318920955622364038545660863383114261687480260155372977120445971285927243552115852733309047721517645579331472680638217370743902849029314564883403768483400292969935393109678686981560114546824817324086385248410377460140832529193927713569279114968572458200058389622215852211935869160628641668750204505025642821487051226253141565659127607243753733659078555273309976125147582352810315003596497000390844861739331368595267471396345572589242446004356321866739285775237986828381022668732862100478387659421842330553757319327134481934722873870713670982865719043954961442797058921649290240921230305192577098687654078404093928526897135646262970710966787453421852101049679382849969599251362388053307668918393796180553544451938381093992603702579654142039599967843164383271644790397697216040585511021777856448283828155983192661690878990337315601597312602649262183154062367901930227428418702714492512530772040209309398181905796278087879536014494604749083338251610781398231568596559106469640711459808244457666130784131030482101284180261181449720076132016070803354916428034212888730809538320754156670703273098053861738653817060456217810297016492300957111287570086514693477801169706947536798276276683898938680016112709287042058868892364691213766627243227578557118468529495777638508005521583204320537011423742464122788505315958128942520680744300449718915995916553430915603782201915588402369180551369382318254070504349491830485491455349458702266656271348215018344579823434979276802411261115692452562615148142980549967511672781213516303477184626023081139497314055535898901770971060406996626067852430484135756066906110216824605383305623263377998399003789725251690413509480841478271421324023114469540738440884506429206894748603090026706511491994704041348451208884104956710053169305467741473672526053727528628939782062428239861313788653471956040337209971345781355831426124155491494417990955566848263288847858849182227362800649601158517620600220422433384860089229323412925620179362007674984832140027801295022059182221079025352546386516741344671042255379829518771559425878436000082351484879006702816076961921691067418078641343148059616502502278719238081634386165379183022346646591592545978473475788168717964528627601731133770232834907787335326366523848963812119707891723641648395743330300953732658798608788596407481185604932788309722731449372865259320613173555931775486473591164927693013619648947218145762288396403855361964938191570311023972691657821977531752004238458171961687342773819421103538403791014007313601245450099207278473330739467174083710962517134265037692259689481769022664783529044106564488170033046201109704345716732071964358188277324357818556078824845435056389103962985535983453413313853388686491125081887422177186672534984481910498712844755058313942631277782229671127660344013086067481645175582011609954615394648006450287724644919598728643895593996299780993699916998920953365491477001642374953107407044661723584435330502238620771155589808523709542540331348387785919623308335274001873024717490246523034700723342718289269619333068979566373464025036563006577138909028425070144768421919057616745040054654064682098973639313406522111803630184841601318039561366453210983392564427391378162751250767239593644057714443303371132414524603013712736911699963760319642752029254565209410021851085083189816917176139993555899367505027672422972747928796278515062018933724744519669751334698627449209259378851379219214728474872491888783297575966444868670078119182366341740059364273422672887409559024591600606732974389833794747863315059750027191925324332767900422125958412788594363402969282803238935651906389390160715425229254669711827636357653070094103011177285074427618087499307685175894726887023770046440994926772629226473823051475481277318464858153904352639834764160804938044763785647711496395373192001893969398914279370961421107978744487278319484562814503254462516857807594936605020606571773115508825560276574432365018607734577583426006655222179442889291038953486238239652554282136530917527568180013604898833879181075400361311018121330204374835616039436586692265612070385774372810214033330562819582607729948607946586410911325518353650706015285763034304128199632727417226535233923997452409792672208370833188506966115798859020314442061265576172523665382815699381753790128463741121106249208796006703443073931763175015746852651101271585808885604832377595722192046763143618155221681444822852727485483343710187684847609879342072838047599782260827157211138403701799840730398249723541522237138915164804988711010101874678934087802451894981474491290758929887015535328656741087943353373245831005728041434050447918689933080257268335688877019129466049394471275026774457229967172139126939583994260208423775464244643546959578890364181830855369617834136681046786051788739108965393450570067511684950819972988569829499682469026488953484399336727315058724834633913807172155718581688486442658098691988848521798488532221887205286827927773299238398079051378755116395587329206581320736342253401422599330860765829697127669812421507837365023936684435082329828843777419575433186851716772851654520381956195409893896836081265485420668114994231352575895820792428650067121024962021781303867680027115180309103269262917102127054720429907156856926686285410115272354369381786596730942122205041324605742252204351569110525577768280058229978306680149198526336711764909356009038698863348002890424129014776489295925621273974477897807164751701114189151635791125310615385099083140874960091595470817742639760635910030531805423077016848883932414394497897295981718090128491485709187721368349375964726788155468522811222172329811705185563771134398812803817112281943155378581390389176618735820239327609312873905050951300998543593240191908590580662280592561315650124088529409578050332807241864939685745819522602329138161849749625865012723469098527081622779053513856261037908700019477219079001764539794634280638495697353067200786624923854298261897783595866626611119447140292312518007724498378717133116112573961169755119292357139033831033823350370826725763274698908830824164500753932571519526758942797235521413798731351928400620978037608957372237138294992548058384784992687503386416142372048605244808907048229325495778539206620207764990860115894384415368376438297477612333017171773854349713041779290166433851711430624143745024882930861319556328978480740016110168525670220543789105140586726626426482926451350740591781554528229037609551135853729699862116117812650227001812521685814050602719210640644363925749380325808014829406349565726444283532741279181028778189109994605542634783767386366117780277340695677079592404469602846035699196504142054473965972875731259412393932757018793256358978348280758244989629387776080518840389108418331237295981660992029802636096741329548604161240218351415493780787864182351415981044954747527053888627600699818478360965755470850960773666369941476929597718974856672333339841327464255514301318005920724850249599783946526878853484604328217446240541850434926416098362506126368772049767443237289216867346091575217921605118137967243371785083815687123108455407348414720599535915081149677490579565858757876447571749808788439053786334374278665824504839941641442724458464689762722787745685542855986900883529324332043161420990392082238937196799327981391744560872798200875702869754594147606095489508763771510473745086627637921660067238033719386941737176912404407824480193562743152248364978424283039428732882966591354826056389427236359408387112659746057426999197550686078602310944615858475327029407527199979489706481555918154729919947428377145364581846235925715599116687063299728577269286340035584767744915456671439900375603166435140006007672793770140572664622250736059045926979209500998464125447919533067256360531571665383429582089288879443251206294409190322814526021588384377624273621508409410001818759759444609337551672087553271202401194000314932188658636143165361926082593297336014260012498898399652237143199382499793722918560223724651312851661772238440666603058894041187991092544139068327283133917001960685751366049642389303825980651747979753760278443465156527613120160485394514198912628081941054245129727223134475377310776949282921947936265603815453370165869929820636651769654008299582502802393245449359970600859104336577542285783413370276258983465422721522691055478467441635158385728789742114927852464403215069410358549622413585992852067878831310978416103139725148820733684095403035543107189988326447395976490356756889688006724970710613182194540797501711520139710877192046493115391822517841582197237772471754152521216998604092285336121991027697953553075100674402572164554778842794818177599410388909189116975831479428192513337327146344575510560891593193423534309309212213581011966072323431254662289337023589859791453804368135927009353670161073411308087268475978575058388619803779447466252523799920669147460506165374613757170795473218783075195121045871637495581002012716593832510010821379833595871492834398144637002997443898963260669588642619333100811756028950026789414163600748683577361692417623403741266764672977855114805652288804052917436501918954722905788717110132345785993020972209326643748175482920214148904433939244674265338722427076290027724279979679201984545256260109809948753474247732876844758930611518693300219673412553188502502487662718129128265557797568377151173361537390613093811202971431175192536592537364978710221332316248148197115936392338362837356755544157698994645272339081479464541555630622941932275513661924926027859821781381108946756856012662596328336582521826800587468355390870324389727675034379222481938644512940971914675611604448471945423717587612966054522502430385190140144879808789705040293402369162953061040982660768385442099962775452520791480526544562359750954717259744188855165645725514922527933081404478309096884755794437015763228737658072162983747934691922980148412360861756848887145229216944916517665123502761585232095529795525768161812415294522605733280612039271318674156971012474650108862112172521261614381778317934437827260430076554003476584315564741599877745241772720206937670826659055586687766578937666672659300333850016888045436705720153904493924165372389411509270884426839594185537437536008084030157226458429786771019268861881960700742169985269566486836600599587607656773376380707422182139472563662787273744505791714954985055536595878280549407166241573316811519137886244810209430716228393179363035505566296574373276409351768029361854861625918986474253060118591310059350913721765895460625194973128179263213212008241083186873101731106881404664779456035738440348871763784598628987376583734015770322527190505464479635258683863173537624480390721710658390703688881568099379635517605075801653617695186018419993554556200840919813290110249808249133988618769685554157490269984092109911230666930641406443202533201127830388036736171362005015169215536593897692576428893121677775052120729728315806114350404667907447573994307893152639027634202049402731170087697961663984405044574784467752458249027180549225247678864341051414525738653833443323364991535152916034264373137269996625775086084463059296228097833991841451942207213548486186927728919419470936319308571352147433183883715392606839327572120640933729469556316388730413026703454322619197410034720775270702769200226265530601345364326405758049572139551998873114996017480921582761512125110923145205421420866076967467728850502132920453302832043872186138377104759695942294833733302964623105487596591630676750814830235445990976901083401304025831073263392940082365632924807053339897653699947946938379138422748365847324776979093874912135740432890801571116819767239448649841612130056584593953536032989733127038727787925003716507812118926043370454398710385106091934774945184695701395810281898817059618776760718715423076908997490103729330516882972271393144545198668975214807628110120451529385039819797341027172277950147139327938594088065878649069679429476863449924722484142471516202080855164326431570320682341026295181656760310433862898940131903765754703601468045914985566471834816009588500141028397803126205234103077957054431322136234338030918218554826467028611583385296822968341190646234853816833672753577281297747855281983280672520926013696211392678611572574660517556993853972316683756881278804816402032029761580801011149183687032020129406409255964435302105111729687529650185137020128403719674627842247468501983238252738015698609597712462285901386600600980169621179703431521518478333948106057431135673101307531833880320181303996075777646633437215304464836380604373636492942017051444554416862611795985349993649942426468683959804285758196885862531494784343521085647572016079290915755277959765948616557528597245037079335379844455596096953580800952057704018088120008482131685572557194345745451190851053886374223726765347240061206747567043059177518187578280978139472190867488390896619769362166881415733285686447278656611685381230826468328612522648225563679946601819449578654403759033303465661154243749689240666814384079061207806157246530069175051162099061014342419095934824413480312468768331706404801751518228137872619653386974798418505861731079533314103131860923714113058179318965015486892267557826846537262078758236829518701565983933629384313846959349330590412530174502491234488545731052191834580693676935742405801915390034908320811593300791142856979803758565040500593759604216587520971031748870123712227620445199468206476265976819467572666749121974015425339328582877583797611313490735690134341953023259237320860933820667276331505183600475906755341094343988428170782464374398178458437539356248284814739655559440716703968128722632253298254729530695762975292069307680624286419707047543636974199714711227083679382586896584665386244805335066584984387892813500825764894025831800868986184286171252224733203141869677023527927081522992715975324038136631236215154922632435221521438725769628939870907434905505691509061197888187579878290957765453322953510978617012275329122103189581978527018460771329767810641102855156473182825085088589111800141352900756304424607452615646742378002096532518933426175709283874480649230661149975978364098270312154644408547363581498800408890152754271331922735059539354682512763632403155312169887139730882205094070259001983332613577913615862926208882501547866305300558802615129811048514304377091504461412188079624009544402680941698963683861947194742205848601154797625900040764881312469183986623366886711546496100833902120987458475989661608189819804483708374463075029690550815565367757604657940743696489917918888997555344326339163368828159236148131449790059559240003806289606178273278641835002307085552953437931532415491930105225267711477187834845463047493088181887714012492275319648714476111937102697791226859869760586095485028765890030448983734456471760954560012377830055813612342887530429935286349041324779924991319566403211808917514544825226282909072925685648811677045269900055543151335758780420552159095553078580302397090909439366064277523270819200210638219141672384865016988855273248054780960332740693023155149966858313616239708726329609642574388711930339503895686968651299003102823002359310219315741575893364916609456434806911486407990495996232466241363043580163633253478951842632065387504158092290027357089016733812264175368113089501153718414303664211858522579826554419861816466604703312586421093456949685738721792570418056365775086477711921339454942728796911857958602575555534820087138349244872443339934836394969946798471344274491841901697324131891229342005165631951662564300721091767599789744180799587397334241030164250868288201454923457974374430474026245423316357425127426372629450752700403190064105237932330130980029611463655182124059178999080185922429968053351756253290724979059966864779213084094438789121784207109178881039253848635293913797462062034127518128036256584380259746121556961935586317871673089816378629025384903952201814835968700079793034380941330322704148856512286842279011460358841418875091965580204419662008791053022991700652280338022642529384780688847393592741772969126639953355798209010378160084262601758318755709116178500157964750307535037410745106433909211919826898225469530916469344889981053998040081583159965210602790430249386619116249686622170907677723778412330272710392959763375843498918899657027748248514255232167478454877038431328844355580375041925934193033528615209620558574409410141918094536607058022923996414325563732671239158284370926820947120377214217606959222173580054890491298696159577015559999114336094948878559698250358763193548740664016950800543317788620547314320994376554906043029138563746311680617891719374107670467048754850755769390429263749423973072381123621687064295445978067161062748774907896659812975669146649023183082701891089153706474371511101299537938988764532208042479613582212033636590179969354713366512667811814218176012461847519862785689464015679016053765114335505476562136685929507892415910249652446002024237463324670461980293311229505758464905304067958209215485371022165262975545933797268714991593159725488991693497687673606802801602778872705842636491813073147737542483862535404606915311689445894924580377352926578589194365934196772331062860149934225141351971633435689259659267914054428245679196039956997626189420118632437581901970410438670541629428867603837613425821026473494138910662774099928730147438878808798963403479197739207651656360153027244965951003514159267002785973609349904268084481559900250207554011354162428602599064841539801887329249896474755601933477580819915717187346307354853338291095629589822644983204990322514108756812160579923640748141836055405736522964280209880111324425913749412068208107950588872694735910048846205798785372652815067543350896256139469357040348846318756405344875748520686171422518781969429621243033967248569854294581397927959775745773752037000658135266096056646990007553899322689254032285742929629210253794317599896465657942884101254821826876082756833094660782367625491526934848991987998167853792179786580370783687302870245803200112738686609198150879360334180498516878395553715431064512745582164331253455642966941626978404457665855246162949191301792011697735467526493478765095263911282169323614508881436922217155931428556533753984737309239131715603717017778560088210701315482599938848556067433563996153214220913517425131438897055969452768086620793790737262814560792982281080728896592444604114269346627414735961777732267752238898462935473992672226838915460244025011244616721347164110325005767055265708438515127244034904004245341085563371606447857496346965321528078166883511430132291018551752097446778452643530160666366969405128434851369210004327720159133640542414817775388943112473466056935598249088796007388998681240095860307760998095277553164837188317051016005903003891982586632805650956408178313683472901784288371308074634514363065305886226300679415136901605405749600033225264619950848966800044938653998134521114459443531423203297110841564067253181093826727173306188117947871842806475013728112455464993490607482241799241393986306133787819417473544915960333383170690296129823154046001249232797386947806491528766114109191707514132837190950945087490127254027009590713099891877491119092034769531609449987876428804269647548184274412847411969331363693289979287349783039968261088272827836447901312724993378976494083203172921436848183551895741569870344841685070443657379644496508290104335427096007383049678546265804724307213433737004879376185406176496780635266109109669500078549228502393478108863472815784440044095876478359287099559461437599841464114868663281191357774882421997593845515606128378701743950340736110678037340666718326433386779927634645156115963751518969674214849562758194765044923966921437010958677644237329853949961632719731940569568591465095783699672003001892165500558322161352452278588725462686967894226119525267576735142987887415947488602337822586271428381707233662260485690206831242905788569901370327495275331306675982955970742737293808253834085785386768257430485849917274990266572307664000036689632756790310901196691703226716467634420750630189371598422892821470397893216653104348896876702365120400574985429082859879380502347583961337080188674708796715540930444063928918494184268179576032226224529034703952232330606063813153666672457502600152913874412971036349503029723046299095799374416653036220565273904714738653217151793189539895275419639165655664033527435932745393089551583476921935374416120017757246953911941329512205583944258788461538076270219083042272181870808722046163002301059432056834446530842565605121151016282771437041143783396798699564732745193440247163425865465483951995872790998799735571150544914403467769826327198636666676647909312178836441149850328256706910635202319987242263011995279545089840394851894244983858417474982403444051258966746799128209498013677859179682166135684162110879087284298804917888724624333913422422533277399254481081993950537957913223803150474415508551532537850399409807330865772875583348066146892192516959982604766045734803182932413467456388061638048364488522413269532181655225215480482607081176127376311967267004973212969959207669211655899242590209646131883718293683916619634116062371208100242449733065870715254571841189031941192942130554857078078246937375115462765236850068839827059997290685160721614915935654622795000866732642691352557067944194402528489055757900894622105650915011737918518350716835983650541802523208932831010252168872428500463200035767352690177853551711453262015130378658771341472962970580582046224332540119594650643080352976726899452921762057832404943120257461487049060842211997721826339193990740079114270836123324888175277323927862581214348865783921789854430534915868906080979906487095603775908808787055265683826246936287834015160623357310387799463720947920607581305675377906645311994134197690088166637374402940943293955133452901693861603031920082080125862181738448628682514467305788333217951845719389208633161404938084652366833072143510345903068486274876603479093820992403627950489038712063500239829375048088069818725992708868618442373367274313612019449703847291592181526199437752580224740383608990471018054773037312164439978446469296021136805672664871673799614734654197916036593364050962604007022624855345389812469520377344083850017536570048303403867465606152456094084578468386626519347231582329508349849790556211592075683332580622010215178133811626782633247265146748894188750018208180898183295147664589181070765667197335296983711602555717703038178279738274585611143564429446995482450533087363339599451483591194174146094416018629926579683116479318846761579754072769964641135055179252564367885585801827926288808477625255306628006756471638305405148651928775403873793966357994758420896474952792640395633343671286024781457948794586181974674798891634077637107592022147904484126369479859240718755162998110371231510649097418048823489829434517566092073158394140996716962816472123401868705351042666104822653101752276761828045082590560789381082186104649894803336190403641880081108122029929525496665008035417541696956249333852495538304134793869384410713267884705314259045359690782864037133794688173818986712843133502798424162687160705978069498145382066888049568852241996654525707986808812909706224990528477632817320709334158505627061431621216840218473845818948681760161119078545959242090097756111935945270243722747500541232426074779477895786881390614923410622329223882637284602401814575352170960178446088364322774156272743297873125396909889734543532797452486189449852979660694634947166218806262392188369207875910174650095779288065476565451865105440301726122364009644481259728792546827190694581661834613693394557238583185420816109664956213490722671386613855953809892081338783951283086437221119066259790578680518260630438064736178311725072611346680947517980447529239553458357877963914547286104705853846761415849490683074250374439936512608317224786832200120300648079784232836788103267597961324572444043216106340270940862253924627847918879710100035706573262945551344516807672294890678697741498663241443247340274635361412879843412196392932291971307238017525434779117545496811969892026010440982735860974339951015686774338660005672565946171844211050359015191698398655605774987240837333262590860950163084886545578140138723809343938274635411125749128486381302675847746439549548664135091777799661595529815119504848674282807132552930116895135176098359472777240629834483864649729565633623001096826069876429880818188201699257366036899029525743822617261975471533377680578507157472015373493981578021004241356938322499895737900045409957664533101568856919875337477388386415297737302711222711023968330783526932727185656421180139710605220838187903119079528976164292207366803711048331223807872800028269968258262379505334514166238019696309152259990110907750077181846829089712660673397199012562517733659870858793156964658838957568202114734551701684613788582587202994908451006817931535059544373830505447233086764733932748369328496118097578144843873331399690385157896156445937687967593596663214895999412267606120398320787359367559768807717286520282958367606100452242626357890243142593676777481911486986543611742378212053767280289448419191154051429956826315891220238661364491902640946894189926289845616270399813950538055648937656679557706589448628232806383728826559865882085846287643169080483026951712947720397298792486341535168949180012865656472884810621101495628871072394811278441573585219040094040387735077605510299645756365580109386171765616697968511414905286227232032934359857960838100300629475185144238191981907416592703926150163927559294449387403330857946782486483517869084409919204177438094885941811715018800759449376184717753584602227622791529279422238244161830276053704608808093199095677691598228693965608587610782310097099889976332934977713311345019577189842293123502864802894070444944233601875750851725313153565070681006578700223486785374930618239675804470703431084943404285780030393749427310525667237385719032674156931611435923396345580891131725745372458272596522674460460777158048641679244632738167635171471891791999169353082168065359086823737566365190458588247228903659120954828994065285393437566155655841756765527574538400138338796401958700204291083492162355258941186225350279602947591875371151017911296092658091303149617241432058454269075879775207297541258325305684196397743108418393419432741571075882791256105844197900445675492693582834785936170479054236447257016526611422977111632969746053648383678103583155096626342163192601890374138251377681156213196116203625307731238833275095304582163837377019327014749848244257833113735074720954315004002430305692572292329253390364351833539269803292059509695201632838514235080833038480676624456087928319581455615999214791975664638910643525058646427920772669494290194464540905865785282754336616966968169789052680016917018600123766578042401989392311092203132347579223869961020956429819260129463372988291183708674251683803676345069665625734926617306372625370523617069238513468479051595232878634369492135644667429590230104391893457009390454994947746210835635202606001088402158566610172789346256217894905631828374315741134981079740596700320370492554177407393924519458774387993822371173931794613134913514078404591717053624270840586310795824301424316181750779123985106196017625645560361344358771536384092277519500348832629626212923967580276261034379468520794727520113376041053909295228040696861256752354598395359674068467233564991891111677714684485963635406691445935287931077547878075951031803734995113367545457091053015172339190033945295508312933868334216556083081895228738606258015884732721935691579340376109046290352560506273292991900079401950590654743983742831282818033427218675530274326078796823493120096889610081908659396547939018711987923743291300717638112506446571776867308125539432976673991984656510833692461777728396117490468104906464548343899185852659011260089166621977938537351414972415846132152167895694910718817508469877778777133956851977761872149387716402473251642634807082763031034890260701489368467448370447626656664908638647882643210718297676601397513278930126843038611702786220330415618032834944113656736892597915253942672647705664196733935162839438881114345091412145349564559838488182173185471061710510610362785264441536504063185592644592374785758316022723938128252519756215570419851671625321372704554985285317732121115521942554496973392544262687940469136937330836040863224099572510345438529732276482718640738786550991553524946462926639132992721506291685546214925170693860245152886788199100818003138704240028116108762833591247521982466574248153144410675747513339763018201461690202685771976396741094160823523829425292970490890484250665244724085205381837884061568233412977518707809705631511872418013174886570566651720999355024090435127153856970873840371927156245737435638074662400943230512401613902281518715574112626882687014570239640958922746790257112132942293004128220918789405034986870053580238122593681740377850998877286003405810355286837018391540288470654050943655555318456069373713070044238236920768486194740331486656768742838138855154499571486449169654074359803645199658024193427764645020252534686182873046923778386549915670490726937383253767787144066432467083536413614463719384011777311040403579209606806263146424846276541467019620896994893684948702304911473537727259997916183031642118678965316852244899319148395843658000328563487750754841431694290713231964791188570546568831648684612991380492648285832399318123123340795898291521731175659528900905988462027415182596058642563018254910331806403782210513705429193848637260189276592276289538729136223002389660138770404203968535637700596248112201224505965809921509945143063562489628529907060711745942400134114780933147661227896251933116513081935455004603481149181055556710753039595091930837749772676226968324380523408290067742147707326060148044193599599341130604584358260108902226423950710761222452565867687090655906501345961097303508471366210934573692353543726331430287577828601620080888669416100005260718104910484058318058493685407006405643778543676516908880555498993891462505728152935071576057021417334430870246130615513775330772392366082347503610451576787482976135597417011814543870582457858750547022779341680402232283937458660499448249196269056993158299332077932278844891691340522644978025452880085190856652389242346755725107774373685508296074261639434633001990326070407008711496318910373709626704426068006390949628597279794072975816927046096424068327981581354100260931144481068637574521339992457402043828782251009777991778340918830835602010241556134123438681819930888721367786765023430336191081987772126106267244810510598802825643043201854023383918539874004697781065723505000195105884122768712189254391418220617470800642261510081840212782545019940650884174905916531379215133190968513576445111007525184402920348460259107714501021179228638123267956203654364888673898617851987987563391776749000853704797530364713458138605526061335782927436126621550104781673423174016786150250674788183318632416674913524374386371834967016926657398811501088866007810642233860953919708197334008687724376249438057517437023389982287723065423577470741022907735863171172748694496654381286553860942446470495540891071954999508371749749479518756883926166156113039154202388474226118388804895400877124212452219759976795805679743106962060923369173910925917813592014664124497121223454707446532940466130554772643235875898161209169510757902807504476388235700694851422042301574556048933333226985836971117593043884015848290111107414786036597857129765998518087279322560180101854351058082568176237167311502987624659540479425216843408719202347291403196654692883114776841139547001853512564518224526104401174310827330033368569365724798240919200514783860552824712163438223324766418820149679417758489671618047614113435391366269199767015882277862284163809623815238872039521488336789244745264277110991603907957736955435669449848623185954708880631051214906743078404325772203923042540584882806247444692894667862345956485141386665980337632351455903076505163640533565004257509493742155246657727681069094057946700898898776274534032640121363549294651196432029594672207058492945312058659534078500633609217491123985220895573404274107677971070269550604085043819941821267001187705362482842317211396603641722613291663827950405263239832586042073046254266277339669226522957333188909520162613038892785098390230784119257465572995439257796981047034549780196096564520101515495940060115605069726677968731198893515356820461342417427540175173278784929990307104360517161538171466283194381523585091359072562849173819469853309118579716059541680082348639267039811506215062104497418042046882465706225548624980869584522693828694486004406283217101877767902275385025348107255227274094944238778319321862129621889191235030583749516533469034240191790135873550696410136004929995099676489916817081845359329717309697989595590355179003401318681902739959493273822049417376209599296187636737193990771870062897512662940625310429879953304909946311525887093697290770359671271211715397938568979818416415042669737127416965000171146520570558356333288507541090969068467851099899799639527481742472248968294982339258588929407008030328813278318252477862023694360074602225540756479700831750429999746060080890913995871473151462219379686747804257601968020088023658901846132947943853949686113772953831197174046533851072091922941904910861075198683780539902974768281969994423106410795618763037848491484483472485757751829979451284121704030746911291612516700925948099222434531804557834744999391815173139538157792492775848103216959896804451481045523070749180937522096656234874523546983712560594023793644836143201597850754791978523377949799724143599800801515237471246433208020471767104911775127672165309278930643134403940334774760834538651041826921124973448203452543838935658902489287559683255577191849381498824574030278274564997014525429867666982119290646753557626687267255298214538462134099151411045346925284015921992283360612681621952320118364521110132697387742267645583666731762132021313989930082453440466392298033098216077305949220654360534142181972467498826449791353448199740956058546392762201021805965013563875927479861815977759738870953014519428663104472519698964662482591869727398054303519621721208006763731118792310235265183744533366781821262291606384114318613791578076569722753985830272546598240870874724904868003623794186123851207929863373347846713707074350857742325530803372015901610810103373526038327673412782139946913804055324398687846551026683142271305977940719659695650934113636598700747960777373466611790860011541981990153489630548075333172451912444863902242948227822337201901396834767071153685207389230023324765410975078852233685902863259564592966346807238896426657108494989240004559699771426721128498371363444951941216658445454492989741523579665506583845881007040838686594487464486842716564708070942761567759201480852368552331792174934561386629333418082721648063190524354850476995277805738477621410017172486138113190645600403952896124336230037428570987075454890394661522547519770525452438652200397053424789972789542829359348173797305277111896948385314226773140284280209409184910809401708171291154736385185800309680883383875979528679175808511031630906176608942937433173840302737033724964885777277829914154188076274051679368281364535435300597105144109280847758848837563530739106187800077752935750652528645562454851878147411418232205657065857770686502787038773910856027921516504792963258285450405608395060461093048831384592627036654248485660287474453196790965019819808596273222071153903709813474578113491227319565580710407443353510505134837914849169086131485309247564847954210062632026497316481642123260842225894345751555760024240023022347803538807863752109303205205901668966071644983174483665564622917707670470101253061727259982128644964182567524349572023249098795183509892295231405039891854589211558077404393052216411381803857697100557063188623119233685733352854253953485071953909479133812987289588290404708445024213193380895259684197431888267516439855058472428627755288776865318320847354259196585152976164913682011022307089488636481734941038771566627712393325625162986721853814691903491010103412303251820942650907730008405512645037438106460329059829224828619072110111792080374627832866744117231614238826600166448984980962452284623224589153415532611157336345476918647476248083608021176644847464734215855132308567620437603156037419638930058594517787325494340626123393071063305108612476129030586571953958206137349115057350892643587859035168447435860395796987063751588280852301478533190924011958953893631677251894290867333339006067864056233145741027469628610340110037240853041461036267678776614802929532590110083183959127578468311079079931987932127449161421597969148184444711722295178634547700704834659023828901182801727558595053816889171858659914204650191283788728097513063532458080502071817481695846593182325337643017807591547660028433793447519822493206907184975535505642794378894645108148143310351188778447715581496782190544934221743140415672243576125717279142678642204087347561654403617230309778901617541266280694827486000975964211748005603854248515651662213532294292661630816608921077867673821593977332076039706313619962283493153009574372687908135123405028000418656403097373909350833578526818757666745940096718601814985224947584742194468930529973893802823855892256105497298749165325423820121753362306561114151254778809751690822374702399518755472565082873057377927079356859224307582319766506178312202702998504560806312711279319297307346903044869591286616772356497618269459851378592650137414800895499734056523186054289983896242316410341849778424152215774448762125969878285395544870859602668960647206742787687120699087638774375076665015587604837528819580919533425029013048816865628187412121018097476920935013699820189807857463616219117541810934097639572194481935926394743542948597041017188867956378958397314658712229873686963385603068174245095500252046951345760486253444697841840319922407768459405084317566382689850997633560215352045519701125045389090565022116765228339170828286662077657455818283004803276484759224944291552286065346456486114139214347250432540691722185477531120809405658053679836428299850873488101160865129680224344676877692727016877945808080371492482087430806251300477505401044615343538890661100383014913543799151721386355630709258274721120841336471005264094541833625088662326567026135572756385721632082340003954288879491216313261659672015648526575332276042990841725557005709496720072226341264992941105834340111185273859658396387200585797494520095907126095013617896935305739854779359707724990171192487023611956008335477488711379034745976420346673453282692410347868313569727344290295067220448522285993673938778006328815409525899755002253050067505737025229830380288876277176540203142739506710092273581658457877095858090503247929552476323296812433145849941410505877276683688299558689146326828760378744956553610646167057204765158485421764311467921421083426543768368034365068690506070174811171950858164128948538857884263425106142511401285799415193214135896919885489209216789888299580288744421175249551236197974127046926564512944393459239130958835271418145569489307896154640775629412380958381665218883533609270980453788480146634583383106983814313860486879232771519964401756380443661414516096651457181620582977650741846075742936668747978964388883383894948127933017454674550146815911138027957258370716413143851761597349376537370319896421164308113072148295044865801419077367323074335881675952950222510936826089437672121358863008359521205292462627093134898604042134961394354310154981693400087813701853708028693823997366558486685266189229714628671973588205955736254472774594272021511540763648804964548825825184434091385860720269701457205239331007591727570652421334812899559045164350520978249930349590076601767829798304115070264452853858291992987903091749574765968277132750114731037008448897774977794559533353022183619197806269010922301337399189847794198082881427078121278208327731863067850559411314572177378127014091050198756106385155093086945523266332448412783092798843497487264535225214071986038797567954078516908934886324352892315241237733832971133541731415982121750632263495959773491217314735804938399049919816309316019802054200258115313290869811769230035950133245439291059623303683179671565798737767004955878837844253597076175204256341313046314963758824069834826527007878416278914227633844713530309895215691481669538185267610960659192766440643295184270885844339051050848813456510156017565068785090348035360972706218856517562281126173853308882172457231215047431604886600876078490105831584892764613322969388721336203614034504209682749359934780600793384506351354382609852888039595531444539985132197915374008878074684652464201872655787377228946903646669299313176853016229587984186311214004982738663670623865162802586533374302409517942790435767445625310790207571658785573268757222595291814852368379915320656442059175058016492664846192276133430152850799386451979631299757039322124337096338754977782022994656513618677342346810040594910811728969564483523767842982026094957810919455289000122880676707089175654201217556902106749254719229032959237142490881948880501718594967272050893233186570684130719021491222960223421812319141104074259987922352035556032046045238340889667006570589192372246809076956800297429355956086710238386178433753356468154580053001330227713703998060312662297989625023540586283804168676150298111240827802683417752329862810667992738266017108227930592389931930112928547641768392437996115411573331687025189159806618152872745369555623142884100931904849725053016520747679270236881479207222924252843242203158218548197507051805756194834362303345871331871223096791722330360494589530148136342194531844572602021529637355304354118554063378959197897106569917145337508238591987009552658418997352387236669061735053921187722033732869161044899264499106086845045821281308645630190387195693228881225502968431393053945441990433342507186508480860216636707053293172791223027514983796511048816456755474785631719341966097188838749585339992645270519535076906168346426874369617075746041473457911176705676335558433659862489947430929012089392372309531116139367124515354880568530305325654136235167474888693271663019498981288133272107516688614380363394527773975890842211387036968757151559442889500954335029704553645503738012393678111649259614589045473160988860118783924902889050495446490549886213971149694470350950123037143110631730782583841443836224707255165224767969859133767337335556360784385689174812567259902302448790973291557319675107602146415433885821671010878719521194034748577572337630691877847538578084972429902085505926707484441633146070689877695164794765693060582294895995713679351732525660991415628754196994062014711513761682138984405510727324422138274539994318008064767718640283509651101102002107891574529840011697238988152459987448194806247646631474810195008072630140989462035688745141458165629253173837806990687109722075350243060297377367907770417128546156160175177479780602609687272856734410839777216803665246562363582230600619648486522328250013747816459808056613031514419604364984881590254441568495248859448052163099727283386150931092742779003939253260406841465786945019408997616910502985488305924530506617156384720208613890875056331930839012702419167772116550837073125614624088752429941831771073379514257499844999387736207760355329524977665024952102304428089196771241314924213017301017947342953712823783656045753191555585935608951981075307816049702916028935736328138770491273344933654370660402961269313052978858096488099889204461000008145831998829995027540474917458079903134783873422185751702378258308065136255317210452964380540742100772839999624337666879950188088998331381276634597404470393550139204758977803501047114016637622693311038801093297015685631786986691025235304012332229500127940940297902049496753861054832000156555119494067646564909146173068490104061408607387163018277545828795850714268571828113631893751357562607405379854313661974484906632664585712706373281621127495990265902538836457868105088060399489916858916531727439595617611564403616721869235160763681527264423599402593604792371694733535523870422302248683812407802426308108944548593717020496530873922028522458101362252712477680020020709760553008376755907541082243945192656785634100906966500150498150080642463350931754498752715602421936885563607757927608920491801282764584279770920685700937123259835981533101725660910989514814118779595873552641300668341997236988023323170547321362567574793535439370769119640573923234686206551362272979719392566191602694056900166557782555658932855228471066626136408361018426615732995502291209787477264519731934005098489118740729169160089873119338778255849772995020000674713873755188403583452705958934206974671882262516558007770238050622771927734931167412924480280740303465091957826490516080510628920736393576138973161179375603601250853081107984284400441890461933363944483308339021106172607081105855648896336442112938840391757760259029227968664808950561687956215012583650085646332973271605874442748974203467978378653275669984647559411795578444920541919850204172561325706464817023241638880926510367886301473895419423404164042288119128330299690451666243469599432392725916341997386599473369620624055307413136608017227380008393481291509531855073945688702713791655999162154448950245833111050595749949845893301572570731988105915665218503622716513462788665616802337576105654075848801655357526293362939339510708335786374847733894123596880371436706212620974715027618034047089710852651794062631994518926359603038797179074747160921717164326652448840246599686371330029329667245965660319235670406138850445179306141431207035970072245848931606815199015122772027510159329459711534987953146045445050637005668617670234936567715024535518276896863348004551750651006605258336034447840786243577214871266998657316761988611777931229261478865639605612339494093644694464501615622411253028486211881112734345558659982117164961866701040520778019931143455031016658427351252404778792342495820317996992600072930749116388236319890387166590573048375319125794746986309378444026916933124676511120792384496935179752142528710139813447876589775624499899864882791253628559726873783096047542260167439473414131180837596553538605564962432961687177271311247284384921619039691212338961602677436502283918613122954736935505988837644540273556311251051264672487770134625301139488720962978696082452579120373880238320212696999545415108188755253385986569977606740878040874615900501268795708212768356250295616607975376851322103037862566537457012200914515562513750157825017868687324513842680189169484639136157928940532179830695761116724864438219568295729701163185467849854695105590701196642112991832727708252772590297951671215185443412435133997318371594244794064841079003749259560182104191251801730268157785942078512783986006636529866589380799721151717222164775342293466096725082101257719549999035470493133127726004680990142551164259136837576857580273619530750664310365042209571291303960678197846924627631807011157498424388422272674671839323735483775753382344885744068725909134571399272394934749297698834829851981951295610854788892931266674764832644578412859968240681270121017612969648362734017764699119228944141294852540307043912754301661586825280525560296452548837185807394571086800066053273825587893188727378150406383389286720674971765573680640263474028147716485549151794542505839003828771172355391930211780955335476975942635452044675797301108465102676495684015739187804055176706858360524394016228550816470569592594466890477374688503782806496437834596877044971310639160859280578202897980663126902038593422067148630102420191261192490016250840185949531402072614372106065821589173895847328754652077404836830946163360096924982334883060924165945386789650066628908656887781958488732883940000311348307071779365657646248918162558886148514235467060455721076270502427456382344638430812645877801067111716665783381867112582951747131410867162739410347284537144686937402198614843710123969935208473563729154708216330539764305714358903729343209893653665855633640176739431099834674934781715733297683641997249931026861588066482041585140820031049126517822130533203225277034538613960599180938279085020310485230481079415689257192550095694704167945946236535415924780312485538008013885162251214622849601014462309550823594562691383431482516575872394713813673363882149069579791989582538081798408327712332003086541001900806997260200925410090498333624482000663672965271120194613051561120728183288531559639137875830946121546443057458496219369773675603676354358759723341910832797540812084682560792158313222617672290366745740477712974166553054394933309159509616554462195727808865403974201775382819776153693940379432109692485800005421630462594399660758965351095167546957054342895950150078806508241295314253042832267120494173155017812025108644685579825632136785880380829567628829542786725600647997789901428120714615346053252698529647886525445163656435561816612352714153028396041618054567629369690907823749564700788147687909359024336180891448310548487475696451764614258479183828641042439384564763673597123151537907727794502525837823001150240797028242327472859823189342031140126378933807219906968830617833611728926768007609059061474810711410631154488052987298380647186801882951230285753616496429436577090779591095163627011306382210047940872479129784122613983453586724687583365353093489224302358140148830600548349043042397312713315574717086662340599175629277115836497828610483108475445483345378302032567575214984751540774254819068313422166643736342060019814066137765376044083116537449185187100823092164155774134925467164268512159423482744290705899496812803144083920923847073951726926128182506310425750501567695423127597349610150484114172862755747409545412450286552537239458085458265160183056497362109217223954256754007138895852730333276767554860341719004692396342750376628558123224211009551961710208693336398150974685157307044554848499486761898699739447579744132334629068962262866062244139353793973834230279501244104766239985439358452863175694629362349043019047098965532741491455398070369654177996184421520678070685669625826520570113801172132817859054200722467615408107688082720802984141657124495714291929878215781268433316724589795532641976265543887617480655857773389729102806791273334274698633977941631783988196907895845950568105052917551239083729034727638057352945841604510040398700189786484695120635779582818763655692684923653627072482706184876477772555334261861931410521017483114768773194823327920010893173082849739610673464236555211869793496305709176942592303965910292528597989627011312581034283613508138420442575963408062749386196424365593608491288118087879348494531414863436373275398860948238207146343425127783508943904513032033342251932678707948011398648383929321767718401793500102834700450224482234439836448252756551301687244781642256450021205161425848263100227932793527129108983746672603133091442297289361335978085169321606399314489015383556299855795080448661027609148337283142121314910546371375082843586353518060199006262033923898916647715386170571155807145107546007577998470402085221849754214082745786881293726598811275184545106650148390902255234353841753867727135376585902506838785671511587048659782334173007220747246000163041413138955083393347771717129578104811732813999247868074216603124365285035880220316881545849897243194765157445237870686965130825441798056540198510043331483021724494262109779666597069849358948348255076051132468587353284656472363603910861792454039356226663228302161159087722833259989792647343674584522089434446983437226139404672583923443322095456367172999725391159372415615200169134618432658885895031073112562683122423845468676113250043392867331237451802073762761251533242143595186891249572341116645377908637248275427348217054415935163615882307003898370711394541666098001152119784125154854305299654535224404056788055159054631663456552582957084776905557747190916046911249502910011098414340262409492293236157674934482335437963567358806346497281822038544178063995394841723675347007875734315835394331443531545291030713529010464061629276907765381352611090653676897911933034023222825476332565693720650718862226543784436143989987141416973380897092505134708209797366064530727220172734567490821825437367814534742190382004881585979121679593817701592340836788816188526855779940540251534923224826747231808654555818769793106331742578934254672746856563857126990419496744746236596146442831545781113046972566245119528506438352982792676135194248232001927059097691189320337091271137389900278544484155213272029649622252137482113899037699600389258037788341100131635210100287319697938212634598312607996091948832698732789732466965378448902804768926864386458419355086724948468652255685719409456422948107133835080438204931959763005605256976660085540216677807587218901297447696622406983858501872124833077687864256288037706909974876596837301442765823659130590376325470625823789285253264062599741859815553556950757957662055997198221012603843260752692988419371368605204192643061164023263680465602371585533030414079717713383517130943412912168996000622755586695992518772102226422110907393433995018327753332731994281876175125763702600798058901729816869143520631700916239032843886034192451153779651556207794068016785120413876841626039172569402209974944181826509194102118735153510832520789095777978044988432384787825057850929393971233477283670985520947569571906084630580313739829753968025313114318258688344956468113506292869739697097160759334268420982234095181890309716607416070647635415779686586380976628681559589988371715299173987860891755012757320311415526844607515685313860638603024405617875096095074375813016886511055023645127232304452060169279369298222293410716874588867688400298679858711801374278868403230149389455635632676312313870737707768891437426065129065951343523666081933699264487531628201786165482880144726286781904868339300143955539311353047744374242953219026101974346082702962375232229580412208681197118639310637347724718051626114454467548594129537303699229178152135959214142827278630526777356094555904231948232987091582545648461467984272650790503878947075059279280834228453829710033777614914535419763730589361361924738325058808831716001799659837758333290307649019283677456108572337325289319387073431952893371758312759017159949628036109895702555416874674057468933157889671425088375028913089948808985215897253664774365658020364924249558726209188101976661583635531179465414331435801378684368660595880133467806394979769258338845090759530276883530455821701261666639248213976859183289077678340031105211370962085265342556518790242882304548707746691157813059341691018289367443636321618386826773023797594754212933166401451754259527141077016666558132422980650226924845625621744926157694818992560963544359323492829160285918292034275742331254918611049853085270598547731752104342991743228591262786600006507863491478553024145770054569562392405728627894211650458491020599535229096561922900010378342798977050383894127597513647009651965039901870846495638192887311167360914933476787554255596416605174981779445169282459582253208130480656622406750555990218018815723678201999020634688271324706511117507041237847663068316759710178981294157901876293543899169111847654212169069359859693520286665009152509511887425770376145395159201828397140830679672942662709910612000612497277558107909777446368972124170541890459821594464551692067487270040774303771364139835269252251483476411754276236402782541127596894535922007167380511108423120550381666819000399834288103794543764446931422381091054178219753169510085181319288224929842798927040424695003205940813331594136246696829280346138971554976586705530177080710750889297227498358195126917955682985573350521262677168164980481870111398784089255595981604920748764409859003578730200156081572994671327990450200640561380877340703897196822510892221889374762098824220062312067019440184554454806155307188686709129605027975509317889285747724007127597010043156716208995978167933582186882006556497406155272653993175482331894548500663582802071624144175946443096694946103493874291784593699402471357911688221768531346914988285885481898818171343825022573722703733098370035674340761396290841167358410894577978970241867547834275353835848628817506020237391349551189310936704071068186181312797817985435743337258167658326084220063101243101139144433072021119938629928298747458426593884963636920717927731655521102672606822057974975589050691719988438041325985389606199997365730208245981120655127254463605725679275190506376437834958803251374207324223959242836278865784078105934352349834076964294335876479492515575587375846116150751797589206878220602072169449771361513067810594998901507121104316063066842637128515191892649658447595070283771844151135357596559672648042566144605256545656914031096640726015336135712693429622322656839536600168099558312738538543653175076574320386958947393899443085892560923747980775193578678933415914186430622125208849099193488746058574362284105777139287253629600217133579526079750569298536496492656586928166257706329059484263803447993341519428710107703827873732792613922108300256733066869906069053379159317174552886508596528716576937618734557673930103820122097200090994998340592792965321735896310589058259630029377668831520660578045519577975068046260597628332660016743056420925569411526333818503714255913593717916432044657262878700106354240136685793624466835249934397829304791863549336767647335207463108978400922250164032799339850065895791913320068732606362825065889684214373665796593101434022459701947747890876322332511971418517705185863128988474467496536396246819759825501002142247741671561246204801292021473908993426925148541700997582097568709992836735947421337648778710528518492001469368980243086678718397353461491104629956036075531014297085769921488534775698599691195310695679063166325909264623178015905816037174809971769958975698222199970699294597927893409972420246496791235741722707443081115789970058468448353960005887190677468689927542270372875327389536178731079052735296444065283715304005432186844453520103299449959879983961243789811727366038050669341674227327862649518334798807105642366051105856485550240496498823441101856389802610344086161876120690993540034974358352684875157945926769145915283927397636664190847261675064407461136405988141780240663566909571097938572801519794416217738214363508504119143973688497581684662052969735203156438585737699141229397509176624653960575032248107150810826856702753843858641712100127787783251495242727693219968283124682003497069561220690139310679523385712781796185987412622650941395720753522714674736792168795203412429619505942349483924877604011104475625494007975457222564731603339296794723280075063849273537928971783491160842225542800965183786079560931558943941492454723542424086083760215353329097733920704642446271627614058679652200136646693160441012958044891745848376521895216608683453967853959834345510780176958504844935247729583353873531335805935476076918342882484780297415280931304412381873804529567388264819488169796384433254499664255474842103428943739244625590378923691399304913258154840968364568974060964730104816366066453839414988211758666598366721309226199388023431672689953123927948716773898111565878684756548693070859123032271463015337803119544942908924032762354243777862327140738896995225221331602195321855023774622707562271001284647277917067997639618334209472949565415016565124115065369832023552071229650328567693688782291162090437415115534084007100754086036890378915116026684696259574247085289088365061632957265616042065176033940983321002282191251516788448064279061260495520224550310817970767016937476272170806536741773863797627959958933149444533405035366556628091395888680920741665394707257346277807629605311950053302880345829314831840425666000084587113173180205938544871119749800621631787950853460641293360077135669598016407214982698192183735441705849069152963209631988403690270227578804081803519768631233217323959923101943106591692765162375710169326654721416784338840559442791517156828957469216201826635890687732753584170829645854296803137458726348003389631437673230847059926452573066750170295882223642877496756128070604691268965133390727586628997241082109292756911074720012912206013357859346951887122255244325538572724397620271238913269587306079128554453008659399919243450387083940269669856891647594971938088929111312640069427976942959464464801866912421657126969439534522573662866512034040531418397537751288760642459024166512439285539623615122577603229590750118210491692113760451723908435041844765096560279780695655987407637954970418593493577683929200651945460571212429749998877395552491384107322251950265792461238399282686917522452965267132834800578422629616089250478294294451824186179601902593208269939162027116523016339906303006102649385770662268893900662973793181715206465226479077150259600584237659767151536287131005324181941819561164548073467284744974569647250158026059368554203046123622285205903378435469842245271411671895282117702408143460010258340440638163361708655792987869846855025013980758879000846668404469764375182863695957046697849086610800221686679308794952078994951036602568338164033388864941072192962233352047770762108780382120344737130800824175958849597887103772289093962775084985402503898364966251004574075355567853884641934439748130246785350459334874540542011164308673316549473560765148324156750310840433737145108135053681681312710076361397547415324557861434893683812064760251279488883206396044185553498741569558970579762560935126904436509182521857719796078453506526706364679602588604714532169872939528540666791671722290538112164706643743560993466766935293510119806054630325776767593851827297983759693132575745349467658645736053739164381827598067317451909701764591893565685583646071913748560542878501111797178303155815978765360915002257692005542875026430054909757152174189644048971902622174786675083526266539114576074722434624395249631396481206823390414949570506993858693255308387583985596905712489224867799234177291574316874305000755676191144904861010425671725035091877325056200467027714664913471144413610684626769736290063461653211487613003710450616626004800209159756608853720330928895591894478366264089901661908800333597447225714356232522563306694719584347568397473681109847700939472643403296145481206025752319530821907340628825296387345624501238357528738939006474844013596514815639895740740523666749124389458371771922136389076549984480255753079655421500032501087747502477700915255918999285884090399621969944277662638664795482313752034828671464192539426726862651820940700215724693895442718740330208680510277350725332402499356035101373458170128605173116377658097723204537073877032875833420530191053543318890463197694560280476112897270697886419065003251475254677946977867602669373004487619696366689937178297909304746426066817240161771629920122546078528076944584729523290611295720128115047087998237920502415734645014723163184812543929257714528901960903721696176707520737886099769179976579657722737941730837532478584737927041874960044038479348924453184254727419453809190697819701582295087358850922035610212584128830669448183370342964055105256236580044390576303104792315957900061783820854241313080786289321036368994091188531182307274195567537667946339155542469082187468799132942914153646694074286450518441856417786884330796932999525488007061354311286243711319885434715927389163861496559265367212259575315380497731412623848480566057654952630554834692727970651303764823855742577110899670590978068352025292457379989119800773149609235389557541511471188837305072347044763969251979125102588221717892863698490835939781194254570965481800541137439431113202552755836976975620551526662854545723804334183922600793718936747798159078804987967460151650881453305720051662594365203216892095527039544236015181239115797827062264680907042110375625086041195603661551790297259180827791632074875947095830589778353315988330647004270764183272975867039781565143255370603423243061278472156564475190405378860930282806908451774728395740613004596201649741799008044235616795503003038050307985301574992594180889915478460182578845805015297100003599089201579517425488378766682777746321793294596870912351109033348820114106135914368742590761050930033335580269481440429077182251397516877011591477890418240160627280973200499490888019176580753695378800921652694383375980152169056322790701731739217118247545630846149387989824721853039535902698994645496054616629446441076836826254174751460834519928054248060634247980204385319905774988361070888909521222119843673821571449677939375222095932209605241646994352839156640638087007269364166672131810229227622799384393962420814730047045793396463664098783292555452667963925896126496165012844819037280950209893466584346926424138071414552046887557972753979873797552447332301282474284394900040060883083327892320134376648977022371584383935316066063595263815206177739046650292131011897353708763642091048041554637871183230760297545658977619011481682056718241449239494294284349339304176928570163420482587247985941430326612198970624542157175110648353890275971930412393153907765168832707929468113899684250764047361459317513735890498032243209686873711154997401549184558312281088182831432463437647266571226530394700113751902281861984147172106370125329618190101085797973297241158922045110296170241300474046567889440364193774905570176482521944620477672360378996988233143991996589131404075854007973891935443141715545728365276212194415072172862335000159105901275526884898763932678399558854260862944510595264186770215863184141836928969764658205805203913504778613905270279469984717888019878285379056581517470834457915569923507748440114305136960481318945124384710023852792420732129800606386756041237164804679000554871451757350359016030760751365719309689086981952062386411878352105963361539067974888712748623665217602126626450230651995150764754885952517712420135470820485999630345575599442003580510667490472859569364792026793509610964670338372472200301328290870720005327735894972736710634446009804784656451050134434970913553426146924842665077282146938874721570508804323791945486357862312662272661872408582037422454373238970940745621474044962357288637945170367573011305590235110380578638372674635528547247432277238717502941076573791802973317000471254708627098883998865171090691957824595517203810174366705930087333123294648886970312432822737248042126405268673547504201435569060407836597002864722782677220498878885216305711345395506720062565676957539296204288406585681026855100202400613336660931293474866340977758108361708995177580532473142044776463644837254501615805316448794145543506969155583622182871662669280344141237583143789858500731043064457713388081375064167749774497214045619098547467544084409467347420490244488395995256176614619865113978530707669368118493937304708605928529193993461850330438550534502965623778587369213595678961374621034303809364915512273661196723696575122081096237756986524277110960954478605246581333156782946485248192022894357423926065149022246830491533176207279849130413541192407559075511230453546508993221657996243453690455299265448103363572804518694631888562483253329652969405771867281307729434452832139565309741985056725068522937680800295289511574212467415448605523249920670963309828661140773182915131327416623624201315575685622338391031782540017585586865886714719001476358887406499542674318827689531975016702436092956983874745271447478255298275863597621955358239849608792026886358358303604947943240220326589371796969936614913051255014665174189204013263555544055900898402307462306479942733526947064274184623246227805321632971838291425223570243474655282810224921206875307223612316184208283222486326156825324963556256382489431493985343375186183483982708176807309038789691443779437484238274491615923793178558970191373037755675944669850051564285932626424479315472922411522201210075125352888632684457541011016729191223127265005306480746536906675282382389868548698165529619943226840345771449504370652907309635101346449752685855469411143212336162812293186567511319017850202696097287378963951399209040360540540814632112092392163344504218773582702521742509275710694179733019811731708073759150728381339637111221622767092730262205830913705112726881142707998565613576636531976857863771056035913407441453992451455844330101454131318230948122780717603817677236921651928126751391643530916252503032518641234717747146727410704827232513380171960147675271952833920106985823862073022274129623840236913736133554328622095427159902467465075851686898363956259964354231172902815642372468183806436110354957333713927912766268183764378605971495670857300405875876890651023443888834897713499773685635899697350778170409735973765369767207761604282046514911143321686558364743225020917686633554963540712309494270145422637597594975984879050434161823637371225846628200826317446001087243325932188242880888977521702512502862780142147505680399375513760969797763519537942091537838199855863342279649197722433747837764295663419612427392417129825663095965473399563994749287579222865871803259276579100159604504444304339922927922922839153830930360997224451601117076090347416843901000847556205856649075913439708890019603202282638712167470233476442021143466685089494550378214724972720909365369368529359182947858216311176949277061006470128305715514980340456600735149406895073527614829726611367935089081760101051035326732304270691552313439667043153179524539612721322169720796566872759645743609331939009992997497179748396604050167305954091689886437063743083705627593028687089731774766988901539683494335459671067403505600627227803311733604923465183587605450378070476365386145975308716638517181686797166772070218534607685880582315827634244919508293929885270263768753588880289356642722173201091845890208320055834175628075770661798312620340252649464308281251892534004811015984951378019716447202639847335878074328236919452456411030424069222687469866488405550808297839458890929863161892536519163828396020997392346060826288017768839647248025674560451328218160213322934546936040436886280017504979966502359257185967972201744824040039216596559143686439044785544234161836819825550547580935271576071238869421050101035563961295895237630298818050044176151275803021663441576524216456669491135830028718735957645766700871919041598162252642613306000698667565845158152751134653667787059477809051465830638710730097115512474894502144954922306756108901600599087093477857227551074502428599795917493597597508006600351464729824732597977449065710301980601925994549549929065901003146240896664178149826966870162275597212743638309103905500674072793235729505272100243024780569537075854953813476503509402816959275918952506633432328010802257658177996396186668136061923601506617369737513182132087070406971097794530181416570355741926921480786303083352330528529546672443160150871289242551900362751968581890257506296009005833994144056794283957116967825763224450056427220015024654850874855708380403651757000506041645594882168009099095919290287014805492002453818362292514887878131700094926300196993798509929793346606848464994340994788474965015908230765229145343553508359672335980866940908270413459025627182679356685066432269976536896183602918422091594634179884108165291974421347534271119971207486822395232674075702454851855176361061798611927172872718047439196405407105329379020180887898764289228434480705756885127086437950267996721881679620374774127848984624692431954722450722657866556535120458210823623766749686236229603001465453997497520174525068637172741614555766937333016598673241843062947102767808928304016956857141648779485668364609497001380391809627682912200845040554603737632733866376761673234673167518912255317208649270261159181159057905544446685594959745369590420755554889561631020387183524475222618331961913441319301064607900026075079347579651410020129380080787088234275623631609357559990406835981942917154446328556447766292651106721653775731867361991215039703226300416557189568088768659951459629799592950779999946385451719235314770319690960072283868308183170516078780690070602080179655399960236984618435290483721037688826029011809908473882333176510987846900768425326787959056514164439125636004107399358597463865538456686623419062112804882305096924051397118052727618879943689549308924314486720582881184798305688016107909504130515318109172513357176371214360032188072772204871333941189718563234884283978250613735005565572965132957236993216352086269822485802603898722662580811611063577476564552663191727870616037148859625518464049347408765355446930593736493783560005123662194928977091923528905616250624721608398329340212247591155339522988861239228838993376646613109817754907733459482081647318886398974953128875212530643671061003982344543790981332939655313673518659776219806427572548451492225375091321622109324203291155007278737610530503443888244981006321012386020794952445149221920658407084029924369591404771279678935707242257979338459830119010254600407180052072398124396600806764800674560748221173595691308976390217830942257434834291510152823843602888453690221839475972983011753386980078638788507824379329768645771095187950868880927393868433309024344877778856460206856248285432127579690548696473467393345252011964766131185560039010308086895940035043908354112356370500685434893267621488504813805652416020262678316798058317476623531799947004040854467192167668819322388850501249418800755116815210618096251446662487167095930015409022428449747994308315880309640104259430479586708998396540510865339215706984202125365896906740468582876819033752557348572582109030811355583223430040385854182403768879825495545822703407151204207885516061934049171615022348793573765352738098692152739989091333592577843303039242635497284902980990101147422936683873600824508251325020840376925929166519668425587008964148842609519994344653016933331465812889212863568924282736274966821199969500088986906145185401471683789301555114285767679092993705638858258212584355858646102242023699176304529150335057199186137500577985323770069600644697394201907857993835202700871313608337481944528044069038001746962869920654286524810792316815134820125508561256276887111821567225116536362851785506842575002102314184706442661682709087307463366760738435761029864026008611489031823020100828881460129530690040315097313980114562969152684322756651631563485851619260158160022702640069583533724703458697663178694698177459099506379867174481501177318810895848669668857805920507328816426686438605792450267169813284209733238575261976577651500932399756297369899954210669379043476193728562676084571070446355783264398925175440601971634804486775519204583971853729652455911684998968713416239299505184023829492938272611738392465725944882049723888742884801936950240178583845421908994669503490759987422984651932455609205557247978271882390100973320609567628958054850947831893639637626400551011160480754848431225287556368674877941228229741584359750644445637866094847486719568441684381211559770618079417158388953959705808583782456753333323129936605127831074108870264997136263021480839323441098119000465943056192061043299493337464318363517017376363847493124090810159854562824553042584140643433524621704488199042562444479791791808864883359183274024844467230754656803617738438023841079043796004081787957345802536057620281360308435987961793133349155096304337182051763278953125672803382498823808697174431917790647592658251501659051968950139671522161661852899308515624920862462644911740042949840325033871138874442970357773269495802750939217468063400035340387740633618228806355319469016044375857159736448159875676918175467801984367616583591734964925283459295497291556201542672395032824521888467989745357435809023080730389427193885221289693378922697950191383595730573392411130344517202848920482477680030609917884070743706430482790466176565895238390130523411469504783793726929675677875892219936013385338492520533806028348130817916207631834523805504377960857691088806707495502123665950213578532854526341143609671316635964632664400573527344137190921013399430817704945711781595284836245159306172285546963745957785461428255930279086006973949834644720604275161200507780211391589824198116988196476435384440313125415965091259650249976351579211381231225994138481682151398563448155177740636245227292933088372051787034430851135198702346026201602306749623752314808206700402681790074688981750566804647904902124650075470778002047456001568796669936703165609557769463033209301356486404759286697635139092372968739971394265567112181731387053172644065095975865288575081788977789742508593577761952116605476976161154141478862161769189840891337895792015190167954083943186925237327274885047742452819108620891829129588314252253204381240962398030033466829647818585735065402688990788781716021417924661628055274235754501667218292768045732366229226894497499155001087822580713912895264232664812822672534044659507126588656231853013402151005068637382196760541266367590934830992883445761567726406793581089422910990573208903916452651160824187561412013969413368484607004553585111111534839170701689340294906718438633905849006903388573034807304223476199989943031632141655624016670017990576637057905700657268386329632798058558966010419679782490530202961362937363274994517792309078636879868749747191613796457039977099689812213306256128040769278517483516687535785675802854312576482719480995667851583960624830730572631017994907914481137715112067722056186273184818997665355260525106871095541027664415393083554029056030986290069218068692352815113855599190842502087279917185398484380902396206521161791338733842913563155029833133589662884904362738122250154253746913320200835739662302018346501334433406391959509905652367133461052718088559392046837726326473280865339200376822614875048170573089973044221470954576035328196770613865335704244995815251211002332219812927773405444879360383565097773124038926607293886859839872868751480775008844426544224206910487437491224502025186120033573907515576954449841868780521455551014188427147187249902951071308892790706168884169464866956805625302601879375095305580306257301566847519834097024246722050454078449862828602028886137566702176752719248444224449313314088078650756595646055600563556837255066030657613277974155187010699851047519993727538624363367282292984996697770944320124176523544260901104984037497729091328584131075737656578256058284498288501122859756819685743576635872939395641224152992924325963368366933233837638840667250959810116430016951915577592141999677307748106034958803312073144116877983954083300646699953760080709133380581768026511446173021416021729770666198076302293833395995094392879959197395837997951755602510815378328443525148571850408504587272221040803882966388142010966272833190710343831053273800183741486115071946570110203155417614444672924274652322732027807441993847973174145562908530720163283086320209840570682517078146334022753499447822663138162411264764431345761801044907025553786899794716042222570735863754105424031269984475846370170510100254366304592265035022069798359699775996997021603926149799038916171802055707262881254630475630601949592944197425673813299259078964792690926868639372571143769006099551749289135252235110964691564142265739829724569958846041692911240017440277918073393974162501877369594384899037707075132713478780606142014596948008386550554427888406866718981812544982676160195901991248667790106503418776969786026310346621947829481928634842509679122910296830448373107112417476434787405759765214413620759878000207202932648547809590745204115087676109342576387781645605537821608500367370390172784739341568054344993256610498945107582129604839515070777136834592072598616376577783568975633924594977696676416542587628208224032945101127083270516224346535460448786993744715927639112647364886279233972215067597429865263757427876962644655385730004381780942238524976184907688109399892333393692400789187836798605510931252062933364755529414742096178624151465961792347229221072572919702053094897297658771411759747413863092590409935314479105241611913437060494946944703533541502386814595672838216997188626447796826103911755974144485605199156417386240597965977252498789788812792245318010372250274340662076751508451098355555970738144389686820581574753031648121817288929377046333964861097012004891592583422937083509182655032661773610497248225799423077676608677072811086642113515602427067771503028465912097176597535196623373117963254847084966302598775482022981855645389870204325331794242642677078603410219959409099145802574867645935007825299878769454942370580826449200316084199190858042863670441786284581963443487919367418298088378010970576188491322459765165513879144841695533725147914340135931025958341887569785684509746459198800898922130927820383346325526512457704997180970638293023074605556664976388598376374566487807682514765993299370774326026251052645496315222699981907551091474795363153467876436032904820159043506348497056734668307776410002848790934304842358020651055368133224566510891521424126282674205580347644004707404210802763296243601020418800735377210074141646750940054802799910652188411008394554802059700781981725030938920696492318956353586686129416533896491911149403779315240931532290877275816068445822515679198218439532980363531874044706547787880412706889259207095573944419721905681480794318768972195266222106772798358590672954968146597937583139052382410894371122479330330402344836105342912624660944534448592799240725374804454124401665351848016665630629607005994323378677822493542871299071755342612853441597473092471651896686822496368542847389712386570628447350420742515063098519548011515300398919806342215602260467291155416615057546561109019334824089655406519035771824588587270528379441685719607879322163479880641033469432919706548509547527813057145365776382973067125380963351238389266311203131017650971340993854055427248411620771359820828096250006969200335480870538666189544435903230498725136124168496640272311520970151782366124553067720609308583063650082396584448249699748166536720822908621012100349666734295737310080830047735755144784882440765055778156220842878975592020056384394753392544982125776422637059156541998291621532815109038525737203690059775455714297961446947613201317488838762834599038724107920605051704851432020304447871781293891463122170218025252190576807379125272593915835229105759556846650554139855082054531780452737543918788770534104184609229758525971581132426618988086812602476528972508800259444976407936861643279708542042885137348582428346522651424493656112331694298676873631110281343556510013291029329459431429442920350600318157497030053161204920439561623072792572854271099269827456167096947105714618914811665031056216814058590804108228351637605363817788370834863457097781476114704618411253106045977298677099710030192826643959741420636884266914034757987211395164782951985222916507311013035983287860565356553786837681086923129529276231641706353509031125534292817998610899510640321350690782441729038146651663534281270658697480318796476701670842334503565938949027739381635318710420574676129142548872747106962402951840959758412703623341909699633723112335532276716150720592669578851182388334967158914215820701602345705978222382704055230521612523724998825229487251032261043123448910762241537915130223939742651242971750355750079549553667414373586403601218378370916929012038539765083149745923616170378694699457134001897361473592303833979128929148720840933321665710499365956871889075074986828775203790722891198221830119224936075810756643448972847431040002947141228325934711638458014712392905889269175944979120513184126692107944336498990926076361378347224018456681580174353651484283634835637604276484957451537402658161202303867518672906152549772331031195878722639058831081904210280559613822829209159486440418069355486329574346078058038079440867600190872845840137627351787349998316846057601734783940914623258525887417433017076991845088204458309358649626983313321856536972295111002974838439486766347366690816253517007045644354062518894891548620964185374330781196223773132963181968612279734505470208222214334863313902500241363373755765584613339368415637356386709534059477998808284983405184640270905811593029067624340808121618413428766712163906731737418445891948499660721415584178739053080766189660319393937743723735651453716478377720614063233242751209777530021052802748790518254945873770939647927103937002120888587425585678948901544761740540891284884238330108889973003832852817127899646521207156276864909558468280626937813388177899048724801728443335810082209150544138192180136308868143235372375594752314619060522890460223250029141202946673514958672375043264681051079894546348848981281216158281039227341979355378113342666732618982342587922190300347506746176223382786963127522000710550878403624290151212881548633094359105650567160816686286181406333595434048293410160116922794925087278387805007613812722616456089637420762261362400529931817737194488280842178396167000013192175731041406805282011919883344684559919387290603920739370468122797051902005154031099039624882874239055927626398476130411851753051731152254657400339235325546999524756393768910528550728742501510155432113187256071516952766266440126623801840736140442492673077417868213587946113062853377845303760992272747448273116667195346073714859068827909083353241427735585160181074966207059465047133271012009612696997569418047371109083895836665594791235172803986535251422531981365265983083675722057277427608525980878693776804597463866976060662303254956963583324768386353616785639188136734927879224151317862119577956893165762639668751416419098623198638327661283787547295795853229629124890441957418966653067512444436844372122189139483497758545817290642391474430996757020807597561828158474331218975534031305064616333003906735407072762034863606613623174329439154665567345873715185070979362175752185014507305398716857794158215274418262517111825518630911716853841095215716466948495652440350626621750099394133114806972797757066452544752236289571678721566847985056716221607331959639206402938051126892956253184381390088792983929588702722371985675951622978120877186721247466524956207746703925458683126014952803512199776358808830495793988173027037043892168456802904366048442426383526061889478571851952824535083706990564774708243254784961732390474955771217167885457955126130323143171851666904069942447206146083994601126162725784299186810894753430581198254959295262561016688929232418934833085271761152372667795720467928759577158246015037807960742548345896511682892972158709784376574197454739289641406520686531043437938856646263320564480439216993067174672922033799122937722348902960840356352495247079117811544664026191542090140754769412428765577403872561434769571944289498634189616672511141667440252150437005961889692114214306048263169510746312869843651458961978416132798168049594268848014227935440850345813641166937858326713768188082623038855914583439161620018190867377434786295396744334459330675271915640384279527047338241158794967926888524929740004259293559271236022219856139276641198051859996592195720323237486543915743240936356593695187668652806013384649716997507843298220189069243383904224598389796922906147038969058582286181428034498319086762343416707143696552421802205183600357307992210290401799461173502416156483120333082939877609232462405338188924281605947901951382607749154499940040898195404563139024790904817251579051002397807148329528066305813555678688445911286537664476164771968727852721318408951066778230099712100520555890598027177681855002156409924618458167587846417397122869715721866398992701119374836678948886168149771919221511699921596719384405555280304994170543673848150190665492590134684148249956559572921721003919186277262796437324546474850677414522574996176948897484428856200216731903669195283042121503807099259240343418031678306575155496565908875288237797315385885756941453299676496547457446805196176211295436274547482711836509842222373305973825188348556920030458513498034110172311630059780718824790244496301416288306439285826874962526461717361448613047205695526718764255031865047504951176032152054237500312433068749862182862310956359871462494748109123097234254356424872414902086745823352183338036017291768176312997030397410096339913737587660269096795364544310645625500867598435277761315831276935326109995878686434954136219665906508697362765338617808969654139657229568563620064115287060595295678026494968384495361099142399427960772654049536269838604742039130744188110259513233553537223361255325601047247311480757052758910554739211513721953140289649218873150017625152935939451224042107387808175674500735348077825931211525168188348272133305032645607445571986043164739287982503633910733667815605188664910139341152572290971769263853816822388579769417672731251396322805219911294197957255610982951419670103384058946952490789170212388968682667755206150381091651442664144439144420738749627145859491977137117831565988425823114352652985966551780820946867069349116705111540872413036572302882458990163465790096621309261195430350049533330801110865626444777338724642190835335158801901908538360573272546128704588160832825652008790910834243981762061041454900406927956653021585908159310063631900728728431456696844679074696460586220383491231866440953113588710591202739113572231596888371140655195670536704928249706549942650681660957410693365530727186164122284073779966475327062319004924448198421590142801389039120191239223123995142083189854121465368945375318334394461501580854203085863089338892003174443816246629989244477524383186224125060754349269695763644801998567832631458251131146969826657906032309612388077586381630169979334846597377580797806999223821302849298454901009892142722417798376057828714237925931345448224430605558143366020102892146403743063566924654603455966000864712107098581397800515275470566100383818625228818260660312255671324144707034216465173194618017283265439499780881716063963702954391994192409921639452192508368749233468659237580178744948059651203193958645649065356129352116040471471516619040687441686944174896746752340033599455027905618586618496358532351624586021563009260630410219107131013710803322116846365553844398891249507546206932207416977408179459799166998948359557051711774893943994684101528883609579610831352870930780527123457731417416680843746501762242638075454252187457690112644293154362477352633647447108393792756160106393880272498264105485793930730204509443713343009650562931031013031151615038355243623274298176021520721914285456380304043421413683649903055121513147563998546506358153336261192873272744057959728358784757935057502668111208309221998390885344702202915663151060995655028881305423574733810106515538469646999893818497111214271166990151545952244274427838747969929440878609313474145876603783874050314663190289094016148067197942873739623244147627237094831604199113347438695971035021225605540950298439683272648188184130799526264657211969328951476342788373506564523990482507789692225198493171709649429293831562095896987961393835324835653655970101280887225719111292318380958036184328660574213820013176843837305382624006998741671870549809707759536790384720719512726931667277029643379404161451097824641710991834345258669163540257756555546291478128557018554074317317440902258336060286043237838673399946625884294453352455829730970036615108063737451313511255434149301494661546456656450931044320279252463141985376065040182205874690548945056753350221070429488213107907940402772226305352388097437855691766971949445184543061764600549788779980186682849325091720992092169483029553444694023776482757912028072607539465427223441309162570720982583538965826844346156358182637967506880053146505037019075447857643834897906712668709567947319217542735469441188220915313676321437652092529745678883842042891372191459374124157298531909678055462719314426512083481278156540785019634725903227412112961169018877120505563554773575406774616507292315708227918666485159032325313345220725710164770602971451495315020127403404426094993225159683741810996365794423139399002631335440745463269441612085996603392060046686642769265944901659469412419700770018600303534987727473298509887813160906901167648176070979676432719507547218758896979450030742671002158812049528977427118989629263466744715602151783228153636968580963058183812963957302778821488518354618890129177786288177910686937640582695856390089672252357820303194068883018076291065770179337414142381077045606405504548552217251472889695887800749638980764828496863102108412146051628112854689404818984119914202272547692501354081906830673257531754349107608863443307298944593719707375642148728739479977177941515227092985511057073846852990938327257979545086903310030659221654560579268245456569982334633041665976629188272800885019095745174771832342197016305251482901348704880406981380947304797695829808232308836666342190081117550590838250505831900590854638914152938341898233556853113821267330777449421346606013611749243696544442543329947886801522911040684985554792803265829109388592212414007686823644837606037114565436764826293595517321151093467126104664130661321959853907056821716978372914180072985969771045821305406348404358229773174654778512587328540612957978207864528225679694385251827937312794759529560230750614078767096113795581845834320737952078989693999447365425818734555332898970072462790292474254896013641496514380784360817614675233408859072185886910960450745073315003297595250931077673747267738552247757387718831245137265328031710061233581601235109350421737527315611755182543615976814448125109294446932207847854319390928317484375628144378110035432107756382590751836085305922218147717487046190437834680488247191885138647735814773628802627428570869808101727989490094157332646413828134884646953557856327146293933371494967739228869042652461749455529788492987561944538365989580834510217367134332776205591972226675235993822193026415117047530330042847245117981819197366722855446292904812261601669613885691595667919302863499572926370251340659213606779686160769725417702019449479934952782492387187661741707212437822731772800957065257389179053343268152646577697118918626178631042927051105719245004260466454618213520902885991181928598009116071002496982386556726039394646125928387583827645684658540609326778343352676268362099203258411972937308562815752088974552349131024675611134008343026753274634684212877650906011450738151430160588373114889385065990556231314739624876738341516740601534378203274708334020971720641403430253004255668908994602667292566702954810967619623769924718047295979290849805840262522974327819559754825309964874886360392015523944193563756078502711915777766013572355839270268924357115384770171549094180832077115624692075981384591095103507586152113033698136563194150670670680141673035449401686919634388011631825678851665192527223000611930022274602634996468589562678764160072639114593463999944684402547205314816710638567580598672055006315345663478383969521215233310399879870840211964074689447751812376881227070302771900584604996090881991477318221524171341914016677869996115616389155765037922129091762057998644147590284104640345748416531785432729054861458516401111586448652763410951889398697263888250776876202918715488108490308644439469515479715665612172740875820630720611634958663429737724257606515218062281958727605508223109886794592219728521336994224464611562284038777569313844273959423141493530814583628837108315698622192552804732512808301697257131481639558749805673700840556985713876050185882170792581900959167663127034736174052874110521452419963776840006637972397018656225068066245670726395008994593505401437808481489222698671373408943211442559321625922929951228543139753036183021169951388826639397566886038628729710598604138360714310837510956822753272462140902363231736040980230876912098300115557504461404755652100936947220318213489207683144407307360958521248370189571326586078192804016888443836951805038821591105628888841930371147134200691579874811021908678045798856807336135165788133974563739566497474739011479125735480216038296233378637451477032016818957109984455747214875551296649059993136634426222964051589375774902382577367718185916749098952025187337064506598351769615878126316722344892919217415319817751020786044737212386661928646737429743657614694571790360471287086762066273425226242544417395306556148215953091117083911773739762231745496559990902633636153703768420921905701165860042989956125418017243349028525005800684160412457000110630920812369838183391594212427486693377216805986414120109836090882934061418008891493348984084628613098775971312935999543178209425277418346058560594541121369185196633014103036050420495885119701024569642633022662766809082649515665787079830133838062905937108360386654580090621657163193553032169174202014527566499640762603490625278333053500116673933881729533235362113733053179312867795807688183266753587927237544973913770323314449026514113856507696641742402629528888672019889241742313687316145065095308103264956392710028571237656217112763049258525492247434587450568131009342305907910527489737219987689118941170334818471779672555069098887944614042771457133210666791288859422453421809582361197294394143930266805708002176237779043508813593327742318592407026785906291477298254848309840168158608880408634894682937628946603744151517575092044378727839624850354534824108834447173009556371512030646096773813535277573454893910235008835670801896621846354080194855579877463061787760665788978632781451497940631954883471022543490475422662953633224418760096261928224211834379104244776317756503726420651915662612973533740541304496797742508177308537045587448942040960655323423637804841092781323924186375208743963268297963476868137748717174952201548202121701620516252570281455749921635439207740594194121374655234994204908662534728987056698547936736425019314985322343287104448390171693561687637790375450713897663874627854354390631900599200775197915955175680562449697618692067938495778502587579208622960696586688018527171791474471959190956013989568235966259121844461309174225547575376840900239294802612972693977276696048465421133560776668405989854757350454985519928206330888966104185554275755977249800811613675424970946276672047551868836019276483359485087475905408622918490019572701170283208750322145186089447574481194947865862680090080529424328094589633045440126048514993483340740481588001844996811098597796701060690260384604420925758022328513570663973663575424722711828496727365656680972748208298589574776555513422458323807411838606691489676391816368753686404373143818676123057737532662631270299219654391497902305846530663888249096307598985393350113967152049336395528395987531302683164526127215460651244425142058127755932375673039164420164744318236254057111833259636694734229694339153911116686603620394532854208424918855444115424353806325363582184011150815893843203967761905926634710262256998042120944149406482879487648319404773873193154255240597792319239513292671705191296274825168025718579065537275541471188490732815455216049042434456546907485508111872360440670259597074865545671874282948293090865009625594240417415975006871000110113333664908528426816395044169873345214904111305174448162660345327584058101035063187934866401232357667961085215604784742821556213308196699313398169655678079676507241890039967740339310631757946000890057174482431946459738874643915466345686355234779798350653894997609861960255948651156633840940375741371533751535078128369968965730650441780456105718749188203051143441518130231172404568977235884131796461777186905150297092804557818102235607805385277437161062690131662419158772987846000491494839948713029089616951449816721204092114639429606887359871400567477561153476016696325175662226055332792239495536372692987722797597784162187724996450020129102577637535566732723471182794247685706925777363041935778665398629819408801767633411991282475127286864151777853432998917445420962464035929639645910556569656592437300623468674258902765268185607560155196652737692312970129387570329396947203290812397647259512266900673500335269409910666763846215071736675528427727791932444500243738859145828928160775876880951717442878192044627709127318867671688781497317235082278584006533307456589547601655698433994755698234745177010135029971985584418908569283227239231066204962861860960552698437368770507176331512793573698527442510885207707594522621536265069034069598242041330652919988711513428667899531577474363621746039243624326842020458081452702952990756863652336833533165096736495466849551603256118662270878120856718994469957865467822375837370728021884388340074395199800969497797069955256921716157027388944941257377671406670864192910383404172428789092463031175707975975628867937137492281315963318712180993979137740921800816563882649663156413194556120017270975530712997471772477752087106821645313883415838093643930501152054746311166630478766667310114663950468039736679129519758058022523855203884341200843573872741390421745730044676846920098775565058893177339684834111439387157135418745106342861898593366081233642204756634992464788486714344644453680911497868392762380013911512098981943612950527214742866207478155195300659553166861796280905488684871198684207405315980313742385544862953115750188959975150433274249764000718794345738559860483269905093460902219466998151811704884446464002771180958204203566215423874752920454168809997718514945518698825231129606335167140611919416452439299621294993436814378784853954658982264555059936785102303583174827344833629091508645159679418488097554300595506174620784485886549523914026296617960133150820530044655813962684463188717807753630592092687541311379350159965407556671761120874847287776356317849822681552730339747255211981156596301307433570059616487827108423703964036042684785372793340280029102897156658453714452283375671810414002110381330636183381854316471067423025322533855381943536461978197358896897617229631936151769778350971821380047249986655413711630565358324605868297325315961379408455412652759996509492765272941257852846281850789115482108582275439790703648659571228802378586650072013287155118083373658536071857107210381995881210844697062638620184427135619363151324550582573272405642819999419077451026976025591821503870663704396480744796667000368170845786478405056039611376420734505977973672834371496743649278526244364828267997761468404311183506725886726031721967839647158157178265817717541481877900292953519828459952751322115618660266421026979499202554063539290487565264610621508321944371844525055435614214072477932036195673423660752760814905668381766838910883807269677617969583965982486490797961064586150293808350926650997892659631986676210853378941299026148551222070754274278041434826788654531787347054773390945346387403412453451623617540402090309253877762083912198441550298479788971783379328736817021561259941221240655933328796721987741210457600660829378251712360354941606939532518389027833442795754848338095954950783843300596968300889483828507006123695510704458670546449380289920636909706507380854085004947652549625073160753909247065275825369820316051616839869055327614640311426810803524491974470481568096470237810059333966846722532328560330570624371737940317894335585072409060881222477910747059509916425939802807111996732369532674730479576610424560297802046567609258203107358954239310495644797849092171525096500826488761599890349733832684657508415221139835513245003445965752114705172147751868110158686236289400804974801819064959386011392244697744928642372257555493817791257649668826514763718854769131393106137377287804646602801002363390310845709028669573952398915062740423725974379023452313152806081167350446180127533845628101728590704451502489881473864747951814316158677833549227363212684539667291085195637874531983825786715187600172377712491278844591805502761022839221890673336041556330800369637083918602608966549768193118509000818070671550470255349986771230286078817738667141718534081940287480435626453596282401403794190245508320682780145221258749046232761660311918750704665141818150388516817082125322184672713711072185389430615675258499009065410722450090767114528307102213609549011470529646298482707370534575575254549276358902310195930968864047026832803426373823304385026365955725299493135273034377643165960346468253419385424692224804514564269887513623580009838945792077109724571590412267031590460984734640362792422317618735914472930740605206931646447161684691519831530596095757551513443404592966711288804363256056487875289309435378806544148020849673580520483390616495181489987628361601522564111797424268697127034079762259579096680803770362735583586013584849374228235095606794619486228413426143772478995429523801197135846640555128228116982656315266622394894893154802085882319069179461625305215146037085196724184555932264345863285756338766751838676637070560058660468528925243968556644683317414170324934558726939197986558332098351387234785205331984585858063447964946213449270696005549617283621676051639656227195078924848614832382970329126979300446078874335719152312074410244514126676275172667581365871762656492747814937137697051890975213872943025454667814729409916299408053597044364706788669290169157964800573780893618217322848049263505845207427028413867669789449722757753294230879351169376183090722058379520688406412648084878974559747311179904362898608616627499524690943992736040538762305733997469743435878125801600698523582715101499391063714012015174111932760481431282603631618120521529199159445251168976975548768001846354105179956858501993934630354014600333081596716825543041003418381323155019425117086806799552005038858688744740825383930968928647788849926964676756359668974116457191141586218412232902323882377610153323868014881062392515009541152070810438730487521819100828925277322047252862774446527269820411515607834386428202405530267928921342093620577683307730800542659532755424773245721457006573108446457809825033058979517415463713791554505434913078772501284325277184062675178858636066107939542845603249196335754964906061171759999792355334535136398369413263103442636817440503218444915046450076986147372441537610003002721161449811755431442422997318915536918072429730544339424573481472077647762350787916101634937486551369418583608180254662473190984102970068666844169162225132777463675314630185332892633859475321657275773290390283239677785459089246414791953046006597674628157055862732821421655879654840448311184202511063608058530936560487582613718782818681551097215986924433654049679309921802382106593561438926897354106954202732651375242573933532277347811401359073076947221648035454508510731650579760131007788708903860474748740257265122385344737370552450854281256893221702346823268498817524503134759344008423366905854963135659634447243326564233425833738832953182437367732928572637498351695535262892437156129132349078711006237577582526378340577814152949351552854982917278478227601243579400411225043175874673091510941829170954026610693309366471539749411993192601795173969612351778659901501176918378882702405583762063913912322594446830560510579575917506782460974690127529108751028872062162676162954089418105187050655475235629212373748245318458879203000910879339548283808261108984176453006290906113707733776628735145860445895761851468317660455088593583465310732570156324484292313874162842047776192650123336036600078491885369652538317586239129808790648686608196813238078384375479065268565063191474617221394187054941741164417908599553110988833382169273583468889248922435436050993650185924623363465587710478772710187009001600934785818753103997493657026140649551823746945910671693712170490317587963963573359163601728043355826561500053063815675923401794893284035869816450211921936061303241018031105662936564273839546318905599794936690185347140849918937650746981304592296395486142022978155684345430124610720545192048190349756693842277837208517736185341045755907833644819064555160967328636279319809667945392639162166470385500522117292348585853898564739588332031379000218276985850550384164088793868637165024693612336088480251112751179421855458004455381707521586833459239685365306679919546724402315722457185091736570166086581425998151561763511902469944364683173139868276626496173267854918879613795607611972222629949875230569050728139412995879397608878865859588546972806981169266071158982403011805216101172614773932246353910156597842519174762477379103469017979234286540186806161408195402511754064814440373768868031258804852498418545293000905187782714570874533995203102690199210222120353974167796728859252590932908095099513257941174065116034465579904581018021789214604324226701525636623924591109653047120588191271008769245590185386121671872315966741428699066342176430706685264114351882197196097165130336629768314651490207281719317746226483254191504579013831727551372537606694200351813157826452556619508054602860626340782996328610805953451833861473452952943601545659408714068071629819884809028928717703197934342022373885695549560836648793856916385637711395879465904988762535795541931300859789366919161566817632556268237497162660931486749548391053209204971529207236582032051968498051350049050546431099646962511658783772683433074526410855210832580257411996148797897542221196081273524011138590058499332601621996527596014600188797218597978123438843713792901471962245147148164080313633527119605153148227505444575841189357555635986439482550756387586079354574246388819560100450909361990659236272184473409966987035347588280850931404387971319939747680482079530258641372748244187790553669487728623041133075699443885050208575907437694239921309448008891397745421699628992248618172126900881363342491309061262710679856059371320013389042848839714126540614245062667756527765291985723992960281224669898951301504204449622846175959411039561644224549268326372272212668871839595033244803394511615078437726395411195292062873288882095073351564642657887349844838936525937647993111795958548719076153267294292701731285325600818928381700734378173775319130889856304011737134162903579997591735063089069019157962312810468098326980951467979765850810438614117212117606491216246681434111294708120210888700664931497149792983288339189286069067941510715074238804071738352065709946295839919815923297054959101737566435363213470158737294463100093076735098488442672630829768910339991432157921770867300615293784855736727437815346215009630007796188321578731172564301207152324243811792858111140768251504525462518314880302148875698043891688076321006973109571547408269392137361776166226276758870980705012504394589395339203943761620095219365548253315516545608116921175080154946292439241893837381483976812378773499321152254436118820264453045195166012012439779188879072665895633994849017853973943481395855992989942631495895190790134567355150807324617877505637799891649487946230856363652725409831278657542927186924673580269151694007190754038017095133053225936447288802903045094223066356241226302625273544220373121740391838730166956267967714104934584329955364649761437567047916282729158743748517503174206889049539764266718170147088136603726093606941267755516276462509364129639264985337934938032391043285272670812526085499524547017187314139065410469592513166418899705466109145585856431364389267819044609139310500481179727970541441819171006604076122929705561678708751402252271248997843142956814048381878054919622474260365791122636200162921317852935546501057161463472842052500194933152245181983821485107128058971673014346555233761732423813059142695645170295342898243467832182306655359841008695383623443985854873254747509225474378199270524409648813011053681881336314715057029672447171083378155134341075859232049904175080499764385805206873039471149211191860050237278896138558581384469300553273397197171387043067109573184800477170082348526996423532165276678475155128824610682252065725451657379742062220239960220737462669708035956638120784368816794947439132517558261125901749561625267936563343030683608589210960246218262254733067639784700101701921693943656220198519378052721944709869486152329659296881155801139445477956231859978031499616554640594269744592154698816357170138724875211291502086718109621873625243335265209076066983887895835289907537057288999383102476170615183234361611987808828436041239358217818087235612389921971206986885004748276287770773508148926221518560869552924459173814522393991061817240144504628491586205495858914660573977444554143898915330622105634160997280154829856515845930240194732442320615713121757307722883388663911651617558024199383775354875475040207033760935626976816032247750464436267965276433339310915651132557034866741964446359581491498428777668311906769600870185948283525674613277375811908414076308580793392023594635243126148882873934464407667367083489910819472637490125925425348170160686624733919700591847552975677819535019493789428387493267038671093270755457555246875458010194302956025407646992072291713599510978091177965601479807653359301185414105212056590062683266950371479859359930289309676866617523589307277869863682804550517405230206912965899502829233194646454922977479395193144525588025588641619842167578411689773052419076722093417946566795610183626953269301363759524172708635098973731682731864073532243532488138295213083140030412027358831139569721405258896685728631099445525089849239639205881885647576968677296210852952249525149706170523748521123327770737876974362251896543883103104652227528143691089331746045728267572772941389524170667472798956069029240057231629195108300230389562734580335835115781724641866604483352925187793240131127436601345560524132518501853761002594574581644478773654541350482022630904519810514596537299070897798142392954163987495388863583546456336368277372253330977450353319837400468387811328697712487216759387590645514796689734518215515770660755604251941561290335630920483744787173794518860919446205341299599710753960420493410267323815623822514471300056681229692833456528208334066228724371581192010837808546544654926387134633934190967076445553944931534267301268083239198066162592660725500847035418928400366112357216121605721090341946262898051944248250420383429458959084131672109299550918414803653526439152441865371473608178202549653796680767198198792386376413611966968853752494702738830436100505498074453906954727497907111322488044026554071952413395930374234392473549290083767904034370941122781055016487223404729148728512776731242038977159234111640459052028094068375611190529053694694462625260873425341390126067839461908719692227061481753960217819276452162535326213573790609885417449966355070732365771725792941917861628737078206707636377612251531040547900852709336657004892571091938864199013138020254144026405116203729048045112405837297592894270796529668971283448422605719729868382697557128449297706588420570280701239931789832531507473834562061947658770705446084148291254917995892419722417959094926434736433590237234495995608923889914370509005832758080466058555074789083501484463875644684161326694088252718094755121857134834027443708686860013471617125266228338858370450387460708723997810362740579289399057911841914155317148798385685080565099072027944050741911754560332730151469038624976788751130099566727962865395565093036217762017415145265414942176109234492678255284025916325091708743447835754834434142675061737019596273387547233514528199180558537707344205474418733154881306953446988009260130631730449303042470089798956493944716490409706857967325266472352470740455906974369754185958798223409133285159288702125802880866235396559745500759924494907062430197201234856106736236739706867858373258716713840122548452877452071521744499601595182380321001955718902258959618143410629885465896463309180866429003388759064926276565701498893341608013533261175770086451321591326436707649552899101291094656080832768837587664979381876036688746439640913489609896609039948284622296523450115001494010776113163684292478526322258545841103531423142477073680169907832803783127695338473186861995898095938052750837430313684721614107879549775750413117435551302513454686288832215112038579043713759786701738951584086999913427725747845206181548391593726441853849939981108221255673827414971564146583633284366500079598677389558625710074379639048691793280622095501688464204326063402821356602931588854210318563340520937549769009689609002780010011924539736163018255744617075954739992371860067483145555653837032795359410201191824304104655588686471329788836455490675718939698718851319446270120709839012455909255631403723731127131015385380303068358382290954256603934227547551680826479601362248831766964166353552158972745799205973623209282498977820564045592023841636678978737989878540352962313131166141223012824600636765179269066343254738885138668295969802057036055876156660329081980019631835238226176697888898664871688544588219248710232092967057459267385062971058627289703934447654095268557232213286186356499509213610361240551202767428741820757085778010875169112167675374703383096016166595531083835577107886678651759633413585323576220713573701275101869496511775841184583122207863767019591849448781542952001131872364763830390122763608880326825455401278517753939835236170304529993525872898262213065328924718292648949788955008111869966920242321974560743854210682960806038688825784125201678543545086475807375419875375658028535579639327028469608196589121368919958694429115937191778854009443075038943478658030533671128573564177469459135173415646093235885266007631382438849202851071462101065204955206904134760543012433972147834285098309398284336632802026207288612613980701994055831618635460267294041023811832638552444923795413703655280388458753082490310524026383912353633322292350094381804109670275515066760018964022831912420508654141777275200589162524461235670839806708033579509602801161426807638884016205491643823705442877341996515048295244570774136940769582829838630422380215607182106596651285778112169528369081940461838855505508876951068002888944221974394704853414510926340216461723986914054349160012532222310715304754797997589157380180506210169090796171443177426144167934493843841425367158120211596553554103187929856221717860606630783571880556957864211308715133846786059605022430415643360081422450151076181803337668374482371370382660875838401859428948694394021474388688914262815167874129138218262560649134516616521134542376974529256340060758925429919780205452650821834909492757088686386021403947899311445818981339566412642187826407894381823365853739704160149080115757692818434446574049974389383442171708668085173296467282843508835905078581303327290083500767338806968997259777469917188296235243554582014184396053559116645045502348247086086635653004162739236932294371053655459356579178262407673171359080012064122123340210037628137407499924203234950106239266913746152491227273685816001028884287670351265911639102936754944888286917135935154408186838265952309207326066648088649046779265987065136564416226662629907190070489743087599351467459595101125879243121245522189555448714667679543190164531856833547960210659725158945998280780486839888432973946125735710471672182609909175793785241159818266735685810538928121709879293603689392592423109480655958011450391833505822363988728427517320106698536201202138879251218379499021980820477244387689597647168608036104847406084510948111203555314235638536217814470786403297712205178450296773188401272139318480873637449876276150332823511610668995163041164184373477239826769641877807251578058996988303052487931631616599413286215540967335607484958641945324167457343111598403517529353224235998083711980148772109048891756912995355972321021233974388619271460078607557215576965092448245431276503216522367962329874208201861428023792144654557312582026100543536295390102245984948102956691887646195428654123451253388150292894503433498216422561620198191301558139799997039349792869004061048282503254271404097060947873228039203943366371075666687552037396794890518839915782940930564969260493604678979023136657670023014505752295438988049894134317524924939230615857557218555292667525364675149638244312820522571457906365396854663185610396131725263191008761528625368998132033793585412591354183192767090070219594432831813010595653166009219029883015483469524119586285184111049841023845048567058062231632108449901520112702599473238113879782581019014131611994149039608162553679353194527665422848798253766663666348906673951768208515365596045815660692217033831558701621368266905199503068841156569508823207649804746483747175326768388561337800548021301330875422581195764558796635250976413587724409645493768430536998934545942006942950507854447412000775354893854169605313804748610767043265440798955176327253388928789002843155545402170325162092768475808030088376907847619116345081743675338373079561809128637043847520181474559582638928352917735933949608422755810476578339043758609883219396392628007926629221016771661842106694638022954845264122774504179286606651361064749964428071802773729485646827796770341712346609936804208452558611750970319274487006056920692751554336889544918539875086714948763633220233420607905351028327410293470121242458041027445110000152719372185309308549255373616642069030403074898755936507937553289198525539168412755003945389695021662683007178591808735296950472954619181164449708741241819323409424506489044447958307797626830684601275949914854279858308850826317634447172615448244865240932790575249681783838919873410994555492122425885112420253129899449536613887387815359724547102201143334554140933061132497893326163711701533436953476186537284339113875752168091825531847990080706317320418085576289254310442200652336939061851555358126246758660990386392737420292318212112422826822596762060066846372538270916569573762628264685436407314785328644588358361265442487089394162349428846547894984324447565788562866452381898272288964760562491431517632096006107665248882184199066964282032573491904052671296086412186316016279636439978266708705809794162644535314886806593868335229228118351175674604127009765612865380869200987828601785261568437836810142901719662080891528509696880057520170883010733837154884512910163416795915441387947594284180708736526793610356758792666483731661447458383343935344958276943108471856323691077064060731203115584539091463644417138865692508412649484957579685029211373159582049048788713352193208796772157842203226972410836715590812862413907480370022212990086217822416614799808671008354521413995252746145261217274119048175930722278261524165394272801166284634115303518871108672734681902192605403052752850374214135927679701110135077280109235013171498092219384096744851900049118343947392047321271402021030307635160702390564275002358647475552062326531708928860570867136685442171684122915189203909410986710921093213121448832601127271072472269974147986782807379718360371112857487847762952387572659306589152231113096011361324189783982888588881515996306376804256741347168312085735310789519704550503371426260996381682642988044993063527283855484987718763378886281109219510543701567710123157510804900490257191831491356415289884182756490653501928363791112489211401045554846926677103979558552668601501988757503211286383559431917124688587385142535439862456526457591604072391414870659047570540385055825874975321254298249599903120496550081883987499442240435932021635751486054713613704884072263678864093703408207070736073864444432542779643447024537553355918675820405100035618252147664256806233378912129028705849782830476869567955092515657179651033649464892769910054227871935109269783909348244400394331314752429394412071758691342301117282516727233118567845913699815559001590317403665438508104437808857442833245132142589227397770849278579363713290334948003695566842932401199528298815393960779628044403313000031279299459721143993045215040750169023030422414246621376273451121753755128578949777248862675331970857653920311911292941429948262160829169856799913904330882434574536570241123667065884673307328057374605457147441076045187980018317396530923176466933221453856877881507170660170898499156043998632348688357766122560005292590804855229308521167656373042800995687357579182312936146515810904424856676396869841312075377603136154388150749594713806159265272201144197733648140814665288631557073697409414209196313828226645971634612333138030047486866180856476955870958653644420802422249266273052692367346435668315625051386294917388279895466347004639308750752766101134952450912110417190268896847247006759840563193666278960868722006668104420966541249280154221849545183134633008247055443248369030373361576044509140608979957688792784632680117172845936743002614873133858572077874534155862807896912949778750613371981381881620175058866664044084821768550936743969200054716291523923986150350309397773476619380755538277254118262304608912880595278057828317428385376524462195010972845709824000973079033313643702843889127051303503543459260329591864518456215586905554322290244340060229056802254893028189759323230471517060537209064581579767334114921642043016915609726365670102183795313689014560153468477766503423806809615217835902932281386036188394370257854676367698521991835441822744410233672813098339172077029408917514699440154982271963298656086511170999965217468924286670689731949527469779818466616083216865703184663384775769920715096479532696729524150836152845701991048597293874457243879895567617984868089426799551834680724548167186619504639229264636600683347524380306273354230847269399760288286815424384500294969133683917088973957259380701074481895567270862348576920742949591939808207729289784642246422287604597129246943603853471405677116153425062427760652403979883350148439757719962396398721929379869493565890665830646609731733282496405772229501796463270067668602779525893403630345135262834297480885095398013437503634302017087212290955614152838443619110267971246475097480853295331716955893641203220139494744250151320180822637954273144113978693898160923404620677478910706401608297075289280645878914231159746797143245037483992528678045628908786260552217035996129135721088359304673612954794200628756351255122439889224964169347272049900200734357332669411788302795630887369814419352460008833468439821582844051224294770472575874614855868075141468423560876981838336344877604979977761450422925143516284412457766427456316523680247345296647746140694103549297826928725233619251659238259094271672612842619887771944616731245704511905323460137076283439673501218407106193430654819402061232797623563750106702821621746701880339180117139710248210365506073750203636282383851533559354158851788613772565028470842998876972992778302558100805634274988229227210279419005853155368771631183078975883354662391979139344182410366264556836454693214839569834829365047536908254135883665417163861174321258186824131068689908479326098827788506817048996112980863196716562850855637495713499029931936556187149642331654923793810923209728632078758003556481057783206866098798027933962190035229448248510693490019164496932023338438650172917236158000603570749812746661410020797162727579409279279744978476345335477090241007456398944197123784009738852658520538301028495729404828563136579750588622965022366421260150284560071682646219904753393830773648389845926014299439856267438547245212872118165661055028121785043227057256040513976764558691580238563648505612955343876926577714382729583906658770459127611736976707545680835824919309581165779132889083188056019023149991094173198469994586126468360260563256788838156318470831086717159879153414356704383888820808680352718546659925188954458614918256068461006769531363669138836604334207472523504306146139247054337990394227215162968958304703625376962102149752146333575751590583863934438826207116124526727702176417466968763107100069291659328388326450465518458167790328032355687568343864391789915603378193600708766851621385678633900788516588709938465970559797285577686704034591132163985888201595474531932565645045465734540424423785769108563436922999363245939385392671686562200851772281514155551562795305488826266971894564796067299251560677304858728721133609465116419020742601026446179573191231435774621322451764719545963952728515858629290390378060234453089436922502606426346482805999153085072685667300605194203066171654449878749771997375191073994288016843307285425427487259864237832190908000829826251327042250001243145912732963926246551176166098149980651292674967107057327028800444494129958192384453054684812585730086579593259130993062652447958975453721576358985793252246863973050207583966625506341103621961026023580145329436532508654890380848248481587082620443002895177587217131849256274703542807584682946280787064674009611793479648319489265389840592816710348634263855624665718397730795692429893040992432322792566670082110482044317202881677666240962659835415375760437198906286307264712444148856817492618105548817014328836773607257101284045582663270976911289575723281479767021712695155902567205521849393734815149208798500434473555222936892151572489892793726250065848451106174687017771436919110752485991838375411519678065161196716844576342112589413553030835823131406198100242499591026051779530060848696096123016376497484673010427457531576475167517645750804915833364373371924294222478135789044598918222908846346818026287156414617643072896736380279369225088568212787176077149846550315336120233099261207426610901515657239679088078610689538250756511016923922836060739490495469662692574186877041591659650850574185070000318396120832634210493244679316905419324712364891964205881712674347924245002678758399481706319876681896842595101996108502886887487334371754390676291707710762460980426402419207147192325502710037180376013368130733317796740161575356062598931146713059433370318096037726471056265229633110427341369910757761018029850474519076165726122128480286882847175776170357344501569441638194696209865943528896612614700241686442974664011700615215545380947977290878089442123825464301194436381280794825179798446699753699206980156626677967023733727386411421234673306054823224039986248552656630970359360355627685554395384146577609445759962827147617283058480754734190580574342143764295711925303880958421580375826100496083899182750147994607055547577360055611161015594824579938254186452947675761825970009828274669513535051164747449645067553126701378610554925446406011465177431467428798908220342260548402578276713856216482850224611249038377908978329445425105224565343669521604864668071070416427596494485909320328149621865634725795589731968624039440919791379353046612033452303382918578634850684134640827776737685316749028160674259051178374984000704744727107656137678057792867772942987565226617701931993414376726441489531205790880653973241771246990989433883284982236219025268683168862089668323242094599075445692843873594516241569214228555857112813729470119673337848445241054139949197152851065015415350029724710742892787683610734288412477462890213450191664369395410241148205301271855096372628513683000890198544651275269885935652155808618752879986943206647814331583623933362978948437307760361792958330509779142232238952786257576132678791281015252528366306200153319281290713295239855258260254456626319891374691355789594360740642377879195479129382310176707727862523871271605987185777657769635601279538293720565760032651191113827552256847002085822719169141194018315777907219757270730580451137728714778411711984912511386755647080689914970752961928095594497435863323115941776185311740754432876081418106575685528687229096666491534596476191826777523870659200780487512539887459147485284638615050616732842405652430382978516081683830355939317410157873412788829962177361948533545980327898422516903416563178978789947687599883422408443473276620262774302786541788656565021391741464539107307986833239224991400171424760424049168617515910225457421599363739950613834403098490765788281513543074044227209624954084183891057163975608806973926084931189914288412397669866857295798695537647481159116567265464232383703410750733053724626927770751781904730240912044050109836467285968807526748622050105707626765575708408705882550597585380495874322366758599013208593151768551380345595734127540472552683690711486918871017002154851049775122174921811439451062373868391357670680299562717829046371718211274435091116588078655822363206314039895418287573838781177821389441120467338215067033066901862715010884413194281250552711544225741652760058753834471144155613820928537169215564557675884726986843110898462512392579398670206164576785381367561900128552373419010613153335943075272587787714647978914595054280554795020576921824800639729732299339686682487746029488025022847441718105810662727312418162131421732842807033661248538236629832688591398764037403396922242873116494999656551463217329673434256539896532666890745514704853766301502786443580469587727464237273227181895385399592850142991110764266614817223594978855516803088932981790067350444432503801680224926703613095806291090281767249554712412056831448437789513866322797201693970700387749191408022775270338674595693231610630803090132134175096961955546302190524025020106124312573803759157826528052590225299260774576852373222598151406875577127345305857262466474852743924510710578256714752537398441100357689945629225290258286646581054593419719981421882094546896053446534214026144652826889204202656508863291895559780097725487957254119712980463057263191902304856803961273512583553176248078328989435398160481141169935646710149028619866296086240345695089596175785630759106501283684210469122649897112984382191191085560357681721908227196044378220353211028883446140507660000042922920295694214063900076638825542388086818721410458200137192799729679348754387556438895685792189160740079091061397690265209873870865935064640078196843459651845889529116064848373527572410978990056395847281254506033398033023649538221301982932258004909230039558166215737240406491470499728082628161159488727689785521828143938759434540359643731746171436390763352009484016093964388167935600183818579847470217409903899135465171750176114392771297927732779035968462631914934860447091391154171427616684903363565045591785367862178328601045128287659547910239468457642707116810538690579183961641879954541704854751091195348073699175450330087423837241891624965882422884747587233031299186071084291363065821396750832335755438771500443325794040638417269804153564882874426016824621490581214751972342705591435402873800247891594928046551826506675100236557565095699390422282476654273437136223970829571814902365251176203026298465793125705688164849035559321649135483376362561982850982090674052930556964766764724264388745299556285966972658145654189637427456655557734561553449601796074399079515920591005645445342702741378918804715219574196056586055931621898365482411758758175696473376090289769054646539360952985661843023207385529657379999232797976359486595961782474693388104700446263166561833208009119334314115005282567981730294580897062803624994301381373384991074333831788829638257352274757328371889981562601897463112307243188994784719912005779452547346702009108086184889008652786633808363247530114744711657364104561713943233620990646327318279251678920886772009864901029014091349636184953725284482320435815612854954430521380752170333179076019294768590542813614181872791336027671920830955045309342755496073463304794634618277939064935356570713961154758235603715671148089315248289078958502165233221130823610126440263504659387813742911306237919207396363290788186860139974420423311239249537093783421098381660382757919443385298219046917117715338938822466505356845984405683053587649790721623103851442728269382155138745028379577146643655392266152001170428303495565782367491070009967978457677772020725050860434760545701057903297170038452786702104834420282912681259740176654332661008842574950291905358396444725656108066100239424559198875692265701453781733336820560303220217247130446610513013830000503473866449205641369136101997143331190722926806354205130784168437816938180972446240638700094453246416441565346931458481217162195475054347905043448231510817155659518441923342628214546576575832000820197529536746230832625142840302710474831676289261258770440148430096498667058511802040964830021194390867548294829882361823117410627189401190315361196495057174394328861027553783050043991011181786135446036625187234413684393233988905330971908545951646773619333165323807019820961478109627855676070812147423042514536366434056471764521823435217090491247870426904153535032065429468137591536386443022289663953403184456687965344520758869487066820440486648877479249188374113259465195701392546344592685211168823611764209417784393702143055102466758643564849774760865361390510812289689989199688927612852329033603588585831856599358355958588365293621639403764050525106162400863075614015551312193909544961822386839655826002606962170991972691680720918583416653939168604552594924663950872890339501346701137389798642786541776500448455209609979047857261317398067468197737485266303646381101721772167169162305514808265927338689356851710200087873890209839887756184706067660723795482216806147894828987863166738624368283420774241808617181410712094022606551423564530358947551965814526130390268092029088664612996020523025085420927219475170227247803375325107538837066107859410747069260089374256360602457900337709852401298929192031161538639547034066358560791719574490298797387772620119064225681693869665878785839557482560773611402483578707815855522256102345368151547090396047002142082206450234221388745657151973432392410130294021116884963948552594809461951466825746902048405228624784876904108383788857502517194780849343329127493028300118933538006311469478618954307911497005470424055600141710580319580084371256069779646955581838515023620727968379472773632492583079922536043525501672970289364226208830065572330712939177501083207616705055954972327972925941874445911644185816605301316683090329217376786436459221702160504719548422869729658750183577964742143332349168190591480074747596476612373174718205108352484961518179311083496751998384220536582575989871113891498004745064322998933882095172146707809390730206058733749074995084577094555801062446150895221387457429745035847330447349990617406100303958225322441480602131218168103094153208765981530785051277335560595511207962805167359334714321531539588102787172325588732418543778464466471004780161159758358391350391677239643963239713399612069701628776793881694521031674744344171763090035708600777706760541504707938539067803860962205300918692823204040210255178327345453358841416697392142409367365820669624204826641647712935491377201887411185533138999944030861702891222683893743330557174358285614833623621828702335579148154340984789418759484131675684965244692507820610254982239988197659253954030105642230327688556053956435772809263099141668954146081613963862575775565020304843707645322956788190818735713088914435709223239395274352942662428619497522554581106007035599501002668570874184627948885464713810779460329484512673582736803645874134307516382155200879761980300320855662540459110111332088943745627526992475215508908719397905761955451434519098215627264961667083769705101901608964765131584654283957060878714641391502014202623396616652450408479025624209350091653748903199734786477737383420956320444589627519394950486528664598041237223271244474032992498581473275209522930133556010981714926236683076192814127592206618170990975922666976007812337493794721026650773321510714075594124823369772407509890947504067322656867771435984687788530094028961081488577501547266777468122482429091876214671907814494028786242145892200835793292666070536331508209758895710197973063379401931782271470578086441746169237887864504181299600540021384491276216475205907736268367701037955366417854030721572372836808326463805496544249973409668161819778442613926848435518795149737745508502540056315138361191830420454767579951748020354825585200415025287232036032322541372486621168474395366400710671839593825620337361998370498913547622120995303412294933246284135872385873795809701802371289065010392932228384294399025993742704868297193726692739486829728504969308901376523539832125713786340215690274010285279110721824114204292857634660045727012844430376866194924399569072429231736845814734684510218550986775711424656582891089430039735392884510236933319371447936825357313893620118266145211020648291807092290178062611612270000071596827414853892655318743225848074124366670346207249223570449900010812924193243492129181372596068250795340042902941777849483634909859610745105902375540501470292324569015293779440984068098495990837492535957899182156583445209190270433649887842248743364477873033084096965227836703677023060637525483924699607817109033723197525985035880094433837991421405123172376543054846080932988006107732847245096212206599416821424031079961632766940729580805247427797995759792980725451035801879330555315848885648445151996276453242239412592294587761388249897200574236662399577377276381856370235329679160789279599748473486026860796192106273405750947919612838001539392582732711540011986872427633827707830231635502300764672134308184155004316985951443782735281784335262768204748432361437817958637348625780992073130753506116221749357474598184247418159883066431447176713435319290957525506521775087290167188475623882708746487348542418675584718948323324707792706666767652312783074266531694225005328785667728758358085061984225315664312541586761408433517123589335217063447186641507023554981528390384227292097940128746619039369843901675618995650062040432923741871060508084901557727317345480375770608297334373632767741832173077561107861017394369306462858191473917799246370806871457060729630629891145849687345284855060077266221625205977186221511315288773585801790253719180146776101553530647373513151366954744484982868615372403879230212174388487857060580992730971891020558021795154360656464252864698531980860658624261265752263354722621431514609691338729700317096142361343053658544644805713894259446032922268432697853999616694738668947024462799720371673305501117452991020843455670177227623951249520336820828382750438053608572167336435815208094536076965235099420775305765543951696766731296638591117798345032536335526403007169656307266755272252047610012213695371584737435193121297620949193229443002428470428314826630752405863087003921618568310921242651712638143697162336455299537271572459094235448004321838376466273217114946000154665012508349746156056358830520242053223953321828356730256095294160580894279694219397654084574368546661388374171816650684654971149544088086174055000443674525999309861365570638681207492104671902433918470745656207312141796274351560104279664030704068258088849744607892049759547632986063324499682185022661772656692129110780877934872016303980693710496163320826361053437617061653004432881369524064589857660183454164310889235262384751148681266724414046151991351864872967003982603466291003443330010374495930657383965576112560444465976207655527103009880518270584993097450375187925662546637136435919599312365337004553677415630602483046612237264232836500114104860503316896797897499982127422763591959034685449772444083157313539641060941322964931258075448550303351336532932240830992969542371818967018346549572643761171879761141356933239567265567084873250915707144728172429013916894524547949245479668477859387334199213856840157922342722568302424812674444030677537076887759972061787681293446444501742986559453131737684326735457956282660740495088092823134593232312899912821531209239477651782889601471781832942996004478741302548531314500321341638606861288286111509620192386776839082141629640666240200518066547027303249650372754709568919340664441503589172523358071573628304445415804961773331515494866978040874873948691860942786672730013212162822136013006186372822015911043865368110354778901678403491747386762765058166922985753977530682992178473480228703278156159106509530604400882142594973023170752787457914499268128005027362573147366261624316100724333054771423553601067600157237923863039436062441535041264885126196237879164467860974152820815675517486791958974312152035879533209616498339598598337500058074921531863465928271547973207520490751461891089448684088009012767212126220932913021475451450699974972069751982012433072775199321609665364246077197700507942363679842794156705102006297958879424541116391513199331820938656335157159813946353669741496522444363899988645034654493955694840413598300025430285683823987943457263989135419727545653933374476017311231751820737658424880730092319723731439258700256674860801200497535109566235929991723230429355592633869449218543421709704768254087735613673286881865886913158406540388715171625705867413512572842166143958758994494488724207754250051057084649730212700735401778586778440416470665147869739515597900739296388332784532761340245705819682337280798094914492089068358234879026342117226471687326801461924734980097953952195427409957971646703477504273078547792676120924410127269024839826940442909373159430017068262290196233171790942370431441209476035512576017741835284780899634167824630554949411016375332382113426129481042856100940425762425500417448014882571284053724259623746294380150477706447837969457750604098868674022908149868493062214519748571280881937469007444476636241418211066847592579271945234076229670936407620115092674385640846150576538421868678696855391892792778900301061915062471435018669427141140358896205994852365141459444735117917631778470710045826255205388569639974635923301731714381020864097862524055551999074693629226688820897567734552519957607226705152655525308798277665171642330015600238740858785500598207283469040696332233391398377404007134921296363183981360076788981991583359534315106742259977993744899084420022368098978614115702355481342543608594354394326677204754490083213742343909940970955967659063574786956937975759564691778630040553666458067035778581642483220252117830318833357635500648750808457845936311166690765201347116627475318518361200653182517777192924525963574200236119407461317427354149897484430154683646441159207388481001142408459198373079785701320264521002470481744650290464514730457242142762013589660360577848845558634519767497645607717845374209316851197123130520386197432294052815499809923132712668875845653953822480997671653380311620430712105289699329848698568858276720608501262139199546226613850521611956022225619714485263324826568853405350205926761873494804417174954576399788612211850075028719575790233490957169714361781895877329680706024834293993817043236517746526974726563479182715355162345480190665239383755782561136368472657879000598333527126393546090441838419646968150110470296388858748882446850836056393249906808302204652891832561659326349062805456852984942703017348510357799787858084532097895324512875722190407398676870977665757096683924638283524884851287975296674728507056628519754592605432545000039827361768880280580976035139417265542669815712979815535727955737873656999246880383880260750404602595711284220035636781688077581872411545638030392987105577710038921263264221889091671841262210881588492303155724904192297935780110389149017568376140252743973745351829815521311552019413863512540602131148940088236556728140065912473270754039662981777810399477971763955504857800643113414241336447096049193472077856576229572403914631296847495128479865302402417730709237029911139433231635418951767696441011976105542026135654487438891379687172120035514225851721312523459953590838098207651593976759458517322283535661263638039238885207766665677292989923269203457531432460255944555359099857502876937618361254817819514620017705918392694634275249772019924520497064612593325768324750984029717176540723152698895823310039685787099124799133312247667023922122171317144727414325370473232794294683229079403438201524214509013262697769641316304195648332804023461127581286147078999506916991584920768994458674790550232612052154827241693321125090008635928795706991764060846452420756869958485308725617154388006496973994615871815968251379410951704180151773798964443310427542573666180164613001183346607826884898377654723686601053305275499629411838407350805900767644078734623301942120601963212831806054721128077025500577684442931066651981603937112693384825168680360870886912893384258324595181904919142815401566462660324708239127413023129916198004902384760207621608747060635344399467556933587634659063411574539747621628777771368841047918311475331109898295387436837330918131023590453841683909024822475203796072149962239973567465244833321575175549508226945144993135416611871942534760692457828793897032106141888849346050773896330829321776433512820597329085425221253431072286617118785348316375925023529433282827180033264074682854461068148856569043661230389424465646170235844046856025409624236420900998006493331777566643289494059572267664222754572653836696278576427822158062810063455185124478455319060604937950436875724489924710669548433386547614904608300394494075420519272160818141360505307349236902166794462371752362057936607969100621656541072506156501784016767482305928956359283770239085453057224720790304867274329418253753094787595162978017439429380938508875497759112730488199925392100976244987516695403976834778994741934489088555995667961769537795947302923832251194129467785629378966594837818400449331301649932362040407015902837092438438823652458265498588590263445298451129253924748160196480354865008380925497630149713639442290671025502229862475483299110400906113432091940864333525375990069833135864092903206357564683773832306137018482878080160643616380141115291383515807666892380612700427861900437678402782554227594041015906440198471330949741405391588250752154739554811004580597781806557894788622071322291529244043710023548690798878957754201194833208595963429610182819170935681442275116994079983208726798139760905258183630634976929534837734914110983527516840176887033087466654910788164591336412857823787248880454649756440263617659121989273809707853865690458981865006678296002268433362139709301571331616364588049339447861317921053333740387062035701909710074218203538001867432055032854408281329976573520024833477068317503580654329908003341353454741808165542422800304091194244242011142038664644807976867861320992662588350959485872331353271333562407781403785689416218362163693002701752699054308303906435789866388072597631963419883565953603701825607182737887999618956695682655657901782167965572565283043313273847465759901412415694530684360682542136248540805889866537131745866961333237425097979420801047693667812474811351565866318146457727937439530643169263591625771350736143546740352334336643316208219347647439881112536683018304515594728021993739490182662689605541171925470803861569918229408855945929628115999355213850563494712367771130279872494164477499882715089332027046562727405601704043718096041347023092881503869091599781978067777947189005945074830948268992189030166623213241594171228308333968931005267174958091145938117907355569310133858230777784528836354443182931055443679586833519048748669454413807577590500902258558535260650305034144407160773566665627204383884596032198748223201586070868518846321545445912123792082135578590394484236316691990133374177583762427005340170881371648411875312892633668562953130482718149955464501699605381606978129685298077896471169618163374200636212768363377231011312863817784963119537197579286061101360591023402210199659711774422018661155952895990125518117834465581404203176449322940551212277045405367428577402375504563467169519616222009898757451909532039011577057062468133834942479218013755192873150609886858349315348820062502202565967513987388020376131921384725004646382081618094354223447971051072750199177885847920704793915146292458574926735114508436013240620890707511072462056930603236775264408463452894441442150995517655008466539776204285056158272618147796046996654817616684670634461152985505878708414553128450296391541129496774574498893459802187288510972389704325141946103472598844268857234340518406798657990355152754123338097891352786899391198381798128679463262741767024554266724021196803433818761814387698462243344213409353468292610502178896436498772999698978298861065742969740467489919857573686965783387419738023051289671048712985662038116129076217557056746756689775582805701541182343352343553377051309592659703018073138553025710575247406801052268682908124956944771739031031784860324183453158710359654197954596913623708219679552883335510143180995125413876491206705035156549757034493014298526499070865063728356777574725794981919252803984565661682232801904685296473451342621797490540133059588073351934081500267529209895149697751513252139168530184394417313454877420504177023348615365149933689055068826929622680164517864487114311732800538540762577992053314223130454370921352256347811503317269065850396480219836441690757463233311420434311260346478340860894074400850823728869723919967882122360267941356338277640941552775379789217647833149543986811229345902073981456129382177768451059658476764368811528588947279222712281140175366024015278682546177848856282972844887581887251505132353926613356927323131801533826734422263288769596161633101383510265241718617642709280489982819746733487215046686146559085712817440848899196359382073030392156843262706218332348669575808539238215723724673967353608239219481283998320975609850500273891942334727986832795152229608243476563212023139033066481644129314525478155503273597519963498813750512114206360356419150493187039395719185000505189656091256572884203088131994174874928901275168754730649796763704976206327735277569946306099094123442480363047164463779142895488281617905980169587184316662708075438629876000881761569850789357867768186486931059574950049278540509492605432466657407512973334641298997441819960025401075923726248749812591102679224242401386474765883541027354736277007139118405841438636593720469647591614858332799191368261627594994118323965533880442036728926925935080074860306829484976523910477049183433854390447834713175410380377981639049016368197673134890761197547672746042408100699769435417612232224102979174171312600847227566265148921900564345993553836534987231190371278284793532120335174443802285921565569618559621345493623875015296735956040696939732379278172750967347920805323295970209568506277923059888417593831182010543727386096298869976321725057187458448146543383163055219052763798426978193999555930266023657607380865540056465580787605791354808153581564622181384631449602599031486678319586920072110481621553171544596170762532778468206746693526214314606941524140796779430472650499752095300098951113919195746648692494905562988436064044357897331034523754387174049126486303201257111256479986831275165994634228145442438751494016580886912498414826720915032447604826851914888743689126312759656368197001510301142630781097931129295259574470694269389305934227086618934556848990863408039022677436044109884988779954660651255801177577574416972794332768663572856882806108713797056245561524560927638487757495521264788413481844956793780893492501521446200642253627076298767599266668256195191601064005105433275470953128306703456372946742937214906635258403278767702508167803350492187648044309896779048145241163812369959175354090104688317579552034872003801932088494621453219089442550461283377289983192882349530470620611336282263016638308057553976585759177791939248972526544614766672023944001061411614056077607550015009628247580982151517309572823986219805252550491449186095560462101113846510438613385206904685675399969664768370961644829186435871244072648351681688143149717018710744273629689431176511219688409304850323225920829427506377782612625688763092339914499682777265215403953732940497019524381460286612912700624641788323127729407468604243732982784895657281631612669891728281468254028555254051122681429776270346023321507398294636966768886375989376636991605706355562179123172725151703907481920972476435509284325589485451069226341638492343355149433074225273557298051741228711198811451056021491155065681851038487115117196730321093599234411809971609801646283307336325425943886013046547473145318618830774503074422364566293798831374201530909362739555951127870281255865998353842663549666872592855150272328222794689157734761780217718764816291916873974268598147767947060967286246949700816624274139407831840829947286962885022421346011090180841500034928280012932232455035967573475673801135774760113756364923566532695529530240284470494588786222807260550778881055452759448541889441251237614926549087242680777261084889607933336619093015070392436861908940106349242015002244164037849631022106625754709152064552474584884871301079337450355248455182688262447120552910608567709612515216980023143262264614218973826562619002853538148821257967780280221665504142426782789733289105400755500460893246872439850904554015284742996562298199711879714001060728210753453308574045511219189613954425863741376548432978410389857996948616234942449017310546839957551205244971541983599247118675045332491912901345595883606178475609332541282147424131872064625275254820760955031912727513149461806431357569716844178356744081553577049864082488671706129582203266984814591283003256236213477808879992333834658856968973328785105936291454797329403687193853487296531783457974997582244509155119760210765392836204840934363958615462788553097081225099809380383053639467385474358146730239029667748665697055725165844986898254028194703107400118872915660036563331057883253470423851567193863294234885326139961880633835212923802916659607805954133909116604733779244356011385499881768664441376134836983374409292013790972519774898601278002936280509675200190887583919976881398760718574604270948197570189227752189125451905965721454448692939689764255001409812118942804848839649949283954165071453601010513045669428919578919464694754714207234941288719684343049721682904799932132913769722046315700356427321199329361106749747115515757204755090274433949295353587472448883702428662815823930942417535889541894018299321652046061778467684990450941786901977349914036045273540870185267218248648417321366868956641677964498861369529793584338317621866988921805803738244961659726246348867899964779954566619386492519131306490122792492647558125116408570267205128358197529404596060674673048292806143388703548097209516239136628395869447973730317345968908444987691834362501965364817354240462314396850569794037044488471118018372909951954581081972697733456136706311577490415644175063832111633545005305285890535102874334380650737243343910185073226524820369492224153005156111138670043319446631366134180430382621586574394006706534380259939789765872215877436269376755956982576070220609627205882295618687819016031783666478450403417896786370151716152385871436671745131659549244893545334768970498696092147591131271579429953356904362634631455504665719408808658865699060695812382970615761579930640911086884687470061041375813919067542374492358450653046394335781279570776007881230637090813116582931508718224163391944984652246307956136103988745276588869963103980610481541608026951232466836799861714085613060812444745698843337248343034891084022716212976668292263983137337738510062411497738195695544717698095331204315616584344596041755536119744567150454694061855700595612791548098569005193494404545405053510758235862040710747336144604653688572743754616181334755652007524391847517257600737009049894783170353842433743275852308399241840700992807169726981951562730206458231321718971267226453344291270762586882726799939155137329430353715160967202078157663023225424461317573184848220489614190322133390689798866850689538576440899686810448221298198134295700943288080887216977803388131252029632337004659313901056412244747783140188731018274660633781901371489405304904346477771584340997738558441023894093039369190001575561670989832135415603188915577819442137891588760812028694205895443595851336025349425745195026402335130357980551886469667467975023665800463754276160086193248654357870948039323571435096562908276026380929177915487971240672075603300471793971866061137469928054462759974278493896591305137760723960576932216391895895219960097525715589580816414664037217827644313220540915207885664864991211390794626213904274933702445917618702004475125260753841945355537914019014095306852777835098038039923507699923027522965481626036703770265522029743612009691896355387761544231221653367570044173181572581894194030191227189436996704482220105771448762313760976933319794068200883573509873028412689704789400614741101573173995142438850137213269573147298218718636156037499629761562996969113954404423565259570923607113202269871468715182713682486274019867088562427238401683021662859801030498662059543322836926397957326689460490635812939519513200850650451962271280851248137162716860519913837992923863865761827405083431354997748165141423555648084847825450912080748869581685130660496351532140259796877196115795618733560206998673354468377299703972107181484501213431288137790328442770775039673627860692918296029073247730350249618265307905345178998017142954737692285089923327536439687948948024593704718520109988112584771933371203442242981611172910729122208873840364247289494236321720720295722716040348473302655478198248455212273895989307339311157102524509982149149992918640037063262811197366187297501460159693664011215939693147014866477309144586294188234768489451789473641764228745917007822363433711712030212981993506121152594252355897124630743559767529928371270903562437530961459389627438666365184782876857700625750039344913200093666261919064499875860118762289529264251290309452802597622572786381136755413845127393695434661943949615214736522295045229494979924409271267864311965094168779576435615377702416668709243739180250454091159848347026690709717471642849195815529786041604110900216063854229540171949841237242426615833961586076816364987349578263000653838835174011636468183226551750819504407461074071736543941954538513394167981926644644108772765760107327006734187172155908138446615934352983670162566815676501882638619167198799147562194081058604464598716900179646443591893363575881435092686066952684959304653035284599019948795726633240003597682190510270256887344315012838233253964729872861289746850306733329589562128911798695713707542133973523524500212756084147592244647403747133074697848876958079763907235725953778071157864494644025365661852773481078932942412815105000644994032501810111166528315941208923078402803677881679757911798404597175104535649394500483263486677106253576599793993791801724697235999859728671302351895814326302339683119656811259490415081666778665253683031730787996955352823283074290454121615486559683089142384993851568221739639002511255409139495909926339556415884627831184789013881361851352832538821714478918593364312763668169917214912499881694161376518542132878899888196008585146763552771343732925703478734106276450970921600224766738165214919186484337240958413200979910142789756885210162586571521680073368499493560398379913575652740332681127768877082215053336471019933707008825691441548775448015432662181221703601612117028878605912610930349904662688071729748733219855214735264546151212646380005679142497475843052378947089227138978514735166612364447510464459764365178882718851725335824911939266416989591782489158486047244172600575003165777055459002744906361693615790486869800104553981035569449528705884796632191838642325714076238265827723767663708833670281186467722999471825654188140238394549868593238137495119503047712049411682250920757523077467333241486949650211606257468033351546973658049962252615457554796360396561265770032633165033341093207055672261961265976431601554879592825895439141163258381709200179109387295295452248053779916623314005276729152751297288889339803463319603468896594740351263776283869687156563769659825846760365590705392053361044428234894886108166221282787990083974208427210573632379210474173728133395244866312415690486811477003382792537245181023029095726741858519291430301297324892829032525894728891412250047978669268713220941504947064647343114130980671091693357738537272245330753222914072643828649003833206224460617039942870368341085290158326685598256830905789488992813873163575378881026334624127843242909094203055500288845272612657745830528548482529850599729149097179786101793079624134674126351720083867832123860262866008851786887601892470200158818466727183075527239864494484361459314938823240999145930515356241090792601084707718855003728679476940613051930917316948396427902691021561624824117846571155253483716383314715417632115894480814097502830708290434915597401005582205628042077723122638365378900880406945564297049453696655596536304170098451460321313334264970139229508570225068298303666822425842384550482784917725744471866576567337882293976493109217362003319114626425055409295284503217687028550611532386866220303789302003027564233130818766754251438232410884155345995222876939676369543397751909258606920710808125010774428949674202449142800523705690796391220203106102587682505975457461804172214859517029001204116945234292869018220659459214029658366140108349992743880717485629524105955157100460020920730792972865545751275227326449655281158744877162944129321300582602291970550923348002077023538571178444056215545690082852563024416732141718100692660976349298493991521669594341548294205521541860500439621884972135471619714608085264088414836336205723261424167126589209233501087018111806911913217843019931429062483339558884902494097077322719043692037148894071272600624759109759118364186409528393979215357969564690685143667513794330288312784788319716802427302725721212405944343228754744839541818638775295580971903710384221374766156868249926150621761132206311976238368631059727993630179545567522304338940331507146191159818403182076442675341546403131725916652412413013072171138852893491268109285531769202688396112396999628586868856603179109802124914335243720896970236642107277071828639638000654508801258578283114818256185326225460069497227118745598048452046661352805721420413409630367071064853296272525217120498516770302322158778897421996370090256820131552581279397675667679341976801313757665937962037598202190171936197056363348597348311625613572554387040811918466418110633696518020262992901791671401208889772237406078589932719216179680611631724455169249262142107800663723721845893082646380574895932707042531601516171823363458812549652426306426526883130384782962681534402234933370073491652294348580144484724268259263606338941449113958912340120884986564761197635101524698086093023785144784633267194033126832539435637144729083697212214262908399407168371444709973685852960241493395748856982376153656783554430795777504599520698195901087590840950816271101898440635451204079807750125191036455342978595242966853690576161728929757295098041349138706113253797867857286127807652809160889036575566233842975039144356385238744411018955576734929230209786922529903310634217916884587507902051156384004854801163102212599357380311435830618663857896722529669314245699662672961186590477807051739006863594769914276821916686460906305832318312717471403861464112677817085869917338963042883452102456557008966624075921251627744972020061880448119025338826445518123040370844341552112075552967935123085728025029607416778269625949378132941213548390720634323504936606670278429967913205583080107866027157507275120113593722391628186133341864193403674015589950635799711140670965868962884255976822096077611696451429822129566744105638073561005576578352978043725141686525822869682118289943392185353152550162077988851133392043954257469662909876716224496498118071154925729949264922450521246950550618728026462042784396249477859317173130881150871074504695874268563239596022238149597356462719107180613946519018679657316814801468512120823864469016761350006873187779635972744751869471689269451231355587974890368952340489314918919341057569610118593434795680742990043834208336939649197458087848019171807240508448073058520358715465885866046475942089007962723400765781399456769797173547034603427278180218034954089754729680756653536208620994952569484430012725121740338679465059994771853311779880111495939570495580190472925022348282333550741979410065157380900886744859170878168975724949380947145030675182734492665746778207334871709570556674683273522182973066391123869006347453558363899241527495240382233730980263224218133133268352221689984811066874009879886574043227469466605450449685388451186577412783525461370690195204588241437910974712990298631235377481964928201789152241659913210164701119905227133641596828710984436758282754609807402645904418302287274513513763071318238946093849943488663464787169158642802629901401542489829992459492605856078865284704012096468302443578335102528202114064365898151185613394257663614432219334147080847748670243109507718410158109582936358320318167299448520813536318002806667437710313576221081337678103878548685555729948791436832991382589980106401207513532176652259418069468618165432572549046987281818796533623330691183143541992745658974438719857687912417565803741682539264713031639958088056015950727522468047581575502821603347282974851883104936920561563230246960445086457817593216594442574621503375827588391245878082697457307159247145739962439441525053647390925010575928762821232604433185903793527729353739522838475532716382135233627580450475417392789192574767492473125921606637146742344263666653116602697378198838454614103252023112369523064841285850074035743420972894952840117279780582327820855503112989268343201118236297951249980938623414759274719672198196061015794351758837176378330331691982096884767493731940599277637634915791033497491229283114367003232372351290894718574797290073947992501375785332390139159540543396870690671859605013607885653668151099951660619017143667156780943615525028860487489612551853096179112335425795877795709085192135109016303279634947824658707815375992089560086624095827425153076297460730956500128435629605338554611152723253455638879441994872713454411577077342615256186537863008453035053719861495633511784090323722804727624589236853293270151478459135118457690974056206996548085811278859008855573053001124283247425099179962743691093366834476791738480338218112212858329115087847689339993883023447705829323736680785313114220407594179484713240377685693559873049415080357351924587711268155652947276161182682296270869285726069092722981573598095575699801970523017447487713554103404766004094961811131649173757740436749366499524528761446790470965903112403329762950287835711693451436784673937392442040428037352942025656258014728415164981679191516354918517087524596062368976526193757428781977789010942965285830224884929224731382947735026309471653900683549344992694483886669569958027518259806446704655266271948913443375930775895691950234451458911065275913847703294508929422558593471107603516460212594584326904802978320419731442115411877566682942293633445207517153376809372098588061853811645293075188964560997916846489069908009735613587221477884812564308447900530909611779485309711689505998331820466121660326643875820202774685839487891324021936233789613977236111731764190557941259436444538488914438181883414894724808508294827352155203816156291259851745109458301332971506617999706945287014612458367711196518654161831199944016707588253517439943741554975853978480605549415045525345666935540218755891371316543751689904157905193729133818693219323866829283712220525856450667203590206161707213172515358454640323014205930650834726992494126319266162304141255478129195670087190696012901199900720129450693876326768474194896991623372698823230933180246354240732902789434470854747095239679383169295957682758614814085405059621170085460997329101147169635820685686820200401756351601510295049976834184747615908655788421376020212990352508015158448635160687714008844879127074185553569984768283454930127868276137410122793281576798238755772155225649268662281308850160904383093270716938063668939968102109539681018948738259280769433421825170668825129572773073376979932381377476130395436186122751039608070561522329818462320098184684322523017412848493937162073691674142407736762178276858707420587972196923353824566592915654199200945141386769667159326171678809856508969195999555078346200502721355871423718610627982546778514508244324538200168730644787177508180775841715705944756879089479204498194021134184418497571889784358068195330551023569313895107779750364523199454272590328261598173805924168617131134003425707749540911151327706299411426560960442218473098124240547672713076060027588800643581726211267415969360237997234514224016051094590310690216401048111009023661847103189434847391642418423630809752154536542349769946559352245419710821665565872790990165585078059586428308898627298455176124735262006322933415928800381920714562236859878812309516694827357068915076739000552201069857742326590436363236350326044751721228841894586960463259804003148169293541742666265464673893989115268493134035502311831776786428047911972376241306702060624730724676133826253856951024746931424908337226647782193823127748736909060451726695594657042419847631045006865086139882638542346887594533483150701012502755301507611615373602878196831092626225296964988470232641070291853287099068004558521890717848655821534117497592499775407440364265962992593456166794382965276567119993634354488725621538907694294142753596614894770353366366133140644761586258836965411793964788584946828946936376076154764545416672741526352762488874703959204865346128857749608220607443565585246567973784908930230350301006846160844133901268259451520473549248898231823147336764831969680513892037957696313187134686645880670974613209122807091690176650276221200068642083529206028739003179619145713737656594663384139327001202677012219751056398667854959574066317632866687763581949955574892308107802711399345534291951542019400721819151665600313284436721234621376502335849302531283375631334765002162574542922519665068386753006873518959771547156183464068707914925610600439626891951047817977837568456990028516820364650982932945309497414974905455021101805755890049119207878750375403197950347371650506117278426835382492468595433517327308744599660781151619205558606129774372181471294517217124044426608243023857606023452342734700224884838944050921667652645849298953731374078831672097741383688953469756508582407148914621319732461062863812838219166954438386587872779460130475969601608467538535346221819685434503889812917898240334291347605886633532356565183213857618494072290837117213106531387674448568888313431644494936504248762218223648641217077304996720019705563413917493914898629357010483219662542299558695841474960715372757638472128130129102970772231845762436117318831873014825173749494810407070726389792083697608684391785297939081067014547644785600927699024366968628726515992584009684459069797433899169757290532446922395303719401723838775355156916889752412322820605961871308023983055336509975222705453265283715071753151260905973432935906406343517749176455441039411378816419529240353075354040229810465578545312293192531208958907992949487601899569203294397627107928713251324129181829081101649474741204866846949402746647450693055701096229419130844098394182449530242766546106314445006654868552130340874859458545083730193661812602760802022069824796085520562385890979097535567891150823916587025863206413126468538035109558074654679931677122256702402473392318506675188335489611864275532243550228983152352620008848333393235663274513312248119131884094609887183151856357517053698518257700333231931893346837771812827839696228450282574516024023773236282612921859799744141146322998639503574261075879221834307566654649003048730172281817832651212379966909580179133606846061467406585901815258768382337191027198645344446539962109794283863619198219465491155808323884710449637015709953965911920873906659763902245923470010565869269447668275681506322915219038774240295427591959651588337049177369262582232169466487473856495825218692486419552699121882492453519631517994652928263362861085249251988569045362116375240467904048759440681424471358282534379512788332458312401840226013312874633623920509877231235018701007009817678536672483242270788312316936756136507920459625403701246126429714726648392414486754447121629331369774681662555282938491569044444145213024254078831338866916370179144761182425349220023029296020710576403032278314881190113983760266670858640041288051038688821157350170073663483817024438480730665067997067928665624327998923004803530704211206894987390203791351638694387748888866093246303194314991031748350997483989880211150326986951344637355449190062243502415748958466937310810004146745147308415607697501681867566016701757311020175572934306972753932311302186598227754393447733608596193700934438410505807297562688536525382681724642913383432875357964975261874519069122930294912738512222491337538699052727184443158060564135620574800236462785999113188712819755214844620159871080425097785924616522691617223644284428431118848651806692339261771260857662292661758952701140424765668614460088972704272678003027851408018447434463669927418625691909104193691603414646989270582668636488487351253764115150526480932131723536894798686149195769775051733567910256190949649911599063036242730737531474780512032870910725947452029368019646433894248930678012584396866874786457947717961490110493878965422770310615760080393147243756825617034462914358441100502181603663864741905893573936667768172515000944105517865125175944845113990962943262294267308153395637209919485748830725786075933867019236698394874579573966529181936546666066409295124764333257564227636842231109910974909869992585861952702264871465348053727976791018707780001301417282640270102006507150444320310031109166004615393400425567023487788896967557184222577444373800497787364807022822012558079559887531465548444148055173953427654785376899722045256502582820449820809026027053873250256287094672861285906536640073492724940603342937463958376723193643223027158593748790684494638173700462022030355990330459140908874261117198951917860966427720298723130912512809248487407964254218941230829986661843252456235103883275042754078780696322637138470555550500227423823856912005651322104753192403118963927333703511653318519977521523764507661589360494150763256521627317325858417261846459533884441611024150339345019184016378620832583192588631969730806936360046146073653870393540445765066829883954991710082357676214266225556698430159871497925551149069302588679728847226411448332038521305072779488228611556991601625918501206645515833969172178626856497204898361186143574232943848212994180424097051483881357198072358367956609678604147591839212154836773161411177967839019624109077344981401583904051761784103234253010773895961861937623005119462993086613050255090504514062723969489866472834096598111399176676178053414025782958676647949249916263946602773396651080898830240023317272137120752071014033933243479073207347211921228290163681208515584097032049725225167324628478748691625351943795211463781928819763822109576290479793060848157413077336011360323044459687285535544339551294812445299185967099665322249879967049347532061674006174436634671556657499056201474927162672755750437977005191515194924732500491559110608965487303406772416867740113032326466465371432153679580104853697365324338992696246893667502886137607276392889699163856885350197097428140106797292843270937872771330193491966308736826283737383575734232784834669296846062876027531278509904266397616076224040419244368159513932955370475458801817011813814450849821539396417512436229164397116998508147535561697364005021495846673447404803674545231217217822867588453165629191230361167058783572748520730744108003466883294564796092476858067188708805758006045338014956581806930464780621741218010462240958090822414214395756425918985892719839965713099241184745260951259103648049336846357792842244994603471740794657072049679001358461655491969775115691468129425158645452191949675529200904764883951691295828011371526368560769525536931373917746709731723815660132025756909805587717323028504668687211922983039488090560267669334224014960964403134786909553154341034021753767695568186023828025250613880525760069176873199542020796375293201436050277388053135328197607313030473864200980016300026427905086563229027465590962919516194809133819287189635014686730692183321197795107147400252346702812046395248601293726241039518064990060688919613540897770282032942941945502127413180982219258602861944641889731477302259580703201854194382158152216907656757369893067927438875760160877743235546899615937931530041880625126771602898936889338711462087852540004013743805203266572300002873532594781545613040124859236267584080616323411982397516994331080945464833657740310215625386171049837845002957664851602833394893148203239067323045494595951833751650879387714844048318118722523942785878328304939400676136356322056389191633262441702749648625934092214093376524332957261510134349201515014378989419050329138418280124815487879667115937061009659022314990212384619392884624463386375044281650838458152500287044687957331027948048745240827624299151787226970330831282187133030323306284664716704448443603756173009455676819164368925634251085061815686129493418728304151507997162802219716352856870119606773666307145851793201804418387449718240533326811236622906061882162812595068351756849276449801169180955270756776278852604061840056585521454284333334930828881495104364394344028002390633230277844044115819306328689327553929632377718220169609061861162381432405879923401619280471770341987225290962649429726139152359211500209350603906747395076681903978539008075343823895872064804336746108126034102639663634317305073673651930804980651392782670386699397536947604007896329519472274550680501584501883462069505930292948012067390440727527263121629045902589984228655508140318377306541594846533016400136076504761718001245209545314479314988745451112988070082437680035740207952082384962778194573598425053227580908802470582478608158881185277480572772707139731545465516422071227748304797587885975035820079294371280701459252673219322736555264455247975963789261685192465588291905737848278643376463994700878349346433920506011574724498480304802763771869019056987554781548257981577529928548342498965502883846187669661315604259897090235705997731219755411389590148802872598134863730967393056885561295217086160234938850879380373407940777047005904443046158207270072472882081750863287199723174080026383124797729092410935530220932349476929536399704862014919292263141704846086071460877233318587731856906337664850706884263734753591257925811012746457679606830242107502135632763583722980582222824102189564032161734395110921612069099964698379794163826197458819470532937789407289143282794844286289487143025388737865068464725937176581917736600836379738156898395827262739361390311611115112810836746183323828846518724578931139696277081521358632462901279290806431317786464743759957245976139009129844007880996587735339935543775651234026947073949898634648256953297416815953756632532138415813102924853730198770756234232505215523824893961559812261260833159324376493465253100718008437102120357449020578866844882505506491499879221030247516549094145420668013617449649069728732573392867592742323344243284245575151638806878643132702620648541925141457587816003837527424708750382344834749060164824068455577627459524162509097299934686848698129110728780847239567154892490520200584671547393584320207427898739525923520103779402188717747064723740319125669001384551770414648839619016113391050732808298870214022402620794372274230591385008917928125756464934606906239660639361320948953933602402545615472889241539121606877808510100664801718758016039362702751983561143832334444448921835535460382241658469379208566665499200573694606135821617802109577407549035610051826973476443512693269711067570636356612672912747384415561718416553131227586361074039891529102066030998425960693019461528474015823170829289396401130627063069588329123431943085525442901286765317305132265088873963425283706015793140448357158074188153485394551696035186562751445700580332048721464151053347105813032248878595691936558547989613619310443307730693245672918163593533713423483489299114596005153062323013374228452165368863929032459911407984990866338577336880465085576005828076049031377455515293213402480168971368090635370668618807192875853322351894223290374615999889573516048935726856429467289506838464155208248895682085322805081376889989655070429007835168143740676586004957489471187510459125653152584801547019217599405922307956099806630443200914646993693999627477167280075426471316010364160610074070508485476800925509590029759359613120781689185154954366628786286863606244956745571193784237973942644203816530737094829394029695129178424634920441098475786733116171254571150403715151445962569103795845776996899661573977974284280108868031794583076751718168594384513833846118655301637965291367291881781205011598238557979717384869421548602848812858235192627181649475147596187344519814295104430211486551337828755212150158926249474241699274605994870514110060280338685849874853714589629176529358591573218698052822163452473453068528393232285480368085152998614905298312392961707522986849943811712116519236814269273281413640542835705559782495101918226717636896678230881860786487259225389598419655742890410830697581553532389575241279412481794213639912322893562649748928377533879665021473125079612116370008616695027009584982594152923386881834938962293143065985845759291525370495321392153885655952936888385234160631415567133698534441098284464725887793965537664768774750293614605568045557071901985998991054945842092851728529718930532270254085536556602226552286675466099164309927239300866559343702910924323589936296945981926510334841628195077375649235466925764955518817786207547513650274037913693865334047020268354052553318051158800246287993057466897364275448826435740338325972404105582319479982863922818841441489361607907208261316066451384054497901857656475973463978654332493270651968346686007422756121381764401436999666334629788114513008213753308991115924769768479937666695165013547974074826252383129666460536181600327987285347882212715870825722418626083855254397651517073963009917950017235153638222161834606948997851074609234270320442706858521669161563055588196887524649432406707657328273530302838806315391344890820776581430157488017785596590233999514961264721033066205974979439028036917270281793966529701714096194863390475486401531125923966804244791892720183185690057693675641592608381510944106877734122809388211639360187676963794281538364032585901385598418817612023376904518669046135408250353077146251763801466127094901914191107792584955108101438039512533666413349225465465074048761982085758869280624456870654843616012033978838363858225073483749090047665428139146691388029235525820457800824605736574809323927525703596292251485047398582214045562987657951628196675815432069063205154654976338144804037104546178437345502867403379321628966639298153815337172023118332995089763275396304443919650675033781463646089678787547827091253151226915428940397561075528967848250874769212594962165682372827831952242368971810547883898483541085165760485682417364929423058218676548551613837908190959420107809117307627402643001439403007739682495036365683137496181517122762818895199419588782428823172497948594171394808201481240610596813783177292327791352584394194477331789572176815738867336687356890652060065505613288673586406943092645713090037174521917132097856994152208198055973820678985183744985695842985983451673391529467831813660916138034998082376157891173367158321230668693365044005754060914140209965078491035335306316947884668376480251343327210862941040034582373459569660777405411161192658163485063563261224704364573947834525353603579337267620049615384725986133395767783049095943881443203884708916603588980737712214439559318855901388922315751566483245468525456315064660062904809908832609969774683807702457132381248459870339344389201034213779501551631410193036790338708836031048820254435341198705396083633905074189993947206394541629963661717718726600409945810604822667417968034565859708476885333084736224906027041738585806724585380874298099634958627725589808135638442888409982176292301652985727619367858900853890082126278084533637753581650605633359027494811097137994340649903858858348006663289464782444919057683485057344080509822051149177373006470487133330389224619196878723538755955451522669215537613242572741936132352788809858091476388359376998713689283574485481793325436322302423193573556762964678970224411710944389351188259066645293349666230998649210446229717353162553505939898964770242377041238744387394448987608890712436781701660466476500173616431607021399805972806194813635591304169001985874338446807869837263679780600727161558858860246650086153468494848449513356391832632311801501108779263634062653134902876675941394874692258121892516799015707718636034873808907660404115087010221042170928912732592792875304093327506596323524576996572182359558891432254157622272827567049332486885350229175163384700888953139109182459650937991732304230206172445096366290540993400014338605577326394549549965983172586568700368873817859006200492512126711193382465061671855131359566734678895028902256208767448679898619171827991488566852341135631705808376941716445447788086938007271078331181514688278474436914797594228976943995136957847464492155544386341463868563966624652507254559298375125706261310916979142507316020405460527827029057685568220278666427055571722025171200261713381349909525846059244391912857540263413531013583365040687941813801197725472990828007513312442735770292167125239894775427062792213167900955013167218750328085582825339248979998634669085767985471512930039604232265089357896139111983157927877490686489202986135238937540286961340252372220760486148298267876252597727130950859175595972853665836579792086961211418975319947002575976166808209560585527246351881112628897537842674433167133694416966572641961017178123254626294634226771109451477271650469021159977261906031302173440083874751747381158041931487542985212075450326857581884391987518759469762614521820578392252346003289092660592000835976424021161258101541340924390308720020097898098532944308441607019986566423387750240623374086087104849645997512523731193357807800877866668734575633576604248562084202956758128638347329716128302895077384178597460778238118148494815654280621981760493447871645597150292065185418575187730721217900307733786088232020452561441490337903989829441571343548811686147287732627748416676832869872868810090658220845598888698753351428401670971693188750052428235052542598547492954936072871854890360446541356744589932597888731566879197175105266951129621776975521064920553096475706688521735892077502086696937873793595625440343266266597257672450954356550099233813542429958738517917145490908470798650626681906267905674001993913873622915401781546140024810987846928504843322881373832031918446571196777900094262778823894724103512261207033971078562408452906277494065186178763276209787516227160479960715461762040258000531924604741227643176209511390718852594863387902619827339945599917520431281411652541205575690494977509257245571886668898233316715149012650254343417687490504658748353381377679193136268275124529383478893993260597208397924918250471374310464853785993355487102432509197135216496619146798765353309536420177731628988085369694126634830193562521860459433166498719193486657768080104394501793011652419395888432549427789259867499984321449779989184143241238607493064497358231593929929589496056435192033837777578658595260221344534365777412404574809724842727948063855419716663606266211169898781965951063695458470608549375289294496184357716053925229414947056239753671489716377348065277224611254768254183795078675545607451116004875161759887836414278801343839157590157037319787821701942761991531552807136738099748041734603662445490891198290673159204258244828180169505929222360664558826387962652509254687183921823344016487150123768779798809163624227950505407208978123053814754240685281106248443583853271592540151551937921795713767111355988246920824699432367795511016563029399756176341160323575775083602934627403245757358119868969751978650203225023258456816871817768744655827124462437156580358151805905359648400909168314718520821694577774571523160581149139014015848067511319708322814280477307705960068325776521214989974802853807867921492779970621073354014413827544154224068100320226976279018686934303974113443579993757656182875512406195376676311381949045107098060697612987630551847846623538963876506933115448811637850843905126250034678255537113315736282497989673022114992406778268624930693565957813960989048557633632491395965056005052913822759045697476173314075782947736679912621970692613150758891376331061248723183470227949263209652055402529416339132471161974349841122494880313455097088273337464411273071217380226417799305721890966991326688070722294072193457974272233024713076392268906204894417258515683318711792145090545323957072845928480477044099317767134052065619071801516525626882365667136105424465256890842917413392904280592641944545593304052256613570445565950587662173292114613772579278454744388762633865405275472602059646502770064973242951100482066124970634986499556797508462531551577392555942381174326668734146071224434840280226906108869875864781744260040332921127621095125614367558057318351958771676354996146009723279485969706765014133151408472311192578836347129775766561983489370607309161711980564758040766350106783188868311450829268053272296870844028494745109732438978868948185634384323641009836088153711917691445803560699166897700133738405165455980788387842708455342847342114221323182212730047062337113722174514007217568508346848629561416282287874309360933015601172957301661795976264222826881970590035811698157406420829547915125796199561046571467300332724971423588740751384816714651059479057368365590956449723376568468891295713060856378735344375969327882790533392400101129582131033666554639611681243001831342407610852255416118158537960194181452673128764293725810242715317830115209164745949354422501257786841195445227111750050535870340789052983128433536412489135354920684403967502331497390551306886954793555201538370917045425171489186742328546159215669833435789752224080041784811995276982827290160223194261168332420882456133241270378537555049580888647689528159350713614559425810292412177446947623688254460456298627113576830164200412310381737616353139059689111813339971788466858248686452810413353295130839439736843881864489929142700955913132370875706724458271809773026847456318964913410172597387577031864430389653132829709599005627518154186126868479129040119334107265883062965271047771526394742485195289088281481055187029106299525273581875999870622623329768404308727076707275312020891781484746059831308276039497629055201834920770910535241176972204173085480994236346110324796961575180045549204250776395813895431549543635017840687981106352639894335688234861278083783334766490308828965964718778311957421495076239747961688602582929970388221459407495308568778664934377932414119883062073158140687895283455574621009978826798148459869369334894995049737180958703647894678992688811385593427782956021581498807596306767882854088750525706209089879050620487049171156527245909601773464326683285540271158664912354976252967466928989996990930344081747238886452081312977143472330197946795989164541109795316254496027733369068861682727636674568431468490488661564753555177846980012856309708275182323838714816481372050328639553968102319662155737923324952433030847260504581799524820907838625076954660453564446019733852143709159730421856430236228424509087208730535477210613931385121292122291134449426747215337457661316189827273188650614935760205999620776862391456921281761898429404416192933137476659507062549297930522078889185761599775724159128386626143060930036271474312598383020565542037803642553472576749323181628990866990667158753880901553777762073721797075089318684257380364338302133271332839202330553018423279488845248980989432974432103216813524857170205575925504252897469506785009441554071070501773858969636964888808064498056341197389415036738465022046382213047888197883502565422547605868404314658744869628759763137299277501484495752951685331034762023595546170730784176029909432638720378033184356039265916036984337729280455749844354723734133714428174691068555152008351272117601929744904048667737979259618521327398903040568382613110629963022958930712954497827858757132487681480781762557243020585570374209966860636911523678154573822129847281013510296929450515917141368465089178019474196484710820817489389693277184479107515927396085973664936408855322999874781689483540401137779389651416643696711895552476839769372100647441586573770610222097587756820862135655528857725519502178195093497210381347024004867961632161709719721594332780672306355593546398569898736195355075279276179861636074717274133648565890142514258176413213156506728611189674720214753846680784718802145559427071497557357111814765505748206871503537052223490935976505993674495338566678461682070564755416556554264175551166240528352918874322970174543405127991652885214731367297113185783366619080845709555077553869549619292914814717245704760857015060550518621505298668159185236586212453022318847514792193874698386160016552267999982979043244293734730541656902092664369440810111854352133943658673062682271750909448272703562066520657733890728170220702304099816651812705647312807325483221776296833020641632372583151289066550716340191110897741825226335786562251333446257281111300694551209236344089885187425985476113458040474614047344390022048969468537367442040900317016186494430714958845812691869900019082393407644418992109368380574997545729019748511241313545692977549464716628433059624582494983242919487406305553322944944187960387238331165571575557805289403328506271357540117837067134538904301464923016829180353196346287375888305874526698746913720366734774620545669896887115235831589270723814223009258457196849018751116773312270279975099995990690747994413206221534997467011927398935236406361975409152525571618922566181607814230757136925082493512795091289432318980577465728093129115164139057401638016187606947147348157840156484861296653702595414975951637398111528172622049732546745046061287319224142848271369504522412500328843258441093646917186191921801659296507261358466957432736664967341581124975531440961894067758925100037702047056195178462173052574229293872397532798762242444482403000056868983452808435032716382286383936760375634772179767336649792473323742908552816585107578393147259692794067619619603236117660014962578485475684400112171325253565738674028015668285834250982938192818567403564780111727268191458546075321149703727199787919493615378506346370142741277369384174977491939334856628317719984732119631143187690628175062216965680775204085791752278345052706902384770765716627108218682589277699264357696369503126407282281468432984113788371029670026469613638213490065001691601103574199565046433196796019055694405114680776886240854159567020910535095631159418106935899531812415042942245657053369738599075746108522414529697363373725104261624574429256429056193789056631323856361893576014049972473507889294209174753593501927489333782537226053331282222378710599817877854330100314304817331438112242701873098137876163723886970410853083604142426105928471304143652188195383246197213596823878066028914541675547266013120590085813465312681453284098924285236862014867527880777647895391754839193333925411324393912603772188957529823220522982732311255023347546009205130472046957932616005221379603662537872551655365569175329070463246560081549386848479497516440032715864223062484990579563212845370520947481273176772352789193152441265874044259227685404805854889156850246944365347815612607609336633012562890503131997198725530011010504930323105651904599658856807666523942023823978921345863271193413446334063535910521697989834656811192445451649295273211773084962651315445603417161270637222303698249013493935797474927101506562183809589489719217382489239039584568812137869764210477900209286377379434965300235894864967858026689986577576286369368483037179155802852904537554045424231979712325683081152170226587835642134851940818322528488929553746249713983773260431520582840890067080883057557059228124953424454176212979752298324161732398760296805101803991672429882752449439458714689765229059321199128455574781195475518533112903725717791300507165277935510987375888172620592933278261887996776991003401369671956411178024527521619052477108311897775682291717326003697273886681866798070870388010996612905542323395750658308459598140075365672786748950846672619574137203147972921732352784766827179038050606509536238992700323402754742426654070957433714461132675493421268234011790451963119159847790540608060419220247222114938864093850386996585985368006631021752380766193160320987386387138915485555941488094064536275462595626329959185899454552869049965528297974658456070709080071506881547916012681849617149241177907855637861350438094739580626153729640761701452559121414081545903434897317228486723497564152468900763832529500820713357751049815336053391173646752067872698981850181255288789390887197753165451716610699708431207417116234316897622980775663552250217820222288458402476004078730904533731085485981366989671010850023022652367951338123245611175262499564575029904339677139789895591436733314035267068206268866362375032592715904443523012659985018211858006090036109661582294674433084364809269792817060896327385203841238721950948542364159761325039820143071787725655901513054418793203105309572085860785890549932915396530332440282446273397786854242269361310119033830515969805422419877818342348006968146798910715636624678393231631683717135487500218152930616633285482621937968332739721352518167274941645429301181843756923328190757920415475809858357962213158051913156939972883005222146802619075838538826478236853265669440928247501305194004409721869786321184542191689485163370275122730845539965387203869483590660952343535500621665575811765391772615055554193239380979554470219791596555234338122048316351141592258692667820448750176829858399429438121627454319152677407511268342951639360329516028834645204268948884679678309135741319938551499311729515081284479789842896162629138163980555063343792121996827803572124186154022521554290314677884442746920999812774690259758545363176981284695130524022149620714490019250063004788809676995253225607055412935304723204068540790987628159263810755895187631845148106727046288419737542150226472648041457675198271610369713552739317476519534979475474773739473441819135719217250555718500739805148303661602161248181546303304056776135637644318211908839539716585837452300959522019382632775503954036046810173936344457103299806088446919158090769692116166468832517995621634518755116456750520370574967821143014951095781733507552467703801995487895331738101292522145440214574615582932560913622946301828522387559891321667522721501549617134609013401578772597512648911612567103433121366204119484642302940241850034287251895204947825367085926045204203230368520245684252668969805961955235349353112145350726187469647697151142738246025558588001876079693802330119035272157756488720410805285950308019179198353765197914017643598914321892714498388306633975910346532612128880394392073221036187454865487963859783829927299352400205390922283931086411650031015374618416807186387518644175247820202016549002866075070931068476475979760362786402493712992073755051395794589824034900893734694387924082565103457234727976768444506281406627826749282311276292150137099152840280596493275752318865058967284176238509441765163853545065924724804830533711492915335376625144298184306288986909181899304983155425205302334483895654065388061423125979049897447134579219998241188759041181550375543089415945857925339991642073924524310835153450038308542221066562892333841603982618828485766558185325151597979824917173991990488016988646850711997790338574192188846092569000212150099752116742627041216668841074914480405971701501321231487896923491623697523425412729384595424796628498240523495523402142077504909817153021787535674412040279260996267722453571777947626794600667006938681104279038195580366281490741903766269653768138589272127254196335318965030898050165698370454997475717088381205636420520034227303889244273311413464144476075002334390764141477188073436743182283119788491223271960173411452675320444129182133665806656998783299642682235187470088591749676207798350466871521140283120271697950026036149999151800062139873193941203635493863985456591633778932006386178582472442930322518504007055910497841218995581478557733999119295098463140065643250047111142160660961126065164860105312473767507184334430039798673915852331836938618343235075866976080289072390346083907806006427323477267673350904802808610482958611438253133916163007528827766876890361804225451005960654281355168842918127365376420268518244627843236578195260012132334270259458296492524892502428259155012936809394453293460339123211247208001563592509417008645080089527067767073560856158456739491346981895070835819536324922339215939075292191225340231799210653580959396602766645314502063774761802828686167293475827166661602032214801503310338249862504161316985261027516961094331461295287352017176979932702395985984111497976817770770862444477488851379662803192298366839915161191772297818810396509615155925411283663052114753228746071921145502688360013166098279956918775156947093642530105419671181652858293680479670664890054697071008021577806930317687839163726542671100055775572472419352105727081433315247047429908829742992925045629377847743618345343676389369800920775008535009280257727125069938224900959881531256787927085009105404567458424307966464716168851197943801753787398241738915986746240606506642887729554747513736842057058423262749515945040151619992188112612347317176441774745940649620982055544597408005023698411919313271917852285198729487572187523073831444043245350935678820405917073252914941632891076211733968669881590657548485384444380862181334861986989683344127430411494580443013778676691777636739707542332571898708348517306002487825232441092864460940925810531821264817534400325269846935179253155296301580671067367059135088292110204515195165806426911035658924880591633710961919430186112223251326385103733537788345164920861784797608739691460111521754306351900242558526829847719558469231214634806539104428041959075933592808025609000856336087799834979606969470006970347927396667847063597729456250079309401545383010365952449350866918316290913067732292428646568644479879302762208563528846872894655178142067725500731237645600519281586138253356290077492474057250069797943455596427626417428248404940775975832795104507692871448629940454961174677789542295602993182606445243254474735196686343439330295569796168421737738244651541523665789203670829146994598161980264794536784145525634628890442716122775650244852173305978892778460942094472192026873630778660060901135238951517669707451680955725926813379497431685384853192596639505393485163588267742667708420081361674805149128273712324554768853020427890411509279244605880453712426285721250840997815923903970987920815437603325789815770859837460395898744996646346091786813300698266483710300850403251196122275489347142358492915919357273990788887307290798796083212856085559126445669573495116309367290793453321185044334796798835917559170491966477487366436411187704042294363291882083876897742949366382194985646047644713549571078930266340230362293042995830332945648342711089396756744483772613759512543456368196165746412599323998738168117877817906085717387343928636928704147888156440871064848446291374263072385816002336053270251695219853186677720052275238605391325496749400736298006490275384099295712111628176264420882675336644090405155707846992622824861238299226705693748150502582645364536203343464134042759148064538386758870070278682110643845012715834843643397822092733658610934368316550214386955833676304305725646741896619829863772439259680928033210436366773004666467870154898846342261437346565703408749237197756339711748683144328517905887185885303094942987493204294671472015233537008045586344523693025056452298888435328071453519427284436223354842358426510013651155649870887256898591935883230440094599524891730549980173063324562504987288710690144954161277091986996040944015610314013683722799973363700024040398377007887733569081378162421471447422437997479601089873627815696428932652358446477311569205374012695043129516610314091269261966633041221125675221490172835780182913595123617087731374287109379858916975062043638095335234253734932828266103194562955750854786534941137171933400043415396593639495531408975669329497073862421776750113497117246209538596627766250778186269418720197687617527661887177067924864198656452601601698234849890784714438973544335070068389110495571497829730716773576022731623230634698074835429095145334949013900894546680556437908793852109362951703189388499090393086617145663318624062938889915554621357179828502669052399942203594943919536590141161655876102815783324667804924638071872141000185205416328295049101762446573578131259481785356879310953232961223481572191889046022058734336939875719379605436539614471768354199672724283657183842573167862401932185082269663503170661029381546359169814329352785641099291389573761200606886123304847730848315205799509773429120458756890274780369593878307702364147329884473198762906257288580278676969369376902713702335886119788340128631055372755499349583209936868883503715278622349433480122569572067963547358637175971420869067649519716726246677336963788307682731225840900717796638395029533388094053302606990073639479006905312608945319572018428983939117619248052238787920410291752166262833316701001362727383413998585930211544299745267613757454249385007886806819137393543119064977941486640997589756481397764796647003828332990589746813939547484556891149491467861378814559971792053292552397611964618142083927017251323420041915524431360295347155085429492825108067688522318435919923843189514699073797823987383305612980779283398684142079825832960024335949770611737310494743887841792898551319749896884663712045131340047527239982862508798518789663785580150611098663655920497851749941916182503974390183989827189994692420241779048539128233322212747625737069183782425485820392261852530794804790293104890479013378270328946693419137857451399978664990466063573713310242150764726128021035839826637065693553655427102942247517080270080651538565932657200492348843266853696130363416260681945258296147343259042512432030404830718060805619205610142595714796097551148276568484452154524591184502959902215098853798402774921586537869869654841852081137367763076497688358943820560215515500743910944215450180728144753194187551527357403144721695003731813528443240836464238732026728647292506452581417881931357584495343867642546578285942017125495019874942885443307257099764644591759371753231940197871357131295550085507859896570919848260554374087662256700625699890781735165208948601740645094229205544940865277809884018724853599471055333264993596353669232230942285482797366061965040799464171316139877454838141062310524166971114961795700053394335065995067961675303861754414588737632616060229091445206553335513741630678580151574478155953327913706429074028635266182690080342725395652467693539483883607641845102341075826693607376966893757709698026123045382937650755426010172406182886670502399452135337710986014885858983565338449710001851034028467962365044753661758678854912216216769812094737091310770433494389228083490107634932678906254242393884734115118326420597669448633685003336370341282327250487508027753215612768262222073850329156682207933013165534746896977306910523555992174429172451638094782599529952114067131381032746631482326792520036949916588494847073988035039397865482839621369997129538499930263933838632099417486868621473959341986305949089334588884795715200998141357532047725072656215635379242949273084944529007048955565283155856970622969858176374960517038579311867996188989390010336585361696763307036695038186971803863782436922705194521781816104333055353333044699479333578742430207741119523499545823278840033799467745834774223743868825802846167042660244420195405820801081884033930556443430793753715401039452219288511965578710679800460944994177994328161094335659725361690893289771789582017380862609734957452445499701424944603160189692932976436212588729705574392495398954253468105055102074070414478434191763163856122625006091214225378883125743165845601815430329021086497656869399276374941332123581804576686975546384567304121005722040667734678558062856430291092487222241065239966178668399226501034940536096042353926595889384969020812094076719650653664798431025908844628167139067155140580869799475541426840288836492136318128835757839607670421865451066957300029900105009783117642348114455205118805334596778105235937443440003724103086148852947367438893364259574869517168153171370516792300851950559141494318265098606157054910597333143802941190324073317682215919580145973889734716792806326438335502802223499646717824781075674840908691386076080107341260098578355343449288265204218432992178168220536400504004666059620803007360275805961461233753487407882686964742307619862047857465701417020892847577767184430252042398369561988732539722392680278974373810392141840024627609914839521305096727260868953006164064703875104393705294457993280499341361999886565878355806130782910323077979203450223798852256810469546343221308869320689711167468800402093159288228523076088489258781961139689825482466861920146675729104718089370711065760944686571548564676596039235168994421685494879409627048925149275315000073068753278078439406603124755490758524478005550169201493576075286926910513345598711454519570210910129337665331320851436345919323611695201621203888484639207001299708376226372927582970662886794114386980549168393917017234553387873237324116071977764804671305938410032382864425575283414741940129531515659372077510869673605423998936735460390851516323600377343753453555953467877767401106970019830948881577508485409341917312577332729695544876760835913909678521632529668182803808734818041698368404584971392374498956614126306705608580352744555019086692240579172173965051808766115373669928989822082966843240335947538016913066070578185039463167476611445280579545001721002484378683381554786929017424108350940487949377032133238848574965069019660203496139996856274484119997426973573417890619260819127456094525532533843526552804742336946217218239768774321406109832732963003496643014508720780968323133414120376219192273150698014160706327948028068651429829231370568383505371044823177742808697996168636226182795445310049162469219431720744576408546398935263761431162109206519118855045617407277174536125008420200315512766092361523049591758830313390435892368729037595991083072753562485719116269457645458280582471343419988476544941796280233206434409222892943503939368943078069066594893735118966761979603408380728714062502609233142676996548830267431170666946571726775756636717235324998272847063905012628724387023622541250937492844456770278272458671816578643029289637109797570401640663497924994483864983918679273337423725603417724876611492878115489615763514510030208901081568732948462766754777124227455506650924984010649859821561860533801086873984700719848693903441267066995320879436808808970240137152617700130262990916148757715704454498121311719534047331854430630649002970328410575540037434151706471195561004184740904016057282858833366392088325054372776971807341829366788179019913065732847466874347527218516993133478845604460040616000922808351015107940794729143679047953809897687158100093633622775501547314109174470522856577816183325773877944079118351105969388693682525502676734247968977111026644809681282195006701215104708872472119995009569622841352504170883445345512048637497906583170949692385876096053163250440538965489825406775580288405843402151608233274887042552397017485880906946805653431021846993381497297196051957400913171916444244069019289191868086440418381781909668579774418760497586641748507163547380767590416662639982959651818825404696970557508907918085948695128543116502777969312617813450048573466247575088434468084730432483055845574900152291375719760999724602085459084793975813760814473189875679363884014651118308127829118763466547265083895062608605199962950446235881337562818827781071546769882866713396076979523271896470176575266055080250812813147326297897168636517861322536744943432084542636992434563024308320955882188772856720002385944610999647069601234975703245365382239406580903271386184972871576603841430138034085222762954583022704248365322213505393671672685949319844985056215876526420604690338011628350644878414589120162829011497164573499697805213013848533174898971012395835689813687801079156155198231937873971711681110355820126209559265211592774784889680637243931446000511947546444471469850223700455936891324728903345459492749968107511075437551378914382676499434510892951641763511552098052349423441231939343501526116048432852514558847263636712078876969600955032996103709844983542505418702619775031499708504548884751292474136259452475119745602894136126408050153913421703175703190885409728345165200008274867114980359122355420084143963780484908143832248809856509860156395160991069394081893083117852828902596821076900450817993992329346335422138087846500953558185290997634266040152241258945325492508858648032495268543061558792754270103026038422213294999822287304903427826570497342008676091265606390548258890559934788971064269980378653062681824811440506582688510841261660015855852892000897663878450968019127287691721319855626175216575249384651177332783312215398432645530125934130066976351486159967329562904166997016049563959175372459826416176281628842711654516032879489894311462931197277798798715043434063000400432821591651091500176853142626496567837908136126173961981032069755087155738001425309979113639086712172068195739415930446955294752533975750343888858316799940150921242642593850385489024950983196642757721699029979145192183697959088271055874293771534948197963025658300977695542545921148025757803651847687188673039695042924082640566414747285632560230263066026023648544125787924147006067035681624114664024456128281309752672642469051001380067569807383885238607539905985694161978965055836395964766807541692187188501860250995772025402580780505552360113158941880064278161043721349321980929999007425099218986894780778497447664883725782533998701839048889541695594721760178636622080494222782023169070367011724055196737869297952678541462767166712769748417110894787036879383349070969585582381416241517613499494241069982148203402095330256630896845540226738609949736920741480585158317252950224014401841089240771969217111542197716467153040890162642552748338430851197082455808706405787133770946970354855504760216228909808606499198652441818192753505962093732498145137532973616630935336535880003941055372865479581177941752400209912843337427512371383377742615767964502686401036480515955412253588214362758250667237946429823685558408237176819530557270889862896376402796425425758394946813425666045640078035019451679997969564289254313287249371594461704574656386516731144010830949940016638661656666306513780624139911819463541985039316172641436310619830603325927319995976581054901788103219645038477951017728413008646148983280404844298552094542804040023105977027689431616442198397189584861224268072365551892850987360404953519437946777793312505564517029757299644515986168415753614887051239096034518257843613133297169769270340510048110205421580255063696566435083736077334997691254956806608242331258398023682504763488285253861010577842482714239796512172135224550777759845308919251511872570397522469323602530649174652061606353723006869982617470649993953166125668355141502598849640493682616447904754272222845696725187364709006288370166845389915610934167939990624594279837268902153441889958091154708934363422286832977703584152802872147455132811998202247812108874646199118050744099182313087242256720880741290832312743563528499785171421531493420547816553996787023459150368453319478630528377566598815601994939697213928835083335629072230849013907667567106357893413305026526797242924864438266881417366897395018934728619874620369503453310895685525489107151934453083105495567543115933672693091104081100865900311877430717400117306428607760791085548037761947390189712211710908786185679323662640713292315932699460086738313182003861350413198471996151180763572590526262220588053918518520308268885159408644759385841926258155092174274572033993325762630598014625196138251998922052273264563186149248666972561012385065757407764992620594335027213367744500464380286968606882427738495143137854002454212217732571444114877353934521569993293025009610031076153796574937375731899429350953357147358959978712251457780679056835533714625282416389733629296665110072578516059925653995140103801966469781592139608512336469103388640430115486881954608503678506476805465275355400619180931377766095395863953226023117107450697947071257545798793704926396452454872025916942808580210388727218503630206150313793877914867023827769709139383106390063157778521271400478936557154316824538285284126670554296708235927402407433044187390751043088636742597438483398018853914893860373623889186545401002969816213045217221309637390641439535150765234118943725455460866976704605589530586351016123450176249403402419983211463644969070507980731435556178826970500641954603270280984543903256409805916144516023812851449497268964630666428688741023064983541251001516313974546289417229672560953299905288301501957569699032048874344554760926418730969205887737921887835828296950411509310400245043826720043215049318287933491272910810037721453617668514175316537683277025307152347148793894685081789764044782269315959231303542909608357444639916749912325331008971726148616294166453931115281873655964422750458755746217687821929553505939036287161510088308330737652610553800224682503209303227146775243855637474774424025117319362508533642675126660575750566065187655038099674929181002390684502986777144918403612028918148153530947252094814637651169908893704939734685985243487513218815629492208649398439534248564409118217560034022557742400036195264529095528113850591092654878607545434329326631060818824654287173957957384657636484608243874790701189729861424656940130640215270078173117831518470316914678492113351077707300151922230480254061043548259444653572807815905410839659641130698264990388908393007189305384716773788446509796240235242235272245225521849046419237119616250652546773232548833585000544912723578195864908335740823569192013572414055313144348382861128640294323498254891401836850160314866793762566026666398698944322770757123750316200992658344063855785861160290873355960582908318560173555126451343949642867756110247700387112408164217741810382398040445645645849908785372465379521046140160797090007964771839619088952053967023694959248308327707746996379464647711402180224016197714409430001266014602221706657264584782091455408361371164664523177670521890620592345759874265730495309217848476141561109189932805962685590123744614986350188247403001025174714251402465534713129676893561003331626921279532546257099154243687317653223614316258464975508462645284356190112427294768906618332348069222875299260797822027369177254213936086364726346479508224106568787292322984017422542636934301285187711986469033011614347152848429722357226784369306245438313791991300994955880298118754579328361688402343823110462798253894502767508885533479986096579256607306091719160945272903695398846583265206348076279375803803425321712041005364140314862659729406610468974822093096044478465817775632360708290200286785182612646606988418908742200472273660533567343766219897556827966240425176712032772504011849286948093250888714356811642319637938735508228450547228054056622799672364295737419761978823173697394994213933260414930391826750067030896364688020962229365057659768393726942105721888999953751193769392085339138328092461513899749705611449260630840103502264621186599306376295095480768027501199778211119623402760216694590531516446122554705956134412279327772136190431082054369021021441235905022063978697891454277888550790234396571248564197586511081510946754518227816626675838599100266699091775282736183437190813936396292812864789753261392608026725672940428641361734815973524197400137417535425780230289404453456765374317716510891447165524773510917765534353964536567752901557840026075344272587401881777990740038562005359540034524662973162713943460186248747381297676464329376246509147725613535898983350856025693409363968935567398663060023311090178453778708794878523085182524886373682104242409036210411727099827951885239484797763223406979622140227137413181462344405567294924153347491858338028151498349755766061096064013645548690489249307383278085813044904844318671126502443394113740229745968184054699521681577690458658408855874339168618658892972470054251578384082392892141726653377122166880063992868301566504716536566952647993453214889684934964146390304992531413748140462625152232787262136594830146073370255986679800060341885054489112649406699967700820018670413541248197386143237813982821251966509710639332814371633108686922539230303622738200534236705765897778517281700151221225125914042573883748749894160641479148232720051647008673442094782787141150198076680372757926907806001808899615074060947536898329383933538824154045110733808053090754295077570350185622661891314995358516271428443445305454596428925293689914984975107188985279309912111109603190426941602705853237265612946212331849849792026235149643662365676686366367868204664045367192526350433886364413455841434326627416455078309043884332213356967556613701566877408168058131354089826103427767677110432570753151671391326270621574031749859404280849201013328871797270167942672149032868717915438222944405606325221249807771741686078866632912089502372531842255184978389670191857797924849863512929506346012699136450041911849722689533684154345338670192443901674799739928642856852208897157827868550218036804218092686290637323395248240965841809206755626098522566736025701506288665959600885719984697801989123498858154509281007400181980228916092498027261420513109194283266184014425559083962621960373561288453551452018489976221434283465340114069804994446020167548737702925464889271121683741931649831683259944818304808322948844305331626342256976096540254286548546450208755981010829257041301744269356898506246639017411512543412493934549288756726822934291872013418676821671555210940566065578351513639693143875421665274517317465060125536199564806543976025487477512145462811450752759206946640307665581190222954686047193310949632047134004118721299644249322904141780514435085973675598737534349990614023526098881272361753604173876148701316922259794305875665362878526713070137190666334099661038496518049983370195246136516846765038385385007667299089143612616973210567191854074750673526748075407058581494852418760081948266197767274360714678256997231176822964948531868330226699280497435566031620230003595463107734083935904783591394556802453392779708383463268491529364183362334584729652928857470147032829144537313337648608073744105533881689405977662959406573537074779706419720131806527797099437297056421074850136745774946999444269711608618692670809347054028421425962078986393134685231210305265649819148265796123620214033198012130510730757567044848319204843785550526110696393726580349221423805498710391050322906703409187641243268793033216809326963837447884924584727494791595482880717642574683942725968625612504159821362141484853183351119928572151978423959651371022588094422237447749670676437869284768494225451980467269156977146583260128400225384989713769330338163106338529052625447769995948513970759555327901496880276533746470826651547283803629755073461127560610769801181079656770731724295771026810851009944820892906925167253544199760425565674840366913156549878483546884844809559433541002067875441786151407912945461266393843922426051092426090544065075837316136543366255514594039622461914097480119267172032120360106383016364382960294767511325349370848612343600720229328165860080089663513055012872098516428071344967590900486832782239406861661615553519918363531592420284332114512521982661013239798562769937430102439991422164085611460134206849932353812757240601026076079702594503534513242754155131442782427704421632661171841879107810542020459456055163880547049476932268720730701598588491348363786293641130157393484535404993371059001118803374617071882877762306031152683948212727315779555481999285630728329830292854652726382923025068521327554608570179564834575865644538979798744160936867553522850878755542122289698075288491141716519911336918021793338775297398503651993049679202264544011207091250109091189868479955661777781339364310606895329346615835650417756647361246066552016532714828762567403502871307481542675085435134021078959456854979724634530439118044287252192961361155231434364766875507772208830412414695358304014699196909853734714859463660370597807304771754884309587161988955327827192519404357645233617168531208653258367872426820536884615659813351370895442725906552747197386679678368550415937179916526658845260313625931329092613841916897402983441262467101587545313424878045174669489542203638413016245918417626068603139586238148603885106050374693324124402176479095298782488924857776429781658362044567967206683034859180500659984439362752862620523487114281281900773587871944744205357175101329505613911324815172511014817613840989809348167350295121000504551133225896246230163561110922819798145544666798981286845843313311034207219773917910378019422620171389727388616493187459899225474447589910226303450230406138294298320136948105964004079776827168656340989594715724159516923391723367243940821421950888296550860942952611810400303747757199775430253130556517621401590562386373714210348068845848018414639728906555722348289135992013885116692992129024113944000070172817076957058187053424677981999185558866627875142789098749439667048418068314628948168140606694223033618172308202686446833911745353657249840335669682504066854575735383287075207225170472867582003298993780548870089739971642126203649472192265557020664189600809615602397229067831342224007085595453570545794996175405919238517729934516242609053014375821023655373236066950877888783042392763120105487058958523897105956536271354388481874762954644942363630264132814871679816720890170801141024448333625487217881471766822261169963716573292337582607539544185694076357261962557401744732992695776496195964260062965814202580954490583527824657774963158974781124086394284517432962589796505869032831647765362276927643314236205482347671917802598144038036418459665239274771522690638574519048016587277427441055627166816345578045668066080377670297175256562309606429976232606590178258242293840861336849901654903538157748978512037413219400505191432728294220038047153633498380665905963099452059617743426489149879836004445292757866992684804014200622737082689808356539008797542916809850191039755658709749927714419716141050836170933291558953933639091907866935374022262402851675249488404253051675224658309337388654260718501160245583534394109580983753556589212089489167042251178717963834174756252580576030986179788352814030434231292100341735244737545592061050313189652092605696173828426932885966642549271079541651423508113349159946006679270846933139137972661645006119327616884240697006065643387961904498865142790106530433395725114620291146794609382095270140484504251365958130834960367046718376170620506781616060214091312751126277833948266410307311901805381413483003519807826571648545023070934822801211286509851722806800076610118458582825417965859102908066834550385045286111559019460462772786923600824278885186182550263439726320652255328609024793071205860616897094688426710090567421100586425700514871402396597751251553607914183172776241339318492417799381197027592981512061497893928200075391805337340204230565807738599717963108720563975870748576844263972077770703060245932463733566202724417791377328084766036852759682451045789935124319490645121275138278877401334166250814667254181467405009543757668845063029479306119194713435661349061517998223011095308776357825713690538717820607240020865460911099172055702488333112191635561757431097299937176584230216581073791016390255717348768152013748680440341737004773397842671857799860291997710255792610733313929122760122797829822538890879947571466961837188754193992112913341843874287375629315031849263743240777359485629793316326886571207504031305634222991626508366045803743276067987506314428003696524734373830783805177286110751257769701802306596882470706267387531765425188924909815471263934576622257976747607067296615797825031499949716449625371630099655049000034081280630521199551378149808333396369026269724500009193652608996469803016880411115499713139185577441040130373788735035384315309176233020521058802607626760014187819186494309793532126237798752282450039790639998159921170097703957168527145186361640888089218067329364585472013030734548562867072714701301328742525321880962531568173634317275026456597048588584396685699628605037674672085853485272163497658930581581447219155169647319050161553154294675879862268128216961087499871687408397606983531346895642538945411491526938459382981422365479086221381246694380871787799824185523064624496845495779645306507040889145147797674871825940725078273665119379560473638681771858839749056974937456226283997027971683587918216775947648427083620630293954455708818523109103940961466846723123577074980782434610830179728884442598825178143669260602748394936163549980943165377135294239246996105867483232109711138426789219414361580243722677362921961520785007025831658943790335968170664714265980191023415187401982560579888547224623878630951105481461679296269656493015894405183859913488435759040325930353776730726160086936115878039727668783694787502932410529345797792358481657586098849939913316613092309195057482914369513919732018144052506044945094567866944733186766910397354051784470037995306978839093519381242623172033985174434728804392145307088360182253135651884194559820120651989438466070133783475384951809257040880305891411749572500091614976122648400155475717433696964204612854012844434900774877782191945749416065851280340989791520483153946985091173434095338963985885642480125570088565749081787625997665759281570676081765272864510459574394163513216907263532464719673357235686988382467721584931735967968589663004262022112810655510744398105966679228212281578663592078342400621226958814737843972138093116866245074716374963098539855084628667349687054948576490133170666299792775454736672293399936125926158552066084840877017238083484122496143523599978956709822611995906923860414390121316500935881160802681150759361453476319855691703425707616254699798686335229081545640506899513402167054913785775482610305938162024595253788403377392744536040667121959131212944561418054998000613439207319003159025171379598400896642729802650838775771176247665607834793289271987533281687799334907019680505462399999338590478207974524308079093387845254814264139570452454930808600279819167898203618639883437770036177300710280348493580766388661822759816773562706210330476979808615586649648541182851856130174188764288801687049335150360413649575825379161680182657996240952322440720816126722817706465333836711667675556952470427658330285036909489769302816881660438353576474808784808411509158837041560248233335554554493513350608643642342747344684372731071506811160115760204921976764911001238656008248637163116405893160773867658743722560710672103816638980549205192308223657416676385883908135779288790182216484188294676223443015315255679280666198973516960787877635693683701918864488562605372517457557502840800243487262210230103271156497597355702766258917824469889803897046548771080322760362298113905674796488844642519263833241203084756498794022830240421233249577083591919203660959991723300519743188866620354627706860213191996938928616712625732361871840411161542785487165260792843593703969690259426814115394257617722005145397575366650511117422147798413353627969436952920330460585676978398746693515591456359078256185816148223639543986648747708272918882739793780588452692408356468162759465721432550408724757373963888126813680015628152717048654973131508284485074698346518005604694908677953785957044806387782630936767485712179374202191759112202798766115719622908439284740227760774347571266432401416651918291728819549518209487655960050827879635295279153655077369529531543293772182632532931854958880385413182429509982511644290172785995124662710568116155959245265872196845938209567627770446483139443356378361277064769268137096913804448024732945260101610635868346507946332443150207281681116193093306771846325426263204446298735514465790438505856351474896077550173902735915683503602131756333830722507554002202344807352201946823257042403513402172574751126609171202307724138049969513471981349315297231678899812126655144090256588614781052974833827682440663893799682094184194885037061826020747852660353386258209551546470207267076992910759122682975978773745106429138390489475368271574677826908907275269630177560224276324818486724696737378420386919775960997098219865767590873563697868159655026491242131774457022489869016940504439333867902740865951466382903403483033792946309066827678888950885320577722673814224260112191016197377500943857759421556066690828598898358800518620039522799342037546938088312948271041372953963628869625074528187677639634567224701832550562302039217952981738253888006901887060716862074764361342007341032018513297397761951699267262453864488555897115842601962433198576980462369184835954548965614533518087496808810787781231185490785638945027434740535295067490167456358960606261276070765497263510787532316381370766657601871888001625978577816100372722854975439620263292535354273460614803258810889906375293041337002998969230950587102580575060288046780398574154473128300810800727713040427037534184665246015474130616142779066399098553957552195247035342403582035338782690933149512957371635278797869831265666711597382851215381705931198986242553757935922847374025755474856143396406035652992937340013592000492930512290884479665675707793205670496931439083038065850022829608924173866964628942933484035245417754322995864104614738410716282917837951890656359264013065989467866001778157106619663984560243096641253933379540539195131296216035586018987384548577585464432985319480368823614642247385258121403749844801399415319841545302476444688775519609775039258923327602400435964982634544043956059650196908593087690915981301388271762945040249872327542156518063195898074994706854302903247684844741367498143713326708543171444408373750919699095952478800136975010039482308641065988217421892092529706653303681777228123429101928050351323535406174255934943640560597978561114197527522547165454048172820573261738988885175797554412030563039991181068189716278063577290319979904832041176587963593542941330501794340396897049325274834522332213337581828923282852291252276622101040807539360560657243613068219393619907238658169216946009461495852440959912657513327702758881986672149585183870140482810149517047289471442166986616272465597602583366462305366688910088978583999641198569823420387041236792608426739205578004733843743544369038999907951148834513292279246274580269313831536858853920737166966396217242388243380566583995288106386952800810760990217396024330095350798270666956900900403735142256744462524931154703891473153564402612842614912465857834599320888352206125950444561348124100228852364785933911707750619555970390976472474044031438688454112245922450847269154366694560823270338703300608218478029963397987018894287208384021713505059993333523735098098430408592678055195310658660115335051128285068930513541979939284727273739158962882076840201648520065616588125848113877407682343167081827542929927056561933940005556648908091467103848224440182632927821388162423651436676046558713207078335928478598398844622530738994258453447635906708271318920476267019395558752661800106234423768021209449300364645336714392891588714934654598079744785608254053602277118225014752286487548179502018444985883770651988443304135385956970996540125195123987195501415073915155124478786419503786342774488772869921033307244607453819855657854150503145854858513117279165197198405294931044979203770766827957273382422279306057139758739286575503334929025677827609229608081437114176336845817836168925067954469350344564667009607208086152104767987254885611765935685698393120140221566344379817751600065309621697203962551391076667261547233634883889250008740531872212828351533881329968008431303696239489586188935490973081747490911392377971064596757912150931105623766036713211765324314152880424165821713404356315113869452824223525812804773467299433916858076084956920890863081865472077298119732355567996398443094268694336285144732160169410898667932486596767922781675619758300898582089204561029782446961886216502556326268575594265523033796366479758216987266356791756389176435460063570872110443998414907864234933368590176135440288598778397057862179979138792329434983671425974848511284002790817614995787608898068369905112783559531041776411939126534044838664265383148361884775873878632282118147866907363541871552261535565043057954331116170902123584589685433815815820398857115550977716888505519175047101815412014379386138350692832898008202809057680609137729145273855967067961615247316631359351779773692661430796485497050385150959163225032711946998118150897958058052729861449914186266677839990993606616174868556908865020411705124019718965043958224511671026308872248730455863528640421125693243155908301289793441003669523230030651716318069856202108180541475301315098106977968963184092738955473459350343074217070798937784678311863901549651547890491663193581246896616729131945601905564173671681233915278470554054821898541599599861122009892569410162911837352206591609451160557702724555645810836316207322314571173038712029765062926802157297766772412345586858850731911289333200886474764791302531913965893511482451405624657763650863239791577598295476474378651686690318743026528876763960518743600732811817719482580354340718792176309446894154652864351892244073067399817247814444417192199835505831754398283104008178625304547989306592588517499056658605706446169967299212048684843431350666071673442717682647983396184155928665231327574463955687550130012600465135046573998851553016677420560137559025023475388461133871892766853734582253712265094323785420710672548415975787077250333669457270387022031510497023310876421712616398277906482769732760306111272066583625159715812935886721083976553577134478395852963785825302434670674673190872100784370335505915425942386247766023153043133593592912145217440655837000038794995245223808450567487558759902398787338266788900813930139537820244845465198191453803979220977799331899486357184061392138132678785705674465961214308365547955099008214593047286911319448447537823649555846319484534982569736498123629301333116799855775745716717084212481365544083885568900009276228512627073397644927485746833715864275577577377723119073036676656563103910373606276105114203490725707334177862860289180074735800401783947777539048834639492564306465173400421709222638578848597647455279362350744606296550166138179362236317773079545006501699783378837201563066637290132179636594896663575242894691008931983049170012466690666607766662052226076752472902911957113860451208096526531313619059161589484072813588212430616835915500463819226457468522390659590110622397943704912361648501518728324168395839863706210921192075083032877964537465718757247696768201957320507310184763371895610332188948310818225142786190860972186287966641795792200871467481401521139884930461745372170963201187238558789038987732993992835290381845470972349532664056626418819624424415586001468303129754712876874155466399165060469963025530559509465089882393881938907680785911688894406781060549550647259862466262226038031466698773420324617146703797428488965648466608910924842879474139877463899592942582069788160733955928780683454490792113694846354155823114906443886718941557970942228740460244355033562192408590820912293386349966394968521238072005221596507317111972910977593754636530945755908399496295301309328925699579370372564356770526165998854564917517537500573334294396576580289684570136939474543286263650572650071995198892037523543127010700997025211278352431667610563104417578140334866681504558060392201632669460443954513335660724727139276946596982971016842350395694762505475437352585046526564349620261566609517615568559634436301456391703287770493798411335882045380000925167061675717370870351641215224611045272424012893979880233787759299527408982376630786130951825319768334361279537420360420388268916907535067600369662113516004693904090001504345666545630064293476721372911928361244992335103067950331412342458820999308516026633262993307087395318675599096440753125388071611242633949571113660735958298492275438802634384069881384303248030755001694879125645384248584508729495474876805565524431675109813919290123533124979817399690650459080218873789436451102950179281224730616791765046588396964023921569988333679754954230705699065290675936946921541631938046197661548202935932036356885979728055946433370884054694562346943004061547020347329928271163121683611533918670966778567631279927912621747364136156778547081135269918566480587487529119092984720661894870518280351225177993853801191404998448204839807164188448376730884159934460162839441236217292169386542375519246174925694787374661490130522423675690952121480623856635312055722115341314546070995269267654951414959234061594969171907085473098304934129063485755247623980238419324544872014034502350747589415018027471799442054936503600044579662768039228685959850400630674070292192837196544448757689673575040334374674654398715186593431502549480975422027946845603532657637017765391850998160081903640866717965521672613776435703497392920000708101127948209089711945861050118441290443950977631258651377644628307442509158834333947885762361581817317567490298351984472417295084533912019488604673100605661728066011360098694480659059444603914262132469581735958151582798861799185481597304379403854928268137216559949680020095360738682943198344914222127975184155572285802296041870725819945986718669738513663697484925365847128541172066549588253431061591943854265466106815866842927508443657571281886009810189364709926157826452800813034029266427044116691222619860266730717609092170716582741500558499868345874576930197920027857662576598277875070704543336317243201777875091919856707351898693577438278536523477269767325121207108092869733730788746962061492148451570246638127920472481512272193934468817086830678135367984969352135295155165772987734984573213043826571130199393163712914781886384948565304469680284979025666669194843477287579519804499694197515280050113920105901361698622711826319267133925147024004875478408925655019216877806880063776122253814870809931039724213593481210789050351033516977497683873740172611606253858580200091705110472116028240598221191007935307147049935985854304857957714829095467751364655519283261358651817147533217327744515716746963827445831402777506265264295052274128808445568816619466464602630075622252998534899428643445057117373339934983533647157585021802367660540568186131399444432520560385339042753497449119557677608589613381087345800129131065826232464329067188271994048814981513682228288958745059036763980029655587571577875823301248216850256319449090165751070166857053745561248253298114304890427790077955321594017708586984464933189142839112315597751131851576817739090880070613989621553250601548233603912608331917473737837945840891041354972133145494290607843484005368811286973601329105047425740859049498268213969717323276106713197891305000506038904967979635925281914758728431638540073851122236117845128122082250116684483341913844014661118672668758558508194576323667381550482293273299080448059600775138685314769744339632012883712120323610850585871526691825566999987474454629981740288586002699190904582043305942040502723104292921891146628287014678872577414746579590112589397535342175516519890353472947128081875324322017529296925731179846592089621891321274721572109990551740554562657286455997952872333066045656996656136766233742263912908979934371613461861473976034223535576248466249126729530224646503142981312624557937187496117784259572976774710365764429312045952044887588866320500927509291860944638805722263950265894431241140042680778262668764873502665323091929214867326162462776076522292361038463774181011336078343866901836835426509285939837855773750648349145756407927935506689942243071266039379391128444791333119688042729492942398763668665843580233886767720840783533961838553532750957816824446281274242494164982513828616067491152828067491282834040968674138134681975085488103585554630178874645905691551992130181111013659835365911500075619624661941362439910816770730010041449372198919026805993357477523257550385053376760101390310810425231998195582603767215076347276023729611257216522825057275267532737437052500386884810224213836570126167128089337595415611282164215705559159757521561289327204831942149990172162421735060536905994120957645130940425837534786576713870752332233531488447901931240333992609371440501946144313244861789758589136031751354496644328326855458516822755582784022634712780615200480558613710441644210108654417963757585414028148932941018120176630455966503052575700571837736329941787896016281859791685412997490889349515986980684116100383072952494729340571812162341623318683513499789462570163790764459795744507576945688852654965301272293826162118247754240577220763085634748240712218679804874413861955263573154720471234790369640827687433441747438142152237273121197083121341211899036882630370386388334328169293169309437288373912943431307211702884408771275567885989628890225128563765577308070267879754077653224997820008996213248164764434695248665017607354399406865223067673480256717683759095793535454113784563024687112405582537531601059791208483236650993249856176762710521232074209201156679835716917872552311263317168742866990762002724234293154944822853374382339944714722159685356501429117478252294764281957701911824964543935022838091024840665280536612353388802077348731935163638181318567959532805700840789281166891771748017259939594260308650099815492195949382552008225043874975340763295684248441705472036399575295555274679688372173678862776619090635791816811996383981263628889485486185089439365081533751943432791065573769735471202436742589212118654939978066104288607899399975830199229430779881265388292763273712043827406256289144737436136889671365504865490178931123394760745832990948045370916721298138202295669328734481338320789502676224226393337537191621184103068981154916007149317447538280310117959364002136679796379013334613440918301441399787451076214300090823666731555641566991470155450355923942937591140784088080637978315759637390732971681441237907413091252213782340818862323440361249712462100011599403789632992770123375567781268636574636152241320085336115663076311036285234067369186873512726486498059991209819947818809315804613709392622907314202781105641232321780794650178637413170456559348523385026669297937513345501129785254258178347490926039852109131777375959192975787736289279792225307880992514869698871956037235033754563697467466016040251676695835026174014770855344507401485424266252324248560968960749714732254914219021054849876094451865198390242121020938331121349098027600188163370840005515245916479054117307078177932925865978578107936730505258901488962606023023688443467409841201961227813569287041907278850994179529280354653107685233377367812439376755155029634003714426132538525560533832881363096410840642684977257459873804263318486037099176466418732560028933177925156964721115395243585748036478409823589307093750669025877471769380217205428773806811695678860204045847700525288795558347044845660681520929609065803355731330193809407378019830893131534639245812607005783908801595903211539350867941093790149472114483826762827099522967423529158306112806338050577521619125198860757590530902897564024193009172417287495181127036614006809349716712717899230237077444340555885809569711044781430366012445491036599857690364362651569229675041717354631942927281994159929645675894498198685094765379789670084084221893720806664272482216104474656216835285261404387884638663731599231792623253281055578107088780019444869733048659279769845576319726045288064153047429390367534233734554836661485366022601446242265853204168887183926823150009548269581321860673838581098190999044498572665043229599293883100583953243933101164541426642566149135727458021145218074906820969872329536958115764021241700517664296645747032580239053371212374118655874010506845894960304977474284710237179468040200058198753771331024315735880433709468965010929743988239031466875485099733724070884650387379938999229037314708351597551976343372881861372549142113714890607865888849388992266151901246075454952924778888074865115762446292081008417558902877442873422905590215801937645556083296141522989122508833189060769915435003905147614697029809048660074632174100049983899465981466083734949242143446408086245247765506920420178645150657165454618779886172968457954406100294753428834851660963545308301161779622864701259783665222362379389200320339845025595898674235080336605068795347676068636129838433104969487483909438604911595112268175301162841109874856401456631759201951057382302532618980473287971130669338759154592151993044838564399098140504353754628694582350743338333092494251024297132064270924253333444757255180014839518651002805135199706915976663184127761570088528495640119895759872972890670705427576866500494394994512908199330140152085816070999581851588833098564606711554299907705458358756320113792933822447406182663863391207846253175435719518215563703081968551629359645809740786031097947434861031785731524253480156837444090513557415738949846113593264797874390039940253781202419066927186224631174813202541609828418236144841011746351493533872444582951756749470675849656333214418544437495395561061445574311192135935170019430265359660073872145973905913322612146878000915876362497063049978258727771101000040760182635471238161863563947664395518735447442022473221108281643223006729425637043974451920543682775945854498709347106635068937437388659899564380342507987144768625017844132742422415346462039100966720515716649767717890397882337650467651247155422601894010943946529489040454852141815262065670207010103825848524235952367390561079641213377605649403001436110644296786325135672957492620594857448839703548353938695101120236914331247775193111269312035253606679495453936096612433463832102278700365658700015596559789149978276005594131273273888559998380391022794593410340665996339795581282616536688435990461549598132025109142376395291196339149585753101955542218775732460314552606152417110631203839369952372737270218797074238675342116097589179630050129583106019648500751609118082401771591301299484537099559185507354459801932046372341576351581086948601768154355997443093857698684356063377538273274685617645806261978787706199520016023759300543007858365111308392036161232813572517940011557036433396081463708210303038732443517897556164657247265418176821282925849304403478573340002095659300437380105484824870039891973086475285224006435922748698900509018543866931302144668755950375407851524913017697316547301391447939191426622812727467269635207458315953708667100691256451481476909582061900806508550591968373267994303646020631770077196093254053522033816494319959850498646217680022087539058421296978101186148020474613537758586505495336138987162130182680593240155230435525552448590313652747071011262871247913242070825507203121207861218880487874624170855348239953759684972419670962958473824032376482085346371973559081170306820600683481538702313105101481449908720561777704823233220438710590951769676396215314565489641779672632229465422439253672254832398393566050754595090481851445989522931365545962798441643312682540148550213328984632925662817526599662266726956724009891912180866612093900636893851941518869746662058525410035393503078986965466505827238714323049830830049086436985502375795558636171932205095975186067735721300845776550325062497326380347765929668986955923586206335708967967696646051012328018530654515281347737292028342970416221097129926808796004961618801388136865743249275624589983966942851493786948974103760443842087099843944866900913093403566140622836697738558839971753224866012781217033845376513985577444046582432800065163815644648717449647795534043360222047169313650946120122544388264990323601388462315227228106660081279656696806053673563718407252509026956640966508641519331098310084082077157568099399498106483296474018690278462624419725295320464626705837263398782446075698772869652848116035525462739495862979639841665102807247295304465283158129622510563090761109557768095451965276814925295518971981742765913762863555259115544742343532869486327207821756372841471151040388460990535008791225463521842637109602811167816926739063300511354141497778876641265196529012006778546200957860912726360283646385614162107872188130726151632232834162293976763897509310866500135946321105733946128153093693728938176113514125752260944826221892956840422485874662698882888272105543175556858687588136013981860481863326018907627606854272018930552772758123945195437371788662992456804450157295254066837006808670385492499360937291376337209089550129828572213875992512079471715070056105187838513827880576254607747193265445926338727918168389711525558048847065175798182362735354916523822953624299408314969021186748645244093531686420280122693257682094495927547817345527648975827238057596351735566285602032664784065836035503064818840018095046217094225206552248308618428672422008719469996616063131716749873836139914871921219291769730487831117157175945551877215119262383327850985931309382615263177299902563296842805491927099396066800703726175907056504575259083662435480971743919151794616464660186232120098920881158145442415059332817132221214309959565243396501760151112195767504148095633995456418146797874571263821977053182500421622160690528375886714850008562872818756925544649808076596257682236523274028359858392318776409531440671725655575149622212025198094571659460526465107324072838352723922624134566259304509868065389801999275620738433496949519703307957600244382679116389597474212423786703587197352362893174651617443358287161019583090166333435243355258752112543588246608725322524992399579922847752363043929082582384668552621222351565951572325284161401040291896395446357409016165473257675524071057946152161113442631313836071274662735666003166706441113357002720936885109160958781383600200219667236228028432141978335646309817930638694903387758290009891871970589001835299801696083604799500405793576427639519623730396218792141435676167806376498461006523744442603880817476111510683293758899685225664324197485853088220012316289102156697229501420706670284746489205164744260901288751303628474843163049312403271435176534446199051677414327180114959189225445753820994830668609437303016356775508864498522429679561170864061508892332962548375695069050559347081812485443510614033564499707993088329567700381278431394202813750986486678842558938080176380129317351185288942359528337495180524290281874585147149498823067909060079855973221659550267196507930146139633702638109947448729696095333826931503189621242304103967791079150164371217508728698241738579797616503976913757136953821164673172415702461213335289842042820791641215307963813659405001383199194547102832771894604182315125931466247248010868975256890535289728686360698735302355162588994757140724942394778574432068390706896714028450833057148921008798161990519762048098905132064932629609855645114675761056151784039390839399360792820313188349272256676435294454470326652851121844907315606688393546690513229449688903787975001408403551210842101810817142674804543222785845123662715035082777854033022846628215700658251302748332438741461863554136015759756057350400770408972463103575916348730825266918187956218756359178677088367544659385170482967208358010866560407085341009214929905255718511024212523312016024461995873710175295903634238476164894053315048831007307256611279608232183661212987112594465622375845799448201619809850177849694659737422068055795028599058662888310473703924709724870512517897221845732679286422669433888126837811543724377381739977692110150373253692518192209500050831357415969652986733183821254925043322715698182615369442281000170330928440012312763103527334369272735652909763313016196759527190456275086377378783721462986613886176529351257245604231668285521694602169896073647669055842353203300523990817986209256498231400057897346690842082721940833656532584620168138116841733402647474296477174712508435343315566331257158796112920768715954878856305822317748629351312361493601155323963963856967801905233169186069283182356740168488036945321416730335227599725561438545779094954435225898255594352895982948008030723433234248628276001615259542730951893889810305207751990766239555608292281132414658263714856780043889297390386867256832276385872417567913333061065949713305945074063466221013738854342911521108250685667985614183666315647665810689099587768250126947472608995797873722702500784677223321825587031441515708854133440132582293327976467253503825218778877862630039395669091502680561453541247846246906848768166944776901266402212702692296801482541810976255418597670882839275764167399682652209231722124595327731982466745582770412085126109746599114456445259830014231424116311857427805634819282749436701101182893549657985567977563706545144254770272924916757119484621781964946836161695397717286080917832866607261672105774369009124718443160584962608792088078789929602846622195634220030710629067442513647383029885202900014171993023064711224687297773149281930676985115414791281047388004801771458041622495659834168445674012892505409851274482243282767824256745863466209244385911423856635967887276226339428401204193761077361269328486189207920299390111825745076853112380941495605876012335876679854917807562369504042493692246235473963941443841621991120706854510145008517931210424107390985185209353425865913704691413839955413714246576968837774605442585159404211279363943040016576779837346456803890558692250512727389051669675117189281991754308083167635218525214027365307467425967942192081382778827514045819480926806765948008821059088293847238891859343951402450105773919067526735069294669538529887079014719903955734714044284824081061424353664755924090178203818728174345604901168168116939204428149533244809615421816570375302060264075418852989054322427726786828571251618415465743902852783180049725565773889702274113602365925895421479114039306322911626897906190446025988088416813447336401722169148164167998014123176054522219059712258979526623310649210433521192168331512449297859930920934174703592736531358480481010406226493452551122944187970568801216105408762483475873709679521701981984610308813431960907251634467241115456749997946670938722333962727268102300948423931331058205144718738588858892877104051151870464438632449148218343705691628226058049690543651005802533832695388999114174014085069390872350317015563837770717509879711138509661483321730737120065346022224445738047766731698918849736116650850732628090396955797127100628861240219780929836867827179891733323796205799539147261470813026739007642109495040512461570527427157907980574295049037213249618345355933531561624591926273356752828082771159373055576462429179245109134274960955876872649774559785968147529785972670337391474873313749681411131395719971457316899082439689851488172290590692495580606744400845957890211203363452504082796953005318410397462549808113832718875451046199950047715584862920745785439116562408512284398750382790832390745056859876030178405479421071936551229549088303704050440711495399265251737772435871419707391486589138144078477527733582011335746447429339731371190476325644263851351901923227333055813876103686192972090374838758727092308960852319143788950182336250307575383887339685992599942300416584561932302341693219673530653726999489321273202160692883074154641486398712079766213425449229920433404247532332693512258399588221058208419405795896208836627158668062999743350226016954524983163087565141445161397838576120725945698996195319023631511624629588204659511907725992751007994217179128810965196712359546602872525167363036516049897577134069676355822066413585064131357347591339723992462072959708209273786579832917622795532108215294129781406237726729070291242845005273054869850511552200009796004229403093702561246505818689020890192914268886481626141175375297924111127306374408757826762942668491577413167457327018377919671237209798305095862804812014641351861658089783444900397737055110155288404012190909240184540960022795770641889384509978977710290575583236874410353843921191460896299573109453130212152175953960563113490709401045041797638475473520442408444206265290755926079810047502865940603157298611827371336125922288289075577732824394536735827678876536081915084466228550246952628702921412267234018241292072493401351599057802570832465216907472666711446051146355651072276459332723509237872338060244904035828138401006702857187851934471471489333980974780503713687459676805378145378967219676413020329175369661082844497192927890200746701012085650873280706267227922362731605641828341325305559343776717493993843855202104502157363826950654385409851759338587447500767291150887090713755155355241022151757900339061264096716256769704897949466101566861217985653931349881869244226720437781266583535945314936175133489918399328544051519016109828760681910816415697337351957425492445025004190916880018241519643110862697679544191694981343754355496211178968939221003709578056098814926601446098687876666433886929760602424280399360856409058733067127595432931710195844173373373085959662093147323854195971615544413003612097761302115808682922874401502264155934552050037976921245072611726597944920524994182079850305012510834442158617150203997304369030153166496677959053324244632210849640107991502649655210836330386545892205784131668898279767634473707591330637566694668228376013847140136145344985126793651673477188330730867818909471026566021287806701516182989462558048658073872296911159384970169067957032237492410268656921837522982185815140069705414469477571849442446021063411824586280416799496090422000361221877417206378246553033964513213079780378416116993218721185833009969025516239344798868564836986757734262943821833904806332068708700686726188497924950165101638093718807624487701702541961841421273025724659328036734217743451694150164016441038174437203297517375746777809606346401855348517488147971272115920014537035481650012808319826216957000759533436621785454596781494696125928939563304210729643292373311824471977693368460332133600385850109292949846050610003680753232458262894013797421802338611078019961438476221140199488899083678649525730257808744623945125165098241391203696038585366202395404166653714663047527346885439189827744534544242962169585244908032991490395714318919446945948795823224308329836320624780701815837566172477858041631438040211399673851445513275928759476154847576000428362180425551564730719558234209135789401149581763621597869116148370353117654022637889451954190434613395540568412930892536195311973708474227539826164191939763869212043858607085921129767160763349478488450437808043374508015410911988388910644320125777487785465490436964147355770157956877384582373791689060314341235530907290056848325257514158348676499561333017060924437449080986857511684736764451658767504821982954245915094266047410651752386042914194576177154634161622130031046012670127820678305099285499443139033523213250227966333049430896430515493595331036324032246917256937183845928711635971497008111506394097219499504218949971864236167868651377867472858380630049661824575155251962192243008283953131854140517854291298802657835098774579778573480965331177063740426222648141319942284151468488285428754814848484337570012073000957818702495268390552455107345833443629998544257045795720438472352615883600256756222954154979710616322430344439424409909549239221890315352894392614407729888714260370283194997216413568492479225662915819218537625272418160333273458146586217858512504100146693894505595169585309910352447026817299894532669130412113725137553069035109291675593914318519797832391261309828900798668750846781351307801673060867064302057156403486123755868423007501089809570347065632912118823044549744115862668838101439443174402921722699426128894821076883548495197846118221777548878741703243404145964616611890706515970769324756576873184593626659415114031295573675865213034825290655920109556231218458706062502701840897527452666054580288523110421785131677493590858688379991791764125632669042246381581510313293024100063002262529965064561384612052368727853684731574195446526876849848639040622933552799023692035298338895297186899297458384715506304714608648927275702812934325641883405897474920184234208905148512004417596706605434229112896019319108128492187345215777807789489246940311812452727949699123977590819459516287719312646601695016904880051652051273826074380597632212971589715480333823832392820822764467022860480191185773917978795782325118887328980820412125385866483261977290702085644543102621094477561667605099703397887140700006489027201636209916526529059403980751240488668500562447602263348013774930654119338061532808762577005514635990349105074072092816220080417695369119452682148478129188052269045438208786482797180321247131244574866453213400567549316245888181889384578037801020067112791454039998189727035116138128407076859876234160354064315528277022248446553701831732842276568781268514164545654548068338649591015243193056881384844096723279655981674160363029040550827841677326601264384903632934937893248947716138724637448923066844489135548584505164786862408548745511351313206717259585259298488917272730832491068251781746556917302447082267885310726980180109382167392663987699140527357608003706497485359507031044998460461929826439083595076627717406257578037386730374457217497545396156681897759950867759975796294420795008582463133948605118178939639182918148450919894813978301721847090722271973730539320477850240388707097116496092672333185130540444882950825837156855798129267800017209201899334186736025792107112291643718661883521460998601795117726982345103810506258116576502925604534219727347341363435208060506123006306241623141011151173882002559509506743516279487693264382795395932205280613873517271102025278193147542024656991926998880311627366211192394420288293332284053598965686840977778416251836634972631206748233646830572055682946024881771009036139917716140458899283198763764990931927618033289354466416673095611511602520148520185312358586489018900932095786667683305296529729336892986873716790674386154476760412961116854268670867466168542769636681092798553816324120368789085594712936524443838361341274061867662590607639440813022376582271250234925952099000532611554855789470836210669320431786739938210495438932379555533884793544382674705114567512936672013873469012795179927918767577322783275164808085528577020974634229460406836571842300635778870458563281639080221948317909718601892918578969577272672705990436627689353270929417511208133484206982578256136954840436087212483151626582461195054184653094438279536426059711359190460781846267817467588175712106470936446753273804352472233459077507981866617896658179871430105586560402705059802332786847867034661438259420674454894978980691670080391820711614029675009520877040309796602619733640274917612957206284307097167318450808188190272612908335447303007310405402248611971032618684811472147669366860978929118785814236445922600505256606945847078196180821979463475790811394271562447945256685469789728596711906436583715526708468459112472015492614965206280384753456496479231805270786661743637820701839604063164175141091583744233109323703290207328208184366442258457038344845322992303383484380927654964192108199237978361990796715630185855446530785963307816730431573191064322175153852465389549015435883633264043186174760820574584393178954534358251483701634912668553134834521803708108386207034527940698774346667151434703941173806340085758404433295553912134441784649164852773552518279008139149656929740704589275450010093303391363822122110371332769135611515016631522349960004135246626886761795784630189790005219626342294108573510079025040182057722626631132614215551666214924010140201458056600349267046812343511887663801546791181410541574801453666323975770301206458318949545179171334961316210685685100273710684464484068020812522998447374536201312132969501651118770935632300320222651741247517030255411109684663345520779418525322196255016293394062770564846178309218283981158186596418993114298538978949827910453794836312839436151819122381988716017083427333425657148411509657193661360692025095158752299147198660250578907803014485632451617095941459197848963921595610023309919102809495327968918776208745128402407882772056146254634471376762160917470735080944305444925443281673072257173791046668171390400455274879565841758482826003023340942486066910397622882304103990824792627903811035207684191565266821949892070338706059781021496636104187265927896669494012337287628770334057994818124490402671817259606184791074752755166532404668671479616205823018928217422425822941334097837134333462934651156035742289423644259345683586666246045930503175804447036051117340274100780338108523010273926064640724647664251997342422215122452407545997342301214229793948586347212204784283391646852308283292311868734493708532135668108726385899784929947010893987843601994061935710377960661210154349849064127102555484507025674897744010327640645030782814648195447892127403862421564121284921419153349517639366234699224819303608416355370881839689202649770632177848149742594674626815371516786596927576203822733041598160666747556244052980417920057640693247705025591121439653334047467666596935804419380780638890872986876113292234539563543166499012050613826785262910990619972330662342448831211312203126212074254406760346665295044252406861425203687132574500886894534328423033062923097379508208598144140213231687671730034409144811974974100657725008496598023006851786962008218467376016584738655696649410014990030804185421522291898491941722437851270375358052695335818739951063347188695431183373208367813615666333836459045197835511074881388507647406737184405058744464495682374672102660837046368224262354773590896404449518847071898921707360602428882095388323941453664067197560943426053075539122597439539202327409039939247238837157832573619100805639639380855837058157284059939143355261656347212017775183396570231449969297319993532594573331348131947305282274741357672874111104155735715724967341457565876070708584443599175749514569368724892837831296866336683501929600178230543796250229032556922286138601559435253619427493134538326361171640325037864833610599355516550291441041533095697875127574735659282219019495636136398443196633166231867593670918963395083167492823849313263052799905192101151439933224704581309227307789395275441356255563743615043264439810545472230260138518777577252549758445004898825813831628650604295633681407284465374036220671862028845244656937806601401286719824039858194620664743172558301804030292404070132166505338957470109651174515644674360112690117771852520494618519020261333276638448378946865368413445875789911771492872869958661905083871812577855605361806029899464578549679529604314893989231171356442949160015687410259838347786744996944555152950060739082976463778541210692930633818918685096905620710309010844352251628782402045635725189478355404678684424705535659511835121023732248173873241863974996218291406365463558574171711030532098636117480019267972658332364086143640076635745523505423027191868025788945147871305349940209061652602415639796585581271126279434271246586890001323193776511058564210649533878951694696027400118912405501088898967061846815408403272639892740736554576177582780656134083534049268829661823031434250226160878870356830387701070538455474999040925420337077579384880400043424926567647157754784130464922031538725642889802302357170636477134631030693798968225357723450231036545272020892140986137085018287877859507843564704863934095475007629857806996283787529498833770342723912892152265573722974238161367267309037011955727304069220632666893081330731247690783470383435312170256329313993874824139237250614790730599958093465317919522249735929786194051172303670319455641268069708332460534671665619329623315222702562969269735391760510144056161368842675475998736828993996736680927798880291660160251843649899385574336286415605244118989681847805281420692304999101350320729870774823544255524368138290261401317283964056503925471540872171169913350243455443671208977997850232222229933670954107856523416736369902352489607929010508871822221386337032146875389622795199821304769180342129757646750152175577358152443044349996434851801947360863985272756094026380819293163850477303660900763259056689894366188771224726586887591919355423899401725773553701460303788837203273796612887836956989573623745908986366811936072276609872709776237656801138942864003196289131255333239199207688104504289732408497732606355357648524454827841338742250885355913401302743324132981779485879273909423010834433041996871883151495151851901352879817336591035841544549491360925250631870309653359820903782767465035937735841982112447298863633530287136692337890792452744205295608406620570788300442430593351238804663854574405466514242334085691674517269703056569694085570322021028616157266238477948498853159625699881603620910252784933141355259698747593332356647194548714930265193536605767506599488500895739748149151984980329151053164612779241241544913466969437805222573571288503116270556162774155431173362059698019727191069555356282861802613874594090089274726795086087894404498958214153764457828275032537974634757132634142929529179498744055753639744792824240426706154322839848863344850373788743309810591165308033576927657718159041339024202301258532135449327855767281900948917885122131048556169965305686504721836734361703174405000291555665441229215022940460696146597109460427339325871709217836126516183507747836751562996573325750721591037684584373480629759235961451466150605203753859325473956324275726451045686213869114883246353086395889726226389858153249666268244485693395319237324095720692139920145493968069969397349470327955273834642513179682890105488365427973131959888759066241456996857690210339305496069601871196427435839736783178832482965299108610215212520772008218587520944551172556758692816077643377745282550360320301251504591038965829757535732270248660822681202815849679274350085749412136954804787555520134876489305889517670605665459329167735725087668715778962703006390105295836645712750375218748762407366945527296745253374933883233409127940533295767561028692357757650972744105258380090424339020487320644936488741003120303508784165079956216914404731887875910380828561427420024245463717691908143816599499863883281398166021227544081448682295019334001372754741535370543088357768839677011426113768691404415948956725622909828620722714976577576046156177755094436991357089452814385053302698893647616526799961505366928711697168408627441378570300348534665505805538463235304506759707044695695438813675672203055346586151475578776380267714483544379914018667354600924179006748899088100129930621605097864471249708089875987401961535179977136607492799146775077432660638505207119117168311399540142722020539684088993612270451671048120111925598452178816980586131981792523181580422850390837885412300763899634993105278858093138009457097403823234321452376443888684847604196069273752549158607601920788778822981244427162122012297615311957842571016631783542060058316721688824509228699593719517869902038945863552753454365902006282723734505395055412077842999136636773084600831899352092914411309354645415669046935780288812129901605200447977228811825079538876640212357368835402045075300568990836646272756489194289741950257376573409082055396598346858059492361345693679484505574848009521416050966562981169355670042051413205687030069323424699985490482539225998346719300969472946534666657444562737841064072859746963216911818706517288660851430997971069784512994923259100760455516001627190429325927785662557591938483174589730878351875818399175115807275465886459895921042687679361697372696048869180271669874359650734072834558174468406670946548960635599990738311245535305626974553655772729804949221345400994551017872529905117776788629455510184093659300091524800024126656238564274177614604196706908338205292634558093216427102357681928947912757157538045498135290340058344812888256627714546603979423817108298515719514432885629510370000388737196738116483475538119577024453497502667729434158402693616437932472761291500675458473911051404050288504114015416247515973385549243008664594151070925442806787494495775576172822300481423006927037099136885924997878710999076948406463652907673322380058971576454083510888292898858686955580950897744297875363194862468926570819627064707243133014111841934613373021997577026363138998602604106380675544781099809710278638132428610242902848664515381108453128838850846401904598975161693403766888693348755070424089303823274069926183259138248423002105306900512949009997810469310800334405642384580732590179430716992671718212894396592083811482755107185937929987057647249277170505890529290822919135310811861729712136567789999006552796057841569780458462151094592620208064476857079677794745851787056482567889945307228646789645679186705919995245843451712422478791968445500678855101969678294064476608749633224129269041365782648964448179719850793297978207789690970455207134303385192645276526414437364774421926096524760224168521645686947301273348802673031831473273145695785079086486231352896650325108485027320790936413736752562598340169013368590800543628498330536125833409353482546474689392881511972142288066837788030325342453100546058080534889880176767103337685443254341127848979396417612339645421346639748416604319819467830636686834698211216992472437528081273065993160905059589526723554763843496949355068965170280402304325920199152739168470448228090714829207973745359888240649164409419195419139597546756288962225089476704941598622244668697137653400838873112901521819848067718620191218082942097358905335540978580326846215177782276620977494138123407047116902311474237808535769127805401582433830673051980710077578290729471023944858975718519769374002808641275582787749676367618846074024649676861265684714331323669276034866040201513288092065406770561555849507549636601028801412281803600333643814409867050921413718973142170452025163012555261161297702301977788556198479532764866929825082975390142437347535222746676369535383670003849864819712180430052346777871126421924641470546032770259721174958006248434282885024930258783218339054584437466657967838627102363843941730540055932963381574717438107170832030166390604354702724816306915429292698027216551973919344059483816125434003403023464269254891206386688271850616005146332466938634467439090417245445061073167541178843049912620240170287898524723064232044387691629681487484544793436382174403507354019099682454186917924366715946047321233890670010516130298140918912577731579456389446325930275340094161117830647614669088830736508495477434196854450441427699890720234480629643623461811474423961060532349785927043413738426796887399018830869896267258677611088408310574052028175221015210449824959646455859410714407594893970429659823876595640269663410347965118786646235590374076615175091479942204483809846802537861977446202156854458419322135899370003100743000793972926038917329623576626820082721037693584434511141416504219360066606009995905423816823947674464932044339499816380481719254027516538134208961386104893478873379970168548267165271876171430648593092291419736662493527722878192229949986829583833860862964941917711144922329208011810567996805686106280143561238016882300048985335235753712435875126792851816926808412900097532616824823846485268093132454928972786515932970945514473646022049709283935374187691718301770947952833571010626116143442730773311737125397979746117449694784280531498880877520423280406041739525576405151216405499844805562407075814868860239557287960612844475835890268839728101296275610605344067027001691592820371829102763856943240762866529469037047433652687222421034047967847259808584584702133169044023730158504982293273262298395480932341702805405510990612707044425024679498405390338429071787892274179045989033628615226702039714081441027348275302209960871476047899943947832575823438063756013907632127967783611961989382248285561823352010523261346790540167211495069739172735783789710046390027189006597859330440895180569606157351556651433709111640741428297089686900269703826164754572653943025935887876236850229545026444882137684939876111226512956516975004663089419616650261839404137554083866563313907976134594537393826290658615886225574649776815535728915082524727204014705771956091182172826957880333185860998844355682901144000485492927850311760399642784194648819584088043577477730184722142533886923684349335534985640324714140785378772530471479386639475870323097845157403698964219012381231876147572460895011406652967368051232554615854849012515412186274951687328424600532277535481238252361355251147206692807274945150771382721424406565634416363172413210137423085221955064290319575547908470692806615605571759333449886200553428040595563703086654942665837413277065450200790447958190710968398356675179967145409104689747504780704549095597728420180455775158029000892946571812524817808462026699499442201478967319473249604099862871983270723535165357912911338764770234134447104868326384636497666134792509898995065819257684664633741721505276964085050732494487047213358177347573528529363306645970298944785249073592246738396942920923559819248418868228544653243337524389598422591963788412156073173831301324703529791444039364318192250925267668051536327384028683267962731886086270646957439481589165500145658556397681077999231691493024392757087558983760181429508061612385451652665360571919174009571121311491421671287415326952918862992864779070234589445655881531513452016042672838080583386096068258506153009172764336486175930675465307230100895820523847909648467105717289365509094563726680306162467067275032136549288222392165651994020825074653609929250464447532652804381250593694751605095239760688051263869348017714342818632441045552919082905014185433293533410627366209980318766655240156373022992224696533454657566882426496366033039418297775142780142453514830350642458780275196110074777268616187564408002278447478725511446903635473003886445307685396686770232153683783416185860594550670364677720492426575081166748913516771807022300039194373421136843921125501160934485321540687378085416175966946556149360437473398367950670392212770896909507921634642502623683281416343703090988707657919484756517087851478844156245736606514612945571755025160520337528494523154701133506509907203170452929714867154384879582998895472223063608864463035005473008257648406010140731000667430306695055916407872404766146587324387945688682017379039837355707476993709666339340941656799069049429623419022885035483057971312363234120457821156886135121730539491421926315847838524249864465385218145534884060730557329384372744416588358151940289752588248150501415370710311344255125199014279495044532010089330280841709192696805951580257406459326615079973314055343134298381296043949792912120117965722547634820226774318628931144353393830479378933559705662798286629252998467396810709207995981293746012146699566452505733469384593248658337072312930592340420640626641857329197174009995589506679346310786048309726917032137571450600586169084543809840974905947252534615383967319907011962419778067191922048957936652232088794720973614761837822669224687135417301588566671002347133625139301336718115752000364011451288819171839018847610427851287693801260462101901512467558452076322017642959223690678404292306279012531144106628605525362639911951993363659600199971548862190918143799411130469798289511757774740560080031666699671978005874357300604062394554769535550326960601657597051322887071255226488958845714387792254875318263001643316155280134122358036161846855362070376014070944550341979990910814791362915159606199487863309083584004590056622056396248594901017221751337761312403358287616254598118551770199349270357248052047251129156727111700419168834709534950979731351500421950084838746910254418631615923480854141817989329502903764168903022171853510422879061077500305898105407224347537588357469827712202562871609922814416610334351256802413969422070860683211544677476393522171968587763026058959994638280282500890919800429747207750213939182418656444271501848698496514244704648247301364970136534519469751798699799427527829747138179865421966065615176832756330244970123584735910417269785016906380434324766498187721545870093642275085284530006142448594144331322224156637956094863232178326550552787403938756028613482309902372517888057326420240291829209238420744592822554979244628730639258626296338027002482496543451231498500800246908784536943491089605711049999164011902518769268862720165221306285586484346885350613534708064597477698584843310194917345694108515161386267280091668703270952604609602279649045268726486778380208587509967134771535037889068101835743912932246868378553966254891187448694211321012122857788507444419878603602443505547728744460798410550222261416190703173641148518593247034907174283800080562659924752313649273343290865114073964043974600127737308888621476643925265685791717101926949236744124413275450092868414359544976980919630331761788181005072119252339552405148230217538849517443662238149895226687577371013538641648512764761313655762572367333513173717900202580055772965821102692400970222646410466198961423179005220748770071701316569886080486006584644394724643562575536677293979809922410917194021426800045446038382323057022365696693530214882197875200202355037399140290451479794178881824439284194920510352324651370934642421154913434851685191845172952894862496237922201723407817419507910937949675596302351633425562259242803321702553555385093869747652372370914887486024815747771631987527770265743770235568667505631792451369749634965539397691547702806168337167488839323247446938691544164235946888082251815131284968385578053956941734172939260590583940237381877843368396312717263662291628897101689046122364039077152874915835132789028653115947942258075108022114838161722550026935600217827042432409648086523768429469947448888572639218477541999177041020773256141491391399561416569352838940426317424090991653339751895878881031449392290162866649135223857021763929285170364907666967370730868775275509507863152066748565675135980820817859145520065538336191557656348054011377081483013523135515325361910121559879468040088921565413094766967309744553173234855899810615771835199916964356508749880970338066812111591189110849679696953511422067300572637269090381974617091264506761919136513200463548281694057755750184528734644467523988570878707427938697670447802091662955519930361449583101737184966893574083236226107337944312772616352536562238123512155104145654897162765505287847974030181272140519331705240677206383468712356116391376284009046582834778234391276965691193217839545887730794432362274895635702850841309536735214949452437309427779522850092668024597492004692650712921225381320316891096998638207889534561338244362681651944814253804993379909453174012648722955636097451864724305530315546500512672268594471953901599568343466669033598119577573301421727080844511927963919299772966075844154367712412820784471149330170986513710565831706964326321609590309690164411494863798863796882394200037700939469860071791556905996822136710596300480688403757238361755969143589704124884279765002257103149059664456875646218599774866987801463975219371145897057210168368157814542257743412701295351003470470557633989838080613288131317799171090381238631187271867398654625810230118269867437386850282031753803314924569455253013765287340462641558349786525141702210954370245315619736586590213794628342786886206710905872745161118841550149821796650171867872802282502791335620710713401331508788020747832865928426369365601004172922638032539230702327709661543619201976989224589004958466902156218605363741090124006849025268274108117946151290339508047547129347826133916458160678658195524454216961705460048620310430120456237097959866091166404776300814290229253968456515808105486970443344120160882322149594358576244543995346405567382606282228180556828496019792369941744576586773687099971143187035429832151086091165667364114423157337363917651044306153720762722565229549819861980424741856104817282632317198969268466849936075206289919765442185469573679128654929328020206741209247480244467764806105763990374595157088201294790093521745963283892158966548554073551744940674444772120402938115820136878546621986737131026255814858061055688893661856094866792295120315689445427603323305266683194433139774195236156243903366857653533110643917579755294963857074578878534670651949800712191066134414798312604629688488502258344326731435826053191573963591804069719833042431199612580008109063694676685270545021338267336510082358158201545431531283616022609632071866552596723126867734692896839165634641234909107222559996605952601579550203120925595723691786831706518936705758008909121008134331892633289213784482831977140641670406640645971164233218877265096554232315965849536944738178188001669343587329474599343193595216129355734610885093558047680223445082554218221377915240572374360180026347916956783963989429228625907120831259714647332898123493968943957188389634711875330055668045046192612684919762212097423294407237593434298076206252542646442960108633381663595960549698307363251433915642337007922742125248063758351412804439492919922739262584365441954829009223174061866402687140351445992114846358702180663141319368161010540498146663167647484902304301808187743301392928813085637960417133281663852103672641521594673509863655643484610942986069602549453730486537347412972890186452341585111368882148073192019785437336465038723794496604381462492586218188096164461519840941305337098128685335283406557756877584449374731517789174705130554658598379900332652912655841528740799362090704284352506044109921794201552529092193088439490380225544323140820568422741344972197035318334471670857196323870638561362548361210679493417661998621656806010757329612784339471902554641368726856482467403810958515239689178212181651793369440791546073298220713766608376628718929790874789194279166082509358424780616119901195258738196825289122029912001250105937711296947257111640515637045908234250808027764823996726423858132265106124689946448657515183665749658483523238113700712779547071099387848075901333340571815796206352712869447966090401755317135911484997263381460246329860930299674320097772206943818411913398233130760873212541073060228053362391000819217978291120087960758282616233346781505836251502333149295275396323982878581600028094786974031181771022976058188878892741287502787914190356875759234362227746906483234421132630846266323897207155998931568249594113366007279243943307013298286800418214111318531899441030476147564183668533265650934947249866341364500972337559707008558964786986066751503025027691364423003798292113243032416451461494269421592706749771790121791628322582303032648339966189829050380486068617209570869435876323848790485842717952931460681555846107869707533187728323973519176072199255802934988633734817962645345507031675230567723119262581556730501619841547500691536935950666125757259531349419749936897332411168574488879975513693048944812743337399749767060015822928711183865837471693013207003372612865848735483044330489201305574269141665920760354077340033664682578489014371007212942136849367827051322679399425282063735194516550043997244719230326171931982038367143202179492523035442199964915234564268603441489137018841829006045436770520480526195607402947287597528437421212549261698433450272613911303944488043259152460161323172719065359549203128362530640158931339060586161693733869637306377196867976207548437805081366902004705238688043630451669066085858956773224944065606114097930986802159870084858799999097266231958521461810549875134655017279427073222137219507790605357662332876872485097209932675528047188758301853234994157927366649463528534969848850217606445335591063839384941420349183124527053454626721892285380514234428757379872589871415573738262576871616009176566273342730922073950605526744116648409965998903347652145701318505631818821437769552530682042640663571749099748415279229647071508070882963877689048358845709035432445153643596883216731224891784738102112138788480699837527382065269181683772060939717426581515111880104788995996822299562485051075359763526242064373581712934561956401429838556697959862174371448734808229685857085025502314502921858714234487350204823777246576268274400444852829003384456014076615845660128695461149847550547465521210470734191098616634996005476490332457377825538672653930185669545017595452733861760824380398918083363126429842916307635976223725631046783830095486754232313171620089128235381673133937881053126642497375627020610039492454263686395827721188550283371099534050209130482944887355319318632399177574676156684600412448717262533169523943077715033132520330170369884040522136587245248408091729993221338632691405158207749214649963890873743411549681708215294933735064386789050511397979693210239123170050307643308158705132299787146731239243544962985258091815983228290582687862765525700322427225881592658485144093400431553240730736691984690304692440673083857490893384110424505337694744002874514898203302770529494588596599607232086376519933652960201984054310629215116083444099724707789037314753678184119027999060546453623462903145991890646384926262870277751682518354198924522796381151916437352221172338034172583320774575907883661710886375584732858728532479886481689560481620374676706379269020927225197541739243259465499188419435681987644779734994580003348499245658697611741331381418170340119537434916571450078990581524563592920229189997164200445778683049372691346306579229018152383737164607469281862718449062948116803482017923318999637764530876900478157999615158350911615846489206721703481524769190666996447235561764507759458371461657226521893858509269316052115958585335897279137849859442875683326417762686648774266107782198774647147168377252502406239858998899196726844934485694063970461060483175821581600192373416355065568916955522568006453492850046891624880305752244429801945083861307489459241836757631943163248744202197964798991825016070372974310387417538894937720554738474647386529092694324485938542666126192190000800439343525777851253541463964957410958429667630026321254392037122238951033813808445763995271193316460886771826827828334875832581858771388929980017135374217603748308261531716494588551550944554308320173652187435145188786768225306118758896867689935220986328656022164803770782105113156269810915409001167628719429367466756531045194776475028359889749546405261621641249188565058745142245480615560928082771949181102280900262600098814796822296239124688881628330758630748180708624840021248963658275238253510281952234734927155420648670822745606949795282583291874804058711616617008192725844818606506279716158582859856717695073211851344539785056706735681536401527645130923850701519930520454648245748100777812513611440574783351411141008498289018022290167900542395777374579570174460135449148094897126253127642496215858913188502418979486322908751454396314954757729130582864426514584140421292919698450684046766913777530967445081404822891150673592141004304373157465052932402286284994286486980367265171576680229813733769523940289874637513404395486482839443325447265269602905563615108690593027777138039253570475183730613693436837291365592615864664317026879516842508891455015305766556074845183677557611252771072172135653845993932068132131895396288832962898298056963094303631181438696501501276553179412635684192001754972361948895231921380700655691939958603124059258274187742907106728053098872757556497581619203304534284597774400978250670279489037914483448412811653905533690246689548068148903889994153234608747078535815761849742046924096055936432910309109191283872181752336258119338670719186491856618852601901422666445440814942259299307305442407999246524561878428126834576607514280452091019206508552594096248388461652473769510355271630437605691093024526690712465139268055252237561505757659721986108500811957066029602732727394987300121134480959424943911600996178664317970804250119346115666463042185622825808067703576937649117481778283341371779578228718915122308230515937936014704082939514241016985126435122429736130005294562929689235456376596510946138200080249897869034287909373933937984446428261400268733286732924251656764308224210097938441901346773452649858331413949998370292275951675275195115724938075234258566170925885027841922953405713610404096289839229263032048694116001277978308963086173831754946687014981113448403922674256063343668285114738642181572595448410879178227357166830586388857038744457861619148158738029664973132840341278959161446924910554070449161691212968318149748777045312002740272959437702736490530617446887951450892166094650788684694585097394099405053585457028916511776937884513067373579918897404962292934961829426678555523647989493910939670339903132476630480940579919156247771154752632395714264400427528571770086916464604213164980243756436229815013128085936296065985355394778919592327597190534226845366257858402842726344651899437093693360047159919339310275813333971364943348520464184257080784657640589416352508328857703730032724522351644637678724551399388653196221048903465724054019930104561978941053766177166171484643284858126718891559309809205246449043835373101700503844333747583053099338737848581449242223900456668606272246201875402864603827820808918794339558088119388728242940067450262847377580418862369317097156978685458260691783831317778636118886266955784152141137975364716840367531261390396019578473924377204775020424389224578200993342595034104605858133640354604001660679613873595259462433527498383518084001018254201623439449800826997364569809237068370999594059144884532471522948500167305797541557598233129987813708507536954028281270562047132642918947207700634238528079386175919871945090297345434345119752610263623593962149201649334489761727543493821430788849329572476554287686322157844830100243288220866687366533486111316761571277293729975415260151775954566045172871874917007502418526526758635995225246338837368608692347324827089115570457965993636553331541321211476113048188670462775295917847984777126156274492938056218693862044920108076300634073760434473781364822337632474747140071290253437068392975077245575823649884971038967932240140230371259502865293259789992465330224250252932592332623995501119283511187281058786262592477654191581711231656709130739410706365677404418878708618921447459355906736893560749385689131619079402891655645370401148986827388320533587642132215207073793742925828093528447482150308882883424677536250668360724264846875935770697568585331843079635402098696501107705957688315531371431214375921287788124916374123762284185108052264364396941123407688811873146581202417687780520049985137773163429296877381915545279106799182891087698215814348616667275884250075970733585851112430567073482954371957774342163449005476209260706390396875817607578816897645601251248306342749781099955534690652915309604896245499609468041502060017172514079019744660682974837398026262650198909857406072890440906498644436564756594823870415122352306821496681038168449588195665128655679739396260320168240887013520292812905211495376168884753719137140921889056771526543592745899582540484844527130727368348267851825201307075453403716638001483411516912456084368910648661830078471976394013480397627490132241180142035708461016853781828051385271912816212366716646177632911146171078209019047915408341495983705245282567746496291945858038706761613424806120575487794236781060105568485968359937345912878853079201359859059025393720006788091155934239173854955714421512217013002056335238137693836779210947065223345181646712112028779344819027127777852797127830525200250978368247020977241243241283015057406694166987246218813509677581238130230150882149029816293513346752433037179770678340566000361068856600726477285067630140561686544774618871550775379514358966079982788107534826045000641509211927619899561251868802994840879324560822134454925541971598321472958555960338572994190166626392316218395830802395640163991857909828870765672226416018645527561270312575590302614300081641143933282729654926372715803909851172626433987709045996953928983530072139280335579596675309814983768474086233669029069897534207182786464569925442299914804840204888154180813215545698651458368672987501285362213292108461492430186638172948539291348740575304216236570925871199683508385812171118446293134226398886753499221118660213442142159911401761178804548145595374262808725590983865614896201027314336575423924971540200636535045651353462179910054173113723392045183462077683338915789544371329059641395848376946940716579444861694268830125707302924017995540021838905673016941468992416308115831584426111273564232339869064301723930410835952820694355381738713715061370867241839836865917538898500686329321610083347465399269760273813660688338012947820425600528192120946246230700303115639168586968396638600405373903093775532997537641488782261069206511828502284438754184306270171569172694931504733758375149483479377642791902944504788444243520585123737909973607302107714863217193259614761715634229289020221617303205728475272115676884900071526659087848382289448860717715390229123839458244141993390304007328961513130962744179590397930179006384622447334636779798108694873172017830939130518474270091050197311132490749809617255827610119794905910328592529430828830567854224757784577483777302762654414516550017394549154762614119323243476695414063177367297307878893060074599327432078414694257179190264890163717729450650352807143526589467212497739592638857391381830892475087177464832754586732924354008018887308800611385880734049052908267922654525578377979910776688909088492287633682618498504353469934932948539771043909329281334218743205792919015346379488398270118925522448028726685794294311537873269536705490054278420041193360795849080458028663727457074742626116155496861048818531640825510510463676470291097860493894692899181805720866323375240398653093905073172620261464925330632983216358534594501066838770968672967332732010961257773358167397777079470407296645837524788349315216250210183851539707268404909252333901297935399846782716382557428743145596154579876562160563298805601579980642665960100912562334614412489709320432249754123461539856138802419271699450077328096142498525957401378187042671270613588582671033864256800507149665884820948081046048905134744419027603421771300609124746806415374108396567402247040558143210016164005332414831965093486056539963615615085704744525837075677300697686164636659419885218579521943428848633623157718070809184667684560070011935500605483172131407311173186620277556700929823737888458817406206189548835091390804834298264248601209977435191089009475821207719060781932548337516869553171456798755023736106153697247228230606083419989907802895461984981783556027759952168880209294097114410309987744999432081913934409411075879751533553183878866830546634100144920553541644562060049209352611415819303652284893233624531496438447428972136008634287896324907572081131277567972482437891111807534762604116210717301144042734810281198374981473237323592266289459504909894989437549358282964648004082681193980455912990744536682081673374615769447006098080352869233310608641640433909906077403819458683039479702906710014207054133372148027978089098149200942433484933510575325659746590875984539968542215173438807620400955612609062877688164765410418410001822513883029349665546902731120932218944175057517869724693021941037864706239042174564676039605155198740489096629310913431494990714813657281187204845210277903863902645244825491706153270032067189427161402897017124735383356463469630276695294104221893699182439852821787156342617498651410922561562807387955572035592084805075150841461702537564136691382005995686479275164263335499722538368100070820641857196658607193780393191153327849609692562324224452373664302330251469992080064411906913877268330503748935308490770863342713179887335294314765090821124975855197107033074177315018980145341147145013239706025555660571993993905189827226059890623515832901245119470576385037620112898654594819626371709053491022270705858601131097457848238129315105635074623988885806330052767544581123388563297126373513728905965485379423454526211146083374764477348400622826032169394870968793581361421452937627662592552689611316389325132126256358864916725035227324488531854822957256192072247670760747597736840242628646337098104691680300184434080195502560816329678206839339979654307511362662876125388446094779432405155997232263887466121710111738580655308513305914424759531244532827151676984427637216434123982677251646024804430418304948621263174972008332317070397752982957885924165086482731123487828366891169066483415361474121490582632327696035482488193053716095886810903758572024861338372533227017774121362488881318056714127380994069575537814090365270302581517974123280256536979064912073799088618473697602284789716626906035247559681908079334789749337444292366330021884067628830007741914508346627117731239092321407743035246209757538771648351882236522876787107363389393905528715793354215545237886731503545951022394357883590373656507580110279986883906071441022205355298776799948074002105232005818996539583736889610360251082629064399750399804869709110027127862929612301053595187449441980311130555226614696586433704426399203740055302817888783482933182683147462174699461942397918020971965717930922403689894016961414318337413121836985144151194276925338723083769504508331968040909567453378910840386771850964204237543931449997580888662782495670754677009273989860489932822218613581264757711417632413392123541000316518755614485714770978621471596720067333037986993183266744821820547886117806035901567991840409190768792876641063634887224840349936081152965752282663221022696799829503861471609025275138102042714225043210532632987257541839515577304246676051252462274872242156756913485368978918669366569812400473131588951272663676033277407046864442468767457322640991643161622002911815268733522140769035581906273870531472925043180139544906291415012299285607551447430877178383643240916020148728973187034519297012302532944404310444474039587868094157521648007354661269166574392034461580275591167940979125000620030839309469147516050443105985897777715947235989411641885777867775719128636289350948965226857705063627135644018959284723648006894112276372353536758830804008637758703107977156083192087948971529804923724060557080706873035788728102430362393532660916525307997436578217958861193551062527934833060660452630370136644593343643595555393830564514089880869048411653819624598764731201600867852363171413224306734624277990328724882091953415751133725228058226967727180193145143894178542120217123335349153447482087709662910962965908778291905713053887906411179347303458335893384456565508036341145873130046631242883216934584020388684715230754757188581170099937504219454985085210347444843477533578307040783729157891970104501605864642512502066165606654195722802672289982436503671946446744364783080708143596114431033557325873097086884734357984015979622159264033505673114047357504764776913143117925494426743046837559893665601750524021555688608609786003213168312579918499308504594722322732082522445418293664134448835984672911153263668769931254365240665258868886057347360365430274402759133412168485972897627012451104886569446587869573529636891822065552488082384671731484547864074396466004861352068963628410970789680180473861772926242628802137782214460783597761922385270315922240934317584639397331109553306492815524802593964198957442957010276770553512906017609687114842982361961059348713260225702430652227998228981838442440333938683439135784600805015915053539283653640781331483425393052142187642596240587284330194381053690334917248348699023096472697823248053691568603692634225893794179276986005978386087184806217494603425320791589021055323899093159760705690429000817234753053064411214560581675473677669013335432807537185393739860231693566397923211714206654118097307713278763930977571336840174570086830213143777233108335429951350508378643957445342614894808325926283848928624151515335201993027538376068363049239076953244680098474676285497945207160894831408853776315520386431699788271382571313403144988853146753445065578931001932284981139029823705733689973201798021558043081112932556103437757076280052802569182753845537573680537187308507315570682411869502455884992055682943122961296635073891330953329911411132997136586391275330416567438993692483159543054737243332099855270288376324818456797234782565343662071012382406847728923683682012637126656443317804692788251500694967978145150059800474042169990707892560506968761933620747907834990545469751887639807323613655066517068929907976799475117509010726665068257230095168632186688285779592316736211950343884336946941916374387495831336824540120244541238682810691319911086009590898768849807577629510260052575093069075678641709078508137876540078124427538817085062613686656432803351648227261621881474946867549137429606353614474821585543098734556414215428631331640826175238761360653947638974768323240830269730142145199798269769304254338738899727466780648772455249656077538955498564530961376842175398034596694047772491807569090142589202405481310305173962876477825412198132045130017438106385272950214244112022726457479144512863403042927012763248742931736959905954727680197186746104865961814359086230438861540979494658825360191425403855534749193844749074503457623612906938872902920502808018564873196229150884564937236804839086341762192492817951637461070242851205054156796728847429304839356268528994547942108290913188560111318642662215132496477325420560083862052854870744433310918450336743516630794628228282573879142838642385307734938777981520204928619312925705978188225250809837610347688686085817025115550489625615319288565801897775177778747938179370906121486378577295242270463169283408195919353736348303755007516257386102820312603914878512257044393582981148453708882726961956940421066788780694750021073111538790745704989182368744976561660317056951375967179539316061770200345353820975254522878676031300840687105241962064729890185672473926304920116678761825977683019536275222449629366107362958509191596339701708324853108673542855487237897801740412242529624078358900761440271995382363573389316687080267719724704999511449898853033357041230368299458473737194386361565494659081271321559515307058212755667421746939497020709252003984118841897398458667115210443022983541982203672538894913704615985998928299001444008852064537772434112301524988909631257810895473506537078537078314240280313963577585855431327621582221133159469401700140943889228905314703391467824845446259963308772567641258802932028286854075659107072545341871414992702606283258998389462811405781870310794116349041307463044593754626505781115809687221763709824694377299226541198197868707928484438407034096224473162845160399169216668921089297601130947904776508063373601408252449817001119055663863616195649805988109918424610471838667212761200579196256495563262127367170970123684880714402495033485667059842450618621850546175636432383011262822698916792016717057862327680906754409153697363863123399781723818409955621396078846636367312252692119313172313320230592226633561313606262104559407340508368967056632137185518239046363577508235997906307317034411769310130152904715076384439542758024747092983315850348287830696408488411269537073522397445164945021790659013217391234257404037981791980196786048123973886131168924398504316868933610211459718539562839854088484129584215602014911443954453466594895026856476767306573754710040715403963491074749034688721675194822720644528738534139536033748840651619053259527053105273893070637403793818570113480323972662820118774372449723956773950351514195446693721839548030480411089272942005919617050750576892545941272783441231116303407466575835275626565625161599310076728589668373986946076853098829990747507423592564623821231140933714182963975047856536279618162601985520133613667663976738501956293021022642953619072197128508145703804559253069195209117862475485618612197129104817269336431362218287078875806886748455050976620444248415182641384888632726640686518849062991017958570076843213845600496402576299974442241148602670416824906099635231758264736452945865851022050144910738446775554728728260496044635793947900885583183933283378825029227204260818958710570095285781425241239258391592063483177599227403347964871776660223004421474691179814777390922991029232845595293029103490996845657415839421220486486298220515053119265175306796690882514477473997815894984797084161765870643865152079166613415239586311788658520993406768811947426812984081249645587130161405468418996335163269075322297996931299999228765530685762942597506440950198358021923865656835232754663224700883274825024070345682485162178716279449043690796647236053277742480989083076788296238137586238664715294214508772263574708680419455302419091458447885824464275062016691429261818142249095505937011161003977469152524761054635202237039519910750611430015343891821442089823027859784259665120881589061952226377434362809905019043413814476873508906706896734080984271856320366667863397463121227572061925916097507123393197707966266423624052844443425090189503227998299573593789173340199217033916582992191031952723764305863891228440793900025919924669669705247096949198308636624065641078893234086251711597744138270081365021370902880742275218016580526652460545880865774908834207099427207735248570399069013591572201560965041269756421738357494771719161539370951785422254385473330090029711891118798499399847556396914226355751677732220160836426734851342562191522801667763800411541851280501464639681830307379958922581594500188434377903063571731895498123720209157364941438232653298181231003190696261333101599462397233653783553394391824399275885988623585363012386528388123202040067855483717343819628996074390687861486871596273777559516035921277505332411186565885887243278795395981566266951697355523838970909508427866960245874797945844139963379759850243799162990406892287875839975769336136288553333221483966754882368409906687898473270951490865531539435679937199703562028639235400050633663074524790218478774911106337463983483637227426690075675985384065696691236749438641999500480361097516117665624375999631782364605941632185587270669868585357719021978675186473625948414086726789955356458484436629730759571194783770632342590943144979028215876815660024523276233064989028898326580666375444869082951441745529163195350077345530086980927249508962446875652326886195886335363106072195122086821745828304134014191843093950634107612602015554856382776831469825609362988124754882601963471854948019749885875936649945311753231738524836790335266117453253038228953481144911525636008904787586546070573162079108290641360017429862885652665642638585543248277233676275618107796755710557178037021288129651798595315647815546933023069882415557110616058558940702237959244464837971699778696387541127479264099662473256800921365370803521140188916546408166315094472548580089079003603828843676092127951483989133832099990715867606149324878519526812057641593764672664378117974094656659527238459194644975029868067999870911135458502919877318612866277738277023358784202758758644923242348923090319958936251934674243961077429014802934752705126563565716087890304328221004305089595046767849605123631791544282713369751712138528261684695751213363698073030295507103747534279472203160095298462686580197885601411680014415956858878020038626859360905256126099329645715228784440625495722509372318085840296791675722378201137286637322106603861175050166399762080845996097539722023204852028904290988113289329494731132800601196568157998173151188754883878660746969049418234036340044593764708448993454410721061005421620056256021799357376949371540161853337054652425888193713691678409373374001124758123162157245558593563473240209310289545294930309964840446958712212375832040183799270898895404573833637661541621898662359904298485100650330809966792180973493617775371345213657988002765674261368707293949544560304987770518920251877617211053469288767688316195018804927735544528164553432082870620160536856963546522411060998648297209875106150073925772122262414654328278454721200767616061189750470605999875955487022788893715357284648625687997946613239844576307971700015787574321737520497596179088480837336410046346341942834305145281738792655029998292408561463269580185185581464200505987982835857061714695242001388307338572054355198155356584526276114516607071849292540842785949041241688631333397766642519225750523027529201363872908457741196742264810317082169776666765394572992176219218628750956074849019930672130979880686265665511763228222176636144600524913129059528449875996224543548084331324074815309632723231433608753173859427347008907117927366750062990322399859961596463021860674870751028242342975307509304772141278383433802404053941492613405966649014106394407410744307933250989820988738892715527805727961271728524286828355194786759502030920975130798439490785814973479011668842732118107658348804674620061985463146128790956663065743001677587975443261539354593713304755928346746558576061197869001525333105218468085643604024019948140341830653239021196266446339534998678413326917206428596402554499488285333996663551826530417160721092990523549398226758123708749647049708516171661296373159251373258135380674508419676738136705949865240124808322703656963747955295660002756024085541374392097936212687540053707155613659542486759602440221680598917968777578434359325066863159529499960347068232227476259872518454439863404439354128319816210323857685495974081716631978128782086015981463286839882166819222802839236313708321886205690589241166611396674112097071613793751654197510029104664072587771666964733702873657505794779514397335799272524294956580913684489895228646176820769528674557561725563003582708824367531164867156616990881787588111639155000216111695514856097957470480912110434668653332810910305031272413536989352572337316004765692495302268612483503212530986781844948197257941221577461309606976559569930234975045295280613778467822723863258975156432029326456617568712213584666669238107273386117404683533773935848376861309298580372729476945530563764227416155673312942613371786289406087618978155127400197515780779749736828775277987375898387936044638313616906886840812573095277142779668630291471870399441731681155430574099954366263061426940192625777671400168207023665009304921632718139073659515664021772040587328947686822661342847933956118004079811102670813349074943659494357527759532197647069785396752775819848983241807645493822486694331699020402037874922764215193553321573355247598407874071312559925634826684535367159118794232965181008128478279745353940794493436389766603611708400233180240576613468481599901303770149158226524875310596336545261240918060654081164269812943821530356753505950866881017538340936930003571196248612258833949008895758042140625158401597387419607772594160700271563807571791172804024605259524884363703906750900103667331316332164627907652988878071625463345841802210314033973706509938361839142028985378372000232621775730665238282620095158727076704923170578932945191235178675997895613126988906674966642712372101878626071539025506083653607299718546880234442406331089548858443928085101300443469356864586598027907537092685601574745230773384376346619645246704901733713216419048376785728278169575118261041525072802030420063482499077982118612072431388544788606573365983890712619399636234271229337405239912268301321714263571670657623472081178540968928845497359833626734040829815858675860672620830448461289933525937665816021173123465546707159509127140745778588205883699861435027223561785569471259071375701596770034170249790235467506628313203642987441528402112407160308876213001324828858577542347158245590317299608879036216268568929418722595581226676032734436712088138089436898035013006132547123843218652227061715650939937064120631433860073190014544611672574506542548949753000722546461191842244923193029939576783148324578352568985451032920112521420102807997458942027897309149743663790436163755421342831731690514307895834792464729920981964986252650070232813325221215389902984401656828651056757968464580359390886604113817940818207477980498882242923822913010597757716371614392606964522929054832778530424027791487740371135285427103196266361044120159613475419576340440907981518846747016630725928816555778141503008863936917596572685959707370836870387268565386953245950731365637130769169881932286929354168475319154025446359897414413232761645507048653368603690606194555722123767260143874967048605068180683852826258633112596267382586311108345354694792969053771847261146017927689969269385787873035032503019917320153176318333499215985741331679797663588523198061466916317536063664702504489449364689377620610864466036112170026670705266557817751935860024792687695423386253966528237124559332707337462925827254759938323066018304109872302948680695152740650394234954803752718075114363916265132124461942121530818757062711619649645255777714160596637893712650536867737168147366278063444117191809333645053034337079366004591837081420430110476927308785737802950937725725208418010847866072699071417325636149987917368728450839885422761044426743788723367198851407770004813728731135379907944201774227348176865597655410741606782314186111172473507374260709574202375130832387323414838145013067270463643804881621661608555166641389639167646243877741645973139281372304052997566696828631947715158903035093558049083986111981825805707227129039190018417770191814907898265695371699609370340099901715107737584954940548706100701720542365998676650151213364384248434845201713518319422144099065352223302681327686241658860474960159277937237750913538857300681348845648833511211530652405246707666480322536590145673304714462629950955711563057359658503207761965201662591082403828706324247804439542160440550556623269891496120025522568205861613805110549599795743138164901552916478527775115503594235537380195326462853489445081628568641330121905322930256151285948447696209674405055091930529901846136612383190919184392529556065042541952091924935159293847409032367918504907633617920766235288679362622249824269888257708571749550759781269590373455213762032492739625427367299665545188117117601621819061213521252632250226924152106513830163294836130184750937824554038444582119549911505732856117461377764565899557546135671812538197417839573742412330929008672725484135683330747246820075842426706031981203849876638519933045118229357770359236422182356548039275623693109981275437197803448446100943613340166794595186018637276791483167541314352086155798045541145144510961748031606989786492509911400964244334431330710553595735267279794641657346417443081707114040296038968292917699178871632689420485781714164068210623762994349750286411057750071421524467249506279140131662588343539823340066769495832991051057308483397706308706188032478395025695684723705096856161758523622128304710540167021046103008525634145123213176692817655861557369966572495575611096230221320745118389705426501693825053765204894642153589180654596366674390182496394317463449776009530587049829021764856610723524667853371628872694157209414091105715535607738316483607170024480258808556687643708010270744472117937323441395832803485919599514970048148766047501848570003341294953493975873082671196199154084758356360840353228475338561160594418167492786627842217574902616678099316038485655952075701174917240093992836619337968634085007214145266721195656685993318083763819067509117757515671805752213305317101279469130785666083450767146754323688838944476030539249347174880268063627030322725482314287833703700398995798527079276348943787575453836487947458072309186922983364725113773065823887073412906418991172557538101293333619209736077503444233909960566212954114698814040593222436410872622216135570872438053316482428929304471216594711784549907134923824949626171748043278854038344404708351029798190973490057142684974286153682972614707541856321655844644888179647974085376366039432256300007842343354619823387092909744592360079290530097736136691529639292575085940912482375487714447530368200760875520533825761986026948685273474240759223579815404618173054584012104618839826139007164801177554437343710995183258092242187416564604444667789778445426286028731731211209080431072453124346511475658942322381445046704588310307804577026423322308814067582554922918451018632432018900683880927411382876563928981284504964228218662759630100725765194398503188937063224838214003242075306585423712627854622659960567902001959492409936169375994093215661752555310041356718962702893420596788196584924136563107629266440995512752761935465985171126160140509651949327759163641777860583525826053813248738218137437080091732068915717107933653549683184853741170447258934364574837461650729061081902748045107222700843707302016119547957066917902346160020493938559558649982429609151976894227554337714015278478565254148541011116023184411506957729755299838652862390430737573350838152763117311014997664772992207066596629554999100799967422552183767513520707516164247097956203928896823393205287724009085930388055943571766893256313373173395533742540367128853658981757012463243846800689829147142554644458833625703259084120323382383243519853945912934039632949605869269604769921982363386253179912437451680209964795668015235394407387447146456861742420363194034295834553984746278235707057894444539619918255294754237546741874121649982258507322320602595631466754164109732311697348694621981262190856353725212546985926302935158876377854603747658873839850637982573521678474143043596970763440981260366055517811222896132607949702736121123023555871466233057963911012137348625566640491623077196591322714362586302029333952329202233976790077869670591058575748558802354104699009928537469755384323802513445603945521165877215079817637502363837639256548274303522665447016679574768845562108493036091316443099137660503431173344587266578129562081017618924372250426380143190529413727320217737506806092287737045830877484791684286521125269995384588726150607672772759919107678878952741075268486757015114681119586570075757280953985246903742397373751034097643820156190096396346002998607436939192366059252829561429919186183800927631341574065624759738286537410271274683176934802386988595185110411864086023764350674062113439605961205334710688356842718243857006548575347889983039548099250898502273891081824314121997485816540667317570810794059560804020297929283568332078485573884289301189145577925473776602381268971851670477348634023703489817309228160433480686302443447648176800315771515150008272522515550775156107771325141897283251233946530560996503102578512743261633394247288451586228342472914432425234266770161729624373290477580103456619339445457563493278930642891632022101743535584040423944551889121899150192584932401931067057963256363642061199665390679080445170412441199351158607736816286466306062515672873761163773438477384012551972618559619435483353461057708999117281460701203053981301270277182879321219055793569617458387967289992883499000645775311162559273788550479368668219193216646953772228607604520665131498088261325483952376907963001241450199782332163933021651174881493239457490726036005524285917072979058536458411273028713113725210050280419252752123025048424220418480754719213115673818131722931737489853814345231058064199703468980005235567675711430485086291460373891332320994678401020294215580093219766722815498885145108026560518035097559855941750218705353188746106229363242746207773140584852645042826587648588065401328026661328714247373599260122135897796329581590874555715599570234166940018986582913659193781574961900159875221955721587938835709783893790853180043230896878751586673908981661544936579200534407126599057374327455210558755765706097401786216826561521753703038927246874753905687594951206090965563034393182117917411384641036607462333824350642679166050043387030320369319185438539876968176953035728909951820580837939992139451317324744513452897176227305425022429227510620614036790716899524737394676532076906687253759310739045713653903709393871867059919225927124493796959513132404232901277918317671206536229774372809004342212307203935043179526537847098433569835140471971858953729461031281142216808470866143493894471779422796715217355917568912309655021736488343245872548652181116063698409899445160778474330951136508427261645543409251799074335097410320906508272514792433863330091213660746575222068303558322849695392542873600158877679523955013769280674299623075113134412890169170313140529551710920631302223865461647733551518318196489399390129775490700243779802308399953227788698365636364643585733500259458760268599168835713415906896092693839293890737116915314484456043899903623763322219936153854762645034189052310694922073314468418730134885512403453676786270044721627499819026482344845525569257239859954559249657273006463449163087767905132468520434958018239835390982786553233815186108258352419257981047368305811454587142871125076559991540657341691284373725814875849404666940159907844564645621770323227659962894097126264819888865458186362597086267551180147305953479438968689150319034209879974665847693391760934146533830822124199251594414352120798404107388799622932494949452368382218661244947307355515236023033534265959855236484761211713347878507820017516155099613145629094797235197598987686430664315286960414556535491342288106140883839681190916494388587614992495401975890259515225573301326168867962791056922738110608586453272400631189977062274722144820091131039831496957120800850521586594373063800387146450249265715603800131430475878614051979664729510063277043635208433967285483538917855849222152586977466361646533182806038632603178825289346278848645539258001986199709826869700485207269219002825950402808815513966492421023297507758918185951967864457789892395756289069885626343627730096859182081368430138454576652908601027187058158818890467727815266098867098209115320617134436464133640875794840871894509453416585924558956509533888521509660998250429717161037890259052546668597273842428459617633177217060453920969077452564312665198924029283017360654798960028563404710815667012401522095622466718746830892514527028836170576396962124406465547642599774000784572033877780388544050514595314696921118497925011923975841104388646040008688052090607910778995053252753663822749435961934644234466169557972285017063516367805375973608882576085597090943959472028741069193393937583751092294979064027899807315446520102842478567822422151863066515803655825789637801702007573671653777013528049244546427393158911301317951341340948382580972179511029243802083001729657597202113738145350128182797670831400261657699376474376227531191554360251151170886958957466430157976391813926267684897331063650651475825231310178543975139874068954196104464812070252251635651325574335225714922833780596144007132646530966993279193848962316246449687374978510625507647144790938445235639637129596003992644980804453886951934985933637630301050322373781942322676584820512689929444681758595749939833429037525158020231184724551462151773188469257928516134005053425205445746416294863119608042704734941344891991800509986036740133403623403690587199792485476297445651522983771249635326402977090084245551927971015343623329048646535673571196757718335839689962855415928167033577847665881670216450998078757247937398016844372000097212685104716489175290797589329150324204236208018468244388486381046276875587265226533091672970740594098438582365779943682397270380402562520145531402327912828102794367363791412632414670202492905623612609976076660616341942346272282440170834283902130594942078416740577715812495814445824889498441104384238799004690126120350767598314912785608852601557713241050276066837807294043100304298615331553458981929479777075486594629877181376446335043938201592742940293315933691835527995972276186930321682426136457433593566212070840530071924818764130675554590923030947881357953196420849138852558614798233631330748828915023454571324432257544663174427908490173504382786330585508713703736696780007399585760872178098442021114473764817879217688894669281904115488297658863357876807163248836723381820925907439689096436724356257822761952278249119226124648979376702234012788056933057542314255414393491942868964008703908970096392579384945812551543273117851736722548055542408838757450368699560479921685864673883489512437693592299852756351226088064213821344595178198522490285523510451407153051137728965873044386089582296677535295805197650076514821667931860590662385599539381805286332923938037348330706118068739300443120005967246098149588136938094311278088879439531284271078476310906215988938824921633052492949149095710744324699328869734021182006050337016046623396462520130691457534006354657908691334396422122111818992126700818290224137006596806019012068771905209033927469444487507431758925556689917456012745568016416564866424237151843272741807420469528389742360918582034686746217873199600717172876781961679894634858891657176083616794647008366655152209553701848508459964081476097957939491914999320019521373327036292732675134328473836394059697214987786396444350230857186842469108858490023750382241319540890119315200674868070539432188536639074387439996245955417951081004674631781817050736528695968044057775446679916707958287857037310504801715157145995355148140517209832560386414956846736195116036073621979464490784596497543667793507171131096916446300785829620160243248065340954993727289232447927924560900193896999917741102492372213637357769395466165478543328160689196354720607121947371447568286870003384453573097390229650187195853826623931373209332108212976798303389379333489721778779603612228534575694108877284439639819455195316538738294028018722555531978320659683303711519515135754686059226991559321453655063348195948470975822359393653408558174117863201775132547575786046065466482227684461875250163516205080255750892125599895346234546407054771484721843802012000739690029518008833647763207649525316797180386263203526640683187846529045117169057938933198737921932562945145420067813560832198229506826918906267560896964046026451938999008659380377485994119257812437003466609492754638360358844957247825075554719589565742339887039631552016530608207015733010920017595241214176768053442228458327792100917514099434118314151923468820374189620381270189371418584410457205469006427505668303387628840028062674786891796511401037945921046660109526903977686804786820604144209850088662073456361808659868275419095731071436045047778734759231308035456245388637345209360982165022738002058148300662800610652689283952430202976057237887909797708499826792918015740613356274345283409380592560602193395054879558109547995446704061842866257942001123381498482662388436269351403764160907982459461018244478425825238414255232060562747109738935446086461902038912501272738596179082951419196708757907258404519924349285156066863507102516710159772583266134029302582447262176399251664129967177639364144818706470483210280221415713319568196550986549716865586496633755247838322216680210225679964739929578618539804633301223062078839409350749384680250549806346068536255788303902431988823676056187581247980691519916826128018212713900618811044474005835739218222633409177779188484986155723854137361148836159783949968922816385282039947129397248115571900723844257402513578109975709504758714837316098221393713713540520882813222562890474743741447572946213236882076860916002331963091948888932270154233495006794935041880994084351041362332445175488401186122477796929981787765528494693547687287672451989517972957700659686471607673314436107383526522819414065942363063515324602848476143336009145314143994775274516882018286308944508399905967185438290361501601000249077190986255151902303560977020416547031239495175094807919425675785738345877301796075717670523858452538409044063792511505102598297689884269877827404391069409637555567877853545804835136372099243361083061433547161022372933545200589049319381493572887725726189055493232888711834705127115511396067621375617273173243798443479452046838228901996199446494665273470521464419587117281978665263759502121502334299409700859546416767773606092506667355946469386590994001760712508948336540571308652729999334013050736610195092308496401847487355882293374937434679252947083684499975398351081144107201690878758530202776122925383059048417232214327760065446021280516604551407538034883058469851223013861305250394801613298868387772843172476142971690297227750135985416236521430324257680908297322831774347705192615686480711920906620936853240372571237408982729706445686124102530122439422312352345267532103291538143541972445547338240635476717822358945982205906749095141281528215050318761787776053677839682076156045659038926228147486609565518683026004974917591508943771020219359920850553711354000409343942713317521622545634256480348624229115463949289694852996779856586383783881232758588659779420210570742811145124041478235189401444143511622070550507788707664123476330782899173879809762914315705748331110954222637058610545386298533293060207797807280605198423504871403902583519508433354113082820886022431191681814551964290798731283504693438175758803022310579233870212305918324464165849765789448364954949352970869059233655471593744748682918491420246523738587239147749189883800249317596580514290685220431181247091077446609234296995051949158664241513146824658597175198188022658408727364559254956210046887511053919837834470937592957573000545249068194049247874688982981033091726376187708524022034187291709903896217287599031486254386678349464965421468384820131093722715145095864505460426057591615346266799135632808771248257117314742174192531812875141166682946217867474883270114444812904402124375249596091046704184101704641975753161431043509380288018656308961346635469506446731821081951751628310690001368946440560876658135585859159804678396959796879615377576580796548979343800286068918425592024558460213063083119447557350902754898392655412242175895225503379531135897407115535429007365544695133122858457723220087831226491912230489318340819370238806840095546122187782057014467665584756507541914229052585724429381900658934273555046648842638231580014167409986295914130442759220225079796829606765252865124944671507554954210467778205683087958107326174750690446812205254050656762238674475715300266208780723784357014470058326816906460986482695165586164248729923452043567611725094910437478707665087555767098466024643977193802889293626931473649702304118945732543370537720879312430043549890691924109252096097146660387242000479170040293621649375453727056765052864544225322181803075588458460906331818568848484382568676054400633252110326986451265719938299625064121115537822426220057070444671266438600887506313967360008389369647960656351996733906606606738112920235898824263651366428718536020980949544674879072296732607210979220070054870639536202360659021293019511276993642871220330430416891461622065325400401228332574706876315087750080896414382119337454801468546238295252892822437167724647253161185196671781917552098277582132924624983179922985544099699583130762599766108604586933643449768669944681932594230526688572458731571938595901318718365749619509398964294703810564427483848641073757701124186982247609157424592239009701339093757602389222442827842471980075746324007865964259511909898020343016061935319835070267496856938754756723778365162839024363504542107721524391735689680439376127791219485873774175349055910019513206267782980776508312006685993188053127989295418349316630352119199930298903428291259699942021753256158223040998802540611778464717338141834977318647930048109801558017356660420197043906571685322605604863224714663615663626666746039086526351802621044000519113031522451505330265426458072383959082860489673623765657803132977519665696231640240741720898834230836119419595954694675513643654106656671494895033310831026309932551540795822510348537131276172488826676276798861078518953168099521197584216407091378030358006565781210254199835604234285750031226305383965776361655787309383423400113702560604262482648732865246808642424041817846771962652270837522563432789371614909860792621113150487911885693366046029462078632015736726703792127419366977105566044811276827502074619294932078666553707003580205258317350887172219826564497193470617400221102860768579382187542417482570496391940393092809130315110718415716219981363429492510998844504967941657903495648850971828023557627274366449646550978466404303870015943419188335265831270090810963418860010837011484581421819105708647001211086440252524245220729180314084720124661764248629058510844373416898073224141540541308224462878486273397081849059216561493233276341434506315432077137914350177888237778201137942349652073108290346745024283026446213745669325419722603478240256430419025225442938939562452424590932240370097297803392228152789519548574499000470167977143185235466938178102856701844467349202998094419084254065011590018523238059901507897596604763942783253818396190934596951888361006475148483394430799237445038995166312429911557710080558968211479162671847245147543661370329402153789480688003842483293571793707385454742910857593013751096110266260172351192163931053109336172297910040021684348420789429414149005966176768212132770118581441849869719925819201613459888119275335513885165319391155483321075545199829691780810435045630272380986274506232529597250768033737385708420950344838565848535342930709378577200596457035328683098342971089809975050060692592263970716956541206208325407729731142877692586290966734439556267466428592839127437287453493345987333330134278353597517056893084357356709840423218259835052446454653718563001088691284676365526675383378290064803099921647027176762556355551664955044965771944614887759720951059665036974965220763359645155859174678068443998168657828313372638482296580668038460298247760604878760419763959476035638992164102296526841153805901660922686078611345359077942390811144827169305491769552506523472432787828179397105021115307292391581113285306417867772794287262073525301816147897872629191070247283212996237676275936674375432055591892308947344408382917879159894016072627491538704865991395939182781911783692247292370091271302056636627711428720900937958759054972763149732547977435858474800717892014374159461976671933802991604303804345689835533185242103582152153316686898817976193752995480032727013240631294688352965148265102979386290372611408128675457498270618367710731764278737067362633401396092498493679430603682861699079162814520033874152891689986890877135172690951454493841310078992609958710028622976016529178714170667499939608930688747899444964572162475548890354230676761845451597618807720346332417228373617419795637577971847459898671466809040311066513019414706126231814456174696430801822362234396470314569493180815794294964688741509521504066531415778494142430056515472886813777136700095158460974381741744055278846555021309169358029151628460493589827346405140197354589404596477936738046816779636994976785101802547136290103942478372596554313110877291541631049072618440603984801982152785627830237904391694032168068859899505890860980201080439200028757593890958081278909666984450998264647819962317162173867791566625130965470677205047622430726983144458070260504263577499710056750638749441475937173854062900703641990629392335216066037218376081965035031871790887135229580830387120214656522041179818211269946135131626041858815775558656580049846952432146402502659838159701948812086041178084520603963815470120821242453743520222776443167428009743222448516475625883868234126707801834696652028507529296155723154933887501356710543685922823048922604134347139335371422184990812012742884923908605910773918506642082415374036065589488143036451543752575441293702725170275380251906223226978214822815203479545309356198069204316506144426952821617962783390441120102882913592974798225170223561769814926643713207823952362837012709096193734157394094800928057366021353630534347695978646238778927675118758754323262260564120252291582153426659958495724271093211187969151740049567311762319636109424705568701493103331003363332858172888748444292987313192985711257042234486739569568565887297181571143634949454701616100373939360631084360090277159292042854439089722508957039998662395301644735407061188383934219886474048051230264060715720205005205516149319316654125099619246755326212292862640620405890236474655523223829568215548023556164947303521882159142107741769989129734409300382465535815546963427514214703708163278404380258981250736892595785050353092282073737095318630006773458112203968220661345630021477241796458511665975484564010784367453052334520786525648626093601544599855047284041586567068844560549971474153897186235531487947631725747785222271357691752982466389971584811999162123397247070665196271823566428200017139382019651780480499124547364350756450685012143655643125244601983794763305973222324982995781211824934461296548048987576623761855411018745646064693193478051581902157703239974469238025919322250336775951582082865215597790971790196150500040615684583815348636050924801046738865012750240283680913871838121832528457970562362338373305404221383218666466887615257289101514474356306167776965786835446873133483885112897343709300289503865592766344454447261023486985563438979322656437491551625531798181545690224855689377673960324838533482141725217491790471892566099780216090176248549168002568174590779740142558559483426669261037201798990829421094579307616361463271587884597668640726188459522518590413849799251651580082562549472358216786960299974810191327467134622059065297066831917286201352208997202895411748094265527547197165902520138468427392993206749367862682911641430903524787584636054576091602313890132608421187198631066760193671792677228675992388280911901423604020606890000960383628872756280426471917418147348033061533830195376197232154035610905135092704365209204570883497088500155238382373962789125977658013498874803587002013042819942001116394498377220022248641737075937869041383200073336237184106499674072057939183984983809613658900560160537975919376802963008009382559320626374252657784639229133354495020480787100374906213891637660631443369786422543583096242591259024230269168570285952146055606643637818915446145957805670325967464768127487565261186122720677357961291799268898088701741045465960523199524309766943363565453204807994255501456187687959771197246761576325819376939161082161458729583645580034105135765836486658523221065024122629169623039185793391931296881001159593461728259292624659633662219917275382868590773289455027477219767356214152267442004186561487670238117729253203133140806470765288398492443293115346598846637598221547051195995186079701775224021108935720973028306873441697176541183025454267863206474987623897148783041671050384463239104136042011593671303561331662738802530707833409870735815916822760386918747794289019831008728840635791758592677113244147370479984039366090022397458961448151957287300389338779175825753328232248355332644698126007151612374533679076019700221810155644529624724540372101964315940532087233611666004410061603974936492969324045403979169849509633147873176650164024210505404810046965911020971211669631800877924003342042979570388064010959095909921646497618744383858139466030160061707347527227151090574995208004342997487637079987060236238185679461955288941217119718047609380476890320080842876065298241719011737750850015880730809723009971813997051926614313767400577613419836667895059209963862999733600882968036252140743555944501295158991727936205332321723952822755533331754766968571019591320205697966225183308714257702744578606014089358829663079073781655801913572175166506923842081717613718805045318144628431200114289805627697044715729071929853152717977321758626186360152950789927263798666313955616926123126060999160034953941722927378370337006370138939799409932119351170833576072776599290025679522640041641843179825364829352708593617014881627958177143666668108278760798652382664311196967353387340257987924539617705375263318435222540437505250696354923821235005277872227347819509772337727793870794146126821592157797870438986318471621262377866335545759252253316932978346452772628833068975931439531265522267433862537443186717750573268541765095440567998940114649876238171116898828235241109539343406082154064237755114874840400725020409799750144487601150387412370514968412230488898197859581763063529231725300499365061637174588883074612146729194689453947819512817962745727142993320423386164193900709215639372704426792869422608897525553591439260816494899873818893994199634191616725460435545544508031916879396136880350838890483950277420835571446023491134620692258709417710922378784683322328902318002345456705230981860122235667668920248543569353085798052580133413610940373164622409132731854992773041921639715385647221227133520773734269842081130348904391328119039171516837501231044368318558467582556970786694499433480913419560859367347532695700885313783105215157453057697012221734761722075595779459186474436490199683292288799277742840351772570158386722109724816704681438193024213929314970033751014981525488209113481493969805091986464373478178774887885897086423389034482932778646230540883772382002592064499437207419617545763414123164347261412468469033540365544892313263821425353540624528334410528595391811847075256286420728877563962590465127897431682351719544563561478880029016878649802889817402639113053703713430345646585490838716141689350267827160008361365279795618578027062557688428646539129987882418217786726525335510540648571139952580649197731535961306136026375867143912168703130187417437564189051514079128796982648938356808699750774333157719295451956558016141571598126043069576004301239828640399720999925299652676268688228945971784830377270751098498746683128730416580282746814328308217202031950822191286674417111877627541588480039124063956734169778458361750956404769986777760440115770982375226457194376444720335693308172916054986206230189615958094049220175902904941595212452102230803833902482564682480731179254916739548506785171463298469494022608307815785450960585717591899618401023087440092385978576274450067415686633036185359428630563786986038272207672442302509862557371776146979643925555522520578579473432118559235075023952223327955234270059588580626768480390593493354261159937744517629067205275382370191018835697082521887621792862698783182477753427096507319570436449789570487020963527862496586072710925347182341479111034176269038433417207744146426388068932658009087360350622762689881399462706504916236713501095267278165272802285188450096344179367254511909990901278716967968472275360364513527008372122406991721186332891936467244788798924644592955343710867431243682351559581962434005874858243690911694567450835013339689196987075333218806684341741223840082487046197931833636138286983064678187712034280169450246726360838361258848353166288406372702235638447625736754306499553960242784913901333288886281180866380666220264746691354687179486548905388298158160627436339325286457269863745594590967063578531558907186637671647045465270075404274995748309590209154637660495323289161575739500615814307695872437110264476612320823194960807746817103056387610505684706066000890144607229775132417357194493097334928039773378083892676565989925763356134896378944217630910969547455331538374837952574540953218803611053887655633774452438624873350341271803415559704546236283341469259599568127413880071150876759514449959546992881728975988731423913087197392618799650562201924312795871717813674545834070011307309531465337273482498427408875243542530773101828570070727792531575405871997696994507126096525610360820433899160060572938013992057988456846565478232274639287322471475614885591917576672719121398170983581487548951735650443650702964766992858878481441825635326053036063536673105460784750268722871922189550906810921912608693127186482937421388130004701014109677773033600798396601890553499784570700781694397765606585501338983048030570970242596296460648052659434262384444669951426698677797577705006160896407883613909801555734796940189306604505366201202332576759880821941415750971198374308419183171268886340244991743030243715851738834834817349126887831268113710264511694943010060139193994166139225561567458881235828260187128019002927364478279724195184236148785396591404010691796303185325628366329044815138249398441800399963248440846070372074433657999844062017076359512628779109009438067046152720342406898574704082233480093667934203386746933599075316974650644860292998083313627463142272210107513505521229153832016138985343047293081125433703563488986891960529966737837351631307071477948882749102001331327589411848443081984373132374983837763160291537446730715873518393433712904811552658999937161926468157837976167096178832583320371519106526029895383866922233622625019920969318592509065647305910009923952174102998525700522656754288432321640324136075745593256375042733075491249433317992922221648051537148477532759966589561710974583113128338299899668083198307085067399726230889959735047496989722625400867457618711980058759983764778684287199868233104279883126583198028751851879590392435691890580351754354640646430051933935464836808960316393432790439276740713301623193344927703744160791459474286533686474279581826987177206736597783514898653746429930344451294078750281103081165780678679402615142404731746713928536022887780708466613338368233274943277105615640635470638747788496458646685454242331153363735493925388400420410989596198552509484464377571458363662657706161223156617101413381216255434923547231666881924906591728442867064901576731612842393579820869536781116795677388379446451990136501746754748289495213033896766457436410588466203307308005523557332700197989634647539446971585803474954546097732588040614679363757705966447148385024149647067064199315568963112506398030963978004575726890675099520351376668721010327030497873036573782501322399853812445748833228879038562678183940536058291173008366737656866701236654113239694590986048403447814147388608930100353882176316045955617100693759020166012220909524936575361752712908871116787936545886595491195004155584945412979531438664673290835595094244807901643910075659222177154671127984802405512531333527273173444298763771300104698019145565298435745158504090219383443761954417196003625338339354532521679689882269712775221530481985568301806471858706867551125973076209658029189592554068933020412091291282198366056206603740881784052014701757601422126773729996062433423594891764478700237461817414395267351499557420895508810903727409189602231665327879502300420188912245621436629372865727572655155359986841549271451025011360286311525546966119789194748917455861958470478933795801400323635546778742994724313065266931598190783066157305353996972547259711274135173467706101325932731141479127083706010415641259700033862959342213875942427605346636077700093788877339895383666045524489517999232806665715979317587365900526640539784361116364395662055408628058397389181934008081479957561999184711183642633917676771400964758593485966583966049179936429136744281684042667799143315398632775003741616552140379002932361301327821518777570001276393764810498925812621800411144442627045562241498289318306319398232618047290994501912452024255953747423465593133733582604230608060090055832518282921814564707472759349371744630704907670501424487824621775567915644172892285300783115220715369761588170184260487089292963979641169349276517572484130704462701471923166295601136624717602583387264210603221544495688482393643240202409317250021104909775517859720024712914429660706661293043381522679009544724774212431960754493041225579045157827953270090657638720240424398605959627058275914865333657468587425348199402446435953379795414949189708515135492455822469091177391360156204450768826960085315802996314143075876330138017699430818952459389360113452567255236580413668608491647582124154437014777336979194452108038834959168886919923756883026664039331000035967690350149384406709738902883292946995209765441222206957199936337907922367022767828583810211349359086353942241518099423137881052876451235104407930564779220294818075938668944167685240015864626865434779425772750078464742179281106021441351882164223115878050852179872986441698007800645826212762289133257869518196080475177394970333665565526425366816091476491828342434425697550154207893292234853098835526169224986449429124238582790295416361607568108745876248472853063474311585007472720010041991712461622902475237986099836976266262505320300189277874158819603072972554617064219569482584009471351679695678193462491448483426793396895828347106499239782640904690344824300365737386374156651093485593980232565783163586359467867076485109827386331765728024402766599796738455266585879357810832406274622116381568500689259824437805084413603917123089242581971998677858800571901406539556974557534184292634373640383129552178294254435552362930987627158972499488337199531659783950133758597288643706118510157725018360902574638493891261808754312790428433191605328037936140689883434100538359969617613991605932262708548746458493696998076247050766442435558993091081389035837305094794289076593347867968053659743229568496064200395958697650479796889293320677984409839204401841208675599145952043586317517204533885468410410396423168786636344992955905768093419509707101869676560716463607380699209704338871131441331487577749507831227310555399593069347685997926751211060261757209154005595776179045080009411552859997365705656016620340942394709339662452401777953133463668564572512033543141847362553949329858762227236091179716324309759385209534396619811867063350753002776293619204107383925215740899168717146609085430514046006764766022306486038055218032727427220611731139944036477098102090432312616340552856585208213659624872053232450765808435273950679774125897405351399215923202912142332557906635986004350894665889469436733474861666740096167880746523382086219905892327436672200735662769559603602718612134420392053713076905336041202724647755726279720696217989222888579750978408348927057605217923096713468721232646334171537281783096771553091394263548597025261183606833927553233616583724769479886777441469876863362101923098098921277479393316019705968293410829844634455872434887359214053253175491820989721853554972551756463303703402267479596471250317096774431058166890218615286791028628028567432318454025760638240120119565793038300839108474844581130391409220363198234929826663439199711973168336279331623085407259787355862662273166388200093952652226642663754156988502710513509925382279954768231283988936412448468427249287610970733297020299243821052371828866507229383262534043752922024300388637052125441389231018370752613592979151164285252586068580542603343351551481849299402753422271639268189447815305117787068456082123675655455581656315302218092436950952525434223198404507905350277653137067205911985594272339281348886050849720302402538893443377355317240821143322925448175243121458066510516831893044603623512508315843214188463161911424910285309372668783870765472250823703652225789179465619992721712660757972425564656405138932679178144334045568225483350566563875830556982510490544334992534349523328696307498755966391507956338397374378560463284959502880861809922202965854406404184995017219973058404077808548381875231190222503919043361800660463238526307255745890842518961935698347575886126559989465663290423329628666301636051552299596115472259917316403573213396267599628809933655020229305191603313876851715886364090624332758036061818930126859726945951998856149376582480421228792100237018294770671919339306186105516124709014053957379143841300296358974225543651023690094898876698120528393876844313546088230139705765330226027148496479581519426079097479211984675575488565419508998750431515078411862978325330318213378309860181816475124117700865382739097127343178051544171166534608778442239943195742791329846738860295939936799475295763650833754927651360109617039699576050774830779646587495483756542077216702871460147370406075753155725327545320036502836516629574228759674139707315662950986032188939243945969000617732412898875707812660014289003679775244146797941871576084093801245197078508224686707161082167632978736139932704295025644962804801900930560754927172312589318782842489166123492380268613860091377613644643291494313992821370169606404156369713794287079606705103151533720230097814694909057804005385724274187341897124580703066389804713780118918808053675555640440290966668678748032668715961408816050398987622270194750972230508113514991027515549293641356650069120051391689546209291998949823657669104794266782888108552099510700643726906751248879895080374839407082526222570254249703539798551646656882716787603283033524999724057218307161044032695915157257756365380250024763639101516553639245069235167635136743258348617651510807172717273758511724503840780752652520634185843840613278870270024384274565117496182823069190097412579611538335575649413838541527118751133474468483652468384543363790329690575171801441867293134392006671214807112105626974769646031884002093024544227604434216156852755662924047571223104920880398995215564659671615050623994367337931857565817171681198590786841308317696373213774327949746345674569062912608416509386838223710346814259760576977125701157185401878713119754931490162556893075903672165147358805435202658120585316424743785121719934619001208854802651964123332707660522506083130201521747473543922999334697099479649823009392153562335018502923904229979868815703733221150874687023835126427930320352424806716097568867411903849387252448782439574882426200316999124477495132566651752836542575255700525495357100133971557604512864359897431307933570813487502502365991178907144880995402814338314243447313215498379297772265929982288001499738718133499130079457730858055693279530271807288750111962250432093887589191332870504830949577236339155566308376733291323319922036051856194897442874595392239921770552107808367227485340655885886605378677679885056034485639660156493090247353684021418141757186470059042535496603936285197752157268148924098199752603061305718489376611510848510452769649837378375744591456565781710285685245648631740467527470337780690887508027499101383835682284567837659528505689465224172205214298018590500714060284118475943670121791231517769592657172117181876570653895081018058439890921641829688047034165280281817756804881448821324977742540851877307648840941581447403906249035111850740445653731915676522248049155004168158038657706197651935779839162299628852438005981642380385033216477902512333282386565073938122481717689912207291918225361066615630162614752064809089812290516480810348903910526160069197361504701034113123318783216443696464394617802803529646629704435662868188463416008538579565324474172780508736608067463842922907799929003278290223591735281472397973180233149302250633268289936998395785516041399394501986853331456936396385978486504576364578265894958661205846962816669490940428552676491583068701099442014736893051672889208804655299303419691243718273546084435661891874684913406457615543250565734705247636190376429381276982438826258848027452127894833741049257626802014153749905006177170714350070502468564271812186641458286600879503982366157568268850629777532816208612358498323792215773752681701857800291829429533963093349300009448329941532161065776466907002995294387524322357963782991104696826020036697959446371673112539913574718741750952877810425530503850310805544471671668799434887982699253560277531473064726851001336748716652783711121934516629215774237886150050904991155916215836578164929887227747784814403920781275571900443309012172898637063746172206608821222709401058837707286089030809454804885664317093254399443064248086463650538763837758882764553889903558892159413900598817422877108085669450504484894783336697924206130490833402387192668959963373978761075839443856004648730969563005765519942506677258737537647207994817539639657180502732894853010258249014817847527890180922352360959105831952052158004859523582271724429691716448874270623785682164797392496109334617974826194017725900271516752765031332003805922184130607648059212536944980124124162553509485235304500863150683400631319698007404908249341469125545210651028230179488393088352474806469646926747812276580143277188551164173291403484007133649048284306913174078003250230063498148368732239425646344885268164611185998216219199653767073681760149693962781211529025853140530699639080512425370178020322025074892824142654842650157704631175715689183307144437014906677134155038185827334508035741034659333841530234371697096048077194719428275824479579556928194087347497205443733494414720773821460480785700352922822484489732929369704429013089548032463754354182619570223940477828348486631163370433791521677915531036452480460479221715255097370213508459708193953338062001749755276924457169891398494141543019479823327113347129250612789833729817938707861359895588612963250912729470334307184947052162316582822722950932775864262333205408989939092025120783653035354856313652153594437657138600832190555835330557619379736270025965415027921473699710655318147789715056992926184303022719057870895773706756961112028123127749910710134189802722870374370181781928627960929594284251817189620940635919125463500385088797822262578709889255670527591918041517533978040577952413966432770745072128107682921680021894295367649024270064222217077884374530947617970764633516880868114872939350456607664814097473245430387600008901578199058683595805771495788731439849089758704594741260101245725913730879413333578255247680769576454845569720626187654482343079651200477351354860861730258914226032022364147773645649518461440508612880002839390978106936580623041396256774180973291495595138594056736289342360677782377111090643116686091198740788149510091072775057390643710589015633235382348542316512561001586004777433875636139673953456474393461921253909787791279959919175766284271499962259775384298674708219086092567178163963026064743873919041115911828100956688736976504621167417567677604311738441747235121895038739079833255331414516618254050661652252715863601486327215466937436925837991780755244355529223153404197713116641740606842093593096716242608501759010305545123706948110084795219116525769229496723058718025024325781535280383544226235424314451565968799689619464155170709570817777559706719152642332160480814073254393617541394273920406522303870203833661085274613002843765787484773238537382891197071946556527048447553158023670379492201153039475636474864191185139856973458319157137203061815313800008127915998508262508724135651162042359465245842537805691345017875521993465538604717026399953502560533520373246154781899398125090185600581572262328842358313550486164943236514211587999279174693194498427817776003624984526664394209008896492319631614949697362424777373539223016551441016686871696453320844521615419624755357980626269592751734233461106439428172909813642911395811160568268708735900491256176849430428898283029776750280706236118374958403933346019306257872531908383961286178563604864571187807622704343084500328959104789651752965087021268412570686993854686959857497940830623427114619578909749241552944003567210330614968983596222106096477950558390218800182607742993912292914210614513785788692646274299971311066455204973213682751521643894467540703404689644037816659095950541854912696806057617995401034577832456314394684427625604558846222068892708095655380445067828677079529042896515937272241404019489420907981129933336070222762021377722806085771903004892081970834630605083649680901779509409448169183235796911251658499757485034497495590589102339318826644887276831977716204434279546145159961925584972719677984790852920129443306321883173546911890500564550324387010266618925116109831461937719456907791374314979247861707962833863383823504406880945327352878319152581892090200732858068656424900920448561793239533795792868242578590618794879424251668227089642881408066909053199597896487409899055868944787500537107727811810983531234437265904902740321786576585150634901539772531556105090016790327330701349945223034018619970962479411963116613088154583565687851139956607919315142552482225237719421758964785568618923947615283037823353198555659803130329503727994004324867148243457673454230880871879604393635214619130644664589822197282731082523479546307797378300210578690205920386600964911175651457624231596730664689629702738715451171686739176397191492929599524155060246582825044256500005370373785222990448998352890450725934467354309988652451149914132544192890573795645992497931181135972570240329435793325533930137926097156117765042500742527260370492903303195386591543754581870360467468602924119036043207108558012352968967712436566383489233477849276266761760027745905286013272607692017184237706040661922201834183449285422943476490406913474036796673394573994826028555902781603568055248086472441830127902489788898318366713495461312428315862709147179001131193297343478219147998174095881619197803560079093388132256822861375248546259559467717449363939733294727634962522854547605514819205932552357498093416023128127429178232774284995402642826751727566368405301798705128365205886424221728065835714525803175940118540094432087137985569054540567905754006985560580834473894115605967484199670742484600456453404365598155153817736929197777775319699792893905124392671351729439092660078806074805129748628174607625793139853352757787817291094050983106635033059795558233171997558337198348928849292168132383840395350995574313904631022960443099722522978128415633403212128323161271660307420365096246033841875499941533568729535748653967545324511654432545130428095963354263383927300025550217288300427405704987755237881369775389696661125183114015909030258174349150734803193219351273082769119593381382260385800659208829589755386812874680246011939721932433450954812931409159295033563885232707456078694201864940107580979322819628263212650288154537500898795137115616374368832214698768040286701822328716076350835252216488921903990968268638270981597826342301291804682873125135571527804244241901043460544704141246624929706782810814878770514499590265889755531216135479277482364359332213101525654584753147741512494384366373738011965431154050735336167364145451642614736804994861862406665114444158462851887101728488219814654219422654538247127458653036056984012506156123758546988762415178938755681583396465781778253904186682441730349553296399937564400327873491467041267417447186361643926807108992025603972653569767175229610382809352532517194704737572139122769338200766283233325101022807862878615164028891556388748963737546573147037830129114294038552938239794895753657836941400689707703384132383293541364238681749936125262335951726542655112380229923120238489927718132116546946583893781626566371400300320690801830659846978630114359568387160868667680931287400753118178702459493759330218301063059104329973788258511792876532508303857755294918642472239632189395050283121072250931724416579103983824857074226809859736712736177219104001628784592071211594186796302365386139141652235338073131329955423372067848683422148354787413964523462828208849291799044421564454081638053828737679320483527235928094249172694041370353845483862065660510172612417938577892688144774685294945884845636287150225183532984706379067659634175982296563465855790247185243290334543737607683637558855566421613677920935037027284690538356554680438673333057314169345533623488721449764749582222460300755225107534114996533274736644218715530945122036653363666470031828313248304392723538123718616259273806277506830356339522498896901175356603214817885216519693082598682196197946787518948694704324031923263363393434972720226022837105198339036018957446477293721004653304370206680969919852136846201780554357682489570720716187279497020389961239542289592934685326155789316268146613240437784811995802748565644333835305683522733426351658871679049612191069488168711852469947738800474198375614741454919140292926910223942783359061232462917068171067845763762105639337999159994240256151703541878836390156142695920267359897613502003870524133231714043654858126546062010428791040901469077475377560568669531894954736600636199559803669631268873727335606995669039383562589067615164835619287970050900251779048432564651594634713659331241215935497594301542168950851320576477332165712076785326606949381458432663688983624641160341229079244399102828830983306981485474357348748054973026166644363791148158596159467866063820339752723770777783876437457233193201646135690537006670238306577909017963865559514376295982472136283802130402504325392005229745195607501848271708385760616652247411987322139514625891739158520547537330259121758851561010608931477003809816056881420129178908207442127637261795763805469825343957071595776854912318049935385791290651608469202993239180867680176834606191480278345462106013234169897988929962729048741361593191987382465827503754481631145133194636002521164064608363446015852508908516221523150919993828147519040115220951882194664976157328321717994054400737601083253869338389219751234654802070038432173039284237018400318953881852025870844028866950008924862417074914182304702468015651398901744388090583928334094816830038023873549936736659809336521112528074290880940907264013378179503557625518048435452742273141540117154608682017858368576768013334971989120505410582697237075120534830641160221432106357454540214889763113777760959060058014714069887257392804744158082511127801441485374136157774318149766982599156503188536997039035139606911099772000334507598393595109452592510863539621850360255944352158591334988247691729645675367152130882608402004125234135999899739077204206509080545055986324328487252272669165228081978345554097965939782347203241258710529459982413068918203198856861964588076682881107495582518208222368820370036578438984541261505225270670397100016391652793746940346822157370456945956258565962703431908227857223241007950639637001411616256672074243203513362739285852426165705847598163737117281416835639558640948894998352258527588610188641143783716642960183404486239509729880519892321848617763537272062153104175802607645647039029259879235445384291760982921483388570990080364060917932634681030874035877987543702953695540826411031364530185483117774100806777042082842597904618182499504251290390453216062177529366340184185574744642248710446173154026924645596647072316764001732659838079761001780448419745642991829008462782498499558206307619946989392507571786980273426497468820544740926862955934014819338889401893470484466018800891296308939742877936008465806227894135252891960900531793760655666560127309482549192076301415162769286422621914859299793465396319462283764247432901993694048796502270693130810413515559523433053353809225102487073588457838979276469014198422345872579232541191771769358884750829153957543066535990280964481288078061114325552805031588897047180995950300629607163724933954457643081397489276684131217098143088332165349781986245612315801606781220920785686863636844815735075475124928742767039717570700646917155111056901431909590375766083572496776434530852573361692063708883218265678153583358148093838363752437070533772066154286868413204471143450671022154459561727703339700139579350288774401937825213361363958869368414459299907519339576660449647960804663387504457707736492479774946096683909779251115319026620903206076769147743304473666985601208238565530896446859528028695469582696806658238041250431234569817212299574282081496943660711522273599143889132140685894918661802525205394946221706965656582264826269148548009899321930325124055874999368391931680082947467372616858027830055409973789896994330034646015160802082215665545541533008754340833763154202279894061887087962271374575955710802270021171507784760954131811544967731410213364622765348223466241489121544263518158923788282493051966837399170517308497994997928973829230270116446803342380724800434281241049330944582923364541155763740724164718770559382328921698171985446134107679286272099812172967865174272202425123569528916514307262387409625825284830323220921308482489839517671971301822427962495106615137281021740199757977618553074069066602033792419642299330359627590240970440107028334648349055030107158352189608580033927883431820094910429916115138632482380883376220344739896879207432307336363827657324130323692286386739728422311374954907273638186875417052698245562760334588757576863913293749161112754347769520369657288014797548390002892390795410677544592097421012098531148539655001474917713115620242714142630513708986740732560032689084548523867602331795660902497222667750038503708395626883755153891072371093145749612449619536789937488108709562064584917412519211570798431532696395331625798238306502909926663069111914579327922487469679070333070124658031001619755386702600022145067048350247854691842861458372209412627720805510572258921507545259737970563386691827856808472449058500272974299106289225736272108571076015038869708884074037613674410816609478781659983877689247759932889354043124014349351825534739776422636450136289450454941453946576332117480284984314314062749394435860424532204238727736891454630415564053689895692320972868854959323327512076899147726523912358229808810494112792710634769641616887990619440906582351031401690647595894071106654163609268840671451523699914974185188687197186451154346750604875870064218839029721452920111691744746680008170905027932812179870166088123646729041826491356581034313230395104471135574217711726233918871482974714176251020602222777550403272148809159368962540519533612822338507872715962569399796355226147749896392858062842113887811819233533008382012747300966971350466184097511945403247371064174969616321270325481503801551344665761473443229891859507957883979288466619825698971594836939771370278617329039193950020636707288950546836727003330561447834542918735368304201257456292333716057163070359840596724266816384245673873654856118459198134186487096379613130433097516598672093935123474527718080773679537395851385710360417927797786947153173841287270800386371453544583733874440772591842320643711447588872815028835691740599484668443374154375805360185677198755994382570545576186164477312919287771276338910261809375202612673914208953965282533827482493168693006593066175453409108145281444517609397990012566423479804388646547312752893269054897424873430475190380557537959883677515330503365732731624537642010961458243945715050266190646159322138528955575830346019907495639755822888573923499700030152050149282260688971095852290386503222709113881511712971574644049127712419094235673299096077563391177496814089945254567793909137743049458301422499076219973819854840847490343907849456775270817430342019394543188097900497500829197402376531461545780340476132664018119999536185012565407409204520195199369955749979247870192863592695562946559887064389722931975359677744691408620120300122560007235154746193816787967927228584479346721104330778209626606142104935660559018607209262686992497333393885278170357601584015963164478157973858281759356693766707693591859228152828402732190373651020685075563754475979450618428664220296298131961945125428742127043038818993554795900200791945524704902933464215143494681205267690802368121394764474181008288234114170729610275123078316999121276420575336461848635643167869786242450326658092508819821511017074079264503463818169177897967763179895040778462271603259414410844235608385113624443019452610377676851020572699469024471797177832597356922069436047259284658961251812745528122650717587791525426367028096529742239628161773528848902714312219456193280437322367543698645734759825351247199180474355264679628019676341561120231345370946656190117991154376189800497145706459793453797157456033225972161953734461835087153102902217789704163840179578907553063396241884344124528538369647265551456568345962256292846734881523880469957483414764085173470118763201497584004639297768400981694553318880264545639226037158859335187992437420740058915004880246695275460330768030750496176166494348477053498500319783907137628514796023177178673609734925459323191637959773387479380548746717333156750478885994412220750631867898627021322944230615401587966499364662964246263875345898057778727675122646211122985047061550817675453191406695686632514128305163294143449678372967797743842575459601740739206538547815389168705672158887679339570746922853479457270459636098396880809108247162087463849287550795862088638590105286811418283435646925717435631020500745620017253008942249713011799423989795516798356162417933694413737920637367240334694031732559479574763898291232773591762652909111992544295563700139102622412350920330134038870627103220960615190889867943020553888225777832153897623057634905945421402277131797697391938593940380549547800680998105580153874151412259360285690831256135943947145300951832071251424752216258724678965450221925123177214350446294451993047949865746929325881758318196296466150703910543011852753333897534111169750995703486070854388193996830343364318570246400472065775216279987178624335552596847263655425213469065332416518232990544387119979894558860052895538197257719017307737149552626381311365820583689118678560482168217001110790846109343905974344423553812447528075762253198805868369210759418801748314523210432486365415374058899353340586075845007986975963446545983022438033481551839375270511127212577179538168885053979366765858537013691633790976682400533740841533278723433937632969283295644184446804590623574249634425587133283386002701373736052538436866860358003212140207222547269310577394625447009095769028832729005572857457796719562502763167212399821157829737811102181015352531633382529320020747509651706745628066811243276311170019305469005273639174275980639864687198025050997488741764041296615110716998121236873142363109773366498801603109667924610733248935216296198900212490402936599404011418238064077295715399750561285365218321474913242569912708703463700304975196519798388060859947134151630973604261304458175623880968705787147855605253182685149087645290311200673812981358847256247747032405988036147864776585092914942888337329751768494825857328109112479294102840361916672307916754952894011923197105696597828336822681010985800900905856957609429480408167683110232217253694834327088147978759445883780163924045203316414711758288240465829083599342053485601167263101779199639743765592002115746064909300389794407868485518449758764462944822727330382305393773737898641839513079396277897939602566722937178847023095393783224834642677740097362463097048595873012826860925887894552865665627400320892500031254421167023659155804975984693780352443044761289009057200668267453384906313714266725633844549403973014764686439539647929455844457975701110060651342544168429496684411061387706607162767198883112213242508711346425129706035739366990395246481501696345373132122814226144250142462376935598194798489515321549030587683589059048380035759160403008971315041578805235117630915624551875814898558241797402353665012303323582990465873717739900796296908195407499766522340195524431234344213664024718007524267744909318716449641007157751685252593938249237789800965305547022450559987429867880241322955520696763127239063601498830266806580883226280570245895205513798775493754992103932589907168889367252323548311482871970234894554078059716106142842377184648326504257697468172082577253304813656741277911919540225611821091986817083334442415848985147958931722891717158627015892476493218117028142246812476229229017050705794985922752887631211952651932814987818043172398006778850311448619250798337197868322762445605941454263026913941780122055071310907588693075960573051738704047559824962360258886110730672635173335324514281213181912415816248705870201985226377334048547924204245078607172845870593469502851039870373371943170672174935263570354583654418029222859428343106577369332568655520831199922493042182784250063260218432116426495668975291590188001702900677054596713347292626376861821791184252770444141298847894970248095717339237320854963733709282831631822197290677598085246827825552826196791361360310362339749879747341796959182467915731913371359030828008308682575480701486049227948922013971614604311604815928246362819702401735533797947435224179054215690148472752351330123212531998039428874523795606454289640918278466032632281208488046106103546176815928160248630518370202436772852178895480467192923024749370239731038162025725375535338013991286416174998207789676030160431952243801547661533461097621270904998379842031546052859344267169398442395275902091427643829019184973511419467665241997147465353333582477650792871718403682985615058362958560108233095454392488945463909370724429246974362312002524425725720035281373219258430029094463926636186073350558218796898270525436113061879169489956806554033462268369876292746414527721043259861773230509388229709350909752670382085860224695590024728150151498040039913783360716710664711174243949574361837486121874042446568472948182751989022014876347850235072562119652674426909750145616304915236446983070817796214197860830764399165183665382370811635209252238343786899854832574156915414781576323579731262994466604862224081095287726223117354570155291131364176502879187621672531650100175948530957309173501238509987284356942885006690294386672974786513211542027852092269564268892051842557723583109874595610923677541035493199411613299909738783572544459321952988178986670352451473817846333650732498889070596270055042184280037292787919187202873149910684260055540435319894577286567560273024804646980599440396185216457447940648397700632999374610450757271724071185339189549436362647026921526017017853896320333530591706932938907909337748480039928740447151744354070936513284964563406920887210622027159824899497173332478985369918142418887597226999918002537088490998735185820661820413795487582858268390744396062242661846371610742687707789351627720767245476279686713121636614628178505977537753241024274857345607382304661498156508226775218197366273440718718775556110954053904292748013599068908384121071899677245767476752565505030866637613302180021191591329761317232692350731051184777150178002743137781651534483791923511821342264068057827588100333104925912291036494100381175609471517869652252194413795692219810976051522142904745652911574168149780205171338238103169281752198306545986738223503085216232341671878608869152327382121222463777423078847044392500280894346843270184403546967601886446443700507232316815555875276711874907407386009051778173350721220954842103775261341083679638347349989967924495964258369849431886050430277697244919670085963863637860648573577141243695392050503030210642126095645501531258312774874076483329466940693641203289138714736394777751184450738656145921240660141138172032130144554247126722072169543144340570131510485025582368388874298094035261456090483063887569232694901598133487051418420177114748255220127813267554521169542413313234838252633373561692041095550482886269382809147881032006695613305391672772833617467940963665869532325576239606588453426471029174848468339762832734514100995485997058504621994813614241545575781318074155203869192047330802217149768636697939407435579402359501035462280366345969775175582570307211247469233207598259799466637422584173883965139363146801600940663415841172937698077821629504342786968633577435979359146272930815649667861773709675909371609370742435138013106427372332337503792597368435848366228026272443322685800856600902450900539483788655307854028731934820240805008117358123454942749597416184185868842767429814382297807531035799885192794983524914449961333092102611381463192339004250838839534482518215609208783869580588267388752830694296689964041131199172947685950516736494803714943137613180912192054837789785985659238683753625391241128527770166796786185851821049722383241511292105109827275674558200733081500615672870468313461662191172451394590511364239609697043250412348773815075707173607439222876782241340545430828271361483811310470205653595518999478437301046958065907089353603812558606101726918816671041303194610870502613038679934162822713273931262910397044795316248696156431967963959426362253879552291707025172722631548791415898172620739440093013528050385760732986396414883794003057401067828825640900904548433705347585755300650654791276348784632681511731685801456198542149478104801446605246475766158845586727810564872636798254999812637536800393178882097987669433114102704624949000955159432278131350357948453370707909745153556385077867286489841155095875763815681996933265341709783908060498286887044181611606027294876607578518053203823531884373456107027179168147657971624841954267174184025264650673186668724662168046369394588248686504209528479274293920478368768807045113597213406446582095475029172008708857872500764726364620073585838331538750461569648360324621376259070598599374614051654335227537733435416798688218918826801388159051195982716079516364168352994393119062377315547220834907805736297375281189274235999880961537624757327518817879979011930259502159527435820768567010646608194597259906265706532278765469823228610486734675146114640497869627416363401792222711501781082179463594819598384120229196906160491461746094189220539437006839733602664748900273151505369063482831050833901417754725321061949477338934440076687808989338933277984396643565317330736066969432494407731038603494902564704558518787141460116536283770467114501348838191566923954697795601263939430695192437120223678875697589119197724541149748821295106000311866530270291945155699117095755439567211378570580500611829696695384754836618299628599835647111559665517713662941251887327498026281270403379967543651049381337799857485385737908364408873714742213596466932760023295513202328904680727582544349130022491212612382802127909608898803482250240144008699142040785853422578277049568235137644784462627137050988731378574726925442234498139068087652233932898290476677258392087133451778937203153074808207691636234539897451040662313374746394780688599862089817632017943041146987474688498382503490028922693127637764438901504114102107074252203814804900752272876617732784364501779725717673103104148647082777440153293918513937845268302915727489917849488157574023277838896623090256944036354688858597682679494604359308619251596242652242173007467681052515022151028468182605259641565118384279784606175290719547701858127069120476631173096719958924053133439359281308315982917635460275595370599511970631879345233346776817397093922562279343265627908294550643500916897245258770234411101005010275110535953452693915405117331769954799493474059008689825743877030691663959641550910263757087022070051142207363264267419577584736471422158033401713984647943774385766659342474855889777052128805213436556760915144054104390129516990722167865522303937435383113895761429133143300388456563738969384994830273871870655181524416372172293969068809371861617852376098051857181343354633587306356007493716109553648251951088529135675705684531251813118431400949206089847901840577228730168735033274266419275872171162970668778917231589899891425785009987182526502532444753319237880690366306713645726944559866285380793261440472061323363467173544596058547529863373393234717193849353199766048245940974967712740350509361825023567471650367590749460126542395366762712230600163446099742178197940685611472707867906173516329704718654519509659333927912003771069780064461219346836846734784863964079978706654022789247161936925776465747970902591916463694381206971425199589178286699018323140477184309946283768347706679782557685231843844249016164027786418145224437282829493048907787903406305581037790921864036036954861579530838145741394290902615834984633526912132476839519000117265011641147922018302656255749288842266593325064017921603588034695683949168999068387632142605497768890979385411892274756009147317891821142855192631652135368194610143632934648249263873561589143865950499245882460722496072188149735673407840736335046245129940915918909929780695018881950646364193800448649250894846197841420997353888237554170143528937751975062594470663963397586221051266902324725749539287324299552788827197786714431752418698881864624863291016163873563084886664862796945266417110069733033634733168323952822747655005470401980227129310613306575220912903680871164070317916524480094512005498597718995502916580486154430306236607634362440845061510239891383610899923912936923046710252392887838080291626256575731045296224421629964397743203957878679240271347348246774171639538035175098934038696087345363918363131422798327182778173255154354932351273817941881030658945814299880243158372505579226339475453187190889232662518634422752947741835101789272564547837404611301089400479652468351605986577773354152636627538262480373837830311217242284683250256028030064363772170603453418874835938974492748817740819472077402678495077617967099317180185507620187368267187614284155365714284056288080349150247238593003320910590998983717455781947607940407141439069403105859575224525600740085729977451849999737977659548752247788827659620881233932489770355544950968140651953231905190741537270317451959635487234840290037746935014416577379424399820089433221854039022954699407157590670939432689069943272698608909972325875619470362803585617932533792239933765676004115109124843540652062519348891458408712844361751185577544744153516268617133316363857493571633797127391398606801613308910750318124120157491090911674392027185846794217264504467462206139871984258139050616972931111170402787294030750751911348310589143664149668602528813571663380753562351225589598293234330429487168239308202486518563389785353669932409357902833103826362783470093671640234487449298607363442568568967250626416217108659825004145145267836346952903558289294761960995213290615953761797599906373171042892119112350273156527448363745009049867094093623798716616924968832290669186041896491953144147479363891101655711993693335390714119280164648803997698513671573624316991625092677414152332728908215376361310542932340655513803658565505257015721580951900524249515892639762877173984418665977966512827883128237059758925129402767592067687245410167072208975180472610539474129235463762726044062515796248263999856728079036377318684315585800979580196688677968635825166261292164831129119287773206223194977042477215666856631971566728355497289859917759132693563528159065006955354369776776734957321134808079600055424290052524741733545724712333743261574070684964298039212741083333078997376785567911937462633080037494791628934657596802731088668671012514643640181144127572936607238959248558807551074021703582133651405737995043408926480740307489468038565788764089983077334644903028791419356249999522769858277081165513213973900423220341523857685255734627778848883508495071881165329933651973102261410878632654060306865034314939776449696423024651839568247349739513143950102186316118159512705229495385124724395633234158402109002409415094838250133619237723801524234253432576953744158849007561397992333980632731967889052499055662543006579212122787672085593080979076879778983063779934104513520235878040697994286243619400620451230926968210160908601581262335210223236652055544949160695414376151715209606065025457059151612183526954694049418284912444621977015451637869706909972983346611862230717672244490469317918720670776721753591356737484938202490255561613094546001705253573045653260989684179656718808242922025246133713295197074757191468130999468713846113964671915060142033540522322844764717551247343461668268639834674742577587795988013241966873214339608275746154721074954018918710983337363745734143368872211769722481812629282086635441794713542889219609525112817598703768030350259880807193312121341341059180833882403826375221017926655825765545204261230399827597781425515598635073604537964245665075219641246493535424991529710583663030197420715750693000642663878704484051583999142752926722238215781424590415598355088306911358368527411698340627439256865654691513896985629848565613746611591859403063161386407221606200556980880213039361362892827489094891518390094910943993882934152946545963855958623856335503176998189769196018049846153315868290497303948650261075071355134268563478673784776361131266872413824416051795409846819673807785192477821427910071181316827366123334389990541920313494412841134867542274038821124462792619900713143693185563439642141567975146400956236857833381831853886660344590114038893357587389972854784081903243111592956209347646623814805579098543500616551723512265323891946647556058473832931740204706949087984860827782832275634538319206678515783929043186861601588703819384584281025741027770650937011615277888278013621575207236420586263886088235633746775649718050486027861757508657294699124441913365273004308824498745115536250188824363465111341073792918236481789547313410289709152129706354973817918795524096462764115053480501654149433468813433748720610460363966974011720860702882442707765381274580725450115969710114209205085938942161735097680777298783184767242455388010443359577980106787430368627951921223833961239335985437307036270587943965382512556581764021190378080193020194391435934772065596635539307408885397116983021505134030684795917843762062111938629147159374050241120070489796243591965671143950692780172427427515820372200371225798251992605825594221333821829074339060411602973576451398615749409887478369976217374148607203182678435218190901464283249427345754462337553372276383818506081102980487264988776761562594058475542801782206339664233661298839963010650205851094682722640080974749005768356255478098811029509242575307846161188886976906840898788357918208278213840370574957228993223841594393850279492257106231432266195516070171048757626619704412546698775345030642107349936989525666085792969389120166560799646357554507794660378906992312481000245882891341813524079512663389908218452248961352047667464185219239403789387895852353263680711577574165071861478245310528828279764621744542097710708196241403082032687034581299862191461652204495783020662472690430928710104195269657456894174426507822794395345341303046647649589228798012492215029982165027997764643762446356613429155814743336956907174342170199846724812769236775607976068025207233399595893899985927302552050531089998067381842028663852257088275078651913776122353162685865615198175978833830251612969667898697340898353167810908837401082466297610863705868613686538619833403585479974238303072858158526405181674733163988211712081558284980249204788763079058996514342770791385061855093392248127207702840563760723537547166215381632344515815451980611095080561954005345490157547389746847418177833520655309343436786854241388610477937543550243544466567786638882070161576902928107172617443327734619230207578305604005105105176935601831727124425610226884166382529578986120419292310037265342888341858074519904684799350544144663159615500297493931207113409669393042391647037647850992762961750899045028176381924509681234252943939547242154394964266920600092203179865776347662393933379927826171061629110867914123468072225766706601628632704672569102112004471727942443118541509634715641930844320466018330255088267589291537197348621675718680092963778693749783744234717315751657596920937973650052706047430930355010627215859852314671784542229872969623725838662153605259703793602099131020802417376320077914472507370233125105893202515635356043581308683091196507016630694816391618649844166443503888995410208057941206986321261562442485701723800246075282812110503455304507227474886952105315582601504653387053708022434932183786887891242970603303853983937349766840172993452686371188612836042906679770118312105522549224938129414715232334826776991534303630331772778401865796668134860450474429387197049579321166534376807454566535343833829719322284158345521572320166021940671795583145358417158421324287097529479903440180790887215236331595805322255821956711359391809530600578283209191578599538500667365090479649106040965708181006407256234658297304857571497339445693618794336402688125462722434119797120561590403086301135285871032633840734860746537819695953767878557741865371843830172993710506937316816717930728465880942745997989171847940947109536073820560176962056893893149575672423834144274627101086650016258136445930906312133661448979493978311243901745158144703080917560989169963618235578748015562963986404485700192171525817890188459685390100236899985828626843710815712709387153883184879461340345594621796714602297555884059225526406713671144690548778878055726485247190093470570428840380299765142725033090640739107466707580810612055844627429402370933198168494755789810323794666939397724066061506904610017983145763420152264295135528788335727838566506351309605115393710155548646881635029365832248771852338855668631251937305976915935765401681400989320049573420967791317215256823024717007608231285051712634441381421052426533194035977076535160154687013671777277376799790766093668633036054817415399317933999034587899993241286974945571641787483184987944187917769194292469117036739908432107906326766398299594185428436796483615539075466077924883634835966317546142512139793533320751110752763167962465852482813450910464543887630366435208323869377121448852630671373510933757858436242500056315010025633767767897182269998273552187879223910013339412638105247816312519885239043031088733888430026472547661152399500054204669451615807389100698543218060447356677321997563011602988344241377085780315493340762741843812935736640696690865737092186871719174593883255007624851519370515560287143697267419383524872493403150130831528131378916377946430794981265366175151614897801985563320730113773667656792493326780075656818007082443462377858749911979299932300111747617713771537558851385049123573065641982900017569128700081484867976967779345516377101942267119427729316060586761959884614591208818741614049283728204883492874156316389186032502131113685365324236831446491550897297970975702244513743097891866586295366293075035267101372218035818357914672015843100315319009419134334968352034752081387881159289545679461467325870057540047331212712773786885228683119767509063140741331520353738642127806616014790588472103654175492584622111483896318379437908736436542937888560113856994316974725854861650613925268460004501807111217790392127639643942506236723122243298634186423172369527596316780928025507728988795604115787946902862458389198211946921981279673140486817396597377055606526821839823790263855411719118401954142495818266183092502394841295940605276731784651391060036853158898520214122835383233978328323437755122099451322510750420562365942242028038024326419346309935167427332257057687702531456418516206035718139908713176562615536321251392314296924299290720093761216849058064407543783998951214163970938024640978688843791735018008692442119593459005562294603755385493679780697690119643471769086527028766826028416956168723402505325815101767059487279994299072909226855665467749789314418566173770884904896288698726964540068719931569933466155561119383573174406703420052641758511194058643253063450813377333191836935358489511462661646963442990970342443916962063969270312781459663523243783486303446171012158142475682225213848146172981694770159435012088359155351158923654294430654357619830129153125621366497204613863100111760756405825569057581880215653242702413062412946377940015174295762175282640906448678188528302326926813199933187371296968216018697223683236624054679844514542357099263245485567170178452142227724196411260891720074115328853233282341594158261583910098983860063116113154309715881641155905295247096246827801249757750185953708271857153029163779340898318232178347856723926135013851203382881105020997479253051012821018705513712529952295070469042402225710857619596296704800372779654435868220057464800255902262700026036731673125959942148162416170767269434468046180293077976099533848595813794493542107428959047666158062215076732042675027826787127872616228036473026825046122607503633921635535553256317473229867894870349705673720315603434968262050496079211188665682396365518056511381314030363939775021957129835756039365948796893618619781853021263557701535775088123942461534202549152301127777998085341497262733633716395616603422066980258732903180496371023002236028678822864917929575776010014232482605488619049610624764861039911359175846846049189487963675936525599650373514321922746742076106564879946578661101375316555128408998824723591535228784875909709579211143055294656849328806335071505848947698588800503634004145907425204453038688932436725779832863864741648480177459152439536750147823234796908383133333963432517305080504651005469289378209643539550016105748218399796323562677189929843986895572873370395248803507202521715599489452644300331974611292421425862648279535859068012892379276037634922771515479687091580969025745144875827112753353259829928673826417871116886750820735840675471608840347946047696289157576270103488050915634305469429633191615695984916814186226836461865611922204948571526927298767563146965976847786384007936219533605110228718918331207094513252787297674792988279914376013786072892219969453119947922459979622203840049363699113061857928417258006254947174392027052358108130878340776707421283759896328131897476918706679036783119127330845293395945816494654861349825605508476734907173859030360179283921333703524507147061940893440079374264722184203316150238093836359749505976243731124480792426789415998750260938136313577763523262638573986339885860833927154999356369353621713776948882626524328532174949691357790487040337100542134756406334693031560961009497110706617828466850165226462536630288895213412734980737543623530178388150988215839374968051724999549792697742543878209544108279711845298385384977447478354603911351427928465452945603886824129899558592254957122225751257069388626707937039941079553065086007705787868685519723628148710480306833775771242955183949108857545430679295692599105624188408245008165936837366901042396463274469423101068109034771890839886548431249192528316001736934607983031281245222342682330022497534049129250980321646036318402679248158938233667865879104109570927951700848512071582498185389381166285551671919450632096741246916892535004543189152611362454402977434455216220854665713911752448936174611777423581670630543852310347659762532432739951302856329528429426494934866393359549939057290128771768003076230517448473704805257332730259133990481104520912719720795879300813876256809306058222466370749064513778627487952350712662662316062490341613717315081687251718193009759004384463103130100679465859152609951743690923501371267885865378739638166529850367088950554233671371235358538470777421380681498202082378472725665616443519417308807167449117267117214007970983528325924334426107883881403629941887432059040441188700029576347300357522564961935285673535179577855863802264380011122002834459445424756785156704089335754933225303143877884269978980587774226856320010899127250232187176243055144102046681546948474156856254219133706291241984279280699289299951482796173896118646102217838584208293675751434944723901219495387688575482785120579447139864967101989024685024189026963308510454736981201831369522472094568541011145250567839871927650764055754122232639178147436586806210477816941611451466645548757390950762216987875859905708593097773694103161673242849968723235083905286796243704432809900832340412588735639127063670073132687524492054339902620832905296940408877929386207057703662117289824554242064244283366687784549085813664243741192434005385270828207421626322937857205256161194659352553947535851284329128575798439531930356576480409578259454149076458029552933879940116713043598186623363979011610484604741351700842256277113176470610168019610897135471553476710470580019208353361198892975435526910460615815983044061170099766788166033773735344997118547760745830226590504425800577696252963035246563393453545304900828856103736179358083568736478466789153099985000252008163792107402445947339610747834023944074382649489740004481074657508759856176864327500383264824865618745444279505143954750040927284453718245426757372194540634452043837794434244479471397279338697890845297346494442285333705627118562485774227115394646696304995345891169032718774312353776308205647795715345925415601548420645862303203178106271303222463341214310091269259271059284915355373041151868209964680889828110033839673108158054276004473840505722440419871663608568679288285769009194668651782076259096494297134480532281510064006720953245887503098592401264181739297289247858250565532321310903408970307973963143986383254840954821104131323038706712415376016723266524063410510688965951420730416865426202293825301968214818402139264869866934981179293061754094801143830777620762323031430175046785037826463852998213500594828819283753322605211810413033154335334984917512989636943357413535408205512982223015189841054523320706712451741239651850527954372974942498992376615149815499672066145233229671289221187911448589754062004607494067770641507018637994504286024374228838922972037873609972510383287622302844601166032235623236907309418495904040003780016446882353540521757131646491140382479044355481074731220177169653040613510853133158664240103527342593714080451341327894304744040943258440660336885277841857825176329453299399130716527861445546460313110274990726289504249930304387168897548992329933099978972557500242130414591753824449572013702406422075475359236262862090509753679054290786268342508983363123393932103188075167192410654011206437375428178926202369240542068588947732330331873845580377366656793312307922595787099565953074056027573293329333032565363118625357745202381644430015158850885578643046133304422562645093353925914675179867856545103547040520991235230239835762079844676835599271648885889880294211750212521313372750299527003031489036156242680887846618729829931680865317749185245783879863736333808817328625187429983976401102690876084170265076340716743723903554074358114049171980164426877623970135863647533297598622585119070720609684486747204639029638389409930069040675022513830754929272865159743862028302087453529456575598914200452880721127785274174825806852135224960242258540244792485676325627404650497383121474105392193101175847328002650803777463834538736826222080828548084670826164882149504091287134969249981188067682092358111163324880507878745305535159822085041397889103498578651348365577990015520379401853512670330219855138378758250044700003135358426754006484390023579266536165737622544067428852775913229246329697045250743289029522442044972861632148913207601540642078210718281919651210473798249482000962410697132075998464088596393846547602706141323320071428166129529922137677177062593365779324264561295911504154484914923057821274774991760363101154946044026547327815423549607727296497133081173550139034940231850516259431379426287721153906341487804412545317919787696197809740957392717237627851760158321738998086002323630009329880623224765359699610180643009910297345352790735047364999696331850608889124064489491549382731584860021364713494881479232127980599279491993083257374139573312035254266800270572508701022264234916982901457080854550658895188500066037890386239855356421134198129578883877717110138856476168667621736144319192730696462710594754359579584459924729049884940177352816213766301955274490255247521911798827128318240308355106833787195866568243572742672889149867643725215536188139386626626617257323430385228982481638940361174675972568840167637258550088526052214489807621362023695852025173704712696534511581035801896312344694369995667355678829626982161033702067624248096073984798039878218212848202138297721491051810708035914715781598169586593154452523520463001672753331960042062136723620209334851849580512120366919418332622944322445545160737668643951214231823369830916305028875901961620147145031946528760924733671689100778559086456911543409258049713541863718309735617066116207546116674950879962973564580589195156340692986307546348102746615657032601780971378162812471165410846214231097735742020046997014135267187205582556157603410336325565596101964845575988804461033287939216021984479061838303435027725479167604654223161894737332009201112148281844043616901027567228870234808601100358993536007654703703804121842956886163336628318462778007705467068443122431261905391968979210039206110199716479092206472658638895079073737141961765399084867677125010122048065956310837611424771359778718333226069017705283979992034528434180651092337716923209678536760441438277744098961512049436741501451619645526802115779340636648889092827464503780622073649535609164246943486127706522897573130978721757863122400105572998436336100701995316260593139727479539915656829941244983664059072697542958789945973822809266952249571910161125054233432056207538564519068625369738764495466563490817679063612684883851318716796677838658458897468868826843929501228918045995876865409620830148877495942193680344072329887943085307780424966510232749988067232742906664261690139981387471761945764640384568293367590632214048158990903651205249528290747044522849960459543779515195548377218516750614111126347134010413039267633127688788000123723577886476421402347830438092400834468338955830587295133499127506578460823937805404823163657311669975998908702627476757378014454410245127406664495813025820788275988945867735360584805642213836684682940864237933194563593652644164507007580649075255271815183646987394708426637687810588018572056454562717994474527578391624240358023702764398954505905915600098253237806273476462741151189463679783482038279316776038104180138612385838800663183313389334991958004677100476537171603623613760291082988533843837368483454282276475186296313694695307076010349429573305915173675015786465963138597250813031425136836478712248749200024063923074680031406534748645616555200759800155306673817599586289324372896971505958976701256976772444535840482168405819595144593024227619268838456144146888906548266063602415580572857835680673499232942389846208161687541468146905584671420820306188295661541761616382834008164976716179161960325187602886906585818591599446400978465205192290227054093423239547584673566851469965886062793389297078106860432509867101908284259994013107683076218192696513204516300069778007890179645745353071420638587430652385304767819748882980164858166482935907420836229747900055621967338990021624439470638911881418120089158904312692093391838950680440021423729754404576985596435946743504079744936816458690749881113452715185999332182792262663058844305569581232907775880135975343225772921109085868778948648067089534940884073463516137026998678016983457599872093462533801568234516321693724171092772106333787279002410956124285989528269603428146335269649250712289927200495217243726410940040420220977550487049633966791939190560739790548346821667904823369515279432932909048379552065821434230486821600671967435087950232001020105230378168244345363727116915518827413335870421972793621413805691918267327225232920711748736967868060347280308328231052111239965674416504803011548019139161353631765996323538226345192239300802949191935318587106433677405601530608563567089025954272719034547164181567963151469333584214704831366521023329292648952421850958319284957162779705246957789825040616611980816710218327445622256401650731909773375146995575613974006884140944226670781175790633138387093693133985751436138382193292917883485546360600737697377819863752465468998596492850175618774694378429967324743519908280880447830662545115648571509590179595532006497533014745146664610266307724674863327870651226111286903657234502489251320884331304173553408567116398316909351493560348524951732411863462050732572764169707663721683362562312564550136188399814452278313017262167302831553279806832023931872110052842941949612485835580709928363642806967841013567533573520784579850486976054944936077299838610648002683276644418673719481099257085191229855597685435154040028137108323930598366695560309505083331665304532799131115781003412975337319377536919634107558280050995343425262990088186756846031801874006650214174703902823426391609108578817243603792304652037105495354964588283541735997690995490472937093420560337333008131922751849425237324605161117404491120361025391904709441036384758811145941477240530265365769539323839993560106411218302312206732209764916914825783966668114741187940277506488711861894645571794090104561477298022026433373434315592845297427466526040195725337259629533350153131626880877844699439594608450668825664937859579060718802617070329139716372821231777887190043843459877108681946122138692861095735125018140061554740150717091946475592537053320087088462431176214084529204234059305289235867747964970272889291418957351720595831325411127184132574153191141252294028819358201164021779086184385169379666048960799433688109872689229340349878407864347743395496423661642110987421556084408891822142815270135491881548937842593857210272009238007964768697109904405743293132338972627726422546194958805065683651080286612131633316107246970776381755716430813746789685841132493988435794389798539179293360943495359965263207262041744478055767823700595247076272259032294128678779502051437188922095136716927494086947062850589440674057685444778776838222191544009088513532622495603718467932012038467153791261091347387902728079608115394443489037588232752891394749196582643067291781592054140499271387340613897180508270257525097227808905106592292953149597252589944748044147379942556090932304068114348096772915961112303738658293522233508611537655019635211750403748761356608654294108526966585085129531969420879993462934906626112683179526308931778658206440641309746170182918055694849929342405978253158864060876727518095622270937628940210972606845555214986375744660366927059286702288154342654333511617834135471450605729230871076653144269352766737215831399444915443907462434354541422455594731703300414537465020583878570243414476002720223210796250318324562512829898431065670445919787442894044124467998860575207579365861891230958901530924811488498237615433374851597354145136417209605100787934797309198940669956385390694308037124780892896963588595482798905990986592741892461924741090721699638362165237345205151808289417570458661060053873635516869837885856113841230607330067424803851319535095243638823796935233338657096300912082339993533417514631449174365374228767405824369033072852804602020992689539478369142256466729354816216389420325600823700709787874220711312041166997253896682426088975129062255625894643966244541639027875814921976525136677762903765030592624688471629753180340997773690756147578263854125731427315620104778695874751454563728045851969231885077871204726062682336220804091543229459686900912213610768867408162362020504003999751020259100718157265663572513968135127838625621259245658486165689582801920353842846158279227727187795449053824895233340677503123009735794849815996017864105705432083420008800177360294829651748338552469287494928787024821284921537995749134801537485785410158989076321092541171550157915806736678895404732607909709314638592237124124961919943989337238261385460996811762684851667394922937231551387497173614417754574492550373424396805198950876791379583057252674447344599228586354738581066672781703435998314730582427357108738751167086271313294696197915125011960621596997395035631366704188202861363943902576422132544576846987930871715986380032839085944995032556389525941519785960553498698993739254199715213487863354638877161223221924075372959288999475803498316835637493880114482513033398422087470514383279924776508847455068280586568629350585364551425464434502799438800983774403546143355662875957884214225791139143178303156905736687434991036994937475681853691705507257273516845566421482882777144359991940130139144871897959027900017998218330014834344133137902949850093566121196095900372570130918725456476230974784664891540854543344622492020544985470888562694060432582395370568796681244542476186519078759613991988125146099877199009908969586223143226249901753036213290540338839380859126751625539995615069210710203328540774807135899006870182382830477794280281123110098200631399531880972426695063348530585742982122333141702623633160326909517807507092196282360319168549997637630754678123221621988836429988795235807327507265286895547225810146332005917104757464260514765771076405960608028965193726079990065730220487136683133897831305144457126434613432902609192914022614573801360398639429247364710474628112664107689336420593827970000273922194300482357818056209441213665915224778037862905758548367804388465077631702092397857134951031542835088372829645590377645699282037540756191580493666566891872468744573464683811274753084365839505434107788375919344298908390599253387037481137513928617573401768760286692419687341178129876149618278436256276616123122148740689920387264801037068115486167776887811436903405243308559368176783313692296891270653892579568090312068538670630429669733356913864182185459577115689590712738701791325728863498996076104906011706841249891507888153957322015597411472373355545237247022057895184875280921662109778823340524753793660477236011505017212864015981442063564718449305909629167200834018766491305661488149830116198899533103106078801791601620546650687777120788532643536865764552807008848198930127720463008138682078243885221511302395586896794032129154078477004504885590966349783595673723988592498444076694750045071979903025198388143863318285149593379331421853642515029639965104580568665349608666081403198221762210608204031403353681609729192213135620677295807295949634566956326945309347376194994461222899560566978702491866740819513231677200271709841059978448204573331949668063988197586352846433097835448571659145042159809474736696395816599488653753654022266402803300984116336722347833961867324257203162361698760177703432655286610232522255581368119870409952557537289427034245136351139988640782696859777490677026517620904323462713984626682994327237950119705618123799530150391207084188498313108762496165511954998798796172132267896723858068767837594777757852361835238848964648304197518206261203322156794993832611148743996392773756638462102376756942694261592745793216339048071611914618352291599925124235750567292636529120054201960135143511479538990381731080956799421466819524810653742657003624107176116655780212940024637042680418730261328111458807202014306823767342153256588794502150768426688217974773589213005377480281303657436453195479454548421475363479470915365886832261540089049453615611973265614216370980727635477351333544522678541032516461246098961784055307330624152271678499720945060792651704720960201666857994679857670153845353701083729641891364088197813553507840218628440579608054541084976929863701195547943272762774930449468572151708186582197932923574519187164419178267175848072276914190658740752277638323028939939405558350235591692805015933974463813620146879349649332874250377447549877975134801677936340382395119347485675440703111580238947384409897071730038573999913379903913778012461968430446615222246976685790766657142362270429783351168608295338592797988762634210929512785674493375628000554573252689080995392409951840859251301791678072740832405593602531303958684225457612626457773910519726306978757096400525443231047033241757380350672160896858501494282570751371318938863181546779346577758699422684007675949940995477705517773941159265015177153119115392970071867865081076334948187908470723575585027296812597252839393405776413450777779544376624069936286120196240989813272103532006126994118166505354807990279856185964452388442565197595401437855770864697321329329812410691683241121750078802637587852415162608424920132756267138692536085554939681441794728137477200187105002763440518850397190974254213635366573522152359845987546620276821793029039645551803231121611288288460259995758079760124603822010899966334593829340241925995524385176816557746507174588861686651622327344312552677816593986374661119012174679648519592477669784010906251792092674755347758784726908927838743477534287923948780294838686651832323337541317873455336533191529407576010660301016988951868246734132673143952518956676126072857495576447147569840673680439395014518297492647566736579611664065641390841225614618731850290190884964086961777269023477176874488874464934907464665459768371008173102404300133818224859291132458573090895075684523195069790710526876520326057213964197681646729024723357114622205162406774705149098366300158115767210806607137353127304946628839961278717018550083302705438897693423995547992229514856465289477786885614996243815995659041258729500369727230403383993822523921446958362331441196539195144509408747429361698785589617811536397825804535462293786403339899790025172488454449936949594157760053112792906817105459050501004346444452611432845191214402698176297090623690610452256018854203113399576102854784765789659727098233576790484436287799526663394877130309403073383156384742354624010557148582439276257935416208835837921470385639884845771962072303659704621219044660453200986738722310306675880561317413153237179297817571426726671039138121175983224313797216139328129348177546191387601859818062715527043253954005270577091212159070449368275530732797798740681303800838322595740035694636697553528002934141597131032320992928990710719193051456493703477018116333173779291220092457751799430729665911309245439215978964429566304664924495486998631256110496420617879187588973359981828707215186371593661852721559862460638559265755010599295600915756357312349948194843481304515234790034027822613511758559434568578860042069358347731528709746989186888435600958254609414989071282745976632331996662392015266757695555885641183781064640582411829121389269013842574289758824002205625124961947817492758012725065898761120719929514873929004089674853807812527112286103353306461865697326272459601698829612320440489733968375561376772290362567877315592060269052725010168736625207115592672161598061925240577162030277781450060412406648093792523652802668144351626387148847376960413877129132642416337759820066818920450390374649680954078741390231501795501760020901441394270333860731798903447682597016837914511419232760239681585834441201390869509162399731493972211028633786934428423031562192350066276500204224844152695848082341281704625215488924423653442650688760305701174312532061064488689853272296248181535906785452490283615844859939438169413380123411708227146366101551948111961511620111125180975100982931617523364570699459495346739460912386416673315684698557274615267801787483662376499922803269770577753495377417548309057182881000682121108710905635429766749140528329142095295906770942875707021671034874991292694708514456161641999021537623605645738313437135550143612825055874765099879946258341702661357928653221136178562711320043341592616783262805173345181292660697509297694944263633287977779131012032279030870143183714352478617332206519903651430971712299326379246345365779534701688136084667630055419376635858268109564898675748295452395995271614808693008249324020162483897634469503255442885566597202848792556473501772038853300894802601454127459379364931199797964922932304395544738201054447690011106030975004947213030205211160672854871597492402030973942352588299942668073920353132573287401122665426124875687216391438737254745335383213350542877991067190462322504807445696559721942097563553150467959232836617264142880633718901749576106524612149515399166231790235604513103726868403919085475408717635298736722134713242875213733462111432554684065434199512060644860293753144719507473535510433763936640662107601480555985457435942850780882351945664950465298987629826367954565297288511162941441945804591827859070197217177513820653265221939115338548762811514352888268785256185140330099412249827350702223024523602645424880686741072102115096237417610333301413008056254038512590082902602643681761620754861653642466480647386235245116532281470400144615066256763460110752134127105227157220487085490168594848858852900479544357669832728158999164686224046655920846662697466713618674070260701128170577980230451246828951770277553872102050617257100472849940700064242306417784553476779405899642858409787853617117997855462432938095669328265158901450062818901814638823444170753655160179507476609370476966735789825007935570753564055422556971012070940128728853221246077941276853569793328955866174418902377553475108529993697132040036853516903062309679613066931567454526679161009182372853238682063391331694020624289469371822361604115757726971420974611500563294733686894089132977875980589972901733064375024819891420945056614133847977351577413575110589285447101690989674917560703852645532841983474254509514426642843019878166142648546271798890635015497420210584217741312552629675296380114378138854378326228185665703363103141118650173626671023218326077404770090274321538136228677088335619601750164008041930146592872756127652189941563391109921115377148821673261870629332063021750747799887909740879378254155608946764003265393127142781693062267477879260149935794529455905998882688625885388070201545077088828760596604535860567667003168091147515413193992047081086966958903730291462029807234820000345921396307034804097255853328538239477705154698071655355628568331023535870559167494037550703719931615200960828020290448634551647204230606098493903459920749219961446926629155757642646551972110460041651203406649031499720371340806973497962404870384792891737826933994650427947708577619905641338273356165585095934499421915665681379044361266403257755908884783759205444347697887661426426166854164890895631409664746238712421057399957371731149398425816662350343478323940167020691958870123176070069673883645206861326027068392740102874285396736662231293841385784681619840282124507241849510549464291600108840309834291175395313257325554481654158508607757015196089200006997539271752177813420386247913400975485186656361724718191506422428013781766439350238797586561038415573188760754830874856815376537575560759233147396633418503846799134097851934527912076898008938093622899435351043752694717959083780730110465473635266854512514342170938245957472295648113594332638455507389978031714675404952871978090748828903196529327642589758687683305711248892790895273969260061883654162623087274845831827947032735880107228598492162130571418748341128031462583288475136580140265322771616434056167399942279649262779712487460727299501871618926274715246869803051165802062028491062660313567868418050107171692134698256559993715781527501002276969894840313350630838064392058192665658178408051293734748117760701584652392275902099214089108742480822512360961320828190456228558723843643912001706346371747695735236738060414515875218049778123424640235705870675497600158067387909747321402634587651717383100494224915658806338440888536490426179955107818681761740283244157722547950168819847045186736003973162636675300286232399104729545887907158428376266762012906589040346931861023043745529727212005528786570598436731672149276665480000336558334710434385745346162458150583654137146004211467124043168050552254441699984180683133391485777179373514420850302862665782366474786581651878344087974659933992353876184457316669882132711537342775487169402185972574451011586419583009469756502940456736384135937232399777808525406964562090607129544628457829077781718034972029755827733740505849886229900016594034782868477289654157824687002808671127448001174353510075906916844920172079541612257480564877930449764716420098471410375652162815477631915006193684484884226885036684503638743083360834458124434586941302115824188750963068200795129998729829944348286638897369413451594510102615336766859890682683215781846507384840929945472900830887700076932034721075732817939484012489700412978462069304180338582308162134779128379593519880741863591114254453555453149964612302248503015693307876158672817834940183454613510486882716267160559110690852465901824520825738515116290215779681171097701590406348609130109870007637433706746202082341271225875174716084229130303665234654127471220959402212926519525752690756668074893567804896087607506882120684842495675422898992902240637096246301855989768652654671673681895828158764419142179847978815958412363889473932688617804485910333516594251941383209554242418159179979928694806660224504945052385852150863540981281604955030825847567745409512475291658696466241270282742417517865208503214774332113760301060873648014650904179501703809179147606737350771298910106895671381227452941145484326740570261935445014980725111792718420617399517637481799024437448108300494655323521075866442284516155642372182954404478548152315435586976232989416185108713804799337986945892231884343590698673626962874018964809936759174553441759521865623120035747522435175140430996153484188380596015655504279305320388608249244643422863760193980717071293872056005365321065873279602311522806189138853892351808853977710439530294368925837191810893158284914329055324226243934580782960223292870481726036829592083968748347960991681293622186043998411609634910692768069475022862770300056934321928663635900936470866802811411599519544826790748872299619485139470740738866092444367163510578802115344059930062918583384843639964534550185515418027703039922081285492672985545026718824545033056406752371271735052403512812228869939440711155052491581442791792733251435138433337094346093997872646078787829262449390532260281673400850552983852728214290716971946644204389297689296327664317693175512256251568197215925534000588409424526275115267938962923735876133621008495534436433638279439604847742331009519269670833918246602747249560646956641291609740418579410968664270624615582684650664674021707125193678965232400256878932341320776545657124907693188330610764774544161620501756612095047770469913439452480775340868780269737880139530972187102164107347063727764468184182992691558538012607241357067709234894034544515776238123307179557888736423487139038746340320333486396796054159635339719664900490613484324770154297977932036723733294397821101070742064549886157460134275897372835112252784839207488486326053382045097344208920868952339410605210476486060208001083191479624096498761845221031560911384637808580124581414649283764943493239545021584279134283071005320776639297988320367314521311226859079764925618112994911689686163874520849235855140843404409523935166295262855323810519629794518968526375869478126873027960808663469038383147873366899731765924066460342222960058373344219237682625076431495599887561594020415458659960732930418856075269032795963055577381599894906068874283172180650875991292812480222897407737375249209291537060145465388128048346046395988680037955220648466960596366653940297551162128292683363111769411345164110564582419508586232253631967547251976960266809336976049879001555852379064159761752958006808153144224358080814557915299007082262581580227689147879144633871971236892391214233878744597435402224409122830607463880132938298845985302497757569523903129039467888032299194309110688487908105294015051482213106866041680540454723175486250892409084816535345421176578447529292568492460688536876365139609541106614967605246398170126133945893580542701994468807915525426237877332226704233006616318230446845056601389675770217429789035578363514976145753273097269342109425541395038656120921739254696414392079694989982879452411178420777525718594097780336206949983062403591774289170847622540326279941839069718269123092831122253388597146139337076228979341543612845604486211041324932775231014983478203299172561941022325601424336593495589973363500736803832948815873180413747252064710968279225192917521801391977859570359846507333301450018801889491302077354164403937116591719923540794017752093661922534264090663632246664130461337564201178189904369287311903842693933803451194912794374250999843164548754292578340262524749853804178720327139685785204522768978816330800086714459631281380332606674630487189630833634566708071424949250310058113790983924424166224288139123191540296163789724186956103301598596992238923430352763654924612675151803808110003139689191054692181997691327108705614215204378718368862112052429433330489777188697903711513247466805500803355557915826927017279475236219384408258308093297847465866023667863233244301992543486297686710222079208705924228331150136193671776970904180408349315851099562661367674473535829864368043727881373529657913176447657265851820091870224517102448983793645963693524670398350817505447357429324149263746003949379374121004768883238080510919913679413334049056823595132849236516260554625291953809756885684265107782571326841061578289883447021046412577396586684435286140158238533072525821206062421934904631300592354035132753857158825836443133726976645428493329102185209602112727041732812608291383491170578891251679448898111232880386965130991122072155771616131171939732083738103932954966256186371973132392283231280088408557852963785386871473915606706183919478882336147203965812123147248819416585892715209907336957099342688015481153073672539993301854260612395320012676971188535397334598145400677491851078635038872424677856188291165430360484874180270373103118110605704504814645021111794871429924127671737307097441688768427327506752823987032470012451403173049353495816242744408708916384115124727868209840046262992498021521107567939914581940058146635896697120811089934395299766414046468169179793371220200200131122982406969294682991243900162240389019930535715892055629309127666965377526082235986471894215007524169479508481289754790772412668623360417089722284529843344458230381714891224020457960633414765817563722635639668559073253423105301642674684521580559235251520166961881918730615880116028704555761695359158567983703258099650803260533755276581609191156720048778255244922576293900878271603415593346797851932402442802066011608461205679781537332267847811842597815461970056907594754444478214807174593034060657444423872543660157682881013444753304796181738941006697655111231237685727342823660119572380025887752344320565845708942491260589718688931942969522578719178158265789623122567204674478921697460642461488756985811419178262609346461098454956813603904823218646280654523151128086141181797992212642327376087655178070783953630385523720122340627746681644500271520626758429338645857509839670578543568996019958422642731568460162526024383369094635348791628620848976075689114255124905346115771428958084699899601183668278570870717978887909559574744388860264284091375461684823922307384447508682277063015946640640963638392938479149579022291509138893610059913070516049911937512145655477170195803428863769541681407881726946901068530018179482903246502134435353438597965671808843981782764652467412606129521473721319787675287816775610747322142051207909874449962633318419248868742735675845264902588623195487310147647917223828419577559843828517189270356911794830142722395683556821979540966702241508762189783946989178908229079296272671141777714377780031692588956543550954183116400738151237010840134386376673159471625742084185529063830396937892888439181433505057513660663914459336706967367963091548465090755894978055943983840885045092493915415099917595940079824231596788040040358025555210240148169709860535139157538410246699161147887429082170725963593536133923167651043749604239280511535971357568965384591200127130187655832814571918644553766110739882202259766613508282995855309679914987816249351261887129118268225600127381858438738077026938800632465814732033368505317993007081858633298506723161728929291521892866700314789909936705915974862488877401037009928711641237558273038452780167120376802712877882887529448786051867742249526161191273135506762223770764147945547223593750906963666613865787902248805278399432066814727779465773276890651141200094631095876756391548836942146967490205694317915283637468228758369068304923320700579668635370440598321220454363762554194614685843846117855254103862353414669280158735706734572167022842681190294210667844254604901508853448178792857173310164452294962355459684165246820206015923687197745532444851600776728126666531024126501528944093208658578714192329352388254414037400303072848382667161446210158798489168492932600636651318477623725300999970608473062075927553691502455099923171051892098796145280180451433799728907126967420600167160087413793694381318792188830147470115520789562467339882802084481193724068969004361511552684662440185242125356054620050932862311595492839436198081800300858360392893210259816405679106932876551714939600725317806948404762636835234769092744453782574969378298969506891234450933104208620183760085883819887425881231789751974938449067115643760694942471689096840416144757235890175816631983130172969954525030977325385902044361665571372941940092049233497655618345205270272005335634757627126523767544537484069365374162658381467520689903523332426665548356217889028869020135831858435949274951766428145284785328193076047942554191654519802577705966314129563995092812651276153831619355250550179427480112866969461398350504180206595088341485847566319231104889465486345298461297832595689401467958101180572567073173684426657095150470711360519415692778045631331004745432469121730671971774086209056841966086356620313505525046427431103434416617532866564553372718452257866716889062815049880264396960285209318348110875315800999843687584192402749126055186426994960352480648850474687766091821232759204365645560157189442481967449999013796501413087299435408653512937022991485765645771929111297795451330850109639839580724403143285814471170382267575137480874315263693846570404142464876557571146442421038282013474680739526355048518248090412416628234270627503648697626107834997110727303897198338369970964346786688092996717396499772655999091988647015495750785484596197028988580516112352695189663597728391889476129707678838361989699769866240481837066646412303225668404356410165183762789207978158903013608878388598814599456109495725570125830713071071536959377535483172512246541172499304858996988629880063093799716971115786985188908199908234660230680046860642204242795916268364059297511314911958891544421939812111050268764723673025979866909863027609956312916930999451084592581929688013464558091839957453384988971890708210475063718415528247643672308872389806300139541928412198199890811032886503103543902932661787501244893603518318584899497185240058828794167342252190867148603748615489089859515011225704830890401953787879188637770296808985442356299695997409123665079189191468614545473273038698814221424658897424317722425328387119024112117026334927191370386602636227626662511428973848040270449617860855231757270897425744410402154637626984428641972223629045829357864031139962209942467700979281863656862442848808213191516761232988719576176288555802670414559793309276148001998431545728134052633500030730864847878856078469537962446304272955753857512372055696403514137318238206996954916481382490743217163474483883133173702095260583771043093985427310148703831213810923618711809517433221940618758584054478209360716379297487237495285840551261948888958747742101810164004521210256034659357559511872114725512317765501421226536655519026228089067521096204543686824929244965049810582569595370744234968713029794823530253575912631062747010227248717171794232077550876430059860281566539049662306798557423884507827190338957780684964725816352834800266221049318554887582058239195197562237783784041347358414186285537497947966383858100484086373908382701789709057157716338303765643142264724238394828815177592381715847981362751077772512789074290807724418740574102686144972706273380002258315540152959109628638696149585999952969199453544297816660487678821013690567449043671306511263909023732479442298446076470112673742639076737711183475543807246777361678554872007403055428008383411683251610245761025280653528567072396141281661913797502556802715646780024366213706152329859534097487203124879908103167149878018329990302740739220566519549399463538234080245089030146562245866508577218472533155147566307900029176891049463731349384862793607423986389488050784522433887563274163338159542590684820275386223415661089120664504145012079351341746661748321371364413733954885414697910558383590338972216845709120083179916950806545984154081569821807343436370853060490169266491794898187039056925240337509880705712013892428638939647408362358641250287418082583121247213715077138551978746073879643539362865864457078586406001841682638788744892469160530511341299511622297613413212768203077108163671577649815434393080939784245177595942576467336952452682594618531723381724898559139527551114486384210960026875675499331352447790207402619337944729338222413306897219958805528763835349607496616514226455367278931453828410123217489969222063589664240033177349812636495386702881285208238155210444979323023164756045434896164472211672911296467331304755244173525037863912490986909632329247874060850124827114600226620144048996015338492777049140193641787169955304025629672651156662407131620006478357781608411843369202012381363773796641796597767462013132305565654463776245088044392793208866944650925516426597830900844050117989038699607010650910849564321726989583392068763123926551976249246963931609404650538400321326884976775296110761117753231058210335859784710784699354099402401882999941274375179942119603255797648314678002226612896291208244343295424568503294409933750172334655203314910350324711591622367250934656546563375313765668460743179317520489789452247812182235264406453534267116896688693632399992333529887440928640513581460832981361413889325886783685865538763880001121554490115796762924746779271297629646594132414264760816514110732066306458062473678103690027397260772801163070925252815757430229143645627662921819815425730849977127840031420705092449471983503049358059106372094310899123104205740051602663438654691844059725331161643802587245683378518319702851617285548127643522299987481754125510343499747886103902638483440201970835178731826796716640680029377034206057294213199911271049698039703402120974709915480209630165248950950859405022466539626271946851079813264770267529589403105196995921132641998722977890384157857637886982407074673800963842087148625739367708073926006053469030510750449218124837518262647095211348048163939448607763826113514350447219388898979772673556734701248236083774165931401134370442565059743787174639201869572033245294627001960970845294496469136071301947383585868474515290385299192974159942853584460705368867533812386222804250211817505704175778793898161250009428368227957586821929898394190218370221287784263431167845904468894330145814845140665361021000219030456192461341754468719796127224105811260545279401530886128588575260771879547839312195813902204305557247790013000451629817370070720310457866051726337979732742672352680142598358738936695880604882559888928017721483923592812811392186913324595751586016664665622706105145076572653896616982113938626249269538033187605331363824191555668201148475965228447044095368593958704280030261269471426446678239060053539520396182884139379479895722174183126518755652296026999278612536642916829032992289833702301323644837072403972318854586203514344269952707779520115171663497291645538451946361074339672702594349830951041810761639088916701250429139650983797704086378942684017385456222655410119102607886837116686472564747791850515215835394410627695446073283384270786821400351282101779835667328730241489462645241273467000267616309485213014507585235109238062990347969007422560110272053335936672441115214565839775937668541049638203431567254875403235227770157069241743744312114006440927017100036903103880889055595579191234429393110046767850093133673475870604674236638994078419233369196561427383284192660178200572928057357817231311286648546661788225211010452664639189540525857141612872439230756970042731374111531367916227095783273076659873071278778625821989310404374416874443209013109615841046431500544390142990923290178477404701046910559866401976927761382016247516655564961738603985324991596657110247020063613473024195952230090694667481616909201045915657953854913964850202850092356379821485859695199308745442638548741195383671349339903726686415566318117624041708700950266975063559772442763336050854507206380520395073817255576976023812332072574017374527969044749859961673008718458366849915515082905390858768043199569716875606061808738697053579275693699374623352910281138890106217488361092548458185761549745059223385138890290856914522399692583814856548974057590108037617188509077366851210885969097447698901365683639599079994966997009150964298538353092205492532966853915462762340590662923147829401920713613445946581121651063220200010753314565312692244683369835064206884307593989621663919116387779869706971300907953844314560793302202775272633950866477419990981419413615818769984515521975242209299025680179923492363194379691716624134136276277567728612071380649278215719195437463408484502571653314390224362433046800699418607975182761804514297356660364618052774352520149036032348208722263485808135370704945096871071173695184617637987011026950987372675354600872595115236697318275866307020658852672313481103840391644602383787196117133885478393336719825786656062792617410718086046800498434206935662457947946937496350279349491853409962806730548265198405034003097963466910025113892243977800858463476892089444642082580812830659327517382308707161462691128793259945694540462172005988358730331115594549660695212067054250466148118900252943258203211210536300242831778611626684285032554182286456286824637670046271927832664220298305338871953407410244938988895227225394254988301682468605605549941896841827718624803549713614960976663382717201324028374367119141419517915958579422491519125149058042581115788874519028330215780324885258331077920414063682250737733453445837958107731424377514850440697613439983912994554238579107723448919793984307652271314315349366862003802901063345285432872978936119097103598801469869715012187117512770784020934663422607438954904904342672328858649389900729169078826272135428362209684349263630555808998964376454908859376062866582414603197804758377002976407591837032958532436549179046780991993526057112993939326821029686184041391254154962865268426086356819580294581254277401484196170908204144086252463806583218149487498615303076061106878316869575625076526106583170754853624801809400179000080748482377541216906853200603015033767084694236592133946726997683360493109863530894475083861726262366941962333714014347828028144389731169744127359496598324482407868684839466769552118384497041813165866369048651125911351896135095923267916897398963398454738042500720738967359687756189911115420308359479545845574063406355982539346912625948385377156083706461593937756095180680792558580145153629097360049052773520433742231022717098435249920798111919763989477491975781698873649012448206832531507812816488895833730148819381495081190510794706494260106474298891224967944242841981344059334314826206244132374440273192764651994446648064653473473854999814655509762267113814429251925699843495875527408310610210335812515483901052988820903937929167615496155894488085261727579074275058003376973332551678564711902543671599917452418429732637384495834322353051934271976908637871017065466939260700988538996041671475843719092766625884236784228591084981946520200127032255861413506745868416927808861565763403958781799400832552109377950481258425395292155885225398726281646922147259873549569180105150914339326718575071388778879380351644699511481609321438982565288458074098452157520297691634883996642178071331468168258763554693774400248547035295051309248751394302773176952154783854795546725187543466334286516947038081126283036193557571686588531198953586411609247875364654813713642804513527810178449670625269318617595634743139439150439684685017763470839173707329871794294037360991748011277609332654976233673608765248203941984148178598199327417486858835028975253339280019254163917034655847824395503783198582447760600777002455833361238657246665947321919520649764046533593237639330302008127877238046101353127004297372283180199905763662334092018028036018224541023985986066351395424454444539498183621409837197330155076918350044184322447280329729081544078811050515025055394121205793225025961890694501171820125624992702485437608433793105863843184561006922297595957770842328936718836569516789447654374236746037085529643998152010489963381672889999097107496881529373455071486274345356780191590997914324253779398910094892955798580997319737642647962588191658521073408329148215666082556797176863112575124332009181472397322213009922295678589421191983305936875650506355136482376676267474470461022332738624363739139853630804083520849895053470217830603158337895443210035454725951925246609712473464693640948067011058824925351588701183135989483299243895662237801113264853847354036564924173887415759019734361095819382729754586564615712887976568207668623252258746042722616711914036150848309807033615590351097418409707044011530772314389941101393465290296223326914316009973316173756241603082478945751794715455457769589173279135615701303036483396092822448798464098357024716845312463156278733704730843432684042595341386205659447666650171594521453559877516079440880224053636153927042648442576831570481136732305369211920107413409204104882536277503221534516368873977590071475085265262334978650703197136336623331878069976118161353584642591904624959467865005794247987373039395973112551873135342372163758440529887174015444582941261600764576600273198274299987953664889863699479781591022485532524086692610278392460601714326227821805451434733911290608913241349820929746096824339040282364230869911560327452955442458980025719712217350765932827438545533547533418375813954938375253477120057540402994028871495886045925523980540573673809269430880138415830148985245998522388264080764499144626182257697806731653902874588672091151698012878508249761544492508450377242158900723971313675607339636248071642251555699493716913673279930936001441114673483078392433419145070760788243708853555732020058719806543435001770391221912161324534038127878525273026267593626130407565751427920760774396656896091841483510907473705425718967619185510858347076468392840615848068332050702613058168673971712890560761679935763275918033498742912495040038436192975177083145497159331904737719039250275844578888059424034929176810969392057518210378568341313265515659390173269174835137875930853424174288289756868495015524247135850006287490539140494879922125459272692733517636448863507248042210079114962602761991937886990989876361634329708253526288119733974292012659924795905091218607262929404993219737250404285221313393679768817086093723493749911231922344047446755951860403351495544287298440434057452010263202672488838407743768006565009846687855528404451282426926186111133084358047466272799901678323436822454934653710623058518483615569620444057960690752113744061179474644967662256258834978835878996311282061024324258820297795772471608581070848005290557912554636385748081977648286010354929459519073071176841900396256076015773421000523683308918030872755423339553652598923973846926644307579848369825157804196020908539410342206085510752850121754162229116767142241300003171373626899105045755943435126363761992914022933117005995663613423347211203022829051656897093371635421435687951357002518717418850656796337214380864395349087823120737386007593722548958386153377933647194098220521102268717859231159381556733675251255038515532391026548295007993496182914941057767408615615858877936692403082850444290724272776722661519567398694271640298170567216013055640612990611593725953581887818970359909930243773460008165813226863878915512825410213385021411405803715296553228178237870096036808782337673753233021003250210067673010963453471994628978708864012422894530988989993756186624289835607595653132020963673479343124038386002771574723993192748908112757758763022577887141036999354869669662305981491226716228266615482085148900231975222373310014642654333941228460954748093227298971731479793503465453350769238783575924853148754404188842345056410960912614638076824479439668914835151875179968206331402772308214230525546958496293087800349021461977268089171147304743684582555410444391712401032011876319316100462714823742021646783906925200871595772552517943749237267475927858467779953028381371473078184882600807029374285158657719772144374267469754080385858300739792884569471870485338729466177462909893938477890710721784873990567078001478017163755999959535945038161433039954841850854582594248313025228729109998479577204779880465526306963720491793349928737368397456027802694926078770104270146526748054221532057031455387234706385891846416008277977723580947707587365948596506262468871604407343661527592246081939733019240343270465024728194598965276979941582870351140482892455746139728140524039010147880570555115110514645223558991179305676862920114582758554328123362205244533004096032485605309699174633647543289110303189952541819277368798743150897500837401534581800304749681972761176407035993284001927819820765463685422170253393529511586767634093736251932916956222306436331804895356965537146640379267931047224086491516876677666633706203530824694979936643396486773687092557436119341588787234991148755140638337192238131138533701141079600351012534452007334597468101847055917735588275657728831076561458578903341617412331630298209244880199843066421417323384904288793826108531792152561575435610010770066786941824882118433187235520479902658372886250464184650748751844342566709113401381214587112326638145106488857493873032313930400331058038446267399911454487567225817274982309699543011608715659199702800231865004848831539880818691160963659326601609701728219439211192885630363315804280892611394625964715321651044370552576273081909022598946868618803553597149127658911627124811092459767094572093730257403614594657377486337368392601525802552894351504077880526369408086794648720933836493324023471493258102791132639074989198651038401704469794930626745417223649460336668358544881110166208225968196710971795702692385889070041811473800590217812936527113502784455706055014370222782889340823595404329205526359289874669755799726660694238898537023087193335058588939142343072478982701238413618134202261047212509788433028729159292818937802441097299704027085905103200687164515198389187314382648970230188302757530596386011221193498830374573006184538251608967344136377369646368723078882725962146179436796738156643276446744984407915374003662671807931285749715760018990573354676031683877916509693953762441195001464962441188041184767169006499227990434001639596770371517513831574299739544990342758061573200839443292178729422421986311158468155874664632985079382554379269262797752934547912523802215274403312061510009142632981693201697953524053679932825693924467222832108070251288394397343024088824795014560105651474372260074186006178412654680627880935181421184826596697457789646476766764087662434695540663215040449408512719051689900098203864582585149515313663091368441862496363554908911904431738028745228423137814608387234308311107093344765855670561373311380019820100121192963200658943649988708873485216923814428268061509809130736496525760146687034315434347100912967650137322211448693949645268252498398977448590215380334933591539114197615674287812725406544466353402174084859877960392330295570711839319083334206939981501824481121535323805964772323990281685788735663365533334055616558362650975654109277216736124656040933096888460608181282067480217840945640541716640359002106923424654447568555620580844373722584994780965204390003125328114932515570079635236372621642031713981321657818913272136892884469216066458831387618783695899289946983802515813188086787376263878344969628484736049133925856302238082698372058832444372246742125914418546231575744065791168398139670317130629868270208883905989025705920285549806156104474730772367453019664159878151058818114775320929980341424894771145484913643895401948589098463225636310346800672710010807435166329230170321441337977832854206019503567309504506503509263889285057324201708732832440377583064020797455041088114163235757384329056921295067224141554697400731634920199908022635224071686905905465809225978325246598965768744333785052455032780216006840881948825295433399285156498489525657048484018718106442852396398704849847490234887428093412005075994956564475048341552221065435917958014938279617258614869966546290622070655763720376140609484618759721904312737984879594541105950869715119388685381867252749626149497529275562092817371097513999483504487281356197361489780503515824054537363540089312417916355453553022705338428852652284420709377347715778767446190778482586901129173090240885612964853892689430366827064182462687379725923489774902946253389820199726723970073075497708392877501535615709359019246045734335845217884581079138135768718307855530906254936105565139132263156861671096140424686516226790230820778071247053162563335095955893287855094403802277412611147717446478605956935716776714923675871629074950020158633720607164294117887044172187097041185824702821097992677750687046669631059601468838821107792347307417638809850175889674984959639499530329863942773968342455651773882436823543690102550497630118671722710174084347538042601202789146726740850004529370049065699427735091791711793429955155854050896323420593943184436407115982778290889611192495843112568668669660554651458372653327431658913791604780807360810522292351734942911032141679573024176778400767736902292077273298444868839187900971619249262226615755231511221660351855618055130143544459881849950508096667823546672977304444582793276514267910081891181761938970061654302546711491104362470977064771018813510476918197174278029275327456398583441280523006379396506279073250063537755861084124255087380647674219807488653156949188764014916036569052308941577163168014029789949291943454128729601405190015353152637603715224857411747992146442673191196851778172617620915249979485399357584776826265825481945469137020582786130540474618755171184822612380886399964423150325493705585672452999348089353547228237086934231296989299031995129484732142977746978266213187434256075433200705551440333159510851464651767518284659848428683061787700057494600004107643865382801895799262073049107929486226133276577063436385522966741002258807183797900849741884355976399407009134039431835991397141499647861332172498767842736556611025872649356080104381904368462465468900116640832932905764633759221515292551483789674148689995259507095751420042015601509167007067440652744726592988589201253168088723204758883694971781954675252009964240941014520647474121784732360360056178364528908528976569129631551831229522823684803653715118026730485618937460763215845558152321732286914172509654724198438843563851893757106141587158050857243290980898329990603139585153105863620579206624360769754116073615909697860123356619403378264311401296067259947783753218203696629864051829119227796595181761259580699707438487140038741624600246884630985709170289209707690993289819881401773166276285511727886356521378954077634135853898915503532387254073788466773067372148720103429216051715632967013143054383630505006708373654542170804137527375208911666388932351512800999922860134958834310764723961238497125664242071524223965619573054289365764132592271965704903441449266166265570352060825420404837908246603532787328499665796810330503346921594467374325708810104295506344660283999501537008238368495367031017681505555256691368192774009475312724482827803566832732515461088607972871239699417575031456424493735696581313778516145150040275748528477561566539028045619923810574795352467133010937972965828429073984029480928570011448167623385575886715288326865659371088937972582265959424694850859582046397883829562335977770442160078120593922845817181947107019002522414138835276914715348990968220621094939174955304769345563728503577936930066001782223722308694425940030169388588025469162847716458092050825259522994250300044171042980509121441860010307387449140842580100129128704293994319000073731652544385875716741108255314920680268290329138391088872427113139688430233072712039532114344080309222286537556346847312936490676928594573658823735487143488622983588228004246964302623450095385069900386382121199318804932297510634973794945409106581441382685588158251174848704218765052941973321366285078103295230306904855887589069819782156966970716489939906017392106190625949387447689290048057813044869068072525404718916339307710335127672256280798304111838387985842562118141513641869551615917718606175207590791448318004832523397207451997041591392936725158577961057482692180398351547378865613747447265117660565881122375708920088848690952125459949478744947079881934588943821901383428019175326896948119740627009194044180511920764414039496943194752832874890724932020488203511112221022137158827630466105420288738409454013667437297637060627232011452766210207404057635441390607869927129378164993333860417796850022958250907386765243660177701174365064358920432273609359096465898681707912202427960714771665991778047355297670236713423323175234186120681263319003616436241151907131716797380900555024002472619867710399805025954610484682954445374894061542216403490427744927695548535809244667798509773349962062858697167073253731840193815733453772749578262285157341601674837088691689595777048079613655904713645730935622448475652896042179881540610704895908956173680156302398717211949546998299179175125496513584311088920639056010611891613773919326228356868801153331322766923065182472968870054345195254766906524765677671906813533532707344167550908740740826869448539736115067123405437545448359558056714331895037904847316210454023710696434478135539480407549283230962123314760918783425385167182291539182592452841418331211960087724413868962723350066076823672429017958931879340105219112586894958526378400386748651083771839036262517748111268396347782794290588748117625281115519356430690378775290743319768658596683199086155946938256757972996218513614946610361552272853266057598704620023910534024598886637519312689080629362630975156792522508279290505250669136194182731489038257684243601282361403763581994418313565921438784653781034781297642995528217812227117964563420052376920206405381947989905670037890370710772156252998198800746373043367732862451102139457984386567514229097565575550721401997780054357714883884328035151217280689998433555554045393754986420670142756344069576200765067410332651868892910820100982488347161818179487969049248024219442220168725935156184352946048430957467942468410979148339458761334170420742155774697459398098421225029958280669165287790403247075606980813522224194293867478982429579408118411580125881457853339459223183328588133710597846188567992217031912888914416341747237539516289715053456936747278908914131251778743780831219115416345668375000194850023653327189499513136769867926488745128426285238892080530697592450702630406131405289185168780701262566116052937081914603416554387754484281522929082563956032578944535937536611366291107703167312893891934010837530424516406427498587293991528225317947038676102985775959526371494599554788378748235942891192498124392622196031301793111469015266021234560180834810440152560793585493442973404288367472260660335055134695419799989730142469483301784533527843130154270387122068573140563485917120725754058326834190552746002357981039938278313265884910623438686272217313185664867192205080574130461632127847663533230633520188168228148833789743386411557625596548137428439095979083938955138705425560605009451814061856595573224344283293878639536093815955325492451413905492033420400158075942293640039161138993822607756543385905721821394893448252125663455964653794671039618202438782530550471554721786277036260793913723050989517590981895759376788551984115554418134317939171853013538982815632418671270038008780812358796676532100449001219788056976203988573413986733770068805789563906089987912738814422452046792764217457707138191599887276794369997148091365915626598741658767476926831668597719672918630888148524565243999589791817185580728078523235164143949342429037472306933141394258631476481871840037768242072498928649121901632659791238790691573778052157078621661758340785907703346206887970974984286588599628438461461300787357324002731380309269373114475924176471805883360627689620687275205413557771833463130838423798251376314530576958676197467142084326460378781538584078667466472101168018351280638313434588635722125183903402971812747963395707523656857416920811391087651941312928384554295350803781820873464955294027625533741328047706601710566169693829985087939714443844622608377924716368706063880629207474364054203224588547835581077073679836702220040828227454148988348712847750917456630456508695593378895215232630258234391399201902616410265549184173785119560533694030327528040194531363186214266572365561185654343637991773539542465989592596196459472046362054780352650150688224315877147670852381482821747869810855273492621575537838157808908087864056733609496474965186533497149033696002553638580460749534182766015357844270909796027405834537773364591339490084349981410590449090046763539922396648495584678816155910268145485877023818842277217935790795751808659016772379325429737678655354468886911949584953945178869979699716581447327375544612028265639602372163880357485365048417343243606373276208742976400450957731546704736350282004726171735036201962692033685198949296206384462525324188385626143794811071242059763416429060679887323053713441407860956651049558479236707073547195407951440640339219001233223568177828986555882150949959183498053154946496133105405781296965957079705159278246695085767659889690393599927117735086494777315830300244113638328532002187612474151138993942387775883010300506640914036819021160639717379754049056499374418283746173864872181095908887288756516683077932977727988023169963678473375858455605587892589695767762850015117981355887238224079088110992956960500774954275245943164241970854275146726975808063839213795017749681269796324207842307704838490272429882455057779553527806426370019578295809037514409176705456671443728805161560524282898364788374012716618695790709502772490107623142315260896971526802880276328643463274311287087688427083036429762496060586614954806372033668397219465806993181167268195425437576768264548129561405021582166687953760023510119687846902583665351922541387398541596812849069340381439220593737885284686705128159418165695691829814242581570863040308203715325812534842910935269875155087427496327003095115944584339472041090051083296303525145349343129018425846595577007351734712558248176156835845504494879764017615300092132649674548624189432695849144827733512315467076001380555353989904848982738480552837326836109788543302651803254306792386994490710296075526737979771609678291850577549717288321400483857649102036587068292831537166077603237541961533204236280964142085588370902675390118986681319543745156191232499177085026186694501640909738207203608486562463034896524468898747844329027633169871747847638095485842424096267295754087111801831487341291343866601471389046389057059825671076660765804769756126225618691498111840829134168896821962983229129614146318060080346918560094722903278609494844052461373900543804207289331102640898026141710579652817014099114814220165583891154112340233017117028344234510139607702091218543504996510143557503202505168097458851247895815132514472281224475460912585257558931108968621677685896028150832881976486432235741539917948989987626676194114099437808946673691988332158581575638253161666683541958732840997595220037801896542645211273467396893282450714430463035052339442740874571029460334845264898032180400291122238300864912428497432832862051144435909035134924697485131532960118855299106965355368591833378029309507957163457515468472433863592604975728211888150414562842264955140833936081985190793017241181408587029621365590121304539870665622527072677510407223504118090571898759470782831019927246318737158791069386601235209292949003758324059268299266423519489436698454827521582011091057052300672063980345739310717468280491314619829147950736051011406846047838700022652571088533011831158122344214795529880988200702371708914653553779397952062179347469256322699915263058091310263896369321580340014145828333865029076926433811305244040183429744852070288862042533885529266488362850018913216456393061114355408904614511150871433400512616395431018954592664884349353609619473930522043892657788232933172235665812176347934897450917285851298348517201182262691123095418911902855986009889469477217190059987085847841348251478488147245354369401541427757737946335960505213027353242806789026677716795282977180259777460200618199700581171141867928355900945058809553789972262073628154263962181102284099635110566957735930644136622452900851705513885416109879219454571086946314969614207649773341484969837232250387630978909936890303997322633076459021397260805623854656255842752776594578201681654673309685199809710608404151903262845050784600312429796425443567463138910111530428320183547856484465042450566351751500016713190270258770869089873161737997567031406805603337109896687006018612154900201994864097649964421417000659033626690845184563662466605732668466854874971958109947767350592615712933828443963000368750330258264438767384150458587150895769814898855500634444534253953122812675277768116773472511561803197757662084277207090302821491505808548707297045477506006642400195161252694582810895243631763003281044906627383079188906002948859336796853258923017226910473565571856144115931969102207223956689963168456356907106128573942070814726680979424464859887676707004200828243879209434754420571698128865979267296512954507219062643148795569244725184355248837974483782839413357252790552451338690032492883939481577882133620938795118795796292019298701755999007985476397870156463569409423369723089661918026665350752082542072525921193301887595322268112248733066271714906904782516884647911009531912173449124668509500198875877504113258029850414952144736114641991178965009794412451537209552056340052025849896316562409750926309606527242609647462495914729428638769667198476546994875326555035338474112400589609503470041201469644379219658520581601027764188589036947807687286948089887297323060694471955824782184065241266280356165938105325153064322975380716718274274991018476301035461244686637379447258532820270536764747985607617259820617742349803484721444499776597248174485717260546288840011868717216185844292125961785156386668206998062434432318934239203360740156625405331746181452487615347502620680293405590225076917938065993426042071651865806359425756727443989148460674353128756170545187398083708246375951822113225751837530981298361412104422194100543901915005094185095486938590304308591702720520533374256162946547933123339085416649503885233208985173732375768503235183443407958298820711657667569925622343167868761870067429982883849333740901182995794334393035643442137936489553169025732506618216503354136112583592713598936075564878365663476971815897480422998155136166454676206792364321436876202957078980226397085181596200895822989954959792938741215236760458756385256173091183854985012719484329751651274048432484287654773240984269259620152341029514773465644260614061095521912163660918997114193151341165014382482327525619487650150394665589415123679925159524600905199703694448811948564282525908929845555696155808169996876458385610579259509919135334193385718132577762167876115581005964382560032652873895797057995652098351344201602654452022494972376226060112267462069375855033707005337336731510407455741841934870237149167633247818789975549554225698510845479037904018279365840257671651928230744122801939621527897691070334993847941797553251143963187906789540600378899584796050904029805762984509838534673924286045757264316591062713724543080113572710967351775117188038609032324901492867672075698293094760625618618139694799089054303392746794881963347301976043237586940314455737922284292095858115443641708235687305639212939318910309225890739952724733469440548956232030195830475551660291884566648258237992039988791452783432960009463671511880352674788777029510335423525860928125161688305514770751373012634737708639842458116172883926878879859439805788321570275233042670738363777300051387386382064338610995237639173621630420553210533678966370766207103168016619891374059795785564528318130810382929038933473177545333293372569210057314505525495970074254951774901351809480862092249684370029793003573654467579168372754563665255135594273257573153375141753258960349558817654381871728811285994135744652148421239081154972412837818626109859600511052780684145118137424298864571583969710005386132112700726680861262900399176118259504906398500871633663800133201801426681416633594236548671702345111890664541612288379013193282452368056672808695908085163330610949658631705574099456807920474976708783391077364784067998177588114566534344319176591068824547416807370313311468815098850115697771553684494012854565933167925005037277135945251721298176243909166643682889391843269565137646739125420993219203510211413000883473109859737475280802956637103801219796008532124564052398014775362492842733552341833092050379360523146305525518823571222141962080429006573580990507803059612146606899288117476835605109808539075558547673929727325384333900105395500125560967610923814515357765388396415711393736993633400339394849623322649910366547137255654371797178040336410411817587302885101734780342060370062587384262388185603279567483113195411130113324356307828219346896028557663948711232373715077775284087822279428385617707970496356686616372156505929093975303072482499814628185262115861132165771987614088919539370518156103413511980707222259797008628063926261079454173862907791393991413854183778728828854711444772434599457427343701545428894404141127884593765529574323171231168526831852282367355598123980367520603822318370875878048917854831753651483629492942673635678106316719608729281718140893365500925229495822969963598147928212545961156670975692436088944633748283102266560980640927886968305739572183082059175133328560038775053391482243753986987222755552026017185166181607010195876365660660740773055911860088319511394024916255424154174597733606238773569637027006214779314478184803601750048870339133491448294683730552885237501814942220368584513315469598543022911167748314502561331856955293578846631624515371383845972014703439007741350430251722055005302943709486357304134283402398924790683588019621996676329203821536506228230950920611011873961070634589780916440556472584503867549215226933568014950721148550312433552240178714396592737711678641647667061084928052975034688902647765389214130828435454303454231251593859181185520688638896543060200468070049829786979798189571814304853120652455930602262030507198367138875416578606681357953761375991056824230113591972552151123017443237687868391828506766619087027181645205957356337340399799653562535010254884996973932242393327366436026176729056293063350538482722505559542998921533474422189354924037073731963883909573888104026460388955554340520734316797965282014582721242378346590193153821334453234657943856588361243912888603408336754202374793798125675911404404538722222591883260935540811001854165589923028143518491143202056108246621869233689368508566444317283141990805056337033373151346791663284030958260640885630422402869033800868281356398291642476004035640958072515650999196034256896637164532508845802930601199050060259820485505555434257151296626375613462577319914247202187661638511694212176676736555282852153110693508088004170974056323694808775728441077695705101554416202120623607346104583563905165184963871539004314478520863815837309304545687853698606788274044737659443564711053453529105101512440955366267609883236674618450682972908101956602467124644026495254278738418650037498194725795196606194740352814839340280557003557964979052277569631453491004965669110860095961675374178425623229508653889082485052266174870866156665796990773679917318441321062361735881872101182409921970770674421975143311543943493378674930559457705460525347464848557633468343532127897188860794297156666779519524213235810951034574134482464991748856441029038227075806573380124630008745258540286223627781405667439109821803271924120171088839150346175426680706057163853661331835275531799973798593503209748951343352187093412732736566870726736857087696025343773888185049477051878403609324598268490319851280526027105896853463747512377953062945466293625585549596096609481821547025525179080157927301878156032922394914062384778639635289523462193505389470568235415954310530991552751186840853094369962760967617490207269560692656532778791264210945298583935732302144363040296099799629700198498461437954685269659012368176573901890472554746607135288648487120477159365194716377432129053786906471608294407526239019069106860630183451555799380130537666170324994474179046393344926129015394302852980966144388636010500733725255475913305429730145744636246260587841845022986151829577385607743490262230041038375564266200278616052686662535017477377261725118251607280425299247808470650297195515972157697944132301308001225393324058515101969132792611996825866958352411664647973598713232361715177356139380505445788850538293457637008825983013798427659888175145497774274819259300534312576749221489548337644594655350282065470923646669078638216529354491744838642910516061906237770234474138661668258804585092653743397081512995087980314972640269068357840138745248760210715487791861537452650450667093348996520093640918091250703786431128050990771765038459710796519558473308816273643799210033419834187195800218314301298190930433748550014034242766141406469551411076879918782167569268802637792654700832776759150928471889365674474531965877825080157084822049503887104279332245562912841709153101996364053538398653814862910364590609832858864476989403430482814360775282918392816708226142989278167605003243446907076165006093419496866877784824539570045649130290718604569196733635979723776737706853656060593950495529950411899589650807552025640892815749965411368471130334499182744668922933332346588809141024617648589649200502796477779225263599551238369925280825230248094972003734815907372376637358749725193753072356438457741154974442195899266099824528960116607461190257054237851856736654721335723362941019836068611428426632792769380297633089943766406832887401591363773719470301375205414393938211444017434615310695683598813015227257038197397653349098831302909180576475703571691104629740517805659273515504219485039398697255526198673477656076914748918817066051191709402741672115324871546645682985083172240143771795561495311066952504321654155217472073594043799576259212061619714084725781225605642919931600890728602865053721811490841387787381933273546721013429055082826498171166400838145009988602588345551327531857610425800550300280475622669996643360319776000312958162708646277931047560141379132461306802241890041882455799633417263031313823319062232652938769892279023113726994157793105709731117551984214684799762217554084895760609004765776649164267355019081003921401700374618317707830656899775822757636028059341750974278486080983231006463633651850340495920302936065714617116222096067645371890173214740439908275512250288359577290781615426948177433254032372410149729122069079872044981089151575236286183884074730113291351079621084359695736820062687296870721444368062964106973582825184756716808843479259072045758559456368910945613932239488915982792309476065322884310645780442464613849640308119383372703229223030497506846706353155420948186764278157192551062188739501318793351299473727720733656837013180004272525211298342848109810398862336956229731608893998747719136564389561022264123176080082356048509034712405907995339248017998950644018887176988330333381481667383725722362087536854147430860679193946028409606957773498741097293381122163883189658606241956666300968003540287826710138664485897653700803516792419444941493704238174280105639941293077323648186229165755412719623693264710424812196339719097821840443601631456178757837022047398311076631234732344890171022965292630328496721720300910789907792790536868521882464825948820623900435841085605129111764773872353396512685286349833619789701664817450952548749172008690297816388464777744314189336429559579029669709568979015961687725748677489480012258735537183847924646050240029250788995306194895314956755691310604203063711210571784532866849879400655280542438949645459948421822589129672554770269128174859848880331949007291006375135138764355072163386492997254344392699839500160572694946457746792903332689202625173635388092072255873481772217377113059732209157340033653405494224543054538550069389459881143954628194010456415848617954247697170385715233216859919096263529255734597176176483114701197278232428673934710970491119725953854244564998649511426119949672027182900355748366699406114743017285597724688523145088428883938403224529514764111367347365614204305465564331156459406994323838544175105992976405568042599257699065862770881197486676315274111615688308203506087843712337780047494339369293066359944579625534490536793458530269094022207817642850166241936433798487851181697244380584687150349176125642340705016940203748090509676684673370235636774353112801917300297867258021731200038392948313828101411670224171190422115438434059841827898729826715600503718099932020460915291217543651905900860189941505082971846979441362735892434701457171966216807629908140949433619265018685482586825797933081077591806636975122291197511086191647830873997976255384641286568993834085374535530717023661985334619084381682876986794988766673167320691157726973377274190200044950500803561812155945195229423154589538998706210840515158068826660705220856732014744710884082963078019260562894131384450204228822928410939771316866868658777738106120063621775668380878388606744494325727248388594159173014667462267338671259674082211673526475395938349511382239312702165352903142768280763593037406902218446061950445700855770669981849390216961509912199178180380103312469043496637703590628673985572441693556486540651576641245137919529925884505232463948341011546401334106613106243731135837041921152834052607082265517482568352339211904682373326020066471393080374305996146487053667930573661998186671119217606553964634968267087389170798004334760807193186863884266276480654774789460654808100769468307594900011313123393586169775284274993563136349201700786314355666005074610008194004678221126313386782754764384782394085079772117658813071471375534116894268822238769865623565945880690296797547811733011626531293022999819478448708024234840213111231682277306666953628066455766745844159995666518946010070239776933887352483691704583518992951234554546759412108031539413617766627961085167030233108416871022714332857590940834649069426184552194968887100260042814088302471489099881665703667015462486827727049993131318525646651870419783126984936216977180467819098167225939563482975478449180695727857119205223194750930716838061165282512266401288043744131720798828916355114865229971636149191781289852448262955444958600688205994390730590246615798684664868527732291862324779943807180762086478710057642645692260161897432888666444130252498690862730373592180626919047788490734008027843978372965046811472769505559195686810146417456208866075207532261546357139827007686582796609190305997859134384156446747224418400815379698031058894154470275265973177620847821331005408564284929996040326167241054429821366839629396408660775734697016692751158000802514330247289339074205733444446539163063798838725111393261311958768176414212242630444745215125344013413668492709362472767057041739787660098755677020690462685918903753904024685442529770191028169355895851688067937301159255740272509628270990107786901102905138966884305813185651913526313956023156763266189999566908928392229078553744462509632940874957206666248392888077176156938108322171914545098698201662707954519844294255814472599611630623452931129328796608869483339640866750686753289735585805933448556588903003332419274116222976058413316251124142504328941537820091625860112666374974726345554227055394644150554494741688346428485292086551918993300731129830991832735296899900169151024606113564613393726973002101639512259175300296233853395373475696907404525815930609059852891569863866437213755089686682787902035994613927883355813619202884536042299954801219931281495481368691188552355238479001141354890142239601884986746005093975641942155705777122664399489287268527880802181276467783308430744845097149765169312134770087618031317789950470301954865751651466516699266552067118091833082463592487842909108174440349840461759894934811596261167458137006299020250410763274765127655430495315254813148356519489973785925786682687870277425547333604863629789174580192821853754377459231506235919711145336721522419348459671701093878973775792413634570694016875210330561930489379849481150115707691548522967798102517026027094901604876404141494407926634835270001940896192290242377118834800941276499320657429271073660310495558500717652402339834727797583921157975900220049812848611340719587215483139619205045170605594593271543646834867431555640954226829712809337918264918676883635180119988168107777202801675457721736828294767565614169887938918018731793657483732678847440744695201540497486287241875340549976445151132968833183824124563548212358897981526993271008593790104066315379163455138424737626474501174223477883095795232701160245362014208572030720683782203638511911631261695428903487898909063676586101794830640781178904525502461900608486050349171409019582602788993444541286938886527083793115100906171177986792502129103552722924791830664307120120046166229981777042806614715265775541048336791434348387425476207317738565775500851188384030809201331343067104791206263420273942061008373180696787804169800278441189625129793373265876015424126179741539207979917716251218421843626462755535493706592704812875240470214221897374510409017282089460582955235599944064241695931223929576668305676616961697176542640135114622894829301587285955093951773180724461671123209182227262159837413816590268553128359665991381820869389577093885445901807805649560217061773400373166351232247205945904831070368412338693061107519697877947334780766881912216300471393993043526988834420737888309911643726010399914686097096848078972053781272451593557081236278685516015231118714691056856453241400741520724305664033370905280977352784264361214214145951183437527657414818564202839467848302079436645799666828350261727727643338862721216502004146184375242955870236034194532919071446316174150009512541522775401494183392688143041285667118532627406201836239541814212124504084663399909810255771559082478383685404482720191067956907097042259377797767477973795815261577028321273472980968428850345005614799500852487274514332462896391374093215886480997571162010757911070127814670883983855230985951522805528350498112783313767264566608962164813128039736020308107471004895427561414975697909593184789213786601029957629058614077068441936387961917865514445861096854564237193906507053781868999085094406229627341665078078534957096473221196436252540051939219864659049537279876015647379404406663986633816152546610787736350015976217917510020207070380477884059542877194691063831041744050579867259497531603780498721408369739448057373233119291175149548165479546830139868683054444292781880199431146036980288580842358166488333980364478816610372675829020219917611922970572938924394117127899851322060326014940440686736762228075719786192575825680061293481807812642756386767661248406730337248255243522973602274906387781263103418262376093474588226732397091198806107391396121120456711047855944160723743067882101584993029717762664917688104185993685745839998806951171468450902111508054471247051076424302961515289979393373447844766605080353980612257966901347952926129343666761266248458040782439260142639680363524135366865924557341603735302393939157379114656546006236982287502031800755191514668488974621867928416445513193509832547184330945339475891265398296741162079854006201452926849354474376347887862050111610946495062321151500888598515186427626986458588436946387338347706973621073762605243494079270531657477388743867538006455181321326501471930937962738135276396869969552092481935309713945838948309208318266532590609110556670422022072560647624750713804808970934518133561009864960095950009501465241307028916437692996513575821391959140826785741247171179368659984995933503691547143631882214267874289633211463013766503264947452247244349803499113742373650410551933369266719412838527577609743254503202978210433630381741253590310800534972345760322576578123798347602972065824832420100790239846238935257157303387327781586682680257130097981898473101336459359246150308817965605101895380340269172987084631929223027838091048088486754952135769871452372453833169564816792823475287874952090272321597965349170952290005540185743872602342544755561933345334869204149101729813074221223700203539122346614046465934567161111629917284299083309666769027513774295334640996437510249513512458656223121587642339499255562007068880974959976167902036558693340702382488747850456394023386415039049195718528680970879759226879911508420708150560123626126445541113110630650441587993825523999443493982141130605186089978660067272324114430343621686711609278330868395027806215988338362961453490884767180240763399912484088339307764290533917052246989487033432854161218784771135729281485513847671558863226576377276160127016661860731619228931899946488829924683103765576656824248476423244675420465574022657754958716746000271950068719735581244510551394971854276840045909572926389481491522430077555065103080723565617332433234508793621897342828395915109702474670001328012510845702492648460460606405238542807527856348682124628768811996293336066279305597731288160192294180852673984788663254124210920579839076558494173004586743537196945316283802523000615596476857720518925258562325642206730525948036534531922087367067774969218280596544899202237461128887165349803937191323264401952844869657478346254555336273186211497867326820494583955119469125257437787139073183825171564243482138679825143531762223309198728622542406468210019297744792484376000534852583792563069217517419725099054875224893792610794670170835537008557317116696171760934901142203654245996256123586317510103943156371806730425466317457112229880053456860519012023872904754644510298960851288369889987405119815730719396701289361778573769474356119728301208924116203094382075746174709902657559804840374226456606034256738572499589321156224383022038311259299238980604483400550635978279905940239434986724870026533561028497766545763473077151797850261095297826646093862154287319595240027564642594022902330415555851321792806543266368980350323144370966234689521048460325833569085085924424831746077301648658562583381774164900647422923384910777222897538857617217639971570651195981340528308118512615363959944327617765031687883609783512828846617207382933266330566629387516739281086866337109410705190641610175137417264621690570865669669381795802330740258546187486485195913532471153111151984324334320075727566869893032458649293780197993938584634655933872462936135645879855682851314682140987927391154336905573810339076089384223829420577386353690857307514171747095706238263408793186244882667095534598559613737917430457831897957519354204468982271086924465830663167750083820069061831887965543568237573918902268857089888798283236434843315159683175535235979606910072577114748180182992966222961171313898457874482882942078529866766201894921791336323495847000782359784822239892269415315272635953958144993239749039364199766528152182142088960114701733951503514063014669978793575702700346605729991544152552539692865077374486511070103696467424044622127726491232473820938335621110723045561513991522017946622807149077545387849226770401651208160458954944197812431364262416013488348830089638034935416000887528023297036869202999439986032399520660344832963263282822066042956763467408073019013817949626792092924223287723259391112202086485329208616607959388488206761651592396324248576812502467329716025210495164153673925565491012243063883576364380869085477492489335386354494202925662236244891922906434700430890890873510010669150987307528612317229981165322065524308243708503306255806549496393019089680173077658735579449882360974058486300911542372796859225505279684727760814018191864127328950388757886406645083549705680765691677323208601960732714746163136028512380110136651226221278026629093911968825556361899961221100801130000826564796436769680761032127249341414512636598920637661180160087114313879772118475279123404501428401372790427817519687121130486031818156857834242469022626322637236619759687706169488124674378886886247245031287225600318667284959422580356765930712367001425121406076865118453636339018705026270118129897975805515694151911246136495134350423887295415056069286311488800327919900230267033102803439090640222597104024945448188051164878316813526365288033121303455159279620071145356125742830836306420913421164940747266748390935287449515552779434265886693641518132592277750438038270568708655623901835650660583780524791453119474320319352296481820665409395283308073632676934891508355126561289770952049562774218578812173830936005609541676468214913267070355547449934952813255213900829553192725910584568057275750555566230355555375263908176489663529630375590484749850472510661660978565284912334744987864720262090358250331999860950253600516542853146441586070323874351587874758635984123916095868042901284511077863582857477954453129766584033229482811018232417839542179417298685346885471323289746842366213216894321602446668214838911313562955463687648891571976176876620125547966611046375503549022985510932860456570938906567097139576850034672954063654458920739429116682093543142708417456286722847528703566640488564911786648491044055834101673285630375241135246082791415225393317316947647312105622918021103988448515300224637580554265503593523362258542809236552957840769517552098019843248966576847189409186070706989505088696599802654207064737092492774455276366687222390571298403751043368529482618208450530975855245341796646558950075046602043178845033234723916244172562939444081980448429880470080085538232521574938468891985392583900816807417059765042638938318324053262263672082254950114893067851243994232608861240068022151260284248055264864059321017372535401400320015676332837476535567520270237093655720166923234309146572185927906370952753773550281254284186576208274410357550893716658502882767222965944454860839550774962965120846649680769508376891371896629989799460023716897104183029520107229052024328330219984466968338748077935802662865871054763055472576439312169821611850974369493928038954101585670508560390481624213356522388498345756421005827873528381092811125855502207060227940381299117887872944493566554003269705269076509471624888727405289874582370276579989991320818743984624360463648824791988814676290633454339509254774403726677144492224678713239804349937171721493242130712230585081736627155606682416413592627784774256516947104154844659917820577890857200986843533898726105661259315374998080946688520943488757706383966348246941190624755508678059133344878783521966513718193030179321379501705303242469788862482979216598435448538264719616806841317105647553798213761416968312968686821769039664771361182544462988305704089664567386636079113213317544697784787445176582310398802223503824348583323282792878589866328805367163433914437988774166228335022467551869523893857720177198305407926718659236306168799388398086286157590824779021430298291821365150645772584364186660038218034172903468393419757848376250071481198684698899166170830516401138301133902592030071504617566855329684080454324198717113882817420972892147724557573467884529035071508047400740501630602422157171118934374413982534286513203135017877416522675068204800367711350602359370258181293665816998622729445635506478928411412874720692321275823348628943257986647573452053889158834372012757294535869580805131632663453205412919448103891911902642239749050833804223745677126347329840104378007107686350711724697373471231946817078345291976456731906624958408900995105294310157123323245800820928999268018801025647133368190251482479462630879461456303718755838109463142051931376999007464112382925101323778200261071236977905758651474386811017082707818935552396127103361247991835519759948593198893813070804414955234850170587464079561464471076791522722262523770280947141585959814309525500806377426285609792473200072959526245694720570408935636959924886728809596980930132832553539231198324348482794152330550711785288537330741999494641760241540847722192819623901581661348391504192493765696755217117509821441568714370971314749570308976733375286069507389713286234051552132445252958677276378350505194067294925565607338347153970171848702098965472749368148695979113669064055233459709249116485626914668460310231633290694808530299076761668109671533486089576517526161602604178614100398599082834351686462608046436717836829959118164160492175412578580406660460893004890630790489603099205979269462251602933708326314342605271716746685875285485997475285122568671112466333132805190748332444738112729602305020362338360782622630899223913804613105728962700438056456442552788337481918532381965544358789933851251738650374236114151676261909545072043296056884845749334174658785369858588992643289297471979300741556556532798915265282162115767159078834230329173450987825059041677719884694539845130922477218595153495559003656249745396520712075712591848368068368815782578162618659695649820661099036522045146049632920592174198832307258820858120538000648268868052934883060911949770077188773485432235765143939416873841186438008342862066773003626820316977424134185799608599600144920342356209794051677985299124507223831142417740743153221085382549560892160456806965534971969723129639170365650763364474365677149349735534603122152518460180974082672590829725643361868860936526202203487146858853398782324194083283807629510460149660836471827474029993289151636652363234391086178578822072785155984526341383264254410561781636710403808632621116720690623109382459789479874034525368797758472419585240645725429779755998920296577142646355635479543038044141697705876126150893032135056773422086780506576844872673657845765353694581884420731719421430288419708382236291826367688749710092923278865708766224627453057566433543825106874198018387947820014406346851982144968900773073652047586176328275594423609288987305397983264837194042421731563402593889168722695358119648228180144322772888243282899611987659063202366106525323125570911168231617898874869914253031780021200866576878841618551236259339491557054946530579545606113350613657588874165495674329852183099237057207265565232375348267572462371019099133152079329693724737358103093899874872860678341192271949166863221804748995045530220476205913986028969581803971531742341860616093147370587847193268994680805784398653819858934532959748884959131299243672727142460584521316423416424622750226111088918892734361317110930553133995236841758759767993872365001010127306510174474931322638462324506585163930569339326571969363177391997295456655985266143683830669704109114519803571740451263938576083270209666308921716124567609925777372516381187045294312141389654969938095307732135288798771598340990685241697430910013913771928485660903083665749992930291491442009235736364766342309702316850288380582827917400252178413466601318262262618666249100709215862912063644030632580080842292618280738718369234134736366456697981958182206349586472485556796212107875280843217680828519025948912315573331258995698004615176697370293581978682135661605720921130258042322660620765241964235885197297567624416490723584363489952600083241119864407237986348718755588634218229207235488801147493063930037192455524949239710092586505326669105644773105365188040670242976472966489609479261904071233915881233684065687005884757387308120071735640625659721762163210433081079450734745924195034439201711589900335269796378311156067584756899100528929841423297517332804049401338792505780380117298890927513419998274333746485145520592270185436220456515034854165093052646265293468243299774719739155815565793999311631576371586719714671682504178310032377668217349466005909460422643476662452709079683348047942715714471993197711503472425748426051023870850046910125198817386014787529153139704749898018363384187143725501603593091739131889724840227767728623571334849578945901175892104281143064265387521777975240967935327658259802287221862007601189527606436265403569735472931829648834554818668052802956906253894356602321604711259567428577411516575250900332700460931894350076479597450619580885158953965516647880139398728229372837242551085450699197542429711744506278240426873806593411625919858485375617786374456736913983783085392880901319676395855954789631291967327523380051148108811693897498309666130162041821711870786667373671785301809667012674653498363645356990945710063589466048636501058735377912953595372397769706794166733024422128554162262255624973583214669387749708745140050563244242395772510045951267528504078885164039478257725811794498512208727906391314620644111759051748359966335822983732671942014411209541166357320313918162342179943243406884129288748289841238263431823877823427037099677883731932684268047007482434771925592583625080633804761256208887950866296881654390941283526845367646903302385841325654076326848668322846260066217132433769913426437051122632247144433657203700599674899725672880373821230201511131124491590248905577662289849413693818368060692371318754644417818377420022745480588924585788078991940025346323156942799313470705559743256908186010213463004734764917971188155285827496273108251120188915519376207401731016646073498989699274392179337606680687187215239872239220133376516224573803928440724329281193405221728968265586633686205349276114283077347780982825945045971078510112834407726238151342610124679467014341336764249370905174831766713849075730094801637566328524781216790282747614362279237103285550339764254635484865439180394970476086974954394393097335811197507349387183010559416077067769171173943379051816452699921604500257917840216770383724227492228118553195043612065984395288609460408314940002375221746078234334293865070037955069672042093825164253117897234055167421597892303959305799022865068854759768464603838647232389149248135079400422119776910255506952605376920306886544154061361520962159897316655835823572211651720579314185126203755969402128772773432733673538098185483429504258974084629988879430265230774723486354162104694646978079375133469472123407932611758280315070401543968872550349634272520491554659194909822939119589463770800507866138183565654859541643010680076846820844056978428847294230800503100317840596956707966834727730420445396915366614596428235823277916530021395281397713455977427675426927428699992796604812445897207211278885779774221449049077199939026830821319237281923686354265930162329092310393563212066313514192085117773815117275451859989099591537939441024996755297046319312423725790490968295054647799641198618751661902191390937541716090496400390465958485876439293450082223809178304244617473449850501517700970467325116027939280974721324419327901106254704501424816201874689761581798407264109045462535405878530237656868971214309085201895635425043635782642389961549215928861181360010121925088909709677864802953894214632775781259174430392045261575774199889137286254029689823043648484870709971660848017416926630639444493338178018077566030506115368280501339945502591693286057241428269799774054991449507203282843866204242896851530687137487475162276110728764587544547075486272171757184051993412893491054263172788849656937174831981414898870420755945941824904900417809801377195101100083547095686966057540741165243503770858047367162780584510969350129214617934324705400618328289438187297759109969543072108755149721760254081155247451085071688165050755924958226981736888157747209315759736709148368731064552911609580061651899442164761618915647920164323855522954983862095097941946371190936064864830061594694198443774573218886638322399253870107809982130830769389019779061673517268356951454817050800144126340037066615913267486075277691602447429944076638960181060942220373490821918794481311339349959668059212447413219787470214356872579368388071382950607065018831666195495740815739389571438425365456406184021550964266975535951994684586564826315838455829340306587311105045563077871541008079034609124551317616110638715543238572575029851546885327993495771623518588829109661336193742269000393403472618733286590386087624013543925949706902386233947155133522331355248410952948343944015597428682901517691029497158181361550741929368370400970282410019365234698507927143826073770135226788272971291913025489035947221311213567455562166615806950164583359410487661822820610784197653426400881776335048547594420488051335701170736465502240501420584809529688037544700978114957218404996338893826891100906781778501889522339389438493530985573123990447914487880843676527579102842468217585525131964015759859725407602805716297138875942614179925129977913391665385100268918755752562266759897813873322065771571718344855735315210229336023924433183218993129567823534611145229280338593748656328997587088760002231298584311555781260127376718023659143432359810565296298086797126286671787349423362841140167739289840043400136487190806379581682249224944373059513870693019095891926294007497966616576357696450434786959000155934207167457290115112612851530279751327983392386040693273421731768838194731960902379798581086729222223329163062333618532501870645728661269163632373896697415557490795862673180455617144550762953292774294508479740460593716595639273002999172484242158409449098340882176649174676002176101067859206421874978269672633431581488678787870313495122219028684563682039385938818089580567172993554880670508093894336532775865347034146857680865556253173196073873102467960903150812795617212783685659454387267896072474271193226636128435666868346300927571138532187431728356621037970455784372460056994528855859738443106564604856054239649249252833739815805723586811055157514162210024693771415202932939529854040558801531315496091619883338396054197081109746206252308789718415175095207248846328166331107999217263319473806922658886713256174642485098206040150296502996544939698988553296580027095085320912324467540437124042763994559152492752380953745621098777909237846237722474675864104613229330044828788654865911517750064351947129683481552593935458279175620794260011292763256046114394237393766179532497728727642990246578017734526733030898597165434345196895989974495700726194944529407612895041876230066406561447185598628874485004105775052597701262745094531942531208276713097432292038429749947641860830669478732404481147335602319505628520241722056404877664344656682258686713907174289112446225510109893261684086820082567090883852289473246774541122666998814935777990270350994776338891889874687562763500634551404141242522147038330210453329105843995708103073537289331080101865467381462404630140504191640544229858637774215583135326135110883628028640307214045693447302362314188574449337495474721391745754855654109702963296036871967041819413070055541573950952383805047511825926288660119037708760683319355973587596498351393249395027248318348293395425833196509271299254663034513688721175593327875516314710366074063938472099418274293047792848135963456183862061996737306059642377439916774107040518535169812420403788371921832291389797106639117850541382240940310323780733016207643494348460502730812729610516947336854259643914329221290307823915972015672182760302411419366038255979495075594622235901195759287957574457696881084095835130469934934549407223311757535785575655551499121230509404306448624676101567443769433245876566024075517037699118357802985338887903259400476539403434323061284868327246442280090387508853236399459853242174382598255922406229978391517719156650113033207148605352516953926876783651422528290531782586685600543359584963401975260380718057270745592824143011170021033872117440228751416381356512004555815440987589150527254097030874733906379283285836886541772524491178181610286405481714727857406082188417791548306479781196101228628059583748895557396032903673282575046418540737818622060748388294402593343355141214448977854774069520609497732382622054328285102768898271919343391783040856964154459213513471801948797650866947381812596216151186987442980170003759407713088103310300963140368292680349962053059113248939388842214988128488092760452015356932214424115484189767326189471497234370101468747401926943886837246656327666145267999162865441535039454554997418506526812450560267545764256248952504912734519958704413830506172677609391717560915287878218282352912613722541969440308276772184655609920386984671195821016078466318497816094553776039569700054602570343989452657934379619451080932463765014993790950051137582276717856937743102273284789167533901092496654365800926149907277193223511203709019528704340273812355494573194936745411696458665764017123772597643947198409432189224226296636494908027780316871130804853230479968382387870611640640586958230745372112747812655226306157815113118467826322157334699304727038824591407661582413674533335173349079630813001441687299676696942265140234087910350432926792281979526226366707094910104110333614849943858456255491627426358485232741083199399209053620513423957771827771102372904773279971279425510754011157004996365427830730108790906235046459643977686296698590664902945500087095462495383806531627188289545402327237041602407955890278048928317465368804026307484075951227880711785494939532919945568996975888898148459572102862401098938005691140678169655493772649353553982456621453664013474381345935425806799241897733867270331440109839384453256663251839816345600329632660659405573641495241561277717924197789855926741683469432930069842030842224926400765945545794179197681852258923017196294556468310265396202009927085267412277351603340244635466298745909532699634876269134883338179775400604256508279691988620961856702216100762314762924646346078925695256130138062362028446560831172896726548638214887155010336789669550958136329970890877203416203456555992340565466067176163179505105737458018990098958075835152879258971103298703259398867391208419696651902696962652541523545882088219316115008649982487062017295987413183010529490100849698229296012964023570716053344156755832226018216993815682750071007652565270660251029214268461385288344285156907516831263518653328009016748105201140179127102024304832867473825487866531365481680270502109620945174190905168159307889180026181547704819102948711552588096085993543025659870535791812389266178722956803179827625419228657105370308609951005133510368085994890769009019327400059109571260770600620677016828390951373726625795509087030892654663090658480566839621457689781114907052877356648256525182565249239989768812643916937303924815730824194233865684107909762953274350770606993842100255334545217707865884238034769877239020658968161046910941473659484226926533052473575004295791332448643052579347043391616306091575668306183621100954485374163514421869308801395236401271493891616058635888401332038618333659591715364969151070211494069930894914453950286191728776632644471966563499746095697514284944217872279400219500318597199965930034916113524976280657184358345352659609280594546143711887273524256426297532823506532240574517517238607236471681242724696759491757600603260315087276470085298918421811606446200190273934895718605318240906431373372161929160522066814939043303615149773515310046453965179094635297711168901074523480304043646005463339127887226548088526709453526578365304574447107366737900043288928422659810677527641414866720431774753505576807421193305856482890853494552654198761631095502467897912903638446840429558706479048759532079350308004376375758854613774051196523163866400270353039546144996504822770181849006765233238732046406876595050447912857034496523109805802236878440466049571341394304402634246406151278041231400363611206863855327300508166909586514779982004402526873414613408906834131845796186889025426611737483442647249842401609112168003050537946274340896280892799808086502002457061016134250905912594409485732731185287646617757695858780389652416277470272446117673237485944209269968002427887041939731870679886362511250106929617014979031599197050618355986816230943478763911372801296277369677055912929143243834993566401002678792895901313182839359150196476248709081581446367123069936737919287590162432486151766769517768529420379482067919819115612069007878767133365636714626889200342334984180868776476808102793667345864382676011826568554524290399376773777665351581659204610682497942114186669760798639585296196770447833684641255843162869602417334022257757071712007750902987319606447578401000277232933706576072403007664534788465447610490886012073429096710600020671845481308541732208266899495211707410330705088884684491826217218798389060736066791992527232411261978367021367399058791913322346917090397520797950134789251858657610106505423147010788719101600047317800494487047933923231091335585609681003696593624991684831583920783907100645652410564444002059190480499379543096590793942272633825438527905366156922841613854243691531257118222184696559568565249256487626803223740813824061483025658717846131229814009035073916121753736902356483446187261502255388979028196363488370148028243490803086114813130939987161633372809591577337032253661757159931159004069169123206300696473340748599580471827514404866049001825939152313814467427634970600739868967772690629802089422567074025961956860498895696566341996641802615814071073251578189731211235854529093603248229921772301067752070484552248215539746788532253397159905563606319899661691726129482924064424008218830439874778945197074258906316523652225641145492426179115179595715450261778555225411438555707993550350104352243548351945831236415260579816735149270775843210339538768294995737539926862598209130828282886128621305176740173584649755694654595246842902399437001292741975621082296223405051136755913385579523764787348061990618564256585559200285460476615588387482534571520070212815947184978685681086080538611138588774048374908448980616350055396867802206115573040278162908473328392179903171499619902198052520302447240386152823384085460033304947899555527258958312484599226946688277634261005125216235849349285760412756285373100615393280535444374936029970080115159099763277274865857117031781857426584141709097107825434667507795622902567994970944088484312312603447264839696532797337929723282960787801906754352653542419587056966299815757892948136110385949651410200239739936527936913377113849565423702322375943440596297616369243603790798147240706309789825157850989273310836717153328942020678390040177697377107488460643023859114303898885554280958571493584965211838742443661429934790051612599532238332279819417107390763276288249799557014954284422887711667973545526237769003930113846290839917502359467063591817455710177897668591834629161404365053709433406035948664318683768212161813663222915809138227810822887322696428863957134539846921197523891318435357570572231805675451844485424281475679121792069755806701578636168353596450504413009377416749439893018398013247274444596104178291540908367001305477341453702663672488994913948219608291165799037678402507426768468008748405424531208870627695756265491206967724998366456563671289174108822101771340592377219629431770493213911087244142180990289066587603958498440461098812801741165640552464651761045469042745032643255256874430704543112737913197218054577148836295243930253946796420113615062779413463116110000540780133634228363217756082112676915112712896131309163246729637890810176189413265625910697593496654225615293248528129784035898947326281678659773010635588218994344481506769517924882665377613900714640521984264593591955957516889279613474038749681415910818654770888827921262804479517898137421793884944866959475110185917739357377289187382618070129099735695131885595185006749215758073185068753904043855378495753506372506311626175910410746757033817605765278803872126561941612450737325938278431376487979057682270179880683513034573264020951569452186548273595330085695526171145072833679234667311666156895555673270734054865598857731185023699411831678988891793453627000549196239372529110784478691899520168060929134336514094761274151250698795368002606555994786410084923304309322272965537735226517959125588683688533630655572984747119159267152898049797748472101690784913898185088938570405044368861155110280680045005065262901567794882734255836277540721117216523158128750318521627402631425413188729732766731397866904585028104154349533398625507975375329712292747468831398321198105800671608724809148417286403973860717268557356390833716365918306645985897119541690332208538475287071277734484045642642075888733862853666822117059645665284985395657402662963310213267436757756888922264377380380381864279656052835879231573907981401031983272357775401095023565597148043559410190246497207962697967607992422060596401718131798894672618340760194632192736982532468415036054188645592391416369542890941702943108294809043492452079872803067089918610916059302401496899802863796281238118122587932175532685030131798110684589827327002204860013890538386641659928620824503135049439044543619001764943444871755559832985878870738406293601765632384911984814330667099168441279523068748439019496912077553201371467961182568022087912157274109697300972090968484201720260615316408006504473985721457872634809643344745272296903410588606747145191172459719783553833552884372141663959639592373738122364554957701111755496512391825753494671748580843933451746221525600220991949022023245352395269082240610907472324709268197459891637120697002958684971471028306421247490662819207688401186942926063785082455327965293761735066498867596821305605037705297196075855333881846647840212229669398595631335238725302163059270191052249279958591597445469547229247908349798408920431887634314815439564335877857340251819399435659109921122239257053894443514990229254925225878875809748569600956900989273314729362555673512674284692478731633675620021095404327145941910696037727013888601626103888263239990197800041499305919776544844269398760533946520290947641028364073635446140804226884154530292840213512567795422740923796418897198220569385328345166409236030967561437453780219026573627715464218756088719155474203578678296218405221013799838999616054240760142123895462807180007498103693934183884311437293034368396475934988365181887292343441816988508936049069331023026331210636490313677350475545751010701537384494508351776904424975775198068961712428909512071632056109097994721113937597688305034536979668548375022802418550079923282132633686138620366787028424653454244361080142378125559991760522236659341792126087022741394434749201933435555221289701390162490038850776352605019200808879962405523121381306217615351516563031593723493747180216913595800842192106574052345599484229631504212389181383568479099108391555096251351084734803178737880014203944347421224604748948487092350040509665832374401825858246452225311370543994581502099963822690848045517107092129482653366056470906386377016496589867211126494138595988455744681863155560578797286696979308643663171318428003817804182781148533793169788625049504686028706678083174292008669485748321316404304389668513092311430309722142072332395692722939414351386017836779205376491427195378250988758709076788044786909252547091373328811051738526380240788490063803761140910333482099246342540382799427817394904439382665610725729357685878840377425728899692871105943806038496101968058192973998474899561550956167242715678398449373536296955279724645806490670823521596385378644078504399846934811434900490097824814864819600249724572727837855831239103663010138717694302631567422630039747457418245262176100935476004837116710359824749950202279923345401506216469681282954008285076061634767272411357482581472619105225174262976834035619385469177957828894302315607537033931077022762130237044317923759628000944736778442460497048866181311262036024573247630715334196763001986232612193693774190569740000764835846184265476548784688995863288897423225371162710514879251358490909327191444801843854971183667505496328456040454696148341060891246332663120027881522098006311178719709967729686017157473950068941400274767728440995612051561762679449020634825484405672533809001888103740459300618406931073873668841433551307902689106327333568436532591038035668264619492665562618807938904286660068741214236667984428439764442657476425920397749658463291337256778343999741686281155232373463524767815238751455209999270361903898892057492429996908093821068443268301771374345869537462808714812744883708582294525111040429608346466737912042125355459375340006651992894047828500970193441897581738510884259566130649894034558245437282100057427714514715380162114858448574048927997188624309157071881010385026233695657025209588865409456804286921523750132695868409486487178932070147762838007820535338419288676791192968466732021629855234359165331445823555782181515673080529068526216308713312422954220546347027846356447035426051479622568592552375133466242407627168172836783517818362546386958735924736055337429921650952885519449826763000335828085716591152615177839014600082589432800084678772472450536565909595844548786771457696385985037151707118836447153837821673076237357392644448309438764037930731796139501570599386680927510622506226472400291889220355986256530458428150199850354604470063857577700535828127433063042917739509157055336562340698359916514348150019914886869192861435307691430604169272666476774596088289259989994486344654951272492193102043155545087223900450832991697020957404275744759096463612439502538904436573228553902958083610607898481933042869685970575015472206618114417894131633865454070298598619945018515666421848875204644423810073063446874896963632594777258189904301238529666797766475060186418500763411037989514031138234545439481151305881581003875671764679460527040000624432588401149866486242339445240854197875520593303200450954591209649124207156501832384539656482359717981252574280840741278404710438206913783834899069608631987892822757434473008661637228177337918051269685357542929361554962658680871984812351159053044545186868964978937772066246950516964117702755724905143645626759481730741898937945358717861832575553782874815828390691388145493880145479377237522547051867175764992283725806088108035268065083464440005754029292317100224360088747238555347475173918139537455409369421233791911043266864433471445595428840629506500618589518780886742772528823353034423927056479480712107946596189570864069673519960426788619987855195028336157050761660893804786812940005262475967306949276670137151984006470389073692256779744308084927949981008547584881090735613027375091621973087798171573486035109727438472910683666038659546211525178274425394890892410531094541664256437950643475540657473563130523801349069246348587623220765673862133600900618787337709250648115674844612657272931804798685765524427575209319627581888195481700677984031613969072026913515926098504845416250558725152438694371331759752999942346083606175912668727902729994203547767809205493703007116853623547316957381556225395299318878062196018336910913641460222155322857459052850994714808510047981578699001630938186111036971353939166656502428603842134318239149445104620390846791758945481972529245718506368194235634846099780594247560991921499130469171563937810933187953599611948425980427247050542230892549402964615004210809416101330896138937745895347603020248967184716963136616414952064503797108802770037776653062033278624350243034388405881903862306374861715991404855185183363058702229692443366414245552229365767456159505104285905736537856576408290376449099437989191480276859575201414736978839001124875483394116474148068500248305814641259644694317374590476958204534015043341877829147825490888127609804251663573095882950391088347900791114232069111750249316298122456301094669504029302894600833141058873989344525405601201301544088065716194983577796156017810588609210794629810681750719145547991328280756155870870128860365474292563646484815797605488244140996579196117181009938363347839937475312723172697148570796180447255050265206260601548577609565997775506044793955792819251767801285683204354707127661738419306940345978325360345880820276105380260971632247293675390299422733240728213858176272386107909376149847041963271052271298870579194963722615177262194410538346972114477500278444522197551540446581309085970515359386702196625484511209329311045021068487032407279797483977769860815058282605500843698938606121641584973532290941929382943262338985528530771474591245386129665589183848873603926981481140890583385795787135790100794518526388726241740505614167106066117576045083173693839230929283927361021599289458327918674882772965611473837489217890149340147151962561673010635015507915055701439572947340358712936896578436601266505586460408744902712075938318240418301199706172817222763950836098732301447991739759338568062485078098313152301809300186137344172649817875937418113838400572380691484649547043004388667308857859613574371698417730084437498876974144074735240607586442732533005109106558797017810847899300831896862145003454355480942694048018605966230545453109007581545655000803085857403883771042726603179760455305205540117167659681796534518843398274983058214348451245369710110240301623612876062196233218079192072531776642555979290718208340014051910357995667023754352466752760665339180658894975758726010235633346790674555273050259041737349230572615086473631677340213083435419915123938891657549915111369083806473004406153207824784448981475404909825449858336671768905994498109381616801358897393393147481516807338726041322956018100096010413688307747075350564443550624917293153057258186317615006499446980992306217229351030522686216214369574031652533545772556166557455124404475560262839651262644020024227381693873677158993147082660997700410239999967036015547588054858107394869058742198033483136585012131699413499161150848061753705246587423255582853223230826758709946631672828881971426955146051286436979276399130786338905170532316344410326892759118927112079379714815524367534385258067859451815574918018086521437547339554435422696912587001245303009575633353155613862689880480562096796029613225485758167894868828752454828489591921569831501409558608901332064644599372003624210415398257485215317556476555431566855212049560071826781754166425364938010239253385536432809388447577742880350142149084930025603527562823489045998025383935695410839597909777251337324505446727420543129166403081705196001119942624305998619157993007868178059260235218492389002740200791427514284216656509121748060005236663213262038068194060288352394059677921508871070814585536701005198523297086884339036282296603915043664667840927006012520367049018564027517048680197923420086277490985553294987747145073418428397346290609219861492329719445387944131424470333460031090646439152900132239069236082729603829429722888728734911045639846429552105740215198849642633352981317923930976204073780685752248292672319259776170150718790381487110969736709301215972898557079313163404133833889855578260126139643178483914942077662888447376574485564904396674787515103407530237141656865738895832358563055670853849151446530199913219537825072569641590426968423694850553282282153691270246267432990178007890342232371033600850137238877057860752486571984631137683123299918894025724155795962532038659737282295043280297304218719358959105443862005067589000003615347459277774144468981146715731858450281450171620435785919236858851025486362534663064525208347918213203756400357122607710712895759756672188954489724883376800444291720398942968807328512224335088847721680231880757581682651385994140917115168943137921687402312870961910837974060093971943516881717620312802632782853552537441148234620777943148049262472572493844733080065160142996241631453416093762282205073199707951920482968963221361391703954029301720668763760155608705102846699358195422777413760198612441710993858130722719546923753908123413712865803971127313191691453786338916378845540917209846924909865021429864449093970192763626743346246809691627342082481272871745756018210264929064143904786593539164683017495095577600103287720058499868343305592051192343139701993909297727902492471859395105730240696218411103640293707357290367502971640801900445591743961437717893952053960055078165473855829400371870577299129666171307414323443229463105564475819144412101646020347920432140950524956896587399537631147480723460445169037078793924263230970807544734081832068122547330797016771455066572941476051817735633250022725585455161389881932470129242882530912509377834535101325523097695604936371036616228090636858946000065124682038325780283095904840408038357796827454090497796617011834298087561456113844999104776033293625506282586778422863505954315233983405188606140414693120077307167406977602697276352657834297215205794267627166845741067731579812843777086354533162387353042672581404964592295330294529259198227838548347924802445230080821557426421310420655236631105225953563422361315669246452882806047655999328132181267496253566707961217314610854259699417385515680476429313720214754666932520891403726568581480751681958071687961450949253921900168128733514848466491511473744051087197762237356088154044721769550626681384090155195309668504606279409797045291959811082551175496773538343277882230680996775766198017331949137930904256031197097318104527804463040981303231326260851891634901786783347584679172448380110426649279389316602545142123516448602427635868234143812483961345211761797679955417431700460613483890341995554659710815918707523593998579318331570642927852731565215521401880951716851192917353977273986170848544621867155065156184481506469329685074258989658646502198655509728342244639335917395096899157653122970812620568397725065232035976323797652451621865781508484438749774031376130657060600604516477481454960617574588693691811101877120187666733626324011931387643374702487707594131985674650553300019932014619806421596902259163289052952398455822060341768897172711643648821256300859723505071527760872972492521247192788525076913967123881350557480993366068845274476695743837509622927028585000230881055706655724016419594598621790454765443343550986382475016840189908549038020238575740426349966731054605822832040925923277932295543972009063376990758250735230726582363354518891582502250402106778166763977183139826476083941652732757347581189307905704293801777050015122002683960752468356559665636866348579848805582771674133398388688649667498731312748387495371576790328589204110199292280287762292618186041796792947057710959401066372061974154239790776809702618663529468998035466748534402460016554324792472109763762735489734566625185691773882752835071700593126786572065802811849710184881448908912353160911634955358569218179857223681148859488740280637920989097824857686631561814166264926413677501424111222749363088041067624025048410235022899123301486530375554853551413233512217571929831124604670365247495319364635218829596010862080303559102753643684570904620338620263487413290302538913455241708410881406940121941617262289925757901857602889099951005578804323525130801642157267886653460711282081027325358582728540482834755776746585595516684736138089627725021342989012677297501454255396511134919517710772375138794461662006754936890952107937567149903298131405799738253093300047079471977185675054735610233201934750275633422616608560191720804250996935713883564445714617608889396699258848928775510790780089538806016773064298136486654509752000246026346603805087856192940587831593051026618495062799130648529944230610028291190212657849041947122693090248189078070716706702933128603276404815601366558332473165207030172787693074728422822516771945248700885749037061814953085221134133548674816779722598813356505139117779276484690403492106055693787924763794303251237211622326676976584483651026661244399204562132627959979622749303927778306134890993486256634668412862402118373900386914338856678967301453562380783192380318399423529064228337907831693751948240366121720347452777219495554376254337793049726860304974615490807710739232827155621756029830069194651698502473881817806109961663231320004453382964661724850796782885825651322022482824992475148030587213011340241141551692691504724872801950334528590340589696820981691762647436622471044292394217749386736778763874303955564661755887619852428236724614453733995939423506444055779523972415174166927155757837159793577766720616262080639592021376043678934465778081527039062504002036892863955751224331714504082077751640350458245653465714912077506142949490862446262525203031707141546030335951783307614391426580907395855110962701020857916674372744525115172841403541928067164423638533776093952089820661080492868788618784679085694173450412546876491665165935209360688601288746431021451642654977792982314493641074281520563014907450025095995499327526475959485655289993327261879177340133814182429202203078201335425497787944275561916295821311728771658165364859975602833346623631108996058369754164021607352527383923375075916989350095599292793157269783826142491557252067768586764433712247835152577890523774057671997950700847141674096696107769863254305416361561733955194916765006424158505880678068830695315015984671824080429817328482838191232828193832887668969858210382982918885274729809428139698896819142097781150893196546665564587203898590525207355537087354091615921030005218412135557575816460572653083224937341904562108642441561986524175225653546449803816867872214665783751276237660119565718856169316743108701683455867406384764743398755040209479477857570842869437998970778155218243162478549515895503143066291645154964984769258699907723660624799008846468554090291563379497495489673858518697025029322398757776523742434022412159695821287318548469139748853059098882660338460471362985367639306916788243288255624557227377503655259436966906705921610546354506072845500186239049055930531704171690105100965095913594712605393100869200189460095164762491296947284377850601550038019087766082347812013116542361691122263599999982946411769855330985441861769515631696962306122771853365146650564955254645009331532346809897445721309047748802560309190625305742964377415187621960117150833439188364062769939549449159185120634842276300859463326553499104104898330683389357811900007469694709090033399656004605614248418899683086776227373393111917254286397894119323187958394692722423414542650022646364370415186497865481185634835173183487067835626591015884821627999327652373773298612707167243798602863977953467813246822394687910236870422519859367847955900986818869342339315531263355269230352306419065743195225427740839163612932993027724770371125581744279971634972634985681588371000536513822020079085915230295517605564992157153251307491909521340884803684580817582962195568755973370652339363256596528778317553709086815664565573886719333830051085235600757906717943032209805886592819218246148833756390235705638022449539173827874633666614436062189723277095457996934524288480237099776549677553963102347855378313344295738041326245362169221460099490162612972217344739487932868787015885114130977014298112677925932762512172947891636382855150821689282910015090118349887215389577030615741127114870508090217429279334063913575974954928118587828955229292704571921261888591910079671920264135277373819469333590749948083255368879097133926315858648497015200835548051641949261630029433299160938651847813603876098084639034386303621450427739409687851791108158640317787652069345246752328873638358537922978967230870810240850625722107561196022381442649671464886884290598101844237619421488993511177559048636826959737315693044312462759444009969225570770937902194148734871096414977611389068151962938404625700754406082510201799384262569460485898658428400582914694257414173263046468876168339789649478828402240903457786289569753490613027710553764044697646187564192946893124697779938927568524468767570460258368719613601398943095763759553113040954991110405274271547023745701991938770572439037151074853052858811437021165483477374359381541377129560849841209746668324083973072664541745951048415083293297334403188512076333968362667938727058453451119740158444183050677725845905343098179552760677214673220356315023214357434760722210828745674471945500499198116084024472237079651088539302501462279845299839973362916007951657519410787227766647714498765348096590214015197689080278199785740252784082131631867732376059750782393501272857051924352338868855287245807395074324032612599247480292505149364536617532302610016708944067305847509215103026659246802109824464723499528793304930192726429737393631421741290304167804122380005639395812058544144271923426226505747206979957472234461642924431233477439023597582315442888784692567149211202037718441718331643994057139324381640253732107090026516462704040832583861170564944356340111904014626973092480046491068798202174888288190415309954746345931332617480046025003991687811383722949419078540170431598003459102000334391383621193495750595616204689648588599522530043300967355828198441479625749357981793834401519760422568908016581176345273186675607637266044513228860491658980363361818096198387002699001044230758843951023705990119996011343071767457034721069552862688698867996398514350647564285397415567247344856284118768284594831504859862449074220592478631950723734976076126131992602802098610939764571386324182853510014940820983527166717756230841635380948061053006114498995924023704946859426083778317688422592082162849727515479153412335208612547802300753329742476750861488585618008069629959042200334010216871271006237933066691990352206568936811253737279192790478349062649782993224900999418755346552737146680544703868790827991461518783124571163595528256921247764747915199560791734188801854821020568125242049079515499362092307671157958433058272862643339965642129702132987691414423373122076797173291848316752070199441472848894731936829200945176571552659164279969117452838591792058984409322872102596038731626937864246028848221045229031276418313439458180201025420170785236468833136855025609825828337027604109590869626985495457520815316327714141211460301338422178504024038228984912313883946915736520620940834587936017213613388557333218310330074890114873076701194147360594451935683812996271666735745633489685564978187872828189853076834012523663031247732260406745750260759544777405970450396703472283603497691749777591107495564286258514623642119123129900446627565194060828428870434287280112109849639741896601919308044056018660116581005422497363500973808861524982160735549195396824484360703466213636053815995665668176285693581132076285407031172894263927838228137402857012263546542919650546234797708943783525152804196912247186268100077117998950603653753309326886725790156155314041245138642916267514790683742275680267337878492966913882782322876301047033156680987549254819185455886969467153637086060340998217540422441593561266376456644334381997736849188366042349146873476448935397108955790992890551610519458313433055667921513506916113356253057581588144787409478601911338548721221021868649011972372106402691543016254229316712216335157647975043645885501669581421644247477392552053698759623311355095731036061250854769738839566192482701694813119055625139687322858840330257784352187615958808420138269190313376370089657979807995449230655082314923744413767363572413429026590865864329838435638166735144691761572778625502343649799506395593248031110520018925863033174804788194993437356996301534771186558394752065172277977693955685425031171874138029688875716564244891034759893315027567932345325466317464335544929032618753203126939510961325128011444827409106931988051994356084077954305428753703143386224628560155616796753247283809001878328053196347526491186368958308882189661037761327011930281023722572730024126228729121899636241586947372404742199235037528921226343069080353364147971486961356440500257080720747616173570452659549668667640834657617708984064410488561452259803202879099109205723863619976571551434992196276913393516302913098553189587814693031334677634876948141888434986291253885785938336061683190889218861088168852856937999240757349299547261831323259165341861893378352028489074290025191209481636994549486579811069271686360220593373811000035709238340629692427754796169203929332862327373361534191944386067719968455445451101366223541184574015464135574306671466740875844715861443464254647551939741933627368172337688519852612690023658962274289730272801565492385884862398356078415260432064039988142036879815546380626306477788535269180807877132614080442157842223811109197935132616110991972936002976640785273813400860228196869764780647725517021192972776873823434711562832437677900085445202827831227084032969616481534663769523955080776015378329573979288298570336291836995511023254039517617097283537546457222252275379070196217505073344796001137402829718424072352261583988061775900032934398190699447949557638534066209935052056017294220585065992218687211881683056786293073956273005399939896748337372435308462141210438486815655944273244920295664880362583417561960259873326788560692908499371994248352063138093673323465789164965867772141936559982505910389367182339939527938329560611243501301626791252799258810785874030701509880348260288797815904392816537873603593697135402395154342586858476837834073963827761133872973310894617654028336000496662884273842616358853830603835107911540328784260258341035551717460198520719073038207390665792272448047571293173035860588016118589530867273275596421005776087225565342751690574726799434428065099345246417362648350892071682711051012638464358968965264215501335283369168389683371712696797784482854325692450106266617752275717490569559781018178086365722671834846843840309602602542123826326344143958921266016621546057036700499394316462836845457934681663923084409934649932172669044179023428259814676369525858768991945095394825157170521435766970821267668525074305844628619314552568245883313911440848811323729352580407422645958180598518993407392133329894021451222602606139755951420976285143687581120294814167507212643980504212224810905120293448427255639688165848539596230955390885770321884410085211802948693212783743240645636917789373727873165302070994378891275262049757118284314381102834686916027460507051701370577515416257446740630324541562611764348063381769835220614713693150771142376177087152571715913398224024526340356175768601719421945875855488893051810297674791633278981062212271337494671955188258126123455840972411352945073178703504948704774679486902465965387504513474651542568987323447173247588720154637827483405364601590785680463958166427496695561812054239105697179342851694258847107481209178572654407729790776687819299381641057795298086974925423300065245119003557867465681591145752696659297671780754037673161650221049680679149054433807301840969338905519916783628918476344515992985384195872490560423115499355470957878519944735744275074834819818068222383954582472884287586188161890959754282988427872520046619869851116379183382766654751280152523092814550246406316055286988740231705271919675656421344824668067988811176364782918881931625481381789024091257766601034570704840811550846656675746546451483642294469280465435335258789650062252577801652229181140802540859007837623107981063453433602791007673968266550384427890964219338167637186255583794414842595654575683676306391936839566050475986075789977638281760767445239013370139237815081494632841150191691414154649547118410541825947817445442777713621818323371403811567498125360392482478312730944185529807648498077700919560996463992371066878477908049338809791055006125566226245889259821066119852264456693793323100523844651024961672100483251624757674125610543864126232185177068409187745859056663359489479283193855880144607510230969766094564559527388703019692769321688292279139723983081650305970906953836953904453996889932386481424095756116699779102112388971731336200234421812642233193351439747233909092278361142739923159610251762675595931103512215096388919539400484554425644533985185394463170900286185906358445468853678866884318466893381144883095418505684151223836166692422398884389216528449408056334518251115812043767226592993023985037825649246542769522168059526724036884700879814709546545645833706056539920045873302706018538556158953322631497810901243900212202003657429723430106817625945516024157806987865790723040147108163073196310831641535738273241912915214126406372793329122333821688039327706417796800172117663887956124587047345567927988363503927429412308506078471428115282485724567189428368533953657993769063780864689336414733190774441938179095412144256602198079360520572007430198987993062469459810453844608491786792303728938004312267749838998054081123024549601769145025700157973520728469044274567025152327544530361521008868278064956189662740128598514528574635992480011493573112106623418665657249829762301213932548785439205438630060437889896372352795760642759598118460048346384768088821732361579414965410265543945054460684116564997596922970497327844739229077069820280444807967887057953084074823094247444481984343581041941479540355844315638518147147672555270696387702075196807040289429939733515844798412398427597288546299360785050484252573009274711204912844375046762337897201923639593540321018579700517924983357801975054160906854141989913822653152252652836677254135970956026069596612256072353936566808530682152571173808934198219302086442018024908265772580111986684164187958755587250436978105092021677405666939171300480371084052605744455743302387825987613259968292586463992236572273506707939164483669127479454802572164646300139154850939616696133589625320278987326604743205596708398471754977828801927017525138758245295575063364206427634940439696614416587203265851588801021766427356724856757970603408575187161784541567568176669836099187667395909540296858941064523970751270393386962338013370397879063580231725028962909955852416490951787490424726997954800561553145293564476837836874479113117231112997969915621623164749761662492979671748413988764195667652823946773417029511427313032269427903578382672557142321883502392638487978843495692898240595374892274555378719517741373927718545838725072615534603032488340057591138927760616695819756137761785925696113923030217027570014971841506118017364248544375144143954646501009422050591005866157327962371647376833903651550262476080907349404318628388673770582261757497719206092886039502676617939348184442779521535934932635585789123381656164255447496264663793934944479468889697222082056809659349941902328053142066533928608714867207345456890664444932996723772327223436767568453860882493322342019582854433899975926001362170397031422489848110128173916318020007848215886964536371149770841149926718175898009667095015478999932291683789603680866344944278710604213521173168024348425953946953687789328492565716068217810022931682744830823394711434297208955856943003973107174494269177020759539061922301228984775661914871951064432201307161249454937558589773486117141931304341754292881916882717718496947421225900262468069044512090795308821968111134663175669211058558702277485955128012982258001917457164916568390631008642719168670097744577395819000365541822267227466209445608179776838199877536127874736844628417475759439587907733549805158296056703710074412868451289573052750188271252778949752139371621052894971882546922829710168188283604221462411188769419525123422500240991883960097245253204134803023532264528897248331484867792031393985476044468551805993183159252951792172033669458741093218204789343963949731846470904741090488295685406740586843181496984411128194957104319819599968597693510881793872409943031808756581839934969695820548923927257234462881201782420599556745216255897067453910603045904260639648697755173287989715197292743458220145597361135375401405275150314168335983301942441548765287403417461784962548242981964431741996989062934867192609507895265067781435640865636930516235261051961158281224764591653932546719996245299231148913515223675730967692955659981661845458062874040525291020420766137672884981425281983165090180484108780435326830935945425191999560458631486561491092290730604152051460298694630518386800873827152990789356246151860006179880065448516465875040698807761926020993582110772999144736773425592763578399941374954305426134939773634824585233048689066132321852155455177472321474256011648388919892264227840091990862173245297104142361864928617749772835274764673358647452172294018617082844726158688241341172957996791655351546888045692439759568998677157960827112967596694527638427247161315498320856124256744671148760658450343843914430629518028703590464755436005156109068270509006886766535943266784568494055813116115646272916918983157780859029920691453816536830030293391132625876867313626591237520261200507092330949427087411929393064316467821401278426025073029235930431592238310914849911875893043128746151028635621470687408969738189960020128084153372036648272725871891257795646157845797229703046720926837931707744914421305113259719119779221241688944833754252645542590516814565060108052323173981067599131887554126638352624042327627590398360521819209882074788878268421514997531067662389976282515075035023173407948582045318709132759319894841523018723461461717027845001053894201462684258133443843474494643168567961102711252702939882083459257813318604031931588376116891627783551063056471570674852094262586943491207168085779024124473394747776947419098554239083835098116754733950788803678090145376970811214717895467052537317760127392081748596418441491827952285234999603084579005722692062845042836674498192957129885250514906663045563506293384633160996745382423916110878136703667365428667628053504555211938344133741043956147802401404875038841277411189816082214604886838872910303110563012892188101524995264317316325207952266954825621453337776919944543614183510372391650792051873935923442271728650435896976512024717708495814535708015607158185783752511349730829177639502498287971785703590700416131413254305537991767225878569572444479610347264342771978541676332129879637079028267083649726827210044834747674106488436960704893126585647057047784691115331338663953604830178196629381118048639398241862893565704592368723188484339728633151680291443282748044760764153518547687839036542555556858579297521137423489111687746500521859918669041055407770931043725029702901539379635303876897323917903234336110988853874691450075479700546078513155928915354090203370426528314697040392251319334455473420443527685616524309433179976558320099831093721534250863452619420007203045114602398789884162119395132724943088222116180604907444166715662424404823375548243571879372287009624589496075542575610131067962602852972252374789614018606391226826137436211931225383242723468409252247548940203933857226086833691845076082764459431316921221753073897524728443405151873415783152706351326808429863245414386092529641909318983687978592331086047181351603050928580367960361044444669757707061206762854714926797561844361474914999998198601341415442767573591377458496849768802788216866338634526700683197739527943768981759434473768222703809784811843745210813840062467600254991599740382358523266400882701289695851959664024681139580944369879959735313206616873101056353805867827314620291791921044501693508051792380574558293520518266796954043033456759330548544968176726305621772049853505874956542672838785568166765731336917050301865029167733315654985175844137764021048351049353808500558538814854014947177162758907595220570339196951703748038755317327991598057015759172954331974520680442880229011821552244065480781943603179630084066501176799159099147195160688251091329335627460383251642540018818190221589566413326225845335993048371150275828719209484057473751290171942565345292815320368027372046614333507008407294487239559475846906401905011559605902676418336250982833397510670103324141335816827250645346293446752456496192830999050914710653352031751586866338592380459632563194770767776254274116375405425877810758439123474822893654337647746517074655215190296184927319270045297241807737422432556936677146339795982486078113542256251372690032913143659728291336025300352540322878080942059014296084480561063593515121429973102785552843003327628616817975006327267577747554759871221379145297507362432259899950928121783934232412553944497196437930344343487171725972298766012392591258331367496606326160653436074972157441235404064769500756001932058443031931168053011442655409405247460357055486816265938369739373614877381123679590138735390323860810829037792877389688302896540631515937971745089692349227613139351256228682757582341606873869067039923458917621761356659247619652120032254221208599308879168523522607540382499307699033225650968659741342077444540510815661995805911001243818103029085485299769449536363010168703533368958259529507293314798576662755980611401105946921216642388908463407105801950821023691252385770902960822108573272799702228598913192484768492392967288473921449701781713371842286370581658838407103118219467236869882885348904097799001968103646927630711241467732409964343421330395424401250465536361032107026386246561592718171820305138092451416238419440167108076967445309174493569432631979390544521964617531278608760120882066049395471644894922016586801304279287671541929910646163121187432584560226720297666102287656594232645902874628027514039640129963367140161738730293998822220965012902724693946119598010685243198746996576692986707496975437382391232071922544967731492771890057628557339079194655791694414886893608868288648024380269838460517246817285115264904400060606888576189665286872692000229884368692635998237443518680609179341719218833988860896912961162410922295240791225737383704414762478023385594252823588912709226099251264713835567839027971513216077658204719428574469060186310925110170835656206710300291680712183652692457873780618626575665436151236296722869931355669579073745606977052657501332098290623146877553360686885438162831336678085438420990569712811635115060875498487954337372060793636765526630268957780744605944258833835697298801614190514126663515600539210056121486170962075093065572764170098675826484744265198490356135631933629254562615623499055411775711753108447840582728444871212364697172324230967607471838350432619017046577437995221877962362149759809577333677301960329996564267368407679661074658697547224004304124485872667479195866626350884019462196436649507174074446415291650858829570306679748687959472281881818005180477506944787678092385977276127971249227969011172307482555584791737980838690960137106585251865998625456061675325237855497388815931896489064916588999678008860812803738561724344047750131124834747044910184397805567977385332075579042407248217609021018167772206538000376851436356395411430996027000934355351714155816528120148101443075853186616013290480511114807003474709114634492150313343100057188919713798560294883336218278500134036513550948024812056312354665280579501257841371427553224920729977472019894546798032328324976961597741578633822413699903887545382334005489849078208840436087299666366974423290882593233091657928075585287903402139476053620814638618670613320765295555254592185370609767357276406227653296828802238840251355317222517937833419225920320002673035515021184068753007816291588506629245386958835142821049509650917698886592392415829509606435403843338060146029357368970782726590412700246756138648271253255700858134935596366450020838397108232824031647377069424718249308422299144828871579284218043619111434168044749002210476670035262347823535537808607108591115023171488208981730228030452854840007672260293228237002359450899169533830703853080777742694066662654337292500963822245694094209471372988336077977451240101842697169975526561275826858795407818497703419647333883868620273048734048453746419304808904112774182637108011812725384328877420330113316233371780651936087361265246932703265034268116363788651055857068837041642495424786213513572543349716708910266486752289113743150403600240137063418462252594564356187278009125309387966826817657415375042962108768174914361422197042995675764739453560420751854637850991159266215317040636111141103586865622541845625911629368458653587157508005438363642546345773763976727610999612703258467608937352345028515436094676104736214373024535244720077589893098580074942830936928767749230026882592118442004756506266361052023012732793799126640278271545358067905217149475556498975986125435926904825313776809666896335846588294162789759172092116713933229678986350662276775011381094486993595098438738095943869868456626045783596942769232390503578414888326672843137976511017371035060010937893967729751599284258545473527960783633150590065479067244240227629776689820751867017513975615375840655258256859077696200396619424973161341584163681560658912073722043468055253714115894737356450144579717847890531951811176913431929113720461179573928530816619946425759036823620969343975132261945735379266431146047361517891120397384659025455017535178811559008866298047652965868602049411947376925524306937263720201164436588494164260404643044509176507843779299845378870147725083912321428274480037662293779238070331837775678685865275414371929160544071850578029398596030353105669546426543432241073629395135891152560254578776049865375661399339957059359271838198168148086650174324087578443485638184812258153721692093266581218623541266000960438758447212421347492189665999671256651842217223320536793507355643241793523376387413898450870602908809872196571129460090187979292773757155114227124169448385213304386403326347772016800909690873061610752809786145224067902892792651823999453164549250372991180699808724304986706343883300016918310501158664489938399462931320061886144063860148488441296995444162575764107885419198183239048953010329262033582492930142901915417726579324049569960455305885765675224816401323010766903389617347407682503387021285183791691898287835172004558090608793077513269427480273742091852091935947663645072899934325312803930506794207722637181297219102545896450197658544778552142846061940362813716014062878710322652108587259659236496535719050996689477192268918732310420847381346639182743943330467643070181290370552190860325814074037576521338760850824130422381916603179420061309824239649379511011522405405681547118165883018994690130501481002787452189843797034428281511386302449985949865448027121027608792941690368966554491147300184226600044456749979509583981449253486726651715015469381173029158168208488747191797714779564663170392151001102882341021220200656502750870046726003014407514576587270455911586308480930482981096658326870195251047136956479817210862421974489469212928943330270130168113459022444347866300176715578497848656710450994845364231609111348512945804862298721407738256220548799956186310903625682344297245593195873245866634938586622110741990392179155291730873155871015521688200161513730223766113279787163989918692049813634995213347615606929328684748214243459985325944439115178304589363554177134210751181180710009805284422319163152035494389884879187915400510048734993090125232834023455710803924965157281130022548822880747972062338797197397921129127739626232019752154400665589252906303044677911410384523055870601816878793396273731693397030958708525094205950550415783349699806828340112704857092908128189306005758893948269767634945240688227033880555462885880634978809198718079053697269362162746178190589734209165488335527403754536660779443794615459291627866407228351228920357481541656303070943746658593568756759837172258346882407372078353235500140898002119712768661558235001111280603762466341997691601316906462917551194423712335423511186740711089523797732525219897055343487756293981051186285077215104664196102416248384007664446495112350662745320816981159794333537955117544868058159161287498515116767410482994375289214243724654371284519862234474004429667687557280374329042986214217108366526363896754830477559282839434321660309507603052457080337918503493818884744963828915729649764288071021927282088082949369986407639721372562503718903583525040274656534239851637382566535428822113083298557082361673608986180587346908036707224191228600555598320462859058050112211760948635829419888450377375173961759844024901999260632275992166955986953922481354326910578741534477963516681296540907479128753862523522456486167792891761241989862105212465219392916699362619656855489831575050486392763623265185465057356166226753585635870067688373284095294581577147187384153138619687837677465523214442155978543823738988609292874561647197901172091322798331181705666188249656901255016762813279001712772319913631010636297633707143304953802151420070013750391197044527738323910387969558916607740352156367041953900402512205475799445279398705324380636186229126544818560732228216288369399351243868472981184961668912275104009615584744821967138034135453777918638604757431275162977217438349002014451924213551859722670302961211594546311587857253603269031880983119210804966126069836542896245376232166668729284237570733565454547356274355979147071784783386683122952782797649153020467631720352744398400431514304200631261003247821307535997868670427107205079028799658178193223835749755705208090268572526117657599412121062939468431174002206551800047481872850609113461722435851096080581414581409566684994553852059729857161763319874644136765807655928593751672297433597219080356762413850675849771763184083024966020046180570977857961683004758023745471593968749907882732840537530850261347544154414745168986409268284093727683267661105503637257262766769796110243187200758145310838208934011441470702673344571347550268070448057842327266137629761267941480179838746378568891021575773253467303075317420348907221029936522012998631620927616728887940109046110434844003008031543926881333795255044939729310181146262592870061665071935688132353557849542581223824658400439625182483672912401519702822844319087218641092660003681386327680630837097042059874040286789202064632283847057546569065897649350547293355475428912804814780055194894020027237924578895476032150176661713089992510705559190409302034323504527644420998777666635553577389959016587077948990981369225442882902636543367960919225788937251756765945714552412925554772219682749901436348735276048779290953088360453988343886301251122043923907629109715311634734187973592915386331597101826110082797404049718835212120117654453991766462800068031380435603894853073379998789921692258145961907945129115551819828286960703047984066398065145629222823175622422901681723186929913788271595386777038893269646721802711751065094778319173203650877037283939830263429395973794885234926834856827489197171543860102250173884406218399614682894805216469287776426987099579438352837155531028021897411516173402503210159247750619095854614360880911851199947888124055347111405640097917763012929235559094249664448955897885792925550209191001624681906151053689572758749645687662317718787333838774344861026957703992190697224637202721603776182640056597843477722093124262036992983982183480780403579403325443015324389086763739899181683021235848464378422811596743881924376336870580514074067109666652552228859749249232867420849244737187141259888803601124266222685338194901047984480206194698504927820238098057320121064800210675968831182823531993628629516156049089031327114987464474466900686327372507398260584798201754912593818335146539393555802500817908703420339270927934530886643410992346875024476634007802145071793849627460174084854655604993041692612473085563655243752923523229217287072910867285223799858072411428461102416452396741809888991569496708871842976927478877326203913116816023656426265399368154968419410854340665363450254208465604507743311407412597986494552754764030217224259235798289591457166391092279982704972566679359921765923183919038483327171739213021962301335464529520846040467413080774404870460167185644700468239940831721697218037204887868133127160857520144973806298248399797047887056283037706151435389809683578798996097021019523343446051139063725665524388849083760308896544666446359714165022861328635439541754346332180853921296360822456485907281367877362159814974033227190259775955276880659365686270134138891717331476026701023482850705181503158930763553055268977610832035427634000018022384151663105155760282151763509725612369888928228495464086308037168473538851031949640908947946977213049810423865166193855113182423289868357768315201821175692338808853178190497064272844830823120288264467966787432429824624674387172078216252483500738547659653434743235979521543272123011907313058321739040505256213802963265676319149333584946087703083171109968768955358628453409244927504725717990127660480083781290048350499618014987748021988669595402517709550156312578052003053596773357452817961057210531430302653730552901963839629692415449861956091523957571783606082990208528918819472279416529791774247348522455248017470308293413824425949869899467966603196013262351626840856623886889259949826602793680589313985346048598303898430787144186558536075394468470258404139960375492896913375854610872949896236343454391169031012956042318543721171150946447734427348543308379650112994880360596467125307077542177656316582762871298472002212964772976329925163748134661705257188598020677684816290966766381635111787083091605125437694789669084625300892463378343219050667622096717993654941388597138719164171808752694759516371380367987664492050357815510547268445644946009843163195268254303729786028018058079534626888606981778145792312619861297452078989913397898063651739807813184730045577759933374874182802888025233753968489186793386867407176559553887265849152042925213417203717946222651213209430805982312255199978615140950418902255441673424683343086182598318070229018013903244454014204074780855603505203638481036082940851724374771399516541996088300590129520850343503436909724546831440048819006252821642764313299961704223471330056982399580030006596389800844090663535467713728725206990999039859901787706947589588464523955185917578002147715798710826555970598101733408270653488577822338451753049400147995473067584554061044648457762161024264064001952705498947705531075694647696404211395880683811024270518677121493369013030539057629982264724363970280245079495949515151563637170029565645585129334362118449534821248656250826050251700318777825662991300219531688862605655290404530326045105361153520428819331345295788741381516310677914398260936954144551139904773063774118881133485406783737679798024532279170161715326933209097751065837002151158597349606947786956142181359115163898418161308285853204452819565031326333605358985349376531304834081319645570286636821395200026091599792240904398373421152872236791488800885547692542364767940387127368090416660881104267744535862455416249958249273967513689378349469701989924800421101696943600534935427404676369501063866986174266508952019651428484108429826176031125536770998860786168380390583423467992562211744618623946473568572354274316676193994819768343481073902602508445545395626372119515688674799192872361625514694833529049711751269746376453071336366889655341761590720105978975958135767377463424972641113548045041335535837499648575910335233183534841865501246841267248136131635134497177575289980131541073933337008372554654252580497172494958704031953478483955540341945636447130991308069898255180861146870020762519779181657394494188640001004059194428403258522399195984734221057982932086215729397290001057829235445566439529102994794840687789734243302309898272360289185823182082484116236563258042678283572812624865488729943876484870757237972560205076553374077005544458762407375630589691234613456290984317434892308122397891453116956936340064644752537139379772563449005001792447512932400468291531206516589177228559611671065216788752294262117640100586377655657624788477773779887367870146494203048394159312259358596018399978403187596037723687219554618239503622579767080633358054123806470025558060132191866755122848959312640911143405955376533144222526097172846780256407360127284737091996950565103814888101373676552811092364300516125091948246215857646139855125503283458760820861682343555721338657399355876316064921733076713389136966662309248009685435597747080082405889089186381907056312849586252656771228882294852680337092144573710327643222818089440996957517941514972821547452290110405141943752094214254994643071180754443957379295931508325572904802694921247369828243550650117405399818679081984756426946945005745787781563515508229794500695120510256230716645921255234440815662019822591623052837584937257315511067614690440946755111363784646847124371994806618767819658956448494221875384955969072959018689425035904133611585318937845863468586482644589930533459213638013668605629461005780683005096589109637292086697527181343661586166793935431963303390356973352674523760795904953828385627827702030062111796782691544102903259179117876896609308826295027170427741072285171910305423705209995367641314286703309320405026715089746759066834012584191632558500592980246254064717572502063404329427081930400776654840026632016021825025228510382493510931870249177431498906195892938128587379891049792353136383452619663878105533338061301071272672368825609760253034638259049414290734036435408901188529630195749374948441232648760035593828283205980345549267946138133592815271263188890816666077682477415478352973715793060670270144584402465839648768240621061572814644102252894090526985843317615770581345430956252410348230145762219428583535566598679207386722454842096839007316762593409689493647103819940046347088361667555331615110558486550420630944037285851479459045620813995874706622949746665595486642422476614646438933040711092681663930440832448413802163164591980969696859875313255194919962288798357170169949601910935614283521330830254517347867817120253097619497445759004658416246757426105297958283978233826392272388484895953294127354855995057792114287309457087061824184805123779329331446502062296936474609406473366995529576406428569601384175239384344254195117069514174367507600977198192978222148360409800113775849885782411384414788139273738557036585524268821340687272943979553131234290040179590379680882177956916218759033655700034263845394774821864025193555176356772520286095858502605689033946777112280631032227056070058405349519981957595698659922598637774334785776637102324123283313491549473938271133673236374136657867361794582251244134415261444882149411565309994501273715982958103281039814354150852213965256292499972176547834406544263805766400940580063771655424219178740565120810148932055212413197593525014213794786442062737903515705708121970600247907127113566497497108047131989414870144663147235135304866321038102886130300637284629122727178601632449801236756019326806111822561885365020426744995797335951051157799380230941167316926060700964432903064206611015165205205508571320724769823592514261297918363132869661978277661290846263451681846442612044792660547042859196865950593618870443401596232227079103655761788882463475049247240629992551851342884564168984899631432552529282832614056926469082568897624533042985431553369281792543289704099942214816705458658129496840006407205542630771719451190127697601290086592637056043670789242559482107695913105745800810715637939995877588766535067474640809031491483852875084106839047057940086717141310665440023238108297347119984546693428137894103148521168151887668532211751839754815935407975186816766306004895226158801152063464923157310566790582507907908179566120050918994938591893621032052203362864670550813933567927766954477488281717578345866070169354145391105117088551765018357596127364377274195620025131273435242968285425901831088666083983132266010389491875161070120027644959831899579049526703326489796314710329112368004934668724565767061121054171684975362173288150264601237000545975603644177834666317213581483293501765653861278232202858530540886074248682170368420825668842745264841929356743659950725088807184289075821254299302999075152352268673479588730418240384127644191674841429107170094771828837831344513860038584377212834470820586748617871284647130226138484742068681762148025408111044371958354725285927013141885899962064026504407814458067495667277941019095555157231478138887703542081852151795451435346294172202486794261841903151124865975960928879599457940448644736980530983980687316236435198246529138039070620155279818454238759381966852777243464323100227310617378565476161067744305136865321588167845024412078123375286247156603917628688293659951377584837015263513527099007214499927717054847544446331530737473621996862660150598364706890420921572023749461887943514803011760593647458168970623709577683606100752504087101348677197832683772821647619535466079502758915225600880336345450458133283106806403300813983575976251164354714915290787350726973671763457238703011659216503249500961584671803053761166939136523133721868061917001927062554980153410395054199413721435248613651256754838716586728920953968149812567672954487766094577201249805813724220038381443871933624318680691334630398560162491688483677386100662741112114944483180816096233020167810964312655135553787517476220099656858094623568306415564596386102112383331719593746529113083932398585369335290059976661139233881679005072862501891787143950786164483667526594876351645853708796961892489468517842978975652665742832083586484918352444252625269664741038005043548387195250254286740394377226099704188369948143094049843413649637702818422442327761405882071692699559813657992648379265648736293152061677230477815975209736062200216085420418518852260061619784946461108160071649746873572103247198198907027667851217404268039360388793786785204092100890334895841659708877561071375583794458578971582849097310349170702060996511752214520337782444949414523261489323103919729289252092049435576432419235059222661019886089207549721238692509025005545231371494095619152721634762025381030839499157108232146599797902508870875072088278690509934869055447203474040944885130502176846854127931747084869477953598178367713700181582031976137632569319609948377851011517679017964008719189004656517785915396418717596176173539705568419820599886287011589120932407881941060329535230524031102218271771685007393919978496594340343169962089972839682837610422445974738254992174056352389839236979642711878749433872655376193910363028229138669961555089277106203162911905850346411665076622511584133619869287178736314069265287636676857870134405500265104718650882993570217418466912315529423156153423656977733767035868639726408829284548083249794611580012897374118311888270383896637644728415957651164299329833807956063690010062266543529281335236074460585526600657432308033150262122337634848603900126557694160007942345314467270863159579640772820251737349187413841333187507923618317828105835312886477884636112034696431090665851840806963735391890513061441379976898944255068057508468453571548825031215744427764213134917147877013375218445056355061497457987235087080389655457310244145528039317885810515522739232946117636658074609197671162864861556355053052731499441788151041481144635270179526842231142105646031924482075178009340622107626253424066386060056125844150687207579721481459978517657506590886181215307958196459948596750103915889923954787238987879425776444729539695156316262138118880576268809232931230487400098104415454570878456408746107982239510375209591277998196778925818494841524393082278272690265967855198022192637674290094344130909871594784582872574458417559853554182719846685744748560014198862590361301905946501998028594135024729818525105035203323116395375256623249319550856152350256948318341788518503425692756234954134566072965855741544257681410800565773157048873742960841125836538519419586375799474224540046348707720228180318894739017314971058755082303151355809781799444414924595225767005318302885662389680521774021541059195612408471571273253725128302404815054745156687652302999918632879141063623880265281809133841396189263680319657874414801253487362031645944096671055352871354941422873978111331662348783364090937921727677869119576394773153585278855084595960906308848310926740233580180924193261667508417680613878975789634354082665569547321688494141650072960551195624110222568148286857472358536299266128944973629769013020979040139335600470155546025965235777771138741688193078183396005039308563696236500020807293705377019418802933044660546662700069732320595926952726843178402779789694748078749266831832645809252616748754168924934759756216941554754385441126342650514679371432507880434094142944281942409715634017608227063678230232763637389317772887985962970873656542798250330731131540275227661109141753704381242853628023673086629626037240880274867837088085216602946277350979230089850110926613986059229552079040762193922744775683967825471489571812584528229297066869390866605529553502372369608036795410225103847157437250889627273346664558448608136528906025888156339911457496789006385283470717672879521488252437795529265796898253954049539400554041051951424653232466804099843675194753747393469412476786734034377859140025884729397378019127675226239498275596908411152259708230598414155045133269052435854430777462896631267031191551987107781141743073203009819835157772564825269386375103780401640173419541007887349304640852814870755909025158390273832770947860384891049270992651273703352126190024853510753719997876495883476061986348582461668030384189188155425709725943796303124804071546467527251317018324834072663517424560370870495981287240486570246402068974499713948786853095478157705927350592330442931820475987174373733439082736333779027709443979282728871343755237991141406179952305762262132367561970735821901762676887035670114363720620481826069024838018347991629541083763208468294340043536936106324501135337581800355887001199497188980833791937817200296134420839340494483050060580441275936034605190406004071023650920837312939718193674980930833715841964388114500198500112373351221236076634542661021498964246657611551342759136786783133374310189338167321457999604542613074864543169535059793927015097300398335277596559770630243133631546411697166616086346251483166265632362936567576773697873713549398794655968760195345085159990252262939285281088048933667633076885552251607296537202108517482946514900449990595964546901264258573410474672588785661126847826775266639149408996572309639315844084038008635203821496269732375632542847911455939390462565099341870570629090242311402959070181450656496829597174266293730918563038221652192310143393097475935342703519466268369006195631124073480375162837212169471790865224720256784470698016459492288155577622581177192890986701121750218942801746016156414295782080454898896426665067352821315507400601394649018485347707108945190911627069783810689138908263712709224996287338864389607415309738202301834294893766835044237599475402338654698391330703254538431516236727953366660203564754637862981072073755079227163853186652273757482530263841714362132454596102056543194606142449026540865493070553518036051937601374605374343541374982255961203511514748542980475443618643581210947863047887254918222158771983087910352083492402785755150287203290608327865846069616576331585984019134959067140951954605187975679480251263876557456382858063216509391956278587909913892338179467600169913507266957212903564573219754079245698494474384282499682005016750168225462782189939249145103625881706720184059405768611888248990755189666144432062091029777665692051178850906466043918575693467784533062446961962878657589099462809651885508362116261090064191286010650105115576481019976273154413092999089515306275693072077975532032794897726117416735376401437152619579430855296202951785773923459501401054181481659648101974383707374384302077050582547112083541925915827757940289874576696899636757585534130208132209314657249588438702892885660621956905585955517028901400033922850014209897856098334178735615228804949014405198158684644949902134871208371552553387081380212547459014327938874642705036928535077434910306318614975041829791799846757525130774526056632931913351531795223374413262440525909785347687753179190164988170667486493563961158982483361599764372669932891891836510661244020207523086725545639513105416823408166667837161433225844784658415686885794220473530917824597262539682690277847218876711545718432298134024670350721734411860349601836897887209295705893716874236796594446444990541114108075543490582228542288570546014519100407859286197054381466731320924156077032881714646527672081985352881303016010338840502765236239930291515203183088125273279860896870188988287534091275711456550909130571146383157711102623154126193551785147601639738172445803577224717769228560601508315562445861753840571945487075924841497823860291575908426733809631799147503631635892754258091140047818129560597427519644674847444929130789817876915639938130784890832127875901973943537808841474208739022211814638786936472566250225898927310322046355030868170798598552150168901423240843665290731758285952568291107443713781418747105613921361720169990243185170437572380548125363931589111383239140045896847819170619365397271356697049169752723622578167952307521972247514092636937650624286973987203284671110766103926539394305424251113002807693118124364319849325716127112178131504299913148535306776030946115315251850806451739080439236323786158260768220548648276685986091288896117946402961194199421146895885149328876995986169356454882398816928205216260129116346712952058033406522664674301962374241219757102736779962336013083256881401179467412165842342718406182732397764514110513250041653765517037843823366370154324985146915911679414814798881722182223360841939902051107526309743650403480728531824440180161349280026346331020877854663256062566180188086271813869806632496045306395499615829760801113878609079439113609446366068140617036841341578781213788783990886908245820964345723681402535344734107373239044863152494914735106625120565387019483185471634706532588851830127403069397878647934655770889737536370696658909817515542690943783376528724473947475918404007866193280430262201729977259095216310935191357749506534889374433970541289731557804936345866730515444848867431845591473571437332330641031776620845154245057737851831589935512358461578785642612306996560259770776918054459554901667852920471971296618117477744797088025444286784744470494455726217212761758843200361294272678620797826748592572215520359311373865164492464146869184359213765285535981882846056937603818986185505753312754010355268317737508965612379355588087777976812682875762845320269592281807504013748060863620862058056326022026543425025281821201103457940825285342178369971867461765808562434462855701407274463698693556295413282957452567696983674936833797976538440015077178061185159137388041209789276447212790307455046293873924227554070158808820744294055192999374723711545545628051855268397362892847422064454194109598173899896613678845367162935427887363497730988972419359155484960542658674662422372380799000915131588151092966689676295446630597815385703139203922819973857416685074262219700844092571960580638250941571266282368381123912855913012771728022744396795470720258784616210298079341974582231806322774268134391556870861639580977613646962177221845297918193788546761375490216175228869179040778775096096100160927564619265795441820154156741474690185919132690359581372574386503483005259637110883906065164644309510552236471441850353382856666240838234033315766557359722956897738634959813591241428165312617758614211698483963209583440818209671999461124519574274351001248768789693750264045516253661277900463265739435254276702294991881454885379114532436965222220776741101854913816630598599573103541151946007703233768898975773499786870799165147232545489903475629080563508002006055464843788651145361037595772284786000973304428453882293335933463144279299084811942692808016601262532482384275285424279872544659783087885902277401309454965825302654746857431479244417685622025281675054184484946952412718088603557515340336195876608618342556764849164907853325480618646997865448515473126560563711427350530997150589135620831485208838772964273432713873183374219317748095985449444952508973077526327601545285567101088476903762512664361861483336558748415890840670754322794209835904880635939012801140838041966559873371681396947150916877903286310544460139640629190036808971099676812451856326899725652976751332498794539007751059602177716902399536444653179284137763775691866303806101812690735031778045045489858301315033584720170677508064335800014582705661018596462977223698721787831363421772508597605383306993830228275513392563409330616128504666156137599401527528129802650720712954944395139570630736432953444044985987188055893920451511956292936212366757594543892583955043846091552143361858552396244298139585061950618289355134496860600965061875047449786653014905956751699235351650644837276580540905050770811965650937636849457297283340211891405710981349633504671497056678507079476511549330558021965206832285344994370739858937028182044818866397491358940991320553813375485515794270735089751366366740209320818010886147775799254162516675989557631572082740408782196252731935698000716878079065581831973842684822559154414362976489616004034781510064227610539419833745651398960233190339834076891097525110447754922280328342831330722515839706000150777226122359619065955438611781388662297553942647838156960284138830280423364076863530294238707997986554857168138549542171406377968000591814345675662659843337272533350090010399714190002036086119943684200870756510808579870088032360006001576154820524583909721155041648379833215072213660299643593513730761542345069334537539025260140933894716464348409854197779144968658624543253399577128417802938155402590827083317455038275218208675269878461002668007557659708553456414729305134235782308069408906429135799751105758709132279248087235204802842597602173113447292705579354571324511389661382293886223410777336530253377743429418604411874390350877965184927447176711465050017669114529634807243176749291901051298331252292695871763139604935228606648465587277875963354053229786754031658902004397468465467884030830774617661617980535186458507855470546071465725622906731501470113353877482752084201679383719880163551666616053971488285810207036263069721490412800568366981215099978938709213790856665293347518255834407703710084888504420454924702092398299114394277014907194653536968881094483077070009956921690689373278502350270564660749021159713007980728838662258962646396294697924760673617890918925393592073328021018576688537488406686579724486624021967642185930847568429820319442202450659886639691727812726068669026517133047870364690886071414343560123532903298416103618286949666682834828864798985942222971220378741008781023929045829710338307752998179889355013522009184912422817220640640518991511377588597898370497672273729870788673121709327200818637749786252355670810157356510638398029648584986656474953037207944326031117934522803702565418308909434958410785849579870826175815768583650241530364378338259100462520641950853216159152384190455429735507973229541009539161066759816381641307729487135220571585235625021641058818531487410566943979689101329713802030099952373514139144387828897690280532917936749097425554552402072946108704513453234417440558392837199948028636371424114365549893554257057907550816130819485533863455089450092943740102170974371523059935093522027179270803102463819779800641083840322067557001850589924839088177384520859838631925100297297854259911219295527531250446391270354162372194630939510017538914995281616015991422334001953114417027490316772025094888440782847006587168219869343690366081884010184524408003808794194008615879695359880875266125613322944668163401224458233189099755004588941827970672024440765542321213191254048021107981409894384940443630423948576808402799297086322679071227324797426125924161577678596716216569810346828831250520592953554879365505900311496003075062951052741508630200132929232745079102289105110076533401909722023248740820922952960809749718181817062963563193267569570507432179869753641324485167642042364477751672030765035859913144956497458342306581269031101800418090930676509892753253490580211206150170527135392056128738831170018653557914933006450877397678979810410292586426037740986540524299262738674096458230516920693426542094384432201579000828453197215852088569059841112151005175683973240064669648032889319121407676747804862362640269254989540013264954060853494117401489982518678373916495571947036837559608284359581773224077505220493954934107553801711216712564777674546519628687754522768038212862623478077117022534855497713507831961018423209244248039793255396216884988352101357270028514681447087934064730933101977317355493167347030387779412621926859584867407271486668124622691946399101739894180547169322329865954668745783729909385638954923057565518312967318163023106176753319899518174897969416825801191303717521021801656609421084401436001134511994720565463168427411799783614001674047219994606453538698525124504853973795903509439836510002005815127302888194236354643621839879685133565618525033626888701540814834853082927732894680705195620908997258454538101197484734755427665002057186777628901260506492079355784308250155963107849603266929407437955170893509207120146377791749881012274100245385643911587463161987444184831223927289439253009882069943052988774649685856470621321958421096039929081934468878662103365508936601766526888901217830874307661486573034581029227145171275665022559917913322625171818849974637617665212792838579530192838866374480050424377314968154724399117510320682260066125641134684089985877948952194810184700347849154798373369185144796626852417467007258840367660984964336615310528709540045580574639529761252284717984288352225900183541627140304264135669076359356775811449059680105163781886290487732252938932547688918043799173059688430283367005354862653301217462132010256632083338949642335660995326584553656269039439553539159619425410427118426911535693197889745198663288953179581211335253491450184460245575018277212709843621667046545781225472131670838842498133802950089992638944179694360077674439134271005671068468283901734585254526215533132074555751297229514746382635672528744231157725437385114197779952512152402044082936341761249595058485493442728405589384492979610219937860970669331175763546045762379869737757034532127342431869758174751781528864602885659252670106822026502335179147592898278265874706797588211700356739938670443051039340893701635606453124014254222965009117791197543093828341148636382673713371688749147678749425663798830210884170005848300578477147745778924581530393765547052657057481368639589211130346074470767960173572887486511829893379937860674957830575850455771361673278877225079930303166480436431217333642801967726929392977461967407271757845052195427282745619211365349204145148945707829566038116427590902017313277608338311576580571241821635703319907358906186936809963081336856102995501883038097144349202774380928583230143009547426442482578767155574735861862476534896263573083418842216708699818774281857488788466193727916514726969456971878328303916053170715231594644983706205106276983319110685854108666111177670628088754876450212450377716094696327242911131107636447402344117642787046038109547386533734529019965023033543491143178971952904745128609651407470667407630956304556777176880116632130637925463233994931853050633608471418130331255069931408967381927073395067646111864242522696596830786115082933233176876113472022352875735674765919471794344128900443375815762043977034527823568497726485834892058142971382955840277853469557297487163120226342073382751991063826850380541040648999748194869182601818115219915076801993805267499410771611852934511042331193033345586479041996166522254742729087797590729748705074981027762180935399261089194305111320344955734590082000688766809884548944786098717870440476944727674949739684956608350116578048490471965398347800528319730817150132295417419179270510284169364295578350464821363937700187649080950298208636120850206011578937302915497939961089434294002592173699587125343942396926034226223933441481387478241469280825027202241729667151715391691830862435181500271982210908778752005018698167290258150134905740319271446714492861673715300713130600458222417764328072527798379508102724627683706374009003779443650825958157306076293271510832447957548670884607289377444716717635020014111804910990519341844530754604199437149992159760646835706355583150756970471660076958469538970014724150227995086988816464474571266853943658056890491676933809174613357034924127353330073640430527963434005976289247606281265861442204785270571540676986242745882049049594680790582078296389110146328284868191897322366999663909631171773235260010148406478053934751771676548355622606143709318793230704531838276163297386658793829073618210201742730732940716843784406543889010966580793115748729799892242533820052004678832566936159375502153178033282059423184643680641445232068760815207549240564848173225678375900003169475573738376990568462469981218437487912055348660483426156316249125715285429770888908298345863927011987732125158235693569392419580754966557701627685231168599003537053944413137302336666321084887774741249286696743494139353301457090404036495022791171840054410113926324032002535898835323134008037838772650160791124634031088523878352745280522815573788848819163521845686707118312146128099605056167193260971936714062840633206272227382955472294698434428221881773665708343168629180874621254141849356265112185529220350077336729006421635715249792857899515280703376887212196984547918135811024661839568916425589202416038150353480511161635874032875558963833082481054425101711859421858000456094443805668671107829882465283808125614834118508871929769143679539885115927695658810826893262176193885997577281214496074061928493073668739046261256669841109856930490383108603319724213085936977791937993532752441943427184427293238673760750189798867339881615661230081912927197188940683538747801908881661146474309645552044144641076877726880751330145323393916533010890570432675725425468726122934357305620965562824430872997222327873622270489644292419827015205183619537755670054787587766930812809632441417328200764346923655214831154063700841029540221114055270794145719964085434247156893746776127574839066492076702566052696498454781860754727555615783758265199468037476471717369205373133892764322716091979896485968611065637583190005215959577563316616417778173349135171271166179242093294943438562629582368554802358767521303345051009641522745967645819751269278441230135248276175551353228198727053730865177275452616326319268119978916099530420119290914668155688891019987245500418128400944123680814977441760989560501604806002056093592587562536258250097117236404838911391441805080442097824052293526360386465593277988604263474679128997504792919103048100262419207506085605321940360730587887468607450844655344513203091600033068189337927742168491971345323732849964500484726437373533909387250864317346716383290421248397063915435663958416183509843469759986503977827216488016186585112686742517453373635341830051967750648802449196693402108667859486468478544082315365516624351666818180054799910886448972114436297416996898410223607603244249239425428316659483506324025810833080914706696472637472931185569748120244480249378244699570802416104662332939591948174908394923716279909286914090106523919946317061062917002291194831537609682787216865544673476993097566403835913276212381245799961660462617950473830367975689637668431152841687168280907962397740641068079462410817254920329523283685716276636424344121381801300888924660941730444282162554711907826403591438076701947616590207408004640352918957352243023335308872642894797188493743596597226131626128098317745642683920616602432834521618128563578621252446094587814886886589934886004786322539048016704663375748271933711397237471039931723998648018995968843384865697502034670073714802901335880834010855466235987284472964901613854036847534894091316986467457044616521232248010822907464950096594712611572736072025152154544394057117947832527981689681012139362297819088535222594374705248287623696535703416733262969365141988898220369314217459963910784960390871122814994766473297657080812096410475434254016399475959401582289135607249115696153688718852353396469173143064645695113560363947000332178010768686291641931985840701299278036060065112003309486385117276534381318898946721717313289023032280135578960023604275875055015259519272794577830358348704802424929669096915706932118710981472152414510090374544984445861923976207161698449950010662034476638601104892068460183646201255060092324338231936576953958333447895596215515578268976569298642599522805245637007833814861552413019627778899967431962802709427766984956662636190217969438665857379113509728635309363672889904654817124690165987009788304616342085401964607602537085494146616973760452783275236662365994436178991261540153870078322376911487383495503689880417035029457596769950040806305952586987360664566001139429650132187555676671333178066819415742603796663208781604507809267201869435069762374099824533938859947792070635823684233293965567368944105441215840883511584202527991139785615564817111447851292423802092138581002363629236832237984168850257642936725230446536424742293138533911245039753686744846344219436022916944356207137757125393419147237073553856660339382137736821187123435936043073000871567380289321093116219035299879825649041754321420191649501858546811279318041346121554912360678452632193159148523067156354849109384938065026148635959282744724152265943450890465244014137365892334388144231820403314515560600840149244301113644070107408251350213005610373927608374584220753856808432523432105553562435651279300519336319244944892337342824360978943777666033829666322621790359776752554690641811729738709936737137960974158938467815252357833716629109217140053809704194577887925452048364123764448622677291217218965340806434483782578121360129039315409568232944705034337007847810153593282751883055912165235979137202469670945267060993121228812824239739634616201320447921330827043541990024707932715226186238866500785827273935631872572426622084977009465396672841602220332267447782791971053025441832548157906076463158546652547158860085115022034449283777214421178031929120989898596876282269725720954534296535684407690822911119289666141221411279707335930303647774097407247444626891120944097411393269397667557587210983402493058829125481667429234282104359335583812498497386112553967857620661904636749689247448377919750377060781839117795684882773743393692223139835943063858057600851356143773112250701965691989878861696687410750593021373427887302512722218209806293083410560894998847942891582538286904878847267248055315757252614411298369142522919844543244260016565178928616240412313107520074387329375042257550074731388242770202142407533361340121056499324148784939630074501547915266076606318340805807384051591108484685184071384041854897262702383249418049640094102919921047638327439653196685283144667787686763673141286074451388104513287045438133168388976181721788056598348761095600451842721252192474752983746023064718136849478420598533721470155774821978719756112952224263663487654534939561798799401630696396474427587154175070805318961551765751203352040664025787712288064640170172401195242874189746492784292843750117348713130494046272843110603514246738619454673332562793169944824443305495376857400685549174958826997865301253626811372002323612208967154830893959175009578102386213748462059769216991554047650455363234150430777697389304966131469019319582971761930203827529123379902085426856876971350596574527464626790681618168035520484386399290884857948143346489593351569497985886000526576532612224022659262053814537473727706767110787532224153089379190800594290205678016819247357332369997933128990037089021937791356117868857682835529283453318066013498659812284490022252109382974503801709337882343612227397341554706802526817815952892173168306363072490958197418527564841065935213299042877357353623838673999258869961984511041888287522434169808558936428644367285737448465608648417722611715954363011607349851438951038295797595001150749496024328533002059830966545224083079974807429325500664776652636608520946072646170027411704339002778077143309474130695580205622073412748258275123896906740716575381387970989345197989879603089453962787540330910162595927589918221812810046857402479493155853122251952009325021310528473738095319793114648763431483395713075062546457901746158573014965766068886064566824557270077275625164208795776442376515496732758591608572765897918521335810836113692743199061331152157354850593339974669052889214973914007235059436261725811248726881771595476254423236755221941234588178304738018643872037306281380864423470166159201022366339015551087055118470687513616787333851833010831216752213827388593456597330230941173605717091232392897600373560799970772046719342393144643075459272483065334281975738005273017366314859007821517177313310085663329560683417189435305568551018067134688375384717996650963196540472201808582746424756569833860227801706212664039527736809731964732476791967101778936458472469946034174334145060873507122621909501381543471846601116101783150880759740723239976380522218245076157474946186056089889945727512110491081451285747899024999654219645497553378319714609184332591721026411482159904129228907646779583669597862180539043693098737735661632471878436955848877035066762229143226916842629064377293453234130518541634403468653181630524473775573688975388996571261232115557521840783444595263392526769051715598608133776851088319117888572316467547224077769342722232329737986614643214657107093489602840100233382185049203857541779623829833554064219622687044688788648929979215842015483313451184488082820427685458975715778868373149109999777855211245517958131283121301533600553321265799259684676835624490634979549879629328236377124153000938239496430692236362060121953772874425037268118424429962215595896267962901761473304970173515967480939781966877742656011880151936542939964532172792259592411415414674992129610822664239341595006453774789938848650588762470266744965753804002579084513537102784941210115567017604642741002801595767465935555088134925041171362681566692919410167801492611999392178455613288198681657519183421717215103304303967668048105879362754675020600401227184600513773530222958675412966704232795049760810448855859922075709559435662025892757390597366941014220949633585294514446718502683213409297379535689974787949829387416027037124397477825410044791201765759105377398116906249540731148080422710945246207866645299479542130298535133893881201690483212969438537878437627043719546376604870699570509204289237472318461698707833983705747167647613513768850870548586999843947547391696062169864778757591561176116737369331052605411138939393921089960634603366255616825168963883177815628446453420148079177952698163256177520397153042909879734922112987760277072621773600319977624487388403944085978091407090849559979106697056612914266735556379668762488438736665011202349439173905036573992026370050100976793316254241789989604208674236395983317481262045390110619579536175568727683720296192069063554654809232747192472246518841546838019078494776350056083139856843953077195657279780143252743819162484803863402710320302717213637305402594924647346844467807134919622652563844443014714224377177664009714925065445536666577440243670253658068367217022713312073757727359701677318410723047879859963332824270617119593591652257353660189923231510072660753772586351861754917999706074730843423354156843296491475163243578602362221965005098106191917300988285436247453053029891879874456354121917867225062610588495333256271574741605424526319464787439858883364257650690453875268642321622424551859249283349249247295372177697167363663425421213125566616426912633416258142541294515013810430878290087413784656064985993612119232591587895574475281164841566321927620653751862956210406503443192556725669150346701317465842157759807078854517283101066432279995098130419938886275055273365298760483293351130547603652332626198945566367597955348919030477110740551921776445866456727078219085228985802357759864889504908944763203196367439293872254765699499259971349126089356427025392923793629187606585251173703755199856221392746459189752200975209290522455440867587991214732107627962712546054651204915110288458923601560878008527710195937360542054527381966381412510858356576803110131765172398230763483708826792324912257955338692250430320552371415182580535222526056229693341533721582829991428516373185941584436108007626249257419247885691375308224792448701438046481137976107811044341850872491962819136721898750534066853291451548558574021210827135549246175044166692591561050563831191560186139828170683915875746008709994670734175402428915908654492968991114208041928387779933356028475493013944208529424605705861412340696456323098127830272090801281032699769192720504523484507231401931383263734411008718632161731015969773147184391633317952489681118418089303836442503983104064597424514870056924101452729108901419657173891909564374121853268012012317206428203116227109771606440487744898818825689849263009010341828239150320441175113207356296512971827208686330523359689769210541563287475509668902184750267118392829568155394016224087836868956012736712764927795928645338187430403067374838665856106406564572987079578453216895072569134181034737472423213803182900704026243353173580477586122286772617658388594160530762492773371206226341583149972588603920651245745077685283066381709992181273523855933609611498637832016702016101424905870138387230791357375866730732989461897694166976203954071512960731964689773481054101361493024905735082717044740456910153404617064852445670175844819198902840645191867810910373624408780351349033689639574751938041638055117740712683036851598586622371949143014900015705575113305402765449672170598309333811177016901169279848791480119406683137187606890902808379128428020344185002117868403905622390100915136280461025774553291481290911012953766520101587898641493095560830377992394542403258649972354502778228775788269738047226176441119837137042018525878772254333095249722316213621184275685359376450384195438687946479269940936105154821554757923951076274814489019442743576883675828943798390956264524683103306452891171362006485864679379636603374244738993972092413817541929782965337024257132746701352405804311878019752061605749582298534572276460523724723553069546367269245894070279797526529728745502178579045750650174354080994969467720288636679962683202040288533810088532869307834461669141753851005056737775909360492643948317439876009690276154863295139966421829123062726927708575618164822965964240876505188907286249122965132903865150176174459086784262013102826754852096978027248157204265723691910788460244709571481367153338729607118348677920966695017354448247926071322203329865424281933954974422795788513351169343873643363447598060058728774806553015023124348964074880907812276692028958707001392352596675046674931394336535328012327927555439406935467254350616445311533123538884863201897010246282743693393661815567121644917075653231167565993623547857341641734343588251181315217873778863766484591168155530945514006544624818926037127624674957721287856223511285939284783946130182888082986333402460774223149447450621109332750401759213866222448273471173780164038091914734586898915237662392778863175900057499908740297892150632542232220472590115574364897928967739818902908531915485919387716614226313349648814487220092083183716989852529415571264616758026886629029100137595253847362930409749564517058131886944504981101097339087095451216571069601386428034043308834558291436612170319947670021557677392189327094414789311022557529541238218787135637888874910249298630166804752998824377061533591149087053297792970867089454256263871017219916115813427180839500620987131703465367684529930493209652469169017090898986113614977349145522401429803689382188853341858816678559691266741978072797111157463067946486704628543314022455870604198783686304203798091041062684870479975989653665482227098472899519984313657438165490776547819963916619255881563731876024093653545123818594371770293153323689582263538829106881311778611557692980827990562099891074284300487319130979708917145983865028231021695461327920336058545352033593104435366275174516007654738630866225707186126380195972243692960891951152877325021826340619745475927219296559588532063798711301941161130152846544306816471627534196317092312928859038761867058223228413195393913615396967489459020024362891999304501145063094201509109653784818042274350173037200608976088655284844691814279681326326116384737729197638310569410816417616189277092266472340035897840836467367549691140573608781978515646599962868185309000329502034942745618178902444257676138706393711306657681188377809911636200165347194024936804147398805724766821016833025244119032941148923615411283474252935296373328976075756249880524597580344994927806142914521153938395635296690909042346870112108916566443599796988844530512764779839584975553465792817548325118476191946080810627384988610878139849662154963228186026671980550286192416859932130106536101617639222039986393670234193520126185301510618959674702303382948082598190177815093252933449739349879118862019474905931331426710782740413679896054911319456562351564882970566086698818693387063080331231684622231066123603772147415090901027058779308598862379152929173386672999542661404816338035260341283398365966139049160440653494852997978577738074270314494772279448258613361070682852012958934843381307297544682024215506350721275236941359913202375322099428906241834239471528321201673459571179517479756530047970697221591917512957550883037807403285266679033080913077508299537619195839808968396872771500769378206713561322361518032638699249478885315092202051789595508825781910382055917172937051864105851464420617007259972269915814267097020571162919149342509826629178850467454078254426350496697983058523570302832689105861966086890693375933444247201632017147579948996834645916639122296485446190800434822664008765184590369493938136273561376909350224100034398295764877153925639667315896250513894614452083618133848071126073753534721701937835400216912652207702569112203512242434806713512754833013093596064446485874644505625434130685950421179376023825593368834930395224394277613099518271539998692223877623835209083055943137852807625210944933518438405510843520365070026317119718220194084212145892720867802423660624772079345398988698104549694468455762006707564519064996416453896173415795611691417324957019985561859512793475468226814474986518665099416015871778068937006514962722826833017803089403573010982363239794441458087480987467189858071032397585412714615505256063358665711406458573988001254261028698038491732011617892695640221798001502671441583026721587176752646312635518575968461590206592825733711633046850848618751995540312746143303898642415760672164649258512906157248636277954165301858585888068987007122427890957027750079910139380313395272819767565496951676774308796657280730182255060100789348278672653750583408806250667739184343745412923873959136390161940642437744110256685464213338054364293797865408141434673140435800751169571001318533161889135253024420230179689416822861949355302061299991501990697938836774390326666494865150288274410243786254561211025123043586053766771667118526843731242876083164123893143214375089214984936621220897594926674047431886424849344572134162089959589908974149455752036075954685992000206978891004078522475358693941792350984978175014015216837503643531559531107527250738990069096703026441206539176141919598041123539700398723798305467777118676149982984623273441845354734202861065087348075319100578739345321664395984753495569000322821459359620014976834771668572904778754368242501609086162949078364545170992897183381853027529678490602589750978409754421606480538713533236616144059473653087075151531101400647520289691599999599671701940546393874227254953921485728272427056410848637785123072175910833128158387001061039494404499353080419536571806487490995930471608248208855486028935835958568901105158934805878288501420847192314090642944653205677528218439781142537782450328085149223779885687401442215359666593374877755469882838349356931654488485191358125104186277381868958710041016993328985354095375289819477015801169315418804242214596450522642989857550467904828066695569585454661561371714741831898542165912861466095350308019530131454039589224295011835091412128533796399971197168308197862200326004578706617608613603455585990676518671137576460612428112857136507381679546274571646730870998938590175746059970158380448216496977146640180516442555277404529966253780233244644554114809384078222965349843989261340341097172040003229606304669745482923767652543050224809981203336574815736714583173318103790075862343288904487212997749804486776250952243511809090044781569301937168612796526490805408169459034334403239349982560894712139584331699337170944702108801880200510335244491637077692547936909164600263686967732590324931250282920529607471516874376664825068401731327410349105870081875847838131281996351223771413594020785380530677614639761305307649717918366905452252876913805105831928710756148927606460997828315193095891025272186235210416816938106863140145421203695832340655361456425358543575814856077135633159299564283627027551946992794860260095585413469349285088782724011005198636167750530318323615332819161319697617649491738620461639264667792885620901908284334985153061851671289679936399367411415833195413499321963716610670400778442133794520586505795975671763301391097235390011506384290373747547367668345004726864680706185743042484745325286409016476271397239161292133162923393539240666525434208458757813138602451348473779097230157961697162424152560497685379209091199333789552278756783027284651358951962744813955053098316620208261770325690912701351187264259024521163955305359346002243654669936364800596345460816680492885783473249939585557810347712354576726332597763860676194913503299674052097237529625479664089073105525659244721388482053756490205161374641450964660376762210912992726527654908089274514913181002921248319676412355400732327088863511983779265535167143878441438758829441588663363776355555842880753972120752274091035794525826431376744513943392540399490343176826786981907705297530006189372696396908023505827008759206848472103471444897273882232401943545277407862658949865865357632083411142249490746109520193862288685334716632580533422909464113708803867370061509829035449505858433250441932240118422304934727350372022577643285661343915646207037269460717040138505948765324856406203574179171436981309471696677356705439374470396489055581565612114363777054710797302492888853204624998333475333425136216600728610304192534785486812141562021415742910023728235009783391395446547166801250163292766620790077912078334401669326097281107730829707155533767933707866746836069671204123629510519464190517014458345135825954597255299807889259622084627888141268302841006173132364500318731148657132357274362941285770160263878567460818585205453697369976238513823778254878815359226466635558442594131261959332693573289281287227299035869611641559653609728519784573837706886317282403427411516689118552705765866458099034050913710295941907539270427283907576026416758747531140862447715419156458551867429513638588156880446898906362660477285383472485230646853393380773492520428388573904592446939501022160632043529236570152398963101740688089591501111986619875206335579514979226807996967999635026330023700127029376343258167087275089507653988599454193696224240426772947823509153082457895355463918901987683354783533377613799054950873403115239832517116377682035755950629664772202868130990387320370922012821572896084322161580085120340508090925810818627023245734608158451515934647766393012434259230675374321116375543402629857258594641931855182568414118503987404952009910989431189184755893292977368713389234193875901057051804163342922189542306821371051286398428363507538094622307680114307067211635585548345883856153708261591735286293789589054282308712242118377605613957791004733427622157373197054965422205657914020298651769751663697469735310980154363868627264577143945089901134255746916858161332589949791870547796072651454728651882887130328537387584681682446019246762713512931493137498385269712570195395199491057346377851565531595927904218413974952028776069306981687072775914917749901656900850250725907247277660831316761487673939004226807603254032566413788257044101874293053939232936782462036186906324768805052461440094184404047953971351872587736189917432894404194765186962496528689089354111645118763493052346024714254775780942043251276462731276865953104806683503747371210141154407394630611493773339054488584669704885250708305704464158794993792306689107118888759507770992181791659686138883007791553394980013159663631204738661991932451616595532956579600800728862962706671571010285852964983675893392514987374882911214431209751050550210257521549053991592888882141418928287849724067872005336941164481591138912888411349857270150247736591453255438308785692891704629203183539862383650187652922114633119117641111938746707980353262499498413781064198431108353354590345432556244450684076225933307346527702388210768175532593954784579434936289966948487094423925671651949778838012668328712016224698404762934580431698507348098616072326054415218147529592582395125082490752358682370528920554540790754339591235284816316605738478413199085886684326488734957759124805036877718849249682376312772714565255186965279330269547979521171561315814207051236971905317847396957859226921240873946817673316531605149362444823501559578410572940576765715433989592198373255669868025166426189637888949541840697814248629271667881328305719726398349000946658724138297651843110243392770948106807472408916187616693448659257776180358317003026837768412269098527115129320065748814934932972581994856740022740251947103363963568578390171899711147421859210085933014185876730261487456377776124559045114080634224155608115356479258700992410411710016750566288855211834705864856111676472373984294231496275779606117919217774072053285431782576380733622386913573414930758090602766711600518658546417685257286692467072914488106149441279711438910943049201215281872226047817186422233140057796712583266256837010098285058134650193248402372582678017970754724457749836801718336443526341584994312426660118050146351256778566003090282364175238355239584611844445450615140166511515283507378670870422850110147392198673919436540894375461951279311664924022109991229502497006562379168292437000597251168299581581736050999717058576302036917309974518214427692945390777631185331111071221166614581906722542420029004225344157680762989426478923869487752709864082723697409742170731851766775516619472936670211977187574641199275122240711244590963026400748970404242989587001490360589787919017866738132393473804364966361062078336725408300312099587199354307896040236040408393497224205771157402407271679619380478115015333101315524260142504813970600904148509891177492812255739690790298704757745658247553432561124055924815111922289494575563842801619973632805472704969417458537509041219464013256879404908491691079864889318844081590225976972820559203165596941427524788115247342924044008387387782244561233630905861957221520210932605090492086035380378274899503981905909026155476770471408603449661225381859794531496289364650302456258616517738132976764651989368226004420010562414845267223909660394845134205491617196184300061868372660614792937840569111773688047099864449213467304379032014150251068185807503203313804858371188774494743601049749673953027277524113860172970949396819628669410014248117083218320726999158013729592016810403626847377361754055762087526118508547456647154674815864003093840596752294041780561305792597843502831824550290188176155354735618991492552564017995098818798186674132031031749325507747794885208795194031807676842982610819881026520940456855947426865387438838048408983433215408146750215595039130933751609888406928198064105368223157451987703228184314458801242117665314834793258795367450880530905568559903559305788472864712821471362128230761152392502939190021598184255779670459722387531114935023211790847228099845710472718476554451637436043833320036901666976435731766664769204665934529653102515459447758643824022134580224732864554641383077959062098807661237309416411594682009706970020445563482518822888363173688465589984194190378898676282810889134809031748357968484534203535979024148590473541630782293124896742830386665575847776314406533821100888889574109703733282261400312546561106709453271185617881613161619550745773741856901371769429436471947181222988356331356144468172936335944375274999721894954566554560190758732235155577813267841763169413290687500478737649803170265641309459073518807283350790872454520973841024265455369862943450754222375831570103552747900328964605504889269154158434576003666913996530963219910264645596456945595323225896857756242861295558313581591638745912232621625115390093875101953742199239992089729952180017168535994258229920194874085786200159276636384034092614885994930655598847089012481389315651390018522807860808763307171944020997937578712418508853288226739145293237994108850196053719126124700690412629478052025563625980973465423340454822232969775510579692265266513589840783606311560863171150037053166344218762568047286022183325072732435309923326640018098983162715669193602813561284823405938319585127817335389893577927072677260553214876710653106162710551378318847767871631223337263702390689252685224553497653270394494075918605100778120785407706258009580366043809095218241394013572329905075485731099646275291806896897693168071791956523739344678531053614062765343029747568112662663316665614499343503032236435738100600770052621302291266899133321768173890672832535855196421149052117974302206000256809457682395671056490079592204308059162566739910854784052060056494564805198200610488852354400135292944864366278652715119858014039468007868200582090312393792454610137956298701083513607514986463037093592905885733112762260356941038295215982728002621812674577912438913671988379750119349891977334203976625565140504867451047181945663916629206053443467179458202669331083616938365993524966261834900837064010041823083981479888160020033190716123346293256262893742302659229641785576704375478044667655884209795749684342321201367276430364567041667660856035124307126757137890990494401552456625915613240360626279971303024393994695827725809276917025957614330706857861335914547923125175550643951176027816523735422370858355064988340300573528508570838275331192304969832947386346499717455981812007951656797755427540815985283643540921060018650673345986584711373315603181023004229822082478047194997583615794520764315481749816218768615714110727098124911388160524661495493952233579288079239104031234969433454804996810752233492352163748738057175424530647821585313013268168158781680578831868016247172183184164088161726591878437785131932157811610202071375206284704119917334378960269274936326176272110311667184545803993076127697824525587662078412753471528740735349595057533875845411628386986093077078475330701204514721377190727458174658752356305232034160976919786314700246868929860502959312182192390137631620094446541269134942848029825354666295160136404720563862916560424825467167059896977552579236987136421100745086177223310353161894850400409723675514346082436173896014208500124534806078770656206465216727755472869212373898899587863099721552306151932529053665806163493601255112570467649847003861223636776615948893348444895090986343610669207854035295731633555083447037965141568024703740410657227398504129382556807165399754367171315732159466068441828794061016114736904554093107555621505428151167252542674084756998691140770866386574305051257205457522858706102566412111455078588781995477217909859656504433632297626363410437040496527250954932660046785341050251593352516070018327364537201034755772124023849426327728058995906136949053705997400248876499431725545536957853303169707958804990331275526874232639960020101453945257950687211777013355471791252271325881590699854588491334424816457359227450527979589813274604040991480108671753417252694596836414755299438973670001049351601511687152910292014667036844185969645855070085300519946409809189840115008810788681347510508297836003421775825444160420238735042564215691774541565444535063952773625428768848958112366739903299303061402697517666962392973731974313298881804979817230689172825056676382148382868844011437089439798186939370753549328589559827813217535288652010150752136453495179713771707240615142126818832677055256704722004164116231914098383137274455704310423529393324252836950267407679378187813354035547420850082341635159210876722146618820056343046271707384029020632396425816146123527389052629507760879732164671118542174901894389945461620234361425765511283628904906537637684975191431560110305859309198358170294408600214946399290800360531690388936970625753567376484903412962414733405026097953614453271286241230606349408345039393836444373986999382867808767825176791787700794844121854031266943707802504457203142569667604704674069207451139135348300045895544160539599719201603712734188642036264808312480732722464055294090726222830446455847755360558581081044749013785881545555219347469383903097565614334378524010107507772634751380832246139574140874717561270485301592583697829999908061214460376540850562014205388716540649628147459924994820185598496162959796912212078447095007338250461333866818092160065999503060118224617944399757011723133072691875076019885305687851091310565397177766399937143636201867102594093508646610890740959902208516126568489670292835068551532773538862447166227900347741065433727764459209677142917155289587373448275053721730959101657791254406748855209478758943198701698514688476167418967789742369668514580849732659948053069982693412477592887719243088285197823386871967777732583003364930964091338285586218658830726732281405202192049976578952394258940129346804960883360381675826535670899280607032802188553296692697165232587089783153466653809584598505824003780857787355299933857367522358015175819454551302195787216792963727682411966219541343315466098296716417711580847551120003164322819316483923830627503404465098682861712016682071121529564119797869085672799380877169355606404327179055778148000347764002143128399327178903577431790056958394052264026904170417941809402022474050539113754846332578855929784871809591326557877182240590606033486839042953369827961212519678800189761651391971409913132588702259257902976271335057097247470495941078108710927418522806335871279781468239575044540874638739152159989612058818207116630916929254358626170030451210232219758927213611679435332322554831187949901135946544217641772040216113618794161459212450545282690508569927378363332617704207051658152042763520248509835077024251237544490539056062447228572295856765659405330987416221311755685718139482306033968368914555541757134282189472836785728676881045375882284795449499242641994211627505379798293813638248340056635748551952206719053403261090955603081216677361474379757514928376449228684322847054833303848521418006319215114509918580188511362066361326692139631130845022435011366551752148005919598403648598458815915351770789267296928233200784563984339657344530509647965208682705776115346890920840531219705779553317346161054624480491680833101578954203895293939790689473313672733600981362827920535202006722476918049911140130658657495093533215407421164567085015001438269056738300179888095255718769817584455753467635370732372531811744094058011023595756867260220117815516415493930269041051515694279599092040195528181961396460218737949276834259918976932636284627111602587769289172201547904216531046024473034835845357149567624194880276055848486302061021753824328562093290318510649643077051511733312692438369388821073695039373000491547740906027072601909447342839054169505979808982402235455132484461483506749909985373425941273589188398568043382834428993976940191400722350491620822772357064973873287300946152956106827669782573010138479275964559417549751825462834429127126103570558311549856461250204983367751662495629673273118972466413112863324572366004299097972915622539784891857444903664762709860063199753394225090361556734892587754664732527909908982228907108850555013891134702977368604070997029376624499746655567981085520443317687877013063122692394179656528352598490441114370432045444234871879529694972760277412747231875112092468045688728506455190325593436005977458792353237074428689624905843778599540037965833029346631862118557376234118456796837950762868093630266156822093846609496579551719880424334013031972232840635589595736888505412809503727276972050670767202413947757561359600846797610356519549815337773489722704564557554976735916096257879140095911099187774822073856279726918757324939968145491579307565164796112714552748567483708909373965810627810211246262137346143348918468751982664297325944115839627347503294889596746395041705881637244494152457560718878137057681135491223889647818561788996618161464756855682406197242108938176872504847223952271079110202704109089966778578358705203453114846579186477017928609170360709410525890700362374326677996801175177630019893560763098877856579719741861101055692674718968139464142890594543686326483883340343547178816092570851743240358505841470578765611383563851742034328579031735198652157193943932990575854773850033025762789568351629310753257064414400838052038066262800400707499833607894279208936603087225121837559497717495470839691064206182972977151388855127383879816323863266494982261605892361226392925100166699296280785519856691277698413596002205656989050266280789896602356933454392029121480882022916007495031675835059033622991524861943122548210483095981135945803539985233676440659812634880507853084130603619250415151111511823268959284899425080975845526294933581061484409907321432625905944629441341254052379901587060675355434714131467664458668788444552497075091892043937474301633161299351392717140433525841436120573505195986279377342324187060784550882510015571340267896462328553606211343833567679181681006513362768507390017170647400773693496637413500436208886234741537865491463882725279119648625833386024675284975851998474124365896735179365331592422118706505263622799635332971238547065489807685673913458921900929669268347412245895841514102479606719167725688644564907259110428255619119556693744174798350394394646347647175122491073383076346461548081689616279644359965574810619290130288328183122257666603925257259178137624243739147270098977853134369178960718031286904202238646922838149727133824570428073939065969479277085271746902515861443577736191654231234129851928398187902667320754594761939282115525260251475190738912292766803971357421403813686612366287457462307331316847696369935490597942787315782370836940885844659310839177703062283971131078406811878906681104907809537397811944096684424727654787644501751949930576564010153729288637208166890842066963275473919776972460570819203183372855697274456502396084505547568488342364159008023014727285491152359397343407580823680596594754416741403877095747492093482452928900557937507437069223090006901082700765946698717523585383659270641303136219174869813732834394927108375087705675634848935697664809105028633809087000925711515013731597753074852108980724959058204872751260450191765259374401543459656543954777397526150972951672040902332826211967558773319924412131638746417196128083935211173437421986543376663151036752021142727398455249753794358206981813486708181973806940899212651281802290670568235346832536704549459693160177498095527042473450229540761595962934421464320011725113132689134060376354354637142323791469464061125501326417761643716526631586404878437303598950260442463157126199825819351878044188600077238131109240382290170255618706259766308342692404981555135875832242872037342685866521088452439883207992639791120131094622201302241681084058330791755366289608542860784993863959488608237309399432794944514832651983522250167008738645739866907604686928417886652071345308881465859401881876423334549677282033411540873542630927996098359553475313341204114011879638429874150707888403461855943723731611437986215502387357872526718994909323127463722365142060587626122544046980093636797827910490983182161118911304283800483039990121548477087254403994047842635574767646022713678167093208362437589150929720651931747577336748320883766267233936416533617238714021773515139427910444883335322536990356055772209360267320218163943096993752641941885660569841516744436688360727907270184357190653691696907381948006402636207124002092034775694078701793498562517662138668096833689227931477341694252915206455968395877144938633189739023820411384098199089538366895627519723148803207061427451064534825028283005429168225621252171245358191155870571314855791021714354157549884290945298240751426520874484287282373236432010443624724013897366234371119247303854099010868041296402379581718029503018564219941600727489724019012532234846468724408206660462286924111976761158717424207057523664932893072399700376961279075404448839078067936489936332796234803110702517530359317921372159115131643619519796356881253160206088420854846816808807835979017977783176918696312101892205424337635204472508880066360620109050283679881725291135332311650076484500596251133719206217818502585894924555694981550703827949920168135047431117896702617649654389816087862799564607885611136954759124477435574817569497276166068302571498781483705497890735921752493669395704351302537098586071809051818995687372471157929223137872410431132955371887627348825406355500030786225161757758757229938928682198500726120480969389028687627819484903305500469571137080463566490103632911155206935403412834665590838654042745682746925396216410239676990167828561002738864992111237107827692521337668071264846535296173111964081172499399232201778544757333845482659133592882854431660282692804443408083486097049509595591388893550076153818587909493597843254205160367907586868929998814214300112292714234980174797272822223753283492289592340538753506913739963066211334564814110552089538185808868824729816097395868223763746499598286374335120733468520308682523499387031043693156757054782730038339117678751852043722919458458634222719650912227331431400132051607251781986790106577632278111307733808645983166881483582501711964580574631851738679350310822944299147928433269197591664788406674227548404299024157598859743716672216858514628966698726114527383757289846977509945477240509229695941072511790626380492938752186484699650248256106720244112132353247189060312249522327809401385297015355481807011969939010318733535175391691946472846710632961344093507072305075746245098235087173980880237353742068220883663652518857701599735515699986543050081339487747541979218340030338957045199127429160364746048480355267504561304674441614557247728191440295293629092601548910500766416728760130118448920712860264108694166743572879043166772533030971612964020931922259830769877580260008642621748146023760080318700966086883264138561731849042008415625061764842729962249063405944484487545406540023496757802362583298816216593552151476221928153004854364490726511856500558899806718476305295085073637989984757362618650955224169577924799082523882041021014666307519112178050648716644278547267406393795482573442959353889791512511460747735262185283787319357665087590192015582861854338576805392968947181034442085877086782153393420590326373692794982015871783674051520165907060854690333345685668649015800292777802963008402001393722409154635748152619041310327575559412567721882618451007093984926678185544261558692432528948603370312203684173427978470077384322937370833325856956526038509704956421228691189322950283639100753818773581140588721077491047833380382179863088101602253427299406441017497747424103983461264711979444692937352074737375010323880361109825564110747596617029175936414244553625047850115002789582611637810572867800028419169475581024587930672815600814514991243262626259211718094852977864238055406895114995375791436943199676776692479410046831223127718196617517281695825653925292969584491083555928881368338965018209667734180653161551087117947518864858479456381476481253915550069946033666372314590889648506933690124010437657619359895078499447384449031922114298704132244325447898534833441704864733815962125586281386237563754966889559427530572139872205651267900522905359576452675309368172779007231336015160263901228814499384022134266837933044482574001422061781039306711316320914721221610312160603049426173306834319479398904090702326620824773738566911329691401942282104234299272332575025938685052471892943823987280040678659467411497360872872134143045694655931466288338079730145821327166900914272735648430397767597270895853796937752022554746176583905056052223970723432432920552923476455717280609926056426142026797272398884165765565088297049638567719544981974132225460628795635506161304511935891675684842805326735944084054427771185636668653136798119622072022763416070130375965181382160527289418771161559954923209532340930778993375381842860990878331823926245607029185713047916901492720088445313647162739305904773804495246884602764869115442656688691286298326053429877671702596910887470316103744952345316916419412720176206846965606544083147336052480978980478616754809824293836983627334345947223162782784140018648326752171993524469482559799186734874353748345599615869908340626710936651532789711274969520645245543867383053945963478985789800018941786507125138148273956006163028415482464188625253745482968544521861658359309512299061512556075110609230808825484019177926966902923141803517932978341113858674082582741459751110574926854325428723879396379441797261674912506017810524325062389940911863004703643574899619648866020457708542093415598291367321567622275806578887473841476787091983511051765572159700169643773139931506128703510005585325341722556000220368482239542344750418035717267611674716849284510401300516622098984191537657325624639814623466592752341438436506028190915454800091268947785205185877800256411827455193625664272059226715922604010277412437367842758559513431158278799884177225915931358924089609367737962807408360427741535937942091306908167976003666091091243732948176892922467834614060411837610907936074895527622257915018890470741885057804666373457094788884904232139480622053278994043581830656947061231991895019754857151511563129832774972443014762872529761311381121485880451951814059685400774270018042212604471669385229349992121424525873942149355565243920129139410436082506221326916133365490671551926419397839427807085656920178749851298924856877508114371608762308395765104031662281517133962069368324323996509919609889864096948963821556452489500573110549146500936131315770774288175854238590830642131199319165293346014931015660827944105068299906443594076982008213097889820439156084003754920695897482624008093771091460229686346127585928293965030432023518172097464779009196396909453727465159010288342602517955053697104499255118516126257232464834258320625692219981527912503281153322433124783041870891305760384835122848747365186997855857104053228591810834812401037136450892686424301794358692645700852612345106565022352077731822363071724336794302407271164620976679742182495007529199600925299761982933792726062136222837531019165507537352850650170307226068671174791558461727290670720694259001378737206883484514947108619368127781302175685265396952487030080951564898048282001583959965454538550196149017184751028817597582092725934073998223476402427420914026954756460291812970651738830685757154985889655464613377930607774363874070078244354194999557442305759493402655880962315341637743016902397293016974653156050550788602371099704691153115249623025741260985836214847006378718449168004485030570346928572016920973802732528820069718812270016396113959214083281400441255231335588395464846322947637414058638685464867080880069797641050159223255821287665015961518795474028051682173612474534325873196097721604817041071117096581778301271269330862511887876220849288388817779836953785060084840288959958704867845538204746473179841203454784440244630861707475784737489369695300186157287962638146933923174454953317637184844320798433622657223361446534039185284528161003549811534140741343237524223630570546730078833399222622979016599425111184203871388045759267344979234550271956271846832488869382055045998070667830259066473900534613856850499115197255192034685442932907682218753224868180439426094848113967839268795723050883137008253006911484432532145566327980143902559023304995346049108765222362354911971131230200981939962983682841160253779195529579348025746863955748103990933670273619585435066505380266277819691911501737764238590988582913211191737953278676616969969526021180338380970444676185806767548435863762445684208388670773853418326774746280468328466790774697544021239179046310708940813378949489345778156856677170301522368434159217031148746027477445428282321727071823849126102762547818138236816554860804584973605076466444474236602657847988268537645023771131797374004457465405061663762979459640880142202553355246508513650030888454252484116546236672924668357549781160150456731345654554317231590137866836631105793710018085338452634720016591974911185066791860155596976745878714185099893243703653324055448141820482271970730081968881204556520594011571177574122489475945583323194907020310350438916971535680176472313859417849311496260242650766606598262175460881447316179408080712168597962605251184230144367735946299623388098638937964418175543811637193107935760143618328742659605461425400091944311682793775051346929156363401713474446377952021399881139932189094742804373975218582643047257668486475552511748563474229291471577669710017708168502602481162683291756339324067896732912533997047492943803156047331682416577579915571609761137128942471974942247091562671175078960383078515504658157856892958011957782362128058966200698734720354972884872490099541597112954582962083626413495837637174942995275213769529310315566725967579729800315735512717103110769666444870569309612168434967710747031337955707092972305900418112541176264307594695547805077724581452511163769654149664932657846732582134356979467574707178767618677708543678798700318833753197099677092681237237228780243472954677098719577979704054633176137141526838919290351272864586161269612778600371355944119952760557256991130316685299565583550978131934495244630003817469459895749131272547264502109645399589031527620319611719227393653748290907184458235042707886914448818323353982693604035883231291997131036264814914745332266184736466505297588132609702839839042871404873584154092319648493616152562531224913839865596326389069981508032374568106838924587839009370101896678433323830191648365644704268613828889438778507560815019855871314700243967785598139536019996045254751534860097579812419304154771305805820468266260223700910491508342206156634988724231623856288273513679404948277060699646122655775968778664424059794276512681353739882293259837461436045696480966123642924077344343185469570144107639005203991578793356640651670257769895377374309187475091179005886503659876121681655744130502364378381753190446061833509946966306662442498276233174459895201565831999631296941583351241138049271853392024452328209634063207201406892237632309621740463740135433232343873242185142848560719092662791135943333117602295226200886211733387450964612407070582629883543806264385621451920154125893417486739952793536321698210761025327923377835123930913415410691777906313601875216401819414042115936413831861128929992575947896290312060806033744546748325305428417221409612665142947760733431181833175790335672841929849753439357047042615398517733680487672384147217545945767723812848196814974977845657140677331967620310229761382094774293128104067227875369194892485843787000097243030329417166998366399125120837976907280285296242553239882459917966023817797884407658786244332642861947199016040674166377049736486531864114837766204858144112466708036303803491003100568330809618990444847806398656134768505636020182507225716582588318658062894715694751982208855842241834614863549486998676302522955917353249756893115561505834956570972569090289177138737368515836003332640260627183360856313119481330093739531817708493845053022695700052461902561733203657350935198730593175308894254168751368318219909892205980558657414896291286099089495857790833476938228977849472168937851685490707784002177769096030127488679015545294433491059419315391068196740694499626531244930189762227510954775706817089413555167737824293007777172661299092453734741064417063021729996890707719201989423253824537991947580187545934593963604282304866299507433811731386311255009272624445455897589082821494396739119041952174807137131979091659357611501343415309125878616361346271892537838216739837661148176689251535045045931774020118551078244953056631328649064432768616820146244899670890013401430136554407729146846708069515379239739025256090320224520819086914194616645801653048754473750338456286573593162512252999226878952459297408507303341567161347357960622056964676187156566086556455192367229246801193437667956605429917730335719424343090060018041018335370703970117196705733451864505734295801715588880574074164740070783163249965249819421485771005539449642094917216967468540932956586323140430665880018015036305654267405160240253109981947966443112080811498814079244434183255469150863709118679810396355082289676397594934093245828435206617753410721769630860149332619487344451135855137083413185350738464456977593456709951879188644329237679237533082339894200632615517756195943219116141117285262149041655760529191691165199187126191795342080138994063881644338361004187853361543051500804750235380294810209070412956849946995978242189291805772411910659785296042080941606734591940964725246211379334483824660739449903116120902697407779407886159610922809169447427987453881390405203728003646688111148045433928957077135033341354212382638408108839637799045299256927201421677694257084519645377102662418624526076284481197707383262741961599111419994789133503038682701092105454852467021706947906572861085145000001613895830985016817374777972747481151255932558470095065834577608848123085127971126971143570736749303286095363369729450677580583958847482580551010536785467456082915098051089892858025789804128435183095981349519780929199972234637651517639720271601188531178481063259553350779911207405637788214891628040101810204094774632267662603623732568388407987235676706179461063589775766316981973882359882069975214909950647463195752305720564047889735659560578264595298740078315319430569899027980069109841068043011577750236972978741867706646260980290098834070439164218391056398046022480129800392169689470619612824028076561292273557655597826049970361689279541568349841102106215106920603034214474722937319712090470574801140399209160140989872438936196650118718145374508289042573869753729556304795426203841472831442261441770584023168500697143197924265242861373953675471041134541655574448741796890946284737093823844940789647897486058578984839085514643509301945731873276411552603172906963022590020646716644854232016613894442449853009165236555473446466137547276832858288206451161758087961295408559350928725286816228709159171617321860487760823293547101670229616081927891293683451998308395886796260220142344756605415896583220314525573458465902811805208761004157955353872141923880206108250345424891812708900860966986725091920618612746183570286810442271099683651505130596837939996519977698560262475464813102234037350046508701485377905549103185654309849026781082291454617663834358930626358609696250030911081865560296712354211083694327994748293049786881265844001143642527140204979614467289318771282176492092460096612068607226157633723284479823339049319486190679415866981011071445082738596415715164475388438235427409236442542590256678905279871221173817000766081589597966149358356251251054664148885406107845494061482058608060497199519874348747937060861249412635619154866152473347804314770974105496525952242538888824100940231839611824411536968305312362910730415128647894328088890620417741156842431560745754360224955108883178077716736697872770094852708455946913957287866557197912373847778078586435221624617318902316943270929386907929124578321625989532890238428794495789017793837602043823293325953716598430087947762434159405690092016518481883291876144423282421821211363884600260711147614187610526946806093065502939387482925940205617995566804371265331370540318530395577679577264361061454017114815943231412535380956872145750670990957771017143702152891728378874631416456659126740012026902769607471625891170575427836635380548668349647031349729463140439520034616782875664731147291185921163956710795689119674831839151704438655558574090481083005526037328749906390816272921678474600041982163757481194647379220895293949505017391238956975609326751674988932991656669629568973130399561875959195545821395849939265346279995686291682183577901639615392026055112622085206709735849217329060536622443174667082420256179053329497681661536139817857181306170913147032894367191650332392481490305155654951414661761207820312756187831201059403766116807195020072382105147604787444497377562482025863059043787876890419215719145231729547400021182147065999745610645892460394385602747286423975867107854743393421135278180400144749921148977368417755456329679764175738610090025894373957078594740127019326765007773618864131198392003937436974415562716638499919182434071569240562047593004243025706350690944286482879979171358463013510961415518663241633426469081913473901629373660921722582014507404599901505413486271040141673121505350199137999111427403102302005601361132275338511812763253700472087554139159178671865420491737365935212280138280810697723891662872898116840917648934400378674607833372786825269349100839472391387805705244341795641786914521995021131405128547026101759051329197257930366005415538528079543695310911274278748627600702621260670877378512745176064739304835321180735441786828297916562158370811931569577038876960526519965689232734444943381175555508524518857447986448912932193169822824819457657546734691345077355404654139523620400102138116489147199769322127538169374619059903313497216997220303826375015754443342633487884556986646781589611382168403945188426051639665557163092137626069433383162339728944980632198454874267863140188094556816776873261936191761913954385098891759566230011187340245209430856840599896716479307990146065993464883646784207986222105082214721592076373056406448792856795913466643493590844608407077272158658557496815836503525501359060863099948823107404925998223978622833172345791105443981362333978719077094975072230447846495730120605156616290010436746653523308530528470245260455282831320721084014136745919297500169867625523395113491360869185632950267846306372567149191188417385063264669849984692322326572690760841357068589521049379364684261847307043074159190353518543237678445395516342166573845388858002833281777323151075083261121451242009752313258019223177462538443909213317537633124334626558558582072184812491234885783286501574590737156426487738034502635545820589068229016284622682573711860287934976126548580752612815700643530499595833359512706124745193892201481220697234268472044233849186413241102546076916915410117422984486177769296718023181063854987414919480579295322314001163486084859600291545101040922542677798343018933404682134756488628075054078065523549801607944762526436954184554570718152602525710271230758671514681489199432336000899434125151189175550112480626599536333940597448176603966742567981134388368991491631314508619289082319850378938412892043100294905699307327398715827208255681040024426047428083621421860881370869306782088800008288723210935843555948492648679935341437273966325621878846381921028426394391172014995539245871263444207750938619607749155262432282335294506427248007959524016314004877067409944443297817296562887540186234475954626227546304947262924835948620644527327016820274298932767123360572663682143189202723803625241859429762924645883791485011106028242711290952073899291095365617118675272197665481272947997737341044593267339661372887733736582419306522702707476083581117973159440895501476229272642712732382502279771657557195900866192911786852271344271855940404862735279429490375580559459136954428715165789015526935705962521948724308795834126599072086357971862763976806741747727880883211871193479403632341897126392126138473396005270225261905607092694571266266624632630572206496865016033928229769294238738002510439599482929983937391891712792899939661359161259425661245641122048688340451636627101245699094531962248566566393926005523067582025627797079175561053118282654432940228947821240233900598542666808683359327970287433407107878594949260430267527551688554879610992818420782009877998895089008151310306771041125789456073842034483030669108688307469894291836612839838881660608140421933736458075142488049809750217063100246851223661310209103023481084571667895235330694368394355483151285618357577054897075409224258358646536743869268301961287579706171498858334569754345926486062123933776311244393400518939921111127208740250779392886825407735414323582103301175825571409687618673424500492442859116765651727279193084334064998043376471334535464859508182023007411518836400340503470313009113088956705014582938726057142211310777588020734728558424194085450010790296186131658407823173845685771431971100599502474865280168549584414215341076698129654500757210162657466033467164066217243379068188442465683495950220460023263459269519793869543477554112700303858361639995031772376412568746044384560164644439128128125366347339688781670901021163008550205845835446405100030912588000727669104316693768311441953632494045719006547328188706777044129825828873362642028479270171331089617163074749534643783838180665211917388584699147259116370774095271798961936451548431490401557539075175831795319978710786761322065514161688832379787109862374916214510516730044594304000724807678580768541053063492800240709821523976627863991768668964692825209803576625389389205160241474532636790351839744404723633027917208673948606610426711891745071108024214751913876204480064689468602574909570720435422836536021743166473986194997296636038065835314901873645022646625009872268893741146085057987884712995352394837062174020689793612365963694939310621355398150846342487732069404792460527531514545634203324818175394097031940379793358238393356338034672325205704661915570018392394808164674357998098495733475916798281418888210902715775420494915220632742642298849524983466742128887483037185011008021536554313333839736723126445764087863223623352425689438070248098889139947186604451814492428345007841019915770381392345017380830693102284936362370605047117025628596744370715873523378503906413570276721236728817492623132395650949969955389542452259729245336406848364121574235954381006789982953411463863283323518737407663166667630310471305070530405879066631528497545315048247545984564240284521518358353476136947123754919974548754985186828720973066464242533087860778302880549215478090733886875517990492322893745264306420654786590064883412947041743654391926079544557717625143893458136795925959077710024599380272320319269234362354340064523606966768781949831340863933976305838518729069590364420929594949278439944854030338762184457692344824390389531009953434404222893192288426991223182920494328218478176752120546500878341962292603545080027556318689044629440648114084358918970722339541253012495617726581902803191107161869673401326876825812305003889267471468075474574339100350037335485444934418709300346733827007009701133619254114207196164425678996328799612074486252307115045977107933117511557506405712822462208257167178711860831602974124308310188121507416790601806721527399916200352261001118818403572444860880357851578593367494413467066565100094617745024093631646186841642787839873577608047517920054010252878109869692291093992933778695047664788800806950952071785598059950541963903251700472887552961046653227545052028914098808764139595723520882901168533386455028397665986942746774254938259004112352464889294198883094666643648651633054181625820788388697756475943598317133720565629714593489348768074241875186288770835988030705181073193530944261526795733752521269172770468197578829183745525645880324632516152150352192690857790631848397804034825457321938658909399860433431000785541023970523112144845818222926101079487518268112389178812905550566181754296162275586325175888518460532633575548434221916750927313246900258953459963302869580084299657557247272721452439679959171324079494718968771001365821738630460147684590260000273509610315545324046358766803563136853276493664218359845371981851507961670645954652390835214805550820283760554731254657666064763223883888778361545969170552663700736860818588857182950726172858625078209436767013909793446611989513076108503704476902085036464800642940816400958729952616912612934477710602209117406868574184291308193383790922162438323041013746475679642185654789589327484103807296162733155283977744757425680003857551099792584990114947981705153551102985690211643677038132642553946032174986190849464163976390734692741704961302293376012245503503306372675005852632798455572797253688981098545918693998517603847884348170253160995994829989141821534093861915891367603269926184218835408342302731516802526597843228342874498836874356044381169572100240778707670233835189684406134622275668441882275795104517929707579578041788478708182375180806859030131737660050056566761818564772450916885556901887110884178903898727136532024992907247079261851689243376249499855990605011001729288096800656983165265725066818562674626147759780906523935138950360850949360399329028685607296970719309461411931491165221378348586038204670971337140688653202391628436781085074803838058889284168862268758145162342883902281151931221076143254822183938771504192241246871215792395806651845019763422728839504648599696700757821851227619087475554532290660899310035577442301570769648764288215696777763263726400534546704460651340535324659131104349745633706644841969984644581607579059235776650878944258762363415728003832417772327109888386298146470921929312781605287473972241100592048409147937680313298593384216462991101495195570841965264136048723853182710626063709931329642185969715583241956650923001197655019471863890290497202528191881075320212529413459193826573279931746808951177986142522634490803409025318007314398270274843278854857340268201544859991576733893893098406194099530105423936603495045461294222644845648721971556996609138101730925637443584406443185245175357260425577994106154755036112827546866009278045382780004855970414110755289285926027571513559965630588523445070320140873060202695831391194680210120778536164983664643219704169454786958614909887361690995638595288570365743555245451308127349101015184098869042813747771806946584289543339952610452338140439702863147440713605647970339942674096542414094830082854372764380610793557939692816627700269700137363061620738512070989333829896995424279417046594745619388938993563700120035228737077248906433031201500960237875207705857294197466877856541686705041185069370745640881989006433700646449006614877489202126711338644112599337839593399536122627963211979478367199392314103553026718651754725686161228513705347339950990062382895669538422919063225605457651644907035678160934373053287435936075989738772966468611828267915497334619184084968959760920544445177116920772901180331029185036889241074545730232813768122088412696630901999736821953609263243820070837872998355151130800387692602671462023222655970754173766747865184742527906941661197463997175794649128500101454422926473280593403292477347669567053353593365767292459933117789397009710022080130704817733948883420345752776041683803372170987415426106785619749917010642365867443681317721517760577756025958970006440912676370719645953383924480438550760363724274678505656428741123479767207346297925698676123789321400924425382798843690307506157625955339251279367369018529860112845862820876218010945407007130501045877602623821346817137482459890086418506615210252716629882403242635839424183147804870715353459798131004350560239983301486619602017865793517521966741841981512524127941570327738792201955770630174153606846712823604525695993248468958497743421491218419409316497001348634822029803547418087236326058760293062394989908821220693816075128762580001635960542733081239769560358042526490299985759595805290825005559294243382193870088164509779546085890106903735846438812634186449984779218218249993633983318930895509145683244896821680048723795987971465462239566584801142932743116502287394074240614461517338214049689903529815004252218207906387903823212497041085977382579398877247936705359646206638349598223692275965816902523103216345575970298843438664348246213914114020153350466258865501353704606747511169463221408807001674415686683202138143730916875273386974857392036355838929522281123939855384235258893946869726773865623917043044368297800856241509418859179126431261422486172242936633885228977735317344527095140564469992625645023503767589252756525344059561846464932135381084628076851074901499014344432570475298473147578367312153076029285322995656097970041554827165479086919881304199271178237786274987139690264797420549798175814816893084617569975533486524183712444619991363092794040631762890455699816282754920699630219906134069901946738121020494817721152455620636227813170848075441832678533806734678750343138500125297640826843063138336947430995680378087593901603670955625008115413107195786724975392753665156218485338962053211180651629853181311439724963156327929600804003560924889531944371722457655741043363336750681201255765737949338800974344962494411881425269432398953173226861725496572549802183604859716306411312259388770613655294999066936446116007241398846375775536178293094875811594829058987387619344130332700426732335767688033626354433535417712707384495416621955541754837376456921782739702257650211368508945618453463033921820561446282152427902637325060393001876399664618448338475228694879631883465867905400713464953212195425158566197855695420441525551572846486933567741547077275979894087982217293651264179118211025770336451507619165618649582556857093503564407676885319801640225249344855773404622045117878055672885074253088161890683867599821759834308585735809529407097163181507878357318795101309545336085657351760565719599101982213186361885441759504707227955825114046317502655990607290937397420485897638222530607211283147586250082599137517613072446460166188993072657134337798377122194365466311593284613163364651179677494494607542027889021105248057837133543498541288078465350229170140394882363701628691589530372893292748866522368054328607220013352318405721370408808240507511347482391819670051755182350871160018052762740676113087036598729468155955588220034191954249165281435109095570569320901647334253264827386041320006068328999378935832803256328475342780414600916546358876240967158482024764822419466911287723115480265814981927969275711104497968233140191598705978020362296036674610036008194644660654618394155011028847727903954629640083273369242248906965349103734205863771100475634178248691647991950576162847606906065301701822024870496664769293917679679940120875654089243362163709390599945880078767581148970624420764761229500361637750113045534628893467401009170381029266771452939897640298155187778261273968929434722414453842433179098487215066078786880114295025221817347451797731967245887999342649467514713359395683159098456641888914247563561617689836161407989651230349440133447794757341517337167361782324361913463543711668917868171336274535217108410711236485261951468167527631546048081017094400919139969338985523063775867997017627180900658902044117839525700043800788932299502879494342209702855072835810528783817233681712376710985868239662713477061876564069319310334778317051312873766529433965395339800962219250487583266417529114707663430148924599814841341704261188348811727706444148049099727898169449168077809062884847318433035958363472983625115181177587652962658885715899536372531124034117279007443285090690990460920027057823283957193784783546749673869672649720975877453127367428708995951620128222027487666002712058094972243903952481666166270945345917866300731918205941600035789921374711480752094747156666053520357317315338204067392930155919039678023221512037893686619887857583492700254308553313868576221311478816559551735852019128902342771472354060669917964046960798846383549670460332023818915061683297358288413317109317732340251919597806546691714738541640890468577367005504187593630415756470887154732323127081521486937916095550708398153057845368757049479089924051003517094980109253934074700417419502438453414548730808192595935593703612292052057952309265100401089520336080920999843479525655013722880256018168496243017093414527599505672650878473865328231104479296760205833678770863023246298137136734891028082913395021287520675884777306603416130677576814666598182808857222495805840954826177256744281248496376373349674845690281835682310509382368818385195262769577189633666111009358009094532281081024693855131616505512520428142055493531989254757771697949274266391823726461053862890459101127240029562531549734693840671976182853192075935783353475046121329470153567508025095368359605964299621057214514343967550320836454769566551350898482814943518546921291767562477975957782161438188350033121960156755603814393497673844006638384516616170761184226828447966610000075076620144693811348843765602832556178177408255090244339816974368383794984294986300553747157575502800783443227194714651903508220815502067369347759338633723029805259516431512059567989985267046915292026163945602509486104062732044896330687297976655644001290031096485098636584381231397062152258646996341178258600444291466092383505595065905689647860566493810399219556205278542164935945506526835373324220602630276695599927646468317889293228180197892751464409847657567944563018484835921769662164675774621057952537732024106028474077258424542578321414854576260946243996628512512505390255547953480591229654034575722043557660411115527923285461873542321180027112219586765308610526416321187457528068175154975552988487927513565737916376540625457061567558374697888304560478423639464692831629412882412792302881928137928311553485672043959781016563485321200509050448350204337766744239174170541368622927312095614311937031626693058665527632181398562454072877979174738729627347202381660442599779638080928862343177761730793548223358851510686372883436065514943456264188194627232258043558662626534088920515564460936045649370478476347219930072337645638629213962531999307140473645539979555647678124627389895382384998193307808966402983277551815975505246612406126013948956252478823000059039978571499851880200466166517890544218795441902431663304814518351918699705895517560960595025497202919560962681611292885284771037727639162223855643665876102257381600142265987477964173413847201008187444601746748050868156513011145872910525795239469249174316725201021541941878192306350236677386563167912055702497043535630045366199523454983475736113292482932624315156504734209230164715834170842676638214767363073043640584596309083898655403386919486082735701810285433322256061351850602894845847573526878335888941278726827074359614683447324870948773644048649764536355468352363953550627972128625923732391610788940270235979615877017917800414316948865019519479495782646238391534552636664144291369907943404306222301627789404411415831146142758556366089849664196999305354716230805755940191255810989356503059915713588057545863027077143556802810449330671762888027702889204884548696602477409204267172036298016206365216368128352334760647373269444384675900592338809249131766902561602413143199607119118865935049081731456678269269057670781375178018893552672000315632007543666851432283264453174228701895284204337022779540990730444601014761800669470313829089583396757828397507448256955338082531970617477709756271044004274144087964575214705189533912502319153589460616230830546950920397541783511986615744921183000929944396181810025509424163315960614372939616816615564842706027926555884521792749137044462925573922193790771193462639247740529013343937994669068835481640394259257338020154773819616927908414222349911318412372466942373294769729108952534269439846999941681767934868044346084312303082886305327990390032343341671665195414229272655534461139070578678522097803151268240056104942389807965184040849086182122883447455387030747319032260304332865834904741329932699851038299182596957879409993221293441735853649841950130898900240170154806059500919253756445038049031065049014931060080052034908253773890030287535891506876976044133293574423006339268065294284773254952527765348422098839329506771222818561446663746413063239009787644378501175549492215192444222206403596566937650794890207782713314469957981650442943018940455939769528418140372076180841054634940926896162102409970978881712845143297752163776597580810837058004249107417263264558378412427697113485260262523954767612231589663215623391751374250893632678964826672288901683385249728886485796865031483029317688572395347147293582856759632697815512199931169944189335214153029970841648174257941233831841372387481588057472134237639337679819833096811926627860273352767337131161199920723077855651857730071845383015406821918571364432635244059237319906917438261637110796668644453297304303168667165305463237625776487048974193054965427861223698362673798461853296127611135864661251563406249035525657896573955225895555131905640137198538229317530503887440342323185139284747761575762919677679543353098874969915561072636187557254460102454180474441452502109684320199462168334058055985217496469587613964778706053326270729846067783839457943440564126138758935483585147180037516204381352555398919034187156304947306033635735351289617395606262007173459403952573399374033977690708302346621810666236747621368823009983404630300810543260465418849294234135391005947112589764320326663281747673304186563624676982129222039734760979782578516240831487843457459963119512426066203194130967731395789349629261062532659113059710563620516159948010066697105524433702020295272146565602104620339649435162472996146133119932762086975737642357877470519801324148383266594331135434876529871575632808752118872623955651983677711492709940274645504562050627198230533656233769707910321159756838341170057965204486327110869530641032917556606998022739306083599886917445058056044218971459498382618709637081002675383550850321893298645564527997355449601060000398644473924350065401397757380931093758278478779054503998098624507113230366846301135008105857996053206324864759556849847243561126785597825545104387646567349935494456430043781839319672354675664228739490946165950841087008865147679829914998780844941907731336689226800570210996256246972641150092968666564407282920653335491924640863948308581879531245855796925167412642150520948474394670823387892328977242025008072360034406114681401371907803297298874020551485363955431296811221000314538221626754463103297066542196817946759959675682099456604835833858333978693274625159966169764858561760884566165595399511825953225898096797393188696333601984343095369953480114876604397114497264655806191705581022699711756348051757402674099889117654375056034461014771351985608830053573945915572979268565432178800117594702320217668801968572629887688840448765085212020186201427441729307688548462220313532440098689226861434175275654562696166906088000215919630160023084907818723700261753541718743874688429358603086432568357411861580770723727691902244053709422849113990650629441782275407371805279579216191055619226597335554104389904562089152943193018582044383950038738133775960869924694397809658497786029711115533691163417435355702127708018986973964449623306663491210765655934316719521059268381348918082446258853846767357364112875155021741068688339553511304255915453441216601934714280792616068267867437598671430526625841756191929869672625273228611757921433200838177920159554745716434264399720868076705081821422292727612329127412248243757663126484318414870040921634046389473977327151461546218566757199107842747515195082683828503975151093721380992945963111165067468602188008058143467958323865135471752006811064444899051673169597200097691122633782275542722506187988204302770232776341195072247109956143345942825699974966295786328144837432879889470408214329723483531023611199722960482644379906622793018864873697998963357781221331429355427177344524864427007632157846055759308826062446625113104305758189516508952466082590594911978027494803960514659311855091921899263656379235120716634810889614348571813213115665841256103408935465687626096316095838920371569067569725646924363298733994497729803051839199756979721378715976482706503089394335291915810208270351872905777607728049435751219478673417106984535090344081937119504635710518795753762181704675390455883546917900699205047498566785177929712045131433476256853049739602305305090865483655010932530334984117552341465190411825800382096717443158744691379018388528897550076130245179259598182519078843006499139819125980290363036102336181344657651981512820567041735095114150374108915318041526143784542206078896006088249053609054162659312835791409916093329210934752314052298258787958306402366458963477352194851485108928132234662679070257249047980868650822980288593868461495130747065225936473558480588638423809750594611502759665650479674602016413838741991251929842502578424126982820255475377435701952113354876064947998959582533112919775741633351626879748116701353681947664184728643042310653183010568225639418906967276025647626015792030360747114090679634177691910597429161317048583793389082096348857261308965905018123665260666070030829602328444932596444627611031345547188101699004581724674289266953224111023183925055710161750923125479000992146733420236632663438340734714776768452202147085742168041829531325194428026983771607287437843033158385812630240073477521296115918201635879736637276019726799255033870636856666771707454742572067785791005930791795068453833139727708630886360678754744521904030929697499950151767875236418660538938169805173378957508677919701673127516231573459732800531412866834536980786622418956350394084055107840267915551425822895738453205453080094341926145777044890340231098874370913080605502585417364860495593461718048501545230528322013799129324630860446410493857079871037061834551019959059402659464611583576017600032690348169062260148584276413300982629569409119057459783329109486134145801158209500161806471723270239862940485999939573209629345218419096369115643208254948501785008468794057896495134252863979544740944186267198620144351723541926861736390744773625959533029090109658714782285135963251365710526840535176924350498597944103358747458279844922668675739998854365607346085027105369047758596109438821439017142528569502232035257604348981224038964307007895338258257160107480797794398213623238092940533862737539822806008643886818964677958044197602152666661003435796932914593894797457928554201857592465333566790038613424015258825467272078293972591551568853290738049431525822499483554610769645991594326326962795325812880488649898182154447684794943577326258567101564153259870221976697307736534870603946456633206830947322314716180186417692326599559742561044680327269929475866089580983706883294969739231320403177483670888094619419357634628227895122934076245417617331175452220814148010462483476295446475343747966092958338656732289712775957658275126156365358062217523637342336471333554682498966722526092924896310684736361598760596040853720272896931041495487265830794712188198656018809139833674134958535637651469691212607804475339171431635479371095282121253366193142721149461814894842537498192191300128613736208210808826305019249279753885753731665028011775630372329248877660247155167146023881074575850634806297024438579205440065126546773119189758980999084903657132768036932145720538719696812077268738413980808693204425786956201336317978174275520796632550905292011412066014328813678828665488897796427852174869249746909519167771680707787028762739639912904371162001841708234691009381572565432412496381102975599533283279473752437534317656400262808954956692509510226653970263277139854112412126866352904431469663745645959795434674476552212400590489192245136510231759996178687749171845320645295318521385127464049863779980038071715958895809104955329660857152086976862856855058182625934818485013024167534052309029775813730800594400949841923577425894939042264692131599042428819259561359276503401551294949722859473139188791192010320083893932512400939706406870945369279361278414252896541984982896839942876001358329409055839913505533658428463197197928179052844810435752152424001456581832695277845524680020558148115790972308746610721769574237926668927766705231655238228171106537512098685387846090496954829765682050896944944258760420336002991381593069229694317500839144130370731451532061913846604897534350243761976237103751224021974746407525986343350098543947553771549811200298838988902034416918467091762949381735685225362788532451791193930016928007733472888677079122468081767926752006376592996231812666600217532725528263984998946884785035727682453473677693655097953726234787926294354504753679072910528154178853023439493410418869577355748409524630156065825273556468161856935195066377173652904184045178575565846019317893662162384161913081688915484994402654876472876211982569714519840123233337796628853367544091297481056610422877599265221040526177673693855335190995889825104843033835193830204186785330675020774790069172930427154251814797843910278885123210614678093149913815164533800221158446822843007051145101249660734745193768082211225834446881614739179969477329517896155138523372775698269269546853028095781912276021132040462232503286887320167526427719006876120196729405188573553791321691892802863552854896149173867119724046954069065383227648032352930968129560482249104233839449799362326188357947640802051629867362622286272972305894040440166448323376895086397187551586647339552178153415108587312524282046952220952127634125233225466464033234079974611085244613653849391643818627257080400953254096079255446862342259548463109499662321421389902492491244483746650327519023999936756730392087740642017640104112260938387321167653591489491679120687252210864528518191242460171633155384865773018158083627955920572468724908543041267628806226468455819730035677017678710426682776902759342769508676372808109176129214790792229423251908878535757968504128726690425257693939815579056266737126530908736939713197759467682036743480266177479647543228950210138885807481154353258174914557741794826232974564838908972924915197130069639114470478216399032819466787810314494768632893905310901678177320406827825612536898041785681439948735973143257761298522448841446227873411638167545564106382643259788219364840721159351415796492403657378312532813506652254588556119676217587054075616211394446421526562637742975972279092199717249595395787254224075031651966082698765030450297712502481413411830306897872294013639459148158256995823851311628739384716928870923243014699371475976948185388105532839585466554628640990246239018476060980522892567960311234502972108940201827101356521483257362365030906694910513763564742051109478885035068119212202428582510249141783282440022791703291241183198530188286895518462855562301038205244917931422877040089139964977557561674996033916717240826087591733931108544047526155428918445917781537246456438768390821659084345700983406958072066001257550433282886664820161085072658684516720495816834721045044715231109658596194398437197558034085062739384478103911598858956976696869430579126180642090539302517243239495497166355467304503465479208494536596822114009180284491719619103035545877540010354397545600102599950606150750526225006689164036854994705873803748941640600839258014252248481852625698949989566418954445706485920195236811545537400085423849054131647429780265085097005637158482846868739971773598687170556568907227616316892067222536854036796518810537293212372570036283099273376994906610250967698292501898173970614790395237426772037968508775981937587933799161476043151012587376245396969300707169409220390756011020047617550898074414213784951215909593583059218397350988174204851776057013297509569059413635129095929872144736414934215365303550914012682583984949102723012048123207412530048848370818320019346560947440785623147980563250364418910515183276531222802539769264173004238741595645742195410183351401449532024700370114400273546491054626455148149452248867521878975305880693565942058711058671980412166021868662968148469609642975012602553814762641172304038509156599178168948299411754497410312861395436272923893472105026055005808581766240533567001160800802370833581018467866846166508687869311887083346886493294909357228615738470659430067965267020162306351147608960165194503282047985333913910072368705319973682301978719304046199539142905118725884954256391260262058934959834712158609315557668327724703789424674660731059585828151710197691283115596541797735207927512760514629673777867173153349190693927539851723314047080959582654163523951995093901133451407466251244932885883773401470285493964500805203407682062164989740662901778315151576992042439251291947927885841155846225915497300605045407031415267992342764826404992514646030493642370775414072154397990840928738977323461096240975108292693047828913222592142771949347848429923937561293596594746936077386956549516714556042462537999867987853652860655845973064121710568692829359398739688491629538924698083410674219514419875429896070665106889736731516026336376639239636885756797834982761075486140962110231595595095682979260965416224915664821324451047917681418706086203637988351684410157081635653296204012931238626901928535161723880844154684362275547416963611411213860108460759563797273438886251943527632893200063200986127824610932350405593742816907990470936986393519144377642876819796328637653873852758041215119939602274629698581349680382659845342359940610413138103268616039073236652309863156510417110990197504071281049653767048165427305573421518548656579294234398737715675315442555645646001015102938257815321727315070608874820000852558853693344091128083341278557771910847496643767963018591329969256260520070976627497372437626668713784396635024148346026701829505291793965994690242173356642640436086255127736176637386078768394797694746216634123409619851275500599006687912360464543469132674428555500468163265038555622121664185657753882265733374015621790901609306254308520784836922551681010368861945223547068334656018108569306022224647498327095128762727412710059202648440964517470091034202630000877763286598879391951906996162192428153725153831257225362850594264795798949194009522488836458979947226972342580222707950136808144181334946024737099770400269591634524580166452548728466500056569611049121226945192369848757973303214032695420047645493308809779290504506295469917638012945381124288143252956738605807120774990085709685129841563213126831634993894189356455181642561592248490056107076849702966075082728189444070687514448109902916436811088980965442575401145817045459428300835478219893636502668584555046389429262627761049483685864381663339025701833861196190937697821646259837227836666632934695621489401324921197250737766289878763569849959487476902553391484646582468628656749065468826558493585270829153445110952245887219356132426945810070523417476898137236263689647577727569847130890292552056389493606419827634232650255375605782899470909567675043957439705614225464966359771599720422985584283846312276466235951189545808993162926537288102408953444410882875621525676484113815973993434533007043983087493876831938109576828235584583269719404085826651062862618861445316531305151928835630899320455189001127116999410584495617896739683035562271276084099573548618084740327435996888132631146171156717596391834350027698972391952819581702494503213231471209842892129147552913506418113349869279604096253748494395094587241732733301596771249286207189472805828684609713988179997034079814459569766644028556940206333871264113715100480400318016144434907999090097597045337036031203252220430182343873419388953575597963728109310968893462515507001619602705009102910842521122428333555026722558014639657281212701901166480165761810442232535401902677698699313596984116562066720162610865344675542368169865062243879630026539432470309963546279574978566226230726001086711139371013097996858658058857327883089822158357884044964202379884705666702224461024630890174531998019528799576376031027736424893396365099087887312416929012436512940522790665801763117383675336118923872099802768621611140804723002312519555173527665975096190932364642991701859944807771842456256580286221106658831452483726008365337079681026655241884177060999547407764041296740521282319740902881026426539383158860058448471991610851475263695876993547995331686235254589901631680248566182485004454531846758441033581996999960947692942482493506678356527936652296349045358815395479556046458979304226791961814487463357895931431380021265369229694834340360728601383081723163150360900921053375126723087420647636078090710843051020865123795123350196633246999281598434404267440952961451725000257308739215855616542391838661956652535519089535507463909312716583047718988995441324907743835185405293005041869589165342274062264484147592864745528978068077370678244396559931753288664338327568039743587084732282166792986741985066059115677216705457024441569216335484053798955022167575758310989299354552833361467297533328693288709118951667416216716458066647381609758700564614362539626639396056941324585275385367529506019094932960481197848245999811411481751782361588092515869902532647733586088259580889093015692092917277136008970513855604550629031688979075962920633821336843760594760620455398913180017703200537686473791095049141570469717904243450835455049814065352840809346700551252437069361394333788290757284077381194798342522717407613192836627219027494911867905729199192653933634609005694207592177419788854375877385427793763423985712143409338512668368069868578226425075314910587843339082069163722872769957240349449874468606815562364527549711586113886290941695158266080166140464388881861111493618931015059844578914877620123554792240278228637478355872930561647992088710238449909521611172577378993383801089174082747353222601432490059935819910106863294123105482104422883173603382425016812019483900275998414164610984808294516991919003676516750121390296964725995009249681649134990288882656495652651376362844060567658441734805159573754123376935650310781658946987446853443260351188239339527339977284828554800314562592212835479294017109974604890627457367704870171682994752174530063539756685121815884787087304617479552669100379255692071391821892439399697055448916590289806046686403080430338438786948054740198763387765692199586486694171127422786883604369572264184345051558613764621719887257534865296172333000391080713884743567512231130703371266137067898046186084264438282879249611070032092695622847085296957926875605498547946070346893311790804641991878113303599653430602756868268915155897581465601941441316640028206892356367726023367241590917532963582760217913224602257963359764601033948158856075019730558084049243133735763736307526528078584738161514624345117184204749907910708791332250440352090124080677821854226016147238223436034742525788528995928843393237202494125167332495589881619687800850865385661231821182782480664961541616997645531582649199207172247568630188706472779501248167482828851561602340386616636868021953489446882408895172540108342363890531495762180771312933140036577821813122410026277042907108639768385328232126768934446679221425242071715282240832491193429147407751521984793321585426576537680709393894904981111171071419987129102909780369876761518735983787863013152399959739509532042734389225695499101779485252574895264433853443351518279138998784281307917861147661666255427496396826769064425679455008626668844609782627783648812068191573102552942097130557475228778918965295719478316105938342073431871291648942770208476009674733858041209091659258392475900112507975290745277225269988000160647668658859278145213170366780688989801590296937816173769589608318089109294284602249536117858700254565758036166798928812954276816260619185497291605948239487314340075160600815390626355245239365565697747582702209565917967123593685401889010603234661036372508789481185315887089214094246471845441523825679939932437868738274089529516102618452147273484212458528644103164019718369755054112074204988419012948445754919481000587014569477015592297779310084933077423883848553316517447558662442050739215910869659064036686505546218376298746108099744933163309118753060193155073876149066001647128747521686230073856191377385319733333642339295596758252504575355772151485495157752364055294770933392253903934451362825938572378840423135384256275834979128594087431120766045331585253062189088401907504774361514029722799863885306481766806495036083168888561640395700373326346128822697081828684773514880048702969379934587055046013790457568363882940176787743480475106719421953045332829406507718486264233931100034505300830516713505969798798466536784824618701536222629118952561996789994210050918620754002975280846930473402777971786404434196685778037199392403229249398992935797942406854351040610621107928085277923401240064955002230614415316424396066931885694420539239735644963146955083476933663053410109841283077821083573891146517998899669720449844834248215512422879109828535297445661772162284916202045149744032900178027542493718884252491993957484545059139812754919498290965489512970762625833255149224848162566398184322055955216845661922894434422727901427392537701751781257106656447339316989961851094970962969320876584496327949841139079082456166176052333811154511754428536782340994378735639368837019844287709307043077985873323813868756813401789691180141832526158817327411703850699748591545571800421080329505923286475005402738333202240544791233387671032348414081172021618492571545656551288315259922913222131329187507096905758760100060202721199376204405607763300438770487139518300465447167166336539364333875567196115966352640358234768984724801756451371011216110712297177859587953069163987146149697768233389443442567154308274516153392684523831284570272094945481979743354947779436716118120292832652060669352205062466968350274430187618754902495205588058899953769419270291335458663808008937185069566626233354052472674310208745597080178686026929248696747477862664424686376324850788313171058149730747513851575430502362856295666167279979436701390926919647931297108802184828517458797166009637224329446730508399479425532429803463933087823089270577327280724016821295388142116705972018865130596516288367270650930272234959359003750589760751318004855407524443967452492214507677257053218311545640900518256553958624823265982458284589996618375130763688781787968517607547575323474055185740855596535058020370228487838159901077610915832049722542950134002941741720964527705360437026728635195612101665826811603510523812035442085105061066452145218748432920173177398711730300322862838818165403985241244907748413915035042380881350640521283909481867805078843507606466478958068227518984843005999823124664762449230295367895125155996381408041425986857855227820639204199735680580319818256009128536613466158542129141522259315521840250979375831476676790311812682210539502133595042239685581423232252724247294224713762397300978424050801911937956662020032188876259308879876801682085532353874147600358680275876056338783724748593751471499800240896241524362604866132662599921284473102505692257814721310434820243750045514511540537907420436032602513308754889483136782071039527739656558591039602432585519470346972871916803827315594312750580913401914707633663488572975067998482070294003209294485110749003767269265742605054258678619114325064789675680772435028498872698376006903467108402584719472115202414967536590434498555648242894522712799143338620447388971131641228189046029948460887860801078994560599028290768503504984136595587131883120897911209585952578960104570867528161609106372002210167040731155256234347052304872066665189650454121679301165769838118319476245025688542201095475860871900357153730368875120838149714548822849577104224229323256182203139424399283548848108230714921925443428328464880823056610383800668283554763172853308229085280848627233384299437229072019653108242399748414918577476443651776928448835654510631495672753110527732243775563955712571374783603504477000239604495176465020024766831153751581703349974742666445024843876074187905956142814738638193903067989025031721448182873011560533575192046849564116848254558191297111035744285223482753456669190310465526661972284664306802969003787030519785780133542148559984230250472054365675125736151570920748940695424609053431042625438821884592795603851300473480326596383333469748517847874175373168851725389354816753409768912668480990966779028811583423663202489560210777582653923019202493835735175298664390431525454706433619203406605431654354523892354037096785106815796039739846498554911991706117844853667548281426675121356595644715452497846203153220379364018448352118154532851229087899630850670433549828134628096427426757050782678205857623212636511452929393556429396781913028718596126228885981792231095946763759460913857466230765505216585345220593966084285970725382384804454363070000751929494432508888500941046315596059901999415980726392079074170824598068064244552180580784128002926261454504531082378438303289630281565590665741496387374680878491499131491326201499294055501248214523738279372386984639505402447149024775082136802532920712023109170621762347736090349887417965834468756794495008284486647063790000976062043909905675015497893197901066881738408207117524167165135370816016912327912664562894656032494208075659260035392497851556250170362292336763191435062356632358389007228459312403285680707309038994372998968305556456765478475874178402345707310878135452550837980204601751251191884795709735716581579561858177840276971797848913719775377231555414970885924223868446949963812076123250209390192909417385668600484523212226220883314397808664930960504999188190021257000071771601577754112843416138351583453443714328613344620329769454805011372068470139545376396620325724727382205487223092967747317773769140571015363184018777150149157120635943319096828792209980340149345361556350379961712470701220114944265660016656393745146350412675541142799005523325912482802094311882929242913542894128619888684692850905989148243152524702411024678891281987812130400566128042363578917489482740916526495008388724756226521731472593692397798271559723351053690235162127015377013294042246202246466698480367451133470387030796456247057988628654299978081473249212301390385650402665480591616990331981542801705626507230270387776403826891222551853165557331127599774304246204093009579462775650006156899865764670852214336185811452961841510046161457902688200249463217711755859779789475824738528974867921213221426361756936372142132098993821249939735388557936090003518615985838357704479001602747815082907677009884102396554296198543169814278021398897116501785777494444756619156836278360704500859349954677707064092552584252687197035969838276578689286909145878803433589997755107281608644784248106943822690281426555856126889707283556600080216214766705621615361271360853753389083838153334239812851888889376383644061730451632570612068037736461755319673749131319179422017244990146145675606612860307206700178540478352237736830181585535508990335357194825387984191598338675143401216788230033555538102775779895856402372517066047608857488211322689784331611633210085728110734200904424647940013514246308794840393741781816750117960482428691996784858232420164572848822453467510485276486818888285081297737234039859527915288947791979227889610883423672202320489524069204479917358628215421595639436120069024773207000799981533433058768300625947380829667405441075275225061452992773114070837721688844707051075861060104086472961147895265621115207413921004390690328394860602612349960988678406374124624276745621559920561014237361685645592065558555729771904643585087869955031756228850088844590135366087018083765931483101150659447623548682068257422024150530214782818469614130350180633217218149667526144967117612808863437627271717857592611062638421506696872167536332196391654876268772667485259063820264536975931580178389513526219899748372261113461321383282273366366438301071886606514809466598726583133900953924864397676760916432773597601108047043290765747279781688217033697474498600017204033954427653720626626458732694401917925075719032555107111188300948506310252920172788053220795550911554366462983291437510307714725305095669948430320560709828165931464828749133997545102242872291926894255684784993572166539089722933940901097363718675433475284273667411208512135047303427338653720364872701058611480222229741898928852436936192004910568766551389195829571714006838694830386463621164148770677360886776475038269945598535212923948168772837729330381222489722372374214258201412886092112970144771256183637499712322149861791082568282286881569234854150995282415728733317604927469926809797978606063876996313742938886795142176013690326388982327328633392686417506893696115102856436276225829400444615985298304493252843039044593613863727537733905323368414403083381318132977982186788720070723150564885408997111880573223863192525150480333440690911119336906057305043025483899363524075872405840606442786098542502123066242837905560681720102547789681501528648190100427810064907456163043615519178755791151395930807397602984325596145739515664024377211971917266611045568535808894935924793265953934288377657132004950414919761176570185206324526692803705679285043356738036496361241650092373469018457835004094756631558079531449457526749564248736661031437334901306711760791686032726223900350153195583902772089551655726359611966314550148468618428464742584062935282439594658205121057877112234410734226943386549276880213903417534080046626849165497785625785758666897774507356918494006042249202637033649157801225899280211199996415331692018792092003915397218831793972191161746781311907351268232954539174285359607447850444209310318190727051466105353974695420762397713237483447993767997482805372594499056205069333596761859148908772399957290282012623774914962258186385339421316759860810000275349704607868427915857825073094668494355001101718659622505284788776132190076231607288121757592718859961462676820446812528882060823670808163943038536012386024364110935048890130145222162929726284146709358333847696755664008692015720378013304871977403124986546340656170297433022954386440738313549723628521548365147078223621540991907709856454352355672310050157636414490898559520739043520920110928729083202546023575950658137942743016746067936707597072206009376835280823951310850913487945492460187816458305713204286362341558943354874869354785139715648279877375773787669250853367700188312324439741515006042577358244855169837296724205131532724509316150960022525074244842384647452288906989326169219121243871041889099539206722319839612004411269630685874675479358998586684418349403174061804947161160758361103439367189121600751984025117548995087473552580080601119519209288408498490864562403208050746507155282765870053734886467685362359156067319696461708796362809017669623931486981507880061817783199512605976552855425493709440491637365248087766659180819187288593546904395905676201525548940858808099275384922606096299394602621282613596517406801255375573324620566160292856447686648680634488727269345900849819228653531468905165017068583263258795087257121335146894018221278902893229211747774672899883520246499922436152346134291874413537708090541484738636514708782248043079274116354766673286459039487896579194480879541507499919320674477891462126618914791022831245540784934765688904425272061500435991458131880957554619405950611068990713801193522448866886460483325104965954420644686444288709831778020027769104643151057360350908833071713832550812167938577565251619360346057795371443335231140240176958187116981273714710485377184119567939038289729044060623469884424038111382872341656759436626435854759424878913114726123663227938216317578225301613227500179003508403208548312540556754349772077858936345129743244190805790409965456017365361391906779178253754359628712574713494248334229634431019364213974051176698424126653480551289499259431794612618323471061562145993762751541908598959169127234123483125750329223152863008513472789689961246006575175783511506557086950904575265182969346307652752754274140839172976190829435238619697291457100407423119321154267934269115882711954906277243946050109049339265970990000775085359982840433300065489373208737458712874740104134122991903464010482653498560888014502977419449682674321732267561309927053232901208033407345638626016635737918644164913443767499541673962488710009120318245642720863418356807847872670653725251464842827756463578237761028235513916584548979454258482677415002670496128921397583259705414051657413118178077249085327613765083792097340657192818742041312324140817431270949740190208811729029869188406213494182860941688212654329378223727327262249199113676783857250051915094932822481648352206906891044670587627234419831411673275762987967342864788226145097556793180315347707720725927854819271681965061976545021377840969190848737520640935681557176317731505159139978468780077907499603894824302758809079451501494194437405532659813738003874046662988200725582857392441783784784131342400011504349547517137943094630857861239831319772358856396180252586244438068099561742514307979792886623297868144496054521061747413724956805343581965777101355608246719813689593348024971106049264666019115970341863054056026683159495459155223200541256285729686033852412257523702610331316541114386773223325909636685431738549731804321599802486480305673620261915962825691967549699914629718325661857515994080846536002086645140828448216377684645284442544366007245669957767361328596558398310938957078105602422644029103359482088554277444946390177493534141536649824052608779505318478169847322153509167029854570216315853209090472852199349811229804645397656473711390078013785237848332732559425816752955319555483870255551915765553163605985299956856330862723202457460772002941331582814904029076418410557956659543394533062778146575400226724402765186766030635091793178695810303915668029947779234892581394577559580464247659718930940997135775559484909729332956429401387320798168736336463990144063216543540073287483745119831092318301166537334692127261634722484954815834440736139759668601542201309713100114824527181200830345399210098908589212426327160431322121137417744737073129852668749593539909604089306895008512950687583684729704304996652783216819382216239656791897480446292978957773796426078231887435356003035359401018455361007262398075053728291788991738304613540509763148769159641625344448883121957728086353056168672702523914066823774158176135551829883587738014910507441292080758562878441519755864408334443730142394437811633685552852741650217260835517192052535547598387997524307036032571264598888733373571847440089319002018252504597673619154654922772022287910605448882210307337328040281871017993904718379959478977224782193895867447727879200101396513730655325314948250501773314406372392134532469986963842097475983568552768496539339965911436306690136296799945137795973777087477325778520046634741211564139354587210567579026185247474249905353103908269600408634292444264507461642000833601492837251597948897347756620092107989845010175495115058569226416671962904712180268258511141390055239843025995319164601244384365454957254896362070607898017224816562406772046365944225718775246650182714182315569075847488827930484012458551525621830785506185969435676067524643765191263066176272169296105867402029276421232061084265271393370094284359760048748905460724437591745236618047730572023595462037522627032798340034926217401753531557977284077440569798273885374546920977271170349943968647824679388552196048506685373712781120919762944001908094950175245172192251689602810671715359487715815697477944772002868904955612591344296106552512103865682599714375283815064704674392505250545757880403427070465426561693209705204357909032410338652141410077965677043733620473383726625045625997227899316469008274790472748056531803834631310156868233406878724948822548582307085029487553824607981303808219335147583951132624384133373886956950587431796537366556998294812087012769442930408328799610953449160129041348906615039271225771051964542215071333621607462182778662784247714472898828711118873159927529893490081533211074718623954678097733843179661863071225830488327623006169453848724538524842169407882194578709369868444980758216370254717071881270483093295634595279634445084617154007450587487028785066326538371707530291720280004008834058658558376299757889251983157673844947875453661805552898098750122212573255607952483223232565032852628700590006004588319317591611180173837505830327080935565116599068524762012784447609013323101773114607206023015429714022751107276331131376132873250032762109262408918478242486229960964359092477841189077420201385711752858722086190015567848770274088536986902152217370766149162208490620253635526594226169474374393218430009605465052998597719405031971705695259571453441086485715951879875450723928005198481985152644983486997609576569687929796179107254286914367585255346639060882283337408837050996075323228188779737332625680442960804395588770365033848659290761379740457777688073304535211699612916473653515452179243922434971057009536354705862729858442851091915712820260821838306272618822466292961218984651841848203694461064752453326287615809164127107854970407948880173114851785767726613678134404655630017907384979625063857517784075611009785483956396898465865532359917165048421439651153039735627928680921646910455814974076844311720644769406000590904266549988644765195766586082005893650178240582099486591085856951565067076782147733497948675032086440738194787363217385750882589873552189033933975760298802102078250260951357651849338630334965218780576476416509712236791159894357276932803949295023848806576946271400359830593518487630147587775904729234575872482781263762601958246290688064254310047530797364421031896872484127301795590947840424954553812779948761141145368834555905883389052095650088611304102648584650216285286333170282655182905774314030549735428035727840458474722825056198395267203993083712341447465977762147428108674290084505307490745845100825883334052099165857577954454054979622607691001109266284005033010512532391117843563792428797010791342104122652140731624392378201167121476539800143457501116507472214659329111806304039113779026652975735473636437030835570075479213784142599133009745924951989817563514432102552527701380414604831473819295884460136069443738696702222867724979841791699722704382998798142250387801350606981690351948490026561543542025097503619644537844484042262239207854793432365943808549467264218596884146644188217149780410700023022152691786574992511264221604645299092329965813114897284243505546318760718431993986852288061892539955583615121847448501713449264593321956510071304487235947553693145919984204638217690195663131200885087423970791553177252888374296806184658938059193087995664185990051245302131322843218165998711478097159776619642290161250867109944278103461968334196307770033264453396814820804220665708410167719904938377416378762537216576453160217313569760165784254964289295123179713878425928059979808551443262280477767785926568131647501497413790650501542647856447402505389058432272536105621593785910548153185821404697768913867982751854361585873847202319280454572285550571168374424698357496749723240476577546582075810072040769539532208246321836453160470367317800836391768523523567724497830478030926462411766965123407210612049640029345509938633428716342126253417534756582993927829083043838862346872583878655464624087297379294067389897171970329805027446854360965887159547430717705565045697761914381525375520782775874319529620842344547699678590360193661744460731335280948852729907314122709208243162320858789504642242857908309649254450093740250064535821348437050020979676869502698090139603170141523798018355010697873240697855224417422314876611349100692926800982155892437327265602219460422545102479410590395916357113328487538946703048660719016368781847142434115766643370089745826957113314415720066529111052668057784829253683636913727185814568631926815697136427047585013754740373442179368511736573680351658124158038888679778058096930366448824976709484701154985008024601811665834125485754969318015905754965165230065804408270628517629279221670484732248873326306486245449857094411044395952148358711114265964611161120347560247116791092989748484508696956820159672177338081571831221653911965546190886911871926755365414384420540554095132491500553027375342264080844404751676823090435808178118426634789225383522238730167156436496925229873059132018366085109290385215294373434914815607865855988188221061944370018386667109768326192056882227634645613487433522102391769363217681585677493270638508589702656964088770826146912893057026319924287022030410723815842255116891238387962490742393785343775911157820833566015749904425017839337002923213930742876338117387354559200345486903150998555030404966088250004954117528968227407910238414634519413204919408889918154251626107754511514780425761385300890324265323142147685740230353953158052472444235959322236538440777643001343789890581140379909192119591092042741762333382949087808039853586225956685089077122737198840766724423703404147911834634922808902003517419316856689560028533673319722416286105862378714930099848338977890634654134209911812187271620082986611986514892049985598584220632699687611378247481477372666754104269166173364048730488310204885839629291231101249273901471895236954025444722209940799565319398469855935928351048912711932304650958977374416791847887361991815882550283930246905907658443660537647829587855136522461379509525403990963588327876834949710931092241852712558255325856969075538437049744933791333133612094382475140135336645336705947712914047227990879144994783169979016522353072283673495530581147421582635882620562754015298332088479790187464312911126885647016472616366018604171333509730572502933108906469950372755432480002931187271774345143354252878945540764064834630142222366042064815265731588460441850029513790193243797023688086858242270371622853336832587633961870360901452599541903280186863975924858846842019567220302645179115368774398545234985050180071599622726052217891662711553981458440245102498934413364768635117665355411299539730696566020244381381029729239329176884666528429971857595258531031869372363156739216328285580689963835777023221342500560791500169243463065699852248704644336157833116423861098475505684593303944581118996294059106986977389086104290997131585494286533328720774497742050348021985188875161717639373582576564560532765866190279003000731524185711186560474217595878835810448437842361208950308071529830788295962663061014196808027160121403011809120337148709138004049858319163742727985600075253619023980626199056345591724889350494197001290006998719965929231837700584953926596764988139610271209760252132100630241990268673963021219243310867574996904719920678323381083377241110113123529120569163270635286854710502881550091589064918473611186619397632275768695098582073874650549414892063898859248724627517426116904901138836166300014180039184548544659039846249478929999002344851712754823967852381624881056153738990242802870288588942042365323010737270551528343436642753675110752253148481787340089454139132103191403354594188857253415601336819665040093488849543306677995757613232527133676666581814849732357755143110967911133124861437010101097213982349323213696429445963480154199878786160475359609210831372315681072827594687959437783742970760216606383821670415686709718041377895133158107518129502922307449562744357261453605433266726526545715609496608483372392954874928824575197051156392380788373166150166986407545942879265924492959156418734995425399591703331573919835612789262182678812807382520628036073584630056589088243971147572523642441255810484768827806209139418295267114601744119310275963233627819202666714155312990988159088281598368132326900359589144892180377813675818759392290295769188720549028559409502066780307884717975262770855927442154365053463229474384133056304931508447659867155585269199487184453804315246477847470934574123091572137166168615846896420746663215995553644568770547576037945088999495081572571824272213156014705719745537626803194391650087901879128770627949466780907207625237486153749183495878955757922108660787335916293697274644162844201568949920396425919627802031370073641143666935497700870754178409528556868182392384520091662820148145784912281375653795429571310798442279705579395485640228080899700665309700875930546131352508142203553931087770310212337500426769914111777866242313564776452423305099278690190755811968013814184494715183004669273162723941113193803549410989185398643260987235030337760124150097425094936227651935954346060509035246387665809130454548257122830146126920667854179681383400580628015339112973403753283108126767690530803167508574149183258336397741730688486149745067363599178035434428888834582251064336814792861925358824637044377456842002999521549600258251266279268251955851917309352735936953005313706555305859022831410450333524110243760643105536683053905212303724565592390839493105106375633762918293110416629756702852816334783791862853614075520374868930063909941336142075066473608276442138832831257708907803564527357468565499399824054070371599858872195591834080130482529585211238075615508061314517562259124494967835096028602484577531392596191372868442058321637377197935330257525988067124686615541800796425471357308679534876258352912189487974603169462907549822546920189003304529715977237117198726152516711088938215400872679155565663287129043145349998499267589652667684423215751106298515718677541534735586156892854821898620469536198282500967845962025045166762476162713380469907278260284905477165558341203386129382453466198120727682858042152064775020799099957289011112275095099570872155543236906699040849578979766569517268410208313847546922287441704394918538462015388957774466969711576586444024222804347546586015135575050791773129195821500819145820573613335577654685046608269655042168958178899548472548530434957604438793817080180457309504985691936614108563000029931315392631794280787007541690788223862332726227042200631103129010821806274804352271108700639010760990897127092840608363927737649845572035285552283606681814072375483769677312175421183299004622013500315875728635130957623570694845443145125357329141176541451255337242548805208417649392244818426541601289603953605522016027713058352979649475957706487697250609978895061873997642388796565584584338759323464306569381662549294823254067974260487889590763435931169501066114361531148453692362390804271243131514818359976927626239458361745288314503833093513265232485200446022145408115182306083708658807199185993253736926518442080910741821386937000360438880448569341752484037590515669292146734330997940067854650937288623937489474845313278594478332918403872531382486800800016484175039536599503917216733967638777374016482851283873414883575917355113197165211020348060462440328168102333608689333445208376056868684426849938445501151485376152323926790780924908193966479652307023953874666156173759471212346154469658403661837720769311614245188583754995116714590973379265063316661822394781367423847153159232270661806569548450565423753584769611444518144087523487353254811636037055766892207871718001764106236972693374177129838683470326189896158657593736569295938983157583809879568033269203641004534097088123541986768826825890479122679940498149689432212105201420387570779469340315891646124748586265809838955120473215173354337282969941097470495021482943284904679134240696101707373957650630952185763368321299082971255497095042615160742209207746002764383023561433330140093102932367088664653543775308964761310213670567418821945745897188180477797335873672424183106475830557518724715831267170507594915941219325585149992001934796776864295179139014313096765795043983129119748062222470033947810212917766486475005069348063341608938223797441917130843941656349204676171137437019912026443145382077454465413124415383005407137558379319002196900865194687658927422538383310071605116469124349413574177085439056454250091636637033278418134219397157480249275165101308075586099239090990025840806971195547802929051072814576813222433409089665907521908512327424549113571794272156828200330856269218660281735608359046441293188985263361019154567540286927576254049139284522396703031282920449150084626096237148263232191843914739504968573014050576003376804161600728312704166729693473269635322208310356911144949640655327078181858136447047587819068268710307359427573404793239288125664235331591004885636212304255213958126681529606047939553782897666458182113681594983270651034265483199238955657368597834274128967688834087368620370258297249956132951628549437930048202165779335511722081378331099935071337641068405280920291167965225242379916364086789324603464461600944159857036052705738936377452908759338248849453452419168070692562410248163596547530223132876342857760844454914663148330919389036358719574300963389976090792266128535658443644224142815233625147841575713563631860314476075869696756485938448089701605299104235170002184308157438691363016493449801212728308658905199340442031329812227629936209847326476604666104305705109579954156518399255171397130945596060207206080470807099722538735345161933119989705968577929172897045318729044778912565358551898664894239783865606609021210142416376551294818286803322054012489477652341847446449004235667007828855824143664211223296489961214293667440039839433521046055988832784115759314803210251159604962412604288086763509439886739902501011332195413419100546209005623735452282161026822263504828871313462609970512299542930964573944420774196772241896471957438462207672068691654998859117011335235272773068187291430329192855859635063023562066361377016545742202062234396095272978312826683677773507603438572041376282152724206585702997953455651880611134351135431652641471094482635792035551778822946170946327515537079538458557094935214524760607816780576650276250388585722296507078130965176836750999919582546014337762719540940785575529086066482891430996788114043945811714417973247605638764718962057209560350864742792986479201233610623690285796222413348254634803190776399198855603092214606896426521677051299860448723956194216332529843702864575094985637981843561933643364460880336322048472127807444001924955738235974786952410899445508091641928809797636134292017626473937600337423762847835566304714382439160665577425418967723856948396977562259729081437407450166250637861296586548770756071546261981413782308791382155633876559608826601289141128909357351709064631493075406993141324519236723981349343051906050605733860734993718036457528545752726436083391061794151193727812434710055810011670023077594989955531662458656772964137161966826931733573415510032385883291035071023070918402262361657391186390584818001819987323886611331123143173317539086908094910202764705931326686027623525780868554001463708500958403581272672205860652419094409147543252034347657987703652464027008112319218755460178158732462832143940737432270620663252456650987494307163477973162363937550162341515942351293627048060439271277879838631196614685705878394575362035661580399912369873572262289327855434174278506945056520088452027084302259652330567963535438997279092844966514241210086049733344369940233451640414357603593008161380880821825215976745019726360959111841852616632680464164905840462878711936383137220101661942202365142686666333050821534605673193905328116621761166777695265601868426090708985872170004852361115298077325236200733078700456602883271295633619827876361150605078829380051786247986256414913737236193444978782225103281117016452447015111803000087733596983958059777348094643157058366834057958496229070566998269540181364182616537629060799562786023885402856128330339065147208583656582399219590606363792320283469631867865363429558041090329598909856507897520936739896296675824305137856768422212144786804960363049692626434218777829939166247380555181384971373666583829445841941150613318414189477229992620551418802994562530389357422583119930373203268145944659202952094151639785239996826678182627613014799460889405594124954546047889472307069170347594373312273470550164234037900913597746637831588020583072259804687107893759969891719870216156620594581354955491996177017132459149314336101036013753064415260590498448949129653193572244119195537298274403688970450293577206741651091407061962808325404509048809959342815024075335598390681837243966863311988910149422827243961932878863251964170866269185495194251260879474528071886401637684412834265445200331576078055975380991676480930006957984622707770130487386058200454744133747347083500749149697693791352839483718529385514361991152126599148687395318291718725481081012825675884342790538302013125624646577122635513982427997676975965949243317008958735091422977883087122290740239516471622718859906527879380473594823358206604164865449327595995503842838717145377859446711618583153292165965471709831282834432144526884082890326996821469083381970842969429491620206573398664165188818452967755498826332844064119614448415071481733072136363909771827776719341887012230386830459333816096078436809752413133667694819297020793941217141377374137933976196525616155085684125482392199542373331936307262244882401192559833504520643755787411227982791529026654020545054677839949903175009757077268330338335897791184637620986148238823789616514837676447328738588321893699622594172754043198255636218859877420937674966865456120427060069675318589207601897257554193521224929006045936913443559113205594547382108065144793099262458147442034992072463520624455549473631012433576657054748157658701081981771715365097704564368942592246279815781760591103698384444509563997138698154280374633938122026247321405405190992546640749454682097447515006752850970969136886906081407115301959192764184291248570318603286917748656365705672014095762632142132085990217611441057304164995181836784515473103520362430377482889241782577973422604902188548270002931763931795721099378889370108598104594556581884025065693845217290271150791145371613374561505374899108830848960780298587824994288384290979673284908910292300022967508600605314788772408932912737137063225211672863515509157713739947713035624215864623973330613540188168005043513572968657275662907105505715381048870179837724599883028459881276086703685294864643184149147516367481386107333157810106076700323991346268908640092122304786344591841201053121025926807998319123834766359128883679876216514757335162390389060209327473592995142899416226426924322443307223301803503033978633074482408045066917153017730939354900594573957317375941291201100627478355731820928289845099587938055903117795803237561548188979830660509998974638467157825657857173526058758526572679068473103808608194610050706272811310074736269737571191669144905300247765720914980804337010989838316998738901473278200564652662236065523168256029682389028269025829775452757749865428674885797500709381489136019339689860370603345945897866133773038262802915308217253185921794470709934354253627481653157101152926727603576570503938888014615241443844025108611702421181779239484787325470150892117302208141990781550708739414948002586935134383594796718541059089525439246349170984354602252296383160923240263854120912295800197994162644220674653932099479425002703777967663189167477812471520818397434421397507409689727088711864411060165085090478486263411481954554887312838488806935829389335392018023120829434670054568101079048664194857323232468523436936382396635138243961974664104685697348815734454465155752091185096603526165965276290485329902593899855074726746124818166653078579958366554243487095133900854882224773116152965580554636437694053624349227561476380660585779297510241167429200234023267750927627828181413224386221957560090610219780314269907945091950625178563733342257329314152607148771289705500623567389737521983800089981242669503922883627772538185841349626586177795567014034126601863864093661059476327871059189107553637111478608201555662257622330530412472183807545008405433728997320878996868810704396168738051618598882795640793288236337726353777101972202050015751390214763842518840169309185230486168688198792070768276558584331182101853904767183643662971532707344171347448089768502695525404298653544374493474438286551214876416994160497167924300619710294878240936458338001737034011198956642417759183060068674678752894962750285504045485705155966366314442111611386074693262435893321784200552118908417941264491572546066681891693626257446651640314244050367505928189792908575489896193629140330760848443820190926974588663037740597760507582125228962341168032763211203280265922903860919678384810527962445138254899301179105554383512976444861855773753126328336519692054620432853590037725284369653256413496373786397239537520900162553299307175191851691239529993015994016240387508572352381267219517173682029402209457016966384017468908944204865059437632646946485393164019646453903529863463865169603806861409648722988694394654612534960392461189848055751336503044500142056556595862061270210527690307298075546513029914754148205592002352212429671634942702572064119162877951939411089509824117636558715233952584287637415404934453134141800634191979461412423121416721555656552491887782965776469372864385120846798462822134511247536009150366614952538298916480493206452181998623852395273794244460610742445717160139725508867017973219230201837674371438925411549599879566587512042341030257122949304230324376367737860179938217535110514501321272001785691884074571869240382747919426109993831673791414544813401039296635753952144823975618332123109602213682692777778776061862860455390234754019083774876386891508971054189883649888166140926346596410019484448033163709540372573791479555310069772317172691408149801921203949992267131618359283279419612242089374370031630123390630865481587013801584715662651387097857143123124349830797789313566834270592889851941003524723610927672443016943188794088793059625842414567525047414161636436488689393978581001248131758635995468928679845559115595424187934833760247831723740229370964680802649130841872210747536510172318305180662941077764344339245597934661780823508425084042657196086176097602999807906173069841754182326795945274882814337975288048411733465552622006996400947233109709512109077405235720885765213382256908743378373571658285503190078559801823744916387915061621947662594352458744246982248983033671457588930869336048544124689319043413705981488302986152593488686846281101519050141413995872026501081254190110575859070119893844626530205095249536828164855124797060905789496482255674095837294406838432815469258698787039850342649835077201504913016001303282754725378404742269064751776537574386087465046624668679990838802791559649192940063135743095753888970933128533186205717703192865020293632949183520398841945963011857668148366045675002885388181754669862615794268359444406268067811463947422369853673138241998355425823678179878775377275255934999992953738364718032292824726112631827224232444342050653917860978142360896905658095307573967149497684712996983521268888189212407902984357931133502435348913346493135004900430853744112072543999504566306626274058684349548569618908187206002453080899813696484038943465439951663878732239274274406856806694504522520935740599227548519298899055383061279782622067405855191977246583905149367514904765815374391239517662446396314741302029846267037174378693363512485239825071106284708305969247707917735465819606940707393197243351181987460716818004295674510961547950248834781383967805710949380453077972793881256768135120880331871824975853865669729818520839175870760687072383221358364948963050210565634059752493996034130154377959159209516495645912828772986402823165956378853196600204405934841066903227733865118822018464491322192355728408665904198645122328252335549724510812747663195143301145172654513753503382733269839011332431574001336077704033682772681314037197406604101449539185860280450938694572881640131324502671010516000986515821840368209052829475437717937713310288726755116942982555378519360097727828226749278952434645599046618082338022899606733589468193460872133306046754059334970427658999069535491165645270149756184657988050766374918774006199185642170071656835522367997871025983402098315568151583283597483044033367550617418298618786913855432176489370191413426321938760570802405305829063113917746171459523056109023701918840047219362414974319245275240693457812989861208263148942577232104844525719741372118462128490443988344659442228444266745950426675167200221717109796579738680941856769385052010018765355835600070813267033526215903055325693736441063431871629269077553747539059985829394683827854336141495934642636427544616322558753732904318461525833632066330460034670368794857525235934909092150911856080896924485352964075465793494971139565163673938973009315663921542856804582675638429501298799641171444237258936478729276632485200512675930653957112621494410059635473172935690372051318663786181104130090924542728518277239318582085969976567043591663295463455089547214675275030256861269837805601677920082380521900489750982180605682929174681504947049719448276921762612198323395871508120753727926265025639818461581306741717526904289338767988080687817475343799961737196295786740804599261715978787946428221326914391597739538534188110564800528863877716773031561840210587602743566243723968158646012206836303836909656200467299711355242179021629554409733931239586548289743045372587832009203006343204722700384982862248727682655143395096448796491978576438139940136287769242344498220247739385776003372011216082904913626693471101199175726819040134495446629068736188772532313339534788584818918450301485972334750470321278993257166998621883732928274350040645944285946122354574091522562401582841408840031535652582781011878066171564075423855886714836420825122773757546469762249393270519069197328534402239912456407332171739305563760686940143832145012630594659319018666155461947997921210629356792227045480798569774189255518090539439913187778955824502616047094999854358256757561472619316794799727577152575980256020694311475734507570884555068760610583402323524867376311677023808915912094673086102454495273890786567500626518521236453818027036696375839950042404889878522212537090174590483746731689370439374158232533565537163975834595089475849569620150853664084074201132483569300397594071352314329557644353393528280075678771796287547853498535670543718796706743655165500150724732691051547990615901138919596382136131631819656999026647001083703940319428928169715838040775064722407150393360535732438137371907227395150711013251525391115509683821879190958248272716573317388914445910873442022948495569407717013444444143692066320744021785879039397231657055671071901742863399890688099709468322443890206161911211222332903066047269394946469232721229110170924430727149535359213737451888780225171817993548822352869714572315578729710144197971682627426860752839828467626737862335168172641051824104543244118447281256523440757121284645198432657166137824321762322438494503630780482222549753842295317251294869244531482851337522756757512639199498381221449202892154463406565373049667242500016378790846470079699368017509432590739785969448619156971335556274091704256834566822775847303841271032208298780898973964456401218764653522141128312117067603319768094697390955109650288586578563855564319342880113756684608166285894481825412707498856405015479427539354093334342214384898081657613414402084187371925715094722101637330754959303426234502604660203157170343386521453445500017910205883689309701637899617835099697129873807339557724817383849783350913693002921672601846677878532519020029216622425678893441653632512864071735475250191626523258119833567566676558039071138079563966822510471148604515359252533719955351424677228495135089762301995096644797041922046848385706064018603644191104590725495391859719688180530393971921568951692253354390331004884214194230371984796579288496249487548389300723702728923833709548885461363894595622318464851878841709834647982146177698583666659208702251995900528534942330994835346926474905708769693464117610096676736654252282362223068138062416926067476122566136073540028532343200171053881004054122886229299125320591740314614613567407363782725217015080249552589183096923969648629653959760403156973578656300655195847664363404750128716540312633238912275294282249110239955119310917285310243186559304242728382650359982970926843160725593592241857125400239191624634272576039986061521900110349586838569824466461867664469547304573153953398117565298710697875902039951162358649507223121325639784362852865559617612633049841990759838011266926942311292521237081812915152785863797246086920323478473556047791701954658426975006496003525226370157678143342745102756668386001825086157533398954449261524995143186317501355002281550103529718329085482313398412308962385658510059761040876025569629325626396038382500398906941195211566663631212688740051902289158775536808628861360078574851981256408400119835984542191846041346444141434872325524140215610001896815614996418007991272279497672687216418685002835335603918691331299330534066709501787658786993057701852239692846643882060472869304794519035350972124036853572737649648676683804987204316167570869886167422630194518167697579144746611774225011552908620965472827258033952949567606890238594440516060458187077261664883497542470080553543134794919528938609125392028729170042334769297845848576515623896285492422473858348242167932249490381994724645040143286426469932481250323645541655461548814172121023926238397158600845629895525201549532506763095598318104980968461712344360174179890771158168283414681513570286289976444771614352210557653099649789059749131482870369958310666852014300763717448153616140193431916018626464845380271048955398345719911796540603698646895950657035799571134447593500382808114461481712228889185421098299779336062967352580772647830264980749717559903531573121764578927732257680173306084415850333613334714004778075673568316700666595882569886186507885321294497205406867643833591218841642213805328555119414445723507227774193364030564099276221758202782917206153773027560073773333200707393361024194502182283153755668888611137978568300708862470471516943009093349656073471583588349540809924001076094176687540689067911462405722379460836301588071647971863292814025845898796503651028388749366361905014758266302685874729304307259936619213182753927228447430771585010918234996797068782632081522279632882220057746481271447512393084496676902251841757016441671143186698051586315139212847060383244310803169686431269170729365463247692508189376757698480562479168057427098883959414681612299663069609113637306352184746860385420174041751882192614470777967561849260943631086446834768989897914077650749087184509740993059461472959447416205718842313514856422843038490586714367545376183544150837431845587254712717102156443986804142343147556656266770105037957202716313689960188598642263264379235423144213608367706853095862060392651676285149608397354392728886948106252335614393678420547293030833476832165296437145523108489929945426080892769340026052729413946205347347790962988795597761291831095378537052386463951578346815419182865252552674588632559241252959517939405456692540499474693030539916478873344698929810952489886612760127422778468391880040327303882822550944844608567160632665615313606002149526987864792672175858682192975908961601152429360513022477935580583040599026615298067826793086935230011841783457380638967458726698197082720492163406688479813324974212525698991689385873550612191638513655721122257796014099749604790108450418028865464940463928930423779781969319147456244950176743816488153040320517118001292338038476018456441649580433206046831611369235351636904708396535253670698580345956756334049520666792859074132396498869602951474439933346449409651763845348840359765734930403621194733504034877134074778219316954625177180185317102138959440496160379919111167772091564310896297143747235390574937132340131081408177260628748236194025366816672122481652748360910762629377411749900115722046538122063826890825012246558494662995474483184980937306741611044047060658468219263234237165872836393339326289632765734807276889275254408796562408612941573425248655055109694440834781169542902970088993849759745863230270286499058087580208527831248958991143594185501564030352183671245416611090920403984973378379612991762896840905248304453771939781408840226881083364525348906309975055368951933327092360812507771786225972742609027538792002274815931552288702983548561008502338062755849080121466764692111752954005190781120924551964709371151567768430345631117363895905013202978220752831432769308796377133407486997643336298999571050082418288757450893812646397547667547841176920350879641244705927214054260060766679169137075977478500427774519809133721222107739056021337724147778180623456700551589070479466613774313674924211104331416311497875906573638356364098666508169739953385836335213517134182719581082852230788761058856020042678290494544691975319999529641591803201876871946341728306534180185076955470768182517429646001246096271513337893324046357592553437220480605527163995218645487708378003095196169041244259151659484687832070786221345450717776741857993523268263558562964590451565031408074089654269098686170798088110041792290895213197065515746968977141287518525164984146887699414528515043898703499885039515074141279252140549515068791562848135973734995695014501607685051201875168039247958629861200740187604928685400206687937070744689098685691476463482181854475499237067721639198632765618693100887933147124914813710048535237635904852999821426476605355966225887490627786889838219608360017623459332892376101044196394809526176936650301899288172203980462576310777806890582658430241539977477759380797593378892762705673292569799655324546934766251238641838542587118394316110781317466970885289389928905402926682586691996706646351693754115191922986477203730866480485738370661183134515243565244582039654197122068964597952350100948852729930671869261863644079666330665140090700907522749773237287733330833959357330340437945917038577584086033680408683901046691963401953123579776861003321732541251289943034505397261533562049007605296018158127480235878981012760701707321042276673944788997248895376394856922690152073665819562985024798801500102208888925265816516751089376340039234024497483319031692316311939744868132135686491811431421001928901236216768532751226264034256517197410276226823093686808795761048531099794922125547969083319589781742000453637139089525056019160196619298194765795367775037262427870981521476815529932744553122008357679663717215824583007874216586705147357768610290061354440214168364568628172331807746551742847665685872156593027420199480360757571820648006181418699100505233342285349471460836567567329694167913410324001132818002759354236515547354281539641972853177026616429132239927054867072894709935740389020647018992097763192885399399622856630342859089972105598705066572823674249933525308209714646875231083110266763068506018975699004263285031016401836758487652843882571504852205257408115814669631484139209516957854888397168253823943411666306425055021422755078239405698585472851108068700357474778914089214069017968867178258991384069673826616939138580311015984350125401441641438082501877452257237537245563428247355015420894085759638195246124276836159818427181951358324731488426899690700160571867129572698065117107388046141975686948954566185198285568802055274371528163128062265128821675322889832547747428257315238723336689195738033691397511881480466182544156309132918567153877682278939182502435723797816074790529247776225072371444840456127472874259770030799499717645968093139151783076031192175616005482066835341695973093533617237591928093235258469839361054679292490679269489773894656621194808134552330657717958872146698926608273874135988438958853702008970660037455867213237349106425365857942657194746531699732109879971779147060076094886652711564712517663206819936679215769410888903287075260500428979365955528929503033093275055046778690606599669982883221666532853617960649810114868752385534077687477508948383503057672036570142073889729579566160128732766924767155335745171767070228425061894538552540549473428656911874203206271612450188653965714670166910759944272055131604889552247265941594894968656897999110176539915880352996860567334480968501052570681752974813130566681389842097051268375605131216124652780197137562492095435349416028640520273964058147060598807173573661073638846871190381136231023832906510835153133782743898524769031084419933172210579097031178602072184242767719912395991788414686730327076849265003081345910092839051235522491433365380855591717322766705980021789031465621628213218003962626326177395977291697598177955960135657639817853166653460206868945993135178936146152821408401167946834248571265604650227898362555455575040427117850121012828173022254639038715379524443725375883978475031437907534467657915398065645551372619956666674714659723166442615928130436567240329029057951019925759257056449345185168298691661465330777727294808440299328448131273748745823787017836771359414282202695754371560479277821910709602579611998042339731144178726934989338382655610338953904613969848120557270632826408216644357238066120237414930684302475778527043005515962748001523276656480850104075850219978279322096475466696659176393766431566096890369989967800500016412818025133546804228046039436906380331506496928374016337268584833439811115289226688551026979503824978250996747935929116067782905728795344862825408803294967271270714964339093289845803593361587951660685809386106835414063164050732639162402609113296967596593842254498544730082503424017471419036208417068727360961392741033127922160017055455980051939725955468297386171396256994054830520728163860868945006208556530193072014191078256491856998890498075947918115612551283699938303177292304469681277923852687292432441145927903402888200802014142885152015660308011873033158920448062504253070732111867836846678363684501039892939716732462010824218505538644815628063773402408160730881655588192309375137902965322946642759394242041934346677416538959398752550507759699396026569048845623537060325773789610912002973735759702453278742324473098737974688427311565372283598602982930741267871808626293544565853717450212240242267369291827001699728509463054519628776481718856659556124042084053879157103025142740911814555647628793408446647043363749478255366472508918046504031031133289037388635243589660354538786793017902807870242831864484439458459039064949803658412005441033026149574007806982911105977099565275406311671139450458591649900470051294196048048977654025645080671275783620407569131224888475971842945761502542604659904821356644373744938658942095721464248490074661573006020106368639671350545340891469953549616247629187626479565927504098337956856171670546612949167014611386801727649753787475241170414302904884163390876082541421239754462203349411805243481788822511915852104114267843518563399667778299433351973197290244783725618800329956513686659895882980883977103438703030692281946821588257646905395197642592857416790491512198723701519578227854628045328560076791156480513261763342752734145095498698476314073557096546046121910974148842471589136388198900982206254555283679784172150598200466633994936233058691345469839080633294756102330964638565679874978271807542836164856884746657676471562155370934764520388224233917717191050218963287604156905556965534825630217789236608744941648658290739759053441337114449084903082644887498349277960636677648322561087604555372644218526574255188990846121296872419780154790724680464316634496501950010199059410815859017909389857048987294912882654956240902213149865885926689687072605737667155729655922245773512292311965873503711550293398261275538056394445783648934756457876009756720423638927347146358461247440433462835331462386053126359608284717492101642371599242181240926321229125256843286410054707072797097510827750984110911753822860407832363150666644971210507380372636400778812863626809749464556678210046201553924132923732087681073133140988456262873470608146657781629640670563291333402853078403071423763252799710703083394190657685601142610601989294597682313762203336553144314864049532346266659653551353063083934225897036005465246195668490871809102025388438244377439611350982256546730968055574329393103027499508081628185887398240464934562749896114194779439215098445793914490363797739253429591419638894193887349274793199689807392679375407473275377176803252871129849760794090688051623118979491926617935496804462810879762756886410568627671589471767705818007700728239751825153329504475421180128627103706805365441953535336378045756567923815702448208811237560385687907310219057546678495188495180947590003689703706842800936446045056124455162513837588320655229171250752513182598248200411703052730362438796153421521881245471723920472301197417741565949443611373271324313870181391934784518255538012897895468440477370949363706069246831594958974380942031163760320219071285191228676656290290131080786914605001444083448053850321701490917648077662769020313107914334479468259188415704730413984336895075811546545185231849831001807577918225783615319207715750205609861620185474108945236787859783841618049261181713218751153921542619179359716634642573044516160665237983653116609209285295612780740883052553745515339991757542331336483170857696717499908326232313631006840405099708054353160557393260826730868005045172910827810687902041026459590732529453705959179090915401583492467915602295933217292532868359956045850062751438385751196078843978073014943230557697457406038679200949744060069538984546733206934232205484912648598744885960293711464631079302512318893465931014899086320771696437897706797694801256880459441869299034218936062677463875888640892742229402326421982581437156103766639897864786103318639737133246306911132282500809422675569008104746339874083515694175485565186277930844138034292134474210340387391043830752418417240813305963960535925968586272093185487807755176764726669544579653125776837940479260952434536439222664270658220789300138051508403568585301560223543416784124507132447495091220056323782453189989182268034241480176666959703158511693116791675116998395859154495915538061874371825100677345235703938408718819365335990652764752252186586772564197061937903352329706800847528586916808272601866103775401804533046509933379164178809975557292010182848319403120346761422779299288709572942056218367041538707123795995208848996647567513349067667024635461630235076107136122674225072499583190304111006393479906700175248874046803523784405485330562407222779012490349473004130637972720740718411704948334043339282705547170822622569721895388177511348147088850578938965445663071277197717343878786664460235893475500402223767462500680008537338394102213329701186152725545132280518607922710644977043817580843430110925038681655686963635506925575857269432325834701112913589230268785879226418816196268519079639774485933032202306445201114083166501885546409777514724908640454807659674719298928424383636549494978440170075245919174659791427900273483369518775042895296120514477041151191801984082471812762576085192376673403485380571784394517032815293970649417102740489876564967863034073198324489819671826012242504702674403671864134739898415076742550767248924532217430684706108838673878312456583546497614371430699082622053439844081921273046517345560463798972844327196359034417548803501118650287038133027964678314294043615744658167959664672252065677763846489542679031882538695998383337024521707896462872840770649161388526455636833813775361526547580869879039655352956187153601185498534479106203145345331143928299942882420723541455367075122931318513451609386744375697573009201570808767090176382287159846988038601604159958089135618312958104607068192413762286214110039297140865507094768404608037039690993779550362984714386523343786344980666441120063144490254649471832195500342508679663229567245894584559307576836478040275381658036634077602287929924228556205275294098864082587837307145732148187781934871866901013799614789965421053065932399813071144654725705883276211142419498908417078135780647669882566112190337523571014651650368842704705627383173982033167938416250085749608064277948606811931447878065254196877793253414453930076616404126992025913611971576128346687855618990244469274856537880383617270884756482549048277408159544610204682588643016531518026580313122638542227423972949310956675926843732526468265788877959460819125284241363495696614729988247556881194845662168324205097829596917851818707233095268937581522672485976841588569247578245891333314708601595214801578638757222786089530134108586355970871827773414815653327458480374741538697678208976971294990807195746133829970103088372122886072654223934774272791704143589581454592818741173505285090512710932621389116537343554201470884402790934981103635190010748748638710253546381953263208836803888107667168161855364934559999047392592766612143620892914586453807432132550001771901318348381814165516942585152903607467119827137332045025230066418255600307994681532626024917520224691112460220240919442366876765356306283450073301939233352730415065199773017870358356431830078410753729252348170042945969996347745428624113511366323474950692008435779417139472407888366952472810412417708018120927902540004938200134299151037152404469110403011264392116930016777208265249767261691582955726507376544533639381456107293881971849176700794185207592240605714177811504122745368293515499429439130203036547560987798991173025884034832259874687749885213140463837708978867611367965515504540010995267279121755771060987406459776032964447875887482630793947070799454645983781636130758415236549280964858089549910845847733180041525629130466671189315324479635234837138593050803509777798908863884204162819378285341422516184246741425037218003858353853252810789874183146838833790188807621238051257153518367036904944340987686570873893622946454342411455819641356153274343029532994297154351739398494946242282812694269709039001930698507050464356108758700494454920047068257957115193442564129969376634555220048733199771670899128473049943873518857290205264065807958969111532538693941777847830915999077726674622400261534639606547625955994521303323065921288370669974713905985099029207919327061529559514674932627450283822880754801070709115485083368431413046030890684949705219691763650276345760614781200978648277050806560086945279454752385835258689274712990837829874552343703542460553766558166194503247882892299288295172548579407999642732500841016114628863177828026198416856013228870922926262136160109203990839468811127622268899186227839089844152671903998903272066865094048046742351386102133208549922636797088596744287592588885450058230778477828220992262648935217896944167501392949656550264809283934026820631863949262294841966290751138366440289628620114579658185432143915760803547465790233049117691809189563128215709794841802897341654206011280358118246640755001102019231635821075447428701462083202352785747981564015010428381775099644158452820984623764347629032674440995956100445616892338162098353265495269067319094411860596101771293674535602452617864440685873961013544187870187633783087714384457271464937880856447782412909180763248096263774410873915781478774185716418052494197899744942800496761492552708669626534853163870308504185842923934082630566344884180247542884782507777243959378020816558960162960574189415186363029227119542110312751736943150835235234752852270909254438059646683901225193243908361737976126343572922668475993116036798475923711732775470150999732453690018830908011956916579008040385111889716046388109559122445893770969500998446914186523155470517763731456429496627547927425273146315850412177994351936412575002173829273513662586628559311032304952427103463914093677985912219443489609616321217275820373975079216988319579455187086179405755080857247812407983570457581478564437510124808065121101701751947773851690839585389373601922907829979129768699996200435739274663898349694705552131998086905741732036382796339786514426867356804846645471256762438210735116982056564894999581017025072522288790892722795534526533104542928552779282910608141426071542121280091616696994021222759351867262167930789059918072709889692782677966034245400413449043689436045608732439813968958039144877728037884820416038044250191945511050187370148461723497415801551080707667851310510181521600781319772586097623466929309050056111021012911796493933123064924274552461835061931822949817555828147725876417262209088988369912427640799971419132197252051229083153718766664207929974639203369872416147479454880581237471002398423783980036454921299456038741070087671759342864445168079924301047568636710579761488172565397145192431365150849952072579307268976780833749848607830830359175383885547780675987993876913002755489621871187709450436205271377298674751768150364767540942468295021573244589807362447596144706037213197133833469857362397376521928610507318725119290335418434134743156958056552078748891498361790286114790702648482226014380966541373520310106598177786040213692664696287807457631951753275790246781965153252643077632249514489546908999395623067816113667987270719329660477522968614379273113311463185391577898545647899280020893383013565026875729528532079561042112414950612566158165427268509909663309936358116995963875328427240458618187574060736337249990641528093228716417360566462755951423015868054530842705931518893018809621126324321103824320036293367914007260415835155341821883413873712972961291931390204580064485187546186959575813835771829254231097951521458861158959945676057616759318849246658277661670490527815229818236475205071675455902799083266161526654713925587046073188331917873535407237563963520840532041857912895549128310909278858435880904181587735570408678881554301034811676699000861294753543724395226722870658849059609584026378647674971031256800800144644519643225363388258518545819936403315210973745793756368397367625059648724002200535324243293969781932900283905604357518352556119504811567964286851784457255907934263104815953365731429969105663453185266201145698880288357166709247129803839862755620821295758615937259085126352505415639452330166786282083639325672702980381364000379462524496427048123581010323142490589303666135782420169677352833339617700074067421683789507106115060362773414623321248008996458201295606948498490571447380531455248229633173345312590534241062510330255996926372219518703049088201478258604267796078081394145665308645664038922983881899283189206464380765433772778730340346612999462513997336638012062083012033338038772526801485817063562291411843188873072195448274246458741938845370612535776031778226859683691988825809175967989922190362300828119594967115975737655809472642236657000705830256227083855734243505871081851452625904121645137985624455918678752676336085839970812707571680195551195743084175794839398714528752933842075015259969474021494370620791497022253834647300024163335248914072424654522440035459484420334787977929244485072506642219317428774954678272724442495373473954102569561563697226489405611556106201560922505688601037104418712279019754779617256091794548766917122812255029581554629118626377094127804074894669988107527237867617217330608403483899338133995200053682433878291662267281047931833436799934215860304047941041048191837238558416497610924067473604752619531958960122689009202423895753260978903831551999552631033956031987836127697717452186308163146452264703663076040964010994857837521333947408137321538797397216376032722918038351821344371500004870045328838299828044446187387651106561903752098240458924113562424491341141655974387490355500256973565091572956173837299881745673472660605071270402437795934650384061350263484925658210854681190092862715817144529980400175128523876812652771159131062306008913010458602651409483548754709293911116272479419529176078540834491564641317957324306926374797485707315034341410244853311084311896327409020969469607645954051664985305180157644472346592417358005232826785403515291096126799437468764632753579866245299786687717162018485172168656250580327309645677006190596173496921152894325703570683003571786308888899522474026791995111067906532616252564319115544239809460379828570008059031726449122741034290386939805300403194869758570378724305357323813941914538464453397837517087832039124602196479619830046553351575474532605695852952053372428507866944703400152143931267050174253196469274917356957569562242843829477905546600469126395542747260454539347067099337040995517336694705840652218100161678352975368132171929742693580951692496474322299415531291715432319021675219284625402378939219602193337275142784044628322475516892571021049066681559691115839760995862601359111473224577548275030969694491670172031026923058703345682961591719630925974560698968838753175200636446285018704013367265745270329760170892765217330072696515672531838784387982070269135079106262418450466725091521822989142754174892792583435572413963820827807210423888646873380341153078006963136906872997928093896782127292254726238524443811375368878913339366497488831531113200357157849307870465476866904539845998384222842383633013942735325861872941890915861584846422105701831564917043140297916944556459414021673724889418918357786442288688124885595427442471751321345215640650695258476148925861844114284193107034503175983384543608230088990160227674599411288480013742350521128512143500428486950678456178347886739902675291744800108378763939967254957965179247865338321796896024067619999768719152265332395954007093594681474821949520350274875948101586230589060451962060801051545173470383027714208267217855873063630127142667528035232376791668296529539026953796375021301128095775602978091548304073131949796556505984260934963896582482541488207159309449014058438791809682089328116850172692812871341077832728860367169202264198618340405180817815377486367208763176899636245490098518091227705874613927392721347311626258237676551936507664562225514553118841690192063951386769831661759756009170220203200070291054737577573031536369084460991712636969686110115504953714577201687834112175816030141049025214816984675858468197835451973662192490762800966680698310077846109817391678997727580021329616995033051595547612746428715280482664206273651192370572459537403740334133494379168607437146021699436455088312731637944982949878765404633517549446483798464684818946554669744565644805488245075212448114486556791100307382295301261461743438909497404321392800024102990475844344162425795902361622736448024030773797779197463557325369611299049492340409430918240073841953494363113396971834410151966379573111526039844588527130746953548392278202993489101988075342218205089139416056331916728521866009707464145279858245584086913237436396345021939763325029735716962874473783600977509862437748211078643450434034356693849660230897427137641322242546925755037408117624235588230435048744868941871735696725730580909835592742769581718325028969523234602594423780542225785252259058091981520018513589862993907787891956127584888905398321812696816172768911128609985477072607191908030075644925669668645601161986108572052568984002062698394003402935355865956783729819731638387703123536558868973595248032074444971613200393716860694372087748434963881181825052205116946156555618256449122447535133675764043814321881123904514499521609279464264781829162507459133111880436680415789105728287719582673928272255694768441810849474099623987415636745991595646414299305661872389904728982306785975007231105008998663920784270089379286172166160126859449098481624052471016395020521449901129339645128185596229524162019663723159628391737251593870000572568845582979897536687740716382298741625131997259490675693325570603462354592734203603841658003191266870202007394873959058951219535559902703762737334356139760850259490018166838702679104105691136938799018141434747600526225175657214265207524087125317970166356787376651428932123235235156190865398263181550317361166246871363189957666633695490768884421246041128317623804102614001033099484529545253471825915037181634445756234501523219672626226623696840401812211805617922094253775988646286121509441015165510256717005182226372828749884570391658198484753808432488371734994224551059036456958285384463934461393837666724829920796468132512306463302314579420380619953822624568353696130032051475072582983519706020235675587633904884398856607959330942877474076081301595165699085092650977593941983209721383867587072249175628636203315380377142438159898893074231588176005968075779861188799299065937272285035963137015480236768578222585724407850032471709216662449355066914654534554916482132434135518826208407635239505541041444742296900786671091683603660830387741951469966080840248090522030252088512791627940057730578262007425370444047823388044337305452856036187149699995748287641219384662960442458820151010891726339578341888765936982703167487523398388777859122839489728255864293206449316542542092934185069578939176341995791896754330147934675539026175102812896691276943029172156241285014188707800450617012127502490055843728442909902425771551565996204052981717370854914941934091836972541075158773073065276688520805805570273347849233852320587896769237292883727494183635798245854683575918249304165781554251627369716193897009156488731742405281366657034672050296415025172987209867203654919346135940471304493560695572443137374623587775241050413428901801940625425974228529669020732884972069945610168060509139463518581065142642833257149001237766087705874123771061030455980845032917107648859247358745835468964689940001880683205865469740221733591861363504232797339514872217638720616464485272535828703112231792477825043029108801779949084030879334955143338402919829728285201825630461822638755620075548864509066113014559103047861438543304742963698205360530920186448961173645058292159880615350805404957250216082873901694627845252219108446786318509250383703770764862376493629465304599537050199474199639721221835256624642885334170020865056521138023061261508331445285627220604237143346583140052341569559199958080342630565634410821698734433733144120182284436514750068797294452869143702785172820655301964139393471743442281065415125147202610860845196436684914024196544319687911921280972449947969464507241946024195386345514735023585271209345235415737671740398083955439681852307887707538585972177501306269573359346801383249915902805303780146916702540090008087473607134975490291835680835113209480902950754016424221075966580363685925522113744886069646903168312057617852432016088848236884274536529904893060649292704540936780656252930743623354437946505265547624859550077525292305942151462442887129822015226510465650442554131067242474152600280279448234740798374821243976807925096393310641119871858925379726305101531928208759705779316481355577860909850139932775465815665398670275794647110252721217742011837246489492631630389831541806747753109284793732415004087402085603837444300535651038434296904563362721486491076416467067382210377682437683280326164706550465052857990062105728832004002915766427744669186201509330087544069137412197586194744024761828855148965129499792148495036919630103642229201956258318979587994011492223856250487459872950632610482832631247759925330225103434876107919097945463236697383246488583457037220565577771021910640515330068576344286870045584485229121752732486077572022557641506578592010216612332660918456603840962942788573978929752924242680037530615937581445359241196652442236109183078812258812817535080557863066870299178208110726864005992990378011677754866697088257069068785763772970238466688177564034725698657446836743831690778447338679854870602398139226554506937671497557484710504904646253123084007237440491701292005899848528235661393036321620307570971486484078127060183561073674373558323752139790960809850082646442182934738543698184595747866037495630584100092484637149410161189182295197576104405842409784060164671344981721128101206156426319013681616853346478543397509832188519405019941672379155658708392896782162081815577925175166840665402115003949591445351302297704552930360129923216088742815668779400131601646177227161861297134500769078452064575785763219833109370248407574164255494704606098250549411298237083141144194493386521156392974607780687788681014886274604789997322261707750118293677565328273807084772717048875938684037949765353249547561282200521717300252737248197327272084064984764819426951075878733300419495107499660001348648929875720595737030644099031946277514167902134342302130518294664470981873239489951354882666242197663392688552353011731406785882726559962648547335155693387161715923475124787878762074475784489835488060098162875562740324689512340352367920342289473171525578517657685540539984205832187707806693155278250999435461343203589471975303408911129012318219697603214586283499170409980641581365129177966115596658548939775159286359351069339559368747501512439830497166725772021421898028797928542931358369956370437367397828745756153464983266457682977966715857678514884093338726571826974220128837333876182554861129008800534256334600504247837561747281588604406091361033314976102629007277885915063527434500996105889244438415691758618058685531196209194511373889416786999789059843782060016219488978479905310464734014157445910270624562012290793021482765370670624944874781530751057780039562341888779137103894980010016437920115547114476248366329870865183963881738498946871656111110928127044422561995509790674508575968804131049610140820113559277634856253691483921632000145253192667577198955202754797101619504524329957642947947450147362845226003491076200555404598485259964603196546242084059586054038753675026480890719100008536079881105067935396165550757087257588846500949734114996734448835151249055400351866460881443936939692677395369849168324686102561978086653548135788049034560397281851916888322710339040673919387486945841757432566540112038694653611402735327227814321467273603640263581550441360806830117516551597653690105007922323624597224446047820268146820033048677195980924253163514031957218120314836232263319861944649266417001076878853302072438174216659519301901859785684400646020868857977493933545360217723526302304319856769738091639273106831519987189050096938901689254325054605703014217934753014691606884893385345890302027632642092263014522940117370457894831420003981007788010045389365051172045069741853547285446400433532153723581553690036862726395750277018183637080655281524586558810850248254735298893818220543687899201264210478032856800486078796873005626287586617088554822269937789099597667013314571042714447091584135735137795630217519225647456881790901229836974903653537808928874433768833100646264539058674079615781253170178602560823427555282867308779948184769940101200052867997599810551596493166511209069040540129937450515144734171511854295279862612457919689018931807691672003145290001336234896010427296125579711661133096283086576327517460555330916086697332745437929859117398686013310965884621474002834041221699932305407497541961986833282972162216955219358613613096040098728922971540096838893964291683440321920951043329037699051569581983619896406135599085967560309097915430874626118540492098586229648797548586084462801212977521510201544573063161636289197214817618231900388424142837357663226830561891240524797953331773167021413971374777918829011239370586977230955502997591732472716235016429089992460404758231988984589730993129142288094089740978699630631694358244448781117342451365290840906487099313138056107773312274863210167528677607898864892577744035453645241932174086429361771437515176730065487362407169983767244183831538850524726159434015057988372534290351775281538708941328120812503629232302773834381800924785203150735165557818741464553933359383424540118349174634099928061909185803686009321520737733918066005349649218679381559539341666409968315296563564676493769455092303665624454061200313418232745978311966569014711147059577897597176629315528066974695037936301933599230415698496221729659446574818180166160647927403085892524035781200964036978668633180775527060493470120815904677025229855198124511215609235419201205248858255492668856708656895491891960098736870980734659500069797680930809661016246589668771040105117709831902515327680001695216052561628040451278560430297739089640712409064863885643775268710611250070186892398522526899547777049664943942893671900335472108730254465003356760734799733532507847011803814793860799811999098711516452854179374113860537872239900660612948123755792425164233512594247423298507571551161228931513566028792879901864337101596601025111355900539928109395832306252260469446945374234627154246851836196127293418383946156192288525872189204895438219571966843517023140188497317250942897455820424467089811490247704627515402377356849644889873759423827988014880061188463330323068822333284974728277633718920761445527068023127568895368151753397624498953387042490957591948793275463900277998955057526947282304432653159666898905396755486070895280737683270280510178848149444286306411109095312835201000836372446096360088668832279969303163863167193073927646085230502476724958242310864250316877602133254112423006456145488415889161462377031136841312073891504228567813346494280421764579126143478167552821475879061518098451932477601648423462622841124234457131262525144013809157462889041872515304081806529352042360593429756732623805659417953777703297920654824217829803021733385646973987509510797101332168390545405805985062989301962217039013553323042294499963169261967320362983054638120624453026021397163147145509602694558035312580244355090074681033645559267935976405588005327314012618804485732468759773100794813067771088515045773143570303455511284524869048704897597129074760497034749814135046532912956207038071857759429852781738319795649100709848256210918945259262836906480170622973249092302644395544358545345571416625995017962083095400690352618300854553207436775088788503072832056344057174674155313732408548012072056646485324483085816860088372336163216344544227735819463572689470692289569281997770852074947830503648648736300472308516769286846860357842836230172422811322686932861341658910155011948495290703991001766282939791857618616228316582841675934116512234052343891492221441241163233487366627679794960565919657474267053229795930132208720197266750265953713661357727834728916058177613991825352650584767672330399527583490597869781606118370998804965820832293721098184246843133283748088507015448174254522270722357256360963607885997865901927055595583367372911848464307775846807759331431252588600922802981786709750446151801178938497707499961599150280872877163030746242742193171579468740078129027350140210411716361461416094992453787335556330105115660982570744941683172588971432880038179820590253924620930773566696279207373694934107448024037767586620633429052680613743911067810995174541247179131171668112723209132201027508359289463262729175062747778916427151034454518759869582926125346311887203533046783025003043076321075155013141398675355571184300174313206149514952299604662482812273187027911148167396848268456162233017116061149085222801611187723272367063193075713565357856061063353505937899693467096305563936796967230967366080397388564264089038159310565874069279699838762402580071122737155156948347674887947189349084314144748356431065424784016978101839076186895965249132870083769196277572349889672793415852781651277197322909342884853595447698299611419070915197620008016109992304318311165965859651766270345049889114993122539112312431882371339744064725065894647924198977145172760781512564366419715686851553241259401343044412497556556882343035323786569509807979676417471158873829767148839866043529934841180167649537662984886347872839907462509604107066569945967781762396614266646165865342109987515964708361635550372237546071425966902097789625666103155334792207577111626022986451418478400049650046726281023422833513821303015425933756090723644882377089480376756435416664121334172946174903877585040314732374219678564173820218656811651206945932742386364560601496045142017208325791299635927208150872132211271885587125800247513853646095869862029004971002978357153617287753562879997358938451752110084300136021925507399425517717566406392779910568692067814822633851373465583408614081639906298377511078197454326137649643242378524010679466784229054964947752437609422919310799261664401940095014860000654403286531420670448725858676142029665513101170922218431872726070913334792753767679781408291996661323684287323153686712227446152733998079112262910385391935679297678428012573057423140570516196061062015273914020399255628032513240878144714023616099653538032907209725532713350147567465110056391928274306234450577790241406146468300876538756491257948002407296349162915736645935173416856131509335464822409228698966849933713151817853700549153557701104530359793378408424735689448533737796040437902345268131551241497248140907505325891131329139883073544400226113609939222009250182669628336868593271946221867704447314556718671893100150095591189298039427222601229911100362737920729164740385537129102431245760660790865375730798654570401125484242990817025005300816560950713462730269468896933750348199128326489628529716969804740248708709255388310296066262780294956274440371229755018890592379175666587214962092303490380572761093765119979948267010843648930107365165409624543675438567566652320548969534970912507907458775585018259650669120713222732798894767812095379206863822139074808822254059040887172707895359574215405739417874855098168575937048392015262941412654993600981778583246360932717788880984101095068590299725052682873433173866009948706329396374959546555087488267942528017141788819485950478973006921262721973839854044966672008134761531120796227412836879675712309726033365137078982770691569217082444316894680710371723030585259943853107981820378382837843958846194010699427415077743940949960104744078860165866747880638199989901939345040787461647105025508655887090048851205844809407048818109799714579038407916061439114664289068550175082249173372253048536993984878047428725713098123289018271553494581703453176824010365216641576185425592028415554189825464533461354399857344191754933721828133441538168939955974815591061294806784347522447198336450087862495668106176481304924211399632396908335628200323139047344916610305635978014868049820247371477447498048606803023059359597087690005939679513223683891784735391876414454841142758420198790717689199026081259772608057681319677867247529013019790828973308505098539281538438188363861619449932917616350311479663635045901834360933522437794059028914073985356228596963531714880395899618899198281221745247586325770582592654777304505488764892579876655924802066617676700765162695288003251292136400098835197370427734154251323565451907608999653495586237633299398988013788207912804533987775964763067165348944660732864317540471948998271890901983511617654364175514527181874868216596549893016964152996926822136131864321260235628635218073887023087755984002543995781144168742768626797533175408996844981898848054901817876993888536763685942875357261526729916955346521315897121788730314442466842333754613189458193067022687376445487563616237474936323248420074749499096435639855541715985431093226638200373831173144538925194172665357507383934948448516047296670671672490257633460380988841578405049943881907894120070843494843863790284719259761968088914638609731606641487336123859534004248124253217313598552002880490852296404368284305701007916158991261098939619644662845567007673178767282775249803374989482196095274033996810533014630448883011223544035536238554813222014371829691714685632307633880622185074343252467253193108651918661326041403177149949269606828025979711520764370680016603654969151254347774731283370406407120628042891488168230802822207078148192408934670546133025697341423113874829245136178597281505712969148016820939805607797075257123523193508855070054660376382448395272182893013293263273556935944118930444141476623681551448261893071099814186445283655574274304061414458122629839406416811053170344339162372420711838198962705735389504416869590364421380095860474039511007272989724235408816858079918843904967021978244572329548891055858081692684096514993778466701594185217632890779655977895688113695042636472361573986655245177526353789162173462895512747286507115548536614442191189549512671343309750895617762940898626276154356975187683062349242394305844489104053960928781412400810850458473357789982695280214063203857502752903820873000576738723213145967016190088013351716879488048794344528148731448757268802031407025139490731760617235351614217798200759599425496273659200725968458583919422966729394464587022410876845246603410532011688560200207467146081174960785523711273164138103406479497127848647733635806549645589356323391144734512232962018199634775474869096484429811400691497892028815555647638315801457222252901557917059060185420815719824491621667449070896911655793583019177485903781948082481808237807676964401613688634163199133778030988586462113757830254575585322435872546755060502326576982690528487964498879455095191293238016763974549440654677022202198371674351073057150183016627583589775739007727850010939547429025744928587679661575939327010572480716599572835946640020480899672043488072831300101409570119154921956111684190819950587478501154113355740946106100531349462570739948375065450470189133913860905719425291924240688604784775890121666963333479353632380448621383828839781264197236406406562833362084714866122803746042620238237603233554046306326370514526009448321557161380019532733537125447685446996864048499863049582912167929710516057575018811589264800361415672817157945215692039822954495330487613291018251040943086628506204115042403350532877560760844654469834315262633324166010958776449899086247591849082004533095791247201872883537394940458298214108854819392227777351400355024221363906702279173701306706705446340556027476661889251635961338374482322534248809457302710382260158171776675845445975988534904545977470826074436545783896829695544604424417360830430173652666519676991880943133137048380103853779214966811085881527949009404629765500885402526038268874280400487422054116552852771368192009632134147333337154021159668139373159228031340952234717955844751427645322763221601873225424684783176797542501487754750261479646818516789704868119276642558284280932871460494572259258133900111358949143375057237589615573289595548743421003509281972245103792397538258859002902685122808298551959575046699059972645248196258054088256642159152210666326832194173878774599461947138060396459860296741666070115276173219039527385230643230080357359491843750437119616861120280593912988416208230322192935130090546537306858896575742129887334179370225286938539700291034541625449169970799809156513100359997406498971060063793953370353530982963916632866331266605257282811066941555285350633286485614805363394553702338551434440857804522197014400582490412071816797740069743037202215298970340738524280366674187523890436119699083474237326081112848009273198695708130317145756067499976602111213419481879616637020063217537386216249472503963631270387869051759284370200753838862886004537757202877380680715261769587254769857627519841206432074229100508001159675332911256116909554592988703254237766833886360885557480651439785044606586288939267549363433626955600920484019003895267319131452301272316611094339573330031945743113294617280522837002586845690219365429328333656852699364790400178210920114359188891444113559778471047648445233939714087461236618015325820584325817143832369725498869999551964634043113982893837479958058122666742184850475565841935484634801878610568203195272701080447575167800184254521860499865301251415837178348852497543645773819828605250248356624039950189837450013220595804004906960253706556794890184601211384220058201533012031806426727843511249086024425598178413294270393511649678846147772722836633182763053668640094917383108288149251657715139228057455639015240563709166951346220870698010665786832944382004511425840816382974458631054259061741034450343579474948426869935694598884448220369742463087395245064936007841874407758879413560208692766341929688106672166524322515401377774300992380328080110718995437442806712052554457589563272898587169869275603440155019474213269414812293963400933880767221735748571839991209882939368441199527368430793482086332605401761618880470567724481284393436310190185109453507830632041085046096520437370489982150779797273521468561377969945707247704268089694892775176107779019396245815030162830969522805152615143403644328569860937887954614688743112318370671016241680203058930570557488668672472405238524966806739764864217442298829050495277444251537473560889060769846722033738182903913537134061459257562621123445280100437663097451713936552852078445887490445751015438527278611011080536379908274587909672814473866871859654925851347620910962457487543536222013870911354068007763489309239140536448419599276326919002644411727151542883304191174124372508378341990069514047058182541715147963494750494284428625216197454235520280391537252587492322702483731129141269642228474608365901269927013868640630573664684864157642334946522027573126531619811747477728713813230201314473544878609404484576129927555552795648815730033789680124330658327511355917217486148422317202928433603788361907122995316012690936985795930057958563934507310428446969742866068095896699973246490486805424531606307458634441980207677031568861791758537769422707789939236408841028103760762987626517730179716755332908115554848751348259994308923394813166631093434889716726817833780471274793462441112776106230817202342171138131000388321829500451368677552836277650490629907372971485860447618665051343553649587419168822076732443659684586120059996348058754890062171833322867414596886863963729159804662165958061117084208739280852054487886257057319829861718639543272514598690744253657446847974422053799069833698427952803879831563218581585969927309494184301934738976707580130233668504627648744067878395012751395767802261216148979162940757780723309402916678402441233106934816946069739887591377113192893436347255584394473388846181291832880248767061249596107881108122992895943929981085904496359327844023713616014068148117045403133496087744365833928492032038175656418738365920370667497330714380917976071362985582828678052259562823855366779489322648670478466735863862545774415557273685313001971474752769787591317990124066791469783088100835073542624283959483987814857517544957430070161220764747822027359642370366749254777225708444409931121765275699673946234643679026258249386118952697714894392117650262387644947756772420836840672367192401262364042238055633570583268992369335147720937783441906895147384536706088454771716775901892710512305454536643934198166597850148473359497344953543184537678957389615771619252825089378691529757093332973969956236317593367595243536690329935517397626192621916500964050115294786034531834585757523388301506782667053321909998926233556290467073701707138634546256088355089331890715682150733461810939648926815673711832952174032722072757774225707777422654121061311348319724849087696520002488368724488911977005277522726007450211098421740456911762588424075967753282698115668926076060716418759767726062495213309988034521840081345720004532496588378870908185854570482910343007030136022166365524386334770920952500857820018744876546152793849507303297814533704061810737733330317933835215444718236432070406910800635167023843093331579924191797486358615699496682991399539852457188209606151671501434113583927019974925870734962237255458307897588273058936444823158164886163186237819473552873986968763895670252190609114173096269736726209349080926110728097804173113074245837010735964946489431761273297385934491601911368052709062966207848028195081001320869158153055708272871014436924023922162923701685218140166195722491524937173484528292492869368509254992346888668160130154821647574923274218552229485621605444452290611045410703506801962885211185814222703517291256435672852260010946107937925582978064563207763589776328633836159281842837725605724406860658736552796825426503468094309133278309898832932731730551687110515362548456948509872361458583451794838876558920567630833418046834446617269969357955687767800349840905937680720048671880251630726245039993990852578950241367718913243071418821269165420903290651519504748759138772127453387453736630206269632013006182865474808368171307066710379447577972406819578937726921596555589717128092986392044846193628609551006267093479613988793105941583825607876360012626916976065524080940947521631060849869290698367334010458008382839838986305463294150985205481962250030711691638589236338220849097683318989155288935267964711866920114473937742550344490274350515542608629132699962536938494418730461764111361183146513216377117452491709704114977722530613626227117076944519395175795194825467770691697867250610834312804755920464619315206543734445252157438794105782335931978124811749613174791916463616582944688683919192715376365479237981172747259396452258310894845473699783958800911255607274128781709317074526857595120495624801365051751591654736194130484416948591706634550622069505804776666767704844119821763327477669113028511036557408843038681657882388377513311601418243382223193848612622217630512095004157745658060898847407877874923939076866139781929610021331056087788877934283654733034746056842112096670222901018954386374376207297891557751643746718456483796100727485807138118042909786227965272395279952409791205742247813308076055718449272705553404050464303561299639136321597176140058126043573605592638127685492747822834228198097850440643438009732850050886564819142240819195151763554137191266489094925883079825707907365602827078437589418016549351194493768867537753947009690958050036631301126216222849057508782363997906409964556014740149257341991730883680480076281742589697102388264418503267865197942033906915889343921117372633667535333273549753198502318928114621685184295223468258987134871199414862698777424425624430131984954357002753362194872995184836090200069016025563686861157882120818740408696839076502927010234480247425088150823488194671138854940493583985343619638515016452447859303767438568557811811599829719841869726086757925329483894341102273082099392486700356175162118598982668043429514417167607439642504673246137817989052251050671007961338577675968360360141215514527641223678350264637200863115824704166513583879786968082136026952185044384760929613008152044240590719445467481144785513484019573314599292848595213904638982037307352935055251610574450138399731365045122462483545748022327664660662882538211497606679584037793267219035700263825185634996169214543475036094715093474941026323655338901474195834827421715743929868655740172504724266504254981675321184373520620938343577766955402629718265292087488705771886197877461553059571608425193706634628218939571510168441588036253867504593932251074978813890183252609119807919573197376306987891848517375038958148754535260489617325039223808512273630169741829958024025643312015547676130827823436282225450102325787405531951848531470261582354678999247747098343573644934521486312393398234791324145976439887268018807435941191959924831005173526958769795710152599001494828712190800151527125173841239824584848609088284451454026880345692317907453918844352712015234403444330242224960708699957295689453506325161209249417790533672046347664141833030654525491489042802069824880251422480773723776503375247180935920141645965928273744791038913237794590725594873125128358585057529789825043100468156349268612255324907781644670855177841374800686706237077455292405620168883826997038083080532265887771635360566955952547502521918645685841400266296185311893919541360462725567899881994243473199497039374054668835907880475990837038922095988226149253842094793821344500329351432601735365138733057024996797342197492247071080807338022522262505393280373093853270053814444492107452967984007890396686124538775208359806436620552309939727094188809040776683636199345696570717273883062992922634515734107798614463760523779554501401778183889960938766717261013010227785862302985424560190630970926456970449619286510466206959857858434218961618173082966828793138823211516770419280074081067524656436544271801981861774451105222181136897217909226497528249563061860900821063726730991749614741342971789804979177391793301091259170844839773770083546045352669640840301288249689590624793108792334055340037344300779297582278886149841358586276582257001527688201612992298066062793726018427839057103490177943572031129280793312077963857066615230695761678805330511783228086116813828760508314981561757016527757130502689011610861670077907382436336562829517443613708393594795951025101434495473522752556176242371237807855609364297803638524919776851983901816268537767549752753496528634910731291223870291684695422330519915251243240856936728224272507737785475536019693644309733204575550192855434087061703750382820707105722039834584823493258598889213423509339884510586370824271853675023619299930781887911966348762064883940865643104162885397799325727606189150042444948542141041806394956551431841191899335654302214689497847666591176428770745995877881328493750428560789177512569830917498115133267445767420767815074932435147591578512460696298008519331095070595094198225765229136472664354434109013272052881946886901359845787442338090635783913837150966799920530596466317110663846103275367654086136293059978156876925248111341785277123905600016189917971373217431108299724522356352568425711909378218595895422618959965868353573808076033692540317711240789705706092544319128169351546162232481168932484564804859613861781191537368346369239610289227659727903557095112777736906608524684868528148347075243653485693681950271348539905290104849574558021302460666334200315047068282458636155179827381344068200071139880163258257271842640741707231982461288723543666228732559711583679568052066364360232850313160901350638429204423956317867514589893836547135700258440992845302107812756880014019338974872259086577380844848278565718825009296525245209355338999482542295194493626333984879647800148720794278330891630796978446545265262061170489925015256365541832060221134988568366582807567615415986528076904030609906159180677329075575135935834925093023775259260270026955184241967845307671438073464289759755884443375279433844888368751942977591824671012269416317398273362562317262663390567254660578277775937970674222073613813678069227925808605473455880008033079326204406836773629343282547171387825857836039721501015660563467038401484135463961154440826170489249017808289297133575195979042417753174047011792048244802776607195078436560660839692233125825428955584611011925448144213180538411122082942047252087841002716070542145501624843225040407352369969625614598069272077808658245289905416227249311408407035755228610798598706263283518649028174388239845877401966590541760966252019565285337828689282510321062600894844452394172293745949292046565719994691819753112693257222471900808016963873454179476137903246447036002835444616172829695141800520539846789369697837010296890215299539096001325177208463699891943008263502305048624611635271714004655802572538753534682781011060759133368422061153683631860836147528853631943337150056429968521203921608896597605757751110294814166175025096549296911706694325691801258866594136358520327576808502935192364685164250913527584651431743652637960263855114394573104867730946911933768043075398219821228231662209222695781251253530868557724421049655073214007196249020448661116410163676464102056573327314525582793239238096475145488482152507342099617263458868338272799159153061229745644774643119679797882385660246100832666151693759210298296479295061295505583855193950078682098609295157717376585232272143179013209927733702055920376082951216643143254422081674352123156638346126740056155441176391980352992346017244181567247058809355173023631588277350991416911640930692066668367130220309982033654669098593533929368302352116315637431238856779939205922609522699391713875599410926629669647350291279411126045628080903618313414801525053193386373719307097106294600163551696056506606164353132369931707516483717555230193645800845905259406739736400585272315664134947060391277513500968096827590182862221270464623957167330765434628312569434936364495862251664483925627998705968682897293778432997873637707766769918651949738982663122671630062243745117650978875675683332084251711320771967780937411022087803220681812750370316656492428568025644011686993486933798516036607982969056948236003128367992631214527997149931835680762519945321745814130201287967268412223307284142515745032135042355635048645145782947784099831502128143027641376279103121740960458644587341041122447341327634361588407634402215056105314732256380609598418566763257646746681432969985913951004904556039104026971431447723172098655781984829453877392476215367014607453757471977081650734233467500267919071522101768488207159469456952145129866249835349150923512757595933551194881917804556300713960864804067176847238515662132094177803769330070149401616738877485116933062625394271535290471739638743310946629428786990398063356942274817652742241787104990542990305296290249949948909727497795925492960915214554228622698802143932179014891331651776544161122534090279192340133653882631803892419267599419712100324494045928525664145725471948890522696299575639715029710251286636029887206976752487003493245519804830320796485565853255996412609622699113184411497216134248520443794002968724362932212473285219378018338065705065828016539416909288156592760935258629232449371541503281497510288578566760163606219809893719335347567515855036695615875100704894043307966982025084922813360794537618330192859476334082097588859256016317822631513471471165727662436030275132360451981954506707999828235478074782955546330498199570667021227042078102564049816895252700221629208232853672618871227408949712013739294167346410261858009505387355253057383916584759985260045150241719039227929163874157671689747594364642737601306313819052215208001824955614387036259129083033981949424345384180239869753972145451064541862625522846728070615450378593450224868483069265470375837448508042618371096984787438553863103767272910530415541208991469494594066880817410728756107628504862138029057970984381556308815231536313759773771622021744654251974750791569773904279990336328187782550593192299409565309635985292255088124593009586784648905393382753953114269232088834541194819193622150092577778304266048255716475296212698574795121390508972032392003742845887566797192939832475981454547874753324860866217113764455377325671897703507468421131205958627306207514822163315422213715527526222044074314174847271856249883004575717696382596396970175744949073660291712509734687308973407441662879100613953748267634086974054853947047259523423223818608612486969911017950955546296315226159001341372578363191645729948757592246021236831322928147352319756714917955268434611703455379723068096073151270786960802071414127373321514219713500217732456137060767119713589234182468406356705981486701460587765902907568102420745741483636924381242626072471692696146082868017513653880886767446895577245094622287636088736344827822935867758461951926869536440364066742188552771940633011574611465201429792586416996031873334909519386081744390119150129529192405933744934878075271279513611886543414200500961650206087068938136160775267927409948158115052277231273239444558556005135037238118629239422881563709479175460325823979293533496676384815441797090388533530621871785299719453292139170255156561957442928323703730577406830788196380634026884588716074269356439080827097611074179701453461698800645522190813304130115736012649027434548622897587688037342707539484039137380740458208674013297084552343385067069359591378571516227673700004157520137128001277504351587375668878444226494774634995048112792156556876243009236846563644104968637726123346262169323087703273068107876842946261475600180394393961885162759245949596968753922198351708691668625302708701589552951960199623272078261308563062491896168392911280246611294990107469000283284395944803336038916163943895528922736910783249953213205491989439429869656926271189736274949177939268641920277263569572856908683368582608752399173570498488962815209168156267480189624576290720837883753608302425778069769601463747872924993896816703478573215740305759132330268197007639681739287273585404850957903575268566379733852709762197135410034545617868309679408453958087116574698581930478052665388512026363766535196675766501423427227373886694625078370392117395655300967483667256800863489026963444326545388671919473068026532452123298143154629837716294475259111322674986095706197237270146041388669462879649540338700420842485113342853719980373513813858397363695841893499246669197157694332225939488590211214005817483925728151556882667641633963790990544109611604284477753399697620628139234544300375148332893367374708391657363207059409110824776775722782815645250300539283914645600980202391916103206521160402634098277557269453369638438471451101281164138993897518739970417430964508035353472735726342914727989024091704003692982985141533337289039658502940905624986615009101283996911396178761848615048246600136103327727792115530028447928965792057954136952141607127129308911459775610155031263085949186278642430663701265819788512017304583612253976267476036348448892613488635117888113627386360940594516077099737656134034364719824015093363933066547535641128884925058655897944992270200733768588604368424041488104748328943716799764914104775391904080692647405131666235427219113621728877216264478993214721830411334560786205787421566689657603905176059742054307077138283543428073496678727791783023045738430394602160357475108948883407394415274788051602555403301219680229628532917886878460650585024874248295543607656976697010464139162503578980347682681702693681867778809683691919989415613697645905171876554803051025163353599962837973359754255090527946486217004394756118581973410009580048381203534802046706687708376536688387715341375383939520988361823277422587261002444963731547363351606493883760275902493166893516276135456847952899512014593650948470244219867168030414834848634596626934935569490666754480212627264225411151679742036269355350382167885661867931424601092745187204970027950597290490011653524444563182498747406631117589315561923541084878218179712596777026980657428970258478248997235840046843537609401968693268205208371292371995560946540437833168619951766384936818269175341434122404100804944600217285348524516885674969719743218494177212208257006654953772107206910584545573383858334909829099396556853417417553065089007056650612419571074257750282763868088172585898368464349633376412637829472854449992017674458991791623364245396507136792597993354426266077421771383614401816418773632261856067966316448379503510797949745972800590071126216289014234161193977372069702806541256221370910598400361132827940024276434261850306106083100961346576372950025915369647364584104453843716020280868349192907347940788081323347426432288796112893287886038321271352671522172384064335465783832669608908824251681285973679859401193239035598785283928226715142074753938775968587733556117192212298945120269467320254752681931983682421530750253641418684056209181060688807950373628674024016729407806348186942216072371155795448809632972453794254009721506071767460738160048670628403440398907718390547368129252871412060304799478052147569885657458631417770202053070598346524542193043712673609185640333040429734346999035475422259480481996329964350805391816940193702177749557488650322239569046543270663005301537964438286922876132526206417406816681279482631268626173599039273174597020062395220673416356179294438934407696967450523408574251450042115443036848813259567240773500930351751769466200379876748131585947010988177572938388298577151871956739508996349290455063709231767402754356746636902683529866812136308925381537198979639992147210416439615561398354004576222799217086010556733806810055425580361108847370116197276612490583201427020274425174154886579415691347341427589320426603785966698658192573767256194337433272728071656188619414625627993608021434214229888501357299582428344419035140571429196759264036546101376304598636062241833701782975529938145444126393922818575430960251893618387392633797394947929048785834301642833950826387970997116339083590669026323828958354100262171244507871490648238832096337864541540734864521982870067781448631872705172106411932442547918391835485669778255792700664994051333265155936598228348155672708671571908298584818598262012998877478772548974900766571050503600997485682534484940282101321406074660066198019234647979404309824076419578378828501812248205488944293445765051874345012567839467458466764685366041052597146558112339165449210583172732655889362986480124806309082764860891973576696735070184358532753093315000806635599076280162148602401736513188511532900800234157652507072055680752200186970354182404839049429054730777862234864874546749296165927306497465664954882402406761950999425706374424311996161108764181174289070372344333201624614411513955031641311641206064619018282730298461007415649169612479330707050409669570253642623045203622611323596359803878754652649396061662889533492235194690389046588592460380424383957799358799468010201392974497053649339680948821113614821546955997060745052428571149473817753935927474013697138767718641220207504038307158388925533280212568858035817975345856624956630185914236883534290531727062718761202124925821400739059686323516709461667455126040573592992629884372433235068794939104608608907446874490380985578056990687366318517096739737366657057352630384022285040001148822470834305867294574264045683491953976413755740705142203432044416189476515985636922015366635856478951216308553953369790106588593145315076231714669208660343133978362862688290054207828400834573801875675938259867057606531324816994528479053418056576032576580457373739837299301202756185687468964298712778088842888903395786690305432462935746730373631712268848368720179891148704508734808405088512394759105238914958722409337495174917937447327617990746374342571940188196778239108789490326225371395512617824652445736752000621909752816414488145151024785698664541346756201229507377181795775520114428930947135652241416426498334075448068343693046730836827302733647918799724380863596709525144851353636564318315157685125332001692861986490110077618330839147938173294706504894504700177802670458523195087626260435157713495055162062837781174175494699189918006068710534209003448250543796325769789610213242377679147843297972168058813717135390572117542828659327279773178709585239169168365435024026562569377126383961541963992665086775282617610760678416502054118504231865182086347686569902727351891778844646545406305535298904089512979638419988113592474432128890746195728250267126515885827784433263875243376113156842175839030649603718352602696172349650976930620261394153332006210150501299801475580872761866684523103560579206883241379165962258055676536474774925317974888543156322182852591060818752757579013911198338855487377558722609807814287993318154258443373608176272157226513978225615128241297450668702080515340278693753013708005257122738406094561436171025765763427261707112554570889716421041518095989241553894173118011660868662319238226958558281444942453184887765127306840669856420988407119932070441744238809588724600992046111209722190621589173764088705750887169756106327264870109093286481990840845266984972376393363707548653699338443634255644483642531911823100854280066330171198310578222745295717841442110582295461809959214691588317776404711018841302960929477316880137618219738159648511071030543452049666944789013329599378837473483669497123752790360215820564942244057817970737885308197624443165170905734156039546000286760731625314140293273482322704039487431016548744246866447944805546042130890194995599431182087706350536142082051368010881845319027183743070053391010745008742813929361469210318768440238721999817768169922758459677072734071109358137219801712661949769801156188986631522104022458662343997541678585789853398965165872217356004871460301307547589051923118004582578512404551256285687573951411636739894224646839612831529841207494036581069451373409183655994448830514940890367626270156322111500437649400472469062413710294991773898633937317410978794950404788656121824999747912197627833027697011391036083410914737111016526956067342511432239156338834882627582993985504857248832557009108896221713709158069590412379545804115551980785207179606763868881529614655296561425009395583307146469818884609505003947898029351675036521886036285310575301562932879865115160763018685634743173511560081505747079527857968939921599679575155721603908730818743586865467744131597857247225567908281821877477641333308232487477407068827749485146189038932917378122501096618036876629551660148136749133683703347940692983284597832581180830002553327360122642532220126161153065434469474020329133549593683908205814320718448507002662792957497368604205973800576558212965495032476309987726831877877055258154419742580865604224886289818384724344609446199329821452903839504958121790723326606577155616416899248135170334384849724919786624990899401852274460675435025113468907366855751684810051219706106828057033995791885157106695496915147435063654125795496517079295715116066035964786276414107206632588484388681669304416725722632863912817726673254174181091717007386543475914697671059393183005943301237866579270117765178602412293267125781636393197372295697307806730043740382455403086172456701917505250891160640936749180944149544909646843418911425216524698116854553066897017364182695767734992248910431600159478467922288621527544318997316563282758086860923094511414702343078449737214491228152049745839219855149886124745087376687951527628045815903119695609955967691237944803740217696324158124693597610597851886752631232726984800039622564956887294733858878589925790137474754041525496723480803976800679022446152242657802095347153284262822816395266642393015735659890250674239838823577411935525992380964479052900288201926532669504586252010443481708965570829236999525914816665176802028779377843088254075466044890357599017545561044382042576126127085129773225669016014001576109172661941007721712632213295101184717063238004170918233661395959282561245259167080068508623497559060335406842100869895274719031131506210620913802206387333065298645043334524328755382910177803266400560178459999105756846974062099154224548776133791861863035361701356571161629030512145756946032201256389607454748083734786489411711594901701215056386723620365445937155623848143156034822099780268536423568360128029155966445308914519518150419137788508973843630274082604911669348644532779985288128579864791866445527462077798045159838170914921696436564710683246902578795723071149736679702236460245927809276241467078850792785072790555615224863746996049774910909535726468945702653600498935262503201645587976819823788218244210644248296051945945794395232445394215557833862240232965353361263458207179746545114120034863766094188707044889836284583989548550305511001891202282128699424322096213522500711953018417059692207609376624537508511635986503026563102457586587220174050102670414055845756639517832745646213854942335904240372184456615199036843366485671897133351984492710928045073559883345811705670674284088241122838435348988233548335334590083617159255872422019120088068905141608232320129963134352613007300792257256292895631165685057092876210853103812574603376165428432506057534713812554772228218327467069074917519662452016287086107470562770252911656324885352527612460288804030731461419962110205671607768709504397942250898066070695790366786670157833647940972615312783245644457965933826342215437234149809247928149968151875478927027965312346253535785289000974066801251319870505034493989229051099759835545037610453008512245505679741543087034683651926800002443659227180231543575341830222439262534058424406730049100819379727260931339941782465963737781226721938049090250954254530076660815760742293755644671925684030213982410029084764829728215795057213300285190202030236933999510449950505191843361086383066632843499042689721550771392966003833441321679746010083067737923685025184016202876299465701437471960891316109800869643699121869813409732803496225309073502243382619243654759724121823537162832667870029678096017881024689748235642772320406902683940915612792306095094704962861711259971627045497760897254172420506391861892687715873232725343928181590408869762634491471048612598475118557007164836970786826361634699930991824874344088744982642450013899316852410544414955820102884926773772010360278933816808280760077212754682571715769417250388252937818697812452964052124582613506848728123665534011511232925616179844404326145464117163446334374716617576725921111402445486054010493192629834302346789840254931411521843089476464471734035708148513192282300076105354771750029035063871556484595092296598133824740405128312410721187665742671419713209727160623540199035447172797096970866243652682984911587646036197304966020023843346372486028807783373784996907684804647189464740390762113095387265415660665429236757484580596715516937351152028544854612110763884890158349461979063412079324791106192502119944253556468627091417076498602775840168854438121046810395128983485083847448191004712518693228430623092354348693304046223916843720247118359629169132000171093308642023362478536997723420584666486223269523421635695688432498470170617354426647831709905246839493754870020047753030198626295750117118723860774652718433181134713712135498792521816801411160284935996248787733023213070243775239124047979904045039440973364442101794084855188999457078281478554819765871466546192491620691527010756346851833636842681878889515803132711402956560158007182591469050262667960563756873776531004832984420777879938008137191586872413598003614465573528860207558029335242370525143684425908178859210649347622507450792679287906376412860821413347138250643804992270403366463159517475160640693854463946009275029040666816997044075423976191086853301097321151910332536343302519271956471185506630089564588947617384392738109607554374784235103478146181224019768068412728928312409635607584392708545737197038849944185438999723256305358398675098137729370024758871305474345726322841867440728471754612344570499121167630906308874177671757400462647615041327073554118624143585703766819218884722077002892131144410672002325237377711503903129939509133865400966865636734679024791733638834646752961264986837934871605532300242144277802534100580410054123758502048584987247939907658814898518239818975181279738318142133478245074621846913909755968557823004580579785140732504078233601768037705103633357169942761688613292056969225123199349102382207052585479029543696263038814054105524848827655449344099555428447684758016289907714579956300139908332147119932345265961788218593975327062833585089992523810192788438296292764801944439739115560372887221120843864881132660819728004953883251051830167480542321549634748119779940787391695358017920818239923112149125792398465709986794441390596236835083555821196177804859237019600983971940150009204488320422210277157185134988789624851993952262302124758049020385729148973055609109734025849300358050724414762391337739845680102726287873984406891478921820832767091142355029526233200710805639125213085633613905101878662886270602933522727863697697121900799584334772354583362610877492728287095612317878058670823939211638944317718625655431447842539020217315288512091776178549085399890574634377691409362247352279003802925352729967749643493528844380959813597368742988573870104574288703203889515948279027802467756872255374740624857618453847302132607206184478628173845333777169337708909324767270513834940420445831308075224872050922289251598372323211874485607211040566677179985947617908269896240065539712407465487152184267615159389681527548274117337029021247698509289122049013491965864752691081379577769270090660171007267213054921551381578763330070905751106512197298482935742596877254267651202206828242849829997132912708400677406287771133915872501542379215577917393813460411525077999938391913297749849907899351774671655453832556943803820221173702667490281889436766943511032045930355273872147615544423759158475641384258700199219446268884958732664696168715120988744653722761278624528156897118070858996152923973156524632327654336280119167357636479512512724156668450296637193541772743337561910516811209078234311892331446879337047219039728552134310455851971376816151610287856121457065345435348219089259870645868196056557304183772267434266004546892570457284234773880887715521102130015755597702829130623769744521944296594703837150183772708021627223970116321915818052553368328128267323970317891938106388833775971069298188656577167933088657257729990367224597743869090678532970704182439121443388119631378847829706067118887152565380161388602496486952633863993411444997081524697209023951471297504512891060499801709018119644033294455286247943406096563502563349407024042818265672166000483317751163320964911346825164306436905539116700048090035091831394868489669411524959184056876776041570168369278274679821607093980664135128564139482136854752053959616470893218913285214050431297850801345869679935937870716146440613421986778800927137927969031158012168786691801244019671291446254088523432124126636432789885529378337254097459308851566528748655775440904830125789584532502398403583245741439686589342622056442840163565500160516769563628767452320072070667619380202422782361473176121657803523420285251223262180764126776961238646834348663405441298982053304637237637086977509588865152829014942765515047517665003339244290900735688579156899221026218933014087677993634693079884595666396902725027251387516464927949828116240161716303270444281762273249513780895619977363239779917616310163790195247190474259819939437559746190414819534057170025527892741317422302667425467358348821965255025389545497597775570187301884201215252629697071356021104067671229527546318385336416456700395866049379159997420551106236073051705939517382643929095060759631436716940452027359257379209214452928795694266559695539306216519492251026667047439446419875411163939962026357914282178074575282857306799574928116977440190803525989017966268842042229666660016382902925833845289379602309590181726728357142865025926522528262879192915264105759400063322777320262236977574734161643697231293036474152650546600056152440940537602520892336419045114476014692449935579141496742714567763043234067487427138552479576462790723178858462943863822334750040409911245141179211131156747616820051393729687900029414179686588101313276941045075775417593118380092564668211885386512326661947439440623321741303037778535452991486208555455411002318422195842043512895607155246315008774902842584903545901652710368157311543963577588358518776983023365403246633598628712579575374506587516749253837151039714930479146724543267694547482405836921372082369886170054649637228078121719371527188696797310762722544227345526247980107996894417635624623250471956899252601392159713032874119259100337604143533505762718728451021545513473333208807970963386773000048933449598889184157524664974754916275563239531691116785625531769148215294706356459276463267023290614989663472453448336053776015923930782062456750563408391623903557715179553725135622957145063724276024034037006675451916686165242066926399997626596794429618663836887355568399956708226455274401587769690126222276889906511997626227541679090269083754012770820362302797673276170228878698298462072279468626600707998399752933700703161559494857596407906794040646909901699365723276663305688268112915174615546535784848300881845833828331489079424929423352859354784277028471335559519175130416837271782316369993174276268140294081212649359698003319078256220131426829814249017189586154114089853143782898595918963672414238073184129586390406829815442331466474346348264818773311236731910927090526611386473199374797960852643753410420676363638804914656823765271098574110810071908831657985961482410961098084014773695536794359823777536823503701064234919850590866265652247540390620680872606748495875438207697784585316892059173864257499790167100182629149415072235478802511985434490569074119459705226081896297430091395048847374677017997222695707056750499706112485317491616260838825578192052373078425768104186470561032098705647277978821668307648411965496051574510325473017520462445156545980928555736079926019509986815008871067100013940086887447180544232582654620527693580124820184341787143752106494508358735446749047129121176888136568753327734361337575559153882232541719681287430114367084170925418453794531118608387905513587003090820425593140712284563941985415283018977941132450131980668550626763456188626824367313575680039789589973696788958950297131570118692533768933920268353637415984703746952939699596355539294674946281746526159930581110399881297277023916910361216341472886702199052507369380478378848611724617660948739165706984455099439448394945418002847668654437603869267520041133711375466821754446043999581110315453486431249849268900499530221548423879110689712036456629144251634630106295739031886109261071284158452870717284183493831741317868030206268951790415399774527709930627576738688376236166621450950051127115523784293754258273499158006826131755596703570565568908227420052285195334577540297160124304793610131297451590313273335720972061041652772937851081347092847671990768502516475012487804574926880017795438065316268033977799574375193838750499100472916712566547771396572925991648254843762925855932174047450122257864801355692232806736930495259087718226188836195360420579800193530287426478152802081460616165322635801457082578225646083627399581891911938030003432793413203284443215914878251335723870899413923157393702810430012478819352500899362946744806950657363324554528802816936755640651234322845016574541408456992808910551036749498815646935303508026307590639878197193079558095530650927017731135777503859037367737861528340419424373945072908798870676472508133030432456187928318685440266688879363295049014697564782205176801260025933125418552554201542452956008105386253571718092799949741546172201000620885281628266459005427953241861070472441578646590415412112451255615552204935775104960376459762092161149440192626506409706024927527682400521094121557909823958605597367431417818338067249266856803478767519697667279435915093200830491919487519902007817491575262128099995068451675374363104248633192590582827974264225800481864184343351346382000138474411639470840273210542517463536590705870817002298016774620593285943136172929370439545698830877538337191468402041643931524750319617687818161316748698961881799652161742875949768142198594560043792435958829955559066973423883363719474615574283875171614733751589518118455863398525562152009271867180496867664312698345282511685317419155013421386782876683246579733110717756032971986076845210964751673116583380664784635284543104102732676489058548398471861267429103058576999533460411988989808278029595201997583531623778222025003286734189587021422405872318327569386275157270961662367463283048368417224490477332885644837964553178607386222773467706374691149054067023529126721244570607850481573047391381643572588275859540070674060247308379962892815020157430032877191612836000716662213719368620189150453250407776756344590422212855357949397984641369593564021881486593808869285038758069717698504386314284833218759419288722501517419650422173326502679541919021293350394895081100863714265139894388107414197996484366365780498393813334273287299481769365314537328306827911066139461231591429974395753861472372853307370931080930121628655546507041434576320203039936301078545092869892803027641508795807245814589107058870915836850427200158044679206068167095945657729168528015886171540642756210368475634065690593996940453379223126164972415039020314995860605598852014609617937899353286105685737462077669349823424398382494751905798634348893777032770185511506148704943419460799860579227262751998695511148927815374122750885328856289439032274836706851794215755960734921518398056764693140609370552540562625694162325769217022595608425722473581920768372595238785804204388835196404503608170045633167530380714242352667496738698780928363944001162259534079921023970433212779678646519832112870850455548370788825961261102966509779364495481694729869799884799508770978993140941049953021346834983922253767248981989776156424076394345026434170042810800109794504540311904961942308882858787725386171804513187936348550093009894348344090145076814219290968752395721770999936563152007724427960820719368224171984000337701965656623893633523936217824945744581632847923864499833379156186429588251379905206797104801220277604258353282978915587546092600097181793614977980653879230257879745003075640196546310064963837387367313526041914603500954321857273578686138091450403356959674717292496520140950801883396123043654949200835457815869002586423262032394808233953791912328939479879842014719783245313198348138788723325359379304349757490497263229047180171365198229961219718120058178831385343453665282357734337273938316523132673361533681420294061828574093756589413837933554847152007899080841589870175459974208229080120566938792897855581402340460504716715727942041694028246339926329626434891317216882455776315588491728694005813156850438259343130506957936974014930241010753541194498592401430377243519618491595184317717746816718292902906177983715975561635904676317211709423025764747650845667463019678907136216996882564010359649779251606744742992586612431902144094877586232076330226645236566629167993118216115251409502103343867912243217733927127459738567417377857351026492047522383926890509953013171201111361066647387446393190130802996049282180785928239497246593981892853749108198584427893852716138983035581907936756495836201812715441512514921881257541252236285188240831591960247289409963717481665437943696623537265349478980438050242772204761522032967212687661684397577971623589370411862281229105284120505770179461955482365188930346314742267899218120790694983677252964400810708976991551226203096034286295924666208378180681408158490935898044660075475801640872045634024295950513150526536991889685121939760552163115948162065330869396417134500579748011491505775724045556323229579330565182361797695113503051609390777405769762675546568517544714441796663277255456786283074857074828343965679997102765868828934343855824261394570396781682763199203344626796481386785229884737911040492034560261137806221871392421739558200894216853263271586061518368462542168465601097944551491086171542789401271870342213503221560449638760593236732519218172471467292476164311206652538555709953640954405216754139696066254118302141708546440822408247976579162491007777678416260659523893997872797645840296896781585155167002407128452808732838945411030306397079146972298195984055448780678930758795136939539357248714082525895955447631937700366180478521403037439032719070093717112990578377819494839283652167611377879088682596098353370244565379027033999267364732501922451761450419460003050180996019878231251799144506398953274311438891569160796663608930143402097377142556770160132894099058541684980164894137859418015327535887866172334629044629853687339788263925643678337292552448076261547190031070162956599224285489136094216861245442275911721084799114250575661906406275385525516509986557765697301606955869544730283705101673525345147428523011975267518187878439312601102944245103539052979851509815347847052847219000907014448903736463156748243845323106816694116939859907696084638152686520301309078550622865002380893769263132927808297474881102537910552397829899765901832612521226755575598315718454662158336497240476211383994776343655819639070304535000125104010771423224464823361401620148408728761793612871008723724208873279454236970519051109272314984086903619096855906030709141674499129882098532926014246858083395610163698610210547384343040394267977744034859919451635041745120411776691693876329301818909387137898778847631954746761326849963080573350576687471975148707831161104074094574465756304282015509412311153395870727123952523891888586681519209544401941621820611898074993874010406788202966969198682236001636815902583009632822159222914948497550042253744529584242546306222701111826774262381440254024408278911168428793637383755313733412992344968182620853602780465644805169254049879966210224844051929650480617036118891762601806162875093913886816936043661299084795312863533718207122687172650156998404875035911708533374174685642285160043918858986496305209049580882602866252528175879501337158371811177068706592453626299274771340599328768492604079265419586821405416401659043673432298518160741041047075816664908617898096713602472380100764595217685390024245798830068390493799146540526673452618428521887074786818788468304268566103384627122167140373226541326008573983433213025147763173295723436366366303223427930222874282401789001578075949155210856640453791203694175646832103579268965744961585473700440871278624079217289725250387317015187245632549443485208845350366698211378666388337847537627307672737305946483099918386156693559231827152546874875279435793756280764777734691747072250447804311404086784616165664799283123249483395166245023215701696363661875050248173920635152460499284632647430554531138135022146698869088847044717719496337242650423772792818197910400994450449804424260775634264558517747400097114162012839693179222639711719243208842986896383282271483809411020381191979601269310475169605504920212427174191172321996522511291252310262522774065261601155800506761740679714110621388545933004074489467679029965466224463973584091747127321843471903155619083772332354365444239203613468996565568214257740553222374452396813850261132404396467776199298106998007161122604834505621527047631419204501828390067428548327181565365032126818811951028796747042870334464381774389731865808834313821906062924112644798711423143720365531051319761672530657452169826235732612212965754965192252790866857951379905742538183846319710821420016956162650032894198766531709444329326829764204578073220282720822177181701219557147522340522697828313625198898959481395719604975352974710330541114681580943475171695668258231926810995333402187311239836142701081040210947072033590169668961620395589229067377072265823841581285930441482797175633283145285838698975926620162575154916437421010472168818365630423060855426699504682562021030038447696053441453762417683014158304020732938867409688764426219092705368367618267610296513357683345412192265993582760748233746417744820240438801733593448267820444992071756145776244399207073022211703525563739205430209344940737399828602203237532866121611431122001804024012517805717939736661580669686560706791828640441533552816004629323572281772566393317549641506263802064142355999651713285436250481838544304982981607736017680143879072763172003652298182348143363004680131783641389335352525872723816185861016888995816246015611577891108933618998733840757605975547933151439729692381383029322325484389587513894284885767862601361700280251599430109599197466236133000714202599381391981579246725324808781126820202734775844561604504250866611551184599722731343346324243194459247508255397340514282409642805081216828044236742977211828502476808483753040748624608631662358177696816683908268986596669476700338593046073888593718675020304709684583765531909820167456533098174000789943517383183025578234430775928231769214466846892877653684712992140881579593001375339296293068368072507766904880772889427077509333699852390724795646020769386889438187888574085038445999516250112372317513846246189010812232813344114249155744469922005547041570283566964335604442028935656785216715920253659319882268089494158285606034686137009159404362143051106195418633678972225107715165130597882646986720486289298259243001237017966876587686647487823819728600636331539414527951180841616479864751753074438794403857453179227321630294325831795960043244455393133913524044596442097593948937250321061727894864981558518977673386297843440144758817210803712146002254673156687242877228388610589209961857211603572562894846344122373764185430000525043815315361577363915774327902087233445010973150898273987445827891900530060140252609394984313989533157908778295334050332926982329279872521394184576409432244666084503524598192461781981355522505395144168831549943579050594471810490951648931407540739295065424242139249554919776038803325605919525811891738342027964836429160271155023970453323799886884302683060954975711533530713000422861602451050462547940442686152505121206924631997259291747652151765922817513794072383347667913918658395130494901219116874036542351539721229055367391489473861067972766391827295240593209140282924297777135727505631575875202184890041266089148296757705310150554992272280939112616960283463559389152289069103805273612113687113779797695119547258971841099953824293779939319387665296686179739901884807397134657979008096107807511992553272852745604160316851017783796771898559544488214026145426472377507377591366257879659875717109563652705337420649131982030884084880314285184394954945671461704700763606242982094702914849069185094320694063299297153056290953379656893682396816365965440451561941234331360515066705483564895144898047294970152535899272760112990166729612891450857653766253324827784407341118599710363696948455915967607376657604491872869535744892996847411722608814161811294037747684881486029232788831469371901843668647213943071890871810561881396734162092997751683101767762920528202460421279783433635637388559248659623314834894983705270588751349163756818908757701251489205952017170092801019549124182896536889265334194459795684558447724272878896555213305193034545888779148885246249569419821599475656696854736438143945862109031319741871685036605071775812328002659670331540928512864042442416730784165926235188742004027035410333750311509865926345560842995787898646787809566402026901961468516372826660676705511515220279970871161860441502661677596287447517429173018812184719726886003919784179232138903507524831003932551888450794476083434858145373024516416217696337466815970180438323891300716947977574537373147519753499637218379154397254351523803820239973376399200229746971153798142580269269700870335531373194578008915277994949908771819546980318804199984557111229530788800966375561354548338227259684380514634758490424382331134951905442008641377217131328570527717278179397295664640949773119097889678350633561670915116511770825546273131354505286312565138827519146685259475800226627102345272139518215940215181067327300263506774285838541104044308945317513740501239071444488735961279732474138865991965337450095761555159554126742331239050549688498872337266960038871998977207566982931118796181304229531482597712761503506803175914218075844756420252172960474999966882562155147993442100281571825937988351735965221869954994386287893357133314112316800440065127242805686059454664484888088358005554706692895853380135001619285829932693651151859004719340246758969230908202089676340969765368326256585027786366648929443943799485868424256625266357735118324282595516130745846499371544645555250613344669901796174808116371851911206260169594688140398563514356384978506367520539790688583707021495193897483634488004109162678154277033973116323214333351295790589799994503146292929475250017395324549223349092565780926202913291369755868987499283628420439933405796596479740596987145645411003349884167043656860614993143135351964716696252875568592565960870699162847944559218226587704426075378304051720603294737465837639175554487774381896455573240575314991321906789164022248684031992187907991638714859935608045233525266869845366678890108749818099528390234484732007763830942440104636150337345585237433833473331120292626817868254222576066130468553503004411683031526839645122760241956926508282202135421737937498984518527852185710170459817976035977139264033857569039309034987917802470998948545631620294353073747503116907174865713946316899613456482567193454626115134895617777179104630107641125567168820556038280002776949317510172244796981224296597363005453703671528742416239556381249969471342960194902484917587563387352969221971021461733291479422135806025580648710884230236868228300804087161900605063634145999732221584413007642623316115148234746938131447580801504277741350894103395521978399495438662219324564238415651301020469813188865223379672719982561460100791418530319223606275651309711543849881316758603409373550999286922432583911615854294422880198048509445986792832461091177613433342562730509440980026880407771716754993726846370017172483479606302281460825600003106572698366908215491910409490964065674982588945584914770638470368577503514409150236348876630758606105636813272179421580007692108425153857616532160817655594509360103666632785771116236453090146467297617925463046900162384261885117413617309988721324239616680308307092168040008921474597308741943135949537066308899636498945851225682315027390447283124461533534066612821246838452729478374747847129057835492200090295183434519342807806472685458468835813190651140740864171650910751357035155289498132352104432620627401063069982863218353020116177823763620433285828049004502617620009249340864024712368304298546126729157584533647887564430614142005985748951370724123610638196929961493996845293294627426706694288722862646257102084845573695253321717665033028362304468030010742068189715397963565928134469971859696587764611199417281885776109182940282809473072531685753464206242236912566241641972578792336077053097008991042351010318345912231397695713304861495615234794350819428678842810964525487591387417090174534906091204104916875621451450397769346965509260123313600145720189507788117977341545479379235580208118169222170058941827570957793769283171988385726019481444726228618481337411169506073511757340752218263494281168642409000211233216558040687747798483486554940460077267531624442853674932225635802478498519412988896414508480994101151083561458014262988128756535390771269849414755724016892166890024043990272958013640365458133556246469171792898349433404396367619347213757936112027785430245948887793706087427447268980159657008939867636599100329284456304136816393795752084339218694329879233607512535234096383431586298251396153857774064291681793969351577234428397724030108613658431513716892280822710312684801571334956308080431287618365727431268408703697300721075813084356869505677104515572465065761539904636289001498748563742211388780739045741299609859640745883791698807187471206983259071802259507685140354251959678656774071926845310010708616712379046854532611655750346912556098574029977824632471734194892812904767418023122474941656886720898914437336019646781542772582707370753101355750571687920807367747188752821334362579282834943635889595725240141160394255390094355512730432696728608280141213797891431334092936008217384259694715193702287660527328558711568477969064798190916112543928406367514473681559830928089691638168644885802517543317507946768938314746579334327029566362825771472929903721848217797354602304598546899385509311252686674400956086098634238374652507316798583393372378542662388566631511080488612385304210050816936458338417760959224251903073035456728636646097046529989629249634388669260762963073539224128692900213126545811658116174436261414098545504642069112393378250206729752710853354984632644227790320227672064617190044687681890433563913258785216106436698618135874300926052218757319251256784066234085191830760293806458467061785201494117072168389295161825447907781149228849165903522515084192934202011716527753654843388151552710954410697822164378185629533710755161665683258529672603081114997355367456905952333879126509980680155620435684742183393150249074459607309628459332783979987705472350582954908504101131240216035339439780274067107404459701562525335824664360986527072213875339509409022243538815869821288804605435214456602728623837054511279542330698423793087469221060243723521779516887593083086940851790674990968456553977082441909412357172446995209497255810822328063786724588556668387635055244559141386070476434633780227586214297546694846043081384599553449561402249440862114069616632888556389075453415191969209666778857686866065915767057995858741062926216494843485539840725282873136769255394356685780744002704946425961813549000628918454605227207424338033188833165723421440739149794363998846995963015169816114800800620735278233233241660071668195467107015673307316474805538292455369425336869387483069480196823575742802224143674255242085835211054565091513918805007541329149990826396190120994048838190989876846026735324248239101258013256880303069450181770107747123301876951574690477231355846208852366726336945028798797418042138807651509103725568579304476616737689890643686784863925420121741808520571234926236451488863202631893369188716730853989639069749204088662413662704473104891272418322746269899945051876741935293007657907315672059965884199151357301793558388112321270124804485154238704910502171418176581238948762168438763167599474166130004589071360527397966559456775933697277725036115006465568301764406583797740786140814974291283265395978540403563006842041279497027494807590889938592754495588280321478784718459393424351187652328089662570764815613816354191775869092985608080709464088996294364493055498324905565884023981846558787852588185684184422531742605771363440625624721047895921038195091622910824517804773443548242415506192477874913832381215046516604676531776225280871262171359403990243467040518618340486012836234981867312810934365256592308693144084085088094534138099261459005609137222408697584410923958792933991111642041278202441504935908982944382461051746345550019219150460200880976161534916148313799720972342328382972580649204691683552115835207693645207948640435326680613061787910838352933653197024313148759172846475448385618685077551730029336074129589786587264743944932283155029780199642682771471143576052536343981932365071221512904584430754046670619581829216497371935287316235804800406865772403964603163853101384473028563723533839276837500375617237512294647896524841560569322791654690169000373865323873372543083694333829023618921710177301255263732727783097971497840002142726330294286057918844496116117715251096141557806669779483774802226361743049050641730669627652647271886214637041941316477921920195921897056403015147941273455904893145648695110887254479957424227781543472992073748865716577910300312820123648362006090159211514737299639548302408364133022559833573217108019283912141311575102570469709079880004310126457699476061394185182229883673709451796183267659430813473120866706190462352401552688017591109842350980355677939990622107987078351602764912449176579774011586930532351569494381494442202270491206531998765053516237305351211033687125223079112017898525470007418589571920689756508831766674329457830589225430361774918155527812485582977613113815809849748848848080743255632331393504869067622426645183197630045208334909836118610954279705278161790003143560730625419303139376421089734058007055681513648299103351030382352357534578514696587949252415774884138420515790488689995503382709298753774738439346665961033634404718356721157261850129940759111325318595380906719934602400502464870033918474412804134036088123667507530122883997316048033640683624016743192640487001940029414424128249332595555507067262534409548636531176557971389495607528566488418410169355991710873128285153071458263573352797181048435322821406011234661915315170518272580616809900939421941176971421857839659926099908161472109886428577146727642082746055827978163253634806021914896210092577807528568402185972145399372031803575820499609458583172949908738774289976973208521911128724811914223511200186822856047079843098309209583687593862439537995038415660562006728692562837191891299257290784902540615431053335324943033078693209171316407362941436437659409456287250971327675699462575915623929178981075112101088582330191643612449651034428294722896586650207721002636712596163780876901294036348548035877856929576588275902668823659696351397855019640334468276942772355497015584223088259674855239587984371102721162395668319728108762303335684072935849055860871930470791747439903920104418430369612123784543225340782993088707742288069073542779016074440163348927270635101725282981952703690989991057572207332904939574885669769062196897152834332264347618064189424363675403889615056022048918339499163706291626062939677947286344339786756336480899277360089411781494871320421703926937580296900824279491467337783094947492072635240798313312887293302152628109779854369749227781270077829125693449677602249008012745409246034410667685385008860100173547926881631819103772014349128150261794064196715387342850772800756415333807817351097123792575514567038277730467909756991025837699988770992828134398347076530641560243024157741490014278089181198083193333073571623107555622847420641927449450226791466042591419802541021547962608869619717974982884309547163060215813706397639997937032036913553329094297311922840452853321245719230774334023540912901518871867078408404835994288973993595004593930614926046278067279003392196086798481115398272526697251330854278745282007008360121717822798299929335375462278604917737300144091584725090794108799422026001203194533660046879876721061705547319080192544843438777449096770538582809029057263131200579973245186088676817090688237950230263886891755708888510052331838800278817757870362307238168566979012542587132485909912593988767555837411943207438349945101666559340096361153733923296491736072527322130249606755889011437325162344282690866963546301670465024132394439417300630895773552596756297624082799398173084801178890014032081742915768934507690420398240921807416012887550693149104632406065705196628656991228852600034735903407578954742614390615330321698132115512765532701793435758974424710381296774685088368508159489625116977171233441345841124109627160661835794970668463962017743800647125844254441983474904200829645302523811135395850678334189711626815412562693599163706550185907764237220051893421287413790946818355352237013385827504650917199500136148730344508412243291595205128586214300751127128577930243158890680185568249668169785869613662100415568228302642612786539410927382600345331452511378379731943775707119310817352974065945138479535445814144438971444049397784352386150782981939635054226637484273522689615313268656500541216671731921734281192220972178495502997457965881846386533816004974556953004256347567095592216513684036664731390948956411604028261978254997515207266261307717782897901586706626379286182932480210693016802130100035819320048560470676128557748743711394153071075088845824695625920375218296277397763673436062781738979515550231444582049623170660586451059807102027623833433526931488295110742948139279942032646614606610941365773987414389964407876160151641295223264019116962626249313673936123085642791058332399182123895819500806068675634701861683190591480262264862211327383973796049346309354560041719606209003351410563521644360900653008125334541117004315813669880229185131208574147195386735218621606643507995353169607153316256911792622096404607510146234896692119860998779719084584490040659982150874828593788738157637089777396975483185940721130187716378433787965377827599909260971424761797478845148764944410983934402029318225066960973129754800800573973033783998909776132918081428865323481311251279491564101022915402078741070446500758553104200397973619997542947320297856614488321111968952256281330909350929481459070647932915581498090295659258788864189342288008515285521530203926369585039566339865672706598069481021887785544882756993460026828605117592942228153273205392355702045726721093398888426938500039690207260099924372123875977828333068602122353608678387926192995215332949617690055171200241289007944711035466087557817457318728515613261342521917165998176482958694842909050107209134081973150655844947901362711760555604694335899179946481340846263067580372745857769571484491040148937829221039733199015737870784761376023870393501345184974959311316318866890584757765696012553224527749011545695813019648053621956486662220912617111169108195738017314861478246862664975420399422307779201020807033359035752492504818732317201933696106649228247316721743436280688091179750449267358563192796332511127859924998011137002550385393622897723040984925203854320702524656951213671865187089324593247277779678240489821286263879718917209223080698816159534015149378233984649540536789705103687263417186007923102175859923155769274732781459729073393273081087266489037509471622238069008763734191431152675822107982590838050039579639629106479561340079015496340252151761747636742498704117425408837353868401967221818343507101776024271041343839780081180887138347961144242531962344387870603654472156357647411540717637923075258292749072831670828236673929193976936310699133080117996622111523169828495012262334263076006029581309313559268575140611651919712138250001630607167245561526560828983932432997186289582228993431935619632859338341493407118612866551777453810675504037780581172481311071689849243928102479861336741276294172528118835403363664645978567080782433899282386009583956523180404475016010726847725835405538307549918064409096300912546155627825080414621061722504370503953574974802054448499767404341749483758302336605265158196055435654943515903420329377486362046732027827487353762197287045396544569469502228933950488874987384298825255361731336958266681384011996188548251680257292974505630502220183247331892154187739069701787910622139009011092146559008625948252556018630635124067856705715659230187151587853519003300774048123524361810984184356421261578476780747591478263977263357087189227127280483995084326455879184871661706166815387874732672562616171595237577067059195473308075038621321347421115031158943757615497306664361979421911028280854629800492407640977391409758632608501677008262606820447319607087343535121110204147985875733029756528874188037346778335583380078370978522215834423611724650094864804268460921623100572096595344419187111755112063783006060362746607868458225586176975646590581137565397396932598150444562978719887290364164131995166986887413109577778302325905190765765046323684933920521224854401011997476054253822985159182818942220091560551070480468593431254723243386203445545282531852027361933483706511986313315636617528476608663562991833526300332507782352056634328424963327691271051472291390900406186248531859816693959008027217028215067439199293467792533883916627801624710245279133428764143342630539969315477340543147543951979197727913495940616693453091963371264113945418261044184669528997385279352795593209067194009423954200900244723585997247859425815393408042061127199841525358710076822196873535608941564305096672380560187453623697796991606257628365703569279710876014059754804240170289642483966715241579909369657054484436696754626090236977110337640035732201635711036040234179356092412356237974395168655545227415531540859568968795594986870292488202620985795933447232921715957789768555274132551228464323355089357988355979333817702927174589977695618020835622792026454408525145807903371290023382597281467455684369473689920010265313479056001638791149864113608796203012931532614975773414362571436847403887784511076228782637292529776553571835212525336905678691987369492062560722247975308685697964586189524318405224976087259801659757354498360236617638822249640283796978756826751800138231948292182231331073012506831148116108206928846692340828598528901105406671267420006689592531933918207327636411317485682957534955705892157794141996124386066739142759265266340954068032205855976431176367953373553371505199163457978405281076765213052328831788756512048141233968603507394564799154035037000101284532550372623488682769593573540545538161656105339399713187616110454049024623154221394848165227761580513405808094794346393972622213121014872892560685427217178161932801044166894090980699296308233449285277580128347126931170279476135025135597146712865006088839606874034529001449321059763097366127502825986478181930476802207718583068274452685422477782584830733323638907855856757140758576100720725971988577003349945628151653959001410477502633232276686114994877273256780202579672446929179695275577290909315042239564771437936212091382385521370652224933802653830692225203158001462825740928081608478701536674131550913384721383731004895707895483067213388530118801924986468539133665130830233589086425623392447118886994391062171957217254660837786102634778750779483869776348956777641975138136774930771481176037656857505679001789297807437028227544239797779065479513293655410794784688967581268560629065304935990578890308736694650634478115772451829303869528958416002887039416317963853889712917541818376692578647994250225427174323206646186505829683162962263609961910498690816372369850862958838707313121014637737871873943214400422047703659021926225346834670276247457580888262051435796811550469118283017598478475006643461080533015858555134898323066816170436928932840317040552212502741775226745533027148338173450796862858620851868223115278918289390665071762850517955993566258421572386777799615678226074557389562276314722041422946180594233014086657169391804138630176519004609229762548684564760090476434008453195216486395576714820302541341989451900472372897361972335347957041004876652522941367555228342869439896096107122004553534515038891408798221743996887586773528539988565813433250358312976364094133095733382257134661583117710511623843843001714146057797414830490705541050822810712231910442082858132369735561787984440531985917551636025279233299641488122194789166796745781923185881502700020857220610344745725457814340202278990444878518110090990171973259881618631616466697329006373101479437992667584618518227624096697481669961206689280962670879891184196743343808376030951552913711716687356111090643435520373541438040793261211405257565196880414636766254566544666717727883742798833073958598875015115101659626986439443262191210857549137541195046419611098619925482718525085416370686055915809389506807460922520882668885056303514676538828026082743637378946700218346600572134227850620819355038761170810424213599857942723914654883330048215313826302961433123170414668936453151258984192856954339369080078357929935785781633139351349671480900956270747080841998097997415072223978482455765020519093225958455003339948832982113714044431580359362021807105531668368073804264741631603172893187868511804061354526754520551627341197486756670709639330650998777822638609387101230161366752638950766078978829961843999170502266633090464016362008717429253007291143001504786775114857141407015044936162932087813212544711422475472250496575098962823495811411665320572113745829825792747989033187686577490086326103875131165780237277829590344643899269407939951541912422329086227233053447296037662687277091503323677709562299970554412348264270624983766292610141708360191036256279309332868264937612646750268191141853630217000208941105605380574065233825579417603093145582573505706637326588877699077899710933498045172981306682180465335907088625054642407423916886068544932324033089464824161451240938611359015683705690209494867637962691673526011698570291462831103122388745809540940316831636532349162039344424153132281047694146863733579208026290586520650723583953897077602930663556186966711457300276895757681781874343978567048067357912032947771056272949363124528109764704144463100890980170720465608098567251277070580318446388629374845235406777637099725131794965010878570655958978242983265545363815443110217946049945421783229770298468875593294899747969216385714677240198991815545770338848159125963865313006014455488702103171106160615675927468328496392249828923427188123145913583042004118792295427814309832091189757686988802167340574139233304772340905912026152741667163367223759589045050637047597969884068128607550560367100180567479552180920972265357980551667078805175860977061477435607552104963170613719948361379575945627494084899167785597345169827853810350961372873158554379793407806515828856726209772823199522206229234382531756798256202668158290969468648522281219110830623823795763139989520941730759416890323745170810851369429050747324416487370733819020937211053245631769025245903733997413540440037977117577511591459275520802400870040155242252262922771987627485769697120942328966009577324416699976900612435937169083040687952329678933725276234265239161583532353182800674002947233414480240509896070481374925634879594112326251519958935537540692805627937163781109509514892249342047774669161430178977801081381804004598254685187687873493098818103584186406800791844411276471179874820621162333401010005711060279776761154916830204644167914000785401732792606785632806757946894246054189112961159317365625585617666933501985184003294214940658531358987033962287476723755486745443687406737718604431307818132564561607843849310924317558467937154830372184522503825483280845721349385111647297660256807161726578824825902536005758706760498287573992112388072870947860944427348375561973671640506066238414724883957965763853625204974800772160606274492436379672988535971829008396137387648606123344387035925341501516720047086319544287840290649108360110057172431144163498299176352058615707784844410598523467853413014250166292121723963061388796939929333631057310222574858972827307636740488435681395716847880752909086462146231167435192342283606594382682739908824317280225009334914948345099244621930576887876053692021484073266111102580712237814666761590547836970901703106105195639750397019776582003634590434485497625864457290108321861936585037484721992218948961063657726512525769194212782223998653863516790889499229352808039506545507296834321812627934816649046106505503516817175719911258778976195128382641942307169796642868338602182674187746965461331633924021009543993881278470567556734868933506065475094275360722587375112299239702177215091912474822332044047131222394766717290186166271050844767129592949931866969870472350718622603963793655093399327857740003286002132024669382385012752767628206769483526665428985764305526582016338848123775077841993602056993567500975733955646351940642334580652325623833244247143186674216726643631067619804974480617014537177069973541889912925488527210992668093074815513872757660108372353234900894620686083289108704530393255552028609059684755137521733220534265179693475229301107396579295966407764906857429755770680230897124836284781699663781068565411193828094998361230028529491769925969489225867591828361753094978231148766168095820032358705281240951933866680032951580007706095217857983140222931415998309954698007728440688792277075886285466120400225146740541993698294457055732942653631188187621916712030560951811494303020032638908984086830736648412674589099924053193405381804367313680056142066396119005346413795150222624858783770567109544376016718014959384990280654709048000656624792080286908998769443810760899448849292241553319654128226861895547421828371442124276535786263587242088070882005354016278458503552063036917392381262219686239129501447985005579318876181054507355009600166462359021067091162513288581708779739084260185582691381095987207685316263237863602320249307803745031089042085240687331268363279370880619083689035041597316700583235253910229811189329542133676914107168182977629607380633205739597094007333232644082791151326950859520428815192082284034088057370459876260365270789394242803481218501434244879021797570534442279264656854716513518136842885134212327072434598484066682907299239266997978755041276080168510788944082205434190888469561836759181869950723487756181639065027968287800505369933338138730048268896169520937640589336578779483686202586488208842894486579946228228335693698824639119204042806506876785078015595554021250411796287856762465574592193359616063755952515786438617591038360623082278544415661087387690235759476933127748854854583989598789871853700175840522247013670684056878954579149193947136727547129487357057545876225113879400472252744185312792201943011683160499797459928606306028988585582647682435321660724312198623159345574484531869612639400312600608775178260499018515891496425509609575191261463912069181246903747271107339879073387227256504826615804395869057664959573118012536837182769059831876582304656147634162553937105908225582851576225476928361942849675953711053491172969183416543505442261427888791984645603361449196259274445243077056160888079079520316075211178820423616684998854462166170474779898943641134036157022832024429012313629952370941915815449071931929805354559781238003456399959543601309233348203710805863880417132238540331625118596047432717449640161160994335663561062594909047880621102221499092943676964439429301987790723110193816496460050016056688479386990208462092130997522602256104472439763405157979841553533776461599252464826249837837994476084129924995025923135502233811393622840656225802877260857278461314201441461060094786769191559263682037826246500137799676931285317824172578960612669297252157114770462962489577217764010781518598620065334298723649534827784136614972656357496980293737615057418906425259564795805671439826261908027173828342418924912186870985196818483632281584829506949394534594541968461645453075170106177022325121523230081458626605516637352659043782054927052717598916969930112501280235295030574620470977222624568598667558248053862544590600428999901129112242405167450318912524086354509144495006422672159203607255302237296006825086995907211923330783206261225859783391014228788621895721219659332248745261802687178723103258377909413631464972289230045925920800673879021489223408260584653687225749306646878643944097658704644638676931098148002116126422587004867750188401892100084991673263404717261411114006245188015901653998682614604873876206188403574431511847129488392628707573207179551796511327178807145062558036492526821453338134240104327906170056307808480848079059344382690961539839755707144947536125464721340708387386436594465902505804034037455385567405578113248523371056809393060482458806665815895040211018852073509128411963020311219418590787592468834603171529665769264742031197918186990213076144841866977879629377710991227256347176488894082542951578153479380735016576014880808706516282313692752886668765738386022024449412180279953731093494086043724830082457964145849441495555986314077148660694689785020454019455304906988739861151794153220020159097600551451672314023592054151087467351051197681813601793745912068261517770784376975303734683029177393193628340689453056118026607840095931447014653033168003149277017471914587034178514356597057300353856259017823463810168079335879856178442011432161900656511316145784612113158433649147929771243722789632789877475832318522282098684243153949389328282695223306688942610690980193100047119691430709787875239569426173129089325676716211761804062351010429509382756371391346664884501475367444409844890754731588490825300944257740748751591029596362078843333879008046570794745597916757502750541178658223140213328645187399993035666880167956339948330845817213928321767154850104255689485168467985014193131777920807738124190128099567815111044303407900023717731589135636955494288408006555945544871349531273241858609420517542846196998945257870149067807915637316677550954699202992713354075668689980283252105661877991303744985328589842034753973277464660255101183270501857742207312822448708965795198822587945330998327845365436365899100968991363884613188234042367012864976765403124300251581987612419274631643724673667077544619870396784144281445791006846342693803220922898899163171495315160273967356465322964196310686579249280546956486700415205213674220054241571566779281389227937203424365051812080145207804009874507775880306276108018637171347187506634339003509772387059004315530385547619547428407554814304577556464294379282895745297118719919356195011048716389588542571956689787346876011648393372895061689386157655928167690126120704993419941933238210864488605117437385894425966755612095720463271260592057806425557070604040426329603663761446587123957216382837277482940944567937847119389493083637281776836636132120988212715286105871710051077754234841147615771548854509757556713519530011255866189376486923047694441620423283812452937774747146101088605163385168982624254988883403625636108289604968821916874740579090181808297118655219568383999265252652413829270898993156837705031076865498209992785110587886272655973149548137651431021884867330264926464429463482721021565149911999464018459267011249152862648034822634242555813188012888203322409942345902143093930067461790322185276994857151114459098942661120311476198684278482380564047979013582832469322506501999182797159495178775731540778607786604626838614873299507871948087658607646385043331814204571666985731929249783573758166682477071002145582840514450471938025510163600319176554884425751061232179423478927727039927357114447591939898645834209070067454329375047716839894708116556824907040840610221326910745233232802227437135845839981205776199857314873395380358173550140710438923689902826213265129759191329127608869560463025075516396428879128727526641705061995796375878960451282667471251520023064393293295077665655269443615837777166390134787080305103834385270287409008694475495883223889728565093768476226806799197339759471826900459679711779411794730638073973929016323786413419317090817968692935126874006603183260069175382786717886670537106177796545648101571824032898079496749047317727529647932585213945491482985381531283697786026881375729563136168303297206468643243772637956062916448097078044461594990185370652815921515149422734893950446781492975623346151155906434770502174482610113462616745940114409132349799089150330200379935715933241647648492647354989922888963276090504402108750457481658846978524438000251776255998451663444123165544210722151364263532197759494609874383221489247178966545774882013276086716530287050382569481752782899231257706932222976812606118167326532136688288293456045399604197083486807138470096706023717357025335115436310192427667590356640675879679765227205380861053513325182856504573992506745031315460101523260250916648606927111525272169208592185606540705084418054507482490695742953006450181430258388861686014157270038622489172075119562002613127060283685980588996813113805093228627418258461581923207441459229536547835723999578392890313620013978980893785525139467410383384482259210799720871134531361423999611602379557399916951636981233027450060688728655910433938107438751543071248120068854995597777900066047679463183392313640821541484579924870192016948168969247927527516444844653923700340873602168302622633004057235933788077245248406256354725497480413935973503841773181994960031014481456591601901818299958845800111168543454695345249969599544290074623171963948234665787746904424075319692266450110141317011239953384682131485811406139565453244292535132220919436951212235917533163997259606489456940356634977109262621519685881172002760524573483215353756490264559040440639057309661492678874360466762766737380826122040057671231796908958605626600415734871112984654884409604279117336184904580568372101931984689091106591261824321095583628515686282249723988620550989878771373190975579133088465719188643395336610773075467402530831976201160849893360790438950258607277989471827009485879952105172640902950204822356152909611231892658004083564848617602980605644348865124452142896722475823858351468011802715410503104274761798754893960222233573276492535164899577639027558794069938898729521386153620040959408437993121678035149814423959683209009565579958970148858885063008884663156027119293725969477879187362781268576507087509454651735971146852136780804387221014404963549898739581635085060418951960534491316381654643795060979652100698009408652560198341524905767812711680104156357141601771388547458338860830417831543957550146795426284745313526078652782427018019014083125590724510725232554053791344974138127473015527664777202513200128323899657341313320569431409836813552986199214843811911410975876400877697860834089836327584844783711792825285296477414514124174706250748683313566515800313307372995986591168896801665730901128948318886804599978990385568540382270013241091376855483394330249426242746175281225810465077730795373389322478909085783001355060678129699502014502898868484773894161714489831001725585939598262329055798343221810287911348075040012084819699015611302158880958379873011641886075828161811367206482375950853145043042581479260119882771581179397539328318749385019558056133541027355586777324786954190114143226084491186196496046271407966717499476501719248462529982152956524014175665183571645971547426253856460305597945373901517553997508187300751926573052939060652846548038051471289129475636445699126336006208128153619958257973611001053232288651921874392132034105183782142924810758268561069814505051028661389222493233320726800058446137235260853073284774299297536829210322755232886200590805510041949324581670745246443035140548983102473448226618648287732685490477183265720728619434566883768250258293013062093979521518207647316580713365038937517208075654888373423539650885385625592851076294796102088762667569634784997283557594972799875150789643942245065245048303083603875404242110879629802317664068761520143819376094793202457798636674548932626059958425611554324188281822115537652176923447529128898865335144546388387302322389778623801776266637812937808152636217821925511060097813014201067161185653336487384163416950359160135092765931342856331127818411389937612043497173616228845168766045531443597789063901178727955431481302963511414605490189420726874646582284160475426707484502187405881186668588107834366334341127040099695895382589617928217728374741182261924159228343734530655429153391021357726727458933133598915671723135948882443673957833174236515279227021008217981956364742560144280010216141384430722874998588974083211848438662850262431876444347482317906284848809960196262828619673199051097679097445763315959092299116176769518241977111804212063435048524447020560383164573400506892300844843900995741870459464455849915719645123837556349433020251560990389645399816728043015768168164294210484322113538783188909298696073663060486255945060065324376169049399605741187350402641861567220909069331497059914729473344602484172320447847863252136698463193273640436003262377496053947517592953998640789897885773601051080673505890038942190321394094732544121691897161389405649478428559225955445906832734426389990135054964005362409063165834070128102681139567290945987422371282376586751995725153534401296216157258346929350235108202051701762460892277993962872351072352024357501852146031784244256925502003588490902912986068673556944523228734406755502611928987335915201840849149460217470147595636113678353845269195090207670794832419605220769179006205228863653196144696598062615228699041016090648372047716214236675830481918888290908045996888675657813684686371681886468545030033096975751112054512589009339490662772605004672015776290868767042602439223924853163097378996213219713925537153578665920790569106981900957177393476589027576947277104909397114828092451933069188737797216663331413803522907993833788721067139969868933953198067024735716252378057362309057890666518121981746011933447985621007491949756235829695609476595097401270086752502552577788839739056675717545645778514099711384179999507868802778897386934121191657309815464058868244976260535703825659494526918848042534154114767536769433781369339974004870712093734922829759480052660546302891673666031293729128615681179846369342784812554663832690884556623755771345677360347623327194002230601847058889925808392042654779944029298574220415770582128523579038960247852234731155787481615338133929526664832861429321124078731975439068416974477803638895816415353187381732313173576871360306769661767657667056589115730289465836960588354407379816296227264926819300255184937562406087749940093959910778056003108979505684787180461929621499772568493250194118376581850142913207544915760988961110599213793997187534090758185176437046418039754553923362832932153176139931706481530562289923577375507878719122298500531803084365904149585091087694437984332250985748658572907546122012289132690527468280642947962019724978461031337682465063992661058225248841308049253675488305079644900751341479422539920874417635925924123287134661412496663925085320827738564482400682105990166970301976116876029998317834960059922330437859120561593832339177582586557081973263444156490843202114598432950013905929888266087218867465503363133381545643353002549438242152506868406942560408175699335306969714742109711195371665536199662815191235486973607087981977965543562403799560735834250724746208650855930132361106032880994049894783246320860485565131719264800151122346846237370446584563474656347772893090430688410791393871278641434965820205914876043158216520413788662847609750621753190911043742655057217628132149603521144855297102463434303072498715363558444487430462560044555822282035170340395078538332702909721313309426297282623444202173278617363056808635183198794458521715164884267560852590626810623853305945520591898050821561338684597317816802093344186099444006125617634175515197533870693139960681417548133588528283745774470863503274415851445886681726808087232549922236103955548360909977257457660672290605938847928824502979178515660763197858231278473552320652533160362515828211980244269135238218683596333213342520481304390325679423529180843385651752413044558280558589685298634776990862455000573484949007303726622314171092354501992572824952151909021583380629902566745411037204626161170117664367202523265361807357037069046342487556154054572348034958760900274386484997437837917945915682524176621341158383061855805528370848302276136905243936654337878823772921121645285881485888286113558423217188040705029162903316604053138580352873837680505204386658010404517696034566354930954155606958145585125376507169254421225978034010097023448651427651357301594744535778882599561129059669679921092813306858277541098275528768964034265837684898961431626195262816489017458404648154038737556677175407309399594172623990074418445863204790453448921029663922766998624993829670947973290559537322601148535762086888811560159588846163287428233881303221107483854223827404490392201597288638971767287622456966566291401138032385530307446693585843794449534881618985197146941530964431500263451203131684721998437569626623820964015853132614153622945102604078027012981315219563773183042628243701435298382232461128004162093207802202310050667945246286185952018153184408164272404408319028601940287833404534341257628084491545912830026884293336337724989495010859649125912042312370312708642871908874116386410293453826400968127413701995373892726436056894436705911522846533806152201863507228188017885892213537974324598329664861531715456541732231851448987684586370684246487647842438764329889525076035892513420805215312239685483205868596115655612474599829003601789371692968758743249574106924100214059836291441544399593236587022008262818033754666599172955454123550638602538416226396196285876579394645844286598715033067237722260302065223069806378234962340323539711257343050067231218710791049715714744866925961903961080099269358693851218430755623745938193125984894094191022218807191453083953979040109158407807768329861266108111965423958665989512781855523834887901692918879130749854223167971994684501928681195199607903596293657213177284848428250951141598127077925143741720285861355976444279044445775558240419983614088009552739886599082548089994082595844312597033207576279783454528931295814043604054062770540403545569125259710571801515136207685043459699145560041468341203432663723565243767827057653357732959914718341858863386975708941805475517454721114796641078015449490753097446440055465942955464339647199533732618804062261434729260942890490934419726966077306151484714102660330400752146527613453364066742538714576212673113554113163636090596699322245652200731769833070439163439305540888320244315069802467505937093102811375031122512229053456918794193148450813646236318274248508649630628105234330340790526021018291414307507015026812248392858723941525693000367974714935342022612231165338831531406284078781254838017035225311264397551251810878196273133202051914142063861845676030553011949530349139585120880096288988424025859691729047183489155724235124419322944194701921187467360502486593791086133533215978752099990027652085436703125311096880777858955216301973039790032123240043962500811180218598607642232523762803313788385407630663829406606857590598384413998345605216280015280004572621309090251999839148769750613067965492540011560108888527914641949943736353587302233544591777607765371017708325052462587443061514844691169250004464636994442605114133042104425872140650839606525389354214193639781500159678387166267323450379853796038262879134442123815742550439183379268579484462789164554351156778551380277548172391557699401829258565435748412786798972572323326659129546472712969648961147804472505163498446677331232360851934404317653686272434763167524055618762820058735264211504742589610601416127724479024295385019838956397878951418222897976165360905527483794594423032187979334105450488866426124742813942616843054306347059742191032405839317503848642804188170937868822676329419336755396381149019621743979879783707261757328177967444977410634356687088045701959039744696277225013095531417272190502362625891540324224510001819384836506269549128720760121880941918272631519002781774943811983970068423765914283769823182306542656947314367883124714047699664331933584224275036992320113376663690789799477186166005063540972476578103265815569696895211396406175547824011549076301822801377403479303660472674525209346914563303051540655983137821793832864597572835652579330329965568716717602161421504501900532095755704329494935471312657228636048055748674491785085186396849738679003474985348184455720954020228739262372676616018356856719872850116616363143751255996786239530948872920094429392725664246207606902884135150137071850569738292056250937600777255258174092525201570295562628983057134888994690837279002582041478105586335470692694436291587788661164003052566311723833915488121250001463849947176408509966079815447531967224686222126700074128670063253237902024058720233728361847112016474022956538886326929598791626002279813876006258072359557579326850470739608618933079637708752630824022285691155369149624983437912168639162436564052020241903361409998604223529143847535678701786682051931928175161837880471350584168079159236093454057705303213778589252359798523612256556294713671750288980755602384438512263523510550026829977121537880547305720049993683485870583581586539754728603924417527694230006710480639556921626113781403065099351513092884760995703279750455263204244749395844729723669141685853390102213685817632779719514991064496506317193119077394883168338792409791249346012627553005890208698421164785174242963665711201362289803382860412642880089467328682909116325813658170523226084280618682838731826830037102198544784149944632276979630044557473837346337105398573155719376318882886298669498925152414994507648289745648577661388258047489352918458759983733757897911676650743536691011567227233559832214541199541370878343541599232963225175380199947816991034049392023251937380693999409013574349001963270907573186845793041320255032856020919863947811192868714864974340890976380846562951317389838624086978750260233142654496602828133870367046302549584129862469536657236140300181353529986476525583515179000454457613551418910772405260006401712652955468086766252746972373502673374290317959670021987689279613898256211375556910672578869189937162944844356556236681673805562726294132243289498695078855014536567594201979177451002738946032622570133868423420890039936576179976434908080918349029090604542059547312405544635279909857891894834279255741076786982445550982337188186972412981821093875066279511201587604814180846166281905637602140524585494541464946682678816204034592300597489443394642910329605741929295858654161220314255368299607359387987934180869197248040601975823711556901315080507335366251406980596906000109038113151162983512002055518438965456051115375042403591616565425316790865760500126942492255144873028813500896988013615563526274526296263370325680719628152119820540542059902203813523293779538438773463916957669148541082088896850748982594364779367205072724126359113653607075554165069369044753806115895114310747378849161660096282727481968366528476719698945977566035674038384981140002390318954150478496038641695728537963975858416212715459650121492503188290197317760316994552636789942414159757441991960508080200033149227089690707976798801320324570670023525548820217349595270776839189972749141742762038766878798335287656620981544474595839750935604955833999936025324470795267728691698526185573675846372081141104267480762897775636019705087504717747548171184992707380210831063864011103570589345153800128205982998912898332862680768840876640362662878297448393005617671786683668222360164841595319587634629192175407613682399197965138530583195517246226119973424981705473701810115756022304183233968927009369486262587648651289315821437330149651514526842040844512130693910809209949871605012490359609389139120643456036284387162984193538703326184512587849278343777329105720287074730410741794339937192876580102353867197493152548235389717609817196663360884160113005594913367918441287167518569590106865242630414557654877011514431838069742833114815267017080377942247358300707385522349122270523683383766767064017929963151201395685797670512944522134215953265898098975673766872841574286560465604552447324893453042136502545944522909066700183867994248314972738758218430876754865488021480285980823963566120106385161019037595615212601909113454199484476796730594106955759169576656785906185101726439855256770774946120662327162737652562096639574235426025524178246237500045876216827467820045799073081909810994288081329394580295010630771511185256079327850090606287465759151761860521800797701317885667102950454917436486818696612063388219710647080230202839397465520964708041415865965069709401294124757351290778964235254846527767528051386169770755928449943201387660875873179777217245152280431297668330130434199958203377159226924094613299563186568250260005839452850596183482743857425931339523731463035992609150865586725384873861326750661096661279377221983388203197365078315772310699415315857874821250957632534288553726954056042798143643062924693024523639601106109867829225100060718519974274591743180931826229962714205952032166467756834997287966660787036676201185945714055402199009143660671178134739655367864679090784279642357547915151969471017519235510403598936080497737601394637542241209291327912480732063849310693325014412293728461420995954325346515162524632313827192152644408427320669012452319746156961640436528560216549078908714694595281538879993996438902625446526267190400789270304674276902975647129934185114201829005174810093025330051473568908052059740165301713155546543796882739062035084781179368133595747078434025265872986174667820743077603410607626991198844090282708560126472016430374663717802551402985609550859779689446477281027524783229253197398928135057526811435570075974817804057390288985306647132860015205453658986925331924636953741626300340170625478032579673300531564027321055276881529626246585060039609345427613948580945147206737840447014639640434063936524969243992072029874442794838204655955928517317875170759759317429544785679675795207581859553902248486402557805948542532440152596094389633545745251213870887670992299997346720210590988199256915899734090231770535503393900470314666738698362563821388521269305840479084593920284577127308005609928116612102179309136274171662467721158430880809808581821295527373451926822599301435913889557387175309779201200204247568762410749238250766909347626206430315412763040172364318855321620900200721483082845595206234583662059728463343885087572703812394365307081938287002354302782992496033169770738797999247274112930103159808150509272850591512484728989563898318609495437756259745073937696100767386064550449822322773576364767103815985589955307258242161838982866231197676716155846715518567907209680786045192474322310809316189233932131956221684180070294883915607629845732302613952465433228291020575262575395714734167976955052775644253052045731880411543252097670529936083520235425499441610652977103760263215538381036433216346069462144137125001730651475491978194336338857297482985011539531624963702153202836847091599774276732802419942220170785877675035916663157143642123367017568344037077879458754318983240899548685813761162573419138027515993304570027779670124178024787086915617175420134851186755261017840944721469973868397241583380932319991481430009589942913539805908484868908402538699775330924136249427258618358103152743972083024860125775471452571948663221392602434773758327759928425643657053870899962100374626341000482139545210762510527454385175606230482858060806230450721157978423077388096312605178108731034159996566226605679333988514109976846549198945037171296124687764186336514711536694274520967773728002975968836496651018372839297715599451725372148210287683371707438043102529819371498679799261056943097426655081294008183481050159923366541936475331910059661375481545351356071536274115069364700780278064853121153791536237454743435944162960055073139978900592285289496452020219775098491115909438190335150619133001547471947209226693180774963835353810720288340391633215327286169328350548326279364433704334204900803444052016926611633171730572778716691882733510567339137689277330461877936117290042545853381296092403862143700627611251144948922796312076070279333464246093856407340265525992066993678865024035137376410254543801949742292875340507910817219273467135963316129751950695883083200284844351862924643355493258697000872409170594304026795616552447848309983324012091311291843626415132775353317802881327386720263244564681837472871544097169509545030718568091648577164084151305495937830294378123949090263731931699593174264157568736564742916347047112762692536617854669986359065570779108832690656373352848293365814329808095172522813624514150608115058411598276508007227891815158834001003516090938063443331848106437349539827217634066528921569379096336923778580325592578469147938402961295166607314782997155543186910159657774933774234828320540843778160370721794001623570154216223396960260212489496543812394321264172182415391637862982753852247355667778480644887231142810581394028199483026129389116617250111922461019655152565208705076451783925947589842785405320301109155598050949280230461444245821311764956129738422925457636772631473807367755978532202212059337010395451057495470620349274325506058509107440312107224700080504402748987397140536675759762536266715155848292786664120726646788132313336984705661272107355667493115219153549808323807212042016971985152879479046371735233575238840203700337817559240007051873007957134849478321129543527465142224582656533228448034927858492403306983282218913137644149672953168485825375754186226377481156131719104056757321681067795766610852884708394615634897053797617365262759010262660047551179722190980679687505129417456009602035955493196676785642668294408526051534756698411856874819575464274679152753733334665121584701915834248927059067191210698066626797630324062312224773189531613392970011334538608187923521097064186438370241579288172846944459755615847445033005412711058643889382959376976936639336785671320781278837365689516072916151259323014204610167340699185898438836555814455245003573945517277992157833926041015434165843289338303596650563528043039143818982089840771698724994159324341191697165246906461362130771568246066818043666682754097340661934673308343738057777181495132738273583509590222065602584342243069652060521435106048272389151435196569475921210818233963794223414890179432222577363143201053548988552257875063409834302393065054523720675192797200019871864762324460504998104870296841220448767928242483307079550839333571328873712038362295440986080069826031981770716976672934994515512769626893528614913214251700793958343731954572578400556289779965096818822471501889936855160392831043349635291293233815510965552784358167257942423717991236112107696596951465801059066485233817267391907808598165026641016266518633737854655837299417800431246661646681391734569286145616869616452042136696882196185097192023285167802938253826370476668389487408996301153162351029462103538296887895804094697157073518766520695022946544397197261207318268918439300909071775406506120189284164558659697586968009244081154205729464134059485985734116913006090438386169754761762795834439435807551344404219274711327597466644944267014386649183788837423057016741136546200564212812146255841190464834212355708099788987754628333382072883841149573291168465778092304544717545350000912969329019843329801657581951841884135047201643726887690796821039997120986547672579659241527754317159398191850722130784256662004227951643280931167698395041774207520881021567939144645113459415470291591316160293750792355098179236900687677426003638175945948977005973372023045322532488889531530718213928333553884759805392738585096574507597985922615614086205331814838264819945514229842471436141981241327960946752839294128727963193897600781312194875712248207100468733210651567799210830126537107950906312312047278813654978993283230664836234870328812398961359745525948752238406004269979196861800774761695194741808749307767401369614709521605879899305357673862571436425238432994263069399170124107502175374302189693954802772097154962482039480259698691976503035000037569800894470194534647593128754466963359195063727283167689615346236957880250948437640947586321971374494132717831588681083457925481505108205480795020131909671731416216497969402842533656998598295351082762510632710280215211102277116443694319165765437496577776633404854943287028770592834931415037419276120692335839561934707313998747901831879649545635253177993422861320184829588987161847537928558204093071410221863621222072323441505224659069908981528259537334494617623998825273599036862324110647182754833375814358702739611979629841460746864613004404558851162838908134853610049362792431531216718308108205607248788511392726466081309035207769262825894257106056598483779163937081758420725271607945642616008890117129602325683580619348668452524931323307921432744864372501550801141846627544489190975899425746694729545780669977147273526083686209274020608672803754253175799190858246311496428503535500459663939055471997476004866895456357260775322241635109453489213145259020593717314399077701788703466414006623938204709273114678157812039430531148436947377657435881440210032792430951586977267588147246822679631366932849016516429384830890114450780560198638442385877030644418453224198742586647717466334875755438315125874090704251928874819224278167089636412341692660688577721999303539051843387576807281226714310255916771184000114009329807078536321370733986404574399264187059430138603231558447683692717363896922347082485198861042093529314108410369316111452722880255775873290679018237716746238507133340990996687290015195346589188509497973341500012414463968836210129683934182005620297176973337056723143885505953925837872392916182051352750765917673132421432311209412846793044681387917702040441364499305750883807452345402145237990287028488932582970203983499421578684823888163795680865760207396697658301195930508105481123226860669770548190909719961391598520971147398270294194669828698001160314815086017156526202478905212178798646167574700502565532806359791695777190500577297373501905872770220894582511598804412746135098713700419179622787090623398364119861574510303389979445931733057844087652496519076155928833314543775450675801119631079040351506442920668987869895332906324790026209002875477776099583647671630072450509905080300698961012902864644524653945244292717791416871501285084274006585560727760933641527828563527181811754327622995217649713780873135406341747417399951467126701894731627260741577147129784375348891988397759369082045400705069836948644581878579719753822308119428525141617418982933986468498740414280491071790735260134349622598988896890891325612302213572359666377524199844472046615061605763987014144733676033151629748759217295644881399444072193936795322784624363340518695813970819148297100811845890121770880867038370847463679295177713401278564673091588997204972000952981480679887373571246550051155989167867421834991263847122969439659482730990266326898353478405324958879353793297394550882917979309315887430226253040058628856382496114579272132340204161857585007966188785764346148620111243010646714246326614910048816435968042997980710579927654043658758886601171604675881685784038232924647558726449560950893432783965335864679328815968276382982401850835830771167177492836590411346408161640370432596056031767183644944780746872469319659432187754836915300321934546145927065161046633679263751752822471596482156764914714254227940717394261546474243238980616168564753150501870660444528463181964763247555409385868264064850147690201202391292279857017901154235885395068203858785330537044056364687440012958768386529753195834896847847911397109259151837402928628874153699409027337589847898320815990389584876340862778958392961251734404118329977703318158710340581767407530887224849335645532023672187717330819389256958979985971114228075845903160722350036787472573021365179169316878226447196723760380083791075119683018613308817475122116464446938992135491477166306977665935236954189896129038598505944033038691428143758736938684964907714140156615757187875429832799213199054652922018881122775728560831725150242586588760790139712892844339423218690563809264463845430297056756198897432783050982384802333105828470923223808375819014736361958080022805269794236623492587727667095453923705921478256238313238931568844133968016336716304229458144680490894255776963988602315136149846370810354840786979598519709267630071752300646265492517433844300509618054255874889044160740895145142666012809716808327955568568643479653694873343627244565653282316847855088757018748314338700290775322883735973794705617112615955995531097564439457580710333163363498236157117036870692649241644859222650431851831252529703714090515391836746471988945176967774913846120642149529843227084804431651522871219571814807769318110571253261005099524751138874691628059858997481221183624041481460934662835927066695571416542806696374632887341002686785687622007135020783808084280308373718163280379482592014623106848595499908004370309310884032929048726751787963279609077015012987672844148978724741399316004363644511688787363380913909560377602744252989816283218191483819811764547383321435950978962222285591438579932850698878061082389361405236402736332583539283183871026850986570860440265643242721870141462696923439172287276126689499874498913988838642562599873291090604930404369549081569139548039213972186278057652793243873487488833016279025580691435531608040472207369791800468563346035192817557329309090380408893949754790946863212464155070277212110057550276251329215580181868744805520455249399242250092531434678528415574090664694771559889048539204230052265948270954503675843523960056032679637878595056722940450547863068077051766253673367025087472399403609489165890715336416587616437400135732075914435564571592664895994122428382342584108427721285770418199820583096912639240815032213301233769287998071382641847600327471989312839291993466051639235583620648135014407641313652853332755090837977935415922111366201976409632446497609394132943072380408481352380239737669050823901209633650325394873212837827105119339213458769266746194818922062470051465195782154197749517785562157650488238707638436889813331781761057682180582805561577130333809145650709701230215519952313009825539716597578500731348250246885763500587333302159898105718559686109326458824753491552993180125790294082286086837404152071974208861619451044387974853675057792716734748256919143628927624312244181404802081085923782279461316038331560001502289009876731090931794432289997611044915468337109488169735390641807547243366918413370928930687724218803514943203914725417725233140198208982461855338365722729394004245847600889337319452227135609722692728234017371660565800698668849306098632193453817253066559270114629597677290000523075878833054857973003310909958235650211521871842170174852060675630135060450849520747147387637448725295394136161457193440239774064679265645416694449395643916467336060573895062903204318631966542822773535766845228679666206667512095151687461546144131743832401424434098034689543358529377457688082493334754256539941819788199828197551928033313712182858081187415250342244049815019177732174879896164727595935751704692241333866392150164115015273816809032517591802806979091967839962965487432907057641604228323443238630222280437871638115507504202252265035719476548326909312714930914193874089947480403626188644626744678995184249014248538440919925159831646523349436579183280313686398992161235571642099905296879426479407085919152298138963512915255155846834878370740884054620549561241814589068623682698542568190692617323576723835764111589214494237039978669362485879625508014588363059717809092082864106013088173895234979315795932366968702086906892581443103318409020632548215238912910834986436443631809862177437593378172276418480794499316227783522969726232985143388973694039931643941004417813585966889005796456534331531538797844617258625245926218799821457035559878276224429152763850251644747665194951474407682483183321724792747059867835841333300886889368272349242086632179518100838247041159231743943437150248654171013131169400723200939590452622808857066635284043815951101985687273234060525572539264503400577871241738152943332334973127768996934546035637408137936614201445993955030528082310280555656675110385047986612778064573031173315591907759860237580440147529438352253331334597024769877404831374323330807206687769160442779573899079268925362075991131609570832171235463109594798486170629327894509134982339939177748375447350155670493729863019336690356325023141287407700055570781952806425723071345108889493603343345970138748603803456882174839923691156115621989892295728697075463049941223870874743520237507022850893148182784594270495396035351318931954915141260073805264797454506571224803198011188160936388745076140081502294263305900946576972699570951612151875340166424307158294600328262836018633874134256266876439256561036176774126135360008480569600251935602846705163844577983295900782949365261589476437485134388978052302701534328220783883379361941266377726311165071503137697183956828049240954463946085265584844928899164534480996569261549758947138917734972424392024987062721777807639441452533103911037299584525424774051107152922436259909858230229110195320298989552427153092815675844687828518640238283535917629131710709756418226932374264116893200180163478647293968131773083107829952850524987274263284112554148846490092654438699066711446784484829928593726940070902155491296021372679132714130244710499163253981945119066676926665136860991635567495402358195993580729635193244567545827846919784250640346726199910827539367447731098545113139825499354344806211465863836174563052855187819838090616548868334912672311634135575249007189794473082455706692044997412157944999642798572418284429423729279510346688542840376906297883173957898123777865260211887096359967436989047109912734513691160891813522043051606213852728675231817051258813816259245921348713053314507984305522933452495103512047838006125099837943240917582027222880063454588990376088559416079441716639179801010113025069632592307847627716587529767200877878965651556331492519473774040082854887915026653017602492959437531346169162755445102629055834916278502178732485301822258393653583201517581745447621231089423178876888137978887824101030035945379607528806982710333404600715902024884890105038555556237673496051542812285189855662801693762594932903530658331224387537153086305460719220617517401784560082003017661468063771813794881194781701864224104454731071020188029452282273518845306356531511467538116458848648757557690019772458487329655867198281314523075334120767799444748511278061194311497296322801537770774476096730941215201153709754570150078606144110353298395417531651702780275801503538732712094659132356293157660491226200615369859913066613838224789032343797583842998724914508392374085612616665767757845794781953701977315892859412931925169748307135613711517504696209841993348194650232513356434413412197953684883628338661236494080541305918905310122473890592825724904636699838389557256847932698922696043528965914212599597218791613544977396183894463951366950975942120073262443869074856494824043227777529008540957783788322679773873871506064554671005731723601027930955135067573003214818350615229942021673936663060904446597402895293454817025920026846658472622766945378501568347332680377832438506083171140644114417528653217267222577751041768484982260727581691279744526482128792663506492867912306326285157405503383622680662405216935888895097134782773030654784183797547622860510455280345383129440912076519075478249457443897354650570259925125740636941888367351959996528232937468735610654314243467076573339222617446491036770967227324968669071624143161973211322185572177061543011143965615730960112859796660147432497902178156366811045844295962311181923727066676071179877665420041112386456736821901377818590854436038795380078248412837767446308603640780378485268440507183959531031089483863266675861561608698409492834198295228241632835841405759423843646982459867458800018388437194896450119435988614950411653931420412467175585692416925792360255059207499024259104756028284387943959762728464026835937202598791944383097439762656636545044036911238150363414282384446873118361182605250433498073371991197899813933020604131522022192622579954970482662108681556618496982226560901508341074988401182531091605827790216813182466291327690740512668307603424993696939563983004131561999723456387958125461162992553985625366152356199486182171759499007414148579429553890884070710588954019716792977359420241538752844022690103109708820160593784920896104653445733699056176992482866721768572585012841623060750295222053836397828453555813352509080968525140112038408267877945556568096676080952323489902600500405738192215077052063783371855486877989075471190999260698575216145660601588815610269149828844730459056556141462859509543457113174613056622123335294369275596770666320341058261191742191557109438657723594606151058791624901042018646875284314150322981372449530740464271200670499312458952442502518538051870706863203866172539076409017737981117454377879377519161295451749896038086440596906414671091058634363468540685624319214634284482539208431630705178658375969435785270312028864141337073174882580089966037603108666054375889591504775546105387426701776064196934578420712109430257886379693032051171738715939648328043096010374675859817626941230330970983979452155495331280313881020854056133725680026312497751209255964271408036564776966248305863492793219206461537124120612744650210383322290134708127254626855682520166350962768002645520609624875756745715798065145527833010598948403395353559165871797378714023238614160033583718948382291987409844998185621376900807321665532934333487637244724097290429955770582056892432257480239323552081090356124654904119405756077664467278773117327973317302293764558422050024401575277045241060696311046358714325547007720816171531880444613599324439291364918135121136201015909098270499140753864063166351130805019894156360382476457078104460639953922491814777501539928084553598030647404500498746151534755559253113337534388713468955142738058318455279278504365669862784220742692513472723339006504911362203786028122784026576298832149979026268490403852018438460425559372918009226110861564327906331429602450689887912909793762070543549889398866440386706071797832086223324025023063782948307207848721883782619547343059600123708475767535849976451732994582790638931037148414854578846875034911060651117269459131737874287557982471208703961732385542818194591572581596641331941473923360333054719509308201951251441091755781042136815966982072330094812205190536865951914511789494614098849756963184830155911515923789699812852187466897391923600703953424506270437889800580300212692688426785769005655291384774759012816045840776024125859576390125496246361765665012916191847450547421473478032772350823922440161993447520355382186064020653338262885788852160896655367712454810395998368840007007546757635893514247986155813568597244939519720666521095128905187608653560508207484127427350927832141514461175389965750688652571119796605802416404215981966766714436741730864770067512851542575862870115045112806392531813381234816121962414133814262422991074779643330484976730122361730891456512465431585135079980581951872685046196980160022276298059596647193951623388140150155071883411154051028475978120652911484254550561255657489988871784276710128054893865673376753430078105413148034754220226349353561237483166781343591923965321304658745949945163148220427075742339390116701027204358383401836994015794057976677414335301323323131708433610103233684748569121904595446727131853801858846786532862207724161004527687385505358521690129411146387627449768819232430997689011373671315414710785584453259769795460400166008885725221213643028333566854797529800671676422782321163669619063965037388110777444270439109061635381279207100520203840596902550464748098873032644665252108072533696726791737532520777286651173070514914143942116588776758852232477130528670384716371791615333279260588857217748791202347253974073670579626302235126420773728411789096539758169659893910277171860939188606139764385856818936568636763960950569780940455422126358813993610666762740791123913340649859396715887054321598928798619052195350655571406223237787105005143414978843024970508638111557566803523632297334442544803785063921124202319299060144265874327405305167532438418864849357097884535336192451704083891482611715621858142107077924912417885143166734438193376669893393549959303991720282278835982124951624293066275825166215259574597414241584463677928365426817628163389718575825747717155442915123939805691684046326962460412131966726768024906899073073426471878178700734884701999634985783913619578029354204828649661013533376949141406382511426544768411444437201617581694923442734872897750239023488852962156541998215213092209964174482894582120492180683827068275217726688165626212060455599171498950230757901620441642926912403995309522163028231958502439555018869584057315113631671300774931875872120926633964560365441767733558038739631275366839782433105438006953716964867449236129678934696597878509463832444112087658495884703179691880466252099350638493761376507996878643787716756008301605621023486292705719436140749638120249682706001886351178583558425693001079980065259167975992755241386115167777610694773344195287752867272614952754392841838335220720058740752490014694050244942868538748103105800625074844624394351017764128055143007382156646511556464494607843003584823892763074548152651652816212668675679628357642413752671164313119450448580191569542516233499807857801840051017162198550473774264457458543030459883565205719602129544818653835258765406007486802756026650208495301592164766396918573180259076722833647274799219575337345930302981012395282068706925929262590690897011686515562776809201790705582181669924418127508723324791092599301493403015592395935841509896802544055342176839326029719589783895978073233141773886080249135827161148177148689092932515335547193474836799896896211224424622521484745164233266566399405327626075054202387585179807258432699404252353361007600731273393595605345651740579188704535695981215356556849302770936230622762609611627605560198120643455877217520097337749904575137574547298955382688793045058023306147669316812969384522496070495113144870989275177983253652295635232171253624090082707651467315338269994081381469998431496397052622097653090970668720807467869923321075141943317149488701013356526849616588447987383588406403921946473426540912434625799892228857863779117591815171689555283683224253748990982084623080625619123307954916086776202925789052976198948836343333588215354481220190389244182132462783862979096802790269718300776245823315762702353159684212939630165679504786626268882274866271520076942620498390786078949288447618512139555806863338652491603927347020366233987235348488191091601799596495363369499801433963336499761736242918875066453641407688701303305926742400663636415782713104850492161159460982096023781402538170006896608313297970458024095875107187816961298421946030418186945598798914683344147300956229542072510323070671597099978898990442806466127409182679979692110604186267687720692138141799976062416138298678231756097040893654934636611554177887638243264916714329938483523484957484810968445658983832238733245341754336674627578726484974451527491295532098770300799484019247081709731911054433720855735236067946436757344586563083267316158588554019903068063723338208315321359357165536826553065433200035884021435637696964598202413096951901090781679544682653739253835758539382777210991280068591563918375509619788866976700619692003468603054187190079213237108029437567027588523234757567141309126695843663977412936567013636456114370893756100643038738249795338987344193449010791243581627190073780046198371002613882002485786783687746109736272598664872675470275992486074684084521253045789802978681127524292382589982345195343063617434265951583889507178854596509199127477202975060880703534117161451225046469936581665941466286800490543394042380983929281465162510149890970642832085814535036178667738902742688168616839179410170538222857686594043796677554079838754992777494765067102441140272399475470688190352507079762597328900370920956493001643895306352719944311201867144871696391229129520695022568347763598152706871861236342729608818501563058255711761306789251582554717465831677885351401553148417308944463063586543615424909181618771596902488349006426757378781533234156111665989204630227422612908787246568293545766289094465606405227239817700665456535289344608484228422405211610107771126202084537551714640153069117665637621111168228591494078402525669216819623580050956300754476891406922927039795834928708830206201581343628755112901877196038041190195035904206263247449526793394651538049761020062084386916476305895622042268677832827301665374818497965066920001617850995199127830163011984901538081654171410611330110908499403545836481107139221181198272618058297529241624760008515849731331184411180444404548880717197991173359823866960401633320114705869645693967425961441616095861474850309764906038117462358026216000697757340327940836378479388953091803380376375349286862240875320357284976641329109405531398681804790320707464045037408415969360165939499135721196279368656242317271027804483860073421217025465475140608525655210889181347591983534538310529488671404373059074968177480052950125890978624490157452388146202773745438937324594805924756666214425081055123617887130979872157285625039161378715049247180064263136164467098235308837865131983623284327810178486364269198122908586187439778822289689041715585948050800017226287499857985286310072908014662123045167831846899216629866345477047334589041571599682926005401255809289195502725352892215831588530293521087612966460492589352415736012902830207697214020681025458991708079080266217541190857129926146795665764402521288630764769919283723319933481414033480531603932905884466562055524483013478767362124588969268853408110682903955332222269901864360815664088671314637073354509701732806720265350979828978686886582205859798585813677097172682975099567021408498961120523853839583826751173210870180438590870449047942156863263773719881642026445805078958050027555524963686777880527783694327441072055627854437411932750272189782725907841875315789419785216401167772857885271129785917734271520494970817304738961833134005935025386348168150797660315739845162071675357987773835597503642688523661010087312939998654156607531249598230994291919299147627776727240968278889364893984404500298736030946196991292688682460232645899263797729931156190478606701680593739947306965535281401693711860821804514184158347842774538753983721514299308850480492989032428055786875546900632516460445028179923660131226550354635173035918461543981242377071688310934293335646975548830024935047003275634541221512870413812553931934242128728605569456280773333522364413539749676925916801314216681828633008130103473175458781823836200721331012619202872561875727388243291639099302769656025879117523647443915764749359804791864210174518511339422010534467392023021709952857859856792425232136999635014306342071609289397371172075337722755777260294665310451459723342317816543596797444785565855504194554147553282434354183417515306090228175674057816053380385937715906090336019943062679555762032279961360312970189457841149917505921949329016985218350977864620635403290210700565280506206637884841393864369811193609004292383945131484880829921529481525492566448649861924410094870730435259607294726831434374195817166517631777848522618965307410719210657401461852767265575585514368142407250528995465536144090212373697865181592335999172207801220565215577173266512238618388168616431418501907622265945050626692307321900696008853940552775892602885809322279053570417276407383017594617428275079921867525488065177110849272579070884217850060511484064256575703973258973223238521621748366703987165081839355703325321712381084288222042431127694687987002935338690795032428594577607674320199871272204463314002925449399366845844855489870364488757230730928105169691644209848521335055256317270368286828958437116885955203444244126324079173112830514351443126994523497646648888274443306853323200582854050274647506117124894990384272025771249160736285022830229018468664320288716334959572686475804964880910868584504579025161461958791231954696654301587490530819867466774613671522631553140409024021790713719840268833439968604210791875418190143602014893486830995352212129230437460278739167221753456128258206341510125777438716013714425974598040632642824942844373850494330704752150419121655543034573457629303041487408774624658151303394638920310986544979208129344457438085316769556776343603676814917537657298082161548410349816299043748232233033183181613284878823182321449395325105792666472473676653761599814641541707808066506972547762347846073201026387658198512023673941206895393415228581400694030789753812518460208072905915917551620547769512612984726710258923290236782346292244011563806514007614751682944708505885712986934103229838031678433184424718397292148873696378178524263476774203267376390110914206292789186411148342370895054338133273792191290397198787487884253221234069713696783489554030741736531336743892162846956852729337807025093237547065365463380868872599696574390694910731063357282335020329781691213030644593307526501431612234272418229594397820111588143549476462724673178535853965521444155067668584204426365349573030409420674688698981274298814773377830949963826849475828879420634859289666013624180657617769289179700197852148241877813065808146257069272874096560723303669170916591287066750996684009379903042398313768900160893947789867811982328751838466346389432872146190846032710890726799147606050915916760246148167969310488341705669008524933054778716386162732662279714835468270238217704849798300858583905066054530928192934145616514548221825136075079057881861917164504516167002502734151208235353537119867754263111667628609346098411637705286342234282961497940869364322342661841820754765163826590176443729173978401934771582551004336538476966846812630063258584485528279618157665600423937011669537645240384289862183942107990066896037178317884567135143852522888092002970149624804915693814665519954915153294118461637923132731247504416731787986804217654640992480377867306059174219482100211234704102473050410929468595687035310214361240387168650758007181996527521136187641759400015625001906510635013188865865049050863240067779320691315870559725415000265216628624141790223763884323323799502556890795651797827797906690887903449714356064516080842743260284409886968476075657474738731429433337282111570080946357298992106836779663238499761122022363649308345302844220914046223448833310101155734904792518790299326840237261265007876953534611775465048245910331652499650267139018057703455021188383842495844909923167238825256304962464091421510052539651242880036881361677592938376100839423560061627435163255247476579448180388009112365222424254320834638189487048498746792063289878881290482203922994463233155890246820706037302400101615316341613157183079756281254125207072627397668047214297989818820440681022062178905728905156543425435566989540222476769263281335773584618742763761052755747995394368400425969354947772548323470034973520214485853280303200578993841933926952698024152373116755889120458282517631042502707750200082274645850642374662520333035942622450898787817957819512269990751412848143339474912468203069212570350504407155770206668054757956755773384976772179032094702344605887209563981668036151437092100880420835519739952068822331924616341111900849642072274968823510582647841892970549301120264980627022228888915011576951718287362292017045136946480800600647604120243170199770014459103154933182271766076501628253308037064593406032950411194873583168295231618633734922488100809402753318370706602200910690190754034237282498061437311553936795022598342305540146577760663155590047296812066499906436670525728746693828535486832497926094415972919168096407936797214663548003005868124165143149134695703990916312328578089236143434072398529299861305063400934415220962512560573708018653596493936450566258761683860514670738919853005523446968680709410483447876874614508899194504037655620738978016417491929138150689940778331059888352127198963695361603306296277518401345683563060563071496095451839054106420448363705801615867840437060667885409674166660223503332380082391656754526365318290816565609936009667735688506947640238897613739581226405097474418606513107134967552979609162193745825452209638806936292877686780947425217124867585277641972214278567017132624816151346936546689585430075919710711366606400955160265211224968723372845409357975743188186212240596733674534488722196502249539915609252987901623158221999024108162852378110302368087515566986030454884751939226336169589192804461618940066790436019547242716547418079054396003063938754874550842685612454888695127205914384076789451061114255221667221164370375685856034450320928114893004636912225065487834302046772711651797160909669863128299146561522879938171292281045971394470193026429295540171769278010488928359769652236775535624641301214312854678689657958803732732827254486729264986395799230292295574695318774694511030912085213063429387405300331752818650215179797978377391474335513747310075382161632665403772810263539523662009577806640870925667691278980083564588537421389315920683599849074001744699755090442120231235837870035540810780972801930895491683313605019179960447259138331070590561365428100107293247659464919236822419450878256896507709555261013189611883894743573179308673781283442817022722477943909149065801802347319414836323608858676842385346572013253809231405301442677306301401775607080107280113174413598315462110875394549039062577981981416257489294103549686466105505596660370532920960521438336463954742114078559099214351332247065729377851214642489901866800041381999513057827857792128598253000152631998902236000883752636735553448237360883558514745494908637420829171823485857774774140971796164514262150683080932331381177936857966880848165167883834355792213750762638397451958364658467098509633843989304745524845321741753270262914136184465413896191250746862591924970277083783656478821138216185761532539968698093273019597613678925008287535206692248471608468678883604452205423563005529614247776651328297526235818096359340579780448335262166926122665543598501116650488006901755850823012913636608697324775066359472644350777376145309659758933833438659484381863945624419717723571718896501021516276995031410977032657312666181306231809440787982590020035256446629433530881722843808682783421959167769045340825345692349117284044905003107877708201499616990820807315502582070694386833018282269733346299459009792472203815999176525942134719256223821000100773710903339884436276092342735111507245184028978703850443373239200230791299536531552033456845008890472216313248745745632519938207815610451512426836159852776930787218865237929826660722606341520392539739868058818466704861981451451293121538974370815996477607998574083270497721612365950940499588445209867128164245748483502244152528235972788640020430201787037326505660422270816667447225039274613205490678691410156659895023616718675765540655003780381634853644854832114389912349604092751259388747722057067882104830704802506728765623970388195423064118296140651229752604002485304716751377450682941993714796108389366818053351148296348016010503795588144435890680213880505778724065808662218374283941173407873732016396951346209477644481133142376415836987741458117868599199104601311035983470276769155501698112561841362331018397334231592413356564826740703014165658137976218642743758911792629327764092386821592442118815108396664391117995277345623906755783285964041731330476861340507679331223481913177614504757093303552076879092500787698483074438305931235586525465828554470814405380525735516628254357592359482082384581833164771752916100474365464368564182622360671842440406988681048913711864276523483374130826677524068194009290025465934448271366110315471708366161432491830683485075002506689189338298683693989043573115294580520027850768537084022582943833330809891770557003416724125041764408582724059182582244826823890276205332681831663351393691646014676082518145589592574787046818818833161807901179883724123089204375914605560564824791871646291159715432239346188815118152954686909554830894061597855876392325585725444186876804822636760363682838247902411465825999287298096828951497840174199285805599645338953246215021196536372548185504971061425368263678242731608304949098130184600451979258834183560531639966382115908238331200989089619650766231972778184250038730286679300630872355453073430212078621077863351711168429806547477664810389827723392401459760331481842260714803938853705222235683959836809663269840358455482179100979914574414319803523219921964766863872265089666928606257280833236716700258692898425471303223714707780448988294614639415314855299471543952141781573682420209756968146479940408767361397737329238509791697726269870764958538619095149053976982436828006159958226543253779186489762689634056563459736535645710460829472955931448379673678958708012863378150326334784773675688210354820250083779932510551355771127798963744892254793133401080293722536224514233854046187097405141072055445907484412931486323889185799578583835344094410528910761252994261766975444890244423491572005178676253492757754968803852173509674160835738579796371493080439569650264871925331887874470549585502575042588943559779452663588153163255626132008132998530850005292373912517213722101536043145878394764993426957692809485117927595883225958782121650472638130616167946301961619034540540111511348360457064229129855748442201573107816570955891953987975527149406187361719128780951656928739201273852334296256429195612166255680548345050894266465440096268783387052725585222794684910859893569869440851337300981424110042478232935392545386226237300065699023582554126890930657746417291364560853578506582675138616644706574800898728164075757390890490656976016612087606603059516117620214605355965805523525603679969895985166021462258518732474031346373431173949759936156838490882785537254596992657535583009413225245643575897543447049171002131016246554282622222954732296787051011541590544225402741942902849871073906323201603389879530547748180701587335809390850589717410090427035385955865370414047691277197684185405816805861031567785631471507981469463160217741597674212059672222139614136581170036521289225023323916374430514557273997057091447185288463333270977720439874966505701512421659444680825092144564297020241110395158029038020818895439054430058077161762173152953744857534632773699013478572692935714897464974143162282489910281754741819993328494826912550951617093281646791605468202579417829314616762508851436364162611469583090233040320538796475963629960408944850457395844656927969822251860353406302127042479189251618169191830231521252365680905481786434851573505859038466928398107602909315079667289599858282949947011012247276328553919108116225442502859043558473363820524703278624176567108125333907468344510173689543264198967923038833148465911218832768758818941772566314125103595613937775263842412333097960593477243433533860547862498532542696460169345879975373618741135378748768827885156833696914289424235354045803913655270563550846529707062882678717089332758026403683485162135514178417794075074376741189782510841737014293386423412463122406730763012468545444759892088657434374575179880474325889965688402033089227078260040171962895295922544482010262916946555159218148797276811889537526688351676971198804861938912184014009629342267873396420730556451598201074864888103088197508132554883002295425754597256971335555290438197972521006339386750502542477531943619209050683708117567943669853642328274717084052475818000518762398290622596052304507891700067513037584770974523456939870870437099354282850364061157402700566413104019622473603287563307107891666688381856903054197124661580121744310321396623606507069582528566416343276941010710186626636853851185227351214563809150852390894120220289630651705491185075762365609649367464582376803634950637867323250477833234667264319594115692125895628230672681506120055631694093447829877553513432295640132071999517055933986406491841342439270019457497401391244273197170793040094451817523035162778063767775321724788915676436687288362196445646701424783829358687369253665102874643380893110185209476548261018692532747141174141785295227059293529639911712073319674634821809230203851615451352543124333174443458252063494345478003096777535378982206871636215902076493593645469674225384193851349607221949679071235560776135371890344800881384810150588775105804989119228158274407904612075666066802348347885015646339373853618993218175988711419687503081389723842498349857628239777639324692366788127015912612046280161368342806498294467682611469065622488666625942735430484248238911155569517784807958902123607486458615532262773339066064112822797013509316803643993909007672628435507247785166196333735974838229735263200961238421628816298516305962852460034302734527073783085290264188815178840507051380459785633846365053345875948331771946488389164481775428019191682828313005386672958452963805601501328538627601497701745679988727363368422346068908857638497013504375265041309864465490611084664071166124899921574752870242863252955313976668616166383943714128669757980331742367246148824645208563128696210426559967295745421578467306245839493219982312748255041195802839589949146372002804151625528766493061233221017995811917137030544856738157565055883673321425296470541120070749531884951763851752481663505174403864486045071465010515179326267515786918846548620122279137110558096680750709725525758407766912155317726329771509636406964289950140012439939221850462243214280899056989394686423386531153649713341518581176464810562384796290435867792172702832093445185711883778565147110011784183003633974579181013796304238272574953163885410909386468302532759998828004459513330985456906007052309152702927779204834747447946457963328079588904940345146360636258057800656841399624289956927910769566097394719283629498051389867497054138062123445912039700742066093887735239065986705302779206063622266955377916699514444471540005928846118287611311843336369453845271324547387700660454280723771742188113199740585053886359127428746633508931098437025973681145539428841041989803167998322560001539485845900160302657061409405911479491056163605866142612411958338608581860094306352210376919623322121145573834503276576060733122857976533928555148462346868547568930643227940637063315887448119833966486907579685051340135195128615141687050868438747652978883882287283934201637302514752374924078644206090613378291098785718954417074193035838937220215712552851469332274705601442708669293175285631207691080915024935853313039029326977750312059267909732313526674303764117591652969792869501104596918798494765203705998309316852737509676551907724274947700298271450214055100867875941419003304941867547474112229940020590726930817682959959187068730804591002299069597103765060049818095704408583024114037033724176404785567763695914500991623659745945803943690032117045059827694531670288198456980754141636667883826090254559867197262908364049660313312263746726704375191599420008621633539071261175094974169175943130945993435429315051062261015800176133930161196220259390436232344476520405395787787034187616992042393670750392928182197652747085889742227408860324893710331123343783935226880550449421871311552408119170807827966781658576163453438613710727019372563744296618449729517886435183568864884185998973034337497018508729331244849182865747092485530080462413454533253256499760316826869614485215600780153346795124046565768566362548912149948668399857288673341074059889850361386433433422131417041362235512994273474712231753889531993836331508027006891552430048417916738479897050687147040670547636976128295956443434064287883725523579659160747407452104430784654242215176804281184981408158601126837966986114433971175553165093627490454987214199321676860145499480698412553609148331880872755644216988284592073565367970127938706909983290094357466226858691781994635104696767559073984322927930948065365012318592452338418168780720301969142681653232433846645241023134511394455145301227451771542056030513980720302499534763108541880532811594333736546190868512128234594117902443777876446507231506684863849632413692502214068980253837689320815660068671546108244043271129161972125632201844825591720129805710975958418746690352137688401203449057275410965962450494915281957341369659757848424932150536452315517744591081357253141671819586443667763928190659988503127958640946434644151128280420732444843470005449535725058966756062133229107638604609424172847339330752356781282150256430386575359562204224105373092133875080018661983130395193811753879644409996514622545258600069485073949640288298002940580595425561227130239626892828781596780815370581854055267367714362159410926814538931023925360586841936762000522404403675428921215896647868446326758009180303476311057167224971892751162012806525038163002355265738297653078951650172511776745895800439254998087869863608472621372867955338301507766448628275115926105104773117911467609127237762375657340090321687007462460190664427609580274950255616034855599827831408496473620355536861262766774365436864166755547210179560554660441444914918904458132939263482920191396266564710142170871455733294089369975628678075037120611319536778646933678850087257219763209119440140354839400200965361099682151655842956727562177177474571281515372890522754101570211216035875604853059091340170567617454531146834224787093360688198989684588432171353422263853735371137964543722282999495012547246656676081644611206856267938623707739542625078001679454961750946164612729440031105598568517856699606699143004153936128579751954432233875701872930384790158747610048035300686849800804668692243296431602400627733200930297942089098483226159398664925787394222338174221547486377158559926179542191152726352779182384873637503281420311847896984859267658841984073075325268853629447129079324641522340887668600335148532905418356985160503230804113856975060375733784770000089545341497856496168905159272339972706218316901519950170268910420795199296213979319121307733883363425778815005129164728816911459129094587927567370464372394478436933291484565117551388152425086502759138641621502155900241854221461391083767340762000310282001013314492513821523585923449416173665681778352889315593381354220464711423603833813564921348219250029302202526300241360668522308738128954262220685285375469515444359274483946059867908987171393730858045134362669067655494801581119109674380835794540161727444247958792252772788549623430547503466624698013534554306341681373934038742130017237020185224497826624386096833738797312281416355804233019291952472314177888959284691889916958231614576333146659071058137406428431023798803302189275857181080886190434367402896613901656568132239892703536007692780235270647636953246200413809122388528011292268000372528351013207074357918289111866188202723831630846898627948109108971717266330953341931385393704405618815506731928436881681090640588830873314103244815218105193210306204605952824531750260156913195957015519694693390604517544431933334163660027841072939507026809544026291942001147289464391263771620347569752665415084360837705121397001399894082376259268089815942509437005719318374122184363401886831327425935137080750742026086274489221835226854577794888604859098850835127199520051034791077072734563962030280235947431612456494319255422376639345114752659368860395794043377251074992660913866736174411807332129301873903715554652758524436708543790003280148589895279726743224030607905480339058975355700510173067572043539230720701220438787610224632432735371341761867469782173609493052119010235646119892324561736583549433507601596691630840479398125396145172707983613132834709985385261915098130853066119146054215960952030414984735559425794365307535806408330457338879170323182274218508239091600412093448081366182190804273682931270210514851883590218045523638546326081004944854009009493806434243961836962511818915701363731650116283322950203777067321915099346180462574008855267799475679976496907676499475396839332367923456255111664020530421591020703981028328384590977153037228397025014362062727335924478607504726791324263253519504883094163919300427019683017777185990788458002218017141782491704392729199724798695632016666757037926070662499926817956663482364789782939440482348090790743054295138380220878630188375707470014494472077984273863729903462301552209354461690375053756841262848222076472198223812733553135354324260607887616448116199142731931668523446979151852412790999411034767784448829703773955127928094895542419998958396619681165881954042301618425137880945491105903910049922455510088935873401629898389601198172101462842559487159935156292010323766152774387240799061274095992054695082875536862998963017016313372626305601854860543044487602158829181605530879778711315063285113687383148960478828691211574191738973479773508969957123694685366099379866970814974219724766653996193692806775646980182771099294870443951055427501525597947721880758252327906433064189348386107963105930855117890295860907426515997072976100938316666208141829387702618735107866862519885648096744315934115564651657689406192045561317610458751660310362251652309543970771930840196207178845364509582354421607576313038963918092193625330285932275219580119532233418299529866321158069467417160545966525914571337740256522542621947784738093536163068726140282059056098197943183017331594125005628391961931932852829012798575517204711588528846163912773348223134155352647202726096442167299781972956063952429871351092109498438329463749450028315914593348945336492665670117578521845829382633429220354226810649601945968440615943799814083919812623856371405864931002238643615254565956761176331285387245237953862632332417511626743355963115459300009347793151726177100071273151785730699610222037568752085253399835678951887900602097534011204203518912525322070478469194728436189777496800981930302683561148799649441322662997042730437195877199158622750674936196543019223695021109585421432352994980454522819005190356974492201296790901476197563238425722941964709262244421898999193496954269336079286163143900860737517180882161808776828138927152943009676877570246951531822077905723859695438328407116981177046303179093461296595468631100377651120184655946236159088604277958200507980241769783906494722217030953095113348886818482120006065892777928301410203813509056050204870168507990545610236794666811568666806378114393698630964530562271173401853069916974841253128910656413291870262538749332918296802106668524843575364711100954004906819908943831856977505271028349906649955047776824939785728870962427990038785884754473186071379255352337241065991306739214781970940826167429922728306864925128900080086227808262612022240908769546910020845529970695674379036263342533685802478337019979018185635459651983767172429977166362904980123640188432913802472423016670029921282332932457031850966233582926571088821996295082580991554645978924530748856005641702722032509474102270378016215774318941947229849385831588488400117070384912091154770555883535937476172859896321991152495791820619596050451007804388119638433830056500292791083269607374742999850977548961519434524930734607069648242976655001688954912021264013831492490665079524441316916089355293640761676942470504805946584714356743257169640004052277143321434259508727573653824629842367906037714860512039986401156273249616763443367299997528822710746187495326293946266712857081908798000435969064370119214744493053820074991272437770800588281654694075673516787257086968400240424620811350453271510817481948696983711501127401765766687751467727829777902189568475934167122892502895821438966013184389788411939549995491960541241715395540090887227308824529229170604747139514541088779123418509323291307044471877609437206946355913984892391462157092394683551659564424532862087530978332931433306472875119395213409730759515514968597876436132529941841757550424040185088276604102297777867634880133603135573511861698346913353107281952743823448088245535977392700113917848082779528519489913554363790450835503358960434582856509371846940153329648540050891923855585045294451756700765418212432162106003444380460382160645301595509059745280205966759806088529065730093007311039812429169335438120172581978843048183047910511702424981998906069855426278458016875976681711647641074078141137619033814210513833514028627914313991111529473805705866253488984364770954786127032691077594070985570722833306795105087052578799365519106442200672393697205620916424004877259484993210398126204961228529694999072156634202824285463264722320029295092510375874380700645112688762393559625449279129006007652612565648372410569685297695760297821671421808009355129084512422893317649190782665829168144051714105964624447818343083251011542782143267295803892673776573404959764511559592753227138618608097674296179945949214355129150400832162819754767116238231140900543099745044489393604739531260265476411973231689964712106363444046606743615992831155107892214100246938675949110946081700636359477618925333792567834894350023566337677548701010776986810970177696026259771373557921423266015715880267337087743508070816108800347121189137050118680611004346949041046772741736392522905959635103254613953986167804500876346046119989451238143595561595433700540360198586739625977630002532867694979920356379667301383169558700796436228393078060737168722235937020070101728677048805900587664329144263688492097172946468680938801190765303468369129421113931830816727567405682009226221388220569620076505603498304378818491813630479056508915634829657877336603603662888226019318543907561755023631417883996522989435644897072074569838819610685447970727779620268126120882073964439225937516069411365353247090179513007329962480342139423499208892345288703384075819254009154468411973010120784600995755417443335293704285078956171716921853841902283913159882109552368397601299257148540955018352511276640059020401820637858581271728303109241132075680099754559392523060571064069819813454072276409303528753047047254067057464648457516877410527830536190744832407906458502266459542512578889132972906893591356130776418719973236750517944885052823002365106749753607712226026393423982166750822772850177818549852959617544859060208061054533140589021442923522384696477596567154364268704791587277603706540465620085241599952971634884816429627212157218843498028258042669595012631835553600600668246298151146848967841292348580239451418597946926975649116499612743366118294257806297772371668308845090584707879336519173663621739721583944051936511022214309607813347146546426555183262436770577540136193239270375944818021199715228842437690442962407533108937739926933677530872486078713115867211371547462648552626587271698617121484357009922957229671420521221239566101840939326671857581545077537297942279984933067179860169993999077794171813234680230180561644731609650649737614759707866029291910672520273739941251210978364786783760410423513388283901715196425315612232272336994532640576744035223225616127767332894324904622167666539980297380267991844743659620219035484031274380679307189289450538891302928783914894771034033458411174561287323542996094834402269843501315390440937175231782723401870173331158550201073553180858882868967276229211205253621872876021783371731069860326524393125243326978160827529155587182754256688040717950010314659179463630512395331706380420001123963337873364796512029981735149155272565411187534027924356602033026246128685263646987216906060307568881684907474547984294405074415628837266853452342969030570920320744248116508231569456199397554527057683096994820702790556290370183967563676117889079160272180766300553123924204709368465461225983624469764138589171488478967156838365788108144564250436437150911512981779041785973651948119403367098286121199098071968663129460434197625980685245990290881933321462253218803425897742734647819601083547717938727863231404034533337687104662416633567361561712038827040580576903406022387860508635448294227190722052991150707002241219858860701687911102014909117399972296820020064245874978128746374645790839864401013749808387320161301139979994245536176763737741377416611283569827019826160924754857915889227154912775445689831472057597071713761332261655005009662773238312093034468428558093981654028016038793961982398849096600743576753763634978504526440665230192798957050061378129690778390418579331997690303557627049851248923451860072265328925137268268147931055801516250418318368076084624626144057707051264760449176122225528395057120619162909455811655481191017352118696299501312561650281656827125746781530997570012960242841659049769346767131906214195805099083518947245293746675349385205291977739792502667503468845318661448867035627294353471949774148628854089874321477281057098614825131052974460414501413829795134581724886770044011148237009865915566137755442281384233795456575939270783623755928387401287985243406984105725979577228517832825125525897404251560427513226702803712460858101505790983503399231321622305582042913317642160357520671932983979030873653817707695494865970199484466570929100188120903062483287469032201266493516105415238789784551541927043428805963344169486274841705618463801086579960573152326027603995678481755637125552683683760332911741714551899054696828533568091992088822873407012855757244523645240716737140821396289633644032942369806582713170016155595433887164955690659064537180053749638335749818089144385731492494623532502682477581258172435116054493644505342257397696030363444855331542507843913249165711840764743334675761045324000950345338900806825398781604868289815119052043058877551128657121201052459962824440460607626382169638496615941765369459791578595245967978539467636772623733962740578320851839880639804723389129365170818322359356589934645714077581505240421258693489808944408752156530053615032598340890951212509228860429350839029182886298168604142800117577809414053680494549229698289562630207923248297778302533499420121331729380743558758375725623778000372623182495084862451278344712598178052434818032647685381905051460319067557721046435285058299969028609256138925279214021693428340451095293028020732493705135209292197335304778637092997687136813173316218212279685463982873070796971000411918632489006755073701343489758964440527922415618825912797816191064171182950871973801569905903410263537442109678130574038671990110766759457931978624141794551557730961983200119650163917109415556268572736061013651777576601894903664007888450938110308601454198296568954196532452391835040538787717180607034116783134900698727775788738310285520278819504250635708076023158835618643694148621584500344284065338974312847256544558205715283702668225999512510662644232138990974788907533133239240307467899932178806533012005222113667951821964186901498936282673584649200175862412340320898872118406742434431055156174226686748036190423557614625932403207404761275931087181409639886056985585599448800599496328269106978577769243132523202037137634074260366975018767103128600961049551213512575346216870895994850425016309019408393778535636359307920699423840914081600455055711759013464389471508238469041609474273911733108267399017745410740206459390600003667891009049131295082296390648640922591469925383486345436440473841670150072026533141353914643569651092299134208680022708525771033570295394923268097241223686595948733192204427701918246871388528894838716350848040955199472326268063041429140624571259735309812093338691415196621612556724687272973394208116120002401485537110582638122725053456051671151122450195477829115336530642013250585193779998409208128108753988975379413970462090763210976854226102982991915903108507420504002663291092770238706268489212717540582872142955085200734094085444303431605533363610972072952710304265066062244082122573634525147654164493138520950580320702353350082580263247924553490759606058971051465776207627652886576478868166928601380128727070345761752619825211830748579099362926915045356559187043899959473393494429534514832911281230918840027408580263252243600947392935983340920906744039031067540233326608659239755541071548162395008852865493991175961661772113277383144131024903518574152088922701481343587003827197262751003697794852444062942638439485298114998020632039124516384882595912326160169497519969290085827503258600957538114753958593402131078473883618143230303192995416146407714578768110839898980577780278186337640716953602347563510884833080121190281124530060583060738675275136158507652963975220183206497355385808992727821133006215513826117191254727355618608090912571219692661655277025673521506954043068139135238867188191005002250841802896453648840012805547335741794983448340695611186911615510167130256724936678780705380695744998200153713090421416395122048524108860384514539929654806442649620441291999544953734057921646367873028904476326021410631527955159319472774323851191649135825221691781768699643082187148230673245916564340440615161100377784541891786630357178389529051436565742957138890535978098401431873528431555835977243305170231984671775316653151933704319332695563945554316318927187148994015146120827650262860131043254058692607106220101597775477296321778356517669886482650235937535497750007715576948459943956638098895014191052123052787545331324249809798360908324299586509100543356356658589559075048528559474767323773659325537955479576100265042685044515668635262725973762041164713357510610651753494647052800964833228805466118177243396496794587354781608706158755566247776808651973990429478364911474600249539091775041567965452336173486607379289842857701451604069022580937649833622316587071832046612075972751801705317898515729291730387281094233154073725163646632962977192095755699465028434766265846552805478427990697561835365566081832785402512225314620622451356064981544632131271664436434708883842646037106837781171352439227736162882396307594674521528444576366520090001270431057973159038634199034570718252549603179927180311773610495132819580594904397884329390004518186685709947983283136285250522806876770104722384967271768741755647781589366224461759878895141659163288575261771005283090550823969644491705184793745310858864909708589661876765540950648871446213810082830494588241679869431216999313328988087308697658034299087937955099022576819940701848706070032314946611131092278558941247873004556228292643283075410722098797763284549371805745534937310850135386054015731885404232893185294202419760836276077470912671388897639145776661372134011744650741563162851341320128555910254748342147881906116341186624605494595895818778483926340333675696711010171520779940512653164858871873126686020762663672614522806244163090778593582986479618430365977213741333613617931717445918652931311869260548303774347425579325208663898612484167429677205284488719726255529998026303513165847519391576446992631165729090791273236361146469954899629200578428890499305505283318821307338744680312297514866831558025062393599707671364509076016894227933146326981010330074610325057121760709318844966661320459534589484139587895305018962184903216445100229220733588137406529909487476059171088230951121580294451897817229104644752409678473405657929646462738719347688762452665094031731015414111506724335283373638339854908590459269812765993868978094746169189278519752311512323023974256727947576936026587790686269194972062130282727097431536138446340092144448528024883099692105861080226016259332470969052514374601406763291209537001761395046399773776904097604560078060036452563010703806066640361597312927706730578862612924989092770314392933773061938983644582312495964746406237839797610300367860914648718470010211192056922810406488757364311944102362208277025628564603751632892712884452533529847434302897061880278988279630845626828970969568601073334095628775470295770790351729425505008693521050924234623601867432685437529763325318921518764933963170570632456875120675799071623012985642560865116868367191313178918817148129872978928993659391874767922593296587339764118979418734946440676869033556820642123862599516243800359137760636127339538514279601570278461359160904427694337162714805823240173152015057860399727667787042339849460022779485538553594083851126349107079217910974854247172483005505977997320513259979104917052979500415003021947813186237377128730863429469426289121720661598618931555787771602840127277725590460350809992801318688455261297559317069806236473869885336256439746782278573201724598158025302113540562373995526548459749706166268238015517078709700776375674351371284097686992537932606582830685732781726764062261842237848654902921009740094049233166589138027707751377578704382432982776518747100525165865592258854133054337252523161050338530325760205170391546408234581880527809265310877781144336653069202010060782313065244288792508641799867624270237055450186740751400979012291970156293297517800349547185798288489581459328808475744746696836353438487575874009071675412177443735550081527898670433815472925236522672432496430574337855517804770259770649252761447530675915473726852728623789304276969470018703298048291553521462755921061433509383224720979877750680026650490811403538954465707428580310083917992531404922287944614394516744546556787996674500574242600618323492118180071905691938983987673838189499805277884871066360797879327229649123271816429073084679069418049610065872409576603291043189635741155189299371378739254480256201661103052276434807136517251459644423969079164225201990094763271180976100038330643796368720770638790927186507152847156200193646120874223993911597618197274183193275683586074428157749701628075114238851396686554663553712545000372417724514811753208401790639392738002633956395995210652716434725096658764974845404130576816571437983011282516892586502595186164753495201894844311750241198489228543462284135670554724183762936653758627891721853557952060407969080888593071275513477836481628909641773059258931444694675451461420541074686016030781218981138612573491643462037357964517197798979628233941149169688771243099242509351284634658083838699934358212541340533941143550626469735304870270298832770903387918187221304624094668895415397594250845404063916336067545216510266901634033899195777877900469633086145069573052890245855311121284595660971199617942257181700705253830259985751210047105579704570471372306593570357928633032186491520458230599036241090650650338323451063905031647927408866810275824710600936705662165599790205822531583583698529656405728968378526183855136655803523579437150694932015285185346108286592364282358281915469343792475718090879658704323662267540274772358057912071407351888566399658039512481379135861873662127677676408750399725162289998966310974893357790192939469745416730006635552413422805735881194951175095362245100252112755624874595909054166547860819118721115499621284060742241275520235273523751159337896337763079261548996311109447579817524773737775283020635723183661232769186613647875546971479238474578899656493540038076821005959065970343355151621002245862254759272367406838402195621588829194238520444434160543899030577646343858104645549218458314205756023240517832669831884494493886126657537563880773775174303632643650510275638722579266394210049530706441394260315967590881323063010835716776866207790626957642549816069897366494006343601990493701147965426999704390812181083305983366584121928653256889782742224035440141176110075733914533439449253534646547773545075768405559761797710036804849179744780732573082908925070460272317845543313644037777833537282987420384576173790711630201117472574327578870510552395293830620263752369052221399293794986703249683294243985315680767949461506675004389365023147988335380285661208776024797335377784844593893380486423803262234531212058950018093966549167256619659699268350272229533632766192412139793463816634668874977609508334587448303573595222674918890941091708029970739364185664662923820560283237651545933070540150419925794537449994055892832857358487892177166626405220235531757186196221721878451770046229146155975056783164599959695702537317280196809985524108032191107511923818208232093419604173491059911464855890711254199491195809776788878475401549221727429942327015962436604450715978032236129394177503248816691932263268247001019958525111671689207851835054212517556767421644544173873749522056846612948011892457942827018129213047161932785858259774349872483808341193819959183842081473501261435275940911055914811501628666963872942145050181105454482675721524276298139588910486820099349317551144477430623210780420510783561078983980368971429717648613117378292245974286758088700297696266141276577922501161612831278738687278615576502398796750026968229365223287999545166199476755823944514857495911037852272615700120058554792677475637004916056619597889058774088636007745125792713769545910244598174879860714356799216354900449122415607132892501040954437196401069013700344325862742987888603051784807315070488177090909806921550488154403109813404372600571788489406548907023182965731061217003799372743956982379601390897130677287853255436761831405918915736169191268267482224006837449901660595426643880211618914883204714824854483188395633981442411571256638870535017403619297041708932041629411236897490988558961324006492049693746921013545755252944441896298257619864660199254500771801841558182520765248455670063634115005683024167459055297487552967092645900853925157748501796565405438575929794803120503091423127852270592122843268666825786657518096113434530255254934262025233566541643222264211163584835341831113848686987293650744356968312718531239155019559412366696586716757781181870604219559025320148680192520383230991235077445667111589952569428087798498939698262392851140290787856041565540962394445113178155436750515958542392649498358827716551343008968481826004236294037629796907628782883661179351130702966990775665244157538258055764119443937602216904378013534019755854446388019743081663712793269806184666875250537956301799569322881185637352383451069413956215462765226617730908020880777395762641932270851783059567993491417740788936041608478361097990846134018742182315737707149738918479490758934901234148318377389460891901410729224814332948765632543013641210085562146396815269092992009822371983269462307813994168236070702770660980634178648014526786463515491141247019470252423467203950137457359527705702306822436569769788250978965301355996679424253770621398354265314014409872214755005401601254084444717758850805578746263788235036671329497028064442960493655308622725064709882142276244418895581204468522097117821137410467653153751465025478299939788713100867200149977581792049477750713699902869722248440082027101997992252341719422767555809663934417748706141046732777744162438154913409228322016653327386346522168613178470993979036422136974339055904749679417326177110991814926035185331097858955925151781036223586990728023599085135431743791511413461988015054317814236977705232348185298065735599362206930124778255079789685831063151300865353277836841967654646456272004917899015753473763439421085542612293511749395932566349801570376260824677638306341980731343920057747581316488301964431292591386019529023384127749587212517465202826780226427750554904658319817122889580769930940530113864760096044172576515410860854987398564808218075834058947459496534670480662875830884504573953481451672742841830762931189910245332619518826022051584214125675857576140660187316413213967458192867067492788199794196150179376283344970072148728154288145634956534077900614589566484570243229247422907046537845863452273360360371855027871454835458526931887840469031936250470604239098245586334232320730374046995278409080941961751298487427387408042526819060703439919771182867365397246746321007882218905165547349380086013503388784325386460167893812648296214828677936830813911106794627191431196174997659877455847997100295633063502346246682792314257979379568374952531230970043403374926145537753570163031237146107821644753181315977394072886004041329463250588387042089647516517145976485679721937006684170454463083336790296975915351052237608397541575315344707718274537414031342938062612638600482005240200174908594672293075593493599981543320384050065828466920790353880531166960788322346259324490928050907940867601446157689840188253531813985322319899155726780504002672495913127011069156968959430739650949568352374841084882585103077292297693943241204379295799136706226790494150257741475830695064044947853376768145607517448469199391170729474467006462481992354859392712680599079347612750906439985770740058140077575981347812736463652874661188239548398278800267338373486988934269698011518511275645684562512682339635252546748831124183558128903534072147902884901506863395845245760553357497709518321423072311114272854832604230465827014174706806206081891851794698556603139619227513829931808784315275018384638356260213575566118973451339255681424520732314322483862080623292913425242408770064861376845028411736366208697927679509345065030031012681684557150105058384139826682693031248790970087173143397779399557704002513799520922276090741666289457618327595694375699937698808895001612097611383973023693932761062543843031466024161461601896374405484614838044111497191838440962708439697849264107605841739619344466433074316330929146407476661882782238137468780617440954410917782907014328779571332106416464788659234350252042948677388769592832446912318538427174001610866492662504190705490109909921921783718664564225765005828669268466364014301844153964265346660723861295292094037358120702191183722202629813836183655107856068364646442694157751637338613859717638461088404298067970645640917925479151440376379681684425360106712515760657841931700483574513153262606972782460774077948618955286350384396918069523054840764650483133305885602063314523823093748931481875588887723938298528908802765737164676737928202876497826572242987514581800642482712344354291084522756448806908678046999041605488585976743122823286177214701796843851053017410947778655410303808906323950790915749160796325576460339709919431454777356790717342381489061939645571346431864239409813583327415830461630013609626436396925698625660201954329289522165926983609249509046346888309185666792588755770715170084207586146193249419746243066839612466038459469733014353432578652894479586112838739836112093318930927520455037169374341253037161576233150314330194458484221436055259345905906966213469661371294358727410976120224506579551367018374259992286537822298422921934591844546242073423789276213269254648631842227229959181345279115434626786950147289734369692069196678229916450993943506457686670036754426845987399566567639958216107826053686705437008508224826494701846960329502002847995479917962916759262579951485932790228627739201821494105699346529689842087138658416951939810640810021149408298886534345166505924736682257253061401907197186910931530945563428624631978262160509868925296791705393801444285019473206146101830934723980110250705446596019849710070253396787654384366530820851302973441943330529377810319731467983654337644725736023307353609671571399273138457444272602579574670279610801396463616817902527878166127665026278754808347249880876688999400278536311904115797722549212630019740951970302974685897902099697402004038977516317240416962056387711319320000211552445153457194491444320842639428064766697813796201639301779464896181830380677655140886148259270066019750002151572288834413325049301261527912244505389562505544480197666925949281422151916499775371258587739223496331275271141117603574387403890738048299277613364061580512104226406112650334727207036383389017742966548869361176979752130105826476971103380219025424718084211761855923536304663492576319877630719848954957924276676521964060754415699616707498867706842068572350856848276434288776789979989658905194565550635953151510778748262102832143747562662899468469456548148354849267733309912449833278526814963602866805810480029888931679937779969579069180921219966286250867399857407571996086038718195830345656356836886603803233510722030636461069978823171083122486243731292916283838583911504468038904735332399689986973054665987193907179700054041295835437458005781408777163425965735863723431156748329979534899005973794126160584413897975419331948589031958981341915047711644743932572036541147967159725793110416705741061083323157206847202754942884665108766013312196554512777070289941034076015295784326769737164975355775342574012597351890081348639298696116424533625891322539392392450848163742970105618411560368388038631026028691534156188220605762055844297768714254710488863090540411046342600219362751627237665595021795519849699299142067694816194508310883924033697670763781992091639872496167419366578705213771160629867104658496895883373020602879368825340537105202013715281183306473709113853096556830650080686612634963249392877622624546856101556182068800889869632363612693009735317520372341799838502852262529545865732770744117732710371352562865333568605230598786758991396652218647149698914931951669326759785279991680070334697079147866482570735665379710203600979586627210417685823305041433303479588586081362556450905030474201412438251731867977424201682294718955702206607089696595954263430689870776328040949193042269213715441707606495741853240221385064563882045218612250364173206607326191523378773147978404358373138535524513775631103959442289828039019725259117929847770129910976518367535759545314664297363951928534845771412382543871425175774246461616904155452239787516302661963533354291988767938600279735520037631575071459105125266773969509663472580419322057394545466214720498746274255773816574374606776212064585569922470402537466705733610019330049277957928468422269373551727690695129003193325148897180519825649465294469177163307923860271409573752760514261342134876086788253827642120861776996046408531463698103159391485220782430845513805751755332007409359551175931668715347644154313194383901970866796864291606921695477923541338448732537167547389271733550090037130412224414624729265239751329238892521270829179990634647944445415399583556668810954278824125786355180209615929281477519594395217794946984488412772790594818363888090427766576052946336319131878497247845567584880890461077117696277720728626546263147595832719804047779658988420211122626653522238518764110408335654995345640704318018961210734597199514084158869301475197740371923723362251985866117709550196022219184925616058911348767691001998126270228908010718881347042298947471898830425074198044687374839567306437590134123603912373770319627582187082487505294155333067767972926868024945103240681337679994796869784948755387370607474933644246562258042128292353446738237697997983660706267900837030213623263985403977433248603609548204773885744520795704026347731632208204958821678435468360093495595884628805599717122144308981946748616529883411016284511216935830568678406389115135513556721288847760432175978060991573279598738817023960092837680064899908469478778161626330801911771824646619382688119661904153883159747758474319200111225244405914999992454132012495945259006822406842646449634116470954970320255034599247078580590377048898683815169789365881638295628413890581664883399310497119181080517358461966360176552029839931567333714611583630130209955812686425274666353603762682052891175267463872460158036357302437008037685363562828508521017170900492171359534164411229221919728084682221289773277663080240845663421015283050852267613684412715302655475276288665546520598475368054942785957476043885367488635350952126125941126105825916983194937578893910705107517041709596535171276995439060420761607651399940137004158558048060222977766484317577942677407288960415143565332199221621161793888726438593787267791414504472806499863633175913505396479465487758932075540278422905143880189419132060445297217829031941379125113178448141658174338971115151981255560667976030966917407539391308568372627193177469826995470100659422012003891065539915003620225236363597419316937919261403841371155013894635291312224320531760960903307067887481528216066581629607673443835409961267000790456541438605110508445477796026119984697289559817451781499520127547945883230076695142653724709179094167792566377525347965546526251600437226651782389783886591506194999187659249096624396448032385324009954920756693119754310136973274505299607449694288324820796107363499151389959495335066647586017881088184196845096756119573990506095251781835159005834667255084260012745700612779331699960200219093567540922231561105895571653048061106795697963274650248657336003532611545988407628888469328562412046901168812840012474619501041974467979053633808138312308489165463496977772077714609378826888901615759330425575139487257392391116523257530276371667940868940954574549814959356303729069353841102561713966691335309009943695687720833533404772603879011087093538583534869453662700173948848165961066016946694216617840785287357499779608677532265470383693162098669576333247332623441645956231033599820255823108756459402836363337431984440444417426370124456468904096375093305971309998115886650478388784701076163722845904443708404770560965998222723008707334800644019187787089334514241788437680666993430800957695320123103069203500300727606863961690394311915141940943209739264609672728436083679778927815653920260912495306351477909513662243742675647036892024181939755869040860042798650772890766743037776403619568850658146036834640456605603132765699965486787200169543262758111823423150177402833780887884410882908595807683679616042262726895366762143801110634810732061617263504983049780870704039719446386432959773913168194488081604662163813659164980978966895140671640771255503789189258386003882103304219767514503078877463459093637658090451122540410589938355382046362311943504731677085997376868634960532350503654297813990830538960155486763291986378211241078462702254548752165121682020167918192765005228772538586775325715259634072928281776038024413986722302599183948728925548942614113176249206792700010310267099108600140647046694064924830060774562794265094010658098158984607228079576939858492834853650530206672149830988352157566328694104308228609339473658183551837331665697394419956713758282822136087005614220891854290892155583329684333991714817609256036013962666390766574486013419255037007805021172273240262571939431807850889402493377341185019677396007933253655645720100512587018105182923642977206760591686791419210077402280565398825944517692545933750430317898161794635319339192857589791718302819014776199537793361576373628861175929557660789988249970110125755254587445858626918616080185114857009846296038110443590272024199261591444462247584013445846658797902613040658549231961882454491913533242863570140156182119298984138600534037371653992852088618562222160702766087052480820062058433213274332496911346368667365709950259688593240950466476046573862690822129727302404331710092955596454318634278494141906237872515332939287916319862176289832212788987378503709824743763372472072445117364324491360072895309630938151280788266329850607587289304699996856534740349709261926216152873543931020126593113825943151848770806791486749433438869968197511501183879438295427432007026776855674055184388012641451810769885828565641425154693950610421657494560057736059514498375254333807608073922820520361370403701957524606814881457970785443698603827534099884867539629122598514559446118651187089318097085610451101700110751768573459650411153910536859535357910877214518886762857332572359589318366768301790407618301041862518912519296726456563664060309238226826045387399334339706301553422421752466219121848858467881909157942928159637704011972830838424608355987705460966478672166203704739160347627500520523349352205081759165779089530552341092443771717938002851572350370966622873913620308241868517507196077574302088081991347324422192845230062250091930587406455817933223108638733518566695732456347942426230841988600458999851144044209663152200318648578839845315057866313193633800566379642728188633159652341976485813998235530234736848152682484506462630274664645208829376421827522453291681500461224310496792655346503356445715838463977561219580333604430097301368762448667664077272407340969557661853833062981970161395370594804078989987379402693132223238030739506804640911079017570417963567463698859858505692769227259619199568773344650609618616973420500204242250106540671706291327390401266642729609780623077943683951315573641843612531466316352964945829276807584334095932296731161350292783900995978478706952290686017368978758360622612458997191888478817566784347086866777486013083302685721162759800096616326569036458799058842051285023017854068753432462901990281822016326281262445768452499179164871103954265681129131129879516476889563986672714053989065756469376474592552361504142924066759864961702686660643849059079465890704583889216472752803712388460615340821357956150148834379492980094704360132032096236980167383039547981672255145864994759289589194695617761197910551111912889842311041271835575515144618067653823640201096382441271652800688027620301558191222912022809295015161262816938387774226070608899902798235645701722743960216947859320510283510091998740077081158435903649873188736167169927818070822849663020974509200575827565125546695741875403279958011870746926686838720930989415654216274981087139265198772869245913954145479007035748249951634316557570024177146086845738426504930277143850811034239164185749891302170244830281969643850962429322527736857458263548568973779077096696029295808822573581040208100545005318137379421895665446945717169975961030874995888716801299081064862453396368165715821599604863316253743947910981867838456702544670272349327505989799668394588467869139560717671581226881747419183219025715935041032857560445239052080842541726609513569005742763493262397617571548131897368832240450703519481517166882961559757408329874301586612769108122727045170646192161578395598080310878655713929560812247398990059747636815114051794398357831751642536460671927001647788208408397386020600483537198361848666446640855877242091115551700911758497928668896307939159967750141190515942369843095164590225755523432169259367251927910961223888349233354060718654660504153910628948726316152375706352585489900854434042875313596985847708381850613252242498812200458658514959602685769444232675608526511874137777631813769166634667519736589666240619150877494489341861094328354643464958372514251317157328876857688078090509162407170401647184443443915614979197267368942753273571289095455249394271469853363530191743178190521069367895545018365340153690487296393384125724835038357352993342965757502742540538330498277091366628575911704195092321798925006205448189732368746977720665624456311893571407494023949692900246534510328241011672851790076653507269310997891491424935696727438001170258878547935424495025067208622574704817761051997912794016819769491465533045988933936412614755804017490702293652670503109738935800614593748906228195099904533937010842038272020725078657319639132071874226552129059939618002028668970156985095484053443295240410859911615599874341844386748423652667103282218705009854865971896646656831428984956031205904274616447495076262493949294289913008351482720004777734869723594793841311956072612042853330072487351324652809127359651594858252909161642707286501663781744683504824828585969368283900177823824295486783956098998196906653265249458967579485615610025990011654447514944157740569301003002079581657558016511913299624271656326165534548252191707699316794547521730265048576060049036113254027685947814360268549518729894138850124704688731954113274088029318416488030506975124588042855341417953072239689255416433503049594017022566552300706092507170112972534346005265212840702714283921424951334912586873620788410300671747827719689984983743182842159829597864643336243801551314491801514412526274099253215331303431744820769102868867202712263193817750158436733953008645177051783875018857741449311641659379528893357634746111976907330077986557811494047162450458079438324527212670321282267080946020507534308935901726017801075091367837320205979722048936382750149784467112349762480563491929028101692366717661350180459904689289278871636019239261291130805461571586355713686835156659445731119353840283010602651298948795825902277880099089570798839497031439348206921727232144936751773522477070095505892152177408393491954982456896962409337399855407114462295416813557706243939513838162133608374507311456691123504765123135991966580644226157222629696153191030654714811465280645122690672651496300583008881422714402998019320549462054909967418253167468605285651366090264817149709944318101514743429647445621026515065488375159003704876817584081129613356870853259095014328624894174151719809318369779941305154822557881755334207286083184395833600179965847751729755142816592720721830088934195591324859195335627069690389338094294569859192310567430028175332694353871847887658147230324325142679155748258456696876417382424148839139193152137195930185457014136922373960285267826645403869211720588357274065719097976829968160231047733931354662471999335694638678452299832526655745133753208924746240779047742270787174530041947127250019349464138784007088770396084132716414004841037392078386114073946732564285030618492166871207651887821154643015372280897499031244482810750104960650108195810676187476393791078035726215822147239509749544792586645257204561252729042045624908810188707375508532408284970544123328918900512192575990565425842291630938324709829035643679761620376858187674686542952490478342246547472473305540907490351305062012983095207545751722274925773098827396781210519006195909922970389276275378092953819170654567519926160988065645636978464844835904141412704479394971858917555525705559354903208689395478883040015020792398148412870529959867172797201090386288422367817572091587098911772520758871042574515116239510316744826751373620699427956303371333878908514644611120496030057912479991719585706413015228134898893454448666451269715407390249220715300400980161530256083365015505136462351770284916061279324057856065410836290504488917385659503908301599382733103985629194581078711131302594981181704876067330673531680201959270093716615134315659364754094920374276648713153888387827044051886067310492006704027804349048504764983571869515352085395518003343986014373926617941247984076685850554333048168813799790906291992041107711771401417315317987737114440346789474928787689308816170990327003038482434457847947725940223967374331490511876026336148636187955087419458634241709421648888594029285888226522944208414990167816451503650866749792741321805877527997321702568564253852250667034677973937097112365919477892515407382241602955695271648452391172965067443196947785552298504596132226913287103704671667952958191909678093135559498796180720226540787909021886638337645656189053981162360197915787998207101394631816643414833633888000223414819810630028334094016890470988491360653419297370708523851596730919686886965398445601496424485246874470702345501431295630341951433866204289680170617206256993662636436295511453579904494085974447812695940788404616603523568638905729405191803620649354530375439841297334384275481736127623230041644249466784361194759786307756260464425557633181031645764286807059742429703584084823326914526744873516133100910247526763889953193148225484808916006136557210846955443981844126846061659401886846207636514966785812697132254067310594357989447043071027147764221025978172312495024317693210592786829500012653839084549270629533990465957320534141538827563906043203241510257840113350399216746361939995595802518994269868687821979643419752835711409899272406065424764039495374845142143968734869219653121522609526763501906635993291610623366838369596754487536035783678643174500292585250163773205467864459478084888086203881125964923810115796785902500385650314430249801032566182749144798098884621195588284506402618968001013186143132420205556934162463311510976552142857943296743821492302959664598482864960927625965412344590997005436670466890461665247532421509229100149983072050661800801225290332638219497898296610866884219420355907015460072371502627332800205236366754673036199362066336081500574371050503356119820121495926337972942043423142048208034390536098153024657605195018219591652874122977500031904771906701741977366385116165347685473935268292392587970192113591655749820678728786429138231114466787437829595888221589497988289236571110226901759307527967684240286790556535896325492356409700832842457393721434722625517363191889454911276701475997901847152406271940708722128854352191737758553283854268839018467082840336998235235989292347834051945695494557210810995264465019524092348105007175387437874312693120066646594326049870171272799108694690158926106285602759390257023308660946244533849546118799967647485562778116497535987608554852261680671615971063038575709743438788126577700725500207037637571256703954430286229026791877647730170406663497526811726208384474597628192236139153931425047055406949955109349368552445832867659444705783318873170328153905373931435372485807535110455888643644487366587056693276771325356181229547559566751183861210573437341151071309754693462990211264000470757463709389388575776402876696739196139279967430579948171753076340277300731934017798731260130944913681234887969779763908058573349418453877690063861564204307084480030419246166264449876526746973477149947176094677396848195233081599304935994433468022987281907333628603727241912664884315766915929031497682547333590076710668477725060632787728639556760852599990926442962503391454456930487139101849501338576927946057840490792926598153661284464444122730105952542385777664339224271291000809701857030108656369496056245708989372170033289676380860564799848465809245128684173414694223937898016158870338848067061649352541323255946652675303765168655170074929417467618354451834335184899433472193529194037010207266427241361962982742252355420533360019640986432752511989083363367310300608822821271726744572025401036630597857295997283233455343782259554994287317578626807856371808000108498480847184957917284565519861670926703806075309337335715276840186469523314818671066242924665852654773954911463362016826128249910290676300841224937417369827352434788865938068553994008356873767261659540103213191804246806067018649022057277721730351904236694929372506487974896324541383298149762951197664757452918064055339740831930910899954022639596541566185937608402535004374882780271187752191312531924418008433524759414899264281363258050768924917979957274151972717343059387718509545132608875629524852429772662902936109401284837578552074316562131831824875705842314737467676427731995683593328751457982699107095198239021225924327447892599521165588779127721000392474919449335488972557820134960863032459753119213785734418314168635085258616781455515148416344427872846216147089423835088966420726917167049833665230303826707273815391624072784464471608660445596338754565357981987516110964066498076272456242552275673007434475947822434849464635723172908597848804625874287098013698287665086623391255965210413679208688959851322838321921318390555001415342189062121708055257248360573440285756090578646308110390482412021568916226464705723215820666591446220649475366478371147548122558663515929643439666996941945401062323694624616576106921565959300223029638750641893679115381815650675482485621059774020721874729456356801949316271338955763681495394616921981615113426443952464832087054184160372912736728521410957804082122736759502590500655043644484309494905799423926485475277978491437327045885431449978908464398364823523597888804608995355991885335550234428088951391258874342197150516864079376742253028976366980142970869422623207650677119999421244735951126027814251756728564934372044856394779918223163209851209805503237203684637971280964459150160503584300713009602185000308359627807818387026688613935449686683918804986851214441628277909129425565922989692473301087086012019492965322830447278652761960397035237441612451169699205580693342397381097060933459656459797792892501582773269943851625956922514006502751888674541147859852481549722379554572608186781709636495092226559366651014646419667539192888455211597221324685956761847647805773444039992221607750463690614298819092665973940389256245177670673370958705703444356708361572630441907851261231355506440841985905654378947115161742370906169333687515503065319656306707385413776623749910149143999597560970537600356601939988680298423370721850854717353702774304544812936653049317060102912615991721197112133360842474637053749533043732890181615380424797607919423626165350711902946298234506917099894373629506257754694313490363288413654663354114970206406636287969916437636245017923848279788301823423959935406564837184621476486237897904944377588515732584442184696259572578991305526789059022055022954263002086267378286940431807195151744323036295445213337611491606976783841796518593302443269965382133047635237307211485928973523635431595404609403362194927074259155299562735078991531861824847779516332478307520635178827389997206821712044570355935116856328676400335946470416389223379301090761466249944322051812484068657904661302047157311336086388674436348375749319756798586901741674549564610673444661000670370793511646896512811774557620521140031785366169008403353924904048007826596423856095596395131010208141217898837062792284043120768897554739399320604773905774876964068886139148424223644684325404374169410639175227082867931346077828602787943698208891804871602791037392263580625140102674654920137483961304534785258178909045209524075421223129263283621672027381253985965948309900651114597723881100442438456323643689321042555390136000210260089015776056432298222691359834245467982970892106399620306083166657833730009813783844019611883131497654364033046251648181144212932061213705924976951679467990762013495896452674578186042904585603082039949757395237869791526600287059856124968911253087653971935019350345700718334487062111182068193464099483961931611699238200834441436860478272271586103017663335526989046351714934825092564099243605542497952152633624909353492912737425169198149855603312683395493105915928909995291189648468290543981242299468730870047153033307560658044337917290207404194563557638214429289008762809971348783624176537403554910236410625878397454533946100405350420535323689934701898011738138711665685090765348821659297697341843872609560691951314525546077415187697279677572081223015846197513876211692611700221970190599386055233388876066299777821609023485107804718361735408468789799055256815182509795903352167281745547569649200407861450434087239787319629121211785589444983783008178535796652956524616913689067989064744075682192532206548198008240524026861647547617676222296448147660485092935005577828281397995396207143094414545386873045847640280346964394630821236386368558685441647555949800941531975553353947997619931284688034517366343194855072218496677661309231747992501106479569833946266425169510015795962712540318226617155687769353816548502394820991944396104139554092094143799163344944260023544442116533519606703983523992993061723395968242936980033646634802344654772527041109342766761409784032563902919238617638622658267179931397509661085955435064908804161429972959088392398183015744528335280787710428235583675127466919589071333655711229436922010670705312175754821871708318804823597771174488290437829290585165229493283407001410964432849519701559777293738360957870037495388458188271070132973410212718736651288781470461483801918366525440872807622900425620971704815358357532664948656670098129163583665909768383905490925347090429540168940446476866864997871540592198570184374707088085126913665410986499519634670851990986767496564654281890152383381344912707969436048153483014594244274016465724053449372749309720465574846394323767756836315161795504878106236576263785934129369781101417405430648990059553270769416800559070753144601623584774242778602831725389088176565740694665287321833372847229398919397137063982114920952699911607575402304631362342618676238463504649205431380992447821974470891743084625274041358029995237864832348979558314105316020389342006028361798221589686702423555944898586708328841918095590612974282436917794761601854764388945333963868585367558393434897017355958361243725253339742630745215998571016613373913304019099990977520256926836194616816656174418500857783748192520728225624708994641585716699859516441021173017403922835832705459835234909399658458918096485566809866766623847470884040937099800455951470447983876276004606278078901926367846979706683476785229554478939631339236053539392883507781727315100572258623897350754118059303836686001388948458024198056712446448737910681493383550311014588648386327721024242608332033562311405962125981001380323912651427073213014345918279852171420529034288027549337840852758880524222331318409425753234338131709697805172625556520321269567083620436613563951050691153612518133801814713379553776599667471908198644252927577470116836680090845527297048071078601822327249328989710339352361252574941281084032281569026650001969906369540344678531417690032542027016730658639627891636254095092797839406932251505317441036211724727474295025097818138432283767645539006116316741455542069122212537197209864562195635519343750609961900447469420238427060706317745443190078143052846652080324045872666120500744041194256158754896922375774920401631983995145639800437579350638267414008997599868478961413142447088704907586372387089383318600664436229311199874982445703409612121173149501065114219874780459381883020881722795299202334602391327517427399689768291334526100791467742190411908817323936268622748891438011856391565896719889444497108638846554553747739644208386139990236206983309571532555795668202067489247171039884068322980015238435334768232910762749536617306528444780054676729520532064707911845156326124848572138681497080469992371999342940048070107471664416986625632760652554952842592423953610168263324828691237632634956676923284689391705589437242491554689290995458343005245838146520127861207982980003097399252862176359238053220389009991996816812538154696760494461405312533991202074200025855552870064997303277900629419578435330634602559341196348343969346745588909813646031627818331483201016552908236147566282483264333230234979504048865405617948664529205772604621095511330969239549221260917901230612425858335508815874702461407163682278133068514923899042288326757519072098895335222656457767367602381668731666107901846694147069513877928872033745773609198487368008438648409228810281917668116248548494642346110627697118273200019342622174509771219580256413912764266328748854155731494520619201508063583153019898333635409429204963756415942851442464968850970060924953731197876884620634652483921757864376014286789658784678958941219963522330786621331069622628261262219601609112110384180433935440772288575379178741372618268219986571703291814610680757736614966039630097709379426538337074301738926181091153406976340239358771027150556661201905608344762601614230464661955735231843902528664466718549904392348574113402924920497886291126603111623367770711228069404602561260641101749924851617713728892766646386327843694750944554493616245126767058717266318722223305623883238437839209885311771319982878520434596248124210459084095179912750224129200208922882748598351814989208751716126988390363303285224172773901800635820411508036293465645511416363821636358131027392605764898901787312262243864149613233611633866854071192102214210032564194245165506493570012106601424498585594221588339157358910595796749976409381933153185595973675635677591301861930288663112541212259439314126976281367056149871658830530738782009670797944693351763868770110941917036149716254275560049540245668738232881736836842603559343062635321001408016535850775009163830782075718333037350791070992889065434009425222473408949301720506097229002312692084917546474146270810304231817255780983297569533909909254445503644699000137179474248633823927621381643188431579973356196993467684419696391663526138366841985223601937893683418448225815900419635270403891494318799966797297122759666008952124227835684162052544226147078782307456560382984297530954335928932854580708495056044140735904381701034232857084720404172716399739378885763725191049674711376035862709572055880555021169864874737538089608057332356865877368068561789235285826849238848739029208888241095852669210445479335920830573638759239889806863177781160046887191449637621149420176546696342269977519426340505729092712613865673590379506814102079746210528333780586611980366615147810050496889236063259115570308352195297003906940811017152114042768627537069050076264295365766688965860911856394576247241998359034800915056782141095444721122775649483054497331058616170953717199753539975457801411714606705536841167696915679045668170215542718285049969352507966683098649266548842115987896957285930376107479593039307470855773670387452846032592914860262381077191251683921313971027191107608966698911453939605868884809210625971911116250228010524684165198945672892501264954546141654353773253473897893314480426335474213216436958219923011150255371170968522844085513082118145894298648816448116816570214483036016073326215119940225748383935097141473772973455562395504371564320435231270442884114567328134681589387192636348341654245115885318666169279332561604345610530379235606442881904587251192800785120028714424500532034045541934737885420144601239322672255243696540480131379212340502110828744989961847815804517356068267530039708234012424893063962068150491558780004140230805416669957342896662212248547233661448293853806368723952098227166164023092035356413597755614025225825846402459061503627757173732771884553003584585906977467502439629249495507382099535915078180613788361216340288750255443954719702654028254658646716309466838189450191047140094293150072242744303520733893172430808470005249261403577049805104185416608690021016546111379935238593974878101548677350492641023485041626230570302075202123820120761549241199796583621101859968687889888461939577289185252930661072988143175750763532973573486218974313924219819224966078163585198309130412861539415671604199147585660643701535671269231913455035727385064510235210337661795667568521653014574999985266937959552499712803660481460736101861559172622623891696316700676209172372026246784628524195608760690945694658127783773589379241681823894532642193479873956805696976790084844823218102709833318015622184299780422174883156139102725087960886868829427422889067598498574763490238166398171196638906022248183010093435327274556398517918985442736592955615020891942078019671499573831649969264336937585283365221906801889148416800514594690370345624651516240170636679920626559466773591606990658653951853312559761904044248270119591621550491806054858334040250386283994325272332952023202109649956518499533478591137276355741667720947374269297826596495683239023238765606601053873666420888858901005484433040938929369474841538308622890523475975046446249796003064753671887831431474889817376689961355367542749303051944724261055864921583129422909691837096632233766781226008329845328664669168422861847932108408827403725375874179884910873767526967454508583526666957734499164763202063174886286640317805353713021278861856234333132884901809416828699878150279961914042706937516892329216202634641891983456073230672058725866499382904167345953514986228586869442042817772171894278390595571352757520657629434235156282103556112652620098406655130946253562969593409202022788227502245695019710439556722878508809513594547410570951238240458978645427281562123000898763758000971062036861519544711015133486060993591450867796753701260824390155369190058271364870248771509316241338147089133832464987524135921869893153334962471526798019950841546665344442084522825951875328563649803919607186651756781126108459428928663590001444114931368889124650840003423088832646653778398621542012151557982533800609051483440155464193447956361902810133795099572100653315539408705963933801302102753445948412764248472748920850491266844681334014873035697208160588560836004466429581393093640390524412653720367227791757283471073211275193696787765077333449678371503850898347581437008711761291259225168644167398403989960753304003858029952356490895169404082864416764593763260587788294984080043947986414532361905451697617823826315244086179993986699557604020963462888289356566829953645521245929843275009883339638502134739247353526607459802873664865892274059408067909156477168615667368663717642600683650048047024163000117950723503866488305480821202693368358453968215041989588959704581235887001129583609654901825883379758984634137499748411089823829327159114098531639093903484324695711298932607510886632053094068918509886957552542451317721949740262967655552404061108087262264306195069139651750132669978185061974419574081872710390002351623249636474266327897964507583050456917627491238197228446924867447053961755597741673302270076975492735766540722608893289107206451672460118144669650399215316845009774747629195505635209451436339074125663214149318017668726767228396214426681769126271850534251333455094864134786705369473095384910384769355119033492274334818497922659142826932994036103780114659134916479288258990421213157375452176976897486496769187857482791983823934239178739656145889440605361489698746392795949770257620028776077983730001670166534166342229070780354761488581446775571876452877232891286912636408693431999577004878818268697176235710260678776950511649167131777812141768666710433180268904644210145016722788787722272606137649382958121421300204422825441416725620378885878921519076170121701184226219288891410606482812752258435188375232684489818522642648457069257583681342519959505309264328773341077375698295188483512844277116134572556112799156056718541716617860396404497835801150610731074394457651298262321897857256070871526708008909370006340812671430606552379249120902993647127851744911087450280860773503834492762037545026795345355034961579521389538253177383283926368392685908886740089114971915487264260399986968533817079667074615586500569305343899592985235224893301186239474815134846412417241458751546337723351820047160129581549977815231431484945808460015989280199487811504733641829381477138909401772458324022756302557988527023155515363278070722436838534895065650216121514431346116535709972603201448741017596870726711132264707844666263003246543856009513649213559322938670576742281122129407538144492450104281042813517993573798868529246741949960157108889404289644888764212223703500660167848943018850334568103567136506469526401918198909804691303859153429734711911233091011873580040053090956407837236252496150829247633486744407883931511699431416463274604787531013927016687120201862616578225864883888805226943704726095023264893977864001000356136050640547729902623819970399244492718845032808891827126965584796697279042800396958034661606550368442241902415559917524704681625581901073450788732672252537383257851698342616052901553609145438869039660432137524924860692104862018063224679002317964117915939823338887713874972562056281687781334965452579669883474010402045246660971026171002566570244748651039534383965107454756003569256400618613152966220164005890950851824015526396778079540998126026466536190234323976336453656558833130003762195304008494183052825207588188032267108541411243321914384788297624545829505811679177893600558099554481859501082923502657564791378625145211966573687197057313288479664951131767126968481521725789910518530078512509377848660043310510334786985531217427676425019941542687889739783476240453857103120047879046883158723856161226752727620395688727571825619016256474936961819425203053629640715168974307294339093506655172541648584076048173391677542304963601846785140768198297177118461491699092617704875054705510834196523680677717470139085921098055969751843277302970561988409762290283744817583115496768874008874030864049527831447374598052330183524032550008875644068831710101007338885279336816501852211812135262206038132771752000218472849454698625080662208322390441438756237022164824977953841943086293066742517693095454166107254368866071844627132527282179582331243855913938540611829395598877477555201620563873576512601467536807629053728686099625459763791636682990137600180036631068743055476429265549643251252292846563332770904949883357983052306991300781334150218249036306411871519795814396241198791097862351186112220103209359094269231485962252940709759048670394728874876825327851766397855489481925799353327190450108639861644247951161734242500474824938884146760186509488091287544602604322808006250616014178020760714859625025378573898841199631213346724075341340104518339130043461885454431464447062069143918292912774306068439158607464997654087883052878298747570224213776803370759386242486198674548911904611313424964199033751739155483335897653820820586498230089261560265939579294051517181744205239549203099646447560555314467503323117630337392176537168585354312855324055423240911792401485849165898025184340895558379829363506942886764602383752413005442686580909035013853678889299564427484887118157889959562059108339427433988483195026576813033451031343616792674740713611155385073602010740756016745383562044525050137602929146349658745988374576751773926759433191267394900612487479006956812314353564255651860720017965457301757257096254079953915917721626999721149042609746405938763406029859249167271736975174849637983302320410797392849627142092305093661338759445908357917018100277873955312158761042063323402360062602114624804669055639678220080796601513400221573420898221868345882582696575485782380321558748805192422674218839322534515888812293402142599971511654755771273526248148869665638964074561046839533408390531303028227581497047658774747063494908807071911988410919914508744948211902482523054812708635657616267381978671948027339129995979717212176183636287818976257029702797918447499134164206605978453333307919193812045347711934576829616550848624413127233834829232462820447098943037790120785107066661165067056214165083605277319264394789662438029236957886807897547022408488727437596313982731980808301845627585411562375152314492338107340711631418028532210538079120088462512033018442203843049985383363576014873973489368716225027870792052524833406725231457057740320411714629140600901276759391416446117274774329832832422999495935552386657966568651005754052299310403009125463118029433736210087995390060090524267951020872097129646704519687080365863706392020754730660105011565742193826394177669918961630297738812390347686074803480455925479108943026063137731347131521325247580376032711795517652866990124770391065343108625034206708237005167090884870193883487252046324735603167665790042839706406557332149923014264753997162226848530393474321686317179000981853405559889840724151107855072214941275019129673369592437776051573949635255709776605483372028969922259901483089884209993960755698625841193171010816252000229802444103075967391516870952086007403843542568516393057955420065550619766812188081697043005504399099877157590828152909447344266679210666001958051866510044384784725447817021716552732692873465824763933791873255970193330162676280006735971272201672320438620024119459685024510719183777474919755391059468981149017614225334566710712875520275192524241025990727758555047467681875430526480429504393797943475031282934668334900354563560076580404912308992898987946473130876485665586599409064166473728344350228918054671859880374772177387587090782287746696945249715949158508271866822571752738687100862250810463458914566003338684378147393058664674042766237609041057955305986018457646003515869451727549168194940007858728332996657906174304705622888917909870603194534412539732403879630503857564195365533368560639476412500069372607773429629298792828812675672444411246371133945922449252073899770993211225310035474173918642185244107727171854389937692031420349757152289715493690357515866118083915148706612143150459807710081820792913353087125269839656342713364856894140946534422433704469894387628147463940708009378359525794095037145489819535446977043387525170618172251936126613515633583259213593258478368402174170570946418962390399237401850515703358105422976742968899593462125661168006000758498463949092423034118035671794171940703320719342984625978540523781520524359323220783819998347268643544484291922635390454770578760191943814951704945931552090597319022650836863207893776953004609923942947058536823790343650470967326708523581850167807014737775159553443908078861254337736826692916075790584135841952204711512429545486851195171711063922024554631159726206915441402310667437957771791277227623449048542476253193704318545090408402450766281710408240520986138756405323158833603323319883427956774637932112396628351522025801305305488881756950750965537000070641652914089278342894854958935205296101241241986334058258569894763449029229782854074937201028137536331569650112873694301847851587576111970923090895887919960788781249679963624478885833207336226151061309197292358705566248960320749086231675951177490244018905450610073171279002410078245903339940352902161543169494003039088199970605183490420298156346510224694270131235573668877624003327174803592436975204723394283524012589744158745840615309224776122018391510582963497134010860834839150078129868341040723221242350941407762902164931639211001990348740800364307273869840978213192794209393007834718658122752753474982859477382390567765055569813103240855772593088439439947695838247539328176869513677989626586421358050911592044469380773777660292369174298303535415526218059460021965000783494891992007021966756941960894287343165008111420667640736079109311906126151928442984134528640226672261753066682348932719069768048501489298616959116996348542720511712635698714005459456636602444216022896200882491243722545026903321001398882310192391368040838715960925612568694507241194101671405371099389047950576564716530510345777318300432277561675881735462868137928884228841560255441201970652849655046038735175856321470496669641870707520919740831542486566190629010316211852445878934413340798694086880968717202301697421486687574784831375985538653227991586583267206329014953175723509870307690536101460501756525142691349839943159828482180929040876786882586233559513313867604992063415772168493320790401099105984744131307703613074675578360512882936678822975095358408945920576805668089177547815676580209052093929849967277667514854463993474853381986354448721614404279875681807837507199782505872070326010868547124435929396288558304880217821055859870912834265261673032432471902874190473510289366052946497250737333255566588490003383196303337156490658053324634530597055722307253192073304618178625406323836986121616176062372881916806707725885828599284510036976450593682214839805835422360103726888849369723068499366097997753227950178748156912609837480113887285827435629770370083321902474269916338728510830452887525540170587135013036406032457408110859715608623560968466294780825257842308475411929644357467680871211705770843499761950496245467393072688046160697296147828488997309011983734874826249818811192722150967552503036483384465321169933334626683439896403755738270436055880063082724696032956150883257241337695596100804714599031293722191707630583296247560986950454497559250318836157781464019063673076884021843029455657017515079770602817122026267365349934179795884659736365894543676205529820485061890441620299496540412855511065794371789597843815317459406534352213882393163823184737019796340427678545848595809787092795798592374836408760039018914580430781876836778593863463352547820439046772452867408337011376945717635803045519465953433818547652860482401570094290695659340561895559384441530120623740134445716802367734175810607225515991575468554351615847903647915887949824058715890019264584279103753764356378584518045312159546612286666446061815738858913115837904404535577546692979726366177074357584847165755705426922493975983458346180327538575482318180924139149154410196910718459363593974859272666358416881464166924069406657650841063603259740103882965382570483547849699466393930222042073119906078544534264235813334185924892886091107284319635446099462423923973540285060327821052525970561675076302742780769140373770472520970626593042871254400236552231796945054340836015487860348335237040368571961425265278848420040708530720444453843865743760924193454569511188843716478932136364484154474590993353202289273024361236331938102599770139905243630364100739441718698099891105711064586127439576997166284907738236339074752934505344091641481887702102535302294874629800913642111323767175975513677142026450058115351752178825592543998905373529111340679666415969885204922225657972081195733252368078094115813460419853531030274830891133038763353871065714025836391716119590906594103890049120006937704908221570833881953327003931219462463932074285745470628507607871620919323830301802898127139687981642280885814118509132015092920503093446769262291138522780545253742053472624523157885074440601720272817362227657194505934592377392884608890689513625291645793603655823572940209584318685519344229432648319782602945908557591022767893752703426242099437507344102623873795080177410228344630484602016559152682259204888616076775679285509068144860881120415313691463938972855845727146456886761009882500814898912010904841363918871993651599171332481963231859920147247449243138100342634299008340443808225818368874115047351514198955067998251538714570079832239385261049118774210648704670726454869650936739204852055204827239919389385142612357091788502997010706367083493521253548212975376387211627007777169359845611052467665533586437666471553748965418460318791533055852638850271082074390077155117711275788984619728812787962780678890200405296900054495904082217604630119318373502683541811042123647349461001389501145656679761871893098854095220434196445499531339509914791321678027503246977896350680304456735609981775182879505956462854513591060646193279149640917724770393235896544545466299801797793812729219551988860903602648138349878074246428658358561970043753007331423314701033422524623847916939966650573437291866362087980395852036277509747437489144803212634321305649027735696439905584813921698867429304612357114187176171449917802035763974705976450334930377380717233831327217126217141545756813313797043459201258850314757367592491069022562358500252735358337127163991200301631574499805481098638984473339940896833796221656080446227073736604418478840085682146599305869835637737934111936574025711606497036994682950660183961841901342162667917055188260139623203441065010256303064240521389589772194537263679939054688992249046708572836558540139095740275128896263509168006135601376559465657629650176593114077339073213017750841488481813623831794564314881402291877982629243032703641073243655396962419642706477424989330556725956926189397723806487700170948928631242523058261593099816842490192716679845253534170786634616961373631348218053651818312608074148252508927408917381595481285566915704696506154087138108813132801525671752658208236179925343635668908713291112258511389518294904672239107407193844900095772828287962343269070247306531275305722628188734147746731819407371339825833308831546861205800234895570261536942040524001500689123466802519540572712266295281678512504322566242300582192081066406912816129476136565530346944721450451222426222859304521389778024384180636281693167151503574373021479204159627968119507414247768878863046742415474131445609308254098713532666948325342966622680317840298246548151359811289527450398618671601449627417794721396282669705128653207148978476372849732539906706354693297091684968974176109417587891951359607661908421111060788169468081970348921644046252333363373309449996416310499772809645899347290318634965312411485068804467243364057661870686884972298485783470958428797994026338834523695481402954152005979332295140863157735524737183839200197646039554908683649271787395325937248492253857744604361944631902673319592427773755774846306586393909222378365467981208886529522015190237693358213892112464774522690384599976181610179168951705919298235662166616241322847913500231525263429882062050610277969898430870326947993891858524751670694315211155378395609050168462961986968915000936126081928256527260761176942741822232558834236182144612295561596073917621726037920206010859298405767891827926570428895343151862865735507804161347343340508962607398485610064687797459910571353996653252499791147083138977466987249623435155290365988823000627195007988971075075643022907004189901942053198858252378135750749352830812716492740113495282690269555545449160674745724454764030737970266268618237688251141292655168024856002193504704508470174135482919037719838670241560645696366997447285965238281044725861421110439391740170986326208461276350001426714315635502909680246137881433324965640774412340214549185402390615469733287212854256457347921745415233234379027793557636170900985508599778335295827183806388351297101799389266911845412012647386506161289469534690034059845489192609262812329407661678039176438594872781727918348991911992742777741659893437987997452571894678127386177529793961113563704674086041972050741209120153960280367005239203506286151941536695246752125583627854198311820241169337363585029839124078608339305267880465496638577363433523672139988943164500972308639323234433125714110534404263129701280243932882269677956158114522233445245120481329063147731153235947218176563967184478349803123206367877638220524418626560775834689501935745617503097828609855494946783852126231095221897560040403055998604288524161756368326660196419361170099520767987576919951245804416637758439744351175834820153040132121273018977834532476236496435504592681738386904197542186169307430963742335921534154452518140584509553469436092657159288434816714129986841440026877441007800056355183869373924666506028946926503321898155315478658351011168496368858176517077111415260436369922189016165118018663860862774018051520314085331441168578369739051172593466092977506543993578045677718313822635268687323827881384465793334585191014922983847554633217336741306130607202057248015517532497471797702781990930573406812790476374212252548580278800232436152378452884660691312960053374570141844909490402747090027905227522212496243159602866036365288929140811743519517667398948009325485486576181730840137679613826182506545272132419997610621590040340353605231647345140287750145135522573818841089382263391771147586695728952258801134506374520956395263446342192273429349392134104966676011156289287569961538570950637770203400416785615068965006668932958297035355846280801612496163382110397798943988865408076018116469959476317639354751800573363243000432097968925614329897651788763776371846158418846512238641585542288048102031037037803312077644519315686637757934127516955429539702991900164439160387007601622557567225573543336211140533762833004582019009439332409277197177206630297510754913480108045160541542694774895740155461048817085727035679288737203697364998364975811421058478203282288493213144573563956765649672377609954733927249724599459178952034726025883165249867564594086842343653779346099979276759455335220357119329470345877251433109677690809986357388787156221058491851004211723692282400304426329436980343606183496944712461128497918112622876440777683149853368547061673680565742775251366739907259288385641334379691090417122178521746014293435314456213103729926338313300942041270403300841302795045254456155637738021159372071055649918306927534736586232791707129434765506606560214151380775647070347021920618422637032319938734226121009385570332716018283407405169569156507705064149892018905576604582628796705105592767890796570138333910045691182608256270232195718768550522141360948171516924884404330422288661286435593864149766627415845436572019398714386154323453667030402671335133926233665806210709950814631123170722241071142385034628197605592422482193475846713145839242333042055665165787738761701126480536844953800103090391253101167415040510090402058554356193813907743363243008486293163125448655038579427188812439110381157830936055424787294727797985444609112800397419169960991133243936567436224679039820601078524878927075294942879371612318910458882034757100483472990893374952792519453704269245899359728689367329826311115856850918187958511515698260482400731101254725201778554125158250967101238603427177452164591942623074926245252209274073819957788182831061826967171257404953514982538517344495242426034647661206647437743583935910226296235381925199973171476923279815014028804036929254988240334117049854351446469629182050094602450347489304126736370070836653518427481845043077998145224210271085978270629640454541846592613924409673832925835938006677688822572007068436099027526553181669593921577352099140932289588123337023655480569329166406368941182149685988134519704769428904984626276612637557462900423639858195275537491840946353050620753240276024146732962280376819709652986676810369231231695311237540067571250645683368728980742661220135026997875984078479859985813332928608658255197680233014314525094137616703583237492480220335898416373274832258624275224353521560610528552271505911099000103857285678585161077435525133011479912240731993532838427030250693975370218969167062597359172123947336381075906495679989594262489718249516304084025953980830991274264273812556018117000136094193198536733643940788145909297099466040070641069359682868065571903338149878209187211774071358826848526037727492190249098761484528831092309870430998778603060413665581728568675136277793885885446471480949682261874719615978285614817888867962777875627878769012637536893542173023214263212966355236622484878562765315252222671723566656383403909028093874758384147921459434261710092860960556639441757315943692069679953720700651111867433405444560365597129643713779650092593007852493981572460229441102955330034315789043840894129513801210720200180276594687333240319896302542524790353860344590202220259004722823169534928181169326065933722947118753116166620882785369292542015395617373932535708675886275857327793330393096443550243904516670842904920856704187005302769013965456849151252698193110481230769634818564534602303255780735496954449789414373437281028573738051597065132359242926039225924034669740147595661170821803625446700908478509055142891457198736458272833860443310257385387081137624997079777043495833165179040383863407055340723066072587115660335747257761810065599509344073229077934703310191926956100147183128622575654724072635005265740724718485698966278946309117317031687533516984302224844243643471555634851899771420877886921000498350861825755656560529252541095691133326280924797433022055115456182630776394660056864855150650532368668736852055488124175065713296148582298188888808567022940012385152887026543376441190930869051006732108751916931432747069033042172544036126325488420242703390225788924216191246785263253279857717850618535989899391939266077095994997021985445799034037031373462049723543968275192855022693817886566272179810123416874178143295448177692278232727135070633022541318270551852598222659131759423460409472640605970715671685967153958401275152887843287062197295018871367556344104585236562016743270572273868435572878550165195931087321135279566404347560478399987279837704961836256253624352885403282589493940679760530589581577430428515869855514439869211457220485444076410162103733278300235665109228400966881926131831012325475503516606157569798500231407021402672187752950399107229222351073803710397564149851427500291220532615997297607630457329832183862415412618266660303887229674818175554450784692900990733411644509737350721223082556474979935922933012346637818268950748163690503549730654468070959087903430182726160138948726188084517236820651111486094738576847033522047057410620719059794893271152095260977607547683727753305052338732269798407066911902555292407883240886535929489277965897069895879051434962824481316579360840295147574465514877553302512696595651882624359123202469702871888591194537200041469850141329796643311437589398025132718663791630158692968115428502092828317854885332049923155504159274098067066281971024730656096565149828377864411640189894249816457464679133387101507361523449128327676309134803585203734839822440908894505129099562466279983338674428726226623059582859945594941241789523006048946694103309354753304849168256432568475401435862882937635735982651692731385957085304784192146740094172126282816497986198753531494445311681030491684858979465775075953385425924541423767530078739612894723994577971337075994347924289091630277611256948892991159407355025225541923836545404921819894063193508732614129011958071774993828438652184535100073461635194607023967990854371013586838522662064822992045476960095667945817297653109820462475604069241576409921141966573648278734515594037960518983604357407708797294643620407811543698914038270434474903751879689473860504246789106670380632431944749182014614832210195753412633646772606663527670248430274036768533928538615486853344778177718364729251999363966917089791233933337363737759349214273965361004270990387538963472817049925031137262397651923682421546707299032500976522856121901712007524716114081081572016792032952260857644213248249075606278316130911790984037483211789375245119724437591298647956771030387586977033642565144810756636800788761362186275479077448957750606097878823215300798115744387790081692425429136452951007055085186730715984112796239985139403623278398917330968095767674207145315011909247896260841862024662994800715413464330454625203418987757409678119315733369164329941945599849199685069113444535581506240677325519124089981258078048149263951349697637716284959978488396918691769080475743664637789940455407654667609299663157887994357975818845280982130795309134915691898150534818309366633682582558049337190548766762160774820350650322515233461647278888711890566022802149634258246842089413899537559590205472616880412191152939214793744758649073406519981548760527380064397400150687759477172690974890441396501414212031948484140921939594772068536517496750158280354613267488176674455488253842607030932252097315426084121930778829377698431267358388051944661579988415288600982416599929562258833514045484501958907643585247840757122176902281077308074837361543242728640543987180569197301702703412898270088930461383669624434350260081129673374155742372764429648924457530682652779636713645400284551730840806176854922789066713587130403314289387068582759352066741347318603692569565870987145320091803359051774709145468145498809366834504928753617295133435075347585123882142342200287787650600648016259342435912384678869892337249192684038528040612445129330157671272932618991753232165978901333759652313702498222219957110864435109576692461467747871844952908165139072158177420022156765989247870669397093748078363439694472045842448149618665095233510641284301400156057845036533895730070797962692130056794823074265906207934017699926883499311970015070771057430960554434352974331007823993594617296538832240303991884171982349701723299718771998406677192037281959021135397917161440949992885865983930001092973358474932750707176438401600190634248282400248128812001835871700839715696923252596653554166997598006215411025443629968777502066500843743925602184212840191453928710275394733918870035214230118412977670754191598639235196115708516794032581008859081480826493843654620931623460247566549562848364357067569213270265705045144830875022259428554243836777884904360888855670332886483315768287312903108633934845898271548251423137960017812637400314897609368246936283278764202231413878087811010640763106286069941140627185027067770543539393157368015070100934001452081548174745106998181897794486170093798903245675038096422398534663902941080446912249578024429294558253633154550275662729066127189945174732799284438103321380403615528580349160200786555293153899315985092641905038402482816171668150880226493656043916964909847408409985822941693192764512943064879213901467953550967504945900510703513158199272381669237180897537386753794531974409725164438992865336873361371038426844066872961046795621247279479956435674394213473955004685249330399889471516751356989919449982690160005160689593057642424173675456194020552276787126202184433595233900303295414238018658714129094685605499523058338508301930037633198994934170214423112577203348212747775388732389614938703030976297922125518791322349282436433039401616073611266761382671345783194065250447683488010689086431974075492580520634889438898061145384427638605106119349811373545707659975814627948897126326530057716634166881679396688753550008935425010249770221254414373951608882756302317548400406546197311915408729047019096040753726213853903754393992546345601754471406306318144764625273293619494946175066169621791410045250572345258881331425737844798861860714985810346698780594206767656270397840087106695231832013666290237133345947837408119325526155498755702051867747901955285815622989943677327869584356010656535566524500382479003694072981032996014746662966765050978839919031258509520355391460788935017091153879248694302838449806672279941365528929054903543596331432722468861382532524339167822814889554672870024798760642990446908268840620904147947598148838490148934731763306657395009348284993910130149746278166079869666626309843778893580735882261958052850229277374459209115298848134081152717753037774268434341911910744212654727632882413767780798596885599527073136733458000496262839480695876188227311226888244166128794953742182791558025561184994441650729784502693333020147034723218511364486622954621105654347553060592131255270076288600274059493812649003195928960079039858464404242150905890594633162063415492965986228911839614058064463519188808312125815672753542623022273700815071531223123383961774930147721521052035246562523373425244551579669324129491836995305154419855154392036412597251753458105569310483612060111687623117336823419847873077565866031316407639829508862628782926095647766757159507001172059414247651878377710432719747098382679543796593554491155551776501102252991931673053967504392594413542138336279232060038639367082103782863850175586191487434919133859973075775451902568830013846990246857956094484514943285945624124238165856578712264033483293781589150106455005359535815409170908732911243870086532647822754600730750715300488684267458888121958101384766151076406876499381913303589848095501949100824947824119722021889198674925259478899863168306328198230920025213383145338176761432827279713816755945308147735038806278046059691929609167052373606235981031465038306236111213094895201009132728644175542372477452117825914216511319446590947786646084011099597322327207288622501568123959517968606443337121956786480883183624913327744252473430140654335498259237897177541611558034129604613257184918889478592348745235438024139715778975663923226067255642935981969271549998225232259981641303394843018371936190161599111220515786316345871989057014455790912174574704811108499514732535701686632362548401318994164133706445116920864366884345511037359991498799335574862107115624908141151245877860729175648919102451555455181295410764080758729819525474645888969143152520693052658839210914560721478457816697122079755679232709658942059689889804618313100519553216547558613304781173345624221405718094349007569216045387367822274928134102859306278919141492473239662173012125641563708274964359347691749042514387023120677733133135310685944643357650285069654546331124949856803922411685739888833928455219000070378553327936203522936013648163199755622020736035630672957844149799660204959403571615511137626072467468860933260212165590860895448450483871347804335222349895343691718728042772710350564279708625015614762588460854128367427292546783501571697734211901489924152040173487362417996792259046154669005918925425484211617928075686192554156075169767425847117231210373523116188789316140838038701297447266884480596801409785033584603270706089649246185011323817144619108476270762045436561999759544683535276571028253819526927496664305322514377592146095885408776192039780696094094376836916895441504867385112319006668090523596698343276293361879514210463807577742455580134747897079922607607671975686474639580741855444054133792767251269334560053502446171265980978330131920825765367016235407732844857020819147838083759535230489733276033781867283814271290656677173591442957365251579645940967834236083217946298721414459702454091831117186591628844046138435647999020421193364628469260948428506920498973599475050137102666016760468817384439147803653100085831334563755413152883275977944631586203064779615336145708651923579782426895074963979772389735305806878576893914569740975565229138465592769067667422045164154546221386945171225897097211648181682779376428211859541984682676856844121526791770940116371734066308831053116196645617925124554791498078622411216207553758271253406595207543272968518967223633146461089013555849811518703096533869318071045938039048345815357903295679429657965652609322799421062278140612860499204391206764963451226682182320290771433801526111483359445953206741827018111811082386747924360898372565094795373338606141066790087744317427865617614239971047723362405396029266549588719613613670142808978481582931142944679935382732064574901713458481181722844546448218972658647447388318072080647765154157051164178141874920462070488341927096557877168501445552594139120835235868607552693245957020390146730967828312454063876339195826176703328906181122415949638191326656919493014303268405474315363036833371321825176450507520485522685653558934859663853753426822313897542787658692357097589640620179157383536712627892812310254943718704101710800001115956845294599376393897299630250275033007565261632081500770567703036722652219204127365470931637388161806578216140844357890171402168228392641988298725441460791769954663460635415295348869188344655782762645167567961551983362690300264771797586396838108009496940901409123492712843714064649632619400901217324192307548605585130219128281988340507010735950475297120403960998707436152731084951115559487643213191029495666168159354256198387105987053419403532105169176496430096722050943013647667884311476730905007251572005112783251551418747305980286912080442656391944887703592760120991498044441920526943015056617587473794331777415783638650966449787173499446954423430516056482799955811234878866887178794328740028423147000020679058862257337498659437060721870934894906438866461403469692050277669047067242795742184641195138887826049685393255243136875306735446279103358994615639498441607648531188755056949765395271932877007110153548339220320673622653213468373837027466489566359416104030045404572845995725952776951912529780765373190507429282746441173728234235009705681464133354278556216098973380718580781318869714797143345081005275069250959747865172516004445246437570916206518646978431875204279967043234765601268161384268219557280991088418209543707913147380385942654675075912402396750363812022561553090020480240309222750779589089612306681671154671955366615723150848647749554538104808824928840655016081676772599309824017071125163616450554005718229337875009389820422186465143107997209453244712794779924390962674320546579163123870702638480427299810712014584140423945365417710727496561909721495651369833618891021629630499381337836051987918959828170628173001312636285488993478899633996877650881057422945168910203517946436196389181151500809364519170339613654325043068484136596978866366251736408405073275057957173931759091172345274341274713494814359737147171279760706245040153058611045314141035951127695172984839917253891681673587505684124719803596716682621972174603210929606422706824997502841830660597448835760924404318862406398862066153631667400438586457034871053129400605206806162526723303476279585814351293217336527210818391822741280648629804766293768197086362425969376174870984019269907952133408813293458557857089818610748727495758416843662303247082120711039092815224045095628917124345252972789079130569264079763696894046460789172088046961250579917365723373166627878171028418795321039893922527032469975786571215280176335725852615044737386982958914481780955440505843259395268489099419939821615752589612592912120036716345952690578190999990337584994558104066733622317449315838466846844986908232521650940586147849700756701231351861075627188993032463977576990864951675258234474730505365791360227460815849875912136259045255967986486636817778713919839490545853540829045712131887679695524046671705958040768226061041518580950580202373664631031255835786860026289372106556394117551598732414948177349962980785756075287250554961743271896231745836510923604158972624228621201767384306784614513250927185842359690307516999667279916239279641203270880593823365522060352293208821100609185457981309565801408514699884512509339812613309287214996082002342181569891203534457134439138992557197110660420143302511647886585651264182423722256005188227875123289574098087546546012443827655203799916642871319138868666901514464191452432237091577890973446871800136962167744087926060295514780998204786347871760637257846023844325711961331756891861554856202088021995310564747019004207960333946744823713549150101904649272326012903767301495096103450320111011106669658733491949875186091778311425464952471686594584247277397229254347562012398098302536316893864480561590054296240359750227560213905782945349303028550587535134261804475910233936818251867497162858879735231121540514440141942996064841185480147561187384010583222867914431373056472187114763009019616381206240799007754893600444377511070635985792589693016301349539835677925105803575746417289662571741715990635516727958979726972897475683026380735788213022461124174614790528114285411700525909787543659939474329371286317578227501255922190355629941670417181900009258804963390689512915883904628806684710448777130200783251737994105016022272994407131330111295221282457636416830497136765940668889562231116275684040468757589292365464396548520631489967120307912850200954290085174934149469006934121812297063203629829398687621036463422802783167243302509863910742891822347044711865154754044771116974137451176516592922357330156771082009880886274586539592804534010578406712761843633896894826986632883809791822444830637915750339862292232709408227662344182108028946190225814096868288336421064039141214025557125960611856367119578650460940186872342511725288091918479233457681183549972097318513585522808012159425106176509923470333099380429355053164128386789830469174870494278353574869455838128344889499976379244228765551070497276379934824765594292127260437964298220331214628343855142692187018576885367967768711642980981460896652834894020822696894323115201081532054622882963548942545781248242370689958305415020886207220398276265235885693322623137977401881793820924064572305502822503829777614232642112008410427033997584681184368413808858562609693193477835837220161801119831994160491589018452743082998997012804192833650124449665730434576365638263816259613120430676633200546628438027378680516231052085006162512715823431546548321550522111244152446177974066068312341782991184441020174995930179649560049348530165631231335429912850362966716748185480318766425767847949142598888616277356165007147503240723709344185709220954438225085029092624347665424666952468029333284438994872321285697456518638261030769626325513583366433979964550677687725824478502576442045993990304461962121784458595750807995708810093667199656704198192636170726843033037257961743495695241097824208998346675058461534580075508323078569985935792077723446335202551378742838545101539279414865805697626223946707437964196174861133193707726433056135454082925220394225078759655444169973272447717957350004050019871567750314664702156537496290634604479204954879356825486357691568875452294559824763108920011920698992646428567304692032621020073115566655096649320306525589928319967737180691066509480722495346510866420962195568174563462393815370278085236474172796935502499035439798148376053263582446012507839928945083898779726529915124556026453322536521193949475027072625786104553859963581428387594153583751678029548579333516028233672578796064465954692143762544960156839952388557123716460321735066570919814999303478396689984985175797636194835366641044804534664844128314349123386125415575694669627207850072717115447939931845046111454303968151036478875765927991896764504877632333467236808608016760788770278950710131467980654503511735135929588737517303086052832736927107621195572695786583796482752176098360060924242119916390289072493436913492545931579094236382055507101598605448960400551893001151572051008121840776562863295343889619701874935447194084046456875265566188670306215660787717099290420352512874680870545659422450854936048650008125821100230029859259824692752093805595550913836809271528185202747590911789994839189560693238590558964717444003226183020919647469280299591383205344484313995560044670178783858620221421783661929637069171399183963159211798086276204277411554128277360745360123859631319239548771607249283292866487375319571763156698929971857040633955165290567911609675671861169235040030621705933789694589867188980241759243808162974433381740486312419990032101328410829872113641742545042759827262020644910461651735072253842170191334509053265614190136324219554445964448875965221315879557916081372064516695819844867268140597668630533499570850166109665644253806775013721158005729544047421693942385425717818460682855061022290096493220923584159277774109844487400161316315742053396284147598602195377051281994333901183991932108799632963667389964559909330904601839108187822796765481543784268968557327098553634614385756684769536176312341421306813815062129399183159236890159429383344600849115340518526993978859336699119268723715882637120107875133582965963343274151393153083116916941492695123342288475477877756284045437639206919274930377889239100784205790624787582825586599996915088406911844369725542960199038622823557045623810720586649782925562296961890366474626894061020319779659598926333474935599699659750289473738547766394605508681362815326552069107461294427738237744060612588707927640814286692218451905174665142189227871997446504833026500720570672948339182613758245038897281369760451489304936101246346195341061300712643412920860898426243912935426373249059848406297468703960262823649182907691638225278063159657588677914640636860684073479887864445111590143968566372833837032993248153519661288736093182329422493027644462523803649931194334874982251376668605067063685387615874398940042303305508301400322486938260791387106642913803915505511582265794222079075359728543152765841950067982215594274988376954778411718592385494569439935828178074131328398090464500345290682363775905556332423147303471689413289408505652067148539299074026436418554752017285133509708888740979732734330220948692746862081895946071025982696224828112838694177646674757772034541745983054259181198307251151615293985209897746875400803369315279097096689102487677672028503532544963394889020370955500764903021042716206695875374621196781116961070426762168344798075223671030069508067966079093763434835552084529834869829009550552951338377438318908554064734610231212137316237824363143961496731954205985636453122270540853086276209650623960457835299861162230037610865039340505038355251312604626429502291962735369114650251048675468019776843153452902322191892156838600009208407164070553566417801134199767455564568558875645744169521802587036507483903681288118847396765999903283650706486650778623565919937122041216186731342278223939385164263673332884576983872656773612477938674382148994158039774143827177564032802847866518684098300528573980881972174870157021756997556537046807355330980185750708545541525632669596615548844419210200553223826554216587555970481282475529103739806176159714447614461548275317597624085704926058879179889357313128855155137881460012261914312038653134925763761514044722519560249111402609329900702508547452516933451250250018358423399064031549555223028962560842557038990379260417081186212724985797946230776514236669986256995049527691975724372549830470613214004156585998520987950762063037217352623839073879327944717287304780730793955982927737656097802359498398463680945723175220845467214057799495143783161874028883694212593936288702696467517065879773884619156658906049325050035749482857382143109357269427670808353492081561761674557038903593127899894054649444564770116139485804736067082620190088247558817140097383203238649774984697783090519295680802458472539732397092734537423200117657316730372173771448683436072448807460898727859768791045362306682501632279445323115668733747608008696237475929779177741054965036233047871070572261416260783023390922220012179841019613451630352286763714256213786519022712164817220946777147643729097006856361387634325049427525873007596984990111147645151133480090111183431960294311113650273345773624001763473907492082073067434366648607547187131671407036923166904717642352546500961355352230485856120064399126279881332338842013229908414489154652858023644728232690461953277022914243338581307865418623235866564650379098420878335436355686284681998093437775453558662742601303463196825299192465919316922892372966229383242880606296242274189769102567559634768373624669356636697366002291932271842837258569283800169394816244586575480271147270985497732393758025794640456447606276359087532109771482582140652548011088968075031331256951538884634371820265556305071855924334559504633962744029969438321113147580281521018709654082167607814886993961271000258378896764381219655796194125138801633507664464870091933615661746026911933512600871760703748508849694279235890541270901197157795896314211228559317506422839384966423945294163804525192068669377100464744486891098981305959723934486929782501888730818905195076902254150583123807823643596017450928191280548310717103581791888114508235407338192230145499833502687086445445998867742482356903596066025973708297717602936250249889715275881871655465380858542170449440970449532704930494118019280929325463963204994455206372959963368735966720305731619137718868883059208143931682765267623821592133153436752215481081028591231217555261083121503741931604313726182779658111018670487158147228394682291447799887727255252066969988819983848226102969860100039189597422499731704555571753696850244650202034002634894709459765565229079951515342993593517511479861589956289483442660274258421372943986589227826240717557056195290737042261975605302467100468218987809241243676818893907975439242113256442106749050963420730913513329435292350976384642462259155747202496453250903311110624539732516311695419578579293258947143607431186089318991812202625276804265671874014763150846109793705733147547046808905465755415243117612673664049272157023405136642901315038033591514921002649297702181980438527902401150131344184837287490709614510115119472045094276471773933854883146830426428928715781898942335381029426408894918826001993533720676635720492089835115134193536274498838440784180634611467164906883589456991864819326343093164322594780214545424965862798538569590468657026052161077300444981219927556005242566197517129043169018641505215652583379110889957724454937577093791659308247507313347109518766917951915572254200921775053674069659913536607858598170348459502378491338927108737276042221488403739871600527270893425239208746498236655592013746122055085814995659629636457576016193902854275461901303875545815487537481060174127986918263791858038368759773379931618613111629613087450506686561321285127163998708172024177482441588216944543203699244634863627829523888853116174537695333871552084662573750296521975849104238371757758689378675430183978082649778210746633452836661789917541740512000723114812911666629346203042640821963481503696144835788418745404290354636179396018492669333102369658223352655101567635254914568731010306676965050765918901202891236517616417709845163381806384313447605465463116264265171951923179070763178468371734654549705813964528535917017170663911405049304938931336022879373967074127807991340786027522811297629489730455284783239466592817973331678406094796842187643266791005368718141224127737000514347007355490936070428220914404353467806068697147143463704134217762372857878070487082059562388421000388533930254504472765275055433179352771837627609787012640970098264043391896912328265193829686163448808086044843739527194455706625152405312736181214847886494150234957187587870766075658699990073369443017964749876334951079189346576685964017074823012273274436230629188281871476940527734648088357560293203695169593595031314572579460253640307892415549649397397930571542525288806959294678193234968901843481197397605327223269148660599421148265543912700222699458545951563779968907576150413533514615220000383650007065115347230930153169683855216891731299805977267493233202228006137756281932237792861914782677732350444487369238721324160459144420098071878616314574837426216422576272286637343769528180082463618588496204685264931823335118182168997644401810144887558176295558064413797688209138582106806201329443444937624609370508270258715988197694308172512881560955895679088490308133658903546254132750768760366213474075474739011688482162214731028229132108258469749057944191919166989529388763797874804662155135754269024681523644130131599437850924027577256857624879391450255222413199434498069876501820682549938934551397885362151480753526835994406425458214020502614699544432821494739705750552445352956890859783822598371901185594175130686706700789161176695955232195095553749138405913373705272222436438692303113694864395183118576729873303936172758458917496482037367620677525033273140592477834847056478662712781813379433958687755604487016956852088601306005598187059120956220657267716940243690434607908589633222299073390353200577481229458042712154480514274880478928125812821907147720277860545687432832356575870774617538805337498190930438926206095838322704806957175185251529762050719951821608239250567017950374573839743934641683005203931025209313879210311451098231486100083604918822923102697710182614984836790889802412832589675391729937356786522015309381478474067078583122319528367277527404421316895913683792584334901772774995362872652367589773725385338652322499040211280421776009058795265835857092972155051600550499439426564045761140202553511460227201137893232674827951205780235542403354752115298695767881877383926482261963943188939165932488709197818527468877793159953804076140512841491299501608547465167061551317589845929472748646120729876182986609214891381003516360021363120158827155095002133573204085331117947694140057565985559177848207223605125823691575546088989178435747949959075650991650310412152740520540266321530172029230976065028376039281418780830160389034546601717218700739714404219096077891384935939959772673667823638522444916543333559290584485543396576710535292834071172204388155291816091173613766542924366748203948084186125927131170660061594282678204408308607328540032871473358435946251246220010377156036536874967690770707205443417786539266789634796495981011981308810667926380437525248810782234201367295588685067581677947221315990535887094320822223107868735288573693837988301586948091476497616485303120191070876744495565577617628862878326435061176697129866427798435115998897560973152506433670699661417055590237040724642754578268829763443748279713923352476765719740800362962418076681253435508946010371198436001850950830724636472859122611836965624388931472512425797148881846005671481614076402410011419002978388222480583797999083387535633202062731797222836409219452328867194762749263042383366300898592048343425540019006196445009181327333846889501301771994699307116352590595207731100576325249267784601931894568719217089730324017048273793444108327296541167665133622488023856912585241198417284207549140795754035842806363088428147356244958481324277375275846905551492348479742660623280420092337268274048465482406184078360797761981890455787487160047683964193463502557966704408831015096788640482826563931092833438766523750177528995902631631763587455919132429989572294953124292810598527157419373590664332347406554105577025597981549422450146981857960863383551703323241340979591242499587319499494981197911577878531412480229239475247060103198994051037931793784920827995533743008465083611919539440061635860998657538451801686081857012001744095501510172582655238045826501280143977914696216313848480749905461716046687176778864189366507454259536148295581823932645474504109809421338232276868447356011005005584780303538243063423472559199556998441049770008686639461054435272927477457909924480108434606346952753623179975890981376304671146734268359913856732311827194210384371227153442837966687092707346176326584792127126175112624446694517643232349684154382566578744617094286198383685336478951220853300988137869595933079590556347171300003827830877672490198863474608047930131249952570059962163929822194865715475901001691704701030341857271402341081443189328443795486954055491655902220667510773243777417301873804865830342887275451437366167263354391281799739138947713396263734443614806208808119488829148204416982582973075425149136606739437945030805033589373298875224667197143234055117928758882573633418427470798432927149445706903775654292063303428153451431537847032421748005391548889645489752091481058797357033228397505573454833522617955317815427194963183133134047165085935136580684646939676815140126446099874322000610659921732690202010832096534507481496661530330698808624006814699349770965472886685458280752898242101008080975954130302728581868256787412543378888911419151963193012008891380232542793634504199342713065665271556171475756926029648160074991402074856799946646070482762801094990434620113494341091301663518435241834627152319299165291035872871352900426052085324942137101846869533935152415865998907568308927145139641428261332134303954944441713006679958897876497718123075291286089928160328789697203424946022256216405004952143599804281663533527383401420790164861350079280808385658246207896089673818460172043619457048958014271440561050749771976012185754971829939035885812046543381214213052656998558874265920299421789812976262262517474204590714191280469403527181360804105149144485108312365740028033648274369543986862574248122400373199435007363849658354666554711571766451468283293171715747607840221564347678354504814003770526002568072863540561596705728848349846254158860848369605847893646781801163430076619150193154387141743992164404655341952976393893827159954315954269212800936803105555632607098224137504880361569553954931331085147917261689469398306976464542334068425279223098381418533804058051854121707211171065516530816847201806259908086808805320675256300901225402718249297841436055702354798698708837442132928068975366809147073181132244384235629335836865928742455444617196499121301480985130484894935423672777771169106919918355220490179164550588859771811199860827323470790661123614128195375809518922013683882646052044394566632326738281364634828995300349319554030606890129489273768430016810008546045236392032779479869702702689480916413600323467210818069646709247647645294955187343634499045183311216163983474256691047762617470686656164676199268621809143288240856388617170206004094823071058138897991177518115756140520415945935339998194633783026513098267657567080202229626806752731316307023324717918492826101526687516694410408472140801959319418196077837487151476415899520373106949600831301940971349115541401689372970691016197109908574682638209094988638634583426177724886208345745790607631656224079079553338703636596105637577555298838645029885043939512856498097944037689664449914557676793358059264315407680536799948590900030441521367635273403903483461950379694364346144805273244236680430291959426708126577062581069246197690002785334555962423229466386002255269997367226332645831195019674327364903838417001883199562801207950932372494359023148153563737916411506075150540396053831717429063169556926609231017889860426603562853672902269685237314249374657412909767104773507330266885298551965132245727123055692476462081099939082359317305881612614700942468026499282417163878687568041618277690123909932525961723623513189338604271512699066272903973611827599255473999491131971463476449293689733026732630366017670320948697439589180881575894256945294001587109025193793031352922899855455105867711375294740473667520358073301418593714746224117447692024590488739717323764351956033885729291372083833579116711865525801341381632061732985868153559677704845276019782940934166799542512884308752880076124082510976820851860530361044163299808431301029552558206130685965166009738132077081435312486912760534303572154791154358682591151189198888095506906236021760248021946280571797230408700851754413395990918789483298635756773034812890878736738848579045287197022278535792474612456588317626829618927890211215849156925297874984938664411274044346259342129834925815717837697586367131807220448612900234708392738494077794285680551150635512118791276887227960594010894014444735398201961730645308562163067060143524560090780458569434020887571211183855401675888811273417788744859851446760437670983174659051775845701052794023843680615957518378532431719483023196949309123797234549506186309171206563748317921832636592124195784879535341449843501513383749295921554523806545373685203766213324545602409761169063920760103904623906003450959226139126158159979094694411252174212679040644600858203990847499607756818820081097660070304050567199470717300154515398195647159834006118612248426437140979811186026924208335880707180100197932830442721681241075441936475195801275158539446935084221220220775584444918650077161329469817221117129163785657238037208509726734403163723161945542299798371117892481991326946848008929399620353569746287332343502739673602100171638207137331960838903954802584565016159547466268780052499071969996512474661998886036757166253351656673832620861485099819706463017970366177760977137397484623296705572425667397737466005723881217588928927903951307371096214019526348602971821624824122992339199185870801189943573126753133964694191799257486520186362806071154057167697049594543556421807027541713418092205283303348764481469699021064031710377125081407090665607908058640208231047281230058385927073184440680262382534763568009127057500535164708054674344522345609460679877310701455288963012579117863871989703979509152445637957669356587483003914391846079230618281885533966956201457135644915200497944842401379057441119360423676836807632165255585592010509268704801799714213696377568993951100177381423278934640939105925814635738137998553169790354384680401594569109470665921138957139153369138128683352581554973499020454665177645451794134821577922049631823869866017387863918726025322982846693815778714245673444482875534354975024715787131379670774400280406994537803111766893554654919285633189109255218002883495706610272526391497877499158331542549638860453557880736400133137290049745771569177854065592275432925490583169095140991816489072736309522231365297398849506872669512295074667249278532633192053658128318392222320977990540996333524068986129991640811001960114107347327943645757346623325395722765224969567433655402155296144187276799574218396563736298670101165275754739205436776757355203145010949479473365180856192315222395675955530072357468187903163396876317497389117993673347753285347413451982838914056092798405988222337668140037116143270657882284162489680155646512698660465622720175491721746870241512357343630799119328711942633528853509425008331113271859284905602811264013047499873071110449730629865989463694600149563758578068370144712840355616141883896846188979407638634774853602835816738748181928136683774843846213560459282991224682534539152051802475422829904006267335780081494759115687317640265431728720851416685826450779465380261576011728923293420209391115416202293654898315644608526030895892764886579198220549404510147182274028863400235081156930088836619987627730962475356275091750174245933196665872861481499875456040133082001865810682852782439340826644354238605154857812588585927471738010551059748943335740299759143283303992022982006778331329185317383974397003823014809372721114769589251134599199656636418692839721173722614132801339139724145073807978471544787236823521686376740771925528915317842723074118280446277811840730900604304027000455428021517647834805707022237771671521805632265157238065756360463240305566477803516895014579614340991086275898863318338206841152533093647304607533088705737525622845217472697947491244155882277958622310227845546601252891728076985453888765089703361137698044105206894807982498927722007099416328927610143054662248357686885425486198911336714061772139609964070609612155702941523510314876333467678886324718318094478005394311766469613063059296530783191794588363702762453616358338527755935431726489136849036040059272640715905492492500544413540646039684834230490871470639209246286525871716773710858978648166429629456957057680222250397338723562782310546229264143545568768352943848524068648818126123244763568138559718888431138489684391730429172912018875097754986795820042292511610693876688541383482391809590059266756228092933345871850814964841667162631405087305433714742008064747798821003443053653106128265166259875048705626060027222987597318665170461802724839727391169899405690894459592716486359622616776405985878835752592914187925077868390193732568244595037510930655365907222048564539670916325722174417462901112011740333164395641847042551200617286519105710313034574630378751148310600419521334674085798377457661428193743526734260357846212377867716857914534250789884328454182747550151001731966135307912407195130585040398358181947574880357894792491436500753901117838752186106518188719496848329258120418060733742583228813217438346524884449556891440555289303532510442089832359989693169782215610067931957759067120552427965107910186464898510526436392103931017320302207364198464958702189619325434820066350629755853378433072740780356310980786980910361266894581996082004701717452410885627875208377216387596175734452491467285417615121955535031082477169418108242978581732681785882810476158678841593664177741718429920227263305026010647441324932859391665606909381545213898660407224928259983139477298815606457838865402671445923864791640351242806399625251017549836176350135926293187751943895168580539658904865989467081998543496573065602907857327332547629790005524126765953095353748405014581329166336435547682407751477441555978532007792803205212640776972859348035901685215647356663127913937764695306752126259987442910863668998185600490358181522678367969541198619265212794112705910410524322079866300849067895148113217818905783669524798080192583390174200875760572776312980535312676083299099416703003563812342850465567288924044739894292280363113920088554595185323700466124545594879586875773147180333417338865466256538693126056595117966675287728896938469652079945527357186505321060648054708547009380192849884545776272047236021438830434245328269135252948788129465738632789088908679549625243631313506793595545737386093344740225809623936219962699941297409187218509987397770795730269312953761866376938130347529701114853058018009304197778560017107925976339960646348129538114305239255405787580627168976628386302749885179511814740148075154394565024326328193303794904617533056451539694891706622462558356163115499087501212176022933579861018775641143319201979373003905874751573251991229040766716690741020085084613528398587922020110032426008590002468871061404596601399305368999107412605872135127886360481727480795276022117103169190444104807158759717870452672888192551876069413828984715992626830847355639833817094257792713376272719101832267120131817840812516078157816327281386970989274499453678326827730254249287268430486147748338895916055444608267184822991309883752995537732876100148006813023993434535366228539087971994503580656835128297974972605972586734938910174542237980562551662779930029330355237369877483003039999602735630434975602039944210768843681537298162517791134000298045122105871354498093880532959821761930179646497403072862250601103365893673060338990481481867723566044543862570168351688727492415670899131466396326910959284109415110022226547464110123613639122040683895153436563519387418198314108943330454114618708714970348456361740451060287820557611387570833824689854421847061226571528215405562896114498722382914727016590455889784611114309329896014145256904482274184932737127045329496620007628810595064236839507774743800453678401941357709103499329010913160161282266695572178795665377789849583038410149668698074940301773548719324587373920383987075986619696233077666737128487347600830861935849290623057603654542354936568021840235332518531255953907290099117236563008225216121683488356185476622039158625593329640837358055388058276295463937974540499822893956996035604996249804564206837724141170928983377401117972869003061293204562844439993799219279007770544938196983597263545385944625729846456598181819335854028911723339736072564116044405488077277694933126892505595675326633307395837930744437863745946383447002537236230148161593597215083063238175477352531088421566385462659627765714387971801846061158999170641837123813875230609899011998042325445335744439634034049883688259175681600338829664922840464481323197612062929167528267907807913267662983353415836882275117472260539293579929538234376227396496487628058927200476301005785683754872923103716924493418858123310784480631638536103229472034079225738861791927244526780299359095135846353680471282529255955758046732374065681588459725892780336482748608187570516657223366026937942057931768046121376842976457261075172970961374202610110568909633976721689644377500166499420816211160254939342833274472620632425632572069523479151338854544940280896234988069373884120489066860366190667386188182323071498634139768709205336676194749193583459330142970520030179833358529086164625558171590543535746705079172178579809162250509713679085086860083446923679074707439827153363140118099758559718464374404066644299617832264248071771003957501813651534656210138172189484125939054505733653351849924376828822407031463242305020585281016516567206409195235394069098432443578208090440326093004456233775121866092219331199199429992293756543646793738415477055948897434227694674657582525612941000582324502810049258377110652416446778777217364862045130039515310270064429172093894442013640912928766513670272528233146430243825111174779451924508225225366681137199723960995398839306042046667926050886001787689289077518488368477385109107979187862636499531545302148619729882664632048157001168806905908731837450321662555889684147809544993363889226431846477969429456734196564311397854971381088213103048110227749826965933980886133274820034728931166588408032085537338971922951815439090368177848522528635899629523166505831318111974064785944914353083403588346617284994586281496027453964585416021876413090090901909879012645010176102039996712191620347103593835709882991341976169888901458788049710446084117725150269264896692912356073834351752022827877359137319904233574626798906798488299777916773768275111937675902382304936481222040774234924097723499089444043592464112395026606325721593759998218484844278347345877438967503843922980544622260545863787950151101702863213423797729820840811486700038246875200800433925988347478245785718775409675640836569008213331987718904855360438695143769273253468425876735020455683091138462866467101051802830119845957888304095024963671013072610621224338582952810730993055298359944170724706685200516789750945662784077884548712681033358551077176522773542716128964017349775462157923183866160393336245761910370971116855441258313348246412265787924323837119582638650580885704421441860787500107562211827399696457697178000746262356515779634100841841613628327430824251761627316784544312655395163917223583836730782178521863004814627616360718773855530823981889203254952638008354066368381052893551449319856931349194374222329345887933203596487937545382862484024246478893601116995370702183738643009443149492218128642368871205554369122551372455178764572554472892939200849702028765862438744346262716973660136680807787056848471401241423428831938022153021995823461249423768664360094674072205940130901552141420583359839828664445004445255139864099765591920039280183641480571709142469076819769432018887076044561657808456924475912634630816034210640603010996686068616377878742785938014934615472988109026706927621598674260255518260488377857161546499615700037590021137204449097034238827765110952191398677775416118620720537986986961112445941898037996527847889156821967170301817916914159339324366175104672239219198703238549955867072452021316614143590275398567193685342096056651343563800496847814062077474836272689870998501899241592730247787965849525265561216043011044995363129656773940967885732620860172151272969512987598422573044762474720793390213035291572888581894310310397963483152374120186453968576479709177016543392808596073179923898308059083513933042964671115823864392260547945840814185181211690826925979736783586552521400690959183852555862090159400704196488479838530743767639024782480767847073988169353731545424151321160697591059799524635890308299130462712983591133811547388268599030591497494440067529275646099111857313506774856479543043426023417932423686552958134057172311234031306546866868740019826068330148402197613755753008955721091006284942334562550515260708205967643865209475530444352126578348555949496834162636467751599396606865021720124133857153712334372359644230824794396868998902028054451439357862556696629119136973234390071952168273999603693588653041019106204272212730478154496397686529418177312301337766897565331091482751697351322450852947150286793341158689987427513321057142873151083001649565428427302507981684373267923560442117869300262876884285955243865144733868743802368190285532940982615181917826940637527924644343017496601941441912363829330608109566889291527192494537937600607045908755359453811589150494367485360529017560003313059905942786230374116697581441461145032798661867921217805762688777546014558500626292655680998879370710753912990228164361375894293893953537857932750719699052419570838308209575371837201595740387295731866624307942596533131625518317297607072545828137367008211534916742633815154811127960617650584973025634969657976894958048881246628129258826847783873955358387354572822434726735267996323292948744711810309152941545075610020563754528888215486779330347005002121964027996932845426817417509956435248473026207057063685596591980760271261034460734878829213168760525632852742034607418708032448723807190828879181609780804233862916124915968366196036879741321877794264052059329752937307536052325267300033117784426913069403913487688531916336008646257506226230797983733948625361909574359314585566092559802405367802919117837000929595304351153046379151609471731206624833967373237878841683793778575072421809563281918337754909781263959753274346158456169291751631758301056224240422030797782705017343370806144409608757478484314972674760660361376886427866294964766222686746488488163550749439360888611324626486831043420316394110870742261887150564931534459607629395309567955159501106234934397286811517890741596033596065053168695657759613811663218278451448555270989291517886300930199176014458491843550257513326073188999958397127150163721362630480197208482387061414791844622636367671157684496492558751927149565402449132238309091516628385256367216391533447762965492773948504397941636780537978704071249570167732819998299257609522258756246381930548087353480181900544087135954536051993531485259445262613060274259480247135161984056829435222968459521474162447543860933406167709469759112502235139845427363188742911068781612141166386354336023054992279002729893647129041291556651100454961463608796554184490374580875257835644167762964430284373969534489947847737135610130041048047556617659296358508097880804008775843909917325785232677441162131749349714195214558027668850720950168754448676537472182196407065391879288864600453378484472073311370423994057456667559253829947524781322462343347505566808853638886805408611589147007818086298863486770453488169006877262248358246748025532046965044330934978998022610084712036904318436828378030409985282746112180993173607236136148390033010114443112574847769022622765968031335639262692172933888048048591985021576191346621545000195337436540111965535243002135333137496706924367707888190737514153292993962144311175516767942754920568265373778727471857858679111162876450939445227943704416293749587616875336280149875690430466131481690867334152694117037039098608722089095233087096928690749053031091030038263635696141801174188969834390690689820570836560848995023859319963729785043807772604662515336750767459998093961645543689346446306981328255892829809211598500425793335030499924453500977554464037865803481477869979302148299825091551646976582040872396998135727606429444716015019104550618607917819323647099350871647516820218531279418000058424280015183085907611789593880546884301626040248575018904108654765552411530927226465504822667138368507830653679856416091840313070309507214960771085791853973593300049799056824773629230169534126325386421226931645541149836131677689339592709989767239858902890841722383227232989589932033316640545574843683108136219969544264875751019413403930743824294059016126219633625678235118166190360026990049988596457961577138074249373549625956308004906247770853826778158868866572392751646469876463499166712943422160956625111888888255013203640716606805560850401279957898409212900328296607628157035240570873942127159905295710806712257506731142205758022640499298600939974602803626751443837353368111666133490692876340670612177425908373681370303430109832813678287763260484378997617187071717657062946646215342726775428595421553856145456566953873119735091396385224320051699161163237892178855867121871420352086674195463366765365787500960665437438687358556504806366042534144364069027201205685849127731128468411833682806329718270065151871529332026445518232762646156517444528009819989013608778340961520688558059135675963917656412333838099162573345174511035641801660876910054556064878599710892142406613758922357786267172668798854837708272720894507870876862064575189949466630761807443410478180440775561485921064490890796107763912806113024136928185025086385432540066365866219890791748857645833436243983642281361974017033410714040354609410991966033239794191047891759210391013717152194007385867663756762426550141957048465087438711133399766131807886182984830251045971379731910066963529517385709313057268901269280785735004864453808729553233519012834821221759233725648642678132414637046479843161740723721825037204502763655935056768800558777488582767002040490206049285385599774354940757169125253974882191093785146583220529351013874537607129440505533501723334520141633205074441235850904016283374834613926763862714817262886032021698630986392562423141820455118997567096484491548248685781567678329111648719236696248104219804075042226188104917557809340992026661333059381445424362876254767595227403756727288157709807453444043968923001393266047753608316308307018917878422016685284727251497411663271972140789544522372044388324957281406335723512530314733006599186991444391586242740280842762648754357287952892361483521644288133325969784689470790727334803344249884018188703419666462608413368156543338562573276404099949689471640387498965468114473607197021398769762274146721922643627321794067524123546584755356196179719811757160575720685665051864904172227088896895564203936766758365796709332312774210928450802544812521107505879379236209746366013477689826196588711926078660238068322554118929702147238356522726145654440294898150506860392869268452970060852311598969549850634479579271394011013387682788997964818120331472088669195252094712942897428154262253629545626250190011774870854316144809804824369535454527017444989584031889247734414116125910373930826602356502239925751457718415483346671955669802200127573689903896852135354260703917962192761266841600262524805991745688540819545947318069350125189204388838434603642256368278280886217232038277912116459529287007439721540341970949495182006108972711385055103797758071409842271626298695435135172148914159642587965306057162153606065050228831369226311191111253508767872984277383661715790125897172613479312012299074408329498261605610821436580720685279609457003152938367564834934692970253078229841978138757427606113397883318004177018236169348275785007175420148085233580991028955727487030154813206827486706244432244115521168871038877161488363173469029258336331663837985906555612719914277843920614434477244368551864979796709530851338964778195955256018603248243177086318363156229917651341806249981766630274960729739616780661694434769567605225901372870060797521135386698590118080922343659045628742780132546354576953728609765677454695511535517121234862647368601034342533568396869671801885146353513996588040825939947283897789561901381175843963977799312871257299489074499938537980775737263583881737969787578056971143484363108840011360266784460885303740224573369975011396923517876988637580988606646105159276467298967942552614537622265525738181520485153654248796659127514661484623054015896959641346870839698590317226355550900834200746815533678525421238059520842503010862329037195253365506507330111256097200224715768768346025454135354808250123897183470771528286182247598296596455739060015137465086413179731825961542951692930174282974854615559253892153490936124148786229688606830715553757421555663476414192010973252997099014798019590381238142625003733005461368484503028454937571818541428003907092773205127019678805741533613459158162731950158689310472987708525443987998188545503858942099782627807539043772218046356914213538626333914185787974430715568662467072553319726844557349737947862445727482794082803071529424093090218988593859720954157644158014660355621994196820498120281603451446389368544984239756387270199939522206276843868943688786758527357194982542544176774068162418701967649198089852212440600302030252769677829250431617936788249395471732110925955829461918254562849344927312776167447339155960364168377713942062236695616450636971861036711636842008563850656340081497529816737811743624044239146162910586734153457576358267919623047018433819225367079192762438479173225836911636926718070201339521533585221926808556052954443911596693832678678440933227033948779135674916676923813058603304652463885078987358199830736651112632558554082387984547220352771966004146906205055808616426636067644169625426437715438124486821988831128737228198438925518278452426579077226374744603518996983860584286867798847611517005423380613795275226283432219842864849418536214237070661057504000022947475352681209386521383923425139442725893597863339652842536749743056197500366184291120442251349276020997296188109185143415669639540879288520928587332594648468411783090817718690639082787098096537391497289407184667204630640637768925209338951982741793343667060803600968509091714006994414054427406807458100386027398300014302216216701724600799248220427715637440164732140511872724183829810286984083333656462840027111900052175501486550867953985333850698674033795431405940603364181845599249808419274510739207141034788709586499430429163943334485122793255996246293010982280155283155696401716616929123975677172959133842718113500358112504957980309536556171062723331731241920072577398800378895015763301292523689210733669778514476006648827843240952053112009270354744318401484495945668480534925251430251660121287349793039823219329966676686488405176870233160796017949498536809402591545707534513666139198081227231404272416469603597811063727440002518285899808674959659816510044115454763243245428632259817118435274227845755918170950186952312666027304423479154409208051543737180583041353663198388676746908178922478461450944978256024757071403928678975327471236661853214230272402586717110544726314832767294219213383520682408923403214948806299767892730125712492566141600793015479496473713627718968604688937673524635328789110425129388123638240162377602588292194954572155965221545867233460805360106494912457981452832063981919048693373800153189635416977037180060498120732616595000970911376525784910706399743325130130663682011762969295392408267644699024678200640687738960508271484047700794660417154469595179028194270203373184165752551475104545284923407761650292996105508411379234017478838191146726204126051337950997226090648648332741539886414457516527883825152859119262716275149823428589945553371090619361757009813422798745186340606107006170432313747114446077364028303041639533371587679732669005231166539662902653262855306405214876682310102367596779584340442281339679467888747400729643689341235268770450783079454483238810710750502069243219209699071346949950639041908497628031377258034008184560893813830194949094096324730397081355437733583248501222212751099720998075451811614305741912008616508629670193385367676040283662655569775915648084969505628963372344192846948901526149502344101079710328588750363784306397095912691850085900226556744239055644701417094757603171128961221556286981438913599759735488467878920288827729776753710163850301985544881251600317036388890424823458659705334924700686130903616493499688064517930717674708241251503532668684697310767778090516969843984486272427589806687823405192232689701354484191315733798991523795393805512593669289842378462594604896481689099723686751859111415456817129410130198009042107678271938712542280841344875209967182844610722583781066482392967861994244546284379198676470182107218537560627689488878617753064303850356700923818043471165936205795339430466983851986308310495712316600265025795776328286190892133810033936935089057939872561891022577004067991655037983966907307112337894405051000024055690780288696240023218845181778625071586450308334220471994678946131315400796997801290890348813044242576367094023892985480824022961496762986144425765874699873772942750861667008391204461876508197128651131411159259692864335446815816834444617335274274000009015062813403298764333418643250872788541190429688614803065379137975469733542996378501096610485901430078417006858816880374813541576977712693719869007950032112485178836831025228290500131835708939692847257480006885994855821406612147958185352537626824702759755082944777463905083913896081184085051277771016137125760120287523111274253623808352569453950544670278128935078841404759624950373845016115844998561104835963281574893864423575623548441986606593253124903499420840658949115073633999035361408346832711460656611198286437040659147938186146812001124746751885370057240647879999009806245456350643279075583209440197537034828481919655778022445321543567252148026091213071984065750887225363965695563588014051900521252023054946857986385522287834858786553879397145877920507784269670803300504687650932566569671404566024913297414923554912783049468661414194601939474511805789129697791514409534097528470940790959095393937175131964186727631638969262500131652425027043251163866759698891310923525680494484146860626375261286787845561919991264181463490002905909925822108749134863382181508891172245589765173995335286017178960013204636490751425179155749265847675747036698453547395487733775433229797253442836281522696206660371637298665600643715421141746680336765455727807398016837356293159807576246177223799726704173137537991626703400721108703109246643180799927566421844535470520124906176289829966640815347162078637858919845975191850085992543798087025775712107170213074671095679834442600106583319765040782776235628410659852824087017173484342974007263699400220019050335895609120085213631194115322804782294696784212414595132400656507899920329702789435191512804593574052348567933245367355123286988479624328906898047911507418226545285998190944415311983762775618030227414811447398521712157456446408973331235451363928270339698424356311388108129975637469192691694659258240702129029468090915178780460892467704953861356710244381022922776418765956223744893443302859654740896844089050072822295154013975433783860585593812595884767743765150470876964942668301769641357480807020486419947007759892335275783177285760359113969296086686338031084643077093822330535447637676852463283297703100141800745794843065073729655821958908609474886488569168573431804660504249954666494059556340463058488982193850645816441794526334367967461244655557883241849213670191268354618198517552707652110905261054867598465181786395241859393014261876342880498012572105345351436199832736512605998072478282209629226157570669957769208433010126277050476095274415305631367089305208583080560410165475723630554517916661328773148107710042230942109896498982179822992506240590813575924520742951157472732878466308911756363690392127538174576720667238387556275237598560961396182805047255247734205178602757174333651539760883914703678534774321081560131133505298692675942186681633356446788344892554940667970425664319187150044218633915488019971786971973416047963165906194874626578085200460772179964274988192425387145520814891616199770711854416094666027716467363080248205007775679309341535546951737360603798186062007710698561108838461628219701153273749683850383605808673610043711790791590515939513667207075478031679374303762007793338759404456564443679081197877025166351637771131153054479841691478284693275498152589803060981408076905541023125893106935931833841555526446662681121848132944252729571951481907068362679203888570651929322946419734629968512778518288518983188141147645683011883005518432570100426922181758604235216506197646860272283106905914518445299143822437829821041794898129333211839172880006446846641207382540262789460079004588595130871669226987773758056772833909453172803738330409494365883955214658839901554470295968563982828080492617078429182852789675476822167392035485781261898197570956385154793192855872579437513743524426874794156288302406910687105913293617466429863095873385528611883509284588417349755519553867182538436870334268336931238180684484781100660785375955676994114023294385313315783047638209736538040840601361142074659864428687099615041150570154563717845300295509015570521005846372565831051248562091201473266970927148465460663073286494251832268627084574967878382488622572080445602059988483821052031759520860925497995152642515492745902036088378632180770431351116745623678154859113614777526356945755427168074366381545917485408154546561161778001991349045192670243286521302153111352907153312468621505093664935702403667690258144699520064615190717758368374716491296661495508007799097135062291674213088618550759364613969046753089062758374227997821905820833173015083530505019248010223119597513901619119872869035472531068112656858172943190560756572577042220987813686298043596830406289062561731477518111929903345959748642332448982995712447063924823672257374555459721490947692089823274851382142879135817248856344442999347805876253263800117427323861278703775468566171860632664083555775798998681231345176338799829267739555669829695990006322098446530708002003477789730388828660709432949084243310420607415568972305600048499809155998080718330262670393849050965017362735052465518106155570806841340612279680450179660162681519547305798695451857539783620883302800274958616003353302042330526973213893874497290400000255725414141651370931236519586026166955329927786777315955134079128146911858105635058364893076267558350630762141861223619949987441255673495419926770499343005609178290900965333222529301808583468386889114904757191451956283992123825989832390774369455590110567172217688856637274893857908882924074074798786231897127910872042582888357256516697726820156148682744626049844250426440158794601885028035784451917589155826194089551824877957811079905772000440211497103818023753594170977986555437064954048880330146321262901009046763664026183265551835275388789789153857586639465689857637397460755389207836205546491688761417878877380216169330032394106321455334856750239895707729896061430745192429081212877965589784693818100853581221367916191237207506638364735710094105030426680602422035433944936778203242598766361136149031291555103914916373567764140676419418263306552712147955386086972675632288854390512461979130671305321914517540064265901370739232301510874638724345163049068584379532076699277167947145804766788793124845531493127407173459553480959179989337806398444707689827828800469081904458811845434013147740172040176141188861986141402882546178909273499892927546906607071189081095926680671446994856168735953183126021888244707891712881634121532458757993958145753417291468469823828994418370153615643471735059665120390421543817491652272467124500938885497373732615281869829435069450037497970739235008866733433172544209346104116019573312088824481904093042519980371784174206519063923094980541541815624119682638966689108796942568999447392420125677036083208833207990743131395008186228599793014886094967102892965631846417705196146601067721908775629008122697737650812086496432820388425867344867814675616264434997957421650507264879810543314851576043629742629482823281476077084906163380085681024942279342218384679517164275848161499952101248532806579369421573621491735189780169659679323797322382877849054550808433180116727835633444957540627963999237501732898303850942590584782394585584964268586741874182696076269572487368445776805443985983153644031189317730944501009812060026364097724940088880182936602309905851249895045439627470112630616218807613070440737236046833700373776813353948098279737382090832499528822924785651581374595872409146441072529766257571607897251173805355188799811289779622848996111556688978185629122765658699292102597217464418083017438613494916113240163936524945517310306116828007124093579369778585888585227632113376741278775529354638467382037148030939707937095899861572436016401561415380815870748064487251903413126943353768860575308745951598185125396415213813461139334954557977295172798777754170523331050300217536897782157031748020563720596446047456802334643997638759183954354570547830467239478710640446810335305812374899473256765710887411328679049316928959350897869657774982376508960333381743041095160936270290826105541804499062188243768661447512326541618989965687990399124156408953432369038905850605554522428499437502502279984599059844456478535612692233522449770484225152325476745745339289809247369024650202568339196329215620580538601519179788463877895391945942362737323296932462985753997206514448907460449959120752372789590216072277345768148683118037052307888284108638324948746520161456961281786870514585485021473754798296920214935923481869924243102855971969069372380878791345404411050803296438405616356702150047939181817941064384054914701529693893224463474044368931926751512342882097686455912068816951047678471404834126210941041017918711890563372544050297317521859272549592070156084616458129405178391712150927211182051653884203481407616857873117165826217550419928455496042278011933707386558117183046558785742368565380924876682347798902145745398280783376511431228645371835489221025541016354092065582314863823056198443283954769105588934599755631463436039474980837139850824846597644929760919890836689616497621245535443745618415412997131945742206147975032021515728271304549696905535549979598373496040190101812294356762274445616833511457245866335690038100991210633725061464453627336162444683289195324899151089794051624022365251151863079995665357358205799554917214551626010277294381535211502720459277355632846537561820303666829723888948612070904225524839999093478948486932852937577256817696710408925644462007476300911718492355194409078746783109849430043844040908030210157070204552947263047862433148729867015075207107301527637539249970287468082612812206495039788727087961530319402422876630134131656548920018536181951633837080137621422595824062490896390102880119780792563326369306327299051055381617854609597933362412867045458180919758721704385016019282521181171989128240600187483025168140108305734186860052306609062985174348214913522696073077087104889774457631713076638937823196724549997342246370562132106738974579059345644144376081610818240127869357395356348193247495681382623787160137298282406465488897337270743789753975537944283984851907319591038708291298632918915280035107234953257631107676969340509306621165999089947077734553556857953575079972914534641171812669148606137180284659139173349010082321267544567670970802061870795552563027919684815708068901321802926913730342267420364207233109738079971739462552893508447727372024908640344865990813376186212073707550456183881597417214640250165968370661461400251326193591482754990381865268694161148021536632943569259371076669981277936939184301632670714264374316327982524635357686075394419368473348781334306965093737592510648215636015049529061733616857745796789337718390550016273921057344536223985649698300463354835258247807949087186913902728829741134077164913893088934427878505605338462824242406862189422701585506513089044681463592349612421234527802562517793959889479225866410431007345601102679940767792613255698531910060101302397738307426859973225260911124198958528531566343273589378133210652198109911077643272514409926135675485506642276871773167864386231860790112690018598248820743894129863126554967984971639962457583848278456337500794222388185202043059653354619515894893170471379249937251681720967156592625230049214585666565610038315585790031115690324173460642435800815011969874343893016842241517147390878561797749048317068155462802684342314163457449522402905243147277674193766282758537531007724590329716420099094244061734786714152250834129697697231697053473358675008440948179086237366985959273139722897535956717889892620937574920541072495932882741649917964254965388474960519414466644916922316647276598598262510647264562031275595757908639794564440100289746929150756182725049077017213388157161470660579589889269365015253213294586197721715794979157196042360099029182012990050227936346402899769440184734298000466555184258926457115228081739689677914828406652224686640160384097920518593368719333269894269932697130843533486510007603306803114976160938625141246527044173541132007378137034230398024006504113591755918465505120975272874630666268614182733239852182033386576907975563107685054220377316994873327559044251025717486397776526121453001906881499214968216045287199456742121107671026463201719977947341254577037860656327289537971429346398035582344902521934724535760102018727989940616053905546834793960992212045421658772354623810053643119556874106423253989104061054885210912866399619414910869636307375123536925700241066918567680481342684160566338521899920274066729709199306060298146896284363142550287417421091364393451850047279203935589850206794627214316772088709289717683991829465776077251238199840941233737749405308595084712418960642465822952256446008839643820986954889064623784813814399780948068149267161433458695795602594137885772283805521415668527871589440704072747898860112712329923786475233625115204884728063454451772673957185748871340130683252324240837619614999254006723320775450022718305656159235788982514436104088261360830815147170909332209068377704371228825799127127681536297988738863627263999098621495205992086673310710125556343459045533050474556695651614170565852493613616483679142249830238209698387182290643801027355263131290691799323415032081567103352561218683195737033781293230947038391496148998018380990085966071307375730349095503407802370880346929505182183692672451634735011281155803261378039304756735055732949667016253452209091770875327691541280090117162221190510448214896677815447695586022150941034752611858701510492329028042627268373099004684593796680081426307034733766836508680077208871316616271560145604294418536196049804882462061911136744627783357012313406245786626337657379570142336325614532399434454901364708700726193053907401348435538284844077824939125836228963436331272947769573929125243079006080481606383281479535412784339519676174239615051921983885959590417486099379065778485891221825915111197816859219278967699858582706001259725096729100628606215638318778229751151574542857310946837666430040951374948330182456814407654452981702476965291733783376409334215445062146333093270071109405979823547534815518373062209313859298969330313126151290883922166645101986899432623939917087512346164851999316088483144943517030220586326034714669399000729808160447863755521417107931449035963986459371740729975803679436296426354575514961164979674809603320113833312177536673147156301138501434480935590135975062391923360614176059886641364613677482292548316231894380180664562914890516164440007917093482728551738930994815537915294568417358261493439345196991942176761723980653536118464599687245302485532196415819337819209771730602285764311006382418110978029415716700769684722013620775434762092127381927017478490815314353960748599568325534474655109755077276473058338833979571001245779343942997299684595836061383047569181683310280911236693875911989572187707190595019047815743364726631361221664781296124094061751832140399906658024599267894783920010644033387663170007032986247953906376607638206826432009292726021958824764724020655820793300256127951639338705003510048653078405709403708200690114661588778418139296829953047846931597030782921018006714786691328062307510471123405544772892418136596687194068088944766763826424384110106860172091980010853929666329529497672756408106721722196083513237342441275187925735366123346217134500609898777799985602644427748964489603389576291729298063379751501948407038331251568830022796793158059099237848658689035764603419803015953374864004107465472836029088245342269727196752478536690271339589320495102540218550988310133378651946970709834747688742397788577758216125589761084050256645553958437966800586978810880752145473913944201268768060451051740478136985323681760926349719958842280437428584279667581612863683478402102797067227170562879687943329523858208256854884456811384007843573126061216145590123122888566046434103911983595247391254165221151771700058770187254991609295042834055573437812693629281071274268341840048133863641834544772804584609270123465829881574553141815554336382989932328778010954036946384664630323021716497405347805460661386297700897156862385786541720396730394913617979750062186586692860571755863110323004314156106907825634141919719154445888613478636381520845267821297293469970812996170617626094309584539988433989365937098518813102650134968708123470118984983463696313379664079480403638702763210481720979709338349925048315430957507131864807002618652366549584810004837461389637051897691276159809792619651774871564103145409981762352863194071295421391413801499672924142691843280176410348702061143908496372114810132924215351163384983291096907061107835909200979086098423830978425676543081448518334552686908615221165708520787339109929240623520062323949354654090009444258883407658792413166034506409565951563811526182302937267382702810684357535908896151030825412818564542266292459884015058853001260071570548157062584392877880742652677600381888469731392154406805723684519887578305502772932136875437390758499661778312344892135744424232215760431005334448041785440039203926454408733662126292425891866232934071342720688256449847291910067936676482190233445606122955076259640250090579464703808823364109083418400026154577380795809939754656834627755077849258019589475149660640343246294969410949455807365551314270726137768775461569380587303994628342995146620884620479477813402037735647180519985701104457483650749462293718077294649037721835646629231259811664437982844513287817005720970228034366016208692152666986164873027223623199926215219467094130035870902594248037105564393586209601247106097380254405566060829198056383699128359673156195937513252898734199633039899231505762092011417953735997950442784952568759894136650970767395495790751568423961635911943114907498975089305359695454906743218842543475702224865847363979598295517978396429569436010454729827497953467363381614922952803511317723085096551484355622284197824695786208338932044217204512447793454318434799800835666551575262350681280840101954006007545153848054348454151462523040795512698286074477676294366367237749904018322502935272229420249774629519485133223351997453824671700866525283357564350864052826925422288115505833568578648393756576124749410283526416787916488569269091206847324472744339836092639144841335394101752059497378114635337941955747816625965076905224226555809078942111645589294849681941623772886452689784869170691905934198318025288683545284852850986368042724184032488093268518576266790687346627757306107374146575898170861565071952442845246993525340899490182714103606247557927543052007640663429869743617954936188830763417464470668843583610877070670511308833977788188288703141403020744992311393775436682000631456082130278450872903847265378293786244537622910179621151066574003319624451005734503361027727799726171741922930426731676355879072340980274671684344984740778469063318487055610333956662800758101205009405078459986246623240957542710441945387035126630118581373513832734373484618590265232254165361615527184162918855891726542935462167620600123613985485854554135600374957136501100579606369351721569855251975045256630330031687626281648943119475560428221659949554312226823627584586594702903078383659370954174864164008326510385073142918291740905476698084325352729399183140312687653730457100434250205650505279767493528482507412348947354270566085498033716180425174956043578275901382932726399995546414528861226639404661392483422789770229229141292519795860919796226491995889471918052199725318630194238090064271155462705972077842788634684990490322862139923729696646162857440782538903359156480351862015936583866776855077637733173864739243094291351150626296119538675100604135503416784045845119423086181836554472597445173770027795256585985121438748545036598366400369396602992178377080524314135315008633438677394462344058540642874106235759072329904878260798777485541858305684536567082833610554295104784293353674723498644339336305885645416182638923902263608616083850207708448548525025861485671045979429798650442812140272049392970951796269120586708771310254999723719349680912928332401347821223698362022571875133850351131783965350395303203760646426653016957676239502678183229698061169650778424050851928082265431065692513363298426435444326569526101438997807439103788952750517967059262365862576944278877577310439720099571356704573996919654950767070372312757132570929949650292409805379764456672770055541667730419404508562791459324397606743986177545345277439530761026952675809923170931827393438396653961756591970229559230778690323966189134120906253160400431943357641622235218997249885111884124450759117981738397028572747917493348905269798062139829593748131143835435735730259178683343812281245180007735366900814155905594969256175966849448532271949994514067129995867444753342754795541501929883574333920827522350204240126288682772214175570654402188422548853412491939871195735962078759781894853251536672208594940153274977601789325670219775966372380152191382712667469595213976118711891917385622735219261277470540266071665506534930539264062291355902381031205138764289655864952883553380449696789461736647118957452294820016079970110278850619367628668833561222786384729381390029801579991442215958898949934821387035910739124288600171975258772002614703613264508781308537283584745086921380212823401214596692547241286541337053397381188689356996824854218395457180125789234149474189630781718364153256745348473169304739040320780729042967751143265775452868935025353748985000753169602990243316618169866944539297617089289322165946680190951791494801437418977095594373618162280581191766484181571809687281781562056076438161781408798423331739298930989521895742163507323145450052169132214778433770058271500348990966397338037367407755926375225471569497188552939900407939049751883537125379986400126540885448843184154778362886078717527218496232955675086414924015092562583080930849921092803578922828013913539602097220850520669155210273570940959166815176360965535824752915034367028700858776369068005346048482927639392345268360559905829164917159571443375737504303887566687918105050355236698318444279023932923293523930083625271622166748760047474551412176278766719802819090829584843369809050715024535262097643474082657880595712231118645794867221595306898384260469640823904272699930575298270319442415204528003236133271250259591204591239274473689767512429694450040863314738404176236959010720067535272325510028797504862115497144327248086461317766793643451270371554873824047526467837209566998147903181137411690643231972929677980102020169593054409935013343213661422185326576272206198122697265758162270492349123471977171909965612859588419845234615860139133307209518539522045304505491172131080671599979384242567745092979890395604651473158095604890946550208938444011649548435752073313360207367112428695870127369783934239453796927885959449852166311284027140782977378704209533889901517074347487179159093270125664553165346422462491448040194644061970368638536530268763430117887065145870443105617127223368383651606234202892660238521007485783448653969881228013725183954297642952074416623134089355689609968495378654068018445482896386512422625390752260079337744944608953036393982429241870036385241778355222874624185812421433355622725834125798041923225643939798307103741205021667727390839431267099914069474169790350448109720992295842937950997807335694792041051830673094322460162689946470377599338653310222986333278174530980471097764675323334694558141835903026262946680889553479037847809964819165049572090579921028537493833531820943979482157211857358142617332858025575809379562344084911704851583861451133520581908743988603839218501690325464808674921502796031699497228326675055000867363933040305660406509061569367257924027133627412163717345806072303195600640329473969764074712383053551684850058968534182574620875295284160149923481299187558962944814682556414830823389350567431317111273334841260664568962124390848057720649953223935203353958488885009309239819594985835309443938025502665347483991235542627403855485256104111271152847813283049859296061174471326510888341180275140790501863161122265151322276648697421486494596899809718613697078869766657738708831349167931431123904128958463019996285459197248138173428642716468820861666460318970999918743530436493797944193632231841758703040031834027293033581061236426350703429356035273776885948416699787495950248468750625118534987847016544189966288443996632373372525409196820370617970903498506694665394385774986133233699792606902804288986550877074376009204453857049305811361535117124318971451018255400722568706292063039430693071537624364614796633664119765901797964989760916111454321870861796754163639385870351078765053502805776170280579730818979187291531692418362417783322529777387910808507557030555655335388822054420056346636671258858260137795800426241823743290373368880462926040163221356165633372687831857903976193412463008174803061918456983852635466683244885451008785656307222551796796548851058231208014919551622796320224557879257963554578657118841961308483872507764383105693491775570465816499912628138347025991925257040998609317602383168360389570383257885575265542256212509599220927776320088790595723694234457143594059646248459909437856145896777733994394622952472913990785610207955718517614459269284113121267803599457787041244968955281977169996135946060863119540135164518069820783327486276679222819784014777422062161412381861050376123981731106071818511710820080396972653177318950192287589849820960287946857670705848728068159694031560744647357709486218430951125197196525047423837992327840321893505954174809569762671302327630249318804687377583552574542398509700499460082360438696195474788464023606295100679151667105218573140815381129004057543414911974743082740836760302615391439778141522475614900550087984018559815263806675981311601194740941193228621492860711523020706906561293905135265468575636701303554112520641722789103728612338715301042058182969742115216777154337982941596831500881459870214371534809183307087978340328997470997567239115979723604442717507836406690976124213200658834555623448523913012636718072685381962598018333634966309868789105710713897612001385795038477114713861233813363896820209803135143729849571816721228183711790694534820260187170399481294438188819162200494655755356630653298953383863151243504361619075827808847892409403642715388197631597489600005169390592771908118699200315707849286726448887366263288754072328422942690260408077592863924663961989326273446095084747013120439941270011706202397328376416529690391343878915177795038218150793214720693289871608314950468300893703677628893393825764229687312258168322089881811915842750321720832086873499292238527877633657320911261285100922667903058934578599989835535545355644647024032489839395379660165050665206768021476660820218034681551407071205865837845834777263061464184516279086266001642543302745484436251524540472437248861192402254357736822127028290199705443851735525811094195392211593222257184738091886973008779271829598039313037325217894850123093580481948943483980405890785223873758651269613140004673150680318397358780923692829716437344934345267162900698470965689781147366860856431934655222973443420197768940356013825409237373802667167978860052644733004987665140061159165976017057191683711516970614506687320616865172047478692329448058200613769516176319808737044676151165745484470059473375052154011751178906017020261424676600923521587746195978592816927401826486294140989361143690601472145972510744415861533705614961897605121570021736015714522368630538155796848947168180762329392342823534840195242317884649469345891159530028800089852619792003774519992778977786335498028116579145905072547005879139713797122634481149479839378555633413154984512054979514334434839888328325183862242231538430580823575586789300649113537084684897358647858489667941418417111999574541102859068561342696637140613917245930306350538992412109988005579944154109097619000000217456913602711638407512342733283515126465213191027054601009626591621872178862430009096242157566829541613552766887915012534673713016214718007590459641976818868653395092150564355628790218891951041863137800769935155965227673948981337815162435671099184595695872917303503278520242870896974117986348301886393193623460015617303065417212291332881729228604526512083805664983703329845599116906189464319984458748635277801691155022008239211184231389286641484347582862519384302398720551587264300947814339690386220435108981832413315691167995205947747769825783243522537433525511831413283339745812259665953284969489463099588079852445988786599715331859665669312393054043880244884657153081173445419185504750446125519389047753143390726489137717185988574724673137791052645245272881201347401471345957148539695580610723939335613224606439028150605936279328640151310358919641661557203274894478316018852978224962699889813886185591998971511478595594329390160588045063180127302564188436257638164150712628812229226377862770688088904243511831666502858126690780885749878596032193243042226402784992468518403289335355017983408898362561203099529489014232552360964452528326477947325813408870980061649303050099913626925848579581611495426799041186587122813875638588407710132976349373428522313794502670264821460786251011154608753119382580966021824073333710027056250628545273390943720063385671036341636758028680157845471090918675610590169300446195921586900494257172835736070625254032238717446269446714381519705426306456953002982827152701433526380594490352170479131217968428737955122008806574926435254292650231152358188942592993421676054491984168478487369575120716962178397710724496999164615098295046735029709807042481129094918112954428566786859637439983268549526719502570246335061334374520430013631288728742280867650135222199870424234351733155761304111178165796619385831616504660686240158722446038147447423038009377543210536596115864143886304421374861237661140601624771252365559441412278945984755677481671477589580512292592857254557588181070748510110318426085065403853326768082980310829200220352268559064077531435625048110265903403007987049722653802588164899423906271705613670660909889564833980016746649127331292073614310700861482010923278293520102799504193777660863048627536093505786840479636520171774536374057709958506054017594993714204618946164703208982328427038668849450950789641298096143136635384985906980697605606219465943376004639865504082514594073843251908717334204760935422981889500835733852309232767367175411808524958460803329621916297458568289787342947029159040386719428862644390056028954144842509283378880280245499019877063649312206428039354693778602439087826645597656820269392386199880404848402004281282308230186116234518410380034602495518662342804530114837633387122767444650168082344539301822182142572530402867747407199628505604167300917060346918634540664541216373057721958740849257269295974686892883978151652036916867275455983530527458105026187667933959810520033756478936727330041065942995821594388445237679826242704223135923826335141202743396132272258746905733329814974566061568805363263795754837171617400697206849746683391832821514546352322267104629428971662400302113688912926330663947504974963411807295733409346520170847812785721574134803083350761342544282233311759746668893450731370123429144918591553311698827126527983752609427230151649508389105350437507776851781867804032816069621421520556815532930365285308564032187672819976825282480932401096437770033526369104189491325768417368088630423176313903187966604253280228010814356434157464189752077906108250679316490828129969402060575155733523585038702367990953584195079696602707584786722421203284338325501155523086546111158816478702280898937018885329226745884488765808385250413033436987979617654012336308353354669346001475809408853948977337269049655005730943397731544152719765710088386068197849500207788478569134199475416960460377374403966837737189853959599477551930505614336312674027814687975575490214228986994131047471608389286858584707432858885415396163634673707008075057594115646289140528274088874135106012526446571089299030219150393923665555555354688110171704359157080747460824122538592174889298705626261667407002217227525868975905866444895424176063351768270876569024880245032614615908905022315556358671254909818999758957891741338061329728232099261927766148811486443705633550344822171359421326954339958008322327967263400468127845479936057530926047031351162395988092785701475793279235104474194568603645359171404942906636936112804946452269562019755327114243634438253855495915562712096176589020495512931217482569861906429828331155526862697934848947778284888589436626967247527829349939565800958503618141121164146265097348885459078328307874436998374138706034896388458997633272098359408021921913408433240950724520248969222168464078705512217766899699137857361321241817248171291547184043253509860592278656589689718412775922148089174102427681141040074064266923389995589987477868231104770938238515120116267336504053149846858171828597622097073560691485394680771997597275023968943384029640635782859173533711319354518486783202383179307875613590848806588312271056056023724378675231689021394699438937408437698672778915465874552438589744975235993741632518416198297341880350838550217163453063155932519682252065739657206020843626448108661338508795742768981934738299176524999522816697174124205124793014787207976608430871513277003254023801044178451405119199593222902029061653629826952483629383999738321771436685115510186853326879043395005221795242320398310833193711353004999642395041247627429926729328971080562020200866958720413782265267729038196130872055347384679241896551797338327009589085655547580263590269468590988995518494407187641520097074896988622252172625283387454477005955542693750263143985872809628732520878205066770532468633919668793126084062001996402506882156361430058405446053176449911930993610508473760631842459005881640313811150447840091990306717080539358963379615238478821713646373699850886659472483569237231436236491951521252583359328353235285125519299432037955165895257340119338044616704382481093373703179035134611026398814918477586728635204689883883246911466755189375825129634486919613394644458752371477691130415246453298471339054138837722855879257198053893086066548803327170946069096707479148610816621245973392311149562282515183488086306503900074476944508889570700975779750668479625364947628307083659095408701205838328764340700337642360013976069477246093871884555421450944285594160889803702920926862026243988836492540694996161761730109786239480432802285516509221433409478018533979899230382549663727078126310338892146727757510323728719063690675228233400481571630762604695897105646170587802640205828011097153772571064242869284007707080587678401591273821404053316597550533642654987990891537425531624647428075356812767458022815078376469957675400670196770273949906033427284994465956723224749803655622815774672075702251211459404915117893889422521531873446460518074262340234625105536762529927700799177248435171258424563616467045839607107807292300076102999705190645184589846677655210958651845647075168335030752358011113264750879629889461322338744819512227511923163480529976085804488073853810926335708145570551466859262557342993490315924430470832516105889099856683149091776429852360017315361214695957431096810391183319954643779134392046672194747266286230001370363940160730377807990179426166299273370517423772933120724841851770190522956306304065739447929534183998972595256975496528150147119905101461863509133332730735081855423528748367637467114868130907946755308044555739130502111375384351286327503226888559720846057471513454399497743631289249083216807156792846363110916117383132891511398543843377408399450571052972504546367765116596824065438343659823870466711418358042528175233298178187366774073737381553626844682928033868516906418259664965661712799129504088978044673007789042000269242975723055732631434806208264809402386056994440568998398630501094941642676065855130785356781151690644476977815062635458075918686148550946262554483382641171877796459085966435542437588971871487940686302316761466338891476956728724708650646208541222962503837923896393541100929893684665148218873266629517587898265154573691726654747275067057795165832234536977593224838866797595572666078172993560377511152740880230687427946956020903151044432616785526293058875226927038773985421246725552188287290670602941256541388309152882137242058194990438570613666733510788496645785836502268287375539217677927064998025864068239013129319288475340921635929507747983244437728314181032944035961889876097950311294096171811499552081769101025508608415870317309034499177133341320768190792077965287783485428459614848770537563361294825121274204029514163655461353495246397278542858422105584132474067313661426994388289905909621803859565395240427762637404217521110528980902897367925317246343356215721346586861133399683550681800474340957080413829884936775117930542648398556249547419692331543197470494253457333033673313173539943473921360233700091651770963289104249389083634961191109867429295703784274506545699406125663742339773855711174185952298496266373046654210432524033716045879466233733969315146938743960678688863815985477768196579613020530216127811371567159836324389855023011941460986123081220434929090914366283090501631152261180286952085072849713541989950994384485738307418951375542190756105939731370469060531953311226049803659580149325406041929907761093084871577942970151514215216589712364258051814603968088649095612030091523985749304803235214159699871337614548187440654322867866913865529344608154388935943597267896111221108157418917552352182262345073746372138934870794064765164843927878123742033717881418724963328817980057257391194629944165067968343799294905366074265616187195990463270420043660754894539645751814737756121084142794090558700933309442544391732043079925077604255296825606832615510060510800257538374019890757526987872171781712691699608183822323567603737492246712208865462530853094982299605894135390614095644028005249673705822380212106957839633613024446121778588422499673519386339419378293330884003134468728707037077095142150550212737626299558245468404749124241909302820996101872820157271074087323280449376906839206478990836951959095165262346663379601857893719979876479619640830906667217074319057283770091517733039815775153965595997333972756466349842702933370741270255523669394416067352615106462825495229393227678764329060217433878276983038265312418271821941758610173451595892004447181459146734597113873860684011933797352316525083790282504781247888984864366438723258874096390634351330956184852780910242281661431387798504527241467849985027260690225481063328248648428812896169364554839519501806472480163477121528286961732007856702367558314730578281453283549668752146734603156737173932838474149628791224924983138031025084878129353553157788327179436386225241528033694470072520303606750106865496424350475451847313547714373462753584401876732989328095907567375098567984586733305053076368997069209872452137849492727099188842144598617306853169539277517387793566365850924978991181672604460590504332772937836794840148149416791907646835263908283155597903188139106601538006940905253380599004635258929555932549914439170640608168275842633024717511964465152657584818486948691495657466975354016193133666049787091787490333629881751548067162549881749797078695809348852084342736448882223222104670786553389219295459951412193760383623432263677993738273727583490858579241229125911568806356414502710738313473450663906863170773683121935099673579315590758259349773743552358823153803020996824050742067981900884138484279988399128414654663502535805711696825118681084367740914472318333667160777213167554515158632079485051365120127927665953945485933719048376117711064704861154858538521609003578887184497490786408487969751525672353225774367646899236600760082444805092370152627165886421031258084966412945916441601921292666605271101069709632754009369227298977119170231422830507159609563275633473986987860912857737892901604742412867667430118701238434319443391805123307156823410237822015741876668394276060109108962675087671465479744929984018524450248658713774110985821353796705411196961988087138598257468393101692882410418096952774408498608605482871963135609580303130454734786976737312527975726803795102562321590914685522707541342859439085283134334223251175070941778895972469564698688271473179064385453177451003486731452274846365752442890632025327900169461300968512713385160524458507206315655342841242335074401733878238608234643791152555758174786588453101638882898620935881573351494784029971322981518279627851455742513026702101745910366850713498039935179817556359078505801836331164277039510459471283624780357910820563899364076792808516858956034731246002778341152794171889630627325464878906662467624949410630074083188971470228166052926193937075395854783330930629154947841631344983730154426067049967353273368208883889928172177426822942320858854691774229743572583416562260323303601124745196783231945941181344070525678089080881236072192637804632362789183937599010291057100776716879140339623393701433352332889313093984370512608703244968955708442434713901647822908814640486568421641751554833194100763896157907693381174831199321315397479910459971505582499634171193472352225933187043609309343434648214795594797668984842688610749019059709019442353499637285812176270707581156642635047392194161850701059676811351687325388911759316298148525567254365183078628396250127380681457097098756858580641468988259286896955742966824343401426006823850433577543290955672652126894525887621164453119076604615133152941524846973170824847807149023650111284657973158643472699579898638950875413461645572590053587860157410189806085677312963689474918433498742138600665589116480994408650122965343705098223641214324263114388884990964989836430385360759740982486281748670548063756307784108079010902826932446261889687963332991520493854899165726822047121114698675363568808092710795525196544472484800332834319602776439568832308430244268674040039289412995515327487902281656193123659678761203772709608921444695922666155952646653372126838338048841144813791044298868099363189686208675123027414131911438079154078989588896719387028687822296600898695564528270869912460746260672335087907112926976421938804319354891125424778686262107402610897514387580160469800779026954117613770435824652075072771889935205989736734081110408237976801076689027200117963816681155103249596712465403097890914363837876679239216677249137647029000867480769095123357195422596724622717834453587648887062158394576833902438718991782640706192718715183031202374594888041281798318170416265942647901032867100088974072304094353233264566030108346998532153185870298507987132019655513869580483055097087616921928772105186637669955296200452823606786764422142992073104231257746523185551929110470790146271549247917168042378283039132168709256331542182689045349645483289403709476820406655307280603153286140198905695328395350559078282881869915961479542171561330496610230715746555695737463291782498598970821824940195360859601799204096212543773715662028145379916773168668451194444231461608105603035861055602667301889178192345818050886340526789191954241750941658217362115121430666403109804519535987770176770128057567580916167789460650339061144713178821701273429062959618180395902531063156432295408000241168050866151843573365956636494848715495275403772812674163307089366986107526183367755644462963715838256300816985099839915425193251865954815791686162131735378018918621100458111514531094981009801132452686197888459677374226964313600987670207799065690494130615249649141027752033705730171248720947620876528119125259718692494717239599122889295340620724165616635780685838095978806659431829637050183886295987035664956245234285562200051299496100324191036242283847911184178822878355225719202894344066526509843034095160907739230901752880912770194836041941722472450457247777028977278407287349995973537833029372675292135616835555118047164248563898581349368335937523714257240308627730850670781531449299681703027207940225526049419263693119173454365507625092840345403590974097889873581152768578124714657944606315520802567469141964763048465536946020660190485704751221216018698911350708726740868931944321404823503171543813312804651984985185668562093778725110426330529296323356971713681617324951547308684453987096378354182663627600494006545544532492777693422939025355081027654656429338726996518634346734714270417975921165693651940229263082224504085297929910788173842107340336569144713116947802854208585703940463213961715987498549386459847033407922499156536575444428746930429995345761380750895125814776993847296001869288174063710390533644172796697536186215552183240086456461072557180149608297154029437246280341660637016091423345490327821941376512095567378421716763575804398345650086806132167624978902366435046270676636527002827538047703082612682192967053003431081976543238393515648285879690109332883524384368061566584841050090020857434328009906099831183869769443026381943080725429973587580161501153144203789844903854839260241034687147139634499365649332633359132447182320495964497361633643449183045540162892640113754523690554012644939483866798845750977803790046629292419361765023643971603300713197137860830291862383848297767755557288323528846343401214866660788676385127191994898461261391896147308647468893109835601946391527316334068077721456547586453373657785994475003394182451918006334320307984776265165845111994097483358946457187383970499040063378584624161347244412389165377168509345858347860640366632385001278733177499615573421431373818754510039526282288204231302078171429426556234017012711645173408413544142112167983868988178841951784407589575749580809416356980823671705820459857176906867363422228061591809303103139724866438658159110142416868360011929676828806534718545054608227551652531018897787821958343242139951628735211018595648427274385042469347295023013344495174595036171135069460598713397118580983785530145647994624966687783872809015756354820422065693119777964983480093148013429815923181460759045818173127928722609520030801987787909375341666058780663765571545040259183933480554303705743726657490734353213070903268625629871678799753087361890161935800477409946708014309275234088929517433889378902604514193267940813069444562410971201405945662246661169115823069261959118627255449828237601393946627808093102238886413420651881286523056685067071313442074472023319330298529272984211527256026992086304452081569354217673813460309543224928008375269040069526469489041851837232294270170513602093081673019064166307603560042751749187288527522550901167317323637627404041397063383881094582812803871730535531443535735494515894677386666885857683771065665301172551754183473071743264709799875128179871635035378201797857977059275822447014263011533404950833665589206778159978137334203272286467226993991577489050247267068874996649089391939705868076161576538928112822145635928772936415742507577212382196229726491398294818870851477834595112918778671100767931764116318973395130077418331771515551496874825365726328170864119313922811572877353198227947655764650751462761108690728796677461019394299922811083728440542192205838946829267781592495558145359994748381135316036057349853759077194450588751788347865290467248417851067766699544950184852412826596290140210726687576882191146446459479055764903853099926528178935987374861671976099305899141941455947298550194445115531782484222749027871745100148560671162557332184856103889430573397765312871505085615681732051102181971032573833317202744607026983828102745820964057919985816288007974719322829505750394927420454678142582211701528847231206381319863056050095685388084492730530710872428736306119345695725883548016227597991832109301906497391035649319071603989447759547269746047324163973078504228641495086645191665640677136959496576055357532913311901853826812494473663226832214193013920635501283574835190846601989668535691175004644446429054772066093255186430475600227212357089922453121518951135621026875127160556728115196500062416178384487354253126155027939636247253340472508936340429910818271867122676286746001662828860009590220343034996492880537259963730683573010989112259156132073734421134621608333004640648220455097573065112675336940216036967731618133440034391515688244332994563192581779134381981390133460110942413750977238117217919141681578040838777637180268841517750121724962294579625873789634537087849709045714353651022547798256990651732794724193570887134992389321225938291417407977695363426557792722193211497890993102525027446797530033459199944730531165470221130208636460252691075466055260435994724362379469921415920574155687745913257525476058384812535294776695577542958137169511459787337748857046087246205966829430470793308685664881975158395788026311801065217289381659941913959662374229605579942255574927558022257413339473744443230380885220033173324738396519392128278271642556440002212396477771836479874140196044430245638999284101237682590210403534594602635405117344147882515390665152907034825940527942763494876075840359876819160834066737073363566359389001753922296246913536832576502415278440404098508972907623159799892516941573851828274338779478862849921960653579253249354176623368755329544304433084820905994676848443582292342786331456674225015960850401125725541454004779688426819804517381882644967533563783198383211384614304197898882179438166240962450638812516325671310003955378048705553166212396796921801690084270864967354444131601051801393973518876726712027646739851399722863096907144469630927415440511735540940912483858886985861946083706795349567496014745260553847645523750224927217956795152826021312531387115822293481552546267569072491181579150622331225453058175463856330552152518109918653164414190372400906863043979442511763373180711449798964647562867708085633027050957006647374403890359357456993834661165881425811785896489648753307682630173335008047869028093031540508946838131700260578664485782532468629304272381014697938728558159326432633074391672497689363273104899778731535620928003219486595350409504729237097490537515378506065102846075453805670261612647870954636424406904270674948103114469527510997998192386438690098074020933228161293564125184216122378560642448092592421716458702043221574385731079183084717114658810909964029589306373130658541735401359310355914167007156101015635797986110405323104182183533950854932207972765254877995605006719743306995597957724450136687173157315808704136787848481943830249885896480697962378582558781101537697135107997078184086211482521254274725660187875200020793478600363591847024776791191692725937103035021346144872406902530663085383376641691914836523058358106259422093512451553665087877138634917500208547518799455775393663494907906513077672451415234596468846864526481452069335072664420978488386532223943421411976535477494801658626099005031515372516735618976427562092850177752689927288812360874364010266926852544827045568365261028936023549506683048057195331938170031671851404662087336851330987486329510824726791438104302474676506600588896257954203870530389590289900611875957812867389996764952883494199366941135220144333226570322816348879111403269805767070146016611705060835120953576456764551277284604262491511266995663504342752360570676592270614336240663139793044421073511524727150571916355319672294551115709962640781147861069507853551268543316519763327034385917970950814234237651417882360288687832719231782836467336964290820826261545589467104378564372052474110776264852227431004153632593102640221030699507673558943431198145799372459437299906872677057993131161792844938761412339370359357071591997639316672802509785171867370323271656898471666582758662689934174027187458895765852695516721956763752570795152282534188983425769184611429602495049663342694392628928355343411500778704388843833567311069471654849594790735862072334029871126252169665265912999515411266709355315598127574285706446002548581232194312484156728731618278538400213671779619361686961667630333628096801241935593969176300959183927967192709317760004318149245495915738414614792069995834178268354615539369925671721478456292811128949779244519628289939899225564688810710825979639986514484031948143336609093587418916271184251083781468720056826653524313900739313156517367338136942348767838307664259349771774226783112761957118148550476556415734177151612537258948850931747780491980321601153253102242337956917584974645370953074820083972129374190702885214825306748900823291408579686383808701398274114980627923418729447352841051302414530294275941372344713961069314533749605087803357103315842179835501343641673230498692926615545457533957751940205013953123915324098828893597173163998179002991290757308312473031823484968484512946318651535053293018573096705333035237826836677904114267873330703486167469700960772167319190861516796439037702906024837741859598087612002208489954075219763424350944271686267796232446144355562325775640286973650797460207813974706125812465315927105914022642513404635235614815040441699234450875791491589668869981512116436524542421646183655637367531723497521146140047865873280784211148816407411383015870047402210140410182148209673707763617660156112866017730495842587583243828335304198505726830439314751343219636522499728335440393524340665252452590780245467383685592673934073370732833685506542200538410786880591440918012368076418557985849886584041741037642118240805065868934338205510318790738145122447715326203139716066798304131333966585375172430268530716756826335786021944931848126317175765458538444211863560702554208372060678771458863495055167446862708662925106447716083862607008934551766223999990570133335328762824240061482524167126716206642684169978759252489339032902677506075106088151833383572749262500219809574588163664917425662459409489744891231643807173052621140885196043083958603822761193793521546165243926270466087889877176220847286713248689285124969830180804655110864990178687912147386549755623499955353263930237432594582974580721579358336797869330536335131250737107939718779319898848761670302997465467847266491291828510809642516810223554438601364380671983391376195332057497860582007785119257728732570150248778118034872596392779078738595641133372695665479929970426018792421162161050761816093572246688820051698578961590769498913820810546262508569110241920781419601584723785704593790701169362578738218453024689176580501752886606492775567411169010848322947958974241246051007233498093035284509371286853147971763424713169042434301128869411842740801319434464437201074364104605778147580539935120855797973969160567477157073099487194514001933263672463592245877381406132529636744227540717127861510887463085849795887878338733736712302714068165991954322659454099649648192488113438878817332205871347130322076766859814228893447762385546271737373351279153011556756515021576224017384940182124457542780405749632106306526646630686178174173421178996790727817285077505659156553795130360345275996630335160308286230590183492631127103023306186643786474772180900276381105345308712380142607041938658570978361720280851523136882367614002220217611166808752759201207198907280510098134950597780605457992872707677846262218924947857397339947967466949971446625040522465783988645034286407663840675291492027461709235984164004295959018245521556789752488468430378369357892953622422303702415836136208461204237486763057844909127483606308137752055146900504722197639219090557508076390445658647501507396297988381485814035146222600901755439629474590358159402539176109001572261283033496701131605638488925348592531376748660311795778147532564694345804752248557652759233628126522228751891538684228589414384097274327303912411119041144036204137253209162662160287930556092696646859162451143116103213534904035753129227693249554535187227013824409816693692123162455384301357806711865884525697772326917121283164102752565775503626897146760533220744233416808055603908201552358312886005298056614216301628470884781674939129023095452856501093242177578525473642067057598864060396386464703367472925938886053210190906949814054945773341564330932816576150908696662507535436377889055063595823616343329141838376754222172667756780332171480815670326347713070887798042974757049921801404807679859224711305969040610121905643600874882260337245881217746140666084367569907831973882216390702615894695402051347112589470296389008313684015815081206386988212378234636404518508081141914465419538625341596232341131105728666205336267205579603827108178049117750832163664251720018806652305278717671049086841980698537662895368916006238438242320585706954671424045248063063531239481727702689111644035808472009985007879977106606814403749204272039009100931334690640878699079384889222131176976991892428645743807471024741036482885295778796022841943548786996132567689275867885333255555326857038481315698728564540832559222589804248352349083829023195700818324328693322272133768293221147104430054878460283446729011309434234555270841900345366509667100179233960135680217707376694727656664004057965622850325322706701441168658259042486924343021228193721132111294448183615837344111654997754854132303177114243624605206196041558037603693005842844157041183384191639072268175380170113517353613654623944833734489851803365904860988139129406937295319920836761237041747203450997499931855343762318384099825452339736989874892527672951684542652423634722314434670006280895332253154834141296575750152112104383019875882054286188937263788685257778343277021998599289172421415953030752771177886574298965030744068935800958496208678519349428183430093486964341307491082526400855435834454476123325328605295460147664029342912197607313253365032548648573600975234093910090237846666499647732073267988450241163122958694118510388028207776829721521451149037234582129258912500221926826617760322292068009194657434822214686064934216426874813460299775167070889239183715470424439567595784036083679058440337145883891468674753293792187902747478818165161401097541001181188261996321559394532690963303216511987114007052861783553724486148757499474052315976706370116915406550650089776228276178452403107118182150690441275906669217180284122079354967139108285900005115006617446964129794849572370278173487462860663389586881708499322972174097321394361569671315095504597265229399146825243798356005740618087250246862196221318863127190834301772430702529691654493723691212656503194758642254651475821194673528061483742530773979577618838689144735461945608498594944591147512101698867586311851421958018172630870545351411032264420997883044928552962212646429671093773542053102286572713758326676255644730846888681765349023303595790117391851638900362336821922927150883672917238692456510930282235794928699148005706844049712231253434158207493624302974816424756762907654226187622807749352938591707763912748833554034359023518068843142669262585451312493863477246539207102274455279437496731440341431511167708238102898424284383663055252029989973546311318769750132513400551280838621589618843604860486894914776854061842275510657714523091379255045938186841790857334444597705352423192346825514626726276012607203844667099746233777328515985658278300577266287081181134157705611326405997036011743419682104477927623525518110248592430480549107581046050355768229654095813270474360585251234567895727932111273521658150853880341293647836966061108369339200395585670204401990376154381941162752342086217178409873654154578758085118397654103241648104123429137296021727564017562204323285390080309769164664699894662684168553879190466607817798216683893045999463109463945050754630798718570282344028482726734289870072662570446045173129633088461236605233861150147343332732057737652294561885692074784358450218679073724234870995522491249841323764149244561034747769014300023437073703137816323782422504510197859214545116037492408014477892519963136326002792630571025019431793368274032043796516121079073276369260825511886596442246112910078988178607716523015596853314190485803129828627833870109916065167382542356515838550016214589428600078633126171666486735561907118663819848358639901754487676068231358897511730930977765893455522038709877576102865101213596833085822700110278648233413011218481496110851858234439220696787948048359596365483501423696782185501356830779243365582280899577206155759177810007115149329253197489822019392818757107733881427544828798748666022658642070635458895895716587533644754303619317738213746099850184448031613785661765075797174584053615899405941798250967466060738845529305653962703940788358334380689445074265840766520072531712565525364829246604025304018482641545700928896156942749353297867982372211396463838641723580414284034331092080618001258170876989231665195000610810992926877425457274186850900475084783652622667522270284393946844678223850281593201048890603062578111486984641734390214250128938037653646396432048455959371459752676139364691969881860857033641173924694783633153784768405682556233939355438388695425969247049739339169524433836684888922715433451008504290048874102015910846134099670465302627817240555921720628628213736067601012008822844133342038076182573438739133577006039973647374122094545318305739054895520821003250907180624781485747211504813301907707873251980357550148868537039103145962403525384486620203123110511625084750666700386227906605495009133649878830522691988429381660774877656494099469563268850422702237758641806621430325316564450216809961227652137520735023857670325820259306080387217839858549071829885034778353876005140300200532985029544933783588495151061904538377170025496373776824030788887307762760178167796510323046460812197413389005867959672964457496225341747643358199649459955903290413466525027681810344527774718714710667469824595438907536560554861736824434608955831106089689609984454444618309202592688601774079029807812403379125960975966534867255407595565179386315355542029444115285745915630854044110059472336904580151205311625465333855465889102999104299581369599430933757419959398956021521616098818503844697468230782202287338096304487203446568794046410381745086835694017730336176110531278642045097977915550365989856937430904071468110752770611295591204790859245913751069977142535771721399192423028473749020232421272540160893903133285973659860513343729302134995970051272575137498475041142412674123755909063205990980365449486333379779154120202264282614085427155355646197774282303265661065348323651172455967754037687161097324463602349365361578906563972582644408036965664197949257136660368762994452533314106031117927839882658261847606884942721061414207613151341948507947795962371312463703519957408005359086292011113851075790469461644093513046986865137338819539504588981993163802007728374216335154191326265109674439554314084062297415741998355500975159656313790231036830644217258780986347927691927542304718718728801707604285041071353872608548696835585472333776765984780360227939875692459322289539829559868609553570295281469095512248897283986055018663923452282140468140392586274245867746392476528724373695922632182836677180427781477715291958983593951998827071964700233855599866940231952247929094525084750526150805380113050451741798496021049388105199946977402589633889435084372213294048347186152615161583388920485414777428923266362618734070135182628660965284887029327386296007049944885053145365607811295122869161052891664521375180822541789218428969522786401385641758470528336591419094906689270821349396062010673598632509272967079450187597534342726136489540573530944024882740983375794334748821321201666860048440400659680222753450008492264281853323265338004654773359293990782942508916757378662308287527284155361030634957956596737905187350989106641421108793024653442271732748067614472221770616311021547129027426218250509085170981320985378695585674747236336766414274656003258515539365561384678318412152583885560119706784258710210667593125058484372916334270870227987752413803255723781017236440297213794941484574615376140198528273992476759603748573750649897559204303325260973410898951372880852851693311590453675347470094027602847107942257827369048193553394880847856224232149482009079928943890342629986357883428202336657684714439425475117824071186867183115058386539953913830861189010591312639219959984747753547074674421602107429353737901945370342247175575684506514940219565017870755753239326542402296624220342665876078820609449603618311784688394268832159036417573505723733521531961559019869068005746752705771871322347855435476862041520902073236300684506172645929180877959108652449425738976414862815291539986961123604678690424493601661899157294119019482111816907914371490328181342872529662671937064074821301533926711887129479388087789013530229854431610279154558566957621236462542864095291851444362176801378206680413504831632775530756447159034136546688062289051006480392056742541352613568714804564497766557836734214497715390391425597288088345546939858810822611877457401379790758776288368133298322062396659272706715078216110731070297292333831775508291589626717208780823610453756612325891845410814483114070798461868141812381318247503819114569542577572841771392929604530770099658227022067063111096659660524401254474717386312748682014337289013458297007765585416651928177393675057001965270509530597133441686218673573101467065882401784837724802739822983484606552896366950357248473261324646418180411210961341264902708585267804811770446343525681275707725624636168252419243054332179201739237072876190903912655475197183263416372508129779750067542212450637719851438398269649675259443916117687799527809396881040738329166630187231376589789828931138522271783823051692767146238736743602379425412732387288787446243652124998593531034245937437976088387572175559051610623072612233988025749234318917901905420234150633397215006304394892644813127334724368346658585298538859625817028980983881938389303076900835416277230856075688008264269732185812797145414360385703424513708032672163034604345003790585967344111834789412204725419321050647548456883526636335675901723022358707763834759279910675353874029234397261539889854745183779894574836433017653646458346619820565650501609365297982498098728674607941205706003105400265913978509988189748850445016119718039090248616880505269001105614113634253996651704896150631589265951321369847897088731918571062652004118970544017067848616931110408594424841517346143765991519595036563448096189204985529942532957590154170743635809758875372597104361741633727778833264495908872980633461615338946774742471637288480171949190233909064968978014083857641887709031101710065360576774734178701112869736508142089486783252068930518387668895761074093480474922666076415599688458829605686762135886825202484069444762762476064010621058768500697495415474924903260482291271915185217580329329864975017405474579938182845627188278203053277788182068279965004645244557499296039117982843230287380169399281680355225354841952468452717614750321227848628749345484224047877986449389036706754491440166745177031699295386988508347192634482346908643065650488958054962848748633288165490360228839266294631957242641814000940739164660021724031760164222495503915891324967414976605040708922359703591100427904452061635694715891129980342853047431342521309577296090997134908484459453016989862819226136889765528954353351346466407165770673931960872348903723858031743661800278794399060729976256821576748480865144972756860315444888785952213967737694391729826744051472867985980835615019336257867034503842089934196191218714509456816953119854269178998350092469682773949310631035277678931158305754337302724823789225366658345688231605951805763586054390127521241735165062273587272508026798790831754120370747926761889920909855941370670796092673602261398850614509228021474389505719148037982820983327676066037147576929640765800706544319628094091738648238025284391320413537400238104972818441304687702581164124147899124817901660388214374337503576237642333921792758394307967003886935603302409683922940427027076107203700966577278039875355128009081829314560633095638311901943133808014355909993829838964089685140779681355206897202429794296651843777944977715527290359937269603124847636683307454389202661525277987061431019052358715032935767078450004368676368360537765583584426092638866797747645864692908194275930496697393053841642932446908339712312177502499461784048927651901291456220687249277147660350362751851524070840167914818009542746243040459432357358103266722074200024241875202987225589145864281094270999702058195347984117995693805804040147818364465796505001178955384963157087151107479402609614930442545239421491995513342357013506278616012567185839767112757583937354755989682050575556188885338146042558154640215493572490797585391151316809259538226260234590138101492423714309481421217421594637168650626802619187950835771134864492658730462199165502368793893222831681346156960311899029728275696510975755351745371419813633394911841137240195083105581319538024873019168081020939022990961933854955419440078780190585130586383004059222354470979452022048038647889736488065226647816680587602162700207987997943021954916115508353118534965005362500909581248233591350012119344118900106093326117797097238473954517084317113356788029772138958392717420810392194444069121769925578881525116108924872192567367401474807952701289174809574990315571059394747424927251015113479940334357029288469463073681968273891420240199504709864399396941567289579206249819416917343210888940689627609160173642422243303271499458465375698806936091416785279111098157113543196994060648274125932185326819862380506382947877332957087403496547765456630292160663062693569572219566061866540738245310068995562062115668783608904754093162041131330548744027162224476416100164502157650229068574587431910173546777982113023900997466731844004700150179693154180860219336880007437631930159602056552682340772145119109648363608311999421095339625456300023461146438876139760294906463571368485268427740715574959417327127195228632998013128930179617030115304400451783096450862807683931590322296889441292706088335540648225006244426287603691721893697902491526761393707384385104839932525017802922176448977546158163410804671914716417492959462859636220066599077456254411607884648333224773555385860727593426818481300025754551924649415982439198556591655898251487832310428233351658980877527146539498070987988571224460908856841185092423913812722380212618937096000854364638158492518907163431973722545233024898466019117494933029254257321054398130449720034559077360921867613825483100924191822783245301619454604017080788328938227158642274117103891974900399078816299371254883587531613983631199061439578955671140398205648964405982857461186707215606998883073502874310609751126193201874593362549635176805967710905397072406553354754582267602136191100697280359749398752986639525825803887934707892802287184391588696830766666506567488704103826263241865133134931583496410476856296129685115886172846544372536100815430963195016476208181513532539485850242149583585291632160542123211092053524645009943091231091071657240106646584210266196617546273573249081471880258148269407050932000417341216018717760924397543721160955614635975048131641858019721538031341250170371477475213171291059662267699604052658365315860960030392118225124250151917034316397969445284259390639115537518141554012855795092208706864790427145332958652757596487555911350199267687343464680989945332596800242596930241167366370073958526700889211748706792364496845321258951907244407591097171312795167875614074761123540325857333142324510954344536476686146240081613386836602497141883530316077813967866853954442223692692253593418336056177754824880497663073365913733143980847075565248991619624323892124976457746845572825118648412790461382335482713712249346560060473493756368489119877538099881693091831252119036758452024005004992706335353760780627520175399444452739034633953598188008200501274573472363114478878155330199099391290092416352765930136600685880721118975789935770680333365426831383781990158742293144597368677339516678526902576821316436945105891457022303849673965280860061085233081842733302706638560900695664302788971665503909193054359067305441307630800759857698457320541875681301036443826222947796524517942013821054938468654260138673857802220451188443417351183060016280998837746413899740232746420276266237554062361646871887168347354685481387446943416921641953019912805577458948368732541092201965562502568993862944355758625067215528418283801380917706089867673454057379153471922197833353463117517840606175276951026706179843126943006337523735219202916881359477203145942434102089297763200209501103724206241607678326142096991397163708692644884802399804200124255288348419519151869642811179004800968199389289356823253580173415898142705496501332879623346256071212215764880239973065492025967608396264174824870287309860107746697530888007449872595210582462554610112546520594203740662680075742919701642756803928163756673685025301708480141507914351219293810272587968368330336456301056414888504494307861618342184020091956394687004325608228615669007164897961599406531880547862254359442834178657262175524333674357442422129395066751107662038699071236393176600077631648313185860562511784953673604746722813175848251311738211581888221259600876874263026714236824517414671096315417314028159254201570714946406323525849624661307298593503371687777616731237932952034801082977037798801923876907617035933933773956122739088537030730784231719951981572604418998932534463661551512774413148014364062247539586677540418319592393106443606336717150322016150471425291305688327291619767274699002804205150448485608260576794427297354663602384419733732438200777565188053268643733924343539248546643867549514115372531542199687376019725320281242397752883519087499404043272448676645089541161413994155502108708855635645443732401735581110031519292820639202543920168406460861698493510515290301783478716865132913076723085754541745983306446167156738691811609832855066421609652354639826996689789349297070371432407184129790003819420646351088079737685181623152257725068250282760942790288933718210299181277326619553786116975801535911607450261620073424047822180426496308661905962449920789671569547803749850719929915326476775203534283754613651940468630039173183478829824164349612926079127437631736804174310130099704888148227462645586072139068225293611811055455040616057479256282725959417674857345291068004742382947835607544310832482823116967257089678478513126737695470821501834843119984822196159817956749646315469239963981604552549057523927394286701566864257603186799567650715088181660326968434825094654707640139443902980156474565755879478166114140199396984248538791242144424699852807345283427883892463103315355835408089546250680277044402019600120863999499983160711572436635846672070828423808836072021330636385664277351465638545405716805613855551014032244530476826616750469109535982360405084350169234983367714262859404632765615553236108369793747602109904387287735292743501104876730830861894439089282444146183951480638425541972399380883122836025126267087642609078425538168420045126916887414659412033084796387861869081941448846700021046565931075992439941758936317287217763852300242782195000247046053553349475952519795376724095140570397174293912643756090983453900943695933868884084809395332193839762576222634217197530553943600413194458936572965708311363608861074083746314224205267467611856793034875969960204060437691529282195448523201545534817010099314674504454583519235726581526270075329040917273974856784335595976828157131642363122082909535202176609090310194598135972793288104428498289433767345524521943169160689451668094056178786199120909646525219473249070248841532453146824895153287173540872623117233427337441581817021375162333614065355481519838962614826742476191040957068004089180572141440905645589354296013956980153867285440990718118239032146231880703242916131724439221666386546770489289090917518127136137386430376224550793194598408411009669600135930800074624927973519684104906693117537119732299252407964791625086611204344413708831019712973552493408627917967450928330007825540012143490075106134826860579100537274008592498555537938746543418024370069190501781147336981795897148095190317987697544137194268912910490228622407859036688786800045350540955453596737892460970560590977660820238510184230453526703342107625698183705742096934412373737643015034414397318531363829868043527105745773521042828524020316334161139705747322608779057709857768517079497023709710493243182592077167977653903130311871132862237326940256182341765073827999798075168737310171741190735127518678470770021968053579106723187928012675646174860731544866452350807243834452394866946135638315538668310936065331339055278532965692886549191293088050172303473324992836662765365786310862869961835237612638470237041112678237282476658454826584765717581901133036469383015666897027598256197616947289971878070202727333128817365751934898506088395031070672125793988125894116772920393118246809474207495857284121606767065373273285172008674284422489845548097850273170460697522567001476355100173213386943093117352796475518584606244811083712744061757363892793281209744735432403046760023142501510359879503605330487080688848171226075869619214465700912040828303878010796752390266564337143177542923734090661589615745953845426294091745158730704026659845447540449875613512154168052830639636743039726788354517926708451464024749592576884863617199900089658640863288687648255585766572152509295676431834662202446758085796516988725192654241854095636405697799207732559473874972890567727272483060679102678861741668316599108615848504602470586395506304154949684595646342350334749995468951125590305377778374044033040431536174151477486894746831292833527856561561731105648024565473529175961659734371102328271525754674729111070814899472602762433322373983596685570010152973541198826842072174295258591031206258492506035194925496387579237409524658905265887962275521026487088342460217046336658238091799059164292924811520884105466621275425454128912243919770019034837987450102109154021961684598879709022191744385383330960850488158439784057722083620257571851913914001379763695093160966538852981480203247089713203054518565912217025698618549662566331756927067846249947885004964465306544504885572866589793775672893764921898112108421545290408339894700262843159944314247521167880257983670978560579794612512822360958269735413824552882339092745008229889334258801548224237167157108983069366585776884525427933675688424431426887825751320313540004032719812968411785909233527252222936440086186632831220512634504144027995042248282188115476731714162267994161549510222579151178066848913407876073405398690691933149401598518092311909938072700559583146794497385788227681552723500544619846029991089534306973518281593117026168098459144327858618139985675287943822798201732625097821849204547591823172896230960048319926392113255543999473764335671973396134849625094431901012396376954174931845510202984576901190846491458527973709962219996317448294319098258999319251567295867153627022453561195074092246537331541580714084645183236171421237751225336578483501285267321575240391199114751028316719184037541389730109390148255626006319194969802679705203548296697909944962218149046064203861668720435278312983687877635230202614096180162419490982352019242234634666276690127210637516997724769068011084556254039342559083788278338182634937887306398819016490416488964767003008849539615164127712082531077503718111352448941559927563697278401341265668767549315464398666557735045754947821760564065920260942814531160562876044387625068203312562020236950116529898792140634172098492507584811620053227654381504420967089585166195981308750389066903295904704301906517477434910901505976798659890822005838250813842948899832035464341066295578277411834565296415012357089393422545074710929186751986296520067725120248111304652751609058970977104745740808950455528350489067601851019240579704680716583501881921908545458981880073464998224988498265381133975104884233018681795367022516980006122630615560513503604923853378188215123561150406117740734837951686356817821013907221081073298124812587154530158600700813030575345059201477832097823813189370713602417280221296767796171187495541290114109263854228190345007945296689546580015136732982404723653441731890755074836984088211088915034682712376592415553439734566734761886269495192515306395621714907007870942415118722089284407065434500641380065443279000047116034204234805309479959866092068702010828532204831014943907563118599675289127188126127816147285597271277941636696211941615618388916733011168983578107152252495476847313226683904323994692228744564297221833118998088559659330590529807810973347317620109136407622075685199487178422691130791774205378639070975656493358472248016277426137885745138519716342466119098235394282998965485884990502088876294707120700218496258983634682304449814170060339261316539811688386060764362296327797857499280884499671684105606363172487186691946097327860716336422388369925129723099586187068222598375802545503204377608716345206774232991793176526920758183800795633707150061924374871777832585324050799083274277007335442548848999343310393905367853902333526634677330041512110081853789076074679211251679771160072847631052102545950505458975450960128104409289430738302180837552622678199574659535647864193761814281935319793154688521842177979244856439644276255416944544962630259314624947859828414219105231820844321422931157314639178836725605080594503230763678390201904694107908148222037883800609388239493896218940359868835673804840174126317918280826256717325572676343257953690691967977752863359466559697723592397090748838889983069258003548724100731983467472234170943252615084631459039126216974286262596494043153405408843192106124849398637319220633948777141866852407021998677849081895716762367132835157220551360484952618520056751909449656732277457609942691072638825989019524051621989839731454180289768333729802036029822487881461348300377565000558089421892741397729988069248850735396451511622996057854850186763221141725576088048446201938037540183276353233695024035183052217451595549462447244891794664148476110916043096318719138587371612428104911513409440290534842909552686446347471464920184278672964294948728206400820180672226404850095853375665239285421582921990512781002989842111874653136404822270014470481187273731653532688172469359275957335729702805506593457792435102015373769838518647189634033273679827775742735861065721550023550812631775762488552904954521784655472049810616002473952709059223296595461102337656710255226183550342092185660254185615220688820007294277760047569261000674584017465566431458461729508815096455356092275752451706700651507251756234752078821003376358308785987569647167654378170011109136566310221257499206656269019803232503432368424747182393322174419401851592571392949540905745340151080837291899570853409570461100594727677350502965202226712579792737307831007998927023134515884557663235059484503638575296406785685796105124444592798575279293559286121500141850130682110541715351569637380364849387774885494057282203052788413461121616125621049304606992587297545353854239022579095564773103099231607506048696414946363471584516813453916783800172777546324031881146906197649638727835259891909689848748386980931203467912023087361532891018944224163940216973667493735953975424860690005379089960911522446126309055484245395259822361586798536940605476422192279012162619565098725000932925587396203864916077273946060751070410567293517084701405840605049791457920982047305052670382637985187915562931533850728029750552062995246948781192972142543617658153689130041376308824434644517808374371861010104466626588840928618022917444304191322092118910309011556134878750406897318176975171484611777124261628547504294408475888359901464567450403099781592888715166015848185454794387066230025225700751838914547360134992167540983380519143871303842236101128695071893738733668578004046635279058305835918868336499688189443506996007214704387533673562530495217427932493090522818457504480002771863893453553665961376836609452320617804661259107464857360220369238843733309267132979829696582235708484963611684811638006197736950028835281029952821804622183671684511062629062748579858815089757465403678006654009550725568394547511198972081096364158116676959968691573350455589053007349396591149733489396947378480794728444852537806629354085361691744905237854722688257924339283673278579075591382043043546666357369849418654632737484884528132301224093290862444748139225816869804544711626692790333673766655158774254560715437232451771868043324810997639770913655841783204163192272151462429966380834112820567660724909950210237379694206075153348651377921693232450682854409771760831691898187277898343806300074779357929515887377955244661261426178579114690773827030697008365036654159926148153094775892872812270776150731538925050261723128665168242625228247470970957045856906617760716643258484901295095611062561755838816231846584262950280923840139685344234315819712084791813368003283521174720007263152686671910925637185140460296501106800477353032377955690213878960459294405277979526614990603913432061874013941734942667005987726312897539291874876622304848445981970829501716827622082809908949788139724098875094051629099800705474268178312927049179743033303359510489210860894591522871385360636963012803266527906443749279829866345306401034448042146852246519169343779021508707337786745490504671778013272985876822377328840968116970493345858345363362385166160245420239522509749140085604386391395423377922646398714708910580043133314980824074167447048435471464243851737510157617743437267968927077480439852514164610019403964800611045975464404864843664458658042247006231481745574223582004561869779781110810852466784706586727914763984914177907206484884950033383597766663908941832161350868017329620060405226170036172818403421162055879378520363569221829646768655850057494016496330413432723401399470311765648207175065070059127156547719513670066737303757014496803673322800451774598010492066327030366044150827305599973365361832329795887656200262228052737882929194325600129844063075409387502220071059856699053286473578892572284530179901359646985908228194732496974405975879622335918066883011346697874180219366496340776349261472514418167707294188912819709277658928765751919294880341827494309496869400247123020846961200420231797127123042665236388730149996272092621045442067397051868314473026146499827400982751072542195993595131321204815109302673357703010793323882424659337827441347502364635361555371851501292195690636855291778812001111199898218356582169042993463321342380937425395012761519996807984661265186972793077666828336025796337135775886517370570288723678487903457856615778275192032157113608462151235985643284204874940318567479367034606366511481796149533304105619324124261227713141459291618929247350626622244237703600644226665887920797552670613055603826075085948965746849362463452632491833255319449247951377028918333086754237748427688408996786416335112405542830274359020650621467918027838315445666115131159100582639291975045310731963213364208986102625336513959114271758285895363766010122769484601739277462714986999535815898806145155341747922572634683627454282540136333870548955049917404503261856255618583293771594435667171715651871199884397575530921414789928202936192002013729845706314139595125135205231547199083367943557812727899114995918492837313681268858759017686263924537982462003265716634415619093904344849895329504682700154391859965508421978980020151487982209477342502113617200832111643561092115377917573142828069337940920107955285966638140278280485803596258974681500786380232514263353719294948415836108481514214340083912479035203303736729645403481639839130780733173860237571984079944887355597838256007362052772506865227087208621468800243105500218389971710820699311492847075899671791632822032033769278492146217925813423832721131545105252573618636310586035717419796219575962407381399637559170146958072583168661096297293291831962592404855496693364959147112208145338680617485470105107474025402515384072828832662074226585197283516508138598311025073057869727789991382395169227480720422113090799880616444680974847320618680538215785140428211962368640258520087723727166482311378948189489813223762008128849376038515009428308552346053880295990901106781118068786961711896754983411789029119848993676183494613150830517345892137742517199660949636225119556415251563324569017990645024473947812892536533379031466688727535232964721756117598081131227223658118395924607378978786111532931302923904980233804163307891030959893226467277216361661137775580706068248641563715949039085288118455809847576529960948187773209240317756128742743136821287686657506565095882697788751446118943542014264461703585513394933307267958202375215003905883356211982538414744762426314912762365808308890843739501460798421123457567686247964776015427256391852651799055216778206942736065340818174691666609221098761687291114600295804369424072861356287226566386261833081585170826000099276985556166978966623696690529815110321481119940436203005674099236969128045843543249350714811110175066016108097027701838593471281838917353050657744290121061910687172186230900925058030087780169642939572034936406231016854611815185689884985796466160034634754963726254042506696243419186304959050551880086665968891692983282415162531076607335597606921883779724561592275733263115406702102047225376549981993916306903559061755341743676596306018195947354229260450720794315612781147390665385682793276418488132813213091663341861134125470865859126004492256250564903946261060896390530313692801989302313534642994186029574538231137022743608166975407135264394864922381081528746126381890083868955535044334010167819182669578564330411904052066426911658744756519052099227978811966196733519131852306673777580849845231739367003736766519164272391234957913798942338709161035407965273145220253447974132169344912521913657454746628244347391069392003486952406566293156598277411918460802649070509080466096456723771799373110626334146588842135785250604922259135787285344020700630047725038224496083558608190641511964215411197946058025067794692813403274190013843021037636834710343615391370697532805338985640303569496329424755888862636003952526127459399908419365570159846193393545517902455052444344005611305319682139395648209789952074344565073696535558469995435126594325182689702194415497711347840537611259323330666273237918522556535495157219577133050819466971200867298558170832315654917634277411211830465360038666681349159226712441888245168298385199203162896143855827523815327679939832802675763405297651305753864728952891963293135458430516426681537753502980214767410207358688167233677644802303190786327287424575111847601064884257331565433860600821047814916846745110357207693377333738395646069972310279979847832341894007631010415844800900559638034553379919858712566856532106357173039071860614061975450028891549638142244396976450426154850663793913269096024730220561099824752023053328103156838072332767705276113823394453126178928217199108094367327527785740638949923031794630926603127261941471422323883880961051842375298916913547599400550271658411414214291674283400649991744057648889822499718945787883286503155044354909900824885671637992581417539074689530489983998120912574690991253753650879925792594301898193725455769676844426046822396669997954632913136991307498749026472660207312289853308635288543718142902441266157073406888530724343374356597449884399768038348806922413921012319286090420045710390681309178720576521557066094314902502897095373950625915588779638179321822038657252802198129612854675592649766095960680634508317270341532006162586969121499435288593320964572798716197218627902435812819148800907396663588251860977833983239490611587739189984054642340053734405269851369737838225150919028303602650217383363908104440707027274560258006275497405288869960573187062369394332118552222982473446708517854877614674820281630060044469838037428147360418899442115796319003954047158290272599194413779643041528847639508827246576795440800210950339927341976541116551259525896619567563481650594003456725400172995154282000239996409258595031052921275914851855448336646282030846778867850011105143759903265280859088490646866882271939458017142721834646207309231810002229759817675615732379591924485201059978556094503663650853216409566667305061483783608850494693701370514491318260549234132534170389584454421007395660086880782647141421525612958961451167607310201320723646223722566388710272676982546680153873097255517399780108367458692915521659234281043673580788713160780215819225620531125972869619949031961605923729555203948505152430636063872707259838744597672455446078628193901984677938696442664909750005369430199313255902228335567511917396502519994628436451203031271621301442120297831161880216935483580461954817784724588278203935704637597915384222665799353125219142466923115820159333327738681092719863653769913803146547161755408368231521579459790604593190864909685244364807311652783995311317561517723732687555033562287088806378435524793316772854337595534098257032461308893195273597430529372518986775829370358560516799114946813334196054762048344083469065295352574189986751733687576635786945234147452014044474302395682856174178268041253885593612736997053969060811142139431366475100835378072081408276881788212757581814551754258155114269227016342764110506770505680604825647756875088977105366742988879702287589700848919437499425906583693743466736726926300844815236197477606226209205897755394137811730861016477822692928767517158707668440116189301578728091845239816199109541489356351794617361154740402293644888263698291049719932975992985443204460847925624234325717785691161471974372080834802179251326846760033645413375895180562737236275978168768280232402210524847241953078745635136030163265576379399966225554315203379088238672768651962673501643446053684236048490342847061625557067393260303549819776922034286212699776019906794386707577772148099883803610855802748880291403617708176338222132487054958245483372457387667871360289235823698372231575831772556905499326246020246352431640695459152258878849212879509565918277811931550755080138791396681475584528637221358962976670288042475868808359281688550882729058395812663937756987782724491040445409412658587573508742722353336464994076748343700607687418901613223863368673899582696305753530842460344927309953789243687940419738004495144955927250714717566802779767434119111211342868238697201988024436628719223836188438453133979326998801427148496905960004632698883399640924316603976726194646501288794826702733948226047508399662359455372388369074562427567041480430902571051675676802415872962890371846934178045046299347029697182422517256568007924660005293884961557337331506798448126842402281038889155494218556380459839941377199519058635897537135199033399171590169640357682849528313279801237372640208471356769031438623714625149990777719724777393796999701823388434538639675023192180878938334208060692814714138252476167772946149759701618584923590286048283235859863690376426055213447310387774947279894226799285258749923934339871016749074358093511452422761465132013209639061955278427752588668733365109879041858867891877393093778630823360852980558812262350554059093617368453107004845261418428212830301449352629441556763494704305880645209621073030752926409019027908909141283098208380599564762523253143664791743817407240557341459538187836402820546284720990281387768930028114172374998161069986419859066627412442645206113477431820364525711256723359170796641405021138034946945096785374193218484311708175648109900419150011142719989315481232976648073920414361200768531658663314063532596734427873340222147683541804781453511150463895781217377896240178541163227451072948402222551172688583001778958203088722132046275338322770156740222620386684240685764124567199647590836264837655385785172122758059030274186133503158935369624160667341218055688218008308131414146898488329366660424372693051316384389877676537526815059916431380675274450791761859184504040657140764503457857340251521736640680755956059826568768187562243839924143788292436049538324510687126235967731251544606722997912801729813709200767900568914576948961999803070341747900992519523896184213202568442899247834044612549903587498192037953685178346470007092107781482588726260237321312795949055764729074493580139942503794968614791141868301725660532149745226167078944039420485483318338517886899197649601971178413484361119197174323223930455068094829603505761692180952090130391544324490884177714267716551736000412917713276719437359703716299867963066730149313642245550254188526548808428916195235037502884043656527195022079558759135144863978696783260530533012237586984167287152734630399927619284741219425752063475138946116914323653561936901117855957884021455016278433170880893639489349520634355945532832625593120403965764645185136638073883788021355904121121166191577198068288675607775735161500603271874513267960311295944816517930577407689400701761870349649217181098831975011307850181651143232620941234963610046092601451577342956526535048534816011636331363217721313752429130898451582733483795265782564563372052722645113345795167254908598781887493268299772565240230173562339823293281996494946839695784105308749428418305463711906290749507456604750485593555435129874632306077012520744391878184625195262730417157862952551516030352855076139922975976040224270674286943078494123452638069854774585872282872258414603303839125985663883715937061722489013632710983082953147965542310534857381301306247134510144872539440823987828881958857511791899080969548948406370867808527130882194225929003010597006079202896830013998470893122122675506030765360721697036111399573100940368666949174584713549354389340050972717375774290247640906899437625028765075623448620169209771719872982474409158114350880577193911644673218719878008036375647171113164934451607283074316859001067134282551117529874821781392051338554961281962917555754215296045202047446308570448142566416242650620762154128983479717754413590587175197550952647273864327652394175282835577040009420176253579851387463363444172042240683511893222466872463188464281094260931363429186885356440670570180790823363816753521831647915994455326084251930228525737088839348987970300102582678805695948099066211799278911561858708697890002428547499386911099621753698959255555235811900812845930528701365052114162238773810617230818954250583737334942963679832329643238583124870809050807234611957886623068467238895675448784794351926597336842149580335190523713361197765681694096653962525309816830303829131583701458524836096493900530574948399080748838969849881691189802593565350340559599748189801539722649394351249457385235979497942843808044765802952165482397172442703175068787383032287631110878327315302879384110194079101561688607979551992201471301971719825248395647471631358234179730848232470595819879324722209076753327695529520610542035463808258787466523351801240130594773605570871992997608704367238836286258666914877854762783575179510974870196455725120603521663434588506071425945842900683707998373042132775593363866985870957019551248711819122436881281729950728290972018966962669598922925915551804489819138097500047557776058957262845138392596223346613348778204269683128998962254245247107901481661974104426531899916262303998851587928927004050801023009648151401368433751248088743707119954843490186932734221842500226433746319383171039063785954963980542082134317420494862876555753852170919527397408511342201785148726176635480439503352422543198744548601181615887724322804761022694912567114490418425322900290180414375943096106239811012602624287576158566044720220797672280601786841722596760619701136839693892336616773105855173167140779999838359934080771808141561377107620750072024606879663648187336823967006255687818540205401413141523164376434604050638484990038125107021730957655795498520526388141091780639071308267858596609695215105178954318408392701448631027706313887567876700791034630084137230324986241372105284871266939562637949643217207574402967982498612824058590675690918989996851486328427452930144181395699566780615990321092937704812060088903079958569264807840154072113438477167050524343779274645028420593527705053393761511387524801791453389439218386066670458967413826378552326877199883001881446436952741689966825066957035487207160540245699432264898200446397794941108966377644100302185605147234531693226555070352469327186847379456987296499932573308871940940335814158558478686618285426559818175706061335754837762286536017850477197901482524977142067646530146955583934710222382094330640494150276990500450623482110814411509414925591998139199790314810234187716089420642371348162834437731655832478427813534214342981797348916982669814670393791533316988582879014037333392935018514275557054168416119613140320713200406025121055132425755074756324858358400511966951786426272106399140722205373596004441305596442440569693256657086593079777499559758864631963420203929942802120414238894854864567398165957315684859873420102322372194723352884027423468584724753271028015045226961492455160493790177437025631317385834308916804419102809160535166516080421574268448190561561437506276894215878547483674443434339921344252860502347849429778112641085756188952038625792429524232908352988596504489576190259527422985229676508527219407494367716908140934284716249182961716429530957118043180016276612405418009153218252947644389376911076758527950631378236994078702734665954931574347341379236836085067087024895021380964074942467777091711166388556702721015167842184507757265636088974934125152393138673676027040983796158325794187847285450393380336603495584031169382872120879482215983947155665387585613024776804442982428772665245424685295272043043771018438108302591988157309776331999916771974128907391210303867689665247952330341783730744356113237070812740218244816728293784371562340328768110097178480397874280307788920613731377596516140356390039048345659919819229759346811444132591473861134638470642388696259145788039527921784297734459085261534408957929178587448260311704601301184822762334791677450603423526792197622114960386376583635774619999547182960896772029370513355578349305425545958130422402463733770827069735999243778214241765903485502663706837896055060109124170711170084091738428076195112335439344828861593876365611452326147563391238878740382845047561583916916984107896604561509319155642885539109059846102444485949411576711250969613227483210825217914529018360625996333441659478053549143125206126202770855465147951511655782015973399116806335588306747721781064852202634409088826441362719896645193860682519981162417862417664250606236479409630849133001712842496308051714283149399132609111845957047014112843616424261136082863252186685659754532136420992397488663059797834523662380931487675439552046494165307323056550026069592365064178952127985434288436076115946978027545339754229650406817177649900643965069351529567389075588539150867229322003021590197655234331169674114374133478036230167144259236866143485199304842325456589597107782514602953088973737120206766143924075647483095270423611263603195673445476158443454734758546709421583782548844410885457268287603169027332647757957084007477822428244176093726735959378723060087207294431009641211341862340029273400732658333343796931047129926877974998040124505326562654367232189200434902882863455436045376153581315413860137632209820413159323155368697108494964514181021053377826372516975249838293967343185859435509045852732005883446013490532001536914034081634841831171496671088849544261375382363823060115202439922095983477396604132285323720625900961576458284599777256639360886706466342534511714336011797150987986128171575718904975389517194975936888456157983223211404326520203104345136132655242220965519719724780948383670303354331900411957240659118811513114668974772642333663527921710116448843279268199216842122276116384115543339263366552246699345797357139026764712629318465857188660066511586616710046675277112980397150107212105026677313077974044171280324711551808869371033265983754590390761749479138580162415407517322437397453168713599171588223798033047553400510566139838862208138427469524656613853692666507870246837227703478160660560330691501252350697810799110575151124045819990421731429699273848614851327927894444517343533965176195230065558346970570253657173962814610683663812711456658927763080033197430562665528584706309480809968911624239074479523061131595409137257701878469888192431971090097408882875807739048624292929245970889085910966295114100898687742148225677479941357030645489367850801593943307841606105470118773441601828318693235861378954850818332799888734685279841681062039649735728115415097957257270215686754624522847581014916555565069569610858753487369170369821384474699328138071527362706375536578870814076009117039399558607916378041824977685380131067899713297785308800307888958154328253464542462809246717503623637398387716684882780171430077148037975381090496121372648819240737078894051770435122023169064073006741437766632065231220857972309153415448233067329263218858923274423984712029519669678019391130122381774109312396528646621660679764033986667844423118251049776930543245996999306335088707938810558944115640604921379777113056987628220793074428047055948669907082965508280937179784128836083839614914700147293414107518992382392667562786113976185224907714891925513891597641571495287213506216051207337485624614870270742619867940348268588010600490175297804377973227586220227654534390011917837294168233452043669792407072917806641210427772161066975458018632625006742598699749904339013398134299546392939905600923080005332474624253000883781885930531996551677085369042790547231648965457248914156410240992076243285991665965731236124658470743989514624176113844267593467759305734592716114967159304294018974944537092615855339717997583319155469379087496203689158099129084954504988159469229265617576072874431607078490244894234099115315506180655996759119347381331738027552584513389049117230469680522425808497336898293391264235947764967009222742406557681528113355113279476471308257369283374743354305665502239530825332332860095445530367732929676708409810018700143588977289986488810965391236712146159116181207005904491410054666973142858506593632913000270886004765477108139906194903419264329699349753300495008577999535818492088319600056176414320068800487314076199202772343842765867587446676592351194841239045966580850931203858654042086430331299801639146613995310748947602127657370262874505665253729002763311249317192917960435770920803785659449948790840346494696904260697637887861570298491652911170982861279263691085082830932705601953260896390228808526264732268619573983618125732151136970195560892345308581597445975036086772744921043607501507993816773164784423342156048805742410723879435822474249743717563429146117786201718231854492209793795775761727765636889776623842903796470017586661028692392265730159329743337006274194895732528312629988400524823724366700862276297817310505116234997467041649569777138736197323930462574851103924376201994359591498358803375203234462259238930734238356327036564868701419137137768579664148357536950671186019160375321469207458989529758314062125597999478585917258760330736959759218360663388150428146912436374511981465154336010774664769609677933713832407379039926394987804017197211491355092693791949794416408198244177567070952265608189294943305152612174856053074105090987372849437787981183934873872966310012247775989972379243440925928277074865005691210462451441016483551644035043601824512665367698957567963707864532094517586815110101114731685186894565597983992422731503531674274917324782327239419053140818542459695609967190702957927819746561080896133441830932866722187001434738539560352056613783363775048253494119536263107901935167246731314213341724341325914795670167225103501692868530548498625850873212660958861065822014727061974635781106838464345490738237678283773435710225446537917698574949935499636967659516548579345877592079018237328981441908902812385071315520458649477163691151813861671065449188267432509878217349569287723462092550609446718873943356893689127969056849368182128231085640879055975431702656285705884505990566270817694465401160331305527590939055658649518072253332920357568616878979411262987491817237373162267173562424521679581243544582525818984328800009067994656752971504854811339693332668053019027294944299817104999414352559727925787900239060572428484275108658342189888096311777133411519804805146101411336346078236700571236507172697444602198313221049484055982095218224893976083368450542013635530318182224033397527422853212576617304844733793771441622605741523258634719859455202192610431988310696681795486482677964011449479059276314059304890514080902061576993617955735014381575199777564007699016004438360450279017753321815690027058237750350935582616445707477617741845722242484303689214681682143246309408146478597185176121733053964255808670363645098088993660525378971581772133450542416987936425599457434237390854854894578055078626076218829929668102159571687646212500407589923528817950096176606632397162809458312870945363147809174832145908467533058819113460973718159006897218803514952254930834270719428115936507787845431090433443802321704383844418578590517966141190029015860163265562087712084476962417722177053969857350468798988086537014382479724139473695008836615119684739933987084925296496286908913647832760409437268453953520667401675621140973483003392440650766927950739396425135596489305319958838900924471260888355197900023876634359769993588647329196563667351099329533849332698996669549942942435667667496346016465238622420510352064288035940357664354722971499363099696188276521894629509287612664220699506400863148406365411230418932589536413973388025462325043939188347811497614724692163547831658501283049582768518585797074577248401354499601980243448413084793776647107965643707367405742510118543569973886547452907961340793561548574987734920639705259745453238886577765693027374047026040152280260433790773024577593317887794286493129900918681106254666711308943785849771525621096278808939856328572041998621487983862769768563826224275220651020749913304276005393735944053219056244818195178752220491294341121175113055919956908969580131745768752522056674277131793908728490239094747461467939346361405416843281653450294103041306803237633144819023609958261517923961892266096887451894183597529639097551472109807854137174468888727983529882944626545255477465811215235752453107999894318282948299512840606194415171759541101740240813429259696854682916419593245230515479072919326003818230866412833779177661957490079138039492357401163487802317167673874076634105284954805812347479056196479668505903527696461967942818653940000886616768396957891804166726356992321081400956820066553015609272102600477179089051512140275749184589249659008829355034938552781785652591085847419240032316108486003057809636591484039409193340156263852407849868276373192801042726646224575514589514386664032625946456223407049386158224854679333884285288694419234030554323568588387152414109357264986491577766764535740297858425561556584433523554576979444693634774847506689249396755741243215816762318668635766890417358223690224780217438421458961767740922550428546165534084596457326941063700455561284913471356345829621430353810327330050589562677095724404586359564551014637119041739530478820900841229606128878687552679599060409922571439066802065359128902943128414997665040898895356699011997734175450192952127140912860544316430585201831434333500498309068765258302628645920518160906025135080568523659896161694088462500113183222850525312475259833825177190156602551119193540465873960771020403331941812536450212843837125496480948903838173019653184319488947444812800505504389652698225024944648059837472858495889312743848772494409461256236608988995505959117102413139266006050430673468956244147764184343893408491163478370777486454228997803865545236955028459013096245026789949068199320821974992769072910734418556813120039425645585461849594208953951809449871140816295165041799560668485878234631562516864976545499475133540752318700983229841866988808232317931189398803091374993611047772007629613941924192233705068277847464469561951053846416043738823669935175473128052342845755971990898941738280187771686818226352019953478951257449302857087165266965147084763765215548845158761595776355207180063705812773467796904499320844242959514391015306339022090690058403821969027186043455622357339892988666898907556495618568536916760338217891883918496202434528915597248205914102312083514758627702101729342860192250130974638373503491199035175361024354867179892515466381594371307483629053115436637779077555655688609696466953669050701516542568706133630602855507366344185335479004798860637123891727624479839418123744434348520462467297511275938093050337181692973053046519804014501345241903614030851783726424758602635708502887010693300915038319816571615380099937729551645544635714025901245828605276516955191061143149068360670523321101741720991390560112493083488928646313858992084296377308396676829751392595228758975668145092415725085482129832589874996061261726530024320734538252354346105996246438883949319333364809736817073439041615137559240375813869596175831455511179836177404003304872329189678961930291680202807617579272702250105919090721140306444330648930074549254797166861920604157098934043312110968010105588447776657331374549132270011263355894603506789255474171472387870384674375905822750271269911336296601850235037238075656364746821400412790621570170639073744683109785775459613249386058759762478455298273100052968959399459132432865692875485129949955691270093378136534516568607485787459325609606148839410089872764320155378636908404984258126515064237143313033119021034502659105019801272216605005351099052531350552361237387475478144142093260297601120264704757081971529309843540096986872098396668502974666809314269241641519500108830255856068437140925691230850725484230636364284693071658454815721374761026259045237964991044087972840810555466352699541291621753207356048469334640886905511188621428002945296666847450657976293966488246861978306806851645929619084329199348808886487631476418090844586024131896746353722710316802963849113210879171941351130128822876287118956984594503074452055268893214573048702971104448320599538081505205589940279036817753884275158105088280885336492431316245522025314199846481398794492699022205573760069798809961541224414015590077186812252814460171719598289365204547612444552579061162675159584693074499144866131872136404660745861962240677593541959731114249541750583764717228377734622334475794122746982191690622547326985912333197840715638329731904993128585356595871418279776232168121792761664502759963575504540058588424278273645541969248223967509494929473621510770604490297821234424276303568711266320661657011967222204414161880979081297857177541611842307638206564394349790714434023760981327583600264541170308354958089498960360688665096446997659161697597359453098758664069530417769307048580859656758313515111230171767306894853969137497529375122118618683918158426553165448279736074557967312358536168746505447688748867141884497008679569911569687227418854593242181017881798824825145436056704341216097631421485444655708071542431669059943509719546191340526324695299681889747779188000813554828971919286563708400366244558517150495927208118243129158775596735461276934482349953747998781985253271542628860171260403227635874246728635857675068321100454358473488444743856140854069995936012159343967341314704549468193579196887613331264602233518282618785219037626955251323864537283007430269269996109739659567442484507579550358600977358374565799430736662784158006557394344339791588318212430311279487041281679274796783806709418945004615356126644040949581862148282131150775100157382623002453372801047637534555695171786597651493456654249941625950873692948494043665547610259743201172510584250289846745936312119651325265615128317246953069448781416726193583761590316562409231857996137092733875859807504513230077011521164297393373181915277681973818687584161701669436462367121913375183774050354926560477127310771848172517053073030016455271622258356024702974455723946563576870254559241033741149126701395829502316498457979366005149609009505263268313264276792798882570531267393779883809795804794882526107344626361625935567114635244987204276212763850003020166278486964564276743181046095215537653425696897406641867947483972181073375002189467975555913948658770274797549822795119924651474825885699075444077883819021897442820493269681417978140045705859234176027535933322944194694253717824362673406123311005365109085055891869667960844333131306417979009528885936006837288702233406441028626817393271236404624598469685403328308119530298455872002136386019606345381072124991757818616791305979343453512722027146012616346165520260724657754139396579395116514914507778323913927034947702541011704533752577802428725668508182697181485840575112710169937658142685004928430006795704370908448750251021415536784585506485300026010384075659348018176928809543742868771839387168834094189484051976557773233004241183565906488583941145628083051677347462297664873356423695011631742986651998626765680295560254658942019329319618388033342508406616020554202327673609027260706808897377498467391490363588932170166886911217643228042347046947193736936605161480747889631033557183529193588176549287666118530708298042774838103525725357824084103859739209032177815424191829655442968954009360118164403687807680854153211317581382885861606492417353809343515617178453714928568842907584886695618412203805132965791704660057559977206040238640753554409272553066279452002470458327816094360363192205570925267119224505884624012983135489614221723317591833882980342839787116318881570393495191216034497241524632977706489435548634266082054677483414316924550299777827706103606063367672156383075054362925805446529376118546275161766048648688006509690421493534070905694356982116548559258516600623777577944852448590797667937573676993521268942519104340204532693128672711869399437304187704466053563769379931882982381771713172588030973508171420061642082589114494019125461418862327932767856652712338339053360375680304271252047862219605033207609081225608053670546201012756852875278884223286652058783469118080532510333131243324426361613823870795314554235647587343105707395328870500434147886443483835941525331058372032927044873951728137490784852808480941314995629782647096631762219957143929887586423502630932581819475059572906888406143125709634217297387214434639999972334685512505088129327940758355647704250241238293070299022197591908444565161439385611098804024706386272501960251799190343143885359825741726097265871663478916436756469430733399793350610346716534277020057299290575291657475629502694461248213158901803956582648909734121571501123293570429492609079326022402687399625644227256180943652688115162008328877562525355864092776400100284950180908509096442887699201431223871641217749394890966444139718025373905843044466616582604826263815308643891460143667138194847505758153857638607583159660713570112471378433635966710901862947894641125693973902086335163662682943351854899437038096538030351206165580619801669322813583267273614063797277020086914663174959941654174447016100467165113141237848170479207931424373969076391895002313971941772785989747716589363605555696084357540526778788241442684889928775230419926667766399275707550866507484804212716410099474578644589515654248544473206627286184751088761541016850861249705191746770277703701465225786612379662905775563815862398896522817137250934671002074558334794634681794030367138158328532303623632611995456668998140621884890787297527622357884233639069552966326721601569669703217515132467524006281355113454173592998848266581718638939382784428429986555052414399322697057376631294815262614269520683399883545679259112648092496557669241140178948668829687748440284007765234451446201207591122261828363859811865579738853929819172098187702445817995417140826319308831218514538352021510179895106717857863694309968414921478319152603635214102522135301250662293080826864673802971677912524406947386234021638128431044386275238469150229183218746593997706818510253946761999907815465292651189114252733818842762946837075918142409994690310342379872782932733442521953759886730396144204757577654344888651617718893266899560896600589726929014392782685986967920068111609734347052376710289169661953574282881218624949501649001979255930348064260807434828980511544190070224395370364874479944846300206934237967332613810905682892390701161893497939292563636003036233239849978289120140948658389205798907515054073904685656467079216604673152917877305620006310353545696243033222207952012224485803983354229561608782821422117763888276765294758435304072302548068944681110490154427916627897662113081959558936939647835931923967225525342483144693770841737669218019190226807889056991944621026742237433449332709963593939597925337953433471886097112109894577354394114586901884308919732115855945983896818659668072412507988633278946090158992186480544904903000205374279155093050624876674998443941116615389328003216284735909265408106784457197784802713018878647447941460164642016824281017709066532434003007356068247911348475853631960105368582960391446288079841947197484409802465354166191961044559445980489790139429057214232615874168752845306019052102286452698311574875691122170285252554774969380517955586944736992586610802803855020748051405195530769073926317863148596393771971184067995890431640714237786927447157017326231339085720605943560848571041924976668767903180203510803233392607673383582291047218172410661248968614263329013620420421199431821291462060387896563055765881043445308674759826038540550014254900738412115379659849690928697570598652354415575991977595796212977745012079091836094133024495115199736040142702660538824860556293476148255785277684937782015661023163395146230559314216619255098714834857570632948040978004096179652856509229531455950608132226497572113465246802962498473388622727287460998546536750269231521007947309573469660317583198462045260003134777003156836171060689829973746694913797080020531574424669299382537323014360541711511506022887231807495066720216870388668581520264779991578004110992422559402831597003468245450048213531524656844331968450197422004132922149733353452299129085582735988710248883179225125290843177986553170322301710843232427164802814527917360915138371409321843528926523605443080606260111918329722601477588504457119753629573120636374369302466871545803510938277505549495119274152124071704504946435981614065597689193979178717634482517057178600814998223264757931310041503909777311815797642793904038288772625609703728769916552162668244433196590157780404968906256323301484148421775331400163952922062057428099851089643408953825629767648017987632991495946279581177185111478116553598589998976942938949588112382395481573047651100557049894116894165808723056392718781852493322993043763722730742619878982435736690932877458283620927809421179729899786982302558264210648781645008215874946863132960062158318113094594115249308964846624342521583081142505123553421413426222712208985137189368464222852238707486351774864486767349901757177163256343759123982627660850838233684052275582455588073166026772469418051898665143074338080228908997138786766278418287396213008287259170263924068252938074397446649134115454723689991349738225053990241929644498053991407127092841771399162580420996598842266594658742971199286599609602365841092278720898433040659271126863517948765979224605980556159869031155834090251535337120127464885549478066438895304037962279408190991230493339832393179099971477484612639253669421832539582399507173529333042447423514185477518874129893154891539649554219922514573036568498638756414243276131624099797020103567278137950065088175797620568508830715593703786794905992191466117519991620435968402745889751904722122024032977147862525172563307834399891192222513691841574266107776111523599111282215905156843767537346577863539908836870531381231727931307558659132549927711616404669765503138292381382919121703709832709295349883342040021134682304723858134851560291617261164438229694122290214124113417434917923061784330451476144572259706574335093040942984295786133250538263671491123461579167575488390590168507025291844115588161251811284435550029600026056221341804370177668888734024120359643021149965745941024157667925866070874086589537430825030873128021347613242557309110297727153647295812057123777613058312015426514128615098691534042613624957392491747325946415687714103145247724909157198405303778519362593406963442001633512191637707734806107480072766740410114171813170381221486077544007101008465789250038638290253674790881669523552103501264169879130592156657891694676649627011447979256812309296502577501937543024388505878298773158556755916594742830439060695054565120855103281164021783794852454108126200436730751799025023331354546910306299686129221662083689517632577988450935405369485724747408760563732545627033716062030050164289237557218466116145852293073284857696291595978315697315724112823790228252468157104962740165073960564217068078000704056259834036164668998689178548462859612491630091136498022120985462206116920649466048238124211107606324690901215783369906747972581979245378731308823506181231000838366103270529939792897063644859870263258444295600721834432853177012834108093798857616737122871778610047679555556407935350624235767139214887809791048764743968719179890572746836400266582334715075581127930282767261489477080376155293102456531072621094173549085354670805355766702485111482562531534380925831018659803196865244052905860070102824748191041958730796195771894691916644589358310286024972682287863768490460033259393132674947995447201106137754047776679845644118780210844324755335277866516031428271291376576405336477301594147420959653624624007406744769123546341851734387296747279384739784552508599884706961627797950999718723907537016451926539061915637461718481953631628214899826972927446970067582874200735403778404093906878501510966286030597926436799406953268892839940901392374944457570581427316551436524869172626635778784340756492409492000893200220471905080275100768573446956062291956774264732971667937829924842754694120586457948497013950395070611118545830837281718981301073473938061559424986450833626295335769264715579557603607893454972128389446481655243438057484696679518234777845138299827330424111548486961573957448355341682257558465860967255731415875912928353437511208134112107369415299041638262444432025465801559938806834488421493102953510022828642037721818490174544371752561140373912053694292028820048081866046491878716269506318542814688784795225518481340884372876212407485148414503661206094589594174507681670157801329345583935819426954771453816913877562019962727644265827219407658731609894352352399373741996183447750067882992560698274573813472287024107757306041615057309269287896883345678045124908964288671688801559082845880001745614082815190083713906483056164082890519316713379392056625568528800755749571663628511057215899923889165577701459369357098711729664269998871076229498588413449689815835538241396466877677016994705119056386089587511422353513878096184827632647120423404705204191633379367819867116399480515573978473749655323742263801210802868804227452034710930233968206850349130741812020903098187108668834801684696930487426727485786839273995392966029124655833125555179592120800735812762290403119363993026325759070485781390360540348709345548711235517432312127678376298376102819667921944248546528133861981105919262346180444902595618577985239201623156931258801780150555732003732982516674131189753655296794381847161472304216205812518052645697190642785907007893415129383584470001257559547186024772215631276668298035310737641235627961387753387037991798630017865127533246659814220717228674706036360215358138611123072789838458021149668445932174601515250975165301530663744838056536430593922983761713843892947715651342396037800598942302757561963731357533485621826769351498832929461524555512786052135570981248507271664982441883267601765961826968562961506751064529692520241061626764550927857712051354473624348147029211812200178124275939983623508509996619344472088771944056305540662681673285141422957578897763967859025464606800454495748288871522469671977495846269982485806939033816443863912437952745809120684070868096697780122722772729147650574815181813752056479620916141955616895461170627786939297978304999547019155906605527373112008233437820069676399228895715361356599901364441386903085368410456615972124964031494840876882388902373557691467993958250004913633087334318620964743640564129283386057730742060814591265847391829769471352429940528215167236254881490982836183585156191960549352889959697573892558079537692971335586173597696559788860588626580294845888991481496307518365941634717378514964412622901722071382465710099943932786450904320148984031288793148065146754576960570443958708296807359521624270368705669118139476143221021868516958060946850427957992870069718425751519226207687158986874380547487521658464121010369473566811761995851251184456760274974664325031813526101500768842593160213907475701616287705408924802484402942242277890028909155453666098597539148081225027919479628475769824828745733799241500959783182439015806618598214849002034440476775339425840298888841156031896947858727774348105825028057281854274781416144380420900796385494953824136663995311231227468607775172158792732072153123671946289302278975794293594594926278126659654478255213580573195087118111034192922132057895154222337796200328921125691483831545000496405409931842239681344971124164468938889011433758637925674087070134253422631474902169364818881774896796141651735518401100445980657189503965615505835157116692791715461457911040030792806873967127123703961456248255823136074889473553638704496683335887377356348751060042433922263322052713855255397792776569800304058109287342531104265869567400994939123313507375883992524756454403420492853479916878428775205003642693177210825312038061655417318477438882357884170470848970016527412065617338619930354362702515734869036241204313832641731700887851228416976164357464841606476686875812440151319233267883983260045824537229273837943044755811569653975927768955080246068046514591426484929684513032208071900212569846803998846644616718790626594790120613218499359298847773121270801321936158997553288131771739265540670138381067085329734077818781186977906537405626948130269032671630983979128865390029293314084421162126431527523100889621806882224908197446787908599889778331689768283083720272558599118096531063321454483788245375994694267034526300953084154605909535030476351064748338772649495878017225719008077428138322488193718540902713733640644583725103058339360236802094052629929216529582972042531892595882610899252843342402469680377222202360561788266249300298502686142896973280272478946547577252712909420627074624714569080529568884895068877658082390147268562277375857483829189725599606860487303233738569401229084726431595644975924008510359702109745079745638732074573915524296498843610487608677923293838639327712927632293020529766431692278504636438088028566358404647872985255011478712559750899950433251221943523864259836891836929544099848323720166037834903360138030054651635003461229429112114327723869422638055155619528135346413359558805886825240606112309595635068902409954373574248867838884445336524214450890167663023129539715679506501646439026338569865862579697611153924216670685170755164139536974323538610324306171763137160107468316378634437553276654808064927937100733503033600293922135579356596139159250913580214001142266846281514441990684043579844186170211579833805016184981532419710507284659295217049244317038053475821741014625842334590256734152083390472448759854971185359577528960343939485259456514242668644767912862707197611723370217481806339992851863177202108043349616345915710778089895161036653412098063677017342839330391676111499340277878499672215974044610205819008447060423088024674988589203164224661897538067236514961632495737277333830117139393922938746203684452073403857464566136296532603805851621777973525106552632703824279166407791570186270519906760543419703947112077809777802373603730298709847926066110424675098823624543407433230439025099876285335308688278238343236033080183417370911635889398145094156996657599197346449541461640122161261532032261394409656735628177951492416956083828034198158168106687963583760274071742666013123430589868001110210438916046902601974643710986272104518393986005587387508912636821070452698218797733523906983311980659081343794586606162081986676646898018892397047291986483414166961872309668833000019619921223616026079489403677362873273702037108469779266652557603388348581882365843179145559318612047319536030035074153768495212411603968564418937179792533954158744940566997377207782776773464168232377289157202025164234514488808185224245230823997052640943099139262103323983930433402248912433223856017774481945408691534511139402213796227311270783840277327328700252528707822679676023654094861388637250007136716328691551392406521582636279044833729678304239342350786641666646723024972956782907979993187455782771085664725390864921248704717383033493092649877436802996488432061375997711060058636615640902630729312450327569012380682347162079187567989022885606848723303808775057377367400147021280885331814903091103837809190841214490894864884349229619813601025343183556790615989017988210884784236166147560402599554398986224542352964687450568197901679681976536640482864308555530058555208847059860016446911563621491215123565884621583109648553405301527019790889588665580893839537797399625642686718807865457242322049590553381209656697098596296410434071300266266789911138404454704481863317654135391721353721972083352641582442964236047979785711215831958820371070348390232143476907332403973181872419855713948171659588407265569823452412024038057871416294149078504092137243033293826808647204432118670364389106821543358408311825512492586124721193586702863283172562985228540855873720607559612336211793746122010582671403561111026176950219659544143180597881375547397747614984111388103565399534309091780397718790143459493601821087120185116556766933109387579644413656101929382364726171814423825187069405652240790236842944492412454312052177791971089388923431885935367164289300780317643098147271666428075648788952602954907885948126611205339811453101476499806016142950568278441447266316781167520670134628790366490430471260569131856623550834659587025395154170510554811486842217459374579701530818602853872692582454785045476023665306521108180212310728877714819516304811032560644981170219708944417788580636260507953575095462118491965000821718789035427140196071948485778145464732086783041985675262242679742878110365081264544518281842077308748932954074039526816004597675125653733890963977277713206442923518008365998076105408815917167457479998938387037389830188128082366613906707994261070586389974075886731491569596005921586017849160982319532347185236004589403004214910180751733364743807358623722568160724731334234684402074457015176389307482568312168264856832626977426409914071417041807948028451339914803769220823744155657687163634711150557882993268234920979806951323808838112928691982032148623063081190400632116143164411030446254737176805076498803967797782884998308935910612409746397521413355448340221886574245512371244936363689344323781465308879286258084453027863560721718761888217334381809107616526784566048270571460644292748094190485052624173585175876466793727410008542743331035449782510560406499074792462865845176554977256037115247064283311584176588511064094115628732622469007357951323332947316181588149774506178964773466553475601970852947913157089099110974945401334816306395076731112846523108049743497317341547446776318922420644395063505769943895780272922810616164804748852422374277256041511339199373638084738691732566876824699157010443852497892946011075000562763575798570591521674276567045062186524458076889444860358789958056375551556322301534299233283879587194085471056592467779459837059833512050600585833167986802840347140858617400876048755834978551276108347230298793953686817759966783977868232365551307540761415612183223198165212002551763248918656139047846543909204904857577721362893791699328113512458224459461289784119106928044226424711261414310095267696327168538649059906033674661239751627486099696944237744979299801105335129245453384237098496775084328646471491611212341384694424284046641927312365411752885776590116790045719636667169654298578549786264890434382652001436986411230857574045565921477870423053295014452416613580954690875565881810200401249247376605580872434641325556424662516001334880978264311315016363119481847148989579511332965670151898648265907826083933448807386615139650781898441386687349115231740130200213797767962210826496302455748093772959101838683606668393986301054159468968107647573555808175944075137501256099929687057727709488191455000983866624203364954767410679560035898699077462429496611682925974688105915844905064306056977363964820189175522817927022236177685997515267435171549178879336652041067129552807311425700142656526905432418399139138320781407558840600064469405907679963154004863795173494216090127053188716123132055126670578843173251636768079255828177913681171992747676838648053455011838158345233580059898640235148466057605715266031097102951095428349054942602390460180049351499837517732710809844761043996882497651156729306045555318582127185527587901202289363234308502638146072957489553203877902714469539484737865075973824482308534863695279906726071485839313947890330465708502175418948050634424304540804731409418262829385348254480304934813044448960314007289161713072417244398615613529353027489552793051024253083274053251465424500520328563458920537015228760385158462231295034177790258762504611020551748080748083162481346503638157142797745539824214975160525890034120177520754126182755522898434374198345038763378948168243460717323775076046082066306775694370860000295386723124011118799728760437965104429497982542735589162921552711037736183248186338739701260779888965958792391350366795276219045434410428820245616897799848189779573388696285265943465915716348637054141035612235177810454398075506622401941164553906425835593590525345421450867523465456093259279593000291098676822028924215462835348533917968088157533352063388089285373500833757656801270650547321883807544819128166149706769552383712116960808972392751896540244779511809504973147136203084100866600747082797070838395429415695888061253893093832532499276508580672581540974793852982944791961541414550249731669728380399057895120681327055783700308358213603647488668698320513068842395001831974371292384984843360001290893161374768263420397466304493894184191640091838455002686229531157122686842338065422092330468551120805209804270572146993687607795406152556074575472377214424450169294886704146428109168078158073948375837044098214301408474977045520506626205720206661692057793222802835860895223691821012759824569142501365325815355990391332977123714622364483685558060015311218877720945129023864783996768368072137710120606985227989779048953738168913273010142435274747957790097999046920811854539461188902625253039104337767127069843846620749404723365411573578895192655700504807847409237938133129700577042120965415988559319915255189651641058940422780612258496216808364103616901450130708505912986968691124512593449442592553169687998930183969506422935014613495825971418844092339833588993824806682595505568810594061094101175704984521861994560731574497346573506626827088348087708796543044549572887223792253880766819059792627792208474236518646425290295012655607235677329388970498790721787616728995888667746802119906317689567514269977166349608470380947252897895586810882729508831629852191767538120292066990278877955411152230369327543981274807780501818944593998924866320190396588723605720595510467765714663915842012631811420919068434835873145954291377687192366598086395922151820583193675129846905374103299024061883429076328346536536712374927839552883958695511275455116653215358863114669229590042194396544744108949223582810685720000349399615529486422814110762954263356025255378782150824921866028229786745553625674755195449949188307123763577796109990728581980924543951659591441395085180240643411707737768828391122201690220107889031349080882944717595014137670052055060020209685047745656397761010588787001221542000241821212496385007038475194584276394847215828858979818090037357477478005582881677757525740908189158301431807367439673256168748807074603573550326382750471897361832338154475988435445847369345339811504912231625199998517874276414254438826938255493794324258063098083547480920971516966527273122064441492291317596121740564606084998372059718874068314035659824789702106057055820314842209655414954041721948150718985393722656946794355494820523047767257531741069243094485348039669143944919184718222320157139166403192534564073959129484923337476384925241817652985728627437423519504416807743298162978825383349456827171067317614452653146999441852674937516482873428912562106216992471180397666174056756912205544729259665099800299217139972637585055845869010783361695572329663779819585780126593573316616377199460689014819163205934579080864813239481891850239106338067466696951162240333613230716639601481536370100798746119933003535251043614414506045521741346303592683058441198749682298424527261385972060917356558689903534538105183735103572240912131765784000180064455754393617082447601190193916409151649273762572056614411091352991939476454815800012778890749007984773096152143007341275270041497522796426674645762837092755004856339483050630208902426956934559593284713445187381717981431725870522030721614453719965861387984746270628940126508129357520164366691318641629425358881058267798411796890942337794384581426401056432601050295073809304641619018187875177621482778737333954329112097383226231779062310717677612724459305668023725070123139728693622665770297900798202304742040982528482152558244210112975399136127912921520664227989714185955570703398746780590115555581164395483860645047696165886792477313583894240147521611813364973217371850623356140359918777239994534135167053023612111942832642739963639958061502405230039395992702206418481951335963243450848553957999381997381246918685522087378464117815810733392397844397046846853190419366021069986812581017227504825964685677486292462324608708738136194235201793858883668030829858317815019310426302526086465399266142976036935472451290231452848521975733744643529467174171154569127297321284179468156115405268833428470684865306670266846623995571331507531479918407335618241464980424681816246695445791694238319983061365778593574975810079063753649330470810773567307682650633127724405576836501113393187529513187700999678285182826895177842099621491653770617638144163506660105010822253529328185553135507734597173312557926290365355431722303604814564170582060218543128718971249052313811508187317866762047840425358455017480519737413450663745712515500154250768893061633892431118266716694964408958320176081956942528722971304425746066669992134816019035442577405094019975002872490325368343328545092550969716587995316383858055245710734171060936756548067578527709190558640500515529155803646925016632576947489908472101792589390766525877509502013694663552438330280602142015342883741219883291344042107359843340525708894438155330841527460722820347534247845093308728054951952909868821787866647625249769107801921052127086438389685649321885430053129307138394333883789504385785278975290816673203927534298726101944788388964773128475091135071819624394222572947477183207685977444057775253338822749946777693880240700731130795959541407913595277993474581399100151728414602067968817859422585360262749420008695214237475951343982341433520350851999863893174365198598174302057513506305228033126246259697677948393537885410178012210737113435561578235786935432718888917113044625064502891550071362410890039637413378209585778847170023321019708518036589362360531069152406260887415418374195181954487529387614858425227854983726547150058905480652607147715757845954742870680113620851140707699299941785567108611037774000382295816423468781049177281545221458243045666041754262728868649314148314952730080734691442376171019151831312830114386661849131739869971426004176679713770072330808834556392210826916352896097708670271437907552570154439461433207323658008671128310498507076272254814804368806795751491799425765393396667152357893160749389061433633682473412300831832621825516793929651464066536778223250808446090507558282806892363533284180320288263599866073558039418994366629804916936232260902113564386582206183520739613421412450358717958536981694885034339982481806242471371447994340303575130106394939936850618857827878481818029778254271028157111633547132084585644911118899271676156264777559864589011501629468549342111516390900953272539787818129164293041628471772171642127443016673982829693589113665478832065000959283933553316683697144628836991835114551451043627424872228886060922487738307560325658211432107593041919246403666287188345634627409458256886355316464170262337092723795935658708252352248445702642490236564564886525876196900567863384041334623295114180387718286122563516519997301834584271976586688487573323021944482727244351164015229154254845794352859496135223044134930157977933431304237870706775763614440985831001965108708168865924418621984994985915261747041495588835917776360933302898600699594259912732789101188172242725205243800005993948867116648140083839514971574184059060516952349438600075343410572996293356671788932034045902697236429540408261927258273296584053318831882961759308142633033672541111715081260319901638893064947572047202435845884048730957294851894652305374314356947435610350954795243945010139873960463743492630252819472870009026846101219950878253971271692332340954474170193493685863592145841112266097575362012996715224210522571349823539556047248820197394146512300317208496756941603749892138633114404895405530531545906288566720564089307753995258848494004210236374753692279990588227332749642333157242486427028252499876591978394218785218195362301801336529711304532365416972384165134721506365008184689526229442563505207307728790696760581451679902133597091137211577756629195595968225971625197922716496313864028967933318791064973893486554347103225273402785977624587739018088438887057574779058260126431967893873398236404676243029661708104092753995826574020832588163702175488298668320171733885649278349686326722208156961566857364075536699442067652203182025381389774985367275737461066047924800358605277427325951225865416587589027585517967665229772680206401161029616474624719666222111402968614859124645095291154657247895491132957255287343256522912460403785093817406289802710457841015692808623388705762415895557075332439378128262670200138197147498795916781956825810009721475754617162636547483821078855205173956795844656573448042015577731891743057271459776933702211549535827338650288197150600306182378488211242880685654097225081774269564892796050654742124450871367989186979031600456046012620334035283525711599563019384021209965363195359758009683940840647001202842315296072487509761219138015973185629595345792584442433088525629732401852942143435956330750471795347310733678562441098095318327312790121364328492360146645492638201623116026403105751372065653170472471922188079801501311494999350749969599644453712608548655702969993410708471351360586499871463284772060031257933998937346630199234879614305073726714503043241074026612695358886522845582760536185769512856061339480370297049308871156266883793050688477366854608777996156282959227934683353833660943151970217950216184941190548947091946288380304132459662953155759433844553760571980362662234658428611336939721250642717847295252783625138143056576009633826145508371260038852630390070681710413217606648546343044398299092216165229755988888360926251028359002547779074303064351117616837548351998609431218954142633016999833748696484590242265718044613917229499585118400029757259886704631532018269721245926326854914877406705017523649862669441785718632522399894051966234579751813094942929862267826483467021973237399432018618863798908828178785433415159799852598512229701740940836535013766207628515515522090352478745110373005598302346233989887512191486255319857392053957464486507211874824095603543090220188598960589886591223359913085885592515951954809069452441240503391742550143086593089408167984394425161103262209578787619641037160593644128654024358679119945685253835885438468991700368585655425691449522770179989423694244890441031034657333037792464165667695475904827886065110156336252761792284349813678515820026276682060714429132351528470445860476320619596985001294195877974425288717332771510673365515774277745411626796745434799233807508634085885340480012672968943267375459710863835050303696806802217722731631279060661173105652406571969220584729854737560500418748980871448803983229087604565461509856757826140057474174898779735627340055049881266502929077059766463456038073439753974873627569582394580180677665419516071117928611229320513401193429796053085033777732644158165870355526020638541906664860738867226086292548014079856646906434390621434128239537553637856815273651388734717011489423584785118958376514333043803816897741815835510219281599818190839970290429797074314573193073713542755627642198122579543306056989922623161183705021709862605943041444687441723903650302478764671011963197750723378066196940483728488254065366962126240352907411921406719088604613927042382828195181945045801173410829890925891023313435233749367268834996816101798474986303533867526960380012489012815644459978220863241630499305376126906858092786214102710673946240680910791472556164567333196345935781661810908183903999316591565978027924591865044896011867160050249335402284512995291637336656857414265344813660940469857378912670809701720502984817927614154183416594154899267957621166945058951879198199482417957606375772543936260361520400787653441680208789961757228116625835071832843459053580792415453850350687562782117589711189342189911623533273286533425204273473678347239570291463702132857041588602071727264308268441152434600384708580073611997489910705377284249210648485711000865792705565834769034242499183349847351688310038881772352853294075593418873547770405821639368677310028309601897962608465245226005576980414279974278192714918252328662197201363118294164172572148476150155374716804428171158061063071954978825195409872919397927441116159686992898753512146841665947029409020478182825214235641702544768856377471600175037270767715271965851402957411672853338291268517902594227460383580355912031716659170430782019871478523188697677882272012260184889308080961272322115393015075649650688740030306293161271884309739669632241224582521603119414710134547411896509139099259694414666699109126874693709510753091107028306307453108612491105886478427396271629578398291364503071189464244364984212903172991051541761563242570673184013970082209571163685143138420646668532799412902895263651726230456295644570801644890172552234503826258213185917615162956678137961978352820468310543044818309244492625691196570313101065805530635448005562051726933460251933710658692329896590036527038651547776469498459279092186054002368325113414398503435010302269464803882663392511638124044518869852405130488757641092081759273057160194408664135488820383438476396335393172536844579250068427802249626560732146480507887863935909323185749794150656909104545656375318747543717719186792498381384099443816040856694689617481239864374130678805219624994964624291905975130982499622794446699632590917803531751128047795589149772452860464621063201034717784664244919587467514394171186171883762462939821863684783515226828425850302135309007535044696074472944334204203840990983839964405611841344767252330973609696227561105607703170007267758188391515146857480307692423159446326766994755327649553009066400648674142253889391238838202115979564833553135961497265888889629091750518382499977236273792763588182720171940422828641929618312388190727075829772778278699842427131051860517730952781503411277642865932613291562685774334257319436127255231541599377186792410421181199848745894229175130254593526845335341361495195113597092141541952439740740871685676142579728373013974248569754291878073578299709199773225485104606826737429356367910958589120799092772518163283822756278007220058266710132830755328038439632220885626778698656487991396042066531124278828410244524257701828194164906483353055401314740355274293715466672771233972299298016890414334892218066376785819464218862535247693748420462603749002703881165093778823405919113213212360893335488270935807279321086979495028023603165926145695637314715709349032593745881094138569128887591557039744564463544403241899858391608643386387977196495425031295975197951882875276118346936142693921471617391360071027598065958337886632046326985801743189852633825439322576108744129314631159277026677030733694340903473316596269418714130286692022327683180203520125845326788171298819122137033597741529416014181616634614715297536999472714763503182349392944716648015475904557968664740568955962190289612994104491671659574301804176156210472833615696586338125217420257516843560421488378731000815904954044545212207758875158111789769339759772375986006136094027514128881023416867137931131491187813765489603941416629091739827930868317003866031326494040957130604148271382446563270101315781381991659519481612038385656578788772663325067162726888254471600636218562302011461107739706445317748884468586483397540887022791522976680276957069309700577424040272161889052201029210676678550322046541456496092463376699284111412529654771324847806395920477096835433997658385577879211209213634349803484434484079786377275083343643519264998419985064122474319867432180581014477024869358245580029231163214041381540844517607108276161406588452391586473406971393197299253265234223978865715574734361897820800333443011692891446369417324512243699982731384039304775270067770655702517593940893484454497458883618737546381414280287138689036851814770233732399803337308809743651560889357847669722338485158144087544276131928648898874749082590687755548302313996587003769612256841148766120800828406861609920883069218081440865765878075373004739518712542279739895164547362754053862623901184397153374579058958673978620853865471619473173994810620543923987081241779668439054571194839935215968489830547804568962725934924364324225011772020342447026731452030907703951694443387527156829584114744065547754623798471833953530154719493779085166116837204079633124782754007680616755202964231848428375467418027265355030684579175195646792494456662666273526132978560997146090249793036560963057281528189586883902661550174051000115381156030136920007426369437102227182480477896175197012512403875556306225099335053942778994550208286800224973160353935679226983827495859159402617324817555998648840806123183868572786197575103342784524109359306393727247134803504701236720657645781404220496989732916279438055686381819774446143499612566512084294066283976556080835790788605343501689107753675498364228542417559091261621435867328553683599288859510594639313457410976644658321218937433929312497178664324274924970846138084659254818255736430586917980600009553198607935522087270136115680632927964659790203530793202087099352046833565858929186651437340402666066109696207274649007072499832466668845771848938800548678645487955886738147853705915156908075260580619994669335884483537395697076089197057782501984409485844687463371594071062603873960381842812081205285726728827772635464153324545431867807607504855951893919086658310514588996755893032702550844487455229791986172484306948680496436338960502901614691572318926753384852687801478151894327492157644042426568881493756292283637324623490021025715142230161457945836788669105341705229196260030751486302021240785796677060711291606770368713204539199102308564639871120475470369214112899971611070613395294590891554611609656732896884884357731166543064468023967855760229589610028201875109444214283201336465595837504465334990254527076003719339678487702039371113914893808551784225747190673431988744555276305835028115153950961105590273937809332825430321902711747646073457316100572867831180911350043456418791781578875123328786207889841475819182067319383755175315214171793353618878462462155844386267089184589823814833866624468408318593501608001912490800976335453982034688852497224676871650601527446495657824051781853495728636643455206214000333441504810659567344257154562911896493331610067085887318892547626414384537112126095468537928909271522361966506666135594633474740177823738551771401755244061975802563870970442921049177459467334568715700451392503605141370420748440625622063998016840874232747238140457894412405509872067630859895400620303064386347589768316415099588875595323287971563778149873572524779366767057022108906721143544546979798875788738796508459875755732056057220072197766229461180760673124201009072925399446665184174968143503654923898403702575649173736019779995893227350722423854164477314722277799827267252679082798253081870916888227832924782088004506531245504978341769645758396714829531036623163742768081554045279008884506139902975983574611182411737653105023821177689221430406273782866270076772447475033407074481814266365875945548852632821219124245742478973681882434724314793028149615671608595422870832311251991001984543914408293699424445268398452113270307460015678464415766754874934703584461518466295920832137492290295213808459170269302218020474087664503121792435340984752501917226558678173826083840838717268979968778074692215230491286286606326781797765734503220438410578445548810582620739683655263222630898661508217940820117631533894826476375382129159639315462034980250367593016715197880055721423244498686284133561332293316557581435165773611559239368463951840481010017566422597809906968827340133059136064919007871992812616107572810444899581478167242800118173565462923848692824312096972163132420418078200024105523434407014693653823707467678767145285163559210302676035010963490739017651877422684049544332186741271111778154152947298122137007069118857786427241420107191184308125298235868116839384434027046462869953226367257972360626525137153176735123084591969028760511073536747310429800914038200671556240627365819780550662458175103901394264878010188789444565567475321048590791949661504574438534931563869706569310045363546990725121836100796848857965884454516021163235131177063181148071564068942297709461027685662964784067208772606671714083553973508635359348387417193568311141476100348133653895850044984382850511126448745496520839138504858443344880282086395526499619040011193268444793948812482213397305880802825930490004136897515025167470759754817931415597611302410459833785937254406886742475759473119785473553224932109602821611466579317253969469398186201557108818243568754830975182233112203849087558590883285919229760713177023847423405014618881009110176045090925907694103006830211477721684990761979135707144764710590054005517046754866517601934485402145557027734617643748741273718091154939613690182577138984130510304340689884141531350884090489502283349732090856021058530134643731023118911168768828780780847015603199320510098118701205156594124139537472174166092878906003352691540740543276233409770950755095105834034212259544417032959656352913771391169715690963236195772308564618866514152323286606684510395224805229101397754384066261970724156810162527723708837891564967253723986243153847316346915291576579653832005327210069620018018865800671096157408072470309136913625955530902621644675206050670002587855564635839654673126564749488430535572423530469990225241366882000848378628342938191583237024358512776891621902562935850595956802076322668749675330460564488098094235748956800573027089763528856994224373364714495766813822504365830527118844640490135083889555001244828301881581357323366696798892262099278610556219089908889585619187809318226774664241910747098319942336790807069890135934849772688590973175704084182254628767662645465022316830695173887105193261561780580245002675745394751724859982160452007512113789592428815118481624941750109209750572374271297208437953551981681409129316773812405541439149539891492515120826906983068776189694216745621431761500570197593651468598062830525342091127033801281087126502105027378079213296889483144956829620327601905789010233940029996775346353880093492528269506512780527509305566312701743896009564672978444812764180235127536359877506024886413477671070382209353373271858770199755725946409780290282044305117103804160678630193542594466911603840195720074963378444997951215470374280939210216043506595714763752892066053802224955019866245701148213321200241431361575897463558139595135464923475173195468161580086712457603761047660019642436676779526798943220966508635628387438942698854067280446614289450151881976034040623275772725031611248172532016439667098025149314069006348512602419758612465459585801436169578892157423638756052609947025530679374172460095840017271565134056040587039637860325475210173605757349663695714260804720998433998621102476062434686216899710763744472526123363542779769145360790686670345890378853546369045899635798949466107570296970934288249313562150469474266025641909424592241306121829168249131347743200908062091831894053627202013965747796293470318129879595123816022276999511249378448548548526966987539227739591083986183234519715614175569072192473410603173969159260341493243562341090135563717627040282954242492034422216103520292408531913707665967136460296630812728205846113825986123571616721367597179479989113472579156172720191846757028214246212260451662839049104849416872807421654163776703177586503480045422928282482572710702663302310085265978852388205703518271762035950098239293946122778613198720669131367382822322802205702150905231541903999347117010495070306291839507967775544530762130865799590267646940295600421522240557822574778878803372012252757668222648828676082600410229621411044202314906467723728740704586563079743380136367657530993796509753444814413719423385303540359766407593666253387598557727926270829091018090768778831146908090771741502549139617870930402065444632205175300354637262084583304237406869036106669954813195435967735667644757167315084755181512329182954071067210133514418963785707456183627607095678820983111461589201382499469207104088326793717262471145691268840582791552524668037294599813835329383797868235251667691944336173388455744184859550466939976127866496177589685482032823748051907338624822701024066091080449556083942448190117603311252862273944723865878611294504109752995364771619880941269363982529657113659657228063611370518916337044875366518951991544493403766275535509476887519123883840618158295589897015602574802415737712949666746224615878120627791749434514523687015963861417904472274508844244569229503996575806291288662691375746837753589534028891198477791479554599476019037754173728452986431887406680254297996368827856601260395691742202658350749966108861626071404276238922522914335197289841229076316974800406506744305013265622093004266708732353607363176166730218009323685841887032559438520891891865483818986755010986512071442536958734467519751960749642712815990417374476362710177170376401415481183023223504639263422178874162937714040450861755315222401827032573077359908936806131044889180027530766649178506304957891845365322962393335172949098924832612982925010214926096055466527160577111407902313805888371158553484479468126273965076698095432560639063048900321422648431742434297959643698935548863275251630103084938335797722501757836954188137139690407710451268809511819824593463214681816132352415852400514909360925580269785482372320703671532018058907985316700349062935971383295454598497263249022420283347337022289022020053544850799431541350589975187304990302721991166032148090069257335210862804155435457129302096763389834451140022621833430284686138714423751717106722232648052445265551404259361287763445439123369202632431168798996230254524994392147616973507603742221734004002645709386099669168639512254216677036209388283001807329907585104519357138488505621398954558668035680124873052817876576821787153899734308721757002670506095792161868528148737273015049616970931195158277020944966540947985725134395782768873917762202720795981856526564944412133566816513441393483672206213600377026435014654663486804167763994333464898929631943768938506956513299073053379729463948798956652547649083884224184289157796719701617816565342431306603314783636883650611967109472611481423847118922855852650578942951540911954156530112818783159264421863301966006304217296133519914333772149208625199439603073564119436319608929465785313573780348281569587089142942560561513891040987670537770420961787108210866728957002658872411820529386112697139837314952075176828458490440686235133387783084910012709699174395615424528630009600703947204029986249533782138475444614905221354162447064676710109678444863239253442756668365999190212497660822803495181884555972428789235569446633376990767099191631827610047233832963536217490545766362124378439050300155115777975218344847150908641032581063272340215790519605347221392664329416970932670999730303139792824607902159327829040056158169773394358933720890935167182295755001321786767148346295670571338705412141022563714309530312981629384806642772915719272698739559342587054555694622879076999215758400095284856440977877743200341914827425265851645830715835658721242755026631659114008503946717616062967654390729494231188897425044893530880851955073564324403218493817669152956803368833903174582295955423122721052000183026005327083083733880355954119093359176853706454170665727042331898581886825576739996446684103199883287440001920440765975904827517583585709606915576962875074034393131900177224070755215102196876486975741319864201993161322979841661253788764789302235678224547261825870799968078892882204378898714534959015546206388976351657706166155747057854583250046866722567391615262836554683137329034828863988875933457601465349530319274967544410276233748566273988011630882021194521681170259590036690425098085963164651320989318079735595739126581090713016736570467432376700408280353972459709839247483507165329517820576581227834942100400689993856203312735758054853737715241413838217247045163205146725978191987862530100035548682580824807116927028545821845414976595012916502804149666659625765009962226550780567473171691103838905814884223985091065284998585138539850568185615176261067150119887923592349708447662783112169836031703508101652046669500346896203519191136943469990514232539061080504751790074169600842281253085483398174233878510035639413980820661386940047887630861540232143053257011559301701980237513699063136331064994611899603242554108533542981381883632749118515793333133407770856725710616180103290671559578190918281244874347613512391003314536975081139968195248463448547372349584288138750809327835613624999091932763471831376096195932996415873424605350986897671718754807347226574103888730709449731493056418663077874714155980632860668407342904944438540582011024792467260873658836766515145565880858005351830798843025668945250152513518279555810243450828815338268265645880361096809493992437124718754245668752595910366625564504876306567074460071895934942475935485542705904422944133671006719867413948579901315555027742669304733228638684123320024013135314923972301348059343133098241665794246134033787160758191896610514728867504920412552246140581733065205390365665188270718909636566952551404749769319467651292961507752644574659240918035423540541614092660643048436096702463882207150442662045922596872157882997084283971239845971398808609828674783325020760990876278613616099319820508865281211617263689176321010491200781838539594930325434012421138970953638122233046850305345816244714146741400217764411904454350231013702035925929517508935262698757811440234891470490582430959504576842405035211613473551179180763360020496415234825119665251150263859164652985919356628105086164816976295459330836646012401697688468845378225254320876857683852790063074583763192859880151230376415769788653016170066034960463037993271125172165237014851215253005155691882690394974447212172254312728691169675315892809249252657900386276258315783606150829641669400453140394833261548135632746303978562820339601900044824329179096587215972891661852039824112440945255033278816471315970877135900338343762130779113157283495066670576630914468903210434882710991549938885631068938580534555129590336498017789733189545642064883119600547128482407366599382005517801716165484070538518410224592006007837763593871102856289778173765831955299116724084695518079375359640763033253275961788729429531739939135908247573465356826755343745211450806224108074605750168424310548722745476087389892144767607261219414328196342537784916415256360603151193118997067289233685903391093937802833256110485983030789486851606734338183855984506657347052823005626963356070528713012217028625347263336663964619579764511700168718861141727624047955615211796025277450202164589910290793826105692176242183299425018838581939423863005095692012612116152160517031835057024132754106853368434915540747188192969481184455183246850024520733889543356235549238821158465771015958038163153536676368559483313607344559648906401752356465694434539568195709902848196321034949026065019887689646156385408938331858655490711881301349888459965127506719899769043697360811083532207355139862079929873595295292187535324799688884357632566900033533724524287631424733193839019195748179168830239932034804814278002284814039979306609520468138642689248420197898925496951878598332888201103556873350183726156132012425481904838264036574009023933575800961498125620292357865675535807172127469455191494251455034360205009047127378501386335708627131568867042463387256550596178975112093217371439844907176690858332144544594265454029047696124362126172784576958024430457385786755794495483572969427187032193862314400719412675966526468676299263439127220524278697864934384509451493451067487890593006439172044544423604007599160059617104251423055782166973178992728671051057695086569556699740209203362851057729010718405710897865439356011080741505310742155398526880103383219677097184049153369842899483083151319989029969883519323986115435874732794438628997042067048409851345745729230684079736290876408416624415127271648789595404671397673453374009678795192043176668083769403393105931657787225091067097741920160095644105174069478603285332545336512293568516085147253784939265270079018175566330968355236491664622221703565161548607424131848658258608068405306021865630447449810934349275839494749290494153649292156649365764453591701903639150801224866241213722264431931629996227233800330336475594855374380267859521143394854583854835379453240843246711770848288830623918752670247481639658447982766406874845389855950029400173736454916950315582798173190989676751846051513941966399690052965591520063910305624445992509689540308171207705612095003426743829993565995646925160687780164648539762852302426827772654549475820343766582217213591923843564282500281644148544581503790903881550622748748530889035131525271514878757004864998409258071063071369259462714735427637817826498801783016166067994233052811011103310999480933881250250771865358690394228601176638274794784334585207948744363483115324425175454112754940437956797705313712879827027027135610854604282781432476070638067762387215402135812152045759263975101106590876071511752663023098444203955508990748912158761465942940791593645531036046755292227442871030495027340567842869710318380054975030862320867383414506240331998191044015598478742182302907364811773010773814340456934331305134636381130550857524315946663857408889013994225460327389432833115487251822817560999773449846241994287080018585821438045813351035562924776720462789999752290560563668077369380037451146912754002680962554363856632852111027735231188727822746738792828745420139790923814704344910891551979212620606605835308951320909243615185999845492129264970610925191673333008530021072496503722385530482945633689167502848991218655243486242540016796036733841945598171971338097372508352198304779498493705756629459328186406891501757933785950946890134789341581848148789885143724886894676786307219463043630866203903026075123226107753959054434923228390451941060485728356923629107299324638986476096125780186774255908112285779034819505821196068274459582151433513235849881854672120933907365635311711718417236523248504754850787025095723403616193705725120868101915085602164816106889170938559287727901972754369021870063826581274967915271820723945616218349592007988842379995817533273092868618552696826161731053072808785721030868810379763228604499998855357441534770197829463085967224669691751121088933435040716637864041356228862310609883802545689374566097791477761606107197943294704582273747329281934357580807346974728619095644148150139446482265452203834728602937114971161529504032868697847625785217840589332058048248678452712212256217956577275552334969995059770989727308430103637696311121103347754078543968916263728250765563083961340743505453325456118298534593605432905214076038788075769104643847235326057374041470758177577101285037878413484828979829311148589432245522318760078244525713177357946023859879142346462031652673702222250409250664834640164780832232724501914111619602970138610225310639122392899035939236461162723648430724348475940239538729815668498422833435248823159159476422621425514617043877628564807149401890666151653012228578520416284756143392368781037902479259984618819708558121579739220461904206354723414628627732469430712326767585683094202956581704099421416772027400516379040752706784648396880902179468825028019323795955546844965995489425201974855228333149222570705063561712281383598505858829078987572447855309221708751895137850312535037702724076078292249737418999558580579227481333657838930792796334730856831714320990518070760259270979205839566877957336382687024608884117777008646944372385556463176789626424250932116743477030142124388036079263416225934108479199284001708732997447455832479962994063431144380806890472848985604809678456849140106034299926527837567070023870905523588945061285588723091406261285398480849841921842629006107982242927948564707529362491822243931253450742035914688938392651724984837796325580757331585188391925593216615681312293841209672136449915568572073181377947667450861453467124696067643417384501626488507772961900614048955662922825796494659044990090142957774796517948569234550379978747093086824657121438144069249531758673940666005251562095922082440154668002144884506697732029517312477075197484117011961316810599431695444150731587492809979418788755071577335071322853183316090563513068158138103859661089152714148154767957440346890873168983922296985285012060449429152338565227207644355424427070105378243592293329363639983268327895542352062671227356628636560586790479265453239513335581722743922729326736357686801336268715043887077300138580573509705806664548441861137978777855375133346452103734910717766389596735835438926493661563237041313334268815618721791289898259565595292057357191957298098184331403950635035254916834849958742848236214400001082868935872077101878575869964291019646780553546337765411611566076533881844421762138626847869099295151169227808484359633905390057103122713811867180705467164450302970578484738072098134912464110282996721135789371292360625050981109913691945482798531322732891495367027519577306879111341058716341047559287026507902194632925558620729934991604271852405193277550109796800730212300061263799399892627188040982187027957020446109597228130104648428898715173435312295148966544780584721154049366274808642031390701883982443878438930334224881525731641183367478058989721785056511592589752194115552884575610758792115815516440570316658833563281672701806876938399624168647345433839257390884846517352744147975223491038851327151106207806164113210305824798845971432502576617608811173764331073335207838445614672641029616492354504969140770273759327652916061049560860908415077236151490486813699841163428352655912053862654857078531804508182399628167273397387838976469325590868831819696253120541910792997092634495673564673129670340595629088569210312987843343876963123867624674277692611664828463834151907335474383323591415402054621587545070432516450997129903762164185006360421116306548311856051277382232133675824173245475771275700082636368716798234304611485537027871194379323541983187458292655839185541750586598294458559202742267876504852434942611294734163409426606594088898388964055963230904226692333454158953826572814747663694868397376035322250264645013473540689413937146864683193364655122966461647861971557588990539743161460580327711141732706103575698574543787994127426011280783712883537127652672219169021011331555632405866748384659446191497221615522448610389452584437528100978154047762569302996541809525347129965088027040884419371284984640906649613865248700412891636388486184920270654508010550290669580889631559800083398090230283970444366009885947649602563865410443180869447862490507295772451306420751124021975349369701230467074679626076392560991942760257494060672635327992441971555441420512001229769096435556522174328115095425963264469060180002272000094030591566841733848186644652048033468364179582538873052647364072029536879212381657319218540968193392226861154851242810161525590933105613693040516998240952544553805036873403435469828877540708259246905380087756002938979960152739616100395114558610777998486587358322497749035040249772514331138118827096073006861094384516370159457839257051416386550380101976023484023826946930335917588482398287696042104981150742341538267247660060053815656007347132089979769053684116655158377032437019786785363051583433999519208278307070678655301001622039990837707246886430046120851664218981560865167750662706649231313190801571595066992626114255600856055943471202405133386935298854518237636763327013704184537118650019724167367907076442419357159002263885999255110866547615697255799340478437326563186921563162884383236258459106183961241478740045992838343852266682006068349931688678241738336420533858288154288007819516475809736700329990503694087794094980851023030772232848499321065085005789436027973039443278137288528966099013543022500128385713655288025501960913286058659360048523286610140377957855638170424315436805519023912018698924427739542431104877229948671972661781095192421074662452760825146977797583201481939968398673624792227892146462248063170151224340332286630051284722513045345847087515823597170053049241671711391322091801766103039919638056254301719636373665812279131234980232032139018877860646174405477849392830137936866937697091090638430709137721312744820895860127514134146788638424160369381845857797259843866924760643687179115072709076977023533446709425633685457209460203938802569772040773019489994120400925084938436109010535717180302639147926688433860256692980924288506615338796127402860367399893627240644060971579705801316813305942691979753545282913404120657199852853649701868492849248764386424187439464928999020989828339380562727423859044186577400562297691687587055677007875172213247166780725694532659695084318951621817215914959373539365578403553532728071736473074982889819787463399825839497508205278509170601810276114502152400890399033349162055833053606279329091108070988651879707777593896620033720648888639053574678303339382201436036423184706121407071752903463748167098347216011008350407434914755682768084142305970068333108743801027577859879130994747543943111993017715380213934692046899377735622134779709796765124819320538244472593952662688939492172063666001373498278457037034820002465694203996283011710357408383123664471020163748193415560365908185160074364220641038274545795506716315575816996679161962874017055036108105291900149634512537648712739186698120019268342421263938981780381098630783938950507277115299744828165081218499336757759081761247216736672094942296203941242249984643851803873546216824505448796767190472146358231074022147819552712472219767730605043532560553251120718855940623290969986005260304061900763542482134592721881852599187247320670762942699554959648155106590508726041091641225893732634666852307179105967447754510506101367346885749384394827253815157966683666852369729285983992245345703647085877930183014126256433249171878709966869524204178618753302713618318174032300612339938557882445149462746737341176421805178519612144880391263704774751884922491423497449775256224226634249199400137694480940890619140524837078817524564337549869555219383776521032040156549030728626439156880128595438592579494875432674245586899347525540435718286716193497386832241438884949709476587072070169438766051948678814085809929480739965043407296624469478713561979744635831378823500581333123341887969388618778541176881087916088609029012661802329733532601164554195140274568263351130165658110478868689223893130155580540345272921086685896644452097651014018762515881482571519022518800948791106414522859243860891221551640294649170583937406320357664624641814050787460520717235275233516365715307311612109638758225470649205073229937373573109401634892438779342489943177694755475514449591174550128740884323103080390351315544207941778910791177096813628845119358936411858367093074497311434719709972182180315763768316032959910974224755043123630906784083533179604943096346941253349877877281666481913077352375974662952421613112842599036745644102744194181582946128117162266824493132814310792564057628087788890476241154042325237446656728744093790225074492218191554879953271240382588512808719962158648494757609111473132534420679629397595177435986425026836963100142556626182607179053325669589690354462148381651629882362977416414277127222623679832597361346406437150084194438783596429384229849220973561002701357393395145362161060101108981441393240837209555264612015961454673466544732161639295174109146983406398185937107793657617612072428806933883969299362269172069049465320601360643868041508573740095769439740829017378956235974807501980545384096855270814866865498276642886187122091846211398490743539500110946858288569575359059413221564410277683574160687243095464235281383950860697122187623051471416347638438366364942281399617313844965335377244287911516988408119050924638501379294817863558728286912231875422661980602109710100114389382807298030541667364461103832660576626304197688237899108775932596200883045376951030405018645315049456898009255807864472046877868002522629164414255646294724207164890637086947907824800538514633317905124006788758644193464098228919825308704008111518273926809783100151831281301516192092663848519601692538021245027218241342229907260619712073524185441940772992263221022255316146428893286362612342166441171939470558098768260701872471161890120266282930997455786832047105909790002454166309624336655866113437065866515416017033946609254838316639538566974117525129786328204445949192865440276712429988624291201954037612348219199500429426191401249239493678364827726108978780240112546378196127441012279530467062876714767381970363330756998990070303054376789755658604241064724783570094113540480953851427416656069538821890059301280672494186044372660156262207496421366105372516547868102554154557136471184254884187332812621337859142149543628192502701603364636628681947049171046153029423403502437651477515416904779511536281663103069009297579615938027774718407589742504664312204022341701308321902664322466191492212011497276953944553059195085398256059135551438981353844150074953214877095117519708158044649929485419119767706786887665851955064133081892370567479399742699106772909164569123798202862062642034838499247283288765627359602341310459127323167533934165011364700028174240516752850679450705458355220869957774483037773503762112840033282027249880062665789572296398928896682583570630625533623533284732054708703697376511898384703782235537692692249215776278548079643575313316112179378292137055862926932139772546804283100660098728366420126446964394473687923075628812490138790607656072825492976613481532292935490966029507947290950391492611480899532076513063955814381321357444180989459800266105430050381290654288479391402940690887150577907432063215760209338120720725859316813898045518750448018276617075122524652570327156112783562569811479240086458187464352589025615830729564527191567901165496693980267667524358780067805187322555983056352480838015352758006904893101789557354790133248463859462459991006685009604486651759457486069626216955226583008700464852801064606855572202593075856167212823962684044255918836525755500346026382619330612610363347899043021371101006584452220205889278631138528089036708419885308160133720119983639813155234023703629036476660025778179623366490707372209825992939080378459331494076365336107013230197831419893426662910528156650522479884418813558274547168362760789342218614667999682771026481737749934026442642296445971773536177600185377497702317893150862197249191009269388563496129601836068798919908138735856565435513193679498616775974499263245186083211407317593472544498101561319244957576711802690238368932323922694872458889691863386533866854223834150862347966240230613069371239948057173600277706253225906168363913370330681849466989146869675720485216204485459418114643479471094558788863897658869221648384521305725575885885663527514701545430166079769485113709912842332377690750397637601458701881343751333479224853189422654422075537424118322902781751618094095206286321125681247050540423645859350700274701704075813897685031316857319407464568129475116792907900121750768863257850410429438500782755141432354055392202521100822892179803530445684309556839063815059258024652363617668403717931419656337858231306071015907187931191706055141605138563873462628841250128471211543879964044975443340879219675820554429987255109026478567536596108340716393243503470109942590464289623430868813571256454227926984459865307047986841971404751590158989647517732363788693959198217574454142630457340374123120702560256849986928195697022218625104235244824942184076198693836674807213404764545236325221923547872538217277416661925309892003288418050703517006307339692147232997693251707311241396494615290670641550295152082558379321428317185953114343510928310855864219274577917242927612439678561093166438758385618325496427703092826844310592098890741375578923559377347959235161967786543922112061067399748458578641775834157604089896085290282404989420976699212224317256421769208134304749585052190491175476869867319737206845561952292032875480152536670176150647774467025189271370104231073370356111241524692611925739086691226857193349516158640777176773102082963193800239533040306654543579109087017154414939415816545747687416829279728376771052274546942447467917122859968615457152780294673025565500250377910386297314199594678373717931274684702038076829155362508558867426838896783097145511760148496340258395332362381211551389414770074083699474882395797580334532697202957738930911182289976424217035974486264538922617080029800336448737010257143059735114222233481858807265594634443873724552317555521038069192460797387235813008257370804997924282066487585956115943836655368728753975708964187465554253776461008849793712451071053658153263267458317737715931426237720251449825330735440973789045139823212920078686940967032770443282890172188511592908046917400940808316164902714570082027073118772509925560835224405219188380229847095332984895049582423681489459432459163147285885757236540787674158789307892258696573160423200912360579972867849090525515165449659621819568215876692625920010471761855918678338909373985222788229820322544059861988941325661616754747277382164063921572373300799177446795572072934521125242037457683578600344311723283888418102908514547618237683725772622023574462021599249159112027704519326951341381078961658506018457991557952112281804820388404614728918802414150398490628683861863861068175725065977339268277215713975953067736763395655690412912254402240854782082174084658576749100785299385543389803718564870710268917400221940060607124644181658589485151193035144981591432637832907467970120898972454387378497358177418078738418361390757125075583721766984177079069770258491010308698887099800500205445215133774089950029373691491841574948798331704824351833752619727516414483861003701854523745505518625688131362371549921173091650999255717012764703067922074048465932365071796772702674102893523829778820428077726786681560805941995240899085627643037497449514481811338887392167083082220354947905151443458383519355619061407561057132897876060314381721556353063194165460729529532133170900036263443464334202848491454691609531894857787242482959718131491693123947478714263965960027957558150308011804488419904689794792354365191521936084317450021378102423907097753249951181141530798293647810726704972715093238785024519996367880556250793574985236810068033176398125640656266144375151766447478929545168175790308619123507153761560202561188692521883253963291772555412649953482632178581536233108261646523098397531077904929479539082867015340001066079434967976577876654638766687751288553432049315136353933391520907829077926315146019973949548800053193844721858511315738881867820819584275666311422746621803318998237401144926959363265890693499394902774167229653796891805752913696372475517379605070635853412337147673131769970083832955892225839386025417288046934446647039470483816552066232415761558593729541620056967306991910800809896019299382693308620234004385883502569205179367297841448960870603175580911567940174247753375031707577301531189986445071968459215086222046485451400538445355522559746335402735030532031958753952040552693720220824809232318254159559099276185813742820510377355838283990212345371103579129581201146783473570548939816468801816155967164662241507317579206076010046288594702227877858102901889381897648498548332832849962021383665802134849874236227278224888140065649600946716768239991610813321443006270431369475003395076290713014312220118910351557092825214205621570326492666428309788016396349779726376314669726440236239528662414197427157015958407747777909130451482090093934299959593911777834504379362099530916169304918342344008390385097038252160657311843848617037724515087722695206523565346001868111768199256830462423546783305678188309316514392241058351635660692717562374997271033269903997235776586865377173482448908920628714865504415089069642892536214195035974619246605505552997505774214310083466688581746709924193287244779261464149364521380388802501754868495695948284201541503321136875795533533641350476907025375920903988890730349621948041563563318472101600057001783695540804047466673787142146253360211789018753267135253502482750308161676389077000901831314513192423492001072012490810870001854668748032538442295001794346856929108839409708505682888947218080898315211753976256515598232835697854700976938853230867725882104829147896999906459230300393115328956501084464650144105568051748358850572838231889206405947572315822231438731292063765248293719166682240592566034029407146499291767884508167439755378241957822703574575491829006940828525420826343006271438964053713493187706788227027927133238731478890352977274935426469651475032831670599746584575809775507837135972195884763231603332696236478872265155133274943224589190535953275589883105124859802341214684372876536008571288511444632785563082036850656020298871339705313707684153944005210529182323418404815115067895792547418433572378103160289100857058015181562171328070113228083237956305932621392748786915876282638007814417052757936166246605561549178101975800591714916594300283875379230198871172724719506090008355262531502052821271257570806721413532212979475997709717391287304740092837019175741510268406073645985235382033448385791105987600126006143796587753063176862897126542931840483412560135286105719771720909981358970742483697060183721269799651864269941901967384826304236481700389918993395564944803315107731632113231349198669629696884634071753392937324636829909294999934162654352905590744024430389380632244396637225483019304228903740843647259072568468830213299570535461481017622617247554148153664906144874014368720615705036345245958323232367697234831853741741015290916217995318338267000618629951291454897505350812475582165206869721062807810277848057075585621222724904811369939100326871099516008675123041823736930067459308467757198378864882610656459231339618556106714289384986965580154024064428556140292298079063815206227796781600864517791952189949443081525910933587889001360678089683378069949312599486855013074562931051549309914464128783448007778548297893350221224514388035664977853308040434434335865293697661227660542998132263606007196342403507192476078088928800243712443176220878772174216365539626044359062457653917788754736797890720107296641121380675192343492048038373741199279805352891819274688017880185020573169609582816451875537358269588825415755808609080672723031391094406529824105820142426600800411629937177033065790881650144975227611035799133290827990545054739880793122820794832181000354896037638069808200019338813092623364127739380797636486898342252401802852577058099575289945776299415074917771068553396867715346697605375106410265058494426673846354589323851076036712227404469200695065232110689736303342989834632201209702740960758413999169332778163114027519114160769183920288420022938658971793867167927503148955748969722643086993311523101868769342756382515131860074857660782741888837016631455331285323762717326957267091621372000568113754780569253863118865609633385047777375253345395585763104896439870844543952157761626911812347754046851953104810596251771342994025384755844557655802593729849685833354225896181090438157136724979491994155184679145618936848280804039424785878003552150901222556691000919945571544381701491700321997169776530427627305207553999540832656774164245560996030478913271043716374792207108810099781847293958696568321758320774159881511163198185819040710648449472231122792550434249702045413504684967200480489990451473489863007270607086450699233270750778007976253756929786870464412940526491149769249851638004583126619879394499444653096679274648600134855095073532808166614057647415233673759098036174450375120185243915648609510490472051161279333858258892163485454462715367514559841275372657311586861080372926072179240534370507256605747740403419781602175012973280051316028674297947717181775888880840322760125535323295860218465063262048297841925139493077820759294133066386059723977539740415872325573183362247163395692896004524520426191322636778068687789188439100493852018102556495800026469128026794449662274014127163298248365440987675006148770563289726742827037151914363590274028900123773434533683309425555659939878638869205271772749465688713124380856950573755303562562472743607502451557366291906293065504731091910485169838646296939620452618864580422739088389574203285225163539983018285636745076445993351149773572449838089149828649012645698876398451445545273880426515126922152766493524776692634998760224034892777292710121163551357200833805814111037801374164249808327718336341039756660983232231960977739848231527672916412936488249340616229334872151300507634122919489910535262709429443106535048394550572940992981083579953326685184750134367926304974673651537123033514637506224338918774470204583523938543096555354300225405458960890507729946643425498253375389098985098791372569479539861416957239269143600925413088568519854186195909636673471460060209795707592141797941718962454671339821190954708312967739526800353862026985064747699040069043761037564196486555116084638235995902104714496980827438403320770311365724420449427582168386474725890486952602279048083655693044828605421233262468163289223307927723691497550672600764128706749784112723576540370038236775955113846529498007002112556624042134129975841275215002523410611399245583341621860761530194788543195272044628262456165962614615413680897931603911149772668219750263767762741025102361128991770474457416732002545897437757916660597723835600383697810747536740387813600948641925266703134215714661320299757548494029317051162248576895396599937228416215655963282428214848031347203851993352462061089011151558862276245162990148314373648314115762878328726927975521332524786330117784549006608496209931638695721224755405323421971143498219987931920331988419519656205011726161064942737053255726955942232520666213685984389713090064802391976829016951096278378118287768053443338082302815558646096384515998416850224018182103280301353797257413951440281430781791748774439674816505901193138621328577394954537428901851733468940354486669134626045483419494845721209652627112325639676821063167528342832565745689451519210238050560933604265732223750823784550792971741496838894459559084967114328093590460882142638589460630335939245362796580542307060535510908188877739484947405179688297111105134491140831971042629765751669332735999696497569137745384272782033517486441040105589069820311145538027555269121855167239117908070025486633443556665923414572574498570929598852429840580512836755997334554975184357606743706635443783158538473670180082644369788637139458077698417657653387832904603386666635432109384403996278029016781477713354651189917260711262981404800510001268910121011099585821785479978892007240195437017577682320231909183840807714752951679181608242303140497070872121799920735701908134095246861270503149313308996369473957495749749268727949684175761069042416989275194921803526256618289619904501659716188009978769546432363636582761058544714678349789531799604913122562950385167248086301310017418377675813791654020627230241556474937294872244581428265026692119126647144653918297817772675757867367437365999823360655584561717566276816034085501644315339480143152164826208379516404267705080302085775904463496496714959341304094272112802893010025570324765917151062542139378926197965529035052042383662123011994476934937930709097439596775790766376807733138887104425293133851542477543968171479658035264231583603823071563039530836643385918695860749073214825101191466375610887568422831872584167679050112629004052463453440010755464289232316228157087334128082740743185168432386777845079005310026892116964265912720174967215205584123296502140202142687976022170890686646019726319919017210627394371376209131661258217492150733560204447366206844087858135102301943801823633729621694807400710284740933007338909857714710296077028678275845262797734646170062194175749108282469528937835096813441177228432902939483569305731659253378415539411858630018608324489684307446990820897433477957426984741146948564216615587261372722309647362543627842092259566902113256360149999790822796356935790634119963320852233663875289322948046730966093962123322790656505221424117510396295909065657390647063172965848726588432646526023758624605481167599987653865844526916637243323779664540801604298537780084413176659186393541566041907078004449217609891753093282988188986993967322630034858524008722291301032894910468166274009889743140426294579149747106344468020192298743711471116686768642914637399161496710256621729257694429959040602566147327151766956037164515650718285871807036758144553372560748314946655181336007443315838169104417989406951096827988479240332399715057541057805419303269380777059527577355527411762981764906861605188525402479134477205234391234585306851893470560587863063934690516325643935014054162399197280725328341845198503639951822248138621295241934143736481363370085595171778464767014357453838612162614510388110950969230353282123505427862166745501114376897608573683643249519393187136084495838263900665726527218684017567035666251914644575852201125198683885396182821419945936275817756414766450095746086540284827574064084172267206631986533579214768473143287300759899092144701337887874691623155993558426181695553868670722978573225280006313989254863248189342374794441990638975948268178908260907829968501798229501440045610827952547270677069408779081931306936427357117864532843193522493956735653962396420928827318422416606131644463659029282275402527508744223707599136808328820641727994474197464586345138082953882182465568769022362996670223171705512417510016510764918112314502851615421321019970444727024807639732562145518230217111665151279587855292844985605663731404994102657841998688442294568304553162664033307048216241871765490244157179041049279503704523185486806909529655524780945746480836433288245277021925403366030251457785643547355736807025384434241053105329463158070757080223638141733541426564745931760996374375287903224513074501593277449644954495691594927298234786110597129757297583858841412300307319202031112063595158060773152102299202752936197198645285332843367176600298120668898210381566533339619701395217251709147708355071491017282563577075964545085284206060554447411617269978474636120844453973341126377824818277325927335440325139479214215921047864548442437244331543343424021844693264530384369575948597052243208652173150341209840530121208081014401637288910148412956883727775486511508352069596074450663257760320424104937217772554342095062658474066044419928838227718729317924843675568894504139715871561058254439449593295563380815596263343573477816215633390041171470916503925723698725901982538665042819125301474640168348083976603147319281199926388489858303610326847359730122256059236764458388035083502167726988170164369254825876829607831835583762628182804200506170816684419130513241632187313406955126955345874076885453376802689295247649514715730642101587647988876285964083143223196938851137872674510346121412174156227822777547331082357351330837732446168642336485788632376115217702874932965078989563918581710389536295935549725459211859361636352640981097436658614084724829745327501505262092847616675507868968677523092396395542506652709389245100996725999069758892262243991919973077847009056883104644412991839590233919720107995961589551519774509657314951699418629837929442531260796731731215952178315709072917643658648039036533387316420656619193438717548717201683778333492200615579921576068697126247983406620551347108661757822307369978418819512492607262041576807172707966076971463682496867936413284088493938817928741607453921372531138753468510993901926547578318855925048109162413037911025498896258979914446725403472627051612407965553272009517167583960644358565731264017301636025934360086237487629449576542069709987738679547567562360349621812228979808304920074575493565779548947047235231737933328888374219720538469419856569203289418809423918576149249197495370351598427795810055864084289848552726674776332428251929350365840943148152425250728032110453781424132911764763510245994501772714922230954800185057546608300867111007988444488855554580505768504051170681896148668287378669350020765842896362130945469610831410150444551271277693565022602976402822803182881664015009590698567103848237820430830227975822950412535930929243783589113511979527881868511394682734699284059330304712766519635636182432947223596133658489886742032484061125405813532421948731169364269005484442336176410355930186448657604703462663103984260648553213204501779960067546583324129693280962719745025264201061094863956814740044860568058827032681551077357106230133619190029359157963693589415184735670782685227312151065113892966431936097356096519019155593174136977717076463585626046203326521935124228619833958309981096921414301049255258626119959985230486297703165398786671154363803420633260451040457236906708621585481388452344937099566001024764502995389504579684856684280289945716901221755777419176414656642328303582120463406170039086089674242606770382084206264281996301380745489501231121664484389878373355865582892134429333024251116373189923984573266463393049647559270688955180510812338285233778128195328983534099513636159937564106111653595593069566115920436328090541694342875110471375198424372108660438471498433822562028204346148803232949630151915021265621660774469837955816474930855737845083901813626333877987168816891490064841719733479477215846248787597224015092228404852401694740045278933543716048469492526671542965515489349846509273661138911535241279841452552283802768765853507935832361774306088873182653525943675576429941411977875077620783505858518219630582654874077745772004555752832398549395031984274781241308424807609025169350050379843457178006774445158827550199167986750138996428811746354776609175307206285588200909491904391869716781357703591967170845619668959614033204526987178422110942703902037158007672392747198373655556599204214914610926718390119762095703848353849674475300980531586522619043708228272842374301065373343741238138981404855022211122141628856855035639404215689943192020705933003848558175428565160393947932363168557872343759474522489270200007241458999384049858987640136019979752763164578093425682605075517393257807140689214820984625336012155813321445969974976623157406452454680139870583751987353687536601696194342042754231905964496986367066626769068798573845138107981964563460741435669759595609697479693396377137347098608257050006884697291419652908585498014811107349544833368298124450831702402262177293157469926064081140925993740643101461493641775284877834011516845027826266966296818219018256961592791734964381976041023278770103861613151242146459742430443271288976150199067698385216136295056058297659121433448545847136307105338781672552792641505974157906951483430227178790477824203311436674830343695431430033978347203123754959708918433596670028034215044369715633882157151325661276937628243568673833105182667406980074321781936486864935179797066142699872125263154661633915431920792022167787966251657518404397613183093935114755729158196452823175444927341275746658799641304478454713209525371060056567151678521145589140105455339954377145287816902670178897542473693530719991758587047731450879442325195140137555470779460564620965740217723129735718313003746363204223371785687348898024003889329502145430779971996888728445443897772395601999121664535969347410127063698285019691797994242759933559942137525630582704514159754122078525621351442354740529620947828302692834286023092489371132107394695751465552308357161373935862037335219794411600682615612017024859146351244359212626049494237206001822532035244888179164497623189799398702465384338896611337953512145009800637092061927048492672685419776503340497135528632763376497263537601204293961224459886303704352241996765887345738459202251042695681840124547578117979223092395467704024057007530222048204512330593346603370858893939585389954892957817433032897905014500422459214804768346685578012200717162026842255248864632240641480230518797923552996181530657860849000184737870810740055035270451355856095267792223002344799297978067873011949197903989515957246154024342269875069802891217171397516316726955423654975212444859093659776978679762817430154221067742620627446863962749731458235712541562977167570867588882864567048360287814758310303545838031665637751354961067825089508377211980648958689443040870092367735359591934668742766942232754347152679833881802755149304171439141701951107955914874297220432787520053212835611335235875225244450481843167221359064047301386015776284890598379469057932670964707111275349521805214637755269328235411194437160103441889211853396290339338475073343214215342148356950816921009554291793337867195711287728018284290350914918665880921674903006364467628529039216821041368233767747736118114777674801958338738997995239283794049213394507504635320183226406709914227118794008096187219681837128257281175845196135592161770918719015875429506663307794004495443688073090166756352696134835284679565161542347813677400015987073428331025616261475096166507070889672924570281453366785377056777793038387363299868272502703364225993294414020000333759287676639134354769016232112610181551349666318422840093019429625156792493311696923688539888605100826987672157397834208171033897687579769374075066968443304080319504367295240885539007591842935273936028623690523724125381974176266833498885571130282843771033476612029468612705135786750988433657016999082068298151465228240672922046576631195541122595231926136645806555031002911456765397679003408629319537924183055321647977883909377882175082724568153522917297092072192449594558945299135251366391634648162836052907790598309626024673724490759071787084330437753467734530666145432470554935365220318099328689982341701583182842873641447230985940277912980428626262232889624150969493655753902963872414434304103436479611086136351656543198179137696385739856017866671726348703651373747051840348556811424423919219519989994974340544472139148789102569636205645699668753582745531354303936937449271620017560603061814352772105691879741958803523064787716993897730761356498634110299841522464562415060900284278999442120723454372979036820556624510405683277671783162684969343952696538252622058788618066651925082727122677491160139250876319070907401968840738783853677815563481569891656668745944396811031453291193720516941320662419317563486640148075379207197198832964225289807095828845606501830531801704096980575081463201841512972088819848818535657732051963711670363964020075873028533231608971335369409078610053480665807918276155449215836622368476368300936913822805319151270186394952202051915778382150082221495218386870771953739225876066233512610997713558607542187877234315538736835113983591687691723693800685414685562099152173214315440656796975191616459459094104953469411256460339261548419497808434634799765953997656634982081300148364909179371236257148661009900136159228184401223802475559326662945752479725903357239230823528098785313892594514659787079382485355149566149521262414180055698385047713617590826147153824083677821871468959350920189774045741386884122276397022424811321796797772264664824871810400875809524517714411022788004926303380695095669003834150469924806121981430411547069274154887158277745605277384171265813807899658563735778103557789859879942194094172530857051337093951980445549311411798420414366799173483420046298914214138270910413721686255486895615244205708549352702567837091818273680249874795468784153355324339157255478664599415448507192712527426642180996585471610806853725207463205747937374663816469253329868076694376309237646025267617231968016200291261554358267447686303448922100270598131811502965381487749337821292050962925376154868303025301445575691026146160063882290297429498339319030075680567010651562626163109658644933586422137900459060682424548387779460904629421265095753183492025557563271915990585183995235933427958793664874827705762908860152883129525749409849727393665600202697383784320093766560071838101038538470786224530793763121047014846527262342805735071048098049003646050904561796575092956362200796730387582039676437256100789420399207390219309012421453377720986160670154376753036113413077147866914603804942040820471918914267626272702577160581117841502137925411016004494968736424297286028342190097372790931065622228272276430503541702674782829539090250359099601910595063620848787522114946730649437242657859095165989466460342772225949930245428350349759036287895622132859161840838511880160704936233790897113580162319727520209924673080250634188932685075431567935348431301147136741506069969033662057998508697308683019063140939983655584551393461549863847340665442917583753279672793018612136709880004943343244999211457483673862346367656822831683052964468747619975768475255593907055092324785478784848466466164051441980364021054366380782178957498537574481818740891833643756548123152244574498250300907007860284374323964582201592048604019801068842404095525622296151862659230781851682284604635865154311191959710244034466809519800003411279197246970839710601810390456823284452357129917406617444667322113368125715661410949209764387562631784808210830644835100484936116844183594377894191473547178477762050791428852968650302183468455693267644497445547251428288351182137285181927881356170279820184433385839170019404389037867942037170002335824802362742693254029407013007795438928894797197330193433676616596915913270431802979836992559050360859582451003697136433910309620880337096307670736623231759118631514827637816090885591804324134500478691497390707543267786847246549663637283347680246796746100312980096946036843746946017644068390040705004421526036018319567130694735283040079709150582283621982511111537916552262827399372843228740330564942067549044240939369735117627233290468996805269138918512634507159876498271980105591008696104600071406956889056938288946281290889300031149928811664453864122184852458634783898572310202234516422216085364452764470047440076596924340209419945418309266219905812975652432182901280452339115451611500840564938338640008150246903078528421363798480700638104712992070443691828616940897567472270692537954118449754999683550485171561672555396052172957935047349005812722519963571460065375157619605156271173485005906879627348256161688351033205372158681954997933052850737470364261772354679878618255950647580573675747834978626829536326374128075596550259648490643808646182941080124188270846958359469238373457151166121881851811643510070395172035430289771985527072982527566163730746298747039654946803834547272876873682607753599649176630316951807799402799286358004297584753431433437800825205396518384759637023001682911661906900019530339371500389916710480795442766230587596815842494917824164891540606938182139019794960339105318878432414826484672069952232688179135634036435894190259957623809454938019232934266916348830473124259750012731758482931584597580074804336560838305940963341765487386954806597490025753686722928687821730165970091612586071527292300849083697682854714975278040624071423919070215309604229648783999468480571842344763918656022777877306785398170071684761764735491882808298259538141582695632019809695853898051301599347368722530080936155793852255983003203910609547240728645486882963795130168363405854201621301861372164311276512630529508830243138395599776743856800997206927781033872693099038602591962195642072403142936629481243681318020986892129324863341033244131921425516991279475129779012111182723466683292107542530782659235831692174503920324260260836269876351171633955150553816170355013324090127382491542282038399032007664296261619372510474573469850485813764774416719344927132024598876762161321956204257966371065000312744891060259476303331897566020676276089214490631150390376684819873691028707994041371228986077550346341852081201119302441724645512135362725151416985895708977879958447000285881763016454822352510952872125680729941854013864048243639748235914499642488006404436744981026660745612446480283453610904480362258386604471946961105301772580756143391266200486236930694328314786230619576202376213731197155715086692876195986341913610933499887958487621753133773843820496119393654673887388919205933785121368579305720870859694499954027544414049196858331472073034252363088573234745346508478391147229944840788409359877682115387399799646620949243353859712246479895368370309286746165159824955569440062746200152362769815823075795191935529389709311577496436501317000305121594733399046462436526022243144069387911296580408554174337214466637781779970674520465247934949414709712139010530403910938387622714230905517737186548971297908232926912333587523242846411564566095203216664997947919946156459704240873527328044706118043886101454438999936862323693448192919655461513188078728158814576931293325959851611591253556971326526252838324419814308156753243741843116161231654995463277975480966476601597382297862599718677957408673777378948635940437153083694022645712838091793238670834464117040254893579657051713764608245012711853778889759596123055127586938098271817217039470296249155481737570909467326080442769431342549768956801131539284741473170404747845373816108061801606244250800747104226276984963168056104077630778460630338137224789663962934663677028402876224599388913601653154488416779609906537903437248098114742041045297887127518529596790728542905887132413102981564847875797178308617200482223821975572638746831561654630908692006958083976928026965374139272378238168684448891385066198388622784183048484444454067486495638518745943195749517333870768734608240933693211251596537634961337756095218776511846203748885441806838257853906567052098897980471049786349772780631100922769227038116542922731022458728825640416262578852234293641959710122721534269388161018678723388629147856569362350601267687918188505567743188510247664705976516550863300601511771906435275773590189662431528577160157332973003776780817072866251325626178007778567125646409693945983092547223620835767288965998358703465296096043850038535879324353557182678428033791856776762367403817427211235170958296682768357964431677163678983092807841247508722290790991465901565854903268977724998260589091786327064929412489396048143014072371224256810197573506066461771164583340754822349276281405883845702099332078763169818481557952023292162592835005340579819353856713590807943962735354456900962491953028680050668126147989689383026507494219803026423295325310276117060604651956174887238364904120553273927063901410913777776281431912700456435258300501459181093530838040162096593208686284922344155147886209011504716856744356573210825548293270519226720985078861628341852965560963037729635391606775514616289563261937665241274602488994281287968696519195504965433346738816171968486713683873664021123185696858713855091971896416012667900565729436853329977835792492449512911009660685938886936467924337718522401796004950516091614064976838857720605761572802337532038931894017206843984792689126857062132093808293153913149885737417665702217427929642548463676828532992402508097142521434859991423624344853414014465933124299101548219510989877186521218055948521426052954587660662110882245802684863610641624084371915523097278013732404161918192809763341497998218564413374270236109297917030917992753242290730631583465972430123584421979317639018171530599012986174964915400956059123727058162416272603923522183987230256171773742092541337652236751793322041738586855116803659629905573554316494710206534633504279953811175365416578833537340646240583076160004173616489898168496693381535855736822815882285460619326830509773729328063338647480713012675995984820876901018420295009183645901585839748713486451787697143651231533227774831335481471092959993293968995297052078763816080834564030827017280125473677280527160890784378987921150318652418404925685556289158988632997637616308566291546800112819787281410275678972304916865639856974365999748471741840150338301722046177560509783893872730602852262588357413742675788586281829360023406584662887054352490112897093408814170856740049882082360635707237230063200699725367795029611677294938522877691818591042550645284279955520190864324430562627958328896316914131545304936049516274891160607172752644653857812486972763840938432575535331288168092352645414873543057945090421738297622929343955691237366891620606628836514721124153689926722710358554865311592302072520853579470293420355940300695914727862702565888112194891336080338078089611608291599678137692605153393578115764920158208049419622337338496642555245478994280587361196706869002850353647922287660436486170868032436665813973379534050522752329975673179917382624650050447005542139681353061735155053723714479796493492777662946656886840719191749386136610344647136021101502492965042013119076282077740205488294358566902069335731754529975751418093810590006454836040225552421378335181752865419999213359740017278191941777729243675633840119970138421362572159607822584337727757708607139175942811017821769387466392627532227509768762456626626962429523835406116839491314102454441406029964120702685400081797673409602530245433473696855242791868365991229840271846518360190391997195006934489098862011721774923376180227548414652691627119911223272252365185842943727594360347363689182204710565012807994349694551523062627689870295461078942861617934744500460848411731201732970450628822882503023843393513916857573378609364687592291354355248404813260557916378020580664148442448541127094737322972843287655799072698084206289576030397492829626960214713592248545263896613724327708623652800014817333055341726738383172611736606226915582329428332554078115251803367562768144070058068798988868568215129991346733058447518891367990752360580952567542386431948968284718379299192613046446887902417892544192329030131149663416478525134207696149239748984761579043056745906694763894509686444593463406802890578015486271355553731971511411289655679675019943477133472147472942579063378968463783036376976371572860430275703159631150811353859331634836885426447041019748121131962449395477564244346858801102365684167351997405831851996233256612033899778118378131647467398959161466342442805351962746093135978697561382603400706379420367137638109235639646264325581121281861440978324186505428556976881903941715970037902863767224432479242109494272885340870609295990103247440637942585217868332197919580072848016469481616334330824477062423027155970762334840258776600070888739486543018365470159528060355440378536722380062623101579148757397520488798769482015820052748864280188653460689353029195969994208772090120473682350526708038737597617750825644617163344568545309409367006326548583835824176930424485986301881783954412115848432009927158241195948309744260381560959898513267783149664392623516103075131557546544933381091138542894469175707364809831692906685325591281850029020667738583381731605953829051001505799599916739919974185445397629101733370307289476134663104108953061715143430554666416847094110153808815495207559344009830021952675538558783419337157845297472415142945526337273559429264877356450015328056555724559522327924096572881705962483645641367735008371187190310672943892609939701704778682771371903939550177316378125020726888766715153283499697760734915784801030864999380270844422513213574431312807504258584128451183346923318144151914003030545441202731349810069211867673951748773670645002796172363511746123307694493005501644809528703084177661338418687049386680414169861104562532709912415984891913980518767741258641239757245080776337636857950060300185517723544520728987786190291375546897305887031684711404304905336728519499307379059756563587030677821029885227691264167472164141348900132112789650894766628726050463103905343387145662434949899514235121611033904046319748796500399760689439375031975381460353668901515104956116308509756208311600979532652703685868043391383700232036608741768626494851229785054676364654522050086768774811305628602712481095857969493982666894862792639749108968222053762298998800047477804931888917720353020547750981622930983737856717329738629215454448550996634397223385473606730998112733128979109178384297353071316563561925898726230202309718728515911858854241370012748091756693583908932719634947664676144310518195632386032918670274196059565306982552319665854057587056083565841402232043600218590995787122854656801275479501418468287720349841526799406056744327702892266899253542283194720892873488783697874689503684639674081161900516670561685720919920090715257223508100257823758506803938742892512535714522332805684255949513745144847110983823707317593949428988294769430667983350646573920697850994321148043895265144894122751586536016497839745953678550296282297363482754585927493084898338980078097132335191088945753142636606338849812324751531198170625770377849636970002488498657734724443863119663948421429000007791745226258223288486783704014476828829968265679581241424264334652274548727821343792015459192444763122361394128749317080364743816053970484036684350043968005671281208387883085705570475379161018809086965999666828936745371173388912483068990567477930658663350498606900624365725428125785415491169263089152414467975284579084806011998550194051838959894805538409377068611989258323279625836030235152991260298061170195116444795434575723436988749241827241630730021528340271845779628556625098902772947423752675504076011160346823563415684014581672257106526977231113269392902714145257071934011704981549220121970689319998345425501905672165214159896630729651357544467227605108650359263113564142521882394997989417519331605325454493341388238638133305684616288486667197541731033576422186048286983190034122866990668267105498553268089129393049946025921903072523822457045915555901868278959913641115116508783538663547076273502810824217129109084370010433503423748555554925360373788079994826004830741625733016521042031604586399644668416514462496004096028345882202433382229637149690458856950428614832640131158327030865812130410846636455678055593369738601501716977630194483948956477418698907631524030000170697826936673360474420575786917434961360588702281372306601362353425707014678031732173327231841289298710482914792872004279465768423717947721213848307299364584634197157149765371009109216484691210892626678241587898806340028264399473328328188760696838271815056628458429700447973396237891287144601168498049900175219557798420316580894998312238053092820890962472860718000179881193395312285511226027780041441112202337624647074329916581786127888421922058489207550143130318596005812542973963323855155690446612165269383623208944145554348965296983105829536176539822372507525869898213388967159840940025598501287548021589834487180665474327215245908699350002532823767729016591148596770803955105951015873500179722535446248825127387929057647074759406476766934076050634582914464350283782115335517832867765651882214297732294584801964249455242482914102938025602507229435420492112803449225488000653550437261199121012206068767819685836784611061559831697245139088968907374259409123425741815000705147182336954859188014495138702435366971790514944327253948743434499576104329432632548067833791802574116523956551217742340513617885402068336821928371715005273243177022577492937776701133519605780505779215457857831700221215310293304779670217286474539845845034803830470127078377001090724999131536085141164405827329141408158176537867320770493729678367565325901801872840706088596712399470923899322185164925176368895158823235357717942318003375030787266040715023802421901353487780472853675990271910359939251008553501870664019698747714619080671967784455472719345749333292457651588550423013579914139225880595749500358725822060976172762455904629682814975607631517528818671019970897241682547559804163150574147368755901480196272677103077517275455082437098826994912759425425978111185825245802170610120941707382051234874186862644948192644297611921637968493729791198830066474845846645950197999859529234453741968508028104896916435851238379585762843934030608827751693121287428280628576970358062127959412168567440720526775809535426073862525734053642548296141423575756485611965650685960446084307493485173006169381047547783615529896697810871139406178968006862670237204735345429810663584613442844134101492159827152854423396570623258428862951490168935774877461327948026307145389765846547791381265025907101911752532859897973102293234470610000172663294173935473188143526416406929215771697049073431024803433394890310037858493837688414934334031821755203209204148072564033732323737289698814640567617488629833663519646679360259553932320536020228849125171213181363412603310077369455069692723961215582455755750734063782435749849613531886827430119882148466808720591165950446046669904539349828331793425463255807448851349440765447716616742456451715001695266301293942835768927996676664916892666199816684350037931144923472698761242297218737672326325557937763749688272621790359980653421578085262866083750467322228430646401976153399781226451707710335654268540538534965931725469221721767708218404487198387490612305935015383412125005215885271479651581130600998010288914510538205513752833016803939781627619198273677553789298881468264851856760893290848760052541741659087757516918157972361548493936907701531619341018633647012852572552584796587754914240697280331080269486787697492649160812327778193575094279779890770249510803792505914556183616611830958099109067710540981024395554165656988526678371538378995174469225735481740355194369000134494521364582859947485596190314266607055434476290934424827808739645339232636518827870114029511196620993194382481393762706332233408414640400546641650491011191173507884621496521326111715928856975945889066570297024587555124430938302643936661281025281109537222580013884628747657828584978950458069821976509027996143661483125382021429296974742673128053035088255701376277881941746234756668439114746577382436818926042575753872138248917289495027521146738532198751525622171631229209681966442374644206953148585187540033459639543640798698252907644194061488358667338304112456167679935747003448579221411774461618771019249681426432864059097214056130906206547014858662812372005119237493928412502587245284237509064224047533587587107107630113163961703221060538178139190617518713396827815590438754849319827850900922544333715956710163592017159958117087643172234490163104663373257019633999829403617903900720881440406595985470334038975199071569905062384795711552349158598607788317481741478738430451793646030955181806728122688606669532813491334219621501451197329305382134186872931227500595148633753378985234710145674881333695253966871159664278136451675086053149227060828630701777849003772599576676511773295082709465953543288878640593994153209676195818283275257362116991894042103935002722980664892060716642463519346218694590624525447914521821154224857303723869423904931519951627531011768377318714247766023560739670062239713419347759940476268279957917128402304740896619529887664521260293943005754608936923685474145253235136977456521023992046008160541442893963491976052262221825346190426859041665503637904015143766341878789666338369437164294126103685553091753661671760825693968328869760100397880971439251776617166662898638306706824993770937161179802433822426907990249006163326874089606287703622388027978398476144123665613120516684448947617893023729947282005440813781452104417328610809077401519068546381607344274546061710639588582622784382070498271079917236015112155056138631028751689348438553211605331709681058645168092549242423870428057092136845998627953143373224591146095953218225761550381587149605658354968568145526835002745527590343195754129331407299073303835303385713790165483168829082144357432502552740737439007744539356654923680440676699494270708693975612873931068155532650829137014485790982015897558613380737357820106782062000837673870532260420567853468777552564711373249081973850619457672503344861813686634727009575780424293893898049197415008665474301066094723129364267376805509097699903121929569554500070696925154381763021216915856883761717911259463922869952759133591928731100228955337521958600981024715903947082603901805169877929052278273646729059465601808464925918738233180139320633223088874591655122684766035501283631927043428363513207840458860889603803495007462173851943833769568588299394566097855969655576531326060194445362234603521935911096755622406517100845747342749792189753868213682270115678701184901745324776772928451317523405738437742419855720036033327251598592250532436303321423320092964910049786348217535328799349807972301541550189388063122714264435243532439125758950561715020669478736003559185222558418674275082793954206074649027418897778743438148873275765521741673595748696308659444799268712534088954659699983210185284213051041958061332302773648379321574351312705201700100097857282206786624907433605897731067353550219369507617973972276995258639893722777148044848944000608773928641677212704254071221117815970941708389366988958291439187848549411732355004542359559737993755616123520035397547626662543748971780282544710926598166999657679060459417835328173401985100314142413544014662587055086041938034206226775807288824576733306966555437034978858933446549214442536767368401436736058261752550926327821127347936883420471128089394061154025053522278643222805229836330916383250231257577387023408855334043685530551069937268245842255776091536431136901991878364194387774189073858521604137227998344756668176438426958260709523070633799902285863857044722933055470432328408224301809786989912044323883418238151897293472847459294833199802357137653976582746778180838432112236304169327941263730769039046250222355262432618283777365227085993335808483876365172234658269317008832815598660476530426257808598918050778419466880715076799686432210857410208606819677379571174154354965054976519735975811256718085894054887138022722768196775931161659466282261392309068516571817648391504076124069159907145170230802727063490243799750975479748286694941027503795128031051750608374332028666621523219972806880377075531362400783415579826022383615241494473485744945305575263496502184144384537254973186832227212341470025931158924878315781991490171765602175467160615384245452902292286176908693569698349091262890203075687095461950529441827867192945278571094489765275435125213867914832832623985605556996316455806838405615738898848687718518478703534358013971172532376676113774825642260672379841250216458805754250169766851925949850888428083519170697652374641854239264727290187487371417037434669249843486488015883504375670625375961174039522959280456465186455247102407403583113960165992467271900234493043390188585804564740480889129825814902415873155280677149997487653261128619522192473958198065435513544012764453600164994900917094603134868320087020241164699419380047358294787757940099573420800096310275366945901098078515634880350074277744474195161840979183828754752906311310222570267200337905502075842389969775343635578801904298886942231675694490667623551254774926116173891881845371245069716647883310470578614110948120036705273916680553825227240953093080280432326531681897800039383515574065840102329227816937254717887889665674299685778698339397366987059382388162487531015624269234312046922932944411710183680866100508878187363129647005548703123054576914026342572884611823325668970497881836277071111875389199777511819652451661188609059910721554780072567777636088799949727430166070807700384017459072321336863409155648714297303153076106082148969634021065424838756770408276439209932604799151922163915738040238709309996585398441466266820566598624934414476491340549869744935017132207332681192235174615157529515325431339523534337520331932434879562292371357365741952396699788569254642246753680952380597376824776704344146396924447676212723408944645137584813763970227048808570154127410567268464302763270527662963246572114881827215135422989056930834371622341784702904384967822813265335398481058181286944233074624432849215468075891163058374602000177909752152961327350068905203848791936678467397982432412895021335488861142537341870958657369618545634006548774505901430225635034523639708292988405210883792565476717531802445769888379189448239787232572684022069443138273323565472424327564378176680664908382979170551967439351827901775192943181822395198171556837702584410581240433051679963322445760630490180838535064927121500806156473970268251645639787999381043529713765975405594909347476391330577898725111356796562958617337700398414986387551066204355558660018705224342096298922899367972985980095962561519938339718808587318872341878458950193390629075722556069650844998307014000538844114216897817434011714732210822159406506213544166099539692493552660730891318895825894326241360497758005509182203934377738989732361278721337424796218711352812365261097564734052484611025733915739862440715831317196320551277510723415838803110277171481788292323488127383940198491872318778706898184186970206996937191675951456047752188250178113033532160235140107235423420880401514346833083786141370421826129182606679920444549783973888976684663065789714625662676385065412954460569483215349004895274885287471124196558795316987172665959433277023693025972245893545617219034275201648869519209787766557978101942431506032369662097740062607608732135356901935157081766542060321493502923059865504941968570227118923064296649875044142561655717615711340051729903317307014265812788380937128710246623358613736209814811242031777283725728859803505866025905663090028578136852082103731073614586639595575749746495928424782015826940826861965959857040436347977141992978509178391283969550546911024157257958118036391816621282036409840922814099494176938546915886732983524878267755804464802650537687062388995527421675524082644909956470314559442289575118430512185786804138937526684631090324469818905268502424430031493229504464597856998639298728600824776032578335007663038112370098674836809080273121977639574537005677091938874610158427924177426902445468882558849473687862913578142802151189887781316139762046757966432313429175000248858562103103014460102610662553911160173565248838604073860421409645346082994679172274668896277544283254212387118635011436430366672443110629212485324588474623605836061822147777675639166796653328405273228569184683164810827853073898085751152041517543850746930466540736113497932368312996699902946097105688679919346388653297016142433422988830612855598300172421915466072882744856731643524493116294062642298842462071186995374358204872736742654516462415906110733063909835005095293783079958526216213779708760910198541639952680277387962119076273902632944300301559587564433173390135406575687672276015302226910713592326882851650770109520259951976088961777934652369995420878872948530013333127706597277653352544636004782038287470356257099824487062465713599834083115555839507132323391557327974544849431378246454039574688807192038774223393675411750678523032637927596847597963432831529705910075926071318820181001006264798690598571258881942708936456103725450527716854464171604402982526038588838136029362590248647732844646199658396582930337832221018578464980127288495803852277405950242330372357250178037846468697461585685214934899588355006134671800669806376470826417728778671559003954056458230306526385449262866650100324171581339079969885199250965434848741153016123421724810645442828406853640469990710977405924712090358833038810811832989163266217211551179512764722220428343606698101374537807356416183977284634233786751485708059394312072874301041209575516841950761719189848318048122827983929853569850746318427272164443617643097886246756862725038466743593101657221855152363884237824227453235560414073045655102481749747722037168096289976831827101531368821882043640928343944403203648233475983472403397350153071906214315397149788697313358014545375346851472960541107789297753513564765570427235030260759964009698258518141075170199963652470911953703530285966601179094764375681754517206903260082895369313274586220663968164612185468267179106554268952267710217765668051049792402101498765954572204970958910944258636222256080064324751402145657296949042614162086575168414083208274437552642680674683331868498474610215134823556276927133329906297368192717503759499098842164118996164977188045287069794168195691405852794762813318744367044649766821328948143661345148075204101582988371173865251331063926945926246173463555157422106821528114066554872968186851771603680289133020705406033813921897051691856123505572409813967481197264011140194357690377888266074081955970498809597257399083377231900028623500141039359956838586110538432117005393586866661062761340240182402917674347436411950136766531393974504177938172152051214354385210142993123121125459297538206226313795337612325896557497678677305341353688689106798305611675632180629823005565540025973031354356546069257983239890514518536281785415612560516926330057995853640483854350667300679781383638777125422353352822296908303369062983822484372469157037097396187318529255664041325239532289313808110292353913399179096626564980341981887789220437075532616993721949054117771080730132489534082751993617608758716368602588159037676675303680173065005578476234481519561407964110416747277120027497304355597874128473221806529914427697265667395766104645019099214018768976054391681386983535529048234666176948930399472763560426274367376403447499018521620704303428076995446552431078553206901529868242674845071620295062090088480104400788221342375859519647723999245148074808663760769328896116774961095043543685274033419760932014345598908542595318043251974568913571410130254919662212963883207135921014003361348918362568509343495713591644037834817648924952181771982553925060012862754491388531513339456147523350818579956513334196099317788117115211686409720126675864937799007988603990308559608264011154264350743916734072668241818049740048027622793634673221528834029003263499045799060608245521795601109670898469399651953929776549800436413934516782183618868612971067523732768225484551395466144749488981107057564152858575213432214898316605715104298737763792317407039279697286645983547085984985341042157338994309082420157062833665975614195459070883168413449832712664287191749121878775999581025379096815647505354090594950591470276807092916035410431187527364829144806216465902667011245955153737399556613616537424105217250744888570303570145773458429080343563849743840056603642654785417441577075415221134861860189803064448573528361793743183425705622117073005988396696647607606792753478755851836213828825759842722866577572429085887250674975874042536098883156583525520760079366329391466573459377226908349908242199042552384565706831422251785700630756196740862160262516747909833183933768966704121040730590376343391938980622745491281774500556296193370527813844225443505840825517036045989030539349711873549432793779545938838358442788911990321646872912523682532027895400524860448200269956536049230309968482672475990451786059967593819686175924918121797219497006232135679061978694449754951850114214420738227102055268313002587221585817030868680827887400374662796383638051520643905599100829945794898013207434060055912336848617302303301443691265940504727316902532003032121565882960150805156831600792094638806588855509132288352729513076603278253241268530224900292044515864016857624730463375485029924611696341994146264084819046851420301911248663060925172939749344033586751949444808972960895420529106485430843791381032367575484316859693131490630835677731669167602821200160540014924446974806628258030955581235088879669752181341819889795087481807763027454000150488014685689820582816758939959679360129557204710902329843499709034841369638497323129327852951961189760789073646549537384827947472704679249123168081327147668746626584537856038147403832984184799651246471814236218486072221687751368302290410834484120606148071187631866346544064309450534650058595847733357532768490941697329887319469404268297471313475696758858684239929369958617177328889942143824815710017779458596174859921796028875588785531764905864242461575127779790489198407645781652512713152196621838234356645599456153520750723914418417628129360861089482362045630737580133706984804062461211155334319108073929639355881652225441705860607616615306004051213851312374773890211824175735742299574362308087367166586086033241725431072781910823696340630380728735027108568620429792750976909195291460978908218469001908258037627335767473655821684283108692949639798597416387234304993011832929077940247348926241892440525672346084818084482479764853690093650929155588639372753728788324410519494086949767195486836376513334682116182530728557467852300603153987701951885146045181785371343530599651002302778647162400246472126649140654522256485649225357992677618736154727097599440428572227175147743481857146861779922719817948464803873202046010173965539667954861830329284792808042444290236679637810728217138912818673798770384692320539621726428602177026138531663870786591236976390478625273682153962383079821918621358900927098684173848477168352206583354765235732244202716258426692199443712516023175394029511001167006076399280428061310662139430363075660111507937782345670560889729122933703884322329172224176679560074259188200402648502288079968006286602819619547825719411996876420385798941369851064352100098709811222005000118540462507415255044132554591244434640528467754459057273197651460808419260552393377038303108673636103475013589375115411332305407364364520711684736635628241611753429873605110440275535958144333458951908924373434810662827427987337816776196467418263456851142905826643434762291565291486297022930903660526794549174948081216498759182075990268017115436935382929089014503191250475075751827730248679105986192600031883562487761552123667324928192191297060434610014641642524721679236686027473049689730454500437849723095929348785814558225725616191820812826047846417277410766301795603608561584271282345073454738143916784803489963949249599729817781385643758400122405902225809430865019765230502685953895278790499934993089691004991806987174616242490663872033392811655006037241859498006731348001960284235382684729031762417197622406986395511104490481777107947801389456208147895397416105958098037893255102209589360964228374919511093232553408009799768249086574208997248891596669186256253495490663278271318105556840725483355435505295085876058849340157934080946796290887099380283801777458387170039882962598930517226502534213658150239585381947522020810317785534957586678292735469383250351352478324177712213119076501890210122604165113128264364979331920194957319018760114639610987427298567589851442980548172232054332584613746111168261815920576492398944234038580127088735419166991323701973659570994044500456147242190491740159526786856930825188191769070009056614659350659973419072412676812787118395365569862214053618085074597565769612514974558413740383147261597808888988101350113098922777043928015060201656483414029103965568088978307615370265187112512726800913854699447520510744505584176099721153096549759467560103416339636845757591072626853559430562868678178551424790749743478997525750430856902376756137039924893994521708484579069325937986396403125000917727029315993692927832625248551684454740271261850479029312967144709949933711741414553622992784211955719417386555656462874762153423159633573869854401527205517306802001081525732745131747235333595395822967341560100206577217219549847526852777832513779184637938812177478838339974106835719064868117178535367540232657999738561859461775808660786243939664777761789183374087025348303141463933210763318166558242047551520641278719711606453374652682022575680949862255313615565745108597436189549833590244065721905989817812804509177381226270949175419958721369594293608664139955440452630570036426393036154547087502271480342965392197178160044136886951829832930275503328315595383585155713494572630623855265085107279409116767322497851305954836667294656462080724823563105298871209156932045368091092846552983293651638005595033544211947080259328365520608370904392000726587287513898235402678705200026034168865117669261502134453303476664278376610366664768073012985387789222113754476191048889496118967493356193120678373940178649470733619483718226811209445579336222378521952374301675280682775342461909068259809883274403597883321468919002306705717779856401379337406707159823060943860596295695588406023704148098521935731624102356661524043029677406661022455480025840704358001618786177493686969920524986944738961609824729261922114858310886061039175817041340098113968541047113086703628987617438232006242217747924296890211348894447381198169134198126084296331805339610428872363119120382799989455975787994394678027947962721033834709247930414642188822734037829970604142365544822467049190244462944961026310892754247425513529792447211513294335860614425629871462816759226137661123390494316844608336224929156467216305503938644282203237614423638037921224062602145996239447429544492773484711982468043806983853110903788937564431782510123797736299620324672347919071217018244193756268148613337767298573725669024003639400122991106438112999299429411202112160407807543271156305367224524033083360012888969210248360497310004353513945504573973847577057712221076031305908476579269462052231061543536862758877658528073619125403893090804244748420089643247723785884866999964381698051509444370688354260953310304448331359572783376704820151380142064491052141370652808458201073603864391919894314524974467495498828768677785722113915480664878338958784185152339345335860907420960484001226827681404541271929222084655282729784273933831472753241999943979125459076282896333678826884448830286331464155959127139747990083081150343898551214720447327232143903435939628703286218693536218309257230287070216182104870606550998103789654898374414033190643752649117011000154478084558632952827973501894996811920967676395284419384714548616524849516703122886471435338354790248302888922040028327951151282081798133897723768992471514233811794164430347956245607845971466832127528278691402801639834147989458518252755638250926868491451118104761741251148721214125554478717708816232904631496208372121703985822114458590896457239227341022302512883339354223000107285059602099603173358311936109191880827590169710292755289249207592813795213335440874552310612560240653427133611827285460128715700802613596004589687756284365668667866421814105183345982021124079359565648182437209196756435519550251767395663847712526077591564345211839125328416379236840230499662634473066894530694504665518009010708113417057597781903727617730648977695908192885985775722223307599234512054954576203913934956481481213979686482868856893148988348865542354001899142917932689625572208182644088991363294516814602442485852763033322036993222466963960055044588368285046800136065374975161319712749773039815493627432210500729300000158596218729177620893662943546758320383505630623244667633370711666017912753156182516058780797894473513974624492182234879436883686684134860384146299808670884587294236387917143935007981654857120498737213236472159190963155451061576016097473209568964447307723306768437811283603417092404522290937221458107742055561512962283125492171850466274602597582879076230647906878238710349380511008249203369953644962321788036293799866554995781689301369530340861008628807177568421910746027789899440157532645790528920178250056052139994503493365864252258600498826678649677524388083568069108577202243494430619567445765540407187009964901887396419217343585690619979322785107830113422698458306062405067514832330439162644007867994983121102710335936514583066184916323034720373334314276248543314872272350720960759351685139414317945467948816517959706428227989553592261879295425389334992796492486936481426705961239877099947283438259619782026498538478866129111902799113178102015630830587620210494891494940685434740873294650287433036454543042620202258400312323482058876976801168753664388195646085509611224582958293573945925860025047336707414453254897595829796311796392894028394475131739977388625119444249909084217312648896336942205240853518297534031697579003388987427535751335317421504137198134339022062029877977076059373904395549093369042765056268659803833927783968427334930724053399737189128088124127314522316734219866426077485383250747884069249776089572654401400226261786411871370050999147269222293640663251698321125370397851196481377838224245362834838433443160888690417389655707060052124973222704323933600373186006063672814337737607867811329099305752600820630519455658939660304040604506974555404818872444533810066510738691979155530697523892097500105592605334344236936108061042982986285890601172120843190683377417204046113297879049944796188269775194691823394639977962465008383299178247822906304286993900346101125147865245884780797583616896888488288379886187164705611491782055985800507837778343015120781441157183901740877247186569150765069463915928041071595318401624850018223068143410575671883494322876219045411699578657357902605916751487169424373013226245106784488746302170188575670526838903538241609394898686383201305957325585654083422173685265794574054208276734401354300345431734373383823045713796747805610159163867959557103868099809692193072397608892205756003127970066187101015198521537510739594334779022132082624103865321106326712711438886530229858840684193791520240968440410931136217936481427839381749911180220544576815037626596520117350440166701280288806225981810629461631373765732353702865146136420538489132512841274835381251171038896311054525600073920513982576880914748591287167653799029604492274243127438940768527857844413370561866275436956377447628203563107522322318273814883962171849252647963783458585163535503329188137092333367918686700759608626379561410723329117796145312897871611399797341140530883998507609076099846089938964088858195135353337422647567766867949693311927994036384363127844004853873672784107708452844712309989943610538986586750587665643641598157501682627473432421572639719686194812196005958765956935646415726599111566334883308328905304752345910637672029507877637710445846527404890005497944386966482188427129337557376319403545091926025896163158782159537406033794916047204074750885040980174326084892652059131433613719313188062256380796899170235221768548350840928463445836137243699508114875519761510792033825820090483377915707739289102632291276751624535663199774252700065856034732927965636898866558057311974427605392971172184177605139486399451305496257177504269692839907616366336447731759357139113143882541509901639050496417343896239515090624980673874715830571319279759959648885506790029637121060199949573850876258996613608721843610215864007713162428649359331302493653441138170310412265183940074585832886224823864976330761525839545061287278090542751025025098726860804489468652412960209571873854485614037900401521541774082263696227946777110422332107731268128300569831598670495440816550106034995178864287905092706510367606308268780850476070575327766410756526184358249092096110563336316663603715304847705954868413742001913458392901824741543539918194009431019278893815544999301836063617239601233384681373550788204243695441943275138919992772588590206473895901722901158434915127851675523089038312725529427574055540114456343448811405575373226450268765989750355156560251067047199626194224685128052065098317359941815206848128105144786200848052747413742291513818812488170568552784201359574766553499421629731958524725022036296925771284116735486829191008053052424831441563518692057780271854408468099288117059679527148715570458134607423179824975104448409451869256036374569155331090040366307685210860983181233442648057348489254119876769815561007404279492484373084279144286579930350646490803208536696918256677770649635457836477756724428672556581784331569950291804708295187708792467684453448866879503448149939017468786761804453013137594248126700897834384957632209780226151181786087816706780615645148563006943619555925116018642800286630006265856730901946891139420667872131214949252242429807250714750962317695595522280927423201814192461306518536978390145916226473498829230736991090689394300680875201412983243441943669484660116563415811081122355456912410950851610513442532628363605721408460000965814303009906901776640112433221194601332794372336806304019914670438198824676060025333846145113170137119551014767597559555252265414579974541703162178771790294964296327485433917676268567626135814033214330086691422485347922294856371594648698377208751139890644888635802656619130421513671845565409757419215885418331429296014471222231595784906321069449147802359808182562012547503988693864601000902141319503511692174248642088291193245643065401915059286013377514555037664726675100358710749858735219595325721358227511806912183980476110119286923674768952012012325890918905976389816172207428986814242103977092518690625929118153672025500242632659477518701303014716483215198257703574862570385879466559153961529749993383354855355328190099577993466021651912372284132165539968168417721272466402362253558672897995638319278090348164211277032131230407907475846070601864011395274404359612043443933468323178717781567781152616445382592722253976856596507267009553402199923570680303203961640206695047322736589271605157046506965635065610156057376380983007105231692967263912039790878790297568844639277666207304042132215218297427249070379211848590363387715530195547141673751243577340746989034563157046206552265611762586760924769916131000485764661678632132348880667891042586771552091448774339841957207753852021310713729446053609862866714406122728579130192210426666870501220778936347538717400314380215030918718658666132072795154379665277953707249343459239625145832566756611560567155158661107297786944442220134478438266514634874987688710133347087970711545103014455238621512157308011287929291669899196390791606807097846036398831159810090648732698843283487770532090448526730288094232164707251742910590662618609500678693436759017277545152026092228021413178896412930541256619164144761149341560977026394224745520601894161069538871899676141377387159114321723806973238771283654476547282571127253488608875855976079710721599712328365575833204201834680978069390229832591310595819307667424180425562926432349190760065772515572910341787153002327101082417630114834954283071896018594625969528407758919777593373617429873614195287310391283772636944013967721595861892047977939531234600447331405374232004822116615481393041585071821821871411262957407406584301711692530262378698810256145044124763694813843150020020007093136492977363104255613826199878972897781080199919856285286418488439487801436331596511877646298329612231914833933132927384359523573180721221895804412828457387915693462038564823132527083740190252331391584209540704846576952172069062092514988232732630089154695549785209888412307479980203265001025793784125616911046746593254865500741395000650648282184417249866393017557455507334577109899813745947470852334742760590498394813666959036534533332464097949076967235314688800972989233927039731863665121004578927219313748422373135749807459432885848993341750118537996315484801034614073910849990727859240661107165611796561745204370879234386143260123454340420993104388498998015592420729893260928817627858457665521280742370340170964122306018673378030690012670084261574944700581727386864343366037033360672321453013282995351729915013319064005871047502819326419241690314312517879767739217220915128505843482709414666116495044110194874321602941176327440869615786250297418771655938627247375729483667627903373553367900027864217066736770449603426933008958356983696017781795055523877716001493410872236585092458560510981178482148318001615776312142794379411838191704740807763813264227818977954682733646757553379457135898339342047146551588499047667363673611831780935930625478467619570142183144400929324618239027982364806595550505817763353688755789621111740147242328204335168367451901271708365986364271361097406092298607675664976853448654217396451238804378811065925788507404010160563841906461052691700138645952484961326019738493194479934135016059797879556244774918347186668909819024232866118882411400049243616290422189026730370156146773104008873212283321251875722530890953992690920155612274411648572461195314857039871438562931773442532937414586849542196906204727081280829826416653155111474750222547595558075256722501218751416631737676085714365679792551188407666376310752388677413943592314509527896268465738157348881365729156851355470874779149692973958396457524777913008597313064029127545001670690544390780005398091360237028454167408569574554005378285272602481183090821865724968702768233924370618530438412070256361217287690953723888976400543492685844056937368723121496542590509077769383532979738340591948968479589963182607773596616473984693690715157872021021658479701788299256818872888654892356198534630712549047259856934172593905646410673288544599740170985028809389054191987645142669161016701282869311316234780057680497487666275439649503556236392944535111467770848680153243969564864818914124520370128222596655507267663354994827841825763703985384490533859151979139969529078333661545435739048170423216644631672186356547670955320156572719816468907312352550374219601340543469456514082311638888573973360512068147988556798248888499626489385407665435393622880731575449439375793430103565510536028130282636782704342553545487604784443465946898234871878438125680218727637619748240559988965303645899549183669222353367617888568153142528626932150901678151559028608017487827108762179089117036412445249670734192567104589341767994830118125030879553577608119894971480908328561661831261633153956075718317188353258568034914293626694441704762556016791317973526671138256328421956051672838194789826618137665082022994740169257950701581559969496014695300559675251980059267008359532862158170436542796749245989618716910940896989478194939504683458340847401073061668088217780423028137036569813772328773387626927924364237733829361877834781648654148460498821422266504008455779728158757357019007807562848712789806745977768417684871009948898753149805706247294452041082463258835869443751145346981232050548249438094702381975198443692776716421748217052534884985878664487053915322698123248432965790364916794165498553126225758458440864936019293631501807191561347459162689226298637262762957876278659094052714217030641016407142542340541558067317245297789443245984857474525806642121019391445905639257076077577382541076603565553844452318942066677236832963716126901134119568381655886568380098934825432229770002678517636970125883952234424632004150608124905054767211116795638365260489973264556475111019556126654979467140327046236733277017096426492133737702385396333375273017869260140820715861226130781876606821952946337394580158805544701672210884366625806181217468871437125906440281002738104493632488106699435888410200869811696996175486367602522148415413810434449122722279807457481791313470918222528057608719028823179263035015362984067351513341170933927889527223923839744988030843272293609759025298712163542519482137010501537494386445919201697194688362926572201306592737658824733741980512381679608336199562304896900507972978117659843569413673732991717181918634708358268411689522087300002279043354595628012786182946311938284869403932327533784467049268896503071220692985736733457485161008766515296595593036411978765899647395361061553629023542478254990450915041667064265521198113625218269909395551283630753217185770416400942121753860756273829290568057235817947958509139427183275072552026087919089394737705920353328669036186644746731818910581121937077444713523604130992289794868909751324036055551489788290063816775298252285368016012743248650314896459153417437544473330547811694331922357822274637803473288559911684485801093149476270154254320197160182348406169625693266897309140158617860055429926031708642381872853840048185441132535734005418286962469707430434675003291732264069789912695014338547560187474391903500019533668016664388130886755046402639111807829984629183415299437287255164513739414137414585682112634205572259035659414546440786999690269937611148302555032904265351772631745996436167079935958066050949196666951817205131028240242546768325253305221008427198187236532934025579470393230170253531323289228471414639075666619059332392845349578102063119573095762310022201922174307042174325258066554061041687015432328930078042580377757399358394838829318137138808995448786277816816233778830492378012715666975286873909118793196498403891935117492434278624150452409415015241893177684435115305112530540295196349252881203896342541036797143222177305742427431404517649247438102390865444419750887692947248410731691909661434606476718354457383856295214095862600332850456544953834205268480521535173793193268468105486105165944091553131491740821972931717033456601423860577944486406010340975745399759556512432200307979875004040229733280560644708080952344711222255865493434120328683333425285159032556507169583138483073276201134863000542230565841728035599806926623448394831991739045971634895218646970498334896147061353135995910981837006831008358986109642022483405048657376761653862409467406395190467017366690746562011127594375856708413026755941542374572620260438614216375560521179468958079360126369260520057344035761122116213320580768030893196100957517393621409632348674257062661887265106650792466474514237519439528805228611674728634948993594951388563275997447492923578746629322353341435147561992226101210629299162881219007487855264073388808677527981779139703680662567045297707864628475914888022313434375573454765358946753847962474299611245073552017221440448078044015074558830352924189649724471485817125077225022684274396198948789537668877020984633805058600230013627642159894559304917964294328050976923644196532199576175130598261662412427977438159702270867621084219024084767197731490423699739603384698573957016432429484927213087068091909769826536704679560479337766390882194601830658444510728585701967806043079846402456964891384152507067149805681332947346705178942047490007177415742177150079879960260320913799950036022802787085074056717942155792658003039381346972881964122820281676658390349843235090413119446958601672310944974719908698207879382658645446725751368814451675028168844536139710549394322498480765149452892401275805665516059291390411194089746106513315380574566352883385154197135428849654477423166555372945575353244245811301658693654055423674471036657120437747495173935769948961679836425835954394912893595891599365099239903045241211259613794282686497288890798080068830102316437776066827519777219224366039956321656051331776991424560084075721549992706775112302203641180716303171743086935027356745825260504065045017757305778234947921807228618079113340951729114717918107037272117796405307893636776626822159631969247078697069040933069491897317633211443662532501224487334920198099030812854038605467508201655478542569938896909599318958467103723646472441306641032061263284387980967317496210835937917925838415855464491275294815889623409354040013687088245264671549318854079474419471172473658792672851244457977809541280429279363557055031703396223444295180694754273016210130756873230194241872124873384955957114252314234044195996505763721304830373443994760444226170768477616238040836902234641413638029302276324612927728792591876831288727759549088867786462420956087286826470689630002858009842794346372325024578436002048058222130735706155372875961177088133431838641369362444847368694754316390225997089765317841191804948587697615126092646456789716672283693583072491180183446802324102074989680794116887295369359494351289130537695715150202441854283983393862767280193061510516721574913247095924789273452050410825976643910057984547412440579172015082577085993442823007896866659955407957589152520967135466979658662355739227151713057692569034276025792085594976006670713657744481808833026468588372319581958777400456789628287071658349022990139835391820060611000829273399204909730996397182851646623542441694336625234612326260059443463037748974876291823918978644960406308738409382635012854712086713961911075922408660930534954886616172274955655773825887495514561433110030332787362015710696526802718582056368618758368759193370624565804588867656205587814422618475696096063363191263373870721397535347573532366675033797373934596795321744636832756584725975699005711824440184147369452636407551896587806089486992181318981740026103246444914165576134100438009362216235132309609454212739264930777874609899706062949321243719191440370064806218938274538519314708873477926813214165417638690401967985538829399695340851445907296825771904442819900581437651903083815065087933119317632500211245137959305310519245828906647175827771747182668984368436011362748684582943687995448650549525853464493231037386072728899082102706237288984383926448067096549419633969420644234067633975254463819918985919419982169760523039262967674597181839862712652461783316414776989853933951958220708369333719219267162975291722225433215737039687717378459261079959264469367670486161365280953201399611352818472381628649004025489306528512664360219077120325174681796488917765959051880640204586610591881543719029688691224794286543685750001683958797180578886381973590734813793822983847756816235514966202302909181851198697902519182459216651445187049416522546127822758826469875124896394643864025380599781655395880342116753401194018262502662750641273706920419874693236436783850947690410300998110632567774786982143555432146381838288716585475222523376979810742741288317398090435227361917754630524216014429017241067829407827898880320828066559039456790654516304619817246353836479500172228104723316350259854709712796516339486453238290850121668247762265772433996941964430156605391719455890113849858611253775538804400376277941448537612406844229711677060075596377816896562953969144351405703691710243626114459940616066629025273504570501751952124603477163401543266721802243274341019234044041685046468143389948368572686819242793571608033079412800379837592154072856073109754664026746790225258163093432627556329538014708319549601725160642806929221891014930145630045994224019149418599291239862158612551106111734529218286728961552652825836929558254140003339168891111514783936062113880359660885207136917699545565348768113879726828750640319721854662611056208991703198704378474676809820637749869265476216809301836393079488314812344063009131897360862889772386329269739688807981211862270787622026106207221551589229676979562755311978951834990528036702505908533947080945762942105909935378231494891800178818441664952201558774762909010956144141523667352581947737487391665247070284603811869822946567305911744137640354286760599704505240142617256428626266058897121443091365949547924665922475442329343908544407748607822478839140567981307211401483285451252849855797680836219659545902606062135699532801221157421715921825554089913339854302515296724693423214102989049326685908876358858785748622265289223952394106198435953107883719887195247994820178285503149913256425502186878163461997043869079949809748710736982660638706456726758138832736296461130940530282893127460482185477492391042996089431631839435870452594475813532281412664091026553895062380767260162308620466737529007347143829868603633566142334096566518469300880267887044358055904260964711170149187141186081321755235712361166016624986193210742262525243377119794791417059874043317605580173977342272691710659934163981889522117619383476305873358052198753825609520452260754022622007097650559713409283414077792944411269477286651218902800794027958356946508158436175919687423228349386607496659410664294384758373495849366197678231746433436710624459369139275687964755266791193462019351885345063273358198771492211040322666247148185403447200982607602199288924122748897792484298658549658715531004968360454052040975790250216834120297977341786495745860076751917754734407319027878176200654758247630289684933186527853130060165300520647954283757640431125602453952828346951203530553923090258614157173926790753144983993883698416600377477748700988717856559968049386058862398928395896843815772508428005277073246410273622652742790774662746625934729943845763873711611717329038672321659574136451124332362557212628278938465676710549358877568217346941399088089135707965973239797826444181741209830722086939761723814042378304174719022008032013332064693105519723232909306513279294422071854119308364938295299451764966208607271899145071555971387127787701491251839269722888002366534412558700806061791878990937375937142605616741081804280410561391779841053876932622046285251054519152778504582552477986938992692006845932486382145633578542093030465162491637365919205406823991882607963155832976761330573731668525785052740027813153082644687692872312144525237811454481533466650961486263776375789396299643569446946288445431899347658542327725306961741931857031542043487318440329459455705525836291702163354898060340174917665833371045963015214694904003967220084326088754211083864109170930188161193140266853575880897760619445812923458621914460047748999249073236081848947753607819286904272293825546438411859311532412226089004163327977406642955765747944822493442926344023084611942738785761734884937589643701379120187314357154829985272572643585890817607687425157374032144478265009425609054361504673059558916471925983871290110173006312146726399878907327636293101879668712273871661889242782747039595441552375596495556368750806534157376102924459028444543124739763393341750720905752025695147906250912480346843591505051903266054948824518559740751116965403161010842381912894672211318419956911029630437499196729284335658534722926764112158158688282070788373216924344027184517596311563567351696526908041000679553459085927059876409969042863000460920796341562550795337406906239123325265348094883369954066312894537472249102911462254444581459721536154768296764547664101306412930449332914489655683294115602672402605878910556828848644279945992608722266092009853664341283624164550214128339309815316069362144779622899037215743991898606828925833621307428975876186120795041477672065213401603125199364018126923657503540495673644301849421305719358011621704174278786875953498693502654218872374515786847825230165811603266920493942468811116725138752426414907234189959182800822966900161806863459400858797503971399660823391427969447727658920261612331952118829077345410492687276774421912703375337042672021423469569051970784504874613955928360635722565573259575793651327459289524935442382717676047291497733097436014344548092173767139068354910088781342479942448796112261309046914676831642253143974256977712536684899011903743815092020111942760680971827748470729136588622826984308820637891370750113367841918502629989917815445346963802917646618828436169437376262377211641085871683583288147250954848691836439804331425618721684372609199207135026834472733866924088407373976787201588614242488383990730266595625150923691218099760439229659537280152691876499578957554945337506001721123279689298226578249615178481352611512026961347671461522033485281216571495742626645308835739542257620449579406018113961139295989308774613272377796047603821301032234881151635232015243641702617908897029828256628618033530919711615194253070644106286382923774845798733579025414839952907235814514932592893603569243451644262146516382218982307045259855106151285944111781817427372702850876641673062638836864374147066445852067013238521425385217384558564672239017480538617303445383965096891963898249427932143343619142888787095730105099802034543898014426216350613905492107225870898889328037921735489413550925411752769959598430542541028325263172404268625050426963514748050634054484568283943924404890633504487563583400944584539863126026064970104284029622791894007350685859112379288509240057569117427715605482148406957863822993895914685003270429634059729388669143578441808886629912498402313124671700456571747550498647815081502756791009392033327062938665381749710471639732081153527406575741450673027641057922624011075941258298713476205140122142503241814137806221147091997584957777138271381497821715467796940734518192658638259045115479630825511555106701770287722306786321515441077034947915424452700782659924802156834547683079178746363030133418575821673190733133285622501841166793624366034539531749511968308910314314429944064555162836998496392576561469974292257131939044130193084749703953095615483644989155998817298049986227892292862328628000965396266495325946372339563839626258737991205544921915534814271535658864792265596722745163191251963215418122557179768202632683914208016272598691381276971863767783480525948962076675121196351285587709161568066506830052631486148283530468325781150382007648790360454115988181873623426464285998980630335098376812572031660448553181260962551893105804901252125107157711075451202971830987963914211281214553917685354230366011444524520426903561714388492477770526304156416947541365152591880705134859882279464112473584766753898216522324805494657333473561462989618429913976368720921349046013181014979662047719263979895733066335509619463762753706801337237761940086578281512585184905337212202903951838989064094526547394874108572223497233349501632390419888665898022078795451815656786027220567458517739300571061556749287587699401599478692317192804556173094475207548336059892397869514959370512662763652890136227154103575761503853290923749104425830476081586109267538225219131453872873931471823421060331822427224957216499296767525758912081625399110567955899707110952758963857800802747873211588022366396058031896091080658599751519440264335931104644586534545648998020167571171496695181351709329843570413544523316529019728951802334294155159969546485034573398377427856859614619166156004193706497941703541075341251905816683391411850896794376003527882328584746261038254099571134202953461435038058940434335058866050394449184406259271713757591173019593130237820873229036706771471588442103437672101902919895640514872710922421302322674195588249489961311379143168602406058370112520670269286069091449497994477296239771545190559992756758341419864003380830784233926816211516671030957237623485568381670095312119705507839538547274742788267725822926002292543078510471448085680684271115417323703478767519023461801342522816615462554411465502117975655219592916246727878106398143232007768048246286201198059976100813306562481241129753057637002203558846290399584129174836887268474054181757103608189831329871287710142221000447542212598449754388660472962920443551895738053289045767958906795415666511882611497353004164441785077520638819352115814333053538781191120092079665348324302087967691217950694186264230012337530608139211318346749215736228682747904776871129419515146038858547194521116113305332379747845784771724731290613615580740541231507068995724227821216272251740464968204504580412554601738077084338985228598986179264570932532919696705862076587571207712387405335920252037909684881347299417604137196468229321921587928129872968071028795851066670829876514381711594613601354597980490494979269146294016183528886829117488382894169187757305996675816405869470411537579726228458044399296265841332550388176983196636528890707863258805266861331574886770219712760904952997285164797427458681190450988149129116260253911865365502534484414804051851608546427461286412767300576517815622768285980046295078036301618175812382192640438946697090135854835791335699946396283841308363691194704919952704434196026782929002174658767541730329115610311001019638660286664988663104630065408159520825681559578655877405639752920448793335059107613956900082385467711911482901791877623821783547186720418115031405666050216414887407090946080651850982820372041344001397005207561248426469326128172419283276878703230387509586272923273073203978764657513906258559570711755474591486933188137106615227454261331265547959648519383795596066295513744872047240979509825290068353396957577096969399970962072472066048107024523090118286891398341260787471961106726783536942169920649824561764452683766265400020128047166398377912003645969107856536601484793738921590550268099857257649985125995917570371702387080088096285314646591339328166304542750209559099605152650394227169490594028878621950376049332731240942001759436763382397129187655365532901190751677559781693169741390895629900907873115578665511039805842191515795865518725116914828704925503599354121233296354048578365963537208625910195588053396438613037350389379433773596442765635078300474886728452860982919935348437595085434105078870200601581971632685601091616660864862254872419062244139676155096482977080954214710628374707656312871975088068065115304272979235005131608420275290607355637055319869609259270258035127425477081403459424435911446238438379803735543325751328797783808968981098827758177969552649832287037877021504555671823586846408911845147253550345829068111943135395992130577338295529907687704199090438848358912249741026924399458423373129159603372462756404671268457537119500415727704396723544615912136799889113208318665805114125971925265316232575990699913956641188763461279011961200523783889393392567366397134629805782084446136960495540636340896329831762594344964037926484664492487535983001778679385398521646766751341991516093231080246707424283647428921983150653349070847052733216533781106608415998083164239420374527494529411288100800639278379897897319446153777058570122610353295998285248235767980254531974693782303880523333582668765032048313525460061081847777125596120920110168335472906173110014474368926610357419203415821484158328887201712826832344831702524803872684400486722509155407103053795306841756326483921294027648354202070034752337090660979821016000330314616245621617192588089615080482037914317233909755441613722965993713317397254385392776990875657623935534624890526783043253411857476638892911828352949002638857363631889552852378952644343726875055298716489475094774006788610504249393622198413419194420180987247573887377321562492460385781528656648168210922720504815360223767163189268386908091056933595256860497843236125542774680519742349964161527778237774738522607567956591322938099236800904278570758156605552211392593145542287073627089641484883015339976394760736587401426945835265575542260016185792375816787057800643250901774675960121327129851400838641550917736536910918663854211060174480718167822738183245704356026702403355088549470153793069961363833746724405709341776220435259594952980406499600028769018863427080885602494650808664109389004422168944229214403957563489840782637479972629830326022850959887994217015964182876946625639349259037958781837198449271001385599948078524740680380834295642551458017920356754940734077813015860741863436837610510361924564888585342596698198996032408396733951230891199339830807370260671544084627850480145012709962320775664509605064635622824746706591166037758786178786383565351899894805138129056106656928390486310549283183308610807535366639765577678005169781707993462963382010252127686357271468303896842559409515342017623157413783800866034396931195255847980318826306716509058795875028397417068365993049386942557939773233672255193927027547962396732417884521565507800300192564309311454408260202148719117571118745123750657446081290463924455870250348811215768304507928941656345467402616410807989016331272929454214887985884565469575823884377884413143093417320370639330663652102725454219026223313313619191659835471203520003992288749481996860184421502083723674025993952212405425248546691896072358778309197052022443203413649316117470880842041274048463367297347265268200928477012063996787790902841612890619680304777857329007019054258187837543556107971860410014515929664959498972872543487253611025928792064302458055373448762274570535876733281783998243199107054638432880329586821945984765476607986863699593266130667143377630182720021680058464383505036031650549351861719051540739907944567629672845875962251779869074540901005205853777635217757109185268479780966957988308129977917118176820015523218787611718772564747039952305645868698937069414439132198580697667374807399206674269330312611707396272076915675932307164877695664899946969112250133135990149382538807407338767286625537843772470600986055848902072856741190238108738802339379323147287165079615325296854596290607723514431584355520454687412297810391627751256210952339869074584080416807870217462557157652830400285886629803989346030366913962016899876626357987446168497465271860905071425597057089041156648902401528580017667798017904802375920518507264387322748335352194831190188155537454613837986141331301574932696157619986118216479951394406134644606960390711477586629675105051001302511038824501325027852355914002772798733616613763545469299796942181148969905033186956611881002603333368059074016674824797300754499307692119117189529243953578878231819800895426804230621597548369911096342638026512714058192300981557688661421621029318698588295650310269460505816949915099441255555237785083074431052633980129503572256593950332687357786421876198709295938395711032988674836398756205892041912279936579687060176637819307585775648827714762168571939750535914956237127043400332913211655573081701264831578175060104071023873492054212714112331079942461313001346197990769643682980334039950093742830440037439066712034580395638910683808062433310658589146280411484902053589202343860837168828126434783683768389895923557443207512285930465161698114984768819604239593372402907379929037634646736787622728545774755049703308890655028996113745499320922956358621188715242945771145348606333307172289537505124708636104876409027750097532398508481077022831197956989954946076239895525970814749753788775776489183024567381613982142387686609332801743666369865918300428617155763785503799148087013880538083613020439114168470680913921695404875165277247876422507977351338788514664320470362835630783788944812573792909968405308309765374082133991581615629341849791029632557960212497078609193916473339183042679018281179835113462519925301470182179249186835164178354090614409753192292352390624435558896899355359897401180331483750652501384024100618425093481750412184304281302594754515153824662082782804640887871559905917231983199949249748366914022317324411385444208246400639392148953059584416394919956801589697022959907150534838375936867778164106093546834016535134466512619887489007689174836852464708215539005710606019564196628404436276322313564820540222628468515150737078973462162340202092190194023150210019335150131764670778889864737680534242605934641342680369737312337205218593983957199672147228042492712727474458834778349503082815724856265642027790426241166309010340255633285693474469958913087273411477098282498586977809945666820765365017717298991962840017475143524478666156357289616143227599358466561340949655816453842210633027180894059210004276489499894096621124579037691086987715076987938803297811900242362112773277001254449029313489040611863798112565219301680256621542419777858021093247994703631384271074688770284545904593142487512634535426782900512447234635209942368426195265501104838773900329308691521205110315277583625728810290310330902425631536002691355366162693165997024453301455920153741162440655384526461864509083241213599849352648306548379849587496834987544388139793322038918641273220019717996248746754568374952686939896657920876317721443916451446271955934640635532559702272945192163050473367155340886316541362237576594415656309048672594746887468046155780538810076378022852715480641426208572225282493907215365150897137880709244089536566639682771584965701724319719300393761726333747695477599240627628611062312469001100472656920273357296488210957961617413663895511575380867431652102440556475277955172453074235353230715410800719367076452721372080823022679535400281642465560642986818013179641381289987732266470165447834321238727653752480516377688250158153061768745691069242100844265512445755758750624067509815868218299937265719377989301113516476565036012352754823372094574364471166105730022599435489359671100520792205662339448738528841915827754208750721974780391846179055457276489030122830059412122398100807901712428456164618653289744702884254616107384507112197035761620135665893271715899599142679103625587412066181636005195788568918751685189194825353954574990674062056859918985572451020766331362462231856557204453525588333488348611713621942330897644098049677612226785367285184003478761482235736913007875799200592007556724277540407607147839130794628898881973163806876571654988130748053555111603474204692465453977163103447509797785900352469007378870272924997287400836626826502706675444617236039309846253128458608693781137453949981233211026381613907461672022175567800281247755203669405206995567573690618866954003954388582912206898554563602770700090282251276073860195663745000053050258505901363094718274429272874320813050048230544641676164616120073571096219647915579184662667236846860018538750501486788592664042893678034805614956805503199771371515048209526018836200874596267379397683686633407497148274501839764492830730816283174402212681931862223403602328456121086266875333214132523266625242146306920947613032314704030463279791028553520311931801670902176723558702744262762675437356629806731893574687573840226030810965282263815138686732560996183250144421460139825158142598917929298190155019984402224118322669142693643348310387162003919129904242193225803065433744754353311502007701648572296877849273950303057628442649340360434395896271448174304819796999162477003432343041261461923922700081016275607610129485177121168126560344334530412233712731468342333015675697452948127711396912855794125514877604632432556286217128057527513883986347334486800339448901937953650151997959920478035744218413985610472354720316705057946099482948855939288124152914397400593145149855650483026578320225191975047867108427467138893102190466199588507877159467612452065679064214708410103364959416193980222855023413812750933349641122007208152004791780074701663019338167749001802250427278551675557642519781161581162219137075449179909169552444195373630668570576035932261965092187164601681965459256752425012335700398916600702333831704150535961227451529781558954390602159589231777421052564679171748166541906928660638717384964926058471604569381501300544518238207032009488593183969169173693831742942832637526513165166402182743104197105544969583736297215846758145554732519153117780027254782741010254404632666887367786196997014847587101054497489944188876439631352825343966452247274575897002986439786750413390079590125653643036154801321754043178170489402295728723036289982514044040611349925398340757907444827850547034772186687058117046980576261178912381490449380749229911092857435012813923470752530955333797113644725621565283137724658309889396237094876908678080402697542004446371697264638874787711507185563541492733481061147386467601545455983006039582192905733196705557932726308906427047290517026704380177455007479631887468248889899373378415915517042004694111178217713133724425401417838874130332579676348788400557225396143232535045817163538426735520750479975567104387861526636854489693796554286383569905017896285798250853159826184249877204708122404440717442162502317359272604705296631508884539555069114130416048459119426368784732360562428751632275231421971382091892005577315728723597988369201780231915028779566874983098143991671557189335123670268109865477106993544658964471399505551600970970020203673838427575064763130643692439640120429883434542994553231308099957414175107306076362246971718583099359673360888471232382136642334144394509855421610356295464302809014600043779197937851786839861647623257710503143024023522519657907743928175705403796476825978607236216696259715948374023841113485988612287742691909446224348829184100320880672715105164463008863239499807840796692725387892698480255329031730020262169253168459656851876408475398229816594850071930736028305853178878189119365357578938353446861930293610065777167278177292956641928674283989614216659663306986268522243413217600992337945759035873568140267635003625339406273827431956217593036600457737482528467185330235725898107604463484888635666121917293735229788826651273285793229779744447107851221710798313169402524863298216019778578607943112396401141843853922393375320859088198156165146882021287532203884808100446005004880109217678086932627153681608577543553729173422327310959449460107534859494289383384097654400063013971772668576217422724938980001986726677414806494390103239544512620541084253527129592002856438809324419551851823414383957838625928944681815203608469707056628189382482875999377122245128766886361099470817224715543066879480786689449780012404057913958868014180136550764739509558722218135886425376384527373127389798556572351706438090212205462914410027923232554042309583301641467585463902421241649995079094858257772274368867912181725749706804556736445455090831286211198585361278114747699974904914144638072930693725270323758719958154210995279135413001184142562424984821305976983934950312939222967140575135669969363426605369380178223263772139219780322721611347353391919382701322273470235024474957085251630702655310030966357487633371061179423642373304941836241092026070120312389564492941289711636413984644110229285865293459281107444344360018946830132003978702812182945016561086430980793924797540474642088332282682869152095290381897226067461865682275675076820744239821314403964355915199956491712786779099806266687092208578937464695496567100584352803203746418829032453395032396069831242361766561371011991919584078890967974916118589302002534169354864351642205618074674288670475801045854475759776555910069759920116235115978825635648729655926227233809051617267991342222243533034617750492361677888387928079360329542124874155692093603688240667367645735410226599198888816006734273486418696447643274003360853446651520355936465946723810616910661836715916502624586561303030885062955125189254223810575561271254827012901640209714961843460820630437683250219609955436947240652064839470859638732488074867208488842080878628259352958804402943914146527907333428324825890373470460249070896571328289800615931877656489954690016044335265280157023256894443232618417336073459499195184745487455574610673387546325773489620661104150250017761045725430601816495149703692066585793265199740409394031361962849167251458396821401838220459574941868178670281669355248716810410985814430471800978133239901598543475730107336029856796931485910442174377417788874249588957493902178159669614127335598826170335877614322550157454566799771688013997504236168016210110309277745785820472616117543270706731248063649870399572571170359350144932809302445446874017059754477151917867908339701671861673442407107795305349380858972661582365849858523590367276031318379850704478918212917273429200420308337767615085361958577150406904606807551301372840685737799997323680486049496749217898575210539797328333248853249622155427123024064167256099901836594077211825498369676405973873204325687864172427366027121805094841397776598385959288689918809547963217911042342181695188937544710396986347412902247703882705674428349067902001901349105114385458649280447629381212684600944495049750717136166723396073561039146857680114676820286685635632688650136200439899571078426940929334916352231742096386597328114710778417352588642824302996612830981942766875786148028932823994916276813229699008339359449858138031912300440187464571436790149415827330967918579772432433998650769230884981912700875724569162574296323520477490891153501175695801830102930955940780911388129539753679669397519963012686759236336931448959597372286876972004414054631663072274766772896101836933115169644652887934187794579812128516031615399659830537022516670793163884628657010683643404668639958728630592886547491904698773604706358061444915722619669677419086641670780130906346241510893564739190985576764885955517294520085806059818947949497190546993530823918996032169094086578797552465420433777063213992141515317192151751582612226966877050291555888854119242161359144469721807706014811834548323815086050335182033013121080870664115565197748785907421718788754267044557786189587002208879798830680801580552019136946451876844369432910775148645615541433813911382305402018692324115779966717142289430334724711421188798422651734395547110186831928897994675228367844143035396195295929666737387807922180896109671890640424123095839605156320060921445984822022397630182922186858600816387654529498928986123656079365756418999650851683935575044130585603482262992512032212592952319448306625365260946318308977899317529438936719922995728967238316407452025668586219257614987363680324986596045901942043022917319973171956857915995408018568585840146261067433006003294523014412294627814014010907088447792301615094431702233317750835075741803072185542467383754201348715972933582053774964592261523866929333532910165270808937980935671822022354917144456903192190489713609799966758847641594978876313651701196625396583151273359366081424016280684159591292402724622505392031386227290254101388710946749576821179875181007310421442475225342346441866108655737123756167643394266218950427866296865306918885206011397261578394903495681914646119548982978113522293922886119080434295439464150726470398661951941489502447611880812725380199531168736962456995297874780264550780204336470216304291719866711703740111311927226033502316406313944255901259430494372813768343715513103324870430658058793893138534797806261273149526756227038713796092766718663864927408475215874317663035509186789203598986442182491993075261711679292202133198421906236191680456873759741735948172311466761521313712203434114566743413736074153442615976082345011483684690765308991418091883890440738596627859519037571303143088163562032866720165361333904485365625269509689213268648636681694786340020691440480720507497171477119689183067765205869860450532618274359163441331111688558315331767463472078880189899130836752932375877821393244601129347293025785066686803490883305750096219937538206989252467482780796733462577634389880121376662407826015840080550357676070298460151123540859874589246695833541501368785985982493994792026209673420510039373001982126709948670306845555715608686460834882157262493888046467207753950103213980774813725951254867216435762159329736428074077872737088488359338532921445118670102086791112212515841088108730044262712373851017722223086170092273137686205284144842022437989232716602016783598573315351607499884600667213596805976552023739642207286576330284302656608047395755875353085721589175591164913394197032656002494725353426984663148007905589687967112096263915180282759992255200731896794841221539672056824619220429667902826413284018626444496707840841756565930744574514541690907387851350909017891710333902315177035228199499018732149855304785902645733982499798687031721206493340908633500872765613749165089775075766113376692791061592153677961689784541257327640682781899489382073292704933105970350347140446738646509863891933666410466142385607088343746509514573228168326217824290106167989866650695488858289598866328062378195083978923459540555179331464059180559737570505344987082749792078512989202785417638336694683087656380665784053209327350507684691051796405653789912815383924551523276835507996894751006556534130552416969787448816626861110619814053777236109439262164367154741218056807183214249457691758204105393562889505091315299219580229259278187252402036335112606762610515916094247618117546162461435675550675049380185938074065581552654417966091238456276344832507806798516175764531956987356679483208428537412227140888221458509412355959516716038197681609431754439472343089981797561879427356573697688934092436352938446550848016694519332917590899749388193469552999897816751337864110142013010486371323680801665027333208929337746131309503245639704739563182426595896401446904213380016237829059211939139591661230618146524963497452511041713400149850120083415795118600330036906372179635277970272180517031749646758038675135456316054132913050822347565159123707987770596880297115310936363647402415639421642631501840141194261459140160609585962875557854819121526140086984655807275191297688608762819970340580396986709999426497038307276112030269100426536204849184967593415569514659445580825924403014497193911751221468444630461460058923684111484555350999561888863558699385076445106736673786234118747001776506469164433011561865051127587300748936852344794076090373506033586178495315841587766138803640269876051717862361837683221689093837841483736984537798911652861553499803266050519785594446156839542516013995274457277904622661794672550965594048251023567827840904176421739105509428573387534565336930005933091794367593272954610660987524708435744155762416464005394760917821330354350892399756815043178981566178456357773862130199548003689457632474059140894107222755203182259417550999495666280232475580492901851288289925490040105904786230901169744369178253965877213803488728343290310469932082890357348771973387272041522664301365442293176071516089746079333360356158057221235621187848441748199227318399629797717183918403754674792633215208144675860442272906047760804301837185429341419691122789821697006478407746922149271025364986920111963717228960851579404070971814643946873650842634416982060306775854669462357114752972673566702621650978870848140912870995506935968127157506163333573780255620942084436590049660362701837423044171025176930707880726521313785931108499651476365746151190280663985992156968397054436697288880817431190207978724488762293916846630583790733155244214092729987162055905985879270719986563553285919322961115401092979411451232694731210591552105078618103825446285095865575466845159943995451950431918849025389934348426723745215510979824751881981466837458442829365071769199129444445902453608717785948758880111234791259992829684524809579511151282380028625139339564688812824572935333971777723231921280541011658771204780216652522423887733392680479495385819875341947640974011579482951653885596164044169716990649921501056026520041927038071846796548900971962776170181814246457156082493890498359206191459404398486126776317514628941295814819486344108286781158675978792785312716517847875148980968469951455811340054145027864366744639469386029237859653777674168029680051913695272029867134973625674620825871558459130872585367686840998309075464094025544986545792403097794195974346999042674568433348123671233775260007950770292967568227400905214196369383891519400427639822779892919818293590882270536931740487551970062017188070037708241381226389652456645874841444500671486369976240074678249757359385936093160515713001969552855081834297005054992649523282176562457480022449833740344437898714798696285128013101699878903848439408977692268689431294433946021504588341932149914013430290489015566021992606217621845722839112775387172555564637973395078200890605303435672517441648099027104985338304399284794340040861251084127350771764705163436779855945558334250295242088346891684046792761363069011009510661098903607875551026700324791057945079588629774440965654000828283287695815361929013712141288370424704728684618679646138993366871176175954572253179073007194719940402170997396829565093161445083959615203464253567079442746633149257009880827178629007765913236944340261905472833338645559689631147663642795368089385207245415442251285440247112675875171663830273771012929231421776378092519720456772766904953195652895184578862677729877328129611388527427291150832309028505945442740820400973182316278765639566160282250688418374460149251243013354197415849628752929387021844340400027618840947481437204501962629918807991069261172128447782119942405428160529813213731331244679529900500030764534125373161615099043789798172516387931016323340390412607090231368742518212971297999076847857416580422551701381077480367079972924883157547498832854884988625521452406902071934532108427176246807557702223859455499717057302178714646201682963220847016593440841048982623900341917538953685893108317905908725734811936932877778589948411653142414492207691019456961820865972096116957562549676447521298259010460980800408429856652353887295699042057483690844950653485778215871626214772330730657797007815301486001366818194320884264875348748652967866762143408061389976852828753999683543855729583522201904833966120816958678405254937699597475356263700182928236448474753716387436311697342879492533749108038239348464512142178246608602141556379192496449320697122147270149826595232461807592451712617886536687087931458956891424662333973059401339837758247539032064637193253564874287559882078859145529230165430040633204403915422321446308920247456397259859266709658373673137532836977052466994966467271934338949208952436464713469186451669293173591005137132293513478196003023460932796508635512018105581014427211083889767134058904924861462187745981886787357040883118024054203365936819684552145441288374899802322124626937243151060431150967219384156881512222054233565610642650016052082439164990026877099370164550567846376630270493986965869746202460083170635047115000348296395825527570355978541625235293342125792324099199954825479690053566509693048190802826153921734598320086923833459307703177764818535715604704661444303804517474447066714627829218309380993378413336755419622618151333007265396095738784218368191394688821329792418669222950017805372128536357875179881864568827762977576886269928073004503456963322300691514221689273256860212308747756302862322750602778353356649704604605527797012203368995396312048854001463188114259655914935859326052155055247596508559876701051126627866048670785380530172352626494741180020264672726890323535881847695590415206613265115142946564685520751739279698335968256745294586737319543618136621260986394563232498150938638909803538151450873890645654583704050321639438763621946432962446138368380539062782048806711087116358879109153090017816976186748619902053988943578497897918197728452172165223016027075076360975201070061803714481980338184503040165366395225461305246404346787597030152873071851240443441236906779153943885564942122587896072466595505050295290929509641155083641097435999889992688058245605437335881057567941541576993047106350519221210839409099227735256825694922050239259001367233257148047982963674394767633003332996475126164932350789744477496888729836079971046188052745919442487557727919471425217398093260850844655183472195277060645392792018116422436928385912470025314287478091515720560428872405028301605175446841234813551695020617655552151345885287432177477764293751205118295711520454903791224974192395735373658380612421929136849179483602574915451752599054519138265515235489181197945903643562868675787377003176123292796794523659640100588876689887793922350374134141658939757552760929017285125355272969580248217353201241223361767020743876789951615770981165998060846145470030456374926250295708796675663794083705831572555977802843579546530805726135842950840235687154116362444487404905397803934204000298075650849304680686980965747723488212076616531513238683073100545512942293293610648311733416933944862820071994577236025328087953560135151366709700934295213370900577299484961368468911486352571370695717006896550769848922405572240762850823407320074645216814023514477088176140459199429215328929570196199591797662831587901683189028744128015938107426941534568313528446922620744416617922714232616473090824080757775509030943194737623563290955859339163833524917362410801543499842799155628804655381705186201154769963623620180461586211331180375963949387127894709255791943466878135958166501743310052794274852366009944533870956616514286626765061808177128983165691801346179452126542648824441356356076824927622387575926739684686011341801984217741432167720834373463265233910572513203916248937549270736228892540170478678902695662599814831053082500877438019018196065577806562280147140656427509183719766290163214709073689508662301263015440728797352289872587813810224652451604306808122526053759734460607325026037584745735775002039683494552622345629202716990215367728113381343860290261632561371730116824887933786922547210184045246522961047197518681989125195627792247063756710027613873758394471627651506298829847432066260027216803194504435776832290581786499101485009890895195355431336826282487357650674244368155448900727256774455317091211993706126370322619729767612404172830037010021504406668010637359485040407005145324959254793735087787597668135333630900278828659725891720014354991586907844880767883856722485681236299589440097947540388087757273536702009567860762075188528830404569114874918272573078848009900744509043761929909188424897922607840480164369228626246758164324074933284368162855489502044428064659561396581112577427600422513423162411931652928256536331364461133836888225572760987400211970426270229023863076561196403485561267884637061823992178219539073263246905135583008848893320176976683317199020737804717720030179956859410471264441780672968864423610356180711755044871410442318644459483280173426230623181956814177099053808182644690472075149493791504066589756634575807980569830028527877478978164345959378357438948179993706158845255370599981363971814469197463134003338265648154705657648980357864253297685427903033013226169907064383665675313615391097814055045669612217841246707089108379434768094634537109210808826547654490532054733305694542530338726194846774895885118536039982077566122836850757820913440166065066914198575022973971681601676769284825789214859728114533370675827421561105852099856044546233872083618478310336796341854524507095998908847412678282699097791931734954377074811307481631765779677553756838965399002200294297862377463978263331191621551221246197533263268366468429879142658983997412957300924732294832851956790540897254828286030745261060846902945180538897292203799025552687600844327634157801839169223478058625787498929091093341843889424362827655651920406297713405454260256617822546259204941495078942524910100883333828048969485564955164816364002779377518233357891915588133035326489313808300390062330258757622239451533403233223567636647423757628750366243696700169217364728458204031220253790007578735481550792733996934299396550734660488345944327764768626076389665133827365483797921804134161445561041194429377301733283933108121809696618358850075233832484648260945578299450179592016610404083088050370719120238344912336286506256505855924922799480065881980821477519580805522277444621952379170427645563015275383544553516351657676006274454901604332105916888704735911384423893240746479798393627114276016236234816470430339424961721578119444753729267105941370120301095104023876299843961012695289821193903151144446975373377588845716641853948723367203107005573692391611042055326011916435363503647123145035681449110205704347195502280477281832141931976968903560824061532946593410935888059747008558074927867150651557492648990131991485063342213387871236272948467251330230587375589823427318480833659283801899197524709117360503608396027610570233441959675235273861802936652917842369944228698379617058312575108402388934115019311999796703107860221212872309174744300586305589993715899923188804521545655159691357510430852823957018274072408763161710900660473995717971928704036829741675290266661750268570979657326253874052649774075517254421300823088326051934882654521783186981444995666257672805248824440163832525674221995990890087498571427753293641500486535033816609497479258652321642722489417841594460708600613906640095003874033806937999432386193153054694385912289478035449641894122672077164014764597998862955774707872541895612301800462152560272259654393425607397303822668153021262347918844591581236447520345817191173605766163749699878882155907847798137230111350672531767593403139978068795376416641696631626088933851894369345486433919735328443895354256926983212257870006304195152534065413263866800433735328204635701335145512035634710320140447227166972103506584344332926332900198522932754677705540282219092527979136179465869935156237302858058636397191576363785978475111412225281187246859907442503834797753249028810548529059717899913744534309185941104977390713239638829224158137215515011551352337611556163530190347675792288954578720367750856519823922440689030542128130142063919346240630184795932309229450614731103273158468788192326483663476606320095520870023711422860116083364161084036263733222711463885109960746095234148403774657501263133173171679221615172364636161269332239454486627217993147126522446903821178779903146497887053978452071382304507461603015965117275323836819728264796907557611195791677425184256105651026213436651548181157672519522045009372512609802729868745537975853632674886117842180717058586795630323343754876192170200449482626015520024353648959542797824340431241933602036549392411657541473149667502789297666299715731853541641720193659383453779039499729452202940193403246269257776886873254819093448657695849536149363734160052620970189859471025959578592814866603181300731667974198134731506727648146319557432508950809670568678364660590554334963755393346266064691017063169147333505253354541846191191166442751082691028248044774232767815389264317771016220008086552732117572362824477372757268115361217833384435938661562415329937504641168905057249318184152646823005820645588176884888501650940619468951224140330555734514435778742547970359336867367519080474739459376292938268623832603000453965710797685149013538806415309551396065479386365412111977064910577348982808006302725067118989082942012220116788644215653108557842892752262298167782176148776367327904000842155786895823196774249035624771065806639248608414148963989682854138804018176480689882268982017389787191854507877357512577356537155697209531444761596835767785114236806076060310633635959777965918534743573640265491800210988435144028427613377503705726252599207910535444056262966373211155220647535206900867973365982419299002792008375465699514616908957373169378019451728321271681624684650280954475613364952216068452173053545715218661308576653934917210234828826704945195076091369535696214723256999406347933349621512429336250978872971185001548856544984826281939034461971285494483592065355271386882122844460770763028694827377726172399975596336491413296858629347902334803017874725331177174358969611150991430552010078307110609071613222469061283211038245558418703760124356802640993750466993174841850993876067446839033856429901565486751187247962838746059777456964274866685177001728721769107813752795551218317485617721014058679369118009920128598971546576751853348164243440875934271435751273281932838535078353660830282089010888247304256998493743749676519555853008176903993165345535228264416459155336545197895695730428499717716953097381543985170630245435102161998696092011004844333465274053648096946702183665729412952105891132411824259585005965778667942911206241787315258826743116332827259168284426687708514663095211577358569761777202059619515451440985132726558489218062784338409139524870587797656130161974712558303619740043298994407332002073414484688110138150430466461111128570510016769996870454048534623827488031607446087689417148579497506860194192347554841778798455222483663267796014950879464805956100983507600409801588715270410782192142304563486410371645470598381278845698861840511174239894273110603755233136468827048011768730989442796584012927747793272504473456030449384793778928190489347285188599309495433774849856972496431691239760047223714941778359309545435092730392673738878297902251686886205589619393878906754820036066952495670221106377406305548387574498163002092079681544169730634859268725239688970630500032250885169365477648922946028851724909693556917076244441450132316861480088575716102841156352136946769239978288097065350531479679851128454334678918364376698162054205977569017300220497315309347787938944429163692871803101512455179187085068499158553746401998574930041896299446144665770121674930621025806290774218708872115190653031996355157687749107190526595141396329321532056311548801415151531280226352437292588297494206235418479145454269720722021525611135029829944281264655375812663993661041242892676417826685465321435763513767865707078331948815026321640237912445193923095132701676793526233261811398904086470027222669067277590138294530221582157145709967424632513349707231099679580293923501319389293862644454218299271519004780041563471154257022619619827853611032714361296389612083423910447304867222691182812560017469683315822981978301647640440963620735365637878754205826796152361182588584450541348556271053038276322944532045973736721548155652604074843983837625507401575351146536557314286939306793757726685792449461806759650943636624341671747030250806241622620285986186737321796683494850651549137716785341811993735989279623065715036251267837642968208240872679877540820400011756371750650682194483377038955672285187711603893415923654134652409713434672469802979738113477755668270763899695330348924254922520710082183594839427468233566584089199106205129295086267987823746581308599386241659621365769706835207732297828842513978904771795927278258144710360843822737338540261722628498982488339866155276634560282533286277438691911708936257012402454879536849433962487778215784823408806418907805133897912297392897251756867637993516530396190102125342012814454233278182964095912774596089694709426543970789158592056747488370153034909856957561140520802235649052224504467966622853905574748135846701037594776084605761382162249178733412782907326178545392242576761510440926478275462013895702659606936727887892248104129629474461308529027660048845908695631507735783903778449268468684352475100674951498046042800276772526244429340294744402315122165889044462178679685756494219910426598802783777318611164779845973076045946237034941945135216922003764869477871666515548969061583019738638091513198072265404515178275097459682076276127098305286221234200694346757471302042369270582161278958002352518678111338423173444577651405434890472964845216735457405270784864021427823891988792078583181389581658876841657665074131961637096733376703600600270510239136953616933929559024232138913010108467461143632807944010184418904844979301808641840198355764849822301976767251992719576564735627197243657047032820100017400636210236077895552536606793076707867121253048631212653758178625314424019172885944772802943916136444730648530673177169511540064782606045617405156484844581604696384777379355742649539731963040299071051473630013088121388858198943991011892041501148479471748059409834809283901162040565270833622904411333103159049012025558628431983431750373528679317986055801966179825504070659772528027454066977778923331524338976418586207106487863385115942330062985543959550658332051628827573409937569002872068134458922470543973456884363660324974846206875468699938125558952504549703428950470934322713422192600883131626057150121520073127816884826156563447983305331861523334794804921646874220866744539046978930803090161079986829506339416291039742112516946348118114368775292139279192054678750462581971872499659424973336280555941497181993764622181522720577754181169728313709494974200216627047847670509663206191582770792208715658190040172966925725918828964360674966745156389804500919025301380728016839631243220560444110843737553689784278371078545331064511289614807918735174238067688491147284981446241464688323753341570617079778529346963168149283029482600118852487774942549032532924145963897282188128224052694226980255259349716551147338556371003291115380172433275505715052483843908389861716253909399866645381431675528280801137669512802979384298688984835403973333705562542833015350192084224866295586280965995524327995572252599089056135425789314978851636151173924881055455853655543864569512405649636844093203408599168737207219482919214965420132257975549436206483954746156005179473834423434444407947413700802826250219298059453925333540083303497790335343852244475956390447245735693038522613408136704216462780188177058857343144747282912201930882455462305731693342877728295824789375025952175233370152111490665014828900403138792589778319324634130880519828013806730095993161083437801545857499241475892318745366715169310910429845013093989792766014663794480709154323459641994185123472277274608806359286739963588384746405637357417818959133224931578557245503193888446708550771976922612821059653941492895133224446130410510901514602190860771727401623806559005848749008393770152205819060628670803466963647777384681195984862362768265987108432869267085361335366443447722229145961995687270647085937436970801414241214328512891131708507056243956195098244176242943005431246637548993164603126161622978032253720432037875376333111637021478201478050214212672532473637520660441481692633175127554394250550904164128833716075043989214168116383587641756986852146757102877482237230725378118643059800816426817242489647420955237521930933509460070464961473828098082770583794384258812090155988866767901008536562079307813328303867736459735989394458522298201770417084906446166720840905277815194208992444429003023349220456594440129777517996769872788179304803489025348983365592023144041058565872115652770488223225382073171229758631578462698399382797843238089435551237880706762207684153878215759863286114566482767379905121609259838898057124501650469769367864728258083510285665105680909361102634890749780346274312485622074335857069945414685189163224680332659934085283540883880165202907580734428298796532533061861172920656580186520962260862087816006749486032487732859083158184690327972883264279880709086490374969408839751513483713287206148188033959388834522299653004414263452029369714739186974823563068239163810602125374043891003547131932152145256616937481275403325039493945246877694408248137570778631876697586765089731475011539776511232051343024284876162958824447420671762860314117223638515694320584687358577687466215140991912132164076272632773708531302054035633728089084727354594699609008519748579023704788490660501501036692728942282204356680750596926158545580737671993022786836300864286313547287773369101210971701897125958415230512921758399336429426137032546544985055403486507422714766889281885703689334508333180599050669945211087004318074052089595156972492946158218096758340730962505985032302015148954348970043843460556809679618477727762340116018440300930107538678996574433363022305791476556587349744548650693263510468279038521102349717611030917819264294903387162275155238209449977355395666494985656589007061746275634977022569498938724519114513351926559560151386628347573006992865949614873396674004198055365889814718036162645548631546061383335945006569123399264536764174921571680641804258135888030225190523705354812318051888528911839520036567986017596585180831681600166696348380342131552386941080800930279635794128701426750854952988537878546141771598849767612202986875660963943274270608898523860115099577411879045287188615830666016465713880443359459350051665894872050432571682351417752224652614119017713827392761343343374989067327332305228050122832653946454160156705958270562933491159789274790061288876599271683230482425522487494817650318083981226378658151677629999319702223025552910147777190890108973887038825138228746315174176345528859915719835969355380883945857184722174715964736043722584995568409123624208367230532169722317881172546530082731335079998056867528065967440352526857201342490536529986262137267560327748055970525039659512121451465118977408116524332677342858736583419273170150822254068220692893361744215111609650343255580537679760635995431623888103365533475585917699457160934052763311601144073574524220063041255636439967092208112475683850091164160419605320971180214914725944415646320622631752482781151890251023697536913837959574531887514206319531889360077284583893106414216032800113621186807267073263963381636687639569426789263765144661827573544679952507874166950458264723327795096410721379538455345068313247620011344429861434648181982589645561638355584103923600738902584055462922869897694953510206026407292676928062636069200696645542798040101473917500877538654617261258313459732696294575926765017987805311830401991521553383853124933933976715200495322382144519117115568579605083463431696143387417540688429476079155596754241622600606630470444371627371310241250594478451901680128201636557359801164001846238785142214643196032800093300320968513882987238004556267752588961824561292399829912044776038184726892629432893586815357680757990185325192293491713380758255437721193402986661563529791154527020129969843569957200814326867900205183635349218787337084296998558184686277989979918591794003924045975544845517358122529474146827713133061191934483000117918550541104179419149722163693212225759134415973031845335466637826765692563112098434070107746100906151125251429756648475544027007644734769125920888471206208773742188527636850144962633267143256173821934511704766780291037646722359663486023403268449965375128181571871084241653096755714198548170002292289442675933165961728098988665846237284205509576195797961302792330610458129769498743917452805726497996966838839287972479581356247401956760807281681003279548403884315869515768867571544664261708736417751602547284277475902316640059268584749759505248890664145680129883994182853685561356140400479650310346217619230389254715984713516446126663451491468518492682241436715343664272748146757782652497911367741708951341952081808851696142338388746403904633078197211548788096432427908947236539594381832569882572230680207507934510139902401478812212482349752324153171240000097419385879610464155510304617049551699006513970525505079375495176588327943895440762820108121013644491658780905047675331898898264974966308554454485778254913481907459522751324401058995817379722781770829180749203582797837627614194526436500964534338671648208027787868388385477535740241055963042246640418816319142140581041334476125652203999392962507419100841125369372140751167318274741500397803324281822308403673326178512154172026655646760215754868889153934941381155705991625853635820645473911562787940333164979707265633147277445716944600232129624927361803904480157331514158654904227373778378871078188483514417011477831517827526120193927817981397316998139412416619601331333822303181499925994907069774794181441707294659526367687880965661381269975441037143236404885995540214086736641318556201364653079234442390832731866225649562835184176742380383023604364128855978416091533474437111242736629361733170031089196089308155787954749636755852886605808594754464430859687586310234356848939934501648424219230790081131610097841114487561235595612957370851331669087681589160728195679179080332629055164110155392061385023778693332943408847606397032771866445806473075886571184756264390036134193130336647590253341578336035118057122134206758189210681345174738380971709176962794758647653776262210959784531540309058753382081290239615454382586942400785263145748875157327180710128377819335936222597800542140874899629587889545754631181033200888904713890143416062908749751605943215399892176720320811002901164710171816508822035910397499676698942521468713113006394483970533966136881821851256728928550999670798125325886241013525360186021930404560547510755089683199200163408688877446159846386194184762155696792757131622883153727469705547718088981542779495627140168428175253521274204069615438017628907178428707142714831768207877946153267892550089156757780774739385190065618347215469254562599166143315601923622048787353367985285969407034788631421205859429028827092168810108540044550495056702456614192288484305117399877184229573918033781674385568434342267224069105966189913099301778082017720570053457001311198105056090175796726088139571446414472255106561054211765296607713164461387758702916245432117178116838927577387345299478934536627152663707915730479231734728624212201773529911401075234762448601124607801930019840741724369181321689220229536467422343539375166728773861728097152451974037484009035166988969854301636415322846163579319330043173920984593573373223182489740013297485755942287737482162224636614575391128680554899424849860728115695248201564159335623249239182405696752622894622567607009609952279902116446027426399348070026461445947659674517241301919358640921992867780884504057918910923136454988017116268083602855584050528570674293925620083923853558807883319954307121230307286293733174100823645777667037774899192891006433193663197276570308805646496584972053862545419980274273015170735993057411222594021362841605066504152135668811148663733230528045798590935508432466924108243657821503541479596610796234680252922545552367144312713372411493676279764873910644273812074606963225625963080372159320399167467454575386963889299992430129559836733807906402233125724948586159246408512133641857681366350848505941181499472745423094603370601949747417005564803949501564370396415205354424068233475424616072023675800778735736319787457588116568788384512731935063628280861037687359482742874292130591110197424655505460599050287618400426156244465716203040768603553635539677389988877630585391436078151183368277840277265122470377514190947865218639476682451936325174332923890694717862160314347760158012579735576669753848112671507599564742938823392122701290756300043742272277883020521187820916217823677994759504538529019133733773374778583337425824245034193495237243123313163127384106664723207394444325871488180708679330901931748644478413766125382670529204510036082748332156036653445340628684160045822662547806404710547842104771058328484836762741382946191982710829339234852117676470604584988355253653995141027420484329637014478708485919929057691377014642158929900454050075666940602652785890255086745263615758656357328522902328080177265067906826304669243162064170824412393095116895001793381793802114730290940750765553300809399906146393022764881337641869418058685057295148924696555126278435092676204875121341782941546150969475749613775007618286647078528460379032684425314253124837523101587698100844051576647954760061786948614705662582706067098315780979661098946013919825300574485016343357573017056076034634047758926624253922409683423257608264859763687849964150360488326242752633627475999580513439246344094893492265992968753843264357835490549991346525566340612908491558343389613480505645102822079035870911903567771565278047447187286846631132786956138022209208180275888034970001730695400688337243843657681420798956506571418501202210272005491938349186514379722114525240855590675425515062891490853181610205258015903678190749548319821278848278782949419868610368725440093591896955532279485351170411189702098977967091460935040353598739571744145739726917764285476052571964214808875941873860254029795739432149427665151264023715052267458116074947959507838199571574271062624008491416489608230204846334570600532378487810863753322447593998392026153513771859729282892890767664170987449315204801165058076663008647328992170072679337843114600391341187864708945967768605082397233868966639718961517310865759109648070749007166864202271881730381574899483694999696180372745631129806205343476469368371157063522840996391763869716641113774051440309906667337613941591383925924354357811019418777965278420797941617532437700448665616836746679747094659598771457288099884610173100373107997354172189108842933112840749488434806229702656855103671989347949013134200174904039927754303554116665475361473596899825008569539924950588533982274894932624962163645311951700599279645436582332606733185111753644748551389059322125467157461658102095787502048797269821647146839125516571445985152893252958266686601968639771048402554978595345434712319185738380855752845934673423806632395799705675636753062750922999340380679607429812670518540652486110206030462342355142893787891131815219714755683959763454362035740676527352547633992098560973660534540917401723025971878463211402745543951950790826902754064736446063152663405115835220269833172685503358262949850023065448152639412071507092615391007533196350425812998663879055474906142248594861361550029096322018870213746633381409978727565965341571252422561607583442265335820977641737172673842347916607802646706040483663489734136884734129069593346905098082246774286931000605788570880748968913070943374787268648777927922802483811922134529591936247623035337300377594417314378606298833756457352081666114089847759235198662602959712465897323056054526156769471379982925571246753305045015108560554327471211390759468519306927017775822675947158245403450353514282359636177549399433183139323835893680033053538589491906513093370087220813598848333706836340596087866543130263460708656599619326172182154941820396832331918187671572372032645207600404117749490369213829115813345344939898316373819889551251758373155230341580625567960036609202409748206659970135495525555234889796467963188683900474550193854167841068524941179619771144057635445996089770874819745089895171813552988912207491953819881746112867929571168825743664543427340615514950772243246797501369512881322176997612117556923264042771544876869814392815262659637207895409736194009244130378552490544016653126743805179525270683667357341091857368033145346085961361572702648988699496006322088210893038033677055556102263312760610813775117744409877658823629295219544396703350930631422037878099143697061411355032128480402020554557974533655940288323012534702502786218289410569806755914761759460367491822976471282036584134114412156472584825744293077478529596704833609857087547816951400203382687852124455433930944437469108295769645911194228571401569270157720762352459339877642053246082898887567752194259747234096551210264387460833716607180114643729242123204192873219990722338352741992473971269545254229411097840767402114116671146012129538625271931506703314562869429439607789458920959753635460497543784991793081599156876367359408940739320231792071799456874186361225934428454489114518773937142240267741278648344264920385206591554033123098192657940084602165410960942451217344735670465330727991635628521482711311989886813811603950909785681390487680077158532443590170837372569829937413810939735466890330391897598760774272154490077127361854426467420397720852530168387364861567990345607809434975712817154529743852002183453457103109586415465063728613994173295905908920777337627638552153467053482605643926138409277011800019385377999506706492276276125080584262780818243045972282291688016311822927697453237694238310465235286116243779965157038668067128323608791344949132576002523374407587056166441031355698836515447526298978416653876996821174766716214437957314829162082805723615938762883940678403635181069040594525644650152479732065986333672516378194249297856105034995463193310402527689214632604339750156230813455287084042025141406253342535883148771641514415850072674392868469395849623842191150055173978733077534646877775250580441991872070811476838515944434086329196121069960723604140931789588206360068761983869909136874485817761506086188142696917623144639678019413679799180064842857994473674435922265971112182998238687848880165867402082149086445531826136871714822116637211973751868966046525317396246403258967574357568074524364046061161346088555541231172822390483033676079069039397207361763835550411354540128822701246077367040906951938534439112897269050638751058318349402077014034407753526417349150265584871663771821057027667707266036282636592934701242025549581678096218909528216958472035577545747152084656243071873657064251969225811934072879278492091306865439453200474525166230350967093869539870961225485247148467169511919433558514686182946297364584362740785234253320367405132994283770599685044319633345577868097173602125695004823628923230684426299665574212707359764151406482052821007819824312055366838377326897298849264378012793714713374215709509035235849547292056601193978160013816871094325911729177802509939737462260139482605994109468050075071194658745533662678780104368327776357747617391419317087082015980126235454460003110668036183765584555146486405615943367322263903632886528837188229743876726271552699947940838364143645553154741968117333845219376980040688174351576386269819243954802676514840931313227755187492027109792541526630840363557053099894243275725093554884021160702981378371705270379239299329645819178317285706868753631422136754383418252118474102617186774412133136928359637057987930144646438269823662766174400891301988141488128429859611292196780946238702987684056481249163960228517025514742454056850219627515855494046457417683211413280034629624951520589712110221896812239704988485935722013720777966143721510148797754695232070618625500026150073798764468916418710142739459296382321510599725247402771387531854490342785500680333332532321618670192998564556455528691670141228224891173859975718662099226233657038656930484318053428895492606065635695223909157108014296092459179850221315659711599978575192558519578180771368285938340607033992543008108771543799555056924608780177425057313837296077760157910436270651430890182145743819514851597771627648642877137278677814884464785629624502601955322764299174144257637745700322841082723892249120732199978481894147968386095158586075939077920916119145090085008082030497509727539782385882133641780841144776133275978009459776804606445010720904630020299024015766626763994422152102542514374763404394436065888894590191984684287225325139097837921475100345265189288490143562915792230086714866128701026287681006641447065173507167626592245682490170207554349394805151044205918680558135172658143759376444233884362104626790121877208476357112985321743431554563580626147272201801802030149097790467061554644352934801706709513538162846343452695050948266868750010143070680689258894037921395464157461834766741468437337347131384917836239353993423715943326903427323561791179228883697464677622631661442102160541675941567523242927364480363788460259460075658634080693574220888088688270816145028071219865789950009536893324552165365387349317626144574360094780773520871486037992886924930064380812494521233359331174260964285495533578300298586624171114075177301837501272688408302087506135350145675114110978255903198030892399736303404549000001486506939867374940462733214588348227215577403893233346824306702780555711312723927338805987647967763159784193251461523726187513994211947325396491523206957851255691718860290806559714265975563582833623924355570529576364707673436217454409839084216592235452414362799905339316885681906925509546968562768225114094791078044180003322954214695816038277658097408880044445924561316822963354266426754476050076995200023624269435787487222662464588271694905889362726998438121034012592143402052881487555387015564566131263856601751349979946038234432882204762317573157550714241407893364740271144455181631741303400712004877201445392999962338151279008865027872609419443338946571293765436185451522910686877490194792848999989620507077941968386302873383491342638386680087498179936008817646548510199617177155888914577272138182629697536378093878475768324960051199753070172417637695133124489770199834624659410023493229543758934258132234336306994894227104185517012273793344792738178540673082131438723407140283626344457563304549418221075656879191487794898540780077469097405093327589194339989615304829408940021601368044012354855387070508751744457385040576593032110071019115076223319548270773736187766092340026048366141065966183195950333534322847888746943497991383093300463040968766800114974716186690329745908351829756289225737114348937772461259444315241545223947132172244155787878042810308502050097174290614098811012365919503680478414785911618145528033953719439947405037621762624588144106626060030772128354941108472284018282849930726696806980192325904607587874691542575361123984404542559328122787693720608725340650032332725833432475974740561711074198095400353531210874797025997706120965131423417314713713739607154948328672276763765742690658396685271390542482658307491113299657167077266726718419604120718009748088616994296722063363697078711298229334439538308744567098552806589706074014321742063010080748223989352196240951501979934046210847647861112566984723472823944990860923954642962802710151531228464769708253416467175458475564691512847039850543996155188332687955729366016935213988844723442836339628311375997807058097359393323089376400909515491584241206387551587640090688190242205386230399150256015190728428953936028071226818668317927889451291408435346360106443239863629654698987511742894692280217191576502367996393651655337851276246803653751416517196853937075275064655371691832892219762102747975772837810738227358013536023790461647854097631355249340002572926590776730922597148329711685890322987851760320848491303462598196545222514370857285787806960400970116750062329170383112242685595819182498417426626363793566822663674458012551975428121075546018422588284554292580168803671428030973246030076877539361181989637100730198813954528362744619796570355101982299968527954590188636648904346006737898900770583518823306480149008202870328580438894908227275725333074280409712837889623684535485963670728764805839968741046617619977844849778051076447992259507308708042765443735436398634500511168143157427081589332164470610997761575812081724411916128110210064746699571523548345123979947144998734279201914325085924066957477114853290491532542189105743432680215698369353006113806908373944790622215547535608007503096449794224182060649191207116179605207997086271110689311442484949509084687185035054599619658316252863832450137707410625053574604650442861749437252093542479878077309960716226548969121492278922949153510880391074413334539356613510357091753380104829435671204780830510126865153175681759090045977566127284902427176959802260196099959929201080915541314954174422351176397611775822379074020682763761170400832183661629173880877967517274305653250092915125941883833731557731509239832311421418812036912163612795896452764132524488490253217044835008899430827264204327591642446694189759098991157966849246359213189944373157819436765893899889219100733022902154952818656772946715501511657055371569353651881322358234024013025374812699953403967111972416765345533566797511185873151982528041084994152632447687698731218840425334252051704787111042058795520891379819149621530739488161148540329818231771229983700827278391765618587205681579533200101713256476135906598865105906408439181726252563190224411870314114049279724395348573700466268684185263183425810341069189380870900014378038256351503280073575454586640022881193515325151023931661088981045426709887193950375238341635165440687027867457648133022534524753996781705146155330962444142317430977665507126127520612534592051270952434129750636133664117765591462431485232298776237358384838261784924901904969231975412792039091957753888631918877986194228461014414126605575276538345727487330962915016872046814965778323659632262636690258759132483329356159116038827732413566952991094448285885711632599178641031937453918671115519773988163996629779200400207362723104742985744303273614665861512953912255013388346350675657638535245633657263936443343147333899788327181063937027547286674308109868610600291252062408670282812385476983592831280563378926508514787170171848547760429004736541427814996438892009971200424386103268959001540330932574372764804221560624122890930256853517466300658793766611966715791043272505822678019790297789387505522995994166437899252305434884240048451218671276881202286839083886317238210201740677058978967278127395351771297593773620167461864398302354350398479521682874363492535513332319304474335690655782363944535135181746091699173561163798554919265944666938686623218878360853435004975484089715388020362793294706196527574645457379186137255424161983379756638645146619409234150048183687622937808764362556950005770332275340641740617623346944692807866855647032684331228036946092600636452235627008445375334627279861424406408120951124599716484531181837564360009201618215768893325626740060758960700107372156770337131429042085341463761993693089737174956263683938678634663955568490889567757855732818030115573760945024849545826322236200383270340442893352764633805523677608195704783990205743606481796307310595841211861400664401259101722677920738857290851735004162843413253186948092941509503493815015620894992004080139340451346307937632868140776627724644418874704866770192160402976328478724995430517285285686321177060969190105789601557648775418622789332239090635006168785913643918719963662691817171198521148195362816668542812798150517163595081939311040268858238244503476412259705072371936851420759874976315866447639856347932241074382166627660160955436785440163343170519713611057023834054525798230353878864190891889637595436947566609175992792609492075104934640963208192628943229931211410570072109416723913109629899925809648476246195375811561783226579607577764826732421267420085125325987815628628383478086448907246148374800297535464494229535068160521290716592240651314548143974775863217928094817316820008573484650308177642909244766982096619378324461157727542252672338583307789414775495631838316151083380021942101676422777437291994441610785817982939495610632408245269753950936606773896004386339451614885195579624259087562313951552667777947595099978786901377035209581065769606109561933345553210563186795146770351728730186154862420844910405885744905339086269950276904577634554183580990256218602401571960068058351622313819620302123569943073493029121571676925863393690957609428585798644849251343407542717418163969975693189954893649387070881173628660869948321246266822309516656313075194648488405699084321367204145014189830993744551757612228504151456181035922795826910798130210016253995623232427648124288039301264729163426799994136565113313158818388844688321774107389889494814839806960856139050862879370008679813563595875545332754198645008944654549501481652841643020000018108910817946860935138264661004774660795162835591549807279316021065129562573817997737043432459441376889818753742879735823045627258915325928963437347129766371646721949604852434329505919929286675477250439252947069809063043502962825088475547896293902491149271956687391738390848290262429893696027621776010793489204531239928530928177784866500024625607418606972084313834529193523170715397088780970634177773700948492344784177711674585376591250693962885482738894843719063205683641078335065043930910704804111854211466609671281193198910674703361904714437506656439421854885003009916294818710024773075342965131802735154158268358237905013513066836924744762423055129909645327065295294971964975916704831195343917640494871282745434281485339387219927562179409463304994791082925494522184085367514847397537856495286423818279390669662442486758685204703849292287240213508099097052336214391391984791034631779954155568181729044929149663621116822372353709721194312201301672687993621816337472317563437191948628341878301202695775139109675949223214241993948082514793513861749945867759929168196950204626745654226488153354872021723820866970789334272862714153644004409600134232826821276078522102170397999867938044574836373334362256379753951553299952964347857876206017086998425445955376525226673030923224337453288374273650013888030544565998855004942963278433804084907720711308934454225933255769216437566393183023836784643720763730182921016638525819511514158708525726463161093918161707591038312234547838115553709118026551739306711205711163788613613387292374371957514253277269189497768523776262709996723933591874929585771334035190327114019211420735248184030409339696613488326655198624821378837451511557449404936230850828627087744918257979134056170720671633534886481503964845684889889516155322490124714610189120512790522323022197959808580080072543297987332307843692136146925522463523678486957617125890814262411387657543887342177479539119900960949495788463488015147490256728720108264154500599523265729023421352542255924174506149289751863009942796310471994331356931277085186302018441415031366904285669501023582769287330372824328739879468858000829645265077765597645626879028797468532277137420567403999234301822391393611156660555226778737039555695933535888688169638219892390112259677801793677034360538280576833852784409847123416262330903045695554494909058180446432561203460338380896597954346436525736065755850801527294451383821630600790147998114138094446729495326597256510650355687560958336552124077746747418063580353760732389807724519539024493275500485691424640027179874246917089302231050714521194547298251518937323428836249693574565327482399295834523453427835661136143925443944820930037836417177176944746888531919869552485775845801703788848616298349766132980782825876709959301328141220300631735513303499246751199810730959903782669824772947337092807128662292474448199898502215684759392745755780061564299156432640248387105546034780247502701553653360566301520034961280632491445873804047545018678075955694186610780626430314229156469485831868694748444747926623695101550546486325903301551269721184030029386216246837127544139102402855600090600825572599064386474732972220933106152051701162445776283816836498848724995812078921177524242183691181343970564592036459064311496228458708734223043598364772110347110136542979724034088524944387457965083477928270337502971376973221402920150335218984567883110631105059721074301325809163906010727086276100563788396287930066008243465227851214884917791567464780636155599882252658299839489716459942352356153263908285438928332581160836756696906490669151158956760157097426890093571034959196719170492318627616410641765355839330840255713817115290093919685985474253598755061914809451859293354316606484803874204839591071575966164341795633077328467814212724894638082449207095316963460093939159341548321489044361540428794538298439673104173786294863193233137174156801444326806222090526069314727656885831277667229274565792993991632586572552450208621863443714381534526302324865983742205289001944540479821900322284349215781088146290899820048897484436527689317009680759323713129425491137040287557772228549406348350085727964835128231562573685763392354152034393079441983305370533486425540646242233694986482170881244711275713908483752655724341085404582544146929503928924414983737239464898527399618299489634822611201709163743037197654239829139721079612985709988447833156728166400386474143565469845746799917816701545415564243054717111125656787179133355916121811005722599630077151566241362473597032189607679880631368676178163800241662757917663241455024309730885139169146942550883077010164345047879866832425322677565212351033481233988490245312442229829771440203103536727849458660999035387003494045588070038500032815466831427643021941070904752076549457183877577437466960476050263858715013421494735103644766193058953423671178952299500958348948611226968101807301703010125796131844173408857460754812072519320802768547851468594184372422360618544783231494878156092502742053400466404728127225901501526054083996900650120349031451737717947454863453658607410757527139790958489933185606501781792832338303639611786378506190502931240892177374911288633931068088684446236387980915136009290758169317050192763511915741000497222520972298209376934393366395349232947595597711349914478257994677248096333414726661865382930389573116520034189489900625247830100814647153602642221784904501285398445906384995765150703546763308970602310107092928120250822269078280358294888842626626336651258045266663717981578868619784616156305387241353359247635729284105582818518508926479260348516193970949251925529032789449372917775590087238891013313379461295695786077410956899768499626516560740407578970092205299535527633219220968461798972856022661113324713638609169179605905599107845128283909521265258657144353108958341470750631605158642890318115449676641283514615572697738019626068798652627538905796357338136026066514262203886049722733613614762386993623214369718135402930767699625570985544125031026922085108833153250800386365829268193921847228816735761044662264409374081930424363671879031997053317603124836344141137614526897640192246446800635487919638581864040352949645088873404392256427448603556355483016794525124381790071322819856251526413886423272621350396863129514108537537146295736379770963493028413452385245785277094238576919356178199923698107201078601619435172029816063325170698711717107905499112038299099495270991171254696553518165812504886362841067208140454510649450209311374064847054773534475289918733727406829256601992939029659696626583791066462545405209725173354747352245765917843576469031373525878366982861486619408779846964648832759584883184927235405140142035200075389332621406051867479574088689531384125733053316282754300912007087604612827358039221933147465074898000758201172103429222086587331417272856942873362227377550293440254743749248300882435237575619123691795761129136779270964038508403304378375130027678463390171310029809272544879426977318790412912267622981070541054523710682426183369625596498468527487727231606729073231274602562521342335239344424660571542186700688044109977834158042278784941566110248629200230097421282889054246763690083143657088496042194552648252090007652944668730953865402626679787945608808087922816236960513685972077315148991065723618948584764214419134085392337957672758145451924197593216333839453788999051543773793021440989690830392931188821913017978650867020154274515899733053960340485429167426386396169998806985399162869631259554444361420149520796998135383989242643744712518256487647336704149326073845185514907928863280482694621628436427226189450652020373746735880019439298263114114854127462834006230248574964830300456667109293532724016694953370261670724742018592116023155205156440441671428327329042141833659759708336049748465035800106490890882470175065817892678677047075820679268443470116522971618423430139965069786902092543756508910025332475004282294337094577730941447204385538048667458504335396401861527294553443700382997193160135919355704246019671448634041710966507382756197474963514891033029774044835736245948785345332805188216571233648649048903201120258085653398452984318764639039872105570250004133993645834460506710684722453924627311134098410463156970480481028415207639758545209622818708017834226421468650858534287243018822141945047227194631520238144822058353692198037885882432654888631324729490690847431946561916224016102024561482620486319132559668196152558293800078696231372749624911745542055962573167419078986677955331400185137244832095401004521964285344277819387286786989752146028016541024054089767628034193013951724440591595067527898405947355480388634803000332669390878166254455368776658341684240679431648536168391845508853285085895469796189352220042305386605375886591302194128735106910504795078953264276969364529072524105699333067517819329999029639081824309612301469298806489074356723817518584385144900731788509048337060257938474602682317873232899034623576642797983339821515438965447690783583566446917185816670015104425321312107020542713361773011988027773629367140375423089511066394977077008327223058546696683799350560726186266716339490902516875902134847217893569569167358015492623323695465091355267249320775358802657624212036157137015402024075225067374085130815850066823684466108678046702613675902436979629741735254585545382713233913008093462978379306646319739206467180160414338682060489771069530597577317719561785643500299760845250837654371208934244755693650939092559688006381781702028624979908745957540402532405505149404128796465831052163311407992032414269377669888378435265614894345059532885716759477448920028059816716017542698510833343363082819479982296981153656787731002145011365553401873160714722989408017663770935678848820695945433791611539321456725733317524345184352783710393687771285955230636467285127840782979946664902393511739009858819140653764002016906538701736635678602052081123540115555614538671400399489739889185690176733298232073000364881062829751717864860509005830251215119089019861587621934025294472047218116059948561214026227467332130559697440612799308169706569352812362257646052248529122139483469229827235843603215735031233319678446737831538380615976187282096860269022995406189195761492614033839699360922021690061519026053026571214541083711258055509531181500655371052856530938969253222074529994790964317739602727912797993809764849991165648982302372686932338573125281540092653784873247995713624401151952651446062979872682005989411960403143624404751069361223889756911173044227044326541162396079306491316262889359579146831189296569046391204505097016856688721892589708754214685828450524536401857079219194303451708802957225986616645935606434531814085297886351499098971201787931111073592219387078319765136242608226099075675883899267640469315611286987016193765422594584236708755833402365967032510963550732294454037328741486326980843768401456743385248118821046398605555184951510314870564966993842326956717961888437191692568407089235652739945530393858746133159023544878823361378848909983686023672405125198943225918254249460167426070854470788059586028470011377106331224641971343939354642295917549743579253038536237393131921441423515572521105898714858334706054809638690190393343785519937738355780399936232653175945433723857134110739403185459078215261244086815520208621852994304113817266672148624626079916549770131864448079711818095089578579413394480435709374037318978612404554079922806435085324907261348545626359925331925148858305975347533269158791059868247814967646390860081103190845882204418912459952086366098430503284247226943422739958670703129485131804132609399809375958766522852317524032514960733180487421163753900699842035699271528604630171149502463614762346706161770056081098497006089096424995191692499878016191887407173520683659779200628021745916820840637531187152961871593514856524455988398247596837390075875975666600484970882009179745002813324874295280379862715886322249637971096252365901861987834564674002685048339751019812805991652977714211663597027301219579980848708182631331529871835656148138565662784917623248167382509386210249564361765449480765869951778141083932757605968938654839680835849028690970269987768717990642563310316644576094596613513334950151472385853401825708236791097547834432969759001244574134244685017485503301472157703227039823092388716038793365080895557679533896545641996294839719082982425933163557211639110411163677773128808150614802474142408006367896973568911922866965363325891757197830325891715334403012877445796148855050921339523396875093546222856552408243379772694841694393223728465751735398887701233784123390273705518780452316552175282776302938957574169702955248600725672664772913280274766015987158819044965666625768534619588801134161072456660123390964075676559865266256266021963517594835512160616217870831616349754007603909543070285690943148973806946487580635924440086940600084547149642826653684337067107282556344419620899429641118923728973564103052139791942159970898402056064256672576591927550492307306557957576099711165475335755958882623196104054526852470789782046720949560549244775345836970283103815476631309287658540792029008678210400402432729675109540769088769065020511692064813173789076914688539367899145282485461644114928293618819111057164005452629467107419016276929917208529085306084109508224646938253485710812768799935993884979960157478751509376556358039578393635158142536490323107297516308031924819546916627034542263074432800785733073305814142814243374961144874928974786265289623445839359599683211064039345224846663604113509424059978471774366359017862154542142741459201203039418402906238662911148381386409893255469097033886153595941518981090609584609962087726243576678914718607872172306422652791301320011723622145532188970993733059535939263375927791058225151552013381194762097083338311618955880321795036847861303771399434505958552103428229924379213655976276956131035632259732190099387223126008414995481323436386875106282780188660298171189233535033482473240326045797554838141339649224766844516794906059199421740462002370021702995298870573027269659404166254579717547179404474905187554430043119098073959149153330487322118096745667735007148883729339756435359855136193888375370882210496738893139807218284915272683470872788051609594283211658853489544213559456394141243171038841233612260268537081608273343455402573902653609665508320844418797973466993688092002560441254937466250197632620467633613228045220192561235505967589303232915120244863029728745227014911394211125357544417352988465295406348846859061185159783080630240548777665786466224987011273440835510677892269956310226745549820688825723183122589415093836831534315981876119494562803242334585225503385332166872568048071934374514771339020053196772350304391809374226276946643640894117931590809114466950976699741036320270727398931932324103811399646621932261622153519357287977078493757000646043142900214723804364992022228416279873081281214450033904065261542853392422126481089662379911519766144349112153719213970619906200269607242823442359432588787579292581098809186286871398392980997951594499826094199882309603053441974398746764181421528269734433840146532758608486264305871043598638616009982300268401227778468608630171158646363064165115272629843948224761219445660691216964935813686760100104123350720532879891150539253235226229435955786350004020034519999509872511310753653479946112556029022767287293937568318377618944068052186982343729528609170436733936029181713189515945876108805418157883706619850447830095206989301087377947573360101319571452460414895626538837131099888390416632341071115450703019273565193040751768964560172447759476772780926873343711929151419067773686500586813214821426291146335729874511059094133642196476882450089156377316953880362232335316441940847588703226490907735332308026105560236270843939903142627088632651597516476201484096903802143018989785599201203758233217409258714531585261115240538965351396961208601487967593279779538964398861215402868765999541836000017633241695872185740685680043403046367472779912553497360265760977962443547817989867775350080497500562464007500466813523961249500915863274855841572234548151925057743844098976305855365587315443389597390059029791053329705482871440114325860307930921156400128420982806882557656263973804518645330807054194301734107333710800844949831367743092525840905493815774798333669584835114938025603120660533394327817158974041827706776496499953134858893319257284039854793841979709554171501695556688263696398786224761122354639003559774221034755835131984512046979694907997659362994856611266688593562670805613225782320293865506703449855472753205138004705814177418185133181490620599193865912799262377687817708405291646912408469480899827195413491205453139498781801425592732624922384958970582579115558581691586330476877037802365989394306520938030473612257391079538427254421790016678092343827976995349792978095533048682536408083865348581159037924706760418352997290782714532240286253663781677334042557116984534055980823294223493834822091962843588805904702228771842067353863691768430293114412226769144914441695310165229938407693757058637890476095741067013907155573690715267335455035179611165540324477837177269540122034518769130201895838972530119733473654547792473504765713532068380417238647289120858707850316202873393619602280336430721518601375307156166471786998443367044774227849956388315714602803492711905030377285568525523331667964800873371072815748717554030753334203112860089700612159469934489536810362710763116057194679212093264330106623669717682798026361272798074523653526195620561113290989790896919342112687811143515362864364323455548881128757287686150507260408573281542984103783010508835060361656750661713082016336203492263913050518964381694365915217178437542479883149605360314990497422372730030456660942671268088975119355144812290109455540346505800718276964051266069217897791987276859504475508834039274891245397593061130732890898688706257898281726443951169706832377738204749049809807462407961702953932257077047762751057051590204927302540513531214281457647027601478230297840130421979671699861701575117606725175179381199594439295788939661401861724110983435776064932238847914845803750587216902788732466188933341431865737552494686038116346610929690885533667088473462755457037263672634173243435559513558204834095642094430362178051768042100738206869398893364046475908286267979921320714116617195269440919847463999124706414624166207236477091084521573447419919695579979672959129413238893990536734585474984756024538676404594764449088944775418716262198722998571288229360715904330726894481575752205228526412546984560268587032549185731048133286124646184895391212054712905350365044469791527022152382891155551100802032819956002488615165167768959454214574422947854573632279911258169811505764788189071209973127649727568457669752078946296038621472361763587974224622620864581021787507805601783445355611777202687503735797144286381281539215530589916203071708857511781981363479674616588219649641877906335745290814564340439758913592853342651294606390815920332782705726628719890351270010246069366790870887468222936955003579349804315662332959396933206394910785019317058951031773333640543478019688374303044579664102908172323117588321257928481816130285500505280264395254677296754989776009502545722332825142245413735709431715179983199039219377677088376895938971733637552989008510542433638670590471584868000748173089642801639574055554136051041223282957678985822082362818221447890595543904532913489488374599866874342150531946394600664737892970224517468799619817061177344763413514637979710362012738807238805817369022390319341077995447926762998777893235016109071780209191305902497340893603924936566436639027224181567488880339198093193430581991357973159893509911810355080663458921383460560015373253204071433609486822253073889158925081523825297417638196421990469883277846702301154228707150094982045311318361757360902890545114395620530353499071324694753840317289134428601208878841835353692978297702145083281401928157039961162385913870146476479385901708166699595232761249653257222026480399403548904728635100346595536411480738510787401572076134540354988987214718409735868881874412262429763331314526567577695402636682133270407140414337137801949009492875502668248323710596516404234787524804697897940677948601025711571290980427850136016398594230035595982178342759749471442000361645252414810089779593700037074864941668469759223135643180964453767143925821367296473142118000770251163823081514327526418821440925002140742604341569397204665911100580420609230935103995182298975075444897128268668287328140942087260728634057483520056898650568072856724666209725235851396052039540576845072421602021584027977727230092884745549100924688246063670367074116225067305704542416679332214984251867492063170120036555140907602661072310867439370869077356265302315208213862294030893305960639385945632968291741637082389437505405578556073115157444588016214518431084406500332317844393146258717824718730361214161530777632839180145294293474993922912475820672516770472093498476926418702293471075933843610877094698237407453657883914731141383023572978472609137699561993404776619092941036382206338106547374279985926497905564397062179268069682853471118247336019230667707460771018647684525207896275283332567256235158887075100539595546198293914595301756733756974823911494657292384552632754116951751016766818390476301392521993597857876025575527450429582760478473140167976235463640205096357585338629338057434789258607435888505296104544978598351986537978912159390842182935795741509928766070901172425489451818475488330564279116228134004807066331227384900549024141491582844102148568461256450780315063365826276762908919551941029348757995068561001139476263905820380125090370496870580034578692565797582863935698238756990695530781104780902650653563931789688456499019400964611802403483116749770201737623632453999261859829136605235758077203312360655865652143885304970084224510298247241899468921871935681634205934401456080706407160258573240838714469417621143727543914599128504235283365879322668467440593636487575869304184875072351346463119661776317577940417124131567439796087206941989133919103716170601299869807109673102081511776182336846597103945066425277059796834609132952789425363731461277706026518003731336391007009224780745597044760085296962635633377876436107131053292518974294578547895687093145647252328161434622812825340627894264401268470973053400262826620554160461006821031909250258207563756139377609715918722550439998661310510259441793560119409518089963373634807709033142831209170094192206139756666517877424251760024767387782265273315658843988598044288137558502115380488597783953441101760593851718884829979819087806336342448483081396704313113107601456213578897204836765182170080210551138661918979158925807533196431874037762170254777877243498453443823115293523194556819498687926887214364938902379300663254963944911165805742872131897630441184197699674958197501719295746130697668104115171920726323704332035469731769068118980994311288093653590569484943424214914628484601266753388938392529345616451156795916435502128804543073504960223639974182604017525994587706458623731547988205230018609420319525475386724371199740299580402070889975938681188403604931154284194726893353344576558037223442212405962767979934447295644472589577254021897157286851617814820496129702907836244088693641343321322470453146780698465865368493659826288967678267353289809469097014201988785136876080736457270643017284293961004618484102072367425790713598011638522575310570862747772064934409961048063235625175769308098672846651685909236533973271682815491749132927044307281548688133265082855854274380914126148774533767436664676674883286404325374493637372660683567797023417942593203538959641877927055176965279640845768933297059498077438101763494931641323969803823755302305656600560088301386068373286665359068650304392121682188916567826027263912541021018773601286058722200145805261530395073634917939459945133603574472634406580748304277430808215650617485636040873818030731140579122801978226224104675544020518699560345418697776402554956994806247292264895165749207155926874596679853712764308702409638432362846925877794560870947417340123301822932575783166485818528439500260750627568163440080726201300502761042454963762005139656304245097491376227937977753002200397215913706059406367554489571391726587737720814695845648995887335110671552589641154051236075590714281052260534474334697891353578701424577951499258665724477539227399805071582309680210059038151910126463324043385019201069109228601076034204293236171992413580785585115216546622875519537066943040697330497729147686255250568339417611785792869092475406113421803218193808360660604930740557325122168898221298550657337874837108625648088728762184273061257815908797288234768898754419111158136704512864435115039013584302699162453735800017006047414797484036747564336024058426472370862507034886927697437351534972963915807021453746002344214054536984073430259185727508729130684121962965343775190569028049197039557923101315641957359748184123059861839775541684639788122021550065537697021544172488777819842240657673987944132914140855320111520936204862651203312612245011994139320232734406386471678527411468200470240443883085358359130430697394874425169850990032742206809768422445884173851347751313717538763126055711123335552251988462686999343174744567522666273630285303430939221285294888590304726453017840279484876167667258093099584323620613862658080445982478679802308642068387116195543330912508476618261552988340493236071016562573773903342675922881274782317083971659045051792580194657826224428331337334537392067529467139876468250656427448540894107195630066599918966862757587215902812954033891665136603408959041077720489361860441060976051622575848594927820770866684351569520479994623063700806745662292878870420529189667865849765013324499837709679788605211017143724990308329883254035390435292788123468899709287831062810427860073115652998992555820378517288671239225436939083729381342937676622129712237403356950095116805212781091074352306121742246225664726855400490843932339164714410789779349971754629842678789955497707802154817686958839209127059378653894806907753322293672777309520336516758152788644849245975563040322286913433950030062425487543226904850376339472184520188501831171462766725422026173900638050347455622785786047521422679036516333005333534600588183039825465477397609938181594336017067387632516271240495393256735830002055723346531332760661514085121131973049516777290464027837736653056476648556685765896605911185757780882496963946053345865735905946220685443244291248777173024742986745232785243744336005343510505757280342781448686044330358603612834674580470538629533230670017207740445177499418094138904727776467880237932117657594096117228953431398499426788585192433635383959192405544673755724571016496697287707719561041582265498002742239927042041822841856460963215465586351563953628947742411703873515168185063732043313794750004746623657542839647701644929471714642920914880385821554375957809077903823733563447489417256223484044734242158538994374596167349743750843020173970437450757211157782037521355881507822586562993865483349716473074052904772904523398318196613957825145099695415727926834041402247159152145275775344941642702562797823562755679768669835779892496569598523113972032269859778152317626199399636148593765423560428009241884268863277074981208516542532986585776589772007662544214299061851559849119807417392189041498491093993682601936774057703185686651341414407746157991756993847444153373238409950625773510433374170198446476950316402588528024652719293887459783970351328143315915582847705148926129432665852762833787007992123273688856398476536560244047758701178957429436995516478964407244358297034917731049908662902235455597732628940288963695620076137484148184119629476329542945492500581574713087933587023018434249987838026697196207810231918312522039519697925943686776610801603405952415013699529290869206770756999633155678722317504270277341431405762224775996944106338141562447793407238939884884246978547704521796186425875413331016162934920006442294601379212999606522309212612559521568153077154566648456749454565660508047957151842353088043290508943461433860311050339708671157659725446345418468160479771773376593724705178425699383311270066301404470323718255042221653128562816698623195940567578783925701663667573004373574869281345196706457446051948987909359525060601809845037478780853451684321358956506868978815160326741760125190326560228610728485796449007335085458480670655356011403662187301063629844478412337824133299319025918648457566141430267693386140427010928910771273746059053249095480346352890065620601316936351888809496090412446875584214269442034649145510989338537270402398982776214219874645939292612633269501056084685407746230666797509301021385861243197660207433524612919408302279028417671561910816598735126934296552989134548076870884608966061182032163522938745154619376314688308242392430168232509478408940505682016578968072556716873041904975338999658647476605728492256515345671320863074242679820338602874041713629550721771199583872329402704303224673495796655921746231699504496492669866981722672951360094659168216949521544817776249176544038243614181124381305649306834304449779562353342263486500399202240717562334625180535624718986518580161306601030686684486486454708365365269223028916298589302964076543111269125046832858212313375185665862168190187400692559595103524860539529602157444795063733856137035010929546246514991252254939528316624127929489950106539142657635913149494078946772275663600258811920285187669829392114638308269978194799234644709374499778776974359291273305040619316019480983712451482110996578181871304560014360991127278715786468734054640677824145020696228477547425220570249881383939231006893039825706217602784563419768384887888704713329299839380383343832696923543774111105103441706360483400254478328831777673314377806824285450394016702666083598665930599941788584268726314734551350952339861980349217715278705598363857759596028332583793717710032737339636746598217114580565211780980424797032753935724284557859787508785604673128502282227448555646163887220877582431612397966157255591662670303954007057516294492204926717848557779982388624724701087995628457214292072257790552493239953259473189549185230187552366450249821078270079419245166881445613983134432957256893313370036369770225256751122471481237647249676244672393972596351288318349426086238569224080498290560517000184824046533121370441585121634734433456960524207205716458377539760470989839420006815469109477380268236489373374007488364519750465490383158524817343006694052348707595126462193406388372330116522662748151166219592548540978790286307760246930365335214394503823499487469763567573813867940751781727784960943209210414229504092974333537958617263133255750585387119935363922305957893903461248961813069082823412109680561416693751998465933706077962190029565459099455212059745196872308502344042122526475257265214612680921369601582003601329755850807048221249581201764341572558060540656256563707838447975520577954359895135235159919221577637856141501892213457590032327045364780918490215461710917106398349552351236128045179022214423327316229508185111767495361231204595387642215615906385372038528864968505958321084467089600645327903751452535963095148273914659163389851297555537374122191207282892506080260924238765915861313350776103355285287055008691453925021789380492983452871097966727160871369269404419541026013108658947936126246249721195968656103541775732865855431800365204632532663408956610453947024982282981047357902059457773418861508028705294265380034339332939813966730763941466182167033392377370394025077584054147746514374865910718458235513974334467661401130938198537312262869813599709834415902347734798702532408751747042605342479373346541889301399516636173318240624784462066262509688763908308641477121584196136390602429176199415171862325471183986995727429588087480250664474053705621501768935993985037451510301049766930405875037556507016219446394503731866375621045402576633404389694846061915687151231004102575814491804080912986326495365317150734595088502236825837159252396815882823242996307895297168650276210533889659169047714052869343969284497973649164256237473428721248736853843387457182880287178483723326566186226110038584041602835942647714169201157121419228002520531197663594318782180334808454053210855812646521108609396114656132030379832263289536280066144165043843198704245652845168969560214282064648823794898799085447500035682023069177747507345734803328969325779641296300539963472877456894952615011994444640239180923315408002645445375010679760565393264398343315964480750672602845300933971693952799395264860790409651868271758299191749224637566372439102549579025953685634892737920700365040592655012384344211510492340249769525374941462182382243265498146945929444609187118514302534541367243258287377009800298555721004970814928457977250953164375326036693983682149126873270967949833265938024857194358430857365233714975693672555119201288787316256236692194771321230202743881133522298902649016244718914649909345241967321114482673259730047699524888635334033485013662050684100274204957045693978021284639341936568789746932683901408442971224532541880963386713190430944157720549463588446162321602176533544032138024679527819660044900038895734317622306145977612725224766646636804859301259423905174190480392037644038038438441755292621452019942666558236467183050566226464848558706736168543632360638136358345212313271553539617410435309710890799067150038008418338174221590679460848843044136826316052514535145886588233900580455322870845385702000602718414659778157606438685507517625670702717107608524446459637121152486679333529023315244901987051901020417458123943243254819089788474678299431356586272717045153873261711261247688279280161052158092012206693210930748553770743992811248703849800388958813841691857311380378161984698227593832764600881091702499523539807006213847649550933903853052879125527644176413458141170417644873478689552951405833665746625593307025124931102051853912575843739998241157926945909039610317343926028530679264587125819910127591235936919113233915817676202425459586289332343285160417706571734531433372957586056171288516314821499211199832808427626476369550257780866778632356120669187200552145336861974723699806514984284276191875238115037699728161457502623266909511811127571300747492927466408498493433530692873551603184942180621686104352695042807217869439766151457337507250475009567161541981058427974538239708863641333645445374625202862209368136626187509041860882410350136555313799907246135422527027095506009597655747284242808019427980564488469109755355289887383015461777364080013269376635099815997729063846506483321468637585355989206219421493992518720940100325452869015768561993143381704676166964970291284481116357406559066687272889114784222247090319131753216510511944166333061946830496889864211680603909132021977173855368735583514689391262611063880685885494007585673804151487495988771972033030073385859074546910542216775989924452687856616314425932668748992399951509676664252643092573742278394343223016730172602833460241371121366735307789718785282028980613930968724466560119666527807947775298730512778594791705570382055162051620745349707312540344160646792492923852132560242553119350298163758639464598042662238958801679307352909616495253448198118112846937309407607384220557010169387446799391409714840602874781935935629410042916108547531767932657747221790647935155445390040616357304613029824152921906794099097512977340300386956855569758352007022121448862168748584270210521237230727299266848453744685907412681656283692448938973267802554522657147566845288649440497391384728204946762998663858396822470595752981762647740407439133263015303420612982726716646098511869382284418063952802543908579644206062669964167999133342708406040634530434409368870464866176895404083754493434936955638213218468059561847714416960608848345968851878714619352184975610548187844605477573843406209562568074054901296510932614768021903372486807579695245900126509937630376904702220173575370380073930745436406321246602321901467388555558496917110970995277319069858653136690822917299799812289628509363764190527786293569647865618083600424673309936251595568576998850154695057440524248661472768917397220489451242654044934975201678687490990272980089906219942307070382072402446806834016576652500370513202468006159990327778778349121600229702839639462510404368071937291797885830504775097755240138989640714523112596443108605717876500626546747333448383006211022225294762927098620759661614570486094950896418217091524057323983248683708756059951768805286559100626234399884879731371500253610108331633887588502726783112175725124055045987981937271746729084191027905213130593022748645254408859118898891292357365884066487426798790794907894365680502240452515276128722890559926615621929104710698202393188558303310627547620584523505983209808292426095527157349277612029730110493125494224943205034808839726429280294089930508306280035312300117226711547540454350814832102718402671088338334022466743408078599736605284803590350039382746265283901784638670610725582894124666505853539853369993632270350446220680223200152593359234572015131635090167106362295493260807831524756466657991874514150378254331964269981804089779008198053226347126021895334326577317416978712314679587941697720807100225336051605213449261394885681595289442149947839225389268438531400208206391695129037170917752674658949273680474684051629842079731681969779406858576204558552113511116610703392018448630714505416541910613554667328283991726784695473382274132294184101291000169150217404823122149425600677385105785168913018255151394532610178948882013659775964900648015828906031701434910512967338810260907551064254737119070911481262511483487207193320663011644038073876672983739038859176445759392072380681727827089356427694367727029413070782381739359567003844662253884049159526338140644078068855107394773837605431241298128213884298201887959633483948808515959830770508247528931950990268116336386937513139740081994599712163412307896645015748490791014087729014068635531266687520879460868264176533367008823559885890646195190119483832740474585947886741598643103309947639183719963011588843834316279952194211087252278138443694843927616659623843266351976256637335709080782237172786087795446323590967453156436705981048489225931869005481204044425016411386339085319146312825025715391639500151736289406870357118607504471005010175325598745165000150087141120775487928400446993784296431011438331519615649111623705143549548981488245505746352600091342191565419999570711716647137032496511435932737827308586096682526960634862293925501351885495436723800516455927358662195450627394351106480163598446574459761736152894193847126881231142313423940704271396983100505236485354651847995727894535336963825713672338602432552155001934914618936748644450496994247185944821487712129206709739588309043282310608291337280622253419762078870001225727080747865466637836409645758061493176498230862243939180508476662507209814246784059192014497820932120172482739677380697505193427818579806969606966296989487317513363800155685033218659653186211798604579835378049791542625439208360031165139652967917644852964787935683864178643799302539260244881539661581001353735144145594894172087831495187871137587690682695098361603124358366296277413404635435418513250135753809890533136926002417814929436899792184887186230981604443897046730577464657082963888938154356829656209425146298183634246056207505209652913578560913455335937058601005417797129671380721844887950060875635072691167162675495500316524748966693084817190001420859957913158481935616663802746818477970168428629205728558843600144602893492025366280081585403086643523704800057044780655876432186096999552046503307802336671626631871698413196109417124699427747987739860477944542482574260588003279507658398306719770839663824233929834915538219424322651865703053420426851358586803928343914951248960620128190335557996541444426137842238438409522995777594593169476041213806561966622706887269189150781460110311515018232953169621893322181583429445817526193114111825788232934183180409086126634636335093660678150788728361582628673167537293173553270328984656621494486879766986817815326705734370515374185126427506748015453723296757639298296860075419191289020999087250681316629166654922854198359410968897936513739704211495292021277449133005769215173657615426451544970860020122878251720770396136738835395733205003949204562751847912107606397066089950365187434067108841394144907393362269647790932268663159927953272677033971571261053128920254986239050356233501376692353736166632845604162751487794743245285570821326702269605712884449083620680238746831407116495822213004015631044465251720526266509782427545948520683626238642717983055239319375987766709376285599318416454354484565287283052882240062207323380681141479575149604647800858684732233362926964552122427351310829933755105875510001300380107331931038638348860613324794154661388591693073343174164499542217326351425983784960443237817856312389303741145349366698053247964427652978933138033733799177177901632145019443010618802267381484547798268653775350779497335318092354526204996073941183658048348325725051482935597337413521882310219924687443016804615252755607009762993471694664726816758454135646582758799069632128628696497546173354911139421296118123550747922843128686653474112126097798371886555681338796106844927099777784756114357771390948888647394768239244906025341420882491853437651524084333202546435066805739756249302999573900249252848562616523639736611239095682873105278052666384299076802475448061907677776162334898002506898634596082038877163236634902991804466390764820748541862959003792796298155967935510951775675109793378873909637730982783802729304859245740448432820643095920523344583544999994519581234268936402829484536658880782757180042068285528285772436419076337862875628833773549332420351408427640078795289698075298643687031805698344857388864034628131679387523233507345601332527499215450054675091065800945279293504109851729591645187651769537951650237498949999295170306501162819365400795676820186482055763883056205149638974474995787909769705972571189056768038017132995926086313919201753006528297275566547077614896885430077964476611960584604258206040545141005844127000782919117136137273269085763507683799548984998818698335634349138310299552767417107554103652473206427929921868804451962488327251318464009372805502146553060357672998320297032753864915026442827689320270749665241578108022485213242160611103734047408739757591582245911930490423366240115196834394583520756462814185012406092459521137961623105254379912229132316325772228688010584246547399921675785183472951963444200495802880932198351456175694372975456555684382530132035221859523543932421306808303063309246993667655097654887510600221284234715106184003388721746685875817636828863890571694321832179410445279234980254409694853550589974493558633401604313904523012909925739029502237449103277225420915484342240443622475207786485659482368041212194258126293299212743028497931940749544942116468109417914207815066721287224933351758396637684068322396246271595519754616002180595511877599270001386022726591142856251269562216813589943566189363925553637685596344462328867005948807358571246535203768387637430146688620001858991772781689732647590237114178184469635082971268195401619258399530215632893712444054817642972310569105677274546321834725641652887976855942264938341594243064667120075733157908131789217814682132590874583061279087635490372101804487665912805319460604008340625688059392671812277063982240152812272724485293077780691553301277920394280302965392967668868211419815557992034611678416615813201901826744303007166151587695118850838368165598534010288099564004331442513686871932104519091977220917210177783746108724009660064570232659402410561761975989994623638830671143362875764024305353652188329511570680209233477396453173171464375138880062067511609393409439558369411014844785306672011304025030885082828025060516042584079672413619308704062063236440020059238877360728959422244917527870364638954631441982939759449762015568610151706680614497623339562327524615373968799237773662079903436168798538617875513174329337138143386312826978930519000684054691027203626539491821996244356675009035552452921543282552925569689190911921161308733713923542174602944775943129887595586716947331520159007944704660866629809274856504974446423961004050890863663236948002363882209315608614965888032392203852009121970195452812157958915457159048660781385293463792964060302234040068006287678030938125992794299164334046954893431455206646727627733327931180187978318340817501878881402237859995623599027257565780600148320989329535931394555660635682831846127815696380378924196559036550110760206135112657602111778461353246096298669006016240201735821926731689120818712761292470413099383873473633890311406608207031988005470723822037221128267388338420191185421450056226553974469543510959747378945848038772892828425245642879845029287567741985958838986595414674938896176351196919717794741830353099145913648406238611243867282007707646963364508096565165118857329624287552516285524668961817859621495227051297024959190556354376991810225087181959752144267868744784456342276215183240741206937691842403198052573976811616261102540609473509576995751330904901571242881788962019104514148745340682403099302835582690220236289125219451875670457378802744682061420700182713375945263554530705257426083979778906235269724571955872083848182203223515276310898852259213391407207810267105762413658537119141653326050537000530290595850423188569072889724650808478843693495148230023568509165302984816772580313908637326827752087449929410475297944099033285266543952452508755518142897803450993653517069089869061677429365994136331540291236760040488841728758612985856587402099557103882062443263822122154176412492463253742926413863507232878685446338112312536482998041481691503330129953552793483453214662492386230435283241950653483768803462807326583748476215548056595765409465177661676895396049877516025869800276866424025289001128833324245871799783003700046661156703425064264937938711054875435892222176159438583290658131194835789437511363258917065997562950732897591810263172995837047242870070687865814089279152645989377892225833257494234778384248657497210312264265310099105081999534172387992740556099364131997711504254064643566491283311046939752743293964488077250604622789300669655152699405612635188252789728998773967492108446683264658136936071964241164052415092025598537114475635334408451751936777737792779583063386103694433805537525687250557396347767630824826256185539022678318011079610334630377108300058557994546397230052866831055942760444761618249733177080849419070703427594022159482140396538161627242516291235247680192879580035741197342576046872323926508187151074446868473063888506009147937631517748705781724338493357837678118109832141045763565033652229586393949671854131978599210709391018448994432340775096073587467420669011224455469781891129694536052363912852148969228339417502639610155192324526793638587143606517075604690316579793082508010144452612271896373638095237891839674861085683655184019285340974185910555726494994264224101682477568498025835250254680922606650017094959390772429658155697816200014253199536469559586576679277238459787707131876850241413449561086748166661985411997121399049725614194419761146439678040366099704636482776539873181210118625482941362578782319016998829682254023174752028691114263168521136690827474963227992632790139281009499789130687546432047581251659639590794934253810973311230697641005648617550911321567744230429517914082242737816433919443881021820268961789122815560565224032432656193475276965815782462905296138708439271848285129131777030015532583795499126428633501572760172488686822597111481652936619750038096990425965217201385998695621965849262951170213272288012214846999761736303497480176980514977123459501268748107569392555873488025798369643670256869330175269687550440381372691353167830440754341580087147231075973191562302195773109895759398647495374474918150370300314229429881580221182343489848679174208401159923314519137367287272255669462315994392190198455151699598582658883224985235556403010564617451093640121705229427077825621899756883555523470984518514411539356966370193513088187868739374935263010850658443417037079620589690829301429063271157629457310051190522433889472242702837617637799546809958989793197113422989995361986106984378428834348578413621986764482641418966511546674414705980844732911433592698058233252410021102621609319702253384902172163973878408281163677254973045597662005699902389500540733573612638668790235746035610294243950010479043239890286004036270749180602146784948722540176485027323378389698030767630016134294337107866886422405000585066259029967451180443673815636045476005349525324141395221304332883817106113388025977853859293732346400305422093059230103597106369001674145608986708570851536898519085001565090368157673256633683058406164269687484808695554060606774252089409559545656532445207375468600784943412160671965882378135979478995333510524831871852738134261064007215011764216377583713008772573393148141422073412551002104394082419826317660204197054552816533189255965602591925587766178601964554773058864715729657283131931864404585253396779051829109937888845135998158890946570833404400147761427546482438461867595063344678625319675556980880243619475055412183487699164934613891324344021819726709861781357947948538678802691801401007780568197796858997239114273168725227875402972830195134353933482880652594644068814126953551819752327939332875400187739921809659075819248921084664834618098201735167848505093427869064691345871701059823689085393659444550021902703711027411514173306762253948192071197981678423245473436980865539035460884365070134805434549198283955290100503589045300986642021142434441079214915085162849712706597024331649790999197840386227534200957604410687173752726321286743946369777958384879566272783993972524319871280004533357224822406811803884365734684846579926130809096457740632010385270583742664498383209914703751976573143996761944500753808808668295107702672892974392680419368175493164899063598253219302468485365114413286863487617542948027662441749122204923237984473357661565240360398461574128376863770154010038121026324674282443700153728423220294268921610798668041598397565421967285322263422702074738754725162446008347656508165268007073280981790133771434285699239760954139156556624541573350620210743124001821850184587624794575597985321832173798865265617913737750187850255026139278727911917557255437008760664990966464065549030780849450061003877824148120170017948064416498483369811338437288598589222642018972945951093521470232191286103636257762339685085921633344881068225740140898891974456503927357999005356107064319751175466278077371501365721673958670337681008396891717575638687188467816669495183509595734459192663697192719631945076662145619031047136770921304541718986752920430066369808304249042843387393784328733348684077637620759466420242352419299765370865030179000242734053365730296642362969276025748506497751704460191229161322518433465502955889814253306021044058890280617122368726245541410251158347055152425845258011767768537413825830868553416212928145496219128877899857630757685187710232086854544103962843993310270512878095303850078718769025779545116193853344214858535044246179988380880716707179378533764861903790502692027731368351792466281733263743957919026971443323953456636414552890059626054249863012182268461949463907377002845323608558527231942971165374569344006200430990343617338925552837654263114968701695330271099139764429511555730056258926454671902207259650839818270309697073273976238668340193874816940009591580757561302472460446222498211845510579791886369457760674097232604317004841601119123052568331066310362355070070927366874521525085293485733647634346212387940612368954277612285098012821827270830705702163703097687494635967141206395072589745805309205594220316988933376738591131708904316944285602556789284196711997704567738162012704482224587607489667727100987595504417784960818380767229826462853924139538139574164930063372695804357186553619938613399312328834973277926324851411380290387311441187095938874656105572061115516584898264251642687369326922168313206695940826267719161192010018392588991942163169716031064561564179093407895420049719868113692662065952935938328885415340088837369846169426038484199099323375618141647626265731691297011471257075776723820100452390889154103820950347118220838176179179110642200696809439194676162145634928248421175951802380647151746406757062326444165773467361068456100664440799668161612602724025023620802391481838607858243408944160301597924433760222898679319593326235794614924466626359640130069778920014052126729640486322535841399822233095174133902461046385610154141627291797487487327648236029020155874879052671102145556405757803723098051855885317464402253388256526586084249308695116553845600226161861223760478207795362724143000278273238017166420016863320625941864519467723921919998182693848671300913559658436634661134900767949762559024363673349518921513276900602092439837842917865450517429953532589117675237259469702836031061543108129596008242307737693253787265548608941822239199994579120425096641242681190682340068017286063978135205646681721342071500654064170325930576778001921875334382608276820111292333113653546135394564562093809733350027040282935307880412309676285492346447273188903510164471614323660384042992850936982788066176860644365077739010901109520859359237303930530171428784936129210434533605120009658131431781746335791612359025914665639849711607776376541593433069725378857200307493845476330795342378978400155193477533686299832732204188088958789008468260180981622821739771685238159238592565931902351939939086093742992137760128127842356076229277276439618297655285112016221905673407826931717077100755583477601734710621116556558253140456057429054681519627183259030360362405699587560686187355839329142780995277873741873484820455517622285976526857528988037686137776859196279844156952916408208287318401377786210170267349627652656948497289149967039399977421279052839586375229607929679666384956252523554932294327866438426882209632697139470353289836290914237953683870351908125443321875539186102028882347020151915957262335629866436011008951950321162193442380343830830344419173577231599424747696109266291249109831773608820094376161484051216302588143493501608567979646691810881048640616814176668385247679312346020045936691510887805706873251199784212016358674126973891625159364053647334199303466797638257305774783345596573773637089434344179067055761510900240183700325351912374776502263133767764205659482245805129717863533826830598349127419233387061163743052591154403130033152802208606834420996999291261617269086158615783279599554175474132758729959825881227046058700400244964616624323149659907441775612059795268299508934549688319032943541686676448973092652953650262772036810740974639789043955699026924602426713569030612096190984528461156880640609407888017984252634913621878671933794607703245250319067361113166117101353775053972552386146411633680624654262278004500224290572667212707333190246513449875985112600850276098445535938964752905297120978580485528060567415989451450193590731070570638895367547603092033274920542298960080471376153958525435278457809306069221842710427217607911206521546927381440381644758167358819269669298701131709096732952235621785813652707280568337253785071981499169160101192486505036556677816088668451509648042033348075237354542355708624021724978381854549698905595115021493003205315265513062605701350930535316749884909765022181651660543173561595277124360454008488538797354139117322444161025975315663208833425344186519982484942959906246262677552653445877772267267918916430919133545342360831777010664788957244973814726113166833938131345977708872686724270904313311200877457895956167644501495711387919669944548598273024140249151527083962327752866651871003183836548375855232366829517514540974892856092328923819026552540595256443302135433700869402817037879844315304066941728196922093833256091115391863537685039877981220117950004761363699312410700743930785466309667128323911721518890068605508671943919619487836001688286249821440442880720164127131913992825775816236507972093594639532912177015253579169682663209451412657012107816983015899889597250019048065087203499086808137642185308703802920470390081442055158085926740456372457488808421124726235124043908835030462977002776695607934747766563029110785013949252746522364925774561106472359092645128941947427709202700606110224461142891064036040447568733676412049223196408451675828906674672488821545287404891904319154497814621207054986220992583456637527151489945126726075726645697049621597307939872899329051115102521462811931790396830283062301190253156733774799702034266627622862696612052906371650601405128946154189078512870860259791663294492241956578961570511731743494801294286160410283191735091559306352253869961500226160367484109452613143033498513688934469546774067266093994271073420486200737315472950929738053710939801931345176884087881123346894766374470463785877638640363702923988219304053955800345197748988539691980504970490516097305137664212197054819135202142558254680220343376107769520122640883391653078863030417652459645716335940114043193654468317205964730223498497276072311068795792702515565449061167985149585942168284418762550206983504474970963549662902335205674960153051623024685033502507104742405332189124618173443741565571599172298970572906864834178040096839527724495747354237568076751413540089485455473295036554842496560608882637016219781338620512471621592805376181691711217177083804539548443227390048271560680273898789419947868221760850172699907686011649517589351815932001570012449414797949809028629548607066913451312043108267059583388353523051334718015245060094503288478604976646215550094244337782963744093530383733937949870695794788041637087345471330224855977437696466604218813889750301803582234470662740849495241514344258166260105936630541095322870302353794815881719381986891347526930042961060677205234218299961378335729447404182415715705384808319126228769702874322429718399734047074024697271798633616953325304412058095220201716610685720373985480979012148381734828464555619420000112418530495131711965242633195236206098639623559212195870961747352925346610203915846484610986836544940018111987534623869125996779637508142378222227014447024389206111754946465133908879568778940832722849608311469827691305712587748396337601752910498577142722647573642786339779353664969411321594626981044816767550352668479387958780722633861649019025040794910416102923242150585407695573113103780253370557148155443550162558595174117914220794964085574798433620419835661379041333942194008265720523561509031960729611270042987878987189035153424844138417859905844158626819657861623294166397835787880183513353178509342486642441644087105700724361888730870117999622521484795634050376633405355275430162299141832080901736210816939597923197909859692947426726922321076927798190036630313227546543252294302141257726883987929843515172861118746681500416278145839305474169387687049987276726570770439326084859051737132832136672829248509078197089383866258070910215998518948605349406606926114489778755793398299150155007693712352564742146262596595594662778229502012430078938211864179078414032135292654450992436735375160821548736788259045219055060321205061694631318487549333621494201033361349705929481699526403203037082173259014300929392699684183871549443768882660508220966628031165987564908267433351876566998341635575976489799864911852764866953943065924565136492344951818475665947279485076600807620800802543377535839985276661111649053784064866378271115670948867689768076448679962693234419790704477514069078951076509921311971784634650955066921759345744176036612671441563112677690899507960999484388809342428004764903710847787135150437951973552999090641984970517207031999236865470132654175369246057348073072450798309654387415273700879772637043277283323275707250325257449690195812648332832681344515241881624056402520775625928735792453880383611001270260645485345941617340941016315844343826737949259379162772403058470250365651757737098076851642710394382484137907075842368378194471494159484798006841510013715400395171364849732451863855211114982621989710656980967763082944546390418089108453035960371432448316050282685431343747794478485874781797649326329502328317469312188323789937650102088882124154705614329867057573669316272021511282935351310783713569157885937795305295641919699195159393590363876807115593085601752836028328574847347960438077678781348080828799465880354856496112479767049346688591088221313252612213820861948168948154625556068823228289078172478176921669574609774623227907018312691801714721169316418432110222852667439493228422994355055800665814957939170671915922973039870842290822623910476787099109770100137967731875436174605694597396833983970127224291383416907268001962078612755339667116059340965048885206460429229986117712376701397710755390676014808663312767989153156246959396847404218509992530225610165595282391033852810817766913990624276699571084121460816860033879751534854689551396139049305522687555340689629199572017313482455566885163376592845911387244744560533432237855628916878767905588616275582708349096837146807574764102668256452572821132046216225274196225553997575469609759215222665047820176507816139439597482213011727368533915660327259583998657596759698334392864397652820650568101417079020633064995250306682629848849610932052515213089580794449584108602686014904149624592996867588268371161115423749225754546841696223554268867628966396362650549871715182580283565653904052284781249457472719266326076888360107610464658003057296798021529014445028102886514577213030505842425835727556928626239550529537085687624217212999814181285831943679979133422502356678430386560371918978240561585357357636564667436836429978000749732414052833581841073860620144982290681604262062802985888241194017774026640567973318723906335484379298796793225508030191117854954609792315607145119359395433240706832023514175033143077886694001022866554235089814740468728641960631938303194299171189443056792050837038646273227950333106283370843002830234085162234460513398077877718646312254283036224522959117021530959080498731745051022723971430997201593054354659826723346952041709437516601693438921263042637739633222143338488488238690515239688586021658695983429634030503855147635335485273672214940631211372174702949543990913173245822755073041164558689869992896056890790124477845653573195108552653798437728448519625948560225096341159799309334810231726186087567637831225128910957301862523785636819395922895945794796217219438472484084121278413310665941300887881362393435104747094526362613169170561226078289074832654248457420383152730066302122469223717261285016319790920489475328985700448392720715342446635811102112679938440146104870051698840176248742475008369466367058770291507510201351355582720713708178252986732198430731281694347462554178105332863583000943291822770342424620896722385863705188374922542369100018656651915390257446263044159080958319672030332285616319565678727167349959798871396386488553787991328041145623823271371938834252911281614990048305268445400698780523520719355117520488583144925618652403458037588348669504868208376384109018640759806700192184812262781397653551794619553551404126192860361100144179623162621598322496464800801151125847499886996936211317880146221363547117448060717797902850845570356607433641730083405742097594080285690417519277848752669782770372182343328563426177025338056639764967421848518478829126092381863924321423578707868306574711702732181516696750669898431122250199405534446701220284491445285490024218502852416997068118953459099942658684664149449120483602332187929202684493403405118774186862871985780250344261364840743562789605517196889326717376772323293556923836686600390037394915692545156291075051755270924456251106810315157341793706983757605597608239793061223872191183348890206647121659535104413843748409428367153071367724912948919603042771386774850022504961234275427827503560869752050647010515611524252290572316741208651995834166010362727408634210090502249002055327570857332313385352921030018061060252288393377045637579180980607858234054560056224260581252731344472023853794227594497349347160179708365133908861000591280469303186965409058380674705854191215235409481502824280216486485198938421967737975264972513700111874895238906664054939082963963656726097148809456770594730833909161362844767372711718946508047150990930149351670119092578135353434363251533747424691904859102892273230937023552881251240416664002113450813604421815355005586554109036667006490798406046549153056924443500390455494398024899585259823955022042830751466614134110461099983462272819767143342429900524224178564161663941379354214862383055887923670324866681054691407820167777988262438272866696074743234044126344719242468637416271947517626082582472333959987738285623656504063760214429363917147124749280346175847304933876962601667833592018029298110663897733914096373611349694372020337092568551554145885764953689101526172659036133692815965628878361306657027227378529064204988092224794627088386147000699625957938157603726782437285838897721684346895797788401963955900509091568346113384155128298649671502731931992648218942690135372984364065998444459130825728000558355033742636660611785659596479120503857667023544035706112437324387895060839833161433372511219850237319421158541311407051656580546521272641349102203130537866432491312671165942609693179747963334065907658780487129674058482351124524766013224811962991179486065189870230717281281772578184768011136450221158096438810009371900934751759912169754029527540896477782136240933775977600657106442926486816349761069510290313853239194887530083688506822021552107607985091317653985229994855145977355617028799997655818240745608469746906855082106888380955877892144445194191928359384857613980629695508447830347610902017516976073456264635536535764630976980878726180521840457986797631615061783184112384421566354868793482166134610733534136931397198289907219037182318295579874445806206239801403042321016785406472505654809365344673050681460021458885579693514867070261237797454344269898237546264421561076589545483332062345277574114799301185051378656475450537713904033294056154117993074334023146074543550407680508734098894030703577308679581255905835328835757789069677682538500301024240749153448759950572844518578768129858641977763348612279170778373298600395478560383408913073499093237000476795535898782610419596518216241456574947776838271020677148004683118530282283680309970093757574864423348620996214309929805457079712208934242232682066865541325110192604635928846183303682732712688596593512239658495261818848246279966833635084662597457357198914440904974571099398792577512035295433535870866055091779261532651448702621848654107100651881298008548557702888038759652134379695043934780287950376990735669279343072224509297966868156302914642014556246814403816373843957311596260391337538730764759395133038275508279240645076707695063621914473264558741390768432391396403570954318526366755165434302798723494350144329808784274411685521438101530409891558382742581995956117678939600320610132103129752467984040422123195507211191140230511310977836813783388561953503062969927488883493294687323358296018561001391379260329584277570571411822762824185582830440238689696376619819633237944268361934246011510863494790709470999177870606889104170880000576984877429086286735996059858005406770967843223746390757560469031712680187418053413893199146873822072572367834967644369208562710455868463094547600760552409610050744360359184756028347938874742953984259336002121883356458416030022457923566114737583442149992261417516435648226661280831772830728764711182319546195161167263011804126048282968885966025844512722995964743190221303964158539569358717145228364187893157676004793782435287430340931081406727072715638709518798407023503130142247184063390471856375161953691677172339973946332320150271860068198083706927626485147767564730826245425178630813613272734588662671974495073547659265199255011495295599398525011133411397877235642489409204460436426223074322139540605513045726030907440911753861039635445967824180679336725057013411551128590355908240517551668260035971106013175393406231768077200071698814468242339227023376321506162044055572749794858506622106262923917802145388763149634918268009850166954617949414198438148401332481844628002986520205653182427326745872037725875298370875486735307052652200438447251762461002526959773100869694732010336040480525917226721560854850976064339350823653343902679358424166189642009856629157759190344220453954385963713426768307070349166388217113390043245126266541776382453441872075648740388029902434340270965260694061668182097412453606570560059174901250114073768619989958559299403018375520302879846515957671287720152508505784638069488457372580703483651164658336725467690197817466756735220383127024233671809828608592525581740865364990486789169194899779178463630517925686017774671321749416391606399703847585659204830327954000810112429001850069723160005402356569845973556194277362274511467205591567020562633980855234408894535910762706140424027389533977373879406714099210266491621179799555084036275157172309243048085291747508513631221513909568913262066120056832056408296761166157627802754092082159887973419662678208326565141598492246953879662858165313392627927069282620403139802793908936247574686801752623833013607487528473445398765475740451991218364650754051352888289381663315031684974673989390135196116575509591773901715528314718706712923278847899525431055181471053219920965351153240004090894960108186860592961866294761274484231462847307867781757747416054249967224868720915543653501568545880486461107324697525911256664894880491355729284505499299970084011804954625933337070069437211170457255947933000535073470827078130491759937708217477823362915393627729936518816368086015114033168686940522951256932736486038306575741272954284893337888745442959435490087952897423030572496096016555851759449495845726699205730391263858524036987615499430901337880991154418852375158457756307854754473745757266349696588991680682336463401548016638915866288363279653843330738499333426142190234194064983854846331600568870366968561767109365800937122614477608443103200302545189961259637740891524098631972240651032086368188195552849638577513651733615125424835744541741283964162240069666426718337276089136590954660806615913638766770944008335914389324073174213651646314213521582049061446608019623499132069135796820106055805349436889624403874145563097627038607109710291896412534100840173666402270992152694251307242120564709347007691100200016350474469050171928258037139004758417686462236929023460817908280566541069404771377078817641495830265491436551972712529235538606031651015647029627797895841185702368077694341197169321524426694281712264551937029822474349179189163087561270005583527310425375909902800471427865057881912652708487545337311990139795501041351710823738845921646853728689638935810036593178855174277357451005126259430913580400283449923022170386527742128661355985388123076977558225153267761344921249931844173905096318256221484719097311508679310419972299610901314121151706386442293015042650230353068901938237864075343049460680047657449835848383087679329879702255468258273050624473264166529278464992240607862201081137380922646939088561887114308894100288157953395077063357316400689663250481899783058389624286397585516340187617730802517539784601660948518133161477682906006394555362712193676520152729293428446597811133043890088241044093352507450710218783789170767387585205168524921213618125897894278968052299142336749893235066162172481625130690153061366603631352682296531910688653287664990489228811655058068003703854258133020548415370772580769323793594294568118794262494655880793860797440615734503625763201571117283317302644980353531790145130398362105551267021697628951955055911939660523662704667489964646983932573063700630529862756377114007149694531712856217447189011851614803221787475256173316421578121257796263839366254716309619829736229404909011618668186822876160640550719810666314087502324147048411738595148057868131513518377916097685109076464649009219014119215214473360810399205797509778187115252944235637418487324808159531454008693126473566296671075227506120067547372309497438795627804433805879975550950274001106296200058052575140588437083409052205419622676819478744431754448238898044477384094978688488540981396636357107118358416125924086463239352277701255134980453951246294936854379605613987879716728176272033608380606113554500930469728057161998174744674620960268477614950386265457954085990455244582825114994993476907740687980071017249237876831551978059956931496841754259222410489569073151884620784637688824008697161678137658912689457832130867886597777006431422500894002233125906551848290694295232770003384992191558983383831436875690204859485426181609883150792236685769483860350862381712552298816070225066845905260174894420385064831380239139833326248752912656218534937380370057013381014078732809371798038231611454064780028031665101403738694041161705593134118677549500021932627031799184067899846906780406966757752481463570266636488076650933106714103308295040732974398081621353951386625224747896666387152668721668198724827983450895912368753350668388885611106407756919371963391254019541473195272743951731711536900370243796324836596947567493686825497364317351949887247433274720026694188475915426900035401734880110247712230287125560142460881675849469193460847047316339810363541155210444086406812137777023263721962009432344078106282698018473321193401071118589047750597011945457968013022485499855586719373437920299736329948426181143105097733558233930948606318786083998481726450911692584631732083665982734344588753088744750919022960408636548982981555791910154491895343210413344620190948950045592046518790396896525574159303949322697497854392484416974678772910834796819246011556175012716802364198540682157177344345136766710069302943053929876352085200974244646590552556790967429216270524757646538527851519782288218572762923292304461247074750865121962583794188460225733830006743191281904114273512285757211380521561667968633775453058842611153716424311189511817524266079809152387556041246121631120982363673804955759834000978085836473643397801943190116442364930740334681683745937750134411176032617232916188560639156452246947823930977068319097304469483213610916432017171814407426213972116968291229643102579386075762913609505891824499510741388128365595063677264148853304806382767523563264829488896750416802307750679616345521003941358150285628168014772193949847077156105090925717735357738583806396804087290765783399419140621375931080901605632517252169373554944582964298012602666338936943665474542411209805593613116477457123734458197912021986552576829923404357397256141401951950860350923242202070179356481930390970819736578709320249286145918259787681281555360024323268826922305163850271146146176002958712690203507354505507796781653009440654166906424184841645206334761575639001741898344803145722745266259034583204992637657454862313534591459708960312237926359942121912248237898483913110631089332039433184824619037257937821328955549649924986624518584989172595723483509521962872209434113692568681830571147426481646087200925452763330759523870993747358685705142301953429990972536062486909304111201998981308043842424347255289871051046748507811709210908234599296496466072945315938807742278305380700686535968310672577052208153386212903398899068203075615855345310435386318745056294479979375566656086483803990004315908685416951508756324826941239976490236221150214983974337199281755674412345014752332453583035552190391155258297429145147648682571975590239527149179897784072836359887268008888821306330227551455314200883226707200755438131321149497320908137119954939030430866712471113732224987468423218920079849289946571851136700717447436223948680802898486680409217399912840571056321354393474938978891079983395197141661752728710752316920966475567454156291669419858670356537608322545473509266283215790349698327784481008454487965793564189272807312905415125812783416889364029166965706761787892713776194987707510184880880368758842140119037975268372055164923672996496738827682325207808853750711815667133433003713336892793841807594237011703636975796821005395550948952429324608462791812156927408568201673100573668477354497802795507094564037511687597830675673965673878235631363614565487340988995167461983434114041671727947623897740363052017627294563242451686221256860250524389734367912034495025566178267595971861472237132701737955858966507244493137901759761446284059327412261914957093437054666349764785637310346500117809695282029983613852273091661627380803947455047589476149040613419157020855986997701067976207340725340066486342241955850255888516665320046614158662501317942615882001586482259013916862004461499217024962012169672630683506451878719474003819174398912188014015282555372271505451947505414370845878113313331250852686781866597414626558534837235066583507382476112681311626162745169953227372229126942031128439531287667744563334622924971693449355865722844075262848459141068136337057453929093832325904781564638359563222318739912564954524882435310073064291530680829644718527790754591301831281951523380421456991020750266998904566535412199475613086965989660281886288819612605082257073352334713910379799046072395424668620070615880160729970170642441567463432112581616554870163112911872656670928150241221022192860822148535250775994911427591837506414523029806395397930039147131847661651949586580397641284416790517189645256991398054756417127039000943186532442822978509115440390446532188813182565462893253581632077525518622046898304263632966029672676133047966134990973152194182887195115493283550314740522504667753205873798602110454002237521004825734229119351089538148379459105752145760042536947848407229118235131347707727249284572109960052496758974139319474560207359848636715318561716823343650943124227430374667843752502688876853512095153828103253835390014573224913141620514030178838980548478390251057470845455304925899753034033519746822451368037743628165274921338809481126556618070523786237778252385482482492493788912143468147707407143378474211459914664250081494386815485644238441805068105791477693204069263838012859809487640793039357735871518625668834077662981140987001704833270287162448709045462126417933408592880615934796770473831494415646764572706595719326450675702748796285173292794655320800749413375206603931025780861592364536321876080521565802028309822034927366562809773000000079744209861279317264402341726406524043641431894852873968630466013571794901180688833638060423163649529202051402284059715548373987640234980180071637334054275137011228566633364578759174198875127859605117226257717721048437358697521380886159025772363282089923895612445167027124797377215785139942421695018334217321544774501403641069391297025392721856886065360864563918198307557997652606146724569894094376672591436879118454334320202173891231638695218008774852093178345374669615994377402715622186333293389638881670014835629404695028708772992245777488819652362189998854049233264024263149818768951834212667280502549344594816966881912606840110955755317252378088088569627938641208446924502272490905690311828354676475766787387231589919834407268494296912496666863754198781245094294372565901460777264413745524625272512713169355021149301260048961029139320614408084200391674090981014594814515094989558133546854714613404726735667730666633858102794229519101180903228780516088977404899250878754318301999736846154320056656880943752688786053733098922172783327553549664984617503334596240203840419137763743050619423785325762046474108253725064460461518933505146439490461636892544984295338726519563891508975521702849164964552202804090212646583622405998148925426630399026162276966617571395759817185457984077945060768082057027489969435497440285509290653472084098212178017453095344588989814453032529660960460041397935576267459652149750307993061698684189005888346682054456005468613751806718062814541066069531737790084833702165026525225527660903021833668776488086765682609743645402889343129310484764801615207447319523307033794172608886177606421838706584371457041111398365863458679229077681107407599633309914916704379284763469807773036340712288700263384713379804369862320272766324042972006892648129104852127622492944183834997015932514259932650868366451458578473523899297424114603768947148948030364622190856179770380048772906049983193530777646141550956676439800764120283098029606441684125908311285686082358052059244288018473110055919620095393877720955115721385406070527302234690806823824629946572748612523661825011607027694140790674269796799981643172075366908064736786469401655378969578549946439567621049594154968705064482435528526998755171489153835620194234348735573186106230514669064259678011090470841217629553569995328683833727547653138827041109672520955437678596706651074052391592570444883106527592847713502732291687703658447833620009312077487140438525768385317406825600867720276069966095807571915565276808956760643037669250179472383562485563727341314015240632046025996179203961797229448446867198871000808593820221729459231684098799999810267706244383161437531081166219006358484456123056743745695614425610868390818979876495065971920815302966762531512481171025428729291132472517408928103476744876779962137741686576909690283211076712114876668925771699030658151991628626863530190430377714092616484249812071963201486704771406480448157438198932481986007021137436334264260809225253504633151256311121997629109588452404505900567933154769668017272329068105904291526285113879960943051307263134122799013064729314288306140913451571389525335666567119263814001939664097997105826051876233410191336549630407207276968611297895980952877275608796749169206499036781348448483219312929867015421824120882720037457437274573867977170671039165716682989628063921087976150713840422098669814764812174552762955287011131743509228084710661694178461591053108442453867617049127955980611437653427918989714235910196927080475106381450408940444744250526985835109221253602398088154772624136529802845638335788779956221970661486622037921345764729517362170881596354051629209963378565317190960822051574746297510841173699958293264451270584455767390327182822728992604363969742412540703913349521649990408712125027493389330211034509591468790610886254983229257482717339398364495396807047550498185778663184340694006428660281632539570261604636143531651965029594817032992846525530416569101315004353784078791679396967133944373506872802946738831012811697753346001190170806762373133549959880759547500364486132544941586039636517210855120087173274334722474709880129850065251847522662561279899021228631524687126778091579874693690233250771870342995081202954960808928211448892719712388759104020721785538721661701972205522151891157573501625754751752238194402733890843419282637220597995264286713018783207452959433635306588188849349481967784757593559454956149625869727382736360201678659152146659573256450214961741195834242643714792585601072466013243201929518343772452668333440824329821836055804953120813400444557234751390958037831135218335014333571116687461977200320126874745739696161093360922199208551773725955099732795047439045986705960660684744606960506057683844160469829540764621105805638588662806103152760181589563557594138181883259538085321387739843319505941299913005308209511806409739355286700576797564541526517629268165355989138667884212115895561185274272825203009765695922375844172947982280709695813703006070511560108920132366497222990910709231692038979747218495590957672021155466372438861040714497054347126824983448174297668497534296883087983472862514745786096537274169900763627318035112889984331822819775791982805006952402088427818286376213874382957295034929189803105991813040790282910775472693504186651979974511886379164602064956196272690894625964038243450285436900259189258008755559973719678186392516913223259521317625636917989437024670408191851032035200167474555102103152783660178440474684038399318769472619959558601192518335812212399146742466201605827005822516856808350325117125263931461224392161069541598290877966791898365608598645146101078754910672948621564328506524943672432856375705225952540015719774924645310037409114412224443735751156887590453014969675991623262572538732725059366769991199850321111613902371938525819561745819313646829033561909635793277978316996835205414250252042223858076804004371813375651090987750061025978487536958512980355915473833931323146003837846765399543158056244957802299982563266790550295745720439971202621260311133987389174421199348676484954850539016185919078979649634241099584350611293880782810993150436134889053449033879113892764339792769396060522159122798589782166952560320884555874971133747177319061718744931266472026527346959776550858116031421964777079219778078695200917146078931298431020357234354705470690605493395381775796727235590548513985033882853851105042889622905909233420791699786968110666576292927277796822147139199934052195696600488526189054358751825331555571636597256858290487030179706286987265250668727222254199875507551225040102186873145846445016755845977184870861674670407048825343365026476004909169005464196499193542376367517483465655296810614593030548388403784167541733516819273837448670109101968245704228560374375863796648453110476177858492528333356658927848263813210243800838559636845783067791921754334377280124607215906021752806483201524025339971301060571506197447076162796942803887393538855961716255084391504991106906509704162283595588641914367525973513568839960698973222083145838828109377717765993701816457298843126630161047843538428532771687405779149217240846824622726854197290055643112998481122371632858568360062105309833894291512998815200553308726270391802219053294799503200249991361369190275067125649231935328978737459001363404489008274753668485703313817101214556265337436280785236360685661792273278874581177433060968987549192723015174505593802013833609968320305198293343764502588248816216234549635768550189756585945046584579942410814586701945772369182463261044696727745980320701815494406715397779364243412688206290749767333412437489632744131882303817553512984285392601898053420522809518173503208695674083872014040025626515814822946092253397785890753705747527804908048331798616386956865066398743793378068040330830081164078361290626610917691583651009036338723321252475017099083527901349766453057452227843487786642947483235714451714441038183897130250162434893476376039352913236049808501321904961424142656181558509103480901766031378705349246208772822016567104031799790611904195969948377301304852392920317442608427249732736685472647883773563458223042212942216222791688097344628349125578469626243663391806842007101927244972295582476442892700716816439302319344219033255832942828771433164246408682398829887849434753223779400103181619602079455190742452397824342233538172531653771636329274381322239045310278194520161516677984819672410893269849697866575678272771340896047630865798435391232311050814852706673785734977689584427840738312941411806224907765321744510576994126723076142797750899944162143113467900029755253141162952203762859462213301347357891191958314055257977745115422492555485291506105956381514780892011756819365529870348760401676645103821236290538139966690258815923107065085916054988151165619859002535345059520926966913319232120796191342644033154762309527598988292947726532634694262961309535003993884449778988285720243680625711687542693527102641109210984372006600202847249117264594649276236752431882049751457735468412155441175505796382006141549539031929044280492346582853701807805741611689428611085141937597383374858807655641638921532027487070794276619833074439934185550811450301044245488613613570696394902146297955240218397261423027749221757981235557294275748163620335397409196146582477147734232871640778445258949662870704926108450463443967477048360699661330524734072422343449180497246519986486539631606257168009853525230649175922194851842334396203292461163427128041810765890907791396527053758364768344019366399000653174628216218683854977025753702640205935509309391173163511081006677006363323374769574053869732622094272300745100206250254252418290397894120957104005706194456097700446006248738478773404241299205474967161492441745611486245142305706730237677583940853505615810004050462017395083929638150095336221782350497564679178765870264787167557126331419880674426478736635591614170331328106273515988660167782354657761364999034341505206889565838302372547506027845397704137491077732626224157478768719038350601525187700450929595662782658911857074002886816734705114786052677105193089420443801411683461702110564104034667295847949510194739822932875763296152537547216571591182413224554150294805479426441112358687999121398611807610015725934309501649321294309552785743109400019111871464654347254573683569537072615268834740914720678001277841932248256055006974906241322674079424278115723877539204116707983809822774112817079819472990194676838455949477843533652471568977088257256600985740282434425770167302664584786424278094636321578972742504414777823194013000221343836274353069896679615459306536322894407708183525668568426564457522362336311706752375426160872074531595966264474727690820893144801046500038473014337376693124150332296990444623253111426893947771319243091492905763811063353064487032323368450183686076446097629787947115130934490737209968590966163699549927152618742109030102349503178574523674165055187273215491328923371974396296876093415158990228591178258094148200045127825426223653871377647588345203011511093627754316986453743194609004687586369842506836278215751105836326689509816355356038698389760919099209503853479366900268172980117617267899186605379195089516605667642771478777761179601971868244697951667241264910763780523115034020195507667753829135228799850830472113019139973323405139999528086067708690982738227415510602798713439746920602241118820720650449463568723190756289275260014368092041062914695276554442149998047041208860542005403625376439673668645895246408991815460431737348572649736091350555312643079812387981631724520219285183692719524933597599411686507133232098764179628390843679560840538010998201617037198337283819052063819431516987502955227037385927478314755966779778213724674568467615348006096966655354763264501357221355354898815780839973273677219483206119596301598331777816161685943737430195982060910950425690717019414800027197829450360891269306614393165201599155750037121990669800764110196314776327730840762655009800365716342982860394208963294191901084972890670299170967569469980991061281718421161445241080309531180333898008709130176446753306809322072596284023462364886114402391379359247764469737558146797225236363217946137325249416507051444393475185006567851401508725919197241766079982445709890416047782510261628591149538198181756409177569877358538776912686629242629181549359893645729233178728412391856860799049561235879581436625367075585456109194271709942353802557391607120930074790326273340242839943261430178223634674364617634188759318416935736187851084890876143966208202595077614555227277901036335519828442542447051552536058447893743070840179228607111379358585919012793082148718041297339101983651246538185267469618779935591326233364875011806354846976350148830767861509561018842948807878773262230336245826175139053890674256520220536549834235116523509619688710067385315001312075420420709075197538732607775638610468250925010774570465684731932810432398463252306720382405771317723566477528549226443367505383849063853607372619382445659654828081960317537200792224059739852532544411223467692409322021453501418868869858407861060728213736923521473997457210578571652391768707470575200347036473859163313727051482968713358895864320637240673003181832399106851798601932456681904763955122184428250901124025125657817134316900396905688620133949219734731941759093438564280328699729586319362408543726302862735687880990524942377895061743961969958896288142072488490429113313264738619383951134237282971345095243189790486384214717692552488676108835186407848251278906700945450788071272063615513750836372182094422576431267046933899057546136256702819499324441074293383329366870678943244527152305559086761665160194564621980122425125952989664533624783905486846974709247772470171348863896174876622788519628834350137919598164205460403686641177122634183724633497703926131238025642834775321981710662823124344451463631151040331830105809318443325718752200838297739674500990328898904355159456840982317772535632748915528962643433938904844228171543242164308519227577629133585733954181329640266510240746434357839417785200228750780089642042081196904378199678611767059237397584053902184157293722555540435613486068846610380567519929249579031700012442105708585914136884047933731514297574842708469217784865415438779048647716286442049191669119784541416257383777503293316855898853134674797707162861554062715646768595417044768652568611997146503762128207982046622527888634188809437177853642032785659928217130322386219716183482982686967035244352563186043105422747921515075207092018838680088550963071460474974955335134788307077254856391486202283219661557318311299161538753716008801226263640358175083512457043418858207005984492916682163529972085219802982821181292297425281779014423954499123905898092195530551946971632201500972452051318188385814698574903313504631390627023040989806210685611159033364438142055836676509025569418429556360350273483230701480123995246865702964721247942506016792839783587442337150761708062681897594431971249627665066640217621706254257356757570240190642514025165263253711072215655725585563563869211160297899499548495996127838256377179655254797162736419856106328586276691140278571149618563440080858716023339507959723103682650292262616284413015046762697092456986560138680499434117925038172738802828825269882805830296142016133060273785012317601666037327757600532198435532931487446575926684426678596746031325063309527035898494855045373429705614520924570112950018499916319011175498738138368829414627503893778186617305525117877405018339959606363362421458131463114751134964456779179276986580334681017547051353520182336128141954337807592225065327510977974890839178278195404882473590076775602978983888427398011731326881994034702708885936268383690698421110201686049162519715393689522139216564599874863956677216881550054857761257205693975090550341435109141318168198313096435079635062786824807332319080207796801921849094468806216214727871612397165919207889180142025743436955324017932228915090442399770359024602049468832193172808848076864603827551956963190283839853655819352775332291356773220722927956176110709674775506675892015365045027903170095496156435967238128343898670774022073399026237956921285848779806040053190447598146118445287442117511558606881598388211383664318406547855839027683526504555070336926168478551058448978171823389520082852609850479463237454252554168052539274076900610255010912125910823889168076049774092927555627004456422574520436964369544049088191518962433937986906763887587206120452616664690928673725731345985421046831647873911107861315088839775063517830194691330555630897689669193767095570608985175511778800005472812451847038843546545307025351910358892425430349132348674558494877645377053026166078139709092157819301077726643618778051574642810342751401404597538148383257535409320490498507372887971532724826097360986834407138025444204218854491478455479097199196529582152857240137974270907321184535900706063483705215251106198737917972045525608907553214083561748332328712854632877696090455166467027645919910624403224006761798586219877675270517444446095933514014456767477006625451769498681240544495966350806395918104246344869541671099351552796217540516059228081916719105662590680765762992376151495275514929794856643309671040044780910660981350405485475784661035645051779752056010218791336066573394243121017312506464869156689856715797484122886175851708607480936707580038521240636991586237850404323295710629824773848733749336405116014877608822801141566068408214979622958789102896490313398743874167889058134714804104116352174523688037159046390328486999323911378400103079020884368259158704281951218237340871061620868273000436004165465262826729236108776221996126229937326711725501091341530913240765735613482067161285759091050483969202803554167498797486888493799710014963962840424261414699919183891832025361843570008148405932357790121045719609064065046064707435062420862421147803822801118377142740835175106544805473080414593428652959357750761106939072303387869284877625659003527957997189035597085345439007319610825246286964734395661464505308643224671937556283741357969998188078492787542780703428161976283795386508602868841906731964095689350317415840472041770872622564584708310512974076701408319010800739951164799508329437115790698640937023035025176020307189610019691513139594696385475768390273533462934723612977674544003060577487622892661170578076006169575214493820302809216902761523646616831003884776601997278317701163986416453727090215404044802767309044139781139863581467206803707775734053232532516990329729171710026542838675447883609256102368583064009051396108591107994944889278800643160643839385584795284400532589279046731110259142547059100453525645842169928772406167775485859680637617684970610089268725158751631571102645476885196827790068339335337191969572193938699070403321425192162786821309114657081422351986460500056040375537401834260771107392284537441486573757942052893281061508322490735627882454256975802268852237829283656178454753233052884477070699906413328495077221636416928079414243105474311817932887579526544291894653404429491738184028794013721007611639953299757721352199316568712435422838638444288906588666028071430267292004596884290764433338821095900444153392662806956798095055447314181261883186096499589330044526589709120111483640449719918968249334087580544141640570360918034877913710569467037345853812150203211975509064555598085141755607123271812003725750811168425520874738814704527441321599948173814804962392774241176270711526259732542931956652005402677845111724551634815310098044351798038372353887673377172566938996314656806730036410048867996266614956209921662949433482902580771813283584008814215031093351796579022175142779839119632766479818335359229439390430530027917110023015490829080303899126644253359768130761045916677900065352314729323880365740122112969244212488062817882999088182596173664887919939693732867145715482014581119093601440428177230468498852218040637794301224630866922513523652260322195093556178090405142521609604145308483572697208652005332285911070532441164010045230399386438760610427285704314842066806449255238213353567273998908822478967898294467450935793460030030950921389242802630483646660371000844297370236684417282557728602696253845242345654210864826090189333932743883963640222272890967775598367742940275308021084482310350228298291981987149960100521946158312857779808282341495772051322138586980456698762766164205119146246282341938275553911395073383179224923062779501480209091006785573180125844543943455993364253226081276336408546343978859655256559310882345790875982205423455973586802136260195313467043123179180704811609879447957676274303558871001775478923435894442891034385729937264149472392553268078970047795853297418918187463900970420278096843701635431750150176662634169970246442489396458694702481712594705973670369178470365818003050079348973262390695265820077278882717948100892711148697409697832705601981209186329228623524930222850748983562230286159065929716419634697457923187103789676862771402209217611624199364029677569064581219455256264298296752112607893130916600090292817025388568015689174557444104599655138911102702027183693058233165945397780409929998135846321513071005664482041279180870023897639770821875784717075420125219078673104224203053459477440241290486509524137262778626289422498439920253025005398967746435159579146445809483694958222702219280127008602160366856461797799329032391460834536741962571028782223328524613262642061444245342520535642396622179903312042955852923196637356767651803618704903481003936348491782486697885154071244288943695485708076531969395802737095632645322998821128053309443865243866427113233366893896646374959149130433997705673183938341763847301922868161741759017496067013718531124151158892422857008612303163856557748598708792635694930986712214048570595590507318029521303380330127612720684097495882119618050025486888902480282392795604780749741337614836954791926920934919596042887634772301785650331236586780574931728504491744272491073228330866267350057781925226433348038937009673580420055812266120049591576451492887225223908094413500337251244824965480635756660196934939996909658046994911901804682684308824235065888989099143060330201718282052756584050514449185161794271290637037559253955815888452092074715535876631176712879496423103984653464904572720135100183949378724141178531850959318359730075798622586149099373264255729418027774944903187628196905640515720882303231860958608786537154104597683718592870840374331322579466547202998048165517589986951134920985037440333631785068353411695508856445365097010283454751704482896748120717672611402844955916077853328373755207713924828545538067009032323247272618027346922211976930541792748837161751521541395847984680207690325452433379525343731707740649581096674999876863967770198004832140507383327031419158278481760996487613264937293801673315101223127020663128806140213709656446569237185968418505218715919593115409405531453958467957353899950079105175074701191131279116321147114572928828302430025312256756082687832029768365920781720835275023375476358783401611318895647799571747225161270843167608729491785868252334819114901947035006508356388432293569135616266112245186647948826394064657424851257810658468303677697086135528200899636482940054585738799372773127751787900411418459872671758427083665463997400706540485498252905642809289193171651591998369105264040851468931713061727755326321822931246595649190213308558737932122936934428079359631619133096744812759219142377806295700967649122990217867068995339709935191917766799575547696078695830010757893689271880260275565029114779414617900145686867001952687500261905883787763206756425054496832848425966464272521387056833624268321724850917044086647892802519562605866457978878074681889927433982087106354406981237061755490662918664579852583377114456269908696392155066411309635755659883617353272820585449343652907408307469718583240244406237396590377084072143368118499798084698682070864909259149594668006744359133834864820516555079765660016979399604396888126082576294065336226370022804488439794774834239984033604189404679072009503477818062672509055573917643221353830416396821112893472402346580558641992781875905500780975108787522829303564591169219647486295958137213999840746144097066218013250192841866983697213790484180449617896132386833021637939901575444990150596477237674759883564437076660620135276581734169839697490866875696158773811641351302635081143796099778490371725408036433604293223926267280412567445281941764500785152236352427047881725252601038635857819203629942514408300265637337692898441205674733489664863980410919962554018926456399287208500432370339588814439989225452661056476221597898703375081631832241857292259600626164719541036903827285719216015576208870103282598406363504818818363908784329704861161937905523682723606171763462525350486951994547545011093603647133463412402798825317831542831293744415616350965006282026684813725685724526570753532022473091820516096842348379457543078128590769124333291681694660095469113430307267941480965390818393641542339403023063902571096441698919991895866313180916130856880319848458986455657586369541499737740885834051881995236731320198429763603570765783984926697700742099574424349268013931222622533090140995975793967728584877251288139250391799134271515813580113205922566017499228090732352947170584712556197173169778882672783885771652387783285994374337597843093671495315600358576818773306891684375397288390354648298326290067934070706024462119721055612330635632933535997829536833616870536613203576478922714394980554036023822570223286483051733496337790780191815259644192828447601469496176073746393378948698049957970055006874813039970243189270598135560137756592025508645612778391201209749485819285060110414358228304784908791872383231171606674970785706405253721258246719229870654004965230560258910127183471149255494583014391795413335421101860760148873848032534791682386326278675825384779369700089369173103089256915794328269742267467259248844141436273191261044451227080205232903542251318141085384715692805274676267313493923764286769105891342884658279814069052074690292998022193651529905533362563062100166262964409779835279299750029065613157012938151023801616386074588195452994546757528638808454935299140611053685937080561388229396747936137909297860653552249068697278054447809761182226931325372520345091054039250977256697292070178122906754487902491773084879887613100262591190427738538222538804885684945088878793247126670709848221637954280378316847195752291234314341735714175854696320947143515597738436827280084266940176861340522001789922760210114015101432514696784575278832176733318517444682439364817994903421108024937821864259270231041460224451067192860930968007042164076297913524669922594459629416568920384437544638928255372632955460479796347485694457403228200994729119180514998852434634146101050307789091467973316406269691362017442193097985526871173363889072039304336420076255367283638922850833205777443063269564834955815510774794330415606460613707095740265926355251721303207102919096825298139200908984887807667315650937318578064646278280906196619698045419751857318838912516573986217510841575959787355109204867688243331240867447650618166682615714456501737544130488291342305063954815973533834748512592928574434817081373319045579305171554057378279100190546330392321941871393295005555778686387436171931248455515105198912351879540429192979933398029079046153622413696187376244865964937243723822195058294823236971818905418629337220326693560413290829504675713714014914269853531203984581332179023734715288632533212327542729639203544165869811643414720674186347127411942589857210819264481465628670395862711002986215966285317996953043281086517251770302184193705873516994362464036122845391347878124517751135421227038742149229855144247823133642657568297018592441868339217551728327453153115496686082267167377708053531896997113603209300361512659762602345985318650692868966012480813000701672123919039930356680115111288840598795923239097395283676141938691424606989982825838771329972983864981505353606950860564288179652653007116251841230035381757520566290432561693638168781161039574589194837303291349723758054714773341607598316920618064358889869275572237935976512608397372365177717042210336598843053249987590445027791169387540793447508553622749307779070357357562415101762510346417766592354462840854304042187371723692174707169263078534761426614720408902199285642860054529083192790475031188001218095356010366486849561486209209433332601421615740635932681950268870070548682415145770337914935526578181293780874871443622531049650000302814703902515400595134593056407718430130767816454575959837042070454473657779967336483931671633337242980477029022235699000652033455152664997193061640331586555949968172698596863183543376642021631944011849452717023647942881011783091561875698273515689512994678097682316532087349787750359192651076588604968924129043099738199781962237298206416375320784953535321261816499267309207625100212788436011267729196003706420292612672213009273297834214275348058973206043758128862979870756689541506857503007410687776875832260312581852303616661564665457083799743116577992770731445683221929260387920685594540753970380437924760418265350975347654116894801145092529914754978995835201182716513147644371684430957272806680677375088019364533145903826444829171597421866627675137431295361018781931297862031527647830771351061310946865640840769853307027684311770589050157994482775415600795550000098511598419022091965926031988783967506530971371895537016076049303180451404811334455673729548284705864575275271544278754830203433607016462557199821498640663292830766581225805178508753829970584682118561280890444430976693830695217535243956341497183729178636139710172098602813652007803804600912157309830802151158641936799772860852893622427782767452182207506458187728014123665414431345539111079309451157126033870354007723392583480343514309851757551897587302061367534407274223585360263170544845275932100484759999252167947188497915355445298001621569857010149412317061994575486130850845330960045191443380955130019580418150294529127559511772703944131909748392617558504553910666354259511911670297070475132845282459952904537399708316604505655515165228679664445931122964254979254736681364302692257239349221361473822771843973276125935609944334522858745975324133585848025705005777698670759011830832758480840814014099222835528551624168369539744403167959281319939197298942161537152362989003924667316745751692087085747813560659398628711785941188258839013689689885816753735728836727621624239624476457985162787421882795294570417594600082857781374114009033643697555222280615066601849507533103853103705660008700539021283468377665270896311118182160295390561161440836387303068467033420072849085807255020888931204412342160005586707919068173145396927122757718510658401675853955991851421339609180246465415958387756606431635605278779525838241981881050226270884389870476241383462891863470898686209948551548104606541217288124069744956401741070547970535174257087077173717471453856406985820716574776147859039193608339684811045635780412223165816741289129376806108388647637917735937464721536119512240225499952341891863153275732746776827206899042571965199479159851918014804492280369887686810973442678227861318684636992798594878027920018149722442432886796964290086390620141801986997455598177554612888563032583970997009265569606890931986220303368387176527179655563962637194586746182193571718080198565887555028711060194197949031601619639999939286434619512440464962646322783875740779206788928990285234460918756681980079432909241065013199575212459805250115181691081035905889359346193239348240093196496817415136488604459599053352442191472581968801571055754371430462769557310784692396407578891023371841860431008294814750158558495649827574101508983834922684906041443424873287218215263410566927030747499574772818661350382049462482717905413337403022183955973354309879321424921878517028859616491560531403654904626086298894755982721064508031104414488709550482646121909050051938968460366305655011675799534929035621209927189773132199007531059604237197852894947736883060697915831454757996863665127972850581025005134895107516453600959383100377807221098350521916360368719909624300145738379635558531522374513947852281333264204696765685958262799150721355922653578267524776243878677360694481162205477774275046983358005325178139107368166384575370858695952429683470595648814967972691078567175240107730620966209555939408358746926316234210484053154511617941413626605645836183185492438672382221094132953630358899034321463094001775014311264376635925288939544542901366264917380503909716728371778148400763632923348408935418163058214421274716995485567936814434123838541770236752025185957106227128680225139393887320922612235428346034121103376739323356525533052735891038300353607845969897894248312651936611028121460100865838565104423799838372781581720571097783860741467453532578567646988611460874652168967261615361033550506971730982340900848582321846323246203039966949645604766154573908571917675804970818994712994655707972626849325701607900242159184019608892329655313821764219626205714220449487207681954055938055922406467969554694998507039432627357442435169775145409763413893071140795022471210457656096420957759905729159595509610997387601874843525658034671030474151844383556671607517478736596985652913671773989074599034037462907951102034483833883921031266135720073336641289951155943699783678311342425152753390462287658873755163010813781422718698230102630895085583975301975120743144621867194803374355015982822823070140142256807439483270450633179971554623448495227095579835516683261898365626117814587881567977286491998339875457591013441349477315777034367034351706054118094180153532031636644772532887160449167218594303401229676805140932765227451941799619941530819769589473944392681447364169642794721247120394415949973701224596254151687045371412448363630295570025440881215374353444018372186679040013346093715531818922719869462825496183189216636908613251171140628450712821253547886563759113095419642072772432251432416621146156683208264479839756907568227364462472288125891676898365037098467633514145095405227366477104966681398850794145965823948479452418996869716397064966024008583254890622068985690091775166474117063715545912642625595249075038870328068114572962268304326423994783239976151631259618859265662679542149496953969359253084264752255368076655638317141352564529870823319057180615221232607041985404218971793761764204629528444904520478510257082477056266971826218958891012666915830557460887795182232520909036027944885736561065079124546345659970744589950338219256663884394431980924743783629402731002991990245307229633439569675754086361990945091379950839017869913769193588486934100952082734732681249120503439578281876065274959653189876204470875990985149550821719067132367918325673626995887354244297078611899251885990408230840004651730454292723883828212640239186563928406524013982665576604366398253770933590512105380107827317011028641156854444839409259940003514302642822482690544221637077886998268971041938844272923474750024254811223616698892818705744451933810076132644192834487910865129895438012068717883144321473359881377629011434158908717739311193404559494384888159538413993386720165360260905330871477200004556555119614817678734393896054172601299255376727802326592901401832593799024891190845464234811380820117506524929914405002432714164527358972160278311589749546966615832451830058153578039602648337752726093347007183395190982819327647755431140716127248852584849866905162329926731337843851198120519513017338163145105082067817410574622937519704003398281765727046940769493632488810635914144226405422130950128468511299474528529095648756335475967860765212493672016007729888370505222936065928086345195856283768711902781309689407592707157843167458887032083312183307705274015323573862381934352896341085630591638874526906703096341251728279278707263514992504805052996245632815479485218851180006107104918089849123334746298252673280232004922837665474586559030886093084819929904308502135465555250167321506436320079433724640525989248589639888835835753531542525013392304471735455240960379079168430589406079749135097927331605867428608308061795861298641637538032668008029437674641434993126778228263111067377010194630154317952496714563680432358961244624752198736487704733448791150590568567934389779381477393349537228521118974208640108763521174883777920575513175076174503797909088796445901264022029043487052075452884844479083945968672265243107512313521664113188522039998547444622508547896003386475475360574806996875581561327569475648074232467164657264991407488116423659537339879645309196132537660775484713518567443314897458893007849813651095997150453305919400113048496827276581445588442293496672533183180196480989943568322234787824537839185292711230020166863904405025972014490058763841490549896417099989299825761185809681765937581827641745751839504842129825905837200421638363933498603354203133267413212845748936818657004435748416404095552178971753738605253716952961693836044981041817073357244357867149547891106925059332284232592386445815615960779365570382543043731333771886371745608826373578543031810679687447524184956085593394160822599965884984981371721751577350830790968795737267485071549338679325626855955243896153373263619174608363275613489928631702511685375226870820959181883872827984253916276289861922358509478633282395963743217960176237850470477708332715739310539111102233328434282704421206682068930152359974731180912811357862461273660799682707120066433817177647721014812554271839470655384080671399879089482092811841437027170640074159745135091289094931104861160065549255413439247543502106773213661809355956876412098435403130927003167501751837890253522557196883501230411909387106170198641593470102704203907501160267044362511094508893256490747046418067192319928718857562544804512666340112192705438560991170327250253714072616209984117142357511047936271123140028129466449205833644315891973058035920445342873254260046990352081683918265267485230241252347477051441379516496611797436114326544744974365899535805443872339235484810408636636273258971466103986537235421553420302964259745791812584116739796646529089150514556556731773460316596015264540562592421517070907344232524341414060417132828808196013204781805644734277256498097110522907577913201343085280120968444373765103993317466722051382943797740587529868644506198826689685698661219552610163809318865421753420201758334661272496659331659361845035390244304682363454825968204188752298266367728071097992167234040639857917862454425876365285318176231070900248054728842148726196765504368442056388063177071993999566225303496490050138667823940547929184823045711413255438132914244547580917161594372036820001778611365995420454870187947752945221597575110478669180060698734810658268307471239392456811801793651800757623611068019385437152204330486394776383497851717365285343703495087821322841096790741063090793672636592123946411302849131592076550085443426193187467151260385554770662855653543205278601648187632389279925977080596346399801681344063451720192765170568320591781989299945455960427670453819069057050712601824391307167663490324532258075212320243264431718758378325840993820235985252977802648527236918270724695454487838933058356478502174528290241577911383199923103934652591146307431851213662674996645434852716855928254026518451852290180511497704397080190426351544894693968263076106596649261589710869557413837525889662105753501890503744320211991496113540574463920064157863649024713562555281124975354201011025707672967847859314021371129313233305093741423785416289314256295934968949468399999064883141655654887111262760961748564191179406510127833649205970635583808253430063333508329488017204249594458120780139575813607807009657104205556712547702742482892158948459846330890507994878282877763944671595579214699056460547196038036546522521718585498970702231214204966724215337089622948985573677637860094849318089146809519486134770794829972018803530364541645953266509470584557507651296427679294419366316186703602508278836318881496425597879677586563265144476495049746647085231547695542016733924359945915867003930313807500249001688505953663851336639424244842277426842396669400956962136429883589127341668146829592977330142535212470573584889118288431265524109625045130485582435773212224239454502057549345030455460609914406168884799754331054795208664227854560063910520578897334304414762209110643248516807801109758178164893444647477100176054632631567810014930567268362577738884688394874665064704339636365636088614424084264322658542741535182199020456534163729455739890656135764068862894181125065502465413889179589438717128594158266839412828347289551174391082042347888950249480521603221943073359140212028001294197205210354557127887019682832891024936809788310532747596882306748094118685248769717759036830389048135973172709377484275847166771402174372912853601837053773932956232114958069245267250128588834694564611184045966419416227350956081106941286031350252501135829286501085773128317166181022710869156242311676256008992724041079033625154951455258465696321325250102843312922048256456176381718425445650689358262355202805474082177224902431008660247924772254087958796782126937873472173991459660691116973950365614561485643489107687638398941010679093694359275842299979478575646077829551978993998748417474263466573241512999969651979990500903604588805658261892605225871523989018532223744139050886777604152386150728446307948364239821319497380603221811873407225325877086141069214097994408806529494765392399653083868213932787613019253391426873396493885081698709558987003471955616134446313002485600292680024568874671110816966629192681438480751470228827521976813796733352469792991346389791377730002919869262775548474602657057660758454446260976634278947986736108274527155949300337725646798567781463081079658880494788905163899575951820339468882465957273069648467285916490968496686066715055711903467798141170293439422574877890101657242442114263825833226939283333217987795812606654924671651120334640292882541943829350368407745502507067405934778418849906678264903819398430730336536600898359525001028407769577997210297019273531823205704568439629073952194484919732342676593322818008749148006488758346111940926451372113876651791909739213429910600791680632800759101938236699295842959619796525742853271371390181206194468386134736695960826270780870533700569426054566205932094273858681612628195508892773707617624148330820082631151361680669264178710993309850085114722581353352756182896427672957450460018196105762502549543681454814388582075288095939139476577878830549527180321583193484365097508373577359812522273978515572160820951324894510728707405681996374745269777879651536184135823457974913626030405731785856478644925597595967645774564881535984623838209156372169042844782723121726428248366423459779562460706970726042941449592533791508371551094309517282546031234954431541284177320169728608550035592348258401431814140162565536604654965365727655064454370545213899838651262272364515900897991312212705774813776461862874300736993807858428173633633707325022680407995492235678033588333710155753392783307332465287271919585867037143726710049658395267130675573591078197305715351683447569779430774104252011461838153802475027035738051895656667810244367392449411711984231185861214939113580525077992812866667328409144339562843303918443665969901680414585521685778857475843960555006851321464954576594193642253752307843817155302976223547102787140637026600729691105239561783926606311806447698021520624913203207697872775174903603707396571911969328756504425369504341727497706847746353094201783735443899274473404407284319608570358228316645692224035487227159295621669786278224974515357667435459468436557656766531636522407989272948542489168959050614024251898240061384941671698459961679987252718296070778664371217932429124062736128818081756475640023860431055798427932868756327626919792309867753985295532618053466269263469681465740150508255621693976490693534607024032222322063366392989718490606290060654793167914851213177374102159555776399060968101121272785263823403615518553975024438429802422556598009767021552504725648404810867283180298143348643178573250942968823035697736087292478279223029830239917648443150940015065140245993496036202462918620992217360696006541552438571899080257785409371751102312766095106304394697653566602628982331168804715770917515118197265913425542584942240338488081771265752774387336108331701651584017269001185878055260433651919772480227463750438209768332916517813811189874276056484892218025399226401054158635750993307185664987653167889915577149622597027416647676289238997011038523960994082886935803865961520530847992402186837965198181072480487203949508379671198161415922641298607134850220471293987146038341740905579294276850135899040379150985521062637669317411201895179554343022269235721120770016060385540651876768079807568281521262444508742406569005037049127269931277765595634959181008512607760850734370472151984361073166614151295308883362785940416802439123461717549483414640228622516240695507200235923989118714968870257737748611861611721957186437144702948412214898979553391559133041310400027390540619615179954444589404305565912427344665894626970846780870981669283525305787058410800054314060859515638089102913423209891610418983746642395235310197234189585678449133703208535579563721094731526410217903489593718021864196300556401908176439049846002530767917908418528371006894086878634907728748892140715646828003474968619920336240209205046901851336581298807396069579608616105053729690667175447503152966668349268448379698918916421282690822062614630183056528928547130034510293373126504151451898703663447586859504761179012073287228302295805630291890484861587249797575243880166589166698760778968127231292877256860511249550817806044493849820904612970801081690244894778043665101516628289538988453207091734303375019483551905108323744635102472955175806863328165541967575860002071009558631588866151220621745741037924334220668770603226059355028166142347255711503538169225707640825707008546175472654461079124728230900113830287273775836615337442142216301254857476438339491603234130737760241340683440104393067388162165732028801462479579464656244850555735924108613817927404690403281474037127995361216016514049985816033630051194336619432463895274563163985905369588893084765496603150900911259151972523200685291798552481491646809580788530350129741073254504418968829188563383233704724847071501797826170347106005138223279940621522137602127636253080518951806402889272170340236127235422679975460062605474013755454352874440921508908554883953919813869746119045412892477224483850679197576174342299069969495041429433786273882381017710156036847494154139267097992519158269733468855091952701787279663556260668667988850829196825935374365013942230582527045524657797951925920242523157989370238465920018417212538356841325050808010677214967777261562021526305665998919897890361343345489722425380485511862883841614970869085846204823807679136955060916858141559950352810879088921073364835137805843087773273097014660408544757717373628786583628525492558701379627270478093411374001736439373128665671998345613038640444957980150389981128210921601765891559414962226992294279044878456075180905192761500811252149469195581796149788154036680694107724070792868815254930158403443207358422047489717639962055231881971063601697120704630363470742471868737767753668308463974213900587072991038069449418052376620925202127479746561798846410996172976806979254434538555710753274541633322566828486799397239931604355732370839847119389317536285178829904146117918381771844016148477143913771506653704659773120297478196090585234703290729822921512272828410323627887691367178230116715483533342173022626359533138843678058281636963955281267542132182174025685250190461924739840361727325999991818514934483215494927426526320074326288710551732817010328287640755732618089950193104846808659328088940100404400745937743339068830382306094362383833857649985318908975294615286865311089956948125565205048558251794845724928605467942468527415273774997110215049951922463571649107668685025379327244344838096436477570820488227834781079238109215622833284087439345045892827041700019843995179488125364098041229483836749606835572590130289787751444801881739560815870458903049869934772997856804437203052614666442441900725652875667858145170185307584943351414331387343354519593819482177455884730015214084775927547669049414092271750190455028942373350966877711003978129019240292131850024742546398942562764978948072518054280627725174983804775137028728389152978434407337806505013215596351783378144513331384614570495431128263614560639530390813335701232145584825589680817563791024243791496927443410276444666554788267398957529762157329153112096537373356821557639043524205760184829048201214659436879361113160392175535177451693649877117076436583407136903504558446507707020307945386630465789455771739570528068482675069689298127798154962327080164397597312759176632262922863873204467146850345670381779871058026920325609510019861110008702808523647642978183301977498980397057325370645725639722960214470195934329416444603828370694126489423579873931574202002638437401810153548776420631427520504099639261360197889287056820269242984714848132123641197262470012092949464894431562051463897776588985339654405166348355881999570823117802505166238367891021906072064457023495932583324043546662957325993998673393128383925524892717647430309096898940244216782458399182824365571101938125837450759189805405796677742008883977905206747069145056732050925927270243891088632402097302381818468918468591937422710150408661559493053647344011168823114511236360240711180290526049743356675542592602388301230423373721263051041531668896325431593988230583935240960635272887133335183400917819230524288011662256217797780973078494317969446744193097775954304543680514336931469289597443469548445800043599475711537075908987064950074312377890743490817401294519111930765234321376620190095190923299529279321103871400608247152134326196334350628831970770078084088148423449394908545684767591355787833242582805010322580049306630232583091736559949602281331033591525320328263565630826357647686596706330074404299136552919834500151621937769214267300505943667067164972284844255108002674255726116889049784269102495055940952493157417277301800927124731944145628742234656311837630009283095587021388213412328156368933277749887190224512491053014389892256497505235426836515337875197507601392691051519999273029351933210290924694386405770720929324365141358704900482220026667246434986574357592320993304687586954145465909263966368406979054281649030812756137089241354421074362429357330725908706769672967462725031967680746227055576320198537043013212216356267655569263700379613956024347064482235793401925277985087082866154584394549430650231604220593691912244275582750901166130522065405077130718725444379392220336576552677592885276751392901937194403746492389080190901473022996239385405942726260933743287278180032961607318497842666376102881046955238168990422061643754865352091329811143283073779033466944090906800553926480842363353294782358849379116637964519421312461064306107421185337591465631467368665291518611063658726589744298585851154707071750350759073312687209142394076975161124474429373590174336851957993864130161477075217913393003942379477047174785009539892207313184441373641515373461472703962964671015843922841553191413988118060319235794792124233125937935633484629671726141132598432599660055857464369284711087060992672050865367740134361258843018042998633642342549431253823345679407709623749190161770215072898402888197408219568659766867885953389133610370261738531224849389943908090901517398333973539101918796825857096601444061235681780338326484658136852075008354365760613695427486588523240088404160288850599195806643901378483672027223435246960128136554185204548110094278619067875602030347076630075146644178766267068216415226255717988061685979385910657962025482950129309229718273081169102500089206528019768333590504927930416158022353672019856055646549132126619192073832062167363621846151147200657572103042518347352621099925238480747702032162248601463466779555121846937225421030591567048109780684191740306278472386561849407596620809406161549570511358365405884078606381371539648348128874487961278307139087383108474356749531432945396591203780184360118659091303794698566430224511930944674391229477270724261659128677298295403306659227179905307178208547333948575804817220299166720002913088935489501554203921055451138876579215043836167075267889764263004083920862336027361460473640691792479914598010204130532282504117384899880886978880568489082993952375579465549349584415955645289839662921596145540024417978736932524232511329412605289897743746218553968350191547587101215072022857502851128007437551433524710761575000492760437042291730971799439426899209431935626230570268246861030760469830709847750014132150372810815739604368071027565758286587010172921252777525243626106822090235173832650334515759944370493336332331578776459239602985621067664946904570846661127791716308491836959388572436749719714247720931188452533745876316577671964799391853968458606955614145807023746146303779485163781237109592548063982711708140629083161769614747619593288275808619309474486904903545899866826332325427512312436825083767351987745681038788590911861805509599044871124848286359804836689303656499156181215207162934715812498438665220631535049728087534202442391624902637243197069284085923179700858516775305710356179716834732491658790089065610072252530816885090481211823133088691472602910565149622464520626687348357307390560179415352255780163822182584814998946771769491868772682899608042586445654992680719452529514761233647027747367831396856247159652300980325505830758214429006277908801416604178983608546289726160964829902221274987907175389085348304784233951237180566822919614430090469295896470775406158418927540242638581015045437160971076494132816426884069591378864803109262128400164471431402975221537770158175077830645338527039895892217612630161112116502402598403289482083643544265808820959478856025381087165475025464795137833352204376364623665854321423276202477672655010871863492578746411559695670709232145578485426930782124157544198863114597410120392432528382974674831046936379591236612975843529080582051246807646517904173226245524888364825452824399545805275480074664134178183731024184210741029655467128771496959296419227942632054277990338605238768456416921469977788655870974760666765082863350801201367539024965631623520401843267246948383644946892975559113038798473214545974844021585795133788170979951880358075115761672828181347020030721796070432389032886599259283635651305803865401758751644008512416565129623705826081651227798216352904946915545577243274030705402329369901976458391080166595850252446220185695064599289478599638962711545797285598487727835993850950123914467343378018372435080920590671502386065388545083776244794763848504354132297358554759456880658961928691416184047873210532612749446859026602416672539060351310066573417450504467099400209750739951794894089760583647915736895048398511435453991865302562931486810817300296488506686868245758374429169581396561566595109731637915614448376953886405025480880723731934851574434142215830245479457191596103608057417313433635121229395550917722228219702135650874757330454699720676973052168780788629090553776726581622568122969807407926111242525630796947251357304329361582171350959329990973390869377648401364788004794466348792168620502338462178636871073185934001838845762609694872248137411779477531270184784978028057775444954666772168126939233917412900650657213145389874832353921847493404645101362184916123102438984046849450087784486582912589836111674814534100999176901334934291815181410332297356235322180815744243795436134274044235136330128862047297198499728598534122070367002695610414926849663112080254337183987780867359987308652846215732586324431864653249115698208691903977149588726187187703224557082639190952365219305289573059664561499598896099390375005709330546470680060377804771144377852651625006684524520917160962002586758776358481510561279805543406288132468502511117991325906577610382953518064443508875052954467253901102409246707712687922706504412149874408017992713821211924688427074882635751318299730190961624777470385331122862220172454915340476875036106022136102656492875150326931973719788264689783167315789283398648633407509717528188096464582301693347509046590043263154870439626931072607102166047402495102753347665920033099131538000138538851111268458101446498773919481622838734357187616100666106631086895865854044884467540345450974900976141278954354802300976023082310722471236346461408219300071438615017766693232800451136166242088751763716005699635260295842492390402232175563232172120113993462169155703848684486716542118393641290322724131856616873091710792183550645162013183136799071515487971977092514545050278573720934474957982265058015154409873908608955337510934656638492460373097784330853560905083334275603236169397069473362318542928551942071773695888272337968858274408755431153337371160833278648019986741074968284150260466649528025524156736297481124778934167851821413811575530865522529309811813115910594479812607143364998494033550760400330161852427230874383594998661337655853890309875103075164692047445628096531739501088421080477148518556829750143512409526406225793185855951914562343728865284130500495101471571367436030718048833986808957938359120648258228588228324377416405701390945485339808690120381859096951124482324772653357954307370637818974822041780900713053907107154687882764708514013848642096887918034131468614802986042085146863003534749792846758747330903439293054448652492867114982230627547112906439324076883222984446047271444894915572595140915899072372022872695718770110917034846415607363776026317025950931503903087698322558654262552442211567365698849074367744380767160752270774174362999781612366810976464059397197894503046315696164238794536757531200874897340594304786700088642547767472574302881876066492276708942143121866351161618760111186353798067624020942260784807217994945741667204364939608302017949418419700071404562769158081817579096839492761303758170991463839822376573575776708580685094710676419371466925829200110450547139181498963615198461577813067963043957747171620526373579928738154324683508434510837902924729826983014745534654815973665637389785349757071843318817773523540931446744433022847077070832336658071637228091405938111112449319186869401927979421165346340707041133751035964324526327526324216912757489988921426710227412525414514253299626595317655764073850978083249058371063382718170780373795071270767398519526974281537856505648408403769685052430570269143167702393623978648772347982684717523538263209032775949530722134095826701123799093329596313795180796226279019517329328401874191192786221426965698715813013007690625868689441261179834346629034057324613378414658560573668825788462742010310408387218177137149028296973554922025099863819299994598586268606867659518435797168639453434801186842384602240417218119521213121483065662795994067962445254824976421410352304629651832369741203231527670744225837179038919631989790903482095163117422604901377222090729577855446711938612695959720083557362274841011022570624185894815743278961601581117196348910121407202615038091916047100216782511607353144677631873934694862188559647798084980474059022177929113379741039678018079519645988905808559264801428768154022739239111600894530958411545023686584977517062033932376315237538021262273331578774082610769957126860417085869975353298854821478627541304313122680534501583091063751654051044035027019832833633021602529934101739985795162357335295913701327869493394327212648317163148544973300992105622161287831248717694842023856118119873987566441411059641978844742696623809866395514237526403810230247545914405948684695404915782800312740708082859215982827175319852401087138146123679376521302140034857821590667091178817284810451299210690465908427113775300370904595827638046585845917763486271357559752834675108756410539723186617473998312154286008547834688570753477036437743454429566401536691354081363280349624007537818896189418339429083996471759432619921397380145140990638273346731508713286598170068182394534242756287041982173266609975046325292785073564740904993292914633767447745070518615072615467878186015642840633031641433129005746210305449239029826356674258231405698059872705583099364250332528587382583770816698091772220326110817495639949292014576797032669533067803489222632495086085853695147304618967049532010438529255142887480221910880336499368693360039832380421948236014524790629251925736979701560602313735718955069980178463066256302917814109401110947701211162941445947018387104448335610154857296838349777810389455497751132001886955242778738158490683628939054591534142777155277598370946824009333065938742881771333243293700165030071073625706354648680968338387082981356612579958999359284255597152282328768322257919531792650628676120396522098284998488996944584764444780612262511281490571694363374107508987535661923617991048260093408681657775357072317835477288890364199158397936085607527213605682703094313898896104879251547897256234812443542033621020639562298800688636794621336622246556206375111556746507920227386825725416816939484724060351230374506385675010963986112671293874725627666559976192666207238946073113940690038059694028915495904172626259997252435764160228112018103579260413565910438296622819533551759860886745627625722050349077660204290031973469417374307802378831482747389880275214461141036939310423243242556356354117654474136651563959743232844230211157408510482416275665001611084253934107613858596443108838940894360939026402299934409997968449435909800564188125288663341156629055822330053191363903987812939566374190363242221300760314694042679061509829136699557679424126355293472771604896059791428572178614476142518343301354623020074850516732256722540684419307981271469470305990042430046816029935749107189034331214537919959117100600973734806141421416823078596729792180140668529093246754800192359669033788710904167207460283132206336182625272234761151587486959954085528501057175635928419451122960052929430331421558980869350349819138317100879343884128752747486337123148067701735637937950440422564532770971699373030690455257741318515671612630778258995088307980426855077674780314685129677892739419918852473451241735596796804015133968702434363814244908713238442596558324959566018468855414589215235121468012299990076203291233542526723631636908900847011919000359037584040294822722320073928106536024030132745954311699040911844560133267755818854521707937355414330546042325442881123101333691559652767935524045512526393372290646538359751467915867187512477613784453197253754503428264905439244336658460907672512337031536332155928567729593751828832655368266904111210424099583195058894701214653125436682075117507068518352981913894221829228288914051145007315779841462667291299748213638626517289052411281057172801029181422666543604919977530759289998108310377287701860516951238259506388921989183278968835015695065259253925130234835506841121287689089676048503907091181458528730889537847769976312371809037026511183114011104206158650111422065766811292961054657607157773249855031829336083103153814454467655094905275191040310774728799698289754127718025649367506913809067629610231052059354143587250051533586160545969505741565405637518711365482040129517264619188771594586697636128190208421165134588141241709502947308106478481138288017016145276172902246142567262651022477171986113165270799836214037928482359622359918994236308299750332125124750668800919605979418467781779282714782653090164087953591064217740094105438806365428185278646508492824685825105447304660850568615036856071928259933208699636499749011891800561726134124160652878518474416642004065249067290776642076114344668144933391563310345108146739628809142497951974941469239709239396628135438176791905431481725771580635647826290185742019490445052289628881202432592006780785953552575104439787312768619025227123349922892389771407596618387060512320410152553724487162722729422158346293908086496034055251214939290529111891823543969514155969487078160443419963762636031013572835587061810993673466100050647558675069205074092415654364640985573569086678170214161682119104941473500227535388383705686919266412881424163378606409184380473210540300472330756307443957377128856904072514125795551399538625025054471236611425458887560165993012425965580134746897888779208943311076611434753428927252101971883852533686819212613029306695325558875690595376868744107832458190910257548059845772855774488115101412561845967541587410327283346833733578574976089253081813609124558483582286316591137600299099774453679309139999971437609058149124279564518713262418588757751530562269638621842433540757962616011594478094275029244300996602098814296908034020128592680580014410333833878861519075888231832390671706296090412367720729750089122485205273282171832859894477026340327946562057028241592147687600296407670953528542762229533448492148797375984791393716247892051118114885436605834982191978884065286030771781306773603546249052802979276555140954832288635985647763225841753982084842092268166952367523818785519423099796245478123588825537276881362292265511266370084548408801516641488843039706476573383470107148723170529971127922782757107738292123074972766119307943613212731119497621419860224717215983520182177711904591226318163896829886139704054861160704708063064583281831929083858709947652655524859133915357289397429854632314768871211245026200041178688304454033244389386433413737710124514526320976787471579664887877889439005653967140572437400398863462782431806720504323200133717500741689409496431442422277623753605324617559045427964007700092110945837789854990713972313388233791609839118980326553615143853364414635662914161122817361323802126180204671369000429280316858153858194319726827448959445652589025192335934461037292282234284547443307543829756570662543511290042339345373563809041474788056749702310843326243988882502456217939742761337992396498574361185892375605258282789783787951852732412107567551840473629062265215738689675393652222911612831358116522209304092058972728617541759923556702494709110930849712847515847732063796587797813760253425548288003331657888799389741889474669969184310794699823711015505362093298716149057984340499358086929936394942360620074853360440583140662027146973352691400882144322754125719073449157397830125405406431892306129609414536931651253926777177507794564128771322170498827789598650973217279135346251758011929208309467624952902984085434711680590352488381695227678638116311625576696122437348807633393299128988667825777783625471824482653871247080718475152512431684046919221277744802112064264090947878067913095850141119545764407901243212742039577905268639654094637831639196574042654340142396088967775359924035497175144592148040143422350168629497301830936636014834031943787414083042533086491225451638067977270238145998065411780929164196163769150142130666629575818161392120183192001488389976453612265969701527840858220193844613407731020347062571354841147525936029235240020944355598740135038868152770972194309388388405232561473527995070558109429204559844701374555539257835308258355424915284504348483910639927623442680491318586108067282776642968832361837118926295420010078951154619417628910224220740585482641252593626918265714817097710509506180887272788158353220454476440148329670306002575472216549651091316037407153818854505562864868129436324133761517218184197898373027211119808062449884985488762694545899463739940924150669159898453989240626505076031406634512142881282843937170828056081501211613548950932570692738417389467265064119048568787317906369505768688861934921371695698352480730114836749573289306096088972014354562535280903245848915148634505305917598520107780749950895803680925163804948567032562840765059679063900750357650519247295055785324097727133774303753955179915459985366021619640895142083058076318130065658370619076377056948801046501333273649023056602217869403376293903431632187594265497110128372202025189366309538220020705207625477909348845120779047683920524436670336683518404729796905362558064250145750727432856985864397726407434490357945080283688279533818734317809253705455814945050784224370123631463515840336673493563786196528915933320267782703299559578737802698298062855056337017553204394416148101768625314430232198044682974394700990424020934679781803819229984977619088151517541979459260371793522059468176007749796040077921298491915223182019551995073490166682584079058289423669473405204804479934465944586293055964657324062231015043590679031743603223220135277566588961886385443696332395001903244725812360379468115625340523700012129431210827331848641067997350280002748448230625885778262513340090356689608959648261688180121247093234370796455727937716191640916758339910625092230601713341564796326031443024334409775224244316270553189127871534470748084572892633050357961904974307935929921919356541389023009219808152173904715949253362767654616142075188765970900893842248322050939133954752497869887857270065116445374239463480379423095528673717935019422715108568068532295604310021309899354171960541160319818431020558955783741456820828217343959959357348704594327615536935324111500736364465027054095086612036746865892308794081183437799787252906599324719889553753747461505558883286336349813123332450365829935745578139023222558819773261062390120351446517775108913436648087398034637165035365047470454874791680032854256741657194721114466735242653887103922742236965176857337426873042095035554500187594554609012528762394896143035009279248304914816394392863881209894771307059961257523282974273334819189116881780223008877077948735019013847573736753877239737108618958421907941718713499241981184775762441206442066046190535831177943311577562103351477635349096978458684389211042786848538288778207417523138837831304383370168992778456367123321336157785050132934122146778220407471784124108009235421052643553017324848321978752235416960380176910982142467268651897982466002040271700252621163627331295475998531004866885866150610577580197003381735535310136095139707009270872496794671152910269273070783386249962913513052948703459428671813381405771901214788507949682342765768883249749040532214719024164695899476491665487329046066326876501533128920812428938025214177057237988014674806123907955177732785092516537547124613211017189149181778664639878994845157207955408329666351577907942244698572720035913396926096440643671290806256237527055277367238901530525940623976249942249632020359444831039204578688063595907898750121499891521400227471286927757665265695526666807279316516027018534111636369609885238138056293653916108291722774686943107168841042016013702895729193656385937230894404157324574980002717796605364600614079620066896354184358717918868138416265853846222034073787670512132117205494957601406187002324826233859657005732435431752942738979232577072493148371185683352027787221932338464736421419345881606639478707632369477706802527761070447028388299743850005284279494457442642918041271941621107349224350591499457572449848469983826308879730624841451714330776731470187667140899805607183613274696567039079235649598604077326501452449402020542284308964844644365758218360549893767991117544234599087164753957523607215684106236851906709118867297217329382894493345647236674882023474586201167357442825249848138390302399429370008227118567677456476161217688641969518484295094125323120755964118762512114664903081710928804240586141381042656808258086964380203527515363888306248260195386961152100923873784856811160835184110535990106027917184957821758750794439995465497769507639860768683170426162858101295060608019312983167264085030699136022080465523481137294311699165361658652399268777145502186897658961381509502159675238890958906636121727104337175532143161783559631486857438764298489518863481120339942912257485079240910270084743060792775753917710493528440786514222094007762905684366059309948157221252706862226733111920720307533574440907808433884867008508257339623817204898739901535479570692403505894725399788500694564039860690163867844190982085292676994560039698654491638809766767920749370373033499908294406218903332892982428648137232148168893187362397062035588681026161066925202078569392825741999331435077508834225314238696456541319516837506670684324622319733163938517501574861474629610114443853725393015832098783310142037871379892126256635317610087657477800297477761377308502008918013412502549517396958218694594323839455692096515280894004000811586402794017397065819758675141086262751499756099579937628299134751648852440764781159286659962343743550907211447768846628189560221343882333676775382669265910949859454763682910241004878426154555420503433244018687517417988867018674577178798633288630930349593489444906546827566516017530363686041422580656748177277594415124315176516645688874844327439809314770872883279571419388502888672448291485633891778632223971597421150917272562024863130606140122558827409016614146475562018500570510140402721701684437934892997059428504895027266059623516968575696342004841888886231963826862969198123123733821590925426332004310415693958700171894560332596361757744794008040403075207216489693528323376036482018746750230397187702873444422455125400802166252826250390503764215281848333010030522987976815792197870975699214132966062080441526528378106646399608543304813719051071588360558858177974366814457114379838089276971686353599363752901922675399971290368560472355717020830165384751627488751151768065733744701340577407056521899467401245274502540895336174361865603584858760872488432473886841113923372850684753122419761957269137287355914948182526688004178432794871479717810186160079174125421701343997533493978886891171922391642713226660822496827177791181706749623215436672828641412925058899846143785920122863439365818925243371761280262426028681304514550812041521649985546170210488098083859177784179096966181679673527128389272556085080034551665549239674605485800286747699877497156508673885000737517355325633594286055943925039021772495327709290658910184611853386096111679174748465452516788546994369730110691653616006936423288541110381456100536911692616514432636631357272919857978589866892980627906363894748483714488112925370596850715683097789842971115966036208493555755333185985200276245274044950687613340010014150718755060964524324318603984326487571394104829350933426918546381079203058402194700212822353326519519742166684464814976751693200354639548453832007876274028199825402310106782326941236362632344803877847410754511525949317219570538821521979395405338570030481917375861762605513158821103722161944577801803853069138885985062856801726155678961309803589515109999296196784961188556862726067553899683765732781973398580318065766203547881630417600432436590435964160647143923066704354053335189137056550061328867655159430359561994348524569164984109932118439346212654199577922975226057862217414820388782831003505515192374226600732115210996581925124047722555032169991193228868515453334153969980722140089600646929679435069390177280819177687142443158051981043542807805670604224151609501207168695046866653634661391069822182653261920863377113727442305867959737833725873767215317802032808932296193889029357451128953025776211961960991030594723115244284923855836144291153197682967214568133349870546857634562207419174153158983427972038736531240322260313539578119296422665319840873698745472427016295652861815851334729279049867483000246497096047693272108816745874409066730117221889959310463388824570639543801441884019840668630804521148478865671588763328788327449770213697565960108261522546445065224637055715474274209516110104291413236476534429815072772374726081499355862031080857693467722805337901631411771296809801319213883931068971833202027524315985966587457548484156386059517526949613053839275837903322059393378266582272959024380993697217044928327797498092811407154730896252341513515528149096452843911300134735795323771041399922921751280499476064607481402559944437500400907809171385551012294350632797361941402502710985542470677821915334689586633296920946913837416605137218993723258599143189164769826077536544439316835248764911441132757055149800212866849523182591047702784608896692876358930439529642904222628452643786767056358415763871000461309813603425316316022747533997221962291489588421791709257624004325813082595740727073793416303274770131962639505248489504378782577879658618514987658110275894931367615599744156367639024347816579380698880746672178768130422075181203915595608236216192100577580343593993854682952845320281654457158686180760973482751439145631507456515714529310326080434716279568225333868044451331647570454706344087283795857245301997466972132982255149514461586658911066479303263486099138176837628888967582221565554673606699707529110189949169300845295670562356590488399244995518807977145417002363447216708292859840288404954599446614037150180201162266357057141159799764119324224372263375844995781590808222624940238883126777204028272369432790399476226603827493801757465002075544174932160259709411133390910846926118422707560095746491662027543669810441738084907525220356796855925003625061459031790506403994854598999125682311250678472283789224478982703113411296942201293879484569167354882730297981948846530963875045000745530575471737401120568651728190975277046957106444040924675955922927002509298693955814113701100383417214981761063416304423623362422163276559238320105476578108235917792489856908663371099667499544289751715586745064800789599412157206225296649205372005072103569649503931395370526015768192790601675801140887106281984527075434657440365175780709059794206811359168354549886266996259297616416984846116379276901383453809354397309367739465053122529538201351959091907266385589946952995654197876353302215938026274788921250758781623642281821984770919537138052640071239167008116402176840312236599586162497401161268399886742223869950244414250568406817716265686691226015442935545873308309609792438646080923420610213126951602248274340137629803932002311571408874202520274273290444331334188691539004489982836841988295676777038826029256815613032940933048701837309889515389648904726271198892499330909139807574942971461113600328681203236945707247923205299566199560921804443315976623674913148383824900787099836618016275958962761431724314241280113034612607543702263523261352636178146119790247897614280282347945892753784044816844871276045518924928856150871794393191782868544865007948428575156760773112180921038691041753024727398325910991715700278469129232204619895274420904178679883659429756293660011368381355327988171932250729316002718825214699425636672370736065402402038872821174567101419996498871159763381799576165218461045215662001103444465445561500285973177955273700353792556339561407584382123868325968739190240444863821080192380020865996993988748039761960708607798057766579033095582708164759106461951880323905665021018166158171839730191745878217385894308160119213763260310630176058860826930584910406953211935919032667368549683766552698113799317292189132679108433606352779411781282577903198823396725411517074909453359993112233460896389119325626182594105647369242451304873775007900165256659870243104063575579713990620583534643320228255747098753957117313096590588675886140915621693823593899698225376091121894557721153718701071034820804870021341246683306299863107122901626905752251226093353648323456614254481442965161239078021646047128186414429942276079090954772264538507146001104638678740091147087630298230456140741866774120764219183347003407684246569863456578643374413681966972870092821693071628651845759841710675309080113242958014675291132448404873881057318986092063533158165677312734922420365686299701057177968824021212612255169077475189954132453319050630099003713296698639835435286382681495311282577698828334361510507804276545492095458722128753393278575031023271571745261253572380433620055020238409622896974024351659033839946482177537767869833188473972102163068739464038151478098984050836823283334374328622809424253572736083773080267733913750773874001088223662915706185302748727415499198627085834662225500819274882665248700125712034884823297980669790524734321455151817346857732243076707980970471766316891572677077448180091229705242657660169433024003475600734759955065545015857478480353595768415681401664387372773042409276472789654799750278758443741687540951212851879020579662962265345341668814068737657149988950073109052304231350843739339613865542725080618198142077944607092413924453908875890463771969546241543114563751228710800135078671682284542388646963621423161216784096816606457703495099462483350149855150266410403912993645228314121938240167850903556886472722073840688978298900503515126046873735579124805601775988711738105235148431833920298118159016959682793376629663482265382569395179241611939938553193870618495210372446814126387709777888721025484422365803862128984724902285526670808076396296661600284257114864570565930671155816639904017036386909338303546539070494546459050025833710240385945572439741698615969249798964383032384163201575792673306667304347244372691226981054987878567402871705799007823332531208577262492237348228592132935180680560113393138511646496982781568284879211262684816215186449940107499328070188905569594443325575253372739206937654493157431469100014557430705705149417511247099948003998700877303211940778217928979404659074714307508302326844918665536095836227393248672047418819655892150873451381817310574839860028822813804231793997640175966935654743786621204848732302694972793368204279203435278379628213129511069503496336243584533805630190669817379225680840444367916639367846065623948254430803095890251535342818798382235284793015500859299495258752089741904545925928215243187201904865294608477744522468071596898262536400549049933077666994530695691051150170627138477877433854338132623855008526867526017266587390090106213859545511246375928640145046542988585139053508910850121235374810571887429408293824997797875920529549925636016275757574043621515251367513536999244244768230345981779756938080644528967124511988261207765483060591744281975988859203740262141962460702374197717825509626117506883523679985480072155259998874774213918996746776937192601233214446572149649806975494611373434343927187018981147557638239999378868967553071536815137320187868204731219681491776479715775237365516824824993326523493963172981513931897558542840447899438166777847763434866078673432204417560504630428718058475355728285840079079429439384568976912923112446731145264354516969069350898796733550529648520126475410601677344121615623884419209491801792191216140803844289639345288459789381711743246252729014595239777732692692936661774380196667422531292824386601412809432347591987627668341729632577372779317537192980644907152092641245167541704060946529600035316526358885672414613848915656120184168333873552977963102761709029898163803161984209031606046693569890694159987510377847108535213945734737219021167144232759414496607537342957792516874901206878269623324317169429196846202600892928919549756688838619199338498193410242410880077217703485022093780865613941776483824823645037875021714944139387513981796554073063643098939176021184872842408735475340666413360208079810626033839637140348854237758267894734055877276581370294143124789907337996313899149043316626623450907056844136990390062585866493266937120567964980008087297137859401694330339572274049756651096015207988612696934062836743196825215490415982540565086350345678277229504142936291349931930833461236566342661165576359612600150686210961025306353689186525161037316710146695677318338329089058938047713170195139261410968284274365901114145418325581834032440122548144095613518361756339213835499545855407924749992748144136067635429718782510761421875936429503216139475706779089027642799243470526935777455927058811501009699490574207327231685713115203739997122249777280435117711629452534337856072688603314606734178619155398363982700405529442988788033131647993908721249315454772272599606585642830937111550276860652836067258910307621902121052473063134015968435443625753973175762030791652865196139190574165126113939497924226123687617590656159387359181754073617343180354968450062956875853706261266829541321636825596677311411693758434252421516089377431142124599428782734286175306848040040914590507091712129062214457584182351165389379115972581294943454560618168017316018393417175128555006178217190950198875578450618903362836159384972374627296866064581258403372185656086501677154808582494567594722590366975452035652124667393862259523847911413652783500906696179429170698312727686263426578873575876282613246388204231562717643047601944581128768688854331056522453735526719398331542360281840943472117377581861829286597633539504745766376307617257112103928085349890037440005951563025518376863009425231169992841880017835686524518581756527912846130073776184026729476481522361997705736426034320679961159846478156975055339194304590292102813404256929349479311072409847003689492099875067847852952498507156676301987344697648541402509467798937706035831990361352408928144570519409883964544409832988956192971404205088049473896526324097668028686424259315035291327258238242839224293059649633660869883342249968732506010254689941086807290885220704222921450418770573243179097669165274955894460451750745417599167310979174033038569579716915251989805582507783534948947500647058098032508360624109800205211995940783672788244239698509088379752094026287084874200338998424712051955852478349618468001042474518608616556995151693174437686302988245731408045357321738457240754704105047689297712716703855065565693831721453221451343701934824689947529531585342411940000332795960924898306585718799078109372266590579693284044278511967152742009957977413863117957261050133759750530355706148502619877384785808651313401718840637020982060356024783939360286278216723713440769403408587148551298241178687261294796554970543677761793642803276147167024211278946361168486783634189719494462423444507615640510869605187847865015565166999621491224306685949722168129898450028182086946946690202548623031945715395455228206516283207160138665263773397766747959196967995746585859613789815893903861892555805975331818447605163306264822259188478132051302722390222010339253417853814453766753481335184282780524787222172366955626012062411194746260157508808668010803554076418953863255963023645204360428590614144498376499857949614173671292711827715089272454539487607741662611322522663744105042920518277058119045927199632471603292695063251176520774494161759191366881905683918095493273662197808382403547579682790192541129439655899978830584244756834155444153769105358152231554733172916849315715405335405256702876556404489869647249396335781786306575043337525375387178235788139835325901813966638923546524980923344904511957715365611885016108074965816818339413384328984157521300436979644083197027332331757509454629783370740345424026299414444442814742312558802812299792404227092501154398927288606140686358633871308203186012701297718419260265120625441422309622197565156302834741366780959602436310785688147747204406540424791929102864035788939894437866931135703020593563005851912165213714795948083418122694489634763018887747694365907710128319267631228799409341845719571170751955628059197194901713206830882091872796128899719430833247153129508688133691376565989861671377387898475929605037726125980901104572728405295119563468172670900930771382718523375742301687907492246608539460935462004920745519693220696609013637918506542200300215766281224001917165340484614633627054704827816395366894119615852737748752848119334474741171404506095173783616162890226617828474562506334442826223366953248916544605906771222330702795188504589247701607757677957683819524994278956073183577109049451735260463111312767343982045711181278284149981928215946386440711701921816669808212954799409514649995695638491435433488217530446212779296665294184444677995117581868479475483823845831113067336010006629270251133808021862155602148741716415227440459902470936330261266095467534602730665070198878181785454518292209850325915148731548690955222032276046548900431019695334113138081112616438554976606472153925878850180633260040530916222785812026937909159232656921672978964493548508051730991395361765365163215228290484415951067628283095396206838624572062599491573923803799958553709854860598001975369530909035552802910248921178701910598060513124561254745283283539978663631772656826664732837471605898470251155767670623997160134090842994982107038890537042630517719157924620385564145234041283720995549953572401540699149324712022696163288220210503366596070144472395128301006952300758511533930306192547210371337245734474923287134900584084010000785746254592819873974182058739918199187398291638795691827823012854852149817986162397623377764685640092849358810971936303514424243911880240615640645091651088891599820432537557651215015340792596200767496896304428188725034822072987939825414979575588800231175305930307143563077554732702466459875466069849457246898222457733103560732431798356076913685952422381544611957292638826713495169528914336634569943760940605233303437088831523890344708770060835283637888751517327464279907455606531826459808307509027218598792415017790951960425437832359581184793224459466211017293549853025200905124284831629416848314338379905029762100393324374907355870132133932458372110441324530450170823254965304407352475072963070522652552155866287648402685744728093297682636199564801180199988653746379914048276902933001989463748819634407160610282325372770031437285513495574454035419756982697204361889951940328879351691978823303090299261286318448191600449819938693086890023023304404205550676853578292755684316925032691664492734334071128465178915942918920725199966759653297656915054417068678962887342027514424380802241956344844431162275091953146204164404644462455625891355261681261885807821473315710888875156947863822275948791584830985855354889754686832610651395318946085657543958890911580945439886717681616693887039894065084406946608964231149166832141615436084956409596703102489377570960478153342918087244627925531442452806123893097244504792420581329375399965683839532692099397423876385221274896995063976146024128645945300127813167884446349263322861838565330645117047763916911044077458652415367624327853335912559612559159992469002962456034766017339244426856147626385320299401911545707448020871218054723388243529347688569847344445510377026714859835249213385356081463296705271938273421286751122800538878232354305119529616955629441005509047480690525995953021510325811416124323373455030636872546273743903566515607349720798358633084911621557275918291966455510484028983117137069809650862702627902847574594527163102464037741546595529431307745635946095713549991995073807808213394297417164098515683738328845493673262586365136154681775564159015292136137301275991894709999514702562617846635607338085068613252682659661035820707295813531183603058090006513830883760449798374465823645387374589950868910063609880322337635218900461367538956255819971440522349872388819557911327684844735078125983355000416171826947505197531242498128554413695953863908114329878533033429221874621081648971351695007057045746246225446666106610709319230982186331762643451604403087003470855227870924936031747140733475134827913408166651402574041788304217251206108168751825306777534888492785788504541475736827545834647510720134438453416147931740179536856405130129636747172095270486791340361646932596532127612574447849772853512429578180384102288844378412227015730300788633907221995879843055004469352200633050824475690874255670630187507143685967475748352409345528043273622032244756649932927035598366674193651106255818912656593850612174342375342040357179677050441152911495520701594621144737750056603781229026401123193016889636362772790655368641956484721125059272041525873346308070848188614666093058813769892403244906879324992661616804555811049456804040570105251933613633538224175343074619015380374464190814991937437912756017603457061914293526449646894485460366383296970185201187059540937584107401656680812290981349586267518169397897962594956914745596513559266165934140805863921048582576259400604035880156489480061184815682549113764157761931763616087840547190933555854945960237370340153313524401759240812268762048972026479891433820929933027296864243927560026116607704390607912748212017258697793591692992062804393156962908637943854461624343163164846477628878338787841307346126858420020378226992517282982229283577211156132776933709128847090261289989096545696162688979921722970529558973700959235679640571142023624604207664591787168463973933385004449696886915521996706100259353554835609384769557161104272888924800264717621902470649857516159522714334327135231795046090499941948074714948829178455632539642317674062588613731414959821085053865013365164458118215824240175481382147209011171825507627854281384094582215980378590009721586035447158608846288160059606922383763961022410661513356017133448298093175845044457349255492601431175705578949173533339415807207184098897939715182642393296271561634785536170852999787832203902252577852648455137088269475357326202122476651264497981762897060856760345303210823456344000974033709977183907622971386683639815761796947681881169064639376736445729086327411322998619875443093803631007231733644191093922198434920817193063786241065644817158170182163889941701619178311935328713423303110716430347485086682203838793071688010730067132168385275738222468750960770174939244650699944527988434694208107203101753342692637022181555080146547290660388530091940845250390619422248584131751382106239243062996367036633542874162045292951768823925145260736987837088473198943780740072995268095479830237900315565620473735784337680430836141768417625360431297797251453245245302743129796023418822358162324469454814924463667854066512472395608764228388114578689539248613732661622329175691864060346232086662456246737953407733018176438026586362693877758376573719009129841024199038983153745908444282243274646552171215347755281352946764553482795823266760012536452702599411207801765780428185500556934759786317041854422180751381659106311643047068146312093881908884457104688947182316158565414908393505507705935046447961106427679797081536042143294964396774587874940970172994641065646432481763290492090572531146950224727638563194029985860863532999625714838600238259956584023229738838451764524164834468393552467217289550592386152042109982808448750012859829834111971323648340407555681068983057086717541306306916303073289375681848711856721561681975880909610072602281367000466986869760771629694562721828768079991656104409381523245645422797525786695062189877733089143410769845486149241453501366215095681617576733821412305569839954231724059246341990015701431192219154181381245999024473157941408762856367301861082177406951184434820477089512381060480602229035863250255472413398447962582528612436787779482146607573434077727816046132398818220868730306987540032166482926102444324016114534716621404530396280455665992023429696821970387499871458632783558521052672173916048565542033573595842989670707499082330314253811501815344215313248283563645397205324591574837542033830416570780840003108003618135135339953483099814276010190394394149008956493248509114032616102235999793233746943667567446615729762273912813314950203770366460433773828286102428671412919220528101139869343668527176155764374180155973348463250430473241026048501802060071338810472803780656715405061159754665580301343694071233978876887066940479316601686933455586873974984655872035309705671821641055010332886248995277785449609937306135984481854575442954134561146404579274536989877378879046707847650670361210279175526851104435524061642855668837876376668622519986990507950682535683028257123883219744134349090362656190026698042474905401631711353363497037730916868219285213895154368734194490599293953108291183879066426974109073431666361242672828267949201748271360817105351478407221153328291701983394954761814837645447290328501952119568770584756027468189964885337993112618863642117474841812756689357209340599976879668204450438772375275878795601327408879239396374791851320753428912671161802878757688860842261537343732121172458393318177304303353836486938351911408427102178953790082811186739971727193248312225322321699173805594872266805209601148916374902920950828091899306715729545220781930159384366139133996570844781066905696610780006701352357406827946329371408891051510485158718240547527124635501399324445856265657638388302411694479470471403671414028770995149751527589756808756805575189116699448508798541744594505597904611609183743906462404736898308300391653911800104901823298861257402031571106409406105399236757288909386403331505054465935609044833984050568219746517012684716509382405206552404206335576607148786388569527662647522762336120055230478137320089040028422957185214567125048340104394126539555647230515207851234896224477146834860358823743431145331444134842411360963047770556773472681467284515238663047109023094898813953396877000965965347672418592446172795828681001105229764235551819468888004744231678605874042316069510328037220258317273477798570052804680944242617665369032120783385248494582340556533213976591295197500804532580381034585621616366771867282565439766917477508968927654922606873269569913529141180729605402594796141041418025170383918092615576051035290308991697347982010092662771690880537971459839842025381581024348632892158334530633926755931401903602633309950496937249014130750536896295034450411876823968031884076814900255357985392374391977438853948550092855122600997491710151709405480041118951250209987441639378588902636785459091566874083822491829893657292158920744075692616041950754783982921079761758301598693800189333605690391060847296123542633174159446332139755299883890513465575178242528292191983315516171481445776365189582568593388027989415795116627555921760636145072036479134634494402983245046026013534347613993061078565738601290155085346012933181237418732312874501941741028170225049333422818313094085858822930261933211973446492069593541364057180979853915708668153770060488897857446976606255473805171838316045403360963836776033345665963013492074530212132480749400127152560646657158610425381112179153550551700214043559826103642950136274413883431202431238036031670127882691979770046917569137740228778816336338097825087197622724697653195888690957798684808656956878938578269058136154254221388470969438901162598933415790909812229039373659433700471950890571398871294216343825232458114185420551240246061954162320867766889098896041830975863392099198982965244937779904311791684973651028890979146021832518520558300158293166609751766203299880194835255507406022046230744122264777276599696838521567667076313699612345709705359097912783857209724230755871241241017440165657749676503006344525741989917811373305249984919252243276457656179891008350283616436770211117242852998188808414174716489659609282780709195657688250290776179005424210838002587387690014852953383636635900766706990743915881738577959615276365020871040815777813687143113629727322182934312861971922388273814756060905093429657834042591435430033076901069455538636035770277509685366304956261587507121959608667904731247886978565274080673709761319270737014057800651438152227076445431161424210962394952427438060217657261829713525322195731609429141337321400621896402271791715565702416856227860590829898873296314521475078239096283352036831368819275306170926650705940947780788367878465806733517571226847767913312602430772613724384787708622524946776545046825893677446796246362834001579166910670318076901086498750594918553395137098799590138706731900444318900406385676576092942245919712840984386907786410571939358496318626300140061296047895848356964808971493726472906817469463869250200032663331807015259637180514468233932554813977136128390848589889609758259107126659315486756928689951125711978313529225135768259404198652828464944046864511490282949308869996920554980010223182828967045065360795736032986648244588125104524795834031634902116910581524868261285050670653908898901247216383384438681007261568403259558212657728377342064821466256658390940453651174155280765598485292005576921278453505058303410947903514235455329754347140995595261247051364286624457524515215738043182256090693047322332753812680392429019735531800882020775148673147263017466641317249298818208058744887573985383761597993901335665435488374179690145373108112629966250979905239036362357219861585521988576221077829816322355574203229500673151928538871594978355550004459267281722302758472444128991492866916263890970046586827769484295835876792433035046387205703102256363341351951436761830981656464926131835957585517391619449798479123074835496354000085287337216224792471623383002614717722169077472560605544241945230374302470523177296546351070544284354988326058028690789437633231448474245647666173823145013188479975680158570872525111788270694106032100144289949539198549113739490214250275494174297092894697703436738762972388859175300194759814536242112175108349378035422318346188403375408111157493458308671193390028750661189082453373550606892578282507282927804862109701244886496784143356377016262715173024540009150834884062271760575036576605721640835341649835683233743899623165385324236843651912895022098787976262757088132569019204144449274323002083312747166304164276792749051824436410790100705720988454446466757514350633010374557084020663012499621677096068774064853196895853957002983167702850850178837643273988330864806542567167449541109643247328390513935267581823989251650249078932775645109754721160051070596001176261425818351813307522183684703927772443847840926406574516773251631344873405300213604737254639670092920641897420544389217904474916766684761969999427333040636886915129305908681274360312477625263572112658889494014704993687335695339408216291981309905313651555446666819615915768445989165294568474551751011395865300117541029714021861539617628862292624768269048046025275794762344349893507321597338624481467626318399997329665422460627054116579195578581747040453095519362773396985108265994389394494557042934650528262048657945658158139172701201596594350868187657951113123317631636236111836119084643180300646007449658138275758981762027241951888266724630033844693282015399222506377397434258383638650839575039248100425795776857386488650901878665704882599873917378809599360894659925727917432783136891803653579352882739883055184721624651294359434142891648543463988642182497872439668112784496030755071580578220570638865403404830647671195115715207757174825369932548157119789138104322184408535395792120045792242332908649603027273599870197181355867840139511590248794394690345460266225431848725225795490157693577053211908562842009650210460643296321125277583906342248414107978121541334363175093790404559716898631674439254087315279509754191713338831183303902791827899683250452207802947753233902181001699617307212972966792384580929924999802629630244466973608396848932939271416774380765218910814316624160019331560235848814752071050227108209109026364030677075063162398768236104114032450055615866094815482114735361396982187168595780781195117175300087989981941000714920485094500999433326601313935744641645929952857603514910841780528453430194243267490204616249636395001527935327146452523989656857999587878489694324538660768083759218487094695038761777428808907588308833780403765709856107448910991263143964790662376804746996238783223559878437742586418153132846820484518082819695000644718466751433647235311198203768885454011216504723398379592868899408483932088636181112503820262083680240581409309019414217084756701327268104468378097886692998901626239178306991223792477935305043464820908167803245195200766274101016419743923480661301515655825087399515521274195923403535699139188883944018334704044521907290809070604554220373555477620827899747951479658785447213403602685374535893231474888492826195472116953428615412262523491286552864813654452236880026158455671554453215395586483693527103072871967378959529192368516018853494442904807722979946082113294429133484771282371606814543532416374689817710035805959598545247790853008667932677125614344266430700015794889749145071733060416556187397160529987536331438182195723927982016345420496100582426381684745990235379006114648824755178346272238961867892439007633398145848876768283673643306206867786974867916203100453328954210117633262917029758252298215654908267091918561030156285900543120323436124613566506806723312162997128266465958600007767436220508608472700061204694721866053550181250103317930301993910025199031431442624953005317705643351614835934108125789772039130690041064188319462012709353815809095275373828922891226843358645679232698007642112463303819732024758379267669369404786141353513142360959889566674737732516467080670345948572022602120586973071635708144206201211276137828233017108987976859417862715318200049272868701754120577108575874873036110461916430852096541925281179225664781183932829953004894793987426947500378156040993092930024096364051647549427253178519469177838008653155204987715078993567164663097151509249478553604624923684444921661360437255114364360196532427557925897273427301367245258405876877755509936542270205044894789902236431020361226115411804233026968253509213283588032287698292838937356042407813417652960504538273784074009368199230675071926281868366749742158665263432563039152723517688160563442057227045831610015640742623256319665887778815686092152047245754360918866782567189448138059190757316154329876036794411518629538155935977655798485387686604480625657861838166956425448433587021813362130108506581607661713963705815843322020778020689451379211020999448594496206932249631950073839999765474991506027702090540561868047684055282862685616433634954357242756918769755124618090436684644363454409105462839483359047775846660225644837278260537292043369962253063566222009911592931692924632237094835508106150399801502584053900245508554548787252070704860645776953161686970198370569999440716914520508423600765874557473390302136089827549651122618442218054462029755683638214815133045963646326135796944716881167037005516922559307096773603365483397539439577248013551500039754038753093889665388288088751749668082832302066305044552332074627516200893669137245749426850851069665009052733398302082169847143050312947507261927787950416814218658775151532550977469862122670117707810505711291797573578328258400464016557333473807337195323716590598541261926648061876471111970416534111355539118023212509413663212024459041541316700259884993000044971218453602453214596005588094138023987841241865531347964588724156058486676248454238733494260147063285180543699305277589676467888716289525879087750592115780938348694715520126518438682662655385399709990594119711842030364376327946745162145289806338212509922415465589361282538198683141919729865616858630672168184224256941576126820256826997801307504328945869648142753288417031102613441085340082960808721897307644469451443060457413578779583883636015974057615509955404268271616281706927525638357822302367807106603009358623378692351027145565626799813065487114799885853749909797633604616986454498354169202024818014994569384218767936597102271794617168620804643445120997963773653203342620751498634026221560472045909241924764248533544911021218190663596047921126251018574187616984401603489304458672013699327662737243981262457608842062862989382863700047823582863163381059005203957055881672625646051165938684839637056350972481058565218332141363642021131703478881207997609468518304971864746479659858650725459676917797911448882874555429516905116418550799333411597294595756431704931023903351437216448400733255231903131206370239380157807152075356387773402597729612433235362659590310452489039058384532683772989500308496083508779434265645521345338297503198883631247527728921285705806330452900365882331612132754134343640626557476998875189433857917600505964929295851332137615481558826478567885554161381766010813817890314006521118885019252895336153893575637180901457938286127378241458521727252891714431510159734856838792409876187769814075203118677635241037434538736648332279226604013296367183354706453211591517794600412336686108087867343343459651357444919284871631833366821155158938612850918821526034314809738101577770258096761804758029026190069655527572175000920050276157137271890891079250156417972652019796658385906161353173970202767170682017579039838257571053742300783080589180519496217032219806909778547276305858653959460681178894827752121447652036708667149598842670391694979927276588368574513263875847077573889725033056015595956532720665745524719357176427163377365322284083015746003863199521737138327561845622233693476366876357549803881036160312531457786314239546695559206754686787049721788967791005083236752379293268800534703716233473503327577208218616223373427699311280857670419112647746634850911656957855910240242937567339633587254561046181354178868786698724117978651792279388372188984833160184579458275803534551443664469379757930461318284579539791889187899999291697329828167173322332575818138825429228590082143346716908402846868427202786546546486748646586502357332276433308337598214291594919720037729511895453580679173558384140413407159394652801830060011973260646063001846370148853038162688728286916570768366902081488060843778665186940171182661293875783038416471297489608298948255075784483567579857666680437458200699320841910232832980121290839586070111324853115423460370690434194756527134361632454376797762688729862056260216717569473145163309650326372249299255431884862049909467660498672464160986455771002981338526869985780189229949423216667785023272645737674740242701541756845677722213545161219540387285898902932709720159192025711945535841917798226684213246535864194625369956129730673396117513540474181755907353584048721826642817686670306316653084312824987921742146395001214994898697257927942872652525109147201807409609201287857167385220952188316590519157489067260164702535693581949748532730978640622658332924893153455249699891735825206323195427851486219513719061454293192957733004411234047427176134298895007007071097545786743559338660580847632170521648522413821335427219842258660461754635241315628212952627448724854595606002135592854755944303556026891811830566612579150866163754341071066147767699791927776798708609859901757610855638349401825101057433641842439313957638591797784514983852905022734175391112501845719085980305341774697687852723398221843457023702946363000878644774525515248068178408311229496980839791912754572455787482207631795934947936991112700080281454216572381914932222707998333273713939308784123590129529914546556439713460676759039331728365705037536554109601661478470608392463965087070817155141040091415770705708744754483822016425826843959332835227295588505724731739332260621661851018085722806317197425204607532631715526025865588376489214563231461225151977211358279618939609653522109834450956933840174170698147723779193973142388958363052213845120928684886553475487571236998530114247511479813802455711996046461274901271025507499767634174850117198765379853616075065989886144718221514561488699106679864828017588987814555876902035765800226170212676513449138794266988832003472918501263703121809709773298010508098834650712569335070573146699462870627396568974631216507964527148204959334849998461140001428426833579762626716337215162239905260257694449935806573921499628564565776553207681427299080321380514686359267295084744578601413037771526258998459172544490486631642575272043040849333734372785571415163534242113770056936691077583627599667940729150619578101804604885882544671850361326526948609353426173550823120387296116689903946211452882060121826261710129182272946096166121805663781884052633007296786629092205197174999851312437497307844090326426123661151676767769688420784643167782547400848576450864714854916168936944139711723208206596368613307739984153596791978994912004108439619380217941546806670894521503600200486809922120110874064313699520167371872438243433076065434301340356894832107382773434158678716537264453971283692038532578098798363450288349196419292863332880901532490597615373324353604138971439569894896196856415356353827911357025761809092784782396612494825494341311922655015631626458905225194137798715226888373426569607551586754719566698728830768818851639512552457776426697211900294861824027380206741605917697405236459535077200015061141963679252447367423245143087898569630740602839120494523427653987354647246177968576033526690605214168933112266229141423665307493525666627501478871511203609766550730377138455865754937488890972013895236167316187716892473528654346829007568269142953283720245412169917867561616173682753111921871914842129836218804341157873623271805049500855148111883714089653232144970547524799812796663621955988016133018414853707282281550649044133270749706328349144137077987688066831038779507599913041544655798580785479054859799046250740916499407458466693299961527807401035619288639766656265728953884172762644875785877550798445650578737002897389885574483161792954731032203474117572932233597466809894628251037468190874648750326224357874298006970984697514487044351027247287633712291756725463291605792633391868062388958634051865428226689782589882249354391108377999278275968571238663060769989948724462066734701331796550520904873438808202505539948034932288830372307264225350524343146145707256388085166499979981327872086238328938144191143763339493281846369644121909676228621130415144837351984442055893705259180931648126407955592539670213306577662473158640858537752906878089993297763988425676704485780497270839701673246336253894579909372132130384697296440223545593942292683670839373959521937118629257331966135444629902537943295525295334858247867003113384674436457923105665456542906063873508683279847167223072800181607043293041090826177738917870535054331583004723269881696309399200393704474011752514922458592233285700763907696228387079516359250165597030788477127574882671312816857231219147983569025031442079630080618353721333158690292706063141947060868730960288598971877206419708465681167350219308049625707324690747112985571650927326261428052601361399120205315455882684081798795191643038677278153064094048781136747562929889841765011771259257385269116830930723716853458737127078548772891372931304861011420385315274876588172271235443945054291837367640056185899678411125951566800659369767529726000218950520869522966019428949587231023484687987184565312249916579963921475948256132792120428729664563595664139441600746282520701151596442926958828266256924545161064466071644373082662900855879926678629333651278903194768760347370983981976885721574962165378982360510099343311160134365180051190805110323998114836007781225112975238984707483958839924225151018589397854682381585887478405085777265987800372522727514179112477702740335081081859783252151229215302082696492830102871330572547495371078137983191838779155618713510464288321427327320403818141956211992829170313056382749407824546745665781559080153852072337152718560751221948774557257451833699558873800111695884646765865588332778636728237140177798126287365377217705599270892480605901312018612613356137954391074376196050162502824286160720972353597897999567557348610890946077615404263584190337547437181951967994905381625568085424285445200350963641290284879428424849081642486000230016626741232126475185394764517824885160125750582472946034993534782858569739353212184499060313611697222536040830142164525964414208600272854713226497215897292102835323867499917146665244079452164074713923744856890448549774090357702849567534355192700460677964879800214782617639282765960074120434614695138620230128883516751102512175096773785507170799832035603088191093230253644478566194717274798188480666437961991413682119896409870689024873970611189418153605530643674738426225797721958918753199453338418555562898303619999037782738293570795818154515605881019157034338274195478288727516922786813327446060652779794158448527750377913790069749926851504772366934371905035463444694812933968482249582665410176220166091046180244099355800421340903644715933583434208497055637161599366034257804830384817360463514939542827969737081391872816434572704193354197500629328681981462197245656732742277638259472314498961263181979865283853680463057222545214394533202106790954135182439440270393487497679849582553299520484231219565031823593131716739079073481530611258891560919620302383931103661442298572805660876039333121972977710105509727947211855988440085561573283149297171702266984961443390610701103825472698854091297716166413203956660496570850752211339363736308107878140578237541450282767800425508227384321749090035922167559866067944570670195404143706933656154443645760107721394845857965532692156115894587153549665947946846299584985027425479485606548752381783151242409787528537141392806786681071784102682987363638567516380623887810559886683259129737259409272215873413522592750514516370484947829783306735520020594768088081034976473682279048964966538655980329773175038170151698741252338592935253959416178296752896940021836776953278515784704396736528609125165921299452122238092641894977048621178866224076951822128583595648516660754199437733068782537719385801259661041380192036396869187310361734596857476182835659827144499222655311599849743940767392102845944973382089996517199702032290087410477865863103845842165466597427238601196785689438928633189299716210063334988864682735185258508384529378246274517851132591344284694316746428395770848277760837073354216125312789508159471593264522614134084451922802996649571296821799215075753429840891733393960788389219561186629467663710135947077125011214517482780520265710813300463211670338514680935084991980357035308441500158273921339979672186389136664510708355640544206942465898321371842232775435149433369214242552468933380929515605662883710217705549769901629504281146470835232533846782768904815174506979896551482813671668952629145225552677932839635077051332000662310777401055916447024674596453179894512936730853893529042210907051446226977327362824938419849630527183600186563601626841778886233127869347993842412053009147347794399258057583962915688500899235507398528208155763749785020077688464584715072165357734980836012075363543249768268760089563234521375389922221186738085474504646323868632131602308544320358036100829764853916302786330887279475510089477590258703768459025635076447145789725051404585879787992256834219377176535556888931007245883349378682381045976899067749032433329508666252963998074849426342069567785498076623906419613902922729546888556287437391897179738499969232040747342286358416788124680271372057134242430483643682697799219450373253391509137318884097578241840660916866464174348345621305544609040980057029592496751265371084419224897859163686672380346762102587433155792841052813719386011601328218282241136194100458159375671118238508166970919822438993557321775626081900917624542480894352799233185647412972516643477561846759896598809982300914052593634295300493774201025058808581802882065548714070512097835498639067143900470923371321028319778844617614715734023943621653732395947390253887760740680914495289435353010649063290949781147547438407107230091332191206926280742914025454923977408182103692253282930313342541291873795201742743138406610484567206063200988886387009608964343208528245641566233408228479345090167921682553500358567134166391928161839544662524891663708895672202521421995640393118591480425599973704193298571606043157396064121966652907564311043977259201868894011622485773839147904445798299622936030996267658474709710887775206035953320790594582996633573759570816202814869897537332542426681724746164472147443019849301702117063668800263890283284396923844405343909758258541140185409716782023944302309020917767325965509924904978537918635109847366780417181330687767528693638470278445871717835966007556442691395944125290696764566672933417898956102979919634235865434571122585537118203854995358723575609132917911560089761025358622515398575229454147237023855774891221633839300940166435180120043220317930586076133599528053383896560254248641801395608621201403305212778347420495995791487723256047935705505849656333353773276805008058674567006297497462730022355126798444699068872455878232977273332889919917249229220327149838326491936143025962634712110562982180658631056523885985016047706092500375908620324147808100615216093031146920872716568804035624207490061653931935127832259979864723803260067010222150983129278626903683036623971763817818174746859838966385061177939962098810072381904971455718556024788059439026493747296569358463392209598385918002285891804367333297810694833420485678411389182700905514667306838463166932843838027430362707280223398489033670342362443804099269185908024299790045968236563478934782584577358306588548088553763279167945366108508404497075393840203624519486354765941258736157020766194906650731081227843489228873670952641693763234589299907952930395825860786610543290205714883656051422724503135378619814319032843253276943436575748477492187860344132225668084535670174666337085787923808364371811123606765157152994562123959492888060567959670958078266483997355659580724851597458723209735513042914235921884990685891617950669694096193897533790079255654058924116831942534037416111237556039376175800763214346207598747473775706782970801098489172440510509834247723737184678322483650793153349585104249298369337000336290932970076505532078667983630400778923257041963656255399951564719226580913598396935510165160806243755292947597565477451318072650658700593802270200027744708109160536021106678089373784369648492348558611155748497052934930111197513934831472646757334623912396825863794013084324783015540620236222369222172316456308428531260277914755555072483445485218569429071094361500666875732456534745611530889552958379752841577806735574887918728527692067741687841732035305802397514507788371200743409587676016207296716797187260817961165337071395158228107459117165802281325668781523874186670717891595589523838652263497253935417502521220371305281473026176115850137785434014588564301540520501586813368305223294100286009738267157461153164997076687054083841885574196989961869411709579625451470941255860759260103835805656770173525436124689444714666266785458686488314284962123966030963191501524407668349924425106055004511058016341138474169824014663520149117795117993905645526436102079877471209468397402883621056407458780997271995037627820701493053530633052733083510188544448343378886844864017209394466505369805351689687624895122877513803135362604616609636189172581418017507973930548008133672101888795969790273230335907235511064003252699265581299980505823185796480070606200231723258627895547483839150080522080784055468524033244575706863065439815652410957426011640183595239992146434305397207441510261134605716704760943724811885060318234916821889459762351956083685462203058195248637835422985868460295860872566599219743615322507942308691057926876267840762406169894431807743891529168647551697051641493570173984119903434181703818097853916502217060797794789949585529793507499449714324691357018251141859597993064038523370223828824396465258374597374920081196945735836337567341684838906959110413982995217850155309951167051212699911281280245327424356659056299328458987374995276859517530338240333587959532137725798897807857708830679498813520588201496933714707571913915859361834597979871928118991131678083892933855270605689268242734398335517786988170157653040207979184963191737981075812626263708912663003728155273934997304503147001325353786477926682613791510704554310794225669322055474388020405003749103556761008829159316865383549497100973120478472550833238031250261008490338839347230620206495586083910642867809151554866285448823402266367508156295414146933692632812571991413535813587292409942567416912310722562029141558372962871245824171972568822480111201660511104564117856393637456336140132298161412260501498400433198458503495011408654366715440447763656555063551766126564845356637169076561246318919598241572696133551269691093662631329909643215726496679959856027686717325960038397454745066718262062399982525955868407185989554227721770192496928821836157111364348009633588797804456153920477838309783220046243408335471757713923775824527124073242025095016728410499593849616904597384644086816289960860082493644870131055831222714208283098010974389205324040247814738597456607744727719275662113144078942953250180389145783828076477989507343370651128798637708644342711633212067332241311096521225668157410304117993692626065213470508872095987172045881407966943266916546642659499335191328438904003789224063785967747192101289325505712657292832100057240721273618044143968568104339574103427034210444434282425246660778542772072018845074762151297874328324560343324017528429651504656519685050794263834732666738063969461924569265523858028969104195332264772612789665089729931086854852913593551666840470892225412186511870442417300138487245920292352470787204142224221714782151775218078242725202874345049133410492052927935706178773423801092125151389300061470073908875369798422331985070222957919199245515010825926699312732968717962074651730350501372734358080145898006593548906267135666920501717736813934457830991033981838260041579724683700049130992320805405340358275625387036780681101879022507242867274209418208645503042698197642527405557624829012948876711145845515261377125605005334021201179133780765203745960606190693834731047854019783315195177049967637524377785131163237011553383567635679653029627289139366807906063739047908208339379269511901094390344346214091922888015130393784687898572109811726104690245648835988916825050347449004154146103216615573557302058761516574807209044773028650195584045864315576624566408510141582719389934209701464422214688334747136578735909588958728224755724159312309429997318257477986557013311854984217277300185580782678566554537270387793570977858160116464916753271882376786607581493407319467468784864189131999154062209928378253605262100300186359043925054621927069631298533507046316251566490153293638432034024781463490048848479939733207449351903550358719707176684075817514410537214053238613127786878759859674757936626982077123402610785390388811395829252407097151406006402592087674528244246872437921847351053277048160067276758714904997645224038201148735687727923491764566458127304671683540021709532609469234278179119723030088835565295890696043913834120063142497371990651088226914485196874633875969598823098656167172311822468659427152522206312251823643112735877293469535059328950138277168949719434799653626397328871739683058476314963341032740290681196945068113757559455862887218754858171219797347015659636447816259069700449430524215365123425544221245190695140932679557333257358730226953914237313345424373340015960179608548592505931541376038012488180513499578126750877682827215944071671790904761465702333291816382745447602184760322182262965309386998170673111151722882354708502416492538618507429441274789850773056681667427410326112223096165159634734023535204977513262559152133694487001264819795813103010221675941525977209539324935425672389130244032091830778119998989112503818324894310472391263746701278927932128245485145242950973702676204033989327416181953543993863799665008214147049289825390325974089373196409656226285061324536429997730540658349975478092024267169636513995760097272257727914669657326179640312270756553125727527897637753862363881504747043666141896088167644664183378879854330203249013268909659832280316914925567998403932911039221347217189261582137699381366501159918739026553117737958434846346285381489717421889944402024273576478909538676855190157059231870212338815447051798377570112518651690179988357460965234475419648060157039320496627484858509436968618184860716941765877113411021863493924651807555238489097589245882312551218759769250144881004708641264355067698141800370432835723200184086825401937100399786010025955453503773688838469051253395860363889440205167310558039305024976554087742030797577453533939399485863131187990305466421700264479656222886491635302021692864507413253564964644899464821598342884570666734847707037017869769230088036024845656051770413977488047631679428388625910200983035712608336570943346026617774738845842420810481756773965028394881686556208472779267388735929087146658925342566377895536036579354035835214762917466996424980079844567366932378551564823342057632434417967021285263980565765219923500980543140749953064555275525278745288789854513968264994991325061529985757938362109633674059979456793330636005014764339805694392605673872209224725836116954354107290265397027538270183415656176042694543844722824268769052132030842090086237802625334930664008740628241761201513255649038725713340960350860321577409489348572448842565019786147479680512594748268770827074931840640585047771225815376543698046262860762505520578842997563763534599270787436830707449062484554869171036370209086735057842078436708736331580705829926452658381557938794994730777946415833111284580322954049999540309439985914347454182568806403253312505494627869773982054503641597294976758263326452092554871033796705994096663251234680140874360656536961536126080804006390078756508333484912778909544985429970786490482961463308420745518021917648093418042885782195968846691103892103062783447063801612373686469731805165438550276214221685663453088223901980645565480508829961050979159883009307565799682693782612321486729121168070549125308542615416788825410616707304254546028105927609259594366268287524728531937034946679501646467635167314306627213308793544061963794441681896027656958848397340908014606708634451886984980517770035785932008321220209548408291423652754700925087091353120672783062258886203816382605629036371983801352237413115301142493087560060956006593545673772288157777623776004575948167895978993821501043411770247471477246917545576003943236941094795609605248549380513356007068697222973016066599360980806550817767977135385027777502170703119709416707336611656777526462338620540988860003529949395924197226308925358333465307792254825333311921156902206307058554506548448821840445216996870613274522310028236635968208329648722918807449836690105007653842248361572698373920644016621334673201991866185645005082522350186867375791747683019808955512236226755904630878727208712111201427323007904857630552723928464569258660907400316799579068016040869676857222712918201470341897510994640103590586401841490649592473515791848340018917226030568376352660217087466781712523591494972132338781224291329715155175420250092643904892170241475252547298857259265510909903380844835639410200022581830992049238979204948339585168103028755274570247296571277187612826468249040432743285357750205431771385342680464729414954153695966971811045558464367307965770757959878046118445438010114099471920294115774141669552301328078699222054254394054792180905167097047568150578416276049095035058212623378017876839621893917899724117884833734450769711658392689745292191790904479866348661236631547289469230935823177025329891121571309034820423257963819530475929211586561024771391604018090483057377477586773086199794647952079497729117126741016836531585208090787027803460573896390449951380203271611297289758459548258356869547156096283949641460072025530492443669952433147534585742823398370868330336927018007833741054641806109718525089616778222098745373764490079667389448715162055364962900170475236657175638202993933364336513790315676938624271410439696230719143847043766148109088066853587330475386390945796546529036889375567053245248529384213865844383448659341286016697836739416836584440456450699207019357913237203750193337397668891080817402544630498502939133296511252669504826128944704275000598754006944770027757823148342890243339543126257873468843018048623653801644284581975849965487862197597124690733488167052191089766546159249081523468080062059720624541792562771308556032952619530629307556326134000383366794028811962836409194350582284992934538601010271263006156278411560031716777601767062101110914012039795695793004537272018880979886029792320011305126926158817053723546032532972600943270814011745585645574406818772266379463772125571069448070181388377976294174231570817464302967639480354967688896924452752895500814876032299824019680607118787190718631155418689363307458066104431002551026959959357234818688555315845232943588970734404952031834006510351102878505638386427687244175928291584677152973498208675707580396714093983061197764094647400558704562409593672532778589127283092852221611049663821201436183492528707102372119757119195841062885014345221241858826884597747113396778356950845161664597355730783094807359160868709480556394235409936071999524596807244824740212085012161814746363337727652383386346626570036526937960661007322204599522742936265092633439548375316267967196470310304722877472238771758235870152383101829973365432679193235178698473994266321074555556811400117277703871404557824838735322528070821256822965484514597969420566085557992536636634015643900522156558251581873308240635955905604841659389903396654742483803318381100832382153693115157627427630236056808068269169878633425331031276603059216472407003991948489413682973415206945490855990201557618221681991386961685368591215679921941188003215100279778905660617243657115105431228037785773028153690779273172325560034342257184057706184582459738137463742073159746852660419660316507619109784901889850071794876758035673384679068341223379168703947567945723327129264139220467175908521017308572762349041201203402648147717186881027382430888900228733486515107109904401417516097556495438399021813862981997917021801527198716944769376451568952676799340422067328488962911895138292541788491067228791872705715477113972473162201282639018993745264875179940445636916807137391203613996823818425100346968805371438114084195379332402856743507971611664715282186104742650330244162666422397059425281150762532394628216803564329477273207735766059913683887445414736725339862597407353394148560701427183951248363587595680926800909731469395242283345923592906224174957385921755277172295869509497312528518217695002574338848147198274743847018496831502257163837680513346738629915585494968260333776969406623876428267383175064392510439735076438332951877077590647133911675554756915748842558720063864500631008661076426266798541060567427584194788511357158111856771388750475713975687734982843103356654235167054828006227329849352365038633632678213023550505673314411745086857664202281143747850345880889043795510117779167130468954223149251222911216537250533855298641715066220078639738875175551697871487987505489269668906356180694973962713748488011699656351755615952632851053794856138289588458780610698388714846460746435553820245162674300275697837212318290749604138265085695316508908920148872271794721297270394637446269037626097942576430929951743634282600419507288852798729360050406885024950518598611756247586170355791010158463332063500615670941912022164186379288495880011307245008205802364580617790471454248441567487539753968441573510044327985484050876683083612914960543107195161528579805148984763978884926780831181553054260705388261875648610045508422593384357832770919408683455304201032421513727124834020867219870902989561437601211719996282193696074089696270695233301280316729887875549275125286381046348653867582487120715274325233981201608267808425550335123692578355629231585055326925762812360384610109258696069302276831838389511543973554351304741523241205990345831230375699483779607272889834407411669093629592460060009500013838210823815874669494938491246799248210544121713476360831896406938366602634095317234507875318096783441009053297646530502130997866117374957434360902325722216456220168771357340077339179161104567623320914906215504563900871875322315156697005934536094457326407934655891336137876018836695361088232592719826076030559173466240868398263938198935037954927876027388972538987696814759275869750631665057860769823773826590174939052222990824382136638214568760706881903976010304559035190491691290321726233236202344308070983025373890537186259112704378513187379266753685350347307161708969370968651319999205839920094511774415788163191585921043725030823975144530145417846525973249267771228179750223874380503387021083337101522393869474838014270515832965860464680661945687518553701444792594776367936513324616165087615253710651009765498376717711920930156278603380896716104876988562833312423469289465597750484458135469483549909396807162706654368609883269202925443068151970846182491519506309631797558886575185224446669499795030255060055852670609554880391681678552283598320419789266234227740568483530228272800445265773469756378976694907764931197632989085969387331423509214884772173048337839879300331326985366525259369596663123153669550852772457296314958490622123464692712493735893607880878214105079765644077017662736500275265894937795520949081519966117957467475361120777660265526482104391826094588558218695321525421571301589961501575463128625497130788390493791134156988747639595285933031338236061873164468936703555547773361549207436285426092730431590025971550410426025926914240494894042807419225829655290563307068011052283019337800921335753836655998827796812253969576125309014326442141337569250913785265598467788224075868104352819919253718540405989447268702870864302796932640236148672998166928535296354363736977515642398831233166185653998945129799445664469808619273873314253073107781204268813800871589538540336241446263679232138518522835139742465898759581183143125117850388815550752187208832734267060518980164058293241705513867093411158576689926733147645452249611573305078243966823056311065932126148654197481405498623866120027773820625291615821770724272207122290509452141991752454551007292993747922663639102938114714051863228164191036465982694474844488976305689416931598872131660293275965361460045897676992866602165764847329138364819055548224711907369953474127683191129299690258485238465230338168176098149880903093001425668701620826483840166236227979661669796933406081977676310662987382333475883342485642000069559177234243608155189805973233739977788980724930749330125365233688597565432391175763790592937039708416443904968499411010580598405960175105381245101168195696407762630322419637760596976856904345757784749686831943025166708843922284125935162678012577289413980267920018830506812712912864941141986652093921591410263336558113169237763955792719049859307639671918414534804346770006684726595789931881979567912451105238439604951023122610322994260206627547640181176767751578127569470208524567618086488720539829579502259169905283968279043387791500537288085310702562718746839546090808400623875625790807720198250430550886964993085288904252153813866235932486606050473534096641108609406164888397348152863398940525235939192774953751697717874422573089230750571734142988558552054051665304992354912468236645786217463313910006327355285636000901512890077605008105796784018605297723773115223286275705216196910511665707973808159755687727780100486903529817004365943043811970184213330867475445884287130314149481407469365747477570226656541901847288724934744948769673841725394892967724359782945513898228036604937047444456405767150137014455906873919648210147607279628879214167118614196899270380392938974165444108074056735918672546137292032227899811674348947556754848848461317110429352645451059180402913508976064591373810347755022730181015388789503722585095340992747041385657841839374998343187413402029802710423564518900044993506025924606341444684830843108095427663416434335264282117088398437503690014094812501127506704619417975524235631698984385359260660553664357611881839485799858879213232181993524702916079741690119316070302685059907375412915030286863487621067979986147578618052488695757805021231330072716357298281586563319897413804725828328607459727502483967445183332896326037080054770865857791101753593702855262357251910554783431685197301139244896963358142392146224870800972268913967627159805776587624047317278596083920223701186156948978571682161789141388050678045998241927263933269562550500686369956287320066204927468062795875420328599920453572071002685242075724042180193872218999066754501289304024740806014889359000833914669737906492136966792356231842038227873912403284334156968645168877949631462741483461776454347737288099855239061246427846097836487010311957499410764112702515318604609448100566861233666402085175898930981036050682166166855592079498293862805024560315080967991763442802556243817340995605199757860807202044866083822931737954600742630564699296152192114622117801876902221158099542163657249935011781606592103150645656549315608176101830591778117691512551065629561147908808447767630069113968219709054428730137085761573154901749939088017128490147084534206108762409437325276506328699342795326252714521755435051910053039562457067836147500320364786450721248105462290873913339130263484093944551785762617462811274682875483695933508721951499265467878923342651164004827313898729489555179697297339469902702301662054002409080695469376433845692609388800164082253044561138285727530152382217794614398967581331061380025023704156159816378765347743650455916354243381949110190013544561073725105181746658428685133805772892133809081551408788800488527972946789945798712574382479943345038936118038978349357166849604915936703726625513635939016111408689611921636694434698788509929662723854131929615696311244658806757004328744223867303668668752874812403103213569506106897269432991074155799140576491374371764367311326345317542346158130968493752625805384916026131456731941084667491127651841660575697454811918706648454521658611822930467452479368368614163022904403486859018982236027560148213038311503810202103636003066727547861436176452490137712258673142353544329714718598515220706545818988039019860412386928361326687631156400456638456837937380521105837252136910906551607842588060141596372019572273139278940830651891190670012085085558494012965053528472032700404148188127443607819787660454859276540514948745603466097754320306816093892782163819484313126534959621086571427437907148996812612996500929443760400767804593766945880235631053872350855856188047709140870533361736348768976622253046540847787017522813864632746001390244299311175606177051615799200396186132615046528718986343202480223637954472564241201702918987845721772595299793130861215325291806767102946504289505329837848915498207316866113446691519075433463127886236572267575182389664606508853679978877114647803801562381342635006804184926113458414004654896896632262389506433440692419340819240351840861240049454558130484962424674592642669805370082650252904478242954520855606717976274876773081095854570970974053520431735270417988136132037681306095439598106114239904584887731179009005067668627135226453190273257069533390931864618265456549196748326305157244746843475553806575015113342568139776027824292258084584229157989143042989104280992110759842173226912622272765678333510350980612628079059253860537429918292161938784460730019134254848283206895388569789692317248049502094530827851552865259076942612804179427282554770373178913806030970106042114783863415125082669424102857936417710807553284732616974615998462096658452635425619603240271433983497542681325892924033357922768474038709930753282638976524934084622217586865619096010513294400973100241522972680814978622373745153590656045149934993684218651613084416113530832150541435700714468587448920421745330817402078486117263069161224566471574070148008803251279337025377842012676906025069712901999643600392726652589089484149984903790068303451170337984040154156832341752946613882746973281692822626549361793315505030780185293869355858860093681345437130092554688860779183302165515150998234473091610373211810512105714541064382958304011847292634952464674837386402538153847136339983436290223186197454230730332345357654297781715380909427951557325922818928907545664211660594099993606830629040175369776691724368286852156853931338294972166523934841515424703849151671310003452129877831961996411255770771204483668954806423359461271848920535961775832118471220303770936775010423827155389534722308506145468217951670192728688875688069807299018731576945381331319587165142204204594251562096654668241176972714060215079091711951453307044441022950350865759447429811520905476369370468262834329483309458423623525903929345137124512333264162591743071971127026686903089595404507734954228980496497062371490573961543618297262826240100310898135349485198747194662338091068073906877816607458327613014641333289318975926400840714746738595607159543277978150063173583156729679322044366286610787358601012196772473005372966532232500890737141949514600019543779380490637924596002903823586080726368666495315106012426468510361468041070254020740886313324783432172213220446191545850953614504428087305054845702984054706155091037438149590865144804106719534305587634470424870772242710817475440367531172958159924064863205838788508117364064004912268009850714699597430620411100141596156372845379549788308908260393668607325130592463378890663956389014284952757653969367794683449510920968221382281569404953111350286043397443642065651198013307311823773798796044565529125315098706032951280375973534906298234035122476547386443561902031468533248690152085381812441263100704523464839911657754127489372753104589592305750875789566441766457660787457341598732155370218829434670131396682829741976902930780602263897388488980774238552247610996855521349454956168968044251786270215113196218450594968685532239818663724242343178747808808385090827612662650191125324699566333169719108871728050856262083558754520074169669981447416177170390198286944696821439244106323017751297543172292535578271648527979973935454410832506148766191187112487082550720083136796002915472143544819737463609371702069610043823894052787282329891376078408065793265205793989290677919205169114123168749215743807656341407352261482480372131388187635608266497546032823531615396187636611975625433592272890085166785780207594749787993262679115200884031460554184688226862234389474313138847096091934585806633753048579060972652786316007862114057244120544303201412654269467508083611710742072379075806163909433571126546557500109110728160072844687813726645111269148131381298168967124711489533695458319923836208568622329884319599806461535603103932003837317414540820133211220044470449706629649365696515133408481357020129601756711908800104478544042564072193438733687322249683107207289711535245186893092564732088369585676875599370347367365597745558774419606444928244617187226463162742933277861610851726525724584785464846620309275150899021563075298221539937342152786065250428315255962009003393169257606749685940519619351783645482260887510936335675654360869454219517683966634025895665459419076395292742183520213775485290048166947746403945718590803746881884948307866921387339559090645421782966117139831852604249912284443503606341506937267010669647881454239153735938850921631923877357566902103653520539611535094759568104113263361967491101290970072309300552245870284469605647116556817046145098716100542223641293820364775781260979953493028567499383371189584807491618854790746128726290752955347992207556536516480501806420755902026781039876570629174951509003425011360777078713789432968267829333184448192321317083801340865795923742581003981881428904343611554669341633314990503998078495986754919251439291569281026009964970415581594831709482861454228963541164385388047086580179301161532319428057190176119231140001971959427755666189489372679994497328587701871897732639650626876642527975641520020687963507113227775333038263199733781937940416466460448898949206021764436663115268015960166152997879595463696552607330781729437722316363974783167292382807122502175855722425568131290214831814195272978343873926510457356979878778298488341323993883575743381174447532871058724490163673932852609363850772535374947175604576646468922160630306774414821600658367243927489742965986306286742295013900145491958382593553164954440616494998700904307888168480476946596426071877246264605754118699781757508047489844203852157434312503625716209113836740535681946338803569028297392863367199796422586448625791990789195149395013299465276908573288497603842142565546900227765993426314639302310599041017456793407974807433632315917282308862029507546036620026156023131890457443111080344451519007082911515089581668452305318917857713520587950590656179784835629172570149790085788809461876049438016339582296764078897407926755285115862128312919514230800766294716308736900772944663313646120684827634987770297289757415403692809629004936847818017150271361651956050229881327623023394446668425871048866558258914089141137566436218147059664893288723263090642782249372950943377014587240178927688399988099191500530227252732315186839889817292059692602539194606435638268057856152957064501085829133262127336396374927002270061818851628826689524924101188059972722817890230744640022947235407926974894852700930559748404364310874046106126194859079095016532498162481263674333808081248590096790823852577328566872320197573645722062925106124480636135216504859601758062211997682868335952333644952091184315303515618903526610696321608360965052864861758372891641515380646792480355766035954550291773194238885527573872877353430067522448718679275471736675489164111449549782500422299265956263420786528098258049936502547892781838671735121461244218409077943905889759907430098823430310204759804900025353250188727027317414987219506226990207282598032362250854764552423540805046515638795657644522362412195576852668891662524747381613169555387901760265665512419190492863143862252407731207035747168064025951823096843867392316741937964872560256786157872840763694542968469850502428642053812117129965314753275366308345077101663219539954543563414387703471021208250579411698997718040197446944141133559745990951057088487620964282158647734632411905586732755826676948162679535982467903984423497142511300677353982508603237576172135919064986650949862148988166708751252551303934623565173913218681570884638683946869158604753607221974484395417099098133905807754808023862744765749052019432792435049993233770456544778228096207226820785842000259874361730031758758899230784770939832272772804243437937821217451856004742468514970706124173916614738928770658367387104888657060314622855428430715294761555449515303819611109711084903103574994611550681961097825335545069623582364565102438954509327144933198581026465159119807209512340426812406842368155252005682198583092054554261149242190037288118263648816939293276120461934579962012396444168537221987299355884605706283215244561956545703224357349369611300324758901839059385361989288107680428565132192336280874314168506293509444754001348271448381786930683974309223366855737303537203457727424812789315850607376989908150987321365953077061518046443642224462858845912483294939811912372481216293644313378032800285933927709907807653779125566675344218799833634710745177064674546712029609274772191502020231518374979996273698599730528165826393021694561055422512915423791770475045827731887110445092011877878317828751863507438003866879818840638323274743682957774655905328225563951416457881675965736318900519910357387096431122741861271524203417165553821048288733800739645695330002241156868429716382123568594953466743844810603738300929443794147349735702279100715587466991268996130011544519200503069002284722334535515397357336867692675347397809474344410369732371620469407437161016062981867598929982956332797773650106867227981510199876463557575465507034760866026305301514925969681750866946003501408473344490116411879549906181729406311482333369108938677748558002999083178717692196761130974437542081171015285084575385891737997571570483001285919141120615111075096575077187329637211661912292677658167887594206250302017919637189584395219506689218307678173681360087236765527868347113183557261385660273266546852310470862927994371335597426724659784802104458945675271680517845805015704374529834456550732969760031872181861185598743154308630365460790089427271869212345050702296356522901791629471359821065086806833354952111736611527315637505331201597836493472310311273418824109849649489146471611964640401940428158894466952269475365297723470892946730974691389617647447932539135556061006714526135746363183548882684859743953625229889524428830429175097930835761768426651027948521561081279011261278993349572565476703105936534740005104350311906818293454637497691875620593983550048732582182744545781067862912646946978234413880072625325595496415495208276648925722077818644974359987203023074286057140910548913733035771471218864353159971216551727094403503605705330199765529141088931046841674244652127873837459460574466429633370848760239738371307797798102760037608878345977302104964340721550925806084902355211821730589658956816627526175896929546422018950476511000311930292744198404475491139914290870253349315238661043918258703300186130425381457799551926975111932379508155611770387743513871614437795126066723916195118786366589509438034046784603276055937203908926638834381638366764389028459412808385530450212418065871732939683229781489000467911733589615241346201729426168497553903780941904483579762645131089732329916737121883595057419810632678401007087834063226448233624623075143545363593969801828743814241866746881783616263681789987795487924663852097471069586527009783647326609764693983263928218051623836600607461431728481152648117574331101000800448641307122344861517453637816339536800201947446200536959163077251714650846631585833584687769379635615260514283575533103786378875748900183572512794235235995539908540416590186214829250411286236205920585848966575552336423976028208073152198245129557737639130900014032107937733710614545944851822648746212492931187313424699762173147930211805267542574139814548570458783634404202050016262658216989828341141439130190211609842620702425163760124754079637939414498391665780868116535928472590939261858960544940984390488348811655958798111424351036196643842533242503534309635120541247206576862536812421535347895063841745896012792332311066781423242582036643752240381555870133664078533256394617092051256848696924701710497469871584396794792971034082714221547960110263492169042553507339440816879532051376068669203680447638338395358472466022295278923058189316355753801225591862311542253580753638515735155737781780666619581622537971083117158574099503417493590739191072870347303197713653765569973308292786203552728691471658562868210876077892898464121356513780433350330501582592024410564851498748646262442872652576873597403264815978618172093217098594340284218051227844137969039881092054441110408384828633263647886551876596370131737491369461418823266801839042120733256165900079422502457067944025112840401843020993376259964365016130037037135745737147424388375271153862203121444415137916081164844441763787755404353878755052458471008987028688120767002699232681646254966192040184106295810678292489226316765257478369805520406603086857241576757772853790063302112361439395890786647706450582198798646521173007634556957719937945117789723289419620249905029989442676786142722565045278999463187415852436430127856991750960003695361965002151521421133365174109907883738013127883442707651660029880673229711619397170122965400766665971730727314600787770653632602542668860685530009235408906519869352633228398095724024077897844656779041850684845096525740301538316456100293500443276326844204609684963879184738732451932779589745157293816087411709418916313231384455932959883118477939462235790659758522701722315273644296631077948630948777221560090194979888206888578689897485982709805402182304712717725223456486423676534278014682003152492430945329202409279893882339979598630833717566028162391671720669581506807557021421100908875929586588425442996855201977912773273388157514888178111901032952038011159544451747648813760542473932999203155566012697015181507509462337752171661048815743184879853296455379489429240285345794582107241342028121249684780671150043988556821971715153144717891105392784291850419618930192561016927780349791698662152402985828547742458814715103759798234133189206084976431481110838833605280426621251985624722100674030909986964416646066090292812880065512076717257008983979138839138934338846131895576371103704395297526970375496524637713646938174620948045345696442117567214918840686584798420892985656757545456775126001402545487218968292547029101230384497801217231739981690964027449646369394851473570009649109687122505779174637002654982768119852158796726034478615461767225999231651343775240378074334319137634932149722287191448626018022997253697277341099132267671560908133300782155554795194878842531366840199408962615469862409719933103784358660272573534031619430898657168177581996870729544274378344140400344615367932840366881551356655012668410583875576780859272585529411005493443301760983180296888305234804535019260748553045590084072468531152786162079974980053069448735792173417611664627968907026883819316814537770696780850916118944908789972477149993048559778420598082558762882246553990175888685751560128287806516221288786323678312247213770194501263123212723826793240331113930405463449507609183822919741353022768923793278916771271629995370673243565464383773093411041307592571022541902863398350603636888122353159789932600700046266415556186357048932071591063266522003844903909034365199439055271593929933694713604776385723355499646903542433757893390925591450006643707428658247744273819291065356815610986154051255622009274570080988109308125251974922360351523880755933242860150988714236916286261431869663768787592189123674991004591423768205795058544729690704541157655221286621167877887022210345717885829228720905342739909013701598676795927954044857963324959516800896801848379794047550517702287355990292475862526521972702222770184579832522898418969215030998983026507142458122246639074930917411168898379117247795044609968981494769794505869505452024709092376278816395727777835647769628490462392315570420567891653140731741147790919751362780328196124875018383178319057285093372985664087781908974022041144481764157623598656452829021624537585763468475798394561160110932182341450870617541701323395436470559496596852661198681348289046684366408166881404738424146241073380997487350761779581177761125580997156700358384606137080437839374059533440783177773385434796899392896899131566034784999978983811831076449796484799844950051028131527400994306773496702062774190332671607316751889478866651997831343186420953383828842889013171326220485004691309259125943754381301851956400553957661815766180434591698217348720681962637983147004286791160321935916326198265180725125726532583375061191975181156301455265864199968200715096723724414994607047429679541688363788225065373928261263015950400720560051173815938456658635929935880317117808541257496774454168707695465338771282956341779890215785774758441153457651146007956341263739011182553738243323960501010495687214139164182739975215585372430481723534314059219326306120519597132176013426257715156435960211942685931582876605511201400005061389567145005733580120802794192715122523482367376055428838018988091094727274583926437878077211320857047091765323168021142598254359973463707746212230226652324625388400028773806090045490872259689219933597017923924872278984308382957619002281240171638040493148853220207935943132462271758828374994291236767257788665972793048474376144907023490794729797206534135859590393626483404943446179285178423437804150327392950315226628810296828699680186641888911889417798522226397938502184433457470585059287767305084311687870817722460406630983829394813977330171276480457116739120781253837160693469685247633393021200761882443834796501360404463393050261342405705708987891408886790457574318080845868112421903688284150158941983298725350368818479220551736816968700659664236630190123214522768223284874511506166791335525214277956130605045819270918475996366313247150127144714461017164096655328299220398165951692325509181184994577695199973791513555060846286731152061867690745391436271108541747990849480665582335504509130422273915476885416183161333142403499642779677538842566014160103654320931886060869266479428448868715703622602887028848878167513286533121516989414064095856169880224649860569710240111598125420567924607969859806156626586015561751048450604335533179361214868595322073890747613660127940787742921993318426701764662453094200455447540765831569162486127647988735196724316325634565788675862746317401778980950709863473573012045931001498872803104512187613099014179406923185537989063182641412247869662353182394563800540425004292187595847994267358757355210459664705588606689535436689091430637831847987637569507707760864612477101440114387462879025425435128357847224123396801720547072414921806879152842275842144945937699269801046584023602959230244701417137524170433093570458172851387930895691691542731183884975485238904585545501257011531756035745069954395432592023576832686352774362656858716161272531441704399835891373131504813557210457952048056105670446808058096250168867230056998279146117639014775728873186902301068542052625693041931806659216297655911013636099515581621329311028969605334790505408938753610514586395571434329592253242043904763789724679381331791364977040015839916623556592995910579488510282986791284679428794535793041041527542316588072116243503711429611460180455023358069490877171651476411367676337371700767582284634317154040196469403279745760007419945183317341131411607382675055558747334919655627628311776473268863743031832231524168279213863092321615961103925469346834123908201190469185439762921183261919631446609997267534649511561738963296527497489807103192448163536488147759859006676275516419196170899228232391109583734715281807063183285828819362216033395768354659225309057175573181666872509995698782432412929240055052722316391793254788203495342273778274009454974040774757984893668913348320584949315783596668079248260822154873388501372369240635476483484990069987225845088873621993260714636858507671552246263642658302045957732398715815013473022795110722088279360352567496526659539175410956897007138977592530735693279305079661310291265073246411016652022393609991586380041228370149866244897730872341287277002817153595220370191852669054940049322213689689940641331149809441202553529764423947469001931937138874211477160661239921596669298985583540221063097640116813059327426206956422264834865898315859101784602340355525150598698422911544351989265367388543204684075622611508387448021404125994380734615856752292689510017565840202455692952600887287931801442136522035147352079323654053071368205824071053628639113587040036194183508313585096995861728831135071442526498253015453290863023224802765149912468460994308579777302210982291755971065416086486680769376078591950976232256210167446795832240110338248763751703905430995411455439403829507323186821112164007476307852308966909137085984864530719077258470140585759670486402575903929263862859193437545526614616293079870638053128706298352080763935076249637429081320815012880618938249606523509885379089304511974433519091033493341343827134017354075597225901507218653790117169107535594727501494212964757252567400555467014883425480242996951139972899729509631431526276238513208878975994049716782923705826760396313305705273012083996863594690041358654720489387225999291359683286470867404631208733249512292656893170338951858899800088799976529489937497570263753070340795450149874499946287860897535287903873348837021055482707655183247767721422411924694396256807815689413565795953864122070287515436952770377931499833809634747578826240103579856455507283596570385017605005698220694611248257917658626447383985116124815567378305305656789759610726025625537523367334667912826110791004659759157382471002370753843896720573910536317395272755194349134763773329702993428313393462313530678970919385028804907191492897399480860089593994610639204114392031469111882986473512678201009281973240339943720946604061499876917279475646202703286753576627152658197871764802479894815787198104960123441088560467759142272519934278413475043881610226933252047432120270520235191362929210866350612130972913041499228447325019123290275202153027063315945173033587248675929175912262168840128079331607934371659878067627864948258079956841311906566026242912183578645196861361696518673468634857006947737684251387234415767072492484383279266325977923273885065893545850470234997935534258416999241101307086285741182191063718847432149210513759613949366271871833192739977042733827239027757530828323587577186334645162322204527719818205961319942095909046925844304065272144125037822702482943769970278633769353125657971033680253444386274227643153958443843807633678866836104690940703146646874726784048320966310158521386928236168618190069822173565872501237014975128922359539369024877143749924051131926339132016489358296406307319791204453884124159522291071603478651233525288968378808468002794121829007144378630406474292719315369756421938021314121961426042267594789403566282858920006080427404587593777660746441346320258772523737304692165324801482661101061985733232640740778818348780600396639831183615371428128436786856563530834316192204390234071734229218753482156342322125528950980958106952579195671170055150978231264100076554000992893721196996089027239491695588078899658108649674507312504560742450127574748816587476655177611058755299873167627289697322822698221412575719687361879912426189174692489918073223786609312375767684688654614897602607164609791663195804571270640690973299746786392731249613794411018431594907565741703386709158294119921332705906519190954521533900058102751784526157111625930633865265483168771961805149200203176776991483472147499342466512491760887249101905916465792795869371948269579360303714572252902604209304676745533886432759950139185416764473570575982937091336808365331718913448980538273504535676530605243052616624073171441506471518592607974556571617470346247662101809350912205761680750454011362923094745734016392629883848741411573277388563642986426099730428878192574497968167848766501779043395622133364187869716295216307101910685628257457811600881861610298114542049894143357325618622032344648939657574920576244032014343984136885218881263345250724484836362636328386019856721495375999499563127224793913782287868736281580753260939591108978396847451442303632439991994441837592431527667151745608786767243541580660108849341734298609476461013872530082856204661103158011016803221856688117884873390011273501747112587799745387988203571290621749127738793397811606440440758836276630073829379851298074139319412310569338823275234705910726281877428459255130888554350031295205470179862247288957116453023217165037777887609022843069254319285576353419824294566118564915689049985955502160651747096685947982385665243412386075389720441959602275952715907708793006379027762576805907771119678881746533102393386808607837940345629321276662174738804876620833995254199507513599387020499786251732431187631502756345878023130772463138881461498012658058495624245833276710261296871615294448257370507844373143025166624057357517878993639680927104137447569486389095745312755154511615071592272266244532326839494431982416233195592856120988130792543174288822986628663461718156321548174125490473902999871753433721193584136517580125043112923199172181175196880447732246262375474651140293073539175479217039128467203705827481857393192007253217507491217878530003939471191664226959855454039052932127704108973288518489798551506732120111650846185539480200191864824282540638147252750873849848302992468271788915128950564078683395815487972880237650395163739912531214295906102697445545221578986495290629788127362969448444727813837315284904999255012265108962070240544019009894925137552697390047259407365718073044872566088787195493986189799024886498414629064912701542054205991637799696697733010264228587630550934119390407265171953200179868565740983360471405883656257216876923856158815942455160588204051218101879509268843436364554344895239216110837814267311445397088565138048319853173521933498971419408706489181531774816572294512910917460532396629866367684040510942018963525220750465611289750472338339521123825822459196541348763780242605847880096432606538330833281953579757109595476613397390338539730672985842002467659512085510846490254806429493151939360269232084485355088056317055150410366436530278250114909554973671693241195487751976899199093317801219551937981174870768749377142159101427735986163952799109175238983617902605450604946792102058942070205307448476197571126686348760971895536771454127198902540912472621759057361621602192820878181819559888424167882146106780070307932214816759481098057434333423312312219920608260159519042831960750897832329228962230200159075923131279650445778116306131957383593842873180264513854263107330469289057878238761627764359531698172436056872345096191140322697999144386779959914153406530949314709126367975481948878087432598210996945344125900746719765907358488132382669076230715284837596193307951510963357791001849648661778587593657588389853453833156928490653185255244941611991529479484610139990523215679153809913075725872600166857870172696966274287057322027305526790761189547490325107711673249801988073329540929777740483711727896743112605056382029125787803304922604387550432695755777479299414124959030863396998718828182915714150766670380149538020457427165724302829269984280707249576059128542868706520770575550945212557424340473993661851282095133462218234230537739231889769877842233249409160193730617276733014902598654122397506006669360930596854660194165539424773168182140572791974460577418004543390677028643611253600743222329290935372392229127115022790921639132376649015315397533307947054646714007119404358063613357689715021070083131577570379164786936244994890674756188127015562132773767783724232883549788325592441767010698824354324277843328292499806525605001660096628484315271442509326925047357815056216399086210131363059818975333297917624022327406431798280274801716355598703909321409231994411678482855719383878946773630395946814465538112858261070828356098100768786977652467018158163117276958145972521057920707288035932082147786621400639863306675266970917355507582149167700416365718347012167988349879369853201191054690524354504540183396495443941938522892137804081140687083532156080270503400052696635010514559986631112266828669174606233940284337050828912613379544738471245628352248319676977058314161634976358797200550120893898021714700923630346295397238167443161920088260776423222139382522646193758777656517380649926179782194191185253391730364724473268045650683242110249670044940448806143027118029333251570663417833465363490798729365960351001907371727784616326553258815098845585900453829951088922700168071363134388846380051665603685085952786644279237460038576320087604420185948728239398917664234379630673830719913040875747104446284923048501635852424843823447131879634113775945790178852411698786002570662789435333977044543374545999425286514470185673598548775650203358788738294626690563785603788034523932778693983989406527773846075366070566101547393275596351769212785929248036154183330955478908627713635469746029580280704059712718253856286736424164203235231650793358581565986911715684863257276427499720093419789634350342988610453828169997300972105189768058294542174255786928575617833947678572622468324620803864119326070224817909495358364074744421180897545629563552943302666425537746324724149741292077741265979793741196976642382381543540903336547742505869437718074559382193332062245870680421138853657007983172190063795621635190479260618429636707259334082369747477655744266080620067289084840100543236576996115901479948072685939518466295589432350775434122609005566290508890660030382386663697119271234469289641463794133959108219054804612549733560392697027829954895765054520960899603837055971433071915328032373402006436014521003731065570511353451619060646148461432995611788356769110937391416930357464743876498453756386793918395095718861933419456609118510527333797875138962569228767980482270759498495954761255896289707141732933145636470414704241885101392919428781277742423937874413211698199782143443190251677057037476381479984033958328167201847655344730563390918716342984807501594583096414149320575142798870463698527910989753876638825661719282250392825727307507752991762665897110269783764959910968914949837485138289693462028354821151231896875699642778284072130032690279808191330332767401222847519649419577174377494849071785686945385676456298016180680958134808329386423293752453323982711848711378323652789857256857562451256950638857401304081356258275961550525596539998628616348288240009779991810502724998854363527857516092099693474368589181136335752866711891974831060758423235021439832590111934727925832401516416208800338414127897005335861918820408530959766286031636726802324519110173257603317533063585195188942564330397461848244767101491336771012003273251033220107891099518935481985744873277324089862624293293894298004673586835748066444940288267730634971601652838859721414355618238745717388268291426461855889443075729492841886979014369914813967825499679371691881198282004661973711043790817903606958085474573301093180684621008724326268244191761611924227295693353558129960153387993561298612252929449075724151279157976607409365059869679057158364916654591795439683549380528479239379327444896422692084399484135538719213343636229932528321134720581241561098346902674809210963127677562675114156299023584456275264750095979969350354320510217742871333569152827064691010239331652866114633161751835662930334690960812013183129109929571147710866546497802381458624717815406035410393301839266274701540492748782817001420380158362109930635895611606599345441993729084529559613128873534038972150114083631836270150785277558992419542647845520334757784220490097450502588033324348378601528898821549401655965559325079528375564479791283602124574288122679944210678477431994862645927397369178243658824094335138495031862165924350561147844702659556464352862971855068417468521039405988273552998741696967591174099755187599785962126587943391143961023268665914280363457675586886403459394233289156816817518229576455118552588835498305426591540334268491053999773270103274178625369797789874162337026804527258108105726611961547892478469938779853265899746155594021841307783330532609480163467437093171916582085685647957571058732551303286592302499518084227966560920569853379756491307493509418051487527962721396968131979032433106696862961457106461637606720092937730026933313427245364926306736082637317110853800887349930088646482390427351305643969136469241141264271825941001509627337897053419509473563281607353355743875703766052827846585501526145445923363305625768936232068410066277671079848832338595381768654522441799089757374112412515632238269315180799527437329229073467038060102320637120732684210758816537935134067737431709432207341683212679635073553625305286763050310348226572225807978002732508312866121356693526169876644704614065919214818567019837397641385310396413390644105099313898769806668340616451654749001397844422256404164493344547146189085852990413196052769797919895154685498030163295316509344730056133338481777142473204539735210375734596440977255842710914431434744787209417892965188673536858381026860317583369126752596306029220476265839291482925929459840012032712918908994651043993298330117665765047320260346366953057367987292693639307950343639699977812202721916242420402430955719738598586796906110609140251434694608484826001701971996427755053215020593774839420480383189491383148362662655552698956372580434792268874466018402003853957721214335924248172087614462719853461429163786597815086354838339932071357876728649504361040010540761482569079495851075722089215328592734355258475715541844069631612948923290997700412877091826735507501243050976150526023272381677361633856698118962661465170189508716757316333076095636938200455400995791116849119006183117893146464990942635131525930480985597929106385919557473824876015589585704133521819795720384235764108568326496268564217376351526882843460448330567653669466920607134394079933006801069274406961058068464542937254770811306711548538189629377327156297617820944133990098015236017388581117692308368349941945587077392561952462607351860429588212650504853166773466080217592457063904767541276207077822794676553663024068917845079790322531492234077709863618341738527057572614722437862314686389196077235715891571045035187629850755633943110277330393986908334438456863021414957821595666178709356090448509513246706143923935473903115407193017882958471957907143677076619132398514860045205281927290268594238855677925445389839043636813794254849729805030315844452382100563603701181380871387695734583806226661728637614495224349993478708808349784937522612521193618489209932428305060861795434919839742693838199265802724140984303636160686117600732331105956327408650813034818319975338640655477223660520080024784601201939130453663538574622266962283621500475824942903993861916727784891238362038637776095816482540960028896437061657105607912165637515618950661629622173107223814807489211700812505586376417839911186514072722411900367146334134546529592049942709722246638094231394708750653005220775086018772732325040357360678639957165173304332858625230560890226508619057091167117135245911057796788483282946738705715068872814954072373670594159852856364789509030265402445661212845960853645915798035857297431010847511602685695056623504874640971334806505745219355854153728647681864759841928863933687977099001307580108858573541493244998239216805189308242653175182221124168703848529082725493554497396899413749314710559657978547388003255812204728245628592900350354590731886693979006915334602080748253958116789956406033107384455665302167489005602294033875099086667014789956986965719289485973265229955272204599662377712834411077512271429403001210011412672277275312377868868293262245119787405232237012928063748157673664398789668294243215343096307168137531387973391147667216570338559401169756853737175889438605953057537667332816625057994814669362615366967962348148417253080945340928460806206603315873698080157322847977009103008889304486956670713131201555380681944002344177961792635985300291218468677034428327602493656989926194178801960834139794731005530503448574426821987850176371547544502875060633211416260624001469928191626314768607847416909151144663746546808609210249679038667969362362154573669212801340118845272017584295767052431366003672499204650912825577269511618921064134333222217715341811737216497229631853685875208989820786201657823945580915307786455455255127847517851235965068052441243452564079065412738059573331247577096628081756043812722346572075534229493206110291496557498428922048918721960274190999694175298300648359405877351738733924395684172615795771736264749460263387355941522928416781968154982115846369660467558134427756166041126108312798864561926298912326988631782845126357638324841913146794754023935377355805394117180925843197691877342055146018656034281729734357680947020836079277072224172132367030271015758784438377294823065928840499570767642460374361480768998162820778455352566857547945002678768213565778299201441914814504710501204277144237451776404754104462377164645034445003309948171765902574193459959295646738749046035001427183524397615144388062035965545942930192798378034520292427840242410192841563488795663923641239543363349500523394992090815159772123173230636021375294890937182413542905073654025054962546624848798513894504228114873906817515116832236492971709203371099245457217551036181893920394296829881651927892732865532781328937602610507034408462289874088231189272861111894779017904576838703495630435697556431339413235444455765875127280854556231304351573693299624262779004044035657144552828179639946551525973343246390595149692892118726358496127727745255119282222653084716749591704407184892861423090030497771224477814819253630430412333907669529225147293583501537191606292891186315752386711846408595315419976282832018437977038146331017566296466989682918118405039161770724129217647480941755077324343676572230277494341254646508922735053894866584895652600942526492969150286735899864025430488380264327977447261834902330592108694756998311386424010215425609605380547461651085690225742303483078894552924776777095389916597342893802697909051940877879230725355656399078992851208301048822963949190612191992854951673261437633120494769939698069997471767287403594052401797137257738402374549783933434365262842275023483795581500831669585243308013890398561280039550910097444616868473839495060342276738039431523757970137251614579190598636943747372387748336951306676889955425138441441987766949697851326952443049091930723078595641512996091095182031744742543860229427511505066308357460173496049516350834651336529000995648848017527409784595916367621385755655516056652985516315895498733231300409225374444839690551926382470577740086382521395696995146306483436601535999726566174608609588606250273210652034431606701587975188352502760925313198152464111131199342373802057133948000092786159156239552178734870575884436186040877897708867775305202312013660564156503815330655458129360327959191996333026146579103375610829708921513816242609287685609192216750119058059293673811161590559872542700462698462512972962060698595226270360892158281228343813247229944163968870280800666537368822368790590048041126357878128815680232303837883925543894343128789388963032640049192109793375886297463008367961484207894102280743130362715849894688148249419573106505189589369905930539624846529650336234964119837441723507125095214419258882888709366338814957897762267447130331635114458273347127251421235985751420509423067624063364143823512519494900242517128413950122255460476183386374284670049962151733593324081908683251644574022835974916078141044282671714490040122768382633975700678939358968247973982582870243503176076953124728619341043703004108166606581716245466492616183302328732875728923855590055681302336794352522332799591483365715486369501760812897778459035812392700652885561666912193555868878149858740862155186687719699163598135024703017052156416079977164503530634469405612722790267068150416321800352748450026009578464162277304803601589392830701108898188543184993386543852401689421331352634395989408138119936903675309582756349539147106991249643591366696873307808885998038742164945361418125151107077828560481514656720367067581399125150802190217372230059167278484726366871061323100079934664236377324973557846891337152836814378706820229883030625822500586823726852267431264038866205109086465793582408602333703682620204106383878774190089045799590690039043041274446408020795502272853942185442606884395712637552907199533954738599287263635052215385646776195409243956155162839691092528588782213764979686455733687903006510596411998405578952013574224625795252653740498261069458291177576188564382046981864832773199520754359002592765267856669038564446591589838150463176164792115371120281085776603601019837764074290011976697609309139416963917479167597410511599702231134812982618225813890704748972238714064140559641589799501279836783388400466994749138855406067747869125770192405404317377048281880524779777054488867880102427950920362013849884407379715106557859756887242939343334812749316606939673805941331539157662968123372030623358678482036395325495953008793899831597485354084862270265949822320778932592775909122466400743012245463653861381174199186797275903176746477575404697120159210070099065977869552895030556772897921765065946407916528581152150605716605381240463918381804251575648977250381877800031350587757839291863154542975304770343210195863991007407797412343681477992158912277305462567280158940758178524754476357495423854108066660780570008069036478220070257930683693876742118699660786664784478812857313377838797665421493608542810251819766963191534395788897476312649295506131314791013314616023424137183812325266332468793704680787642240531952151077371222391816403169146665242541276248459779441389891485971204515471212714328881897203663751811365633971304086708782752381571677511414572079306678497867124194198490927694677966447573039710833784576479158553080957742403106433060936720378316653354576771942822369212757852304962556632455898247771453390607818488600064432029048251461948081923412122912367369850737509324408783091832691961308172415115765794932453955004309931375292919702254617675648401701892192119408280407265641810893024881550566671391725993223730754793662297023970426751426055737274776472511114142769130132282168291558587353779931819387448375725085848510763546381964876141749944575661185991013151954002564352845228332753290273486481886401290734100853923829168745124170353700054678603848605591115845727429464448891924651656073848494869555836071165360764356499713398633715975927958861262259417621527029728289046631494843804996743221942113983249725880750176408377648208169757279943757198368886940838205407712209369807494695817174617631146638581683662173599050283656293500488388255227781960551968892418883614115335179208960880924042271251388096299076510478021516299110442081899401046658179290928166387378885027731167758233498122737590903028442001617095181895154558025033744936046468871639923702297304399108525669084794122574145791529742005876872828051383950838915950650637219681738274831634306623950017040062996395230840079998360851473439477055888498488589466192942933096522877050673149962817893512479079543201901876309652365743461573550286121498044667339342410064654488933785598075843102872395184887315950431429127381802943888105538396238874349789501704560861585514234083142309742158746583323710647830805609642252737124994324990831247348124791702841730052126181448833982225273385918454474934560019554166713416298374654182126160282008666648694929735078745335772629505469291381453574996638933037947358693489650983704129111829404571768534264029807241784925793018284826924373396459280803440689104917677070505392223483548051314494466229571498917257529821287030938972266240787506271280239297250510746949467649597599853676654886018868200840009582619719940917945691997788476435457707283382991809436338782051832617148541240763684061989017563884455445754848451074525106399127547820037695526332858087696045863309317612636523652235687512443817821461812968565104817585763043342814232158336029421213068904528602515455839809434442025966144081211396043589461675933219188125222819566317210007503385002717399931245567126212778389797422306062540206672089839660551598668228219002223199759255935166933921825840688072638052787123082184634104225532929794553090705352879465727303612663013848237442431427653650081229287541666185224720772633644160619509534939472246372155156602893753258719076751004566866223627672326113731299685851175622335886764518992051606209063278149156701905751440835814982903080925643967974015323614342096983560486010939317172952129181194390742388318906937293449969005999249274309875690787839966986309412407510645930432389321675480399402272648104007378113263580649906203547329361765799304064575637948083762700944152881723980349584297898726845391854791841420544768603834901552073031642861075545139902276939796521590425922694323324754590328858142541188892605575490859266446696445333411016344305001154458920478659963802227883286926778040498113465271358407301250092972120409416524747612418212915845868755418087441682560648441075132735585590865227896291353773483159182426347321107297135947945611897139694873368441397906875879348745989807327152756121038952025460925235918082803520305572679467727175269405264162654693437877195889529342568179911239963061495783561543878823553580172592683669187804754854246256517730678555090534648876129986589876314457100299964459735789467173052228394799985364585184105199216566199656240151374355145271724884723728772185734347429742146759907655651918495665120546320489586537675610651698119948407290617637432532417522569649677885762531452744751503771422783167222236522517228611826796758247751531426548174219895908130866809638640556404821265713900771203695800872207726030521721598053541215688647238064269813749380800046611846067917230855540629779066236887651768094103574980532093392861072718534992233216715357358242905114686918264035977186560570378327170530503427664609495302145662819387082575215424516574903833147879477422806957222423873008970114278646290958329586880705896603566944976785020305152604585425759470749446083403253560350781237478665331577199965568663436981038703120065006106391421146765271028683614991280894512864373559871097342900471758168879262622333932008271406957205100353896557351246333831426682473791196912498935212241489203289053466941058858818022177865958058932819868944639007967319299879889201855659753390506804382020971721201034615855131661720902096466354447035780319658818867441685645462953245028891110142251468600351280267688235164624540947798691249094298225421432811884150305012658677849573215905878979579616383303334174588879456245006079213666481914010014508682810979087635335953898577232981678239355314801209372611302530059851317046111399751480856619922420581393309999520368181715025596734849036017328480261181874570772015093434195925540065826953965378119212627863739597712175651212860443268768249323213813369861338214084009828233352002587966198475575842454430843967922579612318173269569886618401290399162175626063537526813483383644747121820311043755224816314336894716419315754509038616076613861552089337585477665112375294039612536506647991790874911786694307664522605339164538673271748234866616064705099642128618871762480984742348274504978723675131071055505269880490880679452885475532912748803573690982741096565954996771164249271741194853001069639478640537215171863968796943461638437641884230757184791567555503892373228816160183428808802196488926697501111715012371465297773482180105073302491288572434457918592144344452673256543956271977604604618745133348125293927327148522179714311110450689568242897858216025910397853633955242476717437852880786370571319226793195070831496564754474028646733127191636379857176338016568710512263789224490505983808398286571403988454850993696266846824006500971727122237251604721300985135924821007624949541463825368890115002157590764586148789369605296637903178564853633631957229333407747919448636021271557394878955481082030541711451869520282687099285414660571932925219227657717392903216238632753525584754348078079137612015998488086101616772825674808537945422570005655604156290132234773623044927635216348661576285656327420179821837440816483482880851232813356800103199271308160528720471704709686099828233044119649660207157050097218423045048875768235606444045255667785461818836188775625244220364294797929922725125751473056973905722337831662020831698957802855713016098156152460810800728952254049516414412368418723878615960189804293879314901165822788702852722280840735386101943577880703143046504116533365994417779204734246917358495421832674574230590967850773549616418638249840976539917144125434057798895624420398502218447796130953538856775245740720537640069396150427895445202184562704302580316686153707031986092236455872727593098880333857397850166260865647004436479935023164736587680896447305106897629390525041275748564062946866301915253607882591342204620536747077043472797348907782269634635422345260297597305028913762806033878421234091428117607678581352742372113092236231013499987791600785017669478889901480730572224231494038914008860009217308289409057543214278437104136115554276795231840800200751084249252793617967095171839136005528233368743793989361759855545058771115612233919271458497786696046101659756787768302385879156783562527566929871270251876973775411421687767446569830848885085549397759759545380969335572510719947271539402824657513863598514108771039382730172697176957510709150328188143201306050620015034870172204712641840709298053098933498357202487724024722002599723675195953552339920653846462296435534589826952563628271075591827457426871100532507688083335462569615293784410977227567856161390638271218177932375788627339125626294213401006647537417309185696417131893926464957810078106242478644085853772333263522342199172072218532315551673628256235144350961688901163738331600087531146598673273685164489590153841327481418008965470480064699135838303885426910032211969572720881294716841273386488014953227588849325742973404598003457782110732578450816008710004111108170738858195014499385754318046171733202361015433255757494704306142853588021263992738219144085410915395221847152693832239910278416862955575095208067566109742622093952296643742224036144641445335154640523686514593560577570562322823061729719425216332227777836765965685937469100350711133537775116014114515511782144263305275022388083184212380321193025099639426313060392616217375614539677807941375006133537057188473787835042379866361137925061953052550835067551325057951621440452589865684445731370692208568551229396010491896911357134401709373608945313298885005430149440200872855109064884070920037952619262856789668386725507594626837384073573498868668395193769060612690872948920773930209555873508215567577446754612558828167313552332867687500058854618230101723725743080953811660184472411539703864096722602556411396674804529488248319100855194431241804873533855690693699178326701091429321329124033403859185452513693150292735826508864397024262667815887881782972280754509077850039052998091829669219451179391274193039610151753707391974786103568610920912271317789598875130788356345534848704442658908294653389453443714042607297837439674744118028305688513551641697596598461533313853530411734071105298575309906584995513509682532588540452028457253969796805205414030784576182744198164525630915534059911062274295293386431423559741529133131405901764261023193953833505508313577160519993954764026414888148423551641809936943651914679245557599215406424510116876569761356569016208433702560389243984712982447302039023256132166183482513322589055006593605113128008812663920529965993001800547813960693168303989681526053277177248929504916706965970646399868220162912089964825558128940322280698754780833484905553699912656954610864716183508670793872857174642218582859588572298528860903233253900381118240621090776078079244070165533749172009859342984445835632245577615396305424847486188875977849979759428141717914642613264874852956960096294258727407005751303093784525410370829591301877955007423600723806118453908384868192397603079741863409061826333115340038867880189220980878896339807837775629672024595078875843171959111604304055797339744232096764098244451529874981847606858003115121153549571430026791319038483145592935191803521570956695646529851939790460464969422805402078738684283804481462351080628445498809431512309296655757968796425397721435242810107036674398782139079787607800669554117747224415290929783893650678753639946743241297294779686393874898330307455382375872699553195863851189756643093369843360375382591844258963279178738690484344681743879419204533602409881890219464335745875746813931616076928660467766897559356522688483675819857912170763945500566392710764268636222774070094813090450178981861069462896057064489171967803827541335770927982732022016474070531900198488911495839566050297637344922219864775070179267936425691421622143315218675950047210301662918372364268864210389071087504486637239757165461492097650842633584938205461868783388870294172894869033304067538140446812048062378079587456103985322365999975683959006060801068984073869222927232708010977238444149236737822551108222606023956669064514887296165024370887286867102274166475270288054920466768657208660907707907908287282306639040437075501103569360816937016626274847286730516470242927648297221861917784869719372348434094290461901444895163730515010948124830677776799182028012570435640847463779496271297554876485172756084449341881446686074310872060633079729935397729214816748486127262360125600042831949370362619268493509284193918507865062402293722013896327678615075639429633396278160925446771219190245482531304911865263832521022885395509655277985482184644043167263923763912039638617749034822758460608432224043401830763090953256744407985649284448298562515001091824022956041681350008980287396936009489827388116137949184669510813443297265022803472251477086532363839998551224317102568154890249499425666428759879907578578107952763615893547430413121213707075283899707180246769945497511104848008979436577172178078110023159732936899809380385462744907789584834475081074585653635717101646692762959896326855145811872020037069175373590252161725513464357962559336727518088924918689099983800309072953579286405180979220272216434978687610518699469407631468271054895371118267303566921666052799246189237953464197853209454378260322678627363752914562677379465704228247804024368691348981669647331019459408355328391723818615681891901643216161054869679370543871399120681668881841473808760963947665426440085751735996467037994471677538608585592796823718670615813026498028801193402018165837579726807671216176781611040095902800509440054497368609703626750066636448480945664651981440579226382689607157658131651047274422249996405057202061909599340756818990284428867177969711439665190757998555831355325925257295794344181981398604959811518816382141409087296521436865400063969006800133466887164854447567828509748939641994744064231326764335284371756358692828654464473422203320142908104504425074843205416362018525661642008432653876875528311233290660661027705140811309290671407434976214347053732496033171661665880323575986846445364185650956245997227660756505271660258060208803587281527500411065809298854706300064335317676127531821992242771194892042977537659858478290014893117146822903730830560585727699319075514514002899905075433941155678470518563489270584787319193876500840607304194993899596516081294832757549212851745768124963655546459900080581219129484799367312338153379198145895618411862582096176421436938016214912241843229868132429370274657660374378908922564412903461727799380910401234126801197137020238713436868548742295159966521476869796146461641836762488433817300960180269574388515330431433555291228526126309570312474662781142990989269407681603078088764928990017982565047334938064985840048438210800582385340762277473867019727865228487884093518226475370828714639737498626868042086994568051560177201815169052038280275528980107686739876339555604483775555145286718089786091859704759553148379049105703631104319367016590336812220723363781761111257572735404248348584843318647564619577686792612270370416081879052729898867293341890053402303506528701150022022127417488273074355443870556686726895361870368711087087697705501439734621580586236141860244832410222127960542553661468947852820046347604477332952569908614921772534050697262479874446761843083123885798532735040549716891520298977368667186145443559975097958341639519046212096323455520610021055109949892918580255673339771104071394397931956174217032285166862034609775411653229016263211330807364337301756061492952549600086643903889805226693442561680532363708072889786858621368801211223217526723935067069276723169790355519445957323717195961578410331313437342897052937264750732863693596331050894974352022920935801850309940813799330829897307624411219559804997691051287250608400434708337206933047642389951126457095683354288319334212110864988880298691587360791207180696352987890572790881036926870792611818067232053500812140317077199007459280606594496807377401893559795877940061471968918123849128014949239112835857070821537176298257637543677518179449937606984624795152678449338910429524972697986122537831004792367162975930133157651283600722422308982498637587233724841019301391047662968084876930048614689345238737284379172822869526917233567606073726441093856045207280976511827999611251768510981275974290224507891518683484767276607079376951026513560040401236232010704662166062936761440465822314944867311264532624805879581100412334128808473980622602709369022488384087314692194402599457708497063002572415859120442182648468992338527885202117776597087900133395509708375389233662438175484503087506578601003400776273198336059411093034528066640344384795540415446172535091146511537604595033268128752314739814517678551295718547929266381545541080507260945784640267599994749300214675361648009886303937841777054493596228389048203787554850611644085216497327860849766186664201840869142450395711015201795007282963908827180475090652675550727742495545540006920448935858342397969091575534742024177024656527258810056202463994638084714121322908713386483733788486898629581146023958130647052292884958307072081574702018515368578578389714276393349528502367033989575502523099276772689866203810695756244489690027460343466129468237733721944438152141325016464861881500816303189463269027742732737085522089893308616870078105255082669249386235150859249953718475090124950673124759169315252644354572598852628911853457540701575562845039020412385278217388669747368648329413711040462021517328383584464205061514587948217377257625306136396024610252337097827208518817852103509845573172706654150349416228614680101552028699889085030177492089453415655528509251016003498834308972499625184697773447118586751718543607728201616644817874391499783655316950637406285344090488757595660020120980721079249440525305029335523974681367056979852861616304721925326009199142770589982912230131742980045855633683013151622264070566341131828481472450531385080592724422064553312833474873420616013963398834950857076912950742349659864762168572865134204199202575674242630886796518520793844455522322090041347676382773897057183780907954133419033839225403866709146499959971851295920320992126123743758244076598688739880684011365995810121629002882973726553965236406863991918580024560574737080203480188111500111565325148467661534017098299630570849069311548084629244518245485216381963719980818314410460324716484814799638689758134253241724172812921141451979598437094709803224061584802334769616896265534805249366268201415270193437760503828385351301245633353657182910047547003040410274400260187999675371645821257246320477610403822215998139795502414801637407565714840933128400665224490284038433893267457718068337880477241103909151410953915320044391955084230544804495233089853664675185765729190264547196672236636057106917161026979913765900706025266964499639770396822953132326108647923573488091898466447512750902652091225836849534909782045141806393486223258462838700393264698206634778292874758685229281567875123185060518879982506070339333056669666564592498716290980278615510559028371708300081900499431332263983295662949835362926804378086649920011479186765220839223474541668448072716291702192587256950178111044224188383919409990483733425953897093775369242691365694801713671990125939490260360958935319443335312356767792561495891422948899852959738171146872026828623504042248296652720841862844569238022091853891776973144114170278534985764015257978345539141956343747900184408659629953270690702916183195670394051915810045236952173651877683785974465654001141513923060978706353345828261476123293665106540904078456315776051404726874158316935813783668732761170786277914392567946259294423099155947197470498152211173964326704344757298810301542350250301109256734880483755551269874383996270876012836721838190067629699217079186847583276902524633571565747828424255290003953661502869563294753018439800073052178487992001978431629288178828602007351769239684525602607900708202454574463941973971074870676647095371045292176093841222026477686689534438703135415369248872011583077588256424199911069378591158730171393067612494979884519110475374673263324360909331191335131488142102514206177984945475677003971950375712527313132597169541242039005769314240470052661152629204405122034296253502051457459701707526160489380386864452592940161389651564307351920547667147662664113404150049389844620483139008875095703856761134025278173517869348866563689792994154467650252269233013287222192270469646911079720562420015402498180532897633948527608412062060376156437289154109484327600828001411888723992748233809812421166855703007792260427221476560954864480762166383651781622063809869166975787549307795743956421583588507888262302686879599098083605651745692997057789278065596110226892316201655979015001739064158909570597610661750405780059269508942650922360697348587076543348500664909864656990319520198434922606976927847713512011088854430520021902875095384027088033059035675140944322397470319292772545562846408593531029548263307427962147566885919822297006886060538631763394482829743481536483427018099950432907624231560885507844156137005701745549763693114569440757604875981886629486336874943164702499361518089141143893683396099395523747030871842007382093922911319952019642864304911811806002199496144775321545070107633337294015001777633269556274468102938126267724074239369412258149148226428385206461717110530498961327352057909094909503374651467631789119293030735002262081106263701198833056034765841171305946509006937064238546044328789887188450309340442274560520886260610481078931019810967324974595149845432111294343051799645664795551873727729038010556358407265669664304407728767914950262327575648310566037810823908451172415021750025753722060681301140039470728933481397045668609060536823413589036537794800741886029103940251163320489865372440000246882684760301787368424323949041423641319302562929100013618896542564355013777373742350543473949901554931185678823886769048734402648584570096532464663138870095691857820987044532573748190944691743615225910812513191499371400938755408255129267472897423309845485333449420029588278725202724560421907771988602094987517228506596822378040479906802695728330269546438965854394205626299188318314586171331266934232956273063555985853308751699200307769803971649018912039100274363240224356602988476270244698179123233061194008326558064989995606354485416846332670696481987961885059762870498321258310891900527633450139812081957167328475859739229061166733907457490888236379033831913184192866919596744297795429795088371013283128118302204196925754280211850129933500360265537414778121870486688546470430102573327857779116970578931139056811139993707739361311462962740542801869203979019190501517729637594495633364477890411206508238655182818714055321032843308197410250179214182517262944767697763740287523765134123574245727967246448279010053174525688927508118944323816302739320902250102258311076933194001713058958687900555254222359862486539332705462489714158846591099978358534699977506151865069682183962240840498694891626508559928313436894123418710703319713603788403358902068064068623682178005013113823997879599102251983377303146417458078442152595465439847796371891991555392844823639859609354419295830122112574412091093651055968354234578008948184935036791851412038292571614617742823267643610541800212208488120690562625676156611205764920730256511783266857742722543061726285585075329572547193835641231613893077003510272692890538417787896265531928583807282541156338714143468905462988991092339291943309270292677634313911232726171884076816556772072026899952571140564703149808766007936463576708074378891002119218089640189358808329552940615674753610888955167736859511874720467120704809073426169306792981080324861230258877438468184363136505353241579242903032200225456680638347664370761414607491719552063380470077613713338928392307580930937355116729834868407742498378686490113500118063651127624149122894053701819505234773375740833958708504437581414124925293611675584614306763637462468107301206491861754154268445876986329586063848104049138525108809321642395885217837920859711021991552832960156578411892406133941026260149612664317132084306829512307744226460634957546774085664933227351054177939423598384390876395710984350791008899236828796004411785359994067383159969010847008036073620173515982813051305531624435023041763528197337557661355494696847527832054727884547077085754957452566854058117159923418431958677493816423393580054977071076849059316740191495738384702359878509532522633283119736018560289084037462367897890150771788276130670714485210905120625949632064967431138323885651757564960046293705369164196829228276377185903821258129730607215881997925019837955510642049834874009073494318633314539736686027124830022042152681458607552000514559569116541740132430030791900330519497224455788623641348806996947164386404206582298198866086025193547645466993090587529302249528938610205796782364959379508845526918498160524550368084735551424368450089197667694851393245872224307035049573253435335002203014827720323632703610701906220632866135410162597942870797848678159733794043937311142617879775675564871066936403839412925788560659958516850821547812682377053495415565294705234946307814810727258681916679106837267995618112202886020511911068157294740375808456009765744445952836680428939468783814248301577220728583818763827363683257274073688767842193153203700217584837820681588305731174475630355928049953303763136231081656922890260512109440877606682606120160484708026260020416436414457260384533941639901670135808532369769608052256576331769314928712227438219521586308502810252353488989859550349953022190633772602879173592777371832295880231274841462595534669423233949631087200535342030662066687028802060352553046394998073990794134698343093494441203314098626658933676401355463425710272473273782113935301736587197443731048787659083851646762366705728552881017684538871074410381893954356589587126074927914775691880358270221915958393724585474307261446833403799496016160232054154040200476942310132114344840578938600776168779180397597804940677092763520303891646698420477285967016299854094214800721721697141820155153163819429080085531893647809013325508822702748765149495474266690783108074091983355655328847290918658731075575311236084001874117764200705551155728847789716721046571695274388967353121290590170046337127911912670176613905811256465858210095688620972620722384602072084087656120610505695343728447469534270620990804164477590771664313593824002530154823376282923051588461840724027609286054013103742575540828576018904629533149428651607248121431435838460790665738140839738563827172619711998876143839870444456119321836546451521704669704059335491735304508855600543229191581963454024191924592008579275012380715260344307149593432703844028867715758283855011474807012383423626489350500473295396695183278954141194007231403358126650845351539891235598251006201743345322005626713992565050264940784084785981885785205248118875744373885653714654438103626990415639725120459624244285787120971519417997895095705403067939028563322839137181966729771881199731041170649652627815890279783906820971271320168998538615872204079728329944942143634354437052004793804798931465646186597735754182704514477942030454423668637971223179354830217463431007444196222972980152548516987334248302244107131460814725259486306790993919985022486236719529015447318265151470357784779901049250643351939893558330124876420102879796684420392412362742277623313417256618702596599560259173988022931846907792503493606528352644835745331766787899349915375217877773660679364225428634469872735374434086098622400731596584069577755313277846534393962351001609613742585779608657672359254497261134001239082018884627188153849351134308677609644723880450194793353907661504449007300305078447296275732908406997382540215483375558147610699188377528652279312243030659519756310103806085121584202715891734801306764798299226809535807393802566815414048285717543394138409138569729125990482179380383042083087932760878750450717633374998618328648625027734602135222940278531385035442082230212933777731909745969158335526391787912564356702914658388332824016288266440841749789118379440971812590694218952316650871595510796378555322057689906311473976170388141193205595468728075313609809058952758419000353353610119336022514137263159490076809236109059645251244887115493741215160039551302892425976926128111191203839065747766709106621481635390164015116220415806908329438593981268855439486447896193037629743488591439484941434850902722090114225027761923024738659455834039866840192344060937646776354163359407139411526066601068003979362269639536032603095069112490077625272919805397561486685413675256199539136457660713506372905981900716311795876347049593575200869702707683547012012449836065057859862971566588280636678654287196353856613787468446043346325917979417781684791693285549377805750084449503828749038402350593046278581717882224518538874436998344342897304160293837080607371422865397635835610786609450474688077227908721904653303943242475085547807159827333234441107304411028677206864810702228445631213324682346541673547606989971603703221691931554700615316148228161418901844502120113606265579134143249665523590054557476697925435365650761221014164155797673799505681141505302185881147752655444513356248758263904113184542171535647566260066124539512250518467454801110416777302009148181245937372200972598376842260128372874326666297739410669709720325473494401241991254651971024337625510978453969175294126324107667747618686963524107817669224504391566755532483555111598924342506016565385100723843910708351497175638637993893440908598009404114061899241329022446882226069736090299690330885660972914335011609871392205913901320280687410273558265725505885011215202863243915900336127281662872101252401925786613302755225593481809351665696511585318823643721781798426776781714320774107385933144889651233668061779676831066167810175975527875311838166029341828893876664156029947014531460912197739418642396829023501385166613154470495038170483998496317055676583973175408207929799999367702201823847210909662983295086490386323643888283794928590955233445660123958316103586433147372935517329937088803323389517938369840453787964741749486247375471324793484734123731955100229736020445274731746863446327594816541255107858302966555657124286351491030025832036200487329928428861794984341782018306450060257587165722051196562153535066512918375829481348662437741248817371889943903726908700580379084759091739636101926947402071623562898876017936786438967104544582039644318684286978515182591377106645787454681659242291162778368036724774289850432677917966540107799985201798315578052082927347283269989078404950575904962353723561867890492632536585383589841482113191028484289148908487588605375160800428079564747478548373085835331470996369478004543979313000200782937598431117466366666976409534803885600064011621190082490806838138370718436187010163851086232377207616811269663565055912036897365029726081649256634796492643590926249311429765763359436546215765065908524174687253729857934520986558806666484189457871980118217821350865073553560208429138075899932921459712707592232661327199186302038531175535722512498316438954346273453693641778924960700847758986717923696340617765106426377293433382110505285420421871299143422487532729526500117841984018368744072670830778796293796373237167496682964537204609426232476304402975152403806486733870077695075538925217806612157190430931291716388830971368735151991860863251179156015101480626302048337543109808887889408481880338760415813977650623199280793838846997654657837022621366339986110633841194093470835383673830803317667945179030594283141848284946477819564673362313218579222011443287045881550418969501763767686515910890265537403382003553740179526745557048896297598452348182124723219490048907071794879229206385811032937501361690374443037551368520588898292139372502651321995166268298943550562922403267485035552651013983123511663129586625391726640179218612495385206948535530693809879619536484463180024908119301703310691672151952294094662068716137146722311577013598646907302760016492687355957186273158803608297970882539900800152611781290587108342028648954574304293912513724817106794073178406442274148701464650572267732060110043154672158883793823149917676839119463063482067504301615158569009872804930039260970882432433709511219572888176961372302445490428848592310791848885409291605885851823758029167266200986545657053411679427956381309139637745564869016707421617341748801814310497328977487576025733713063412672547825487701378249457592558241955631602085835664210112894033925009862265773640439886073746938229079293596109154845985342148671101777930790470439460131926679432362157677269513621800938349259284036788864877196847668222242949196840793825479012705539832130105188567323721755960468130956382355460218809946563942521923046948295046602919046380692462747413920532664145076828564743240176275187101859416464023093390781745173840724416339005690344410905899052139675818646970987038089843713844342132814719337095046656945335065817394351607577235447689282223559788049576471166512967583587423245638310377215830405608075464102708108272644193484606111240320709744671174321671202291316748432604404386328947291152436037369770646154353672745153508455617137472851120031651324899285666562118235816683845571986354118931211486316136653704713860583808076447047765082702977387912598386689300076207089904467018534849718679253987588294592718887364058449383733695719170466858662887050634208704531530988865381005192998936691185759000745280617102739127145090123488729257085962703638549382797116722624233080695654934642902498271201750140887573171269665747779263652057620068278802332003787215266687267423449532271857821812496928126920974260858487680154082376448259438170390494891929716073661982908906014803784265936162094632272256749602159198394164512479944077496043751323751083674204821498455525143013447609139159386503227590165258038183474034023383261791273533386344629147844301872514722466236921940868370171765523679846789559177198438009672731232903250316162846122447461802495738815548263005102100161786699209201192893007091085057643159577033144629396413026044323864939168982071456162976962661632076100620255196392038635745118506427135500465674629041144831973014108420083528952880360388232864007638827233431967092472709723692484204951783482760225603509841537738034070410362156987911644514568820113281669035533777807942609702150189562255956023046095640761771566246261653536173169028427572941902659570727580135061512064462544974322581451552900927694809593378192175658101913428652221263065244787122686602842829678313566380009024900695191512999651011378553792716066890756249760451135287949660273196061290487734356943780891394282491609487757356719077425011786627238476264552665097878911888686788256425629347520454587395923243691430495085144683166619902811706986395920990493381328939705842988963154292404578067822689272871533917223408477251193449996904582604069506956354286945811961531776689539150138616743913070640730687203306552911218958617695095389135792407580284019366305928099194203510784653984169533744627359536751079125504645621592622037986634309739567704645212248265881632463192257990672362189764384543135939843765274637115367167138676292091523924958483281426454657302480226993851338881619171388881901026338538745913138139173666383436528039515328875454809491419734348710246400898999383987888115373496389260440010351877532242900051465597815678814366197387195568937100443987851294550749448672622403657857266634509365860237170824463585643940269497140563847841478275896367971895159663501556326935152931134433455175160513720379433555383868731363589413284772857835680212443033136376869032272637131545070859846697284123813705797550873514245218191485880676846690547543502489428136974901250741108967397251136525776263925907290990213856711068128138281039279325487057917246511060418359476070615567656221281454658530923000012421694452502017874850004145657929397941422630350409623684652653555531778734707951405872526401335468437041244455485310311435654908951507028893778578340629385501576218997113547464251338175646452140568127222907367904009911416766823707087531424230901262547339800396854953049044174440981402639365072727067210953150322045601526237486672476044773661147649682526457736876210087645845392805329292119383421067258982903676984697447916884688429008335373842007075039927280919327975029221146999676358449243612922717916902209700258984514223443745621079557878273478123065677199589803683631426552398636007817265608982635254230721877978278026047638427837613890232730087929293978321150345265626655170989955473968763027399555035941811719809665865677109943285329237577873580410991958345145298516181617748169949215855065259159720207010926959401397166668169829926139566543375095985185377913316434011807406305620665079040522678807288396827424532257501279655408254253868785856413446292172535697146949886766373639792838818385897950548234862332868548765969550205083713063704161799101859357297167721539384576871749801453863488394552568095105618864222056948345406665527157977681136168770623081659861507639177622047333018090719877825519119165475811020181624115771533406589728781931355472210900192304711692490371545191777034390944544901598013921490057621637368687662456723142094400747168620910976585406905717356577823205540320714423266285233571770515715283814965421395531947466741193991422621127866429709370251825547219020677868572120833703671180937804590165972080291999291147386139786881424330112586370412555000972999460759064676848354753765492214389676609769489249176269877511340180662470542472998452801951838076260703111645530840292847600768558735436017786359103664628081517661962195220293588681968357651637826898958368074621275649518308766388225259654769484275224542916124966970342009065846499189230701191375967290215012631906230441549290180351530124125244588022966259990105770225621215059354365301600468207482850852969424870282984842697471094214922234073694466801503287900020578179424250142490979435646884437103797556107801104791922380219065006892848676350569029173615297223667671747546648168160778406913180800829949666595739847380474820421730980177731695162145874855660608706432184566087795569595112728262284084592492989739582309567074723424665000442282631021091866917867864224813610871582113151874385387257276773411530025165176045132697794726484092422315446245661596987413710036002309197253839077559147237799547410315883842809254802368766275353852489718396476287873514136980201716046562473510906520192157002519401715532449497902641422263774402571091708881473878877514594716630241030336900835152882924982624905993120111438456368068250785281747987272175143176764247429606982195057514236952100189465395800693516529976105877868376511202623697519929952211218954354018099401622123299062230899394856433592080553800819839050081710051777107884230888708099821929536784668698537404386607321750046350163547546952642320098390761166955813136565868533092580971267099751951985469559899601344388726690387463684290398242304130589237806664668889692833226436584110034735471410613547090101705844947033667732744042459356871326688110086599894603843980457139927711872038688840659652712874182985644585047224586066433890279851143611520591060085808542402529892277982584646508255016017807628955385561192940939636068666047405228725142327033544208657318877225636958153527278781206709743809842753043445112918837966899347782790258594626129243791349355826018947028271697929446210305439881536802847428441091264603452136080286157915639411100050442825130174097744457829055992090491524897367187998777000621439389992601954099252906832332010776194452941372054511197711000652934491681154955865263825724820025869387403762406818629290974155397721903600997788774005971970886472534943242695445739083862676732384960895392697776582298425403042617138813454470231864469507842705097534720290622396561071845798219815165742324728246378217958848406444076749476812427410727507444928623670057165841370783215295017946063786888858550421782574151765284541566138672349125302173404935239877125536409048435715537978687481085193556378899548313404073522871361149914474793717270138706954543345138806869127717981995466388184728014338293984344898657073063232127160420760982167921201201911715596052046362399029308958041727326791990263900911319824997384440529103256794759702077831821042536306811024378798738116035543362037212842202565798314505098310739483965542785378889237658576885661566278907604293242735513827766488545016219632440658196673086332965584232580077318658632655696862899254244240179052576476463938013671442275319117970431674112524603062660285760415119373942478733144163442240030154347971971080743170531581022154857194280483307723999867313258550705236722071306473708118576566950865655244395805135029431088875348421252503551613018677581746422479026569629672292713795637682637667303836316105747754588189883222435667941306134928946093660330201701648838979251646409071687578496323447355958362401566881203898145653536532417660141660252592306608036999881038268927817620364643988151756394048885054643424678310635033315376114176267000211670044107254132896606221563137820129037712797846360735087318091860932588674717022581179956555427085478282186001231758113983093646008919697940888005185166811100739837597181224192104755153722604637357322912422576696260600151220230342206328771049068097871313270229319277477285691492222252589280783334298460880376866954849444860766666349840315590178820817765291922289544050814686808462338126650997092459760385261303885628735674852171756539372671577784449616388629159301637662787449789511677140024354784762658787858204545603131085677686967514054628042035021471812373879664079946746730780685349795519956123052308024404010101529108545029708659519247725150536778930543189368790872072329545848215434271917710555848679427977450066100359485689794342260206803831197653726308550109121811803499439972503674126418814401985844443359381742892836795493693697194187025495207169443831188659734014307007366438429312620150210728207708667855527271323661467891324660752013174501027211517486426070562736654997078874142486990593589691384064277806180388241865618373174849089167921047314893198226319775138651479302521442282513019880404301040174909357800104382777505104984799752919209775544547366391635884567842618321434668354088976385737708317620121251116586111895918922305677710192283078613577582014267048971385729378094190124692770099023931167497546283452756171844193420629913607361386785944340317476574209170043735147817698992854707613804476549074572657756903107956379926167949629295563686524314019431814400778719656833913987829655569113365677415799326313238210695632302358503639613923954501757446299908451110781997242965363225979734492391627558809279058781798149660458600980057192631328285910631708258582959213044176823367559326208388448442446692325606676808494552444795991930421935718909027659475109376699290091358236071309882682268855056512812492231499112589419234126425174061314328395967177536694720794253433625851812537144161259844917692825073238979808365642013052493700301107474678537384876594565458690871639288585262024613196142621299128248785075143231864752247251255204354290219254032877648992030808448576585755225405860875133695459323820032235340468976847968845813090087550770826725963921395596432899455432844889097251293907809061479078499860126406355641375492039494330877710160267645902890078753331030031159427564584317862457306605425173970035449863500864689068436747527822281432074524882858857220902921703360282389784735272193436611151764450349155842625124951951727195615253470614395495345729186121004066916796601040321363465210556374282673202998513651215821432646130170903177550047218774549237355122770342745059333571702713847718345916534466650683442917336313418583584528177241970000310290383182804898119365846589531515597702485171642039502042094786009331459079485303885975885534177694499685494088097156564093240980569335491079925532366744242001613549742131073751304320094633789852502414555836222905475813251185448070755395786289770556362873190911253517204713071900560182511212604874651796078075408273189688012227543622262157945621973662343792745304621269906165010712227749898155192858956253146769966350807797313690802098502153570928304028721840694996625236201881688799788254945823845972692567915093534976591120366195273957840432031198171542156652454064611242651133915516060071866416528539905227314917079344835714001586159325979930184071127295373959359578673059632274277180982251146260500969911720508233850745382736126735514889341372629402542118052222796931246699212885901010376037178392612052318926665438390537990604096131590502477900880749115422718214895831039512703866494524674528069858345806674523114904061621899139762906582147795738004312719316904460033293162478536389891438788997854115178181895099034152938358038867056380997594576108435278794524846448538903608750540851877719387300169693171571768867488991869299071132127612337879445438299688101970284905730689310821560285231020646999001735977749908042099176917136175316008521956388802993166116626067423297854280600242798128814332676025302357142858467010995573082321839443345564743193809370266760842842243620097602549049553150847339272598122820863698332475908186068485568937084361071765414612337101050187868377310848899150241414247652678002868368482960385310355682124185629320491096205431104746286980681133958555966595183254489021820058262124264731587955357972857966242778751517046748958912281642549849127188421696716331315751114152028406906416369403941193118649936924701555591473679344659434777654014466442667908741428958842028804788623363871460489436552943276320761449484247586657366958819337739394480241230132789591493595239292860088478643389798316600175095261835405966371564172038519373092632369104895910513868132962804033167851354146067375456506784659249455964968986960935924676437821827113802372999912047247002132483060031731380485724366594472940235808790556404512845589863248899642383976668311750700167112113200708734832286312960067017780102252784763060200264356975322979026793434542179091765278248578249852588682145827553888673114216391431624701715600413851246908543399044953272820370394232358890266737731853336159104698476787479940334779825970450171169403658718954199379944198996398420175036740743923550817239828229042962525379739798279502996986432702741350479385282091572207783639983242631419699489034514215928117035517930819410025285162481561483671856105424115285332282516608046381746273813694957465724896721081708600966689269322063817783163004037423539349678892590571417391001034683759725210010152105037785219696121887707091070934682636068780986922634028612611002640043764345833779498417012631214620450193246465503573253576297951850303848424881142021278816841607887150039888066593216653180493716259211168785381639873565625852329007325475884353251404041640854082075681219830982029486761704659769750527249518832181271267320373513211453772218543735893339645148449606972109799822244525359100523183734529313404756420060823818452074637629310385512678383545265932661594045622453526357948034750608946122519961646447828833625201586821901144123144461995333289025799695676251593813970324386515459166749691505058203636479666356484121713168890612823019507587552168974380934747903643976135725519575307375055652034267806013446037743519593092525262350086206382594871059147533490398173128820605137514774466760182404275071877010660757641964772107888259289984387445106580896082643453942450634091658022253720913940938450460772677642462491996293678822260513451854007785666346186054272874108143059096229672046734326621847974484747547532748333338065651586320836298207597895424755783524150248458979076346265682461751626980896298259033251831013297421942798195561493362506303736990747341535322255640263678506788130845647549029223079569928815250911254609197324819378485474097706676474082011139614747300509914110596490031723490798689099414898876531943317670523221656339328545516400366932789456955315593066188128655200771109823528906395932533666946681826752944696332155709127116092477239361923961961933510981689886229600591490769541306147656766246849516994369202600006649592058720197449347184962455028172451484881485921201245893013135498341202084792602389049216694086549669790466148888773979699332666517039927715533715570670230160782343160389334205464809334536219103153294048444384508082521600921791683993878529407406856936825771755815200481651136401456756452084721004202738892248567107771616856535333959139258347757035368829149895390182674926007187836933460587815813952305558515739266134861715836360789452560529456378359694033642429921001620122457559189276651303811446773326705222447828260110707464721642740467065373329987704519147743571103016847589788060679305860642359311159711833333008853652377118552251021341274434395539809126068603998673003030153442418966986840638482621016025214723297069271577545051306715957501572629661735158566803258538099377456418263255048284278358675796674081179243017233163190653048674989661170902117076126395913488083616076965220007207912254246737319553977402622383154400343725881427749792905308767871489828188401070316060650706639144136296050883995990142003049378124085644390653531958139962843457961901737969592116841333462369136147677168062459233311319321157746199016822980343442596102688348227528481276709042052193634527953319502289619108145345258394444843213683417653304775540868561203498638032714392231531353179470301544579327821650129574087284734721822919554210076723227843799624134502239020894193853070323255713546375452208037233051463386020459123194778913782414533491542280179622737425951809103135041404747000058363544105831883243369851184591009748455166945442610266702760253025513796800862549636539574421163296656437233413427464989496306719424658233775157059842481263405486479937328755221499800741248461993972638141744436971460720610833300033324030841918300141889231803372630833356875490366095970063241614640566367818385270207119320087432066739695665550027726652427200764166336669360915143591804868288274786474512947411225924314341879524869076046600734938552183567985000681057438904182482646169587247740946687859372256251080813967926726333855480881592918378581220857713564155302722842375601170607021290261309410146773873283585267322146217964010011382760055657806065476168796043408990977026048205235269761683127846778794017125384084387712089699784420460108290463301349642618371036982563248432066653661629424003138691547666588658537547994731586641741563121592297926193302373372049289239660516088232835324848737219770543699983370451851651427105881268952733890948819898904349147747358688254447387991191597898254475936228477042947530646322104876468839778502966884832521352115851758305473256110547533700106406313909342418361645821640740102454578651583041799353094216931490063751220438209270715473686143999185342812480795160113705826275698016377158888437224931006283046524906377838620037151728036191615169937667783250383093229665344628678057115617963269682806194962261257597236803025433069926620672966045967529783494753182579706932473678202407216309005726786484159888098871831402421637225330010515061875955066758369315547372939982546671956300573072785697873405167754518793036074044189805260424069999317914861660921403719948330680751258546528991240734482355079764359274011960050752229714838758074342926154896838566012334993298989393392446487508600554625844786472889955599148357556270060187714642922514209421084149515966606984710970825541316476648224215515949689011248259817013852804596305954965273370049976508131173227929571978688469646484278016174142865070351438071567520595503273442869849841417859303169044937965945070635653306139710474503784092531437757972934795308988073018976837426381612531409328153222392685320755514577032679701543948632017229038863510888660488451323381094173715454743473248829366050619630356239194897567875379810606401249488522763489994925561607784011145912717878879827585385823679335778871416700826117400803474446987576153389975309361675193939047784498925602104572547177601258760345861197149308820240547839872546490839493069346016825720126684989906517562143750113127632549920170382705362292098591580908538789031426854734940014448484908544940546109775538561535972752117754370049546845031893147520900437854513595767372877652309927322886672276955228281308172551609122235366193411848568967645178999321176568423784168189855544700000105345456164119020981734146618689715014706940861066494980759170653881250646940490392083119867677833713353848515535352354542242915443052000658823693802716574677435894746839740510296669509949688615609447152661910695436822105819097217225521586891177065273113311441255584648516312670401679709613690624511201950448253593992054566940238576576820946201332993569216124761618023891080714584269832918609909712041475298660551274028786868001665150295192906003073063848365696864445889104825621317888149212134104307422115097785695125683986266469173098412874863737486132056974390220065468123976976101467488184992623834276144146821640996989545675627713041484469083961067647566384171270801930382198180009123274197256153627912070763814264432356711576088553443816919024867640833840248016027274375526634515399820276183119374405189033648457500298868082480030247961911140879874526539664919795364566280332211769554632255807109556583625328002229899074359257626625672260071791487007090580549474606731730564917822665856307170795104221059233416627011755424052743114440754886607449819215000755992069648336183690792866125396558760628495288737266292859334569732063439280985057730933030142240788831275621065032743485846509730864353205777286501957396035608771005930101544936845570170717707154126953893700022511736687589754446528022762240708988288493382837373180269551952853962219438245108182329164340425347847291866535804076980607345408214461550254202393320589693249575960021397761776686104508962040113195891740731118414352535986729371466062816532219586347241227972081043033627113716712244832184823684708326592778445334396203166523817153281833031829798240454751713198321904531719761555704077495354027449590679957824670479573006245148923951110083765954283430068003748648100984312974201990394973884470229837594765704178688133399410258902709917913149106005164975294371817547945958425287452283325438942525550355962897942431733677943556588142674008644976152198719128256657411134339435506526243701877180135182824156332112066355196627646550885687009713350298012962165599247898033367067249473292194408927088501757373976303755495474700936914700378923475772316503253348324261749988650014079078423863968370977085313253292687908184704356037347506458785018287290798207366052083527624255790489261591237236727825045590497807172540584949602511747698509339798397043548739480134514557832610482358977891563373707810217213550587949731073531264083316440839626741486146230960262406037197761846431303781570549698105427110734707946358249279252017975069493108346619907553905579438081354607256157246615460749614518027008526671377461030484792516745437479845263233884510676963526690975733110954042593686756408014110003380987073630752182534688081634626632698674375213940166341766096010544490718370216857422753846879711829501353108976478183530418930570627938681429859312630373436422782879479163928435424522362811336421186499986039925229096989575978466261389517722549227839199787973862173094441972569430304394299734996357131015352896239193663970200780779312000020928793211186381703902604446575778177659950927923419471240479367608419853337141294630259050112722825402202288639317681172439421911736136286621077907893611791212656570637495668671279582218774917154207865044180266085732172864049106706295400707537584211013713024758069540824777959759034127546290523248139330290680278832341640305545705182678387891629563189307806106164861412824140322076667797182591989620457411489917995737266276204671279804550513513205417802035443829995842273763243200318179338440583523945243952154144077931457935408316837540089007633945011586065383472990915288736408681323039671006383678145842547390774224694672696465921738406995829358024871591283628260143565210158345623007384022711752017695158233956686246323964682861062196363094309153741067469310842305497735387490248175728261554998302271779265333030769025982418878996631667086598643950283292183113371522075315647680529774116480694333877351073597561060677750626878067978568603692272595868629655471365599350486683847065704665800216748395627928832611171073812820252258172956731661291475959159367676713270547655001539855917623128211657403741689872929876120311853265075747672550119273524966635584157620652433081107372333904725942834149180355261897079096344078455999568721047750575845869481764372492180801460667766723577422981147626003846418909883113394173516488235516129170309454447189282663807594588457792929748298832212880581945632734123775124533735531779799988923460212515095159825088479945161998720299952516566931009246382524991901450655646921343649232077821530962544429849194056894200406252279027254786183354511794591210247309331215085785010174036734618001450749934719898778579585675064185199604567966860300388606764251185879110810403543954867379400551799174643463400759729414245428734866679547203186437350783338454831460341842613741022537219688352608634535816668827738793698911961998696348063712530025011917813382853668212708036494055573821897832127409592713569087502886015140382212069390290394973658898397279216209703566018970295380964011668015689168587874516306589008875596951490117633469734120585208989589519259994121956780476857233815434449920526201885581311132492660705522375342970328879254879170876450083629532398112007152155764477096259447143104645377655799838792154703672220321805326567422867066999919815628224386748450909817296072201220027011252114793697153434869409598460454539287192786846034553405966178450719774628903517760930981446926008533119405005979320309638131798474567423895924645751872938541946355622881810952511521327461161824034511339309715436946879697182819636317349708492641844801656539008406694151147000244782007860304214096890757794759115500050500591944823293562966619499566648923185886563716964503475779372998871541576421057074568173731214054407222932782973047086498247168179019080071733350784175069890765253825151890277953256717450528670217392535552096649300122987109849188062431319291228787618816208419712498322510370640837439835462623136468102249200205652050113283634143498869460808349607584233142142044529404384185549997066284696447393656210667222076419949989805546662219080327018774877172992943521757019837179972669286764718015906889307321241847545219686849921800464895077478008397258020788384917288876358420383164189054599800108920545868961882510501916345178743802379087060300643140136441676226179277025465902925745839166576245968891942340275453390651284155293187692720196707365827080718302886319808897368045814921176400128146663752348167658523749573767161253092114614673732886200023634058039541539854033510248363434953027571991641292448653883864224121833030599264587539344544805397741662176133797634742781359953239531569407887815727241612717020108537195928717602911454697034412607647684916051167168440986856376822695372406344148641740261163783686618252735748438021160840551567065940921685278250832781947022498177624724946007095292844885661982963796946718139032264032191533248351820987867478792324872094057857878648680958222050876444839234546431369737451087613144353561958699870746410020109776340450710543644305123450882402987499763263266788073765734376763390815950237155109038468779376902539602730037278004204903618734018945137256440559768985712788423937044216826729516250815776038041407660859905635582533897351007101474810991308930603105253497353429775248622004494383423049858888402226729973305060157425036924383037134942134573287490301210265806017586283917497938967157785423647869731826705149630783942403038532813490522330642192860495559517727083126691751920021716061640764303304288117058453811890345971715019055722387597652683534449411668053970367429974770474885116981201017648382030714139469863681824556995942407169029674443469488748058275863361008392486114136843763486367773626764297952205300798386283157709796366589588860486693131079128348873663038931492192594860313372363509944740771046963013590779255616167405548451798460820049159925436672033201473146441837580061179246125664643279034717356449875813441735686525534638346227007918007302354998226155426131056285904419996966268871407548200305906627813426992386354444840228193055565030339457731434082760440552880362471558994284700228526621888326399131986062933968403315818578833728673975115556618234541030202055125805286574651732410672611271031568141513708796131438631490402556394263283841978623332242686341366005888332827241723190425658516712082602820842060553319750594525254267076312699673022963199518774584084615437689404190296485244902070478806199633661309879141420294398571839288719790907590342396234474145819792122726225458916026218694378553948664591499431312313740391110675506745241983390955478098423895543297669406758834195833181934468878392816896997074537491427672797316096702026820296239549507823350681868221099421615438768293602689846389253932523172836450079073165936648755039371148270625566959506411643680063388627475226543609376729073681303448725133842117076382536311837740651083791885043779284210785040575356562723930732759214613500180037215150401694723965129740860617327661655750721599104906148781550013717452279645688143080806736181596685331360175582074595945545703761264187032972139277027368856857651713195407457871924408824091406127709915175594771461484516833216237651869046742397269693034383079364765075312699205903701512737490310371548617376370343409707379300081007633737046441027555102167691499446882909932693096029635462490084900596947967770640963078794887725777572327049980340758617222732573930983095860850496451811671768947202361938586211023473252834026214007780584968069574111135756271879748362595339074777780755450278693465113767306811939408706048134986976369747087542685491053362745911369855574154782111147155085011397781257634196507033878597489938055911831909821548664928485598099998454113842421935667605650725488373944937193343042830724680357127900032645354772018112750176029886950353631275998547018540793134552003327203314861129814325044566289083632144466186041113329626737299475962572748467700991662791255276362448597307365189930467702254697890270235975775783710808787097544672823588800803884153752873377863892515170891567456723682577502623885754878819450537413362858922438990394291185244682176392547140800223481114845625142744025323209040646713161401844365851651132816435982676239407038820174424306126116898712996024663653993172000546099470763290504831823007468139571009325519250888751411417827215583487345770399256806913152797954471980598994522108543324449435832318506707028563628084247522464280933940890601776781754194814695910505165671284903839657933656577773215410682024379273235803464863118005814271407003508250922135835625777439924039847145284091677526225354066501440461045056659204827578158512400635505205202881754236489879282992359481851395770935893942018155290405818846890911925111858123076445432025343217930606240654459517519934750428018213446058751151920387345212161769946293769475218617974115829687664611946668238902694874470774654311844829185077854687546218206329825069631473357706719651243641094956959279379596702628852604466057746761146992223903579427906320762058010575971393187262439999921965022829349916142272661604848131301357086237112990370149617088164141818693390789675032486893203023708962575157584194018190490001860007961669381892487318042161632041431825707175929155102254498232734985716571052759770872240108006864140216109886304603152887240029208425678973650924784652236942509936657258634562607852898128598380835057322786866070572691362803866430892028103221957900873120862006795575015178607326957945117400951232063265633048468652171831961072835454976266878291985521991500005705146491783284079183173933215348893963779923059399631116190491011268206160381966662129494616140296156459553008608083494062976011924936317404871379570782396454236839057655350289475408573663229765303431426626572503829920365912913664403060248465873445055298489720879179115408639492172772558300945518395339837069623717550735282538500504236181332452977826418892088036349559981008705561373241125362123339494257441890538129691135025703388062518572298277181490475761012061463559730235054637552768286058920371627535980158981824386347488192363756479501982181296432595418442414689819850186353797881699489584310889679958124473401489141136982200350717156208280663718354397722693150842363968091691262423251347511324403438867784020033067875178313461471067982100447695177475228807019173354731196576580031913432209444945163538196485496000711747518511006963993174943579569063982987801053265655528637003360163595266204265394917907345912985967063777195397263672990117299596774462172746666716771044199175500357831733849482317549352069795836969489315114145807386572668907512166604449968450951428007208827140769384822433132624196236660235479916663820568305632422408478076904728885693902383988961431179521852547311523792853791770833468560879238219410267119578403496298391513245551031543574666503549248002547818906422435913708509179647791652992300007582645250541672736292143814466765304583401148421427402462569739073223174088057977604874493279381900900718081090851632266275029615435408864712471482207277554420845555975390937728044405486534051850668490541381102006109112532539026769930876100586489534976516119824741149779181612875409871357443705642385542248352880052932919042583874919208059907484786435919144268826737876517539525172041490726158526754809437198602004832220564143854373975519142860225031083484828066041816215316501573233819196677581928910577294788890582389204303621137375028501456187951418437136882070217621378431343110049207090121499110800057403099702936263280502727478455058959631885584692956525020923255990132472317945844728757157910318637708881760679356178793372864429708999203519030005513977442897289624112287096931036738415391296248178675726084951276066437102141628705866050466620399552847310420960723511625310943940073364690892493577349038327748232605521759702526891096839708074625412623498307632867255341272867987799208008452487457192433973902551916346415396539175006364373839282677779526576904591883132739152562891387971270797838652886123487720910840354661305964772714692314079198191020633872233576573781267036461345892850477960907750966472886180768651089272646358906903625822607963485629812485298121816406978404861016888282480102451450317851011455569660937837233668196220812710065993873801793409447287427988107025777461310367829772878767221564350081214792678272108990749194046180694816479797150788263847053086244231022153843194669230458420728759822729528615181978191798242375574838392335315743653660936748561267389376876248915631348110510715106021266254694910097552134354682213072443228139218517193170511273625178634712686845121519106196651391894879216873558137837067189100187077772344711113841275487901254330712464133739980781481434665129438759792325453124914505432762746462837081218094466575754466423216241551541619647978053976264879858892461609588519527597643017935200050765463645348003337314836109079747352827745138109978254385745812949954058824004995387854299733104706316622750363297810991370754658281193447739043159259498070873017787660515370210815092720442128429513038425897016439343072291344664363732217732325283848258621511242175458328708122096959120446992482600800897796510853859117123178909743458575902294729417304420163074110884251559133063171242988364181138929042803315971151545709732650519086033327077897635691619744010791243065662989833829481009157016719284066676841792278756051746723460491421071249487757874654492328154441043216491416458562939375636916858044792654519592655737671527054292513338351371006914791120952460536016126253646423613908978683081399237029339513631648862798300792499603899873177073362187995027502317357970536179012072072716969618925790405457076594464400884180062423705947738106500228928019137940957864490250930788445547075641954586830013099482010035691943301619628594850107086237148818455400217490158600556529552943199968314730302189907480298137721878436800836115257467343413913319826668282441746671745971386462199740248104748390850146490522321710158486265535263108181226229630042373024771661104036110618454847820782807674375635403212640978907244797703453503986288499979045699241114563862500844183756022326493655814987494508858712800456663857927986076073646818969290855584243669683833426270599010794520602411720795367693065030817742927397568397065164223545263921875633664089797326604520966717686052070339437330862851390806304657023978365692278029068449516377201769294618927915119711552712208955142157877353979237211347821645685779079419219712337760080738192334999845955620358512654217812617508309063386089671980159898591514606115856733208087150685745158462277916970693321119866896552245580964246342067326398821771832836237034369395831624200585150647487256172692278608660645606450457665096467775137772899748150675400040052994466500059929701184534666440022110371841415130011481438041207896377132639600379682500207918567449375699828278477722447680184446608305857018431612318494886779582210712281635168827372271997611667445131473948632219945237725055047379488813768977500448538194157248400187725305372586552912485628655147353641652229987346071474287923024712240333172464523698108242373815764325642031309466865250333669001508984592180694762538918695294238601994543430284184843123476722583118461376929130586704341892673061887192898176525274802310260526211199040997662933310447622953587434774891312551943680195191554874074377429542382139147110229403938111979310123403180302875824343567204972486082952227131615930189241093440293487516324104173301899322069213035565422230481941640657752761596647134640755094106927850668347737520317096220374219449471484493066933266444183609919395551079160206885521495537811054265854047777334590828731276747584679442742772411151299645336033418013343528086392464683073583014988121316283434086311242405606956018468215567134179966391848117503972758504920365533975726321544816893907533984843424954576470775516338556327987648384286676040166086338292211126162521287787788332145579745065742638716713626187685965969489071986970729115359292583372970428547049207677568145850936496863883821476034913714591261671647997989728975952105291767782190969487442253032774666323496578920450364665841783571721021954460184607685376055309266916206208415203841515803220996895883270338647531864650533834041786605569699688954034715574656498928904310157061551731308954218133883006094574039652442795092775743349734951924867527176818780981266710517255031422170285608151713949738141384918600779290038717397999096275475950468738052950503268090139460839998079221641084056008798229831584256721327483121894361045676855757812496406318107359955791885302650060740018091227936876469007059742581044876413755470362572455680374007357829210383441921621748363581857419829830605089031102743115826954152924848838391298511969663412297737881079500729714920155157637826559660676854092013594385511396104396307640924042671565191518407270992162606996037244671428333015943023381884122378237996751998313303987446259516523739177413660357627593148193764477755302845404150392939567843667845565127366887030032195830947636116621493985513370443053798450704319093859358727221329799794938200564578908150588149766964369613665558632534255773959097348881760822177306106335044848210021578658157285552547872961754166984889315656417468629616993903002052080275714686537305315721575760502683659614663748020156096513483754357145522476367768977399762319748601347462984211515011444387080229300001595545633439552407204523069560041482583865485322160152847033478761946203548056324049922147426845642542575895482825009855747312889942076434667206215793462608534650233049869094252096736281345264508091668072138408039941415183483926540083503606839004566658137697191326435265068267996775016166030934930281847119455923587843246334561128421441104109137479365791930489635715439187717999443950924417953448243043378283586731110842977432305572260597701634823085715369538657759517602608485323300415839851840789686751676552393313423185147292261919931770726262603154253886730240756217317311052872957985772494323138671958190106438064347410089569547394311374678953074608286454942919114955098040477659965670325857725061788225962002128942128496691646385696031147417564184496132008541345998078014857271126667624028183905783353039413793665072665914604126309175773627219791539977791553457005349360501483928580417433259629906240808807175029667621255437588546676109567604095280982364810356464275031106528925407560648127308464412686629415509497535872744820809896729405306106872404844916414024478547134019254232094361095360366244371917690999310719560115553242312929708523136759923501489514673876479166652311823145065623482488119503907805019603920019401185613468460868347226587157852710899796889829828057802999621463272321385986989078961148105982450129351275045171454598429839885684454976016092643056685895730370650466761372803234318458642021921195697810064810100048678065307838029921918363389720590484551962511510511416191305442362118657167830527290530053538657064627059365742673891117928017761396106808569535417800566284999671979679324748533248652486013114195383694709881952223319752533439751374837730466765379221393411600915642250696583517158515899643045547743025442350483692731341231141496281529516768057149794171802661011600144159673197878752095901988638120589170996626208815813705998433782885518766139287953939262849326451488929401012020401513092717497029818216232151047799324852084456725009707556435561376498090948302408158383408294918534181656075744485930427701067370382449337733647652373703135052105130415429940758771807154841383919075714753552837779089525145927406289659569167778577278578892051139767576183439637253661648594696553210003248187842657698093350787033610471011207632705650032711692997994990692049220446067712312505673607809663819373501324799429423042769290675952491157329559232236529496122657698230371942737673460054632028535942123929015304251016912574674966066804277337023345882658774720260099398083200657580983480381065263413493277626453812228406322557683657960820898552265405269679609379601714282670813653195773281238333455315062554177213262053456407700083771195943250557176931559052232702293892793425732742155134394408075382192386002535233647772115403111243604657522857940841443701903520923886533717010201113422343031620107174462591486639041412600823182281814819497705133514178812545609796610975164915649487747479243978097402564609610348790792467170959245930754881259993324804242359917091261829471140801014331717644770104204041835721660914348385722845263979237540466782391214373129084733463414869538373630462196633004151466280826894544873008946983637365429278312224050981149119607421684703567749326737445202746325176496665231851203087820961682149113113347982433491760967843382133390375374075579217821963276706517108825255098305552440304283881577600926822008677159874311207789631362401652487167745606604575235207945608894342302301628300635580320953973147705801373242148481421476395654869087364608766536815706537243083028077765226725222815350789289628382146422824060104595315723255115841488387090030667946382045125142475054736615710027988894751782124548154885601259616382434564319788952531837780111291840488884249195339566900529463252171188226796533039298755270415359501791717319473813634209172110302771545897961507790386780991721924815610048078304011815914467668024905186142488666422945461172011690548915524305755547282374159857629471853806944180235688405382732393668952571013454968334925418144519666691280977133956764928790109538382661668672601274886458742685417401481842261987355747503161349625898691885792262763068751859788378146984341913050795938127389018984379952396812229480894956226283364389165592674153293774292646884529480509487228406876621142505564107541741550251321486073243630799165832538201042364974037180497832953160583813468359182248221981447875172300048774092932479410035824638842571365855827666159643008585012763578838570118947418608449181145081902834082744394002388279438694991966626552783082887733418527119517375514644863261227028236471029138873140166101866952977148439154010219752591766259350962118034960474794706776494357596282528854480951114734752790416956769777264778109799715259102410160777302089068972039360648302769346553769817887815626544149649341406765843749859972955638106954317844644654963862856943751583321721560560941243373181633431038906629565214495233111799863789027970607426458281362126346745761824856775971133291304623406975548874475917665983632716050647082282461596018625727446931758469845636122145943840026129350154175804295392434463033934733422544111979182313312951796005572565958721263923927497146700226356700237880559393461545684213946354211207130520541357888130871560308234123570957215455411884460686733510335367397588572672832259754033914069978244657033883836470188241769157577116611397789065967345810588737741975176822846740718618595102675987035157390238990741977046025421591034458617306518108456226401128208920829348558217411764340610470441368011463141758833074361465857043633497085147855774971502405831064518858382290816861126031901527864747121890506179730712558522639471199794083119249204975541174543008490789338550252310266033344387337622002883192520373388321164371628138371940813497935996178576116952620856383316848759098909548399842215123099125211581940650789020340637496767050340822428401502643865317857883978802935330323856663943585426499701774646794221162556760082979708823297563222939090384514036593237919046266956691805065197750732860025135810993848837472286622616434150083193846739956527846921413818296826784382621660575822044870624037415080777684677745382706812575181532889301109038508818325420762470207517058359837654260019105228126714420986663325461485326536275644929999935665295218832854428069810807921286846199043804249845181296931920733900817721336653664582147809415558789366091420650909785322215895205247496395887292279685835653226786484763728870072557529640245366585890925382313956606054866559162601801313227255538120567346381606045203707816234983449635245049095908453705250300996455357151809993365397741545933419099643086988942763390411650161583332771719153286695976123491270796854555877778170171021129763910107075087324282286778864773031645008676675288440182843649597004823326459092725182904590563855373425054939279662443923859656430007826247251882562240304743828555770828238647074427704347073437341924377977048114146377472882391422031276509322487231392625761663775914599661734090757427248413925303780896446021168007781398227354553276126418306097076857611002250036676704231778951018327929051023917131568713189514540052956375575894765177762592672098892153493621822017815510733766456788370811725213738266743861118006782463551133292543842984114689305132028007199250028686677252588267270279685612182062985113830646384623202650652529564601809612801077553467767808555373679697336639330520110581815988508221828461208061260249468864740312525145768737772550098045552446165000664562893913973250495434160663634260143646957099956802949763523696706333374915693203883108869608506094647716687289163017828917272859104138176103596437318203166599509963550350641565583691314399874865651358071832266369219603135957326068730509746199447541917784300670765282037797422336726563732787921096357572175832624980040543640860474091508310215625904455931282966713727353769231156632096633617487794276109231998240439731751153040924220195644823362959998475050568159636925589750092371875441189549064170598508461530043997126116854825306783639934989144965265391529344699275942608239773420180709992520355440304464323501014846827874405328689577920812802081687356151418581237608852311099434024183112939615743713983182340220321750343730101805933826080529825670784655306632725550582339860389169870992386660012595902937582005652434949415329204117778102901609950600053050560410721320996655661059943949016343289517650838678989109191494741132065860171154190885676890406565204176380459312879978940264234991624322644264834997489286444202180485748177972087470647755861465765261582872986651221355057216524007159179032355480153337073470911476128232374579515675959514784591773869892168635371812983202822738248355467904720997968301872593695387257407513039451486335659361659589922034518565151020919567915910531898238121455159032389693303537012227671784873655832365065703122780534091071213375525262509697481302904757810496101307500248422900715686323893421287756342704866161293613347865602610373311179288582404233608237239401968417435691923429294627235610635609105425699753741894306647910095877357921262707808555648421551056991563456568476670467607842314689250834705815415321951423826990341666523758177357873059847694116521089408682016484049649906366907597201455892734164914596551344661524290406483752045023034716151365182797161474442706947548431430312332971439992598847460056623221322709879998941724537641881580976800018670547262610351498624926722104995258973028481507575351804841725255967492758694105541076746309103338714037808361603844951197999124376438000230525605460032175629254653264511748056041844119048563065407732203945719582675681136414422047703442412454350880618401808091223777711965779622349767760319487706607542856694652869692933604744445907114763698153039385842290784501790751957742447707904898669897959960413847073470265793093901996613955658221164817249066354546757234415868872377877380452331905331578297392130525116972739826759896609319409062876823483750764877258358061722620183850889234710371029412697815200381320180509491898403994954707047370488328643739693905135404183716671987198657816892081227370894302809456435318018789341363683152192142213799841187125239414882759259966051542356679162149140841622841894820133901428582223856978545387196155559898401397413840188104074320581015021846077467929769139927965950737125866658511450460243084686240054927023008199804722948895182274313621205065337256147706066574438977095515462934891317839092445978450173274837981922779603380689702665794868037999543156820307279387765965197497686797887343170726786507383503850564196539538470437474579429800305419841658749060567125433855736082776241205484982740182912843489031928224469940269954397044602816081318246969405221327072115457669713016251874431706661814427902477869855170801597936376069453030354808746628321584835207964601118978888530016628696686676385937824612158021730477939086582475250931278612227434084463210502648575496521341637553165928499106478487527345189031766758325669983754860677769598407045648511965407846998824606176475119912184784902163512990153845105463074139626943133329199233104725866234480788009282992162166052051816771685972610972228882413995778958994420090599476443170840052938058560280950087529231422721782826708563104197031772319215362745074976458173433047724271072008235776305306169578593677923251257743739783787327609340875410068739235376707638924889307549648881542041648932362938216909499319623490484149595683237923628262404509004220972635880650453785548336473355915242726743986540386004503483302378320683639633055064059286317810690989150267874735344014983533961593415635197096255356752325685868406068058450334564406365050996353847587845457369905020049723639469214946715559059539488465306397828454051321128671713794232287577508328676642241329475457760848478941174514182521433396965537861560828895922491715719031360691170403875373029748431098253096839756726750327483909092214226025087600164636969914882800944857407473741501256378691771647987314699660121664602369713684924599260806342238225480306747643928514985578523487116410548822900897315341487542306494003001616806375104096442634864770736918076354495308793612643336299290347976279310992008459263888465016055370106325302819728483859906206192663360643177858363522221377554634859703322696273984772618859867711281637808528453083133126824040759958274730126609246822434122108233515787169144176587687674844952598512218634204486572300364605056211616302346759674238671597167194703046431377730454074283381064627605214745710070137203299111202566117165538436459748096816037813202043107702827781092785978332542776996559012238706495915042446090521632117242278887795950487529536642223931111439035345593993439462270660058308548117512114958693479629634566033861569117336718424932288558570332413456748853294001028256520983418554851900464345893909992196656064890823697317380893751813802466197442176728542706068696237160792078454077461044905585304305821262298140730371904881138864244390948130957822462667341492366843423557864872014242341165214040685247738457618128982688290140220700468791645946091394676890006643931263111835541611544664004195706038537740893087305915788611772426608394883217897352094044403513361009212028082392950539162190369221352086993364954195938256660829755279323762392484832938970212756965411608822264580760685915943546575655994647091550062076269514416583497053908205379162777206084841322603437808473954553253138465338946113549105994759421939593433570344403883633457461303674116739768826960441956505235240241526067513865105395367035769249474873158663574695530234582566128887925865758077826888290838609510679726697910279696950441093668830586931736655485956780192273230501778934135637232977658146961461617933339104349439535852656130023626540649255239090494256176389597345923374796401028154984974612856821241795937874366160003948025937105931186647268887048947145621275343164386564024237295650414248872507663770700730470246902852178362194612531116096728764099025081185404056595627351176202056759747669913696329462673954168321317015795757290815444768660893565673428732610570332519825695141880841771474152143231150790766944097219072419202048460339478935862966275235422509520817985028659533147302231947189213910943555505605199409810022090117448651633798694459966104114454896578381298379196540595469945783001843259488465010639789931175584409145463464130735239566378941145539380432957434515318899840231894420631039543671597431678737671572519327870822050094086827000629945079445060145455048217277312482575890837098426921614384627276931783410896496188555277095212661771032476256682120841785160978635748549722727324265623198193726846268180725231909229162279578500795958668962807887536134981415516366142300108348806440165860990699912294424432983677887094702587085272231106114625980978689131792440147153610668517359301976008896096164656648322357457541862305410876215725488954035222035079958168225114739322206450985247524329404013817738630505920350717119224379960588231083563188959111954975176563277173411485139740212050029653279810114069518429396092913246880215534418521774723594247598253454211997331075161566477792467052319079149221985448766817360027534601258453715697618939262741404294890235550034233735151398100351496707697388448424165745326882570474344079513334838857529008743014949061478479546263251916507536733852490937511064731469300602348623707850555980486468012630189171986146915837607030544685413753165373654143659279946640759876291264415877506107922526864274791578557788642939211572085559303928569893475387193902595263297729829774609970447475635664660562836151131985712265285147318729759461587901509525497899926708857259883753713872995781183316367563969427705561425935371819315687724846994298359696319244955948705539282366509544462264615520850706413314925437795477501465408992142361652612879456390568934842737274320725132315178217380066842580569397055233557939338541305594750311275162890212061983688570101912551827853695182176599751778465175624531918760274542528075027452670451060648194665058761145631817072054752298817192110916310664723444493627458594519200952605324084411241059105803148190776373732594094231790967920864355705863477165171269075197512601714055300263120429721662300335049226928840444237420975361610211339897481196945767129282233530810705376198080249901921766034695156814131693577589583177824068395877480048259981429643237787475607863473373958152639039656272349443995617419736710689240863994538946719835814216284906456807846761967891310681375241953274060752337248296753555033464628062468937065916168852273679454437763468257488070022337682741355438652377331498635827558959500133247758018399471483795244643676223978319059672805728500148301645761384816347958930834418982995975303607585504340491960587067199520419523078326071750601603333939648070436583003355618692148623624705456289174995272909788237093246570842363431495575307764152911982943842913862517135579628795027098033650062884022299116672603642956389008200414494535463870581580801328757289933467210481721499449054724798257078926851052848034404228915783392418218444789113976922493283264677921520342347738251211585295871312661501423608074482790857434787309406915531403337531432619559646971047377760656273605816712904715200626623369835602982699453571193536598422181859321067739937393263376581027231295069435127402159687980447223139747229394663187218930463419454615357521511700223394480010453549842807999640950497884391385932493448310644133865816053254726058983488995575070083288787817205559450822477935471279707256803641893842183834484211356821906802830060781643561261275946899549403113554380065859112357221298653747274479355716301080018433564302286298774971428585759433786859440750711958354038428950584432046502211101038986307587012108803746212979897857098899787714864749705921415485511655955441886537040351925607713650783325737279919111872228609889913653253614887829633376786981703498240119831419383550374233374852296132836402505489216940021923540484125676696717439245422450499985465978670581603467619768348255223530259098514075439902275782392780382145029462725657235977361431632595592949161735325025333285492738143818969516013185731218473438772737242225530379270792055525242044472461497577121125797570066838435115147855521838853987739123480742274824801469287708084533307889737854182299910259373876007817689852055204535259044051539444610353569207257916439094989661193211393863019075590766142170067332792077205011260575581616149089028427023124411565566750594705339834796878512983628006019439444113896939133692499587610772386651086086866343705329042965838881083618630245068701511454635855432544037095611047202277253158701930724754054604088983831118309110062592258033417372217281848970598634784075404024533969307942054173947705934332847077627638544723235888060360646181716617209067748746286176005984536692040899751569664362121780657399215088899840013675429570955765050224119468198922839123510302998928403698240427044070712936540508999683352160139185437698228229278719718026183997602767894273917048762186392848844447418428743601786578846099559836811766778075489497685054902656080597060928717770889650976015047495509359736398790254296286584840367853380299707524994582278455343205331065023018387281730954193775852602529596888216020420786914721480171428180928858682826158066972394450115998993285596417704960358834767248226408210761232113445084412418122069417947172314926692771935568759395641965750284788359483175474498196405010190364364175801014759218125075294263625819370005199669216132012414261417198080540584001623551693392483819277457266267314201168356488754161975434855357216445498989397737476122756041313650115435955346845308345139223171309035833004766464155217315989073043311944732980515703476112039851654685520234480123855823084288832523744191995964112146183465471648280827671915538309479748742988374682052417860076682385828534969889018429933123109141959527428611022575794919772248008591941508244221081249870971479697728407123822943942782439664422705907649779272854640683077848687193855412481174727728124211215435518212962659974977353241204115774947889713536540863535321587616781653645446903810338024608246171663453081609231732552827354950432077462717598577529757557184633183692977534750252862988955582826604326856125281763159430867558602893507777067443211380957106242974048284903628565382200039900068942739791850707165134984684183708453081700304075574612161290050473202764801446902121508364214534569572257083836024107676944739263571822689637432107948524776346357301386523641564226914958389016304943044630693628194767307728320580774872661462941621015758987915120817248536052719431751812430221122541487221744494766786521758643708282030312236282053899252989422389723582994251155176204862245921268300433002240822006659999867362193408860711347946641937297592189338816396077442647966604847795098123218621248394535138907551083805665614031822778830728330869024602627196763230525152425384675788466177501069914014526556787134612095591944603337274523939439242234296279900003823108972423103754454297520785660832715502357339657769959951364283982954663161232040690248262906814424007700282691841112984290326450006644293659054746188258763786376236503758090013097861699676589469617042526812264510217915189519871240326456754948596433600254858911190881025543724835725046004515752086268312558571016491374706581622509567175692341273259846165301805061225048555045236947113041566174248991795266051925569724635824625472312619218701768997185910175300726206620698986060215935438863329741176886242398559753447850051195526002738880342444246858689991342697898578596403781626385521068880605485054748309487578472282809932528917089504238585479774554174092595659124948283110709852616521452833735235464875820498967927737419878299933414231437174102248289073735633822945785476358838312606845476955160273960930172854704658930100778384620921486114673202665837861212058094073164460716678058972479799059448116368819226801068815777568336208697028258854109393738646529933073424732441736643579364683356867576191743897852287228947613398624512335239196968435021729190261718692712588951492479791916303026562252842406012309355394192130883676448943858014888925240459068436055621081215415822398279837426706737643135643166076607826440880322777451301985860175063854952697565814646345208842193171645370588335642145018864035222196262476214636108980291180651764672005890133274513669814564284272763173776347502448465138259300023556147451102927534355447528150968354981623629307325644732786282430742077032787292537778233779935550319842559609179503072328526328532479065036175998395435287567901274685912288078226895737426784178917312192612107851120487088033512687624296650550893499872862673636858895784818161004652208578685879377548635460947088216843778179808054353426557437884540430302836981577886154932714663471857212844959351663860219627386695341143578940210905130677809306747234847649436920319583477598459357831042398418110181092750289412824293581524187508076287371265089508433268010182260786628982607490206834633499884111540432225476848265991751416130945578363157565967778956839336087120825085980034246657050969160669123240007681810596608957054257016313663384053361023380605952178321620167939431664280207416397650739344239473672017731983214965116993722271355563153306431861512017199822427065716551778852080796052920894711244225030681553136674501215432523411173170026219040329118245983403281506016919054292578302870370784207014500627813688646577030362146510161056326470468083117139772939191032912553635017019291846791886205703236638242983785447749766885147407284959664578077069996055935372352767808147336962457970826846607344003202066994000611632296432647797412985841188780028309429177273502569097148793779219567667808562227192376176510972950032894537249906991917887221770859129504732617300491683790380641846505378471951766444547954276063551853148974466710031541632363349980792860867492533619910506933052636622662779911591248343152690815064906756323464216755760327233620685985773581214635577300810722299067725402021500841262909887624475514667119552030624982369153085447493826264386651581664370322670610487781987006437662547571493247081280158700081567444364593389154696537273208993378615613036863613797616272491573410957867915288933917347675710564006103426545224774007110191359150379702427731628970683414458032188318131075061328857688674638143868830844633064453747824271147916644442830217197814056577413059910095881380704901538310355340147548358148113648487610496187115693807381146578355951968850417145772066598241294047302484913707682625099349245657169644300197907707061807467719188070878691181010047754338358279657225001085684150376913935601729361005974700771407484690502853255092149810993212787802521027744945423953035182981124523806350910832748786710520007501158612165537021633064961613859461838679449839079683913609024077619065350996982159661918647861454517683836088263820723649052327326997031675600907883837321418791185681815724857878094188384607998565472915597055224536346678697325393809075082312256614543174772564326780161489034243311430223664008455327459002824571104245511754902769305870549931004657771086069387127437551786191585802006262484657223709654719171415901314401310147184017523316650435829274900063231985729234399659302833080817880864671583303547533605854053456958534956458936975637064567886617578721956556778381001501225669235371829219064616781614988999974877202007029443323834689413835329339544860595382550147903355772677880624912430933841186702209102335956312215134642168409386039120187222455348017164867488707884212299238957610896797807319759689133471321568645754790979634041738860882406054529660553367101535563826146386342392189316327037755012109062579955429078438627480095544656938585035896867455982721750882193735195601787612092789679257199562740432332259616490101587415684693220100891921098892854277090556754336956690066876968136062756670185541809588297609875207808416399162568173599875744118481429012731844810297589651379312321091757358223525323955643931614086231614829949032177254336936812654377899368627449803259780624861277867619935070776380949299905125367398485347597818280800410882644349496661914733784176972531768272158144951707291892140421902617805030728170037371934885914974899338763636744650177219739597809958083259987377734967022851846413042571289730312197984206280346447893330717160088106730033216451988156160433078723643365274020687277631551542098281670628967180729344116787761183704928029251509964918900202905088466184419911303886625436818540830462406020045405110302541730918984330858643492334253176824702790568845703469306101186229156467836667047628622868746848045288940712777765426476889752659268646944925430012477825699472820311358093543603286127665492601773042228375552720772898384148571373339975842773366735295912684677989657219776980541573372817888503085401147601623211792505390037785982519526325727673986700640185006654992383703058940387384552459611102227320800156220161506948586061584232486548354192887490093958500689580272914671438999383378945359055901652131740465744697418193051710123373742186844137896731717790238529052385183305651524748840585137570512360041561951770205464722959785255952775925174495089812801373670083916361367082898883528356227923140357234824074133646062508798436862351906759543907438310037156624063446591143363058770348253849500294445912151469335024386198464582100182846629544322682156013107695393259298221963647490751150114531976038170949268190505461841328591290234430276157447774255846374200151338923494025637332208336002444065821395509254521251646558883928890071465447139100073214338119543776258049971722327608168023645425381683877522395080841497680252022730871379546901555015138630964852232371636963899238111872950515211079839985701663071312677502825493150008427759844717273027297898909910349788418814883121337904821106917294844693321161080647480097747570231245226146599501964979145931842260619213841384328535261566914961653056472008222795871298893241825473827571131645148028312323160394833542507043328782372220946902422811316292761192669539120921439923111851891998246804126060208839681435297730388563833086095073403855061692078866815401818658634481339788091446529208716807453510654648076036685511849598133755529449067026664288142569545570484988141135423575989284556895052310352809197215430005959779720355255024034501581063773673614145867762713935203121351850894683403969506649969198553742204224755682403726481478621461965251893473423832357658775708448407394749605527426241720993929448544145943652707117332829895844366827054289635284489078450375345967104947224073338699783207414215471554263255214907979865589071472814177407083004173245818368281786467131174827584310698959312743406952487530418038677277623892187654340009444004977937246058212268034121682912106492941778070470673824417097938294171884696918021843521443226147161588304645531027359282074627893839910428190043302403946245253240184048122591593642497837766957859139151414131908786435831350393743239543142683760873810813103973911051279936862184188521206352836160230097941554722382689189583560484332349507048968168682398440816934558938969543253710862822218090439230111260825608276060661822591662204257548366444571327601586755873002931298733775942597150789463474545225076853935506132544234164058345960494098921356303688979284209055570071877157720058643186446937045215819864777721194871809779218320482015611982427795270550527265888622186783923149800584398233606741620698622862599104419949911659507887906673563912642207524860916746488011687140639594866044529940627032757523911695132385749361079193675840626961158229707149014870836017382963821532678991866767095014764517548735974288138751923142949346418166766493781321788078216074784212025927602461482718833767180994919203776863778994771008788647626722667649978857925865081079270660154485667745536148669402295745853807428318611564794660177572559453740535239733964588477925746290797094273067593927327644804048856827370837542837753375247393502559492723404253503959862355106079204017216406874319981716302143005182540770964394365182233893813702401480434171460686255155782982046277613783334582730189740513485632954634931440273139578468639380174847532653413281785032551837855535647927331509269117531041685625304006707151357181217337084715100517935506910486206975739072869354329303067365802738532638561903571644139131996733786412778464499097879249153144036285387937936236055653081371349176800073101485451593275356808064845418578347969524501876949207987792125156474876760825375014021609149292181582472206177681472232559991813884701918488558795221622188352654892475675194926809419505961686818703632093125988744508654260288658887090096087709518329493520372563186340504683986894522228317333350990422982538932596317322373359313812478907642396332263699882104865228921582178601520650534167542576480111658994263407945435721295551028115159793493455566352824941230724665861289511268003541908271551013150882715017719799626405592458416209150804212386765415985901864652180018954814681286587378631065406207046939309063475841172599920704477701447345481334058208241705951070404507018782803438953745782187674383770175971188784657091590052559289694749344919148921255083434293722598854919202007042823631932052949645160711038968861065246559125846527884235099007712378202708620729599852647604295109119683641941977997731382242661111119217787877533259288242273026746021758591420530734599030643540144951636701708642846575142898719531015208967410980803902432950804384226813721904414835356571846392035494540007523109009365694985515614823811054651300147054123230549843811618121709490497465705826128374815737545575576199824854461711664376422010146459389216935186586312551673160237197275238937718025215894918881130623128145656308899109181307605341901414458297053058675548191017642231033481932154671861238724217255611842939923812440711499847818712650936221117449902475408446839900353095909521891601426237495912360758751828267165615595240366255545236445664747986328234972337901776655010574608787148957132704592749083319485285475689626293800509468819955137842160971730759934472877025523772387422749110623838115534912419200871841222879200356270068999539334841324928967418806457778167789893488899575435008344004696260056231411782407700825894492089292859558008870100478439579838629609430008879914213042346997897543073906951842236416718820171894908925980995736808513601811544322122847426440910176262217591886201770694564739739430159672045058513833183785410406043370080647242096721471806959905590136821519294022686518484732161650461441927241421520592833402327485162701564231092953616722144387912244123751663150581913820366723427987690208164188052716876065182181831910882286650330943023779752553544361057228019598680848281704995862022895244981968859655800466535725572884088247811885232660867371630050185771279583791556943353385988726931895621073295860353264370825057560298055065510219144890342961792305548019142064756553472928871592349811173055035128996964561237718415734599698557750246736294554589977192919372456858624832774353899921978717995879922549613406080251720360165069917350354565577414602801394683236365337066092400602588335615354391063457045176484419929046069152511476841019853526006506289645788981033649775792378328274275168320430545741404313109288457924077319728072840166949032680692405873417784143716729284210219599646702508645508421163333365406978916261811289031623261993647155214961017286856681760986878490495283673917849922389234000244995544224344181378198579063006527373024150175294492348594342194372818756285433667785286367654391485735766531047496101260268230182678944953299855629261694228440746026601508779958621329315866070014083923249144179535526430956392185382947437450405782890719973118411863093993428036421429694028791720505580320327946124602805273339885424034509968294384677248693230657220107232033381066522200256471237347853946898674918367826271708554778766100862199611895522051886685389736645899311218786876406976751068408153633003224739068674249798928234774828607555710725587392646794274165807869740996360633890700600766516115270393331598254940719385920911858772612478044152707991946194312680149250107772251194612756317769808002026149282918527323504573766220340846801229581828385756569338528575983380129495047186113168063429205653266589958290132822999958578794453525345461662485612060123453240526635907821175679347390859585183344151621182009495584433413907282261800763889953390635003884631877780342115647154970781986556660027026208614972994472115704382296110573274716374781506263146458526917528410323117689397654745791787525561341951141532678091823373690736449822650483587262895478527783949065617145113527076429927806117222074308911395786349313450466899296838095607024014212175493464614818340295379758394386767269634063018093409676005885919144685663511091472991907728561977979832268817477881852333691956259181452109264397890201561936496873323319456445465981695611968789975501859651753697848899706330486652792252189138003885977837792380693471281245882657591785345432962443518692336569168769890357634776087354467804046455139756476286100751299744896213404219951069862635795518002479038892409195447202282231916586810091595565092671868128015839544826589624671761432999260196839870554016987524293777343510359934924585046146860525225883973949473587145887771389158254637929256809100275663049605501297948863273202621681916243573317112922984166900424794229204679304444344061031173598576751896616987334812684898026670886410751009680827672123384715671971847742674357454998887037345045530040996506332577638647753242953750029818236155057814539254282562119940350676190252421134213274791796666287722759106655451835120912953710259717673610788453052821950291911362231316172887396097540214566091001637553103030487664676451952059509500415031134915450465190040013457777361319962853541271958814126152475718178096308240081235001184614797985169404989333052356319517074465211199106383203352262061364419265037538895520144791152607945785554700049301498573049554709175247822332197305827452928225746535065496639222486013084075933239742391107534635145275921077070198869584705875025199516175001843528821004235011733427426198093223723695381718589094126886418120083825110757817464023276086104623999714179874726645446957212747633272292821155446955127597601133889819708361128396248069697042370967409898754958846738030884516324286583261284371729148559033268655755137490746884173662631240824531161197995259054701163826662529576143053090425756320546291396694721886109419164191302458911622979144004808318144988668597064895241409403796049771837080133194410857357396629067425302127268114347417699457822673229668511755259160847237775236971060130940894441010472789459640396323636652182473148446932512076260199495382202686179642610621722205059462314998902282939335392613627467671356308960380959505215060158950260717753665222469016817366149356163782201167192009555740314833577639523829422864313714906118266464656980888732528241568263251340737369023911670801923156803611510652675862308540728000366225626194939275841948222407105250953950197625914237081062548295030996214553083365244233799036711007311668831005256255088467068540445872491903099819392861038673438285313661099903843157748720784278817288298523365685150601607474827230822110111026067932578308724852126164216298924914531591063642084890381125260336037479988186795758229747920955004341966676836863810613967311065701739496335283554128921656234847039405069591661891258904653576546304507879437908911704354716691064276379559171430806010814357513011070301419940389761926470777335899774706364969227993066646350228251676825097717079606636739141719561282702586601143723567254736796414314698655123748210356669705908209476311667541734091363621781508952506639654148496378386680884954297716903063325212430431373571172578930521833149603288432593782209943712226692743028529168701021395075031850327635488723713411298981576594937307623309108021925093959348365297683066445660125290119954333987050317869841595656254826043225777765123948489802018863955246402882694245438404353149318622857637210593067935939910574357978223021882430728391942476357836288293046358038133949250103427953021772113051083126589034102109776235719391000707685784634281579025987993442657993928098654709595253069355117461568224843252158774264175003890319785785375141932172641213622015558878564842758889100877468139808117189298740092932265184288609457376843772880032523072400355794180095110680625924605704741831884817291039777425094372046651731383363601044231470906715112172124164523075331760733108540885988819350270332278835855708459165544307975762434136193868630914588437892504784770683996702309250363300604139137984474403148326797226059460718453365409207522678962546950897348663553726931743488704075583530309522523855283386082814137994880228975175337621756326936589211420513005767343187664987119690098524894709907101091256838308380987204008615083338071508301823221023510490919422807922008064874902770491560329950040448067024916156147685287888062347169100209732834887527653069531465948290235993986793185894038411345606479696035451781915614306434020144573594437273377334171439650535904184221163360154526765905006977110075166840752554221573855483867047902155901889079692054334531528956199041797769893482438262261523284600492242056859276033727099631743934266355958749556522641870449962992689709039065372519074321384688773017759374836154210580702680474969460870076244003614933323074337570465271401151853842078914501870774955640272566079587220450567374669254948156837498206623994265885149036530065864156660694117290250936545700889223425160032611624033866045159859463627277712109747627042674181066936672739079394863419557302406801429305163317241066968054242705244629426666350548535920242990348687995741707574846197325816739714237184878004951936079670539277618420817854473581533721053442052129785085507314241487410810155210659247809874096409884579100608609457963441035213338785840765879107985540865796338067798702972696963538937815811153548024938578592798899423049720772332523539442900842981137069129911705107534636626810433352696279966974604839576346929402933794878333448816357778805424662361493005940313793692174308745415980256783023587497272420406323704682931678621236703816576636646252011933458002014198454306019754627468753383901214556293919023060360314603929696454893829876057405632962100402549347609290031831933117364671250285749503170524445387245400645402379704743764495892640259294439317475425757757819242690030169566905953711689053802746373648915965954457034552920388065093177711928984439822005752215179219062549790993400149656077038980436827220550856080332359167441410123565208515360502623512625409723083132664206331508387786712683620397923982548600186391819860652763905026962056524817164948259673404572841378320242017870643428855457558961013382681576981447402345949216486785322065425079693574954068784222270579697428337658491055998059189431245519521496630507781404267401892968191193369444962504036443479877321820065594732040498079596688977816961835488932983205621510519554365954658253225936220372826188066266654148870382636320513141124214698418063693518589936593715838823188853120079132932940556752260895548031428145544844759919603428091977609754014307764357368682207343205302517882415216107858843298758989650797690994062308924106333207051243107854919046160204216780969782071348418528749801647503070428236038701912740558383567368706834441227500458013061968267002505646469949292343720344857107277351810056069271942853635460120238110040021591775094449804373372692299846338632311508603375267169141234846416907512735355527253564679830001413741171039698657618594071672376990656138231893763609876529816169886350783432364263424158865610056673161065493225128074019228379438540079846026408595900200982513236476972571044426466517205824722189580282398814837491469403840446392766295989680962683402882399572853967070872964686027317203213942570849805151585126013536529072336217908890100564260557650251988616080005118896594937211088838723266913173110192728330014635839210546085989442102851735057886716878011135110925820029056937129819938583316144407957434975476488297905550739850746713037875037893992551323882292400984958709222086355490936013664951292056603037269155747649931140867047030569559407913711301538312780948662115829383377136771062245004458758246441875531971619845345651526999106423523710988983513395528777289968944428063585162569838038707963195869833051100933764067516621480765124328618648535466780883929974179601930467228042662573430627906936218759286440583811664681298776449375105301390211785056177298388379583662903504705422659929363218771288448811213783911551356118772208586557707610300987586116878590931850311489556195235314723102708755427075957955238655716573521848068169935597626057352957533798874705867174549974260893571568010755357803863186132666728818192646822798158335762992621478010101713663602869973533114471000589590677071779694030275362779102280200864040743879599951248562401074196983212392940823299861632211024772087265861442013288584912800630002810791660346500474599567867210231318234823600362956308102006259341826796046185404029363262349091345809496306405892565302913263105997302134380207141643414414165096706975081078815399694964247438710968089611973553971997951730284713017701457754484339502735296296224850070938619628274054323009664459868117930475923646794717119987999824723697183820667967583524954733034542966520116550713522441511867550091040306455388505174809498032572585303284793664506060709597604098880258895361005386203475322074479012091299014233577055541228274047456807993374955935275625621380949974681797926557030083330391485486499954624088840037068690509444956970699124612272630289014407128335331419372968771974294193181096719071937345845590389541245703775235299773264221762832684894593791194008011617829827931315401775866005363042617407301326226056307243063180699203306717564346212501894863094685075311850536741983224074847421648855153388594461194909406344399462341308358841695225382476443107775953518118811120228158004911760112054627925005540207101834038029508889734643917022431680215545395277968033039105470109156110333689992345164606102335955470508049407053841688442147997263304664073032434069244263059244349486065375769080013186211362704801140918017973946417480417025571645002964262875732116649173500129728909905317178507737310348012092434255902884889077586884699234102108970503343807914674841278259346022506638295334003387814931414413529010620029054605349131199698538953356983450556407835405015225921834249946181421708193146558972803459219178877843028486225120571226404842084576235474686792646807068152610043184193555271412669946572538044333680829788947046005934865881177788363854132313344347840169404099345387712978891602374379611814016650068820968822055588344126484006980970387406523043441216852348984292024084503560997831130974208331253526811158323324136048581642238941240342399847672609385670255243247582353461430202897856666060455476128842167379186754725404215445901608684838936855860545751702119102942328274984530257399814445255151069680352695772841400951067152104646276586469172260020026273909283121542627422433413919807842068463041357896858300459154931775908352506565586231455766442880340075790542061610002096508378641142929867437842915870557769426187555337879607271937832261307587541213223213888336469118214579061967048614784846110155646538295687857597897884471752062090405753979710637679435702449765334320068214646357853893134873262901561020033454592826800595002306836161517168251660796007858031101916574649278606120667539880323582097141532951340110107563055314993168437702294970862678091142889701558540045635427450619419460607792057649259988456444152982983338554876940729596535378785334220167241243152662846428187409303147434377339571013116337806531974287178510410983182639922949983844418987690760150882299608316138892945765873544489457374956567656471696511334133515189769484054552060282520230832610295768228211471135926083119145002371728197951861440796799462560233339718258078571654525754691873664402620027697308199822198622739565368536647642087270682809812708945211218456170387760939853850310733022966044471506128873451488111322132714517418890184329508366216609500307368681011858202181613349553578829443352589038013452541722069929323481401219511927628089315262007039972537451376299245327139656852365350013574633412936064732453962467058752220367942516471868963582509528742001081506641137582766225895005315074856666669881412225910149898031114389115633047356359610556366704426409357675188416103293524250825050988978488771630727243274220425320684685451442855321567021635825990804833227109320387625550383786121184343916815484534061867822209069457804451612405389655827879589971073313615270092040110822166151523432463984610493040554001808497250754112942404846603955615575176474807382278115507274410427740033084694485282204496080887979510979384900890165099805686817535623414999929805125672616062016757469432628188403653392865955422482308750276247431921640670542218486148975568298628803216851132941963376928160930700371802146566500623491992852229992182048135547766778602494576299439962485711938298092792420235160440272781441121421725676207113675867720803731550948736328431649676408241000371754288458924494614342602290883168849454120991556883517134679983809256051343411636824210737185524697757259698850944436041845478163232577042387929642021917530283144087789462691354541932160351653502426691739658460340346180893950288109346812521029304688903891754975444845160686106105742856844753312621798637403557553674112686206177767858143744065414395394142230867084224581961398439842435104926353389918337383864034733114099527214712746372777456719791162780139100455648685581963304266722919487185933975107082606067430192629914482985526393876982581131156311400350854357319560923535374936814595712642295861810744628918707182492913726364032320362372968922916702155932653030887016026869982122963783892001353099866724881071976786496410321924309108837672150512508829841001032253457194918912298706282199553102119064871216697926795609657884904025656523970567337800307187043947741770637515171877273140654949139378688349844742289173984568176436884231073400789684100177261957490419437563835967816438482204758797842855474092892075431887124342493525796524778234833355757133754487568649283066143910783708226490489319168663862051179859051152054425645159465840348095930421239845666971800292872207960481872575586524958127724017230485428329040511984153698591435507210390628048416489825771976877088998189028852712687328646948290105750642355127797478056709354201167621920727696086261118377920610311594468129456724084482515071777524842462725717817010289892542500942611266917096646833533796699069481879337616829044448945236900347884702714235222270747049828125530164417963808334980020693360709976920061383507257700828447183587843827189675414835179736595730356871748804918418526065776417505230395334275655409565504151818067044540424985479816541079867322630982032015412785548608069435160277211121349524287670872274249253334777046282467493915977802032244076046154550784433149762658172718919215040833133080470695497848050433649207814568032168805078818659862280371075389075053071325835769850156001803506040403500709176330646332383297032239077227691403864469237626431819454842697140111706515561309321479815061603325341307091815378028974998443511665860815301830415513169576000609951187508414598658837864974195055973738136789560381954665222176859063611043401483411220324893664563794051627826563367707800129940809798745041493992972911070754713961290328526076431708594467032951668537268150292823297442599276863446898896692152769237229536315958239801340013302274544972245589946846263431251325113007399554560959858492161655723750635159185509685479007437234241812438753340705638421241181412606775231574378182642147280080298405212829961787509798960621378235850718066647092805549785737939164101384581802375651919575072778688358809526956918153334142503554186294408160497862355601515868162513851127463771829356002832183022253019478885167942320932322749676257444862439978742902668721283002815764235134690282681826001366305726631045283185096182830479869860214135847453617011373937939950136514589796329178297730286777297307549670121349228850972802262205105806205615073554539234416725793184251101909669848126028001218918559452729780494992046686781103721188542700796966269404646173299820485031576597650815863134179173793194214271220236710751416814407041097020253596226751165838024644273650134036975615049896853540467797580522083332712486449872155571336807926622276169444521649339410007792490685829518381226057883703768744071418054728286111040055753014455761565083463161832591866355274916253872207687654898615391186048396143024834166667248277735149660687639264383891420153809519602327590668745162409889700600603731620320485053093593663491008114307557194506974858863100796816979213541447118949956071056992572075162661464667512814366960963136754186616387641879911449688664080251244493146367149804630623703417651687442695151079938451996718312417713390181627205497934563163065407186654048404802214812130783539442571560306566559018965867581091916924463854020801205947772389697246229323626063214577506854600880804625127706479393216202225617780598525782478422010093365702080910234586074598078688803593496282811184367904749503614713352694666421619007230897190412427448168686438994871212673316315773536048745456417030261904422754128877245121769246878757551246212264151634881528860685865897982946508309809370750258941693880811546226983924820303191506740473703581951764462136633459957105805341956489544615798111327242610380410648870051417537542685334215508350542057564117521598009965102025118125551277045946061854781927728471320961713439631036125669725574593144562920917805956071043482032633369994285234843256628108295852979170077807418859912892288748255148054726817317160314447060406921947820202414717097417919434419084480665553758988937263401335646303299341106601158715421265928961178558411168427937704588329972565392602214181466869949020749307865318870564374395884920173038239636019886475093103623867710476639735302807321396724223227419825461026524904020550214939015327830908409877642805047477190528721933439372070219203884323168911253395389058532619149127940762642013402779407492839721075681583675517634533989306021849763706783365460576086219592427146158466079898725878266151338948967110357135192987976982200968265882082029475172491098542836483285926427294521650600616450040393640484069423746125517095613035176767701154648668961646230406929862001392191337239880477068726918355913597602840870272841714162436917692959384786887337089469919205595137250314555639236903194472138904516573744159877611052476760569396297669603573227535548417299362717783059823769571431646830304753845765733998670731586866018149170873467629276498186510980712519018684107001347180578972187697582274843532872510136799938272151391380015557985243748353958721960378679120083371699727094064151734895811477554133030244382702780575672758263737317966397804747598169445168657522280901382146376131088255294578915165558822982781960610496450986416099061869203083478894061206178855689448680204169725797537128513124779658144381616747400678042997353938420953363108077904130218465582454475414599954998963883495223154530874214847878634523132611124951427617496684729123803009071175543779046022916207896842172830438126615624314083750714650341782382893982025780451282041251913425120043467578655666287784612661595701972334150918984883960316046329619048558914292993204574811126080519727601436301248709291250257389619410251737035418476814973189835710658982334968379468193661817161398775909323257441464456662614089182041869966078120664570528839266910100816566477358950037734395244411852984156120556937860637375106209877046801472392420461323974180462659574804418654596397865655291014210449458107983943159096643352193490351360706948460356117018225291378979510168585355389712980832340826370377835184042597026352447886904559261950500162629946678065041028580755657132042268265631494043969251494366827240875442134974621019560580180327565910202697534862088354835581441314480964039548216944179385593593499033385009154501844688293745756281742800911141387670110679718718757047909376362976027746254360613660519918117399408198440772546796732239031208381638254190126529493382691816853349174097080668791501958481560592896153622461138937066173450460337226224966595342400817700155448877250460741188662230192226490027489957116350756564299799386954423013212302812482444612042585492922190967821710308092773049161833130671545835049262996796142532408798031124357333931601066974679549485807020351935645223797255564793196405803779819973595329506653360235982846550526875796765909828795962813575442595588332572180222518622872750584691066543125461940021033044173704780773061007454130882372592916725070801258791258375067416566090562322184797974239998882153636469731279650403943096373218532439250370917486340481986308117808056529104778454282796864361943025582334056553023974775897010934703835449931829086415866936318778075075041300211206498559251975601865272644788940662246140667558434356168136478068297675106719530966503561823910151762381965524737737929669063190764015248576724029314174588578611486345760075160821414163307960046489977232115239306664599265271162605788634556411020241482426695210917195426212444329639139649486722563990094677366220450114552096423823098644150967864471888417721554449581193033762154881593704793107930006805494969424072826973053629049674830339398277965894039014710728234967257123876563925091101875072766729094264765077749341296295521429949286516277927976696501555450417052630503281595002809273246547583247841209591132171107428088086563382502456686109697990527867028353354317574313875411851730606099123015180714982576424376624682194141480811166903114895596139264161764711916106164082877064886299780086349767979177624563355913107238817076610765918878765042770507877336579899081148400149948068885237641608071148538477115913907758742303150839347343071338167426547118321656793991986679897385746171659658886230793542528104680989599151416506075349854370888678393259136683430024546586851192595232382580969664386176025242176382282124298222060279493763157135448433077665126285050739110365989300474249969811461153418739757751450321262094582025473990031085625995503741743425462233690417340898711124312579344066663852681594981236425734013259916413683855322907189300383324192410598709335263467106246604332275104594018130602098378732577686286226808095416007178405383922465394793630935684904127640110413369936330342503463382326621949159366303933683336240773698898971017589891252787683760565639876682027363812311603835741442295175364657676621154812084359713606200073384198268959758005048347096294485761176049392948449207921177927728466792749083997848858565391962460964366928880615831974229752410269796706136315964751435418020512739452021800465393673926619668450415397504735041743582290141583007368429845866047861778611939579811859138177038568701000728322130404958580559237121364335086201341640033274458197267019963655381055611240701763362421773197778653877634915909938518000179546079309641481448666476848859208595061244224316822809392787135981564881590701999107285704977610729896929065115942287556553509724802704316646775874706351714339319574473370828373710448268689820857060664792867788778089115451166901284503542418283066171808365891451440777602505359510739464548302748445806024793600522275959656905003616661463968425462862565604679675907423184188821784501777838617684138255935112096440445935968324550311226288082487099432188641458878258762383678027897827287737567884536417114144638522764913857373359135329406799396385738362961314852009622652877665706770246035673995531622993278589985340770363698488013814882532770642100796693850387295990399724417372085303557145677718742641044652284840851435832997791538797829971563831209347080472490510066011128301647791498732451520113791840765350853974181236257307750784308247422441529772720519242803760055027444301950378780691220148095926662601516573879549180482337792076616460857581851173347008934167163507681027495490264769666692977597671135485471330784251921720252668933490137525528823268518252240474165345163787658814425591223430570503413203663527865428226534989677765557388290710565409133030760375432207482740056302282163825437568808908637472953515937846143835665752339499179304314787321282950676149113119554504633537077716612225008262397172712697242392489779027974850739136625833301677726056971433007980387431505436902403229586627242093326382963289100255158633292544882984868603510437240077783212563590642931953429213165570193246144174789028718148987848468855012300977971617710127305058347560598545091100915782635630230331762276123724309852555358384659292453655647093244629060102113310565169179032822451923566051491502437918001543984624384558815331815887906177159236330011569513967583916967425828779362157014123093065870790620123367795819022397600518012790036483697871817704349117449063034380288004862474233469400279538324641668401217473542897795234779328248316154117205088281453491149206320830982074750103246303783312991550706161252020368958555288352276704714122246751468119870762934320459621556877958912688362712732357573547236120725024739788519777121872202863516967699400767041279472032122534473810648644621803668278821835380206681018649853816274639743452764479224647111181332417484038804287225895828245857908324217385148963660515145283993055430574058135641960858263696238145182061500777094797919493940352738010815712854741726754630694942642985299255391667009549058152797077566190805358395754797045329868758535710771481544739075613152345097446196381668917911040897505417813596725779917138454651494277020197543391852740453776728565112038516620998116049856656600035474838330889036228511916019620484156105405299978928211970665826911081814195786966401880025009473797966971774103235249064727115350151624874111510725775592439424999632477979933027741814480160563979121947885197116496897367572934535526310127777195640733069751267110004162421202998502794402661275631530237772833294141991379625688088692746093028018546973769321684146024371041590403256276099105834742035383695917345582341754069780849314480301399737398258184657445460155622346464853253695148119895582696069770868181833822374468677262465966412235372626210959598562864867945545495848509468718540988123122093818398930509425876056865675613562927751884912909831262882895268152735469487993342259937578774477233889735729347824286339743867482275504327456502437971572910664721346437567249562569487012028367201951866872436031231613797804602179220620333435317469976452363444405465463956336620434239791815184722790154958394792909656165825711670159028954807179817790783785631381879005967107479461269774707973338630736667940030946207568599180079189049701698638278245283656759242436691690987734548242131438560961523723722579942232340081544025569384242918849953364814687629154225662949975502347081347550407853106297668929762143070535521269750867574774985755155638449292007063757175335503263014024559180022159674102234326037652729707410267667188345626378462122551985171797648526886567747930941894390899783398278068505196242109815182120400177704376997960697690785434719256499260882577751233783108075411466811200731938114674902614568152273237955249950289749108653406050161082226716575147618540979195720269904903851050226831248724675990245508005136795741091841343999659703731054859005984090399469027787451812506840854447458141979076726544133793117238581016832576708204366475009241907615772953675253230008435106760275632876731516651016702050293378855813529523324068392674762463235182482861959653211893772095884542870933969018928882737193100466175566676486547571816737795237356072970064631109129758797513754459463177907520461832559987478911606687051417437360596933618115741029636702358175362561168096921805497313150121009888552299074354657696714007314168172734379447035351212681894777570517857567316759903703502945135336668853559921450398225339496324778275763547286152365731031325186270934576368397441197283090543157135426051369754942600614287751259380556856223566513516130515630081438852484860263716945771155202924333964600185810740905040924741521670414418632268820435686558211676237515911553237995683855359608860606258983397815989368986554507437267784646762845567803597815920144831282751099724336076972486821009077162001088229807165134241817665828565188469198764524824927569371898571535782321834170583185092401387780322485390693485774448764148505085681330968453845111453600692062487850654570325673905786572831586440860526885120713465352389288189047179906290926961792622558109003070146383054757977586362995837958372174391333325703473087193965928420952788121437363108388101742609685276985998551293432640531318048244660998271331335314212141880185018328535623335561493274724563688570228764283013237579857952803498765028610556171556985649960433118085924734828740729446884458363293868765579259600652720590508224467089112584808429884165106695174907442764902411092002726510447496460707383411653175320239105264177423792671941839312047894057974851767134439893062303439380566402976319393169586166630990936623410547231486113670916936504378650932578199944198253416606505800523603685970499629088483019800672514699938170829848409299562447068223965845890002840757948868959662722912403801607835127118841706739301780941043556176987083965194367061751324505460009451316376383272083030204746533506855407734987676061266292925581592260717915901344852681009273557219101381259879828515157804994725270971028915422326528285585158169631444550071064373224708364820211678353389639238259427788140128426104467484523730858330395225290132651152008131326587809068703439211719817829642479763428942211154453170820647485169483329679131932094633148094776729658637623606619774670684235168918641339740555093623203533949406357099356383357210556992302082757039673695731974290843136020188937359643709147077784752692778592974755790874938769127086507768021085597628877346585087191344261012442452134315622481625311077420564442140806718627347129356042098317630961054328897203136507380427040806644675103529768003150531966379869197831641369674286519244231926283124726830577024060927566856064218329472492482401710687099999832463740534786111493607963421387218149940306932811069541830231248817701049132893544907302635496557009245502632013656108498825499869732396158775923714558684287919882477364222730910717249945978706391767951939519278622422953370855419619725019643858420630966529779484524210676936400448139576554458173607695773184671012015780921011177082518110443812741911066454767604633771869083098739979086137862042857771058731984575076073988373451166094322288610095280251097778773285219217291500443229086152209121310855808062176155988614691188169855747440485161134940796480084912999636776839297126108026377847884108819151726888806149480631703192909164674226085419706402680297892673254550161343787528436290687829298401350860145934907477758469497666137300054049255444429874139378583928591364365810709676585242223747113368312674439700186062046365578997266335852281067082124371149013884527980887455350946615224701861679362372937466326354379573550846174462279040464613101980184965855237078519405698999315014450142403495427414454565686367199676913333851837374870115759002062410631817166020941189075961516683123304268999629595431618515555014700516019702275885766223421349341204586220273032891261192279093244844045754735755946011908964609306421656802692651880308532341121686688773403224585266263088671130138495241441764382237921399453635343870155789195631084949229993780242491893301302066546357551381961788059433798010241239656103060166912911637496244983983905956181625902234338773016103720966126006263947211514235949146002338793922399371830054434811869816197455367315729649420447992205463441272837069007051128668043259005435824550134719603193194164598924539099783649251246598369267117375927451337532803512818182350344836240706992737755642198247969725583838277004133211310047310219460383912395848356417688763865083720890644030466062008135632202216165735486487914803935110079188733903963042456261470017294803089165237756111102803590623602345961977291325480407357713922683278130324121406538982032549535990891553534654336367362021954000672561521927403597778049570724401402457041261656971667436370765089349357043149063097221067938056596312394607871980441723997231076546542728696974334154930211149602942735822880976363140522766304517237237057705303410178886685930921612852489063191400135044596534109393768926204993079694321726104430943398708928343187049515007313066399817618139698252801416683273869090573460843091544713333065266740763882763635871078275546396061853237059700047123004014836824278345867028417365420014512791685362022713409213118538499158770543898687516681285396473346361272647018918765958468334403866908615499469986182979114288289519847041748929190354890329249359332430211541630719725939192971868951230639639581910419389455988793333625122549831664856405193999324842602934026363220703996030102809237193369755140143467164856410370282528448524699539688730491140145090425000931956292000679387731200143132045017302577344423821074595572724597940002132120888227923022502769773355699167621228284297924740847120048129273432833314456372152094520573345438362486171529708321532115047856162863068182298188648877221261486021443659924897513268672729566420487854807559202553164087483036182459960111444604099003584281406791146706039656772170749759429411189815287361108907865021641282839194700507376079596885301841807862664981570267939129748541744192895498797615302237109336285982224808679558270366546199256113827236445444179746553092206074852632779629614725609134148192916812028512522020310678895332180266243973425710738582184363856093314043158292509418286562418272291418533171698536334036521497583001925099824228436311705580643784670139847914360191138773206380648170880481918890854954512183615424987845090779144447630650552453102838735316936971699640005943997219770652492525337705745577729124777247081578935275154802976584585562169024957856174731766055393676577403925858414280855165118361398075023744288280057370976619603876016392475486754526293783626669153273301495548992022917876870027589696430491770858144851742720830378228356156569569246661404710978552786522680758766301484995144854034822431133221010249493881185317002603150193268905687412467608894900814686909337123680275544169720371376940415722080206204416630004301793313905419290754921660034042869172625724692193231061053323960998265132297590054087613524320803252800176819212966852500192323587502870075014796215360183078096764582478798687391367192156942236078117240526927169330250720716474070895216970636355154074935238066224736029100555996407197807698879035339706202854197816951916733787383394147153094601378057562601964538865755945976869832692227534690204838587732933986529330100484624027299402590410712421193004807849205083789826918355188931493200066431945253016638567541651570081250530724329825465307834349903040771160080387466290873857831667955012082553455438041929896304667955675847560676998829214161694621852433322239589385583172482116241981681363714025987104725283337297069396605953225019012760918251418219604296087374200351894714524433889081488021469779981610391059535141829691717735271432825522349179573420206352084405619396025302747783296951887688622248521241191762417602152304382078937182925352351780392345950287456334275857954846317852250699459004402154848228370459862183367796340850347857585613170489575413977153167815387051088835507304468090930248648715582358845144704672240205141141375345043954751431257791936170366357152875379964097440243480039656171614327852066830996513609350463105616320389479685205021899824560450947250889628625442775077078426155031336287617798182756512062972611696689316666705454225782928348876893212187184690190301989689742411539384587793912462747755353803789762962294141553286114313729076393342961522553043278043470845036395034460735207959360595670374565981082847986325022319875638069425354717766762784963763312786000572468109622002814762099534239346329614599293729353790139891904289346605064696349114404946072624647424996439666619811234840983614257955604665179244292990543168844273761765270253253406869360014595081502701599028407778863700874557814306173913471054827593972520991180298541014383608416767681456274705569600259143630882826623286717907917241873329121000799204158370936212981441677056439429501652378084747980390206489507276071650327061844227659656283928099045244943360155862018316055198753657556471453972868208439098638704197122821408816617452006529480151118423086829915597914690348063248350495744842890989091923740674396828610899830985393018537107812514481686153710586109461118703693712558689092630232005729001750013262000433360171769954180229899774442656768909315313116449162329208978562676452640185378875687722076095931810774605698974794390712437320758805219969531698087533440330858184158174654476393658010025384536346604519211964283295802691806262468159321142051645118925765156751962649300054448555406622219268002382139514387354627494697139215278976904605751093679195414628145061896002442122700721882494935378877845828600271438452675009146417285460095406849070111828397806306546549667173133683857759890413291158199061181936827822683932046387688687748137348105270044987635233661403307716232528011288169135457309781913406564617656258137316518071934178746174545113152896463829644593794726246670148753968299753053805153778062613972589912514035697450854200764406353677411937746661547243851036435798945607889047020552250378808834217656027061177933744787755880164156811590974295908654218116471894508802742120933357207333418463254354690709974017741848585325420896929162119613293780641772244868883854570189469464176703065374734657440276302419408481298300515335705421885241279121036069377606356541057632112891228381511374366110082638757569085724877739356298919543654434240493768291271641158809480297846905990441919803994104635244943860895909445815380111959514576289502371058075819003935331441447469674451428216324564006551563377583677322725537686768573396618068220288372182660203968251888024261621242118507072740496891468997417523035497998386360380736302809269685114596531581596796176481603707488839496530822967254065137098557909209594784598144922005084048965776509143782844201081919020123319184318516649597188703628050150256778909296518432458828723194384175753548228118654977919617680871709153440911982164335115862344940351790869682888115114801982601437254284434597984804056723755484450166250667473030326493148276888920504470064364269665282644728493264547561280632100293829223281750525393747237540274999093465153906027232810024642860804638521810174986186155448769919217368176130929284557937305057251293369073729135140286983914922579385563954247124615749151417160675573853526964777195086222302791509219262605546646831582955264910033648546348177029667161070689852842098735543092123773733733855515752822515697868915068715938856843317106763283982284901799610818427016473163381672585910358887077966859108428336824462064404115475402231566977907073739194591243409932286395062969162676511094606485155236327537063251439052981387786412376352020753405285633997068835001641267932442841258237397302622615268558136732390312903544922803890596959412489982883688626792456707987316813857735158494438308342525046391758088091457179088302865052839466358278517355469681918795751049807570961022235615427066083860864410503463138026233116465840685422489371404778717889641116688979773315818576675562289852325555533268586582780892211669608997234651913353482227400792272536730684967119795781964915681334444183541636985564676439588687659945219900957708424909244608549507772753420555303115053178174339264692858108602434361349649528075351964740085048023690491928209379364974502725340646506878852036077230589669755688603522564459883762194637595136803996143533778813099488348708706255275671633606358448500534743071071067640058526982776907500491263358585837610782361916184062265409797501441051689523939480622146612440633582933039031653197647235053563941742312566318915676253080075556978122232237883862791036276024990461469569120422723783145220569492894357137555034673186579392910326934887582751597350262559505157924876895277546122184230383107496425921954895635305923876935657182197336996493844023876915670815302503145760197501363141574030591675538044022544378846218001211642295085648804038460864660099792802737062765490107087153856757381851140947757749080941143264048242347103212061376250950754306738962489954999273375192928367588978764445520407680253603339642604778677787127653542178698587367883111301420320458688116105893650949031641208516902657537413067549631451186180843455118591958363286091864675491215242616116643256356267735096455501131267181904395701757978063357499954189531740628624252202164217082311208933122162463237643820288333289776522438411226834058814189111818033823788845106194248156823997580627678691483873742449484545710272433682806593777496665432201192327562791510016480120350115734005875829036885495261070083319374403338380418708229298478241068829747999965327333907386796669231738523557924699868864378138743489500882533762042707534960395950646158498035085778756720807096057614450374537285293377224327275740870451847635900492038093607186472856352332553482644288200398594540903330418319168959870121862855779315275140456551288205619337127961731186102567567376549532536770497858277039407091067812314737035504364580647075272974151128902832659906894477786692003876881897891482415503453798308102645879237606133144345381042959755221250385569692337118902587138410301870214464429669094854893652880851925678221924488697889975456444296059079517785332616048275468805838979561292973255317189150686425472854226027771347991046162831673967795119053679648659230271356320280510573012863558162370161872395538022392984729246443885703267442461092092298922356963317748402903510534550794953339218413903627118177640592578147343478977432140618330187594002298540666449155802656386495387360970285090054175914406210101977616855280010391394660248335774089598915170854121825298383239387841150014491262386100868805360208020007598549162597917126106093834917780392689008935017648367547255859084791875757593520374737867609440241579143544865508921045173913761052035385139812709130381123293723747995597096499352860408550848583742473431376894657815104887071506846260432605989971314101701118589820350138695045299445695375345793895240412098220109447316566538438554240560132458333122694090813271395110182445348737437268682809668323812454240540361380905150929246765604830218219949478485737898426126613410826563211124753753646242981951179044499188652544051386305459967620162161191457298193014677873127323829227139047159981215774149719206794191480103569900605179667035636992663692929452970393940359457418227084922161381729353815172611967990615176306889828065644513851069074093908871516661366974190520552589734601299265165858262149840161188400640386716843613748977330614284475333809173275967686314929608370598850435658120716244218100855235124019873086405727877880448672331983799246237932100043578562627935942992588243777395938009745824589534492457610315999408902293312467410038962549142465252308865248932474026589026058566980330905274844162244159170553739635583775650448999982203516262598497884714954811263781566845525864101439567467124105798769781052672119582260601703792103735095967120600931120643505637007473298833487091123366334104293916375889066348579540546910662110361503800239104765569048588446195043757270163905464146118026279923043149089091985113566773410321287710579529741281845238369810066223207318188199707627446960124397144014311707698280379363042521868958601302000119547849866719273559045519329061801117217383458457652367613973165508563029279403055143876426065383979597112951619211979184078395665201190812842278399342886746008983062143411412028016080266460765211485421957826620902200306737049161691727332391929172818323431556768413463913483535265655790476210926370554754044544547443719664643798650323954334130431116513831121723081967559964886947937056379130870079156006110015797760637524861962835426407082111442879771253949501046419649190735018926694472891603554003536556020743950657386792132522953877193598245036776933225890381709642579660526493243863971028444314832390367273658163513747070694126408473406832188870971879851463287892109645761540696870097025170834598735139665639091465796557142466481004278410716181975441732460790737789184365938577867993177016209991189962071485860121880604932279022467088335329724207925696254556453331403839280709814377267378461082389831105160541075382063964912785536446978723229937443142237370093870434698647355272193940661953506756833247572989797109306445143186416340265438666200215429611439918591470766013046151491176724937422416718244586922931468254038944251966944633488111804582704336101837263454362152055776358251322845488639006760897674072320513836358742722602171489674362321528634863311167422163314804227894216163552866966887396328531154934454128603819255717170477489974975519510314135747469849882152980123720202015594655193678245373331760637376118539431013014189168163620955142197011019286389996691299918220991849984187864609624171227473191129701521247126220504758477044665473134351285157902402124282080182905221118198975941304833262436612544551876148403593418977163853592107904937683428296652624135259435051109213328957197562744870491846278415672028812899478020638987181630352192330672572213234799327824595123007853212442447344050675512590107831791718460429569570111834374315169812465249992314624883112386718073588733871551425390467689230536094699732425567028491299628858912624846621726332485956364400548120990175972098552125982106559560424416547981418460910985954802735631445223674703455701522948694179867606140824668304559114034975995509621155418661839510921388748876458563233177482209675530198792667499966700932666708422304862156583348872699017376250514004123411427441535243879818009721083046320895982722009133259893957283256443776111036454934900538778303489796532611936123290945941812485958315847643199876326914434350948016684428746467211499329605733158454845480373391253919665473821595568059196403306127508629714277252529012397246664383047066916022008311567753623455010185661501358721028928607561545449022702167915678714398456323206804395031573811546306860785931880309227985005247308230903529352569614835229317176014511597346460129284881837045849612378616229328231131034565446888386209609047053502617873700261020438126447635931961524642346422781114599058284811617532928144956651940072738353722781000832121670922305448430138184888981636114616004309667282610314502084829584892792444693624159209706643380159627276200888251244532396720803335329998059513757751031654044178976898373466993134721444392579711113995829001291627724140913020790201767270097057489661100743144273288332243888998129038882073381001305516014590234709023365946758290234313322974454691347345595192729178156268115958766186159197042656859019839459948974237838246641799140507322230252821497244910687861946450645837458366822990737533609838861459681285477524885698658638610521006150888155907948944576367393109257708878565126672051235614389834555736930461167433210944198123549717981530830619776221109222317647477372540372742082209330125486791361219882265558268527208316485926286654081314361889960692883553179928167274347377699459770586306908764199785911389453480477336235761169690349469548033844675456204761089492230186772429787549530074604790751846119035381142986097399561706099257536787709058256215241039216327275710291589341601330515430968194289438935133603424203188170395997197861642376689284075235315843820917708727996434073888685337838950011313190412691698405109103197657631883971120824943507987538453149381631777868288644568683731691057258437270980715222839229851105775012908662769176336096427067256214996881565608320425592325962329150073143012501147043611953208041839406920769565171543187259040605739387745845159597205610771170090194832857123997586999840835004156394370444048264253316238511593610383989876136269422217857134811194021620029586212749145235090924960424230846440415562086393619825079311716966035752320355653259828343801821981090545311118155393960438244459665017180372028342239184788785216216296150349629934465059020332776396651952307530945603447424601240091264691079867465379130949571371649355486068961249080197108230632712995900945280115715478857639239148766125468235682413377945286617157371578609189166874504074706699341245844006948873003518388694750803256354286311009897772930473382241335514760360768324291204312632270889176649328064832196606554244155135383085754591488021244354871989410847464321836639285374175597786271461703964722564343454321767770362807002543260527064576564799273602620825640184636817926678876681254557227774729784446980685695374428054585346553952659521993750394023753429310723836113679149315066197239259718690325887889706072583119068132467957347374338193344936488972813815012804288679663953229004987213768464680347705672261293554756271232336342164842695422116824763985028847344200857842063104952677573882839760888581872674563787296043955518152997836322179589293394744576899819505163006194078202535999297004474130215591482750052782750045309513614094454079677080352234993295638285245860553370139926233964235123925175451797865846677949700829531963188771674644774024381489222567423341149286926182465440934186267176042212005503353591395773945509960282551317387684112372505628141295279307561222795931799869835047669104294260764296908827901815670378759876534697162939255294397932743035823787892235481181442667748137028301030008727282199223856434505506470111602209118052299463661529798410593357770456443687729762828324913867862457517950773051895060225896570899059502766934302743913251270487195929583246076161039830238125984495786643010295723764344925120060019489264784582840278737220761551935349865672778964470730784228334736758721900188378764276937451765701572746006534055698203686108826173907723097086938275189273861547720896057656948168784850249123389182497242230124309278387728015814389372786024414739317836212172768943088733238399969216721881813779953878343268978591591970467930302442437739864353074326634702454315111242412649081777542872938513324456162855921831433849540576075036291548298986167984016685001524317516362056343523744405456095657189092279110793734350742385430723475371799527710948090563889369655375144898464546457944019265291172089568363714578139170250929907359044189811095243570321775158838155683774637843940489738344147192860923091571644414838368556340850509272685291132024809668922517233510910485163702341458348098024821441859047047070671239867838957875542280400226927454144333348098341832841883126175379512094618797165251115148246001299067213928159170737470659989895924632271219827079982897129288394583796931653325924997325848725092464244354537088213881341518099072835892982585058524700150623914048948734737228506789689661771423112483734391461151972760428271939160723360108863143274954633974454096896353990146025146295536368951465009753170838455037540164337881239465952155850814110394629434650478433293249825149992873429409435080945831376507446994320913043255414523984786857445217399201279507677710224386968025574018834705098846103055773969129028287808468974056859365696629175118078670024350410798709788335150277582894706281508847871016920082190244985757206579007734068729487332173309621656761927997084468469706997494234781274244840672488776322202166296097064888263991251112873207489127005591230673870609940830636206189373864435559371891608379679652518252799872162625663606532610761799447888926618675266861802745986439247869179411216116199560006264105416688447406592677789143306955611158546693113375186744918102858757856118301287073493412791932666278554925078158585030038461736967765363380770518607200777474732318870263960603064966874040964503469360439215268629316889720960459415782550435536642888658995707026232334688457388754630855499425810456322856060346956785324003529290810085481088669041325154505800447649194785935561324354659387068438824153305238356171110817153076229148841940484027396010148737525038869399668532389799996528823970997993643848858356233406505767862494039592195017578584328736237246865892955746364231464866363877989607535245907081604226604365069664993627150971460561818767376252800342846175711392803266096836272710106081771652355105043161880626822608948625397983705170491128841225103089737239592520373814384641164048345816636750138349723483849076079959722311336006185388692856773276639276917653756626284384327241167783737123814186256273719643265042806709128216584498260723380255682964792593624166192035816010449883088678711295067939675337888585204631551871092974344206068593084413774661337042668106399456102672244753989606046725125094530798713065496653756476613628532370621524699665922180535774751724809456864462080314162805109052163187382370769890901576598440397255322872218015916714367271573747930729725873411310476417935872115870896662347434373707250649854643809240726848670261227527885918939794608812522117465261573778369052653120807224484127870765802844268276687320597529782682495939389226509783628837852677880933800141385940814834344703939860255628624224993688207011609711465615965248841715180654050304382496019219340929505323148491908356032180522773231850729735984510783297252541069481658734859809960582829954047211784489277193028214847384233961902405256280980666913618298816393513491857390119278237677001934042145682280087468833782668754706509443517959023013697745042219116894472956322852752476670889903550709480560804088547106575876650153472722620756259299259128049187923688283392921911379858017932860386944576616861218458672752443325811194280281416925228067751828863193040296413174904655295438585614753055830533140314213961346007500288976254470128357347962910129716497123774795160905604050001109224374586075391427930765837661260825821107603051443632873785959563651948527954547137944406936443132243753090207314447307374773612536554006311429082707280612238285315451568169073708411018279198516876623632123603472113095300277507662172878163602807335164789622252110387981234626852174870103961998802091324191979187128382569769342570614490833737161318805863849117464054272682824936073693518137429587202988724243420501477436637619215011811184338845598185016834652334832760461759643585626277791935776865877759420036511825283719640540162024685853177940172526480593374941457588726119874269656449296484840688173682074668026125374362066073017350628829612941363191078838691645505802321499440109280276628840662916651182312455976929934172942064321618558661013020784553009082610711496521614365359528881042350250151561164460117120541811627055509659890671676398456547962080236852625095767078121753444565405414030646458840185093216010409457999956514141313582651212065508827275887098764209696416531600574268812772437434110912318041039838815787660139802780443919162025641115065936124263476866926173210122638274696298519136696495576875598706643474641722642916187085270557881755887553027665552730483184321809434243272344137677768500078020572873015065894192900913955299931792599486007643800213387418714375912468631551515554778484819317107932404034842032095670261708705163543704832874371976036617782112391121181103467430194244498945306887872081326269757746675750626641298377631889439138658344019552551778322681291673669048798102119592586703803983731985162760207300369446659123400835036945126803700894111867549708217652927389062644488730842390884671945612700154080140133856627411200020449751349803278971588002622347887685096217195106798481139870512541636597139122848145980851764681356444869180992652863862579448530097136353684536841760406394125948639813956563621811969285868096131085521679953079727101439039275682896813005880830307618366277115499959631024879547182182806522644080072553731020038062353798073886217973302232919085685593590549682296522503411962484738704187232497594248564119333987286934095154319236509504461248926876475559581083685100762411665438626674593857411002867612038472322432462941825726188727736748133503563043233845131466304640205221308062387539096427102965276389267719839845959158894128119813467777991109001232432891689668071661041271452097666692681423342229093955191209523657003007203798030168032963964081361375632873184676217577491270648775731503105319634679662309290744131610941598871988859704136573498274166062042459924382560289324870976121827839266462069161838852628572730487116456819622814114948040035138230473822439598815027121705053288359093506526991200557742034978375692213519016604389759565011610378478167382309958104082516194601574433108025028776191327932247942783153600817948651576533219577504699859740470557829376810361666171321305595222048594685297186300163865684685387351259142315287808243001866603770563453078626274924468311482829359873456861167865391694404163967809127107242728919112633499318129850939075433785161307879659902544655004908537009111171439699590037283272982394792242602540178358321139971843462361970684945594672920471791872630245964152593188468733112196929907995285649649209978448931196724248209782379930610428844502737185611866635699713072385752221281462615741722396038342987778191206176343366169788694907847423651865067957733362632261796096008801839987262260755097896580449054103728505160913090381102262436236632700199952832320935602206170335998121585618206523085171121817732697865443666699955973575915520342541817582396080349593311306385523466244242705137992659267508222927508910917475979370720505337157516089452556624937813792076078794862253905131948027671471302517354425151620864001838186828327769243806397464814297334548869640892388326300568391189168924015802316474958367005032510124348181805797160033846888394998445371700415310221783972024583139912327976059341501900027104599341720834466416813498067885667465845053909082619720966207140386522850267571825468535132419677516212020282245935300096684555944267197900551166561944142793344072072319160353955219897463801531417942074682583045297148506482202028102429160930168354454178861222534822157810481390466054245109873933582181440634492460917238678970082884051973056502139626230903381599387804786065723031465952505870498775380374409432969243780852047321346778395550953735557553777647986516014842562403200909572438261973742518390314044535575841650967555932108219687340170380659549904218583078237509113434767806983185253698326542651636541539904617829558849746407892614426831263495235920927998680456439026542687125586167052516154632578817871925064493797141086060920307296750427899741934919902513014924810607850681527391100795038542713790955041748812180260212010409259955700251395245338893595634149053331297791816994054511634167765044674708679994163719947138615007208404132145856153169100243635105490062986801809104637103433401864452013489874309479430124913438028093220489533111738324982288917888939207359785121460028235561777778646681911359764009294613925162000792786196283486667097835590677053613202694408354774144249879218771445312372309764360160028630031334742158179375344865417205252821022183621582015626768251229361637065143169504650751941871557468207007297161669262115766227725735083714291715535750003070919866413334926872769388736673846791596868104943945670386610328164359454868563095193503533512517654236459421792465656313860454000231105783663619158750102103032819562898105866497596408755947928243892086121134716586503311776675219662498373415935161313295103027341525755188226964848835531149379727278607518393701506314422769132114329671739174045735701448445963008588791830907789016688565648499736735761180477750057618542243169800100779199713820918646977308521510335232541826989863374842083425534447233631591279715528459848532764074698387976433802606444348461153329854919180985598486091497897660577670444233147737628198433317129437231967471689561287288852757537358621950570587872002195726917243016788963731244141026778086066400267020964750515061513472695602447927323288702458830682309945740952842438953203810159932136937861371869544252991337266291917728040995711634445795783097113089199040547105921827136051155700714022815986058942409183600795841164705830033767869120866011764466435560839699016762935263575178406989374355919585592510512416673392069748408648580089202486836346108022538381784912284827226382673568554136773849966897607227263253189479443292596809805994243865953088217580142915178855355200393037164476524110653206821217065190743899250712127520172881090583417308839044315340926114722685891460773438914695792799386269031975324454722937303453403415724263966506947207589798306891069950722704562209436206729929788947208527497408600258216989116748315649294802704723057365957981298399074638045629825938108764353559836877228558728203007071228480357245671980981815690641482574965784576252696404821999166250897371664342787830872722372239521338915755821918109039053355516033167464382210270562908809807629609934910254898623387174107910167070203060346727939084995528724611942838297997045228461278719705686162443147430189849318647841801730738651969040379997756039772699181982211312787080415983402115054006156080403146392726567795361625117881642511103989360982320215291484191707857996354132853364859128319302590175228421540595832188037448767662483412156283999638170181750894389965962007522045229594555149226206958369558231810603807946563800552164222187562301654448425263089268899814125499109363595342179111077934526386334733129090219723876763125779959781440153092478396060079119127218051352858605551016060592489793893194895824954195199270276561595182414677112652602378339403755228610964412697929114875714142729560178360996159923207103368436025272090716919377045338344213317305777296557641352287824530405808849722253798764762996053534126715440893658633020365406139632253723620099176771063784076550034627985412654981677011458101800400395496086219836679065295761508399105017258756925646222844951834511373392332513564654445735516271397639823261634267392197982203514611877329719382616916960400232361764218783913714620840249640960421209882244941670198904582854238538062992314654240288462833851114065984818059587793302006159972157699698604615222652165385057947546565133526810585002052483578234145524854927722739973827971568342717030977758876602988868748336805886933055899031127585293244817988009624372904693980151342883182073007756587788996832736170200271406261408861827398054059725862156586165901623031767853862036680707844670206066191987756648551128166626963243696054529128344226647627465974967966832731003722165157571997129683053656663998752208741799501048122837253748260799783185628831180651944984908035735273390456470411077153860244545606944500387118003440165625532700745463992076811368218714336993952871420767477198186891315578484686036098876101431685282863678834329308896562028059874454541402907574896444469000100761738723979290414148253814920352160679181850724336720791075928123372174692177396629903442507272426294863209676213736229134754658294460340052271723434439334825591604748195561237114933175300493443690405612793678405087381428274469176090910650732061299870898584305401993110874273378093794986068192177611963449071427215953239234827333757756564228166014172302104956134410596559446919181709029848569007824867605262770549547469996095430212903420035256396574930599159376281966053886558210282667641366676061384938586525021859123353650847665880527666123109881646478129446277102115138090760427468590047119140237755999589059572484624895778429160437901962533430346886227581428652400370909574643214266665114259451288520991791976707001711941373432455820458247974712583156800223546372064063407931220843971897809502693761417623039438967738904429138760909998853577965698651757154108138523224031033306247768547328514226885498650877655250199089440875255617095520533156615189488183389512686991689956882036976990762930958773810159989667412837383830091169530375162513872541924908624281263388915806684041493571459303236729112461363255060782069836071425495682740936665111547234036923546329327817044075568630488376530390742914201753018051631507095394108764444603577061986737712340854438371088910495211235166122375694037961021439131557932943830527537127351634117855369801545443495676668292402164790644164748618607483443517528430775219019178746226216749929562788060156600509051428124768301600194624757707098082468891472122395651281252313639423730382388916237964089543082884767993849732135727619647814801238990012014229543798892731226010882808288494721305513201845452047848412599702687333326558154594230492087917913476917781566677889256228823228334906914724167609225452532656099497297648800967304863908758818438210837623142847150397946206449947802983528836110352268447106184019871479166535512384389570663061586690768041611003610776944938652206026111640028839414674265683915839408102800088214290123501200728062065429728535773348984325085013319870483441637823731936989389185440737996827120410794370439745815115191934752226858095218176102544112051605895735355204459991866669719539321469686426834068945939824606442015382488148989202261993106131584358120275615985197734172584821695399558632341309004204798560234097758215208631489333467697593228451946311388363248859468162963102020681697032286957454472257016154568313367925739480498692534188481837372586359524159799864809353532689445773340809222301771151927739231129497425003837127674958284207572538944471337034426047927465997760818963832526582264053048508371792817405034140408182310812328754288823479051586654592036592662735729353510589926531004092674376608129429440957139044995736535512396002288818868159641622172794793047707154276415546223130303556541012994093007546011197475367097832830244202835786654115469583148246959830311357683876617566151780321611663881978453839356240527533139236530181571475335968777422635204962907705676804439750240297658226651074867134164323823523693762213312586309360897194745215703110531352013748344161025449907366155543918200620401582020245456620367747629563858704840135696829613205265818663284768617469575130782443196532808103231791947603015387855793541749939290824732343107342968555782938819570153555543756934203988440626349524194704852313090479809337892321380962764417590472778981370319499643202046142511197219608428526441972646150846245024388144319353510957531541469475116897341951548829383598803080170033467089395035617852519477915825355866321615153670868566368992181667964701528242116633799817064089859907167723457097452846404781047620678078644613342652949163719014123878304798011036030998531861629562270424846096102121278689027855555284219788096164676384934222931533839247973915845711743245170605968249901720784794742500597398437382780784965571759822509796723858214720548368102456008196458409639195090279525778644682044519916138957947410406359059414995065303424962901897701397551940134505564814094450050569857731891262020602823788656655665827405844374404639889448971340972591150892053141573065467872486913113761703516206359903423673244198448704932159770855626138495795610361886723304221558253976035117641752274517271585797406751558400645707742127839881325748145059565086407249509947045092654319677438881503757325887491495680085758670100316692556311169099698390930140961879848437826750016640418499407761871610239291219936833448475322467075334518707323356441543043878116275862361005670687477300158554284166746933539554021106930031958776329865772178290935287741304543821240844699471109154509633596724904356943086177529158195251321835888807459028431886234306758216207079834009485594203337903596922398724465328678047224275149196828639674139207562121431703614027619764760418039158714241162054873784512468829257977070649968923478649181002252670334294033908655803474948327793889808651623108293139514372396816376601301717914493388671304811359938683844724607599673257925169859398283757193559474810479440156338652992620643484149859456162928058820589128550021890321482641724783063658073999747450529151345202159293124560697303462274072490422647892863428279733666299028889291481582210334545825565328937643006364381746565422019053723271565836708780490300334635024111387365873078547918092189291047733665530756480767911346546230414637628226734792883998046859022290951883074522914242990172037950786551714178899040277197425586540540954987690616510634892638007839948470454058567097554561423340366387026101289552135813966057274326298260305020471713362025671368050125028843275821191504278274357330250741753664050479491025058319455136212135077519065116032144570745473017511769244513519958863478683824565273084705946795901158869404013540765620846432568626597584069473332878806414065951285869358899588541527160112609670451446929185022658371748588942721057281048070319934414530639326468820984285932926343110036587565681867565410377370577441464901061522612347247681415803983305055282911800403166809978071193304361123786842943889837187055104060188915897523959073273320334873858289194059983358401727462630709216233907867724087753668673276006407721938027332114043398023273020972148806882336117057477464326806118741211718107139007740298146399546533499114656392846781232623568814580850456963130590100073439199590407507932605303424566245600424623811087962294302444721686608536254349173203576541273059571388506225189826954012517485388942454605616575368839351371447498034445233930135563358082134150840928097776908547302479326343612732660106848059930347678128957128154555107524209063653659822498335261885810904930062741615578897357100364317538593708406031518431775065896283882716727764812730413943763218217860545275269233132947310115443986317254632064951505889846549156232721722668444677610719362799822771715137182224236031348090454655201501600181428894549228880459550492940419636615115340484584365363389917791222829952823310230312074612215390414679246977896607556079832931448332523841302984934282839810275403259784904009920248112600938150398744540250060626522819480669697203962125492858143575018910521795227096149085823531938424021660816423862292578062986213428249863684828534668942770492413192058040003850946037008273077133721229688532494043887662491774627079325292031069856443842769156589696783888029943565409378037241830473067338546360861594633675637943699604863271232314455911162126706967773302595954122951438704230413873327228308416936199780538638626453548220117781292347132900222889830227705956410923891496096078081631110531816942173174814873607402543372788452136378895427017268328940858197124883238647941365457054812890805711250276316965873269997203306649287370027140172939866767734089108410637994704027563647333345521572789220381851627508742396995751768953624950561914055274364732514049796889531072053116495026464169185695706145011127858203460787637621531545323373087019589662343472923665938598054295282916459963714903203556559260786837973031618039114668270150498017489415140821754326443703691169013567719733863962067146960851757540432345516166143587185250372603479958648908140650655856953757453259455416492210029979301899201051585506345372598696898356408616850203733047583310754194579374467761852778232862375788663544625944391861460710784649677754375500917104681503754522317712058453884924287369596802746902949362035577303135813451731901287064624870367827220485813255064155887514242632628324754753320364261665837579935931449311085752574693455961111247287259882055708830800941947511488580946222967939524190242498961912765040001842212099866818089669331036280689090998574161128360073750274146791410736737660956703176950285045212077236899057675318298195233265072772697911661253311673232780299917582796918141092264524318211989986048030878920744096418695192485230715799553409616452853678541690264590449477829820241856980224409246590604842233877061904894229553367443411401275233738751069137679374481122030809157333529690907540965668132764909901697435120107517181047227123718994057017522868607476880103474272150311146085241700196857518715427818523281911009487776158065735580442706219613564644073068998846162092070028251621493990170324650506069152425689026888686357122839040537107683779663265830008819030883339235482559006574057881179148966257855863400149352233214176340031247726766072223296007971267828171612401373484752856215177386028448372277298203477090406473814746083147870147310309439567252196727151076356248029435467914070391864662839610871555868107400441065887704595977016045665191462401024459655254184646984721566400575435543619336330370079438924201223355400438550976175318768938868011207957586786640602796359728852923583228867109337234742039264000280481813963172138688570944826083002177878361892073784636916957659660860585452225968328863097264321724300501939755664698121024648939431891922062653032339101719011923094954693593762230867255081936119426322435752012085135905928985512699399202605342308506607790598016082476683641830375326731218511073369353082511763472306724255924960420084361590429032118861519309473531613915587002172763943880461266953770354588903629700266306868671049449809437012457784951021513468850448320537206347945025424626464827256516116055286529571169329013573459632921441980605489985493749397467743952110402114663583731299150575594505451250895017817572160328152971394487264888298995271605747449640054416250482031201440508008300515804480894732294488295035057675198353909259375684743107053396823635813179871029968455757671083287351823854894046244842008318213316157304575941072447514425295073111581542553881742025310350948154456721294678430510529741113002355108133484681365687045853063050754903217757159868009570513074466833030632847657506789709750472942510391895735998864825855598186123680010971758365252390588650464639271146660231735682684014921018406619442359659930348390334734287909235901764627373446941241495604829009727569429531014282479559245928314830811104341373172935686817607862239455096062720019549401436731023918552660797367615192306013830927822595166009895172397171975135043080945063779842584472372873274486617863711775870855948977459266668551978974780845789573785957688971795498313718837221330100070963465507755090824429801618721166276088036057965651516591874497070697472531536649363102509964758820215014546353185228832471145881778272616190257145561967095378996841067016505680480552906130071824562858088708960511794238873048916169071707097772638190724388040964096897672263496633271572082340384065078004859846907558837078792144816581989097119531467522407450889069478904075635620534533993493276325552096586706588037070382372279069208479856983168208548617688345666054541630212969384313280264765792871071209650460915576851088668530053479233299218413519933062000848813722249163611755742386911715695804894331229993572338077302098762199108908251397111810698991864154487445807873146941433213448491880772039951310967389463497162568466884083653699660630009475465732320132396419279428262664939481197786793741003532430450514347923304983408432740174317598562186924764867161281493369403972772771585434090755164988360701095852920262352937354044360221138458959390640784497667641967670971269985997694608781290768996604377649432351733514233831716440426822741499023145541016497889668555056845432778405108536777146707024771718779169816277871545219758756667896293385783596458249340684899287356897577657764492962389158127280154782989251320585337319401211036768194254087346313391452826170251276672509983725342922670917690022803702608794657136666360734166485388043553460706163292582538456438770077073802147625201721153854243104351519341543297115976214490351649343879356162722179873137536646938368358936345272164268112710258048053296595743793928570577417503760799858018435044927411739936031496634888218482862065307579358963438075922386916871176361283379761131816151441927623210698930075821443184892920680637195118500352048498728132526447433063528730356758987618643483590882612612793526175241622010535709038025728432732814386283569175872993721559952781740028034759415457362813702266936085984373745675022410841116280492776031498520286908082718215861883758797259747406265857845038330078590216843639591512028465000834357604772393046197187529840190463669286747766381057327990997640095880050078907134052252664892008478224201848434219139485001790394576245846211152948377227028347650895064770408145007171038817969941843518463289071275118420487168263392370186565923314204646082211357370868465737102545648564990046398580058644572126227444438312659451133647601862165115795724667086893658635861000166289035763832446327938919866491602857761373571434410216662339103535064931797258016771134991676542242107179889300652708890617423754133114023041171903034980442170708037301704327656979642136942282584626108871345790854683549858002090633370276217647611148705149834792737944907374602426558991269515732918890406606588293096821550137342456402503837537100583507618291016206290550941204332713496610428210410127039221228337977206280999833696128637227895850709928533846759094047622821517631995952887891234925349370836959096914760996547139092138856603278873338235810634389805010658169331273546170653639985180276477915907719562588674846959971457395299261783385806854156511056971557449079411127051802839567508270709343199821003544986835494133618293419771357210414138989957000248284104898899473516279735446159790478211542471200200762341500162506406842045427256779521537674490951548075116371698637243679294764122952866692069533809959161417350776076210920390500489145702631227228805256431964364090032279737345350299639491061918621966409608443550323404719024765149668905425154834685123339554638116958978666821171865260750361802265172965978185901079366996450726053909651887395342052712448200089386159207651603316230784040896635578656514216749320120032961464445498338018148967923186075549838294660012748299958545464314949352757466307273132723043067182895416745111795987890389671565510571185874775645191659535256886292594646837986312165122578795568512404925632641775457571015993048174821684793310886063349185158495488676962503086797939871253470300482256235575879155103148885052544085633631472727437113622502546645138057217556877522481074166086223318234706087217274080214777479932662730921286229515684130068485119807841887908170351945702860091101387796559539785082320118065876286514821620908492521371928073652465406752425728203180005299731415093399433864983820948322290061933012241992425452093613847725390974908753978962377455038007530615282479763228293943582524101623200521263585478039073070533802244373726957845411192505547259468372780909064790090784462613578596895457696298708790878356838171696728688986642702734295046777970675694406029558321428603574861141999123754178575255157168379120183114233284338144668907427716215100060830432398344104537566592683531415052569551617507663060124819459858252774822499362889252237745937633373566547825202528417650262963510740872948604473098282659493697683174993896282103761848571867539795512541521645779301339772468281549237856199654321094583958030760618274484602942724513172086045577986528677580430830382681847709762563153164109748898497903011613155371357217286302333632541792432626641624491181788449547755076836632237652455374841858953596347512890242630598968612898993056616912581224486737286852669514069038744698991375272149860189734112732922223963686198503205237300806139032414120935059736993232369494085807446825952740271632208619631703951125437697388932807331781430727342677430735397739010632722031873683111119358603750821397392337418616900928559106196317334908924037626089697586664559070776105020147190058528759019461476338746094922893444824485174076321596477216691359105198116129839286089776584375210141268653109296260810345042220531010826155753863342470198859258378695461697541106521573070189994316742421918040135003714431754496712190511760077286505587206975145025115337887223030000084698423359010156675937298158300294043677022817677811658893351264390174372024365873082861052192671291380421889868315694612551486593806113190775327909780813776707066437121851990832951186263461768045828999997209933628666577270515965845263216043373163338462537129036898638226846350101395438810063816573375913615714011064931036755979078796200657312989398701705808370279720330356245585121910197275152309804582204778718079446158646465650215346259320163989730775792040706377221042179628912919286079115581212858724134749763920496612618538075218418221848471640036141948464788054831460726444407860541598811746109056491761291977037611520682869458935199390028612917708595659073802655576298299119374398399933842894365209188511245413734730807152260143452098485346104345527335592431785348332434195900536533345219050031795529172301251696024204013954623445945696508299666140675541480784419364345563490102579988235696524234413492221856393247979794197805076933830419254933951838241502201839335852222281075118400657995562653189509916192645170291234058703731957428885781368155915059518638535016409510309331262485944191716836975642863093968156106589325861438149550811015185862394410274348711899426158725928616915120120591547753858295477306080971416417403206315892035780316816687803682548605353819826676353063755564116800900278485894679029377388265876507035457702821542601403161525844969411785004291245103544574415732857980663325088572509040610925061147415850843980228021942017100132057084451293635175475976277127385627005266868379618770413473597017356840782632375031404318454871044108857483300845171672948648397772675743749893996226107955419979349880101986603313026917585694661870576868926250973004931869051508368606880363477752903141720425029994282224406156273328074283440472966152038644998274226283335409533282548305383844708082061839537442667827557100515921635505945599964628950732935573346148577371871809925433792006010673616368594594119002656898949898622661256333539400973744532564539322373794257806755181831246463073920024910120361523665907311753335064559268058452274717554579153698108568154614422135348473940009385618860142581743429031862795329810777267629397853823533600145000092786305653270680385885629332276442983038907432505239792988379583106774483100661250221478311854375382494403661087661444868431038223583548675623766987008569245905608306000690749482944684534566649277269361515925529517922793192116888013906627910738240621277375466445575154259753020482753166478758162020991116929011365771632443437361238265254895667284017613953501373404211954918931673089566184740257278895013283852924293118917611776129919582834154932552565114671555010657636530950951639910778184545057307080482683988395744987233012259327023889366966667245942486024031370586070674896773321787664313495882652519933199773903157773588486866773887228429776416451073888120270742956118485959917286062695046133238369069475314871765120804763491527832436762598218793799913855091874750837624417453259342831853892769935635297607909245817488961115931589667047333271635640856997676477143305327276819422365758356226385822452363478026209907098990229720870318310824577963941455355184416871710988706003060486830358684384875087569845650990423303746790319531898082162744520070397487755063378730925610518067134325690415594535404674733043372416507951208612645656932931693313820252730770635877697472972347497138156956946923097461682785972064211941867213977558642123155411870485321565829907491277886747734687971919429703531016536666228838188343024767592717246875853791036535039813616077871556986344308753812569447777717446928820216286088455070399674076717246504968781253388756222958002813499788410097228504367724267405380299675800034133325376962804969046447369500098185045760073645420678804761939182317999349835669606783092786086615059240316787608639169935926203525014563964606768886984965358457612297947438680826857975873962822256932309659541335714025020809023603470546674321758209569120846284293881614530908515397483380819309744490836370954405998680842359060808422954862705035859638853065228772963466620881792493937371909269883356226221051542507467308080036615908952213471811241165794178910129163925935824319796051646524238938544107121357107149705093616391298913992582790002399348005896610652923141694874465906022607102710930684724914182350438606406287257927569473800090699599840968196223193773678719318176138067261256819659520751166407427240184981939891977464655799901307138709022635267893622440233038670067589931009053955227664061826585402257609169135411071273669180955744506546160983659867954921817276612035228254558956867621611451478450383718088553734507741852744475866854052507718310244872219608961329042434194986052218538863967341055114229692431018502572073358378682059894040710658216662241256513942854048149624488746283646364785363340375684196273088371248480248971910038840999539986805182427375058463728748041459260987552042245988002413808102559525211093148349199171269050819409555911475525722224465534316375446979801559287808656144349630680746330397591525409383028474365754342305259646183092734254023644848660641667303547806249945481773264845638165380847828629285171939185137337426283697448615438819000126399175837585208170996572244769715404633288529259001394349904967824895774044125359830101743724861475258461359432351292545256517932432461093874277707580990956824322266340501539044109499965851765940079983092672538715364866266087654372082340603445407663199684402183775602998669509345299416008603157297444840428360989720519573962256176058536686014678241470639420445659001058151489033618695442321802379949464974627542560623508625574667819981100173293388365596691916204693954657628586104563144972587229658090849496565061873703317620331974460185728297243274374278577913389401328429738093181370230275152303290651022526751313673211141991868262529906281305959476493898086841413258373823811671142578207742588913439863875755392486890223317910715969331972844745985553153468074892488621227582185741391051986479636113579950598727227330904177168138823791737437739331362245720410258048819284320413545791625059525333338445003169370885607505910784659526463803461360501305337896253797802315475117189513848067520859873408805671562242866802643102510541473624726628729254298534972868833139982933785441852079065112103037725311498946856971664111735871879782068455853137398234087180525307645488790553073874970141988642238528565052583866216252732973458898754330210709263074438784404115334593897431710784804199539384635415244416322250252739317726387788591789732632483621036478674190996874799626826482966459190212999213712809487680605002640065237036026524559722681557788544867733918388415630073349929122097956315622807718332697456574680525011321401909269988398316473609712814124030637495761803959159165706318802787490893790730987894902923538685220859183219314881078732918389727671938552234268031326295244915760122367921574620753612066616780261018689702167941593909239106373515916004324253924279947785076062910390401515124597255963618662094131583769079779443259807264622326240481774171741645616016251976286819299043166857823687239365742296334429602693328162144739409293757123142613415437823446009985513499065149949713522566971639319570263180247153406670710019503413432194729490610639620380142582925429789963515905570561390204028349938982920735407219185971645265524236589704821863001154043701785157662881304869470588172479965963362047121851229934262582914751734548422490093728496201269645195249177347021907532890935085769297908076915774143398705196875809483453148103793472605470866005468766945484553939864440839194377558600212259157501625324970863317791716907838759484408217679067270616295484243894092498846549228382239120820821912172273683826101821240669560823272827273578003296958722200716724084493847178073307145029007634160298477912042209692426499391506670996122524187609085888020142575094519471692214823481849981332993705396938176288369833176432020853280868697772667014882830606564339040992477576204501456587264844603993594934556310751631625289800107764141970527347920923772944395302514406301303063513182193047827431109972986177589285580638461977329471843544189422828637653057843579530728253839359442687906042450324637238690495961565493568633093488503779555358651166872144958225734249568195566020731751508870797863640500765098437148292088541328384038329845522480950008323805616619160071254204248117406509666180210121033151918558163293802171307579680563434179905280903278504971517567738347776107158558818555282326809180677779051621356256317914071893985907265518073180904099278165086166881082932919287606228082913147173852131944210764984124498078206046836973762975775350628144716741406751528393711743781561196584724914772348346436712046884781459128439893635462961730059294882076193299931309573195673818620893943190319717706750191817629375026996240730089075110569889075059057904916962999695273052434256178009818312483207475689657527615568498213372370393897028811861294537533854059488311659087516833529404863680782903959370160091830489809600571259115691603658540415246981346803901594508299454493988287299806160975478131392182368382428500788215300771022617848609983924143296880520670403804524439030528841517207705243792017830812324967019621153289061890551759535043543096469568937717284656129171526564846859626121700656976309147928867676904653676103198770367440795405594488703022556522292657141933024827022872010782361918605485754682523065089160155803231166174028585603887605293279932555126025289956087502784557762608459867158820097026997577038265556111868959851450110344071481325869662135680425493731733269782090597905832961154168610103979648768642387696556696261898200647837320422375920530858101366228187620019272933127917410913215567218331883752914545155652547185769043510384555179530118910924277105957826175659992670966100380212227608421231408551813085043213264302061944220942871852369445764280128444069329974840023886326457345263805792902714417167603556481928883725561075798523128715361278914671604216652482046272142737284458267495381934963394274403697178762380826946100725800008976152760269930736200135988891220117194164807965059746418022906015463833981426273449890557353833430998083517970083353836229937047881280424646824797553230614473293930709424819195968238526261482371743836261235016566050469869187678013721749441569178147762503839707466731646062885780667831793498991296458032728394300494172121758515982914030427103604470004946004844175370832204991644813001670866905885822871845380895614612036848551819452686780280696964586042905868337204021451493839439901009284877004876603778903139089738775745240091043806144753478007856395384192100877358407406524832901294264224183409026962263677533628582093573037953824035266331342064245344972830668751051216533574932346995452645561685186105335774167944039791757734706636056916935971514849265241018830145378217092837143140491586531057721049167207068582625732763155986465797895992697053182482499186882102181297061060026759764597820559205425581326640090804612444385060341845721666055000574404465264048958697145632282838063758960142667939658992070516936077004595651992734595843028177103454201366098448820056265455558158003109985618840845311214107157703578898219813775360527231976302465305287147760172745436982949185943614628897262191149100820196954848026077119325475119786341594259946298566328728656444717221220428149428848956089934761081728517985218960685259548939808142879331237831165480683734566743977277365700522112183928019083302645954892992166253400794003397269316440458181925781888224426906377180266061239575323444101919505728888798966416926827049095247667898954713520910945866004174983682598435048428414923918107551604548025616749444272515697894748343550753426096890855075351082476845411950875843325597683574941065019286025916076133721530663338809068336386183749384062582584012491418046114177429441288043001567261663353548178303915158809701693851708338862012217874052901814566953786394737743559293808460392840571540414027426962276307204511176999717014438894928498320539330127313238990914083304710888901989919277412469718664030418742885988224644210904438985559579423117713864229919524265794482721904965157713772774805794692758147756285507707088288667740746929136637179079840220795703693194490265871363143506484134507482773902435038084251289667386551639075917697348627024713070977809343851066940631727739117874543686236067789544021247410091192667380748721506543808662905935214425511378822082139336999453421708347128440107531443637087083634452236084315122094009083800531329489901243588255433589010361791085687027323124857340911727006796701477516782214825213477991185907518774512009305389532728866460395652321403863888413305606708761282898768926318020174828080090213982086613952401146690649521753633991971780438064760786211377100430372523929940652237895590025763438425754768155199488347911354417561272927964983976554877334544684319037600246178441395680946930934841852500357754782396717657210634133929807350751345927476062434723729651233513492142026596421470842681602908870220409522372263998938560754435848659701971321889653076753252411064882085977560373666036178128787438750391948285416702392710047435511360001926643826380657602691445469606412278665044422880154852178006151942088749112093482141523651107694371630954876563029848627963339301670354264812518134605777505367983904193124320823536962516707040070159624124450904922501032400714908461789276643522948437191388685379870274183958857106029403617186413623839376237866436059860277646433347370292711116898823590168477784749648623173262159252746842416545402541083566885491537711853540368051547597223756505139927590731637077587591245586743971997901394530768177558774990518336155177623254863074676268619855388496186220126530282516476608085787488950059180324855494996853686567047678689927156306844549605919275211053414690054160664424799969825598181190199091879720624735102709014023967537502023343219737120685766732846775340519980127060475851425200608899939651757844058568956322876855467044476588463772258337161764798032366707492534108606823284654500009481939763794054237324076937936376129410438199520354034614069693221968553808409114828415209522496142602012756862988354328041692201149704516980246277736516390746570541777434226504245112470915944040608203826644201005604826991474309549779517279341687686684597092401018139887489237304932143325503139615547211615385709673657347229865460168975913474767307646094814851653696794849791632620217219324814693625365670852610653733656706715317793700344518002179245784836793290058893865343889174846975767682886009300786907434949831316604430149271117115798167719024175341244798816122555718778375855325805526701035285333700949587986416025291934947642974046372847361033980560096069841015851465074390360799233690718295892985587072181752076001433510335467084520118503910879670553684531949791414833414779060042354320425637123031001153354892680796210948103533205848419777085326033253641314503065014471288656439261111792885574927669802905659313451879816614184587560253735297913229213063090638624251740155363977396763810452449809214750009270838671587707233701182485281300667940866139522365052850494614084189931355200891814597921221888640004447688325801870943407543159844368427063848746457831437930369357270214238238002609744158923260775684447912430559064013652800565345411095750015872189335151881530654288496865645830739523306944181812449136110687807143118808799966580970137645026411287496313732073500463434319792563584786880627012912824322005136678224976669731837525666157801397279974680301242028248305284460031799077222158253518732105037011401386976030346342057028025180498301761772480174502341104591631886737253554600911758759737513408712157072611501899950856166920010706667863756453434700667333550046746191988773984283601862046905452953167266002570274251956121242883948448037881144197609599539738124401032018204460516670145838990794476740812297186245959103177178247520307738111978653172762578697735227735367188708921634518908213911770095577101259581109739287061607605992103998074675156957380793815130107881733895368914090035121066722418402102371480344989946889321497759097898150657426805334192631487120473648405829672002064024108718991513853739094140006567080545596604534948458568674012422435866866476536000538329966650304785623809394127268698758197770245587352594687175007836605676609430369364890361631825957827789049356124816154560199529859501353258516524769735616534928085170734510769676314675322950297365448688295492870800350630267784054928365267011314411562109410249916271329989238703145081304080078790273113299780282712248150278111424542073936587020064516606888244440404409722377783112969039898604941881490856221375447640579728225724151218572256108649720220936890471448983041937133898451724466325724719389564620866446379283456272890226189069496112108395311125375095500887124445501505479733656001421706446549249528867338525596983740519345234722392824130784252596184814697039707100688364167884912113375670054944201272567115871520689219315645389264904176548219027626122676384639367277990032448080519485578756639242603869312838998086965988018506994600389951348976009714691572478526593337394155716867233302273734708545224666462795045137175059666702838759957117419212255477114984518965601360282288079989157610893128198862878519379289407307444009999245016279191645040095104193551677041664403367688597237943863811001979299212135986709383994889942868007544596679284644265336413096605609086210083848810551704349973182987719135879518393935872320871819857190330295033250902216683095162470653459997344401323163180812500344907204923930202976527033611734162749656399176213427107260806874261788241992293158715925341756198368969835908060844299096649789382010047477952558687889414340819390741694077354546798919331467088629296779045331970037355936169715487399640298241074303566670941193395687814606587740925867100165447006391208439921507712612708696643118863137787301177975603678453030281234564491387172576165396379512537372454607657451619191054626796564837685359445525026556044369855623797485247181462692312724847440162894872096360743358103595270572666255541343097858211309951000007608924986910195784275376046086260862498524441044633894592910701355007064263172803294050332087618578080476135849771307207503863076792955888940334825155481035795462029393118589177281444956172693525930472151661210328358003335484291741700804093193317028255027728645044912125674380267230497120988577359779403528241109057732078199931418063998605473247855836346566851155675735542112321883045915822344803486814887284262494227712078405886084942354856830202765040112076402576901573667003916214423908574532813005929089793568340636129591703281098445186327191345745301486157540681659593765429499106816038690355797679271052999471110923911400319040920637665226963044271263526947952218925781009323493383977641931552931117766442571184385085073413193432904812371255875492414925045287248941276951721926576793673803292726990806548394378653058717857125930228232983988013805478863195412012936864070856560687383937567018166247205015788535459776016117243183044180928403726014002455914364924300945959246903809385320039179569605615070620907961068541873659881301336068650186649669300813518522876106720455103020097197452200847499998146915824466116468029114158832520359334168612993841849510082562704084020696057103929563405190282914098669541566640610007900783051461867878360378848149001249110250322114014893308586086112308004051524117912713158339776460887788079572940757664374796107714198414943249388133196795405660593830377155921959708249433468714340792362373095834358528047111198913738306903554868700067152887450106550979737474256164618565479243065144890346407436167900112292752078470757743479281233543716623347452281556248140121918533956247136644076731686544671865579121966369774339835868275088335719082554365265389433878606438459755059667624807537480070923475485435209823441849141581852287101947945727440609505738551538023418656850689439625150978716735498077293434752763802265125284897556394251706371051105768109394502627578846613799653925929840698088375748546917277209168633438916741104395895224395576069001957042529054235886504743650275907560224128353873953506017334459634127548008145386204390795770809283126661280818560326229435577920071539281849546635084364957248056592248641864028074946526769500277151974041369076994603917695398727253356162752768513026873699867565276905527864786818400085019807400919224681225562219210411927695044730054829207290054352730671175165051324053297125610635518126149449629648793922523014000216763509467901220144757145377229077603634394677435586452960546030387299338920208010558585548095953004567834123013275158301478628645950406752911635738784428539081869786299331380297184841061535147710200261630349099962750254135614578325361197387316300860446406581705268718002265128202495544222332273717083957615831116450187544176178139926286679055134448708679596645723814573303300300441790639562891562080105384851918332209927745903832117897238618501957703941375066625742348156541618840004918400645227202535477531298411999867018248102901076181322522154784740495882051230935223828350046036945475979671830121383149515832835437860823692941939500859785571308334399812525229536045606435330753918732952898220543446118102577200917909089008332545214194028613781513652097337590382520365580403669966270792234457490406987697847398434430629132177601069514880367442771172899720969597927332980762960962199120150085469834008848147922838897420548842647455184217883108507970861360869562952459257364744648548008194278990322855177739073303562584380789947016662078010560738948777836542717192341578045214440051372091607446932242654854557586661265165588236051694211399671349498253143381502390339306479887533698514037983245965040901085848896818878313478487664864701408897953025893671792229897896781756158782065235563703322291987829707910418815243728388088157904953465258993521784232531288402375018414849997858779664204292339235898716596280272450157325410214726220927557927026489024626309602214821564211343083848296542804482049184961241161866984436173970285638492638598397776186805918654061289228771074080283724674971935032671420985366822796615936211407298578630053208069526089020984637144067092241155746449057203544293063502169436961717527311290336349612665489946125261320236278688846185943376755725478819168264287228689234785844749637816085679366360075355198487418927148485778408176129815501958446106184049874098648805832135842283581415166333216165112322670583509298264491718991322912241365790741656950020215060876129225945615064779948315719548790990957085194487765784590500635819086678321229235968373385967211008616187710076759344281394611545189996539953497553705818743317203829663888194310594879744409938669128855418902001388820685929007239380227530531310154492114065948962768158352446001880087740526926343593226309350078308175810701849286712969152372312455009369632960489098925958085724232848195301527144542039811439002993576623763346681701327738326822616118994431199246289566875271401084452700875646291657461863149902397762227014330781019994860803975870733032882308453500630807738796633211990423892508271768883151234704602893022261634987193701026353326983507299072807357289831916963060557485337884526464630708370933382011765463876252179726499834425652083966425589518121184185860284822085111748848678697939525329965126570268024176110122018323857311518979592494717361914564828869939033160265344511677621681267617207439127141731016739933510588241374923875852856529042101869362466508874311759227994079550627284452133286466358794184807488235973632000595151678299621764893370133485661163022866691375507385856999294733469153299755448060808779747686278548784019067172341573278993859978535187109296008496629186251643386934188134988976710289855727184826074110697875541729525630146101025492554355635555781216113126769063506178163407482503894902984045666584246253806857403425144562524212814537701784811344280034238114803460945521217138039165132239276283703620278159291566788825820914136331925560000240761959403918030460504257972644397987094033235137934922233477515923834637979354880424349694394022288370586138216091712320932249258090905802302677463710690041811384954294554745819457481334013434310268959069650240023681243320470460625856070514298075476557387125239031794043311528723137627497293351585455329568873987946542632865430457201053143315456676432191133688134435319213269128038513364774044520159277768080235440106168315063356305418490570859304233507615738388056034284944147346412481906666429423307705125959280579502914167518237564906711195072056087013277025041115898773581130401915063331109147901984115843651533458477502106774720185582651508447523445805021070169332281027783508734943213080013043139666320893550012935917200886365415571692782232089760159724961694744278721497331341963954719091025477282112815745185502516618687818313172515738332945925947117974537187877801812611481863697233227459114824688988452806839158936596122658357645465845831463388791845425632373495177781627258532441088073509829730694643457288447168529428670068568136103449318290847282709162183621191201323233275547296849223175977917765179901353197799772741792708933012785662723682724954990032293249358479184392377227618879422053848697402711904411884462780678998977044216242313807853024097176157829180270890906046191507244731791491414727756778898387760814547309598010696594056380415422201502225345970539813249312247747619227569251855668121473786913194632047873028696722368991058468081225161653866978481759460722847828406766134780325935760921965321244666638743684575844598317637705052270421124264232920148607064106316571994663162966019669648912445938768016771025843795180771969666259964685197633412704613259183946706512488506651250287214861544170480033235002227073932602519888760215496915129730121621791285025524976089830849401308814005054138159623308632991814681438288792151848774378673472649179687699883562883382488464789044845463114693666557976535610900144705248264554314550646266621024760414853219206050990120733357192656035332774989581611889356952097871620050598519428485708697840633923572798306511228781037515765186505133458614634688667972636074409681876734971377625925297277777606048034028199155962789394816322440854707152358928451381141557103547927538600849666286893678918260607316107869046327922546005598595678085822482094617167077812093740463578140084109560877901729554967483001332163450911427318084995339029551350033153392316416664775508284713795202703910266046405450077607162180986581542630859820522660204679815240601446950113134416405434542469818968450487070134342415313513598805801367512448112019990376466108299856304183167736912060792056181044253881751022626801769830519100383540599184760308476650028858067993305098408723450412233394205340090795266713907182234291396921562583176339798837452275735496641354398496665779353198428909711918333195176882937045503963722824076145156007170174800308393480639707726789041200330583701578473182722958822733202670032448163768436766035886190473792431651818805774919799376488008256046881639648290375078649859174308941338534662337938513547741277000612522010371803696415395107806326055160563983188434812193172488283162413240075651386787292265722776901220977955353031969929107381212974920057763123509682954742623704144890850657981717021571662125622153730108627368414105446590568216361737731555211727053496735530082880615015311962695028309280757120755275616799998099777599198570710316215663845373343002049266912827805510581495877530106763129162242986400501540949088512210560385401064959596741988972995554557265163119541300549365154228156652151952547617616880455734967624364060629494299105858283198380544226456953764637411262940324034580351271240210054046252929869629572076706805406245469889684394242442527521355292148870723051968700124932173062676147992872688183293211999185393700930532675356030249281252479697413717142295154775567167342931212459400814157934366900247699998905700679042931505776503877272545922968937010771985377178686852833323830950280429724802972798912354376006696436683040294912244846341347030385359534972707840276290083266008343014670025386817593193344662541093032974247309730750434246983209137911495329397297627284509698292975033072991826751170554021149045106975753435284529075734856453688951162027619659575484445966871573013080296302836724427720726793408049381207897424316441988010935989525600544407721938882016324669189964882309259531974158746796420092657795923653791792740678617394426936902726953879160745060329138462058063795523460555483758176149413425567186625649516854989992658127845603307710615943990122413279119132767628841487514190939727981052196730322530613216797705083410322721745898629363019395106623225394292419380202023455828501397044879186851739245965525212589749497309825011085772258378187918793534980919875816551606089719496718302297178979504755467101075246086248980313246551756731167036412811598811434435544323668743209851009526228230517716638500628419869797163955697671373125806333975695170653931831816824685527764740646608476814792738677739122870561718619931126919665049618754041690404774494739141468800256788018509193150451063715209675052441253211010093523269663055113677114383513578023489359321978918940285778035019048203062829772637248934467033520274425762845697725790104125554686148612599725715267419937847172512464779737137039366927896414636846136189689540024249495684349487094164153670029927890291599660052136326338216893554322366994295287339447685005076031581393306704909863066336400831266622814092018902731477500670971161990438221018526539338815927853452897430295024243874762232927384051914735663037184010591981341728298051882855802107609938577175286921185354398172353325147939627243364177747520282443126138413843468972389240607548491122329087791101660374296124898398764636955911839646485780219230909490922455230873916219844109097286337980171498102147670760971324210739606181333867234757449073848204722580883584056018058174406693576403136865129650282618258488567408784071701888043735082120928456075245677778405887732064626801138015296845836488448583670355002578623565325892321393762508782445425084326570156375204267096006666699270640226896665203193069712543946343663864107368663766208069141008798401720745256144876962890559525539812269757370116408289334140381258868998400266045452856081775332394695856343504852879446085832923201840010356450566745572571954343535895480839870597996515958025893036547759978148024258453393963028106407630255725546400761464132465279159785524848608333819356162927461313988357513738711787957902178549262136888764994263279990119446471271108047767705116691929017660018053935419477135135996636728152693062158274968505890996108987683590648781410969745442657345803765359679544591210113415542559694382621621219096757717517093090353118371491824918942808803456069426148480577771900517027681310019152825073443505118374187588551507489394292903738032011428776246095794877557292505634332784646031420751710132178851286195215376632488733912760554182206942447543658354602372533436024966300168076052782700777984327461307749481391502439813801424470905994645709971714090385970422434014858809814003036703970483577437868505058071069510079633158301874209817390901077074131009141946809737158093951990942374976441229748356269282233863367109902576069903782326840279274492858681776599144924959426434083486510510727946646658543140278035322776881694988884915661718820741734083279776738898379765680588092342632810807071786573984850374890769983380641213026109126759964404770630085396368993131110124296186864243116639279275617539259894618003880089204418965267141779449702652550223237680055903212725083749878671496624279251444099527034030700222486805799318459850108301811299032424753524097507904461211137094980549182040648388364565909250536605104472577522085054072364420194593142159112874046778114031164940532519066623079964926646129284850813298604756908382667339799510207180203009303893534576760867574161252588417070814393466496568670853431045263950866756447125474574799054403233158111131120371530296863157031908570690849288985442709687012129572533133791102032190973013884191821101912142953729822918828924345193495742276466790391319921638197329484323857892259340547384839582734849474684587197382697715223673600256044180905788624583833000619737204450819717300422582138676517793080861297102703375249587600797833606040486436934754795203010633694067848336929397113283214513932610671293001897110409933635480700965621623962753823099738532325113338511377775836611338051562399616501737905864521455787008980648152783463194288893032505612936535292634525243580056616377342888560785116675483745770168408757062994769063809247519475958555954117060529197080065681672233368910699005132773145652055607667052508347577085403141071300224736227805105399066266022172899372024963594817670949622974641050160368481919631790905487191012006234252848210945012404707981408273680944915661477226146281341995537227122690349574428399545055202703260658752861197267823397530239838969410561701580309001879226911107409293089725204250695332279447669085092069978373239207117173432561259113632674614479341275818901043641460506053608602131080003205924434131333196442644064275292621132195963033109259004031853867781842281590644338568564216245956707642766962999453011242363804857098232532146651461905054070499878425474514519743088871345768714024586032267803377323928937985043750686171475007686736527762851784782570694997458240366376677303658516667602592454315985829500874154563927614980820381262213418410885112756634982468660959359032530861172880531729759092937861344761422154498469034524856180490210002448362818539307708219868656364266708532991552135746415775598957531554763862008072686002478991888436902949313585326441319651042736582118056196640955819777427957586555811855193331176831134572741928834351977491855435147870609454045279871244016306384295470501917170088105688577421902728250399534550461513288950464333655451128091589610006495953837240430651690096892024719065796170077045931719121336393832851084242857322325296493685740354822532666709929365197833606539709584373086128702473256806564293097043497843665190006252817458127755655852724992830596207576473630729186459252687181241515049643272070614990371447733426171877076571791025200379216049280905335312910679046338795306089436664593892052894099359546259794689487061280630289718479130460719365656926599524671758540910348021203978359569470873516065679054515218484993068835816521230167259344499397350529242503559934601490275659740312135577463206637783591140531826410156341019721339078768099227069722382525087038503600459739857389546325004985440374090314020447558779571753449758518002293329863290569025307122018956375879668341561904741133530805582936992484760423754225222420528427371864633445972669951164766765271507625912028027940189779095611705508853860060330873190627031036253744944741647910109399824767584107722242733150261385220534366665860479822479519868280245095992063925628084661138824553153241112225944048391555403886554195603179172730927459827223757029182217034583946085187527059907684821161065618457580767589801417711813333488560599894167409651677883532625438347157492182874299094714843493961900899185239099963816099460479305883751759681016661825003598874249442177743365287578746860272998143479818569632129944417050808698891201069092658709799167042581916690637950444046162977176122501859348376131183044212874934365450503040438749068916173299524817587948912086644680500465763506187809231154177946882873967019536714134466913684776462354562588983815118316272016502779265915857757732388540521355566722019913926798127651989249610457602148488188396984827927899381083197966547027682952155285592683595663770807693992896619050123443953880175320841037007453635739613567711273897336731112970080029630732472137844690227935483956018842551220691200292314489680057592181677189469354418949842134205204083424508298802228162563894258198675091988567071296643964493705872128259903854112790187292149716313463536647417274042552216721116455150032995701611697723740683013563961447318447672138489953016334797400044534511502335467731261748460992637413039088596442901687416962575559202495523728670693167180789639704938161374202010638736415179554406613940996631772461475811023690208198714866610536489923851103573309695751790150698039538796497280534110733691518634965189939153003182205467004592942211874389358216177644798071305061069954701477011260818252824938050790094651616538790030566233952439691074356856809164243803903088204463920797381350601757273804752336173656044473865390126245051856377474209889981570190827382890213859480744425087493515824638659959892895702736265372302632827257553838486673172727476101672792443869180801982175250033411002873184662577973533676190977845312144915393940497185681692697093960932666191233557184989637764655065607305440757881403118544830718578183924664208427543280425633630950516823292349729570142703278489125792459164186471595791557966318766055239617557101448048050288959407206899299053973861114295835795628216243431294248763270519391991551549482026633905355132266180141218537540013940986788501973882742244690644824046016816086396108466264524716811705846040029501991638206980326876633907725329359985935193015059027651007278710409906216808336683535924408126403972489558350359341040757031058925451851145848875910981178914668438443301236409972735186737999820635319830937007223361247660913130529086579761042967632396825014824856738859903005599813280954979792147321065353274073539044960318795209039497028428725721721400292198213183375302514743596252492861869963123383736675926963453897196430096800031027782672519156067342495988706223079215636919149860180447059338037480880023479141935478523446139948206443340992299595946829340602075136912406307332744823772758963476693177982548629203805217630231246189623754463797480090933172421496031862313142053569775028189739881608030883303568449066786825517628017516024602541493126429233709121464620979986712043542104690543823431170470387315759698250071541991157907061732613272917241733933309476079212624226892323139387799009660804096288765554523673431806600780033530796188885221427673369370631607404278200746414858980292822041471944346171832422571707593586459316057339256584240705367245319071529463610213407576650593926321964842760009444499696002247895181406990826236046448963069123009334593087949845291435985161565784849399037780756926441618880989285102777419315877888736208327525204090703537150346189933693602025008552501880530435249272956110710804277284505840190172693805751729658769510851168502168341625617233643804591540865995799610133631233615463585911283939368678781061898342794973249113136627429373087556482538799869028275627363216494485303293765981824317490262585228728352130587127248058791183170874161520297968051692290970863187750677669622563697249178996976871981474619173785140062617973055663431509632955467496012137479778558757743042324268234011737500569327381273891956758622502818687690565105121102012866386257562503449855894027188694628510068372211546678519528897678834342173350429906397990992195944375963619185359321438949375267951344542421476832480963595751227375528370182520432715437360364665678969503479230294136892624094985457118896179467559838249240864783229275933074760009206542153438925479090449159774389913627978811376876346342807197413375946889172210625152136085478142172806607342206472908565130195500492643636891093441395684993766708741285159486902120564214721832835816359681394968158768179222396752194185154293071414303834659748544075353698268767741688378289273573638839745014823030728042101211122984208797832326964115941639182428396253349602965841568213876796480834242019933643833423104999128078778268022639202779057847548331931767073192735660890135399730850917704163854530512371727905141147861584724987182019898806770607062357371634976205605366706290775972869975405146358211025701423248245101217549009343103994341643102821013970952084950976826424586823016066240748793455101057183849322447798112466986094217490813748451211613074124005938299213028742508080942733155142278722402259635210177181555710470910748164615200350555768894776077217263452325443871331121702521961885942764370033324905307712140370085763992663284950390171517508495143020303823807559296413370459397519896657579983082191313952699556337207312049152699136218525597439935735691970337909643870490576748683345054485585865294143546107934361056546161760553708154819490121080980525563832740557546969539137457566033330883870352789014863698496789504200815723486785875562024021417099778962459362819070518303665799730813638003977006119786617979865365312674769550275812759429222061960386496821702730553259627883312180804984501471359993019484440621477013724411167339345108306198992499178833133031961085047565090481142706105873967613351350119494390631274664014640171909584347443510744687255373570688770598293588317585741885837419652869785685204904618850331593260250182370839812394369312016195563557413474484713313267194729597338186994303306555376600356224438434170781090767614767008260355190902201680169352141842990833414710059795958781312373472385162898668815573434076320581610796364963832193575983381737203717364760794814702100515304239875771635735227730556052368911801896799118426523499392939153767748819951116251826730759323778831919899832720886320544431463018880006487929943737563694147403597111176774251583799693254116473480236683959262116167709846575561217626360714911853963741121269676382617376212916298268706983981178228681112262977819470669338010790612120998448680281265061798438929459904522509961123080208792846702954042969319475284621349133185008564577863788000419741034511042357478000107117212576696586282538116537256583372534133132492860632242362959365770273986866269572972538725124447161899602866917496976598797363789928704057013062680109507913826435079801659948534279642845410802379926698989754489518457383221943183548783895042815059028667787639160888084337203802091143011370366204145467740170998968817211516395849791073391925120363795648750384969427172034941790452815813681684903649840868690206169597557799663326784260338019610763629406971924832766127175685910070409466940816974696742898307588645340541753682072538748524275029798697139120524150578652735766796544603576314450460447591627893871469360102456449791679663186902898572157428098163557746857106551261860556656131989086640706009366836887535335236055726638260069926774729837501289898291611703909939038482172155132412270213170519798629866385487776157504641623904986208645180577533327319445401849802734942898243400136285212577435270075523777709698337335857461834127298410544043979884625060207978154360483625682095374916648525950437986409174194833406144065661893046340471378856883535016885415466734345228771327880124337153004969432296107465597542077772411078316193239368654574005276899352228703645321880138967877158496717377403256931700152351263813749877310175748319731755277833126732932002926223383424819375669742680145723032816554985974726754107548978285282689941725311934110945991572307327184022059046588599972769438906470037796205928750335031050307972090609649372177297851331306516244497465328270703969723471766140566849050139233035759526648080513427459283743297560633094930647991393117108768124670853377472360598732876004415398679371856594457785919541848236115952584575558462063638522372012259748862981839497894855263994957598715697203420218569774186661377330634483202894453541579212875517505755913926249180231849974670791328571704898090022060550800094063093868891037842304450107923700968218069542017894258040589615992054166860465289279318239680507073936264703916105849936679150564672448087817644285282428166465783179508079392734995204476336282164471186793113724549358947990526479993061363242659309213494082541903130164491339611953116040378825014456393511759878975104334170123411098490392748536214291118932054709590434401933262217333070750176833950507122200734860368623576132153279785536397368732678925117802445344479399652893252795640266528576986400363561385656124988287451625527195494838220483881485972771241682982797214379316522127670477103736774674496044703214151267056943140968408788150197595997159671716921792254302719083048438928469799249471093003290078481555598256372305421214915164483573922935360237891677485751950527447946050434650450980124075704267601229765382288022566468713804089832287880391019770771347089788188734367083833464553743769319204169287770438804732883946206466282754948375257813904747098963881544757854689672984773697865192045699119478652521591914764497216658879074791266173944752494081933719385621774760950079444320730005244625431013960702770013659630080514507332722752709794415898540203596078208885569156858769400043436682017140068108679733073727238166266031597937144946933907182364907319892233051223289203727736789352851620506532899409310155180205685454887571734947088978876265420769660242267827340791537757344502711949782072686041939717202365866439855650136628283033128348954485406942483563668795265894594189758809660965101616431973237759469797043739329366663850379002643296177031031121545568698236624323996166913063914654900391361718801955946789633136699924636979982865471797597782435723530805181898483773463933842209447608332072803730462657970641192471842587625939197819568298586529907705089740321742423430850750848730471820216123786352000316378401709436709283697817819914109829752970097996566141742847494554569928096652470615454720722689282698227266818354918301702385506581397641179968665461189098473155413344617252363066754164997339044272183862960665607088749196546731436425582327199055821696844260572917211981731560646424581373258015608589664634963298579346187556899485268422111727556879436982204896236934752789755178791070715671100693465138797386358502210051757412284942833739513681234417988959844120334755986318686591183046207770708161077775183776431165458024050003547124570319545720051016471723154168991149166950341858918156120073565979790340701831380336555215435962545005027289151541600862412271428838400222698738607828981167794175392431274015518770451737644749849310103879098011788758768705553204560379501083412859326345261120768445096771788813059114663272181952111365985587467507055893440342983957761832633075296451539552914560694322671057561056426505104509854264398950298253557304199066992673547796903316060711208508439481460071330651983521787115376986053733820666097769243374699897958521905572043647383462933209344564560614908104727348653235063115657088335825012697215133159774883565810145765950482080933509082952100096327135250738874984024241528645052778102662541305631511536784065067170403623545724156356853403828217878394592757842468545419945898077825448217970950742965145420188636012233313639772965853453933683832863285213657868732714036804788091757239277640365492692890271640281353404008202170567608037144977554489644106647727570280470655258169848816845356693099667210371693427598562801613562539084017173799839820657949883053148215950206974402492770613562827423290234574191212075481801123333851565357375561350511890446072720085654498930911370818860005557842509826287237144528804780378452292331513674592066814650507272255517815223408723220378318790362455328189463268474937075458932327591592725135519427061247510642899377755432458904598073460221041966035822757053567093379644423959990216305878289009961701897915986189992647457861126815258459723489407811525270569885778869186731466688559556475395716325191117141151195075408406168934289106362332184565717873824699561290205568419648390140830262006095264629883682296015863162521381021865615276509261468640628926606340270197480269335023195307115480023593793517189133480525103718308537909236428598427620907062547800665099783126073185969356235554335918870305573721605599892373038482355878068412714972608399356321755964924091270975427112747631723655669121887320691981213221492066491181410901484984137369587740847236964485881068193992434162376404061293722316065433626682013584517172320465703926210836867138798023541209987318025153403057089977678255520662784352127286438241734454636223595861634486431547165911757521053921994571336644977710496690385697828006674919169963944997097366240343871297497565491147902672229751843029915965658830481758422305948083971029320865916361903462639255265106492653880515525823455239349983275617429555058713360722238629738046175524110974292761049784619138764167332158665716822394457072583440837616980946367604687116187946795064506352299255980140639239075463310879673356160616254089511550501788002070486715869939365107358122021555100937238743180530404909668563780660113584809407615931394466284370360143660753108789086379263424015385962639682266574895681517639734840933165059570334229992005449730491043535499157506002216586709814479502279654464110670608827671298788509860200420604542616756658282515314300437345962831967362488490851495882210291435797091822812264415766331019674218861387483203236421077262957294731072313301991120485189237926653972631485519980431787215429020068637640756841688287023027367575968015377295416736894826219470802817821659684323805051234572992691367686574977474999673139304258782060543226279047019880643005499276824414861048778614659067019735008439464965283574772348717552771720778080870457645673105834594000567897098190767733087376270036243922795096795639585191070157094472222107998163184988250008850660168561095704143941631098907757049104524949589645748500979329647306614365403063510436888139261953435457155448684844294693206221415307181165813790472771277771908460079298589968557029373060468156054342914281143029476417106027447640229868610344544933570351692602782933644465018130385442765344232205086530665128471433318059281542723197841431969411634877952082087812148141738830985496735058605420765843922162976255960627817562551996080550392870947219944657382833329576691460525258715868629071572366386463188201370545826013393827044058455389959939781819438883117892315561214404664271455452090784013398067670412811828675295933841980106732972936922715325893062117385487080060466771565383482226911545570369221405638783453731549390436838971515261594242170921366864098984653066103780616192359740493157487529154946072990900965580127279039351915002377763614196001399300121749091809426389016191061052153184501531331010141791407647593656273095766724613500786885898714421258594531010921517583262918457718437168116175332376803656402631253311312471566378022746496065927818395409356484000057673810905072411507917121997679724280604032068748230565267942319659003000974800820048332652904365325309049668718973065317345466184779577269799287503103338409463526745815979040380411191172670568590286275192509323556340221684674099033705009394462493340286616858933536921308330013810992204370838320104019869352936514178938411269617617023543083560031389186145713564748898244608886141087116093310989923028506004069427983590333308908981245510270246445234066206787635477413704793131537702299899000333066586697152657850903282134921163310994987567234198711397632059761346857388255671520852662380121010805877732722477993386075419478908982768023077022635953689102185360719443708192890727861544390788761538791075570524280286190277526244751989091471901732323866094840589460559415593418922489070924407790588484549509640032891412511812765452757369935499007549993679469721709970771672480518335730091726925074360719115037918421756771818179926091383997964361825584867241343212920491940400558491309921523106835293293837991530794140717239573570085261527974004906424057620958989242270548758084795775036048978384600632415418403846394062472874145711061654394595090455014277410744337242356526992662700854630986962219030031172689620585837858411817187040630895343794125893474055729121067751919858444755029826746274025155837556790718142371342428145469480789178590501464445306806935151797494135907129688092718803211380095602413380534370436643699442837142375166406531530257691697266776178900573509487635245772277718738312769656376624696457940144286174376065162768384278218008000276790141627245013444046227473258046520054014827064782336884225346559422132275981920810832081871196258786416798227967695852504596906035991532218298038374038063697113252972547298166514228182664190812105927979183003408919823290149812833501290730339162217029609330080983845794240255380200311912253877040328525747659560372232986046192467671640710489219621558489887764796487862379721141557971138891343036722916645847427421346929291608098881173506239213646662404533294118532078246682286290726417256887542552466524901984689779350564528761938639683334675366060262170113064168574659284063884630486095002744843736713334039528236695614254519191788090594055474328029753799760967598215617631311813444202382209044137372237500663799700948872399645176358128217978799294101055219748461508725090665737042497069516046831240987688263168904508264380192878988321458952615014560376047830123929547124291310243006909059139740536841471819142607922937214705867048438769505690537062961503701035181504364050130272387494397141805430723908929213384885712876063190111666254700276984755026167083012225645920323175946022262604931640965708750628828136626973207161658069911072082447209227363301598004737410561984841218145260055984677051914402785337902419706424125225753578241945224492585184551168428535052751755701202262290512610754804334379697207250064161497896038185689834070389472535195762016764240962789746898246508643774320317125644199905351887495607591086319399429114651066036596260393430644819105504622735662162356776179320894414726031563389510873178691947231249805815470419819189457930919764925800652350008665458820559718895908974418981607803648309398145746560884496516593805811434285012625601220798195382939338859283789381071453394196741291149446028819419147340843747264187526340375164799051216242802849632963536144209117152042797760187102717287202027949959178756224919688080512795018480880454825212216084633324768144473363223808585876384193307673059952618252149094708031939702785901416863380217345749933425013194212312614508244535090566248425360178119948192906941726214392608050288778397243612010956047196454957769818641235902597256945191905619890536296684794436912772451132827585274684505184112314305811535577495333460254188649901320057027373324365207285620926561397776699395527577704785523793381940307005074248955060239346938477432391787624882093122522407132753635607943554260696444666198508596081373419926907881308097141335118300328060523585804666011268816413982327866602969976035169618193076197890844967178140426847744903080967607019630829174617230558786182512535559063708692217609045963442026183921928076057572171203842643582595349615656556330359138933094869927544533785238016275666438594832538831415733918024665062431926598970481671462355931660566345503830858330817854653134645990193007203918876956311449142104168321439160961428119081197477965933481194491341494501426237910698802043025000018257418322297004707283569823844461645597700920059569066563809805944462084157015333097035488696604996766300010334826034015297897179028811872560594638771960289257169369814438858827595524640563324495216364494494470249250818908932152275075151232332264786972894167699523869756813458495995800115469286376628219536624361458066882511376660397413986801979334051131279332535369333095046728412977794981010719660131370817950712040141527090148114262082003660778960637515514145408861297911188240678978504492235464923994401283468465608653421874143879983894995000877670616536825282498210840041630075957822588515215873354544727223361817272079238238150253468893885037232348475522207256629316732290624085826193263664853088543650373793048043809579804306482464121571322053898912432425626764974970043337935873897746929231687008369852458270119754686020122323069012352391581331374456847858184167071268270077047926187531923413695468276039368174040823966986270645992010727764919330659659419953180775698126099542724760677520221727005987789882730103112786147178751969660671933748776658233329689493602540580284404267337320073611245149263336015541043711816915683419563033204093343712356627832256140712055794713711039074745335965228311129784615098481701794338823337197211163764305900440923460738893187613114077005149158802926569122025870932361921413561364267262937039348181062864051384557851347271722500734717665812976025203493363171894266862049254320823664494790118248233903489112432882884934840366635906738723742625596183337221335791173977602707314084292984897323435342035833795034842319112062479509766781370474204043253760128710034347274348456020084589921018926192738656213392087980479486409850704541068998352364798094347843973099282147968332422782972365450410893910304136558074035572476539365634348418589345763445621995812230773795105036663748523895186894859171014573434168553195867220183478124048514494708545012493837791742029065402704793733546064564763109291582707105523746296149420902228232766668772046118178923982953449415151005595096235173002747307001576709217110542397220742470991978115191637465070769560000057605403381028306438548087572753924451491226174951786139325935007903706464796302465390065052810865147411914922640424416593462322812488092524342439400164731591550925411263374841701860268699308269973928525690508911550249961950174313630344138821694261372936299329067232848457812107167698405597019034410674675399697626812124866941182996099216023868860167734552415991846459063991235644980234838756310957408700304052702008350885122192534505165573700631865762427593715611469495232014659857881689899335423123986381302788972656005291450668121626886235400847307413410481128455771487679899202041659899568898353970173182357060866843740256022039790600759236233136867832308894536909864851291588829273552560584933333353373709763578811025289467667695544040801197314747961215449051247681272373292763556249107376457698116045550586567228095086191128753292341632738904817586225715972383103514651171594475852689833722797031574281232739683074009724607344505957136285297730080103778463319217730216855427517010694763605159673974181088404889892043894493414546432662155660702561058563344331036245950243430512113123471230972174226742364973052543804919758953095757812517173790141183980337676482961986792081563657959814395952405107564272612165180480865768093506930587153622976351653661770303819004996248989568642105564770271180115502022008534752213856148358064606003294020269919896062347068131705245635779147064724875138212340630698917304566447251136325420962520100460418664006242481998423009628335843876887998455105643487500846038918560080608444604472060573134246512110475849747783036826612988962594834974752924700864129467756629882695722771360399875205785981391394999723208452407094917264555408443259689780906113033452615341671429377873848957052356984597511603848656284670931294901328575320088310872911062288281068344273046785433602655959826537361413711575880083614631064783870349115368802590533367131603280705206723987813770560992047358384802085682038325043912102493105901060314483099167411905258191886406184977558170478652587548605420152880262365789437377656827112835898642706379676891857718366773828833825274366565631316129479599639173848552679760357282720104359967637954838410861460421993639487582671922691572346179131486113686524834170419098925676071188562774018197736227178687192005390147321483469071501113752377107464031391661161152678629766486132916639007957418377645375522795501678966978243170712827641420475244000849622146771251844893488078405739418428242522150654369800133711839987276153638425624457832061509948210606664794602362023157119156052517828569333976772610561404314389546337850747613483084616659768784733950903466794060302300330855938501198424388677695993333488284522855267566958269389036993292884973853077232319038474602147795064798349494392616505636707991927543729369321060576541226210830392333519711964097156664258294461289463137126914343624781982384010006130907468636000456874708137575830892730430565235396565448676333524020389092029066808324708968259704044117023037369153523698589386813565735521950898813587401311649580505284523458824240420554273773693638568140912079371729536454288487136244441693242618898013558554581254172946538657809058750467070263743881127379422402845113521361785462121742957720290860856230254693711988415463715990673820611330739527120019873670283977496841176594496727843773027328624792713645451776815188740679566241758507480774088288833733410988662355325189675090354934943599049388312716261762483358688129102315075431157010763340644285109344502885731837102495894940961470724220500842661703470329524737371960585351853304772897248923676311784345222284450810216947442590841132260470300426473908080032303849906128949864874832366584265109533937733887905317697523954432160805465290001713976743528554885314603526533858991253508228930043578388444585912923808288791698144192924017685767410701183127940451127995648315123325630352825755222513924670516793218164400279389613468482235448948062444160578530300294800171363523308615777498097693881671094049604449716068472655130018377169079914013455460044150969224772583202240046203740471530895509935336359189667347021328709221822663002168815704625058998416747261682285520828415935415109990563753157051423374832525916369404704033215780264506654101016884898668633883417830953726812355202224568605920628126585839852240895126044632215640667862285884781935059199638592328798432438141600257366792016134178652520662228905147090286670851117266357235888713051226274010442290043685691115569407824079993732913007511418840479336880119898347343447085186762557608415140580779714482127170299305608141150546356391336581026050519479908256070413912573065993112976517767343842612851454741979442470388977809075786289427445547182800665435553442592538097763039974074263286174248525106218068103359757680045353233258633068283468528575912087326470503164976661636894078517014493792381364705466067511078555964479500957358973842278219378966624168332501116343009995180510652805157263649272197694450544253825532986834378503184816332112243436413573286046791571182661740693143308949944570514850526182322980763305164436455562080610904998312028882843503853506015041949472513666077135066697297673108134905015037023292869334570182676953138482187308101709935868146874547848482775024453267394856632170578069111491471510656051824920307604258904351472338851554173999352822308204464483403215797937307500200699617504122522387665693457581578146500903970023908875030812182899257919698626954766940414893253482362350241899557677179346109173598622058456046012809693188375747824971489135018144516019136147876587212122986311087404494429372593336976183788461867365096459454139233212619342851161891856269369175963269674204178819625463173007363395190758015483713460051009367772925588905335980170453016308363490111975477011330909594233247388913406608788327941899606687373204603763347461329468196577572603519574955880742251737501961921181487495831555020220416959574388890028693478782594539356686511240797380357155468797645033222592643331197729299241529955963379870267620667257896063851344902621804539496060298881933393956177241019465619348889054016834657636520268140845296777196098870545817667235143207109002494844244886458147534130634993802316321577221666153294958829310417507228668428300030202506167170250186077703651840656474480416965567694290733211877623978719740383516093737911033540512611141315069079199530090638432356268984306910631496385628153149875681183193889530605478129241098697446442345166445353890476165750106846215590006704603969069152281395586435584895202090745518455361318397698343263556312251130870887217074726289390497547414650463745841892642181692684128748344603105654529516176530465413644892448186289657138008084004311223686712667151083681859419026395220932151001860593072218043645853265394971546481226731682587949642691030701122886601698428510868001301465902824082852978785855362637422446256018977804382174874499215701671987907631276100204567336300286939575714315033090630571049748513996791743647595373056934024753933236483318393349767769912012657824343346780038465403122105630019051149801546370353819543349232674967509614444332359942789654134581881549479515253316795447137424681725645926871522332126942595584792502315998651245783056180747812992538964963410891568958525785545635901720992870859235283088156689968890230520055510925086335567596457546565032156447277159873554389109642209403244056970717541163192895016530949806751726776187107281896892103958106396847614986859510413796018133176424755590666563359006625118868028647539956182571009628675901426817771241346882676705081262945146160607775762971628396419872878386177760212348923274033635481995171092737423733829756260035034176321422079319517491468307044338150385044162056095145968011317949873976026185758983237290927492520943060062294773524465814113954951137191731582175517609013614880931170998796685254278930476279312850140181071443475320262459772405947061495472355424274915357356878274228048036288474016473512717973957834136070574794689075723318814009691978010052269406933405264663682335672930841054904653069332467873604488069057899544271952861319657002757065572474923413073291543087364572841865931535622364512765979523345691327941872571543231757760224725653805152078429316549302340352394923917926882371499866390002203988326837080783651510882584941234272896292996984309868718410432969883989004912597270848097579675223277560640436276277932604021512247633937026821461503292119066863973330320281287365335273338522256880620462482285746591147074667193828678670256667219907328603479205592779963641941929979790137630864369069261188494097756304080606029518290932117195293101462271519430888564374858839354875535618442591930233137523528986971565666192946091247570638032857424701587318317254331747813686726729015662547222969605176671267059745491422190964947534056769168299616030978567707097730267222769934511088693791435813854585155736091570079342939713721300571428279853269188907512283773068500276678639855959623848312953842768389151542726406658320374440710518555904051702521182887137798874475887501574643286510641537930124462364258926599217369903932378694016103757771172242829888493128385579632015466479935582275384527434692830243812362769446128762467832099658723743029389976078872922409333488000789462975313439671232330942786112683066293178036947901947254040418532755775540659522549449581802827346017236392003465311392544666058536007039687297971115137988620148188528433737217311387129793619089670140040344251217680662711153673444938307425272833304203927727787574665852544742207808029723539546352801739594654676232734167766819344572439325791573946955850521658572365350760485175999343045760080358381611625798596753189749268540061763109881930144555585330613166512077036474967031664459388234868466793183752739052088650310944146872709584469844355722890269366662414305468817185438611815409230444705158071618533893805369613368903938170878024383467207641144395239573930051556774512822964795996702418447926954799053045315836050631164870982732212839293651336184593648079546652987231092784320325513426271428253369140676037537587425848742766780419974634799786682313392407179734259028858447686718642616260084177422558866809997766860600235734511128183169587404833457512718187630909871424772973686334766826245272375175893976611887048746070486990780772764987720702359461554343890241248281215769657039468308385195270938435631911428878458416080759530411379598256858037879637961705084768738732622146043815083074204714747310650575795784377750075862405483703753500338041954764610915194680573715801108423400772921713697811631410377765960791837355114683010979756042619755205029349971982227613526074758018760645312940204473871303595247879427590421545001085942657034325449920307572790978701978568606819200086720956289580727765503308736540888173491304160828459229333260047315977558714519199355135157191763523481760950421927996422419393726742084936574679255742740463102694472873309679898948667318152699548346238027459656739672902271813184456534018552136868401923433936501204750761518877275662435567722734066252419486811815762065118609858316593443176931399013270699226718407321084979457393724711631588203791461779904700308633984568200797788455258580154821489572136932978012191034596950209104906159279545877653770917406967440378002410483392082944383136709716668922247062037771724324738719823644487456918317924705533101660724817644001658735554287710379177552935619131281988644610158267541512461020148973398748245449959041323863781039875231496115144621486940247184958411633473718328339314033100378527011239840004189276182834561497853802027854336828728380239032194027202676048275223341785676667189670817882547871401756757776960098165224981144286837054785758828300882189283740240956394579186551169367516698148842461118876880406051020329036101878126976479357937359989159997413426209182778516931000882831537353688204229139346739819708620876249834249887062822916733007370872141433361338081212295776023943603399948686346278223946165885359033483760332741944974157809035796928429081272415222862182317809443848486836072627139079758637080910052810876201931154960366821255473963671418996632131643274126749095694891417789045904526360479224585760822277008773629506794884979906864808453125123390825893293526953893720625498326204894765820367567072312622335709140370271333995690786193463681551745180933621209467959191857020894528596675316363931915105139077168857481738519209371087181747237191959936474907598524650779452024476828036736734066725175146906312065102246673864148882763905368617062964076269328926081165346074703598208904780324518094613026047258107815215684292656393327993269620827782912622658554480787482547722870525846150178833853401418942923220640145161159869569202530188726110811356096073973703685921556422013709496661951886107239139554180379746791871005978765495542675644707097390619024614494873305151027967675158832297969534750690155325570039795200921081186242372382528505842196542996881810672744459201320933905585950627054660888048481909852737973340317077810758697024104971563719221401573310530300730282031438985720971064069314949440032760403871967843332663963744636041163645881255561125788490725586780807041753923388420834179418903990932975711310208307029686810955634730423454490198911734100198786966451569946921220129939082146612972964557612880781970518809005273834364212300065278136691280904027233632552263497126763380107021795643494191017770873202866421304796716882205000175024222915768925238048574499312626004111583856051633088114925790461996640051851291251252884209703550387234651113795663588783554643142881671995392465330382740840117597371087479673592861386774762831501649022425049553249881161349571924615265132983617442045485757831992572387585130439617389483695097942338394492904362823701075508085987935695143817033431204022143130400781188856204062740236989047660695016351681959130096278859078650109490438887124278075432404978846005933349629456173662868636409636355565583111932153295307404736736223633640018749161748088343894306900993397488390415437832145564905578052709519466690108577774492263731807479630002159426058179997854377534302475148960420230517636592639358773075371774332465301838004563991989392446740454994303865108201863565352911354141914171714453164201331833244760425688413442480816997349053626115731113200795508114014789754005279738683257415930927165990767328015381138777349792963324017444301326668264821046722148108938052260170210070299142046816631026087808183508695532311425322973496298263193427572964212678019562506979179886960226700482383803826010954562105475003594122865312156527382372128956176792569593645742327773685383189811383478586917956535950031833029858663384353350702409851057555413742046559327493195026087905951516988727312262037960962526123064933441779121619503151871866799291520165260660476702158089325330153429147692537175500770409522402354371378728163063388937408138711526123920644729507837297356679414944302786820945320031316815956964990735388933504827988622321263051307841915556145037831732628469392507055541447461770563443137503251905684539206086973246170357391979721909427995036119479158235676094552751269506079102523065026423947793257776912435763825792546188421905174769797404696279900956983452567262989542390123353033835281009132465066352034231897312077635752696643606345660894621099010390302349543471511103669290685407653896556675429953441201405663748930280156609398804436134540548531091224421171326753846637216294508972790570010363632329567217361120827562160393211726984621061270014790214274781573437104155391596868103686980625358370540619082733479985160194994491689426183984189286906647794717972251960342155471174905551393104716584698753026136338648926522369126388304370941199594251415959655363758305080425286400676247636880704025312936294114838083357463114812219898836977625289410784286821692645404249255915161789974274767505666965960432785641854764704455037337945665214473176410280768537353080201644944739623119377785092765255214523458390766363815990751688612626508331925451771803577919576501311644110612707061450663239126098492714094721990405896406672816366569948314262436022196053208170510595118678060701843074022417711338265178716954567271625838311056191967827469607610138707580702236711565551824637956222782185303144975698047561210634548155398012116197938249433069138224894343177741249507197584638302716850975411333171520668038402164158695798068015002724362770087682885836812236046112791773862216846554173164110128360192736247532243491170787241438299189218947501819197702132737175185808618175622107375394636454994724850527818726124111457554667314411823072635911861103790950127488280998817321299898556959614913970027463297982745047284007508235879000225304037014834130273786629234510332873825500426604778529226472418193684985956507067791340303459749272785503703071283893482773605289054509599227388506202400306047622166630134920946017756284264674174216888138796435758353052318732725840006860015872647263266701334493010806703051132487468576889014253687403392628308082930316908025804501753021050334919284206966923290941863110881994651342491100236264832538271105341157178968658364191644590779760287095562153845899042211608838568054692658237194138064614644843950166460861886085009340397727501268644737543053237245144166870467095065742110637270561089409721806068387371789316984283670956589158972680655824193063701178864470285072059813832190080834320367294323572562379467418483441176635642450035210976566055170793167587551668968745111394717887453655386648556903504323094302870026828514179133852790542487626134227541509483148980932622294213194928380723855370494434403257765726558950425513253030150121815897151096446800168792325758825541233377371659313264244416070022403492921362505204519192324524318398142313751300912964934179657189135647581365182134090805083203977644229037075530103842423144179738944409492238972402882194530460616195062839809567078130011268048103431086230876105129517435884439979048450624863573878417824760583220475328410441359504303707728153769278233205881571011290510521545508609506479706188203024808017722610507039187070450555154302970635632456118755617561419350932508632398853558327150327876385646332107489750759664843260009746723778520448008159440798340200737506676121810870691638713296720349407209055669866216791636112806977034152163427311911188906216754956776752099728082881227507789182780570816315059137659171622256033758718794396708938031810188118360746942029909467508647705119762756175537506020384088584672083155707221693773604505551576092871589268397204655966598370332177756147237760611346986904742817314923913222727077262991881331610560865071480027732358617057784486843915165709870287779167013150225438742428240458067182833004945571859316789436460159234959849038950095517944981768416022473382678330580139628529789528955464073844544287380045539989775952945100064474097319811835681070568908219487520944716270227036754244662184864609594583741671536394245596642262368885627270375585723380512062182336595072824255762330143093673294315531492889230946310232270252436930700597762600095457085788525299144426780352874470956554332223812129746667535709259608687581445862877635708810629582417947489499964139530530411770184154466469119258328620504732789124986637206517799999014213481823812885862426760179271589961351766706723720483966280637982243418544600155448404600620575631817637457314468695080871005607342961344649421204004959371145757977427030995618449459116462121339962562310657069395106866370312653422841103459032042163970880401861124150800482260713233791733354538717386857602712072787520025972720644250440933249947945065443590591047120486509538183163543573217155027028705342619695523970892198040868262218835654735323642957774566612275665515063231203617886222698447920619939572462144158062434166570477154259918432916807756120473001682482152234762752313945893155764904549813687014702874718410764420399175745342385990261297322976766210995884083641222105622683587952519667993960611025081803821171178441343953573999208312685011174309617537212725064975784282859981676779243570483949493260232402187678256448893875181916767849463664958831738525834083442363629362289347118661193776385793922943206374334710746830820819584650810683058759170130997920718509429327284008269965397499539093205696987857389072018716480777664424378966549899713159592481860149911228479619593651350484981347241815110991510387240589746855621978839923370953945053610832195235253404045701522591484497275572679327752839265801356770632444008732097804128030777274358231899813085907856048930443828451322622197203595323607755432470385627896988843055963724147772622094755611006608313937513252240550601962470960706909377148791307338147550228600071053573472435424108519152243764697950403266381728062694236149862910218073971482602756643603251756947961465736963867588796710447155032600808883006134718578391097295000306859049107572456587261118764439710591603122564267237148382191817762015660710057647730498590283372488920149616292847627034545374444877165979017782516318654751010470121355403100629905582247187699424581335540316952624762945157897067085571775642628765060044545181589594533809858803168946565580798345873176508784917801676226059553248159615270837723307137952457355714422301391382683077948757354935063318422528933536963046382852048517363600565721283683279871858024734292249206666410599144388033955513287472091118845386710286334995728848990591502341686020308256425853779816460517859887902626358050459556345466937686515386687219820448578057823245603997008398352905896871514466614825018067307499799279885606996346378924604261731035604115163869569302279766956344189116595083970350876268919418777771570695511487330300001811764735052602286751588364318857648165462416311615969667944445226029158025500019757598375335788706821971122695762322933178696053095480383255271358662627388467313177323451345564378272802557617355186378313993462773779806684423180130425967568474352157028025642653428436846805690253831822918903729514784438558040128425356056411341895313228761008953495849355526725109352246371143230885626140406697568428744733392259733940730153198900390404831879070306526195600799844225767967425340021663323066009005050475350684997726267842764292834042420247989939751298310841572997534019643322407023950751355774728888015698503751551232640036608007190336917835781853599900531942907700598979546246867650297598476843085800764712137543827344320801492617956479048689075426876359427258187653884875435410310052002217885311957380653939645966335852121742724494173332366691745969932038836017497426358045491299132530695688357140510223824771124810006580425830812035822508053267236483265124588509928114442644227515505476432123871007933360921721646045999017244133597912144392897943884266323275338964463447301433273206923802906044403604309158225125139413067663243131108422493416970527412123379486044223459498638751042198727987246929184260668869090717971499373636210041143749832048956972089548747636832256945907426125830958378105863843753181466607312070323470323861787583452524597990645933587293655679311802489081231150776304770216385897268672664501495887754971710725714982524809010085641605813416325897047151482115201269952385353232489047523266918853893047439054012654634309043297739760588994145025621009367971523517549107992988371662129936518346142233967981547190497450650488879957693075533291115132327094267164754164317576572701873091536574190144841418107166618917549936494643919011409849633072744886658951327006172414294090084981479793021142113404070288702180305002402872173753873002147354006004986285016263846755906176113804190803123825119126655741687587121342920933527511725023799619515644661424479245374820729386801611945584668014163617703247755296695732891728081655254508483344374594172396738884368959374772872987655779855427619714480880154420802445785091026933827900914265502958088792700561413685183442990662730718754323326062369033845192538768784645451277160708741469388880453993322789604016289158506483483431086632602047667681464580751061133106741734660512204107906641934641975788022107263735186672774017717121136702121770845035771014215935882489412332562699325840615426291102959348293532262149523112677412612488997423679094302557142135101023145716684332254078839760697449591391947778423725214924917658799236113751950583175958134452233701570274691744603070420007456565621237756178514091396758067924517503046876663653326746072318046387147733062404673292834071061975822566402120454857578975091318994951793338859241464933732871680107274632909937575719088203434787855333661384932515323145187997867906176027702198956109878764505080372818576660443611899760024772339696593796462744849040112496573425566727536660707778670316031506504148602174707655509045357085276732216137571509150772795531584935785837117519274782341213466359736265310770051684815223786564141621190525835173086245084402434856265763645476181145605810291811322936601701380788880108982906253661568736315362922011056549499912717595936502240926772754347023564288191660352061962802842055621194654530735221384732958976015490117332922275241274509793773253798213556446943871673184069620675977028393236477169109480249539158847444894603322532096425277654439980475639589025173105939910084700903657359224233855804082065443479209400536286537204808070098209485125452517934606495678793246624406413392738303705370744260004190707888298417484840699980225087504596629842328285879455460249455643210809368163364355189956169332149968849298184211919867437089572481473892874840765073426024025592107868651303232312738057058166070866739939402192905449125463265198563270065696137646074600556227287960812570362875452092984391476284284236251062614958187295522241481638070543994381397759267496667744381336173815355394030014440325952537050159600693569985743082367378971347279663725410440178072075745798087955851753314120283658658771588517733046877882233517358168748436675886520741404898759056815247708225565525330200124956022919271687089246747970155308956489764219076868527913449089186498788018183212768241658546280241133886339099509082945790322533580491636424406856471871232607784465797129069319568703679423230224210100664581947272634578127438582317937003571387091845452248215435739855160113413016894345748944258682531333321087345951063563284115857104130861340540438382282098141414044170339877078817845654381046409107040080515408141020101695012087528958677783556640928604080294752270291599629474991023137427038844972578592353619490550375453849011067806400523593961495511754339567974158026925800724877234269882861210159877698941589532465920999505085075741175631447260653651372919379855246496420654981412670527871767646953370110276850570156357748038031141637607204011575227551343332207067898835316784858005897659462687177724913160894508269591742081236437925426564014268718310857334569306751079497770315353258520935634152002712155861400165741905890039107826059407056217645488869788566613642389473385667071754881295557052964056358979676214671504069905742024152628634162127802766104655128232678236001997332797951728717934291274827343492251413441613247406420956956484266119033655972243790945299526095158121041963069839069370539827621939606908743604122743648450749387504490901338621016482533665096015855407925895426903767650694316183074469081016124077455611263936396365146372334192232746926538818318670431535432412878278161737996350579309974641700135962644266904382872460120950972427224039462941813090277122008632598682178910951789714383234903144410480764850489183777528836559094970437925075621334763105727120070740747422938935753931858689049585066373173714515023217988663190850908649984857524323575589554985691254319651992823446484962555951097752673000503045002092970554350386599781094334578448015130179585903155380380864810910011737801994236034057179640525350300043844295348753513154837287305188964993863500813901886800611112511129214368710648231474505046026356327759636418447934323515768233297971964166130616868479173043727675828625536927182316653656831221350724067096648059206741489828827177889080749075846624962520625936300396790466345291619253127904296099630256858759454549679007814426648650721467223449985124421841757517537944603732488384949025935338166292282548395966556255077621814001894112053425474952735907437501545123465945558741207483007552120124760881651446306088560052961393011630770466288415791254718193904952540516615995365838104832341618158920205914733825630417071397815372346887139855809700294953457315481955698106062634260126415825054611370074359372006803375722978070859607953010994524311238894890147069810653077282292462960991899928539170995814711142995413011142745688047699826045495191042699346562223097021257459019896148226352191102043066761809929704112563266815668812112084276009809901353170968157441461907489798707507922938092171162196577957011832963986283149991016789750212923213594694077740010130652865754513619813225440043271836621456808881134726482644479719595748115315209629423206348366737358341545299936910022886603993673131434151683316109132880539718787783361908540081626190579869450979731775353615002002726889805016507440916114146902825784935509433321353617429202981842350238502410361253331649030012589532452071817284151827401426143280776504158784407284307258181072449315728443776891367836313663131675983711327943817951366873800958296064299478468533216125588941150235761953989125067867971600154563840080208672427546564254461435344729989071105306854107020295172127433545417425810393777414990678949214724695089861567359471017918646061495465193374947261850074686859745774105076279311459264920506574199920941748266820384227147581562963624913079475633850829072369795050253536459244392757487222946754348579380526793204829396851283942755900322250856437863437110852892419565638976995094948928799815567083611018244798898886890465859296566277891203552401791666768700328240966045967688390565947977346833515503460481534309104116846338627733206172222457595961524505897864946324000164680519037921304961143842488843557993204197693165465894267050492910547095763828844717965030125484239739270442663737137215457929240833414462322142070212331301460716743939998179090860270959090368963078890449699944976550875134684051756992121405491478344122311352066014280530142810157964021548406464067101612478556622808980141872825092366253154972927108446215279221690824892538898101461455033292344900572275739879224923621048936825875720745085835711152641216854195507005070641931044877270736200940404513310326849448839885194253836477701817913775541840282935864000498970505455800702653003243600256022323354128669672317001818781026541441806884322476596286780808522772004200729047897439878014444931562021517592207654090915772928286459469562696401685593459225852716292910682024790633846103291897007438536185852127873556348393173228146491988114407166961922702669751521839780657310261934227219800639560176593594571412900237892795627360675592542289329579686565618406095539609452157426841712978344177013487947139245944434441525757889418327725913419842741839646640503008199882223842684863232995354767098000779678034294348097291956476596394085066850738357663318568932997423080375704199743889957095506070210278989366936040145988279858474778013996103255221338724631270478320976356902731524533666180058759440378782080983862068885830472097619278767095217407291038475896598922973706820415888411449428286559293928717936361380484630745878320994204315633432504800041461505703568562257468054784574698991778364533184111500628767901601080987852353243663314323580859753444027136702129819579072969694463329525747776559094447866489280941785925912128200967907073534264632719230217374380426097221149831312487893626647497991681392151540057985643304930963253713059075750813515177806159897928102798785702228867544629503765031698234219834042433719816968810096339035266033578619830624227421200899703857096351708794366132102312357128178010419699198475605524052476588034300888270610897622542640413533192017396435605158762372084099787712433141985026344978218751689174768658621330269205641781554157524368851402568922342563051931751399541523232398758671755387264083832775188441322291929178783553811061314608129054729972080387144277444636105272721315322609614606946487886156148769104289479125732550486617627556857786895198458294160678493290910820579176403048031627001763580488186825430108174765708765395090345947069896054382279138018218896021927829382298898790918069025953578185543230693384493054439567682336280604751769279227355505017104405576750402871939189182514131820837521820260599724295271961870817991902367635898868192129206375702603979186668834623797223170928994915475180190712700892059951904421589605014313606114646210699484679937280187358161556637823049222250199547617401079015580951937158099800730419749610345935572508791148218692836367440781713281461934878708586929488975332765125685877746370110419458400933027790506345849561180140758702792282372516226950043118594427614106966267209760958959356461058202374906132828701133340728513617525380374139199428971773575544778371243695765236451120427986713698445551729721810994388771370857953649931240675440470128103534315697417013682438364288631342505004318702024790268401996898411904107260357166325099462952368175757548578672744662504515082319012876787202896760254534810122680333861652246104196719101526899576761778861522800859074131419767879262105261096677584710236871733600553996303569744183231793313116808368697490941092950825232421179706530352195145165446219533744033815721932621176850190273199925126347997160095874101823094348709951133126918877675847182691004857496369478406374587490008354570635875974549602199682433603185207384629175892351466597505015808176424605089524642487669565536115629338702180573879786375168738165215638464174570352242215633059828994927058589308841269780415554623790901373385897812601416485315602203796609693245185537177294127754697160933901274058309957091952720394849425282455212325316346217154569717951125054802943601868505839194968293475252435925629752280222622674455998000358283349378063694702105640212032992641414048549735837982833598342481538613966526446988495152351817081967191298605932261679537580242564588983434198065613304227194367620450810549500807762536861417510853425301400890286788943124958380224356646181881782741712874217537095231777755097629952996818318457375912361457004197272086460632930451550284428575496067546738603423417478093639211806337658259091540677020283961133311040013692070722815543295139342509093513424575318029998848956719415812787579695510233400149502335193244499827959824689682845377243972357600994275245150527625569300920127313258277300948754169504234014934494452951053720009303146468557241384076280196769832723112205213374514009847184451281419619892912178865476654026108997748510132216854467386983701577983719923731838242494505489219624304640863284182900970111303351058975826938083705622193092383691461982878098432980555479992651442980218280136371430897231541900910423545893031556588757507304687471053009846152009698269058395844848725309374978960370607443828528637846964810816767988704472874410975676179998911544639882410312683922968661894434285919231462795540418235251263797409373382864763347419390732169300058568984646525003522792984866549928569742554448259942804897948612425107730681553687142071464355104943221252406769645634267452010727152726645502583867753612301900284903080339289708881515107652108401261954150389120633314952467036034233688042778315973044411247180835946391924167668814279456966413191229773472509157699888188496905176897041862689076749217889343609820070532660067254675696496578158188820361142636780383826005909639635079415477495420779106478401407469212404830460158257830442715548702254240138705506514956296849102397109565341337646046249203571796445527106484421460079479743405459369030111736944097997973348532163619583097079596432823745874950146425363441276041782100141879564250217365763337790699261874307022405710988614261039966809931453661519338914129235422003631408843039211868688970760353513892702909664740318705881817759525618655101890447121271448859205808908558524053986356787728560659415175222608928138729536042450892129855269863976427280604975092182618795757372545037517341144809853516034174177128320858640072387946587010782588169377969799247676178295253909167794445473419152091067576240454557063672240625569245222218880930392183715105704467379667466909956096031098292542496800233953650058402284656855320080449575892654706259832814438102011430699777442903784005562834318731812144312066453941187314437388235218671986894892182600227924132835446283284371791381156470236780699146032028615902091014481014881308229029505865846498830899490823964288253500937989816281927784780016742928569598157541274846946529328341199406881428683758215567018901864229008762946535200506942984864031524952694195452335791370591198113605285778092600819091872459166943985384726043952781053050197117828975889106149413637561186533641698497566724661401196305678773435554109115873733655919619504409063625661563115562046895875103393456395635420688535340542888049760562799386441785337337137758414196061289449554486264470255500001748927217536343866623026160396263533906211034809786346367793716367878294669824555106010345698110093032447292014332904932031754390789558956964859047353373847391969173100488482111726252052687342925554352820319966366060104000007350605190651512161042994645827695126652783006155606808704381410644295917558878850039398735223314163018491642832543365328866192669022147837797467574423107345493147817262846534254933826538953288551344263345343270157807162910659775643365991670475137702566303577322351398437618483722262299797549003270835229554048279321724385385049352059064920532194599842205143712975272308123440957016159877378724330247609218875281012936581133904726624025249791615431795869423719712990977671941389660138962582038327237570379554446536442482511003042295230423240831082286094458265135793605611797702168042810387970576894400688040439462952546562109166644733304216147253790494453799483008276450465826293814898691102853962809159148795974453355738486893776338460769720832865701126395543385350846504766946587340799567402947847702796378996593643919679541115549845300818933387473569621612329261701478090606471814749191260381629038008849262889582280293928339868257182188773294609616235552144390310163912553257472586846788423084678759454268324082811441206123985825537938842987694135400719593741689862421722184295390923497283050289327481364803451836367013953120239862372778428705818504666763959865867261370731958236748779511487894969296353997643880149009294090523665168935504838734998314467983120075130869624430911435116261061253834582662352402295898838842252433740255382696981696995471945917875542555783699437676468102231716663469344281975773826138579341482172892754858583522980530404159348961880575943805076792389423447046258362667429319468069770601778018971291209783819388517386286258358459734378070148963281357063807523185324596912957058872253169204736984795353668688113346049490182672690941858157087616637088431540594403398526984724648711181279522359158780993798310537130146201057028910798810953319491155603730009604540808881577006841727000697477992709879420982213683871703986671566286349610704262106769906326141581504400893295157274183057639145516578256128899106562031129844555805830417639198021261153610230662021615603607213534145266422791826806040119033377494897305386615094210637430731737028422468033917198249754951415215217585281117762858833579175674078481396321449554297186578434575759135148980039122666240887779165271665052516253742045088912511930869182029157417547161584195602554092863610177120596621592141640553437775457174774456830977938671809792130673382920340114845168834789322409753766517830125535252874462005381278189213097589977584606921753279869077412302545850111656801358958425282195821478352526018185770299522460437633198408115170745578256910822082681931220975756373968535588139018381328662622764354216756777472388647035153986385554881411211464730645670473482620199276681785883806427624309743554277445057153742889860707833590004555493578619783223823810492710887758437614448877636782423854470777420265675029033573411839279151739661179218026686896184617776275699395111609205230758909957311482809353515515226832916776204613114321240652262252554040494784799357336889248191028603738419848486844581654596861596387740929575734794171670721077008883154386427905432966318356961886107632120542792443323959751369272330091615803925014033622177685785779247042002188680927782976805338037872702787534383510012163628100270250585339355370001854589025097906359048172020502151661544680657667514365357567921196052147335062796076058928237681760402608310184815243522193622481300741489969691673994791966575825033296921836722154468864833972628351537455792333166298709148448547568424831887717619363903480271568726532388094658648433895611093410769039719541440417947214005783185654463630256499753881973213360385760890363374443025454791620797008557682298902066665587477648112134036870310228744380887019585334334436623848912302676696849595713466673908367239253989717144922517169046575131495574357757382069763595196311487461438550058838760368321127998430751812656179854655996361807567312451814606775943090788017455585304016977476898285942531897944876946511877515698322376873803059018545446983445341300942877925281074775236296331721435755921008770685189094532429797333280207868095699634271797199724634954929460911863280912305936416808911621142350950244639878155585614134500595842689580170303839639730039227524802187352630868916901753351869667125198805265177770269962457802425603053155182386287181246931550934414846291344654083296504485718264483967820535187496780100789067637616196714529373004791517506340980603907103100494107429365433188407104953533870858198775349680550767828505426783159947235039913925386998334729376479224490603738031537801542784201331349581559793410454942684672945997077475702414290860555687450775718783895766039941819681270550434246216036162625014383140953433164150089851609786920245657281997532591674150017713826371188035758474276734638284427243444323752951286296308874476897758847923127606680826607595393607027270237052839205052995163330011864597741528204654448281526506602986157607437197603292785651572593674045457104723227453787661270149508183709294912220888313988741912057386689516168423808687030993347023040457925411798207901226512761862071447942416928453204902265384703905025207460883233638006911539712921361691104142811108466314151005396192110528355312123252295760834053908402458644873096479326716301755007914046855502470990261171398855312027445329067357525617551382305004509843578258185705566694382924867628480529311041863269631323267911613293660077670388425523425129057589007810101847763544005357830721718565819837357150416964854769106369541458416734286540177577433338574941318028524829622266434236409093022602987669278537401718774497404939429056040178807871839754248361910710638674007492072468603455205695041905755816448925948670634318737297281463571990881360566397722580614893338219658300459689181577616936579080706710148008178023429989323381669194769701088124154431603943788352753923616724195325174572899228868631500175596690794005863164464334249298391789300882553791327779726303160081627408787955675123272888747376171065948670712355044377219283433304493624375845424588457317953778676704439012919821660112712718165856321417839023117952133455233664520750875522259498609555019802954205980165108726539958521146664069899908892243769040552852767931916741918741128859565750793514928140812133302803313472458335484782906824764762521663157276804213044970770228473271795083796137260203821164094258634261204590720675208086542188330054891280889103073778163923001947306647667832253827823030266001617815350471455550235498535976416828929656114542964445615875443402372107484240336055141342478232457419723069484306994085353459264279664736614562455912195212205192441368126994605002708447307861940193228062080285884944195576902873284397947879463724966419108843220941289538430995721649571076147296120522670405349964967436410057629080406891570413668041123820999522072527230837701410057552830559979804749231168621273581341014242532187621980522356001804483532437610749552779341134812158647926923621900473930165651410737972380570682053417458821352539689959601784353258491009786340692623957054479338029707502761330356059498979126328955652615396327135847475709582333540989571318820895342537091444312532548464095132696057642735281692530935366897134161480245820837140935090565482560477608773514864054050007809315085196129802319043585881569175666362774842057099527771695930569186709738068137019621391850149118898251828409657329954439921133081955986008973470686982232302868651075196762070279532922304191216253356178282757108923428438283006201339367104286208284352197050103768728177256720675977118723774221210764092062074556345094736127222644804556973070454025070397375456831301676371126405958089601262970563585677874240620881280032983362824012858422854019027284181350173885319573843365649082000762412225459701208158679206629068528369543026096861901595237954348726977368463238819693390243309186304772505874017353267608592275257006816555228553794851109282435588890259598981733185502371449971327687233677128870104590038633753635312335381691963177025921123955870443707921257353951097165037759776221920177076592901191185985199672665285293043938462467019373149132233842972584622936987125222043485259117510024187649151428331462758457680671035721027138489610763893945627789045389031636954661817786400676832440330182488099743291362240456017410356486954949146595130470687403198370573193409935881590601141676026273174222615244333131413343524105064645188312744761652503933391673845434884235569000990927058560252698828866554795065645896540525179778091812375670033067457809375726072732790419874135822120114303347795931389477606212685395675973322846751775190324183567050060722801682792290557414612452729207688557350307951043159367840264201150352017127601810035779680495863546290047296812301461946374657879783764579452202665504589588246545578168455487048890670609961299552314749409244874433624950225160419000291611387662265596515213026284644238228435453270582764849892837616129351254407874139094205600586788817604750884561121793100798108473990060436686980206991329589768867057345409623975992763460989628233599850119642258770342088865248031014040118737321105905407350634062483143716282150283085294426947652814785101477323985512231850634551897068654840862325307081167948483038363640325682016374894485956171656157538474594789544761067470074870261984089195028014636510873726374258429831289369761386728114443885190092687674441263757939549669842689809317036364284685931988253650786724002697691175285429846893628072064870853669995000212636729558564443248887926375601604572955463824092007166741258267793333761694934653968741779143040888860697288736487105290884670406368178724743268165463887964935371629112918360105085434197389296411445777259083076662583976315480894960242405229839323532230666721303617104970034538657915481508179979965782842876835638605814906034379479112026769998098345650891178229154131832653739452235208763328356655412932926311629212273350729328804200969237337235442213257144153853356616169334478905503026226918772826808457375103639668811883956325978402127732814488600973860567905754147720242831506552309911198518879004888367208228755190250876011882635877593539198621485119351252561119109644296619440935597201104952127030174994852359725842999418595484930856715634796982145589111665815709805723228736322658367569517277417253690959022873896691550820062877429012094104422805940275318522982138249044603770132339046900595023776616217880615066636523518892083715305461907123507598093066855314230364666170603369504795372239297333650649724602437525595441062891657111247609310299342633792807368439982647870028624165357449696936368440297121006704196101253946401615856931952969230749774985439975439414806335197733368935339971658442423917633734134669197583537805576842415726065644773497430401395916830079745859687910988855507730386161964139813240527006431310632918746962740161126660790064740621799308402176118912388965006688322923585790252459398752057960534174318867167273560950481972964387020882921872949513443905867821378747773065809635333449205363478066901404206126925396885877899437499204291848461637945995665247586558388370463879176244913333729372714767489468964311091825742622932626311353199588052719539154174501827321820615070116104865759565520396215919281634675734756600721821376287746643406795989843071070088753317988788172599601336979796772049612118716629575460802347137720941123507228174987707478354488717653274047105333500243833809434379166843937095927497683376630215252526855699051760133854160244979244680795385404458479737188947099486397565925415077837237568257991425232883164033666634588101673317773284932005659879002278932445701121889453670191619036787970123192670881170256386511997834211833977205552253727393174824653572310313941495619861103889248273760845798942698621959306790551766517814166905462815137881203583827059018431278044265844192934198787080726938394234864080174500812937124267418287218423414799539680545793607476311734375131749416446650202765486118667491376059153755176721847805627902105110158494413463242423761079648454792843088251242670736381045115675418789688126529864145124938487269571304103547811752518650249364366113493131138616194198060169327697278795240181587033352078289621821671328217513065479410743494382034026422405614813066204288514756112054274734123022163650017488147499851996278355140507792985675058931497337815808164701253397604330390717198613969101640091188703503096095586224030041480320106941557934736144635219590330593427574512967338358218905685004298810421208465259507418576482290217380305356324886798866091542247403940147434648524637681835526769701407310496559007472208725081342845370315551126086274919871185137310045757962822379218881175652701108929930530267662469652500770221346143199350383081071914449077684830054076201483356486045394000215020514810579487907157102149380647090507071571251344970985063956334829973451406500411735728877915298566208702407665773021278129977043138941115224022380348492446224166493955923932807525029129578859426136954457811055276971584677301862776107144305109143555250841679870520901097483528880901529192749108729043674255268315752726717225143507374742850452439523377445230228699992391563386022483817698408967458490917953097329536820830391242438179747128962440774708086286568829350993062841687651358031134557721181350855637597314805367102376346260400199918046551145024843719592930797501935085963756291517305739459375829225245448410027368747169277569095448662361690604069505374366082254156433411526642448696188108126659146524035794941014847956998659144700068838299713973122619920950744858349696245164268210213418070739799305860340486706270091784030676973078109864720618327950468580765479470842853015189687425235690931832244402690539416738050942137002258202568268838726098479691422978666769306531055331796145521686784049908668644284027896297596975884788696819063201985762968680738434229509764292589506747178092153002011155907390774370255788687701599203398529654723941155200992336992572858899520998158724458223130711245195738907533132579662378635310175581323564082583645847290297240968228804937283376018641643209850633114621875804553852611356094681686228329600868536933163285091192769141386273712816254373573792208612013581711188071408999167681435054077334675296116127289245328370470401215840395403349547168534669487358730032647269648850186565730213703495313581883844973349881547494552456003889100365421941816567264857943422385299033463320481004227860094939006428986389582168934613459546806704327775784083982632407904985177296340085896729453697349056697742139929246206995454853882731889880735450712642209674432111984708632494122718806676815658926460557568655318118732369222906560216190796922722339536363201230241466816334843726593056217111787279141582991973872714092237382912605327747842573838621073752098064079623209363517529529650694833634693609389861968995166502243673484583053284318946537517148852019434198413652435950003645435278835492126112786686235632099482481721861924165587481684972092849471308146431459297598492052202786846858730983643228255650001076403133873206804512062768436659922355907673317831899096945685254539151532323538374975606857994241853404793260101031339399553065445581851078017423300923877271915544312716931868089634329597243899002926502171598830405960014098136872335620906192302654914967000618349169540097944065702534883515680752619335488035781563473948743952495410284707128595851545582146952378549173028258539954742097529568382991761079230717488518289306850189059974228440390849971602384172655428515063157621851872288694912363489106087574882137792465683726336685028565355999248052454519113672918219502192064206884988041092176385615095681655906484607285581413490661450899372834669699795226790002801017114051861217338105664123617461657427139184100281523565658963248127423277422812310945105648521040117197645227095519957955687338714442650485350156260108008239552569295764584829313214125181625413410531675985608598828384225013605599736542588452181479159792428837333193901121315164710090967454472440753086823336190077079753030629390005089057227629260587605167673236862945301343482817085938576023627632722861117129838769016124296112594765538425724429237392438278123614048819264050850092586895433483900573257470872527716653139430455948863275103145003426285630335042953131702083005541741205986519640562854701479078021049669831824323815056831973994525055585615955907559444340897707988573694848372607238050850071135588909197743940926431112376700616521684385551364075454285823541534409168579427684106125317052484134909135265365897024756043958972958218178146585678437547811727274372141743311760960905555871696405703288069980260674496243678925084842763013239810047769550266957656342143330088055784387458368276241179181403476051481629649349102475097524229699767625852079226934064420818124711702163396993279150841349816789542874683091210160295821081216325644406036967892814243194292354730288226738527461434333593646032408822262287120389671130468616135069474632389586558061070522394780477270899204057188177380287051450991751425311233282836421869661333276799388653368205660341016418713817030910248704711859280599474704120733755483982262893214389080273034071956674525983805984723242927018704192104881637365859171087138023462237091768684531047273514842634009131266967791709867847498531928994612660420907850505751705661517609901212578588710919217836175198418093536413684479640176760356060223826883170242701152646410223403744275491301602013069854107748742909131924066872463629163291785099170903336323136525836117620698411937877028329786049038266680874030955357274788351364451407760328131107241314033897129104976425627554496066738370908046178041498580383363559852429615179622577758315184071126005802965229938464046524357338680505031384294671058009976714599591552534067969311585903187199592906466506052698057163270351765851388053756476506433323223092645699959439588209970479102891401454377014687398025487851882385514505082870455364642469209868272405891398352025821451658429193281659535094173363454055114037974689155458433763320377247010606990709872161683071795974784502580305593032946448327335641991148440976813476031098999265409182606310783129611492479546687097673685310449155120692876730971738144746504608310461032406261403189049442995648530319442524215608810904285351262249633949290096679422797570175261556683710724369561155697020899154316230264082895446417420712580040271533083068919002417705955317935893249528521619824155480908271750959574858858110336016621092406858725965352998881467142269141143090233136917449829733911136819198844240550514795290517182077289855712116096320726590955163377948635659547460754880695369854935836382442690634994807896141850584530475474099437518914284713372521823061437715650672278845480987758479439397021110630539782659083362708002700083181834851151165557795282941032085838017398004294272293913453361057709073372621910191861296019917515561746898866380064316187484052613888570576474070143764072908028677552688226264913850105381040933529169756109250804491941534401143810314663752191293956857519580964783502135833992479922787042398696622267410950840448172217593821898885455380529790502326547566652389452174906708106919785766321572248056924717206863560952262969497947058366266378133799541789957033227946682203382758539384545864572311921470728389850818516747170919475607481266382602677671273485719885593670460821020992178874805279499895212074692916905774906476262890193409985229756972882978165683071128139444174168427245392561409760940556272985852666848680097055243433461878530391908368368257845989971671721523461291397858414795446699709201598819967659144501280268258383703561992676375425453112072488008393839793597799741556990947189922140329721728807603871738317221862136261256994211751120882007684996648730679017371808233102551569069218856236141648401461726582741650288615754262734178566135002921657908148786508947742187482648919003977191677656631432396849436468140448570111635920340830435339314721244562658654906731235171827644605808405043584699926034763815449525725019482630471895797260912486492404466603918190918666625851196930558571873960694495822171659754598916718886909723025575506429748184912916611158301401774550281220116864066270807824818835111259238297471318001066248156506004830237924214742684730736477544596151107409530031503278482765453454811819699208507463837211993364932648321051878432462537355729975495975608584525845342980520397210260302648190077236623621935465670752518429680175316774453091017920700148610643416872539119929910363374934558448828482218021645117694006126161965012019542439813931182553115714416106678278731604910378072236094265965349796391642134284328526534767110031177309648961360269719434213203961628919402276288050279020801444770582015434862437150154636820577983647314128941180943241314034188283300350998863048255417786463149820299164348879158209931634981720062146721377741498401351440177868524930660036975059494275322706391443934027383560601299136457895651275272531864907767243687019220446051556063428922776425711223287341301184850166491413752407570725987640159701416183825058731296836118622842951649707441458875962789107628468222284745993745526443012354984197139556356508747576773774740104805189911034100551853915470404692805280472445103594875293324088702955939656465199055476265561858409520098301532834967499395917506130133524833168676298677172152851650095996253914121382042268850669045031131495859955335278935812116030171821807104514901075124426995339669482981370527740388831180922576976427158236364235772792806468774120543066864494462783001097056141314499304388709684483048035950809107657376187072855829172182129091318034689566770470298738453569319934306587531541460375786135115438438827715661933447672378831968741891610013203830543305303302044683092055470401750055091607890659709518261211600058249838160000112879994730018153611813888527423046905576821345082869093166315454636869740200880136395183415064997165339240476708421070012176696525130501577013149636091257494815071910276641633465073549855191646376690010647902077034252077692325108051150856514316565766471533928474844856151100262482497444841701105110571065205962030318352499894846731074500483268861175156058927974404274886376448360999138921051327271466173964677763928100571039652297286451384147304117509028411040551823719472909214797963302008987494634541129493844640843038427302220231597997118735754711677211813588667532280364481067659080429795366316718359069364562479582491810872808418025951385418178102387863262845066064806341673342299648268865923591686358713661057550228050660766062416970861962654740580552253351894855477566059802664470699639385433447326879083511023964779903457946501427384227397831070862766245717065560143918830033453273842361096821654802305646692322283013737166503540584842161720732485899578661053256220462669148770848764780416775493214116391674582352673361843432194688350076304180688515543612516746267149755304227639765348258316122023773384040422575035767177772932143056525241946095659404825418807512784645491629361723906075467643849805864530441964545746211024293418867665121353504122791813569330908515626702774701661350804186836391398269705835543734038568464550190709950778879008048599283644621378199308460304099367581528720293741158749130868253101415688197937509176489575927025998864615621285222214554428830877070151471599907684134133320698673158985961092657161196446848357548121795235204628790200809918207887380615869207795129685247755218905524246813578110556878044405496574032049389053163752862842960319095510049806679305977553760968540878968483795855373946513968658547856415823712107988417560930087542439795028664651422264352136132500669151312332290214623794858946696463507877084047497247135364486369866516137466390737698853154931742108837574597797169735295931651811296854575386167155954488963939658756364966766424297793358765629397736791827604869278534420826797870648613727696472288686481070831792539691499591025089394547218540769589719512447619675599468830997583154855216247508583189762993233239118875160609031691493835259884963572113636839987492399242549912184253664238600747593680571286924139303426251790364995971238395931295781227024596411774351873761874094402448885080503051778571706413847159856067318349571152793784710040594575500283112466658881257318406915844745114617356301482613052320973953646648665630475860877000753950272426748775159878260503775734101422273866242062215403804608483964193590819496680253055141085725452400097348466429973594804530811618459591415700477753079982870799036662417458549578900149471777261528925480134486599094510970526193581963375340917263721244658406655580004786837255319957227518569092637053884137290750860243922496563755278704492158375969791540901241957946386632690156666776554074854876086781121473007735868159532186649944407905309720657362086897324276729435049652527287301488026523768221031587103513900423933882819305178941526131242902719297775292300391938974357886793283031791382865481186644232973189790112324644943897518118201941844271755796101926477466235824333340308894826369205257925101827139890213619516152194766198486853700956629738289505530389687311034601541755401857841715769697363400254680643362745624414641484055891549689968984703652692149184042443791008695081833491255743046201077260664688209731281538103919648661964639963542492981362493743995431993386061933717904620343076116660313588120520322091056650956209841709807363306359232951429413896727689922256897316976140384979475098442228643591551690180241738891759543776968067686280350258199424424730818447904437712914101047127728079586488200926449163395303583312924559673325039476908435528833415119416869758965829179191445355249823847031811633311267402866689184757374310690539214055631867244864470186470467170007912629569547693404391424467555343606619719569548799826227285158306639497874896561755269278739423747915997530754681628318649599147949565194150070059585701620403215044256268446463860328128459297209556394133202994203065974997706122407897310840726937544502976902664792948959105911111671959670592403818650297587234865358303420204030556599248351549020033782104319692579569014448266038609475048552795952902841984265501760838000818276606798849751343668432954126154814440373584165257522266285233032749361113602561945695848559449778492441883577383306436429031963126025787008455473568775461326875691363125142373631789019413010364806649542026543997067028540263258513386083523383559216574978415437649584283134827254216559462637598577078829454519261879404072352332099494131082776953379071929577713186127054366911517365246237698174104961717370190542416010890717943106318174949699093665434948121738745801154791547005009841366523853373109999391929707523575539598878519469355827363665202349033810819505493791530448076444690627935172663690082762427703065610438428186392837861385399961106592766778171645717147687390239626744626604894353585752413239822790425008874354987311850651096771054573948518429871057212164597460573548170511253096223715090793462035002756446166260333027561530677797387069701925644474745591409865803467703111802472213825497319401555727626979548268207491743496703152559325537202401922336562823670803876537628586259956403799730102291396947793125978464738425943989753368352129348575074428073004227869872749641448332169832960502296512973685169173966816944522265740453368100556398862799412265444618035898085858932718288919477021827328120469856991122241288283534210695448619218812947856165824936837453565697641290423507007239648051586397753408420505519145474755233987094765732577054146729740724665685597216215436723450761359850632130826747402281717300649933927985698740991877613329068075342554997464193859984300288418741469312527290048723780266913345370482600778339083567209322897933469996712934693350379812737828390383911944530628658582807790135161591417793094294054120970100520044771616348572625095047121503236023059568577540556584186677802304962753313267604456135350770677288360182631067808100928650290172459557139820894489538188202936230539200078969978276228279451397011319706242932273458001835313940604752228055712728881221816418632480157627975974026935892032478808073959007721580387530896683066183654900383641431379748545457080747267290920368897915306734585874724995673777934922571887346439380231017206511447937771994770181965725708263806823274072377788317164835794043513430421495235387915987804972462848726605936639071084062934643491641032629530525270227327915428878830967437602323260999533438936102527396091193056706668957020650627815872711706274833500167963057527218651493815883427872159602850248052460822807757727395530217629034195266843317040346154257606237475698380959233882113227537975404735500562441635557859457441178521713074360516575091455260644294513835488583399042726684403306672196285312641409730331417184922989886308169973802047958914438292857606439643445447213081587214666077012055385665446123149748157424324871418420565086051318773166056671090114397562889951315150454727347725582948576387898341624792153919514548095218745344985119092461100212006088182376865528725017436809030350899202786317705292470613504702991826142058960723544653597372250320612017487645560464085216287898664335952527387432924527074297187174430494179380178499097529136660691080044788206124694041943489217161418938846380863963799911547158829493277765484764815066451991397982459599478990943327290358108581684769124188953118132003191816173108372656984278285742215908142572571851750354590625150226276599912708209616127320392539433362567098206464593091940251969295766740254277645010720029982257126727448719578704069471300450358374063608954256687588158890447869227851712310268398008591213191353367778397378041020308622282755250560605901561901902708859973052668098943198389617891644187198750752696891543440685757759155950058178855916767278241934285950544414726252274887447331165519232774431465838704788723519488943738605654015694730626852597674553121278337844316274658552409534416100456718902414263120140906315444278706452319475248669209005516096602237480494886605093911837684027119667015581686718155748141779929661123965540307865928801621573045476419897705863524698956444496932475351290532587032530900374640540720480448299606709930949570148000027323151314513587813485947285059134041315386141430964516518121630435592674953316273905917597865094836886532360817958336362525257535606726990812208948958576332477079904866027377328392091865329940642745803804541253347641636903455009614910170730299157605180182759376257314228135739904210367567733561613923369419710284226156915623817062827505638669513331239123979357806294323886018649397798692894425064304158720181564904236670240025916777044780884227919641426127424078882718062307386456825715340926328446657505716975998058111900370140520301029251087004432692656508883367626990008050209268645124584141943701795864525750235584864521740574883076575859783629806261793587535771593055578421327448718616993482171172245712430420966778084644377556285695935878684367472124508707350288664448762609167427593992426195885159840585514477855501787126214092680368605988032861956040423600010348300612852694332406257495721051377455641322691354863310444155647504591425560416602858314844541812923578393572532123235129778668229192130976189580982185603543800144641477546578746582457400941429202059547976132677998711974211621274717754759236304925289609130000064680342978948587834338947271501073477562845806135590641778341464106938121456343343438135009928849248384041164442564180565905284696318544277932764892588869668150216308160189737975235132480148673366422696761890035901770683709825062713611169797283657716575955438232092807239141232304076063095688741549226820169128720827812747279612325990347809170714043597383764341959548873353187398874031531388313989989657764243851729670325808268566614551919536721217243308638522081237000838574349801510362041852174184030549155660330621331977917888167628611382867064533470273639445024444603300196034601632645341870022820839074231227537719974475688267880842066712055533184144816406079557416979173339243519343670255463521197484188794755536780816342725799600533242500883137124067894898188698367784133095428191657158177010808426462708553840480722845689747314532282263299928404939442173930900046229006107906871749662153145315146309951479915666833076844655792000641534591992960187770798248071396301383803445995870715174787704744013778776085763266985329827675396171814415806649063379404519525885628413921521718765451722890181297475234519057127381808876994139448115272718283522218076356794285790595953848680607599124883166275020570904426536308909282303701981161239016342930776973663367468501989505316148097070689127598171556710447895123535241162131609656182258909703717332051046249286333772661576306873152824745169026126577415012181996819583179571278709171895260849341468710986984415514787431655648996385079423380035354560202153255253739791666188905899916702720744090665803673413465491685877349328258283645528023489448349404715823006725242046339360586812561700267278104888856805078256996579362862096061818360647663473405170239100880402988344012944573297003025325744310550197800261395806563695922389832779774093885196384926192241129741113197500585023905284844824253130855368187369400096432973913193617752781395517745939145508633366411700161162399537611067695511681545223981387235224379085525461449712700028183782561277723974699306587517606252126992874144054065005993604391905074609580267738248809931547016298902024008415652693545079350245948010390044705410079398071934326502435417818488469475427284666603879514674627049986005029688840175717993408635343681624645507197370074841004989722638162381083976263794288221922382849632886984288926727492437696754022010963549776290740045426820005330528665450012904609576976304256196055578247212572282709598172144767489400423328021084237051159206537311552895498150372449721139035042275927739523928176281322195337784966035524540418038230974543304901621376995895753177467745146404658903786979772218337645798796711909937574408653718664024826896149220360935574722829794030603778856850597438920459933257114854729416747144253360625311145241600983847116767514088148759041480308677320895525090222442671187733479582797278039032603857127148672600949394076212585870257309177765099373257594754200458799999671318880380443319584960885475680982188533289760546565903755179090950917548103868904796541780369385699633096908997134038969702487245494693652753337826097163399957760009041638619122581670544183715357794866998123837632555491062489497323162939479289021312205365102934075032916382631166170677335433472252569942135432989436348438324128078332905190271414399399423587657269522532491180038945928762137355743547417773152855473557942317841519785524611656197930678598966230883228527450030935690843306920948719025577488474450001379035947680515510790612484990552465490491063996361694960097917464102000021114690236307831550828546904748124901655729742795037895532524361639178392668009149681451523340607914085952471565291740398822075661738677823990988492109607009203682013711355267288485090252848183334549775055020025710065370240381503705505046594961572477402482658701616220796424802679224727108931015443894841944545835611096450100066805066275699719905865976210828864005480782388842995258046646492813916541450961501185348878665098770588356686085588391885058528507573787353677202910532383873170757057872710782304564018039767485512952267541605679455208783158276529005928530204782863234989145117922943541984532915608913016559755976961362168433518650467317999694761007813558633262507853324203976088226863033518003215846961983562093821609175030861485449609549307249176671902090597521883795428407097970960352126384501475726206257666323376836961003416068375147560735329508889341690162860241360009418016717399039434354975969475952066653469056369464998150080849172511173300304794214237839349930389809829437103894323000830093249745032970172664942577021797503453406189902686686711161124740487217721006157648636726284591954507877789785558844218074014349970364567142118523833520007067617560749572552354255367394116550273790248429614180293335366734430996567257180948184076287094128466430535896774434230593084556090192760478191696334255434117258723966430009673563281384741675499464497475074003287374713401599941797370403536781739840345831318483816601232849985362806147285645364472606116775226612440022554249193832503395709265993871461491820107047834913905412057815960016271958913022299153238396414658950960293750362611920828510272346986518925452658852496063751626698200643475691567637219290108953936233938679788425269996496117611123972935228438760515307386007247968233473175424712763546763521128275141406558256949742760630807959728748433808211595142518097349400569784763246085600891078414499564473474600419766762235573426178343396176046342963826520337613422134621518519268758461044537129799380691438669997764747292873444336151410886291454986741798154874852973988612057372556804099268672730804076244492144186249135812072341530082824374943025994723636927965185381043206123822324477697084076897589665212915707586017016911184281976828515915134555864459413534296983219877241130828003449607382463151719242130077905092957421365125299388358826171970620567229820816680053093803932224225069868380036789918085614738471152146769124354973038247005649164198048247181529418533541034068841239041656278144884907378377522829653199196177361422361679611056878253298968743284227504810349723383579880506380495755888176497598285661574208380552894507974392296244426722085141114671847625080443266944738933704450839218392553783364999188806905970993726889451228385230446386119686013751140794006908374392282327318872876536772316680329008863815272538428902666038306347673097433859999652359904698106813956776407935690371081100585672934286533703149354957274640013880192209051714242434145594308718012287025585079561529742625087041525248466839035350097253421981849088887932337594947952326429272492943815754026739277653395176362007160764745417618962402288788970211636399081717056005055765993104553313141673916938803378758675066568851411869662428566634379921432539988176116981183399611461532591971018300177046135040104719131509514516592968065035307503976230234286767891376585590596949694455457487526011204888420281544635003245007118942942776075161644732913780238232507479956690416682153546322023437896037255264100240830952260903257617974420111055045048413107247499507592930421745795162202714039029439007485341950739580449462976457728845510923377705684038710122730293555390176819238785403234554464164666621368577733833154629825460717592042321014976959734798684360702476489754918870327781961669842441084748127956881216614545772934853453094469407459147373162885755886422035647021645825368933149165740753975210660280337701729471237733198835110766549839301105553650518127720134754196301089265795053869366484319508789814529103785791025970852970960375075274924124396976644645585000897896561368818417438298342453356874562086869740997385447655485986101258982183172824737628748975228383836700265565616579835544011093474613857268658710280636594160116632418501410719590425282245220941530755139464721148742215932024850847068302275198774222823474219550954665683082261656044191418276175524850404361722812255499963076550680411099723897667625105138950417065003086323743875885057159071093232681650848684719974879030759848312261738887791876749533808857924110632714680781915044678681114976759639238446953229956775255351853231934418944720791097143866056001324290837360739403519030615097336653020384431557730460460188147713305612501833364899402946508007108852771900611144429472121526039505296199616131644430394144823006378501571351384451716440034174423036714305681020473847374788651041448511705774499500665009740101490456180896223723457139159454127081146943219378225976867560922250281116557456557636873524189171101590167664752199821699555632562128659340956368534582853497519019298956596002881938498945103877266901443960456969462842965913191085768500499139984794496009496376846873867753524237542011192332548182458220548208236156197189314495480404705259461185661742616618282372847108087635778870571557879586784966513739476411876610465988793691908119900893509579189148383510578436973210849298842350485070302638089084807200857073546405285195714019502817977538714672292582004460007188596232692218897962459252720146410628904855997148431827514723502867737412032272298304708291347238194798474804407671970296629230839122922152652528114759368561813090061893008625736343477050485355826396525994166810671261406961193055013250962900914967937633897928769669285296230562603654318450031574586075989200241064784818192829426027560569616747101359161978958197448072759136240583833006793499514215722831044661490412443580000324804072297988721804694378200011766992811163694059985567415415392585681331621879402654709010099601499921846834663570524023916238662735121960489240175478833413559153144176510776120262693138942910930402743051389613274655852874192679180620965935641012113048701633722407933611585081278679916662219007175598995842608663384634837876785830672746851734520151844740340548136309482935734859631894476167276679316426934498058857978197941980312937228522391048123067918111059855350569830832119675013192714955571811719619415218017088985374376167120145134294711441785171958462272200754859142480808677832046257452168109294773545653845478563721502603399541889877847689931627202142920712976784100934622360290448208120751182046391696797534151432120060926178853056850171560375626744080574099687267420507992528242752698578673223573737696153290448354098549246910423984656748612100585211592475448244258938834937197335137494110056667734887126297276805094148995292473776865813243703191607863168198284757458624800502052147633535510423143732778196966242503643429914411107472176877976475340865762637108984250499069819103236753018697817849808071624572108880974190410986951520471828960477224693091450308212839329772792091332504718267047547691550834001149532282637994935150074905924084366578549242356119896815148970225030151567001863365843432890596572144855474999119485186991686075648678443679603507316540854779743291356723988103496145583633186450140760596111483853890635103512300927252547749022126358992035054010687607721807515060214129746303824444006200669531318929341469939325495960679166407232426578191607935645681288928328853783760303490489528533480263346266154877175591405924349398677169199299000818817201491653666215334241886529608069977629685783132249994227353120281335700739682756387467576096300379497685822796660947258126194128446628972496805764069281738787632063776263627969552571976103607797430234418888207312880339541547676750543161431063246280294898559692759159076379431209953297182780901522950416340991329033404323648929089503141773184180480141891188994000339488648028916933715302419297134385657047476982542580642666662399398027738085448000374578106214988540073594626563446191574656446938573775251156998166427011567998776366297000840155279502266246856481015833821263818961904314477679699915116474203253580607258211056791882971028609650623253681267163664650693979934429539416262863331387135221292776609376705396354798615744863267140065186861945756484204791161060233530047604970889173039955732919249608207129863539835038885747435123390618428350903431294548590263586106478657121642634170618763822532253727059154341021631543325495392829277809749907840959640875193268519746667305837732593199645519367937613179653382567111861376933792530785033080907480670571371521196479509888172345596328224731649057967446278039142755294280914662643345463150152817635454024761352986911430021746169718235389494087867281430417359091381437283422301904157249929645269074598702573728815674616933109627032793513210950043598076636437318395117853159279594973664276853894372972700243141670130505797574772992032321428606509497301522129542735474976629739209984592743860360032568800368103610959439770591124307743855729851558876053489350814979479230694800504175286352434861711201940525996882825674795614756492659213142540388846463981952939170568236672647516514393471386298092766667180229701515783812598054942094269043318760860086737030524206114902277626057634668163766460276481205889667560773683639074376215311981817021853870633110662045036707599234171910042338632321319409099037035028246025550591620863711021036794585644798193226255390253468215082183841471671494371335321307290725165145165974833158446878699659958991702611964865650891419195515045872859022285529879441651297267050722090676140336617832359726517879151992546923183703497027628450491101685052461154957875183845236849855279240374257544424921638710550105006501265911318307314047867418785710880340466173112246710742287120100645770154807057489547093896533483977596735407822163559923175507800879117133669565794859166832638389878699764970304014189073941309321736380967671300054263280137576239917530051477090952203649061365901817716997879207835050936750332378174425210590515519425546651899849713619460858194533404674896470709273652427928505462054963220785320834650843448336580926762923605310116125349418963579107919556175295091638921243629376303878231306567574539704509471249143128052629579527975325691873820263674738283924433197402488399438471491825025089519393663021586359582199080013600692793509519182174664791088164993901703270785370522090449463139752319998893359300274453944233453196363210532874766311724548027759927878161609031793672410423268290444333439110600445805181664565656224165823680982844794560952903701504029874536791510187264044958510982736360663474514509525016511184621135291214337810352110538773036553748880891856900931232853300845897507672019950517630455138866273776334172913356147103447733969705942577023271983087857452959111144800406939982654946249275971629537663700027483509287343598172158663449226382416320319330383334794081469643131967579156481227680863251378488328116894396048441339355265212125469201246759580644982610965979208212319788291215445953123939214770579348186504562681164559771348519071390996850313959753639488558376903330599778488122333977441007879594127825298434078446664523402768515232905488806936520689555801010539099710383434003179746215532254490651744211666237414587527937064709655025813925862502600809237190970573266129965937473227488925532199893781981809234084080349777679302046270497745963420593173502014851264415280389381389646786325754068761668831509502263401722870394535771662788109739109324047628433356761343662752186849492590428722893856692911478346780843155603789289829674235583287705334274374627160412137559493488783523586176506340696281828318018962449239467367564587391362129319037577467895243604843424914287886059973215794721801938898902482582722836881035237201526876645248405101802477926199727471492044283524607038567722245482650732688521082004263422393016792999825520465986195065020472577786146611775358371818104560872730913729647098883726585403432181619137932201637290320299061336606646561937517607369975212275625738887289788061861782668275145985422257607516830459388375608563333183416910642498245502789622172979714963741068112710954931212996335207018548140617992884700011429320720046988552395104119851040492473772883369871837227457475234398582917620488248527768032021420022490773298979874025410344557423245538890598499552074258344131353937916482139614560073070977744459993445466790390395065395622688131899307530375883667495321545419067495458363877688984870524843240611156489887674576841284059255495030643759243853227231623293966973598858606342523692391695742534884415159309666973629582814234689991145645984423695190133820141842405469371158867972752367645248006166905561324704348691199652630177385076532604346006123050760140647987035573391648500823679630373873656921440982567939739385754913600963969059969210942696285524614592050279114617397584043106574281759128882629629564544942770804204878740923115363395737949588922585817366141008374436439738664296193729857049463837350990589158166449709417496956408854126769546831892760755250386675846128682944682663084561190381552578864064654692655372736522174114464640763443257009623391643582364143820203166232930933862185406068371670564173427685548075874060404682970082931220043676688709985074888626832015431402364215497998640095964705845641433370018862821543349662847210875896730406526167306418826920470704262068590513594322755066759522995165977295409068982185197646908347412941330442169798428419163593974302255161984086519685733158478083644911511188451133492069734773619621959984825998992324901384090958801693007391832365852364801116536765106231735872584058879964239873694071729483558946155373742475160738297253678808230444812409342134998056278734132848579988770007669714920440712584849941759502368259769235687593422002764456788656209040236210934519356511817015376976923005448647669623640770597601936891187801574174141388152503557789942644089995481961355168477600221963363930053008664577917055915313535311310916891215302761377803771987637149269266804353237930743567617225774032136613937571226293194043989635348657996993818872141856133065086274777471331137954258840250571973593695962954838434354471254741073007855925400741679764266780389789329078976744144471610754589919617622132781845345573674236165253788100984778786874276955160017923544875297328548284338978461302677179725207378061744123755832553771179866252370831904481694457971812783762847905656037157266210008840574246712198000840489797587923936791936980472634411610490323993847077556377453203962167427459959547546104636738340010757839156795381439778945696326699627792914080822030698039328438945929333217919518374689996255622097952985031219473473348413167795000380247998201304137036434543224835892394540993559534562920362990628363467524350769283547719209069043044279963032520482557214801555878610754537327600375424278366167052311445739993487052297378669833093962538395304903921781632366005469261692135802163046088368364008212455680878016826889381870786603465472243705965064087674763752687304596176224496846713524834153472268696344030277653640236244047898541908332730746709721868288221258958571086940708856285205399925631925170140154266682458803462025247930465107445122397737860687667138651903681509495954664178012047735185608389923125556207661062685519464626547236731327901080347296297994367942135024893542040735849230177404544554043087365865721729606845492074221665721469702970286122654965097921252906704052420838510914775467151810023568459533819573040305466000593678163617805511096434408721672394359426276670981708952461533133270004985437556014883685953902344273545541759755514728733662263653601136769226557090174578388291114783804950892995202841450240582683089278913895853064511201790532077638232163527704284519613828911846451190608106600639121546963541874832985647615752786759711385391474386759555280486054951071360918217829184787317828343477774273469125766625543766918184222166404420060442945860127443250846010415069143388092473346702938245268248676433275545931490226008916089691488263549418018292200383331234523322099007589869342435304788687989761782812555558272131642759429181500311119054170911753123275324233598891577820798791861314191184385998080652665161303516699196886548216638529646799282552912153781402511469405250255246297753467655867772208851857986062203326259630145597699349956423196324019240694743740312634613693183067992153186414164692038075604636765981543147789472021109903506860309847321803429136135078714505176547063029199719446983553380041237292546954202618440025968595615514187039871376652778816467460692296650553704758380046965878886361024957482477760328093991845906881006143834657059983114103394969273767714339860915698421901192353703559834000116187789626281589590203217237917679319857689926351621072868223885038096557470332370098813083834289403602120847187301029438246793404405599830292518703942787082523339931627237181280205305417142594115836049560109790563895939032337078109218250173994881518196776391347375207515937069201051359411934303991382148289376541619602209531135123543515973116766412496301486250176826290470133671555158546887449249988392724513646225254859521555377413247800366678740147358160312563075907544557360233633324919077609057497008453799384380800119964575009993167915559551408524893109317456153314999192932227059811229645214724759502259680185740961962681685630015493639919671040520959622795378631576367190582728895516418601724087832210961349876965914705624956308577617994053532600643943404864136516751769038606056031944656032846778614847414802459725645752865015092792650601604733723815546015470027189992978417924889677722171899841945332351827562268347016680633499114797687078165997798922127702059728658555358616364304311555912268422948030927317957935726302850016884017888471896760070847002196563605835672631916765042216600479951275027688841849241027914354359744252027620094431654877124277401234759721754022394591240745200689794021589994804329602212241374150620406781096645134022294553682791193306240606820197902187091830350280602750445936838357152646092885952238856478932984943202536345440520750405187727647500393304098876704465059778759100152658987413740016075743167368653464336937850787192574330593502252771700016991551599984578591232809499024089139042240708429353585589517289602428600120305895282479851873713819588208363124832886283356151908748730975025067515096978622375786846574205071691717550555023064038364655788625680611595328303033697708623373099418362342785318337241815462122827260550805380740582215405332365375886905871532953027410745632712377804437699249845744139768238483047949672045346275930551269354410223069509612839637476574359271652650891935049399465678535271894198439885024437433452529899458807358691302323054078437623568821343875472895439325826928705608540151459236624010316872283968310075783357333158076238241025920014523396087414342153431052848551976578189602225083852701566440358285378140337038729381458051936510407237607626019923716489131228406754262583920783918052744068168075626055773612399925388759949752337686822810836899146668840932635353800565427865374111716809388351296233718236477427031636364734494480780483672406935057052138576570973620847829507115171905745989115911386821043168102291144097906308379345015111162668344293774314448041895548812665159431719851992969652072725424619854647890069850321470550685403792227211540190909280590636081236898383869676106941381102716258384050008067977223758673134930328253075653662440569343035954238388499607052321767029049620901100532215016608363493501703190401575605380749142258388273065012207582699375770451456812959070739993530480211252420671322976790973141556186873598623967126465806867870050219076614169948453819157242584901758107106835439173765254986773655569768569368176005903681779878669902750482435257112320856405187464922865544048032974563572258760135997416655797288573633275672846650806173575167849759146810265317074523732605443560871657065076387760422135432866066641168454638154715977576223627981442375448547498904981568708554774877722186388375189941691925846845303778450710598902217674066343339917929317547502343642892032538916589605496726237467285794467483269623237796922547167306423633990775369490287881317278684276148619714983897202798746327311608158776784304507821331799890438831140671954684359091069076972135686840962222926317216236546346487387377115605438905763594777064055199503960731528838822757872074817200458346779670716263513221979407205056087428203329853020350535427291233821737772921449762188649918988061289919888304568916855406698054933763811520046155971172790481658850327367907478758971772112996857648763699749792409292907448690827861830317263845246573843257662447037564439219883057803714247274506103311113089313752134317862707636871379515643341017185613122477698594693806965470617522389632468556633330946302184724191197883393981696334571303357978689801713924664775782064213973809152479452397984322180424198962915769514674477452897303075357818420164372451675971450547929128508905958298015754908972295848382237228517417011005492985531781401370494504150624161621152108198054626064561379775278940264881311278940083597109699025186671150767459933802601968454620564437923652390161477070110515258911043423824971673928775862948546697781758104546461692020040147044936167359613326680690915789749444585329651178534293948478684082430406195331215885376969438450088299749438705480083983088773501168740233649678774593798735480798079618102196720724863114290610512149024660984995737204297174585615401356144761179808420921259036222022214184383500559823799507441313400392868744266580485440325423582421399781622078376420589646976071686764687906463608982021924710310699770461135377073807328205245605978507053594978148418591267888078647556496274012423710416843403535868289874177450191067483490680880631994938275962781447786306414122851828719480346362746057323585440956620133468256056205126421534984844811707995539341707733129819874380106442767119839540980938971630728059299266782909492733719621227808762821249651315573438584730397020482761970081807572785283629117226684465290846925959679649305199258073948047566561139573553938690629257491488145208174447880109528970414974222794802702206814007445212167485962282641289009459378995468478714032733488544572805547544082490490036212416509707865291425092149860720021581838851970319473614531166120577883650592727517302385805952883729987915125953160538712819172328993829308850417465549642392294300167810463477634956780133010319628251262421434178660047035360315764912412849649577574348572690096765237268129862471331267880591640308303640944913629676558237062943269739756430329241504699364559957838964692323944329632850327399235369096485275475581440033681876579913317393723516445640481376638375304790960188022631244035666060437077921578731985952301403549113779900384242222353808143261795250617448483526505345282173791390338524044704304699462511475416172719762238819309768427767000069768847873742063213703587153223645749968145783266258663953918714814381528158890907308063840590294985948947332553959559757658283712873319905537598754461172583025281340242895145294458759791410900149675121728866795147863559608987618755476246816370914363578761476648226349188788882157353463885506688350112111066043026720879171354193049532794694343311689598116996110587917842640791859927240184010910628789788539840886133977713893038435678505772184618700002788319601267789082359735118596064406436461558279040549435249364081039975443092788473360630790866142676646233435906029960273968482495198454278704776693018859575321162992531662705745021978464077392328768136532478438782116363483071919973477692092863993372427043715954366465083890587916795647549487884250779524829925738513981492967075291784781963788697908630482730008724310508513816787487333469171232469791188632963763058747038605763023988879457136756990364494357313813981448304907177273310047796335602411051534297949363321768626875375528087096206609304896197335078358780727224988972825349943698499460185600429496605793578684015200512048293969951294456632947409280586984591902411953177923897044256403102129660555462914598675590426981215675042969802519276821772141550441315672525587970375319948031387384408716639754941415150905912545096452748629338694861084112747563068616023615883171063882005526120223837942568089053148275213981913279758268525128811192652798514922369453273370608130994765716053869322404587358431773758644522881104816969470350656379504395468011483625495785366730797997186258322908909885272508325940869187148059981910867069190122395536479382827785207456317398099406888327435882470193977876205436755737129562504675786066435004078385192180344223749294204617690401120120929368038287885747290024506421959785366161733009349713198878577041420050386989935772473284448043897100208600599313040867155221648912841052614350354809093672225079084221077455741857224772710544671706584419225042047369626721093659499066932161238243585557050061691332832186720250922964900413726158601853898885158834780614606895494605776175922857613692364194545286748067118449662067486466548069927755426332718107651071108882526363760718416143038206949329362256468901598079389574386090633328841972773707984849099609271460474979870726290894015605662289955601581982918905119228445792556844041431203027064155659320554985451248011805922041290467502718095738591875121745219943320696428980027813948926273083838161155859276493268838942150475920267989198111998129925374326887452331135484767720603569394972946594273667778119831541800170581352382608453954772324768705249422011282032293413507758491596670464480742043228026953984200774047778741116466817140972598178597916633561911373792863513818680414324009144182431735584390131829458619894649158167419069332292071634596323679962857887566464011645668354249243134827518347716239807006728364352402299590270655011772293807591542488060176836578498715598477740380606215293030276357893575525650487127915156164368798354965873340380959208764973635347276619485415075615006227007145357394733297248728679020076348301635874845302589708929406896710333213534415542126475160944557226711564459546891903093522818348792984872702209751647298387161853539309536973376025753829028209222424002987712559509929362766302678183042962174972492231430549181674480513455384450567918994487929801534749466850443182701233063120867654944090844669328044412306803252248046508554008254348286558418798797880011670955949105732367402995116971561672453447959470123878742069765520482382760661434727421525021739156906910117666798878544468417790556626540942167785081656493874582645035028044696147526887904828318017050415160742262877133584512631341138386789182536007340018541990529241480669731671964170416511171277992292176450154090682102822348449213215656673017700701100414765887790825595384565949754550957361884814398981590238024219049923185593424848100983310719533816767560518420886247684801718040835111462204481794139851028507380975927097239361832409972573276132433925374764727585220126360821835555896003181677121285896511034621034901697515406898396244398326832523830530670897346718749425251662487930236802822344131540009941736695271207845511485739910220463390931506122074196541740804821209883067034461922524292576846954613492965537072184486726123809884379540498492172596940443800392130070221801735496283597004085604300098248552994380149137056945118818163765298332989437849356736312599358934428197382617530664762209577648564183748795532202355529018875651017856998883651657219341985910703486494836246721804116690409077626733425180395747905826364828922693948861228389405224856146161355832007234460147989379229971279494776649999963601374198782155215238965265749967277719130259312111286926001209431580527476347976267389140703105896560875049290765194979683418649712869892134012839015473868054333685940775563998081526778491416586209659780682931404808535058171001846293508427687405647134454584505731309941094014569370924622266521431988214168045258129247121066185928506978816156170535340017330255777664573716629106669381824296084491852127985365896162052955417205377830411421706990495258266120616297997444442077965590038343295989044180051758790529266435955115240868820397489867410577778814233485931833335777332939601861941106677163689846849449726529842249926555334549669295172928923463078393862042477257311324514099121623863998426674313331784086643496320685136230042848583755092523591543844393065643256430570019079795833827516064180114638172196563248988273588243968174158522922844744477552176345400179134410402635694889324270732323851855994139281972260248474833658471420746734832994022479381777269435199061772314473785395758607958202123089087571712417546714680372906623953724719177825424059100069033545415894216789795063553788896600843441623223305474447777053234906174782251146769423945464389771114414914573584690929348029195118799200868651289698788890860282571024727180627616845504132987909446420213345428148938812701426339417838110421554415162642308524957574208426519029675922543269630248511535919482124218329467115959496846943484822683376209462412328474178202382777682481489394059484079333454721594416712808463678330333858759227917813640703364405682395462128106269602871350546879053058979065924210713109153054620658313705461630708698760212674685171292028408755723779970750542746682565383104074709480476557108912984712396028393368841440337623767464292569940216661483582129771824279601604558227829746997411482563155909117439742457311330527912322953864019303445217377394356108578920162289001609343383639534663114410163137307993419830488938267369084589615137906270362596710509645334424757793166297431146443317429185141420558866906563582563561134893902763710028978874230623959356851886255939372495968078926227311244075080160260180705313846356460879847919601325551265816035605366515048821017929696957621350147129744418792992485452181767167768527357104911604650610563071973689444011406490630955364721484331226897732880398037134110237403573349116268319290880964314952755297740424310238608035086902023455122769516358697937076664364990694997697218907077755563181454856136155612495974202050099857651072377077054370742024871422138073642777841264317261978713125530547871967840691389029188430696637627727030218071876357490900441926995933090570789529455027134581935015386939722059971548820699095980656844483606459372579213455792746646378897945372208330162007214511166392373423533304895777812099643806978282965353951659498917694118580881349211909668557514820697897429855608983993716858726864876281834868798154249814565119580857853497602848296525232092752764084634719908222686005706056981044292330243012017045338302790611728333470156782029564560127799049794942828343789511787502599863348602856057667624133432982347072977490032481587156433054194267823821084983668315177013005053603532205827335345142788918390620443387823755723025202851758788910308266725180915063150281275045302259657587433659635850389314697507347427379734203669770180078896400172561558695511684014817986123376768097230695311023220022581848749263860548544944910986475941483913075632561340818510927334097790960426338308477515310385373254501234530566949146077545579936556650515698049938346556571840723753920418971358997870808576047090367962043765856356853819508680379038976959968806962323186849820899125126000568385672701612013528160708114678885605043845035335249502342336632187938323113955903529397646952602612787986664570393804213678848360859487440113280420221166881087102767722805161386996877521008558711172488983799156374230690704416759280772131333816551766613609284113358717498257418785573396543196771924144278166654137442788505079214954100706671965973421555697622697001054128325300762691083588990354184186923434264717604433435125412894702366533985053801394692471019551439095628730996135624622421658406883890953515638906807166754038832790389215555800822481215170923031345164169089768369099945964476135862673484187179538194973287643238596948469713060360596555360220195059812417274025120681608034835607134911308168207217964418481742106366634964854801684267817087431340791902338624294236858201015722259500020751541912114528079193296568620986376049043293947266113237848240192833739893651649566199784465556004099466651879356112631954239914651536467358626109808084033136353858272036554037595045237646718896243033434001222475603360410939777429271256732761628506372072390792159763416634694799932985034562940790984836686093498555486575700598607786834254271281989978921025301000279431336920256970465026977157104213202969628131808049816140166111540124352069415201180109212571188517157092505328625301650491381785177978621738163932635355972093140075225606723024108628914825650169454490065630569528301111120060613921263642607222861864717984410421136679594540404184327421734659267300045658713256311443166400508657942618908317851905286852375443348966031918276200052232574255344828192472951387867790847259445474655826255350823494814422807962095398307024033491500482228389393262831362136071264098439500252845367951361903191900100543207996208189145645784006735384315699007643525233381748568912023158675577730565826211414082146901190812648644996384000792544054214898635908080815735361128933931749711703847098042305274843478710049445387118623965582092865581534369035206126491821402602595857880079770859040050922502486013141295907771102997078536147151503306533425417708974908188159013796559226788191642685226532443149582744649576560909654920268369504214714438292230534967827268119230007790184691747718422597967755063256028815944773213237483623524161360143456198475624371955530343090792610106586403843600379945444227784053709588415046610699563605800051738847975979332296626425958001914894770965463672786737073050834120256417042430710074269740551457685510310063627271230903183266072353066422315283637150139319974811018442497981963870440353477343953617150256111843072978384959491423448254837034515286847297205583123740669792394257849267285778564123551943877604860698905475426961784855872990318176056968204787390380065924131452179509872564782146184067840881152319074806182598488439751425281752650701982117807780311562296230386318224997555456702279507024837404689371176512415850227816628651124739207798431932202736279226986129590409825933671044435535767380002833216071282864333624160417147998704124547938662867351492979316182028021818667205899197107500735070681032012300969238877165219577686090785296148161156560852497794861808524185078584078351280926579084508247976884470265205444651626184933389711841573470821623624694172531057127440282809776622793085718232697238073627351430243693586347093531351613942607097888884648634204035254630876435874416456723412379936287403397587753737648490791588187875665093351832193624296139115479018303130574365930693725931181859508689512742418180359192799876856250323995504387751583019586372789919056689194372687291831585848825141424665506352021557359591953335840284255633034980272696544065556840879962194536800247693322965478852283957359472847575166472331436124029916849970951484462604844962768566357552946909656784796710482876058326357321515142810500040041963233953986485065181298077145899077095488824009288734973526434154225601215798995541572026693082086384961986448778521041953098869018257626121477804759623404318432976394103004969886096385518854912690005580788959424202081018151151909165410192897794414197889524497095631557881153395112516408586210291769300043485828501554720060102015918442929968297802738131490383490126081632921294091238795055716376944526275996848509081868909334402406739991032010209532539480363164280023488986001248231667971784002460905618368983322018654461705597730484433903481763453499268705803945915027611474546816199381373953281269843317156337346969601244525459552575625978947149593753110518190687092146853881959212487005120529224298129207861633782889544858659953178260773141657260511172630367153919884326813929592905235332003098897233302872989377637226613318685287539559366037354292902366501129004615696011400884740146621499214281219422540305800015522868141491998590434345347485733647296115623056119875944629331546887983813535921392100119033787075740611697075617756330655532104274996518375216560383659238477277246583036811169442812699362933764390253360577447012683499297666485493474674512058765586845670431305767459731573958529843328894787206488123581200020987788100888737980065884338758555994249224095078866397431293198990794203751369547234685398922429133532149485144124723694085138802441674521504712416553169384004630657472681033338432809665286034980401599081969884141534744095641429677830888573295584993954575142623574557300978623101223825480245791391422959335663942545902620343084281995628861741950210071194203858404436200229762657464012589603913765660113048830185614872231589805979884836029477466850961220783397852294710369251325341015840333968345927286612909468895184180366401656271839806049587343270742390146307156036734550170873627760486481365668718029419883968090274930728638549346368268888786928754391287912169838778048346634299237232779956121348169202023539140243315649724938245885330379438405184815123599206429471425880002684275237938741727310006557451242549984308335743529844821181787086000342741138402745187243669168855315751052281477507403540880187733342889354960643521481762930884159291442108565296793671367932892570993609731943286956923477128846289659901942771323243968531900012488379640997895684366966428957923995052430227419293665597605022378902019651767365037631303335253355240886574565856150974421344236938648892501934471305576729975068627165242040195313084199208555157262144856761280174934608379675772286352698819075303139369871045209547196593397852176980692521420968070454287072339261761058913530010270465198194766861634443695286789579336724954541451932350374753672201013474926405827150048279483245546824825334730250952537142212820650465854471150900325880997608759753463365998297371227220251354085775888732818750546690615790020222932579727126094841363540232958201450428541735305542549086842910430289363058647343295916442626487620483128874007019256686578903972195571186480977294603853775485885215412418106782881064843007539850289094061151113070882610370563976287987474342429141008515992548862325464435484495948815525764547978992857535618660436408249043936976600533360428786474404916759140047904927212021360217893463100175935610282172412507140155288391306081848463880041633536554032033558074207554273291165674142076819806915537966722240277960419180698975936496206585356839866623590010997306799695063720314768634104941769108187376800468678596741413727482232501858409521977300741550559884869339880555662786905276749785937488638230611703604530542774365122318715473775298957566440511062403937464107581789344746570115379926898344732979048049451158593417421818972770360515837170948893106373969133322042033290286212838368295032505963456966129558962109330136896730815582603842026386914593489417515678321900603142962486286741035068086308057681671606241208963100235542889861352357571113890874927880192700028150426629814883167759057033834972995804826613913961412236048320878467007005632065708874571971263240446215595266301807342034264762143040429653014808286109325389708997244004105022665956217226509517017706059046179543427431186850020700814449991225199222019234742094505173803531450280560064047322799151487687189357132217919597660499777230496043889099030439727072930154343978192610187006550267689447260310261479724767155459572948626434468286468867544860180544820128785378696767657891171091123155097473117052593729856478858874364008543563958182017030855788774841370441114173591841256689474830043228308073039503105998954510886750811773737585225338118456284070613916123408889459437892561574235344992253772350802055517000800599398839357637375648809246557349868516566814665973609867498779356072006808154491320828899897140537516947705623647664585140290620906912395769626602661673065504787467488216639190676857293657495831707049823434874117181235579415043939806506326557868345752381468023238944012315576730738421217646403922639308211071602181753518771527456912614818400089028173881131337293517416697784577203627097873850410020256799431354941496488464024112878618567137731423883758032477854114901193099212351902857323975374882996794906094959083549810442520277443664398508756409484048705998414106571050726601448629887152450667053875434193708503086306343228257200852977702348902976061472934568650007077196157446392053839366249087764396704309994209653054151710095002572043333665925082683339411333593535948524425702940686675617754348568397074433889176943417265657709246234369393404665721069240599228931383638494797401780654327326453291150823856368795822187583196910993654226460265959435705078253716467733879535528325141451256190138314409686183427734089952604309460905174581057171756586838426646594333273580935362934944960760497110165891420911864761272165975218166925222800553189748561040172030881404542101863328779462514769702110826411384393487997822747195139984494817725509553603564855035555114161070890580563660366360451026461448569386119155010233952329818838040660196523115826466845086808860921224821508172115005772292458601217681144715293650097295324858013149647677364729887937961447287474546369276790400788166899908473174279763296749371167181255100476003322480351673475560859459055097244246200529624142958891682066401461740972220799386300079892297872440787228497640382193147511113368569132746393796341975184388926578174749890475182148104421455147103440278725797391180451783658665963457351908152160015785426459505069966808528981913923789773383163864698655035772478228984706859599021845697222582974256218238842894840276753137425715798955634074283103293515973016169688649287744572049058571005981028005773475186750341870124697344527779256649117768862145628805629614202211021543697695163887605912385553187698079670045316206582480207695330219808666582917121746007790991708370095169898193829006560835916728909160056071869813166929661414660924720575473873106329573895093461218770993294814542397272198564516953278366737253091093102258652472755464981387157924366552452630644224859313429490673715137548979674498966035742581265584909003636819936156376255466914398329093848877170348188392849994311823201797381434335108795676171136810577975619298368413478348929967066104312569692192729962337353111917162936647804232521737637844290888796718801159262645700799687964451640546352423347452225111264049698583422906471192529037677826835879971401644690289059131377559791192449609424286484844842954870200990823039839838484309090187791641102851730531691556042346747457089861952591546906550895602334913768577519623496219432776064086290544643715496823339941667617540765387774868340740999290460920576448192214359771402234396499429813234434026664750351840631067041543075387485932457446604539674336521578088335127344353767965404888485564200389494653953948963815065582907636599729496149632931850528942953508847623998198479277208225920133360940051601139993816808098093093961626156444913273410060513168469224276116959439075907731137828533085446062744506057010539228241459978240933560739339466857205365050632063294549684616258515113494411483102525020736329764299544276800763233532004044979358826231778295231575469867576454632474908479162975667962940751883121471873570038803917072724371411421884871742568746273487909137292392154655314362364807264153406610321921356912550979937565141435878950452859275332357033242715668750831043349468681260487303347347893503096755595222197722113237177622339132987761081226962382484951345961381178198706528980449705726761690726525889321296691270758220099162304372619131160686500624570241098922570621756053728290341135088391892074666278646596444790035089466533317309626083078646908029538932416472929977234836289277433264378517058381913541548550438012178415885063706641654215046687829941932215865870379399349230715086133277898844452447750841241645965890442743164569561526589410486039851744794713291364321675464573195638255610767235628243166453130112209158661030280812861688029200807167429372617492483679449333822701181254259589275605070476569760235644282188651766512681534316878725843312459738591162846990192649174738724063654475032334315941753138701509753756824757450861352977209214994230883713084246288923925485152943583873736957155521827177734134430196163791190648770668292974773771748421918500341632009326842375416469765935729214031767746549057866400330736877737898426238713596898050862923107421679754347024717218841817981524169744771460994868524774434499927615603407450266454585194116233778592102457316533780056396427125506188819649253615829740161105188206404174795097127512207369955100838803654594605717122761332553713972444231369804178732053715454538116783752632353623425855815970627248885024055786179580510885591986232946614616644274615614146651711261330468041506342466999339164912808368404540407390552447351515328013718821869808079067145440423411347729499667380851026001273022124454887647033802877718302403409934184716894296790917093856512871985344862634509253378354125971444713848666971971600774471493441712699745879742669986698396223659667946293208697937705455727428897061290177659378310247127696503562356246601160004659283748682586904056730044871632595284141855323764756420992194991438185394315045071809730187645425775509323761078012544111555872057989331059643320347004846690402937886243488744592563291456280876274083639547220741691187013688588192072438251697460967805331802176729608233162679656682026252180725238301984673969227515208372576125271961618429668447146504209163620124111546404583389613695284741917153780443546839673765685943006484801761032715788467621571186369218165001794372059424183684301205566137685861889871328792745094153976209655270440682432145384518708231065734447083724936882190072145194420404642703334350971457950290001491996567003596488925827129916278707728605970165846179761623732739045921929828874397794040673342517363742361368112631884749270267901541182883676523795732001555014154994629795447205829917853591904734117308231018385454935968924057036424559154831836061251652499308014710736676952774733733992523528728010617833740463900817380638472114505899748499885083814821984798341893985695990574377241435430844103208061613735023232161603872088397155297376827372794823803646649352448997476260612863010411465732790063681392757517078661501191754463813601368537399116265122736046106755684194644627354428675332862877202945791174109913534521623313272878492838526802510347342329120801326040618366228271842380865933366255671138671695258959926988236470784526188616338517580320903434071274132588124349941866206527725470704244482274812690559628048560432986209416616234129410638935075482158753159840409754937823554062486636817742857928999016547692844585248949499477717701395525064585051301193908506175618341615631991836131490019465259454456635149643446041445081507401966538538929413506833069592134819682300144807862830081759669920489960245649387273263719557377248267800002673284699354980151943980672742230493489808414194908457138483638149037474654774306675972754327186798308155824794835222133340483906098983218519470065111888309611722668529064670838752445085408905179399698069726084499556040220804694994189626613767435749886637647779652701113103078777543594156195154808497748743710304646592851634689566852852172330085688740110368069492955698458087965229231422404140853333283544009136123230189686093556910197614209614855930838781165158259432191847172222220402914874675360950532776372343122239645750966135355418058641310599211772702072234044353645764134071260437995247396679711034506177072455884884435640260072654224799828134734531517420242735289448282842511550202683689809395017162880996707165945788879662226321843483856368092080526341764869970506716399796004065775383866937133989100251372637445164501297922157571105019064347153414270850703723493720081824002910050868932703889499118073526836282788551874174565909626397477175745756087965928763987469363274772328239863808086774795040729810379322848942047570840999004428584151986024403864797568925689236163316821656724671392404663782060257811973535835795080384091456492743011889940287164014233427502412423791017710388552881525880799892599554973735217275428705958244827644306170385252248967586996775644382670904494947707049208588406771747128065381340779537902603423622708015256681343653405350072845042447356445372808071917387199229005884560812354213074724616795379726244036988576862155243577035657584243940870329621087271141775243511344582841027896563061305993939381686289520199492680489201501666328072267120766184744766934627580521316837873433775516613979986291209700392896484357312456553463321782360569363694273111192664966507495370494248993652907876455160463903801615090836777699299654212982100778011602107586167017918245508011816232616267810594106442357048383683249436834696698254177789060919835158494767250956022439243714166259515092260998579990282548334439618226790067061239430233642495625071547838872557957538136348981917877390849980257955442128168423222402677575302038112387435873650986743328182682826604750334485337532759080357779177471151750468073173072991984858801431405528366617305759019162579812362858084290100683741500005599610589075646828257430817628238814750216559683220433872319431917177027007627082573229961660460478352148594117495045614508710971798727977873064827932355409859868110292019878844478582655992327193491096208214216869794720443589869578624851200843711875459540324878007840580777171942203775847973317122445158324576433445434841047474257404961696513365002896532085304524435838928340627490384798629297328632663526929252713468828463280172033788652140444507448133672478649053457637686133738913436306912663717126301784240179163265672671963853180216347078292037056674114910785877514438259357713477570186860686689989252507458914619226564027373844062749597592848320020013522688531759666574976463132255080587029822198555884858090882762764530968937545626167875977254945557327004629515445688031245724805979866804309545521453924041352928070322232070251789698070294745229432193087038407021647540602994449703144036300096659385659718214570214915089541889127272786904027226053577495784288414783071992249065533899144408020686011243946120417144848585978821598598827102324931025980793071301693726919327443943064337547721406060301022677507898063019077783581610309887002830295700430292712883252043984802663291217916723702177545788984742687425764196598224034277466415318083491498376191412378251613074254377136695585971923651033053064451852043050180573429573572980647674934675366189941143167581503941964325264025417174232588690790493882085074276106940247524097915130782371220289395613796057041669463328733447763926625064801250085068274150576607551793506653521876086113809783465235941853509988330714392600268596995106583382834333798929574682338035081166147489788366220057917269196058502317360527531361906860015034943851968095156477497883014241586203114158719948106200410615487367266962238136137674239126578229501932590806753585148574030350026168245840061596847676374070738496702261704359772461618702248722832407843693971788208356935409817688281114227183939327395419116601309254687310272604464516012266502530975674315023471711530222234161881486117822856858009226953734463887288737499235711535337776646205336793147633119683839166446797850935470642785355981663731669405362567995566720499434727826888129135184128112875444956370859144328609136982409825713549300955474757627827948303145583420917790363933994911235020781692364516743914542508856325784850462938400565689185444322315346007755289361458755523905035721363658193331763127779398957845337782693687273308335852046816219752871117322368424932105642056711512871288854110125227819158478676287339860198854006698237607893842774408109429143299830009309672304459645410111330353515534687233236720205524446826168607982791453685982552910009489975466596294157242560871948049310220441703549817155756236335747972465279326486524016908054722601730376812052775055133526455713288548793890275983729793423218679112421938970499546950651074171670175219270030290693239262503372514568221401367579947337636076877284090863426459628866257506179297008382980586895483606513608142499425736104165256868709531844089699818826223336372207772958074182053995783292072390035543348718618524306416509948928094601833742175288087446477101731345687763767250315514568345860095721026931241625697395753003371303473978545488986771541435043034136660923887105289056753059875040802842758543532466700460488863231698877881426514658125000090714789838581195208617816043878525277670600624517317558909000771952437106630811894898761614688314491894835496242986420633760567025543054434851281860618782181583031672566336934372973611869993946558936447653610545746617244170972870501552787592391971003518212918543700059657041327023433468817311816838033922410483122209117819863676332968875928604778107765518065569639409568077043476018550530245697302874476843010859314405085364472047078874060745381927155833913470770273647702112907050029752097986824290333571891667934721190582319493151918103978043913245457214868116949430204509080984535643231063965151284572320087763006337451440967297852783953898024889842933373947842719225087621529380770265983937060216327880365671608552384568747914517349131059269469263739396227320354447579199709246391407766946589322076403465032613888448262526871903286036758427249537224345669743242856843087240189803177676824354995414953666171410739609282281491376348919255813192940794076117251982559661830299491905776966852693332980503967098318146915004269150769815491462456042600834169508690943764682774781989196104867878270427336748264100762970532744184219608779952676337108616578971402552917847423307972257982134923462194602152857575901139961637079599613695688832963511165109211716979333148090452871565443495548320585949396472814019788380153728480341074389289536497179307834013236885449107525351573901644180562558074164607842083951127948215035025017326779781026408975248606725526189913001742048391580490840650940581070152687237491923285547304718800912288742443588182706287852543964492435433430489556597858028527620925488520756052776421365707922332317776422629001048386963143428606083111452285708585493226073685464823658626633708087157066041073336526683907634044383834403355671075319091423890341219957966902187464839074242183778813297360436803675032425618523427588348260891109115253230895641784550448141760763873051148543562291410085939993678098690615635010289909030298060969831267655954056145945066236067069725193839466181127293693134712515346495871907161737267860698455392691338273093005029586123142443233972325090970197352277640563980959574002077412090135665838215109579896726836894747889785632323124027334249873843204801391385270786419887053724511528906824107364822057244241274614787795338724076500894614109179667811788598672731392864965811634506501328986932359527794807202164828479187955012225166434977485703007491053492534389607305000881893266627193351805287902063727813814965862859093229647571902251637663216050263147038349633480552307128335766678508269359730151568437432100940439408777543583153502119485420705471796891469796915431418843142291792747328015398153434076973035221212938331475795083158031126208351895991504465220179703608776269377561753751075021707700401451220388935540988675593985359734378429648590872990795474564218555534751478789500931254047582143541940968347005648920120205209742319963883198171812272874284307968115766209583885824549099454117009303977502904902271703220905939544595357624775393288513656151720388087466875068534221957530895541787700393189092947348591603682328561134447625454440934418025939945591420072834600466414354645077312004723326579548508760241513368288335789616934624617330082861904749195451243212123301623508616218302215794923688204233951202569516199508629816934420794760332078212807897831682597862316773777822913179285760410867785907894173913884232756389876369831981267739491474128186473232671008879997312858167936987934113411762948043602598258835078566312302092598096798963581734749291702484119222506664194581861102952970988047869548031441929563313759318388595715127478620451037134612341576466655748935948686161575371859905652093020195255249907172930215544602951996224503507121171011389225033916226309755232003130854143128906819640084019224732907426986188536691870888985359054704547891904773684884289886582206461651979807488374811646822432237922151720868176875662173807075002437140074275165601239137521833833660377172875436346460575622251159691008637424694476318533901539508053683890012717394225472218903675093960223531917466963312696295326415501900065670341941751301133537673760861565842202840002933791554397235967106606706745836180322216617264016825236428189701539024299330050592218054517028504048403691403819631801357914194845064445621431760552799686869108965142044981003351567045316655448081758271038776043189817567777866262419139612280361802280200869401472888881989894076979213467890608218497959141478488833805973462042483079740695276103414470766759562293531381862046586196570420987994062851368957990113059874441871139907507624655703483600765370677517326612288736087175637633412433342071267367042210402029074192498484658834759608984058995914579750227977149154036240903398549514767822008555234501463241839108380787113033595120612964084562722236552392996737078638034032385334227684812037138833810392293326645447742848939051137052926378480754353155959158435168900572128421062971009591951241401505579282265413139692889685189767445227767284626258888631457739453317355215399668903380733955790956261027151464529562400595150726988731997152102588209540859256810893758423396131199245484365575112206554515440501956594606686623498909712233779624367377070759972263787918739801223009672341954908399733162085107335089214518516182989441758117291234547332948118778304934696625813837050190920281019945084436279486641293723342374508702350100516081174586067801047099342168537160519252932288508338449804603818417764101085650355396700317334909633389832251893923797184525505897500805976504265438754379971354170645981185635612075445072547044971558126201935861719569368430234336206253825672590914513770704887175664499847322356660658264687425776309833382795479225149849830115075553070891055173115161090047878725162094920886287054229226634240169697736639635696016532859952659032380254818932878251529591091965753684386101740820068378357495210773648782673343273765977225306368300987408084489352273779500597347103670675169317041756808072238034572279551879452685634865067820873273216518403931245025225534921544246293431824242801683847992667438418595255896271104116898639067714338997088367257741696422250163711847543086753288761504850268101227926202588890480115852672951636417027533573036718269730696671455355631780958459306595384490287485039478185616453569479283731737668306593464995038683031692772850262850438101790490611130810193835619384515401629721786486143302332399917975406805333128898710367654137391570114865236079046241755612295261506664123547950850509757930666472359967805624031124356932767332955908708245152034415681227858289239495498723410301536536263144665754325969475822177217704941834408425670072804345944866305531980147014125316936498473420194658872474014958577854181586460144692679850209958067330828635081766183466698293607237021431761884805753309162378805092918843542748756112505038352539752779397998307862396537778450626212851678844601555645921780078436468841494627254886713409606714223976458170247843367201411165871402487606727098278428268592323964909943540945991323519547251937551149781220260401270456353996141600591777001542369591651457373956647851208257413843598197487583261333815163289675045672334583838101629768285826019809813907073685283802201282626265615486668423163805254759941784270563886838390692490450464758723761397909902904928179738164514606843692851214882675737885810443086357193481553796711111119083800733039865752925772722404436999124805687655978037870678442156981298981276928821630431648970089287908986026893266226928614488257989090140136318780073682974204381494711745602506395172761231030610384637834974957820690182372031720031655082102673368970650648240304075263299262620227583172587610903685802258697331373079858480731482025516773784191740235624088807346252072973337948611434826705202022097799332642050525121001144788657662221533759715217691034446094464297847925909127368027391842646417086764351575147904299520695853614515060797705489363166538816023228036275048943467182687182327928703583742638125253553333512510431781097836169059205277978424424523238168254179388668709231723281039220915197430455087532634272631047954621018186654016609183825575791435432255175849350886595265502961753960206633529306916843805927998676040106674496103163991431444777153581760180029883811330656412534171142185631253276765390452688426363410902249997466164680132784628032357124930028772268738502768216390476882184206094755126420967631433660733160055396396248149566528262592944385077464251062215058233276825575911452629688040771787886203129663989998666886581697748665699064317514306046511009835022972763369523105159592896801904416566544944179235080028765871447675496604975410317342953357036128793463808799111745170643392840279443272582997491423326637594026877253310355662678802573583016141910740516651225902542175456811497107959248118072593416992351829289422872922616250345069857604549440355267553168292037049079703541340333242069326707193792502512594102682759892454184244367734466827620871675239572447554398220739763294940941034206362439821731335726049913011186531795509392434382292443230683622448246437337281798111165048086440686511798047767273678446359274427583937364745642830519409950221897034266600956944254108965102947805399512814224664560000159608710134115364837272387206556814372479663388929503672297246846713413307305557073955985036378336014494875892866218924993008088839593350422816138764231375916707361606067600131841271252710996891921188514658483445088435669018996732932249726682825624412870026100014784706577027117895221499323603832464179262173206092677898184770034317173232907539831667446246894510230187317008092494582510527310564001530011381431540588128784279616689111369489205099205916952843872908010947153786637240026837556201567129083942202092560969313477552846417858236406897185944125774757362360542991370311459799871655184882879647120026564489830584673645215463604631487945231968878911464472660745720168300762527056511244903841576144898755024166344359070067790055613073123699685696361569890294633566377944078926036229195759664931750817384139249337112854829268707446966193833287604584493894635447457236370843412612681810475590881924133307966018251933646759661504338654581448188104991793191099059164994449359233494450985230889446208053709055948454591440680130596646707662475101163893512920017885088794209187517860846058817236457209509068673080821920311586071951287578611711742476708791380129915571616649747119345736553289488836579888052235074177537080034629633467048277512682231997313865854931067908763682633151698510750251310171847730586617114112994766796151010279349870993215652146900076119523749720248278874945228960741275296115030729613354047854291330930352898257090731860148102103958097375729944592768825069350328634477054389099313728871430146234926226294419463275237117370669174577652301787757219880670765369423058075444503076857643167119225530711388322996554051325139612201512619166777988436629025982729428447745484815193850340426302324806165455771152729541539367921535614153823778818288149261898359099638293918994534939083380835640724079404693961816427323117998216865976989690954329635925798802312242418977525759119105994848259082754500738588623338166753292837659093696787705968930459628357415283452535248615578157997750197227343591792723167525874333552684315293934650402097411755184796427268080933578358205778896147771996709600343746060418388933378655787483359606684034874377538621386983986853487761523527012551169607421449177061585668360381906394081843813537422427385724521208245752834875428994325801148646187423106306857903491645425091267432083332296064094891735791218100493565624046613494068737090113802631050718009333326390841508218722702826313631641468392381896279594237706702790080578023040004454190604748605677250502484216334116721960589254710638799519088491217841718010220148699069901149888211632902265205631330400727118172288358712541148866108608208044937408078972661661336899758063100922238505371091199340464082282491746088537979400156092228765690743843928694500303193765613001413559769043613995939608262593735716980883865695974858427284456275028490803896980083294821881230914738432098032231081128723878451741333823995169117630988413041442854457711968487475913293792896571384090710575703608927770666205820581809347774969946619168964881232156512329282573041489748555460166953444827786074507651767350861520509259286666309363878810357279013721214842106376007870063910703412094594814367826527316714918100098042732913935414906376262815652565041934717900678404125180973993317180276733153941711351660535344944215975511336833466822568349745286866647626345333469553700183913486747270298331127899264408513612562145947088688309782784454489979394087274880082806659932599823636397929640625503394784036735408256933038471243581414547368801859622949289595951496012124713217335447292934040762094589026453040031595721894499939071133506212108300977458367082248534597579336754503274467786782491055402624808262393005096254563893239658376558205758257039812413579253772768902370619694490274033293012974864859121441046799765252480824171180679475787440144333985065656668595572373746817382420705173511621214338025169046659813773089025782559155680569565129942793636084418556446840330122673765784508900944750850557630344037480498967045310051861003956947902935133431600662106235205066493987371964548498194801522359874415895890520943054477888366690768000411268560456196030065633396931891138988173405408075284813354932937847058689275826117065981933247200651799719978997141739760220687000056277163322415511574390388716589366119836223298133922789376427163295237073592437417235227034088180884146568844417436452852721867040600182716471666677314627451693901586232487464011267649181482313992744735519145456397052010753400928285122335562243010334034709695113184473784728349321512648570251879753933198567725722113703282753371789208045557312326077452698726101805700206316889243044482160537607258597536549418631535198689510950844060439799241523399106346663963324263523811905477850943040608051389967613335158861002247014824679587731755517388695950945349064086945642741681179630503895646602397885057601375908458112562109326338117948860406387204192997950305532529596214091303473252579592874478405657536957564326947373355740557984793283376250382037878525701885896010875110440240497231402704573322034868551292522755688878137610739386396204399030642167599836241193026303042404902755718573623157222734258372011431515319023019552723519585383310800084206853890905763762797109382428886275117685632358147449343124307207148767448066920693458988151499395621783139166319003310907998924167830353558398581194388215623501936910067371369158874056780168778139191031853882472942097725517069786489028975509242321613937081005342455320186139846954116395013350236134651862226747440372063369449557169710103737723496107709266089349215043046127951240644318543483674766332955257052055483471874949597877644632266151689677655041418872221887748230882420785800968966312108041481469328739927822600372743936239494598214730849786732537444979222887087374538169054098420247962144016716708820162262548398421675369879920106634274035287159221158321174894725219559123091494371593050667795141287503392925939719399489152403206672475175180848114578157452617603678853386802686231686251106441929859305541322960910766522968075128605064447616171015861305678812510396633243139536621938513901132920396385377398811956713561711989654880538842563609763262087786068260906913742473543157869943095336983552702771441761991171405482743879835418280316800581196114078352600328485657871204301169068595118930765971287499331377474014441593021742953981012873327030095713379606248130765995214684398769000775034317409613692832309254362649443378110626802442197933646393232847614698461132730653969086044063800967171985036847720821310355746968929852807560416113719172404795895500328712330493327687103221397133101676131600387454547379103595507257983867643759391750479875474331320259855584275422423045928022931449792264155259877073018554727902687444259739350306391089703423927623108961467933904144401772959001500263280594635180206756695569837415824524834246620659776008799392534033004243179364246022708062528917074053471832972370514769952153037341086553195508970219912730811778024076841265623087637781227309887057049925552797901360489547497783539520699985435815363906806226300878741926013067598419816718108768215990916693054037955956370137051084823779127613177310468520507657405937788979536233091024229349894295134097189452309792966561538455409182016767365990912109708730685478445783248760591128290151045335927801017948366575770566343407749956167321149347174762740464443833058020062492961897393077647593856423774150479787548339445130476186826503151361414328153641684092260773587268413427642059709434349754755440625135900972145347027220207112072447093677006500766069864055622820236271638636471312922635228063685799119402972800633636962451151300277070406797837940676271955292653874668432335263653410319224577132512295616834798816917460379308673441083751380757353828246044936235222253914419004706257624053598679656865662458516050155351221055608202401905552698630367705544708283449681264039353104830272067973694218777294088784536358337332833342917298346090139181875847418931105741599556544713280724254108665792517574006247245526625805807279231722758387862791177778172695396868499827916364344718109990368018791552032099390940281449410721613918480404555154193909272309639908754844089189050178834639142071010639960561977145378551397421567421971188406866445087503876797916378056006166187717964970292058684222324769593368610175982164158594582234763368686397830979545253897902850433549023355046294293989505085147982050443434399581981004352748454485587780543506231998007368412754881129267999841155012530306475563906494330851382246587484344857728002659219336104504274795183300504112461929122851364882795244895835334722495671200296643895760070568213900168529801254710939826744862199518095073138215443281541999979992934986211000728028603799358958165524817005550469326086809854459440880754004624106724105984324129225462486743886045675582964584950442622674138265627397312067134122754972925766502100970810930562480435716355678130335928811234704092307334122514009579205310749085745251849738379613957122202108980526825555858089749676123950167049138091983888271981743976448249706686165104215041674758837601604049312286182847117385642799886467360999587737359886930763044902436556362333358581709483636984417087413812865322762908601884548661194591311455745953350744900589146338259573253981014601515346987125293889268117643973592908414307874108638640709774626030867895605083778847093693687811211361332978200632059344095022681105591185419004978868943367250527659573047539405668866381172566645958636281240312855634698990155501250289534447455857276112174016152781623647184944199231287021288136206705421687777685649285152238618089201659247197316945495985158277712510935240794896045067824931281378819822498620433684726269843417058984792271193549098411344135886546881301421352092228494497963196638735765323082262347585607116698359324350569715699710419097990279934848045362411732434141996344474222041631272876830124845000613884257268883343481302234532834961223447520952403040344866133864834975506428692518128240836566733131264734560000194267448371662727121035220118696374491087903892613302261217338867379427779443275799806154193434136623423884327837871910107015426027067844243766489758911648586250386260338035586111096848419850136440915459464322872762512473211357403486753191575443331030527367049610894246218097846097012705024267208420825682163332139608511175417404505696223023832088167523158090060922893325746045701126321669079376967193492104494014373099561971958262935296126548473188520248840661700842812097091027857870891781376024333335730531267813240285723200332739603123204665336260985869713485183568985920364483200970785351857859340163035519242622023654206107074544143458770310017857556360370478238464867420981864467018564629216423063981900806785300894575246020641096175727995415051352162465710134260717332952715463568963184165885676933837567643378685387643652559924354719098404569015751206283170445637349190605789802595178033901610056961002856275760645958021324723925464466021624398085312209311316873998626107727836985599545368507720069332028406722774366086833869131844769429104873929474934499897828908356702986152097973341633814857443325469498137989757288516014898006995060439999128166882562109516922518911756320700585222190557065198204921786733196528169483030110271774502443860897717519280819441324667702935469744558119284300799269723611769625175668737156120758372454158162092498092720698804173938009438424573756069293740514452323365280882905552217202502850538591382163594417459960736453421891779678099830875196035690366076941887228230333444987824960689519361141523253889264077993224068529514078369870233234037050378753530545041121553388234139616831498401369446766803166874427961739904960718299863706471923815272270429093852356405399993860849510124590656603762931109046136210868560901904747697941774611972089515625460385283369904183719474544619223183784663168228338280793222033023939671591856904096982061411872677617502907237129544539659977143197379663711696101200452629497205517968073172443212503204151762982833789455613775739872983808632470583357251406787644959141027785673460962059443303532129582261882574415643997998296047851596136555922942913305652110095135363344479620762713888312414776706993508107181562654313629041692572642921603010983511603240871036727303836192064567348903652470034623789723206051931857352348047241040455727687432304202403843244344849473983054648482405071935293729844690620819275139629318282619866702202704978973163436480145879842450477829717781463966212725928068103780784584286754968798515961301630925599127418262111744735125588359033778935851524139144304431982028318522768689531035617251756607218682539972540407981511277973664812770739684806381885725144132774464808632720714289362884950536312771781604336195580552685639425557606639327310327899760934256869397188036475501781121387768509776851233676617865277762767967436986868217219990407368544546119891492555093860317298328696256286635567456531980854072991473240785631364425741808079503928885270464951839931855946792773036828214437123148426882122679163485480409676753526375764598400044425527815676395280737623337203275476588599138128066188008716834399550133835596876754295563154731513324947366398310430821622173985799920647121774829101011774989189666703738370007091414078344916970304869794698330781156076688949521080885235615609110973745495686879790001786786699727013265630968225700443545630419499891213256963925664935444170322937250301196671395632713643665357932197721072330521549641867226476917464222239039224587133917875283145123335796118085322833478837851089791924529519526162225998271349664517871378988909152399375494776386600361971549857394571029945185991811081943249135819177310629291202286203542120544173639826765082038975814140248621432830128825715851456050832141959376805654604058790768143729043612069731927565085547592217335469640960548908881433664809838398072200744366052957888405992117031683432044983112967132358507017760842306594044856439570174711681212860214891536471908094033001238691728867846197854929292479240088280240420639129728426635911210934091221185862397218641459820314993113914742978099502390612648168056363536272581714605110831333746548648780540429010666299684105181243443902038902365115633818431759873006581530473439130688954260560544970696937725689072168531023984876157090413874699352510120518701516153348478414601238879309770783775911052663461042923210870269055331435062388605268273588985761335251349663879574289213763082759664490582045365123583493477621218768437655319268851840941191520503883062127765616811888995677356904518026290655047777608777930314634934154668467115427312643160752656028053503780649655896766839045536044543420325059527794898712668572111776586703658499195900355599226066992254085222786689426686681913668133701058067186035850442254662339380116492743166680950602986110988118111655917137800184585036183302398650675629920907227479203605899871469333517636034945496165204321202983476240774160272328629456594763733362733372858775112612798039527678935666746417146825827851868637670437736096878903056933112055893804946412003247375596461820316203723648301967659386273737287341575657633729767625454351804498059531473864331566475086040961940776803847515126238477657245162134962852817644278055177136630745771571017122010642042224980728765940796942068218186067156787768028340858993456605408667843232284644794494052157610266518771666217237789431728754404235621447973719014266055680348841251700193513884321472498129008313288202029464214564133057206669197429964486741826181938507230442516029726846862446166379611046951325686667242336382314529117825022856313258007296560627719517291442522392354847393743408925122022236605640154768778151098298341689987406751735254605305137478724286279801088219076750568902542537337083370640949393091187764290526382945364612706017460679856601378032598146615378968835544050929915519824205695937696716410506941996896904149407207471121703982390010331214365061394451493183430067337424049454640751147109325646813995675760984341261590158996250021240690185493038175896151639853170226818034565471309832643349783700691034754921966169397066035076152370232181980401470415179303884465880271208784279675677962704749720776916927632205771013258066879694260173485148350020624206381784015155288444088941929779586996937319897909976612430459072833369357255270591993325350458133347311462881863162442059733537328797515387017825578785013262595491759530412878955539896762633184677580515675057863814848187705358069160773447079200092457196158578574957174238391243199794643266135675738440989872160244044595132299918219408766508293111425732781332343608266765309726843989399165143115799852999576719606041662321874667085847446699507579055713831474033783968104963297980613486771966547062125669129251865884153532571726804956787881741130352889681580011508418043662988630078024564885045077684397034407717942131133980447653385362947688250143911847933775991251944992164798364176739848403826273076538713425858411201794705890322049768289130397857516732142354993699466167973425225412708838678389170354907532700118648738889855090662721841542761661094161081369692857111397198216353346326055175720183030975457808278432016114302618988805652721900757262438970871264709135348329391510226592730833976393747993669911180903326134152665462018553596553087890883031669774951064576734135987009599554356811540566782229414052545915390139053630577715413864514850668038010436266089486029242825781374535932355206130479476549789599332836887257527235722437582459267524577686649449141910666691338496811312198358662303585145171125742265692282103851033331349649416424940112500453068496832528829716517809878926742080063172285273161505759383394988032817700973216154889814315523453297727424946985081519171227654117951330839067056300823816660958566382131690548478900083030268317280690179248196121034459816206466773582888329374249987231116309891876206017168143116174966967745560501603141839359596821847161546358670379544985101731421331636359505050745160159663283218658797350770932882435724899251312672116525409347033573919877259737855852952201413622965976212148168822056435165642808624518156093346179237744653621533876672944965720503237606116958428646421134643243488177956539102041015279008645984701133705574679161379212874177289314180085537066461951142664137207865235587832008389032637810858236971344921382331235817603979497771002878900576571310472382617062737644733423491929830637381671162463773256996953116490541690429488074929435283938981571366718383349973241948214725152906448269980447554358637321012297395996454935979730632399447661811731357388859523564518949536032002971665140388937226059900044093538745786211460303341507145630603048724589759130731890147214694997326694375968113720083692356978899940270951624401023825836498140087859472584096587061558796234089239820856170739248054999789903254028784325741041674530210890904395869763290870428765323729779282854665888972026960850005303171911981341679670036294073752415430352433583645012267703791114288114441760176917111408931606467816575346783327423918970168582651907068115231641163311715291928183251066795450781179381597394740259796993152845810662036653682548606551512673181714476237597249447346757952542794101891852674511846772511120096650010127316015558690184063556505064945709623345042239535592542889481466144231538139464916520951289804029544753807600582676781234148967450544237209517067458725871375322248588512738712182704645918092053428991569716359144719468231302811997169255956720677605595000516327582666629668292651507624573988052920899442448448044768041993388313304673910184464213156320795894716687592573909705263634749511686029478314709890838735861923307082804145483772101907117555786784086427670391853449952039694461149702637493272191815054819204979760386697785664316219209812859209915593961941438069755581748220709211359679708726892738649993123784868768548721100530624717435993151598754296799108318033874958963262715555970443136544658089284511473386576107024386557847492096910162575017810428204397748053813933815998708727247312668743655365023655995889302539420033986285680040555121312772472178979770672318489796541011626294776230042612113479748866330619441944035869347970953896861562407321652050723948765542161608413863150745947251980016228749293404146184957416585263838027899753485375727385496294664683286212304167925380935789531720605482369307651263274376214574405850935711569988530261894082788128308786781792022887876716856877223387276139264918317654943640364235826086225698942729545719474621438649543226805164191102371480083942192375941418605267197100086278065585465986135284512126553059986670745232968810088624287226100574726672162193889406174511035043958768316908408151543406170838639448996780267526520183397520696664730346032959652931106961833066753158200529256090170125247327487345152115000556218221745649999323698998154155463167325974728775000744305348365738699999151313160896357027142128236655855787944677563177746535104078870125752623245836498645740410948140586229536815589341277924868496112684214291581086348441097597552613597810868911434356604499730598117274431247235997443175223479984201925449748774566954721610733020167021518169609121884022829454952029158837161558580509562235313077049911986631570350900558748949918639355612492297837731408244378818255731184138372321173841050958135216962375670881498623413812993199123188862067312007848159550550863190879585039477308317079946206901208702172738874490461856629459946941808783874476263171695222198081780266884398835801858135709106473147679110115910870113458920579985722588886508148369937265843890973413019682103381575993167438160892249140783629990382690779989308933053188104308427346500391611495051151140303022612515401713426266746456377063571110300142373107920041467560649615626096045416731906633368539628997939028757631158711060530948243332327760500013714694707129215009849913676053606683270742116557412990375821731525161839560054416839473287858968949264437744546216761107441387548390650855440313645940898706521717340448088782768615582701392280103608296882912944001705997570443492357466833780364945864771274071965677035492998403991261524480175145307904108027070778532027427312538557824267696882780403960149878790713350820144885069126954267428547668149620026259178406433219785957611457608894086642691708510769447525851719900450197787807225800361795187101269950287682730567237954022630762336826541171492620605937761545395807349119437614053499711966461502585889751392685000853810537820418582695598584064495745289642253612987561923750278565541405084612014695588271348199674195095198146097071484583528201473306805891472841501786127329988680463129462118584546396159971592763013232822616934742654709701717660733956338601634351605992904423988055131268453399315310004931306400924820835893045078793088336942453156318237066703740907243921155141510571340908195468501609833153056844123623625062278756244018971840927044370546830457939184769865653856241316326677346751913998186447525162625897397411080194512959944568062081704046573010882469304780220077671894797027111959008572383764649684783992823392879874538904901012035211475318188439161542885529955165448497633816419206135104703191245755320329128926125672024308109033408770695993383342595360777312368954439818092489824605549331583271102138946564729023000509704993566289806104708077881223956823554931817724202095963112571077133745536320379107858043906440019326186691071140439293638967761520378761182340667511565368168667064492904936470737592982576700183262023681336979772601775462246533453643883668278063342781073495864309555911274882764856018752243618213255078812619228627322833189377189458531053448309943824184072163769222422954380782036696177743321384425020733440966416499643692713806467157062283503451868171633312666015731238716960915248777540477785515565585034876043381712006066135396829784216175767142476376368189641213228981106016900310851903605159160753388506433858355917526801822651649530762104828111307940024116858041741061264020392348767421944697600816336920009508253287109856749560003399967270203510907582029951513494487872201495188410677734868613099369843762858375553791179622736523269897865642713140406879502093148659064220836488426548562633033340747735520349011137092954962319824522308295264760794899208149658113700738312483301704803345487343899892593990628811377553212065258048933228812626986489006080907680937345089756079747601873619885668915801069706365762858658241642028936953361363907544335750745540578076490355012392024119067479283229685428792517689129673046264917465775484539150068718618497789176053137608403365186038294276430128849968448860533428027285517376319190174619264634172651918564139720905930246493442201484696925204080791168622819993703004631627417686010108153562375882336304337744192534094151511752188614832140090353158404411880986623374694134296130651690188977888907212618807818594493973820090305662784905088724358156299419363399434830416994253706903398128176066331367475186451977265695036463267864255366742148848202483499365349585325519690511458208126339043269249079201173519616124872788721891131372743801673086921843214507433881856603910118026975823203192744876221192948688803358370139423483095866418165118970961221828302606131815432172466222196713285917427010495937086340321041947310962555930108735409538352939453174222322674787905292384775538129429816664451067661158387199255123754354494094829974782957722637521149762265999036824299428312645597924179752056428517238700654912498408071839464473793047287619113204214955580811349191785188953268662706496327145803918755888953425662346818410088850485888730040802811231584218515003044663090602615679532195975125348912849916064448428607991373083963146952883682733317435902262335525711334587138848032577333902583780600852194665555412358815185914390208747570964606324496923927756782040811375021224105460123973587209701547498484949115333150558320183507980666564099817649020563523177868972852679769872793131499069327896042205605732821635345662104572035690554423870532670475354413501513200403445743829142813290235353180322818066908990591650479774547397274137107577445532710718844967828752300418644650644046007160685656022338657169607407536064506544451670254604123284279343430642708317004072604544199556524397943433456193665431924189848562183184361230907900656821577050516497977802142099211035165101554498417787558698580739879422865130583723875589063947779004941002508222078629004258176191209785364084329739630693890665072370421844891110767620623798778442516777816592332783380610644047946956867926995417593822155520035706007250293593263109326925931775125980612706198188196499369187301296806800063784169613309910457255470614488225523549564860213788240175892455386326030730709186818402579123218582723466775391837432520974322403222828899661842329392667854765512486683195230388708931438754970414191523522226700598768612824282268624678862103529802282626254593999817088821988087993059479590603398252852964905270395326863855613791995365145795356486741196829735772456873852836014009845029706216190942940360443990540649947125976021186893163397596774079941698041951227394590486289405000187580157336186151657779564427256655134973958288990000649772282315214081197429722559291917875235787536788495297339263142450797093331215406442828242169334645044619322953494261238550300701615592601858979498715299630453199945644403572337830001468907665810644431629868928589101455737861292392214571723625396246857407222170817748389141432270978648942737574160734143114184931284783687145054849127564570446960360685643179602533328908542325868734140358500410751950332374217129347118600484648233827921590634791514383736596450261556512953861915200050504986979274545592078693543937895141079175566833920598837059730058356806645973068264983039909531328838253148868929842909460409247911891457775685710785320725866378997137707329698428682491778619283205500629741646366109491807349985614502720557244465263035905518553165010678168418823490455188758525676931260534273048354654301265188199458307391309385519870217766879086690578903230042953816694537291522002010788730326550130308371579296809225427157196556973292613486599543411072291243952682405737759149283436239905853061544009159151241466361371977033643231082633026781981990645694218744490640714050616366944817523840634605280211372313967560958889467390509958639688578226373039303859056295794803780421465785888904037999280761260765491028526731613827583300708965147198965686860916567481454852801056677596199493942324995983445522375502913919169038831153398948661696330188040505312597135750997647418965703239185488669876314162838057529103148514184029239892693038493645977740758030530339140608236611373171137663950984027961954961329517593627025392940827877374590480698594011996332830113124470720117028292469750175670723125553452140768338186986345226340981208633385972093197642641937267222183471522476394661636298141998529584519735890792372835605228438301334686534878819090757987862435327293860509514491467056567010078133930265352980508292008332764347388363229537197032260723853429238382133105760938913273851656009027093618963376838173903300668809183616664923922401178193792407833623796298445383522372058242455397544060452961624483908808868919375472635113668948437788377823310358826207685067348118444733240029468582459610501607818067149054762377910070985788189746431186134030745112193269635075635027180941477608909488361369593749580112208151620097484639339214622266491996630025678863567451271955423964175615113157439163227744421421462932431362284114492931709171457100687782599605017863553395008355609600259358439159290826697570598015538901527373056387746164817705198961012611181832230561592534857337867633614372570306376175984773106775369527555188750436360408549838185798341683010898458752000230906673558681405863914118624841658269514969390173392625730083987084156945978643954883093256506810816221825010760660886106028735784850184967761496928991295528861861229875781863367652611569963631847710183713026758662520744301739984004177260219894676873321478320080813681815197621964919519940680075738340972730154921621635598487935283882593798799057906044483078230051127706150221711729465400969624563203230058548080203393776206600672710441607545830863094353733750724526265816790197517873764626020048198898562148636723418603173482067192444897497254110730582545265910078160047986317725819479306456382932543460603775690985856711627845828188959573138203427044659358982331089788709536079855460491564717898638956424465022390193598012284366629701258316056436711491527513164701758894520574338938807385072780964498116260573932915528984267934630028314473837942311996111684852978854517219463072598813343386746147485383430856741661168972813518247953182597617900200187293845611011916287584200700997624171472138460351846000665108760224934309359454897575066115742937435211604326899587544635797336179951166884558797393594288794816582834501524553144639977630348510587358080760843382434596787201220645731283053617299468410291417437813704266061000524832913283632989560284488665116718854620411837852744727316701078819239826667004711942223307889880173688685253424538179583702359879626539781275818537732673875763991867251421310904243615103630204027278515975905648238645123354428491392002846283929537784431180490278617313823695837797045176510612634074094278221375327310782148890485181882817611944669113336867845117054299929494991333949162161110989418286867472897356804289235991949240043237214677033175466107162090412142552238210551675550043607264386328101177048695132431078091825064381450280419760212561674397822807713628420075489320111279810720312722742851219560359906299638097041612680456862933458762835277531383132871250622597441897182849839399666634191429940936841798699249679438063871767691729943388475605748983279965180418231348270114047578600631295964783384700886847272157353139778031133584347067394172795589154840281618680331669547252641413066454490072009074836391682467321147359527745242558093582195698359136247525163869057342389999053528729115819915669345935093838338790216652435569533146149026798501537564439978142182905507008974660732937872966624795722375937267996821899177644590349642718141521720713475060063358672314187754650180545119159378893388622835636146132279183256488705407995966214743838610854309612749372877699660983057386331531619592904317910948463142672037220439496066982315044956799882180691019372233854378928188749173360615522120088628408813469753951271183631208369110087347164375464500997646785525206883783020698547162346253398877145593453317612062461064524302735356171870030824295960237836440332236620437817227560135239150397539332839239414162657508645136983264442941065552666768269808437178677271954726376085079609117083684081289909689535123477316406095671373994937883479347854839680332359986351826113410232365650819161322924372225239430302818453960619425399427261602619360803195561373323700976480586312549852114309648530645676063771290666313103776383159399012628778894152748772159953807787232751814859683903219689604123050586219282662459572525626756127350025403743189600818668647998041975829697432411706445979672432489352904625612138924102063186098252541846858949379062873768946046536222955606943878986716632224526236369828527786243335586579464905303166000597825413060395365441765640934882521030160476203468259837135735240641831447155432979861067302276891587373244430214424921560289384538785890232462777921947477600745511597401188587683231246478320740479172628343119285332064623435186380900866926983042755591879617389267916975872571235332755240720616677467929011537014874784294713175492223439785465089580739882066110670271415702352076415362672875891099332776416663020957867497617450746426965153909029142232765760896120556781689620119214402770138215422863505493762029054857566076876309311358315391201255752734502704999045853433983020696347647390788619472241189373965193408107020939150485513905443407410042439319606620013012002413472157935172264863569676363809721084089611187043655174926589270920475450588808810556039470306284927861771124459605341657892838368963937193737184339146545159303688162832416777907438995294297318568903855688111499420807937986559252047032785194610086668656872151193355279519427153035680907193598834838154613266799476031551404729384617401722800865962576169776066388458431438394357131066409389678887749948161206696593481152075193883574591890593693723715685702828670067105591283008592518980762985841408335752115309358560179939576165994369248734289414998609696336737582336391596969365922927886974458974935061926704054911542219961200369917787637384525797670507846336378555482485288175283781930369011969795177641065371519145037096207678988540606893055265118350362777234996564362629817956837541843802794548097573929463415047302060431405244699861015820316285926277152653858361921552318435741560268093227996864894150152503557889455369252053947828653594224472837933345340039367171011502989557841739364829988681164505832645622271336106191451368613237342692855459834304550234363961820675128413068662548704860816222019649887107731723761597761177539510131838533045213630625635573836277863434610314984794178764315974653523174287609385032269767521620603315936303205126491215150771331865945845062573285516632913782924296820800899861620479281711519052271515150041352391522105701311325171527841977708442762261761636169955494055454544757829420001684726198836566517927263220891579227512345944350716732715678817035190534341704704149722681215537525994640535861271634298679289095333931038921884850275416839203958737083827791142488902658846512460798951389182920465000409966050227996196055846304413280508324734889692252628981124874439895830754093463096580583908494862487794202907091406231085847067914536423749387625013718592100280136183920957290073110054790641025727431843977707967394209736311351977855258943472553196818069378411482166119915243687123823701207201004325703040617285538086073966872362694379113968692917868735173419940683556184481839384107418115647583141042129280268390415404948822960561956950651411061346094245167501809569751257323938080797036780646629613900967671166949535594030678016223106685641268328260576939467159210170665410916752716095303720912671981536168812250676208932299072305231563475555508186887449204584827974177383711405147007014774953855754439869439619904657707300337843009427633837463904515484146798072904390876378658243754331526140068668459607389848453157090320597309301149375790760493975140490178194963578001921414797118123872041780639735362599644531663179505992612966611002274051807552996508944670563693182852530480110761790964052428854968670338431715985799499127543036911411006165390354938096674536953499302393652581538192884041063975320744959111061291969041148568990301898752914879626265466375182889557348764753506361321181392209593927890635081173845785329856095455577355545970487239616860145001192560861946741035807694235546035783563144779162607478997994894266393987354027178876179855630457547276106264612432954839005488201553265870071106267552556550185616620808981167005513695768467821128244661383801985848330101423626848797064450412745100890914475467460963025997919883580524495765374293338527004929535094150264893508925162846808690574099173282521219908333595583140554078651566324709507604632676541760546671318450411748391664580660916502185467662332210067505281473177342838362945067210687333523323953107457758338425080650557691731781993658760594261595898800955755835989699031329923945658380155001099290482436775010569397158987612775271724727490076559804270413133303063784192833166942735412763206455599395853944207692874347479290841707344558484465187594937002030853350362061767378404575469302898032918060055295428159208617676951788960895664656210888681159201931502900086886964901762483798686062895220827007804071239365555803046244251859067596496309832499018010671602230931297259768594305988079477651784740890742428842321371937382471740288858893517418503509060461446925989951627790225625858643809130099558596596541225143351296268269285818943277907902697098823235798467039366952972659412035065570882873882069690782760113829020877640468977780731724125849711677448729035818930386799978895496653706827613550994355031871862913160991121683343832587940180400105866518984614823882101052427436836712680946011515178011598850453351981698634210307709031404484306802484481996083896131352698094141138773248330860983502946585610196800617897383084450666538656755190843699239652234514585317447441174256991727499043074986789774993391522777112985161009994591709429923146124396892863368135625320444038215038644993745776362480719264667476235709056280971507981011050964984930935002163072964680491444858534039074298429274812870348836993582840463946514485026951752068718046569245199919414991801537729298926224279987556161885928557166678282597295877321255454139090296624072857827484160861567817358606423411232334013434966200808200753108860747303035346099801879940553072799495353572983961263487869522560167867419837974801998691866453523589892925639598006123313137868326031491249376160922120484620761850274629012446366708534642405703490042758416305347260088448696662447236800404353709001166466077238425122445373442735348728985478345952306735309606277868824535674326941728330372681433512860322701819734160867759359076126951391777199332494397258301063391740412141650574472994387110043429054190375743793425552117770749115941341049977988984289786061064015239401235405836187745161402308930366431147457136767395618017694047573446974621158067941931643519640188118155740749179417815772991171966608999677750651379724193292550974729398237061911838555906699791143944022732649014971158898088607377164256464171486620346015272493699218881581400878153510603963125735595292319702036415119493230796004347793231093213975164057239224798701136143811127226020745806571029903301856246191391180101263407749120180035875114563943352865192075423235249161238622955346071046641699717866402438497488418151730752413792097602674214283805555275542767616500768942608037851140581619701472051669827362203604826389156327723397215111988839673599648427506117540101155900983676006456165184782324570696095737338673367745624999515909844340281319222568614339108118589475831136579657774592950320441477764516808164132807748661382394758600686531104145498501379472821772783719546995125966114838376397077483623745381504473245332635285131079352543709889697277308540606009153061610686975808911958800922281328227848537694542803479554751262889195152610713963572858962666821436081154592833764410417064062039926455274818280101824209559911640495164059093382434421594850981277744961114434768708487223287107563424312919004752606893067723617172354808189794003711859506187080523879956899603090760625685395934716750315256523996388816889271103074414947758083363893909584659235424722889956208264811234670548193186795496263608086188370632789953909535949961704285659797748574162933354970550134199259479370510113239922119761729682344166910492211268568607675598894286144982884393127566582494578454752174927315138713646010388772488998496224923362134027441281604066994111134060108088820660941315223533019965189764659236760830094408556605301387718681032389154700310804626573988400963753294577027739661222679363710714117886173501067389633237419639708688038566796903846965372818974506964684366640999451331927722710720704776025144703840324977090200159730182814291325212340314605522794972900365315963642464713811293435789522894606540148907899782342480950729523035724243029658503073437601585746540660145954478192657273457745114293813826431046718201464259156526054410870019240190338348961340855603710358454647317539421239849988980189184653299836476018731731745788934071701759758216453545514777950466189706004926990712898972381169988829205749762811817292078872434754590864640166623934284720131885783450731534980282064200590184526282016051554091777417602638727284278315592340468211337366342195507960829252928927796060602314232693520051232396457736600377652646082734409982380769765673300205558684161309992091840146582962712199135358060638147626590524272383912917555428984289946406534824797491090697989737362839138968386812598358203453478594851855753843925598197648596335984339392057635222983057191661491375481364755308092826528209659228426543523839927537679876637043073705145108661622796964468224954259021155280560163769628757179373438072175258393454903426228621088405992145644801114692730331681198733072649053449285922031190319705542186819788286216444630601667099962764810245440893790888572792531993978696002632395475845528572614526015368375950728994822980152246213591100735885021684641126766564440886842723879156158358691260274302067859310636692104507505002966494371880696134774265634740459508780325308907978471356488389871707534134856733533555722082552965419792576996584641902210856261648405161131606345033644656936400196184299520747074416528673370644169352901361360084870735500284249675414374913107681508001938063237359218061700800353498763815219601532364584577920244780089531834025272058654403468489860577336967090958310691182926901841832031766001930246754609681067767288726423612952151995885114751641901561106118505983393688400483884544812803083391542900871202998084078329002032973946193513944548849652572895539122400499814722889520729600873470081713150028425767493305601451007827172623904713356470370281598567227171272434947378909484550700187312287056495108439662812864218951693940877960489556858467559374854112537083426164004505276344171554742726819723664714020091803277032151955201185628493587406500091303313192897761604131338528785082858734784782118559053614305688932226119409663517819015743725822085550080083762200498827565926116749302701498159265222278114400892612712416069393428877428292218779354887668722439030032250095095333265915038497245984315800275498808963066611799387024662627012107569872823123370611242957769111792078863033912578641518272402692400496075518596754894870230649561754704956306881183161397105489054773814300259291095146558659310284247566009259173967902509901798837870811600815018414450628597710975487487246483270825929451917203361356390407838616481000089632682659719428663389559925867126628093212445119465023579985008122812820410599398292286346302912893831474253785759126127674056580166329681884492579624573730685557444605013092472256383555230861392246498987635103020240040794425964398622567943940488172160193020628578063898043097254771023767346108142699368220368849669893218522954156622073599437331710521028266824700274224965130539016678760522571756248332403772142963868206175262560779366421945856968118715378006376995092052077890945520614177145595731781833440987619541848591500490393938823353645908359261447259831283133528889505043952806466694228115157926991422260651757614920076820597989310737872722195416851796929504234732600713167359905715579021129435225179015453563072769172315466095646470281325091767290820336108525744364826138360583419445821861467030414059977070955494539078755539840417349434033871915512177512809101584588701906746210801386584083358355906717133785377206620966942349177776792139491763592739179663214194236157650670636549096082171085657652218027793354087650639208391669213778318263663013347230564768460337562634325837301906353047008607531244823226964116472456763116700360184237038165469536910633342074903841227578754500474299491546648949298319473148518930924698211347851911899716073240830720366316352599335787177904412724447270076754877212551546257420064467617943828466845016450453284238993798231788869203055399762107283096091563627404783190075437869853076665111721535112247160040128429014947118413014607379738359660124077051186157077881468287761501707477282703898553864552421384375282382005235607866798180009954270559308428928967551604193645156780445122286189433322131422369362423823103423745597690739356029707322997396959961029211952120621893825132642911740984872836984244276019559481121335326044179697468806513701757880753802481232255242845078709177093612400581070924740887258446357984258253593755328233246834788378183669848748301604364427889915328861932479092587266453820278875466816534239413315940765421202539511385156875093417121214869309402140776531116459358709626342238973045347598465131610846231443403084578189325374236644895763352156956882220545519722839700470167523882798312003125174841853192138595020035319938307305079053263180668818525949969405727341756331075667675160530745331333964093517085225409743004491961990902730070259124037693254575616436461175129529320270095610273008563588187258208540380611916796796417563964806272220334145905829651990361778537577565802030365402270226992427968776171135666341634999930336411382511961493479526818701397330542318900434949396585089689263677794066648842846219968641872938197476420866205228395438343964485742919288675114337705355984900750067748052276988911287687813012909780807334923813838827413696685065288571349388004061920717484845239741745930863713121747386324799272942566192738596572096564053607416916311700212479674285230471336483101875215513930640453692166851570090839206835305872682970103627949893579434694093873424907364537309694705078836837408056122477128465514427005999010149973720847159309964703282243038115292190401349297933995597171605305092671120940468008437070689802529112101249943893273983423189183892273095144530472630366394909511736996718705589315298607934144389815731844224935497715780553226174512694445714158354664003385619621358337196445381765582442126032261471659987290027575329808028115647207731656700284440360529779978328627788361316214847809911911249570383056994551608129757661273925144515805456336805116989388475943056562473444866498433850915072588969403154938621956036920695494964471925110425116503859687821191060647295704517994037116772082302114962165871012100760538836612964915123686684290906577139044817560586442145362866288073135085852028695321226638571897167900590235914369233693255367558116031657300942236426413264417663567256334520574339677577991653936498262140264991134643947533514348480483191178944353236268737536637975026550444439092751830359787190531421421048684899043199776734204629787467347839824799827806038575644950989715972150039459752521247432177147743889075523939343745469994191196173647354518437239475224965954500337191278599247023737931628379772545720139853132400098896593232421874992031683237871134310892927849874977789819772960699279993676163341444211372176079151807622626560522193721144844299451255394074616488016641553509768795316756068211726271907690968939642468245948445973999680892123037442457326185184217589342271772661523797187343163389470146851544914613939705719648843682955483223961078309030427750030502189984237158443358013329616279381160773636953889761797834572506734661798374878834939062528628936076279306840268020536390436502160444745528097860432346525734516081939269050796003214020254797985692943888882813642791239826896336178732208218213689808228214889457001870493707868943700498831607721641268852227111184756598841055592276508951666233561297651555988443581876654544239045845729918867783922252923944409412396835252558923061771845349198319383780240624206142774702728929923106065190589034859233569417199232005792616864968807759655266023916281824826506215786192752562487950252316130937433853808768504041274533500070067368239864792506187032290363393644937421472682263263416962784510832433784470070042350593467809682640999103039361471945974287162873338610998413465437352205216506948902718894893120417402787244270701902455309440182417513432576748658474265242823412250259234835203576826326921549937160926563789817955032417306805940503484691398342578174494827586459872417844504094029120835184378879340584410428370902308817224917145244498421525710219290693310890128987799277002364579647714419813273245675065354776789949452294833409876690819216589832869431399769159370708381115322289662614340233704362511193756219819325338565905789188360665216750895381090609938148410098510530608685935627988999128740893041151155836252871548175724197853500656215071632439655720577356702285849826367290712783152140256701385904554008628024169230164939120093948457573337012232056881814459737578318032540467597328342790580494458833189864992703479661472625480125075421977484915597878636483232198094738299041436015536033060094992470322994843861523866777854093540684320710692350777036582774660909790594065123976906486714989075277913590511979242546105574081083183994945263020912743402023033356865939953609335426115820708444426714463220215813262210353565589610072515942943490199971889342806680468315749298774149121155035437610262478424797084724281224257001969937511292985053943342887210669859294901648087089502266003485279476905160928761106739909453011433476919166971851287571507845815815862157783353574933841929010924665376322276308526645175106532346530526610062690726363638309248825145977619128167268659631418284283971066378750622414417272093403508710683957457386814769220787117221172976876209391053850717740728315066089055130585314732361774118912116549202508371892066203875797429796209859687598257147756107933921559647615182537346761241177502800724657577852070789002427269995511650942375757969028296209056430832247660626935667755410937979167085368841117761623362146733550605650384533502156752848775321321081207645640412857070283375576375573941571747322564851527814858741344713369893939656210653224870494191295826121965545674750334906068914777206829353204609177598578730759235923765914118845950963408907502592824343424256743952697334213757447820060298018155508009670163467176676609739317712778913196756673554730003954830618919586560137892543331197738021049653611396857400926751823308088250592229403744076247659379617709187454183982387999126310821665171843384117730197858995687409581660189530533885425271737150275719909119416831017612763151279658426203449825340931394252998542392967807639577052608880585554855852702914539919767866826354715757377894506140063735534607593748443135085224680203415446548703403897570899711163824982871603183550242460089729734978636895640332541238121130891314113512428681214839086145918101869588069856690058976603820087624108857466437184405937628402673188817633176633596333856778216194646414534631395723033653458453889462462178066556819561738249603334376795446995441466292425052277444152146334907440471596244301799174157919225463866382157406887875461798681498094186233143435908039730797287214693150349290448215309404007665734997233796117889813337851449507547620457072973382647612717051074659439477033969278494251402098297991895654317149082123839038255145594528971411942257807104558672687666533255935301436643488711989795810097735734773585417860423468957469387178033739066146772526114561778478546830350752763929067954539978484921377667618203034843000282619189201942461604285795541831587860668005907336663823192110521352094683303742125283355315963074344602834818308203934210981265533032366589116455950217678990661995717784813338488493484077712498652592060486038368534141493380158338151673528242337143527555100955187551812804799993922811777711404742814969306657705385635691423945204510954688670477116070499631296298158680663423513542701355636302511044914184892805541898786758298168194548802340664411289418366151897729364784438257378849907372299765499861489450356043629282613343224955198260887638503720336143603694944864601406116717290593899401486451909061102402932891080269331360427019352113214676945560359314710893675652170602038793417673855567396378682205981769998174103913165718070530615870371542131779163413535805034077928094718416457591149191396045430433717566125772004524617589104279037800825964186467152417163028795694212675639052394596331089050042940390246984952240363857363168802067918762300115085229536410862323592497937864213716588107278056437347191163019069469512633721517163775750608546153766965133980040206383937026555787461825779610625033818730112317767224285196279609424848898858011591758041631925531179019513708937075504420439122209056262707599853180488776751818648337624475103560822767835597151819762775790243911404145890662303318902402134902944738900788332636170985218652946867809567454433195845145953531595315201966029421069876755160637811120258571114670338091382872781968312962353427751011838391289841120902317043082164962997214245540441677710328228193510135136922167913548706534978784527470230688068428855880187889380383956337804830951346121188026444539220378498678190554502801268472614204155658897846770860603987583248980308332476234536590983038178705619453026488922483206706147255688138102894743121111246461371191650631688811422491988883069749666761507806139265401826465538506246511869385668312168745251674967758299577651802513678753882687337249460156820274361841659113258998213829513306058674666151268586538792957761413350122000018262966403556024504635108098278454661321371282424898964705304838694942653096652820256419615624810003232847771745800131158424912196684688449696353645475605021679498863483443776955295326233579517197433676504487015944921402077755687390926517478180150650942965226287012129116477639166533932654383411956541171272566460758509599668093874940491895200176514855285605231536858328566655134651591501747743788320304903500451966723256382930561655601067736607201286071746652780979636175026694437712639144781007958493240878088723406379841827352776019478984879398130517810162516435758566541599395583632518388151351959932721305753869427059474035616169751230505584372839846032654747623972963222953503305700533313158618815414284046926812110542167455794795343403227026004726269982201725310698798897833193813659841071762491622203702176703755277246683625343383591126644455789647982293846823690110955360840411718279229397636567213562768301437881774784761261896066470600871340665057595552436112503083368541186551699277070370926867401471192875242334628447438731970111674192865768437920704654602879692242630338968275674235066473827023763754430258161003911860928938690793455199961571026729423199347374784068462394258667115716836914606742897026462355670221349695247705991710381647942951284386995668009902111137827165980617535504767230423865661146406295480520872994082556376639595652190355389595563852989032897829751821595892933618832792867777927436637192102211378887674891736450405514097456869544033420462284584128185460924511072916003068376511681780658884418011068632388771794609733172641426011560193504022776885914346284953969200388710541101160640697048928628869214735084444000273996126608055413077184153254686050625136368285328662527246314702282862403422344482500630077048349045640665579146632335950142049569207966592205684595536097990002394819704401420692295577939476763458899496457171903734806352397687657387571627769275105455221423715911809572984034718705403789006822375770626735945357835932580199347742757331027374510893701686774650906455549378463828882786334919591519796357159540057375533401271932257628757661915939355022861731034019003361661129317274285739826482998271584772069879897320255863170650047160193473897941571317596291670402239227560112476550855303372755519097134110015042170895446948894393152082325971681267050758057778534327683345295229819279502829659328799027242212446510095034424570826178889364995014041804557436237595510276160839769625931715251677550902896824769976663653392371229863759575389790800520069933508643637554613533164867062752851439120862720104627743218361257722129948297755918239296998894413939456515297483919927971619029050761857047417594192987808945009798271215292761033309352788463722406155612777764223481123392304034147979265409807278622650167470489135779340640183345122014993804401828030665222477340550298337361240846945222176730816889723086609847888014992534239807792812149116805148871114173422416180374245534160682472956999596194880414742245835440286009177161155273974382486684593843710024886523388175503750923001926336697463412009142839402822533488394963453554499311804187491233554187319893715147608002420401728571682718479182338349946144202478009948725587730050939105513684725862632024573617592982724544960231171278365579038113049800262954357068747653097294119542917613673337451195365593187006346532204359563786975674001918354169179192106460873313589304948415205794955990299093547237188549360073432753087289691502346744735570328914474921423912125728619888770271133353835069180463018089768386552771960682015638503385118269564472110678269366678672893903668363381601812416827698525100748384501372874765758420320093144120563306117468799395240904417395971709267472576567992325257654695501993880189360265733897317456119907444016865670268494579137130087209314333087538054990813337804660171569670648964218818175874197192392140292459372466954008258127856796557619915174845903773115171552994189636849436703173029323047636809360121411422318188748736437482717648304915039070856630668723370319894817862019170693635637458519348073845203961337647276536947730760196365059833514444727796833182601469624931315078669629183468698969127752652624225619955826201085326764335821384540410302517357119233845449259949832176074788543046261737077360460140797573543690463971032372406733474856992384000518945177296432334753092695881815136392365472779915821572195051848102803262337353434943743246825563889970438615466527359618969085036313679892456316872587900504307772247919716412683954657427373817286252709662491500483435576811589386381875579028396284207812340143606632912177068865946947640861055109554114375968208762296925940901225293922315605105641973470240523685103736780763110372748863636349255797460363457271327399030061956898427661071787537473050261648775619487010872168052122341366804873122815124132190263480841277128724142494642151303646263324517950933609895572863223284734174602543805892629584094777109381480447144149530039280686607269758712938404611594766610641824433024590404066821770282508249715318621225622838212507600840587896511177244691543079168331224062135799546594158088135282307739943572030664844951847647972702332488297008153411753521932417561689454905330191584834414257892253418837590885412342006156084225878562472389744729702139014375646736830991142141745893722155788151328433695698503248372026859295329900225518389044019192397490459046741919452137800619475150535008059442055781937625204887056810423732591297284402103622668585716521381930843034721165987468118201938503358249444873496828720923855502927204898207801606227451758140482950619015866585485040904434926065282886998152709720393213239388349179617125592232345616168736179715945126182661680346198151940135321175774419575492419892598996752294568802921363342521878048074148139761001002112755694261909341906984823657501665358784555159668620734573983806238639920345560032189727932194821904736830447146212356716203553669308002591539642510819263172888814628809479672163959190237795619621199690654814252139657782889729420758371504298462258090505291458182782214135563994541853372148297397961999843466901694670660605299083114023955392064198968463574491099776898420244929966404942066648518566480151078293602640102818843372321982917932857891312791746526518308519395858760576849224371668977506245673545626850018718214966139401590097479009118432780682663464345810230152492819549505054033855430846057554253381070176714229154359823582938376795868175414098032868614266343899148961451855817670062670256172795676470658814553812003322304759565679616060879491731184254016390890872865225291768259266659261102165350900587361098063076634461620019132687946964180203652465024952121966142028482913502825416957172155822508018759911116530879384884623700005482475408665970154504721821410426512894133526814957281569566687752263717411595917011240282178455256734758211774367969550486991489783775853815325887641128394196808234932454692598476187360200955315163525481330165887877017059878461490290818985711191485714908330422439390889005611045730709610475770814073184980771972664655296745425605131888239058559827724238764814902150692398191934972461355326998219558084262568877272132929573891705982419504199908390664864217806373687866343520222962127219172037252088862437392741557017488422669664464387857648105791582155003789543678194555601376396739311536007333907998754296732892381441829990948937758944261650404733473699929686405620722565522719402811163655653842166027948104936918463025527891607097817205425245430098863516073320624791797183816074753686428191503943986949828207272728381699316096871122089612824146804865478119015041856308487266866511422361311823555621799689441030670706226678264833709644810619292275165331885881573079921390477206944068083068338822944409927726176442025883138347167092882506292210731191470732696311830125214173567034101809308838164396915271236118302534049973600394415963104525734253945594791351678747189993592282315370622677870022001958775786174536666514440874271537024215419227561029873246419888254891470555593921966998684083450529348971465662456593185029292454047062772280348783472709896470732571960715951946325690599339644185746585898734471632489266606844089689768025278803534115454573424360727752980043336101021056284262578117675803320472008600961040154355104742031022635863558849049370471712524194650789923982534503931375732462212702940715919639678580680528543959741823812211989265051050556159469929656704475727195901147362522899454208455154386806620569621937953944782735174567365212158878558411060561076044130647105305960719730844097192116715706739394395604186912337161630520696609904391073996935982475144844695242604445539258163796748630990234913140860896093318020938855628248205773505653588741745447460047243696811921615069615482403344161313168079083921603408272449764430448895956798030436396968614827928280675823882044997590343390633611072140259721305963238348675248704892982250440369709027560624631944122163532963946293377654739474008924329175808837727204067402820100521800760016010441490067944626739886518600208434159511894057316990265189308183982045710246169349769888492889123411982394239941090131167753539964094432853034087796925216646165021015025888138417654842449671955839092474922852827150731901798306926681636462780045776773938252452014241779267097731309110024455611311100190190048516747818302885712999367346265441735009374990177700315678616148813374024728607521733904802852982490251644538582382820975493293066231017327352995235094252627468981834613858552876602811597063326920097419320255833921593135647040494921645480738770426874057079500797877860961090145815723857486157558782884004999680271563817590338282745791948595344177744933365133440615543702700554280674154564144964472649638761633275576291824206780112547671230632017413375852427238516393178657222546921777001176255098717131334085642940087841126426873091860115522709846856413938007813040549222505499276852874570672991480171135881036652501991003074695526860168526794179675952627250254244694132899556086603730673295171080702727762660763035108216622825139400152264389709813714141956895222596063230025913322847989654896423000439528799350787068148092185790737334777605700248151411460127081142236164933953762197862090850910059426838073222091718367717177930795575657049186533117523298938835123643339836060287436558228846322859220002496040906280163150213343723924859247408828593171691222703064638613275870147531539866863898185821279330278457445643038126010508102746253677282261447868297473891988747406694535551804816610044673471709094316348087060835724854858456414555219267273168703726023850985972599087109014110007382236880383308212457949862274798093852179324441673437413579115559129094999078641817748542659454541771359956682471827315764856387314212253787999914182223663750209451822198792273805952995860176366763277436393665683364502326247415740445917560571685546061091806958102827906877484192909844251388689208235239341125303073060861593230474027447461138750457137050435022643781644730974476252380664888189338153293176956621038903914554107690967369898009057614351646816298253480563618153250028244839058632185158756494692486797124287415501702478685990766249509364243313257397245645997730479108555790694829696841924728607796963582924576178030090048340494422981244096467525600723487278868926306212042166978563246526151811924721395557696704513994996142090961149933629325839336403564581066403578123967362898778838708624153893659741916881710431866774169415629757616446528014086328181083311566456186699693137723651084298911842688101146383795921971171286472915339459358581295998423235416271433547578489357853647926926918127916767489724991113054288473200474478363641871457610134938578449707773006267347389669066755245346676718175037129217930774977804569880380193049826397312957720897189204172372271437390423348949084798907041291089163534196314465006491440656388593616916887650245169337060209995582652315289503126327350154109787880102603238198376963625461437135597444820239612171886891411645292586221173789777526312746836610612103046507219279976286260792445459235221620982839709946334650460916704750591278975057568275623970159281279668785887562583233892731159798262454565436183264983659848135329690457893428751804934875734238880664940917776471766609960349434538801154222233308189765197103841906869718751683629562035404522203763206579909913570530163790694042098799582218022172898902763738515815537048429623319621020549072450609521082779013850462430130442822482885865161675370110203827313368478379017517649178538063881608714975928383423007014074223371817273177000391402886106791617596902756503704776366863559562432017167603485493383859691155994316108861076209839673902798225508912664051567617790648486119127812216889992172259926825434945892338167411023236981718949678482253062358147117854284237253879448339066197756083054967740877831773853643689110376553362980695165124415658066941148039083340363387961670089842533630093740939846413908388715421772128914207665913868137051315467783236572177735581366157273342684416871268614633945778460203244893043394117886886954527073967576937656096064301998118066491958372815763071959645251315218195458857656475462667702784290156761183781099651113267210909283022132604617402841356046767153856915333957507476303553326698370098201502640392135988349635077312031502383457723154453158315200446174301336014861962403751879093490288627606113540027698429543394431438041290335366732793630209474682494476918599991538603684062165287935407260205081693436481958411951337682047602144105113976176231065137048327239472200090987147146849843312122385381374477257495510672897454991265572620048270003264567121647951823435051881590075952771358724781607078304858782802163013952117244344740387161618045543144081352573287984944873199409391613556232384736453644875825682648764561236271571081525871710970593729381153972768319160526174448610995515965858896124294002851527619802324444004199217992947323140489076885383122674484646156891629308648269963046971144056030533544654731955631163828394730011327386010094705800220311624838243947639475860941833027108831745401730358233551955827437525129305047609907590536904291546408432960503586574859065284289634910278377421598726961244431522271672131581523806098763875555177592390811654641557932799045608995746302595250429014388297640165119065592376470320062831551773941560793329648296278270994041578392191376075379605056093062987066135701422465026580434474189053295134434336931359143452001272666819356458813672827278716626735566349229370602721437276586568866020020004689908388452568812751846378282356172981585443329004620856851680394505802217671168712922770584716387028693246508547709390769812526778935742997550125697414909730397243466575943508442497217302563377542931040483153558288380864686868156216552728271384760165786074265920177280874679861431988921163421533791011779296050153748734940693294360664480216831060250892366480369133143129341026936272483191935719739426496159363033340234842055465286762033631293790172641639963888635259509852431281922497072145526869292170859724397470012861213592694321974246159508699681773448395723441581000300458718094646069507400542055185363439694236170195723113808545999625975800616310413212764120086771034025185455067919321847889526162752167736761311101303608357046597169725958980853354689095106310022454929430727208077257802949589947368246808630207329952299756058388681036473163415803360486463007195100685300139131877206202895044056288351911192081584669590319913896682281989993060231238105114617759864916501156842953267325695186101333731743693497311185467265607059445088247264402765725222799132321353272205700593203949368287319513393001355788915201409876334615513469360596608421340792341772391509290113053113855631276329409611647319964142430282933441610281612904424061185365713505512013247284680977951690173201402640199251439992581004345286422955697079195708901060207450376380302775009642685532075957108659753050564193277166264798818426794436655725155114693489207705975276213845373678436719620418220408584525346339767820142461162859794881497266561137846198520532112349176530015309287180069192362503782721763676438304323175725970506221517482049485299599763381633923853682750064707338838053089693233896850863079100076782933553676958691811609347052972946886883771752929013953260454919984708031546278021535179185401661710210569232488599259820031338965898655894654138701800008570023290037786626470160006400084482262982521583345647086203288834145429791035403474846984232407452365202616457533870434423299368017674599555967502499869568694608628485679679360107550850891038827935873839484857385606479046445309872372658306006675418897864511274307308561669566874692780586936177237673816668237731347636345065258654136316997191716898457573083529320533348876829495661634074314183096720170788721923521643562335821307752391146558687942821573141211790598076636665924649667212122044777905534720121887911368710574158270691118798567373217682248368050643877538362417085694632820896484288412517987073808801232430304944420061861399445728880946936300490354961359734895836363838987427681490011819085626793108366373592176794998895970442501151882138728780324748314337337113375201974572854966900700892925056139291970019617135591344368278491021966353071965568861666898395427881831587277308659576243528981722593616120584419931727622982314711621539154004506808228421491208381557019349253096707330240635947756730346457562662143833239579958412995337658705141043493846811809597835702779679327972345876968651459604974819690729796076030980353803370493845433236266555533684332013477665134966480615002294734480121272214298218287633789633950364003135748488047407099595026715311816428069545645219106777058727139377375743835942182966090629785423117920401564294338092357008278170280124961296403527868852563312901851190890686664996670399660095240187495303555227560153839236455168532642407788619205836423114070977638221262123571886492966929188605738253321854417291633120005640957191415742226643229701086314608621751206759415811055560951787834121960797193796209897313015152892672642943439111648072847782367574354661621976675009435334045631698335607578951050277981531660429868284654002298638198385381580338913069084406506023924896703075137380757282451858619265662582278298287165900400269222744757771166880433353524555861722179609783711180819131503749878759683813533310297598680043696962458446395167310962180635399635125520608670391568755951655981769549126049989427584931136106529730990905626492903175419365058588492381857331598950864265184117473631522634638419114167111072258548548030741877049473989039347231034495428547463753533262962906861927535549718362168043420040355575703751669073016462242771684754920965695265646433336772379716959556757633015600704911893902944960428510609980352786354877828962437207833287901463374400927516511682599091130200107116224413827565991487290547278930124621164551285107544203233039465204716855708846475988656581360606668877944054004282866485868522538461146006334524278011360486941929596377869315906056492910655486150945179944941727644449374090428980874344034586340388222789564293767328128338716602429855197066467350672258138689238729700847341195283590666149772068322906678095056207422481959375675126030512364497963757616777461121741755834776506762302999813723798061245101791642692555807938708390909233670048912627319918582334966708390668202290610081735950968442011441122283665691167043097506516797481873050686329785877344698828247232714806300850137602802947140691735386165362772906702459934374575951080074688501665205999381640892036563717982482306303001077060449645293616247207980303320041932568244155903881625050538312591899031081097315947780703430437649360937523243642830208586264550883223985861106488552240871992417111472240667657870393097896046385210808396020723006212752114824098122026968770441760963832623740988773501494557954063447454899021594747762748304049078901801702907652342713131172292510225610359268395433357279965419320429663917630226585511028031203700117355747361146666097142449811471476144744882663230887579867849700924426992055568839909202024549706311683337200325345678885433884023609848473593601168300352492707039943211118208530418906003239223502717914592271747961603497467307271361449357948378104850361724810001385608652634548319408387435529236228330657287216677204075754836727950211490031066683111973924552255335376182526157147829281713558981158818759939073366513730669327479347650574182389626182171757350812094571863890937602566455430491528292019009425651301813710080973283613325945348841629449241242422509598164792056947995563278652497270620478137877740537616131163370409807743271353718693566970881114887282378040968182240623627362351123231601394965993304752580260211333067818870603596417008378344516098175844492312894576843017906149329548495272785098556594075010063148240912428582095539550265432858385524660308855863157766440557512191940484816315113216850788444284319315597144532496852342639476160594567050729574879695503717625947482099746283919701280634807396708741266629964193122402458432277988334817442515623401704701838814207706554206610536669614494912055785712542899966569127765506150202186409886361805783186190197753092864390104246286515764504859319014075130606944487463213822672529661019149353127809285606180483195733033906646369332527917317344871834451664175101677833547775106235608686732139868579498588724542793257653273840867169588400462413976211146852519801178127640020462529912675447310295954459490498971535579378783279819654952937033306083049782538540027904399349965000849477226910802092635544575458634653455686247488706985361666194283728089809360655849501036422243227113781758879504588167458091633470803564274526438198005575451303961427725160788699079471792817683001479104120729257285885906171340151459590693990462235019258233097384240399058531339238971232945993426741200532185544568430709329328145657246288596387702664505986013945575843693630957810175854736119125176296719959212153922842431665521257501210947055814737034198308973666391622597537478062982505578379420660540383682443249950529637382038252011730975865033912643904793815624238555877458600265427936242733108817924364047122837569053017298903294050974812280722698015458338775781673196547909737530794915898585148490896202868250909300700372471237202897129160634183020975156292884133569163461311401674539926339237850032407845728947396155644292802824606399399657146040679355070051156515457333140843378355001068006945271169277009353911464187690421637403333564020055677898549738778727002158819722594274623556627838168815913181969849254108830750165163360745822522648880296013986503979457619001685936013783020174767233429575155292833034978681522463538395635526176266969471500551225566016452803360127586438586668922507703720851574366932540623203216105918768861495340816172452478745072109068250816186133800854364415822309252323019413806142439831691802246158671717359993374236834818115688083525140386260169916512206382008922235521265371665888951229079646074913666758966641420511564265651688850981403957870090816088250745869615822646040295145969784981852968507711023974625917427718231587129872299382305621820010467093352315812606493085206434531867685568734324736335814838141978295248778348865542796715188090329385747372349412142077991901811989311797291369353452862184904483311456545786462486048123429461056599430063150746533072039374851387547754358369208511486880466120924276144996134093952335024084358403414807207309851889439812643160134423609617314719626091272473273835961941684631432610022174654848787372598071867236112901810330339841011598375887546230224898478550808956974304891231362695994811612995014838660255632992117051547489625683599154601019352223839129199904331683013171094852688536591451897180675420300812373717319254940799811996275260366624237057707621445975204744722766011129517451587718259685329786042056398615234283635137218281503531465195780242086747235562078567582289175725349734733707052154735282226952362910112420386933146247815666094173556704256834843360431432474431153515071199524153901359049559495096471911930471217019822713956744520712437176465977758642209646440321809083567025246743345939017978218578303795645277594493731781597569620822245419367601462611325456744877003906321573841178566712362006603163072053666851111314921183478068764597644386169189045537083807249343019390915114848227536255248691852694475083705532599116140318606037524676120165255563422222431301474379012464042361696696810313486099134006277957648859726606232067101410262626472755276796020476161079012016966474633231978013710370649677073015238321332289239329736746338162780459967857792107538903274927489693762202083491219872254266962396481248850989028783522716498497716531009906060925185742873782781307956989169634123132826903372857711258006835029855569857540654621192737674264796036652160709814581702711965509254669862238165685077664652158494683191071621412991740143985559429302730773116048738772560088555702358534119182903459694725205573570223971214006731679650928767134521525824369384338308206439826686223773534828700665522629294870352281254906735388554733028747494896296612476145901580230604434173492260498260921486305565465157711126856485796507092241775546495325886068156411200916050836988070733162893689199458529869904448300343992776933004476945095057075774941412659597445973028032074650473436440503484272960014921385026889137796201630514449665330598930999114445409340615476649863662708120541047902742857297950814033145671779110294583118982695390688509531817483263824397050276749979959285388233750694813582373798814393900736490668298676904811291389600283635144826303006042913233400351364401029023395924563035125992871861656928586414336487499432904563972511639669696441122824811369778957408876866737376006603485348711667391438367785323282877050852436737752559709630894467255185341848013578150767681546614346268500869813241619167555571108962759683197878943708058641139366535713491082134018183652596508486585308624735871126551930911703781338949964410655020321153438797413879918209568322467421497199509059856062158037526532115122741786866186710395182933771273922310937612283833421295532553470761751497366555456448050225888419222486114037653314902320684936562635206658611863490140619570513787729173498634937727197549535061538585856600991276442869115210899964086841469057875314162752838919539147171498841600299927627298284653360973339549911073767622246488727480022701574505183634902815838492549891162141751911379185367445945708256751503877661877232001081588953583931860003390998043886790242321597984739482413101426137778959609085483719127543290644828825946017352196740347051634870935940293752972495319644444650150666755319389329895553184770567375924903875445543878775045015431547146426340378599714359175750280054006785125001520457689031322697710091285519403583034822764546523162607782295109875673184105110009995861650479465500696805962327422768605566543339675045217332799897310431218902852173233683929127397929529121321926576724733307723297795575170359736554102886092456876462093656047498239865774287942863215694659413435988728909764612841280848091865642922524569695161076349314501647409516334375438722764380149524263082343170842450010173135992958481322613575606748995531878887929920675851067239843371264016568288090817902661514819529408660642206957350266068720094931372532067061018880701187636771095726131163222480654590674285342545181074263353934857191725514776950346923693286139685160631821796746495064695545236102603921132464622053201807913516529860061204456402306767304664961739711802004387664422628245992948587059008350177351801267617291088757066669455044996503700596875337190498347443276777707760686648513762496402736504031950353299959752707207869468112310917720651401857671846466225008076689758330057930165540064028724448384273372799552919544514431518437030953768433298134636627276362786233581634119773976643888341599633333226731640980087574885161086771612299522543589762174517372321965553353457381827157037996212296788203284224433329702309349386145178257332077182137982689802392068570735915419791778385346583773584326327915351351825735853785726563439355824301508130674729564967435373804581316478201378980861786218602675865332722054631959983430280322497155223553749099256822520489101916721303647251026594483899794108895323511917160890859779689336101471480907213502500578776424614390103982304698843220416213733820598638134366684567201969169378226137782634130967416376138867159574760245011418709162845451293604098712778183505793650840232456581251811876059715052320149205255663912764695572317970531373463437350975975190368114172665032288329215902019852920198012702539186490258111353939438966314563402658106281807837312006452087037616195134122130652230238520955339546710513237367174766786156486597029362527438929044661926531491256964856317306989345294611868060875380004129100366050981873773729408335895615479090013056347317845900845839907651341158010268811493794704571491683629178447759784410319351102924547819348862190226075430330590467048849474814426662513546000380591917841922617212982514226333007582988327892748831687018748734114656855050212404110735563950205632228294050235798713982473268407590987387616861555111585134735475049157250565197435719120740652129027655191458635830598508361590339820929258174597509785399995451564785764213387650567467539691332427340068397055549543979781474031022370042994075334604913882497984669349103012588693040605183883445888602075370855290712195525225458483483142411373706494701536151295296088638152697178620619604413281233453168338526247577598125280897155721229026031830389414262565406557179653228782433802211875562741246139940635765365195826708029196931362709297892246775489077664184374566819834381560285358533737455329323059736461698092016074208757692028234187147514543927804055217573878722368745891874283301194749184065793355007538915243750681602026172563391290793791032705882989976366523588552920486350025169336354419164438460365597687556255232244690987718979219778654842302417256514239949224987882695483120446493444482983810530036674953278500745376879724383515691747658325046429320755894191832683693852353218440634651709397692325185062377940628294690414449051340352569337362933455470113955801899416148853093498520705769322903939606497050670290454473909376263053340411680461198776289999431464280110877297311478814849067370645355386097631476334723544792755430580384909623204864620929227566923473055463462232592112488853182775715711439393698505857564321918227893611126611348227090247116325665152822456350815982670555916078997307847619282396566581404830421212874070467410541836965708359726097465988043592059608200834843106793663177179870301202459095928449062483105149150710748269702549756829231902823031827409700680734655294583444403640102490933743913086198359284635547409530311769127395235745407122572592902266388967589509953600287392083398520655180264765009561931936161256335778675838344215924512897961305187810871373844224683277853911775045946231899900102227039429414028733328863298313578201434067386894903988713692247006735525932875095671542251539885667533105070247038927206103280654153851816145210604907180308901794411063683745766115108513974024789281008485044852097837357809793578486629192952852663757960885407441325751487072491843183829871003538876176613422116560888891459037097090293876379690462132955350117689280009380718494465252918653552647568848067868935597508881541154161242694794004821803718334004847230857353474054339501721169784592089873411157869646330535285358804339073901323955273576941091138091436685095767178359685079672906392720790160224153195483009409362305035966518878433862281693495184475603291179526262978900414217285399845130031262460154614060515614783989176788358487804069569014630731293476481630065271164795192730971546844948842328900258482719639396500463214001170816091741260201776002043107652087982500396622943263564826594548545044417285351274024400448033947952590765359917657840904642040479524578274574796175654352534570095519317735308481554864175040503685426808018800239794525229930455818771832932640623566937479930534749574499067300043678739503146951572737572477882537721862760172135585657084632860690580819886158844410411384955112293494024462553924497350314368204213914787593677655520241389097269305211808592482496194464084810745207864347411180131574016701190048579836102939020540991720105731868443629742420433663352402814736238407039666948634220632318971007016590412045947398130160178167415725820268137090448618302464738385567215046336758907507496621326715096691809381576461288990257874909752621678364541346485861396824881953192536434391938474209564377714742819082634535923122182534852804459681099969235352401983415083392342025685546407693386019102219360620965079651369555801674780405258976091748153678791668148923759995388022974147023144159062986860793778477607442527117657985039703582242731788713078172007395310899203269137226123103001517330225749856697909604931024698366769393325326919364933247564223063765475701458578767870047634229113755956728958320231537173765545938853822538127370585255070252671556367898398157049059710177029358855030418758135557183047070050762380469270587519892339549973051660714955572668634086825339242982288466163600824515548617007265549454765136201944562202085044787084301787410344029069074656475959554322480067073893426445456199813255362337224118311871384490866658615939082290979669606800471572584694567561861691131053027869878020045421840866983792355877869342926671208218824258715671635223791759285443139923217928972913841518753397547213286338079859904397456734614955306654439919561916599401449315978044731935550706102019295653488864861192795083809246333641653030320292928612532128338769359494176377380244672319124380507801336455882391703961600854696802926645503278985750036144988498575370030219199711137370963552898845494688511952452758961579006885329199690487943720926703161920434631380266372615855915204434562984050117491765235436793087867767250560911779013753758415125891619433973134062382415324189689906787983455737595891679241565124356831342598644839862207023283270554497315697042454888685824047446819320281469590856505763225274987656121358164904018458513323556744240531997988730992091614128011103368571043812956064318986035487017254449848000528109665565048333631301150787153340346966581475944477111218734520850004554905679148298717528761191219031080052703544752102446506515443916810202236973162868092626858625813697446773187119606678352869882490315220379833981541011357857166002100712593792217731820824407840484978538431472339382708578079405050783817706842666709845910967864238701090856721282218717600839377440097012547920825488042117930332248411418316998388218060396043975910304969589528998013585575859745468840660293060798161625752925428924387286592753048454877890685647877189484741241164056621754185366408282820697735644835326557009322828374170298208945980091992620777681515583510338299016264761001766623046872996446965037534160475058263202050851108165073611392469054299940875580290066709372316783025776814016615521747467044801315960937840208484988236157788953048245433292308161975281461578350362346085561800690172138696083153807177912255902163355278468262218981703883461289759526156136398008568431859090636579694275816051139129703297177240579036544422241257083178889802112477646118874408635049972373868252695258769643483562792733951508330199509716319878386309033630867147239824046322814444433327562574557864746955738334150917735398314278712617280338597017121050587104629441574269504589051793125103527985829023313554613418500752905403073048959471861852190366709073040498643059012596935408209210537623976916498797120578052660639874090222513846295310267246076869882552808502682828866941274049225758924475076014459208820487034186997452426945877268854571476728497258527335808991358109553300763299923130196555146558530582910512699172804869970818229386539353948855905335787870222831213637202085840729743624580790450280669895026255952183119252136934696306254925759495737027702079929733217780033153673201191305120782356734663845811876983690622446468134515087598401974838935541613449154462048023046751752041645329965169651648388639128087718494671001430356388391308718431882686311202954392206836203322518948519783456976891323680943759656795756184636457044114303762944916588876371378874464020932798735887410573016102349713364057493438171187269603461680355172044264300081779962535056664274646796353844462781380903477578721360865790047584977560312426544195877179019118830580119856300311233057621716293157871019842744811137962871112679358668297878896693734677805357432615054245499358060345890133104308934772258224526160461092013835583273865172181625070565956740586898030301304422125864468737067672894176872930954120269163254055758095391045804282805637433970993474415110372768734686862497728939538176915258569802032831828299010042396570970370483136840799616421485565278716539109987273171005826680709662660925037158445926244901956196267392824513440721840962222511364554318935163029241733526493294511534934296027832555917581145382773354880946892016827602486972488100360275671415545945429399655748740081205520252227049662491203310262524437829786492339746313379739015134685588324367084509721849241891416812654883985327939505919194536478451822551316731699164204748492933808971025426450196830107508940221944941760257802740699404080640827375926030538351402842545259232727970226718925637560110587034272763414374987331245354139217473439118815325673054124013338463319211971137249695399616779228949317466659532073383313997259154589205107161338276776989237816368854675620055141711730379571779124273905906538697947289872339771562833006185441325880142648656394500652265753110981128752879719935693677221937443752327232472354344116594243705915273414539487758970672646838911102284809215187565159004405839577271155059975599441460496541934166316850300304623669658936502526033078811506361470648920371825286438059310445200105417892109668360173701624848771139528452203142040074995198239731601713349023809405220962856394525358029472440056194949253498428210736251943667208741870302083161054772731345768197002688184810996814457039710593462208464457688908734678107770226284809181612588577643456839974779795097061272832671425106703747177488452502783975318350862481475496720344921921409616553329041772747023614211709879974108624444492287483644181370014620579622085392318894530598360404798431707103869078161890043207052752690995097451586654971280598697468763343760762325429357794850074323388737419783491148384382035635672870885221962236273155170175693765635664164128563791412910223377894521060831975956424866156071789128216132466757968832537866351644861305175298261532495525347206447669403838464833862692427866419304661417343903707678584091709749445940422994745401742094031929647326637290545073820574240656822657284861353781191954694606523955833571876897355354415035271305277004138946957785821610578306229295996998804006784087738084616953246002893662295255353405666697065302265748323676328447827144598478618848875070753399030962445710150926362035064158972574149019555796339474422627209635460062297273330816482899163569763798286317030218373187213201824034826190896038122909644885536562625872447947262633765758495762595609835843972680793186022429403000364149029269536532777683757997990947517966200647065810313823103812843032478735345337847727667081606000978511082942408741693487704925013164617347948116115292273100884142649492688389908159192926927379232648555792179029934655620639116971233716369009750838346554539570780151069977078439062393522183093278173492684140164772186189135663251119767844111585677491950109925296604108565917457591373919612777245847549839585387033507588058066787599890919271079515328990377660533613023371083023061246206996036515820760654442332348865443588515260828140738001980131509203982283835554753861464679393323196534256737185621403146697187638229195934627835137573466595026658843135353850795422192239346773187226951217244069561743665806878834876626093872552966262715658323817054877262158418524504983360318076206934210162961459805088663791606076819582625795358396174312930923487604554917818113094278546737713085017184141160737999868415080732161725650366236219688833885807101104091985087818743671230000274503911092779303449329690581283967865803447831960877967111182842252989843229420087352804649187872384067634001376906699475212834735269793633143589533308780678594932228365505551837294350313780333127668284926352688322823670895333274541776099830899449375571762661701420620798653620962431866441013269353452081527246642173329698494635462703798219556234603409290708713422036192098615071551043933335591035888446099473780078421416271233224703091598904875782681451030086400840838826859451345705591592296817078880206140994584386760007273028830791776165959185077762954555465992734676998510571085094356174036004609199509008334651192489041983811457111692862289836777421990545449167486790054340348236383295542789122494236306521443800866440454509377231045917149520041628334402344896562852755732528004248204484363645944500841514930390614846541419879739639711075056239293230885131563804260705057591674236621544205596599485066462424612597987529892965641543965275676604069387052741492218766624940649240909456380894030238935368811074358451272437510313393009079028711895551178646275058695516982944635083286474422456007610465470451777052929949021954132658467340113398309689395668132352575841911208073907050905202446316707110159309194801565944330231484660931632940508588603913539912700399354138684501476422160269485887447106811451905773463321514387876023402281341118252996993543087449791316098166731191016642642064924189326911516538961662069375726725232027276054912127314786960004805602617561983053129759528316850028586062729504934333353638889674295987800845615326237319582615110012120964869571468685606414396888157036639049739415388699033013270158995273329505247265805543563381403803217408717361244138386181837808343100364355681241178116744107429404279236816789811979059535641571163103962025272843489850983227114776092445776038707125606293879476107500241154675017612182499220498276292014960570243374333413028085589473847385715086546788105766914691826483411467924675923385234189027057214951562159718236579255875483229967269125227819301442351879801313360565663109230687589394271735471483130648863754851303265008934540469929202622707921103923952807846024914625394876757792014750732018533683833531903444641612532899491844448686029832418134249510067139043689253684123337790995265379046593707139046522482070251578308907985554530547435679811501076683353575731760838018679813409877701022388296793373290263750712190695907140281354071427856092687988852106027687565444060088820575179691477781669122479848794156005641137480341819077719502725308852831211077620635417115966465439768280255545046772462814542365938108698031464690289076724066527803905625190838727656213334009147185882099535174389718979450749430494590644069918862008532414385289265796341809151150938364946439727540857254185546343642700816290912740028277683091084866569253108520107951903940667913441077090163757447453806898320508382514671291566554419987300252206374743670538582014335261308783101030481724021549310901507707000209971411931218493747821502902016226598901125153250241500787246566678899028452848987441135491768727492486856676995754166703236184029881369217867026333521838980886592142865299179215108935754795150104610212645056264347152646238058236205602643130446542216698220356908992179564883653517249572287647695733020655518193223364867394224661283182199300378647901027504407899253881091779107713127368474476480160522672167282577308311038913605443199677275730530681491702189015252509766382093813479560985569766956747498630088566140215830043379376394179301323334687466906376591640708187040791430341557137576084072750666701261876237052737719909849506969083371488248036555394996260345604344945787865750633210486309241758765009805963514553957894298627350131775680099742490041599423670907227669179534025488916345425498597666975627638035085367907411953205823046486500200544367970185885733662380610359244800275810810781590286453343132709440382336841581473138239010878228607154392548575423083506919733290860414844586916025513774529866273113409537819322206382306333362824708743239893829237003629213257489600658500268067659860968958009192218735414116728808534498293542548266124986892629475032793893621725254201636775296989662588137554942218078002351714546960991882363181613224512724799544225430579013177340304461825169968699817420068561071659691934283402911012494509166593595760887352406409203774729135032915164584082390301441432939814627144406684695420325034545558597239061674295213167904746068883544301396873581604616448160957765485249228671529707249447371416229073035640016798944241511250022348035700350006077398443397069510825623312223048661948841579942242503543457473596508576478049772242433675443754231471545160323949111087780983613484311729101315346761228844713682738096352970887468559552190137045722782938485354399683510517214023572248137459413964581602031157787595386383960561462824157387041075255587364687583482923256855644722121083033900331700844961309948287313952425010428264683761011743582944368497993951119582836017059145902299680475984032550216701623392541185868185154421630389732557725922854363499628386517021096759813139153253022515143576362965545698043310513355286953704874072327844853375228078739104475801670810784707797568561143138505786336614526165530862399897613295346744082182705980021749056256646797715201545685536309303715527950222866093393997195099833285876282299463476671440999634987431905162190006534908557112556542100785521833718722296869851973595182955785787615799081370054852786622978518200139299192685081671955996178275215459811675228595358334464384250016265430552209456575714041748100889220406594396466397622825522892900493896655954206194651549137144256135152478997437259268052024350053763148198538667562476073080552471913326454286483112439101913240835269765159456502506119994462828239913402571333542124497476805001524739218118058677649640021702096089632381819728212972255683520965235156089425439950732082970355038366929718039303575825214842437171583843885002119443223778103695307325243332411331878510926396440172305709318043969720735109364120935756701913621709738639092951606132520507021774034171747509418312927557355574449994779794872547663630804901379947497086598464061535383142170010264088481269911074427343479954998553869699123265093803702690351988896785326016269485799228273661147717113265601560491430266797584984981483593332359052145545856206007117004630681218469619395889217042459896164031548335837859409615892238425042898661713096379770189935993556703459717417308174412085572279163718266953972269369423439289789466663982533961531189469727809253374025209768823831759642832776321686437381569884842720466956932492965314040258470103394894445408398812591118913076222208573189918988617378067881794890930059156085370081637579319154618652829015637550199202001434235992457381842703278122442023921535445363314011041701306077919253778528004486873750851033894220498182978585695301686200933608156373088629368594353114628658002800543191930505250465338959519793249196130210201359323938953233473642124867024800461386379557379691826176302585555991396786103208990749109445148004731884948044416825814858092196353512193935425269824762483888972060455605559883285911795316548528128294847363347816727247972873443939244963473160486938343547196659899370293257589727988595401717667371922410581323457009727628609751720648774055016679235462059196142374885559907835849018717462197941452832471603890450349354384339683382245567205089073698960044102250133795860080000202520800439735490174185020647363661240546885428584410339903807853205250388855685834675772024052601367527005504023036145024332176671880683368285613059311805552567349372042782273219659897936679689196349289133561758951671162424732955559686321191228728647793344544860622818352710508379450723595109952726544034952313911230018821229936418938267310706211287460010375621619587762398135732111650198390544501460197423161651458005449824095325165118429782441133736998044342992783615750806777090169496191836716205502291739554145199324720641484052875225340976848938708363569533747540266284414416011914560320837662808959504762771357831007638204130084135443016549513333446740813104120863299472467069071118229668187015592455679735168446721615737042109593165381388074831103670309436126140852822186351470520160343504467578822623175052176436423221775897761265487776643051181169184761455802366713261903648018134570705445914912018333955073793234133921688481731291987921974332710804905970535832006520326675745181436992010316302890575193999068955005344227931214161420061753739950121052524216187585287920192092019327209031570431271178518933968422700156764655400379639856154905403975209131020873294592757550008714000303758338859965403026966239582847111493725157703857035645452340660697002659182101592167433955573811387084508360154670752991006537072782268026399810352519028152240509925488501393351708013463183055183474060216540478619560494888593784536216382226722183091245310428625620733056577801897246204581766067269520625944033527333285532284630024543234429364657044791869830804460913149345125580513060428550804494255865057867519567044977545881022067142872828174221185011512160184985874240683966581668913234744353377128292560285305318751764714628860421390606270917263559061056322161048986236467737024791253440234964721031056213693269382574003178707241368105667639235640573810788984386230079735017529916118803398516055087285459392124953610219789491898569266006266531238780021865639698015560526289913475232319010416099956385337259820710718042447133336986904254052297439574960430445846618409142872616931155874698515293467627675052375875139863224589326491086329866595111657722841349829057953353673419653811522709833134556283449965949895279696400867104706422096590189893904528471401164540707506977658683066597688943617815648626963491056584667888335544109230860202540600362324816762155104492297783320155480674512032907586789614414311178992888589917572771398023619254487547062002552106191782111070107915685120544727542949383925282736581962406419366153560967194073759239316261622424852440786927379238521144874858233474847052016835173658143749878760136747908154443575833128359251371179560379811331033052649092075520543078640294705001378723837541578866909044079822731767135070340455974040931626274030620668527988897729272433525667529333343196303795714186783260784289841054622035561775354426203468470765326427555988982274382162969173260119594711507854218905660137693515381516740069455818260188020848849569403342745862405664374216810608487502481497492865726473858890606352745184678137696899205081594899395271082980627318274889782993488272198249520805717932325072110549245041810937155884088456907790340050730181215181062488716369264896129029866827176587957466644416482544011357796809028719390890754052219430459537265809961714911038847485707639776408973855390588077023111769649182911797311907914241708216503944040340052442637129679167076405792947905181445280651178924548316364797939067929340728757115111040165346205710235166836503730659498941486093788437852620138213581652259466486022734781284953272797370003184872220819674705433676687820437908467658572014887512004521870446812636581819982806319586868551140149390216923239120888345599254434999544816644101773030632656868539413340944644438524702559452037532684187013062898675678875947807378039431193485129125498846157845399895680421943624947877333838047350672085924600150843893235744268499350606132405785969930811543879269667949620718313657732237348099235771067795593129600708602920252858482046327118667717860963943969962752307555080456140700555425966802826096267244501717643498365338760944936971901351933203633367995468075218393976602908260215665624166201944340428699994391327455645283953008055941540906726581941880625433610784451915415416281992002491394380809042428562611037943117181171476316130668648948293896691004996114648843107826116074473086117766382054258516154263440204360207154732735925419335904660929867182453142363870727763722486474764557453860446540950631802126101410896938745996726238452210236040314120390957876591850577339309424556576807288083506749233553960015418460327583574282461443762313323962116882598523787284716801782040969476924615081716061199865091458159620854802159329385464584590870841292981815320881609626738578786050550076991576972812869181319893061021095764243142323044088964167468813438525186205603925713569448827749114977511184857113605166691715630703707366181483178956491354774342038181601340693458212556921504349409474539650148462927814115013113326859929026242198108699645557394805620281195017499552460971949087930810908810239371847402456345566688494057097022585881813474631926450504376221250789157568182719649601135342333212977772849758742824745878857197135844973783409846037307247600758686353761296875527976192477278335255986318666322050036093266159500584309021936637978906163119295224281022830394505342459480321970768977575587949812052204435198615805220590686913981197000258418599781712482750139582297845493522060623969500389370986562801795022954419459317439264462825380410684968161556162689501022237033749607075788573839894726068949674026955634172409260659816518011099817709667538154166983193157049938900617659760365896868246416410982811863617302538697203350847886241420235831445551273276296735840504644972868070084177870081183582526423346860281897104177792351307071387762815777445950101075452487851194653954535400820331001681887150842139260065644850829989647712982996108361913016839483649409501214886706033745961021214590079386267508384055798580790138607162846274531607736681469319194228549220595727701181692906391000369015300453208168593423824851759889414498183711014976842251484110591680978130674934867952887850017619135096914200560723260065085777176207090098290984198345729451744767566216150942920757543142000260062133717484426923342417084639370189029601802106513765144655044895120894309658607657894300414315929156991619993355322259112333811956353828863633714965673278772474928165637757009971171317446163877024072319512635650795607671525545473627955352439141605202787434641705148327977087595885011867647422759205671536296685253200220858988753395306662351641161357505885500788637392367430438359620332593191940580826004236806274416916385537583299079203461772675752652407520221184292244520920790677948650163669181336412114909374020705777987699602509643173613221906653513830916997843568072769899813723784602299112418882807622521298112653584184158215066746024259411305281552060626667664439703678578690278598968053682542098558245845051770538496125080321097997238943526539329778203824263274589828417587668289598386545072406425366990560160872780521024176085021176018320423403120678765236464732080586195371288879552449274889860770369575780851080623373502273244925233633553451106790763486183047247302937872932698373415637063309533837818751195247220989996282277680514586018317991933261701094386670851840741429366404989486455244097006917803241188986644783095348449350267613432267184488156676385002764391863565870241581717618768181480457940717619058924334294625650275410124640774444853739358628314670285027969076897354133750779706389040736047161278924001024112793007061096814835774252675181628624268655100508369115186164634827081853890076766243133904756428308222277787162772214311823862501469718074237366713028156702686955084276516851030417973485854706933403874406740916587384729926194673025896897407107869859692422870403909163397692180514639343308124133193839346425566719536154962062448506414239640091160899285130829961379572693495520756365325005671569259017916729976657302140855902071050926568058375802649244421684383248734248386052409075497483100937059041974725450000674540941352124142642258506813882266370721129070749724345428437738580562583140936639454439919776148390497138160243234656783797887935266942881317622245206014621301904644536876327885373419269420476346424076857353729122110104838818736891867844252137462018179138568518466260733831103726571795227849490973730679839019526691004300941091602281109092476457349197638884968600746842782196161466307891426182487254966543534958987249630367429946490088970627028938431696808325571687235435968965240204797558808354062369165445421023979777278140101459060073401959137386760489964442329209765306973549832635907886877891093615534030933209680018292863709179893519749243103169622350253196373114659003453445325621321267316177080801820425601145700758129199095819355067058948440428311588328265651416731090528577450009788894021988986318477303495892631963872527525006079255956940762830402137956967847280168281404184192576695881782689178060131287823060069700297424966138168886592341456901086432464334410645445335056454242369903687354987090080058575437229747037325927886051068637401088721824278297726622802668340138670846780359090756317095188955735670004101963981516766832637158703027035325909268073876510127233348344160866758615382835625920070330393110874105651185724620934352706327121400402839910517118457292684120552560708681702609889569260642711615410920802287637132537085033143157911546657502305402940521589567963324060495143199217569884518745326889652805379437985154115243408363397406850932838122521651059395825408509853009452571868043339241097535894915813369427569122532302690991983192856502707240375070630787527819109978013673413318492716233692219302344938558798761415272311597913503603543958154975227612109450635467020963535275186392383580717769390203508160098447231222326128168728344739017740587890919252459056384568419815595456771581187447734718826743619700190870629808875303082467122422398824328158104299600748816907258696136838940722258001104266068055708004234935575219160616121237866160593884179510892373184849407195349326002779424962216415231310033032676659883119425857005447873520455674698063734394074976642728325388478519764383176755050291422369328627006788704859084645257523997677653565013852610542591433540060056252361860602293329306827285244808522403680976175057343343155625310853740771704766134678110634345550276214423668374519991902611570194080356404239594345902698198834083934404797010070641610475243831896145561084255332492590114827748669185912401721932540287958911558303822416085406815706591132843546248384745211885521368616236248218113616558166816253364584276436706669259268726682743767587885252947987997766094405115687322980592897271920938339632404630409131549513922128985741789811009054941274901012184037890118986427657739749816025325679720371005923965994310115616456066307972492858504942666987044732675017013376306211070661900414533745533599452075809960966272748675235877262846056060715669591267772266249519568689665182008324959664611731890587170928573653557292604124843166611514692158137567949564139250630859914359166400605957013377733683357904566545824824034474379705265746729025225925982227204197475225223599869023985243000095805737089571537875902336230464206575594411639266200913923519003406021398554741935872763495255596963988269319236756989679046799657377305627485867522446494783831615044840779238972107938174394231716721279084750461055120115122997665829301439126674189360485876433960927706108811217783585752581930082290257059701467089732906016942541308295460399777510579993374704076216843423954715529757970043196510456243007889992971417214147322282448567804413827661406726195298518320215299149484529787113845702098818219742509172501274564774048309088806739688185957494614408706039071414638608490256993569750114916686036666759786111327875513376475946554770568293757865907460971842726346338856243572743472944067002794207471815010627133225852254552887353699775261531469830710399716127386657961651732594805331330969256756581880873526294148863347933722398991434660719899104348380632406231136165847526524135012234684700758654326433478999432271708251495923939802702179449148723853707553620509422691869240595621927106117245259656902167943375879997090238036989472951691310339507695742237619749190476423858338333299936437841826130696175563185063679482970445989798785103354059978420921621630203959753308920074349057082388759958013131856165160371777242835317205253505401305763982753565254230823953640843952963057290509591929855869293967671312589930513778974321414833022415877404746295438037936895255844367091088561026365495690651024716426740611351266489991424767013611228672573988147211463234903213260805464466186058243533040693950548307551069777685529904612812593880536780467435755247226178027566734580748424600108145626934111353489697421946375789343683303667907172343177760197306016080095674510016371039749430914458804995921978582450644312845874576604618611678407437883743180894103042844224015140523143050947560523786745739307057874514551035752675370901124945345786957098267032073476123501261349661241732238182680950814224949334316341048011982715329013290597886107199262188006110563871612036489228827598801650986905467969999636519258330659130330245059682166612938713648425864691443458586862276107976515342514325729370396152094498414011172087205435389531272731006625059512373754648594694756702465414443691303108722880828682392807619359804782800198288225430303993727925370947965886793019298574133917062014403565650562419444245287544556080889501172413989765403600419353092711170048544367767658135123810175167053301786620095686562999674500335044361053077742743455617665044556108357968818611570890866577029832391190028655326755215193776701744420566676550097515210556946237243893129753765889513790319273477551728274038104735628249504896203926614257249180473003903853538357170067576609916177372441757977415432664772358739060149005352219262717892351621243167782893243851611423012734743356701507050133000380636781272733055586459820208493565639574215465733913175808395680004034307249553454750116228472149643681781179653959771138587942150534668916568193238431919117199446814982941441355910379371837001613225213629192711886630849485242468148304778537153576909957302797872648678687823030631084473132134800349953902789725464168621738361697121614847810024399743268760026389023057507024484388163139837937881242367785344439372908603249131303267060811746994843905741082089184807832745142307710668913754462348406708192298252262499260862557547430499903381023565065079611014391884494070285960067870081955780764354026046660565684575887648314084639763444611209920742568933957888332527218321698630228861683906023792685969754416453129528420994572759965539795103206653228538794796425406848372633318654939845827734260321395328154566281559206328446344452738731906132368832039037000730524160150084944285658478771934083269639351540967403143393743296764481627557192717553035257246976333997166109216127712458684832277264542792677343118203601901325381298992192630621301175265245466302386522700844803776288593639472533940764344852195126700515041362662505939383746851481652731043009534448638006292083404325196865770849932439026778683127332891297060709219072759602810860286175322729354688139734414931638535755692584287180796623001768384694751089586506642743111882377395121669713534685840366360860858614775808364899160729973014126828839870198781568821642753790251060880714543066088481739316864325244423461612972146710789490734512607710285245747192678102484506015512522864777296177328464754489328513830931447881041325466767544516634487954732815215308285696302235052548479497529862907469721210067188846487315965355478499975422249419308676791258752651030705964724848972182663262969737179574061224681522599886090617787537506429340112334735024203640018575790783552365323717483572084420839776152265263925855347860210356691171068104259222792629089759040842786109417512220086730163464519863769451848205235340483091173308204558606660391692357702638510801144418984766298347696071641068666849115720694760037796393277842890081167906604314305203204824932877683595664716205615535181265682955997896511848919972740991976570005978377838850766927574758758962058988039258115050264647811840595328603180080151157396825892647219559425720311229085459391964675866585519597771764806390774287893531986527425407737112156707085972269208906713990266760439543129725520170373123501220604031107218346796027280786049149189529096351647546802865798493592579156521538043379479389507478608607646682952293016061111483232225834539254402806907110031238556294393828937983305581926074492981001165129702447134230720961146822054151764719166730514213334790147605621017468924294858122427237783697979440111512446302654017423938639543057569594718629348794843913139909114111004442696001859845512061417284424184307208310326512195428915374305311143305413918691099522800295078243025590582925202477263352263975094780644405167935611713887506653499284792222480754255281703902261185994438759463811337580639650475450008441494299553226948382529922191340059127637936129445861055784272236406586918372850536769709089345117883357599071769445016811277501915349800466049902664354479685561326725986143293568442771563953692184690654531953624062766876980083475343510297081789182277080824035193368140671304144235266698567281072825283488809209137542261695323717421482265640176147035019167453221871998276806588961407859607649965891060812738466751943245790105621305711436401551415626882232638373871133061194222333989983927601984415098108072601260038637026860850291128539129999566998804294756650798924335196101874196798136099802007720495390333019847741057932882251522081815809841028037575641970208411042912349834357288329542688743221521558684717966162222817813653152056262187761110144187092798839413881358179901060601676182563365276410463558389424174577485738514761494839342725406808969798313472355024412729709974174446640428859450896577713525040816001688639523460314652469600092123998555784492806664314901445523935348856092255452478203114588337057835311917914667146169734460522001676997769657037700723046852740358915834616821028221887901263909700419241504078560074298237804902080418936565786074796468317941817768452070109207248955888610894385640173645886102734465413856765833601249414130331818724746971882078978359784247053199926622893480913675497383983327450541329943313709347767837140416454189482683173103907641421270034443992111009357737486414437795459014568335472968784718649339396609725071884480238705347441776928205272138506957053793743845660529457083578913827652069327992032515881918532468103955439502501919468213395546445565489642896719230635891718669791397573515116698237615839664141526117455021954197713236291997585812817047428722943499568971062166737310493499808939933291313921685415747072169629397104935353115447436185583038288416536091356456456749686395988178467034832347447812756891994421275411067124919780067653243623130442393626479826633861814759143012898763705462531975690413405816998513514215662805615187026215431398427564623774864540217722682505293581398106344761188966143212094946578434238868437696838834860422391386620547856978532306414686320383125549005965414549991735515030495115016115827191020655017284497009148204192497908010832373259066093039236084258075422540407419290056816547135421540768538093719881703448489573637840341672769527880793793439869655917981290356125797711010460732997316629050346117766881783031500991437902606253970982285884228552966601024266262557509695831610307851726444404614320684172832905696327643031323916720344755730812189543584393987163799251317326523340283439185703744101266015453705772179970951043768784899193678072651524136229943249063310655009665187435949387623785623043749668235283874177513141142532864015825063496063213908843712089584767479864383703484295696024857374277835074501725640441150838855435369412878513241023120417792608891636380842652230862776113955621069940770912216484798038302219032469254204604896428690568541180823136541585965370330177062794846197590768163475525243497617079848990963931995049364339538477829381338590225034270247318438626070369365569098122949357739439949405391225750867797867285306029599614209151346127934006351105012869718060799886177595632880925354253782745405603287811318210789481323922764638607269309875092736738810340019280383438201019526756742285940154771594238233610534642390656049977329667263192000814015402541253803487784524358802745563272404068297590597584996386676838626657899823694256203471274602251833741356025844334708410530740273513576398251778604174421912672901565926672300776343553218227910755715457882405340009670213788386063297577759590735988406903606761826299836767321010860551180372200132599225795287538093786365648530776252419583606614450230237725233493112953834536607054627005030858446121949104609325984750180468278062315228278458441515933580413730682162991100715335471701132074540708138031709000808495365450671457677402477597228891814006920814263063618223436019230044390125760623204607007190976133478484309800377156425299721919625291530504755552324479593321277017121314045228518383355362142192064427520123619456637073668745745026248943812060268368620449605370753264624743893046840905940176802817007119715494915695787600284765522049176615731793646172644149182632320235285034855717673139180538481608169535341641126129890015563229803539819713306406246230512773874000897541838080921196668263359859531483125433819990794409949477553123355139786534953024310933694742402336284726942134704413002083905958402365793450402449545395549950572361131864142227649270351755290375858280819366140316903549359398727334084954966265343810525139641257060770464801202052869669920631930347939754428192760920735246086051270040267582412036288728557926435491668626313017957072620756988886188070768028083338349162285604954141837893830799622547503961644483594550032181848429511670937087455734620860313227021974938608288617066657329339893025406180985532063371981188565759000857087880273881282938313814152251414896353367968501105252796899612284767116573731531281790027820502670693658408485860406377189898337984246992226694020681897184014301522926247394837301065555741855389190675778772812464499811178523888323360623475492068107499580707259577046595354965241102745471402800669892327567970001617036802297337280055285034795427505498643231383373890990547723951791254449381754030515451380446212291954039817454863388546635829996837698989703124419004939881743523796587649178515137818975412679210984687922805756341968837509704096813475510270892227951532433892201015989890301310803647887342341507620312997676876765371593975867289567655728145659619348693244178795130451496005719895315643444391032647569481814133929540347058430132154450828069217158119133686310074575351442236126060255140729056658991679983000715032829540883766258088579256922306324949857945150417175507952899370978682082653012853235892809331158544044828223889617655844648869116759307522548525459293936281387455455710340902194666457986776194100049057739010883009827594603616376897058314819298663988311839236292190939369306920614256655717471979087109655788160868335443168256311800759892134956877804410894658371451079010338328327180302116855966642178919876008507788660110606038914060687010633591958980974367522626884059271958787154126619434075236189119486929914598223226176874844329313259703544818395290917048495903571966837524338609693090805489573145739818859985921204283724040986227662485951948256357971841594020271997196774662351651186510476710025051543189730000097419176062541945997666755073048297621313422903607220894376681657750067913399948883775951888076390304703257257454039526313884580939657185732696829905225770695116293596411079242969531647846324815405538854014675612830687699397505568145541295597760644563976469215129781461576951532717721509300190831841097534942671021688883155612408917532861361076502312069238013417377248939411997933562812429487055989378752013619100213700596299258171458036230612768752873319843852975495231557004086347392896565372696862071857624420474743328685253784817092645951171088240826321589900387384155776447966998529962599114806653152274076707739872637298139590536381637482416517960960706361776520163847608981640613113334456819166551670151093414784688988547560871528910321734148179533209054870692060325194445507929519559341187023138761687925669634538311053998829259436071873467273849233118705842333925511016325252442617231315699475448099249075374888055279618133273106098319604441877481928954782100895724142147103326935833055050359705813908701209477050115408741082215061932548359805723510341075240943132526382093850351061832032483358881233361655425368961036770433447068108295856190951543258876602826102227032915108205752349410366768493810140686857355019058588888803385430926219594853766564751581037620544025749524354491929309518674329053224058431378001539680672658002545669937188915833669221653836037066656086356503246829652958017655354678787452179903282649439145037897285773219701192551765056578929637698552055463462677192199065673826352531063952244754216938692403615220120200453356946806934223719351892078936224184180511601124141883598219954319336137535888920549323618886736305075729242030774273793524940728967044638516163487024820015418426889574271215193779969464785020929986999046551145724731984516878594454770684833309747576910359987407358156043275736984078830796354398698052771310200474291166394976923848536132951886136132608368328251629492158546492096158029868748180856068885891161011835962943493352456588024521169696444122029065961448478123031350641082542779048525896639931423943620078620911121174965451051567317617618280734445555162222847384383297094945011959693663146435904563058075012320628810134941808106974750917321667240228390008023599763989579437967729389063529716607920610237857963706714000007139265110826048593421023202013883427603492909254976157440248409591976502912041652364226794875738751593988111176885791342099639236589129685922596521997486125924696245262683580128389254295033095999856565567294815847555614470001181517783330224322791584992797569620605813362252383103183094022517426888813493652240302790475692020591834244024600394719119939574383945599035997274608651995985556860328445051957470313899988784365354690597537436319766160379642183235148203397177947176651455068168653081646385441815355554675398661276248395427691178581257149293861192389523510770080076853281241038593485148896445693657123763334925898773558697310348632094919449091531639334371855021813768634539546240087712355392828812895265400155239406293216505252405385547194324740918967692673038222541332715080452989115250197008684076950984082533820199965810595783462990227476482140277939530454451043801237907411903735818776126292955483461018518916068490124855861249849107318960166758368079535689059825501835033621534258522028561428305687050664627366233861529008997637404930251094075105875806821782261369205475033579021395491225295917339081081313157621566378061874454960978087591246926181867308787702207763691929164853871505177013900891436405309012680349564931102430086111382406668700677081876664250820268943934857283665506034377624912549696183350263828128373402184241758180450457358862622050427765151408866963436034553539976137777203197418787081744198400462069512808421417255339311609700249702800156275867594310848003853649638631883741951306965444929382003841896639519430351871060872049795159302668317746485964352565279252485693024834312121667022675852584159041953947750406709872798541414450978044379261818040000117560848481614380304479757316835501039827327923423975725425546783245267182324855700856506545522428635607549371897306684660612677774168090337026168894623032940611808231101811709058350323980801775426371360430536526561227023273753091036594832312400126381483961359383129547013125621675004137014106760099652072097442307564163139614425972444231952594334366918789089663361982067629089006590371277353536339447227203287383968358569937388389655725224571201756395362849464262544354729750440636210426057764643895203919044419033128589626250197077807571409619804747137903727564620858955037661209479852838772038368398466072649468550771519170551218912397789700118536797870170209060334107665310796858515510900893485453017271828613849361392149932992668483307994157026719166072427282560566781567101010625974196371962532204474994721440371743755424917467484118016455520963031693645883618075757792778566215703739244304116775467991118977949290050609393825733874638315420431180202834859982892293726407165032413704832721361601084103387278752458535357974397191035983108634524319265410561750661678406275728157838087079625321840373376004278488663387341600299753393373472047021652333939855236297478132044648681743533341750442259925947612770117292601231697424626813947821610639987644277935524673297137975815117914769339552892349785837775569584998454116664538479413811740234319210955977643706679949138327084964892594888216654518589920476635456412280720338680483617900304846732440352216658969359362247160232890990694907249423905387469285793780802789376075080402501785976480819699147766169007030043765896266833301214864738590293173891422007169032255116501055870425154641059819663728175077719163590699875429912078302056980005624697344400622839251774132691486394591105942329072070440656996507986452447768395271910871105034923706892929229352625832948970685118989243975380609034460725852191533805303258807134766515852776983858629222317887570690166361262776586285004957141363346077235008524231542157167561584522058730046576336442399249345435056149475181864156826367595163583385829457409230826255672782584873587105219156837464225371626306447552886969887773035914277915350252814522979034996664026783907100093775897720207493094631264530669506255405705836123600248683108387670947972706770499351519122721485529527828986660475159854442995246249616893815265010668720382369762442687451955370184413604900678383240558143911471363969762465640732388573253594732841377478783643014640526357108321628138641892056174259709375655468831811121605193697430907169318664141727008143603159646217150675593712697905591050896253308414999092318690847377030919060409355376871696336807066597860849725171359397653690890224387444835705432052826905544482790870026298859399242712303401015251038879121186575753145983287148856518885913206811907980532035738049353172696434200530686056402051311737010812056235423022994524963095435494439231308506792706894479436574738216734170115103723080456817918518769801223279689961065932155741368392891154418617077974989941046896283244467659007996527407177808195131096567769078825507301363799386615510936839833858439035555670392898127648520705773904514061154679613587558925989411064767362471385428227122754176960769296165400950916634931125813314577568177522917908931542191897986470840117680378435796265392631007862974540152997324210001487576540869233150427376618095298410897014448156306437332278559594026131395478443616515892208092739800903867479497132677402293622351681406540057552734301383047379830605682502490480680931280174630917316040542645061914497446907660580316759430502429187334902432233862909843798475146947759184004608434915445818523387638284751152452758124430833352413756784785745753004226917509822965522166523249013432203132601936237477047194974518334459169887827562955726995544342943399290396886170465129250103416365420241528172704615807427836473963943205518300830967262749222840678346014463823184348108078721018506826632970445080627890249411106867495181410448429101116379465412253738362847572980518089556543947680429283127944942281495522714993082903634996822120860804226522120698243131919050917509310298021086010845687089647003766683925938809736603134882711462736033180494485638349977074973365049747867591466241266960523314299353054272104925128576289187359617991346371989361073387289868929460191793551295596810205224988162115790421794805635206977254226106546605866654017086851064600596565605499445588511628173041121600910147012515634182646942062079662605831976854500568815254371872169567543215629145201802981180330225473218583275449221450284746081039236279297224947918870926375906227828683013707840855869722042504803548713796207625758398482589838094425634008400334511306962821648235960378743018878083453783753846326306625756865036233695545872875988862666813968948888267677457837893406538618006551279243186377346645097006172512879414983293147238395769817266260320636365523875520290042395417503360767093705525684540836952972307092625196661042455307721285510603839926499664158655801040441374715933048527299374848530507353677078918085196171528095280272942683838341429291386373616934874911885730249301336375969864166415717198429057871991185041286441173527382855011774196811102692587191513508407762223965093569730860922195220016912887566088931791642846777566778825946084332419438225011457792654171133123612988737467195265495165457381191380704089790513763285769467501534132394562574658499998392240130565723692984269645751851537488649162187802301014217759283071958021234370379740699303976817939512367118776278486410015204352528840970229142406196094114356405021359378748378274779814523577912595002384813258966921350034961328024716249809780635990898424507523737053851597387273016760439240639708975393692628864064828033215891733855766199746062364084554954380707951201041640888688459833319927044631177011587605349056970418357112360675361615804640691833894507229928259118469193853738839759081513190364246522597557083493978601650488963506207233713749686296542969861929409525132864074943921577626462549238241468038263432607594850921124264509579178210897869479814127316246475986484096958681023587981901384394167526668958166261894466038197530947697100959425243162526895487969533295422333828585046646237503670272491011660411399256755115648708539475840653778877888782380795919094920390065349601534259698424604928017970319402077233254682185342127721002880491239756505545301609330978144382379234685901728088231063033000949687146094409218941487535644011576666036149055704883312599688351809189705297766864923837467090922429510799766554911475844934038457608177028742331612858056190609956448577884818316408172783420236295280021073037776273282802076381385473425810306195594557178998397336589670758627158209106074003164643398969128889331840805913483564470993164532646073058245083501057702644451211134845014122630898264358807755494382531777225012435321992423882502635460557295914539153601081606713532757294622750756067432028780912394804324158067866915299367174830370711405168836370309346093590542476362858806072009429984786921348236464038055694868114207106327358483100131606042698809574076989326230961958922986721388276310584937398503603683754184635157205608048964929876264544463917291055525444693209748008543068929458249089494224984632161282398318162631231408704056143312263265267792085418572443342292059536376420374672366142630431809607504222641773313759967393274586255063630365062470167477612118997441007948143856514666790364317585969480997195306519975251416946054475472362221636736235490439609634577442365220858660310165613652150824301538663288658516035968685895252347247143856316812592155786758595857155803701517158943872906046739855168292539567031348446435779944508559326758528301813769205112891892456676949445443933902991394095359368780782090953486196303284728703233023981917668530625102979230449225505687976508366205048605591026963667891033376817085627761458308634573795881807362175628878602996986339733616563407468334737308307772137728290931780206558145145708995244693474153839609393343169462000362666299696397241014732035388009402538085850859410654059330936660800547698888808997421915971182902119979801990676907645336987865349373526417544847571781626916464293654069876754037517738957103190124972012543973379893548641350756396381251470131835129309204067964309871566022694353309168090742028015029642888212430440639601001349929924389340116173210845180669761421676802486459601651749545291429964553152198439918537148898100548402177883695643593160465146594042928514789497449756895999207618819321969981739776198210378953128627817392332104038078118176868483953430842359194193865684276190498846646379676183210722854903901044214202836239666321676221207267564166849320629868383935124232790849574774772264658120778724140110002813436527309592046681493682120243632105022255570281345788794763651827265744425204238672480468740755849000570464418426740931086755508530015397172262101597237886483268737557999447738340595369167427969573161948691554189735818286180659592634619004643604925963533719878639092626005998979693759151410851556549630389612337044349304817533080207697811831258534472794154154181672099036076218659335641925402771548249498809792720977750223589564736032741983490094260142575093089801394304441335996181854740547032091190464031225514392533271564420922938567770737912890488432686768927834695615478424476961600136085890517377765281712111898577710286739718641470560262834549091121390632137340194236270234979551041823726999336346871388136484835784615844890406824947937971334565900851906718636858547928094680476931814180203885274406405139181378503140324081209061179517585789371988790727259312894588766787168413027683613685746885775099196277470372119789074916682108686013982601539897440883140959244702678956735899039734585592622815692338532249774385114983243383132281547976138747487133630843666911291571259598408514808200883102342719526458702876034968650621921245344830025917451281079351701713185701290806587541313552809100053635140353329647159157252519488405669025059892240410848501937630595392010938554905705731309882057997605066865508029864273614565291398026095066012251663322469861228075360920667212940377309653125379428414982620993378662214759759898807859362402830915926273056677578054913504882481306193796694010924502438003299709803377025089560824213548624148361254747473935572779351146845296822854882664795206167116321427378917477158305158525117471988048032049671886219388086245828592390806678517723087112634924707675554139345273757448675539022396018619702235706506484036059386022744475376171587179724203222250881660725285010785846965780854580422308971617031000888080324199820175028611136995856788955749429727743248362053458878611397840801298355970978573818655750568612335885548970243004931929954889860129278722503529342978232601356086731507597803910535753449996825008169442372110938201551916711829204793367566183060289118488384595975670338745713732731886148560293944647175990970976994164348048869241631890161031834831291974048003932439010083012351706175762686145219020887251063784153125885146565588137851197358150084710426177840591491727570297061059378704746886990642987558453442415613429099839392897878674411482019556742934786212011287578063468802079777292832713311926777677377342273885589408514478090060863118638713175090109906577564464453842693417007628359487415016100492567741044705470316687586161504335649325469182531354563875755613235827644793569192729243079462801288791975057243632113240224057043090458785854020060150323432055942426222912046339893612524024895898064707478889392101738918028864669825833456934111131561379702439651803963958021325304955028147014717774197884979439371496024886111973597804577132917821440926035371449869134729116499702150851250373118324174896008098951146942150788229860694689095226983712381088825406010372790688584759794629756031646342163461870163785715050377293696589003622920178471116312121877399780670913900143027655415421442131502096807725057434329902541656764820898857200785221495026551981309910814674253621690574840345437962350052286876900202775200571167103099859884758133207777614023872877539537070186936468228308329345822395369185122031581659147794486453502291489092764632190730854258321244763824633107875511968209313314854055780092336214069203731858334618632286819126947895360943384069877902300062865478444873672443549151930815636470076187865487386172562789398288420437736418342735601906800531544513252432399491670629925813280175964162094141224316132451984482076089909990865983938111614335140405493649972618473317940931301110317078614621495726929207379167972404358667595512599690733927554025253030077447221130569290288574926432337657952303695969512522449968927209085445298072314675282394419682277432658912783352279766084672632349256945744009886132665763465798763845737465441513233354550066359768537556395928844801907165445225217950062122900490071976115641144727561872944016924777124239490782948401959750959893425247650720077568193870978086055601485708154888991388090998459693752278691817198999184062444619373834150375342288285878976038805030229994089820812034973807926461367422832995067622295101162946243399107975334576504937644230467592421760923048115756344719561380990811341563275199895213820981067571226531112334228823458613611914212167070045464236147841220004046802649847723693031098666346433102486718825795638893616545828670306284404962664679395354309848030494331526055279460954395994757506909637505559761803944392510125167466814782666159130232212105101987788976992089474130097841848778259763467078141003693794139772760165015703061838220445477663789318337974906385580770230748113904021727427746531797718499251567031515804483447048729788885779833191837126912277688317868069354330236172287697813887482682102984323601915398770977102657464932953709356365752741564875048771591738818251608623416164894599124684781744768472958542718088942873532861277814034349076929958038723824416613355008535938658686485641629433576115418918513624069136376136985642716882893903838484901917036067125589153947552240239515428216003797238096568057155891342131384314392665626670553710309285486468154620513617707638125949413127420533010158186587913626978716845253650219749024869111935703344986468183851630034550484992732194682489976964048491882529252961768385801717220867791365723957036475816318206902605513196719489661731123678390217125390121821623976527656572128253667373497739863694762141251112341328500397376743778036663169431722200265561522822638359701397444643267138733740004789803364733496086646306981923696558367227138060537222364805356991971579517072643323522287244456958245236175108354225709943089790950749484071630371990512785198483323853109029669192108270469972990107528233887601062067291847372836311141779390227152496415986107150506163902961531006469039870622015385500684484574535157112612703210167343711277136808375261413051749075359914038770349527495846996267162725879058652351483317860557625986685369931731745155094779627294464982741935516933503760248712586381969031725958188740324413500875132850709754981677332800691252463227794949180298434785645026251768560598779713444651302608308833620884986998280719651941125203835374208226637582802357342924716527006608322717914763250071433493171859748902552222965885222303889274753963287494048003790383962786947407987804459241866739806966447651615970361666942735517627960639638967613451558849383285067300313459026538469785162746880613877261735916355628178094938569259208176843689235553578369827274914276357994048413944721616898674772640007554053959129935068140625167817713918557515565551766930624978575602130028493431316222245684722889200043152015273188418113512609511576948100175472834393477260118020837437026525478144737220756974115896815683271779708712995094479742329144631339888070751077653515371861876839501076182201052113702123407946302633459102713194532758529880728714502094450868598616798131895600478494840940789892717218002459670141067074946901159297142629931815407878923838431270422664236253714148792817108416343221432418690297210496110968609742181856770465746514203957747514576582545932086503313095845724912804517755848206306725721839442875693724547007362041980953803616190332235709676860892709462838072191055200654111312234082381891209233875303219053148877899537334707586262730540856691485377072496750674279298576171691459757390320128896534443965439374003724129020160818039716872268836902571142415335048589010594336005878134328469205922733889543156970508719682304051275706799091698268472777259941972596892912372423022351873323780342004895330902185624212616208434964827454925454081303551637896765377424887037757115092621514635009491133608564207381198590507790733616121060011185022087869059735103628412203886541261589945165707316121867960749116831783890339065275780501630777900012619637445983629998731529255130123002687261092431350574748305595842314588143026870472926644036422836748845602926789383553048197933592973332801587981084197899462374207127331722038230856672212233783824883755013629057593638791253224433515667145409847176045657432995990509940415391527263406055955995637916504670275136105382182471698114023212241956119529800234120460767859310998533044542697145889056273999828240374044194910577767760929971250213696549886080551012839525392046149655868310423285537337992487883045402542335281751631986089651285378132178873011284612431811064569848444490636914259200592590688652696044749487174700717825205155736790104484641243646156057337626667786912021790981965438761940032357388881585154267187711737243034410960187756673118932852022522400668933185282425416855001113052016917810253978903043014698604023685900869549655967414834830741697781374385477542028398580377393356874584106354356191237846381508035819737170409129360385799950355901306392571945396834245474992674557774959289111897032079306577461217027042749350037799663488973505933384937064658813042520110166870329969045574582491405269789691554554632194854889653481753111289739525489688112862479344020638691771739832868940512747282544161086831965685247076980508319336968864122349163187916143785009329646878376957379318223313908524004397639443081403924099853818215394761072460657508720245568760844542597266165611570494883910335585952257846309940660308382977597713664294411976367084164989527599633988744473530259144742722787147000152358329274747590846557936093070411189831223082375979880165480297993156300746939791726693218567378544825628625680995496096682428050870390434907469586034226513768508396896032505672530216639908762642649977949352520921219555238999210505083370180703682835027079833110264055192959564974319575240228219233978729762565866567108017681584689832981137842961712100397809545916843270544293006646445977697525205113670325662871402970184711761094228522421967435335717851993939899736938024162591808810200841045907998905871988098175526539230857886714447940511242884153315823620601121100693611694559915153703161666599091661539453908342099190114257648510193632141760875417602169456131148042186276437440739369469348768225241598192780512053079673434896359991093524414361753096133520517075954562068691647830341069328559523459672101307141230506798193754181551332104960279843070559508176022164555350206974781554022252827301694009926850344576432460435011117133513836898818199409542703220955720873316480146564450085652513974093724793904869215034810691921174081767411719258759098082971589165183483140886301339815243906217925700474779611130088768755545866168365452445762363647651240950892968522730464246635156003927786006779065758195930858023083331911212661029074868016702406657350758480190390102685261467828346926852676639793361544791762835771995438897955035843672034226072950863687618583725644397211470543180685672890921667728653988770160971142068907618336706239835618332339941290925042097835553939478429178842943311545577759089109861421767806085396824679529802778823748179916139659662825627676027241801586040955680311846309576615486837605828469479318087580636677930754742230437320143136888754511147577414766617640989625096326297142962021424412114193936397588127445501663722529964743882735015858626457079563833704531554968084054556871768104646646681234283287584323373480147576623717749671385023115340554625662235151185910167748822078279239995159954425392653006121864882680254323750414293949464706816093117985605112457996813607666196146171585470090498513483898517141841601722403421781199513657719275060216138689299629101619787216035509275120787299088410622451645133270731993374616569754180073278344213432205663451887755889521554760461339400854044432372195327486735982645868192560169038793383188735232018584289572393252390118654831983219513358553195341942689235138408054755448515413833415561829131814133510227847407497814021079458558583641527670714552668963991497035897381489654022939156011404499952422268262319492966224753332423733531947371213530332317270470295551080591308124336557737622321077612749026328363352803583978946299732545306024184924796002241476781441580751237872973222182280144535927368059638945231998261780392469438344321637128727896286152267914531184887395312091428948045713863778130011465385105761423763284089251871544405204258688692989077113052130346200081150153225108708504780268693373421127050861789997115081061303400201288653547888529536083494580627383853181281526924668842328349642601231553123458939814234365166740537232338133090081637453656914096367525739354279317905438915501676866558025632045279312180122269992649208722828135478264366131741473784810773539870783244761976197008864179398573010674538315066048812774128654750770500815686976949910657334210300927660432625982007891487750517152692985019208924854776965424592721194682219273133727581306066807747431984602222393579960471117655208737354905911939998176168239699019953562204127403713541472524110424429413735624510681828026307689887303820976739450829537470356127591823861111798209256454280952093328999425616322258061443415303038704489791392572651715326274848004229267509735235704020221567744111042730106958128868930756737038775932774680871916397887459160333049066203793552003291943771563499692751472309348674503147449121461201628753858527149256738276670595976377218932766652157674463334967863185850841883119468575423245176163949159998926186321644823136453553789713176675090263513217470324918467194986704960567456368836735678161265016166305452387087234567435912519900427012989990000673381715969682650208747115379169770286582469633795075594146692663809224647816188945855004993243356703365119275006172156646848799249556196293341271227929441239238528116753249685286388947938500249344976533776216032324369795691041088881907473111561618489455241245274269729872385385681096998832974062082168732963798690449833080494440719921532174624458249265400159562325869086631873202273490970042241137143903743970585722379997312818601486237809909273810336527127454514352938510221566280033412009260294913684115804872552200857484838111844580646932827721411798062340889026344032208275515361108493027783761093077936305459621990552468366070084523951096405248404601795577578254366905819021851229188269756771216899049408378236160790825723811587229721323953866910330627599422810550494142638291168360597895391161141033241818351721580042965663761408678941049853006669076600201315582429540716775604430732380589018488189845789866672212981569054460616516451348974735572877567369550553831135056815100099906269784053231359734372336219911132857114364474501011813669366168300083384286033345083210446737019580072693430798639430674767157665166996075668042953802927534840391207262027771474798535006125101343838523473397196019360519720673264750501532705013634429536885612077678138722354729534868545635612912073601252443350666632200500222507134968977543686159796934275488535864775985935514048163425692194693523130680159034036571761407833192361509566022327504590646836513459091422222323055247408027413313410676215753048402012456374100396245598869037774232451322791305531562434597675087302980839960811911093504084458277004342023868098219493655083944864191439702100610955351294762390406628139265076168731538666482245641575106965146705241440569427432730215309616824262873761986412693429429964328097586880436409426808077336707057977388714364051171453105464629455132194810579987341789355923771859641488847935474586111950020554941970979703928672969042183372334553444661997376178077720969416760304805764889583717024056273163189555825519483649652950615473236786374081460658233448667309249546231295120571944522868060265223877853730305720250787515978853599845234505030091255741103246189147521661932383617761435177619438516413477588096483442958038708993767590732692276839411946102910084007246253267090722827265077129581543128516010300805581045753305705357550423426815800534690579703840368505062025658055051950846818283331980334379430287757394951694389039751600403333953166752629064032513498204268830952461836306368672932388266704878275971111526651360070591254081005473117883636067219319707907365942014929911062032518022490418646112253509083572247692650011754332676729048854111542956414396134856165077933030828684010820729616281049284505484174897302209281408325282074735819544658169951902638640856061849700491908247026961809064762035508790967514107916986021494089449739985955569032293931043497260217415698651438279647103396717116450494333883960870517000506801933733453695923779410541849763034976276601306163979591523544588753047839506817385974628714781035376277023413028986229854315706893396247108184890170053853931479573197312300473935763021302138153318288415254411351189833795090883379713835307281307583839945503631278784279157166732182308106859940312180803043736809608657304655890028383559638829033509553790678130371896718919060232378925816282397740852125854699867764083327515549952735867389717156728101740028901984244942731458634063563107685157471396972392524105914615032302181016220144832920677006237104445741352887932279871938360450259048775776541881753953148349093375611967702435699075202422423852793928009436606846650218654686788900430360021966635062743972692500543941813907335325431057026855113557937617702734124326358393390701782951750768911697776971729913275915031818753901480338221217043188449313852627811535769876429113354263330588664409309571814745761832307522735934245560628153854761647535179570053509968040911230744576635953468590882987270712678217541267293438228658550125385476559631517078788878917698721559816811601969359246786694591633517347831873287913912466408922113718426433028077404078759064440132648556167661826288133873605281222570832482346088785172803903498713510682813440948968193977354866130287057331790603142427475110139975206470386750932950431582032525295667046331818953599334075626623599838156862038048748783295570297952132710899387773513322070785730139908409955589122026359005126641804778062730683852812735582137602842869176336115973137391171052735291195857694443371210675012828749373056538427383197191536979347979770761074314174740492637229398379312023187248560655127376869543499958254380571091896136738974295801845703028266906938423505744057922307095868627635278967093604796645416947315522871248982228826238502147659613619987900910175133182552363177852781371677395751124882846163458654266480871105320832528413876472068866773491766454040227821559047004630015555489833049383122764121613958810188995851744329583891614760826149600337400027538232978805572649630430759477100538745552567601416827183255275082866723913661477319831312341258551888682841272078025408629331412359318096690427919063153444503872169556757440011790177833955097616237119215588161837686082173273307201934279601656886022862072820449324416553291557529478700978768963849677250716518909307304989864162991572873819756396071709864095136413060667914073262730901199061686223862216047065920173333928771569939289638626317199375985402530514200705792894359162365833471209649099613156472610076577972573839211336531989567316811366464842357777300735183094024624464855351288674205007896406524635049704890268600131578239359877520512001810772081294275945548102472232191969021271644400370330982875625753144795565568190997926598474496728935012089153920968809657396528007555876923263485215772911638237783259248300723796834149981395140466092301697925547937964366102266215553799139542667204634328024846683981871508753009775556419489960378656417106644470338610359738942604616910452205564660735919970467319562129470885289140370708046196723417488566993877956567088065846123133714668956290910039213131653465723447502222750348843344252541613647461672694524394126364548616670126564026196441852737153886391404081337349708756417850171443470725948503537282957251974713224590322817719523960216213653584734660247577157737309742663856571894538379145369459463700938411577941011331530382924974541638979555859895447896901098664933187459539360764176356190787317926971885641488411915300286087894576983036049979683046392927441788320270304477518180399495292209333863958820672989065545874739866586977554441307172422051819590308019020275069220868527353643333501159873450188462839819041119141480240738854077693659250266042367534428113038561919831996303217335330613841422272652209007972733715550136983630361493667401850054002053628816573017223423171831974730828785886544307893937926642258800315095707052343702232022604078328675310233319635823828996002418466252218916271416345929759228460245425652597338543906047671862559413549781108119831243607711966741948078988890054466627061767210565877592242665199651843758366647237884942329236542286801175631088404953009692467984171129071334278214494399020617917544015994336883814283888207284823491759789042754027300679451025033503759783515987674419323794928207290946382262386503797758727595723687823007431977291285635423040678265272449243665168234332602925944778897409158293786754434682503285103859426536621723542173666401291958132220419790568783425151217957602856429735913122124917101387584275583182025091231063600617427731649424394955111549003113685405526047014369135225094499923306989569980296051131505668681888499506013707908080956481354506889925782613343617345832298212977074367185678039227516615924109499164536698179321822315215247904969802480253519776841468323693905361467503567140955810590605089236096275027469154755031921841177148672056559770999686829340551367703463801234206212560715760743922776899006081593440338802811493807965369958116081995223021203905821136775712564215990758580301034358744240347183241128789947253516353191207454010362433445026631395175940571271955928323168857747946284600903172098287691741407583981824427366840948819344201539052254750203987557881628940188229638477627785354272291762130505531410319819947093086400832228960921463863263083889021903482970450800622743526622170665789801769185001419295738587025072882961800263201582807118981232533376146953517854797053168157790095235141548647101464386169973081623507481774535931486400611495533434523126285272499639704664147899525927416397065329452452456252170866301633930016622657099245629502248330475069490411833182808940576744139597593228045474206447022032211127344721125983089311989414365901207837478890284392770815599262315297458763634456940151559541456165758238523743264178827790364160742123558479783108624821123617357292807222983147887815392794293254863957154879070832702209558627548238871455754363052127870516916965966003778420661038833984871644990282963967906864553315208438628537259550251095325494725750908391480185026877193447888018061529551079312667119039332028703443619386530391916023260418080911440022116618196283160264811623087805215887143122681232257033353044266445899463355771238664865870222407871441644162760255485638202311561898250016410518363782078872785356180045285126690002787724313381202809990854937637690989810310435437065174606719614623310803968374897196639574362441428319494102215570954505106434445856758489947808374862710666936655351518928188730347766859809392671001270186453794173608351999954930573914544702114731927316491938382182824412221993066098022483988662072479432983036530674631876937314169605380269410914764367228035781167808810599454360338771223104996426863454493210160200336223139358347691498374648787730913541627668366827641788512142767147674972663584979136896992873846067413807918402182875294042766357077005875914826699353417237931418603792034915280243301984254854628056487796946748472948758944240797243698126206529073936452117335552168302560579514151697038419171786140881318800264593821783844918018875789100132344698685641886285690826259979551559461325418785532914325490152214942267695356240671774102167781417233682497111409512092883204242583565793417763381130835938024824667125083368448475537338619449601699898973170870611562171751223890411294414901169364939805012981208332568715117004120624133737198452194331060249498698152579828182072890645986744283834226472378570217436243033930439839611287780892475679573803396757474373430763470816991377433706915868091784882865191478875682803767175025321034876418286113804873656996668514732602185708526709201167445131132853127419676418615257136483985658014321662572740899415650475588701694993264534601146717545302840409060810413048792447543758086013292772151735823654667529821731974955586389327919887515302533705944720872839549383449298957641805628700037532830647036552301570677272681693158300878625019820385607040559036199374767536917672357343988137067780335889481782417763850322273612582742539253784369776168912947131115235997061176293292798099561832613390299460822926113568776984397785977293721293915204435896256549498739438545902275863243212266617758916185307729433299168332820955524439665905311335378401148318368863890054324638366537611765143088064151710214533837008121739089852242324740682260749403797999506938536323807312770634482531714040168316341925873072304186796831982816176497505744372627823809458149911133466471299594565014307689140069976326045258451942422953148313771415990218326146258594649837970093497584010545508416665433799511363856932306328057046493854470148874843305916090783749252722149654122677674571689079159304818927320781899872984126091654850636742065598933465070088074763752086563931318894075006245919574783281766606782723718725037264841676041391193396202369257983434622719942512909282349007409634982018443545505290864453099243361703349728023287206263348944528044336542401507161724563414004236676329835399315380919547467111493544328464674517661929559203082921947884341178407574252186707684328308147633155404076382678636288837870098367723786011753375364134608522407451851885145428589382039436411981388979660824622068790824763842051229848166324197902500193420305595959647901211635902062836850749387790597486651395793046266437313800931916779904032071324978502248333692988985289970207120813575177379920626100600331495084229680234388778164784061612092879691545947548439891267216463231139891134714555260086826969085793916366725983056908349559075159151639342382625512506056174962704778772168205457607290237472481082115882453967907854098985458049927302974275128975288247790667277607108896886919091502771311490769630708354406077165702318902543096441629855481039703401115065855916942750754468764972460871949825368597994459381492926596924715447735985274426833752689281777917482564290396072841308348103563420470298111699213061332632087874043179939671684584997310022781970546746749572050206245149590941854335102957369536269266484362494833887856802875855610143265162845981993421089816984182421360384150474212521593217088356472796543288969853931450009698267659081500494924162646664565233583515371171986166335843158387251293726752795273094790304313512643350272481112150047731974634631695813258090360752390748803844595884766614647011537614512464441462467215216406149538767897249795630798283420683532895163428266256211681691373909380027640507056889183642300262576804795667919887860579503902925890186070534670749041665907767201692116744057392209921096434427291104446967547919753300436472141558613272559239017006749584618360022589119063387349998301047382394408350717566967401380747373391350614140844316441577315664812892958094413801774913608517974769034674256951748830021784423337212418469073069465787400434383159247584296025124862115711366848507857659984758851487555766216069481946235569938853562815606596586456686599953617359504720466722963680733054489367677732211858782922014243179155039706160747306058420443840660411420579690754268018495055298863152074456574916377015358470831581859123694687762415466286362599259503230525192019796983112220464811778592948874715755972621121143588945246300358907595853152044492749346749511235526952301122175234868764045758158221544318672901937012426311338643108685257257187681925122636689769619842291666901777250339101869653147547801079630886431005300406312768043223609866791024777996811656016033348238136349190053476429337848783428556796842124268256838661914966787020957858368146772177618414383072863524730160490550756172335653002693157987354914583770189727967586860114968033855878735171545677750800148711370595741852181968236565774626515333676360073052490314110680385431077468057513019458504110152667929150566635339651524147017398485240003659437280920048786405171020462026231343574690202821175336749498085970810368496214421486440921336179812094752208514986579539245465391368183701346212577223175483050038168147129849234539531216417935917581844576456780655788727826628394546756222234850673079199662664867127818597621558392788663704746366577923950870862538933451482143202198572903990403767551211403914608653592593212813549247192745567205115679695787938662341239275763961065941532169173736925582146634558327239457057579759377864140261019643519387533060899102519930090199727837313015257109306637850752552351066974295811755603057398180383829510727031704351895909776105226221258573585604984534315862855046144949626182656817044008653509261873465105920431850899868681000848300982062642825725751919325410226565029299633936480794719921180353475027321637922877229062231885165973245657581059394292227771446084294760637657811675473576370998665728182067585088167580494643806604097605416536815511740432543682771745972065498176564527981176473869598053355907026787820830554723469434952910539109514723864965119652509055784523026024008833107873332438913062192830876299780736534430604606931189573692611483448454692474071097244194140619680790769963398814669437554613222375940331280524813500130091970145592786544770356596599897894029417995357508053230465379264524110057832123167301867992444862037735357678090215153108258602335529953589795897759592857145867996112924836758962479936661856895570481138202972954654175816126120017809205903213752330462579047355111982702886881327272928178444468931814715234377686901988435299193676372405450862771067362540789279536076422394989004607694372515628638585695921469274300222803060224064166098794327837867090070162487875633995637272672092160224592200965616990648088797223594760680176757972684258122777503419401171212549388102070575948318267110948730191569049219356059588904339724361911733927132295146000984075462851395303293109349824029382450685109347144258713995611667889937620777022639930029329215510555618730453092467662786328850912614896524670849302656938900294825992152851422797250592493894741390260793083966959207145156006020725254798631416453564614941658264978753806871184949969696601201257963373707614508057086687773298291678225764986609571962565006479751870708424641321529952990653729750024129839033860411887132614080224413287057715366129489535051701248544001346497779910978382731906515401483096626816730636447391634195402824782092262849112807333341935349100818900358410630232404136193806285859920275790314379822478580038252333640511937369396385520079755125610714496516361177701893278543911284904935192885689570602779241936821901796785882410896676007858571618480328752450469828319794942884313507730105485571050036016396439342972524398669328280753149553205029362541579572551872529719697127562992884529877281774175940010708128255072150007159074620462082731652637530184219618019970144918492431790017285001974870298838290144188742587032784664277481599080351867864246299581399904399014628555617706130743656812331744015058034660506988075831591182338715757461220878438523643862571456970861784416503486711695250004004187934514881687206405480644507363244006293666085610385735250411452408265068203692219696407109128164630558640178324692935889141698340600609378005778886375608761595949854007862767802117981117922612946481495169330968190353754674574745496960633523832441485355907888390925879392605126733071700266864374152958477906827213807901484268367061403105085491752487977237928571249857150961822053220163036894543543319999396603532838891009290750148733205912612797067067621548349014889341073557176925063641587605418301493096549997901575538992018149171322325724303037528422158780299550602150692662094315164850196702007526255643848205635548291350202487898384679555168434705492108745363454160660322900208754601284921660445348211591300654086915842258300423174493585776793703394990883522153678957448402599337889956176018049440838671504317938507368563990638356491074744982128726956069104854582714832337622174845007262822239147011358585172317761276595796360485129362118046822945540853155148893447237066492743184510080592014608272110088614198500007890269229646547745602795760831873202320308558411727303180713790195171909460876340256577823177991429832217690828273734197379153236987979137426163693086005741522580728574813094837661630717097828149168568248344946961831990055175517333998500597091379355615775467464663615080697198074046041899259012432744281834882765224302972475342885212143635704054651974114766584138319052793708750546039892059504667025463174972536374602632475969630218986224331257250037003976110007950655270494220293221413462188803369445734644265297974143370606863548544057814339814770915193053620828163399182068712327519418924733930743225495272714529582370531703738655171087598895333572318023867853033003353736664245842205466306246233616429620977153673514379713801050620986758219187919240595382540008006562639449451178702075026300560820256756017632723557952626964867087888396393841408282375644422446555688937768908590457291408146158821369077017580058791421460977184821532207828959415925730536056507881309484205244897518278421389705934407263454959813489454279019604261207380054486665075410792345229374923226842330643167494599999602476164624831637752766441971512875943446138143609821618900748209101011681673740008176205016022177602648508731830896274983483431709080734205607775549377667492010190953433139049348978645940149949754466295651509463077877905615452936515387075160562890923450369090942642054835406655756869920963072885253241537636140729996921549628997036510230859698533149488105802759182209650056073113425737688825785213803991475000755302565988212372825977288637393805540415370373667655255956112473986443691977799638780496235054472319047618512946524390904256600846648561418477111454964856839790041002572806743272657087907119080961317283423426821901820606624229125394415003142508932114542998029128487073430074588235548059582901056071230456364243705140730352332280503462243353070678126395140005752283806840927283340884836626688213416288952652447270736760694063429059524276608670419434275304621770060827474638048189756712460917685890044424519210963393563903718659940781568773235116605741258928570510803937414057495562125935211214047952762450326815273012216030524383152264455882510758372584853899067562817295836247922193505292104933058563295528137646644559097459982331660665696044800002499543256253823126639695330367109992184268206453748277218841040800099696338427297328903925709191110347641194056567365052647652587153955233223410991449763344814888690400723739977382613889709531023045712197245766978772779274436296359752513566574546460535829996506322054516995395824867239747260109300214143032598418702794651416131862473324788452794079111835747600530432691341763592817538267990265071889810930928063215060472579653327309314665230010294168312957990174303455195435760695034939495532050827528536939543206462254943375211839446781200358076696392235575968832908107424053317425730086245170245662683872268061258348365850217509460613653836986766503939922498302269325359955956556676987356053162383881396933899206484157287492145472484900901625774778050417418536688250350529375948919743939507569209962426529643818647065667826643641081259942379163908285494916431594944246063612652185799396836768341668723789456866484044841086717923744822026076715558632778253735771162904123061731916720603999667203665760927579293829712046559923278710413167209361584684068850718638129730214589255820600526391024902788293289275264890041069399370765669032772768895155333567535576577838351387154823027350334345304155708418416018590639387576091171405675356232240087396444572828410544715652831670013949315700473251505772976473418161429319644294659944800202870519961703742856978264072455161615285264267143438217312659718165278838923332442776829787448513110482677419984987907003306194508988257250776276872283180816762170175898684627539204809239727476626381507632270771191528111540321724764019623976538705250943853395984555967671070762106647017855168640963271075406081254542292529367012935144291041332301518402006315410013746149081010190873229906155654908148030291201580413413694684750199173421695034702148885865439257434590065988441269249652645361007269295832593562232679282057549837461649593006589000094432618446283926556628337622495153284501187119552691830789171841821305170555524319937120609029818898072932229793161927231549336370040159179122018595649386901469273802596206916377818265174922835161699274919607869895797011222614138449631742591405790480552814394389978283411916132710358791916360316801540007791879661409712137101715280035792429216590345636969485306894680001186243615264943572792688859322677142681791477059241889851200956570454642829072331384423677785255405105433893833740732703254992194929892515176537176072175821679285514049330327697344797844876542050566843797425209008220629509531221244466183817745422397463410330359813047367104421462004257989421907300701337524387455213531974816143534201652493591091387196100952124146219850431334592345866330310056111106451554761617054025214493441722672475923208614870665790011230656897795648737263274932506063122365277848059905307870065591427580609786156964137389736909967555825652785308306023608021152676516955516332879385139683241979986014324366762172909060759836224681526332785073324683792788312325881767185584264960974163921778235188521009210653055087461214200745232464335425232610020332091715217450411777610858655657592177270613403391675574061474693757217817497563227100833272256415844413937067796270899917772600712044612618854697821973877863667416783797854786460295414065284411376430808802332788311144146457671932882596507237969478587497423017259148941109180881649440758503658129166627847239547501881938037694330567806445492341815096328250304340665788241216420794461811125865301642735276235623723595268391864117502162801473567898968316790113784557018692059602248326941754343086426788637569529382991333217006939607580569917525316637396946427664459023436714616898835902247096830625140216443127726194450951218757564830422772981064899315072679613140400897703363653442727890992677356677604338082937644862197348219575065322238783366404601595377420724946079596663755851205492726777660674651038138166747292602852908701106632778182078169504843902338153784498074163770664105288370504636263760872331341994497100543780216822720406276043221393853373537264543328762610674220187900743554639176404974045801324695896596811129667669718020966583863166894874682367641428032160452721348281457301346077385173477337516981693275485059353143504958374187156909915752874379268318052751729310111685934699926472652487916752577091762882247540701263846140358470439082281487552684803909766290377218696035969374825975386383215650621135425256301417117389667425871060532549509759716171832630232123053977532309289299649441752971792957968586481405637349586350908861722972230864807345318149955298879004160549286462859889434361155926481980615375563108023104995945920744104719657590253657443623013759243805804838411348769894679228288967959229783626917876996622357137937669488015649804837365213302969370038160330369107703973722141740126558556214229654230179656036313151641435249702872473334376968534843467667777369700909246861733390386761344439848822592858965537160268702871165603267623757216710524657530783269104177891363628055013103019624012566068540564497850507528251905048392363385223806998822139103007629974299660197749665844739244717901993760808819295500357504809241167218011406191734362793777421455885694401452318511729833698639415167707222735808507579551298877032440853766434913796222871429795874135037298621026594897487865124984123448841223108839911652338759030756008308389799613327910210001287151241562272622010684014556248110982853590301576704810123865065778477355246296501701700692895588779336634255467894567972807127772795291827678803898272299695219138787894422089244091772717598733401655006322721925202318905501688312541500602203873125779889216635610605132438424000366007559581125792292298318977824819905009035551208607928483507501891088673867021877100516550759146575658624150636856621462132757733620558725923112168060511207525043517876135882480959527312763302052701878120070818183645294301167330294555935456897004482716675183052590397780885860781438202189964968367185227919556531119546886852351669519720931573916077331711998192049161696421462326734758843248521518977113821127745372314086691225922990229399972864727696486604385830742402825316619993536322849678729228626637491265535855791823584376433304010019032143781056692895524055977557888861081230284612958083839530922609453557560465769501305087165932767729480856483692434792667998909023069257439622094721434941927681103196445946635097032542166440754656596745626381906615010623711310499519171061740304793340544953549051155106123986265278898697961392616515096422121415210717592127567771539300791935109844143249168790045020734144102519456689504743632756883751316933619825731439966103828469335510922177953867806738371971161413822470307491537150285505304340115393914284867976470685117948235491450966016689609134824545604969104212724035536988888903811358170741169581530908728059594978526837483605350342566582095075580684810005569311419400029942193151395016569797035832141444482042613377018526505177866928722572669954349306672965773860401015058813023252059968390061013352690944608667540407456408384555640793421166504028394091380588702330660820108566964880450383440433119473590036667991350819635130811448899388507242902438500477148029635428218417645342819452513059343171099237415429993400824006287458990986907718606638362244763098967704727722613257260882531925294366337565619951335304456205107265536609514878127848426072523780699347381110724309225589234723286428423857838788972226295886804219788154665068235706770139811381901359784845352780684578373231787506931159468517441875553959102347148946662171192922391078567598476041424691405736073169272595238160004844981271199914528404697855610227446815505589882825812048734233340201053032309886521390463982881093549498949841590243348284780832158785114000381105449513731823954401203951012275571620694786975575403538979575064379984689937662868498118488593598835955545106217471178437271081818546793145489204058220626527177782343486980266254687428037774343116838375958407857615513711014818534140389697778835637329720998739956975586189876398829747713425688622179378332951036228057540731355252870425013801980896853713064167794679151199444791577286800960832810757819447450751604754305879559688973987256797923357812033337377934699928759348376960478915715789664847755768374302178848372489110689249567644115405349514689495685804362245852842281820495103744008885720565241742439878646312413309062079456503677821207330424201455757301174135416973790481720047255794608890056437347364748246812446350037005303483937143214757924210581579689041090491997452425351277816350840455749879020585455835235222838172546367561852150695035952478334162062351025557694732434295298982781456221408603142314033420016051104587243283025599165666801576987652585964939850616001088473699417137326116499426607093440694964033951684186759908758155004401386293385335429027368486495245987345171925571806963553968506244706245149736141945493191994396644875308291289796369592448419068725821405999281667951197185925538502177928379787625563922621932944101028193959390655271185571169954169449014950116761387318991700369443315713357963154391006981270823968676792378108289261856461291858867999010888925307285754093024176306447940688667474217624504298300072396483054527558782741173335472240518125051535742694844379126449573003198699453408085349428973991618539364174541404874405796829107648878553515185393756308022751004113570250734410916406379503662129120718851567481473465304261988917899030186602547146341505152661692668043357242003775280619726171338123641419993891409223168396152247368990988649446647358362946129418162447981967418173541503283220191624351124426030142779840298909439760627164077765451670146658785502838027563022890837572333260772395344794187855660900544057528100662106893735202624163416743661189146192162589604553889696694344240542000408658394048056525149455767632710369653101898632982234678286111468405587072977015895002808397822639937604965022531517151760805172637886097553461437667758014866076319433387930301864699746102529295653750967520412873538870364569998399491212007831360785375752573511542519567273744631814804762034483508396248859585477262252343958646757624372641356097101922041753960744978253164721657573223780460963729119606541272499461811647475327558554947194670257486174244981508967922865920691301713824515996823477518811454863994030479595635661721068187012591004964732798417497890138304139079413229078512302848118361483744081215747982416194720786544538867855737812294526208123395974139531422867188557241290489101311167342353757024731262123200989240621061146749606999182605398071250632160496472352635790437896566617361822898887479734667026164168956936312442057521888307659998345058193205241453303851829414079065197716795976559936522051928583644628813328146430448807592341556979960794616820699928865334288335085565542228161786800719538630728319525948230606110548009654860947025312678812262022934402235734849339619356782858152016263030441888144997047483470280285268356346784651040086437833289778518742378910825180783728078805204111599555450679114006740993916522387092630803548080156607179751552187782640580475110168057405888063371996027351255855961829558460556787234757142671083179441699301666077377420628803568946098553021125730663486962114013805493699495090117228470662142151888237934312790725444975454963189545500254710112782055226151847152417281968827670148322464191833819338781443530365006838561896220839908002380121651651848909980719617467858548070268012845305628135458520032905727612353959697933522718013132977824747106003338702620343895342125777557759397778393616559945528458285077256734969008852716879123879124742319088092270531897635431033572406039679466168593148752712403985034715262056771321821636042060645597515051489689269164803090127558756772300134332156658865221726986889271710386784260644435269234560976321762518679064569718992779896521658342199051658002160389620332088537887354160099896143246274482907374228917779813383928689503275224017515206142766629241083610794177687139144368898291039905324116967830632504802509628725210988180981203353314655100896414911242080797631110490781236361762412258899345546806137513985228302876897634407952341551124677516508284622673438974688177215908840046026181098071453793654743941065830111441483598816289529974917513031485011004617203884269823568011230498243420844762242140338981877231131299245147186894684839313392506752678242226037749383171594934594342714149173640300723406138623780400950338646389733081705445436647001138670907570010428565523817591296932314223572096964004648594183512167075452849676683884597946326151570512973316974664261627047764840321917210813705123460586146021231440635568853593483950507518681330125181833628346093924324970085937713068104248312406030244037872831893180907545345101121038172785004910686666123344500998553593231038456846247753080988570897551370309468006947944387276318009819663635916220304288201121309755210680972878279513334755419354828727732696789303200963067513066743769247055813683679472637741864375488727437655754777618019325398416247982222773085143401351432903326956081186210037068071289123812972316053740676622200890137698942569203195417671098407166038482776481590591568321462947039305926594504418676804373194898160275174236134470661522965463059830319305960132711136060261186628820804064744929269039111952969114137311273503916186957647688325931002979973767880910777317988843565360435799316213012231338293734475201675297312819956209570456851954667614046014372622055334185817088186457136660350657012357814299642322708421264717991611690402631215556322940815862800335396021173208290905255152626877110583401806934915140884107205269109086051690447737576728147999624437232457721176633971928120363322607113570790761429399163748276895668905292302673984461503205483622934218971752105311781033377441246626542172614986128657708562307846495989266932146325643380065663118245511780720224014021161883561763748971925265501496091700181650564564040472191260115700481630055383256729989224130172278205914557446250887120025267858648121747519793487144342192001377057413914068927276170914259604274808499767926705791239802409003955793263291066226076162238388414506612964984470893693332187839974488203034996596281966001856260423928464800355865994410329047432941154771204114355461420911504109879840667880039454433258820306183429928945606006001081464586206443372434452765698806629795658152463043535981881590930764533811927914823590682078313459734914444080446524294441058398271478068071083407990635797063877402964803589061708919907279430973136776503273545580804743496773380261132211970929397448197564877887884510712785404963753678872607764085018925865865833160680071986161655526292857942168175695309856374827182000498896186967411956177887507635954437392053913939002410963052039296301686330666374771405256565858241436894608912399297355263975452629035967103257716557138264438319724590429842967789116804726730515683389334574592198521272208539173260942457566151286075175477596054154240014888699977359027156846609552008456335138944657514889892513235309710456754646742847912930565595534085833910969257520115869747659171372010503726286496506766277449223485141918839991596079340012791909662922318491053322076874425444017194132568920653959979274023824577771075992937205061073619971008705850739689472630996932036540564643047887158802673428404976419670593151878039610240361036952771308187484354770515541254367724376150763622346831825434653089375572551129155679181086924823791465181888268555471027951848779430759735799289643055869258735798111116159835131353177822209474739953286030569504116320488568340525314943180665046358593416614062932335454583619734685327486131378501092532627098784209211209261390523497063746820595935660220796364674219990537266559607969362421701493572726389645119254478297134356068781939317992243471426475740442395672032434524529267449724464019607811899772763877503572501624810341599789210104162880651743067474938233194420685216426259293205611830089787696816654667569433763377988035715075509572749750043745226612770985565094447629060297958824355889659645534651867779573818915342409782476022629883079584018740757946652050530100127008193087656308561519903368458130561865705826590941241064329376640604488454045277106598870789800585451362728541847146653953268203692310314650277383224085286330214479592620205752283791400462107967957657159268184940997393883848806880792808859942385293928578302418522029237629914674393224469792220744574727340683367194512611165852780401651844341733086238039309603903153491109909358227315831755191194276997262624537536443385723703760588234748174597625780458503975206386392733731314768943217913434417076896304722771020820054283881766705830470995672289437545928897275251856471330403072952501195456687784391517677289002169946680966462076513864384390873468569509028614482460376430762497688360041859620560713242925410288689516817226909025066637930763380993176969263714198313384792631361454881716970660872424969616472512215121373717032386626007871843308672658472266543080268351839918582880202958859409754365010694628553585120624418296772515015973019047459304109955424099858639764251069022313334631092008769932454299933739092483470385704071802189430163994429034628534252213233931342597727758234139788338296034552524274020535638754929127659308474877492321053351293855426105274599942024747852127184231306835429664331578747657982142041874676285979434009024183532953072219988307377636936452941547171991411042066991234041431787318406567050309479866192010146943071336209604204819607611984996896740023998102299751973771895470207933515104528322037101285133106129487417128978260367924965063932324430903968439597865642650629298883570553481738361181612057574275913788136647372686456389803925809964430676870476065204062429065018511320235844455095177836433709550138728255158790579310886447696191478140871403658808597651486215424424448666483918247298456005431394784295115780318997055025659911552444636509602807006767466447524654296727602706656999270455462632290636616192190450222163664305321693874704772699372815479432620853351041031318750205943322600521975096123857046756927590674568701830440209597658565863236540482680759226358525986103986777277506663188005173599618495714506136465159700328260484400730968942603992117579455779068386489836736784282933616615981462314789061748623860037410017727180289041845375043348282812139989171649780483754638575995726216513813927487315462868157316450076443192457930762499615192691262699387979338155124022680592055446444864518942688738138981159186973173534904729258276849819552759818564293282995554313496647044742411327046588948617564638389337474524779292691451089290818137776585122599614668319318901460466571057899006063790598838513479256241059538415618653431891412271927767502355518918779116832530968160192476149920280053019308571125658686883549344753319955369026718718952052303859185617876490871729714674447848746274742704416638074698602932246394324556899446810787253887839329400728556184882704626240034526015186241979196847872087546501184465237016607072913502992156270953442532409997851705885035476287176110881651225115781008726023722913436658088027544930930340720447814281297651033824840440483466213980446877025712659801408908574828876308538610400053895898786823716853548573174317520035741499385743568574492630903842253043809173777730741673514413379002368797275119786241583335271448087682007952253721947376063047841281739145365978830967997192998355945777018361920755790311570340747266138366577068085603683077744109008512149621563311080796520174321417841537295643454358784863632593831520380607008616658447136478113457394039661152650192757027088621174742884429313544641451198810259963569433627285736561627539283146272856812098716495107250240851762995446315167242940690117636144869109449026812059232047425339810015449241984187049072255708215497995430111582437499168705044717014939848691523956856194350232091006633241534805938822649230187124207014935321773644514376413725860827341341895025811002052423839354336229067258780154933570591026152198476496890523744625903446806403662023409912100139350049221425646102979446469850143949161504748134307397407151518072700077205668959862176321485313124136702147840084091526555826448216500307315615474549575258812769863479028630011583847189568646327548059381063915071301561398871480352012890642288730543281168394445779445112968215237376768898626875125012709703221819079546112341145701337974272586491716835285421211036048238764477919339310712417780567425787260121905602567076349804900290839563183171818525622015264877235250298142265680286034355799374234194371133859409578194934916920309903504010048557236584892949682713809030842446133497761887449611191514015212103231883096954075796567037740033530621896522970203074965524253442486510432953986870695499569430261469928507048737947143415625265030345580743446275727183766485554619373644777588984316975590100737625724811605313300866216024023180972558217651839783444639554336674886410211673347119540101402292765598711089440597637942889429815730538408073618590963106919489686866096393837265868356109132308196454420527888214952462075295150517502043453465222946984767764114073317154374036044751980474930726702521091329145770393591447665974172644137935801668588341119633095923573425351705017059676665653022697899948713774968965621319800185139628242962884314581031402616408812226114356609655502824354296433461843877876852994179485951242599391572149357247978197641712003386937781162276442531731644174471712121113262404029341619192465805541638850906140894340706847643378482555724264418730256817225104862921992660717444915848941883755727765812761280657292938549514511737951620548579853813412537215421470155375605536192299426705914132254363088764539599956647075474820045143888542709926040641122941380569234960184532555375605539914709585752397832931716484259779406342627810582629721614035945351754768572486026305661344458556282928302611502671092545325301372470955263132019050960645423305462648371327981997017532084339898853735744282804029732957848173988828404978015435719570027798496145080916324930321003321541970254905745792473543048989130394970803779435082194018990125199442838351987278854902067752032985357486059687125418847569057564576548186518169657988306260361890587365130633398403336009477395804804190629254441317567090738920978926561221150034638172747785977323846770322937391040522082901533912023538310063038022863907174321769973730728735895405052130069894085598925689671727595863259017565234563596388987730487299172864333141699425179094291049367168254604613599021636047112362679179627631597159715820085770455245495668765089401410419115648128094463986950605064959847077201702766705180277794521078691827929927538429782997774905920991204666938770016942338971681961973744723923928050481686923150435849015354254890886144887430753382636836066881667597113056365740571048697644729478095815364078495114741497355183547271223089476290608441836260859079532676892604551996269102480290665482510857635750538281470494721863202643702497086852839068620311406895929762708476027622179937741706816606797588234117685434335531027709630752290617276236393369874383448189470251523490075298273851710148142209127306739450282478753003262889428266804788544662726890379177480636030017485848310377285714867977648328560899518597117589684249859196669795534128103296685327495895356711469604465213643996356037367905696873523735810839223992634590571493972779837720694051152050976807864762054031132588274116537711135882108626992596698517921566805135449958082320746265875051500766453341210633154831347190526312000116541861935516786149391979185369729982772467902511894830200001359266190987938609451759374729956884358225038346090767488314329025860185297984783975063353514036187961030248359957426357353659519513085798528518602115303806590816567255384075903285949813247790693583593408621749122916276072701967196635874926810199412154511289870480635731160832229391088370614704376479299229849580070625590717996755458683452613070676047728880787217231882424439114693104080462745812704740060387325474222084939257703345667059556967419802143177537446892833555693578539740934940323651021955986147831454497954261043970393412449375969211152426433440436838981627604756751680079120762449711091104159814135852095823705191871163503303694401266627147669706628019568189538742748480302142794329295450384652087895022473219382712782338277515522106413403139110084609803349686652243591599184073433635162024964820459798652281943785092943761363114216687938849014378964775640779061071204510333293334499291954453986635877820523185151861253847293913869059952287906457633251971972393554085377119182430660213612473493056712793011892266877502383292612007858380780325611092709568417256252520033215023457164880966885138149201831825698555432323365503015505194394745256690891553793033755272311362683382121324421581261560502479519241276716828290503347883248676309302097310816623521844758168585046305923982423620643259603824221215606747899138730408930127144368074150263688749090000422902885326421610272178767930095829437468306443306793458404500537829662625931757689887599439346113174693066516756728091937019321910763574529673325921560161909307906170737902224851700479180193567505573392213605733070241582681589216879075268388393968208481913460342869221298802642625051473548722245984004061263116697849000964120173175685421142285989335493095581652870010088042947667993149539828635202799831957343461832601375473400018558475470188221390386874674103726003392207665010833445272134029942041020366795149209747645125020703275555329770790859508438125641144048222375241296467375798756177197282250159194561209878765815037176237059114140781185137356364014816275340150655740865582103050988511927185804660037226786812543439331566281490305315149164622166597782087234018503193400906251152565233753698820428060963476266027626257362715025521632311320305202381297700732315904726646080774175514823735588413999568293561818251388250639281205716243984097093949035285299176497278206712879671705638224318090647414253326063075975702187293120632577972851723966228267759018250663650125052828197095281392452221744236697224928346504302336093626181747135073918545769172690327899577546922365199256295481943529513125370684063154151274382720737522199316763233865647812074652622528048100207710988093713628831012015104134783489251824815983218351951009928312406692878066121532112962125429422771929451165954890806146243000987103426709007123648719147490120723443201402085428792124804977716041038942984363943918010372948705238466825619384215738389897927749235275158408845381843510967444319517267235850973584452036907843660457351396090985135668217937630598060162793661428346169780452187648469336477606290353947477825639822258680114871793571248872816887016729967217182494159628933980136588710670009677031946460996614505201573703654172440710106278688312193081532705781300449765273687460574361431387259966408536120018652351945304319645897401725787425243091316344142436519452546255314089886699223788518872318197712807107048810918131529185750944847387046672953518891692038979929596426675423029606118890835349088501248796730782043973538954951605645284641445573952304917011811131544791661047987310029004383819540795861278655884072473545207125667559271484634325193362858770340414330186941996241954359889539994158162686834485074646062240378701095151071103889729665939007621812686572019597820936986837785975426834572144557581894732322121718873524831656788830620490136880945028043493977302308081317868804906401399757522351071053030430707918784466146608747767754582492488629462782251842964259974731372630189936485181200634202247735515440497692547362807219320191489107037022146831997993942991521771981439858287875680029877400329062999658766431433786066669488853358863596099906022061363027756476454764113202116858377038608125346420051222009623587081637024173224004019794183628801248898319861189150974585898449740023015683424960503343526192170026101386071704524794851619378228683145153052857992289997875124684415142115493310433622943916608136475748732639526221459276906303848693440297335749693766124142083391642936812864258405836990150058078622582906465769188888676944952781671801868210792410565919232248481287055590115351260135855845758697042414268266230680734434324788599987193534349875390125166017638194343824634578042494296718234980937684797340741333263441611269448356837972334103403101540555556281190669894451345990381597386681687852940309141027065509856455267908445628209993292275653055702629673279942626384431825335552132651048761262071662586626432580389269490771350310298063665291083180215404095497104566381296831150170511779387602796601811633927137481020137872389711314047125579704555714291140697781032641175015678051584447779543787761239384117647690475875036543656210687027713279865737795533914422485134444961823683918434368926929591344639747270641660326956197007340824129548893480067512449802332945771464899024225758835124708055320138831238314149359818796617257024799354548486979957790384365572481270460198161504151616605602739186484145661950216474884866345162711284092517597142284297084423534491499135312244367351585950052089428129327436469701908386314849708843087143187692521951041781463423863004262944099149149774027604884199273860584022248173319628826314397761199234832271813995024918967490325942351377925369957635804234425076671085861197293333361539056677620751093767967958072023826220363509109387074703578461714983428473601626399018634600799583396227588228002822280676826381039136519591546349080546149511572739429766359514291216285208880089250761366105791314583738540129971825909850631554686800297105926990192822525561422935278298913672174752623907482360278103408299608514177201851519718675107469034859440553843960711712347839385606639146232502932653056884833630867278330559415254481334257067832822750696914220820529388994201570629513029513657632021557828802674639117285686878368703608141556512035778583616676769741369827122841002747522943260779275233125344760203996013807365060926019476208164138009856128970494911177733204197947956926791156690396715746081713352490465833530581977861209721341916547654738846706388944156259588124178326911795144771719085915751494273631495265522591173680720165154704681865385715840634112974281916862820910510895063441868882499893783146622980379391648957558195861895466228026442381435527504361051766570048267061888855015550369504306154240033101176457521282342099707112034511305383612385227135641043301059469391555790362733248433105673674954235861831348068564414678540089321850809995092119070011893052648392370912598583115695494736915394973193758532985619493847380240403862393994270129126937392798399558135927709759404402329811347703723246328782436961260613522481677122191128790880385992096678237995276596682813855556536385728043335117523608953630169037901674955464288771998909414530640673563148711884789290336190162595409850977097791293338864695603020337250289559515740398547815020647333929392685170576991178827441918869379563515342535842723885092053828638785316623277046839286249412125312269910291235761716434559271263614799959222523792668432591210102535449917306990854067823234247515564977054466501923932043600953628226400095993567969087973768682901854823206499172776561380963801536252357964611120903790353158448639013530301208619879771933325512460749238333718714343822949650700206231526268138578154584839987973700528660037225900461407156680160340494689547092870751678485746680056810582461093719772534142481587808060778728722897791394752973866839680426313986310650626531029350327243037466819790719235088109913980797156378932256084697492633464041803657036526860339836575863919709124885619235338006614240237908090034473818815832242804070978059384478455360693231093499886978639728220664392068958245569085014379090968579257278866319308626240607484625854382163488109021296370344886578250344682899983350546338484291776707818531891927555548144112423787482477840921463782326542166883490244633719670039306354811336918406013312961778851065219824396096532297359749964982080635654353751159345953071474789350975635285213815393463994436082690837946639088254348925966451424409827701589651820162002491723443879773153329018855542128827260911281013574370188811663452695072092200891406125696915349098953476597608438602419624827132643574007179915243223619557223116215823668439594632455201513704252950104757006377905505126591552062648930404272707335195680684145776290819110946518323926878819407648712677706357648287633824701491200628757467084690853520651870021987435235288024680970675692750739249804170421070799839167830212385011128767300923009435209380622795338062350360596992810086987303641612727197371831731479825940800645324784382481193185078677149640609890424348637407891941484634195179728779557492718557361279466766089144957588533949061618714670122349965987318614822178126127965773145284331221739855746542624655387978242802243775720307287557143879950833907801487739780063222392454406055114404984186192354403147195457030311736069155232713855080574478239786669456288622391133384901034945947372289694073064387868477118921752792324040951123172452431085145195819454480601447736006157396582877697662155328991959845750885927502179786534430740990475561231888545244693158206348651133419455702729613073409130348201641160216156245109493469160258026656232795312061790359354424640278433844039580960096384505847601509320286033112752633547300292236593444995295915460446952018055215094100298628047551018934304714071921832946754780356315122351460485007358055462556092152844594068350450658422655525134654252484066423741244266500616184649753983243362838615881313834414464170213376124765247834778962500961960155279268364922797021830489338662280479887711112151725642959701874171386824324915328320221862422078628665816764799160545605378938547096033976234760440414795950036705365108160185573986415372086764890067962398276752418695260531538659161710851917079864240161728982607039065572289038812530376068332642698517746435054082009072600766859452350552356601476220526426880465851898538147196657756744019445639294248213359046748603629515683931320233014682678827154857801482794229783458859188538315846758591717305541637391413241165327810218643974691822664068645420147840293710807921263948943977648821657794438425090334360564594890834254919282348678401150671361969883831500360896053223106134169743659655456183446308916542750893034423051401380990579353582675125708761262160856282062412972097940953550843343414916138220829960919366136508067906313795270797779802854940333973119176479823439837893648411029337903272560196995660498180031589767804858717531876955203177252121148122302624714013441709906194851128313561728649502630643589871946983972229935208423750082591867456607487686177352212186988898153643639066349210538802653388074133957961024549223455476208303357425851205088897602649308891180678753714182618634424491583232359304012734788503386744212919677012955346822210990014157834664559114968336438879044332084895419597269927029148821885753414748746521379333930657381461168393957478862414162487560328627200598245332562636352345644943341860325162154215139055580873555559794327145583682406416667849694001404396979879567694604569083403854375946736845093849409087961771894804774016395646177271087733746080550953849509527041924262388732503244203765698763158914667080383387852412121100659033306448539103651410393921277565098508256610278630328274054984880653377837347052879150544966413367956178540415352628091953723420377649087029324405350755010430396209183651254015425566555840707965518336925054828107241476912779185598090760054616202468156664438049380169551138892421016257290662839619794436802688340582336294438460298053608089255478800668857832931190097353061105000478085238166924885032509897797871016733922797011191630895669715495196268199884143949193913516200626768583651112269808538283132861331796529076137306947604888377801002031146155403447919534892612857244428229968120235180093174822619392847428624241955495366686767411210002999799272239088885085110062978912179621922534061038196770433565385545380223608376271104542342633443510457313782789337413389624749026466750584828763091206894914700840726962111157352298775302320242946521306864446281232035053091110149553775991295609592591377692925526194754108730814014060856341700914652734926499250293865154307791802992030058520493152750673684216306525909940826835599264335664690067673164048511788798865623608762290473529198639890201408092050443119045472242411311097792103529843568901474046394777695763179686841322403772632375188392062016823200750110191553498938489709345001221283288762971067290490158585323171319381547763718724654671268065857318023291403008421625099032409245937864559426059772822507146353136178889228864140957355269618371351924388819077311268316794762615376337867370334528090310750424628666942078809010835900110844433035128137322224114115580167909529341853257603666557084719486118273196023500379597614810473946629387444000234428163795039716860334396643776767687906903837536242954041410983515258615866112725377535812884193145585176962688175968702911318201461118641372513149185408822917887195709975839368663020301398756246973059173096099230068305797014535387313553272369723535041664372609458812249623025914545396188149398061926890663441107320373995711213311707677815658535584647273821660007742391973954859531238078954973084710597300262199050025923411689894366392798905248805447276107873228933244267228168830526256772444995809790960101465202126027711459247886360902555252152037302628169547663179959463653726205122760919671829378410067999140752991227083778699404445234173652095749335562877151255995525073353807420621473852437741130471578944311959408980121482163761020624124169170981407319978033845166886300822090795749122102877271113309306589036783092062232060674363960767493919189509101544010023774163157426269614207556231586305114891509956718494158929215122473371819423390708489971773817631628799777551749495648047150874733439647582884825801443047717656663498978564091785482883857722594294006622678029538540257691408489769307023337555057782078995917916354813091738582558358467883737773938424877911766239500067939027603853435479314847783679190977444413482812785046114318854519603981273911958158777531395059819437004741569363532082334052991009762595927036209185499239690363521922705806211778285342691223471436045529122925586276416227671706059567662074606469432232809273214265277389263502194700319938304262809131172240321726134621168545347643285045051055587841902054688264800747926901765746449048104436588935779852424000971772029362517610608396676160816441142249026701114735706847681169960504358333164169955579096528473219641965758660049594450270226175646929259390350986347887753742697588194103049317838617166305705291447801359911041782158157220882324475069790130092351033631941281142325881270007133073043993398341571440739704165888372036409429952389226220208164662582245197118550243072753214595924080043256953438789460570087658239257270338761600893694024615503036312123557772851971025077509556158545271164174289483458956351247664648036995909162568344011197874220263723774625256075184646032951781433998495829544929770256727317959864686835521249909096691209976354906611738963873465282610006719924105031726441419329381428740381295184659336724385027147093368426416483211788863426419353792186415662218231782836777926896270081110206724453110189970176843883922233353160909292020028409730267966384355170849556093033660411809021587399049753574006563424405456868456737445455818621797904720430427766210249370551348625968253565269763764327038635692060991628381566573044563355986795069464811231817214355459784947356175161711582691733284088491823865672211558691395088225104042423260786796869802443820682344554007881225103429490895675693361656464633132868797173316478272934613158549841603355529099836068356782022168639997463683382656871611172569362830750190658580788666843509606972753037649512897914599413886070787918449605338213791988099384116036301271112449615208482183648508542006957013040032463699961148335876163757026710802204617359240994915926330990689203795072834257934984444402742292633338847391904257213765452790149344774070512387920119373524416775804393493305289265343335881003602846575027860390277339821422390225140615759319270190739991077475874953003592778669509696031173635585612563923400258680296930874306798001629488193870916231400667657768892667795508157871561357986976550311550359970132968902675536201976355230990295812791942602562707511042724906239462494245466254687195844931440542739947112650679851796629845826438911875506401409977862021918884990305874170189818554079394150204123737284515742864151095880930600039446497346325649496949167345121144391655359176731703467539297215608266210622575410787549882018641091833706006497405737696003545079478369338453126676518028592220114275780146412449634439721889842308958249689115335955561420761155587932186682198801108863902064905102311903194520173353728421841809690170429907426823626783681390294885774077618789217931367174938379241511123630868958038912609068573919528787917898637102995498235077670641787489681662055424388333070814269338083629008771772341338325057179296108127177739573253942262326801060534936137277536706308211413844432474401772559861280542348264868631336314596527512920765770448863157207195056553034384726421538492218385849083054438107057839964656390672810807655283856668986009656896405814220968554355324086126988566463049045179824445645223716627757519648063529601260601740688808958295923461519818934857356078911069603835731091429720139259133226960968374898624654730276823222687928137676913036133872238827567107304139559230281742679136535982221400760783882456964048860632931861055099731348764340820484224228054884242651376811453422113317983463770470553398734906210937561060804042446898527567071285774666918764805040627025036668727699780681834929783711536228727049842467897732016522573310071462700042742233171940473321167291728409315262723162394147957851605120638984498789871130667068261724006330346168718108182293511498447214134623994691250627101463538939894597692345599025170002342478079475834208560750990592914710205995036078833970373680691585488023765087428903400917088901439162212705637406303848775184994585902971492491757180665124634434419386102143093707707457495695335598773393384065376412886605282047638381915550505103443331223180448161220932431314221548470784544071916681526009219592444789943454265923592772356840804150735550534992148587667937681651394984710286709045496902730671134080250838689320679529365801527181382355868914330720558259160224059068468917661359262087513015061291339554000929696125935592810462973700012397047872201640874328251232396554278634383005554052207249539345953806095880932041518284425875296564354918600205845981703610956054475190924026472826256116835831540169984294845212449144338194253565527814825863743121038324649687058051814021407724330974890144024556035749632429446301068205260281496134557471478570710669394017977591614138297262449637691260836340627832016132981739191795963729044078426250065398072493267548865031784030657708440690896241778903294334780267282042847470762309222352933141320644370927842831322244730408619005881031117844769778080593380019108850046877356371577194413742116721095636965131867416320292273271254033436707187030170402593940135470228924659106955653362844105652636637836008933292349466186451471618722398967662240977135871661796747501062769659990457785814698296913514545974695233578704316564403869020960529173857672537192280089795621924215682367615019489714091131120281615104493616251185851564011312542648349191038861998354801585756266215657252346155108264390747359022871439608190944449836200985601045549292992691563783414540591388757528892473228990775550878298162365987178514260184713316632446330256132551281340412950431691415074965535972802364812076624763137018716606543509435267803314770252330635145605840167056081813604597339748086112664374517106368037803743002354202083866766709553795877077382484490109897585517978962236665085599042917069434593685315491695306828449369332302080049164775059609811380878156428669707857470983195547350979748994177646045507196197713285620401222691960197278006284264102855947835618630893469887387643421169677394247886803147859513090988962826701812090016804436679442101768048946270312912252016030265951667783693819763891373957068785566592073104411908259833795497937379896796570886572300119841062151758507668663881528576252841668569704925525632466866341367811215522988960423205269312062994840125223200499135166358731414718512796285613453092329501404695596747962585946264408887773678735116729844199687655225557596835092157294024362076158760563630304430447252271537122942074560850256759878390034424339701940625904050797959795300952326748539463771455981156308638246957426132588864949602009801895929866066448808284705235312616212459700100211215331879845554219734705805005428691634045022168630564202148492548341530130526898660866357899614019424169033027012180392800727961942871616390591982327601073556359472875998510719016425173740587643920603679245790038720580468911443340952467460627060299433757282779321673438761472718461627382349098679548056693834588584707174856006310201597168075499083959988916976689249075107516051213996280564920175795514107945042859244761728752165097044920271318454994084817461220323661321457701858946498265916094870023298483341855256525461888111509891124370438970946317809618926196135808376207028826967673781239887899851144406131842868799628857716272435492980295622881115280841730658981439590606308979629223115317703112064942368621683422898449375581386213735008013975288950642902308146323826344905235285001835347951877046048793184828923819271730286625367207185560484368146495056422703464620412639706975911158301318491014140705432269461112003287874241582591535575497328292997176274299924491497055643312314316586151549604898744827012856093594107676645249545673743072504475016897902129257737885041962851252963662628797152462043491606459599470050898111493252379512630152507361892085231271857034832061518963592670776151640897250812394376306236371733828356811963001633660410821683607138964317115890840864472218657107744071784648563943609684396127564652047276880993999425931443907565861173115414380821975064225000131157253928728044025392236786662979026745479185272075085830661576182446225591860228676074902275259057217557404651441116336474673913587315644040881306507043217272169320818987063073316728587412770422403367700866546501791418177658827822015249196283428161439825386746539053319765714186830474264783902936634067147731075079438678720738088788506828810748601321292049072062125992090822628627242510262527480004279405715049860507493765654065190478571420123468700414648308936841763886627994091819708815358837922393701172484982574084900660355344182168282856354683225013940628279270174223112555301833506481869356534806659028496132838817381789175298153877615757364096788331267728365729377420951606827695140764881613238048556352995989657852389177754184170713453207549480098315740650112489497039406030554760809537791354968683247199563214766844039586919577744687033635286645442813226239128770363654119824665550929566128423512065520707130913923383316363913410508263314078302164305192785919883685183641390021457126171028727572261355403406050932946877251568033664204430250213234336162405601885608564452832081919587975176756113371697756627056380946567692755361024712723961063785199882365207434213787301389211126823921408836901809741804502286436448926950248394009876566749302196266338918093359057914992695803013074628484137166951697678356724431880394988838693857441040639068640306305423851348636373048314502046560742000122310039391923027749108178355926134610961926017083088643529509782046982042577347385197615517527332656706681640789405189495716039561674987123785628338653854322061168937472074737403740911445125432355311186068784877099767223305535375313169265359719317997157574139574456495093736367985286760412777213894062573429434717535787229339546759460291082721305268893884083145669506802620359094412358317191793418016700427007724679735699658486271340488845731484479270029184933343384072319058525277235066368911548492983203871073028370225521487631951851625973644785212382100791621945800450354955767641296038529767217605915220421524359930421006900257162084326999497852733540776469267273681947284908800386845856047546036634009025751703165531996361584224706800600179755907038485140235718084511062199345807651004171810767345393403038053813269785145555039069249413754940785399394637721261723148801714043153621672179604177118280839333714483842570714952444287045704862962676557963211669274161201459583699122487421123199239946792442747696677060472256651384341404588902205386314275427864359361459799838121677194337223749423513047356857434577010965451133654003675420715778720624758510313631497664057377145243597856373828150174016935769358166681232950605572541963745817642456163887092803841867041615237798467471180682993257773023161536190747219089429482542093556594674692220044633615855738379422115901194304999648566847246513382310270138857826390308545398112675280613731458239150721643375924901452983838756701322615945014402232915612005836569614895968630853718581463486400791073896370762722785120357376802951194431419962578921372209560323831352479573639324529271944248924353332374170665459691460305436449764493194752964516422215164570865054308735521261335221696587965935018190022728662580922034679040514299974286692944174326360212843752258937996368866430763893263441103969436381895484113976634838970719763324378915358574371950732501658186930803426709542403635989450059578994956882458493744086230156797850796014806135749988375469082539365912162456120834639999635211624624599254993551407996151092765898246456039118401447055959948558395679020743530783385556649560901601728369509676220905787498800667783220515115587818245934194735637383302564968421272721783684175941122694120384370108066109387918524626647889386792256648196571831476069874264351354447050610807750818441338012727175882473156597056499419733390786142784344403981008616759172129008340026739246217973725835571312448426981053438707806611625552056211620724065982709340154134936676519934230771191959453283240046569561111708361355332906469692589447439533322810503854736858600067485901204943998291756931698374041646825144382705263198322037806762411980145968858373866082718664532184156925517461684349337849872655191209597366460976691349019106692362772790868992750378925683815098341830015756963460721689085242717220234550824619467301707803635683135448023459045425888650948192409698483660933793389844408443608761604958529746342403546663846535510961244253689156908853179628008313622058532041777394758204860229036685397724050628841405684391171810003935084892597970608789069401479235517005826556423459241845895425042594407546172349501635780301752946218153132211744653910581337666086751230504396888553650980338496153177408496250266622532413405227760986641436068621504762433701462414293345985620981875477155563156583736449786231754197491137073700491283237276388126285839628138515056053211265517922882121428276842016902425936040541236614851546468234134724311153760903630988433851104228066755507355708698851645010607477539112059397583330825004553790451739216705499188699596443688202638294995313914423007535961605932026980589000654580435303675999787337453197005133115174032016223612484773288454103652630131854170905228221289609684092873464025400801894272439397778995329185722207514013087239538749116236024047044481827758777335961627294033993424942682090016010969273952925293329150631536359070993715399409419363621913780717453031765885580516402629241714958358555280087418496119518498033896763021953746499194325788555442194204619139543465245314775734920479090872705125077041247609065875063286357907859300028132554219885363954387215576510956626583951847232399742727755533787435842325899927451925463672857849791181293147647216714081740026312149164453742304896676440875577225111901190758921656839018534528639511109310873696353453004535630480197335008958095098973005153719887835183221885149112062515296883054051635430764450402740194849183066821474659924314246697924753310274735437967491919478047380706402843184081190471045246887487977625343587955025801583674771649690597373641527773096715208037876065893419042949848369132959715967585724583482289124869914108281198917883338616989108176231023520731120410402361855591008575074058272781006897257147224752007929260817870561655751026106191027733561026838831508440751518352099518079025171928439171650957783507869412710666010176453802375961026388727471654067838312084051602589034482709779542470661817723063772408399859084347513997903548112575730682533615287620117457819566804872278686649106534366034948009203462561228808975511385650241730254133620788291385540231258664906303920622199435879918212676651031842612438555068083389132204496643166257019675748111191249387365869842300494424612450655030011471162229950017710896860856157976917855143543264497453265061600950483734160522837885430775152109442465591163937369846444436527413081097731418036850605604194703576715848562290153294441451454486380351028397617058962827149731237074612983257511960181323469876105736116521216172608743051208424789757046613538278621369260573278203193603131556782423346707269902832946694162408418396158513770510109951836851575307493373996654029161565989752502242636834511403930923576126369326175253485276959385433656066500127701733256011830623342071746919600268076127338437156931589997509816059839309129924989067392464420966705288254854275831111003733645222427478358612467696419137606265230987599538234203269779232228924956493703257331297700660287874172996076806121054976557476320826714374874523570383743044701743186328666189265408904807563330002504009738338064795154949150104662526830397963439322380985331879343263904171469266552526907898171205570284663159212848503941481093713941369528366652340258595763367927986262908509425392039241462527367119698314450679943017242578964333451652821970028812082124684207925047927132930145713212799727771703744946086012407352258218686450654513171968132157266076259093632123065144429797956487093271280014220679901085759303622560518507058363224096675247407538495137160672291285299223052090829522133946717948558993756939127016978980368417914979609489916811123451764275863860573080585836613167959420847536062335832353891179125064594446421627447461802882098573873237907082773825538949248159002926066879540933126377643096401579325393300563053667104037614923645722537016354362522925422950347283150779741173021863240539062067245162751019300777806711539719534330878204083555356781014239936980049498128911806544640930813787597669907382220405126057262099652901707121757091171541132752423106359756287684179859107213674462839796899961833172660734480447572707647961291823531127610185919573508960558587764718121120291980637471558234878968917557322580797035658896133736158801235669007558982311374753195237873872870267043236203141939086753827434578096784354224377244141264889646357198239991491377516307451820309040720105051077629333241307402150337104159306914677040183120356775918139262425936457421223975233709252003489561263102393298258771112395370700761188427585062898926585696264322526427169599878706508188217483764317968621892586683386875953445874898611807380816213022009395856227704850641419073672610474367999329699891125989141689375864733678781055455783286205109718009587762672189715150999006293502377840747663870677659170384893082604602969720923043765247132315695900717015889212599114260701680567604951069422303814734931248681111613542675570967968953300808759671053066093967546045904001705931578719264415474481270358966381251279376483603552097313440787805994759368570541910222499202370324485401281439189809089989068161148734415913587608082962778279040471543420142394969882830064429368073644113401060836647753310474951030935985009298371574861347283396508836085091476820504813969141557257743662066852321774992514016825896198343431727490126194377815914633400963224604235612887078222388185305994638199120610687529687577110957118238362633639253374474284134252185418076457968451596119405229090986026095919298332525930283349315885803164346473020588968522590826006562698460913852627666653997125135680811099036815847352390720645214138540010679395283836874438463887437170046242184341098071142969826358177078977516822962260254966325937322147274091013954318029279543330042027972201233713355029127883591623207541729283931598911871810561454602985651840259472150132346724118403139493153790849750116833238693797887014524494717743734136370719356077633385527124938788457680775674646732159263645339997322751773811071845139718132127579469528732665956154928277138578885960857893048384835994432422540237731563333875580487992882592986700797426104280570834373039337332239159938927243964182761808492978822678611738686322939324922123398983273881651693824438207095813378870571650334584699126929299813345018416222250494583005097018190788557498655428664057979281191630255381346696348075997046358426110832175751852976314169465372571753094338276952326875373582021361588487767663609894277389963677999297548260583451555603648625634656891583504841015327433389646512013614902201189645522026061505832767106477091487582151634316817070404253328799595493834682546065404434764482976884929620923602222658452359009938226582731700898856166071855141702502832349838122436947448585328093713102402773628221773318843733062275441501103579556365811939686038706958747359190954734858406869317058651765515966780272686832199081158049487968237672684019974205867270914388156667739320159568980866510419387091417263000448843544082674087563492367091651428307831964357456707808556100125827960473991765964696461315199609091465911020437463469643375277016201877836486751224222840983917044447557464657571727060278527118670963260226592588514219839193519895977302891500062190291566385711331567993116675173002989721513633618251582336210564503655852306845742926148505616515857100314189556454736221739450731000711204555100485431510436923916836367482606993986058777885283220276730831046233115222057833647172401391486590496595242070825610717306974354693042671812069233071355817142773341146677402483855964308466700631431313182278021777332922690297530433369312952385501004236514878720601887695449731994163260719551469612300626162368035478992531833169291688499806315770820378729961820310102227168939653435822776183925537532938232579204730756514325600630846136861108843404892479433066779384889597567907924662679456311816269416807797324238268373074678544781878996275139515170525248254567424112588314533866765600694759480054432495687739458452006026654662362672671717400336179400240783075021430200011751723318095953769831178966943276803761065931624442143847020850525856559279511685046431957185586836656931271545017922073033586417809375523713359639914756037243648329806767295051548666950477477226593151542612713832638901504526716221142176569780999531337144856875384901883008349443499104187126085510473844080736136450861032633504793974065383221645523802022123680361410720636530340412758237379207831293887760934524296671484657730207396192265138340415935125698677871536956328091239833399550738196206707810341163644359042903278139238526825521338713122395320994991540606258934702850206603494776333124304527238455851666988013497339389019255058291249235914320951158633219981725519819582644130305369401114286792765123060184877882416408414943140691790097430755760885832525938413787883243162433662967553212916032627254844642143142073940830712304497731812086817794384938600111568703320091452758233019858759620318828493782766616467521556133181977410938047727529382656740216842114468105821146935037261840758034460416301215665718337737052316655230871101857338516314944806591969282309238885064245152056340958205901919023810855018323490093800783691891693922504135127929140393465533813157015792703093325331327304628144141966534450437070090449699217097791115364749068020717922810273432137444600120361772729986607476281656288751688408199842401619842734300637424118963899676942694764967574416365764445908205413969704369256511767555529527125963215617563401343247185126495234243506542849728617160456527163103940843171873916236850786430401621245884885421055536272870425447097260828734996248300125600369577545015078891790197627936145057554229977316324444936030313281244660386937997035776264984220076565470073642943013855804223553692173164474395910713989080687006879441455206820783443920838054089304935282582471070615260472007134909941260273908671352667854125496086560965251200838426639076502266300761649530069819737692426659132983919135538210995344312184431232952355242690847650023648468079112454756670720500032657214511268894201579948505780785192523676461921702292126516323940180270972149021424217444841091037299978500225736302724671895602780018063962684604761500387432763549325432930160993710100470049317707406881189673510126905811573691395624299585672459455329095080145803946743261166976932883519154780919922684907351332719326151161704945000134414112737506706552821875881820756856623423674664307528524894428945466311918628249958352268094133442998130784578266853378226791907419891615330494818350263971695486692120374197171546459561554330148008369725452328670523890263048943361074169415417955346322508971221651382460017643334056292318099349226248877842022017740157015078007726300811950829484363473986769887338209014342124840120734108451150320827893461879388319516035327989488786471888776925573944697940330400086240742892925671195986919424001778736083062129380519689797124427683080567283005472903719540653861149702639886806651359365946120696788042585558168128901933952846831355902495722418845624504435073753318815050827083930207342019920677346705832842422879178471136231165061063994054282426409676426166498612604689345296160131991281618357702661705468941519524221850205867843823931740902422323803473925711954477940588396799395666970050993292706914877298672976602780311791929972095165466962116045281926016736366842352010793076645931243173850764776622255716632706753588992399432800684553389701508437937482190192342728170115733908363649658213810188641495143032963099778042645976187221950644048713657945891674279500379584748161122703148746589939085345637047589141952976104012788356252801886016849248809370001026271524022200023995714083094443350812938419869973323643535667136949141666491713549630268242830124857367797149400447156770260929331795067189689909698167744477174851753326888026569772996297518109343184162034671820408622381399921660174292002429116282373211067284760276245491024703930015501936574188968944567330896835377058644943715139801115701474842060151369297655517832276220117102844018410891489354843610362428833481163511043860040693720080210832134576003212626971346757908588580483257136705752501886006952813054264044265639704120365192506372178220218759211568743791511898773782457671879105355062847998788003843897822469956836797156478616941630340193605755562917739158437224770315571848105015558508763551314371641609222702159204745298350301646180315485916884228839614410386435908664074684881669565629952755742756122610838285174514844953832141343346578441702995972338878157826198639907521022413905075537547361411563515680247451185382841928082944609732507958191003928510097504007803453114818821763186157654178109145206066759630209328846111343657057676556181132287932489071983572865020926050806814427454570376671151671399360898045557916494208782892424013088734929248709810670694155438684302670151184029780319817032510860540647089161712186167783834633773208719096120068487265700932090670082986540521457206140287854363489971010799268444342461170268904084278497765487371496571705932614726592013975356308971451355598374828099615490545839182474964984176849560307609888236939543181936408703170177866686902211240732583268936573011350513611544727666837342927265522407355952703030042864919365336330318314244410050480446336293081279703902291560003228018949510603178525026433651735457100906717540956097109862422146254940171351122111358191013643746105464119126973150580921432888003519103872918792986631946968749323678575936632368276851040610424134659493522637978353642827390601859633660301389530901293035085940437116667345056417465045786180631487782194539982146973183540945772431368378917492930478529808509952719247515064804689284987868475898196269880458307892654957880569386169375757377439341964251645145751156825298080105618149965040609787001768700654806543884349965863385814724810576038333076661661484045978126400777775089841898969883203123358823786111425900739947265178377645044560075481123086321895628886034802924351606992685265548554012433790016764152966224603844661779909974414374314315350122040980330995013511427429712048882277634213289436414842800532308967785282516696247375796299857237613877712844226752525481622525481613136418765661729400012524100657822612947123653360717229072455573323030081626458138502097408243888775962923343193365094866175567628325052793914013088516313479563596553378083562292921357687638626610990218377695034610822389642104272769993684845391529133502247542714432114045157628243123601300032241969597546397773570155810608050711676546512095078895178069747706595797414939956249529362837352310074995242568595688743159316681840080548978658611199610000689361940835041510906916941860079874972153745852822129318735443057574255584152674124643007030461744630476115256749643436220082332496857593016262240417309504490796470150000436278705571943502568762308808092957384150146341040921590687083873674063588392670183644382452432895474347484510442050163878178643800353605502000112546874304856070071733700838301809327540182504629576955508805102927963463481999039493090559178941802087147999853764422794991360768091221916564771051199077726469594188876675668198246171785628241758850533859416118593258787550178174887627585850780761063610344003740130905239732311995753569640189476322408022779948810366843262402026700324154905884714948935911981765496200907617861714953929925335113391909729779170793737744454548268753201678763731998389678379947683813410792855042172134228796299583733437223361419475220772886480333836041329230967252960511034645180866137469725169285128377341224708814621862293794349277831340004531038755089507524656707650287759424114299858364947090720407633299636042500926761318587391108841908529381335953916696485129051532779045380189108716100301918034000733483124448909895733010576346409022266225889832546513386588285039238761414390129520761310492837175414807951675189105177639634627075526807534595996118687469320712520468865672903358477032093698955758764080985285570183864338675308364056535524070086657741590051120936507282725207909362147835488754911987414635273727320079947315249257872053812632593386896078368142786206070693999252457553668501421299473983259161042778656860295326661896077991365716087053156079935862196665298027441892447393765524292387487907966617815269555610514153547547553107768633136121007369692445055640205108845111765040813568582708706506848284325094221968845943681463009297708631388437194501548978085136468407660582283807521724980173748715764596610985215078032805364902373989024852027266566058147243692325378553595667897633068021101578019962123117171164770290065339812965181943369184968966082084283356548102131230631480951910390331832336876826910241748975465219897499880495683407209887595467475020222652697423087079635108349457296925242150065618519280856630435915516325659726483131614613747262828744729075781727222047100537645266919331349032059796280044179200713250716412689157049689449263021154295805822568481482499438994992314270426648502414048477007965578846984440376792994723531943771273881148473190283756358075077071604733803822056791640228376293890579259291520834595548692887016721506344229001068786627205794105636433296742710911184963146958851359191247748145746839319199989577549978617083119165040909089832334122928113727932876439030207776924408916241939602550442107982848169032725771662934082308835140914041960190039942435026992207185476301180532612975500372912500908284380023892537466040902035293320508983306260391580369797513097013477604906440317007826691505854215718794582761841715421627151792375911060643310715213936544145239417892931242964001863038894168221987301722206675423451671130743497731205044361558809262010994454806035131151543727719187068079035869131804301465443973091424701772506590962074887718743539670157965461210014160330321014408080512193960526752373665667785921668907730816992699140792464737815659373622237239509494418039773062591035994883078421387319040257749170734875306838943105805588960762942594538058984482906697214983325338706898024605148314687568643634741853954675669395110721220118241484168955605295319649422904448000303623264873362541428785299197147508622328956098075854640751359928650139132999821149198618336356621580785763324827494427945294974679833290234113648796482111047532358214222897245670192626319009299101966080408382053656965686636521266988282502794333743756696252900236476906057420429248015836551863731648304468095982689064864145583733937575381248913359249210237276314036705892734767845389822444057530195566215615428006566682015519543792278191392431927362249964008523077735803545787050401540342585092128301000989301814631901926656404786604649505348705194410295434895625210339485528796751297108936690028461418560947600148712398797480615878918322921882571837346187014640598911440204737004372775104609247052869462557107597598779737701211052501248534769177908117755625935408645702847045045309130163164060187274754891460010478529982927114911202834460627595577659428747237316827847673903929958555300443002357994206713597430434467416815537633077866287776612282762156825671460943684238179460715489869992608565991496843203225297349013801006073130413943444879516167541222674325900811890383772953752156664995293181764503310546320220802093944452670371466318565811198921938984537966029277850365618628674217383615214858319674084675754278363391467731536215661176723023367213872149504837759025790053877756526291020870095659806666290053791141616625811941410411343728770978824371178132228212460879902011566936296674761417907531456423116016496760015691393951479455041738651255340357706656415356227855467518464397527250196162183180413716552356387912209521792451778322820622610718669829264860922017435181030581997479664417612134419899917548029953057719514353584054390097594569584933477832377138588988377929247942469752767867748341763643209585664573602436286267606115221255396064784589397467888641234003960385912925306854499349239541633009722044123218186220135648893269846090534919900774761761924873976236459559131991932041677858862638773149012532220838988034670554408985853738373874650436149180186261528647158131741680622336940520739481914525028547443952124119130181957561069603158789691571715130510994698157811461318088431722506929131481939419029246940932125783769244827577020152173295332702602397583790009828779183775153881442454689552438985997617801499365528035737589790693250074791099576125139384309008631486298254732541521415533088608959317418439161446424436574923639687664135748022384745592757360676329154180826022830624473302687448314578671384697730097680455351824406376641098441897981114597010506199954096013837510337365618638382974204031148602247613972044562532757443469922113788696031918325690588904006563608054840647471904816632835625389136853785541624462954797165328119866564969729134385643575594878950129480241171214923906248159981007493577289957865504151921170750798765822824986913223918608063629122268346687376964292514191303362814435865174361584761871739710905014377561641283966098176477069553750057101706007488435998814781399596894491956513127697812464867879884764610014664778256061101116351636571627733689882351525021546452167347436982293644855109501074469678441851274094644038540851261650118970316126727186965674077887541696437882365404690047514258733573254603848038775945637734869890731485932240323986824272688361287311700030059758261211170130017080173520340758375841759721287861142661869019612522633551415612415120151310012244127556408695933334186615021226086660733395512649385486545830142273098759943881813311543267559103864610086069477958578651784595341649749762940513060866314261989400264813442849083876489410209104417816100948989775329444763436322696776257965131001107386538264186831354517107486803443423094101495472020147335388360958705295507718495336502490083409265889249684257019631629746094017270919978667297167775439122632395691941230737580691752867311862422901352201433847504618500715561198333375438577098255483485051125137150164959584519364944099542381736282703878487572957007002737999480018821290625656510188295041618049190445323343910528834699861109078687904886240385774385135554455074695152936277261147437873874667805143552199994532670980792081615558805535901977902058852416277932716362612843157494656227732365347231076140171226468330529413357633269753035334168921189844200878567630439461892591996054632426350413208741245759010090446405155374649019129759337003366075044408809959695618842025268175548998983909041885148309905113391347228738166418255018570965442440527993505558860432126466936339427861766073178805443287233416785026016573368347122334113636237474443027498342886428766197844178487715644500366288681187563752702826999995263664131830333891172792817222088230661104613132197245297162264134317354904509065768317067081864088547223015061224849030867467437987441990492147733645124580120407527938703796004234083426301519907884416012315948218732186877451208604110214230272902712997823739214242353407532916964200655012528660417102533310857379125749004236009983701274241032627712617254280630667171413031610668169635019545364776016373595765505237647118674818082517495393177021184240591600911848755506845780243855425082098328931575669980377813756476957050969063977146784616509100907326316265929183263979318806891823605339561548970819342384882643552260657332601342999245182435535834819794666766407611597992957251881273039798633832310339984742987703922059354429989360250830216302792618985111101320574385170066573994403251908091910993198541212192027655394216050780294568907209617764705286115940342987938990088980541924406453051377733048801948734239100728281682944977768368301241162756667562913075920599539927077610085078928780287954763832675134468678570980865346885684802029766099916418826332932369647897956537140759877257348054162886341253125600201548931597727521163571331989447977252088924250689460280155365835328543411687339121212702001179993900515778125532636155707286959104356186155700121623993510746804661676900189418697810047773053225354646482416847641844081620032865315133256027062801885136128718597135926208663217024045953376808939537154975159040081570560897172219118149403022827820946997818217543804200935010970635378440030607062280954827027812932461639885691793407166755175658084523068122126578850278877536314018738403959594347237849437535601910349622728990579780466583141148757210874899078044237912796102031453396514922312062100887977130456513280032558083563856475581010652817218434697569949396871595536262473524077216420103375708581668829668731813095817110391526077890672354841589693513711910474090198862031111100490720685200975443086378914225823257215504778547418972601064533980675479652366413559091895786733048841444753796106801003375120932721082831081607081600315968216216868486589127682166449943447658500943870279394450141758089621688435491024384483505844808774636895249116786048552477359015769992820173002888260449714623121755847717962144343251424992937544678084535300854787106817416018820081427216850577062978817780504812002018414228120735185180109758597651956315453078710241683639913927505663936370313552113602909024979039056420540415749823670745916517310891655548812343060445650493805496089249411989641730707208020643430693301887129698367758476144440252314738018725391793932269869456483014191675842796993897420968308793130546794602947983345536034674009750478998695008365109900714997661109582602512561456351640525088294236238305999200903987463717074836928344118920384211251250917583191944890557584875103798435580975936309346640612450332774284043310816814840366412558909290274577593025200676056166163880304130642833937173156713671628036294628629661635068170131681122448664769642991785182911721658551601552060728599258494034498651851288346158333318638073153791814762244230542356180133081385437422111700852779931432680460619575710869988453595176184603723158480547366048892715917793597373936489119125140382792829908422890539128740155097574391259244084873923940035805240040909079649778120690430491673694296631755834075428755808151355824609611850542270666660350719323421408374619361975989369578918321327310987002337823533530363232841764126972996203986222044927592076584001457163688979593396222258871071114699049267158994983668959777933625610721442301888644665728144941261718398229537857964428225829329370717779577887060651895483550499442192616564612385114719306394393117416185202265381322327228336598634483518770261211529392104580033353192063884339004045494970438096010011682633180156818195634963968527352840100733927687016555794565327666515501016561180641536610005093806436328687766520876800887195115996998035923660093887674149122992989539442589527769808945288296391521567443478013790973982560607580274064871656968606568013343064559030827764054024111108515983513666962724083139721885737190387784653218010010750045197567319701934400669403818389394251975100542705969093403654651012979338466864091790039812430999014898515171006933055964813096176790728993659634190874134524789679389634968612103423222897590000817252611473445058425105194269040850529250380038969856401105608629974992728979628464523738767833751868884712142091969258096615527883154686993292613589188844730414949324463568016963206756390609081548982848441059148389165797481907311416361053732851785438497214094546242877434441071325702701360213179917578028548344165594384075245752285029453090746896184971712261039276114682593355090947156135880160454688304892399644836743190363026691317280341216387694414928736303654428039364537947907642404786714344052335676098004231739570058669225549503067274238727337489304181019203014665954346444558477789710628136999289347898305461778879222389959770927585197354891400730659112337881435794716583353349630638120651947444920679801104853699778289109311092219088825475276713506829545078152556441105628923385919306948472592610067943650640038040910517821527848356633725172285319677609508942505660194994162974057602749968357756339755456864715849835171464710243607116772038045074337848925527864109232344947869847388053534048570031573070359460893320453400961265776223177605539532603647834142757614419344341906756422089267124772469126584070162711073343374135788204812843415958659388612087753621211058570672861033462213102240261393377838215979421855606512596858797528908413185798568605888324693645376195960164572209226943897011941994257293759383493477320392819807148289870163411199321003686728174860636041118337808829695516962878461333123226521334327794263672379253042901377505250973860184051437834875540033740075981796852923448436499353948769939975679402129040119478440917516212707052562590782116166618615619199541925233018101271207801443451847421267722654935157598813077988732057216032820997396051083862712881560989404244877620031189147733695538332323336020401552519641036465607896402350443644106150332265740253174530140738252988809244516379194222748178737470760941348831645962007502553575112544464271308884764872395414494755290785430451044525832096406931958503238479812872359553586786302130368817709359492407329212695674252429197951205067472265967422357215008203447197339190224568920099109622034404954843752672370027393026000180088791423713450995301517187012938928328620972757849245148456121668972148490042795279165097271006021993563198666513159106709188071551179476496331649115862009534700031038072051503080714737997484063496365383415963161019100208390592044131419005586465653942186133861044019148040838132391247446467134345349621637439328659266759844210017437414070548875633730687809114409281313608806509351816789550999483662285811400645181399477713163183038759123886495770948658265730232042182928610537164485057180992675570603236675951166276076834601041197584283654698033769612995129394660020414692365418094496415622751966340044187143955604926429749775121744815788055355041612822790925884021688915228048048682458481766733210710758081523152948637173220863031378747290591673106027003695563473352603262292019908302742308495278945921002862032672136143365895802210686230341229867039969860248251214015571168329529733202374812234436897687215789111756119222707946649227352420974885786701918594446647543529253192061243561195005717039848423195869539068728655884236210595800925938986146676595875394364430231791282843415156845607386943943530172395527309337818412641006858800237448288852084249189367217598082054181087879016443043225950776605645277822637092353520073661932600186598836719628415439400386437238472741688692531240761399817005752489670379441947317806152206097587443433912848425537813832959062828653357741238132710580023530620726832921111032330050204118846225746957260214806129606444789048597321468966080647031867757769375767683794391904505206237935793248005038190622090850361454156388388320690656098839805452150673436105107313840996630292299701134273785987201833137166895473699204455434389931478148087948786552217973086718664563866299870764619530670786724522182055865966188491302985835232929537168681298813715846464925997083328533365695879886950269862011488358063718020550651219580344820928666035196443100092910977788995575594022984850187365561924488435219621407397864445689478555685951378142629806137596212678692276996190291294453203520328320744024828706239802434862279340846902619811096617706197267161100381534058781329003627503703732611094460109683757837316281639527078340498506185927856409451593189244921849761856447585977013552130336703488911388918175772839785370713084246365399499026527941455398365931185571343291784525156412264903327715708671467832782710883251971462398611050353295472606614873671724290040690112200515331069064571093732282728805592848158744789043334171799986022560574477370204104488368979557684879007664240484042155229721508549092105556853229196705172047937139224221061172674286921561775926377068622071789350319826510072987594389594205570619250176407135605564941417332650452190560359216714242148743849983865345563388371021092928507360818533972527281095502967263038319445847145108638972818953378611435382446257045685953132690578548632243323477329906002911721771901287557236588512255398670807748676376020983534322274738906692787175146672045502054782758155251059771011515252829130985802997115456688347272661279063298539707126956143301122822031731562482969982512604978188158595581718408453495540749227766952206232412482410570611014480320501549415758463164682180612586838201819215036036996078738112444450565175944824615371828085406451864001559544157455441189659256778752955786451190126798694055214921367168967195171625778639245517114176455235297171534839713789883922436521215658669073519260155415958458689754250900185125542657160835702410469835026636746250526510624573623722286443287070294123167106247448121740497482279726913092546845272728874774116474195561919484461703401676125947788323073776349996404146197722216430667437708225806266579075605657243903491110750773872377945977834495943193454227681748538297967931158822173459541980466452961551467086494981501599313286548736530650805092012237108660390609744496567127454249241655845642539814874364506719993328662489161097919552320962357726481599062054215965138523318569437278117440852621460143902206553221496707780674161517969316661591205217408080836564224475050114798117291531087694740144287656884706379603148556580486734868611597738318955694391019402096006547563094043436657186786387566586855749569050419814811788567974481452572983154836464800304322891564429452681181053185608964702891649099875186150804533345478960785862479297766128185494560221685927760216234127119766895125731283966986876015631849902371768229902071555068924234918180192734197344644262902036426614697780103565926595094404482551410868207844440536333073559080246928487373175614710049307644692002623230759361791008297604848618507204720945651778678747564162087676330696191390158691914372434906396806244200948220307776161766599911654121667567960764561741895328896958220009054216792313735060589740293093555924749423168255391113556584463396966714342926517193036122976733530942804456116115407736530683175076792915771340705901665236730478392451571618281086579464349047486420909452368660330834180020512487150732881557231418022273051223039957282830338451901204281693758719656527148530570118082227756665536121174427046092730115106614731745681171615172207831477884740454345477033009016390610284861960971367696122623956169325132669811100132722722425025398464738159847583945201473780660064971001750166863944141137436249790712144876873163306362621271129824345195261172540187582178236470265052898140995231127805367964172275519336977773666471866378054334484820038519026164110860662814572804434816003744215182459626663824633474438277910474519353230616755316107007284763879336928232719942553269771904820453905059561741595584772207660636095438514446052911864874776822678126722932313872434101581162846369217760183062306517176843429308833276535192294472314708554117187415813738356559247981561907740568127733753708157220244441756414635596468816094427544688905931890792278048756600473375042638447281789358541852192185896927059786724966449676933388049622745993053813995087862364447931227086497168274672685440684390818513737089043000560191253574229570193058649307768298047515360722526274011058617571252984511135802921264055593004390904050221838217242921267877849123220450455000925569018623893642153137747028313219603365561583470174807983549433096303077170122943281201110286487537380892774838576559137945631141518700879176559575256175540437442203750396193630947174283892451413616701345945488677022322393063881207423341099139405623748732440765776864282705789988712776548763328227726397378982957194979423430883673605503888130027905377719829929903942541046100328623399782311087178185538267101624360057992122202127614116767213833811753578966932792988811053763006515627797644129106290654489713196037531879448157364299297630461490363787521938810487960886675179513089713988467826945491393102751008900686815585204575894174385692485035849340562115328151707931345900407741536329336867038255077705116360139389185833338564830434966122819323708398388317084358274165331810173896384961442909861842032502190961851344829507672544208166470017122244354197007387797997006621355627780571580051315396548832050872770070685965893064446197227375729049487891422038135042474057538237595771356517675561593131426974690686924348528712075272398450751291013379667713139444415613910752403994743036049167956824840410738560253654566095593049912202365229355278104252143253718731387607720306253725141853554232514345320295339205448050303453255892159756427301956630058209755554117167568499498200343702320740015187802275012350843644584094499682743090442034042588211436973229944318512866125892870861644336015898226977948709060631509540445445609121739776595067244381368590481679383825815860560264950952041196413466671854550892530789774751423880769768147876059562136096224826928157257735018139349163433903863577561060940270121318614999456536615146692326554872819248051263963905430455194916629749348835950941180567874690435294679251611200653297109730547126507261377504811624611446565683786037055918996705652458286426841583707047964075848679235934679813222769346601847259342947438007087211382672376849420572266524875705398050679947741480304742908391309470969169989489093707494005457276722444762408854147993123491084479979285724236523761921828116895558542526413925344727567761391595150677570743641740531259446208078231399197243291296448176892738428805116733297845691464160953707806411232302664223128130916968218090056621610846897994421908838611369956112487623070860651911869572326656910503809762434969355248595471319449826807632794648001101163144185928157728544477982535840497782649800174650272706355135137065492540804722864054485393544145639026955859602177794159027162438993422528851414691037433239578410962966281598434524008009322339728152298899602363548917597400499577437084219811333246202220911301524296776056991538232951910009477999578537676613548176374561010711007717707302758110850454772533282620371108816363595559548310511698724191692707697125399690464769136026650351426612469156849982215578364692921668498704272051420094026218063574891614049026017614351055901499747983759954674451044644442319752569416184068376835179851905157366476028143317530608701242940627238283571617892427884971985707178163199494411006934133511994160036074041783403111360934893405329580475225673084488508536457369889785668924202080844412490067939027776269231328504276860259654129686919663538684173613228702196259717487779423428394233613975109680090084822233173408797803250600266219081618420580657589643352127636055006937376568949742433330940680718779996290799922555255430126885504343728887239513688289845385479253943221862737080509690182452034338576422767642448159458385501581116784389206416193086663872862365057737341403682643727317493102535603671607627935586154868781895564369088283749046973324482119981134575642792745361696644603674504983602335481042550805930236543247339385182882892779607916119118871067100513103175086627348625480592600453184261669800228754674706636432005887586732020713434917249601629394093684346959147014008935164395340594172090896625668145766438593179804737142026913918021250036789625274538375403734747762596612586569221154816624168828559869764043698963886877179659919782556494697643295644440254080907855788736524490576285950312354366196303228541769764727245671069550630380153757300853012928860614608773712665747413564704834448046887015380431129754296020472924090602128862415388943783850160412574178310654888236025873076199887868966466483654740854698310045825208285145013092164050790150981931150627161180452821471756027798435085408734164305043740130510883900764487691292339500102438614484066812362503306564556274136666981034935619016833564970919921955347514468563685240927108051286255341963225989474018519560069740430479409699553966242433419586855250182437251349268583862237138833144271502734960127417521277392361506545484598238028740301581650425155332412143751295468620428057239481391347902590336625433507289130766311953269915250774365504339060907304518184483784997667094255454688839863581583239377794090474321672686635950464621234989767738272675327602319741796376973055327515200288192105091146481640718305997373938816635658221247480531673695858902194102413744497017873144423100162970507432974583871192418173795499211025188307939677587062571945741024072913055420471027934864777483296211610697139653914292093968353711746194431908951594538807668403253897218800509958065916079451024730645343337669449051631542590969152578843876491637574277635779422772985846112614466415949559865148459927646627280655413709985741965961961930957283639145993581033966335431356978337990672643521404053330124247998613623671544697987402966992498986408580291951017999373227789243304553184560620942678153250007015664678085101491120004365789237841023816240469739070298016198396746455484084173402145980663090825978678077426623983410229326032472172869624311111335158968735376965320154690779361597330029453046369840139171623920892078049931595444913364194825873703072835094597118108390644161821480484954695614448633356564264570466833185218316081471061699518423835174419487107529390471181579634887491306803076687315153529833586595364304161394705205387288821341122887246989602985288780896866688206799734266324991120024398589181513044041503800185886261478082712763536395994788559088995411599536775097529125570791059466274193504720918802842291575575774332369754849282826794403404759759156218876231409988936166387138194578424182126979135766219253010626832444630533109265248800838017813432306728506982675668714408999701773912942353820774749591665014542729988130105469866323144652879890598171591331013609034590473940554661836766654935912329263040300639465490546613231418777914309904894153973051688666206571679891135263772935049352597725540187257589931667199923067584870073279809009660690584940689548563891253862621952337569779219609214337180499667122936211152748374251967248361769238063538651529169359776033076519229200769541124899008376561952597371382869352621285285485494346758302878702731110273888135555611924402831047709824224999425351346756034917396548195555426696229943944726306560876121293787648062781345175276350947405191824743198199660617425336504647143016648281976527076583928823523100281403562559511035929328440084342397108236700022950118753447772347891591181550742487112047595283561968529171418918750697211753290014178284617903532685458019632211781865236214914443007630429358936102148335165617063303476350916391693186771820780944749156398605743292775199504027294817549620238769871084066563737468832084430524096641842576009174485154677860860339712666314364259664326198606880919174737772488540145852134206258027595873882102424204256691309846172974038465317013823312906393592750124888432177458227652250372165247354239117772501269078217695681291042252556818620261403496538168749434455649929992309948675897165694750651699737946644645513025832183981906660663102299371890193133556948709061412499255673633926613295900086858843523530429534456784221362519782872152496885178213102918002422176415905153882114908134399257838871246963247700215987669377563275396339154801638582646178541330951809904355730168357248304119561681049901912621176494308403475006636044943611114188161354984874349610763613025129149770030092672239795056474111625838942080807458437005397158762436090280361940186927336626179208628820170641006797924343983875829541657305106335097036540432173141222569956148054230922913417971965245934870907402472812892453514918188128366312267267321142051234412050430814840547719126809099272478588990665892584425502387290522299819066442377399656683705894057145575361865849539331082706096174407269041966277233260730569619989296892222728138877516467562020690235872195596761047911141000188400839903993271984850427310525685471049791317437190566611464122144891322650762086065751755879922595027820689280121346264049721621094585589580158216254561123187295730143909483903170220687497311314314331071352201509757157201075503799175623584518929654080803895270847057409905462858311130085794005220038837444066098519861736140681537099059418893174411916607995185193971559849983743825297661261888848223626683734499062281464452535461810983277300994871677557613962896259004961768720881298212450701561165169832490070831878403044760942278903040259556365336026729720231241712720071537528860907138227717500947781799112649420814873891430113917609115188592469821268153521940605634690334787822997333341437948845063855587465847422282103815025000003675651610455628239712840757887965633335349465897453271248291574617613628125707186540066053019924453119129976983966634553771351697053445669718567358255302604928411783532538240060839498728594024336652044882388123862820802455165088050405978013689885536376567440340323582143167056772538226573384496923059634223730721187015763618656459133238967844437062401702005075312480402837245943793984207741386112186558464754409871875539821749861570393124356666753700730451746080744120281335928386642692215244015356509435534917700779098994316082865580710689916379010026308835820516266241349960367752581437169636263697758686350671693431731487857859055843212114840167154553278117238104801463283330784679871000472877858881511840089215457577655067946164101668134105064349347567904396587957306469887839387166648427544248361637956304312732269860792629087515970147078595771182449643623843234386043778324721074675377900628775028843743978427410211378354111157025153634123563423533252195560535980870195486987590991227958736228397664668861240657221665223986839021953774465725785220696884836869238361243805676810497465905782139269820777595867244751600520992845673111066618046642146714750212242083706783207883741038810951151812901424508847207754532462549591295827354248914992201204017143148589864386991918402582835398111535925309640157819098882189933392437396644453228733298297488109610168891281839811593965163302119722431668628721119389459402693571911675543970610460741576892391760469788345972473211715539577137438397801588092429142844545465580362608821693027955184388482804739036398555785543592169271372713563111642597069715026686789805711024599628023706139032618009131319275267639997022999907157898104026953463052173689544089586992704408109443526242769553547556711794307068511186992079259591158121152099452975371286456738677960805509729625946198071055618273982580528356195130370201456107397852061275730278162750243890643869078008704263189035634951132346965748453969200387178375061766348127670915335562649701989665933228679534964267588194146225182589161118693167535288242038426242546901115227721212968519996013410974927275107425460551346878661627870947817246644040860090885289519244606159416041574891758105732689999832100356844441517507332983941661282945189616189857972028193799258084930863430682332291633574683509687638856586729368028475936890088414449118745627991198228827416054846292229039744011623843180699754947457346231726828781526902004883543417258049355737097368646909457211050502222024666424378443929295187142183051928981821842220563053790741957636646669259174843033124499257859959847801966526650246600185599089750078456926809766469913805722997469413160544204421768587143812676050807589911114948867813283758001340495598364058423167383069274435463754211350525066968602077731534663182103799665957252947724755238906798014559253057435596280122611096031897288508599716276547730618711521122509301562041181622912774717904041806927577472331111661360744490425793152228870212717330017526110190263187802366274599044821600027465035851602252268133160369313920813479419888592409643519322482314172609621861922730081850142908801673688681656118888190385515746780424694722415574184869777985001210358377357423613535624271396479932040944848385704617242276300785011921167921632751624585806103654813632142100206076592742064907322952737212280845300013317726301393305359299108855884968466433411548627823825172854685898928053517594631966654387150706317648919725945494283224130353221021699337084423773759998760496851426014719761479005481757395700287170568354469406594664437926840127649043164586509313371001166511990807726512952721246854288355519315624165127095008073197660949214136949394359593555300123417237228130245391121835334382367496854927877762010881277236534765981511244924039789081102558666585432373052417282820439092953649009862164748587841025521919283918130409563942896076876262877044621577441542303852604625715464414254678004046991828652028557697271833916510524829854588238575194608218358472987169286167684160611955208617791061982229042071109383793601853449902938495458557107063545809021379942119280418767582140366368906445627486531897026628280511730036741582015600198970317921220172485741468741610697917245384675264991015527307819670656958344246791907794694180153192497932285173853627021233073340879892818066740047065799659380638775681986218765454738967430514664552722449264678129833172657472314473079184643818256711116434024800019977346977396292178712614291816348467056367560721856176816268905490302273679036617756839116915429096573039906463988725880325112563817849294995857835628728272899730074528220236018294358512911221783689909677467168488237128522112986219654575568815068848820830481727685665717038990950691863845156267958372077691196200542353337405847522940099864591374821158850283561949649471520483477326818854864555874712789540902548463379905137683744711504861112259063201889390249676214372188462441306167794669319997375299623937931519622376107986664062486394769494266729809114853441172859363318713419667830044368800144982474497233975563848055738705122611834499478019632511063243004023643253045010370978756641820740415901817870080642286884761477607790612824837612351338126371406695455448250912122405780364168609884428094031369952938996397285594754668156453985939430506388443918268845097699629442921986442090773687160060130715179566915559918129314888914503646696686899009583508059336416699420575284951474271549501733136081620225100324181858586947062999103966345269318450329093998328863894419186489873287285697526878164322334893963907489838096049852042644527555961042577009422146166359415512715988271863515466872477405335123731871143083430300531951762478810995883718084628819234763930590962735202844536323362803691980640747090276799431970932709351452898610920680485216832036204822632448995293978615831172185627419698484072912921744530306297570248104885360998762946471917360272696540115304628581536226725474977399357807520538931821658944788383002830645051930090646103655121843816861638735809970098619583733364819919061549839130468536210024867079258394541992387406914930314181440948121754744397909297529395351296585208123742396520173863706814089049444783722502932584838359741053439609308859467848755285022350041179963064137854767447173706099917185631436853835402178245954590843282369501778317618562589827917284955488222109835207654154276604191953708864051056720889936763829361380766821775169330679979221571157029453409411063302414876244466027556989503194272576201668313531761957851071115577227814678117584047760382483683478202336077510280062951768073800219624329999263454274535247669474428879392993596078366049468981505785511422655825680714493372747208389553558215293166286161511511199735651245726632432736944218064200510942674255365311181812762753888209785204000413365749084010722565684682490282882065120046214877173990328807568464769702990989775231671237035058575380963536899691141300841344671824815901061262696155877596928948105984205313440585370146102647150701714434039421365210357844526142335847026090617285271594539246701843012656811008200031672177718826097017989228155708140847145912997272940761515599139683976088635804942891550206322685854871119408452588531072868581807148750340551371580151733910681274083257537744497925751949454084841458176634306686827185405582671645229014530952955471193009473539791534658513900740404235589366184718305649712187542438450177912112437460824256410592550956354315200792690318226272647510041120998837704427607117694780474986731713708615204047593770975708368079349081553110110409814987963893382214557473471949365117730746989122808471375783308387145282728618141542916390350473849753742746897962149736655422617727117592893006017954009493064987682911115806345327385904541786608415017320491911650298023172080390629429800521631831361810887696599862782352309198280246849210032494693406586185036412856089193594676592776559621737990239259087631484705070821524644731233097390896493664869106951950115553685663960998113863955107219181311901917040231011929839530098537280505568222492737377814667350152062651262915241233764925380505642389291286781310988049389763088607301512742280968398111757127864715387886287180198305421839686183322712314309266229045839143794227255923709344885595863217922318877828998444090819999069511715948889769568483568692327020148352298349293497005168612824038523700339078732861908386882490715507469392280353444796083771312736280387963207285017635688608232479961423899245110784427761449141271181704463928219889705274232902235011549062455144669496015331373686525988776691507033911954945677305368726753058992777072270907438807940392924071977539824725256752433658822150497050773731779367313176136875403060293023986383111396843881691029564266210304959842178364110780811956997018910390299308183323886613537316148843536175015150864835952483576199876179312849623144660853374407261976235900575566445360586109448834559050600330484872153534821148870844179428133619752287386724489502786063103952790778753734432394609428424568666273615985631167608364738679995503871883754308215252520772017008044129982285738194249124954893946429562544281287494386148201807432411061812670163637728859836517188097748553609692198979939753381174727403037694675901660026307422279856333254028918044017114312264724029170202566366274348367627584209830846506664327373653762459453101717275421050258027640533305523450200957165541809252406629364262933658814412143215195420514004324309889947839060644286098791339721670613153947285073729442698571436260680824565265970521869196726756868763269966896076223584092414908808484130354914038394719810865178921738711155692308749589722602505305797082604602028144950552484477858406651400969410658055958919006873805538401497535602560811647124506897306757716848899483763268690670405745624566988696310673993401818658349551372892598053696478763484313086049446411267693452339911999683905269080495231902933453474743972657996931950320706670586435274167594954003858752890968411216940257836995579888837116379006941436379760009979489120192872836024164256299071844143876613993147316878889762065837647287729970065721051847674481603362729905478286421814651004552174409798680362568891482288041646077634499510832579172932399699410584176076500144789299802318162734838305799110147789623621243178488423168642428218690128018999118411888951711368533744716759002715805762282760316720588812324454953998699027839040537916218738527443759567152848315055756398439058996142405235522705621870761922439685248313303895741510022695537887562830855143320767485688651692552861495760951366339173839647566151361245399334423002459140147648699415621705875777583754801395671657622988439570707509901542319476371518956164272518376559606192483630157761975260070664442096465952266008753291577300502981749770126026175462837883095437085867428271368165164148598159044076445815002864481611182022063197630922605375819855668774747853490689895908296992295462910837221631104755213159452348996078022409771144945405296071396642515197483333388142310201591452221872204752094523648891573192965321292343926279457089178476513229564683345968855960081923324532611587821451336025331419663861525327946648256617293744683375403499238256141691375542621713745109686533041809693383055772559386339229440734003682695291747724482481268563015380001206710267100411779825322604905061205757871652814432960920574201824079738156450374553342044476955337904632263484286002403521827594211706977290342866125490713307115679209168794076882911360278936515328916858303863913891657978235311448445688160413662594868639180585528337275745149370138662116377664685680937381677113434530338104616877042080180830412642227066990150083472567341744453061397437253416934266198598850226987356578004340177398946994824037338943627388344288332215044102957045945066768814789176309692760930876630922943699579980739199316649304161292625903544911352123418505759796394566069256067767384156379321349042677388403729941160211995096645491567915407216639535274518750333971725355910270990063857141950775461375806915620143189626606527690392323097017623834245413039217540803173509051689904775830667607391731996632190467522166082499203490727833140264013171105855786150859946266083787214542014070620349340225511529033533713134549967573515956204440073997844347604784640128696362691728973082119630896836956910490536189402148272251379320535536130015062954475910820326991283187126713557993022850701675497199928824993343107678241874191333537747188619436550413367288897523096809217230840665484685167817019924263358248075087811303294590729418869636684694048936338510184766398062459207991946243724496323237318262494411696732592492484336234797061260756942681531990439159293447675607533600272702107742613307690971048457013692326790331499166220946587601704132045794852985729022058329143683247160894476302901090330656410926184572109032049107634261817726884129239157665230808240736111706131782844032460055433294269402130534676152459583839467733900862095090935252711089128437861332259905987267624462856453304073469007833511262258229703462942297700968938706164176812431465579926051548592268891535166594063178144268042610515087172711588047376061272581552778261203049996482187310905726961931755018673811453978707003392001983304955492763235415082731180688179663621946791974676516612171845555356299236656626012785045047583189843268291571137151622653878813851271532938853356875579202720526146529074290611500596381074237744855164391565278818559463564068117675109526861710482301211714595886553269121126696972409177201862956035548830836019277707891954685719252559824831727399067242783956768338585668716229768273666401762580941737518351389201625646395429812086248640122325052451412258662977433908842137604578607658302164336578447221266137316728018293481630949574101021805120333542812258807062574272666470338752970325378204537578026039171849805285004964674458794756257090883747915058387512058408093001502608866155772868416358361709813325222312635424594160197442283473154014068296853715690718955115239837510094992939495839747893691263447735634408631319652691003208045753866090870369951770504801692743429114009698947604454773792671935578125697399409093401257076913147154943373640049344390669712209555809481549366438876453705660406060982022133929824140175936801554442149549946769566461099863861067285425920929680564036575166143485279336847567362621894486108040628526415969491796543189373569664471253223268495396160576801396902805970457714253618653644962099260831469852897890728370628010240030512480839003417442815667757227829307662437858057188141902772585293851325015917648614964955101993494544962339354072306619026611119686160199287748551257366311417323372458936888087576591548863650263261927020269525085625543487060521457961033039184665482658983878812977959378765753203983864417276054448811689263777105112622128012296348049975797057109115627386832271228062085896646609228367262449681666856694600381523296470401647365995593809221135587109009462737418347465651872620445408101275446844070925021970008793103950509259238935703248143235827023712478022102678928746133723436076013765920543215821756265375098257041810202702421620591078363172839378574496932403082416768948768345847985847917401809250054887477417858892215565108189428758973579841880482285278847514096505991170981639394480793435053103695291035164494516807221317607689818975800199079254864189110938095481099529091557324168035796655678939268848960252409087058233827582868095113225903951473699340258085364537534588774494566853311669788714825551704368352406391365673747149015493406060748734178568939644332710417039516681017695855015290342343459861420021714067076329834805923410452742862261559191247502188873703972584518010474323435685973787326887420534414841652168049100626401993458255728337735834594242898424272198388070072895747636408894190765995612832095477748201180441345591938801184858312784659194869914215602542617328737853530142445387518236423625763381725142596536729705121954022679542734773727334251414499528782342703879981790488150318629593892773785017912215431111341991352609776815945210443664568356468195279901586384427877299229107139434738053708252977600729101033640593997364516419995819913284905849398040145080229527444383350108797177738921055332333717784636729926270940574666762357567662582773084591412987675695768756870717831179846089757714843230028199732096028841517287584871439060641453280254061682212166003334355604294403835694958179332887093794559850910560715883727909978536241368397299961380083866777042705773398909617095343616549492086883462271444406050983668484970865819511691617969311923848272601076088943774906127775704612848742745935328163188739890625890584682461669607127034288285288640175476485635137188827354499971994036283675409592351497813468493657929048929015907976346448313496707348737331284069665441222403607905463982081251229774929015254984188484793498714463934565773373803785920158501432339435440668530993171390582180124140796118723710437132871407081779995126032880929361533817210225035861265145565840982637911749323467596125610738324228241495172304578834273311710441250988498051162543049143300818379042862691928972286998032216684385639947390836905858830963057704766127599264450608237916248594112984495258190449320648348456564716651331837010585208578585712541280960207070995128078707128478562231457845254818516408926669088078443338195693094599427071986462167403842183056441082562310828237537857996907142830950533548360607110798030085562829730372812125294068503612282225116856938706071800105761715137050243308396497317414602443015685784253189992643492462741812830800161047834054697130089089878860312941903066659779462269153637086912628195251023500479069325621463686854066324168436449411182320154507280948443569547378961277116710892478534205672121769194055370334529777253025513937412141367466743761917221439470400766939026892800408449249044315264510269601631438861094134621552800779251196758161005752630350880316912626778691776907945294802092532155598714533375898316012677602929171751743615231956211101140601233595548658465624988361353844856314952051846390093567104598013308618205341339266220008409932031462975012304191222754999746825940404819639759804818262881603672092749486482809176661712836071116128239485173837234546159311339484272035148926458165796282813419312978742733136837263354657923454249525327212388671885250579810874954258668155166039010946303952410003227463232590427055686164120359052683088873886489640761927406695898894767259333149421089171215217356336592697322399013478863307220152065026142920704358591109312255313486401509175267708463904489071069824739062615177583966176303964427754762724113588734944223413471544566116992497488469410232165304451584387106107193490255028601025161543054530800899833971228731762405045537097031812768124501327982400606123997057866028279071897380543648726276681737653314084354306799226844592715130936807262508922217110974227521906302487585843584708323410893574490094100783742255023393024495950404532241016863332816945588450598188756380719455236826322707019510291178525968543138494926987745643846590718175671319654251891872582097375751159552824117380224882520652512069868534393663844507059726419778125252195038434309243734531521804969785015513323149771729758688006302483910043171204819755656723392060885733710655660520789705649598289602111713265846810122056940001474073800837136469703318964492951552308267976158534020488959000592031899918480717495696379701451834410503873526755768456460785765022098428399735921364027482558958709169345035586854742256247721527307066346854898201542644057519605494165374968474586141256504230064647248674689470396719534203695634942648004999861478588241053127081112841615590251990975201930035928619661937303589174196305095092923337360369630157332411448756139432700621405719764426167734905544306450605671227941918899715263282707639181805157466522035615062305998773690255774700134824523288771489202503221117194553993275954673674574850297110342041625123664620009496659237963886996663823891107507364683977436998820211677089353078987038795030169041121111180264608971143878925672989037538952435517627924354940481720513580925565434162931308739476411747941767385589515751723983152650228048129648942595969455444426790201538644958071354387782242794388589020614743734346854869822136047893683612585040711456774252517190795981907656485447026241531815865597112479698051878598821146987357582244094880415448352532435243928579744218801158301758866257155978526680909610561167596413712825814215963734899937071393150493212257377840271258179187696835009449170848331848669466229265721747149676546616161840406927307379599025178958125435049762806285361949505632035811142300423033295264041831758286123028665161009434528269005955201151158605302378851212969684677944106530784211425837704432682113606938380968243314101848985313940487436310163759956893206178344210984988410808744022524997566445630129278496540210767651805834635156352057844398451816082052737298032341247843734461493894198937661023552689793774046924484381979427336872857573496942571558499721477135636684219848967737667337896084037691536396918920782301521698593848441906603974957991061586762040978445273789144077481360279507339824421941576488432316485611538442560708540140257090840890817412005782443614750084223883029720046917419350354742580086486587843904727514239893403869131352162578008536747443869057983618505374626122943118172325888899806042830775064323907543791468612812227090313225659292834785900822629606642471875948531639476954046818751983274959863932453247433890779159426703849176196828477396924417391701093595337251931280865067039602056764085564217471592584076270439254551678480806585632790616741388496323468535428375080691849523210270549481944833444606763148008724528091068198995544812818413874924930497360635321715765482148701300448085778710076021809332249041166867263150261680595073116831017154814395058670444551036155911705818274603886954236376142923292251766583401303337281558812381089657930936734638828980231447144135124970563315468581439061512988466995435503013513775371157670092702818202850680978962083325193708578130841125104567290305779592193452698048336519516172575503222167054101684807187074739269557165125766476763756605026943365848872785861931235810241087125186612046475722585060509996270874963646813508836495927373655826735129602751302636843392744195957075516955560580704898101709139237924084081035075320412939124322943749421422703368451767696196603817602615832695759588945658874132729589503179773849883777740671725617869619286660811039298435641287653226640248268742567899343414363189337833347538654005706056060398071393810482199617317395470827474792723450688309530180177756095001939679580173419141149326160353739424415014403912111060902848582948057526322005058628327367825874261324945037414229095284691737876655734296546605511216758162314649303072653869706464069478427112292038972451901394144709228750763240482398107650822374674449416287352520409586026567336548829224335391235904254867714298861896867521083709684592105355495215055717292889823851571965092091372411146629962471753417727235822853717332850729049142614170751758670180636824380125041568021909756174192677223550093506441649125125862384645189925078907427447892562558645333243252440194669464744313798814161211769149291505722777791363810280532618497899146295806465650883460382019321123022214966567393879142400442894526096849551797706967243681664395444891686307142256397291360647039829145826033755559767793091829087003234525419574415964344656752952866251860799272812652762391305818451077787589564319105607918763594483678717731372830722418746254218653014743986390778350222243495512705583335677620126478338434725351476671410651798159075977570934996048066092579592100386168496916828258683858440605928207426407613424248047947723130506589588268154080156663844941871416397348274367649035646070994292436165058906058937052620546779044256316058723711833528507323223287983030407372190121067198230477534391309964014689569855263544111222610617168160368543289521397572757614072499708069980372215517667950285814825348535326616956553956968115102450868562599044433115047174896089186063713194399173687133342829020820252580038135861341033133129604050445724690587602079273041870597850624904665505102429123947188499180592954659112991203239330531091285233323680992892200113900397051945001397078820337850480048742974299415860281244022023565221535005145022754185113303435728537790958649230866902283629359120491093081901391883040602932033342477362143567739207845082532927146101903968445978660499332033799628998158534719896288925527536036317507158066501789031460604247891485883049810718143290683670213450784403956527464996346255536068843324846152031140290359214309168351424776859138204915017196764341119440848856319268012925640097389275098516777215064505338391035775937887779311103061358880415257460055353407432625424237962453152195287919758368054292312849434919369460212289047203851775972945423858264412829495670940232046514595309819501449482088487483111295189506642452707187396424085283561934140234044763436168222188355513401070681169275227890877657948977999058153117928161546717899731564698142242342053550643626859082069545855429901122244742721964391999566452886946470774450181215722492374905499213288032783288511030998229095135301119979291797464519706155461365485390716304480786033003172485795026767062435021217945910003168158244351987551574131533106654499281969074371088238720197899516900436057384455361930406823323617004735273567072058551402178497374669189085182191852614631968632943854572787483371944023778611639938142008875138897915660656881128874169904097404921137100716605576802772225313604160174428230591986713808863254546011704854019787541898511929434578068283363950112006518621718020301478808194786237818426402580944178871686861574039370109549736987114699046102004612276509010463235482535049967649922464814005530289868442742929315684790737846927355540841918756070950797443582881036242140486051385828368558115150899107722270742128531818367999279472407133498154642108728878957337951736792080985866165549857048774120798761871792173010802007403028632163585882044129738070394582502742838459809825542961542825799993682816672666896417742075054358309697258513680173525857357673059830395010344885595801183963975897107846711991088742847986194885809759546543232297513661075637860187411764031790134253609277318730892900462710335964047097524512259294972427147887043174906705242283644205613285135260395921057916482754440901776549732650992774258109422002088598898003024842061138541919989295642457690036223778371275523582194282823736056251473848903728004856836096755794569162850715971733006774965967877746945895688838111338050220189334838737981104837684847088081158202843467682824336470752656787416330530248901327355375818253111246930777845438770309933624935930090198019166099285595099295979844317047225787119107566745160738363085268456099206932540296037342627246323870223755365838743862075119310108460424321514817797190539323990213112787955852542416500388121852203487280723552792995906038333482121356046329328946385279642354531164923456559851786196514210472864073011362494311739656157382771464853474556321165939158059287885399490850926572272574278774351237462709366075953756959572513036465130162829020687602927061000609809551828003520523915089315527203824953420865596398345080132543834317194567939062695480720418164272103340555107681701426668642782493513203498605931393040100119559454003411396185498099171475277288004776877172210165258732601730939776146009566907731704490079385266257931876969753755639170924871728897487725623437720206434177618682930993194710829115585630155680989048903262461464680449008281825984501976657268879461246973519992156708296314470611073013712550675484243111373997826065017026984018859208147139077884958257656649607339943334564433252924537393590323506412262566600582756506046766131708719806303318053958181380829937652963860986022882303536713659464598536151232473923938455685882826480306803469526957030199820184874392568534909768324901460045328024027790411848362769036425922773039520770848173592571692328280758733837092547065719275033655114980013406732630158226388319962617441259305657217209018455305028101825312128171657927525999272242418949770583663583043850770954120089731679015851270154769829051474323496171107526462922665930802898780653722393146521552686812584391735949454897678801564178860901508051018341814424229641381093757905159629578177487872108699379927277503308149897294959800874450285544350450207168406345439653143445943769222405346641800576197412495160557900669043490963228462837281165087749537241358487148461732644003455550656441317376816667237501780446474449383791409112147951335389769125847084083093768601897869121658200133488882836521603799948637299486421081268619686481811233154802848663955401436269564630764049039320358792807720935430683260715913926556763227691768946641076445520233246245067516272200890908463499757416130423604911788721007404455381990278714737274457565961379426400923366432600206582335570116697661948675897315328075352874405035532768006685093148797275293777171422629916814002634571167483973887079253317069042473458509251884807229163225075945317623343295483161606329636500670137840459683975173530577080588804615743998347539918831073309976789371741600552432954354179502966005012985822009373257665515513637409360364310421128687778259295778445077150192675197920992932691941262789609972530151540354922460154430854843363119221165340967526015567387695454948392496334905808865683630782701710232871810805834436793236608592421025090788735448160631773223133802368599539792195545189063131047302353853121030360367635623151114532265155103190476548974625763115213274089457006821545447788363986749993338891556518578895945047387868843739467897920661579726965355675496760329824480997986644827305288477473554295878259187185497480636826815530418671681365468127693461581484235625229517203045382398940093351105563842588777989502066447299517553059373626409535604449665757452174155185098565895152963340338360266016546677515440673339785765234237738932628656540802919442529309781263050638716812505719402699618939127836138450757551231105888831541446298304892929012092781541914182679807496643814262810169418225297198814377071149649987598187833160001710204310433250461198558254280745167410140910215991521623856516821362126421750543488493306048949893842325111652739943280691085027726649204196165061764285867369611287253081741768090905209063581798203052990152067105134055245408138661866730410827788925692277585315578020200815849271568874627587780689010086733421773186813237223657720935937987128064751998001328279785590067562698216470924960303315868895586542711412175081592335392087614995975408429711190924587193126925227414388752088944600585433458434390874787190670669786702788400136891623510011640127175075941564987889167635837977185704564817676998368259303287562582826946711157527019319050075239024647562189413890810710611520994714717262258855664864406459047914385179010668296280649511277490338432495260045163430937452606309949856060437496446586857206765905754050601539580868939848770972733267007594352878611707029721374167340826277367031166781316593923997862937957096688766175344619278268038981600335057198719822281338545660359523252584078012956027182283413059780114475835642305373793092229700881769832440244344967270974742336060159199895080033274906400889617690298806649403268298670272337087261365342347620101286157141571701442849301192578716203338974171127165447804775396596445954277841540032983540925714835823937479855793356165408988262833118405573789027866144228108212395464064127531083367928873439053965810740596167426608059648788386992738842825877107120670472005449051764598592763615566229302007666380871834902148582115335254554785500508222389361592951838095250583051676416208512662343684506846319804847233200484246211691954022397610686618459172288688542807196455902437816693292243894762206425191591022541234235011768103164940701591462756792500969222502042321527728177985478143388654158343439840682630370709575703412659019994883023353130879740971479577323608160757566106477720808874710553562884289432955196189625459767789167374987875228066298128461629695215120416631323347330432350666982467952381192612686283466175717744355402632499683050401596181244571255296811987376886141285940424544524160857519243962771697327783361423456716513684752814440602218521057943682609894535452955299345301022512145674776092158394162094396267210590592092483730143127255819377400779343315127248360251965867023778628537709154212237036727433088650103330960725811820957960063772222918558423245733000663903977367975557258392302779906952646026479355031760154718421078892058704844092031290490032422926314003412791728411767408969635254605499724146393209928453727441762340469005787636242427708406136906754200516307104412219854292851647882689119522942599393539120155942977796326324281490820814249122547740963860102138790135726294196328849469534248660579451952137681050186712787981632767746680568497508403118607098290408523146428844463807192921426048227111179062822846839394295103633368326658747468030318123509632196347972018228341247462683225567635707081016927442657934532861728392952904386881809082253692510007826350609335827552305837565546932426089513496721105907137344913422192233348140907242924969516647294720176381450758333730034135275925473507440020085969126298677654025265280512312554692709812719920925427227287376971229700115342183227011378957975049653641346135986745927474454836146645982334916637615547351237709238255135348232335765420764689924718118319626317677263130947589660111088859013000690418492438570773013946023906775089681290394036852647916599080711741268271229012329262115588193942603195427574410933256184070755283877128387307700076079057172445959984973018226860699594783186613577805429788189092644658072775794765013478111949230421473056914111342078717646525741073855700759185590777280600747083993109393950651787666682041296861973479483723326483199270749498526559401962701854184917211900384485885691025633657692378808973590928936655279863329109461737940129314812734442893651864978319000265396513023706084070281737704044745756362376036092225520433920800756778084174117574986859107439434202676380787611513825598270984973959180315158608123851568841850065801186879671620114118940872951168269506987661611928663850763738798386210222115976671273687576681472820937046128180453335499962787848915127599037931549670740925073832379598190625488573040587101232964210331658265986122314910375588106700226278621576897028021002524844405338081616166525370893097207449986758934787546780141920294932249416025812008785297765923638198471730170963975242444492905045522377566487254259119426016283294286606489823301531303322045828356243598124038031637965703986480686978990714749975483781927684419445372881596096472808626290062757390523203752141664080827033807075032749748368080758156376357301908739994209204478720147378624835299736281697673712427877911358884717727901683257353501478407764084200928757464691539975271051624241267822288535075285776119730948469928846231448032177017484171352322818744016851309227066115412413917151608953060570778829248116933903671531445937043446829913183817579908259699356009768395790112116318206038345275145246465619936011643506718095153118036412108322087354033578994311296460026929887026771860941889663967582483616785178250608201366530005031085705788416205804092534091189555105417291889249440852497447602276158752857039845245505057694522299763799260672007314994343139605439177708182701436196136636906474968060479712551800483337148878765963302197509197272477507729053069207291744575607952132782288883931167114848809797332932243458226350874284993901848961074688795284118556424691746849343561092624658473820280288733637097420642960565148934301891095934552254591055003778182615781586950082982002112208197697247930150629525835227757471950918313623426417031774806553627999528812269386195992530692076255202403827363783899969180654784678340297523412981882611861009762159620436264803266005391823062001224175501052718434066572527995540173281604338699627521752671039225813482015287068158260048611820145212570854140929065807402523163597642164557689992427240624707712404805295702982893379732162801630676323020657306786045132107565568597571883273222785614678678049133230922377789506362229907644391194155820859904032934375081897434079179828503876080687149250314780478797095977625295491301722219549690908929221282275456634463945455687968197719404434776740591930686528466465685355843539747349556214875342242618502712449130897749517941588661026653020355893856054437513350613482283913683762907425365290374091079520938355862610099777409846767944923322164578951051630487902471003206553263892272511200866479226154739542099767380639480075911542644478499386641904003925574077951936044017659726358440231633619501704738026693779346172297091744960090355605925941930214677626146281585821931244207928633156236556075552886224266414314090969106767006244656904204985936029085894638681291152889883356473872804630153390831080722789033657961619924561560460770166112886493233728253902866053849701174534359908491096889410767337204879260692791479444976096968549238109437279162103581737101797399993326560075104838877071880767704800619940114014280104476706894725156557344436289410076197128213751911893410608521410613147479289463096780825543043489680613911795989212206452601203549872459205042864632854960232331856525435008560626585553625895208734624079302899911769241292061201842478802468265213442023502907410932972031840168961758444888994479943611190572908872633331078577254988340712388337013393200368178609208694941025792651311903327614491903590032806967028203837396982932044469719947225770277320831197004850019357644390648420441850403106784478626020281226524660184082119021317162094670969756178072848879824068340531939010398511503272208735691446377636540093598714982251999219212077420887981265866599213161582433937217706183188137740715732026285801261471588106838692388460685475247104638385070455897593511744709016380202269332843465740249454283102989692913131138021537786140031739716923840244685563919797097682272877359736504000276170551855057291239806966404724336142336511230161728961227828030465106981161046179572915884467796394621126215100024521993275053728448053962013476079559279719264754966112521963257053133438131074591486920183205432327677420671884413607039770346708936419099142111089652501270565432528851034009357878976559187601027105201834980823120745113426497542031475532547671789985339701392294370748147319258485841002432451294027088337795706902838099772227278248166871203369313522873307151384836929463275969256024422907558315054382792370560058744130919244212628590603428197555396654897778052690623762055781395139648192210837666367732548508110115253063450720598758181618004535893085767385503370894054124324033896726695253038291006795393404858344649431184659739782520194685280266014912693670371905681624235412434372223393259194704210301853944136592993115506281818959555171510364109023026589442376957543997551998517644290083216491907551991898039209788346127336239092435564833001496922634998499125695776804592913271721393600515848688474725732331776432489896941202890557093554431953076558727447109536562179559647629719159062609182343676661167321340351046641219300511503048157184988728610710444091908984852772129811195943815142569758851933237167010710562966413377319904319516883273214787451546162574937026050236176119370519929969283033677471414380628550681764507120079816042334543006504083208200686927314684356214034273750696014434956729785677460067350158428463768590955279261561549269730932347102089509607344252417704849461767474729348462396803900136548711445574631072439940470148506714898579422800570507697969966817847249605705745792939651266753210306061392787589857548778978457417332166798432030444101834113354305617151711252252825571199308344353005062081652011612236064178647798272156780731013599143022159387084670314159486865503862318746811845017075383568632352986581974359138669230612582489453734323922441514585862755347369405459413391271315092626717698101851939390804738366628744886602073705039003223821548615211848239870415687326410183928310476250085942550614156123221932569623829393226265767519041375854448061537203459067760563200309731257311217582761543395230595043631262142282686652717905258274416447233140089713635619267466561860627454122676427015560616589204873171636624324243571838041357997940890593663974100167363368336629530183816180579820017969397489303103232404098846902332775675607710683155587933988417924888078339710170852661019730961775341928006505658484111056054264251147719609072940220321895376891381209813763773713382631168352177687325857268985502411895755815394854366952699297777869904797610706734398823835069072128291450354813742035677459533167125002878963265205965939472288957635817351548579709409401055722850796818789991017345896133733125549940560476285009760039731023406163150005189579038252686216767545598555719305233752351059044303304385411899920541765223555161971424771841875070487565483294652243818275442043812820441919090389840997926364528531482594763127395322056686350465841955253704265101927070796495760160892980704808357298557638191725200718481647534411227099718462895605676914418598523644019366069531594618586770956373225281662895866861684369331194668700347194848714375826885751964008089144502513266783414465475949233051909644227313066955558903186551141580695209439289204709717073231391276237295017943611548790700216756158049717828420217584676071768504231785313982946825691579668118644625571313997320812122404011924729624417820283458191430616091270695341719777668724775339237851324943809714724741980451320203496775444146060623400149009387425959169546796514602257191844301037341885201477634566658164026916659167353095402140987031558872826413702774708636770983616339051253178188626083701141347628364992379724233616839275517540805054863019595222245820496301260915699731069252187636588035289839224709914449178586979260764546950278045770618703776770424291659148297711851203101947573712126265961477110818715881405425739868837893002650114524190161691221891179510831482646671805939502257322838984106432349799501684643455386061239047626896771646248119248362617430168931158230639379514750164126159414816453314615451405904224913017841991529232371022747110801249896336335482849244323573657535456337583807613302315400507615810780471620642238243959777846902342989819511048929207204009914333616851619311923243316228587151742694136688857114492763656810887291549499423292868213846459675597321217128455730064385102487094789243539020324296337971390900394487081033409981562164156948953778229592697570649897564079635899641066851288007946027792735036834584319503385469931336715901941213377215704963935565481995346017741847560934249857327857038494434266022876125285176815005290713450693048933385419426880621184835250723807793022948218195367234505288239124870364283362683657393737015586648320077548350528426921914742309650998814239118973644469875625676629910641392189956206181900493185863544905771022175462335189840749209889630662400730648499430283925726391927384006147872767420902907317100412763982828499686119512215357179786032770015930326243102296710263435242680311763168736834830801590575741143814171677175481160271229758456838112395766410690701783604491778385534351889894291476139637641546510282673757843086197191965542230800172560151683638673764461784380548681689122603603915586125931091886049116395411978839102979057876335661382310752763937680734321298827784771472634685061640331457827242237861594844938620409102393413333122377698881454287404927277931598415553330763662193954141485242204703848682868243256604814062952504037643199002644778490645568757422626477475161216337398530741915839042169996022818916247530531763605295984407200670349984034524479622126101425626409003229846623232489721820674091198311381664558193994559965683751202660176611688019311277242918038168346592564433024744442495824134096030967375845069897341455276555838763154743166342672193715193320625879104957921976351061459998449137613378712113128766297452264300952487584446111326960866222721227844738561243249657219205929815188030285651378182599188551504455005314689890147514571368954551683608312516424209656083148146645165863642090065353731077800038295175952913275298854728523113464454697512927429247614236306213661307950540661335307479690305932668511984941563200315703889324208313686542853495591079507840888502165132633120849590775961586748763122036889189888165697893470086163640990602011767579194759024898820834357729505062238769563015290332238216462245581235694764655147376092238307138981339420634578183724127185980207731529305247412874034428926219264683848551183753051444715040279434519518495762946685219873465566664975611303459890436232028910072763096170160952588071230633537988870142102158704556292488314113288433810961670975080254915487313363872970923324525717555177393270152711764929696026356076557083906083968162214833894066375252973514304051864308497352444609555657166229368246280242014254450036711424023553244146985534574145947819997124548837074407273508568151871311421993439897659571104651200574435687667113931537410031313537973328569005386434927256680202672828025564800747852471191004577902534963749243069362393898018255697428253521270726070745810296796464299148336735534707561506730625617991864901531922123114405933362867313793227046622172898793634717868407809126815320431129293691019159200593679114194071365349052952334039444446074657661142151050596111049994501796993581481888068405692988403293944165478316878889566470700161604863521451866157285811367454417666675739882025190189526399234663994141114863956878353020081473578205039871880280224805943270043699462931747775491553602494432760383430050298258267485231572766772292722447341337318837148866997121882734378141817079702902331253592950281346412488156348089595087372626428113853294317285114467889251288460307564745794315397786035194207530558532386091151905732286752614087909984492253861095127258631093764744290593120886769763838761829815567515913942693151607221374470164838787297816351868414697374248489632109555971579922155194066543598235213685413169724580674322013258233446920914013511625201663517158528561709903807221806054302105106732826812216603033142910675550813577037774675342606671569024892197771423241328752994420321348980302132367415857603118624008343512288076845626623358915808873364024548122877033865659797021411843607505962472508842178139928282476744019297029785142950355059033708568823115039011893588391487084488298248112584566235902624625863853672189956509742728725826479449300350539193921673545075505430940323086651774142057660863285472963209201044009091185787176813553137309993950430496063528886095855327350201381375324949287024879319354500564298984415531213219829993074970820570731118230315621825269373669992838863584667727193937005337629186401534069122574348760549480268943399976799499060958800600300894996948913756579122339981687117317653226475432021667774278077915752613754680206393206862725046150161049131282732501967580178299948883473411476925119271339659799719770383379118028902054498017377674982755680754242623700666834026537649172890187374976130498399305997297768384649577380044026205218179901468498921767947896430812462685121625476878190504525445021120309151531833944434957161109399897506039941381956200033975078952817401920217503774266438723032743587866340060673127408540540822597347435647553505361203907311481266640906036234537552815563853214202408161486403657245175099698708500000172314376914648308470410958520408034165828677156235931198676525739415893525009089702874761764968984306074603514767953516262832433903808177807019091068499963228327212698414567372599710212554376940709162835359387617477635855502090346947330475988828827509123771578314210898151956277600655836484183436965963064721258844350266605696993189575305841118806503495236421537747480140333398922170248328341988356497301304174900067807315788793264691449741207060298114989941604520626878472185332869468017863935763172782247057922656347889643253442019311432902882661840705980136422760870009298170029695676372117059678034504392537717945536303440898957536018748320627797270172356916668383946767034904340504022021607963548846427102860797163582022656763660684616471179813330903811097015914646097019047573258327236538174994359219276279214635269300249669022115744263695357565811633852141954105017296939981874298361822088880256464242903995803445806599759878059388793676951863194539191152045340620790661452056700534483674679110000532035877470875787252292362457573171001322099376172716267069261209253748964576427998738856059260533568273689513379330717993305734478322340244595108324665553088640983780610044745031481589293354385951578360016844406805476151769581574890268324647737918207891763587361763506545983456134487092711527947878856167794250028998504668133519434973064785417913789106888261702535161701343098985992851343683099941141254059207151157874113470858283788956195394898617849418944131225590843532178184746953084493573630684798141434222035470879282114108598404369947199099511301221708899633104125665550885498311377160241775299791954164142037255573670316540534778503620766813965850040871835259124760331314026848107255438171314861545811036512620635956685970307564106885525059150732737698277794943767567735443347328732782337339926559450251240800355200018937669491587243359990247286371401373681528830236871033726021522558618445263393205659672813716420031282075661213318053241312072626114811108231014505751525099780299680670977258525282244039674073735733679617698731506335928774933571767800239729514325915299938403023215408672015027413872815604974619508683146358206490298376849662390482973538791463214794994149986994193434076557546064121920850639816388440387951161210724838752023941352765424280658115434292237306567438509682520217260478197969926410964637671059878543486054750185266015245896963115520331777979971489286547877868814484588077069778829427266714019009025570184974097019990638862465880292774699761849062477409292687097409203684938902494409540808354859874974976528647794986820889085997771741929481929068155514629429196319188519569234180880346694021788557267012849309535779066621461727650024840607657820676297954165409350317925986791529417181264984528203382256642347592641386603914665084718455176438108882132560608672138803988105360686620136055659613565062211948061123837862303424103079479419385968770679846661583723398643103657888282454885682801810275064249021730342621722175055983100509971841256433753805687278268307525870548765840474897033871157016419580482248535628746407815694836709937577547881869964777009537965238847023561020818110005335011340627956105506844295186049876688565952463038395043303685710502951698959085961051678643492272642217717865214858366803076777996891981647263309986490086208123283944523610444722209168325611580789062649439503999601375334972716783728731560604642261518204950870565691793683841722191686676198387446194581687221203001663651786617847527176153785443929532851735908880132647973986848929715052991918859998811036818881585180437461132744919106921556574525341367838119178860457736342096997436633300420652624807599152068403860346596599903186932992484160647716925915231439018801663158533795174199575922061190615089644827771388810730393650617659542335089935471855195325742956853777472928047117406353631542997838255083974993603155807780807036525682314641754302980446026440954237948781446725928638318063316821270873473469765591088568983212229595286314282838094212379654121939095813616855802130830633917852054051610164356862543105054157587002976063301210867788083208056197927195557445074655131413697294936505131707833219512273136347263842670718738245917100325580052628436654190358339705924318632187729056788151770100411149030479962637964989513063203460229329174100864954250511795279717049981746126280105418058104558489361496186858138637777680509789581031414897286839547894492413369153576169844875852075006680648546471517403761698811492449865572723590408946692537929391253929679858632349372075874968412371268794116050078075140569908715572535568644468677288108626977544319349766195705455452604795615071365985447212541863912191275306183338254421886345373913223421591549719715237473546671556735670201451000484737286128791564006226974281564448181491703568308367263368533458904056008086059922450848241126246510720027544183171266848732462985866738573646278806276677610301966190953967179613490602312992592714056650242696101365795143061485649093046457200587642993449434851773767830857681897706351551315461062601522532735706812756093320586845590424643806089302717674849826574684481231135458116812946298505150659151251902737846016523191163859013156234153635845467769189113554781744601299825591719560799120756662918468806727634302819895623001989077641816224819582262847994938057573536336701747418911187751304924843959180229990069973416973613420043742558578517633745833374519273471592416383613385967671900037344863493069696978853369913867698995066224761302176961189668275563958504421605548216095034522255046807851661468656978017486114616129318002032583090634266347550210823080457483205623252967194083194760617143339551352425808165945884848864631344090060156041774401328668039672009232607976320381063681160570122332632445146388113196233448935738850225236307789834868982275676953338009985422341790598975123809005758305188558117299506225156587843983523352290776823061525934423951281537787447443997591479553476589381094523992240868900342997487955899018433534291475730412947531981186185108486066570947840541027495512600238169522968193709808406699597090874572153795038268961274975648702929689539557953737112792470956415779640353191301480141001686090213435315122011832178671113852882675884656141915703877965210584132129566603697176961046001884971713007340728120590990248871758346271929360171579301447921274328998206975148286097570350327413452985712843668844526628976426580279592917940712403282233706128994301449949199766560255165395460618706934349697299832703197140307769837910482168838464658432147610369988721660423365163640651282680342248688416488523667877821130010856196196768166407615076879678897662656766928155426110508229116299245524838749941979118970639390584823195089491361385131379642200844446212594664736784981950078846706362698612798705354329553090279424113706895450523997813267067227937715875853126590942216574541497546739936377241518522186563131983769513265954573834487727204289594718666390178294913703593301177731895882303549880863439084254449434510698217535608549910548086656168377771687603236494608356789245326061403369399048863950627744691034569870427850092475301523037205588366908906957479990817507446726330508247769829573894756421953280229680999428258542980629593110666001652511155988834789839787856881458689929175361626611972371870012286163191481339361388754199345039535764077778128186474608458114608744534292137556585615387690498832925105652502417253530567798341469039384489065964145327498220138890990616164656707999047594348292818676642680663591709482653302039526748175319669879930483523482102549945690703260364770829366741328596834681448478381639066891184283351105081338140031787371197472115096821825411720274680567449402926258577324986002047946090499316368321711783849313408321585221771483032281965576211917789756485750763192354357938049938839377399083451217631348124654315365080625909895722599354487636491653451382094887077852923918305986170278270775301599135838762693220417832680992610234276938400393912751828930914088411577819068886001868925517516824519005829380019237077919115082665652619093803954105635828304436456535753848577610451064186449062675616745905672591756876945286686191661051990649730331680167880415125682112608600362405705873021674379187562059944717544588785569377366860164322590939198787742932400842589699089073973287324177619400969271677428067091288647732867053768752397732817418134562754122696309904491894644401736126911392226997416060697468207597195805130489091295132377225597078691254214037068105713117725086918856815434432032918159674452637044156178858339604206532139942195871783756151324798467797817363764862701902321220175306487027835776394075983726777916007242464999235083898709181551774960095328733540686051500233872190582393491452148190349427222164169505619153381045841418010182763960403364770801321894141290564779463555521406008228728733377535499000342652454656910451608240221856842276966967090104549048548181836333071718533085251864800905560476968772134286712813386871412189814915735518130161244953463407632549289530512756933011756434033105720041721346373428645836730458889638650330258975956410277014946121692875309689230258473321722628389761270927315096843065893748136699959883167531190850055074740983966336367782066757769174043574483020033171411552372042760459249493114567288182265606547505159123459975716475225054707723602759448882639350515172701114592926033464939044786266368064652573983251161033896735281052336655496215553910791524383285595258888419745271366781314357492654664326698089190942329443584801877511575887219406840629757097555644643517159467790689463482173535247261620590359632963540815618820143185184670077028524103428636885373373558197714703027969766088662085658759944700504495189268267096362475128373188125844774487237372826740217679552725792066795487932985818286843044301049361856737207724747647526193110611265684943545618898801956881685738971476790113739666558509937315718731163398537164912492028729281523438577172442089679571977846939830417562384189362183001157898815393657846897173726116527715177416355681482049048725638185366262554932483020101439887960263745307616498048842005010227207850491659394684298103799351548387613875549813375186919336749822172968283283359066420357030066214011308952752818275388862936314604551940963888440957429274612789862180242077353446083777231274500084278983639961745713345559096859807730216002663706370172442453094524221964658202265022407192929672780745716945879820791687303924693012260087967184380850800172828981455111336454139001347350012605863577756918528461825910192938759187036643615119495457187477314392727382971184041676639305743749147026959500379699611103097210674797388765230981676867647521932882467766904787699938000472288368462679658277853384892594450756384619553277446347025311326542625861148546981082461822437712953088433654321348892343154565497423944140467956060169711484772855483963997338666943068082510689651815056902474882554520500197401986642575490168000587746127804752658480112026889373890532263016426067484410973168325620412580555667715913412310287484438699473077741935107589475681918732323590092113854618485954217554135590773525395846395069663093347816482718361648667791342073697073124633953697660265830468591987462774545717564918944041139903407234923592213334445942338544892533618971167474534530107551156893086492578072962699840566859343125321574110165084085864368942370541377642420464048028733642991881915662891919282385724745029575935663329267273549244626333406627671163944081201820198972541771400430634822765964870585785533565395517388267730945768718440101237014463136778092905725108530094666811804623535743866403058560557944720544826542096262694343618692263792026782639983827894492398263232758028899761774789053407258437190596647004446766408906871358252223297479669951676671989051674705951373527352216565855240628761604851574563478515556516973392764214233278929108026048174721695093842135223692526626884925671466218345086086579783901879011875740536870256069822464764180535953915525930887807665000353832246938709776959764335276502355967051310702309024489234402228181857227319060066777089085328040521441673527024606916836218613644746263912203757506762343895588045916847109673060415789719102161291446540355246604412646470314643439431498048418080010139954716510059497479131871066373436699194941243823199513031646846749620363554523885412050057941876834119805859247347631626517211578903385150346778747627826621564712984146135431346015467406350425952733889776481307943247725492996970363453974372273621123957085916906935712736314229714978872896690852697065118240071390507048105185921398901055679025194847719152955342223368217751552185905018556556928002514216943892902139369433094802672576418674121859610930059570189935824326801057551871154598868509283809725746361365283660109789088360167001835827504518992245698481132153402504951539376445556029121642912378208908016780872593508675538705385935382596999134403154060320242073182661732915503333349726209619603942684429746520369244011865776219626279384025976342695831704123015748863066921357156531592680839283807819025643450290596279224778561813450358179942927714633561847058253478171174724913578052608224636171343912299687769911090446083424228930285150340647390914622320222991159906542050547818872730738873101831167647735368329345023951978944431429767308144623335006549242229194156713519526356306634511140182295769150689636967133429304040342669720607062126338373426718977304243678582561405165153049039930879414209806391853420728296895510068420412449287047018331157210356921674333366302149628419696571255757836108470848090194295062016573377485512536181383125806733367383605733217400412589924806061894999002722173555773391585786196096241932800809770004336148538765756332305235655100834817305185622172358616188050356649259467856882087753433319890971714444829644103651680888868429356580378421866455374587970615839484331270367885712464235982400928043767718715876043796864192340202845708610302246048829734181450212405013608023149615344713761814610141223717119879781892434653163690424575904715795305123646211776500169370190098451409918285929951257946191698363241176945088672417153054669834496181544194050376271057863228912065673307744987744321463013917861287979357408326543093076571092245991683395615318795766523856775708745987099592298105697809475361601801884380099602294005469116918589640085844082337729274155149204908821358295405018390771502011227453301889435684401463133034805593688964440016921593121825910751508978148502778117985952136910015931062884691254339466050916204943820443144592580437884894960468250123149743604518533764484316987141147884911153356064123739983566966605566774368677124171433995519873562890905881246595661779247931818190308552512002191661285241815943254385840097598038981649637980250307293621176723512704916504581013504962665894673522461213401980011967172742083480970173044724959400046358282091171995534668054033563550379379078837841978081284367141413293904896746512055223249781123065478620746008492581813446897147599863283058340488433571350391613795307405729380685492933663230645833747261616010114717319517168336038447327918037517702775165636603332606192969897778696951396102979941758701340879323329203534387626802054448520058087454216806183955115647240236280151168430618407720717505529605648167715427867915080603984046221105352744160474214618481431097611761462920523330922785561609183449354181261874459722259834120016404403793282751660044049796481079849746550229532286943282309285567091601423712982371864660066712359997860513299972065048496512289300607661775040312924812475143430848798913659343308288732814641966280948149601138243796803606792276011348820429739410407395426265803474941449806421770979839723520563198467985693560258166562457007699287997897456387019792618424433726131124604088438160577938857971864044962122934432037683694346680496009432206753127133287628950345478298747511584848330305861317166989013545673761114228770431531753417749944471659701437730096359677859414134048524652716895667388367938995265273702520843651346515787158492601038189445679240737863760484665631257931178134612565689063945267754141696561772238890459992191561965421091439875960521995442177692339330800176927221112760257010980461239734138401137905614858951446273308364528343954888851922341632010792949732669699231540516899843204359334739570726939653187671719559862208270175720029630901961983364625432339668935971223170442746816244191034844227532690896791621291095384376400821519294418597360808652395598762787826882354363812143584767986714643342561841897003530439266783761747831690497302063513121437342961322206489655955369268783003520153244790792262258500224347523448995520168883995236453366534014983871653120986702535415543384379787751592071592434029805378208714264900707198503481771822187392466505143922203605407013820116827307630604568056520131271414261815300677184923063199056606465799385607511480594412959053245315171473580335800258390942280228375106624703939647351697332430916150848982089087763673457227540231602628396960124170183316883835224941610278948017559475941254599804167013466548565469681455672628131655584239909311387784948313163699398822675424224188819092920765410811498031638543371966315441375711474025414149267064083922602882909750224948823798199236583818381190231351506146570088602286363711873850923618198774143095344449188540879942149245651398017825498475834020248651384893060526353559906936718347064558780431636426235985330504096618210508283324835882959772179070238048758326556298706386055094775804012313661966632039111051281072618478435156582503708804864055259410218485167858419986857401759957230232357277857223861667543296811880695654065869691415785535880458349459666399556734748036704715404494100429864510762238442530607231140892141519876399546256286344643676972554995669777707686621848950392919644979537818759503369732998432792276793563497889515382309903671711567231705638991108663708090439280636053599676523329990133849484959313431258421747136359013880348100356778715636242685104822173333753805744726484671171629835202742257630308214834942575697510962696083946280857736227274723772469331924185821575923519110018200824984177792163494800684066587718810547392453994756922333998997214645562178098133026849669567173144938537609258793630329062491484644066049956605208818059543993340458684549086723281777798642906385349152521740532402394114508622746557685290139142020368062925605210055043321223168916183558964395392838958358110930840385996741670604580500905666701435637440158256085791757675248561305556984886849098219767094152849225634469114439663177439969545263630333154106680338481669331475569064705949585102406506247404292616004288130070457418075671903915401484411432960841491296340224898598265979231874671713624737768051648337058887123077151908475272966021817341397513712152924902297126825563857327476014716686970950425106144138046216709751441609480745875429995663962201011552610586723055660198903923830614912432638432283546244551730255971913847093293687557502328386226006845671646030220598381728920515852085053357907108846365747112665915528541845790625446587286726248901588606284238107749056162251914912385335616029037201964323518450855650372929195337677260854793065215428916707098822520343884572185184401503847064024772855410952619207395327442186328398859430868065819495903032688249651007316163419422942828869141338131459934127157658158395660638825703848051866057748982896980586897278695030587609459024471572683507417979094903038221335118300665476614509369652652949554994346282974932360825001247314515421950549359889252806424201804557568913843254667410934025891064927175574242727421347961959936147480905815441974600894136729884809421192331567113707161376943053315419430782883219748689672161528754572472103273713449226342311379747386117332080910964666219799619163244090775850111995442147918456012119217367376020107846568920268501093308680964862797508497970806906484867735126323603998249821326428609697375773781992110978058766017451249556479410827266663596008793964780594226325900769973180115086784844445555206708045794739714827273485309367880829683471587774385720546203395845140199280656445395100297307312546130388582093161270615256972971535990348230028592864919418648486682575310036376529519532010346985433810528373689053498820014619821215410040405764302064447644742549486528879974138048465493693887496832170811320060883793752431961245416259121068785383866835740708880332599976205399333246401524407574298602342811420933181817811667701455964977904738837412316218312353809476904726265471779672314617097903943708649009883892695635104617162170986752607213430834357937743927901617100494211388757717438381199902516209038721880606222613927660694003093422520080312038083855423748682095293914613690263975353456807214660362546515574659291225561674497173626942703390052297682867709490802969619708615799850828787203530596734499968635196222185644034629404358290730047343263102868903262370251697721494700571921960960953786907008727811695735900415778464433353664762582235958289898714636486289155774158889534140529272574399757045440075457134243082951398537021055377654139719236692283463957874519276699074082213247845571284843588150010769132808512199995232528720450627478631040475844952732435534005800092256052319863275367886004101905070744814999796334926432665528071425151258004198537076905522912217702207479406202416993387278857390753232859356917110599964464361803403842795733936938133333919710246947797333510041347923265076379841263331167764915100297525740450797288008626203600775924102598426305850869871165169231915718518639853872540421506800253890515111138277772409965364974430180407150292199400473927401120641284331874331219047187023651362239088716681463697019822228585720802197183655363229984621376317856064764090278900179492364426698631747798124182172428304850828381183128025989337731731409800851285689708524601366445916840288074686550300571915229561207621115794631812569704345553718695796028649671449497697343239840515800967658078928068688906076728940265531098534318437441060878996119546046742547324442046195505709657950104109148086286753698471913240423450310558851984814929969587682900315523281705368880880822068194689990279147633669697800598949159600387446448544209345509529265606881779277197315958906993015692675428307694302477355030530793913078275981974252851921130281979805627794751618838413846222543346458554197243702225658453213677091114444285201951436248035499948897629422045242652160904315302572824429039112374430655243987676210821795455396966613995369194054964590769755374426582608292477500199489807162855819253213526163439478332151123169839382741706070888681950507924334764886470937126911104763205323915205804293662055167331131322175432076303577362126737923656072339517561676388130385312436489219611676000467746163098354839534048123542637233122585455668347680308450747256235756409223507060114302347560404445234368712330226434715883546936269947317315094394872955724464000391174787655296331485337485591932717294671161636946439427928818139649423625205587194589901772920329918229203601567528212992549019733091899031323193966814209296642905407986327363886778793751423474751181608736246711469734946853172640941102240849652501100509987192735129498226158391302160492163671844017601577014247492872940510212593767964364181689520764549794127993878483876685055335467262232609300945073193313253721088394375564578324063103575578660248077877755061507758101282344527362490487910393756375089526203175342335867919260081399367051257879259525035921525084906468776101297283712785415777975045953533846650128330232416234071709328237848291897977515425476867857465480121149767264468397759217005933652870369424647468617903534646838437200016596920941010342102081757734464523917837829147425800456258366752260388685673375677274273024353148704927346091752316112449436805854508212121796826629994956458084253858077876874730320153181245434250350511805150648901043679874011769165988898783762163500009193799967444774890065095778916330281841001537083133278535333036280436818807111532636178723810963825403824842036310818995297861909348537685184833029276389482788973404593052397056688479897440264669755770166952565969876469736853952891328807289623628343872124640462304793631324637809565787645981982187611537763463824345902492133333212616691680936636575757108813714752344306675840830884542848458560462286499717885693024668464591311991065015575787710322093848273660783254009549751641503136765434303008062946461276302457815904952027548628152932891269854001702144227297058946620238345720386329915519220543633233076590154518580789915656573547105042055841291847199862599463828313611847785244512131505791035517855462221416066720808310213486831606194082318149703529361821072209887131765349348409921311495284943935472651368485405689482911763814370950494579795075456699861768042546462756249005725643181100182044013978887515418420325505671317226135504490370903714382007724136296616298340037686592542831254511501001777399909461072990759201542594371587156644735572554166414311048351944989304713155541586170230122394968352771946473144100128103743873017160054165579522083638387183741236688721263150644079842174238970493831993775356961837636951568008542921298495353680999875531722772749987089424433147643403936783810791694370099904584810872984919119107641046829568634455631313641363638269369565559057588866155988220196949490413368689951231425211015811916452354928875216160544268472470593058837171533053443639490396614175964943132238626650909726225823872626849578896783465505088158022996323103073619546601320021416285413857355090489920350763701709563686978718817533868035928732287682070560956892542897052208270886986876781090542557428230312836834573689807236285084488533096341338806034058984712476352287977545568936971853689723886989227193251001150465859460788323616921944247178380832221044667078883906482793802415253986018070960578421080681111754433578645116545918147773514177821977765139591867375867127039009772584847492511661548196726891275654765200140008119818608762464560656246689087119331606098302343201125688882363463592995059963864493714860121250978917166753849435099596966344396909425483774266938614972037206102180875290229066238411443012736937124254535093096875666447084771408903237204484572952990804284162357219516062768531385057916607332377214482759960528020090634886602029535902880141010395902515465411168391253949885001832683654077726110247590769621838647750126111741329231632299755138972063259621852704163212862153107800631644122912133954433523272118516765036020484756622928207669741159753497204372253839117549273875231975969875537856464050261681999697888108817000270629902524347799620051869461139785490709954022489504510672142906244155519100810573768350927513160846122465182842553621034760724067580453033636735825039968518552863891570422509991817787633681726760678455651414414037667081398277666320024132286735407455900925040907909118081687181375213537466881993465172667556012770165160513872010909048335307237253269862824671107856543362357027663003989271051049358037235762025607581393663953200070513458083704996005673519523728364877315030579046981307412825535532484185911892707848652467987645764662452382911730391301405445147351456190179152719425055614485391300307877891330040614389679497091882908044165722109319133252373849091049137315453801617184880661464716576143372144838218292058848632098805372308176400796323680372981208514686937663887673621976647506235527558322954001207167746892646302746159139587995256035253888854536217868265205879322608461644782254480720930654408447282362828326377420066665493133243267025388975301778832319914175286718073226464221865204505103365965054392383227064085977580887988106123525731527201370787307397420394700528113135834034366689603953580931887135470052178984305800433236692081642907891147357286927168883072364088955703423603906876911560929368741409499714716405881213455120887406808763024301521002653956363017661979433887527971860378555497972111499687384871604182048041884136164476642980813503024881625301369986746461641108899228897640896417681887604587764273683621886899041458048224283888596780389298202147424583852226783386381912434718491167542283050679839046808660546220045674873702314494469919273203059626223067884506999979461257926866886931982919387692657566276298003020254745742447306434737535391130362499635483218102831290487602087375291049195742395369429432755979150940019614691843617622861984530324385953139016403126697890812281158789611911735609641403645952468809534656810007990849249523284548441257394456153893437403262765410363800325678391760719682043525666212713969160240395162959707405550389218335845156342566024330665042510669197826289854546872761071034331170161203683641934819026640976358446602096663321904936817960587698375233971536877712152129150324500737336812013663906403795933255338423151323812223460479991787729589912522480318989205708414471070423005363994660826251377170738910874807511265423609940942581350497257267814846391820961890072718555687208894772581476032136769813718737282715685781747247731361933560991684111433213312621978789734064688453283774720060208520903931999278680212956010551236232437667154455504707322393699776837824719115829455521370283326748268702351707404704702080821538526635362098920235724640303209339985157466286748952471611965362532985575588099853085529391190068436735750092416134594881447287318145674269546195132908333981178187763822807073182198594132354076629479991870868695540750457932813734881091383895282108582968505046504323982304481460848702984588968582789149794878481412626672444108564383176139710855996292117651268413698230927881585660820950693161496146821361051981953296965973711026836274259888069657425512928875589067604658277168030958179691405881028416114769532062438495528873609434277980873966213902666875734555336859071199961091592464813300582400336697235593352624275288807276705238299299529053153259100954440707534652315118776488617415867355925882073236328548418616997240663969358119484420506851278555922503064030109258352597890478971795196650826244168521128143644492114347110483552339517053468460233433627023242110782803880914128787954259493445972043328438284293628288815889781512534890047896088826139219341268969871495264820030441706080966695981387292463692044964117613356529725865108412966876569419649626183406658953343211655591918670111414520257664980913971345182081226048922384546189427368493144875785644331090593017080088027559442523832802865728194110208207385904985143456643537137768064185137042464096065154775880981482328776743898389493399748293181460583238726311589856255319078525134968085932995205201719596190060021577752990995058209435451496761837913180931852675176133943130784584088778614726468289491647592089688952665367751836413115657319147079706570671049675374401697844401610282213457303632700231960015000248469131512246003250760381880194479357743897660155133588043308254844919322622117549611913081008559856440458808415698368109086999787583944559107372813789173440711391950965377287138651634843329924773645201009097093891719970754355618485720396386599720784168381044673438984302265740841443670883829873748267782738026817985811961372432813964019957751177311335008897920598168368025097153250779123832399626278962611858314398642585905370457398487251047244898278271048228570197872569479411673402893836727453016122485315977269034867509512859523142656719563150251433243831406107797910428174473249789020234882356620274129175312691136015650380747283237830038456276921090635004064516385345615766650971134903540768039812617425817308199418383445038746500222690571415212337957042503806920338339379775545164556673279966524759216376886225736507071390985540689918584476984442582856576518769983111353025653563914119549759953526966203951948387171446130761682210763936691703622208364865033433020513526789537972515253558679927792863575146878292791714611273610731371337091298753689448651727629600400731074931985692009055380193885407415225342139986110713616659852461822196248485806624883098457721933211444680550758877459780022984109093614952239550873305337100914902138982977400996812551718693904476373262878440053717318608698561586099536830984323919629229202012289653274733362134839329339409544770442049754690095720496664761629011954537686724347930566001358255268053274840589265771062906652787315986526749187703194437338713960271565201225295072601725776074747932998120272264443539492657817810819184907645271234656940247290880162379122421280793629432392811355757929565729693798448182640980052920523703013789204635840008315606371322658106106640450277525833762319187223409304908020195894037765868875972589275240091404300959528286693230470877104657743866674876982203929988124482049037596481149115072621116875925412046446736217584282681957717229132385569578118125913459971478389798891532280040225726168904671713863177661660629679357135905592773818365802868150025450645174063971985747743064700103433715650256899682343644146599976452854479432704151827460263499370672113048277496034282444837557651863915800580175287642020627424865830161387793456841607221624041662844561455981361055577220650642561374749862096769587316576489953265311933292304921534791063994261210596057508935981960638335896540863903211013467451472900379433576206478836366230545623957121478799470739321458359373726545679943101623435955479934972383859597047180722418048887332948901669390557814773373149260863347817991174928761932793678065912635534120350287568590359288686295102862290827135957610029814913657133695510340665814633873436906999422918080102610465859358237654651628692884106521442085061999297628965199088215643829182222318179585630914999433211821511639541734873085110535780722696403861661094310320644522729503520126743649561165827806847297240989848419111454926405887322658329583312024623698009366711589170342166339393457473011184554303945498611701189242356106842915805529341816285461722900112517512004934922269053735700734083445575767987258858377570147627526287034315009074362621398942146840401709435588577084219563420540571174470448583404428170018895550939411777161009906054728586338073489334922991677849098549026420317875767588609602291174118675621594691811581040336626133211967974013675458824587765446536816982216426323284228253017051557901755546121167148729648093611645615566674125008293153556580530507532367094826025131648571084829993487644168478011927431616326025083889810679075064824120721694042004186155726635257041369917120115717042831816330206717126451239443404330841295732619473943762894564036089748905329883753234554749651708485999683044038086062511448406686702680046194341991419120480807696049024608454051999709600654192334468281752554745573005867869486699684163463052484622955364812318445935517657744532685264085566193123211519046526958112594897887395700498907168980014405091507793617074192785599847691942105766092411438169153818510043668306568928083713123696433302497766040151232869623202170099297842678165660339344207067995162762574180520171181445564762832835313960218297426027950901040522360081774016446782886092595298926188748747822636422212964500450297785825900985300173999560195128706285251101604964415251646068498336951750172505637557747993884924484391310084334777058693655223504187791764908453671395270469877172506920928310821016271802292310711004178731399094656990581326101950736226476253435213264779654474412642119066783335908726141389657288612329950827125832636905631644757130276066552026621812724862545091034221526654067317876756950551516789577296561501892093431442175990142724978004107904495936602447949482654395378491851354473135773274733156839709013625767590183733812019172398813140435953021751785060482328000370139984574744863727795240906747995499089554682025148702480690240815975434836792654318264518119845559987714267269179166243012672909584376161550977276442086250904880778803635820716707576190445286471592989185304847079614226995515319499992058218748347974927416153428616800387216953712927313116465581272440429378838289110135289321580836399872838156464720746052689994566237953329036711273832064213027654700175034809894406418832493755565742153245494262605664879040878554824246181016406487717218057802265832412458841917203872646509618880462648878655990105113689633444289463414986627047321144169568238501535022513872546066268930193744855734269502449723092266478555609408052451117628318480985201656772897867783927877556430567427652281337420203046984459892010161216603275685591130769311216345789558917919184967057159342236496666378355726715838952443833405940295108516230895071729482122827145154374608586355328910998009525739161550919606896104899678683094524773709010762998244797707254224666917930937636700967264884206302484554714158633793638257762478615488537140483421052634208086119513313289534141650206840817806872715196416491708113581674332173040327316855685945925685315813784534087218082451209453581063188730419241015504590555480760333340179991945049859767740082698032499758778399847812250019111011387544814445853536836416012064065874330389383634017219680253634610095866937232026363261579360732933531692857624359057783785497205604334169985356135216146746761387158979220407292255395209472161444337499361865675566103027478176884260974858700622220346878971461886634235013094992412004399616728767722047162782097010495449939185913353001517273335969208223252061035370444149873049763923460147453669996717714169397014251000880575952768141749323021028777323568981623306575771516448497904067518767388060604712547272277542018547893842035071767451289308787562018999512724960132037700171334336840310775051050419111646334062595893714922670119735160372664616024293699592979931949863133101320686904213118256502018878051380818164574472228008717285837883486419428069558656608318576916735295598516923458418306317895727910349264524521200976962221497418851212679032515406091782390801888107680287690963424750886435574389065630184428040688455133331012758582268288443574503181794816876149161860083424102178267471239401367899591431144333100668751761135336459288768626666881118526092978821661012724514307794909961018029059621957931358686857158576023014017981720433966636085664609526658089860043381211662454499697124301731529777139868526083050401615521417395598595205672222557925377678100826786947322684321055881300960624764058600560202123605675286693423485261494295549594357789561809441816222834713397231874391367747390081343575713582728603608480394373276155359897271942729171788933515176088343028669818820413893734319704845022285481471448010272406353449213303981760449052271342287886671325539167530969146338029602835856531355808051305006863914272662608530415331086728976461168004021912879192986903812185895434755254473989039266882975030858399730257879181068895710754203477081828345256101879289529009043454491440939823332006194518690275753875417552893012469746366493397576399723537514451700909046946460370430108477991716000951279452022488617812058390234979247459760228490374394118875534593027764673159311149077428811041556103837444763546197472953038082738889996351754672950216324262724180780161291442712287268872595262436003633120193480926706432675070094739188743213725301720753939893829917646587797380100244796881516213447816161541928450979599141823635751340814554860075487701881652578693468843952962918184839500340843620483811712011166399277221946928713634680417412531874838788843338596449348478114580210590918335141637193824893274578239803300786651600646686523200468396991462429210586489866152874413070569346066671325081602811950759410099892322094075328124118479513327263654557501338857414047688925793674483218598261840362961125829035145437748785191693606931196489882383373684781141599714120907201473652283586231423459658517137234870828835701034277279394569277227848487812506188075964932738936956832790495544932723014444542092625246501067001112013267063168361735511446680796498815059819066048031815083040529048759547873333037480704143917109326337354448045134425633268257145665844888903462707627642791156508904392891334112069083609744004169734831117584624831909811436530910504144423759338021906686396934833500052735179969553420587976632195458637333206499499595388253686413839282666782444413341798931765713923778965273348624163590657539361936516528447256889444177167187998852281617297613641169115317774501189670416402991729811926518328936474922693345589308823367399497333318321375981155559911219310502515707865200831742847850234548260025175453112963756186408752832839241601052421612944644839798446655367680702231256012548172202442523282756910780439787637257165202689044315892763941497785815533758027249204784910360829337913896884063107685123350114940912574661474697029181569848757733676477517361390161603189401852534163708398756928958189996344128960581893153704081407122265472148816028103629479348667491700136554144983735842175350174776056750008260286403028916939814396761626159759182978943870953326856840143020981017169577962202744799064523133221200200106658271776740562052916936089302799615683652074161094474509393968169206558473782067503175037173317346047169271437779326290803712497293788935408869748265647717417629881268334292710049869872113679404255402366830198139936164505664166594047644489927420348613734165917897784162627765265277764512709663970594399317576764674281047042011031617204819243685392085381462506864178545881363544081965208007152730121103658392762516399678316535271199476124424430356842608948242154535002443974994671092571045546253899301376888133738249352548278826609006250685268759794622611124002500521684697625425791070221117112287101191175528650257305840602459219845597971739735403103716765298353795156511768544676868829920181692442010491831980255966248504843921584309642637769706226175758513905967095679316117758158733442710069742310293936198349973369006183751261945010615868762921379153472082771579650713745024145527786128157348900494294927890048195069897003164292490500058339436435099314541302713331218479259264531525899034253253117278392725287162134270630559957293075701773638690461422055126626247277706994050271770152019241745835001945407910249233012291329482317112748832527561368070865582744029128634848751969339559354002880141139493367101527718467169822226740557839040560884240660820598765067441758119236783685184071051144223942218160335690299452552432658601911205752904734693042578491451713645565338050536574039496052182031721662338735302214316875843559457094306771086276227376973683363671797529824385367288532987024693107506463257023479164358352591948752682436577168429905097316786670310856743399092039467791930603196257008829850973584132089362044013824839977456704972284109252633533357464028321170272285285365865552255174152936749831146192708221732394345028564472659020862078977666804351616378931178618774309113701963561101378621746789666628943326561872210472327611085527605207575454710087791134635281136546747485960406264624209957856244509983904161326884142235578420883400872935794142780188220724123858152928735190942126740486312558347934974639055138959643458789938174585084389333229287085167940189997821442030735510360447269819122894721904564760390737713987964192084392628904901266983855773002833726946384807751760701864572828862996828702397934188314923072737268113192729807905309697012321317663874659347047434636497562811043960656809906196790180439454328266615232907547085046181813144145866961765175317917879125268204155684713833451663946332148238800278755446873029809266931962889863518732110764027746293994280590413030456319369612352507141603676235050535195243471780738218910427814603613166576952537221483436437751237465017332327700630886394060547342073018894113338902123180892989847871983901917295770248595885890024154027318835538670485653556527801313071818337557938425329436793833815487078418193023499115438331320188598241580408269598728224978425187570502425970538523285383891087907230271735624660359016381617676223131486155907044668001723736796942897753781435798044969361602295093094925400547513604476947719625209687752518917051240112756837493191716750762393496988110259114130633533292229477301740244978990144967419212197341920484949322326771160663531306871184465823363548214819639420641039262585379520900686333056541158994526974431445453235739168357915260864099130230619125229279945483118773272837817274629691060052436154591730466281852633319759310678377923565639333306185236077594817006868587010515897441814227906177280114753495291972822418896600797352749425293558320181170945470500531131333527246233355567202739694375418345739328831153461755233451498034081153730669751536580619818300913288525869832072972384728555812947503771043648220425062153514354213716985125960395531418430130199280522093823124076531244507126179898006872703631414296446858499694044959100139786545415132510281702363917518731891432187879048729155337765495581970583739027343557212352202848118347258821201691175175403644463229465270425594180527019292721145414333322453189231914445768541388303091704288490651279161202862924583401129605849374660702088448900803485930177014933198600442557871416584601097995192162848943835264252646303114498730850903479708024052154581219301599572165212121689335096514286012232506938452583132792811063835191768593426945471386786173619248742550354571693158294246521285876148540708093209616231598226045690662818945304359147855912480209335582606444383449015031352923444268961163873530443322845827509838969936749824881183706362715950803892525709730558208186890131818392840198490920571053156520740620011988702630536819525286945868592239662585973208133149236407716281284523433845547624352982994164464611940483261585719105772509705611082797724425928462769728321984584004707771316285692310274524350013856145691755067371737373645874816283094667412873869297765887404869645541654369230487642439936638735986142559221684535421367440447096451546761542177906955099179291929045136808116967157977881571400352334809715771752785854622092850599691976345297968079822095679421361740323798355321066660046893241164485100513646007183191339396711751536838555763436026961261809284737243629245735682973809139946397393792609921391451606226454027140865618366858696621463503624814529957809531232338394681579404630193988418072929570000352657732950207363113294232487378638152336297215848632222503520584890495487277350105422651874294813351915207767902069653819299272746269156165743949986069750505231219557167782172739409924730047542741161443272298352424189533700130003057770745379951216793629733966262720447903243874846959375928051246311378725512242284360910756846095633213440422084393537460299367800473304166987751695539472807528518503312690096282539518688259351685566006206900169692521828394226619815760609616478979595194224037647791707662956621364869578054856646985161056932153166403719123266338254625061372128042527945249894501332282493207473223577026385306524442605928126011943324154743547804286805596253120276009440130488375906516913419696283693796327123251941964375043382044631797956629520808222521204011849144283229128619711483782520952575108561260621121763189466534589300119044430777222414651334537259980739528596109912594376599329886351525160872552552300459780319796679841105795749666501057790286251573562538706963166537718735060917998575302844356854440041805500218605357373209777236099647009079698880474946231567936319397225178292181495109669044810642338295849419916662583597708920277687003926979623777260680592986928665708895928932893958290409292983897625318158700953297191412358910465048457977594184391008185726318988272431108616976965548497789678938859477088966790017201018281288217142350617907927615727093538151311074021571067225841705539041067084402784342405123085138755874101230292138414208932700160084762915815263590465234267879140314151549692867913629894091585578705122043886388166883031762945882524445370438593581423472783675170619121176576925983229893117783081984848396391259459765097463933776830452008723414008160386683643077872825419022926194077054314833107277049300410252296384043772723252502404907897741936826888401304444064329323923728178786104424843536358280911433034601642216008979948630493925756280486405556562098122477320104561311709214281119123083020312920367637722882767054872651015836716788105129756250068387967131337196311230980470168273825249518527636021751462448830397101050378769823925351310474108878046830853155605066325773499194448574983448504920387297359723386525701490952313487146145746290133594658100039673134385660596441123699529943060584555690042643829646116253040592818804911287006603729755489722619313326213817335574900992443799377849384441302610018250290687552952135066838977843899636401318634415447385468247327451769920027927496617712943494362322243795740560284944309777235387840391284901944524051115226300258544292277659537564990745761538103382031182471131405325656319004435331603470291890390327039699509791821709352666757791378965345445007100582951717399062027685564754957431050203211817900135535227846478521766865688755740010635106152259884572044437479936612776297781864067293119305407264376207294400261067606238416857380648640729675899144912118191998576267110405384695178277328663504333254315718185580396530873567100277711962606935851029023804090612378062155144478470609195889900063404722450305893067318820484457442202189864911926330713431811096729823621029195533410049707614316876034433766846555393808011136357652862858355604429009620275366654639538799679819562098583647085388283531357819485535036933514932327020531382736173704528813629507530462108005624617271781216851083750453975699139627835843441261831624186853537250266544452264671226885971290691917351380762911646699751687859683905505424391718991807473158380585280006638022058357074616058229640912377425289218975275993561389143786289069466161908653593221533278347437372627997544982751366442600262831776159849821683069604958172102339508873801125777136602601454990167712047411997436625715587795031877656533321664345161755949655266656657270236010629941396091233487215376249745222909587610716402293395662629728954524770462512202609502430339393107216174852779940410354147537716773076821905314963494511127612972922498449092027167374616221385840477799753992257916242676659622883708915238385419410278703076450917199737335750132162436066910130155380126904426109867415164961122982770306022297509960822436097890387669833883636455336300899361643465168057500921864327162676308615878732126375901354186909350219694515671753177782039672787518259145994401920781863905596764166916893058625535058348236118825142222619509643673297407299184168142959215048855260725688506668456569129004644912911551537317444144067622085209833847573033273536578289353070640579591129421895433246747494483757753784565021076752519195961812504906460462179166630773559628406109536325057473431280231896836694157994150874328549519062671970398758261182334206631176532426865099900434889471924178215991486846123297726569757966383060581236948505546959492630318179910514869249011757282027336966030433612845751138258081941304033111247576746226323869917123190136374249959656568307616093789402349646265658097823031145099925223506723414871473566689800422142209107267214891876031055666129227583877132481860039357116330290187064215305037944322866304239712420019428913619859097622119173594371703694043473723695689058162312634278396101673141758181205115575616332339814636611925557371507857158879710065252838548960541143630752237506004190483558629538414963239108483257386345463569289508889966121043861276371052571778874004433504909828453609052621854902720993370020901937115776314113443957384241621534751719788152939651091892894795864711693508586180343029576359311616693054956249278962151981053683084313077859699649622151837533488782380234751871631170786206489132255335406703097795950268262221385932269837397240161545266702247894112382267056770506319527293517559956286797120785462918493565028353514149343008006625142341863166825854947914354801619622844822115625582093328642333711894822468123228824864921110145024567348065866790665443060458380677006222851177240251203339178128311184203711949200106673230763724339858048661079771498262652773050215978611101670674301550764210731197043044597346658083865965772899694087039000251798310542331980706067726241335760870617892006992472912601043989707764366575920833791618125134405281640997258745460995882036423904389660618692639075816687030001584099774152653420063842790521395720122415111403649446912917208132332890198119485488761285000324401641433441471595071696539436411313689462880829122842254432420713475595179871289393044883419920387607183776095471892643876850356046112725466642217978179732617172819972031631608849408248619877957787286283640512815561424209631496070161367925290025639246601605653137102381009213932215526305733811773396940046167941070567323213896355374463801660943734650176404865463421711169409606001813968725384550770972353899268918581911109474900619412302476058893561539441822316044040582571216444417139266164100404031743151025792921366770419928708991721572970555017234686579740700670165496057347771853621286591967705493176789996853441204766219171551900752839099541276183460451959487278424478410420230812112072466105703519398579980698689390121411202754885943813765054441345577681619611438570307629715276535314143586597257483873680693831477267272898663753637129538571642897667196168146211692566115128631438989435115800863310193728390367577416307689947462179699702372140890440637897067267638997640311988249817660180723669622288721279312483885874905181284504489730426681023148964044354252677708999389783146671225097044699416073751224064680530065553815177619343974445817038977153938228241469826025441802904780691694437301544430233322609234077092783504977020205228838015101868873958819682313277228465666665379678788307046890086901048762031807579467120813705367238915161559386219811235959099388376176487070742111498752604960324981089883227967833335565378387954839984635613882326025454784060549701634791732736376931168680183816426196754741655342521539469108253041083446588826708159357593387680166241599723919681681111050812426164124386934607287658174931180656754619994793424792325229544094285803926460323948057981001152565493262274211369613366428537035929484607298303651873560688751931182087562871045731929176703025136428331874617845582936560768111475879263423350596509132063065654330658609284536681460390543543529435715375361305213732876096187626706737383678373195690947169695896876453344459904196549769536246996550483488945083690626741182203010367745305420000386981581685144837170710379239028723277546248204663363246171716387956472734966189926142373539347016482399231750065162403726881115588359708062701637277565301041357526794528992693275596109075215691584565886256981365275056063505483461943558413626879942603549874301696297063399265518001615669653323228642799969935046590329754992072540954965417834355073971064536391462927318814266545944965777665344535965620817276131879974473836358711598048330355141620685294871380410624810102792850762355921936432166748935025897083108528477603078251585181333192639427437618654658097543861139009095788816431788076937300898963215576837975577440436542854824714080656756559494534774154480984730842746549211646786325692349702155344981892531603028786007995587094305502812667254417813945241300671184712755293390678312168137701001810282289370389540380381043880151895482485966498505322224326902939524114153661863340541562625893061891593470591263867106727134087101866452196518558811229163879728226496941349055402781980790379702194808002802999939304430471904855696540782681068103950631007773817937944650127214248534758685484430510671542494546817420577017299784488899187273773370723530933806251446843711188891912836996332380854778743132960880278143969454717389714526883258249950422610110434779776749395810795591212478901461481440468411324330452208324171861924897220639451458779918851448305363674807102031900075504570228109130995245274602038629692944295288404705981823491518214019820022070194178436227275936253897795683515688082306557725212781190073806468384213810994512418286521278569891230407625384908158670079962986187989548246455311461753701973427609785620648136943118288205776908821165422963549521851184879012148542846023353957645631340506831752362370668286387175021313108180887513808201227822178489461093724979660087488321239747258929403947753405276439999089679211817532489929834726667695392604314850608533259317857199447914810987135524844386781293499505998225497509383368720461344974970345461934149360107873051703567350405305891108253703792546784830273701229733802054553879867303566280930497802967201640778442129442580784458155291597758569246520681541436951569729870126182226675046055420419322364270656739535968072921119106148589671298540009407234822335768051837860441031416004687441038879956864749480520327529908546035954615329003282749550559106801700579821621035161695029685100960035655131131234713481489714531965989895776637308121625042275302677626183336710173973527327207296848151297331879814480803865031002557801467196849644280261899876090746835050788517568638105866849858157825135494231617249469595711969411681517020387582324785708682871410752491221211261895472252777837238518610797927445907455855805552875830259798576479339717569850381775753332916258875129223543852797493659728648532462297491763267491169557664723351886504767196471263342568343353591948563643475658076889705607084022639992212206419982046798975956571606188925586334343406367151078891250659002792818696904565328253421982591546711242729580602144230690780235569823672224304350149565417162751785281684113450986396298869380415431405501395899517354017566704888366357405633789147438471371242362544798025246032413269679825316284267455345640441398715442307251163805721457863651348953015043763430656816355757390405950165113722970627280688477540456947697702845645166788473488224510745228382764077235035634232448922990015281454030186281112410142302776537722654485165172445572787573242604374356754685327228545476596848042663305698735389461982766215814903639410183717902799715920964959826288574734913752048402497775357752500334776465634288437602477835090801981978993315920254434812638570501946572922798005258209963434648800448732838724100480947916487769795664078901915891581507742689766816772797961535219588117490370579241131001770668990312987987395406402559793682525884307191515267539074473005432451273032082820170259100116252606435147676714010043314751704895547182955622142526973880787019846737834336595796164592492407789610562761361100197688617052865476175119248282363251213652171977918418021923576471021660040315603329960124216526596526300400046123419288855542559936218942197068050331592520197309179748548571544406221506867143823153067829806696284354460638619134199212977360635754163071402459282164455062226768930180974510382490672259060856566494026309442957408855053429925424500826676542276066015455479588546987585320412168463525279423650851886042784366133368896316786810331298038283673842401239212404780343096335668185065316692620026088470183808627990312965064833565256474593700327506607271338114455694965329397259007264302765752181952953327531942978394274194003445053038289711189722654652272245297272847329906291930749481773108335883036779511148265916041739108713698992907906893954610665253391129694424358414406317791673958906905242402377541761473196579003799754357932886785887426760837949875139136723632920484261467167104207648398289470468056829558638565639860438662632238178854569172408837828017751343165376441900250777721866788215534115720442761052485082618146439675977860464379522703630536774470097280163360338311351185235501940410353492417568752314607787333618796667655014675919873433520173239285453442942390635862304885500200464009397157036872444691224438121922044223766066183945450421994830244554885717324740345531422211229588749139925743097598475778694387426042854944096892549343426291081184761094014719544840911487033992271458420637051079975567638051731356474371014943004428669449659354717513124434554241373047059429683737226126174862116827346702267633283567351717643478211151431624529125842308108953423536604688047719032249325012142395959533127640129880356765149963114705139329557073227449130850472002623402492471322937512270469664328412384765462213736148439233582176841508217858043636698737051661779841260708276477100721517710625644104271409811374946508888667376932794513050877811055014580334511071464030483869047855134837709755778599780503471451089724647014664705059532480083008907434384423831487752964099137729330547836287884942772297061942116211461363772190882538086250976462200197145381937684532370426423811971291501276500120906399648522869529142954623337379995941976586963249248555255961363721676987694628409257107652716154110836726261222549813783010987538418951515418133035474815055150526263831498325526649583558594530699967161092889342612030491103563434100827178117528420876468177191477987262378976369680929532582691941502664685384784300407608378122857697475190182655436372219605221710964596262934318822536221057017968309967429889560677218211021354885804197898333282038727828008879151097844754505595125660733589505940027898188669294727744560955949110752745150429005245450027940613467807039615959366875513570179223239867710997938777483896191231070672157083139825672368186071399130496377376659837312235010850649735890643627338433085854925883996887339309068368775435252566035318735398795920616971955230157717170290625474671321077119672124369227513917711136168863307551385523158395340733010137333751447082663363613480088138340048443349846547010657299479071880337872714884937423964139358465301848348045719108257104202052545163306541147641277350743893358429892976598099573593230258034222652212920773924003457169391800377278173861067622724293309022518955495788128628683142710009440668264838215088785247824190149630470523690799892263034515706883350004078807119448823540260381396050457923206449956825079523393318361000127305767886693253744789584072640585497141384009924058280873949505661278363992738334403192617976419761815338943598296962784317779548652809286693137750565644076372466943888925820309204757697647774568574508632425543784953001916612402724001873109954956688306575688841860474178262852469400758575791646131497665858401596442080826038734503853870390695025991482338936134534330897215453566089435312944713624991541489793181788701441400643444304530804655060076617247260939108608172607493232071993526797875313354180051452363394745709321251870143715987938192735011185165242273125257612335520621961540028121557415923707704233739838254078950194839597283357039763720689181131478262088675536057964496936299572505840368033581031511356663387742870649490354236564910726152832966683451949074654544474422137539627671923815278350961768045384226815319050207822203533142646297352842327232330360629726010915227548884517868834006165426841366663396240457602920852442812328749004352292099236649418184725537695996690395296504174896311984711718561648459486601935068805770726305597078307280367796592124238347755716035589271441146353145269084572864347215647820632827957848915292274336128559077363693139486268712097666754687695778973597634747234087140145420670213021674993283161203059287458859443363553299179223033411412560455151439936026711537300800045332026804633006215343712610565566767111098897336973967971576231570871008611370628328086135827707292781553795715436525634546042762937786663342891133912794940455631417995187349312515963912530577462012499379463835221824945117421655589242195625769788642831111956131712388537559286331832670942638639135238959789849393556556896300791629417204162211698061096385710049327059792829472447954500877717962445146468198697707153172869823064776632955009456788982337772235974053158620973900501590234345164892400552901883679932872063507788229353702495134483403754097822111135900396277232429429477137065800913082572460685825532767624242821519829662290183761853738579779631410888017143513866591797788225578464451970655654674492984180281958056023387944454757633356767583675500735875356517817937395296640441857336415795879168503988487870984902243101199426592053540612761392357862660746669240321108089077202579013757294383427060661115064174747141251848417062330241582195333896424011784361280998836288060886241955571198125913504986671498271553471332129981655460580269752809464355815261555066628968550488858204626392375077192769472917287127176708457631397726342662410279814750605085021610198627200865873725290640165205845366372281960368276586859788736660366635389375561404175129940178234668407678800597305491852853128271612825867130401314136399396929164104430160655082232984256685857154531418981171808371942053003767422349680578581439965823290872381193920673495152039624929470253284372031023451147124285382177727449165422481057205743807200130137698049162371487319941944720762235546284844509714824492893654510437516051634011675623360232082467803442727195277417731884388677605889177380210840783040637310474861931064011706900687617202058974540737731535889672811392749300314601705651911566687155298159218522512629663580110346516322190720945944434203664692056500218507130719673298977793722626820946446348515281399847542143812751993954324784133009964259399872243246268772056840537603136254951295004416064996093154347318555827872685610489624817774023296405031837681801778143443608006931941412108532527506783268412310566233410812040413183183433182687794490560058782046054783230916929800668848669633378288818067881681170735645131253828645988916816296901311692947091244932256984150985185516090080598780990616020549331033552669831071974935633674452418251196144926896103069749947322017538511836843066869029443662417292209980380871239178036992448268507798811249616756893220420912804064974987013105073912425446291927899655864182028305942695629120074550107833114534990577787984488989792702775909387641333765298355130693722655325247220220861288974336234418713304672946277475834403092596655919564510463212763166532357028936891615574260790230632772108150253515969172762366342088341335509151672439583429505112570086512180015572014186737646933086463623743353711192956674927294519228447820336594216235586967428829094655151648407688260966253321065602053794886864000854861657155800101511988531687642702172184449881897110591889130211033707276671584230900605637205365679735916760446622068961113561102333850417201444470014871905026493712953489343346625611954668685432284714663800637160436466570444666560521932220143317228374589349173774085599234635962089435312428365541220779800516798318157059787427020922763461640913331530514489623460752020814927061704167796425574751133680762706861108730166730035964367696772625451716378558541415312519347228004651279020209405253071934681494233071020428245118120719912215306561390693785887213525088964562152736280671233519904260864394113184443284181112160763336849571794082780154732294148956981574983960571715716663770254716566786375051872431930569279885313608178267529152823592146900281976063269189447580838570751952110137275192426691932950298177352890978769271837644458263307798170937531567044943612256932753936768106532107804000159130881996197706616470516252329363329016299802814765419083222157182659215713588036106093708942633225481461034636633203744646923015506926537440439514924263702677282364602638228410158430349312128315299517557131305270515549371893185645729088402347391120020785381960010305233569933319106296681564886132938191327171077362358694480494903924415446181365560575006385044414498716855300177995191101986532906690053787764401526369341190744713488494744658074024506762236902600055319815940303983029530387844562210435228109108228883994540944193256997819370225883580442878897844073919985504136603417649991475836325297019197080518500776389414963134348719132909271433699409611586102151362461297033305847123159857386537157518400398001586899586298591143804555062294678860578930937680398073549664047767368293496534153312751778984180066853447542214811686815550063586019865372488483874633209075435404416305724098733641095659833506494981106882348424235061159122621930586598535749956401523176199559934644715677874688533539344214546774475274603268602765465989535533819815496504730035933898611747516111848754498592246145742495925931409938800223331322907744646811725180645746565712916911221186663998425143009012485990895061769090027407507830507893688996559705941644928069998282301781998545862702701048497321525581150648101538815358024520855459183592955906261949175882462873094835180417832381694723715894807525468435974642199034741684395723873899645251282394506370672142583636126934524442809618676435748026913269825028096228888008859538274603800528543211353261308761134965715643510595478863058055909438905045143877862848520379674544381362167699312794987319586647946217201525140354371760310703577460936884305815104527901841956814580255863981101377487053742178041683160874230841812238686042277437669932052128208542168014413282902484534880252496898468965665647146637131881735923575424703399311471559044740224882685725435878341296808293881950262659891492834985879433481471632450877483367521050731242086028076333418877919307842733643040418327219572584593771717175964424881710679850249272555840422165890368002739685373020951195925465896759511150362855533493870615219784409407162627787645468684864378025735244953896190171814509949263326574873363973631782387510551147960353991152310726873550913504471850217060793135226027090945881586330414045643144839967223162710163046757542351865927006291687636015373779649729770942216729263815373438096202348451415011329104168205171988776336311434215014891352965474828004350927801270259592325335711248552313360727055142410026617400445805206974316568295318518814739592183404848002112891252895731805145373855903404630179995604910186463649713015743259592064102112271856406427856595832236924405290634167651440988282703714023020447979323582999231987379948029760778332795852619665378001979059374222123740094003778870828459781393889073447815611298253627179278614247943147877288165332776719665845291888137653370366293802623259249867477718100459081374585174099814709724351853988658984296768449866950771930845752480004787842670345344856354623915373562067470755410481720930591569428779186988736698094693924593010430994177605227062846413054434113938919402490997867648474320020721144524714878206147255988437821377109220220274392656452738616531946819630762009348362357994277633513369212290521293877834627605312335729740203533922604879384687008581090978864002741733811046066821975082584569419157151170728768169132228291672797172346302467736316747989658350111238986723945322382979736978917323503927659712245581794962129430752798840514045562499640433294536330922304548397038778140435954567872836423386250130384489787598104549890251127354143001949246812436730727142967472704674851836471455694092696648073984439981994618282266879998571599577426740929626470661063644773416382335095425083816931325825448204190003575081666517603762932460726676720349550652255643904648291930978166015100938373549548309743229088526327089245618695698947011532655713087818754084591143698739774069504414450327642264936535005094928872441767750046044029350916229694940668712911197053816931101626141978177670397961322209335700338078668027085804314960838280221124471852072863700315354186607329833143680986740466490963525979924956827111623339377086030922532877467428284138770826233955494453425311348248915029303875617928653459168755281847067887923708935297876688921912192281345367831440838879565086911038869862676942582441914173355850378290844137995984980603548977519163296752540741986702695630241617484463922442760994300153655989064488509158508074431254212523371029315076738879120721860145914522807570119252500138171828448178618394342519047933740679506150640081662635855292981655091879221517227186518857042618401804641412146440935926278397258759737276013312573139646550254489697401279018373721502816573085102930039192606298690428331995520575072629853323076181055592407349926005689497531630106306646644194052896625667495358485171556473175233149314234676286811405066227592246107563444538144538770896316797965337996066725973973075072677264028109895008554004935164559084094134711190342988508503972246553509934903425286699138296502773640323435622617449468603858352387533687926914823047338113881594535565154424695434151872464482120089956548817812411910232248277256106984041324757835460225704021015343542716034391774724190062111964574906678172313176486911205649155220946462958211074888314271737375789050089751048960028612507156307697217428594218579511547372812618929938577248817887976481784630124600547138178826099744758538027190768985263990293880661303535731884569838467600878515261317972110311621511657335198104254864764954133501524822780105310152654398292689323726862327216249563298028647896879881598518385769754934605423559640882499424203898038040841142007026933053135434816896537319223211421493013638052538264864429148763669238924078509527144364750281585997754325228255740115368462314675958965038975687358219249453969550618010239964071948476106860775175926262724501716438583075818901153327558110252401253705079106804406895189968459541789477497167216413152989431262179943587006257096612990319104838850513093111108238564480528367867906940308109869718144826596229292735150983869202929416540361647592104290339744834520318519027980717404806040824820749134608961178768377416597860998909279398932504108512025277298435275696642237526932481772643845521724015318320495445439919310936983639260738895496623452585975114092241778873017341837935841502789280969744655973463886498594060242496695496227251681963763503069486862837323528816429283179886520303017579369657404569470476156118751713752188914462547099186095556356107846357346642270998272707217944424888787004743771169170830633126698838465023155045716372022063366965275704945033057140879183351707791876622758438044400451358804732607786038661803771836697576257601824515698404017488054034418825404730464742554116208564421967461912942474154617710481475507867377208044912938015702998756944825503757430772630097991460202389018874131655981362739789584565038109702805338226826333878437071173067677877075244446551557923561833884972556232689883486266272178800323117759391918009529788684520348661594031503411951708956383039752654197322443383602207204852762562556563695915670126373559531485783350823060770825689193721622906586499767537290133244427891963513391884698095352538549993888652921188558209383883220149195296525109100610047228540337593361194406294708774122938181826642557786567012683707946077955705414727440214994315149812422740638148672938183156244349294649225454636713863505448268451172737762923688159286611391596582190471529395432957154217398486429217695879795163030666242975185786820842176256422619860008275401177887281121911280778312429912532364073232494589471245696249059590804044481538145125051836266446099066136723165207766314040148026969241459212702488538539770485829345378379642193006267585149043995813627692999155356294054557214787495458633274504295233234352967544831467583250240521759021408278324173840049858909683053353991819845188359021699722790714334282133657829173646710401926918178909104429779957731828701397391493788315747570520621324234149745561148986594930509857772594995855872095652869396447353760308597729581991835761258166234697298764368234038137262475344717165051636169140196353806064796856036211445092959403427750256307234518964807009361719344048360868642012773447365396953813560526906306940559029104866924195998172501375045782650986628855474311260139968642513835997348519339292426092444591563970207311780035136090884113528464136140879106839055461235532499664338297682405111342492062687114451037247336330780509621701772103727180231993498310503616451451876010909467172708104689535979385789269310980878458771244565297126650197929196274365246850829272644136972468000190422126883993402729459590025707622077882714943706290222110692418115869754503525376424133106147941428748953047158050708405448514322307216946358875238639522047261749737085163926922252113407867626465268578871653647916535553672431091240628782222567183907314886223465105731291232674476487188068471181075113016790209017325410638473607459297446046952175263872627364909188374758035701292147739351601650940353908433832872728129346221075654758096651951565685942864445977664621403794915421302974732664866743782575408339359495602405080138912664642276948137101655092698059908814948729701587952156796916643816995332428866839323666027402388871683197055141209975996073166521841944233209209403293247377740585200247938004430154791613488499060554774052980814676060466999157553192823080732771457398570600922664199931078276103649043926584598926243600053767136094873632248243206416725609281530632713242420288602537324415565183693966718188030599490295467669167213644197013029295993793410397262041022633588525260064790802190914008907399798000263589060553142900047591802244202980805507056363119023630129332917696876378644943261052759385254091396072581250588152306217866178920283208741366619205070984394361133849258284253025687116666852555123053066081124281219086145083840996600200489034438573865372955852962142986458320336331463646357272873379152306717451013115934128946404217481532165643317151109911314013459059383879602443536924151298257173863118495490546586339473911270940479096982646860210516266195050468328019981911018785838086038426001841154188049735968829024193293294519030920947476064426342350956003521273265356724674371568616710529540821748231848009333154170551808441029894840380166011314349215715050279256225122820135087771889018846788581923425772133214930482779730544076300027787153538452829560093165875966611152965195335404443380065464981706301307997959857524760071198379285168415509985584060757406701208560574573403210998732838386126099086364381693318413133437545912123975911622321374294693529820494054324909850804049879914245391318028836965514199424758749830557823778107126850397930038250318200701924471913063055566922886691395226677380243061092167514832101024595178286468515966799500991625300524608889191468281742211036220241469637489993007776896308256973648848715108661717981404694693680315876569605729778275968656056557988344303258870230907753843916487837990879347644921624470012833254773361843960322654306456178115519372297512709721004335112565572382180561813055133153036377408420276251435611078498356828267764831371474639196818496553360533939518614297679249155240493684456312229823783560908460188294877872326406403351636270550253488162652760411930417017728280358524447950133867470382868846401031668594137164129604396073078948270848546735550189760972398568992053620617408433780644432087558613908046673923416642920923557799962288669719864761445882825117133934394821417884708886421348079284703875053250131414941870446011725976921905215701281216068675742951168613548270622496219582133366802779232146283995817351258384007665173497133039219693822111132134318001430476852036882455397770858613166350878241406736995020547823260923464815358767022199742235570915801543713551395579957111811717930371444239740815214555944288588455937969097640311115899263116388667043274938837969059601896185345362181367884346766851132398635999662154690936134236866708200575510018461342876217887241807909615192783898720397245120146868252381842561056789041043933038624673701939145001983920908122989428066336529269955929357493364693439424505798254911554234064437495803408696501989509531716446357552781944945330299634868621548952001169262091371945860148542857937394346545752620120598070979677837721190543522107184018562424561685927779506812098958360281864739718232515330017582543018605787219087327728794865134401956374436355276472387217804959342749714660840692809634993001273011000635526683267098102208140227128982676004050777361299955492940961256411069572539278360135965512855461343751971594478698654017015255430010846272835195030956877566692574505964125988272443388693480650813153480527400972992628013308950130766000532457060896309901205278749669926921224897379670521336162935869614068340163450992633057948079236710045613348961159916001711220865606961168615193596831993499871706119794859321094949724916144318170685990319715106554435979741252037960980588818224236503752949764037668232540790534553481830355857022401583587164580545285147615610803123244376197795134804153744174465846289878585881241216496098994308460517812906990678264477020193101415171223831840769004931028699345725661932935637391526641594273128060164142483810960185830986631713307716268947273296567843773241272775311052570663559896394214282967028635620405257817575377648404485056493570082562616572442082797517172500946275364437976697374074771378552944002844127922400275564981518629985859761350632091189123087014819996997016386791348996254544800579920228649431774454257182763700380440115378705098810459246923819705732877974176422260658432926852233375573470807869195344488084287739282252850823473379667782464784769202633231148315806809657425003619935735209673129170294919129954162542741996865069504628628395742039878327271463101179079753631334361631750221976234774987710931702388499136485280234114274107722155681469201056150410780524144799119181526037336460360460744318103606161115303382509998314637305968175219688575783105386822084919858270223298177011335356958805164632900688654655784965662935402440664233218543323139845640831484426473595069336396050341484392512252132277304946419517279403429612634762290858298203289194188208059313448265079339017283937517003971706421452858368770970010334579760648493789834391582405494709204074216253484375156264946020790433657371803269166369477125100752147560323636670401447557799782951963029923844164013894471485104991972750548877149152253071019718312592336163293856467907525062187540200809628459893840664568916708423269037433000722126848551021007729336099431317620788850802337587591525223079549432638389337384500748544489157124603520885228171961528393503488945314598465999352513485446125801096039060025189203582852483051303319126155703623931479273837171910305180283661343037412144408658418359587431410831212889037441643722552930167828213523141346806850109533877778633733432668567663626434544072862267798857636156952902302517970568981158894114612521217699247492705368813522513081473599869670278632763736854965690444240457589551253515221835717299729882835660672028447025851119398739228694293555879959527311053928941710154819419121921928231000955067928344920915296722714784771384599241224306022451294410499503372485915461523462704333577027777084240120108139435956606028671937471813373488098104931758680535715645263044459977671047040764102115634874921759053688408148993735589634684776161812836961466274860880557108713921919814238156544081125196102637838362991741637139042962119415763256841231377779165479303835082256439447692755974104214905444786515695505151584155281034608388781953450577092490800145754330379554524358300007922087457863427434386708939505717115953410749231076912723011740225388116554263394789773130581164052806210622164419039541848251546271372259504478035516111941311667559153924860605945341975341694295783479801332111189116118664378311872816799966365429994832189861911713084826082467576830256487047597657003718729171469871456863944608687075681640317271586197884953908910641050408230489697925130263855660453174479080223676638661087230861485562699453570638271019796371212078846360709573085526087135016699838879968810261548125854868423729983328673304223251198613468414924200190887751503435373141893620220182193413066993709320728359028625671702220485212233824355638845913038097562081055174646215802894989318281468305967940537409834947909019779753905941073202606525960573040819245451414111571238127920341960544452781410464253051875620953254195656062320135207435792410953667391170137276267027301969352271253089429366679728412564818158552145163441490639581068332831410685860381149287392729368461705332952339285396979533918407210525881854049248417446613830059621239618997155289161015848901778399514283497773075981328252133447240134083813093333651828666812806883549911695985015475993977764836780157006964044751984854718159183284686151942955979459992951706442474851653118250795801095718429257168158970054779409398320550398967312321138482903983417324934248776915022362913358316270291592709401506551212432109558606205260353018853262329869389072776151761995664778425168523091969731598674482512040084986449149662307117865107363343066411567634928129821671343263248211765034394746927988358514908052945332876414141395731045042837640898834539412785978067404422701316836948628184256229791754897811411346369161039256805147063507016846393278388086824297871989656951758739147275217071484375279674111712009645176963072055739589407099830126033292488511940584861904336103463689120108137098712986438657883545538468761755149748053394321959778880528959223431400568477982605532688133581666312054036049067222255104265091354213690394170462469918368403158843270182720497786898184848525154341445037061877494544456735912373684177533201575590352954803517324620755493606572986756790402118394776829494905816635137417803683801660755790038310687398126552594507999239361304469733869152977925139847542941528652709960690795778047193972589270203395292097970533449571845387410971130930409372097670958494431577942024469214379430064494405657925524130786944255696901186856252763683233905851050486267952830289020616445276678188071668580498725325806216742720366798930990710115095688638003031296310293739626327181252591053982662545799250990781562896341460891535476169524016118334350969242955095038761494304950233284246412872077985382977573536506025818968942498645675709242646596890138349883617618967361835068070937183582509147345650890675436261504266704558132640408482656657372722132378220481955597179395758274316018068979625771988181330607359587594825525689996508807975770772593211268176199197337171637964706306814019267622688195312838597533118945879311429308713242750300103251349051128823885932450625283986241279151549968525124220663614078249826401300093545426118106302092318632074976579104811565730969292628539134673440714698150303970955549203673582682726096240971460384093813218658415441327266107530388877314414100398990429451291721155289106705229793101789064409259228997604012892025477858995064678518244612958343874539047235810875945858442679648787119644077441382905305360738955925918096539745125242404816483141858709974187325730470441200421014157019548150145500909448749348063738830771765828376176989403674291890062428258656405529211092252831012681483668320678906993138930644872809922443025538278133060015968532293308539719237879721242847666131895294812251683259476532739327119189923293261399712830753978212551497329984065922348479683062590924149592995151947109991787265795233708235365513023482697369645811567489795427336338519693451860916720326813078342435121550463912881040302563320343136466793846543642966481321283191899252229144587632472760463311511632118245476737629360511629729968217524663947197841414771328734821824391189097454390649464127772389619605693527970227931592354938612516483511143383788401979217988681001342260924883668413303633225045215278271094056599387999271937455043551278647550050617009501513575989712591364403874197945910334042860170512151315770167497476590386470038487331592030185791572518394027469037480601116244787739150770524168561339181474213609961883703432847670093554402377629744536110522876280024788812715116706257702899066834202221151474245521035731479060180890717817226544044702680574703054329653890043099825712552093546121888489137077796793304738571057656234651112515265400842227982061964943678142563544807897826173475174884360587145188083381611155818516510451959769813621763999765011083578141160718063772091325602730768725523677507625546162114597551923949183806375825890412022006237443266677554539030084562240226472932445357574187295947356564500650765999807563462791044036664749116863797620373675200681572020942170489118914519789267475296060814818495103777839490632748102563554896055288654052861616095157548310165227296468086848167453035337739358153367283657517853638444536647044252694740241908545283482588188060277220144605413553339874028958380946953766806243963491633812993643126847477682280975075735769270206543050982666137598602182558376841783175181492817861388250863634493292127513838933459905472041402487323641793696465740848440736913700055724996558114599884991449981615723465778922816143412230930642965460519021621287319473200765130000053703350026442394165880721844697238941735470851163211397527322037635655618761434997000350209276417043085203665755830127476251634641046482577391809935019570505278057697749924072378061987848027634346465423681510849050317811556827852678781724628229211749868809635905065474748801151877898282255577517661594134341635664641052697288049267456693499139502060710064425384345573000776952747074574071906863044527356105690427077324505253041470306953772874763416715433929705572140919816197951746530348252691175965039176814529095960154703969389787290891077243423674563486099863588943675917609889654500546151930114522667370617490652897059559202184670235911883178668989571965564183015290402040352182357652479809114198538496014805222575298166498024839054347410413731605400427321302399358365344390744048407826366697889160395616652074413400878299873208889787294631951359962958234164569571666957221790670553033154629011928600974999654383038438025009381563651084716789699961143324443326307663549067694210646813164145818794936636219668539143312034430794280375778845075453734216531239286307535137360055825553169115364076650316834066082326355517612138702475217130828626160540748767076863886269383721681660892565724698866224888355884410993795522809220199921903375995223859363691254518762803374430957592119373125695213758380352125630634816235291484830820028162702173810069376484631045590819890429062955157425971685634469793171306526868202511683529065118855447646540784276466988953811998747298759190702889447758161161393321451138479529628153725891710199398318406846941321639943685113819432250449201326311065422648073106327704044826595850872451239662423672757494375788291608781006392064112137236055016471017363490314413458410908859983432334401424046134558347898810838906926974899898736565317320339562279083132665401769713824469903184083295474158895120457129645821350743931225735881011086532033967984778711702775594979411532444844564327121290009059033496946016818986499119605050112450166158169861441319175841267064275486716456273655482101286804246198687024233422543321169949100463099846034241862636230459414751450427783806893819724265782419947112651933098385367292834440727166515908436136965781933735205679169369070962370962179938049812816935380623315278076253017168267310367102523463743407045867464132965592016062358835163268206322331127966304548582160144350589470305982729167236559881693714737243832987549756639198667284643059719126395173028136949444111449488922557959652375822292465409729863579941452606458014179739251216963536267557306609449019771733592836186709564464252541089729430906255930244915174089640827107832700431643275740499607349852473487752919449740372898828195385374476336853035772806325929285014998065299546751002995231034974093986898952457376604324552735327436412387606191175318666014888797665757911484301222313628676966650859801488584562253556600371865517936425724211240568028824516295309141030370331852491902863536703698764403321320091627859109289767657303720135262917397269970844192886948550376750139498269483942126371130274352589982863914439701888774255416858921394271877131920248471465663659878725967912914656133907519247599020511927163746335785159027710716838414216023082491387595563792929643223744760545437643759570865046513487298905131087461213019894687556232286252291778215640721128555386316161043852669016437551271373598510884112583416467131311150529410713904835520907603188379295088475545413681036887058761471810138327512813758826070243512381959397279862866475250444111225946286604294699050379050996150896843299972447101921420016905859687248261591404100793529314352624957929787135102777683780864006292562825019122006973815499678286782492998553666270725855575584465805734110693889594761872057313832921648858807738881027453670384743086767331286557902863281053158268969978076541224664819666514426548998959627501341020115616828686921958866488323510211719792298063095964011277432764648159142175338983118258616403817049632154082807401241888500791030775198547208924587490549319307744108680364627223553772212168911897971947386804584171818036894822262613570952215612401479554764438187491869708736501222113614961425940903816512904233575303611196314905409533693073166546381841225811035213576358361239665812452781743740146964237678331884091853768088141686798711058869608707457306188084586675604076524057816945846716031537862626534237021577086474659724216652619825043476836595426314730606644207735594414708239944370967306650224775571569168913176555022687128416679778218030861134321511335905823600166561732580031445765445290937964249434018812664883277792023111156702153522831514488516416017206203694606817983835486689388548245418124399354281120534083445851635483184155814412676301837507858469251135547859563257427146305143264760538316444857368034598882850075928936670413986846519022751784909816993772225533248950748550309929547135745630764987768009678596683145282685163840980958321312798439340927482029242724035483088143889621350146764975984932804393318164061337660759179929366637091128324147280415537978273311086678110632602300677048676960564057186503405371509350861776103429003559521521319875155020808321899264840285269374147283597318036145813558768257639992792254762867335820514705660435804613884454422608453628599963979553157025046977565375047981063173592421948981670464897885732557380983874924461086198788605964472579992649055550032614514121716730668607561781950256755801224205532101244263572027213852339740403312861607902334138190781734657675196879475545719307124270788153442248280222499695115957669934266930567282824877926025231955415978184529023709339900725899676597908426940537845768034935083702396752526825805003884727493291145572120892331125124651137119002864454864095107833815400330186896746265459157856720283133846735990303964091700345207455772724213258799303995288153313718031080230227949040546033266152431357806354751435012770196073335085194762460849261343723299290042814246321959761178675014991243135342198077870125634362761637566929445313011358255432195236064524298887584385082241661778645454317308661623381974702825077067534517153578154296858112436846831307135081810744407140845392751435376587131259135512732847351050088897241595725689339786117584974533768826554526223505527628885626520213368088860818761733058253702262298564232252346130112284346621026466506776341376446879894808662814710162867746820091239236129104300015935388480389050198562337347317336272982592377912476329942465216590112602828997809358288954765019110100671876240242784803208705902922008173642220245825451646971739315846714255206900059022530029484104046850002213594825920579670160688967093924476647121734819818144813331774564166917918228810938417394880752987869488759746277747601848371111709431187276972176455653506970270962069151487225320565642262538115365016506711803419188301767882697536512066618731437843825570015007827189963905984318607253741177089813525720866713876616466676687477408596044386438986622408490778666029053723055180100476408251005930934775530236262376771055476954597228083741626686502025864943612466055130226668379329487034563526745738647793178376408243755259967984122785148790134611938076528752303366885546418286296252603197984412815916096455162261819660789798779315301971898321982019965033062628825729232126857197112571006783162537589754995427383343687598156684950771878556504201953511722708670454974851207610886888284525970152484765296152498519635068826818304414832551781447673279321211473919883005882614595611523441128552160596388045552549131641035440544678858529380989878651383883634375351737809309091364127037596708498102905364040225617872999756561966335049698387520125120417951732253184710474081182132492387451448031892239500051670020470358925731902415677630449092199924820377339960316841638515308803221783535017696341339597147400254473584373850408729484579305256752747144865131538470396867630045005309675221262981805067648616965528316261491688925614800476646169675366316768969262842099318596740607929193325595276205788180670547978054476577771928751091651988583290016660485502872425728354226757231219672323233345433574500134382558617221848437800107100690510824617108475388321472495238597007367164783425729408029709054979254109402842547418162691366555236629831822719497923989605975470720962922240740090461521604825618451572015484919656198439678729495857254826026638509370767424044959622467356905791029222245382856905210431873544919038630290361891702606841848381616606898852088364372725341109837237297383487299861655538399487705419605175024551589765712618798378778049816179573744433910610787925575074337347747467393844503226211872959838240554540612172989726504894672554660462782557612725314235192987555716272815138854256870598469657824531766403862762456226810370024753790873307500298716104770742865436620940841428012159840506933805517398262910478109402092680118566366738700903545480245181388906961508215127912224069740191724250156704492315466878061975022547582863266908169120361536912772700868153544851181109112179745871991529668076163054418890716237069267367492448134532323203612503933423278371608767269731878126782150955898339332662351411849522122667419799567607234441953726948525738036405935967967735606681401157451546401196474830064520832373500778174335793576537149227079277708495514609580956670603751722868697170781573238279718092035463492426381486699856101981735592244841563848102437092689846879094559113885836542535937479807372366832674679984583372346568054924774514470845955529269471476283194998958042386311243288008353578405203653346007901260624619070912457116130163491948240473180780628871055101221940385492404943858967321614559223258601626695214315986959092862251539879192849956258325385141612525960182127771879831483087151706831073145390316536565101326910995547862467706614286777758514917303058571686054555785164656544695965493012887317376568514952174536757966054865757539898663477899989059769525992323156870683129851836358899730570054476403331780360973089969571294903140868074319146399480024091988587970906643676789452579662337470789730486955202807193014770690391166597865177293115921428589301120776566944286919770708261352546252437223180130529585636617511082058092181863190263157381930887059631267514330492261903918754973936228449067267137531108487304946034236760514949307621321946372334328083109932389522395301145516672974969998936093674830364607127927619980162211794343313368310417207313182955053036781786829443710263968466700209044140324340430746685342387765509741585005607719149815575677942469792042140906492875080641549600419237943148106561594243317869456173219821182489229496672540822763094800409261302957318355917543579913451354797055190172400738080183392965942072693302869678212026273370404508483271083253092678493386290712470900913565720400131041969596813644862575950441814599649492218873269070691747885400268159813268613212120486010249169880285936227858464357397785758071148101081136726624240358681674315593164380371150057556584890857794383244592780412121720124586227210859918878552350876929656641015108214086742405218379186514333865161686728355063614299902260741307914108048383382982734994008068507345417730701696068846939533830732003521197682284411196979910611575760091300137063384958452309933684151087780974667463649701091858276415972799897165748902630128784413406420450692092597124937634164209251732487294607797368170914561860091439095443631977413236873139802288116807199439343001632299936819411027955126619919986647409323845965844414321791111386960862684696666803669276227995050148391503388209348329159835596803311221676059970781057199666118519104029381939081578877146007817423410237847359919093966331924876750758008648567775559795479602836944796783260046680606481008773587292517263585094546097576005602906227026095822036715213564529997825799500875524321900563628976386599053012277623653760419595734007387584532004079934570086154772511207718047836563537836315504900884796214660084041324545049557433800083350871866413330794259269455266979751751903329152464368434294273031097366522998585028671060091538506373480462975391834733367605407053630829499752198752625794512692431947933533215896507901365656881086940602667292302250795578868174651143683449659390395332066717457761998913550410554648867198347481131216133779221996855073241002282187845705111761208067357338964271382775346232339977546428951305429058167316115269087038311874068020030346058659972962736890590843995543422092962220962455553028697353022639218253360874977145321420005669967740333297259502518394625833846966335132937361367138115284604791010316914892163602756774032043219979932234138562295350624984595603824480986308436750730930627933985586234623998488512725129176313084397552164183889543901150766355992211067068422849609372404661190874744497059886907313188684913961954000434070320119881782600453204994512941076394847901821883845609967866828454983321169196877252613064527141454455194220788166883318575085829248900142518241282529207197143162780407173949674945512143422501535349064153562845285962601871524039335668427273526497581703606306208419681326925238669834452255445992177214686663794605953746988258915761057530936747155569277211809945652696609596080590524096853092418013796714301495999935619421443871072583733853311948077269805011228239919845824309010003084845380823305563510669279926544585610020916897499302128200055943265830505534602480671289043877385179453955207755710061537500677171786070110293893593606971539690274790077681113684010363997186838659026363836339896671147993101545766875127241222177631883399153106375357947408553063327309837090277833419923365305732989764818110324763989727409377953425836516435981445952863853789303597278864763024444258310327108440266606555626773135019115401990097434750617998353353131042689183824309458512122370706053127568067124386209177964098244748228682745053133314355169730359224256154839615279591604094270558850360899099714007082973295393909871632341498773408301006711501107464931483293249772084103925271607701879594124830895892454268424796305301554403882602216954062437626339110831046864327018088986603545927038094897158784572986688667678377343116974971882414515982367955592257560631158412265342673048647635937440867521622519829479618410614817165214492267134165587043901666658532227158868218378999754756509965371241782358051091702327302819004105169457283716164328192212946051014484008182109033803382895737800408488823982594917263750379621595022908994816494997194562505131603976970610066537584787004691462521284490879645898708035887661116230983283186707657683210449498789253110088656111548733025752326943967221591079788370460883197024067017583766386092285581965079068543413032017371619880684411345491004349024900312820797490308678917476959432608272218024972776135170823599711138837449235260925690033047969402076187400497978784166952810035072161697706987790310816432699568038009931070169984148704068151486477669260920104568988656669605195768313714586463059493995504394505558249739401253946622002505387207658791629027581829572741472158970127348247614386420139840548432717800687933073803351045055368948129927353174889966693219551903984596118868101408624353644967261878811059609572021587330563342308303047411879894415355802105654765553176682030955061083971222127884055372723523580552157297684186279490295581851192941080411302294265344793050409485833708472934553710309219029023033442586336262181376095037356650141105618496715301743295431832728056783784958020067501985519068880073486646806331933711599449956072162173354790145952556986435420931217251803836838654584434932584448966644252805768499807659845468975584591511406769430493906183520742735845784183653002722291426241391601148774802992587274911546278531218665216665073810675868461600715538007113144889321145962424658219868481804502118021774240317382046010667959511203360882542704948228641257084538725075479465881945817424429202383422805125468638127662088389922322326770541335125334063999416436519024881865557372102872426104472272098379683927814287517753979172309223004932517583295546979009194676622328757005804173575070425731249638760268728392786361417983710916770627564741113733483443377429791101446382202332737099201657545961703218810334813125312516249731099568400545054681692174792422041906774651619071476464384305565119035610040589448151342893689677153349711744456303769869524578607065274654406499449940196462779093005025831043221942902743560130680142366046609263008689503297985764296116652906797638021627339769293525323121124956957634692151788989867360974374006878030983506650934993667231007242987536256620882122815277196542287705295176351665112737082317462127897012399615044519659903578677255901769665713974131482863316242528266437194186131634911813842895818873949151120851455061854191707610999629708143970400827944187570380852811813721645365467872658985283831793625823207838139291226876408950660648622207573992758161243617354375374895625500957816125645648787011895481527725676312623107415975071236625212612595788806000144367148063721191929610179745045390197260696855619906964433288234786484170823637291238446210167324083636942849844458637620521316415458441567035277454302010653396868933927093558838353092153707277141043456686320370647195193236322516236423251852265538289744411689349636340225418555979467643342352905185389365502702595700511087548332250928040722407157629602841543904811385680069237911354507559572992580885455455617657081470136498554241449807628894109514104928663873472974156142546899513026766226580120741542137383970902288898117006163908610515059766614564552133082529011765081631255500291475107553101112381153580648175318839820783156235139268727097644582445305200471734536665962307475340717206426878200741199656888180227162917299949128891627376738901755243827274078302153779394100849852799051060139810423543755241120502935796523970554105939093178911915014265075578096630026615039720965957017150172552053559900500736748534370970801417416764083747553752557486218954263896239422900714013838293386443054709008796591673200263362598680643495435910688623860963173863926246675852113269409315846415490873267854388580065104717621117975138821055882493403175558850424677646363533104493816210255328649637517544959952695923812495780512194945361965652475631632621064893586154236311094579261623439508911588128462553417830224962431665760404718597193471171955828347729238723396748603547372913256164349414855558267362665997184150247812743215272616194762667612893554845610714100453989462681815279320494354615115328607006776139093767034570797951717112478758518006441596657971139803784634601905767088404317635290581443975084748494275186733894426901946047246422769562332006565408249607602125616901004008362106243843283431761236663925298866592189500905022778227871040328357718169994650829960682886107767621175233917711295280605419058985103311194648607915424908181233491891909317889138461096965604399303929902963480475690106708219380482452071149673570441883771165842188510416546007577297785254276972524323024094398179621258182540070580951416370966230865010665151777785547395045931003717959800918048537563623145447522588203928114216223091711161744637990597579221900443191525311994536406355879045682139538884072469481596979283903335534198793338489167255069068922337894037970472791955288690673099579399537190503675560726491661907371732656808742756530408178374433624643534002069774444774470447670918375469088018674773392153942581382449896144795420987745310271155210577652861513463774632006502636659897753703803273877030661733742136980187604506408404946332427626365801673912796601475560793255336400352675268672106288162784450341961758056071064367335833401031942249422173646273731436718923222586540448656022906118518273124065316534986198033895168504509921773044742422646613986586666819982638381786966744886917294674532276837239864005884060634973332272864508176732270722649791384058725510809389899828518059505544184851392905144734136455564795608576232868453879978795474918238140434288185434720623363761341457208366794848445116096362948462214633719996687917809104278278768202010499323379375667734491247622772219139952646861480504550626187553123030189588762686192215979869797345509674256015809097402666521816771365004358224535299417948216752280467055211127967777532201517906081256857745611023621569530160485915120768572480416046185756797937669617945377297916324174900610888911300962268311315637857976476437784234049126463396096697819842267152946256969373279493336853252373184119452943537382593704402732869216157903010891390233984116164994921259291146372065962646068282956469056811916468347041821448001648647244740500108270411389232816295528791204043191042561483364973338451245146008999764059329703468443034558666551196581005896387039696823055326423147850376588437969182781838360532282178951229494957772170854179086353193644027488429198383303647186583445496789731763721942495221632603839654239043550594586336511570345056196777813940754222096066306417341936415535897113573532871781378043133358208442177118033541763567560237275976180983431793756644405522820151389685818746946007320431100133848729982121586230293563888497548104286330314016593737750711785353287501737331481250464694312473909074379216250425810666279971455950656887756173541113708641657424404203678486420189302458952408559865988186899128883916015833175353031704042330793817032406193122204455050681902366778964133337988536861521714670625508518744262248104921356567897904575086487963813858508735195582687679442549895362636542462122422332522938268282445629071924457210598661879892259324447561535744839535291999261703284423249588373370810548741965546536380246120126279209556305335101483062893452241403465132529275844967241911396319017767084500340899742671633205722084188452699841895842872384386330126423130693738007401639898044504260555536915720509242102624806593276497956213327053815327413139305126122909303971581335966930004964895096218509381506352152836319409131607176434742438976093066384095044331406189595046042275231726326976905426550805370848861472365380441148823476289497433263615412518570297203831323141000633709699534606950163120830084430050574920134399584146352724106256647820476990271240311589879602425597340473737494523202010561900187825675486309388246931288119613942402241403232333329554297072788203700149606909849632645015660412341303571553537077860804209213858091842833269585243477129149143988087237130112424360635383281084183950416619962416566387274885441197398883722722389813616702674643555995612013062509378310375639962728693031098107309563389500226418764942969594732242521237605917162518367222243491670000556528114793341965646032790320133713201599049848027598821689473758761178365508473671464425781634156050143396975099393613096352523708860782917224027685577624403428048584074327508759690063016320335694016240788804718624311619300747535600983685930717931984779193611287020694836668409341349816602230754249880988553026562735908367201034681284787923552893964908915206780587999782386036545096149310707742571245941575325866190259938138784634821939993164777499452112466991659851307351563908830106930235970445537451177732242436869491313541566100742655741669336546762331770402677621256003845341284980865643029302144512505385527629009406538969109361086440094740187263441842486088155658273147111772151094615110697673196744694533861242450064092727827128504562107748944934294642479071966650362284424133554509122546814941524960185210407957791158833581434521059446445596964937342972060695995638639940857162665087203954648928494066407026529908573847985287537072940080947587911600394005941439356828689097800199647143872636662770735639330584483318720550296395127315615473910936667227404865085544731136009330848114918914195266110883686030457851474568852549813998386539265898855634180599372654414708650258402108410921508040998223096479384043271202964303872189032811319484974165569630894867282097777782058835759908175172992918618036435917745024986401719131141251457265185320490058661443280095737355834429608686581043696262521133224093173208074609162656921841205036273597130852583246867777032062379322761650307177427137818012454313979290119526823160640521900682984323209483653036864030617529379620545915298331773215100707053016149183768293686955284643237951980229877970006353216816498000428772746930366356048435702521898659233547619308058390320658781220708458225931597700809188044221459438825894208047438881385947937445375473755229710843092607359274748943108282935544969115444884279922598544729707307628227145221483936506331610776306725224328594521887410797000298894440573473381265093177139766349231666538497111574042553215493075364214017059098153491886650693682112854610968896795621058824998182534469678754756411741785896747569548520358010234269115896798197994646707558490654053415878578563650581515686848979375210768849168779277680863813828742307511134068112531755732051505718689806676141763250617097808332717917538743307647709968540462621925644171467844036914592957570154524557320798995151509826809754492416889592291718911444076773574604323889419947486423507189445680539906269215919271355218429659403287522767740348114103717870000412694216016236968067504005540378132208482636191652550246569586223857267065707277652073876591937181048284833072408157033386420605157371946638417187560438696431009744641031423543642697747319297908635434087027451987064666900854950575490130846681808979063222822536940025117067921964521581068157761736003657526887091126202051540409760265145996787276223789083109864262896376109647523252169587730074417363332497304584644607492038825823241365933262361624026273133108265938103925708841461534618452467236411829570908589355169575102158530045445612134535254210050868596661450946292854276371278979188805169391377329666556749104424967510499138723951519848752635655294619234590143359440024928929717757375144608624840225324633765883759365184536203214253945374592743517216536792469644774654166133163309378756724625876983335730576131212540630191692322534090527803706754339265761181912413904810195032660646285422794886070727313777071185355358928598732199137491446865762794976508793282306214294724889743723477628071531085614158895111449634043764702912734923279563922447064723675039949152266339952081588306835733070453066263737307064098322750123180394238870262449565529639809329248849470255584470646652138506904372156668088652486188745924430465390520738359205267647878212232299307913866453379112209693262205970795767674835894127598765008140493632432204771028834416564488874570146463590585308584125156283057067660573430534115916761303425283980257433340423199801198702612972929757421807058507268303616173087180069271727094723220841127489946594784673733948019350546413909711551625746411171364222792880376150626087862820852688104824550316422599971631077410535078868367499105405141098791439612045709926206924663839869945206407743176087857327795939689299843415417554750216487026709563980806504627305808969977453683977573531907073377214613954837608293884471586067687345455813295295447251592566176099924424126957215035872869018881032170441235066889146219978121810688040981067540084031941777867166459415872584695955952768186784711533959142635929701830713449152646383815596108424162999727154245889283666584310144763778779336757311360636453555710323172317368140473225090442679809566748462698449598675621751184487188669756998233510526809117706380163162853838517047029195677951686189824572190922254109170935764987397198276881576995619207036657010547399850404837848387776246022009334782070851901325597783920060556926024465479302309963453468925983303011574272457841444669873084371316693524203622007226920482019785994396597358563034587365636714611009607608314826893752063845381837467013313333039039262234621079386915603545303734588945058797443512605079022359539295213747929154270862473699899081011548101125856666641996502534115410575134499031647135299016107219325771443090603211061241242577041172672460904953436003296753486243342301731643014923290125677019746155964118260383398761501574100197009980115004338984454016685635888731811372936269955243576090595359021168199237491539643960659803914197481803215471789105676442903267706580783787745181203184196799630233618665478693802559948381199274577472504537765038619856218435868709815694843652407957703022035710783556905373165834627366719159049693604772632333330372842869865509337707523227326335277002069038668937728738592252463367082190960696811967050692709513898758361564954821731270077575213970167555539619420761810707673595121995992737439776609978235648015165324576403322907063314007515614554073782245074272433319683202151100244105690536520509102835548094585408241445759219126422860698734642279512024887114497622943850660982318508451657385587252482633385700500403424663518156657184571468493806451956470612401418115341049900971355631254026800931555186908534042745787311399234649271319406330892989334817357519320116998204468447376679060070725145094268552998083663972706296536105058085004102278918564662232065294247165281875287314444522142169894448893699119554186006572000100745033292262908221919747715061725445323285310464421924187112877214573299316268884644709738284802708054493491033738969679638649787350512967162219668691977517951481310666320280912296741324573904316230974882025480315371298779139831573314561277567170650449213019071514756175670376340830208297083123199689899980685056189699897648071536799276811307751367654160197871725864134621729706213348620271043256991364758559737921422579353719303481364322212807519258607490151991321144928721925816258848348572004485536401822368418705588196539295394454630292238560726718410387676778093145330858790129863292316243129561105100508510516892098033656818950142070891494694771224318209702116329034479115699615756128092714471821157517735630905673465432561978330761065769507128689726855995332386106499097938964013342061289622814200047192849400817545560152634016329046767466022821494990592116349761596074011103982852972663957991364522139456433805253883124713354461577543247943805488694747537132387880336705701144065576936786724150516707374027924151666029895485255371928838597340899450759739441169702249031401053298745026826053646475202175983056058680536311410028563427526931725371645363481254197991914314037790642333025893550475271228089026596669723167378036160190809000520267984378980669483154443063515304299635941517283944684572085618061210149181847526249067013588356736773238632242720178287172754111738404870942763495380961836160100046357012512503995922157486397052154340415736748522805439237953941150959208795843413806240092085742646364044092557048268529389765731754692976304057484128660331998305958275634925407795913822591485465687358456164180043133299287439446419624058783275369672685111056652567636868109268845990493657532077235531443008934711089086198766585001209686668810638227379123832253969300785873393753191856411980078216723966355845858335608603553690712022503176770212656159818842197547327387666301261146356956936847665795578821997231320364936915124768941079204185444316316826348133844610389630395661664258180037438151564771445325464462915225363279326971932382886257319663710421113939249105960686508951652561846786644414380988124812243238084542195024803670660346763118734005992203765328936600672290342221987813958742956401805381093085179927983183207928254500293521631362019207892396560516639417186547575187839485182476986233440028726141667701867678453639375494087327775074590212200758231386174041577968634279364578135931813059307128759710251892869732736343603460818212208824702852159347643530118730653634553073154024346146557431971033546556810569110443674942713416424352653159140284094547504165180912640093719640640413663519944541016453202884983283352986487646697185958155812674434020471843787015158225509498465166796261287634093468185922192060948063875604205825196802371498626159859592517091254778233807766115583281212865275317279806317246858063799278905388611878587280797445852292677473023484473618745810798695462901198459334086729573837729514056391693977688634680005060325542769876787771307644853346057959867099041126740180734582103554733164455954109452668370970414781384986652183673347671541634149380296239051890012577036274060168869755609651798485053555516237189111888285442653962644240454736963317924982342759791770486308487264644599633437852800650289542796260410067133106734471794988606231934083893759169776408854755132981045976606964806636635871622092230899780452027363696947871657391846466345089603636777661599210743610087556311660378956097391998608112085412636993715164435587742825497755278008667432980189594523381412016581372407483975453300291425995804660736737591190524083948262385421650035562520586526738020754469507229984214076555668876567188732063419320729505640839251097692198556798439478422265948571730942521368521273645751183515335019581421772221150701347955844540808476677239912506234680637465194872003592191207638640780906516214477175682405046287243998292595300971237766402400931077885778386672290034488960001473408852243986744456302102488244917208280765185326724891109925042402465560510323989163301949592180427727051378782881205834730241949244516952098981216706394087654280191968030259263318937024220830256777603469819801432811385659478172563409834102812976487766531756888441300706466114949403816737549212849722395053219638418707506712883615884328632891026718838755252144475620525360289736197499441008776358098539942659087268964233682763933694316711008133076546182904614179965532431599686037194583720748515327550064567185079608444924151644267539565356589071569596971683396332841024158169811920704386330159040587563455933109834503148059910717675853949746140545434867013510803628163659675988131960387785628936914180582088337225410176720974104312581633477096907843454975238440359099584530266379958003048022967778395006970084944148433950676755812203129955208759744801156598854556510860757725601171320382690026625233553116767979761229331267889117095349657198288109591806414211578415426413293316782659425785978455022347770690482784711460630843894810668636548456418652293746339004613026430102689887991015856504201244384397640251650105745442712418763829057702083649732079640975977855123874266064630057731716437845508505314029551093943279506601453260300787611476649386526778596885803337145786285412651824067456298418076847389772769643790073313270360769718912675119659226719742693398158015146054967716227079240729405471210508251130089570645044109199290044364892028639945269324122917798365373643151117625434114452342200294154659500670843377846652838952934779195029946997557410220311409345834137415827119036153157391822406510786063640456107030175851156803612190796583857220709640454142280880811380270215776577420923238584853755084770475288433564225254553054884655970391613479908738755432919326947198636403177540667918172297787862536366714314518110264841225853343153551501302057831453823547781649162007963107179627506926907626838698710255012501182425576151699614231119769550221900280961844909854946685635433101066436657133893767170961329573873809487396504913793502242861689841011180762172709921109478194857547001204960655107742424221435564148578378700999930031499047569501415002187086728861855762793099877947555605447544706001840775656201478096789352935698051654218765285801244917107234575968801307927091231261331253157050439884174065429485501064478248585100726922296161623488944795327744610172377936438520691968402506912878014804182235406698183369060634981085098608815025719987843815536555156977099358580782756583967048828026511994414857578431225522551813721425003724419271141709719489583844012214581812467406900873219678360895343786182347597565896249962002996734123187421092750507640933728084734728370775932638086293030769646976318079996750412587358775766537326336970698225960643666751473584068646141776307665788383635119057317613964239783776780736546992081134873662083991606757636398585052181932933624469457224813027817561718218724721562572973402446757120647681124934454807984164838002905244527736140489309081913424200580529261588785221935805799665128514287281783155507590327220733767666714347959116196552361279111004261413491738312619043065973319948387888957604430112609441203583075951635270382819823952702872793111345386228570710812314078528846676905483385337207680988705538553092208620689637654727588862771155585455831661970316319464083727912009015763246663456326031868258288587275327286457707155997908217356143156472805950590995951847607980506489204437751266831458842544870153525573136878505303155416628645260101529158935259179948979936362310393661453282084970263175165925892011278374182025552440641973384974998268302657324720072334381547912257172011517251978958169753325758354437149687598098102644268953474614697501882867285993642223497138967901588927819366666239925125364531832882847829622722374714377705384309012025741047512821757450865912931557427459496280685286083938532743770029355843537643464018641100014675569921700720715884038626928946780360436265889777953841314783106426642368870612320147662728061416137821725526968572156732742129343161867848018263323199550496152915253009209682761214797926350158591104390710286733092315762337747284161142116078824037589925637553802315624078315500702312907040194189213950906553282332658142480465689179697907389623521856805182780433431616525793121957417969708906648056839143751476270685229826654158935672746209352822073677324579095848048941450371362030181699606392819541538911828707872256346861733504824765871861044920788362127227923039816834981299680852429110213154697484262588970383063854299916022546012290854201242625967654430292436616350899565754105440239566511426352102381080786852686541522491952248093276145439191028370222794496511768340149389807296626041695831428320142834442745430121446967729683008798332815413062670393869615284116501926760044032476933881584570485327500277006280163499627255646365962355727572061170693473539789062217188382482165503106842144985058479786932206339602733471994762667823285047446897169226294418206440887555477446371956231145003907206540336815237041554539006739062216192759017697796644926990768795746952348625147791240506057376895689680308115673441831704616477774636376333854818277261119424658215117246481078926108162143616738990983146127403033247873397970842084917981585999427814019948156843052363160880993485778515189365834860715948420502826520825685596891312677146704389367309244126874959418095936996713169638560381629978106816402327572484863534667585117424034398084848432258403438194672979974384916600875455111556779156976737414475988540337490763224344887203062765372832269238193387379073111572128735379013787273195474877376790915215482996883799001993070950923175810142500308806814512151844720496854301676385200425776747980732774999471772707747965488271202956539541136116414472605924496753537019001078560366792739868885364870905145229694814614087139687103366385202194555300283692042883751120693094369622482274644243150243441757482555927079269884732910282477720508273465219283515668339782606454068110224690805254505536113594813294123292301390034408002725605991256569782402882706409273799517837630579189860773786237184352633027814023978508277380656725086425195118805314507558434981466153082128228778056615935132894398032665078894434809573592203452363405704740653010064003672349591884886340038558961010880746562247539233625208597659105581153783391993459255569096692954530517990270043088514511513722213872296623954785963733101822926719853754476990892324362235246946353386699573099880177688423481414931698149854555472153132166876672981527957308426524658165659929608488091223225684505582895490830127772766309316344355083604763631821887642452766067016043132967130446273951943782750422182688139577442006325487604666831533834852126277082434268401915388160441830428912332629794715512841804626004134588718139988996047980688022870444029147274783838590061340290197578046701166597191663357569927985007404059279707296111064285442310951770688847565489785833894872668738994400282631037738128190927391806431393182159233217770195952490058803874711314717624619015960944544070587046938162414491161344870783983009638904545784027260598615951628202867621553810694503676468467932092699515071831258774878420619661347696191180189056111533995654853887044630119425818787168390202302212994066357363674754528464979787934717862331905233523092775253524567288724285728203061142024197517122346775015953316641801323628419334572318471676809916561621306225317226647498029336152067181021602713144239599188771616456212394023669655638006872726308452983736488293131033285297708197620348798072314208904763586122260001054286449572545028077160905820346880480901024657301982932389510326727644863624305285203942275426718015546477734784190245453969747554479338883903828899847507667371181592283078255941863488878909421833570596901357588074018966385510413966944433053034492497175233218058030523649372387704613535747370822721170695081044176539174820123622917753492924037159027400820884132898155384083985183617216912414183134128997487954541207263247808173748554755500921347932055678273655477357529309433763943059883124379737383438248504304237541416390017341155434296829322576781798634484131188847186654334716348278594877825271842746332533776257194105732923129240847933852277390080738405778304454414479828528141444495444131902676876421407287940902809521500960476041632675610880893599719212339673986606011252361472147082769406673368193147446183180956229357750595753725406798617255835539228567087542427389259843973782296375567800211502520267489213915101499308086456062418051692066759034181366121279151817155767410218225491491703265656109829200130497324393035413250313442634117485657527575453517081817038386867248493841119133802124035011736413441550950065211967348691758651338297078816857023335429882020792269600323325017335799374015395877723417016902691082244338581361428578961657762693669810960664126339954215405485937467700546400871278360158000922059897523452991018400929170379891976692808635860129106467757257487629757764546081564777569468047884930047536834899735698679560049085417626004342154861498855852445544891156015401413671920822875545592952077780731764046596413378438456731346358878990067011429910949607054185578038183717600586260256676543911095506654596829355584120696259462078729364493898332914549474467051155284557441818908726265025149024884259891464216930085347136051517365943014629125868447452849858217250092708100986955061638155547516636752882044514467570484881788214718311703579332703892383585403779366155512280867626361801556207555087413562833801257574519828800481421390734985134716877997013324724764065964727471174243493252335217134370912337139900687930595234449364417172856994849385674171309563483395363918360000490588296899402220066184920155636537315430815895777865889907727572563138712963914577467617368991326021254246411837819823350615710911734858253094105710858305605287144891695978915922365179340025312710738184535157312440400442892394483997291146792528159622928677947072439781263533895163607873252236263919339059737344706418655946117574267189845578187046743870784005010073365907010029605221803115425485901891372356646357428618024382157704922824061682023270525476544345498243779459955361359961335588667547201541888295969410352341394993194934045791684837336155479268828057458580054026940039028570658933394510149733990858772143548845761388247558296013477085674138363063974078250994785630775868757743163430413307419893257342700592028466910373390922149584354757383384212320438112134670267657839214405654531616599147799102411530751905470731533397880291837276672357028047344172879099024940920496011974060645048940048286511080000457917503149807479302749209894866181558949234089880115381322511847852711290533458635624771220593087563289533457910050725205169520011199054628519011273561007725102352799076705892818501542729226983914014756257660109537989570041628894532033625481688402802471454231449005409573781466041931984492686023210142877516366472126902898941526147854578911789275447550979372501635293110810342702888791561571764435206788880451586222329108638382966535500132631624116690258353999292208442383521573696111909288397311244305096477678561361001764622677548466008752686206910985407498285499384667298065592764533543088182251453172615738614866639068643402895195369574763119395121954161621564600705161159309126770408349096791764906794111586757855435704368718138111435506943042438917314416054009866533855479979254328965222645906041324862314571942075304656087806453032333866335876334360758069345805438521558364389731805073178717474066935600853444717601934628154224594351505848703891419607023706761124271241547975477943954579047304775769154192544299378236795376132186550494361273943340650457487881019678291971922113337185220835509706200542867764593215248900685541748232355529428486694389801326981748352502008546048596906950162361178669883460668875983048327303848926398431961605449733762670990720469694362299266588512077632576496827434449519873272423694296810452799892182916539076226442500178951739369080451780641828120150387216943779393682390030139126615947833712039909936072213255831948494358541532246730316536131455877502089725230389576829248684856551355937230372750630643710410305196275555277227059494650409043835396132572526919013803754131352743267637726785440885154930020098278316853192065396588343074866609157333199220614121136260562263657758185745633974854965043355614913339589477865134115348236432323071144478185805691117564887145986847310031404025587009656282704430909692869374060010195978371883222578886064319375861473004498323107996088185833972138926334447382762946235321657949730113602984082624386980781097809413043480751445298665645909974329137775282769112950066589521219682139517335307647538437046589113898913015250515105784733774478975543541905522855297267692773144602042076427340561980076893368544672626588431656203162246244121922688794005677682208767189904833968058636358212869278275211908274794053607019836818764249948962911326359672515291227133505367432464884641102154865123510712653999050033991904654021491642486962259308941386850379901651684272262101594875801096641509425884370363126250249927659990895374359359497157483443574070528436824962578527166315888540348491399520308506597067119005566049246644741459857940350502815381729093198347168516721853948469834269305287486607102272160169244038407116996993082043634379095110544982821300370253861847478743381098506547462429936225617374661935830452962959190468632978637650310117208076369506830128745703376088534382433438153534623448732244275194258419830146550770797890726222788233632329119420956697975895088731605118906098566310240556875591469711324032448066060750046753542105927046720243189815707751950844799184959385975770696486192702289795291096919179591379184696735243661338455099185147987492020344912602140358641510703056245248244608919455966923670966775692844354644271880878047787949767264599056106936366970464982725087058941750624605556536727637139241472534758915405195139198689640114831544031535430004144027220198054884201994439033595854322378999065182331854088233115839051798803154798042316521666087013979759454999777307780904904797883044563004616364320170761311549574674388254738293525972447926888483608932122324748848162330348144655695419825435271827149254319046085443546740249776189740323305949163197525128784732560636785066783080022758047400639531175900345271264500598707865615933795609234018206595434755771259476446640300245794350465771898182443750720823480204530506028059431536899350436238888782146043811843991725052864388159567917567823415788028728001063948877652161523837107901908396954148205602200411850451644349481236142315645504831801272926392822815046739622855662483238968513324329042045432134276793637083488186294967722314572341022285037311487261113423755590476746066335407761080114251552082276814615789194232807156205771172786512519994138114861485904228788723737304221995051729370751380058397396505476376174542852111004390788976306713141981536579356953659861688702943442410995864110736155153462358364956478446991437456681440617620769472141761000993196145215708457055370939234835210807150957885282422785742398370527574847210334406753380719971629297284202454907670949244100468485228312448027913514647214714035061406452507778488842411966338632085361311234456919357616771078695230646310316428254530384944728840317529033815214687264595275345934273665549046823943969710348925945041354306815401300928119700661691235014393480158403036902135380589684552230406316724913484596080892872948065726227440079186054418235910940850995330456609639023388470253813831452932738689368256085975836689285511845677688302952352398032923718854912607360454893770600544946073708378958225209609077526520214558982132029192512290484747280750293864112625487711639878311824920620125882302995407567842926526359416307105045202553102447260167559581185430714486265380191984669072308535818642302120160918092358825840281269716687342706280505134642050694192258321656189150127721202318402052292473210297400894163989113584387515352418536714387998670008242374523565432279954288786254285645434861780855418953861373027069512200701853446335121576453361215552131254156659461586748253101955064616932778123662517085530131156839622606154634241232160840958103091529983204429309336522762983090574097990477706016550413875149331729703529573264679657230142678644336201874834084062207410164707118847743410698607302930749528112666137381604389011940732864402270426625498753082850217239690295990184878860547569341569982381559608282528601719431147351212432254639682252366901276434403005492809819995521780298682853337684164557164053276232538667488633120651466699120368660185169072953551887037701422863585055757590254979976557054022493852888111017765882857760225052748353206555903458967741598401183959700522832076434941228201815353699890093051158014954738283909580612466598134733136546334169595435313469999273771519542956434859063423252537994359897549273727729669179433839754901041057666826628923422263158820209176447959417915341701638369767294844438057200747410186004686352398658324396711911234009792022290845454063397643830716516277539424852783929123819346002240591873938675540705159255324951074261604057653305207691701462228731794875401142203453421409075204005100828330861500755767561834061398457343667029701477001606980374653067109008261544968611826571030829290092074882402950755123292823022633277409830098403781886586706556470998925713340658517542500104813844761495346676789729842796645347810811426298028562119247412613149406664678742508873394231776341282880678466178072643712270605719209716047053740169953906420219252387480070024818770684916383919364239692728944325441911676282632871978330548943419299671052595608918713961189651478831949668255588359277176789251136039456343430163994599876478571278529511983260972045388173094470816143630062850685540131752897177973811723593990188918424446092187460416360817412459128319622257394687709967978682416387099897377240152017530769893101028596729808536854561968996396062380112669050040652286788704099644400799702342896813542890343158184463024461734099467259285410175672245829230873123633835522517715014331299955871138553820065754262597007065280978577173437137714760388264027475267073703646021054851502420623741761634166695269000820411401996293053606391766278607367264424745028033894799617520591690132026165848158852781359380494040158544245178213459871788862561818198250696228025584120984325585054467728943395775863307382691887962723188758749344769472319212544468182165274015063183947198542208690085519712310645144887902217323331650900466697348664285672513173019103312627854197813278832406264724616686498246432426932561449378479439737398485479172900983664819285613477327995167833603073908094234223766788014866734810245977807563601483275085902288512762884934433624642435140731895325283461468662411162548030193919879938346642306311283442437380055872434669169145027806910999183646677352585285173464814635554871911266375882728444341434136473885447518735838053556067318797333226560304251763850974408782995317220687818108713490078396135171011193682180244666697337047079396502784763870207729302304119104525590678257994956053688492745065346370313665740893046836894522756986735282985659636591933875631020195762574806582738845634787089522118438852510187114316108467955870387958084211133444324635068659004180418950499158593889195323588335997238528710839786714565331681154400322238212669820187082443140158356924562036649101893191270878221172762452128155747705960665580134997074215394850378107748006466776293475536032606783269619679290875452230962329315272057243141757559934083599264462953418704471921880120499370745126162603110645437779971768893306897475713988540429458301444551382073529162972181116393151343730786796546653572724474112368799250189626553717185518276596751216830496354542184012393746857621717914276253867078537295633208519756962282447826083481919457557276406008310731592088736663562712449707359624730793976233417047941393227906861229932912855061433446805019993098295148523881008240147846679535659387355265745119844204660010437216661380761475362586206945251644041287527604018052238728389256935532652715442714119734374403424397991644119833611966452613584884660031144232428844374892140622023739370633546402508045871546908353743411491794051237071813243878613433329855530920808487070961287080258131363775687661956194232112154539773245984845467452279797703656856156203113706059668551774862463807605997220065654861169905394656866274564682464602206408232638457730213237368370603678949077992796829525421851653219020799175865038584444458398866268083795526966945488417242349666381073129931076463277438564982275352004079804122225832490066957324361778517336237615937289120239794395210344639593435891164802584897553161712107109893740172966345473645095243541974415929023570437735600349175892117811539623794127837046961647173307153000558241043632225189674631879036559941416807255406976640145497009148782370647780590348768504904735575177671270014215614720527543810785042477352877478203374549022486936098735109463325999993899254370116632926836162220314633554519559033801325342648242596250710258675943708602523305440403615779259543040248367787070279269500067917185539169699612779819160851703061437420385340332657192684842921933681676707569216271199894222746233587528505328246070511542370020319383592311471891169667597935647448452353324389860582106522493781286107800177406190919818412017101361919932255806005638316244785887310548470602127659119921493717241651297259792259442257917556684718092911379877543409380019972526262716328899787705822772613643529838085413075693280902641519335769756775255802966413357927880985001922452421104066882176004674635660910401596601404469435026333297493793738337657075518082996616964163874727055757461213431346041426603029136582683031984526959167245479124121100917373457681483228581965164286095913953400902712298817412711062644395484396822449054918745406978882970227170654327672497890816899273963793902647738523474551578938218769370338129510986156211217943326609304906151051600374770645908512265951605551673040456278330140784224328249973996612158064088803022362925444211238084764485113596464305888364451569286102810983549115424819473000710694926138329895712485222920404311861044498978109376525711259218894122231430045204468976731513035596112026094263253012268316396386307129382610034785847465898292886088089572663360014047127595545637410716828944557701360011925492310355431912998854259987688624136752494601328577759282989444692723808691869912934866299397478600959093733039014619554715150687379054151805844256633728199207384296498319381861076213031456277095857642615000981666304965855577911180470879796345622171369129496223949988513286413573153134893136273575273441487874723837219357589558541539046472935085651139054238160842675641401501180274460561390500166406368505242223434411285324832403025861680056331353009948514293214579432319162308602295444855632969304579881106794848513084524375698630566985990989999445258807069298753322685721555322031208594861089500728578214872314773263485330199367935671587267602555276347379172332002367274715807804745021956571226217692130363293292724192618476842650969025481529324302818954529731403543240448611465452091819773967662438755466483416603327230559818575605916573853229995239274728409810907970734446026076482435869713272376106505156587809545525238089359543234129889372802358487793530389712247923819781273160615737971785065843942202738359012141183429912048344488365572743722083412188635585883582933348241797226503061331750257394205358297883952602767967785148407260131363389671987998475870801604933013723796130535828219459422244273330423797013330241066110866271338789281278053553316702439790757429070735033822842695646029274376087972302122146804591420622729273274670001502669256504667743016994221448839156923510303212770448043523290702713941213623514568419824866162022900026126661025423053897258262043534846385297354056950321908371658244347258231327698596439146228656991401690368275106210451396545998641646299668686355730625398600412819613793818635916080732440188036040157739940760197599022650425070341611082811193540223732526738729043052192956742704182674768470778139626657865092486129561394121229310649322619486572414982097378653262018416286084529906469421257074101522560570758565133595847320020105218887454583882027589138070854900399887443792529737878142298704141524865183291527747707622355389590504290921322830107991274711444347760050372802196109038138168658299033009192979794579127125943522218818981795784126383935178576735888356492412995913494030284885617608030333624570311519498925782498926137594372872806515013462817262143041049691462546596670757338338520282290500760354715949402539398129836953417790873077884141701105599638413670334492886783415333812712634568718056543969714231388571978474341213663432396943244944677333097690098991971704476617908833321066079390936383353831686457775341539924980484453925543544161462081316174190509513894816976031123886063885086794181586356326672109825124967683802842446284374366391236728887793957008397511879985715376847390725636376074043858483303835470218384953840757727204007432107919306291703400350290271550022454059799761506638813634924874386031165055157535298210702856237297949047884687086848655238139035357340851769405799538971166602150277838276440968951594510136234482345763845237089959018248486435131550815727164074728980626005819844994193838153306865366227095395619124045420365208528968320782757218204168068515241624487224333831875252481697391779420075939362019882386981920103315598429291128571470353724663340680103448868123163252420447524644944643686836306503952835402824255296311174891656767054323355603072820917467525049416680966361566661480347198700802231566190845956407144418277303177889723227612367517550269379535578658987797989607397835583047035194107532955126245693271765974530000766281375417178019100359011307153510174513499113161180571754445422457160047978175456899771906759948902361867283376587506254904435435413137595257760645504550306162309757386475661577828692557777619986805410794177207678845047638718021989892416467904144872753268727883092532415844341608006433679456202532779380526323672769125476249621295042541449024804903018581480382763101144703066228440775970443052210754497222889933490697283550257242314196770449008571511160984644698226271119555026108876811875833448115158533499765597866858354367124270354494364701860577250115260385557710764114126493511579409386130440180217042977147041086878437460146216361395719964798656494582848885915670631631122248320330554358389741248019109521731577475821552488683699285047077821416049199754770215627196939759977769816130211646301162683980062038073091273800388898920309103511885211353097051120175117606293000630457526026859218499006673277930437414708199812115527165011904282793712745955044176987710167433559473345384831631406185486055492615655692622879653866075805962643608270461475685671384450950008715546523621770745230459782900692020204412472398833659161290452645460758124775732676194372029605665290404825844479786840372140225384548844327142475916459212864059794092346447493780155979264803215035839613756066508722940152469683143076470309332492754706972730381717717831446945093048204042202153950939158701374056397889224769216917578925677554276840601327617015664318397814818589978071221080982280598163424623231964163575571226471164353675820270328337165440797642538290199623511446028804012770521931628209646582121726773153288992156142826416210947693679495623231634813159377634582314542968354848427325185532883674214249853198242991558686299720662883422418315159097278679526691328407272502242511640251866174684954783293078432611043586699959948296642922025688347732921028848288522983904613609769969791083343407566243988932655777727478234129058037839539031521291276044777259095781146020508364028528142249856436783247887933804247962515771961688005293124249718883837066687810978487506341282963467027459082376712803500597446688973417948511277305817238697231249107817765945078169950708578984772791143163355016955701538900917663494412703661654431640567802927562958693203087240408598390155833666179930448906514437351872624317313357569647788336231113970948940703506637973315253016849850735241107156873978103474865004397152396328264144369535650724245827823060727496801334343354179407316486662055065928857776878839781724237374746177037783345597494696616814633310748954288431277623727444337516039806483052129242898211533370282987698806420884926713349720179153041888891803087519962752260582069715341559976296713015875229554880182325514345062000662910516112636157392910648365069705620109786872445015642979662902596068201389667469868377890039149980131031436631303685434700668223384877794920761983897888367203104509953451177308028258499133599824420759238526389901330051230048352733011519701770990092869691133138407285352105929111408322053074268789991956524356644924953699997208807329594496842900820122117404827478870443371392444822649102900029933794063256369999095043302695514144704807812959643918857617374192642967921127170327128058741961819567205194043032468836527071094416699370416136698361539487310488484428198629899304446470915705105779798654381459454370034161944929099548917033103080367400206376918446413196841407467465846556456572606959549362236549991447752525441343315620827548934251352529415310757764945454390653554628895812652993623418159919192015999429271333516185621220412181162627247412733470747284381286448670698047996442928537679364466946595209045849724639998828862144986180808865509497047239117432219512757567926695049372326927244688589207858782305026790340834200718757375395774408955101667250120284833450725393799176779751108218188300302341127098346486732575960746668817679680214467426119831537535482880804110689009247784616725760377910338877105171106980111473782953432065422547639273063309939449934217751812834700158601200574958040552382940833036083671899685505057269568997540559949984016408934258355162572990454948219961265849672494117307778561725375787156006941095710329950947738185543211199679817143623077908903560472057607179055407090145195981211467774297061572242600245921020605949004376312652192087579873216281732883697622329367198770896386297917479154162378581891365949772646161383513749370674956943437654223948266719230171375960613773403642506683195373291036741540265162003876118687205150759581935516057454323268079123827126151963588075592963275369036140874163874843811419982643708817919802354509396255150416437558190509708447509258793514344519024842413703420612145657724956385163912699182335582739265088798330852793301883724687654383401657469094984006488091494138933749989686001871478728222976210904039233362937144737498313569563009900798515381463077149907866507361001469313024435605960623853516676424469465585031972580932706834051909643621641200065187109096478004381535233457797455090317031683199747939931898521189141886732268383803895492958335452896071419467302215455998163950814215720891641254072661016378003323525631090457116009797970246875944866197426451214167603921917525909383640114791697447153003609640696884426110379131230928414296044255734303347520857067839336553491407084317842356779495128943025861094484424295927395774561971647319007880337559537524836104143135161951629724313715070942986672141501218432501042521754915386472956850971406582068561341119000615949694112784862651663333384936701212725795388401129109693940566295891084126650287714912765003504423685283849869130981105239003359177016029232753624151799326462943931678627634603384390953777877883106343830823341453584394207941992547931427415058538459817968922060233907683219537552466877100866616675479639866196966405252025709024708610575996389192358005823689036739296128790916328521091492503071122001576388989844056566814892576852823686150909085002607354104282642359685779940765321112708192096858306173973480651728376865799791393272676050049327034030696782820365362285709335804084509702686324014243088768850830808007869218003049524567734503244307437697520112993181537732335019186348471486120311713112116114076507819150236710780792259685901979122475728564314028860569534833700035863828914197495808555171726200112533126662219259753893916822642703318224239407511317337560912997343731557623131072497016575969761800900760347366706578567620623809495844570089161716820043714854463070357234415556393443166630822581452468520148140601104454073662793045688639535110026342218653581843932692687930175629293489275597655888298117104619194819178406054640905372396837743752576413943305246907041232388646393255157656048057007481890729954567569391910190409671265326160092120848023557917500846196437352501676218517095438406242100016661998344486009964774904704702330311027474893479390407173541526120368309645110013230215628968604369718251373758489686255393079055083495259605230826577426508977315704464327300658730290549830166352361717762041975376787049500502535132879675979171956319366002564501608096558480681988610290275265914374374426296437228962317359098563257876496361035662184405118459509607160498012839129434973987016692071688713921644234956117273716219355812180043863697626079058822305985984376781180756798502787133511555737918506023739951824874417022942444968612145297698005166666460412460674582815246163042888744845629309915596006499784231790501344129126069235235357391693650417506561292078511129959020776571443408179524480467755686443399789313559747292456088704140574909727906021003098909332542444361939763446991365318377416719595563818018621698796206782278591565382468707268318790764955173485215034966151890149928331530737267333514983667355504478199978839885784399383662935087023531125703047023616927980985092106502620922699602355088483761034872619911819613805234131135856770416889483877874274601850402299542280036844216501395933988831779595603591672728462932781680616626543503994560313753506190508299984399441992146453577731057475841524661261193557518146191073591940191838878160813520546960984498908807526602555155874182075359149228362842243938767890227999124599239683243441197576145590022750863751842631407525401449708461319247821432391402038336235560469661094405572392555946434105000344311482228004703264049260272820250685365730908323368156404905343623720036694443035844073183598578837396109805169607294489298265568164025307571772374296543655531034448490657734885165250340983969564203313476493444689225814658110928017518763229109238912732199141172231900818296263755808246171169415077554311948339025959661240693682219530919555751795866408849762708708927206681188319611035100025829994802687653091994885698094656668525959823676844530020456256243309773184466115160415135168233150151172399246742455301343499643915000790930214017482470957315383698238470347462332148161183597019885764203291458576579151945455283431793210788287003065353177881941062841144765676126157958675093692597783124149074330101377576930925433046855261747395569269673032779053666922962095179097035565492200750680036118382840405229685139616069494613638781981062134002838757083762212212730886720283739347454540245601547512122653422354448307982395595983565292549828316948540535728882132092697606054982850497892031767550196556235765239495939599763247055045708140608521826418275174362010796322561926405443304459870872189222278165626154452410655146132930328635696179630055177081876921936138861858437252961714873457211042292229527533441844333595037157226942854693692856124806857768028413644240477690203684874467699303370154950560875164363947982523959709310429989893054404536800863518019022078365623127798019288870251611634904210210323979979902659238687441131657453764343136563451520594921655382085464953842227970806492982163055795618912450374393140797764120996005028022855238245512069540937194679858096132019452013847019684363718988652428724984450753184538042186286600921439970856533491936427125682464106905931561229731432990711909683959097598397951039543917016590772653369636602279563283890031769508043697208400588847395316737186600357694142278336203231420420194737932097551797564823924635027285851118418613210304474973969631597462462554790440129828955104330378234394261222415346595536667958237898307725397242076718270667583948540245725799186764176631998994999705949297638724428716429686708980802632997556502142728207817232029069295534200294115008304238409740017730726758478288179142931280087247691382153709262936471265960712423505007668220980982377885986070203415272876141465363980730053355463915120595527529936300471538698253007465655831278486149864084356486859207138172036997752105122713897274142596526046826189662023920920073773077658983489982706809610343331580644770755080528852206355406836524696468644069886501137169291846416148308836886811618924931207876230465526208373742663193038075663619934841547894672522189470904014941185970721476180674763908614023219491380625056292229241594138629445719816388697038243252343288446708700693536325391060026674129656641566810498886674560460994635045814336018161864826504448752245337982479754987160049526076037575000945304670288296477564181060523135874995638261373405606088389379011698194152229256048622462169190912417234800348242864836490563605886557663088945195004525409237727556221168136867686709129077685813454893737036678881782749332061048149878286160293877657524628383521058063978447240940447788187403589931562165979697115695522289630041205724135896299842911903368523531461011171681077345548313559452224599624701865315739874200328733723447735490829142331433235952657372086376849425772358719202086324826949833869285379891634002015802159062249383761364897596071181925644575986579185737223206526981249998520947462420610590458991174805628962411354390157214739923859806215474287626503028386277135892300336136767621629874854002514992823530863329163688038572632899826401066764751880333637577484009861759662278548458712957425423024309002381588981145747502982163517797632654354440672073764521246329330698363285005462282558210958179122559089768939210131768846315167582376737261474330280767134762492777793456684770676663113157650899644962316706808420585931788575948325416872753830026167474306517694710224940123088036851088736568296865365379669881775048259125547940516368070127275230626598547915637723409716569054344142510677241075108687136243426103918353742154338031086698603492446362302302767450597095073653706159931619529168702706795182096596393897035194838593673480984658895930961880877899659083252034598660897990859937636143184940596545430405706791267684173513143826119681819242159501768203146691154628983550458982084886178161672432356617056999397412167168338927846525992421899334368879612016476522141425224775189992992122760083700010356118944362294698311100579947665466267718391639512912564967337538751121603865965695772091297555920000006524681718461655709100561411473862230144405763480825726766843649874465276755041191553607162733287410570125201081087109669860916133057686469594191638657987613279557013722081034161022668108248103581510806472491334307402484053291593279565954277181857353381049331322111266658427597397386659472853642737961208390612326392749118024423612132776842042394333518314408208659498678395082093293647622500515060535444087351371836982063866285239532325451150373607435423167236874134212691135620328753890454266487634218061978629117676107028222042499578561062855131614464692413660839345593283964623431700219005295787522575144365123267948120694740085234518646112376067767395649264941975334180030405577005400495623129066537125644247688495468032003377359466663561281428970419447680893730787864463318257407065613084487533392735514563419155194815142557533938357520956711898842530219473958411591233007907897688963121343953968172871828929178841919109535779742430942270998527474901027054345305292188298898640575751370025281680093866842126899473112629084415710179479255754124838723303647387088497767909284451466856258123867307921596885299698594394548490781728592042646136742521389430847315482185706873166593034037033834676788524041117602183081234938819046365750856441676540098526977007671436491340417711608377023735693394981880201149331904129878187873582954419875505605872278491896111987124747745267780404137103878568019116218830879414150971963341516770178847333978852941615932372334678329844319832839109157535980981008920626742439507287522030720268672879960561533636014790102976596855536717379628833760143415831474387305610584737647548012354655201497898090775009326052877356504515766149664658269055359594167703459152657243343550968531852648519293885276106010231108425330614577647854235567480350745114972199452582548387966799063350708274582076080686167752767021917561908688468404361445050946369881005515413845440553017165536847055632745514703638296976374670783011356633271402600405477204982397690998646372331409926236569940048282796700621633745357829708245333011301974265674270225021625135393789992025663191748381841107246193768510526763348718190750302830679571454167128108358180121054172531254272730384411208317259792383265314000449303622862199141281395270389044863151029594881646957196166057614782423800035527333130996282742821478562611454537875962686209978015062181779297045229741873942870104623793094593373968520565741637058369099402877817349629445632252282566227299352919291443505697522464981969893945590335793242887428785589164602983923051105407543690947715670826413153447556832924140338102098822876977457356015042925619053794068526152848145403889762391802157913910246436810002119900906137546073103839581453090620075735613088131772585890568449644843986250925375296883411489842634606558053563521585529013790049039842598416415007367988640803206038287153926349553411000770687075982403694549769901239741689180820808196408214744540173869052214096640880489580474609163819152468848453974953291624995111685055897967548731412773240856256266795722478596567593228533296277878834466523181693178378186392541320586281735207462765588464952076816158192869785332604584824639481432535134734997869703875233316684355103580288830160408633535387560576063412193004567014613079119806646486190514213986510255460998654617855271157490334925921614269871502323034334851166112020981218210814314776379728476370922827056461170330658127789862587642498640161852126751159520815860430067286880589439436934999133498112190545361231263949773895977853624545642052919497086544519753001275690467136937042634718388417432940417975917104595265290139558058180720450198176519584185581185586197103227851631221800178581298825391100583370493529876403508856887656856897499715791505515231628923988201151599325878298463302640069912259449680027214103231393111471875692005825436487063061248016830518624712515451132570512818633196081122061410263225961797006198522021648878914456671890375614834502998836792986205604652216345876974717079499264501118297185375615487043807606999371560297993663779452176790234717130538582992109222257266789972233348480206034272987399665902838324545510763712114294439103362164094964791528137678532771547512173335828768152044989448475584869769023192523580723144667272207485406366466001831658029429306548871046814671360547167519576088793815037270071000322656002319027842119607501028104552987069424939530190080931617268881315235666003946546772195737123408427431971557134014447696235729796038675185958839711229313591828726770914754503050783864560609362318839267952757681709008223674572016442090945882203344995180075976854620907576321672692076761383911487900525841914820133471746004098997186329764932895293256971605550023911869951873966699657167164085959428855901557084994482122247477763203052642745771471634539506545493525137343042596006174304850618466524246866113883555362567402391651033018386848796569258189480991003631311666360291413770207776782122573872190169978533918789830380046249190608731070395593493735191611143620267709216796226068225564719449124920385622090804657506040854949273495791499915262848798808691927665757047132945849478768170901765894932672343117657338655459778054465876472913866430088137270288359017649214272309603812388042710445944106337257538563178211976402668159710352926223833310311717105093712151922422596437747397082557042362215158345746151576832247243838435663718060386558441748348356630893153378076428875530468015031191298305823762330680795357891690403385570827139241118305213188539648007942589044401285228997938620249883825137188284815563902709443349457363982561295040774481576167508262347253995694926959614374100281490322730217338926787876912703718053615186636215540272705939743300187814523705862718252444972846023829781114536461303637178197614785917093804523580785580871886929553820344679724487883051964134636497063049818842836755052729171784218894358367523739288336957430815193183520985893774648730917040135058880952417116887768945710149273260884936366893880805640028174388466465004148342421696287739172568730204126116995133534978005470148842179702024417867743935680171572490651473898101476111987446282453569143783920234979491665240997077201794275983678568230823555223057773363904907775208022215089435443679345906566981491528107190460878911813142339287570530147165395331250689056069053792663006698579331153485217511945647784388951691196378428196795702772963794244500348501933082117976648596661168861876793493404407829730915745317537861441532894349018158171512270665119323213170982246267319092212839437995877681289148118436343595726599649941843104263144801759454588028976085160461507552174174131215531912789687702432939713792310008028261755029442551900864193425181991672926042576192697766988296872014728398373382152072724648844944874011008238533239933867907433807595425620823657853304979483185971519378182361688418293715020265873043045668781167274917186224985222891632451412252355733919747985314982930867303183615360685392404127760428150408429943513969457619952375048796381664164952038533925013513476386405630121144985393114096721606140213525987330595013818515466749577800063921969714900915882579250208218299792665209858315294702641824162304566731083966920275583931041430482665435153391144863836644470667937178139632860468147750819951974760329333083923543153425086820250353053169544906575604465608079568160200725622213795813322330099535285028604361740236082323266017433728605454376302083700154795181333430040400524837134547405391116853012128234941200645297045755115872901536266986637206338286272613729180283804547594917913231522120139676231448646368591410573036184079296951216556662881709951065626375099475416874472010764471713625752168334008319645655743013925259145051523510359260287236962133334974668758197097016271492150728333767050082387622355735908146953891294043088762549790136604247593706904382333885057375122964576630097039689361368393809032511297260730481621479782565920195117244105019450293968244770579341402846904916664824830414265761386580799853043991010415036253985027658350928870929103527637733398673089380543887319774682772564223378673741628618999309498645968805784557099191917774377766885287678344380652680388573169334116597628719076375113953877613210743552360721029729734817079237400296228772697702494637261461710878087322685980599445740923857604385487992157432766340567287976532325595278916708984884027316555835222996584153434052378450047668125273115677990734243512862930969682763110634450375840561137041934709785572246726730800507065246164834703310721791533917602255485302783913920902017903183630265521715498156842334142574543093770405179517559850650611244977167885099023587752082909562512211641575678524308409564878914297331336264123629759765767108382113808244619838037997275512418841752416221695984160348487779477397532905637289684159914377576040629549560760067244572272589842636900007226977302872500675561881443964809667767595550346850603171475867264816638744789518779103490383175067997168240590259575924195078785464558325306205003690358360805777850856158817434255546939144531588954627655718546863346463722910318964317431037451837670772600964095699959860275718226772595567830745229504943990818461569618875054507861039199303104615742282506895151498540271658667571149083048705936850676872824350067695096401888288708575978470198247836116274388280931856058804931977713267977844549088708325156977753845357921828600141309606461657293499771599153728527939805488528861986787005175738265082541210459048888236990378946949250720420422006914571997414201318459588553581285774685111233078160083564304533522197291086241761856645966568375069333278355548341778487045440345804083802242575502877554834903581920597581104667622404165027269384618912726251011410451982272062944971970645966539160900572424041687462472544098778296870124837639494158363927913903276668965800239777421089404885783042462766175370277452129092077026154261868441023483649929410035154373493164413143343083960106407702004027925142907528391359702475545854515513972928927901926234385649129368165027807642801430780980648114902793907074780576702265571646573746387273953397494469499157685342569117913823323961935084994597890880277084672919928684983821616846701563134805967998391199485892545268421856771202917145957375479033112632010250670410728149525012370329333815107329416818730053554105472781293817455021896298384308511374845014687757599454254835454846016657548739574869855927106999181020935786676601479684002618485032631752146117834631596870825901286224581745629780320856482873910816038714775015472995489542758885292957788573096403862254162243603384026369791042039644628417123628134515334951260818496295066603769309445248082098558015382818832120147942586942551911805028030000299924487757448195109343876314163571584722348801835751796384939797872514205673417460409915918036928158246653730682590596113858995881634254653261498164830748523728332663611248414722474797020581485819107349658123831866811521081139985584939271986299291227515137535270296758608275139050824300289402303838058603445723079509418136461568333393906200501906498297728435830074732228970180336975322631198027130346500055472729814354699439549953555814829100772657849094785833375784893916543897039446642038293954160614678296305409198367652422153622128689647864561704323419684966901416661446862799773172422643519714538396006987043254392512810132737669498419357692051413106363321633734840943810703093603621358281556080752268922270268507279941294239085000417842642890377520364696331540692691504050143013473760308675395322559991610340538861564541476209670478408487164817459788422390164940262697835718982875586567524688447859063188371672545540407331265608663792384647478675040624147280011229709508611672457474850487560908982233615459485433701434455790794991707933959597197854695460199588707993970705934095926952401994688791798008989437577003192046443028369236526483590366272753345775454638469447613237527515149729894703009165592256370074511527701399504805440473374772117975881716495972505391208878812749973310769796595863135977183973834513733836883770807249015281744951222500710501433036348702823656660185790144901940390189601830550688015304381601926538746909614274222799097654577024587564311458603962503400397103307521223951846177008141057812398329433718819887092250001424220670783453229065976285154506039148728043396133961536671847864424455209773898515387720084342208025115807133476246528390064412632245935473125820411597925995906841540315694378811576856240915281191320553723030332716080104853975932507882988223213102750404548544551634200786483149936209440893156691096727226369814592165143549969660280061538398686561630864922597683792339609152211204197938150211267781294800829543251820791436730336414204142022728920297741264303371074723394861192940497421264195733791221905873916685370632221636722766742059102832265210039094350198441475653129453863317943341711751031474581648703786030577969075870854355155985182674811485779676987263879938309230060349496255227889282191965604549396571900545924762315599048473456836055609270272125562328274685860420715649297900433912101417603241028984310226705962282971260071528454680421598293358059534678148292141855323371020197796932262599392355692049536740050670343686549492302035110974181099073221943317216981634864185868751234279120202763943846903865149223262864062869393075980124778033061217705123754276226443171572448091398749451245161900329258012919241022212021597887741061631905920681996417484344254758892606101905140654041211635730787855053586239167310285934137249557335267415152550663808463510818944624265120310316914506212505729417770435195290843062829369988635215634539123649679683745690142357351961904350981839425760876249816995420519444765675246066964391357189820863958538991432649411906554627053340151244541063871973789873943173051103692482458086890512125513109937175883100695410081372994959078212501194849604269391206523817008424972444808090857458461330286490485091456714981423669065923264307932013835249881719778213998402035359496192923189566352302110732062312664804537300955760735413575255822533836977425853381659274283299225365571112803957505158317028331538897198600628574792782346518805379170708198591661374171794029068451168782892747066238076989033546349089624124229955912706403479768922535996775381627414875240952896320768681484453036339197726792015916184932661353239588062704635737227094666375435727008979666143596807919287271622465503769572636211885656799173989736016829430750483946726010556401610695631489427752497833800372041257009298000632094049271116135745898717427222862737172895192704192572758662508059690477142595291509462388697152887394987644480053006589808190933287666331725256690939563006551680578902124745434975759552642406292142087355171478308843045016174431096471304871002402154224577456240750152026657779025119407333697228199535576104870328089252426669551601830097075875276773146769894492184550010620733519587569369291625017651397568536484211234031838828208495611219823413239328730436144579474994097367042510792932683964223204659573175072544070544757561623230717330169599291857325331285011592596855341620563815331200417068177411257136441969999619396998417823163431099737707503473313884353272281162224952257660052602696417808859188257693722475289849231544598941463049628183246423375450699455332034651852721708792629480002246829168203792907527375855756226594875469970744621800387778025261557932992418764092838218556019096291573534202973034103569507670131026868278166104074710894038452033529163435070432083419805450813450092340376898540198899423112371319903917022302261645108259509353217165755404640396083572609798640327129089086658428645457659255282091398585160392615068974211935745947224934933750593714137390258903353749041693208763919775112323260789708430566768003111609245597376812542785684908689157686997253425207276443485226965357894898211856763674674159921955258499172531890107052979699128832262463453565186566993357985381836324377818434251519873925907597387155671644544861808810821580408998678818172190823202653300278521665873056035619251931949542102770356396469340047789952086965813943822720799579258219697066173697117562027046435071607785270884214184803937851277546181670152195603930039224342842571819700000395124766042701791826128053769236926193464482500486354305737640753388283221692323267766761030747326182695279470666610338839456663116793714701367238295526113361634304622890195169975535228923514000653881156497970808170363664400548771772624759227398835233266510401590807817641119055819114570198781703773954389386050135263450497388531754368278604794904347036701865680185797168805039727652452778284982526551493359033001290292626486286588528712989501284493503332295076918704956632563642528838881622672980885034089426154009468615323529125378571787232326206699541530720185359361524098475525289686781182143545598096684524866241554110822998696385597214552091409784400761673931302589665383831057392350720221818773622476107086957412090640914700293667484579276479378715087068860541480128127628980510950335513078712247149472115006431639423774761365947024418926460196167135349747573225006881336686645839781374041689578959762788304753964896679136404502140858886605470028236960201482453806401292842700627498755851684350021514630875245732837543925689062471827379810745540279103882623394455499978749790409591146835208851219508628548444449197190250885843724442310687438099987065310099367881647099502742340583764999275476344301362803076456403498457140453923306280958708508943549618266902085169744380646132467274813921846978665366964956174232903713466825881742988301276377743065486552550323760665560451686266686083446757403353170993116529815337061577807497397707073342826316474578880402828981152012672347855377195491930735159433276571085314257312820641682851579393627050761970346328873865493587221692486514043135800044016433953854582383555955410842844533221057218708485111877074184013220558317609993514361603914501727237414029626847799263022812956956802723539072074101702064461534047706153046160055236187026975082788452793825035076549992524948783902977401506564117720485029264754091486809912894790581369220618186480809479378164042139831392659967249891918182004665358242046681073399825543039598004992584375452521171669532095334394269737890850259390979521645741588516698498457027410792931690233942263097070770422713664187434221530464163806535541854163207570105899711050867843784196559419041953109933615095392306827242229042177465374459748744508640461684226500731581778012399184345196454041416432491307972061372836147628041744605422512180579653206760399578602234835670553172178414819273693330844616368758881467283341927329476697115242840536485151797894984700401283036643846458084876944795109895916670824074212667644569359377252102734416382924894765297982294783968932824813998950537521185843674215478564308347830117390219855371772589064318920547254639496052785583002679965725296717813712517439967584120040689946021475145664537024409037140206491434720390553276891712556181919341020688268976250715470986433094162573426329958993075413238320009880021857236025480093312693525294460235767203597081721205708495174888711922791278270199651120044951098067245886330755824552748018228051719140169045653738605519091447889888280786613187554453732946717676369868194625444876550063046386776770221255262659730442508215097833808389435992882598556786727405811444580778735426623435470122247008958687954949022395059175522782815270657490729402289237273728396431523957294097604466220460219745922141178196112012510374427242113198386678347270013393728722504708809646498174425399026607236428713822428468722488315568865622350145590647651454454852294225591588498378039056081742276393831724322012437325042593394095046652444911211701570383931990294500383327123058221619692462415887436043852180140673111780224943668807131197414413876107351109507857977408932163021751851857251725202104654004432539824236764554303004775680282101807799765206320447780955683225311599402004270401269834172430668074252177653688869962822174043956796422697596264861223652984473740671968927757950770591717324023854898424536221659135160962523450251124391291755005736109765769212084593395738383565139539075872465617104378968436674456275810317860431314998134122796241032038145433226166397791223383160163526609140666532790241851538122013487774549663203649410317930774287546331921195378336268891160715166225983371200169319249279321332445748544048442456015778083549176304361382850440822142269767564138258353719312995096585429954084724539990382829852210259367867884398909310940989217472009972261397772111407916584737638747000581187455766859558162291997966212191412898501184007284012219730042763982356430790355564814489708408854400046186710178987706576838740850500278171422626165750825228439017691104279977986578053167140425575234766740548400452957469218368929169305600635117523488638071994812133140049901630547773859040251747336165575742371049918497249608920605034899074468692558352379560566772116554473696463684282788302972768830907922190210269312079791337836882062322794004032416619248958897143562971655107802765009970778966251807903086573029260778189482436652552019234770946726699249467533138457706121883979665779491354211116887552348192185703826537433635293330500506470125844744537865056402872049443550896569297731711006469366664623723571820579293532869955427184483632696405412496326407828789461158770824576422000959294823266265010182322968154407607812685958184890723585219546672559228233140492111841344640047619642616136410158029416962328983903184241678064571750838621816530324471467932497683682895389785848894084417328078621544022474113986088170431860158764435024892030450218203295081000272921786958125847523502978199320127500590673043959252432237426843772809700184255977161185486657285957534285331940257191760630143837679919286917641067393090127738562007605723790846037845326072877286738259126362171862648603506813298613226153539890320953684407896587607612961521021111115673645964695744166228229553821547097415641924471358714770980339235744631524960895786875259160094783980437029432441207213382105656916432393862317638016925092539859016483060653052475709552215048919105447123213941249185588794209486302510063107968724606414521968314049898059442990451295188207782577484750523097280423877757969797011293894719744899571867546172945081881725642043648956567468964473301494777420512075179590018076960838423833854840309994407384285829666962315419906369995707046490552694344232923611678402143249015928946578544553190623735315566342442358628668563691694193476062577890230301238557330708241498827964371330341134312823837896996405103723095079321343058533295718758120217094242497923834723264089419885724980857568642352288678311161032080840486829442026548807677074636981888313488456258530558819922143735587386863615431862271312508530920751213514270585826275412781423912805411664191295958513218366506628785441478677990964779919415390976659120038587214446661176780069176162930494348994799111774512649713565688732208132034371743237340452573035614593030587619138221738554244413363973850223692292634707029222502063210135668900806485779813060702691029222931161123888215296035006607623547650979645909530832461082055607259665875557697346110101338445453157355855684287805843933065166694505870224904552157292278620957619504854651150782090078709335047147005462028495940110688021021452140238251508771062173312439121405093550591395910648795369959131989949417285658300814254142551424271066328806792427605557221611390338900582850111486496639499389153387779223067292820117553368449657484615529322828838782337229505782427508380459154196352657638737304329331158903337194318656095200004072819935636819153045324077351673677895289167120465965616157764706668079677656346181983235047367158597327484282224184551215837515700572163223973039449205001921557550373426822921946320181632225390815082976280823517660773532043747537119903199480779436765910013179837665473988680626896430219361350859156329639064946818834590496290076945357465216972534819114656551119247978698089792094846632409558093579020243999698739428953458034846492388033294813937011210006864314560705005368868931350678932062945811962667127134616736774999016882760853572359952055706251845865554656644610140024778311762909575301562887486617587158311882456667921660238222179181586666991176743756037034280159043852124894988014212933244052789704480001749843478818163818369345449107169154415835441451191319932087237233657320678291150937899754439248882224952887817574197921082333006610120750867838151432869400985488792975774421305087095729739704948334725362006736567604689408490860728500501591397430116403734766492075650957848241729602886130064656049507480221762749758160880796819011842563939321267116818725368454138441966979378729963067153109798899216011113839213342454207198239529987420108730884604152755443152352930341369678624658291792185780940967882573063779363095197461557399502801156524126902179495773612765018134956958155927442206159647638094734097210270815040842959926546349075729197850109381546244849938128391673366524526205953079681435220149110904574403402481116452049936617604748267243596008161129451512663152415920274291484032429544664305415428055987440329423768435813372927527384148046372947232893458465835566020600885889904582854679099984163571676048795743208697792426318138448719672348709223479334936532311465378353918388498301230950305687971418760286283136845593437397591598924658061537031536558565836426611396614576666167554880541500728404705408052129456186986748746327006818963912375527173581962469705312967885499035836862112433152310070431667120053736656958163795578345190147311074249047799954102275693837977773386551465520895877354057028881140726064124989266073789927294342192671590355361689906876918777771218294898522666859224167984616213381555343855876573387248384039103633571641830253831273835935000138918842200367683851254653887319765448923803193424499661602737082995174827234337169467793983742183580546736259726947482233006377796399907843266714938730729290753643771194303781649370904884274514520276487825424916928279952491672144712972586494945546735622374110897917576165424525136950314230327572595842312968531910479031725340004989182729244507762554141747786076809875572241374364633747882664317150089434745945231430275044640613540080850994068459320650898457315055290231668524640213393962426077050465237226203357864467711065478531786880776854159938382630596215574288295379504960662723031971909086431021782654889305611443972878776292744244836931608608041764616408028687717036070222174991417731457625692886009721472960606259792283210840582072192399515560195039474817793169889959280569230385047492623147466421811977582395838349779771266101813599807809572013774765054643406794379718905128365519383739310230069336152547665824425313083619722865424544936996224942133569011443363618841845742574125122030970627950389007340290192723347330976098247552847178290367501303157818538834479376224229596980176059940930901812943167663177195987510626531534550629260005078304019887413033836202290199267409594378074975762051928520697764331586862897768543876273139950256791632071996781434621455189032883362398224353743207023105301754399610098118977923370213036182464290290470331853796145111167734739319632109323877037010581239698425021527085363411061783753507747103844459730479524964857947993528043073799741703712519830301529181553488681459268771957246507954527416559494132654525055450050001629917041001554839807735323095542332537350506504869170492579609531242897436434667943796296460372934147779151254830564841169182655658337783339311140640388968413170071768650177924783391168329567556117513557825091139840976498301691239156243307189586354262330537230443829020031461320935508096723354820444284436019061633050128178268979431690250454501390796756595905686363439072634020839639759611807094405653579201764748065741453004235307579316495029026467391760795237376942912899993605319727865845377053394013698213424649713530281247765795686211077061878239953424089396026969653032350427071636783902751162729509670115268474975559119046799666677441940521155649200486892399398961635179913266020995190662817050803327976567573162799811744525584071963274954202812152631489187634263359575405659746054203699056288249483587384681989254442422360005333384621927713751062385387615745334046622583152669619701482052575049609626831570698761132034748190693315787039674932520963652496591268350433218951468093746471247481758813729739917231775714861439400315524252882068286138162533846191174476560981122754297948552864793114850622663088082528493019844477350794912022400452395801460361889479282073239298040769992777620442180705084935521531430057875903387418388583142451208191856894583747044926833312473918713854002101068657549379385125245100940935902438378087683350462793517680159841492674622602332370269425368361031473156371869751311608441786164440979680765398984964933192547984416451032905177525684693072486506857290288694133967186210007018971335236955903503390689374675912245630008177495033826636170862129806503775340244686898651255387215163319457616508992531884244784554538542985949540624212972123496466712480693050573245100571490376352320811702039257255750818075202293939143154310798421578765919581293539641540903995459842098070494551668052271513715313792917922757035144361922042628571676146393936172157422782991751299051947063367262723526720518845311663818202699732184515114741653992849122330222223445284103207922956822932251718030814368429286720418708897394414865457046310193415663046028450326771216329203902657158487480827220322183425680474871118603930663574301575697527792527495780388917349938231871378833549860076988038975872983845799498870746884435384702083965295975253963938590640261202925455019652131512663841399982163953124422088063627158538242852235157923310738169370253356952079724583257647252247798690720903939303590883768247108595061873635208491170485198535451581750860663471306384811607654387489313226821661671366313195828614133578993986855788544136833299200201913201898426846603593579303411858451691486677459262023883951110880229457633417453396036038715594716413790167947185994423125010639500175107705046876864965629886911390805815508070769549279420032960736036227819575704963676538839680394703419954328256406670651097050456358496633800130719515788977152373384600842661436283875112275795294877643135545451792074949996739044520943609161801560431307634027817031423878259316240827807836510097671767479546578768941357999037934305500990176545521886350499658440603893470383713903922107228531044190215259271866597766977241599864653388548222403624587499166390736562208043071728641944868069706796373534143977562582856987397378211088715039044189566137345905531391804191317219641388073343547825178029888525178174687039215797418673144903902896703606784051177463207846130778789003773651080479723837636229486607759971325782625380204138562426385034690052333957681399993046757064840507951216457101467883096849430517445273664533425887845750780445369956013459462846618665168551142111419417480720882337493689113692251364133865485670815019457607873335784481334093131334284927533384249946208054177746581448324191592578347030438554250905279889665136391359889836053402974310927321182143450817462765430753625715254235680954887722156695081152392267866667076032386704908827950576103102597009875275172123738280092916222076675655153814749216665677931518056595857931349799784217197979605199976176768426205376967629803184096783217361514756336554293846476215197888233201222711598053559229901251657511023027985120465821524466726415238798095696793379997094498817317545480813461485767875294757198884392689972773869113397349812232292411197263726896733839190903176552904945224746386706273556073038497323794231377352181461785960518310405639847562093012829562377801959797447455410882136395984251537283247714802959877329326356436698212097991420141358510212139306582745886970175261879313567980731236788963017877076913645458186460578442447143603299832480151686023260428277467507300181316088233227054911133790856785248815263941772867406440453710063840791531728419905539203221117838169098948521873407262840309306647395025822972189519495337863003545308111187594594837149324690851804300255495392907656756749822275411781388942799371698896061547037275202183293288295981357439710341866127018564998747268773822679104118356184947840112781188968863225958155376628592433129058952806876918744573826909711027847922055890347226587351092377915095860516239914515649460048116258550780946337105177178557060586087359157421459716295035652933213210585764177824101907251585018150305563072265847095789716507749941373771384292994217177043224942907867533911241387263481563815004908094391379631695926767984130011712409811220443808214427811400131204207290283276465574187701474053005864411917804994319515302621927300264522711962178660425637910492997990873047337816948933867481043187404289291568675900665027727650929643653733987784660611461509262250482278365235864354307223193258251205558529372300172844800921156874957144506079441710090703468719745400487695378050886756806040222017355069590782214706019485444844139030325945917077359488893284498252021650581441219157231676098773307701782838004092284132773613600756673451871097253534934513363739860606487582027809019239165311215526364230669891614876346797004756355327732451151022758632304515702582454796291111538556957172633006804708676496561690277213201731368105700740907294831736668729275841105984494011128588320010232265554409806917605353579959368777102686894464547455273854485597309746754871987771199836796037895761375399037424288062324857853557199559392784783795074537709068724256203767351714977454482956783534097225623244753133417756799397052473054600693353271083636979481157633728443598471628964059709922109655338198750020628392435219899373875698821165609714647139863503510954007079469356432356572190455986778967479368279742974539449084407276770212755355493982627034390792332542297897543192107452900876020287617438417217685916728685050179959540615896886696080210751702443466419441066502544385609150202304734828756916010616485291377037110569446455091414818669869924582683784549484402679658308281352344983012878534621069348314217056803513957843015882972310754109745125751173154553054622961523167478888252508080644349309371632792875656974714433132544540828090779444462224999339748028103430044154320901213016630398793071733383271895074630881322078612199728697521493876821518960982197542114654733616932860331714048072497347847929064364387197725054501037896800217250543144631781535488710485708671520603904661818999008632673290884519627556266610403088406721273612300341667271543475840785285315654779249735986451253970174962607158812374891328514704309267915472120263398985468770368021051806913128640515082120147505053559394149439960700635598568945278935602667406992747267159174412488000084429923138222739578724622818743896603955118317707890902895904848134703362689571420224863688692194663330386638440219188641851237875097297777943979895259289552722851948169973988010016033722874503464553254048867557083048489068153633271007192099625230405062797512652589272389620277435128180687816157762593513128533984204126148920193969441939463229604513291629316154044031463369165591457167928083571863106534976225732743128136879784799115912762438643768496368889085235136214584709735539800134198446576201389757031138246012865621631197207854170781484165259381121620499841209224939600493421494386469284702972648924608040277411266451399383475925266490236686842515218841612877738809921956654688358455049135903206868867056759532617043778392695472708999356586145561486106216984775164540151184688223034353299154903611864475709318656122740799305788118675104757208233951958468234247225904588292801039176702684880107435887552899946071143820975956089511812127766835217671519493610827715756767986678636812582590579011965824157100455538221766342203712343403063010065993164682203031628240080251945930090458642976941443952339759730505149725983680448522439110395643649657149331879856153372067454318463399677276883692893974614281301252214970339982695034488227683784489782195354471977875824492740311287645014804588616531091530626692230105536547342436535777690188082905749186708329855167877525369273405305475162699047039800479430239451812110770253723548499713970783525796814053145505567620331152127404562111999854449263889502809075911050730253349399110511166159664049760433042135890188086259842052437816310082440494918308764121999430513383875079177791905882771654751034142004069517965406495722375892432152664956333360627607058164298022841306012349106254836091538786253407470135892832678498447869500435067940042696816903609441639301175448606593269318155324244948575412743744743227829055593992322537669412443115697170967281295682407941422101135085903289802048681763477063300162023922096788849874590093289385432360460944774837957531258631950614213903600337700099107244500087278870059646312890288562352211301758291639580049025443284270744839108632681340795244460534479174872954094577944160325222172244600919360158057403485199675776365291558481815109916554162491592744338808863174636094290051981441551311274572266956211009946076684393722171494412093189467544680959030077421844689976633572409401213532984858947191894008463249735036643927379443436496333784035518539753552000839660289012067240705568142056899668340987524957764108823732896664707113851205041442300860563970517546077075909247600257493663654109085189627806361012313135606873459635565904626886870028781919526476060153718523464066372303899399671372478635521625789878624099511823489244180388258034789916985648811474310081162931373624778015325451727593277516823523797789323814502715507295530623220278720614448352060586754137648494805733745521824511751294979926889549348507800451767827889530874480786246599155654707937338790993617125302239229239126571493305504125379078038105794128466539695463234053720953433743549029361280063794381688933591285588698134231314702520126590156282133055002079621755557995637357897788026411661583665507436646428601561526711588285918092314506683572631819455718265918019875967076756011851818737697501655239248787928128763542422392574702825947714536338868482978014120704140047450484769035321799385631429430724690268813788012821065030126199220220918370834416668857895424540244447069609735640446997736174765673610927941029568785607791651210487509056169651893585465321478841579386579835654615407582551753029482234682554654105560273479105598009893991807584385299651904219255263771920670170703165648585581039471122836797566716048798223182800822062628565607926201721678198487818195813429688583898543123007685074543349211381189635322047305385333338516689783559620510022736144867255011172614009563954996961976940589884845173673176956265198782731717426278511981296183277694152576408135451724380601179154931396945984654082612800093267137103602793969785155036099803104936356075860483822247043241723455801582886715198130525249444167634430358524152711620250789755954263633987534323503551905710937192298579730772404083973156236277644150115082385222096781765181953610693600288501462151361701592732748866284261886556316133872258805674256104925015902541791218642071231597888695493422126607376470859602456310613646417289650101693960929483020989794393554407463134124334780628731920917578331615719603875885391098583656168008343350397697746901217562635651632444956591307748387534592764817166118049044063519163610616199796935830525237834784424273135268313975341016559768017626478245575742391320220616730458492700770538773672391364451306784218592752825831909811622310210288543448581604713601469405106502465503942745459257557348966016442187622337977429929686046483113807109194090990705863797403094417432505359715894281138356809037647024051113464668713257384700860476138221797583218128165362922195215506059535392356144735469488175143931144683475374544273468464709043796156785539304294686684485255093230364574420796825653931933741006743993881903500271387003034517768684812651153993461857116406403951024721887924725554136458240744162034530362480748390980476375881770433663854329474312863009048014679446465264255573834374761419742799954452655274987079049223163545135668130039042916931730454804538472383353387155025973012729660968805229921875629238882655079415381438481186299393652579167142310231258159435596744117205441912963019920844921587089115289530585513086152097287176436735404919474371572872099883463494988855654181623017943695467283685992431181831744415373894254415834455310159292998636446295265465565429542579473658504048789287718883574267054822924803899018012422587938249493112431841587041175351934725717728554572495625399255893897122753900822795563962981461299121474805845776610588989291883301620947902003294993685274138520283063555073651799281360923766336798233154082701935845203886676260873693430503951611865462984574456057234825913935061839519137753009191580231176610637484522832178069622879351026373160031140593007540588154575629596480200112696755050032191424156908057619774433325820612065623138318553115928998112422288000061288474052165683299037526019234117727432098991482591210458238797526808954202422989206272020047655030449781792098975267268635439588449510057737727057585357980813087139017413927824517041303215088572591701755689477064577262224496631863124002793392646362758224668275878552853476667375788156803159751567943961652632403961059204464887307822624722573210515848232238769008892588039338435012843444341155018756797854145800142309889456028439075785992588014524863425506323321206678255276680633404584201790403746449626825274246260565415154009982391262510850677123469022291608577182852554553337877989865481011185234124349383558857035597217661148306615897185584223770100166158438143564714448198125785494080918155848260411686952671017724469055285269840231318242242808892395604552052417519400242451168878984966395469930940840214295628546889075370625709212676336257118674193859047320339110809005054207121001749754489365480517167980807709942230376739968896919210095492944427328971486877110446969988166935261034718111806251412834801323188835467709733125053164032307358817124813947012597821402769693466949186460060029439653107214036639786901729592772789096413253873706480664835817701474562944639796831890128371054248040059073094837215645194126221266816844201644476536839122682868691968925207311896762242263670305117476394925247797234895110212186498911436207656640416589776105488373561163789825743257139770211204234277632849887173614308213953398713099477646428809177299188169182071848491336048436066215120704231394382355302360212443382027966248572182552734311080617738678003115269499799205871162575574287201516603389038645697043007418315056913102529177670236921076964466315101400013879310915874399931174366087015561807018930141889696818022697913012760227650422266778430115389680851981939706891845449930890769625533291366369643780406867572860226085995021478000907270017320677915679982330378545098124004796051004297828527463669787327698666736648915212295402690162038534033875893791241708987105417769365383116934683519479418437016967313209469829718321488491988815905675276537371501459305336146229490843240387053363376301810030500546399829813381665586314676403666618912662590706297390935400108680595450233716010815111725116025610442101864465381185340808781705646027944142733058383377377225592045945541660032203308488952907140465582637681425313129848247102060476812652421148410596114111529437332825156682046073886542305062420405889352418725527666344817972519084070829822766990385381061540083564397387799369010491187333384282022104891190363777732727948423436990620254339195471997152751576698248359720161298406818526344054921422901610974635536771992368102708787884034623578206964174991097802019444885159765063137509541906862219732001796370201910857895302035365122796747837519513191109652456951398550401142190841674786707758606710156335798472539738603818988531482875909006514303777362841742071790225420651300422836456502903433936808519972870366651752316383393710238384322385687388642780686578144684595381509582561690971037739629970366787225130092941104718596703560407031637855992244875482599474583042755204271287273335361610072447152684856347721500080727971575091333236550421102518315161830374553069118659644752682819699872992173979990018393180943923115477353553040735540783705711632933401117357177443781536665737860524941027068180327912643659062634413067458266231498919895088866475743858899597845451651417559693215725655402159594569334426910850695832619912667918026269342034777209362596454429309899707109884520336437650910562676577127986587519207178209734653317198997998540201455737909678123902827132434966769519659124670507414117183501973276801823226211924871800253804099214062007620243716974582025806852499472441173326454532089902091124485884477274078191298183546889663261631664638246647110707556918917053061595084045959334513630014631254133759786249804039600347202458564385357535241055633491788004209286035701623062187613268005434009914658244745717859635251725730314698483619479728876873159011792836929507469374005011226671993587680351224072724211097116898158207456933668197901986013617556918608430008818133489679561297832025007743484067747310894402743241291165649758253744426238329132683847887732287801708082492524342706409303714836986825805829002101094361427158174118471999500675999683893776195119098825998074130034310543074501213403262058395993141166364200225988267901791408590078083941386300158227492487771802074475262892971109116127427646155052017375920811579406812541642277900961859512626180005159991053837692598147809512977179170689325005084940438256983252591660659609538358834495003232896984450066801652250039401907445159600848237287357910352707345256333311550280585256428363784761799830744358889788884975476460984792710211872904846427308667391577514225841755690089173597230416974785278456656601567310001349391177108245671058536508035414673990427287411384158335972781949294387189103810985815486274509263019823931323523900827733590290931934539219865179698768184660682985482458126204553983078774107117760595111873246084504202251005081187191484432618264069060845085927185537699587784111263175520518341717185929833292046266451273505920109400587193465760109146434233918370291661736507797691670371906993521449326402968377791081141574739443369664675447657030056745146868793433443651304641679766055390133952968218003593544109206533916819724372596508522071277078397773908035487552680277714392081443208808289746884770242319386791556392758821932509518943675967073710000216275638553983703559505981848972205653295005761010602730976469242477975359421925121592327931403542348614927272326570659214616519120524687758701079102925315837629410995128351225445497969457306036130244495721219457307177160867954484139294389361184072551877444913429498861062470191161262923641134495632278230559039511251151033024878327474064392952645023954570654827387365468725434678919729609627801288056963233809740369899851162881188642698347859123032427413062414409275369728619401407344544913882988156420363696366133255846329510188862158548801630129655280269926276225365960054582181105627044228457705831966719605735261121486384382607697765478990271696106139999114942857462766901775001745858545965124153310475680053127595843734213888010740909073550844107909420436634219009181308702373396524809492963979672908200119678835738815055558858910447211012330047444843403866033456553674177582157884235810501479470296111804365430808731412545381115208136575059725402356065540752061919231203987446533444466630350806514256159365036111187372357641141902785261933719208726894116647882290132243930526547318802881869611244939502458000114993781321834866312417535237111860173372960280202358998031243239517475456740370504273000463843219694584571453259062373762472202549390478793961857159189665103523083802361182646089915252784499817177614677445945537853859975182462551113096098522573199668828303803673236078903394407230041693110256255309615358118694752379536258003113269605501186626839878476760629531419626396249167346074123290671059124935025733004869837803025599889688174038773112756925741993480127309720839639496403914735546349161661954285830507963128096145970760871470759329435077700385654395286087300105661339088645870497072210635186198823390803964668107710728489596037277014086416164301945949648568126509192840937578015255925546121365962237509358749917537245173939191985110519545349650135627696589772214594811334414685737672209082856674263547258073910479368738930867922719583021301519660005189212046635408429349183580388715986143851593412616376225752025089536084128892208253574777231071843517723474134528915623908335563279649832442548789692374634203966483766739573721396822886708048981694915934210628619643220524191143981080053972907338898363776285087499612814656865993778370918633211906216767575274950652051073048262730625655639415600013817730599401012865369094478993701505219004227208389480115855436329547380154266452834629342840055214450798506927506822957708222985807053482563812419311280666905611554453916864846551714210548636260332503922148908847750325218801774171604446649053497965508238661203109243403366121724754996658497372553698712360922800320165971145799101549622369776152302931032949173829780058987097753261695587360172231101236029727072304324279756986060536607519378432644713671175752644410859285877054592482841535458637668046426603872799487151219206905571765649603437435164218400389163159718702690813460480809098277805855839722576006862244210255712027214943496632148179893889472019548910674478229362468947731771732720381710703819640716389837166369353171647204199125561831810472435219385527805495998769779803348006275074153220046154737008569526363245463695060242810083764516757851886280543164184852160766947819842007235553520254333258698374700503737947075002088010007146055468773391858863480073805833105410905693326965687271089950697076510680398957714185552522334601207497021866425116989354072145030564184587507938665925164308781417207590168518991005659051080230501326653546046840838303905386263355601347710779203876550612228031213380461963017899117095330089518786327069882864308117416494243887696439987790284748199298644317529803948799927744634993999427901193083983712594385658776538636969984075157117931650409810065543736740306367664270779208610288574251813279195029109420582816129356558148719251027987024374968089945841111114885339177715458809368803255949701441698406234233903345488544958914839731141617580454213274653802585735705421318616603563527160065622864363103875149082038255208519743018529128451932697090321080459273094802335457634265680770290487916435729007944370786119576253315369040062257792700383299656644995055189463541978931949229541820487070139516261168829812714824456333363342687815716301248792791035411462005675368771324003965067512800520375338038719455065309746688370326952654811500528553690562378525987471341450717580309756471675387725319750650007471119526118597546838390872591433139139784113515871647763601016096297935754685158250043447139052007878432310591556234816860595816170607743674910009742370750571461608271022707818676246712094811161849503569593577824293859995979274753931177047638077991729462656946498308311029826545934028632488832873212608510282697676287100472370220560767160921683926161159464861338865435266602089252106012959113970406009740884079518498012413733005248583483946778145577630094180532963745226333139006028535732535600699815509318788166808135459624851769356283691845135927380163453001038575394090518816664183614848085569366957175336749703202240272803635163699421334855869069954238076644564066866018222923758710413602953830126737721459120800328525524820530360614317857487284104291290424735059957106435808851624210801938261989957168766876347989820526444690837700815625812427912142283116948326121728714239361346466240526933335353606212388453250155128555820771218148915292450775337249653831208363684238186703800424160352689694448916253513099537764030391904746869855658457873154668558688791022836754508293624799364045091485052881944006365002374041157399479898652566078272845339511315511092903063864871378905480925134856539985168890197464742672277503388847063565166677556986033277983857832553354853456545178329517790249281291388352683006001100588730188524603926198411001212999527758763359966306197613781856087978301056707404892266691612629126739973128420720829549507476141691025813989913216696148524071964187423795040892884247952753985857681840027693640670582026439804649412461577933223960724738033802570630350282879945573070465050276069599494673677258874532476070757725049129182877409983254454655225462166299356368755450789099392719764026948831530256060467055388520957772529219293523210158826923098908200014331112428125979411139172204626616334755526559917954406145424578090859137580679391329891543055307607225173895191634909865430079737885754225156819771792003645939223232741835923473688375246827927822415851815391856658504905354422065365678077438048211434273429601725032408811670246968695281762326072712104860309567157188815635273117191609629196334293341245752772198290182672808503893605462356709819891877648320982764837820070343593865431837913113200127579419314450853626604588959712439175765073660651072033101595137740439145381506013223469744306492465649695913365208125850473341942231439671846872344132842461098278280696716261748213044538885481209499560909259746122606399310326137967443681790415818331269834411373429002529431640636081833904836108050152685910127948783549371908543625791296090592491022715920864375457504782362856844456345267295482944826830531029658690853271384834827128006828196573038095955802287335733663580696704756233413888962005955054517654214873462451752761385996675074780781554646426064353708025344496599400815788511686023937142250565904554494210718744872059882486690879762202370280245460186353334514647148693480550612656704243144797210475088144115335603033227339588773739542466418973064608597869941791967983778910625191810275506290533515276168227764225451383501812997281038541509378142111596168710563969601654251344456951943619592498088229828828201820641847069504840666526238495072825581752684063855826222693748658073622307612721541694103714378625884648928379690828610390316897349891333124570981626085083020825927515773000992584338418482478749763004808730785921662951975145052954081620215840970744787484428915632195777317764721694737673407296032745390574133704301154113462750544885969328448190583073300650409430710535343615520583042813648462359094593570149765960995498710387916819321447928441708912875093166511587677158500384541342208195113171409058934600192601880551001931573714280254225438291709821340720504645791360406946765497239540495056639293128847622902395761512314867209559678006284040982674309306380847617855753166206158358189562334244419585378167884953103927153984455048661799133533431358889931882469020360161388841218291988687069615789313842084406684220408878622962056219417411427923279656181759618429172982815195685437997502334775928161365272792537457394117344628668518871876546159020636549044055365101583102083242830098120276944511664649100317347229168569149413126323760228616683984757530185443705063238062415287944317407007457154071496938123563958715995248563721804184749050629576620180926909925866914237370063910992718494742008206748065559882759200426949349603120957105722593260099361120340141081386523755460173849931762012018680018499248943437924408000661065179786561765965652552196201331670894109738783528442079703354624691672906586700056685911886988826085275030997546096635102137305761714965998822259162660227071308385176032230022602883174897569115474187193532340786539617179670587719983559707110240189320912945687885625446479976210040750938927541185340262897815204830956391904753325788615296456369888559566054013208203849382329876766371981408400261410371429267103339650230637542361253310053406113798490997989859402139036567161922445446478688770263757166294616947517945806260770083003007421967493599383252521801647099163194130599549408309339039536077047773316996448341149997881080266990461256729902475553359848157767295817977334439191506854207034636653498561824998970898683928152849737293540425651912111630998224719757026971396427625885753086439086359865003424440796527068472874311195922585119376749276320437818926762776517328385516391768173006711682645824680041596046333681058462394749371083728526126650718062291671340843465864602230943501104293853672889833642180003929113595802917112716473758506367808047740479179867849897689439669875264626375052344401313303405530608533800495692630400719486259605167109922534973784518947858990904539669608401148960514177553281841220307639977065782343593176138504339374175999423003462532038957800999959133911503038598631010732158516403874202684546668170848921490746146757068165619644164064665592710346466310162149062578338126187505647736443366733952589140488282695261296310113383003490860454881504267774320873163347118182151721116886824973203014634076083289550509002220700055627815976696477944617633841091604979796987050849578931255607173087847237051849215711263737137621319201242577999940253531384494386443518101060810517388672152371274606516078004800267071352456035853436674521120803986298113217941051357154203138014817134048991717397202236552001362969942782963811369349005022354625595581339565970607053544934933540741817738087734147278433668994288191757478391750716627704559875282882196500156687751975545791254406798331256719766056133733433096031791927112565122180023851686908126774281368394047244106125293600798293273897741167763462670443621838325065054654446836491090855312685502081743987949518583708058267792224794530164803594735597132443447862650757753880430760044662206551900343032861850079248742192866775684848869928229287478915633079636238872709736625739661029722267409434227239494103827357642167336933117825896250812842980214347852328297618636376657971368859952631742163090679608905863276554412163047306040278965495410808425378745633546821670011701253879524823701380193331011127816341461764879045794059693794123087161507610815058391193608251373697500508906517404531139542632993924808959406929362825910191835576200723652316020434394895987702229398907775999972998036816403904487258380217484753454319272018175011741239052408140030900601716558243435621917585154694428292537814150721308231653799405904555804462688457902763699652423383068961019123324881345835871844235750462490371263666921191485983660767346438008581015883535306809390687369508979385958838923612727320223975339709447709566370330598684930573356398354681651533184216369995295406391084180698040436663584491354566220235410429652202593949847811672407420282175688003664164109050622851785599345317046257956613291044265785306695907889574398168421101405533790801632348720976548653295949730728575630379992510006141893824023085795095970267564823942195105829358433171531168911489967980501575336314785637786947407445168158390481131638210762187986346369867357114015026991093795561970728120799611980250373820788176672549365087726081106030403026698586421724171493563589207208748289106706696858241457292866839354641453486192250333326319696395503681942208037648683461956804081272676385765350747324185194634851051581335073502284874603904307253961571172824879980566324502935393019865486126420515082857046060164258252926394986755244963085610257664615745670200657296030605222389589264653524742858317959256256083319068922109368875331588622858049142072294109822848967321466232321108853372186732958214519504021433307842241575788879574851611615403368832954825314550910420608297024680025051147263443949089983840924291769721249811934201059640553918903827644096378366360028741198565579659273211981541268229500212369759337378918586896230032003343635905261150071198472036715303109290726812078932143070511420469233230029264739839471752341954045518252682008933535083780606365489955993529794179329556338657585791105770196687522147754638359001439134967095950629237043815031808289554269400669003787795721381795810255928301726832630492183911420809800890759785441101989215790187256319039659992045692588990127246238973932852998753891969037424909603898991224813830236321895473979960997288085664397607740968411635758675062666730347656804997994494042228620856658163357631234790273364955801194225339051795308201754939140801565377442814078078192706535296066128429256976991197640104514625921970651566434960211706253224359981700593472111695131097903565707483193967426581337285553169308682164607572501295771894615527038725410978567383500246714885702033605931774969626739285697605937546092835117083908524587371146448064995469531450957561757127301402806667960808092428502988199075511230591724632684988350553560736550241813940001598109117618898565522192592498445493725080212046464128791337106844845692789781097005181887051847830593622655642859364653629180759782176355331610467795639276062794132736544064966861704291366861359388086254520846121684636837500913329139078001662788912047982075918595324243666857792364964646827307771695964231232113176105426446427828582478781447787094246048859416471328681167675430282922119274674046463635093891754468153090611874497059857594476824927925607024826675623695820056364453191481253419642529737217156624049113703232985803460576906934417709581197705723992993219293031113374598272740079812088659856080114785550193219541739066119083484862148045919957883655422002755052122398263296221717515450753858914014837079014637296860913685616382675229822754417975195328541213130916888415374457924464027166283507024260768427562555783056238692547103742010242036028976030276400288657641938322216225487825033447709901831593906578974315952612272981656981777408263505373224473866736291897910980693002077934476461076195296286919994462029553980758750337775340779031031313818948840068883908376554590083090185757329311733555071848102546179907499582640172876743296441012961086974134683268226480602054733254049919312706235436426579029274390108576663648728334026453385006486249086646163602118495246548946228072350581341261810120117837424545900804876584921836219697315666770873474655055841044776321161825114617577353478032665404884279643447653863209687690988607158547053869774638768250324639731176041286748390302598277827775791963453482837183292363509124672263672836536066379117835019070931148400842408069291229029068155850106426388064423003145240558948040842536100318046498610258340577802471147658869437966798221730920103463655944414372628903807944898647227457607505861818454606544088312910088221347887423169419053996480498020621505466777406572165990729447804089355984812368891766771255581694789779865092549322822631768102283457629775767909786669843151689344650959482669422079715261751958334639220151261486250872343135730054569815760070266075946475192538480656433454031229636619456400677389445340890184272578462265802670213238959552449893190218691332835151001586322923185023123073214100658978571092627756594798976995371460248356341853808161571629801554807753701279849417792656887068123277055401612186816097546844037646455222126110601849129547045722715388064604247416377206965859806245828699229409092013666233272568117884642466101945909974072797428095127497792050972864251717644923253776054697211984799004370675420274060078712903231955862917432018975709248885914137038149146302268975990601572297874129487398071485730474563626108980104173841767819822881536926801243419661776562520880680112247850126638233798205068008211191307989786939611420401191931093127486600369586853459653595131560421545079027824918917452486156854104979442796495560598642664410592856382147529955165603064360020312794942326322445348106615944820070984618498379024698969712132659446762076929200150921544589251403652013995721700806223235296704309830310922748063657330319621153805598197948643179812490863646974854893700902675637548671654537618807425507240232654871062132789001071903552433397546460348220382053464345125984995070179297924025531297256134182173244115415916035324470394089766954279384039132415535436940904025911028726173102313665247625856206204332351161104901746800631643899677005509915181616299421137357623548312839463717938212378241284108687486595706455741633286900334195024943668376231558873216290341030100062739951136089609156897693291857299737599584914197883860378867932102065677456405451181240764945112746756807792964977483441595172282755887230835043582608913243019461545779777003933540388433432480174845111414247818407750670254230231776489297014884292869705080491803397159629333685057405601221111078522280650249386993101907715191026934180553413286973034743490087278855692822880310823205536352557952219114015091657851932675805494846214989960964346624226298044591794988010295939480912471416002189884022606089576697286050936756572464879267054010073075685109936429662788884957436675648269227711662203019979758199428580591583860584317374884392342735100177142353548307928408874381097288657475854589170097694864973954892663002008326157148997429442184035812087724112284618689234571434714442516472421500955567964904873234946237951007053702103860361316546191316559435840912103255707831236921311177942826588075980916024611025722106861239219217582832923266307390502933668378377671674872396348728349312394627625913324237382867986755586886823104648854482734752358220057499220119707586848218865760646744245578120544338786267026584139417484528016279075598016503156337343469828130908388271004246242437106916596882857449737520610097135173003484612255869692696123663845276408482527583496795695686021364337461721663917762738507566956905129898780976843308653425398125031198359977924015437639235132365088101039161220477822745543871532447806728254773728970594554904235101176636999800909477807131556348260647354964355283125764948945996132220029008757940901812052621329100151031064924954432915114450259740441622449986757761743588070673665973648083694679638917768654538976516860555189922441820531786895080004960558298553122362385129810144947877121465675855171340651410573751860573234165941905685494019334168883621777953501612023824621493832464222091643259775752539267985490971980741573941936182177138896683368882410711151497879725205030036165535644763991098019853146923244765153757451203947761965681517419718312044260942193326821290147401634326423577197709446082106724056222362729945030592206335913365478138204095934972626160681119978840506068600038947190262671499390568491841170089115451447116655387746920832995000281349315162116712085846250892772350178819927057343168033546817455185476944131273162149365887906708226896570348490487504691765022518812251591066989954234451910186605675629345782616740323487700323367253942132660971787817663867095823784842511460632944151775840696414720243385812621762966407688496950580639833832215716178979363773260093869808493436235468067619933787628203258809584464605246889733875026948621168740473143517261089762216067957519745975799125011056729599209653062960161847116696763425841287962907385888387351691178699447368010160292249356256935381527849521314052209321914641526520437581125919571008953087648549900959880130008395182311100210301927789744210688177354672960905630961399508636533506283072003413689084538819667930674409308832933534069048090475090040781906799332079971922242870036229231386381208015543200545590200406644550936417527850194197062491794871745185854937141553423414807692676036862663444032203614019274807546400336020660144189719510250670739570539473082278092830025990822681042091299597576458168897394454573689135162241001106946537523923137269651882070080856759498944171819940596350470633078864751680833798302951698097785602975978981319196911143254741742831096220376457791599725663337399706135286934139301788478049098544111021486015157419558527208208656982475348944241116496580450327387680782856000600074197054842836120103686778954430135005253471022164129609388183587755125672408525825639117130773766849026679663308347694163044615826518591482455154355808661561203630704229884165264955820417885083818946329581562201581606147006820807566017579377074655208339622821147317902298273017113513820431309608436231509251043822090657838113637824036356441753394171777577762542212626764981249863276914895636854505298001939856729884324398134371318092071414165936644100653519966112759353900625870704637120623879765837797862066324945832285287709134622475009028938125984041378788208221586592300039657906240142124514894967096977597742892913657207062604893836744848023111485691686526210371900912165378463757909823875505109551202104445197675759604011103943307235400284626384797298730546565621975341857717840585976987733296791575230014248143680180561970448157795646439967535511993372180215530786328379630472899454209869136232173327723327081990836843124047510758737547860605771336836891500556534854383291997531136394369017867953854329339431050025475485539101765478568259620159383205619580679714910817746380296186020173436355627753637711453406432466687678485990587618892322025263966563428152007223154279872703033647983723538763956571197698783554184970706855055621087586015771068035630660659675180670022443951361027454507367429089524331749447503205797151468042593171067546014474921869018702837968937321525161010777031435876322739679679467194554645030522566211231209085701830062436862658953287567580672643775047185001950630427724997397223753618936890783991061375910752694421615245376150384315129675382977455195048433768373833368099866585988568697941093655710110742141435764245861447206244471831460257176515848842752695368709697364895899538034551699975887264892596170521589660562382871494839826285146297720526651779664980673213065107044765003907708996946102068922231940261725960009529408506252780849409015627302456354379636767981317698738712775792576634831476640205878521769231164022625523778943430983058755448799440520783157848659374551834028684378608218900954962884972304570191947711866605416941948700151348290809768205813693762921104230037644910861884904857108108736642596705023079086144868094951596100214846447491957527176905493820640607822821947192535708366449526542021706841310626659267184663955544323969702990086786748058079860529628981277602982391992033788095281168588370982945062422016349846336445368718430183085646537066314358908048720840674539762410043351542147825981487291524597728940356185904460089372531131604041429525591816219990093251273602672886979828689252001713932728829385580240875062904410988541793478893474229767083350405413820482645450875305283243900080814798184777604661293046309538755684131124084511593337529018234183664172847629105703693102967390542883723244176785723441380755949629264143005900202701902574233063252943761188341107076958719043017568183296956936539625787545012169207360362937943134943891198511949147436620753869612089045577438433748665559138215179812681028619744060814903742128321075819865528149824245320511805983888306286974617012138247007487464418952384122119718948587676919710938375316094444055935368043863367387586870738809483636580211541756826639828653126988474739577522730357764401716811592361699817092313756423201189894458032672915992978413676572615537526716548426969589011851771949791651898412125172136944481710495120829575399196449473074387229628876632096670522352100005160475401159124417920894766403763872320013365424188529367947044527094641445498590442410755468039829584559420471790851041472614820146125946346899264948656796754904736260277960565194640033388446858539775774153391988797551501546340297011248044007192987065199971955516535569143529540398852690949762626903430224962364150663394330188631892055695745505346792473921117326114753471235277643487462064301935785822812728862656954046564105550821822957581623894629902834985985637069401219074243138670993141708078516774955758469873991261310972384874967049994961619902812578312450672739814592101548823373887358032045575096951270801907530235925607788907914435182206818543634416241448898662042873605439391706870760116324102440448094826786147800528231752307707786447625395818976356594740505859704505537876483774273818471912704664627892752988157653849354822942729522053024961250952885455267678653294081445823080965351997073801990427678668400624849050042092876775978417064796699378740492969476067617473285275331100898793769409026305944154683461378788383138082709052954870343775311492882787723012381012290542405698190507877301276280001890783643690814742504273165237074415369038525910819058544881671924843094552824149257382766863804099890044735953287690213572950885604119751294911254260587265412880426664581853094088243986209472048506110469795746387939674476968436309514693926465158146803339488973937432006667914069706619812637837492428835339021407233181946891292728608446756689666880302350731153110378829271442459548345100448987975686289593965842405063022523306209545610539019668490971993473717141745055702138052716354966266820530021014297840235505723896457123563126197121745783561683545088647468484522560181770899190205821304907516860506047471269509743507563175182929341256603740124146572682174942072693556505180679239430745978294348913056890386381382889808361745207312605608998399907412894229927541577931700146151682117433841480303298179443904445284250502672509898536723231238578539726582683949389744558904085135915362844114529539610218255403310575871658811554390196214275838033381410369316961783363096229808441479632336280707724732849698429454874817849244804307654389772738289188239579592397809265400391668601617207136039712699248442945213378957501030666172301407192803403376844820396787152457401538956937063538593306387022983023947449620858598337336736853395163597371099354284335175330302093572730132843939983734558376791201643206183164365352298545800643422385789886799255205407140087306869367729139497200500153865306799210522618671725885983241884885720244796871899237765642570947115226238089184074000430416326857558674092255593646065416400895084256400567575886386253791332177465397033316192861122791460273821304845899928733360227217355733478904581918342683068749572904083942793806494804001385414591026917901184295349675280436687936524903359530711269920008846945537659657440955533522203424357506446392526805143276834951730540893544386928896251520962785630157978318016035622678581010197820095506478617080944790956273791532001768887936454148426733782547497486486855784139726556405188127478187213073506456767621620495274522642659979351831125973887440840092666941498791413740529563596152923841882079578224827641430424532507494366828942966568344718643724984769655152196616288878689183062186738611706639171298723343640596355004029245962728738421100278868463696116965996585374620419201691836626218078905929028156202853871023103476669485487481568951602342488235097241877736666891812090520969471134027192161190697489992502473778842318297631609183420096764237711847000276940836027911703007984734858415461110496263218301781864091680142037816792122715458857123606320575793494465951376112513040613431986218995689858622845120857413188300103193795244883969650557760166883646483672487220675683626920790371275044583059243282959649410912704669379206058864868337994229649687078635150599956558109447679829068624529001657834513563400368294029000647346083256821862371946377224881029562436122527511884238231888410621396854494662909608503296046564576588706875156163195700215814548155269290473713312318804669803309049434736371495484433158990838623357579782192694863969956729290821333984950457420403321394577049736752495936991376551789651149926109055070818149295379557345440296798107044178664996624916992010290772269780451306664376690893596294849755897037847749053545898986178953623456525379232940977990683193999765246522016630784845369817588393424949982782597612969902067675398450872920789267171090585672161727868532894239936508546934107017169390455192316195866371334257648519810804130687024164883680591642451587033207716645887846265567365102006241557479949498975284763763811339632411679349707413991219469590862322137404117305621929903234150368690270584027787147952350245674649367663518045817478531712236732073793300548663790818812261129181834391858905690699537428608656518624562781983460405228279727438274699073925136401904012178596795252486919851624971965615614667094779689180609189997645838947952369524896196939331557149181376862331453693780605754611991654181039790151096265312253853130863050722553203971203378377708961627907009610755027836663062168386553296965367778765857006200320040313493786196959445442439416619506258970005511571263937592569405815062659845966722784201641413069108977845034258684197133994061301469370396791434714339995096025455039619343274892976643230931327989746275714970475326432396150817886294200191758441144654760469404595235828531332112944801729515853684889698138980721097728653261447862577646533861710579419474027867360610424841761340165174784939015659329526423004153397898448958493294412402075256175990536830423256198248720036650140712623356764003240208727173292547081282697561810350754449860395693146198295441835429115555870602092609606835908215279146308962340360102852984810680269910698283782057620879179697260199905411671602966613934738913461339743276544393015838938093669937980051513260604075877671133757079117441364750211359568481895023017327947637738823257616101889501666446581497405223074132721759290858213097652571508024736832432264234617427912568063916574484479094649231779115940299513730336315871033345319105379148707092945563847399252052494456053870144733324894834954328652902352830060137700191722609981949533766361680289863082253464770398956629293724929142920176765140787830826826532111424066618350519479400303187341797189494315614852465191685675491339137219434714420888453062774277240903017370484163789069264500352079855575634457534488163229852694376467901865912718291181845592953614863193194578262332233943198920200922356353077434697404674375986307864320153665214059476362519502273133482431600312980166989839742415028553074095513745007577210071046404691626729500530923914315667012922608250816823274048670756812450821720142665564333302038230003746283225145530494495273883625164208207921628790743217155812367711239051856870800651274283048108772105101312870698902336792106164467866121312493787915249031390815275821399115541191741527616898745991542876885441631194803610512812885881994723593368850330855103787960179620387823485054578912184702663929189163192980493290950613537965232207530646205413657577153905877435732734616012527760647763167877840923431540523697750275114490399691094046309511223608691390665787773195619502113973250448755786781005426185779686253265055269944952232520532046412115866448900124225559538365015906150791394155171704408745352116106008460841983046823266516221573496403627073599490950876320921467872903182752708685033759779338548188603044941128786065853798916141317722866489913007942551911927241433164518141848320502715935470005451643703306463183101866919668141200324693351394961605656062995126867877218843523426498292854298304977992499901401622137028380700391133523157256109398925015539947187636516530662536564629044161899338360015629401378028565603436130445755201547748512952884712363337863835599590437099268362183658196506647602212174451319185670714209994094063007378952027737576030621522880705090499782715098559735303482900373477008528855521105846179044009041919469384692928579268805698616591022009704498497856680126558643908872356271129238877059410071174768809889649689107776836381068341700985935657884657595790715706006754148890785995377735165219506187684813423236185868301697401647390292322097254007693760318346897112604637779867831110334538612676179157590714138798406284524297821170652599682029704182583232351349200260950274827978916216223852612551206142675536997632034707335184999436930245457097269267393046897026575697322367919827487247702027163283717167102291111609243200689302219478917595971789564657730373458105328065642418472285320322144127227618165509171223998584414072364744924730248614297952956845153504221421515095862335338568193544544918417725264358312069042229838021474229980970884922263144553911433743418912632083238212149327240621048640257772334159912230951911346067214205083313999120730530532395024696642782154099397444276073010191725994965568023210078345903114334670528320358307837399216944589858804353969757284550728538574264289699938993730242769387419842194523546715048719804750798290576935678010986887766052483691871703166612903521570241291852464334034559834609104783706354470138085306919999715225159384081636637316047900607376277046714411856719922787746505240396484915773559273442150423043217575690965411176306271227278925621425691453343805676164009708308764690626716483398212694592866551241393547081569086750857333815921958416821655576328076280192677000760953374355417198199800617948540794857910666879471893759514359117775579216397107071366381292125979296085152212644498246398008796874255987701796296159447847849397655112555705722607348245645382274615283790693270614538662429496010553966204362711411883993745160577994482875472719467892806577618887783888685083414373159389844884693780734260095521711546833749273848952739974203081367920005402422386283655459031411277072644875641802924993258718514591149067445618403735031802842211898854463563744239114324685292525027005044562603915306112095266020865655649058564876603428524452131010950559871697221197842146539174651166000785217967633774337898566555344956805185092782613391662753171161750338065490545333531298223308982229159144107968619736642570241767899828849055492942116846250153190239067802877841807245929104082713896553314562430550940978245450590753884794469841011294850285862240700868169280905486039591373378103402195472183399334686352753964632426080537645710503107058753619361910757623870812303959278363968356877973675038117103530951315503238932450845788200311487686055501155173075381287251409092254886259016333218232063423823923725092733814887724968883485923391340401682351340690174746859607999530380807682189194604404560606834753724303030079703128911262302308234316715556635801827718654976624665439284520020824169943828872566370247790084800896405751200897600196083282736465976391445743617307820197723621858759337504347169402708125529421252340666742611473375604500062886863233688381544448668937340870048033762661232428973248640445220279568356473655303252368692902106419324231496804953141535838186151066948132632516401217358111853088981310963872151627233647302499780791156964915752008819668756962046341883629169919477022848817478716176585181555989395517328916711774513247257426994773181226055925091124774182520183664629510119972352925625409763720634913400373686538874547111799136133365028198603156913399684184157004597771795309058500439206609181308449858758120364841796678109402375690960460098406061411639302055084268248429170089235800611894958524830107786609167610990050428309987212909129278001208588500875345484028193265420940027619758424664101940566146652411965772662908784604050688112268736720514911791123110984582953037344891078511688312761515478550999362889053566041286368986801885534944685370578522335949381804951915408278743628076273554490418687673307701719629014227137894665635863130659919094748197626906964875363964373259553791726777348315666338290784988240162474084466753308688738648110560133651783865513933939185361282613363027639728137060641002970514200082682090621381330087545686498529888329446505878541032436612106423356831628924810119514813735653151039812185662463993816053684072741753351754977868850261943624410109326650328760538979013533393924252364367252893376345430945483077852844405812786996071798714189862423921572810751963394457513640875142030604054263985413510168061665216644361434040827265483062785500945234748843939220495578427594264422902764615892662644807150726493923020277814552971180616524392979069294018083305807051453871949758284024884735385020688003041145606877139738050731324629851829076330367608918067824911303576261816071690035757508065837022359815966398197669392412201596630837506860661083336155582595992929795449235498315236489948495120978206730668557306077425992504034166953545851174665398360344308924242122280303209581354818620049200887347107471369348666379426469847619262016457822613078059742528958229991078992704913083654333013625956557957519427821603122638487432293300823588549942886733823244385028547481643617136640391346490471162613039949331631236498485695424250146880313540131917504304573744419521394955357044474822964076629900147363589033174836423321411428122916011118713859641905743721156830726155888519507986775981461794101732166306862363033278556872242069500262829861408132009078182645662305090669288702533689717318031023135248852171674309569483232074374715462024553151059642931021351799773603623206368093497951242759308315296270730869244945201265033238876049720309536173423155864495378882302898140211817186665535749139130915248773850787572633657008243338819709701796086682353543941522784120853962140671628214456269421909931453416506776969419125912707755266409351397408355925118334523304534043085658282366711518514698940659263085732420642374537044124771372730685967453870865575684723560713062311582406533076201566753735652878272325280736361577063275515575231549843763116464902142517093716699980133569380788442137946555105732968810099942635007777250801512970280678637532612957139589170900981669814081985953296706925632978509994286199193377876729639034384926202891926672312186482645195149153083570023165177520865266346578254321709021919547477340643305018783519476084396333997144741554500385030561211909398227596526347089079075552902872851747787414044218158595245152781485051521115762689630695358649567815352910339005151353963583868823227469751265310616035817718710447488775567046757807853022045469916628171740918402804333980311358614406799739788205226976457329780089699080977046317997338208605419344576912040306851523755217677595178547807712434590604899137516287793847770200940935098410235006675553501554097454382592285345073892526116322044677038863115209994613624910169121948959089727995448100029574686109064820422915243548339123960284671441438268536764126098611341916272714967224898119033917101481617287499465230300252075065898311381325198648380408264044285522078527915072758008453607689824306279489425501957682697916119057018162668273269527115017507222534776827779108503937240984580241016490229592237941907865785357764309604728469620932781070902099182387111295680919364859160812677193549947019776834771678065430773083870657625938486078354010227339012856871741823075773766648311652390186551915694693833414576751092779135250742576446528064826713627682297512925291652363609034537194334038160333878338161782837935531629487788527607480341047386695710775268900223917643817820324159904885621804607732343568987973688216844629875939303443293885078434906729257491632783393594511129380341138313372906865430694627098376923266253575434648687095357911931387241608832535077146714376611294836218812627547613503032876404269826789668342948265847321826141948682320955753394923183196833125349011329592273587521420867102046620736910278162029103227709876457802629344132742566298746420181674795258293445901185168032965790035363109729466759469326295932916091819048831752463945851302116860668755675032752816729896572244896961895139298119439198643305077589396461233278751099819634610447769160229406524986930209539944541682444550475537457225644027858485326224831116321585255093481561960913280480182285682608883428868312984169008293950622380853689615731879891229458824271636992293249563582347831792030628574430373360628689369600676436783442520756044795009001850202223931625323482249442176188505372014291132774625100280737494547810902753273250723468824575630504963709651897411536684746600508498120080321124168703459003898508024530704426073301951719531612674910778594724662834936537649452915279958177369881415551972617419133649152143572898462985889437789552845073075623655584437129418807760466699666420293952019766876429327493984628411254014197112266504791516468618341986126612656211332728523192992008516745650631776574601869047902484496925591962228016678753500065243242627214588607393543115465320349226879860195677365297725250133776271149120382245218410519874514119174780447935336185964019022082472437644436881391248816602917679281991005882604097689100122769137990374762334210557681772215046655775161449873467483078127521077543343700068229702404546427815329160844946920404323797449199830807795797138569623607312302232021278826122780271880066277407621703660618052046289411983179245169470381266718908554454723064634880844459395225260810680687643634232601510919670473616324717687902576180564637511487568359055103363723348363814951295158712918260223716212779036279436986603241087358197061851722992826581866957110082139197452914908570899212506403045432650337144966381921765620705916521627790019037494645143815245740442402508731003975628415386232785672874274214409602402876597796438693553413519257892978165866358458479191256636505476778132849106797861604488456548289200737249718435187077747404379659542543817445065423960863743213731312852930015323349939572613712058121508413446984214830902077055868446683919412888913973439199815207815944280555860189143520108314033717479626250022267383958228460273409435198314547451036376438257060098285585154943223006540326286035004642833402133197923494540875037932534420116036521487737612267662926578733241019762265754986128365346415358514621452635623494795529106557799765163208496888593407574027836670836954186595339049345509445888072654414752079603391898350390237454325793848012506650019023074854295006400567137908411532055565011066141383848175018260747614891956221689651462012280989419493854308417243391805359804827343124074562160543894742399847274438495590067427741013343911812978177886490588773827880975016187182317623842203063020715203032732909818154925725996554098402116455584381346962985126303650731993197307536759091989053648648105910574292676584827325301606632972943902430701988565047480923294467576910785240353153200045562329956815142615744425127364681105233596325930776044132588521430963955622280836506882553841580558810740899155804139706891629161676608631525177293000518703477116787196041033439626604427747522954560094221908014613486822024500764311990220728958259032752999402237898012278200026558134739636024671475946375514827887283139817333155140664592128209531980731865744092152747824533061283981187718972665662427567583452694338129610703072749614204059622328570838824758362364213649617877055994519107969430966701285208823220481871666612634796635890477128025020790039708942885055721207984968047015725757499330109088486850355079079260830734798196153353933968978089040196628141603742059617639255639410907423181554883537828948669961150819335997695052584181714980987155887877243549058415627094743565357465276993040547960836033235020320925174631375252776786321156974671578316521192352082835870794950509812948928085691245535847311185156928279674541971934671552157133147936242753488369534434582299780332518429124732185681932277056949199586047640412771932164161617334119162112217108500541818619130034267363770072311910952219310656930623684285996254161543205526491618056439328700425551973965427867215131415430246259648955863688961078428884025088713377089840775808625406014877160931792253343783155225836939192707198236240188285926659652838244036841964735490393153652031052776051121806778753218395125594355149564841132263031398378763658783183669955241974106287683881754989805771895187430049238250791767966745040557790616547192824825267381457543470930167245692072382124137720364431203306698883263918741346792621924025437977601267526203257427329834273737068302470961963866143926319251742574194929854753855612907229855588212393128399899912714031783769525811771417785455483712233252718279899343593029645853310846853758565342554394306732161446693999069013017709584403357205329406300394421747211755616860770174000605168356461261890305381161357049155911975227542251257558483701913797155352424237093050865500801134113254330803401802199105230486188503564493883504351996334617746143029810072613363149822061851352335862718592597939993547239171236752351889749375639083857911640376226572441518249813390799722012029945353370298742608954725409552883981451586409954079972294621290580768451973580216592046405899279186626849661231169743907270542988323914798686298942117230348194223216659070799102284211312236769876966209349302360690480481921964065474563698509210137649745108236778120353351092441985881274565192723269203561528906336779390086167429598421596553902726174158198348849770643938409295298041444888426081835986745509220371908187274149692034455379764645640539327212075647630746751018104603791303040139152022367565053818388775648973827976572682933980284263899797965695979357995439310339735897066470215302730370312825574261310718247629276484622235947729783435525663300319510819453415677698761551021734896776669644460504659525112952426071700816514488196969680295149221527888941648396451206182651942023374165273648661688716834033314633980434545022037591512374050241298475314807808545230504124220862139995017534909822545811643496403268839658007083150588772860253596991576065944736913520775510150733835435528466093948408115647188569738572838898910840760159488078034006723375555306984559013842272472664054772191319614142559834550215621990674044746682896247952780007670044425277130517985074480796102169448724949977430474184074681181853812442679537368806849458599185503231403034627869653124334484330731634086443815967431794988646432665716921657773747715750311625639778464361271318435143524714913240860077784500674812384717035334557620684669335098696732979631743253204946980235390850059357717814035625721417533708474641666222616073573244614501745865833051429747412485526101311868240871627736084769164203525616169831910355100572516727940561473791149453491711641501538227343348289532441624232111585057316606552466258476358774393096898241086447473786350233024887523644057251451614961758521706983448902315338517383967199172497770367557379216392938702198798499084090762848082779041678226451192834411527151294264272407270179664493290309156034636074877842713746114466729462552179510605191131830321865550050979345544039088520717228937998043805865976975355994688141593676473292034541430801667324381530608624218604917095772301693717975371086744065761454072958870426219628192768810002203961503607808711998201100360653591165190168591561683541677153714961198380583688358922520599960064154928741424581751269526937807260116987928814538129355802624835099236708965789279205281212726279504895165740452874947674483692657541021704656513619310293800157884225452777783570500313740142094561829166164954694765961921319370468268517621188957408372861930920115500961299058032540793940276814330609344643833925165735173418398492968722799649441403467734506288174947372823077464618469294575703787212830780413955573553111415432806786815317973588388844350973069992284735429746579878624093819104191752894900489499234176183370920414174502979256526999728561225739841210369523456380903834389189114947800208129858600629767092724990478319864402691779830556587568808655783596564068587159253287364009940298551067855024937764294134489285584784630910672510471173534166821478096144811197596840603571810610636974106447194185111978550795811795385801027965359124787794435411297663025451073556230167902750703959317030164060638488208253735786674674799638206478246495811531148550343646428405187449439855674902185664806368455500536595123614712655294565313687660437729728161106067705839339670375047378702150318674082050342945819692110838400280830295020837898557034225684219426637266848132792864217463476037200800521499749970621917622645706878868227383783372114706995380997172335973738812521154505883110461455415945783880194378254696400743537152716520911145544930827443867587056785850245463216291351057178558987532181663705117403923051977282010905013255240176616808785008609580704760279152603046351463482040022653945072509336944250566896374522697711340537449853022592911921710725577583019376035813399281189429007856659151021648650098692471829965381688867028713938472294597207183765981543349521756943649328748855954509237788724637907136942536126515026738449798491088306243103439061750284644331736813184976698853856909484815636149722936898482857885616594409441366797668629642102718265114464998672758719384589481331399245998350233713557657582882797746671294247732333630662969055763292089404380865909233610762239769595164604640228996325624929600052402916783745791212772801546719671627701324339209000303200825773699243718725957268868989014843366926081129632388961649350672037914290107438553391682933394610087162901931192008237352544917962734986582897109299620277415112857422532601800099347198522119450774579718135748445814724992159222092990532854192175749828378791134311985241854781798165203500602141299240713409398026745414563938803509025912486572437470574002284590845014346188798222051551844490933499909093201144256655529009930383114555829598679767118041117148259637206902229158275831400647315469396112639030019813632152951443058178386029377729661456931494761433816977703537640364910675632746924729467045205007417525723897586572814833612949474422413604485862358690611696011513139480626168811520159678874993704186979674730974653018567326549844573016125930234294880230411123249472506023551579451800263018859017031103358023611579261721875089896961878995573289125633465578848419354998686359838818757200710981535517658152621350229156206462656464249890570359269490161069040179519143980015931633102508766113914176995441006241824995068955464613967591412035286633626982782819518894362660191553762711709582651764667049897235056709727480642922797256604008438139924550001646355834176030011353048714556898871263067718213825881997312744343292233220138479949607753520425741532825797914081690671222859721119181147767966339142733146744811251928747698010834655096155151591462855609055502886237472430453648480985550964468488867204655584390263150348002065521089616152989001010499812318141991482096421867787013556614049669979988459445079545641716802540677553249906273146726611984964295521467579431396530624778446396457555356099795392371839663573200749572321605291057271913595900066912647228521887046074079346852129483792486628219622085013206111057110287991923374479198735426956935323043772311902764978405261285130959209248027997850508872960249381986822379266850920847961271145971691648923762111549257282312310028642977397975477831374333613940946350077979852353188193120325397937713809915072120792764478450430612399427436810692836516071060123237099526319000027469071305871367280580204482595736996049467123612753167228471814307803361878377494214370889607945393515942422224404303010264495373596844354802134679725306210307476557776215376852914400759598506086637217006760754037075660040702823909247488317756970688459717039918910486830559048659473467695496231936758388930825087921621173836751405650969110818425989630427132733469734361567975130366084056674328766179922877265749768849866742241598028046821820052912906235521846179214553487031751709842543195857840794628184380844829544597318705169714979425161024430320882817204986316077282372015559931003922554064423721031325099460367238941511165582420810480497742007588183959304174300619951472698344086768447576243617760968227272757460220245360123820034466383839508604279139109149855285189789616273480902586995164947996299699035653695555493260386789095042818792218293190909695568999330806924044899244833965092679745402958753764937475838939085465035860848271436352406530814537422624687669227166656442407799321618235336077126847004684779288086331434999534032406519691106814342696879953932032901627640335937184851052256717284984576907832219521091124402906302348128554201192821483645432342847540824951811938941680124648499052694792478282174140305148425995472960328586275157671630965212697522682972604649697690797211741365062021168113926185441128230614288459649915853771048585682709713953897643241313810261894990111104630893650537488232048214619132334376210884783613429068658826977623561523546793617743759344110176210047704878252235855105676312677228221194459284738200153977392073731534799891297871248143996324604813637321587385585114707297450302169894566064330639555154701944293859225876801986313765356863342047229163846191334230613203801101554960657395212501184100682279157272197428900090066120768589256993340673187424797514977128884863802491168216558504846830938188903362470606209463923892883858309132080338855596743589724782885864263586518722468611732108777924308231037598093982007197262923662021262458579061141808682683628721163554799790745531978728072040520868877028980999472140508602654803732652714471503080277020770202376902567181124600376883834653388737034869033968628767313967894311968500640788858031634305445742746633893685279135211255401517809323211614115179688038425569536011286067255903485640112447197732569940073920511127782930439249615000191111933171532177568745406187170723307403314444599347332860038605478206223253105370533660056694612861148638302947924950657280618273322802886476100289017918506916307771551046458681501574641284842843313682019783353789593274955339624934429820057244183253562481692689744760483947780225172138926527270552840189151265079008956672187328902000242785031503222500789936683870096936458096751466582918414529506658775080810620278912351698473064950227604400083880080927321720014187386702851540667988577943727294305081601813463844163347522486934953301995103053082153732442792366742734649227230177567769273469487347992810897216173504597790031162884252661861197133336519293353111523517021876265643089552631864247462318196232949787816656509245795199385335907335550863884255877115576602226891056545755905184263384542871367479844727939641613720758598721632343540623087584837348572596806902086380740294400299476204187424537898779572118989128340177536598164392192127280790195366381264209844315283297099111410260486004811447692174605796623049781751842398715534328101699873085925467985057667505772945353243497988155178675810932800321082537469471158390932768465369577344268655133705972197407604368168980426853561545470974015876237074401615353450295434756109301974713806212139613740050487461846708486162474858245685801809329779865367991701602097045287238615891381393293064934300010445718814899803549803529196147166145092272471407023891951449970050365971030044614721115808272001523253348261464156439305129295441795237765444332191796388802218300704342744135534236565446642737483488873092706182122240884422855137231731819436856971057812175430672714098755286215607366628158723436129988189281030396422221627480870836173585624283121910527370066536376664759595995878051528879024316792227548527508082998389909373847220937195628220049406955277422585942632127319903467178981436130006722196026820958100207911144215771022340451245354326084583448933005312817403866174987989657041711823926529997817680304788704846698551997116221961908583151445180838382038836791135381127510899796068149859595640499335545570214813886662402583195501470036144853366092334395391486336500848405473780267742326687516618228939619999036858514233471929770930979789964798384037241285716147252819913477815183747823595020515874004758378397293834951937945958434046074219346126927997749738459793055490223664482830015033552417878240739472381172468157195730598410176513277732138038822821659066922495376036018151215426099309304715956779999806022312061124994748986191594499169548003269884224213072789941694594425509033386336823609765743699338041644767950128038407472301277391547751763062414183276334397293973197126794808313236444601306585628287480083415200033305735889503364095369046994950160597535899958180768989295504913013547230988717133928363329642293686446590988332224142424767637481623691560555917390970716901573949084362544151607057325736555985496783981261185109170932461574784785187251065422052182453472349627435546616994868346037010477413609784702044234971347564211675498137551981825907252045872405924566170938139626180063758067951737066210378983989259358710981260388160981993648486028518702167736475953911083551907176032661163399109100127135561901279708338691074353621304542699364057718438344549394724979255474061385266322071064870441469847690564743173481966852311592358801053292920290006280183385689956426554730454250684727754668253970008952074425902390242301952182538239333874057896468257618153892670339211780834820589313561298672299640199670234348369468895420683129333133163755699023907780408621514595568827610026216150516852246973610457178861088939622491622120867268953291124805743926993050460794110379261211135045622528903080497004960759636968067539812112582136354611482717638583026830828816023362659607703133512874289544519854032477966427057130849501227770972398157566465761930623512358248036961519483177501428626935342694249340854217142476274298889721715856789659969702440324320132006124980453817506758229004469268631970442666261908100159305770133173509671265445355572445820039437697624026340611584047353585375767383030653769020669354956755597190671308611064040917640131313289135403030735130962116707644561262945242322465333604648499039008154287422682229295168315479075721803396935329011474601069974178576779419654531561048422278687154915656571331701788075692596273627174312356204276339073766897858763781728184999170557435492195711391457237792914928593348999680558892047798788586198259200991198765906383596775155996955046909909559743390435171068397214889011468951181941897791123348563879386939334162316983566593230280062906536418018407497137995307429113699589722056094316832216876798200307469940771439376731709220996343962314829266895354324889906315695023573358748615783544984774702546126803547577736810519170837248423135570649246301425467330802775072340556537664504677141096300156524318079128927797874540099806717102522439093896544306236452058625361070436552903982662013612894419132781019647098361947897546453542924052920675894051031917706617628118973246745963766387540379414633270563578176394250381252458059272656739332665563470946178048514549940910558958264121680485390648751941908094378195681826633373028447090568590753077383489438956826258014854765912206586903745569424752159593930469324678694007429563610284423869428153964079557666978017983878938049692973589715963621618393881301098355495364833652536157922345812432113159243172463566623928858960642293968275935383361922991329701072371541109414508111719779653759826082920675194145601683853572249063898675341002392861679643746978629722732071952834654036919499617005689820036773398062302647214717474429417063861996656681759501616522358580407390943496282164110973757000798809346445991892386808389252517062822252664135507025085552172484965118686400955561539788296401152254977241512517898170926924469209803884953999317596049646140103196651806627402430149794298523447465236631142593369606027920938663942159592338383427552373425654734307612365953997210524628639050483093111122942223297291683163109986519869035460626975633432090267068451328767198758551753362523177737075148843059366046492052315994878251266237986469133364181368931119358956502866948326016376229830514968974028562384750972797802872477701530880517134355592518594768317289609343725355175415340756798302525843616315378411921447035109628618265085418198375542115718522469020152648623965540177359236382019522826191234184316603617849775800202193509250977442998055004067063186940202632167790855033122828126694384223669904618958807647873916584433392124186672232226603145105109162173814404852674695865051645531084237427259524061279343008482833447543182530212666575877308866318628643625199135697210069565013009401378919769322643006977384652103467483686485637419236693856647571922444478278125082729085014766954286182293017917526572558742068084222217573198305076235332684054965986000544593425692743903510008446926535301253139245404959505152456293015651516987879663235609353926455750085016838607515910842731445273857184992572867544180147350596735783920701554157743089612644044114941108072615798462575252008712819610963115867838566958608698963877470235115789839374603156365671232499754451837653433786649252250710210194426838073354057288947107245964135407393226186022821127456654996079269296439619881409522706350082577679092170999714942846481557352563440420999811079934004017898293716080341539536022652738216392056799797442232392566059768478095021607149937684825339243258877865100950060900888057470160005871978167116678405491315740133524326417550334337081072438218033543826503471952794044460909516678592986203354710111167427984538196885255272631660019272120993986095307025637089444064414581820690954361396876903846048800072562089305810658180436707395175142673021949826922085396517010846346902813462131098971036286468165814319887307907261279501228646380933376403029739604767297762551513473743342627779373590689878159160803927594454258370121178411568917517990787692965104821539857397519794550273669197438810681054731377312437645022665582934839184355657286116574904545531978540117082264042127240953307456856573105761879859371613155535758872264462697463776198262796908117705564316983581053854475389692531562269982381341353606988173717688032158945394899497787168299630564337851244475554093817663446654936596417849690128311633975709055922508308233431541047866646152424733665166832869103223390793970401315219455559959773194521431157966186875251568192607695711904373999419550312528252614037268631901596003879242683563404370666091054117474896903817951405674484028707842920788105296555412793808863893907534830995528895584700149619684699034558790177823237880601929276428270998130728474823127819058580213914313317870505001685461190769411893565853138204930151294286216832501924722275553131694501510345821876537940677765495616000582162414364111268851622051414116976524996103734247534973410990522948402016570493901857072463067119016286694608018721903514828002427403584934920660644647884074826948710825603245432327576060961851427254030849969642783941606828753321028382524282538652904475832872415114611879534314530695826134938767262877805358628574761506682749059770814359117388862855587610733481239514136588577339425220621054349517692998130091264443786947800190400372706670483341498284895543879005080327398313305861529574368036942772706257010564282239238863390958018171933867617613917936509117355279396273570972703979394992454406603790051312254423580666907095376763542920207768374214642009879732227022558739015037632689175813932479240387854348093290824645947222901767402848872158591073954153014790762598620974374818433333422004279536523692247243481830086172404861529738955891014036131404804987868907310203638053939062776045107167461468997449538572876162502328073328192115172353907294552055898383954673294504875793322359204311222292762052216678089061496564418714961688650267670421088826789947965477797126027153180182107982648988026021482977674310318033741286441775668823142804528335212480075024269172211247486020497116818530919448038337144958112649159204568516447246784980141624577285939374651671873116482237420458076725302310717505036148526951560849804381115692147293918725334512101378576209810729927300135812608879253666544992966666495064360045313024586970595696559077701396664452357087456685564842950771855947062318532554751514608638733311028210096901207957271271109544367925412893892663071998183328692634841103486028027009373975979277480893733022076031006671765429109304173108964483716705743752855301641043834643660232832433799444695940101534117490258321832077187057991035985545034668115798781509800930837507734376025187051089973710590063568201918034809517527772831568552492308017818451073421006994288360173855334315148448614421542549288375647963615225259874132250558199874292202458882917102457676471259813350521656256365554654215119728853851835267604640292275862344640572626750852961940911068565398101216537122925064571776669750797034330149227320802928278714514853302126482016044086578837034769757495738652243786864879148536929363005286559429772839174114363531480770090619933402939644985461859173048656113088912977206709003926371548717884635759531385419563626601180061422875919708492795627692152762703778388729248835961289863184935575236874521390890633180669355758530074819310549051415630255359007064020380433059561089269024166522732273169221634530379866250274119340388430371799832263997919383687455687827824874998920249940314261800175434556491075220351057514520968855842984571579765609023292899538600045600859344708784529759073498248004488117119825347126534056750293151415173096168465143747762545712296255996815291707382388468113868200118610799791296916068659005903694499227417776671590519995628398571173586515275086838920625632576547296796941317797542311783860820307621116759196395090402250391374390117167289222329177907561829191108261455857461483683112372455878346957438832959175873045598600437992042123596508509776254351830759638533340770546554058375990778167794626494441210098931364127630962855154489301199424432709371370490600572794653609143070039030392914043127607296242238850416529051603993956589578603265678299300834930604909992682275288001716720996226517984284637018709872035089709839647252180774217591812123633866026495748399037517605928961061152171746631204633053553256259103412440413904724544533828072523801519635410855901449351313328468824279796689669391489351042505646455041562085007879030809243879461336196476530530343248989749433522886795649507654337503572168027379426678661466783458924417119408509674392053796823573185014827537236300014771486151163097983547894234109852707344642587518036995718918033592221030812018872646800423142173894899391340456977073037309159219923097554886229537254851673204669792766570470444345763437931501119410279092309256470376498808690637939241721558548327659012167419720330393583358629284755027578157706297322604488548588417085194324033958775202532293057594900177102448395923514480954494696835842874449709205931682745743796650743680504534797711892234974093704632016907630028097883064388162036633000086926251957901338695694618505477654101214771306521303964962719903240136102032663022662935007727616807065881913715194487696043551452735735253714250826918955748719426724047728537658624305478022139731740420728645772625484174532870221112771355539315057212027877121152555562861668153819513976072805829659166972060435672474058646600124344283177677245420960668934971381713454922152047198115874462917908850408827065212481208343204346290157963983638484107212845970865868986888616965488815108763009972760686724674813519536177195175639597512389850604566425252448408467475196410193124373373818177862466765027884395374611642454712625453424696754922278097108547025385895812203708839601238853356245502006590566501056526300757126804440149033949224619265702018539072565579017653796573291502875971874982585410861203406368141311761403632872785183102876747109152367313799005202763020402597737117328079454899962506243290412879936560532736549796523583667298810388401851556075327119582134472812137756764639432587010762031225417614384326462750728544032156102851870992075332330173646726969055932530198088262397715751347081010704017317482930113796505771251139010097896200241662953160720554341876000892311457179554389334270778517447822976479522922662964763790400248509519641570125663815465354033080689345693596020353825700376061927545487176848907162940152586562229561704324456469511072498696352990563818583893613662505772333698874632679536366464021025213104429128874924005626298271120524500029867198029270815754578151300841650999921033858866460175325202551006377351845584960467939061920795334362774312426844715282688202368953625091147254385442866653891962230824370174242153943571121057859393603955890486393776895691144125953107240341312914441120988743751595298977149774216928476852473903808400143347528995562987518085313312020249492231648530482422595837050800827456687212012805713145540584539134821150876548120548175782603308013097564331390827971856718760995713350542802257626980864617959242726144519086295654025781151765223037505379843743269835835414588014719282960532875441404550556438806921328485619037963510501323285974835168572742033695947671927108911978160428521947076649766730471113307474180056376960272811360468162325957938062879538682759222209711374489839259234996504685463612956049758909875878424201199351991975152789412867455354691267972804328573406932480708277242043968350988875579522103948342975693574657225031172024829912361636967697647122328126476489995769158331970361817048580943935654736033607559511086555711664841069850252912217511983828097514264888400889536217244955185281673893802052741544095903007979303213977446611185492739125098533191814556934799242610884751188875649749845965696157114898639267213942934788708605523087292992195561346529056737640865607886568944727164587600187540083734814912222215008700607405655173674325916177597761065872216550654639458633121709873554321687534505212513292114432742701573525021719452838515162256985586217219233286359393534583283985506308994585994858681114261201903910190842108589202221231281639579885792908242371825110243023143272522313353345346377765076632455570505205346969916297256421459107011633918905498558934538961291878348909840211716378918705141608082970959167285543177738350310043779213559742488659540472788049767698189941835872977679599418392173725161571375853607915517809957958271539585089616168906543883108745104319771578796554636399841468147775409692271484155823314997026374514601963209703673955718814363484106530109265354231976109625045797944598436470926666733645210267448236429706961425391439440807893129718119504604399424360849551476162856842619061566636822382041745821588020555277233916262848301791698143388496484619257225803518984920067173392009274314030671288526939925470919262152861717496193961967124079295206380045802051825490003936142364217691330191573257279699899978515608559687816086720247189954514974099496827263757509660620031339364426882869824512567643120390637748901855625725708373029042852988154089603987363578097736691402019393222944385180363131743533572554165752964478022721893198273700674162655063065340843072613835470802943801855770609262415495151261764699989484691349622122953879185014567598111713578965867631450053435229331897431982353592812697843753305622311786981304988948160484754984650715670138821647925886445928538360195023649689214069921876219163952911195171723315585751641440353398632418045072489817230776907594029436284910648442656777680004898733892376436613749596878956677217327677717057440886315191753000226600441453577374034128667874935438534684439624215066245971889752012686299617293982507533935308032644204421637430981951044851169451214530872577847439999146912717903580286305293313440750484302114996144929045220227583471680586646728338707509017082906002843023703186082139829509925617906221438476330306410271573321237565788129142589675152141296590197654209910518295753687928560260446076996319852861242882379781808970460750475168795322821994837769956306087294717912822522267986762735958705565854084775513501760719992209028419804331576116759232871454665603943885604200766689181924738920534421605582373666464897650308586177039462255536366472946205460226129119792521227175566655307519494691868224852318128271229917241515002183734911097326125670629441207520255747751785058778155166707282661557776098526721114787807015405724587273106050738080116006376401466781614780873974556658787443117359989214418327438633773900153590288263476630428671489600586661220857021912368550638903475211368198398739851290080866118203691445495289733496818029430571545341296357611603869287238052304730110600154847407710954731801408208272275452282658504783222391301930037348896119389641658155499725066723015674008080664929514980732598024138817833721562409455148398429236410651047667301440682390892711020772119649237442812067318156462650925803622218439400596950501611533951312475469362054863355439034240897388713093911775534819706843482528998965973979274625590502432230121830346327139173181628833236327763446260266446537311113830590521054091244463058954937477299664924855129983296088018537636006457843516623891133939416351819466073222497778212030781102814564508401477078751663194314784456878092586377518992336046188697269351481140312921781154523939622356500972274011139193088903299303900945284491799499103443162735786913877433974920909325172747145952834492731041535349983022387155625384226204851944429611523493803020697687003107047309522999339493132424338169367490131423566216365668461781791027407541617472427671955978470639830150157624953268213068521126237737984130219757669463359159512725208481174096324156871640889704778666129004772590471113322409550519764314390111995037706102821561406992526013204527122124107996046457894653476661181526966359196690454872668574577282537597724600963866905918329708836217619459626155822560115362948220814670538380062981608605559613178312843188268635431624394836292442538228081907828840710105354356002505409508652565643011648141298638470752473931379083682387030288123083731337838184600370853613347688569600428252911784354112594540732233449959640739168308260069771448561714015169622752595049796296063918612623163842747268110804064170248040275288118584895629964763144618167115855631712266296458111499290059662305724963188074182519614774792684312128401860865088155785182040367592133184642217685954592315933709531856863927433442827294099732201907089344294640219720020821546562144101280479927390725397510650993467089421843778229771142024023272009312030845723432060787225488624933742796276268866840754941942002365199338987977454198788396035352252792434674973726463689702897898581293366511564636115718806316490029480861113768532364807771063148749437776659235392937950176489991226719439219892177649368956074539341652997522989705450439945923466907782554205593587707441902132687024657312177134638922389461198774123230721945586092517951219431846376620317995313792460035020201059223446332830385358418699294282294303748476681236877925656058563929741441816761362867432861741888448450220745755469986040978551114292438051862809515816984312830801461070859998293688446021725233384463868285534890612580094090283831790414245235898171781297341979333585092479471857336707246097400434073982947785004185091344769101174669024658137930365526364190443889426949907164174814264467087278316549630913294759870357053649790959909750334632541939896612533592591450700455259739373395624478216327549981310994376189933377652399127671167495877196346917273676796450866133459121800750037204286972121813477388633525734680809051034919417314194162911346993040251050097414218561592926218978833553356981523340600185795267020000159343501538471229383643010100550525174789800416693180416640183559994989104613018746906766631422087917200120313181368033441235061088424850357879972976497562087850437129842993052314164709146678235978432593182692082653065308193543790044996852407733974067699059530094454273675474157087010599456799388393182515054430953274667776953104112299316477478970891002890440662642472211074217873143147180418492175858937139283377291924612585659859321780354022881976424247481705291825941482135394485327591752083757253201726843935529533549911960022498916536872089006707430329449263328402634545091282326390495407319389586498754009262284090223916509243868858146077908908444990639892977458657623456340221141337020295540860770828907378358520192157994582786791047620072418038091683806972877779004019370006830719214312566162798970775571564858071438486412608094622482209485085553264269135963957287378952534416654355191169843985257508794881359704306832440706504198871597377508909061298109550425112125623758110603776336004185114121261248084867631237653823209858494748572293752993655698851189850516478560829519170363805970049084951170201738407038759071335780842452622910891046357967643210088085294928173423319347099873566995761806681217087746364109161701164592623535196790401927242572739899000508278133432466016072413071730229363254178561799748066706157740691186327154607479643470359424868966496846310341136372543567211748275404123284327290857004956641025710028282340414507196049687129766826639084424250993045614723035440216033898376814784705226052382568472145155265717591795209865514689142629841505280986237806207982509504943776491833463074933528444864259880227207546735836344502092431479334332393167381295945936241457310458847305250521265872534630503235206740204163662349245786966273156671053101228079847293875960631004445601148767735702966074154745168419457723809327533782310459376205463381006568312889399823805500853687870984316229859829010163594810704066523416171069986536410130981656191378116988276289061136862184785297843696055549774514328056094620647080401550056520997177393636542836795432895833221296413362853719129672872567231736320069058437744879722509569826551232282319379042964037469859050431336065000165460262663434809393194471738850736994324486290728408970641150901709821770612497617679826626979495003127695547775156069141525521304949306579257061111143159850476335094647438017916765325965174205816633699045135104900770596358136497763219669776087051625027033163093145691221590604249760923648236776125704365817364418299926545441214520454626021590406746650335528589742560839723460393565940713062641077282704128829985630863702775184616127652644538426743637022356910754587446323282546570682163336678211707432341531871562384115918217192804956460127756636992305873373134663236570885550840174750877573126849350702418926370612358768870470485323548459841061116304239165526302998700711998494191892465249332616296560593618199795276824263213101391143775166035052217606761736786116158453310967401680342087789018261926609925859287048600219635090422344243543841966461059564485402470573959968838526547569545759715894379806474149361647671571937952931537628274590425396023747502670797362975689343692182439601705672184392035021046290102134390948193940063425976145132590572674605850419200625687722889799744813369012207276084200185457604745205760610688678123384427631940979584737486518743508023224279973014448620199846372306021455262351865001134779043303829364283615014649646701821864966977787187456383725215540659386945877970518347891908406080425776445319191228887875641617534991204607048171804153762192702689858967730494862466241851430070398381439012216265978625989722773909195407754957341657301871617876798011217877106804812109749962313216965138314283205663553106143743245847992291171564716947597014023915711131085785526980486847757485329588618070100736916340359595185730091789921339876319379658071888106170541237921353043670810029284653619003320037480739746810343863284848704040188178439758130682938180663184924701962221257611490121614475276279032084646395312349861954445382011052061828907915251280888907758997107953194306905039865168126246209042425663809851772724418775687217952434410976637734684495546702718853833931032016731761977660537980030833667103497282143953023813711568342400411631241322456042034465926021641442303612259362104244695192026640016688102669709837543957140286095786100878732800500778058126524551301258784947687946647115024043636877019404605650195643819916949396652724976106346507835353891667040069377413572042608247822203737690542416106716703870776046206440025550994045730563781408329795405295648795424268420992658657782465705878560374842457176265934845587770578735041581713516817109747695145110406376854343894112611724678949504983600948909555606021448712313101935691737281032347594630136721131566462564370463416572244575892632260226206442960097917470207582898289447755023586370563953235253620474365810076319025751933143180312496708147233230065075636353514171416498393169990199620945398901825881042693163641160586005732114584946083328099327563579684316088549436950109407923142436323454230899096323718648054003389270242808804931193525922084358401008221603403600289736210282023630944115106196325101959287160408684818378653633836131758539909135094571503330252480165418460963723250520714638402114680534579089384574860673279796975343551816650424493040129142148595895033247334538809125280476721671691949622110106787973798574290828278047651862508114259207632856539978063761452425268183191855535673900106110140399807258289730658796782284621903891786442976221867251215490147372253842934370822372382188562834529204506855224836462964548365343610298647466685049224502398186337911007996891187190328546461652811883501437292733659704722532843151013365190115809740139946505356822466310355784463959736254583028136366196934952348156130742346578595248769717686581433554638943556923280948051295869661011427114093588804325945983378891487979008408832432201329316148836651682820794812675163995435656686638792313747314314430928250542144178188816567464964825005464129022828162069050005838833013845083798681952378591602069904694599442176129951122294856702582718693082650621350634186429531049234308825525067328829488093433316712894587990613412276794527386915469392702211525130767163699218848726751471425235420507058275094955659846591315722005452149132744065487425715502068433951842274113891115390730004310989401279905216100601087877543947749753303908660029195332727927041285895999750351151789755925363077197002684829355194321207337609498212306607592511836339919371232972472415286599075746309193430483184854195910248888943663670970202879710858616274989112752317330592487425546953216924234412403772371116469344030596888025132375410909658856196732960624068458987684776624557330054711507002569103984290686403020892232272414336035091460830416996999037286334027158657304265994873146410096484834973330780895791512628181935681321871360913350712169563407065108006097020659825115067127316540400986303284496993162634074853660592299450771249809339169914084155165907663947491851912067188177437922925468150581825503837137068514779154325220617990758376071755967905517585344694649708199274423263161269087969326494900992627674719456381448836869807263548317996149541675173315127969708608330471757200606951144905146882128126487775049401964457546928737795026925576424206188517962623064356442501319044059508506950993417216104496281836272514406308730308906493642801450193798365357599889604315538489931611212824160110055386373505490596776407687642850247299098180305597883848895124630541839351895632018208726043266412773992043189419931427648317853977655351186273204642542657828394648550879816495204536899274630968151511980092891187591327670306695981593542463580560302543704208989084472107893917606222118525339189536760281113617672397010228161581900600619203989315108832469772222692744538229534988104939196693350483079838801891250624185222120083107351246144268331193889809849696331177356235314602596576602953488764780285225133627947909762015880827467207998563497515078275179621051745597543364586720559828078460364032931426895279880878372349931914281921987167213906814977061101785268597252194413915821549887772327733807023309162675201541888028462926071154072626338132452492639349371951373088674408925941111071806196625847965308148691723537141451290863488262643367609787211560395972060179653053385395378712708720108345036014943697306561064628187455066011772367292652004267898947857957141534168036798286902397424486168027791343113674391628390318614667975866862386144773642468302445846810995055852110331545348023068948540162277766526075374383803489047088098299699727139826485156954264326603698262969801162450241691510298443228267013173579043299007703190482125211116265808634256635794200394684472822200817473715716258825810826648498253096162739446972571225982636386490444967316194345114407213949823197832271493243267076019226651067974708726548004842558488227683433586663186813578816373674404699618198284126062303255010064612567273436139615400327159447311718443713393937867194117308757441760838163889699500080179019830857387339855359525165780065322410483712077275537541818252141332158739577819612149220643340835595434512221525038715534060317079113978292676811321781308252282257913054397483665169498248190853773990832066583394618085106758834061789269004303350025128140081398671702429026221672615597686343660186654221107192449179489721579704718128498938148547074700986300171925758824020096352756148267550367785493792972190575200677659194011002597832426099175020245577182082129429402714710690552395684564219431476531613739547171620425501925899839124676087309731192626131445751397918035443683579221302731893536258215379409780977510313522613313413783530871546322534305335421477406698359424102201243336356639455070669915791192001766296890222351852902277962230293228387235626881217568540500945498823735415465222104930783829599970099951438719806001866396006279038369326237589181227977045668961500843775514601535944794582158915647552874200189617235107887999409166683224870221583793700000815193975881927735068759762712272514430101849954266263922200738889397612097211500863224297486667822552431708221926920665966986382313761545262085575414399587809307213448605351798727009014416223116335467990247419043307446584585968226961565500864616876665317932408075420771435131570074205442030097778239810937318282423427952369604534036830812703660100356060114410800003435475977241884197525518467583023407931731351392029285881187634335630605669254136123821880640391192183731852474536957443659641496643583155461584314809820426784276159145910255328326051161404439122209547891085216295436258701992110537312913481903103831079770317751617457617870925382094804796365628981273637429065299179404210751700605344907357067779097209735811750503889525198124778250355829945311081119304811012770897260893597750705477974063494705661466355580183634450627955977528600921586183991724817617115700214552420817199657103496595417084026784738861679429840478319389313345139169062142775837628590437579002976264070558163030629438240071118570130145247124876237257534703424927057910748550917532090105817461226698016713750482396534430997326612801090593922727689349171359524941070054825005361139475564089132804032388474534472216601565358063893447468827190399762423483969265908136921896389101204712491043326770232904080201073415047925168729993184304398528896059659162152845186383556682747197507053760473752053806491724919987754286925590570977878533724619347804567142697033428545046704094560420740350620022083719983434667078780817359166786354801677698083604423111869502209720899936154060206821585531053949680522130879596751737682682459395744482100995673450364219875102047076132497855445297025242170065653161387599013341041790108331425062246418222255655869713925912011514379125286414430034628653526041891422022750357184333142863082151532876461404081385706645645402956452287624577520311251968224663948282611140082571767536878719371314697811693751574235057083024528913998522262509308611141495964245402475770891153181153461406751495560107727608985033237032519191096996256388182169945469746246977403819115803852796859641200190988056043297599360432049429392530508358587612114695844502327982287128147368946090575711208191893745759554522462220738807210003012794194424747061776319138337996305861427697689226605753291729676906687279776635291139196539938518721266254357948591706345143270434086278778105424682806609061665504909215872998475485046029816728186184954867625137562560874068476842490787780954749173364484012804841496870113915665855180231034882238776102609848869321127493044035701027130362107675849759263011816316398042037008002685654174073605854879226027241721840844171604755760222547513714092613462490420536694150412629248838883238435119050883007160174330306716048625078937945143107153680952473434810034105995505635397574735066844926691827845601267859298140976576498771933890563052926138648018719284404718212622531169181220436900194572293223581056882526745454998947895270456882801042764134685995647698727253126922557609392456628647614023362441012994054424420957823225481007992847336129400877234683513549221061015304108283767338355127571707741048165989942824368791464967315374105576146962486065347082270862516784335760732297820582607358100848737997041161782268626044695438728583195658456694222205858077868173009371780594768048578167660840621237258779722839792902383616208072792069436597237783290330437166145837253288125200512218012796638742413870472749893185736651835092200683630302561999440886494475442655826344433767371080436304398619988409145376916219573811152794443641443767992208005139224154412996232164831380155129809040742446525250754526485634950707223676677965956263634339695359054247410680262373671971891279029046293715488273312857234472928291525472630651957413534843844194774471134752255475915054184097070384084106695273895769468868249109042661714384929745459135835957204067154909758492353856756997839660538642275710035450741281498894145262391976820167644335322068478408057943862728858128359007468835938214720856946204840150735907633289035365367228799382719716080137284098072175717440043334452176537745662291739940936613649375040998348205701345515821630916265891182885695972502337343378520747985242938314925582190153837200942807932223214107976756798038106691342620949761997296758778885531845412554080353029540135339498168403976102214619904754361674342450838050614589810990169759937913606385496264873805334767532371989185033739393677925836899990721296456395768252009630321096711606325231484437777437731137630442913840545078440612488275784164794007427597020985095941099687175745541998508148806459069058722942963980613813173161876250418811247743259939332233965093097698367606588252659021889640321740012313360550508583945471517460303758753420246463407974370940476930744260371242472272329660174545575707299476874021691100440540172328541974707717040693198327358019231145801073413916041415074953689095744472580312562917343983238601941762806664246009540141890235215896856431928947108957999718741839309664316070494272510522544621538362843072865121743446208430981044457746497004827532682215905043443606567498167720438330254557083153428327868320615960749867030685929160124094190587146122246944334852535180668458149834748465960432631068105559989541068407051219763688389780420691051150800908660689722927182924273831985467962620892396808198029290482084861735507979222252249834380682277203813940687816188391836054953213352659540294669003621163182401419426166522036733549722454299242721518027985234818468567070631991480894206479870828222615177307594219439915258711428161489818344308101163481346986401765158263165543170958940990222295475369286717024079388707385888040382689395766937025817431015013176574934412971507193952723713213489774415808503680092219643591282339624183761993843431626745296105832105784916222540810136476382129589148407533191168960547335059560620468996158652407742673553744865890715343049297224095969021877541338063256756752593910200614308117155214541247347878418812921326422570792096616710472333018209565027065868124366291483423995774696094824714407176369053670696329885542223567652444560948919157813877204002578040334290789683173263430020511141422665647567944218751265996388080432647217757415691627052514273910949468785365784193060976153605310224579809801599619019549229594550947365162620253750273544066685967435094164626848019720613968428216603020663764572769740826174643574482043542145734731287457947100699837302064034964069810851016257817622140658611754380785783618835263474610849557251828514974941293390631973294605506989957461213148545067391844191597262111953191139367935072904143787253611018955153412633046189872734866994382805545885538667831267764496792297059090813771547933744402970824314820522355065606185641312786340216376571766447957968430647371616997777972540901265399495419772202507890450178241669779073701110316758165344050299946625323383459633556317218128455351079337530588389154831949940801255756358792222359651561081910988938625715311558041631126911690157777828492162859267360220686148605735401736403797668001687330864460968573337675894212088062847121528109891529757083176757438898160023875608128590350549311132781641267124847419317215256792247347154400812411513019779090686966788519229528882689363904485552689447130133201158183599060509632547526321898657759151855541539173027257769478530276416315022619565313286382744186946393223888685494135499178540789695730299500426731282139512755455014820861689417940171332349850815803178251352850226376490703665165943651030021936682719971325097359649407101731633892398034016730761228412541374591473533534786749105762927045779500477677559955655529573178134689237533169953967522173185672315674458447300365281807397150535785927854063650173885892732703284496364408299944404518835969897517902350531203218418484529694151834268129729475233794957833032955174622481503726617196484874526444593568536840601660070871237277910758564328935438789980311794810018066373968848156901266605201778173114404993348147091302902375510915161203673510667792476062398951678689035166847816288327966726627320604312365756634590368439531093749167728727317873768922811768729064177415031329924169711563565142639549927749599174847248329933908322997388006384284328362225079849466558723400911804355611034030838105857640399591357722294678642042576841617413513454289254225584875734681845600560407623962079376376147871390732138095809633568620788878674058858099733543629075247260086292900128906634742895968176448068970220422246712035111752930119716800202444176374333087162721310858885575152620831968011682915992123995208972907069653008627152034063400959076922891901960948851417517094340298216501787684342076295301036189963906798646950750953367211938757750275603372045799692860330443699968202951005773503696909084441965108730318516391028631510179781820608702603634419086876358473047537565012869929216718090075144388038266888929757694416366369037172669184235412082716077328775533642142839807576179307456072811961394090250272426392287937038252637651715592056378584260424189601270584461083796996655868121935212261241972868039543566407854815898975802678255119367536152070075708228803329246283641921978506160416796487984929133923312736583136482468210571334581359903473803922033067263454603481655548065113456797953673915842071602680015782781282753379943306445294212995232101079273218056327948023771508011243673423134157506008778628424389100741323369613478473699112944486405247702199343721286949171588544890700311952134855225124033741939436303874002164624311277290724044118703962245598468321473455729091274063142107598610574421418474975763135834808323229848898493417245770450285996272056457024325289451994748920826664237703271825395529464770871527288278914360832399440023994594391059153665507836585012768647609127926996850606056841282633960188810160690807943518046609278361825979792270984987755644572337658752054593264187114047189187112817354076143554927901224936297257861316144832709170591196696940336746201894003133193699298904801034628378766762447664739622488601370429934719128440222605123193361673816973074618976334623734688783175785343964743849549586903825010262995242194561011913239939459369988079781862031561716857291538462610854789701245540271392744162584443359136946008803943137454975021928432574886000530507577089886612576240739005620470111359167459298484022262142396144792125871422878727659063650561092165362772464597842747402780528683917566424063919622178323308323032272286788761476698418865536184289657441037041129628099307536481974175439933742497563054857211123845277198331698483755035391238152075898994268251449456890841379845675702998603617150528953056990385480620813282024748556441379312829172888071733986524881947140770109909823712187089910810169921309875466538316682650017946244340998997676501585649799659463609200625943076008677492087438284026349125158979463970357275341242525684478566548921379960066981180037437928046843124258661331773043660587905525995143960872347660481514416106473920929024126954594138914268316715578982707159944707556777286367746582752758714366084902938202311684333938326365211688435488510904459652283274404133008275531435889843382103290373194280026977030464682764819453621191588457968354363761415705399127524520524434978146394347030933905671037251119458674307208179632472589718223437347109816090942173875329934061608977296166650697504909550086196148422528806807067710698276751832400711248494683794637704042092391023873912443092832422811678169282026522098485937642767309574223837844154288935610385585438905851388775773291857386438379869910920188058848109053219186397954886477325335696347260251613093195949367472785591004307446466330811593793646216772746979246683679658155388034980797029225997112035648921609834733312609246070427113963695438913325199094673253818171114455403847532619138391466491169093907763030719791118522306949386000273320815757031087405136597047916394199827879011088135392556114913447058196396987683391835882149589756092960173718489629747727634157434743702010205196690551561422942306462590566124938722432956752986431604613493217054280781518907923923331073210771646667002929833212945505168747442394407141680493034499768342325475683962911140895474104073999645591175296877136903506052604742775529697057865901290973797306507981036762276588174673607121619047815571757073320160676163170118610605806798203106920145523649088565187658846427726093591912682865501619607519954717406764458102970222949575329071401715713068736507194045660333089851829649958828898380473355227170689029318731060053128070076218623135983543265021780926747297739920517855197228089370755072326382997868908036560657629709099019492359057950020152174534393127336900217717945892814816680975751847642129219183339981865477519538102714741826985191994501558339023136301871691436710430778095993898006628594610151098155409775942316507203533947980762472994004308699311288155162511202553294929818198415327874838687304576813399197292409711747237886343726977575219900429038195687447369100518676847876480572811193922482506137132009252504753819817309991958348925698127438668489990319080677479148116099179629299073518993239453249365021008976076082517915266442823163430468050100488086213557392204150524722644906597788495880351136968313077405282054615512473538185674311702724873292385797956196783612869039855039759483896474540103120544228170477880077908330224859556356738725941400893645946228239556245888746638836145786911265992745136790237864915865991610213713688899294434329881794732234169774384563842161975849140570768814596143775216555170866776385484122856536468803748038093899605087816363836714048695968024613106132041276037078020853172573560984838629314361556773361519910969337324120224728130242360144575861549811084300245303721282572567282999657276855564371309418967914205508155146888049189756608719375958023012089025312990947460031250686280139426728209969408931992064533907796243434528924951162797370350798667304598789834560919143499878018737793072837763394368779629848815365425182685180278757605515329996987318052753349434784386965309979380865869686098474694355269830198438085372657905517866329918547787860312665456073719679739438409639526713030770331187193956739353308549113473059419706911686912424330800087814137107287958149277161398830954016743835543052809291962790942230970962894046920372763446552646365833113817465947917436782505356977839372949089247531836609066251153250756975424844795412365344295359867761054864556194270764766414414245666185999860260936914185191738373434466561734964086240681090768096023390206122207360758615079371875335447947487770853126998142173880476460232366700312294461867121319850181886682544482636854102359780309737586806098111261935452013744486422137035694116390416073928132176646328734663859070766821553318583434744075749713558609095685108294381613570982517733753118835476113751046115582095987524038824548453685249517596334940465335180466951633769239580550264176956209762245128357953525890542889141018789729143441158584039666286862910267590258113951423793969059447992287519240634409319886014846892018244024726063714477757192371709532218282308072384310893724958521151770860118109719151092385433431453930608840947020075895039215497447044498206176101715281114864529385254668669133567978362962250169827985036672266645832492331446482593513085605823341337236567714431204344050256610800814293937573093427767346551078978634585431397104174399683890575939525419465885014186880750767848416381744578901333838996764630988817371134286351045384261982627374983161704466884894112465838690969553608146463991763851929764133332249501138772919304690112419973485754760229869399999446760916548646595488760855475980642672451278896675849914504089850863175328725275842903042523520611027781239644758176694894360971320629488657005554019812874746705477932464113223015337311525567292761780030161052434333009487866247940987263505726989291035714290126130295972623942230090968468970715377808283526613011823048914153060742979099344972294864678254339242266892988398255825069622653295509305045456664370148486738740048298304055643990627879766612316736172444926928800418527452814895586197175591685854797515933897546028928385357502053961782182180674648180051170689964917979333484903937926924043162258497473753796069029459015961680641345045682174029566336019934008913482088576476439913128020666770776288091499377458796638253536734566893981345788268202709655972678280246326449240927746038292639663983990933912814639735399011243819555962404908707371810217430106328409289514292274206872172871170630918042127400045415767264938748685765073550516969255200898962879738749693108427131042092852714052798189190749581735445077859703570282491612103749263937465684883552062955236818778455353822666334816430704083893071720317921707741385763762720318829641848493945474217118848805960555780283117539554187934496865028565784496139780398039983536541346273542465666015086563980804161991921708669756327005884524163259863847979094238341125752859664015359349425799014032627689062658300071688949253287163945933798476071040928720458527574540057842810728920915252969237822522086480667176297100228283581221613438295261865898093011373109241421180173996717591269071436289766203027966159878893659206026267910807145841616349088486331930472942866070239537919167673677262652850938863929438800699111273581244108509546003763925341743681840047415513701158270932745398269027024313735428261630402885309527741557407550181523160881808854478730163206179929025679844758017415910633712353859461408738509012339487505711306222553200762438080551744834446633611489435937777507164042654342780935599039425089374924145594531095828324302608674503228628347176455101838777885989608484653887875975473037318451439908705824109018343977233478297495445215711829594132735133139182072814876844517150712481143466307465788168549911707526921405707008492785514067882108385037306734452826602182500346818677877085118954203170392071574936008044811071025121375853441942886092241677833008403769477532074312248122643304268980068251806626426221020827187557064235563932413979655195724222235325953511164358503289050434585160097516252599529273657178143860481426469164906088034806527702679870041501705267740137650887665341180354847381750079140173638053456775797562882293427132524099201948309988462187095354444490304146060367904287068984945272157546082784003461328476064547991638727322518877435540790915688070697304734652721967774369344421763505338650078087130222365726693293044694875641007727480048615927520529950858288116363072227687815262434625803623407851308038308959060687206737350374762656509727169822666844552649523451347645656599583511662456257356577111772367077334830073968301069977929087389899164413265853605711941580481847798705833500813374695043304273796486773542400912176671923945045830579756942605536986850906391917948514371497224660739492120491212408271857471437578519540644065894667979887279612625859243789122326544204434574251288435139027436435374876999202059105889872838527186563720436505084955318192571966206322439094584626328173319321621090340549971191388901876380063156910428585264077996516491177476652672597825538189144892797062222884746663377158555168605422509573016803918027839730107440416142198429607012310917181448210064295863747385412519088032956413660894257361142790483670895671954362784926799252101157879727090923066288530616255190123636741159890648253416615814231471643978397422068140191548716913061737341093953207922122584670444429770097481738657015832699245576979651067283797511693463755878062631110102933317325039345265399731013520552231761199470328299158996825464756154478677066010673297630398291574891831024411273740977576470612858011586552233436319893040511756194135604691773078401180647620934026017817437148479079315366528738862061202292863129583149142074731241450935528632135209360186186698836866841649979396527844135260620782304481122051213228154783238302662642564402351157742116119295531430940300786996848009222440931885570794032664402490949762065646207987581814661879713102278621331054854836397315345901267096622808139707766174897570247619339317826012468058648242340919615417654191932223343877158452838498525802584095631876784302759740710452813998545693682237666868822895728827079293045977107595082855514980687300374225439581699157800939175725905398006251140240338085770449931832179301642297530613068027234175133174369528154525520192096035496144921865755668792347028160300391228226791470153179955286569972206676589254565676665636530400711452455264597374069629280535613503059527439127895215100142171625615659334156633643201745267726934833375956545302427396202960730504088436991313176397829160821175927032687962829613125813027428435971806277524344219281470943291607666231114703140874630299178138675835464784413242807962679301150131255337717366482369449765848852175663296241466766861967883962549410738241428336550185090123342947288232994709535227942456627325759115664777498925173094087017782521878893633305304458697269886439830988689867544329146198671280024591523771924266016297998453635164416005639349385787986721082413992965427576819803554417277020039612872927805361046278565629263999161767143607778300186751271147688872380698127528476993069450633908968163415268656379635254656622523751864160161861404791609944447390202752658750511800582764847238366351712549112569909728452911153711318087948336146290913287840848170103708267209337008390518079435283688275275194861562191739047010348870663630010068087153519932670476795800674347226374979508092861431984891524590020079408890868337952488061053549927671383217006405640667386797181976163023549145579513872347839909177943353400652743965948183901490708924635699774582019068602452893994978464341398987308060284635432878715068356770813391981405311231352763564266756600685383950387096555277202714283358512618537889517760798095191203205975169322587977743784690082312608538234883799114786201496406585059769146115075626281629622617345169774583874406851086546023807088893818874551807538320271565748759327957621699273730179475263482546728990361323358933821343788449842776898015786917360050717684891878282860162881528824667519950063678554531164546759609285221992936898783954728743820955684716194549299929123942921321307861774967549270179565289078261495687159243364743289847453203852550074533964867372893610812682650413631168652822474215963963123432352503356488894809298243187566556586596123819783129383023899828675415833887045070117176469848341065438308710678397726654198073488969912295627733795890771565874147609156578632406326095268869209768383594239562067516114185536651759531424434629660736016339443422693441069677312457534348344435347332971794638613457716314257618336104515847819721206787412306284879781721501618734744825947336352164526976649869023620672865580129158544955968356667265211779157447140880951298581108207737420518325884536038273317304728760508057311840923795179040146775984844550345838689437508484393783006143984334714718857064827465284876736024051970184948279768399869576732617057455584789592675479281000064887421608672806705271739120307432812338074288832794313536372601829784460286883582324808801137354749713693992492324680415077783400967659962730497679281809859897947911671719021180825557315220402707845557525025983831327008596091738912546219235272549138557096473260175689710648737028855887766788905413094992024995794577813954272570473449631880410234810814804027155918821426666454152177951862567928877299516040795780529689511036675517805673715549887793413276688612753561442273876069658913339778553244658824232801812424765046224503193025047977526976752074069919410702519850879330690272042080290633237525830803400446097690819586327000367868106393467778988174525115248307086143964881636085562402749918441804020290064002520013236885983045264678263359670212827825660271312273921582645146976605982256835271620563158755000064877406091875693450817389367363750364955816872778480988879550735961926767140417448589940534118436694294544774457336340593981970474490682995162733964969921037649893220403646289729431402173037684037206353923958193039635327912779327577799303740605642369723120661350980912021388570580838321460430998695121999938631023868818005064452019824354980549980007905651508664736519734288517068787950528979875243067598006772755492870458638288836225788640449303338133101456175516615278837788727913460477734416968079302035810418227928673659626848860900822264884197917793194129570444496889491362373267505731110004034965502367238273560275489105124740973663934758357010672290168058386548715723821517109450785443110693287983794233357413607084262985797759176347294454719176409363485326893370586342962940642323376235302515133343055898883588475864028993797852951618382627055574796983055016542205968810524897296455459700858154250845435933912488264457241178879503766215083671022530809171627073073285380161198581595571492264315436338073036745072760302055025613539420114603220898478728303000671312016601729238335266481259231745896076517993406948645614073347462295403123812807268102477397479098116360266493558580620582367940128268336543435305489398661017918251308390220277198109287655287614106994872659190826999882380432909231424117188183493638588384800138226755682560008178237510052989970528092766523684133054807948967357113509527464636471278875655886943543288455007120723735703283702200310546273246994061297033879738330824447242405519944690708062380324337819486151940289401699275790060471263191167164498328727424753977883370318944430073332181411032904756181547582836912244904882063380862128932273442431015973434399300115981996391800280709593111662140593286811991056785598001289048571196258810158018134192145423372123384236659152731106685226791382210829410039128576025186074179886888376438787185650839980890128794026668783598831116149804946177570212975668289299752857794374969060672044672783245596405458449987516900837439380044261961105505733844682768775229257291425406078756469570259801046907049264767866063886919294362286616134471297910506314237023981385293338215987577445526365276589026766704799023229994297241295985781590826576484170257678107903615886168608135624293572022450294793492124906185664108216737771154671940212022977846185857768503699707621236023571548991066020022236029887814792564437055287086000596449843390419859118823093427824441295708230528053968634396356118103986495486235298751334347806371512544969108187089089600813643386669765304934087741940582063990266705413589072632108798285749867838292849281856061610433038312998229264989495376869171947520364507963852121799439513810807342861228484417383213336933281041522031941480819950820732389278515087354852272203031176721946892441352372455260636797285955613856874172462764944188935007244450154066382388601898215293993819555816938011295575129040362119983719674753965648466736674098947046328015224362850474624279221845580951457498947452775290182286276218717089076313279184740683208633615209176982312854649778032534150236941447039628852524583569260233046854315231985041801565370375950170229797474571874626762776449042278663557697988622275152439021860569708460509501864747504696718993673394382123115888842081497988542498954021815048907186135864199914061270017882327805242671270389180280244658850158707682558213007784731133487569576276021660182459223726718915765244389318343695451963323995084949688950020803844997774065513813033976574097352848881332492856434114542202606900906010062045931461676107525263577385985695164428658351387628731480262098083105117709856751472717862947839350476621397369991057886676565601262697267233483593908957295466034930693567260965910015896987015353689308460941568241237281460723752718543888142347679491602964973432043586504595022708595950001178731206172083848750920951488404804742844741971375623220766538697970999933164800603056294450680889892460070333302417515993964287708561318782493933138782297543166333589687188341543067257264271991863640438074549114813181179645877432009292901841045218228190307896152307792048023240090960636959913886866521577076625692507110774392905338436981930426025018334913305392961770794826123809702179117403427459543367696495816157076942556865829712730613366243428856766160891660999064546446258103747639804007789485926552549056924130713395708251462788244132464125596078364875057334699935161212260719713668194305682017722926281505536326784857753452512188111841034720816312111320126496043104597715011310026578744480739369431768457031311171933176589384525743561985331482554832461536798927403614365767040988905083141909936105805258694267530253363263492131016462076282782709589170266960775591467056302851913661585401832936497797407766650852623849928253706652172712256006364475209388713363721653304534517772807607466135300991348646262521395367626450006199022946029470432774112869329221461445848949910587755011848668239948210692907163996306604660228710247223872028372738153347406192569435167426033879156778776634478379100021544027481677588576013532259093174812000379913341181975106171958422563809336765573422506760348927277316079346123397427131955508193237275658245730343532263466796008483904147014271582760785157256944964737958014685414001283761819029265886927809578704268813256997419667517740876721835315137398780496542347068712926018931732683936044249307781881223521908050527214827509398801368778512726270040666141038893039139481946203110372971977577385121466669510134954778097711086196324550761644367844118554706120334505677255382279461546450869690539882677446845858675295620863873401923468326653835434706617363234738074117879817912527428391388311771526378156938632040706545773536634082383951596042835171697755404839081035363738119943043394600967084125155123857664857565180202166088838325015760401177560458507928005588960958642456915812323316275911308089098167499798881047544624946322701253549751767606230303540621807074298286145669946588886550278214639120073730468282456301284616760899042627392960530308922619344503622991289650416290031850875468829858545391320124784438118872430309120572401718457913278337322266345009888829404004243057000456128089911830877552543937873999254943387041139796663051172406624655442102885368204814130374568329115041852460410951155042855509281270010817999192562224157405932249125498353064569596354556157066525545682185302092492732269086117259934967300656994231426282736735922885636595722259412509064535185670429927404773874836770069311252405134232062676481982247138743233148699007448590409930327465032266989548252434627712989892917528757741261869627297971874361692720667543131767827375679126150820389831105673286667371522883836061879389483690089726452501198817146912821330468819817600374061311903197485028698758317380741009048188279166728165293915575871716944612302354810754171440966279350424758715114126413485057715763488277070043316639871072977136549362946996419312272910927012263957926100057235086810325627557497477802514425462456054085674556487747089478155136841118518360269813109220814538467602665090032105103441192365834170426361428535667877681370823654306325696421095135830151825820353149162385095878742842603175661654031796260832482726078264584943217762042006924210791076013884986294142149001687303983764236622855804788440268985915658802080835616575059580771081534815627116393025232735610957884542823936204159123561159078342597926724517095101556799923669341884580473524627633494574772229231016653392408386097687868922002723694312004425495629154711878112872067295444667561502935128963341654545233336534553305796317322966385302566217904976386893061880793014027518821389376618203976524537731072842131437012181005713151758435150406410208069661443071462940691248219059315598391503195199311230652270922044345336897886309978036068723368157410800685298375786852926401233041871996174079205008040921745853230256387144389741569400712425910319799923929062431007370420920251478954697385280257268487763800813549137965310639942422789931047562251199389723513357692193354649479973052736438132746755940387660236509459489115439555836661131827178645803243508136200689062762434947276428951364487502299053496716331737234717945201319550407150767791379380956584796130411934649504785787749040633292507874942338118448774913370392435925420057598802394230880687850379774657582714341614507348021695640842562068584894776939204168815777902446152269789984580426124748350759910741075123745771414728356155244104689425223695821426926160461795728443936641604320975624091812266406279003721177367732061965513289719013115223616380748287454057503312157955054179455732655468765213699977609588643193141137963083615515096498593971740052862586087618986376780155661958869743154807864378477559983323461634817335422908458975807403257605814084156733163369620035648890071594008879479856021330180619687663038868362807792236986372351111961090196777407579019593174549134400551342155066984951172444768933935804556302975348330783961769399213679622298907127910401218567143274288716512788025395801093924903443008279156917638923107176562322713275730741649504457178881497990767817581102015187034194999047381807969921207001130917431278232874433702313191660263425514324113461944368650944059914220515005259876111531899743631113986238719608212299361256609947803214188076214490058769786714035473714160663206850221642377497063687387095193040845219301123375420840690942809572003714583630118578865777544998186138865232761660483774414624647374798864001757172457263213892365844129924995660583094629603671068087324833788227083044733430034300610906091210356293755433495707658273708931959984421010671417359555651022722815000628632755740954883546190183477571661581750606552242012787045196660553829026788473602931322181543122367091146165159581908397124137428574431206328053906441229880915220906623075286339039902328572987934447820791931313008017189382379175707162411309738536097873923134743542975311761639859220302036673074353835620288126145025872076723570200019387342336977979457115612803555758091729852973030029840569571293811875887648341624064429936548637701336927813574083998300612655965975188778389231006897815766894541780656616642820670082467400733172024155372194622753259641751607468064990451769465268404084564570002759489240526275796931603753403244914014217485451925056373431748923261220998300434875580308525936483142952973418801885989533273923525385290651734305281414511336697892465710121083852306332026919885531101708650683700833876907282995416622659934148855402656915922126727668784570372184923798036085987836556487820008594961595913121468749882292064596906308387424325852216633938210717528115843511562989906180940885605874801574514615048692791511595903255300233582944308501563387041648768696636440935501034579020108083382838738478832050589358090338525612687826357767954246412773659309741777212558026008881098399411902771025118553252246596913868370883029262954319364068447788781041192548563473762135018978823965590360358802927530927481151420589704735373417234925259587344071386526380003554842532927441893795442874517387493520884056930786549757371292997878898473582518216034705995222281655574011010891460310978548378546642386152526506307113892510433218776986668677048090810981288335240750448126871096415625641352730792230656215540085021477127952080611543670660593865733054727088946193542131541580116121903967993014522515245999006963619670691152230729409335777572755385948600015769857978675939634250763100162857882435757739896573786590284128106956812784422918397194407427889499742770639181903154598355547755877656264109738934401658882001034500350923735433174318818409344541775774254155984318549475938244523785433225527160483148525843467722352974759185472581786618466847571106125069917527437965588840241429856805846625486017907592998108515424982078813973205362125753800680013179532781431001038192717739954694128009374664881938348472405551376672827860538218938491678287904402611864438551300996294872310144052624823478125385615575948432523802157068348067461210110662457303253594091091255521549030172649413745414988007430766331371875189377281661794956648823191248387478362228604394679268759504608131010694772367511990108591036272346196507176449838403749836520936046220482598677110727534090568442228912552048599422346789752319082250257298733313484162055245147703350199229125001340984751031813602663352546938413857542163320178291014217989153505203701327287182319529102876719092279059715587697840369104787651959252548781146772920001416218516047499586295909367113401336224477769386384261481197126130347117833719615683369849678244962853231469956024266295005601440038214533445497341775162962480141158714205458914431490579057523277381123517391414484719223924973180187330568145144420746083137729371116302607673277882931315847486126557747174207875784272975802938978574684100269925949392379222538471684541292165913338592950093895336611615111039410572331350720842306439377316747019287244922956006525360897946037973362618755699316261146836070175364535296012915669171405337546671301119573687028179801580639401977883145049711056447693248855328885846793194052590800958669442981057025946173952905433594246218280602874276242187941247970638348563906719443278946194942669599099657915836393487572108425971431878634186055381618520927326534858883335474849627931875692949268148262833154998158437708763879729080544934352377951804130905758984182829879699958696176648820909030014732334788963731654792418717646228607251517269265657273598859986233717233475336935020613832529194478040621708009298041229775863136044980555214935807588443718942178003381722590023487225345519026185087377045173506547564216419098555273569039649200305691931927928786782094533987249063068983371294783645916779481766214840414171070859013189329833243034087081204271093988233449080845878854233903783137762580005892687005868366729427423334955926080924826022722957104313378692813873403109433430815184547930459347152926785902505620409274288993173684081009569337942337238034588523202936505697397244640076559316820390099057853774060259006665594569047230503213825233459227408649547881112257520939162461582911473098381758201905861278070121817643630932305060785728101724036497747376958145299061952611820587787990117531060613956696755541583684542615884520330818685529160469747326106985937692480313511709077721887088014917254208470971448410246481414780519949658835039434797969058148325237501204361387221694989192338347977092224216028843021596152759236415922775334079879148767353584132719640214523093177135331231477382443163255741549863563593918763935426356609615782839982566563219371558869808126235817316164047522340136832134819872861528192024538816869524157715255699071832397777984370523781077549301349240654092458321207106776271062492101242161488667768562989270315764354519444339112566783873696806457202816615222410502856973924346087443701923133902401364936573994485140783565439416243195715565423037384113369961535603274494879775872297407976254959881607085205638839268923194754520318955503582446455430929976419562133001632730125043315796921891933357258379360195020357988528543141964990434936820262740810207154494170451764554941573081456471946414538780983456382842308834817889583328143039857585769451538947856050078170606042499084671720730833911893525754027389221424086496396719712981242878614592315174322394889038895258037984349947602913567491042966100429155849438599962349482010847743329326391635221973823383496935133695240398655082604957044810184496875132378009332736505340575072226520999021605373796288190902521862357212581977445686664578845629203698966894267482493256306337744312273332953193968973795365484548812717529687087781661740191014097401945660544757262208025927461105201168768223435210034836022152506293176698267013147397233008092056390579481984345357105645271606537057129729030665580807154435975905389139604900515363200768238944173549909274537377897568274528743634186787071587201508763597641071660821639608683272815168232182239819907340434290947042531998281290189453511091286242337032264945587607925504323237774646547529571525010523086210230360623673756611627629263946480454946265515673343300873989373575681188440135595751790921734138946751528579840898850306685212047921399691296558888222466611346731941396345378096599650748773919098126983548635157427505908470633973664584892224993793547460939122347431604013365013023991357571268173599081719169031899707655971867184825175182173074333136583805853754686701168649287250993822643468977324439627956427607200165368488985947457024070863228208696174710187767627171466841848805342639109391521113916437069026982743339185778146323925144759788710362276146406451980767314326476773064622799852644837541637673358327000457889966427010599254117912097107796470509720078689270717310806824089414720216172276385943243723089678798361699402936122437203900243555015634318170968284158030740156799601667463132121507369177756586947519600064379157807465719043208081353264449276228229636051218639483420251432030782660395077546293298899193401163456197435736177564177192677821445774199226152964231025516507270346340376717826874902105838130164395374047410937776029458854798195439841024262423296748925072673006191484738806201767558948011338659246364470603651668720095719679057684606392719185817584866196967826358665092910179074264238904504527359371047911491560522108737776475890601804920751326145966860476309499798598403667938812058256518300203830886965246140252031438711498864003400969370027659252289711619925283745481652740606501502896285060514513738477421518119768180734999885894081483091190930362881637982964281983335025140520628019456555792607182501542718611368851188535682791649325918264043009081276832797966974778804841550697392846571389963342354768578062189255674853372705760436382398635469473346027452562994024259767515725892339834774313053800549989855681717762120838849293079407670771582350288461536058139181425098330123200930614888922067698781164928284846210754327251026923940811367640458916611666533971131045245160405015822390809841140532065661048608199920439542853747965615009612935916797358844379930994041531252072792506193480977398547958844823873131941473032943353098711713618386213024475780560793256341580305283529204820058591803528179156512227036151020805416368982081238705370676517326188925635203851432916965222699739255722809571430045060291548161220365320371316666896061987819838841644426737918700340067585769522846315353693662657271514566267764006627081433674785500788971151053890629694480041219751344439888250222108193285680814085487278677168357723778491773580026437723116820968392639340346999366616187611513362835068735861457390505061978464604485298325246786484990567182078144632817625533814967790858661013142227099470297278945796391243915526389284762295974176555002748349535691693142654139171557546484617143705223078288330838471533332811837407003459142514539270691232054843220716538027199638387439803121395322621195126652181645895956448976621171702461918020551862658406318669298581481151113333694499896553120992925907055665363836057658447481954438178535612128201165146762905880181180425459713173742543052753154310022669481543581164654541420019348087765939347452030717130755786068289686370183208699477577236002148483494563757635347869717354001083993098573346756910234784113791899787995942358947974760342637792182628224700839428815778138347380245451615708855914476323234557106295854706337166743229781191735036967319809197291515774734396038281017796355989953347289681476762858326846355286740484494489181583950003368967461546136676498645222639546980133601785168531157769781407170036832775058173677895548606800343506929662126986665888885728705428855569187382868724851311774782802641613265140177758863806398091863875290196425923199231088710568170191023564208085635301462867864390896449938959920805402567713646063474781485562606135135992196416030097488289368106411739685834176320067082755798464866934912801021501930742961710684666279810562853421705308631032862713051195505480284436780493797607011158515419134317334274113925921129559360020293876352132183433435516194408388235961840248927737773891197561969215393208811570089058062717748775019794680794027665698753808169279906154445710586667414924168707976694110849518693659514429134005965298945879997709439407033793679951993800014036324526976852435318885362685870024030654014236410989338389675304126805900441490095272106599895872021849721308594873487216559860441052614439307677916277488224468491406741429373843484684594779001245517778544019498010964951786865021893179891605341653298190248351850029146159077163995840016144768137874988953918875803669291620632102788418044929885373444357288711440603707905202189161356319250473721584133610256209910638974955945846036059391857994266112504205234580268811969764315739275193474976224444106736076695377611041568615181515128468552049614102129845220290815254390237627439191848634519220156625194321159886519114966546054626694123707797453589960787096134577012952257622393115855556611968194846198345049882384035642311424809723978058442739832236538599374895181347749963540397083931338526466708992109864909969185860265329182938633730237396530631306302376489720650061194952885436390304742993239848654028187385160789903365017684393915986867826165190397109690431617482055363861620062146363200739985502712842002795503701406112396107027755801041660699268517119434268109834190312582395779896446526233921957530774941306309343535415585392006837920833519608203136185824653719124153056062647531911488549908040730988083821109051677070031217504304067035909738200082378149125631623056450384636854326549597948555052766654301903695394228178549505407745785200377241650818765638867340242288936003996931957138854336675929368402586281166826829065813840415779658016306453893674391266847676779697407676613482219432638417160201249961393408857640768488918807983856328065948707438523308956087194932533298667713373995250316631599823663492301740511033688719720589923634278596157871412044415437964359739061534929036066895605863276055751259543062182849124433351911840415787634928850230119519225003142067381958010018583608413298933002486164919048883429294205844625350155243567868311838407234530330342468155024083328637166564609640741967595524700908970953564308114130116052756734605293604617327183228933273979544883644933430000208282396172577576828463055765278110388225538331354048552264538199132731528244058857048891071379744347594584119437635367478713226807218473926448663643805873088464016348782661356397928471627692857946124073900422803380013210447157515542477209731048480690915079478408874061290855479286328046241888959390726912882564102294794010581328249436013424641592872081694027957187809057541968096144169549613919864938959271647253208734451271391551490765944557485430484978019665132329731783451313695833278446557645534350914076284381691288404221731157426520827791178604707285454326198588884647352030549781164904347601468059319901032689850213014124571835033938129294036453126395649102575079202542127257956959926522386861363721992994030894640331159032676262019985442498395212493475093169022055924165334118215220395050314541227362467934914211818750006866215561500086130694885541387438104927595759324899414209122393003042255509665447024749140462207153819427770575235964233207031419737497101604206936464217309691442311316811266329682077420812631863104368795606281370864350441429406269477850498267365843048732523527900291389758324353903960621490623480961686058364438002829776135518040124421432589326662470718414413358579199176657576688258430279589832972800609920461478349725766228745759658702968756417208210144373184561961401306830993268748799063399687953373115215398367338001662940145522835869460599629451146466104861390870820306205806638815567230255662108130481088498027506817169006347742117643437027960751705143961772294971094184333138090328977478195844897856283710288343274185955150209739780568483987712012156623097445017801628664575276629849454024163654292037930735186899465908098346026443595315555972884374993031571435933264593565663098978479524799382354072640948612697242349123651120259381148954664473867042860240573724782007698767192051914550969577893858835725584620126597915884843164400165775853494781630733676826947589978600267639963288185870927359837673135976584277715262878435371603354129511056094840893423517792439505490352730207996769581212566134945793580683373947480137841010542029672017572123554036238441769589708745281751178105916385030255604063767565151198158028923277810719600761819947914050023373943199571003089524538014870545817141804598325123900208829890782827998194430723428738501512192072922472483466604680063772167858013552851712091854191021458387044567480256873950160163021782925331576759228726563143144216851926509449352581062900141479085587336926514829838797046556528110875565105692940959304215469623004713296893006448770904244632472695846591885675637389185020171057810105736718352333486910475067518765150162738675974289236675703165830883312987140361385614490988175583419555141693320927019268512473086053240027324820695998977154558578309032594726536756997017299374824763752356007790183318638885802845028120222881406047336840100690632714962418126976330976020885716213276616706166898961763129148438743549245312227803598807462684965906058757536339311432678916556453718122605253648394069570787613150612621620451223399663938869759522636924183336242272028801263414322153259388725070398230333127682748038778964698688186546016230518209016718339789181686510886211851737718877583651876324286438669035341418108131681842466411726522680837065798109857478426596212344140263891074096573226714669942936939520996231174139119930628759945929399676946264821818843909666736123669108873179967073094014166346951964454113784095234453665466733248785713864705323165670689948933597958505364594899424622314484544962066956170253366270643753768734775872746800418795729429531699169434393488381111312702516741514926811270629074203681326481062960334609507130390555160727571144742472242920361844098712765433930332385780753781886642871386203941866494905669872281861171953852809560794939335363279068977473157485626743027149313828204705284454923832998169885741954507955166062431412949924097644451737833280790554273721616142795159457321909737826969676533179634215067847789263654363540968611495901539499295515066177029105767763731216325223552857843720015078137915699364589939598502554257012514086501851851995027421065748419218331496584419102111498380076354416310208563035679643781183530460053517768977999167540550690973945658977622820359333174952718176077528047949839818143625361931972774334550847614393248317534999311541785356387774736678659872888354435775854015029448409769923612817123114766033668957329240162776774177469013722492007226455412911637227322207216332154707320456708372774739138026035924649321724839555791085718883789505764340104294890641443347716434565798238687221079832424728530362707759133822675359310694700531353814742197076934576659284237393018154318771759443683952828031575690443898001129765049120008294180542561328534574011535155572123890821447661424318396934281119571471613912088243636446864897381773926962849340301696067374922809923043651971502232553198089497197315868034168282053039225470810824664620328955987749238160251491070542450369558729170809939692789434714981280949413316358678491146176025763299770445566453139663833869528253092040837103920301989136953994229994149155571322097873319365637423000258643871956755746090063057576225323367291117406280347592412696301878631476334979244594674772686201514288291626377678920631786259017398504388118766865906067977846840301356145463670573114757851620459159548022325820609749629409919068162703190494628054557398424203190376177632430896958440875573137647086870679355775230281979749450144626855687825986085125836976085564124312904512098712160899019458684297090153216097767238563430630231228212349904705850933852293583729584306703180378136746581701282029588988696065859428236549977889572674676179048083077836545568606338713184207125444614887403849947826779426689481306424822574727540996193148863553084262577268340772861205491023629065014556133246674199104379662613927413697286129206690455545101163677395863826390590714266070771878078209374296438135748942476878833332770968342715324715550419556584169835155837141623248655754286862047462350311547273883810003100143887016754331031366909590009560718606236244880597187280490156822705718683305580413008011990825307515094261823432657164555439780992321469006723243753906796496979738297613132554410027331306986210745589445822323379528883134671166941588278017064659881285867822662378728084070557061953016607185068178295786221741850117828000667685337655305033853338661725857425280952483227712575296366775243118623678430022456697871058130340559632141040965707203013907420291920983997234913128352687093771641359365080689732678589382120799602648767079741808364222539413170229547439762543432680342244062706872696712480335992359778950159890655134667538195525248337574735931123686089752526339637722817373060417355861152808753747677138349946486072600061574185673039619411749663823193562373638440415400067920322083193459795586023109776852191119293956450711071422475327141106439432908953294983321198344155118061584799249597440662705799143331421547287537510184426636959675456364469354448074099555880798153722444621515561060186608737509036145020137692565970150841958091712901091678916258589130670328445660089792872008639815701059599665931385375008836155594817650784470681108883286884558560002735641511776472804102831728823037624575471926468689163395087929355732029242324883666267065290372723600222278844286227092997245696461771636687852846672386223388463128354841547479702119516730721948867993205463722856773972847643952600863834065425619674264866569291515911851619297005181928579507146858651004198096310505483905859734635099475346287262754686369310738793985357000979687095219261613830141167950126978104429684701997278635941483318609649448225638711400612386718284656479826523897820229294138994326308492383318697152326898639761948302116568259084355162909106442099505172358300043992457642784132545548591789780760539323889096574214302200637829592923255011959126988743993000056160399528024783707614092569300243079977209749619970119291970066953685729480375218199491937993039003204011064713115110771605525900704387035893368648941595276705193570227129402655233665019975917073553920424029497427988632748271765693019827083359782174303651949976608002822376608856807903843776148036557427374013750674494436865658560769330376804840610438418890480041059394743802430934819104194896545639682270729964502048186213253400225022129594043489641198241069708782564052427373283156396639018975474735010456747892350208985037225257317454925177100119456437694312535847412643434589284988814755252762280745012892978911338918198083100909848352124238833700223099318132847592732723627228460732321767554880108851256327231545576482222402781868404577455065758222423650108152267054947161235420193712237528595918351077328551402578738997395886359334385451867451285666666193319055976136461515460471785325095522358748024270476864216970893090544034594501544905349132204869505149067374120500040626156254714619864306038550987079197667748412719459739034948451517142899002803282032244977582131603599262417783412831042391082432159956075351696646962617552529467903472673921375603846048268444316450412005177307698423006610548371604339327389980453726988584357495998783826706465567015087327619473885225732674209922907006549178074594940269100538636898056603830522689059883131624893074614281916312080249271513066304171429393496891372267312825153286998802252552296239282899809340408274431993602921550504090887313281781200193566641080830157421142964188492471369405955308500939736116756331118203844227682905645026189026173396037228361883399141130377886667953751748393537942272430480102723990745246747224185571965502951719307404410162520891670094608979942613926973651751967116583164414191332350914572130678680352316403169946481702981741244118371829798616141977373379038141618029791119201005335922428702096640769918996605743835705141271566820707136768653056730493107331604948144070093728299467763674508199877161714169061719067743895510334241411738000702673036706591925647581045534126689635622886325531805491202562397698359217673017291712287444091180974059354712459823115441670850477543689051465394362267855772378951147260539099573231690751266699827176358315782040224411959477135646721405771516360753897020260004354891121127360339677973712366771441952668576719988228438962030063628218650798746084744822966497301551939300411262732306939894892798061196557291262115380438286277685886134349867008608248221683123057341548415901574581725110006499326457470795262679595682197688727406564572691494517590630331983521870288602512152834196048709563081147723918554729276595711324198451304281273215073509563850933278060004344968213436170970742646361827996008733473317959850673743091555223595528319485953308821494905371671896419421648151790055529520274193273926883103682985452864686724876232120017220067973846472770534368796696099872388859785682016116390780848656174666943794878725713595621381430579036758296572406561306583543350481670848101334532142175016593769860947121363344891043515885363228384401913849775004402500803392934860509407803428709761270702671054426086343156791535476043045053895337696773271371419507080577599906658621427709762305376737634866119653012623909655327794967434492045266981225389391233440978339731847425306172144392258859072044478788520752887241945647404536917195020074767518540892365325804299349992550857884262314254042081766035481975589757630134642696961463740656204045229404974557045748496953397428469914913803158704640625632462124375181282265802413659969402463879831107461388100965712070270270663103253203643916766830803784358387923610326799834375596250337174480972568021675887788536223560323512036713492558091177479018307288140205025200722309322307835507695548472918760329046236818839686561901083918560573957552560830035084965558662552422236299529880906025197721799739209380903216425636575456427761854729793362220877982133152810295303929377442536622561948942582231895473293558601371771788723430940486860416404231002781318746981166657528217343572348192786427122971618229189667174688494622440063355154480630113519746584719810574605987132332692711625109839182573636615673570822981589213323055403497330274291139984601752087498631834473219159621032105644488886288435689437370306001238770607905818870864227370150468869244860201451939597653693427442906222531335602794757727436210184949457798457797515263561596786837762259928695130636214642726904467079073001976150069879743409311535821486108201020203224606155736762158261200063668558536630364780873545863856694750240801900323056829501900571369053723735842197361929525706490748144041560574820674197268159042702648398564356189889863379283598817662868544528614089485186777331146505262162476979755493010027575271311394538775706612415883111512122086101231772700670618051533023616215315488816830010176945292799351273560025087266071062950033014237883071869243686250758114073849701566632491972887071275750395237914651692630475143689124202597139300748825098819212511890759949495500659861832728863220151081580228762934001892774170005222900141798195384215155520976964083338110047171170352669967666705278453249496770360571015500730655891443675155945172484825914943251573563372362980398542782822531389004968547832798323869908679931979709748339398515225377362762441789635096531740093898430565843722596042394269979966514597451728870918164895234482209753614521426724566443561231087252912297141322402040143100884251220883851801266561206634598137873640661900506411063910207931326269891529846418524488531561506917520636498179795389343729688758142743234270866359847837099620946524654552312344431454002517369702276217411570858799916571754052584840051419271720833183416014340265788676015839686782134415294677496512164963765588199063256348609166350675124007807199436303906737672030257252039898034903848291568961200862867966474581433739810402442380807332101567075570435250705303000103307222718516700571231915156507056268390312913743793416312966314246166101395700179989719768964873309620602264359577999717863203117895723375366244992697740503540547750289953248381734529453372648121110825506291181642931079965556978369206411222176745899872839504077207133208767041219730518986691727950965610715923059686103986114589968573983561084137648853684176108316655205989706664715504229971226143535197150925945000704686582416830531975684477075306090682496706639278144287756393664046798808536490692106534124153667783921737653803092501128755529510494430261436252388322549274355920876061913336237393814106972552307958714674134542981091053328790739425908972374314696732385139495683473887212716389375874043005078135674666531137977965151730129600195642168905634623507722284872673372915594330196619042666667709451082709506089059094637711471098996095582122428975524533686479034002283692798914916548965525990325351310568182248919078913914767107766666147468307914172621074982446500710161041845922525091629089825194377779558748235800652743499925448509929051927989032445659288879148332739766371589928646065700348742316182686410108130783359723072220578451958213894184945829169259718341963224603055998762283191079175389670557514543787450750706664208948694622023795948756601140737324638713447312794967829478357891726813203284615343385537582217727008661082793858456142100949411945710681109493611876272852936354167886148835975785581433652581565475250656745699040620073950200736958476221245299576276246072669731766385458675010782810990042622117927218261702292621245617367200546902757472413831012289095337043048855660412746859873656059170900017021001331924880333733929548572422173494404070523552404531604104255219580195964337567101442060751907803672319039239245712588018281371942215590615540361744442181431691533025121952343412971666764658179530487737454175292873695252544068712250342539140026001846289595986639012201071557737475882348794241576843717577164079161904031580505159192021103911033037359304791516862704728189295940146701763861387470094303875851751019760359616758252551201120936898172209923704250621349068032203798925322649814691548214918545008841019071541849113272069705914373201211287629003236517798839959513568756211321721828507016942415141431301964790441697303689052655811126796755465551964478933576523011751402024852001264861031213074920117533139464484644364387165199913438763161215994595371044750353943843376454819378846427793484119144491367386796228331680963299652822600427069658632112981191512046266872925606278130770083005066612052925785030666686167259137598147179513382052455522579732166922397111356866010578491217942941685197408085879643769299075702516658290441812040904699446803454484210495410846240786316922101114317814268841448569027339714986709213336162360500309598462577346009289644142316500166136285306574849865491890962043193352236417204746485287507263670613616551134562075257384337458977541425011829136993863011284247038161696864840551863631406817322549658281049801146990337077297871790922314157500544791021829905326997413687450376304205342976588932844928708856994126567136702198099821414298503040744209007465384088748809838994169274725856635722086531765490561926425840535789707102548446598718940403137374788574000493443042710062549304426359129221463696114345774861800842501832797530166757182098017510286587723379934561771472299723196676997880880097301485223114949594973804739946875307186983513926719296995008765168152854963771501477415267420695679952508980220805162191837060856157053238627338074944856194844998556487771571141528451784342490327442527137233944287246112600339458858257869982106355974007342237214854313541142554991323107249680864541888927448965105162227967360719531069451611027727216552788225906961279391663160445729561224291557685552257626628568308480371915559375418595193784972337284665067745394714221066760795394454169129651917738042562258963854923025934703873940527026967288634198259323280720317070476523241963842167872880866048771207802928435402650316417295078289660713563279142456749332573850200290464938914097205071695772281075593938215598043172541628956580124725743357617489276166354068473603908049945221234213520061377657850278304982953137450508517706816652290112393937022605290714525844219812691288247186075160036349224200924129900638601457226937275145298101797333956352808684619598222435307925813458983133320867741611084406745788927804564392640691765254045942192207827151092465187787905820352151280224391982899362600994252793126392522052467507507565959599612313314592766157934609729651178631661022838572568438908855196067454403693736496711309285473074700388126435473846469849508163132562862184151621513334926060898049997034173756077448125875089513286412666205262581698241945039075822227564497083232392312858005420984824739155518858047061725861327937587839563603093568588653174087054224443707849484619313612701336342102155032010328279637285190231308742018243470327058441594603527915257838568172041396134288439474974993418398587301991402366968002840683580993363424407455435852508812881475020430277055519539131939215952200262289831403219150367187243180549850886492148842400427370142949107771090218558797342379393251426388362116047986352272431340447056557461398563503621016020284855815550119770370469477538663863547758398380568169823543605074624920317447762083144678992698998982055085014891275350635573696084836721776451407270683077332114304684982465447827238883735561723761763227252261213098972571857081241757773161957800214190019510411999615847195038736751717945309319519854411667342173675260305236933949927495329199218441424808536831171809095322332630130528473331926999635889920331748549460598970214765368615029803600402522658592958113402850905315673967189696874005249572340865060747127970708958886213946538455827230620630276340233672882180581298429916727731873958962591593217782443824115820079408283630549393486896319810903609556835711483861080958794108734009175174619275106028152379712888977365278792545211345328374969565575742660223254420872747194746514133425929195936594422308982183318561185390077733740474460163169638178490214275636743315722297365427742593843698455411917132212400468315686547464648057032993472548244165118725491808335805135125783952501576872763419237485438577542587438666765473455752079907546860279452325909826132866482115444318561148346120506469956730558491854385960090670813764925837741919410539964307718240297271013435275490953442053331316336520803599009894669801393376392623467140427776992429399891722640738359568314447017191519965623127545308257498565526757769566759531052265423497034227295748166867965676939878787354144940011094924203004102040348599291221495868618298570985840988707634778384647107062391682919487570149504204503167000453500389957861462184189335017811877481502653658363986698019397790068822970854486304199927553833712643562178498395912111304941802971161694342024833491633281245670572932146635584450211208166205858055671533941883974255950407055928013130280045119018537058043690609587450744586438776381168822660117166218373850813229470748927195702205426039111864403977765379155310948275037666328401861539418402071922879830359232061135524872578594264008842560551860802104446577436500401378417081466556815133083536404190161502677652015150099707890126148905870794224832941467801900592335904174925954042589348224286025165756675191335891079519982381661726901900573017366707118699345623056122562693471643200914516809262339076626340116280848755117886374189296845835840013186075646042177951128137214495075052365660727657024261284507763267051462875014665093949712465382470012702753336166773086426852462580638201878692153563328591621939934694485921750368033198233362474514275803999439364383308090425431635935409014413536030764155639242667642003296073856386172924338715466036731520724202994614826119679786303642162550223615126490050241410869866625991960271654317397445849511667372343500143715293528380031170136623621276688314350360911707592356449908515648209172051518993083098450061825689386980857169923741985830510702612033429861217483148224087009253750896113546051879115905255177355585781715508736580791832096640836066790091591985702246525533599947286910721160053166466491227331129828212725010225606667922981865279310334915152659294865246678901870195857476445847708580593619900642182380614682385833548298646881001801994667085641703131039446423081475951717069268987483240055158730447716610079901997433769336394227792102924205251459787691586340386894622008718980686485270333495569627527964908761647442088274196937566753009218944669769298971858031046966711258125773298173654657250561572052274879895682404238416624505832930306317616344024792860878626155051134917021305376644149895167068291340036094926409289200173655697669777677001232464870186883221923754731286696988146991263310111177781902369116581889597811226632834806258892796943532250461048689114612216448781791859143073188582755529708954488581830837640427585558500734914665678100268741372393210612205919026724768424270437597397325044529633803729082597055443983577857871336594199487645943143641060329016500921169875640410623132774131393398391704820821835598129319922427311670280461398526779323304221966182009270582516535912712989315216044767337001658286645904113464772980185595801690934932825150345384369295156309656649397387565608738614305672254203082646548608851752928447109651296219331606634365035262928015944404558263446806793241741245547840443434960336799246067013573881185243016355024899000700274562471201263716229105860905902755566823370364008088241054099651737856049361868856738814495293444521844697443913966285372950193608092397114696168001987842820907980884561976255725265643794560679445402654717338197130351683357804550172595255616890526539088233557182871512201820287144302902354267738828382084961162177414057901644701673424424054778538486317734883492754964964186157930749447627868294808470057560887643890671802590284090644593571690113559646249622988906870172360792173413955401080626455338442956903392369479133343411718574858638564955895847806462093188550747504956785123283654713990869253133655210297881893587980901137092185500940962355372013687775755806967805332801125112333312513478515411407425101185772554662612013345566891727998661062885878813746549246981291435417214746186554793841699017005069364056734339165020283622641514389533676605467716427370578100611271145046164821792225881990426981735761701119540460071604262260931980934364065011418118842528016648850473295929215462881283874799498722647877602605791588386381260870439393504745723971428085337787736144295077913441579125795712093953815640284545550880154596719415868793316240868769613547355865643880050941540358272700624771791041413925679220065062966756759762487220870045075804093556893390540581955995503026401088562358816630779828301623736623832050666188025092776912883597514482131788200570261624417853741394537015635458291646042663184413057562478729580455113959333928170985348441868172509713437475741885306316269551066438546723778873735201276803552134175745085612782275276631608804448104905283763266739752470931459877776890427892856966097002974676089518421053334250762437804688867657985457599051101472078677936332479123362014808689040548088590173612029602504284622323619780694227107366568804208026148443855099706356823711786699546382541220314804339492254995354494026376554197574491797088914968338045155592912899961360493961977754449127957053958965985888541514523799800220775324080703225661998006907189572078524771153887686028333664694492508737254485230999238181660845880446457087940384697475602504210342926352409447916373206719022679488192341032776315692527337596542436072636910802684356603185530240299620893418056899614301157231592243804252093512506530774499129384579647402229417264437182954118828828911928663311364735148080912704632216195198185170086127847555938760920030385099394911308710558523224642582634820768840042154000264955981332068223266392392046761364736052371570919246036192773370018653913952224912116553860940902725263829263880603826732119496336305370331061997378500347444621144010485654600688544834520254861404793372918400462952978687097404428744513920641543871925379129070793001126979585192625728831215903206346258172654873652630368891825543860218796005921308454202610075907658975635613400746541152304474539272362428645173595037596162698683711888771061387878425839594383997114803308607884826860656260899296334071315202059093325993162526872323597661951719814602972682831685928274114736754386561157384724520456076956889536830645514956845881851770542049576498274909755395215417516391205388184679261340442333573476026660713669203204425683215405339130403790217709332762287464153318809282545225859482422101559915368730273366421545664064094714116422164285207864932431773169778183849533103149189683559500386758316532651907646484482543848695729233029740189234415653435747522500147010713374109611684085325778497959033910920489496488276935901001379348944366696937748145204305865873535210945969803011945750911991246408368217374773434454718734928985241106474128014812073309046664812598322769203233138515693585285204736623710776084285742769343255452246789682616504785389400449480472661519159753451325726700149413366590486205056778784666793727635691092099578252277078926606956388237212786775169770889312083840660569061757408907365435857971129697847067389192825465665606884423856209769925732693775576069164328275379906871637739910165630864007687605130961657285443824476646907537848845020137771582611760397853382690244674880907169596079583323954569124300052584940202213270810599134058791912631399406605925447578651757620134870579007723144961143871746335069991476482940484937853644309722427983382351021713529898397573327182932654703528348372224791037326957994622055225760441680834079699895725409664606290077125213028065790638753993597667959950475666984092739499189523496206482880749719144858871111883772544206763708062950867542873087713848785272106754520687472577603397396876914734176219173412623966424682219281684829520321137754479216083678286708143215692334308297932426071942993545762502845879261780780227291819788630880229139292332207353503598967424948466443220309713243472394339691272228780679626941015964281146124704920355460035952150894935265297725787655120109448247936044187217269867147736776340592146544220858635496294175766077339722126528552621258535073819179999989318305061311830278421072846743582948680015193450116621030190374176636081840831157752718031761718219943042790238048081312981142373970992980717592841133324619287749102613965152486699256512420237597650774307185114624330983385752856128002920450053042643842632281531554084433210320178962025824905706165622994213818662362683663412883807895980783823371177329251002976045688661427802685812081294903351863456526367733142154644147748238759921302633990756261010401727475991394024751657090767824887340541093499217007985885797614639463587264856663120084913723542165787430373384697183490760713656955824967931372908491923074427307700582286037341946584787921750241205157000381754559019520946827913120839070910376867847672516961632727716917601872920907256636047136163842448196183884251421194990569586559502304350079498535132224766177745364559053027324012313571451492039804048064685052225673242009196753714381180060845093251691754508203886020457227426464949288488198327406548407741910125921250965633487285800198545001689055458104194878584525050410275396271667455692981577269589398087718516960607845429778264518642551561008768483063078834700606826487796538092708206780559689266191380564189590543228732980533412586150523122142208798114613169813229760216287099961482865955571821327881581729573371372721848271274711483493772466729890451380329977862096828760679394945892598210394540117306368984202359536705788965283835606695346456454157904783349890710424153969248030367591694092611612792792104572408284745753116611943234376752979271062203787638313947700075128892499600662266580860119730943952628620602496704379795348111008435252898566021502606048934249689431453990843748383912591164362446475593582160161808354910403868909470600010941338097669778492339064308833683383821739312988706235906477933644804038255062563827054557177004235685652117690335649730007180365699384794620816972930427399517042503880566093366874884773273412004661472928525056021961727620545086926107306427590076604251652756506691091779778322511277172851026864572949621767261186564765187608052301142147576416736793639802221586508757331277399531335992463059185739916127733572866585273020162538776584677774419266651903090565171963459386528344077725792945564032093388139421382137308622823075025242032700611657238747263358102005217544629050117092224915707889129823119442005318177660772485899716204588395509084454247273373669482582530494756039220727257520731689118034080807868871628840007207459143124524466108780510021850892688400570176997747300122035723092336771787632660511800302069410582225886428848376281033899292889420177903257236541844189985746349972630232334226327028922738395476094766242499243428942497914183523434980934811775546448708271587234884650944733983807036084870050451716721686728392090221392404660726790361144724928842221922831422083735953992871140651795380310420110511854584139072141100211618596601387750496976330761243181736761987659617623619664746502733309098988100301360654324667910920520736274206998917178919087530513091311824073955882787339652062728365784213537665962245920940538187866806792319759039311748105047003154398473040625459359438281930848914848711717887695608331887162781924922273564531515178384501863979271189512463187102494712945547190758398549156165986629301402009128777329510230364910421573596755360430426217685286019871316849864491207936698603717685295365694657730440712395409331306385249787393477695995778863082107332011621098959284848292983081510669649876954393071726755801845513998535005588104016967581647993819969646154483178317577122599574548543433862104797742449310277495922773542191049928380351828117499404971915853051315284695012401712286235548476206104075891663715469106791400898624625610801696651975833279447107464661819120828277419360335606545349556812512742938904400433601148481516124466490897399975917124748297759242053170224279804431452249897149306563477738808435887841993474687604347746061736208287901970099693688697422999653169911632332090301188920686957743449655896267627225215008854828505752048255319501702061073658461992824563631806735109966612047730419729715441808812178468967955136886954963526630971406044609070066855566083677866025217908155944273926918708722925386450308108496198131860364046399214577476181421192601587636194901059683567119570186191880577752644108280679726399549439683936337383069139739088490828125110895027388396332444004886997390170275795624569071693310760487280856819557751751909736034781712370221837038473894379560509781547426734014082721982960528006972480647137360953066397832263422662062594398026242129837333350926404601246193177240428643490602475449575191610020789476203277502904420342729614588078975028432382770223921004242472832103231209792061091150651159524475227719572108586064523568609276605846199965578717952205417543586317253399694805957383972972785438983475780803146458088819340719189342631737360524553929574465517913564976087612056542257368146863055161882996948716216846251708168284661195930295950568165033573113911837497554151727369980604364948704765590327838691415984764266887586554421024062405516254644620936875600185669108241573408057498995439172264073624953213957008063627302527768402429869446588007955382609774322159281257431032523523443151094179303114416035284758676234389083955202607744734009706256915774670751421256641615573863042995368823357662592852018370662099422227052680234578056673789719967094880123324607894731188323202924183538161399245112696230869834598152382297121738351703646783432227269530777088476163670576588098564645934352350440144020461417132990766119434278565723131158679519240948474560624967334678200578401356361481083263163509077889191401761308518346087866565328369897718150653239373258099799650470439374205675503478987807222565100002661660620015128303790750445867564649913164693367017046877695063055749309355624581967333800185224731362237191658677299077777644898486414838122597491827451310304756087125908204659828943010485288065403119813662467436422782927520799191273456078800056851254172955675597335836345757720137256984586555165530195536030861876123705032040021191013163746500918915095411936233297950159083977100672105771460476158370310632008798871643425258300156426551802955904075437944097965801021886712620334250052830118276271288067608936676386246222622232862572153281931178988791703998548156900671691793873371060575485527953610291679224806054269023263850370776113678530914951919857262478372121291763627546058303000393291364677363285011096123212761281421965201895328792714658650205548277923601053847929271306559375802719434363177500771599410067976889345222536877499395291329121153929671054172951415340231922545269248475198176016853708231561500285294563540904165323019499400589088998126915442287895995636881746863043763653088600066452285489693605881086646965801605155647827901014342333913086019004793290588245995821218307058840781065891217474848616623267109756468773572942999814749877335183120235333975594339957175177094964649577791132467033389975887616379185833475194648875591129274208424603190615736785501039825166594244148619203206998251846196485448396378540552187633920847215427335150420522960677873230623639964758405573537419249571253297270834300051163333260691570616941879188789129511082407610514593475285550000214494933263305236006406078046641988711729223422895250601841297012814344233108406339612026396629567737959036763656180717113620709058158305616249496374776251369206648336681318487740599948292140129591896871331826437991511595095808579492732684987342711700500238588023601047769887247600700023669308424578741936557867545462883964752407576959080053424369248581089675218669559262833807127044400068698780851185392393452487063326619825838476391127704806406308893131099926231404579404238481012969245823394234131946987996555497198965534996725436754266523789108181097500610272924833445920269636869463414209316602521062141476288060324266185519301385854115399393072244704937322140837885456882256539110946584282340464571685074981187609365458196297020722478750626541083835570148416193499550047490469010165177763702423218482964888089753186475759979676520641359319715884624968311546215004697743208474419483671772173649284933210395476173202866829707639539134296482258397424519349827584836972899188640663390045486179870664010498867502436466852701834797078116322008015747561534456176568527345764918653513256983768871224171204308638772276837004801396529259235918828866526190740807307610604572797952897010901313212130657739822823926762050512438067028399380495152827998237484696093126338755105978926215291755839496229998756069543128598966917476749842561040139978113736601866478009589759789228376858764421210687499346777334536962154517803719580403882918824279078121252329035805719065062114493281319653316713726904062850084677983973101910080490703226923509787743337742025427187967995440532017938048319854369959648055033679468629176752220040163960373492909560916831229265700134994964911167153239670083862423728022469012309259177718835780394650694660352397873612397910254682535319741374503515963057326165490690064092737438376016585083865649662197691719069211312350156124069650670152096442234543014516489193231772984641536029419527388368429209257163133884018089686135927694163031058301994492150436395187215407653007163744765117389002430095196715757851863724863721167202778758069299375991016615641485145977208952292053007562724158470033355613212287814901727521028339119448829535912876065542748083955272692910623257440314240317672549979459191588810197586604454718861396081681088939029679637690074024721137065829037102360306497822030566084517015074873328814531117540844034050877519908079864130786874232154382500071601567445074407834721616753834100763230018407735879260166213098475223645812980363337354502729262893332102123062006873040811616413681157891345100915583578523753603271306282598301125420783391778618768344058761552790956395036759941770510997300980823109601498220175103035726623172285515916821504588599588704267584950259349801937159193517213352616630185991575794249003061577486553827007462600882096113765747130253905862936410284833260128638175578033044231529236983167811240185680061591441594641146116995584461035185634968894970528496316791317339299818249500277323946778051472724435222687710572482371820603466322990511479697162677239843372738372237789167576399801557862077913481294827450227250777989135380278095025285398514440806474110824390534500209531566238749888406249694825511429463509070320169886110167973591275301525269704792825206259773688249505165933857764131157870807666747355004288678401059688466221755564785083544031449348846775885000045815661795287320864954983169820617772691323589875004584798339321123920911746297882061028501688335248912745496319528763368760638823032116841744270344285731966677247368697054376372749492370330880015697950767443947662174339853667772516878852454991612148679216971266921908536944554764644552427248551234402732276998028801147292282634998402884618379438194327149287623160686017676082791336555783767949625966611607367537545071522993596206217354591960643131322063542915468553600954632140543027044644499266948913154174582351479479745552785853782355108655021752601191872670626445394009946209102355097057395233386337508895135512519036369042133802268302666294870828346578712714543587274597275816786785626815142524788642878109304717344872119565779155042977633174539952959509750546526728815829515214207409565277077876899073176295200842493434536510702921064576598491822782980978615285663632131661308875257381010593650365812560764818087942396689790493669617409867446702265474576566039847738487304154507991340291632055800697399154346212774082895623356770893871321332844137240942759322466417212174563692707993080671893171869372979098047722717940625771938085522026327128342056072811065780862036549706413789302580558586046595630376027464426148031815903748942582246195689777711910424491587857163020511038751181852111716764396809009076070797304436899353412028798146636181387228402333201890395073699166641936599917550103916369988076834174524302334664757964309894912099724079266087013746530008205906724280481685766083932178354362760287510679993612270975311503002930294864158219294584980861266070832475692753299366650707682746852336986439725953804743322237580827294419695949484366269212572689816660927682318009586350143012138149082533923415967601957746595889394812562692676592747842316536032145819163759261729281944791295649496968111268876940737372193993551153005734314528692427240139626168104834290126360078182158662709866313598422329086037295158151267174338576761309427346522592463809625621503451933248948169660591630226700281396277857196374647052125479612581843268972840746600615884009270725139650350393677838051655791827797235799979425959426695836214188098272527760773712349336782963400449828155330857777993787719926734766444334198916851727615145898761606857070549813501824081517084072859384390373236050639998194065120090582282921129903821944887742810601560334406845804719639672400323303684544969619204541509464105438679358007433941057484778766903467080686461788464018527288625770989349136870309460801614579221805791538701683017083114770043474034320911139234865100587907702680842138822406635182444080177303551160042322627117783767978545039926768035101208519570196915201416195766388308556642747353532604890279379868698474503444351147676366774478654269934451289738496234411875570855263879556133657346420085204159095544018693815470035905187058619838822917624423105899596081819856640465800678287513510187730249392482062119316469312586718059876661503833284004649075868941128131909406567766360395229176760361760471180853724495018907621041327925870869828317284728730984397850568056885837731082848936490962025999047290410617692661944068290704453517473973358856811369550327691440689587356517791107505466332845935730465816601548512114523695607574488975649532671378581462761099666273332431560621872067610263854982363047342109105966775134465836234092745728101711365915708714986147943679341993229166878249884565006147083866948638608097942102103294279786921655426049309831022946182552046932759085896428510943914182518905419983554039310340813909277523602452410215155068466475906008419583037673794112418059415478721715995930687793393611122982562601084309331041842557818367055782601062404684781198224167990316774831833305589903211428828203034854725186051505807920751680670118181872041081760353085512489087711554116600859053502485143396362886289452646658847639926856383477016587793071619310149936462346683785875675026564924981367109663194349021039139121511677325119681017999767478856680851441946808626687813788345606152898628101167973089737083116389604805112776578940280615272293931767770670360948305577812800727173373677817975554923370759501243459044961640320016254216261816884284946425100089931790600075311833386925193016673422608073185528721191067154880530192726611115288966963881415363869660429275850354216560280525468374710480398164695868809605068507155008828702338324378952765137968144836072917406392430087288979505171740988514966485623257209235621207491551666342402424552323478063000487623915115835695670013682597396754476639314311390309971255068862589252719761043371556617734527339180986248821894211082898019991735229131047815089786352398771943704184344626993463272088148432689994967989888218864775049848515100237554496926025614267433092626858443047153859055829080504324853684880871675428712021043037099673713990211957207620484990108363333114500613169173204202100692668458862480115884649172737541550916167462705764643224499892773754224130118437414204804704030109553210488417477763280627523543077801481720197419949652309040652075610912982589554926037886463657698651492278071413566390842640389427284839781811388588734052694789843745409367643321139139026507194298109725378907156142168032967066704740980529440910143956313168656586720299220713841579862180436395995208634641351283511190907489344775288741109758826936009161603211322403840410386834776129156198820770177561163758120332408130340440943954245902249551073911826413613785819282155833608717557108211710344640619199942320637468166466818664618559652968167879436213579107455907655188693546936596846106956073991399067616428521028149703678262140337522417412274696621795045080103554332769838885230968879108931196049056825182427514130468147342655513325188342294001771197578913982978989999568486460172620212091326325577646841548450898251761924339496162518854492326478817241874838938622519025996179885384626324641006114122564265237268689882420389084593994648816161565714923346581598577647061562029177641056266789306879433140962533062098223991153695945722332886242609137239821480997961840896589680335479933711704764994944712593885748128429473754386388963508727246766456197361727928841560023515369258422528708437534067271501242858967042125855407312302680321896082235232124567188009091507208008549613141961591644543953521381155529894847810164114365122307298104534885798005904849424258084625589434517700527186556093088695609291018754361303188684885132851177247496836309035973128363902656612002688629772385453113798805274629646038776635705458763239929432415942196543234211226087356812545906428359846443478472334855841688976573315710571847475479842463509171075643224207499611200891701808434960702502089501877478644411720126729637776486808421326384799074744248732979665815142751439821517607009031516382271588794365697096953228820880897752471817656629334309499393433846534576775287270966907861828103831873823078638310582256613201424615049700219437841992042281714206144041962881388066202627930977463822607821690433367012781733030454140962670094533278672768260137710058969973047491796862366289143691563076722576818071266660359351184761154258003804717050939579850447110495664393700944923287870449465211668549058330922979025990003722433013350891270324464282226368867037496801040731079000255166043907131892252713606356561610225140816517601413122267690810460092623267383622358874251585509688259500045103521360329824056038060553974278518686687244508176199431140724745540296810438884356572050189208509198488529194573495615966578879805242251706544951034396833255695880831340615402041254345047723409239183008553005038682240041291375093444395847329072738048882853540458462260983830048055212181793265943647874166270423971865022023686514920035934909204863431947660745296006924346002125413072482634660516764389910091817607384441070882866261737200173276357558990545974884541884677969358421768282722323224977847682447867623308170782430176622254057285924619599930153586603192472909393562692751242207845625145395028566406579888351651748378295690709508746617493316533638026346221161022873679224299141889566426297919629956239606009084055298662303504849872862032795877060918426602536239813476901393637531675048637535954103569231581059877413434558625574775084731334637374909021984857295346686442680331316992563386542833529607831669616611071040975619058105566433201747411512129564722260750149764807542136427038642337280697785711724904998561313985674150458791908474052660805613555423001904499035650587649845724143032914426685723856546225679611652415051182024017168185060508073110784717182958675309247976144867091287976104601556541462145734446907660163724772452481411247440976969944829511692723101807138785219985172282605755962093428276524575597004321420122833596821548976577805662119606595908931666626366283676841122204205494734110218552245188722320172698033351173199110083678659513009384855242474638306887471927195029508062698262820118578619662454610558392927654745311300591255736252420907871786713895422813268394083576391430701900199530447065021655561009148323068479613197726521515189898807897793139214863750031664354965004217591104148908601874968972024209315204872318577023752659069865219579385907129964816506101985104967663006817401626088241578853081167110263362863463474747186507567541305923828945295768700797824053109230852137191630997674746037193748888706752806775677136831543785977984897161163655223079668035560924976042996695673208223479749160997135952478034141117991703247532628798774469764302349296385286984009922148685492588060156672042251483726172994785977401519215486928573298744948434099508389275087641295313942259062289074682886437148923409823939504368047630738464682122162530981631268271141229666138190976273055032714639592571940845747203138574728184666014520429495468707585630590987457304698576463398773876964829836600616067358341128963331944051476327801795959261156885614750918884142369646922310146497686161868291895971289805998297898839315873337013309008929108342253335758361472191370657593672786063369355555233655687183013518496451706329599843235654185899793215287779238243602331183080656811833592903843503773879518163701764223521659017243682236115475695534555426074232268473872306015363164840884695325055999213383702069811005788015349688570131172825385264333433779183007741217885119727211542639085711148203718715273380170272466668935875898667269548207819264852038295817246346018678411655820404328733569389211676266814008710581041995248158360051388652202743123175893217045003391829352153847925117565026185224823253279643701585656259520845737193210869756450233284060650425532289866475816286905172271322172981045925790348905644831416223089942120936981751154902840322375186552051286255883077819540718427120814959023911078262316858471786584150782252769336378819487873276740214189443263677670614177014373613068600434741479719886139477590229145680117720885828720153875918944804854262723898109253832516976679144664692814838536553136168692610255377545203950582032307188869785372197806892374345477686042635080036877973139318100854613587077021628648690143700673882533267502871920037579591625766677585178985480685754346076025461304494801616725204626954761194407398191667696816209675562177415219232553834950139799633369885281209786797419218000154569764663404066517152175895868983091005136481613084993266538941084850873322397559685739701025718471385049484419000403062807697435293123776698764919700105676411993281348643546018539833984351088482713739117306558375711632545767910383334822504516361460089802739191349010685384270816959553792214537117990759514213140075614250313332929964336517575526164665509382052330176339754066996225033094463610447210447826261795813168334927347777656025207484825580981056727577487245393080010342129242408887389329387827319461364632773885021945667036519719522059785649855729142928333409757884431192282909505174521983945695449657898168748107578144552816685343339310946933881325422921470637648290561716644164476843577660519610818925206971849470861057107415130469016827040059225345228541830078550684685435531204444985519308432154980747198339879618777287698438233301502701694087135658674937342767533344828362321032537212943106487113278788818061602991694119811358761781307289812087491426127602379824670902292012975735207096937604786057252984869254126051686647826092536723579651298396933378742336425687558086001796607677017222046107772999217355474692516132934980450194757350521544095177906555822737888921211964602220558614531168817884187430519329929842025662776466742239832354546107621178885169784419786350566293974745621343206641663420787067196030264769009868902594951974477754349806388869985397631922039105476010885783391834934487321081389510847733535034970415287071258465662515915070008397002406678170065174564112824077371617939158390614566563431234451055194437638400675180702285365373146176788762872955730777207262212597256944430106031210229985058542583305181277925130857455864564698266375659679856745511952484530988735967456662358296374141650311920868478491435455191870666781333643303646295441968063301370121291598392303988173663116343214875940143118884558315888270106414517090747272293601984406202065766881683271061712734361305240539712360510687040196742405873313721622029587523236192361583835236740823857983002282193079386922140875527915229997656975158170092309768514520979207717050512685973876947461730154511824173212158920958760328925042595080720233563526953606275575043161088682724109597967533909960921035564593616789808348404455473198065395043567045671405743984408821447995491139211498420870342970429124962375976522121979243273106138203310148228328647417612806025089610306827323885758254896250387214189407708172485951885035870985709297934999732989112485285722659170565526001567019744202398891458174809429819186717632161623913646240523955071485720079480759500035577859296770324678407062484274820115375711869828487263732484555086912026676512986054574809406958114694999546633365911851109190236173725886207216413093728113411020103826613221875829260444170643227933412498767957131893416150165332352102280505690125552513710567485133955612123963769230534914791946472675940894265312377038292563215532092449502799636676483467719372042332708529962419382772384910985630564217030403465587395151180465278163825911147012253811681224496975627196455974514945580958503829215163146550519138744796280962294799892488687415593426874692661783479447490943708294194581287185566150191586693019342182239687833169507016413913809335130115891773275845148109233621746470202566549270467417115450960161239622990066029054134707738901183633657080405500797874730342192958657848763741929647993051875089365855075557348335009374530377397339652992646105195787824669431628354347021418290602069405631694819411346939859394932089948979696119173280241488593786890203026155235519276011607674828710653609477673728762983398259147714025116696915930462213203140509990338041519196245736950513002004740808349573463836115626382286696177258233073329986909290748476314590944430014182256728670932370517980612443313276072109683674552612688519061695814377133123611996763185605910075261988388896358627630550575264061792734004154318106493437750403690476009500106723807015522506619554224197842441490149497817909237454601081851502192260186277156075531191699532029788421471196589652998850505823104904690770050966579972295742443098078490551416493915761127998111660578990072293442333091335828348761998908622441852380990477948055532593817192153002702936946471831765214321534961457392446513888733250020998836872391090678819758925008346555469121979908760870283350604225672989631402170505285870406664478696260750676114612794467999957272035441836972910095564236524894779885743750026945187755752862413284731312855041313966711893534771012835491040659743996860879019857952402148023201791028987790178212592656503260761275501842574466551936724264447565010776609339947980771496104099667059224884504682872196467635284422924081498050606897029123826201929114579166055460335475671985857117207436261218026765867630059967005660762525626528545999812101286976004306476750697833536838380922507237617054357921665615327910883710404402838572316656030010468742712832318859858615167888082232544925922644480294182224753413532744241756316662395080656750068876089236271102665072026991960710776060872569266136554309061158916528259853538388441087563326262534185081884549699745148739348711944559065135242498591849626359173670704351443793624253639759465174359072731365233892658763152878039984864234623951252560973100351897362704231421149834175649248249143354427935005641002739284990692673140663622404400786405514622695118928599179879659748453959429110049452877568884030897192545317696140048730679974305468261763542921130908782300210132011342648976883741638620733016265813316555102640822946115590998055755138000187064898313199464543867105334121666339954485101393487321222850966477824644106779798645823781803743067224034296239255044630721225066681447965443240543227816172763830690697707762629168857474279733860728728250719754850290294172618724253948604029745137320204365575252698971954081692667097217573699357979114636035600962886900723039340994337211568494392746843258479802333801133116566209923707663273133671520124531346927616622044328941267544774994838505406394866906736330198982433782022620567249227015911376316586485675262200794542106823280421074112174515942320134568809529596641100347801804003004758058876215036156265192234728029703536982869293262047285691676440580163504195060461886525576953377115177897311561792408351523394668711453412110780632203331156428819346623550516826429381200448476579445832959169622751950418196923962472248118419345366238223248884676992848458919199289655009682092235227136933007447989537929577973432016188381108599031084287482353321486313539765878514314955900207477443285488649261604264972628522067625386091236140274252034421733304822146934433857485851300828732459186238797222894714879946065540393710479713071688928290115549655433303295194464701318700222917710553139511011805282348307450273978896684420702500289783047556075506478028598656578483702455405368180499178868740102901572332761253989028808711158673175861422788088375879696495950612333809488329603260315527696362582171565107813439612741012386516213245341151584323736582097844227373629112080851395566563829810156744069062719609530635971843417250865004986881318198493687610485807226290655016869569689648579954828072100620284626845169102702305011721105876369458958227595741081915683104401347419110019605778137960386658964209027362584218238737694066757539091451830460724983741830695596455687105729775230958104839400122084118503877501362747152514092353316122816750838464118731552312686978623986524106459580087048265756574162766831370816338873992304970620450218806933938694794943834167632204207633198382447114122270872002904391461487059985755739644953990470701833039559549028977240953031633331239968527899705793772282921116864309348569605678469324912906778038498947704153441432710925720730926581385934880580127542276312551256284857981100017145508282790962109928670639412125053052786742232708522734377102631703980090149006913549435142540807446043244064904418591754993555513412264234883724988604154789198711768000064211912954989027032025209539626189777341530555634817327029484791530731935485377093941022021473468798330791827229557551203268814001397435480619466201122682517416071135870291933266453994688784637431374684440529190632067143743297549801957437089533469708279081317610523244909591131982231572175963289558607814651445122577764330372606701752009139826827477795991343703219892313478868780575253761862566575597697578799930337310106766192386602824437555869436431639801413269759579103897617652005918137304775959779161190749772716919120069308012283642801834451341402572624931040962294196375053367654353078163142861826356473333794465773542433961925078844963788036545486774265296155176246523849235432815203428021557886813169448795434835870904090509057828746464242181139794922412616210836598945382235623376742228222644872187797181129920652402285760289994024701667852964531420441427458534660471338123400695958172690966211858805845673858113935268786150661468454355410293890320091208110644042994786194943907263934581023113143628439423196860709315648791479368913105161749113954016353349949868970464517097002165238399098045321571438898328846797600495168352956788798773764560033579138841314720942326591121053390279612723391115274022158944420626786552697533271858712343577994031980992199700473023051209265713506927151168973958842416395363959983890886090452943174203421710944615511088555356930460725475234105906092552579761665488510873938491048195212337836268910569080545846045870638042434118229615099987152043863181321311035142662158709190305044379155063234726343067833102239700373568686895389308071049808318398961112573543198335832642667193685986979286121210346979467062529634617663248839454106286710975827152846169254768416744118548754771048393921117146892730083357248085072702504811064342666609347143693253918707517384946484501814438155469416090645312005917225381473708052233681239939715295705914187529430615702602953820125954301205081199577700386166830911084666267824162282437915672149541180504792860427698182145283861200171183728964627455385518427591347215674188576149990388046581837475527696546822319149142430280725166954459236226955329745791445916008766210899233105062896420834834422944598439290368404684501332820070920731805319664559229606073288894900363841926422555920887615556907690275866375211173718570488859294399324371817007273678395275448577911462606063468455408410268367994367206594939546655475208382060292997261045621136093323427993593765253990506499838274279541089661517794189620073156370276739456244863898251116834986541197465487409230253424332744393906345737762696885253489687769075086127335008104752286278083694494080920109790900341153854177667892817512314171551790089570429655473199322155770697958141124538437255787553752499340636963409810349363236411912153213852871107459595088926203358675212870766277236886214276243315864032461600103008521195674254006188436323244021514308481767175038782394291299036372837944813190907615617134983053173645126793191952784658460675147321688237284148921298629762103054225782418871073946391503897100431521151766346975704779505723389942423790246374558971430279662396188399324259520870833108792249520179574550380904084741929516853320982485618164442795770982862931960136594325521318449900282981706791162424635249145701411374626644438573358418027567711138116933943095843651372296376722311983663036238111338117485493504849453962122628445284379674292898117905987354343965640631983550294169812900426797148422744843071091031254573209075772852430698076823953027234976701257942030857971366707045322563296281744260020828937009771191630328601212721365205600066043163940757850353830895670323072173010618149443771345882706253089274308628134353271645243408301792592865305641875904656763277809140491884169560813682976593066326600370786249679520291380493010751747278043154041523691846581433505632207440581895530097149284488357507427536955375016733768375041259682427006647466073039987058158419547751093388882627564614283995675556334299816096541964671329074918935599622799528645834059731449990740504385932298394313026981502761820026776541541223715497553900318208848654776198830918918144371191381507470162966365649960351859891430459809104610465988382150101617493934206687287562946862817474811427074618475038196147247721321686913820348930708537686251290189852789011315765456435231388597356641748553476857743816172677891806238177858780149150390556959750341711246229231818588096947384947320702929016945204013009552090977037637636318050008198414083962438323442829561384815565489731547227717274966146907064959246626698465642267033303527027545542327053683613474513873126957111456027344438363389534922587980329969173497635553284350856917277378437812018313282853460866047315338729529476629976492515178326434282246887021386235008520157518659637908632083495404405552674003244150294879115132020475044014700315685574427547215870744146704661415771737062273387320247326042826287637450705616575364687323085681505996193106024153500538358996119153082506074501351747495114009295254523618094915401357116269729791482591871767853471192123323772959427682722110551092451334550960959681329975817074632866375386479522417746350950260225205968991161902233475685545148656206112008252900998652386961526624008650470601815372746964884394078958194124177150792541655195222345241146865023596247393149984859779591954758536078332352334686964434977291289889586296293547888298958775929036854900905284591055439650628433819597907913339759285390877690877979669404418082555280672285896894603240401218767343845683482263204388203961787649421178319445421912950979050932262991381914609224768749106473724249128863392622281900728023848863649743849914717614169031135211671040009322355027598211734691935449291388508736865508328588585535544014730424296744231637090994515123172721931848018943371338886264676600497160540368774198936014818924643418782104263808864856815986560471368783526437897824243872007947769612266029103241825540894613664566492634772520222464304884970469595443911605170515429970029075482354819130032189399977740576118062426206270122079468918236415932143980348155035991107392497453722918692003182996225609577841722382800225153154026570910665979585099357373261057869101043905555970029106035771912535581375312629091816406257944053422506662790572479053389009805832242478112255454523798993836333380230996937007566559859321170305082271749585163889963798863224302021637323437556335449218651787209915136229326242920681268808744993802501404104626385235396307304809137650093745016069777005611293362897611203442284997096596829987323793579238044947138479974616293220224928963850385384604853016899981379326503228148292654109758394757320918066572128403815499280531739126892046279784545983164669304212227631021248331095371731205873536362842645829324457890108235450159171964771520103554119294915171010362944516925616709427285768818655542597694338249273453410198473714060540602542382031968306531856170539701680479629825064279718796722885079119633724094102698700436882876011854423030732793234906663943090980481814863584872867160354155840889967229295134060903304525183248547132054038611502352885789351261892380864347347795670301519689163682949193172126699289096468855574095068140329853271753889547242740463844170032855152637219210471130249281999880475492598473497310028099200831608707090254061977042550781608966263459814322072763316475711363933823255480516968940488809523601047472735850394119081046366431388270258948604056365167344440157826033181711394097438942258342019967420180259548044827176995188916492102894708788183542329271870546493768214758259752377961771962930566610795599212516817234209700526573784004405780362117866998673838900884393033400706574799498979580338731800007353970429222231541740644885422365735252139525548381146865836338924256299374818556285851137787723253808531195849185916541425367121505902145840202397738457589636860803381404296329827981341731982598887785883567442323404789843025697737127416019561050048785068579859163186553175477150533632194446507827403025282761275882369194403170777650004757121973784293776671928687020676898478094449021016152379861305827616413595252436115267418802274186822834036058305472942082553006924210543014313101411361926734602714704081721231596018404957815635328859399732735028743338906442234274572971594396049520579132674922183494179811854838541579129108780852353646337070873410797731072185279010994645773944287052101755395831584842262567950213221285363816168549922786224341500797057655032340485223183690509275920608644406162394695237434099173901292500834570646480757199436635809879224327979440768066421582973529250821254045110646548933953924425416309353599502983204968234361371442222265238262291334925453808121998896110046729024855179315337252312495062496197443598951920738996232963157846619803858795534279860871425312194211110955355889571403834489430465595380569392154223706896681441311132780549972585761291047415911978661238503255162631125911782790084906100410338355026503508309604474288067316837123649996682023572500318565134866631821224402762261437175103685776253044725713029629015238583870930151887728318748580788515244827703259014289833167918617441271243164313661525897643402546281997296144658641763014341494325077077124324475266329416972615690647687176929827839766764850392735453564019122810769909703228452337212102048439772382468536674349185981970516829351742779287506573609437939811608207251578627035558134545187685613841845018808933019260504373280877640136426906886330265186254288643891072178154899247535026470500493744630503662675890806982452971004601172501858639175274468781879566814456812692447780876005869906214520756665693675655815456583775260298805795312278703932557196334061112678584073255417426491103119884542672268560458298240916208015278477744280500644858069211943876390454436516944307254670027359011820851766398764858084633766545380469820858186500928446486384503413552515462967084419848371139810264142444131543352410449542701163223629238268898722169851626243909264265249592645911479879636281033048623940853386875454171413793920552311676620383287928249771464203718397977290515650329156809267028474811934649315463174872544249933796921237759500555565392477475772626440278952357103318528399443330016373025238261460402369813971578346261588081111034276177870540535241903843444989592098064495579945562169986945986645680791251461101297675807029488779533369283460345101474849510924874558521417850948851214974019782896785523311633099596938782415958965321840800022777642937023599571295107373025090477305471695999828623304865389328252944523822468036351168848038498605123010294086349047367148427271564954616793883461466179449671066471812917557765506290063337045994470852734219148027676923936679152541868453382744048490849922126860883520526154765691305746272625309805960579533255008376423029717763447425297337946805481587413624517607627177089496129730267420740379413871799086025702853427269821023985104706080146508580282575771681319321155124974277279889211748010094699807901755443418496593360768440688390257240482987275652597135770785822813974478841416225320707447750811261535353340160124074598437096582410966957891243437506354308681517578801192133319624269607365536627059046397451109467851597102265652889133688305811735070488050182481540683764402598742402571139933908543517759464651108906838461143077923587212485230531932414118666039824684735582781161581243305229414981985027594541146108282016079233604110702627722061676704304407223294767754560238530533369161951310155855986219965847690664700846452818104187763133240579642991343366146548575584556133657790281395376345657944103592822191471223401876829567137309404146423264916519980191532175840408422672062472004149256224061466148991400046204757285152396419992314537603461780586406458119555539579961222417440098011746271326356421629684653871560899741310198339369467913825920725375417372470310641191219559234597487340806110418370918254342330343854660023861233480762644671315134385171771008314489200548772553203591283077143593535050594834711039186563887789952698155267288821483509785931809799568735491215042727169381150518456801432993377136312005841861781271731451904824248272901452461256268436557885034571323562866071852766240558374660698224810630992587278153310176540123271568179193397396262872054159084297168232509001563479102213419173801342596724810919544962778712300569684885042299021218426827360745562060651781554772169258042459350843682172269677711522025792590724214828242255206592387607430986144386569433229597176174047766398391502578495880000475424356825429269946855677983667859684033021011556480649764479300978983574395197377792498052700605409124620134464656773387825982431135885297692860521818563227955229901239310502764147488333662703946258822109459761667152205265229032920581558198319093053037413783025836930847354422978721642091658349706528574672665376681169685668470173486415530668434623387996692769700047064144199133435470055713972502730289785686308881023712916746478549845875815759943539144784342496041635722272169756738724207775705222659820419298539571046972625938982037125435406529864646758816621899429238669924878815247978223630733362529369578949100880718787431447172477075891412343701116206947199212468791815277490902289465646408379884870803831095593176361648977347349070244079612298796276014294361779803084923569325508089920909557007566684240596368099341699763749952722406200526138996655297551637985342046171232924044984828971966750335438501749158297535058703399259623913378326252684540499203080028285036436925903662016671777828847774809722458839417135677138634363971743462752054369380573772348050328399164796416329475888753836930557775880740114157519098060600720360636007475387871235333901244606912466800017120942253557119403396515229016205411247114184396667065588388398270275638860884021065865219045045136952261737270125968861246050051166462405796843803703426009062378777101200316758595694939128168103854595085214289466521549275934821848777845664578133177823876102681110138308729527201755186859781907398354820844687846804226478367291510747551758786441464486765965580058806801201030588415301226768812618874278084716024936083672156963218533143415655170581287807423720695827588968254521015657874196465130398767773538069341275837938941342078797116293495128112741472953473479874724167662604683763995069120607390820589372388339429608031264907035547103451211314013717882281506635807367841428925305234168400363834136050132901759711640030161804904076574407582437276620939475196596552560320973827045249238191114514827972674918406856424876931664563126728090547590015777859270113038267804833682856465395465057192379112493552628799479682235734857180901285716042000054926575834379807142887923491435468973679105012270191637131426553901667704541741005953152280061153178669007021087047860450138534471853291983982311372944772654988479849391616514272513420716710827748548303354215700939185886849467901117896255893559559717268609614171377141100439639751391859064145533755730910956538319820672244561338478825113534527377388856935839905099077530471023223914969228415695561313701395767652829760166726063158265484200033260026775657655364174983520319346001282393628866109715566035889663255318898663126441181980045048019731651634526952572192188594545009490801227302053127961845380418209906840772007082241820377122273329170915625618729834920505779578312074466257886574165744588103179886210481433741162851754374419688003904324837750384488378061595558788508448813101333055340246803857634055808767087375991296967578354916777931831768670166415067446762775923799265543581802200970232551053544816350800355872178221019998205336471599960008658409937124826413510948778160885646189922057652773106447433264580205080706101788633106832673866483041601239455618906004992463644167917357253866873161655339338773791801752730479162678782394494706186371153836114256503568456468749702800728732079757135654354435181631608142875404201200094976204072960190447411769868118936215366930944297234219696253558205349296883020436225082758853758036798907550157750285331510802046344054894832525779276981069603972709899718363037753171938239219096153068863706594196100884499130347733067292127152851935642203864766298847744102030911372377112376487436938807211650761059941372133302422409499004873453300593061913172998332016591453610093298175591784975833849767805715092727547926037253050327312958604079859405003179543893182074048126847344337454848246987445605427471166213236824823463645569198841484750735501112070463819328241724019276895583578542072162509165453202950232278679482452096605156573476424495815344176224441421291083333580291161348404297572590017139875279155408391123333957083505224005274503418497986796578967656043834367018552928044782136544545726206255505024498370899253435752506126584104021768668344719168496599221365251762727927208435347978515233243246455419957955469225034805019519773325835523137401184078109486877459986440571035257123826042093331047009039297632476450993445545348423556441651311655186728699407518673609379852782118300739099174877877251914919604685994421124998831854684017613440955650310828647455541057144046675630609527580579951384877217573001872904963907927710935235667997589659750886668780998724794387583108838824228599668886969448414456429679992404633962896150287061449663503157165043191824501525556366002648603421191752812694952241884419129454423157933864344699834033765156863370486146484316130604127063777120358684457437688879049063816404440847587336875585990358668042273074255730655389942000636255988394973947724125960881974910716050325697305671694659347766202291225313500149325494228541678036925700468476148108197247383110138270247732082239699320074428070637592452554195338129075511809470476079982767948551562844282184101100751475844983340095389286517884907706484188752221073350871781003862400092862856867842447288333820113226590391109271224324932874301245250199042927256031611469324999458150460824938670596521205546742427339563855659020534409122228276355288478364637290300352929631473955846062372801388639962152346427448809534242939380198751600835537059997015246692546918627572505180809100952847149761343229708218684664680335213163439118885570571815298817831339905459312114163249550511229942425663892430680236406695683223425958351611614801751890644621690481543309581933469937305682041686866887767505493223937482692626697554642925652255537726212247981317055152680936084990489959126114868918216277345150001177584145186115848615238481075012253334359848344633603569593527544076000428332823577612206414629991819078719336870972284180978848585609257112331729157952226382183181732926779149951269056721349820500416102456851002624076113802625548423742231990137196488271058363209033898147048260217124468864308292624723228810578841319300255112736831752231562040282090775764162544452089831701203522191528370494637520214180759135351865901190167244364546430600220466209110641966613075145057087745640055226651549546451275006998880063431720242664106601813491349797867109930818401365208426739203177345201193370197824553192737871069322538731454161072920186408659681825248693631900759235024466056347237820050684010112377280620408839836760125192591042078387214287592486476374386778843870394443360625494101538956461959818168807807393899541114784933740471290444040049176614334648615779917419207656550089545426771894281686873521981269818953787278105832019321976818601008294318510380847760422904324933607135468209951816003333816672435352746660614671983241326800231556280151715540832501432599047786762563342864099771456594748681053765125042796779733235491458916586317874086398108163855458740587451976996505152460996447227360501101397251760331166759888931867784356695835521907021980457383556422914464938921731912019322754048967873951114452943472487168858361626394427699163247081586783168453534634526308136083361696066892709575645423874349934234842535943126649249232592791743921317497185209845277147526591318298719032076221482027217864626227653172729199887218955130451313455499413289894980791056180962925409600629964626133229842392474661096703820580151686663357794829677088276095761625733728395586026315875097138057224779299911431823528944328527784193905867163234307389251824166755314556397739248263696123350912159373395434351715893160914002463655899671348398264185433166017268892306779179935785014486935112690477973002114382670530021649772268455873003079710778402987614977720256480965880461353090253579519254902972026675086064890011987516951568398504753250822513086867696859224749354091305571815195009200256299587493643330468937287015848875681569554487453603336279330680009092265217223969831208038896515731025037017476714509465734384708955373722258666238976539336970979324839782870664723661999791437139416849020464703897207118676428294510438981084626271278998994774289029776831781124026826057931907161692117732689519336686872875181491740450089767241139796687927152454423398801033156235093777688586997268113008509690698334064942080626120669061230352098373928387674056246179980585757033431789515870122981119127648531632151429841018547131943503357213941664886161039516903368852704953556661636514745985846765674108439524542738408989824734363195818527473792128962217411987283928367192059066801643469837652829034163503403375365008735439503825040385996793361427273907129200006095371383903846360648377399915385886405209818117347633827159347505199758122588623743115698109347385088102470300238964476094862326379476822239563247626949408558023273546911124225187851627101805421518282760109801096131726961589246441442717212058981752316401542835204851906112497833503903003717126658281406286896621867471516165016638295147692864655012408345970334134196927285916015410493707262502532993722113820298310098534870071703573947729974859372653208554434201265438619703940148113002317825592009180450730671941028789481843986282037752757934688255075403450673678002738400082573184388417724704895942451359661492849543806354007292536100428923015120838185647058092815224083700233953526135138719020791650900319142271764212574080814263412604944792941147914962712582995232314324869868527788638166709817367621333346732044699983749783152659375765520279070959848233251476082639100130704747404832897274092673573585521385263405526557937896316653927445473506971149974220427956601537996974939550947098769699409654982123038153279591434461403255781070619160584589920342838740892298703194430253148713765613148558965917075548741723801340712241212235569175667620904627831030447511783616995137032118597988772812843407139906738369538919877473664257676960083259887116936896675010120652096677197385459154074557387221997015701933436694546591712754536742500853364167884426609637579479627211316564855524440660355295195375917532624856440083107609454242919655868052915874501861262205242549528863332582275253903451867055468565714535049022657524076181272465184349623364529340344268024294441405173057295167820651934120343776666991065769488274570282562822105193653074693062493242737713959737273671962304467286184447025682085075267327644312021543751652170497752410362131673167171332363869417048615047421654116968348035873122311139531125990983080532566464898470037001856079174164613350388611493398091462352193387363132289871308270620626456430280771662606628677360850371355600875488135147110090455753904724160198771046470050235357213772587707307504302041171944427779359925477327319586024744997977605885185662315119203989000630325584557112612874502171198264493464458433764684957652555024580123508050070256994970484226560493149304958399179067055550615344706928548983946723531150345407670646318306455812768694948840111699806071710122451553064227372285040521289598771645474600316521544614467423732864641353853617601452507529260809907250219363833644993902705137578276826283907977852848392877328329002742877343397222310916102124400379244766538627757687640315445898589669915781452951291445232807529464220660525898624691267613279471954610997280800481697679083241514023080753984080736257522098885208196155344487243644461755014459097202599049404819138882074003787364372209239450821209262545537159589201832398436206839099628157319526175539830803615271303805835626058669335061039905389268423801035525244155493275677845894481805907740225440890665364878079641203289224067844603399094953054215866549909257919809210444011787578937912321028278566875641586675129087618468355383767765256421900343049551805396745933273450984457137714049568177184658527726640479332923639956005330683166821844580052774882582809255649992589545099900882643434905697272074653958897897956838859536508728100484933026201318752769329053018674125935637830592185047109409098682802012014346347593331318761435517257674958044581415745559384139281784628472407825002470176225300069402387982510803131687605965356705486517377649141575722162578252565327734773899179487483823323031211085774715686267282703308309518797972373290721340196534291389291795088870114906818025210300106308181735055067725671178432336762385751153323827497974070375025384159482684278750526540607257018440852466682057497722216653280543534402250612171821874519584653393205977547839353031830368317506439634027678950580270924457407098898511825118419851633490564544460459838284056091063869857005035959824861858336898250420593159460708423815828054039984533504186616049677397636016986605726615849627004877013965669898160639031459242364603697693163146331854554346913311731157342008867745630232136435954307745937423980679734536390895486913229893458050748606379014344954182947125131649737487804478035566632388526343395837972262025607562982864377354426352756374341729151549808812695525061571226557961536868145501578530776596670422843452171777745486956552333446172801944551906424516093391808163120031247342469550368283273413784233651964365044518577263887209788401178353352604809696055838849043624115688237701000105332742967625823439758577689620618803626036947273594337032212088587421581431499948835719547186337008052112415810363057576865816173210757976991544916758113260948949891677337846632127689679232063927257106649450663548081538017243969838697517979885987186110144594641614771805584785748441513277942423543959770019411144788949742575111229341968178072460923576117810472342934129688282688694292069352454401412539348741043420313315684197900653777050764071046003467554081506835244513616505427964278307938903383035249798038721358332097052432352199444243346226709987789387462490346187087143165957390207453550882123095942377211265127012151259754185344610977293356758727226698864452949052850042952098654310640474959279962019534317861390232050847377856756711500827416740960579443839989386043911310162589755447068327465442022815613832676510995716846852707470454598277436089517749583471600352576939912209986740281975762329571168499599539580928172426635838518589395078125557771397292482002768600297842383758661952239388644926287984241094185827785644458768856601312283961803816607168805487632849430911584896939547687674008883272174101625576466398070243032939229819913288147036031795607134118068190343432341618353918799373460107370343031906796943730626238156908806136932810880270830724710796219480601843273235139183540436723135153682747420436537178108377484259002162674441077151561747039747219836808920737027780432485580815369830192061058545624866684963530675317393686088442761312058602053731919907703483349028621847863259234019100988416425229145616017248774429744829229857997218213056408385459853854580641374459404330172870230670573227571746298499207040197800709955540871898451099878963315839370690654351220598955492530650626068838893731534927181848012572959458755967863681785160232350190769821064801818554869267885383074175437036034280917387510472089668696716109253249646408813206836132776057271843346436672149905934761320630171669662332310859187157076617970105124945180332599929664619391686208414344532248842910902752502801246815491654606095768923408259724523328087592557351344381150020366645449511572907959478310834228342266469828019027392453939572502443695282262200840909303132014804464789397346188735714088209702249200983627106496335599085903736117919565759803507142819745713113142178660605372982445712683593605032659678161168787028755190392704856970794207041281484573608866151530424440749081370549411684684176050316953169893887984741814702031559739804873315591800222434231189952366296619518787568799299437758492894608299508234161146233209829642401226482445845632811659757613674927087614894635248045810773644222974768419113922153468832140749888544273999053268124770403708489055978190533187083793443313501795064080909033921600951850669780564489942376202026597489290867789663929555040504964430502342026041919919058894936647533488138392811743332871507042353052246343098394840838480572643331581136564865470984055744772681024193541370650314292421950530077779617226186572214947908374405471173169575493497876943789010639580970509341271455132862801822726671169863734317107065810642915727123553305076971731026603228154921917942822203350164990340649184852943154050055568106885664622079900451381892807332235048647043948600822380289287178716247884276683012001490853307123424190801967744510505616898432582158084498337502628875898322811909944437364443563022581297069900924528646879923848468793393379928756525807367937748007206604685580819897669547947867216828335928605711031176904316079948190514574163068813829633420340082717972276802632431797316549398087428091927088904639987027930550806126535499733447464549002792183538554218385591397357731850154092251994632686421028944769568403989022187865319962274537657935960986283190199276092414945640423964559646102191119843178482221397603685421651203504474865657290880245912853904756284926967933216167149277269513389265125184841036251768357265653177001857957157335025553213933712470698243105774387926550629001320334575345781627016617182053341861398682754813526213496767615848314608029510765988752844213917311899339284930272710605649862783742892219938980864262866095292285312082754631192061235859652910701242406659373012066252670574250086486265061813902285910492282505371250871414048972406112362651268102421398222989200004845353366310774180644572522006953102634122236274307140044221493587322341702395750699073302380728308413785716240907198459917424949871095407521278091252857332428920819977331751873900966494530555923176563429412428085519645060840917077908342626856071544945952994333956001078233497815564035671794869593779472677568070952634195821315732754050396183252189981016194137217997403637392346892523346081181677224445597652857025318479662390200244190782274821872633373620602995360738828292612339877751088235576261267221800948157718348410274862982565627173062811057764017280742654037205537578084487652397793264892115465366460999701266896635637920167688497941999958582003948752008659081435994042080928383498626137674610893609909701645875220541630680475974681251102084702280765734233579930102529261853566645556604587068783198325271993867443772699659663652578583837328381870016437078879588012632602333126538298728252198257502770183806331560567914200497161609861503525030124043779075018906834213217588014288572042670402986353792371541848830405989602435878865408698847633301945942980203861642490034201465224157213384240432675915231072104633905112922398086602223445432998969695962084070865158728962319447136760378699439418019345210432268674204836076987105775028983036065071244000329054133123688703162561120876057691737283844318936501923585131806478938113348769374180107041691041815844623692852978529873247224493716822707444317663033578152939719762756684096861471262101215679150131724241903136378220526578387908591950810871134926168562327168893030878638921519107239408670044691055242722774657160539025411805838008562702425397244863636395864017944281459272931716867904804327239239148520895247972692684467231073195027533250048535214888028176782803527143783940685658751314991275422675277760030444639160413443514047880890256986999185796510424337128615163382501484915174274321744038245673392352917594224927256769524345838455286687952220619135404761664576090000587895180542692003360866979510660308720665121359213081094186171753273451604146434809723709780257761576920842172325211024671567926076482640135452496990609707410692871883927458941816964709302972510338335906604095624356803407625974629704055458853278230698904109341925178294206821365692942080008727596226253393044187671813229084433716039576108331598882096565365573157565268009241633991765356663552945852889933182427160691229000827841817426307346308914754838363271746911105623652601310212524815634624574499423512997016115837974647493457477044059293650084026378369517691686020872069497165117811382191742794176711994347078878306758172286613819920256566985290680008657123026147081002155105942439203392158568720581214341939424810460005417240254497790809125200849814310464872393362471206649183703403638992258610445053643148510611072406482827365403157911780529315615685266594942533796816258091880448134698632600660758226182603571711101181697072690432494031676521502350097986462949950920779095057476428867198499617145828089271191817079777491730204845318706758553227298113321706640528762328730840754819449659872535874574183907062388042289006900291895450421553055689089750730407043429082707688237375555709513338771354072742329317448906918828969919946656199135309355382506075396574171656604272473423765899581163776005961458422207463803142516211787223995121313591952346225711040917685076518448685560905706719518515873204345475841082680407593295057730399551004127064645576761929408898425812747189824313693955304847521347245996076468606585880943390703112408268799714777846160319238470093345980749083576974756097880780312137001440723359388811378838982666476630383302880384621699733201067554501263388080074493802094711989407705236490544018360513315608877033353556798122447937796655555388453810568175180350279058075572485419026626248023732725173758806991442568724087520248377063742618075927614593792208758466279794898203965096072890826053489324711991453025963846622398832881745597011359589653725571714372585087778511579510097747254791420085581743709846254074559329888779871763765226728736966303298690820606510958017856106087998950218595097008852227932922427337669519908301535787491003741646696514965251567261070196603627809539899215578373244712324891110854208248407522026928363572854906963403758829551040764224730214255300562721890262136212454799253462432911075559280666532274910246651886292341740415716252249653483223035438181838370313066350307280764595869924241582622985078099813630822076037073552101313798723903767371038955388445254903913564132088106104779354322013216941184630955594402086442460174546731082467682549798950983490151157552807109525440118583433663671025155706528217460509043187166393940448673118825194058217360937142177010963901079817677185764400436206957856178204897117098734795369708101051693865355535934525250361535804794442295475419708987643213505925402859023344776403511230827549247001290502112720520686083666473032681082851533360798200201768576505952033287866509597613918146549052988095631286614504341346585567370419902384603509384005993391859513292758744148464820866724170133532225527437164694203483712411760017459582996647695913025132202955106794094704497130227437619353109209794056380529955234274617426858910114191513476285877433686675974685685842811109798841648787815256724308048966323142826296078454211823960571425704488925588672356074000218645442271574482131027645001981715734216958996804672988691481140039780769895768671067920676687961460213023185492775462858491782900883446343930808181001690868087512531344698544924808936814165556816356300082001611110423715286326263742488662780718344733979925888061410163046894433326401664710905442364771041800644504923629690309134345091904158116554473269492625023649638078551717149157726095481153272328427248574771249667070679621243050673083006374308989394672906441576895560956925096090330674825373383542421354816320077733757667471557745923378078799735928914349439146632271917687198769748626651853310938638437446978071504965884821285092910319269430112744461276338320248882306573879582919879428623083829418101870159415605107076959526585334911821679587002681362643036691398804600198261570957295260144129386092957516645013209463878673394186958137495967088018939569141830153029609166061408081491220855463766982703229550097319727778087201260263086719783065401550038033366683779181828186086238117071314766328908467989605989027211894042977172864470617566685795850894276900667707902523759142588340118014660220836107120567931319728088484435229612573456728739734656631446797925338124684491857337729711021177960081538291420685109405327212449951339064881744649499498172182584919164163462716930880276743983827926473156929982559133557423318016890507548556755528920813168993661872206455047223831090630512978515679856078837710228590227783708329646644965709506921612274386530517754019496841195847764967312524353527855052290639193957179731836952207785270896489399947065271926791193073283234589622782212692207218100184214855521116522134856908650666311349077757181287869660614641647947001170545768632017595629215349156753857831103549031060418703668148291367510805530835756091723988449459411733018626545637693927261898225607923456226077312130858219301038017233297771518459862439773032019079836716473487431559583214475494239293826415868380746571832332464923181232860821929581067667866423307420189371078713042488949549060056354512592058552494805030842022735622344904768918427667614953805151132823827676091276232826104976083706177280221208743523252070978654943370400223771949960923390133598391328304232398322787490754063274129609204624506747053892196886051661636153948756500799121843702856046729155930650040268586969300440925478789080651334343031691884711779225286444868279107034074474678846317261886294223061928900604206738247381532941386458970227649007078845299319842421678739837459762617546013144244417713761778188749034089203219976112344561544393933802144611276445490664032676462983134972707986707880430740630916658487069089824024627143170572654086576938775643404386316907213447306156058608363628670559841361827271851042081574151830084099145371485976635317598898927118287795779725148671923774026396417341475882236373825161074122697905498115585701966447001430350524361551241621652793695845245955781014660719739145722386131230531549314170417466688516739348791678613558539409001080379128066202947544864999057719756835362964721313784765780508686109900785570971220259703074629234760389101476049227855487705665598623712621849083708874659035363696086801478562406387785147036191282586201242395813113821140056464387609698792546293759297429194382712384519723625205575570108908260597257751461292980124371789842793356660873600791732976808332461718748574238499023345275882392859700175844877848367235296028313427856276603975826931285779710622803825369204973993398189487759901505900508648453681082403249561991367554982142386700171435017488388747651380873087018424068308176836518708232014271273580715451653869369969571232430373219094455166720063531568883917934942402210746336357727175846042199809773796871963548774332550743744891432885269245315507049360591558272421723187190389924547720783701451545830396944109743276264497399501844259955858770003236161943392657498152238280784001145064723621981882802091878451890276170236026365550126363256526252342318241045993354702204504950000473397990543927297948540486621604201934826691561138523976380189941532048008001539213056610826300326368261011795960599111988468517241533882154857763525499925434797618536709246153421462213148907951432840373646348533126416732678908723611639395649313831013007070718757559268012248283443856480275542582842912550559231220745058116892602581125472130426213891109555251803788916685103324933508579926602283269988276684532903205685628191278883376635364781924875367541912680319074468987610816305976875846011334113365466639295709874162734877686511027211312112460578849534778537670762615527120555186671408128531874446571877075018925554435015554873492684808412318502090704040669764475221402779053711212166603379274814432928772258331160923156593124088475798394687905104475467020086548010525707644622333812516902159691063284308581328345549955515113829867328579433154462005166417746742190433800546953798853283512881425111961815023008984529524530764421942298517454874868162818620788431064783221826615987468726659354359061996956058134325524225670948100484526622522490104052182498903706752301832663413669093755777224258791683823736927042856412765762209473221853252250892547100126072482461829284359746314990599311594641660045887982921701358632899206756138525917587957138951448125509744736275808391842934375921578357366590277670668003892635511625303888440654349894967957145994231772751476048643863168697273639826124012783650836767937921274369777240162401087991104144839887424564082447483673338853203303982810227515131330290392849024879129157970420941019793522244721750939197756691167784857822421867780270259422308395560158782555417689718957194737715357312400476700170189490185946479180038949293477684863834322883607437870795162421463937354980175387705388202733181656942389305571459497664630553296735998753272157263749103453547130746653323320927094755389438769097905036988785547926627897189612849052945952700417936272835732592820320195554393368511229552851965833439010722457840490477327312829930003078206286355740035012398888824774974404866469587922044130647170605031658141827756334524305029892319720769974910056223997189585920394381159837099320198957075303451734844142221535309952831919654252666169160867526915198430981802471720365017043275986598293927088709262853440182158226302870321978724355628124196231012901394795701660007924043183575982687592494097450742988870683196026539169867646849196570425417003827379318516896083304957213630744075481018156623484837191237689733190521404312427380246719254757295962505649560868950645539165559643627910572517184801319737558474621004704749672389636526245929155322271162133560565769282221147097675146060639211162665814318087700232333957713255610988736932602029264635773041633056852635324608314430654624454114980211545100155872323035255180084798988010137655186475508173887991624416676510406371643836189604122598309223826924359075496702518113141766579613373592557142839862211747581205651250785935402807433576554951302427331423755277049260640831784310008702734783731592254286732802052484661024859895625025746683549016611376614594121312243604506433529845759265102963372639006185193993396337020356808164602801784727032247548154574122646744389631214274330620924849251531942739489225224032820112878910236197039966552584847156626696584811188077902826865369823361963348238168477434699979934761665749004249521746355522739967017761933737779528753974312808098600050880797479028727626341424027068977875633506255313649651943687607592032050991510410613650206570026087361452466753264506892330626508885904491796103626661865966101118968731419179123455303322295282801408217014364476679778173849628615719150552795443219772018040017185536343965403996223167133174413858888606306944618420671781252106078420303127024235430045779642254572419434002550625957337893800915790304534998343355436021418243796019653965026820109461866834992567892559296895290663386292392986955220742556813190835344730982094974144077050436573981161668249776939951479392689597410371699368821796556435902549459074777474363195453299730016670047885363195580701742380313217400794310112693257681529483613628148510684459802235305494023611397065534172054120628332189952993942727426851168027611344127612282433630388255196102428161273633494839788621251064011537177101332350184709006138228460784279485815311087424508402944210085907725533687239186551672881251254519197400874552742649928360909951401421821224011867075645743036281929231429794742765252270103584700484578429791651561059766588350399763605289727989220774718598722194897320899245955128887082294748847452467656231026182720728920662780815006377936147525181991340084623780159755129841458941865151605746745212301044335794924068425831421969268031950286783797727229938211272601331017842731965571830350545531246802344037946978610930366700876295191485159394189159809099795350057679809480025204400635084522769258979206579086429330830620330154473808293637030534407054962166498944244858180401531609238319762541805635980441713221116326743587834701776139854499325784118940567430941165518539096321313004070878490289637382864419213297647366947840159031894155012867282524142507858402921524504807915740405536149159702282118925667872987606430306059573617758152310607931311292998752019614085284292271275971932287413586261470279292097476454155145522043254783004778365830895226832168346307562591136306145230456099847785425524746823535962140085555560738706753521273718385186246260330265612450844096060949766474530251602522170576993832780659645808749496875963458140827605474628319782989549099174721316979561531751652806122343464902509730274534951287486891048263503528547061510228015127104212426131120653500686791999466922950716653896648432671929716878924180027066556641557587424723301072049028505998691037116110254360486471851553206155930422479590269313044982874232667150419092874403832983549772803092847776183521947631290187745709468510612472737785389810928639389079608399589355457401142900970004624755385662442725203822055391313429081990065502413734383120982036321342323827780022498316104411210980746487089433928474024089072471470787747169092923855257481994697224064827816320806835230419485069465551440928797238393015164064364875641050455038259676697886697631679051498336973426514190646379181094889789386394811859815399662047536393080614488451432655378141916802792835317174285132640420110188276598834076483546641914109869230356406337670035108570308802176915224678799534465684811503178743343874352731964482863193223831225294549877903009200190369694033231530738738108929968449599142988634323396356580041017707322979576711533046334907577877944676003821025285234194328829916090070048018556445954054669158291517181886764580975784700080047399588899807632391195195281401145697837924578677782672931201983497541665604971478527793187156813044943636493841658228627087120779229586542536593652455788282761419087454532595446187631240498978228215266568422736812499039136540606329197750901009223054921107135135309000827502382781236489242743829656648935031393618317058702690847829177058373896334030269755823936333229970970323523629127995069317775096656975210166769509174749635384845686339984812950787735107272796969551112328853523056736009111173252677981784233708591011800590534924120066364519316271208914366718072535305213972296890732047634798613432927636027925584007309533174647811752957678939182700976423041229525820734479447060396161015733633121485021736607444694308790213557948884751098511825748415870865709784103018889787351098188641864543904227586977855374082771806471955515971156396524360064218228658895465563800877920120586099851762598097886650518190356921957045407201613126624910039411671493865807601898767580603514757745202217516106233186625748749554363677837451945706519787507079503465861976898918091448068349559066941796450875166756010239315575538588437477398508027811766986861948886565288971176906094741269916853716302452131327277387734473277232552135333829503802840326515968788967170636637850255858742667972649737570510817231342140401441057745814346997222168252903154716468294372877245760843869997172511488200353149816316192630719274237631155020476212541007005830843555994790567749498424562283410851926741332774021075851052167863902619195259978890934870907051706894554901801401122536854837453269236724683721292833538612461592579166724783600027913470118289547920867106939373592954523989554689273598767611899324903898399437707578379969071185092568226528645913306345984058206854478026157522375713746782654806230608868387868324105488949973135961855308544609192303167613192460121250996931632849352914935252010767314399707589215234155381845869316246244225517384642072374384173483712391232045656319288609459072871172752324196739303221335758017704386133791602017294881292949319814450955231506358831941115618974858945292540985246877453643178389591067383234332964305578578868990827223146312099680629528501014427045536785937836658972585401948910739471052407357814652902748176859192721664892183206910132195197097481455690872016097103381165852621175487350107472170550119265601952567371966106822645405023264651192638523756660150870169040747282238467041947227846681740803008279677243316515293646827547596144843051863645739362626824262272965598515912389376983351429633227988183463961105733236280622136757336523566864506000282660152920166505353143137346277844934161365349436858836280347982634501973343742555992228345736481669922570425368689028323011699393918960296677492671520628404418300249450707415736010468393432917582775687541176621719722602930175413601561805378818079935762048427426452183494270738861110855664444187919347487745563111781285120861301457687761045292028221188709861928434562953566834664935943595948359139021794674816642206440827407383399938970258973590723387153091048504039181131826989300178100691156525629669519558604518761965121581468112117887745151612386389800196734858047378349020124286727181775037637375005797552520231030814126594320896862236725734233318583897367045915297704103892715942338580517536573912734846540561361737624247395838795941422004500310822449816879602454041839661036536221851675498352142129337648789219907398410863766340261255210716938060430352781525658663997274329972354439654685250377003018978614388971970382317258451572317422772781299186489596538764045457469632176411502273850206904673308858689718661632861692744342374114299168124807538614861893063720898898539221803548702268788724186524771373125589435879247102834728407105501296827965194709137265076804810189908041964390161530141821692358560557126417445842763069097482469359951064780220807006796874043693865968594042212703657688977615903171853767627735319779730488507755927367725779725640002651785905052685505054744520650614184535386660689671023052186478050353130800289892289201336429369155281132661531758182640308687182789312457969072142896357746076244307010827570812919678874396742661514545488055413053974104685225697363830979607937724223617789824566529289062063052446858041290450057220676440870375364738610549773424218296561363855116373418469194173922203898665229129037921015328885145453835521876157659625866629602187777714554112238899876602590798459772586760456195655982511067143086508887110429134103378127386694382515490675097402361046056576651703946313281485582412203044381647078220491000175006272199751955115652696960540273527228940043125686981947849940960272208371178359415074347268203108890636297710272865418670802952577629388004244454461904821523024344972148468351818736198625741793804888870638927286625080281096505020261041821291923503648939322798590627649227658399858227069000340488810097739207371859109469429222124098341395636517518385572749894278676946110974785137799764559009891788229215847073180107842090597890488976614358599177002602423753126780899411544592891594007229017631208155670358344621820086494539873491935166119970999992494573954602787089310236025216461879199625322281167580039202267848550158847396336263920587181297279967989193149879187507617245500508295131902117474321823037304482199330821739990658238263549655210897040350244798678710978784923042331483175892221636859160563408438224455310097444562969440763903907334649185136951611558205212910204179921546726072566808651222772886119962386863020213930216409946458020845345606859499899907189279783662452613907246523867279736514878934814951220465702808920335719282271473094558001859407018870718999617802115907011195604822737743890325747366961134952692172768278380115019823953380371997569259237260030257000677383498743339917509167611167871191025296114708962086745929540320428375820529353917254044682534017313414899192269893195458952607986818656191160753542998245136606263853587851495453200814199349264693643598669725199542140981080304167570267211662456938437081529233617949021806352925593449367267291461920431975398753305794487043297671199223508418666731686014010885781495760847381383656675751393725154616568211058015422947734969684618237946713259715796065712454790708917839212639543399414454550673376165596950825581067770662613007583318205225354921733537513025034777417293023619524879647892354886175486238343340188218011500456877988594585879891135100609465238553058066053845432435074604755254104975662515499323642261059422367244038398534422451473971002922333075604577310097955639908172405023479705789463077701169345292136834859609852886667257484410961882260556397537334193128056197040822640530734104084449284396682466293507273585758495042129917969768053049827364251478788729907030777945997563854965691799803462812959552248422887295379040454748894983256316739934857129948618936162317203378818442499227020785210946801261980451608461650995834863847978351742022123326670654394461788626326895323466824434104767381842991876156634317911360722249503462620408696328565735370162882508258327401463380193920674605898846818887536802563578400481223882429009843105007912521576720962188256390261231034044843824145008242238650181513809025858440199741900535240318768212687106883927717415415922411346122912748250578725137503056002879461404893090818115063803462343257167132219832003787415857743421129634183367655983747379604192791625237183927907635446081821397629878448584668505643138946806644136785737683577285082206982004508505349101018633257208112996941961478005462212164322487377201975835287634325516241013290022399162753517761939826302270091151411181514567871522066893609133636204328963510606189920312225816864721163473266668488812320906264065585966130808166359719645348852548944740845391257388397456524324248370960594617133886691955450918231061535693754860855972029083592971092280541833295654809899207360526195345043618870178481056923379755489048153359450523049182721693762944106901669847564546420130450225664053412926235972496006639462587541960522031450014237301844145752776684779570358947955870856395224276812826129050587937091736731840825906552869134766040414369896611468059732558109947512190567050139768989383361646056421860417874056725331734776290433181341642114686001592292470295429798523216259045847044913352951789657627309599204058085544283984556467775837758815394843163560135242463587618244779401501205430677823693578231912899793863695491133181095587260149819139765930917829281815305368930248963581699270176997556878446739907288278452819481161190556005018438287986985234069386051201828864088004549668068231300402041531767795152519330688172216452479113625304215101136244175916803842914310313600662743040997308982409031796537715905641112036170434412814774392670929580111553985967888960053914147756864239274059107126591981034710229611114097644491258457243188780282710883523213816590512455180702205715378773507510283199233825965865409332652760827120610277893152610814083083047989307619257311744250228280744613619442478450619094042426666793955876049533461903105069561798856635050081505934695635377451850635269255000065023314954432350052086986117729734925252049595152348882628269102140628261378211558696538633636129255474715387535638281912070003050316611109442953925597208554784877517110331406285465187560486162542786245022648298891421230164253204361038185105617980180831813654000583666422706781398316165519304557118985398383120487059196740837130565696706814504714686532408178843695497134168097340427354101590051834223709722591122343675501768147820930002302464447614315292338032786985835438446242438777352306122958276978837398878845606850948589156615333702349213143285596564297985041701496345792266632383074256447003812552725054228601181050132485209868786765156996263764475517607181427703347942699909747475680710412210660385812274810286570777036247694004285923696515878267650195245300222415722243255210943683943139148741796732498855511337958908019219807135962845650844371027621959321898558150418331595568807704407097509893887276087266220252148190301374948037312940789478678145911735039034745689796737358946436694445178458916498381495031402778162900282994368801384618563798819474077594142688246937067111814689479400882136899742005827779366507912068176375241173040268619123374415647314441200308812198652634650003270045840761210265524262742659287143282308813102708371220648915739698533999207241196385834039878355249571220924451941359366443631499654085331434687715974648727396867234856395224629529407870263166265472442571882334757863783923467549162442133336536824383742281741949636710773019391610903821214094102068547592996637338268261655206130382420316318108250399979073295015155575840123886209397142805194286772108987941507808557596362856949643770030717809258604061445956651328512084325859983505661526834355203075416988082300091377374392845239739530841324132507443332882210149788921385567521417923446802808301101849264861456020164636793289432431100838249324857213011597523492631072552746984241842783972865510903237818408367840884431916162132314343683340909505948625202430608313873808553928215190154030819349066098815782831497134928644233078581549745914235039479625579989786321750582346307797914629579333349539545225094069577981357919867083686328104162353087908377386117270740431095549873570642902279664810119225471198701565932637473954396517109882668493639721430469041485360722938456872705988875739297197895825161780717823050109881197400737378448217496378299813563878250636941622457262329597167528390025269039817233336253236670580972620199033644831888137107069370673277752368930241917254645905384500438098970830994249043129091776652808421061985179242815623305328147539005281332706541834144192446056308386320143473222873428545643907361509205787047207019597831931232525617259037533178164685542211027234492014054749587708283237297108168172733689993933680392990016258650873673059691327793397216047964236436046509966267135799137311159986013986665334578615670684304998538665611113182208605518108092484098351459614322114211547366348667664048039697719697178117041557713640134915052547438585855527435849628237994422681202921049492335861423966098245127933632143992617294525068760982042769318301802005148691207733692925832209905091129476161051814120820467496645494510055535691080831403833339810119231078793309793019945277568363822543736650290349684783208591139916570371297056800660935567057128063188765742767031081260865819649024769678586486928224277754389065144333631390364990149957134339292080888474002819367493187508009750779768112243334766994331943909173875503100499788639990567289650010627043109182342438578730899972498441323532613484104628410072539864293907732876079306099443373429916239869399698044328501249341767875990685415647628001153127529033210077622867870539042772949543521918284426700053960108329460524642499589452208622185205119653680579343780374127633384629870081715847340926439030254343592791366180040903024424851704058763213132879809168930284310778212520714961005130531071050669256174703612369456414662104487704751299213473657838192994410669543741769872349263942939496812757912470120401437355556147963210238727663701936964063500605193513191521399931677926143699412902961755504100489010668665810348055689674492992697618469348531818925317513164693750779085193068899561489352014381042048676971176880791045537103332452109547100362464276456535966260296951038581459757873353304318812591128163072226182514310718774141107203482546011318739086186241462169608781133142605671834226022284167257523037685948498163475572933295708890433656686051436698623214476954682475610123101617427469710067659678038364339110510272150587628303552639464548463468746002928726521991674562033892316218202429260355096889372984246124482848356300140882211425629736882805402813306183494187538136756956888063320722829459341302746217185120915419751205280501343323116420094257662471855143920410199419517917557987007331876941147574764679231099079544058096572778119753437419663156319839423598754904694073733355170026305772961895774259522801676132102158912571173058340526108868263876622444499543852915694028214930640034349037502388049866908886311911603917121175848654126391381214756322373725444343850283424552094911208143574899306558057408342872864141057928624646740708549459491232917355767914763698337028857833504379144804270862660004777887337756858598212962989707511922846029601718835423442804219737708679673990813110226432051896927961086102958762424976489087838570980765861523412298415975112967879783998489102964764724651087480633791895840501121521637856263076984498500009480163309014808440086469957431781037044853039140123971586799128849462398709351195670154497335637491012643364318011202855988843077052114981032315615846748352733948026477887896816859347476361401665545923382333913518004090331247104503776137443712171884170537837575604761071191890038190358481842253016337404824207427933229849971433155604371993080443870810322399220334085335454487931794841676167450302190061267843176505515664638184489320363303976984186094954139521827466893508622609786391799307837438346403678563780204969245576332145797425952555692988142025698843489463615511811296363563553819040691479588927282944478152082269308003062778979072954146662792707398221996360276464500623578961680303554693991760529448321023036913989946050351062670826043825051446311989380089483624744569564985562553246242660209827780633915165903090031639006504682182320515351024633082774240101648011756102726006420143375141405850326962474170058886431800536991100766636089048123171272318844313283588886675288609285151277759888565790814074225367858373564143120164444346910039346983999123050104502449758673902314614183677452159831876349912398576915373003475668170975084126382298595077229877223658256816657182604242770922518642173831069221259450356233827879295478308846969470474928459336964553038580845832353795373828130319270511921594286861702010816797609010053173091798648761914995753404186950444722342204172703910799416984991449814096532588469514352277348026332214629484788230969077113920763904782852018223348821767523038831426515395894889204673287523790085082236457062174429192876383801915516987469984395581185034233295062854591242687669836255654654593775267463926634534245909565702068831826532634605692101780135873049885926892842029016362267453666861140491923165263373014133908168260909290541982086752896693046253061826805054412941591205781481199316998962635428340786292512964901856353199851251001428717792467993456605631556522460754041853843900789071298403730231487623905723756011457722866276095157056023170316322229210707534301232379491083226251708311303274180154451856907478226424803726026147572774770326332609043619573509145765397253075133561083946820095930473875441350994256108492305227235752836474868369196060053730299813169046583808265809442084307625120542617373094753212765765203023491512581338654738188027404664711692343377261034480279859896004090012617307886711448577205872557637984132373719891111005845231329523264674986226047379079236232659922056570128057956490813567038048272610536548874848681171244807578277466780369011385876528463094274460890421841753485856318559774613044121892616089689388660819755521144016089932081525823439731429428107130913388193135377434253059242930322748037214676937279286247930012151950816201571542726290709919369017222365823783700873080670663072729159212032038133771407370680837413174478722559713148532612115531652458646365749464270000494426364341875805291397259856406648372099887428814491221418649890406358045030084849115413520188386036588127604119239734386386469209504299764565747309000905681516416023896730969779982920323194106372762577951379616294567456220374600757645093542833232513519152824617400791004345730172632883158966051656460775011635324349441438139146410485450399322364738024103840830224338373619249053730083895511146981009718864134087333220035248983566195555687398631815597861255286543729203116243453431819346029086240297341067977265706374897601003185651495513513030670946889848478880350966151190491791261120639178991155895320881356502929001570159924187531497672089364615272423584991668547902544266582645498864008813768762871619098995034082820928870412105153414318161547946240806954490748187546344712252008923604188371790645560013091152595160630366195088090612047050648806515824529983607803705899112549551298139895157836117905976243979137271519931832188995407046124202656213448982665577758443171021404111321948091576524647089410639779401883873499030028921429860371128123698779280789922321560682932704051744479753419197009268717182112069901089057811854745665178376830689005583923733659717177742184889518695289422285011454694852909107651582890793259430963444590424794128805936186003600750912954305606249631606920548363505890240751816998756768969960647861701666396865120070829838792931548663661765010023728369092755694921801079725113124243073514636070144812847759004464502240623284559453833564496882439643653308562478890014168966863631817995373894942122328044491618424960707646264972828286266836170936227350142076310515919749330951218035518853790373477532431069501450890769575379355432149806969619071119891421030036709686215115145521805822202555046678483485585112370520509957648566596347019245264740123756720939958386918246611588138553747557038673057344318418626758067785141724719354237875337934448508086022505783577676840404681974194236283323985689216138213541689512397603352745425502230534531024785067769601753808638745894471856224984776936254875387330888604678848802453251274186012395102660202232786970665948874569830528342450661903354337596584053779262704819404612261822028401883636073506995170072767922994070890088359409191775971332348248366419823303921459217544282871041882107078528463374032085189356621605922257356593955388113593007657665595107145716119886460731515498572761014179400157186115674306835264280292170620236194384436161195535552176416211468901636431834621216262374305094772269747069668675923687631437995134688732869121584162698174439745456335106936244676523205418439514728466072480956275899666430703121717318808922132194401280150459909127303173791856688793869528885682922030057507659205314976966694669843233820231298646368140057809245222186542238813560898327124052010624343886703691071517924451058789516949778422515850789191752869446360102915195071095842076088486576611280243023205395759601679574032769344162667137208796918708902676046339988933927652716631982180949264310739585789176161395609784380463836658260400559036850208868653877809088396598824476504094266809578770201066667773433286818525620074027925209262001126370461625665662223784767426775422988548981121529402785888490614596492286697701832971333853676955796865520981496090471342321246974553833637663297737328915760696394191763187899647115058302366433483419641759753216509565631705049198151627629231038019751535203804712022710190226024513544554789111095545595418913950670233450480245894110036123704129377773805710721395893943086702839440719425820408315969479336632032082812525234104370979110128402122128866916335262272094923239118007153491925913463426320864835907914889329754577774386048859675682859113693116087425101829657940008451595652753961456078878245666557527572610497410145201388633187170660418376083592360854190956198189494539433655040413605299889944860355360091613060898533766995619514435548131093557191333700089737672129357791673991901820237361774235152182652757325587245492358820778724964796015594818945279447754448165636221746565794586836861875390625306363680761524906972875522281639833835319167955122911802616623716075333220361342500621742795764593572417459230679368433515386080862294536820032465320279899573381284185205009967531137069697902767929220204674188263684751960575026768728760365113774307627755221493926892656554395259329514056252177816137072174367676938880664992154091205810816405262978295487593017847383762413370985340222200741919850893768394398236715322398144654177360805549617812788936826692958343599616601800015221865048892987339845970550763365585217880611965137530901787911786812096458912662640522173601368289920190316926358670983979035927097332521163970271450177847333029511480643043885752113786824557044104375984990384969867678540865952740045811332000140210767403397767739224722249084970995209559051216394888388256399564191527709228328235575394512713716773913292127815090007825040595880740448967597485936478850646953364235937299148342990231237499733699528779187453222322068238034879349381429583776849381705501523770683878915983696661241327730705108207191914080655571729288040538870247868781964431549809088099327982196328216508895369897046549923374053586136209601599735804038432141738778894036506975097472723645360306738606278158090437745005307257011695047479013384800368145041985053293947233593662281875062309093867855713449608057259816085009496657667383292405507787992708844163197694213393976070435910451047843007470478441941326576641850508436716873396998887806526629596448044128877307901151469994074061244135216372180168099630119378747306794455096551443926004188468589935440139605839279443652997014598688798106844055651517687647122021281675735093869484847244859036526002786088475786111882581476597934048788972756195617258339974527025585892690149150389673188454128509603955344951182828620000004359655940510835011570162565597734281999120144879904146877757064573291786780904915980372472068750287525142215799554340396996512300634962975820965092823062265247826311074292441743598341727504034708388443449555919955604765850257431303714683977715613800971460625984606094403334855072998760527431942000430303289058031484891496779582241373224679318467031562220970043578291274196480642207212449281900687848485012705967800669697015486277697846306852153893905551073621600907526278319282890214928133864960886304630119866551948844334616514578717916035644887506926009782675252294449149094715391086247220273732381643982850358010529129960467705697674949906928946805879548144637283614308510087790708958838150471146204067230285327989896388406070854846179023635668912575312272000844782361260610188383278481129157549082491645932323188544679621298114015082999215441028368002586445330742251866857842017009821009471033260856244351474312696090543974423195492919222033319632714673401889144259274017526482684270376921817711548889094000148534778125744831961563591347559176859339578898210119602521903706945116945811759549706896530284492609226964011151727285575423276694696133669780921354366325109282287102890596194380527794717345365472335891868777215774594721159203707541443946089284161622957999838635933643333533751074551608327159079978859660141074464500479966832029676662170723825173766102482062265752557057394384295476171373546209041901630853466871604815892913609793856489270738220155189881190056864126656291079430407802500511987390479325054248698539224958426587943926359548273632784891399679352137349449306229377170416838805552226565598673552441375120181064814974763184755433756733754442766829930023614453683094796112728854529016733012207812542285938144532368304257315755141204267454444776723582208100207378888925785072658833057451199867405448901695031528761663348391717556918232213013525214624404571684993504220488861337067435043175174101872965497792240790096121726194258100687356095235991948802080683592403265320725826868102063276255892381602556597965677066630425855862680710095831720550162633839617398994569727585765367305573135061335845264061827376836838379342703904237325026788681593002388702320086421515337760298380880393206340768794076051383642676210182135389442652862499167891138808913644560784931900297473033730959381175787724910466572169837038615273394199544024513746385958416380019530925460007323244826395295007442432803152761412568093099206424683901069182956672062041383574107517018150147506314668603159894241678197196183259721178187626424739840417235351610478174017505815625130020115550457933747543491016282419162806975567221662609528654859686298993171652752585369171152208911398181372713168066209579162783067550009961620544992080996017004761112261348917591282637027693143328500475094068743382287682641026111328467113658987752263028662950487484644239127725865084647351908317248312687782407942676002995628591543081619328195831790583921069515524234334287790717380129575888646405661298180734067848282263848104961411813822617459412446806673444842942981117564750917976882094379428818434071470029146781908179445875450261677267711279467097619239921551561271500047241189502623526942525201030264663255314592680354521932887372477896298750895131317396082928832712101565849924881748339868368286613467951021587374754948044343320853863035450742808140722802442429692705585168021313035766998685960144179687279153220913866067077839571060872631307749131728775932292365329869733216689780719935283301404444671278387422472978795775058160725339423475451275419561473619938624976732158408996490202095426875852056034425955878240946713391021121753406911016273705142820327340862260997695884555549366009094166378187027928733150652783284897488647291186910181793858939260529438273888305251423000190526326945187891227343841568387808422949208787947728555151829538916473268956414041545217679701325911968072817494876903878131287460319147158608356900504251833546376051056671309877971879781630131374289475723761526149850173768113250541072491007309358571386962793786237873069613133799222747346529815539851618296451891932147980114714719009538644344828895687200394244039406586312151286007245499373456334943261311389467958363040062922098606038566256454485875627713658313903172857885702046126742864546141660252385552135722053300157771559705761319203111053587816444252554187173180579224655863020702366048709119236090136279823859326326121149445460461148792561933828894513780665819370419260660965289362870248537359794872659118188520778002800554999405367032440966360954076532951133923242971947612879644868135909933043041516347036844182418678086469747998327111756695274739258786453392931822219072799401198693683428764969257925781492587906904301403182547355275946101589119099812922645312658899552775683041215272980189553756308211267364718324700584999806283229530469368697602188907772515791323839641061705933391815722642691962160668366012392786182539162042313319418185197124956036369048108966143897884116118824576284830186265617773859979648084416394058701295567295689054911430744924647997414150647734449533204105199779646639496177119558371663254028064347649479205498461419759634438460146223059894842200523065298469859613021638722774294817406907366511133188272666457097506542604090838539479631224001340971901568180334797064775196660064934269838889922660488176646058008318953734493070925394531874029226623610588780544196372297185373202874175998323309248328937880520739366346071267661289604304169197884240513874057415588938222242182257210216045016939157954471771135564908879292278688214880149144777549618217555959889860404993230074786665547497196881171818163386646362891569362817806368272462501075361689569756799173984569806617024661073138394433253234273734321736446910466367225824815830864832327179961660528339800642327673136702956848570424984258404742982542580513663387783188282384508290917972056218529249984988068350983060047260398168217225682449315392973038956619122675091587534375506094504525431648149055745266769425006171625282286320674133599119525544526810001824719140503701288580471138379057002101459839002000232357416882209637413265474146231861338277502806498401265396087852166132011553011738090779759907295296678179920604628897178762023068253820412017036426235122784954578621319453253153566272396899301063597924079281000024904989493266777404466799747372193558406631227452283102577934857380991080374656208462658457603955119923569655258044699386084307771579424715330259099312585174112766487787791440456967871364109352998695834577690620524284410795232047490894626137439728257552728429622081843555022527060226849082250790921329325886175337842280580377736492520275945536311144192103226343786781218344603765249781549878071362671804121557296974246433818232517837487983181898817355443279220567037369254944245171948112659408205928645212222544786256283151938505071511978274664671611763412180354732823806299416483603462987724765635844768364863137450106031455536953928335398419288575619124631114479159559572426826483331266355734162177942053489180593267763192513061705010185537801795559781768740901951190059745926730363869986924525866034242240795852868284460559288860068074408288542735010329467431356779760196630482682952714322728277383312080180880167028917529006604788788550762439700474890912839456485816384390259877737573728898370146986844625944514649920739871180132368763905383512521278492665423099856251995465434128332280997619209242081210933696457946846885748590637624259816823005524301403841310076367076184246799504913199138280644691248529049153917921778832563558760665682578783572702776735822845086990801907418225729758640159850881742716251111753376611708383640838173604593231706241312255886469043582062521334045750535082514334990246634252178299944782696915416481826350568082974700246051479601342205676445475463577357537662757442380418526604842508263977591130864123745353588991950431453616658459173460397949468834805735543054125357081008401480180142433294353073335501491196471551288579023293920605794379565707316466704581210835025308006548751120469161596991111358467166587425047548953941015065486859792621657150906778845598549722991877844920920475478622919405835365649863734617670469238880558641716012456412446577275198912008980533238975346732220484769525124203137898522410845059986927021881512338036258183061943784198486939706363831721836336055730641290539310463757861204783170444599894766456241106192949580588630686616432766592230016882693215806922110080822917332815477371507227938289961436872795139514493081257772661574542751844410568125023625610266570664090514703098111273364155604998634004272218287238929475338403328274699189112298986590287746045222834462554744298320031114935620063081938062191631635971578463618566947341105027494963963603275204912628486467194733536299706073557513007496483530583720297430539712428127546525900081944755845227302709892614217957528552844576779480062202414442742848768774999387290400549293663933158194653966917302524861369405485951994564129900458177036120665177027084545542737464463790400933548940686098145154116615835601975064008931828555807710377809078657426331366555434964102823780354955210448999285063230680962891897692083337961313338933874112133468529129030394871904104652031749733342151433571068452020923735793261653208004604155427130531947169920230240845925887593974779247693152647997498368965783732960020414921136919450297643417488614765354065268629633820881009689594504742473157932940932948917684636942522856830153194431890932244466087872163157497771573856671964181220672294055712404945496690796238464328978749004683461249681963958975851216297643771540370869255191773196523110606293950337083064517943054773556330172326343442061202122371642674321693823911885315838401232137006755734873677747744271592331218113246182240496965483367860197808178020044575613659469226353100825598828182757461998240912440752932240631726032205116148023154900295263930867166449454027419705985386352475019920603732700563638757837082577863805442676075637078905559794462463651744181339578286684727584769060646287959855606343207548642339858264855231789570231730804706883388026205713729120310570585796258255154977366666235763270184278990640404078555870507343216126359414582253787347007079261290167898790745920875578358723206422813989730591737075241429580491684865587534442322055778061638005499095324982112830585843094276253287113333497442356105341734229084913282045400627108687302349586870303011556337378370832794638031241705474357395908003414726825289299674978831906516147064559732492275249206819862404813770596919119811382554160447692264390531063729521724167309999387436415457803519941602857093223210644778553561436866807374720577484818299288986129279994878316892126065036044493892695089123902891268719284155328361360332181770886404823560431049668408785837040359193799357855116137449597290279104842591846778265982274665652955312678959680848930792646498000999052750547751758569984236045858474952888973295595569044127835160282075925117529321378629736800302480446113082178021031196371004559329173625606943726791812011876950209764911081733395564505640512910987960825217177098863674943156712402505460851066416714414974562998092240122604641076314059997410003211480995862535578193689668937646798838679435543187625030999466888616099369430366289524336059599693664486901604872643835307725868605284261064857846001159815070901424089777481965573121451572143819802905854070905324148433074374846237522565992827106887302540093799209055909950703241629736513061091140832018666893010906250383655301605639028093216859194766385990625903744774183325747687115612656220555492642000878346899623420990891478317518412941101862217513329254931037706386838398432329912220806890550066041740799106135826703315711970882406329734123223978652035839086962745211040148212881699315114781846228979483425580652273731728963728217393769443690389723051544760832773741206626054816250952154899875338219902678983208096442570712454976151294952806704981696109696799407321924324162217485188567676683198401070214107859379246434227903692792283961939010621151097661507533773811071974869692804803713824278190064269141021471584855181071558670613204905562806374980596041693421002910330729876930795014276510635471890189061482863299920669092597528390017473149198682595865317875349860683155863742530169572760819874868186610991278010158377209055210194860553194293112210581143608158489926342708222902913587227372986615956262202567897570454631951743708497215829936590788394825198369954246336306335211048339863051037106622589767316602691135089471161398320651456051855925664910202202828099818299811625011814633623994045282409963088967003527948115656100639826053473257265855109419673290443125652824864115070043172662787561208870941973388373455415876174684973395381872861657789988568210419862518451545104174891629597974997342866316511503018438145621203193986775263120124307059560690212194578958417088127520278503717885604401580054551185882788407237466242256937474369092109640046483794953126618942419490271994454709446938739874372001700759994855207078092376610391897380388515245122432552996837275458058372467051197134906858982278974633163030400480569600227662793197262153706307134220721375846129702356649536834572538294315121251054399029218626708986070550784045902319977872773988735233065421386222625196145322018206654115490681005336708612164426312914887843870768658952532612146202099232772456165026909307314363357203076803660335990130702543817957450462509314620390955680273041467981577000795119974632674864029393175245715160569709023502139074321316867794006619286478471902943546400936761615810050218976743277851662339136435844363194575961941316899591969863379769518042772130171468485345157038767474946853315026784790189705914944761075315265170603354895086185026034295923769213602261600249510967617303848865494642942730967076364990392000908586222482030194929548130845451576730378693050045026506973398215261365893832509882754817568791837788322284583558903291429096302577265009061414593523283504226374275656760204842145543330918215606080756542660942409480041282302746391732999152078353743658646555929685202253537295510805477572878425888646866030436961696605848015730594455981937933095989758632040815638671936898849982293890240546516222076045228926368590667590246739908960515453722940937092468066660406519488641683119101120352420714372855035763625111543538570120015242953031860866547291277527469557680457900704119092800306399147603950329288456340754360655353715756579450823180895614895267974624062667913239785810050734844832452268468384504086919886017261459923501361030723171460196187968344407192669238478285770111026524305180911689078869278718406127076949506019068472709925445772748231391397751643862267170276575830448231685705605904631148916981558285397508966791113794260500788078161332292678184388795316256833046262550145859419840127575049934602239834965659819130514153198330343213641814180670351012122508091808442865363896523602225701105612457575219757301782718216425413814029035928557619930342485279821112449256271888241509919527265479541506757184189277869538744528625949633632728008780949989966199150455139612086262276497508375562263748981105287607045990190172247753540741627137415383695376009445823585897271690141341616430404881855701195208346037611553878330098770390034686783233634913799848399221812779983412858546972483300410512447705843022026405803417897981735556133287413915268221617816608136081310807749301158310398231589604394972972230241177413919577817613927691719095879921045376037730093318112913853108682030650036945279738786540613762568263718312101250806839833125960164809593758834036056124967070260060085459453416666491093142889861962044076129522394499082383984418596927004624502410853710313225944144162596987079180431485794119956767501223083854302443616606347223279228580700497462937482064515058663637048815749640027974797269241671603429915336838488032142910906671608961945200254785334269330611794872643565231256611864009541388667898358361296262597134665047404063319199209885055677504366041118082194385005761499280585208520536545612979665446449767305077717640819871120467712151396053894218043619965681136139257959822983238861113779899091181422733361988008412303833841027540060110295704163169005618275231456570709824604624911254406022929690740765721074519099085248376883775519511348534127909467838384460332293123848604631239731204969239743808096538266710139878382173821111608555956981105103771584858677813798748203464306274044863816268058225253336157578933809115378803980640543853857997279350773039172240791278794118984754482272242678901530349214618317916161930718593292460710927789547742136442469669851619034796318109749642047308838083966351422094582357937837474389157736753320937346519620236407738862420997804823369139997755385039210342550560098851684771907586373652608303836435316494141045561451139213703643512794036546035448229082987971734257550452693312322701674272712493129254669604642636126482190868317560302929085467749632768432926939801999267148710285637600393007076714965142565893040832496581236253679346641874830872769268046946469221488700439777398238117657968685870735686319374013005438841525628147220498707382834334854892926159425544498555971074318873635043311009652704985927752587446433164931853962076856073778710652335675071641433942520789322821935334284236281155679590098630368302052955675211185387857797395259979657467208762103883252565084675801555268967415850533576387732104466701477161812046981900874431861207235753867949921058803706599258587830151989470733097573737104308983606593698665803914699441968592401563486100752177216322496795453906577827560083512166584675551611800137501716187881272849731111718123079422488208211140444855908178553310868830116729103179355305597316133695900347240162172505714960364600836583827350464736784611507309439700539444988531777298397860719462422684452166148511733629007740932024853402211169989462884938616905923437903108976125507063684769559155698016448820879865259294391505159371431494957429390390128444252859316575576730152975511465175753575002057253215311725379144322210632408154376866261469109983325904272328884806587975083986715543108632809362606144221911133992108377218967096228941133674157944686829482033569800427530739465931592796415025390620255518558969207623257789141639945995937284451478067640668237365074548577249824917818468174334644093225955951321981260432790407920047459469333129054706467348201955664079698342456258899862826056910364503285993380308603946554386618121553623511042141515191321692756642666561059829948464772221779348003539304269162893535343632345443649087815716608950906296310537477809366322889435314057943486761811323816176215098281686529424290893344561264470712314369713204365583331962097394593707760576790275273195552386218502123777534227112374998309803973785883926333346273220097601766690600258306408166944204272490892144529759798711274651523558974969798716965759565170158584265090625038947216342971842970233189591739412881624142367211039318589982983688971200145047911570670137398345989456314486266488449278390545389392067060179901758554432503948781450582322756843238225332619843318227834975222597335437188270588058073407406424342874338965672013432531442043512915641860813512089034269702801384450092191148704804376389852842093164428749146558854571689602342916437477029115600166163740866754831795793408702643652693966013208209936810378125176829850936282749936399646175568178319543915996934628553823434175912036335058881151493930561821021560710743291907695387555875943451054978830274442525144020696529206578540293553729843554612999244294231306478229789859208020245004993618352487981600294208610964300847025066241165251943622944731217571377415261721831267821023110490198127515045304899956209910693142743907945233054502438537193096957871450563570713836387391665992069984794496563566809986954445829399665007700969404273498568246275770299890902153219772088172274784827722608906145429434684788246559407943026759628974206525165833752227521721004750917321972360525674676113904092912843459684813341176869626710607806987609263430358138447884343229054774842566922101064778281409652352113291140661409352891630707479089285424698911343165598186362716795978652467723042196504689577146617246419488825135965503322803580681217161122584603819457636120734457036598008147697836791210531142347384477836624457580721320261306121611980120023828687600400346517424098876104636950259182936092140276011038166354264958667916004173997915866019641862628306960275650885529734004271539830279766818001352435091165718256711745791164372445631116870025048584961359998932406234553907447546557899545105871580528184415999988134073333648417686985761310883656780208560405035074047875410366950097168918995410431925769325965154441643818833519875120164360787287945336124532694021547319577721029462270138434912332178528196831144239791881060139433380329928856049312191086025739984350670397558840812365960649153882946297543786907351625418547036496291376503654713950838060784736430898767682442453760632785961662744350258541145997416418021019952406351425565115285180877440624987258516908238445093208077091297316955494088223656183754668932188976389851183798826414052674295070290885926014634716223520615830924103430056528735309438481503583296383853738646171819462800960697731230973405421737727101550846768907424203393062976291950912214313956681082371401941178554107198393134400789627823843519509463826020888705118321571357106665101075431760806464978037313884072519311805716500551136758494863424739799555252262361344501605419294229942267793004127887612799951522839801551219172065554460255937605475273121528628729874133772350863837453588910789151095219754929093380327853103944777829177738572807183447162427271719237940139879109061999675807648524572973292483519795347078799247711268371262237137104508358325778852138264673575736165103660102004509958526501921845572815885350036232901220767624564494843664073899719888771249286533072624921640902800134552922977289528058870784021310775347165406978140505671079701361374440264527351558051817230871259436132889976169461334942319555769480461053677695306945581644901337722572282652878695517073468623966401534283788038387402342956404303407743158322268452431771107583135855285342812112900678805002717897386637227499714505833898184183340603009371889171121527852947123701791801584462751779883372181966164672518394954545296198476320753617342427702437537773421367499622076906090514184116310134645248902821370631184354253981782136731791345843227009530668036998608893642958814430438254375423920821158787476143990154811548113825561655110979311257048784636463181408097754374956762547413994837521495769668909509534251162237858334197632590787940169927233274047641257300760451997355860420806398423679897898018541149236794862494846270152493472022385881669743636043970186660616773373020281836526495785070169700056253801905050933207413500732208750234031942201827490905474460029171104138261500498824477705395238102385383284349572768836269215020343706299274216000625804480079122324622362503010900121535618746729911298182944289464799737562419166081360148443429868465061056842774190615616959216621238795500660693432369311349309104095430081004933848273533742936402142427897566524682747676364923207246111107004593209651678096512684209404010713765458925774835072133456498943344667701668263812857494814234099447502158182682146077880949666301013889125471464173621498724195951055906540113597273633607257061390263534385168070811554214457401004925721556243204256627307634008661195021310959331047867204817213228310217449432291696538105134542675872001831238069415066813195990717671624082238459147446257190443932532250156249754047751854865378727066857903245014638178234067700064973674492206428410238719575249961378724664857248527112108157255824936337955020823598750460738244592315280171470680367596540281148513053774440454258280489541676018008484817114918611391014848561245054095955480876985201934473551395690226625036443857869587519954102428535387150779766394538344543968618455003710257056191934398276079987983280832426918651682293636615469920371817312602221100414142705877914180307827179634898672797518038515519096290177666478230495685649723119310684119440203594141487857713006502457162952514291044262247856796671318183483114212350383511420729809797689484471492875627970447345822613230881540793242482406854633840286624890361576935952626887956557364709797772448928435627104897796739973024937167141713276199511303953184543080913395436225274715983708736666972832134187987114612024154253663724674719514464347762527851406780768566441306066341759132262003707887565645455508234053062390706297201063473940552503215036618760628568721797620034362623961095337756514374042993390732373799763433072540548696275432638186907961407922356760027419044187041371832081438894090035442693319739736572940965928325837813867257654993295028031259297712917850853728146584041826483009419711744834557134490843101029523288059991039467324033360328794512853906789061953036493596365484523440866763172556961118617778101443147025473008740906094418788091626771013457312206420591222756199274446186753437518727114279207292137419155884827241414584556155949232392467453664391818751474200216355487764613480537719239044366914450804501423411675322230560011086831219024840152382105029255013881946192457045762903804283401794437258163512896175430311077101320079465739987199077160406562381470944959285118531648732735197333904329194815024604927130319716294202404557832146882757648409634791806892323639955523981617950196231457918459214631967406132419968309211943849339850357530875733328616738040361204674890906141534705751758507851435669735697012367517711516066923736251190623973674734160040250268067050379582255640654855357080262618009046467891546496575288905365727529675219065880367294489954572443947860656710045497588994775818030712462707219133361020798624759807954305174108819834043256901136591300126392164097629468046844626724239997791754254271148112458300436217602437912953875810633414640654393731670231118397947345703151686939629767565062425823792563477179987076212700967829098953540824449045826349838280950363394956349087777582466057006501993424785494553096339682261374858421881170797499500140546037165365997938870669733331064374063133185636041988351456879327333653224728801799825192270053966732627506046233800294847840824781989818985458588659693597081758100943509918789476856331297337245279816116047441462251980822658802863708269613706234996996209875309310278393523669160343078921784925164934013498586718546246695008323778940322406155557871982094988384161166966265694032393059826790924226658851063366447411500791021446203500063691919271253316851900619876217421844433842282550638841192507962860984821394119075707842268080735429062836179226845120427477829753876094349242655826176468875870724844806483187568846658736218126132839172507300795275336975572595527295574851858893237651552239799408439179192412049528079023907902012092573105268679651077233430043713319943331920842530490459791865473499321681429080889527193297403476419827726612301851940000746538826307259689321893343119058615180325662620702315166829355639634799698679560271059946915648945511841937919473698195391686869059532743168787300542925832847774194722088755618107112984699115951713643467454242566932264340807584576415369107190840387683125521260804125201560213014548962668791146799551560325460509928371475838771207163999452857328800305515900063888833599795251079179977832313662014835140080739773635512967618566862930150128677259262356534747236828725770080524569137093025617053109805766980308645268770308503405475936762873117321211194327114409713601551741304278487744321444064544405965031820685280835620205211498011169284036923547692816147579317667292849095544829590290082406355857865222561610320833728286415570613127365661764635081362238021409151839642323722589759444472290541267986538677075648303441558958670040701139143526547104156633750001955765240982958751929646588391123909186544472960232053585751939495051128292966044178851209568811855455159187810377823672756260058844495651965030130070574335799284543473088137877054567954177148867164629040125886942455524061159021116827592706428864903602006898354165227042684782107230193300832458749844665739944063489463227353083977307210111849966043501774628227389569866486357666567973629855050940836685150750588413766272113828596164430115349714809589223947607833145294319818189794349513878105579603258411998706344574480550572274045672000194373542497616152217594993329213232653466898257767109563714398714120113008851238646660063988224228889792528040278074352444599673891870164622664255166989080351447836502475999482222247792389540978104938997595387574194188926963288927371009037717410333623216662369363058198091516541505080600217882859533760045544370314467851689289427008125220000264120866269595630405190813170170819829074175099037830272619008278758976546047756343209275109342355470790830503304395854789793110393319401135269316740364619415304919837008990333627685133419400365049399504709678165925536678818044273518241482851716723444337623032442164697220933283015326935989386338822621424102378085724954148323138964026121860376003509650566380524720740581502756683357507483435560876646725850519919949588345989796798843902308611212696482136623161735433142084358979096035923693419626417066865055562337017343218257586318407233852941483720128659879757384169020156466934989946111372957405898038960990425640867078704365718591101605794201944363709359216878446597105260967544898231863706179551534843088323221627919128649995231877766091916378930880244544591933903237147922105172165714119072595537826416547538548149587768571975060050667722081760033975988797302593131890185577850235814534392778933701971317541674593362649766537735799416505050101668253727361761785890263103953866602253513829123069048952293624533704072748426931380469780110801968103598575098260682269154530666144543805809902646435131252455383377276734952040981629868230118337806372810800068080640517168221475375470305433128459373566759049670907249296019682854250549307825477758065066683388048988551895334424462659727201294271803504702852700676224543089889980934615464016771455452614987102884320347050725246147893904932944542662911868579002672451048657242440939962943070306388862903668998398078446192757809171276156496528732299599717734199713406153632863954242361012484591497365533269407812114542135218867296258241842091253909251476979658946443965946942893833650289839538848626787682998360642369553327608846688383676478145270423912036800094055480426044908573396627217825962919444559883172534630250634702052367634661884031642196396846174305415704813533525455866405087002233439329073434247085536292121329691113760855047707255541237547165154091834137945316623975708490924270020821242071200256064055896201857426088170468649474359713668156191352235709648282623537298990271560186424862512584646694242656377811332591738546684471902528868429640486283868461956713506680021146022721076963258218569555610520460126653150639001077458946572916909308860178834812396471995177435455151984305284039360644737221007736962382664512400205412426074287520289657182893939794997531210403725233922198406658010075615672212035123598167912785238281637688871354072240281273657945654106973109552638807719501257480803884946345247675774720890398839898392226711795690997264684553502728426911731023536283527628539611235936935415009866831384824687811707890669682596344243043881368574638577969107556697306213535179543078017044988297401146578644145911298980360279081068003531038319568701614478013355474781829747221749654018385832014548253655388523952284604741936534319158583366728832969639293715871310049074591966795665545165978605548376114395110644362089120023205893714069589924216768610122742404374557784837643510880376463578888362123701720706634889936129539801400295759510124164694312675774157155838240530683655763446316063642880385675862056538018350203776154603677558641263693070790075123350727698023455114909440314255727392738558609092190879537096574660319030666258988768234305518347839525681216072957275263792560417087644995577282394596516815116330037485679342933023819014133848479714044673805654084508397077778269891525573796738037949090994681615039858132427370615250292414827639935737841693687055101927847723988270230307162190991783551852576427513367177941302448958747889950249696236571561605756020067562480647230381941805782296000548528680587549534768182849514832744017118933536094688401245410743606707668768277022717031841749819726250261719186392436731631731483981696840230831023755173120045894904692231833047879421906904214135985997920056212519839928630422385914140444311957936790933879383015525456207786624873257633027255705581864759925414479973346733213559375604109616426680341012410088769386230488496488557350798206738927967454685681126406927692701305391107393847427716303914296352963528468339078485391743948294108397483472718039531170925710575809221206094463754013505339648452296092933451574813972486183582993215740137093248809621679819556135111110307760064072348855730134708086576501105498500512518054100553419399996462843285618119131073295184451195394556681759887444561587418997373344232128523901603369049649613924053416885671116890940975891090959294164975868256870076638277509837747677976526184359300510209032880748618899487613797571252543098702510015985360279726247403906542755416723628341993928511314249583146023695429243748484067603465941583808517240824701664227440965395740620764403158694203279697598157737440056493827539026525492466753496226116741536952036585853202477463330443775494332792672947787573782352605353857211184679886261697887706842457040980828363515999599504422007002448863420220631918305663542030305921975784922060283245190753882627919335881098779058146700086951109952606185088621581909724959592201190074380659856699690053876710848667860393958560953957374991496688632914799673407295233363318414474420167340751966769684015166921442550081840319275909572534714929345683801620067400244557750729087601151785521389467977789311278375269869412382554187145427410751477322705355052909063956519536584459591659730981686535519021390283927954216298564630882918738299936345559567733942510814691331449783360334902029071566982486243355010837449722948752687969572641095363311872080418884879366709406363760544479293529705224783694336029364235505797898481085649277368779769612512603398290091027686703560545418730974231698891914187705894954247794506833647942923998834498623040931100599012308987215909682028198633698672504239456244652939280717566943216670165040099069381740818567775992364197402255982283636594625304756684568988336566273254587438089390340832176438337090659819325633148701513278278238715052796149261367506059506157009706895301556640562373290654820947992462487817467024866849365852293530318646939214601532707406015905989464302887794994757689980728576299268514978769229717264734126975214988641129298640793954020288897671765774035033658536419037412835587752211369165389369996144326758834205771156949334196801615325078288050458622696785145650362542599407283897768990252846870404641658302271502959840310414838889797252073725186043535524644948187723136577794702587753448719901787111781226935612113187900354951429963873891059062254407408936195633851790448828992731042000469278853220664274272649622793050508264700688282195963476955948008307545627340723915694874623292669332393709640594596895777606655434100878340112361461767122812190916836725406569340358143579121770868536011539336276658002785527624046684885207364230968301807983936339065362644886094791242826785248384688653795637053748574905940519265074014110607348497603877898963879335570475227766969726666952865080043585394928235699048211101475826075713699203230814439047544346790037772520921181838663856606654692515023273141737587742171316612919975799622312298664838356366228023002827072557016586556328765324242934055294690614916272345459009393352880668761126387714036661233573954108001147007055457968879784611951155850253554988440144716689583322964280567002211303740624461260660685803352797310066939218591390652781273950970367544416686659188971967798315779631497329805715357964554820328187167940380122595943409535887024159067657269315062926026766022302863260982492211988299306877690093399758052028064155351835483500488337581154293065066482715865769561463815571466915557926861813159848225215297563527449614506342198710071777411724774310021545611812540448723984912127918374742841108256427708491609119337806040931642479529009626968882814274417026717121034922503738094345885624351599340210627471747096201648190243875992257171003350942187205724277700287290668996570057361402697085261327291848275115784537886480459791040808502754506472259692516703992776494139796190175259291615802667615503192421017148217350416481822925372395819902297470794100278786139589929061990020080652482275325338746778030244454909996969093974030652769724145897265825462006488137808044098945780893719039587644638854725640305856655560159794777282957199050104849228473831250369124811103050511990391753843962923382685411935422263178518021105937745377218000461750243340232439736285671992615802286692001636313781037363910362055161755686570579444177015387608218374185295985175070947163849561541382661813562103618220951747854144730154524438926058827363878731950872181587711187785249499934554120426300375396648131355974286386338950753895630225944197688159764115696455341863355209981453350525342537836992514899083014667580594450369624873663126679470925799804877443741592575038281747276389913592709793144772745263469985257640727849406058410983970350017341531114767096418962768575987071260668395450366988108577890063533275696095580832826226303363029089826711813618929392708164718304249206482419256978569195774561713985164265915625651419193992559107781103193868621113455321766763454651470573840818366772676905169235587479485502074328091225496168656038032126000103642143944286289430663482494759138014440840526338423104696587946063504975249256856293959844584201965068859705986631383006235316340009252931230029327081331987753885024634972991408291430279670308182757644323644567686145003317112411551273707595435923295210265973768288385315127757197772967203462341984090549489955107845239270078621043622037274960510724218032764858293080789832277913941739719453594963444552403707804290872521157895109282093542403114023067140964899980924071469720977054298594586280592468311218135705332951473248538987131725116672753620521673732930545572723836062263217713275805455665360136506268655416800364988375731725348382102749250810539245600451479347444044573816293757625682165748877465184791235745632323306040397442771724150418798226459979881371997288695209251377173901138509271692226944087413902994855747987398059935473568067397730063404973572746036448060045257897711180846040970073291105775043389234439164674725222704839141097708934427978405313011143437797858520984063558251356845029251468086152417178610479286972618723899840315255933801785476389733617473110484973474632285462695440714220274349503257793571016029031469060185216361550695616801148594140438790821188705020573991244006477906449966889257254734861266813119452141271135920307958731385244807384419452475969227259864668369067148230128395321659945713733015030660069823569638750304523378099137060324553749510905208482905945354932880270620439018154100612560490761868519282378398040360106678592615897643674600159679326155940654017952128953239232901002249468936602902625768755707002609069776534717910322571098068232816994520360424973873363945010323675607880079257748436849839471072108795861838508074012479396922654305299971055530190543081760741309924721848707513541801404676282242615999098383515017353644995868671591023392933425361900714402240326043806414342460778484243519182873419518411331774644280611611681157477637767603664676755466350686623752726761450461714900163295046416362260168556390218288790449698479833856602105774397987541900196239254097683715851499915621750067322623346560872044387770447971852940094401135290639877495558238421990070940198862459830390695052651236485701784523549797918735568144323802292323904849462486669104277606383869743836006238177359886490104833330902659582703754004356657753722408087376783715436122362838936564659984183475244442392120211026802429792634886908505175157344434754584409716337500479196461589564363644741593369016614485120944336407820200862233264883594702234729365947506394315999737516796899351154730320248857410808821620889370818676350986840254413294280788762457806911375264457691274767672405580982950009408954935733814774964768593138011968265045304446746816039023810255246894849773113517435007095363755885362660795528695060918323322628250291876119502571202435084699326657937045647189131981861222497023561005466201380602747498210184640644178493334903041207132548235878363246101659210374582726938420828994480317335713372504129238817112364800122614005606486545936734682167798146389336590774462253097118777152340670334060761693993789190616546746110944941530226381009388473248194385862999020026634308706845625095901707323829056752474502969746260578998725540993386475955158673997967436510333372530552084924351119937927736599123935785768781868535993882802788452198706314297607091878302318717065814509742694030882543879788721997667424906845425511068766160838591716375788464526570651484719779951261547285729133732592438197233495125227721133862160151314019871039979267260019906590476325385240864535240518237769286956750002175135055522336139682450029854914253428913133517627853161647469172779013572147065176560345387895203260858215167293335722329996681792511086425813071984883093445317427830252976510934618500148111772755854296832577236631418922234320771412937065116678927491532161771487696073960393462347581836545801963003610417404506889692968232966951989406194871787043376275871058014994443818768030694440870484679590571896243694825525869598989718394186450300213155823222770653327070970322718877464841113252752637865039548513304688142994638772780924840118005430293960157138524861755107961767478692920475220174958486702747363622908949118216361815336238319602911625314119779220153826634366571578212071917634441666763895878166448174420041641053035963059682485937983140788527259457041002272501246164491360067430505259664965689429510875547661549973172824959682131996064278221663409595863089820411808473662647069661518386517187633548385726355337597069970026870776970474072743901489679109245628786865658765428047682217167577432975400306569653276740854894026425165136434779766471391927950535912117389868951025133774167905393840726229035539132032936555048267575595277269164564882165117887902154125417589400692980233102377620338284046028330490342769743613350377101587220666209963251489440434431334799126842995652161785946608396812685953792039181419480222187005898666574291042129493789141611303921954137724737393564734106844846117188302467973099190271392134636695002434121478193003717067482871985093143463312598643482428091466546127277704664605087344699251294717764230491157995725371047023478688614537266802715439294271712599992597896812507535403401753382887689181807476330691051919296380767619075636864704445050284039137033282483782131211133157826999329618725944515072877805120163756100103923043605155551306997219778533594840983314972601353878789865355617912273536349342695586468379191104844039854948832049245647904351538341933510053052853919000910832924575218396761946885687220517340008149334482247086657682513224306456782227676207084508570511594054869120258896380878042386142908502749369209411231934585688298888177599965294742525942082686499929543596530137876523097585145220665143004551458697941902356660567119480961506002252433021737482431325705444751577137836765945229439055390233539632289680004308921974246753855167823561383715440329082213783469669542358197811691809454817426222809478980378284790285368411160936844385026043909508260237175376252325062343036050239333181459957970069109449541131709943023180227245342087334089964140225318126929232953935607406869159388633619205721681118485350760025948480818873105598771670006611087236212435995524415870426507593908498745434100567374889603936190136341165088568806469452228065730363617487653267893268761626949231083515923473929627385883495985855937369794437779899249715980984101584616027586666535897159598524734432080134705619493149323073813278776953367786126861578636031432894561024290194332399378498213895124875514368641799890433924461783160845788249137098987672115589946927942166066182458169240046251024943829186869890739620843517664026113034361324239914397987030321977296830328224137992900396923285001570200238444807526663151197377077677649885249244102727157905446857181450266789064818044720956967739273458170022177619373072508091495046315128269111030832623682070136611180077922878338482194120810556964701587486357841298518045755399375886260881551735248619479000816314567695973255594234356777274158960949028311419965944275924191308833431652601302651250994546531991433626764343237725949865595883987982183881590141986276370898760068126546386569250503634606670321393955776662985790767930458515478077052657038721141635287277526537043997516275998902982711869788133613744167119227101753591016777786341865438009775163025662031932394166613735996422065299898147428015277481560471838063811056678974782659422860800916021266767199141722360528063114773363735079647824013519937556147268846594366391273457767552700633335576567598927770335543380961064320451025421292057631278380308791166966973788148911683975065290353789322042383020157182565439045477847319459416274659866532787395207632867906500957860656101947969300811220283089723998766117547657702469187939926127531224288373220469126439517886642099745430054661960232414091835407473103964150831369201687156749259059628555869482493670528701935482935345975663091272788094308336857817116687586625497406696879719639601005943473119025915789627621404727820669946694531299105635718082677697159817590415307658041247441610322233588990769074009432097871365218096304304356459791621111188874075630361103645656297717518587448758859641347815041501367564138165972271841624490867534576681508429675175125002044693946660412202414690420234008363988747237894860517135564970164038189021520070045607652552411124980133032034657125092229575208813335568963232298689337152166335539478375333260970459580226868687643174150720494183818399323858600960513396137868114599178671031242445313517023706414889464429066538702423134283061467547943176927311785619959914900470964858095160551231831509813448444398014560021052336008481431182509044258726900698472899304558640185337023046829277797102977708543977742252017652332073386621571829597330950737783075088716834018668005752425959591996557474738068248547962762520919992549213614264019864555977251522975299320396260269148135355064158379905437044108743806418520245392987497230861555292524281067184165058654699083932955785113098307744177842479292089095772275587098033232940373063221485259565257439973832317174016602173672866065198073802616299420524920511545142279122884045439038255594960699289819459814562750852051652027411655375234745950924455490612188262721782550407006607519734535678033187443063731418435042061493047179520705831204900328912216146549169737735870498764793400109938155685893240828803684652378155241376570346320643923598917038396079144767187902170317581882478197890766585786384004492628591869490471978515433643832874864901050158597791717385793448862612786483006141367545878566991155124044149501979994345059128139577029186854007976750524377512912220127150427513068699557681970776191968189425081009217872263484204089109842241820772549542004549195061826551546682872387926251381660811448587638497068033577815956386737416219793297832347972260234178035053715360663191129547822016203400311316595040351177542743552604146286686217853366972175864124597008559092590715561918856631674539140505589470372050049030001816546638822486713645065902436285019247461692287015977154512854415366792224926694270508831565550387202778409419135428730274217075213797943823129656559415594367903683466403376460875910085493484814421187573282599711344978518360448377890032711492370892739710334184581677875126586225273581946568376994599980344409751871289898227244160044325705483085353473343857849151759687275185237086090526143663538040163431880070813561450880695802495521262116524582904959414729511104651539415667817782121026541145922331624252177663588980801433584419970786287378262014577888025435149131324234832123396144334849881736883666413929220316389693091552913201011927067201530827084197128712034206267731126926202781343559063147238553514389282493438120301150798371874238946991143255716664596513894981683480625018207250045038861650266574918554405004750745299921919920495484342431124067911559016288579944324143056940207929284282469094009193936875280193937700971492165264677708245429900026594239082280196524797722799330169988895515195768363048838759104695174431225329764153259336772631302372919190463301388577681676743383336140745308184515177973465665738568839760418042269847633680130122475474688679998586108009023884314995691246832555942845235148995107639143506137937078522032054645812626979253003870780668833880705932447530025668796666749888061776963824290122311807690395191429698588580419586996981614564331387019248984971329717329841984677901786301477680725535914691999725462164030745068343669864288865723726234932855658786246246738685096914375721981315196258875380558374653059861172786599529229360013754615462316191859181938660368055685355886329099231134767837450961447504235797363957222314392065493651031367450371476070073707242000106359172543258527041133478044100256029173054634507896876127276060008408981356864144325798530224035905047161463722708415960394345622887340652902138703286749392947776336060594901377348754904438164182907608596245057638179631457421658814566567670145489981352037061098477742668712724952521117645797832652498711820004689890413595972540253093933986094616344780512050764459193347372429172136966405553073204248676430213683435998221249878439355690101787913806989457091638703051907329098307722309444262710666706004317670685719771298527685966386580442003259892330779950992473989911604442725607856554928011025546147463589425504131699591484707311025556661923137077608400256146071749683851931662130867235578906567171701518621287004404187455696194267561920404960006688769688920465379463153150394605299041651976719641548993236562217555016766408932507342801992781448498451967898340789566253018511912942504159075535763144157586170996161085527441140413269978214088753669497016108761436892646125396379061400112248300936749331700515808419067063875935574604754188156978103636001432407216453501331761539685515264029081156340143274066926408917106275396439715144307056517240205189110803649002219670451145243181362888954149635412520400280730047932743237830165226562076565884147250458553547904496997154540720916027689103962208532718517893324083253880003147662239189990408952729668709791505189839556456988302035466962194598292934103711024151986834451058727584915631333460783892700302125616337762362505163211256096738207600097655898722879651304468611720510853433381957028883139634512258205212134918535329705203085555719651151321512159866070085535430669140340652904426871724043325207776858027544571686789158317634286246256286401434611882409852090832344204603533281464898840880435560892887072449975913831527535126119459567399012686648298214426526816041473946265931507165172602151815061211291601290720437408467825081277530806497288203483945375213666369929199953421327254192194520950105719980753379310648630531349972966698176108153179369546735033685546790761503035636836271673204167600534014262027889816359126702795095547764905226597077932050344900330509755393363074959892554813533135593494894152888520394787840089990206770556974418981919199601746932134009946346577228544352053725350923383244434611335073220567984592731092793785118392802211053034927526177678221073279189364919507537872019993757990292438610120371761768873527718990727173744309702272277897330131596734936767487749716255634052509978083321684573259204869377272559979672193712839145180473236105950296915111061117165119666712855687404331997426547529876178321173423213913159420418128483478937939461281397423757505643719507607272798438484799657332513691791038199263070850577973145032165799325784428087023385749983269962900988661863973145068343486589233326154648919683644139913971474334396224181336754667705934108308011372443226105135245994645193389410594593640398066593016541594575706537122444011628304689567925811422927436118233581195582634133841066597268086722006456989216904974532892170992170886466876740195114027028263728094845146551728632129604470954254713254392452690125192950638893605534701780915295149218973097190270484954817724330277007790288703394148367884895718360693327178935981554492114483645899490613551130666977993152906971916061623360902905353744966147470404071086328002609151535808653108119218999287805731373793444642316838373133122889734324012387968902260191015427387129955405742132546487721758856465676230604991842867556795148075373420940300924369372816807178733939013456285075725633161571338031650385318064762631452301290269846461109942817426707614568946152684756410861563918479579592241706262417964098994104289351895860299482727861296258605573607914158321950645492073013722437240545723660483286788167051608244117975066309639718889926270223431653495887652240133145903884680229355311121916192059835409258755458509340262740102276534200455678683108351188064317047990366311622976308478695098678070315702735393471815829758272439435495511254301051607537080339901372487054585745890249388515974209928852664062248120131053917504484915226533376388488052890386571716312749278242111291012592310405792007620466500382406400956676267894326845719233367177023436315740353029166383733637738804134909923830768786374116068633959673818398743515119979224195641867228073432743817935605308485215142090168243808748456227850172433433589585514288784669539898779773893016239202631158570774030447416613228089398244658082505644215481964340651933155230232415694942758123197946098336806757489289444996818534731702826546793548306231360861892576238354234679512507288526800712717703340123458708084613320712953280890322941995923154396016184103714249094033464586634176614306278763741679299202197883270745792982139980571904193538104984311417288816726373028330608939220932812185995692674030119106650971056372910940981536666190372859779310687805888316860378072726243152716890160939993971250548174532527646199458688109196293964467581219640281244087240003496472524623856450508612527763883920051230593705882766798420148507407759293991193151177484301654462750165061224377186449130722571076276698391641969919381154730645170321161910606152042195177019829471403777877552591682736110934841918320817257468614724833719568768851661045006365576072778478391694373375360709520470469067157701548875240960327110378445319073898529255301642506115446906610663147788518474407953666800624717707188935922603668927232952089154833272569900262881060422396665064513933373209357874858401253616420869927646358765017558748822824511592669278026521728465716278891608796311543550399871264194051539833000340754455460557702066521401456938729745367811959980084638940348295928633043480664255044026351200761596078790955469045219646189995012653877014314735386041456631052921752842835755255639806249290927511498389239877762401706127398066608094422706268881196681066898056016447148334817291814194701904234829159174750920813071490671625460083954443459041925778296634156755679102155099167245731298384524568061612368876317483333342040341426872646692543327466719104552345452442466363375203798263918575887266526559486525152702126677714511277812576227027934810256682715054915727786192471273060140048965111385572383932236700930250224618648323625954793182353679197626999669817733814169575138857698803960003935786054371055768536423095723478142644884216197209669713155153963515860155740075266182760007827170513452410931245853505891436197619414195272148848363605418356542307505386012158223307466749159131565739288146760900298655934489533199851121733565372374949194622534986697279667768288466611920926548298922720506876284077124274104814201713801827069487760485420870630779266477330212207706043727947414946276539936808073699406295894641918267050464107287893454404685406066202271362587754576892822182495109011188417572201950989815070245822964403592744704741237550679532909145040088926903144786030795585042510224353887891937925386065349981747122394325775112921839055212332424915579085265339831803228541583286205381759101430577800736093129460266137220084889974537985252206696923085031611338827241221672065336938004458111893183814277310640510336179384814670068959973016722575594143346156052515614294216998416841069655847456352459072403597935850988446272781358816269580693619729546054530308853995492717819948210553750068377309608596887434551992813415408391180384908568855809515813122155529066653594716842222677406540600884465002706021286927333372756763210196090095490558295264054484234616817258808545593138524965655322666811239507959491147820537427665348308060635228261606754583837373857596866363446922253085741047891924684351715600856567653075689861524627561074907672528423941388504100740910817536838889036937389391349817416381542924054020188390310867341452141407737163237060405651407333427558010849277153902563838421454369481575635802848156135905022714887860005752523520870192856500899755108826887695463050987542133078884190334434488255049132965163556858613214180047359991263085274046384685356368013543188991665266494111230303845595809576564108573010549405513556129678178059763647906453793156251853398913004661534075694587515657350129145480062257837005261380326012341470698043663237398281227589835970806337172673764088015835815773712088765878831012046165727836484549574164802620092439704914113584416329609507966376259997327221204132329211349410935147437912136779913407142862633656035408211897019800360320071322551145379907173254369175738317696021098529585883703679012180934839716643449537470542125566053181790468943390505587545883394405115927994585267595205074821942972631504051704125843993139638013941692074670030884797759302877142901919452221639588272287827983565718882307966116759609352744257690522424391166164127842414448909459799317725277198129231309175417917690214710470709676427108231864173024246971679702243058038544030014573280860112245208741546357341037727965999404099159967003157007787344354204014226917177988607424836095172850300699653115282909459953946670940193663138910274511054503647454808396467407691929076783431164720892650570529065755540634494521045454829933091650976091747484426217059584433740879113936907374894777869792525641940090989462920990087999208588149345644307832157668333751173978732899537322004207217257692565602057842702871376428235109721425816891195121083399617053893447698668175778741227014335818778600126737344671264233250997451268406202622932830262950381394953535859803256933769587618403279767926088366932510216271275820167545909263752214626958151299662073127777072586717072537472800016171134014603902649122916018216983037264610545185869707608703086537800006071768970635673688583127892954678374018110150731652428638749918924936068867034683655010600456934571174909735508903897051277045202887492916123783217670927012178560230692292560398237996285970739369536827139274615954907343484300851359168372160518229134650252523008536471604668320824903940488942246769290450343540483532256059253023171172103136382361260345562448059131559659841088603323466269588317757714859009926361982737275959457285800161288829772888780751843843342532554267981911497196250132779351702648103231099639037189440451991383406296436331572865940726978890357598419279903626534710067391637932280509340514549548044438946090213509812925684565621070086323137521206356176400514169220443144877557263901211778036464308951322993572545515758207108816063677585850874357784488402996711673789487507523385576661850899517413178588977615333621180216987595457915869470845486500840704044286846660522745261532173077143997021602759919594390623402564364447111672691702303549815420513009694179419451626070028429765961711883549060069450625285996216471927921805623587794281856541360379423611132126010825823787416918076224527330654601211853905102647365578961160069473635793703680120462170240990905701572425471635598300176330404508068433637153641954946909882800995290026923227944108792683795841617244051367496494681242919815601459898438790774930334681915885065798804631249851775660158946718134702783223369627659986686886203133078174721419284595187658737753401178107670972454662667957047736314901435447566274780805195743474422174891150067179804634870374134854573978562807217478394068426270236420124966177730140598434667430487831294479333040328342963910405395909302232589653662801851653872713855693330051941716880596504155154156568059687208660705867154189024558156594073854273874441584656542872990685354681061674771560752810089437365898973514999677150972298744416063686189100194374146530953742849787862940115184547570736843669173547972473604260777763776363759979690316168631089943172470412302874606569339211861744437795238395865223163736588073817939696420200800710045938189215665319886177978171072972758273926584747841526871799837531117080550220962950634561192728719862581042467462149736080402989218065429648108599907489253840896182807193247076526018785197956066890559136167062620546783991031583615008582787096294818510057664386646556148338737463441511715918803006248073816996724497056203799293283029679615526379313090992905599800901564568573852596977190631514444688705544044004719471489775028627316900019713903746883803370971363465409892541625742340091840923043057812703650176449991643996292336601788828354741296843535404359417532801435077867278116679154400756846510021672357716568956569353635922492558403228303096577528588115460880837991459864463604975575006846460091532525589841008377224615485825013129445384255148896547110673842118559566911024145092072826849071865937756501412555110267462077543519316944792364198473819919240250220572388766835116471866162726523465948701841881073690139472542468471963356115846029818847076117960413266774161276175590869402730561647908407248990844044730394289025800383756243077205875126731230323217320261411523821410060521458365753104127746337620340223000267683399031006415349806794536203866288443707887895696086520755661860530179305314394423673061196502934429087407811874118063552002790952366652606490889255032875420212768955405326537310520687022574740017388914619050822306427333974067670252947720486518031373345812275927232136577348982792474638637735496029414280902861231683395978455998983655296048648073307181609185551455401469265536531429743927359664081166934129707846126504942221936423906289828627498791171451166004387732440443937418314449770009528233960646737236081364486387271946226784553232558194058605995301018444147476062042665549104268300572282566660226552492333766339401486640704866117189605804004904617961469812094363319783979984723614330573850334198447322388044339443310637941185857057248107833465650425808462174061700288470091228404986842228904795988621552268182288719779223546231132840999484266607227736316704983251812296859166156123616174444676460975685968435974882335729104574352576101075534325851403861633046133917102844127742913133909589733836746871045831924236318358730479885565948557912063682246415592829780165420992170851814053099112660674546341307848373654320874759050099017305986167162114667525984734094502300110747976258295053177346608256817400141546741257157087577536653471665511504041113480568388864143789697723087477309793211078795667219577698291328212399081381091678582150417701804818555697001429582303421207744110401873427435083560677297553065673202065472615035277334607442057202178016888710031696353823245540855288324375457900561798642468140538087250017852553808792296322001453130212157024888329772458101177879634714383167614896015190691512878786504802082737859274695575421687408575508671945994271622664159350982805560725925779297383829934321341366324118358453365785809583672824309941302435067950969409114966441880221622445458314032670648994940479011679177394270426210273589230299700774676304112152233205316330744309973648805707465504028286260356186085095982093614050738396633771774592040520170087650731365165035831272712886638087478091037869027490756323098009190852499080375493203693703390683444711345227751109476629420337526425523077594235449161726513649805537265918432189128004210655874782317776187655023264162362221365877236323725217925333363338571250598753014605402171913340921615776766826124075568122154847512971086203337109740497224422124141445693440125904024798503681857416944418285012011118100769928453061211698265456693129999965191529700819999593419513238154327937988087618861092156734688595972147055189553343966897281417521557842165751756506168023293490952752204517717393787939059618886880874705541234624299694378315132719403690430567214481160966903429076294271324468788132597643354254272569510807673015152866084010144020679927547702834792484242208728974961295017366958112474121497930875297745401543937885361076674050504104795866927995746242838199822423713142919319957103561047212071004702165226038583027050312878514122705694492088122182428173383730918108350530435768200563146988847713361637020476146855644958943386441688604779561696135362302404185947748282664684214771892854532200659301787607081199516429331356508504479445463704912438820860810199031127338098544140628448488163343913222045759600440576347135315594548123879612682193501650521076417027910530810332840062992779073954040720436372105378064708353635720787349388297926376025336998239290240875925791485616530271805820109704380459380734299894612823800086556638200975788673859585167993354004843770464537646744418214032659566713942814934740548425599783157059746751829754907513886629487953542340423527154094690996960705474353834511978412112845928317989330909849272023765744615302252902945036374413093952196380469303138929144670979316628771915785457347597733874056268237969130586293258308510948023399836244796056211447669960466292875578697013513329507240473495416407192304481180770010743196271427466383330208154978777713853825275549792807492696892497392777769082106764185855042020636836393385833235404585204583662578791736313829008626508244046600532858844823155663420028355246478721761751373586306224290968164425757535051097783856906678311674697611275420981744340900213614652638288378498866654467431324881239946559308849313898505200405746663382288366486027981346439557272420337731332363687476059882692592529281040762030005915840835104213026445856814876090321209879016561019959220394935785997566554288766680588894350294271228936116174130299666780851539523665775707072066434795830826725535764639961089449900266614296537088245049431771532213152087755430369628042814163610222668532627146947122385947961689506072443565960246839354465422103546117880815604754285794843655130016423983172292022521928445315183111455266179579147733764453805932092267891594438318019762940072240134152170034972778286556946357210513471601933927512984912816725899333201519626873493282820387388697212697034150824244195420622632191128913732523289813422718155316184229208844664245826554056999072259984758968187764297934084483327064019704459322698413643061156420623608526508429352924367537911987721284036566970777054391466686716261754241585421609046809189854191571021158012024039022034258777149247751226518248962348109559476114804932282577768514265830487354875261878279352397040531646785549407008829248955509687381863702660982643580445485568266889689646646651236483999964758690662965841563318174144976951354951903821323676605733701011942087894934400979537628633315795853568816204860843173449105478664406077811739995056068640583298101181532418438691413067813057228845036729040761965225367521887423543098596792537934222530561611120527252124563634758487598902017578337658212080451183075300376368503659157823273330491118686859652889340414109843128628612888816011119032206435661514080449186121875549275785517475942476449852556371548204558731011128376198129814526197428705110578960545515040911574784037707498847440088114169466862332475604182039445093480197854533481981686862688181898605923257268619710008035540263963868809594636596860318485070529443548265783400143762956703357045041553986204868436714370267961025662172154075886782004595384256268202410382427425080752321177229003374941050873090779587507059850435191148853026063432886403719657384028374382182451082815776326764169441410823300983515544208442298501160923589197058343710171707663401092800756600829302871866583834050965857312393433118905278642586671030521621163873536058921329283023780558995041425833322681518796809562421858641517493055647056281998751429486707011050789174426073588532556218359479553077994294805528850360138395951096071078874909420417008513958496617561323913852437740638829284264268146671495442788227178629194518305179885790467498004508402547987589244512607213458645325483443575672464339217429118543439368500465435802127553525123036625702496981862276367654478873677338619414372418723900820468108108536654679691593816620656276872017959033445500930438889796024537772700344436022324560504743105280589086403045984924362056625317817008231769392122037228129129443478249681977478761730058063493265872137525678239511523046079014033365585984750379418242440736494513833073402263215044937470567356977135222275695963458491040501776949966575710100688235845948262829037639238521481325025507651654252535490976859697690711813127998670534047869162445901079109060677705230599841445989608846944482792238913220408923492120098882426669183005969763028967159167491460166489171975347210683608707749280415793630465341866338471159496529749799285370984321425962297356907050546299612933944452235907583938673696115320692534983547366867886095249319472074899022859249862896624549403295429257406500769259637408081556098100664902417393643157912429045956737173038397745124669866629535612766290121932663765246690056139708265033811682894584342465674701870487380084074352454153377143071347564865988266858455216905364781513449428244359856098351183227961329027178141061956764907799798710298336351798473429097231740886185603382789630095762885458225747755855506592546321386749863849352251083755509347518791956917083241690909278084523500926243272651715914259434574713379917359918260668937616408956526057657322520811452114677634446973689087448386857170167254125141597664819107328789143203552088183438023994431617566977920332356664714866686473858237957589538657909553980546310395767319976942962259839161818518277828278377395292646833196666382338772569202484240109484435829799738158633132740917678013445789820636788650823782158564457410427878619997606609088414638626843063890392713284500927010347215972157937489465203569604165637574791601210069247081694810655959480449754328083160039094304613375725178728529679934419709739489831236752138548989610180718351879563684857167162964787133299214450419780852510964076026047662318396403687149322160225395233609054567067111815004789767550225531926876909319225425393608916202522352868439765360875721311216729950160045799942274570530080179029025551118580479741589954265369098132193874678454652029048258969013341846320144903580479807860554322000640553293225389140440044020851776544550679534502648740115591136935035959788795500985480088946717115064995735034805529820265311364482855959894402866106738495045429552446279707906611052449012561226249033198125131536687066544044648345909989800417638821849434548615734906104038324612495707401577062800330071069720384297244930791467291856541853424097361804395225334248117418682152135332585825318294226585858951100697043291042848021656278406125497014907705521102221091496045330146978494245096781601404938292157114351307657058297569231703683472983048186129242649423114093940838020201018049143612427486265607701784129419598867820990968837056672288537374371442276879706195886587812984271613811422391590382329517221373431297576317025135048757005050908762768503882214460910679059851646430222365731600183763641530313020208078265042033098193352204323764530242516658518832648183378651983524242450841544097091273173604940612639498676902991901367753595306310937272117056421928573629388315447578711720424634542413357727075012579607462667726828775726774400112086292227062371601324776304887983155187660545887233633247583779297003993027062710335091267005540682065199540633436820734839003536479149608120281046349525063272564099899063220377715489812986378117604943635631647476426843307498849763277882006681615266654964228253531888029251490182830282762057338399660289000912555868473300811745597081684204701108741537863982207530405997878331013224880995443584909429330292828872870708677955440129457679909338766497117024912225466172909756681032677360082231093480507552235223563201884808171989057526796055405606348188694420117676294760494742777273651953927478790760046616467626036014133733658425710216352570810024148350911028102085524373452435222022200292462641680676967098014950224799922508340970443795210527392714008087278472684127543237820503943250795689628766920829841406454079480087487899340033557905551833969375697815534062149295144761179172267532607978477206099435122563759621726429281859160321388685503202514681364496949541021400092538158241778535870949329146336938935426776789623211264249133633045975519685622994628931943650293812179773277104779594391209446504710491198068952407513515995911665494909131930112540114472784124259217553287890884711365148923296148137158283771459486139846494599271926306482359848951107119396189611708363127997853059846239058353460748577461163029148090253712867410763676667564801276227540924231951104700175688888262377725833795426395871281717694190436461984451612793976427914362151586684959098913477756827188760972844805225495927429428123169989414888496292999387694582391906922734047955771158912887416341635376967528836142066670028125211895959191774396968452988439633969490274117805143660133953304244005583514293662367963017590655597865575815733885234140784456965407285613850748130850978708114968113901065250971811316792016171736790488483628414565219657916921894417440241685886372021270534006349356871852816941535996576343552281308818929265662733101363597062202657143220995696387795746340258035290851729051002576659011513778253970612891855237928827725737171847068286365245222479933512333334392860900717317233830641860069277549813429942728312116028102948876482914554152361796784793506967007782125366372878103405546015602364429021362875721719504762421152373687416901844525384953415526352512187485287468234562918253549374733481555112776153984105523743701319844102381698543149349336617995280840444446622181032710708451168375693342868407623027207451903615398479963782842931320209431166381463563666330086209006868121493938745708415893339221124361767234398906635076675571493779915867109004103833121928301553510857160412062250655759393772825439312386609226827751018533911448002017994363840511128526547007509690552373156099227137967616243062044971146922837470644001626375271395197697475435601605373681875975546209957342681484824171498409372618286241978484478037210998068207521167681019615047834479136287256603896007389716844156250913205118019152169112970820447782619496530921782272064430638552633993025459810099538930449804155014054269790937704670810646852161149195373673593918056478581196670985736891939012275891192118963408825978669799864869326472730513280195330303562205672108351597836913040228547547287058816223949142946241756462184815162000085404740963891165057074155385141009730828661209035398397990133902669204262957954577697586983506609135333865252230279147696753191951748792331541144764816364475978476995132271286251693014829270397041843725179598162031415847420475379817236659088689936089983112541168926768123557023216275763853207595426791514240869076300236590573090554154067119254846648460560323710432126706159684057627042632925050080232807025207213847589191747857066275383470108563005585217229638955140357955089869551240023976904279396030661437568609542853244660776266371019500798325870585776995984477039230679640843210830028821497326899127846007426444876868814221191832758501849577505943204573772864149728188888425548061738031019197319162894269278064448966198720119092965090820113046926543653634933657197074378924421015531623711640443737741486879408958445010147896098663649697752786451162194784861751527693067088693776363665096286727414273707797213322840029487237901105063817722202220154614944109213977947918770758946126492794242354334589506057185217616743431323741607197949480144503857359744752986292516750844148024439411143740055246205312740167136848962315841732472999123167062131231375047054838189724753993447123221930187450278904305658694982076751711449014722312331429783003929984508858333553407704789184009638891796957787256023132624560637999796376713182340253719784613898980952712454878346153578495098554454144318821195477264200007007775457224495405480311700191362595674100610553040417055162703262090753576635955691604056079421358748034442011680862655498319507266896405157761478515305019496155059814785722839846451695676836701673579543923567712819262930196682788009704360711329288980650322106519163834421691149913592589121329829417974328640774618542021496239092359393128016642347457937680871717816252341715107684023627344162099846087854499071006824115729326476447286858870654712189151617080687372568342603639324580296746905536355318059043567108021151829063087237700868943362919794582756391477262011898939804014120154227647819992394320319239790192270839646218326091184757616623776307936922510985794181509553761157310583673403166495268716678753693832389815400623000143271182403852447529870864153264897806706957118446106186498686281340446375024717287893898583112908282088995776681870759827376615981746223659368509990499346959243420050242809226897134973115770387841319224952938440102433367423083314273716287114154272685064953028766831989982975263097340743268359035197286090746667190183211387244763158105663524748122056139615628697192278201196327947386820305799228826897879953075215995718465196923348871064452581264439968513503664918737392139035088474632618487200617572523534481601969093718385084576640582313646989431661483549594803316908872364304100426685336893343937539047906385081185297240695192126311527840471076703260818281635418171267663963368834506417173452832008967421568135081657443396492374335848210708400748161395398891791073630277563654796922111120900601175351692590106669299195753112236758903236196207754148628673114231843912461482452730675870837006039450986796839638447577845798529254238177604896250138877998847997066794485225506493231630981728528861713479866741513673044713399438227549251179290452993429227948938888648679307054090856174331378143098005877263836607015070306372605927310460550063477135979237179078593888092755735650659027521840374797224092614954925665585651027430390871910255552249620452766440222069596779798820712807159491769398985493467143554264587331716516891552568882342782251541065323603570025560131216167979666786404418322861704803138137649570742147697839585603617845729840690548271536431081253038241899594482082242047357650269033948516028850281220665459174685885744669633356537480034914622248887805427498388116955956581689747951441131455377038597250676763643939091570386443117858636261154461206252940238584615649565824153251273995631203169494331490994583037216007539792266575003141664095662382614638190811404498691563546469933412386215603544865010808308181663234675740622690820190574894999441440217887142697188575158084333216543397891252661624035157466458783525774306624786503328192031704438846441885893161542873756665824621499350743524573332901287583673707303207574873913097972719917323933562016013352601743174511464985096265795794505206859000717006838894284272156715817884737095207438887140832614364987935398690654969524126020535588844004263854999814504483288096075434499600484449857551650485671508944223539920544520100235844886746788620226195700027769085780081548918385135941812386104040824353868677241310938164476388941679628509760443952989611826564400612163352216591456629439223310133131292259509857498252040957408338216267592184262405415250751082177365346708694665968236780733982962077715062757040197482894619961538162375542479837113624178957514553938469543450589728087608559699235654532956507566883378156106566817665846225546652118874486691934689947045410928409649512215270705908960453171193949611222158347537383795838339670828307414797181574145656764901242350250297463519281500879951364944034919208300707150073971508850655464921786937793117648469895317780648863173783281076456742432219617526335603740099504890899248700912158451220653273597660268921300017212435381681697675859951149456261782137659926437338554617833810733991029998786497821554344697374598097502563249529503715383410128614466417466147906706756644120901684952050131298322223946922723407259918152977080892086994367221817953164772945494663208175513799291814747009818908451997764597042411984076359797625306903012736922064431445588839214110642231907274328312159392210338712322183725247619963794922924446369146581384284399477582421845525780269892606363036212650503939799698082868155056518051124218265534400771640314120521973173681024085646489775830653199758177004663055481519444051615032282617399127669891265424316861719954817959886984496818148789645435368875281963796737000846696978726869092926740139987706558604425021203575222074986702462671784006089210010556135968161651435376310543337137156949770306916667315497489456828070890754408382259542046256371353706511861682073714795779006482904215688210144927505226464709482630831820285800084095258127061736000408552758017676944674211527143799161268596300314263875641505806061402299030175125349563909458030321102518070062803108482774021077656080856828117630434645643935718000872081547871032903623924695994330217635922050355592905398969277071798229824251708926912351836761656593773614002522002516952913907923726805118131013623467845325824950150752393711623404740388646392703837444997353470097480381374494190930588373201992572561126270142120189132194652190486988691177200659270900950370079722016895943300154781961598069316663971961908616736752425404524134747389055297420710785515118271133351088496904351132183741209899999375657842231768833770184142049064645113709083372314023264781090268799799217677082025817688291308014478477556078718234480705332224068687591369645714368700538387832183734274916151448395926724321564081615336519238849342814427368625890791799372158289655498925457148413446989135796101319224174945557915167204928883943377034013436547633044990232270976510726791867094304190602799267172603957321886110664556745715382939094097263908113257218977450362354239478698692641713702036133088328214780747684865650763241726390496165749269675885459504571880258396150743430067126039905837309024722870882758167908608719333769307225454783464133191951783844683559960824225425205073181606878287662454371585000087449558286107882450152962800192057839292997104844881376487524368743416257740188692262526628563591357776980722189092504872796884608154864842519057375588125945067637832705500969588741268725348415651860844755670168047721902813446869743620850940499751171902682782593046566501628214494754475077368315820744832550366895310422787166072811693606817644962747820535334178047998405045033025951812137238055851873401029908158098710656188176936483544399041148193832324542465724280798083143397042155688886684978263963391752031388059403856457313970189662066521760583639126894515592822619679064369083607013612406756977077855686483368721397884023823578856579642612939960976426817559363780504637234683427838708473587815701084835787357355556394593674425058282705686211996997388562519151187303184575166660815808936565690462366872453202687401078994880177665633349763026998717182933007943838634210095224319361177552220039875305645624599068904745382184789948118517917742856557733931321101766370801397020137043696563753756156655484785562336710863771728197107729662093272296031871502180912934724714462544998251380211643482790493143000872648497646357377447792651222110574263723758173287776852003269033329181481515760864858071009242497024921684150368959624328188854115647710730208269157287777311333997502714904684903994611350099988777929228782586368165362839199127782694194273597602906207105805470997500890113216953873248448623800489181866804987087839419853635866268522662580728987839899462863566518513273578506142324202908406737313176242484803431875139033515391183940630821579976061431116881961331326488080244232002157126737938070443623696498700288746206246730963500560579518582929427238297132020361716130710838880618204039545266563887849033428462893616147054602676527456440258645042772331274780658137993733526215669857631843562133254495030675224594053072114330486194204386565667797391099689783613823207011851433719880337167606446964608881385919628998613043531691192179294301815630548746027325520629292711331594251015471759220550460564491084821804018536907233665600923741438761490682342264980774511291915511694778061658725570387702547244383503995599073337615708565672910173043811520753794656356105145168582866388024868862156740535294532507550650274098403641266575553162890126569625293900045257829426169615676298694814717643526641000697138805313720488739881828541738842500345410217721305858265104971268352875081399045797998848715138972468037252754839665484529078482180130335977453798532679342165458767114277243082258173646658434488683220035964519723031266817434200456648469770723612626842370696788457808167279657452825853679504593837743646288846348320562120848223120035470740528599026104797509926611996667166421972287597508729395297738189517198271052393531679858237963800742823349413736710397814194317751979941077550798923292209784268244018329296421940411164027071846421216295090421122688422707912952629553235208582119798270009656376108330355900795407031109279503181307752780884938527818272110795685654857305257365399035264445755371788225177107106043897197864064560137398791557973432565820872342797484872574618522593745222513617784500610602486880731899387077125158157761666847198361412565218515243903450216342101234049453688057960326272416188697079157012678456302194995671164421126268141254112798788855846730267883611978994489776916662730959508828842887280867476935384435752631775823468868574235189973224173439231710764220125923988209437533272786342992820550657180732880618554536299560466902443249096348258041228980241510574385017719896036895438701241503295245676245941255155478506324301565604898222658158875130417660600548648662874153021300856198992088473262143173364900683017610373385024418916454523985810342296923205187407624396367780025940474627668546523409877174593852827342018977091918474102785829621220340460866807996705763202506984587894515707819775108014328307290457918078232385502257046491673713156060755061588241413584530743083431857072013087721476613169293057650683092191924568832306880781203555527525772032003141541936574812991109478531110386589632852888645863650592858632562526810653631717509681838306610391805745962076355635728909951312766256113422484404616573101143628565596901161835744536515954438563156769918790483166385875995317865773819877305738970799607623865342903236749634879232135883509520555829817041470715096805273959912471719752417044328899072269340720922120916515565193648539681903560650375500026486494537735654657592439095006078592534585610472938644095253696368189680137171917330290695416099480550566356292489818571621878691510865452044194631789867203404678959742733295890973290656730888351982708302916031039243482723508074460023383513781026128051834436413948449427037457980143394433715791174755102301294415295395389881734074395578564437108983057058276330190853068799413337551906881260784599793636848081145193349779939019343054701518781423560021166069393075397851640150149844516455654365371808415621219014081231938627323043681271582538519275847014888629000173080588982801750850521813877372383601202724610117444396416861128262117838774465740315490922539626091741218509503907559053822688987537988102333788219290707720524320588736238066059099920139120015279315568319561043769116144114282421009215476670950778902563297977154085635301759930805292368749655695087691076850405524517397131835695676775528346535442128699745346760865228062580820632759822952777713528303405137590386552027894396525416596673647230103546913270053559220356050760495154664111316935953586433797925184117244601326557163560329945277477556705671332884580613780271172701333277296448695232907946931304506788074373667322866723646170196292245848998309978255004944580575877491190616253830523947542037199422811496711041171594810918084028056416226182573983785802251533268667187742904587245784291131990950021814696041647828912855668022751306616764290655023092808200119782563014548543845183934106184762734604132792931152942881917644054266751174401717394612489309290596054380515028053194354508346920723582805699632507759505023157885574310287010305055453265342802749798199370818957046808334871237812351438928352713951931001885794667323877699201057000323306096958171221676557196439283364135641935707558971333393223748568690394306875334728168278054929737218874646860460142855437859734116926604890786895270697693626394949501724068502380278000175013823765388979346094411310898366548182868896814617213068150162044793878564639461143029616548144359925487716719119432941958894088446791194226022926168539025405607664023725638750203387056137044549863083685273393586458649989810054477597441427423529426833897589484064418736936599035454592923546053919959840967109929512646232764212319265734707295878444815168886712758536289861816714465328474022512334017450598361359462015132626034968173965574908011115163324196199040268987974832825593958555155279143837948633986827243305858869230874030170911214522077193998056356427549949240932795918310743000686493238643252091611524092096487600484962157734412035834679938150714918641796385136316293368125885803498325361586887909449914108413284598440802763645489248370669646811105403275416207156040444894181674604902192522442949157333715270869904755897421997223668741290556558973896131090185233155711512875337634612601543002999869652626095215605032580055219651384038426343842868289771290799282008974726545355124346178027491581273279585053764988268288302901648796400966541113238470167127110828068270782667542527989066875480546828061615552535563532574110427181315076170385842561770835896035358800986612011354800000706500411090723045884657331259237644362266568606887175025862745338353799511901684370941104301159053845523244471602773655360449466011050712749272807786006288119081797162479960393155564341358184244090963570388226051774808147035785159196764011607532253939298175298760049511167911273717062327194083901034334226637968452312450749033338939595952247573796093364741267877318176372012283279060974709873230933377547309223671966562858050828709396901363589435671865773559429571850258744619029462406762991371443696349871341285678258362155600246226865260271267288434869688124064408705567703483471738011275502374445629073084436480737250736502147870483857562828040043513355714991820970435629088882453228794723078575155886776338040867804349535630285731572857058725474452841603087192136943714040879827229415751808552163386655417763357950652970990370313169433733059950522869140619547855061271486909146389847605049999686331802937078308599136071694471578301603624859476181647113339383634068404995512544446864706477312578667749169981344287109761770777235065344179931956160013480434254548982524422813575371657760954789905349136911600042167624377361198365522143742073934251159377013023481415994194292536790589199121969800515532628163726007497139918074401181092580309641108919811294233725317879157673205230971562011701093572495472803228038357237025546111481911814079025580134871592343655677330413300694788474137332449145645014483864756616712601557529402184490127754649071738429927768874436976469939156555808660698038248836115716698546711178837985910205808597396154987156228710919496927841627284918637764852801046249809064505008933424174866590359649642294440008955270027245154181492328224244817601672697332154572571450302080903389529648766908431934540690062838345818625970621892921052594848517819725201103291668818198700385065626932068216584628364894601382467305644003047353541889170770359801775013584404834346675050260545615581513232876874443890983340260366239040485699624420269233299770784401087777680583866646849807031904815708391026706495483103646108800399707670804996507664700184612430664383322371103591091626864967477551827979886198758346303716829515222655802658446187281390326630093250710877827583597220452859766541163204682309515772485105074658612528514065964441002992014975637425445070396402841412667152398668986672410885256025640432669518027974610034905465043454076797892468710879242350729243957243372853499268508132514151751884143625571695714859294683488112786192486621068326568568710461453070508088606152844775522022294732523844100902094458981865469045296590553341486908278287406337232300719528326072423973622607950846008258701781417189426162625053732232904641220901094711037687287038675088290072393848871169834439330959553852760446548304664083108152448552889890145362703556830950885981816174024468539307358476839313092749863257532728935296885104174454758502254009226829414717027584300976746999376940537740027990647471635461284672212293006358341255225626454700539325309294924825688909003954761941228220981258820829838010706244654575433973164606318105609865818812454313508160295370121701772880649570027500175516455881005079341394803481122477755819996654018054875014934734440706575609019933814538022528932534031903495817874677680569233814724391264414977210651745843381378168583118300445023751252518104461417968642268540266179831290366037292646793386756527647727572747649728866196076062184824260581296783550949934491537160489631498113867317807158621888201861586792467924418201073262041610041497193192026436955067591360570277921273739652201297420508987381019911662677037074672114764328989195139492268683322314756808477186512016655435621496489992004401643940179567912705660683707462949916352725726935583991675436855676121697294982468448858963557071333881952702686375984148639374767020945400775319540981878586921645533008082324786118344084730909819396828036705709312486514923815705212947929216344153026952406948268033047669862222165723061328250472937011723685220308630924945425924933232708629649469019151465415792353961466201121828196280515760344770862330131169181616604294779848609198423297762068336211432983589003884312051473779565852696287447279535322320042108235222950155682659389118953905952018733885211430696322312855960837567257868682786083424776674777579498178638286192025950114088284299867295383463398575629802721758031543740227797875702053910303173889751372860565505406373846577237145850230284758809821834255466431272949778981853192986477583013916326913184361626860004597025289598159031125871188490225163825095957487977430056846524465067300830580218440515958346081720838591096700031309610424484118387697886173936965760804707101521618230382575369366856886314115326860608319312184881027694401341620463136223103290416984301550011059977385236866175780885459977095887650491562269189518070067230774404112282823663532660068732357805517201088353904308680880434235170102922808713841900865407255673485019326229865736018166089191277068181347128281636913798828517400264943842979727328972917598241958437939999994515292852478525115987098793727425315779834692573782704006974146242864894582134952833016980900848015898662713409869806962584245607676627389342480688290739348471047785130104287470060618193519324071254063677674318441688474235451287569283178713966899934277389383718988173628021050340014419792864785857690328528093102338258415189248364111948254855173906377964699378201408606880617007920386753110965214054641265379087035154143828576444343931801660588516256241905101268252557937892395545781654088841430972980020416164233798311237370083856047079796785097858118198256142259736403306362413367673463157209354101831343904168904223786688354131576573158303394880428900008328220504973874679033671164148579759319314896541242058338698413599240383923182554729179799960626406651748579152339868334774189613578200460109495850274781077326595153053204372454436748591162486701395407988437795313346333684921176643222562174577385190101531675782635207868620640064189688649522209576970885134895178186171445547418639517711009578519588443351757773019107582937576702730540961884575316565218449305459260999806704872773224980523344367176993332426807396112103887511186638353222859311392307524320181247574589223599234700245102654653248268860734639165590990607906379147302747713932277674156900274386691943808994306120419005887478284884092211794020378587570469536711002212583622871975666648213724956630183846857714627477730348084604118219703351946709805524680984428681235786009436092874911416757630941416130916596097832174546570845843554564235138297092628318446368598924721719415912540581958486689375438318166307848733727515346961114628903047485306091202172688115565564974853788861917590572928565620672171888568020352399011708242856529006906160748391616471523049258579529542647745592260993125774060934750104055186889508509401355498479133654611683700717331489243047693603520841877488903227569715586055231196620088298086122829377829775193281883056472207290627075532551905891410589390692758213473469190036707129772716873113525120243759887142190227627732756738616881542401010937878415590038134640010837307077817975570345281095978307341144539833013826495162013352569770599456696421326716754795327176100827907031907371519547563630852434447026638866456325977891516759707456628039143342759891044512820695318135826168025424893013657223420600424010177873031791137064222957311930254763203460887733747797290800213384523780423389960345044355890922757153935020393294634042801407456945575845757467179479636305330033834828833760003402278569034221995016495203088229177241022283532973799790144546708011140363471514308089675728269747326711448812416548807600831681210474585975345799430399258933690223296854157425902955493195608406115295363979383479155125638742268314675474895135185076288045461731507576724672223701369393154549367441851881272562409396318165948419219240439712509493131700454457747674910550780454518191621747824793351817033809213763199244801519405510512476125940591805727139382594213820717885395004882687379392153959902285127585058522947229104947955893020096409717942432912798782435794036156272355564632695245147556244131827993290064926032294570618499337683638789939165085945489654129454696824396421366174151055850272194490176131194946592266604878005060004884166399289977905863290606398211725923324465673538320544300165550937340660725659360792127153044454984255428843975621265824337893604595521105544073006596947589319940876957317383447680429999096885281218609540685506025046325511075145145190662253678596042201237030627168886957281883294826373326424623172600370670136019091021351590989114963801054593776976685850877774662097461386862129323877321021554325882781349148449626350731667620435447992936474950211334990815583043079013783782649095130317445885805370196057675272401449641690923496574083912994136562223690769222472733379037867312448704747827476499023288431004007111982973338117984510487876681652249437074400011441078696591183918419778891827070566457350576587393844126213309712830144721013207357909560940432406439589636447186896801560653421429494252829076096801734397121547827639313189962852367633382908072591920895570041610730406114048349539744978315087614616402482904895085230808776407622850777437411533205285822542541887302159350286031211991966346166966294723276135913409635648603665618952069493558546695497263254433613656080364305669839803037104715140311917609664133535615634855633906484591718607971560993512189057579499119045047836085024204304276752547356358959550442514031117324971157229536502966782218420822158131797609645692196751280427859794850788416696478637168821907073363217378602057350612317337530422165761645871881217814514470340022359072492651262271811377276603927997408938287601640973425104490884565521873424485633805724475588053346926367150177585245748596453405202839092753102426527771732460409222439488425404446978262940655819712017156362298493238982910546294471802885458997470501616801798822260793554813346703184051894908576065140996296216534469405971639450245633112719336264485892763046717465476726086824968838087414042003442555806351033989635876145975747893423800962482118018234772375856122507915312463429024624265399289200577713508397959086018752393388240577780603306854930744560898507528398453930443622698336663256672622059771663046198023623819581623218727678950775826735901331788779713324323365044224088480267735325213177154763847149214695808600798878218750072958724359736074879895084460642185060829014256692125527603039683033395343047432487042950035138551092255851384567520381981526600984910509251619077698710985832016458552449596131872555662145379273509631697823380378411580491320225939394251850456218925720276606429240650257717324001533158877412943449973765172227455803794990760193929755544317704937537128136968311184873898467785023852106652170538716288576567511593202654459531544383872675652237879311434934308103748039257085161882887770124735546194618342327691368291733609515142275864991698130361714155430328981481293981667490576391257039889151990494745772804370928782451542269678614434806400127006256268648390612925604006307162535250378782422435812758982270739815364604113222455375232539804883927907301468570286108589905923179062785041397737094367220510454564770329288600846814763702597119185279915659852803962477572859751672117684134472434973128708477522364992623333469407837441443683778112211318844040014213205287233833107406564209562841258407109518230542433388526041360832477060565686951729593258370313136231270274910149930057968503536849061532417777569367982178932063724551281227843407052572144305057482509543976598955510982729294218176539650561332955238199827940002225956748112595238955419684591388295690919032919299754170439875048674593643454020119994621328647451512943010644468173195566944235581671577717241655478324609872725488210736208115757019054894472692709757577017396825115758704343590939980059643047366948935451408029831465409659084451126223323049800080882431651253763184570125137722735011703122592206371489181715790200797741823450910116764077913686622256411430629009515320259879009011679438590465373789481008986102631207002895660857054499854874757544713149450038289302690077518424092880539636472752426917846572962782625938172989546835590236794813394729964338259963279099166626136560927123465243218373643624748761202949343732081307855967797849767444869701166497751672430513924888497081052874126719176706295813701241415968594887216687916655750875686023380868006803206088564692442764469605400145641418411018795823091089055349081777602199429190659868846041575583733636012939490089241261991825012411469204113721576915785431492483685903398030930480592540063209833377156618383106740940766231876769803309032464332654426949249293001003571177800044617722314071760796671530751625115190464755524113531304766625277806024507278970256248917073656776061353503765980777903641961535361589453180099199113443432225510996505526815131180256002939521918260150637409665051377276481581539996143711198508742287333092243395146099126177561570591516389205068983018836314565453566506089902362373281061050405297511945471156212843831401177330355102604666104946713292381478096449834017307577238997615385692664495643477652043045905399587417708887488298846681853520520617763540896905100582599712340425767700118594081832446797974241333845629642240257343889608433787830283669445212099985177117016556044816973699878564214858497145997329548963488733824284085417766377223841606702329984780671405272155433150418352865608688926742486177007185372867208702587605081228033202677194865379842708495958628360784965617809214528224268156317921624941056989971541771223688038150018402526942088688607027893128264620939102701646171103063412148228968546347674571669173333996735029637868730973029472000629567291804662387917027116789362451453739565167421582314861046727810805176011814684727497117116612881573200578416111951229933839775737200938779944711511441546608341698671065847312129965645514014223397688080499468011723931788547177772206303908779645831355118028992919587050901099070688681546824041181871359079872967047948436088692891394591963502108347641335742764842256500848804466157206660516496528749162692292016134603122776651319294220406711332114804811211730451718813400183984731381964422434139812083950745205700568965894742335220966668778076869626636211938142441369031212642549042122791944871626376556314625516190870959247314019397059128034323893903846732145173378200711415288718502681213780035353796347362386822310477537310729014808626416805458359764979797387218616075136009511864285896753244058461918743052840353949319552946623437671017779068535406503207263471466706958726829517062268184671913751349499843845936909737857210256922810394965981575615280276124670311860103861445454121818560863859616560291762975350377573944796281204226780011791011231792674232369962803602702980430673723108103372910338349912220693423683941375356476155380078882725238383300808286110387241457156668161331306410295188313368625146673441180797137531700571144276626402273094247949386097801215450460134502017536942485254833806597409286774856521062495728747291674611108027484241088337007693803602409689607706760173693132800658664586878858105995899729922021953379721283566081678669509747286898277801447522861363969458311964935392266062273122454910745854584315514329779652273087181813176313175852683186557711766772612919669322239432095368131116345083003271071380487405436847917657718444780222588722563820422773781576208481589947306612852569861289752269592955822513461742269443354475037321387360497132840754461101907200208923768957808026674356892444548822768221075087326700823443354465269083946067594340353056580546901368926919917387902955661659013222891371529575574495522462175763033370496501364327900885036379737553471452145530145513340369900065755505569255970856062558352948455313576307022279883743591666854410180990018511700867781857622764513178156493957380502939086906445267860908679184331873153606047446632939477925715800395026978270341582603637210387187995934618112543786403639842886010212017785786030559134184720135525515337543845363121368035869250140584416996700379325553370016386554567875204615376111601917453006261638350287646340023564725658087600059366365620993914652041659278012240619116685251422805046831845325935657354337436492464738617379069248240125138401607327137993976028189475912435737354779933359753708625584133430361427831211636351090547717405520769812533103426264614000739891802732945817081936797083985379453993365551037726634587630730529431721914698347009270155323160898747407038309587740009169613842711379842259192860294341455895437337796530131017634304943199100705041688532621675374231549673221809095409771477442338008207139736608856239388427704039272215505834912913648447989795251518195901280629336416094433411690870117830382827865083693233581959061485991494474828640193282388963110086522897776869960590395886959074450615806769765228098834755619065781872265886624055511560930726296493706057490512326671892265925460581944244642389798339745388963526626110514946271425367427615093558484231680236146527920312738409642541976674866587013890476565182342867730666390313657867806848097908611488008435630902928750210621511830160999064028579727567979525535027413935359174078181889001095553105877368591395257615192214228334713398891830752928845143257028423409122955338523868022183511624155188609106264667341080699249032339316109920082636309037197482126553437432740217542582284278403165059266677491019566048832891584781772522797142062720065500388206412560985635476664918638069475842639847356008954372493137589446919170584365049490078531926285999330126531088904579842067737280149683139440864376802359450075772538881362249902075397520170090819939981445589019859140551750430745486244662628698458483235832972226829666941011011458723233497481159841952459856969707898454852586213122476340644601209775145310315425652846958631460925297234993188889179928117901950586436219985532954916240827962151703943974630963542944105906180028078133141064500913589662993327066018665857923881601003481726222458006420731523532458895123817824941875734649251258506850666915720198272290726920647026306991456926751681771117265483374520180624395126793965124240662983913980585409494393889596526743061013300538019168621216447084059211254595164199972779474059583069979435986170646749213176007836759902517232533310400742375978021847336584749846378601005610847642150294081909449404253596432145703676484468542256563037901888053862972136434075181822092182274115903681113237761453441116160177369663724575588664277698340950090397969048993128899300888229883705213634623545109872543512917299221977982877326542115424963154724083868441036383414902818580073266840383976597334336130336840458893702291114584223143222675170391049810210187913637321659123519401815113386509047727685908980943940527533355856156481948533737805812655897129236903475976246145869934360205616208366492394292898417299957631793544933599042258889274222235156826975470344302333061082892191039151740091025178010302015930376400382811774793407782859161731584288998473299779821681721659952642257911747536301310598454058447089939738567041325170109077175778814468791200024952364081159844990385770467216621450757075628476237931660970292388767513432223994874541843312720967076506666499000687884356257969106518426697094289156832890725338117892678962954682701380141094272498092500396743417535053966222864209276195354413775316124016592024264445835288764495094433885524868042254484155650224419225093115610208494641211342023025706987632339096430060961723868518636990256725945071606190804053420933369603648151843554290560958838470968401385153856897055856771593264494078080262492506137402988722730969619762680158964512765505325792014922075421791459312662400691444060306418354412711164944570778761149782480345933789641937429517737643681294715986977953092129150986316649332124143761767394737790754684266433483588489110898556446689681899872386987734801747910149819592935280270318875037258164735717428077135114899312934168981632580783070712039306452215818924785214389084893149579367869111186970589160267724028596043771826717017621237773399717976749289514626799648882814480461990942826726143609109536160840855956699826861273727926541917191145690460363934602276359346267433123901299167591188168374707382622419782471384727659506799901320818853224338659541307926668464584296275393456929330818916446391507643684425776114532435132237049198954126648667581084476227509073880037298109210378820666902005499221808302941972954039522750900999978208486641945534464044855228228412272432255304178397589318781305868957620760895108696674441890159398750642161822627256631565941930957521970108176604464264607618075983989903977729689383604963982589982643019450681310210230474629328953628395327616774551274090132439507976974920240955176681221590791868666949290681068452532767496602228794065204443821387895424369832294243287833000453853595773444049027476591537291409980756313165324726271746114224224416972107172717603086055056759100758296342560608359610630020755900505493078962971177338505516876765333102458559394260017011519138969494716699294888875838104584620669908974419856692915756905111790520785131699368078472854162148538004992804973138794799397009279142674968610249178604789898295187069862740108333506551367289832993830480962263876416785653220594072309459900950491485270476007738849782159459254343398440253327584117361941345764394956121790023677794737482262015090729176097699153414915058401471573747756556332489390520509057473792332751252181306748990022152449222541861848000202749723810493178686185461160479330131270085149364265709455693191388333640010797209711832113826655319273538164182779558684657643089997263799066080875770971539248830527668073805717199092760470872719833825955414135309626987828256231589329691800577447039128552532574124429211624147066511482549649005133522801817355154187558387408902478820389623377836489616487263063613514001162323641018391620207663354051383675882381348271568843738399905847088411256284054209835289314862782122159550059842755339460119060291400080214228331634011715041996509329132332354555836181530140511940184815880856149075037714536855592504349303150384782977383956744596450239627777978078297217826638705989086454358029736746658437493015467549549098502303066637698846970155844880708774687024252986092217667696834120891733419165429046409098567154769963044345792217516746128551684643257129165011604658183563936361780834965340823196753292607697251725968607399752637686893447065464239770549729659614889424743326463057718051495200596983597259868635230710633992613946409289662092259588339107412235780789053934193936760584279515837102254283906788606883393332439776488770879102354261637486618806510138999309334805323765374532533603384500459040780726485561531852692018377381056487461805576367942878784803860583158480608093338121048905889487603118060452025985001043378823769057146798023321746035091085938571858795454872195372523790196051661284154343040264329356008862645106007927619451795531329111581031530350696243027749161549108557603753060483818728926334290042191314947845043916350633813161789927001560809204105354717128936240376680210122032365258943040766228282030861892447632084797365807499238136542955728011873590084465860696631173113796400588132888477995051780135432732964451666743242620729897434735015947818857058144969308971297529407826475962381285031175683936696664936460925015686490365407763475228342172791786239821755672571605958052425421968812477759154602605792149567917726489360669129330614721779821296758126955289711771565552792055956442333125742766839409977094482232230431154753049911451240617439767154654733615098210454722270137346270955893112101174307432453188797146978821232447695189457127021332200394920057536543799971872759748959959233371586906451724351841382302371235675307935126773178259920134558689041774007969735759271216041235924507747004472877032590071954869773532882451631330895234177596702287419419197575868465764723411206066852284960738228396291669456392783357286617112115011524220009752879632356768012266207663641495838783187908080982249982653720558277838493901259167856122711332125584455698577347364443327124485628897944299556149488206995050446636070612541971543306659050998902250447937459627770842512643054251911798554758951827572173180526419395276245851634645233931113177523016126272766016484738017495528683867195271142830023504289218404650754578133756995099494493384520918203382736582384359222436621427839344207261418507124591274989493646522546371950935679439509356708607293042935848099714971393931927222283470724111519955028662174494563761228486926019306456604402458946341965709302384817478891056852548419537915226964704903054444562697349431264135586108116006253391019731187178308079541756499388495238971167504630779063956457800010645580425273167230764105213395301770112796228615940123101483344835873301435498856938947056102242071659101938036568077150688105201206833096557999675006698165802063575646608342970094867172408538199242264253511207604470577916442983068032923847256809642392135402887965109886751201592281540134389136077825840114643728699667951234749300688218006073295095962251087001127615859675275361766886619828873631369042417165001328699800734368539168022343997794886594602665153093893314300293739777146810774626813405734979682508992875800410422986448183042072146931585738252263075754371601356721292732617002497318596309090175853890381970692462674713303469688073562274538978892358563596335840683814088047982023643173471973833391197785787536654425435927697767306641586662551234648396170718831802904358483609302623497952081823275858984637443262048549422130698016118775907419109578861694812940562982852813313276522246749440396760543843342494856335203132426207215119431557741374771229326265261981600257887936357857950213547625212751924994962194894283471394612043131065972754158571169837984283032455346835533066288413308530630023701570435711408354354063772901577113311197689858777206121788090625191583060944401808846958620664987734259038890379622623885590913668441454752721410525243150882117368301052755222011674736701774442617164225517386289441030371961715301748654143992749058458081318447529705320350890272588546496828510386531378966593870913439469276442596891854731083766220077138137719683493464541010653023704619528488427992509694885240598914529558191384337520338854782389634432681434802956803364083385789931906138128293325171022702553033646801354891162060415107777411375677291129902321369171856727915796544375311352160945518513686549952964511852028285582126861427274438511983574456021484079068805147184221621037693142262703101978111758151813703550989936758499222771780227812150363718469196082416989741646746200141437473526420243773104108280764766064185861691898688653096044355770742551519313651047171310122534178866126109556537930571146546571994610367760237229323064654120374521502984336145909919170328780284469661854316329559821492660557185075171759254744916002523050864965709616849398837022758678730919478470889800058650857594205871906664737923723646173069873296059191401511643154938307687968672537505226310495031377208682140244092679206855112573358538927746074413126319634010692116991289881820099981834515716323780188581827052312462199536073074983680532380563602420760198675156449408297585182527553184376423296370388432025359832749829914051687355338676427175830296870293074705915942255765006080292763198564032574333435898280827135763317462256526167279898896344202133631138463455867307667600998425484639256300131515558990778489518751361745636845781664035086496189309422673261698967046089274665420237956808592235833288226709578312806155323584140639207674216461210792694145149290350728589048763511530260233713207420846175900401950636683574526230506835571893251372099111156469659018272489860686737722619982339902793576951171658755205080012281503761779603635741876080694034317960524680913967270197454852258951738207630910358002859033166273627968042765621874678573365148243935823459865595286019833787271610621242776360551856320509904448168793557469722398352964117020980540384986057435796652781321948552084007160067440784046451762213078760142802773229461080328384878509811601614224778924922542910889750017112724785419975829374212282844523081010351243167958323408956638896387073902704422589130422372745533884316267523826855425796968434564053188083674080620854707990145684410159308961629841112135093616660432825261977940619902565617102137410143680929562432049791051056013257152858018318778509692257504361083086258150056237882695312439153227550638190465891908077622690889496317804218179377498767549379007389596550167222609778441916908680013296934381691013267704576592533600406660179052302707706543032407173551829818506914748666759227878668386432782545984487826614200375919081088572636467404620315204556535611431594031269226822682806798493134550606720040378487510061000104360842693587220035506841268325332837001594266663315672707931086657216747339488871054827686380424637941395312428162848213089465504176179556772817071303244759184670717108939451099900396659576577133260160210977320173916172847466539723704944572921853790489613484412280480484589351279777042844241557206578789861457885550077882188137275965888369395367318461188933366816489244783896910904886150983403790444534210378978959204529129420163557451220968800463758631930382269726532322139681411614379612088111765024349620534275182879441140786494533430121317513098526217923806959833798145560011501876118630622324687352578746425653540147492936467595355930729865129817740968110417517540699963855676902187241118704844845958791320506576528823496753920137972597860065889377503083423149368318265347896036143480725181813173335440535855840534100557602247858735549548434559832585795394516534760857319280432152181940200072208306101612936251706816751688090085760371555403647931474262419593763750460028448477452801737260574128440908969901948211978893530086867128506895700457990197252614984722955859988944909417821891133168328358872500270278579659069196811816157505751615638987386382862595987639660568726359333390239234951916407367321241661753440183371612724651517945158247513381151422453348559586823500271220645555015004822130989095391974061503813113858182833205936928729806362086818291478682922101591527627206696646750526076102187506217607174038815749302688797996878592826690888142843376489554686905805858486789375385237127445808918277412596943734105051233247992419111149898408800768815484742933230924703674888675053947903279822800513190549703882532759006751256198448516580413502760699108749315414957214238477853551611244762991941891061316902333080462120240529162118701818918699370789258659064218831690282765989930814132734746734117927540157641116426165124193348925245606379203271608743228192427672891397503791046893700934178917240384768816338944267074036816681085157130067338860599086057025981518449307510755301426384839376287913044128087887965889188567630115530126280284241200751727871788413271658583941648036508997583826452487333846334349482878460562950259990279186368711445110099555028902573316174094112579143372347313292767241201941763054485246864412358430743554288957511811902128877972776611336320883567744458446511902402020338574152154545005941331130251573254495694773850071175301537016751634453497008313645346322379226163546334726039656221731757120490945369338202761655113361324033249173334035493144271284030767228013594128670415847602116190281697111035286783384332558971122326676823806033312898616651952019069845788949447749992811799830163294104648531045999964182000793444206707778295308422091617624719423895395383692834374006965779355700037384268470206899141025590618287724233517158526795039897862946026072200684702376864503089710900348097415720745938703144872384666145386846600115563431434124687947500683530789101750188529359376553940119512750635622586112698888850471164745992745947855929606007882281605254501619144301539945556459001007174237285085765377556768724315255940747475247462618133838871050894201215940174087250228660313369551495410906513471956467723376661882976934403789966722081520268207970617344534460518794219157181926664658958421632533900794786800424287663954119461605778421324580830769460111573128726710196584887473021014589223857921136771870854469439462624036121798969615099161571318303976042219910731141594537175264497384767987102039395533943002163673897842541990946210182719173948873643386860139184751036193717097114343646731238515073714924416985301648972534947395938355047783411380375077479771294647788550934191456504312769678194246933901475569954622187978320055299394560061697879503294112719204676727065030908975297462430218364943584041200528430936116473765737924674698670196832538777880598539195926386728225720944014352037794911934604649203629340604908717273401012477757212464141193725561855134110726799999698713928852018061764537500153481053093702313277568987296377217435016034825449633285868613042532324233496262684422282576604825602709006426295232538931569445351877147241962944628288727229976552808597155618401217614198080535634422796560190822833982564223108006641629189126807027136712194176921202487899026840868192942152248890605070758538401385339171499439451301630392462038541152603027953967110093045594387458650228604557890699397301956942929941102962551844834661331110748950334219496670419614641942536992342239216168534525023249903613929984189347812693777590697740706608015920816035994124510973960234384459368885830898245273574202854835081015271531991321763364993284197155064380846062520600371623221800966443442262789966427190631432433602997811272623415225751847856256195232417226356514893600521526659687591081118078220230309178465595329436740794180749620618562539819985120444812805807507353730089306900155085467447986457878493814652287759741803188891770984459881360975000068088524161030730379372326866500771629576799634529820538696076971187714338141164646225838259174086092707714182998040136547969409089753098787021915167373048377550632808706370244766947379202994677010701906388185153669855181712331601287974598457371907351306339157027007992167211698637325337345685118721552504569381273035480023518971857032932500409719801998857622357073950328915521877900483978644876141576107200611292476168458797247214453247499403296139314115672210838788705024689953381773441441043884502462471161029419301816605634200027228843411235291592617888808312371589219478147690000940617106672252592628562883115923188551068403406444009615059019324827756510306483455064103890869279995940746836189538095147287198533075746678650009409425938116464255053281178818914411451966081972797805246768634756454835765985219576937310290394699206558400009080146471036685602625167134840236454093624163902113392475576827647978444407669207695522169780953349355682470045048670668780603697602105855728336325390014274954448584227983238513334005338230026821402057242720476231907592338893088692624077435474594582105510945306455865740458823435858054052615354967041056544595489392137666293129423883804815621269527583412600613100904161181733656591744090002658013462171081791492479810163070763678271266625001075523057484108972922399700999468166854979766962605307173857657011025905264398499509372219678342952895290692582718811054457601471989628450974978533295750617651314875433570789560451168637710887470716458067175405712137572587101678931309232135916147172471368574797749217703859464215962220449035613463216881588106744012383179276312111101505126155599061744105177732260058628909334298466662993891054044815089457998721715705927570152587619363928454677248379332575687916322573864867316475923031285259692435211059108185248729319558134885134669385680941820734316029256560727966219976372929723399416611954776595314607003751997106635780481190856221057290582851773618628579189926689802046929956260568900439001737992855164848403050525835477768555758893686538851555686882554602792027187677909993169973998373045607969061839198480368074703998241445389839596115972156811256012093110293774661920777976866636374786068028064387444841879256794406075048113713358045787474569871173880523271887149260040089969347437437759308749039407767667096222416760061056283270167342654119671377262711372265660625060178225584514493904949327971339682659201051797084453838992091100259495484085955554276332503650869393064081644598729291164472626540944800274252870297000995115996057278456106535283842068533735744403707920083662101269743355359287277701599007119868961981587583211861513958590925371471198587865885188637532278782021022599182976928780368940251196098727851937972064402971786866530679581088887684098238873703174860642082833559181246586750774459208570373449540580453687696149407072272322714306326412665707476895828763855406708182989001148244639176025009596261618247439488490734497663992448797445237815750078444608744962810180922499504861821117058409497501838661037230119386424327455858578724773575190134462177101356664393271047905194714820021269225271121360339818811728507151496713535838661612982424590227080248124949602497817465033942657375699209407779066400191182962043761541333717027546547345994619029037608605130156510490126111244011240171218999399023857649883933929461661735821572862565710823879755555811928314756215692058927960835784419303159478449251620611080796682663337525922417097136076853900901681025413859935733795168375190106643855446322643683392729944981789039095251108378477927038208315819287209451772377731026591614053754299036237757353788279900147774355420009781294309187485041497286758178927880220981990049612968393359212848567869035084554907241752161150488089017175072285934442613813116499222696859178337667945470422573390496364394561484012918177767762880875020337969341129721867823471149765222807023938956328310979366904051917631461966729977592116230477025358290743154222708216210602121806800802074006932394657528848581006725036498548110282091535600753485601324337974370488782499280641240128144130423364351450345512036061442377015636564261305014954706570623030882661198003745753910539330997733179603460817699373008941752259286627365825559988670104453505140686271508161116939231532826916483141772829902724159875892006878673104013038966695719924217762297265328896480507367457606803053115500243847712293544001926163365810177738428452178632792622143507219316818074529748228615729825062613539720545017356690375544187684223805183084892447400837623722557548125147719799972273643140917520550600792220741076273178765304908069966749577699446592040202308045435977396374668601596647593274011810451805242146820167570713933130525088415391354690386474203655970520666676931216006297419248162359240259050365826091008428568053836110367374985360147818019176095596159345874682037367875526410045159967931759751789464027966263602840318205680084112548849528394851395296531291690653316778023474111033976912685686526964996348418615127051845887312082140691962326764630870329251371940401736305310144650920549544302475079027096875851988449681294153376110371600309781472878013117601650020413990916920353039117126039829345003484033244297260975476755371899089365804631618815790880837663141845327429013559887589115833986751982305949274706078978316862757166878105797894070293943141303936818712915311173474746671624771790938981220122509916691858542962387220206060129111201955307323421167256512116482360676753296443778233252158886041574389365288523937208248513243000830001219104065184312064607411572278354022915643317717463783614338669488085492523309781558383226927210394627287183861160927978046077181985774077765664525336459419483113624086335872194093171943067993745585799160786017830483878547453794615839797628570463194875652450784148695626199005329605492917630542128307122878291858585669499907911242323410555725991525651347252175535713799710835141225935710067257663975664565885988724352890505316253485579100829325117677222618744260848492633076153004609731207450265191851589484150095416588747778927535607025912192849095788590550728066902184655030092216742119491951283835610679161133382480801525222670737923263746236117664926583592731428022570793384618770163292856636715943975919005626709175399858336878357806768221214497940644352724633356982648309246362197812311176595568080585012982017834093959220168717592452471061292420656386050504723334890559863069134050053325927670765162129689712874662256432069043484545620932289203972881014541509066483528838221108029982668792922260829293627472922276940259153954061504600881417482712634064185330076568557349379444074234217807512374643668696047692553341210904843268572137311693585370598567619005537324013964511637292192131025818781759490560133615748670823087195575974945121738881036326072593387322644563600161446645656355305192797569527832043470918785193339072902294796726094522775265825559315549745279858460087781454953079562853236032149198178744768677239210078545805843013919483023979707804706186040333139672989751745384852558382220218625105921860989177754772244254511775167301291666232429224704297408098738326649724651014650986582143886710674911335563716443284251037831607329210397368093667854883436194121646647278231084061361926737312065222873353026515088010242579472700066829730663564113009832301464929435906179647619319607356487151896037035179996170140677597406860786622116038259926976086688424559359830654208408731642372019922535313280788716162684176286112763159438333719336395093413025748648146837862779632544416989475841548072805373993009664681973344054025160384715106415018998643164172693515430986489087359449224745262280033796370881211616464618689246270537034612956071042039149661958049599129614212824612978369822636222332196737486946308367285912336129628838149465003359144923204008849395925728178219643602099980001733313104442855828373153588994376910091988330746044498395984212729443031373982163503657652348845517874078567718012582533268185090821293013461978678695618667042204685499866112773243002462577410682118833265680048478690421005510885632988347803158063382511729417304676199074254991642545816447593219269046816350075082361633927187155640723793960835180630601978192903437210458011505536912775362181929849394093913429474017948168794052976443980953837142969700974855665336937416511749978618601668729325159966080074778573521305525762063596335076063546812029514462040735254909238998245552297992586185493591303058782957031476553360112362894870008105757956534235221965184147193948968754116515345484553291644799125798661862191770062356593970851755093825751590274086139565555188370470974336180408900801877287284713159994868677216703537822817207026699746453238569512578158808654413162133300151888574708171252213047212397418066622045203343417099342783388000702778518472909928363913028294119597337242164782064392978261343081191790673729204373169002927798832140047925560252422628388077090454806964301244587043424347759032817976093547503314601286844674721075046440883506548442458541695677392947899714131281812966725581252235559877981808546376241315901078826125856241085465763602504039535458614724425878775291682823012060325601298907894934152971302994898379479469793262362652303108183703005396040794059291593086439427357920153633859586616260242648338415454712185394937993325642266552359504664572221970568192853718632422156027717263664323846595558688034659510990520727398308237829052683960077573014003336421961821694425717444174714513571088994239502160332819151697426381935674308964853694302599814200490627926065741842371997564152690112110127586374023855931895908828331620933219282565170545090633381770742566048003452473855599673146123404575977637429768983310154666426418330131780640656688302133345210240268985653674159715489036389551969662054109631510257329834601781025973647345734625752854757977450740144601240105716388938311368643041444524782567078421981173987367332914656098446195835514592989835472251098814369556600723533978609775561813871864174969670592581316529776486112829000418843693061222948756170691922598973122729739487091624408289060924223816176641189160973838443168218280886735248999900138025535401407249893660030347829952662091827767308724626338610477488987116897902998709788394164200071923676866079683063627002123410117731557242086721853989128115492048513509995593717009599511163188007420531481109761424073782216938160800238671130459407603166971272514335780103053777615090240322747540060758000468107039811405573770015073426807934088053084752611253808257122815220152041437432635403928394012227314399743805796080205310248387040769568296946437171586659986989887121484212189880234677578947274344992604564719073257347405342257332096971167003546885784116787126364903877032765275479010669835989586238399868531451894644586138421644771852705833534637648281379064145954025739828972260416718578548046570653283980096293938334952981052488602064396247305324750029877204551352333433207151407512694715047133148393187336979901418043110415400287360497772136706833471533123349871115431013339257346605979289167436354278674952964361636268782992457630987600914148896526075399948250336663826542421660080222756080847726441838006291238745049648282333435850102580924367725940505019529966065180885258841479408983786810571651308593425444444757996910828497465865764720513953676912299334905029838336403088894375584698719845591039855156211725828738646708792145797432743346625460041611844516206995833459030971841382999421675740690591868485471910131121695759689891859188222357119681811204052304029260889659393221315670543044738119500549383131433042742011264294592312726591468015191804494752471163189562631128854756291139720139331458042891793566129558725289447175617559871180955049217816030504996288330825451322556200193793964209285778383463648199109613869560081661046903932126564290072317527451927591265379843535039271828562483023937702831092013882356410015429499812353233400255238683589681484920226484273511738941891484536172517855449467853866695901616260967127303466571554438357758040031334602604910411274657899804227521839979590669371929773024717415413215728286153452866075971180168207104557730890317621227020968301409307586058514921810825546154056209734664676442846992244455948627449440319458765320995853983941224343613586049562491352594516873822812640461148073646255418853441554232586038998866316637338807873849113666980382436498047597103661717645729325067315247594930961000172762714282787044942530320800256621110694324210049915025069568246050929103537584053593481182197441871765784904710773813527791163571070817118408262590577610331800243122378445552308324886925828639728464432583394330356709159193463254840974489489390055911356889969072303416046281903159913439737680877008008827505973874522429561751965879071207010656178851048552492886305206129378055352695964026738206383644458749657913169361279454326249115581644999890649797955842415241519495258840145590520468614632854155912188753106295151097070651668460752922799748938614262181323946718851778741109428994973229402171655605625981705923140137253916830512521903906292495656318366701854713135333653735317181503429752408257479854362599724253279267438912120310955987409386354379392971413454016940664894415810504589209842150497440292122110305266698010022783095990201142878376153033781974415155310229490815214265225436785226227406013297273165764911557966136380416000291855325038844590729893982945893349821647330962177871938526405935356003438465659164551683564319491245899138889280868132779778267193328794168772623998235641251128494015943654585114079228848507805745667487621415239316322745673546125651488915860233717730949268365787260464634689435970120986157999619014764101979478604951144541099593456038570308949769172876123299091569014745643936218513783864306229854669775329573421254290498659999238050255236333701184267035627103003996981977254364106057768824867218667410256276812311331872553880758236525058866282867920164048774744310850878895995853702019315900077153401383212192106703652300454757353544607332216546906755392539745345647923719310889385122390360096234725478555578251279291912323633363932880340689826105509913742867517352299404877544924074480576410684164436743886981170194769522892622926466839815662745544823098753592452867978266414012370099551795219240623219141982853539105457525295675214018355189676946885037035800843115622327915584412930028438803204721907589320981892251715066601122068513708585957596712405760275491373075889623320634885158798663710409154363669874546303364368170354223706545042057962717932322788148938664262243310471178960654251193978460439905895126645780605174965571259812012557014228603551065722115722476988415776466933837900967571692232275545102412236369617510984114207190006245973705869363632743662508907858232912462763503111057648953285314602262285865869915742695101691876117087223146737919614912767443018429327756697174997878570663578392898514389715343960805350226373128971529211206971852842584658969575919583486720790843280164644482184085709319107764266373067136253634828985256133365161373298117534142282554158369881996053940854320512099618112990243042574736052168913367435720699297631240365950083622149332897506518646291811734259998145528490928642203855474704230997677776099966414981796037871847923399267039568940170050333922475644896714339194313217412689477283728906170664955716829936021736154341347889318200279374186339131737457526535954014975057984349161013058044373643821633453174839717247099385577736673600803231915608204441868876054568932184508214365738254545953420831280513775198813869607362503419487248288658882539420472540850275131067222132126921694866787666161192152438647689497643337413446744248274775045611954375110270421647525107512008330385813667517703536219244068128334185043657271795402423700992207795463498638607974046542602484782603992674250732429213817581401607398278466332367504609257394377728960761625179569494702122044498185474164972667419968929378881411543098768996738331082997250992691607917604902779966223592777342175949305816047739469314219582576926713464671833832371652233127884302465504932330360248306665577077110653535514937899811735110663695877812968407188978437982189448774227127747180890014511278077931632852495941530431997907877324027157794708663339210088614398534456851722397604976906853459306589501984718419824652495309458394699107661072409078283550520405699609500281273310928429429906760513657707781475421896162379549399414536184909497048175769310890941655879478572043168944110891759138955884560012015676650426158666846041046345500731851905658359734720400661693579628085718987336983751212661583730001132757743569912325031467511488962522044668988021664925698589577959839037897953661030558484242006219035897409340017700568069843887626213687810460310006994740371621241166095038089546043211781808512656614759965171210114403954327368030682453810340401380583215579949632797366368792507819638247489024294204642953939447636314929118587757004804308524425226818477100855322263627662226782628697840845205576134827134746844024874069839173795103072667884445808808190770744736315979918457647722032510263357496423691906521032515244345736013487382872522462679108410307542200496255053759346405748339178255896126656482494234101352783961654102032307631595485098912849442533765093838717220270357081993173444721612737278567710768984868977841853874044709406273168067715566756062812653104994373372619686017075068304116959733903375325624859095990962620247682333895077804991829308899278945184976552827116244460382126874344713548938700430255428571771179389816465054659452342988945689823732700788321737527838934786674521882989773408407706348310278236597030281760270990240114956818159647503839769454685141398806822638084802745063134950951459991226079394779239613907017241165795896723953487509066474381663279079213870715793774604573936376325649575851205328864865265651799084626383059509784684756802436667603380234504669678573171364324223348645671644830101091669402434926702366182283968272377964103822956584503200311922781177803395755733675471143448595738020830814742365465832650915733760024822795116728784319633773417120053075685936458037015177715583653465326111808543123735648377081431437637649116217240750096033374946249102278446118057524571164117236977882245286722772013874095625909446242315947536934086056483913952449202271526813361705208701998668025979394473869385832808844129785231126419697067003950040835406421840550277008561214501084804008254742208005343377978084652278277112272093918465884039540680245981330189568858940236992172077733726355127325963204280158229175000285075146180794502769081170909166836101035635795099578249588265018875544420721689275866861858707590238010032466505126240816674216831733895245416856445341836018532210562223029728106727477335755655741610571249461774918670974660664034225568979904814580012802542319196459436052228035466971800722773622789720808833007652211709628309824802165088886985238441360266921094392758276035698702024009985722516029520987700020853731870156771927635880262015502870429832696040013000741139920191310527641445512259923032181706112262448354065540609494099123243661343834808098280069500435071144638378158146897626599597217180496264980557872669343293687506673293912588848968449865139029437854854068846666940317154494572028275564332701569317787028462860434648322187041338830311829752311570219159883807289429164541850078442271943395322171228663538643534786085834053711569693267459183237373186077078679529571586604380711024873752550192025893050602738218044563280676668894035690874091104159218583807675310997317029050475335451226129341263183961747686997277205861451880101474167472880936038070863630048821247225997032469157747497827139319989869986591129179361714358456465929499172532418537101342180006810749354332492932307299381829892050618476609909095378903877964264886852391636866825792191599904901840426997568334318598698701794541001982644299416158960133358558058023930153419487643486500820588123666560247593332991367903001685047400397241009451995678148126539086170204643876871708478907949077086738811847626293927133528933554875083077252549014484860772027092264316910863833982909762647520786177886564491015853211427406642559116129686181041297400823002438535161691032004858985121314573259256106945310232863733763586460276262579152106311355492421176810011966122947288278589008939343344840418250722094412287913493943313080171354389177374821462370504161222642171830703100691838074423966954694883632153554543148432420271499129151643578471096882673100997345922704159325758400907529962558424147736965833462349441966538345715030691685480455287802107089038172272838072651392872818069412316786524059954003369139983424190163609525548745842788594476590426669812755673537694489796281725059708474236850348995721906930075449764155264192064218481781489560120119552479246241613137277044042163501281003270167148326234706893853089080575532967547933750586626610771264293822341618915354059144736086376819996910040465084706693134480473363506613505406219486782434811050174925725742804762119438161535683767854839322946251019292500255304540570453670922613092690839589036670948677491170799263891892746904663556837692402393175116036337204721291737271678227396112396370017878770853825701643882364545368869137491674908527025663914127033411291940854847588665493799248444415678512967163477510806215344044647118063914442251442979570143477146614111539493738804646764166944784521983711882794947909598977923877753109449536426964625299845396887029291692294390428557824851578793283843169985510432906785973604643397227686866380699065085493496266232714508903844464974208185849970644669612670880009623937533064829569797430046294436081341034583139004638283840537218987097353215223078220293508225720521646702336080321400784864925606600684643424107658978607809736437297284499853081775790214315184938297443487291578067184643836164373962531048715136219896700141295281360228610938204973466697065670311073494556706578501858277638072406941081650389078520694108548166429557317231044300558697000927016248059059474712518061511348692634304908827804009843716050552135642628957189957370726096113962546766875862733875046270256014697523687881398701264906817733709502944138942726012839788999103814944450964122745879876102070127021184335919586931886207870550876364835681180991228389236953328364893672041654332124968636522284424005418236724841278932554558491208616087736791362584825526441774508164155097763423297375256015667694958469810034806414458568286357361809390706428415623257745306641711852229066073129964798021721771705955470817831311994178321109205718319079085202532761501552393914313969373988722926677262327291040324298445083510173421450377027666204168249089163030923004020100065532938610113607515530394973095122334403379019360861480508778063019452830927382482865543642334787115934585166079615043294484201271186819012336045872779205499768644706726897206606721633441457470463259513531444684199484755140637006369503056361925987983732502108355890567841088510884061323794048399460866934572016585761146557464863216337732385324151990686970701929537858181849030880980910946105764343587940632094364642800525463846160765462742143851478396672890586314134148469132811252288539511693887322714072117239872077904339852269110370758738789574436383762000184504430592428562548512973894418657157190190717599060927554575063224704845175762177056340260312716812482048020093814520529862540322617744919390103701686938357565104699708790113755405539859252001649352450903266036112491224928021555505632083231404328275808536743179185821561180734245143106276849175636307272612676139733651933140695993122031991266384875838345423523430853354128644626227598172976059814312939795378633105995105423791752615404515195791244087357446962522969896944736111233944088447902127366213281621526258587399235488493346343299217490333517500436608544072323682640246613206337163484336213288486149659634632791628843722543023379036397496852081568368240843152613108512834111975080099978878038853614453511754112281510286239398530598625248003710557613540750684032966111798183055304536102119731306771069320329687839830112761255374959856210462647898502248618494556707350898961250172913909537989203470515491660539276809957969125785828206529016277149784193529157450142366477830799050599710010889428933127327105148249111967741120974086265687795592886757147298937631549758558009891851288095778277250353317715250152871249146700929887120436226380764047077605622178966979812761331625050619711576517490489843264212189825973423164570804554415593939814028462404193257947685750207242877033640513348792688160616296962120784358518531084466573731593330863749021702072552487222368695653144821216538852917699133894319155502134316066836014690542300432984554798787895117071683112067681690491693652025882155965020159445837749693525710542373158275712443887495065766771969073124275688626165096580035107871466076352975520954927013973705450453653213583539600958329945962463984726701406662390156465354995362593066945083107189029702990662410856013277963466957575957248700682550030919124442604637230347343821738821618991545724933541315229736469444619659932467629894493534695080083271022244132259139796068159195220002596343485997185306857392036417134590552009566753156065205152644262510586630748957087008071605142667072651111676759109989034269168606295334384945379492386958632938427106883077688766481828857351599927098594066007443819922060365390973037170766378068595840678715834215262214171202397006051350762831060759238930356224100745907823217822026242676565881388367493952110417136719676077965626976524761331590970433801361883605968838474597145800327594237092343755289430318326152001044755429998144504319494020405097106269013079957542249001835649514132023184729087544281073664055849070800552292001653074735850443886627954816128649651177075263817527117417389251822065670551144009633774163907589152911201837737131941885256568381201595726539305377085857977686285263390149196349469532442095676771473661110606934571548260234434004039640678591705883736060970796730890389281883503649467714925439625101959145210134494570531979151798016655424859810670578568491404614305926738140040864020083952767360290429320011457070145469310575638516961118555027057252519566619976719732680304589881887072187303797566669666757350207767746336480197704999227096312217418645034954911717598226652467218333238641479664076745328439331696993260237266244409605502142688098401605891429831259483290244343386036099323869127411778819989041224189274361227875296978976903187171078293778698400759790081499723277690975667171091621808869362723290522767048227691192178644581389511083809538751456356284164053624810628334955118343955508305135947087788661074951063391624928756279054310816987976886381380633858658215569649713977462419564820911458324726181671909302131254110177676694400108216052874432741978779709359320306139349019698881139451644487472337803377539666201022116053371027567245555667529863985226293948901109224662713282078381521762096573535092950437762235103603679172503265719321543145592268588392287500358292561667847888535262700629074339647642520065075824452553015026869976000605730992999203785695049290721049227411373631106331881709420023706431013471686756354242251605489369420405544250747009376141857795469374643216155723325592128652361526768982839479238763793845447098598716914091127256665170262708506408136510660657776491527569563130158968723674039122451064480695442892225293679527073645987781973672494872175553879907675087644771666785477832914716736145183099451934867962220306066237775483964564543184404464753863101905330151245177287939233148082859536964927669196566635666303585956676783614383681246713314613865720234515660796876031262039302343678809065060838332414473193185763521498808970677562571518286359243945319350070836546909336995718195729451742424134530392095810034389305697654642863956424781449016972020813114442626159805557434171581160571727939583703870189610349784296626819127756852604224847860891991739267857150176282265286477759765563370875017803067967631881329080239962034366876693696642405596201140181108349465512577448581303224294091524041645863948811793410885703968319358062546519074458799515232877564168786616116836842418474392465805748473486831976974981996537725763177862065963137335179953537121820834066805838762014488449616068358150314387584373264900405960704435088308793470848419395326451646961023635618695378282474170976025365780442517314593402077202070609696676251776045473833122932823216055409118018582070460755177708428957257713455064411434174460237434798260466830353611752297806734872924170976320858797071525204622619639691047953286774923482158600916234165911285487657759757768226940933409833209210779226458309399166651325498938882879205242690426322220836737598148732995244625993295886284482341557976843315639322054109954062310101515704524757185737461161802984485999898891565131340222392007783401630078818916204372792764109161115361124723256073732587777534721737104628665893293286355900455274900764235383558421617170277676485557393437083848011559772350289482591958135512499084790961672681870199215592660644312528531457160022584030606226300752902866509445698822346944690460651522779517535473292415403670965839703643110468699241980592886571902254689573118296889243170017217169961055899427945674035667944717690107225741471567987608318222700679642403203093495524320278677100522345052483837319114694277857367689590797126111638129394071164373612890171478912765003700880146285352694649484357606026663733359386716131284338577209785296589326945266497724370774819155471127612263336362455092239551586064145832363303219028664299879037752182998940756203666113357538014073719470633549978546323747740562354590161457971086973804731785253453600307755833914759509351876112087737014208691027774278158735856446465915914060637054637541254455339128825027041467314647365548251669699803220138376710322872401523142046378953185313676421515102633999481839105024402198040480145447579482856372723147720564057170154358852470785088521751305097939537908364634236765837019415000190776972186485131585901121280929227013303581982366636235448082265016871988848223300175948185808156749452044048749996019628219473514317058316123539020417386953101347567053630670283305896605126238697521507200268265994441436324667679595147321330055996416042870972331960311554558065034101324702676114829766663561867204003090214045166534796488913968672711552682091867287787348825082820079579584380885573919404353588471949480673316072178380093501251598554697553796184775676799187838914833362737538160402007397798594065787355309538263892790752030063619574541274139859095109460840099711164818664948316728320222670628578771633328951649662051844915353752226511947193517007155337010738870696702197448901498553451742331526445501480491083533208874517747214456676790081774761592548742663135007368430741310740983887558781023057068597573396851842445921730703589559966062355829412498763677686257770639047889027243101999830903518987887610551960791713341853237543606064986923956516342981674835318858578314839736412265619062686857121963849949478330677661702998060196006747481710658349159141687810486052980343979558397479019741938707492859930405624165734784236051777029730612688894519079893493015436006069367299256457452140131913081057795800183734375792601124216107777622721903001489426503080348709137138700467494710300532114479461640062859631157787842438988482280111349895596214675620067355538502530208646700504809782679179574679164471534666206258949913662476871111964401789369675279034597809202735092659849736801549098872850543370169707073486541321072094369441321677015687642969061226826605907300242809785750781300054392596050201093570991555590419348851954874769526909447494235353510038270070507875348629721544170073172027878480065227334534180889062917532837669272235705976898073293889002105237244574825303925993993514242875813379606709515942684939508372621629664276823625255692663227901978062671488727367741711231017407853070396837601622963142056269544617175943860993409382005572899170977823390703224505339756351072464890982588849846406555436157322813463641282825637387267878213540851052076340512999125999099721076324741335711643261715350180415530043185708791570091051704180969672004857657928857234531064039986828168990546982887978533512274410849389236099356392723953503945529127230098831652944957431031345279791243413533587880680101796329413052694269651453811284087345023946178095680687859513823506141722173830069676941836870357208261167018200381017711497221112466266037948588687529178447488567655007784142434524615368897871079418061140882666185915250983218192345382376803655109739522832007342479761531683201059096556625751936534318645279580215074767561261468825941866395754274090661081035020305310450215128948545829891922778108532428263067282955632562190169019820443774083336400012127260817932532296544141000485470818011095544422507518964014842216153484161986845189574361391894473594978633569688416171727668730650883218985785708550661688822845436707829234680290592328533006666568714832752328051410048044444746329118379521020551445324188560766808176858116044706182717541673196338814513599105979248642769223396254029455104648178176834125123024324305127734784326336716067519873875382402169437060245797233307762738505666528099564104727475555581036847819129526514212354818419698359245651049694746283729752325211850836690081032244769566392808012089309291957918628190538343289690813556076278621276028940036129287196983518864936294191886794530561003223658914466335201006350064954958752153902456566124176434973028076452216125818848463011766052600235409548465376089393537722442049996643445413747617169231701265698011056168075233971245019977348103126116097059194259589885376367450183312196885721905444590556750346729086001864285131229419846186905505260288642849994036646228619141997874472600234701637510539783588935465841195068105995712468227640057173310441758008691923586378686681188563047033406004972683145597924536109001310375335839704620265181362977899757825309260837554185844429396801247294173705571742721413844055138140307259599330234160041582056778893880846389065936875618992953201335317660096973978127951637605390147218215687249244399771460138272825972430549315221389750345575333403322336899278287620306470758614503436455323183689819753841572757968836008032156746222652146308145859420755986104022424302100253996395092866987165735769994148546633480349692378752524995173922468948041771318283291582533132874504977126402204220129437586198525792858934984927102156293296506826293368110087983678181574632108743321049819544286949435019227331176293609465942361224821849779506806646822998129477458621888885656564144618677041844859377067815355893823790227679593409057732292319148789077033622826586059345228666370785162471825827436632560547544993670839801351582915317835292186636911735593314405450648867114248886282162988598860442106441115698140115670210793949361656846785098420299636672460732964689958116966579704042827214455232638613902027507041242023736330960059279328261912626259707552711136646843506898886504585964073777275880901166211847683363826277828859171744787327367922112982300975409774724972881562945419809572172654499316567654378115390477958897765503804808335521201292729221947632275455939256752004694739071386385423341876745184885459953826046717293972354923949765469485704714507774359875519859733378709095169579481877502139625279055483518473031616282208642024178091223397212401599990316566114409189384282363884958774245009635936770943150710934628516858419756733548187365504853808559644134996428223028232674954319775788136878203115915261255749558423745470333811197131671512906835116008289344556396033197453347530501014696162931322711957921812279531777471491846774200135277617079961160410349022034439499772770465644880542966329642915144582147871413101313789096011145212949438487232103852352392938597073730282368539844487192402496364200042027713332574055956278778965179133774064812531161168316620665442319812885469084592294677470934486840740620493703500439147761208174836083773604453109881646748681993338268125692179481749195272550665410718555723934834620267038926837357519253299236491578152386378405568740495313433769031979508891018635637750861903677435040484594244471998466617863973964122765634121938217117524876206962982321583460951558291732791469758447361314818450913755579170360810628118203947374539580349365853303561645903431249288294044448032925770005954926932658997301061567206742226697661830647870219917456149230854097288496503125272129987609739437325845667481611496294813415382155249504326188180366926951413813951766476446855998060230868290562920776775705362041091706165189666554117761932470750948585983204729548932802128642854602058452281479642447600890607688469887382915203211272015938252794945515858636261050937029903416394844151537703721959683600888786131894020239160316433337533211029247797161548982274209350786093936689662385285839636080157897638697894574939255845582024559918351793670471455187861362295706120289254029837887428775844482645696521004282417095891695133563899770674474529642261518548003995789989247902695643871909681973592028598578472222154257252062347101604950975528152896382930621627075690198787449107633490490428591397076646200841199822166445818355128162774687237098320666472387535839203014912790250786313004751498539185249541994433117280673992497663421910316660098869780246225002338123756276510175183385494720091062217967387367631366688768000004125110814088199491667529551378052753526437895839316818697502439222971371096097455791455694607056054649232259787320712051000481420105117322113103146827064420080468922230853019743671326628335214844139932856694223968086775952916126124753520013398443687819979375599592021519409792407791100171093965839232401747626626339887183772689229624605193241375605363311055328963351560583066764971494412331542185262727775439817436834308376087059545128766512577165549913362046539384576974452755593463701223407298667980861485509862018410049819303919535734871099816253080111719971568315856412629462521020972149164202134671012685066330845401116187271825745975591160931923442419976456456264304698109264610571316478924023091836937353714313631633807009772736886729432704560441385867868890075821341877750481548434114888145629571770757145923081442852454175563390257175041893150395153803644570997282377968131771089066124120205278845231484245556899606432852431705480193643995395199737193144869132553534494669471214652756861484093634530685409594402460907467413979042791605471168901293161775905587243114606347563835748024532692693090802377544487886203942656107394754413349437348612751871665078593684412913626932883201906121877473339535181110821642100344504155335480502350063181119847333720535043769588414427300932876464979688284249548011127750785915794738986311901728978779077960742020130179033094082865542136324518999895105779515326574286159720698346270506919270819667067407273926011743665546228691499211837936523231624685350923725375607462157111056528543637193829671487031772195289848329181120919194957323330500820669363888837308745333514557127613307861419140547924809310009566534516880056548653132329067745340861447936208792700731889496814281064488542584769418107890523116805614528587837464886863553480255445923949486019554485592807847150480057237072155821093742191958649580260905451467722298386561633557529234304771083065902407376030733268601111662287949490128274747831203049446649501921638152718838790460855150177190040928626532765133204979573194547083316820950374995314152081139301756417201267403712911796498913138117518351165025591222514340146865295521046032057810623508644330394466206322757713253761243825199068285307533282460277639733310719623464256654548392698641979838789945064554365764567002640309723175198930469673845947680930626854622394769035167784219330914303905713222977767642372091879496587663400605214809721701926867737387846955532147936343541861402744064465695581599124066674210619422760404948328731691548775216556319047862297560960122732684664153256060002034135950148690722667015507259216133848082392405541571378365409452295895041174405935003367360656228402799183129677026812260248402049226866012080202931294297238868558012674871722337537866817482860766923961862086178142954237272678325156726776323810778369368162700984714657280865077331250633958454407909415462511566992096666012410615915895661052847282450170455605056726352491332876987811766172669285279560779154993226509195424759418936453869149138748700868385339053206564763596784500508780681811559445982387448196015162626435408015696703903875064342954094031247632413766765553062639473138285750622623922147728900981011419580319739394984381383079941660666114316262953437232648083062502315963763966810806583741474219476935984241054017465949752447834245898284824970771487180046621549871143657046721409697920140998999678209673431282188034741871092511265953400407045690727808500163724138019222638220373364363053967548006734750028786750597661680144899825406156259792599687399314002510399124578809736172515461711537099078873782318782906776825930053430955825962159274050279118109703444644921899701981791378835619256349771771282402398816444643097235561047774782480880670280685287415561645974898612322688619401815990916705218752310106050823870839972050613786270847283435347281591152986392362484640158061280379591693365358125080327516505573492221105401362890585161659243707019734320187390752977208840232081385954613734138872838598032306149597350523308552311549665884477848938767225445156544711482307930018593692968511721286227608182692572698006881522694934978057713527165092993224288379670460795485177776051872005875836628533516675151857569831806249523210257790630598662130697075491617012415775319386531949202898952881885064344285123517822603809837867773174815016720631382981103606886291389478212753403383218065538649128168615798927104664533649623976262527298781365471151671988915849470483791838047655859671571845763780840646030826307529223727772586697828205534279555940538837672572634515004579160723656963943936196654646221437294276067340411637040001201027818343021428232251086380246176304249963084005412486470146806476083373848497036157190245761903994013086386454482357789983495481197743553039320309936483922206971412641953069061570585028348859153736242381543303002070821202797569222663130745712363855089763762247935901530333117995644025835213298822742208184646502854879276793410835449183479299725416491715033511717469676623693941690461656648442754297122937912744527852946008571865045627916111379614262309120497145025150196658099641757947047266589998566946896638140670828448401485647915663720906753880583659590851273453822586747001289365065919938798463437655600062069056535959619830538465634944720972215640194187295306537369195496871255141295267288029204439088772628165235025651398273313382097684097483163608276367531269108301329662825982660613775886238350919268258737580909038365559172288460172075127555184371766282705208301566549407555117379632808305023072640670656736880383221067325417710026730562694152567185751094671300037660479139237600212174749621487452957818145392983007037866452357861812438002277080623803732646121640172354997919685420235418668779522724572761565665254383342539470898090023760467821789113624734823409853716400276322412109703988921999212948450009852029237692074431288727049872109331484919936866186353697494442267985693827779981753428697120017149743211102911430295674441760289327268949480539533785311463196309063563782683078175108655843108367464660926657251136242230748692229219057322302615191942856407015590200189413970087156365771492112195920760664332091558180266038553627847761746042815842785813157232967126644645068302690147480103335709667710758962043469687790784484857990940979522932569826455125810684155440722406908857749215097330344665443495731939756376526059381262749406435425143218469465298071948676075377894463833464087820139488107556237322685758881097228544980518285788960172187443753379334024972406170411667235045480825464616467539833309037281234844037836802157448803940799291376775731349181718792629162591136596083293142302655721538378739707436255112367135593446868036259902180170126277901470013866444982758839408813608476497074541846075122047511587493096920716207885604034490957476042970744372894143531084262885988920138762153093511366700411329630615662502743253338222100242578389203132165936564700635083566627438301204017274718642896970875369119624280475513274423941798166098287536327988548701110124540102799754057810341433414603487520839641770954700643476110433288053018443976176584666152327161452958668225988506429496812611696877976377349185902782285173565554083591014993736100457650631235058657099542025719331448572579539175927920079154945959089161298175894690410078185809247062025209668736763102121477156223688335940902595934375539506741315883650575309454766540703561651867061474189947759022782327725205670741039786687635599401421907262121381070144872100901504308465857584621733917596231175115560198462729403504376063768767805970696631017788704155961554195539134376079050640032687916694628802438529200755711633469637886529525536494993527083443197204050046694485819992253485066997072554989316582699519667368527339607482953364019281710016426415881255871208552633226096528445565556674214999860767333121947004645266727849222262731393008576278482165796860239576135330880816322120692812137698115545074738860908507672826582048380522169267659053600188412456562557980852150951078354431531802255722720690854656303086336570588657589407365242918061164489661243806141688839987729350594820283920270774025622777498523745923133910322162243222928432427135537966309285322373270674571643395996275743869469556993144959369114460917392195215237662801640601899088009627210772411610557950376161036474434442952211592994646546568748414835398250482586641027336234664654030764603417091580794267790343666724737344177258654899401003249016171900152571092628290329440807191898089289429753117499716063107736991147277044303285530856715370295116264748834406688306948153111535230388613933878826734257803604358201064705962551735650945595703873967126855721022218362065509675874797402367377144182162240777693828472753519946754435962928248094887952052188810000861752417159024913693964246041010450868821291723851495671321457811987089422428664728202287595685735151460524106896993639051129717231812591900595168452421434684462859347261717848792162429657712070564415165126437314017817933481278088547668752888994569525679378122821599853149462713971275103941627139267971078613707203627643899701725013301907075686130737756360334132464626189971446415937849823836106585292817947197544647117172475055843463782391914903137707276545254235412940109206548963192866440079537291077934740030398033593218755476454541509921309832848760798646883091725022580398249451997343327298282733817728134087087029203473449088703752668005628080799117473464578742034113735698581367707562382501277360162690073556256238927913526529504927106668670014115266749318534868614823704557104832696347646596412958337289410508275503652366514145582843465945839468735384287190769128271796412803858558111122265448753165589300239708572264248509293398781310073425719019064353207152167461570533475891485272464847998628018532819027731010617988970322051984900616594979985127829551692462296500686358663806907964485471146428731206349573437942130301175647609540987889788861455421705715928933133728731087297826633101200555085978596277228765014045497864961938459855675025065472447287757110430606085327229196334961399399330431992950700549811786046641997550318916345614929905475228484205513195017638926110494148505071138293153027686326148573286176408256050844134940172918502878284160444285173741325298707365059123199461511173075008958342338745099433061040831897835700138330278483270993563665251834215566325425710104317663988557853871210971744761857407678632929411739166774427786729649952708520580267872755656558538012853962225059499235698043049722249001306947984262351726061876792106708830400156301542250009406193825699609179289177467416331108809668796063785263077886927669141987172602293436151472880772001140370528407338626240014608019416542362899180867667014529213877682083687201934251645192448063953767209597961657476798287419862412860899627173559873365739330927869173007167984805174883074574868700903431217556081945188888064863473913432571951578548315588726641503604171373727694615962649487177815114882772863568713005062253641871362446625122321349187402514723603940970311416855115053803104046370064206500709268959184121283625857542010834647572182131713803775389002281368295556769623613737295652907752904866250447560898682050956207873431220782794051071286871826136361516618241069628484191418566653345178039216934422562472915186370704651687055887292398999702548425251674380225985113544403832532235551044716280700194074266846976024786518550378779329227061527660531287808028832843938127790616623204173664305728777975240303228634891339893894872399350259586281715164479870353911105655502266364553006115061354137218614570837936847129204530071486710493164127819663380621559367789295464006610374249559225333996442238496558455142147270314175641395141422763582923128875839117640590848238602365100575452990255488950799054860700318159633097178247552787330593430629395721339431490349843563845259800064077920744776661867705265401392395800486708312091193106563295782228545404316526765533008067407615021406861017413867243556485524423609465622128950522270064566732342099823098523633963783841816768480625768581214530894010466714686233097099166270995953797268619406292789047540251132321733257674189761324534845047378997530537976347598932666644584567912427278389115330943249311383657987836577096134375588595651438842428591088609708234883598371730766067812871012881369197555527830650494285656836404938048870561567642569619533213565282666166509402464382076722874973860716543909822315839522972663224200475097851080400415881484969262716872692788944879396193771965646695367320175662292340883469523418121683804084253405131132408562718981812338511658813428273330658506906599233228862714075405080974795157793732390593567362726447561240896789163192869422079905507992121855878922630437854521536278045255918886744338670869131639096024484839415417127692510513091605517173360239942729733207750855672383573914101941198605539795813445586376934690435577122100806734286010446558458146310449538834784614577799476584456413458349694818036772272892340641502290161672993558809508545374806996596127999151258391964550459269306892947764182685488201130138423352402355523798636850062424908001939294870801166493608464636267983360331635621218454272835533424152243293704471413512024847501626062216178917278771270773006357306965034299141836366854189370874134016068143811816696607071217299849224944807114260858303310171119110191670263598279547792423118694794998785472852629086113135412945275184883970392039797903992545826135686337442666191975605248623210542290550968890522591853133793654458886058393052342570669631178258259687818961730243129408430230229601814917647593780348511115809230930856665694223234050118221647964315343059850072201495503250976200442764201184380523915039096374907329610610688485606057861156430386270847461489983683536017073988891020397911063500005106436227942973424166366128494622126357262394797104082894985246465904925651071932288270825350209430578148928203982059235279341477194571546811702645555506381344628194461453618664514987576569043296933453887705161194425860311160593557181323643165257126951046693732042807376890421116668130275985115991816857665463334939209199579519027552153906215460897653626588931497001024235283583802877716578762352415347125888889561526739707687464648319810072250378942884865399462169594648473798085176326123050856629430157962836546793224604247476709195990949680773716145412352143792339815703854320859932730198144996846429940214599718292643799685680177545569780171529828392652344701289256895354101935634097079261807584826290664074567564205118563675937212244901524622489142655132372487909555228111421230481238516695463579216068649465446323332828396277112723813628361408465379128696709990555361080829075999731362137369952868830402913587068890282825657690640594422006056164045106626506415315777748553375426450453799448683567460363823726506146594690949023206750889475648080733232693544540129909492056223829823259397833028793514102907235671540935448129136083575834263480571589507183889637902360759351409099183344856383480475402118664466198750935606799381571954067750514860046531654467846912800653833112562597513576500660855334666005216699254854195847141977442128142871291187384058498149649503716746109354132923564933389908320047645595400893845761023682315826438308038394891438422952823524366614294514335530813662701711390950781538780673808350705099621109573403817520731866362741822245497555192525865156466167927199629528428675167382927036435034044345982146041736580654697322752278127961084823264564467871927437133390886958926058927252830586274582443555728086211999199991519971614077988285583596514427990163907534874017493402733997169215861421755867977433823439111000485904214405974978759460746685321495093097302752623480540608467843637267490291559551753285927820053950074287815912138156383898690655733296123011461666324477064923658360641169078668244772569371373214160282805134213771386696069666508838507708172574856818861798247507058620068750131639246557015989980193618647662727507210602065806020173260094165875319754560328748263754920942455797663675264804496641183343240169403776981517416441979338718785287151569705566839211033422631051470055749741406241328444306750466876979186398520895890503878412174629974476190838071918783076504460084043386939960320582464155424492223674247981087989135275059949703848116629187542741542546279849597275461303366600796262394405824624317162127850306206757528035282535504720382859032060766400652005968488092063739195283833154691473627360829841642633131145941294981357569776451782440851075335447158257139380333046475967119104552406726895212096674067779509457769001812801975890674005202137138814203229350786456416480808575718103119548012537850529560773015215400760564058662073428285602351073632366504918368055282479407374068093143870357054826066765634533080910330117627262191737995320393111989384217754138698084741155177551659592926352248889616684764132010767464261860299905697190455895454486311110935571132795054230915575766162032855697277686851469860087114545405314914735095049701642523430394058251112016350065556452399653820743068096784790428035616215164845398438695609520798588177880093974077534842121776845096938110869178447876366847557689842832727618247077269002735808332508033290433221187710357787021613874460611523882355081341972551175551102498121669250324859629329296358144946974084302821587222953482272723667506224049903368826836545071863949755357025320145270302604329343202082413487899429453487957355680610930817543223083745599700854719551498595107217614649622133850455384414663602948296091983031820012190664906152618992959338770389437748669816843490137403535176781092563617769099424388190638637973276789396362843162740266870111862978982473621810014257759793206548492697815272435882693772794333199435059984850232066090902491774495067294525691734999342454945612109968957394578289285586941441794998658839439724245257792680771315643636643750558399899562778898953428288569067321700949052237679682843688421741508032541226932673650873750229725873002914564162721853312853127963509180139758768952107693506083220045225518463710748586589074322343619766780614112428859805345968723333033487911138586996410740410002797600531837884712495144925104249772200363743831915264137683867133796322107445930457289403946783912619047953707215669572525169881801010146012677920155797462530895611447239432148493085114109520613382333357200972774601932378759079763741702753288930383008953704505726160939881991670352731835429253699190389954030246424026494017873301147034562940631845022608598377568729540659705849729212262218734470414218543606330550822433797600442229293537807350928769053264680439028465070574906779203246296366399685266699770603781193758806906238185333198016856871353796724214381245039591731431142244699761851947738906378107412495356006918575204598612052411384572694810667224801435139557360140540018452092456799321258691548913003548040675017928800605114815742509521747985613250530938503935728332222803223447593402151738160039466623582884946796525959268367795751384476014963864563961279373116667417302189718179316946774741621057475699624178689012630299755295024633148834041590375012712073251446782941982866239111249257957576074116146362836143281628720602114142670205176255148280493247550255992080256256284534777638037644111150515516320117645940765330868710511630847496144514816473475942161955219097264664487664695502177979650048298132454505410275268261835446884676980929677217965927487384405942157604997914908742126671747745096708433323935512460361142455145115895230829943095510045074416035658985948481797889957126346934261962334681345332821335477466353554607281217333315158120667220297848120839280184836756863268707817491081499144030685299642441419035867663364839128210212039254417893986933929077657275566623824351384117655256428860142011959645437496553422449970767995493805594760326065214964934848144445986093344359976603408005350357200800270465816921150902637390533755489962757737262089987315391321388911043752438465865968803444162972939298975061725484859067009015177928169575999425078517730027666223924624160938439017993809439614604799735658630005264914404137998372192680375104493544087484843210268795583839818076535936602816698232064199073301951319067995826461277278039635579539200119140675895080863482480931425461306918631521711822605153477690812825610273703463216907886637427869616843715559058768809883505968078280000773151761453858121910803209766520450149548541155308726973735241854622866338519464157027727265136929145956150894827304754354069941459982845114824374579972044432354551902223127531820149574513799002738273966528178935273913829687839534171057977694380941329226147491215255296607215212193539285424932723440031030743537553633343999320047431426626245916093747749857854121677718938598318350039587944560129011897877554680141486764144625323157743294630540830968278101335413878071718399722618932072882800369037589502268170522815244922411388432018948293354094199137870208785445975541503898431551818259938834875562455978025651275977739098089569196501938773099888872995604020022087151656806319130327889263472201894154052814226843392978814869358279265516178880467061507582375801067665245369347867322157915025311053920745433973846774411184286020432029371596721282294371787697003742245944031896023435540186044049009680545650183594071862338179240279259524229814009972011102539612096219659279602640727611417351846735124286164635017411110232520307538884668235422632707790425580627712643503667891731444147580814140052341158043541897697952695326225860766603577573525258229013381201082646420986879280866190431854748723579098367950727946196299260166461664122639496005381773418841360493092987173938431104273565670394909089186947335189192477229710616510652720451179619685382839991628826766422067178628103621343414122900894644997555051116355413929698088728323050819867089311801431528676154435411849645205127280885070947235118077789178890591606410040159602556051010591343177819659998295634618547191181249839493777975051401725875476904464239129696441244955875509768192911644036928354532918143342357317257879033760234985530718824180402972763361321145617384116579103418662047121048380388536682521810722852017502363577857319566581705253184730054318067042821561101109936714632115971796464905984071196752345490059143050283952255303842409464369563656614830942750719684002297925211882751463604890223165034789967894077234694230835457534464731122369121626585145698042609828155272888290644039249071504443968120080921020606254624724900411036394852254663742643136360059135677450063556649859457870872792606432562331762198954313206365277564079852312779859217064343501938861320433123704010103302942299018937917492356211277827507884905536441168574668067247563712886518923056419672745520229944157788381889469740687156859304208914663391505394016117238350355580516178765777087243148871742649525358533294472934657743404161202051818518545819511065628352332910223676807672671059924010184031631923156197902019796724125126572371852914812282309378398641277305277845717661478614286385901459760561004829016097306830978447780133157695879417202293008730233520379402154601351877821033901262115304728933441756020438936806780021751019917548036286126911754427331898410667564055711046685457019489140048999014683066465868700048195339017038884893501653800371788003313954800514414726602751788818662310759606047668772835186972614535715778618812377000065196929826717175578201700656397255985251984358999078292214200768719030662391007945907769028055804929298797762565736401288176267424058370374878040749853497871291558563727964889217779420689143105900358293295055454550635354986217246555787854397619451659831530885261988542598707718963780578359451986308819503495270213584489426020574024700711845287262077173495050275740656487313664028672219344875089367950395082000640458235126761194785307861764290128552478738720872029540897321335526217110911624194055657748215815704282442985078897142012389204677544596754194625127796035819796804680595731184293597520658212885778832737545415389119928762682604207625612502391614476977716708021818120554103134655734484885263997952192753529614893633783842237495103808498594305171788626787942573600890845709397448894223234044693500556265516069557951544820004134291842677874454472560951639128374485747131739030922399090004343445241922327875618518185531736291173659221811554290937583945568027788068145207872004123828743021958492153670828633901244585548690822381701247330007938483330150720812822024502011583422804118191009300564595583896053905872029717543970942241844269175830864004286225541324823156023662430635685605150753842876567920847611163630847049497474064317303241863218279522393569610971311903879826275051447884685210740836495579430860235039688655125051790134671195116256356656387214906630939043799011072705840285193736656839898507447234790150692510624022105810950202805162157880921653733999676308500632359138637355127410463398265364173681322449011906207458965532385798908042543107614711926462127481384894147322709938587463754914449517410177579273524038229220029601395867374326391891260612249194895727721697697652900414034840680697610631187018394064312358330111072057942126704489071939565220344466645194791521704078615922203717879720631084018170115108613712705465104067036548365055517006530773964551962512546177171338344290321247086887838158476586478900858574963730271555250405915834626273307017252409559434940446776707747733779181538892492987662993481603234264539037304666591346870801051381772385653369002814740720808348793734525040648350322992691696011932971072027343495387295696918532399574690250665404840585818586678496022922099005293985053270931783321248854677267888011631211735459711964613721367707491720006491839526700180629505095480620456162002657613602187742040582113497074382711056715569212090441080196987997788165156716308204485932095186481206706671791144485453396711272690431779522713426786126999916433767132433212993279498080136153345759281706379472057286539181428707450248815246013271406257402789381439167124483309085191647102805246236053256437497120975886143968884077407791520598890479108023777021931520742840229787779036972454850549423594347933584051350193590816554364309457549969801179642975212465830374966965730428381869054596711589071887674478749870973098931796357050851712251117111888708796045725486237201896189435559876923314595744521157419537368413410799707206675833418203396530179529826830507066344118579725829305625228349294654252967779505946120607555851297565647627190449983806288649102224502157652401892038554068171188043512852887015059934361846270665284867282022182953003368411720403978476826624957045470082538639684664040920131422097590335786827039183071984934057833161825534696534469294424784055965011792601166080479252859176057510284968631599285732125461979262762078605947375120771424505734767337646284120937088144326475434892557187804396792370810869668853830761689201913580136847609670440766606865550893263847859145746597515675074156072490922513391513790337877341379681212805211047501796111997122118081073303288324655803339015441195894720603461050439759311797666048511449758639512050742057827022759456832393453840463933499442163452732372979904907743529104391051879222995751767722138924304620662772635281556899905049327531307375781313093562041146398732451119238533470216552080727043685921814961801700145762214787971925993842918004874258664711836744795873837289452821024485312903745911737184501423785721584754366497643071390577217265768523633516485616303464626803618567940773367821301816758563422521609219876041740443195578785719919947740008128273353686658014736916060143828589803141281157831427478742891890635029053071535143669941197432195729091113783404091989022717404593114447983237993742167928818491040726332469929926429129680611186968579316658546851417937084333355627614326552899385596077022508114261024336200670918126651920133711517683162513023757585815137187206050747057409965445080262073010981307667553619650234706066662368701291426901118103770055917356657522105243847964140065000564507866639315471645792713043875336420611689113822265647013265278745032261911783725611764129475739003334101391986952243608827139914204035603313387900656428330519746602855936084196822314258680252119877647157748728484205430628512132156578215626855857412542311318570680259979648900861421503594479170022706377280397025678518590273154531868245967424123022466586034478456797378953061199502375876087831321296417581876473632706800373696333557035511931282835076229355931520142186871474179227928006086497838991205557364104995900412448966743036039457538333178816399535655454428511220590338176805940294494742208043760466523489783654395491508783830344454636468444519786460059692923748742008981036585020470778535674168844180035372079379621480067488488698350359384476389457560931074935956982649550824126988154910790514173843291394464512473540975087466454708391941358165090991019062616223406510374707283208039296154898395042404153310647685963667172782104690262717384943728462411493917273917569339901565600543334905637576496471796885906385110056392894831901332120567157915431902483527350355353876515782939441908568305358688434653330848960727182517963349144057713082570424652343307849120533172328750436157967722249557001359806264969387977199432652854107672223157984146846567925514766562530627734816159783099691199338187429366836349253386229474849551002278267871461058590311702268320355077808621829107563755618532583617850975834410159718859186174560461221460239549648732262229325665604633448435291917954816613481720170470937671518412502142888478846217381580764975042518522872431394176785482141323108885927268514819001180258284200690518521811196830557208193362782225783453207877672598496065431258988166418397600829941611305597390090187737681565278854621137456825609416206989919094201039738363560721351600909954149028839523338057720133652443816453391077494062609093282488474499501190744172199986690388420250758659888263200894413848248950359244800268575180331983457466522071915442528628292572739602392378152394275717312225187174514632505070779232911419154888257628117785541423210834135877634592367123952762456355178777245385082698003694216993437326828397379694195429154618700523936257413264391048133811058021172254975706899918437886950134658196887991387660111923958670503288354511166317862569114314747391083700474049478628426021360067598081285686112139941847374165918662690856309464493101431408034561460494596578657968124391560669418086182192541226443729808318390692426387798585185501409046140688264136548153285638475676022331519125166411755992796831183583134913718184058936413491880476957088261995049121023422449426088869591760266453163957241873473398091264356841171612207904572281062386479576778798537927811124243637667376215831644772634434792796536979703547447790295142324639724111281562041724730715250088071158033383276999734538852725030111816800363279817123544447184426752358474774668714357092715334810183489939226643316931359247500653047453494458914951073800777066260892945838447276045632633192406323337965048149395388543461556919738920881074978026647998817342007776709152798703216519979324225627038546660042953932259623162507288472120353073334022691851563359664070419800669327566796868264360807302656269589262848620389251391134928914411967380520794460454577507658187558391573116296608979727783024213890451936154207281844452395155482774458773975272194568240813868683239484544103780727784967354059603593139402018356030039089817207296585494187691979203368151217846580252328127209489841469716744657227667932035890912473418719357840221541249067078085003064189352618613754119010063866340370024508596546373457004484954762938221950015148652805768411208815756811345442197346907253818475418837073399472647056376644922769507800182319073997677339500673052073661925578642550594795541468483214413140370758556732774613766089354055703132345223676651940430287154621643564784653132808864020844404660593978470240580081567981802995031580201131874133410030423214110534943855006359984698374734861465355949929406892583674335849098603243836859651853816580323583703048198761591161496668486203431466315705115905730720319021399559755791536961939197848568989414347251447839422594713989910827975107125798528040887675656315027586561375677953071545238351242173273449847990567792326981971405975016844205504019369000177753149391363276113477165342988489677795352596440346966706510346503330082474210299649595623599827514936577511360333568044692520535320054975959856412296138508011927126087139345503488638797591905799754690047547645078131032875980472651478629818264650899389555252000908296143384538248761029996644610229464905897337790044599847693307389942717828152841335742330051190230882598131616553405119638738035601464492643879750656849413439084267824276762469405834583427400998591890524005467874729512567396655536695519414212079553902133785132313299946762143275915084097642957557383311337902224970880277392991990769452801161655648302261104574754431248976064770665143788439646735574729322820659791285074361825465752378068431297205449386877706135186313206623686657711351559683505697588196822454455440878592262587458946752016673672616507951713474832010882824701960683788592878068998107596915145174271335914695055914945606289471488912380754465133498850700209795024663038946007108529334918090968230117180354334270754508362436598268360647250815932708879235900567453310262797059486567528573217337216427610394373217921556055333173408508403710414152996784780373461855308220878674524094790917297701202860538764630396944680775615095094691012961084699525096464856238960261304184198933184640793934042840183771679984407072903384053847703673179868990533521426362571613701493550868509689037802205496065641406632899372693081507830404855164212061714286754914369813835481315995683549539949720725179160361082432343203226127239773511125979150895735481310602319039633318202617103395691886005242058555768941764702752282799075016787549851459430117513605630080383658840142969744851516052618423430033362829405205455974909428094349741998295902194811817459856994440325613415051648637445733716007616803161168735519284459201944835836293852914124275167752825121337121337365510162263924030256247975748206681478502336066568316951234974109744872556097941127518953894516445749155820318977675389343510660011374404802689234406767703398623807282527883202757860017375744245516791169005588057215845922967913033559689548296563654421246089288509628171069087469406137209113608811658502677375938919141312709020893940725512193596375437295802862451968641573542312762909359652466554379008765533430768951746982666192171491105442814696293120541977270267667635924490608379805166746953087443610809694573986880330612926122077144817919355227893566249381424567752461801490094271186874702461322739760513390237599911213479991748839629446384762969589732241072866911386643815341062321613773249537052400992722233396452067053904885013198754819437744333253920841418151814071993196889792559076212814621986207181612406745959327240067667818147706288300464470897654947122948636391567517658597640360810849966189843119962250118886770898754209054520953505690650437693085358556143396389892565663309568390979739437810726585223645718534671374946206301542723966862526433579805254482936559930950976888778564389058081182635928715537347947652533067886694875840033448428274285354145909998466365778676238577336406579143418291726891648528286516661294528161886118731793513816911284955226934372736226766330537323532129569370163347803246550356010205281417472875881668376133486197126811772463896548167972712336755271811512581027008970026120307412947483381704500084974571094452437967280630979816839775301875563970054209692780859097367768994886938325725844778525586070937393775638247593889985530157344131591483103481346023549292639922433369956213809459435310693309879797955998334984109543742078722061344733056340472386679172536399607945069272768183508890565077600414091067529580332878072760427234902392679759390230741002423485751108585861233262664953227565195403549255869694530694320023555938153919735926283701147027082674124020770837451233475320810867154259241597619764831731142960584616998313025039389816024749047396542734533575956789111209035695918026877445552169835928520462898914868793345499712875616206918356726003452336814760331374167974048799290410144785049421256679385444254366897680142481991909776554966703371244795436254640297192273605236855966761917528929226868257609348079475747956282961830911608408714406836487486077953574157118429339058451844788258129812916376527350569586084121983743961515622479090489941547345458728645693006363263434293882942357884886218892792549856487398409647724336682357625715965948375343796406742245544290443406733021567914911770077332925243010203858462413057292523643193830149807375780588451693530259527080881783158400453190827958686947237648420797927305684119672014373427976314603175480845467844913163641669988082506754168799481253282856410241776408007079417531716585812101768054232719444307097635248222693584904571765467917811616045812022046287986852099766226802265782018140745321529400443955031015147168797599132291039611543874851066263899885496131631387907688486775545075331655341941201784026506605664096201915117773140218393215355051510068509953216475856620087731735041249479293198561251056585407882491693259655793631781462448426695819716060475186517218536129058920223033101498868414857144028037649383634734782331981596790811642030101734028472323265506099713415181711674650579471046576558779839152647514108849278703844712103034062886672533429643900297925760472613208279071345188991737841363597575024464484485801311125221155610769891666110970015213641671172666175081165248902223507479450619672033466819517327760077242598776208649927565000114078361232992011415518813912598921890266538464033797372993615435310494492124443381245464393117577808737005446001104893609130471851613013355052185310817834372886378293379675225235869366370365657449598275235819600576346984146082102630613643806733739536826559546743616766801436334742094636411973496303220024731961406740290212992391991483683002571414695181134543403619323624577090192814367227409869439521471827979974389309460097285759313876915265392963148234417840748244400478703211087205430865965870441220247213900796633587915032172612839470946056783292563975888643529792919391795014351216136850271151655794097663972268118996462131808122586112549187730781099240619006811436109466349273894357034810767780025709375131050397021711657637182333105499567140207829251497933101406314266091736868854752807863073645506555527761097950321634150154762181910444447672154813658313485966843791636238979336835451702982915096944381196665191343566228390633309642274083165668967284667867510593626439393833006306501273458082590035743083201670778889001570336036149790969630694936120684790668016711019337466857690097727949156232213355199317819540146446284562837461438017334145193271675857683046602773593213428261624986652492808637607783910924208884107008900151962449482183011179648501540228585324850300625765251705549914682827479333855891175795004331283431979814416071948318424312149982820235325047261235811245220602177133140933258121176406718617479379039212423593903937791128776389996780367061811941121213001597366200706790218119644593544772444326612130611194361427430257581388286232113048272034205424522464218257777005984061721626723619618052109473719746454173328200956954861742222178922800698431934571437657779504511625008883373094350702017879085353392839622163234250953087121991381296586908173126989786956894972724134081536160490811631261779577262869624717803750151783725623759096938248047277686552469818436081388804489363266161252219255128031600522038125197903033317083434510781975821950500470809121603786801220386897960730498123076549797731725616985066984499438873713317718317872942089029263184600234293825047572882415857995817696300112392362557203244053714704219073092530887450063324273026421483236720309837500314411155770823364720679439176531419977122610334735070157501500651847399957810889973952819606189380039397286697182402870264875847087605530035171296903420811244999599319650671418497082754597303510769703940128707297904498378627866338599275580774337016894914791128255426394537463106292445532276959531652827423705485228512761935388794227365579566849820014777509062581995555251874688649672814086674156600331448751245922695093234276653350309585528668709386654214818417654664014390428300524901314504337341957819101059350119739601148519463480317690684451522592171254670321520776255535757914104339626430628990484688024215688276386449975797416755160322689934009690636837732618055431522248574614892275452317676116196916568654603574526798138794111563474000095207928570121634248760927981106487605679991723564616015374830159416398907691781422119027897331799818267619003585322185287942332260358888109430947691778311988417725709857541161912629583550772485728971525260853315452515327084345047815101527101872896418544491180583574857621645965964235344740143542827933787125881832521405558782149876218638789141022875606323796739384195718770994721371198318045503287846281468528683163652163055125270866417928180841938563318601859176824679971996045640632373231972282606172321875647101984486629595608297952605117715511470342420077754785958244609227555311807510537905754733171208759337652168237745072194572358725702250323640890416385740646796615136653575069371495255574125934740204960985790942995259891071659691077522712577423576325668200345203868498571367497716196628749468672712494454695811144231715977240646752642250602569579273596476053574323780045180857451701394535601748294183048776928257520957633667012771954001216410107423752637061042107861474377278198967692780157814663764984792800239523034677404047186472725930010906754389981500222084901291288943274578913280265631134364409084388830814695157818303002174691904646895589134322148191539066375151936320190662160683146313971376828742201039603580219587919515317668930642943239236413838487098300092975459596405666490680488542588635024975988651266308507778704445919702034951854255742042794350148535017906999982781278805313180963743266999551413897824675118545605672795110420467021912369421712773213950888108649064933050117585694959595006973595399714547676246821735230227193533791720721118095724334099224249947780702620362025223857987119614633942240286870615347855173056647304448445065814864138055874251243398914115002202495409303487601804429570576986244966691041305477275313473647764594712836473038784025171776126626999460720270023872770739765770571292166744687358133119644633241071850131958764572693010769592328178028661384363234989196701993204994934303426303075490228582766560520443091223458412297306001477420706367427539639690521651825881629744826517934141717851066298303398595430462559462885591174340535540744374762674192866347626988087172205083085372931056314866400241722009944623715189082409148568705599694787334811608160088103547567724742903390595514316265642478769623154895986118968049594157904508163174660996099107143370990222619568351663682265533215682128467784178779127413298997743909791192558569034227421936616897315364450826862780420665316748587045391148582684769210188295174371189226024505909562514811326799500070501282105062215098709381561668513798696262654140190363764156283555688257884199633930678436531415002122163577738286528002299583039074854948295996163547325055381031566163003993761971432077649122519302044670052290266508068748966473325820483014946451419583608731237772260750304012621475207312407859909298779742317057705292755272105686463391885046979035649135897583597328522186441272335313680724581888886787518606199483821519138132904811199064768955713945521348116169030835849199994129082499792517213640815077305311510790077485533954877127787145296159605745597378332876807416382440884676100679015740191028029277330581031886087189621370294089886090419770243048269541468656658017427329489927811490794368284479358582889171670369413096722767378556840509120544604674240865282001137985774983667679423740412210666710962465454978555209770282825014345674021405559378281572651205199114436946578955610020114875178344076666756092333536434244419568736134834252408076156788877942875915016418870249381215431538661943090049223112057149870460953850897177609252260566448953570114012662968571166252111961999446260598662348328524927593407404390660810007689608039178334849795659219253043333251996219690321334195249612464530207283764717326759368784606181343819121598173164600694845330467030162639326816122083186396449475849003580389818775837075680670471546538505936990017881219659673217327494396304882734116903240786298285356867588401784434106038093357995256011444279124025602837800583468325699156653163980982034464334815856188566753356002294200560664363221693417786598063273598748454181665826818404230298227775903071987157888944285060905877784434773755878005750582405441486108951897783686367542199475451194575230672712102014291861906635568759837609316416691276573792846176099660721727331405452997869410673032326854861715046017533497512348540477508007952015573442078106048927014861908913019225881844979848622588213868317274528022509542133751278548145934496651232083973168142834205490539658850392212555411871654390626722638701606461489413716203971484795215528846172875296789268930313150545582025126597200533193227497021914567534400585025196731207396797462485040657579680916124365554470157195256607948136054902695084612801716133871667758752751932390703554121022216192703303660532852798197356981603538790333875863129490425819120498343868981520002102613217111374350269533494428159642055435219868016096699455162378152634691829215002812622764138418235947203711046548819553321406427577591325467702210196774189212955707955897608972126968045764384954723939614097032485148542067482114681077357576538703626958325355785468077961738001083969152788302251015016627512797815426320338395540868763563307712592528913776467222591426751477930667596005334835022075297912226812101854361811814657219220359841916877296358223482025607694817922548110055610313129098303154531445493299357369230786834513391630974165131103977972779047218906382939524365822265508028737242003327943565544744996014436837614856214703391511250827851666156792848099327535071113209799669977042087007968832062546308427678736524357939972324773285125270458726546903594781071250864203392613912811909911283825553710321858542805893528467867473853074343937602061368758919244278329421692259117469991045883641620990604959401246744720298083536747297723385021661191641588947314944928851099044365081956879893640491254658980091205297963272746830947044086603063856277519086731883132926360336073388840297546522844037741740775390517986444919991378065581727239134017588357637162288977904050005940084585826413193656757823581406909634896981897137488286064789380319918888514622391711486188813333357375917865894809981534657553566191760121672408361896099040460414811698127529494961106796957037089900077732077243039136642134197774280810917850476865659677301645977708546754973624567158543906478316061371097738522988540706199014863541756948111812492143651139885921306428701207789394026631510380922666353277040140436890340436258674390262455200318440838122102790850603864582105403077357780138752646679877198589742368092758732418418835484187015888351050027602179554411100600899214554797027263215283136879821187650274701265520179861377260464288959458924946082012765749622022870235835508830364339761940383412877654003661032003063737306627227969236375414837368096457206326079270083120622597455976244479738230092565235074205267430483051887499145276338304224478145004633425127176887517008999457515622570453868353266397691202530989560634362942448228340385035273996443956339898272267700718910789542442870236121959338059582764111923920073368636741955078996433012065818795379787804351738814274785238584434508111032349901142765646741047984163256378542763431715028829148847787736508004582307823815925329489379718445018311800669344003153158536290856261687963046312871909998176878295200143261731993709818245218091845391998667149737663729769874902782818519613009767260285430977408957472458710686836292493642457857920153794327704586905627619882429797880064809135432470611395879337892976017650937183779278611927481786216558906871010284735039026453700774542309318257564766171993025996302639309814621038252360405515410512986728419461721632903205796933898759453253211245861498153531798242780900877864442615341680844968069861636879901531934252203015317421527725713739152186288901758959884808979627323574870944494730492957501098596541978233518519444798718014262310208062557681765215671984314662789961294340865414519388228697189363274105980777003214159683942207873906756369295319859818633401483776903992706524681004674914625869680237867041647476343906709613845212616735778706346792266368643523253254749406619975529764077561133077619122957003064405152847678363360536896022127533424928385223328787945473775775455026400785584374374270619688803414590556582885885851183282532772404541843461755417786379511987761282766595091175787727647344815121378828593182964338459954178851040285317705035753563895331793882740478016784909482421905064594357112349551316435868449184809278366577453894498100976003175509539443231439996618394476625966626166402596318004531768300379518674657160210205726066065691221300609344175881416915308708341969639322733872679337519238002831252307270639700930901480556091373840793687947170458251136509617261997576178013942884600020391417981090579687184980184822602963243587877235372011686190487470161993094348718671271063029020975250339449962968883110519298368356120801940615580181303395082261647525360724870145659397914632557813097876388017982544688249100128730604941020662958464851562322786071437414865747788376594422004235136770019401218622502254787108067493117233538860496478156205788827980613598825328335394332668242324309065529434854492687787585236618288204805618989191572583789354239285322366625165153417441792968963874409191503269710601834306955510508592808933601537549794647944551455593526337470109217925644208853896371417740468289918729476908349627928475125015913222964564410925726006466063218623079628264881871803449921269122957872423040399314462493849841086572089866030524041658777243135922000010783197884359641199148630269549697227288925134930776287991639826466368953910877212188804248739169022704121305476566717592054761364208815951160949032165173436850494259097707176288360908016674478797925980472685445457919203815722542715423420734955487046111731703430227226554442030956632659505796870660995416722311460335656912317136955773456494818128688460323826745600714205842458734241336943084707010710234475089453965866645613265740161588031087077226911165479812654089890032803658292129876533228753258012095727080888770942851282833905719564175065079663781620160233461537518274219204366426404216093438709004475897520658641926488647310736177883740720934248671591944466905681025458447030585773351314734575945713246551821772094137966405343229756673890131260452293051335570587534068237585189809868781711929399347209073637121138976762118948358237211132846862539935161790859479744425637727414102837444685751193803087957823887361052787384822062232810953747506461627650447064132434394351512478316114774008648927936167603422524410807027302081945244909589296171814533781721131440453063341591925769164722447693000672401124963933719091501752344967879340370296271640190444988955709257009108855715316867250095184435845120190316996371148912460802549893628878782752418824721652738142151166102416720920262797809666399614040072491180708074947951449897176882602274211631225320534509494559422293663336659152621181096443098952391054769967293705272718391501558736559754437721529814176502486338586138311453534403975592133044512448428549542858909893439493215751807245902330285389387063422538828398641504789608903768544665568222938290041691498241274406749988877164534583737092275180658548736002854669008969729848240552389600415631082530626107684383025247787109261889653207000453200582866258563813429752347121804171873303310577728778756009489783671425207006847953350743350682558873135989550067613920365781081703134899304558868145722619867380395795124336636002732922822634342163737389602477478617738764960119573542326367307749061610624983891086883042436884281655736779268714545700883156020957423163233441228025650572194422869605984439423505568772052320325404355482932287087383669672450053555377475444250216845734245934892892416387458705361769419031055886967589314690291969733288401619227228408437577853427451645261507627974610755598037744702155942222773751390650287419118016695781061183266744812310046880916779902606275746693326145390423708765298302748004110582741854564379300727782712044781049254446759181203318368044122294622151317921050207276716729853988556306287612022923057645239852889857029020045429710069079995125569959205281250739092714852949706084686789351850077366385009985121677301125873328262554418954631721207517973202659011878295121519003987266137103295638873870070585936089646429808531241442695886531109931673247746391334657431029269368069465801513836069457862519167617980001747921542764057095964603632696522742098255789617014757877170802021795548674633941727791544878017215692716009961537969382911230317342896307878023462677629925848581234309686170649542914753178083720313641303384355495505433473818233221736264084354038888127423361166670870419519747436772839412514809600561432647080374700668590499918096755380930544011737220924051620724196481795796881926977147240842146036953097086109822948847795645969250764022550799637737425285181103865611845512223306633859240251581729326229474982061408561912686706626720628702861994766395641260618047307761758557411709354857858148774556784802573422729862306173506865141423941645026726982355239027852358977888314087339257510938725878531360891760240811417421800959260031173578288905778336189972809807524208689587193978020240541234299172496654628907290048489285984801077525435175441831691457777965764789440260018001438154870802109972681934008534284605410410643825118724926840880163831822922864283771676634147004776047104739395227113988691130848033008438128632808132770317632204474481240027714056663135605883539085648882729088842673981306302660462084393207442949076417832359446143792745995867434369848540106765710540881994782664269632363841147422045161859554801549963119465016444265502235936397036455642084121327645898091954408044200074338059777149461281869087591506978046063584046682012941865711318403607734417081452443480120967538450124980943819508012663500699628008500099062857804937181529713350704465190967020593228685264023095073831944094967526903367541470554943946248881284790214955994463885776320469644393057268891854116233036639846036769588791887907090472321048961766015194073761429784585612523193023966704060209979389449925409050496020716105867995189594603441082042366047947471906419262787460941222211882573910746345446260567094272329378657627074902402125069272105340961175455971648404016842019662165468768599190843278502261009390546236562456911231844692269260308362131025773601754358318975358376650846706639784049483581332418953899804272097880490557083737416450445118003072431161817519250721911340522364337653716225856602824575592691277495382797631022641125742263569070220566780380550298783353478572570860634845970884203416013947095234031726222581953190423605639704331697547625051309742993757904679447139828411052965539587032923989970474496824613334955432823399621643639073574878529327409671122486150023370934795496210676533448663259050319032698188705777134381898523648683617352139510640562925682602157842388361139655182175986304665088764737606491028071098752261983133078984989949238299851062936267389898656393655162655103125628957318438337580031735529662068851287939361510396915011837746168367187326035457214178549526649366226833702463646853959307267277613922364822872364534032264392729965230810475107784073473791333676556216075419296858996833526640021651674738447635474484068969213429813303899802012912894397493984074895303452735860111814819601883966514874318300423681276819919352301810976164473573053077150240342209796639591747890999362635430474452538952142091503417702334169620536780120582408351144537008865877454385043688770750033778706496239510625884691103549684460512456210927819031127916256150856443308951598173753051061478869860501538750067927493767136657090423205615714600212875337499027530010827980574660610953199481118256936464539194461712966834050052112658326022490834734865190329125517886477239663123557399741350241962226782449582433028909824892004855765121777654428416133901390686659067183800339245126708090281652593019891037245698362859217284593776255504430519961526326176806666507103801319952052033888955899253509574445887220135277886858473151825622781165604593872972684514742096388367892461538676225906000768482759469756098788051340843319294524542126896372804758944059110775674971104963999205653902378754640024299857970246408860886679877995638787006920196154662106728018303233685511726652044191697858975314774437874830226570146685470258038879907815232335376072960662207692508418608215397223422209462938097471135353670818803548550760411660543816638579331069910064360941369193524770627162139937907536585987420641560876539514260171113227653465658712517916386556457973285404061983620214221885443780567087138822176958831341672599038739792664067723776583297018034270113550803922238564034182752006902262421226669609475477958822552271184160461683696543801024000633947293552590189607085194745293836510859546291383135464884285410632161429285250567100913040000758786101870496655295666925825823273053495162698311980878398775133576740089566184911500091722013318003672368783285015602663522551417944115310293148340525302730376339562717584459793257492926099965398979950736204853052510457067246180018461913890553769015514541361158558406803466231354995693791486931943542252745510511856080662697106107629027358343658294603340208548648504285782095655274121157048417844933107350896861438015762855627745477343621543592943012078302803722722548031109134667917610748152457763723459093862310747627762368781183657136183680197167758068761153212694710235864532058983251822707368871755455258888091754713701663139517086444925763185251443121547799558432624817583248414016510054293727073819327212394518700665497087510885827403304646062809464253458445904731979994245507868558681370951135373457225353647206435330653288720007973083485328349006738692075643529523659957158044596943535904423537576529544499601611692956074066662522838445218107123677247361819997518860150499871896903953843041006656738671392080951311089344946477235594838891778058506066288145239538495504587635196970834602201643030962169036496146886882436984181951927624055176865020210627251347992357143150883723189991199342444557196765454364546578274338169152380542746017413499924386590737855505258888625832885650909091223730285122245536539918712114069797768240858123984172178397111011577935899927677584238882137480938539349079921618071897301797651029172678979125270165266803470041000561441220474765457692710466786194111391439157814812830724781232021940950572105709134301420304458822709724930829634943159815119796299605078989149671909470000232437685421737538143330385886889905225999650559342540429937832148355717504873305585553538256082676674939632329230481234216837324054665482393014197171381885651172968446334700566781612634271478544554717719563123110144048130277016830341289241053849027954300468264921558131139730135703114623519949947441178789538701704988757279966517396813567375294661128023056291800075926098478631697976448577267111430945964837066805369823836622305671218107888246050407987384975952392166003658019649863388499404206946043459474670708819356764685456059926432707728016380163478588114189858450122658024954188272770706535772651822471469506672506790711249282012152427975901398226969003541032937310830975164588673748151468312417771511636214223483709864667406343802996651483996832441960883003754928757987889339573915426306211683471818871459812287029775063458855259873247018246227796948523984492516874912001304599220514123272708804317677187841565808474399082185337171528130664284941435200890669107376739356849372831877073732398831710059252368945981481082342706548390770878917927581428817237219578388506976675067853820194185981980859842170980731430766394335843458073354849300978076143044412904959682529594965772098775025449433427156821985832180774669731972842098138538260649275892380314613817018902215011470235482270015175087930736773647833482290221667133782093171924906247137632722805071179812366810613045716233354106712050227640108093308991634850517034554383051158239099673244148395736658254616435990383077250572105928971037359912914222845525220399807355546587249768664591516335260057906911703624288764419054770247266234428185497422903235813911543079526506921167963671204043237058144436761839524262295964627758295253843680554869976111603027111252298977749023931848874814542005643321451744960218859758276853664346286658120326067658390799836215196346072250789540622577900151980028778926235979678687143365004256603427024889980446098065689425405070534745883863479500958383670116835415075214238487121478117041171010740296732087369487585959644368524959890703023985737456149874486504930153513694374271294402238518151925375879192569352949303914926702356306408554911740052862842372096976875603094872311599147263085716460123087026242726938783907476862242858894180969852524205617339320891102973904806923101613207851154719604379906207824446292460012424973892398845384710589787490758098561837568001845457409082215060272751647073550303480205309860987634656986252747515262092019182049703524580593847002819441196933517371382209686692834254967088914758320102425316330515497242651391228614349836167890801404973122724700788560812367052198062742487222947135073965213756560395162995330953950946607268173516884110271251082012471335068348299728693031154010709138734953367811416431435254700697668929995564759071323730662197348330863750168523750952937890327330784663267162498226427462133891565554490436391797475325294483242171500713482561787671083165246267433428152678035851243376216738991722445488283872672642469049602935335950490614736249685195525102028171732545696279106176455459165586058830799636800521613074056414865322454315817003357202346789445762815664841735456358289431075194191704061447178941474275635088367138484939269536117868299176370532357778266532109097902301700559630776862537614277840131443260644881865831372149079420006109731630111375605390055086669194796650791597014243740504507499749816735781861707174637804988371277506468297369133775950582103191809298621722990279874539604984331862849791290091648910544304730378915538522434523984001102683271500147959737239585184032688312980469473701232367080226637615698470949657204753246708238393977173208452325368714280796727589096393515453820278756895892645603340122227116749930883749626997461919343022569559052832370281675820356273213872086006427328520949349789592647999386767889431957029571926833535979617786140929792808475296424658019900072989998226198775587400851294884180130273767155999246420061994745302109447019698334764942834605243442557864656337316835095865570366555196775557079658533510720465170886395495113239491956479609826587429240580752887514313446221016931313580898174704285786348756377288391595995041240839565972768915109013432362641290100297397945145263003887264978485370845997505689447121404638356765282223394871676642801148798322058790237713803769364091254332130735525324709470303713747476959235932470701292657880767546858447652252942321457447447184390763390999417257110041361748904476614354969078663543520847638788043660791070828284498768816568991239754045311947468263994547046864412974358079135816442896780343155485733442691249859350700698150384992288237439955236286625846356385720077694372199816079907200301622031796435015800459576651215017804109176201585439661566834702600648346424572468435905160463871122167735822015319522652432572276037487573058576256186465748937264949070273988840949247491788736144257859805995764379098723166624175047423133698769525714563941155416519288852809665540495904637663688028571038430448501777140261467140234445826235570859063455038036788366107599690882147555288043639429256991212726602054906262710805519954244990269540949165551548209660327598767873301387192162727180150468390065913202012383535285533500534495874965756629138416405776875288785595925485371579040370562005938115111854452752616897494655424923472868977723221236802684001852917626966078511405686284432753480879651961202215051006106785114496003830559218900716051765151051536785074642540848350307746025377244581824432169629662276507508159216085066362598748810833710085674878024381040968959456222094310415866484679966288818323589758243934384918588433901165170334553509160857574095890805502825560138380929313398735841943164277062599385926222307786262251373545555233366233222350705858026588753945543767245258607431135511827486482417443861438588090807304243954523605864099100914939147410043168760417116426322944127879883148497529039336761049528000451749631626282787719572038824827207961454636991179596949237360405329051294954747961688054003902361637093498530670354839522129513482952435548856303763897274168080507110208220890461575645623798487636569207165298965205073544678436833240865641733199955276036099175896309515794314831027524684040045767488568594969043031296401187870172444699518073130561181653467162829909444568842587100293515063284764457304815911877617842006678224278804903369941826052244227600829204261563433756140752875163551828792519707670251788043932930048792682303501330485869190311818463188926872178574843167394891484386718350996429366477249394760800805707695397287851212227648944960582856080616035941087373036135572340470222796214679717038598736673332805975212048013162638936119627089007471417375484409024114053563741579228849202229806856002810082493512805182163766716834485517551020698290076869501805116412695595821368549995183935524203721227387897468564533177006018576523650026102430313555898306746553799298282202826207775711627230112289055582159918912726681698941253465078863067076127930046898645668440744405435656794855984299010063933392827058048601024691738317918957899481914723045047918260153004265439526662157408466074116094456235061068601047871496532284474236194184796587601639733938736836677910323245926907362217685874619708170251435989891254810065830362188594171210062772953209057088109127745621240192926747906816756590933829454801901095901494495978920298969746214509209927803744956011372162537119015447181611564958179552496263137348389042798237769824854695617396081592294928547834888859619545300004222264114252458675620552056903219931551119581985180061501750391881656964697929706106519885610370204751581784248837345935676886380912305713471634249139606972907048924495630828774932119013872636874273282692137698086076943926877613782631663881553838411518523558688801818944220012071134376273878070394014473196355233683967099574518133106900580045614516439613562754456452592988530552706439822280951877687751702729738793623849773432718247657124979170846558133813935597832680758018760141951241436266029574715283209554400691127694755373035925199588480510332383386429633474825565645018703783750574895807320855580551005438240051636114748652321700356855277319091168865618816021256406721481211429687097083809498089106241155085774085820797201034249928056616722330562705066537532926648057631671346891005064100070686361951182113129291785424471155380424362663025073501164364581762784930134018702378678947400998299410396843680157675838028219333578692259763083539105566646252519995135090403674403573659429407170459103203650551971513035947848130693257134219617891619276887714835677031648298869190896009225080033527076235039523682748529579739585441332311368912340919790179830987406233939501038836101569976193221500781924711286223756661456145064330413086710955099758898595210559095020031321190175795089553797375224711047878068799959453764461097709410650287584256763400092512635796119407301688900287523253249265518016824492133922549715294271103191476655772097215865648851794289532138110787855950264365943936331436634515339184453086039814606690105383448386988943332242972414165953501104291965495844746476316822052864400898079932334200840408611607649057099892779767163542920002930295485003532693971353787206055255796396648204734318790984243081119181419039494205766961374867856741824868854580891127508292892451715087471964388181392681883064059400028992796256012893997914661076106182426255317315829317122824907732432292762136507363072727429943035226211924942388845689377246974956609596856416729406518389558045986997832786717486233739702293554080971887060784891704075557317219846607825969125584623359745159901195551794402150376369944447164518479317048406851209831503436013073249170039899534843594212963158571241268108413147434758723419499668038207009990007825466470093389449367602435035321080172821016841797953502891840399740488197212731940427605770561440126905334887542143366779480987777847613476886310779361929721688295462497464205210915603477611933514257520486068356856020923153126611906087783638100387201581558704227472580395756699242004943294908724095074208738693345196837999228456729194839934125287150133463154202294502305183915638590523905681371511569352989474075191061337414024039732575142702624453274805381920761878402673513838901250600400094113061261912848668303653891388129870302286137206715313474131132574409596634912976165912870154033396501366792061749486529057777809540752746025493633968591732616177018580961776217636041560752278156353183937218554482554694356613430696298722044898841557773180820207675205741899973837328731643172876102702783888267578146840151810765562554009229210411678275480421164815111653835173159666069239152566534222441258983050351031312700016761026772795522028219612378136037986423047972645633641722175633302578679222973368929490587711827505568335296356920255266965020793577529938259040415294184844931951139786387539501685894923252085360152678250766928889240391572916227212562357457869022114374286923344192012942479605999904746179016983682308910961738290693483347874986193397018208643009306613392974830499731766210636595131025686139762823674803345644378215141066461267362594139205614712083927859620161621179823441536200798806867452219468109596702290889998003688235114225624668869585134105240767979436988260151065118397080118953993357115848043433521760511954444540329466755701180407969170490950409693449588577160871153977509423397340743781923398862905263253129470554748097826873789491661692869082456689781731100106104821283230666077723762489511743703130677262470136355548484813109809643071790781637433275851276076658022879626968543163190537071259454745579142659991553559426246334938948323605792548349586738552714247099178578486257464664558068907902040722182860065764384572184218626119419988267735033007589252023763127049755039435307636476516647607309899110625633274002686427589360095238767412719506064803218490022430691905324252306480406492010406741647854844824066961575122337944005666783834511720377460075016534551396720620437634842978497019939168123047637046296750462696024542155138156532974803398790325944368150815889091030071690300580687891141306249694072006557384743759850922751137377776290536951206409399191144024284191963911753376816725775819770048848658673770478302480151105318006714507277311823766111623234347270339000848835272664122592008804359351254306652151282146923495306515550863283701170162843147444176925567524950192370969459306604047411560573047146212003638571530514546633735049633835788364430619390494195553843198391974051406903544667864741307785367256343600711677897167759868936816508330810310943725617187245848519040071119690570451895653635483791098210156777290862794955141168147233449229501513414686953980127441769065765283971964476945825092141387552098241026556354078627377632108562391008688215836811331876505399753250235797886203589333874170496387106227450755643042151626653739768717336969992040320647091034196630732063820141255658903509325781056540164910343419319723585034726448700656740013807732740984208546903484849995315628079565910189664780270726403024474551405678187302001970208711714393220207546990295793250492530193067434113914498644275533852318459659023145441292437346743393337737234741280001719885904357760441082328695250155351777949586753244448105942313741632035863739838125474039575368711355527322698774434540187017439010157420378667810175831060031767894442066955923540412800354266908795455035485605273106160397216826970921673846408185697237666527146578976246433231204791610693566603728736944376138745468558570647530028057243428109250529118813706225178786155780501313593314338605210542830744561798403453663877911515833605023028144646767355805668023931784396733067677586365644317135678769427313844168733947759663721053972326507650295357148220846074490535440521764176371900145062790519213700284189642458633210628040242733851167933681694800784884216454372772985304094945520652517506490569562465520924225802865898976583017230289520573863359692343117477241778209139954019882415901621224736106897360940257869527873479184723291275132347695066758717859894129802982024835846910506753508829781147673491863155096020801867069467879850796693818172061904364503900672859821989465028545642116137350498433342587615165281605380173027213751929858202039087736720195610636530996280586098036305693336245433049619762617771600438795580059457742238339426343616392522839089179156888840947335735726392343763838092652321612429382177012304302920758537032064397934329892142029092308989065062471573159061575465489509780265416922032932684741821575153668824189425852548486595275615044565345413392586791821784753385708877925974555137608261219557966588487239386530221634343323369275596922964377098552180659269820465625000392493911319854329448439129485889405373550912258641193565604384704114447313979284544554148115654816283349264930922814917492556910842247334513604270711716752666639013786811408349801632273038408411956941664430913799521777815247821080058919573878125611926567611477294339078856505986550536294657640495167102005829723706798531826625899264487913852769863310006306784364326993568807047800816218728591108197302659435549784261789102009256402635090965077706011185450032155995848596169719075938968404674979995823306532041251173648425628828737493911510907324697096903879314804888852813284538305476671613455154639814612571329627902453894410798315389698198455626417515379799192197366689424187475878537570795014724130564065885463534317918130777114539649961455646702447745589377650575008140187662955829637088700516616259049952129936990281674154531551079357357074322447106499306155094047994198326343606340446664219196444775781808020993266855733537854138517944647133063608546280396348161481939418571112841543663893616152212646294787162259055687895696201399056604333849758053281039892496312874477497344937731297313321427168595349950035510582392616909595843138211040930726130880004930113519217561454553589955302266497511608502599248577912951492583950049275295747940294968634096518366826902326406322186336993572604878271658403570803944042522636249487336090970680948805854223230489229433745040548586681503985552297762173246913975759716156318120203797362864276566717168778871583962003672406260267414684508960693077042671794927854277990784226097859053847451336403895994150147918402453923830712253536561063577738806801159731015240818413786138948203261577735507313361543116791199912582654435370385075814006922279721468779197624251840917576117084429645643009558053610052039389317323925131704524168927807236549028239054584630313939586977019734646688684711207671677071732842022093241950839722306084613703404568969532675415600978758154659567417544116102927202928298927382282482235700110079453280297469987389088272568698728974113178783629337714414384485195740502410641998241889168331608008690992716926704533910052106890870677946781132306800130638117989480123658749331187780913100228767142555905618987862971240507523997241724952846229390744322934189207121371135145354155645042961060100414545006494109057307748712064413524857894697035469470290992485193810407639771712135693193587847535756368656219526482879001220518669477623667206527730764870793638764323014480269721291377154444778320792710716420466130652938584629475650384906143072403090416009897749662983913048993843218263247186462906851980635014228613027246554440608546629929872881397397830753153675583897400814773678190459692342814643484679051896294084022993664304058796026746592983138324843659160084404004594950593814644392844895821128352064676597650092793195389386544611817323581565637898164130538435661957734946602356824362965651898928343273449179977136249915316896443389135137704038727556514287253151465541304460521867987004207934040553679753943811344109701498491263349740908155639196825101267280177076616295425751993639045960038868172302486807275504100407587699225967759635352655162214167633797172212338689917006609234758966815880239733821392093493195725027348037620003207919372260060399014095457859308269335599818594952905912861467432045283973066603365181070519272893533647722965618104704420301499313806764635721303983678096498000482853058371788978247219947125020986601282036295558864947178881041096398909609597258451661675496217411417510234113364675345116778784782266427656008181785640705463966783830644214108614661282508797360883109916079453378124088193463423722709063077326144247612506836546182919777193354923266034917488125094041236372298118004669572221018680299499706890517816465221641609054326074249062285167163440162121778969273486284068047638352661508362468728629611959653474781907414534485078649273867539200739942224047458185065154362182664965014626860407744163334671215116409370049387010744334387488924918825020864753173969830678843850222437023134851797698283439354850341735534619404039311475812964604304781670010688240975286213985330415503263400395559459883939635926018361651111831557982102813762804615965575437047179641641982845961810728746366974385965633190108006996346400137787998479892114202765651492281028808431573187261467851885331486228160289203904977026673388112381804903767898570231165724109415833379544072935283483409175121288521255537210864033312426209637786300628963465998864824588529627283507986964374785180303414249880675204223929645388173736243835233427308944398216734371806188445540604118763585521733301172798290050374196121608800338429901727305601660037782095828288068666722537200656777868349122248542973684334623595890249644014937586623151495035819655107911886252068081007018124132243204748390791758728066442587719161337485994176913295896745754399971427620050115475413658711384385163695019565757879848787799182591553123935640874157593680019187236888743695371676107977551978656873911849368251228819445365299406440335960681859940151299788715936086425635195669893233462791183842669849264527716421365308030960239856413673012747960972392225993848968639317294093905963104052329891545213577425046056535061557991440943803532915709092007024790162068798336875446178602174377068575238722996835953459894728611982591296564042647476903533800449043410899444296926926925726463417427707112784302311222030227397792840652373507768845363074399262567913185608655213993804459963375410290338743871645979155154926197627636603961158762769785735501115370049884415396635079810524045184665179648730935748920230695853975246290389425095331378579246705239747956970440037613311425428110485302534441447920953292348361803932940465439250526076376564596171370547900246072627484060907355552130679674767415325533517057272460366807548116550191162869888835962261956191372115473264670240127822213501552010536392047127162112919905070405154286231189472768411422014810449400637714466044289885368074915971648022553579982561050534909289741059987611796785333730279217581439543586290089187998559814681920666843639083873398497346017739395630342337066552213200903987797973931070239776164084408989266352905458007016299988766004340348239268597540876080855988687818146450739306693265265392796683473584151749941617737727938151645579506741729492031532519533144910038668192968462129495226133516859635427581533021098791310741329611555236284834485773663999699760774967160068201894675850736599177359979270589627017606748313812554614508953652899892587213912433426344800514259392378048320266040493419030871819064120233052563289525180615123831767877180838596355502591063034935414565523476651920144924420860223440473254904411466582231057878436389609579124595126808752322729653030828683138153981681603715346424919107477334003524352513661064404446664042789814557557844621352132868324875356373759062018971391626508444456105687178527838907264005172365192981240909964981977731800373186865225488736080623096201215858467630978043267048128284757228244549290324067903034780655776481518794368987027653147229988504384062059123833445377027283937752376825242685937098588417432717626949547228396989066022771422680723071306906528964435501289853988934731044268418407014964033459237406372009354261006019476666006184453219032582106997738504078195240624286473766560370225607389682643176658102760366821305190482611461163115425865182972457450147514413412376690502542276985123691423280352802367300860652745880708103112618210160040818808886497008517892973654397942586823787091461038775864208285046070024122196422186216210829901592017121471565646395929246574511711621119658644385970606583814013340997855685027013725169114007830608586478432021162154002609855645262691653355231635120129677904874011315030568056786289351397238498692976020469211961410674103867913319790863134403311521860299102377285655119468697473110156928126680815082985341823635884784710678799578140923513290175297704826950458372610837030595379417776441609577079359968915089010445555654044014904716621141229013439285505723959206154760420874589100589404297606636454796000408194918393518591115687287340979295917414876782046127482648540065935215804942047924075043977807991683369192146845147733050747869509295704706826781356926101081512164166938002730411076300436030657857807244995281533645955440209464252191274723690682890494210010526342969592776951380396761145801208975255026495323427614373718641657362646683520935276300799694512159955413923765868904384680459637137011871661612577870446596746803019749094305084113466460744146225133371472925737311594432411910231188278019744856063147644014314743429512608352261893078081464241452142629748262464282005311022155157491982982344128028123862388998824316891402753757162999959612072441895822550959794803448938346801037954502587254094911030014706848993424471354230644818796490427557826608961345853672432080446367746355561090025124179679997834910878501841056259835987065470308513374925384161431790809532894280378184529017522188804467510345783149195853267160668810829748334198222744406826610572105776684981628377079111549603242364274770434993372576274133189224201368198441794260980821354858546566273981718334734522671816864474518965869925876517089677053562579366960615663563127910121364451304291469436070301326368200027500993373273240786871660350696116958704457194487237792681301357967344210722928334107116041481792436678048643865533889308929648293620471696287303934372808697782793978622080253855710838849884938249829200878309566755679304317454162966368556095070392730517062203094884522621285647783513034571282831697825293421186302522958292534504425043703991021378962915362659345160531751058761754814613218291830129855867275128920332437931532831955668675841428270433397340237993786070182940932502174904756761101789654189005929487179594997804195948019758328696097331747808867274571717234667224749130786343525700062585286686417417775789201927424181991942407227192468212762498253279301466253211709093802326191464385830374151512000436432484680499523159564710052235504344765312571778358973615651794435397799110911798350556920180431041922660152340042537981623908276914342216754774312132206299319455565530436480200303719998923139386842499610976596910201919444371660228828860661361183968665881092711033045974786231203624698940524216559089453105175371855725746142762744054506795520124259524928755716944414786040334901159184885170821555226191498226081847887292905609121611960766735880746275807684534293208015235926819318788878586907321187692696277793552321226849023007113044611551824146246163236242286393906599462759006373023918468248224195445315265382082678205639780406842543849993338630781311608385753143762764685632646441340422759256529797765101824412989590018341500329996904954253731947667653239227166254820246373336819265395828563534365232005184031696398559426077181772889508014811567366459641594505748862479600465218480767904639880589965238564838065781598249522916918039937553389505869630486218683700889599632422284575946378091288214747563580759409059866622363283088324705639536778669732292168137754824403105390728512271698893389701958545857392571938197705180725617921921892988348140994750532038017212607045795155037762848100379155788400443217304181714614432627598787893838993024505606973905117673789753324763266238586941513248608609137997910551823463295226869275881120229685077733033270320873125650060450819435429385996382693027789199127073874916994322504934542636952012818426744523835592657219951994614154097359046076049423038444824365325291540138272747658601652699122045308254345502078279912436483610745334822681623966151219505625090919842684497932211969097910936501570991434636812617016525500396834124316129810508394478814215872805969636369287377452120505001300262706564031683115525883944422415571657274282273227689866776228072057451941745785226743288867119143416988682066713030326115098126353968830459391146887690982209647672579183035875376711744518707108839560553636474941719595036238775356058284599524067353362758035277029932048920718665037500819956740165494502572037813846297625678562091671659779493928488191672163362563904293246247792653017162277907838914838394540213395028253135662284339187236817920053856582596751724981227374212794457245843005800807851702009896519704001163651310713509100640535502195471249402988526776242664392821490051615980343974345674299706023515618989383981187864973284117950676931135769246994294625416092026646631126575261230102790961443097729858375065561748547521764952913609872406043552019358040023553392740738331922970587719177155092799088590928078604545452441661226995655527931087356735395257796891348153316706370141434812889555938377457683036420725494644378227524444305069456062205079126958821739982166357974831829803334810042579645841118204845322161713283888774997747975113671625263782267207730373048922441145958363480170955663174402144671300096214773433446990195003561656838161506934543184337350174350360300330907988023234768306114119841100161100770680810533115073219435475097599369110059081546118647102909381334386906984263964083273991691091243090819171645062793466115525129574162188491229083955279310516916754991986327704321583976968259952921074207952433663049966796727682577866663368910931613800229875828462408062876292199738834357816190453533474157976014041192003392056593014559987457196282746962788775431449707568456911015591869101823679825429955157640073673717641376826533129279272775940988516267490751287072461939790704269260454389196172736442561771854895773418976021313537030432755218329092693834716298699633851724362507472453101122016999125749675756164724042624232975839499022246042820331284573027246866335017206909290125985305644575508227304716885975990141566156186497767433347034126957131759925035704316451373136571405535013064273107099009157246687068047968047811497250479059290468014565693567288942282856932088095024655062350894578577795903090463173565486261849536070868436077649531423302418824333329518185577445387216972514680955252362439433520460678521164331282908318902470080667047033807703145515607883428937720599555803746333709430609743241711790350375506334775061012547468542461064732637648793562368825137496127120532184078499437088596846103992350132014995568674201721408546562448082217684725109798136775531862288842338472162674188701751443466799865963609289061301189464392850959744822782566543860734714478608305920798929431851651794596407087407899421727674774407175168030163866644167708965523647565774776234897487624250168529319443760291640694168242310614239190509127406190858133264635455285815899520416813171351793480013796884281423565014151091556397365497411925942338171719195505877231198262139689514709674274862721592864524634385411711433017601678795995652062214652380890318429718020480862925363355420055358572978090611665455624594355428993218821526082858903719658991173468156382843857692057478781725329571193322634791188367634431512739394638856637827798140956514911028021103104965876969178680686423693997406758388310299327579859656764343888768316761110664371213644724132565233031561868827287704540880435811082890498241196615057929526683312329555529830573358020417178957771828795585291082759173368095914621057345685381795853201424147254450763818946105588590019860251313691203470111823841278452167600721928829104055724922449246396520261874176567917766699984764277763587344542982547321071440191915720775049886597673519791094807268222222923705308377167683397969042903152169820896251132398210816672578838207574838865917648736438164575012975321646147335175181836474969828089950673507040549358478414409718743171606239909025423239022892877264112034487335514661199823281153016467049955513593763620747334844852639697309945428185860797620746159817144506234855423080070174167105461436039437582559074921163357231010064379780631932856607149880616960436889265774425470295044677821385944198063244137045065276857310956724209806325453789901675630636663726536970400149710625132762779871975747781388393291472310919193633510209942299321581365835014081108696947852862192788385626198855573743271155212735398584665037311599577888261221940019290143315203398474057708572219893725640499829465462444823182330540300955628207889328084257293990698108922621588191661931821977517830401221933529025069042489562905365511352314294064891935565453566168230045398372840361474079253492973082287374224088170743548915981295516132578603838481627783951502935468246165070851911293547469239227773578780767168014374408456413417120598787082890351083976160951034274232631228289079474415251087502587600020783647714376685802200255046234167557679406965977884633915943595982537611801557223630172542145721993410213108146109959630548857179862592797537801011406790597114323910150680120809754562015721183309712591748466587142297778422562369168933582768427399598765349540557493957452624010869515081223515184296061129356316601289100541122889831821087001541462247331943880377482293816401366745561057836705696509604398477149324151815205125973347767349354988645985677830424736607207761411231951917418280724577901048331221631746862250693864379378202572471520342151108987307661659821664315971776673623182070615715796114118065988814024469750013147186045082245179170187711080181868485406773857277785159559555229403871971537141599833317276764498352534445509721034864384425721435329332243647343306349584316766105237923394973778074502575220761486903469758286011840561308322182343132086235277873365740886776776886406063496971238114297204164739070450738367681116742043568213998033977326625495821949621232718254457935472668926924168030897439125061358431162599001931153283665408460904889748830975434324428837487110472823960555507663296851434723562289926668387472718879211028912916542140951487387919103612873319579237499126983021395440658173492067717342683446725383017449734119523607315316702527972635966227760529919444483933998032878053909432191790142816188123097918940392781296523047416168099586072345697531891445978464523649942480200781319044121036256545650084237821401509262769009216825806600701876255731596918247658513933407412858193354318419386293106822303909869716737846803539703623760541391832383443848555665859564577542476711683367979608160363141262382192399477031408090677276654043019136589857851573604706637603720063437438304600801596847707452476100733728339353008314411193896076150266502413550207064851908981243426394528499419158438884957528596686022475044017533978762628792184259267364045659986582830580071177962544125617922382606962793907941364252024444585059381921894468614418107577667642239824427779037409623908594633178466784422514473810335247951928010109370555665070428505410893217781663128317346018389679773549727903510896856802971359147905125135912409597050545734390548578826797615193995001318705353872395527889593600942493294436746523360573412586870942305951906279093021527291036837968292684382962243356480333473599592927580097466619882614071395313486728204032066456974500781734082841096521675196290877523110895930857965634685123766172379554893851688039898568821802268591211329496158232428982195218308519707452879939218917934804772397719340403765729848943611240344112132137019122982772039689251892378319681744214103629057916334918658226194460488292788348858264097987782158631142043970095231318527573621444376392696812966530872210204748280227293986013411283618924910771645620226645493077919649015283166988734682637956037117136930944508340903518150178442227241288233415667036584253162050078361661867458497549972346864210298391360387586917426620338904982154561422064362041456922416757094034652406598789945650754268321388810607465180145832763776249332542505541301950974755360272665928714111660428080274338228229444925689557184589604257025114019263455306727923127895744444573557414290951076955428530902936525971202479447610352459996941239574296015905379893771701108150245525052232254047345773754983046472738475894574803016075130950020775740872824017843328875632849858316983803071897783625005107153845354872679571832674105593199303852331669487157264264592194983388431608151475590931879987946648190990543349779031278287220630876908024106287751643854991228176189390538909216782581834759112727380720633999949079814805972436962644913081501394105320606904043832262281483394609869644966094939613421111262579203856420265087158639957695641995440801109017714642546433775879521224972967344428859810654569622773170429276232061280628876135093832769670294664886787533731420121214950399762866281660719807756074932041192502295288901334310440260442634867816963634110491746572770172012997939666150530608908888818814452153993830955695224244780174095252000401068607767508803578111817493202486039159594097367699620198915941513088433293056951405691454605352898356801167064849082410708640034460029208500104774137618331637943728229268214164644481845648123455157958261962641884858766832743910051115379024579453435821122611107693619498212037697800158832619311160446488997602522473469436502320835944909939389939425621758306496062656744335570801646092886491246708099341454985442094059324190807676262431926060994799906564452157521746126451304742404202475571931807562708380680189729274269113458229288041033867310838674280552951135032327779715959312365626585528587385169931486829547557700516433585823769642091515216716252985335092304501962981240178446990181207723005036585830624639449596341281155546113778040338406349875388278483381136071091980188205070314202525437003001803175020332533240712753704124886062476898610320277455817691798106682643058233047545111938636634726518505211801382438343731234524441469474755168723126760251347391952955464723261312260044299023098541558699728219503643572988499588626904278323493304089857470962809672287146216029500368459330199994959190373179876252703320524162755260676338005234174387995713098519487050522920373274986770108798613360773014884077131418049411863301690623568995113096573214046644501735304510850459387803222342961795219038223143661091013121380729250864269276183577851384451361021878704433941232287686620424678722264133581065347756129156478884369153060526514440288081140520570695711428242617483210296933329108773854190704545202465054480797043808078049211210896059100335777118833226646473143065569748238321566033879812028124889980728394635578809294982637410253109647730867004136639928704306949317674488637790625224875002622414689599557418391855370063589495600114021446649140625539890951558497552709864345960845420880530378395427738789424588062270574066716761090458925884081630916761714046126860787386160662206529620649117411603579771730790281252573852282673262858765896358914003819141585713738135171170558088508173400686741320377130484488899772375057703431534225674075701151745708894120333547411542639859727743228812917733023567064622600862595200306165458480033179776950718643728662514247809983057656406429602514840702661887274158657327152119005768076814589654824597963011187926903888555969492881446831627312269951922756575362652561883745693242796316857713900410265480288346270768488277229805106187692028461020543315671957875514830050763496005994626884540404383516138677249807798115101601623886062415680463205466855226867648665287691294543629673929551868141342525012417634195720185344072753046239871592087420446756247208068957338232984182625761332518964053158331953944053726298639386313867615630156769503194583696214479657130845180742944032129484206969046541529401006083687196120645380550007560627828467605866094508273763049062806226554078867571319756380143729416865264280316591134890171294058153669445844715052475501357903656367209184168784539607966930245673432760419790079027401768019303495347072575161835861755828269282175997646297992155466497626273032471757223128804159256889496101584884294361892515402317065195721935748676711538291776658755646676955163197804609158951899795917287595035743146306552218060711946302148884518843856394156934702559303220781485956822119586156977495516244819465151273067155868191446015187373188167749784619796522470316980553137293013829750007427091477087330192073163559259610463425575142360987311681047742736789783605716233621915238896000753936782569242194699712610732394071986938218785193741305568000136403437338660724298657388872516472543400481736394158080362046940811796342530358229771652145318290551308482367944219506453197029784988078616186494920365787855709404197738494429321733974343322329111458134807179114178193129946104512494806942717185304380525405435502052627196546222276892590274980280843203168111799834133786137504998845556304991670637749912465567100265458260654269626585932512729345365326310379340945606702113652978081078822556721333047255617632773541979255184164898434473494649086326375881174147569392685917700566078078678486409214562248372943852926125931439076413342469728923823438655316265526982679049811804375061474635788618372942719662085969118783484451208866159272984855828549477232263738414315735528577922669863371950493951746724937353246778169372308944108549489924983034157539361355941771421712371511156531555552262585907293980323333527599010399727611805689617419995882566909616385663620036576078493691588823878108566894513230606412626159196524014504540935890889869106262821812184107109305879169199842737864083736274564665497063586313562075786184075745089441970830186127851998554687719107469832365113583852426573092316159660083952610819095085336364401460465114688660311041980111717365621008919928320198298094717870952821240955340856560861421114943715723001346615826810485918483522752207768274627971188530263041173107014913952221929939870723723798884535351033577534697091564279798387886348396370292152641882760943854707279243581022884210665226059159051483422109931362906340824474499812453325164761621373396039662137949470694034970008583570456333681380839002579019400230096481633083506092833013410973494008071577848048236679847558538400039404490102141991887450338676035853583605055466830046026056524842870926632063550118944681007329485742058011745817268732045345143145727459615344263523483832357309759479666270619372772050255685092725011184595694505545404144343246745031051104719264004693049303915457185284731684871656866430384671198609916865517337383909956890621267967376112059578617159033902048568671728299210782100281996293856782294534713916893541018746881843842811048098162885100998353215465222922164212268201868335749651534608488139213386893414388376767347302186363353275385530565541771259282596075800041259563932783565948234081455397248848740382242245031672839809689110571465586551998910566063731839616242191907388559100104852507359372180404364132454211879511650703499641646904414530065142863182023697865914771180742527502318110267516589635196845886713799087658062328176340725926528057981938403641986738555802932087073389883540994340313566189830001546852943006168615910889822409168718230361100289161199200735202656654623088944024389138634853611482260317428044962213309163561929645829972855685338821442277740958719826267324307411454889054270856327497454662636050820945354908614285328819834538259815419658335523847274142355369140439993944661395455382284653583140629870745274497688810627927879455625062510850293449880877777493819096065498906493916913533926334398561951105996667851729360269891600505660733316030373162889554159475960983175094176657449499658433406738302409285042087084788191806872608160312376144707548362646471275988301095360902366306446203623505937093022060388005130500575220299993189550163980891129448526375244337473891605971718247418462953254953715581638655750877003098942055345939109866432786008861308569908598988363435893835328432389941128534273507046283364266577247113834286494464292619342571583524586888112289605564922005813687573835225352889767665046183896971598742198054491868684615349237326206020784933447214223203935214736909709860866858297953883356659273255667195679678392685294453649262315502819109535427098526326806365801052111870630746137808940097617688309899640778644596602268758481666547074095128809178179741649112720598761734674854397220504084641076204585799692726251485604809435789292725482154302699554552529331695723642688148940883472901652280313951573128977932151884592501533219113216669708220849753807564342558205743493416352360956062491172722116422643922064001071373399529006308919596661178338768217137396736522382836919988661864012232946409548064116863104178694579409551614251680503539945974173837873865616139646676544084878642201740741898248391748752106942354290497484009514459620294430093456543595484666936864808029967422371754756219884001117695924397153553630374085920405078263349156333205911136786033443723738872101524572021615217198987383376910656425654854786441502541661200862957026050936793699755798562271454477283956269287361468086210342532103431115254646999469816412232835278777180647081389587713266837301878477645646471374043980205917166122378822630366515036276853554342661665219012675015869949476660944139060546837724844268632277127622672161971840342207170939083913915147436172373371788810985712081122174229048576012844115164113802283150657919492403866579542584641226328954878451117072358764581930927120859639505060281854175942142649027677626520484205902024606486683972953670095149827918095878573082658437947384370414482115950507581218212254982330355384750031237249939849298031704307488435158896508337300712905756136397936696706603461000238206120773728488146707830784570286669238964537060134777337961579147806669094550477539670922461476719381721706858395355283129901822436142952870373880587134417807412805244162173607943363342493893054135266807428505448223953794469667130327303116015259523432464027262698640429142329095074283469248504718378816713353600734355388396367212912403017949259340024149735357137890743314049131281763519729601239280057894523955536272535449173680204871399882945937493656210830657544424694208067722886482750730967728269031486531614487639110238069526995230924292752363972176561946565916357008439915530023053284042326666530575626420395380009929785092431760617544433969960482930516804540888672234457860836033056132855457191410993983830841538601080378573922941746290322483917722627537125200505289453878985491036987925783967258469513071148204632110540493263317477608596855427496038006934828234546665823852906867901518778388826741090815259184537018471810351352969481036495276839323110368089284061555109761570533339135262878603528685792793947244416069337256868770228682092936226428369929958880503484439665641362652554434127797892392084441418834434299886338967786509871589763954579298310812084728214653373407232196251341848717946381083998158674856785634855586832968794894242075349304559834025987480452979874981221019213097731676348678833417530110773601221954351649485080521198012100129537666614206716925024194212202425753438148755531652020430347401889945787629940881762714100362638749647546102305938512110105079759807261247526755433420866564786053123723158192425368882220260532306414065043797082383826600399971319326091870162076785003137333523213743969101525835600392843035172940204098857534688249238233169025530227263717868060787545657655517713088155346641033122461603763048623963649822040138310424509733347312051092853022659667503850949036040323846356482090551316770190465744584726410308638632658243048943636934568944350507654957940539579426324059642072515909835046936888541802566509349981216620157565470567573179090836655199928421253771168241078186480051224679810222141319600727971339498031435814275667244260541296881248514395078331399987315341680724673706966460102175557054229410725871397943852941661927672652284036383038641333786212743627167038066515704544098673170068024780847345135986884185643491021315370044960087592568422592672465296113538731083001496597189615645345455559829001750068037185059017199559511041566457826287242659641419189410862687737057746641970245322429990177470873812191544916690092498220327320732360906249709300995820751238497309062127526001837913926492921593090920849955525019630132862105792939274047917275796324265323904659570551014909627490044843154060415744043462083443469310450245504776607908076840484483033224199127266894826043870892014084132601776000321483600677510465070540859722473508165023524792440175896187786806211284296850670458719876505394728148116440575115933966053756459958979323372254331943307423028356521098397530892047482062957598581655532411908493274993252933603173849394237883995852235050275437035816732335832361784584087588764156735706616211762200811944692074705273701033914348565684513887971560032887185135011115864405371612406628442226209809295756824110932257364505445125712661271439200523924510848113186427559000095574435498662210073690013779203447467667476859715145024575619395834147935544401443338749593530874786609318044897994711999226861782966550514393268244150817949040883606489075169763616369758647423855151390550695965872252522596542385648617914768584273049534749469916405079496989286861375009352349874860315147838551113472393730504798195591403019292527705867627453770882066566793185377365322674321298908362645356236840826664011954245345302913168066461105500430057792545495923695385435184272218977589797907026387407751413287941197431355559173099369391424070611848586317215481397084228333942368272465559826520695610662646458751698475497645677077281370639639929720739531662883482255863003390433359019306041386194471279709451624973109191341409009149400037902772294693745332469945037068770288186086287449943626807449444097579990628362765881713149578651897587682621789276544817604450871947924738964586503674364462245551768906913044135785404474736902558738682752842038109380486484386433751426752584640643356250757111648213070761386309228115956808216835169364388354838321517157800081416930889313225580953345436596283955500304663200952565716744650841888802603288424448419659402238212212556002961500147882604287208625033960772668350477993261278836458397969065064287297730328987850765165490429173108573275902349278620822114024019222531614509785178564323986133362019759539468704570732096617475492479758729846597562515515233741162737952673830047815997153052809891474012874098758279467711745720188611050954508376268555575016297181808135237210645827037857705454877957052612602552380075458409183892132183181660118676865737518378399231939420854060392293134236674164899004548466506765988474335358714139097636603157039570872998264256007779250057954650448380591990726167825358124795031000664083734664891698376224578225474589917785892512413139514368924599176987901417634179854492189156607178486092158245379381571305799974988089818458105573615446934649391305247408224902378301457980692504048239318614767697958755760816978715568395201096529036025179726264582840988647718074983754868160133288910499707646780717873600444561332698563529924566897515803055442595072162161548455336264759240904951271019906574204881076537929895517101108882465182771879618718523623699966486672655797627298442055969228098976093710044713139218722220797947036934944366725966205168979859915585661165983493201291214433273671696052550630100929203380740246114064168852199813380399205762121131061064189385572281581385706155075155388692611359593596581333153450406621050939319348476542793230494589219118777136202414032720962211963072837071406851663534928300921040682202271167015058488383850329000814811885021628669037810027494154333233008811844825316993446366686252205004893039902968809458423679648770491770962272849534943794906834318542256527263911473035093974362581506494203868324193422097683239721442174731637728309071310525268356345623521440570930090073575025217328849980989839861650458264831074258700204580588854052809418174738909594422983067010529233707834885857141499525942847372215749161799255652132885185715640029283805755372797576746885156860310731284363676892904513820319402328737102522181428909146582579495832444001923481430771689815240052485734033919899682907716504981312960546060171993080778800914678425473872413953147155625609504737615115457126967154713546287040842103988756470360320739777861956670225640616243193826466810351214191867961527803149632381481091680997147685282613343358101749923768103626170339641107713415874152582745451112233647367030712764522204850378194909100853700954133876843948843852698340066095793038964102376449534308790606458091759525105121086919852253159862231011369860682029476627087368714816410968965859174082627635690589841887716465255358742404832321236936625673509663126331329612870936127158912329159632653057196462464369152603541782796852656437141501394136527612038652290796429650978332106866989991076699525703571790008374506355726538400235827802032380002723606872592081544796776767901342289921888463303907055743683227924481798398118421896151530539345200831015308857607224390096824173323059892209085462924179678304164913777010480021680394459201967762925958604630989645286135402737213473566029702059659396673405132498662295157561025977820027501242091151902537543529934200844335981884606882498718596032575355786792520776794602607477005637455363559913825238768058158850270245055531785338078567248885080035088757047563566925525706794763197709249827285655123803002389565674495786338166910328462321371177540127455894180446272075247709824054510785177459056290888647816546198447557600046255198572741536688424821617063989413188043431178430703703766739240765006595317808786946132620358629252718244148709596322872831513882515683262920993746361922111246948602153540955148020713156979800164886547155309935880457078282210669660025608309738465066705972484348659248620047232980066909745338245567345438162759401033690335156417354878272482296145884807828892782165914630024588633106943194790085547592280378338559275174224026312939021523267722299734937372653846901701157645668308471863090318023658006728925525953818858633654365101112012211475724270076311675836714150856043070581433626054387041928151306553412761567083784123838446331222193996650237722738057815338510846463630893481551655432909501094519696921622590514004368653704882402612026654467383384731572575642226015044705510618352846909684073942225542490882998600531730675427909723618483536709476033521267183726223483136681675542670263216142181799884789134811319547473495714711573496986178677663145691710999139564670911664614336109577460947312573144591127129894486638440246374656362824395618329855641453874616197231322601533151706351869473062061545459655469612484217675831779246119846838138126537011947635937439772136038177869419568167147228090203001800431116698147992898080038007164636171841764149377176858707799083487723470232166321199732353143061202194316225924280466814224407777178834523591587795813748160935971025709840175483049249499658697045012937217326606234713149630055207889523145282335638166202995315359951794623403188982724075250888312301598762946929046953939193342951109162215830252135130467958825465500098634015217271997808624185611552445019840063839012919009611651502165940197051806307766158365520573340013543080449810827773259769002224836197329789821139792279606536199625886904666843681462961190007232739736716192036331293677932532303349184212320779450899185008636126303053194718688750744558452833922283990876947067254245121490578872820174790870071999618812489813321145319374889644765467791054525689532960128020128075520916103984990796880315912330362209332962489121772908228564120060680649739746207063425473334672952463718293368764619179332621249217860115030597998066220996819763981776414018271545837431796973379011054111850687868000538377387528008399841936695954082255050201340728878880943805259550515288469804155338852383915688456052793875197182398249177012305076155662830949289253440254040736753949981984275446898676742009701343792384869895647361748709484558763890434860197539476999410064896749535414011156744398585856494187318819787841505094470257769307749759983768581117845859331685913062031516145001600416188937578134968482311828391790149520915117184235156261198967727724637127182947009723748192099053331495659608924011008060888094610550161766707885795684722082362469964148553928133279370322272988116990341488200766078603000466783233731050128795405287013972545706057981782597031964550684218340234263877236918253182475419407851046118715488405475341100559503353474391015702164302213571874094136148836000749199910550091015466837355354990598659137466808519963480536881314949411682329143451933016251145300223402606980297383634322828140386742845809244859551194460288701142748040488523617216751058252890371688159639022699583274096825991353737215533986011374767679052609194760336877737007570752197246202878614122826179589184980529111188767094453825661551986567039413931275712128285903748447486871272976120463928472150062186372087628854250548805676532712418527004969548536844763223923656934735902309774310277184036407479623051204919222491918101092057519315266746870560561937143516784977378056262264316681780498013170904430960379066812799591100854935995630633066204393002053071429928258104194174390799274577374522136597101999306380741074243948995019860654115436982099700156007499232568329506457945045025404480532386970589818644869163013844090736194159723032647301748889129490216056974555839893699501410418225064632077333771340323882375824792552545651353722641659776204895006287986362764999118677144873933671880826543784795835988002572647397934346354239904593327826948709878565797855829443904901105177568178618586604732810483006418738509552911894573254060211427626424012873540733625633331881606862155082009150769247211690344559446475375914242975604063346515982360227771064974991573690015577705194717583988828301240311257909784020763384599627241171693158855807239118512435514607289495356888643759800102694643594838268564571255193602009577404702330176097047366561794026654325848450809326025444431926693810090384509940822864785661537328801304181898674709491463888936471128093665159604542068376423869845984407865956510093216437715224171871939002747325544578220379566719634944729089353902451149409327872010479512852136361948543557451618500249300077860916743995651806538958315875632918633123482152058370817655781468120586346540096591274139695944228454519655253237627592031037538407878894643896091969926695073502718288567115978343617295564436195985490018876148125849692992215595037453237452896202366081494597007484940548600317764750880055076745862650957161975873070260847476850547932300120151661357914355799918730693190574635929905383667854659966892746979014014325853390041435134684756964824582331586995431816547788111559421015738228382708441470345033341025028019000124416900116801614560691856246297656509011002238688047588854466361270125154732967513081131821147326697955080392269931934403615052286607373633592352190264816338670732242840910646023863825769679669195210098379958720034488928304723845831543855212967303466912345693880107979360847276570407415691654345773069012651828402295399652823142417289997753521580047272084766290384116578801560561885314267846160237401802214537565919606937613663385512725594742792697820550113566951660601301901983740097229884646732294911628038731457589137008113073741882215363370454942405475964986152914840367769603718672990316075379450834988470655737843762350967169407994412825571009940118124793958993463501129901938637693257213473185642940905727959638469638037685970008225289354850518797993841665920651358582259964350113065284574353303517060565584600518134298242696591143149672696409633862868341605024108120111174604862746805988097991199663991287341896718409207922779743019018182634871458227846285462631952308208153700004136001987699269850336291069062878668453060509732477900757235162947912739451952449091726150345206386372029970773834852555460806855447044265767354106502255323229603757017568329286751370203983171939110636653459061290265621187508853501840940532624686492194061177394461528924270596626113830847270514245800957656815561380832446268781290157976746429758048316516879184156891631699512434322347840012217337094596154089421639192730517291337369084224974596910976728193082237560205819202842748061680826159920200311752304518421893188014638383602427916533573040918276118091738831660807516965404593194872134972690015377109183914644437310521839249938853214213329287831658846311193086086753403335315592102755297667050859257884847692357328025482493986369376631664108382107149931663272927927858471208381085061634060418522254050906175591051871698669901057163897216375034775457700708260888728132797852550241135323237624883626478183047264658957254805887531508651571687474645624886372752068435985033294538448368766904487402060508437245905895864710367534705684702096774879962606791067607215748357303728356517533961422351709572908894139198288194936415582530516107843449144222166579330199853160603057042759100099178977670296516464429432512255636991830629308274144702774151994307831161826872881914067780435342492810682926590868122557641998958311515771367020337757760588608715388637871603232375408333881797171751009317076576866806676422358677327839772624992199937852906525321944866320886658646263351943882174785025752271080808264334759352311787132588280708679967867208833228345154500343685057722107230314305020375951051519311729180805060216528401653276637861266162981662987123785836130838821701047471942580913402514466148589748658788766956516703852787888038815441660957885552038091972699924690334447302946541335843384862439087807509405493963745243929750591177795267179901503151111740136276441751636110181301144376424472773669579182498517080971949343377958426570426319052594885531869202529879899566667325368932635975006841613818913558900098295132056692628678880823962782875947619139718319630331606452923944801837206209496146241147285403648568897301585134930560864641570334552721901436572236388368950781996958222153743712104491040075675418814197806142695365193939740537574353013990991917778011262018645704464347053576335191492729400236659122745109518794327199420416762668244482743223277727777443614850032436899302325972274428383445723036226540313202154089674653012989418492479914655327301517516156526586760941067361859182010635599603846572758314031671167713987459159063987894175583417206601606353050894043985043384506361806798974253112821136498916590555107897766964106400555643772309455296632006096434290296439752201297053878314277408649284610120739022292281017860002555449560694270951589031074473178185752294277092940803800641420158476344594461921932561715028026665743703337143989371426458000733574943563114899456911419043929596192028529112081668160500856341937654388554931424403407273617387320094140569602405805434407890856407908679502926636000005986215496072155323688933390463164906974870898799042565876421649072631884483746662797213000332386952066505397399252519211783255080643652459658616805192776715288132858688385225869768692739157288933036709511531257380509428264658439194679432336092552931130336183509917845132383079315650313723731823288621087917450685264644333150392953085136527621363693934657735308117899338106724615175825345762760940110116951984982611911366451728063163522026497846709845401466827417487115373839652729418166820872405813136157086463324099312798192839259127598172973336840626013083811359423266214534259128835643346702539376086588987740371260209120474803369543689952568683025357738298826155845426961425060739805078541709276937009060595280637363161247310850771934013729591064355719966003610808344584885086376701423539389563124308343263653570232738589605513071728271133864179775253300617421041874861942019487690657753310659808677865806985719713457560834894167545934726542876121677776806596532903384256823306643471020686051802056920416184342090135048775338610782272470157368099572953011848794774679875526302329872671109315659320677068299021099181377065823073249085008587456573828373720941947715137519889217014049879344677920176447144831289193070978262890144690169824280774809650221656226010421153828571803865282179672307673564309030363353212080458052777216074533995983396418468880731844879349067696318127563133678357231683801687160220431332988313862169422376029276755258614499708613045671315777323519884105269180330574263888459882776319776304852514411868237981304797496755155523638997356631613439166885002453181586401103588723287432409029926084348014072500483767105002324389191239083692181277255123441043932276232731639886802739178876255777055292419269024837706055184112726625824095859034989847374664315993024568730635535302949491416276167630174611714184440164343401637076766908822656901183121570138511328047422383021915466948216828753629926568105201070387947341913631143642954478979383579041195375388547148370334767522672096549380942094037626754663343209776066336718847757530357778961325048918237273114169277776349463063652476373946918439456500473095519912814668574638672137085619774055133594842920266053290298968528845523682358086731638712357689557050184777073005222807715154230946915578754011280668674127893566899025430270507568184862221412809590949584470925915337077824869728544339208240640342726671487075383352632956831720225489459169702165618972190922443029893320033560945483791098216119370183731995828067150505047905984700339786801566712558119776975348916624157448458200388615768304825438639850899869348202006039057238649245100087624545025682160815177081545645080170198033469131931844828878909764722017698875908064628463253879292656152526463563200138869369665864860191682208821541613319300459592567413434851898451027360135020597392002883259543614071446066478573979517649979769098199680954044680379663502847209936117996109602180146202006797078844296477562522359989738016671281717241145169556008062519420297131686517496542769430624985033108857093624731336578248889839834478113744836433291737330090573296044326136803366932973455890255047178538826515264484207794822860459903844339245956768132857153783475327955326828384150898803322720980811443810668260867408036528802023155167712705168948653097914049603084697121016177421286812506154593486591191497011321001545232089997061850531579089281966176885790890516593286980296969111164705753479649943551829772505540320447547711666783834072301907275849381785445905074622240312373763580229743125087543362335763378982560339011620588390702580187570788060852348056894384405867096810642411709064215888925255100799998617407575634773481338283964956759567463528458245618367135161771751117047046230868960607273759459684374055644653946710056715839189409651020227043836564502953381183992342916945470974096994343353806489885860931482926028794823958968431294790622893116412015061464973268187765858784133063786563033594847266168541620422194519538932477173097812404092845739694866619969883239259761879965787650270911338134192697960533767876113053610206285751406771996338779657122438638630185988950614752385436293104279807189811488849446430659867350285748603090501737003237756812498703964396131668889025838104542609544759620259221522465174024505393830344737396952271432091099704686107629733474222598621790818541606191930005012331072213415864690116160004495707735107514319574625826646301904078009816353447027455437088279316783364853052497969911181027315405103972011644627023980453719648271664749885121600358107597705590842586547987654767663068214208715986148569868664808664545766568692018242347303362056233852106890405503880032465850436340756471922429644062037944868316249275576227515157847284434746470097990036107527529055057518766253537379370311205656065300495104179954664486193282685578827420050674045704864477377953842710905122049567073801144175025748850987026381603063808276541446162625396246509436246303837070319081136207102472691670597911371511047191511709707545673822531291952802558228925055575261400120357413500130100184671311966504801636606370476396919199071834036229612823129810532649870268719574312044097328583892197704168778938533145759649292885033726220519444398500908037250288558099964984204997625155459595886609600058287406796309660957877281995742313441127382292599438557271781156094013089835565583260115437137057620196503523928453030937569979748914436803954373162357245553791000615847004451211580804767475083768334521069021664275175782724255584831033624969557291924719651518412463674912586232902881349731968431952705840903582619354134737580574239009817013625363070745983212366631742771526727717169528185478270021913874579830609615007104052830889398219557765683548302568905634752702003723675493309709986882094463045916185300445071594118046003355582686375263242487827169706318923642711261175320352802739952124357243899194985595498292872221722869129455182734547819560687978642627833341484699637745614937510915642795478252272073708911565381097420514533433953460205230839146196129812886913457708315829603102123085594291358242347131151518051273703264834924988979471612185247819626345854936026038607703352440964878637631518892475074657728133757931477124141207674827545161075929180411931407237195842321107646742106366299872856461077628772191011059000069311895257414892963178095394793902167351019779204982016884893954449011888774212300213340823575546956510745011809155873697447573275449275374884959618400108531945487976389026308329574137956171015901945746377509938082550032020990231033422665006984305214447191306289976611861926394025790133291990064110117212446688368081289959039260671780634789796114156740034356658531554237199596369919830775264493281007845080973205135641220538780743992562647432389220333228676069426287899230836410333433365456444569368907820357415570154089838633114628310232461655764802929220537277562855976775763395849251126570593421730169710029085306453079006212864584504109200349818417648355154943417225740309509552342337749282322358481341255552975692131321885657135968749395441630333836697440938488115300269233497609046915197695674940804399243386765274521284948733468866424825722064136680639183983999468410791669885291312679636591450988165958297070474789610741484801602150418082326956156144969415463452530572206291640089407596621198413069577526686049374048521474933732232097605476468876067336816637536645372342308770375662866984493101050149826386833725027078948886614109053436302000648236890916436893489076422894285120541220793801938684556839359780275590299344420858357245958226429197576983334447788719099980514229837850249232898184022118142136337192108864221250087452101644765133716164858810545343744794337027603768724480440029109547780238796710347381042522336374339836055246523838622091070648695713021997343057638953127076645965137796302928684582296793792418347506969228224271325934724461807239722776122447392129128246476682750269784259696692605022220615232054945004729282618812790566114480802750798628109827218697359293326687140550125689922573869396944073318778707061805265981390349027784171176829307690712391886387662840441087980029213702279059059925553936507427173274150806589841742785866527974040516585211120932838374869439020901617613379851334348477449333840198650345832920553681278005543734686631470317371200949373236757237637465957495481180684235542759171127166726569128793992560284173553587583560033440920544800073378062183212269377418976103698653114387037725142752653926599317959288328907993807708529119435232705305387608598216707277390686306731906908447957076459892079156548590913723301472571070505861872064273396795113100399313658351604347821567774708999268823947432984246356001011441589921184015273380598996442621703699816104238082703702055993092648732314513371672697258122957607785221981163624074823801189230781561363671421866634301998080708024714526498860479388848186757148012446710856759315389126222290624538244634960791667983950837387072514306054367762524195492221166967612877148035373981600295750626748554332249598363041927386392052789380863548007052961457637209369520482216681983005543104104021455098344192576350121420968443212427208504655251687991062286796129919125593448808421042938584996064322136209391145452274849112299207733475944589084165990805470555919524033965329146561714701671545597308238711840748089510872963125391156335227384131103308382228005185406802558124514213903044707089138840710068742370696544652818277921300897501340868878472188917232914604725406315524140381223022258126457133740550300776308410009309518710021910546132551172361186589560172255770370965892799727763186773545327336637387173528784368745054528697045762316304602548098423174999965100380265953691233939545745722021729850305591714447207067230985633549967622924313960480397029739456943267012892669857320213135745914167758016539901764838815034037196603849787575721782280895001366284434638719904935203938348696145442406948316276512865476719376909459725238370029187531748860149995787800323514968825258217055757016545013379730994185920498509350593809928478618879451869182871367460720139974691107543916078642862547372961628380475446964254936464718228341848517209897885712935604539471975275465564085844020290619807243585037106590883516590858421391182343579564449446212390555024416978637078259612537886831680610756262915160192451341651747490381638370683711789418570639334485792960527296516866585990879827273531151112075836393683482717325893167487711982463992491601180183629755268121408048505915873803698417181190195757544226866073328956388269922352016227135897113798841589318377549288703371991520199917155272257976517418643528244483363448866873998004729151738827828652375645448533577411687965811714956672906920689292787044363189010494012319742327811628918237167879930819277703923865982629364806566254181394456877736726268497042913671834307078182528639012887930378848674609994803589093482928435663364644352160618663049642809397278741037218705717785784057287039103345331022620042359999705606163030720491885250255610892479789084943581337695916772191943321435483496048260161327824911712547896324038076236261101020240099957172379274342056999563905042545256800215058589236529783314683787536666250872571871050480038033991295376150552937956631376120612340653450501954635415092826916505943372150365610903304995425398733990014045214543320498930952692115462827911857283080859655895292115509694798646451907425395528566479978496470382589033776906550651136297396631430257396346432532061638421779506624994258259898130355017299293689014532941607186244478861603326649540699276399566555480214381142582621242916890941901843562228491754398862214188976652190408312287519435757886850780992068536215776543555327635812425448838291663772002419017181096331210914425197704477964367142813934106763024308484751957808748810648367350948150979259527958963949096904304590075521262712593855472614421112906005750242140478062085087937191887373778054315883045055750352095427887645486638161530569950055571445348463289693094003962640718851784100165177089852749392052238796788480122123926241118760745352396830346955120428249654384797133641202613086897998026989396802289968540329513933772308114444875442003969848737618281677917957370066436343469659634691539289130339559807881839327160411704451814341446685874256610456656611979582889409874747203305898766746471704932180412228926960412568640432703783266245125177099834113301427121760112298198929193266247605271495702748366070050456921974920660341930111103318495845956316906432748361771929723391239024878550887695543688237560554699131154527770860579153671413439906204930783363638338930218578951363900831248143428966620730510673505046112607680406436042349541927160414113879063618720982648585655728720773887891311405848664815942630916875275087440928713600061473945446133794751415372395509443410340342099033549853968759024759774015128295082611967578813171091515345305739837137522697950048398482625412886195527396588295148979134001036994391395753207058069401167492704665633886789761757647215025000027190465934522549444286531345691713820264235097559228041460569518211023146785702338557972445484114027095141590922643659158315048276379499511172821302640234528330087169217361600874455637402974081959798885117199230837054821693383408066690003356108359638118747697013867710634845983140930755208495243171462378759306136952918705161926586051002689044833234541689370412503489337570380753709576882644543369594858469403484602897902978946221758564029162876507068110313814343973502531754969822748555131393491044795722774427956692217853849178259336567193421940381157302568768735612533113121927930690264405458894073767974969314299278539059768809429740333587105093017747214376640184247642162550518870204174192477007355965687667367962362364309717551858619682211915180806442512489671328748386044894867344045924016506100628687983158950453435525709459443886389204440854675959975430983121333058732769439013251931216073862288228938803532274425724108817521766667585284982130273413215488087932723276483468052075642555579836224619478529314123296516268996450311893357252934638726984639719993915538426141944126415280121369980787976331660231885520064780244301046419415388908177694384865734611484389147858460838463583313954912990885547637932317176721978280730271409601858125097658146507581488137538468143181837740070668310760537160929761267964552215593065719163427357120548447415104657684482900472119240907968071563753473050781702450013251598300984781364977620714986989983096844508946760232306768769700402629673474469978856246851827177776857694899365172444347386379215103050618169445248116146991733920955230948666982906147720380650722807839388949265059355623471674779155418533051325665352272115475651492784297423311217608877074379130951510275291408546564449621274905507027894050367148275377552022020762945443113131521601491115086026007878927510368481235440583027861617381648969138340442115735835270456840079155965892406902311320091912877808344753342425194482967334874711444106497843545152361686303812505361851142415348429032130157756776499855570278520899765724134957791316059309325991312531026045086918266288680148649372635272681057269723219412531371378296232297166059636596045142690470537920783702884675626677071877956373191443874130361320200457517393326779045928183542886093731795549526391285672500466213368516785123188028874512402460668681114050858681837034016691136810138651649844900218250067589885008795843400810339984687232437009438860570615220308294784724722828027105253979457903299496698946703626165997547592499048432703153244683773052150708559969187244845209629930615385344325746661406951824575286411851664566829403473483643576781905729345788043525322718258561737631973930179309954476990498054974402299956522923958696748532890204421357331136307786680805534425847728112983186188978798315649841071825995130985371170750609208910614903440688184939805276823010014418588599330738656231414467928835267398976938217024515029661706588907353979168613650490840184246551651377927194346585271390447203176492846559057054605393202790228984247385703096756877085366062564140855302254107419220691225480122414996593226576494169965572088024879168828279299009498564513679571824473057916994803934334850444276336051218710828326825998192740247128269053393615692417895164817369378874292391659255400266865503207322017016958556619657564798499627760267773755478089865934617791068087350331897518556092805752204619769548696263309345388087905560806954042169182429663003963586807007451303118502627682494656750288607490555191751628454293613438187294820320114811525347226559331215756485658833392560547221429351189931879301613773712800675599299078602371958275465959565868004619464013227860916300980402551356902858406874238589161999435776957787099103406375046453626970871100827602547801216851350803746384955561092680635583168885483196419986349811659187881788302594925652378983074822111147434016521132319316268104622572587667944200950303087741418129230028660471445316115787304565564516562074373834677663636225695400747162188438221793950573624755693497079490969308536910868877142035449072671456128923602769052478841502218265925357991966491527752890394321365974189843170523193006534082938837018540890798330265536955608710452144501656128288543220298363831265437161865361336497040465601422587177625034668819197995004136201516313977744208342879201969744913393041757431497473760416242288510477539268621504077088878411439160446049327785798393351518207997250706875731262769474272470109357253427214579727317946327598384687704311443585099676825627321114452775340979630931616849858366618402910827804860918130890832422499496583365477148871450642173999873206152255302727523425806188202721842283964640699910033924397024249269887088623931679682849155171879781209096102185599910008862900128988958019967683738647340841552346930518437502697540874341185313545108791004387760428748049658944136650615458256778609330298646370700681375861682340638879719781873246462918861071968022754725282116477351459653786220710640642767134137782457805137902485146405074117244800264887531361735308303454486639823961984532929179435904597670500190217662284543955063612755203286155588549332114575459496421461483001797932691642501027353303696095311415878949743170981496392320056637918207254238987838540192927890656595111488527910880203786877388386138695594151230950924895137962924674264330476282578974396108708879797173084441904187122644519461500766810069251852184986938340929549198155432852311021448047517358815347301661328361174958312082800093814058590490064264018783889199389975902777608489990198006851748006086387743035298066965106312803678181949869091000084103849219808524726264584162059915709755747120902015943942188776187464182267150764793921761100740303463620018230427731003030160026165049382720828721132470364151480034640059952760644513782667133058074811231258783271494080670583326660629292475926401915646427650300029500225570344705270022606696629433486490367507579517302622930888601999980422907405532154653016349712092529862296077324995961629909316020100553774193136586916494268223500245766242051295313427232457064426714600949979964200985606482910748527550295734627965510092341498688391982603719208182107984950719280118106552005964131785114117745385834312909966825386232909034620814645736378388359141621505547838746498098808741472581123250967906133560535254625760760912009051470568353184150113024463814460946431812350422239135002550876636153654671692658426006951010413675742475612719426667031964506635651342669880804026387171396457532935856687480343178492670320642149233449835432982948653316965312429027625333275207739277953614981708366452425146473046987012302481146467837787671865040086039137063574739368165782985029436765570417495398575199570567613227307873745724199616883622625336559124516029347931647834828944539997485672627638667648755193619205768421886845843733327012826256697376871531015775189406092267901951578801131850465519199301932002475020004018053105150091002768313180396774677317766639625711244338144852240798835174400471794930933702778523282011804346497373394933486385977618989776024448629690369170557588150210175714433914992162246192931257129400818528528530783685303398330735467132569145036405411539076091208748842296844190368174278894930811622977037105876286351545468269796040512314614878834054468916068465324893108388331084190892176757883109185717698969381214518487396879095568659687429099186877150546792309052584157309821939636751089602296773598865329422523390737839363261426120657766854880736836258433475529955204459199955927800036510817080674715038996608288109494165533818492948423623747959609986455168384809349992357536461933410334719894486239748570182858506185084283090968545066396234940809306565286170762080353584451429500926862124905485181295498133516631944697187837921567510920958044169052214195416010855461872247212289408963647563631946601013439661832312604386969785796064406049196298967894375239736285909066700080463918691839892761219846898110151345735288049922171180216332726724566956924233850799275697257516168405954068269464536995856992819692556933526160962696097729352857824106255416297381836665729762614502584201949176512891685366313200455836160244095169187879241360059698558336557800083088289128699456811163669929562465152949915764493420840276556594382597088351587436070503853115067794191531912787786471514640365797973209593209912467049908828852372643942000681846756641955637238173427259985041756586106503424277758109156955048316384030882588109247660994036590825579019940483718867125080289115065481017384920623137765345207191838339554663556451211323218571824238249335662302948834279877642996798368651386413810540140725820574129870845386610145186128409301500629583529986815135054782101717425997452511884485222684129454338840193326746468199947101466264180599984586205932345690315381501040233437878398079590531521613501209761134745215058389939182091982462154651980860963926548941885091610409979917073088528475717575796963767167147516354738280274195573706215822617811415334031572052428236992526751495297509333411931451470252523300531130048950351010663641038640761772524283494986388394312735414947248175682331534068583791160688674883393045711574033641443010001274833653283658982963546183493126083245417177453055162033808466788041619299646122245313537098958650611177081955727801065929080969828297594636110551505506429461753219961806910574277555861442519550782401230842835707883526071859293119400546286721175913987501399104131914622981455398242368293349323141516163021631839869887563915656051572088284279177052024989107308251106999448101377486047302966765291326908812148087103802851406465738116108286976627223781293131194112398755928397963193371032074377609591192687940019603121327326093208710954901481115668745582936953483179292992699866633542911825897530182658944031127991367553406950092804639408028174521226172955061396449666160921743246880850242799602358691718772014764655566688119062090238133483726905425369650912976494732700141070878888243265283487888509535738310641550286725215327527074087334239846416366341959782845716646007228179371257464331493145021561851586821756969211630557666765012991673733115164481896268679592529869330143621198808149020766291516185599541876794344835773172517724820945432867609909097840965133903847869051095308062796169668589030793494631756200638740965967293475838238881326302148278802412848608507935119358759399739285889483658184872741285383659336714890082668566647793251864149821778897927242719526238823315069386461899398755807064911925265824677675962882708477762464196264221673378112081818619609775922737393409442603987113167354162224811875917174042521044495914375082257836974052684095121912967231854919028427289341127326931046641475116840631337190453730956257060473978585498810979021158969095135753455238469294818407417537612946385994515715000071256677357048819288646118298092693366948246355594736346035714884758648646846981970885998421132123774867965275420318780370348412832317194944653290025713411056478844234422158721520493291926917078105215310791873978343434964471457149150384041066777556592480122045053455765751761302678972873820347695764475183954372290523877032730238956807143240102507268187065607278880227490066080878221476745589132931617179678779911474723060014136832630134288667276014782164054955022877764465932038994526174980318183710383664760369553099026983047400935095873421074535451128402944900385272512106162876056919883193530918811009328510286037667539583024196569150508833582727998571498806663733346264556570966674495908308023266014847831970812083862804620007770981631004123578443836622008445832090211842162249964082975094776551677257596048637753310600100616350440323440058120315889497449468382312280373722110110857766891732219955434774197536466074308090386220455444943517553188813668167055945107489399873632535842962925725851107303981894666702191694804322374275526541950096493857015824421931797323485505965361574981164601869154303391923983494749503209813695381516972428740138323623881048063235726215114435133288503962549596639800788589296184970228605912450057111506666885262998086155652873186834072436028188150875695274313293296292140844778269876467236275187696043580388888164460007743495006583821784663281218234760176619768608799756066546102549909949700551832959838961532114084366579422258672573228112391739709784914483881568897872577758828719819236048186109497495299999798337998666473235156444614025730246536613028362113001387908282560806611461314647750114438450289665763117832792251597798787485969784874082130679280483510995277588151984871641423431093338627633954634944031448321158129990581434710291802154779754473803201403346125114534346034236495016830992115588240690446946954930687517609201899873632485790772164729395146224240061186618130313410012035188890632697717980581112432928633823729625355548891969758373984846858395189219490806835279498219715865928863369521844700864031637515778771147190093263481266998954691296787389548780967774561549089597650722084674888433178510698182723567042275110311007345592166102700355651723580032650104423934151006251097804967814078134742044872882449622077413018122184388640599019561467741849197228660616071164015632426629428250825222664968028753633192752746012619543582078704230507190517939666104866391544774763762659342313743155217061436284668660303739930199066169371650973284119149704858598681599559532515314328587624700563879448214600668630878243100131066912702168283765684656206095897516852480466933021287138409360008831861140636712534216429957874995630497673924132130281091091308999661270145533295289712460102268660186563855821327682715785808981564381353316424362708228435902215184814680088057449182230080957443564960097013426291797881080127280335623266058771432088169961671542559046301818282920299581614899895652132483863405851262819996617451372954838157930842193787264419944690017811075035117224152006588290702309865490475685536541120565071260835688369283652205477854647257038362875090078026830354170152509157020693079713649173498829632428448233255766724951867207152483004192677352474928763338181465134643264294373643304897271111654973464960530326961287435801182907486492410208335160052123449427645771386470022027170643558409098915004619014894780478890733225974326689599099832378642754771005465813174291521195104357620067083006211018410338301551613866879887188252898879942204694005585425572018985735968971611694497495140118848607584424128175595142346119596173553886452029167470780971045506683628326725209507595896644431699716694492585392502552469662957391116071599280185727447663721924047627508641368675245308944511105584214818587424756714730921810386378072231532789164131986816072187504071532327140965231509457183628896802517869405575924547245769004688045302123109292384915685295714626766698686289979694320683826100366840273975654961249281065663166702260995029530477707518279731608732972918942680306610728580148151755291822297734230395274486062196613046165361325121114346758076130637896397412108041954626638727209986974425813137158670650070392820102047072586546583524710877454803405934927623986387530682234862893413169351018352539754312094337388239821739646786746445629708371455851340605073838785467013439107692130827301410269658888935634161814215360471096650067448522992174017607681415630987810264094102307079427725036789014133968479221310197101252469914543675142454484886519144855525339795317955867798712336120089490641126056743904471388253171464187675014396022760976702235525059985328421726829955074429340109668868066373732562598312584863308626744089061742626059886510907439384037008793184134344472729210248616530010691518156924502851974307580097726305921036782451228801110449863402451506513592838127877145087266144089940457512845741143598094111700187489501531888450057753167481756902565288942753482011721267020725265321288695249291872691872382272449585207988622635192832892649490969363010704518700179512710749380323670625663375707776270786523708724869068910469079370653345928718103988989144508954339022498773067578635392415369373568217650630507633504533367530314601596626381679674143008206254882830694094415325013704093690740641347505575901913659208896620891103341238348436513778253454362483176787562036935859441799407251046693472834853186578667698788641721902668263456919624095257230926472463065379504506747220048475684938960979723209580390361490624632515260504371007075566981309949912872933099341038903198595563230347887198301422248014883352330541207951822240866442391235950103708741806064291375263940828829482685425959972641418978134079980283710354996533973877439503311124082287422620001226157579859642438901067516892541453037118748878165999130053951878219284560177981493535360083545252999940167319952827796747390994250734514685872107300094007796108233225775677971481698192342035853349197904361333250805307012937658837236314562325808422469034335602279618021668747140560804428065329159702051962521377148029236169635331430884056445062981164613084764621226004937938467318401309484274950288324904033093528290426469582276931343991917834933369940464640900795394855292531776430430591961056876488070030416432090511161210477694035473694540557689640188835172608735686715694578364555219102085868577575457031247293012009871763038292797659403115322262495147700178006729947918906859683656177252967935850852623726593848298150319694670995667722749230888058829296573995371359496630413405876667083669852833418923396311922888203798612905300160501275531197323217063862474835581277020797843105102414829817902556596590681953191175488589845927578370480492555322191671092938224259378238128842863861226424624406277210845711604770416144338128408375566134696783059018144055347135347781019020679560417342369428550732685364857425903645957125679961404193914812522446270273846321772767928074499723472198863110502612217936905772058162470703131543150707021500208183680949222840686910720314348768929334781407989287679107278773609271255466329475950918450153574955622032143759316179180590316674152211748879284930216379502857705583812100450312556380220779805662212312480890917558843541407932066566575007261272460671217064082344739934431275152921877203756555675440232040525090726814833064819863532258252897819957786273949451035020234407891740359494511367409491750016002695511951278064750252748974910122863412234210036005227041606042618693598015806078992930885561717093025009575070400552698574140029081048261885196761123811657955047540217547210067213532462405690782029423064567536157522266510903134026458044017699516973143913217195453960717937500684758633607132135571845688432012096907854751912750566539204452902235336642359312633928591302816758473987755686138278351837387549182662807061070015397621719761320240983531975342856889224352774049353152623843163888090258585228811588623915611016109271167477320427484721405092039749580308635295429935065866332374308225296912428521718859965601055184765113769595583794254278911533270849478386184180980866163118563740509768696741633331563359108369607352895326127225585918189836424129617895000410706311299743166875699473450850351416115993969905287713844517940372816470135715192233827710181612855130304264568134666157156144609239773329535338571836797973486497101448733220363651141007709986306844966299472445830683061096179970119170832081162698360795632504820034138808566146958377028456763963873334779574293088731718597177130396390956907970100701913249576392621628591706832884509348327023105418116810639879885275195264782771120831689571416336695364964250567660406299932432646352917459276656943677685944415776999416085793005801155054894936278328199073718449492157503336682766125052127182269918797693747919756682980696333196878927194049730818285216538551795931073449856013545359363950294540903742113290019721445271288625692687087528709435493462105190396599400570112767041153544250849106975730332432802406781501261208457630381537821099316640217181962124309741099346516008731176915170948973224616822829967008007239441009099078575427156796459868122404543588667114334678527482565243752667851092953958641223040083114355177060567517031116359590247880970020348980510667188422416314632948813881449101120745410760990251560259857904856335349057394226620659117806590786246046521018165739484248697580241900936842169799766710605400568063737538473963949530967837091612374261885011180973001601119157007639047337463946956641324169356480902321047541261550439746938083146739925549523660530964982327733413688321468268203393161095795794588618975789494633998787078143469741819236767671922552434024786497896559708756845461246905253033600564264850678119560684406774843685225128900966248445648831046074862829908902587405768967436953627849445977745866535680699405302767461228779347247794635224990947206729198757690155909087118786095960787950178008529791587521574868457966717505519068864131225467880283304884767135785506123052115723874000393946577842297439567928329029452776456378419078797025563391339557039288361563697467807056306634493080563780536895527946652140996782657380620094895080462975637391422399244231680942425964579056843111656820905486038565223598674811351798288115100668800470910613614083401706451698454382647205886528835731275746374460100283386026632980247334967166927487238633869457241990170775891853690359381166269624963358881188589926006891105401755906856801098579830497282584168089330526791336777090158388997853288262692449861449212837788367864132723082638497653959958296886516329248080668318354022498377757311879332901624233040938166455311921535541287742940899839092578570519738530138748147495593203982469673574674895068457970064820698346210938188111577029304641772004397461671559317246403546579408612057053711567199945075807209859167932769363309311214370815929178100518964775255531808059154602315493311788915619499122740540812086673900469873148461849052144855930852706296279699581180566033778378684492929067396871688224494141057869658405933014483361459967505811611388145585855995272932033638106984862230983216018852540750371094360576157787528770223303629176316984586630000525779787631328327152195356362109224599277302477296268862308334770676312142377871167167291596835302925128654447507514023105965414851439857857990328158053334799203638532252697675039786701391487947248943709604571922324547503770668766128014239280423490680100795680379660432123885596705861407575992577251008763340139475152875859436689752597166136182633236717993142199271209142169576990143558155244093505651948942889104462897253594681198009291175739202992817807552246316574597615794372716751876388663682072878519473603317061311681474359624319296087694290615553362385472229564897440531722855659449092943140376670152785876896625377330770562202548743687756271493868784877497118943645559548523382234373959604578181518290851259184134943057193379546684273856228741708354099510106035074246916165721359648103490348761153504245120494507008130119229919340984207892389522196428309499327772906549894514357697415796024165479596066310072828443737486552942011532058008577529482471655283770878044105999833131482831789847658465704576729160906743771171999299756110544558489901907063178336731348652451764172564338171710120419894230521163975315016919426600085286065769781379791369870045710961324151573099993054428223181474928921488910897537879749889226559501774549595126434999246110059252330878335277277243630672182761701813728690640672777900262492670252584567191729656007749040481816830646807213515871407321535909728691799464810705973562465647119332653339222043809054538538938862143488307492117049929496823067793175973501116332800763950191030981033517344984388054165669504609476308365277319055416016920870317409328918854413036005452933770838109231529259578964292792174987615063998039866859131530555357681195821684583644559887711181144235315806901986710920609642096895761938105189342741725799472696583338235725891960258009069033518099531456856196474237540273705326591095313680589022992992500499502621870149298712604810338740933490557901628505998691918383161310023132712362793040977489976270077055167395729772381143345972862863919170009702043812143040104107225408144454887341746239831373566497101390071805691220819736358377660007096293439330144370453458705838300651914003170093029293717750759575230156966200228686875703955021366260353273797038507333192098614708322808879731302413821310514424855753172747621706487460188330435840784249851677364656612461729724791509790196353565149074436661893491770288086924133956492483346461340803539055102315022451811154968888679960504029350869689534619296662842195719477171077980881155070917627916905281574221098875079749707378341459752835026779478376070647638933126468199388231356008754732034554081378321023259010034087099383597141503628388879631616924144432702519460845393384469835215843596129238476095572480180823492882424777297116380688663958425663097194708774098694728960791861942632317666420445302046627598794873969780598811434981820845585442352093531638110277482995887528757525149768537188871087666370181403168182353667095778041256355317343380082359314171824522920894782911753839044123589823228681300798559612587780296789533131458217873280207597846093599200682303043674936868090661858864091310230718502856346074692123855989525991285529377664736400152314589009984122728841512923889980113390743636829724306520048246158990438329766771348918713013468247351885642886083847246333748033206476471766076855655204903484026290965246876930443348145188822671998478314738395223850613558254728328907690216662162670563028875277859174093667968438882731203772874955574251213681529024854097153714066778238133871000244238658108611410100205411550939309553216317709617968729712587454636479710557281078710437141539596365700443671026736137910956704988532550095737064074358745569241771002764073692861424109850289908650387747102139865591589717208590730271072421759316612579695941748372104845549025339522712007756212404069152898743539606747496523044660187805162524746532388790173275618638282145079078948794160196985799487901453196638860848774626726484171406717802038588012578472290447244922620235616490937313642051425572550975784931141524035802717992502195506812958670174133332772316480430955165159570828206451574960859501089412478891361364940721973608302641617840606869476011654352441550394589729247122401089855256390983305108892710573170712000113266888499227722318764918342506627552137411538491309501816270514920890452460651367922999846866774638660790073114890458546669975934018353725228513072707552386293932293744748098587400567048848437920055996166986109601583443267546358159177119845296423112835231292229212404699395218649371699033941326867044323229269455868545252643337100888445892314863853873982929825059191299960255303083049414093846199158352694152145596719612353720091774037283371630322714852471585291922779514077536613718336667652897052424365620004977828221303724358914560743781324564427854141729590496719422064295840688391047557561364128667720117518736573419528790281335626717709931588758809899333122561364466800993751662343170999180221530704497738447114201803848742179212463574945951573385934372766394975397118790281938437299204234904788056423415779195850572987372317181490409589068252320182439899058170725112621270901183516359109414233402408383228693752695958286460849756636413998784721061392758927396725931940963604348970442104906165959593473655887276112308316281126763485810188542812648586076312054906189961733422793385847529075032359234949479160587833741094546079943129842481838028814225637681480679744724963977990261409215794042919266269298956993390993343567507250117331842070486518875714005617715060272180754884338714024588600211039109847537315616514166436175644569371105610461591709859009047927810178185487585073672389252790145660379878559927806937699079655815565939077068313262144391327658772280067734311603376048347086475947368196119988388870135432993180287411256604458391688392203139581828765868799720884703984516171783394846896957229881085314158959744953950202956926292965617697610665586032569739728576194212640230536264734544148967463090832445650907270524424632407968242589577645202460977983540779557139577829387657540697845381854589693645985223705418564708375018780285914127075665181940465841167853008148185331612277186744614661181964351547445767584248057832149747615270095586369587971123270375281567129087545789231741716772695221970250748598750845067842918070055759551918991243171861704076666088361154888410580058963852286204064543813638207372617133305751441021443358401705954266299989332343565401043670800780365773310661195367001920804109987331889312678387050529140951220496952075145282551348947617557143631787378613066072615951706809672035710398767071645138760941005286729190965798394655623696982806158528766664396195866433384447116534479702512219715398294932271834719438560977411983519479783375282549336740546690490285778960373002925172872601293560037893358355562947410722203614620926597922255518400866384917440651679672251625270685446030270460087065896148724434323591280893982972005251195826953892291143221775557008938427572412563372202305124833903145951923160145318534075580638720199792669348622924375185485706640786916325944786143746126162851864729205722245523817560913903011135651818030220932465813837468705579697921129954478396675105136576579677972103416502841530171961003809545130459829096447150012973370483386393553736819313461737848582255403934995703772446035967356385860849464244551970757903981197506708739699456408180821110321835465229839846538652097543341938248396845800625597301027173955107208260683733848675613491887900928863427388082443525605083395241568717269970226203981426182733458057507831251225327940499992587262508439652018860539355561383532253304183562434896579763021700462271789180704094499475982734584227540275241475558613374337866881752796777091150593062628438444255069381414177860074586196457660237255295560178096128746665942725424815003381249702138180321962256543245130296807288490151120802858972156552230857366413688705130549905579844058509644394483745543156166806742286994760991942351523161244866387388090683536477349193919937398915081582839427631564867067770947415135714716637619067505846789602732595130763798537686223948419835820285722809136749101885059280115396137108586343878339027739897422542276832919133320421030394382535283158066574221982449368186372594071261364550458391302881492138020765800863820047982143191669915117315108564610531880354917717990926531891137742559848570586403144841217475791876110229796191617302957870022200871293067590988073410126778057658175709513749442984165059376181684758017823926893900458495649839668265997136739323810031957334216295760081614707221398275420178203810219866373555514098393982147702012666965245134748786626114930750685671508934822404106540715366595088989960270300424827306958161888420357384721094311407783863680304331780407734759050956308771580961691806634881692591237516395697136400532051931719278189530413203328343650355650504338200026721235965484991282799472020942703950130414436105867517186703657137077327822662417401085617854867028541483434621474761139634542220372792783748946458949129364126611403350319310254425447785696011201052024411941268531044526849479458158632506262057458234198023608574866062097322098507702743456675833610309291746975717679139572175042437052948571231743831285479494024065696728871214002045813954159490123192173778156280093552870364528333074454441524866489336989379275392258750393553235915202383886888562969838619250411193925360388221607986172423046672806346029849319189293950113316691709488295241659880831926420644549574158815242366186333098841256479377296535524300567273892367257686735578464070139169520719058787281460506154887659370701532487104545697194542820982210054683360282089472726179202178504182628126916989477204793806380928760622765754390427774426257579001015202494023191371429060292632105087467362291664721661764526884014298114209204828514012184023643036377540483375744159196562073049781180742273079145442546520199593996465911347994864126429471363921288085871246740793039292698333273958048383082782464506799828177840306920010860965433473191675288272082117508911440588574588660032733543565033937836580986965929673484680669272829500577245518373313137164688126688210134123385622147947610589689212486479098878069529333416566986908310992569033056819276627220234258360870995421362976065176203888354832385256792848673913786787500969868042452403415896363694578577053924519355519341273043216098223834266798044639969277635180054740584724655051531886227245538140445586372018084921102960016269452982395699380282954982387888718535734621524197527767827789047842293341223862853467141250796664755109160683490479697868132622465482432177790532967131022189427277247443571026597987429223325026741060926919099625758245986814955463627323296388047716121043209375884625229596268776488633536869960431080636719399347294784734865465465629565889640944912713764079189980231026250035012533383339109690502049061251074949014020781195367382577285618023818203007183801456220437353660276574702455415325309502483143548135842734400513677472295142720013408106985812052794596680316571995248992353232773402518680657339336453406870321931093001804088512805069973900360314671783641184972726450150575809832935474637983797242147482282723559612247678058265330726060447516022733479381223104569158959836089820113322998397666363371996902854387816042209943369584226935332969208782345491089482001544224083259476708603237460095693551550874826574272224166157266604502011889603978638176346865300555263305088099138649713473865751235708639620698603931775443231324716789732358214758215081775522834296236718655739142456270010165640787299843500851866418440686086662749252841353025028627363686043706150229173304403648695874827256630724983733308509082942991602298093841239560844342406987501204367446578525999866700705118940377758559079253192309861187224196968745673511159593845840321503870964986062799088384933242269058252630228416608706589515064612007627349267004654831237472036364838928130803656556971378598722124031487031576208963238961487001221534959885409700180577066096333454709685668556865433910342310195413252586263569269816470612434880146158511819606181666887896062396214805465267203892132541361663170614936484424124409030820417806243137297181719508831865102143255766293563699502268679850388494728414574965705386139553288053061913976893187691656002341515236777729125381944071340159266810388352796804547475898587085847537218900346034575484907558849807578087161156438404219664146754641623124679296226440047804654034629639543953439286907652099924368412956857611343104036787562459798027320742551053679338014475346212553581707941930282544264920423374975142957640092519278654894672852437980642180062256099546776930604415006086282081091318250917395110003197856538482561420967453527993034661659176077705496760957088672243704623395349242851072371115315961150790475859519694358361523212019553053876888457455974699028380216827760570484917442502768758086507240055586275278028616351191664675572511979030057488441514391427966454641215807286717092015189200316412168050369546709609158404711296791054165008909919566794573488726241030237634374400716329247112146416669525570239292001714763761110132860346958060683611725045585007054204303343715084335493110651310323444676553624684008290587534077313452300987872312871245230592635486263300659881165511706240166623072808375799137304152575673237203135475378641563669323395665722343198723308961190372534490124596800912003715022323745030029191390060814213920246829558374154396488750281287997482515545585252284153005993478570729147815650801935631571283724683551526331355236925369542166595022626721393842054537551538618056380955382756790413034631902361224247910236100949367278658837374909497928135805585622184746879255005828962908342816361640286907586066739834110551477338801136572424260650103794785306042607628889510596454901333600871197214407464236434457172272134090722606508645145441163586709915406560643533977869767408145209114865074147320796283381465476338478080142833333159622156863613015103756695286007887909805409320915125512064767144979031458061523308927704229844431422746800073327723007034442561895473974195897489027762460543940605959853210693387035069120071382534589346814263965270805151388335330000214866744511644300640228734285575187709343157431082278319421858025246685585061037771665380375268386065737984550509636702599280658879671701516224066105277827103786768892740424882921503323413979997676094937589986670009380225158552120306651731176987001061686475089155629807159894419370775399660418486325243225717163767917021194843200958930027361537347902632119849434761155828158403018841445664217733472306431379935100142281053398803174278787650373088576802960685833798011580079383332925075638801617348926291699825037264973528799897779759316578607853804560666904001547475166060919144337906260805907374097074034935535025462060219747736254655847741168392414496154715395034518645919966521771504529112054728481629730714196139848834657709812447755631442370827005421655410969660528895063967496955820867118174397309784058646757722607687815641485475681659975757406056081118989972705545412496982597885290854833644555818120473186687078363002882414545405285056571061119275874816439261724945457095508795361703371972447415875922849502305727909042020304212199941232453901876116142685318258247502126100591131708910576120761575469995638343683193047562258104422737383322167978701538007172979692915489575360729206813201096620898224930168673847169228064442183489938225930260712538766345774052104653550810599314788305728607952820925765243435826290039206395638545556081421392721981855654822818375956158756374217634517752936206925323015494275546680724630618268523707745763095494893778252048437730621253863635774764496720232075296709135620818348960149403419674772322034337451999447733366271200103759086300725954890426904471060936422181741685723992006927882727313715122508039174340346886417181428001149443724444302952190760781653007800180633118557138910925712049204697238199377960342841955400932058151474274398072454124826763063241704276497749780572065752642342761606408799535674605988816305221301928409550091015682528567482559345356825174048644482157778709612564979968856687411626425852228150681099001935751034715258856351769968896100228853220587652872779033021710697291379745714007970157111868982651722972018665717553848289075413468514951902369118006955353478938970080601970718098578581293879097895658368932093873397431622523720984928068439158852663015918748191672368472221619878925114619622083327189175720821247075160664729480182783038408342598436038636811668401922480081398271466334824639787037169333165904424492107150977380578222080342297979547136535982066143179794282287379959928472134128199112572406093638892391376587750291114323258539481567094912140201987541130751036934041742510295447872839419409251892613223697472228653097561162554880427506784496823007835347069126778120707509712865795494077622178160094486423345177599067460630637971856751163066764943200898418473256825734017226503079880157137061283452594553531131094376563068399218818576760923779764536724997686171743253300105106202059159989674762518229384268062864870111464713300065284120475563254484233974155629040406566171478954334737267530653570875880884016329630826867059314611931528146118063645381265015884832137170286627576094556604114666969868918565867984245489032384039819275670413523384524535403849339666291166104649132944818285516726933464703340088594767547850012269814154638995916057195756477375259552587829399179783963968352236321208248161923752342156703094937039759582007186448766152291936333813234038282405133116537950971441472960275923500399298746922642854661623529796337935423166559974972868767269516893924307072188003431170931388767603267408994413274380804757074267838090679565865729406637586912460212729556829227479118592849036501753567984862921228224913254282275358722820643736153662639585946805979634577533180424244729096043444084531508299289289382056896702212671911286032752359706737905905840130550894205097921050043761033438497285934254967031395786006686409916351497569426435113176149942927669195899893226849274634042527789007463942589017925469121095315508900411525090271542242403923577174298082385855227852285827787560660007669151599105178921330621970059542904222280850297079012023030936544169054081885742088068393872673654556958042173808126929470422488955615257896987691884876051880559679500083362954536959157187669878908704229101679853433663695691427626088062770597632958608767792076644113758915433642862818665632957335683075246920987266508158312332235875574345131609034404028808856662788512673189313170818123331663870651557924597570223238661729319960517652027514676498294299429878362595172655436483074551178708439282436064076167681556415074427465931374078159354183430612404408889397237109680947727469722013888290710532675760427915938080367790164349518195186985082756854761624883042859294574873233249400226791301380470396813951735955140788915958238535865506809320809131647404901650705673139433712539023425147285135272576446451482008753971212858352090367255276861661597978160847192896541658331522658029922988348972073169848793634731133709884172065083127813407137422218199108776200969138655953713674319413494517770829426392944494529510183241062281533096107680377703350168228654307190996960115994563152469536305464265072618379138409339722389923921174619965261650009010217875278406142858364800875288734759189146643266278080384490658135855187963408561483698893702112147963021532747802189863212901251958691843267438696883853811141288774791301796430071939936053831677954146813085630008596186991048945361390667397352452598383863492584551264564850435900001123888469081769271647402666690519743421336429766071536678921128117528663892010648776833009289370437202359764985986261053537804046252575548014076963581396913371852447593752742448050394423329099598456427087671963849786601134763647763075922916319659732556602349219148787127566455772846270653510497502898901661425086333863171351141159346692828714601446177880244845868438700442714654854804559667054581207901496662643254972960829326200378014802228205505267276383296864638458230777594087599788271654521312970602746739863777967424090136592185997351294879635020100736048864805440790380797793908869248416726518455949263045571162758087007389906224624027545504428168199665404943847808645802491375292923415107518700333148622898993672047001946095053755656562600155570253168788326207714620699167096785514583026768291188428222007036511751024053355675533315020112844677365769176523249236067790404274002545445936325000339090060745529213561105076646719243615222018812900150950343335882330784655241957629986740146163124146216567703878150840328501040066470560085390747381157996397806358414278708870923405147576396072279628643353021140813503808862665259402560980168197890654546454397873431785873165068688774117035117985689626423303171805663071603607570211211076217181578071326159888290941417933004927741396819030842676046207628919405038630334131508749943911722460053350317162120606648541428638698152987294516555357591129377295581356101279521436293785534189100614656494774730859612044262364247324095400767155883802516561013972540637966099145740088755579210410524629991929954145084923617731166171663920399594280754449196955723394771226425535163497031437351845392858552913432475275904275967924383472668562160357989643595728003332683664823120010379810074051732545467642090994508307498535942934072219236261783960721331477370230774475398520330307796069427725565451922051584860590155391912104692635997614274903068822650469179300148460244225711093770779911773227391062053943223771973462226373161058675593027164936050236091842514291322509160155637384431370056562272678436943516467196902999794476287719030492919354700604468889449743429541111770455186760033991004215571187125924211518780547530156477628373996021403773105596350749199104734213419010835065927428873290968664418563548997281516529291252310714611588369479243241345359154180514139962761729297717338635125988441993218928205442024582552252931403775111371055662142496782167470848308924527315297500983926748832566129949872871574071133961064840538915575988341911293565431914862177289370044555691453729659817938377874354878129645003670643951076080266323224264571039950041546617152389389241185366256866678457353765307309105524272062459910746118355896934364007196538406925109302728881573376767305014927179470787672385169059514158955938866956919358213547718936350510609430668551623640725694966580307220434444596001502470938434424041020773359506708192518851947925858474339009587546637836330124180695148187968833225843214211609201186105612038374834195198257734890007032097341958790613811354762179625750265011500811304183445695140452306061288637976694670788374058480301804419351561645522981536639614105549150061157712865171025962890487202309368399262050453947279873553751035692301415270914130340092700658599659978998769064341506273723539168651095301087880804156578581009430425724854799799742244280267328188802850195302140660795941799357663630895120057610580341340143764161900577817237988566285443720370284868122930872601092193923258748202033639912611387944278662005510417686125015617337484200174610490490781038978647628800952982615252079965089714933293115377824365890143336100809308222645333173154588045998519325379674953429066685671698910604939650183497962604386745069032550442784745192238367859543277316362365606891081129516181125860279038933508164283920039204518180674139988693341147874682472788719086424087331826091778812907035440969120606961435490666207030356846017626855966827969870324352449959059069749133921593899305185813159181050508479545307366570671594623912428817788721084332253203591101572756347750805780725208407291971621610979613980819221344844045467376251430699687600257519311159773734080388457380240447837365012447972302487402377266224836700617533772056001459690937817666373486394033786152756390136965367971849074781273224100357822643745852549686316558854543286916288361805516638233716119404839864295282496384004761735951839032529756053118705528033468814300643379510002980563306928487134019331268924225549902383737123952689272399136917368200377924360064483802004043204321090993925053011155447663377113885913784124504319839153062257449664730526159142889217850524751499442325868657565361504859461520917421410404572305566563377037073901047668652337363589889445406597503281289786806781380757908150360437881387928170161216366597354455021925185679563236312797932495793158421647842203652777098845708918521463556863442258477483096073565483496157510435375939747067507419582990688370634811007418760934447404753827354367869487924373439798369074017239432826324369544978985546990579869186891332322665128779378759017963440366130920428518966711602741002208773124734445674707165731798928284760147925577795275255501678183979222955844392314949822979366856489010622202779263723216161560671699434542143643860025211073954490965968671889825370412038490443203486663512576939536510749117399889732638404014122861607316830612109442116020699209072739229337605731147460875288408768813536703249896889385377524817620103373683315894853396360725983875910572351750673391162645789942258024372196931036668755904769733663879449248129589686836383037933237519977002206696391737127835854069603604491526830873420275053160203690036722728217262787425745169805503508564871665769351812134631179592242770182729895773635783243788935170026131817710607585518511087029694841623878678753693067644138982646087104923441620955538396696573920448633387743835853665942684747087870925211017923178569584521995834914095567570972751568865704790798387624876356874921873216569472137505415504711411939130615878613845493380162070221159514030247615079197210464572615306104449352612744883127362912940529798410289347310885169118693686059656956694577983607517431485793270419490582918735371762241810431312191136190425787242362886798401606173418929926127998270272115388345052121754790876836117693925313220264952650808450428990362703937314403875023485677804084954233749206033972110117112578795484567223328830688450048781704513389956747692104059357821778528233092216209757727818136122741650368552995729606214575888839151307550364843069688140268005040016104629571051842808973744926519237143725817876908259695483042263578550052935498412841339488834066534251397817751769067212777761163085362792927001116019992538973146152544859212290284170547735867691615993988915164833071799100968365205623466814986286477340552793615890960981579683410800488742840795662768006129894965654240448584654492102663178814189238417749326128277136603878297223728788041949587170880590805588642469983476655522600031310321009583591057519167095190695210933201061880414700307259948412292370490251771463279750018015250445577382351779575683447455129753659411582654945832306284820946011286098141685818391796537165160740359820917246579608522202547011824750102980218584799072319052138040885119982209394560659758621236767194163328941857772485666387078837941736048690520494485581393986786029825935886016501189348614345715245098027908672108544607676374610287367680097753981973609098465405163128886105805600683339861838364462258533905115712090613847956890383629623393508814228116746855352304038069801383752357185188185437193863310709184679535025069358907164771609957146216302753811881576540167019786634513687262313854287919938418701790788267118656839635634936469035808510944129822046842919816600568977958279260390100944276149866523149911620551923883940140607029407537172274326268638353762043142198534698916324952265738043326727370465038983725985747487058203695883497497646181675620904125570629565348061988633283259911900391165622340675391432324470086491928290126047505824135181766157545204694148844705610772908045892900624967713665480325922181178499669267676592532338944492655968274059844949417338405353876304732760586897202121991592037459958695897101671918341319827427263110494291744616346800310555162628481894147360627976671078592939784649093139887754427975190693275839422080720955644520617651122216636028146302802969393119192104873346985036247445952523658626837913547962647176534940349969599915731739926866740761116120818875441702396973931221555728808987554250914915079582667087603816235755670946859885038893600283900652888017592441161928712976246327502523562009547888807570982196787866026322653802356368069841406537508715009788271448053080790016102426025583944272665258927809742325063740692151163463324522632929335003609063569295661256820577921611208807007269921568862411076124523787283540085944273986045025838844500925892003687072409618522513204030650771152101268643902851941695566705208902344841744435764990033788049830619469841125317567583642509709118082647560218090195657064512973805119819891048324900601381935553074406598868708582944789103853921061191516687743491602406841393431449095594437940926781654225792220825990039898045969182175327665738664624265367257274927576238336398118962553484726786252801794228004171658043084589256499118203532622578595770837342669520513274903815373077278597758569343679619316885861380446585703952704717957449774647945511535270578542777905471623723856666857554163700483195648793342148789914289311196967222649310141584700264824011362275162177278814089652482156026321479918099918679952843132700978271333598780790892679258393209470606203586533788827878196007937510896120926626165759429404741999011080216737028676788721408212836965950873893217279348576443556688412335641825454142635022911800929888991212856517077036043158423883229088388404766159466679008990754772707050043369936495517009434711717039732695231778745658624957310753090547874113838051573205397397133891965370301624476505455868887127554008291707905071522719817037523535439772218147128306652468552732373573942442540205865038494990089455357963120782456759103138328026212998578842337645004939210357133596030552421873910105869561724326776532987412281520116369133872561937707633984719107624366613891794257210246188863119496587148216317652029917643986380456094052735999391781982751087061753187298386044589646467470371048519928073857074485376063483669772810514482483537510628382643819714968074722423710075792599795080395439220133906128075134193585968212724417292466636246135131017718872312494667291104514759705450770960620031589455815667763190114584244110381179301547622495141477236352135806456591190125354739542833060262812149804198700979398390424992492014986549872157593592948762901886738533346521972224862432259281333264620501668808585920783435522267169597319105856299396724955601729055943781945126000534826388516589185775103071888326237342362406228401141234307705156704905661980823770909762749479164197121045875603508561046175467257717994063950956846129336521662768799986352267200798553070867994573525542795673784312316338880922325062899758921304586557447812681034332582100352397593599473881354922356967644838840384360945866700868559933464100483963873656111607104646307832144408417435912372426925646354118766265505453622853294166031530398452151042318744252547983636838583845648707519952796836892890943848012089262342624635209840507142537106128398065658145058511547334344010552962565580954704230934989444257059967608644628056907616116259218082575990024192358808933504162218490642732191666171667838684345729210738748795397321276141373995105355228950216654326322750376225841405315921539419876276199773690897234628270352152553831160179234671451631961234063720544576570751821677376336509325652192605817987488519578441877819335422667266284393371062660205825567216023457413300069018586617190863834695454979649022418997073442015908689413930399011442472173908907165921617761463638137516839344034662141683414851462149593223182862539820413403833289988508005941822525660741752585809304622052223423643460091703566751293540972358112427030544515834258572610584337289780065276354035657611590249979680825728457399125408942266789191466106623213695230663728425844104074753485196960051475375456481380989625586989119986100483717537324308864151431956851317198227241654935197762321940569122194548501312494064953727223602203355152041546036984379308321352677817421417271767077420797461470986133284625464981288717631577696960489764786387388149713494116326702195043426825529205405794430543549417401432098820639462697586192636992298179026096473611380393552413470789582388044383228112799495788759144981118880590212823819362997709557807571627144126264849654547455652043554825558550697215588138092693144621628340990191235802562325580495744795970069642143692183449264116390630251984609599424547030668556793952174191615908370011033928799308886482144755757136931351944316947738031246806259608095126918127273562123117868309045156188085892484511283995870022469555442102332668973371115962322074171114665584739930480149774913368117652503018211659289884648474841338164091857531779156100904644534707947440190202065887748522158573757729838389725404629169076367725670473210751006537607463791666832789085535842484855434699931442276975094212826077842916524150290764859397148614064781101070258383976000243133814449464379430471002338768534845662374121328650775292439902792242643187267029178328183504642657121597167845253779085382207088513746041526400647882257271011553094697806372913857486036853756799262918288323886523841349912205476717369634314304805897333453509917559478869952829225673811700313159126525357261961946701722626724656395577822671648002974437693212241236709927017982944860287525958332380213254802613027996400192713969332451963352061498035543209247821596297239377032982983759778430920433966668752832743239174750581632747467324622521122662696565426136680702400977543093113253740658241602316286109821568712784795758061205883016001794356964105559578673880635490822207589005488147297978541714165622293586864026534525466135148529293280213077181178823626907888167992748116826335395288813513244998026396172691910648680426404450692300454254697927886265960953579031070466815264276727413823997171958198191704178849982364021574133708870417822719896630045791341830823333173114620381920220078767115628010952950032258656248520523323866548414552285228786634727211144914521059965516268162263961257033344024431736038973876195379807224149140768786961889354638571064449898040760418600495625000543412809278072162182121479699185656168372425548270950185479647847585302418901252127914204757935124087333154333220806605541516553765943323526892253099941641243775441591729311428074749388663234652514901889768902708006393350990319939173887082826782653890645801078972032831515002303672639934624248583931587865942342937159677845100794746185786323435402460441537010003459223463810647485059218879060430475487578073839887939374955645573453864307301367078444077843533980076316965639135263246152202062642401703283421651859051852482221001776473375059996860163191849457203796306728026274399330304945503547300376374983088330027230361082413164432285128733330840110681322660336126645678413619278618262852237447605933066017083131813323097613836604452095611753095234673758883087010027915798849745998374835301151258507241163125850029103659520346111436336916950637260522060055997734755813038051835154662634625099024157953445167600057041427170082460917149593397542601893755855151993316222847443067178586749018637312723165711144779604689922635966057859321402245834999740557794474831453242996892445392827289401856331810302689257387133873149679919051923987752771730520762847045940119308376484738235523395364482098478163714664620345477676742307528575432178732651372516053092601956424803920530131495367366726777354187647315743370287532169767422168152826805953296980280352335746500949782950539309965469663369679503217449893076068954425283147394484535149154849536975020598162002740188812806116042494283425813609945411286945727592848948824920256167270972979144431772224077387362776739307568258528468369571256653559266161170427472974069323371587887738557013487313428192709456213644981143638527540964078431959109710949957572234375321434673594423659893726809430799331166713036226560574989295790481713422156387368411385485642537971805437152457550160119428853915321331470851774223752256418118707635228358814769611480634059068729774290802568865204935544678293734697296069238309126536268318665487895746440061713293580423331061993202459938578426442681332287675768527613263841934095282054026046315084437677118695510603923786756603753020972063055359553395424013556308928502613995098825748438383677799542743425774529509320499141220149593353444650079343598137438394637213079577944434323065573042528204725240045259451578563757408493180273896045971023244676065021184390816998927724569179464486696059790227441071602506229459202953992920770650194521110561017259776667525820537837877345295000115027805242729155969350049922740667183985107912803936485310214332461185818124844540178282950173384815021581596303865062718867511732753199582477346708284770466823070275038601283839540893600994489958389798551861481831351838867604268976385754010156351914339615617023980100849600350947100162217201534286010373245694094650016634012108913658543154988498253606413524721709420895832726831484631234615207950269929376945755052180715296315089312043979574416357390812218635215089506077732274369296380144283440566107759583659427956994271486109478320221931864379143221021450807502114417641856373247817108724965389253242361889316649550182380726089494205608877665092664569232204410192501980469452590005081554162551805105331613533093850375818537629923151325949696234426593768078820794994373294484170087076283058545194892271767413493475444805381350519608357538085350761218433216920917872008698355711209283197971898271953019293620376692829644179824670016473489898473766336014298999535913231994247525859363215235016191140626414773708040945812929355679476660540089387007087250849129555044826838842940153107293367858279964474028949804436362774235700408275601756756804774439029556258845859661034431335982359588085063674621705706091362854216546494085633263282086949032659391228801646006915768507911687042782092694784715853399025753637992578699925732661652712523455734323877092529013307374384413610418328910770915384743295565238444056089269010442837713465453105054050710158999758910072309354490562660586192251755404664799985365500243907146721569586263596494020332438023503160184782732288047062555085278968619208870653642459935665679783787033851333968601737990308562839039450608814869128623208745822279507915670867199471271984631999396094485362484372937044413938963003673549792689951944623550209169700651237393531212853406110077239603507979099409304479186533379128288982286501710894976648016438342429205950578966148791893962845145824001858808306208830997086634010642494451907640703418122800523024729839927628553319624745056297996470738059388386943676512743860257145148613447719913740154250914579140085210931555745636606867402303975896527400403226182401121861620326257776582054073746756062430393038095522779372424908853797312997039177990355045508978300243188079394687707141469030545415776163847602051710691105956389032524837500088834810412830311095878949132998772168368781444096270755145835998755335014859838981125194929388660705007796358693014447777392520261833972739473151187443490644801373700053903388038903448254236588167118045077967325878782238058646213482351300838452484623097933340221620698866453383906325554026160351531765564641791533502596374651860145096653385430987487838816646187632685451461771075000668179873978591310177783063955833703190026345530665317385323374906879604692779710144421257319691411524705266020536073623512172087181852390090193666621017297496170263722428330659960685629835080260714647457303082638526917125525411683550478889906563465459320306048055623792890691537969673535158451975877346585493443348298792826010972797471664426053227162292824151546296921134220288847903135610861203585405191199140138127357164307988213771718838235293890616819119869099469247426721482563361098578647528681188575024048133584954535917797307392108548666181570755717087725912933734051612105985069498815754720003983059783637617578295104035497545349882665697384451681610833933146298794889355150275113875287898219439297211088210101686121959595269905821325965226059434015008964671738136681222218090389224205292170898876760721344354929424593047938452879112317833479185559556741721519895146247122483430099969300039914964422410180345793571775331879356512081876784794282942128859599515218532035311055582249162963479232821879739557702833482320580904840745653527269048242881235735423608751497466329451049295480578727765073609322755742732024554756565497064980169087879141542003410332169524428515774491328075327221075816335188895336931568933065200162140413499937530888448476600064778450055735766094528788058131105379910527809169081631741864178500442583366207636149489209658538747261107984126310328404309249245017916288697001507489361459585293499319161435021165483974968309667799723549737816253229520965176873563792998671402406290772521730388565410094979411803086578549997351074777060167060010682925395820784635610424073610693532734148207695592090822102924500482454421371501767893523227157616345366995828325071329575819547736996004853283091912988136826402581534411771278351777403507773579395817064400534476895866225966448183332382500489007724028371481938887452155959244935201146345462104260294655012143669576657133285940419832176645231600583486065164724025904403597061958117433406005390183937100913244266397355452225464178921017369045258833182487308808299193150701931812504094158618838272127609623313322786466251692434128110193378894593384697158341356211162080828060510002960823108430340222685331299308401715660811775852644430248713397583870737219666096179307083576130764619918354170862632070101307835592489012679413871075775463459740792714925670676253801372770796619227535219385036999150935444315763871595122550840891123682623642398760756200467586456987359959141653115712552709140539633021483449414924127056247940285578440636650322599262176573680340777287061714718651736834476678817510068363698194477500350341753479980489310900777397783322438435763381462460865440926101402466899241758336218253381048910856374286201710061509103961478345699711175374327660872597289830966599878811475379737237645493317680689597425630973215921883838761342324120430528987138572355923391814720320373812053067622468162404730269450972719199596034124416369846515902642213849347820030126974823914521922928980166936608371524022605125924264231501824141966910452233118521050910290515885670636753336237936551271486753516705905471460779080040756138808764071171067569186862300206769499763246350382416086920280815167053481354375580173386540231879018662268584117652674239803049814115889226522158286095674396112681527344672596397184645262064826698324464439329184662957388102140117164937801602510600565561003411816842630690671895965500542107877714571073570492977732493675299336552166693129019375184116357175082145638965347589293106224306173511666653078027882922078604634041715213936143119426339587177822295594514602841346138805775796012741391112288457216003651730005464814673364250050532068324230955026593890596754943963702596245955192177581978605207885888487812649512736672460276849316514721153135038735185074125472546194776085182564460076674940208077643609924026812712770528513394557559826092815150897000905569554833976553626736922903761801120966646159401200893697019070506287638972262695552668553792426209672291311845864881663198210970962083242102198004927486000160777458109006948531527934102345940408148581921644318852210618548444243537899963519269623903246746448826371772911315600183904809813294717583253228675416789965359890613942455549804358578250703091622022956750172075437611331923144278748879827436911746564985185526015313207503411735065291330879462171176952445390573169143937896599250202372946655610684907248635012224394186210655274903528369613000996854236923285122769250408113749500600167423966829540561794482440938254568236447568687061072666334128024567964748363552298983850232031301284771023692020600388427902327911052855209956029381057730967739977675044305599643930742339870110834526780594088980243893962322948996295004748808836299053638834578568681280537291727189638625255566039957257308687032196181736991373922471030360295382639411429873447232373882678492943542814908835243284466739269824816236058808149044604494847560181023404155542046362851116980364253975461777692131111290194899865003964747125694785087515298018102049836412850484740815868397735771865053359930883912391931714381051963320273026876057471185678492665146123836252742155563584455284690970084393419558527230185714321600340494000244099358249411294457973186189670199534937983453192336207131001461709992059235171647910578253835782890118022926194550680605175049651156868564475071108537594624511652257487277647619300749497543566813751614532616180665508839215416559513954297929591773605873545934444417618846850747948950435675086443456309464080502715968734890282386561414863987928611661330129019730277528357508939160951804368723051395314920812289100674306650689723365240832261421259408184114823652698938079726939537854799155969707506549539560725792671991722784402318956220264473350207962775415297275729879045852895890890770852649203194445309662058585092529051202257822577048919892320033174261528026432773099463116462256717339367617534848660526031316322591362380998361286519921798373791090264422559228270088676413788494254938423258174564632745181437988382097121549264468820723476353625892067624531036014291097421699495141475843967462568943668071416553248186000201754765560227655398277377299536833855896594819172074512299058215092476695540688115135365331538965510967330409877648077597823022383562169081135313439173501117799179496930665848284292465621790703273168261940578339927450428989682741312651984892767433734611957161221494802564226408804620520295037108837208999347995365927415698661615016610221852107414893226531850790469437655482152635806461810315376742535627185473027595837698182698248718175973424140933114875676062377395152306730599540790266912491881207620524578291754018598895335112355491136756006227978320652510368368173952288756530469176711354482378903957365899349736182870647802474016551793722034543821134579360655818321677488124467983621535711422715750858057131878151474896891604281696460105313388109669707833789318562419647894213285041811420917269440671508013884899421251697372849967234405423248977773839711450421381112564817869006254701426936988502965383813354164803178124459058594353870517980619289985899416113705373972451196703742763562295147962194312362945734509250594081016930982550737064513374260193139978451872463591801014231843707917088358313531203516432557018605794730592501998744236807465659331466284974557762158614692206528470619973680936847665672105713497970985157161993454617243651786639234289512478018783471808283494892494484698366753285808599669214351543701745694515958477986065123062783106164604682248457230399459757207145285867025098133535232599941239201041691737373089656284100689631918079306144744033595774935596026109266579600329643134815068482364950896554350205452804953013988503187816710434353651938795729819568283684961267634656552168535122403926398430794874396598199873948517737145174065350690031272196176769027312345321417324642026610584584834466505218052382061347314777221684595311228139576096998025511137573801079190424498535916705370776739798974147727677162473920860207293733904888234673423468350838621434489457860996302263895481331685892220472353456950455242795606022750783605047101738161938364653660103785320025104114434253445042123279889577479930257368849046355258766387529123077047312540026494640977111685329802491728781268722853073137955162686702165936064313420014731646447563282389416368685198042522758529054934202787730186307026506088936361946460614303353749557923008078735763251116495966004888912605981189619346266096352119415857563445348361401767319045058541739257557379748243550157649483838219488372910030457725479681487150360496334617681130815578875918285762508874717760350173483735709628705074981336299502727387509185999555156486168966471476758890076730973040134035507357127672070711536489712322776322629994160917110065236413641570278017847209742524180567283569310465589070385016648621974300285248490434676512132052840822414030660324255884900628798982208591742663830655426711522936888338376545695672533605356046069154808845989884911450687695361934608365905291398050827267077977746337938242409159908098500696931062422758051676572834738919550476922632690639930575070707058185546145093360598101309327018505359168384862379157155638195717874790687824060449826600977082045887424130797832038786901016724654984572323916006528995192773436448876497562816317910501985248826590081379703634974701949884342298399556666637009798201107779394145621517720789537916126395313620533120282633145997236558551045041070715312423233191954904830809591993759227254053377076847603693060724238417159442620872806806482883945593620882800703133554858399636208597911392626320664672254076460039876634308802303782418554975365357908324932396457745538503580107459707834775570991346362399221425795554618901915302259021519071795840801148975269281701397824453959655139174581944868802444415978521066999890719700687636336692899532030923621258687658340607672753000700436049793284498679611115251167099497922852172920944299268479004543770164594955806127785587422154826732495972121989593751081781971145060861649890101989395020869525244747893150229588168633161630100987820733702781116723815439791835103666075438554109213053468632379261662005670170778154660864976592344211244294426275593437612987430620640978683378303819364478134390713547486388498767891340268698588557663882400179543181904968853302290437547982895228269014537225331028426621939091312068499559048234175324180416133356968824898578544044088790030508104978058554976683409832363805343612747281497215794798146578485316349995768002226147382240633605299244583648848875570672567065075700068018730197179835799323868873833480584795997717231296254939941238612678773274930798984796616351951535191581074884830342572382236294355491211708080829700408407303727044565389617417848016491376245809112969165529189786151097005354669680805986438317772181883992763010010267679338149709927343240728911432722253514440143904856885539574429203825908168057751883394881585540352835170383110947637517339321121136199868954094174871484934468966616748386946782536488468921982200518907734907553641130158665467315378615124656507840431817240370641260639237866513324207503621735680758108458516782117017272157031540539910384648074501601923032029918025102427459632205945061566918533933788894515681480292151916000018121966479265242456185878131000054496316137287821645727120054134472328489342689521444499558271594658694101004904338069114420062732693396636901596980769558370978728488014425521060797332168161115025202702535396630927583087328725109458801248690914211453527186112034117717050029886521424684683915897300725090635234102526032919211773829772471698946189517126826301998210776280915159655974448279476630737998279393389534850347313047065187837203255037381712240156630792734148563537491792095280862509569785143043117815585810368102508197364045082414613772580992463845261797854735477042999270428094353020359805363961823863477164257453510887818743430795599897671288837091097758703615171852693376981851444114151980333565309491413015806026174714280357996876335452976251399327286147210284434258086786231739944638486085102353270024956134314391439447542854016183602690846193790108192660813428677375319490195542600277743083259539266852555421500190665189256288206001923073146104411093562461832004030846468085082831307481224589180564422437911143200842308295138539816933398389370200759053916923052903823201718809902880060593766220347784478827903191418886082461207687640905154234831841660315457075084102649306095730665529328197755592396131734118993830357681024653903973860017541234309144887003159935287630821015921273041119565709070879077716593888414483869209909973816043885018785198375895204025733896451004647367416212998406066262862683480707820673798708089584564062114465202425399023817439837446089092127608177012488718670035673478774887455000007287590484317972880133075851320333238043545520982916012051593104124631214591354230923395723241335101169141469292638969850069550571075582094054398420584343901862962672459863236665122672473124293443658787787038783813124685771018788470854415959642178243845643279080496470823391540218066520855172172694789412073333079880521610628822890823703203947697777095012227924494248163284491269728693382756110697279318431311575955018057389775396917584128254476179226130531440967714034314124328909644135918385774788781117638273844320841132157715237990941513530271810940152819645024816081859838436291568174450966781621638116962701943811852765020368965269232333193440165373089901055278169088185089910797542765268341243453786701047246747139532412615484875070067526010685023660715063402342690635140422484711861863163652068463340155713262259134675918331646487151387564247126078093586192919639750467793783564189193229971319953325055066729269183989977251965946422442620705210491847212691599467543613262853729175306587822389536619878958495856426621561044204889527517074907855784098014216292518320936880286422191067186588224193094088221360704665204113645663340745725615992613231242122851441786260500468926140471769079411787664718265860606455123201194254291191692486271481741151432675536917059108647211592680467566712100043390184227331565932309566307092182705941434970284650010851900145464874738609576100303495600536353773473315193591539984523844891309249152694969487651712919011368158902548455375515458207148301776175511038340864356919269173487961484062085460830944136483932477360364324666057505180913336972530709552640543834828205762660365698985427466758588443926100579015416649873351648398698654076043298322388991558953669027875398007756064663684498462985244552391740931405309031573909883550058144112140925513188004956578832264850183170893456876429249406943422335945014216940345179245767588252871219313568298162193072643236761447680001108937308429068622647848000472204089532107212833878512973856426056882265410655269400251274893798834190111166133785477503077822797252852548386715253087178425319334097163286731871882187213597724519505768511340938680502856827984715785669368583975082553210586304438484909999414010707334101407579676928015329460094457291856631264235742675855615820297413410319521375830823155136846268240625315872074946960870544333461936272832443846400728039714902002613689768533737006538584279179957043729016688365916023585238659541841183788591076553015131739436704245844243629576605652733120323404400931587151676741315440824346853375810363168383500928290583250685982463860082788220243895598338217328661194173644391465484732522308277108779887689331110963542300691000679669421086860650201994078046628308212975590648939003463451564338811824880567785687929000075735526434698669072390471520558881024754514196616044446940710750866548206201148263471952359840906178355554721977847165534733922923348490339405871956239623801462744626573354015446197241041935092756909451951081906284627215628647435400001760202475868255658011127834525911982107821596080828544737101520218070594534078645297409518988469387933620470926045916910221069148980118515640922451018538475852622461421355691840396849969741150552183894747910179312769483882028524439594838532462399626162173377476668400820212818713859637217676153998416441092817535469954725863502882406651025522252315497292605915217207307162952223768126174832113033038181893737711818534159528236944530923780811714360711716772702986480540822737573600084839280304801214006347960386769431643861833243437142569999650213064064925511223260099466445151256787495305699794635033546270401644731867616236888452597071006122362452809215550364844456482276162882797181013796172942938328073752571966621610267562918417697515235928943527193077185214467460520952415285995907619578693992021827557959402611270738921437583803519145008926266647966881822871748070181055958257996392232231720089157336011824488274628603827579546248240862694629630646956872370522208346948287793153077378725719829262460751058043160584668915189908510001736550053296422584171399824355922465627639525679315247867187659684897359251813632485375585859485813234498292517047750334086915123078407622710820719072446203070483156122447821106264154636637272268458525321383086006659044134116860883405467056687821758872978984665798663214550169025770226977838658998598405011797349966326279258183769638266693685910310752807534524866844218681427552471669134852027254970068003479647214750211059994906341654803543876064255977871117386825572267747354639065156186545454981434052407839736728228589289147167165739223917939278781775306363843896993988275727501922655894984173271185307282616955724659802233259946395269299666632613796236301820938572211820756143419666566212645974511323035377164841117155431067943873491306664153637561507089116860468921348990730055459326430969734355484649414649346830668165426441037167954848496889274684743902619400506867417339547663387915140716129209317111025251992253637354345486888129256621370284658747604493644855822594418032970294107896153303247051646318185068846474366567487861720305958464286784617285739936598093713684286881276189197175834004957439319058066035558994039270300264139568589426448868710648748337007965436152031144255203365013918581257639358838197933172888126173208231984300632963759770910469564936264056578855750934588388942592437935347457955133584418357155145673221624178061341581491944000284253584394724769229857342792864990689716922331037172876590111278369023890907584785385496603440895577271373295895395326610363667524561553664957992725800102331420511371129872354275469853011453274087798404972766660729832404127417143984372810812184991755320345604143305624055322195488525814442964126699279327930888749589855215923635066661511837990911248539990614557202216150926831973930314970203759805369249900392090854418136982739869332322319451615628860040983522682915434934069809517778825240439863095994452662921795549810197206294254737479160088549484863632209022819265889898206503084140351078490995614539928051699073634402249796010633459003628147303423831712872271219870890537850759288954754903609832056095956483175067066585613949070214941319712808924862706930132863587187325896532568100466597106949422614554551589061168856027016994027903934809555617324531477536853321407659279413819438570381552852971770464536366378069592580651689202589541225355635820138198094290937880509307774531790474775065758312865558417435841026190560706751285286758739931225018916545631513144399282474219731445721908273281050388302040113295382133861863837919898376558023192125676492501323542317758870512958344874305497797349878791169688523111766907371373661671097337074075206433522746252588934206296150777010634266260099502063719191292627984432267572309015288553568246557875173576376960595474717124710792009912202945176220530345553046427327254153880151690578989058997494674295869341645521937725875779934401276683176975700526088238975229604665149584685075002967645076178204092131256928369738852260883656771400053633434323120276758071568891237281827445338237911330825192586828287943431749203694357550321633103857498414380951410298720965732050912153393549627909444657989956113292795476171362576970082768895337903522386958543946010822559292827205140456847703472051058806774611049268596493152188496146901700567921725959001035074483391163474776029610972818192389222216913119127076968462509042951272706844268537383908695629196411736585302414396442787631782847543408148069611066671948707253946792640867835553511531727174483102578000260434261972944505447173105605179402858002195273700159622751974961540901159742513108610402423157159069590914022464479837765530115200834405330664107953774946830955993730510559950433812500707860696119400582829819590096065654182477203568910316485733550764787037295744361165423959977557959089156719679409839286884042420642252015705920912248407918341332859775786241815137431498450996874380915429006825674076183499001729670262817947505996339482734397446588903252865781614107547469343001085298904596368306245076573721183751010037587550865516981905102952691872576743968485172327180423546643131071296254930327009859662181998194529769207663619179850907012212158761202463597650414807291730238597611961571908761488111151580744225074094303308349435901592442340967896202995515736094182750643025650999334289716652485316247355439019210179837616086437245121965723267115049138605234536914170758067265752985840859464277302594348416014278318141035586397501097539424340835437714092117915905656769679897447681207872522757626493322917335501097274207429730112330847582612072767560612406485778943946354791364370089132307356135266698857969426166260805560667440097554789792575810872593555846372277212279643204934875353194815589832719807056315058199314658972978954675950096014184272139875364932823204082704948017332136939945144448233133037043471460908157403933693033364554179984753887543095386077158270600346493582590212556622334159548138897942514814181781562911863537746685436841719771837346358813876246012749723766513005631407735727225930731284116530480733109150994352345786658760870483458329086330261594446686820467632801112294434521236192322739987409893499269752514288671650893945333383884422390859306436325811596940849429676854831727799007352669797592599249159378630713744689380047413778430251081070224848275526982040259938936199335580040907666467940794022353461367574417933955269830355012055570980081114486683534741965550492694873953274708669224172608126184754992742158486805357283758412881308702823217028458665220337597007652706908909991795495409036120919865894620438711754995662213191715084252242573243442077146210282084569947226310386448332417704076738535753944101652797566364562447292966647097299545934564256344103279274893476894467389850834312124982264914872061646939620391682501024677701033307346211105534505812993246155868459712445072218998613222267445659745794961225119021624969675883294664531357592119226078253504087062262909126331973963738839278548584509961634639703612497546752865892777816507570220584609691855862160323011633219106527527983235307322327639266591411656407353280132627298202147267159752140340833687923359853438843022475468138952099384856238234888281184452496722332378667569898741275707908119042929786733045863313390559557495190807716749404288320020527674444231312279803369979495113007876331923797296903404391888689579067663282481545992499766257495697485034756025179801187352519615679778448579079443957497835058266859109440726358298582300130373793999550682513154869182619026119080342167408260388525251047493274143454149401314510503962838989441951436917072639376697417017046708310778718221704763350771901650697253910514561849882559186597059812732255632377805506768653213779402186418612809673861583422202083273221252346716019839754104379260033413283690567954704054727590701837511985320300540922163917942549190960713341363092481547276421054829879698977293578292126099541096705171260677494328624590103366197832211803598823100375543682574827059384061990280947999306012455220135923282060247730742549220818922581948490493450544862843272344007404065391263862756928429623405214454709704580375792661256392402855795556811188605923430476474313626315237181117381641858480567866894813004647957395406370146504595314706381925879757186550263167903085511208276691652217320051450275735585753766984651833120062595175683878972051164009989136378686744775953003988434223701492618608706603896725033293731510777953155832396033085686302507275703440318372077580510165538836219638708553344306812446742920340959809020377719722544854810009569983571189095672380624684185636766853137926471163198874478740016243046657851642672083977360327800709459730940589694285116251543098960083813005853335853934498282825692266728465008043123611926928219581053663197305237028557654092263627175303063093888061101462891475269616142469614936112543896934958774926945618881150610949469970513428475879744129366551408740761570071654297247320437348486302206522238532975961799808170383943514050121646481929782526595172002555316333442781363071956730275482149013045429633346199228804784163306130818230385690628735359125483832356538562781282843052614622187787628466782252375525718516829002817481547616314959561606851322841270713373891127755720615149228289868332267944599749996888132877748472820802874793169372582480754414533981944238936118991836359653205803468875282910030485407392148063240501210287431491931538886288230929046996253553917653890215184921359562418836811758672293129145428196103811931863967497438285920008500630373262807769561182866537996107109019345120154284240154943496967609186159147129921727931761128707693675502645923612824262783812695279688246060498788902496073957571160209476563279591221082447962382925012420482709554934065148668340509393500434857501339098192620974455869579382573720052323622249586542593822692295831676082433254824839790310827933937269924983615846999042983447383250886855157241289945202444673767524392058953970190572135150542439623206225030890301974277226533142276024477266179749756269235686829064123294549360571692938022055846970374001424893975748266702037991533833702761368816409778518029828249689594772702479766132966326470130641800421300103157237593141553125948414822735272612461315564011999780841772167395286933743447771079492697264266397947355560595747919330913092212389840932386003125630235076479665957304228987363071772208073681553501130111691108240513055541735300354654677109365600001971090295600690527568422985322099763236487143826564822563671942441289216588919594623185507906365869158508947579624796647191309042207060312356613117572713453347986758326423270745381837645183018692583872942595085974353983885378408534348830941313377938360849932312972138084522650967915506717506717632358110879778580465274600546916675592163231247794899855805226088998520753059427603520439198900485280473224595094915967953691575904800869818690479897471066487259222426462470543651090408768481467710461804873744871817227730989582410773927499282490755963134809892301136342542200608796776505861140818570283045493279649521692423791584198919892490103590124398936878927924329769176403051950368209397695419902768985501592703876391436666673121513148559653116242618196156820679749232079852383581419167047775798796076027816704510806789810585126559667624966750166185545390427057974569956542083204404939335630971819317416808684402630822869437330729190682561145059959892042455832462301038005399679809798774677940512487310532242995802403341350493588309991005894273055991126287673595304316522218740825044900878679705972488239056576439971362916561251337664771931624176578147961011739286960520025323437317183687244540295729331330486361940049431162713871197683453552550806846750630588458501632937437683907888144882379886040158173400042371879907055468720431886554633703194537081092078792974108114392401995513970438922500969264214658734943222730352055179496092634106729559615830141627280978599700054952036347207286356616179384200409168413181018382926898747691581415497758499468605012861738639056969725034193632543997106457308160591438472284390216301035321410744583028209564246677888343247833595825834528446049180377568939255594864418419163332503796734788286511544541222056084179841731080130669753814547317428115001616083445687757651670951208228380439449828750029825415150201834964982148124092793977209245110959847901807658719289969720856185071368396171413857156243350476285601307520795003278057321009294636109746107864321360770204840461155419573023462175155015436724560606486762398566688975457920884545263093875868358594926285282367764494607704565602744456455275203093610438775740492741163566113235833205822787260506924141331222913142157936616574848560979818128002169709078581228872085220951859112502068528728871366673307900792939698672195093680204014879184248735602467848674372307382197513323309618431091073414157312499507256879973245840148919334803965541780239433257928512698502621472868496110851897872227321849969255451773065566399069811647383095349218701057604372247196852218030512441508272830602465295454507413366190676015415100730684241373914764837647661995378747768676903581767339937646117941921040415857492220147937677225554978684354106172770216107298664083973901153820383413012847016738497296051769383038200798127041473072969608671229001134636598507912435336962892830588245103284303563119471105661438404121183380761280648952117027427372287315133370753491661850382257702632008883523151819086370073272807974450247918734269398521549201107727579901467393687081464824387821740295195740706835372939077149650481506357732143337356974579780943294289738995194682188109026661617755885056460882104872288183081319916055457370138768671469310869244981668848240945481320819740524003659653839979223873325725665398604024541528829909670472115877512521429400275328928258096301716441579091521634542346806928432914801094093736295247636760497568986327518334936524170256731461651011595934036519906299085620967170689617085380868656644048586116393380087332209389588607803210092037924366834040522267578157210587547467112906463640432861271864339758020389075005765645582481484457879570473286967171002699050535977475886739653514844532818496388111889280187016257600699481265563223033179059001092931143281316213709335264851336028256149821324500365575746810234816847395378296357373407533412223283867804280440630434976324461972832810674804709599080516331776781573913533865576985868905132765709189664593528136094344616371484679570191757914719527677326837059934731903746519059208878808608552947504700109525249868860960263365189248983894568762626678549463276928336907146965383624915590333419099643753559727565045040363141307324142476501083016200996303174164867468689105779091326300883465651781790278775618042974624691285158369733410252874682384910159645902879262258098961799701656454296060388396207525610942657378382456769961738640989506642268579804403604415352937993162133879931760883130845812453276952892856384544514303919364110059596407378951107027617108153523170267506617423145755442842052978556473847378658831802235138578682189678178215402113074907121412864159407539668786277968022551637783964205491773130042070759332686132717084063040236281311449136809387056007000435168562448167006189989649712306518872158775293961425622503054413206718592664845522301095971458717434537822755815814187474510218949312594957754243814727282552948868077762120702141593817482024906340970828290470634461529040575501173917390192969719019225838908413978710626389555770241080048950916419930173600471378139312437121373856939200840428455108808146347906074873373637074510447726475796936785622681497308281747546285667708110496275785157514134172182691889201235434773245666051411769229152518472143759350737626110385481250466449401783980566132435303076996009184292298296443978785675996529923974070718819894275125776652396343210373829556445528773018046877915991494392524331542103597755957451009562022131508914857259875368262119021926038267185052109475137963813999392483509359856465669962864676347101489890563831068756457447069760753069583943019494044235188497756367423676197843593557317457963677473304687124774474856664703252374453469348592103097515223305824555018908991327647241076283432418842469510598192878846124224060509751984839445542643594499751705780024419863312863324794685763829701879574859274675447521912117345002878177144315584310682224804535366915450059198338661682923196514525442369058251792827546143851452461774202556129038359615468123941073418872852449181948701693675491696756676546951511613494991776989661586451295646247823348425462173263220449965135151428618750079690177224495064941491019767989921611227825870910197138872667428066524765814591567593166320198244033077501033976451780868231017577514619929369919575169676318432290462306601330390666390448030369366995287375677872232967551812912984344541462181606731909917671074800714142911164651274936360764002620221592495915351524665019037380168604229931291300586063662147657919068633140398989413858779558991960859170111737595306680953549241025101973487849958581820138816116839222770418930542115826235460995483207834256885028367152062703905675710312329926343221979281424432547732278818917902065019784200349142633115771122676829097090902858550574594062993255559443271479311671505297795841797462581184019946376298041653724975734650894153180336032791283909175276769585840085070456808655189380723918174764807449025365483598807799114615939615954374038584224087547364628552631633780137366221050188177372416056930484383591904199052113097488538057816378104615552517417702438118457700072305246846751601153148018234761967599013730107711989740777358988491570725977311484950154685760116918864253322682893424405590867368322365655745545316803876121112104350048285049997253270177987674411399358271278576529593317760789793044743532990196379997603328173734328218372102447655086223692196759813916882414192331750535023880560791447347624910331248556806109165850321509414417978704003713418033741510125675270842827116904410116117360048438831110243070933431826004483711397670649757216093953826607822604189848512027105212045001369988723347737465685993112706000318062595621494790145550510504511076582451134171078997721568386275082996521894455646418760638180080697874780732887409413143631480462250627597533953212895264316311978368401826078501266183479199726482241045807628179111835680996727258180617924187655018183350956098545501887953065426193045103579791331955207870900553773521671444732800864052913208046807319324656245518725604398000742308187237019443697314617671573240139294582748386950989333152674712403453752315569066555341871910932205335435138768356451898027505205238602245984839419782148061737095070241251085066259948372036277216850281083644559247291225392588431688550058166567803233721247658707435357546329521966747888444362040886966070805649511842289849740886385089479391683518692198141429432175268166729280873382072023517237283507181298209839738749406456665165804426969576557125051206900165055918375466541255149968662480864042854686538517608495639096724676033060026695515106370048930978182001078795699881077161466203097748325574777933133000407759402501389033234687556340049805113054545872859595248342373742234035572900305863627319262216516982156955237425443801626132542574840640781345636497749829070823923420494278230279581587589568190798072423056188827545137926199997590842858926934108150226511759608347163299434662542746991545083605724847720819588162791910272744236586695852606977044976049825190391943387716114264190744198410220773466748119342748083069252525459480539757075005171488449023638716518668925603976491175326330765564070543643229672148856777949601740774969135896387078390188206149830789910265977869392625209010585141600565363245380331398227500707934869230274763327972662956957060993725348543653980200309662784464335726672597004179236863271625174186670378143631771532425866828819229055700252541342611235631502014257815084197921621104523905020476108700316044790830693429760034609744125884251499999906298130767900338100400287921841697357811131445134969066793677351281983230952896869920722683280190561171908315433912415701755453736889603212930006982034629919907678096601571880820035243757098731812938434394444961403384620594048547137431730855873726921340247298377824880670448343722371551954614338910160734427244926242543546946296188825693383419190559944291104508810160816387428670579606343431255327279136088081670539560223767260915122753752116345696380347927726188215112780105608342995025406116301073604612216542692126680019530770970782832325280661040579857345477319580484976680672388573397102023612591603823362647609406653545742181875860166439352339060608289384576111779391867496638398962612831362829242186077059169997519247102435675333258790826443359335423863796559705149442735099054457560230487241476447024780890965728997911833269478657694600675677654636582274757772137145849773209977073268803333743678339693213332950719543401813990786050458635907903012549108576897197801826579811890376976179320791675123515862797172890697216229985958619027570212454070127183028591221749015523997704469282606143594340551249466508560605149815010678922129687588072202984804668387981416230738679680536088851553230337571489391303087129612056768607210980857912890023614313486655957711096781513010027154492124201529027317317587698471418421233690976142967165735025522801070554760219242424969974029224267457190042957473653950127392955075232996368814372216003645126766858417842556105032053265257992512226225467936132508764586892734835652357544477675570605968231884150016604281578554860738584498833588033573687742785851439294878393845798501742229635130348792027723820221107125128611286784985841340627394525788321826389001551221648923537220899981723646577644658700433477761186097075190300175426826156628908705182023093905991395400542212202690231821308903385993113563533523594622102152394927784542195034250523209198779697150891393395633906662281446034613170875809069728258813245782339007043293105756125745308464678300329790086363543102072578740750007730640414625018191097678537248121462580704690859845114035707101949082330569612868993431143995352588704538577039397032521839815308935139344310040954003262113154028928085267738911748173387311930555519680795234567089402516410420882806549777098649508697959878663814965298984214860123777614135666513578797901865171711583614745595885198034779262758065052547715836119856312238758626205420872152433372304838682774599584650747242630228093077900839767880805144748279158215798534205695558431471820499107591562111600842371686707035532137163928029340104826915249618814303617701578740437757622779045079450859086852535809497238720905209340564935966660413595623323172083321665859773922183050757551481881097508248333033437350319689168784154418509194904769912130987747027352984031056360568021836819550911570567207540701372153044515898055175025908035175137599222030785966124711490560974502828720104689206288670273340200611319267850288694481602974882199978010285415335439133442829908638502303043797458199391089772370872956744288258768613016299765583642295915604783445359876196939803580218106678570384552264143279093840344946854257594388741606625076842310253759024346258327361686541238262551896167660483986749207135601791121738930474930204182531863641027822626886224897572157573759727308035650328589640571701836585225739080981468361388208683198764619273901148065267168468223515709240192070949449745383143788071914234124717123345660160795998504617716768179614194294566046233248607521204006893565067011983770319738340614681270878172106296281237700771266207130836436542052759968107583047048224531024740211444682786397504691931119269335475368086827582049288949861831579790523187225039635548208576670865570089103152275426256018128599954274466286285569214365179130679013593178436767903498072834934207230290278983325604462815195104755632073852739989639858472170219647540911827569592765236455763287788412285363194437027184215476551119558376509173639312860472741124145458480813232918107552707313559765862639991491008476690060450669596492786040634010026103328185929275896509936124381124970576142263640659190855939908665102608014268510165832534565930609657054256368667795555319017580122643073026303181441579909306198796329796315588887906425009792036706964870805363638609541576054155135119217222780719746797338409077199478774212591133982917865542797546606938153119914439786304650887635241227539364565994231530524100986778878197482791667450897432824335740610864822259282816661656426616544607161284606173787722379108735465580306440907487227953792454174429521185508229046258350169995567808683850929853077075829773120932292135877336902173774553684922309909318377827384026661638744793008695909795879093354550679339514570905583359525606384231695595261823604317708749525241592899980589999972062693658973628026515436077917819262968060895304708933027223159126954523139151902737614543037992050943737270923115276950353093563944832819024411419300084588314608909049488940961657423537761217636002442519213881280474504527576483269050190877514545374152490337947378103987632887502270440881055325138137709992112281775662886698889340181731702590490267284623153808255164084839698086647610183962485162199849673233387579336232260623114115151618807322986109577978380861763313426282536560310887122081626508260717675702503622703767780903027091501885904476268528865855952467244411369684686292634156938434884955428170099702971132443055277903018924966022206136792987152318514448240855073373643707463349274738962961275267366945799219085335026273468295492486608376585344027954874184516829475837843422699816215585921643852607804207224512086844300002889640064313191868394667001534217886053783355585795304852780102261510541402494341027364065068637673177897833682328225131409831605299645529862520276931914690190634812164476643590643804047389281103527137200703514907477992869909374111676886120601743361434143869028114159576609072006046071686632699921121229919713256151269163458770082434858236502004222540101124196861646218470833245056654399066167780056180262180763786913120214241047122174219215012673859495966118104701797689265898962445085226816773777369638621332846006294569665629908245339614027874001198970985904559022637367637304471739026830581239365956433175728875211999612359634400671402696046486874665375791453087019156764985153279852824096428002359565360051887768378862406249639308931326207370028229748117242964269070243091537468149952039234880961643196765143991242929246505781900855596122622407746874763918960660992031882291661927901724949931712877884030775700959824378108235207307489106818371977714775864559975349059871239764929972429828444693250201016383263247732716415089816736779895438073839628060678174944756042459756528728122646763717165936084592252232483111941887926630291943888761848459513259167383111145548405682059205054278286114378215579557246891423150534866415262891209128861929350918642708376210061799447185606048150821429871767541395562350178354207322275782203113093114736258158821828000060584389265395009128876070238469827748728462921498623477778630715444473427881525090422056728210195879230946612647286236089824226297961050985114097019380447417022598314505167661730989342440249124914502647624930992372966096084008172350696887122119931735407995671677987985238318842384126325320195307355689027051192190670945721012037580278216372961733144426746542699042191845405246900528235174392788894877947562747792756220537174943853718688682665180591704145444817910635212651287189043249749444510769482534154973461450768092809977659091411769471779786515683651696471339248646115074508116320796359329538219165397801365949819628898687931430888912891108291078509980433388900660575054715888195500916387926253955106495826962056971138262120356223987779743979359251948385978685358269847144058066010790689983410124998051962479940591329019984348171830462182124022219079320326869925463095260660987199523544092684035625498225572642293656646395903424403428510190893955351627366724950980052844195287080349925443852693842578534961039310703740307088861535156352055620343056014223410909133404462250433300504307266860216975395122259488368922011850578621847342258117672469768698559723510769512697558296107298740914152516429307164584813079622465035523243273028737638965516044924546064909771377162557151223777582640757371423228196148528260317548542790779346444892779906001254525152511643408488571192520239122681214636470168037263970245801542104205850423562369735890509224228722743155650236249061707782209803067760088791047286360480606196089953415956120120734515704842057230497703409625390472193287485428519606278707211628411130039857992821918538685844255532068823650671040432545521824344677304260726532684446251099652006392767745871436674957169525659183770255102707962524306903760941132229775158033448863429119673714079607361072287176335426297038512544759788167725522807162900874610196135751689406135923272737514345427489671475821676069129338975993553786185919643075555665894823083083129726039944755075642241282945149945219814432429374231894526946559726820318522225770697992169858919427118325518009479144280807760331813032993255388206284183423801893473224966443227908120369401237476108150074821777924436061350575860764620565426812232934426886347532114744955431298674052596030794703551508398439932923955589648023450780091845958689836175939209005480769791872007984885047794477184896076671266619624876287990846584588015842507049076508499438094812601490505528616750623171828477704860211284479751259734352061651186188147762552219551424033578957837417268770117587345657188077129943776686356790855460523806057854188051725185742657970101799432998470345291987501093841174335787761133406048356943396712485497620002872708917488977695267150876326670722523776033469614388774032024172941085687735008893885682916272365707837212900900046985688186182697512741580740793744807596523996016226198681472203769484580436326226311826384608056859776548720815181916204391029949637090129301572689779994863555920955803504333495857228546116066781470328953198973595298441450082194039704610092077189753769086160404190522686033021176993776747247758081643465006985210282665370056898023636974914770765932794430431218312183576064394163901287056831796267906946543555079089494108024492817683049224502298311090476807511711782427069035175046266705298486840893759999576074983787698786816512285824857416681112103401366897878101949620345113415245697359952697382173740467495740691355228475887522909734980206756021203950651399520750216649535851622486190930063812606537071858088380084625063864916140204593739288605251747260381200193163449577436626910449812299759443215588016356974216564453808167647247446059632266806902478116720044691620687752227971642851483629079110290954187438903643070237424114806753574443113288918117141190558470779786069928446586823273110715962608779437725065107477281116374145758908300076739872175307477374268755539612143114402050024214492124414119249888504552920265791989641104067450933233217735303153229300493326596029742967719315988057010743474208967704310168722774593677802901077390045663450256751999672581947599975733212353888739760995471114052844249302135717197941372671356678393290435175558178155456062947938604950466032123321087692618359519608110623531988296673042184348714414036275194302771794977643781472275686433869626289239339248246745068891954571909990341698561005980558361068094958380042781965224990743029501610489665674327802821942117362278711365845631230292020719707319415615659146487919734959537416550037128620497309824994993499725653897612881529365275164462105059212902395186095388652921670563078809483544578821504185445083757010661951419598466252380385069703345583333138880875730306326145822461984850346953803877993463978218863897821411912926686609901069884734805881935384131934852058355198541397304238951715051867371694366492128245220675159481287464358459360275239402322919889426717848595243181156314249361513121773883134516146812806264826446024811091964459186938144483692776151777740490080641461554112153992033486442885198918902563568838341495003917255498702561847953261522043800431735435962088888983892539582419364855652687425053328942464723765552276617532262489158717238577860604063880361697363399462034342297837705426375931497491876644246771951179973520403145298199701301007086529117905871894766643772936638555534979676481959844790804802449490275625275428497633014435692493056322416027719634652852848324439053998853974986968711182060608844883106838520456131956871181447072357708368320084620711635861143630410989259586870981071454569056589491970669403855379899017069519836527391078900173322064634329601834416482127856206024048138639402159080751691558441999578499251115925123154551940008948309792462204931654566438256540881062897418758971210824147069108596757664474390957984400922761820781407856540222552801986071425635806965845349055283338632177119097557018007614880815269622628352389065716921302608365372216208797501798584490018358763426435959464682656921507105356160783901955531840303047884782356318496242069266750445696570868525959596737102084836677705954586711128649842445369764831321085628523621932040012506334931426114873643295963823562114181993454439277102259161466533068349074432422139796974649641709849423240079187997308113819664589850758783068091124202770623300951723924134185253465563953364915492618935078112376871674508610520631082737276713934402578370843560744551022832726294941125257085168816224890826191071970663159060229710344542443910830464820956431522950138148422914017284546589352620654190156778571877406437023318026089244932397206333833769401034918568528402423683712574921357521808212460967543369948171989028105348401868880431626262507401882714474637387667222601560849230493124536644664833154524687606090313612190991967820156197542365785117194557450231002658100601728891936198990715151080201267300602452294243360800182983425535717783088903795214832486697855313653823679414935686677506438491073411857329247189873398845592708962091682609321145026456415027014974915966128106700410485033066793922846615618726547219283512734611990455400946102044423596073787255255131916005166038367674582529996305951945887266912371436832036186177994309048465832681159299703832494195958210102382919454700120166876740852558327380945824094519261667221120822853004321703507922158796444504671804984030870377981404905546067662502750104476860382718471541933361391075774492318268440091621195613042292807706756532680291093600567434719339328811747447748562899886296539164916928359604309263524959889371927335228887395943283369549097818007511973658293201757988069689895682981644838178614634654644053079644347543764051608932022100635392564554091692109126815549298676239007890260017661778625125713991943397273105563992346835780023054112124794414031833855671099749174390006786048953022632239019501328124269140002214153394302647378936394952723879619223082755070983375136539048927778542594913177824476761869333828382177682168337265103746398733875800972484709238124833343459725186117234244489450307583772909829609871747981589133915604549479997826431728943231483961040658944608745609563049252372080257929230257933934314957673739657761268790357603792607189382351488076987091743511844328642669294077367851503280907041952278816605324635713090789035946074343978658093959076583325741107911078654225195906083552147822708821220056077159229412370224507157851403042930669299775640697251392159422990149168466775078260048029286191441131836629241952728721964304120696711924122711708531089965265711090162477429085763340484375382316661792223095261265132829329167466251720444467448307607204240209990710906796710324809448666517063072000679012801352786852446121875923183473208493489931284980289696438574976656707958081089656834375917467608752063422412454981068067234592308471972354231359804030261056166617608008223442101058751979786551161433711930278986260572612471830507520331041038488924702238356561646131746720973990672631533073310838709448928194412649657709837231421998586809210011849646220545483424380960052776333321737287636528680676295449514394697194549008343681348232965228758355464109673022399364533032933752079038323383500306006056684198708700447040658467698074253960869357983547366433559237072227574579539750342742869689203320938076627906052729376463773000799045867222550022423898709552289442504428268266000508413091566796787903871059913600252624419600397044448282078684123586507552447636820851779324023127579119878576652538103516951760302524718040594611204904518854285568655668099592934899148146430826354364063057594539107887874626124581129339301113384479367221883295694455536015919330482769525936743341233083403721329824149310717042394714941899913228514856443616193473963465378779133702707981728088841577162254442479043031825600112950274714726551813309920481081321985767925587215427488276290390553800315322862938880621994072003934906072320071137007103016645000294442885587144420383995157486483767458571970401595559920508749883203873679327625559062666690557399088336034581715611929494818906361322411199979026679455012807364896079863595853460917089820252364860213508054484160775317544942624393850708021094534074487352742910032917139486831520210690110482470674743296763457499633262201176622478759326261994744458096910644924239866892314003066433657286430560183195791652768081835617547459133424207645590038615881111874411244498139662147200154126620585544361096216271206300351451737569613656425255975071359677948429555393830129633076717737314945708786205324659979977530424340495652466957982484790203206503972474028587777301830724995940941066235680036625433146156670456750228735637552314826498762108901580948767857435362425715576729809100327604486959439725489940111431081733926204807208139378961557118815680458550510815727109917446858185242929716029388439369567263133930757513121462680642048832337590953593967980056229392654773568996952583541686073078631797192548738690316633695713746401041562611364606670047320603606654423686275317698499926181537457932717465322718089174832357463642383923393625393891332132888388614711299808665359793430232401297831360711920139411644943251882904660592664551605682848163617360312301995140126755982200768783816340592105427400812351958228579792039252049105585783202002470766035378921060111482313364320054192789852014645988610264708162740975808049562886326290635323158269566638211584555073911303353045520048938325293528555702175261574001215881694066488324958546672171081870249803936507761569338674319475692550016713985222421319170262085310174227926897853777795098657813823470822839148022988704727731076268000998628644821655612922782303435272319105089805647522413449541590919365579010591360862891653743623516153755617153974459239071825368349972588536441462270425411195014865438998230405566412785881668683740730008384183062800619885402626029394037142904287902348143932286160489896194463762982337387666335020875148140118515289421808592163910173601368338587770811185669016841218951300882001562311093062068072303662457255987404976827834651884099596844701650818058789438699682123480634129862455647835448872948023344971199673892338137472475335893615823164656439758805559052422252034935452484598796348654288972807017923528728871882451223327597461812034860473249347742374194097835035186371190743347214182725605111396940790134777156962615516781151771559686398344499717786334462722314503116162835626743795276376578092938588250121264851356639658116529973074935908259191005086959542572343442735119815094153419082932845656402069235115980712096977377690097385042806639635080178967152499615589824598574309104170740405372478673375798409799210310445046414416335625912280396659229394640971865750924367492706461713854518116513034666693354724072065435407141822916666127711863625832457105200978456274986228694979571564159605733771494044195177335717526546465034688630404341911048681085825127890240404916566802365831866632977130031722436241351145772380365668724097166643439737704360766729099106219047045323703422378046889352840546359493212619828535552946329289791256429898996459928547709919562093159331009093067815121367603103043934903223315206389005119830320477640805459727855782200315437543251735642627928794039975726968556098039247045138728792843624357523163612979652337094626698391506807850043692712068326841348883626022198491151968880723840187966617324707273063634310737292595514013419135907250456958782079824988892481941551109481718823038057283076076018343554670452952623679309685641874188869162351705054899906914219586525724762734236477970671723413316713069720263556142912682379280454960805364952235956980545247266810016634324283460556265192414053775277446556293740543354693245785123994478824815674248064106414959475081410245778092832437482651699390309695734081347792522422930372181679449173579533789341238612292334282356257354643899872896727827110078486174787819816532741539238777321654415307331667608319532179799810736452118356674803358955532017161341262367336411315712746557794078624455679020207641564932161244287856124260180924612245524304637349710071986493137181770662309273868099083397464597506069784335466088613427857295508750037068198579295371950332273423027504842054642406515978769124059629603727628551763896473669934093104739666570330158299882742841215571289061900663731592148290720455146445100717505516117719003673074614032612048158889829146013895040751548938882408636821180637936395252906561611992362764080739662445056879930958862217277167576789709322395071263289322040090437676490443813884736891759939425239021176937544684885635279201044788201747148212785600251555120745065640900258397408468684935171126294604811248810333098156009731117570405930436517187151967719019182748999807747123992869990826402006475471605957068549766563806798420868006188230736267900790277583733449349914732716271777688128799218056196026378638053327890614062550007198322922546264879446569421523236382247654533831293872398675556593389838225215945366561300307569634536122465666281199072915469161160624761682935095682749880990630082131383474728220486307976795115923281379826055886327272833385830470676653836375131864324601132915155692088993310688501142480761083122481515403445623543027953911977415505752630033658930159308409226995000358698990015184233067682811407223327860229795659675048628754267316866534942741801950999166396571426620404684301447433043696825724473986383229142951065945844401142575514433332988126510463569586628817283023307603796480515003010239968674574070936125244372116874106157809717314249224518165752396475479241791923101351305518011683828791313231120804076808188819211180999359580914036632262570306729558187487282960903620785997929499756725360227825023167964881693564179145478558397499438786644020100516702347066637948588940040264599758330580419018175256503545170414381520441347825471961163051041731003538483325662924531065113997524630048951531438759769728289084082559334656588362983971734583952131187114628859635705923314017141549688775817521959352489119721530516711585906470648150144245090798463765771142733524217506249318584336118835707819053688308986959589793327905459897305814419090414632672945488933403323856074594925279186961424533194078060630833998791104789267142939203297438403275389241622292617199134438478364985029319664408660340848982580732559473988667768339892142226984489918628866357975373860023721603092267616350355736641539962824457633963485776007617745263585527839306139840738602076260734192697945602801060877831956571525239021729647178045695685132215240681268925122498429828655699279920808102847107490372242794993120019394230914533933064016491468246496473665447686230194227279465866051400796057636065869167310933008049435777842254374508915425587483585455109363311680640195421649804256624669742303601475754871488895455807141669315151748360142773864514210145888650598368681741288223826383723804412307223495987376651463806020656131893536317541392852642058384515527779641947808012675272685066324200131637201258654364187273032103417014351780391285781767522102799633174330110996252574491701728634106274195364956188935729271941872338254719408255294711773847362710294985604577762774438527811484367324602558855610006883580112306466590972969852475365875837209913466681994272892920890257031934253280360015523905823162551412901746185109521094992710440617028444451266755206597717181863324762729669155904942188750407730777287349223543102421114684926579603909508808775392927649498195868621593580729460467953679823517295741844380331176744192103395991750072890459994736432693625832070319047895341042676925724521977279656114373002980316055826823148765971290727048974803482651979749571588657740405379438764387723877187736655313695587391188293942741605134858324156142329906939029899267312758047089954726807765554371797820853494998339151709669331254614109731276257249883050880844545816373078225369291916154059973122138458987786076145863940235848010728339653502213839966259895946531359588039317407746179844323981680472380421049543387460184431839196718805969374321130111007866202474881926407958388176830019108120952964682844124044609818966557158003881903171527314842629104753480067225945200541118405609026758270762460952341235776575471612004739154322795255365616316097520919406245539049665995625290306366918939670928148197984099364002412637185380305459386385186075537847802933678174328022647013059708521873039453947066423265358817550493268520627747072046600278099194130216063886587977583286627474605214725591633715591776375805551939200496436872163153056607200552478716210352579253911192865813587073903385280213011802056252501024893234948693997093749220402592006023758513110881522305698323509163929438535449368897022586929817475872185896740442635008554377501880893688176671619070655654273819051473524852248763621656965440371836223699185926255851328150831900250189156509680481513177841269775233817822023326141062503016145236485824394039290730904383964490842646487880159577126626264327258651145205112706944093589240701545624029084418440985727165678504540251304147079295741832251647399387289581441427835495354125107912760552520852135256250583289941500744518719410972051958065474508094881238084820293965570617435244354954037867483542932002611621654852118241239508690891359136191937416660384096415674880560036812221287676264046694838592941413161960224660816745458949371104949208577700779366559097548021707918028569327071043024307594848074666655165080974802896962190741427356596708077498680647881005580311933075986280457600200185434610036031306913475479878233620078866714876084124326734202043452183322378683205994519857259657329386482076272449856858761623782596183111781188442231102307117025154580556672782372796793256086830425391959926118234975650999534871137869952473539795664615966621249243901099391489860636063153531258306447002287686912842262265129736134051108711926190587754379429316773874837534776989670618054896686867296594823491215503979580360997918523070785823879226985349349924109748462003402351735134746892847811088697566582271253628041676169840240935930434981608539629788075555930456396371995338252666588336731830079350797900051560350509845918458999760392817702369632195846624828054167413240127474839644913689083083959280663378803326602662824670896192088285167680350548082502011328487938092235834626002928677945048257286634920553109267861642001254582116259545327717065416175348173856294172750201707308635263027308899388914156625736649081692355277235708562048951149955346718358761678918185166273562730425852133392579149974530082441819615379970366826915970782658552888088303044579681743549080847300535364127308028351758482686376732430187018723767816605705189542653277913118404714648527958353846234059493412330395681390682461114711526727500290283820640734255839814424819978412895235729687175049742784333056868832102247026962115967904602642899561767860141516525830009121173843726463719300695316512835816722732594261767327178266017847984693642608297260951462564770864484625957432032259133814419008226153144439671065683375369793434010052495342540154303413218048601457984395892505561257991400588284997349997709367457927639587791521988418291661464886446535973067498797907731742245127513793948635228151833761619908407356213469113346128023973297578558758885994130258063688731824974378932500863907540962001086095002048232011081459574614434024977462382232647964601775317166565792843761352977384501670124352096003314000424581661238772381466465134240767513331067333655271325583267776399957362672080614984493338126204981801494794848056556720277663625928963891916205124823733346453122416578464188173015152188511510187972693671065861717610622814713861888480404442747702559504437605671435191958347442236736985504253786175785349542195083852217649739121355282856122652374861962025983663257823116862998632574526697402968318559573795439527636509272954884468259046900942306098939087562531573366042772550826512077143365773304340485564038138815841521294248294883663739894000046558887481598153540765218254114652565308706775156360761787537032858476720748481074282302753677375167960064822293724011796147454932614072292080592070732568599036570905628555030611197665055286406619035388683734326515900765711126215660980514656836739445745746773661410611229194283957812977727652066602444094528643029210630269438606960947445749584284006984117064126108403254203335776958718929717476984906506865805577565661932482132639877866241310067912994884712778556358737240716845450226262391731720556471428523743269778164461835410096480954778490123069305902444241530443607214917842062875251892228152141288624092884686813563463774197504067333476585187751343612916936544837544659399478720496428176660306460196304800587748078610753570208326410140066501397702494719665154188437305541733364070673907012693989778870303645267758464297059036216273734616796773645929977704180554913296911754677550148583850213673880134441157002163008783189288052957153142410597214507213917932873973337805900738713141878166520281527627266190112726818131006599408643350364865139767394792243060873977186628214761408381400789608461112034024150520005101049565348215025931523581279966899613502912514333379832647093178322173395527872037653592935683502829972215598970451409539590175547313192620650144894714733286763743566090317553028283784124814405339040692840032277554968907423773439043587468720049253597436372480292921028278050929953277139028629219919777863390361670100144828577212105764491575645480517502535438349423143979000255721651447668577138770289479557530875557971192234663600813893959404711387081302342766341594158586560757351843194813784446162239253738521027957915750447533446208450764549153170031664886227658484187372694692016897636513961165662060990534708133734096851098994690606082842999304153975032269560022281155764039076027230729271880768411216129595784771352115539321161450491527818063164912615423635503259271958838237891192480376179817590427307545387757823866255384622950935857797643776642052115925331688088097924027789998813610380414828825740207563584686279932007497469736886178432785634501762244491573675657820151821046744718909616350154888426845765120114772312616462055540631388231458183661932307934599582598212841562337171943327169271418233517463754416380704637476113884779719190204558519594946914046432583410353077849377618261905376515552076750449589549893564065083026094328612520224471269147020355928121625116517687995593956394876171955108986108235424331995265398662700180355551624839232615218068815750366637280835851815293804740514780424953774597917299124565821849321161831014599312067485370275454102273903725844403515454178277034754185232870142951885005590795310115676288859853117119183805321396895199203053063024904502143013770581148956848488877022177603851690915207087440972948297206691558584158095081575984672722113416616166933587289577510134149468723133783279592380530695692963437082946568650669465074386755152652870143715672509892729290011899216765465995192395955422831394135096328137409437356071836056923707793387746864950550862717062497956099692640517977867891487970380755268663580273220613836469413379871594710976761500661946864160296053585674153830066278367998948498456592137698491371642829188167436055869544369240750146780583479985359316305818141563160172935613675977519053634456862548380747362435428630491066845562589740735922764481036050440874745525410925454252685302317010748598486794062409475130876736442130839209840838781140216951886579731768281561564558923679504277963067279923720719228384635588797696510023316010914467413594035941217654902141958069057217539896082472920880778573680785073188614003223209601920137180647142860993125138308281697833489610752050047870307667928514779786047765789039368888975831758082530191477136816924345344756996297920597424872896518695589190657618307858104568785372516360401121423115718742620574444139547165122585631719178917944450734372945986155993490981468336952596392115523889143939421281888139316879699490465643227093448869511934744240712010228511093348464655621810201810943969481516761749739823304678137498078580851665337243414608322091741478540748139539956025206083811686678670828138178400967094478012587029435762150843451335399202888020420477318450528428493263586846556872219001260382937029593080759629618404779865170679387041200713640470009425499495241836193392495337844643427857300923179636936153225025236625239374324170776331193581271066041213596116241095956746345363182042627363038295913030567620652026445352450364866160173280843928559360948784352050535670713888588129719368560436158170041931835232386387223938080844461005416494389026412843452038782382668232996036671983294873723214157237588647578319989349121349593848989128556202417446537856964811269287114789354849498754144134899523665438080837070363230065670171347608057895132925263804172071711089483468479832542371563979321751744999899901339542651393719126348718645149416151429427354139066849080005983090971994955980738742398080503744289812106130700353444213132528915851317992324650137565744501760909907631349037029057733508766697894215894378161777384953635359379407628324003778754884156957253791056151442632559177222083119232029817784127686281912254615096382635457010889811423979346362757850343191545048876866569128986205161899425973920042140263217293893934381574022752666883297613181528291567215153141526443924051975457161980002805224183578770345777991196115593086371122938175584419721648229220197956733276908375103559809867168656879564312198787687992981095501304015032201824798180852270426528806036689583505574296269207251847752189436741120721115740141307166743667553344589914874232516112099787346885929791502701553318576507354737775810333245916450887843444287599246773525360762710378964976608742938404487811778322095869926612898784007748341860068175921995381500442382261219433622662483640820683117038739985942699909170115793346515235198455241801009931771744827219806970854722228677340402279863669793763260349778624948641389166396689049357260140848217207675168609865368576191807590756102135733958728681177731587658293488957540207605789005602396028616846581253202895401903066480378610657310288405238784834094446683139714161976553775147327302408578131330887492582104549495864334392474066923708387717590336946443239595509512865682745446096277475559338341496331210064196282709707125743644420057878843700685556869299218886419340249497742860882141178490738282305586562384873618227059470647247785588253322416657821227287202882440960766412070720641719505575368198755259718448931228764251259737295880417075825278174005130616661320999595264845345465573156877622882156109047414913709585242928047652340388938659342611421199957587338558686071552364461379544722335399812335010198333343280107815766280559262370662885958839905592433376443987436887268377288811289093529703139467802881030151551399217333560660233659236734998728520370791025210628777418241446499578326308499764533184961341895330381973107686740270064907786859449458941782161288921233217318924991694479492585225229719184704657889928509201895170364139378609193627243143919669787438646102527865305287345479092646440459510144701572232947595310504323616577256502007953312300421370240050052959509388416504865502611820937295336270189936432792598305454806624446780603589160578745347590028235021635345293858578938813477702398170424161980251854326407138326170050815871130872669586939082235049904551927855132451238501471076193228891750280733626989962841351900379959328013898346763939066742037511522207433142867054886985394359951740716174473866639008566581439020712740586113236367207596464709749969580129592625884745626272964828809897283984509863715089041817903922564635354441669764655212267023807540040040292492436127823362903532784515502296467675177094846433125131183265776555580771036252206899412258917911313260601680955898159205307602638831844596280361985237970807440013138805040294666063781806971680330481256153055672116206706722990862309181245264294769118640522027453076040954101766567151283013281559207152442915389725912266782396562720739638447595433264628708267823146387568746902975506957022678056084927705435894257301089591288754452608913499729954128236631457902634445919910553090029272641802800339002155557798771150273148407966463095818409114499117064009300297826026360825992734933243653554561476527306414316624603125705939768513171111588157853670663974182794140880307868883062222241608364946951967331246444435040030054165617057570013345565463347967675849143002732540620001123035137303688111022834705253664338666927844933727347383885532450432486775320749807976880108135706910115323818663408802991489318425528480658056517232657151567430311378082151757480082439055738457346778182680741330576388008787812172559562429254968375933702154074233102258009458438133914568285184264988503183326549798453627065532815315940566007185115244556808624388222370386179016422794085310856953327326660387656262599934483461486648152905377812182178983769726129552145639266401451805349841206787725386692047282332618215102126287087054309607687179640813171680679273612502610221597835966722683134913398138543777334722387719524791886820536222918000942738174983664380147529478845598159444353593404457564651082256664429125950907145109484085372952740201264350256366894532855619074070587210571330978962465754797415979629536900807563791214702872707409514988789065930536345317531574770924004349814774306550710292417317984524762720675804012686546405353275336331599473743164479000866209339952933515144881463733719836412788889103728299042392012578528150989576922664792476070992367451127228792223571380595489026264004334631991987238245317477531497297054300673620103260772900873802295481981905214272130210555168937949598884006186099561291979323515384849732313030235709423350656289869530280873174472087184416312314709351920289757157169636944136124009890914772275709900945624311094484291990254299793312538119087787256127872364450026423554270797207446416294848849631507926885411382765573691790940204208611902250108306634685834298775549744579386645458666959358146699468983054939519954975883447801609118995671383209502797337762503187421437197301510581156944880275094768736464694675874496512149646103598014204322796248145201510075698770904309925663876298869043415892984973121844878125506434377305445673970756029358377074603854702578069392294659307853840390110766695340004949767920023797349825720703286720301190395027271082497009938627717937842179508791074445818835271500977932769164356968807047817821383996691931806285698125864381646990279063447963481728225343814282914475839149479758306729012791035700154825985893630530677570049531297124587299583686677310810753982562182998732938847050946309538145916482742885164743640065782974729071874018628068284335188967488917226539739427484448373689212487691935112224656910139135063639928822232982105142410631894194546388108328668605874400221445202746554466319867545243524173003748547646542623694329678975563140072300483535484647362039590788258269813776526853805789329795386955656459964998831433010341022911188307480636338978155897260926820855194769461308894564909553689475113424758238163966428105992582211504108327836701878968826862390876700681861974815431106005751527138521048268696553143969333864205478927839590678275214980844397325407731773918313680710913409759471126469971930055297145277695088245411670095283587827646961661216938810379427794207657945499983925800907259112511916760123556782608740249647231813734066359536092905783045199156121496295308604036756919947130392583234554401357487738163668103595947502794779566132485750992567724009918643611128305625616791910382919376786448355568092721474125945691436991782554203525134299287140307787377229900687933543502654185132112121363346238211620361088074705111015241482258093306095572218405792900491584053016829638648840624364854130636685526871859244096398962108265698740164920684348102461746410693791366981719511910280476483768920608009688146980684832760433950149564765247910374833114523889305148602945343734877573599981556272779071481775570470760892086870051210937537622346842312686774629418830480926575376474630287523290792573384389133944581806017247672280298295498089860774999101165515528304730774734544179765398927521387834626766411596078078354901996589488446661934004307054900185687867833192549924547239847680942611887070789902334451866986396086326795632634708179869951610956560640702438439241914584896754989876700921172639110336600266524124232991947421906102459552966298996138595938745836104837321525079248923237576459042575668568155134943089854258920510956036388762989675738668999471346314304379893039044064914654016154592348158674193334360565849091976656578243665073280871205208165826777896685087541120831770252298224924116801410788976978428324868381640231180831938991236344616335808720617736501471932574393692670315035831992029444082316528816531751376004170466542169109966488166209101662521209618520996454251168899439030227874703754090857457912699359160810645800477278454625527420862062702666068555466987793669137407644183025299881454065382699669549339208136729838538206990201858693849088990524233328641414922799049439861027306609428563513225033569011925483293788886469793386576490420035523728992338015515271849773210604618488337966337444566715137297894644228427440056368449234118230755072855204464746242543655446529486058223821377617350228529524083841847481015850100115164014009388506107407828618539719355578676784590803824320687496657823807242812094469054014374208967452671443309295937396023286413058922314268622429427148738424623786525053285432435842948737246021950570420640529271865485808020348863644879453018469734001773402599057190435548637902348971415675506540675665306125245046609693325251721660381246732454162599785273088422764680410924876723096209935200983844980584565774036044339083197610230546289796710462958243549290046649896801856692168139996446810504246071309850471073190492735245820680176379478801414948055276523709735889802920568392450942326480337437165554210005100272113438421370046606837482594405706276782293890335520487049446693727779420989917948898729466933866844515406834538951693594831982087008392169018555368508550003914213533556899232241637125058637878611864019502034095064100336058558690144812891193527009211425991234118093014326639952287281146168228093359311751805945964552217097879552657939623014888653206875825412458434843586942068067677924616142240112468277482128858895333661394207516430024845621474546422985951116956939268764675805181614444447270110303175746687755763750103960158268488098286950698755941098850387869349983898237284951350733834963872960920674030856841385899575037894366147053943246279443083441504225098503063915908968508109573239191308649452430068707092373935569043737120367509832858779668280235858262415147462778940535821147343262277836251069934088339977803308680873827770152096966307794197047378583612053324274634676588264741834463579842562750061111960191916801051115209871453314342521679346775061140771459668156673404334890981611612721622812104225798062871990656632465318633513143921088101424836913665825942266075916348876870462110210841652469868144019685434430349487419712339218924699777533947386219032836951881512075688088361786339539734536184079560240446842720106063079703592909424099379963563311880096772685517412846220508674868009904938322722375774219828128174975293366816681871198724373075148562622440494639138310629513500566956631855714421493972889477322171601342801826116607517127577352126201646810148034609718711415947003416744592113024619207409206348963501144291529250984273193006102204271520900918602122517982817846995729198361995693235560605447954298021299365410671246477593214881916029494775682791246189161596927823604747398174200116581330385603904091321759318556687003059810759104916426797545573338943371257644027015899769999426259151011749100641858185478614911193567620450454131978587206625900517674631499829900929332646666209388221024205858969227689633914785950380404946395265900784772081562668628721811773722827516217269024667504994409458420897304578557826258480037611765163625623518137402886298203581539457440716172496161780651943604251853503688656057559264135918214348243544249967604646931140038144673006890187531876727621503360798574115319216964414831853943053965822125726031461836714554252425589792363269915798001606371844655530341461835620219117304431625766841348345060617903817310895877828346830359106556644193361543485975909200488806817398409536154909394855826042796744653282929505827131720068794175136742221332658467593181458751206578807737449581656888404959089424807383520897956734331467339259585686697726904143016738225404060936123645085898524545932906851518018998102156202853890398351078926920527573691719096424959510869905983742879149238467220675001234768015259797573633281921723039952882066885099337673438902462751141164282669360869822826612712148906328723420947961980525214758916922769143128534905631749559995109636083517338513704380728431856712682508279021941615208695639237376488075315472853058772295357187777404684136354603764266032803438249555492947449994577255136050872127384273908095973611908037344939159735547834536572688218284962153711443841522883523259474979813837426006891742153201641784228678538063976478276345213921645652750554963990092844668912060056977512458410974509073053860105903894190005061356901887606418732453486967176875703940733005611349926013630895624947840587634080335910103296370057578838688941580453520838390134982448905878006019156479839025730252208894216510150312051250710008228050652918235940535341622096899900070586318459061500050218274089454693128248480877766672823163323527265247700168376474652997158910511579455417983023902231455478045855225816723459719703794450238254516673959424193856244506390186925329141228412237092126845230848447067530291177891642476236054684205137320545100793931539560994696267589765877167484888449854138420593666547268402573682741654022637992405457793341334281098694540088308576846583791894049606976067849520414226745142827521143130288874050049784829477239510542964580737021563174442856178854070439568625191132618847916583805319917783493361808279958054641961709852442412160054122832132292797410792508333806515475898605920807152883879683436674350748474394885100561247814355406343204094820440100190029281748956932688408361966856370095828003241737212890120861087124818306179095327280015646900023581895274231113077075813537096342367923242469012070857820721691114849539079354198661284882317898947222801807629274728156198358730515352902229004137978998156384194738552984110864808304488751822702868869017847848391432358434804764767035513884347364445092990260312133408065194422071685537620926519674179263658305079247847750855973762391449416937365865238373071552887397116634024798641556945491383117895008835613301281455717298237353301008724219331531294143107824324763851567005804640603847285424555471131090645679252056836219505083661853102525797708459677057615341950949418788691767186218362144181874682229329543427494987319480595260181594523617950730209172023625938259650300207352322962743542519140267377774664479878825352848289899200631959858110312756626399807373653946131513636334583107508287112817922227143887348468744685717656129108349361592319963584943670840272634099019814111245523177066738503808432295648847224609177451049493334485027908151304672262251907175747097826871479954114551045149025511616820575960491510333927909362969048551060224924774304091871249057089858496044730691672304587560527080154017815809828513535152847810606742586989282212048174241315882176238963704434402098609492137012179388386626451591023586289286711846439223646325301450166268310249381747553792899083644109578415607686845198334342946746092479294263720764293560758018551628393482930542529713864063653402765419680002812770370846302864148129102041957831448153889366000687167445507298471425201409470290728299865483033971558580495261084520264309710783570688186058818527101327462557660958405081707181815280316033234292046026707475846811894545265547112966124958523898251501385341431158329893683446599932075552663205350552913830868874066255677502990840116411142820293610464541611268424982804291051530913641072994135303283164989384549172178326751947206699791392773925083648043532791274756872791418283506437977219247877175374399528884221453975338532232550383892751780740782450629325237546623631941572424288046775466831341299596577078178012356877826881224209974951121510971758005361223535685976188246201167984970451133272033597544884679147594019312001190009823085497152575895850559732595964216780375232191900037042183156207941461828913475645506786985847897517926129105991791014554142957223088945428096356504415857342156815167164519270151974154227503395884765338160142313156786040335614810699813643602526608071891359636771941356166844773007083524072738959139305405858970199325219690095202502684514562947032849448226440413992592273254964429210741994068504476411628777620855178522452058824765028308375455115232121103980465136128140364983493006127848159330300756595676576912460499851894840937030033572415311860177981539252243530766300278160696913459388614791659012663757949736189497837041944473372887361100286353572139926354027601336445533869503082482327058790806844631729652232899270042860027414109436582481889073957866596354895681649942155674401208650877899330048551385160783647816359317691914657504075686975711239106014336456599578821676346798846301715759733924715712150136723405046570801519516837343929963395258270370035728409382743450357601637413890839235466943132881574834010582769219442533717612517557111368646772933071078963477573533512661804157932788497646448854039842758755081110000615781926282170736610972664837332557891266729088812747055977450002900180814373047660557267597454664572355573580573513986222469082594174245526810023303391877977519735360948738573628718349588821811835294604191403050748204705433993720785285670146828499138564080825810028455351809452395489987035966115549120319142588985928354657975896886505447410299772333013802695073967724885129907824135594802401302184282256496289505429165095618912306773667719947093278211644234941056672613428250139256325532133060161984569191847950371891908438924615001905694694118149531794250730923708216849385890031103052191696806127718222428478541128400949373737382990970217453607614500360958694492574639759916083379239377519162928962807432180964301148488423341292654706007965153707495288786723371717282070433557615555318841607351435167910602514478791551402840079038895583156943238134742764825971356960919006024860679486157906938256079013817421163182451469727006761652167458774399909059803328667817181959206088695941597222445671596566393369445429984366438254573673150369996789408637006596674780295802551103118473880612551517181466468611397442497704442695372371414338103126769153552836556872398888949722161716466034056885966030644431554390467317785369151227366664192781340639554384964979928527295662217855149304605871208904339708272713192204569217490529424295129423132119343493229223433776459241071471746460298057825277683826164391259916005843165562096675494826711897019758829042294968957529564087661882825830031253457821166127200939533596153796626180308181069313673134965136091335579766627102040161428562957442334698028355502364296977374472355273791562728313431455086354966710729344825592112636473459572880595635665790239884950493037373227719204380481700005491491681834970538821207536438643115513654924471494834745605408437519219866188905382159140559567790596628196157018773209078854976096985997463053526506246007623961893947338465279716445687947343092463051068631486382341284347017608662449781529976403522078789540198064725289225050475750935317435771442694106659832462751741651763963943250784832030893219936193382460736548227582515351037760702366662807037885981066349787752888275995581855361288978189103055569336498275371187560524739943762329787226924036565642431921200086505919926131433410847523938489085828285011854539873896972404047499202918189263839124000378566210358683743263931177961317519910077942501994829727041393770129389570229527302598245297600673117726390116821519335745577392053087620967865710702557251548497298951663903744515879528721621603049895862522495738031570554669762617269751006726505566938326402309125745329650761504564196733317953907986369359870378486964958513023293759576385602976039681121356243555584558223435045569259187496249149560092395263605783055065522904111419622547263479551157704349183666653219373569490586590545855971072691265721384529839987772728893783855700571298766507764991500921468140413951296399634353252291230800431759646005456097093171017158548276024260654066894496443079509197464778473683289502731508706570493270540649260311536429937955777807016729606519578666363284507453116105227895074384658793522731641876933310508543058257214775054618077386636472855555264420453890263507377455241202312736436609118950832484534581782190338061756293131218517042937880436842208203947437749319285833364554799968483369594778848368460393862954744392519478550026427694233805145509630006922369563361432130979289398613254181275499269395615702563871049281346071780286780393869799345804260902989184965713257024622273730393036593028907383296187148621129292263567781375067299483032531147769547050240256214157739957376440802624778001619862877365979373966435600107039441429553733434646646451165246652446031706155797772611573938715199207887885706105283696215591673266525891112273620404897650070265089687477739707432726668289675858069335054893997838573292778693082292378813740999474904315284119320500462011101391562212834306828863246642191090201835617094772452086613507126462416684297401981957953562559732005446235867092132659484171164166855018528618755691074611508440248548296244978245964327750748058636771407580247133534531082049853428362159236195515441008346006569946950225278906937076595348513175377048856807290770410832179412021756032226493393928043094915052183919897010580650444011429027723881209275922017933927745845934651179082917974761940088860726546204124527582615915871122394187103133821867412934319309957129233642444646457218302096519924734595573750156393337852578519840262453831537415848226852715490904518933708667827561242198661683280660036359744085392995162519564943216838369396068747027035156809957285876930209766266277397276036380771536766058234718999455170660309202633596268691177016984381000244020405517183051681222088485389049797141625740828080968434466360705830885209686205043483419847597655232161318321953978873655897897950875243289732035140350512108041292475885897308917108534223102158229392042365174868517973322425344623395162627880629070415901275087937217391943447742967569901658288481609296982283242027301678174516151773703419115668050945791916439652246169697292953307664332005721984076645342748820894011450297392741630647194994699222367453760386967923869937620193660503884158150054757841595410674441852828588963094839164601700582810538112695222544782229392522198160091458962545598833681723797412531013657997363731996387379775825846880271598292360727339286868690385078877564855484323376733119339256699566613652643839879686566106678301836354021250359672150023846676429988318545580395737701170523018078721822328627153425301316616238660701398477311754594269371186437573402405320929801456009074249144363495555794463172670390747612361605955850662481497561441574430111292883613622223307123946375197267194749340464007759078699230197544290629435511915499763285911158575959046628290549934797113766380589969589276493687787500377748775966841432872413312185598795015612012754900224713422791327384050905225119539726645345700985714029772040795728225737126002361636555687988919893981209966438390853814407117869998970271788036516832950124403216074386036170900725901951966274729317734373579610119498279751066689535543185345302752000120102911208675157806475508295966577638464391622405456739110063131765256748988356141190584379120423237660429177053733827910673196663136715491407687720728836193530809855417234749691637280676542546251089073279044826019191210255439759906123983490670323630552426906467755585816007019660071538972327158815982553644218521678992952781033846246897235540862870792606201852560933791124554939408789710202822882697470403457469807406079473857320695639884904256939323752840946791140830189162033058207731650871745990568046140236880581818691163956287851245210659044885759052447514362274949413054779565537717170831699669663107763937326946513134586352651102115062028771574916327833962702063051746374068105342406745093528789667163611080277090397877273866879174057117627198759665935935675709546640058044987972306845899930785222467565199285640380739690925793946873097381032418586493685668074024949643373622902071873782815997512219685834622380661140582384806192079155754586420441031737875022537539535252759053598135451809439399089173480344159909454143477705442203021575142659034738423033133838835323214273739557696755582672435228601219345841943496532342645951922484541463966670877385720252484920026958100366835210376525074587941653129440553610597209603266946015824865696808720321904207436671026859073800360567832674465998810902846201856649639695057395019879008980579047666726127999013098290974870739987854540802643499835234142624273576608097050051696749063278863153127938763819135256019485717269635473819710312401819727441946723472277214062400085397912853544661520357531733264924935594813026653372160764719396697733039409939338722311833139638891841414565105517553859309315722681747174838937347067281175675209780887616243959201326601335855595206167061680675729895138610290991054452251874967167575229759204772803687362656004679475956699112515720157790856310494456443405346657938648923564111019028187900441023275916682557144344136287438487086054886742917438563838635092934228851171947522108019501657280921363614116955815703665339434048602462780292443863056749583046977542390709615726094865073342974043936197403706277199298122498429993553581770428352595607921866664916836546029277228078021815144129149189949874611672621390161866435227469051967591147149865919530670093525765516565439889200403304577518449138893621959093431768321802790178662208890056763867284884554035003626067673003554214331880714611045603142731559434340574680614611039630387124237174434001599748434431631770969214614739511134488954938703286090172074520813795012997793118321653650873939828142600228404427419714759717382756798275203293563216226178687134564698516228552361755250921678007291793199267737796668770709207978574968491822996848824544020498239385263932172239485731223269134562183325186904328195160430948470782061383359119756465928762158569902385378212902903853612441345721253945670094134406576030608997250290781298301598118602610279464789108035804328536884303831133628920379524649803261274636694577721559874462361915560101254779033298358292071297254121189966850283818825961987281825334941324043538086548655503838496980771542462617225418866657170440132562010019144277026314716310518521549393211299429528092760207723756005539287728286464680797911207614961638799612456331484586559077585040544602358755390299867376375604799034623201737852685206135080977479110111321119835144667517409150507695604715100565426458041713785713794894013926323564858801670931925755178839855237696867433371752750151252067096683657025859173054775267628234286060964215930428871088066327023607253069156825553600885422771332448117681123325332441152777154231185768158248213371585434011858830576181114624238371700163286044346918887944110435209452293937233758364447269631734576782148542506513754735124072640427953415370211949924307091246633787641119722232175037104574869479293294907527835220023533187116779564889317740349335982784016958197013363221572344666961898977235276813612680178606616309421836297652255123611244242453267491815047261602746126419369268930534172921553364048521365953360023661569756889954089636420186153833052368469349651601757424611433774955538297693750688504328157959919759139178128023981562540593436751976099118282607027020125875154135743342826175957595275620041633263480233824407476929627778108565406889390617997798431720688145537545899235553671772646212122580865282720423743152160703960343843985496945711603928804203402402595132061387262410378226283649326614580747708067639746641414842834364987697191566496835038523032925901938529144350798115284611287915181177570733594022124855602082560742336755382729487306912768038606216015025613429636941381827225784019798310977324909477522374031405931294369201025091882840728102078248541043686007219544941179287794407698017351239318515091732505852339000325472859393356254809580940695836583095488056342548580838782786270329577342087821546400613413922199886768290972917532531641192376343342094053614224763555996951886934916379099431344825488084091059748436107582499364208318853620064403741798708266700637755567234922147908290628439447293731496714584944170985650343756135605461639375243795479449223702950243129666334211599002353550371086671827974000671525200279364527506747629367293781771065361150835028855779628455162900163579628376410914610855138599727519489220602630682212406328999056465659073171291173931278197127033611427507750648052423398563887488228899831348088625532186214002557869650395894308610376533691167166810880514670128354676508746102524537930640729463998750744086870618737097374558755605297027934296633648158712951682887172901967086316697786422639349016021559401340430528419479162648327763287759486604932013367548893184591833355107246440000308660004080759374672082749344456564853592968068251506158184142827070319478474394526010185031722609535203321685186273878744270412218464360272731065839932400977397361400825054208225380629420931568367275016397708728227606503747818674533963842416961723675789916181673177345460323298933290879150554229807642216552788528131921524058565971905832971253723450332184283006044835077894848395292284861953758141188602729391648908375852710753086334301512987454079367107582510021680930604244003898289954755014843155798451518485793560620148493054904355027237760882887499026910567207065108392957783520439235137681371706122061714787785414655811540439197201404181031836376798633817691636387702451299881639624758994920110428597316411640826593366360193154458879201424580553856589643299934359586609204018194347488826973576174477112419475713771185150345359932134681578509841395342366403153404490946729699831151720661156135703382830014242327764659056731962993445036993466786557586143145664391294801769710782144670743642258565672934415428372446618706031810224715063267727705305765505565936019879111591843842522487100251556212513954921774159630950632869529113084577857162984588533852758224210739691500211402553850775300219632350747244188814479175070807801962540994700892793750771371497948608059932514547102396595426061596378897874179984481775550779716627335618037282690117607564754031496306960807434958803770219283562365762302540977724440580243409788593918385886515654835875501216351262958068126635070082909454993150460676246857559080054906277757907020224869688366761675703402593948365984214667036826353541171985753144675155867409530484039710033427416041630520087213671344066949827996933309015328969348720254976458234152937953639524600730383570856556694564350657659178028430977929880282316635262416826068783607433415213439504153262204092353970799025425298356288606327529216029870744835433558946895352079623851312575593224829189781000606111614056091900067463413436382218431608544693842572577399032016779069385759680403504735312036871342072718366061317521374497328743382811122003797000182015315818045073062705453651309410068764546501135027463897408228015845386051880734025708311624162684763755527658556180755544876686375982307805488206568020788883342413192386242547092299459636259243995594901985220234502615885951694536734898775180758820104978606558194848496535004941981786207712831935934011919703726083863030159887682531379342455164068962879499989069069396302342339821528243432618862597669102260040743861332034443163498506331622531867321986389061747233914470605331483135641808057006786103016105095615020090390376928526013706317645118191044046635082838991661690479183841655110035190911672869608315883208608116016480693217058801186677844400951701375897704565784850097989170070199348984291704708700334131414207632053805370632352875563808562409721905760793207968404198040942432173034978406703673640235483346208796739332581610143590066999927356041410781216816874598280345580096682474748098825260001356072392252810564836132372012805398796916704229534961711873058444025485770295346289097268848189901674724369948222312155127130804300396877400531178435674057243078904130951493755691968536292072848922948308464943233466130498502516915467775935162391506435400916693651448344948671859953114379204886695463286745997032920785863688691241406987471109559514066433774358729456976071801017827472701480612764403361482002613491945813425624197981296844663445333090077037394868956302173021226077650701645974651752693592371138257131198268907491965953707227322212066451156714216610942560962368538630080670006228502840998273501244249869542950909572617162626899650933255866344823225135342715748043348725191059855763326637139751590831968313277990804955158073082773119721996246635468317978486450691308676855397811910379249629361846916171365950672927383121358671349568010418855481110436130057911979110775869872862494213887556192689580039567204207150493213216728335852764279115546954293998797754613675044120056970649636341804221469639260616216673714239786105338509052814641023328698477612747403074746296899791243393882209886455943530951576800375600497301845285388255673298570819589397953636214476784890608224166023042000116453865523627003736586062783024634490997817827807833113796810771794252913924776171871916854580060060622887531139364990063900874534775940439484719570852801681790433046464497675890941898091267753619620647039142680042293691572305723414917367291312770190656922919896304512507671562801742488038086340301997325849183755978541241903327081842569166715392384224125738514788672935758861206910065094935734404399381691193562681688404908453336511945556641145166884307152512453484757019395470505739722690985260761083706377115155051263975512976043508520963341251525532830361991656210164352126056549224065574147406892099286125875555680088907207795255705249710690586456614226704199737892078659401395515488550302188865730174160995328565353080294265655405899810087423702735788485471202089060369363232387908117220406378396570733381150807053931145217180569852842532069675097989420058035864204058077552352397538477804840328934083167294498071698508169867115853529183990873718132403802672357519093931648203719225231809083896183984641429254684455061764667579586857181638744525744797929983267717580607828954971606081235976571701204104380502374038919433446568006075272828173187709486527927361070791777364484593938003533292170923137604430691992220547147288303128415953545593920576703217128070763845399493408512433034830456983033130184718945732556105263154494366844674603794922820815958796455580479993242167682887291823981946199815281584998716711169716097414511602085835004929264233836663635447730057210662075669909962382555786626367374952242965297356002208721883707601595598565068025056249325789336258945567311637389777343483825423429903087170696726398903544639085707296667898926444956778505957047674181593791377595730800301338205108487130861185032609464498982100791845064237163649275006897281928933551069717154844380791702129183946747138210173484751757616648844987399620461576402759748368310452531060965072802879639975302284245123894223351217180950460590029652625638270867028824301923906893438216697515789108834578430101761763966279375040109303239012518203140210069672546346519224229754531213183525367190641538038416799249865075035309705193449397988726725672393845772542109415121112775941380241837281314913846920708742033666467327595083997135339262031027219056924236687723269784150013566817996865468812680881266104730255129682399548464302869526355757216987889736622092899937175901760560165921483534445572386821588890383957865401427344681194704430344034073315717655472379837677743500535675252213515744279486393033388519291650565644508772163516343128645162387631924502785619434998010754328027416211167193194722523375997224491159194383784077971792173806462016503662900204913641776202052403072586837829223500513679758669026167576123394546556412365629777000206503987683442293606810681474652608591477867969792655113075983195482597593203531588509663751371973558323510799823397959731261722090191999182157158895208420620465767456760698641563747500931025527628963832084488358947494016200515480212838964354799026493072748532714624632790034549228427192215665801456958057988705621235081250661517140258780773317266128893662022782029475562052411712276094240531796624765472249328776982922981723828781661505892016551909110167174965440375092842694846927968067229552090975996439643491885444538867672167913111112817746827241072631826058373699333952954449451007693100438687572978777688261259690729114371685793515095768668069445589282298142233437321297453667567616252795812754776497906301138374110827965513619126099160781955663815557031451517043488252272708453563784537336841703171826016282225807826811785291433466348008829636835732396208309946519349678551915286611662129551362417806187537427442566187810915031075016285089125940454617795063659664091304560171346724909133292792082924650534550489284330185325131181336196717997151374669314476986689544438906285825988415839323778666305016348084763661185991915295121542338392908674660690759468897908043575370694960223204662678049998335393454842689698558382103992506838634400026848714248647594755963737760538226892175279429955118963596463785989444300819480361678903714103437329598775589149078466041282226031091004189135843110841499472369400381083628012409513234404678083822056019047709895980975572630930644583823113206191024047320594950980695156873565983727070004228503411968268799083514777102176119021739607509061781881123437298447231831386545751190459640054592614575385666966585880170279744577291542706598707458782734193036475148458370051459655845311994820756838243608305818316110271622857060731763866406019661639933817383712822453459673793229394659772701392854609950131971783672089464423746409911114757399366006155212932655972124381880569182927895933515274601982284674215814700076648262781631304415649615692682794365110625866244713507975195112423577032190545782307547005688366088997364080377968735859722369486888184815824787574592118089130970572228179671082173882547596929920182421912460531886093591056771839886959584775834931169650743280077601802532955493899821180502953300127266901412418912294837679574264181549956925433746291211275813203145738823322718633646853052093533248901934678115106849630910860582727057373679289515505205872375292704242266920760102897933123485949012539032331029026083067651009039224164826031848990863909383378641286692557078886446115761087523795124393576272368956680529874405829940945241311966831241975782397797499012148085819229287753476313618830345763241683078402096254167787786705098548472437419774351545166065775303375386191907158830125617813272398609637270232379579208123668314847545247419062573857482168998114785273527908277154720499319576187425765955572537766809078469298314565937043868442629596745611032414231158146914773890991085117462657723109479316572709528816561587737255691094032637335396763625502447589650539941699266126506169713165627815773268440044324731496215373438506904679797509808313408627579773122654189596454669532461861551165365979397944192957981382586761724148370937777232231745834998308147146630445897328857974031824337797737670889810292572026477409550585256714274720444340759988298184430247968504972942159406345602836861387241112995658125392084203847337604692189846480733009027185670879658867261896016511865163465951398711850389633968601818065159593952629516175694784312927934507139519822208758875294902326114472715363527236722013877400698467072857399793719271206541716613037214066218515208381550024829959670631168903727101939704389333471266434666154117530905237061233387049202637274090235798895351074955790766517228437323509776878903348447165645403328769981720668642957478794738250816556069259442885468773845770520025127554167751753559876690814469437812882538861494032782280410923345053500339602022126819233363837854559654263261829007591572908477428126497347730660086248232404180414597592204649296764649348733768229074317115541102801849941348321548423451224279298736475725474099232302414591595366996862994573028748898947065038795136327382948273713439290015605636351259315435068681025336685628070406193662943153959189802983772502413112919211641114487863612601180132902762019325902047061619379097803779602307284655779972244537921695974656936548327375189523742150026240075336624822396285408460410336034000510695578420785692151109292505976232086509704735289282152050207063106398287384315774232709875752102647526500740767030174871648629123828419300383941530503357590552153790634178585515917902224108303786039451323083305626955023123238661958985551648152473536037302143692642349185242395118678444522281019165377269820227762894260391913038746099744721800019608000323500753605864294337898126986020128609679224229498801195926381444847421298098157535070192817459579937667948406004338078198413692113215741892050219669842061558435021870656766651310158287370364968367713263299283087548425849247504811805770103293213228964126870296458472468556513937562653247546620664823864743020581147945138868919084486040271513065739832757876683519123295405142166127685162836048687783122356946090450327745353935415125282136278675471707930451906198370359795263251366588233881281910413169103337684339229673400266271746820460438969542325019137032273233273765127149203662620607805758629407507125715702834182154812080276494140032130538479314133145905512727997797302637807871443230538253161970923133574133726473767165092278023146127818082007732353107352158207963355185807753480885113164159163503526907088465009796591309885592048705727141605203669912179505014513607686370841861662889539868704977820193551383548921331463435500700892841810989950961517136838831189746623045672965635449938981629427474343955757756217493660078506499662502220375727564757766364161560923611992331204905279704865218567606207097066723912658011466735835273262712487083449158329127140913418892754448273136487517038203475868902501005109914727540140562763483260420115905395157315272019923322991090232139590533726554282461566149932362280594253404828459201474761319186578344482452219133130316774858294633048904225971027376825840427610119267569783695630570707441976003163453646439348203076760753891235252140346401554210938282180497995255881482653472293746951231173483795114892040096916525723995790344108347252228139941989105677409859096607548410817108459092108111387408373629266374060684880506859307508032474148601396206699211730506262869592517197363008166108827708316683413562127331102397392158518517182756737563190442271712944135713298076827571518704145041895926989546871626579177928051864050018704554450142377115194209574747929394167508718574442238236057006046844435478758161355117517466532778730665416958807104906360410614348284316930778765035349414524159135948169403290593000075493314876899166490648209960509872044408231505850649419536958582630754719546452193372442723160623244150458883480158579770872566089682182117324280680048650641915997216335238928185177285549846332216851090363706309411294530840324467099308602917197723031188847744836551462180240362037172349681580495131590273572653414718677023683782844750856864955843820435900372828344167147477486427882268975306451218238212349343759755894719880654648161934214433639886554878513512937541475755957592411468803272649776108610391693948916988868177330888188093835684567386931909120582964504966521103578509841916976339236237085083991271766785517300638773532153623479857053042354238681140746748751902089264314377760053026855409245312077073518357480489217849545494001486734964020935362847820846388577909483359051559631153220382646930392912340164289971558618635036542089705977696039463159348181822308923426080979629992620340703967243033431540875647217501489456528625435058667862927574188755631033549097985571453952009290027353777388712062886951431412183754062083873608994462064535875592214400007476994883707294320854564122374223646701690434361028394468785423934487824804388190241345672670414295775420003634702434646594025654037891763253307030508855020989903885053022059691329365957160953740643498396354589025870167492639000033503792021233249953007341087035984547895883492730622864476086450086264182251478498164404913821310984685919186886061727043067907595795888424219517171992089537856206280127086424570749203384188745518910260657768325825750581025771216728936847214019929580838082282787587316293073305928999830587517135918299781000219993359488111629913227003228677919770575495040197915401160840032160287252465832615643759837845606415813761132230932333863020588257491755688301400529282295528392290484274508639707065850816924656174808009766847146582528763589474458172565324157849304522137420918604866102140573473529560584238712423444394108245937781479624894521694066726524068251551713017336672107528739769682196698972635859953082603832724067899316848863939806575178653133347794141607221676663822471976352966146948243711851431013207145787886838989893009603328631702024902143126839936457280710966219005071127893837612861713056138046164105624319496314004988898868066281486889187421157382666752114739471894136270393483125371241618493615836935629531651110772104668474543863649987349955744698115520340495729669250547685681920046578787803527736545867178113742634303128589971626896716202458918198702326877938875780072309723297793691031636738643421651303360122586833945851977197282694356747254485437086789226755012740371508717798018267887357558029088958726859109018606988404800767289977502928905094586250991396491347987759487316589643297381414300168658342412739844160624519029575609782324115755258718925074067168201580852660616215962005940652599533128980433676529650941679023073563393596544929425188854264950166156632692462590721482714654037665868198293134021017524550277281599801782352571852817614310546700763367472157022769974552189254962168005325742538876115461951236527558523826787890369687239586373610681707314708205043349369005010532353209280618575594820662866097940525547106731815566852206459218954637158312051077085152264788050253282144532276576293263179923344890952371240941050002574731954816508901853567092663897974512223469507674500470667707530677524445084103735966755550241113746554957288734114327211882315977570764823373160466982004828682322907838039464793422017176082829802367886955209719839075819964056053089742802707871317023719215249887472739800620867081461331803185922629872370171839520857287900513919548539738512066748171972180488909278525539604157297855684804448879065031597359396214670229500872073738422598536051819879532179463145102992490888803416987907346787123399870124185868285682473924470721238900167618668985938771455809787550440712644982840054693354197095527168866548547338596435030403143423054939426075078823110869421092866131138355708313853162394045710984589526789241369001871702554184278901885393988202004547850401005521670265547356385446236646472794553255414595934116965429683641901111074079080660709760204211531162668548339141862931854252028845417043007665798021212829721852198129843756682593687840170248259236673420674315133653340383106165818624472361078810319054981173490209737247457275254525281255494004331504897331229885729128637822941291649102264181574521440205565426264115055033045464290657380484515543654962844333203382858656100180183631824365983585033552508967977792843243262654084757944574780936766966111673939746406518130056661242093758002869662418516573489142760267896626037503232027055644601348399812594198626479344901232089755939059185100391614377946012950718973774356246058526143549757030772421851745582571769508998519587840080221978959519283209083964129510581288940945340353732427877960519237163153812481917106019277470735317369943081508317192201438389111131537345532174565304394623928695703461465613871191899253928208991687125370436976997535284306474009387019633820710991846724294054406469434174429617378384203809888762303182910821529877807844022556866683088005805409800519643312492813758664521156087496617661356155682191907434849232295081683104029017993386102502290205875861147324227208926052766742113236952181759865622971071394910062115909436983850972270044166597288850009442879805226193701677529629707365175286162541252513232628510511450889929792958723402734195434819937366243383707733339102421841293619654134933726261243304044078834265182238914555426172233857413790421301431372607133765869149831411121232448244075690390983607287704293182177715244646524853729164164283657065367881120790950616846005705320033380408423174031876642231920779479064850586032384397976663858179067317802593480974736148415146564159415112978721240915388320966650533948641961867918725824276602420220085873053947253843275530786633115537904622032507963573556313074578026786600450143090695682198126795371127795531064450366708814665852419708122761269919839161962964642743204739984278306950047507632270763692410033177648075193355036215925834340598568711525277264498957391428919069025781595356313773833111934999685305230496554020715213178956743322349498946203851708912905174816377578225503739804342593919748160377222611610177155354982554133913530952685866376765814074839127956429145730763972738959336008526872791116771113606602775502155066481195481439702002528199928308532545862410236187371634480674757977039121585951218901880506023519861067685847477436733400588447911687338943154319851625633487250388183005799951291364670982084161693876237910940904465615262244211109945212703814068070829276423244289301266628709912385904946335843486027834664274801679426491667185352965775086940725699955465340323916555071297836002886343782931933089472313960401950435383689771828986795108057838147182910275333648218345915402402118320248956365625136854324505099820330946726944645261560329528440286062524321278866799194583207606251922215178943933758269190805717418887359723599883364818437842485145679078231317786372769116340624852925804219166536414876695017644661693492134481815606333884052439280090400658824842185740807439874647840330197496782143004549350594276624393423719798157171794065851956501195632336968607068275134631847536523414437877748375195571410689273269905253931940257694726020365744941506383057040629105069099503033302547048191769874315539237471326025278863403650210655681642944751803877038432999132287657266008889299716898939421370054893584083867795962755200435563602341833998130158453622768141102227664635365072021758863604724464762682811485717227922283275091097804207992370796097621253959384173280143359854655396469903278899563606465963392378378725199869073325669575729373219691233757297120612137295855011805872733358109642288720989096222276161461072526981112123692562010757569479898149464932435380622600679050390813727473910103205503617093367368676439970842983948607092167889604398769977991693018874771245139236707761494219615920711667928666594517257390219485338919940792457478653158667133093631375215103372631378894264578323891478501676351699614469034583541580476484491706710043251572083924429589327574120242678249645764596409449985355107191883735419639818616205396489004507771261116358530648675295355099704122512142098060571207076475480886919059979813694310432359187666339521796514633806640133615443485969971588343867227274306496387682975921511714042408525615603756099447725973463100504504526226704964975991265739542765374861486978807123529309964982659954290323291240947900750286921415461958509458703875788540358617351959830994417502733972705751812085960755275317842581504676536870746247582342066005711323010728921955488407870442967792163049194823304552485963633507435164600888405686643191486769927064452163274341398611220350050152057118446500362568565824019793164266670949106050287068556239362778503410492898284307587500949099389270278599953603671853897175053676942623124047974394604667244872655946461559582674995859201417799582815584748086968631678717443071237111217064335607453342744496291088857199363547648074003520035979676482155511394725413500818295755247830659842509374090487470441438703975823383461960053822469643423528729957031020704295611448127434379124264911787379304382792073067229644954568775713828866881609882894397028571995207571350958352353898637886150556962531975933302081818663507227133193713204689786269424632708415089529684121836859462536620543485487135676135430276305592925549988365733319565283065310437546339628906539878868898075262914549955164361184051735329292511102949488532715315908128597860793435401656629176227216191839722915780666640874578827547599898511064144537940531664702005160900317558249569985933181618165103166888807663092223932624622578131492726387851352240467970459301290690490218816936289660572856965135794679381879661679605876743518941513902717478046039926925990500461498995096186167254596338832299572709024335457958166132082390525702409365884501749445550826910528797081855524367181521432006556019243311779274824703104318948534199462012248273148625789014672712540338872953660863961498428729097461335028242581979655109771786611573752865234171880861269873832191092121759938689463412866013477773198550586232765212590902256035376882318835702889714003131615547598922634645527332319901709604572469754966362076332999246951455724180144444822705418009919526375180714698928168255447222313647185402064711592739364578808203163891942442213720984700379507330182768642182560111352111901705547140594989341010646605544962637678121796355245373374250415727116212056186796504405508186804488020253194890568060309955117190115708712287767824574168077695751144276792436084976432623165753033811992367413212828726120625457408069145970762177343669214187837088678052662975219894207371561062289643299032418363443931582712560320169111578355077106744275267412113873105038382020959636037297280573852564750211089226876680086098381777364756662163167275105849030655812552468986974011434358830076791655798307846549244498547682045839498197131119363836033005411107111413160205079161262145995438450808886739808973148979736584061546939448149946136909946266315265032764578575447473540770917332967791200616892895619976092498281940827625153603355829429199968558918472564087107511340262939061330871309904341193134214736943595276570524510993218894592720214967405172522924008276345433976089917175201207657584951450606644796456816436111022535293237748864851193377456381884952007956404086266703593853823227227913274787383270735380208371327829947723362254866682624232585316472854365509373999425624103914525973807648531570132749006264723008181998511741228170559671572322952213303287569562577109826199373561799874802348757695218935293006263890400955259106437615055190586493577986317039642187326401216209250106280362427213276506532898030081378846339217997762398225902063892291914975862153458068197703503599583868436506137600598110402997142611581430072024437570664828932659818952939220092476233451951528835255374622393820874427818381402062668256150420575553525857930360336546785981143265726361418993045138524994288797205821021155231273539638282635403702586210927952075372428773697781281299391319140469854600260049851856503813825330796103000008412050424075393136285604333771324293653668585423409094339377256844555910843233411107249747534419163662708982453341548741052687925643845627353615475398434975883600310404936433170224569408625301959265949879167128113610742475815326966174338488157629284696665836563848116617557638952125662350351272318620788008245731892101489165035074612542000536503802907848491456820526941670027878281808368057294705787753129789018468863812810980872250904823929374098515782191065839218794346204615914925901381646855911763778430886160900702939408320012004369378134016231185318144819611638763025921653209328119545996732429239898343797872693531012022626117440538040527706828036747612468177909595354559106905434344700414234150658348521682513452304442080353205334028790038869105438335270631884872744822100721165625047447450038885410931367948344352667372930384654248411309811085183976495172477651088908165914068866496609335673352899402744583024871764426490656074813822040094339616189831353978945555737465919202455548176658680236590934351903123146357747251742893481231647547298013509505156543598183324076735979241612679101611259036085714609458033815534735331901919682912512571252209361175974377487620915715326709274186783258877000035097408064205997763343106467596111463780647893365113704775693166530613166804897459710944456471438081487247823545147949873045872396977472368093567107599910982805746397203096929538873292234311533470238740643146044633454521188930441509654863967606453138210073433542664672569100205195618770425455848128333888042375909383215137437789050782431658340283741173775529315232059428472832473920951455059703395581703490281602343623646601257922569620029213682738891952488136625290602389717420937593610134042734924754305074014391607436842264037209035489434541004223336321513636342506189067689558494319903709619189190294757853275061925704075186427002145123613383768186049996310110504844018815479300143362000334710189518181739890594591338365680640811560297633474652913482145225254050252620816185045223814049699554738555478094083799820521717826016852056857381740288724770380339384323349295377103148685799419702382845041132029198561446449847872843323771574156026149939789324925730136456194244976296863862962197308841086750776234097835611140263989522950063340719786740465440422350882200546281290374955651261775041906960106084597322892864690164020256775287363386198173411562973824568779543125676203265008250935702332858838315411509799689463579850256857397091224507552055019500399400798254928589241088260783492467055424446524676391923214058239757523803625133766796456330011174288486642490909936602596295545781023604896087114498654168895205671235422870462259717755623609936507769683471549250445264565957771058968005266826048946350133324118430865259238154463113454996037987249809789367869296088124016626917030445758374768909536459899451040398699071000478145517626231832212820741972136485688726641408374274903798921294343696543411428499307634802488513678722878065324295755204500434368569881529821873744030945589621291052076776910774187570323385672196291855715341427945974253077451331780693532968934839841102393134884249057804880817895992363819508072949329845640389388355776647808459510025339429684974527773456611118078984168031488451617123739967178151645326570856390772940491375999640897404882442115912427558849071074144542461259713713473591137543590162453713189941542696114072310900187351005145471077359746169343663305254752924236845794004649458670405104385644967178765937000314357461088500715824183192960747400648513431979126678854966785338327497559038122751656444563953124244426240027545298783314482774990172990715592198659373187418248029928109212020639857608497712498726323426064725340484265454571975157495626386104174764151907270500071516873801748872009419003734982991210540433349654000676405687893886006732186764555806718878729007597752787346789383039397902319972890121793093558803935958595422472306330305936455516902757130623141645379650330542577146651288002388446888951446718638036485137736325176103450252430195343911846023224953280381553006917430062774087516710797772420171428565661242229035852426675622248775876772494058792753393981165946612447213071020227616231757827823062014801603944244081667623650449464020487049298623428958409706947521590757619322719571437790794924734660238562000907357465638580738838498914958067178386743063582100813178697318287372127876903820027829448578181880356390646468628306340416651099998113495076240528957957855697069596408099139787000525262472753812589589947038992796436801610561225626554364973504074636834829956665683577366261543426863583391273793587759935927566599431830345902749392709881858294085801412905046433770246721592291131651724110612264595280562271818090757122557435449845346272964663478644674476560022751906228684204896207103032019492748924374706092362378003105400188283549903332200169711790562761145290546476891711867451479604817206398384561889023486625483221911074738200050626494637287360356034363858241303956953465926995285811960016701897451649019745285240531966423345007484930105578267910019291334628383399818176187894263797916160859072268567992004017974429934903467791200279314504485221320310044824748353605447686032986357212268361136291717493356527976418380220360351821547610863740387358657939337158415556380802547753710162346227339725769285620857994268340757501259751046796194367047121315439028367918047814774407663516481082073231712625075887375342000973531444097260804777020687529067625459818995910708706302386064624029996182463594300717616832560794239273391131780685140434545670173441023333970238282454965652848379549726485578402132882561538567256921503297911065110842272932277621960441445498794516950643951093050702642156540201622253621044789417501966053947312703442781596031047307765404280797609635534960805605202189774651045279199165877376637014112145911593011357147062932583282687598433552998252452873168217419647772910976526336124380903923403010911701311507875613240927667580982947224495275092458643221454785723360344127359554221812534580269005508475246029266105847651998976039932135434574624761432399694426722569292783753596943426381394466824689823166055936112154170209976057633507252649275888532360185341643859681864852698919426303880925545487912891843476949926858535602019598167521878032168026509243413509652694533627270621439321809772939226007302141680041412528494764474177779723306115083026688020622073617532218117719838189562528523021799204809602926525232294954332109926929984389792238251805201242101357754514946641355345973393726273037278925820267544439460561789468255342788523511286373955700871338324254894970822220915304561127723998042688540378441363404886314304470450579497506312966745466343344975042881197074419804624605289706755778005900785705306796591795912649405820703605626678124085649890951155436854020040101188612644404743180202665118373487888873656801882460683866204407070788786774284873281734273145746655841734374711283202710114816326373649453618941480730303163498702686349106481701933177192686653395859925908575286327355236374715955632928143396577337244363731635371852282740426381004684470461013295155210547780071506233559655906657470452271539514712279477917917886479804478156710155643965673052614840507607328426899090152285692040379584463046093940362612910518099603917659422026655831375351638478395900069208608279294299802891209813071725964926324280306712058128224373291395329496856418745590593160042547107328512777505901765583540816054792705827468390003008464564775193346492543618291169713560238369330694074567166255514609078432928895705473356469202939519042310654929109337736802635495844125329737250147769065337756705642041329515864278266559057813746649447580385424065975625958152022226990065623541580337701841199422096525440233093707493366960282902262752716033237561153337487148670761516369668378282390906293299006237943195077114401299460643413548561804053717438463779798044574435668518171077088995500802565769564221508864558218346985783017528544385086620422830362610166385518562920405241564332161368771066925555771645045818094099510755226247997559602688603571205449413159245806744048424015644471905115734295354535604658414531413523136192356952438400953386072533934816548479322788116633583752334492723493066600966416911386293759992729044463478408261149592958633605345087392488847985892677398533839599628203682342700135876537282277398999612739743412056183671143981913542730034181422772085874813341428231424671938327463054280211540380851516409297435690136553910475359512298431216646900118390408263133839311343228554671443391038318296603502965514040545827969757304466667414102454241069082278954040520012028194904199033298325757505816204993960536088550524050956671136337030170013710724530504539717920592168331088844180129172774009614939381114417363095515752643308278543506256190840521588773488630076068546402868288101916627476690855599153347439676956620859315714557578985985107255533730345958169940151098090889951261989992057217117753650084787600808287413628935992037592726867948041457786424159355600013488565780129504467617498981110255827258266442787725877140615527060396299462006423256062688418678429542881490370094199347672109228952356973884145792233279755542076335397480964206345709582477039693805498647509978220436078189668127121561337674288915666988229545512327963856826148823471086637141673349032810213970760442714305212365974611609079161540495123241503903504398256851365239571671846800699468299128735464209434554044624360061289944716635532949346706516315331747371423955105901754255578586049975507833069207990018842261441235089425264582048659201167036584622842626998927080985320225085411242364795181274902963392948011521013898795498618731617495902147678989598894898715216820171618068280349941866074817023902822689945691694102475129170349847312178841824869209665858213758361344696163617063227636931882848042561920907590827824410815398000974182344574765271489893797171772398248273031326565193770882594231942943962123153440876183542842400551529189592254573433782357782789972662023038854920363333310497517277650192303692316627454433857718152230584580838599693224878890208162260140188668692976049923200487979118862405728881830623610699609999006987653665167082715213652548013798936801734245015704850483855382827247258042591813738641298736360677137886579636755592674658145147009225875758137757348269152136393756323865953642248146845070090211499475764291729707168926123654610840977250014750491772759955656546139978671780544532262110665750623818676552395668590038827442999559190154144663716565236800315455040758810221796293307049511873854171034107328775129105245096817244712118452538323781165628746789187620358694764304623815903099365781742006408822484878734625302048741308578774710718901628453850463259637785445569349209152495273442091938618402234873378088222889017085547059044072260618602749470982533550479641769956618606179666811586237460232752069311636383242335547994827790505121179204643029898569056178983176713391862315472733508133338117801212750374212502761877100206698957667083851425137257307178791158919325252453513121955441093245894146844849376936640008798623412673774487990518709533966987906599872819667063455299277085328550542578780983618870751475990115511510416602304687325233501782291756224330461782028758137465956217871136364510516154785563399156307505423351571142402898360225067243597412036402664143412064057399391613595530466002856231146980649017604719062913843882800428722251406277608905530604693608844190080893679508001412495092659236901221474486566594627122690994796802863137450128426389867064986899354643162202922527872228803722406501947017302497402588255824617397394686312285452712889688786465489775352430590920316849472566210218885598249443126880375043218110545668131868523401893762791563794176083597161740180540262781934927314922260940163386194784924720012991619985122153677812100508738998410692441743407940471714352532529056067205801094785207162338598480578172016584188845317001341149374874022470465016875873827709411891851755692607837255745464333514539784751087568394353200321231733020919670793413651322108627676213598665391514865356192530528531996194184935691270047283941160191574496566955419244229831723133245401785607945850069459444962548113989060194050518251291557123297235445988047850926402409912693902907465596107211845239349193284870447779337235401742499396849319168026256992940328348448445390488106858597911615003186125071494650250150554212923443134242486650343201752964738262700460075545616086859622500156944944601372393404485605173313245411507457834408335486157189056361551103252598287808018578306372269996020767593512756916048519575219008989001839134093906338976138116581057963549230794092151595599566349565322124873071721066148270412835303980741995833669860334577973794224619402718236298194281217102379602116196007765719126305217972451002931203022848332262568656966754217381322990575002366093931043485268690876591880169555986159029211605751056638076217172588376528316970464344279683903548333120659843882873616282768077511265371547842074875994139593980288426624509841150605680561013740270290838956272479169862576396021164207811348636387683251032259212394656133687481725524668922094427753886709951681747627152291913463739483513549648075250197960486780558171175481177801687784091129671764458092885085248682763113462223746148547373416642355288599531858997691581899243258415829663747088699134314081102520763394887327594341324470600645022180779908717495273875792006466833502340203384149855774930775907943269352495520792457360235044790325840002424895745099144668741476590080574879165047855822891768173371592213176451782016686792175391022759823998833536084236820196011992366772816229437732048808648197882713708043517004788156012748468554586077181312864111135369341049751267124601808594479620413074679602369420843418566170422595979241636611921756624482909852592144064418208236286496840015026077147987444689151439889763723990222481546433301447881804212731772359952861353972568428805240809914244086974054271471993332125131512621144995817079163230158054786865988155045378638665127197640628797099163622813881513691330335280476850573621668346680982145052632617954059110474341936438437785779385873721722040170758251709614419417870955669834489675303121730888631210231669314769051452664337849995592121349083941009195902768019292055400319089755000964809919766182165538656487945424853320332398579430345999818066228537151725538594042362745266160657239922438961320810420785023032534825231381516963550716256909751339698457124012958306429827482246361193903455217566224763255832711224916497794890455763181711257312573154973391787035239315175728576233183821015841253216246952921886244040303961378036327677794616991701719369102811873616137374619733349334998149925432918500382242657805161258967815664661702305352794934548911171852103209889072682367900148572004557608078964919120289732906230146689180423008632761978274531945180400567447622812780014023151117616246702440825615998494626503736968351417198143145705638765659221180971464733896183570467092692515818863856429721179725197474456624348700479176117639611320542482607966543156378695876024713201028228745063163191236570494959165688246958933337950741803273918782256776668753245990307935283050768372171705343817982360320071828289625591461674400795774548379710521121946979002773212223732288317035873527110202655306974930200698340190845070965565961883456011149634555177557552442217548262409456029880753317635058962671325501905430486232637483453874548562333303308740379653258506159521983982108251516495065485846370205242028552937460576127660622993028151360283014908391155664605954196403523883793491997938777047990607942383211481366664456785214739037304037867896614657775754518103121527688783157883094002304324207279331635678528543884531857027307569548008573032009956893826179979703964195537062317979626972949228566748007676711479611701131858537844367393532108229626788745764589892527739347179991188541511182312399712385592103022086532885622745119921310866794172043150960680341972697245133952672937783958008936776755947286403109727152382036090242972665147332024807703398240106469039949779060990729571914347563927152808433888179476462761236433743147212285644107799792633544948943775059051681350584155785104290077564761425774919236945250370170116847285407939716372766663817838439925949106664985477489987834260043490992829999839146339390475202372682693938976117708023161721123241923875543160862359742144616354130154095209031629746261649507535467857171900656788501455535140348641828435430758170199242010498751169391984585966878663463775628023022337490610093266270866596170475437280979022886800819407234436466611509657941132681015090672422571805158501132225484510180794786650974780300671685634340138214857670360926300492146060594768348841698434424773714213559511805915361106839801169870571915402813950113295873074387586519527724219985372510122229140942898772836477886814140326943970614847719612805197814384946558350845811280967945176934118551661342943468311377786683912433867020991461368815821786317648303369246980001290309436305909460444224327621752097441811849745544329338505358072404078594851274288520450014403887285723468825822309140438529346142590710347601703958965459556842601901993380031658546320312477742418778313204078157709657787064952451480800098097960989763457748009051231689751134668623482310089377045211077403262694253354268055826933205977473949803299533691650785890535683916353667618375114703477191653855344720402466318327403439257494419698372618663404746016665601464590789933139311660598984540550305697557289110178690790824350220301651082188751958192824630605581978642180364699666408093764087205075373136280414126417843317036080471443682452229652723860992295273919957369213833017811400163781902811767547657109170136729729587821752055159527481106640477050486100798929735678710482124948091946105728283389330399733923996799572098624886609845082096682761024192695035858535835143788557960027676087533947456763586927662768404633549934938488937491701273603953055434792424258600083140841220386509466227515532771298461962005548691936746775072878902936547409552281523610911653023873026930145545040627453942804040865554272723643598884747537292937146018283667249500128562731360557079051196225347847743676715170147802885559167463550957829338450848685836095403335558357567779389077238341200304063345624870422056307836295423325774677247905451651915873704079424366875836034241486850485527817552451305931636833355572257935083223710339134574674398933893655659988511334695957813818585788312819131437598252047667800227833525935509569336293697499606649198567281084804870311904575713987588757388950811167668182775889866829794444993582385908877406794117688919843183815853935545499785096886320514767488289982871890667354056024868737722723809099807573834395309714618996678000779977952030081330403111321268424249353858954228098534807530925586749370188199798247397784824985029869614383020566356449488663435835618188970841375358776853146090441705996802546754933294947145942182497949051172262085736225950276242321892678201307836295968870884007743782800417785659155216650794895996044016055777679232060720960380724058616572928734376417801643971507117992216127704869586809571404045465621639584766207674213902799387773026071410398836508781704010194656990203774464058064820439627745606794413002266447114397924857980566272090965992673124674711906426156510245706587193981751864266361778433130923838821101807197373049372089415650537126760506459491086747941994633128020842605531278999618296213857136955735139762339592859227113496865767174860327796561535798390836411037372692299787316109613702511311024152127702252770637124937334652644519711528773162110120864405502857072996322164816104254562033242141486432484611301457637556544584847526726838046091346582781228148596425115775439347465894781088631410426051245658781862999466478811267295266320671259998890467803930375776225795563745510946868375174697798502305456262853928436221365229678015511593568420077419740374186232831326802053914248674267404884820530264604839043268812373887078733328155428673573261970726062956981585750634150352857635266568591473897810312810612460214872790482723421999728492078338047521003363514452839497357329546117292829710423779819634693736605543180933446585238714432735205256250548853788981262142151675375308494085963563668709342772913740301321986821905480284385227046416150825977440405186896894931375129767036038414173674070374474361093172612298183153059843412340409166803748288302233760014429511097876871409288038015782241722703358869035919423606890396436700235251538046017390262763986848365218230522660962349256252952401768679831938674747015162857241033190794761583072533991443257329368639779934752020097480037100622463415079521327850675497326010812513699248994397039649975280201855701724092284233497112541186070612349627738535142323631634579778321419668240436733320102879603861090050963098369675215988893864953471839343196288948091569387588258411205985553243136172787474571193494411593567627017375145731299760212472104715607918848229115604555004954120392296111962368594651864224927876175447285863190428394905605311335871154814836753057327036181058841142091365550969963114464659025413312650828158861638597081848963147642410998144591251660969742608007936143003630781229897143516570278492491636643996463746390125229000015244280320515983028425695481196665603847879192451812994759326353383413888895919251119555052165962179182774976062787889672857580970582734811694288351386120327552020750483632573040847576505689771865261963204626889274951160089125297921263799656914826199124691602626190174880228308112493826595344521631035889569630713014120789214614536374172259372243278525245807914986413118479735133399749156156100130221322181835933771798462843657367336020977368383731081698978751223663630184711412320458310406058228994795817797210114722928922241342015748742951930172191108122941443879434407903457492673844330287752232151456943671948628231939876304008740245293603196692770355659061802227834512272859975440833220292084196657657046282775892194869894312737223578395317471561472114206314050001489702391768276276535091874813561255999708081343771781378657686553910447499470499410886329255204709262067354502115913474870696671814321890751208589645803714540962572387431402431462697226838827732001422620924000303897343683012934802739515262891324396536837592118139627883203836212516423364536236113627537825409993932729388021619466608696026381819356348137311416068751982387939450866681567761641120136363079462844380724409956085704102688800378128319877115988819318614076207617238092076444280655738561973121082794126253703970981661652556607438871661877291519398475561536052228412332361067594235646801006462239663893144742105765249648817525534430240206520116544459894929296973642995319378444776742108012907572592287985112841722221445766572458159398960142401412160799798249485612839302210249323517105391425975976231343068315833219665921251288079105502262274567289414991163474578580926394541956175934261942674077734147915383034490477925597938372610311230397844056840207451587957051155556045193226136421477739746317062806834042007089461363950166320991498398871585786458454776163001567441209959256470577377010999562335727208529113097718002403486694893645546711756610517682376001466168582724752546925574532944351819802132415379735335182373429202209228410003476247794677929766282767920583246459064761459187199398842030041903418294967548137405196405606479063758678139602476749578679651648295127091669372871802536410850120698907986310075463969082681608593911872930940115265449903628338720699806662938720355273429350623472120998208643781451112566010135348032464949962284395557973805142315844770796059152758208231640168021636980126002388420427362975030348147425971835537327180266741497309557756750010876739197367982180074888379918537921045669534401799457180827339821488272570662531126363229285148105688101100454628143380962155143857032891681078736460842082122178300320853245174253858318346773728043717480563152447730074942843084250733851807658677511331931643860272793673275300200675488177491048467976236682688289832616392612137403224299215460983807951388491747072993615356584501932616550597745860176442399981938685389536672406154859858455076124101451053852978732354312091056332418908494264433015084633607237777318470104698084671606148691418967545725685958238046878216814269520906218217606670611428646342295687244041618548637361312217438317084707201144910469277038971807705373204835233194554519288707402361499795585081471429994883905475169554874991672242457743358272855690703311728670209704274486758660123341923228180026731647158229126475832583567606458423486235656160342710419818842320002801323950801229474310312207362754230860148282279073383210626835336486300916773821432973561999226036089168416272419378612072645819635516978593814148911407292244508493155683669631781753086262465976387126965121096620673988304826163435403559770768097370251087385806843064727103634966225862406034637515484192973996344123583193991124214969554283164688493921877217202440977320275220350049542545609509106860515376976959004167904979042132358193856106444776768952664886121989252226325416031993147089286879288440098015233285010975913611931821257725875421794568901706860832585899050089694555768400496632737830704283148522585595998582698080803542511336538551131575868083935919827023071041776109553579857197011763471931023766521198293498225281209542202293835899630364948831665731947445518233206678877587854742303133739400348471494048126371018451110423858013030965897131504309263471730116527451792562004496805511613091035104051277769948283900205654583702279429817952159876267357833638062008726922634686281562928131517638639027364560458352421692720742526615810423958229328265736354729352559679280160122514814707028719258730204821672171804226432771721894451961322674626199184491012074498657036330449725600667469089820682395782301111993149158281865528130367744266359200202613794052024591734596954493339710694789375494551974943173010064695972744762671492872837374483724584122318405015163797315943219436330647295645785900200491164921542408294984967990383161610719356835183989129604202112472965688795809755750537628826825944768798561716300735611709614823720236448194547860970396350614938560661315628955744201675414783011566587145894124909657252450524535050179498696599255610968900703026588196768179233012732559957041566852338309040096892542127403058564197290927903887306337158872112240056895391140501578276412176142381339539930764406047760229532946835392458005088475856491108017693664937619351577033834624411764776133628100819325655022338852927175862365039173762305763636615087199685298983011393418924696743286480948290332557506245635779320924730551967595985260425804537925735967715458577923780963171341236500212574347981835814053261651031451864697475749519179268501088477239916272838578780519590019414029650817676474911176902506484962891256444449149508329351386593706486418207954632735534134569806581212927706533814293562219771179880638808316935144679310426010618669039614639882844481522963110717127177979829474682097212982555371467206393768258629376007591455763705160048170003744931401486975438996599209684079837496199176859637654666525434511256783040183068075851583612309503114921323025413678107743855928916878250612408684283751440368564557348752739905695132283479070871933017326291052731578320318582023708443369701214855342100729429745416901332006762210342751650934016292852049838339807043173691325816561859058452947495763781061245737539083590034823017827913673992423544815111180572976009356919767823696260712417330134276165530152023351618737991048691522025946851032069845449918427043545947609862531670304208698248198695917817893921183810961105471091513909775858461309355169635601004717724618161353815720336034053737819897815473400857315109687539598348883029820391746226782112355515415855993396852153561646656906785384958377784107160618661570401403958118007566219539761385193483613817742094146038202601819204417249912776655788830553741920328053504297299594047085582765752486635511394467613795751028947335888461837289443688060047107393020145121423914828516493864785777578939199253760240827873377086813146526836279767447882527809899096000121888616996699852720469438332544679528437669763220546155752740064869154450708713991706346441689824666847387415708507594915886154148307218898799748911275431871621552200201960181329892138010360146531161122672360782148740053321418560824175989418360460396065487680783972548955884119885119883853487674378020371654575817893789464262693958713941089589425830133577291760499110367798299864168559523184213109486181174974925217577254684830459336794964422543267457111672503157813218519333426522442846351625505458026779294891357725547942688394766341970463579018342658418364391606479632205013740985379087562666243037034563251625921000322531875360819183063512554066355043895220505309820661157293682954959409474672307062989217516918729609756645519698727154672298577854049119394980230057535185306707830848433960422161664829239882560527934846268098634585040696009460503793204641947804959708138940569234190872635443050042544746222025238696851831736373906302393207586708120820121524560820412646643390610468540692775926585322451655745296568727567739566315687696472249902683398359319543630997864816965580150134830529355883652299549897124116587734440693801581587711524339374062878717732258711390919320329408148690364330200871057876687567953497999354974445337481355508905256082151102099850455519435494667557153996727120353643686975404026025280357314721975610215478258929673839298163205508869374333179171826288724063745657799499673281199587141878643066714216009539311407391154547156927039652142155436195053068510196785014969745790546549741745938751504212786863505849194043405427455507742521235853494824817917001540519576410944923740612052158920422750532609878382884145338143294220238810843705904447629091726196697943514480059573789306028282782327198061497526339886027023624914864057359151149881607591220184434582618778767856381508961337393515501482557642585503912363466833238369414001137580207693415197683641127583138222308756845864350304148160019355922285664364526711087245437438565883787364817302519273865868863650225822315012642729985307032526421112411480199251413346092330415781547652623197845872534806457495715348293300067990701532642914784838072169487535399183967906949916762689247206241320121780244694608019546632427574370151322529811958569409825528042272587545947921681325797171570414864261959437521980170165929481375367430513165890392727819171663365510885963312156868149328820677167940505827525049868713905939038334582329912153761497507508955734292052386434245933220328746771161901057928520931791680961296591598676273097613479925062511645701489157661989425773217562090529922518957982225812779330703851837657253200946257375482334490637069974911135032970268592949604766372163027442897784709328709714414836984489381183473577470909857956395571913194254086723184264344554697048883799380570119443502026486688318879123242955526317461831329305112888787386746268129015954357380807607184259945212206574480157570362215489518615515780366999455246838926462593593522683738674825437683498134337460690578927295721682537947852375795301979757554108208567989765661790902757133687274072631062507496181430607550177416343783567226398936611618392382195805392098921344496355249199985545759788737149207176334983617061144800427697244625495160011254368728724403000887870888321790470950783530521403109952107502367004094638251855803807895340590122236783089494399254287433677203492963508696412790576963960498786999978324967761249349237085587438762136786657148763717700988847485510348676393724831966499204036961435666123493831881119921473902607675819229783847154842403795251865022165956299587485149616300347036222725031723948892625472981760403971741374733822224176291449050542374435378894589120689917842500847486631765794179634939574049379818643327588168113064781271200010857893484288867342932861033163668466445426771552785349459726204147305537407250281778594595726452127341837918311173026750721476855370690185915169470759865379034281166825067521376951057505866383650633260659050457527818050945851984913925989410512312963725101482417497465054052322824345536434511838052864137189826329184706684327773989410351714069774379372798570813214209338397864145750322616385165080679442721033632720812397943003350123703839808410604292062682364413063381688717155520330363024300748533438538324880022810997387060317921321595434771903953518368664942156851904441303793925148919197683584234807971911497662363935653470991297189834658219929135270029674538581427706300878752388195269151497700295143647869229786904754717071336361044415400045769714353411770328672106073396794484212280876862745563024949134141932256396200589367849619131634445201351666348220922247193042773895752922408664151523384029922158421631946934803385473261897847014904488418281265130605965713413158998352588345672017973514499809138948887838489737657716227068734707757874141874532368033460683452809683104042880398430201786225068778866544834315431136439203527112711927869027029350101237434896240543633046126685602295623045170480346132250681951136488909459729949773749805027389342378925411267688796595854465340858081518100167437621626276702203310929809212177444865354136159141477676454214758659035846120896646692877426558367908740403561208187768294671706150258692325235021877729167184372528611796240451902694067145901551694701436889701938227366447883338853222879256251915527879099667916592149367647801319624868879001869665515442533313978153951818839840468592454590133588537686165401175449005010101434766425773374565112936231418134693804048931137770308011013324004013158189941301589972819273279300758206392270568422725967149478648721932406302582986187304278732641230235497702955297583869306757367112589659479916428997732542948341206794152538141592940826683157758173710898472877541532983804492111129931818010035027483999619747859851153993373561861040927585174263306816803727604214492249182379835189411222061925077024177351730811723362969739215659220549331570939515658448908972975434202675391937164338518716783469578784361592702402442265287674848694532493392429553490358479777281918139384049130673145015719043279968887409523048970201339108385845312269791833073210510347235040046516219792267745824668337026851604798042487300385683452370445122684380654496204286760490300020779632382792036869418568563184597807529677982868171542685406749626317716097537616697203164002326966150764019232507722621568089791155918330756318683986309780296874621710954077039985889307359106773722205258939576662611690457491785160436311928843114485086240789093423431902729316810390503324459012059259866337370654586645028354611348272278379290208298932479628772227739997532267104831602464396627479909128039097139771399018440808947503531942199765521159015429738112018923329113279609504266976914183651856562498918110385329173921828253720739457024104163513019629103474707779324947622340035786990408843956411082658102742193560755400214406780528943955379338727093279911408207055392832004631005882900572689175004088377853865155633549042384857213487684512224136203968059655092603953632291131959345176710534516144802601801347350026442966659118123778208638205274424578691718843867047023301062108911017560970366223410596466788087089768391725436167274165468778488090937353504516630905619658581724778740497923293040571467089946328474826129492236478133747398522040285091233902754900578300860689412256213039015930591882978771753486389060678439818574035008988908408228275154705991763105398699771386568633184357834141278703190544411824949047497954946484348442723452183683191858816219611171546095123006558374609936496819486971282265006363242922269898333507291380793818321517657564815214797489613099855312427637174034320248207295043769144496804710220533586502045896281749877208597506184840161603342613228298673534554222994440435707151210101792846244633718815776323943615292777472477725223549803682984136451930910542358422631053941643870125804778380732457193029252376838775301804953535129276136727380237260382314611633455424438064637041785162881327318659502065588463343359534264945458307972492313769758562749235534391996925221250508014996631147526122762916705652404251832939386216456945082390084247812164074630708862826117278308629767740305279293978179600775785133227855364168283082456054593163000743724789538814600035644019857184266610544748899073805042381776132886334489828483314503968675288108101359707747055612969201628131370540436689338430143512010687106000713552844792636490417557249802789357657293673888072153769673868489630335308939736170260338030374747222852338848655425344580224505156829791456182572712207373227037538507694560750546087462426653785275834742957481598669007795849323092280622555987980439944064413030618616395547135725040675180342409006176322158354973246375070293287167497039506104985988922130417288617752708271417827857723814828714949518369754576112495147927706377256535900764108887341174913635898876978638191770496618743284416007992783450691662666258147961566822361572925904044092441841273789965782321134363081020962677508940393625333125046918953241853582935396208364206095231365838866560011366104701170490646404978660303814070104335261463813127042937842556302314599118027563867989134518359572938204315617736256399243252053816694307204079707942968646432209376782790559543228921197016279388451932444097821162374617328588669842213818643803667871088777236445656963394446461505495637524464432068387658235376951222474409305225019435306352780638960944694242416299576049157183636099527580001496091958523305573637707266142078739604817580564997206589202103581049328150376024500877368798925456730624061370426621090408788875661652712695512677837803063764988166851808451165913571926188257324980306555950501493082189339674402950939386167825244134224750469120483945967723110874447722030848508719127190798230916254459466581580330340549024646413684327395444830493147452153149314933027853188301183940081143285051868833939172745339524967476698261150413692153691304951580428427237705440391516040861271225448461322189867816097821132211692626639578428017754808937409544481489820405289775499641957609345517034985269332155806310506014830968426015817888309428702425934702724204177061032461936783269828658969140011517061194626754702909357170110868779281125534108305064497754743885406148990816017608995807435464552236427190566323843399475005207959520263784694460610366285988734989599213292735448448156927716549401031855172405748485812471116996034168102830853984885757074841663288305783576485123637941848648436273757216838791465912558053294250228374906120952295105157306439154189412731159717311584135922667421731236450614878946341984052618826153062248464847372265463156963265122095329814186372326227423366453584995929502553667613256216404776085106252252412545193518227679750683132840999040853470511208275499036050757049244856054892346787853476563609542955074487848579490193807575880714899602366625078682410282936854771695618525830721927956831268503536200734323888658515467389183818019384983741903646970983589466985656876734248918016645428949452810331331992289552351720100899004788650887219719210772261176286937725383260801354320108351501896292472428728458512494787518589826432936888266841366733062992233304774962121843354809755902945799891805723908878937712893735926918561274997531844650641483295427024812948034521388532418361124670183626599205752450443254140820637681348031557191172091910929111627783663985340685349153476675169465372552542920906917055882327184028639720748205895429651308469198655193418793290666786461967313347126124474187779869455570801441500713759382950813368464722962950522205943772395928393310700979263383123861620739699062958465989619544532082318294129247385201088600866272122476249351804309437954758898732048379286281572936644982672500972134006672270036671657836689475633053002458873717915814589643508878375513670642307977461319524460608961188327154649133001966891535011192399976617732631345276514004105598033776210046055893019221425481140747235540594558862835882949346064243859270513862391596585978384525011040968071685781636084457003774730109855633439504631083100822328699057229735926453984932768464453644552509955263044356374444455126450738864935574515905397598876885769156948764398288626121929504363068073823587171418075033943710505010572323946536624528887818385028943932911167101198551970503078494079487672943540192800869113513581445537958157404393982677465776474343221368597662778274414229449526806383930449650694594441516233015268681613639652159147985433326121809695439955260330986671096812981693759538662250906841924089486584179290868395890450914239955136446355575743836688943961673134344931277593237221686017227314994341342793609365737606463546399755210034887401379403309921591769880129284224235992915017617501656280526584316994630903029981021090855020575281347853888396206704408103566291034911811719406287433793895662242835369525450219689048786587265833723177454757651694665315221192188897712008370933238861364883187342248822037069754272892486936946611849123699171921414275205210289908659483207443289178550055289054050210768816015063003912584728645172047190649961283626019990088600671150759849120005277461251401162767577555075802566820857328304953435725588823706199377506343527121846010968206485094654494624343362906329117187871439009453554349676497696085039651580189877286573482351370813352451096597013951582270715945964515799599177760127692866491038498700376650944514514245710153791059195695561923273245030761505962365075506998647372234201202551593844714811101945003140662837371926943502558160024084389661546074622953182158970735978784524184339358121864797419498287380233421956727740538418990828722617833094301132179741988128024200783860945795879914282781324186417046808223112392449435220835134925693317138217476971781008742806736244005784921488498016740792453112403251317333101943965956148852091174405675051370870124938399074710355083829149382400848352411070150239789463856842495675473244994551684335802461970379027980343610065708251166647681788951603369196340090904540793724781095694029867361864969643301319262014916247941878837030583008603219769393303000092879385141349646317384013425157193867304988300872431896328883217672534741171282141087745800055674498232730931357513977333003800785003909947266915476630643495927299374905858162688363796391967757312443063365395136787448221226301262188882872996110809978448282971266747695374494244238282704631047221466765165105676806155439995231484663656518896809742286702849365442088075015553667514051470573983789248649483824663091347434976375744517097644230436089408365047676194917849272956846349632705361627053930443584110166323194764746037061656002993627405472195576432809801430927506226191615170010053966373308802701721973031449289783318719950925499179127315912163496663570747894127208553403023968008977470144413633389419913052175654952315139315975727381152943446886363077012744835286525624708821426343041076954894337850667798227049503010828966344014384159149958731506871357468737998500692693154826551993024584942645681912707139091520541436981776214565285028724926094497864580734475186486684038353801268878450456563899977009781190054410685333365967393101347433945666139114927614276372695794033602889052416790305256303844264129793382465866320346922373392423688055275327946227211834139142955899803980975882338044417110722042802846209490495340975496958154584169443646455138472490595016654960566526845980525272054706166108143867384738848914229222333732992808878557255044838125841081487379799620948885946677802845358750811083616579286818668446959506167930830657232179714181746104604188537856087638133663687393303074111538444744878124547238530563254231671685272987647048507882399995433249850882135770940320118663320685801202085851740679347016730252756638270227275645642115787355188506411916952489179382711347819611311525760436266022363483188447564142538403133760610995049650020030728739154778775617649669657007501909524129002979731328762934535713000769538866844327306579976720574546063229066282175029667375457492004663319713418448855918418228064047310300029945744485118262275968892933026047198224451711866170905075077164717403032648239475658698193152281476254149400890115895001081034507376662960224006268237965262930275520260700408917008528764989386942178884498968855851196310972078287995986893122140932112808289882613250344593626567229761724152389952283873036613173104920135794425299823300014307081882923204018210806902329878295775299536257125002783703404970443201850867330808598163523723422005305271496900679396353562082867025045008932403943080719402844619057834666188837521799487807805634648261435672324302970302093899681174453781448285941934666971343430249942616769414299736241847084366690615663960723220768142132797173084861871291676114136718171093776447315649330539536715739433312514129602629135304050716183716960797625847304516074568911519728468579191687033835528957401743144978392361195879464414970874914964072448932749696292773291602078482186056371743868664604865353663884000063327168438173047008391964501532703650138827764992676588528912871197554601193249150386669716082020801164396549143830238681294802483576750624915624865730971023089721310462987370975119719921274362470734822236540277190791741057283834527660342530257425083629601071547678325391424720500937372240060105817634736122653109922773141015624479649050354297824174619217052718232963068153227703643775156060859257150313912887400546450323721696812244794696064256923802827005415589556818246915399599345648200018554877556505508645949080017805336644999821092146050272342949068770299674182819274720255456811075029712972906427608848478604175873639955753741358058435676085717794777065634713188865574406578927642366929739531147199760431900427676155600330957711386705871271240071199246133037625370038033257841864956499462233730686893000400067803644518944688544728405865430095099419334327465092088549645951232231006467521072246957582544293080526916425335635792888338767904614578255388279122145387400657470368669712951114263764089258915137194322412013731315676410508648522903087414410952622635379401152239334704772406657166635031536545196914509828656857363049340551300298539475374796603303229723123375657513138619616602072813441279739023894126201060352253984406027123278334554014557494102993935776366243828763399503027459717694305011167389765552159711040818739810256053923056571363929231630321124240857618347809207196583216361701960078001513915326581641429897022585995811975019909484725220681685026431695751651643286400353422589135658779582205754848988270762026084861954103092707171645214735873137451427865915325578058663548134721848357892047441096701488143231458764167401318388593020538804214195012113461947951404924760730949066221769763895874258103307071553543047928931418744616103751560075280771609559008685051465368775751096178223610141856502703079237946789043955968652458748337098045092162663351154971561035260882053277732394962444407185089724713345092939394615871344389342875138286433012806161919089103754748654469573521118084496202713301849719267461357965116758856453896982684778300160434764820222895552133686345276045625489649412851865113718160568098670670018831590293640423912096872095644048580516417979429923007586801458211940131612797981119326013254872003830588090059148808987345195067096440597713083255876976897181258744384240203910946881198680170790969864028505804898034675789353990877351489665756892891319126861645272731415142196440122319222452659912631616249586079631061261116417033259254119943568197200293376283910375241185782243082730856587941862477549038426248676851584510599777279522001322272404996923278491851941214753710420443210868989755609752194949395516280377417341554209627736668437703574114824068316027985519308290529831690045438326191025623280652676091734234656573340856034200916135326184195698400078834628553769475676758234923316541549677351744862805403391243188026571051480249239096537934852398903292607481833465632163607488790421316586850822359293528117921945340791980502119031310910173030187463580930911837458374414914712591653457801050918181843069799803470815705911067599871236815879851872538298769805864807494375761438414466728025679980865017988923809064156867367136197150852280285127707466714358749444606367321416346465583530704185494028463399552478419451111318943044828913079873790606685890085246596504062860264705235236663541377427809934279664570451225321090623895288869064369234885970165036310790066957036321972995383479036986029680640115202714016859611757632116903754602064765633611937093885399248275908647623675370442139397442837845132589363691644586127825622948089319925096867372752342749829951950372593092349660580759771139936618466502742156645373690385789699295976409151362424069376180655842907318709673180133708846928816398180192154852746249697393372400463074446363320861821207352427443687469105350761230087129808220073039287200927610925831715650038686136087288709007997257986201724283817490271412916022665115282524948741086751060346981632701713965991442543864854154262773175854743819344510605143122983146891581031989403437070743647125116157679664866947541472374845627974372866624089842468274082735067658775068043897720235994900407599791200110440822156904284121736533327268249818909954056340816561471012183565444224677321255830148665043106837099271293815887439724039132800877940363472736536051179624149370085244547554485901824455046262697712683626850754984453049556694645002914683852321989103167333219650797548191438618391381491640848768409319362386221027625767083533333029171370104254059844421026578812364606693845006613201929425642959295682634418281684810735926510361661425322923067188451344023639970549235140367297207303538172741568058285182282110774216049667524090800530600748899969667747606426516827865742963112502532145851652632610950552831525324114304216765796771673727682457688462865873234999468185106855687508905418228338000738083119960134441372639086075359110586545364847781812172961853805088357548135179360889315113053498810282744448973598361982977892897797478306688991524804089574096983093991122095059663393747515151693495107430101078533326973327361525867864098136326296523598294811226584501497375371785729888944476092800424131043379969407082207779174921199281512687446253909166870761810721462404662987650609102692730003149903435271617904382600352244542578689660559836228036157013970583319679405645638264044807239156451809680506260950463040414646547290050311007624724714735628850708828711669365334984815150638199077158556584529655423023938189883947150016898348489120389241509204607628354435475387390714179011374145660310405763214360996840890528992929354591088754124844337527722127628567007499932194753472410393202331909178343345702694455608276835027848057744188134052125312719137152654312997644418866174557862414233476306563721768287074148457924982873348733589858472937573496667388101116435261898024592847737558083125705391785914811833977395983448930549920904882451400998561833092098722913621449945423809494443750300972044716325697303763952201364699167271140411264297521437981911097874770185898172325877846275696750232380406682990049214784694729586428629767031778381092548167255521090395859705578228008095399184658575990270155309865708590576788940941575542726828452936725825327533004988802003838287332902676997033976672922724010215863427574996391294807534838284414195442471043587711149403204285595097559515750646875496353939185398514853798249585355116672864051073866125200191451183047760459031399406169271611051138097688909255768732991491864639026292184127565080845324536297061287165898029092985078701437888248961361809008706596980714887817972667734345595377768551653409191278697092573816177500993944181184618574839543190242653875891055820566448051632411302818608398505183608835014084547984234553509271648412828025628751585409844107793816692762970767305076444787429810895284455421673069325471524588587617459671860820035714560358639116731947019652551564893264458931419153373462794165574624222922394264507352134186782548570492164580339985306611530945047465620569341902984806296331134489170560464982359002562204468597163382862027959011751053775012730604229924047462691117322634380321284331942106881673741947850267989575203772405014914075668157904130319218053182183314076497420837749271590664628505050799110426994803385923988604580134522419702869747291821392983650597097202923497687613592886434466533573043763567885736945437685507758605965842397651358267177949801184446541185532774168909179991088069376525747451079806558353675422603488978026727541243791271283545695072596787286345136908616071287532403547811752515157024167822902930930002960812582386247691322239515053559924100740787152945473905620145543726866428368505734903378401968525671141195680678049234830471700316575624116028769324939008424973659085533312751235279406151829893375478556102032572704967916547859473842493172157564131061208220667969057888385096439839917866458296895888860853048050191630242471457642061870467989936870589540064905054898790652191713444615881141187410511023819748583241694866725634467403779976085882299104881407584543335172343198635929182479594221098693986790614766810396702461267149502798314829766441867860710550236494763455807539051367900071258228532437262566408014801283860996239410872671183412257263529805595775238189996273101369686230909521453299112376572758595687285820680004016374358817212961900536741342523634533604173171975404886467497657754721908671680875694513915742286920568912451158053756099049123792275995621104517145756628113761364679313434301834594997459987803312852517802264082460472286925944077883783897638746198633439392931650672826042952064099262942400067246779469992401131937320902572554491393714670392861667649673311132500855566767879410107156495722579717305731356240731144571237484107035679286355779670718435406634027631695731140504158666512359959484700208867447185230611132298396702142558279598555078415386403943126567813783953467069740713721750519979379301138895226504953244017432635421695295273282739907679866772151377656217067626450799594726998247575942056115735386903194160135877639886428948336790411069873331985142092136501757739268436317260567380568937164363258425779590936875801057233045784063955333516558356731311092651546742670129985976575883582393851792819840435079992722234713184068472153479071214590948883467658460913086881138303619600531716144502193808418890525565564744913473428397592566795747447966780505217264851108744949137879097600812334402233432578860947704711394146819816741561456510195159481421751403127928028974328949585494188083807125274083247825001761092625328210116940066994074839906932526049376366555903643508294115941784876347320946709576023075730799364980748738746628261557566666791067936820398054007234560612225253875918127260893045509704608625776347745606073199874149703686292408983964405087207961847077880981758783196916330673927160963895122901698064185020229014263000950858516576203007981302501834282123533410330320297299627421010284479239355321568612967392587921243843685282124925312093721187210586861642908200935973038129098303928060478665217982594959574711970078733870082544687258892263255012144665238132573327967393997125355479664018320569693467183127984906678492669936301257822507276504889333186025198386211352402813806190942563997452523582151807512824363316218852555871726739359763012747757291968805636698807664201362988146620754519027303302616982029144235728430145820261373139637912830073956965235750741905587604988666445243271816014770866597671747120336194945630326460345766086664438048719024977662143996101848129644009061973256387063125712990329331624378005118949674603659710819975251029519487963179035412338028327519668102717871813835400199130817415618329555479985757360761779874695280844908481746562486752507073777467815728669753832084752759017776126870462878988025654225977807612588745052221748785211448910058569146758254144332087850668144185820410432114708405934021500784733967875780730814745063573197226355399191789507484206629239917630771352972937631863967367616959244988030834895145459930856208923638675580817597596984852957284103862653010104677878169958702765324149511535149508879938859927980011607208778331972727230274137375770961948041532365426990356242440089401347908860997662990043667080565168405021840965148307693453019247173291107751479753102241857824885934683031425597548808625634986521759635726129388488774775276754273758182054462333410540305535486765125626805435630813645035087595269922780247045119437656248371358249402612677311267095514600789207950929495994006569732216735500700054587001748144398977876559530324184668057247653554846606810190650745253471065943867878187458172680934569756722767007323712866686500337863586270057135214867818256126947249394039776282347071194884592027623838940127516847515373686532618650664601932171814020194884357333521865269847550765540385696202693264790603917608532300533966199578973826162970832098157714046159151628449815354955005447196356485601000864050408414784346103038043462441860273033500722541498773350321378712188841385219863432523023670833089421740149548695055161834625163592494146354161821050227273476309378419059113442738062033600940512176582652031654824694441917951352720537842356529696145905915185803677408794111562142838414538708744558360184655458404307278255253154567725676418186275653246129698307845138922446855598275718499811471863930395653304366472070839123797711314117170878973763193699028906678409421778305525596643885230721879537601488764925945493364605064138315335358053053362908110775472770748661216620594316088721767013133572608293047597660308633842064755270801716382833148355479279983552384916971993890260370965357549905370906034719341364509821435636393257130274450325718288596769828860582553229438971554639944847571789360785806620804694809573816269494073363726559827382406279122809637217656652395820691844560380761169234044962970619222436896155539519425814082672463760883423863293792540065182755860769708646098891305676243377284458043177713847244988232244914080348868494883012110599495749766578578085759959840892052276458833434908342509123732719318310710666969791865886292457453443507774471411728993019237850007122342982983459180272082682471193886283775154078408326859702673326969249769526103168644470568857140913583450413012056067548398205350272148123253933813804974344922704375273177153039077060633542237489014436878865599164995512917375587455162220559473334046073185623327364605515164274645809698529384410900340616482496533827335618241388794065380411376546643199765513469960215907115796417268624667915633633700731084979751015411810858325789818425192686973791882967787430554779976255752502645363233649147041789854289520228884206558596670876300441687742606375826628735288862419764727802778681849630100616936406829423229231701453419334839574534968100505352996241783550522486352286813706732980004109645131067900102677716766267779228764404677719341843782120464208761051605002274313619317350459912035264742125330417399448955738684720384189323777278727518144351846262496736776251033138069640581757362257215112734737816110124416816088508639089239469340505618658139502697615195861514469411846120865966801491188732389973580519180257371086892064195194740198498920885513936665560366387432567604002219897433104731530484698718142418661240598403128232626410203458142476666212470047576029652838064750727802712213888105765020462601678334141804082987901477490881079759802655269527346952660223326386066165061018262379692895773736412129057687180163632962165353506491584474372776573419860734141594932448019504272663290064307706962679277983429009607389863884701766859426131151711300618574880362081607250035312290586917471095870001635208395627606557553858697629156648032758777407134292529175547378198312858550252172998706089187106203786439096057879587923209964691427621637472901555903589967378562481806989513053633222082770509135232878169838396986737141100111461751585378365921318916463721905443930268504995604026212824582970990341182815471387525202598743048543419348998587670380342454864670682424090932259125946483437457462424955908688111513944786539706250406387487207973242034616486640521366120703819421953725128936861617314498098900297672028083781047502611099725851639100242130287598334018540077827599297773066836078294546769253681760523686976503169373628922245991181872303589170967753556796378735809412105236269542907396475853733984736749418955362233229752958517541470485603873029982826540885471516636488866162681516349731963981652543721841848661677988329346036138029935818716484464611864679286526769503063269839986584407703672772372886298217823934915461406278288830841592439006573421399478649639784417918387823183044042191156692991841535422518483325123756033544964503898945550638871789684211421735761346092937676879612388856384065984827069989409098985567945990743617177706368818247978296456577988672630095444243690235665509934249596826067939808773635028218764312916967592554565518156764615698828146366972802174072482760096917070606231131317935843129529709365340249412269498105117212904677943536431243357360676481750848218748947685586003207893042679215360131908128479298471586340435372907301595477831242977407162232282594920194793512959840878458715082468155695246356135169568293733117310910259167348117468314255906811501103080145859506997649470672410370154530737977820771223195663735321226394975192762354016377182797359784548470011129760085960002673375064632279231318476614669277822368862556187986352849323490364538793092377613496075730616044191659891600377697700995786592982862809474780139764888144488618480251215532835061164043805805895861023785612459286252047536775748641092573274273849504071520634723684243381751366115261596634386536654074674517823715580582308715220429742107948385681833957257270948255858233506195512588811039174821994036285370125273978189312401746625657456164144439413415138911062155006841665846561541273830511334413029187413471779182658903298804353844842718543321777712307000348167845946936901840415566731376729447452558053082656671946487958835004974838232169742255324171569990499253462516887644052323230358160538519959033558210332959086153534436895436378303292052568216598167157027891301227980078971496491577549624926891232074680663812914052687420910532423890061071000544904956965669001901038955774010892473773733266686076406325541450195082149659609393266315513746441928820790075234614594738470637553412588597988612432949392672362713251353191148905244031363959676405800976679394270777886029067571875271673288685462367180145410578898917582669834320018541837731546206309008723979212896174308141820029113766850959526978502474707416904573025552893454823856286687788212908342769379555502676327251844247149061248765251629344635571331282908804746370697747304484203689593892453304467437158490188332305056307415693909670081658612453967251864631005869652133986769206692626583983625800052958682262550178197140248408962574959079057728186180477495364127446999198704698063016811345370335203376529243973018319830335218924868948126273934720451263474532616704818836052117942597897812432456382121264107980351309979744730475550343424482756528897655373240858304365865021114957688188093020557365537437501067542813767451131793188680429839822778740329214987474460702608612662996557336517097287670732690755904445477116972201649274702207832874100585481727300834253959809663974067252840150981636734810984019953991970303794379787467198514849076722105727949437564095568440456924278623945673016294745504263183781244337192679972492590713193694635443241627866863547277829699781942389644456671371264312794167838429564091829370230524390544796754041390403437888305144250022548953235221188124010755013880401556912707146342549136840595333547189801712337654152426712054237717710767001044904730787226728294581587547078345549121398015817361889176152969419187560796191047690195986688816772509821071212233157812117033820199924956916738175176630196827677419078875324268914669014210576624843414207164731780712039045536238998051640403614316942730914059793532355747104313552285675510332008465210444895787975409257855822308981102353573648149182836200143173483312391500793705903760883557183530595670441304210660764490224751422663549822336934702809410612797336815811331094985654061886026754631360070600471420584368856261283358618268688196682221066978482803518467426233910387169554346949567873534660767124250017985403161290838177987076326546236760203338900748449458073738173609859512897095338426500097849291963968303525628299019461821790545306894278704917467302349790853441311455343942122519835472364045547540204919841615699789732623030686412238067219391143514886944805218275885612166934334677720900503114906929031237616073026736350684065504567794727066230435178712652450703363888688921570325323121453862584216966200670117092347374794758554523335343469976664387495132300273545141561917212274966037716954794385100495092551020309576236220897560527664350882016870363628643025067355991606200258472836550554429585572471223511824838738048696949821612373943135222360520926807561341040670240884973164467697758599628758261680094266149445957187878901664701542103064092896088058650198745991217214462910284752393302588904717752381536316547355134622998506960895184683268856280663863711022123660475578158962183343599336488671842488011644118477545552502909388435943923404982145145331529042992684030660708855891955241896601159405790162116322228869039946603980230906841613046831844796719070128601133703767144252498766050178557066412344069381073990596306429485699835724982801480649293749213996590258838074516170601882178635560260615333675078989146187132028201551764914073309421310929289787696175737259329489435124861421684152584080993772096410780769502647576308504815665276026275371828053760423515673457762995968165775618485671630593485263293080966896929119282714421707740373324055488621850375004408339160062066964006632239409699915544988122853029990062100823654206775449355244223412957329690060032193053716722888237305131155503180167645255013095378008492124864718306705176127657863709578705688360971128282888941819637409693729875000508760799851279917744750136421590041011069563005429851232481510995897760283391156019452190028209937510923526926370545612202833803376478851184313556434224315107815460981854480446749342451099899090638008983094958088709847021888067768571626320556846256884351822095578584527023465027694914591398602471862690680005353414564731298705379520869281398898674332296519265377326958293512374448762260587363536463828917069219098313321230268970992662969969167919427285649701985284752606144556682297684272047346993877608708034996058908680968154821043955211901634548262339644264987023429912926224849662122774723104951730400682007456000675078522548802609418913522622181070250624323364494939535460010967545779731189288522684911379504455997327427309749556577282105475217164188118242138535664044858471468475632293111672535877242249039494190644375583905714414857657948251480343583389177952249589494942809490370724103305398222215146326429758903340803084696266704624627550929700657150563302070180994392594818614805719492441838758759377586469081327823308622116493848277405711177846379794626809193907047711601981978397768431264091832057756981700494303095866585287054327846515121669945860471708047486237482332540432777763766925389143616460668802185315300955668289838966295816451035144854598429743150015780456989036536362583021273776180633032738702582903415051134413567433868543450306705445733868900355850434901134069985139763739931584037756868002506030778217859695316771136943813673403315421112828920945477217467368487921685106272101876756139859218935445456546177755903853836438965341064625791844552994758993244304368714482800341426801061078387663663151839309978880264029073638792105422366136386407036310137551742508116482658450255036807456018237758446977563492601257094500647388234267750586095972118317718652932024409413549028616531063638692060697819106943404221637196859062882032146441689125817818295614357027453536421379529474016490524662284274138758279453505134889607549864150721002882854103155961613173198684713996504794567397841389701539958016696555675218502577383590606204903070608481821637860545411808936129682817582491289731025563989598019896684468219281135894093096237545239822211232667697820524215208945685045983872951328823894497047523062786529870195493400889772525477703765393582595178530271753951287610528072012680808726883586148349437762930471671638941993626206900138214283188173628015362066292675886675144145160170571107154277029066305168260318419226958354356356778456388702204010590670932009815291335458318174056137621432054824080145771487191196248807496802859267568516953919741433057758620940228241027520798145592256002415347994574619545522645231749581548940254677551592866083476283891147806000753346907782085163221239209573733761437861607785196174239527336665938991997579050908251474314625141264104167714884591852510905528438137196375289390210196025608283592358828012540246977391995243346089625299394394207722808658337301747520005890607371773621877000782600334477034110003324127098294732938698366829089877516527555559785896221712422866703872796084081708941225156902144774763039278488954971081868875540938497540755477794554671808091055202873538941737569571758784575923733445890254644926708090841910776803715603754037039281095426206752045876368818425772186586258689457918638033450071080423231717942287764579686804939272675566383629943063192073610981425642167484151674990182191159382861501752111400394759494163096675463508844747680829023874952281365610981904619779154447098772576656887339270649040305615147722929793839057426632271915102846567366221407784731127959841320508345841304210091477596937004363708951776664160991984805404326960371949230195967369712925374064802953470010318865377836617287350960203658495004224374748710536603727905506498864124219416356255058051900908563110454887261669570992564357143073893327890551302536745495935320789935462545226144434649527892158766883947218968441832138927170449741032803976530354235556693273445470532534979702298697813364547469540836595696521669400318717755912876837678635619703748589790280473096952477904315328096276068515496578652717654487142299731956121968627873284395646119593316458209188556925671650210364906437951266199311481788438473041005305004767777823534578682390214399488127834731432622598231123466435901383118604214350911786178005268339022459631168368251932471223741282895579218950313251796831098626535547960587410592308723670509564659273696486718398497551144919683676673102318023844426118944502707086472726252524512589789033086604983248914027275322335118375114271946385207481853667853862272472585291669293033667698039230455808168349385783784162885579050188329633299660109718269201952235375360918923563855387998149219661787047750987755016523246973959727197432023548815027114919003757606659582387265151471564654830036537505083905924641064663031679720687963560821586430162698048912743986865039632718795408199504573289719130950850290249677537157573424863652349646390257193875016189774503119546906709132485805882118629306994040342901032518890122698840352365417738623841106977346858022332822640963572557073541910459936702499004920119898437363200402737653617097083213164875125689168451519227134350641903574780826281386654704988710328740431336731559961643166148319456198303018416476303088858684352578908079047866264733354643658859727981674334087490493310361060867638089264366100187421798117571972578557016550035478711836612290317660193327932197813304525299222410895072102351615806285767859280198322511386598817682727343912907776929433116093541668761104242992994302161028572880360164316693663524923487644001326684862960921169206984671663960069389376439466898245886408311411080377358886005654868208807712913814831864503264796890617749518519696057555147065580761521857259270154688493894466906256602165320665015825257719827322153122449346682502521715176764085944345087147640156858079701762781418930841990476284897248321503793238848394212945758544893061625577288373077161132213275838840020996211265137150445035275290965358035023156020299629224261322938130346119688499607223344351975008638073624887698073954996719509578192352943446007599905440816406662855152713409686205577941942698309135454506374425337105797333517621082041895532824665391545885452012305548632195173207925918449899500376740040615859546353874005368510628993322967401791066688272701517971643596099067517552312842255542107328092601229471962373415547595985891005505983640388597973451695674530037676938514512594378629167486860232515230242545281180459117727210189858649060753007881848468144880450685943647973649685372886697518549325524486320627477415240070950303966542153635762989555794836242643627725485737969025466939232821708992886121312788116395545874781838163917169209427859546023664743832543055941773777453287836898682220752713126233061324547783745973841646704624308490422007169096580142877263954202755850453243199317184716461289695156515607402149068242706658969915989025872221770518294758319195015505186624895361257172149408065881479467240525482751350384732204500891924970793497530728974521328603617597893688356280667006562037801876260611319438070693084068989517121121289182440547296875458985692506095272787725228735426529779480604643097512123382708495676494639755388630194863963305532873573099634740942981104229261036547977285528230880354161658628946220379942910442196747861224773586972100246654063558540064683238522434986549714875704586403321741171819171611247407169815974794660778136109169117306188251999748585636925482562368529207642307113876889955027084185888029121835701782720732337097439358662097225714371528843248433094200517669942123624908263263457363964620268582385410826114333463722442353489190865847412722803835449804776216808947534361175928826903083935220998403110820063567971243170488793610850381343896426149783117670992121217807277049640654603900448063663914640039811858605872233434286768141271672433869513879686265999702256056428314778674792119584736671937587982339115517354846133580729577970198939272306701171086391899149837204335778586051354157386250052986825689492327385393901150576882466084669679734662370863131145010010770668387733380656467678786480940149428569596917517729322766702509218202771488091665282133341949135845245581607521323781638546768683223720801242394187875226771922139485820788264331211025359621864858217862433752056561363187638364322355218279274710661022557144871427139835068495475428398581952978948109041489431566060938656743157444995265198373466675684707324204569105476703045229962002753332192421865778521190584736555681793727969739790462128320483561604864742368304121819680757157125733662112758721400172970456871386416340412634891678429817702046767383385955961013486543738158973952734279587990408624439772194532407564900951570242389007759925589398748074638748068981657702760266218363050955625128233691657972095966481347766498006960202038443397912889687599562148260723130998828543726453830548844017259483359372309857178703974649763697046082231947031809348023417464021296320506925563703806548794864593844853910541158179754540139310617596350817642680853531514012328914721359539857527579184118008154854278429793045715554261865186059549749405048946076512872103822235211412254075613646976451510247592017966413598506935425655025146217446191394252023359347957917833645365071053117692409311190105972764721881018329967368468490194303079706151738752617972116384598613182945382532221856789605596839548894004366948135881446824468795082683825681290377282630661016903101871246649024375672930624541959154208593741012434265358874809952519988555989351043464129688108173479958140369722155112280305981658405228707043888528049826641495472451323951482964510861349425935755086565335106663390779916657809019158356570539574856308759184638232969278387937224409374457698902409605980375431428172290376058398228675410644623045517083405928444169673999654285299406011773191501024573696379362457484032743873951089952412283631913512562419921774743576768612194847275105753732195773548660341681652587048551570741347121628849639543539574957805059431159214505888203001804350080909022385505038894323426313873200209491359427819142484693459153663030326054986810200173904682385651873423209206144838031386258323580075760056703684896612197760849451913146813781582459671164900977506502644927467424142149990902448663937451229419768591249632011611705198978854391931830868678874592583931793568746957748720404391554127423866020102987983636461314203980572160675567880514112191135703568481639025501021303429483012223513030626043902045832530785556920176426262522081333014110945298663778418949636217738836581308903995668068703809120416340948833196607417192945306784737341291205735750294551065150613176488949502309866698976414728804733015243107123179704037712691850379320009229127628872113918850632867006163238094348894949361651862780077185189274131338917794171017042501577925847203653419068682232927165281838546301113224765260097812884180264417220886692628734651296651007865509997007328459799196325079637385889664775014077327284496147394004520606239213406895386423268345930339493589263977979235176472250416436060924362176990675183814668353649709830085570743817248802037449071510833961653684226174298658549545512755277752222918622392415479913875461395578549980629129131552740752188828700722878717477020985248919762610438791854342902623306765442578021986196910463398253627795449224157748731568460708597054599864715734878652999927895685634266794500624527499157189388960702404792790212078279754602770601977702921202786336860999468894476366811556852904288351452652688814815618667751917670685061428116582998962390774229899805706035618789503604292008096883928238467228242769502354656071364143089708219858869129290976194725641884481706279969033253697999229297781624278326994149818425163783067573775667354667924003423173355468955978099417969315893600032830375124878871407255621559292515948589048100012857178085535543479363778450354040474818975385024037583208373329487439366231014884194081505011032283380329195818262264480230977682729545282330749193883297195156899135513577979644788355439724469860098911537414539486178699347293512069427270281264664218837633464556511422350931936559852604139327161720687277284864270296188959298990234996067912141765281197099040259699147299389390162905126359518138328358315027421659218352578297303923195027508549592653580008971732113476626621973409837478951347854623988918044917029888020090634329638452653836112166317245239550038014474120079108107866068743860718702915122419731312403598571977473810044939356180270681647146532568429484426486970165517000683283377566597819013130772736447787056826203509801554064745357748671204146388361725393219513392777097256222618996375792773078842684571131812331790491102739846669040681429649915028424551810878817500068309078844345244193008540289696560319560228459611383202823529274847929174071780317583718570210154144045144040987861966264688593636160095800995711255687451658970065821421334073651631461090728067437140970762038890405844563739381038686446173905690651916400704550727298901272565245575111767757987071810138290016511303661176276876644968945038905735899864132901931379214645516818308753045009875718400198713909241542222074419466615002119954428081153783184477676423771105658249482703842130939932019046677527782294348607880166698723239418432366477484926456931587596001856301028680476878903777460056873949499911890808682415463644580513298154308776753093295750980933221452552560674186428238828554386646631077894927604878871514401561563938324607976958082911410870359603617428503748065311065823806087935098540266715212713021842193849875660000641957850293905167558632923579356796307326448238291975205368680180044468961448096310964892608712266075385870437475083351914343194577688884676849342213121513780927103882566061095739541457440589503330503685774268100750440565579342419654052173288681893182962652310030870080744196006979527258636449414183550603612419657961558278185518986449527924793654236742962912676481298398932826356224931925322441512052925021504473038451989176314874921250248550874540149976583385204261759003696617816873776788742448118801221204292203797702995089021248351570104546594384518534031792980812376555939801591703779747352355520194330658118125050288289609150041627588046029926575723627213283841204718650648417835160017827185219162116418536103970781174593956972099491047029889609651078568571930616951303759259598284188093267478510029862892816579603880975197487044006641886549214564750402469531746649762692068000758229244851997437421064583561549680857209071588802002572382662341292277012936129145089908456657838434796863342719642105427486531548926173838981563111131857262729048513180440353875542923656743547638436741465933163280914775911888630556545172828978326024865519484367609278964974073368967188384495994127940693803528187231121820663592180929431600929018517667709472636413878904515595871116285410111780851797218946671028107499269603063444545275001748981989981099207041141439156027483970243617364420655964176931563434561144637297568298132150331088420008121988141345090398123021669816921555677486181974540588210998186960623850301240509660176160021414109238350387707113817931791518111214907222866351457760087156580488981967934727736818572304327281340254444922787901785094346853466058477685993728298159612294063277218892364339850987237059427585208264528075019127318292045565681702452549998272916424030635936668494445323435730898716483916738361346009800050908386384381531303042177780223514794617996962002897699918027558068320133447718564077654898152772554321986037248509237081881906182919882501169737254119160975987033647598040192728870887364782340613923730775243915908904485095194399575162076908280031659900878750864531153681541307581804983844606243579010326943473798191535294218200781989777704600082178658865116811253314732515006023192049421275107949463402189626902326355284391448739874118337921609807007844404509198379270119958158128385403627704726074767280224587468545274488274308689483287504349669010171027461976763693349236068235957074253884576056832609532785139491551452951913427957837588611379680871662123705038888440890634124807737459468873544214737123743682308711169079237316360376854900109919656807944666809980040592539665514523928420652272381257211482349472874636656971078970253370059671105523618405396821315825700893306335049461099066838447785374619711757811110351547486665216135692912079240731329623308273422324640431922795440732352267813475137141662141775779184147012479420309709057785333520938774625832367359839363921097502810568994813014665468444324178645711206870866008458801285465381845384068760537367550046860559816778976019924687410186614401504758187757496699060657902733673324584503328640089132583322111612739089276336726238724187286023044735071304400313157923799949231015022184157055511837386791291965863569426642936067621032311772665636839233873127996717846553412790093178125961089522468021131884360342832334859604168496427332156326379522088255983492692787362311915845672397478141817107115608169525057251850852637768130155829077334454663185344558141926760469966745243589798064369245914055432594334197706980399551432109167279936979023389166639461788417712638119484726056591719863760230855069848172419098442354750724986266980436634504136123878596407845319469243719892732700289679904499108122423731685129671483464710504569677937635298885440240482227454241275918824652929452804883723016099596735676428622974298242218247253160773016232467867887447519455349124558653332151585364990720676841307067940231572150732674703943227710048246659628664605666504673815223904356887648668651574520234733993531846479786640033376620523650344163045291791006323878541512382603947818883925600195207035291466237742981641898440860257258914399130034937889155921600884658986556799173593609907827412260881482577435286025768410139938588734942252161681465992179781997976206941155264212922539422398715570214112735660172899272568936482387443448530392984321330347768292081656955867386589636088957748531589406409156987353963995447059167077730856244219579568919091372344953554913656865295076140003601803364019048465280210766722043164990814318253492252092732649926749155331611052778830738055095025036346605522215436015694859895084477552723969137550382380489940752584505282055510880485357226830827319152298122856624227751920033418225870783102597497284348107920684956352970215111727127133567851513852082517097850329833584911762640551868164178605227064802946542050452082011521039177791485474312408831450917002366898855562350108971430914283414527100229235898525567103527546336867365276857250836221133181252705281022597812572546263826266557473013877127651804112979338783005205148075491297624423157091199287161134875290918755585371223510887801932260987703468015537248095667289640181396968430195880203037770268481960608220150116667254242118657743140133240599671156373530154160903232019284846437061210480178042395391216824367080753008534907993916200038779098456376848650802812775532632456036400744186199512752300848859509013506649281991290586821358550496867159017582941572112753468453185025986392747206125259818064536671382522535309621777168393059614370249339196004702832417729383381385403929145223871977473909702693130648307656816846460778830783223707261784368120031889498296411126110782667985330477169958407923205869010931241601968209927877714756075247569033885359883684236135539329970706043772720636101338714417605602308771849064212345649847496925003452709186993074725385531655709490632372540655417546440304664687948063216835643205500827132799780156289134206206938240535113782892752338882331674494018934902869061531048460099975739944916783689640004070082435970833278485402207167089149683953955529835620746044234290022706234426757126620105506306941019449898874949774654182185613844246076737277725363388607518821047352382754649028105398179808118420263602058532872210128232306850083584316939079802061231666633524095454561716450017367606916920379095816347484655133502510656215278173544319627510459491949111482247184557202437164256223498219817404250455535769550965590100047831417964892363134833847855718687787029653722097363528774503308799081001569539621709086338440425514962067351117050538566577969551803294812701857179589790038200654075090089243404007670061013952178732688356621278207348997642442241391485839670879295004601307153464128750795499405106849864198550920034850186390660124087537502254224228356876907380023521267369668451462923696307739552397045889350290123873268866353202461177495890783147690763785425810116345031417927197893801366890906992073455694889938602918331156804508573998817112508431945241633110112057461118273321784877974572468662972635012472583324911515619997012953618541369451663086141663617474389062489192275909457838215221012163989709745428617570849516451603927683436205480306033289534501219241853986214446510154568970639485220860442892888525015684261638901207895131242709962955455258358518259961202127676460495497441225541924584509432323285283278234657318631053918123259717496513849788624895931833735087859958684792122927376418536530947145033917328401107524227331710276804347544213447982361110834610103981659566244469703811256600549402090542867047024441580318790149793714589949098325353466379347840977955729231323237756901113511501426045625828560852453323888900413825249573836427032225337651712372408304622621396483574988901235767378575484894817914483756760017896672023620523073945580938322955382733315327795206127946780440223244031835903148930697693759035570669134138903801807403414901453892161994491454334772873832566529112978673982484704611764603855933623290221746156393725422222244383264778647085004673514571719651951584617777622769488498759774307892314494203254973946254175518221236106701048490288723255500684947648916830067140311553412540018200171263862866581757414189798951000268334553180538077728585474396925946149894057945516437044304632184724093024765210332723957818166006825899608844330304024511577170171376100102518201924123553706319549831465061661757777484107923441138750209945796811188531462916752372469512713032930915327901189960826354692139149136735102187711971620587219879451894233197894681908391462771485086090053759432997210155431340335846520117311804746125935267983929848444749166875336383790003926405715958283244588640859770515895767637793840556320976296669065925678322329715136313980478527899907125041942997681368398159105909996619521959690607863275264149182426262939889379024090738412949859194408014570868984463425429046559433068515424134243708305692521470918738912700754088360825806631120274880937008340668397166772331802557991511258320636793322603518398592915609157291467924451311280262829080707227699636526853444209821583271191029970256831869553249829569607056716832587430569602362020803206460726443902236842378548272268026630979831024517705139589451010778732799612586377434570738564821228913735410175550029515635852714840817157038277642267367099993770880053418623423717976718989298989133026409137146496318615434502158784339834940658132711997611557723993221885032203609601942510687647429545480541402742350125563232250069950271407368773292657487325506861299893491915463122794008806170331639789940261300844086330013632935293743604729519692510189860891796345925866232319491673211327278476670240180425078970335037491701734368087546392770530770156170292258835710750749182200812148461877601219776799304232690957513660530300381962905921603178811093973233493278291980347176719519418529038009026179836307725508614746732015585595747027423660841004782490138304428270384251341150113460616463022486679150714665649901974054984535367571802498665421390627152065585621008381081120267235193678905403236742401621848870928272032826339919346644122428347328150916460074279550204925143923058010291584687478363777810751101646435930984553710949046458918449586968062998459130755950723575669134785869552729796079578202851936817845536250065120818524516858721569097752815004892638625420318347562662649746497675193065428987005814616720700868471842843853099266805011762732951361944671494279197763575797981276030957239183131109545000871740076245308168749913137504222515642918908317423045268238127294538314020277638767768446637747990415056428534279049574506832078487659601994186389872026440930067441182075049578646112508729536302104956728109332145948263866136862203478305411968539047915788817205602564017327596352834539630973730214109065992327421127166976396519539068974442677056273627587713097146121373860308095715523640827758117877827929224207777316288201472893478751638872711612212438123763803943732965767559732511702640147075298534532056283867494569981065180297693526362531595193061628693902998502019942904029097464854327481430392580754823525161043126171411083178958298111889657556293394655684359883824693944721544658769474211468529558467390614514637868418467525722627923393971789485550487555146068883012367789894478486124557986870907261419487163005519627764128814799268228564711844971894059088049088743822436754811454515507766084891757144586917150613236788176900658002624903476441697707203831300456827420565115609578363419295249295160904421454284498286370298659174491600563178552994386146335234759605729803826309040840543453756320391415223206833513751954132231014559423307714728532405298323196803301918531422444064631344321720516547637840599798463310499735640770911963730331419261329782535737110372177443819817584481926769162330895892520488368300409407994121407350850301324142895675524938461430147589832493718287000225744913129423149108099681419447008781948156547221795946003717944755455740832700017657437356050815999288103849681321933517099367127354660495620417379310161806170605578551752146664999116000971112050900482116182316167634834209137097462615608415160139097475637954018941131242560194017852822620504254301999924488721851257801049565589327889273575449382278365705581442076883996936427266431255431647687223349318671889955221560897957733901112960621877560523103853529946739501589200210695224045132358446705062155994609733536539878527177466457784271875462998911101609287542373385841160578147361403433086849236582948689114368185686140558703422941726636851481835625182045579344822009909230466212399038124635108629339076921605201366445225110254707071510588867318969683468153854128700891463394042049668772944014496735267549440889678200900363597215841077357487974813541322824632695599080148656309263937214547801795492452330727824785959005543553236719604868986973135946624090887642661220622756808884801566141108518169633132852248232265952404046320960828079910669010665981416254243264012223767675609404799148988534402769571768831490317943590197020613155602835367735791822776530825342789529116761028984206933602652927747940400286620819402814881318320039718496753916200693208989561512005759167789812321238896323721150818746777909819118525712002384140136552712314453889589713409269805159548187572881256452745698358610386980586147018593090131410389336850726481634080425898185530158123009142031180716780040715908416987331223953401063364304607101482078774582778043798326221903072061332032289032645253897194386217618913143106454950472068536692639202293649176533500309998605255139539043785561568880578880725143102788774624709794903051248503398509815968132098613728193255532703090542112414816164073277597178143133894622661283545245680743017666572007924843647287297614145711255481560961715107553245774293566327955321304397407904118858421655824598487807430585850642641251444409447305198321749008349415589493897103624623583819841897225345323230017396803387886719248127000401033856230625200598384446415408884035429438724935537827897065001170894192608297551176108536809411455681404669226025216875802677977348211005081787880578059278622092725606053992060041575667227853660117135045752788904393706368007578651913445900019706629520189542016597805311535740778668223913322463405162942366212392952130802061018423564925657443071640628184632540266701381932217961776687169670586118603371497931534159626687986756439765288056531626274503120551874640041999203502225609592674978541347150478409631008680898020877648178161101885579666533075135198458660851681050969404670275568434184192318802112527339576061436529533936697589399835023299868721615033819656648932980495719028966918795885253894026657963630382766110521134373811650678264874318764997737497574597757521528008862603758736376353688039150850640866778225872507763556717500421719367912505032111678929900940850057476441224675546776813405187350699478603687792888214380920857815859366765148177134222284926631650271296713234906735213607989000824715815288402489333624628598185058370447265188742771412043394761886724988650320648828754698025438601138291459153680022445849974232277244862699452124032831738546184693732867365648043139840681207627607670995728773315586460714015653159297790123865177845561179872952656236666377175800551917429418811866800737779762716765934858055481496510870210689896764142723742339642180607648183541499589043437842014141158771721331983309177642156986727824945678920841892519626276835695836499238872036834610036627224503349205574157079691532169187308948338755248582406106153315730728586569138300979587120338984325535630300163111565416092808658595964824947284421776176529490589358032325084029597758809935033406135815850913647234175400868964292024236938554144771801131174953432895234968248496300104389186808631502268457154775087509581500711026481873777711980888613424886350584618658397886182370723444628106094937076157578463433623008557603273900924424771334473390016713216295785524466257947039104113628043134992852112121164063582545930868118525247783299181321529275340290034240496567015525112518877242511825392423536805347339480467773007160542409235701894402054352954789423277972175693215018978303120047210796778068135511201072540707415090871495634887848246688142817743577411831032345442254106510561635302888052753474680549602634650509952626004002552295574112893297112269468680459816593586433471164257100945056923246508422901184575222889032869176454241574631555394007247520413552476679174404173288019046684997439550717425100662640946695106206971115316039654844951095225590956588814997285235920669249185563076925144354074385640975685446107454176656781775911140898941121365971541373182321227487331800605459189726170451390062918855746560909486252307151189880331955592549958841096315115947291461530912376478612518897917068031539574771684748364959605868461463800487300457938728818913318969108752180689873792913988125481153893831527520749935459720027619351403625067792356194693403071611119495712496837061050129025189275033176708586908203936233991635236440682485683791910279591618737174310173295938456173644650321052703262778526113487952427230875945038888993873278001926968752235702433795187796878817549291494405612071489265372238126540311988199905155156794133917925137080528321007428946449841845366619401039211031184099902090431887284095350540131161705518831923856508375108589287558729966460227818492208152586204023185259335404028035387907114746448692049167977892260487136549191258086531936604725514174339229279216326116063453869663350428222669966191655397183199858904788239536554621624128629783170895174612304758538244222012919508972991100629831073613897918362836016887444907488039396728239246672450574626360787637109492051250385532280152301704111634413540368284662215594266495553965180124874846175922516097676673105899785786277138836596429843475169416806756577784717172557192658658328723324591049262220769061496991448728413526109794122817435428423046729573747698335603395545646055267162485100355303746135325242533072858157126086545243594381280187746444935380582045366070330303726858580520208506633094325121498614742362137295217798581288317746799915015557909887407425612014162352584900787526305698651229776490616003478370990506149870866034967220109803331406501405491439121246063931446195779771169523394852464831387205034801889812341752137430761505296249847488796835242370988768637924631447016767395067967845457868266483962440291198561799203072086014225057845500356660608247111063932108640059581351652832837898362464183567917763419515830071922663644318843857285256985408851209069439798245385340885396736923576466471370936188886447555501135360520108471232151114687936506370637249130628726575661929367190696768813263037323684200040489275213736187957655913713811260973187505154357955615267364599019332991163489126077014882751576288255345912538050727401555293692482003712969455595249447365829743494754170805443498780963511808865174843572666953034614836261070141137581957711949177001307008867639784163604720468227700588551218709996730545574882382616559216806821135220117783903356042845312312283030387590624101996696724682755780490228128539104935195429865299674745187470713824554297547063053476496036826411805337768896270409036630620203884997907616108355897662727345946506842912916265292057116688976876891865366803200548321812087332783148967205819190741485312509543098287627791448659218053485137900158129851063886950967118111166838899444671927793510349891343426029626011178362076739641083969722132251446148443142120779534034579269375407909522370490971598697029170607344268696714755767724771924895530964282394060692390428514964268842249399716049788808364413121098246898239962061026305307490547370928461248476344022906791380385916229588450106086396479886006832162210179062619731756630970512665327065543173605943490924575511313028906392266865584624867485072171429768071395714948045886991520120042492357622387798406674169167805950530727054981425888874951991464107602739737980005364312910224856483751766220727969285561713651181820809840887739355202586835148245807189846308398456493825768263137313561662093209081732237288805316652686806403511890124827015617032511874879608711023133175657407714056655492307851991919905537888500203537803028045093500428702676511029010928843487529624739343278308389302598585635917059602915433751860558164728551856945862613908083483477707503000106333146599488574199687973275438335537698059056301626303936985401567977836104398804449870823284327395051623959196264989479081256303805278168594137534159230662237392836949683319178679254543785744946216826942252041783054738847491616215233546409854451761493178141744057087076645799076595221741154395370691172756659262218706054148972616982541260346552790436557408806293524964879073500344641336743422445976969459690319757017326379671410346139481104525992153988520536805178169640671598214262896290870779764600804193197889636746868762304239741918939331295765744800582454039986238001037384609184759467256032414794559969116015593339732111376204313624828701431207324503488553444950371318096402952717928938444359761682379185698454773873014511657933077975210343410140819914557403913259174032348103016160997471562794391709167604770527737544145497619661032716647633043124540689355933374377464234421238558148623126202891068665621922799311229006956490398022653427039033017365633899194817638680693353485815855239479552029272635098283266736809198932103808356164595576392611395493880497808852038498940477354433287986105208632975319332266624954483747755696811008994738835907557207754021584511882443559471751819719514665268409137696200108421633423283860622348285696714717650972675698095756980756199762056388443499734697003580388002152502788856416490274176446510423190643991222701102016208630451959701832314992711199494669447716719963942078881886894618894404953921473328971075334902467816747295387043258150030218768077213370118988547553617481719090557598962295979544165585925863294268180476137970776297832784123439151270920467886636315908802892566534728371660342520401298646947239147977305742032742771516154440853543331474530928867185426755547920242747147559995171279480902925807106620321755969532972082705170419105322491554817907316857347354264849447278599487513819372897337741638571894654834675624019763280154730376937028615861544228571910390208722919058014323784174079115481007121832569610881326364250608188642062879583967845603471056193699369876386126354724519006680964040408024664006016679829846723367398987494314871116978774648509789708880901191556636723279103221945377655884601971894327345007556745898681074083673941478113759456017303300692842363370124201681364606264931039322736900702195503904799719333643618333150239751991849543866447017091861286652452671770584604627299943954825750920869736040511852360887743038366226564456453017361157073331376991005192006749463963091270622521177093184429525919397709220945225103746959821043711031985999696851135174437198849282433872396344825956597784886225459478927844331755677392199392776790433807136608810801952843370761539768972413811320580166639814275532853855652536955806600038174777735593707059635956736875878478613294802806958804220776766172220235251562702259464126082232787449391476455491919238087606153797063169049183710999571275701177326626121505736383953047896485738237679014812700848332862455589350842786439466914059905941311087246657726197708270209328097909690282374425524177929949301527586580862197297008460434156617385859950691544650357043713081739883981662871170929703431503016989546636088285311297333082160041349315693360262201668217759314117685421343729279017587181182014200405213309599519768636793253571073317646616324219951779640717617589590672963017849386678919233153535315024010020868593664138752678219644430479619673545592735229753800755683378762324355234404888710944699769087575026906794968565989826780222325736440932143694883922601157588858171158808573022325548254416988345130359030835115210310677789784637843235368366261607007956091104738397419761099733504371409282890676603214093900389075034250910459390910713319630107968478287794680889020729273880922892539602116451783270742548692233149693759158410210425195416729213328963999967166293083680727925669500203352350619398681255244225148875263971520927863147602841877321901355607159508181400206951703562202038067146306633939687624972992232199971729710689095693753000354897132745622622485933029490763634768014740906525641175687471332753454909919558359509163673075280476237524380637510402713347108665118890699306164287678030345797982926899317885228945980754943762762049471041935562802979967679850485063643097058975026463737176985237211945552963484229746839531779100819887511846398688870938740947459293747031329115695924861581148457625780013529148133483586248986251883159375717910655515273988303293124766543414486057828771008274585480199321328924065197811053719242601875714400700418121766437805229907815793748588458228307932337695414956957492575124313676431498199329154791283871540457051827133308014131446842359191641293739289994109388990171472582836467270426082873381837530122470518893444679173217335698487168814549188121739210298679815822878092105228124944072976526795369317417336329651271856769176024681022366071080234744633474274110647576707338415083015749600672039317528685046031711207337282886185111928557780442461780192027582377788361433836780886438235588098779455021729842462855899664759336074694851023469763270124195141535682584348808962269823965781469926159462289920677690261518083036952006484503574922264559077196838434708712692809212711064439006322346323681352236691070696254705979510600125551128790657399232227196377236387955751445175192288662833112573495300019553743357906620561877963991776614698617701248669529366676860773837935625879610822242854397568288793732303461094035955624572838921833434067160390722144981967296445753693166916627918190930178926247451692635760442266367017093005411717481888738294118851343602857667324990921711076888082564737708035962435427807264885939444416546858840269360344282908513605590529728793540462897220449304491880850104667919089558420527122055282452850091897190732246649524845162929130556212360781611725271232786348376038667013463193851162422022718270134800853687202763256034695348204251967774354783701421417967908088034401603093503494492324754398825690753489953608715995209247727559973337838476344138150629437254580222959689415641591522019841793230219213305530123344104807018435509848397828758264824002486523667925344793689957759043038148610009836593205936353633798000340445419463261621109618493698955569722531327438854513144464250490475187364768960982225103481024989503591829743039803348046776265052948283028492149711978165954568970905855538424847652260790701476881802048007408026777310914973790587988106581699327023617465209391636208457005031439749266148525825735864571069503865165886009442705715369793807545281830879947721691744953182881007005230191672079219683110193564584932059291763096636795593528793099854824462320461586757364329150655662226776949637859293485117523973799231162765595534099104172651616242788038890952071789362066493146848567080801961214520215069154530218476855346122432173171676263352034984912082173474218176931964693358344440218813847716614267852358816505923916671710779751680408458334720774987434068226194777417465713743270425098844374185201152830099422753566303625028244252478208685699094663356967448305617763590636531305472821480503972161077789459330628880981662585191465049963864451886003290103568593179197734340676199793119853144569051476544323148519384782525412856327642572772037693207753014049728481179561108997906596164245051914843252540747061181669623471150269278743303438168548709741479142630624840550574607067304055447585286819134632853491889823570229983535392855534072877303677727862214214478627644557535008037361069770031523419326296189252819256404997706128204103626968430769037079956590189613692497911621455635519660304179315190532822761925580907165425267309908035113286815380386004060447726728090646463609630157715125175100852378191742378371606526207007048305172044105100601194432881961789699333732294648138422110716675892248988907225397678694613284091668264107520201247219670943359674077727654811809705643414724889609616906944180405467497143139988354430082745557574876452748460234889976072057121376005067189827301843794179350423044355600440053115496911572058815503517224363096394152727400770718573558102702417543889363609653464765367324784104329595593953849835465019914545866200016247391103966100585991577292469972312691700620681027248846179237255931453533402238110625757831206422967149695010050960289651106554117046046175842462348204626372141735346322584330132082592787160786270892598344577976337903202216601411574681533608519851212330816743402898433193126826825753346248584251046678647191698458562919443886114794109629816700506120251058830333675822290346721312839532832881416023560952393040370083058608552544114650257049201356865316434601864928846406257941709618002735633972875387769754033158559974139898713368752007240525912476656173383571271787592668562135101455418414886867115762233767112340861065164962403297607665443709864506583491737529333529531418647310801595912788203284109937152538312458873589663483758073642034561391696399197727890117099450711304092290491470724792831433201904101738534055480638997363137122903345541751564904589189390543137399120594954218439558101199596675188871871806339495472170205303502253271386684093049945678421636801904204763751731216806604411403614270784001694446255641518823689989848785283276642211106184996909319769398603523032390742943091959698551236585056374625951662514050254250742115005386366863914096806428485732995729754483057768268520279323088759676708570240637748236574554367060938643743022329579563926270059624871313416886408170788224773894901532830087813834932259775671151434692062912197072553297699942355643430050396713224378934453338584571658928347248934107759194101828442137385419117400179809696549832819527120555336144389177975899700974803587917039165115101514881289606181193116044521625757926615976127519363595450480691177618959023810622240932569935442330416398905937926685873320509030620757897882474770316831032909768575613006811688260838526848107420411923888364709995955281076224793204085930856951057447825990208771008307371873237824083924862356067607838590615222279412823434527608049323740543660170439316015395795568767460476922133666475182401751022424445086399986193075800628765573584130253088954716033693307479673443884648024750809351431868542530579320514075895102185067526578627892923258403445744106840180044782639639192165240955239109692737765290049705846346738674052249000526688356604209604966012256699237043584344541547332958249770460432574612720884065402241118577387583673643985149504370682682894574575975674155986531072365715932969381667005611218457204226552676770336132072433385255043118864191555182049720279307428189671430775857552631118596979731208260578372289229773517180056173970238875828298898271568615267579185181790011160916010994314069226181559582278592434876582472833334640907787296843521401761339221019660443816683479467811458446051654829850830801484774267472625211570696835556797306658128693084105996832577017804195037043730122066776374614352287809127075083620140489984156118292148319726171667726071078449636286812717150646550513283106311481393090211695459514170366287700200077904271826976207006729532911809086774866457720128874200926229001153341929335475441859687944418224348806428376776290231481224269323715349560520157136279822974144186545029574845741234222843378757518297903915104158166652226490525153884713481011750015828795050353433569882095298964368855509248699215408761826979237317854550665059768797104101433572479092340570468384297098656701636487149506270167765409747185281992134856111622345542578576162788211599074410440403536295179146361509882336639279578909732902661949996200314919191817967615258351310219836003289256970190530478169170441973841192008460232278854563268837489302056141356218164449490586333043338863253070056285010499436576072562168997392351815518567754911719256503024584779629119032277096472127146394412212108394690511757332064760775242043067478347552292807950322073207476342289126394312400904262143061246244287483729294773238825800526698033966515805348344951982955029093783769373365285043777389368066876531727802816099991288497626383825161088693124081030626640516135733460813954512587612074309116103507850207903301764738622683435229208682013311568760403617876405179307358704614849222652600497866268727957313713325879309059316477035984840723614544718047891347746782178628517963605793574995939173733925656539426044115552877149378398831507115053564092991887809255425829256767037790392642053662838180348996206045055064775152796952238145414588259198066275480802038125428806129736381439938242405574267713795690555657917623080783191292781801246755626085465610366112320283213348690882010378102368041446622066725975862826901998991611997162733014957625768889753142629717200345351863649383678385867170185245716200571247096275729539136440179402705972586264256521557327264586929005331477476005071870202724279936603021908113925279643382439615895578387355050527393976244722089434258620444397435520935970928709318488775892239585851156356764854055684848291659276974038389477206215359452943059872224311281612449225168932531530658961664788446081518012741898664933639703388572456357062919712053682095967292992457351316030162273123756492056614376455002988751633718349644463774294739687737907202512003967057762911368357524443841431719966885675551408666076170418879904487030649730408560448171415334748757542746091398543456291047809344597050454585452041990357569391995620064774623237061087895880349494940543544322356253781215260024463964022836851724565645555748336590322819631323628318789668352183256773178390209633163189797035097768384811017939211183144612281312147107068084340521243733768328420011937181274832363583785732147818343394278712446001529161225037735805200887663087135687097039586571636695117937290100701430274460590321771115490586384374335943570761744883603922598571529289505717969889496996618319727360799159239111068173804544190009019053833350263915046243143800354136397665199122256764246451132899442864862796761847756945575836711197676861422931666810100849172491538395665383487878099399667109998057222910013917206860625167962290967132518857112433308904222814380940315604371659512601997305151929975114066725496307479619257726354240329050112413172268260187642542817752338912881291583045811480436533954967406380021492280020736964717182861853866665392884148308851411141807053214116196591387137679116424553269632066701972701390850105613030077640995931324102940149057502384316459350600185680483892459488971174927990155032386268428438067992629465805246315712332346054480415877706158763516494653737609350883445709581870839860310283803720000201255523063647089106840916270540125220798186979130638393035230869033097830730653806814821562463420585377516267526678524553465609044169382640108873137677283645448340483663902816215037820781662380788232288734670590407756437449282377982849511652193420260158363601339638997907116771591236594717296928982225593096086048662992443518995082292607177408602591880649397843349478686163100294832274419150702947986177040871551078946677592885002463912381774493165762118536926446507653855352424567825511337365231134141489465255103203487387002198276992236229633960801797759118403282879379945909787235199452609132363551858094287095696612496390414937642316591951728346486107770754209829775338452809169044536448858001655947555536830781027387729870944152925210612783145840973769348028892960717618221665729902572487956075752729296571152328259490552431057359378332805363392262336869648241933468742216607729108548655948951443582205140897936844677272588937017082304831689220057674235165392682311066899140963780259690979288950333179639434297607963439561322871313468186457103742796905366517561517657676753057448364132080935557100414170522928556104521022361332757737018113411297297767359601778198751880112778302000601646504470425843734076751248602898736770541081282246137611344500727284012458285052286078154521260918314335766380944318850236604900213485092362281469029311724168729973766785325361762789039945724596670813279423194720179318410883414203348414676930646210703842831386359327540691598577303723541329607519017597853784369077634397710163751195176878337314631174552104124944802717246180382810175051023704059403302240804759422231572582878656439592727111618937884810321599166087966091451438442599606134853700017188722682199939195293105132768675003238433953553633121421113419363644401489062563887864710809727830058319223514630694324139492738487917837160121138101965190499051518013239569694289033353895347087838866802193282644947133661730825719720240645274140069685975677256236397201521157594116308622197799196702441516726551702957914835583971763956059270460794218755635243363834170418953613057260379602859981594665166116860920777846190059956215329224707850012215843226924768252270571889547070053086563268456891061991036214958141394641116592502599965271486278949138205540956821922342939970350275312725196028094831485369601975238054934022017875907545817363756271160330738789664664079553553219729210178564430019845200271320581604552034675194736180164776433448507956896541449119644497343046911568146110648991598921957759727488008101913750649818839337047809126488101307291140231983324348050176256899993588360376667998638306107332144770297500917054138780005922887344516834054921474843405753416612435166862859858492495505226408801188834027845765892261510400230338617579859126530635936025894649543298272385953787654493674719621182490867431634316206164559984160633270264999505327065940872494896460773459942535115840090869850113825211769488398257737609970856050584116605489697481464864625633744643940346584145156817999400815127517967286255495922984434563792301384527623686549448877523161108615377857015173833716554523868223125853872056787226932820543202757183001609495666836622068793591424694584161901869196131007322751363362712659348657992175828959257558682543080927445846603736562447423843037235554392917193933699376266198086605477949224485337781556192174449068942529676057657472461956476830847628620482339613429720137831744049679505384117843566414521934092104449241208678774970656046807574586319256596265788952662355495085079132105825097211260641863766880992566586702579271771735006294979522271864126391892540672724917015123779911797696204367683417464621913650734245493458936035662272119685344168552150127318449533286658648744467396229975920510332094262174176186962802263248618848367679869710831673594326913886473017174502694069034301042336636264506816734784467458249796586298881420355714481616339373877965739566998212876080703850131101303064812846451309721792647513254025719870110715777773344769659070740494303641012975154475328338448994421265207150570458624324811274931824651827132404366689434896862851151862602372858991412680137112143745733624763292900341816130896095662291179809701504275151603231948542549007198086128215149104319722993433441446707497792099204276855762319683114023721131098947840795387796184509821228753315328624288297545877065676542094059244542903146890790010182259522684482860727367955975569589661996865618287688797596111489361735809008735465213042579377702546186298565287845829497612625452178162652629104671607825218428094742763000649164331758370775796751764887313088220449935810503805218544517184538243938034477123891263487247652415503131807194363224606386946225135256000879740973352763464627928487135149496246984666528679874274619957154648277281696503894719528313194684950741682217144934338445087716872049643390189503017288122101478636667094224045235111538356193001509722394893352039871026804496335193685034436141015508776143174714671335867525414490264824568310043130384370168852584781174884423336467923819176556314360864455890086253493517965287228872593564623754777071051735567231200379588012709530860597109991837038930210767406360572888952478273139402551281119816572605461072903427809324531534839398016444122779085032401229053433315159624257751699024066553407544692824758157601702554821216783141912390918242600859813442227345770446115028079922165020967615204144476052593580997685180170898428648770483781094985827619030532506658753869011519284963870476825939193011569961599728830582503448352563620123472410882467190651235942766758093049693484973719638993793579563976814614271658511681947132020584385871682327127146949471230826031717837087752934233576467246415254213546811526954955896075717973939123732130782853314184192083677874030979812843977823897877031099727932417735999407636339781367697675776917873708171665067076422869493555897865783232860448620432986999407750595450316976024810187149991669910775705444597359222686730340166567997330864509773979104389748450445311550761120647900137407106734365320589250646826411461034236453849329139591093831299213929348791215372735043501071261490941927469831717554060669753014909101340952849762318596900241927608038980477711158493102095716095199188020252192862576877666222754889730232847573669224372223137410205026582628389993405999564064194466317538812815231950274332818913157596976284772496439790402564364937640278271732981886541001193681627994675661707633761846017383648416899536129382058164289106757820026862488213007747488479520817697517264291792634949751919381645342968819469313678048110484440280652083377674733362612760866855517138358223184412566932312162475019134581165168508735001717886652404089912892120194341758278588708946765623510673812532193333462701859227071815786659461348084825677219996071962640916920514691622948198736676663936381527054971444400657884118298580716970708252198097380312112436958944921547913748749623221336590216062959306609511685271786298709447609120029230962768805293228282610864075933786489136574679508687089868533062838949784795599872132280104479403916440659748862358440707745099577475280826539263014956720163787323844100455575105303070683801302006543023016872098260010868091552102192701891717896469916535641956107295902308181423707451962519287256725321181115030227923375311677737088507432530409175979479197664417907582735466976167849390621392200992331999649726149625649403130193336673212957909196567289172237236421173779036906590514474918325426298649529247965145534513565888413842918638652889163389046656397122176850101047892689844868350615584906368788705246236248002554590761420889370101608316113198380113984202065196269800186708818365232522497480341194213833210846726878124821475256028262316855005120555428989240720658450526368283346755505696479314981011834482915997169330924012097662579889316553796582166441291796570548627381726533643110139113138182968000094382000574783459301883344325500666618730704842475928763466700672413422512196135046503733511736189404988796972676094225248401536905689214564743122384667010413369212447413229397218927509016454373792608777385003735362165263776947336058207963873670151279473259110916535078908076637753953658096168746291675217261051973911537915155842540328913273640011455982649553216963265896942918357105827734627746738886396918290767484716589949396801670529639154379771214502297996799706353075839035104113699787110976366046000462704667337952713452544073664354795487015071858749356767341843115869557629301161522041688793867595434733405121715948035315709836371363232493484693016887203127138421389503414843362848320810771053868401662018470905564897304792135652032513893540378105186641686816091781769011396654955854555169606308319684241682805359894009191942651100458852177782855749072595720882780714271157324511537833672458918844834856385832816268865898416333512674047556222616575656262146610857572989428077569325503699988172791306970519577517523036963893340975175044441404030455331407644921701913281924422761754187621716463995288559081754692552292445270752723477890297813272931154959267195746599870345983490204832118120751289315734425006932508691954199406717186320516337721108117369229437252348586235685715903582382204163598869502633511873805812434624869344878281053020140591183930511607018202918276126529714485480445400637066609635985378839732687772600143720897673319276386632338077420893431515855412168778115265141758024448250949367939615561681014929475977985194458943005218408523288282985137944792247603000113418652659516958072461010317426673671048046007173844332428380193048976582608068708669022791871282993474625209772481647059543446616983468947531556968399467410089814781316199894201323771456772732467569724923456669340507533207037776044347763037460999739078476162656707543285123408903218252399960819845899406230613791919251019449981508262170453666387056751514946341897078948388693263169314567674686771202337263887768339301085232985803982326292823395680932580691928366781882611213998380379447199369674990335470269161617392120170615614296723853919165243233276000331759449448304341502662534669410334070489895178910026407790533093806984556335015343059771360332977112835128345112749902761630671099230963347009011209528854214818822482458522108672248164530177719799016362837576993362929685794281987747109600249057718441237663592072486396515079432373209139909705996078890573828250789661275979909456917008737502562067290173872912178648302338662813635477673184476978637319997619210604588698038872834446699840744524749052507071502408411393342305026434730353012952057992204933669561510944494198343659510918830092668732002393135575122345550993143653260881103510464977076190539395735247725200209375618316617902195601573535645028281139183178253177170768837513045086447338631801088836150240164898527337628905880488983577665844994441928454490417113385907539798784467721875696750624171925685111615437767184661440040190433657311677415590107122917170023865149902242428484079650167749467032396031266600314160895436569081579268273194142045523499852673572031322660715042348085811692346256773483132522789109310413821726699993694900344511690134125150755178119760648584179509281126114984713448873057752656504479675274718507625542051947310054254739892036602902095648903595476444618145479520045503792989024143499180201763657442981687933330412764579264584725257909478414119414023412406509119901717518754230746091639711875373407059855410379558772235866164760974771894403480674905534913591518782942625105566214523460067358852367066557501911644217038467189631477512590401767259639627229135019489747532072460161931563397798512499209502790997555932779707151182297002779601428241096845107355024592115201520831021841124909131733037635216245410199321548438596470906336549954451103313811764506182558278171208739989291824390534581767032293479818176134910689015452704340940525250235623256964518152338161062323035496912798494791674994191249997894647760068739244184920335851639752589098431054514283420714741782373071038301322690659894745069987590669282014418281912695474788990637544872499868942930023784591362623807353691531274170193246269410053994352784458792552324490236426523551997456816948375794741129166599557958035722648319904315989280272619079937960658471752920448039136083508086055375365701928405074791566397146516357157436069096408858533032910009851257545505311995731988603097550043468691778979349618036497220567215166246286881226790657464354246105262612356364837499165011114614951448371465955118849122417077432070240454690672605802587394747021608678708814454804327876056520555077525908174461601000828001287596610098340306473783759764016802078300119334970780283624362953236799418682473064874061757049426930122882649343718992361656597674904049257645533780880581822773087364586839989407100733843685763906458096530134074221137845482318432890509431950865649729058177134446133692778948160889823271134353584252896368668807006566559622404707763738011750568931251918300102907811059922082978254162024816357546053149017691743795601626232635190750556879971540356406691078649147779983383509480455903735431289097111110071724229160039817745774823450106371070744888846823690576113095586292302024922645477035499176401752216970692575517912998374371199971223341401939642916697255690634946145854552853509942503459273007413989181278119501210529609743034301094841261566182812381057033633347460512068399183433605142824558312403710606100390309019403866446601185400309239360854019027279146950700090635685642310765931334978742981814398982272157192491093419987733720069454632089865821239080492222043215720578297382504693944152154984989179049378941715772293336208048819483073843998608436013611070962989697586538915082923942576531705936025704351718366837019487832349856265548776235224680585781392246899633949630715205685252770104785371087536026757036578775449901926074909094125046040178739027228020142853950191643324094768776828142925536978448851540230767892978104658685891103497964764956656088267093823363565600303764021392189789592399856270260953070166651689388104179476494833092024458025662398138520926721502409018649177129360336158017578271738978278291890213737303886112515203394345448565801997868483131793635279264442780742852933198425826438898753589440849346521131275933766439124319669243209125365096808796024290771047722614704710547255173564805924478396408020553085695839498299230701944641732652303846967523385984997894954407882815447796751899871138848525010806478021827862816050765422841896671633738174606114524164125243601466343788113589632205230968987562466805782755651779067908965460183732479018757619031914000556288486316383043313786345151515123625093941847320095398530617114674228043086861847066928913923949933095737392011735366679063520278181937622719412977520890723669627043755793888142345456728553004067510788643244996789206909656568707416694412008562855635038102341828503073361428349863533784689393339140026880305293458789491228665121545490954964401991665910222088382391737508078952594037165949632461216097846756704586598914041951403604049815720021948233039603118276004151375829588910098600874690032752432894362785756815425703870354541274319273820339162585335876605483796655074035240370061889100238053971422134262681059782179373947619326288131573366335578175543031630933931090872152349251137947038082818645689934254477418838690593498222792905672290631011465757055877649990381599797160393679883845856479590576226200148280388150956628535142737938513930927804264945220434447338915069686633285603233956450181925428047225189088602027411998856595703511509012170097308004189981271583130684018423370306681658440531179202223745730264663597574734762394570209544463111765657003780719172326062016416458474748840760986916727772833713286429300469208976956043693469462547691993711727233184139257401547846917322791565086374948226990782881319446474919827540240146983859967823997350693791407074596879164117934304915273386561450263274934800573946802365604289898904808726141102440855265935021495059658709651485732212031873513587709546584888020884281713827037391119150943856699370034933855442331524252738624742084023135210563694326961235520862413403693220351534637524088949800538052937574543580645710218022490381357845826135519543013020134414422111319922569323768982004831210215153729077571882429536874867184045354411256855465672566079708416523001436826950524236100880617730073491717442824243064523405208205744276681484490866574933773623808645770319988070363908536995435808390657267128372992339366528320038982941011508580017950456104965678520772527314143561687657727735835523732777363388524581277237341597466787962611435891028602079928793209812563950683513734068170866839903286742024077503582597837090218562300041563496132232138543853450746777122077177294277363330304523748536502935495792864812646179840873283849926352039405432334825394550104981549786726604809379623053802208396254684788539177677854221405147397257901861699074101730279383644595901451812291914270380011545372574993151639604883495426412812316332790998580643801231270377076957095303924653633481427038850798017331441865788302363741531425780662075587585677371018236882787018111962784760749837783641099804659530229315742177051557215437615083900409627594391383603518367320181539216669319526589946794666522667018312924744381213438888310671178640827332169231813753058244397545509240662215454024473157504566891453316890633428591689901158981351396282808490286784035882548835500841697241137649225999591573233330844772449929602212924928558325723014661317807437967854080793813345729757675606192670429469544259157365408209023582235575314173647429851112550443265634722297751319287139766398461178061584876391718285441664732165656017843229587830869424330891247425637685772718869729769777078093386375513252307763176538526093467526462947463946978556132541800407014017443032990014619781144387680473091996967608464192671433033481948940670770572169087051539684700656160911185003759362064672331318911625149829191899412468040172469643011930651106925585380897957318954818610318342608902161127980805699099678634574601147614685828177916212948311087824133489168451857713421737738676485571504784804604189560515700838686290118316577817828987215735917604251026984668021615023145594337123144828450579855348510498044302616072807724055084293031778175270681073675067492168914084283929777040801599469852803730992491294771781019106467604614209217539820644757926683279820847598313713946126456633265700068961462520173581086480965313235425543661179624324628292853356233628832429218592977657893771188215420341411922022122701898664128051164171991963357928821206297495926220922705884816934032916429493918667562543062680769820279564269453623069144812114325023462664747224384471821207230422011791643619751135906226741518691491751395150086149991051020178690096358609690601696526790579530879046390979775595780905265175801984007680484503961639412078602354255986576332110132420260422281940947095735785267931932501175515604498244518935682609259666464703493835532969708451647172916054620173013368290134741556136781171904247387018757225902276691423797237629782553958907501987024173303264872459463769564164853166071073066307172286831416801648261240975638566003292274056947699538211898063189407491350389617887498973213798715124747048461952762826499684471359579366257436565766944200044226968990226720240013026864760378222553003624971434974221731747572872557017976968716604060481992252792684730733568689951594976820316814713187771017126641870681451057706418769213327139231906989001556242328684593088450852952221087756507802132113049139315715203996225860526575716881761477668517667039412129565416926594232662935962690156022011190843140432273238182602386160613416008742513748532646999252920480409453462507346799660680303052495530713547484716050914367598677303883469301745886304265552113184544825692643535203394023802955672163959109789068831956952563923770606769965344679414334215797406429069099275786207231575134230161046455022131984039420624081278269016069017649043926024485387816384213308977733709356282766463710568299320996466489624574356487009789917818002746779968554757327835600713974607086171483728483118984260064565559271278023089689197564778390920625132198155220884259589971412835069990602127570801956143568993624553477524137729502593900588667081025363184723815909168740313622769479879511703854233204663441012758026784802759867917052031700383214745428370381877893364675540706287017661737568441136197825964211685017907243280110305906737363580453322662850447372249151762439621025283022448520998565314778172156855472423917223269882357751471767796542121588524479273277575976016636749953086242546713420996924991302757343140143413788308002666806088960311783700504029706864549298400476438920615737383105263024862604871610699296456319567947446015161069111492077791828997358143476768933774158337531590062757839556845328203557732465821267708479083402325864393054274647738338832753318303527111728570106549393828502179558665659902619381159080364400048732902875299670150681517321501649882083182133092793201280329004671511904195080809287241144204248370847228031429978166312309144881179606498705264610887254700233101947725274126138286904340878764487676611609461259032815951385591292734686411850616715605223222836276248111123853011750370979118630480145415247862847593585833916202946588291473783553356259767716839348676687123995873466362294539728929604483957032446525582969734801672297768154886780493139747444962856786422642786593424501911717887387810077348826091822886046765059357416846513600052122978148255056019500872679464710151560368943323663700183155399141065089031521292603261315136579567658411685447731428305001521826159939862718299764392538315779381451183543042099112617921723734371723292662299747823745804224866720807663668838781842049740914892351064802627875439055044103600575428293597703802566159282264832877284520365253443455591362536880126008856841272366844440407213712147724010542144246849890019600446594803773276846264266060583560960408120638831644801212919602353588577528914321034501734368830442047843514776336700481081744658721155961247409535744381085004439086912771478060474448596070443423642099163813630453140411864022570243898422200325777761041306388821998197688506321999421512092597436902246056561855969949096262132790833905781269506417084642601755550976378410431639478038457962871455811093802868593168350686394980554424767858021770103258402647576751860206057289020415577818960265346665581089476335382377638861514829167502457343453254969242469825463918019840567763663339733992869426288011607589606032865933959646263268953426107503014843751069338537443807864059380338030231737198949642394297868114290919515936346880650236619710478634456704899133032233212951831257633766834691103149795259460720231526574256012762198644610352382417391977597449243058415712528271344437391409673122344481966368213775708276138780327050176640772738432449497722654769739694633383923968695985109797270779175137449641237342580845135589532978899811040944146288948968584706636851008901025426618261013655127973174539829059067118313929226888049982385374763982748403233774084467554959537756916662683631299571075895651061986424581048518615408318553879405320575283269420976841303458660764321209376359659821788745358827620117254668955473255497322231086754943326018497491577182687199189149458120463600501010281544702152353949746091682292509198370581637362189824680317463138693006147423908410907427368042927250328039997297010508966496714382508382629934573555294756772367322336977315492354629306163465267734378526361270559346690336733702630000055847978938395276760895732046584693567021239568948095933308434054792186704029496908895794877113668909449404114063466041108854816315273787522348527105474146336240279461318894140163710074191676368318804770265221769230398246275557665527292488029439802807051971640384247867163838612557248983865620131099408007678179630021696484401751608147908582680256466554732541156729242533481913313028379734855999921165321069267300041296602757482396006347267328077839139867304967900518178804295040694746833265027572951108034926721510130959994681689305028601639489816447395134162298282657800392777416880963052904159073985466276924981228399905143292522366095986944110402849102335712683950108895746235140638252055797369306057851001175577248031557792324891687098797651817328087172777036205063366652653213214328439469806347126594911348328164900933062730803535777558011965709788463760203881829683881379272273144162565130035001011693689840396064746734131239289509628467775015166356844751379131215700852644075781097589085525860834199519566720730080955520459762603734484212590972896938832718220653820762424070015398245218905080714279197982133834300762918949452517101740017892348729826657941263751266772403290687441112932988721496437168678044423387684754446271385820614708278361039804458660189956906164388538705352461147842927230290925067996786293269104626548639257234404316030063693753447419468059879743092011807625800413030853149134110718750717171467333662396489777675471753350365457288643366018521990113976601565099821536710291967301952600618944407801996059427458859282490702653381505476199779700253914969376604840620462242877248041053059001743183451600342370362340528214642878686089560401969253020159962781200696990934414036476790923851655560709378815313833767812905759459368842541130179803271755640593836257379555660121433318792017856782592902459176531760775761796327637418000685466569258161527373647875232889744602639642772173060649577214156743205348247772174330858803919753215000299302118664241572466620630134272652546728697712029741061839808529848474498168615938054870625150374277271911252823098788690368642746062296443328541324325970461788229882713245876964117429026303024794167550378812753318096617008120704290926726419007904765339715752798773351699843101532846147494072142717333997976527541319395938819930103340579863816391897605238033132369567816787428226194509270288229631504086254737668093382751971001877686476273000456661847982343997258598919227514594789588198688621512010289642914200911828369960903499072519797150898397925323878011016197957856238539944021158615501796209578765104326310479536574482254218884157799601457526227268553442110115419821028367017616097417159052457127125352768767641252596262161585905647378101109175436413152224265643564725576314459771075891443126337831295419641101226762650080360726772896325005222528275567400445097753319779806992819042653818646061250781329687825308336198582922922621025189297946796744346337604021071977400091999948610310947970768020630075132369396230420774254536510584819208505929490090587168380416456481036198128053331938316907274092841054807382819159394193653986328496630963543058564279473144299642793268898608627296864242097684550522791702209840799235804584910878426618467351830643553724771064413295404325334976546878066888145086074552352909028260198254121751576271527542762780698243702639439717191998834509331468434382693247163928932538515953213514298862696109869410071411603798810699982156278347759004875411855492828090964539502864844074846360588732492336077012852399382004131936450150243375876213529597364618497298246887683940809431038805385113995472930587302095344064913865081303605510046268073643951775369249603622368946397553635035935489795853998672811369993732177803768175360301005694528259093292928926463666636799339659497627582618243506898481435388928893312860224627058948960028641261182790414223693876939546062403023436119078186056020521355771641093607876425066230261887700930655837744409440312414318405783713791352006032023099920145091823902665568526840370903458304228463896584117662406663931906650861973660794412959533713653505346656359950900552843710145493430662255344270982065531013076193105567972514680323372759559614997756847465706939558509868136238511729449876755429916385074419224939380137421922006929871991212515486215094753115706132133886596395315197739342933032483874416454203451983442860832382527458902695697604654496344538881739754665523932044559369149666750822395200326114464254103774811586760520531474801691459761520171491808757101099082075556552320922412392864876785184439513590310759549360292944342043246249772075768408009225044972507859527736780041969729491547856007084584093690885202204731086227492341526693643768196369230946658792600030725302487146245596232702571696987128097190905412425057183192028852977233969318174559725816193557156115848735913017909166287665488034666144547605893672547144814066618361220182418298787926195403430638232144499884661244109358069490741779043021507913385811338520277281830920487964005895621612448211294602158585695166399283811875897050463276006982999826399233945753584117075831200225860518838490716487111775305449905163749189336924618186071775908244430153640179148714778273448264147540483762166509800620248760879228753801050859117745882681741841998286222890158044985110449462203807830043773835663110876398419877496760496800652785773981350605632781474009620073173249943960883220498286994111896236588620713695815058143071969709330838712636188456837102484652971103637245301083265150860932959829065034107648967850248560055258900485490057052517647761515252688954900402394816569963272115350635496570838401720728047090833646069027794745707912384329495996472203625380120150899195246023548035826081666548816816816084199920464493360259736352871784928260112340738189615257024137633267574579669475039022444063789426027253372165411179478794549555264969991116894983062632403640464764665920691475650227850174143696223067105026306676169408332408735388618589740148920113626741555199918310928614319922561592633670159567831704195629499287493131715574355356430294909135117697079853992205933689666775908639018830651183296824246670021149115176112576215406390585823422268675991806679636161650153683555553612845940282270915005293057682742271176728923071917344765192970157305810385860193821141427530622414961506266030725821078070894532287146476151861277232673639540579006439231897098895323030072272106778115731511133073886872056753156845699804513094564508385379541243771115819522131948059569050947476254125286707998705596644327402336342228815275727575765104870219803855580255474728615412098766980854132687701717473855241448322460148343874859424847162690772236437251963625590776656147474127729557930314970740353018010047056987789095063463491310566681719431981391238949171462768660328130771916428686312868457468014669691259768765176633118808237163333972724152154201034407382327168605854427696210070027286227069725697309939105824063138922134309075108697321083990805475375711592097048919426411813549508205095415601269584032685286660973510950583477660974478230848791256894022414725332835879477859359145799991783056672535902417650702587544531248878597932649604802285811449719793385001476173520375056103201616167099628486210992319005678506418648105907117155504401192784383864149547498516738104958363648638808291970355661314767901903682493449767464976979364114873595887413506191306989675016174904156090974005050496060276763391664740849225123389569946131731843649583965928316816468484082015585339771589273666355690832956450474383129881504412510311763639570080402330932549137609057660461299265472178107205268251847601454966733979554429395357686685564668555749457395094747810246731551608737267497192874778830941822129540378920714884487515073001120163857762568262361906517178646787323858329624098117552023125198054625567447512494925987236308193241177489384168132125974264561076842812173619026261330628023382664204385016819554594831623196712548048771111079483763092909012481729250621505990993638026815723653550704883039923744223812609298251072989805244553839955325674731270487059275467796755968713746902360868171505331366251711661182131661392175838748602872677223324644013384174586282613685929954501600750555840445391070071411186330279413263814936915417022556661832055182848991491983963783091924314016740556151415358952650980073556749185621906205052144256821536049484393962261913391124120816715301683788976646170336338296068399964895000425843600218731108816646749732527035140856142780854213692996201151897653102704543342606114323191421574835044363575334403265472769546668150024849154590589973895794698426369620632726271470584568168017606113237122014702783257632805260311646788008427386230922836273504859591626299634465225142695531788444158423061935535033132023720406113017251358918527560667877219770462753245061619577331379719891761012990248536681885681282169205965164419444464756487011964646464117615815438185311658567764121069144838241034980706195422218043748751942224129256844664007213212949836640599845672583866583305901261575058697761947774710156547674004152598932819054039355185895629816055205684591192011486777975789251671511047750360349524366408366216422743400864318026969152502067660775148816518648197810506801186816201525924540507257057599856989625809256619510392080731565223835985283823239980988428815000765352896932023950730715022113411483143656919175622831424899047772407301185772951630319811757377563756690752029515228174495402508157103633335133298659319578209194990702346838938927193511301610027243151299009675840915477727279385936623217503071342941298301626811439917781254401231124727778226888447577254868546282227532002630747305485144912735913235499020836795988144602355604696097777700392372260076737724035354303587723941108734870700575980478008042352939979566689896904731392448800694129133606537238256769843116972847137282538829176996627070206019807161118535609361739726626557294647291507995294787995200022748977533750821337477206869663559541496808186460358670773530278097940920239144026938933452711004545794874778182104921868613408372460220792308860294492372211684675086850076582156151676666747376621654017467686518456285112917775092033061041028584324743207378743860471006314841027007469682090085948181783007819606946366832208674538592123692454875458243534488297271186799903321657093784656696900949258675011774371966127634536568372258895052241269697877874640573646446882468252168808825245931278765439169062794558729504948005848830331419198175673665792655799959677529978031070030558725469632888745762070639705036745887072002549226607046993863069361203580986828362671075761587598115358449900494589330735867395984887912979681232803375797476366081635261247414177377398652135800679521167374187963460996145522907488836384557078454152065397942377517493665043088848071637223239142547896430193476004806537608432865917494363440042677777233399883178420564890510978425227742291456834228178753185371103536341529447734839357973679301255791247445474010839596581976958391684419049219977528802584639377733424997095267935196144994285109618295163250545723677194563707242396275042365968637854551674196340679608637793655791273236360092176511252275301488596472589303983542821976568293173461546174759168216215969737344609462656028132052746120877328666184953032406720755747786469533948448740481072288649557171353840554609014011082117050557772271434538217533339590939926807614805041788180790636599554206281202942311831096588297808859123965237027473394478096497956230543430468106509739497611899100105216033441871426349843933206270050508926264247218353118053893172909953642071142589772962074129480477618140802640000206409513915303511142445902567133640009650469914637613403743057667790826797202312196549908725815779995505188227015631155216289951869642725026362108895522300348636820108886183721124349688216731257976297621825291983957454172048347610600128039714537090109102592234485650434976277686242771015311802333152026007022681003249272053438613219991642011053313360794845737903550363586450413332641594615194355617563952864004210076814429848205896958797763473664822488726573848083478530227065019027696959400411733098728627191114229257476449015655742420670343760126765198032749209009921733275127960813071399407894495560643751125389955838325274320205259314548722990754493880846285257839891827036831115608265579735803979927088229184516640194107643783471274974486137824049010417336262739619957156625167971080909494880713554772875957477137926612749777737837601546122778973437644737277836848096918253600816507003467716151054596115806882153713574880993538891825814617445393942510761199625189945533409493370768528951975696994372371215431195429804208966328190151284470175544424743056222060606686699488203432469789214735433962761290029232459628566537268601497818289250778776552056083312740888968310400479107361734140327283007713720338187264778054204842867930353459381508295162803093785314623969530362053223385403581483974492418046933817077853707169260149251695625224058916813292740555137544077445108168434985407053442035850090925092638018668656537317627559100030092439773660579315431631866173645171311880008811304381980660841440630753266880716913977675972610704409472297020280907533701954285542754972954625416601631766777086894469677689790820411238139873980504217662133118426116013389082592239893996524238929106094269475245974966815325165344996350976219023892487607180023954389718486026571292405658054040321888228469318167538365439613818661095265928801624787399125665304672055626595740243815087174936797856514722406626055285322698983979787293437845149698694450894319284250948753735875174159754512795237923721905771419132957084144099808340441902784170091440481200185089549188525351677687459261210325199112949018182185146398080316072882659669026308394620636859557861087635006559859773084814822209162181440251886685037282428275186189949669449240315654758688122262148739832014496556323732650477710554791739249581642452928094989804908679859473962389988532654511614492612675744934610919331305305708298180475574289805397458171453421918964005763114305277310123869690227198069488014867110428597584153001457565693240621134629974612164168302295618569520026594306823458847668916573703037662928655400275559566868298642254351972937952777669355099267987308754454057425104326050284749753131972725522830131080385248326217081069858793302736034826455924125950931305558135762370825037882762472030605618493127080838618244354449618987864009987884364358077458704612093533595216029632256767580792831477145238920722098119442308682709496522330578508022145744248377231791933955987413084996208093896848805695823326595877041168752807610495643022833764425654717304487619075360001277938182993416905114287645258788862694745118302605919049592352879702777503601021802344800037611770973713616218279880770320664620540684159596283340510108022166020225872647307372914229104319729927567052859477723240732453078133579661994346261516945690553771862225178049421842535180697425025542243671389667969743931889538327310088273446846498290331143159076034162581529971755747425657906919381603074796550778708030130462887943848440557183011451431875959435277913711236753340341945644947811908287523447660853063178702230877713312218608690879752456689760289692465163799485673208378024626052087006110789239662375370720850836253527948148547059302743394226739504263784149093143050190065647762747460336802307792915416915972878317309833726711203105615677531594458624426542847122978749172810135136641253967698808922171553796952452598862708829367325577890668199021554009155157383381017212640333491773694878681204470518187678393056299075410192450771979158822783639925634718391708292437242717640001943947874269309329167855438390360954570799156604688794512871305918575126500400896880128256088381396531449940624158146305509782519032809139395162849180512138546156260366817649736574975670247648094652820219958416139639050628287947273589401653993647073728340813950066207451227673304249707691796238288866091892707279020676512884332870736816969057469441330168601809974435626986465241239649864352463530661131923142246949910604171169475120966354906033109365036493826777818015576442908298679426108837879520354429981865454952109416103249984653798422247017399764641023963304999734055916902164946338712103489755378706819830306770442975508437999951990705189584882348006756493081910429858855665921047142919185040598022052985210716854737962917842430124837613866723653935553285042545081385015509289514973853275803451658730803653542440893271523230371666760207930423565666973236536811466474096840774707448846636306116661080323354433138538232258284249883941312116088792608175114444010573183737298516749852913191087097687005126699915248513380971390666117623226385074723255414197400873635916473271177005052355196265022399085220960488872185438715050040903907076363230676588133094500604146967976627238337054013041818070236579862266689499455905640496269966224503765063365402673811402526565573576840877772939458494630206028384768834520697709937999668801784280680963770125474480243122606113340794529534972986217326320331852139775292972020490721377219154562754809392337440532312699217364740868914145898857026411956039141664802945602489387731005610450521722837610387177140123502100248011931952494563566224437521070712819411463546321773783674720922799414660529505982881219040297998368895594251093121531601480401009153303175462501110178573616289866377021632631411725275959651502757188865829476131865149691848927397445212729766989591789668878786749057371199899705004873102648398070373914418886360612962908930778954795069069343998266147673833779861530606940258598012847070160136443580856784921005686025798112484500024334894094758225217216375938671804795501391690742708507155389386522640767289314479893957122559559340654762149628113520685920107039393477436080440235468069840188125945519612462842932410628705963510505139696572941387836653631514541520458197389406510375061094724866195358314399589260594654475723417897748776202802594864758980902362166979627108878888351107975229205303287437885518635387260491881375819324878336798813147607956377511847981948485456822552445943657648514270332141656573345005553888100983112703041110131479269518478929710925602327538704465765527485639741992488191368919837204076995808377470080224385788860366620388816247995572273899951026985052732117045825132593438741333465526422817386012879620997223840188112897915558597511867961349046955385263521012670102559014659372867793345826676355308988653101026729290899572898135784835096008219817837839202064938202076069924897682403818032046954221900022275337879289539719293413724108902543799696143616256912934237354724676143928923000578207028408397030305097935987824583311165226170590147129283025605435332124148716803104566147837943843200445594354231468260706759938134566681375569978862428931574751352906535616209152042070416928141532948459075321014191649950961614286384197601453382971382966500193530880070687984566360909182292463571518309786431417540302938803002172276899739296914394736404533521638282527369502858225440363170314022357361399083017899045941606110507426430770631789569240731039821605131359679805105837119712577372924538560121250444315142422621579769607610592729232105836920238087976313466018203963600465126636763990317972020751546503663579852948398620531520311151848466595240887511127151474950557706677879623109708208443884784836213653109266441234412264502077230967607345519752504387435788135825081952409250313941106340892828728625763405362730722352519320314969439712785073640354254521089776546904110280654277992264038199276685881093825065839724484936257008043277535461751211114012711253814795133315683762328502572078368208684928307027241640754492684398546568665532194757410604662956529526094994400742074478238081433668203258253700242034545762262250012939098393956504682032467236247479574170451215494844080994349107886148930234500181009050919233997027137845769405782969569394906639917610931295200711491244734673572818859676574560529394343450747166796911668463281261496096790088987075700877648156370388535967291652129870547565932347495304005181530982310379455883417321455499806272540208444622533635194429962208690949729389350405420319314494214027669313710614270913360213054292391756653353851328580794233549832887718239233802060784307353367758461245217642950280123088759103330298748374437808400443715201552393921565275946011586390217715036644112827816742832012068918008855551427269891288502646037741371651336975750477627391339341313390449326463001260501265455297039476709608530910564044114429699786052809436788707438861979261265769632837102775959267043803509111227730561373896520085583639801492688123845071828653528893047083907176803838337791280084628807553635168053367563556703130905814454816002372464675868519078939747144201362061039218767907088049894134714679636978397297161973218593943759746958333527268589948607864789882876092497984198004988800551661341334278434995787192240077685440591798570950006740238243048874014387741901176008597778396148651513393431522470349237288571317273682601281760293350232315273589262885672637015567464537403344013112899922307110673472170260271744304421914129366731201028509829196510965486698004888911897024670120005364893008342392375499319742947780897300535521490571295396125363394014550661401841012444583507668481597841039558625229559752971300564478302558091679792180991710261303070964156237260576579431976878367072162053067792454673733196968169516381076766888473855705535090408990044144084770856272473269255080577988860925781125671940782409267867657413917564497947835833337851628624995181461060717796577127216448799598458379716275561636544857704776265500494458102972589241971523804148913713102021896799301481499364822659359610751074487441209007285180756501386037420538770982520133487084686007281089803640044986652559213874107700219145418461973003199436368184375879515084306884611892392124824748925168156979669438299438295176206965794731826937363528143289275166848490635446679505872157462081481903264870035977306839928277812342149562301579360415607617140038626246585228912188478187710746347791137311727364957468381404573068432828293626734114038392229743426251868733240969821916366141851024308724998759166972893679343997321853600904018654717939498388322434227978069053141164073611198333295998278104962589519145997374619592056848218308091606568079549654505268096944912885569113328988519575489944169390479477836802153227818287909483291079307744009311680375512854192175487259135226926749482834730922648565983749696965720652019695465873546898041545981940931825901316326304162147274574138056229158492633543972388253716570228742784587753727348050576996433202306640560156568022633335589902284248291402804737076431649566654939268631239424212984936010993231947091663473540013587228948168613307072216391104158236116445726698057341072359788563247523471671121494633159131914066771387266965646255260125747899908928692729008966430074398282473220791108375900069792534742211325922991029884868114106319798347957072946266504441358268670456830245800637955258727069311238763024650141538922829179077172077318786250146497290043442944496993236078970332030830312961815802359098192443601669332917754344911569674365494872471604013590158258941798065665482580532479310323842054621044472594483754504567898068913737424165892233939453000312762843474256801917950414540553948577117081601282162704094121473014254822824067111268434532360002000226719000521576740492877756936681276756617325462717494641136027180183267471795177998140924480615448812285654208977060332233579496918145995549095598926381296157330028680669796773755927923833351233223448841561927332289771565736586728037336989869890339260420985792322851762732955860411471255371486172614662426847599447285390196827730535023842991114831465346250934242658794133778106977520711362860060602885084151798241728037350772599908115865895025086655442173005208214798439360614341092350957011959398118413790909027529370164805467737447578218776458164341047450183358851699180372624593061713106796842700936146913225591287631427066544672559331215742326830636871306463167828378601016113444692438318277107357409813001457735394170846824203442886343371701070071689938180743037348590610993773152816027858996007718992693220289754924591775974224382666596706797375309092536959115260348304529754187001331237954020323658578869745339868887422252811526189723573178734330311690003376961765265310893520759636314917782143081269712126408303585950698749431946227089701326364718792221434516551866601730850795367311070142499954650949168291901587258373014701754719449947025044979807013241811476093621182717601827453239515266621431789606121052352550262473013986721845806787013341792657671161328126713890548390134837038496179549750328851593326766888313930251334706578943846757642262006929284384319256501701519397110878933913570615315678277052661011319046744031953390472553582795772854992757572433515314619538564078135361034710155235670431239054190256553194277724417758002568895854735465460861435383311405674510447825146827773214995971016038614982105555734639078049221640358595271557575003035279379782607998851185825092948026611140559123380163242478387174802652174156781202639147589663271780204746243177626934641735346832984194229717363711408739624056644559418724635836114421115941127983580563123560969686289757054704655177794642806460375586665342375000474527443760530421520999740990729003168431904193992825178298013131555514079379051214669679833193354271327956114692514318342870182846746845894328687875534974436109633266307044888189248701935096286777526056620201842602635355044554559741954433627133699797995025037779921231770430401931077120010744559538481441613045453310580376072741746384115244009716985749249200502482658940183175095072937687551704168192182323705683199708973370648730004106451801182726296221490276536188926641485289103756084290278786003064447715279144454316094586963886783662020890475986366610115882508303289121485236581365953709328567198905160679649502511644815822153392300270327085220438493668377677784512698194407079463301374152544280268429441326952529154610156891455862126825412246719339924978269979254325970634302725974862137562559862307924546700351839616862338067737855276333131215711175861353309420504839166456311511200410667170706878535062718196464304691565979807669599385088505645649737398329290766785548420699077076176647613065446462027067428364498971840666414897918443442935918931052043852028382058260427715654267566361598805908834189839050861113625450720302613965308571586802103983267724247793842744435821672953297483603775223331388256881717354420750003815066342321704326006925276354848782197433046831837528766098001430306944911343025017470694751282660746191329910927925278862727007868484183416828007492658676545249827337344639347390038639139438684670890070307423722511343034104644283818864782083991982316382450630292984757505973393145175204770406682183823103328544295398277784423680153413834723058378549444627513808630964381511839325608275586696379186025373519838784863523408200987865513899460039945328475614134948145545387757783434087613149978431649712200789032558299566731572043665529079398789502800132287392121285550500192315877402954180441513885036629255647700619296277600918968412694765863798175742734238251948469105123894283739410115206536344323493921901074021262991247283654696412850414450016473188445608903103913961198938981732931655945873366950174497694799828305865214457711247880345187483180928711638272837808961095855176193797067905197078736088438946977285482466973974480148456960277338034129428150111706362125412121499087423375887921004666612140173854167583793658039425378068481078735530477080091835294298950507059297367000515252707560913195454943500485917429384846885689466470416293994521243557868895138244799896093193457323851212719467005181348197804500842435436850284974171368977556323565851365526134066670405324705634894843322522760440991065252514069186242986298429054682879858536468267485129751423640037306588866528222868729243499461259091962499018282685476188893633977978300498511472297607495931949341862529515334266786686390316803531971115424165527118341217961590397631145011594605087582654091648211243250749964813181999772267860692121157092578175010600689091756952622411938796028408175958467655858696135955904138196593444130476950116078299959629963419836852508555431671052102425828730088311005397073405912102257497437409616442944145649439444141411311534411388747091618231461059817222460105747920546925983544639740437917373159540755458906975114714199560522961192844159126765572705162636953743481132955282705837103108893946655445542975154436089342611605600102220511734897603674442411649527168611005155878992107946568258296446787432993745506839792576480148265552494382393898772967231107103359365389593693119491100486455990070750254726794168299879264305681461328500942777779324305015057918428488207377894094586080449867214235242826642975511127712030500049937740962527874223406397648067351302243954706022792758093869096450922104171397300561914870088079553891756239863020451493570881524362874662282393616054191355526113862913312857120883943967623179188309071810599414349741779437639605127840686871773419087517574774219870759318660268395787451114213588288867961755338084868415840063242076319837541713508013450760669777172326435329658996516211139420227513382942319848436064392780598584389794556897775526870903287778570413754701301803923655328764954162270543168795382390316485756362903717131337167732602389650504875864361572766235933259603341918781592157123462335038453514099145176881475517444501981745084118866690601721409240070172070157320695006703806888161371928014037572662447915832169062032763810891157642935584928240765612101918791222280070491578823013546908146255423260589616148997131393915579791685146130389748780738405608301112422861395973438567216755873239770034671657083941455501467331927829761564847016025607031674803332658244106302202864591151878538761453456969387342929417194039199772549791145448058788536607485302699350725728607150446138916481229021112480793373298952428028453696647502571138656782682922654451193890093824146705637662250269934680757428026145486193716512507995951790225733472441648486257708881962954900852408516430607589567404747630008014884898998726158567521570334922087464446588622577798725997180191903456658790742963423693281137621724311780778429220603575373607933353489189676609105955755273073128225439200899249017140554161055316398245233725553004773698175165770557575192701376168424753888981014284359579886815405598577699913515868639078724652129674299339132949708100581615275048772520046150163626275469435370888629695299044516816279972357578662020388087635872212287786664708157301543227802338110650355649813206654423170377840488577667909940131180335559922352831991730241864013296555800121202732339341195311444801069204498403386213706903439941113636756722891102713305929619674670200037219776121102601947168897164407252929115362748591992951521133594043792500357254422264147580664609242049349573562358500590296741046237897995327521286079142184709289766895657401928084269404128165533775650904696073634070387959701983862547137671378290301777568950350261396489084722021899313146372867406285368901289430865838747766698273863560755364513287874268570357061870115582812614646647886499560380226593347632832962489888704399230112348964796709829869108470039039879110023626115787477277742206759586861072156872349691000681837353720304239743695894680214965313361789764520310151413814735563943227853602127787245861216188701737878708293706079301033430747302943564714460049995445877309687731493624161242209770096992469782690224879742254403595799711007687256401862411562094786527022272810859477468968520856752058418168867539984952230377477190852284232112904782746993498594038134222070602679494262925041065127976517349090794180871548458947554146105276588031919707682247055875308095880624034062285582974134728486126952150876627228658404486917779661988017906979912162920309093765497135420883728826386823968833305665414738795404493538771268342416905057215412124358498497751995094272766210790355469568888016828684407003475415286685033340083343826058543417751310534898761138592141091258490236020961668538742183928575082927447943686073075526380795161437042481446116256051308290824516041243812895991190973341961104830262063225386984934166016097204357264932182424476218982894805959479604379393322606214797278396287934286775570421393904688913657000673529794619026405095763072069643132271666698664240896158083506034291768828611338112480725820670758404999645324230959041886988597818193271145739875009369076331161511742690629277011527985155192953199538949908434293780621674502114596501846390220834900762113682584243617497953657229541994266285516653418140504341450848305214254278338836859705455422950625125428843320009421049226252020359722838699333577416332828217401694101155293641290405401827016634051288780508856468759938961428257624955833506040820616502263341594874285063523782111041446165006845893972275701653952009502437674486227283247080373585386973408958094555281869831641929183985507988607417138808259379098555838188127655675813296100923277005363852758889380177464612399641688323760031474591923195558266227042780052458830904473373575233480118920335329528365357343434585064856948167507524241095754021449503188509006164280784904411408972063933167168039507102924663982195981140956265259176542963079432149141735871490669771795185006518808485539443051653899057649949929188852001761493362129822388753904954001568383508878048867080674489016364530041245821173015918070715419889001416557499678226447590687176265721487763078836282240276585192389676733333195782969761308044453422733068816918809484177904695963962522605458321631250889210475812503663229586005268141089388709087335581914666946647669316977894579338136790824487964287574108808926832441111754452750903456043007244709391764786894532209299702018437816544124226938125859351759991670734740399685246633427167884525810557524645003137456195845786903696248165238082692711746032343183818230624706282736211057400512934896761825960625589389538927629548589476546455557793005989657374984908114513605574805544303967804448353327313422374432662437068592852947456122262766133015906001967970187399580816309372887061532518439048048671083093352139126915221858264209954093325539960819238430905497836890181925680584135716937720120377214357843671894479985759791972306270343748376103931466311960247772121381598926811788588698748224435258158755220564377105611197877823332821314033891638706399011219341409338608522458661628779978108960162117932170627120890212410873090231428396176293892305848244153829671098687707165980193782622176487399372724304997267268403983658698401161413093963184230618385575610904823357944930501726311264754547623500089531113595318041170799777890709562944310776944210186838900027415290948481300612442113302503015485710046629209702563455767359807502376487117878069291901349307336953053634647451406804898167799865213077380021978834080557832841009287545283321737819605509550534813266179550661585051378966171188866816168969401214579633275936420068150982938454065813299433647793782801860996456751655501140145600496537552295270864670750877645052674688016647611941826218656052620672526806760860279635692273280748631454453488342107155760931962441150318142499971610529031489724484287369871827036768887583091209736106618037732877014832331371459882603254762799997055588454583376599572929987491611366722388430293708017586698311472743443312268504601736803245271465367581350001521662839915469974683345317492466679919957497195961846290139465000360665186079416499644854782077078891313260071584201720739736494768902185610271690448649983810837378112080336423540319372890672191636389670339943696039853981710362366435830900128438300583007729273046128792757123209148058055318011613939574877156488683846599453094786133224238406254059961939433223193073725790595083581842275067722765698845426313933734932632899822530908396642205347551589547587389964821224847265073050893869679853080709189927907681043207430109975768674748508026372240573191389936615771918541771871027789755989762667306786320254855673304978828919986400017604526572227869199340234666100429132591583277146770275663764370048474815306478634007706492270857827547118075457162135317198676188144738946709734713856156280506840459083196428038125353684416088861618941194871824538914172449740596152657081123087563434685107098919597410198964850966410703898527858170831239970536742746115337840006932317512310100698325314772589512616500301769414168707633901245810212937111043493581266582014304138502418885556125485489269502106120234368996291994403388281006226582561569731847753280743771490159973237450300592983384999647489804220466863506221613601195658509724276946925260343746081293171699586166513173662246248778402792263827956696324986673798977009068372797634165513181848306818566946984958386347567997358303594463060629027662030600564513592298402318297319236833659862825858785571840015590820115996732491095211611224721315880350934599943234870302523482588030903903696716129496680772883839976602998537921064446118790133685800614061388329935756589353607111535105153400031964313817094683277538929306633094083666431428335263425111418744648628736839192070090330153354613281644863509783530086997958375927415148745999594129010124349348469334383103169793973824712067997719402222736704040041867337750528555506271180259408098378840851942841752982663717057035463248107852590438925241439944247836243062680654400353957498083382145867223341883656955705374425493246966335863932370470624961821766073234867165811373164723657150890919110000157646733985327313341445928372140440123071705876619643426197749362370837238003144436429371545648224342266433882679831281420844300244503565257403275549530755867044689792045925702606524696547349295636031588234224918148498238126408520178645532371356507329889983143975220246318727937570179246580692168936620696261802782294802741229803680003066814547503980891021087968828793821164057533610869311341151064307139590379956477811621727131656693350411899065480340676253409099357630975396631846831960285003683912473676361675022216507445764646316334394246664861918910412508208714448130109203320653585099717138340283913591634135478407851157784001024632702774197896512869375435316015009448511842073273230895752423346973938946648243257970894891958921079642000836893334002467558836708681710775200410206840643211458524760077954259496568891949246908920498799269114516190328517917451893059347408538060939035529503254978749121372412613939244944217085890946277027319966385117799837453861371258681596009815298958974983469583804821004429228590189437463942094438558048840919975704927369015786850601283037925305582414136484600874676156286284889439557806258498744505063993327941448364871350671425598099612880496397710122947871168353781760081696294776784751809274722929412810327084849817473311265081649930614874735842881734253062949869161693413007410156973228554628263901735804025706980422360307678664941284743851417538943336696889492439084304932789750421196588888273444018754231969611082835459069405450820477848039059730266503482879287453173366384047990448900388886787732827928802588254352212273751809845252039524408587631248960980002036906258732917536116210310866727505026025913444173778404625458400872088412392472189372704182938337109799332075487383257437648222124152326946573211760575179362777002345629035891359251164179324122096406986828583870599706147335646236707089841619334479009190649113958575063738136257868843985482782843500312934067081392678694769348510760084145597924116708328535423033350935126802105170588549246247965212198273020881723605936760915555719876463598429609967949921805771717778904205177480095415468176116309254602503647000253019057679592294863126304857634066201196802078557570217250930126147254871066365099289912338002234521552796153894398463011109241042431791016439446123938740908749917780003002826329309451924896607542641652902536143588866590370307284416326043853173823946366770963069827800064342286356037081498133661889389414168622320078697808686220398903599818226164888598836614514298448210853049775542011224132981942022190990609929241386002239544359127597391205645031437282523261954246374756741946213982689852264856036274147328614259082211160220319034372986729245100537116440913706738300836496538721065290754136075705153957150173269930394112131284455144255113338606612620796065350564973642144903796465141454590434789489492348808238619926466607952437462200361106717514777269737675299238345020554749825387659447139239100133244570765406202465756179673214948684349392313689938025084934441569558157232775354427987997693922515523432144280634117750941151715982034724929986937195041105264028585732213084561179157947529444201186399274974807500891365397005194391231277877996728700628884786016616227804218634012166582740015236700409733417420130900313662834809844415768849926614623841113767304317998776862082002422233118813282774459097393261313757090280696119724162131002871604434780970917326640819221254142304980757979055093444168037024138279756384497280648876600234333922686040795277036344596049979701220198527202384397727919198154074439276902961281675193298771985128201297154038583988872931632921865528453350961314701654500684331034901790883472760224625269766840237297186090678398815280710968199008302071507502522387806170902597560686179547338825814702770191089824070873691593302082213261894945252834695238026907234797942644469612408656246036014656882711772549906566197709697258563793559917137959316027125507272029896049410481980578694056340658804203030604029783055222258881040944963045439900077910949981391724714097997122791276095862293115768017679265793031075915239062178144728033938982330556379743865733038481017730673318232106178386431027562623545350451660642542941991904080493091045699232166366400937511671281270186401854279112305497008245581846127327915363105574974220067129624140161604931815922002181920473285426367442044522293771917801852018695185136543895145229971052799254692136786970655577305568099290692763046525279056812057455995355949393690573461342276730894547656087609366770466221763099244256401730321732909035298592873296245262204582854682432522383868295272917647107509550519936794150401380887590237507660363890562308639408745074585236717623896762372588709831224908249554453621404882202595916304539478772115707311522195725902088319430876049673513848919302340801682301735596913655736837595731866547024344564863509365061193053834470926362268273595978655383156395052974060522080881725754016044819140885902229475849298137621280031077791685664446874126352091025112050423226830582354911527724231610367842116514167421705976817191818155787115815976932675737905084010197690759507005582152271259562608365675547565160223053332736889222819632445067656024007110473494642305732473253679181399911886912504078127142090970309726280428354734977685597257513348976036120766723983004093223370319202292111285940074145730273149514460593326322451115595324223482834688120064761374671076507663467449993698570480175594295846720869383266942425623793592111174000320801972327488361485470490750512300321501727675887416885369527211249826933511031049813707533872985300942024333538412302151670939466085080085847658934594586006099685293256604564912656044679272411528960922832054905187067353360870214674332764872907934977141228175082573116716942356782542703226556986484830144498970537593915996359486506603928778204266246446207855274807420074701889700329167215361354117642500194046000978012860224054406868996248749535066169119516357419860848791914987242585332822448272286036194077653643053081828963287692667770097036783767294443392447832652336835162393685587832252849329312830039949078644197196023899794438178168610065744486835514132337641901876109283513729996437064017593991643533566345046099590807741383652595458269649147836356611802736532065981589965642874038729626319699745528260624792169881656067483767807346239226851665782811987037463260423352647922731944858880613838636873372283748593147695384406399865631406184600744793042035128794111852984252381887536534184254988584947902076414695538084186369647416910107837502800365420893388415320760252992546280864823269610445237477479230746949939843776559887780799046246413741546317083703332039152837618267354469466315470675350996187297979225397519817721739669228382849673744724868292727786342199201515675045957432446063326210746605259434090704330365034241035869774509516638031472610796728239821856674111515683692361395753157902244455724411335985395481032887894215919403274610647656787496742823039140659726300335847801797737481321338579374743850240277044251941661092796135627588244148918618609347994687444769753834755871935440150684776313027728777693235095138794592038174459984433220302851078946054814368782426408946546146203841195112256562527352231232459233596633769504694868878135763175988523584587269289159105011104989017175138771998075683463111311920848246022893384885085189696419247486514533890571793382006961535362797722512102682451550092193695355708535292965210052276202698147373531949641059242418300487632790970810338805566814231778301626454731083251395033310652962317210047016462971678025449275068550215763003552035399638226569173261990674465415962610236520356474872871330516802013230963092409199583518822570065510319782173602997240017322224209495092171632989218696328472505432983484367057799429565464932905199911685765189168181126988078897323883057006669434479253191051198038216940471679150336594615410674606598651385647141411824881499680789930291690136043815971813698536304655312817179376712599388058949527293300517296124036546005246103896788150052731154681847867521891779553061251349823641788282444073028036395741225597085317678330442058153750252328852631460769590341703737081734808918661715879841481436854532819292888344359623873963939049228233244033435527826649491907067996575786799388272207510909748309696313254946496037256736175444398699128213701477445787263389671516160986069007954130778134312825834584551249068878181596029728852974051252895054006950672822684759032124683344267337430674221721316739815285415494157741352931488258712534187160212825565756355462932432713597302513081371056154776837509697593688111948375806189351672257763394407414427868425157440091860963476312296792899353427919573602699062775025074227511146302918248942453605812774843272701188102769864820728769156086084945469648829634057756179239543363717270654348991194713009781273426377058647613360850127506318677849142167786825620204881721737459658104089165467914525670201745456014717650692501388668857596217229348232764694115877232758412538575422412859119401928281456960693231841624321589851663180200982459067403230004955944184407656168831639417794355104360404668315469817101991284085803276754429407100082692616928532915334802608302603247427095361490772180117999084352664814334180290630103135501314554248311773510301049121899023793068633952232230774589347038735114193929191305932251274590710246848587550557480595711857964463310293206845514684316529012274766355813525368082387895419439281592930877139248369928843384238067823068887083710887687066297845403962158001644672201995257634019200315164979975355543035858290827354416818727003072845837035115124386210849762604378132141537784721780797152218435444489665864438773810208708708777529227246825902343304267211350891028589879835806069176593770472860226078532855267697938537759683606680575072628125958888411166550519323159128129415749491551594381978121300511620669933294940344811950105463460322502921646613371134814842196559855077797956010443092666024267002604904462609711996642186402303205365854396010508522759710207905151201237001553573083798538749339549722859611792373665520298472370478846574128454074572496727004313219666406314987846863355548484202002325425545559666384296048651601037185207347108448351847933623926338622904870347562451945764979703742172238506552109922571908106795043334616898121193358866692184467594864579468608409648677143582455329471730123581328492724180698336726718813519156831570338098997957950607171062433815056839450324773727298365856297558685309921033622630711809496499763894203291286114325643614792710580583195320826721623699838520611829082010060967691728440051778345831210511976039981483230480209346309168723978788731763179941288290388675089491475256068413486665311766001304312967617772969353312865238523173774512487017070862332638164316529790158181656472535832008874366972521837343990005268619797723992821174345166256571748764196425597156898266360696648043236807072402986934869834857494943237830343207571107432050555280978967626397027367159026511350713893732874979895916423462921331252989455144257145166282058313477846209787570601167821635921274374142157597708740182975870897623256333201501801390872315552746969332131573763554263347107027487611393194583407200713080889053742453892142487755443207828874007313709562329364714428181148498984446267371096507603915367509255961992873772375646022550255788917405313162649505862677472191712766774399463137015696878450787665526953324351691549068041254567308583944766791337974042111663074462293529727074279589028104188700665767846496485741637049662755318256090355409240624492794770353189044325749883970358570700702817438246118554632124927686095203781291526753310697903565942947000306274280751744945329876653008398311261557647564426557296130558264495236706085533664062606765088443191187182373314378083447359756009832073095174293179030150936261959612138255231216544008096597959153812861983650398325573766191356111095200547279603932769484521164766422901135425129001754236799260086712551708709661275249469336517358432766530550733654976037958134646725940312221836491663629730398047749648114999317036858095198377567369132663960747221931728075135259484229780181058766543476232994443016952265608712165154697216437873304942627266167119688507375940228704970516692105298772808313881023380459874228049621373451812614644794414193331457412679522498136959324261617420088703176648261813167142061927768139919127138090233872420886545785118325837117748842671640021579491361557315554710299449148719666699112016227839632969965672952522774892926832696427026506041836750626846879403531586580668642187868305390907913630464556265625481614232599045586504185685445767935373883982396476119405255338665506434820213131416295707337257212645661803784678052937951443500538378987273227197023135947022605199555721089138175912044833711252707403686674879986708836269213458345001857285400987343606367747777747599192769162077732897233504496394923692587449800078193177936244773052227730027144492261792377741910452133263828442534495670213683026080650538427082774306293353776419642276763908343789307129829400524744358094637949764251154306713281369525901581294794382875617586582573381286520646625554197690029241717295487599706988013516094999481662116156503744103497490980149281607425256099723104044731769762626502497844456818454120598284008031389604509781697017108214219925029110160975225202961361677039443847299270267115737262410400705485515944573203635379112494263579169518228683024697348469067607879968910798438019797176857207010085013621801610024973493398410518115551632810978888424658563703274884175265801071223995734228507989956963956066579759552618717387056112250288202031969779906272315567796989351111872599980796266256760410692573061634093558722507913589437212561498778658249909161573862201692186844155005327192111103106683118031947686443016767705666760805629280642534964691529602591833918013896452851191596732208921693037750650810566305498035436116454122721203063310932452677618815463732768452702197655890455130886620750146047831835639152725625820829885605253819324856701402531481286112435034862558213741041855178297028617021512885443474474399567427065395836378972092847725932405794741569135450920936434528512209108469962779634778964288942575376339657627632121458792858831086625770189398021240297222865548236410719765974270352336124038715910568993226239760558473844512378027808961385279467330075536238977886586157618507331189558733760277952914595567762407661151324170478629504214909693854450869707009322014201454441053405862026293286049619142012576024232596903048336553161099909405796846556778946616005373729163438025135456962627352959110361331185581801123887493723831652511414602599633480484605986887476123466559892750495929109986305287796119675331731792135579049677312630619734303707355617307785618586371391871527366091926932688022228153057936155753856086351906284225205920512203294945665196837894679414311126788378085443119700531903385590979387150880693656225530692117493011392016651389646797109757718901474484773691899824159716743140619578109160902088128188695185106000606343741102672141283516857985878402254161613675956455475557018825723944298715921309407099331029177730850008724816622860759267408141808667373686307580577790372717356512316355113124499410601045377498469705263802882925814406890077392147300727982710255899489549791854802432617952328171668512845346271289956460382579936351510937652117870850587667570146754191246121824897509314945101450607914699131896743772638420349975576685748465877670493404415005909476425858903330222178322077859695383415853363524258418042688792830641109223808055381765734950311151529948443963251580664778112411975652203550105297907506912998101896164867557839372840322625277332792288914160953487222176193352191847294805407480969004805260759596288988377086341978749800540940036441988038786283875164132122579596243218737425521646543403734994553330358854237810056364572950563935736612439481451272517987800806057531087347477245696869688049565679786754144933841291318515544200280119495371080066380915598762696259152458881734307819706462025817064639860621230425297281064846141559824187720568660973838597222147936381857090252718881239073879257354205367760782010963306563742492855005361460846259645418075303774856729333858767853892435986888101253673039447486518304020172073874457353222488320389386692074639605158860272235452884719647215432117046701051951616223608408909479503603396303370871614395892997539792323065264377602851265496513004049241175384275462803803979258850577478225386422997500011631265918938797050817075161790867779913742794139031840948149369287378933579630842677038178613223580612661580984438444412441185156583777863907987726362860945036995965268819315994977146635702591040756780563024828270142763668992865154995474599951561693779809225723333409192418069204687687890194914723631088197479282278605173301771530531756412208755753644529669169390113724782121175255757605758976977455391557879857463985914742384596473469989179070915239636398323152685195703887809865802673314371922940910615135421413115668903275070687886559255914857320721853463864130181692824950775840488585715029722376938445696840208770864789793910682791271058296099283290940243354582449851342620644796631389057069564513448402060164622720132755197626918712626607274609457405795236017067185918911808303005579060872492050351161562883304421786791772798828012575695156390524697620810958222767648689431566665687106170708098443150500157587855419815332140027768110117151559192501696038331314518854278101890478946151986389946346136171705838716055778244241304346507466523914130454758424023072217462695214739906375900383528757733645034646846200108154355137645473428486314104624839230754766538488639139296191911887968571661789149290205653039404485814894252304465592323552767650248687288932974871611207044033521598982018007154497603838744800576373299577213194925724511460248035597925771696010893421956980196593164926116552329121932471242212334140594527176419510260539879064815302109600376486015770467883813696508045370854970849129741844987969229458063755387461929614337146166229194566797405879559172034380541602929266326380665563729498324336346496066113509088044958141403449886038677649967008673174837462744395118176705764332159878794546501551396531546860425336234503041966286636598175458307008452214860994732777675928489595006720248068496787371654817412507025934656056526397893345810237307192044388233668940726947745249345225236113454055227242481662804199206605787757736770155910040504007996304048653131643141263678935695072488830438365279482923718594814687226690302465923839486820819532139222145794171272546613038173670978400188688471513308467734674859546427256195181888349117633419762398470594105443898702198483636268174478142429111285633233190547834544749646740154062789476560331454787325802235010653301030680830140036194497866673723974274638356085522625948431225176553076799051046370315028674348422485085266915601380681930467021221507034834713602020568809047885513742354267498605621625730589741030267987025056324164611883166324632324485822399392899663143605143315064574682465945188587920045659711564718006746840050695272575669127201048878580826649190832844931836740958114958086152499957095549619986075371682397987190990309415470546521819726143093008216478656702785998739849439451734522450585619297490086933524979429613101864402471390252360731559235876504789259865656498137530920006951519970134660174632576848663401344012172379666677375291213796134061518208700163904599885453537248775504002980141566169604856145407551385823584573059365488962608549935437973840546376805951432369091140014850944228179554250833544878696126472355377527460234442517334363534969168094387215747212079970700313359628222099385808505690908985280554982876347773028664055359035316326737204867922000996395368554133272426435422055371283697860148627484487792436865644098544679094665665576729848413874452805846656521268781820881245873475744226726312111831146643590122232224805150593807516938128002310229177041221276093425343797225029560946700267908863616426331545797746365953034247997672500596519123726107755156837780480404104045241881506067497490133079070959083650960508857407160778429381865604576111226275697669694682786700651920170742848432851154867803957749955389141371057918573296679899542467476099433653634343429192734731733372095983747536074428263920202731002147902393061868689302188064766419271031799439416577611087059536723599293773743712949112233666918148368221304502156700304875431505713428900253616255249125129089450570816842223990026098546322010632833286918003955226279551742832160724655256428379148647791333948919177563689577692308802668112668032908031147787118169768296476388086581368392622374628703970061223706921975005924872646842338173876803061734726833718157776351034290618494366711367824087882773658244462959090053038914244452898970863351488467983890658911508242111015965633927127754580227791468847849565454043850266599707884769316941602868378587836231977532403388751013378104236461363087246109143187250869684730381139356096124745307755502072361277896159580085448927269846083660176925318305053684077983239090799762623096201546318240941214400845869960825036394091204377377406462980487954077852900929223954490708352423782117416955759840617393173379533521388454403952663663239030693472993467905817042657404777412853203517593512459975528685382267808879112866886268096321455605964805416202530355792885993842350068056178007797271445749652079651273023509394292230197622466471177611284897080304511463993523702346819786074818919551643777864878553247529366712927201640365474382681703913869420173417596772204340401084417365747562931013410340815672992750575986592620190455346441789220333504991421787619466162904692220514444440939523993083587920928560274465771183880441265111062553723252046770449271956755717990333811559709586550957041024932807398099042026798675894353666874234820028668837756136828675294617243650009997017305140126790284900123687270561177309254473877423026052919002159543649877540525304901232077758912703016460586258633012307929644261040372846430493365177422680875063662789825113215700280421977491450547892031273454740644438099112738686882643153665806940388740499606938795176544995288225577470573101828245180971064394118690079650016246290183843878586529755427729742511328396511889266192616109219654934359348916581766486839129532807856192639595863898245816409542650353245158559817624400014547233360359709026578904210175684091115637671257928731620910888429867136434755862797140947377869506196148176616534628106752604416310446704117473579245534319474954096371466020185950528191400835102393249155959668407951097254115575339597517439753353739172273399564334360794683692121015954871105118661998585411587803215456006537100565871618698784147293077120991161264882574444833264868916317046246281713979652316734401575286080101022717171973385133726570486650211518166079887437753223950977979049678457660712560801981689076444284458426697554967933638055866039066781514645387945074620822622357317388083104264312599311192859231905731172287525676908526966334559697216115269087590626804591641041487347919356608763130328221928622897331987293543400043176526413336146362635776221120142477631340489677158530363726092128751270061279994018198948326194408153385760934152823272632306271060078924617748640829041024234160405636356418924593802450945310691160625041978659012340447610850163014336177486395627090460322944384791091751268377003051257857031841726637646365468787795148476189117037742325175945302460422484362632408601421107369821729168143343633202312765978931666196306704433343860983674801096778501986658274320741719914612978652849352836703294322561776986305802201587222330867027417641567139110560654637278164802367503195532934651247980786941449491018664356922757693112216120983358976849194051394894656341800909523979325272516236194873174155292894248619427242563796490152629100085944930171954824894060245969721639688718981655541993637888914465677831605094356142300362386124198164925373346658723852426984208629347707483242782923595876162699317151204532853818183519284934718734438139355163995753487786198067742028055873373035032178314992627414698457918355679618016304540844332727564017047450718093620594290490385067566577558229694036730028048874116371175464491091449649977699584743607810076499396970916772532241346456105537781336317477596294364022202800750220065572338616823439938157411539603208878274874311776956873715008494609917617419383639936292117293120908468379962365951347191352280678229905051473193735350631338493980948966988484116723016480685407490209891602941263123757726620841106316347082628244338051930881626910653780634165698090632266441866250516683880760359896126258531174522116171362852762729531820552138364066760345375746987645963295323020279284623283809800175084263529269458574783168766437438648404392976313268469087965868315529164291144832817273238458068680297491299225344185019842565466682438840510406081714488268388563304695298710410364697774085438892354232395709230997897782105778317266220960644024405152050065700715011356861817586739533270255332480522891509667896206402740794760007822842913872005541696276166871176821453139754178882927689499031302996511128056164943233873628329053586659530221902406952640162786597478887568253293012933652299736001118514713198050736086831530509502230711988065575790621088501728819543029946877234743628977435846772045778676363615930418948983240973297753053545108870661463630766475398453780556182923743409024926901333631181891035126391382526333361206889271964399762700602608814057151951531553285233408400948031877830223646761866254815096504298408883215727418987783226581634967395477221491509298765489498632097070884352556708826240333050258590826827153780705798143035996772665111818594757260759519693078198538201264847319651193057736028989004819030599423105815017115500217268270308926246490513800065183581318470667246081056137941282606892399894337096848943693355296081040824252564051027976246135732051872010272851628559909474738849215805525525090218421859534490345352572169743224534258578895158648180604115736692640290404773854848674301679345199649912534914482511219204728440026850654783560838893484650644395114653686996368134379088532480508514953142662019701616805778933007348186702033825642980776147086168070479271320085079205421610136605429724641895508350624459224113248595481902972050890486160539252540047888757661749599872508879037273568482787185177422310868644563595213814977202337827115120780047407476926352065644344950982211858400149161515622883345170013905451230972550498491027592218388450196951998209005582497135707729826620872313205700009331037878773101064097353607141367660013632049969265568665882128169598019445329248079370865982723134647712177826936203279713107699279281501304244331994188573147923424598959466861907587549150233411344226387515474222871005014012265676429541393989501063951721354967323650658986126359067005448529125789773370330658329511053519605504857466727295593772171324852687547223741622152624433756904241378419651432786349203695471828140582226068204455218371931316169410424623255123253817722444626724780096385740394909294374318160580928411820238050875593607583164996474968120411670842272904674019328919407228261246104323927065117440670634167162141767410218767598354503860534509433067732931459572261829459125923778031673549705534459899894714498665649330100977826368614391561157182630358819917383387768788317075360129022101092595598502575902531587065970118670111002668215855173030209067032041152735976399751194627449913567291933500572199354647106514452769428261259681996544913133705881735366349204455717605014522866390954585259424483933960533240053234992705654854625943828302252743691538325974684553556162554499225141271461993281078499690492459329062404203116718853165241439271989707364191684706010318441300405590735761792859269268198262321758060025101244195344551307339755157767772009144759673309546641798110364238975082552953672499768016896018392116090642864369286082303314494186495304471895577380615447699717808582288136209973635414531290161362043647286971525783264655819297697331595696668819612118908784284620915593607025400344937622367867913700411710453723464468389412870948779037241225434895753301997058249879595397062721347803539255895684877345237056655761011797326592996550844333252828383587546355625092349422937499153631588233955315996358061922118905781356202440404332907722885190805870233286453849873655751664146171853209441037546603754505288615772491394611345785924019993097233587910286666652948815489968685636775111071170615072609973170277397189205609486500481534337573794008296193766848091348140245724973206957439320473245705523016836597630695724524931321140921133579254392691664194672057287396643356978741531976927059206787401105619463808444136958019568044193895535977314280801861478908206795477454297750079098307981475618757290575884789872811819070806615449301888421931956559261254817614477633241628385320146131315195270086962786029354466655358047275229503316265730783816706952288128182725792096053463751583989066167281154555074197777168013468378340380994555654277761708506812324266171922293537939150323975186189915855876318568238180216710756797932252642748934783001966716782015833261603778537816227453276729306981131860266050231228040743962873061863865812562914061097014520354138507405002371526816337437178911513122970990678666909151416649424675296274846545217831547752329805172184500181928706824099085849020188344090134312004006728023566653594302978819234631577235404946210859810230248994325145413952066723350136252908550536546591825394916099023641876456914690525329078428782645470240504914197774882486270560211847156268824118062125733420746055694065050015287629517242904952338284801483955384276019965767740609860625470089189736770481074609923124387188017647034278325603439213138656265381675274622122690970068722449051734659056160816962049893208891753681894516024807915020429545001319425119783349708248332721841605975717951315111061444678402093800565782670199984794835481121952754772348938005988436341642910165764897391123164159687104911342261941942350624941495805317338062133225866408777696960490140994470984484086335764733113563075524452857803003404607261726663209728029983332256183152108728055568054178980218209905362130376996725815627442560358596361246709565854082192651540553315911005008757637262045886918212391984724831650124629435815126556408792485875825162556658720866937597217853675723807704709722582787600282152989507080280461023540597526596256215607122823835340894206865622395228524928766300819749998380858004425654463723626479993153228055609481441385562924239260602420295698011948861720759382174467258023995467753970864223703619429945666313827608113632019142545809160159577864015992323654178952446864848486182794005501532132236000889501855997347951831997741647787152884681268098993700727149204791149784115342874316789414018396586046778542511400842881802700436805230900012007477219896043472177103251456324501866955260042796503187397253174018801727468171310364921939630136031622165954269630102760423283150390711200664252027838143460155143814910819499645968530754915173816986696641640780159304049561456722056431235042947278439506990233751623622390961740605593167938888465117399249845906875359741003345829849328406708799312770460118382380239131790078126586070849614768346931489906738616136321103155824020293510902255318381486633084962999270600959991793405999270129930491600813790585069237579747476222460509418490209002464527877176387572422865884372491007761603131892704415014144868550737218520825229016709443463514391109426287108449155092929059888800160747977682377888678455031024515841019968529396964273204811469244124968752650746792539870016484616455193496630342537586685299731470650277419514534941322313122958320290557074857846875397100987394468189775735281763228284081560150219228526593075007969146416401034405369973703975970215231735038474937966448271684165893721203811224036506607948899069588064337856944671399067004746585315375439902632437979622687015673956068988784782755197800795375408065852022514000472646071591952267781323591327167765576897355039455202870928907116846974757004634413343023704727454447018626879144747603882592478878232111184775621648349274233037312245245100987989794330312823436180296497574792018073316120406229409959801244189595491811200480018931305017842317312365880422095354134151973259829989747586071907167417547390640819224149139606152533406298993238280667151172993908894611285421613643429742374247410809247973243807134060893236908727378737822702649524611435411753784425596931662492910642016163835052466515256065813463376557096302416714261874392295728932158021403975956762057600694804426643376673587904410114657857768999185971593041562270533458861721352679377151110506809594468122355502324199212233196249868590406476174957448255403331037421779033542016441038513405326772284150251893094711482613919527868812525468583513339133781038840705363430298406226031655840403244863394116784272111898526066876226781083780914626392604430397875381253724525118522773903903667290695064170160242139606445513433249862140751829866434418195569311203461287832195815851050262080327475203183424047379593540381140390857449789799160189440289195877057023005177755914182354192722727911258125566896270858771219417120163228726713767600173848059484757247450632433992180484892641129429321058772820810574954908369589664768635033856072781091045275196171021993311229412030722273174326163414351496973772616115079801634109196972864004291635013517217811019663199917193747266912763669456507216325594853446544531806425281900715755316898026972989661693039227504965819573626138035107950195862327808951575767873422548354837118160657576744923398065631240975414424485118791482506750909304026994772637609846149975762370542375619654810108503784233651272304031837768617464322213972379645568024510504197101767958446516106132164120100767759446204830741090036120504538685090546098840188127488977840598953638899515730809382927387972019819087118616557486759959355088745977323429894981654816276006174665167650256060599751234131972967333537510826955348846819702945444727994824077861665395234598300294190453632927252373521505108660816736194670024895564043113186529740105554528584007348766203144119541693259074265288400453749422485305298776335854636101327604693500743945653573163112854096717280466034442344040577161333224097717833107837758097180530098950854302438747562618168857305982484909014441156471010596523410620802578152372530181067858992348917279125510074045325872225977490249086556275779991794394605768766096700216098546416698937974976519180369969556157809862801068187260656463291571811023843939767940682318247359807727386468056005043558658073183013976177378894466955554015595104550054906972242840740727998298742603006693597162164038379323894974275320305315018637241876259587523734353727935999377934025083138602180127384369814266728580412135246714123175521004458202041952489930108780314080128921335061865849489620213857065402902531478825820177533181998787412069300671889763280738161836726001839069355963914599929032186897519956908249841893221180584474802595236001948908932669664943263704959267826061310983461368033652047398900069478408810073428625045451478628914358576244752550301259914521659697815368317945420685188117047492258891217571456368512903613561700533670394754414755011067377153398274325469533034107589039905383859534383267424727485147405448390407326565742030313003377820812917170318784323500668897746462335994516283670280667537931316503903238543657501971378111038732201131772866337212051307269971943903602100530077281708931002677090228981088569522738082985173099497631987593246814788473369057610631115670093465227014796286722788685366558875913235149872109806134596457210339308759715471139727617369333885380132231495251344093606358988397151959289637222881773582909455640568323786902192323644933775951560162694719265095221694801845199110503698793039461027097633364001482265859482820630385410248168943364023813136185923850323981581109094450788278861512614290854825785387705646112058160020984585094712715154293733522664402142301095890573753972809706217345862830938338883277912100309723882002464675495877706250276268290425001452633101749924075082654464868387343307462540417202929513919145963055657197261768449667483254388428885498487934008030323805969229290507515209627350359634572232861908673231472982154588456349280432995452804907855290511966732209356820832688514844074008699228341606627648917233294473644492676892858232704411863687605951033733846937510380103968515969542741644414869471600832117090276537265686859300496784239236444867393092011505681975347220826603323457866369404788083724899077920240234860761432311946149219626420258803871699546096731757400347306994228348176314766436863056030820884037643756044638914325232283936756962444773860760170689657879651037670872202292322267480774554748885649151689493284205176355454437054596683762529975428028312573870369758428025997674444049123904746331093128528236086696002672197931924371510809654789135184881538263335008822319515951219979672235661010937892049569701390405694578020828515944196155334724256255286035731330026361722229928012356426616318355711942325989530289464547967370246888551492230461886828232315191595825410518131835066313155995944794666472285270352108608743831923136741068041306954229051811132191408743062450192117436446533068499855998165409709702655077418483533030105520427842729377856080366458524832704859344529873113480634927323728389679819344130848861573358586559739267791884555019598135713525845867664736581273914416864391518510493940639057506696550442864851702406225657018734869402852622759112557740712598883743491915917957861193719891285127967983342937031341464727750260524511811106755595431796926655797823266781734570862382467581774732058526136726542641686129291559408416528469124156960724660009475746919879907541323049877650830435164259247021126636156389175931814089490501017482846232571782196245633535090433444276126042133791796507883238284779239456610474601962611977859990322802294789539442721957645341548814601208946559933977259591012197829099970155380224452131222146285230426024717603070277115109906260536460255657750703144626389140396728639239533434373881054134707051447857969378487462507007374882945997965756687195779032028296737811244501718337383198928509771007143073486502309896480489518896256736902300438738548958104589630658214539977381929638776554880335347368417182376730254775000097149592750344873997650766837883136689682842240371502268007096334276087210755660614836930975585066758822286413043096454603476299772889956613831239771838670112692535654497485158746349063243121311650085577378416512663477142444996544977199051317864018544876099516343373961130084835027929541937994286296672990952016542226228643799661913040679998344372382835514501557407547768679191085503793359948222508374027909799327062576854714123810915098784312345000852741869219415307830161071651233969440201464306407112254728182088324000596112879154109611561117768946719828975272496036954848267789132885056701243247975853822284460164846901733313487755809523289524468930313151695089979425332624149650285124649057109860154944414695047161241784358456200531276555877249166103163873842805179133176431618690284871575296673570123859556365517906785616666991020308382652976574340391913846100690068880862930482154417972638574088534491185488460593387388951348327663698259616186775240248245451982141673151041176773250383143076037442160994349578342981884959378935299876969920350234034977852342248140247752988029524457109360936919554819874141616484839217707553345546584096012176825933775672928991581681766106305812712583719438821304741234689654142260313140261899577906338863278118181134078211783659546864989747128197190908832238101136075804745915874647545317197470091222242378075093515477728340951241299537636443421549872265796461197720142426836285437230206391681450392216048648628123612878471460879166683180995120514455303312459913455205555190003716090684008768536835662556154166383504015763436916759738461233227817971664547209078702705765060583254344966980650673409661099025293976145849181558297334133190512350355445307556122323769693642214062462352759587596164723954649674363982808519562002824716532178089456473711241332334138806215879114866545984643939926854596396866516376235946028213145637539263684135292251929066215608707293766211027490016364041601700386263979999750667896632166296711526177951606577659417959998525022613894888340372616553884923002162456191388527539788886488901334986320054108184128500814748965161081500002880035400990443832220483694344096997892226330408691189497505106848276217769635045189740581140768588028019412285778633735352441699700658552054260164035298580246917847552480981353216896015558858488201791915582077632165162336956580633913487136520613705380785455533348092047596541440364788858371576228387204197304008459224348303025492577731997104997142401464553028715163155741118827861115877498148184222022794038170117820868146967158429961237891643234927061024071344136694460029035540856786815265706458995075789183825301608412915395176942579429216422984338595341058299804081807555409979960700364331249600974699948586659166537585617914623880082657217002139008102631912710134132965026386050122607188039084862425704374894885161658600856286734201805708770696577032086490324541802855517096759837212398340078744749099198961171291881987383154309665381754294809935975011472562308696750441337033652064458405189684081939917300118048579827618113463899784920492140509968535988261088162096067342941269678359431513636362743570137097539143895388277206525687101532867333717297093987591865312360226236735336045205684251332323872625373877274310014882506933586557935676852655693018870703489929724175253966317104563019634125755474738703434996498738633117745275621937939077092733245039804036013860116348459083172066846506242484102636713078367692340014486533582269733830152457422574438089702874257573432080624389039339129528309548372728201690302847405546038262119971410187604453921713119651553452054628262071393717417381077708503433356372947721200492063118857153081788884772203658308189920789518320952589795804262604482345385019454920219524494361955359736114579504147422359608752333056930444191304618876295126899339435841353995482414798234044846858145093860792348604839222043115728718658095579341712336877090580392554845057348176394607742051277258819706222587813748899111323822544641471271648059620235740715367740861048480058713711128371164173159318617372126008443394687221754746415349075577065517256657165105316303511154936068341019005847591094844015858272311673205025885748172909241565282696159451476282489225502206781657018436317552668647549889891183327355740071706819650013036215186421167130801264143114175368790885887966736315656941308370821244101809124687884816399505837997501300520946034620210069539784927760723899577086420251271316083937715015471021686680085681471442856433257874623188366905114649122328988825968673310615604107006518469054704740298576116965114639111807054525765422410419477191754720543469990577941102620280354339531732813511265727797177915793786084520620778953112982839621899760958122885508950751285656566055957454618149322272362221994628854225053768170504098084607672988693109340874658196807707796076954306186231005377737731741409906858321529606487025053291788034672142341266074676198352587862703982385161928005440317790582090091419701052865619812901427048383760204703048234250289809600525176586863744641785590467774977010776437431910882555369579167891399980145229807055479276353049328696419816569296163455834490364074616088336600052030008147164500045001549413428499754932301553032926720161212309542784108196887126603125673689017908823661680374929804984039304763019150860678240251618351133888631686927089280528066632470703615796276375878234337334570606622170335517391350907058903474165452334021225129719262261766761000701708741708831578727983156893495704972706160815925376112258698951546394011557490044143208438450025498216629498387376676338135713451310261723904156441200440649007259167553130767642134128890550083519641723574791515314563874004032387744628088413864561600074923542648868433935496046434071267483202531874589673039107941161448205165333098048247296752084980045170928771155653120693904333431066284564665662494705388107542816556028184930186240101291837157887712668510432274395292750944904761163755341383754276359656540178704210091490006750779084427043147917372982343712036284533132824124748719254891566100023911628594664809001716201886141399241631139349200247880849669792447572879674825252098874049434065480513116781415419580471807002537840088957292363533790601494625691152875731283015279185546136529630642708690739020357845173797493733577595313065215120534552845304709463064270653829029463329446199604789253180614430996343635839771768985631537957223743212504933317853681810336330799395381762573854369144006322577269309610103581698396214323426721670549908824584234606397552140854073911955330829650012050596069018324254612255845555645334449403851001836761251076326569399281344104528389582589692501980192979393755459057183389403989211489625289601516024609549531775678780122307917892723347267603036314528109204556415822424608295849356077218376980071561995260348749347855098664704060858970566619478931215899262202246308105730807178608334001706028091483348816168744983662696067842652985845098980177067882156627039304383486798008266749565822993615095341990001938955366788085482834853138533487725794194744377550017413314022161668625019056332649384603017211295456270386509257825649246500072211890428323565645401965148466376700580518536603549615357888708118208627386931920593410706180867597185402593241624654920384054843109648675185166006548626301493069955558830556990848550292267995987582943450063192303967947720731587113404798423127348772880559353271666945228704656436876519151184289971563223029571874053027945751585152148077104956846983968448549474277044141760411155407421061749997198997587592400171035951803842851545445544415813485183246705472707528044993063655436992799803871412922690594634484579646628689341842758325587236313431822443667762338073080762146121343188329497233924186965424133109870591851185853840882909882997882739916791311241433386856424532822816101405473673121984854643941443477753108943390248153577320779619239291111761310618646110452939239092358848993670077139691161114020721951352425400965216528480197223235526063555133942553582131193703871234219138274598264924149482296453442807775872157491750614071538771214837378752301310688385291331489209512324602567266228679551111093864530306271183476228069181060716297831872411104577067557630255757230706471407647870860669732568282376243218805044411887357484308461455622200351315310955516281196685984180222986012100521154457328125264925294395039734578226631496756394547313233989167945821262013581505531421416751492734031576437256461700255996242831591148330970775789122977054633496400466616096316092914016009812768276132356744230884518143781363390580748352662597955988941820860927092398351192489542125731184638159798270218501218951434906696429458194555556399485250797620305613888018991783426386826305580559367442519163172280915594297905208934971253504969971302317418792706781837172207513423500951964299347948629875184428045112692903416310498591206881943384481488453267308884212717626559109552609855782103821759817306857232959835585868968275485528800147205485449298997004163883909065938382899487798094785827383559643723746009606382956520179069768000608763940713283610032023527992955270507017985836863286211539269283965974250798934462190837250289624802129583062777014217170285953284053834429926271356145509011876063954368095793807378293558369319275313914474173984405510209176933885042312108859157481016346756816914748238003354082185096515487208307678471418620614229279976914124483630810370394314325088439416990251845879238650858399526837638146144908224750362433476906421243702348454512369846501624732149642581695152301501456612391341010489004114335586352583499559800931621352283028025163021178288038065264081727488273786230921562650741798876416987296664624386022930789208196003061921256670056029435524057527128619988324137116536866489686591502163310984131337109028620198832706901143427294578922622564054167495067606100971595526613663771870337710449368079204958096540140243920814995490685513800774927004611840749529527360245034514789800165481183885422229122505677464907651855842566996139062839647869538550508506636269093763322228325839829715859273298687413310487309088643504143692789596968030546731734663281893674672348337363314938742728867527643890431782944552624876544661934040975836130421503305492906598869549773637870644043981324697658531200997055537452040296758301739301644683412475880892061292485794028363197303322015593788888402698075776380432107241306925716755019976492903450623423116056202467695191029811075880208472777447127589851751587719886780799478453296991943080833758418362209572407920200846801294573448887719647110765374561119642673656643806341527230637709788559470949825823940797629683277413104183038438719493888110620820259430152985644975584199278558583458719546636269591855286114214387136753634296648785548623417726996745961849291092132908112916822223059291865214357932213252990758484859358027303610995849141241912568163221633412695524208172580660142745188777798348092550846401699536453956006997930485041789895859868396775704744255552035156610011620801416875743941055629054797484727863057170974006112962757724991983886016609138170336907281270605296678321253584787131879743160862897917124993584430791543042850723252957463989678448030965995782086802966056697947786725980549198452879203358978622142200776977487641801931134231960369324857569043595950904405821931545705892049571621601815316279324090865581863689126509460135163407274594201317583739292913904348884548101282458737772646862785489549876287196131264670199449178600263662658492816788857539217622886233014026766767509416999934060733066102663625709476956884808218297452171446126388131243651903563093725835168233738280241321621684675410321231514682339906153580105141598116882117863189227513561096411611493664964374219177532830295985347708903404432988123897006040800062993356633671054800070323031874130168369276446115665078806676438842307621858965147721885687901505869461941815088820641270018274745411703223009196955980045138905703786565007823919871036775958993894540603673864397572874450727012255143875365130323159847541226363759415418561519480206842582334306489930399022739734988357590648731916558523520661803732678931126921550473998581469224122192871628725869709346025955729111415628340439863681274207327074820710002894528870584686353910843487774768314941287915376998495556960102570424312378354535193994818134203956754348200166526791436618507503430250428245356824120421875967493187208910187271828992704865393993898868560189294746128898602408234169313694287571654914076483319335831406552040517489892033013382754602252430845240273157047673019829743791667334966021495740142509434418689762875976584824860918283354470408665033564176139893470094417378210253205655280657394393880523822938893221124409463380418428936822605662892281479835199167284861117450158918987501634314532326917947720881879570478223733908065239250296915638684324600142241857542429324146306060385282444937875682323299646902178509360348604548235092888798434131850090434026672591893101553099482689793944129570887407647876162969182062810611458961782651980913381006009014145736638743818475185237471570835106316704820696593508802376359919042420665812777790331190484677218695679248864886484014214254316474035946583580097944742416445807092774254568786741882525222865769965209505653239622311697923203320824863302017720837282558387195937746016810809889625326053727299131404170176223153996794303943053420613234037463321034965723832956165468018925065141183412398167860494397839407104341527967532232563138089796411632196963833965041957111180827527642093317389908170695874670294802913619767954496463858512745343754430542038766600226213213374753878328307300646623876904243652095347910454236520198266990592308242415297952715739912847768939957707295551971738659224881410393880227559840499054656562788222989980206871046044285168128686425039725703177826675422485787438968796901334281612535506557484133595796107207563508106688468553175434119758736691035651138153640956064148576211434012074134613933857392582778827709382591656105279439773631601602488891054466030075163396098975341649929479984978313689842431490423456101904372859263021482638928599221325347011372810727282426675817102229078749263322719999063913678788088534576133165035009114557327406577411300443563540412241222503818277266477216347750250891825689094270820514488206920167845205045890784453292246544288224124433847633243040467334074573884252630536641720765902848203549004017343014997634334007856510013405153590436509447490150504837020385143162752609574734475604276314334013861280301277744182134895883826883390446813321935566890420827626956711757470972413431509974112490776110023080601062967079187844884195063682867502126880265373057578500894408971029539645688193581691494543788973179209112496100287674866699017385348984307617497097161610768052875769173004361801281305299125004697202706593417019864470636232297066441339796712718861131059554887638855590176026272137026950041335554168323197212168648089413478382502633191429097269927551737569781940031771236127235392157249142816023230786713903693591487185529446855579033633990985188465196371040802165940725504495025393389426085811079876205235384455734424183107412221126826567468725930004106614645388500840755323591014965679593861969937531252466462882725529992855225452104738056182353930564652748220773557537940596500206925555432251728189462031410024600894119283982393598138084813474679494428143440899720244474096928772264695410225018496472977005424892048219967907836814891130256144843086838654822438517487161353332040431293377542715919693180478549704384030995807189047521152311776694626378568288622417562213466739126293472475507072878460360287861206215442689458381340560446431350575661581085088484958222968180225134388437952524492639868943109637384912306819835834943385207155983740872250151862670693027440800543322521098144831260451203324838093532495393001666516566978829642427929287179725949139713288842289012041434805704368802494190806881532152579693011069621677050908379375947253541306692461347575562013675384524065441545283537764492044903699679972483142289109652537671073366494776856415298884367455671567293607153021098722517686535406305308041861371622024248805305484412774412499349456370480168408074750459956220867880659670801867721676585601521063088668319049076663984405849263872459094928975573938859050126912126095057436017129671975604208991377879037286946518603883767824846295871054709413296424719240360806150036461915692269794532975644849707749140167604154421097001203622527516176296720054493625273780648049121971051504395090219843641954972491441962796691967794056748181359545185548969862782482531975226301281380622413535313695757783253992440268129588484487499718227252384776445147002958393336747128420076481513034656160905275815947398599841014937860779983675754598809985610312262044607088103453586020561118278578525991522553742294717494287906693431418208317872855437751131239981956686897921357983496169244817974608562247281835509066682379383961813297886653041434223749081533073155406533213853718852487859931596519601051457870417967791645416328175338569690904293047307044292505505796999289390725230889074535245565889654922923552390227924932346781826535882067594563689271698810555365961466710291447146866804198591475479470449012550717425803045568345104747482617260699280192813347498316074491367600885959579911622055615962449239135743788962483374981035845622325890515431775779064104219532208248552995588276484773602425458393694450266104916089659833133580157403851839139592198795065081237261904675562318180217536560731130641488844889761164225874278690433451033792065308450393460314446811570501767848101851647957294566810510095466895862613038262048529992692832945051779343464150004574067189058321018619829358944275769843393096732297701645893960438791616437182475343186210140327139139975644894112285348521310028054347312667709964684568570841978535500374982045524499214482465510241862775274479377808663481426273810360528921595921241109399092214006172232530652241477671233432241955339679321419872724053964682953767868465251987165189202415416444560909792104855870543113312774862334520085081638256109956022124387552937979716600436943544389780787374201417560756750528361714463791828859210880106358968940648078954123165256276946287782995964081983696229071279519235928016414146228551414586341433964371160644354916258361317389799506294969548637440115397276851640235645622417013372689541046106236426177349008517987610692227541743160395450116590671310298945128128179670669629333435230211796855522446422996208672863274562250846102075765432010754066565879700766567112969897427800799100433022018327961280860139086182307624969817691297045414917918057923270923916390037949791294230838883722221534401299261769605875977703352014179307532271486016423001684532031179673325091928586884938591191596761817498881201704915331807178588111804177411963254953791010471393954724738319539993201686380440011586030348528999463963561450626341182902514209038681810067308341570677501062542704627578001785639814527270637318719290566680469405645561830321872493537147643837870481497772542288393961304040158110118089538520586970385404961169910797213542203164992976524934408283263500850580816708062184175988700992010624346648149585532146145461979926247260670798235099877145295571570558651203191928314635175713107494737105974649840382896177746988679723789665531111292844865500628323781313485512295639636380507604925543129745950919689198763953345916252365578076037017736332361591461023602358373055319123516973165401755096687206955355999853467068890445394291515496008324148279458201377859111511969447906803370531155645340397479402743354242942726930139658524192256413747620638376825093097400057183394751719543474058761947862384033023564721211147274156843121970255954777202284075985823874585016974331445051812652659344614952539946481188731136490954601548713314364068108330028619966339831313500563240347728777295912946944713873502664260234847822165284401209648600129943783521891484937150761046782125380362363325317958601163326562202794565094591315564159173194623336737207781788749361412050676530184795809850069215643649172429147760540871886409389030321123446727923704151901054444856718807542845217604930045567265074989487022679729932551022761101557739271475280928262478664089309666023304433896761819232054725120351276576729620374083882823600812226506640100295401459601345324568827850971479215182974429755997194354926940369149794654607896696916838999772544286489877693414876029059880311303384212539441178071448594603822562982396893709688300033184909586063576471387164451413833671235129264254429174663610447406965303161115926003564313037672733305412810930950748530087790350107417882606146163741581940522502549201097603970583230604066994922358942636697930635012488465659765137510502513144435278941579474042812938827783243439492488946101875464466721656811436197943922228609096863600692749689596530517875441662651482643722369135345637747215652102661830057406724164635091538107707635594510564023040061706496981980834608243035894230263560000675349131469328128467773002732124840630183040495553052089745864964612109049454062419036731459629533882225389296716383144978014131857024100799333902228996913378310356941612344569582221912436011106421243041267024782677829945121403816281982028710728197595885640889073675537249638090508634222225103863085500426366949768459711725689039832049305740667326484642147646531880729207272839521544133432143148429201475282987199060770329808596677101151675835638804198584666281258321379932922294005566013552815072071354334773855676867161087718895454752016455848091471341495348135767526423093762041070919623161556890425356671401787900606426041600508640850947156087833207090350690984616846749178197985097286215032669299859593680922714358354197975871815462617558487041570211778379921148098747096376637866563837152277164177756070015221866449291924693853369350995439617449789266273027397222865413612908303341052474036423530143568132793202958277620507326957406783417103577785125950218032109378640628344740013515431430028885882098678250867606550230823521856136151649503847644196838613932517923829309085142601672804073438914243586243323372235801832259710945510993946830407565693695930648096840654328432346722647317054306963600667323667276653932560960029239711075833868077393179099408048330591807916140396856539346869405846438525314339053322440473864434449877338677997784587784446192335211109476435906000774660512082452784624488878108777307875959034339753389412497004575000800628201418954416157509175659909435849030284460277043428045662298742166955808798442424710553029640429783123727037459368552486413653308491260856673030025592480741051762502936142081539222333081130678347069598092525103586749739914167719126539078769839489678551536234638920951062868944248679104812893834066046845926795630291740100332735338063973548728676705779448967171356094475899334096343584189579349055610442649799886300680239945997513422043298773667871450045157803890222787875969974467511179686078386620261677961806604322244000764377463642990243068720211712419331386484041403785517289995531907761076479128714893427266306213670634030803443040730784691112043518985245109784376677411991678303035728815745937117777767297114976136772035753028412445429166787415518498871648987364743682025090412925987806358555866037014972752758327146422461351364482343766698477873804666203530840528510690385710345724857279816528439015479193623289510284089518983780505303934207247604922868339016280623806072921069589305111910841422959761090533882683522538618257194307447230946635773873320198826774678854116761096030779017655137086591610653706860257429828311320868669528527977183837556478931140186790182004003148524873500455780195838430742692655813371985427493469951750000857705821331379864244999824770007624854670012015226891725241103516348689874672630494816598740037293552824962211651752555703368452127901171406548314262206164061874465484900023145444359077369861627930853631337061606233887470017530872037119724658246950773600896348544812531019666326990908452238934001104006879523003611458602214961742616683916895352623661508537711110913019230302979616600602806676981371433616107909117447443852390648042101658349295915261429426033710309260749871964576438348664130988886820494667847302930381556017047714756212850288981090433031618459969845853210433044285129237465666179345569888542758765457650773218503150265667871602060072702621850532578309102516789216373888608987090254129491832791171139413892070478745697928502521257951079779904275891749115486069553746094512156428367340813867804628983248877680790268243362181414571204631780158432129704309216728994501794098008744098543226534014370795354275201454152842061943630546565701587454907220827287624110697265444099797356738696825451994846668413930475869194504928492175073142540910418941145507273379997194287373185915541992554085824468901296029531111799345124549166743602907517264377986972123562309164024101013210928542176059390023776111018341456999259326882451204508830750137779042248055614392378055628391885656760896811122038102523882760100254308553032175828498746906822534091530084136641215177106535562535630014463843623133913510314461528563465027461588260218983243169271651110791877656287037491747524544879493789722743889792980473507114953150566276688650057860667479790936614491819680739665067581089696935008852359286177831852625173337174185616630849324337175819556466350868625258264310867868823392182222460460155280240647634719545976714041837972206766119324621973808332165446843260900771389150393302215724525909217749183300149038938350837751796965071849634931808097497895848853494966082893395638191227090278586917766307557015075080424887940336398314472128606047673689910453895052358289612525443247757540032697080110211670899999270225395951574357225399924910098722158016968156481532091085037921038979927991569537307488964505018158015442044971120530557176720187213474322604182411440484608754170267001204733328585294586690571566809810442742575861525577590762032009058205911877906232229343102442241431633082308135081566390622138511259584087560295074395225475633532825476208831328341237033151126913303052235895034132618063876600750988199974676601478699967134436705778543522997495758687911744566935710372866014840857841032506759728039211094535875189710656995513276967694485308825734591180184077583870694383449657342097920498675314348835932065418975919480148353686544963140083521782256798292224385321485290254639199304177052443886013065975244957814447021789575114807164918477775335327601717512374442055802168470154891795581900067932853710885990083007713019576692360730976989425176258623154847245592141267115296779717814730828859447304803312985279332562960820170247782987888488643594012475277236423699749070420922879824814231231360148731318498512471686070007918485631185145346886146912488605644623288770820695738442566398731890886564172153310542854850469435927920563882463170389225139456947092625131261711051687752347478915029110213461393935929649264648653506785743374520493554263924197752947111181923508065410677251257289087287089344907265968047251078890526950887230894461494012617618673822671397611392248291933934318996731134099696755131460634680947734840367308273801380517496614193345868630211323916204149817681882053797022575567373727863800119819383630610158927492636551945649369842993106511714274076564723846256524908336999278200862316114104030603210508547924473080427859617102919045769656572631579828235247983226201547258679549358050237761948335357631699740232951850024467175762209935547140658396987390300362580875393997869410190538139781383208093678186529361531123801529948747536892020756341026636620028606180458112815624496631302129193625441630684424232396704965779028554860077880440707032011831166810447667260624864588930717191611634198649701887368088807189634993962059569947738150364960669257340471284637005201257808153518590501044054372755538229548234621870894999477020571777225229643903984565265184297724830876337703041301816713089036291635038939422605663222785497717270675925075458972525153595234952146386992868804319065244776056459226722963434982744285197652885264466861295050036272985738094140101070963904307752487620883763606895133137784991166020852008332817972529023327080329911067621254032443662395841708842538307074670853081315074325347343727470617706275504062100421564320545842898357881454583457261844498989924997752464742290492349284296569747134367158439305492466131123966254147593064927106413393193246006702313273983590330976841268864375308419627916822095671487829344412760670366339277292092949992676660001951885170765780439404039244398242056416013399598651258482310941754699131215267725963803858562942138399355193738915527491645547717577602727231066884412839022241449698776096212630039383219563895167273792160471327108041651960973935293366122201265594969257729228166427492585592278033081035938011091480190889431621841892904591198193842251701776085712774307876534445610284306409146171112805387389194658065287619961008128447763402488986966182523311040040000271291015396448188022958981978574565003443293295540856250344328730919227934624427090190091450921695015592656882798604686022510598217176655777008503451914537345354406227441742139836754884402909212703722508870063263403813848035613077018621720220185006652708485234542188631195075807588869875161265246243104953941676796976113284563492891062923650988432920479453611928099248818686282715441169773977254710026663181872113371220868484349468242200779874633979743338619652322217741407061025659103279153062627682681249558781215755897824789067991143751231106918444972379340383748391593098289919767925003131659091528170203063545861382264213445280333771995024084443036550383618548097734927469791693615833137591186569567994922337258462939052407640488470033300150654993328144330363084573951159415896791225420511482739598099981911615965161713748124711236786017220364544721774103951094190972135903593267996396722448713033726397483515974374020022753995132583606571047510834558579627092545170802590255293531840817970659532832423089629640097452449697826885714258318213761470156679144533301018828831169380877184017032114424587448308040792584755897687139853281248374867213623987314859091401440173856984799394852288418948449396269962680287243069018028371760564599472555485980824712771085320619840722928726801258157288458499277852924702887053093551259625425249743193825540910830993618629421363685962202063149544510922987036349819332826911710774391021359251812034562545523404045659322731071200965885522543522501575793735701151307245231924965554452092289783429502156940582127010627015664059117653974874803316925903456670655744855387659917046618459553986326077473018483056516542698645048545286237937350368878914477968477213845651773070634365890555500658948555641512909177466632309186339727666382402187816092815447913140100948294939218563599591443144599151209195694414388580547666200936024082201792329967288178604068204028603145104711856742827866673414178988480347511592502902351741674928973589516293839362394947021921363413341950152216717848163984043809098579110530713434789636019405292537064275449703782963766820336725413616176509215036293690836772147022908054158668142647951972237107854575452316535364501343019928209820680585759904067243714068671079958110316018924538173753068063500922140396909896540726891892852253996167141434256288184299733226838336357476973058038173127837774944143859143816422068400622860610511527922364508645389240484603295709255881886983797112634846812479513580696999652919336085956387244283579310520926195307064901047926018699519761878179004535271812705421618697455017036078177310638810510564838177602113024585168629884134192299858161618045669364978194310761253653047557346855578961023849490939652451760953083594607818315590907349940670474796467773648042079059060900328151553678797966247129096019572284521139772597199437027858386201108488916579380285946335149864676126121685950896184313067299897296211565861973664832330962458714013784491053158689299716327433230118266634715496805827688044143079580845991293488134654371733777574282178587077044291116493962662945693604832484446053324910574862874394856041013207813187478700551463116396536563878771718328016037879775923108608148081636223876321363173601212185795682112513823376757706901451274910835881935714518777062823911443778297086654221567637459355015415968075840214585395988252113421084530211328156010342686263415891514343763308871972583800900217485639816797421926104116382932203513837891668085269720737674290401629778886038053400487938896541102652980301518056184094253340656328006110080616332557046822220267593146450329696037449614013902335659812142217242390251157295678156070545740966278006632636070339793689284233465778193609217342477301887141597191994684856149761869364152996009548961284050540534431597277416190644494100025489696290592659791017845950463162489056026860823684718025351094087138617019282410234312772744021473142878296569402611255771018717923797465833018749921846239068785345718263011634438026060377661964045997797030751098796636601918743546852299534950959577603855015137348731257407006942304844917411280390630452684973310830711587350406780628916054458311160504624091462129870363853359574996948376264708691049460287321019827046338418055527303207806730293714306145079438419123707306483104423775701050713590337650831466165110737377715786263963882859398988320433367536665193539818921289797677786831613375550473525784992310509648255005767849127134432896855370088014523271031221232790075547967685698478917044659669866990196418121422391332070381708691837965411690310176973860840210496617130122411371551615515198503792343650072033620537077193869253159887511504185305894300903316701058216310496641985044058165083749994675076261644783159485036848690872148154935794259547359664492400714454039196359735039597244750850236993875537305664708638637683264749941502653605746920213676966563986673867397585065882415903947167652864725050417513008194955534562954091792720966981786746045589142346109261819450210246857219680613650714901376736314425765700111487927819547849895066819475858682246179254643559077484683230589030595089437250315495809139942607857209377395353767940809955637971275642014967565647729960768303853207171298092361617406033075669576163052894901248521766724110026168904114802284414955815628989791668647840978821226284860006887896262937552239581717995808623982892949926164916082911913812550995119268758746190227735394714525787169098145504251115784884959586667375781947114658736219746574450604606980637204398229409672688768525838873536526650461764952280488017070789047462967692067314099941035458066388657130916427243941228335504367689041367695242543940748222013998151634429187447440055923324075940954496335998139742071841825014471354724122953636069704546053472094322887785655644989022941807184473581083919816202012939797231030094494708156104803735856021755435495445988732322311260494447216717183559836567784353689362527832061045761676755750995710571503936495781668775945627767328011235867354669734413552714236494526280846315294186207697671873137719266718885025356560012561288396515103895934702943654314359105863239016698590999071524151480771530814057519622189068803887636351605446198125852213641518951471092188187214863299554980455737038345848176203480001312285458643208790686426809462101711933638750640771321977043608652435210261061356836685726851808403550181240385365549325829051325650272721312758466604740025436191602478979641544879784835759874928035805584982237954261646140306844808948236414815277639856298701580705946741477972853576935694416135880313920193071632396209784069382615133877700162667611284358821472621938963678268271765376147614993770629250531588309786158604130561320835331827574937920296520054274281687955050333894158199315170446292932471300072688074652296849013942764297337116389208925294962728068612600350266756395849731716270557336396176851588480434221860458690188320686428381513409930623163030992171983513868402972904268225485060177469302862076787443030639910473170509588095522581029528070324363171340654223317536707415174183858116989847333565276882308824682741369470241192326626307652855590710866915952665978438431934269413726002986790703246529053940588061695233508491766277913858406613078187457719265048943740782282553472772505802836172775634834396362269355700168182170901630073931123301694115267299014534020919060275956964842655658628023747392833071192476834040017114025612734986013786432827862460744620403136999860403897649622555656670775115376045848219052547432526211679415127613098144327197560868803565496440646700900262281119439275057521467058648959041172548818087269656146689467786900371266154994633793317491785541252968717869938672315750040544856300985400615815224518376476088832092315919224263660370989550501881945714981928021188614420269589150033080926331633797455839164242272046375802999702226132535319107171519240885599788210346053195698951082887792038322577075007224279693671324428696237371186357290351248282742937754083979060620299211909882101204474001638007047837802150010966262896558819102385738593055277817051830442821814245240333355776440334901900676788772832613431622390959754817126608599903739071037740403836291682053456493578201948864893920299904219541561304986016864687656636381801222812568865592538056457285435789296348769866554479378208644530887495146294952837582560510627679121671175378660736544490360570746044959917113121851091613470932056882875512609858320568357041959091490414740150915735975623681588885096140284521248864636019431526219825479006303735973781089715678248396231588100269924033351405723155072831941733297175185546337133120366644482917394699816450074918862731010050286591717154837883227049590547986499460526739033163271320779600993721890210241934923088656596659768300583460436498316442823170043308491444622627673209217012159522474240070701171846767305932553319107628695344394210365789831307233501110816707055179032305146374367177678321145993096107456766252321968037562690377622087410315288158741283398280088313376615947380819691871772938380466756059214278267562716969838333933434564497218254972117666775132848439278379684519862788501557532969799713568924828731177221835534926459880233748736961488850475327851528264423674572382293276470296449696403983679552535098687082983683806531756895818272480208351262377293371187665552223101510216210120697089342963437678408151208995476766616740210440097614807207952277544778706921000940026850722755368117862120578339785416703947621635183410629808341787906051034094072849988730503291807017529586003346759748173886279036829989677006281311515664666414611090940601646363882386003209841475788801275613052769082905767459522675802002528444931885886297765703654794583626845430625217865671222199196744467185431940684979539080735319013894091819700241698411502920726858856363475451882591701811296280843515143206751991449748043232115273231662591758117435246217346687643362075184365638581281445964779069048204086779133191463600517256995553427540314014333555168573608286409741402846788297422994133559905402865104784838927561491919730771447467458792272339698087911097347803622830491047550908695115163136736423644842193482810031001894227860068285481143328996540766602852720880700839346593348563486440765142626898532863649495966473837509305854165767138022203405485077668057022573612660965111817459461333213130854441334027848148355723891809426420584527080230886951861836410520478448667882649858520864637173424528351889678106415331121836711439341905718769343099848503447586249550134036753560998041295459099495759906544336724723954844669818746370980460668889331131326275411554815198521078014066530234435710507685128549445364002008277279247705526215475128852588863770775959508549442198501645853402979785045853173614489711808319066429942740411606712891279619610682402621212980496599212651490245608366885690285032454635471855086522555308349016983894498502479553809873863282372806259369279298213461833646505360268021764376276420373703522306770423209499086012778749919679487139235982502589784577189780342853489904881579723211242210942609811631551303617088390650514468970729070211036268696456476133167132383537395986218920818133005993706123552997042085294174555370206656964036745144299291859172989162821550145261372814110107286145261956611003337110958760597400389657350964486156982976227234285922156048356394293259896039347750006057778293051747003341885380756227155125804979605485008088095483091950567514787162593941814314402521791140310297978404987648676090758215742295273271486954390683005673353290381996072018875741253404688641208061406089245622870701470669161048767509993366638718986955059819099333787408913962602992254745523825237325653141477144227380252898077131723138607253048550908799193311496521562779146591997742920373089906060922864205366908430498826068163706801794992665616371276334944213784513585138602584862397362491179576428456444726093531366958010836052438109918201765317856651636057563932739621462305325150778303467912576518811445176811912095025108621628443552358768591439957906009559107850421152944890306638262118502706402061865613732428780686127762634904065191877137070412446158846102416419668515249917384843405123231910783552313676271538410942887161453423308520451405981940020975028889729984629618229395363481952167629031595725739063878745697598970451771436598642391058579929395557404064575623973305296051742427046897918637313290252192404593543715802682866584298042354107999751043408749801290220137369296592072859544215717144503075339609236930108005497693418467064561869895196820595105825190208469502319528419616073695120373504323916146307653831398213969781808045093633122097352660623007992535926653673404753861802779209458208916917058806624971088519300725642852809041075845377689204244395408985268113500147904980742479245708858937390922385960925428381202584644400004910187493127677441623494653993709986615055933773382265436823628971105081886322740394985682918931446267390303827959704547984837552936544169814298305748228749314271522271395181731331134959574240879525664023215061893405344590491645959123158182563113963698947106239585734171619186054918006416566325134003655912776377079804107282951813849384855133881659637010452125200297827541531457756077281617632129906712338675867064165540800437353579535157361620502487781091207141826994191751979085151652223594002962542707405455528009240188947248544934503693289743309564634666544808088805473074821148096994972249014290390578699667621158679768776388037085931544123627764728386499197650708914705527098956453383235377014062818742441539868084406418614067073984368875227372596988810023774089141791505933883165545825955162291540570858718981554023307236169925736311767996448179256267982333048091501437481269208645955161732826167846441267219302270154659838921861584509963233425291338951471126362364308876734958301693975134954880618533570078392311751439009075220100235514770227163318889275011357100657478368962325206334608893370384708271243180194050120365799828092302785058537926540404631750407634215240393052074892709605606124349129093449480571244027982875909352114451480887857098572604463183874808557282466708905666023081941909965380311177688102554479355746973294496147371954607390210193606115685903922501701358796347437381162457226571483035277585810760976211876102582735533363039695038410176310047706923240217915794404857434007403491941258245439145250338113662471818245067079768615185452825810353730013815395346932870908473662863129832162074442537741659497684818864228377511055372010383745637095509330837881619783459794127654894395782993151413124065894303406491505946580883583016969348728929210605470704652507340921649590703620360354518688345456004075901381552139071375472179180383779369138694052578435571222510680295534708007087070650239477623078998141352670080052412027760666636605059000563611092909472344618567590946339208435980341760305548424142930548703057677991985553877979224669754864814405371502249720918197518201070869336373892488197693863507927253165342534628389668263748404996815415696402696945197813053000985780757446137441362801817525617600269960173415762884209408041095987464088634692812744838120068750240793345216066491539983850581937632962471409708291376436903893157412348582939326829206206679649911239172715014901506079082907890249650230709480652981489296160376381066272228461182544169286599007486994328475736260065679710708599690043653020641766139775167379478692066897979913757941766157648003947400764699402243839119769907946848011460246492826917360448966263712591593933834871583382489671728834797400490897447266627425617945621494105002918723651495239616042292500405771518469128404186680412127798199567339851700390181044713670715799670491907023116906699300196420070195909024517496316279099406304284853346654248741171020421048823169168957819923671724571340837295191097325280810545830938964217001192639253282438105577087626644526517958686496774376903404057875716663282186722579240038711520250270291242853715077328871315575109607561358508162750113152137465799025248260550656458004343737419115314276921574135106167536995800890389067083662732124440624388170972602726920591090262987762591393013681508939031059684381492440768742525837666781933152950453220274249142560751299110591313132666374583984082323656737952584966433417546488692915544681688320622629116621182930920720999422081905456506286142515969741712291935519015536666365793519036829268521786197547737341187525040300073316886057760827946340907506091017265789637986886564406942133918285273734631266805856603191146812243979369299598600736154506612286827582294865551784146365788263293358456025694498550026219473776316690200451262959847917735038039766800651440284516404226869040352733574466135578672600012844369517773772039215848796799544752815911585590175905833854210895678273655914173849840959824529872305971057406383983234658094127913187518532036558028660475352435098923258182185257733331907859535107541631570400613582504744978715127604567765976989413611610683588597062232040956307825515620343440879165862953430994180168008774486226282044980882105799616273643007163386343561963821297426731174566970159054204959018666900808810398306695584355494394944678646555587974685783112919997587502616144158928677302217880219694672930718146715406805720129333105316631041894489624866075139312569320952048775931649471625376603120947113276144860378625966607589901998683905677181575031321965499229800561899844879254494213167816301987449866577381594940679590945709605014050820593465595118531916367470659762871715968995963717774477373382127007853953249047689314392743136412122380792738198157376022169409856651027486507819682575304620030266686323656145630062883430491345892227506664368905096900135817963236490386729644571161568909532119839860930850379734175066120861501101936646096509591932559178920930699932521814294833129982406480722411126004480504512716090070822567928530368332887713348925213357765022127558837406680930758629825645048543960946868080086713775167795867004216978831181148515195447714934040761552303344942123541180481558935279759581085261937933602509952689629731888079511020702703814203331692202561645385528379143422053318949367976743351766610870538477622449590854691583987469479111675460967646300573819033941767515811326269736724005672430326121348596682057250351147310566282935958549445485034036174397370786035016188912924825450555007275377663562180646709431339109748087103584243943068884696057697142016566727364886641723820170536168090624086635359389118499397066082646653074566746298475355144678851701285033649149089135396371875484162659501219750388209220810455222420860568090507973675133090572355759444877843974050004448478110378803149359658121982223714852801640503273514817544067607669746255834204949935468956407888265786356536970968496175367062385653064274203639966418135049781917501361831565187458619274029458829041898186447355081991620607601227981555466925832982961842287555365648443156423282999581492317798984352707687972687224895773327865802656327342918970044872185770151954396991635228273495281643597656467633896821229104521801072424768811025607063296365676897116008122617370914762140277334198076851810585026056842535543390210421209744990954725220175493205302977306818016914535593288917389859488492413387018071454928210315239239729100014046546788037355315271027239886932180242130418363469593854897052642650504755735506667300394606852767127441623206158709493455237948821981604497483106542000666496866171375856724831627334317994126183192676576016559270647535315536701630757344058797756130924391557092591618832172624577314859907531450614180082744726119906910247979188186832712681302974043330063596443378025247999992933091875061805556413418612775135772648886129751533600417007159254418641927750088962286702320275206165792980530456008073868912236855750734378772859023074190804208643430959783557888670162321295223420064513072019289680051115835570475183567917020662845610208158533361288563213568197812772352410753413790259755904882121767521674715092401731383663087967695491778796285583781325224656932132668161163743546069357610528028944928310254028183698385868706084198443273648021190412528741250759473828397500109171993986180092781361063883877351881310763828658898373985087366380944291416295288283054163302420338846494151283382378084434136110116645311969684482176092587839071256763596890274633376075244066504296821836840097793406429540053154412324184103373976317746237981280733331901210122279879419196593648165204162538987765274200862927279606084849133896576166759800494954774990305720925637580760729442911447905964833012346629735071630065185099090844488915085491233069695600725639971051310825460996985152440141260432792508848303760171817267522490177002036697775651665610053760908967718429296864585776548975336336799950346132176193967615651225888329847223856909821826543420670773211200604015983491838274939518110941380770270782946362279196547125055248081192305498073069050098923178463510496780180323497300617323378655757612714798354126701741694292351024066423673752395649729296994873589375367328998619926950073425964537068737954465482239878687869544621459661694709542066991212979515664409945204778639820646626026918956792684685304045957140097797150251715830992209110947269277743738266048474883205663812869000237378234225219438514923153708985853113722546944484843492398422938508173052632098686635182722874988130923069503607580872590501328845479896920866832616436743264665804167568173765975333283563619156391577777440192832884090342907975949580720680528183979233814085680283966255140522005264874542772228818867600265745175069847022928517784137889516379766786074039380653526116166813946086424305547735647164516411675293492651759269026991462529665899994868979101868408201432510331554388000337464177505481634956992739824497594168736753626257686591521734172890278262337654337105544742001324349369910840868695338942087693637739426955749817569363374248517930721655248537357477068930649166126596188698112355294157251077992836607948204232653930032021024702490007742357881777808633244775683968203694988369461561608348388618657341231301145943331252562415756330292385171277079710910444544108154936558144831411544483071892145034729960808898469099711221086768003187987675545258725593828349317364485631359348582462963816939014108026237954703857945717565501034134014586592348204312289254078610023840786021669961880250914378658348865497056509499914468307608150204773377091027413623107306284306909624075892298761911036293000965102914819985945199500452933037311712478599061043171398100012980641930556636948757877895050515099338760210018329500869128865940191949292154376329041602175190996602964038705172487004377574966441766081780028616052569575514873422310535688463636495378530445146221251034039290526374850223091823774632924737505312765028372467759611039844191974061548626607893889848449604911182282830437925920693474982048532961241914403593164847469966898769052754348998401849973095721531516833393674355200171391536909283898150425021548579199986385538547436621136501057549668209355439593589827594055975472383022043925677665705160005053380168875962988296998298852006763733442909889596231575909991193817214526687560176632358032884290706156411806486298840705661946815849145477781720482062990115769079619617435110298381905489131571708547113747645528729408566183236868925020576503613993658572105627519564365298553082422676350991403626765406895582713680583075740997182438652076477263030040025722537365299048364229327324705903801084963537214063883617318710548432636687774380109931422415961940607748600594771889597314890409868941066540114290844463742547068853749649955596038178292034793091114153351947013315629222436108457937074186194909073433091502502321188011839596647519703561909828044242728412051442225997413112602650555992505029800373724639754178549189821220340312061861900199685326879343781111839984077165020695716248821891419623655415678395132430730216739434605679594840866177380646828225298640279615699488592478330884074557056359321383752430096570952382678849465195479955779923874797006149603703884850506417032866672552252867104754487366214278702517699152801128383371681707137657297393990410619906736598781982454466719134190343648448212257336264823581272097802121455289842010422641419196247645416099517585032938738472732335682647451831931096759816828985028808587890035610334077035288845602442115558732768504705734559318335281135548287005489291124236958957416215728804306776158997717351548811876232880697138895859242481225475625544434870230685181999561312028677270339781974541898654633358008647548005615238414939944773653450750981496346418143365051637176505025951233136941080047197201355768421764002894843396618108425849483746586090954832558819226928403232235716759428099330216361323221533203904734188687346105808721066240696857471574168855454799537330470085053934931446375012586284053828126572944137688122012233849945670455666726121422601798300257520882409346739993766992416362497738790134649237611106000400633830181961449489511412732379779697268716879565628801583243299339771670370218343626428701995113546601345899335716508037723590385654417309274013517471222059486644321158458865028725643824643887566231433142643032213548728311434778413229761551872506922044705812311834795870170525491858541243854090264600601824189675693018472436540466366243479774974154343851402437566790042065540050726525211403232294980357680801392282724139662913989128502705036574183184801842914574692870171552578269007191025958862670937910116606392587218101487465068725782064157386051611433698364563815390389739590135679552914434182135291783036958042701041776689486382010336574812604048853427927333625514020212355203105130377016751176851606351337801962403140292886537797037710668568786956374138747137731663989511577309455920097642129665752746178527631162419023958131486010435842506155569707427570205215521258853805053870680559430085172915059666751872930584796813549341107896959115807924850405902416020767109785674295606158014075825754752263166499134397148648948022730536055611155525418555620571067087501516738738492226252413257539400769006241800811528994792844267121280078335931857490260742830059875378590887216314271736218584145146649151080171462728462492045517657515917245205430633563539842471184124914323762716496748277484461542163601399415603474724222588902437968672720170123423201771244615510753769564325202359361938179308410386105256347941119631897031350939874652014823627731496732065352002148072608720272038260734897843664600537308387187309060436190243812588832966543170564594719989580003169135825980681806053151035482606201666848806524473644111734548415029814589656376249382546897681780851974648208660973371066899355121331984490903495866882444185452771238228334800949977416514280892565611242302055670342810690165405837244844565405573856006663394397111887700720094890627613609762205363110363472642484466777739440809459108440315792968063110151163926655048827232025829511099863448346811360717739044099240665831617633981076538113684463514009053393871608429863115350833009922377759238835061726212732600140955753784260180355044789572336340807567953527753707258871794626399012609268140491897895286496128462508770647247703814422423992511746728392302958946081680573513612494471905424652301045866977440506574483003785151761179780338812569927317288215630262553159859230959560109142161381233233495056517753359835193579464795903804963496883025647952392351315952314834033801659549705776423882668860147536065980699261637641066681720434949847247547061294916773622196308132615609078171498627803911583007725845285280370133802959913809408504518050552395235157174758204168990091114260301631482645314933071952628355652196682954025201090134592013317334916064815685312681274690186060811236381665873046799792198154525491009706177326534050825848087475593087913021411180252333506288334664257604042022973967211612193975485587643278119577435290114127837980113548175640736313170594320443888388266713705566906687915131076185460542389634634208420965770015568081502203702753588973117700001106578222737781536546254451623685560878144430733266912930148731319348129519085888029101337487492520486843407272475386159149215045622265389813749778964472347612582506656163557920298659414496238374576869053196967053875342960807963965773757378157823356035480277828680641857773343782893568654874214870327207995056553664091291834629780602689840783258169104658338904117368625728989470217531929108000448722897472978085924812134425150747661537949287176568361391386116177789571738188703310832870721519810840577750661545923902735686056152900850121282196911362632676697627260705104290940835774114124058989455207052154568181223428530283107208693803729544897256719762698978344353264538580911207742944412829180056394462528061302930209975602856423554123466969154646883510024661901357690265449757443313314826526680665072795873737357860694620153852104564497212440575198425880420454112848514916156957173448189645633848138586006687000243191601731489955117329535742187455749403624273383100341357500400225503237400825328225022615729869692667636769435112624749210530581449053682917149852694508640294000071609493007405396253407706640450418260668558477596238143283568764163541328493451344196613319736911612172734993215511590890625302645087799553893624692242161035108175497290700180612275223825637479834213373988144203256170275840864070442136171937695675480832726417230597063755613645541493176962851460516617142502974020326826235608178059180465620650575290441348428155559203250685889650149023462812302035338556989610540607178808243814547654784381718111476587391854163581229896244294913999962077141621262213548733054648198685282981397141228286368859702609174076675084209721563223728295647072516089436148157638264766321410663275043059220662736305226584229077319332146304052361982059735240315041433283312942012686202863940074944347173189692310319339793166091533087507977389887062143231473768700246872841171033127569108125402791699760891196327092662364992895745529132483363384312596835855613082351012962529299331728667176987856118419258588114108383002924208539754577782789001453752324608977024944670262762931032173613112391006142041346251458389933410832309189096643324051916887292892955468582651935071793730410356709962721017675685089752457146846329241391239236996374272297547519513161147220940371559469988278413471959760958339905876300533653409848219607675509192658992099362058594596814981983689256252877473201269820289099673487156890621120850055360280220443259836615097089092802762872044428380087100716991736261347158196652004007550021399864387165916374204739858031741440194566967558265314460660452754548308770683956081236807041100409733675771419364193755427483687602745735819525430493561110202020538806640801716017954354050080725899272698158996822347217135167090278678792079345967147576952082455261329017032980393976706580181868757994834386767594235983041867674154108878609773331674325700708031396953598992459356287299575056706941644677376784055366091060799673963729641662485497811763454277807472911285779607269064610388829370394853973529473002384005791543751118910125796473536634973260181289147269221807165855747801530578807628969175254751146522037954716910390858879074012923522349959477663277580329913744625341314528435829718534096112198480347309151134522912113880492836591894959573914972748742816461674250095877836062508180132895936440665937060197635976779127696854093036107853363716440458133377542625513727112544476392347136723321826289509740350955039975296777471735729171366402627831501042192979561949836721304586371906421891177870235784118957464908613072462570064428806361711700955557184234520598876351721006033676810721972127528893040509887257046969834077375018626673545796398449249528996048309863555119294996551833338787460092583785206864561446906886756003291080550579555012811891669162233048809842376762012227117297438917524865770445689753647235029477942146439612562187393866032737167094810630943273788189445617879882472835069663544784678466986577354881883898761026095075687927019867651973638705220588347630112589116932596961602938013230170819551577373741354422488899790336403732412651627410270706870771227397281593146095691543194042817849154951584210005120511996588209354410838835138490597340422020133383243483133835689814299547711037244094288552853733877999708064335269249743699530924807363841098185699959854743307832088384941924286688034146742821400364723558086993896498016769935301071191161027731843527174877690259331948678109210877015766658607425922249513115700340725751569308501020649080972286157432288645773634555735937610653054311288895029868964500372354378903700816345831174064265735594474987068964669517708095965544488016991817104579382934449475598669587416478566163821780620308555936643187406525255896129029992421209381963762402615461879534384956306829816083872759057357683921443113100270185403257698293354179265683523075298168940846400379596019553180359176244739423939592685349544863090231741800434839993382405090685533687367189050690678618872223494481989247899518057275883735445386099054905519246029678583750267780876411545107622750766871408292763298777952118009052606292929537415465563441124155069443165063438229867651628498129952119918504058794463378939274988802814430658202380618792834772931178206911333902678488296662631505278011470557561880061520723461653129627942097491070402271900770549295500877027483137721081909071250819291990251795157010086456870905473094466391238918071100339864071456547740197871923721907247458162714764384920539277988215960471264229561187344951653959436234872614132593083283640283640440369292965316989852336369983312070766787705753945227185855110166025316644874255500061053189440439382175730068269431624044057609197520245098704282489572301244941296837866326695505139527084767106427857638251386450733514696780315504451901351804520947050642534519255574829265956571659703913483521884920229354946770317505154820633383620052019687238563559070732338798117555315037258727729790018533038582004889318746978409081306044852170672281307203820639450683085643786591754305449996715631450218648365816161268984683659336523767742761281916041505192552726913980942790127024618179973656956414605420793327392673328487879005882796432181822521734167376834555170702240815246115452830941249285743947551974085001603359476531038454840939955715001300554226514798613016347119278147800484192019604240605858485731240727362329230803544011932573144570382389863436122907338006647334222594824686512504979810172859923832290775041637141736793827792199288290965845775905568792442360512199103529323257949716450800203253132783776928358298968287276533157706208215008610528961227969814237443802675824854032640068103796054104157777374340717275285808641457261734685983844532791905388781856300995192512883944764810223081519690393378911639574005307295060966527836767740884559058799989941676099124628782332967512579551185610510805235941270634370809593194092835111570866712904639835064381721025089325452467685687320515805082277086067381209569254888221746773678080107820537812828227944863318621719634235221888382781758415609916823067147923162801587892991830393401142401335314306301389952268504988204479370564580819413361581771867344727421668577965843604803446197286262735599634890389079190080319410005961987816400989999595834063135481203583508956648490897862943803133610810869138471213724911948346816231010642691211205460696137678535766630979295603121664672864128396020916261654171847799671636390007133598564855873363956436770851861518036110166665764402206326142514891403878627374420228325230317960467857941404542825684154495746011266375584693418224541564857346973342645359427142278925311231436114572876676083198562108594582780016485151842858090539754116389949399961261328140628126920754266069686755203072312723583822938344057882038202148250410110859009796524624571979999485749459632591232451555471670558616760933397260658748817743087277605758977408484192111619004359771180271792153548200137543321421659554945360011051320365417866849615419192073384022716294515231448734774001593987458372208959340954434874885541573038385084296428157206094361979341729569663866340837575557067211048562706475065259985028251354479558283546083509425834856474256864055677196750528451490354110347824656054960786210116908296585715818830636331839594461923707681013939402461108302937122746702551068571373800210390364497140662524718350175262751964801569975852640470006052983125830816913793143936767908241813395161509746958575101623980311198483011513852234780906397844463432421313052465433562439738027361303985377075179091532580360434318541703078969806424885631552403452867574585908443838048522171092794833809544978350624003573039968669583985924674787813400592823667731707684954908166252934625105711747392405223106685664656790368627508026973486729421186675826277532616433909992930983727345429059592796728031521532534105793636064455164779290862016454714866049504292071395523437213585523508868484180260419349599975441266391552755468406207927439608176227427428605570545654315592565899791592938621798383691335346717707748208685554526074212322551727149087251156746507364294529038891224407723292804458122794328200641365547143065779743809132701425143482144482915754107854072115898275478792011920012454991529403770423026513855095474939926788533198515942405335174196447321337235975959683071058335356388874864631530959436261071933458332260985088656237543246300469983785477023820871273825590354636758764206303125731749455786369794561769325146077830078046307936350756593867065249773512343691826546271929289571898597839357561743488288951081000679453686399425199617827478995156747919874350562430551956957050941282295758250346318450372149618434836958012419760510938144739228422688303327737806363114625092059760669048688125140707725043161580821921956932955889382974045562271473125712244197867124625825722982924729871067809583796379414355363803980692063854185739818084295517996053639620741881076879994904258585262650542867583480680740985603326942574037441451261108712997466773199254010563404327672382280843391170371388092213777361426980640475713907872648930507160326163348929729562332882425235742313463572847781868282504160185503193507595986197652468368576933262820419939373520765740386709532637007232578919060025564554347452676661859434195530361197415870187408666233975549243844269641840358031605105233758781755576221996812235721192783516167054184785674176251533461305779800776815856911965861339593779656410895443340527018746199092739565065836365126421661892398838295184701232463921461123763382737766409982578663689147809074407281046281718142413583478203194093715582648309523119801119907401168274400201827810991128274633838089920112666416959772655613818126924553299392488318881526312097300778540815789851681407101955309111757098853640927001442668575563144472856754486659334681225822838254055672793680485281424931751421706299427411869451521474078381645403988699607360133910649436802503963205601582623568526643802126670027545807622401524344647089861987606491415257252738221699862136934691408488765195037333750482071112309966791075941099790911008826514558636257535570125177021034396119371498289890912628401722844259526609241225663504442009244849207175174750307578803538789821370506246911943106682258183169426105054853725090220066554015980445067915140012995395023665981863693952862835876664115966032028888958974326575505219352038028668336550858007328406079906050445907230949130035148394970328297186521779147144887056943581372436812196825154610343038720760395783510654623300806459641119197325778530795824075102493763392956355440819112483393733881950990310428754674814354373430988892905134300161025341940566367728550368250775525116207899164404261796446129757283135848016384560961179168322028959820807924466192228031528002772990250990381788914187664749013602005512796942024587126921296760627928018057112774151734838082011206852053948766427132709478016924933730162756272929506462751361035049310688193949573930394569443712064067554202169069317725398276053634942800512845104355586184386605170751480264132129372987915736137414754091736299141885931607323728679008097315681878782354743264700851557460161328940930295782277668182868984721731293506181112762107717026156548723949899159836228311305939851251758461251914681920002689275306503653814380769364979270843013165974525830348107716187882995019939146392424498992202700587546251159118606909510179949447463587531423298735988658473684003219347842619903874722504807437616315896014283060828258512847691216159140672631381728943456582416057979839240581624820471789730190322801582687407700644326955756770135693676889067115120633471888364774780240423563954487067897976301053380784299597646418588739901815526933784927435847999329714178694038218720315621876420082020758670025627120867644052556250469246639557315128235562114588707355365169059787008762538734469114544287659848530322334733798257836752590744064372704142541908224580352933089115152811359481750692286519279592275950614848131662563943668155883598211016347254193541760906350296179090224560303333249012934392241429288591116690828509504065233574039126033615676273244201408882415549504651390642141870989270986411674285354451796293189036609386182406603516216363599650059189695867054419460865769572919288733646388871523648271979125344463507373863241289569637225477518566668473825893885315302523764615134343550289754317043603897000985719320397317359939192091201413186529523046594367798689429269767252951573292357632222875382442721798353156868504868077868698156451940509480487647213905292813504201891018993107560851457535460521106841687040464511415342148298276997475557981899423070192452841865588446013241417338349846399135871002360768429644552278736977323251267806559090401113565784049157918812717944861623576641707989442106988030364736937278902515960761940534650501154167407153789408072307312307518585239184327143347997398925131617686514738070518725187325313400245883276120525084232172849928889130851066939774009414410067838291367661100167638794564196829617774859500972827559144631818628047406151951923844961962389428738909879595197985173225501534784146271110655548105238169683687691607103793970300054595357802214604698735918836502627279775875821191868889675323409813970840319019713562451231718494710566368453836931913814689556531771833083412763851157413704016863605106147743158864548220936434353927319154286194986948325672294680330329671923814489730866233648639691061184147123519166360448563956408262808192701982536427061788786031951169190479009935055724150999614866627158816304863447667231477865475800383869185648940372174585400868025577683018790253873608107922219486676162492338736478004291552050197182204175014973359709438167678116127586716137200427388178112503187954446366773284421103325164400578629531781076846863928463828941411551601217451960254857148568673078271172679612399931541204082004278137774009717685861539704891400740089558426211200266892642900401303935661980380742275010366007771261510358491584844217846386059000396155921563805667733805565100258308732491716437203650949396149653447926539779283704604348964813415675459094256265273182054198266466394155140481834568846939346473465538866643127843338660540949040643611411840411819640979042986127823319816227576859837828795532850509430681833319691439565267641673226406360226960212468418714267019110686010790633543723353321794058830106637229752229771189878047420282909304565046840280490358671724643940225672504201839260071133497511263239241366455196316020678219488426302294683281646161790169935778555087422024295903421891859867855302730293024374677661750751800989869624350549812562836419550312050532097246588449249943852978500110733647367771882148320225742847865521109188209696679998422596555827102523249953844529004714144198023825157165853257492901802338359996381781616869579109469942043387657280869982211117891569418344927810158170612703056016138822268632456922085003158937655479145446210538076339523109604938032996885418262987657764337232203854610184890884125116497877434160982146907836969313173117959874638989696537979478064435208262881475855870588967259106214702659426986705293541211575701908796376857249954139942722634622044059532997488331247281193056689482528901631591883995769686383978712716316277329555257426404100100926363648867371826870438717866469943852467340421077460261863349519646484794324330546937724778289337412738706857538841459881323509808194705506793708917232565387467125273354861159994885972414109718957617547530839735038294574327916318642285182786745871418885111948893484703894109550698766448501953783120346326256884347864275914470649381125224557363943511753231543373443263333295956586357845071904738124266201519339803874933082278197453567179849241534806097830264504169576242863032610927655343984561763713923344737087054409379967914104550575436542500318577683409022457080468477091005296360983564157196671380063056450297493955154839888759207541937250315342653284053703391888375860190010497568230614339868395752536511900246128957669846591283355878364510041214622760655089637759458217265828522090380401707482070112245601247525064654689691112858296694082896761694317565239014840679391914418993731511562333236161846731854125592675971657661891367353661002068751098441479384961283850171491882330281385453165472010218843662343659765087178621320684280333760620565315311773339855343637687501679794362006215237970793567227839376845060975928019950829383006545949322796888081860387384869092737077652295753184924336383680788382256552748825161548258450770577543699766962120300680320494834641849155090141862064634848702112599925687444168071464044677066294976822397902711905587860521544138747851510427307341281460421945337071017446035466316177619855816182092008316037585809332218008649340376043721694989996363277393742882117149073917709469647348561245322830646319490495083740786201865336947854886974254691842475490216158368176586063505723981728683070500403532014524183785261850843792303982246584658634978337701624014570263957747453451096010649189314202083147137382904334009691366376122211020116776573587841843813754466856969393344739756308654344665736476987211911912311731435404064427558199371465599105637413402801749871379504410960650405501018848416518426384278346692242481601693807340565927798519757557300317480321346665297715288710830794246809746957577032318520903481356605509046411858265727991677751286466989417381247341836086314351619199548244697832367332976898988636476737825049478830932419714792063022139167159557318567256942349945086014479966947492578100773754022361817362902039078006305696824691905887681108988800609952903612896830479930181801367111012782274962059284203288194576560236164008745912419175554851808751479003559270918331756662430938503390730629741103169177157617609147948568872311881209133495800285576881627911945569763286370391586588551368279069096697351710945545689481601217141477253323013607570471595113504166829414599034982371069128520323336485495721937837507790642908504812763111922970416938531862525353564029487200267388591741324359337211481210487467292193369990735894594011088039228268828064720999295521089945290612105821189019007238445375889445854495353204414063802472620211338247688768271091129477398235872778193378395519736417457043525360723952029233392176297675771569403418322702131509884831228790595241421217860744484681256534255971851941370604925175058154423965787397581460480010643229729026664444326096898269674832192118232412622927098122925804240568487356184993765070766961017527843730565178211581509770259355449807944568535983588315415273648329972432088556615223331384219400467923606189184397567423835248602044020344776075169805904695878218998506340397510370397233731591134944713577893277016537202304683522250864681002359791680387017282346992398827427444732601262223755954620971876667150158961772883141174023967995116579394583959139158302310149631232557251919977923745553556535621113603520815604699965291487415497778589158219094766309180771496690081026414200050196453111012023417013511284368242131503185644947854859307445870498248185217867734395826845330580918753212651602373974611016053482726869614472172984343410047310536159646395451444701111083107347329393973818182694760142124995037100816113464984593356907363547340857932853567206969448013517578454231442090235722517016878140588829936188093506124123938895015858831984768288264723790189905731244814698424630055795408901558707601209671814866861599593678334931274994871040627914763197694429374126323460218384422377706347151446344866607963471443874024025083890300939298476527788915510257167279616829981558548629552383083706293558217517708647082338192570269094789298982789133579476314700608094257413357318968104008340151592120926716997336038961469737037740730023709171616807767159512326682836178128948290560335050152803196182334817198418645069296883064306212061475309549348444268390200198724640076179092371055029951773705670399163790031671936395820035721561027823648749297092352631973418783892342215292416129546215716754701697770344690120538871824400081700463594992631824683011232937973984422909802258049027704818906420318053215962382435340826120201089829506956313853612324237262252883271319782131495917320114214170178463858897784833259719054661045191944677585035985633714616544655152968605488929165012514919505623463792292150472674256295708101198170762598529446412262729139113213746020732984539842319238966595886467939825803852455772737804133359167213148007231327771136937175810719198752728770861987866094203212523428615702887458050615909858598081084391430952849895992194330373271723163817779472513763886775489499894570777449225870856051615494465077956722184162899960176939847531669437174814110146806044097409389543658370741331289736142296243099810868545243093113382248686434596500817376381747182145242330191969333187329133508276860554027093144730814264048898414494966323470633383391884400422480893672540665210370574738152025598869426549912311855955825013900861464776414583982386816653866901629915685464048075586920505581591961292542454903120973055232820183371936588077604975641846063563575922167384545450161165894921904410417702721459201396071075066327983190294954067528847011337669556112873479032943516425601166629668296876185607882771404323499323274678447131875966257079000351182561125115546604799237743392482112438026513804597765090724956587377326180130044988495227249791846759101847218219718927085778782334716874225716559198687657928328153629632337551696186082765917766122368583965346258738697698722318877659792752620057331407831806684449529348770684363901373539167219863571442635557878658394610336051578035325636052235617850467529666108172564646126864694831495371052772942361580193727207732181238107124993230386351200308281479425083203478283065103297924806942202673454686669822247602509456771123395391181821738731547493882585820565002894836450875702126047414973081570649351100872771736632176338662075893756037624692967368638376280025225985282346950996999718529816473080533446604415278298197264766635607927081978466337784992635307747914589261873612380793653018446715720068157595730641303223449577057019397053443535109702796883955690939915917864999542624388438060117897296947702940524854484825131143996587146540085690757600607306370185658585718826233180530687157645082413666188482315680686366555681771110165197472282055653839692318783372727719243314338549775214887367816848700839040636616855324472196393574959048281451858122604563827188974456436611970872912641667029359877507835004825468613000556263656318606727192024653934679677363365506648888675264581801190826857311429210572624761764470784412939449646166179299856775776678548307446394786547118302709305710919045312302161953391182165499578974243664244492897609636975153904348035230674283628637684120925095550702153482266932358416407456665484238820473571778297916457392685288782100772658334192324384321573850875621504270889378299362281741568579310618431514296050332049732361595650634778473620504630649275378609418913434717170599998952639172501139993428504898882047196072356518198672191660581322784732025958432686180942160259007734141633434091679236228632769008395879254546583717382610510641086365866564097311860675301036813759868978374279177509070292270543609175671534580185113746247754870084179556014050192591360656788873190808942135565796974053951386974146206160519222127926223083061349569482439286300708058513745553708417114028814935896163880589320745230179524163961459408786718416761276044967890166023504166154623437072681307482469853842631647690110784569987719600678422716750967379686228824798348462239170262654509627739093151726107517494471245471822478796864390317657968350097727481676630902229168208883971092242425070018680533517269205668896756586391729600967910179954702190528413392245822926624284847536941347436083190225279626886798906067782130567857512123225159894338590841678778994934064977104486667790075770558779827231089239992814650500792279904445421956271617533630750908944687087852480118076902278345100172850856170847298980682145245265947420495835580860627151839466602770234453991422009249043626330890642946003571514851896289953987430670414677378256167398227025558843374931740741686083552735462523894345587705921847344263118923315928653572724482306270380455975165849664896406969979648141110645031222089302650742409233500312522786164230064220242174911572516774164676739150980182206732316951377596501986824876045587987548102670370517139855686038213689626303321202721295942387675523688945847939704372302695588333772051179211924904981755141283936632718247487733004362461243948230506681724647498333158716492731638671944204032579151867582423956399038122050085758940937396507537735961942352731123505686885956866890043037252778413207979372215715322921281798499310807949877323411769794479710706292731695408118271801098158845387817179638579725339150716961436225019888496217023339872098149365404998038784620713624958697989505464816225466792201642010572462410059312019485450967257582128850262790225311681213363495571053364987689041153622741421149801562172192660063930725861407707346941085972741335695979598566511645459954758103799840119913840758018008854817887725085276743336313669088454491498848420972993579431420415031813673778666256956765799592854620183756226483689572866942825039881905967280847094314387179343391170391008478364400641527096134605102008666649226847465511131537252288271036241302293022168615528197442404386691504168378338723984630213391239480209680932680402993620578397032306347482212742314554435361461093458422082847649547152442555003153572097615600145006021072056881454685089529165136756179901860728842959794060136866575052487488516880311131215610833876359271413033266825153245766519391769161997044274840751456811374980824352085440169662334845148026638739409798841524902836709850584428930209017025966843270230221412303488154262535450555667229618153993505276592039602387985863950147913549858462287394649187375952986409216934390235420330829499478634936288538801130134853655661032014160616028451874965092464040849526349289616429594905154311783027602564490913839393063119245176647914140461108366601834691096863950078327361262169244308485355017602214375508507991080226825387200359998683093001245797447651122020057733313538124321230309199549828033450801852834828029672672107970325858492164129604439525358149121706565429319323001946195262828244076633029304962417094229130891124023400408605088264159787555774288262230224403821794509623615404239339713368195402129140964638413044787581593809136787625386275643245311724799160101014673611656873719541329180960118364880649278027765347345345127608925768595647903249105802569090528809830535335391092444488388766631069763833963680072152043892386180525569005517889248168784226986101385520538047033200354785362194589708958679977956670227267873231740904595225472155914645534133777100930396141252082861758265640106532627579258911209094157915895732716342972657316946086030479184730371767344347731314355017394676636085992642561554240384080108629440325777238362818607180399092787783832532888022136802680385152023920778918655816977882777130610020985163459918537479480632200451155163952243328154381427366978639105937409360428778494217385937772268602250124553760424604342511525863730389804852440138484565195562256830638072528460902623643387203635925101276993584049890357566893793930240581209469108348773364926190825592279015745278190356759872600912281396835410598354961925869218150442302827331837824992035277224694794587477252781555637915816474610508666645031297203625019230322023790916035910870207555707691791099782281330799355777524741701351139728632398831259570962030674522618651781790801577605597646938530202293223918816860105434888501704732764238875861432387188382595174278380622163847032545073195708724909109944924288155531120245298078861954644334926458173978320889202264003804035056573028783423749702155415879681561150172737264213130071188916395376338096159050874265524796590474241104475212481908004360267756862293686340998627456011049462310827190480167465414169338281084631125481079341378924627565076929179724899733651171219870131654163267797412431541644625077220789540376080026422386130280558962700924315711050482947299495465848096269489974136040755367531914131689312742873855219489979218414050919683119598925671320558344325823380465617311443914436106799728784973409904590263790225918669816410114103724797805610394814332950612451760477457846417451925829845047308948771962417688741576282851214534305742804555353634484661333442521796759960993133269173938053362349690859095954752452592271192119620445474718937486753677972643393277111081941619278446327260567128675514597460468926931417656044136422540314238136321545983632756873814474527416384015836732797096893704949255883517671360172215729701508189547352490663672802874100737671681344067145857555740933275857784646256672635519277431223570388280659161018207227845656718241067439163157241628325846543444304017123730354098791701619610550914203460470643586363845421183492028707918951756685511374626565161624090405617842743117757909680201954327069808924546078296900388139141756979964132634910765651142764252582888155583113315538950080361973523354854650619880927637444203637152716492013467894666909177692820354966834806429984792795218693497781218338598257054751327854962789114620931788457274179887891753933746591685335486331752488559825266959852892211471023074864180235377115942495960727831686367359971322689368636623152608714361319352615782016395256329626188769213399455667037293094917691697063532293683629543898129333569612620287595840675827091324848167427517585842425830245133098214567385196267315122373503181878121178783947792557001335695563882296287396554554144824693812780088305872858605798339364358867531686590920678622594925070809419998107549189220628812903919766759191025114579336219322579776828854542621639203172433346709556686882110258831817815172667546111492038437387030808763826571384842342177150287069424700411015131984571172488121878509916751174196846445259691890720794553532652919783639903729576488733643875548858491046067921782045364264568079107146026363304506682322602475336798280825183335592954496792790878497380218756719355148139342001196586415007822940012061298594783111422159819917849383690699496214385991580896271375052893941068844100276437113912743593818621525617079909379000884038741535500093090584974432011677643149640523274579229560875922812672691546803845513153030323126361157380729938700422416824605867138692287043833505148635202399247444406740127812483625826352053533230684022241473437153273225986308750328612545236059717481756229764196683965944241723820998121637431638963283909912942532798639410364934110811330097194181288876554507771482460130344069257618882486665923235733371777095404897330438758480034372044641939860554486007623907386978470973584521066920201825530890347985561823291168831539845816139816090445336653220534416392483860296534832978634172446827122802879031154642872221311427675205921790676892394475172787480417831421215451159548998947977580269053731684969084067568840800756762600238971571468771616309733029421149753194784076149410598459085623078426744231974468790588723938288475581627981548356519737138790570073846615215109266571975307965738437576167569188066798767992372551641464403346214701228345755037673847773606771482759474863519844351034499790079529482796498446582315435453634778519472896095941486597021854759584435817435677877554840707414823780219770763223524583326966145043794176376891884551554570332470618513639067311715926509705851612906203953516627764942288008255397622211743146830671972643193245266897316599297141464432120851527591520478952452919647446971495710821476006744148218307252697062520081880727742779252192076603761852655060821299796076145995210774677503055306405121381353421527703911556145091076047184487956092604386363340397147385643792072732038409298293281079020489987044753636689755485196475579582269014296582427260026494832319845701686116014708686514393880662904746026012038718979869060326448135872282461750837696479692398333259143498983504812928910671860097684309675232655459495550429589879893726186445486495837895243803409475740168754674999355143717632406378322570645765682455721232577085812464937815862675609405684803593551464652063939267343993789156261465116209869032325208201340756487676679583049592623989457801861799844392466857374192615948397888706651654638205742910124284878335486976935291826825113394878095388402391211324556761399438838030252105639885118257068428629210680766731867249457285476041486486234551309229067323987487133366829395932410408651758814806381533197573875900701784720437870530605611281102871872214066321497917700667125637917860331358371511490757675896593211700818676642768899659812078232518861063842754958964751843241888210512341720655877559376897075026609963498533386734637598305129951475809874928418917461952806417136137103644177027953298908701713898463265486988789141798361098335365121689948284880330179574662495353889204167741090259412319513538607280972572057935979237183674318566091005185630553141731859333339941082472493655435625152314195547541646943402944539635258591737050415290922372512670160186875073359304306769269793031607268191677906054823070269227994880889664918233246052295632629216568424011541856013427967743878932575240553819773856934695840527363282069569620313059904783912555494652437540066693732033047601744487172295204529690957638582335732368372090178146984387816662841471966513704826007483452054933576055378920627836163181894798498454417380730846517456940183821881028087369591849196888603370863917611564227515124115453109339296845814828872482101038068735087113458017396429978802557285986829438420958432107909558520371396515714251533558195317776926359957038984199663481214014513272946735381093391382554941421740006469910707780208323199151233158839199407550901510835912541220817416027191302789764023799904438933293930703540525851573840942699498913342028779922612414860395370560769635265714286666449081494616177480538607988257564998898367056977360025293168233991553868731972155966111681128664237905289962492279606441397745849373532773518183062037271898320085707920420471622415526274549200990649734656760340734389922105136163306767559016381725830671047258587846255091128405415284776990694590668240236850904878676218221430487318967452622267209384136841919464464775487300340101222233946188679231675520843610772937143109857907287448248143850121941467740642236718602928430670867878276816484309124499901950494152734645712225004118503580925011207667755320126188712982036753088163938129120292278260481632231799235145817725797322493956652709246233499396019419164482124730096254983948916028269800553334567560989922014676165883790242701523290084910205591754846916844865941226641922818460918437409976577930263375808613659841821715627655923268174224001823364535529019829561589100656025334424133501555106200882165381025438235926538586328426282139201962231095846829564741718329539839210831268722878150744662546510165857994865360467908993311680066358996134182241799771293452006578790147604675492292353963860483075028639937791771162430529105524865466876095987100261544545666758694340093907464397836557304740281939277881823510903512764792601489299318113860389580032259058183774612870550142794778779425853637380265709242195340548661592545967995449322755870221214644484172857476462593835260500809486295612043746013920116220709819520731294877364802744879996988776224634715588454596035001988106669258468713563297705288345486811487659055635167504140521754826731978087626643259219254753440358925015462982942221215144117275919298016588631621865836954674351385227156600572925922609934976980723169481130055485190275642113153272550363172061044735072811067947129750251679378192698550222743191022469178667817544295508563114991516115743165282143689790641340273980767321018412146944829591984249110248865236755228726841275069557782226601951679581273234063361990493517716530301407802640235096900139504847399418688334789050792066002871495042036702753252852473004200441308165173402752264451314269302839035021009484989778480518434898696591368942108814273570683117902876143671272981063823853829758989714371262441400809819914278245940877344181492845762536576209932746382667305403854458078631346235856040190772025633102940728495604489857751752536380463060826414770156153936671946729517976626563122092076393943827781371541295932768505715842086243281257654493783184230355125671857506319803404666917861360424456310297798441368148759840859048258694688845197796916542786654357218727067153910388622835650022948644063623814959231582745185792206105524250167396894151436394539550956392853250381106355429183931129496026670117971734231224723702006320065040678234331501620639965518370331634192059719042146304254847247798861440513364995796942858671129676164050545700527462909798375551204591520275364574492286054268408771931072534360170301539604929366007425674103472699683450384285589464694934759003877738599539305160099390449761485930230534361745866180917868763442599597416197827401085263804493364990163330711834747178412394489120199948081919229439398966201476281318027770378703214342933656755599180865942088363864405367497330732089674446155604877802787506423661278821727163523942155385311687702320146160465677654153983027621304907532590724245563487049803989567847568012543263243046073630072111997244331314180323683019323046938617391919512356472309837842878544013017918927631944759853394832341648602729715879198792563175731261933999447548302807054064813656962338902667645544111762590863483254519369751564694981220935264058169166300377290719279971773291223531694406026831056787933862122133957504909285369782683210970421070725672476542435463772299172089576778497942210940279874946764186829586454046495575476009769549625298878822546095116762372838903001935789171528525429318038920399405175775137041358522344183874300234689073655262304336317475626773170934008079940697826788389432246644477250294245130132170436468425037982469855340379458136507096949723955176057851671178581074319781747772237207521773801723631108340961763396759278966012047690032082445813824298826710947321699178127605608788659869298521991440612125032349173050667644667351670772254059237158951120731160449702553376566050937451134837185824497208303695331828730424215103125795650867611875800220159092109622968799059915413959331724803861858033082639974256162445528442861492716326125172622425187666647379080270266560714134741832295485019406569479441069049680136723163254022146920977826081849294352670865904964858442637613709164988817805654299067740867183275355653651648025286750347002457706844391834969035157609304726265179739467877090654064804207463313958864350937284016591056630102478581539055780005087651967501739242347648660171699113579150464955760461958238088100864781462406429556416377136278980581510994515683787154476483247173479555087988522972945927628883780668800812273574774608184189449150346078285467973234019938371427580849259058933442891629928776077385750902776831996657444368729879586618084959883165051714179350470539872653077574992788824082840619915901278599962022946620445533362003042661229315191095675134565596209094781122407728749524955980365006337149416307410893014213717063107078905117173210451945383516626729435275488909821100159615624083408842998880123800640415711917661546159365309004695639900216504160203610085630164548816359545758417201554824510251039452163399484581929139897224492950496628480306165576605963881805752351709980041063769128398951884824402086078006558381627909997606305044562770296361753315891211983532174182843068823773422661348360254878293149616252032518420140169152589211119029286570021425434159364743047218237570909283001497669150888149064490227342709800265888245970336366955915362630345411466157758820969795998446590738953794780867974564719698676777061313087558824943356004196430179235431795083302524637673031413660474144336837715422107296426087468288102434963520253371495091278551860884613365628179987030921690331589380939854788782315792627952584038103957256051910050174011792044156236607918882970741444930686543842276852754228262706368618753103073987362579646539876594595006622305926716025687763464038929260221932535047790231543544008056075028360915610930355734777109806623186144880067875052137879090177901011383161011807699099088814027892072123957522127639707882788848411621785433716010476440749402944665273459926482200609593837712371989706900539576590715166599496913109123411797143686951229301119134631479103935004980951366645187304136358013019371967867886498229681874968584797036949900840274992190974890615260196526287944657891420226661219203394144405694606163550579955284530044588006867657848667787602662308622321671131348444170608506935905603752406007078090819139364376099662997264321968880225002308978549818600497912844660139920260169219749826025896225341809404254098386388376784390929410494342854586819109628228478841043729948861952788830523877817626732347011095925281524602333753818133104037635024183889239519508181768339932339837465377527787302237818878518556856937631106298345358096901850469487609285296327655081129861605713791895787856431765182818557205866153053164769540813639923541966062684633001469900773213989278398662978318911410395809424283387824292802978707333599597933484769556280689564582253006286613683704367931958491217923612754046014206743340955681248038020412338164193285355416062088676703559872903652103349627736617678356584555681525115523099267115939215406582591709460200132699171639271708694287254449785553998979190362976960923534708291540955016784913241139482463621539791783581125899191899159179248014200753214632776426051251116802930192860600238653992832539027233512934053391304125287246031196391703721873414598244506152161579418453883335692250121647673023748030747879208619642218540147329361957196300897109974365801230714388060131369605331545362381741823941336672652717988554512015389587139257240697408087636063514558144968204961258831181619589561468654870917292102964902963845267551044520451210653990366682664655090955296953547487853026267727551103864066032519456441827390967634337011231244417338576487059329486770375338962642333475601871449699151748024159455566896155362453659886565060621206948470659400843003137669073287251653617485121236455485423365514119822123845565251442391257658297109188078384145636172860741480694703594677227696967364661182606640563430936678930346113773801871518897942917837001069270431996442158255301052921458226525792449350251507723485287729046513733479605711227552076072427730024313498291477118702315315966469841906645799488886132049925912889197534955156482683755468111799040557382146166583161922688777226964338430422907694204507682970884734665083202670926559960214178766589507641045576175718637216518155293549366186873899012803707802163850237852600366725073609853035990413058000414795499233589500185802274698198600771981519298979157622708733777101406601015719499177539830258459059019728203916074009616384045974091960823931472028595590103738372727870530002819093433973099589242881640387320678775321794960161913204263704652236036948097700541697196749958757665632274335448798212479533379789617510485057812092363585515103341462615502345688989635472648213887782404496743973491302320632256672305436535471185361642076371252370587963926840345711656298695438842718667620537096719170522084515643007247333984609056844371391794318262960161793286890380317158725063036486125481589998058378796193333135581434466014607429615369592103999409852951580495829700824916036916714594254219719654125414997022721901598055708250000602959935465396783743843467080396383885447199593792683722467054811931327279150827104156247190449301074261022228265479954480853867502976710571750183035608282076012598602921609813219581581312325170008396483463149623282484556617892907808761778025914111599401204676067557450267663934235174657259101616841646240673506019057628700610034225114045022597708486062373838641063067723132619601028952280258667459661629526133992830528724958442172878724632566914640205465022548320305050205062416985599093524831587445966438627046780715755795945020242258204891818803250384113361951858180429833793575991413794932117265878139707812653143101821974419004287433514348385887435397805857190640628548435757787247220995339450596183687714717727311938245576772359741196576766261120543209485690776342353531451455984906083307987497246822847128348133775363254202702539256840572109140056879964111901125626356896482173378824934448648200428286113401705478420994371963863686730604287749823623051953237380036753797534630336431811233025743402090839644413361686969295444129320331076867046033882124806073826794761385269503344516799800835247549254846147413339275747291893897964136536311424404692677810360209969259360852510997996697349305844345204380708289655399091667134355709857808867024551356652255535495253562366960311845792418854681896634387035405713214432988741671448588796852467356645079993258600724451909859479135366912882663039749141618470452693755882150758866287349632459802184194466701540117908177489719186115099189512937889677062507653070317925658255591962963721675313725683830768361774493438164429272527420200364361915503618669300580697033099996250159566139442359270024307058867885134988798269030060458508394173030568918366601424232878531819996691579189469972002159119090910432337692202067227440322997175723228362405377359063896544020090757684437961158123969525453242040385573048195995332113415464216408952189303995448425797243776168090569147441597502880282300318811960133052115408206356532048309170181737920280726263897280855415079138110256525786458336196281813490117619756366627753762349891963141324049417672458968826431347385782176884069246090867625382438113038614138085193391044877075789755951347429183140530156503131964364283078732624298128640585304244300111713574678136619625235313623512249636020392473722888097153132131093710216874485944800647329527895293359466892304211050983186593359679862494293260456362879473454429231521258541353577263711524167811895277446624639433502811446355836272582324795454047179380280473937725872990026455830244862502797796027378411132535448980883061651404873235851672550716277577132221472125599094370706527154388365108829136569019848160314399361770373698133494324088443251926882793559124471557318106173999435873536037045354218210926417267741056309977167491761139141564372981230576039259258507218508605528245434503647349095973565785310616065963272272444557723821524261311553441573113179344519872307442954046396355023791292721168689792370564844734647436265099366396009854683795085039609665450152086560526775454541499996059436381856561060566961063540132499487701506733891632386297471992698672609361967765065329209675050327597150509734795248656667750329621924562616167200216034884009064521539544427701080193853397771814567517066239999929896023791884775332878309407454016473043084063416828194406004657048714945479337238014103052187224221796929663847639050677132959846776560800852456306130113387298914707653484383749407652802996961955605747227649851014493735748943985158337005751612705970098676837243488421778102570927333744168795735885645450206420805013932811335148494952445915217068491059880927963081320172019351847006971381009638771251124176179307419761752001197260141958270091716915876398071830415166783311392322540598086154960106410208957998192955394980871680834398118708369166237771468234756449742088916679500803058596462373531164333307414421433920734176722978559960162586443485961263938247310619025816130248812869737281561211370958165822503075808997026413559253974209480952235628859711563600287199500966996962709550322590591897834650707284293567060512629338581585376117862447375998857967695834520361596876980863388660955625833102400278828958101692608253820393865608319216096962230024811654450394413358647525869777918447242312773409025644090744128517008027579663267756704585075867046311583114943816914226727470419633766941626273214270459046143838064041011176633069566889073909505992114938552201906095556092812669250992561265475678168367193249811232032320735506054224694135892329964687806516019918640484003894898172042578032089361129449797326249655560067550110896819465168619961365864302147664414813179879130207668068802621737980659273262701467038551338803459989293514065424969999416036023250007742634888851833938905504685251537213589242991442010877436100584418813344983535419483400183688921730830039716825813286171846114171589446838394160951027655191484037161072515486065018746504597228072785513028556816875130600323121777057021970271917319576718393986969472635258893568470346204629985139363995205851245255060447087605350576174307960728942330736626988958646779583880960834253402666390760578944208082555755995962843105115227520688927792579010823706220215247231504130639386365247092166038467175593527590545846432270940176041051002745354972461322762282606301370791537369798907431560706549377898979992799758896744873106574656076944052138845732664540931804722376943903868584419843273723017339044444583779280377482092576472083168155536599350790134915943442904468949701594657324762771102281475090345338593911050168701073624052685487797319847586927495059442892757019049298902290847059207425867244568126456748528005370913723734139350753431296109105139856792251097881296705077672733721751053596882843451381768126216296916523076510218571338850865824482507814378319407963380475156440689476794362690365695106791573016495019557641211248865258845603789006588816111353753777618034096927841121494238403267210041001085970748291662045615832437368450488039610584472047190650114697161593594216375198066472351533034038124471451483751199096008162679585616942677714994859783596386351359049519490766252911125404334892777974232382310212550726345003988808408083690612681719572360461608061168313081536400226698532940852806069916913203973085914114495842967534948577381039551466866502130670016366372138277148635929742765203316596761547829540586351881411221031063273018243475486094985572025316936387904655413188106109390109137712411764665631552058872193557883076364751289870385199108285582935508295835347037952321251413330368542320575071681090780859609137952381707888296033738124531397415937749799218264549728388882097865655114893214252613498991107487304066639135508549905358265361568609388887313185583662873558244116679267600182658533197527597100546651223669396899194551730360469504956242742386696624733464644788032475243295240904564312065980031820968206098697190031450428676854411986960401472954199848227990929690748505356893069504858405852711448294169477969028411328797656631268124537454376453969877852641685937349326525392715673982545733681141535360991985972206607919897215155115332158740784155809144679725728592388082183628358001650758135626389881531594326695962654890840091988691351432636184982600077045788368686812905262001619430082456438613046925311166823794829983740021573094084046557313673509781488769667178370602050873752240242282870820662306889137671065624534515314472953729089343346126564142866181382865011994958407767318177210667338799091935632701299259698949111139493404666015748878968170753415449700114965577313304702299987045491345405013243067246811220940482466272578433657842741678962480746387137481587281697718755577743380956012271550027282416431845263445214509544538141979449788553769790975401321616664961043570129947766164036011568917279447838623946917264856652636242801685108657707621797406426427502598185098528452383105638343612572593411306463177456263787643970172652418511668389205948474866159822814773863962328497167546062568522978702823190615804944725656726049386431409880210358500105534768989579402911196803128313325212596421157688287452514644676814434551123631047557050137569265759280333853953378309724167015849373697512077226860797315527530435170977944796500729509318845010942941766927643300923978731671208618641305351630448578243313969022954188799646801670099328051910406452973102831398478607558574209029610742105932811676443767630991803865357728698394024624443958424056857561326239069906126922414725912074467105332208780882636239077163173646800319464290371811199319203980127021790363579179981781346289194245402831362352572961428139495745961254403917763853992567344971522051002312286902703551952945865402963210392017523675476871658153994977284245788502814587279117936182047233321903499392736803180442076605951955171565775908067376796160948921580152723318659975009410054038066309712000222921819928385229025423372145396197904907362721622514299409688017218782714563047888795872233546042335674247792703478608473109445618672297474491937039452749421387709454736659395487653168375045707426053918458092520546279989387102341242120510595234082058765681224351508113644236664749924517781356753192578294449206863854410448372947645938113899263898818920680535711832164988880489854761780680247277751063630203288926766454829721375629496047972384032426342332899848578329660798845471398618985770105305681570031752884857101218189610626725810017662103208689132874531700721736513451887645032679714698763016720008676915025654862557482784983134644308800296401363150430164465066632166343367594867554776491959704255587700241616589216918109480010762991826562288018237458623965517357995985470406584327565782293386702647782882099507266971700775909724087510765372733427134088328620479516019079619234045618526817054812092786256713005118872790700967180206710298668154696792776291384266876415602778312934931537458919529982486308819938619501198176507019041220181768162393571447927626520096410900630220244570429558194593383934019846649506256123809409027127540309429701795875076143807671605052502965483083267575781531118385826210609814769476162618082604949448876870942848299963200674667905427729262409747371423296270041323809899836225322939246069134861116307459588257309561578566203159598352499551211930412118050803966155040420575212242740492221551007935269037715545854643511261732336613505381538099597306200887104638265445495670362390197466376382110240830925842179070296702193004214509267979849066782085724203814690506684887682976696486591186961892258144615792184783872101913885023718606214907561134925510348355306288071941554532923068048080560096854371870838944437504293058672603937786538998946382480138501115303868970759511238011189571939749610014003703664808885083819352441610797377131798023498631964625745807086623205860892665984061654647501139430655103385165280362215087124057324857966906431032256768526711950065999480777700393757336868601499772099065474346435509524016818312591378736625234750894317000284731893031188786432777576549214169702268732467070791850080747160881720482014255250048401351906724038455625800646393751841775373199746279552896374855698871967999960123501087997467675709198317078280882179133417278858259531205946608005083365522526640262428008754405368763749006429577829592046146242475105493684283454518129094838530951250256841252601739133620995883123834185352507547828401632937201372419250275868039474943152573143280198558708376023720690321558552061226157749750052365811636053342224978332245227171971008648690353708385378154106310433782404942250502017810468585567034510292441152575741819747395350282382785132353619458979929728164374130034646515433382159626348892316052284432579045548320039364513270411331209610015546214215816944183059283551530269763369532022700292457892336256950162869139438293406778198757875482334808949757270202657263007878158500232058569570695609004661383257558159360174929149594149072310409233138381394090928795249513240264021377561555938598338584621750648585199582565116942078980793440550858495101086066622471098420084914950863075595808647233314024871835312350615278963878216891064969133963222154534217415248127831446314449391275919253935643915272336065745417597745366557203322472115112269672962488985271351210947644129291920279810636515320283819086539544298511712467592698275370367612894629022330220239966536836978595265392337678269783840590873399967613206357100565961002707562438199125912186335975206357385459599254012654458137648541851558473293684634643303346342116655341587620980110312034802421701061683800984475550582289695370420566471394241501314861844020093651383180488420062054932183559041832140211206083490655481648253618325150104707329397290147697164748894386783581117203567697456963488750630633169737327058499349432338207345666426979508184500154496055713952655154596822562653037246357026661488428476678468939814374139999006108070111726673604314115925722199990220122781237912684848417033004466878462007245392323233099477137937121623054205313807349833529722178656994709385338808653107552383894897721747524888101652311234677336328102638634622486375192963941992398038562719150253426330515242969584972546470209438677617070530068116411642330850785996425934115082070899539392250852822684785758088321686324880003431367842172329148143062610864322494014400964032956402497438153153316754527491496936283226763350541058980492926251637669747222913364744890210780285874082289020661928164737107152947363102128707683420210186701223904055386373198146223115645452050830670561682249131242346684473890552895459202687284222335881298573816779528406455337267073616299608758064490299261149691217440769710348388091765705764614684696545116208336631948672254871872766486601299667988087863266143733886787135120563154526931212953040061815570884406952221909479115024477927066174058738011917409686282850404368496698224722841021353038666925845928364898729148220484825074303039818289991607663054225282719840074083122552302770761569642669298134772037132908121536626964625345498282667265465767633082117352038170804770137516621779469889769546903207768055180318005771201151750536031098593461086964235459460830014781432174271615594642622716228222701640649378313663322785784728510082989037425162489303394135850325355124439985267536933627573997720711009697684438378118745577467272763260009354892339693867844781331517431441370749101010363808396201930406275975329678347066026083202657376500387479613497926599997377329022431919208879735358320467907299347864071589403893983038423746484946043706730150929405954365602396184200254069739391074722752937098063166740734336494396158056867518513683951579978747985409035992068728637983518435301075465615303004895118268015646090704549149865534096376434900464370317023640371420264186942774634077962695318204482324404707750203051141020403492047796683257759515695798593886001083084902265803712883048755878426900896470134320671524863977653391813387482494912153286496266039236340569313915512935584933152049115568610554203522139537248424665349116611812828092689697242694363568010636484310635234191989253533172367510239432858499825216588981928049253713725627357640512037880551265588353545710158502901515320797097330072046468145910416528769736430181572316187405575826530067364394503955737534436531767790799455268120968464579129948008909646262551046643067415904051761169338304401037347558876716645406395910926942801973691749736258936204749835432368765299715374287291598406949896332000164773361858052817029605832184849199226092090371116128014945983229579190403291116870071687481409099270351853432420961281786338849296583873545284257585562808967786992092632630592100063007190023546380257141803354597393832333813286982767737029013111379683736285931936109181064963961852412772726863759232926042930297491166826742998314424696031946711128417144965306066211420470512003736963588699446492166811933094769125456192555140493454728208900433742997923162717750734048834553212469754335570353087390192992708751247141623884107612516260046922833173131996495651326594489835213447330940884670271464769158923011689716232704686481520620952393071577210108830289241796582572224144596972505174875311340690390767909346737627575781749601151436770442991768073389850324675773286016424400629852969794528192321372035487129428207276116686441152967241009037534629109761159400512287183177156980414089220001163485456901352430076724555838417606666619506391376567421327955183329052316014846310077851928877362453155582779963191558114652509017652971141129389370172408552054589164404350278234879754250232911135514972534219898832945106373786132904219060283203535245647751969105134769691380564652890027874341048881470122419788358446300419301631428424549069010786314975324591667910333247927192676720597477000258866558682560818162377958076699004392291411576593788210633602206870146317878024056571154270408355792468046843360926244008757586493019361022285258895327241348411188401680071095263639949850354127614535322065317071010353962970099823866132670223701048142381697202506542967904925394704740400199651069811746322805603653061374989563857274177796574726817959743016722831700391569487899706653858120333742089773843120312120660690304922368652626425690767427984426114867777590852125842325699748177606482796487880981599387823270238061174872422953998834827754297198060905545951983857536543598950426076659518393293187369560898642915197511915338754735130255511815868583085346841459439126483012931069505256731277226177241085571202913024819131764168977125787432813262612638077668403869964066756467497330352672712119109521676823491386382797890312597252567899559345054920431493576855101637019541269973686067339946828544123340237789599027903377700758518571627438943668526534336724732079451679932196300083559473662783839736342559365175526771849910758642877769311376805448218809541817140594429148507064327889233065502963418925172159636087617917059698741152645343489931590768158756303853348651520527812618320619437591632570412497219329522329132752310494781788973070506225742656206043923713367458261853342022015348822597585430946613941011727501848676975210163791225099474780780544661731736952059344392567468863313454115910977183424559741845342781905177752575868124033977989287624078129353434876577305472870919822082429848292272230872981207683917323366234954331673927873024282047943110425152599384620165964273320253890072149939793782656928159712372869257536348578982261345613412466453738939382077349963845475704738246779416823176799950435546218789854533181841330105509452690690884613881341549207763420826963301054861601360816355044780288206403037974424382386874382997047169359990711763530110825070470880419039062695632482445323111506441802759412807489327055762373459022836841364849849513490795720376321929091342729196907552259822655024868567973021807140370941759295735958970212943193337783308196761589067744923538510175841067181664245917458997978729640942813169536424703185030921135428945067645657056382531414268914659541749250869412344162846823544984305390328719855532090706806476856788144990469876401066101502498227618419269547937571039193026671818968839995839735501911568041656073679048634880395622925336704617793123096535967179413232313687218118350114078142755656877628678339745995100423009947096252142914864956974026054391261078559479461984985843031112530820525147493700781572155189895645558405229414266616090309489486317378461457782953601838756824398504241769636917895560222997069489287261385350274918616871380970982497730702889064712335304370727012583275390739632890277596818928791315445299113477405725815338879359292425425840797483044704814858004012281790882619708574720255104956644036345542784172287618464930827225132016275832869096819566561996322796140780799703961540947704841892313716358299196498938767392724772414771994552184722826954698376424254371355490900823970086100370581696046113894430225548332784520635893677987283698271943365117609884124317200938838489246550314186032707273805149874871947204846175388163623660733042551108214745991277325210873360213801768231139274821990918721079351117128503514430789405884187860563352527297517274908740857602787991710074133738466135351469655262049427945080070635697559156444920392248568220099792991673892540535006589481861754611801865554565721573430592427711940412401245905528843181543595194351439691551976507476138800896668662497503925952414391293766697599400451582966996115197719710222855303883018325246233419985520275391969094907095946198338679718842713819899857147161535974787607155695096818779352030669418334419293589854822800531551955603404553088885396877017054140953957864292531502296152836640094146792536485913609822785575070518465143381509646516657971188827590145923824170327205452233965499226433277678140406129481029967385341978926992452127384183029421404785253602409237148323807153476173280257103389873572009778903195784913293726635528822653059248244899672057759822084691960903456549331408819449363098721553621850283496631686591818104521080473649183540573699538570952810465653596004225576990914846458451523210611911785342451393209645694639264886914682815482413150452304000182882311142698250785983929152861543651475415718993745104342032517285092432371817413753533264181843394118145056284661905791306686028973786908815304099497564372455193490396513930549980576299180624650547077751049597590502177077522728357187322809592897810174903599523028330682806141176897291461623577848494227014022677613127272539576670519213537880687509908402714314011551862858009035002690992455968548574623077914567517127519403261656299428513598462849051952659733209737508841965143146490931797606439733351813602293751912553184819023133800890731247185526461496136760265774122770962292784182537771219872378242341422706796318970734367320533567742370089096196559461498026037389508996670711950832040494304753387807653634532773606728897913672445475386641058943289330965349132201482535309535581812300984230725343622368712577360623365215056559187282440875586191302670372719911271147091761387615539823931988542666969264880703611120432196632448740431675096320213847809159281390335957230153677472852915579680372936561164441536400786168684448865831516618098704650521333376286190913759809376148143509464601526755454440425174541969450837228635445884720757834504598462334896970697619661030289062406834663157869643548675569675430040565156951306917129350698949331840962678585272277414991470739198516203595735721620535841033403659849116157749727165807317736824250020805500891258789187071059791784676224112653169331865610618524434804123135871440965362543905625958641143795601898498743906753481577932946810086322462367440604703646754682791872708733054864085902732923899454996234283346675965866158923656427483471412315959069612516820012350507574947084081739231918258514660240995945997363479619214267538093753938131909440129492319541854633196321344693429812604526246794941371497872683621604042579208388235894059711553359055687070687947816696208940073206087554867242675968747420729273112387434443196455760216383896093340550804166132720709908744742691139777598293242374632645770670879741403767971420994251636697127056300979477950844969314026694872976853870498875746451043433714955696564514777684549931899492560173358717888871158105670991299367324010689844160475260108608286320787490699442662514843788476877271671386404969656653061523105759985125325989510898654646650703923327092722612898020210995743799881376473185407841691801804141099166696576993853143201616772878509307200053451286884490600807584798405858247559826461307680358275535720468303626264693047415375458078535857817445231524015036857571910501109371108409206198620815477805676189897530431003174488118758355593482859773096958058322953596299843670379115014423412976480821216273044121280710140609041934196565233998051149657103773226029762645506779078626415319038577751355903546776075388411344820580388420347310203890249905229377446449528434207509141692003412409517815483166588659030967808966037537744316593871151746797033982491382211020365572583783381413333442138709882438747555754924601603884867641413885587572888588836566564513791782394845631866451588333966277979862205396339556093805627239171874020495038461484255846791451458038083524295368355553073758673329972087945528217156643653722142894138115521829080821134763759018884052622250549150444860012981120869025902705575379168702006217575968735163883529619834929841131988907309009791920128742101420065590446083034483622304890692615621606639678771940490175960858598316002895554932090735526894972666219563522994046693847385041596846075752829782427179496698517343028887029654029639656817954558076668649492507728083069486921865948602654187448144167878959154314493507777960285956711383171093409005414258950001049263600328935512783897831731133791517246983942737729614407569707933510268893833748150703006637683548401631716673234135138860459619008516443352284829393098202754353484332985975977030600427847910712680466583783817775109030584613670188302441284752852828346069419836034599939601934631503219416130855518973169134365734714316345062799018518336430678117683011852076685347774549846145554959019224134149164826344180306960508287149161971194282920588741948241080475866445217616216480302259264971036965316954294002559418031124793656257843050565998447678054904866279019226129564388627369458184877802007083924135558747249565796916224192604486035827929365793525194763087044112902445815814652028495121293874934755805843420344326332396242800667943852236186059508347465261499483631835001366553773471852532999393968576741287637583699639988294717887226786293584899018217903400818116155355117100209723551692102318063037273168179227937794875408601004323709325886204728832689017186630003642727304626077317618594343760221319208024394068892035810462597395509409490737724100842119015623166701700092953023992663790148471750333018946565824838492739280366043420922205845475553008090987909461472131885573616017873345954911335207522560595684471735541262248785653632667782854561340194662580851608481436025064668032089328068846895370446820727912536120823152872203263428962409123898361601351163364563508402274606015133049393116847828311132876551382554456970967020915014574546297317336970749903994569331423435239078092579685090818138748939308143608000866169647862153219706206443838786671101558584043688662275858195526204605754404858402986839890838336246188438013583360032437659033751916554482304343896316355235653928601299268933172442514837731426980854780094933582328312593529328251278230729998893496148108279686857159264360071107794827825625673692541030449138845747968486794684796904100660500257991115962827062320900992592434530989663074082515139874043771445874607123155670150582972271217317953932478436080135068014117124475377394239431787422900501589905177899655210194770376063555825039335492884622353234279646925176192292918634380601893289088936198968508017777075539636215023677298978418705190144002034364042845971119979460614794327331166378599296797442713718526984289992588673083951823718594802293128904185546246147130502570917082597275051132567893534586701553945970123641601143789953677147190071577436874391076029178775012949462437966548966840359898367516067109473538300242449351399805988819297465386017046632270313612163448477746402034046469733303968816527335829989703717912212161642185180797547224357185153798209151529151830487621968418743628356157689417290596048022743324456055554152774909874919110509498665214404702942435507697790367047097639224434444944828058545086772940356890729051210191054806512574129683441969167871464366430201018527133526643629006671324195597969131500943631765389648082825034026413735785143474302310343456766939817659426061312559496664266015003157285968107590049359499303211361386901180307074011922963536157085872194017790387788976540584442017857845986666380697567364117334843494449662255850380355958339724040191705109167088453231541193171534445791557388075779606479722901185785763876916884727725373146451473449447808154507633657419998751020262651840255164982964372407196962967280647907342584670159854304157534785059187560535858532034305828167254755775542319204422893112677776870344690857113495264472920633959700692885748209117993976678684453514715353489291237076720693728356658850097018659777897949222526056869814945555584391816947040285470996643951513187241110244194655832695981792129292792931086850501342673678642594938139417974244303343941026084333618480028807224050248455129915943532827523259055977592800017138043747247895232572450521756971261869043731094437970686767997959574917155264133191482244184650118222184262516888534619024496660606888103882791647404324293874979939941185459830680297334448566306914781824612659981109138350222489780566647560725899178624117340565966268318796934394327019597364042496936768277977328182681449757153396371985713893721775279282122590944222630883031366655566932746993198888232921012733668652390305246296662508193370928113963004099449917943576461863619141383924806109792150525909038195990727369374685138210280150864702190486372867732144030918411598748205986901154601318976917445926735346052550743931659371352850215665840206161305362654001868559618404416050598975966836913489331589276946415793062731030549157742190941564690780674771047830764349708756933357933748907430761633843465186960380035067720825968492084025816596286338873166923330192286793213623419657912482810988359694424343007095952111051193608936652784928532680153929370972922083384640554007105578917185151497963606035427895883000170172064308088485231832661412475462935565337185562351013520471462706623621691629669244516280798086797285937569824076214300099345918962864370644452356803057618888237227313688330876797872783911180292444710401837075952304027168746686374551827011960586193451631806024242934809280486134902987847176639416372996205229365795333040617057453737884430337240164262103240098928278287283619088449897986626444317256370153071769759139064519880846962474728336171642192178893969999156283143049457996178976519610424859999825799914868842735268972153967197958311362996972891501240434557060586428678824066531326309623213940347551544715273143318540314027623961400747957658266003072623999897743340876715010354133166822461800089620807316699883769623070119420009574843517719450172654566624788293959686308600302583561966775914722023147672505313410585751607372443609885392820393162209001201263339472112095336028897984539719036707436859495051784751238042369414015028668359359927305553081292164073445104063900918670132617582992884178143872238058369512577787878007805557423637085090277748980279202019834568899110098888639137434009275259816028305945085710898509444264217095384979670947089130073511302183041256167643390842902646890355023750407393735331007279401833623441040090651708950564737893659579904320815275581695397526853503884563779023504688265289005114396414501176641327641891147770871932629410000878437891977971903477205426807366833243164229466807521261562226297144375637161248825643987058159148913084709656166338049824826051090234021491005260735062989304418231863232132843590334533839681716832947555031135577307202252575044869499944643913085809150142565200923165745620450963773755846422996343275218485080211444679135980688182617421828963429086246051693174885136270005477480613214239825134284332352402695380962394957319322366880418081888800285668711690161943367532160266381001120026395516059962345101836218241228502948835968852057383760051721434473577390364927903680352696994213430344094553680014342098166689783843533789262125879159110739202591582948506388796510106915927147291927988346989511660597865632283710773294866948147470947696858804376452257751948683530487742080385588200948027018836847524332232091881496573576415555626552022151659230974574243480798797111089328208783474860304421544832142754977853565524194597985486500741969268208706894602750281185623356839522405023336883732486735613029715731740072551056165366696033747658039010433394576470836583223375799240423219468473586450925358059072563332719786183398266120899814007355412269097170745876936390611323364706788711834478723986634259073710800476156279057613262475384431655359961009029269131404098103325939906717665933220646488142867362142350359291147665501661725787095914730459495516920170484624149620551545133829098756209445706817690305194673815820582172118538597975126502303771845705729220207728568510736590650794988229183175979482593661158907260633563426332324062711877362262246792951754461516877721962277523489439500984142918664532221131998223663170615174884266276671713748560591426463747810589050079476597435665204748640665571567440683708688705792826578564472755747984895329918464547491691367981668811951834186987688466683029466845211373300367760184153361777477214659062839736411171222856114262675618037971803039368827577185470218583698244140398357431612510869595195672337585858416268778269068636783312288680115832928451765718317185458775010167629273970726923997633654345308677240146914529003739286463120174628860865214013456020160148855930460607527538597022725428105312011704314797008717228236947830135636409646216757614703816399576242110674313427760294693613412433349457419951222741657251628221062887263119517833414775338233559259980012867722577671505935202505120732447875110421500598824859692517706581794939978556440917225069476724798146285095616729112197935728404614634723296069484483065063182909941307635207375597212017241845151870514468193027646831504998986641395135115969099657927848015980890658276309693994906595747875599447457158756645354478571187696974374418687171931593456044423250230162818333858379402326961163594105037832601924019998569501642148749934431901901801089719585251443939006726366564310039336004939147914954307302744732950617220574004348261757618979348462434401532996133589107977397675017417733238270967631318124559697141271654856466400851676756488119532919081555383379664064271370351645692471800986266940412867035165172157551638175848656526074874442872495014088812262011831690220145310643328660242402416599041418293425218842927448252011219498028394712393510073481977055850134518176576435443615962924279562232080408231142918147794070230681780003407757940906082401800369845042401282433379607822392819670098237224063936077638246345867493423971361347615504702682855412391802933667140625329083096786903555834036696466537478258994323703739565173196174279414207188505234491793366537220585434706266703798214688898165682498170516689995595729691790714890885718268066833185803928854179124602012854269768358048922929093490809093539520881203365961858435463453619113084532347502290384808149960276806478425747093982434037771109994212798968055472576909645273370062496100090908267529078620752886696125364972307528666093935980539982416462656571307730898338046089113341672963083359690621820660836013416647758087687868962820738472011657610749715490953501073602743998921523310741559556186781986316397773322280105612429950033648754721467806168846245940485115229081157418024691768842459570402568577510808877337126096861837352150971327813588968258383855576744289455637827141667554408344935230319862650792388437820123174740495782597108282820619616206334662524406647778007364682993059195651915077123382143759466597690809450148053318072713631937117662024134738786703466224712651641575709631026444169458578361197640505943182388940536805332911106733443000625674057487234462219938338493935644352582415114808882515738052618157513937486417920010042770413468320900793827062434149716200051102217327191089332155118259906520018440156326158313063755875683034143669444186427223436381067971192685339127011672385726799269786412035531472058969941888044769182455473684936269142642710242263279700792985325006000069331353765642143345194025460576689555662565018548530186790994053288030694536884386047779147639164048134610271050062017991413717670106121272042227025980432900093160431826296636510496691307553117876933113424737678416127798911842315811569114655499544204740064906630184507994930653056302101799573437759586670130088513585891720213348757722212528419221570518211173983447248991915036377123719260918077236075053654477368519793454942137566962060823347808855640201112132234128251161655002209086653030865834775447503852906258706546759253900495024125650830637539489695945578330381070116777690437777892884917360446114431391218651962868332662884960442129730230821202171737969265718232046281960409148163569703423934361106525608697341552412091373323679551737539111826161022740621602548981956787677994106856134861929358722525401942412187233068461873482010458266090410123992892900585743512199518346748510424772000016933481120103727999292966552096406982953404719297268062754057690274578645735059729145262190611433678139326866919082813442787260496271282211258039508900978504111885380584544995783336933626050446847241089232338942831232026746123218554335064408136619274978868720006427434228745702611840034046924104123848706929498436628950340448350846828176173673634354908164629082941043872656060389971899908443505459070438123466569991413838670268288864320547977522198349054009914978836910762727024781164959425995728482731753868979133085506639404040884878152083227436330151339025302095636371793426206795479854044299230113666048594912952078511394693327739212408745168126145889053309461699355228221158091789853734074813353870747418288453348795866074688420283281999603060669814216413277167904751357356803726408414495753408079562215308927196998120595853106887956351754631920229179450377809959509718641037729239687358526170306108141309589371580681088827239484170177513411132801635732376838487384956976979891742120687758423844418990665116556844027272855758333025697135069053411993465184040035832297790680583777974179483444937465891826611180018069022601713177691909604742099168622264345297061014476235671737755558774420798368288394589764776173986988263334277835489403246564979382566068858003706145451778050886275330850828260679116172408401942807750528335377767570082049026806916040557414006229626568687918727569601465712635253101023902513491430532440435856364500035560482013875780906908015257288678494771145104666544927811717821439884234619081158950460873495258792001761410101258886893189839837981673167365240013939683176240249595664321524636834484934533731224332212585536301946345424335159457192813349203142820056481466197632493863934165568433030220736097584126751140265593500345471939041581740120271728559372490078675978262417435352014965155933995462319425810059558409524797912857431268655372129222055146639553321017980826181282235205632179042402303132359468306185808925923891584383734298397430506910857120922515051839462704249055764566022447681949431108783886906007712324416702733627144449863408077047865383812489630317491908035026734025765753549815405561915601392266162021401633617681126987721997490031662745741877574980206387600574880022724420825035273503896416998343871598990295217645014803954541929423018469186983294331671980510777347502016841948446141345633898720370306657376032836328070151797631552330861970410798839004971331328245504367065245909051137665489199327612804798399824672487809106272779370648435853398124873726023531671101015053445510885042229131154209998520150932850200119202079018264614411203075727884752443614007493091264638401889510488956191356807134756069610782274162657455302468346771225514892678837183510855622801387161228942390964292437619400988663098140412396634687910621951141998314466435549112815817918614936477239695264221278206912480884765004033386043987148162247932211026272661082020702600510221852615249723160357379690340123978549104387390641093013390202535058826703192589095037350633582485332376319109786511496861513706658061684549434973236587739136971931007519677280253087280530589634726534354379420032385777863700376024736295510314032988731601822537405988326736721338258579955049705687738264570183626493129203663784292169873029485847543019985987075096096146843328364616422193741414768674113423323149337051029317704209546558154178497476359767549480853929880364638329006255259805965770116693266558629327405576071101532876776109018318809678110753620491408929300618356487428791375966206365993214810011837669132373596008021642513416092252591222408985678778111708114720821014610547068267760428284765471950168289221289366142196568844970254033808198466252490050828820882075763780651768636683808151128751673048909234603704675092959333544435852331094727536421881179610385519678249929224277435381384250520941911335534920603743464698957647628955812801723076499076328862737309003827828605508144711526895682516730742333408340364857308609230424681940269837334644076475941837745165420810899148420005899875801132363602549688476909021641244880715813065205719266707860496536440934018281673503736077570980689455683880513454896438664029657833020439418598584744713764024242038885129614527185300977835537086664291823689793524699654664903891533469260487538504956011132664620796415466699813109742648765916729709078894801332341937672305098827169740219712348478369764105462286753791041299859065969856317417654687007044905637561268700485797749870257438101520756721860848981471786411976376942481414567556876757203726600171873107782186652491432910390461321096643836893544191159769807790425465553595267738683730174215464290883922676747843297150341496574937236950068694778866471636892284606813356801749263744845562252277549006344713497082076322318014842444955080677505277204681047371769041783560571834789374988702261413192450696971428272118628731606403101671800100864377218769310736895095496007720576188178220517954505322672590176386737716836716650113101474901388796921943393438158882950111214198401037545862139826719913281201779582203100134256167603580143191063699095266772402604927768506466077455718065685530425829253563930980631640310154060614006678397812356987841240968957167149660240677427997063183630637919452101341724464689063954537752046333677264209341352562907335194122075207752054300260977727640181174246388866384647003200475375304440732273882541065189907006985851476054599937845609814880637445233499596160882608915550417325687270946824714947602984426071442881653732765023377636489703804014428704303467781890489785449749802458898290459099373950912948881586947715521135077765118037604467044292676295508841467283202542827764620338904738850666716209934244617057531865255104725873037658254863901485892423409686357587472217957775430325144503930716447971047256475943386535864492810770294703749717392516418934792583558920776196370564904996984904711282044224475328812597029565187929186561467514883951393928841257843013856570402020155064003681487535037527257004201206045439509429695319231513743393096096223780798258285272001913300858660387401094978814241354903702698235082273221301115837395199324030397411282072339325269275164660181502879477867763019447454040831603809697246728360431524360499552310193450713474672301355965867406242253097836955723242332540334679038047860194397580749144487584529477180322504190602743378624221760814560705788760348643391086122136078252666068949211282830838102855443839020507399920703805471388556977459208182192557801449750284956812606890090543830235487307914903639567671065100068040086484932314300126960598132510853983827367282359588456300180224504936662075979819692478224499356734096571498810109399374366344789789919463761442903996476240645994769101556261490788308385707706037255734880304515921717265411511028287871284627530884038245688699707499218331996327685127805001881775821740058256052553499695014117711220668057561449779073535860652345805989490560014033650530472611604551809524581311784647380362562006092547439026486800425226413266913646355128249005835965680419790624311625422793840043230271459715321053801252819282117800516974481664227850255998921835542952821062773202818093188218880905520716782523124262081126236410594102488683707168129666858672698051921088637312333035493057521416695475630557438195356986055912921523316147417226816275565299613787183616718342553637515032283128557337477148877220241851475104302850846054116662929687032927006002878398942952433499226821852901088875316182591982219565866061872300590893545700837754431618882517212886079243143806267967272360890529608243900791049830157286349810646235926396980141176706921655578871142020671632830769666636380036301948331604380312605218239941561476070749810858548573409779454562296288925890580459808896400642865038881580528840129837852498862296080786877743810905741375685093206191248456445259948972118980029674722335721502555902162547629098328346254126312359490968533600352809706348410195302900244109604589764042947042893634917445429210478474348885330100397969066656894901305267069754143286900305762606287424420839672235832922956789309663937141519675231794989761870966436941214379101786768640299548062424810643131714713230249282565156761661943453772181661218926470083665614198311698110244892459008351424877873153603524419617747354217399740348015802212978502153595662151288361539194408235523422726503728415843298782214660063901560442121208597640704403663957183995041520428465678332490431525869820831231778878081595575671311099571908181326027114866953762007241301495254346571759705613401582414867285834010205978336709850251086394926601003000243716940327404198303329490270490708209660161225968794765430583852843325699402220152114301602905343660618777197378013602773128549325937840685095125775813278758403740172610578895261068912131833247268623017290013091715552653664401632590811837023378895524000954626245333471911055614647129898050621677250864185946516104990518403197005836229126627521082580126941484189945606441012320162498030688102357412752348432960294672983261691706904818920709669443575530613813578309823641808072083456272383272046041836537642609655885847154775476400971511830403799586521237308607669047828540299578998275886200087539206418508735595280843900933733149179395339558323336079968652781615167753909380441372213740627945684538650345153989389001872311370026330143693725152963608749068913284995117719071495911445382596498085935166203713411758704782412023321878628611048533510908876828409617657888286335068756372243494407369676619681239878636624416042825734639165411588131172978397558625297796191817795677276777061420612756357346434677599748417668971403807470442014593135032669744707834551688913900552044017071468837231096656214962850275657948165337698392880848744176860086322069798796273299960359908451620768888507152065218138174006657729286039789569440898258602212842588270081770587258508540117357868249767239121998046782682725552096247598813845707414577491729037208371630209844987284348250810958109077678148425654291949478954212343492614256154725933934467138404887252621265131829137067848247613390828806073148452963321786530875255334926657324635920664173835495732180357305329246021200299262012354730125658053426837623769632933519866952351527056792093467011130688031316529920573224478383439495677445185114948619951493488008239125928938310491044736119334841013620460049945916527335174139021990993475081245232096869155602573456265910442276562516504843117787452089119259290757570845712687626825789396122476889091945433900224982804523551803500892798615862597340970582493072365869960845374860800405519530327828891901415087224106082979312771663136181638091676511107031220942844272770979585646807538417784531534922127932926461419359405115809607107360843832752798494470393311225744836310774109688088712786439710045609329882049063380750756616165303648616311409923306162236891182609793547190366406892951347890211748748052964532827709154358093440734714466160711323838168281532467601500871989978686566622869243270672807114925165939336552813279631232576641335427618554189147650676305510918751783560539828371486800613215792642835182786530490221151062489669533887700873013063555933577399680085626559770463935761121590460575054765946089851947200937070151993852716499112413789078085030273814276372959299271088066074048431506794824195751634047452745937730294363485340997650321338710043541973645744537894044267900109480907540548959548030764679299221228139886153856779924873986714786439282389774152927590750198119946701415167614382799060380078587761642038899828982136324040299080753740154823408080423199320024548189375672463021324034962932479354502296675768222634794815877351490646148288788406518471328511179251352066661543779482007797821152100565490791652379687092562135871249454137967689268849076535870469977040003660399048915775923014970803961640570031118892571274203110062532129641171435404597658048382336147643976700808586611230845118954489487648160401510182420246515574357752598753111962069209767419616612925478632689049090751450396943681797190093904216891292912468252777915582501240385676965226698951304169366574512314293253304823796703153388632376213058369612279704893551241709628551216718503318371977461620978079355316040551157038217693710512020462465830516011494413277070341375707775049429879642677006383364881118912258674443791196678476013476477287369505019273216401055476902482015584642989876267607765312557944511777558556560749576338707518078890144511257869354280504337779327785986870908748989068590321407803898534490606100382837321615773618056954081899839758249033080922028450955418265111276212802062411480679042132895111844649944246918493329708874284530749129428588661202640771715131462273656172049820404844753598656397766461440758244899531744057412974777325133109147299994657223450468705071845838468085415656592200689933574066082790894425937977578550098013047159335075918141423310510317471749392832745406709091778737145788635109841379763542421026149869241036960516981077779037957465441295237834732479268652893683522402346392742997162124804630593897220676609152250882671601162477297438226882125181869766033848930841500971411349677113868098442708343930143932725789122711508490344206148215799588626885439995208831484388103368235324835630079369690294839680701834826675726870452399327803905411208378900832790196690288395641867936836304579027358187057332173237161020968050242959043738095848006603533551348874436982402010884836974544375684928523200141439195154093885147719242453713115842564720895687386179775237775734369577725628505054731405673060582219717080188516938073120141908938129536542325231175262771402721055461962762650362994973690948291337005697233157011196657538071413139509894229131029512403482801425278146579425937321124477222863124084221150820432501657228020166974895023299683935318304977741179589721248544292872337025198304201868382452962876081167512916931140304045977001718124583202294702411368315479405217098383343500186617044218568052402368372689421251225045185993331194848712206231241723251444889441134374301100842282120960341335296616554119073551722420968371908166479011819285127665477769716272465508169045117420662038862396355203548648276384414369204387945147997923314201485925322316195618237889572267865917862069807683758780423740990056126311428280665828782902495104396527655072711165694964569235873811933606078756338695581094761877004300610375839286419399757391201892988975773058784445431961105936143879058376175179623881198186442069930314305789282444170052346142507530436110856506674886622147359500841758703222041374265949401193293922211511259636270384229407523006913480258129361430521395810804902250940304070707929264640841531183768969015044774869547570829799170803116755686766083140583101858729247567128844891786776781561186359389340838737248823066942878745941514194892345220575657924336193264852392875710380023682742139884445532970663511019092342730382166650841899352670931087346883151381746164928114489659830544111869908395108589112431438057444444949098659554734671634944811620248074748902425914724765685148788118280490587526975298983372401020023753649220797570490986935668859567955042735931226976779946513194545137685775802159453889662630852949390538178877447592094752333219158584698697200473371868563958055480022556004786393799089438712546509126600041147009878083586255239197539244274895925785578119504419606452993991073518032145479232708702911323567086307519318096540877775000305959416917158050856007571549725436085768940852273952179428557740041258765779665226710787481345271303353680668443907929961387569853191297610837480050771595487300550885252750437358287439072176047639980433056185913462078706484281933137322236601672482916372247390357189790995605931866978135646089520080390384223473595105170006166751832963660384838801822397965332516458785384822182811564597138511745622722678407145067693914372857545517567369818306640765214871143430441489169313354032246515861994882366051020517697349331717099407206968724115312669975629529158361390541416442309090281604383725439329802860676392547248862028591382841442476202805765466482461181324851833398017807852257911272614240297636752235145335838283840829102249070994358036911124238010368415261262662234679013602422098246336612856337520649447138294487778035592933352527012184508053385115372544926975129257529997247512609541663500440869341798671888177544445893195632951526960392958289453179204987473422483400221827862216042107423501299829150700086882835882235226998099965987011805912813127278565337223790135359760301515943871012343598151385375842641129471476767578407519202964029649572310579851132232857879922744321328888522917431863452911370874088640776322477802805714137804594522843537940741750245756781547038760744952537060056720789720777658576702304000652559964719900689688089334196526708567706676999004286719268359819618363198140027961363926140633539588528666185362138150320716076786237304973555240991583204828438371135597449036957645329059400153946837892935872398750471059527832600436059988427966964537790187420730998819190386252312011491889841988374857558799823595697283749930088989345591431975815791716233113622050012805503714114094090361432169768783447799828328262860491107040837886126216598939289366665073513835647903213915827769536036355947669364447951064954972148282624997866714051427279738072955030216963194262724581122754541089323920280407119142974906152828058267716235830585556029257469166202530188996689972552873456914873445214729506864341249568673713335016060827361755531909952340759412209079432985297639157114149295288591280919790466356505088642919484949244284847047659288990871644191781898764511783287811836146165426332550821789638222498041271558180263206732120218181820004005276310311609413988458730957711993586630901518546672840507718514541561598617191307559155494296242106333676705933028550427359410897021803967061454373822105295225434535054155932158152651877456757293181408064821218898907989713101725714283225003252068569015739983628999538084827230078998386518744460512042863950970229361312987757112374355318511155742142607711133069717435979836685618599443779414358581134780639342436187300053863626879209158107061667109276634490717497970056957962360651927040395880005979223695979570350619437130122747892959090242286957265007517474675091344650552779486794576837981920602316322091348022681105244040510741895584384917199641837787196225455908696133557148448923703847283578409362811550823218563339161492511541402284415728291678222467581862694983042760693093726289006275712699331754094511580596438822974012829061983411832409423117922469548690092365914388381563914778953330895752607971963164498208087251905334822761640950066992727506959495902456805232187182216295875717767725089330257479976116513963584206034287548316568278185936691903829500230185634612756593645451096115920918544783407370528732834483712958650154030992040319810379815973101056609672885207817624848483939898069637322830203264502239494968768502484426673552530101062355740206244863333964357635781554338486263191640193415868684080882467515897393751466303556676850324232570327062930034470364529094245738297616333645332005768976661641747205196786086727134345477207871607493479721410719213305213666768202264627224728591651892856736243571666537092794857352396004475000971739612345216620447179234705379559993166556308608949545137470241325081038775418607046551066054620630023899803434952693573008182166352480226798087968976854373998683039000364110633513291603986459574416537210515052879475303322540502407976151200894469831522714978402294538353469797593358718977582492623422374623265104648612914308112414670585186827389972151493277612628359813307866355876174703546719813631253695566021290022031709498857193091170723789792687845337967596770471550250870123635096697850894489399785382591461457258078342881665761062567004854999622166375914482389367031703198962271988013780032557220974946270669580621938897379459102665568780745764116456963832396944982686593842814411013867782022666963887546330792692928681580419855831241262258436174875033610204924823710014722853081672345668615691650548073481341961484944903025623685807873445210457700885571349067968680321866836619344674441350811036233530516876842252148290688074240507281984164082356476760456790144476000703877483703470101096236381552193872094765661134852733866313621006393278091665740448554514481233656362309609323279228424062274223300944859782271086530453755719818042860690553156287661550783139735014529386606107952997984873491354556223084215118266835584771896597120002073349884745278022857110856801802361859671365776013250073755216450046612037877607665799895566542826094815245268500643650216803058527582812499775564955172733541113971373188414001983612546193484373427795525325201132332552218986499228040522895798894903201575400072443937310713007374449545573372572506424972919866990810363597186188408983492394461174512443177508429634266425178113378429046206687606498234483739356066933488387723607549217443049950160392921197667043480643367442590578874072055746272041548409992170897229299318345059048088213175163536466794295458408868377097686509232592855860928571572204261936647952226177572692743810245542220491631358027218036953515764339775979498384661005370932375845703745145690254922079098814794341905983114226235882379664296181895247032633425979885343377611997020710785194670369646451510719116180316311964034633613922001090967989693021397225186586249595524702617357072815812203275510665050562169510386357948743578844824215179477567839396021465992185310695955125405319217309115663137430780810652432620926399934987419979493633654136043160395795302403703568501775231180912336255294918352316816424700536628880504324913368018967073373714655536065559149318850573344709220129637955708641066193236082351704002073240023689444432232714296500042384982625338154760659727586526999622297369796009022378189691799980396998522241104385598275733515583931225703255253891900627432808273576171243616939556978278640348012784634235709662730979550444910183185260234931285093661638584094508356285814985999881647515206249288563825632194344972130495134707261079734879397039775564790920898100084935373837067333784351726337901531082505753740366243286691255386427553707454945338841098142761686305455944377939639493611906196975355573699188877683041426254482834758035543751258491675871090285098314463220425318149191466554256788667749504428346208510681590134824323014893453760895361966534517169113708366691535329293548425831064177861204187824812964472273804320897613654298090528157900035593183129556469030681551732324494415504414767970257478124288053556026043279820180746557519737428809830531617638667199117036827867620974056869881616282013540019465454177807394640970367909710772552710673654824350462991554617692759696535120813797781520171860625222935630886223309035090613319611244582844235508022003877690399714995924798753533338502558741078421115326844414164376814673185135910976687965362057715116266182386450793020724499819329784794538703013592823289284063606009989689637884893029096465370308398684242010333899611659397641915012026448051586659526156848261609455556404257292526174491375219234292682412930490633055103377672353804571011109798245858650830536796500442324365463372782255625914322012294918453763562730416834547061031926409833696807615609579216737066596618757617184044484473932291011257730835150579603079681093566012655859787043017221170379451380159240747600048308649055110069725653821298889474675086827630193138368139557396995842815373237831555135648049002441238710121499422316200844662970888919842985326806442336564336377494607998761198495009926787429984557395772222154005705809169481765321514077422001893418896396513640299683444020343105611821446768579857226738504243436227527308716599941120177819789210546095806355721673039340718546951979579334306108924497749897709900288152059205203590749878019272891915536022994417502249593519960085005350804204616793257312968916587905489863684829056485034086391141909209651771119586485482540938967966068580826386480663528632137679659985034324339736663193624429312343609530485288838422535457736230601508843441662118849742666179181885787270081619400647005402249864675482587243335687097825633827667166528903072314428853995148196705117058805614907373433664228220473982898386751373207956315937555145451721883235676592051556634308494575330120599156391240930472903306434221657715057893886381790886444682531551585771511403282560129184091043123556188546181591084267012118773072531153224832556437789162983905892305436445954620023493275508741935506756884650284022953557725808947566941893089036431207290252205852452150091555293195268167486220170035409142143316737144393509886957913729915550609084391324030246210275796330327872556785890123228748509814488989203957801224468050821535383729377843142953270017927687052099796034725422707410627353711281105970664804238557310913751027307152551884731052633468921342234153656910454476579660051410386232583088663575689871855749450598090766335321698068367548959637000415955959038024420837366320485416411405265989675503218679606684589118893947741090294450987637751599741264061518311704428468928479950270427011422852685034750462445716588076837727538186253769305465383907756561170165478353981056896862131436187185282483741182730640198589350367435834216517483727984010554002237109695553066571033030956668897884608378193834860494030288322585625708689040578801731692034294713299739133158412028746505440634916107893261801464000849391876340572039403570271999701824974763175256142228753000048785707173606410398673033645724767508694620502619591126392622380499449537529953277039096495695744676859810331105390857106965413848393464468081784383668788775612187760057333424422646897187180936015613622469049986542380710991382039948253955943496387983943369395535170337611213852704712826345738814496370153668235598478790870367995304849109704819609332739840308535388689492911626128543100186135332548490855610942706971912594848507711383791448869723463843315357372613504266612903929902440227619312619689237651214642291993962129799624325254924573792534849092857739617511863109803923055780255773376160035031574491489762638596035271137504526548612094391447704068017509791910517264657380901443816520415487319345504556569007148054846206228002349833038410035951209647587136414921402841243808920200818469807837392508552157477360438797998489091279111551308473445201396148370855046177652301086754413379184677519457997785357384673834851594530580057649180743024457476717700301270704607401749672085350253489830388035066532727672580983784753413000285450455295451091961030582647042241590681946543977562045243973784419964271672843459918407983002288635266736777144225745389271654245179877992707537943769926202732618063476414549261543723140250137489985642575744224275323806028319924894928771868812583727025972892521887497171972462784526855914682261522444235290325612198845177351913406337599405448874217369424711295846601021896884778588309123911316534877758737916753860675614694986088252536078411856489917517746414422983800533481511825204668807527771496201158025563602609059323667110907988826320638709086937786508764208063603699317783653709981776825891621613299603442165434213839198116097283072148716708145225788858571659471086483058831554584200051763115801993361793485548563503519549517483995444863602507993238690072184014036834910071805473987805481250954547214309585541925154248822368620089535928040078934724323016206979426334078145794878123610979811491907996637542495049985479819006001700003466148723371252373337194235235615930932440521724185309268849864118564927436316668857991649243928654145827763839396701139195924284410184335515510363220917136402615855674718984565321042077590817867331827089013350779018532645955673552897400105068191193563597243095987883424441898345573087096055536239799001445570080198049914157051424173738230858002345972268941104589986061396701111066769216186458375019344031174751260866320820051542447671761778799541008127868875664130363880866320470380309987645269297344710650438710208297712236413313544688080548001316072473278751636058049281338431838120088833606309171823198843929949212173393845782656501811380073097039332060795737837955022757284219975637049418296399010964583933574864582931669748103360707452778991085980578057870601994668215707364648196037496253330983149824617297487295241375250782470592980660936667820146965809947560096316564921629158431208850968382269228502473195757792289609940539248880518598056600560664186349551199605439073544290428724559682873422755883104817660594621143409655740740182596766925237688460459693388044586735752565130797436066352187458555691662364870893656339867012721884053742498802619692495387474294007757856288818530315261576956860700357532411865127504827473581558313331977527457105849343051986306562815583774500090832424674221239628546821868351493885684392865188243715100024838702666485661284151009092284151565558862571052831840235322632854455750555471519029019608358657548942707902361078414713672713901092535484284013446717651277893112357591031341964717883258728333753580727519654972905984657422328754097658919008201638967298178313117721867222651817434546640616928221843693528851331200278866461701707599148972450528358373125857456029287370515301943861896727039374734120288233602221721029046382435212798442899728893362589334557124240039374391119845114529250589606719781628891012449736386637440653471854450050827655728613796686288558440430853084958003016095716947295680435296059163017801110549603229582303392727679066390494097418027406393183578297738022851378150767894705047249585507944589359992131833320792863224914020418041845166895634250881485249619164386803363800462602905704239048583632792350557172050029383405218048610862205401300720480797019073898926272263093670002532540696077496751902363501312161277126996309884243653450741407843028880320468724162023172813796530703739227101226723665047300894537345215298581487106088333687291442153578206357062039497090648837022452040898071408673236006389919888326303326379550586152186526604672796948756292082242823193750862545650374528812285893652494759988189311093552889644455735314751632175825152564023451178558127078800373844008929376927794461796931214920880848823708273184363392207169903941926446934301629572274304427980036162792650209092963971889923156526224893131481416182271935173945420547674534653990682556715131486375879861496893792872571984218500585029391522150439283313174175211652527062068630704191982487027203973206518685095025800092689448152296918175660353663582818524414809630364030811317418435741106969005761482358868830195749656948520815035825680767391876667703955998859855576731572277833177967919294915765130823583716932252333551532975660247321585550402262279365904313325212393566933770739847671968258955654266402815694861734451571302066551520213762223360947342027798025441020033598018692033655229638591855627016910860650198629097592118001121701699585371674845517576888859927961399103571105965214597793546606421584966861467113725795967619632216904328717431754289851470089673633814395272931528456249339698717170755494699119727699978823661896978321591249399144959698411115406245401721314500685665493879525332849419057578129047117385941480895594512730260438580112521803278466541610000722271738835908213939314343833583441114212230726248599508881315021779937546500004140637067130045726852346305934380127884760228656768387852728197314505935774219345127134754322891814018558643077015620637667765115614867426541800429396498681282206321998443789869076129404207687654486560004685403592658377760185792936211258445382004770316204914722498713134803310493292815151324131604740219631978637679440879207177414018232573791121745485163815197344927759016171817688608925575893303413494830610114111770643970922214060564918320417175390849137584158763854182614411156496040769043780396197078831177384903184384642417309356076089696500990989818262328569138344089156129907505564240785958208578130272246865772514750217919072307461105462582058368547452219936851366202792600178682511128540032036171011372708410959200235141163389424707760445392861361992577939737092304444720656723741190641859385226268459042805355483174063185642928726324143346211483600891761735977035835696392765230483000683594049486568846022461802521706541194656659736462691664282940494195655831262378494325951238177614830847357801936272867182079906173899665092503547206019503118286202420997320177207203563996504843614621410228079351899998399964254066091267799517789240890024061073361547966777261858994559641415848380761702063290067905896766105648321516435582768723225316075700737970798248664542599636171203707101828599857202824929577751512015749345216262870314472732457932300785969298429517218568321194925419358270828883512877844816400261582813549711087027327006251810579237587993077279295611338557163450218877987857609740047053726032443225807417529339139705180623893285872692598848302246102402900766780681070118148463400242636255516296886748045381112024657628779548057082199348702436396406122556676634382659085848216731403041326253674584399780366835478583199675783166330399300549832515800863299615713734001944168149767066730289514255953466410333454524067487352081315944392129848138549815466876654077387623186627730588918759870376335800344831701077160750850647367762950667823999853072380287960881413501406949789640414253262650719779727334794168792621641581412793637329469573355271327746824012253570117073092707758744294119038359563478188052582977102647273814793930785675569988759841211810973312752312139398093823288230586024244516194753897428101383038838727797290554641615634719257259249296353558996987117933244347802758962094481767628731752519426465721664294778269027895821024746198618183095857374582453975253865915767845515604331199341536630275810395292476399451159640540147064919962210020534144234458808195383289211164691051964143179685627616753463613285328842262886779968625534507416146116861558542785217715268476462018311079530960506039326263345967596857911008493857090642632920025359000877340750506021383304516440447856755914040959369866473724436823158783692465122202940495827936852360649088941593132020176050067854068871877967973267029703330534391861333889990512676595705167522770512859901622793280398359097915808393691880733370327730876962409321707655702844765033546128306425888477694435251949893347772473694788076544773774783216746718998583517155815661000432330519397638019753063125535884252053315613490712840633971538451120112133652521225488174895474435237443281546999217070823016987763002135336399385046971017064333957394896202721191919873516872275442250998629909757457811971544191883630132839045642217835421051403502906530932340964680577935211655155317146418325003452158672278782680584131100694074161482651527306381249559154031530724572454150530430140970163511684236526996862565365248832688270713593226212277054921517176825626490281700704671150463534051006861986419492221260001239586743929270661446088626248823634452462523423676358707587806402686937378510411439461303271463398174889120066545379485675582812120302117695602909406541985133033726943404988600603243030433587273697760621587680416617776618766238943807656805732531182578278948052540764804994797788555270258110591282523084091947363922258841069493886939551617340378905771453123115070722025474789146626269522014351009233637472290116835509727748813322543837707721558962426227480302119781455863494214374988921042765614451226217479456544367729657395946011748746453952038259418577107811242203827973932418723512370365949951011295359088470873539274893865788759047618310772111148093373576709408945132411899577757147696722440320783979819178399304149817481986638516485732168755883025194442109490327847667003968630782836714474354500575837917275686691214991850813489045155147142565599065072507485215849951303124729760087862081556710418057292955141274026240670116214605970517313725841369210461351914574713791405787023596410727196306737188152072813128444506149582333975224074780874622886859180190644312781268288333349894308162952412275311075283387863248304759342120919292480287904354711564147549259175546030271664270939066732352213552097077482072246014627995234396833813833123164435740231947216982054341950265378656680949612035649506913094006595225725328733105485770661841835003821473857197856391204699752051859867126950347747831999959454802435672660800939873111627955462564220619770199039153420964472833580366285770738493144135281673232520693090361877057273040667863857358909832632649431031849797592451106711792559776125995749584378028981912317589229466063523963781422531552946606786905822429513230738853773859776288071776131376527409656215187595725510856876115258845114244723578175374813070789416146373877519323844606449814679197408976439976927637199724647213195090902700964925231474841885128007228449062810533716501265169268715463734829201609592066744311639808218627385734383710429269117411964991334392437688964880003579359342491669470902318243151171508533399695267735632495363357816677597171840957946988124211547478848564412637248596456772986836215038969579173644607035837840282433342707663581594838141006298938830512335620987167923194219829544959656267231944827110822255091039135223695199301903285819877653832559577875931904330457932512017195353248656732120506184715625966492930702342221865100656450262687682689947096319627083103190733257731310300131231315713092076427624483271748410315626268225868017561377980353908556896851040956503076845744422567662364469487103947887973863458846690853845539097520145153226808238287287762418454061901681984215731772802294276047497648989074674796313617844776717649678548093212682929031839330140631482775892993935668351071655734739952335576795174400455926295196756868996935190564658326242214905008225788188472525363483345945796924276707165684431293388174809236003018545846708034569358744872086770390888194563218673032932523914526097303356006446564294463647276643090985612902749939784166402346606200508005137761217777863866498299729944995557654134610622551670495460137435959378910550793719197942590406752684830457766531404554541773151165054224934757871224487777712716734403190051694042490570483916741543818235565458454892461892191273308892137180341707479923189531236353897270194493683013574832764697273187713779963422717060133798553825525829314321926451803436161914185149783819851318594363570677258941465881105606815349571857871516777172237264797453813461200690907988666057952168554510972731420917273180509375125469170112303141744625234028260633037945410167863713878551522830801786584853181994335283797593750375355149621595639937589362339332786440660083187698462870978266098427924655181730976604818125982371071081402316865787557962671957281998219328246878249654751811887972820306668152535078839763894940861363779678515492307844553227919484558318099507336250454947811616409071026236364088436845294858418311449412350424299869826127882224173174826227802007213354038070523568059124685435680274365392010729486100779292727511501834263986162813003818887329416798541669158839328367378708321008205153090920339018553740122676605786234728446724281116773432662181807088288402265613839790147819323298492262513180019889776185988257110627609937749133242871074341554296377867779245896525111479960299380187352596626251825847193618811728165369143213327317418340572569198144455950222846766274088138968635681736782842271671683598268768512450871329906278098744750661197379994405461272859358679762538571934025423516776532662932623754946583064188032504814593921992886126906318723703724061012536132445082229376915248805819352944751778809598335966974861841751622982467661060071183992713385501825548640128505498873887738411281744743942636025747487621636570453758996581455001474079913435398258571236308804723460617191299449558684634903479813949846966347098054975076509689152982029718391587126335660683432400945442108072843395633537842889600610953928571692130135392798467851956037780291603788975904400792099045496802367828079192713563737365735772553442714351284748845243626538053148046203317041646697110045324058763304606511923259562560142120460507117003400324139034447221466888963876279914645894933470824014123874000851494493049657323505190160731471587647806322045714239574215469026355600075010875707177912004930853983097465541734566395863981260014013960685377934289179266238619655072094897448692007944657655313477687147771356010466928410573290555187765450483437608996263698451036542989081758884750496730772911275023629423693055206617604635871236922286823298887913517000142151170908132208266629086221375382239761566376091728441272233814362069693678058684267092375568050186660533960670170230342447590401027542671684979173771321756330202623148213925937120772723679499130466969691504995012940799513852299718525915848985231146828106356125072530887624620026158779913918684843032644123341790901879008406973486914478627234451614417487719767383994715347876782974052191182523820433510979614647164402758073756203982505555963556090870539882303914951208250685431532696764217212746157429283389738466862596573519744292764956655196280172566476738405132081171493618873607600295608133482056648878476574896268815339754355334703322054593399901178395753122554439186222136576786375980882304132151631305685257008302569675704898690135253486900448387464970208876863201231213928109065676334787121199276265396640928530015624449112938120639442288603998648094650211521698063823668543806634262240156102410361060371486720692451012656327305349518553514748758513191537768327692532435607497493941354068838731231403212226117235727522578014524926509935261874142077010972017030020260489979739712593030009691437178905142707114792438145566538500694466354135720584188123651927426650908427120461354663667531014896192772614040939089090277340846789630292244052055403026465401276982619696117953084102729341793809453106016708362819120199917109634183849956973064824170995413496088774557207208026786300964150363616849104952990044966802169815811171132335397594208481549771590817380432871950722083843141912677809204329564653622818742706772980653702048517978945903703916583604942348125678636598038471179771863384528748582736917254678624657932409603403444097710969338268616698957304019648225200133249843464300778229056533562967489260412361583065597278948314205130007537249235943753039787577255956512043454157653409684388100717113645456970016566764892430808846311683260304732021768341883816108639083888866261656218816652991721243323586955177122582699797509986854446628715451755189111073246327882066928154782671825072314719184849791012323569347147358864030682049961324494506412479400370819115192755509613499952665404005500403544659229692445833464088620094671190281020847193417611175169195004514809325907549149907739700660133476007612877557511840711450578608863679786039159795608571612230697326734884341154597173632048257541306622868225255806309932031358392134571447083833071938028160143806549359866277959658688920065861661012369851557701320578037923574147605843565047298776394013137421820830985974584335157158936997143450351469622947833229989856044046083501811465746654613821702876241305837381432565003317331165915471328047984266746883158023613331550093068874262267878159743620498418577185264469174577472854553284587717434293015706668431992389465203092724658524052959676357752557191169452181718085673565977012381448517051198732734907116069038794566733747868382905632349714884777589108576051412862776045378600791935208824762365294166719480165372173920777215630250324278358632938651437269177009136007080595878620293314788271551625374543872768198186130205209503480702156933252768713584735517359138773758666710541557198535858423975277118830796690544657851794125833941580112523302592056662443484787393145210113147934033908858648432697086846491088665289223322984214388092856200436727354027461625755981736581394156573920622857159203709900737379938796114660143524318640350325735416003527250949243756808838296791561002315366737737148624374607607122497818573546555869521829855722729641947460024942553553729386873122451577701763424311612401704042690611443410336855201216398255387919197746301721027713029472858450216020632422718766166083489737155728400799903892588237440595110026541153183143707710109184316535076069046094671967511824682538228899993185164910279761735679847683875587678755538702328549159522097698646942894250929651295376885141764287183608056148807789578507380411378071609874345176270811379730793580406970886447185429104554511561958856365443465627046391685124506497193294129934359129241196371624762770502800074213746693629338157414037668765528984486596870033686916814670489558201439518901533781479146526365902623188437583352410387339085457175550917592844384160083228809221288144381215766867715687994177186004125272897854979956201859692476990194418591445509232096952201622740807634916267053869576605356100768380709304750290030067570871784671725802830094737637697534260909554993676578611630362341535560136090686691108416519485463333814540739302344540843191844824174189506663681892173479902839370566531731277327395626570805973368377510488154261506912145032579324545628415251871114217424301639520919283024473487100224359834793098262539909581564796377002325851501199407941411255848667660572384099461483222374243000869781809390913188542932485767929599103465869349715115935825501494330090224741992961739801564128108974647658577630263133656847260601625160903937938286275560034424008199406585057508809738243408117652503963112470721707700831920344529435951333442060632907018607497213379552718374679598014712963270722484094188354691775482872911324047254255805272543425242067700096584297314707474292894186806208967737819471214354641053457525310093844856497480461793271959152974460356783472509552423040495106877073527313336095623845130613318153286879602901848065880352984075108455844011844105896518944984727068676443722252262120891709594824310988134571650055311020038529311283526546053223771666125921881748164216673788113765896442796646952567611111752348366121952718744797341202085430148266682573408094843154065335245832782095898915625282910444608459155956783774046663924046590047214372903286324521345169377651899661598117850299519246396096251836045372558179240503115748203509708841065947736299526253014101646000809449157610333382374383155382300765910095307108416498976406694677228166610788046627350937719252446037707680323406547187535749363878676338158095794252575667656592946830846220483302360314923744829262444494175487984504079441384350597721058044088526864715033590581020768384714447978870655941121021609098921242416104546844232703866767495829068922160794270693404683784638237150096991875778343806030233472410073756856784284566560199311626440239123768016788028394285713472736646733663736051658845249362131704706455209267341228443791881259105177512030559221088773296704450011047136987268700534801112333714248763306058453112199693295632438707140873159034621454454628587329040952588483100330755418883948165450417048525440683129179509799876411773264663417190841994411040037131464565810276993243724344516666227402239427613779209065791614737336539906954945401821976713199578101943428311895417547427927111075783219057937678499541164937204077668854483477016164503652511986017460211709551587198609613046632133357497042057587761132374320862067280309591668624531182296652656852941727851735853059166741295870137955873825520446743058301825772118428480991732070818094967346906634933349954067240014152069622530373981360701267585669992784663287356772462217084530427304184082685856514123750666598732932884550675698760407597751026653124974958376944393938192035168300139743425846736640876487750359190072036236257306335542947182027422132649670704345125599308649361736288544517311104708212561325368406063953485288137744105465043392434602030160699587843837115280031197109428552920127935545805620145018841086478638123488579428127524357296415687913051679441392124806416536521670477184605463524580411541182997836405095448631781337088911942732801476078653660800886849822781467285653103618835396642631914831490351543912310199255613616990682197658169967020596240293937479997493944246843750216631752102335573721290080250246660469227880810513267640367130351781772756934676773848832893533947179737846925803733889092442318777386112911000499464566111384905347350786779494691208742625591018703826795781301088605283800068884626729420566071175163904917605941252915497292797739551477359974587863306990678482057590719133509723844373372357326283965449255457731054810594296108263406579842968104602466315832105544889758910970562599847242421107677139708344269147462414354202876835736830603523540986183277361436123523041095818211586054810208986456694103513920030379535209959228029242081756514749933781211326920230467806107142174333909727785766274573576484172521932494843159829827883584989364534519539404695002781548896471095044193291461427781696042578883904574026107832347085435156002339262484640116363958387947287922543308803009130411181601016464540356203928101818933815324166240348293276842188484341733544132673235286759230438542304505220809400781196080215147487937510137552069620625246779460633593199104763466850774854574581699325239414806994740605394904466706593239028974339827695813176890523097481355347624715036313376461492853200959205477396596699464480012466008845007233869075533453166339082268808308872230450971591822980379266263465702089089566825192330566964420079702359081986129154662645455086398388506941301407140622650210353164185931137590966647600654498675847730046597845496804943735545755595582570050295360579897032182089572301530529241323387055610070571135957805001634542356541292981937361024600982412896652610429300052081784325808846489228323395987358271944434350013241839874368602741964905224994417199117799765131439802946071490861734271568194785749785012522263740639929318243855103442258068275046394929937077615970589694541589835672489531897623187310017912113360833967237911408661844492903046122108049170186012372274609965569960107048823023878193039637225403767790390568044694569291668554498107054135250079399069603871089584655982992494120776941968507557212938275888036344237657077188310991713251397121842097717705045518151530470362410258243527393850397249924352010007370815709337490165150653603123393538641668560604748515937626088689928762537326278072507977546983394230261992241557725686850005932460055673380799647422489267211280775347910851070415624643252762324660472877316007846246144041021775582569401914621910655112668668728389306108864283694175347584303043171379220685027742918719861877157480895204724118148059885462169799839619893317131661484763120673055550741528369520042848640310395245915671803123002558442119342611187740525107566224477744715389918461339923136585069764923073729264710789679329006498920821328726868701893382547799186280995378914965025649919882473165815683302364931505371378786574067038886158044865683164092967912724168628742072031713914938667349746799288409168031902529442257793388865180184485464126259096013819871630652717105705137751090293838177810425023651212337292642103188140550915019185936547358567144659655852168226936081509881169428337150933832414041086339993980498872392183707415437703841464095283037402110675255300602698066624436821722667505352008314423399583369347406659837456462154854448391415292647440599598740702355099032776144465231291414913917098270566337338567184712048607297971683376902614429986385592705179563275281033273431625370252296790299809974286460500972314595367233550896449721500867794823337682672962124583310917545446041840883075093794009293831192515111137449853972214009044607083592251856881352888372902883582344253827078963544885127022911180393150186187839652446230406663592193529809483655612670982435302832731789806878059424660162634915035978970415804454918845468529852754867391262214932525076301572725709067919251242879404935216074792370842332730107987014618079192806044194025462136398852390696260573293058740194103629226373851186738137069240087983180632489546296558484630201870262145681922598241328539400490450005867433344307261099626369952833435054711624873184477862187735878624816528999133774618928167795607790775853479411899724844514638416640175319351765416137743110502159065754348275321412198007579923078580234961218326288576887097799359603522187648679935304482064602528607339794499502939818729172018581258858876137362737505322583616139332337425820042776222772008040973444512284893439830602960495557099823318402898561101035580676318831057560633624496237619677237079296396827929722622481306251047992654591175875979938001947517306475093849505908631165881036137055627463484772504642508877688562506844978070487951556436335601656700286384024275749136804295074873067212638393067848851809432443342465370997882392593999424070029431771390459861191559663553961479480923794961269442763995840519860431440707132527591544107480295054213538139713906351971864285120150812752195371979930049434579249866349393199122828064780672096310193417313057752471393594089669272954647401435551587346295733936052613989700933573177313009160499572260836198055430002599191420347236710691607008183897758060041248939670116184934215706962968236784614510806239390854140211532653604855531502807944700295933543471046535278906828913850549219747069345090887251443851789182512148498105171205079462349404943351206632202378252790282487926399888124383490161784096503380083810582245640398078103504850951067309458681565228650030997643290110747982283683690650104062907346057046952460788677705972565584498211977657962103846235179858847777871547005692570578686974540801029017454273135265750163843790172250262048739061721570778666072302713746566056846181321101647724758546007299642385085978502847337940038465898706767750442140144099838710814351416496538022332351866825267692442055556446266678772333356112920860459947187285876145602045564463153898706756540983434318737406145258402415236898149427852438431730195622820152810447573978257546777337049268326084528920171376048870069118097806541104641195306741356688903038540480928774837778098915938934863179165536963934924181413900959965702288269359669603961593402969794545439614886935942968085895418417344889294956295951697020484391847100962967014267146099687836741833154372983481522829827712132585558898913044763256486510997333497629632157791934036575518139552439003132503405846956556373010521140183487668281905570644058826386046355464905512446649022381232205477472113037790327671485529172088704791697888380407903760067448614153967274500385379218676749507441196750151015415751121782410313430664173973613138635048272359045363275006901378512445280316930148910565299907760970050689923076337509258226305090683598465554310334757812359244776422102511947671399064972735363630675246322292122510487629025371295709811122424431515739182501360749733398389250008208670502767772506988357371506840490898465731247610811909552397881887719310030874950660043145817033229586545487841523481156014832971712234254450610301731058458637402427967518822528729905747822293083609533002724294776967304252160085184034861771279002578649716952663202596786899216176452606980693564969620629015661330899045795207208968484370142916909875107653892803454623399907891079446276139677168964766668765005106541641085962821601135537940801903702554801974038309463071857002394372224429738562060482394454446799153044982572322188125485744685867106848209567629024951100067835514219509907568448251114135863741446292633784891498671869862256524674665925557999067572060540731655277728224903823082893642298185515636038000525065665384082274164797211397154972614781701094023796980559276046990456604563302083929815289162330186214360462043715735123727329522848181801093436496093815265792835478008827544114508637668338227644019928929376863800409093156469955893969406292525199931069576279260837496913485563992714107272575540188082260554892063384760400494885219942517746718357177094569007645731355391854448416646997749918278399698218618445504251062621377779370387420856931865715039688732711365546714825935876451990178206263240030021234315532407114181505867839885696783227983602780970226908894196277749827947090571005078507836038690444838684528407728559741397131697190153433084046361557665591818522055812685989938988677173463176188527619171300284873162981816354946572177479717635929469211646269004816935555520041723780476556658571011970039609290973045643929029150992647192446770122767793230638928203022620113350556483652582789763507487132486139734186144559437837589500762608013701769467673645543974880195418602064250926881323589711032270144142724025833454212101392923523731250011035711902462536934783543408204275837958801067257430412056379926464402489338306629431218827251800996980755097841241564144038009110013090923536607878346956829652245054720057995024469835116440329445348443982747912464348659409208904155540554182204202838798202179366099348586396061522808339760945140514584280028776766407764310946952863769152670006519781714884499091491477913456676271753835168807056953731444042553056540318963136476465179459928825727718207858963291794558806433094354316811627523561328631142308095457352383663963181938299306267984485653134972265460208754533513525848822159702919441714428439105959944334601425039701971776557441964099831427048305477343731478039888031010287297552668974606996231137745383992490125035594524506859344142976597779582035513061966888959104458416960026271839199271200730434437222460774337687951289421014143571431945612989856735889085815452273896209532934458866306520828596336106722804214486182318664868695287778622575804794891187597170520661200144965090496318879462167603905898659259092502773370081072990873922540261381081079648686836999890613899602480253918664829586201748454671450314604792542413890821449707064626232838874773334021683850788559126250628771802312703984391888625093623914364120356356396363933682104015224209232886196365774430906939024773966342112428217616628455914305855355453771183451322072355837717611776539544824967292577749290437348812535440790632435777881447759800398242883462499073467428845639044696899739168657903018305181051853971981397065849420340346168855792211128755711130875995963985648843454759802027139000551961168795336466142208908238373272218239406263217808381310946875185369321710133704396209352955602392786940180905463988540306607384201228550279947807213367566264778343342101740711405221665865306776210734325779743470932220827214691828048841363035615966642513885926228532129126636153155153798850497635498621888148066711639458565926364765342865259153662307047294728396205989941064683523198792532865616557623572113881258520442108812282705340857526697993198810975232105505435037764242324586075284386703531110866206968271457145254446740064555961324029922086580862294751860400444615038850602644497396823191683446933463058486758650374115611194983192559059635846181086447820643090682026742204251010235154864288387233914665439849683595636657293163502811455601359002145953075205278096665918501908076524911109760518492497125022446175536248087618929073240764877413110298119576957759407391487965663104360769121851239523277294328497152656450053073222778387503678575725204728316889019350383721827998115992871777542731349822117247958415579775021243841088842893984974192226767965637590268041030975578412267262780160123974643792791627815437291524655430861785961401111059556853534121800371104131847970662569649013748860525900026869816396090071565337453187586882485791782545556019228059666812907290453092979669569590091541471726586820289656898016438378637841906651692516843683288848438523875469579945253906533581261955965958502764261326663703754582686217870325755788329782201185023083786383970763411568106804659430078058119220435686568466185883527534536862834147092475412735167176647933868542168078464245826877579789268217772240659629893288383941794769967639908707915247025189417833216943701448802119046873558638985937847496656490969636661576745702188147254749306518313186430983718310381029684778364337849197357396677228969140604511464756470989949237954532904440701693682024287411289009667961789210811651217373607503790413166909024270200732441930042617332851038692910447470219341933906829825907407039077962561179823021438822886791906745046475152340073450474471930051535687631381545362141757990190449250992173732812594285237891048641866119181900582008273904696443749292769252232641496689700923984067575727568539557561014698873769377673130079670202119621516186586076854943497997252897394126513220367799485596775394634633828187943919154892533944386103701585157492345677774322475319520133876269556300234110854466453864343737658906796669889368393093707656959575988571597115303435293797449293220778394702672645435383429271177319497974257062811195263187936635958591421122607205842515513019751975360045227850157559321720736874226855540449676355050383148263083169135518831380843598104516442449063160124221700239651113180521588989060189733316154201803612138740073768829691371910469582698192107862798328151055595332399576116462600631936006681775324266972379676227435091849196071559161595310854668918092886488686910380511229286318852982938840434252339228300602148622698675871148581204926645831428692545612073761430952537459971636962538516056091193694060297852516459685769665905582332609602681447112697139306687392927899856808006972678659916793634777237744001302795778346437439965511224539421284515307625769809436574299393379486486681122325263670060357731278490685021950418209551841540077872943905552555890797490471584309014737865899329165664158031785960865092538525099222005670768892571208711550783858362584648655188293832643170997569820751074836605081988652224347347688287575752823259647923729381078446037821098021297550704489828509547207165189853811116301839898507975773766671580184084061081703456348259370560487357784995105532070927731857962604771537291711572776030579847607077231481760107555935852114761366868679285797110693163173783928781761872842322226149663309176113564066609864872006026674081174856078776291625964633026871172286060227938257143780304903491539358916987314725524617832594492741325842932616258517067569975206462608151898529135726926510900132312130258204901110881140964780508633817257448052215278612981409675258139683335688559027994770790892862627745970929608395093539826217327515738594222875890809223404302635549842931984134872742876741546253236491570950214932223461284844811579514563939978411259124664005231229853398057770787804024278231199711973468054681483856790674518294732740134059940080041608425684068411229444239010462885767127263532811668571156630063315277779391805128160683351034708511308905863773836774044082936266912768197740086999001199005683914950644497190057487159368304891186745227550780276046806194159560430766639387303511945192718932574342932665037062722638062817133098496515667906573907611615108909058640691610061298540661367936861563014182603469531309596129877766013929989703159487231193849605138616867154829228522602536553683587322472423914508311506111005747423807696202398715772641989848258209442724033343865074953054919287039127514066954612050049632973081260408282147007696287816657134489852641676967969531544127776585239104575329645423557520901164505992686274741738495519080156424713412515197905735869790111847449317814854143763171895072374110901705650945867364517232662361762591892404868143852032231385945799709584519192218982414816143885535781678154021891572481355083288582129404989556813262831848863876415534862012628085331285053052666651727265347112062562985257086582607631114575075589053387211862892029914650372914974552380742259022855838838197007836173479742749149799177507684166942728048029762168359598639568383739790439844100432964502926909236263856562866975376331456320480000263210758008720522908566731963552492283967243816539053290709607888949872967642960717840064060254556527167852999827757696278723039767150218601012756831288397845679501016626095764430145879657652742378865094798962687860602357310410860463513991414783061612749899998407445472787784122448702107587136314106330895297494678653673265455417695481966637042745835406685431392043934100373957807122297064005490737612661574195966141249760445992149883747739696324546148557569854089004495684896248520722033150243059565114201166370036310203493368522538632857205390830858698130149052751539578650873931617496601934143571435441117820690829008425878276742051911511659428878697622182861441881132871528214989722101347272120755877010508735495392866501512981312416792088312181475970747467573702050210747537420732258722072780805579086084435939370262982825085723750506635152706392807343683603203731419683073215856036685526988487910796962636775901281309236086113082676104959224468584844109065182293074869251367392522156891377340366619302199095203955298356304488277599894792902356022501749052966268097842612910560613628254971240929925541329907365849201203502825495371246840289498285479963252740091322733196489557012648891397446838907600496965442383898331415383402770105477873635604597548991633312424117678258990670933643140368769371316191037871629313470364071147630672634138700585726069737162711236013235501426721772477995508791431562759737434756565288031926862672338743480203185117266676451766718083180693726663361560961615191947154358555137968562001779580246181676292108733721287704586228849732678310726927214590553999620477920174232066228160630304667884053986861685909246720680213763596164819888529009918732246714387578205987378536721134792057005401465529835466302816863268307045961480677756543514358056653028229255211007926023355744616918582359267165800844292965385617224006482724076364836031073683438220996945708890293891132713148937689628953768195140639160062909546576072088100943354618406353794814387419169103170138823296607170993275327831086889499247480554917409716311849556537088765990787501947950730053584347467140955148820608327114971707405119638162321331830315760094841898127592258927575426322551631318071172084611080475759442273140947248431783168654168317457057131590642579423502829811164981255252711505158480863920207327311708759155076709475568194837441547604113932075129002183864177313997737069726905411452790984214980450619270953647138588851937903137492866296558467799370617532176696750408255637089753416851052687443690031502952170157611913783678893012829671941311384129529592192518767535469799558643586825638564596420861921984525693856349374544104303658259175840532627538241853461559408807784449690140714391811504081284351060977104583737595073924909215019959335838313398440420338655161828835564518025813095147296744577562713208260398546940554528514133593416818485051304278311991726931689899920156789832728649513598835351227163134380936653692557290169017224384488262510327699580736354021296183219931055758345244761175040130669428626811049963971172281126025145491896874516394678661472695738636771614159936684357932223864835082835420689165137795741240843306714730891616651337829689812355604639013085618080279278624266420035549492532396560203414560882128424294999147337027990674608616714239585690275955233740165580089314443634687992110386808127415041617319883081795289542810493677158230626569341110702213864321017027656638436678688773784383763104356392856865708502625101811813201294890042971056489575674997116387763032852257256949867561326528110125286090407319783026491881297008605857586854003451771937904758117871189690180756791575937895831218485787924485007664770223174466159539265797304384678633185176069607370857980164428600920119627968378976724483589240521934240477429224688394438934020263547870218848872311330133028638547425073517147794511179269966869701259975679775467241625329203564837851450350522659001912167754243404851781117274343464464856936851287697127040901818617808346331993152869783876943023022991916388890787208942773508522165064623984886882878042106372643263514548387970429751111360926737199157482797588375884266514369186796747755994078613423186832044708925791788625798889021231303860917211172340464121119694442730887923953892972488794235757488737033945869613897710102799425132434870129554511520847715849218083705927318449848458816432453644037442142667487636084814301037480277250449583911589690606579974595739719026620128371024387247987840837331334554472014859191738260271312839838416647677449330512059242314989329608915339031408167780875563778693804484080202467057142317519298527037036240366419858426038482982051942637314579560884457217592159994428379662208210903019507842810597722464858294163594746364098368411769130005917914327785979414874467851043073071347643575121127351463685579342501514992511379321051391733525155487129115272440005975672914647531307426828935109516529958379964347557938076822800920183510759950975926986222537088974504562086921401144966742975435501508109198002868516919650177670607176721676073063296997343208151658235174163004520533073247782190322785353885816569571097939404366956124680457601334020153158783154483154505121698637725261265333377704517621510590293156947256422767112084381443631487285315719821681252304156068011004896611778603971465295395079488084198388823090915044787695538914736416340372901175411036283601671721435430721895594194283316722873269929373878604888462206934638675431414046663444047636402332243133614180465219558836532632241369042343017803304023473983347634687163595050835292926728078600516487709814103397242627981875400594053004872948127875509761843691352174018972855694657085888635010981665421839159940837973986458993354693460120496352104621540206078538124033412472797268373738672210236563300903257006968663325037212028056163212361424692905402999603689374096497787694461598006972900971837169798154014106863784148504771072299670438681694591681819960840459725714088213276442806525835299350774023533853964446987059116204867881036786473905361942298050951680082861279249939135473382579681658711956022756916084580017143942831768787924668727555232035476740405184954140847302486221206089361020373249826574383550333244315714664098622571535306286517413865538358504094292216079439352276646357095020774194556674040005818086069826343291669285300763657103941833987786370926441820237199354079396401911775778529651197120991486015686191973877230933630052707294900334027966296137679654752257264107255098243619747995135562820893839988743076507169151892233973115464011727192629782947980933873389921848769806322091882467101963522049580706542777869710459074612647210144157017493215373156019335308311767938336358216329782724738132438816484625452159328271774529307188772989703021018249816463448884628840455900652649481999100026055364841507487282499489906840840472614523808572785543686821094986319134213061995099977250050912210548135942295343800144719504267391813000364869313784408063075983226760192840232083852351183080058159132672206559568055622122169579830429790040720799729208090653970119912164632506050172677092823611933061970344315018869552248170975080725778227639717527583075260968344329762946655202948731262547339287021504186184910130671736793979121366958949181301017669881232349653097031468295353247887330197246896881827270608453961144329945651745968101247153099178696792740628457769066066177852540142473885594194786562642797064693470613802393363600114258025182696328898882829244686879990293015501040088250015188564119774530767559461981795492476006129413622175105962995188174825432777957449369477729817974947585381835536194282911487551297604491759623206568576161118960010294894207393531264536183325751748643318846999986682921576642309709597315203669541133162664284414831757356407492889494996823264497059974295638075579709298624063367918362459709401764520771385814259669269307535720862855829708231211086097582705755716706656757573724026215574146181643738213956668347071067343593376446673404260810854094273254823050894235660412319783366621243545851133107042356256613012471035761063769556135176151651572664035265989675566548257543888032215691171146112139615425622493623631260273989411566186666476385522173789986028248253012022677162700758016130436911355991635693502208286801768647118803782638419538439185946742542958733552013235519189995326286508667222963040105847294085888814962095763296860657345743955072080601589550799158308049938067355891934854823665128375363953572994684239282234163372829742233305598045579898382660800484783311371575382968191574087051099179278573193531951206649141106355594458452399683072385379068808148498847675904626778648739532466379367205256073372778836472424347464526592138265847490985186096304664969801510563251590418230228219771888160768689132518819278707457818107989848443898787438022186186387231258803706680972400651643691360537500800784286268187723554214920749154814446884756752477975916000994882501564931164461428966291796754159435707674808321891535593100180798535910211504331967471436768230686050900637907865976068548170580657129634467815678018956385824795574991240368123862583522853025124650046131915759938773937591682941129380443095544617374203640603653838005641907956990918116219545864254570937181102558388532156843474940735541179972632388627313566507535118036005219624727469218732733847506663545996906275130367392630791758402996664279332762456427810525950374449424321834412809448166538945792908502837655123722659422172895968406813053032081382808217948829467559383288251246536368160509193042587808776921727899785073167887652648617809795384406859610325213072248799098660017162238434771956443446443735857330800798959809141363528931607097899568349193886523528304587375794937933085123026057110703248442568782169939704893303406917070125621586513582172119397591496334452299214548755465114096859624049842347119621175696471421077934277289848141981998492160569112832908726937459642222336945124756447522148932762309427670175227877146149829381388599953799787490977328329896175827248120686073781560231392192328688827708076790972059524612265439775647313370968342702402485132421413931373625611595592187023224654891726989118398852342614709553154094622596652579229865220818604669363024904429491516255113759622812712918952877333531419033113511387991351627001382810741848894810806773754467533393830748979245246798031748938051998604123756115695533753154888636322851690374773459783264578627659946663145120876826385984748224572333377485976594782732773386051916208022415050987387707594276204120746435145787038755933364188412283064948068954691185088489630266455033569851317696923816822777263841940142172567102344770841218896631847417670333440298868508472056912716594022965013083229087265807967328057698437826151186736974191476214625821927784614604932267544475106556391186585133430536742179045695598884387328901839107566525402538091085073983753508427071462708068474600701854201116411271514244300526518983720691604481020176550557067427787307848862263799264579024732992624440360946289119042107246101706441428996085870047848181358405307980465121955162261251202178162548274064816079602994926679334371192258081142110852229620885715877752110735429519897572279381372920894891476560992065173256171525958856391174333528193533191714664134000698556002601937098885363627383831560283086863144978001509951228379941919818818502161157331373537744961310038057202480847404297413244610880902964048891410323802156091293177739729655205257984218448199681521677281028092197193626474753867896190251763007998222234660792990930367296119026189110618845071322453552028875725633424849425191183180178972646224798735622554297602385148828620658521745127273857577971642451924890809341691463491362807368796761681145436610365849944731148341503795433131027000387632997537759272184988580563734349533688333287166664212656906356064169960710967396259558896624482595910985514757440747027688915547914251867819096070452837608642230697278405994417021003458812191248139011799805393408096614663183624253052488210570868520869236990672425640362584633644566064698797894668247617871862114204134242324444495332511883619627058605773868020228781032821084816786929794382508437128623579316121757174012787633940677634542593878893120324143645971407082410563072452273213709603650515339074186214731816525291029068549121349995781279404408919205239350737359672329477909098282822141266523441467673744977824522671329134632219935952485584844342291433638778706224831554458293354468748189294604803246620930993131730869871035669171912625062719952395578940178844105924989108382842480925883657978391839945326231762718909403828541524701090772231829083148529801030874561493613962211130182318927652651874657025236235344390074889046694331056933581260992079146443498340239686719459163717224660094242642130581573509563970684104032818202414665951951669132633345975787202465483265171877996088517270486245335837660734145521884831253633710620987565134778599869470266101126098522825578066044093724453766159963271844769974619830115729975295486231035465202056553853542310503655159619256336410145904894126223893168072794755995160141554766999426989520072785908745605744121097212314646676731886888348928890180203911636747569418246121113006294799806692178952640023368924120561237443008603984931770903119065971514652832506575156697288817511369655761993520791905098869408142653793827576663850361971885884456788621634727804239951719400292104992674877201697056369241459842913650714296892383268978453606247368022770450911462733848021558412859034560372201420036569094313092802756596105715055137806154244510400042373334962701062235872696431182257330050519052843891689558551440280233808077708088735563543258086246320921345320881906006186819078110193489094794277760766214002661556427436922464498635228141045465721780374065139055555577605029425479881853780088064792477537605495101193899593527410700239038088912785055393746776143758713271326380073752954335032875470371264728794368099832505563975777294435916579534893547483971521165999607130692680052773009718557099683544093070227448064515688618629263639898046717936357962665266639772393733785149029096563198952779369971509409980042147504597255751437300999390653059854565213958648660863777732350962523049730001749783621596697096513412641299153788528301005717430815874205687857843257686443449804654670210012452856033995960712387310735161977701508619711262003001352895392589187018551140985264730576753897079769878089230597255767937097997745455959854478179496744008917370835403157657473131653770322084547270339403129387932319215856224072777146415880081220208356074090485970733995421041506418103192418245196169262130229122626201241206753179012890280165511900529865234779131042517836318417551327188974744744925816461290280091731902050458481894214759866660827122715816835031347067621366866973354549533256833835931509494983182348977316224173796557399862248049538687061913126530485473461614922905016910452752765086000584687091704847926727754587653069477729020342987307786075952279899288140367547389196667895446373178149133358935578228057665290633547010160565914409281143119192356544393517506162126752116599797086576787708378628576917829274578360630200954794465268806673122905809164040529089902684429576945730773868594537192458808723521450404811011667601034455950287606357798464792461673193496159633473851646704815566871470188812243939438386013769090669144286543607189793195931724800920318881843670082282817423448069497846172661153626268379439006501180041135130336775184867666735317382080279718623811633904276699517345688183123625155899515377243065912648576183636093676404684678227552541048390316534547431196313690662215309583298953996571435626704550555607778305984913974348945046644575716277712674630632864655284408766857398380902515128537941701322310664351808746802546744005305388506245876035596473722868816390877030109276807530605071881533256957504203696519050175244142672473016680779090209900384710741486590173910705555701871320230460705160846749480152678410481643079327629107951520221432862736138501251087090291711353875143484864814900346662455454280729069561324004560912782367795788317467742161893212387255171245959517103098107471221040343220368047339199035384566824454810783716511475494041475700463955862531871328773060128654649760543126917016948606835664942858001401700050339345625927008001915087143294888757013494067506398172438497832089328963900823965336945932722659011608754203912855362105970087537424017904980073508478892021548069444269418282231741844603468261063096294252237309426732881001316899855438107021505061131529940788788165666748929508672265862270047730015418128583871862995251399947316957428970021795119231621739407581116121780170329146854097015591617577669314619599568641159787865140682574516068400697555566664211256340481262127892168275745370577719019987616121275121700736762510780458759329435679970354839976229849278440532336475526393501292092919777661990820930883923998034235757616464926179032520451883567120137518972821107066122034683625962909082480572732860572221283894596532183387345623560972052393236727942527499064711248581654812123647560440038676611901612847350157767658222574599554775076567282629579119524751772956925393187090942008081811042494043616222622190373743093980020110578412842582657239429067283375197608507241199741968523771473090926725796619171022842128228953204789976765381819622564187233475165794534651125505565792192983498728501308105360461765850832612333905759221666297031243703984586869529422458894810585287889115153806412269459074417283858341616107724637761044123782080713340336481318907443675067286885875170014239358736687520484522761191952894238957137218894045954305017586745507938734008166207127375200013370022994688992209039163928564523474856688999065603425912127862681015921001627352681900571167281197085210200158495935726568068774990503198775356165392668139656403428845535316139936656822610461067389369636735635653566799048615879702403854843589497677168532971646597175190960759363971677025186910823107499788977361452203379026185933978881133221359593072020893518202846893434708852868821524489704229855985246833544606654591938597555070766617508461433314781013961111344159815658042403815753195441779864056016627608565549015055286953701860950056165754915764171605866954075001031721966272539926603749875281723486112212586679299099307512552692214401939861499139695979973944014765103119193560420807246842096961806584884645535666955828118880461527010066839809118507479297152858073319357204448198005982920206375574385639380424360908214843339867535361967396533835502658961077558632269084033451607679052650231726696514595128443550351694267764196157666438240300989802117633321480157506572605058824875737402514487385672763624302981926496182675825962007054990547291788284406938503314553605556349132512004361321254870496037009861134887477014608974163758654059979865514978038011138143617311904185820346231947950693506707676438335248060258210485719182326661703360674489086959815978123846764638264602788050075828761384503630517629281583825167516062216742276816541925003127155299024936629890085472433845811632261484001819541687343250397598284389476459104051633174615589466765726703021423925106540329343068427230360888752089744781964064713068777194998265585035566782546054744053588505490438316342644537093018343228491799276040906417506822341980460013177216296614974712201049008994627238098053240403335424875263947263794140527524974243004165445755803381084809017723555623370408361830539981346035713369305407438493522309995859086294384862212031991434937387104977914837360900406224150847433505021453476507550820197655419156860675775778166055990175228640950291195733667309029319480880985174236711218087356223131857992130627015540879056925037782109189110034403341906709011309036132739313639012215719450337234388652038780726050353315898984032331307388662886435723731597992536588572020998801535599420773230037051821921146014485409916183717613882176069049905626697023076651099270517588419597366495513771519498251095584705604445642733188035433873368284611508200731314459729634286607193102283442033358951471474842633043351440095095025495310400188735975992384011354816923866518053508896930855841790453486161872292499639973648593222890625382405515377995591076199652530678340992090712179111224936702962730917984087161750515214072969847308066643961291904767735862079140155859665586909248617331689816760889918314151826591969988121773209457918730014965177272393842569575994880991620262997978486180224944817422095834565462588496992534805681643174807006439203940585127962867836275535394610084631094793344825169898948866919694504126561067137607193703482400450330668706384583003561752185859127884657720367513218435924758033819670627784739640940234238917213705246548424213308983501272208152064419619601950022704661527549366660605386297244888117578218166100605878996883650447340119020794718934637393450547901284188870469853531748709190184188462375316003672186919704610939415492025713384520529027139309066345232714438984387208463343539797502439426474027506387123483748308340957949375206230591847476884332216099851815330332004916287204511530987303794701023281109118882762516093400363517264684940546935813006650876497031425852244414120405840233528427465972595190902781071512470487598606148794005526406149831847230984834539062669434210820826406478943454472655105959807737651557131974938199870604762828883516543165170767236631799588867064010461230173845074406644369849286872719896137860611168796411120449386939172077736377414296424072945040367944511140801612651429160334661001783605399968502790235927914308163791987966136639163319811917750058779768599725155513639815290521787631581242538483176276797131385816139710571046049176706260598964254803286681384490641769713448210448648054272670966957449148630462542706457750366138099870296639250029550678521213480999904727675398671510215788101638723960408281362784360852312516205772136437195316301640278120849197438115796051194211862746837856537534969803170123144602750948289467814455244023648692866275025795231858842822831923204099237194900135568875687657006812279561330832905936683524220205194353683892889991038737034233577721956574874546989706602792894919248208212924345979741684712604556541878690045119804347916039594281074341070880155149793266861509380909013093470530124457636294996818327552604210779710928670190939586488777440035698382577535011146421570326104186101464423457849725425539006900675461871739008872356295448522484266653717735550109640981394834416592824994153588705288243586110604873119437298458033036527538551601855253565529618621775602275157032341449316229413434261607400676912712363687484505774109102351402871259313002508932103207819304043740401517798847459608765575639765087516326080028836999309787619543284612508430719796482858936693368836398593258768388800551450427478134363996396192928112576010825176017036736932407911413227948251946744680910346128053193326054610715818326756157910822138960907836712570553177779206793672706753007307068094037706024589372852727242481732254801213678212825493986678217948321881665844616982376199069577114322288724447118175651394383830545221607601420419028706239499355215962484529589876469728471811004164251312409441226768672633135300368085668669354344181241955433010647534369915839992208977992926931161897408717099859964798702092179671998379430748761539466323781365393048613247200474264258320579747755598748833541154417488971809778278760387387899629014977008223583908833668955500951371654497251283574349045994029693801727770881014392822432035232740125975631607919702579040131380997695951601826721175834061567782791972886091779838818045469959534434848281817236345507582792687037320397148317665170337100540477917363621537819283130655261482904006677409255502608417232023715226988161186857652216778301202991996623645038057514446084795781272055823111692020578491837149111104064117393286549324041315373589157593962557652976736498768475403924102741526256895031074733550349126835151086252743462312690088208806815678014112986422579617416735469401500439139087258964853664710847300168838081832221450178971924538936690942482236681898370078881909986001050378461537669560374358772528294085831937720635539540200001635126089949304635836920651398458833546517274237431845961086407013496923900289104410358838795178633707304305171548891092182871048323134251349110715238700033295332599046354695963533704402065624792649033266029476379078926488019110899290091696818634162343265123148538582934458027554526479595886416847540912644827666972590862547382228580374538001399912814503116110697946039411337858765485390262816719988758393264345378739768249414001066089666965005204303786920724493568087481828245587996989166269760816337586007290529632334010894115674369873183480754894638008589291068498228274874421184097049114789562660905609657030139591909459900708667016494381196717272449495138260792290691308623865304315550414870849096488142477215103675064398141408636623168257868707790064877815184699066394968546853528240871389601337781408612690888948270196405295658041375556351133069669524390470693974916637905345085785338985304564371099731109095949462417711153865758721041905974142322361986309546832471295164043098239368561465030781286483829360068340790223098683189714073213793959459014581745747802523034406073610624460185433115364835752731796797984679134512245415124154181950338775100052736107231968278823590489528975670806777113887024455922713230153522075114290411632094224315825548542669399854709314180126807205106432618114727881334317309527463109130123907133679808564020366151061423969697892232407838360404702087971427331147305292992732540593421891096162339825788315717368154015742458450761538082880303774957770864046196918357057680661438076593002853235607972878937344833903966439930423400802929975121010776216160163811889935208596001929802763297047165751668237544204026715402366229880177045072325399988391893050459744435186921570279940829425351223019498927957566899620674736887151712686794690181508553015082422312790358413227361138568976334297907469163471082947611001678060738863933828860018404314025632772163057764341528636462774383340006031843955617018228034209598764538716059335270962993443268438517832601913311485237168005164672215165285457449530970642559445136926969758262179261511616950128008950769506654108942083711675677288028854484541960460282747004143438647145938799317030366315329653822664199287629775611583911230443980410386896822597426405791601578255661637747441414718902302714233082215899403874385602528521826615175778486910630885875262153958207636639087105083883732102450065872120308913333486402958102018469673865536576070062683804379975296872255090524716249273218219764907694556881922551969539318254218385351500182671174186271321322436562438207245958932718739304687654980169165985117139096381952103737874469968518931246196952827354783520696676916739152999309656597925470222560134980457857840248362620736076886726204684030397816394505529279071437878438748653604025658213664472571318559924345589757159162605629195373166110338594315944041132645495116919816839733924963661571357680348080652505199247004545308427825920842485775076375710481304449090653299981859530521122019829099660265193230950134682663718056731757733099588758591245030500946839394880568873189085910484852038842651530235424053456914834626664616731819212227961260336544851545762181499795735798262790972399684584710819238087420695598183768854892015178980087557553347398808129968800240326559457285448129284719663219561700744070837518832114211145176147887096146443940825423299040751299548557381225786433752895930503952287500034456977561466908247546462260242716410252754737342571378029612351237174108605886838824386298259155263083061218225322006099671293283150096791136469063777314631379499193923150727828061519791536695546721529249024190019085769294380018040476520084579034850476008817044440653230683484581399668761201626729341652664415162972177422980903607083282574961986843184033471025813168741482579805690333767120312598104708000080792982907984391897573883359351805405064803456835814195172911261563022975750786501901167086082750424228893059829703849461568970247051342278010226286547573154954390634327556802842020283053792046045103172564088771911120498275812616352706568468814198252930956521619672200161173470413959206683358823681657046108394846605832484955241035706825699545156379329666455188144643291721412778873523806208149719189879619293650288447535493663990190037038850663397393073707363269942202731949861693511216704257638372655554874988519192673594601241771206922856800165395155434261131028096529912325590258508075067820762487047901181163362882204235697773129341559120866238752088772642925157460081618352149214195468163570425057462858844448991461602081294056278072240638500605683127400028332185909066330332617436841659127578269582380156434472053372019817936459566673944871857440871818203142247436573359514826977428883385214753484479561137889779583694574301697569000293176292810466920064484479913495016626932099797678580791821370974387296336628916756806501263031953850629704615851287549008066617753202820866218497915837673088014517281778247518937552551718812066833693707017843855536857912773424826909097770973633485925189905618905038878661446715636768813416431482617564805954379489990842983817969599005126194905393254975419343150520915581193185517783790712750357592847399815330867996576348781879840492658991848777443723924231469326113969808185328065435496371780128897499140590122823035870271619691779711576041889190920700547113915129931133995995515451618697501799034806167079021739884196754477370214384829611941007345905584357564190990170862314549321921211349566679900029718445140434201908511628266077289707528255230038766987272830280976928487220937105797584038591878173194794927012251004791853358815717965841255238477676322200291929302093113298267058407883612348101609152593701835805296332225029710746274551455788728185336148582163507721453740947054488301730811318423910726264721425062487982776487415930434119897588400051842091661897394548120544689916672021052236838880423978093622933882838976977396404211122455108993744665301952648543979420212942583554479582594568026548156738203181003372202853677902579702400920979403028815081489930158134419307445779153782372400074666983266435276246165792493852790737104113722030695010344092654698250853436849460296404629781982440941071607142749266389341994371621723785946767039929386891380005817530932421210322720442306309999338242423735678387590380356244323786754012555928685459143276376710868689305146259246762385295633815129628011782398516078763323556052445382081471534479043660382132633601267914050350841006404036145948153444587274628117836374392688135319507507426206899483984443178426611897324561257584207875530835385592101152117689018190781399939032870554015833943311791907732346485440137126039567106812921864103892183563825765318402162108781904373362818775994514819235999568463823789777577018850872563345708077463096772589742754899201300551941333778300622220782011104721897922193612985982384012687731402134820050380968502455137941399735865344804676039240430579217656486207056836578292325504832087912613054355870998246814664196242542397169553052704208329152291656765296830462961597455343487641585648792712513929786618968571866754197870402109526224175943441746865987441153278780990825102216361112419612068157447664993059119118961926494513291282114657169195647516301990447632368639334774511932473758291662662610026066465095470996720301123386570268031868103596051710004768344944446967128043620256650581234250369852445308058895462639949178692248757155997302381368933655953439547753988695273584942423920088566938525924267473861609962226366373960319535676204235635063841913331890753140164663879332229556855259050091827188614855275622198020777875412962266658646097446638222254173586977812039295453973710240147906901133794098746670602062118187907824875428599828435446919531348827173416186147329692440510777830477382669629209379062489648352131870003699584236539280225776700043686461748362079995545373087850931643266670828912088109181528005678336964835579590909597818967080669698311350755974710104294938172218663522002075422264039257690326503496267534509696654162934890648905218640968493948288944087642114820696777740568860193753821627802339960586439622481219788566327539042491428294462782924360542687263325920532375259320189665308498671345261131301271007000980908422957003469700490615173709695048156742594771842697480037793319756279829408744984850947836989818490279637805418903583763533084490323662155870658295586911047017611288213060543178526279249546050932551847457955063420403551159072075240203537259598705935383503287050314703610148720592039095644919582006239822686491132661181310320329112623845379386083974556202254965904384020875709987255915494286741609860596297062557824524484178759729853705293523698592887697345533620341515027578850870509387546905882252437231895643037998727040310710273090678279379734170145666811804812837359697476039991100183756898391971681812649022692314289005791261925683089407165561680651231430694388555702467967296102452850682258943947037398827185525062138720651939990718274737063506759292396869725469695848226026066597498833248816202026026011157218059492861078213600151957450970509522565832474739070299277747018671057828398320209887644448298933447930744709076633162627199853289397865060344743595705183839041631073290198946935813563439162128356379809648571801173932499986525419080809845046227596937361262499675835610627865631835062390496515008803654549910043972624417980368838103362402038967490876201794738326269409967293639417424912147480318626735554823949130484769124249820032456174503764995080059704059127876043009247093539276415125729766391830561291690470560458557245383064023386004133990788774660253183320535133860338363156401298901821378159889358952825010888947824950985606648283558490317870611713067473261647049926281802125192729059612153261238437522374621490624357398249204572523204540307687742917007267637381320145410538957123219439550784156600648848783290500414030528161264318737039208931325573495634778187535636913271567203651841558615159428525264644626358518083669048500456806645370864031107909587981163441317614823440060504293093744619241552545846416525173072225107000595248303110761341342469337648163679559774828357964180366694646694667409880423661042433278550921403965456020831484076686826289825139060421388607218597361067230110034263463628768560266532398448514649689605850959512893695111636337977348591818449892105424338180100634241665215115191266000075069223559480432216028039271569981862189907918859170979734924177766694821042270965022358262464754961701842193097816938481963724829837575223760092708064790395578594843101171131456524169336663941412806172449951595118779532243380159925930003853154169923643947638385405748336548449786659614207316861684662732565388700650821172767648880047968044233596852058251358084707709707015004332532717129444456593912932810413537796585318299489241678695961497008176323916407278241529504311286051816396244610333941647297979089385144993189012077122624085451865666596912028987244562757599946745518107869037559815768829585256268414020437219574078478290205413092538832633569492172681038623476864705522546392415315266166468362769757165395166421219100082728237730296858113584725418319590513049712368334983765688504242894268353374183462952584826459782270896420470072450163269364903278194514326772413231379188374490442341515155186611674257993456747458705189865650234133853576421639007975876446120752383352329203539894526642643266580465857757822757425330155417441363639892586878206770225466939537543418359848360860153814408387800515105815059533319388256643052650180111610988715473303727641002294198739775350520027776944439231387610066386486002517363972966766264688896218512873724849833490797057031627962346545827922234065714548630482414990046055071631234709935040636572438583868617686198718239212008803223619955741929529588465300962529638179762908351573973842834591306120300143250683490190846425442272609941510725833011747411356239407657851912234402102977929323421108341472590930903221763430689567249978185004304845792555949194796672355811967452464304188610979105813919059438815738609649405229629216754244906694132529211734387603065684293265864956899738713688120067682626363727318074107677781679508486293977444389136592610328333686521486028346765727404933189421336741129164412588768280095583363601619086373053283956822218274992768891092396297926715668423995827629037036664307466544902999988649510306565607312007128193906010167437491719427578591783030594843882840243453477854919324067867665212451628553042905514394293413519567465207356630778676484638113084024308868702811758457472710628418864405362225233971610562253476169932532559589892973328575782914455370736453451638257723655216962604593085696794466501689472571000623838162809789279087437365124174160200314852450848874779897792989376710202177983221254678418832602186120975654914831091537685498342445611827496428760379394706134638615131917278969129831293872275405346837347975824953864889518376486914468448742941708964992858682439572337909423180357267429199782458091728308144961039658703340585970446232425551882131917742065705005895349803564690989137420373748346417449366416430345408241444484655004477353722631110158508873605556352127839238054527972021432088767448363600212084064653169297146479259452421431101965855175311198005635995618233401549707678139013667354426065017717535379038376733261356117404899605895336148959283749313883655284937754996578163103561221180925791454677603821001199820885631184335385438496146113546187111935672405205335201906508654702793770257310751709630902391412596185149373286195842333399849558258693647967422793236495400313567957945889160307545431588206016666742272881909537164676994896039773128354701314065730548063336108701225558778930658653663026448080564454824586114939824603907423801146260020477222285883214029618194301015955991743614395391583818387215443356131567864251226750482733575866566872009458882710935354573414629783811052842144894023695580336362706848673276881900554558211491130399857695337412468345757162200484087523382856706149144801274821097848391689573376494923380845295374794536899942214399290341804302790839875863806270724883555937062485446857922691390223038198715902299421640386845004367804469663756954339505427525177534030543736126652023290071213710658826090225748904484074895566149038565606660145735110538621178465590417852075787739537795334444541437016762540552226635236623034585693677955660544965937816782645934838683083223419013373195623354969601190328714888259985851951961893184123440021879727776404796870938274789464011096925342059838087497442369456975370080053686926056917120271323122255310683057780359227071219146049836271367805890992619365413948214372545396202246478833519048874427339744558478209022528889645380400408364315882239437771153080233050828076655653715463690633627112160597227538654766842040975372829059528024104852360052595818409497976194963498151810244619501094135580611671224471424738025063832453989629333217848445704813386661081327976873071160428099098866449255240062863882662348161972969867809189467208817401252330878052812734251199251610931410446732806427833316897825207903296615117852302902458488456655710059139622032173019810444443338653661840812800355241502257189201410828777059383240636429988905781866263269916737510776865158292667062831566054503582671365295404912960798805560432056470942280699597816234235689089490479047500886752216834699503042178361596258534419226553702834027251362836072072413023334274246925958445455274856817851279537187016400185885092775967780630729569164982974888508255759172874477758358485723041284548709474303732809169272190210485554898724457523755789346345752907318398109205797844681580501406549086804727028787938351367830357010453472246994087847702943831652344640903280695725804842856820781970357130464734105940516017163008580092704045534746758916978772093139766409794760756725260304172667856633663102852518249445128971890357979279287013581803050353805939000170980201311635969446017085782320990914322570674129728455049040092617500406841289790018338913048349259422981126007031727695718339997204316838677819969119556440822236995184632966414800273406061755903543148563557283128052758733787745022241521206010985257418766800705500496706975319240412675484834844899152920105039669344720180924219574482063596704992038391425186989229075844226776008191380045133841883477513146137569801819761132903362499877401990508181749037172487575975070828776160645404448291084202992364980816595519553670505552720975049623370609390617313851193273787979476597067215303257562248996284854910523384131656410512876915998788624969801865137530307200197166355369557941178688456629076718248694628356521694564439166690827415968802439802315985989614334062406982488347868542313068800782946728087722281080263707061958103270162282345414669564157016308538305707074582914649269379503964656427987624334159677716040100278864786720296598891268158393373767115284770762599806868403958335743394244984223670641453119482430941979129855493855898115555215353140613515514734445694814286708309414308993154370267768643939293485739758024545567186258554585450943585610183036993653448133810865689951959111810680781908494403648510536136963232438217091664018191788944625823723797153755981433399072315919999561333872019932276931111839536738923263365067970347178165826178459825057355846434452229691330388575546365200265192137845173583182813158121072058365004342682715110075270133732683109563673747990432881538993958710507064675477150615137568971430295102796944518801332391433769201138767938396326490646009422929661835121104832069457572841448121351197649761737620344611372076267656498594344688364176627275719911809308160236389593195506451130796946328993147720705160232015235597841075616032216513666429010441963312491832614870407508027809152656549763744022795650850428327444270476518959294955779950583528894055160456432582025452213982155398086419114169566692494826745471091231185415443015023318989720719306187070635213342447196969458484706929536621952800480367046059718861476276400973688114898108982498601470809121560938190662063395552888467305457063091403889771416532525567598847245387605065362902087288086831583670787120416199557934357466248593582453085537074185884470911725013854704683693680640392617561750102087604100061483341055074869262074894726580335250553891556733324043861506607507695877620180725413107784554286920959239817655507995468234964062934510224856511483711286740558827317183201438110407333613129956709685358188970850164407616888130845451028319120500533074238996106895620923420611790670510719591259356120598803212239300703010082330715471325488522147994429347200509146062508736495267597080014851545909529946837639047042211031518010678661283740170141390424801490786790207991490562381763214967268388642431358434566987457135074593756697107602929634196580851122503960221898263480735818288932566540867606758158844257612367217752069723916936031633818492306713634247483354432986334591711906700620920338338040332841431873924976260790341432697529151971827562289242889671431691147131024550563701219799437619370833323654645299134294801160661568175237206692490114573875738164503120796238554083807862214871301673718051930392253524339204021314103569613442061562014502888623652162900432312039291956674912817245784710857276612805632102514560925183939083842721521468293439565685652575088252158774557946260708217900681760403364671850292212948763276668141334050872861219121887640390649918206057874530575284366066588914789696738768764249620868928511537892486801788348666700864826764415987664838842653350381521911109074274585682514263087124115164118722397282871471707019491490693157612428748334906882481618802913165351192605898124708699464280628451094300820151827256747450846563386331889558181385420037688467578466306268474119442351525978615335928425641579874493997654206141453047912707342571005590983289568737940833901869962016660714384061135182559982461871340487294440352964372498339306907478604338317967415654927458905860541921245684348050286780364772090756419531598367889298029861597395539729044958788729481494774264944429792847033024317907487418145777200597779324822060299119337709911544702924193780943687249477694787565449564130675127485039365243086864779577499349033743913500999798913399826590608005811008608916256407105566063773168885528257747999366762985781302950372365234349525623268174734384986935167665803244614914337695149184110813026881057810493250380141101637652617106058179315474504837413611281143212464854335155187111083632446067823793152791606177024427504452697994537144136653812152826618631650430791354986918446310445724780024158486477214326718312560880553971558995741650054283539763166337199695550757038003958775819719639622145672336212101023347051881626575219579542158452789336845692952955249761047524165988805171818706192726349082881278982343246084923472577673975696977129220860333513226233114583089517301553890870460748561563557714875083701636699012897756376767927962212943451189518526172242307223900705084194117584506053480329418848667426437745511137710978836051810172657523309683167728934145287987691195404553280039424343347156671243004358918952727612938555533537762425632356738681727783099981509803797851596630787900126478264380748151210840208266626339878113432824938257705099811127127043583759108975214210572985331975404250393587643951808060069825921296944731555610207961224950250707537494972819502504663669880234789748067274514506865010882399852327523420599091260505808980928058001439118030034025874479716436424412360774114936237736080461974359756636411716305197682127913848719901755705614255690207391125756258032078632048384363112571596534695575083723705484309202506074359105383955393786153113650920925144901756397023651756429384624521258456381378047986270743774242477456813061750986976233278693118680853294156108850825861831844302006146619287382466242295572685524361892202829625123036113549171401257617022152822641450546437315484374507654240342235113986932314498252938444270557357686844822026823634954758498415937679487313369508603857804155011320357320544899932065642100113809870581638706246485418234608247436828026654613604609201980413248184613530189377396594003143419792946233530693218325575660593157314091858323277923173888147543419171747442029988789587988553188710566746360745833892652595502155195900614674234310821476365472655555727501928663121428768447963083597443189086613341719638153581244778612946476600101672083753503065328682879305188203319754215714147760471925409233907773448481740527381662333282488270833387973472209119500728778083387698683695155814774899316341742213314557433043124166457512448203259181506272282458164955859096658225039806322374718525256463695145721911295931268897482360463498184982890436480412279182323010450304952812401156219662836390688217084706553856717137743789285762928692792869753200052114581320286134639589483898195317504193641050711127575668214733096273258719313734237517355630065504335584216160558109709899816677151386498635342926302076222124252709815777449807936411681835816292476841594083811425814079861035716901039843480386893916981049299057311226353598117174058958533337118229011934917406083159615056251224821999361887485627366313347456475676116656277007840677101338979155370258951847930018156007814108265282347070248054835108616005726660853984267326635083008987585082952817454469978021460187377321663928986432072650103193296955999454072665508099102726520631415601123002631522408361456566100806987908099074804716527331061649882478320734169076735773248794832790486004708226442190689854413223488524096872964080899259699351115973718976498033229201864069935691811299297167089276998939096316885925627445120298300757745045855077824086311279947934923307561798299904013163097661323017394779831041006006032013704608519071690188424895955593042535175342324095169879488532720626109715530858991320226817111336109027548180413897790894207653259458557244169277120212891563105131340085973124208822848737195141947191167314948765522024819446650292085665425774378457198061995848444538140748247839103083434897752425279510858165799918803130517415709498438009305145192468662401946762527884571123023249374040213786184764293181664577481185851869380628217674025572642061696051736587244102081244435029104492625951194319647047686877091658951103066574258780736434226634226995901686395110138518535969806083496570291991926084019669524230660164235034713296563110150747516872378131081295611924136423766393796502037272680535533002035286343663118705772265331603433707602581222207367026151093852788373707197562367683591013051808022234823667492036321871908336366983466447928972549559720561787613737387289314777791960379360037200132460739065506943002932604556023129864841314002991279964141399183931426447174537253074125700538252077732996761079486741496766287103515591783341683867024786704634380333331147318359680519893952991570516728391741762550818882314934210725760590642305375587998240328656050800845621813664569147761392938063074233712876209503124798194346304356618336850407365290757787227043170038492839342757716213934496737112788673757493441711122209032523156139618473700492965943210796849598671483345756669266458002571224479775704066602059591915063309309855024417429494554475461198950975119044467331381033871067451770162199413536396244472101153492761808055839084633157037565598935727433209223593440416789510358905801372361683359876464521069960014248578705465880271193229961952726297134468824161905416514150770495770678853078989761153912808963467596189306254967245473292298083072611883363501811882227845695822214604321684637173739430465049491552556442959892471012552964519370768803882537833156451783531213015128048075267093915730508995773594626143442355114801210661914969026970995180612101007161102452624830016600528169393384405902787839703851568521950871029631915348322365333800237880889713000533472527705159282622210224097851922360652284466732030297923990104186866312783767176729097044252303152560099435689625204376942346259457535018338719143499176377822343042344110959426657786720176685179848685132390435071856473223866806848483451549361264885490719470957768723824406575640685450851243442399363476154088492753744776262564739527120557796512135413848152779650934132026748228715367817299121182142461726954152704047791395184778290822156934233540374722757998259070198552969933684281377050415489915639306227058770465453256745394459890467123817218096128497678508226165404256776199111739942229123972989723006988780142593925976587667607349744666778110204585281646823976048376101771393239617169056091228671578462605331406047997103214784925218460338145556686251887443749098248123297693799865556711647401476418832864813974070547486946861682629906469414915955967745574194281166616198756893665442143640635780101744243164872304483746107128379492897496382859550444325691006264020482748507543931000961358674164146125721853922509841436088462838759569912849164927810861293906290177834874666306735193801855330096744621915976027178926554608449858960222257598324456569939192706301673663969330471085402543990816613266111166967285437368376908393120743936356929828244861309985688068849251348044738467950300596482103806689952338532271361401450160914656666540834899572040510861908589725312555713378525890709832219071773309925232002025433261252615914122176195399769248016519362746343941090654083981072430746890584553377593249884408528950727914197847586250585709075046370810483859335125590916934418125411794998105330006444356668159765273540455982141973487480673555430836665154208659729177319990058324560767963457757960558386936867203067239441132942640927277481062657747349962533191127166356079606491877729042977502967118058708503519472810085168275201156044879033537504994240295889131986513063880308695668237636535058264391360286928850481599590708587939041105181125470185202386777721739167970968449399615862307244135893298897887047077510588996780366594558043676328765678799750669412504403071301593735376137674915493395276480811034311929695152047924204142688100194898308505905902673904412227894705306952276912857700686429823891799853643380360730402777406782352372404866544749583035603901204575937594137664401840739921007021389939639415994821866269846669993107622866875058027510016582366724223896823164198541062007751430973058170872491260414756452209607029756451757947194276507554510795079050992169886651524705321581325102750613825595783919985680385196737553866685868876056031254845596348950667026964792846249687602650673226319847741194084174410378305567151949177508768286622291150060446767197886926651299610724818205146237014256767203201828670757248771017454256621053529898434974749985068185004244858181597707731232735019471278074031362752416318563569313009119457198136308889012329354985401330315672203637476032728445746538232903459986871278859054191605803528505858127259665184000456002812584219860697516716680179549027879353912988098888028300997739380999237526247212983147398828017401070135171288291761041947326939643750313091256729649277267477481896684543063909164961632635421989159657132665702399243813329182570981380736064524342210206639036725025026436169409924995510519392463630327202147268757497063685100098190857309078252454633020019603369636853151690569650293332350866221410239483621397135443727642826845741298210123788665840815372080881645318129099201281021451679246500037295138613215061294655232693057102194731969257575846242485872158550486960063645159800083193976882309618723705333316474523001447601907254338010037039374454899742701346368747032895029379930417310602358437477427905633145223118849019174478044717699751101217801723188177451454835148760838968519075306401496800836057953408329540501785724532517095653194500207556386809506143926017931362731266156190172898157755853022878634036242085122317319626880085409289762331924532005679475680465039473384848739991253807378180056016262121149724107434018199255167677952650048516644394590108505684992897809022123443175476282877382396112968297596351786862909056241276909048059788637382962230762575513901193751636041318166312360298443975963426525598354959449644062496817545039659358764604447082378372677612326234258526767335142059803892138723424312754808391820207148963685298734885193837015937630601119493694095437320896031526995869406603016541776777079753611472957380871492472408944936434046088057084522974292148279189455715449808305240508264632577384027161037800041492598644357607205001209592141710976726160045614965568753111453963859640872331773783932733277525403714711146873823353178567503504776640169022947630733513535224096268756684397278351590548027444710663232480253830994995107499425031425383411549582794290454653439889133666905227572702946051312909234067482650200751623428963313254969323188974714819020293220553930434797129259820776032206922679819588723716253639284632115430167074992104850792026531887200961946158083517657673613148640583548442630490104780436375051701182897228227207329277061375953146192911211302426517257242706324992415348270429492058560832787987642710863944750370823770799752689278356860004944547934005537513074566482848567211743993653422526080837426753389129145476579823954186591415942370454915351295896075207507640465360385582994329251152499095927488687209370064926812621269092033788944100247980159449335047860734183404548217398323394584973178132034302085710999542347478472572049621625721973873527184980589092754067061572501015120669914088524054466800333400495708785683939099229161839033443984501511527308388554260491646102463213403796130158420784451899862699899230427502522428093486570189502663672865312970935248850884853889247711138655544772233765266597854961560346519241966458221932831826829130916353375193664967001062238947066127535995600815446875243833320146415265186104496989772554890147405211943104191964941912556887674674337215620528147978802034366088592667678538625451103055677959345172208470917453150487149193582690992975817903015379008250903874875480613438521580180593690111808899312431138790129839592021433949115509964279116035016444228552176503990962040212459509096133035227474305529633239173404455978926957408386687086680282898290535208556079785796090653356323191733961751021720935790609931105292730965569599700699058268195120884986734294644372794265575891611961000003931497393688881682398609395265061921018247540062005727029714051285640788017490277698005100807101916097383470237897295840423210243553805004074180524968631665725201539096632538536435831581552378114065691857236890266087689967359372428478122256760476571661410018049767671391097552305385971479844160455205680100497061845719961482272400263050338823001872177559274638531123227333548533068917558957749178112659751328716121682730626886288025307449637042069683920073326555542820321727640074757606495486927053312916309215473567788265578001069338792689052341404099463837649583901788893023728452498777886048687757913887415368050722475546900592670084274909275165040233590581235122834686763452852713663148363267988802690931012260211838207338647216741718956602988885574851881987592078166068128148008348328337108073535073471430115815204592629473229108273529263518969983819773103667079721929823240295625668143204374069726045143363589774044915033487109506433459037378879657506502681630084988232362308974049009401814215298458693912207644101687664010990739848425249014185569490430716634479893839829759981572897983970736230964599878393703998649282127646207333875758691857360728983930436598591170942304178978746014399413654665487421385072744692060035495567820023609385178419375522777816536165021964555343180798949950027746702193419830613303801270225570839338036077941883686751460174429372130532435413442747586014172164497835724008329034760027866546339413928617000982519584192753775977465663180741609183667958310278242827840854259854175817911756896858298896923998836269156686941021048193820644910099959799762712999683566870786285930559848090785809035505792850709491787608603246227622564371037747158961396645682669441197419371884708304119941584903124233161184070776135014329324103624755705760714002239648154217305194266272701909724889357064966500875192068872278839478097429116072747571913171726245141524652749210793764234163873841380790683555248746802587948843522247353074425498751148249715087177210143649702710122043605558852448938150667903669668040792589046127816854012987641033091182870650462528437828352508133893750778581055573505931869178191349518048262074351960920839299444843401111449681467105573978675145356026292894593452275954229865991516930201457625717332843838796903056707362491807895716099383360405848774239943535511215888815838838776492908606089621992077415341067971059886080824562619073855599924589155488715232743300806249964347208654803407209651792267788028792062812875020339497975605034721919303783141730682769846784825605844632220748547599125337777096202422967968724858447793937646908302872410825267393363074872583241527703585649142095853135518581388559740787673065676872717850917707394591562419280831350275991551007874378863325373133168175250752961849929362975427426298371778256082018829401001405978825897932076598444632101082036645715708013842367682491438457732058070880233827193026999904494983581140381928561286298076615391648923484306742446135917229762974873389721585578192208772161456138986916939460327771713247815182059743132525758864143481938026679780376321224202616733886437278061322465133630336619811831713926267781993958286089281020876683539757539061538923889197243826354272851298551044044882973962597137990085716137983017470927515687295820725219819496045261356701722405827305775967733552140442439180717215485733940310339287412491293834882063511198487288190527130500790728462900119356775747175974312587998446475217813350751370047484024585706184042160519769520631084451898461960546695490250385107246405408147297528562696513439345726353711286463915223702987665818302795535339096711378809732200225164865159703865670290763668369996279987214935370714615729042139727485133676818203907088858139837564537980778349827483235123768790993055996033953392865741614431903236199178213328164230942907129862442203874354292590644426220509538064902858874821989602462104919927269679879815015499268955404857305575808823015501765237186298096881280873341354865918410815509795459422464742098454115065654820805853137619268171052100057908852271086815611377717940225572694157813836028214778102912347960761545477906162418085705899782093350044244774028970119821847827558677909486412124547576411311497680724099633055950105577391923365929944769491141593087953295220137844622283201688073825796695257682743038275933902869258851691962740856730736370613582361029004624514618352952693276134526781810907896056186312069579887472600607312133904796694925448394693353626409180631897410182334986175273493406121268413477409493919160835460556071435853215946143624017628621677437465364032626264069763137889744075241911400003194499105738855446303577379950429292303472258639802159233929595538984115996213313759789341144497440455675645586317382377873265840991626539238431787888197478456941070923862100345383166986055309784230005493652088782017142338169972821680287262346374902962211078921530742560550984488926157492878835578160745743229789776405397902672119652417856678339273030344494853636913314898538325778083007321933485088032830887507618767846159376097203204862472937922982226459821697120872934217998717948194514146027738804582636419126761483879395990679715215305051826878471665740533064464796347952859541028693825995088042272160017092243513796855692809569893993472986433655616613619969633276000018339131700977646139117899373700212191276865956362280339758217726342787902832168993445644393301163900613169455815764753145951438762778557903952179243703171399001136973795353279913535627554639990994891891638889064100453835373840411581676294572945266532553954813135873464694441973608726321050612109566703886795407043760284244297495520558338444271904122448323553028876208595099241504924257333804911492289980428683155093407189830732544245722180486696374159865530809071692257107465385600765393928232058870211029219031948932658845459493457132126916529363241873397965623958192448888253855133997000306208952419079828428425841273734943802033741655254656080390634011669568537629269190224931066813976615839858593578525186053598581159345075765224519826229624091643567359789079293210118901580413965076048675648090642217398884956353853261701123963807682290943346646749618117432233124648874441267921046960465073184092411766935981927703608218083521173411129684707667704187130439224743621949542317125837221067352510576833390664797885885597259409348034493119246500391427209705091705056235917043957227073037326012954699934750247093325439285885115863255996394136537464581988374947166234931455135991891527967017680888220490090987299350687860967770525665065753197580166658116438048212352435880799703095188435717827805383635604297537981764323500430591297940284517231392465091112491119457895921064075669530066143271707140836725498230009352406351224890606508803264562393353598262510705315501995816914340599187171937309792369354428334843118799784703018261799333471872879830502451131958227457840542001587831288797122525341232339201904783340252123082135297177784270158742526774263452529693049369989247939873860668575793981839533385348535270657151301156959061534322057095180727663252510217368153335233511741412591818890109664761681317088657277813778464532489147446739785840157977479213030203519007535802828357295350228179419543239669689858587014152977030925038590469735671481994830483820023350158321838242892423075649850833354912500642295733037833206511301335068597458909691825765657519647219027552194554159407821160210580727258599630267384005105588997712198568265711030954447395874043402393485622222752417724925862902754630985411413181553488545835343492609658013197489054769745814609448076122043016207065534080158954897969231154389299463249094214033089957912090024809930751148599761651841356061282903891871476934875860294243742193862365455356048663443421363451621441979653790262370640659798495464263631914826172464959074494139941549726187153906609351120536855554286430989220406389654283470509192894485807868547532901804359802308680657541482458574257007352355366279144951785830371354591387737836749104416053902142930006357234770895399051222237405225353343141735540354439290123380521737737038189534285299202676604180979790422460656001086647383351756233024926276792228324023757412625116502925765974379315419755795928443073608937088678578758846305956707014361837021290213673761487291399115848571512668437213311467545621396252237312082065584894972419735187756102105479935554676729200510265394417685141374998457110161520033009114349665897563000265085775646340165761070547622475281727872372114518187019545957934646010619687131193203759170937267485343776653007922889580436458213922280021698371873831986705041720057928284733247230108665464161862802701274517188084933667494674247152332284807011918820248598028341551006559235165039997078615829643373379952855043869498996809364324973226755667341503801714702351466523593982071330674867014681885986952863983731356159046054197739151336773195794038302783563590112667815310761376881500852718580102783826746377591481305712343886335046882147728884615104741161168407098749321905572296415389343894098032104099732160734380443150466415632744697653597057216350034839191491673558881498825871548067162146735083506905041995647024436366442150527286098249992928624822297042886610108496459363964965461643875923882314724087452596372956869342046693793730195053221685145732551726166781752107498062473716153913406544647303066890831994449610056145077369334717194025406795715591770438056242447611861541750904643475428229439054146288234716774042863441769011298708628310094026310820205366442596919270638055698225209002622395942196884755919845520088904370897378268624663729508346104732651729654966052070518909955075539877288358643432420538824433847033862686244485345141566097101516053049854969495565875074792965914767713700425333362971983033915888911193366018846325689558061155874038711588449199179838239349487851765171389720286055684209131689480336976148546196289636794824663085323318574517017378699814716699027541542016975134302782253656497612864206808570508114064704581335352355392239543456822717163305238963951270140928853866002329632343847987886567542730277221915190939616359406187020527536024265187072398740778137490392788113017698449076679364903639156101253313122231690443567296334995687567835284364754219134453767044375940516096981148806917853255400237740863819393668168222405619547270317108541467909661279811475195173047450112834537462734456239535772259180398660437661773183905408433844546027338664501776915809956389637989995958786390191815443874190882854006546552732893312241529504774320634593453113502208880786852429309929143303059036172429167995830520349587032303730649789620556086441525802041825193669111387237233494310350516953103268173182400328755415104179676507239894111764913810836104735063820525591134055962516976626507246229272411160597888665804788915094835848419944051996118594430824879034101666375517160183939754837638874201887515259568981844883282711989613890759413277530152596552820472789832982074460250289103939830187178116039598704343333389642373620695577747561349697363158305487061247426943662794679816991874573513083397890771116548548284090787931084075130422372219342354943094957010905492386287357661657687849893544495121599351415213602507008250542333373430123872526982791980675740063003764786767014414003817883761804399295334447620093416525455384673561237144548286398763635958071488754375791686346447674331457476998707786115282312922641550630647313404545121875268105388493307998482175335040279972786714507494845166113590253521411376197852679576582038667713195766014782355903813267754321842662122536710347158683597353836687889039925787028094563928231113593747776224770513078689723011367211580223725722856933390150100647524586963230397195110082486978151723398343764355017303125168080488681415414653563646918414198969131933473248353437407504452465007139451381922200373150367778159396405214083545472944064857601945831696760173815906678410700616949380086538701243307345486411113507851391694016236398653535134009628512741084236674755700575594379034390684924873714126515415037520656019530009193368139084746757353120705940811579806053433527258760316339880785836472566680766629102488267716256037465225887865801530025545839210872898604733822990922733585307093056796017201373520108141840472148629460612408239807428097848231193437436424170677507935238340526241279337437840839335504244651583760132715229551595296120794259022034687894503395325620836636993622745000416886481059083123759130382435479545759756013966570834927598213989184623523167203737273708019359044574739780166295815396395753747333621254548713068761189065607508513165270093624526816843964235112452075223980671426775786303260137143179236132017730314937176638065344915058852631771786392275400380756337834322357398664199243112172061545863604797853682391343080187551700551847309357418210300808399754415532957497945360131878838010640277556110738770125771768591556060261453408174821323604588025901249965850558027345046056522938666894282898015164128893714754711499502171586762208201348214958440762935704432938373606265728524657049501165806532366744471556081463017568996098074625791221907106267874336801764739708047520820071170221029356582053026715004166620453365016314520080871240853882515550588313962926573752314408623477233661475919385392760446016001860580824566417904908128999333309898766580565413212869987025343593138948611480995429493961310916109972184176513776104673932904517992423624688078983703127458961099254143852720016609123160149412638337553537400097127930896066375642329726571329227065212835545168326649517539289406153265822518440347187792474825555937014255441641889943776542407266182364984506834664086447723873170510922802456541485506495071745704301925807956990879862853651916070175100475148777598281959264367028349457764497022255153721416333940434167874833540175564185552880034071870589584681801215832706125016978437020357051876295862471552323070396678196253065811004598384527503916483718237171844301765197071754043656414891339049755365767103314266836491344912410476404799386777943155549025747926739205088472409745216006568700424061640043532780326991013775889430050040579663658155677930068853780396982463508785220739725288807715904743408932702953617712707216127793479337556473329281376890511457799440222916454610770713879807172707045900888085716001171590310336564871057165190624794178827866534208818538381136346690531978269264854581379348338648574367473296543788813051115563541399310663862939417823617151874980709601424211384751214525792107433445019648644250801793672946129060803051595978879752908111169452122664291187008604913044361744276970188084744505999814585071292936216510789366015717003589070067425236939249853809284038260799944042304178204043010430837547635896360463002228009807350144054661572448594589546710899291189565450431722637561619575523111421938892558727818426820425106212312609279724906104312884256875516796393999866649932523079491870227490666289283759631758210576753236586642918280587663918973073103712000749730686194722276458617256533680400024237932074991027347096609417317161523574706231395041194660713124306512191868477248082821128307149587516930715981634175795653941135911763461761522427463851398927156855213132486590246453165076623925115327585653845109892673787729480701044937594450782732945963847903634015359825649321839410542406874147712095962571547475908134594344727150890689098140375974676838336291384300080744610404077732357135389261275609714973657260871761023093633573894390667775413178928460932947166817961972237362722048546466424426870445743081242022406257452553292537717899488491626217226324654280282849109774391194933332115483521254714004826517977133691904862518600892641404116389922967485816260033757079987385799887531951910869473989740210689081596639376680632457156431576049780340642217099505522487701005175014109742315646972704802449330885184381965144476225598299285662721373836140092807007898518171064851521461945837467420177854637728701735726650990157361440194857590032503409189200408940269041187909646363803152633831921332956519480214669418298996363220080834650449860092745190303041162033418054578628869391864403357017694075954661638437145321139459684421015537544323916613948601562309909969745849698302525032056016315069116938147554460622727141994437792929752580447899238078663790676231843294814425067354739617708526114119397353036228817884111759319335128382424713801132690593427193478487890758313855779711862061986957724950532344389203838570496287357381979813789110258491175537394219623259762959420126387553376416905014692601886031533603979721998356322121725527302999929195402708451034848719978833449721403168476165978995257564568631936444858534978858795482178017064213460247455138653844527215028053280156209759465325301400937970836472355678777710396090937331032955714505600223954624341106846184266906618571932199865650168802287369504736058464888464065081440915812870163578703565361008961128373800070045774656487883059520426072297367899414998867862367593894786184172625044594943775925541929871074461421563369603100843558273279570276031221780545855154067023607390860925282791090266646312931791105781483584031397326288919622885123020616551182220742465028447062241841728317902184741666479152234827719102028071214773010951244535873931482530399421471336098973876059681843289323094143308611544271753193545238653063064621876896207237514164277930173401394983980951402573218688173753547210222004968197552058144629817045653726629770482695180975084679169420283643981961432479493624937480445105102216746319659817417351914399759130996458653531722230822750382965293528329404281271597581635038486225601430051245549684267753907749296834413515601829162168609889503915419975585036701879184619535415138210764378673617174441226445494969189910616603258667966476513260154161581354499699246445053984814386957542705405151729677467672737658991716356252569891591565584985157941229923701795453536340612696010127677155896281532852823875078705842609700189819543688684156639292782762617862367011438080559610828535475894111125594668279176700967418811188849096631971616934195401675079268918032429392999074611192754997101676620619043631480436758573375591891563974560261849558237624383549090502895672026301364594010187846666838001678626160032487711867443020618074878468647226531960261380895605062965073776526245085597261816223552641540692377635832922896539324727028399107536457546297375009676968035400562163640438118671306281714171324873821542510845779724675455402202978133097914345427378844057985210251757323694904215988274396499384953237330793348556010223988944440395766821014607246808445610645683916685727254808091831798713331080029154053712788576605752778607734678393668954764651585204265137084893658383339205313401567502175454597220243791008714389112408538574517278918816483673701220565835745862028587890499557415821034415025462347764923763360553242293269527774645760264705589147474132590546808039203297659055071516041909372224956375098157703863030166851743997233378527664235290904295269713956921904727203667835176189381888078711184245273646139618616690024548630606416278861838675426565642725049475804356006555662825097553216439380229860100452296651183427241769945221726520954532191547670067203580204920442149970447167654354614905763841123995482267876618319739938232327766242985189300063547960949351627184693120465255462615476072700541053131872858797892052258369807506955443104775030063561063477285946970407293612598852903043793262506568473082101996928586218730336723004306533890324341038179181326566087230478035305233033413672832434578687415878225293803074362374675642836883134174142974476964759249558407451794836494942928870986368890223355217048609820129377666830504854104698775516535047577807530099628997933310894292175961535046860439949577323071476827349191272149016541672395220148292543903880358223503483112179336688863109821525508860820047426312821124942944001265453624469356961447429437277821222784975461618196089116690194888426125568782413872313743247838535616699292381980354054820782983148381809664522616660698918865917198555453334591306380927556854185885987772359211711606382175126252468590149324162381553047609413894962759200455727009090960224400162533652560207344928962261557456305169391739137791383836622604907486104779007008702719893444237190078958539307003992596480605664014296594459214061529884063454620160451162194368142366055597120573669414188562322862155225456068407171495330500071529632712933199626078274665182673571672584639218736249606797520367290431174358309180450605621570175848940301168254686375492455217483714521750846834568776135973628713413464863325157727142306980801036000319769726620290547433631685320628441825072192395527751179489716798399973514361575513897525952896752067510099247342950736347477951325983868624785912020335264645057186912388246024199525634436618467485737434052718475480550987321842781508629111710382764013307793800879169957325725272167746220124254295014816935580326145424549382388165747005668487689015982369601751135524337450375070031683127405528413270966267059336918135222527950191854601219725658864707895345748261251606255659915042175227108429122866872003463924713989046380220640201735712342398265070238341057692001146878905640421901694849655874072507107917701763073770940425694157585805135094630913589948251131256860237383280719441178216906735684506397853097760994538905448507632616430868933578324564293701470404038253043514153350240545649815307685247069298074368080517913168188243494682686388499818512260206916299187936273059979686043838141753349720979584501537662760827695569846797390849375302804385439876382517277841340527496660828922024291067825133719012737602734580395255849226619479973411463364598823486929208301020470412992537632530848725374187172742313510930014915330944120632129729186774118753969535771753687924115281905537118489103333217460257651472823752039589463184547078551562118761033357334185794617893936921574663024468171189462841987372675832953912770999394069965686193319005206247784128781167192034275859936865250907993932725823257846634026697522213560068018686469919071106384692855099234976693719216011165278918939238604026724144526324689588653783660407345697188862535039637260908212316067943202967921337139524400851267230884582501410991943541752413702297985581229829312625477711377053889564515034925393302165331623846177535571633923877185142354063712137039656367388015459543002462683242986226245861858600166194503417728655869908070934684984933729230690603256184534916094525998277938759703362200275292827068061590805728975029386081124027814203272152179237694856207934894770709982349311868541938382521325404663864079790786118550618482353256181798979483333703922407479038961604022360591527508575850972921306787398647878260528099090289677632840288251032438424156740380736094401780169764548378584582613860175624692988102019285603938117381492060884355754089710982033647630695076039531757140816673877911557675295604103963612538565971105994031079392530664968577629786362263807666100753427487984660083389497381548954928523430887707762824054302973089679502168709040188691846628484762776775715950459712086381620271688665861507102589492218099370885418512560930375047583445206546762339267243732190467403792612452017609601321240256016433206460644871766024947228984104213148607037771968884833415370836952907273371340829463064308934811777651621061439949346968901063534222826114741577888941539402622795826790841970770804951767202567046635338137313508694740422829478620588502942518563866318935568753528220263236378622611637362628408551247084894414130974873334446487181248782828569557248873113297267398234658404720180401785944823631722751647579756179718493898319127270333451572535110155731499699475045827816201349157101135718944830072677397118264886214096735035078164058820731670844796657494482547029646250920876408076425774495312005028147220733254462062181185946925827247729658170882898385070423112133257288578136462276824118916481873219339027354436825169823874144823252198315756732503376022198073698200599055756605957080479897254170382722761070909990228418117888094446604076598749956134191567592189233007167247683556870591070890049673709240413566220146486044664920812526908166426656510387321249386103331507943729614910797648306446193188424911549114153663225363497249771831309857593338200655961930815920768742015293243802526728032806582764450315421057774462548359463555844490646736449001423206788686922263838514870130485736039867443137926213125087940046555738171770666252889328058307816120855810752369902954388468535220665462507642735797083195233788940487265839734962172708999975160473074090849583545057326296993498293435519833970151609996947530448199771551949468708613869924652040673733152562448646865861365040408479988942228176485566137679161762188134683730371910774346190400265993199315328296773710086329865977827240411259890664008566059545034030391345035314179033221423169801154521461333115451598517014024301098445920644299457643515663249540985092777525633005226786796571973694948042890916640959298029037061522868815384558623248312768253649661877162993303326517421669833453491557312199189087377295168331259465007762957681121245603740412935099607549478794708249052130916524805459794130792840696651090101985778530253380021136805028216343866023862550724812325166834887431968769870738827895989827348371424899942249993871099555734921279182958022170802395735702999543921932239530804333549793537437782760565277871336504265878167152771620532615480389569733096946199131813465934590975574516563504838822494785906169092812492094750124738299710701898400408096364165533026196914596939879924763563221080311086982165740133431929035824575288832959266056325888215962655211630566387072126422683229796136370882497926131308871570048260784498910816265257857990939696216128679677024384820934386706374497646373732294579443753473861546265998047296843125906701124569900520598483153387738789969641839459990456524684196098452460778837508364451415404541129319835265821184726408766674464181923094886707778478825832001821373669013392100455238532903197721462181230120367044442029189697749702943363152976745490699305195830665552228520995248590887721968170533944002712915257354686299910718287198645729890409615634773219366155238215289250586021347534971773376136328636806616189067246722004958855397991101867097270419192063820370522785639833205069572385467130419516652076633398641969338384649807781128252391924740104008184439220026731769750220729145831086512082879840070513806382757760110527697705480464203374810750406870995331114993251960651392200836129909828370150604868579229927144396317876447818608970701074170210741925241421913581014838320228000441018029189496243058665267097063935822683860161758399701435601394397122007445984632892403003810205775754158522308092393994913671037108871051946005604421483565989216449376956640961870730272017447004959309333938462556082822350315454974526517171813370901345975811014346419125348975663127155281416707585267840805051803319547546429588116105645618657656300486123642216168432643404904585014368786469247130037319690628874488531738402009238717384545572028091864079200324527144615248685940686957006445489924423511559297037470158867862449453030113680997777100333198562880865465490103938255470987065436680563981818659014602335538023417924154832771703272724278634981344219606270786620597195714901297615094472483124147387036304045236000566385142058682600890096015985782686812370051452332653360927536349256980042622590343791846691540242890344115048922439611013833749612568980826117402328443751956261876066084986272314338721372278909417685689507022708634775275741565953492128474764514906316653865721477499989994983193433635402697627809517088135997864881379026184409328379948309736961396402909563026335715892832986367542474042432117718799695209768231297540702221677272871960078822878714853819977330671482026216942779972760402806302967693701308396632258697752683988083226901935709585518417830617803174309546789766683668669852248119689733993936535023404918480646368873510754010156645657340701781312423841340509644134177909824516869122241072531251014653031040456608293510693469376575465477215400310696697704588985363697191518690230680596526647063526920331256096690129714477190141606706448376378825787019728453880485391951971169023195516101118800198456149922422231258153045669602239736319711938967347391714342740700859836909594507437670788199696935026490663643929759945852696466435727933314142092339114555013085148115829298900136055879734511928095673510014739171661763565620634458417976323978761307355641335210554576119546515614285678373744973612874333390843930130379903818683174146563579952530693521795910586455855219252514661836242647006957204245829757400625738715211935875553274610785401411208041902482597063198818595815887059012434620022273976972123976236164232325945360076590888023544923134280077275790708483424954234043404560248749020693519213389988556216486126732121967181535396245522557065669219783907534712458215740180676815338973120212688451568001245630809153639765595769899365386987273525934741083744785803299713026968638364733791878531783276615203202966343178607477517550067804959695807780866440483248605744027241516612023122086128963197623850704488138496925605250586244081574370825382012062212941687802704220348044182482536417888229051144600340042388469503971063402896774485549973755089109967858163947071062298621662204018119160314272300554342001092846540094237149600125173987270335053782059349379157265622757556041008817333376213747755678876520885271089577482032720662189351303523824935615761169561849808749434778656424146736331979453082029407224962579515487280711949068557420841088276238883926668717628435031872243623660329813794485546319278780787134513606119983393084786304051033687294961755705512039291761797822625969621322692675508074327108703517615672212326242835131611593819242744316589588342631413928486862135225182208848859533839397324810671107001493079420208071912532248902262082128182887615076789873653649796638958138197435288369512263152431384835968005314510908861509409879440085199677035319531238212774259961542711887670109991269685865211895979681927291761052112820765983000838533308154703769174244576784015349637730116222401941380105782775615916100722113777753682824172871219176758280352984751267107621809145162547833274816544338699192176035403503170296016298401836554299816918023492041310697514894092336570380333872297086934604157127945721267466852770389692394575297097668894662593752651091403554305744901035540974726759156766350091087967923589900872038419958754270898358200394190019389484416907303519308593314656900864494572975059260127899151912384170920079386228652905247634618402996323148355005119433598468135366458769224524038006673115611007834196396695047810040394433261497089756288260433394503041442565024431927853734411347968892032982367376687804698306770131657550819264705314287937409583478892814228604170433518620957780611601718282150948850727955303206411685355398064819659544894746730787168662315233248039566817114342884440037689826649820983986376020068964575201224564332876276589250711352960286245183743059399440505838473164358610583095707586155388396340179663137500256070956493592160305466964899291842799559205794838700045299699606333701223464670930580223016605272264091821303090298489579820598861897874745377656996027958780885853673655606390392061148621373529391946760304350672212264769012961593394387173672246378953109473557663554794627519520786200421881764309631128546492789423943419855670626634199756122218738912076342802103559022928259618239094321444250871132315164045309167239172977634543504257624798922125978838333779825793646667117584573803351332236074376775739751565093064505726323985225820086754247788104899148484093948224638860388693042682738225979186081090029003555995107597058871075836253866419028088176450372503229337853956845199299598223473180049996333304517907158340056637568419701657787917897801627108754837871428423530732739602175025163939535599859924211806501732605363280133209828925508036539463579161288555929170696825641870023817866936489917806655113399022326952994567743380450812521184189624352111179877889393517295447784888771490999966648823325804894089093169514768450300726979402068057447760443530948182551406063933183484714160197694001236553886487584684965045855032905490450468139861465513534817943599876661760671705582798142080569042177984720328346232131459167322074966685167513831184416570879819100065103975661550177044030037121897490735536188391234101521963406249321753143836112355021362268799441479126172819709666890783524353467459642062504056261222837302089987578420428784437312398868215923661217226860323821576914147541200552890486406802379677511548165089765922740938545996896693116152366780904800948878975813952464432874012956644583199888362834248934169564350254262746167681910313603162803440052808170544977641667873911360728190568220779699166135341083050551102305812792651483673701769055270253676494472485202921509185813854483721067476965757959499902739657199472897820578661995505861515806913059081933749021587403119116713322206348238001245577167122506613636849672740949059495279269880714237866703558823750245632045381077621925542099991196701962801041653770451316917338081055647216064927759273713485598679999518450874238294095835452237602944810133812539389196516866452269085113979517185019529891015489218063717357808683303675037448984823377000923706427593480291732609263265369727387778122409263326247513816921151340245967291488268377408727958274052441249456445948739939183930496235908163185693809981158640815552809139218444842100000255937308611551645689654941701418101715130407401955527599300266416038367007784575562434821784676674345452206409289571679051645206638990448510601582569386469444745171620119858350414104964019791227916624985888543053444240240499055746492318473769181374730131090036187701349682601717565372511072887263574237572589993719645962649649942037058104445378450016795737670893000406183078656759085573426683597265148227153639261991476494803958082753677903214504493985000492344480567278373234060190370274070372937309382109841466199704307084893150228718140543251997754068411693290089084135457068151427336726552689062580606830812140728384144119180998923566608979797907805632634427017680610251460821866423403955283116613377990023149803103632642964655954135502920574655425241353621451922658977221215881808384437787055140158177076729037781052901916272633761822133065912830010211535217989003055676996287742398756002087232535494096349923137009209497109776928681119252503123603929252009368600405818576387534842071953882829030576891718007998913393335148860050985899347532680591927645495042601766118409851036682917952199004079958964074042327729604086574136664204673828624041858476287239681391924514941590032116523782093762547364036730674518817521193187809446270647658829365196420894616748900715895740230788652336014156191560888087764166547570141583692510613470055254362262333491497588349489834468574285165575696571969692578141312573291381830924925635191573747233772022574841821676466356987782503674606818565138231792698273409026803150998450129310479214131333864110963324639901301592377666660660065190932013219878173791913177834072989148653887371905396303939756347905822413752312541929927089893536581331833488928058114564522220935992960794729192100393239308486805444772645340981717059107235564496825014039408762303039160236844103428473720464145803821372818282431634746758860604922699006140326976905462965788137597557184574001365115410999311420662525227589590201725637768287881826496371831110251629638665841902153652118915309263976069686779127995908421795293817635963530255217734944537735655296435332830968021471738205054093121244746125948702286005280495779013319373021809364797719101346836083756291658349929471824222409286083914831163691493679918637883126510175425706694763911801975698732467912051663767217114070931742526724216458167245625194804031176259495770837833000368799700710461126470962084199484153969636793222881073171212465845801017506751716082029035362514666817991680276651509257984107000212097813574625325991652288365764517966570842664522627638180392377216442141642129761091138742499646443411822641449251034521504930860345884398122362430904110176205504587372823558648638010485667939466715123093448558257370032177740967139981598396239137180471496708553621950792588007492910931876969246308562966378204360507822178424125222993342739958972915780736749187783716875176939199959326092524215621066999633263090569265740665248226068099415150296923050847395800007642420844338012554960431149775900580087850469804344311208424077355780894795572424905276669067790344867461414724157171402000466215427852511750675849166979498087668431443620169635019973271649081655386684052598156702302007925314020559054708627237315267448910562248572140580819306771286434417472167391607806328006005543951188630716631640399089830245976693819492791748379561027002909278320084563791124585074134971131050589200070227829485749911498043675658375784853190346487389828874696067725481994732534713325544648278339797849036890866420176176410646315001663485954871018134388764315636086268027745122854994962177016127461682171279932921034584414568333686899364036448070246753284859355846759021675150112464894584688142592071408114583688066748164683550782250500755974424516582265861048625065293960160990296530271861222502036979892441770280933131334464465282836962492158827325665110582684354177034486446592395332178525553664253759213373737197217005955404515416641866009952522193039568621071379407852110479045246284234199158777526457826333052711913255436324487675631480157011228642905076861775084117125300394188900733708525739086010463541345502640675360481622963727876686671486837564078156050758326541081571110664640645259704861705241572344118481101992756848840656354669255127259785562996993379367999387351284560586798518254593235760390672670687968220790515711597530424751212700277905274305642349629306765363104305162964656189662313075478204848328844014383269547539607185828308703665103460458821087164882771347760883259003898036436493910754472652495391201106304155305526673812948459126557312248155230033960771278845509187780795662513638298200920900908388630386575405951796345289757187821614905070149489336563643460082089839239735170114285022219150846801849461041496141799034861147481832610806710400298707354821425862275281745143395711632175044630855222974453537399657007993787291442223505511773476328433414991993647112438389524558524963673169072854344196166521473575739149972034230599327344170507814623367102968059944021899198911044998186241392063229520073541026526101652091077117942720462744609130698239692793952722796714935191677002945341818509311016556929446183400536225745503228028929825326733896407759014610648409384658706168522272258621845604032710242955610613269416703646492270805984782274023539210375910965626154663750240935485183655730403830925240593660163987643353526308205976699118967771604271856363620252997785166200755319874833697789211336304435213984742361377075158131083921892148888059849507059642238615488209164019004998653235036432474555840723367308348438962973232725632999122508567088417047141055481112057234945451314825737835436911931633181926960182310013252918428857971893702957437899278458362991921550420237639640157026977219069150505363971080309775261201560447568340325795012444205337564474097050606874853512073355083968453596142873558771928827621684407580502079578548959721437711798494822786379560370594123394155729301824783333139745600496979293244328413047248237055212713963697307506764804769459746822266969829954981790496672041945775396690113472297279171845919226574300225365723827586471336266871247843573285214392712996595819704264506800517281903145849703555421368240345072427585192177548387874211898649550442023443622547291885755151290550188071473863080181274374491405086685448389881557648431526055397748487968922150755823737909787384627115755069891772072904696825603330357656888435799764996896361766061655976423642654271660053063928129316550296648043780853560953929413692495858555567295231894910996194436119599495895138674273016044187137436434740516135920546478582848581108526160620293688548843817512857687207065265085953763801787878547287207626860677245076563792057158498129463546133174688581214295908189455650137113892614415252240980966476889095130198090300385067927390743807089717448905155302536907618382763321125715089679720551924044506474250923016978932660260055997513683032982982075298701429109648768687144105069781735336586113948055619740200330244873961528296003105128992673857538826602521839545369063123510331830972530347496446099863833267757383092462105474451527986482225023815320807653542287857532464077820968216005383474774531303286851459817356517679049599814003192465084808918722297321346612028567777962756747273208516841016825298036550660528004630435564094842878899239091273912392914064428481867443133062921017222229480527818181938734125252960197870184057671037478589252680827141378116216914176360011359371097911708337910511730049754205785473489348643876942351107707858403058462145160606249706416940702374474839691276462011102995913452270018835325639465118742598810089583407398596028189943082716974625479212350036823458504034864977325502003154614312214746136424635530812754846663374821565877120680027910611545076240909453721821169558059621065159483168111305339314418597226211312075215431368306375793760027753058188373290343141823560395887260056586311545821068500677444670701741791586662268252676089826374445398213404221711958382659131402977834970956957001721162325819153247181456356242821691406334113205091697099208997352849852316897891878046439334577735251817313141709799621055958297158526469659806438645808279582476614593220112138270754631976579530725111290654264832136009315935184159578184012733052530821953602739843202001599913916621428334779720653619801347127930395611284208281997738876299287277318693381029053885018957652060213904026775206219761781227445380669815643469415092290192881371692271190207415156915519996930522708596729047495198056288534619835176569752884673645094383715833071646261295039089028697199010925772081477458848206994705460448311230692196891590583879086961726337575259377939635160994501929922976605327399112260941136002186108044158598315356814375897196080757591159083851457129294570560322541690608527321988203256112637001298343574077695135352603530400269542489585209988281043501832051757888600697294276842313935937382166610023933828242989834071545285349570014524582388624295715984829413252012251045902033237649705736898520530322856449780675359091594186238698290758882696092785279848524595486804172184025096497155738841190103871917470542806413447278247599358872454630697163309429760685445090775636113268051976849284838243273844618903247540065930772955416997638948640619007518299172709439555317775570308911409676350149980094042738394044580748472352297884358446495058299446906672125161350111773209332021645936145235659064764951651316323390029663126012529764420873177629155883349781888108647411913960299747507169153833375364917920529714869960890710086436655067521520128877832498363406678717350128614329823360866323669366573672376173767978364790023401099992278080304141109388564434688245965893551364289469900703441973961262096953091298001585606544725004871631707715012232592899370623654187790438413504788361061954261186138180353749856455732950815503207711286269852973479557552048735158804731715267814163279428473564587364789979393372513738312339774569167962794869231852310902132804650067457009407025331646620094119353430301782357476037664974524097503900455489844725056716067096979763917139516084670027886679965928077246587208881376666411396908284959857299505691853735294173867988964249181130424649452756999942910371457349219294539397699942224643708127938094722443278893284616106642333567702424769968304019115186175829822116514560543481774172429004838151256595490344766430257717722484311103335389546387729311334366512139996630859811245183977082702388954413513266120513330633451508284148006930372377055575169256715163869413432887610778867663650032509402783740966813580262787137581816303539357931867186038278900497735657695805235067823574370735268442974578806131340466752563303946184293919029638042617593460235291857112882716543286794582297719963280641417727757179748680032173324727786715431425003424649317090731780939162841259165297199692464300653476433876456101460016761755811499268324109236000573250203270968359515701763429601305344244849905826283102724382267224699357866078659627448676999753354107164695209285346358041018294837860691526456488657229132304649497936114049953539433873039524337580226912417016693690802948782464822567497163455997333058616344270126965019993528211167517969512745662468931578207372869044003214631558513078327703390872407131461722667393667719479544025822211486106642618593683310713379959292472924291476901475426623193009062720968410259166026797354196073992211929670566289427644668715080625578872522825531510563449670287437995091173085619860350782402400384267880485808479344801023175803112241367219868841325231742808424466832240829726580726709990904796443706158077157470006705220819097939221242451662739829064450578237053393859287495990858787331351134429873600093720483684756366286770512588595065205631941127601306684094700650863360241052888521441052986161675734027950420931642762231440113330907527449450021081762547011568069169838128532108933663556442588311728980424958024711356364934117641860622997050988613020596769084822720050366622377602147384663017050279608466377678535088415567285384693358428724331088908219764192419345991070494412143237974722518844263863118899132668149791845863446145439645039310360016249369559392424976858952468953586604571799137279897191101759737370484572353168280934276487115782672886440350251236989671996221969397644994218382245486645648282591879951151057235655700915104465717846364031469991559559040799654403469716789193297662429924088703282824617377493896562559491574150915736970686611441162095486074621710848846109434894359138416077226682902830051823229943249101769085859768237275912308784923404534330363859824759505870050751407047335569794099833757132818646389282162439098171927023794205128841126678517217619296286325183817141149054245540788789993875012552647508461014812975496512013102567046001766245956230998009013751610714099301238502431331151210461323916507474014842837214142799735340115538534571356435800340954478093592795429096174232052552854731052649709929097345162805918005311704504188769237495223949321921126806384930437146209262580913725687285681689759425495326398396205838496127136168806159137691313198431264480381675271770897703007472099742101534648157524819681356559535511400707275964076687386788074139024348239903101205115336279396516730244875606136620469326083646346983166729305735898788829127601194272529779757377912826444832262403710352851125881850399259419177262915286442796132138292849587703107371900843438093374108153599617475804975002031131259572242678048567591074314122869962009424992942622698017287259224618637932279237037456791578482426616303164869715616543492699273244034507355270510963983017903646097777448492359756082788146449607426654867267535647646875288847997353962360248266865257257849081945424845229049528758419370495967636989946454336772695762984835567649226972517251487359381196822921191758301109407094363730594507034636313329077312214604409468628458634989769277253444001642121908467256583711668910873307633465536893141571615672397548546930310971124302005152223860034995101801067618186457535011785723072643668538500294948130110845028911919918139589772506884905199001824670780886555913062672252004386904771837293910246466636991497147752874423028685520661078671815265302800941841653431042304072334450973778949222398798557621734165115553863551960322865636787983907498318116938678510314044732168473514622339483918515784330308927908547740622049742501953546683626345919241457269246799536599075328307069467765427090862802191358365400301804937678715554654759125578560409225735525176195168078858793654028151443530614131272925918641504498102673602057065460247969179959488232298876540010467794453123854773788885263899549988471620325682974187198146171417423287041204952601834715346850468924755185040732044059326189995565884336593578737005776500214718762939233629729816167415192724072203608405819015039674272256548117190379523742615984385122286022503042520022496870012098269072538871701374730821855761890629957144590810713508979868541375702360142247049641285811453482243476640937364687051995056412795313612686002843759744728702072393546950189069539564255624995758096764097206939705967666685425140175458823781924051497592936581576730104349857819401433529084475522610148027136235168829930643748971704910274171208766265277165806550920251470812416914799938019716673121281676880293381636487087331866536403511566723706850016302722993295865530793190491658036383791165261001697498009306372825245227791380297345097186680497556673615140615980895518073339891566376206059922879828267676036560719769682740739950904979997044333877893110900345412865913609845233324623308028475720235157123728950442642678790154102779844611443402784048192393599000478724367526173677588081165742936766245245213960870388642121493657043356811925899912852135007054399116118937858079460146666083636931626131671620235986402616243611328981424256889087637627026962688157231290630183836615770386261903921969681599384982343782852582747007434687564683106631071114456170772503859692885831577170083975981864098764458212873829734249367277986676456908954765469229417028897601141088489987140182632849952324964515805601642770991209135579236805432923210740320429204644596702609142119574757295794714631647887963970158015917160805490688465687284629444386833152479285912861666620875498302266413435441836370051141264594411139778384698613537007171658523686164104215213417369573721653770405666694844810061398484296572518005842333747907861209532749716621136878952000345985083283555386341257167663709713094696537934906243152497473335583429943598473340667705155698958346857717828327126757035900805654905819048655081999157913053188198427234197080329937461079259675631607420200578184492434220268159377531531655926734070758127706613295302740599104319236015023478843570389192307362502403514257453838487478942613322206420626422062036671226847115952590111264320724127321978876870994175258267051243000726376049109349859096682826622733613179494246642579246864124730191492818212312023864920167608296792279741114881601026326702162117245022541209277843722296519468128006187746932238798661314926093626454437147481556868016915515157456626266221686143932387702645778805417224716317739688099307574913018614351755972986083222014291026655354063479554085178348326182171520694281012613290427686549358799263598149700540819777978256331092599194930888474974792086021729198396651764331883630620967057886795455367091972656085190922870554912975233322971879777159967941697085616762066704339445992898370117754070066057344575094635182820643870916053257334794969277909842039880119464686566746386109410438836991922071489672187634666818451559176580005150710549463209400388459125948678441745494512079320019734518550606332515178266336366584506201756908936718044362236768359693686283213745782849013445215949966832644474942005559369958841129805408291366268377671194532438179537657392732449489950611692314529256337481937260669010139135665429723882079528312375800489729238089869398596830328181947587799687375381887765589107784432183925021724687798460066865133501349524459809249934381553487268314579476198553940622294199698819459501683604410437276397976668778412060310420104185458477846812538361883680065170426743701964673438230678098145296334049632697466089429844546703831439225743073323896687678802067684977751052273447283707640962618213928695977437261541579679659685593467289271692613949210061182350538822157503290532017441645273336122064827306457449421146671556028422131938905181578162129995017612478035770310315229399477339320357913666100569245657153692105002681784919902910084425146807320961881703529838190438067688002017890995008085877866917414616234664383190429901784554528023898200723284709890632646475821913571354807062424692992688357263653224394575930879097303567971864376557168014842245648188796965463244470467331309446810213393060493883806777359074618525465518665247914635135028956225788703760891811086979266988251330510689477924086830230649701884543887196069056619833048549201915873509496596411705469674473926152313248999229631759688996313224326546223217550249152010191144090552762574490042479235069177931876748043546381433497887605290194593685590870485334379150623664501744090641242702178659333505161449126960670646378344154723234029843466699495327432056054949225327679595423380079444525142888344655764472578912098488341836800198098022502959563738378257283698397588772265162299218250962035077243431697443518937249780855091383251980751227255607126884971281194525411806469450034259097104102568543747807632967869911249987572837569218231102699591033222153127524082232698955716048713465001919559027739972320835321928810634100378806382005490124095717362385321670042953578688382447002671525802123289179065148569195787477912050852994079870417475903694440473304618863823231818563635707349763578253242436543096168355826190100995510885700801313885302896617126906056314094082534683760300973172090569064613002951365659322131207307355839001349109028631530194593477860502426237987770349639713820615933361992739920496045252464663383119038819486554515434232911682089184843830828431997666732427244271379556007657084116616013910040499149339310242892951151474966619283214334704490870230280827438904824296395033017588097996500569851294719299677774878578615315964515885062137861464412634265184762061345069474488602691673366071923907486928500043283188958522375289466973531255501876473942808953215664047425633827177793824608697235323224540386338432478034719864095584198256821044461572748966329825081034864463029556719271099147903264603827363121794756723819502613750321993862491422444143672704099696853250149745027123715015900870088139573592225186772261153010108168124583245522604092997965776044221681301284778665349392043225878198176882289384714261304955771466177002260999753127782277216589464160758705456115630126154726295345706490301234524304251548950807856819041930501585928624391392843221840271383881597033445406097270709589675671028099490489412279445289247704827229563371872682781522587591195444537955571785035053754807809704690315591769922978963150424867941455123605324688972588304131850928799788949263219556432430620986813990896831554158892919831960437362593626934347637844045501455934975746895725656876190069855878973458543021730015571295655246746047485171293141427551863729862977113333563648574855370990182606750430101249946100278585405553854170712458762685565943992127305530978623264635647829038783651398078867083732351261210209232999620249664958182281365534808923209244204565581291964105786507525688780726866156249806310823528247716642768158355908298052934522831298906843956030066930385332801356971184634500499551455552584887638587604193210655390163921750629969097394278280538128010988540888375377120782239191039935258551801288997931062273229011565144241357166968725363185420667891876248494482697063730041468055822604321843894918243057716850713730284421236983928359042614899430594524665456493990247614597236208778539106117965418248310774396481564897390404309856981201079952144891868081967775363920960273201267079290746037835568773493050591118096400104887507239105071639438833865373939491450164125299673662381996480105573663837461421837547797303988144926405748093022650689749724784837427679082468287634942746323189173803470727482826593687514654639960653293223589289748500697818899059451596242112216543010936518241331495358713288200223517099088658939100824117293944220902471649548476967931304807656093501839066061119701828949980183452689971769974992261008430425968121855040231909074719916292349388064739942154075608570583259834183618051192328114365409957802200384316194979792443542171133344041973698691767262381918430105377553131000064792688257958753837216746080263432862680885167780346191844965849423363214176851340060723400202696296215404214825188966686830352099438525786841646189584728247409318802709348765459980188415189011183753932355531809017330967200905882318576583855124405207852279998711794608935271238108566527993027370317160942172371569563234504127177343142102849152358453448977131361721754832440175905252644472894486644376042717830677914280758718918107862371017460873353458951643741828289002957150703963946499457023256334673460021603185034905498738688162794158647544963486642346192874337121903566856550619679232217190898754971494032041672583445528502849766937060287633343592458755818707042649745241698008979474190062656124202057079905419751737478339453073536681772557453780718332414865209811775686229440147451139952180522332736668912199750620221197692188882573113074949693238383653504674760337880123970104259870337686501314326096884633948052440639458351140778433075301149356074184920701019002572750849720131882003644575856193956272582938313821165241814988096957987447942796931046132743290236322060617622503763537794254525254836335759769519251206827841343709403565356267482163451720507916000676459443985936077790463254041455699807163310732838980440693105055938754063342940616552090220118357992794693601738192002118400443185715551866002927526329026083608108289634270728804682345349691942716063374943000156416624950756609830811906991496370496579756132094727483235212552156245458029205680847951800855634790678586623729808012626977982214780765217035536276505860978958830382685006975299819608713258025493546088635403524024378698832265556323618156734302530351122963958549167851701627651752511244390687473090772008750007967002803023540196969162236922974768384937071813946642049954190562939621759307658874900694357843838421413087527325853365495128141590631316764207441865618751045216758789417182868212784225920152849339256838703757488294396003968812035890070799361242925114281849991366244267725346999157458860135184826980960715260433962471984472791866995627282286178077642296826441177092655575082660084892929081143028283167014195826352744252191391055529370784620992103549230572427853216022922196741464556954757667876958647122459325799047327661018835943911578693861866300605809757797711364772552836026047889579590897275148158629234920977711358647996743828619519499398126867793779450577568817068216932936374433557880943670148137232965579901607337618363620411977656131494629750801572897986533210060529976239203657619259337806567657822988046144851240157744521159359242973914722696743481741969485461531139446293998336498441743600850168024273373591072588916170177019394913323872281702846889190824666171427056543960825087836495480509281462931948375985764947367047876142684376563982989425983835496426530023632824026257689080684279246500435392786085012207094185538144309658211875124073377215362223014920637239835366432594383290674960467812874388311383011900787522731532305653999094900408615767510743015000587667022545636210361934853252891789952248422094403112917229885436762980872786693008584438813252737089209616260873596027920760104211706966884903146188508401992829242323614879802221906730245672574817140528474817256870258832308797057638802776460481110638778393466136179856447470739125074390429969311631114752559346356939276708696038585619122765113498492596508878639222179047983873966041418416116324355984220305201863772851280593427022847392125135798661709029605383650011803253180783481277957301316384582956287918747163575195826675203018996834906938139945983267613706827050868807373433884834718692778282799206948613768623692951043041751911817411119115223070728708548197996328031961678278520187030997548526791765484898048851064809626955469375506095549236176798231453847144536033410460491326654830974949738466869385406789555006684305769336388577270570161314543828211035997642705444380992896758039916335092982778994620775951285260452543586690937608508222159212830090536469704343567156876530469717676313841752143860781748152471364182618714184116468540602956814032592077130363700096339217370374567316589536403449179514824998630009149279472714415599139821104982635354922860168422544014336581549537405123586473733776950467116651564434486287569875211802276336083706285895971925838695185946525532748575289478838930409352664136174811970600386149727862549771241385881855593205462793411763089268147958002891447277892779599990884544107743779082808468222307720310384987418177490213955293815136489527095533749344850147785040747272614878357098350335511437286757202132569553254163936312903456290180368835366019560026565211020308408160813243919373681738373771075506348563068847439610829272880494593769032077254146555980404996615293734360327292297838225790636383383688798432763863987443368995122409988830505610710250153174175833799653402896403508259956596330928835211540818532122306313395159546691109852129309455370105235774505383045778975860310373077405223628932163522501066375479100082815453073997274393675821228317557583963291468568969936566123193370616876812972040129032323437576526361825598479569445829856673825594896477638400410841231648852174360533159710284557628624273836155557497248732754346828306232162427171274738195959325718493539499543857334359739658107389451625482718359754014869650164553051921121275341409169558711980189069756085689763399861522694668664670103360989680472811293368929075885512840110095126794972880095242319814687644822239101951921162325244573757559018645234080718106485876338942091790529787473288133139019497602034179494644870140878196170434995757145873080548234902993445247208423052791238998573546215224835968974405697101752653605934761681352488563152121611886887307003543915946476167556258692203704969190215361446551322792034242006882830610930182139168184275619912133674283434063397472778893097817855473387296643969695745664169150366889063746548246381941474203181073052234620760411979325418763009794564951286460915720177728713873560565684063176911389176630141124889962389540072745657199889467307866313008398440527379564292044170054268044149593658379753704644538203555432921424901181347720724194717881120433831055125148967788380579635106445268107319125072541265832433557611745342465184013928980300276587204588699290311511604958251369562060939051871654145101619441074415157594150552644557648695908691892653220781943538498441195321335728904462109492496430206100600896526648053244218678190815043116035045617676302361955288250249170376468149854272565199680427640905314534251543599013788791409254040612607373733457055683648724445158080541697727758162579181252525616953400962331821615040288693099415943846216293266758206420831532932826547215530798425886348530592690049200284012191220197371217024798536654553245233352790367635576253687009331436456913586081782648650449934627210032429977969523018901549977044747503932181675999742160968014597582373435341695920727656464139832885522405946952828742107278032594350043190308623303266239923463362292057411747322800088548495234616000583386539292999535602337569317448591022736250351804562522479169153246848148566968768870515173536769720108237142456112292963657374904184320373133915647672020179994529441426505320407839731297039528013440227359938538372461317623067261702078774540936362875437161639025590107279367407592383383441271974515403188319504232434951578120402132360829673969102601225905006515968718013035370384655858207589054026960322007840696691456925302341590982559356948869897310043499480446801884429714957108751411723898604640663602867811511520718837851088979574471398055774350692324637245223149514171307899617518000106611221748166234592525725252535181784858089635809477846446760162547377141449247399522016501465226213756662464568784743967557338446678395416640586510958389633185007379304529491196316606424625313363838909084172777446460660626709713296091874434950674858507057919376357288053661566038926024337389556216250542429881643592549578547704240035033135667367597883039317853214169036852931264717010421130245395304583598372320701185228797700989007318590996349533924387872555583270032022947982698496876956996070372246347714315140383506413407534738569152842625460508793556613893237756332820043235833116856185592666186433341709165140045372599420317884079020397254177521662682568324511392870726084861018194072373577841787378718814645766256900364539524982951712991139991139995758045997763127454444517975516269953541085576368705871176159312255978419837142872022564074966012166850581973402967161178942492983507977020157555313203685078996666508019187078084648945390717001370588476774484873358984172740878322432012758346821022177044456065513182250832145146985600180832469191938133047869210283507687392845049437945159112609962809570115775348162725024166606240519048819681414177538975346781720773807177492722585479340164415359788974924419058235083604987658940156758883250933089638821989358283047513267368806858845077809167986005507540621204563234991138095419585237294062898907509288100200660935413696007104479379112828436427141761741542990675333170376764538463884472693325331584893807607249748373187213347288434683296481997848495600388256064698912091440175088818716958155340465721367003779404535975107858776270638195342234158816321336016065151983866625984828584597434627089061992021097082602589115175459340950923191657345650686636177437634375118821749240812252233624596415970114310432888657357182726073021736268819306640527065504017428356630252684281708685303079486280811287269101803963961259455437952211729597887787660092183552704876871583884741511716420300476289798194524470555427758846693651010365996527472484574936179144394974762930670123980575235028997533509500901951747677376345940714619202049634121842961138319753391916145995210932850728110694102624761971080392677107844036500165208953824933164863818927850237596207169135696287066537555263664804945987082580575431616640768467558481701460078517287522184135970151082106500474666996901514492296657602899884663075765591460830647510027147162324546923437116737925676088345644724878634451152897788127108080760413237695893703656714068222814636599744294590299447846012425768054299218081597143501802812600631671627435702257382056121670995257146668704161447422507540773107375919624468265901151860392245472326889437106762443676168701553651328991629278635686997685106876873660819150372201375478446567648012869839812415498580005402423293178538206593896750941720104640083905603990400030794428682408173075467382814658333481481509148754372741097350479546880491635618473589039398423564530992515595488234473056757360212550220305548659677694897236311984196545884783606694225382321459565470983494160454017354551545232014983928722882752942104548261097423183996815923852599815405689463363496098262997082298474261102107310144158040017923363668791437741355635252440912851334525908922650590689707494658634288169648693526117715063138648791341208956461905314187355624904747803402416555077147624809759538888834963750209956224280052520318330562993031805283803391822619925124096912076920295043611301335485551972538390009836179430378231100405082465850890569107221550629590536996590623657081405778957910861945561463697004913696488280428881372848677335695696051039336819187328315977576586589717735777643758086813880630012049299767992803747552427725846738850098276840277960814892888844290761563674472452733390058215698330634551346411528579831356088925330130931098043039157463135768454736427003559474968402622216672267390574027467965644648486062436369417691726346795203555974562057593447266208257227229137422116026883398916793073435569977483758861178795610003516576689939744762577253763710681863538952085553511965018924554351656590717272027639391716276680272984051210316270825682458506405652211997827192095059732652745146227001090908502771240349504122901777144019825067909921857877919302452272169795437271070341232082754345419750205082463141880464491865444177634936901678209127048876908722029085126378496294838459720235058154749239845949343609233840060758524680938101532614413562748870679620328288337133739834636022111797173181231988297724519688482512359417132544491721461464257845032878691194981885454243354399697515797979061193664230994499292652973624484745956453209903735861391989056143108412392288591026735058782252705895368490813416125296945898737512134415407292926237590154664680472944758142483414766146067773110644863518344505634283135213211854558289012508327317389001210074792460343251982137074881417716166660695547413360670842394139315970704001960161508124077361110409587005876274099325347580284928852395858602771789050670386234606842686455244035255494190240488544258702976703427777201527935749728132966832414416545972851849852106337307646791712736884963637367944369573998922389891256442223409150139150872518262909486529496990577665313653789250977249711910078657964093097950116968556421464147726730839757344100385369611930777071333853067662562400881934538522319664313553508417290373497968798421882214627034174813728141110342101808309813176554728436754812978922658254926224364378573887304310507904800245017213098822933604641250038156906426398405192389930462575446439396306281120974594999753450312826142047878547102138815461899037168455095739476972534856889053381661399504043372444478938010871692447586528185209018918871410833268113609033258265586281500335196905755178959532105495409219064992869695844136711083838257303312028141161792607102610807715020606735321228642966024627021695162928552851819747142661337125851272822547754370358361177007209643640222108995809908617091622844197871313970091308287854779572785572610822223836962894911815050142168703652912151253625715710005161118421960537439115793735096936881470283169228229532893080211968658335239822456496530059984576298258069147882855562470136880880814940411076387881236093815334696571455979696379618447182393633283102723667497727948889615151200455106847455078131879920241706683924430442721444010990358607596312467999491381176754640775103249952647834191827231152156282861616318245724931226624569206750682922625431521576816726722747049369329991349348892273935586317313944116341926188019160801355780560614858369944960798512639726681852751388515846161295289699711179506061254535243332572139976599371728258287213655833216012868208179154316231149712181373763488048629170147809729865966355804411360360721538185041722975361060687879187486590735035967215626120291944667060796430613948821113217290124113355746901307666811260134147974783538967078250807675276944574703624833160450755162458873803539379542857281916590002727325845558666023288274221351594260915486338253651241054255953188665936331295904964288940676782808777118128641707662594970121545307296568983011951566578910602319274588840718078953243537166458459046645577737977628647689700241625640768084841852446906903555773079890983917960510364740342385179508411840641524490634578927841160641088027512453451306189376709188031561101186476445243087312161449199214760604583122946339106160274985627893357494861936457609538143744400322521379407992501194209525893228984646331428422990889930146033928746011269927965559834831054153079065107127272599393706352857947655430740493602862062080165328936380364970079371390558502948338974673512651629422704225999814880275070191988675292394370140664908157247170410436861002688874583443032951767968383815386983294019862905034753250745334968723743380250274738045939202433937801212845091504097125888763265879958583043010568535431636472625287693442416119656942362749204981015563067177186591302644306171743081852138164094400799715862233463467385716305653169843905214135226883701686975769940095428002854705775613149528093525442915923315773588615192094232188686634163198182848742158934721705745532216713931966392258747003460236288952691369625527683087566759124155191475462171975480064737532702121616285461576764244765678752587422618050582205087704806845150822864145676897416061870844269291315247878198017372945386872097488988432142379956769601784739550554766659778759978910494280506719293952264642761892407184765631193007024401130217704195044532620177392084817437917729455254606329825238162065292731629259395428937818325237342620940974731340152962084470866219354704370750573800034597422409061009115131017072120334565351183826768540835182333313608704306886013140692614349320831419429991558124903757302062850764599384048053528785631231989255136174328104198987679754867468186199511870674810015417367879372375487391475078026836204134783785006281841395471452022002123462023928432694954437886562411615027102988057818621553834763526520581785528443455319276725821032179706173161839345714761394511598388269403760472315784715647534238513922379805476123541626387003850086741323354272515090755927372776119368911601737506979848497379714629556142602254727524478693588084602645037595507222312089696384773909201383689550753549346186701545162163875290720442019099611809038115431617528546405859088087231425340430839443387075216709227679050978627368485429008009227917913287801038441738593653089003986838556476310244273395580366528958423466483401023405553237780849317653634778387735982777991219174843685465102855274871718953727529773797348302232415443645328946307221484354681061232268281116970116660420624884479928511877913262429183426776788435929111678990705256027286216197409600577242667038268920561375175818089960415502615538539244302767207386147347470982704674832883827055692452722259012976209853179579124729350578050343844294920017816691602617906130731563500416813980255246979761739115837728098047337092995432700711810382829310420344684747674867257580384883761422553444694537356090957691233196321288211673845003969501181993176403958146820786171308873924825979443988438114569370986672781230408843942590881216589810864372902808436628015713371285423008273412936833839369913480619369662389407069892736528661321017014219500554799281854070142354085965509316785723205793135393950568520356702373579402623980764887871163951697592925216708710458169307305265150511632582868434782338745469193060788688625832580850555664779728664906108039328026801929180876967780424552753359136338661894408008392554097866297170584995639847835811509934107449789350399602912540818610020856536232413897161851764783604486585317092170966926344041738745358409726453914289967125535734486296290873607465838437299143912350641404077735124100029636536995016761151078839313172105194551043028120006463555776961488868932441523393824603246609952910743448551760424213133356693489704972772954585353002391943451923757181731520078818009274274299165911708086885651517477630412679810073560540914354838654949274608839623572234421784892942194392276235464687144955735174283756456429765735767442161460526747691014179166367744750562828233861337371619538382232891471044425483969440291385824003960384570114597353865283503931119303089416283395655172129327253148217361162361819274436622730256609304001725859571049904986764202159348707246468010662916311797269029632712379602731742726377374953510276327896740066342659693180326152137730410166143980642897982842625966932910378536762307075165944816612169240772540987942449781244509273945684633967786359918019352858644139208910237542333299517433271174285283486940262297455624919085451335899013724158419866723561729303958274480210039560602124082697647692519907393311792647006140133502927774003310793689394034059377363134797676941027138799233941630898844154561552160899836847291962023025040690627018558004763966771933812834373926314941139956450038799623125359489426908488156874923168248557354786318954233770625883305679283609121225447071947577443370263628113439986447157953767782302397870113472138535746493886548469895097181545940170176438057861180999671481876931821521600566592064543834256861954422141161217620174181089009923128992047646437641283180809990005727504359059979114781870494990397696623350930002111724466830710493260407010523637840037706400491469625218013396812300967279058768388167088328927621100133134033949932816990251782261461465185120943246101966250167034512443294849160661983825772508703018306989821773424282987101315046805326100405130701772207053114605710258075963551914901037738212637694651481461355674192145793883122103607915773228306977947739213001036774546645953338841914752221359009573014689617194895351886131675436012342146898094988984478861820084866324532516483786715476265722427411635831109097105006970162720416443381415581710651601460055766591652908936778845285479623278736842939822061006043412348629946140731266243512853658918763451649556843814112633653758147961372897309103698727411596235183262083057279159909297589919257294708319005301508794861718416465819775151631030046995601178552791842041609189093572122900773251560362825159246278284363253452821255775479928490810785755771893682211592104757319353813814922204918304209082795714160290481636319452033702534349620260273652612905743408332661971077872972375727714756197443839541087959899482271839569371526042874831097481351357910445038272904984823145996387023262626420276439035026601068451443826895940487457242811905606684175946126427609948924150690661571358663672487021932713151992284940669857841307037689970214653353861791846072658540115508120509578504321698029868101353547480892353577726490975455048059672394820692437631959402108891588288053336727014285402897892590916439613867226355404262337418062949366102394172806630601887775185638268139623001155602398404072110685991907159320576281326170657596672150313805659516827771825572651107276604036271346968994863456629931656503158441669232242402542303678354397331814936299563620612948994816014825129630958243435683800540324763344268365068895795386334303665285080514166994301277838580459247997986865217754732556961097955770942040394464014202125047794314445679778471856498818537511361384294537419726628188085515438346607407699973546512295102898489264724959277563405012888588355789178126753750048290012733980452573326252113957198139009733185794106926678581384219097711184697679406673221440484511522104919947273731160019372836216793758904973194464100883957927606731846825419209439929936304925760345377796754338479791505190366840543597811241255250665874840270904698166818991581649092909159797037787926447676863240315282893090560562119914961367661746029150464918392267247480783625703641088923351532666172243059047114057110296484418530189012879760560852311557547744526779278788329734950694121769070566110915424501264223313362402297952593774858663322584919610080333038597131762820104466598199070248697379830726862534500641813423784875538944010417204289228602478959560329995635884518860895861004412390096654667915789954533446179646823996620037958978495196073181694496080227177003797031276222214326063863966251538740111750410342957713153413853760407220963195433950187056836641341226368933218199387213530487003601937062494044811361496960191331057823702726095043404848772893947799385550903926829653748373604582422555870924713136449089048424653833619115935688912152768099618237086322885744196535955211028901736544394418585506961445916691130371438708037152715771703258439850746696149215809275767545927114520126156247122102547091836951157867960446623705919940205348656608309955130072559856812548293767639324865775207643823622103313368792709824888062871827075940106126911257411135196583121072601610568193700097543132503423711866227894494009639910181514230509042349532120275688517548115500704212519149372596872428330515436070563050419258914647434579611923059044549706678429488027231231320417811998900247587064014209353968563180363659686928823167634864080723365648201062351807987111406159892923025942827672208339081318047009262125389486605755521528675727546758162722964426654983707872333828534754308188936801443961130223043080318789576928874439359914959882039288461184519480910266661804720656718798880983934285684239050606715768867412948538619832221562354419537327916593551916024708711940462115543691626963253972462937503131304812383520142043711098567602549320500512422490101943063177772223182403719378445977705688367648776537192510737259104697480557283570001205739364075219711077401181135980384395953799153850181642413980328135924694891432843547075922276213851560064460571407307772487354236031370122484353607738417101920005257276399809874364978457424061501177759712186930650476074468783911811084084290800784368184750808703074142485920607052885991570784700766125841666751693551615608415149207640541485932175768407730152386958400646414938540156896731190531176368617384610028952179559851661464647626686951743341798802805520005689957916536445730272887220094236723886265235905381059853850078493818205996234747147871063634979360560815695528535245013076010622004731545199646836002523046965961109983564492586255587838855990647381195470207491139522614769791687494345213078799680027271590086894143578994007384689441545392560568276426934967060564290177590286365528672844431151937185491522328073828739937396724869244028256450596073836687038221788735913013556217220981710286635744538936762959001841308821698226885424238065497264257488585750508588212534748738087533425638542023190212707411568654100812855726332710216595159612252320918948522704720774247768904106939472798837499846332742949638736879278650136762468648602365138808968022810361606108395996085344237375342577795729923658981901489536375950484951511112123200650939383816001538889782101082124782484879018533600659077342185185328332266333803070100194130314076587278844550836944824621902003449330263533675330323857725891017892462953511463271859225689670143460478699932743372290298838376826357824460625537069519267133622449757990512993086263534443805399107889215093279716890520296984140476962815219904781728341280489988989592394835818701370342421070381778802278719509873520946778675633206088101312675767826230808852913611473747244077816023909821468991763020394405779768544585227940032563114381873676482307915301841825896500101761047756575692251503726308441225223851146666403937411220593194632341856906552174496858777439568023187537348215798281086892553285917306411079547131511588432969398624329458422882144312315050393599739885234152229203508541620712032311962222848817952042343686975592021210522495802706389633283852838614093278824173226203097469176154573331041513535062331889150079495413801093176284732166877203453300898499988983534751796836311119896558897601144240634297460510798044814061119709277342619978427147236707736335464355224184179510198360089244868033274541923363113112769227864282884545307355397937935866688054949090610704942896355203608944850836212076418276687955897858511430370010215072833141410594839708651864559723733714740205084383893280733546321662968623956129398830864054600063042329886074709944284564579746515498702810031777433102386432014754951041902370683272169917574437731675555790632104496875057989417244004296828452349174364264333735429650026482415757749177053267323853632938175318424766301173457317330725985685114250893146740172490884675928919274314535161634427069071593213831814081475808105431073706389618966218515500497381835175734174380228316593969640121441982704623364254198348515507156845710780373471846660622608451363681200155010756870853504586243987303046157186009207514880190559468426515475903417986638921138215603415265399751986329471885641390014734272767044573198244585392347691597116666238533047654826898293795618292512924517878059757917851041193779501002618570029065623864167356026304169313586906098637284499897645756208787551571370675850727120902517949629267382409375017165488771280624478988206300281267178533226830743018462337652201875396839641450618970257158749066757750323588645565595569422169282213261041827330649454095170398163576210544783019965413771434159964839881191986623035403156786889724989301129572917269391912142984547112878633108792009676836951976790348685667691172351885951390998039723397437537705189512898245831902062461203123228175974687516663572445271836641067689445748977985476964521653979277478828175156989304821585867240066603833870716954760220581948711030112263970783757570692838359851176763739168106211336317123619596808914029201313506419131583309295743024954039436610945087967533843271193334360748967064885321339443345373252994272606469634856353470191771349758593662999195749593748859835097091984119518744218571606875436559838390348743487831844376906428809457828047000446467395956864044880040095217616501546497783439903104253954974478107598844205168906617533411120253163327268310076393139864371633141333982943219463768207992212648704815736015969865467967709593654123035762865599816861014209993389530387651430558303513178846920233615914738230555647631687872920101530646785856092344900228937797946467230109213616336289970196628506402726629362976182408496491368284951787949328637097905566943593327478262583525195555494230216532319422673560276616670791325385981715949435831991143511072584659609598793234132558483371643663001696134249999489485132657084946880521866791104948116330961816927679232398808869832048554214119086494825907939302836226531640743659030471600610997944572203842804100790498497756379454867250848335314010875239599953170661739733200260858666737556265082560364576616291598498870821905559960681248691662202411433974818000469813901821307052284170844413057260897277536873838952579357019804533935677103342578808917279811180043443753052398009437144082820370281861026741812479263062522081310405392587278923356528504976672617589845076120403102405108175759392855388333135205964229341355820973588463499373666422902284687387695136052319643336996057885049424551087335171138646527415637361167770019054582858195800616569546034628592307808206604179499880048553961042272215805077658577613401555459746956665425055630565308872952685917088848760787718739731522767730076291923264788854905265706330605097345662480490478032578791755109219844803818208058092175873967765010097297091476553344083990663154523446106459404360428537884696435322880217819289936785074132039618081826611403525059355169170314002540762248560480741698719220703971179154488338520984807061686888450092902231220053131593828218677978781835693256979509270926366889377805035184840476834186532641655096671972246035656585128231063325568134809517439043814728378844535443607172047643172715999072919915747619805361011870095951312292774491276098752844896638644344116322825977051895171581571137473565054501221303021472558906334729674089831913516742507634709777913678607591701886104833045799283613897238921378021018715682445459353419125475933889287549763936935549215805679204935691710208304141859191086921947457882323422555705897801295505131261653927369642712396892735126047980410795887502125056649028110284292009304733549062886075572829677075207136692261482344680216370589539569643790157024614185765914494911889476442655313799532121818815859938824816885514102976002249898625785327124727227385270131695542809320401530457307489365243525020913494834851359722687638036518848500689770431988495285568597765862487629491210406950170519506715203785140646419480446069500811582442709768485351696021143560240661468936198331117719986188187775535122022466830108403728328009805757075172555025942647749899856017752739082314938913454059462695990200773481236886934646379083608995033701459908055014122327597260734171671150401263745050124621674934025305380565699281603688787355042219893622840682849363566071147709042932032444253679201621210731560912036246733980987646505637226650984776565595276544301558723700440123221586793707887692937606227998619581357899230995927371932238145629350886140239878406249351126198725620092522668669507483965209161517796824146632817235026643496433693398588403580847462342523649650427808495377429494138362638970870619931173837907356072703231356203235281016760656212773854764580270123384025958765013225396047960123676601868262743677666229324655393136851858441859718598786482441831241298646408486027920607365252673241931800404985085483429196632134091408859616921128917618490230277256489154747790525477566623683219344174189064499075520746190233857201640374216077313066575147940753571801292842157835929337470121358216692497445285632989740242258310334397836845829777414619161152635539409040756632567791677087310850337836876608681707719074346866779198036146162303228331247137555569483483593532481535256241439115349631456033715421912958271970155557939076404201471318991093071410861961741463785749219093597342944626527772103322348656288554821906066324844851938313892434027362154973624869260088880858457845450952867433327554218275727074001789192148522838632715651858194748261053965575719074710371440497906977243285275433396718750290315011217744587581549163222634066496405369691941511034085634794756797736569462040617672416264378857334570222642597158289559202989408329225069276893993709769414525896368953049974321680851031660073301528525448361329254408165625591351423083172495731587665151048579791570416964788024340592974966296984424967094646982728958112142625546973983231149873786729606209750616847482273847896852539555491612101210078739730602883264718466830191425041247938971299903243101190503184148885678474792609927788283567285703364694439719151927839806872518634669559456680825089232573614995849064210902667737664376705700541946372755059216158431173349573535545525045575897730425574417824207564127777559640238282974677646213540811539228643033943530458129647280262088510834654043097737684468023922945290225694158850633936506382750166962871647369244896164165477306311036963007463830620088821294918434928251091439746324207920327247427064097014694833164206876229608920011065058546751051665520076592354361216159824721956638589523852886403912671689740870615195367703358451525614171453007648466123386514686374681620749040254802515785342176345875507713908631730731689260935560494821812623552797372042765297076088477562078546558572390493885915480474683121508370504453660273578832542014432977365456103418426070460375884385343646664888928397661792968141819665043282935651149472368686666995520221279338995222183734942550325399872475283586254465197525717708431153546713623766265534712223893740419695941836259409568947666674439425137949539951165208558243691784953958346572404626386792559354292746216446997824951855840787475210001673742715352250466030092724434407655885423149275322422368739965244999907998417386307765962195129670524800424748829609659560798167222604061155527718697518788154082358673521647926273090185652436402915001649940998930769727366833588917502814762175510870516224625854977201597411802745407944464381905844875435505449466827251823421528716170581273916307485069434728601523649548166370426109795250026804293702821246103310291878640142812062015467545400101151294572665540726670034325518402318882461409283723089470689710529922099600698515543945779752309256207457980295580022748720913459173876700188002418956560233301689852331935376404172874510612334411331622546906864131382277365704192545791857009300370727794140384393473687093167184045797477619658905451726734522435083432222476912256970756296750823523246854588967457135170764475266715060194958306290297394399089332947082602215113667352109360998855285344009058376125205855852124292968377916604265074646978747820932327493565669808542946347668129399470349679429832316030630794064216931392464344445354803284984399140898729104517333033915938443700380594694184090234620913954275680120751942896721595687200828307103478307844791848801306049790205556634173968898853051477874630364094364951960407642306856637873693046608256508351928146229078880614141509898263632950094674907559722155529039317423325936858758956235783750558837278449613567519084709549301087899752898887297446195934986126107399404540487459197475085774831422349068048422576628304258754353879384653267098260086430754225370861949040970194188567968166630471365401022738720098905894992211699701045429423216691312202562653648712690872559467791312926298542194416801384024505163548228115633487108493531467604024548584257417375884964685662240847146095624073536042786828226951088359046710506069377565648811099892566578938847486885381835410672017632696778418415460636328690951588505996114189638930829843971723375514725857232727550336066593167279521054539279459449745379549568044782320546023743358703164016946215310580858066780983587265686152656694510892149098634224716567307453147861205236456163884225064261879826687299307844852280027585605726478203214519009826750848256107313667576276900185546682947597159397892890285477164074192104631718267801875402666655710068681739843553407693972895246346605585142026319995383847314152560848169659108371399468744664483547083732741656623242128995872510753363482282732913995478852328661155478983284129366915303175856680790157394627121125538102177355598439345642211970429561665897968437776781829290441637198988935356959725054210446140230389499379418903342848013008507496302638050760731702091650127441063527172264460086826370638427987715157684737314629721591808142739532869515424374673927695415713727264395811263428538306086083723932705318369438698760151625101721523223486915295266074082563911512396693601342623546348984455820611894359047644298272796891950280725808720463805043119689187820746768513115076826315233020800784358761902203115157006063855979623397127267082259478102338664381995536631364659178693272839543747140277348500085525167651816922654536361967648198388929317171851824377964214902662289184269280621537397364681124936284082167272191187811926670333380363935290922273233027996464774518397778683651142482963773852884373574400390594652704580607064441708169916644218234293183125131341295103693392539287383383583098817288207243568462092856558004125669257077085770865239497237938165098821638001044546431020455103182947400693383448165071613092151619697704325531533890627787514265654736527808964124083955544851238440620993456554008161358086638754254222157688942685169230976837360732380799036835732750773959938910748555345340530299527667047716897236293769272311632109130976594292064063558370546995958296333390660135346261397510419487077176989545370458414391686699062923689473672297353152655145602240362404220987297220228882991135368778387815891629087444889112746177504871564545783182824635844858533797880362849515698427270220930157240455844828325204211606058980109530279282368965009441150478643429923334416278261301327379710514079672816219686653146296848630667661819695203832741155747492528548842568044702987709160302602521466877989259295277409838012438168252865258667242298313756700444049202607862620135289840070192698618982329996799257467452947551740136506564205961720878834956119043257637288742016942815995037218328678407843396831157365302534412620661375779295081105512769181517435549800362843690777886306664580244008616106142751896724516919724046335306663742091093706799172204250129513991112909475721586664530218213777296745838045092491659658885335437059933718883280806214214602409542159825966014477522597763939360319468194283620927289268286752783516272208334667657571320955003319617488058182266128981197766160498751554384266788583882067516124038204818584650642140032967226505767995153430638577086628305697374683716025021121491928295338805006435962153120739509031332625209862007511057119240557300836222833320810461150875146583322162977072860034921106203469654136077177989646096436575391008284124163693914309868058904357254145888039758634669431163584022955405826060264226483440573321240027472092637150397614802290680299499353905806108739935878039018195954771312406575124322291748476433310771565560305119513469893674617322398032772955063404331653145552585186192418751266925979313643354170790033761162367074445644202526241829824171171579872807154405405878161289650060701085648003281463939204480483732056780008627346936123645430869738056847235392864102104241383024894038605489620958431603872311097667408328673418686808841026450757350627941939701444792111069611967045553984936278471624204913127583996370337783862145473033973227513255261140894375170953066204873278982294424342447165314474992891945138349565329900935271300912015642578458663460990259586344709832829577703872775062457087412438841570741744835764527274382599640273929369586867840853615320277711014643627175668091385623796227255287334720265643181233796617541699113037729524907230936219764484431818038494186586860823410118329069271045355080529214153021137012901790969306098668427039157056483409634677931140079170059808769057957363481366126252499118029435892751428358514782315386128979916613456820041786023747606424975371423915074882201386568239870676902453357772738125162976814484720567190128453650486798260402759730290797597912970940336433172780072302295322912930596626018037744544766494901517831757824593449205985125781865069929861798689594927087919655795765696333358528970628405502585760517630733285294480214094608959511766559213827918147506178248261764056101579968855776807223186157622839615894527572259584753827123603750653572800453711592693442354441580181502495412803286331426768927616855763828190667393009700896237898505449112914614906095640333290813331478258407437725941107671898628810676018901163689503923331966823127382122150772460364628259899056311959128008482330201781248450655704576953892731446671561583296214339051812891385035411414337775459307185544093309045807143812656191984583610056259461804804595862417477396196315655888191006961783880296912398749570575282067887565060856481605857733640347030300650824433393616041196184858832161422330312444381750640709464040476281739703409559424143507954403686453398478574001943358629610054135343509115445464590408949584205289434871494370620908158383160269121777422248788003848838575267915482396869307329478545402320193783013947117699847224148649972960827533662875719599416551021222221773475345236220944036343240550655485061199279573602205885255958075341291946398483324233811616491217258583276100836938991562678221466925884082255593063582391157776882973986500309745590545894365740939481920661505563584025290169519611278807428686605593026262672074296105683356878573754486344287988992259918832986428123561305697756860908491180325077098798781570219086173374323602134944010790736339683633290955913295597404030137362728776505729408565527621350752320689480331681225156952170348928667937334326985391433134331882917134973373565577236314556011780586517597840640821860733067983232708259900473758436878505659587519604611348862270374720938925509106531353588280125170961142141251211317836357193656857058386493088783873201609217430796020244495697034613406951730080773991043292080108819755032097082103824059303210625567082866872215998931437606943277004164984485791300438437418159805101304211264566472925630774754584441150489334747806850292343013758579643985103398813276225853426890741525016346068035123920715159065203999883509386239108027743178716507572656823364459085211632756506441888052387044981238477810552568612624600141147394868883675029491882462465597603504853284369750181342676332516704572661116834697260650080103906227320192450047523442439145547016167801281245907906954998065881629577265391162792994168337508987696651567049352621516484438827154951903724412033102414405332134859695952241481484567109469854080844448060476005927201637700174098648483101700474281469453024425118741526249825482978371818989376664585095918020139253190922993388353705455543388602739238064950139209916859179335700810415559600784225549108796319744548875572750290126664970546169501692887766599658426456441299669633409597873583064263465359745035250810065251970346048223881034437490838481748716149363891155741302946443088176913925490737911404032336397864741791649968261217663177804106872953873127047796535413289467147508039965901487940193161548754517696266149850918237812574879640348156460741701399560198006026485860617475858720951906343727929729489618506629433311262533312965123495009821375287369815653094054393599560840477640346554671964737664833236829490715041574678370867245272326038751087206322556951638895319422187133913538089784323644283006674414780459118996927573354973489638305663775936432912911641391269430982252534646834524881142675956473926601982335720934090209499085722653451731259010276587488456110033438244119945067885794849636367221913904774496525267681659734748757893254840066219484367103697964702931323961342800910888711088116194379966247379727804940327330064543991310225850164233626995684425043641917669917280942541825057862454622570497237319077238784440497201210918477674145053074640454287144202587566060499029096960859888286428733072619156793016605932294184291404903252435943825351496523520703108408451627852852530558521302664086952269298157801326633976623918196277412549612230892811203052116514993902226390303822806125071600257803934345966241800164497112630765612586599629017331869429081670259757607308165630505432300943439724986532290751342750910685310136611627956192687955568909056034646071697174670651139386084509006762406645447100949665618821855555574026051603387211546699341628617902246454928374892837362156895208805650824323468945332996148552099244110767624493403921893461250186074151201207233613440265659430539651607576713292978278961667979982317756418358618969719835314279042639868177560088725912683760649810461542037951812641722566085418047846261065655071490213569540416597350283925941307590958469226202289883776170853121877286488554412529494302722451218363545014039093504721412139375465577086022787844920171375979827374782379685704600041971902352031339627790794591878357639300051261487797663386343236711583593706764101213934006729767219971147300653602702589009356353042600110117839652564862032803250750550989152215315620056664441303859413923423217982651225955954220957840039722676610418323018731435173652997929687715895891144901458196017423098674719348002806036733913987956595468947863220278859357898228934993828754320772086127077933286125552889143623484742799341956781267995478959330592349767921497151502607398683542300703054947389365827553829095822561170483875917108671147631239941515816959258483637122216406200968618572890035054891102837429322114800235201052277713868363378627981505971336107024122977111091806065123310877238007158536403504276967399450715190289960541170460066465392154100320403332211832998185010078735693720710567147334329337556955611098382129881151732539063785097362647833746191706412721699421007605059950166831795203937090569676951509309863196576485983914951898897973152303271529390884490229997792748041958924595051946751278560136062759268950454967549642116096950360687362922873397989312606532669129020699200132103847559809790129394030525793055687520590730985306173607262522533588062876802700788340328171249932378383798868951936854605013753912940383095866042900681122592357653700667909543567104985521912529616937692842594818751396560087449484496011229935619745214501437890638166237580488202424109353739493976299467466498604193675624304260743807795471266287609388213365051823005283117015916066390045383528901835040140158731906901911913850282534598697175322195451065003620164255117755890510463431178833281955219790782708425772442217680349977099456209280628564397845260345931854029926071876425481939637806274844481123914118805151910032408333253266906444002122343551857671877881436128081097510243658569418982683787780063606525150766057755670638346272133296204619129341801495429825362768943141086052595722018235338079156570649989445906782557061849316684166601281662154392093940889821395936813255011432884193554329200564464283277622857219674225441676363585982864930089978002651420468270249252831853828950464292259207335203630438399445331320240277241961707539782072785696781516726190824130677538738042560339838435637872728710567387459950239936247277400642593695202995143964610818444579667598179564202398910768724947374424252208777882664048131737919397688702037030597911855267525086515610679130649949436545441140835051207840689595122549751968378208179792727905246608335100999667305531215299243650619452710260907255578452642514615943729508312410672510087604497811222293314074108582097945173747167326258490266371917582716020350955238023302655418989865335752736069735555109257205109214242407185447393926096871110566763800723588702111042291605437883589026494100835352491739126048133387917692877893186232209180502965070197626139658502354675113263648716114081801948292354040645362069334376821507210303165725480812861653279699810498556507886736687609912847182586176314909972222767798924952856585069303688879870608856343824552926292917561038062633579413188470835048725840240021796766773270356155734220023595373775280157895456120987608514220225154746907888895732594319039182887506122601002479955032885185250832833352125156311097378233618642975582515062549990140870346548918486901860112695678043529276814641271839970168370678971528839334828378042047051147027610765469608154360459145413384962903938706506648563416191911986385849264474650469962437453790209977899734427600573693333864534160115265757224718703534748189476740201731118811456721519441201839309802465928650729896039729826103782429334868905891311307923541446846050963612631850019101313096417858407361624317877406319580596003524440322924580562597453072768575746987826969050423696648222475089879525356943950461471459410437536108220013902843895384136965803438121293728781059974577117524680778002016013985713806209552439182453020540107392001937994056760209551699263370468009237375743877573176228173489275163461239642136488215442265313068836949914390765550011194139151538867260330306215478244412878463446728328288320503913637912991255919712733548462829131747160455354616116007339858643196951912218293694921568777103612624555300595690110080459538778199370755409525170939840625606881494308972157038446369787954932952320653587049485040400448679531912607850184827009231829931104127635003454496168237294327548779058085073984067100251631080105791866575762801060681688210204780973398110400970435307897073865776575849957349317334236676630189979185005502369893367101659782680949624543244870062135541084405268500475750109031994595739499786870859772593730806012206689197393370345928614322577457910918432889894438986534064093422338387069878537296443428519897337902953200902398700601048268048066335104088297282809429898520225323471549718815565054958746277266893529191104501027553722176686048018226075188388659766818501081776994068474757307822151445378973492600456436916288210723404993692414277337733698723656768234963361982875659907017892941842316774084313301248412332478386951829052090710577975703226819735700470209503202967674165142042682069110785649834348771658914389445206065941887495064491785843081320391115055098447083090085559321998514955238026956960076109661188610537943057181106328672023782030821597525945758719410401119818325960504126162940660551673298022031584152068925719404774417732728327352543720310114733673276280421486346543655627742838468773770453146066570578351060827275770227952859844894668221323134990206675875268067156335714388052882418507585446432789757526082552208255024901862952298321268607512381386240939992376883117320617388221176482670638366971073392771133452124614101104817049943726486425321555134387901964467817781282873676394191878106316497000328968191929583335312169284987236495844757930618067310847472438124316132072310709477278791067321167817949088125541193923012980796530147766626012887711902508513443320389698629799349446927455721100243711000781097858824633874415593492960521893906466161946536348732063233125748731881375823583305345694272313810757690743895708511264862226993222978698312374419364547270032903806975096729411412284349765576577844837933796168895310372147639290893500766531235779618284578084708483354188696104925562505762089026426235372064435513675471466410320151213608766681348998271561651247274471783302973594877303285927975125732719061670524946762004418168352468557823760646494719991425569267496553655475556491402280115729896972274894818397928828202175000199697768527451277421279036311919282417759239414289997053888700647786703250647911914204965029998163173647652280290305519117082897690003000307147424313119542937252920629224022850304524209291691372389707222009470896902969207207399404053812095771275868510224790930669174108946282928062155080811966413889011890538750931085667381728205157044554018197667074862986530287823118840626762609425388011320808316343709411449416928403921968353437857392246972959381033979064555193477835524053422878945482564926688705624727566919822105907404354968009530695157618243435792769661213925621708597947919772195725879963011176822570352754826349545492748533188168917536245631694527269345737823124680037072598746560862998208331647425477332669015129164169940808856563113851679165647394824878128732519619929672391289347085140099129087061727962553383086570931057059624558548250994771221771228155144697859369769385765382053489512289403418615158712141103817431110749409032987945384215004192798549104929579383945621386924221532992600785244044632201246286358710886555591236069171349431344226879655114601634834712617077169592315107641328827781813772374478623384426170534041366431941624591229535168816923657715208289604244415089534802061170021756394641691887399615280232770595313487279451922984929428832851877518731703710554729190441844169410279387862065848901835143793894205088540660057623458021080331541350990081204054573159215973837268887886682873104557402044602508053174730334467172176800952384199847712391831611590415926443941627632898859421138052952434425580823593786450030696228675942578620268875402931073959624653146331642570182976090295309031195554150828251531352282621783976201029741420996906921463909315481742845144298226692224078450745677554638885484407127400632224172279408204129637385367182530113458547473130613456657303227533634274320064952098750805018905685655845661552240950524260140799230755052392142136568992210930474040962715726235325136297767287561727604284716807113828183071800345528247695955872470435617506974624107433529845249139892593586716144328841552656891856714889512139475368095851748816300591542210436047774091139264912992860012582623929094891483668460262534305152451334170087007397951607971711563003068273751886924748899261918264283454099004399698356798449336585141621008914974156590878786655053181025008554090296384191631691646928711099376148533790222298557610492498105310238649370402918513142967441715773934070810285439546615121902680804385490915604286613632364711204692876167924723663372794993259435203802343850038744737386827222392220551017311296846165413970099103558510846273221659498029332198081279829245721280081296716746844950754895319805162584764086062527682215864588937012570825461524926167441511084586152282061046437547280727912924630503960121307230469015375694736154765058988253898289022977315093040248245951492823434660016297431936699200294788741952299344944433876257807880908677566509978955304153989438076838988412237815798218708715295285771163359663294766410195957309553702594158155782317564084522289353344984650716355629925980687417626067265590612465244740723141002001890357543213285256956182000290824474455937059119535400141027899406322011918017224888170356248893480280876722746370822006073327931189522009340425909311275498907249721106592265745731330681105952550407726781991440949510649313842186931423953034042647368710052958277825012896373119299578782497228899579196894406358657050363155117266793304499212206665822366611293967586328635747356752550167341403033417116572625965307671549338319807609850076968454633524276349722310803511856179680945098935162716932588693244702411289236285641366639328510960451891595150178884946591032740128828719633044395018976985592959566866691629568778945214889397642596743978800055593338094283513994008554765376406433681491595975617666073536084560096234973629075862595744332947637585243259615993288678339605149987567330909656768482656713386753822459731863726931014390249477863176747744359502895279129507879506877171714666806068594056617084782198294689658419671468095696767193950773836407450286359917354483942478367423586744965374702156593481235658467148843541173255714834017311909074525198647129829602973521367100302168006232440498412963966237815333284164150682021080137820752710332934829807947251639629223346111603563137307478887506204240187259807425379454641441887507468066396162978791091948813248683568063228903395785423232963000270328821449224657298064707434754942027706638180171436562530459123363033456483908673586959950578290524049005164395568643185679291863416759270612325907766671629341496280393312970574479351046858852651340066946457303387424597706323634310487521110707176318470992617964270218255705650644558946571944597487434126429479319394230390873704927248316336665689084709681056322836023225333358676105676315920872902669153192706739189144804967499242322666058269418145057196687137819286416092287384515627935168261173431337803257268221883885228123699584041861709763236755783876584182809172865853815127989006615548278208064295811700931305014344922432874701343185897463050304047655825436715876262372833801423731137211041166428629228236043173426348102477254288506001631140569795728879085325576694453152644205126502930894180537272367092464030771710332674978270006561899297237002877859656188428623621161532666307635162578206622068445713458932502839756304410657633854640807760171474969490418206127656136491716994872604884665183712471493828078320733783906531203175617949351385933104309361092680424269567514264018714934298137382342445353233827720678530687028293652935517851001543665242911759083758944150838462898237874900064952352536021762628808051893638096038390167896206637350249252639140081937286251331734408185251116487848663594181484400609479481035297741418448128739956179555364632356559387784158347513129320923249908265201101948825404704258227781344010508293665643830507105101815589449800617115051167733227744006299634343965853070913068159044526376635399326264467695297331916270937280542823734346814378589905846261759385085315114989308677050756681490484404175819895706460881332739204531884117600180556655104943485268297414853423944507566658690449414687293283708426071278785927640493303950538558211768180674124146695760558385982677459169069961978345127592797738879924427591660485407366587019457419557686629258078629893837003776895280938850439097065655865481487948410965811782411511644872666623105912470893539263998094607296207599594004986555975837532916475138800015372875689933703095992972823721115865891192334610104041799000056060945136209799964615936077170014337006000011281554261894382938601961091650293615056485957892673992932557192434376940910405680649872957733461388454817189593834450736747012280284264483510951236600382093008004189089254753525285491789082716320174870014223289322895899340660468970744357240531820262510639013703218295679981378563706781194990570672635189199992731000604691221864630893246902789124369110453709730025403821009078836878947195177855405631827708267998425690816062429141198790258433536817707293620868851735671337528672572475509225424070620397303202458077128274067737445355164791775670059151945429157839743768468336830594187242890733706309450431064623030936037414644379712009929328749512817886669998354197424501191983819598989516696415401031215472638987154601847615568158248692982527000575430317672386229320678680322346598747314245632188030610127819157445823132581628849285175715901344116670767352195442512048958101257738718670747088501934959473409799817400611756850605847124115843310485779287184922229593375621822765272630871260514359780945766713294541124641475056764486988987232591020011310117989018120225819265349826733534154105208495083618861791709618651257385004052672802157452243484620269167752233895061707869317814648481564397175465123978172629751028160899956950665952400430310633640082548622993583572313127465758788291921375161452574677533285087375062204511748439181113938801156116257403615336506577570923053673170963850211232025039184523778044085268870404173480338888775245633065994720840744267782551813368925537493415555758309216317435608488284930011218396762608516216051303849279944552745841618454470767074498507510248020060130193950742402035899325373072144699714633766463050390991290593439856817651092769459569844325601237881309420241966895734798110434626333387158369739095825170382772083533970504342843755777052339726680176347802889985121198921464021804059453561801234978084174920427589242566910885437536180239783937192733549375005564639963249220475241662184555565004777395951046626875178701508379024729797302802770853545197831167927806307586300916134734459435777188128931735230572672751192766045033512871095793842209935396897260251509513146944239715707675703494593366843483087258015004332525462953785928367003093231841644373047310983362079101945642739496696744117210642103959252514252753181473078558939041921934580919397190571742788277129065564197993353825831280249784824373768613431663358137426213304610073309905183811048238361846832104848135918224240356162378085326005574851229612341525861335578725043830798222631895957213839225648600967702730503361298831932593852904425889689333474040568468746923153454379737774442603961169807731561394288230170441308782167154083788150793105732268005892701040664719015589547209994331203630908719348948886785747558258444294049868117753499344641960894510173371519109261378928871061868764652321163755859766968618192484634828321751688443420347040714180210762538687680812521151490761916164044943001594580449377769319153933496269446534788159372846217641005392687505361727191569545355588878640595613297950707730180759133461216471035888242914521315419309097605939778730837911606709933401248093519657292996722211643927458746058724017990330619125037441574770139218995825076535069066938022939272804712657690677044291255548997514585945824877830031463273296103337314903016942465957515662996085041718292411208122288285912723512904755475428637687808350400919072402813023415848243852074049586930221617049832330710179316868101907271439199533019916124492178400380588650845807542369741931414936916941967135513068929594169647564866087740268165294143548772213759630188614761732596292878876197827999493487596463424270162720423076537110049495792414351936118262727171095901496359837482917436009412548241056972016739872031330531211090505595452164820163224927538142500176175432257532599650882318091036916875811329633864049888361325651937427690453935751191592275161790661398770411225205315981146241462812949115489491882419845055560717871126279200655074664902776968996929014591941208269812944544273970829331259681105783560788272827866408864837982851123722965472055833569658425177517226964789783273127069014543150704375375441700012433760022739583653327489044932650453150135267734146119821268139313402289292031681746619374880644384091659257196482659819283991461262814810421600061651873837252782264772424023341820603222916080800734659221249444479347261983094589873687083956444564113571941905540831695539171497457387162743161736651802377210959668099964049079533036002566925696829618220995686813486698206933227379195058891693554048735173240917103335498325675693602289729017658774116257987852643637870780291776124283202094734982991692139296818281967033637411130756505873967072331711440178777538770232616451709896160656651908385640228279108632186473638888492548223683680746423781890481040707660806679217355025284662882923711363961829867267357433152225377270847623565109668805307259784804511293070543503824681298741419459297676337137864586447399691387311746717522953553298124143327811883574929088549575259789115198538444487302886056218023531324742321930180434086154267130874891850929531318965074848273504409360371660864748004864493611487025695899870743471186207198134359917070661092607050489957138084847255207846689039944521024508920410988184806238069614513371646485508585899298618936522742922126959361837761410735107166302417668608870449560030509079667454026509075956755091861904834999241147457973533509340823904212932444327982175399371121305076602974055276742501589645853256672267920023180357457980492560034830860556156913711285070778678458883827663292322616184778139539492640542753073484220830420445624302883973034600785892655036481313875826299807812550072464552448152779932238654906387109268677834400514622939964104385770861560025795269880824927188455092878119314909037266650403174014856977520333095891468653255723572390914066197912814261221858411032817534938789487798447877004616334844286262993999800860328548481708905171586190122200329694082019739945321815997083637366269650930438357622043686559571027748694842500004105868889803698604087551697073167798444344577392147178092262307676440580389388943754110314124762794311862737938738757611010486522192379384759507179372430849969132813947898796564495914587238216968175669327208470981952823575257533347284642477482480075229477649936002896105229819539582692965920820724794054954752716809188041673013810880882981805739969061002983518864273496023310559115915628762514984348645333823483965882653650484330736315524813304196574126015679351565474684740213195021238074598588327303773422056104350098126789259439577746144486569995948658316681408537527592715970307573257752737449175676173678991285241901681821801302415139043090258268499262848891501393754692247875356030401961730327095974283677432919430032660413178717944517178955350602584396265047749856651024119925404570208109201179116014985740391364150903989360146995245255938474198759939972571154199189042532257590114835486200152580107658658508867506665580621441148951118591632620539996623476510451071813584518223563591657879879608708297668365607022872093511009704119678926513256453456531024773060793280697701940222422544626607645171191450719251249273704444386431216908872789100115410531608981237895941084788403554323445332976099901008559371011292776696748648480775248936211214980221583094631422771261031288546769306834523429738299547555647824157332267123724637964563042611425720199468084558042458336501059403746972041359313005743984926862155797230490294428765567902728007352578608419789969869738240066268816710312902724547695830553132596716594820516396663677696966651160014982000937736374391833037996310160105701359994191545556003084116243577735154228920677715572200612168213982183386779789042269984616888260079046549183701491902767869516463908200725315772720796165731012535392204132253867262696763859446412309359383778959043571225481254601467860937714809637341275955753844152830881243985536482311573058847067307257472206934127165714307737684690167836178791500070763530432054062855813298849376333464221926354485042416700629291789270390499547028192811113784459758597710763356470450290968422892757534369848316788057933006698218858811420970231806103762292211644682605844131123616606726753729545112040310362674418390923163595292936714766811289073428295912592669511824457694632742244919223759275698448282002554069010614438796608681180526283005846947275406252150480515216762976012887378338378031721509948835656895895750347322526979836037034804692573074356515451491615218356790990422717693384005945950763612563106412184014108928456633639589793600249966797639846066288111419415882783685664065191197930161507141115229471183423506550356076059694096538375571016896403478168904698128215055350248624271823227434945295518891894874033038491282890202635357124676750680879274879501333110069606182730574980640105845355923066590976460032941753541090331736007478115231502135620613031781744386325513734735905795765181292400164837443010990403019446673473453920419821646057137214783687349696986936447774277394292745937453021152633337240304730687145892503723101491158601525666724936738437372669585742173134495917475179611769807342838941919764623031065435413321190833016515112548758778989355815027092421416851717530443329202674704490941143668991856564535399707148127437035419329401410451516867898742607920211316224235845861111049527771286175050192394981282082126129473646432635002584761963087549247734087661502826230129878322021451892484874630998296473295895712823097976917999644122593810925322470295597953626478781532400939782514289222920954548051730294078013103032746408513887744867473940677181194176684188508190885927566010450221239055327857234277602737371332770271014719521993321695373507960279360172223268667608572363950221925160650806291710188719805960567488215072563360718786760072945877654774483438137845879674354699696489897314404811260182994448881134001214800826788179471266950918668900064740172766572088752620783215421152042552267614031510648694189925235063927924879344391946899477067499209755698921627861289321347481079688926795978848657585629968433433353976055256633272190057735585958499383899150967403145714595639952488947420941309882795128273597239109803988870177005186602406379438794230811125263580163393545101022034725686383220297153358378670462090881276079794375701663204659933705759991901232520362843194002650651465938425195891558051533566543225668526337421839588980062668283068869147471732853124225708343203593316568136819751161320576936344635161597053833003839877334701034749705308843589271098846587409521876859723193659300318879426480479563893107036986723017676206927743975329870844278563001871887824177947538378848855691003637581653553620477693263044162053160595463276240651476565620674088666300524113938433648305699828043617068801481887332074102503811278114293660399050623348973808309780676377689004222761206682939640858472825085053895695824360285516274311175876326749440560170570799580474810839278564828147403882974760711897477843600388366520131712461002417963414161355769641385029164435459570949053951461710610975366632902995829563258094008106613029569971468091712922996386987886765858447078667531682992561769967389444160628288296790654875416556002153606517641730800117588198546222530862626990143064731470764461113390357359770614671409087223513775205957941277208864582504789006637608661101222845667062285448223131550591547697711867035351803224752770435359420035944945605152998209207405599205155309709656495618472398166464673803489638680661942719032133291784532503351946837181300369576768165855393503357536180557757660746481982125223420544139823162935987446313256507301850888155905731582244171270613135362784346300858868518939392939302149180236767719115448514907241375251510816527657307358693615881552738704130019150974987209091144364115471664859045718898487767292065696010343582429831794855928764772179035339174673351606517125160809039801402397785355682753286840633809122992775589478118114320035772544438375580422867946150727774033532961279899921597922183531543295701995266522050462986660232724470765447385729756980892501821269703004868671996705774969150503929879503052120322675992483427199874500771246252766720728796316986783456959735569330050154616685479821751211984716975076930583639755764915298993149707173217663257155943521525722392366517040152984500451566547510617205134820183252467975142876661031407590235418269335699969070984824414989855478877364205966955263704544780579776876504612459753326423922394879814418767071085238304414726394098723056373166174455319276689016778999581790622154106384340249387923508291892057754939258401931342067691177154996036986926138955844513663015362231296924924109921190987663709021865464475269595318713999245948921217413057089256746747355627918739233220769298283242358899311918807160292934336060054619122422192512132502650002595331515378725548593871220036624592655797045507471711858197067774529449902303476273932978534552990374663332733457046222561056527592712416239053440518735973388443081411142203273779069274822529359809703711179693126912533979507275544122133915333926492047046458720147242045231417634469099307940617742580824506295087406557398733572992630531765959304386935479330158825764875180285699156225969724051619234083757358073949563358454496088151101378279230934281550242164722456490188452758011716390105366806627487036415073118263787009565965780801140727422445616375923952528495934666297032706076726446455289201794635411053026394095672511251777708139518573801111008157924396583815050833704051205634908494688407021798746923482868732134367635326774026460310490849689118689699750481191466621806431906022184445407996808520227261842643186908955503759879164213172136821465315761727737386609955625751425933424280531328982204330136795597271642129234821504996424124099354332663436868586403986526656412929629851177489813420372537649562255315913697526193151045300426989714010250538186158486619659298232683509169044733298833968796175012080999044759172505311729039489565369446624740537077595905019612133605893813162773990813740624656958671892980429025896883677170655485670278260989467871569137106585802868935945402278294894726532669813089892060729523725651758517480611093976740983712864333029797224652397128219102644235879746760080800611243000688209256854382180615061901862484721100851698054272657300057044507868922547026510935485609981949778545334478175562512243748223905070909543946166537648206489076252824712713174341325289717382396475694753959647612050552082807154744883191207048147349467686743395025141025479168493295673131558103241343113576942181796041788261277932513082271024349013997615090926429138271316129321663633256013497216128047799863305452283686653990049373415235328323089690179078979020224076023048585756286854449651905228527583934343635974619491482230412618458662189106555220672774461910163173433675948195590995077616483155513267247436230793100744708981748017593109775447595062359709789057868768161665852952416790266882888322937754478495008477643360912601641660925290134336115195549744234125737848356736048861309812108826772080187777744570480275760071874035319844232719576869785470703674948756097869745336090143239351170065448195714062838516954701063805729464473706140265014875024141062206674463120415742856392683075764233828895086130767991708190493980973277642676329850830894566253459800551665123435353672431581912522625901016003540934659552930780302904809685146721817807292780541745412613685029913421613277270550808545396301844613860544253502436950879690921497843756213775522249731445405585565170096820373114781022339928425249046712861008305706628689507790616807013355992322932928451016391804929402435764946425653313350862712013656435997647669093152430543234929102399123792505038806105041080754668733176415400143149091300524028536542882976318782348474914957363562788839651011408511905907118338608437064820515362360556984233326003559548990723342390204844272479469035400879641556573383971591595158301316013987743141814480223187702227904971792819197591638080907200605514353259043932087601152245396427079025158316746882861691149639442468126114441535137605721418800078071483708149530662505165374168593656108222940327037878881754447234102097468584673884812607767810943689688402032153399144792139133197997113881761361661542130539869266767273201886763006985715117276074175557694134798707617237228472307938798841739442487760442972638104595347710799010272806746108698765984063574828660487270614971035056651776934685603085285520954575412975396069994380390037198282727248694305978439451470189857371105038925495010800244203554099084268612963189072947233915503321025909046462466576364403764367620295484119620055681062622748177273514125591434510533840243686006332348251108337384490483803601705941088843100103575510908213437815349854101449818132135742672682930542396832848070439311436724866251222516155127445604533386514784530191018265101823717504737724701447242093744465858525103708332131400273664307380776716454568437248770266326390769937113272916019546769527788542751414551825740150090769827071732296218883256682305152586319327950937711452554180581225142229836863746978830778480206196242160589980717568529278657131867199716770178995369572556613329183532897206326124353429888549848455793845996034861248783637226674529017791048632783325101089404493615921023675398771926497008025544666205874000946869109096863472989937301900243373222589703135323713853923260237932974507884749385975177202590232588190510606007437670740921279609570704345682683237516793819806978784810700538551943621204195935701671963549962529328404152839970002434127696931269457918133068648876467986528977944778822651020270945055531248043002721313849542467100440673797302455509422219343335078278132563047687030924029897378712407271931606071048815927547374863580414839681392483492368036413657197640514478978764832600217798299255251971431631705996259047360659706903118151269391351041386385161695387533550731478503436493336494476019261177583482300451075095044955176673310830209004495002765370076279881029860141733037714463826793259652958268480713641228704107466823963603794477010694287899330208943039593721589568245501575680712929754219368976979498598661755286023717682086287073886704621634470324401014592066163740329812916376934768483628671522926020210648623038873996565185348781937875783268806010406356085521387487611939951101490573741921947741776251093335833938875123595463633239829252463208235169912387710384305014587028134547885495232366380599735124305627113930497287027309453229554617242822702716812621147894497876878114134271999216406139891445297093216658960441454494807975568827548920453586318671459618749692211495025408538488840273098649182830251895206409079415433394648285123398208693582318000516961124934867073939959670723214345455335786705975925437831166598230144302685202110459450165173157407896784840250481089212625954513713222575171343903917220571298551864259648370116814811325647432830193207818019356185747224386112627503718563669795055881601189595277148662396717631209537832985205461572719497532263392784693708123683238981582628411846734343840607159158303589923234615472289733741874975699391774131903256781742467632924448173368004719196846192492964401769638413984913645900712658713708236434134270510898655989918536975367839681857825598785007618971017797929476558725762245798700941186537216071396823503380333892239799501617436303178140695668236285074642946281270515268303646836156432844934162435620330477205199935054701386204408683981460504893619466686410799856473799626473260637633425503155938530480493537885981903105517692926253962697975874748433147032138546474789760266581631420101330122704895995377253872600622908304458014971733269104628652966438678398136059300556960073507438605949316553712359574197646445225648439430256859015658168365359285935526216493893615893446968652518950379123327896708581075838842396025252075328256525014181061021979460477229931610119213664758797465043895465544612195547140196328375175936252351745754275281668981603452109057671112549219396555268107069406959994889402815742092476464781068625886901890740898660393923164612851779083535667499813053826446143556351787090289213339448229683130393592063793277306915896313921885865824859534174832523874885717734341147894301669145623814848663086650625712613291915561438686989024854936650263979869084202521421085430546761617345476439137873101111786425384965163936374877956556552969680017338964790031228077682842551858873118921083151242328945499743164159592116428229945839248156671739402510207541944024937289280037137291650768880311204724687867558016100061831031098032301633264507550388709628668269633015166483709407412052794448147854418213462179847140635334307748364273490586200036747475623396847085220746587922814368090376658650203303269750230798523563379874910376620091136062563858476056552836045908588170370883340827310916248262342950674917730481022037102187571012766642695956348861828251023144330470104548781325028614287158925489144133529551596131406412850321796963668928329281966066550819287209699541312678259135765552689450932593399405348786097774966350204539987438072970309384449342396633311559271816941578239238263060796328616734540170935987589301773961953062253290531682203261342646844401725100677453315237549094959959254214960697992763214505235032694338064955122203549409495669169305828214343988610829259112129318277060602299793376620644563199698140048915610072391393887452243438815015262725177050421689688758774759053359963772549827116997395179008368794681231775443284193433726170015347009783936240061324004176968508066143535388205353686053193443630792824333795512241196564432354531565444547252277140226953911472719518299669020755067170623928585167601315134728434921972838461729649179401154400982848379827034221412024241369806002001715018553356562072657424016404813339401600873415749030249056300900673886748013106464117086655614825871695439994762626958291510929123943199697575677964903796873964923984882163994736184645040200128326472043917575537821405802915854701862245611561078122127856785894356027238076046501914400503972010308507881702598000029891407627865113763717973660765699103297615970927274074671030575637594199067547583700543806169185593760494983613028077349083409681327828467290228015508067019191705932011197846130194679777870438635213479709468727654220936165810200477241658796279994632875617020588799050989460679199825748096367036209234453959594934450087106369216421889942543732859282615404406772782500928834237472596524493117375850383234223814181315750619706208566318240199294644035191899194286273564236196978869097450585844438655756408607544333234401456767793860257803642564927112136615361733845159984874561630021264620817956831013968107189389933292195033787220076591065926331117109148062137331735056879391695029904989541328157897823033480896145816966804471169771246416247520367979970606738972529785016326239698788944236721110109037407003759199008301071101695896471132011121110413059099531943706555785426332310301991390597090432089798454766752366925653651956833031143494795713971356070914865209409069061681826236193058087106868131510974440323741550781120944187926218553906810315035576237819173997871056298542774958721913138579769574952942188363176905467994294930215480976465265124690495121297419850807399322209454888591044985706317789054556201311709056671682582430477709664666767992123431428484765831990169724136477631662590578917319067404857453775785411329291592065186221053755502184841831910181838535054027906740259440399008839529909686521639049426804606200570567882906345884074839051877993786784928419725529153750838094677826365022108322149755882609519205698860450575659298632041783623165347108959414152055772111479024832567502025487137577276328545385287112359644808171200942939770559513983602852629777048164134818294629487580581756520144691828369881184145360643644649765943801411222757866896667453344579207297437458701303567033747283506454022215020004412150128138933480453359437504549964260370337972682029160830479726910399744684268246332398172176539424644220228390121244687456522740137052149418874430376159804582987771492388882467381969882699382574183382814729581940869854999202298321463263461855640332970263674718085049756190378532084369527750319023135390950198776825224000585855687639269244841114469315382234504373007864540385900965891018996384412467209774336028356416246968777729963602982895450903575020802574573315313421924134395821391313295234557989196174706097178187978364457967380555285945445413638070847890145967145229092262976570611460694632301228525149512826452693806326509180506921258517582547265863432723129623017570027028264813652585974480008040415606435267463846324230789834800987604372546209266905494870224079124113286523003378330209644583558682760844944471389141935948688907229138221559409417623182711813659588889233624105722996644089779383055813529041988817351956173517369936355716784855113842684639782846110566324908975218587982851846836969605071275721522233972832885717127936690293356426004837138806578231507553983503761960706348034756492110467072889893163637970110723689250730971576982578553044467134816689255698495820857908905726027618852045850344676314105946969083002897462322711923903329994946153486020922008405411805295564302784460973228783166461487363127517913821532065439025465295288728001190460337626919011604802539358462515918144728790851908761039611090955639326473290422153798286808675349783810919588574897596343615492977014849500010392045453779302425146809388298454536538206817328557043219566764840562956015781345836007828578808428370237594593146485894863508630954152002982104016359274365221292422980004967145055471770473685616767522185822042053976060477768161531623988361716604529353525275051515046374618136545034813319130696802002433358583340084623271645442206082922938675292040902617161824149422180967318416543648408267855277321480598183416719415398724994385148291609851423741951398620420596068231320047659889593146937327348734180212783272211166384150627636836355108487023583286514321290600704241826792672382060062926709977036183633230467303547119364814514979211396915208598313208971216507156500263950809133510406469309969000855605145354714631489376488631163730588595477775147417007381537341583593187672006610863769818245987215251342563238409332321864464913140710588687972166155683952985941460633522437652801345328034023025525622706424065856121843721466058834887565921401762875177377837878169449693888152079109222878386988427487409095428113346372738240824726201508717675877526739003366430116177937338544376500538832516515592860854397875154795126355000655720609855163585510124751510410133625693678455413549776214773310960478844015958630855951781396611748802315183912480182400090849647727547418757316318152424911335753642891744884876868675176840634618556480156827384621890149472921670805161984947368152579898949078959060194981590988719659390772047967251998068141009420828199556480206964448675478448467464732619825297092863039305390172371165360877405135088928725120689843431242200094263872546602725867012726010802412446111837313451455646279767954223188487640751913131359065362857229661965808033972171432364413333004945827982961404496923855516581212993530760722024441671801918483363058584687674019644591453813527557943674628954884660613718353173516385955208601085989477303320987369253598868659777135663034843780188430522885597484220500896978495517255838615058902077766282990386909452912007427964743539194016754686929386346133344936519813114908076119045682782618585915150916961988507177684722922360107317479100786319288033306748877352081519103346441270541529960489977411451427084758414589284489691713329461659066809340431564472890454232906499945652565993758332370792020026736407452530642190814589082497145795329423888754490903074033171073384460683520205726053917428487006728474710869975161916577830389031622589817205675975432255026309957547882130728752721459011113995293835937244682929984504260230400441766098668976971076422352365315118788341040364301150525796879522789501044544073974706519789427838987820112558792825474336140707019210091078215602362405700416790387944333060567799998560194978991267910552334992545004371925755301099519436337233637758330381505083825465825619746921997809982677137377705940149562551550704866767720684087508775984470494922839158327164548325562553120081242092152891030469235593339414817357545132307956074016869709478782995109472615267000307435486394675185385571965381888451917220498838131651578577371136880728935921633655479122642075166881350512221240242502486373116007280015766594491723651034089049591609215570868112903675037701233100013660335231535300048644479817597556731260253647133188721055524719846836823310321469831582405718292807872336144007684361671126593769439826272439964812852283936032525733549633031677868043835072271684769636758167988739623588928780560462933923651808964727788810967864193242221718708268021756072566146261874862885908819537629167294571568127559426050754509106442438628060511904107732228527827119140503332756075612714173451409456517818151533099406803042213108493568827690603328626708979492438769796526688485737988153274567899255179323128627837321145805953996637013201444284473807143413785605390930878251828633308335345406968459822878457914650006448336435785731867747933999854932272689944759122577187561111307366191325452825916304369422542368420705305367363963777898148009196227580863825051151448997300737956107992102971231643511099897961052363497305312332277596987396742816370962326904091698294540401875936998222243832665003725958355262075531406630812103597778590740534725356059927301983872176739805676597261948347880208718247163452064891112690772829303057335188547127325407303929496140288115554401095390263665363969239806523412255191591565041305122949796018682934968044939559604195415146089116431664539519331113679823634550457137294022075502962616503073381624966120544502416329589666318146227268166037827679942996887750748967262135965133705813561932989707264768729405521144221801738554077885489445154067367487325991604434536455666100115394664259912560788902243602232141379474789934837746921658286610462314569616527541967492345498884959373991515153935186377675120558643889698780917345718876127679386628196658914626070003983725596361445678774209608098250765296278007789399514095905856295680775591931152984731026660526744659723171924613307784599445059522826073380663593157087761823629221508977033795582321546699349952422370766513749456731932824278801372677868017611535284224776589543997736695377390710641477016024484060074549467634240146096957800030144483532234497467163438094661564802416619526538239496786146032688556151790391363300200624648406465914652105032517438620720910917717978492409809163386994705711926175030794802739696532253554476428317492500477024259415654775074450509254438351772484771296018732027820200139078121161570718767149779627174588240010472372823059559156609442938398442358823369507717902680336335402999092875400961110542880177810089719275370937312691859919190713429091941870629849115549684295771209641920612930903702127462873839381202336800923339685203438724572305260821604855943448416440615943644069451556217740900654436506670037584523357873196800438972355594551699616135003377363236128340082876190926156595657633353054086362044762376042456731058277207849442851294750365851005992140054997428396034624459750756563206026955779446752596324516147237323489969912460192433548143732072795955549555622031206356131474613020485735182664540932832028149066404855500715927473523488045364206634501107460121004532306645514698083428225564355968661699339009140059569798167744751436478918062661745973568281629948767074953021235417522295320477055808158612603001024593962039252469533994107616595928948541839815826445355088368296400202101150637686499355518348398970852082552100492603860835834896908082169593136495279124063120809450640403735260727149066598862580431530416696194638572489423802542347037806684465118236093063412574483174054337255167771987490102386843104962182361927568325015758730089159004873453901249637810284493102615906249507315274091081190241285987520422686673667198529463284985878117602238361417296786802728304040249488416558128209175030619439136592537813704639553157058198055715702010479856403102027076713609359246503927184096047154192412884605404365623556232528620836513441416945835873601391201132999960494487470146704267790449120881057632182990349837263131344767308693263601290789814283114984271871061312647942817940623686266270454307137820311391707148363803357344196052859817368997372178599694772367903276073155310102343852944946632580963130299071407853957494683671802976905176812452985179297629561277519845284305763373091736124822022728026613474914367628005600860617988126726960092849834411069743370660796587636899736382863064143985424116799821103665355473033525466900288200607700006247738295802461373692119436979990358526440323613587588501921895509952308454808952130861051926286308900478343844817987991488695844124242388842252457324805096581928753639346066368798801071848110879787948362659819410659001966790204480827082493354493750423565966893952620962073548164885391430942279391425840256676989219508801036942472467952134718231738014540239286476996145642069110975076718977357615847568280636456564225320947767750194578658154536407749488140656815629560045185051423147133041752426227934268258140197874561499222973390912657357362814830406680726564170941205647402872793687891099801001280754126918348279921260158388982634106255568366155325711255661771901452866806476360362725321859611619910050403078660308278651931627326099794092796608317504055192614658933885563285177654443748361382159206746033657234165941240488629961173294155607179359562637448565261497363509241964886020490132141319567468865989926856363576390267755752383713403562511605770382196099211144628297944950905274216376218607542602226586106303985707723019071439369420445322407693959060955405856346111205564486891785455800423517162065624705590463403345883923922729422699585255634340243149541774486916069454684503767747267484377003802906109535755967241579799304898769766272782131942121135100521312712721324677275658910689623122208655858458174145756725374242886552369739032419148527514618431310432400674672634021021095503915614689028348443548420234526331627472985531710040052602893568801080403165640773297618923694119557770713607160813282227597369397878410574197962015817793331197631087018488522112642808314497039530242587266881400181020712829848423985156209906735624231643651080761562088194794182752222041543382972696774316794753437958631924085785720546195053700044792435554163805750549564551244289118686748865387327905465351787808874333032559005501806493986379020299236132380466656932964735767305239694969773616047614452535319706855216031154177998149766128194427139105132117752428614333459288755958664128049802944129378924235159741026345836613663339281190329145041569536157671511554069607949293856023681502765032786268541932517676997466190498511643815501966465770352870637205513092836916005517189444415782322707655337025537264150604727256768061019085772583519338363857161903925803159265629122770913051791270727571426310234123915236660597847025868504972392219287685768277133431371616196380991716121135642155319426190663907860346735919583318508149177576165667894132345271932797594794916449904083217373682485890695598381737524195127908176508033095093486625077305103638976418949427023667141929275292732095042672822228736922042728685297738565892280752577249252032664258773329897916324634210893497146020913570040738271006744711861356205224983185710877650268985850633029000042029397188951398787070502274727523625554837273845039389894246882134672839164297283633581967718758390604864403622943281342941722631057939161329167256944783686839215313387046589369491477052989220312124322937179860720803673371731694911884052685845867350633641063269999544082035646721707665404611069668790405697980593703145350666706594699859703990254442406740453295209351596160896168822192554182295973215373432069191218321776474106391072553381623634607264557841876240898769758750848572569718899874063117657686243960743409269543550740321573149335664888878409652315176350332735960989976065254297930074911410135995366036297791488141473466427323777252901864837050122446517720550302922644470907113942462100089922927421565767736391240063383925834289927367589211438132682309189885203513611820595001212498844138320202595462892332543671883107423113861965309844365262396446594514471218064939881175440474097663078215806179316726002375072343402322963536885789328668099121377672453232282121658259686022410936977548825770718897340547330819976802353705820934760088326390257622665492165432761310065218612005281689567574632137137634973988112984366148573747326665885708625935482407081243382113354966451990072940989201190795252992193688788015269613161877931422047072869171645803247652036345851658453983592771816516563066955971053582032127969410364540969068247457389376775585577134383194343071079910110507262569512743679005243265299580503115351965217502740516200194887836150635150376919477738731498014118381503315771908341169063725994664326474486879711256529574344216008235819082305372032075361307304383108828796123270918273020011402121793621476663709656473669131681072915775081052722542004782954230672502267193312014003047758752090687976941925151857599996748441485409191672738606126543967608988560567770313708894327235054236657534539700121212228746824213921888052072316615710323674308283204558267072940265878352613924568356739018071730048817849654347634342163060386293248072277535383880886457446426620784681418002676703330861374938957710819079408277619584641347883051020481716780864796265683257615251056486051112792751216936333100318361630729843353608273432983359323204678120006831561399188339309632206199844119914223734558798538024421819090322828869909094339087074079730810442603828366285622315896575342230592641518592478733778407484988090417762839885075223991757936755261190395818258707222873120341646204445770617301290603418898092436703414705602144907935260650168860876405381067781235645747643083172485722254292276139113096912980962610698759584339432295397629259089304032711180621738673402246990020650465498170685119842957238723034049660117217597370439068974832936225727133193006449238468696374208980643711345221737830825822393919456331041462267865550659907904245887342523156534025232101233143835587753199481605840808834723889880028778552244992371439784254644390361726943157300719811277242238097204004885264473782828763869469021784426640948348293835635656099640304882367061174613214207783333356533731880253112697002278504385297174778637371391812094961406265190856242989200945294617796807832809617921264364483968622639264371376745071018015642780665051243705868132502608218813210531959681976799677349591405428515783729626529339705042759799095612679515235652637357722865419231888518518437440174450107366705920002040279743168486485787635848263624419969317664383622272461623502640397216152978525961631717183019688131097443078581847531069203734596515971340410659325834391048843655076949793253744719989457635917927200419369926504851715440964486320976722517818534247605802709845465247241385012209864879580292792224834666876650692329706063835814866915606438967466730290729751692013535489428718480155773152305574349034299341404701493852667444146924328888383466950579771346332896880745163154469027946842028786193252713976217459119495949095268029767968708866508130058922199559626677355809445904727350689517074674959579709419892558674172628502076348498582296797421960845205313002645744154559632643119815592313031466924029581980647230516728057484239459489913279496460467401666176045819023719045787645299163338708483884769209320768190965672606291636461745175476555917259129751571969389877023299473643725752683961252302824647290423241046368661663512384448188250878337227058241881221677523198320879420240283461762005829154432507613577562013394860301302212726158040905471837055718271650976880028945955639483263246618856356374109581536965182752316997437672476791152133324831699131118525801316881073084801522135428465586578480811718493079924436023082432212845452734272194187795059673169715359430270107977836580585878511338765890205501839277539824806455763794932044995677276548409053694022022656806349026860419534053934414953797204781208992760679674411960079331271191336008073901672025251150119875200441471803358347330336829903669241436948647702715953431826587016914202491205132247138435482756237092628858280287034451966781595673354868806574269805098575545795967809164036402384059018422282422575305290997320429363996934038836391443636856276001891726330662825666283056811423111473007102824224478444996053354320182373581039150280434674110606558668100711224611447471219525933877609011432579540818352659006963385968473043034946570038458050778349251022912951130311410313997274797793897335562206138091763922661709970736967262837999526919240744742814450733792042079489815435591149892459790927245787075900839612167134443882260158120169382258240248216386281446436162183984278192478564112447456254307119482122979422602198905564741375457247065718789228954818879399652823406518396245002602370895161549640322352465247793729611759714088806607076374432242552144619105158549760814972685467716227400938488874732487998105724140686903523054613227674561203026949540828093456147357210997534660958046559185997987840846811135042761049393241927699971326031179242612799440648610963185500435492978152000056636876489433092837247400141022130012740714231589775661136655819074780436857692776955577685331407547853384375436719075074735266753905769910251453291795793292361562750741737916750476437341399629398414123795748708810535303466254021461532454982059639764088510972358200408607791743600188442676070134708827705196844001794211350359384399368572801404215928766411591783603926136166618299504034636949069476523140591364119213593410943159800756786403445208649168639851868562521614080461247202408280888320935419838787743733073592165503220406635431412564069773601880102798774234579536373026834033568890372605832981093867602209049763915657938036306740614403012928535510203615846982857013558552072196460083614049271392858112294253053487293019761839032808213061117560860179538415814691451353677560123949679432358750956411751786808443042171142832458089740272081372876851688777150024846829348343399533901483062497937700614972635654807374811384933263661342364438020706140388299995449304858044126334800682835645693126067257977350029216660625930829934007499021381430326707106677791363401251665428868845946096671370144363072465932528485059649778977677990031120693914180042822670042379341374568290789249324990631733232705654567233895147146572460205285784515935321274601904746778451881097825322603837923964540353852918318959042455575148718057522292602438620841610861377121547574333485139171210466688104895990479730788300359625592295874555087819443696216394349075070356039644800461583844301169892773685821205351300890308009197971098360301039062872255424169126255732381718366485803264606326810497312583951113220846701142785030702747571640154632639355397687412642413857221639000463378405990472031668633158033492679157463485012467739564738688973682491391199933084374600548128992461383001352436478472481874981296553641172427674827708937729668863177824185801074605603987718827984158357993278089974171120404820375505687809992727259923657101225213779200802047214887374391899033323696393483862075103207982461106215567872990001753855061547771328968393677247489813068255268151264248085362758255059117919559544004692846912740785797524630752934640797684282636846765057836705775483834016599043598138152632599049619189259408228589307725100130977942288010746858221459079557739798512217593413715941278594619878133826478374815094761303229208443836328648851785880133494293713138031807169339708739653644294772490530740853378542454213461590590439565162207048409399211146885156127964080069903129068732625985802634465959528404051586990006352168942272479886546349751370477303404886007931169623559824059830481030135208277619026705798917921583896844052606395473165009222565613543987342845593697130161055247464508479945752008298340727382351280068400384109483173377417328624269786040657325776421924814073109849861704649052770454742303471578738068309066544470669068438940702946026101956089329936759113196897255516832347455267457833724226094171036253928591814387214427105509674288946778643834489229816044590997101487533575848194832228824035769940798462219741267915203558206112222477831742712713647380107181468585288734094519878496857907532478821600028688817342994010222169475827414621330261391851119913771053114300853742064894691837394338873493052902968591713281443042380042181241068401360518496535756222157377432033110601924845611328132694512604061408093857753307828164205081362548123521349381120305644233692214566846928734052229884044223150577259270551433277652651915498467051089745131926196345389742058803428366748710290530124130235796415199184520897640457377038495270633546095397287191761492764732280259102839140263372544811943943008583877963971431007290218703668772189163105958796480868206099648362752982579636348519173865634608501090382090835511126188233482408754525227820944306074405566116446572772323965989211062800597480614939861334635380577233396231690534037872024924463304997534540953530015538986875996991797583892768613723091071259782095910278872240139130336883952415054272174460781689318730365777510797509445331310118245677030471119264911489744959626021251198451385769571674549865059090339049382034167099428122994369770029489183217620561694513975320885871382034372773850455480083410462382540593169147985916371496562270404376847658015074356720944308461349455124547374390698455646301877382859991775731918163608842192443137224464621708154622255414413924859316377130226719441710701381689494638762578206419416785998849807090342691294678175412697083504481486270986480577220801015795001988760752303279373507227668255726769959366751993404143047647809373973355663477796521701958874464138716787998035563369905057380607695302065782092549207968554402140767622001290188326277954867582598129650337751241714608188243802139314331889607536465817778846886257688365511275202317605294507232336952130598929772538317043304972475094577215255950170816240136672121841998452543191650611736193408030414299517962374035238405190424969019125017637595447286706768338886369683473861658863629261468273636868018818075538592117227293744530252759962368848367846925172274233311844085223389268049512186589806766139570881438433592301816474248056482011058062385197203284841670038564947682988686496428960170781162333066669891156690462482047734316332236133251226570964159794588647478272473730140615405441400407437181726064080617750810571056792766268715244310283345397663459538863115304845705738652128872834443023602745871099244600518028977322565795136873650617248559654761713365622922773527295991789581426058236491724965444735282446583241775249829322358106933081739949521964815169852030669132336059135990634256143207035428224795828005124324833373912585281984203322653210027432278016386534555307336029055777443737044665086028199057245778465735753997934622691059094521454716105508929682514883663149787871522329754066349832335924623269634483639868606497766544453637197633280165955829766462439362454891441400476920761401896747656181053060260153303619693144313815533915823482137993794808924591754508235205811300742964587505117995401202657377824459582019155222242921290903490538440996343653341790437954120123684787657034680018296481264046344458900288907147494329823338375754164069854452728401386855033691595299423986278447368273190925608747622397643783717374645291286548836886436202226129920079546604167581330252074615709550599996656595355049409514458857007440454536020274468182311589235272599335975413283934618177619407160787312091761783854301103073810377037890972138987210248324681342219924766837497553119956167378306254599715613571564902045760610767689992228906212800884904331188288386157866094716210641970340805415145936334433872067944843973578014036873108974456433246037693853860804223058623510255716178713007990822401090763583478256865607157363496063992537370828119239436596130040424180884069121500772833813748288608089921204659080587988686305083628340771924441329445817202658145377788175654789263824099231946267774369791894238525689415813607411431810612862941935981557540127364587937041408744258267190726803273688062555804985461216450492747458113492851689430562722565219166412128115999772328106531715349045991130046545956268634057018085508304049854927556325762833796790742465466397344739151310500414792442905951858315065575383336941605764680417826673742168722316651381294515640778470428728365728296778086046496034707379981619717259134741297263706195733495926820493238066452751231330857292232986590277161027105664077097527768556744022883918706075372105665543242213324403571526945407945707239938055217445329317867464555863435133294433278060048451658124815093926655182318300468481665239266946078808030201043212579455172342791823386765474976405662781227772280754967211056295952782182465800078964139751278030740210182407159611388185260295106929757422791888865328126702450166939770030965679782218362796321541501643203293379107771868708815022769866208190281844097101830048968113583919859200217503500757478956083717633200125758688904787780743240784381344180318917296065534046135045070326645902297985755916792319516853076256800225741852817998572076508720661966294932154639903557190511328610635640373320585413997651519350860950383024218606552880844887058664914182353511241839874072161554551097807143482872805277618805686974223401742160952526121886915539113268855642631493840074710490349670768005323406899927330378510319378717527016904512443076009952587707458914090480866982072195580739328520762199233598616676564137564283147291227215516956753623061166865980905898545618154803226985122582043488439946668400948229386941178139205304252910358358210669680150972445842139677414451401213383175909801504088190615031103290205154468303608007931508941748614095458787065649856808302634954632484125703989680064033627739126488108567936170316406131257481765571103598517445281443759379601588657412460453713312907780659024163020076627137954881958036572383528030387232393149209850887903855776129970305068464532579372802551423461673489610082151060314815838284344799882092646802203692956705421758136067352100202970952908764086744018341784188562276750158709586946669504988210777424734795531944406259092220390938620430430228301274562731361400366490103511689013543612873105551095611506934533565691937819321194157827990862699608247924151098415534634895564699551153521451280693586172630211319937766369879982793740388046372323263550744759329868178714259096608919121563429606652728989909492521046305005056578812766007885642573708666618245689787122822462409170499737060034587555371047876624328972574818414868408953022260823074913955649560122934018032938415719965973300640783259046124534063259810544905758887098427613422343925308537839710170371224048361802828625078226091045742847266146568007254795935910513325770723605033953888604449960645766484202898990924042766881308849831286294461733084126468887847433489390450764860481900559811793878528645331401478982833247949515261019474313156237933827799572663850496465532788901056406390007350787027136682329143681161625765819107177515547611155903725955934708306468939471351082509128275002134446773070715041391519963426421677697284610075980629950421279918130590639695976174182257197069527173871613749195124269218568290018583752511474760755916724611451567518579296717104407574911653306600881536427029149511591965449756112830099771114104298914304644559057342741085692935608715295617453590712911913864618394723102261452728336863479711278294121808068757467124063102436846646824662921544518795953568654760968013253657054317985965271793143909359923269267553879258603215016483957134801927143682612569317653394286461947870456182811215241297054631254380055474389194213200256995322427708947653529954808308805041492869330339499281172512559940937321611252627287761952160613205615381414026885383347178893853942469283014849311129230851148765501444478932823253882009500325857499734593609215059574762947294817575017442267186336044829727192152137059110621007006321420195881273516879455886304366409139771997125311450331270675305592316980386783669179393614484979933277167279662964071039008241269573811579357346863628069024322938942521312226753308788887081612804398496483938168533853920499163508513254181294155192691692816768851557212209999316384282877152728860634113817013695061671681111423140916190456552302428438249565162561808868510083444958774574281981769325991446293782826135954407754802840988483347238738849905555038246367954112024499667956371742914283022566047979489710200338334688061137218476615873062101561239970386018976078353162297870891881968764811255279026974837447790158155978927925313217143496330108989837200440230090116447073060675762599243879208320195061283077132554532480797003027854267285638195296363771792463725453326316373369745373233192475427161519469861446411370828756100019350103948565688988718547643778312235090186320856113846543001008036174916918316153578055283598523873239043116297121817366304755428520433896737758217833360654502087914615854997995404697275014529394087073839625662200489277297481618096970349228884291246351173984199612065126135042998604013915710855352983197276183980951836548267609029794485218188891399240611117498491836447180764741656681348650934126946262195606874852906313033742011805835454053869507647097177172062418496319175022335103247908855409569138319152309052355274953462519562977216227401907490881342719252736714703753665829802693949153452897182563027959704957905719240516007310664497205448433099865079088463060123027071659455436917353430377813833286741542531917622529039527619073347034191964815401040149978276574123518450711339031258394768366914428810200513737497315359531421830287975515392268179536884205671338000194995139056638299845332635908195047954852092195639796480533522793954638912044562045690779173029859828371506786858905839199960564990840376747172801359027661175709381631971947271648163414995322485846344325744429735801192462294460196880183418902858710880376987678558293718474581027987708147253517728783607815320273362862134118430978060356606791829361731693364627775881580320427875862885061687007598935983304052660400705412902369251241380915071169218376726503552037169785592219365845407090892772679488972541668750110424679441470857243639491122368432018856712516384817484781100443368356900164565195172172412622478815740371717924244734011372772090514362275349128508454342554472747316465817425320210216585522834435198291274571975460149893537586141106679893015567655043185264698822901252893003114653041907881538516169950974902775892204423536362545700524552097819101371704740282342497814912797974710159874018891900669857113629564535559494400987229820249564712703209302440123043296408267115786213879433656691434968587779952179022151903365334108641042866025121862153425021095840838350409471790137678916342958850025016630158989049124035200885166168372557367591637871131048364028708951207536567564865765407591865148780020811981702003397890625918633930632514279096750620008063393727190470262177935589440840475443826172092490041274799532733487945686183481219573927520469654890878441152836742074730375175919528210961416863069816774898692335370480181082896531001453831162592813050111472219405323507094069915957153414474438633369415990296326254232325901348505076608295999156181790433582022031291217531906425743764465087929341355948447725977703897144670888056837556873891005312658803488845437489941060022406825205724085271245157625644571624102561199413841698862557207508821827991928736348011144978804483968146190873332946291898491491736529012769321401620385206026949281533676277747268302059020544746767813475403399192808646739178862379278561298910081202240311815538655920544557051886947166553943270493955483001866987741220618620614642408595334935642545957716014271573441609911543651107628744167644874291728999452268955647798514325009051918268294147284049768896455661806397346367161013867702278310763906251695864156804348497913809633372233492812772736201205969958782038983332125631082834186812369735327165807630245748063265197615333898072433433004562491665308235023584124692716731286104549604693855487303096778903326262135019003721843706595219338934071798521527402347237379827290700383319974022087490373593313544876123312986513344562700466488405631416813460667289103022574936234795743902676832397650477659087537359235642925827526251088071214328723987139451663050400790878950227946536601647529038711066249290203249738679116423191559515456844471666796798723641461592771668554139410449246307756996882874086029169663857687152407567873753907831646357953967103021268004413402492568044518566939584801598541016420891134216730619536267411011556819747037039980107934703283513369168283117601021892903963621234283254314856141672950928543316998148424607586817734958822787847710339995698390752632194957580224479614903117672695927611331262087983644755689625996090358428007717496035249949871277244441679464062698751126540446334826961492586765693648320482861409549951212367218606722359125117876084760974719415154125067170126305876916526595330642514431296207771553155969217438605106068277934574061447798876389567213585991896220735988619053599634717698877180263203212111370775970678432909223606634283474877825107745236419546755629520895986147214610878285259305975417324207283398906636954974439082370467308204637368097626223989529339666655008211745011559228923487931574394879046044752637748702224557405404423066672562387447595206792282799804687206238215635671448223059463378924070312008288286043502321838268284009431591695393696034400858963893351129859436477076715874425040509738342667546234058780971412140999011726866112738987749841710304404172698764283564715890233811853905526913468025174519692035269951776005122182129159565662423570275407712139346412070178361949845936222353589685810443374208650698059256470478965982414894741395225852585597186352740468957020107350386271693858292506044704700804480006988105641758645292352814303084287103544830325242536807000087849022107743059218731174503524408067404265863364458600259617867675518021774743301136505111909318716094568859976804787131609446486148027913383932127232264389524254004598450853561117298147817063294167068605729470860894743789855286662276872921081730410077776933986519504367514336685920373026400505273053744379108295247467366696857586751217358608596750570669457897982995466340857555694857338318891854102056968933121986445798923696455034100522774573369409288581502547746007161926216648131270760649262793387411229790458302115400859923013535967998267604360232927987976123262075213821398419196034019657617196941417821284785633783792458221152787107694890723141862062615202779218923818415054963929139486834956664131135905030976996296605822955356586508805073124301193990288870241178365022003774081815689626649149228968435543375540101677674570719720551313172060378255137657152227761111450776044455656401708421576616543897840721923735916726437825121268138093165327395653165373808001300891766196469230708547882423875143890019592213331080379003674737807258953251878819414863155185920155767305034907852368157071403621708110301125609223377482241903997271514403118557526250753337386326830519158805947416030484184207679424144672711956394308695022901432708840193568147731187210982090279386700222378934620987691903687164694256939695735708977484677785206494119279164532312145262247447530094765305349354580125663155913673454751290367805747433210272401243159234475724332822194739814033856098991927312023704866101369447334237355037943584188682760875734777238434522746059716494000351708548414305311542025395230629295862838523035657548375323784431529924328751338993498017996525957935433953911357372181802224286552885428185100131839835297813130219267135375492488028982299703745415094541170058977566374756676912437619678943457449360609701411993048122346161286959498854336545781007005917608237103766144615516409022885516468557535802790167375472101385958545365338676347075150048939846372791952687583342215494332936598641464059625636003450838909848065620640876680526209483373819409412582097147872623675164419803295087151012751243657136745600361971401528822618500112345122166774359731564835324508466571917823463317774600566904729096535417903401443155890337635616333403219481369924109017642854562409764314097842274790298319500877760916907673102317567994740506013853219414957339958445413353300455089094259210555539400076997489012081220782578701862638420011887420377361594408646787418320109474037132255708614913443399333831297584700751634849160392504428915601460190218696007656616598021819496172399822831952684262274492188909419309559671962055811530569377806983863361012969878049868742849495176590413874167118857979751381266471167648983956317004858196028894040407395664422619429325039953298438257020318874763033845806735145995007214721611290475633563537157170653988339477818236898843222666254865916895168672357316268204893336668065059521683869778693385230062707235340052199830360571037935035287738065784206586742034778213905994677194036861243996743497061764254305913106899452617965985382286183077353092600262813759228865233846673958921734910292562179255067955961033765215667487226897480445634567897275124456495382109922759696832435961930137096888223279483026887680272967845731651471098066192277416118246154340170120537446415221737800355647640293390336050188877712300846651600634305788570817811093720279301492751041898391476416155078642474968025745470820410427313241220213485442842119630753682650185131533888545605719542599951554907214367575562115921291134583226504990845661401799569669934642281710623294521649644683345015747800732999684734834558184582789236072544520393418983993075921974838010590870336504167381229475626423430649545113936877459802309773544227395444317568658363686710904709902081481307201807970982899686253235260377103704325647718231909978132652921146702012917587138187821787171788637436527277361352584777612401091724374893000575044870258006626295667199609271909789430712622859376261771545338452407355449579747493543268561198571927433004437787987549277055628444940988073145481315223857849907723590304678730654093806655284630406031087157092208264625983890791306909458974041035765882406822154646941390984018708260325405607626627088960107310265094690513919121427396436867573744846491604266246479131735592369431830741701795295382604550223869019311123802835892024536882219649512072723208336312138107506139790234375925206038028781587109940715196524449952826356019874150834867780751338241181281056748150961795318280249104609621032391620783203310449650203899471662496506304313546466960556445383985170732321293844897886566468610893123050576779073180948607042739246026152443272580645592657583032132720306981499771225187054681256702167015662915090332072769883291796087252963616207284170457723241387496392891706889317935227813753538429954578728201347673479456306006484806060780030018377831910648096221142766205936291713927756111963080649140571964914656119789456671968978127461524257924063155750939274623160838079608228925632618139915623292962672192974883252023940916839778041903494565541908993991542520684994480119672617234801800239437276286104517992651292279961959413244273411620007035406322412798987630872343709005040701995065660998880263963924322982625902373265623313642086091315552527623793458435843414593804373287240931838489696253394880738866548369501140734182531112517394133792795640557059124349644045039512697888659972439141863645014378522388649000464314258469269843171213073503010196443778789735908739682505379306476048527948556681665570620087271174159798322377682711036016228661340023735778696693525090807778945407865861410062227295578888032686046350028376106918480695913047887571214721684556382549762552852089521732694514952231199059883226910050197096766091950617643886062099436280643902162575976701964576897442396839648683095155856115836553348762617497087297650595496164026582458666008138244453347665623565240137287862672730364330237873015991674131229232201298368828973276902872310901464812497601394825886792051320988107486069495049320155529091288702769036683062538169831922425881961257139548964732469438879207917166301354003794091397781785241663245082215837024529462760240971055567304684465476374613754421646789540639435005378924294907640621326443071273290419521513276419619386523075058637435389982802365164181299793610803018415575289899831830840952600609503807530398620231245602200556974186407750323773933823723263386759220187182620503064262231684846843862082547774389477964282379918686040835725664060018877989942011982154705992987166999167748743799930636158466609123617325845387832421003027271542197705790704832413277042380051160763278316446672079677355818140719253096066923099608043701590819186663906067110170535044608141359614357861921195041293993665822343949363738510736593362657958136375902577810696174688746659175465274765375723521662070853319279601431784862939494783105579351078702873593738156234878042195618650173614534802143901975205618821268225099119170549534638127219474619370030129614040476383144564643735610787962127074571593790375443433163976921953485984697354516844919732246588795685346686781768727136902818758090358214952874996726469463425300052928300240653616245150346713507100568286591852248774653212217266761078325768921863474551455215259574375654777682410805074892094942436495324112939361706530109172302183802672600328904712070913739465599210715364539913368882775612908302893512217841431110365470995572688594758886731173303777418456562757761207306747996125440891649526607654097115497818226941396305260600570140541717697102252339174309438870174904443816248921695722062746370604964996494427933411638327142385391445936854689980695100781349173120165130332536904862728387329542914454150952499712566532840519803927520888523102554614505874564552038420997091379907767078201514613945542588613263547610059932100983978208296026748334135896262301703042840858987812527618579967835568980092760722572616990589898913108295358993794456203389464609537788167318250176463678119484090780959060789046988420705468278644478117145632401390729890529123464971496726235604726214195019058820127596282950713891436377200721783558651419905180268430178650418574393930393251982009473810140999971899060995406863640408956448740673638176436688121487029276822991208599027506238355517849673620134689912978938845067708548822029227125681715215982469873322055945360877325482474817297231470753722644028298034511925037551093831118381906012960655153838691192582752849361907158118441149428425631880252689307684515260863910377503583108793449226297209355188255019502147282629440569842180255688871905902054939698463268184352417766815907123050047864287446992616095508164041169336315128366205047331105767417491320364228823602979790125721546345680926832102061829627270005999632932191776448734173181141505066870096424198671151246262670853789773101479502810626153703938772200162898788986195476171047762044788818241299531022158877101462415379005841086299725363456459640666247091959716862940402369408595516870273833176746590411997244046426679940704009710364122140088405349997960755956735157358124799637227265966121227701932610930078382271605589228126588833665327379538383563080313663302257307141731794865736965175287988018652331086034995260926437815312262706264625131596364800988832677282474865407052084376362089530327322726171588547501733717844110142271169368494130389160854861955788015181666093087303180285113390507186990026659446790714816717980746118419865023576758055041305584666227889004968116226672856602624493442743739120285299919166130247988602261833492767336762707731138990371031592215310107972790638967153351628663959437409880030658895094173169094853580429193063340942899046758939947633756085356694656644075799055248468526638332817341506284755485252582468600541321009460127362218888617628394644389255895171516551898726914011961703118150608190663981979345012545364271257934267091612196169288465584272930260102293274719871294413500411815003023694336887898528635347784058883032323786700554362930843546050632971094567572499604607629064800021024963374113311402824328143305434466545867118445461137808576277706596558683431416748900997927586126012365060988406384145267636872292760327723131042246491203283156622813344356804810424519814549413240309395432472642509844340504994505698429889109664371697446294443125812251418059038250204444682978058390741189171740933600129392153294045070904856616500321063146476459000760866416204781571557865691179494019378125548285878978514677620773487365386798937988854027917123253466153312484650187973617747183048191718988210234463975128904257505982031523032791448308869473891932508215187338146653959157475937244988658595276114746117725412604490993478529966238932706844031539431253879673543477383954430953631825994374101945036923117304583684994536290466159079722695352711495501457852138752039742348079686385777944559025531835106111298060947667895369919036102467654212267828924571445649874370372166072812844699785225358102268846863879697872985836099691196241349046479162098381021190733793608961981758811856179446884240964384544274305906142395460597263089933030671449906688645292856565149716518852968116069633894997990043185158479778580486041600738287344612811140949700866434684248185328015012760208974718689174660127528926025116235431881650733995512146559105129997535610718954852440830677459789257600038804995572341572589015768910266808816980650593711022266856637001053977441374266473041051888470308345327329089642298858754338854993396158070316548315871657041377353601080304310881313476918114007020180529520207413049757495390238188280829325532567953507671308947656057622959817859956025105209138612302907849976543096470295417013051454193450556451770597050387422339149396540944831717372143815434456677232947822702751064781007853965588761959766850917725950378963381293821931203279013357620904148859340682940997277270339773736179446819179365869715469962848684331717140714039440284880042375055615272082541158324319032994059385636294989867732679174144921084449318793522650177199240905308481430467875772614874962505573144854120564364712936409569574039285014856317409820431563726996668690538451267783726076939668010293231988502049886630791570328212159528240436838784722718993242633276534570328808557511832726380474224711309741505870088320523716241632145006600002381828105998769457746544773376553752768704825642942486228677914659656050974175329124056639731734595135785781672658039172140819734240955419409082172023699457681331569029676594983197776478275248343114821912548242382814789759602256924318254261349870065597406581429241219944380761675628057005989335910310661355713712522428082419936041193661938179694393559840431600597054105351969924100248608915558298481471368832370593242673267384197895452430870976235348404751059980568971330837679143149623015085243543893925345116703206731869290484443653268042950857578585073243574423591595591037880469265176979538999633794006480222270791208405298257589382297825636123019783094170618003544356251432219499785377358899889296768374116628597322014764497119743692656460525393260639619753792152575464364703467163435854536635467690538757417779365447865039367265757078103276993503718048537470650020338697997808397872394114140905285399003288592263129559603518288141406411373128149125736383748498046312588022040365910457568260004635848009744541656393078710020564057791756764133227086272171246449456660111519541991592369806436831795497939295841448070266044078706954821156665005413821474722556933639112928453947442846987119661761334842748141293757708602090194054688424506762766434731146156254713856062437898603462134727758887925670548182792441679010784666572557759753583570391541125582128831411785939572190730362778902448404912933865390009280139545369543234176474844642359294324887643382020786885833874708041068337612030306014606768371932712288809784287509292967361426746507290959230620918541084243798551057106172810657883795838809218706374295838958246203944125834475737344442583615560909746704027723115207585438356255140286049203097419064197049701806289183086688266126031116246821827594287501043599433266918886689304831312082860358526791603117520663598107536522325330882550743332447320282662220495725704035367025707395848842789320752016045345656111553496677631315368795022686561492887700339830986799504010144878830564665347396691487496596563618657125887898484883596604989574134930579141590052086010328633638946348116736813765849478125154046246735725540616579267687501892460379142353988080749094255874643075056290556549142944257425864598352238961515181822427766015098528483130395977421998221920486826980035831272108923797705231957457561909096460313693766514253464607490147169481401247169167901481703684683929938520041313480464771719445810200675282628144485022233663571452507244865043765476682766732363976274789884517001417099674558224444473094454150940827874464198285473085183084810469289239862970991297984280410840125127604656635382654636852805689219601886716829332016371240823122222410833263965338498983021528368809246292814316018443156972501330824420060937021520467643326287560128119158203152252909906772044169565869415686333210139042765800901681942237310089089812928301538759939696390229000955774633543576357363089681119747985802512103821712481829024096784448755016600035503836942331190336540374110180863688665635917440609982233944183505120841010838676375294150376439710230016957016750559661709801912308334262868233832176432189884104157551105308524214767744856007706460786776208384097104058423441592483618700055430588235054573653571505419755447540957604693883299476087315549269789997056551068517156333054186995857320133796746728499839530020715848437291884059713974820871534912739728545664093444462625800845110440057504340419872796122194777663383341392383563267052494676848483298476345206143766880007449443809806154397955227689340531272244115232832657257971191883066450835243336204288448981103258429797209757128541456371639115961428757565355270896349345571317888735430339792641012079915484086608084731778764581313582316585579257862521696045295067566913089995688001421368054959713825017545609124002919992013523541173436772853655370946818618093240638477526664555650807724448287290107748927960599188568070882881935718729827760131105586498890318485590606103476944867727278359984850190974433669996330423943591358642339109019331596422210583973424937887132487556974089410008881042921467824213233678440741266365639464212126071940326235949855799467141272012465282726246888014474803730040149624525683590817088190571945696766064162841636933300129074773842893831254559978838401344376227181397036142452835351015493501506597488869004614584144969026787477742526164532113210168545014404076085577002778126567159268688558512871031187019093190252026965428892314021940323103036336488012498602527051905851853271301208159531837532286726265980299706721059200197023965735323946510698839230262304854845194054287566034012243946426457639680857301554771802994905005420250760048013141892585605987578526160776370020671163770622854030967229735597090612782043494255142262178661117313567865190082222242733708234675385437780349687398158617522385426574523113761838889497782589469719231239983060946486140779087620120581749974085499378321977658842707717318188538725522816853561552219492749491434202988251064572566566263854722164087729482050156446718987215868167463389899224113747199626304281269322184582777494464102981133130712587938150652448072302665112099274549423167074818447735590031816926874813282512368807591981790250026016250016040697405861231077833742480748982118355314524540184251009713929560372572033491648537862726623094495414055937128211591160560378708790764356890334657873536647731887364774693856653175500297428787464958633625141677654862737967775479350035838179345658702034358407498044477317106454512260698743682310216949874267339776630790506641312133629403010657094836042757022318087468409510176279017770854344728958692918048857692203632248855292296358907563831167162436376385142298695473119025373555678529339966001973917445858601981917352462795759040656382383798210690369879640765311413638748588053609883475280773351236153617335742254733122103635463891592383649609879351574804565814602532826203286929928158149993745517019560443002481404123449197956308601848891872856124222885744996819819148875303918730429332014033122450473484832478892180581980845901930835757894612262163989300711403906554312163926236668637887291279263567148276534029241204853926263067439907527360009785058700849797624457002629404840075388427737055922414850510199936341498533842226162896780738780487904499679924192712201326362960629347961935612353677636894573135731643673618394379966539027620329192575532663419168284788343930587886516559230358297754859624095909984350015530938986945428880968075772512442478422074461347433591264909276925103348448728956423229013820954411781127536223072758473407632548984820228477160644930861628566126867317092235201867815324993446177459024408303832059353022647830101890063532450968834353976801956112570552603865716257373901897897305083617285774550203029106523953595483659942732366001536974262007287030134045633018440674608016321285794119930110616138922620719206785375526069940417412940939771473991845169286711072156268108057965073405166292405931546446448768285654610051929993058648676129393656143000995291731183607717829726438599648189349887704762608263460307528201279466070534332209153038732178002639477186394501899966360881027192162270296260936569988936783577394394799499162266293179405250527362559002510065319946803198540422147656965681738121731498014905627928931468101531284831204379318906552017423626486929401880261209141586520400282769946960564898886651187978259374651482222266817223878708721547763610243588979537560601675335294891494576545012665554936479018182800031487548449293766422472717291200401873817722487606679743867846674702771981468654122337888371045196409768528307241144945596218772102330260646454273690328643206893006312722672419405294207243714091559551614081415456437948009729539220721377257523864317543951520402020012425226154635697607965664028376290988233808058854645338629298326711092990685606127743239167316181296965344811616518303982633636247727045090111006981163263776197207541368098702860570052477745759580592759371828914951933138634628236514153430132046178591629112429725357065150922856593452544698796770129565201790403100216049032834884921648590448768853095429287824460224208890158300461467180442012991117634335983867124048290030280578328637311881784105071913399002646910869562887494009294959134197037572802170467895987530832317506310304201369278326476122290080938378256710312389434646404945892384663745922185730837766038872138289947679562923768138917241689041196951997113234146163844588531172023362701332493776788515095073651496298787930189354966393169243313395110232086321519112520895158613352741295292149458203349748697037526316720343162158086936815956236086814112766495464601431005076988434067284034953192988246585854276836864938264480309948536354517974231211003330444797711935011016917986465099552651064796808884641160829698081403892116483445916289165554899426447496645434646787365338683487121733574071024079106881693242359984080604729943408598602476164371897529756361445126651373707311491077827889938920618051611679677754151077085034591938129560364593437312298666031676568804975478006114058104368696304366558948867536322795279844365497706284780229653596685207447861834337492978744248775353273597534675175765059607671694266564856170961316188922491054157172812936331956722614989660826511695105184155853961478901258423682274826119851930967673592874523715405380490188636947808546020082103928416785067337175557663778945513713530017326778035557361480110575478153519796118108092388425163951979064215218718949687625130308227269683849033650965589152592291516406216001391514215318182485350920496459191005916651831828781614435781368578536106864217306492675528779620619621060341256112869726477784463244814565594763467508032723593641976301708724892420303074152048589414235883904365852104822458158444062805468767020701005741148290761589399555715896801188254807423432293773962623170186881922942810294351339130351982069946884092219455136292845860914402002242710184677570478729237713241844550410556529281016999669402668394067264290073164740555956069448965515102143544285198581341301110522397519728969578709264084934419665806068739013962613854845077249613409860389034206078325830128993875423475748293934101850770081492208759746755432293507195867420931259678289890810950922833394239895330184212522035898645706301171159624205639872793438683520356391668787398491143968003303698865096108970478192011201082046215739219203850379984881089551450409252462498925881318367268099267319096044377777113770991236867606239008166162442476152646251244873334107901518323472358561570646631962265466729989917981720015889554094016978097075361782065153394697362176951618340369924976947679584078088896996758694331144850453183375956288140967245946280725791003709575746815557875421943292236796976941624467581185384149336264858073416537713128039109826730215226053514908981209629979288571697689851265742667243576034755638096269260890016466244565562790625491081541187097526024987163898018779608309076390904493305300577304172139111194176086816066646626228208964039902027059773359091588218038516147007562442023923425033589931140029219882793872901726474696038680243614522561063384043189198890579566499764081380656642543888297126351250140438260381692710558266343422170088454766597502342471212792120147252699822258451783914208587081831186651264223632447798890803788914987082985604416950211049280137921486304783886252603703402165768314100304469012713392193480235285405389676952384832983689251859944495027154285499815546400520429058683393181597817829529681608672291509882480840961240569559760328522970673923770739375526131598234253450022229504119233910006592193784606772965664431007085206566738181525147330972766337890971514541076145202493736241192493341474457656142226561528013230611149649970587111880986286025161070792363635522025382717521930224788168983197058154790480365275994544046754128898566565209306071993437567928398540965320863453746689075031260044242502287272223130952863871261954324932685525569448741198623962930829965936250323531920431032560660252759648517679170919534146899217806568474808912321386479271975397149262223198485053947948473954624607081923263260691981910854243732082789918809301641920997081892423546138547759849473778977538280267489664337346829859257690921151920258166608359263816471121877728409131266688901598212721491029467986984449152413628154463634960854181286298767058024108616488056598569617519210704589503763039958565494471587049782054897676463747710182162645028010134328072047777298504342686545206223311436617183323214586556718253570368580355392898296839473063795953530997844754230654684712567808711676002724948856654590800687792174178877118597600048322583964079336598120573774173685114614164216608318352196910944011657801396621123610202284113843138382538461770602098208396833476179372165250367716310949713014442232527527228591305088769110633366827467694506365468375771100444441006622906730514744037063869879571340243247880407272877697222342275043507022162238140131349643844285793479232698418035951992586704909255027277738923155425499387784909227976673733585546519113083729655120134476477932212844520144688240461147117365220906320455932816670615168957513743309241455982308066700176165637006031393006954316287381630158583911862342275489099215323908028856200255879064189284073609387531009046625105326211094180295253347279861951920757725501232545938309896511665434151891646378762253076309409156167722400865687163874322201008124834523900108183513920739569377741296408146177383493656103554037225609974241196473763156128513869251910758529379836889979547893540667093537606884356459204604894750772465027140346817010164461352574124641568936215771322842014601884446477054475033280355374422940324292199780257103052287151622989670759379071867057673393022078834391361396468115882977969384369561543700368725945068491630056001289635197951803966433690191621076686381933995612284314729754263251042303993326212871993283084689567518886463190142569576630238740705777137678223654964081433417945308756148156682759796466615131119395772377289783338600544756773185414983552250143249994634023303527544994133420132271929061517042469070222975848193111202835927718077044261286897278382770517486696259095347998080147510365528452648957600196375893575996181685681406278779225088531689000318804058889834694581091947949450250218038958971790170594954501606282279574517120725288859921835878743129564849444731887430978924387475628477888819706545248498197932837523478062197340139415583346988603452229250142742589505863053053247450476742351394232150676343867462021434047954364707983507196193039416694061495332464881280675139989065009141186008401146113042736475529151952747156921595201226044139089384420974635166756155986976938494011227685115642383773144307295378523536558264067189286568806048338194412871957303791145008630556661866232610226810863325334510404312645727901117541819089060893858432257844098581898260162732637244277945949499672454820295868208152099958604849165898646924189977733797397721919081195738654768901061575322568318432105332956029149779009294213105585299394547758362712085625313386412077044491447342963347126863139913473598839880064678078420495110681870033384540606612714445907405292751893572703757748903570443942387212585391432813221369928859862795119499144427149154166231059384686594061361311320653190092306646350818654903490188399319045416643015531834702759325551651170547428069827008373613567929789061027781897721184146122110265149875022080566552701726889780167299512677816740900732846259711267029769423638940873102308350429631038274653277317917074503794884790485181067542176413251766852371262231476855730098832983684660829227586212831460712294020168386393508922256589310300431070427586354901988540638357264661156259540009540856120135938394726943235380143690137671658205904847425928870485317009447653183376622649905165759401309780103404812463860882963821757155934857231842077769232000909433651116015204523038416890151199928645634524780782559485530889946941815187247766686812031531240035775225889767602203481621774678992846789210025914349097144119619787964475849715795784298618081990136242885394527072535704853704427371028128496320174196481640691486686516486950969733471294860066189966481196156329957556433235041990271977963387288020900211166610073075088861000455914158944884484629428747352816987548288210753220685224295848590679632144609990874131550877550621472374514014205199510749038892556120290160592398563007594266723568887838217508780951595249801201030272479452239631635027717498183347762109263120474179251667231501719516290671045222376505168554376925817510966372736507021659267203394852767935270502066434671244964732327737834237319390477327118100204992205974016176157937516651276411756978167203057665955588931508745935056489530579265633681522620581048611081598955012410553573909129656245611215963745590224817744499692933997992279852485090556656186227277273747917021991542660220317543248590096979539672662525622073383178712152213115551077007340024015898213388101369741655587256794960747226737460584692186950230379539533427821901201423994969948590030685177689165412020001327924199747911043777119043057362359798679314494185257875101022763359533558354969259130241956300354200677123928791509728253062157149849406812212947041601951465858254363309499219045871414680818627775800553947850720170242557348127443239591458316488691498872790828601156826663316202290339397997939076716110194686094924005241988817783750764394600416576357584671139195800767764253034785512582606328331854082671996565419411582904498274102284671858056255425822942356594032140849025731374411456856262511296084363899614102771494533121474927636292414293039440132782739153568023689880827223010973313054278756383677701792854488030529537904719265147524545570911886183389135801976824660782672098437332825894650449447352943579212947641894893011103078314314374635199058678284793988296013987240993822867839962609262017354094164780893529577113984809483594612373523116799132222366014448446524108057158657455640615296679634996838445961662146435227400298872505773638148704339120285109890454141803199942400751318611527342364187575004084392564278919306808117883138215728327690203804983946920739230689902044325244871746544574253631564877857902749701906527480345377984519503884984029085120580463383379763486613516947276452290404312337989272960136271520790465019305345355272595813891880307466176516027129951243507575381757091975825988202927541145283832916323643249129183959098143472102182768415426043376162011370332823762847319321666899266074310454376524464424244681640965232687047856462319857864524254984992003652787041425016698572101843056826061596754845000397100544874535678812437631380429177492337132661289420237322878479077535584432150539030975463365704904312247289231989664945076602586618053011133842233040304790603935621206010192464815810695020163566921842092708891727874318469898669106863351554479957928760356690522306107956717550794476224594943786843744460936993901736456708508601345556358100030798651944079336633684068302089890873808827799487341357866422661021924740534504202270080405361970428661886521935147958815933226937641124631935884347043963596853178845152061281623703964621504340173516413029988206508962058581950451198839438307315669732419590316201187237482760092738305942118894820708700278484705578783166885230903311672192399196569370862834267249615044921269132044252542532856095644201948744652797380219838529429376459779217679633426398178518738746288509863208471218881749161612539615219156127937987312018969421298832104491238289507829082134429203556696925674413671724301253944558899549707806348313407227379591047773475371006472636420899283979194029023449593432372145818937006219939585882054813200767942626076258027127831551436630958415006841059200974798016896697305836168726897096753711530386219295855235828250499360877651293508954798303783169250540097295831226991873782117062698344241176023528912310310414618898440075959822102653231108642254179502969554185713756856178437127058462354139367894340286094782840470891500426725305400872488176670880577938777088197027055527593846386392132518226645031228283221175710182096023242476061121523758984605793909343368122703080077422347007048082020824451694252326155749168542520650764441584697380952202084205636138023819502074283680514130219368736755425087306526236549152072818646544514846266412138169078012214597270382900712696384114398728225305804156432486512208748040014209567739899196765841476937321761926158253106352534823337242808273950524501307376386675200549627399732010024926788242121890374212089286282561536900349240912305289559237992792850033374529048237530177323373699774518939307344009835423154766191899566492438131391224691393818712292328101431003975992152696303153188461472208837604936567045955164112757588739600832944615584807579316388384419863592677096916904209372800706789508226872382659148251926127742792370306068547340177887785815823969363712578801098766811225816428386804234853098889387662319687842489445096642299835264241609057755131556434508543967298751625843422558305417278531534072830983027212866259351197338456120908684202711412367912967315472882195570909010377831035314669962318762500680084962821207398905080729323694765241580693434436359473300241880964396815672146738126609360144115598106378687581645383245848693930157563585840796546864616160865068320490264799244658930168052939311736961518326921354533999060698158489434224368857675707377634291975390527805288041363688239833675707357351970294118993803356805429685864036235254188664451658598389523021507308377807430656422903828636393964417848434072361360167391662741135367598694302017415923437673367467622149658820418745354502319872994078147616986142145083955648329486851692131242763498360935833673714648954133500473008371465838547976217366461776399635287240610618044889876629289666946313762148425863498092117320009937794069221713455622871858101317463716511095974724612506011369874806404680224657838919065743795529428230638360182249146101177675470724717331251039294215170267373433086613945126614796055352543172658743356997512506927296649765292596991547656978709846448610070350563898577905710811855221786034803781097338011726865562016034343008059050802994939745742344966801310271089854592738852091579787780808571400280892215228322286729050485095675861995936087414795103737015245300383021991566419714081081614920477190638281869922523295316035260600002102349819491687948590852622506407881054418925091034784549392931649898573603337265714663025537580956818560804093434823341577956348414454324547417079151063469866538229233901308307224215757704674510611007487005072761521397627446165081006443579742674197857946120802785374689081313402277390736317855501006170309026631487529125007403508622619567067253868471246787010593510827732208788246867110210257465805790926038681404845638817184237326429317268886997896758186898540769601157705984495120410181630925562860961762904177682706806340317590973780363659664901496719861526255640400540940597446197062262501130780691712905479965493700046581531814142551493980144309254997699426039209662823627085277925755275754227875766146811118557857189428080721950295632889631812885945588538628136292732593195080491882932399529584121178579445738520607204600432978953559451789276136613905233014954245594736817587507378499950221323114974111949765941492001909176432215065665344130310986018339167576243629595434903086996287229289839326022652954859249426670281540668397631997330376305482878718258333334516272879194013492401905083057518013238262192754999460554481073395766669437521112625783967771658794256817273042404062844327174215098499822693419582434007316759519105240409193425367583655258218285667055673876681841795036736638685793091973778939712868391228834492779003246523747064007744259119203899132583074887867505092579472158865207465012227057501263026031135290440564245639111545593741923713311553772890762866712212703565365760474962640114246106560430910839308731943167074954321935841497360755638411149419521652576344650938034902111646307038442282604904458181475635465776139721425568403912530385070767500415801491058099595930198751286972135768886506496612388290908745940887828887506533978975369285373232434690314317272106987530482501732633316395222141599054128566128700631569004422461264850716378027426832992527112049564355398092731830923014087404110121129347150351265167496453363217657551621067923249566686644577847345623933729288884822622641126883824665464709452078186320904371050467760434231298239947604336752934143180671745583381966441961990429068952091363733195689101918003779975401316791221058676292901031480148190460310268755962415569419449819902904608868362753736336037697718920481212931424446657904681214439380825110658804217193692505696358673551827216704644019026955944747927215082003238173326344781155505856147639216028772084446886742593853470797040203995858986601231372272382859259630414127915401454238160658195519378224024078127148305744530386226247898016122703545769955486899691272758182203051743690857294497527709708950287908258888144224812597130643008674796571817972851370565919310459065737292629749892417531333005064885834377322059766281080837256555031687341434626850232409572480939111781987297372911732516279272079701187531197599662911993456032554163609658883581648206912626156605576998116924630847587773565144180487473038460404374651569159202454983150591616335837471325501513215203011684382166640445982199778218694388666445456341890571912378907249575983121618259583116600736565572467013494831995218559857112248163689323724229869804818815673443306733076759016147928443931982602668906541443947112220763191079276375194076785410810866444967903706126312486301456988620243651690839585916542213383412165714820416724528163061876370589135145897693094791775857376770061530282894260008992252201118980716305113207564968216675494028429912933289567514855229652652274781374981220951654735067450981179115009288465778098690753341960057673754539608591739998555077689335931704060078500924707043488771892865516077404661516885485781651136471160269472051061954054454440047648103470121908427744881319872808336293592200905860383984216448901676533680685322353599859762997040800259404288867423618164565775251125254455859618214222652429492425961487345826986766447495031687769025571366832097412369897938014649468717835909004385069646768217087945314704975171183416108448242459159207094433808433949551370051579209024349139604279702066841944670884159765545502659298806982985494213537994766233229930549907972298389489771834650471833603637566716500510236092273415711122001837778120067335558089510725230980773635765147674576609131222839193096050930412345313743760950705028708203737964607212613399758614974893523681673927475907083706464819166150479230249196867122546680447037693996948757461085470599989388329168787812271887773286657571525504391041245208551918312516549869072113312136309086487074207345272726241508013061434791802678058594842029797349113465841061100946406588226732636015156472187192614817503347212043549771330657074401286323062237985831318474970071566812907501504962429862199282912117985662915578629543878171544544410696694055335619055207136910127171286920318779665666658325776005315577557616098224623315036560506627309888353711849563404305381993174350019121592101379813180440248908902065769033866915079516393060683330668969560651245187482074108041789039572815086987174813181208140903299543037523168845789637417512925712035536589716669133660056296832311645511344535376175396770597881500061615858547377397502688762076533061674581899997257606644855080235652090811891475697501972684343464440140942308743059386301808739737389715270926002970566583441823017736908700311816336888479598628513766744412760304310281334265253839498351491896488026587058327459303813082188872469679371324686711430039366168914126995708367906030471145093281046381037372449933933482183270742004481540179532696296810261258916605289054028626645333068330062284922167419406039431877373035447013222281007661992260864991940381852431680882236585800307533439255904641406933183709174792014851782472051750072944398377721740997509532549751868364631166350713216767599921508478647380561610669321956454828397265903944932835681146800745241450716546572514573756559828933088709347854338727800335352641127579856473980160473920564328534754930881999773148038501609738720819891454759912278832748710771472565621158092625769218024381537184532079971982141659125839228090724364835460487229829791825220365412049944328798253027274557124521251626946231421711132068948586349429676116630906950790058547450358519372434767115343527002389179344743546741339970468482166961514392766136762783967923420779808415837425935600389243101961450843632819796439395405030393447135611107063113727178118861693696734245566239346983553118800969623240555832233993905421971636329361279167609500883908050494282244843735603469503533251328971054528133544131814425729182776521755050735909860388586011995849949506417525066383124477049213717199093037828685549349611467723096862306520326927320360356154396467802445917184163095410781286936382499008650316477508911354258268390621882669527412890670745184589843979842864803668057885229598483181041033589565250388702086549017926052811339521717403233206690503874116770061356419368200413244995955527801154145217234484604142410319988553824563180820247010057476683834740325591739266338831715595911354592971442120755152846840352932076204967242462932016575931368749301976547682577601464226085134451332453693785163700947190308146225220321303430940448528310030188638017540438488312111536104011350679187087168809802013365484603385411641002540647858127272620769357550079966430134018943060344155233728907186228767935069086775834193791617009178523161836457935459586391238537319469116485953027734343793885682214461909636818330017611821296482895480202488832903258430254889291741622409776471706768746687252436777356239126128292480870665219532339910975518086801492242593922516529637417629729179815439185897610465587172612658810419982655996047658513352317486628842533746638154560128329779112585662160284188691800332284228325821609108925793369501157025749420236681615220126809296561613660762734083910280049074436864400829584926564452255565271984073244822019844695485579759864163272783651660599442342710275599004201399859765515511304431028562295262032422373650380426348886451911049291778991681073885443081137626523389429064166463593445679726201308031238483915094575604488257778296443666355666366378519794576392113559400921072788586077042031690750259559615266338424103208140570602671123904889198810030497473921015666955956880070321842630124452838871172136405805863714838971486476161882153008564199297202397663030219601146039840544500247354104956816358168365413078481898130416393933242047678278871445169317536403633619174351100846967933180697606989611715033561479153364791311770314771431538552004911523331745308347477146178917469749352033991218522431721525287481357779373403070944404437461436287595694763782502869867837814945630064774572057076927156657358331231087972613866201583401446006622481447289513326110063694677070767520582915623224293519384607153111245085007559019186758884679163432192711123945569658220632874400370467384337020099396164697343683033507621241422006003726405307849360791407660239210973708119450649103671178189951711643918777304503714427933020007556965654500766230671005026704951469141477097253220593795501703608309393948489804513826159906580817296402420423949544668426133995117419315411156461426730820762197243732046355672744255869293017337140526363982587793537943405138264378570663356341002293561590451513715747253225735558632887464263710181672029079786638284070425606709375681954826940466582277798170915177323425168184516888494232262391325797633233901213691608614414569140683648200411948998152106379060422662314878543549629933249706264011960281525772586194761365753284837697839333599203080677300318743952456963948560851699695305692981284444577957695555065325879248561158489969481843217766547631330773593949622855905982551906046718747031010212160034964442282636276413000017762352385877028933242046305457828714532325018446481280787925537021787853990429799792918699925306578725899230807005447543487710333684849410081080149787932772639458322663901682430190252883795425863697441837573092972366417956732209476800447556215509811381815494416698417740053932754308762014630041590869067168686771266520690598107049521525134437440218837915024935306175251398937195761333190627550358918461552301664284060591793942795298496078736933105357505193365966269310971841119876224177298984173319206257793692355213136240852005635236869251625204711575437502212396437537346171304043945540381361054665723779964267991663747822940116684395548794365204752647642968015617595447757091906570068064511452536768212855809077816528932008450388152351509012197146364245811065913329722600327798326846309305997357756545144838883258804130392165808506992798300658681941523718581458712391104345134046219298763651265833762216030874887940475190326159722043484238780306996902262723865561389414765415812920770376923495562430676873224742734132854812395118679993992486438442463913457434367531305037998149448962955147483704068316724896728195103372715362614885587184332030136714391277039476767886375218424052975131658185150056891909456813548203541374685924707755822628812281656322863016140342035851295524682794107746597712091818330261893166554374847759024116358818044103365639104831869365185954996589805807822311794296793856519515184823302163745101456832246594214419599099280098338164717655038606011785940859929758080947225403085956436732522200020598332383520538909784688788006954574589283368524402537520248282935508671109628080785724740345596284602553150212463171871859158608941386060372635746064882941351924326923035728949065832965513855146347968064551181392974702610749768427385133421570630584375000246151423520139513621982647226897642438978291367826636770382852578583713604488694542303251445389030513265028567379467400295675708479597256834213770238554544832043174412063231505860524191398523249432331828334235658090044940277139040428072910480447466255048003494562520280625938241762974684164331302803224625052618324905368273893337080857432366912425573095376299913593117061953522903396096656656797792439053141720373415995890197648980852873300940693072473830673241269367359571519550736063785553378809906456143264814577036263760190752542144856554987835106495843386781623614431103169717416819348578485935678082121875900041397538987780740036791631719496517078836080477777091511144875482852181766549169973148364577238325550974724398214337728631956660301703458870922373109040751758210030275843671978051874048215136422807663992547764980413765486886563496611718155956134806884946677134161501810811255349182414869073178899273069387095986500857067918849334035587051862769172519197215270606883836698772123899636940799084717474885503084919879434084893173631445499667257866437097056953973132886484932710976586200714425112941874860669643959484165498309459743908474922950874751889632811189110505514857489633067581662528658983237187559023512735782943603079571838349034810560800214748169181042414305141104539708270171495308858490520778613011405916284852207552325381759038747531106163657771571000900555529824123229550594145342851459171551888278094867694737988520825948833005309024155368490518447872704098515788085835534809897606310492663749146118132698762978650361270952671538809299105612427678977963074447761818769031328124370269773990077761113674117705743582987306510515444023904224492300240508926258267779292776924593461356628832877993214322125605574938396348774625903815073544111447966796558230179624129140575001694912100220018505044020491422524620322029764716340084921839809099175746908972568619628355126831149384585956934019919186072535476351488623539437187257876131841883687872774375234169503426136401179030073719090933286652921740041930305649693214228070052573844608222227203799095120205489224530210498946594457340513689167864777354478222007444632417292697447183522417761937108376369231945755120965128677624105599550243204121601925033020479827154450183837975136945114301951819524722133216474612241935842816574163854706474140916931623828397446286413531767396429739088257772289494804211165682817976750961682338543251934063774237605342918841516542462084576865560187977732030293252134303129633720161049649573901458484253839283461650490815513367834814708208552402141246006298356087923066647782394727930250328830303699972478686740409005054551891203464414336423415136707123932595762324406683179144559705262999256368767602463127059567808127139649585732213775156694398499384128531604726916083970387733720078921315062018117116232454996452319935655895021589482006183915291061063913583463253831895643487156224363849169285517193130000794368860966230083797659296306720597869886782658834158168161032598078525056075236341414724922542719217073490165821845335946532740546483258852522811478589376318080791545869524010134996948546713475761802281819220305599926717846293632188509950696898036448474923633040831707803144940188503147700763055076986510963682162841538811817984075720328780143113685157218908940651576692551721580796955335442732732509776227414291313488783305770434981315146800292382102584379042368461024910132228315020556546494477032412154026232163061003728132778241191544185080037172062041446861301599187237781585814379151003961236600129239738011177488629824759727669171342983494363728721568579400024489277280875022689744106568257909639944021146333610773776148743508914377690218611173710020791098350125023079838501963481600620406354880206714025477481935667265804512600259444664252895208750375938283364210766475695327990347199039875302593256043509722915510784403621653455062291648799756460891760942164440378636974755146732646784228837032526198305902243493686350480904155831754549468850595606483872239160574798232555330861553090449286077944621676795893664801244268414936544977767870605791432335294066531010179685288780865662467141103187026265213418836308979230711524608336813625430667724076147823684222679470220174211491175425693905365254609858922134887392490629264083277368929464976015313224536110423509950783332707082440902341473345408399680606882729018055543070760070084995447208269981432398118726139083328927915251008755167211962727493240682535278198754176816337669758285150136702151614461628023948058185581283259988306384300631681420396216237759179866402152555926951594458825044163796566433395840850224276637997875132350161495009409640582324014891539878758677410735178950120925490838198105795389581801849324040956978545446580391475435095619138184031569072144001637765397999950752445742895686444177759317109563537757431058872657657673605547136377262160754004782120765004515752083273331055802635026819724456395965839138024541865797872914771448881133022989950523393306990043860414746323633479752100363132414412514708104220735650282634580715660077803437757462477074275697866136040333812046296718777014198859324011377952155407628829369452095745749487331499128482612609196471466837621807449968234125367889632486604430231587146302170612847916700153224520417547103914802228866769132158513711237097383116016377431730518909898636779645036928606998298276972151847267988461396115910029829488469218971748278693692225903269670953259798233283381414725103221088273206773320105690339777942278633027521823728790893263686412808673567521303950832250299439415906028357408534238733968277740853151738894564598069682945281597817267637807463232100601249101728095188659309501841666642288765747904776239070785982749889582130358325337229346341999585901030104424964186857425569229565484206455305834852834993930110384388438439366525438805303596092825601962719834987524062117416187032100701698661877808016396722111453457541552237576293806272011627460165822007372324982594178878586694294070156043598911861606107137972684521012748118342985846903561688789758576847318111392555428398578998960942288940612492924374001528486780378698018040037382203160834114422980564511132768602124836229711856944652307213051131747393769787614818739506045493432216393894303233393388367158921546658708823044700459123911396574423444631707663712624731671434782105544118855901692478488075743796269670581941929569762917730789874621735855020365480264551570473482381952282001302466442319761776570015033584691658152781173192861715277724552762534468269609787588399672333007937111708427511778712721868131389416952748169597838724295057766233061451514079975536085156361880994478968218734703298531081177638573364340658471160637408867321910210377132536060792807662299902027300610706892479683236000784157505082878007828371337256289829970654823284769632380423651537693172620831990447488880658176366232513968725625182927872278937962727535143719181619245925515716322639179748030296601365664976317560014136786075881186613031430868046529812979093146018100063880237634134891451367761351753105991160933681370569983482734779215347171170834315631870361690674075350605143421723713595785402331285786445280499199068048628217817971327568940119300206923116122297673923031243736964021441093124016212463124763580919703221687833580962772911115282890055903445740987915764027020372055240629401168388683159638618332453002183747167722695458219530956926712288123270228922352228641077303758843192540675882303069593607381083834191251549166150407089913100199027792275208030891728640112601994849152798163658353078637067491929661780428937122087163956562015227671333542456451316359466474311332989488335956815645107890704610618565100856302423988266250794071098637189303919240966590907745917672681317669828599950593808159434376374647672978138438683195590191508438798106096398097457913047306436196053833886696093329727225045195873471984565978203495950726866564751456154151722461037377449699695979073173119431739725467045354782849061526187857496873027723978424255870893788451267156003591810300417360596178516233690142217040121287136450351450999861070184212864301572188825934489415304535700769770681994450989832531301835884929662070428078871008311467127960579142281072113655021625499084323187252408628534456836667425004274044355611501634841242860996638410298078605106039665172662665057217520329739046385480084422063027617256046347662977138835624837920407318400644604692843980375872904865309518613301568077290417433741782358267041429536187378259197102633674163600607554589864052760906225705819432157708723171993711316788305110137649760063147876539906821969120361744220695792696167914077784254850338330718196261334609586088456084506646592769969039708577967060583968174542157766817956653055995172297574644251566361638796270734174951361355263407047054692034428324699560384144266994693501406731668238659674376838803030682527028881039148433289912293783097061528050830369615234957704181063909280210634329581738987977269853830957725759471771446947506183252902608016236140083585997707178289756244920875011131233788495163191945325916280921364143355620360090605349136744347404083367282702754540914743896640540928987587541380507873185786046488475978066876244044209348586385208496207472668260858803909283304297146502329622241840779515471691528236573739715507661161036023695551883321396017386959443378011760381167446551346750195284309291735061303710249455285734729201327294095448184926365433696204636859455141078459144701814224855573796677881538173147069930396401401187014531170351009823066096542197314972380210770048102349874667693939956494869537412612634368903351934879880799131852762340984299606666442811286053315259147854845726357502929393094899774653511141956968115293485704368451631397964467923509488961539126538776023959830133527360220101916051480027807265469734189612039692559890465844791815060981257592939546599892750965775501685583949187630684564537416272051502907850763630025646903155471327606357812810075402527577413372127827345060955137991945561575526684182997058653374977604627799712897086298998059247684689895490821721031201344858159315552824805767932584342784522567828697442546511758822095384977529212236874086924523666073129329201349627542167660448978215199093615264525592343776923874575210635582553723702560195901844636121828330257434383533505923805953724515495981227418116878598144862960769891462321970446597200015111905401567439707047342455245778687225852401156506996403428605506241362635363988582307579398607969474806811737152967564858545680878392713603605846040914138858290780683268145853243860740064197626684351614402885667711402399147742131864496369560946642557223154739736464880737794181839694587216520556418077233424449167930148390121575562958127946684262953256703606556298070350742580311148845457276819123802055530909429201791267944538605778315637955429270824721125629624915783618635676822574360297437552630499998321593113299356262569737856125707112532471399445856518476883930833188421227014807070175228178901975202340872730201911407575162801463564406368006268955767235647792427053156182461238041146948705307475652853796871888384051493596819288027671093358708634453889914505496519618063337087595617467598558940828057407495232865814460992040883318144219268809423515888571194281633753054907740631501250046482949610494714489962092369269029720393332981369445144212363235688733594769284140522152304650109679780874826407456515111281595561444221008791361827962677223271576625483320058540875458734870164184212584583406710872167441202084921112430074450229705406892880818995805440401366464735006896319644147382956232542206422421333275075601678297866195872981209583415631461831586652549932755062214427197631068223398179982718787134094839094147435348118307475571913423018448145969886759397878807175454171431653281473528312065323047167509502524641265208730358062174220434701949264832364046540849999221282396329786434195043448349138157126259817422257576166844534156539055164898764611308522165769409951330988196162724298352783417140313229558125367323607449207420028120112154560442023918953514186775169794143075048710361067039935054938325112719359371979637041519262891084110273666803452729764930728979033425302538808023869417015924653452442856607117948263589955558622678230480015043471866069096639503252347637716933871111078062567289487498732623344656777676711107016521113649518319471931590621296362206405727875914450927827942001274874997203492769173201169519041612283819237014534682057735219565520792771659364325017347899736948126463330234024932701939698294328099675935954559505939058161189778033056964732105732712586686354124396922882150988744583129025175969093852994985979624171501922646628445132814943649558649659742601388852549296079523645973558982663307753009902450045817289069574034604009811251977269124603797660866247982602044844504014520851523112582028106191206527488816836632669649829675149987495771958520648991279137864971918652415384022261387786828476393910817135909064563867740116790366047709534551666308164529078082504421424630646284235083397963590702999395976413535888392106586873898933371963810558191042466706335447580444586968211926274989989511948519078098290900634637842602605788297522953783235292251900965513591621197495127200234228334713748093304582076498979094017745613242022742897987113552154914221426884443262876292808445931961606881624085550821201676690879127536345758830701360040081631119650600871369452798445968950653726882271757405825203748104875704039239765271977591653282735274493293529648603490269218408921023701773343061215463574845012242676076313569275838141792480712721026914338537023552769530145719643116281319324416594219287936653576798069527720679201613274002108912539102117781760976531982323281467093184753640708585113053688594245665052678316083591195212982210400435694170306784078022555296652533743641030247655166300206517609150706969334395547615280063456891898562799550095890876298306370092331837900699176988777722513159780459413050118034437902676702127952973257872482505094493340613066725737923884713651286429990502250070506633187881789970070681035588475108197901034554832618025258265729131724602092309535435585260442791181156172156776104330117563897760443959516433321950348572575333901211495583688408074973345124384734382157058109689821047820477130290896689126687012323805249709094097817069134929764233534288024181755908693925213613573427235044407111611424317572425351802072162311635770619354583798214152792966207599367888123178777563754535860942829331982146193444811797372427314196089737253367882666831735995852841844952296595801430522369652647093541387788565827930251343557788738815452162396797931295830846608838495946001416471450948126151148641664573431721113169432442193466351805049117152584369423479052641043769512077095098333067366764962203199439044378329334545082021110254107294507820339175412069349524810604974888742731390189936251068613932804216045992225311721041997655709311737375991223527589630210837828950440647669547726767255300268035705429868790769282310643514499499040239058186520651063551629465566403393957755916038527030447586546555848664426942686718678564945641417819257197932028331555456805736966252790414708539303274239794194045537622612700438850662384660789862451730355923616200638303164664634098864998112291897248744398253234294180562962375790996694694170317910525285507938280638532523101659140209751665896885990620826700965875790825861726754645779886292374556592972554948992115074774964941722440880305523864291333430017661501179947215103456852715990925515241520666283854056063267974048703569553085767978456937977711226635968867624470447884710793810203365165224302670346794937018115288619373594448660664771176154830040530267136316730657061333898199142478874848196816514966750448701758336937683271368881019609437309587958688145050493636906870123801152943686431405561770430948669102195070296493758896921038502925664828311783126227124126652094008553527056114467900778175002304389713394960860440249145207570026242399078344517887333391074646743149356803389403777517968541159639753178060053210927263746300415037536911974483293175765867058843394714603413267381668150260037300779409591830963800859861949073330848079088525459740277459958454420814317967092904831810410029642415884236619562510734054979633195597568130430303762156243450503430622213080069071049219526594791768568527063761596927327708477805763129162847191855336703265233270135631960983020259467097585916469550422567855462437159026859373178606584727937128095107149275341244744909239416148899987609265083419698627669615324584394841994992431599631758913626833127393367047613464977955779410556343414780445386127807028448669438630764023033238535349256346304165716642708291067193851716968933525872740462100047336518739185596458214002693133447755168311705297994250467744733107353284649285854086382859830023262663307770730529211607461049649433396105148960768299450275852208371331443796120025413130918019308225941837156107675653309020649414151406793485399725365411956621724659637327611744840278319537658978627663358832520178927910494136332482531638225732440841314065490590591196492979634390284099666240740290759948055437729670542267720908936330946339470478766418067777027842580436405363314202197109842078369790894542771433470119523159727992672041676753072457511563890247901608393035058757951458167494427704911453693453571207667086882123400661286003492510661243825158485152161008681776628680407178009864411605636899269922591959737609303935802221972173363134517010975133094998343117707483249156450838552780123656777849189207283960320391303391276756052504188450870185091494306552779963068690944606641771598528643740274175084177473466255072865840346220566387079709257141667539480662965824666981935416250332471789551922729106587166821832622460337123130321001934576122626950830875819738749500548127987189005658298574954387373386940836935460721093498827792808588716875427882635444870891200234409891761163133443080716299193393283181387568613922213732380347033685455551815805293926266307956551073040224913152026285966691796823684653266093025428117640455703484257849543503387941443015095003759064450087248252323525433953991285416501962608258459533628305061607926164035482441185296181057276468212003921331254118224915197889364769075069603498696367264912616828449693560917460324771174963882395573503852950333214545609966786444612269480155759684175077327715248346058139006828896616173750249543258718352104617577856344975290886140199028849379262428964589220625152450363247210842769597202900073320916132365607512655348562887293143903720101227132291177045880952064314947418866616074208159227906693378449133636701124261682260276014037507779803570391023472107636266382766585233420515775138454509303048539294301356651019016478161988828382856798933550084662057900939025911517539237773849624413984113821351371418990995003692105602730810232801069078419296704559669843697108268089425374195328792828887420463442756239555906195850336640906238261917872071875903095019383318641092214126222215320502144704120149057331777105310542057024865731561984971140684382650631437485467489544960765049650177886634323845262434425414527934164803013345696180847495780071047481622157004871246741800917032895970350458062000789613718888191154939772423680725792496269731030240924818520257767895981511261459582977399570957354493754622208022906824701834810060025650753965898814892920768041281573647824884240304719647626794148974252859070997993553537900900187430359131445937883143383560824688002561826873662683368995904555812688804361483962522200185485837514423389286526206571482683345708619169667801742817143056727029974913661340861380982364195021185993900729415545033143254425049782007657759418515753792633928366587825800475545838857641296125468349966275739574626210841233667538358000203446992161212827818689521216279408700703011998055781541380443992405715407971071599825329649471454044443898759513736754340270036223168459559758917249834864922571845516709861387868525775521833265530529506977601921556844752349718126779310130307508619528010023674875376907218288166736430570376612298566428094247733713293564994584030893964059163480952887183892160701344545590699852101977320699296269740265280060989458522915165999376428915989585814385566761064650668694766643102299777876224612284172427261274765558719123246048719710778332074914112722108654017449019414416679688998963746165205838245187410397242776390558435305490678896823324734903034455769055562412257743763940515514831438677067268688835106140494870682473226977464832775442309271851110757315690522810263512394983995418551584049841034519422469887464908831006733149220001609800674811768794380982752214128586124907856680091445154790469893208490935537752917617273039609942052265267464555311583679950073001782300614666247156798074776163248410975857387042047372886741812886490117709394436094017916521640543517250419053892577455976760737508443365145691161710164782337639655431362143984800975708182251843872943754991868090107804230123667963271015716433740812094076306424695669029286255135110075185794592131543638381257497864670978855421365070315976403486621104564894853858878332477847566214261546310814851181083896555162347382001849718072926391353447042854642470384783007744121054595547695503957247996867945181032187727074550936842538532336747573207095797411930988237237589784249116546123098792597981836844973916121295777079552963900437487646510053298705386161258527891247438686733564996557837501984411469464288523599127065503296173261922851621547531845521064656512857360289707353817544695355882165596481297892755563173947320120903779586174577218045360075888290226461024592363887459988702956311734108412748975223211194130433261630794443998248069713702276213388749517929010376599011783700190956211596215791370930971081760111358758669039160576240573263491421007434691270041802750053270429981568108794206938537263648196133468938108112414501828913236312698585093232649166697839571238341880373152800338867551528804828176807611600292360014367317023351254370621070932448036961224480085728663243943910850984859738666306979939780091858859687880775195410817701876162182699862162049494046906455911659948450546483646733558060230302874876073463933216844579887394691559289612399341783237140438855428530514819497446209922633294687105573709682448487360871548035543834323655999790246787616438104354883400111425173005240398738027667535033957377052492134973769147661265525407893189419746041232310302797713281407140745241940147207781840656406685464810552739387139641978102329412500238384609527639954300250602449075955647020969609085285870942598923974631983376581442238720070855061122823664576605758496685208432285181958096566231645608988081001370628083490658396904284423430366143703896876509704587813431565481337142798536117493788223608199524322601287967457087747652681050159507096298571730077051038665112510050647740729700523609278784981977853284489947006798646425904035566964706396369877801637832399492261445303873349001364212709358286373298594125022535147736279642681556375332908759872548229462089329995447986905477577638225473589139287391460233247360433033429030804087873835158763128680459322694917997660274282485789041216778818053422546076718018811263917294351203430018692091424787780118203536089530953558438117612509170997998989627862151659150128206539527502929632205291106567525245386372838292765194185647524228698349644983535505632622351018200243493704704397705143674072584669278166469304291842695900824396839772342257776298939415821472869641757420909357275589930373461315485055691768591513718601080505838092523898983475296650859110016388830315472656007191609611378818270480676482989838809886544733154299088774333173226170732187798161183300659920364874623157605349279374532874977952977736603203116660460968509602713389770369018686285336453758528169240450710163841559045571111695791544299431971970517194811246823380810269520933288109696530089156624056671536833207342338807577278278515022323066472895151966857884188607895356092190638841621954530137507704046020440686563406844921494427587052538310984281128356128889715784082006861011006336214951050161100207863165519962001438619261053300318110104816654026040393568414357121287465810837883412884378728716286462385970809256676800136790673870883790137132962227915690967382640803856073811111764086861410851594201711707470882421764450356480307125785396087023501349268026276122626651798107961773248980284125228657203310410563434660925821868276423004558134502038014154560257644924464748256086970016357898315497257795325513087085172190123037958306021331284052922404783927639929044923693672707939747753403203602591343578504531532309930889217447883159347032090166499592887309472289736074451118003021163488500760898267575272861575156341159408267481626033277593425752272009753834599068062774245339094779862883500948648484673137256919675226697594072545748466644881488134217077371403033596738961171660569334724285058477399807327677869807564970870312056311171464811786942016723628418240144882590157183246445882493819265381466517261435299098010292409778494145202578942862011456642715268136777918304908923252076044661732585917510081673903554842561450507455545286442275465796116624799047774966605604555761079319552075058978421865119412801597320287416190972596108629490279261483376558778211254052446574823477111642173800931641729381796201303624803841620372205906170965022196704281700834723187855780970169764329930741192379272629974103194947316557010030411749535285208354241907694930893004566662050729909584928372873671876363509584321998250789709028680584163207314725804805807155560157929918520254440017080902910673730370663259083225781682135171861801305388676900810849335839259457720263165529300006317056703912675410913628046562631526761044533960971181574050003718472165070464058464743779947190183491065085076597930661830494156496551111668893248645379434075273946976933338623442204903404830396711137880584474106446241339864391770114094848332829280381996812973099748027052090092562428540391404135031644460369966760791932051456257011372583860520366813465734142075604359821202475701974837694076662314890971192653844517389178370028488339400261560309395230336725321619690219588544793631278467863708998528382037970114278678025369466972469903311297896531356569747841973159574515828803833990279376830182642872693545192896534890073915956972792991424647773684077290133444162388994658790779319217331955591129480526009661532765618548140617078971086050544774367268521057270401075500370142260423766438678350493047656957655542815282998299782417556611940889338986940519527657126887322630988719717681111623906277532355293052514901181275278664004924241297109626523765500671655660862255140370410081997105700448595047660277858206754142267156110033456692816938629695225001479411936512719591569636724569203372890472193891463941814837162959178164915102875721502931607958859260563026361487399648055969829139305801781030517160316464724487630481378730404050955740428083624053608934586277299012918366333394559817822746306834615181019244138206422778758000808431255137248173920470805108850724583672701092319864362969485472934964547175541649213513706167417914961001848304809081024652635806380387524995773724760870269255268750036362095992107754316127133693351442701629167473582638612514824776913460130772361593446986858136568909495927843117563615183932689540589368587718311004833990936032110789891627025499637822152643145601408790641713247815811561700805681180038634211217873017541585003226072436012919495702233657825691316229768038136584310684576796171134730696117509650374015272707664694870785732352471742011848173546369448320676563484392335155916782048394642460603552069607299946135788879346852984429264937942583024688104962651257071266120519512547492008248804575967763565022775308751480532814286527960306732782470768188412146840288662157198795577264587370747340223925537780868629530973921046243557948349511328622284205530032907322537404585223757605909387614374032577727291549232756094613314504097871174268921735399341499878686970237736663056938609852628724802407048600635954269827993919847742614960725436274370250031034379127548914681187571968620347015868282459255947211282001540993814204126638796946350906966627606452383681870031059856387054666721355578488605218838690746189788292504778919684346346529149004649682853768691981972169505239688404415084429743087312710628245559405223866027002294616316472081427735822022569965830663901788169365352305855568866712273907718348268449652291292126481364427262864229291194057585866221981071682218333981297603937670029335182633468786728000659696119942491703627157165600389887511588208780137199994149593053687941426565141755979214944740348032215365852815926869168022362317114720456868429146642189597636470438167451153021275371544698064151134065251152698995285735593241361082203664387877648424991183222257618362967145474728047797782443423263498345998159914989884609737390169029017743858053050543979662181476260384647420846734367750027510617063725191916918517683965050301116911850273570196582015622241061072677512436217051390503425017601630678636776830114143099866501856046578437615367190146704397970594107010653566829009525669536533923344291137160330072130371305775632828512512785575378921323970368000686709327337148652228551430269515027745137692435452672783401526660719408287278462123813107386020308032493108863306405986064715331020934104110335406190526920755915573751177218457582479346333346209697846716113344433807137579169228378975825805829396317536989113349011079362543476407087464645660867023071145549302104812065494952678429946799038728876616748889103787998536017316929440845622048924616266840330614847330890523689837408232687123032816879659115839371974976738119171035601699531909108397281054881742924460333987517993827866933136852490533107249451293612495898207246578491057904441600099941986606097482964102377728665055291052440605761317073559540105096797291843122854032873465572870499230173557812064037662963268413104438173735355424960535023119688162966450255589619183916932991267718545898300504594563717282927962701939340036324813287498703736686497206532910681558933856051350068131941580886336397438234065624759045838532547440106450681996819664565122066088833860990474798770367021687988062117463650639060173089752709077244061229660920523176793706691556848412707351054871778750758065594923233077398105116339675315995762524435865224609834094892007595196481551008213899631096442631746733347953736412334906213548322939789716308661007160824951160069888812938927754979229091458371095845358146151850666122075473619538845147168139081591508210597921885214129606049699186304940703137145142074778622534428193944013478939106240007762812264334520058250842264496505738739294691521158426720729339295695784316537280856006315924761152398236744095427846091084729367837695188723913342723223310198343198099362238118416373183106247932739088736125038284564610763358533598899371458100014165702964190810825793142933698844616146131684327098910343240214104840525811887265567245860588073222332070620032689767605133938475389231172289915192870816919605559240669671284777014532542421290127973307879951656445144506069227009838876164959448425183632902726184115668441693923425879724809131554819499985168808756047323586743367784928835095190669259249918482712689943681505773862642766056975093417233649145250465775220687259220956975106425818593587920903897316673047760809179914876114314722441022789055361212814405376974194980501730292032288291658343053537914157617913480961589552438305332916151242580125577520750212979383413136605341301524214105662375338091915377476329849662201872274677337796511948496607407541538851933101694790441950923525113548233693132076621285909399468335758163337577153748911429207796807804033288985126602610875467687732589427947496772416640554093670718170680897599263315957130184453950342097769388121988005939440770848419131986778167508919008206235184929702175229069723023484677999032949045290586678591822632180362326012786389756660067267552915351097767362178951582846048583180843464946170116826480920097558655509566599312698851247782827747616618864194885452551848007010715826211396188912546228290681390085711123187511809864121407605243991699013228106064918442248582123122017369325631388681637830261109623985901137272539284645496279380717220221308589858448609212471311472301622069433785066693641400935253467901335259869474650652937685538238305514210542348994533244639270706946773787800202188811915184049483358129419620955584172801873379555448088506049782556632719362825139721773019842304750321985746064753902900626683485537240330187004115104470077771025566796452471529898067838565588641042694695300591201675106612511061954165410437001544038568230223684780715874695397555490054434694721898333292506059895783756678174637064910442225027716150522565047214762951132708945178533764219708303109310847583386550555759749033534695432750584232797656666044501205770946745467478191211381521711955957366398493217541902765220655151339298979258812856078557972303102114001133362911430730165614093904776035091828155792711095909001914600906191404057012763789317891450887185825192524299375601459469106285745238792160333735818076897628185860906243485448170969370731347734800750178719252779340905045815831166638803391791726317491902800611345377831256822163213285233447008051086782727554139248127279973563818588307242586929755997502268868786718697860700053598374240680505202644266993035732588025051032110122065925903150661015145308535572364762872928679986721311584849674309438067121501825550826348888567648201882572765022819611802334653129262827845967823318608534937212883221086668910560515367569864263508921624045466805769733414271593685871964493292893354038098154512028408589848037356943534817954702205726949459813124281737206989079517591153112605044289467000093177253497739463570314930421512562269688189757991196792154238862599401985713502169090254721996670132627752372035832757260473821578130686886313773689901806958621182658089493056330558046049631707790970498115028383544688050010717313248312970023091927489697500377982851111889338729499734490672308949215025878226705074973373445756523942236716007428542489917215576354944459917474654557138275853461059119157448407239375153327713027693593415881903686524442603757763275745493775845457068642506397015207224774503313113148390622831958301575191029992584742280548249480609992549536630253210730348738907789547834209988771745495678988768628909566791400838244625808022992170865278546345884363862451897511336492217890694015456146421883732366539443867340821231556280201187763906981755210751267623362651048665090906912221111902024689109602544569197757968225706407618856538397466489745048843537217759641453306490402170972755813689804931235071663982204461283684583819592499714046356437178609877684990935101381960190856734280187250421168357971813657172781399864429118376129480376611564734098447515927097197453567936492638194643466888216145546980451736460400005738441623974125313331104021500977227985857778560817944958672670698272701703532429654889833708682182374029938888458558932599346998737482823617981626711786390845456349271770169323707890467751124428129708419275796323709435830848111136087619384027133614136638312811791443226245569372539726300628058782189802483167550641518358053813019760971885259665627171097644841945747336671516888334429917120735484768824011776806738874014537367423348087529330911193280410878575381787074745305888294223547596442565914744146297667930566091921612972685366059997437972449033526863633038753234276826375821761586720210047675374125076925386332829691317703368204789667977646873758997371448221438941110952824090013202030976281338679076362604637969628830599663312379955456414505193819821734249021663084936823076119061183588633262293648660016975823919268715668769649622376266343959245758575869505258489074167130007577563584245890080340039560753462988713172423379943027622130889872201017186223750007842978500410758255483461513019235940662787451864166483186204659236512261176081016177013330904156554905731044244716803753351772304004328241687698952527876374233585645088446267762939288553946472446623316809030753054187053684214188480468906739712509055203980727983462622669773794605251625582826775207291690999358004800140718561676558297391344764033426700443635405215490863250025740420960511059699800650251892781330895363972531370850402089997841232834492150146512754835689359798998852978437800445154237591818596779423824855928237773882840760195053196823453915862433575074912640175648130335754412929499204497417341051887037634098416174465284355314227777354362441571973527831745129814347894924018722828463326952789905697045112197048929214561582356761300940092657580532524180433641041971319242113327798956384427321282610693329912529957097068677547385031129598181895872884697985765813900563586490103975231366555394025540871719954107969488771910766778679119019922922730483215581834720592664073214011430859593863760862461565681112392587592655925883389202735766751379637671174686737985917169437635875370576450177481177470303325801903430893672113765606234677162262307021584953783331478847564505843147123144780343470867011040218712327521798913623897291414336516627762701224878599511654591614442105429078828198807370318756338696627044416564230266391172678942965889783820838965431296589275269280209206870051472707466281130758669949484226071692379605936588910843405417400788322299952507297487047863253368779796319057882994053158600212100182258393006843085033979894938524879377065743067296875225024806242341041250738804768675877321111258950081383262449130484150597401360357317792244770304748625549437160680224466986931591278829012237545394863451769130685637927891720884381312093331162561083225561929646852093429715228809104113075580225682672457981050426610588709482685991852500071078510598915530251508663543051350555282122435481794967043963505067869235938685850033440449509751729830181321491701357194952890532076381865221337561197872220238981356024865846248793793718119243725878660236168011092311249537573769379241495581816438475331069505082333187704766268621695379195804612628851803148897313181609500072554097693133831587501450015869009852451467207722834364006804002131778158663132117313024621685266294831627895655137832056596999902254853356662866577803277344332789831007625052924964262683416384081748604265392451314867545112528027899362380780525431070954140748963204893356104122820878147478236829826564031173477322114212830471095681142395586599992335637040514820962243443881888776234150748555473621488251989659313300451673444550711326665756884407970436777020463868055659341018457728698486698275472821765927815593997683045972043811266872488068434255603598083221109624225806700828343231984078225396803032064546634707606032079789998512254774829990053730426229697982170393179288246329783754197426063894716055203279733892624338042365124755240924818127318365567032277257977132228268935451208823183678864747657409652964239626013456390673792974381456634032914857514576492398542780661049490408443773769702416729495529807956963311222282080564697494711375087805968332013680119321488085469491472205748929931703376771336023778532999998356150771621878172538094373915859244293944773496264878234101688246533165842774549648184185029537295247073720068718513587178003267038467871080570688475314320007291904779603400708395765402778518865294974069686856785327378180658890394879274300664486894271376007426167365068596491329834036868248171492918349691327200145093344163023267614421437818788948900677466369390990875533185257578247849148921642086402036467612017211309345064688669256311418377385680661472978599403772215355218658578281500091181434259987203850079397291578498416883728821187106549016573233684284848303704134314086014577635682802665543253313948610094106049577380565328441190338885062471130160379409463229017416369823083254027012580861049645467862428060590052439469263185502280927387526144610617228288108495260723646862797968552528779947229012177214436897260504446455593730561301024252047631860944877839913576075828290972388459855661419797267450807534130666264622138854337054599419943936480691087162035244035991494781413424172344794710400159308117024952577035256151098745128764521500456126905273900140919147888071551127014226310534171424025404474547224306656341722506788960843905836938055257416497061834097809986770527396398281347402519891163570622177742793219292271221235358732666633633428702521484174869940704137896992331609954591736949516090397699615474429599872117439437489128477463047046086989820543693289359943494977563708586790338643573698753489929083688323274253826199990559575058767463442194642544202497070873104769176903589482245695182455168862126659435288987985095954719389099593650442823303671497147546510888766727158056073998807478875368603728113610746200471545035985842035716297524127709882467334905004916544075103480655948652782516148688758753449690968241819092342647635303864093156434852625080679783583381201051039804679036855774725856647632472211383390877270832417774140563817502395714025869797980085474362123329605843269233803793440591864980203775379005217621934897645655833692830183057100708893698286503369151729533752599716138397699642140193282537063788128074914229517538670075662256940202678849492886587537110053387014775826081045285235841820825842828943995796544662810656164152858660919986647404899258245278793541781384988111301203511898340764410684290110611042288605909920908735245125932174117648849360398209116481005790151455913993734752508493781810440831430636723084290770957481500972343556557809644145953640269216262447890056983637018637765115473334653031845679524417255863723160204046037794961567729654378024360419179322449835675984076366304934620240546211162368352484788224054144686064180535125313714586626493654517939946185956484564804242647357616177145850935447941997258505894964716138050012542644795565903215931845783969695039802451998590116352132598339800668243172393974646371023783792520028104013916965816764864271560099455102804721338882573219935207171036240994922619901429579440497798681864148788364294691779880856706394516279286827030092340357408572242270228796845159214785848423250963765856691368938669737845851851481394552345634734463954728182488182763943540507918848409017490378558285250860035047939584074464400817975494400523626176998914957367729359597066999919595084881193535760421473995897380606581531389442886067853461363866952197165014760476821499805186106155607388046329137162228295474531795563187319456957184390919020691558336364092164669316957526854144387572405963188996999319076992808082115772677188217456255916104820456945579928197829687127022905789780292287011325349535982430587622515094705519119826421829500511720895352116433726224199510495682338136878687424295373576899667534406139386811277714509922106225010512882872499504639836482306581682102902130646599334189273729676846404659673167623992976901696951661041523583280991933741182734439613145503373987304000279303020227860307907030333866884976932717800972507295392705335106738932326020196305640052521025193887962488335618202424586359525625665309453196491766887986222728346914105509967867967185473982485055761714292199706203080552803491564623369373519543962145590345095052456492602241815660421585381541861040068637651163722961073925701505806927117719299846809502517922378302768268435057632098875718406825100103650403717193835579869287605761332684423202985963766698197342097993469637329105534994868781356010426555749441739980488832959684343667672375094812964490527632735014081416928442599547363426304835524558289936657546899330067801592025304081048362182655962372788628722675054005821959737159553957118938370985905119611665656900827971724883413921650570300857591926225325059078148926418261909062537208065672115397012759177412931937176328944422887396425653929481756236667302538899521071057927444056121371681820429599595091434618889379091503813369007298341968239681692436797830298148380543187111985498037337904358016288420223133548799320877242701624578638842861872937180238969684821921303084834514078498829219853538372147367590514904720471061362944352272933842405858553763875747942946175024195331854570258179575094001980166413680422039705725747654625345713927824519664783645453530682293156889781319605249837995764983403385856176575993753556798894508603242748394122668417109254119257448919866129724167112816495525661081551246950923575535455991296119376474621175126127688987804068277184952217327844898434744598057569475887523455616963114483127710125791877175027247416470034851294102826187338995313977353559074927901276682041362175588912174223610335423977155633809697035868734010111923054685043219844196765088679148650291138737843277363155895903838072101968738132805196838175522559373098433626834081042072037865546670074196155227808957729651763024310197273184547458914460815812692063995100288935186461668814726135934996257083836168502274481946412988846887128218888647748488869585274272050078568186233457493612279943201949661032175015390565044901252029568436558757857718389619712696858844669582211244628813126443253989055413796035591644811807920583046302298833950690038630294771359952596859036073989032942671096674404523678988478758904058433955395384462632981458105087687126677355185502337549844717266451466539180416015844155266058786929540230347553719374255956168662639321207546605594850168885906544675566249961619150218984032129642194651967234545354302868825405160169121475943891034866162083866128507372425532838346091244597831192510610496049140061095606415693305588340244349770088021944662892117518873943952060088093803225131482742019485816516459292958056989737523225889079112454897551168904658204504541063945162140380305959770755790045501263716388285050794293853501550940878627532632649632613910270060606260424826893275869638811431609163581797389152004537382148931600241540022916561860092658784700156422667549067742536304871086215856054227226125564171473747992236426483773639486163753272423528262057837050549211941164534707775569622888348583937505893399316179226511184220094759629460501761277173732939087887549618600667692103898692245212801969965780876734798152247766714507244142019417312843631282305735955305719445119816421824633698033754696161178806794868530641083327176788590129006208753850387022916731275049097828065192231526042476394152374716862280489478969311087567196630658515813367264895719273985715001363294748727095642757248690125822921615055212831779476698667802149078472002787776790732434835561503090514454609206733814823025881223240118352196176881419868218375166452638862182903141185107323419536836688520162966207414015899503398396612526462330767611155127643311960054510241173398111654852595397349007007884610696145962213319958806899319166634097891343236209893422670382720604895384409820246247245771353051330366875269961901592460069989632909090753731574382170995685476997400395457840279880043622644830618627296280518661696337407951308943509683579169420824510109550083177877087482213515200202963595591119859143215263748000160974750029703675538293196982907870259049196245307372198167868292142293783011548838072060902150306132420183550744754938189035896041620057344225756174210743413292265251791544058531615798693442128180280182484229854628278738458460385561387484584863722305618435625743955456568924020340576389158498040960698660432709635354981112937683195062322651934811453917902867715802850523527716940109563347875642980686191480050664576594541683273154937929318675380683876949351856001810630561286731022622899152212145820196436298510691195622609585527982990170837778065218052884027108728208790388670020235663461016143721714331557932241159609508304649356213959371852760798918846072236176279533591843218684621337580037607691799234846542265241907374582009686647919631862941753491548367964233416850338698432689518996592217895550887077961034752708256821082109312987271181957651826262290723882378324125390177314555969229098863397396076913052573739877921732105686371653317877611461790896059899725906366475808544134334729363001163609596379744007876098256169117814133944125063416263373809428082709498824705230735948443689376581347625370322249405382703611540083517896715770810427210079490036379940457858711918664012560305191702804827391550311965125735349062857408368215079204232448672510301894066778002991856618947952741576497054179174548067930490160562964950654950358300333770178003357541818635491205986021485902373000085916395791477838708896785841517698522012057901585111218845329878380169495535857638016186501859008082603786221043069485196262820836185147262740495096846545339467754216539092885795324638086580333280995242373674101596653108050024406190936674917184291245331063047191588552389333162593077870112233395930995539800323547180183998088148753436190843908994755850886120501168205546666651545136798986303409462711339998690304754243721635762897981700517498040066286600515893217404154647475007541028834891588565008371842180685732245516413779459683697637891253668171938503160044211944101939939871434532179948280111894553717267778015860832377290687001579831566099578644085152563977585478447587854069756674726297807175936984401425313314130970208265359567078932370931891934200924935203954363890729680249310191719884286923524751621887971040303575527058327615731766595976235379623486156820706845405208917073028409866240476672545709263182966368843062203454169430058118994763078134956693039898937221044962638959390273711729989193304245380035801695149197661853760198490468684638329275788345880197345687855312736889343247711703120109292254944502484542238045495857343421796142340052377934096455992258151026544514452297162218024266576750107605089911091193589573897964513031755844412578456309292347819967924481449305314356283091304972955203795455359378540441341472003605642784114121703925948170902018381072666751503806504739355269828740022592536165559155295655275384061537646708432049757750727763824801260157692192626341890230622783135437571790537484643246779689266377190786759698779381643808401082303830825949291134892608610956976533235596239367090680973444371401454819670604301542367811607418478640245581954164256527288732022566798714805642327539528098383925852459133714864947526433508200503580139359846522371636151081668906507211635893355235796181460121540254044934877099086492232022722417642598326732769525833952089251166306766512477105187535192521520199434522927321507444244462396172530089398991082969230642686529058234400725195913772607853864378859444934939531447761224183047601407747501367926956837951667287057064732112685846952158689859187631889939677149680058001025224181824085727358265123328878956184078967705821180456887546809832779288154171463233358233564451485632876499306670867252823893488146428170892020144248853970600416719036124659360493311870690135473886640014176985600381925302660637600676537288903019951921076211036462997455363985618892361749133170047959281138699855132000069583374537127268913987965043876651872545666611392535277163439477812037644257044539760929096913507411373699537496146262903936807030786418200180690361613683868900363012913854991953192426828691207973965808514216121377488882738973726882123455277676528578714623189755153369018470568273426954613848497760394345205957174196347368827749398700011482673055119638938694895148189571397594013748858530466677191628348784734483805817137163168092890446361834109612228655463832779572445105820048728745953873974754002188443162153819217325669796114403826496647843476848737343504297158461923515024449846394720058076151755072547386642200100814900398222364419283591240052744234232354071625633063354876668334197537994619068190796208451400980085621358310508490197450557376762447812731165807881925351572237076817468815914861302119459906586137497683263712508334647201249013476509024092458262873619455923736131971525230413447623808411467815688458696418228681296552342571173216154264812732793036187782118555612101368027484288813136128391648885110059209856115092403534647710457036748292742207126053391349512611829215092641275680770320795089180692781694269160626811630454973198069565109250166271899190789803686162050857957309754300556536537253675895060875920932191904491742655918564800352441149787403836371355635929290490566314625970390813517306843914866400628625948834497971143803530544587330434987110734872621233957019627131487609857811834896656666571971995829403110222057095245009370779548038186074598231786621333023387255338447237918586335537856833169074339048987842243006823550271522562884561792584149556742594972084856074865730325808067593442322246136859362855920649270104857132451529326047825679893868613903215211072153172158997898522127012809401473466714393054612941249354089434882203162138913505174506723203280170477851875933784705105799630199682353601290999843592075683655442355768419337361384320708560985911807385749136774498925063387138375375055434486641476046053792151871414980344709614303991285641214647716063627773620957735106284883709489341863443427049530912881617886404736863991546217055869621718094528867686291964568095259831710458115365637326329886520628989141760300376739759390269235087108288059465070824907708648882562957481347477114012171957974123837760892432701453932344873527412333951148923683176037456704642603148701020262333041296968334128345739599077306598003349896271879524284889936483117354006893711772875966678584896080963921591239159944077911612291943938150300532352622508931249624204417081400882458421128216785350235311753600854628423972957521936342122565321655806768915548049622728156069681770708406904347652171537318715236709002086868970103721158359580333451217379051614590214825110081096071931777499729873313941808529082584416633434117429049439355106201212425527626150380424563752152819130989721788830444064600459305150693453505594629360225031307543635445631456751727148820853250411288532943692708556824523331360264281090046616465740838153847506202612813966023014802893547700258396585912046014436514365851626376305989939409427914156506932974806978863945366280465648550741391836154785628715668214064244049916206832309374388534202660889276936834362852478342868421195002510802179425238201124072719001413774752421456623260344579508128056904800437596356898203093236493726480522094827908925129726930344230616201434196294784848056023671672719328987859216656336576971695273587905158839247235913477092077393282002944120551712066822413082776095445349456562390711683103320061153983646670250446463035717539410822155128622353133313632020867108555205917352063457689433045555011599966130226235905047564611418932323879083003546947449821438841384937591472913538653951514458395942979059885062155280294294063884989365102550113894411636834940235624807766997477026041191942113960553872618079378360122136821107310250584629379663967617948250355900239522958605049605667754807153672162638257237900361614567712441430536491791215592906254171442755379040480048960855188900707169953230702057247174313943485938027404585821288950103149975376466057883781943182862463751264007409086835666602698022084850657617187552999233832226442772184552119461911138184853838285347210932565543578152501201569898861174520111852888239929748128407631438127798974171219995864061132627523946982748139093294345111112648865854524636639814913496275588568264128934449404436639130679976143852782954440404814680585487306391454852801646266728860548397625283140140054409207568740849745025260003739722397995880531668472574922930581535263922388041757282542193810294896792174091624495689332779661124481522945827978950466105711230144891249986821470952872917684764854812572384808081998741768076579475451944847894911585981965950716587156229896685495113046136085967999363001697903525080918146045994679584449050647635690897053082178179704706174093680992490585845822707304160457136879984178429361283334850233926388658884307725047605183253219089534213185308342385389339765291148358786711167862088373351745523776008487243819417124437345419101692913470061566895695029526310827851027248769175053543798934609592163411244049761587757558745041639484405743849665389099458501172929855876412170388626883516920355065421064152083798429544765033347545742819449809732635096782660399864990924621114850010641933925562573140134078862602010318923369534486083715598539084781277781145855710209855813777668557337285095234893554748258277058026655533145467429251295159930320443236151027279559541600731059923168543788691291601410047934922721287188171171846306674591802437949624644126683511018036186712182494046343205818212040466564742909169110045135066711416808972938348902687547430984388841769908417939763375728606557507630232804474420228523433869278866582272952132301800400458199037963149868420916879493406705802216718137036915776042760233010625746640426214203167541141810677999881987148259417432837057168007745922673734190584120541997402121851146057337679816425063205353516614734539758364718733292599084998216944357747738439939619313865678625993262484002696520245097687824954884706787694047698147220558303317747976461484756233043326758828179503310975093725841667713522058707467202138860553163271171027261759529129958318821710627354010000657935396458482525571539041874057263118480094503099871291935253195606305890100597647902479516202964903280717110866325611007504918610031538565537327644085622750854284389522997340079897919052146508265765575085810728143156214391092217348856405095103931952905250047681961199132395341399690237995843823037169226698153856328513072816930440030525696285240626992830959633951492021594850508644306461034612388368122908803835897403354870364052471611208630016124738153407123005620707352465625118366560102397982960155137149464358349691977862796183718965588150521758663109029130558257885559404095371719853277510469924235546656869582271189290781708772343697233455899585061166602068021962533055499372603856792914323674153011710620996230829668031986500573783224515472884601378525674916045820038212504617995364829980245441126045060515382122264089231753905772159200693556514072136022599599756482452504113438787478739452679476899162422883692814345591005400442974187305396851143968445313343371254238254522456315846207640865494937709456934940130057396915722559179668850625161829987576056315234386756315697173120782822612634392709465964299316654345206833261655347012888210775224035928814129501096350242757340605208038281476221210128889752134210486476941426846556120650366965094632192387761232134471611976357888794992290085235904925985399461311640600072917241048039164466643997938597651095700080489024805450739620732677372151509908418396350005417069838194473352181176408780961235003471716865097081261399686677515081420877990181098780495446548069247345373541548278381314322943729553976391496930948224890483184067124195328239194771806303337642553867912409259601885812955536920253568931400017266014765318154793919561290879553060706611154438320364268177046192867958447559172561819011387822093564859098368552053805987130071473707994096867801378077348484258118546656990651361960694967424678580144259944422200292155172268788060688077814810509184567022621505820096096077831062328031019957394905188270956981522623018211402025874020911317366438867984280217621112135310998860188341549429477214599002683283594645310569960772410876701183138704414536270734679643058678563355617085249631446278279735500793356183485619225683384445408965644996977416184239167139740123460284316611966735956342450257679258188188147874863469375591365384824282082386216505260198951325325159464826863047316556051302447094779522502490580999635896709512993401730379931697928598106424398918498708436498266653093251751951834829332386997230041539224043177858584067364610076081270646754620110691320606206482846823348047895564247781278553868280931007774599141454355131917846623313500539311035316694244246132393134025610334645399650202912096729464809013541958487913728670544718001450571333231404984205608773593788173520128810596059204908234442012398918696908863445032116592657992413125906524285232256748713966779222120527660037635960001810831265662165140199918650702446341822043935995833937774359611520124266581689404032852556391922473420778162500103964997889381775522293505154095494831457711499094530822786310780339537059506421142882407540222665684922577332575724313105879229555215216044599237212143177754076611861883358558496580656560607235743228567557542474591281759558923963557134338338602234931696305850413880438909824538087389260968369142632629302521849521258755372681230969467395583059511907148558184976181932155651450768599847623333683964267985368574469845689517229165287247836277289990974707544181458358866458281766227833389405300597749812463641567967387828482994657885387498977486341340642485107939995386075782556033000489795199099684639751461188246111834152155718365489135295426209215285926076403663126088039971265734556558745054949500321930698780451260331667256300658869822753581974533890811289176352367097114100629968554762258600119161959376458871882322635101467751394090901091257395251664650357589132022870335251893577170639706868314616097309080749518410470362332851100948759206527163512141929983933760023844648088232020213539834965739708057504357057893825361792187369908313676759435452539917669314496174579167662305595339252321016586115505624691689263159040014087148917212822353545180835994444004791221697816452979300541740987146809916380313809235811751343325271095942214435327775163076828643544470147184527994986119362378530015306176131656543789848912463587098140129690203157613887558518291535534792276871822996471779284223288682171981293576398716806489476060428592941830012062368924360972554592705578782451828958321946933558597954076293618142333762952047548679962218497179981497579907255902474108780578590842729791751436469501858458978566401566964261345257566596311063382244181290265406765758670784863867501353609504206381900134084249963814264767725215129597733973627719440307133927780055497195950650108765959528049781921620382002511373363278286774042447232608739296454006845360893351160557500361539492349424369859934145152306688529820979333355491126499364737553630720030630674672044804637241646206789120684780251196423367318869255664582951564112336998503897618338235969117265805382928661821488668666270378560805144936047953340363971096804516952362682801431927100986722646540417089934850096058461479613380982700623755987711674866478712975315418029381981356257650666896492743501008113385840106592053779617118536941091893420871368925817816607822013821924279741526906849851954330643200617910529580238277229609008888452848555012305912124227618992802524484101537022927941996177769508990786102974687601397235600807370277044676606345677411966879913103870340495539685458694610707472681689016062913468247362624127708380440678438262201518668383717240820873018167722273679455417830363975582386382292318085310841256105128143873589665417191386575428113429864828514892318247358139726670919104005486701913643103486027363745539737776320874416064658510840019257985734457666385647425792251629388761658895881393511067187727972144713216581500831289292683849397606206191761626344709086965708812037417119690750851695298226524862772941300258703514229249513016071684512604480290957984302901318588738749813874077306405223167565102697852548646333125860746785592477703336034421026799825284881650979554691796071466307664343065197733344526044643426866693433481885186687404252627346072811776169295371106081349104048373706369321933299779702387681580953204809192855928295992224315245931227608868946017984170585143838610144601676400116981262433285014368760201682339924043438203800127955784814447852851304577417486146290827014630295109705607969163459396298889964400705041053236078448300083880121013232691935209877177983288726043920745643976258339977392383471384998413412472396316545959669796580994111519643798074498193123224945484674472772396706590686585787487283195909705448121297288734551962101287921305399727001761444879340315605394301620132716654666289487260659841214215027665853155598997932260558417724528098668122916841246200074011989867988328806122689606190775788726792158260438910572533315320044775006799616731932469681961184767559872184696484285907565126970858134660078288449002330447419022065886813388738990659574367594885339983930646092937177371421602731650385749250307789555150341507833631543336540433275039650348513324560899188268772785985612751745240137551274262093183726832708990561999655434247544552095198499044254393181449164355987328879879890547121902937293987522702139314729037401171633159561936554103914474405247967563189236089491608272045470658053548898295070860089104672105665204916362501891232792321422174390382107360601346586239694106850666419645542517173762288518752390455974235159976144453964906691990167718085425497403794482861571856719881307452676010694164657171941405181405842371398958344240012308311949697713163533687777602247403873598958655552210962838822075366071467354439541648695248155960531446626826820261974994052629469586883467621973935462913366171782494894430523983926533632098481922118087103002765932572087822063477298201174134029134079166936420374607234608443136753922368878774110297562667673437247678570446410734462926090458144625911852182473772041834072087208784208036535145809386678596659662106223590117150641906436446281161686464703407799823786199131385665513289832132822474844491447887369687473914713874231087342237273237501215641019990414910154335714632125636436647881663919897114766248860379546037900915345756121145810525117473599540270434972727724118985896758977424175428814236101620754439956286461813019874050145006969903707496009896467287185826716322014099076946204648019254946807233532046478059568351552284686181127204588505748612360833160492887628402688713451505075049817566781951735808505522583709318906947936046423183824331034121748840369357512059750228024551464374289914046123885582702291899647807377721409085952742697850223891572019978606714707222832520250646959288595870206613251761864914211451355893708901257138246894200925472683805918665378469513181406230125546418757774455984279159434975090189050063789445207400942894528308026912110248546050324310188023720600135224352742076461180178301663009402993258424920445964907049751807951771815267477614014725169321309941376054463016263787898162855436448133416989773740554429060357599437575282404540747018178677094174779137122759485543728788502865727796401924383443011100408205148507939229982691699929903479533599366315136652615895864450434260133734412696059822760025636189998458570231455145706599855279564159082981307766220213817793524226397478233065826196860720124946169911913276631331323439028431721624268281334354905419008445087816255189792801983162982828524756688223024790350762787057374418291328685964900961996586245406008049802394268356290867693909870886457251971190641977213649566649152812871628032338947980067284555110860071756107618168214879327401755154780009758913284491002461778469030828524783206169899902735027134469901933734447297690092756004914397544400869411243855688937656381255702725198212617222533829480675111534157013110490807765826936208805153600682734614849914520016514015417245995144013861959540785841573473838451666131777521990207551706972822019514044385642368594398641170434540299593812749045895268204466609511314354553090084538524383124134267634868571602658181863947572012526734538227481658777400261901237980755612932189822932475700700817934437898493777014267634270813913080423920839048753362978159380623207039960880624598709541590256010076615779096247513674698484695453690243368570138701139790834800920063111575715764303524248919535921404827342216486804738837038005626604335733821286450750096591523153501724158175342712029514979201457805702029109562112570913629739445694772889729863858186263473789788828799021346544899936595505806793394032526964324499761796455742275408670849394753652339603818708262206595593141178268337367073708721448648541465376896011023129452640958038858046050713931621014811370641403617003424163694212263977912808405314149093104755003818565506544758394186375739836238016110987005253624023549171851937189755026815026908737228338036683764168964522676623764198241426347129917575843337036629316428000950199639113922042932824530253626685100619688752634992980069920491845785245352613972622087764442565615021464643280617316050947644545088502663662575444287585896620902757848505176558598402983616294024564337864847483167401702333329286764237940024371428742926278748483795912015464327493404807571704556001032957380600676265102564081574918497803216091444796365664614592828144287726094085826365979221368000585950923870882233817930062112477692197486955494253353775625911919095993268279446188305840312615640214842626026467079845380883019186438961734003439257643567761981446029183531366781043040704629861640542578403015943563633059340666244658707538323123488376576123402605448285085950020258157848756667996330627570389361569339498187731157572501844377029141377681425385423851179558388839444649274028079509791174372255896208903812886533638685388377855351367916560464532201571016037550690955128314953497998784258644376784443118471512823245258205416615573749732965737344830871322419767045369540452675700236704920208397867364180517128989018800698116145617084128377687047410491507986994064371406514227621655647560280744573199985923956937666861704791915598215838323376264044706917920292153719010495510052869204862872515038926558423551587273653032316732926367565135306199435441184692964397991571175129564223318839947633193625682675001127672439090092049757633319474406171136886202607994701726494167374332902266055519162104644889587044421722746577179119180638720289966617199206932433104837556510026072925706559402768582901478837789429785732318159906017504441021474557928963922698948894755152921691592406139460712958962886350331160555376457481368380696552828199883277068522215993836335141641350856411729289967159988611912767250867067310650098542411146245032693883854066924124047512669479858026994192093640033155641676994671695221345581596612832367612876409077288570125901909915326375633156227044244540266240232263906265711620760374936031947554183130260227616127510609414307887296114333643120166455089783411647028377207956805963667606044039734921749814097498493435113794105952554350515895758009050096411058834100876333726573042371263909913703957946176270476787735464924380705887174651997900693692573903000725737673607143600248254818125196113224252372739198590371620842958307437225313298990469058273427810694633684928904762699187702395052316679832788085500427991359584794758588240618789432475962666898145606998421296785680135024429760468471878214390358709001831737377829075632723065462735420042873036316564178892738469161637457490631090674367045610676731910113989233867939055763120528275570891307445607485796946812305659896324806643819185495579090559910550945237956202601176724957403364662040387380956659081436380927838512439345332458468916954345454789161321144333318275356182404664668893462370916206232978406323220887954587284200639760698765430397490939393517413633707264614915571929629726329053113374592423558579596670386919772504505747600663219724354532641595501723719972973089357397808755784271206500216824553838480121990444900580195301383333034270431288314577668515072904693412197985506739006236424659175942555770265455590961501656725455362564321177088361296897922010502411290200721783512515554026484683414565904080088113634811118722140150530378756977223841111298886781962988203202100462143956736187129675277804664014185099059997873133233748521323229304877933137249869941377356796005203257198002026863915146092691536448275469694659160097244127545000779576017023937031448352593709352036654261602980157063423399451823824376790051579826215991149777031356109312456467270788846213001578060600786955461985370672227681161207863363482895723289422926697622883148095080702354181604300254579463758575990738359085450216245366230945128190163083100971497509373596004097579016177950877173906136747201742548778601184945734767003341686735933896834929431548640137336037737792456984741224927431692837722724224138481684403288336261804131966071571378203109267285492111286871271783520435117226268613099468321769993186061037603448920492669483986992292759295099505081901761253500328535654617243115146953873079060792801324048513208295376599031742333506994701797327448453701320230602674920627000551698413905962819942150257484998251064816887406490570318947590090452848916608915147627293565044775889506037603286199639086259122443340880991451533269301678401307003337057039723288355113190420203328313746184575592989720062715887395282700043980084432966390970582895202113774104628820934363013314728030453766935816801969433325335330154600642201238316599838747953394480439291865505782494207210658851790360786326049239871967096712936052850066628846877284050744712286386969252913460200022559716750144083444303795677481007351404326629051923788522011790395657666601208079111392017935094569986692824603110295178798055593934805080613141053378947582209028144730986661981035643605318152538193418864837488332874219431693667523353884205358078641593738313506276004865419534048554777960274085451095316459857657322697302915116694428155826205526979609744631738096337598946497042384530189928236932225394433050244242525900730009002505895277242429930477709670071317015257861747633512009759379462412875142439048408173391580522714370123713336587684960356537324012108977722590878958272067497371387720706244024858169926026961075889473859890436188356726998454653212727020294783703053167741636477595155029221150159023578735193822299654412671214824782340914185385031263351844945974009665308344768461071038781886077709494786562600423351957267236955673835524569351708370500434103166878785362717391810422399145290335147388609646902311248219727591474690882845255373872954039802560257445279136940805368774965546642737764556230652707795390017786087677633082682795908966125883083243414583828364874831052202278440427201853117684877665144087009727718154763416581385064974433749990571634523133646537808175455490397855458954668562346212881871453786550713969869074036921955608996472579026206227275691426659721139448133616828626306477149681809040058053784941613253592084977331635711581048008764270553199063288475299139180895630813003505958414865807061651439474593526160349931153658727792377094983592002563465587516385025747787004357783271068233288829542986758585239132937900518012063986371090799010432138472333573364995574545639845280515045212521638777082144541512806423909178250852665767344432842936395122722683168665476625102836085604687304547222081174068721112551854127480800233499660635259682206931689943780663869512430666988028120117159567421094468762452217467993773308704143560118356000560038847527790680285735001780884109404356612770864929777758838750067724804617412980245081576025472386233155531904699666583497410716207611336009965193826687231962856023092223199700950688290654680627771837229393136924506805966591747378557657812671521106454306528255412343354222525095038914303945398647724217404134871983542081379329638559544813698554111938581966938733752637303780788678184741286545332969066072370042024678765679720833314434381713236988981719836948860216506689720362801346371354053318259750401885631853660941049987046908904794124774078620149410783205216961824140218739072769247958973174804189718768622575955968025091239253257448983173161192503342157167685306459577342774949639662534327435608244161286292462617825411477402387220895923498725589177882830199815368695856279287606810937401247969019163916804431200468204753995691665888598630507059335280882523852595059915528596138676402378952729006233249232587995003499096982818322166850101683037055232668319472943265129661629944272062916075854231576706420046558236231513744893979276304470891063306207040288109851312416395988224692365802426087714403505754329798363995293626934898740042649495941005478647908223005903182855497087388059545705191273161683328241827079518346620944766920872822684411080789219830381628729379026984238010023590135523781076404401446427912805644380218385684899203820362324549375801608594550625409991185107672312265073794431167064672231623023513499980753668061464060193905175885324281455473995579360491799355807691504247447558258379941457457447312265657008231021577907468071976019324870031604402134260656854715889029038941894284973357240119426590463449275822849496185613208670966029398618745627202257487218563008266844017486752291452103410808541605728480975494887422336033628418332162910504240668289131580315620392379075950304266391589454574684531859676241809150956253798897241336873642626621326278874255440258244358085347650102348775674965427612577578491187251448364011689396015253137373126226814819378996407260718992734712858340583759816210891829655815388681679949403586262085023076242394148588007735080633072838043479697671011966832438725920802721006890138943350737642119784842106769699130652105117927832440569574944927093878559374065377497861369408716830396780685563080784207272438676386249794887430522572797783705953587820594766616025286948455284089029695297767585913194097963751137746317043684041561846072320712080650218453638008007241233596938123698992288601606350244060450822209313521005735034847059174387306699819966631148196997745348008850309314377933667170896557147859871188690420696635370305067395283670207436461927203772825106594026403775514467397200251159023147569646750047337409995213006205263330485887365853963168965707369600386389262661675185744300278967817636884180232542359256204581065396192256781910222423100434200601194292974455446718489964891925665193181440790777399683731743590338894181231167488608283429379531825614308007736304240720455177446481215145176096277190234481945155809176734389945943602583352176120229359498855885502543191479444474876011501458552681899632746788651788725425939778685591938378197485800885634010990491111111137068817791910410137826655724927985099950503939680167164720797245193493723268128569303811621064910836617462826395279071749979547951258715643712151348402135077178079908800355323530836776117886346764250707556363914885686918891051043935206406570038533601785071617686529561036049457436032105109349950642053732981050221499458910573104407957429653117488249603304387115789046713455831008085573650276582480666388735636783993920239165341171420029717454347167022533581258869948149203542768155260507214024646265041573497705410969839887402981250542618466949543411912337728244748387660557134153845682340139414866736911226650190982951957039697785346670845861936041557277627022166951368928353239072084696420062200678597613316102366267234314680940368824847790741647934648469476721682301439287295754496513900711900960276957424178429193495300604471914836777965315187071446677642495628882551933508418193850470828272154627265628865680006766729885182141915536367260917400001171698011395516155911907743877028768741803916579870987519696534906394388403120967342327288569134979374169006227858410613307504043968609805149425193135778715723024287727129392470250832430500063042589432529839521854744120071205713847507625186405016019602025073834601593560343803962765787096926199555212151474865744305614868127804648489700708798890930949174712814058823344501439278430571943400072139725062758966444866411875620738688016293172644017876301677174080555898094018280871666104894290745966406416904936803412996860805680249939546554797557563562349726552305157283530712035673233828619780252491243201862925210832694547602486047424387944090646750592555355600547146683300601007573962038831615218545297886137265357150909538150294724821740236778674279159650150419164700451107174948882284222838340358706664987657689906072539531563243097708311683453905573706983380151869742063164391469210924858037817444252816767649257557423981654754279357669250597313589751934160664927377642785707858631111011793718890539070386065055424393603639780816727644399622971090025736976837351412645944934230023738412763121014333871045462496819226488580043898604115406069110863669719629756494049041218967532280642319318958759505896538694268289405552749955733156368204023221690743425295828303468881979492285359253387633924080369803392553686433427089951321370396645614997509486042483355859634419523973130599542772155074496331961610356764634625082199401752181953325232083740584690697747115040270915559991438885977610457281909280682022737097370797576225714297522724828410418791400665937371046373834305379393605905806697789517454669332512507311287805373435755828191974320651702874412868917155471239588943966992956929600120926903741025291168744754880804068552408832268889244967961773704069270468440264869716194025862351145447223304581042584962888600521044419812574724820258004233107474222771793593062046905445296084195371576858118728378417302606913781342400908220149198298571293295110755954442033784982846626121928126375364563375129479549824413124368120070162926973818967217502713873584784000780153414934009391183227786119941168383154474179935594620317759219876451555762216104434702784046570959402282843279852450649178818524692910178997428916148536463636656910711647548885482811045895851432271648325573020130412320055823677396757611986450490487137138993662331031957043240610463427255059155669406952837462776145807778284113608930122162767015747722603692164874697223126225730639777210889951994389156236699550806021873775664710004330203645597897995470877350478021242750523553403044045560236070618341632205600577082786167319707554396973409346155659928935259592045777298471373676383431290198566546082126973974782135545539126378686778689304896944740072986233686859638760184421978700367647056476810211267505726520381118917821829403407195979442360036924056834020541431251661904814248543997385790738251563784812774863389669698576567480692999198612892420801790019978179136383094125356246668257078810872882914261714552568598086194791006737165092903601002814099777706585361067270725372971859063790185458122437367645097585785014338610022478850459959705990616698675642329279274698968714372306035499084332483192764125657994360998537819708611949791806951441404588748778085797991167419637450116004268214001912501961365845189598061890536972677032580623992171423787612644436278865854386847915364489159238362571323209199217862989565608049785659715396458805310721695534699489286162830200708243547526830259252574866211752643513889203341104469807641431799735334653613348872320643298167673951016685093063420811069877615777816558299370533616677842017811229652528692136519576995032416897632435306366542276770533036404466509678770787324721261723387368510161984518941680316169229395428674139299560194769213504013576187145267512255315343785738048688575173633148531998151511264584582029520324631161799745153932558242014969574335668400951835103777203177171473857775526429340048288378534838573939169143471858840581085956445065341163856699510757230521428071041680860867504650458900343391332039440161530008075522458564092429066195237550806339379100342475792371096999360056713130717221416583466898812549849996308593656109580441270814926499757358106834983372115240090493762571686156176722218634324972849155629076565005445327961245893538135190372057215957534430798569573824855879149881504851322473582398744997042017066655608080381186368923608837581629948243677639434898366809333132681409878158233282430279756298516273778097929277241983143194825781971530008269552203016376147644253517657337149548818849399720581327526512795152916869041272560056997659966144780844410615991195912780858151931683269010762551583426244996626371012614523591275812250472592993217731864163468698645775146447291885447489598000122444091112134535794054822232587565082319544160386633424518191756904210335531129549953696620315739618828895822380166426305402382165848894561382113200948073940627617932873482907644529966647105124717448322960507964306758972690631052842016056490929090822254988825981815894226060454859961302090952730666779185395815789522849383045405225720155800784292306410237004891913691165640329123523623109471196976830398068307866918600902659421115966326263620605741144293129855743553096231227023195754650944085244924766680646516987542283736261964918336247488665470566660943725142026007499813818225678040940022642841192594091359795379366980522888797552024604562279236298891294687955790842365471679549204311163695370456807350110031323901307609936359957745586798516771569085445019502937339420101426265672524150375819470430472635719228998420091493835559504192458599537342853907059463792986394652814426018960888421420336082064381334142445079750485470624255045067930291752037844673380475760808136006090754785411478296868799396846951698324667806034770282739366185631953678971891944617057149901117279522903530632806030395414430665819880876956096637299334963603446284514060837840335576140974976251552072021478764222667076694203232481619192737234576321336906249211543013564184795891694032807577641968078882599810085831907656758685793531753906708926981970480699274701097397744364592808676538829159731837079724015868155932860047966390367586336499489693682049299843446695169340072520384854767320219813984486502016233681099324872028520010000634661453423750577178137577620992061737470949798374440873188527641617362619770104865788159807624948101003121350350445984519495405379320104491756884454114336024663304886174693078962448812543495694254892473554212381940333035253115508916931577293131450194480586756889083006337213803540033478494617009630659362125251171977513466874220448807740443386202877353073782025905508613702308269989936785124216031304628827795191470246990307751497736792465372063081330883992911925499453699720606795627031514429999304643023412177406929492901404733825174892666329569707754518790841570612663675097957768248899683722973430733434367469848813233490003970449837608271661535182208699778031154351152762483696088271530277316147461365217891045377086148375821228191693144737807643264270685871264259174203337888041625074966195443354549125607880311020222142112754560592594421468398268935176931474764195926582666619019212083015659043944326909370819803068430556772310612761057698158476949452260547300786550504859345545064752024196951938915341135543081942705336168087189860049718259401258875604277256017634045662718690486383156137201985971746192835821623704414942289738476175937664599535827762285961399117756655080528476729073014209722263928005444938523451523429346222903639318288538247128739063817669478453991198193615170980824614870993312441022931468362459625944619561705470008511585887075369338178321138678982183303040421978488728157596545864196804779552571676986974584437416159451584240850544604210830780784101283470244482775128751160525512433268262029263822597616266729520368921879491721802151378339101880065881933315877581984085562940756871027298936673668054573052122266726756989360365932457061541736500032308836262483275856793132733359012899889224420069357344177236910632138821160191239671630901001853612502840489196850945522958561694026278080941648240441832074932586911145639524490176499835286383859835116252835977978988074188274556347702516698611963604215927007269007017106178905100684451687214455886387153622099005259555651496199514027523058312585747305474385404626972052893185694424755207275635340653956461888813132574920446220479745900211325332014960379708768813157000507680858713794690428663314967158396080244743821871146643772498302700268260992607078319596703941523372093016424338534288354305247617332205443225241227820661180893155177109318300316880619081306574979368493752381654900898591552322128841697923890049393170287847199837599444582031799353667680610592597675549929038929881869423196266261885605583151920690811358859758859677084530901915214431023127185178926276027373028241981723469305793178863425861502891611870454398139971004994060579554937918242389380605790818891848193363375371524023823384508955533817296519485833526016337049487002222006162221265131471624903354023688894946839915672685525178271123802238195961550024261805534925352000387313253138221354776325826941853600886350005638720030179792278782659301775080594335482159433288334504425111144308216147608526040371463900561470468048633805914192976287859921249312457065937898382973927254086741819106645971677122316186942712698328900822817622087576050765990502712715493681949152719013413070945336802812485129465490925558945087054001971527070215891680826288986271997436295457035999414141484451991893869014513477921448111031538604947240195803798516436129773419389143845050980296093772345685725422149700176352070346492458771541175055085033775172018923657052009921782911706233835230877992719990577483444822205741227800274484592455129087685683585204991629021541868598041575265706256537274723298834282532375403383094708225636890589502411921987998708692197666290909451877854703252046829375517929081586888926789724376692454882959601471644108841490716660718734323997752907608713550511673797761634704815260035692027473204807998257803895059800130278707874659714126579255780985121078687678737441877798923030027788316665732859248004627701046286422209308949137818909003842167246464316750202686174821387836472711485957253414398754434031856418117813427026687762172000634273824340118966524171932289194336189048143363812386547806077424103642082029415754856785477178508250518368910393399693583305191808063536391925640191532957942834380103951288724365159547965568395056458662505919410283956122023312687112170753520371821917070877292028386137004968689579795049515030824666472972773103869418280872302769042490935473209465510709130074394423122943097082128053324729725519532801352331019431965978880620682838900357466566804827078415968661471754195329724089122611446287122352955256397717970489264370356751801027284699920625764439380025143779392807697491825607287505917986084357155257806665486514190946804935215605897978709045214043485059875876112211548973570346259725075150331584312770404346322485618461871038582479728166708310741862192370778910223524622626170489570384967567303265974952175671971741034973556451128287355478018651588094169420400622426875647829992568555675312494319821367872015103623620289532639651239992703314083748935613040928030628845906963763839659179601512424074683507082611726017830253884959938053472570350957636497110009862276776356086553448232187621866972302223976955619770645717492806258231410660019149282386840984709707349238685276611445294087350384140770788261742747940426442972495935695714777666688377040450999176226576437091060684935570121503188565602020533387560783311416131807122184959653600130826087719953722873551566570419639901382989325216884724446459937314621844346430970072675781435984100668285275396797695226200055215887426153344699916094728754654229486439406797408537066879978626107264349785606446273840407317532294764764789969939848518653989626691106680950514002858310737907561125953636247133490672968504934391694526199021895501810422411760047161315524867780644960376890757056050940023680282416448178710578555289383283842634370842622051477628963212681139533504239107236347576604937101570315668158547308777551246106819155576941250040333369663969421054225130575396691451794140296512483363965650808042582585448754103775068321861477207654641944787221885199769364259972777945867482004731012460818483567383506834745739523930876373585959561273761196130737962822941741071401367000768177439674560811517332930496512406960371740290118823726542144043792871225588849197114239211276634508969924070057395941656106848300960470195028029202467806920597511502243847020888189058470838263220008426745031262361513658441444975008007916601235485438590190735967526184465248353518636988586644458773115907343634292367939519736184198923990718275584807145465129590065596228714976285644605409508631083248867246707665314954068688015699365940498789523097341838624776061653344859052017431058505851620417562146516760349594664601257463418921453901297282924261678052817879209971173397549599802638978048288818939649803169075179318273786229378580822293068994523648197080315367277350462855875618728914890801527962398957048058715263358371169509875401065429245062777371204108028011108444087495662123487219816469689222346510949765897374948801031379365842955751558296443677025111618526304581366440509463559624734495240765940882589583401017627746029922112875447974227249819147441163007229478340754360896620393309934458049684721631806764949005799968139351606065896776687493773649796030469911454146347849930596911420893904847461098590933526326492040651536835776050182294322611074899944135350784801853535758721847048557736513215011377264865722443289505890060095803605335907731168327539160738081312055618134367156270017765056584011444844401632699370143390423524027606102082735223037812555501666419765998353662096295070615306041934742635708150641283846949797979277431841547642313263437629830021406570145653954137972371101253908282493396363136213044318545201120426045285337198104421349186298224176490119116202678051166336750218275581204125336160735945294486726236010777607459713188349416792380352794925860524738511295765428960833011401571984128111569030763470423758270867692064074582776503808274019019589605054854743666206809653624544893459660897452929800722225728039259656834374939119270828128942613578302316203692183625018406312114936018278555351335808734440496870755497697798419872022141687319020390371658849841061761495289059875110701754582013509369859978920839873683626250619664059674425846652045490049783626601812468422664483633988590448851406898174729159905871497952947766939937648749826841803288628559275547015787730588032040903674663307482742698204365408762040520665444554012356188587891821597555051563505356218540113292194299327764185983398570266760934395976222408512615177914446283960400674381201254176901232484568725158603187806522419183415175570442261043933002300905569032999131439466401221037367206561845559987755133128780245793699912414646907481556243067691289225001161276773741506599578383164374079376738146221763319180255003311470697861815117100568375528121845199743473039950272308209518787374473008106865963154012487383809691482029595119078710690190820563108221401357006269575034628730915536779913690278649711630450934314283013303845650710691157251786286912318991818522459491741693260780841450706527681403317521915733463992901526332531384854558178969063715016124617926527185377483097642821140945221309818459167330032434926108708697697802556256344680281037992151268878132913115758482728062603578607909967806876747921899736579728099424536420560483703981108373896312805736889339059300886588767461831797312725259909214342409477811910810774586630765157873192391738737947917543874054678141359779381436193922347916454162130962029192951168243028231836603804272365649374502683813796094657460454399788183050314864235556361254051768469872108499695045878215346238294868229203227069686519263127627097875858482362988440189808113142541091474293975433739335483277940505953218360712145067921645014717923354155490215878508589739259298045039270454375292422747881991416868219047478577100621852107412769027547046993284966166598330726305983074575648953642150977686119681648803702074377756578840847573319256111992768273952611976860512673297139499351244211890277312657734177778674988665925173439835264720399088614332023858581154316198134372895946900425606301599519936458993474871857350983053547971928129860170358091331372369236265736963972525651317749727737122234177996730681570526474209605769351065205400021927959098561128337793463673707579607449967323355274144080554380968968605743554718376293348004102744108943866299087299906150623300696261626679419396983620758640912783238234411359638341276817385950170365472260706950188310218451262632924021401508698499090034723830749835154184510289734699534614536946411950030996925174485111207376951536638359416419455207286969347487175607280354722697600560489634108076220097901753783935403097662614557200474656357018862792459959634044769341972114074762907913479020202806445864167316685562977144576599565470699984120748284752097128750815231875106377247034829487602716092464377841312618965109748658383245331511164947483024066650986452351122900905975982816077606260209968939760038747438606888459592318327906663918065135771711480007812082751989980363188783871576638284313243901492090541530727985653786781752820873572641452670857478406454001077827369359480181673602473170842393138654812665440520173195262748772941475987348428629012227257199757469323926135768380654317147371308855560080398094385195316893395248214524709581566697590100953409700893783274541481454753464394187198512000900706938701940884504493886258066064566036663469292715641752700590327141071254580084449878634990657719540631900653371466333774379475509475918200923136122847808946305292768790085565396347124918422739137438867024762767312970022370017179737375535118892080741492757449264384572778967572726636131249571472659988777007950633365427300145138417676571015607671461992508126277429754030724984928647760790385740323514345416603865209536250841116763111556809368805548289461580290567849675775594018604522533004761186947664720032913757166860215717692032112034822588870522778562541279479652896608628584467931389506018095886184379772003195229766809652310736409341337048811603872731658321401537711445177249957279783978610750183917964116806874120952594223130329722277159193634656121484962136598259245603431391537083199123113321576763194747737794721587882570826491667957257564440017598795407955451285679032811277875450123337149183122473594463255409745998802211803906365914633128156158858617055332433823594105814863483977122105493825331331678020106175511337300595694919378391295971017718560725312258163560103559856165829973244402584841505474154516055439667783178195816515596835632806579961235497025790939290968036453605352184825764784825239414544361472413495349348440722436502123845293215963113695135633734879632565309344439635051105935809549895869339425890360296073420800671243393653212956199308687246337957828599049550024737244765638785126516346750489949228589983052314389913505683832703891650405150628548041072328363896870039340323703408247275784182686788655552511948865381934958043640876177899610410075007991042762029194189278720730135252567059670155145334812220164331732439653088394933294668602330987162764097385015982616414934734901169732164577566920187326657035405380589656241794690958500860339909992068900350743648363777965267756919617268919734571748596465645406128224285527687165318239171078355502649439824847657624066978646292388152613104199860097326897896290059303857970296060193637345564405634615366714408138365236120035758650875652869978423656702608858037181734003626670068126746023868970273799824800965036035778167236385364318852853679221702546687310309061715438344994059545284501082034459477262081501418924759350925025783853344493277292850801443889645742897772042018029461488643753667437496502463854203032193188313306765150834477514736270761678458862672300834676113846935576020283693625430283460444722369495547654293296564994386125139287497559006300015589320859464754513669455985186437201618981223610547687342377397807015023640065044610743214212641157244593810127936517493666213299136347251472339615181594383627239890223606931957517865873398635043914092132132394048231367779740476750218133972706741535414743939018797143496174376416463995823595204348351630906273302789458657766039631999885934392340270082037283466942634761951100301669019939768739192601381177771858181233427108052350440455665473155805744412896078578717814015138978380070703808322979100624640353550337881717051880892788578000942627645700647771201553248413409201991982332835315653350441359306265677981911573722447764546602015798708477496938251361366173144819483764506646683788921470250338874041241909049073091295538033046578810472413704930962679843514212457865153077846906545144037626886057854246417316542649160035093757324705972894130461073978181594167305983536339156786072735970885090937079917919526466677086895904664673719791339192261401402180374027294784801231541225655971891723937381490560846789210932115561265428516063605903283053835225629426576000805418923815354667728363218587974425071209861024939812097393438624703380603440793925063670460601705123426305450568723783433008943302426284811261358788860277253662795066745957267524143066862243081839056066940997028957612720665049186711345221820417540415758201510529724747806290052207750904787095290190518165992693423227710684197859271330708796086656703218644887320854642610691818535759695044766305094956250843690563048864178502431255366850927978624272387761413457334855412292455361139228677896485895901881501806581682207219291242881926900759137395086901678545678034927474410758499452851087998739237430076174972165868020875744217002964480146770132994685543365328621362318349213146230085189735901816243399556596630587706892202116815536613786083769552477882928593363479969703699628515452400271097174320948523377940322675683707946025158230620975835382038280866611072512157511363014939481625987198047506929626059692662845175542327093497419160258082560635337162770126501886468534646866311356938441298271348522529139811943120613874856434535910939220254405973910133666712772848093761634431831191923759935086122953058590756792455050671528282341416855444069450502247955993437831883221276027990907143855377857383567751331709319387951996523236494212306437612697654290366852546114362647545995654927750580605453806759929477228949398268071780120423119941364020556015286417518733838073244956033076281271990026507760218736872713810209584932865794229794734273138261343543202380407378885742697340160905145342774972065919175085105178951222816608769627268053430307052368971335982536935787748224339408237008678649215419129269133073221623605494294074921266968614589872198982198360643641748934599489426993065988429458776946752275307996825116118343839687843315973322137086078161471117992809656980441971105769348765937263488048398802247310574058416525080369038311473889992455180141706745547881688223163991561543471180375249802929909470740774741581847106607884459232986597783576799772274090074079844334134056258708417096336770768375905547024634850385524750165444397709287466425943041461256389624012400414005698897808671674880612207734059116348163969832771878492710968113896812542998533376572930697715279568341501166813670015617874373785891334346931064441638499561470608223555330461221137510361561063372416981375298932832184200198678769815878264095635712674832403550692089435942368352790127579491788157158156928310582497771755174520268839845745786664901650471332217292268975570460827354114614336977423729777444588591438039891370564577477905332777477971352215522333506984489455314129099926307875539676445524225495675452258028577865876768237396388139610235039925255634793318094701858319304477085453117151677164755650463818548515889821333478396843012020440331453570269117165412836151386202676859197136812866939652115986408927021442737005697947755542788078173310738588032205075953819020168609106453528310081594944991811001647926565508850254446896904434586578225879257554761272357696435918118364304899051032832588779727540894186873852828078668751995931739498456464289541692434889450357501550428669090158145924557568839689323573835359963209903662723513806391553078405761503148702057542465489827963983875876728618264891045688166011270492628262223251033874379499064210614352105693682163717723656252843354135364249747927512192630813217348568128502073448342642942994043952467421363226532043737241632003568557335949219506518751802164187205001223612789354890140504888104051581530014875168726610139713014831880496727939095617756123717242205243833903472394243212345683317525317148960598291961035095308609515412274578089896191528756586182341693437354801372783835149094841115725619628148010325520768273970735016790416374365668379645170415773395817655335952969895665765450300753390160074568868252167177194539700051712248454036385608552357728716599662838812928763164603419981781093780872241279526302325682734573151386934276253741124699148930681243947098500782423228906766496637745331711955045537733477715345777378200673603549976554696426856809331937192379533711109157829553546938076414124390863102633771289989484990919028888419803981007297812659346557442590151147480118111765147931446492181332855559872727331727091905424614517922307464133058600804592497102223950064689344314209477002906901157850993364987740653286076368286440678906402054526140380784965213751589154121041316062169718936122018448854400134995482330047935248820517774751265300299576854372142761128978094954223725806976195987338834376949063342606925730291280232464276504058145564721702976375656975725932869674770412361139745276464786580475099618364770556698589173878709436073556651501996524241359836388439222819567558195893198150546284782380128483083984748676975699510819829258402676638091402776801820642425190039087807035449570389507594827907580012864520997383721771545655334594525528322008333675951423337716840655664285869776385607469397244067108122371167259991906030270660552592774347658595910615534231294341547363444254663223659813417029879633260069432436138720483088327172162424179643447613637999623719217766952467187116458051438016906672556667267674358808037071216559813420480070409514722974311621824899315907410401632000916328654844498276768420005858188858138386003721286721139296385368874498693473531371398476740651380444423336179572733684332847925121335267536795059415429097448467423493726130350004172142050220243185964175348615729739766894596049366385364272327401784803209324302811085559168219811383424673112027155886402886253494319265896654038385796863862559552156343675031353119286144281211228975837958759489810741548647967376298114110358778242876031921583196975981481632548431305948548152383492265917267253714912845914136073537593753105069914817356839173610568374816115293994608225486160216513923651947636064790081415644755934400064690556189139779195918613304648011868785641627908122509370914020151382891405940616549541249872410359405050526839530790002440962324396033562392638296943934044591621740340745322406898886621480877393355735678537126567025460541912582349237790700399699369087038872602648462319392190061249674218084444619724156206914334245475192813035530281168985280324897735633405252580596304510806131100274173621703559937245922492294258701632383941555012934148798152317325307907094689554172216118132123597899001394397622749798896756208928174784174871888245736015513539108655568771413495479704132218286726907430234682100790855062134872783318432796578431388913166174690034484693391247034313653093970442377829696626701282770513568711239432641445280185181253604639437011243509597698278254501830891815618445981668922695524204322583463041197231840399144554574454896330919074817628241297727690105230270594882293634852951746372370766002126637843920587991378830741644322342502814026942280736092129674448463917104185827047462820767828689709546900554000713822039476733476213803229830875993819548839953146838767581836021673018080972800917015709691867541409800409830276235496663136579607561644516712733574851695779059020672361325404990178416673990055803859886657868258709982228007906844183938066642421024288301763763732882646658955806511207076956514411660947958261984600822004696337858256765114033415599035722512687588833362621678929273066774327040720053764294948887243790035385417438212999761124201914764735796425583380601825623128931706971442382768359150096227987038192693913267816954957666714712693691105797653954154548703825431156604315857600877837520146461133227104241974844161451148815637347024580649403162317669896628267674538871582749034201778905932008608276308425622594706100388621573791099495414898719026861435877568958367836336273120584553730007753406654585400666942825082706922217695178087282140832422406547512992013333120213948567697719019680415672860553345016979551108762112571282073372144497948408760191714716519804789935848424291022509828200882127449631020282817088292668414669048589058301572772004118679797491256702762893726644463438486305862513327073610889421498036681256271343429810188496746253740282069831933433102542956114522348768041957407355814642461283499318552195374218875596483617691975749331453883262411508870048076122085688896404116404122879044472708667878837660698464839141117820630911184885011573702290925090258385790965820222518038482103445509605655571679416322506850284682802994073999162390668044995095139497514754974637760352681513403468084502735590289148464391064575716817943582902202123793466582765133410974544176149246520030248945904654121495686022404099028365759758260739766836173556422633264588356358449517592235625602825507146209790683198346789652992706007017296588814350991081291985175793911565636230889416708239366457385905638854870289277964037942289915269306150433495244799202236777800635345640910469273073246650273160707339348377971679919493494065458909990437691500155744242028568395294947134318464690328533532218262459355669642378611961743820182147106290858969035425303582914967111354987975164880839939749187685537050147858357016034278780591315753694254320101628821213197636208582718654636783057069706978870215574043622154919472716276239042864393015378430225380806376784267204615653095716923320747100957310385751478734753655257735454087620121073446707165317692271913845827902993922544533486807532626019132160781545685827103772346478785666321968793857760942873440380759531108942271944565902713597134693882443826264641436674582946884174494561681386340339654677128014230517882450116956881680616875860469391457280228215887615771679704996670241814323876015331951906412726338383798955824019779180989508404273993389732661494796568291088608109941049325594526099513926165513038005301088442987784262917577739862867613147126348747294855617680382452242907128175163543951488584548807694879451217640979042572191661156433975876434866666436889677715506131459647070314172017351287204747585251772053227408050279907330868331984028993228619859145892672555494877184826062044252631842414745774914562212297582428045726708847785167358888117825692557489009968161282193095748552853899855067809752875710638223178409190728755401097089098419218292205499209534131594424414102838871029718398963641539959697908917036728768685413836100667827642772183795848738241517394574242006948883473927032832129231301012008038565661355420869592853574395982913955392019305480518687273412776163103360867561321373668363021683692151808835996222409129780151723875183110499036920548659184364731431632638608311467729433066748000500646514514261849832812448708646551589062873818487254669719921471022228863328347959616586675467497084836148449412878808579363387830837722638268498497761252852314525605492732946710018193880500351248160334826471910953497980016034298789688269054164935695119988346311338158804032817153359357243056308324580537473753955067772720596229583626493101018092643723843142572970083566234487953673478205890292436221432191698244358123921581758878748921452900176863079378423723653143795873428588440444771159319211163783651033873656363264858934081680626338859221480456051247648821578565909857759095875190780971911491394865306109169149445606920865681173953736873872193923351914361652759824997009475148701939589122733107128011939831087870508174809884526936284899016504157469042918155822472175573461061125056948130962853879446115534837404559116706767439065323591439694163207713007443637085298367879290455351759054366972124480371737290638446388009657287173677862885663066787298448142158506831312830539893128521297804227234119589415001426290626322908246884528013868816168750789583334974370923953568735325512804294997796254112972517176014081058477106842449516640187169527644546834011199931848248203256427520927646170147896669433668403481313964284368353961211812266336554350983689773220263739801202191152017554746315466346762213505592282786495699361442584475713771248841554859579444019937598554270872818641182704295514126603588567708596720107935315287205210434284843049532171644558045902885741586280868362580024723524780799019381090250771657266580659193510479005576469316398873573860712909103965037444061821863754853766468677218148566597872767917320570284176662089965773970495986519664227275068264513694067084024863358343072580327698501285716689705993375708021097011454263799352390317109217073716788971433840557430852332072991184513127775560200146110707273614404544088724071939712771971962001870553156312278277662441021814522189804429149673720724989770744644225493850332381425757279418219639002638210474185053378839471950412527465922563406965897974792034412779850237294852520973339853747936638932877594992933792138430949050159504384650875195170484775359048460294797011155754776641911788694121924511615017978085687799973724104505563209792957586794066660973309379166569072151264994788747795528052301981512703034052384344272289325325115362379010080000159495979018411859296415239478336617849060558495910848843057842115047734897548085530960397819840792449093665893469908161804245825042813794641846694775502573526949678695464054014239975185624567919030011898802207681170558375675699265740272811056336493428763329597286683755132547975907942359255094899349032110722792288167128863277676780814167450814402815794726592144424737294253940350078063035240916572188821944013952258180252287084405670920200284237888237863828814574614839417540284867956824951645440675404570342090900997982813944451666309531782690329489589780636463709931406485601034704365361025499196655583415755637553272900066895765269684310408678970152645235135234415890752798195842937900448989598021317791747167106667716062665660894173578776146157863523692468995969474314687888398334200239058664887147122198536962789397983682179941026673971726122286852044888655287341305642736009157011099811923546685555914232298647301059148832983982772213372717369409910774998264763360707222478556143434572754051008240163757031772449801608494633177743956248669338059065680185406488104535043040725089131132569383917473813975199868416050742661068489047429910063432593795222621956153208867898830116749247583938230918026284009608732673845089031974182254104145003523074973728080169951905915677652796661577421961704496526123324924863879693259840451886106832368740834278377896309584486146661666064806260509768887647578517003141105657992600243236777607191341816250285677745675714001444922574523132351675553080827292467860357567414066150494034058309941120293229710523678310970559938435839306070081602444757618831992566573270371641315623911402841672055614825756245858397697547479320901467852058705684724290323744424385199466809717245932254962364307958463229465409493313872565432397396134696412396042556384644708209884934785346494481430485677624917585849226461352858382935401811601339381862752524220381150380426368569522367762421436353425463131727132184228493028163964241586392986240942072426587313779853811972469951059708821078738975346400779563466264968153250416174855168062698478094027025830016919685947589085909240334747373448139324743668085627219505000666318426704944182780775566242784294816610554927720169078060850942480811465812703987067417622254360794637510578454562032583696433769467671534091596198943753027235979615787491240919170887895445226327149549045524534662308965487354947260009755547973304451261835063699177525732919909487278540351194754172880608365716754463044876297073462063649649731021312745455134325687280365979259516551206869827891450481891866062081593849551523117772179487311945900621246544435208958090934408803244315725214096323664042442622627724078724438438789576701325260060281375752040962328934665931811615497195961762774173195317938158162213454988540168565665315523994612087321896972108598501895078847169269715238497570869345763507479216710758934083341348097910956648380751349942958964413480880030147847880165886145657767626733159091559502080768377406361273034881996268887796320643159528353954516345236150049305348764864766150150041821087311069382806457819539669342628229771062506185100838239681542480232424718822402790189066743954723422389224499204481658754622903556313644837170219973394857283675850152622488357457583501832990066446409975916447996831228158653945084037925094661550199206592305088275296005078324012043668882768307678641072056319768898702080132201774934764070900656624449715162652123291512113941798563089808957423638638868142674270596579220612449386784548561502876374685076802304096279193366140132647946469751665975309378147366420069294372984804120583321612302134039892329504402383851410793386824132922572083703714896345684583349093337476811544387825667420820095382928360024600135636990570916661989638588196294040087493775798136687029417486661572385766329850916316801168395655111554866801454331795361937358410587832586867440110187022047646526780369956469845591106762306553647650570278975187317580684259742725373062500140411132879651604161199832514015235747283193832294114646079738266360267694994202367370079268674750943823842413384353102104976783006678568076935679018141258467105494533257400333006552729927076479278266095426249582229694588610386298500925132461516553185605585856779425736015688333439106529959787551042184291425846269058911684832693730477915927265017844254801228644212803916128513206718082043680817677864689812780980236447505121563514668831144957600855187273917282982998365995163606796105085421752205587350402738689896118658885745242103069043210142156121356071033936588335638473201192051968917162242075878087373434297026482468201662063750565387538646387659954540048143129785537250215289172646668745937095985903988658703374127317316837167169602702325390586230111149572487984500824531127132526522860611254814931747430100188521735244598023373004855364843408711495115847945185885549459360309609657877077657683053236352019808854112973654233709975135867925225746823451966316052929672679829127491711883290285585716020237189534098345277882075706831492631307464957082156064053371808165431020647182083215851103786908196532752198239632313873508588587676965810957209011467532690733742112576232923032685862580400848712666871184382733111678635655249011800580118273590428356617448925418088756058442199294079674089848115474306433431026479342222983360654381918636304497243582433632113094871359499590151474689925605873526836860574575119624749352784905902096387486872784840208803472328208086986425731466599932528543526914442112283352082876974971427718923119731117483584828486818978166233910872094965203355049855633845959012577403705730876811579516256688713170372193555609124299063502960812609066907863321877178646336908955756693401388603744923619102887461641681774013601494960573913554886126841771832841810251267167796945329684857737603126150631798792321407873002687022005883730818827820235500854761352017007408804055186305140546988814048587283484354431911619646062166601281571442685601493584769454865542054338957392874641826306976769489280859426333130728067256073808205389553286827498060921727693406428475066781364904945864974746558821187692621418602540931778683338960628756007483125560822672906399090582438080941214236142785429382467396856903436810549545740703330912551566102784304658880137358543239912247877734291162947014292563810463042363669770985453233822440097317764245935662972042474529503742231456069327638170984353149673612926947591104174562107824590312688079010096977309043823898129213456495081371985554688004685831539060262561142670295678230799912475228470314250615614388337324436284309439947673289849020916209429731104745485526201547285564088167932743053889909761425693651919893699476438534630999121143370386040686680813373190367041769761513386748264151825111496646322268873508972593722971759175671529470888969759002333672348398212198312854202187990101994152724150727267419880369197292818954359898019404762962746601013346890832851538226562999304790959532447880261644282428661588970852237620619324936042675301704690467080170826021227177616013880343369703120438097173484833504051719007918469094619239411415941027850471001570791636690121225859442507749992757941402804011728390062973856306247784154114350225921726992866338311074791901144125961182587747521927807240006541075504525444752119548687946281108256638661338560532594998793611194246431118771972306817567012207956196461626213405460809060088628578225767860458390085359891617358327761688604735844780869149661729119249900312830644333574575919090941107740586252743802417530812449599193181732330262765657735283268375913608295729897272572814483244193599651787372713581382299114449902050423186008315647529200139633013288478088320006485506790082964584802433296016394542818738276533403347368204490310119608358874917540329431247245581712914823901056214556647374527641346197588070351541837282777494202236466007246035732792492730768670462881187697041697359728948531375583757235075650655741371314088251521417353499215905018210135942743723936070452238642878996972051313027951259074515071355763513546988735812062852420101769198771448386374349851633040925983775089179568590388186928100002624355636947088436077547744251406216979868032729590013435122211296816434657253444328856409735323956095356433347087912347187541775027781703198294063438573786647706504672572661354162849935948923087780217780023270455121872945477142527564185876508614679801135934621912805446301711683730594169243924255111100559545212774896454740144572504272548909027732551754077498911100128120680620819761721112966074138579939404440214062465047173982510466630538427674350411656304081185337348258148580819092512446917078399347655733903440707053557730868520885429483591481379301158008837533261623948202740207740064283775029523837609270287154834797119196937328568342407958215715056735124475974562410327403416686610383609365688559154739834096769649981483581625827335534513135757417303403176560543284623185863395389973867820492008150956784339471899906992663821297259222675092576408498789825327014301598886740135237543654017658481276558323160962822990311115089320691629173702791894413809764891237287821361531565879482041622249599021178518756188852591475084685383611673858152112340585782449115755893145579243235135895842203017909668796331306419571722043816011597088457491021055228465072409840016365716344561072372389620012867356166499074463046789608022943750221420966399518208762670219442632813561341360097520921670351712591284105068690361512805655362950952828840366982429355420057176342922197760797712527240473725015352211603219965017023240186213822305381812010907705935419883512564294387326837494592905227180649098862674877679806243359091486406827028183504402841652244328793927522600540663923548330669866466664674612319697451123775241665768328496137647028625612117896288445775536787987154901902351464000195079715192478409285497586653595231590145999238229974245178915027357792566518434089772528783477448925779098147251603060270085716495359021149520697501925779867134755223352672968160969456181201475656747471367335046375398743296380399996419428390915149182058681351071082644359850160756714091359388340514278156948151417133565629486601620298579437510159414965440754249145723873741884789720618455065580425405566220246854293896289000100889817061246015144171723098381797844188611335943248561955619374091908907601756520786292846912383415816904788031294047641699915494414306706452434652990327849163326351383057515015806898397774774045347428175135489336179304110270766617828446246633307750724894407847164857254168721870081125691202813262917082586702497068726146034293793090219448585853550552521205510672955001787845861015687317741868519367469455346544920787338095693778720181090705192855354791160331312498400608050119909899290290235245985087069209304621744267431578474395880004531028942386875100297291500345671420261036104639093541355849747573885962355283893979914602629930934714037392956707182467403817562524629602958861045841619859633557201994158244198190554035495539426058126838860027764067450542473324815761859709949877732606119689685246102474600482638444463124642090728631813352770061771146925881064980021392192672683097758948963085383484041200376958746653473382099469392843738647466174284890706135253560643687582377327417623466167840084366205261549062049207465617453000438313321355967612327492858609672015157803627210200754839191821812965894419037582337703288535202438902982357645958892887478506544252835831897906856167434758814391570370065680475310951091699127295870693764509630700259977809703445636696686234661607448019368382240276882261044281535272135075749948629527203362761160335369232874428999331448858508835905854491294018299871857637460851137275535381239047235397470557021551964902859212307354814381008025351193764350562302990667634815211600194656370322065102908080897929858711092898219430249092645621741247489889743483139861564052605093831061544579220454466677706923659339211039854776345401119039189446240030393600840060935760741291162245331860209916518507514124099588131571924529112293249318961798366228134235772751973449908463478557520615365612169402185075416007108120231707960479997736780730981882471508608257427543161098959703525475003680542847584096863230361320157662044016420798435788890543378946552102705221691027630872691400196459651718530513027121087124595033378944612477028200605168509138764735665292043593321354905398131270823964871629095865612359891310206335197706245638147028069375624384189278938425557885712139074304711198363969774730184602473229388099703411422341455264166604174452561957147759446674734671091541076112655446687821240787447188300412502945788187121209943318564021777090184317649443227176013277209776082903760055200659913427033176749842769358364559348361368019141780958040505133640184066974140699587086212429893218567456643810937728276558684603055004348274518742945840656787564289041867663613353040752802036980864297532790736043139490871756605724066338299220261798507051566398455974592370981159335385069286924276913612145774817234298551603228899112094615710473188330098120472536512851150369441034662541241244871009599020587634433338390649067516058809365853264168870896725227386723948384638005358020289991678054537976295066469248493013445910081799706278286717547501475666812421584923052206919944466019327097919398795819897553775024400571267439693036591872003592429483827752364960176719274046798122703602948143752246740006992717548361311680001236765027899124878803507048270866898845787752711696590972509920945439244444960438308225492935054041535625503391557714408343503099156835877827600645215644720427751615222867629750264836880864692645720854035463328475206323016396373902046064806331114901118966849488613851831283566511918244164875180184607720202926800712972356958153785069251863305670298791091319392461552576403440057831460039705816391579457255083779538442495049557654887024869241089548728078242508823929179534489592726826675062134323809883774475489242447368923856325145873994910325982939762114854723087413340751817096921999545871358426646748004449309532080569275803612107464837710714697114929702959657900120846261104602747359310321983090681354698403274778313068610658458995353390475884778555792352319636131317534229372717153992953457396367783086468826815088146279367758549814871849222488666131376107775691304452645850684508646647506543750948092804740606504016428498321485409183887304846865533048852928942928664611670027334413445381140642249301622212947628796112018691058825536039237233576259622923185951979902326335902044881272225843649431033573226297406729688771692428147800453292156490625330333074502923456071102809733422017241578659639114824675436273538504913805305837982885055460935785763478530915072893786372573284552882751284508791106421559783744074357897166879421345120478217106022209877774820014186988051580028542651822536113122974549983661589688200273766542779600183825963823812352391949847278609267127499123532992869923246576123521007910039052392732336120535599458277302393463960793417674005129028293011511899145331192518116177262910337959031807161053359502727604009359279725305431540111062496256439694501873000281116239520314538017351204227740969739556838786171628052425556956876371158689628637741329392629098855114314598649153581302579030087155443340080059236696153354759863038440120822219298593395628785917865941545896273464347332949437527965562458834959502352283302143305207049014627936528056246676751238533867065782422292758604183686176072100867006886038307572864004742954361695590787287288937468186322876373664985242783396933000910355154233201978366889670122807147273749246673382515282756731806477649728157501658589733168464013770579929569760464824981511170168362579659345451321543875738247356677516893548909713540427573392676128056472108067710689028947528330590793394585375293675836442415588616524746859979126673888763097188815306546892047914556214564580880137840364838953222790400802732042507624374010090410956054615490872438576509160046686915411150987113508674503792832653738620190260362765225079680660989771271268418795025321791050007649800081700937152729954188123653612757443868040604998326731425735228711106501952867864658770353361653963960993691843845767794416543028802912295130918739396798269219481748445134084958818361468474916971151374142853904319376911014571692549425014235275096494978703719282578919767752290983232535872572095043921439590940172937326158899991057690981891838505943990551111608877400916325374850737701523768708901935838998283166058081449945287065706368587120482395845833066209036895628092173818909418265822896160549131615987432069580399569955049023783719192744347596414397203941639366556815764423235889536689845403166834560048218603499394561697318947821454731056297214767455846257165943969894872343546254984563857757613506788837852320939040675959956087071630406153734912810506567054587400005596027761459260247546387975885887578126217690776431078011517596323560995226803562355602276177662065639737637372238992894004538968868814852386450092916225492857992931235709839646573161615333911163398456247229862862247960846646171458937388777461976303449954441294623089201590382863052362616817006970342803055336794773576434043934131241892268249386229558711747271746456394878381405174939359218173348829778114425812792580222581009563298058856592872043897170972840109912240177735729598842374625410814411677849547065539728650378826884382355184790432433587580195722937376375749858150921249726887535055377290320522677644526422868587763183862511353850238315020585850465425206782136611077146611631124551395445353110459211091148111131853089745643389682607038671333245482165050059423408256412856150890366828485131935507352037337455503644516132258964734464336828218846411529509528235511484671164533641282787029010906779129393094544329763980762160496074092466911401926012606122840281418160113515708506989844268736460143656964627049948291763518838339955588026588551779181369324310967947317262158215025218500202248194635479703222201938338068898629568528547995331158206796264317861621531492056132585289083367744638454038846718391262438178416659349145279227564705666836796160605203592331656696803905064799459397958156416343094911933567558142998323280569131296634489032161494333251535942036271930113897960614587345704140798241701731131992375799406104118706549803374617663317461801240425948956981613532453520652514745502564044437664729557763143508959657047131607894777689410410951114563013058182703364382281579254082729238283843061756617838147798691027377675787551299524186511926236279620747544380269902794894525683759429126755045800024145083243818411711515554674995109531264610485845664342947299006606816272872801045244970908452561464159782404486056059489316958779554828466172018291800599138014110638459637371081584699938824983614097224685393062842152741472617061905275973876440629920279852301575133589161226573061419588580796514755440948774896657674960639024540164981647400315797150007085566088518895704715220223606958582120176080665123225080809953329865669456029111984894906435237284816874886521307762148300475058632562796938840781008628827836456003858655111124955791171559830770747434066060135726966100238158485701834378637152177645171683102963404103557834521577214304119942702221060370434048933178834360174091880605489402388070730580151016622544917521927217546932781316345762148019415409785372781343545254525119796302285623865767174563942023159192468099822554648807312135206890174995389842617707539491503242739933758056308735761249211918063434537897273415244997575840573021493174890717200025438156356099401215343348766589580071528193332231528535479502874499666837630730350302566578325491224763084290519786792648836816852792924800419130261278847600814665295297527666782496694556668081582680254934783392104559085173194903716500243337590000246096972065633739607683411136115970281118850716779777340220002995047205334086126404370258203398238902089901375031418246853166177844343303805311248688602678046810038034807746739241644820544097476432089214585514872680585760897092698083829166603010024078872336176816743208886268299829160468063822610440576993021158844484062114005233740732493162547309092000383055997146890649754073338461199377798895352343817967069949299340447903509402756379729896072005196788973285098971483608145909957313858092133161443997371012826150153817500124734304055312428778500531170086037481416933390445174086562423937908944248563162653766599344057254780267887477726447355697704603651078481808271481229880244764776740149622588126177584472089085581081599690356323159787772199591942207043848227243680899836129848186379930957819618789762831241954821547498350478523579048490817620227622585568278691383223158521423914023065419366964190488739271281745705643743974807968470693386279293294549389181608418342781653168744033464434572406891489643840259026856618760657058704433935220474128438783499781737420152017871398572217677633486455500859295423032183713477388624087481882703029041448172144399950848124796667739683793628226229839287148205348477245525573312651342760682060056179407077753686678938271598593288644739325856275380646869259709590169358711108167948121325788413212274848950301108880004897936059469708265094172661987623910591990136706344398301159960926796079038885973179788970063243516291790528840525309120927805581822173653119388942893060568370839003714923346290951709580255327659459058800503808797610385771091949368329620586274874056923838834524814126532459815531869843920221162757290015020032133462501961155509779546362046380071241112530157394586352309807011279959684635623921678106368677824229272901518700747177287698631936145683345110635033320959658760679843203689585922882961143823094485386564730657708802378207353435893717212591589256479706162342496018506880201022677086680314031669088812972149774765816674862071349195406244183859838647144720002888692542205668723390105200230690375833248690946166762570362871894836968810270413799168510662223344623037433619377559899563661270641455251431116782096116765600148903879898855417294191688023668253042461365517412021935846258051677595797829379211925196274581206776376411745154481034865027987841033303260928553090319152127433721222780984178932241726876294243354666583404123454726642458656720748788547266979501301646397169831197501659248994837936768130399070406891592955154102306275076722019430757799874333597932254601095175414559459636168392214204473316768064219817259399106137240507673348475671960832813866123330765351043021268002727426456472039150078448293439690329198730492263001998408455178293934642150088691012168626129052807978314634546655155381828767039745163609360907294301165792141576984758108876884011024633510640896816091366128752057271938687204268358100022123512481541105346763750666749146327977567283855282905575265532460668387190242405318805848256633637686836180981800993645130858812588067693061806477665299517496799854675966848025376308904508654864196551425364045337428578807950996839349333486613956713654750780672802853430286076552944232642104327203333766805731147751734706689692347877284352591399680196160261398013259194136449806391448141299930787301155201348475478132342262875167668575928038821955940656265001476604714508392950667727806595351393335167709739103212403241689152297976738074274574200210301994536151574277642326097453179356220572815724791298665746103677383177264087799392041925901202312083526493556084221691572565415029991275110274485280077970400851571092166158049510014818054481101708819978392815811591845705886381886019826089327184750734441445810982409597306067974958195519982583689824895383768459833191491541839506994084993533828718030630443083229200556689172204452135904103282409812962819406308637600872252720944675325923701275396266190450679199197118458196722637579779992482856995472464668651882055310155426264136535319121260959666312518794533084627472447519028283674524360501203489011507210573218389986210851663854485016320182307430092445705162641258769573979436606149380181450580234580074632312056350874988983345048615275020506324090672878605378681540451456351446945127800735211649616785117155065205615705523757394711900893790262622163833778574097566779222249436611089770676858314957702696610098499473794253871623165458588175189860275440491079477925071953277536934243093747782230566655736513519318082921965557557893226412627455145982421314912701900000568425290407070444708568502122684051248878358225684035751952085138946222891093059822976193801881564173501859213209148060918179701449430094756634200952017763758726394895182654373002762608934884481127877361661817007049512027827658059369013523108108519223160077373126880674168614343383444301913373515871966440000437079718095308081374034837011791914572309059062186504939814922604226499453019985124529621168038497090221628334796877977556880690772794199494488397721435137353167319742906659052042589378906959667523849030415173384177103780396564585466787369118072595694297384913042801532568310253265500674765303325812084292598195901158847795839480621757646720105003078230711163048098276349205665006380882837468195199112180350532230382912588542097207186454274018243595760425036929939750520614658953466371435226728803818270834928252771030811357181097559679920310062439815029137010786318681063866054173371167222005078642176767917022314025081230462189856272925895909518664429847880696049088461056595115247564661378899598177306361543819522462655912321846670618658257865294324645920938797726501276426002700390464825148442612612305874766053885380867830592611186198045458680431778401869902596655892134739962473417250369659504612753874115772853782433961133297662131924912486050928007395115802627679845621233772486268871250302784252042311950780010143810833040840204042493209563964623015901021451853352976131381908259751747869985801760853375125810710274960075593812548245539704854913296510624193319563597723130399044460781416179423229960644794785009658692153559098623454393001068271580644619999738085827947219515958536358626516051010580096814042999086940902851589279134921188249078205250439842674581678991560695506785464917645592555316055867408734326434904877174832514613293675082173283372143866571717703698553800774838825565160180134657667053696891338429882732949499529918643004153252807219551931566604016150357155070961481950139112116701310244265218384378715260299510997299235995582200611518986445237420004871043523376571273813271620713235254647582352270372614965029578878013899895741215638445917301921007193374013540271540909139923921259589951115729410298624223836506993281755522533298786327160486011635340451797100716344882389416930881622682171835043293109761843443978510141458384025195700072996118043293515330108330674827319322194873097362298377534717565010487695253790058542950620863086075822008855897485927810744949039407575635235531180050738821035994011097841311246372809766161085269336785023434807444788465409231510664613488951871781453112511449057940311954640815121502133348313288797110847055575343843705460606080168383724441078732407171651073191486675825353616313666810439666110931529064618364874266678847049077157637314745488818858150876307244301564903145958019010525582970573262577415094797846839792676095635744834991702297645623111610717183778951036679131108401836176504635276294510851695749875279865879268451913013614693108712958456790381599810149134691652250091771912277087544092818628102331922519076116957377160933857013469123512838748457718877409543896298794696088969396325594094682349726902441075784059002882600773098436276011941196966934903918710378493573986568862461456159305574794689021998731914637166108822751776841280782378623701337665634462874100681624734099287081303058309203369209493363476128404708014350983527681078655960270894345337688154542917934692168553669849339738974685600770544444087612436709889487754842772736106069881645989487778889486402246886907035485716039367351812081402766729736054230927903382027574697890907351927793767036722917742411133080755662110241352095922323671598755427085428525712856114249542818381958063789021083916672570333102845307713633904591516332065699273585103315015249209470014021091705444987352806895997130571222223145661117514352972265130103435057650710009753544440062004992419037037809462890290642201203941200518483302826416407172136689100923305077281522728617229379901519573766852101746740970686778793507090787227843972227422555062046492457334797437370078196209594212050845555489648190538864373917421008913636624698233742106788014288909554341704231316199352379736242386688083347107685035346921991487743924424254751644364877324828826861766068904262291580779134266366162940908012129248714773787590609816474884844668202737097454292770209562112558851398399980233672039752309613774534077921548128308310592719564070792855920349982110120854420659507664395744242068738747517109230091761081735027488739498294817453838048480443069728049944978657538694660525575518444168446471336121971594681963386614174657863579863909737610444377825745003043467251346679074511452075875168075261964248885348902453864081652674529684909246093577376954261863535773676011455592950991920990821579366869243096764774266769365721676325404435619685646831863509729434900954313604547772017241850639832714528311330895286966452028555227803762380357668323182610956857357730192116595691559979695928743024737901565528221314652025625058260522971909620171392236533808717056991711574534575724211434910448519028360312238196348568502788477795314168792723160963788693347605937076281290229998597980413670479151517710772987367298243359653056153758613837300937071486276372823355370170623194812731011662989528029043057673197278053024913543278267038359284576286134817653094123343070252916639442212414526236024659668445805647283891206086973250895589897841437477878407732331038031625124412194666038111013887435093895168431605547164119873690110408703877466513847689949911666235489443658354242446066243437417008711595900505097276376953786882525974118295749403009446067774416959376275857033149511286857027874383279928662841548424268225433789032559856318699256094188364416371567226382211867485747126163524659181945566762977274600316644361762395292938223580365928251813667288625117891615804285064790495087082980105385655587501053215785173555076162218364196582983232678227724098419828777160152480569365504099270698388052534902798702655039026200905846413670386361175377371933957017454879208007038332220978583663463954738354395369071414043738818933296275571474295838416753271415410133047579490704129038846173435062590273698959062790385711767298967428303209351681357056325075898447901059049156186677465235160987048651851274382622093304031093371078161990885639723730331238924198939412038313064059327363162508382983406536390910881066267511447815117878765703781032203482220552973262967458321882561176802394435892549208508170533049243459766870321947726741062211967322339642633150076456049358048455954137867085636233048277179970368017998948702494387232277189308981287555895998541171627999441910939169004449799896508609553964535387760022027416747330510453115141690080745210691110388639401599433357401690143716828140085173919848078285444750370643489034880127540718809483762728547814280966487231258465951899926366794609296266236880300244672065478376808445080156922615084602933014455515103003612697907806566512425492452784752433107035491913166620318686041630397873722809316481769397436942967741057893138929561561751642394719942238347821367855769800704739194311301165025668679575467882167191747792564058679246661960885517336790909210869442791027771113581070874463908452193235496316575524112526543289908503816205975016120193211823719587036667720031626669629147669657678973050233554259315254807745264332618290001871167603217773492551118991585201768652569234020404177837261501565240833552031199140535433778861398064416183304048763465981723871131551361758949789069897420206033059289959115435285666691838130352505823689072518379248256168688519022297040931254523968019565813478237225879995179723053048938976749936875074132094456990221915009140503024706700871664830783732357861026334056300919385485233897175857531237337357955166839686486427491424232605587501377000460599995645036373072821306527033565883476688506807346075154094083891511761808176051683361854523293084948844081799146057533784795562338961289954444832035720365773604180686001857726409943303152964434592205851077627048834854208055837154335910501586996502504121228601980951227693893588177957115182543513675445398135153204425050193939391275868411144113603956235949451542673273375033816055970181373278879197099210970416036020851420219624250727027187854408600074963536697977136035753655717450976760469906706498986335683014062371514339705547926743537321291378763101315643375660340259136265609492763656268623112508033873374727194276683647304270688378922003040643245128240023567411722409636946914716264819210803686044967815430588175543698534300931627412426482475933740367937819010001358118202494634131903351169325374731865750893634305268780964865282418533576509106650916839534758300850293191640020823746853289196792248446976599717885639747613043752365426142340595457976317374126851500490164946987365910602624228324055931959092560146358717129660622436278601430579331486404503392958932723711560380242041708116521321411422553557691251141830119670925708764635294319104399157460607014318726431160209547590969750911316193995706687471573372777909029273235895815802954307694971519047382305801042420509942898392473490380440819527629149828690336655938588715320563824676073898293329177220686380667293626407469075761277284414122344013146525644608104313928727690876144963396286439581971910066278527698295323480482934381069194884230846012426880663457046910877113446414469230003253466307648567300957996776599335557756919899889651072638205551566077341504531465836406845169305961599857222940795585727491268101172287892025023872699419513758081279484587125143722735729636367166072271532182344433820467631021706425802930192482449742447836003458175551780713636306046105021340309804752251640128569019959972415059120201831200213854729784868817518352680109678526202353561278155835764523342478598123160954965378247756215516887049701884114167348797271239178614190135499555041311360956582507809696435055067713540754973825765609298032741604472286650736805677409992549960527081173793542084558854289991216669559289538570885896772609397291997601230324281888221535380815545984070414104652214149729966546101284548751288260435280031211081433504041719123849960746711501207226142096021675716870504862334691784905909879729642714204622523945144614105102198983344811975600089795402447352510839032136018665481178835746299060888316632862517259273117995079299942562957957908090125027088346624026007013750305134317763761746600190355549757176051162019334911849517571835787247260076101852289013839357027274252687209896236288612002375996038192398331366530983564256200688309612395220201876999176887213073781066199369472862054985738592481237752762923923000696400131424643625349772388079464152897168411579232511716291759750276061131074154700578152064580780950303943031278203609167245545779990303660808707564915727001615870025660588243533144709892701396356924256607234045396151335317692205813096901879004508490135244781211577716731661455167661910875637986501219650608776810643240035204142870531485487848474032462361372517271323728667391092374847403238549223075953580829671856482584013956557608707358810871177653702306986082231859424843627936908704160332038120278823962306783909332766749079637293978511276922822736635881555264133980742051326280828157975104624158572543625396543427002864053391800640921595027282656400690658919204208423987070473734540770072852867486868601946160064208918708194121696121996893889460682827931445893354217100842501841932329902773674109587955482201248958860108816697378548633883534139619835053558441168168666436307824024430567804340927920186959749037335026729244275855282785210641843239741788270727637722042977603857463632590160559149799412842254004775164263948642616669977529951765713320573132470718330871853724458357733403925183507110868410855100904044803901404843192916663138829978351341154414890926598064877338431065196907071238540778645739629629637822343817270977025649789439006903465428167164614952592335597202031958444608010139165572137934076612686063135764026886573730277240155281916285556642946588244011423464180506087524562925966475946534545341420478239580871093022304649611904588403417107760990852350654038776646229173985768363863528518427126173063559563162872055259620611426430795899988747084201074472227530485018288052454331453456543577287236004137687069080075382392747918208876454453417091098685653102891657549380977237468750142445863620472818691632029700519380661862111632648603463832458131247116493358141308447776377380989182400522158054121024208379003359725575415942034559635410497258803275373345387298585502400522611213851210070804042829046452474272378442223972729175216311482212018801793518135040997972012047804622617535516928846077489786116459691820719046059065173880765855563933973137396547155811450251534675089898826954243925680324726689733822864188823477864258543361874520929229605942626521330888149901744443686577602520114102365359763989620536344073349309650357001015460856505892683224974933046823316987771838003168652065502603780278132365114054611383127830394229087916268312478556881822917977331324589719497622952257868570191030396240116547607318703120097527327383390969763797332409024721946570507175908832389349098196730653213003878735921459666170961778225336784305466699091483049000874799548064635380093567385077098685140206099327129495558522814941302813629286388063393730036253088268753130730329201018403654783373755604702812142864924859192242832677088051044152473510550379510668076356363442764689743207674669302043923722581742642308247707313714093580240690249738072477179949537624016145431585597825634174048123144489995920790971015943011812960338157551755293920862371895156599273984186034457113968670213749431331765552260525758595543232491985502601724164077524541146776076178825494722130499672174911932393018390304742472591571201281773711288891466749727245387379000601908613421915063715783801561666637108983134114289346457261114036490133754796191588355722994001823358020513434743110834493950512838370037010966643029258185308315789852722112551037554942457240241679530725927123842686858724654288077231022967184808892830398424097572414466210924934451793101359681929334176370788307727989097670333435663760411050615172517389719819152007772289209692088504845031745855511435313636261774712844173627628648159838187626387991088017020426946569060822904232268180561630976177040814601974479863264050217017997704245833406969095115901170305448198668837890200385379890076847517912389941845157473813205479106848502439591105486644325974642037103282935500615810931424707771706442976871444147574292776798317519353897725390013961428783551907516647240606488042872204855687957972049400675786485991555849029328324704155476086684397159192585230832028341706322810245624057257182611194771416203936800576410205988493398636848200992427282236312940551423806722960462488889605791355938951330251896618393993192666642712013068347571358647392697764926943118141376373854571378275223686781366108175701411442736982842774080457064318691478740740722261758921812315212394390204083373892927758069223353144498470577280624078922922378695642931428979133333586912608035679724876798825982943771204931469479112177483283750571699368909535503818380344930945445783733037666874086965101857282663961615093737440144984111554279177647263223529243996476283728789007874400993743957140485037389979838062536292169607775260923142092708820644490735224691071511233143490381530210874530588718751678088975448193937023801174257270315992529522499233401690054614189886438787184809499254746918260611012299051365235839251524724060753377972819803828612185632355504119589279838384828675268645262176698765952693233937019128877943984132660230887657591531657227484345064222314850782354004559262862368788024199553272464873560023010274113994843465717359778104208399034273553117502797775502848302243820782657207224241273891554530080237962251306575038435234852413633938650309764687872507393878839305443382326545023942011334546679117241099376717692352006021047013696261965406721366181919029032887823789146740068382683609351455304852915951468176973121845825787234599750257612891768963421999818118173953182352515301949284089644841461999470666667744547024769582113557164282282421199629971199408569796217420899225391248129400462127318322422407510827034522055397396580739398163743646895621605780201047010770354717483164224135839583437731472668801985926632085930049341129184521423089922608501691474922414369355616728402777252733032055565113588417351777497351176251218435064422745711857503084148330428621867780548259012253775714335956685766408050941531243351408110424375613620579378807343327868578157549204466652757577779656100774414592221220779472399359973395461875774464062338540432380962031568473725507941158658083611085097333661259780625553772861916517038609806442776842141034748071054245057563604211103429360230121962481644680315236171002849256097768049062633662864569006955242139285815664361924056208105907243543946254778468269278371598112490388413210382269216929101554482108980981600770711675125830035858591061330693319104429717874550704967403110068589529339977730969996367998969604339156320649862526285120935987866249084961622962043383160863163786311809657846355799421667632418794729367376707906190552752925235634270338191001049210022377567837299524268366865244731554507824291155568946341025279661525872158244802115993391579759378247685673264355463389060314414460267467902033392445237756010706003179633283060948568257801079255326269532062859581891754362155877531026204416264337615227812950332200718322693138607409518309023379981383143296453630498598394161465474609283566434330018440971212409285844287450753264156223217182680294588527505394343145666983817150346522809557877351489302215390532397465004350499146372074869786839884902834699184629860892514488069845632780962323652762925812403641151343658957262319979847336989876299387060264126374263378627263529732050109433324822664561403525336782151365879165774910081356196586855451951524536568177127039812914330901991484167522805124244903744658828781610395878456521054256535591703755104853736760973150848463515961165843902476840715907960291235806527191230192851031122086024988877679638719871647665735001989131753369148276274923137964840185350197878004994302170666672838894621022528482947158623301354632278623329481003246517980409197292160477983919846950224130876622760883027116858426371756913112403223950421415415656572904302613668780647333018160682702694996887133384776528650303474308172623140786683532747776525799833202876803406651208682018591703061437691996317078519703889818548284021039973034330507299438650255306355148262578748091655513396777932528610135896261070025057735050385769264335031726547558170988894613091856836186139176345070441678564442869010481549993632814980165712006367800888702525283757736424001345920479518965900121875089704904861005162785375222607638883755009609533566688770850520098873914358862068393138637929750518528122181534221665065784771677796185302075520108081265957345509709499247238249972238369186777698018232864125151275028646498778244102642218103989178683503610648698396911445625814618073344070380461619304654456568406691523470194389361336251508018990734415964178338970027784232908706053297938272378370526332872472243441988159680082688214543465320975579884098070237393010335152824507774786908713501902750154471319854018312794907381101253723233663723840754757346941751817076118466068044602004924774996229562868816818328172698879453280305852828068687115588037138947296121932009210977958678090120788445647038702420626019340649467372323773878230489285246533568364604440489370762941491191377132447140223466136209409931306735217805229052788315835971818126555089020064488672400300001910173569038776083545661788759049392258036149942479909604007103535059120831315834205093441090704629322716309462352470177381137351158517531996350543502513135174091070046173006499987598198964407256366958512123626185525722270207746527002343624831720187821960470322143551431873006577479387855535104382967573980635837225556870540034809236681517563182334208575835233844072219407933189310296537329004415981385756359725119160902296558993998760769010052027811861786697296532976588887522367356215906006130547513195900111879749158445736120375963058220450750378430927416161218642962308877307780668038862951130637403268994488688520783424698097522538272228993728692278461990043575314348268058337646532640295593896571163494669525109946490271293347659685496771138765661209571550448095001962060196143771118242955510001384822035348356359327915963718411018023056060317096989715675712308482075394779454890586988600383614004696346634302321691368127878640194965543669311993626584170192315294304231669001654535386571863332265585589919778635041722984090159968814709901296809510719376660780974714361596356566593862966923424670621172465035573991425636096541562764628033972789931214219089016827529300279209150852949694191849437743794798069538531249492030645264574149703400287917221997040222931481018529668461663564876133882742019352172595472737144668824355325506214480755622914590854051840389677102753715291148594408486864780990141333700753407328173041900474518869288852477240588521283535683586275013128903463994532056092243312842104041808051273467621077180897595622776270511964409981177325076547795620539965920517656716186496190195122602240982046587645075539994667542559786431336660400593862194059876396554812120197892881506735203192585823343720021328000261881636106110557362652212729246515692581383915567123500604797978236387511959557937303953439108087468292464798976978070460584643002098211642999718911185406184676963798225947075688471742715516406930152499996246852309133924123450384738344617537425942829014861134562634189944791987231969740682972104799950096017603562073254216222264404423115481527560819990337705635181560261758531936148404604190561626782405826617378964034562056557785367594822562350328189854942015625206199603612886997270812332765186645561082535787435133885368425267589584909980228528914102442644170488120853068143284358877541815104185536629715952042997494589963357772460112903383523601937957269086975357594775138474548419049641901871197391719699638369371940225203895682352129852144201617565677438084531327290289689970606914654356224087420748322624135733078334539993709375975620509436951261260760256471896976430767730259902283013727680056421811272249060105953624828231134096373518272760956026402582289993056729700647652446758157650045395078961912971464276070665234692015891989967369758445344714341581172080907223456319063847093944445681577613911736992447294594381549692393510803406929325776968076108210666743579202921583503382527950432650451687610059422127423060775412796536551824275523970610013159288435894590306783079902484704373622096569390437539615665074898754805928899578576361619276993288234950107036642685017048735031839461579081073919917677241066259416711594509963604752075697873489817176192152058783237985517333417713379818212798703826939624545074666200561371440445663507723795548421388671668643304004751260898399680518999349035805303857086793214180085018703716891012017097821027328234834732029159869048029315404945993488181304715089071376559014473146107920133749188952549548272605124168388162096856451456821708187826107189021471463652444239870077316428811299828000682433008994659761981074519390799266089347154544013387046574084411644740705904868225484009459424471589185547185106194884142363466808222514104560301363539335666933953920585777032174483417086476255927564556173604773914040221124628179460636952998442232972520595415759916521637939700859997238807204841483616490932127998252663407577764344116613584345936911698324141668866890694169998289314099440505843612091528903867526366275423884942068446136765370067470164792200972854208513777488748861693151017069528225088219797342576412818081039437248807245228968723856893854416829062945200702793864045871465253330399185232265421710985112002896807107055705828497685677648838403937000552282804793972673726228904111828372945065806310674243155382264134612887070598986069006187880172952177623383391723278139745112271022887031583501847607704146414168869567079246012410966517673325132335363564377544766258459453392304135423086713544141149706439697826780595623008268439235978094020480817051578514213925232619777689758135195050019539989427053676169939886560899763404958901070593081086586691553680993561145314802010298463105476513492117169206693568853926557329040532738042061761273409718959040837312050699901564486195073663290978181402471284657799088620621529124101148294832014634088680513021666127988123992595666291583418918089556342644724774826278744703160060418305702227188063988221240289595219723285579442878171938292281231025907000158076420842111352644757771989176491721178682917918958929514368999317463347559961522893114735593946132609359554902732847523069575665817862253232371143191753067070491618610822825711311529264897695357513864110928881730685166984458949915978260998052110624890571638010590390888373201780333031194772728915493749170468370977573758710657677206997504767335379814920682014703776007128259260827935858139890178552084506071156152857068827363118386855569473220350791515622358488897746415941031002926051444966427837917490205423023787365088700566810916999400618646764555867979074451400801497586270182611034310521676809520529021174149057350182608185659242824064813677617704093569072969220105072719565816528015763884425246365172325743352295938570990077647961959802695943578375403450408004795099885414824671322902338226879213959445663198189401646052617356290053854324174568608298225897990128666224155674636617572494597199284297200333330290378175430143442133148286906120804586454287683601630880176580792376487386176044546399554613123904743438585291476584744988061451506460294646116366576803350465390350618889509424991306760877907036795101576861400572296050461568567025188893121917516039124437479645125318866160375781796895921176600147324172253103739379662359741199713767144535961197115622954895016321429270589891727127737766256045274064066351423683517588563715711498968615602786408467291412325481983575691223264445154445149573802017861833674075614237008475799593209463806839010581986009715982108389570404632085972052080008446154357356669793350413389544380111045486741382684393446838838748649084007118082614969694990940085826243751994726865671280483526225168578738856924455310730828624140691690352327409770993269815162328248825404781477109722711263334003396371377112602862397919731021387082428906466845862520928415146310481207302251411804380740513818127094642934652817106985170620315188762683363296824300811218161433855706031030493353860636307306311275105303973572597478005277129646038817400332545753347358756012934502556828686871310318417679552144667909232871594338699689056655095473344596958644834817617845037696210576990118171311671662971292358532238443170811677120676208436709198989162304313651504258579408820632285057630167171547731027405088757455899946207557694413945397305760163696252110936103565006898839645485010497989647942495422652961306725237441180622437764467492089125289235197477471465163121801691494225976590774793482150650648003495546251928696222968516135331331708025831896483262200167284086893195657446767518201451952460626152623345628631984990628654120747411202601550842122803766213772781999412390249039953496949101582305354963804286666694061855684882523931840392461287185039464508190093920474085035934921848256922013126261206224342033706760304770493473770782390148408368586089804806494694145563432432559195889043266309506325342877250638430398046076775294756043416973108334126727180964431974592544204199307966751961995504445002934566071327705857851934810488116226185208179210675466817034866764504609482622599907218359993454405317693304326802380067895376049871833766499515320104068086851173422821033237923535066973769571769967592964698730761869203517261153182994841157340527014373923107306830859563188802570668097019832784479915702389959481771463932249603556670250543716030087739927719278105062896717841494815039667743379616150266437229458018105408784897149959943588349162868885179613742064952947560030183068425784506483890335443843160642417367880665767375316786190250763010763781179512419678809879530488397448696783067324903986023637797359043000046882215830890963480270862811866041219011719574499402308256542610336502531670275455908465238609040687795677056701982334836799712839002958843750389642332509415991305563678381129278310878829602662949088240880959020169153055869235327742671588772711218538948880677238708185406736068862521155919617175620560295430462747840652271828649189778727205668835012885648922652892912120918751541513082969242208459214810033382052361341520233783770184635565939239867897069811286688661290459327168084729720861108414696731771282572744549789734310609719262736538197616792223636304122089958299263722444760265059889429079616120563996901043423685465291114711626747310466188341025613566902485081781028492274522842196794173232365405987359301748050982823808795444062119893988941199469680922388925700053705921329774315994421337597096757820444392607277698371821354610723957095158765979196841697863621387999719301231126630974701089733876874314042901282184832469718376116312659005988142002058489478613389346724945555932122455833647782022599604765684766108685117326625452613356163808869810674614732290402965982723690495250921798346756807839435186493629533826576043667159615604636992017315907073907485211401368409242986394210683439985380334615844704653332930592799859040511607931320432645004097320246102126030901189510516634490602533151266186035787240378573533216004132399291043661400120319470267422009051184058507931092497124707364452763586944262076595520095669522455262297828802548851889076224218648432628773554813879866169649018037390511374137441922222054111332513038741682931496117364283384937605481320876542030149653007934873203706111114370302753765065580170982932896588967508823942695177104277270665906096562120342329687186215552027016018492492272176806858210278443504243573429931973300919108023116879204750267817296516078538786148718255946648688299830006476178622531741636727540617085436217101736098018721664804141490737526380881945553227012892256716252612127754278229462234878690321477522171303015587933138868585327387215239301133139731213698091716947940793146883891758316953356664734786629234474990404163317087973774539280123970702688607710595732926350397622401971267782992302309593229637146871792384326708203133070656580915334649742701350205266431782608518586981136546737730291357612628448180870507688942508891005730641280650376294259456297560837697693303465359052836715127021667927973534196554286922013746953055608879478053797860433955315030599418116822679898623723706671281578916757535085343895961947226496790798746565384536594152445203190055253893101283939261707347454792022903769508627914953437006183484124004537584215157062481731928121627195002672125908281651536997595348882519894625366629597344875996833110814940430797186119389283896195486394472798465739630412710586154729527332477180050845559913612417281968493378970727241657205264423680859999434237367711226222384359398260362269912822729261405271204681957359740403680238068357173430317339443249051510391194564392084873593869656123114069380545915795602715944890394458818177278064868208062690135133271372472176366667418248860709899908257195108272069200441077065094024286648423498551020494846735541734727264636276240580229246408594612254331047256893988000479733733368226217188595055051039277620473649940868228591619164000495692796982390070710421243128701624847123095012419378940205117341707058357354709679926940731683977017196595157690034104138899900885885958104279664391798796989988609187613461300302831189933497501632330940619315965981526360207967276642773009323572140743481779715251501283556927044047231747119890959128602735443332136674998089246572541354720873773935630226707474901213056581497165840635521014569540246339205736905455336781944000258891711776227722046786880668955271181684126538010754706578838614132341905495180879056239507655666899758809533653035115410814491461316065781482921559371448168472632474087905224142918184955470227977166700904570371435155243798853705013883352551986707269931342326125661798636377064189889656208584148166744271090926125041528710854588674643455893813601493140167048121748452214873045048709944518458124914433426098590301244028877543077304345779295296184953296256789948765155142474724685405296650353908607190499706768878834923493196023596331650290947257917408002534257979322665500073747732553230773467163235248754122556672924653358902974045873275635839788861232325237544791174967627844357437420607878867684603294810452116620040093398188225643242832234132280499594857579581525206568746363299697356150510962363003968063142412727720929563464675691065065788763259251869163723446947459874377431351522680926791033883106501277642501650730895685935343885671751622263496164047471066130032663795279136580494215140671704001015267351629588666076999267262625561513096821285056342618178372298261209613816118612460307833769895967410439916959078496823814041682503545724804044077297264059104381585737109669994138538596277953788343428445625659387422526771938324639705692256144373192490572570470654244215657407395138555501882404494832908399504627917751563505176494603809924777450627454927572237569162363872764443749510133888486889125946699901867674716864157227604166957583331204529394867751666088710685683849661718446062980652654097090364246777982425854379551203719882002714653152756374769739979939752187974820612989889876517056964362494302716540499194756343294719909753923646853873853085056245001013801523075849442695700089210259103937113718166852818041765528547810503539631707231615392131151227906659567623123057021934380947825614555366178408158749479754056262783140113003441234111836668117009265314432655038463308733647633967444186142639344960667251562852089740833966394950581375322099749490144613872886327347361080182620657800791840100804092581976824042705774698829179213619588861784116428129858597893592674087601956611080684652259569672190429544086166701322932858193345674697796522214389924104214692581668913186132633204040757220403432702370288285720691476641299014129725216575769021107695391988107961689294054007402022536830529097103797006250204651506407699126273391520106410778210406397695961396725308428795707593087867466047827021892531383893409852980016555284704776145261951342854193466287299356798533724499709181176956218691165383592520852421186709378783206667323055381207852750890533663217574861418557199641876246499248125628401923525114519879087699467175127840075078741964259107340987551348238827392303306144273865513056280755887021899586430655340078093665568057592516283550284281650228337981721275673364584508291217183151328201598953873944201264595272636702745377908933717714127094229454005529131423406379835492895712049360212583708205179520904308220728383782591728367959300360364089946199815484599109679354163730258334866033791549497031581613351215018053914981938256481633354609252806666919823216563487778973222178985890648795784255181392638183656924837188307179221227545325020037628559642404711194318082336581027826681768154844837140444661744255894278115841376980678479734285230665643443028854790392501863427807729701829482756583550347817917763802432853464338761394515760852634184200584639100508891543912397823198855465118174666925692943967163809665472378935186144238023783758836906627842091105407932780215825600632604461080057218748117892520592843263934200032882959162962489406773465382172622386079213935870183704543684483840627005518058621885214455062891976574624108951289475895287096661959711327145230476267787901610330639454902262492428079306334802456940413969627515691228354496629452987109034200675102278868227052786578037103585072878183225676931566330439122090049524240446658512639824836694014774195452117062582317264207320275273837828741369526787472104067467743968688540662017612487873822086817793501918083270692021846639662878944348675209167023356294144160395222971669861214016618670738621151661606428823847473545428716509610012125320006036613934996620934787150298634624197980914632233957347718184106805143671913972488236729082441381817083043006214324803270412436314603738327076646697526864508448307242330996119561263235442684034085924198622458525299373488114722628269091338703436133881820403390244847251693446298564140516497333571230505570506147043289176301917387267845296232991634114123553674654080984796193485611201818569205689239189787575961679186996325553935700792647520351333729071324837321764798529624917560109795322270725278996041431102499687351909645647014789586995876330654419719266940933032256023271277923648188741741861803695732585495935546326521748278218780745698981336503306184796337538090455354296517703292780119538597298448944997020319397016383122933987741872603466364025871204991331612531283590914911790972796704834335313433340334694735359772190142327832566362866267218600480508669869590304403885679872978119711668176432987984885534522480315429594973169125158956441732551285257077761211496067731146265691250786812349275989471672524093249608200469163052318140750049950983945442025032608753480426748014493765418041493110019431291252717748164055987207974671933810667503600973911361426114915329311286025645383084625057376641668920559847895813710669250148803952323600979305187687238173875168219363841475061658274325391687762499259562611744902873000946630806305991018639171866841635386876518031912012210371840314776967521404615676899515449357981974823508367492184988696118404535770763165929581017208079565343237528421033383993083889346295930834209442761097975092333725614616416668688716490654568055240516074429255154013675746768256854475035961757700576858613669346552256104299981405753049480723475009756319060405958235429136207200963998557247780180614904197767824869259126820127978149406327075564608571317278101512727275774158345892993607783592773720274180104636029560760107944696027829290281987394904376525348161553491772060082020903332852785859471099431559735519514447959712748544830617925976544924920612914811660891235983618498834746169348710970690107915269850426257782971891685106193488620663836892778842559662315547490071868153464068662296590311770958970415697304745907697164196076846395722419775365669715594710261846099371275787082936686487596802176351173387146881540950557106919236441125407230873809358357227016420502294284912571984435266839167111798381707280541889481204518755887825858312816236154798257488309669180980004521246978902389578180274411950617315178056466772796976746315576130651344800550607464247319730577039183312094448930267957292134415558322796665180499830939067888697869056628616267067193172128456685256741527397526413295536176741467540021134785794118970373791880964302761852829495604888987966889327182294812984398543961295827771362447280464614659196678117263135451797248110921178783003093234927908788387031521071097098204397201933606698091667745519054898436263983588674872170311435511008172825022577877358578034633312951559962011102499320613635008986081531334252387909950431572440603608286211149444960951832177541602736897744781321921429359300179444725801320388613103241555753956089416895801560858140009471927485311457200866239679510693617582389597183066643650178751116756884248169072437326356544653819240581160864037775563459230047659942156990605307694328769239101484888798658397938420854130967691815303466450605207167745567053424627110452450953556582851693341510023384882102500629931510515365269513186605127386863800577718601825843610548579178604082448182327392456014319567074247373697517061584279127126356083922158302878243671772328277755102925932961375585038759976120107524095562437294226450047012874203098515320548214165860351319243797849570325221258379491701102429077930110277947121909087126059713360604356587301476628373260536977318361639506685402499858763050906967342501187178373521993309803549892525096330116902133003077793003002324082786624081898805932695885617986434132087991376221152066705816287570874010361713996124029674312375671978069296217774706318617140511461945024180260802247699682015193427449970404965447862729786092242161858369295460919040034440612001085269080414855854729600295801047362705142609134770035357638621278343623340856349871429559550758038490473587410612317331148903647898223955211284409686777087216955774812215458498251284723856686311683317512933782054007752000868543912686797291352330596010546273052730214110252841351405366944952013927644543614143198652570085118610378929155694856161195727489842145303791273520234378507314803218955961884579779622581560952752011680130021560178153203878323478238249766013034231743467271293155579584815070046674684604206114246165524146226059886116792020029380998055158790747286731351213704596852801544974051665974423586323598922793354335176218029861666395010209793493673214249380989456525333619633971110201342805776367578823723274638626149671997889381313412108485323877683455817553371326044297815002975944075086079812586626243910347231143335932261325113148952164683693644217577510587432459290858084437075493070412093106832974856543445207299793089810890202245839685487991463299092271458637070106778566714531531026682889055771879857135840180987128189268330888945378610001377059122732899688385731763055999902126227601485685628356248302669109284214099543370404685094009213383919246291818269433602764641706162683406344875226082658537697758513287630678122332060003015853813288811750017595801967001250929294264719374561847438305535231274811974568488600551041829918770781366627780148470907475372666234731591471875433035322105441472755691298668543436429371253911269033007325054957118519286579124532589295670300678697520953104772989020471342106917681244012535755581855193678869855689166459794878174064791732139809776490062873287737086175921614147322490105928514011910568836877468001929313635461323185130508754482809802575839558525778392562930761417447910726492169416670940849365243837543508488124314257962046072276348211998836785512848696362008163968355619608937597951620232063494569142484672960723710348309713250041425089059715957245184136761902880739641066925767624413262841749806204489195096331987329935645741422051363003867934793717015910915047290411915419825580601292119043661371775746523796123514987427524744414030101662803891882526769713836160280246080402258909658823372003742966495296510512595925488424459176484281226401908134736229595020277908331248872499207775692113615170045685646604747135839174635388776726432299895018178166658436016026984628115067587070468636635040605732641256863903545245429609257771646364367634754877204776968043697251862848303218350596327507950795720114294575142198962371902213850525817531644783528890366957442696587377764131394015560212679120334436720170044230391328080269179711347992690560872516072683637045769947224592760149724161508650084689522265509453582385838679392564828374114212544005819212341759172328137906216752946312642892607580792848148703550065060683885123992633586630338552220113012719370715364804767311374450318809690380104307785224229774003474063590974701713448049854260576033581414646269468394402786558152866626293552285417140933958554380698427943188619555646382097175947878669221994822779460391979696091017253122043736390998185179708675030315115223954750243987241987860685638755814336861621680806199978428038873574949185298532600498699670134227928027177909137246114826923549411441407030626720735097546105702527094367732201212819820788799659306948763882489237312045068429810428280046878227169221188382234735055871613272510303621711665127034708109676684630731804043468149066995343989393275982829782334279888974549932279611098075935026720324401154844690948738064183740514900483507072073175062648899783011457180084767307164981809593414649353444106572425680595914963468037802596427530105942207961307999783899939365772438434574902951669294401238002177181979057698500774026095299091992270098898037905377528673922558229270811542349132083505024228872314386685109950090482868063481345558090814173638351901663969910134317349598703245657713709248234886643362097531976231109196143497947282663712948377145191761692334089044756724068745273643901505041153084651782300041673470786284090901251382871861924507620332207073650853904419461686300932679564100651285398236664849189328947906008660855246534233188171700545214352201547441381595586512046030570385799911287356708613350979862708754298127256305146034509781567410159687338340480370055375182267457868353391565199817466666157404073773515160487986163708898690949702565881158140768688910341594382896047857882966142834592100202053893665623947097755269085318070747823229961808160781524552801166778701414440269423654021710569198949013420423298117087347241806967333577011391929361014472273196030520357702266367834613025438736292637284394052240665364219281014317352257783271515897447328783973098068000856203847511979743556489955969548802244437538589026537436324604597191274608343770319310135695798253522256119715152441519381871731747443214460281337748918997514023497458712437400572641931975619439082470483380064549451127394356834992957162559884255063888615428742082437446771550779143573768891504682787862126773130941902252403335631879678556690511838999786822977378135512006005265098057052419302798640879961996640492338341032910789936294526158568039268273022309829199268954599041858334702885846525294854677699982929036314848269092542605318568136146233032573638122538609453079340788727800941600089659693202277513943336980765951216571604780104172931005056726647418848669865568827083130800265706796337839381510767853093242549695956453037035634409943268047276523404763383135066228698310710308284399318847332768469791510787709001558164193238533875231790787946786689344998590795988994266621000239960878902582689000280704355636190745747285964570413890515312228178347292017066413390945338368528597274019540871249707397164523179187218465227610799303065555598410811613465807512735712128366217221112954965151569306912744367959601449771708256123823403933147610400007959111429192394520294741499324306088373175290141334393964400418773382043187243160936762704665800526990988876725337074441479973029207576922056644782233767919950343045548629490216427277290026918218114595113656091296548361774507852506238128346028454450210314253967452577068088847472052769926082353598180924929760528735036820220186031872761317385522291620571322171160832980180422489852474150685459182540274416398265985792177457027424971010493653997124555160281324609748365925317432065030075019010137702466666269455246561090332765677749459252626008031340364951532451364986355283370618644344520666912158852777816413353875905219688895478222459725882840012733029647774060571074139656830628600416401749013620800485160139574917374665502419091722943214130407209751730666690881375901800796696127755594313900610128013620323645423926648707457524451746441096072278584541484603343967850083064227473078209127167103149435531776982299100670880250830076128031581808215379027973147288133978725968658564891512489686960204862647984481044013939515711791161727321921842637840990436601100480476331288621244492677842942649010179425109675939026424408268189143138740323807946106607933765474889004576712677534235604400382677182668177950549521798476185008694677245854115056140494707543421198719971969929892645717549455531450387419155179352358931063418126614942032712691733259879246406173986873780719387988300100386077328340257729305641054881450744502006027206664294400028692369337268766230512506724543046937240133378489552569696094451788371600816214889810758792601121098210236077236922158531515494208344281536996330636308681865016729248210563416800213520756293270278990749319429134011897293734536658951759830100753668630430466326424062824124893990639634726330585445383356866941715429146462218417803773919441394279011865815670926046892313157855140419291683036893387729043370120821656197799550574650606244693459373574007445587679376606843613822124643973433040141003060523057408465889417915854266419000257598898340433832999732538742032735436562948539731249603027546033253622304699255525665594055631009469294974682343518326296208457297410983999312894518804905402905230085326325455026378199925697623892135296492722518286907043024025201414050902541565918493343592926494832270213027416571400304386004431657777706263525284895264968715080602181648215626824759660091354122794117041742200629562322862571201804312665327907912104232917441698801772284020069305989455806519393842596039145393973486481218971147181605648462701601474344996787668367580315830638015067045525996473828450991083357366292371571725634267260906997413536603092678253542143799076507166557099546042634454027790492553756341444241814672145794905799959303507448990234822922803628396064348646116664933778539330578110792795082583359943716062515777656898459273886082458085742882904512681380657571797193341702710231289051918606658165657113598419478338655762856674200865634834562030047084830420258436448776875742248847813783239493749885353361632910289996022298491571131092953905450922933028211229304761054006253133903981154163793251563058686907055264945794521744256760448961768977009861773104642146588295429639631148974905131786413442313677086392913861007431394084997583639186269932461820874841049013459052094465471836303208271902528596152298333296517038509062573410886068068824414875990713417892030503524925503518282642105142242459742501057165566851627417680299473199846125248976657720817682334903121888629317510507150757088515652257274554304708883199782194011508325748216508958918916555799237552062915368249738726468851684893000948670711460658889404126551724592106398139696914670332192017452348693871254515967671891644378229215271862916354187573869873944273278398253749062169964768507246500868375262635712160503683683814579945841910919580614513300322573339797695228084136099679541007508440398138056329405495219666395074272093732233601494434906109744680160712773334904189801495750153408940187108803694111734131562991720498816821452662630881122383094442589597357190147988129309937281020074127113045555492934556558371845042463148572682612213453290393332393144304734191768433580957577738866808787312747040159395815210608816347071884532272887928104092700699586119577607082543666449799825613098557360126181747998845055854996457247385983612908833787841611426198151123071448897951763467540274680392491535068321636958954723632854496055123646551998330781060536773370760830504176526552669812644087211258718283933599154625528693084793682601423456319829213767602778075727889834826252268523064402180532054395461433706572175985606706921624277963731595089203929300439393290229874453699657248198309844982145766564925159588789330851723477725109731809354323039534558893969131353176775332753476748669649489895220676552025285532863725330292642569248924600892583885920152675338318565281646300507085412018341378541858754612643550713926427064987668156893731146290911243434242252832043728555656921882675751131014058225154513161975847621500998101308042651936779517964891133628669702154760814257513094442000865041288343853135679494515089076544909152449104606754501594962024465953375126098215603884738819413684672287417054258011164782535155778189757226152720819216680410842743375434966596587955541885712968538878631965735948798041690509039776767244656351266770734016110792713781819292575156822436791715263826723915943548054570446294676017146020395773222360612512068516925349855852098107626915236839850243278327937528794329549276816179594960778262708447326142139946154200358872869170794783218204371248193199375167818496675327284099721311978141489166256046095316186302456321155512844053502354454476525058056637494900016672705144755951223855011952406159919800538535658002711593885947437216069524617152830244672296217240102827128153671361134923105526829751492266708095349342536663249663141506701755241643108656599924715813105693065760742031282601976341158796083585485860740851848880363694588493697618549555057555008405484533232101266502285944096698650762809398715344167507921021302459968377294273464037756427382407773198238458485938344515322100683751333861163232526670148764101134287227050098185638892205351335766273842902070852276089327695452176042636818915019324888632258442254897685133683422054698539977442004642803129672910776706893104793284052349508558993745580248904423094901375235190235138760214346764799356536907389400960377856505808504301667124821360735879014654186383231745561039253622507326151243902355989819430103024521774838017185920333838987149205046464982843930668627672036406638140736820291585883455005126324700355852940997562083061389205255461978366339127937531618543095561638071632295830622862454271123585088756723475364629986946061687856731440661479487042673757942955360879073558430254371041934406269284707680704748541999999143990139388677009688723054258759405059770114901188322938948897227752413893091190239133924948632170184476515289572930662691741940393690704020487480714648614208820175835562328372034907046721675910931848837865679372255948969595594485582571801981626927039446091747134316486134234116409725069000486374908113078393274096298405181082843409606044197517148162972248115834273806542897750167389621881523750777671450720517895353984011690350025353350901450549883484002083500519700020103363629729048000659365233055655837446081173773314609530722833655738681795784233894767233606385653173827950276427620722141964368363038634939583740024733959263584733137188916992122930922541672037985886040840515788758670028256534260369691696110066033042304274132091446512845477841508126814683332319900095936788528183394092041354156993611291143348177505202711898495366890194713323409925675636069097480944549389542625976728588900287522348335674740772596148220731077954162747732664278164590138296476624137003300223854756752212712387320359855933970703204471936641141191956292699079470310765349978600743647621895790556231114440301662855850984285982147613695736349035880895065882493576032947725764806870176496359398636728784906679598061411144797722199603857956655728442602326814730377833750605524650993731295561762498920069356723576175974830033194895418829947853764249579629466036906621884459993908716246040737638549018213360522789540173366257282604270512858835823843083111965114228986187440339831810011800328977473048368834777616792895494269591195195633161076624567729342570057606104124377309695366511564568082357078707474740287009336756288031424045872914019747750868293354344953654200785673737129992440124606106022409887966707121186474893102806726842483934868010616893042763076587665146642121362562843202728655107559553778257319779047746292928947439298936828908224430702450365469984071380606715132917162470581111872161827962519647025376923415974595391452249848649480830197557090740985672126556043751130979319066129761424847073720530490886335317977297755630694363905171510868845501167738429251424553067761574351670471951228781804369821682091984187599829618838371930274913382133468190555856473753665524319903792606726425428001155522037807898949322024611027874145806930731627854623315897506145316668356600903654837010514398900112299494332275946798069781109541069062584944668459214031482271823331617219995067773493274677687521311281381418014602511147254550513578056357365892691519415296136391186504023846274852994288157277835187541955434395338399032459957122439515036494663489133120906230857306874286882274631445187143882528115323250048386937596737445840878028973283633074458455980989915927425557747455987808381133440630155307733193536112171358438125067889013540356672750370913331663058223899417069868932946612260801118225886724640664502285063561935165636627338861082687944542292431520896795424853819058457554471877991231191190138804489460665680177647178275990714280736515068480351410259694426087086222010899477371270277743918682837958867505720406396829384948994477656526632852078395727927482132199553661934988382653190636270564578872770864416325902232686881795281475224665486065433475665838961242190079401356376599880664171674814181339416609701152580298280620208949906299731914048185105898962625143396666134554927751341562432036105463310457244776601929402549848098256682592622176244856643838500514897149179559108437439109670130196488169130201301333609966318964133147199786351924274937884319666500103823574342804635456152147728114329141897129500317642592711299427392239551356110482109474619320844562913106002796447797619378290356861859847372368690215332253710014142622671012702545506201464583056892554610029210303622128872639855915979976712187248453101166442567737176737214469228591813843125831986816055799358877454034388398861827552533048806829538932263990809478861525224601611235928110244880223317042152670038062086490609221888135063387314060507498770558169068100572400981768802651647867118843803383301017072190158508209622406753276591001915448111593436518985382822852841479741844528792211527480373820640329274056662205720430334217961880505276672098250699078740808034194018587349114076526062441202489538512458998419304209350914340050230616955314094483308476751964142186930984885203431299706868923690399119290224608461355010535627662332318342971641423614233872187533216676521545290580995410679071261269532944302444377047297674021710170719798465668518453300353339016743310719082156162302792440657923088274907914052979274239795898692401711196268791298325382412132753440567617313519093381200167844756629603739500128876315808380363193708761671436420570855626366200101552619425253743033965517547372017379571830239475393593129470794351887899430523178293220182886050658599955658914922758755079356820655250187003196748508955967746227258505368500073874323612990734751656218535249139078399473921770502909021781904357254693539577306510229778003735582824347896647351260919091115942503371004179852277646933395180567242750403848028629969309489713095172308819668854340361348787029928643879730866674685010384691477978132987551062013759764196806530522716702604342311084345187718971810917472136052184794006784102074564101867836037206621072662726931278435896124997895714293888516471129732770998621462373034259561162501872357910256156775814315243051365968004919565281040818287366302917462167738592603496061079007462838493495247467840134770221630302176742870924249307407906240390674356103747538686929462738985190972776967402041171672042443563048189437066838673623442647640200587161409141558535784252693840978048549673627647839041155461586134218690148665911583471567130135234396757135766390786837136851458581966031634595758254791626564891666397132340472205830784738582352889529303104032119641359124008195343882458773882225744091083638761712292938726403085697347006195424930306060890365351512541542770432763377805648975603640766743207371354116577803486759879400410463330578875263308500642607904956817672310117001339952466627544268627087131685973659592849881484007611800132646912976158145365235754556734925027068920600847966475042375218114723908485090407282609676842070824192480081669873589149699346671419718978340643284519372883903955960369334208033026726451650430872757828766463141472884082798090343862738398496010543417342103881253762913133297563156342919486566874132852956632275943491824217869876246420327806046303323274419927859895455389025543258872983609903402549282355652357464760548416810155976346426108332772770135039702973355572228129719135186790579030968781668073972566258609029243519779361563757358993842877241270784308865551621027355825109552489148050375519143058686336703650437625280358352193987101730345370920369588638756665856859382319131013440314981088202875472346063055423026300047971953292305980708226346971849429138241530544189349674224598421428692750779480663031730190691053402747443722315545246840444845663933842052054556764275265293923117571188906704796660454428420787724062273587492495119758238140373844859739280664030421185644732054136958065607412733838891798825588294860686684867450981057055681363311446080078475556982522076660415902979881840039025892939071696960354286064234360498175396077585147579987005854050170765730079870006861746398273116023328363578685679769885220468464721241232043542287636709063161529140339272978847620179930392364975874084575440972600737558494058420296570392248113858620143659575030325376318332504271436405135854250005503930521407759378284949776447796419877283920402482305229736612797983571867545049256225915346131217787959084152802456858953435117261239653572130205160706312319948382062143945238719142004358282131974281238131300464626108932118601848065512897600275465697224443799370101127254892003894301249014902770647396443690631303590207600131636815145721161149887035227374323991539169990001424695022263574775332599854021198148687040320953542838410784809833771062751288829324499019055311370355241698751838034228503274526429331628827223328223693170768151449475345702515104987565735849992963552437441489687750723275825198435454070747929883080896919779736108063768680977522891707081249397638388486610304297350135875829497555605773190277588922873174914880744797399468627066212171343827327031097693473459163653898998102417365425107731478843584410143763618593385771792740541112933513073547021793653186419513801938717001530487178496047353231690809400809441246164834142610249875255478105983274770170085581025740721105234058527367463809655300878595756143930871294593739884001841776568406996466577530089440527579600182845389746173155579319261594462398781230816082060630825478344557966933510475476174517874972154362541011146769789489366180237161675554538122926353428579774625155722099682377781128690841126832964461324907900124421749183586197012747527275110393810846093038782013923778521752995196514976028950358211399103454451771535271974862291664666410125733059042853520725277522107918469270945025764819535603152069655084608360844085937265590925193100307320511837569468683748221126307883535760083561643030854166158843889235119753801881964481495254162127619607534865965582322624574965314322372662462425783877590033317191909761058312879387936331825452927883106153270146704092841750464440656589226927664934426400630331311943142008188297670368352522629255127560615987188829242324908514945335817947512985645800540137448222708036468880184450268145083982642019359563453392896065547432900049301022750203579805809143882047081500002357175946908849303820179947908511536592836552314612931254746690461629404451166150242985337259217940031288038667760100080334424141140374775488030612665065132317567554406379420587594142741882995364102437245457319560936762065825295231211828603741654619888443273878720148293963902024781852839482935058409650602928734918860283505940399432970361793198092433276680077750298021541407430950487559976943626147782630455739074448503535663828056709877057348745549413378485492482571933916667784162413100584569053619975420494504756387533363274815506200570194300290900169693406275843357345364561535603186572050993522303070672530623397098972615178895342052711768817119816138470666839348574241602748294602053562950614845418899264821823964221702491247520765411764270839537684913038509975335511232486832642508862110696247472485641316486084277568800127719545592132819612113976146630289301561734078720024770419188729652692701844040384672241476964121076629106816288022845366007837074243848404247224262836739633179664831047818807231797598797908635613690431150051135568166184649054811599014828512914439777782953862128211039120150304418202646273126636508624363456849656585145659346589156831139379772013778944805483560008285086186906041355327304634985690471595725756789428850971974992222736609405590917449638157790515034004350245454156121397875820447697861585376964295669663846422327815941461967095468750920415889949044831237117017401411320360998235562223029862015293511855503372724760934412140720304229071935375407837859753431447546718806534190252188973120731316320103018952427221836482324898387894663932200857887726584451681135025691466947845560724992304663209526070042406915586248890145743016675357502383578291825582063202340916610675537681393932003707701247885613052424715970382635880577363480512680090477591674015830044011450952037235702064505654172065192398135517104024455595342197989381270726824158365234595490520263345630234207744305135921796020891018341783422610288880387126784117540719701968659433524146124718555131772605568252363703585235515590664945352258770279974794224808072111625320714973819692158039894207061796208033141206330489058556444743260962659276129277533063435291085695537868052962438578073284171105022421006788429649607037043418934625533972551422741737504711778306457125981580812066194946688685487530151521540677342645206850400125928556270369194981457444968352886511158865271771845547969125409037570708584105128341044925656777393668051516344284322978496358533016509796813106247245273508598458408704091037651768500306993426461706601625083803670734541175625803904529613165639105123780326223703953992943489694830964374496466945326627869376988388690478854049201139570556498668224361549802132095103594316966589136172909022053477741724967960260624072720487779012525127963216235581175312811805587991715817269007686693927447231144808796335723438804366450486072342363332851103870682315301059095075702872200961328472258239943754838731095930195182875755790710203919596718935284956678946505923664216380163287405556596583004795284948421438688185847322748579653042247347309591198904240238862667274387973686080654533593245359805139147405082347221329914471484523553629932388485253267723269636185437680903999809815393087109717689348129304091032019305808674448028690803194338439617953316620624106438217275978366536556305289943223681455448593265545948151525510767807131643369304043886302465308854013418664348509835406176901881004525209286180844490176447874196023681479004490551919914122178763253954831042936473147324681502510107227324876022537194958937105839413387833676180744172921824737192265280346731990394592228412615951052282331754743640045957414223341739797473022946711122850142737823348815350561566277787824181702635871264277913300589041293491858557948111779665432670167288490802859513413218067265680143698271562989299577777908253869260656336149964823326046555973180469245941699824185681732755237096527899144808064825702238401954352043967407190076524206170098580761854217290273308364894159035474009719534168835540370420067274308556434414141417876629562839195324172018516513923722040975905969112077272460279955700334992610775389826678175595636210354735674134095240706666476457258195691883819765901766918041708397588783309497262306648496852674855380072618141067278996572233181307410926315083611903518635545093435506997837868484246760449435735377602524129067797710356724426148157743313823250479300145711280058675698333289846879436781871800176717153792232418463911730634792884439359277189974463583319850227657391640374707194530164518423993252764045213794400336377440978970744275699205969007383114098615783196327840165955183861186461549703693800821922563840903763389509885936526465863748521384291300245225896508291608985886354246622999672334280216181659648938566229142028802891373560167478316571711888690811769959374250172589411448707596063233725643658020991901578189866141208902840258474689580394274170875626962206395310798216668246738488601296732760446730843459603875156085037676264604707393652704624282053972108627947057224428599624136796683944861140328254487053798975736396869137814427329822194370562497263042635687373300746487099731572781962538091835347979258894866308593603242549658559733355101079415498600927925067194264181013937441847832532808360430926632622325075333977027720403313516277395781284793540172184470027182758100941869727551500704774482456351835959972566162784326434462559584382875305279633309378146194296625606430010098086864342566123372855890476363865435855288766324388680760931931776294596719063189215698164989470747842883691691759422551357439575813108023361819841837705720820597225517986934018457779463894426301668368721278010922317258366620419875484956476660462902528234745358611955759507861292728742175917974772577783004877308316904775990971777828675768860488877060838672921188037751092534971695431731207747817564425621699924686218976247709928718838890439926578775938969267950343814961716253850194884830823698283525855780379173367271975369259824491065111741369219761186439223688173156110040311886981348468338275447560696580679613830548900484934140434058399631457912781503761847938775659426064428771116882451942307089434343795128217161675401985118580910238195320165751587990678564881800510777905340034226939190772409469444493793444885045524131487646288775666469178436962320113331306848109978517912392899958352537099733964964116366377615963917919701206694423183296032652383529692291111340388467336021492187107310513524362232599249455187804228997782322008832884171854031341883388723478514765344934354264311166721002252085653931089983967092209884907694134035091644670678009240060098405864408060126634421260541537935835684479660966588806589572662424515837377684345111924014800485870615397983321160590232383011640517204267505237479012587803659371476798307463902691278229179113532465655927251442372388890552745437845675440763106300585314822298367008840140798452111834293992396656194786595433914951313172693627429520122114253369491579977389870770386658771529987283133021093558696463250155626875294414236147515710957265124487771984358884015727012632231513068657194820543859092308614678425292319120512569674291823929236557411760386869616952081347256133268051830931503762208202535359407699874145727088757041376187811735986131945145878276445702579383723942657110599419839448549333842255936438854553834205382371567261259221263777893024009948600082565326924990546882933610880467330956380810203292413309376225677145397580181523973902535639718695389879147454587048409951055437869854244983344235841697878070879035778952151517041261180654780851082615881222626582212827663960797810446682467432205960218500565144278600623072080255269684977007931400198149773374712902538827560510529483850901504872300990564050827735600018857016637266313134665332360974421026489638447674521383268283963658008162453224759005492848027187845838003430059908534677925348016232224479045329480129699242059631030667339635447376409926398154750192739061256974930772313556395677416060589861581053322809023334989870852441530169718648442023081487357096947989635000492175745200049653195257075949276112432986464021917269054967313039616997590655572310747208718457998819356952903471433684686116045522010337588074867314691028499978229895463174158291776721243542301445319853112936613624942758706794526077366283915662914039636588775617030880865944106858347696386766054646635201326632064016239848265748591377192731194408501676621132789246675700235788270531415248358331586885755409591014161329698543726009393750650712550947993014711381353304531637326598715939201956746102387835595677867279831099324409937165760972270962713254008937898249091912152881172630409179653674871707208493467403442121818857137737911945556468022959753642246472292356324863138388775535410793427766123225850102888668360567317025436665336583954868007831429270753068076097369875640394079999209409350536948383387141802300526274371555761368674689100440095630113481803882306467973862620630402698208494667858132937859423027378269190178660489916146778702558522691635300213385868704112134940553887234083939311988247745414709624422503786393800620080722524387458801678792869161882908760537736023729635053881708365671857010872001354580354005780806287196185179917609304977871800890569718557830808573951957454186671603783443229674716307432413327524674042531144658331262877427775506849341109041868618160478147465868135898012569503583607511795810446378109649587718670188502111371439617954305130268382752593849706540187823463673259144147166851699599319315528225965135878807657166591420320992715033768057880275381580875905480067719843272084745458024939603244014388977825471589932805293699600909091992796288951326336610446603517085528948600072329204911384333536949482541769573965273624171247098954555642815509980301860938838284794256773825679570177841957464383491261493525172381519889349662514696997837310377588722129727121582685911533159689367416996466631909566348914022217562075115200140805724553911915752784455784159283553822273516890597151605586931141946163117279835792773229188080464628273880915623146097822343850759056193707986148669387050879175626195151744814655441058462697354486663474576542359771088839291128630192543990882867101383615286746799887570769355949309983445682790128735909659920925442104924002976801908771931984967790707171918560776599256792821056378842616796002537238900129419325666251651814257953488229256442774300060047158688596413981479554737322187590457609564206515647329045823811303508459986262226262285237863669639184817159809452606030687245282149677109149044659264278902092443935262555945876082825248851302313314994649044733838210653029650637078325285892693341346823965500370423036587544262222305681518090395896520730427384531665409679707641848513087362354459683229304408620958628085137138781210039934510963132172650613446217624448449796733198664165750494195714443109263911538320871139085118669351722120302862194233405009777920526643902315638725042746691926260698433322633408756763587685239583200683914636361455304920421603479518764844259544231510266109921529356972930348602483562283341943151119950564418169016384452167075854918205829658951148580099815942438789613617639895691791133153665115989523586729525184956027926603536484665652590259932962819796343537142217644215861439581939683991954179979595814318081179768623349365058256219240657382772437035177608591095823156820417377937619832154547393329303247069143263454167733927448185674541746368887967378041287519702178856708876007699450951758709017324292613838688086717860642727660642248201316673474589847205991011669227526752385253947108803414676971575416930190739162203878523718100437258302675355445116069193195445643649869822930553915338042892100369781175495121155795523209227169582067628432142468663432136070513069349072413270345471333419539886136526812166379411962617070999279152679507630695486467801717128186131716259528849590500901830844882025557002615989643590141133650237498716268481003946121226465805815483965987279087275399222882424469995457072652057838303898377802669611840633405020413227795808346830032461755762094868175601178610032144633780982515354818438634468349266511179830358725994587966579478753076210503375209134042739444619746343209915772019307737622409649692544019342283681174799150593119304590176150857647663280124869271024399419127425316044853032108896019579062668714284101738399884246258196404758699321994474710950771133253586836933244214819523165241399809294151442458210493873807678870471458090500048836700693819997437839531842088074443427791515677955259695389534982991339394629474081746305688134872076024511700326461049093201646832767917157149051439668481950076420709130679977521833209493079833822063512375249376940349408185252008301418833901215072552533608318340936227990824886066770930666330544139221873458052154529400198859114770920230536584918970056758323861659359922638283133216734201661769736219026510220860958671171602014729174261097341512401015140720080147030646938661494924925577270629609310262744472412596446783059878211796623878100522187933935205866033027817005544991242434248143041822752835820504300086110318412098177297020344581667438256825647288452371042986532834293402752779338679295577223625323248341771225365541320142347172603161979233749413479751717982133819995016912416167565380713206496541629475461790903197559775051460398524688710949099652757828026015938284815139593671620822651328526081149655542747316463862599461629617224961809204951117968826728069603683070170466582059453652309057728489931625483474448623250230267472512338472566219017434631128151518151652251560431839686078593550087770686748218058845374407397376615379243083885271743999595918751655593959843889652690560141717325274094093168829373366699788799402267720178071207968321108685079871215456323987501832307288102096681120347461127203275988244583355572529280716088818004525917061410013271278370341587182418588841240040747669827266592558209492454963646172443839260807798582966044537019129318236126151162139710260865993855327585002056531998325007455537459163574751254540278969437033239446412084815278569631118120698384231591990578448563138645729991217283125790590497857673674285343015465585402811388602719853753729443973446237835541873880292686298931952567400005961071897923137824722806612313837294184292118817062824948593524955438710378040364728051565648047249363539571021557387276169120024928359127249201466601446428001462997609034923731379133074412528630690972564752028666278746427016161143774770872890160620043080570160058910439429072942211703271484574647112877350375166519081788914736569331485383003250328674417317247839884611573213899903595788892745225447466053391935111104596416831727381432679746158337980693283412561205396821565438031916209854305755874392730581911210997601412646903879533976866113565984335295965326241489431950022799974135983083621190680384400492034706956665447570370280904405339377170695116728124782958079187871451958533116221641005827573418368534405964988394030385491586799949511939914221138272509890027668304635705555547406020682122503734183681373968684421326208416336150504600480346470294815135818020020562324424244377411039690255635143632320687280356265984133388953987296693595971981681692845092369228329431891861707432455734282226883404632553513435773306670400452762888680246325985934724181281364332280804213367116228263002988056096126452769614495569798810580272798419634470423670372115181423014063820738039473548135889026734262867272521785752273956405893704971766075553880248733362352027653276438230841165176632805827092431756210853552403602657529659184884604161017501776670583928578763535338004497839414770824907757114455870225245448132095786338791998060826575612497055024785657197556081890573752970948651231953077300754001284333379049467270351097101645456873200197408425142743881249783180389044856445024480741974060840503072734684795722685991581079126013157102651484153778791967754570087038529910011025111812322709094469145886039291522842856086372256978126343416573619341638118078420236277905102654047138564175584815315065680585972475805686150561531752825838307278625324116084017588257868046025562116582729892736028992074293863430991746492058878585194321028122545893338838082164210873945727092147689502294025498883132617036572211582709869440099854985336141720554922878429674658759603669529847883614135144635213832626394270931432404870313041276621206945122120299017660333055930017410936158612619986682817738093655081054564034539194294703950068280047232952961101521905440180158424499222826922704010304971579811896042925000394747756217327506657332235176827044283959998345365900357253997105328304981666871568952844269250032230433977884056555205751217554954160910651190451250722789684245306442476521487842528119184024356149078393517304692598426319452428702856694635351736551495005834531153857908594562253566887083022600996655016826502125113752053935853564959816432148379543904188362584384887510606555295438158378826167818641473167070934995915402282033007733882497213133762743631702856540317855035564672255832368084504648559904956262617180894213691146592213444435237575075712513641603174599466064506925078585714268775031118235127088750849811387426566458339474851281950819109724346421145626690959854185262383808766622970824757859687919733918279613109240263951181500806963237660605945270199641440722534894115986390767715976476946913386510469349967052587336484124716766837322153726426142779877430210862927552531762301326410077648233840524667949114897527459007967347809643513936390628415971127809158840978546148456032491725903452628232933344923612287847369789436938913247895437672174639139766998355994713233743523775583574108497820375461564690627765482662349188018872682058500542708851370945467148690692798800572309200643328540930680468964378733172483554609002165740422099708752661968699094411467997491433226181080713396608138600726582556062159160457643579544576124063841579432360244790540381903859093609696885690666277292658769020814866700533900404279272623157622001767824487768260090186965258464072727277137890432697871813377615286696603108478972003021496071900985972525301734112605511747634690000334480079068672661593947921836531642489507405486120974518289813751311305059098608382198788310612274939578084829083795077660355375117466372927550752764199463984019394550191999926665056514266475986727628407155119485779794605739313428608311560125205853457471825156028057654065030019446056817515590325626665020034486968880749940916228329977774490516177097774052735489677293227163435196834789084530372800602182101621339352424202367236226752998003736165898801251996020175101893875122459438314081504657203566794815623817875483719321372347441973745759209594270604086685207451011410182988969827468135671126129792826764853950251717389157212776150824006878934821690348431803902697741632982595051779032133442060104165640535433159393422683679088846024450086280216101023980320509535041506015012902730870596725985930494149943951188504830304476237458521094590704917121669196893121764898159568010727468366967907555088255608389649848406450150696602948825653960602137511556386329161757587049552003086168443550456581255771893077909939449756353721577698948733973733132265472352527026570903563635552977558027801059758478944142759952159560849016993956522205056045155538519425227661152642599311194888350109040188496776940785240845684906384085506695582356968473244596631019943006589943926862947638831078849167404782259051283733388856239683115020664147237816059500803426721004471639281791649265866247236239906893642122620313246451237904375154534273700089613031045390626668900055345451425489268177012291566647581100685218233242316338912841653239738777921537548321726387886248361723706522602673961256603979089790866929806943302429362551908925435044265526746794440507514526271709448416200398955478991946268819633775502981341663615819303763335884336933238714892611186995013936392282111995474833536904215921102818175972564271468293165334260659096851763030949187724630778538827754227625934944540835964667673510206600255702098605852793486312805176535021840080189833589607008622443273332472745029918781443995375433036222729389102651277769716185691714604607780757843657664821296685203664285184210800198353168786970809002924866708548516044071344074745528466173347959857560716695848143862443717538305986185354054909245871142572071495936729982454907295666596129809740158200603162500700450673211080154941904262449559564032712208364083546122640290779281339293885754307060733138529282797804924738809776330072945240726356102532201009100107670161626975416208646679572268967036251120036191364975081102165325846503738267262356374760016568984377326034018259699244190462666292912590538244631470230728911090585400138307836927837443057760999696054033373545447071415236878190920648223509916366357130416240001903843248440265442133066634906812433382562235656809429302667576058076214704621225901159836027398860219134146158450192812985407072877555992617718965638182781487881049408745660390655112360198189701592510606345300080278802862777941367429309350362403807547856015003207673312337485969493817552329337066323462736243398791528409544251200826575922208259492653520323080139819311710567674174328766258725076925299034136801345346989644464206040330479433369737503705030774181783475139298566054084074887567560408378018297848488008088911665149494338065443280798232542210272391621505928776678801760742961312970455635267867958237036006634162051974222989921106490409065014982410902195568262293982965540642949734374832023078637348620348876718645272830791225119946242725181259824856996688192052448263424775554946923710023943997270920593303304811701095211579764870673852253017916536328203377425271694656606728610329341542153190380066258765708093085450604843552375408791942180811710346139008194699344106343209867067353221132898652056898433968221680115661523659818602237229040183729843808442368289534271446354929098944665113577746650645143909834357334079198470428685943814056249107874559391907562549127165160751367730402357128457841662113994613054163805623096555345073787045885321631271714798934304660189121427871450724544413645317701856282654424130205519685606061725428499689195842790295882155390399641346201381897088513463914669154992972620896773485362249359590942124345645143840657878160150096961514473675749708201685759081108889610327171316249011298567458329811839586060157812793987788963701504662970340818382418957372958360232758019074916285688157163771707942040741349544960944295633521352699259985409522844991934140572135679165670928112300936723549674698321634558864157777841325263899557612424150611690448517400500213620555819463358358815928755422537158519638590384602065548678829585533178811361252716885720426759334949549119706378899725121058763373269881878367260563893775535947720590644334962004031166482033553173035415065462892432899990402959709890527330168234343429400278218706173522540311501632585756402178484908189070416217635870212976478985610318621770740686442010608426772758882089365749667887309564228449492764342517395774052214419681503842432308149239370812861426569041213418073008163132933332392796544814734190454662116553800012104218218239937630252649567578645889493059869675121788743275898390373308366795628724277855816677218167482429660404130045539372587926612079675791622579421582205858357662597510425469855942705135103660644508963817537622669453427543747981771855447888986733372653598540121472399153353223426369625118256393249296209561159351577790996584800694271101027739186058324706813393409941932733551888477654962856009657153312713298459161051592403779641510740053275422829497577368514433643476291826765749012561803329456414935368836109954177071592806776009352410134596983312039672962424170380229369753381942407765804958143892035011395650418187632517248115188530664846366685329827258880646464244043998332810372824124747773916932010113960703995901704177640272180028660490853012028408202463855772035237028079156667298094121102156167352449498249973304194457691619370200426712106811677020880140120504880123178959900659954548775243810559120140579218512643504523204244298096079488666550375170718250435456718959420616608957833426583274871662257636682180335357245201526104873589802739658899512520029688497682216578772412978586145091305140142478037135205873846069581892808582670758422869509341062116146581443660119189144840284221188311832548894959841892209440866587752114003648402952277668709687160953903639878941396072643791399306561578126106039725285087826227138451147158752527698405989844527287326602237734502310599694214008204803540243239663494820039087435419154328911481904978106778250817058376891434538259188888419197485974753713146366100158742622392892571442127005721552569124198753262403928727072909298348839224973185058797755919837315951201386028695580982401094242624874585538967525471676058868131067702994258235248338101966685178648534773511816903366564887850206210010358355695620697376524438042363170766653606307818199043794173903049541189507463025306026916328672314436040578296682999578096095440659262267652657502684525640771301740140733607018784666623342164303686147413206439090247080693358330795260916317275803269622725656794926192882565778575126645578089249418817672549906290057707234321434428428215757690883042775999220776665327794427975108467694225499976479807291397689578831139974457501626402729412502315507365728714513667056233697817258946537889352251747686314556232283277680083034364107983560066101852197466112544206318795946207507996582795227217614164593502422361309489933552519710167078341503512640304643128164580163273537381423132564863933951497696809508169411446341133124697660989840026761635463822968727637087627033472722225811156679573043114569150697857010735354981925948455374806056009070309160844621078256399790208306925250510511228765203293233921019698436502720414146925248225846707800924322709303603758122627657147966509632526288784575191247837378513061692572176290482114444753179312745515331202442941684267776521249623209461380639112432282174121926885724998070692236931019010994550650725934505685190405027597190424976640571710067943482033652653574688143813814480575438607371558414678576937695917208925425216533875397528791898610099955998197697733455972109570423676516135588124325941753340864444530533857577068935777259746520696467232238734508468539565998150060385104460534519241144771441961322651693953483801782953132956812816327625500768504791400965675014227296884729429424418274409789703370900326988026637565490131708573542877397973855976606563501158915027196716622328464242569081966914482574741374806253526173847513956283090298447184481372099091564789613908546658846359784949676574660929551312011174180949279748740553468241009081857483826311889471862359765190453079324348596298547687696109673734219340543400896467655289504182208863958002387544065059634334687709578575297742320200671065938761787434131244148797375039805018367220265677027520844311552006732756701553145084320031130946399610169383774961573577129903956871327463398558718622266513721043742245100098156758171478361497488387548501121112655565589642666117915665579058176779747344530520740058227333299264230507966846940394183373988897069740354171120573319971875256011113788638153922732080941447617661054854463801660942960545205668975453162428877848799909683943873744785390437947835090121614493195201336401692527290991462986829843114322688169322236362583507313783056703698644178730685311938380170119597811223275106711159097993252762500952671355131811667516467884818669803955787588774211162840373892730094088770290408425954772712420195268576771151902312209011598665190798057073530610761759835883930570511288555739678214711531638024486076722395051524530389319911822199025087638964331652058869477993758017621225050943911786104777492531438047405599406511993455552141507958111255880305231826339597976706745178981818121634794276248517537568172658258352588808796326639462988784620419263465129531300593545459038235752186225264570293142735462139947245474427075064361671776593516925668294115179581400260989975835258043602865375102397852339699559458487349313841749495868961563647077560617886469649327488106123895231197756717380911743835901805819371277734279653159858309669350372868677857239834497802650477242393025060487921880321758856559661599829450799733236227691323172817477348945997794030256343509607894354746026526336948699480914114863458782138007506048032947312289995469259552445032646261462076168373161875387299533791361782989380049605690931188433053421017403836414509205637137603897595487151072448196104532950967700692515448648744074318124135341737789054580491716781397078040869516033102194526918230684672434518653117398274425373247202195235562319402695602869615703775765328458807399757740665632105019128269629278165056720162528177396766310495637102513542519990591216688294621675237642446265599860958049393130527542440426835777517104475759191474480983355946224152902971651922915797729178101631708770609890890749984547204406146336324856153191912001986621294333315972381766402609520982219529057977101750624135935348124344674382668145624237243184055658058420449950686437571135295920205206718865092265053075589484713685366710310948548218421664349109477311736817900067172449529276587393382822773948404704069562399565759773720244609987951086080089385764044632372653784011113128457409195325856830278186282078666799162483537298363723478041370244792598028361931875694230591793777956381449648869379343777463647866403171576790099812503238524148466916365424968517720899521123314422449123123458608882014246281786691329421955276993057184361786539185870421642502547866913844441382413508365949464739006183091235864812239326444425775731071892119134392828317449369906840078020016561856169902235247769226592395917025315523273694500811795573029489228935335291902496572264213621108103881077572843209073541608464419332188257801749302813292247053661328055647384026470192655220356716080308223496507511803403700533189581370340450195065256688953518140895774158896797608752415278540752683549380921632742005764157230895570541587597789754646875831216165640171247145776107958203948417933848855921058507110695056830579906687572299141233055780576315068320481955442330185229592997293780720894963547152688760274101068913923251542522478484075511026013200622353539391162277006527530099402813575561904623135193315000623163722517441042403028879417044300281512767339910991336600023684055032657342664877042441334366517505174000754014549953884358391864264531413673019239334060062262893662441613846857262108390402529424884072768756820748421124184153746351403783751085020723896157018952098394050953608663365727714816306596636317435276168082210478790937347962373693819987096130565950145461913018025479929086994560763804913323678705628033561143948537639552563541508511861023011368499404490843149877821973949410872021501188531408846974152298467182588319849067465629296187700756389218678132567633719414263821520109152680534736024050537531070041631707565179914408756894510173519772680873777459877596959506738280871101972082330144387522830712240456059584197920925663471464784630180352176692436913399531657168989994949079907803552052414325341647439398666099426207517227990801972396476948124313414284217314261923550781689244410694640530036367858713168940225188065086862125430609922148492698888667194440682203504297131556933726320611790358192352277928448615776982577465268457675859501946724403983372237525052974871784685266893152555616317551119770082812307780656293342128504809347412108470268194783657155463903626458183847247833449627360303191497972461225599134160353440308324895787877687887593509957969437325440195947807020253461456621285285883203664629062610766907195406735753343075084453952219773061411674046947176297873088799167856582508525010583381241492463036311217433814108860561035885129456735451487590068407075762484193363991936760759228185802304990288028962523174963414688851871494024923284013292087267913560726952957744787610110084252671476665006776316477681336620959222060057555375901065116345185079158629705400846527158950270417985948847413065303410855960532835141465769502817370544759111236327455740528134568733785393662339779259793935327410609922356389694646082456866204880739415951051200147266896226746516290129008008933732309623157210485696318551228741217321863784139132623750297125196289573235004791176329517601318482666561384993072560145507282222511336834083950591704900277008121876946903674336673777211708730283195015043640505393593140072325196319356026963737608209434169754248671348602070526445115340993183523473179179498827419060799849488038605059256916433644488071188689160163447862262338202006880419391039440943139001165153137187281933011044207412167851432853641268224794769898762166430870447880646204532052567170430010996538097847340633347984555585612246035842583396557625155480264092980278614870888470900406996305473245319051207712220803588382155321216784679931336928355224982732923408539206887542256235970188070376153622024942192272757917191940031237447027676132689580993209496509255434453731553595098171756532692388424214588137219380715453856854074107148506887757574265773318229890725040319779346005542163913137299139938876901840524963122963076086647834708671749885621539111766182205762510283990679374686508275054242940059392673513044824115544513021859351568959338401956640968202743537002193155574099892350306479655356743910296657729466940555505349853414853781284387299603005952264954050049832933197730879713908966246352900347352902674830561168343234295725538812358075571213421906080501070422265667039283407589179503647454998091904403369402127871057861354360641237114015008303260393112091063203068818797102315542115909007514333854597412189249962477439275072030154195368548980382916875412772295307004013043750043444945268347218587567953285944473982535375324259236363261961012194953097422839386845774060001572192539589479200741111494147688817999619687070912533361067475684046110804414661588194106075930583744013816763194304120359297951228412046116424240642191715894647360725467319771579868166241150280484460028629512924534006947537084272278309372452245660238653984787898242537606976326933959584902339809638263704372106859927787469929359841053653769974815893626923034648697507135613347406762121130781304833189825591606086887823201753567013097484452250185200897534248381309949705089518389470579518751791961846546810488485780750608788403464795474447213669874541946995299870355703278630907074987275362529782720695107703087334629581151866664884123118189305271415196344105359147813366918278087676246001791483757522808190541291142769408402552241056425081384899999516661569483880478160486148416579562428749013537169874273152179808523389533288191512870973325778518924874438031614329442177983953327098141886232196442483257573520498909050215057519730788081571265030916679392055074563034992895552985883945588422643145454865317548616733357933213341621497779011918982445149637808568791472818666678009246398856559722953996273880274992777567181847203776356387516727589336121844207909501652422286531618927390959971949205110466730113852893261760121971896233744615338882391747941271612856844899525814498022728198055258756169430130095350899310570921474036513897793215413609406627570963719814038437944536118873098453451027164824965081313893203812290275999540097451347004367236970922252915030391602289457223055563193321845561228754900909841250786520784531053165400508936728568247508874123443407623936514846984352045568325093120207232856756947874950640903981354931905980030706153202177757074247806966486015778907045240645371154597861046835587893972296565072609948198754618633388926800857799253710644541606258058778846723694389820372959730920186428809274057747713161775024788054816420859460568995687002426058936309627234457444493830388133029066465505128079528188030073650479758921876769236212456094528438503029522993312809996487451801367664698023502407458339936126841694644903718824411831878910722523379798497368821180665569196587705279073224812430466427737621669662042491623057298333605364174178732832983541323328774545141812429319223344934465607471095871520883039431871265259404970168177757495365184308534355375572536821600788188090162544669496461623744175106113436327649659545104776576458435516975966031902823658673583780638258956805103289844449977266123114712100921271355573717316499478308194725022620452780755950038375705974094240152548643783828921829623734118350274103317422766976959057240057959691073309974099262667651056470627244790782656633025653442649331697411424239562106047393637930381887441067066119843631636196308557964820966320973119561225743924481831523317944374368135080232712385500154342906290717488630111158578784244488927161942127238639484043593477233305107326451237542741344196488836417487131876195166339916434368847639143892693643304613710308346404021519830223234220220682805395196273354358416258785315256590539935470495233589569838550105324268243362150220153508365592438140125866637260588125572215260122819623142994450660443501473025544875582721953945378126304592790459954285994669870725012071051914026435544721633738534802598570594556171010596550277356513982739769513305506107128468434476676452515185486757545972106807357303776229798932020192323624299589277309028637891967590718036904452327951185041974364921354871222703841674560971911613747872423453194644511850255416811453129371100621850582853226970238872202636435092046379135568702253789526935427856738952134334403216480017956455560619815820767194661235172028785232445097288988191432575851901008513735718018730480344681524045847829177859454075096711957538939425929624000744557295963303221856346082274446034474248033615975297541750158774194551976544565253297808544643990788175841858492547207721979499418247299321053168512206757486391789236738561441816388175267074443640909432335068762660326113928740578102720384830521341877821183734118039168654165231773871997111821117340787468923720872129684452021461162203048612526947257656724035052153501737373890514921280482471332209566617321744285161607887995407224532794271265478519987488623210780049646942209016089884174502766758415909486304045499496916405010384918719868178068591533291544022098233818489893470623408819461680501801577140010470856703817313263425131288797995036802081325768430732369010853136729819629401282800735253961110421038119585436715416527914596878082766087675862751986178962043347358273746383629625733958032124885806052892175222631890503053746766632014387768503118551557909952744325071679918015747257417994219389403755239536197948179834248460295248445165478179593276514199687439980242566589784363688297225729674191295336108193659255218528092169875695302327494109510158223536364026455210375508416600693384514732553959706613421166786576190782559356006374768672356540277987575661372085835583092919799964149065076390862877590351722741960126543772322935507437943128002730742048611565298953404524029247537569135385009967921725538457402179047756291292503021460931585459745966789812224965349269690173360858783250237960855807837829462250715438603549426850948110870914324044790549607680802291728455209378304733183760451183641434583817527458328127419879196031645700510467612920557469148531487866544351961852956918090146784116757011955073172212827195280049642813816348912391897129798799830528070234169365344534460215610269676192344439224438175749585988195997752380982372249000569876142291703320242792870544800938528430675222552966023282952341416932737961988175634752208640742792636987316390286269678886138775681973612971719011792657741280983285076911613680970300353167350286278646281887413396066187748454530206643254611213515295063840343374186712291665904162197553363691635617932956541704121736026370940384175427812561496729305128327860810436959763391630938639862920886415356798062883686365057321503480976307547176632050573445201342343212994892061047321593163057428183503409329229471261232786647628521895771112489742613840650938695474212572154106328634524912697499257954157517591205387298637026017603147012383723145224632254115469886424432907415574240958533284189606505222764525896008189243891584138226002243692533634226971422904247379907922862938138112322318863178086294262184153731433736935322661241241014996894440807088016158765868967589950643408415542051000224538131576521808038532481323719165314522538299085453679542883220682107616545859955919251560827149972725730477767530352220247025024751089235960427934143823283755778732578398770969604026440505289275673340873650464373771962395688488022024201222918249774820391982766511175507116066124505898229887029701938650032396181550537639172807170113460954957575415331945684601438062918845644488525702962935668202985991610817768187381869934874478815351701435894390040148022807583285872810445099080032122877145852842812162148660243157195067441186452932970687355793741776749548855750984922569146363555096541803081445169133459542104894010313001947731838258524134990601098301499511500198740919873037506245126528632219035300703100669982479673970562134553013105632064681499820404551824663248580977436296899107078649967815561126303812194657701155135684279543360062243420891979882276297910465825515498656756349252969994896247795766600382039443940552039251855597147498660262812534877213772221730795713620674631785437432488620261409090440253238520113929471854318732960146551528156198432620902762347381095375710331197593880895753666466160134071255652668265850073061112687194602661423717221427294485504957383792286445118818346192691381020114270993057273025413354352687464230141281667350279891157176803515797602427207492901798583496126056879988834903205920408870892816594712104764182724353017947401392640688336665764443406138310722847284314088125912498273648859938219296267921335114455573161224793445326340529335380450072039324914129233514717452479784489231903698235737416421302396874568634681471843939881290593437265627149642825611865451600660155624687777583821621069308034161741680008574165981113476799075873420007195181429946126409452670834279526490133321633933650023518218233310082375201383436133657727630238487972547369023395780452083690961701242390191542181361772769829410336278413998042192761892614118413103465991919646147128010257545945471414144799619904296239608362083123941309915332075548479679060344762316528753925327928213458318456926037907558774579264278791506123355108730628930451759307793968803082410852112947723302859522011769736274513652279725989558247634798454779530870271994378739724582013694146544530974782916388263730351349703672197673713183589833423681136306364465385328180926788290313424350385047470783922893286947894133946059952025866594972582567470068577983446016364562047591343102975660108953246451293347907673584240863605736153630975175579060120297717141099889423049987964277173816942128397242350433191285998905470798902522890939815180958908273321528827265491643337803783690901847442973810625733290637113710001135337424111258550933507360961060331163016174074198829645550157360872472243007312355242299572604153228770115156645499719582590205502803853543158251695451851503647697399479059801945892491731192982877597900394501503667109595414766506870997058547185725833112919231611775330828046339930685926620119364128287323180990825951860957663410876423208940630349436213919130118601480914526507093993623650366836531724972156610360188736674078227397874232113250176971348327667624836932061478015495140048375645641486779400776658196371763724827424000588868543022036344653511579347388504987333344044356661011003542936956023964407966719727069804234984702158239919491152959718445330712588832871458294216450531159457671516187686666160471974007489109219151145912795561506377549851685941670275215904534566740212319468747288104915471053091610438434810402737163090696704037061091981603799564628150999033948234355114726583560195045752879961156754887824588354890133487004228711262605282040979769797614639033438051839934339519825702606155358316377350448821622871766171509430111309290526290710754279611168250200639616469499549468678648191676306607823770404501747866116474935645936251767878826035396923483454318386592817264366950820499170521019366070314705600231320195059240015415438215284816227184271793458659596637985281080563826086298556286740039329577664584657369171403193756307693046046712130704534224437164540806688717087955711927151757556393656550132617062332507538277199288674237538641722501816146309776218321126560265949019893349494101740998013206703506991117167726566143972861203673474321292473078458639454861684290442574184336236119324591853640735249576957861099002945265725406248959769944106437084282305562393591346350712468617836003380470528915695620142362011514021674553309810424087630108745450993945868808090097514492090324992826621136352341196786118207065845174007013442303360984495464766207815961863297908706428057422224233327431957535140749564826435683605355636981665466257803911050794166375507473547205674916939103583175992632826472246646100805311189544159873438279585865216727560892337571950190450980381279823797508245837712242843028621475101922457445669711895281682462799804363108589831928328406252509114436757154634514495113307535290692146155637963100278348229052892857777688113141745526812837492130804171883680282278875320669440707764240693099148786725811440006217299002357747712684066147240565305220104150798996160240920623132255896399403480848646282932265830621083415914661502382331917111910347551149716939804274643827901379437284078297663357631456372252409831661989991340381471023584809712984967051392620368654038110914228827959626932135736421091231826802896925656129042672323792829094444327025972047133429579338127266831508157724413428487287325137068361107289504848166691184048374267422676879014630338835007534545732029692242139265674430189138193019246022978697231719959976689290889389016660237113578343966164051265607111258640789596823386521889064883223871850061405218006059781740510681872019300324927535901391561011290968959652544785622849467145744251278930884992338038776354386586530379196829774283576837122478458660365610863490793509402526467916976987262968026403795392652173750307712293686548172207845343824956655543753024127105855670093804606203090455218384533663743798000807444263630483717296762567830796930361617605998466080258410932625849724256003757128162621067288873469474069821958345330417604082925741312349878182432988376132173198483419657256405018127568608304768090032463043788953799780277032175007499025059814096669463690163817582163356938812943396095894245496137987513009585353404296230428366177807665182536913458094542436740242968556463966287291585994784680925860654873519163557818946485985761474623565335745090395762458442557370015156661195585773977908177048607891556395689003850622252499837416815864066817405616733188798422864545279539507284750152933488243257464274454107531529086372628000408430492927712699642557369075240583825049232256312201644624664656858654532672550652685042292746564177200091453246900797848701719303695977603703060050427232004473447185124249353177648594349865322089769987936666863521304695803200294986398552136637470969650689133718815288753965972868716300128882822727688681555811877502717595784459662866629984112342117700203633959474126441413236842104756989223462918338835736895339661568313092043160981455784861170833404587234834508067514384264456439794160991003271773336035950894661572178992012449335414912554813341031520393916768894079040973973333540109668181763514471368055827372974283228453263704902973253637092203914993019155629974862505122749201385623752856111618307327829377205738837996266433437386542768730825186934813950793141886110114416215567625788541446084634789491154609562759839281172827515068985723795411924170783036975325437196403893204824611452442142749659596090995625731420180420608131351304807549208802885635849428382276789369792877398054937520388642901449034592682792332204900804001847031760830992492701873131380173971516848216504252814075775593893257335906397481080016038525083028167601298195697010373779162929784314974426864546087143563751538572679264726761012186497597567108107227228649555660296263118322379280020133503851207763464550903125718924010986049604118872421714239028744337031774580224331538209382448620691018778579803833417859018701165542400219398386780026104026822089592793551943865573387905261422915315575531939763756891370787657034732785005316695384984600443272975533319089199031854398985432987243764539146628332141802223974371255022654820916452598174549147289515908969887743112976319047840785641982209060854032087848444933862578979550985695301619638286634531029715833028485751925622806097723366629817815141672898816045896310771339847658057976545848192301604280724998382693443098613996162795435792542309055591150286688300114588533256668882806564380397350801610042439441128451664268683905643190411412840069529698911589586311060942641681194936747721373875057726637647406132517277928811401947359106031248958308479350005894926450660318092086253456173283697127431213148520892436129620711985815832579096800612342082393806094294464348602932813442170475022979491481019314883304735573660269255667310591634332879160822506157894437079020898081310388704893842579587865655440113184053761177400269331487643423969888645031380225673287828894698281935548681620778626854827753973529598692751310764470893311163339690482010916668982186636335820092043026741275109813505357978857190417772489712805307590062890810977820707220180453817622097920378946491948077824763224062410315670233247513343855566246984166374760588368360275764815463501220213165818634889580787410315217925088885794371843817587499709711457888642623648387475427535627019233519167243086952141768686666109474405439242244980393003246322924866054284449795266916753804007981976300606048594656284704739811956565163694928478563751192294508009635502668828313045332828337150410791174197534110443790321236917825683207914651320492968219312350877250369517583571001042673123286313448459873749271092368499343224395850039749957069620932444188013334809070840577385950868136972336071419451429058397894863349738142642369346291328427116567780099139660047675522146751540039812250772137107558638662789530661319047731529327317001684504404662156120960284021760378650651058135840454812856381131410775638623028368969461648975498749908606074108377099987802764407596958303436781227364797818527982413972848364154041230523171747522737497544031974488299444638320647002604877832582803603121974497728842187182825277933200102551039816633399771742869219864891005125546551767811678525985527517449685299670793626114586043857934463487975102086494139678354649910671774192680220356409366456855807032147304478634348696610018380281623533016990231041193205999396625024425645887813871085542960340302740978173436745689089328727892893823416360197275444438209953748741528576204394041815134201675011195371073056251316488158308757347330879653488427597428668916427777935443925771771080832185193377229158258793564212614624900157279959156546629008464471028784023123515207808865988987768210245289251776117406869520146559918311424361508899982889770117095052652951841134186751503733883616676187518363766402195796965781349558827896349947906756870944837018440173979573338493882077037647984701720515130215965461324598442308630929046624239865358943666336739128615799826709799019798910673668257465680839108386989998967526535528395487443599074978316538637579068402516214184993515031294647569930796848636234999755090544785999880975202165311345478190922731010916536336941323579292600243418054722390358124199843817123979145368144592981189165627118680195882790894387370272943855673464009771114265864411860540872712403379724450910312143572599354222684969450036848608742779564615674346353620238713893378541456790717984361079525607698909550564085729451430801616673732535661570387224269829418626453867026652626026054897328005404349498656218564842231344929823527349140196434301645232998407446926597441905368250325671472833608301439080692430782517097540477626612463778939760759797831805734792307172533541259634233791886034496757437110724628791952711276899300287743517668375094165143642648711432620127464862872434594443570175888707037121677691674300062166349665672278854788461210945554439080666062634024753125024295950228495672706994135827609859607776151156356052959753152769869695410900403373743929479350012728766370997793702938459804626558534280464570969767134887191081096136967545333653627132190429963788189275370531155696936155410132866342857202773249697436213985103459302224516310923080592755793367248708094025442721760474924720420825051769427730817574515958590612789548861396748464138890045514366975450443508927579078553952374318087992972388804528942710250688677632953938503034817246416080000776675454378161686227996496410684792730387841254963939078872070603028585601508793687282614860706719351254391443769659094812023329395304087094324901466101859361726956628873050814010025645767929785849304736190011161774690912450520345148372716767315738465285998133895805081651574394707818802067221801746510173026457522961609622603461993275844240448736384037116772779856679564012307681146070125037379676595526040601431687468546754359110747465104882955164914378543997536462483708427267628457213004466826071011510793239130998621858956774348447968554246734426177051529111735351766693990411472645256100232035109313955960478546193700480424287235471729745035500754214255588374114161188130470048541400726351499623177949141230566832208713953058390724049946941883651620851777016356151063255502279167846005422683125691536321521683128343854727618781832701308663921503151195192832384600747623582154751864334662101032984140696149961408840726411720727273016784430800779706128194203610206629239533006611508315353795550683274433906926230474668247182498792933922610014018153112683481996120386699344765573981015923354002247542951661680335256330059978474349454665753227646435516779510144254462979977586825438307014169307741110442733611108830904973785832160187613126906330341249625854775761799255685714790098468678823221431822216283351861816595683403488875227969873121640624471918114551948976959113059309418564841842013496602471883746157895661685193166200290014676237785529553183993009815690720297848176142748339493569654135890538647740465279779465522269653370759454949073324748216449265704775933135088698572226039764332378075982789505321886745557030359173795839430747395621324475220980416979744022173643518014376772362543817534240171720668908149061097674494475901366291361708380288826001475896185383134109300793644321012423166998995085147697243339014377316234936711788407463682196644668716395675390533964267810829163939422549370639110491872521674442008227051374855276362321770540290502710599957244336400519644321607640865714292409488314011017673222320157312138572142731160049995336798192251408898699524815339363662422888306612654445960221313824591949701581910776269750774428887978677955028147109411194335775830102193865931431946713051078170960343467128918194676173678433034017707052571819181088196354221523689195959701385957196895316824982427705322181849918775032903212144368402061911979492648224148755623738293034772705991057363101892931057181010695999761807939701983761484170363821522734761632621605324965613921576470659360996537164208199301039386855086950746809897432000374678399190871205273413566095640978787263962464463025895328086389235684603184402903478991347662186977025015349089262806082672813042757010899106523764207081758361859935389265910466386602845184166013378390426424526909084565082483238829234548464967857372363228066190815572949747931134615256924183832488801424997779724698406157049225572969770271701486961867270453466684558866212848479847901832784971766450085865845406278861348773623629206304772422850593917041836767590781194255324904745580165810127710915716360537538204657050830788613178147834639792674493028977724039678990332998832232406570400293007336391331094222017212716691207671150311898209691988120134791849831605674469643234540714120435625581753333347928016319165785540393589945269183360065175751323504108623090454325967556473078326948736668564044410138100233702106957548339453521959413935147979492113484199588253175560607032480457635101254247548854741620752072952890682857962120047446958883160488531077004733878287547018702970623773073588196739565175739786030178592340850407046293622411239992545085472388097604137081452885025967552578268593705770784438212585831268891943731674450579900181015216722885344775093595695875543852104794891668359643713473445436660239397365822590300137399733382829668618131497329165233429279907326411660692613456818048105693897514690081599246291634850301526055970602638227404013083992755356477713972216206166547737705316795683906536700589360891685137518502740015130920293866572258590582664583625070764313006021609907807839194496812373266806489949095312331167998616023541527303899429319866009496201457468178318688694770081110988502129979182256238778420290236275118857942209182546945512796982305583686025813208128365772565997913531055885493192393773387960176353667334014065730937526765661479313196476419837892230464837940599068739965559603178489541534624936086655676397752599174724402050792142651978216651516407093018531957541198738925986576327399474718876023802949142536374620833519701386069754234358494591066158920244587113709471304968730644721029833940202264458547036829058721886838628725412970836070966514537527854070870290574053624312659580226742175036344462127867303893957751884040384966776866551315198368871839254785349567162857621533579580919071159406623693873534000345528347673776274888503201261892847343811199582094362928228576953832804141614726529294528740193441161667129227834629489169721819788153899948348044590879756908885826419742144726647678633121569321790331335363244117619669423837054321157758149403994001752554786386668057897584914132154804878899409539570635608475371536809665138073434533143502653263681881369608085153760604986490691545856130282279014857531823055534907499727091619755446428653565141155270242891869499756291238320501931235819690193308208487551965041294295755820591153709991983283625324054388007268754391092079179503461066609318550175292231035809933282049195467476933157994442266072659762751248464582776073889115148661694353618039314706026503465014324698493133113229273493876833499864051744660043119768334477421789582537833578618662678667837472485488245736576259794207427459213328234697882079581574931364518599126030228046589066009311983037564330955815691005812270190416369440980342895057616300897728329765334181402161792378195023117336331771375776107650251786924697280376315220594827216246846742203246966646300957364203062685440632067138266569646310072772593348842291950064301258374363357034217466186019959377432952061223835465232510201678708818195417145975807310746659617863122235909572305802081297277844972086403946778380559239866027721357054069588856311239795001358400004880656303413463588332238626627802894847336813556096744301517912045464280245765144835429299399183350237150434351049476177307465482744325524371585261006793971327242441069310321493079638649271749095988837808717507240877494563228174387831498848152071396576528531829818320151719024097521361797225523843732792556604996591489608198053523110425952458446980907604071624139517710515103666417094453986085585060209147964110609782968038299317503166081122305955264069273651989255434553457739438951188109326082171349695759918543370314611597173047884601758876632509261460457216329063440551489608965054242944179134366516492817415004370602774167811892854317355658901726403236583389939701691359391244022963693631161281877927795792533172001847680571878812784753588419136876962017721976391919979828983905057831348668096254912076529721355153289358383592405796152259358378962191261325706527418792623692368076946644660974942419950053728608653325224108537910741237997493616972790084322270315934157690655793837616261238820071974229591514677519773674470694082155383905349201912645289967034099899129501261643604687836862553977125477750574253873119888878541405647113295049003784057327494792241272423769234521766422157303097451762269622340899045123454574429363762246910172391399669414700328230952875450292309229769904761025599515167737937237786970971315558124206252638638924859710235712593634576240511017261587494749403078398217410877664042015940102663614913488625440207895186951316436524277593150913109208495774741840595739065297160465948886874034447118693147323795101496973267425412064517816862956854731508665589393694971048217220903142796111802763648397276306205056229950302426745783898779092445243524777691652933173906850009108422625585030770796401000417087468290255648030291414799868272762333089638332951118052322298045635758859047022159154328370641432077196024473114565314249308344238924736030155854997956371607036386987417119663689908653272166150139369922832814814967866895319718313178973983987227526766688709910989082496882326643511765440440711263282939610707750135442681804992487215056674651414994887356925398781394112791635750485571441728053755327624787389052350362591654460137252662433230688636172050213607409533450649016992014440555692493199676068036006684189960593051997380307391681676144879287881588325681478214843500220982459581832243463487460591374624350443155230638674718695787278585816899477107104083359582467051300714941407132840477184830670726235118893753097865788526517102108222141922973632238289125597492781031096542275377992690372328734734923524646946577770471223125900897665619025045939357305172735059975582038568684627526061163606741440052408684571355934462770233634215168148910991911731389099141761422962121386883210216196865643993659511201575564991332887736962467499535913870049463536403638898995130499648597108120905995722918319472470631826129303165119999949381033539868562961426145994014968668196648069086526105128796623249350315675132823266390139628199244222046525565214104010540652416335290221998379787597099481987682273286079212440859304211813805977774772836174817436756321156904863077362675217220887025086153112760169862799970657516103816158497281802939216493781697515495001591327040214941905017119114176076752248363110568381951378166544136042525533712656223625503009671300927033175311172787216447967201888407535589921386824480354158498659194167113331316539076414606350610916243204694390701104316323470205895157126453686574673834529297202025353504614213364926207830339989712632882213956964955544173327246360297934669362393501008608843295684175919859662479941881149948589920716789289015781503280186459838293882219342420063125833323882717158722368821722861850253576905033991926861720980710512213763467986619818118787506043083065260055003674111749629185883703982103862378246349338765149647104458672068499054926619817949328402747919536139595453630510983652117384246046516416657220842922366399931751881059799311103637430441382554309271656909897492324414398725745812547736362572344803192797790161909571110855070134498998212158132783296713478231761078715914718630354419814732278575333024791929722563262474130457209025621499647667598014317011002669868713570915615731403360584515674638447095293470724771374182964818371275003966495385328591385558656639689603582633303629296044990333821401919406510996567317706442088462654673989402839442350864565662753005064427018962377120633246771438019398186088163534816774979774683751256794780782460115808053173726671999603739462696000053084921339067648509192609664116839106499724583527426085531509156055202165552799632388488252101440482046280747027712710226473537650928461612010716961293877973344704726677231227418919113406414208980484213695400894587348516147134064641278226779441433431382380808538866692446122218977428660059977421722803975219026542317710649020922801144230114739370838065780867334333081048662349924161492238897499416685275928604257948253202414650490433001471416329786890084677062070663537548723185187666756476282745628511876104830767215073297418399243030097065677990601673424736504042626918341308817514062054757897007665879582012776280493955165381688373313741173838160224494040875358568913228482568090594055119840360024715437428370976991393618053413604864136866879920309993731668420727365477586483417309369057275651130768805885632665226856179968372257128524255273366411968378073441389574793258804647355389878239822221145262710988518657834122389528750212529192554327848427486434188019164764623172949436387825854744332379181442998707634744158511002594782342409715447616469550038994449591768467349365905786693822889536203122016968859556023206751593519818218496174096632589336176152984510204870258872881898416238612425008557021011716840361466708357999434548813832108412361462369854053758387102527488518312397849920208013437597608185728862126145676776817250776140083354099642203048006386618945934254633893981437559661820838525848390416699535044216344282913287512982124949136521376441768570578073278833929901980847618640108474162566576679872296558244199052659398969264957637517430271046860502284633482711266503154014158482615420354840392914749851935235642408442242466814862254992661665162501532550708961575671351870209849288130113007856045970987346993851631867473816465403473993535588848810215207316554215409055617177781739564798555336667070922697962751032289754293373719651144063361096429852059663789096285655818444107064469960069583101019370778283688714765515521283669995059151098631473285426976841425464242426809135166330697112473412037478100844749708314763159290404794955927113279352185637298617971895228974065882114565283204809646037014215223526616576356908693527051651317873192845120765629680109446704522640659672814180331404796306018640985372535950806305446581470769851955505169635978777293485157339491400512665608915570112800179949341225576059371726133768869652159892820260278743145254534991411564745968890926643026641395047231496122194757468714260775046193279152308483613203634050200709519692754985317436226408231214445321733689690444873665341951295458204050413381862128084310745089926819929617370319726131649795370496060466566734193897717067871373725183957764916978645581982716615548310961218968214949332877577478028906025862043272896404089957320318931071987162962267188618943007398487424910895575111862274096015207252360075031623547546523329127156747473981518191272746468976011822281010941133721346339104450005193044607245081323041638976283420456647134720721568253164131057541773449212703574147478173711719101383494736336182623501045730414272813189025849460544803019157191167348870603632631092716338522930444962536726503108155598729035373681432115258505973871876655449304297003856399191873714001268065334220895121173670591441538429275187955282990084960447053189843015884602312559581343910799878910158879252947881873054040600273443771675403405698326535983600837058715659315601131539822668621159926277837768827589993528650974373961740680718358374617084353133758791428738070601260985525582886596961038870741658946543022309919360712707671613693239438064482274540904427463571572449540123591502505987444867499569524532427343232242276760220347869648257255200049791621464050017587251366774408747065321188293882373774766886213001929513003429304098637271616879520524728295701505044017529668318512711894695872871510115336848787846385644461765190693715207220879050743973048258459630475255032179730039861424336595827240600753664372257200069648518970218131017324601515547598014967302218456157505498459476450432951710465723906821735117128597760918828330613712921583577899829070253521688749855846608630613288213459823096073904131742838654602971351663128796029834994990029745748046695681855337132967131622219934938765096768506774823714468860750115000460810910993602197981477480332286220473497002214802056505279054753682168961573243013693459022434865957774251286209921653387638475651238681576473156328366888115448603300238867377259545460838405712557527277125872403406479593267807007995592159604282533747646990460877620240179479118935835177556577787123859303787121019717866898740011010277681551686101611743633458971907614309194083163885807226785245747278391056361250323756240843026776626347316091609107066483395158203833556162126713636439551118507555698920965479150475677648577608987659662838060608429199153724022794688709600402432923190971250125059199757852042628497996333999602021985531970156794231369126343118597136463822056613107743689827880698732098920591349024301580070576961140718744030843173979245783639486192770198030323899417873924501414211374080652685216245654914279443714014946066955999925136070809520750641277777030823041408038763739649748433672578678179422350726946508483723735000585026050106636180603816464263735417516221351600376549471976212406453743054248626796900462041996788778300079340867454219672131070052707272183523076683364977233164810764127331641980183959125648483057636934281998781332434298126412873745609423022048129103394639652913030808526997137929372048321311176835022121977343483983120442424727459142393304326883819647027800039050863679690713236056900757357799275084202782876639001459168406307412162829774712896179358285362417772444415484083984934478852271746232008098171356715135998494860677973696707575398656105337492059030881925992373862980328712734273424448230365348743697231852430916176827584259357203623052508184474860515901993180379097342194834789390132241877258378785412770286599966164869747429011839583188737548704625167334286527968189383543510983974834529026078958805551089694155451421300098328049695157720098063676234747164275200979293942092999094971645770504235036026528024932257598053224874720302762387631898099888730422295286443079538649564810344494678525400607941605140942286042125260543041199923003189729369331061849693595961076230604572925276385770696447446230502752322329822412240368702216932152445491736938634240144214513253353268194615766273098579533402202011723930478308150328350653030711100789057211647433976741601210795961708598943282985800107752654813600410510426666257112636782496033141085884348292382535214261872010274881792480704223154383394586372951662842970086600871423911169463845314656736196657415015443387582723650856941639945962421577156313393767663218501986471568015162882325206868497271298123442126755615217586422442096734253526703857285430411359813725509577050411704525420393773599520051441598978333621705572099428029640113674405498565336052726822109484206508961847037986504960027630607896306710073001214273823637057158595890460662949545438300538758022512582176086782047346651613405532149057517136265265077108344884165280188842546863060260057664994362283591566939861256510336382536767116546430541570691130496147532856801308290384229511029437228556227729990100755558597722253094880830521117997107614004570271200747400581692536246449565405297481696399135403565544734522892481302153121211285412785243587299645550206610750394134855076824617527666387812185817663223268524825391952193070368944130889967082176078408008723222232257371176586546748726175933862975904719961659993995480466138849791157737115492836025120837971346427637962417187415005061576347552893573592307778972942685986947338445682082933035266732084563677236963460698157435047287835832866757418965711037183185208925372675596994169844911859917531783399525561052606599677120957087343194858581293853233559245446354502550781866074739193368944881122137934918054388761899890425697555234595628225812603965784924595993397110647665767067563543673492464087311065647044443180193344194347712172519344118298935091991904153116614286131089531503863242144047106395496423346434190777590057649967602879102498558150931954554395047070400353983847271843659980854384737009409641249886702034407449151039228481925824694589199567833668121132207273905619714920304791410022512714350060405026537879580194326799977985720149700350297671222126839291934944298233627939867318472175732688923690015688189336924181221660958467077755361283961169961903119705064678158024387002662639647998163717654308413470617994826050861551590487403546357188775394130151543560569854979491076052835205423557129158559487924368632030362746397013937226042308296913572879052603649197883906766051363035919679065660809901635757684871276550566735962903308179671331848092077144281008671020343416551062480919058681833377041203916786592333683108597160581189918212811115703454833857711854106698814965892349092703335050074276769534667349584149710683075438575425294409269757185486471985124958783316901885400097173625526291842065288842330849764860081175693874657210069248803385252812014700595275137388989760286722659315667889623163838209358668390689049888160829984362522683462156518048473674224151181541836874968168121061319329093213285795759018205879272825725736034158698514093923113388172069904161419144180897234737276583176381930592065466551631592919602727161549568655121570273872958969184634459755456307049378930808366954942838528043826979871177721678108241408222060480143863514574623959605080965442538909633140084844326443114723465519179007294837178599069460020052710359430084396800581776946246016768461412874817404032171830953273240290033327784916733285704110945609452548889521728506246062905728187326641249169282033623744491942521366722136137893843013987906938317819286037323190727226327441009367439633236150845106925135344203237064504556336431892629426833381828783109936098786198755008870692004130752306721961330258836973891239523546359138191407377540916615048291723970818337481105774168669961486533524748135503336162127654837051884099914909380824772964862417647508433250137904123394729182825998729125045999983472241361048754442681484372702069179975714714219345237681653744468946024863934722394126945644792306207878973345033272112429570352358623984280433978523230883421734399137004625105701945228334081977696084450631969268423739926940187847678347612752760657259528573384286783324435326990053422397521452571593778968665316488931749693090167263597859965544232538939720670737072586144279213729653956860933301515994763952510302532868189937682784701341961275179421995961228292406903897232267780412426657861029956395196279199370383085221201872704553052370683040384755035747610249066805327737656682228857560095868951051337876131976348384423278309800324794925402055825510148360736930095184948014921735469843252949083416324924990139197747462239667719059972006457451901050377178302284705081906672551254736636749441214682618543349080259093495104513909175703860056607686595145412411207117951079441487759929418080682737097583983933148133390305852404321858517407743483558145542828858794660486731519133460101113803052475955016495212457022197375773958892166852904792708764219370755542407239628439949255347744593833127654448655369716729126507967321454892021413882285214330731907836149460447957882744102301883320076455521966779318934434756893582830816765175548583702008838405318209339064378474068647856549932246634566802247736652091217307961803281155942653189201927152488568013363626770403293394081552236951724661799926071489762722492548504419761791826429847465209481504232525852219564788487533357443139781888475350083328865859300440650277340407203353804873520063610709256976613859203502480976516587083028456601683528406595115476391798418386280580683915173602657488174096043201620808786960803203881550403599854192404669295173166192163077821788238094321160898958962550683467698885445227074815987604897473896687817574088963525131903065444744245203658493420010820988455509928705954197450360645235239541895996003345071163547897249489228390978035886810096578527802534475433070750290795901140954576388791303115969712512921148277920414935591453905017174270776722533580097228322161191777231311065965940962790387721278274387495859659394194060380401275590052368301915884107320249985309248431970794051892446127712961526667271065308040247321392632250177705461585828821725199227938743702101360996391836389451263763460463617647363972819914988098682879807558669972353895617493414193432472093985822141910638414553595009807933453795729883602343807812445222616370549802744081128401812580269349952117888634866134531867414775209787502333856304177301820252960441904223431429319196202464548316570992390993600487820199192989907072233802203113872874189220680546312287221126052820950103071087860017630734187855407640588103357643102191245443343380195710051179237149034613373447904198863158329592029791333604012262728107957447148671767120406254716966712471875329695176849751389285374133033796563213277099540765192677103702115098785346896585967772192091873964988256294661057110854913627288123740955556841435773936175114241616841389028740558556256752133815834855114105535901276502925112017979374820132074911074333568308433682292403812349906219238436325491642366672265321658742126721388071846907792860692528544379270526744002552549400345057025966954009796794115580294004742827322944981134685331495226472717386084746469121035472747486308084136560274210389514168087909286248643681309112473932883435927786185945221687261330109402932596820020032675980757037122820520945500667849913310564930245252835057620612561857643775088545436526870983697173560802240586037274871666257247640433665149938365138116316295409503827628874136542915045415782008896343877905274917558257584515317594909140766817410463702311170146713537487897307478765372877085255059400563049529498953321769622355625642414185024034569211674279554272181003199076070570468532499573299014596540254510756392264254111958406962487735381757716450448259105011637508652945767426906318133467720368647942652128147475729697831444835977005644637789136343706148956166565353649954516276524029927727088322593553050512529338901661630694076137458444967603828896280294219388861491976292665263282541779726190129982766531736873375284418534130503618726205703678068133578209772612696124977895381368122559295095279355644098620323186443484926519893969598658187605316798729758728923632661620592674829347337032664340518691796225401644406135170191074183071273109460946452637759370347158506679757642114151410721022554476433042550346153785555049354522637529564121995368594527645560311665328844410839706732652116909489950707605550320331565335804485448748052427199775961743870726693073098001530720568061967985476047449289341039914720905443044314584239465977304713763684622583357628787379814833751903158919045210381541726476158255888707752144675826229368788663007988162216414193865035306627003673521625399664341335523262930993385220356444075728368577864498783640286818187792910069826352767795905328649788177177184171810260598595381029354625347560415269559369487003037651621021521991995310255292698912031846872082391837467002796035544479920267008414049826312395621373499216365310157180646236013970631514901420407065740223381792633006586268991733157657255017166514102776163704258138304204566735149138752516866507059059206799917294214099069689716538260740555708920812631805582239951972193067867095566320517656474128667044288226126180895241453364594054243204146435335948799306737285245670601914773150685212603947573567685479509940827844121237405252205925263080361553159042630645181339246227930100957501450483094203148878416880570544789780669456742293668118370364350478788760801063772022266747249968131680525007076660974480733210133168142019114673130298790286303752108725124077450300909560363088400756597388409425855712211784086357727301321779826174207655247051862341549655438106737132862767479235476933449707990625612052682990631829224512645767967497944572264209154999049678960358339198064131155030499599288570649697474936702414077776125821933937731956503527241871865709710541018125725609027678464822141649796001170529405252837902749997753056103653704180980119886851033049778025299249434835169859248981454041292918162869568144555069557919668230985057213994859860122016499289794758214151761122688997091965884382980943635668704624423594781759404158416757616045859332373095135111809862546511770412343343994253195863907079366240000790614683910181497357290324110438497579864463497356406229558773436316190586360068877137947973678947681258907955580469249866437110321190792158718724070149060574791679786165571132878493837572469371880759942770841897414443486521658834228915418338481248959746804569466932099106770655847104272773711632672548604365333580005632448692621480709709600503774650031280824135595304905720988265023674717394226006212750785354481510343720809234224039548516275115302296788517387508937270324207334059602888184627018648352261567228085983163703262338859044064805758754064830777250460632511322020149454987503932572779193476255348445941809109833883252021092072245214503639603485331692351038298682625271200089916137986114589132911000147424421607858491824899717804267298028559011725059827650039625358060873377283358369907271004932285590398541743665363370228906478484600139013071940191419593442165179137802290188211776981267364120512605795524971882334199592712020807758196881571850674819189410826812144732330132854794848423066892049141048782900013691048107789121541266623735823020932540365441823994376230997416300110161846822007764465589598919031638312921025397598208283179445523376056147653634422696199950356447478120357883505929782374396693956984633083080309228775501017441535978201879604832899385838877951295713005536649301076955014548616882242547036524726826536637920424286400242418061187238515172476288368215089560025390267476548965858252572846301326676491244549051231247126734558758997192823707508434323561201750768689506615511906192011105671807177235176621147479024520134858317337262757366010826812300349071151866135064544624296631166545109984998451958639027453004992409407653182486771844919841724739695288772941854811058544685853391653399044020354933611186424546407222489801628902200225369192326386820976642694835245544596690898446689140246756125118820857307140819318169754232955137675350185781985233563751934172152052262468202975776724501090371556575432945512075771819525789749288981189267062936111184097771872247512987765935443448351844462395595542463537461303891010334696133024466740068827353264051615650322796196578535677454213968130327564870373418461796602701048712377001656045734841669231217885290587957828096129576446432381256146483341193045940106295661128421788409740463427987270665438334720263021396796857135852977052821713236983810234606188841120151748974378917863055896137606124251223334588776050039723334166522187813022040811108060650208570561490332501905903624077812766619480007418057102744568920549241940402988973932733000501583042519626703811632976587480473715229005694369928139303278220054234558972622122424440208451300829800793719875812391088309422928255092169092043907274158776378684144018195936784226406402786882562553404520209221796018311486579029784977254358245815913161846197764272131864257806835578949152041898816728096860473225698880257027938413276123843577041354491645669135942113100921653449231776762601916692180680641562773901604661798118178385661905814497072768429141135926243528700758668513854636402181611343751787071405519292504363027653941773166811253638609061113475167797294256044971050064029122989206859767746504724423853468686171681475045832115794687804799247732269007131530182146016112066361445647499621901872454153169681663736603766025940916815237482397391085282348818570961435012526022310847765203413445753477304311982002722916313128605891081667927295235472577728097873470744440983475577722306675143924428781124889774834768080498096895248696546126240403176476659632313404830054562944376784871972436511008371176606697005997305274137615871450543581585784585245525056531710030012978672382592729139208989566899348647807940131505895525641566307380650840156957452107396569066548230052945704467665311211027312172217749357553635197269041383571808298902152608892272385729120139940084438739771474447266672414453187255480108523683344236304171154500182569633426543772233056040273843914247761947754460192776954449539939157413395754694905712477993429242381824832097484732078862369298524907297327599389231159243379729221077130206145499171654296359533743703526573505290710147493032741482830097918571753829503858101423105613941487569492998614470305489757186410998223046615026935457051019363502353103185939080945991339616028928884576370914824024053247022242829812703291705902848072159726469993576305724886737252410546255081192829592831735685324666679999526793777428006961106230009131258949938691567367953056910394171718339840117330123777330734479553033440786917624756357528878801982077999234679021272975518491764019871593130008096523646294930468979927483582674306902295079944637384999907902239113996909535921365886652706696143967063931027291052194824868439382963624950471009430690335431636181460761829550433216093457373227199566063351752165321162051040379609295960498517629822628004078094379604511760494765537418856172346699361111856356872066550216524184320175999213163335951561714009027320745499825435277332351943000427760688343398996523749944218104830123740111895223371072199421439256171743152381623129661615579754163235489561051925552401424927688853411171828525839358525057395458003966439578890103029192176221106113819279226754735512338606126129856650730843559792481566562358269302734002511321839613409383171118897574213217333720523780459871713881025834742756953022840039267484225196576800275638476423898729859620979130103216480340650130717378236795470897832047435661302842297915833743370791583728901054693265499183058853891474907158963112717575456516422631502731601168654947633235733952539158801413957569586553265746379005711613402779456168039376756021959322218360908586835982266902873528702908582544547729535872589407056079951075243123686548994567106591605492303771486500249333983794317570940647896420593201190686899751466200592406554080973840540167138034775430832621704828052839178652980129454130746848365065419851285003385504828170470602761023445076545527256197242315705193532595240862198361648713573146580766001313922929138542595532692687120429311438160413159921818438395953298582614032337888723029638875209652404512094443653232716794500482849745654123484512924059096135000738633498871722702216826047245419952829828388601462166213778620139685776477230417085093192113613369906224714024482465795083561523814711316686925449892926170647780720866950251754825408669974573516347251901657327403394515984851290751092872277118939769467167116788653671306790524216082508808434769910646165704775598725876273762204395838426520629724113572866830249320698723658369377705316456189549668331498551921887911713864759093689249826342546382514081005677732490854087150622962251532894183979564438267252925201978463073471039479485388296883691506744507509700890572896191014482917519056597995440085759070776185727653268189335207313768537921140079532951719785790439545340446810571788454392914827977542282963133617804596756653598609994382416431230001149385399086018433085094875790385337708034707717487991181788991232790957702942042406452547933468912567677338806667025388486123773717457524962368748750646313917013351970245640017498729325607922015287680748005440784684979485401361328053504224170483535290474365065614076184090607206967803333301494931854689628726170559746960862463793163814332584278825674067523001031426850669828947979386400293139064030981430997623928491967988026447702841934307217421376385002212803155073926348449887575808799876332174902373290169082513323795807471884408507979554763390567188257051456172226983486141953169224664958059074301890935824224804271297995056916717844712783749823673888636083794888185208060680539393048738862956572061842214420839020160106457249132271736195650888978438601460578304837058517671921117617200679860212189949702447780024474424075314006433857300005516775448366534970503986554071893046979335342769747684092396405627579719919886973134483866140262587155841405562719920019576306860349686104601923171276138941289261430698036551841315861247188953251955105705853768272564661625638190863107013870213108735794834439990013575087724044864160428464095164090509352805641578801907819566997876255446040348157348921873624369558659947091138453707453442441347687791067514131076645668932820499304699412132867265716450586463374711965777909499704877749716189450051348482557316665588273904379859805632324606016036355292744240379059716955138418770312568540183275161078032814046159432110436553600520756161344822619966842357923391412514799346333161529764533990355590331158199814126031737382097435194572775057935465348402849350482970828546915403472867101005206119143328811462488056061001064497765171378899115507337627745315237733211303759602789464522112006099681648738007173557328183195306180471095459411686118101079475979671095905489918512926330394921856025685414608850198288350243235521275814947052993091500839489288554767056537126071081922715973105180773297368653760079318008212964501261340817541024512147998535431676364102320481484339964662176197325546785938728210912331599871252549499630107347885183945402887485226814598626916862212418878525826720550571043222018651158999428978751271019236641014832672188824094050217599933721511629282722715074435284509636547863676877009010702767274975065034130283735763049188766177141648892678221817080014273469695677846647822291555877547164442937367918485614267463084052768638711344296169886079714681210788533634582798919294289560862894973080512986353699743544832697439963666200233746855082347413359998645001055695934131025048574095918056390925388611474735724674363907190633331535348799746441579594113943683207927742985529919840092909499865533751914748240850994348382465995883851102204728981940050685054468091317915845114991640528989381065344292657834960217938267765027521282500658614989367720636537797246853507495040123343034911395140571696282194520619258571771462531139473593708803297570120651813333177827773543384290129551493089232431030208338390021393868226801224411358683043798510649322780841982127339301151941894103976366000288479832857201174769299333933177715104760470649894509121009906888845363168768257503591138809613638462217979034576625882199323117335301356253289819583672127213797711062594648916164410865458303589509250004773533400072661968614034731681066908055828857196329517489054587646592660963851666189421450690106756136525459878193901503633326245465965291915483167315049027010507833676367660737050570006471816722490241279192179430710163126356110593349699040127818772361215804577603079281530957221869838402509458515453338921195594606215927616452124791315534487818789803247126628248025266050345589646758588673976563492871504872963937840772073967376006225881524291463835591561564825318947779369210427088535263945110974376916398767794922345354943737376922531020701283680095114430672973526792521424457160634866874119532890295532271164755245326441356485448186689602184031756526022429079330263588331606743239313074899391166464943831350339959356181686075793452462498429618955117975271309922792304752981772561719290912512085275153492460075498014092487022410692081147106956433891596060540685968445381285587121218641203985844194493821696978168298410283717709584588667597757004073540231665178624305864331337053647959661353388200387961976761754791521531760507775555039918139951588003669657532266410050641548280124012445344671257460350622702519049634779880329475899305747193367485793417687737453532677032830589997416743215546723452804018065283368547071456238447027844568002368418057170113192167643832857172252693906990539775627517150910205608941357657161901381272122974941128506543969946115935588127101102962212030921775578790725603840459722089058422156216713646636997294546946984234058047520514919500766004430631467793132284698123522457854518537771234943856319704266450019412777370996600366465061474221166544049069414754256168318010751643808401297404484664055104922617913444428871955450060537593007477901376690398894702910728566503286034159413759895035922081184401089668725672279462290905937366514429061693771350446389984678123233492264681277472593321384418549793246203734234097285740790122586984768315448808109365149076578458801957267003702650233034258799058430380917814710665596539912072489795377133195307857137265158713878202816580976706521649863178168274964365222333107914470076924527489050060541424662762262689289826659413675862392637195560651735737586062074594959370697404994073591418820541505877509125807194370760547389690743021540025207261951880480336995331331508072745954958659777223312569906144722651264381637518811555241918141735247839109360936395416547489627043762000331660053705579065665584095822409526044366192052266530849421994530735469844995786214284141135537748714000420447028032690670283184302158708827690178308891720753284233661434194141684198573482259441559914801271334616795297393446904118352343509678334163927838708268413919974456729199525584685964872605527457435472470229769139469096503848329655806405343948555978390833403438788518482569737399829923982119012627494432954855004094020137684616466475918837823104063110922474230967402968564631968830137339418520683544614587208949260945034827523803761902660822299965322524980843324971054996607893371233078657411106663077389285467649148099719935177871550741049770968828777622697144815160424441089541469997404657343451370927296961075566690359421185075152105078093975802909955268692674484806866210604375302038071411829401293831113182047695337937433936992551522718638966740599298588835798555894180064055712946026017494644975074736447412589062492838313355707087183372739980048521410181528049931593719940347306823179321734973049489713525536561010319613519572361671457406253917431416784539067947675293332456159609315159814678357447889266012966772562012070961479507121662992049955747907327324515190790759086495392910655015384842123146887370869330859746935377298724146441300679293144259809039821699496476252960647050868867780201473042992534592955083260047110198887597428466895046643850417649720889209220665118719538344658091266467934372836164320870744933519481225561174196639787451433549638744386569176383093711541917088821492212097966186364095161258652781415724401428159609399968721369112836110765181698616231434256343736681359613509812459388455240780712937967079925854812034292230574072543763035032527451102663605351894644725607417188704089274633136243324221717521983078436680449080131406980473592222796942377991020068350113161290512715491849464491096526654011695863471631491696435115172329738834757560566507825940607394453975850872321646273235382807246165736773910850905012317040033253561841889163431246204197687667032196162685781824145210658842248775880638394277907518871762920113632861608014174674697800350509151522647030602995796511049081441112890720047298642193438361125036713585132158311926183297830201047062352108272552048411157770280130487840804842726119839876929892065811126576415852261537034158765357900782392164995388380647799035841227728378815607806810075439888001565374335011326983721962497466665651381950372062673403134593140297674826049941765554989891575224812841036488759701635897529941295780237476021169792288938507724949669018021711809142836443443195579451170146182011450862818609579213940330578787571017752102885695474627108954658255481721590713204467178476154483547315975828496233672848386952562912064936430698189987162509566650026969046812434345967988282790008536191868130559021872293863946745233318577916933276287297245445718515683212281192469557644736261024133513893332904088276482715147426521280163330680410535106985934324748103143633872829701592747134598394820366667162205178306848798011628932607675145206130579899472435845716320520718755382493929021488687934406734860399669238713344996102578114438441458785839325149866981495025001495819113756434368540658469495558134619134808441501821986746192079417354443666000173285651357958555736557052699026588508278072074855236444921984144748148796959691696068806075684993994841357829408534318556509768153208243863743048168297763673743409542840796368847523920605191897719109765743196778660925145704254432804709939345693178539556219183532128353388976554197594468302526575277024503874678346350793887812984774551416822656054649980717698145494537384194728307325837005377097138130239069937485136014630763786919065846793135306682791048645558886330620177740670850267151018406775021719875163698705464317111825488551237159810868288269490121373237109513753138432602540650085172646736193959512542521782204917276422647404490391503288209420014200959102849648694914042540097252882267671724528882092835023074189834354919060412686470418838576092540742917656698073987044631857290497892523395397469119043184311525145795575600287275553562547868704188945679960244709863102148355952370301879774663683777757929393282072531530005982427980038176381154711003859477314583526505683886628340661196759509756110945259284638760400411246893005211319895652083101025504992641620650503669005240100616807977397423741370953369901860232130775657454988158047131361643536388559016754139261249594019322990600785238029014562702222449267366552013198073017107876230577483101428296432044467121751696567769093302393595856533678323782888804976682430458109808155274797704230129462630551882305402160741912952203920913697332195768815477133574750873744642799527815543421315200072132268614911335262307165020332270911595431235784966161863535847880818936905509716730473095034608984184532064684315127166703396386844261229114915173485093009349952964715135301830916754291451094426963220640485166687618896016474071449317392039033048422452871638422685704625340872422664549907661301840544622571024825791607789517587210664777461386557528218166244155463374586362005659134925590124257764514136562821062769441018075651699034404689012836682490477087964181308332517201030023007006694393543716067761208883495462741725215387020994682739500960048584053655757910384936160207046922009359018148568985938732118011307037333293901548809783859700330633772590930000856538775662838819510996102765205232581372133050306322069242736522765841014062111511183919896696620956735815140627919932507424140138499157307930165111186109336693247394863759849138753946933938119007905712358515113375374892468832633026994971930977383728601991558109456534309084245016020826147269516198192417584479730875698784940215678727408539880890663214623689193374177178412943723210364564919018428980221043934187220702657558035780362831483752636633088300492192145645054750191618464791573634415322445610642308181545506435526640671938095550517070713129948691842631254042878657141941997127498249261017360561854413946737090428357561491742284305037573274449298509034637308026702244154451182633898234517859185488822521471916891639609715862257189112780878237609032488282898573227958474995670565539306045654421556149212312458646442415142553709267605567406404474270377433249844191845929779207844929366848697087643771099406653841547151808347265662393945799589924585239058251946937516062672349395900437932067986814994177487896709177154628911094728390712418831744337858748433168414528168984793535958830990760345096076544141573937742348389243581064062068288440490035586865760401825649939566351108904025191714487633020446220590228053866595472557622072207824013191297771568845078409888258235174724062415485830170253324797165571352415584963876868981137562760969084675315862527713964042459695429006800455658211023251838805163202512714170749634818877663676765261096329696310777654416276242926389794110911425057841778940327985330158355142922904831823320158124659765431598938138508251597973468028320859586101512191027594528294907981791811308387602620064230883408642145562106475904629963381568012458923931358057136076525276521147164193775105861511784906165543573301471324995844144731447013672845809699231177044243665023799238584573303467183962377576012664756068718309052636917803214401094373693210049017497287745268208400967770942344466074607979761521426282470398269954869147870584436691130451200390382611334016684959377426191084094957513468943561416657692028737456914791548491979918072135049193633383082618437394384247251755351215484098947157531776710957636605680714120527345732861175228849014081796878013022572478623834686126969419102095589855101301415382375082162687311481792814026751552778620684194705558483125587755783067744522293072283970663480851830730422421773270349728834455960830356500795123228343477490675642432108307553699973081513048956909919955923356216335443526850970786722148172175112291433908043713412031972314192525237887114465221473126773235397837810155642862389787804150312385959229119843559341645877206122710471550706056725335888867535145714197259364348252143299508944774015261989207897596938038840472716778704415742829353101279882743423231374577928723135960134759432749060073703575856489731540823989852593971946019871895733490184099590611254652424350486999522034090240652974868602392627131766024019931249763702540242076023441020718358021466571474823028261218285928739898772629416725433017176551803895336051002844971883155046640186884795526906372336100759734245091124955687619698834248341722577846069461990619046049648186568640982523672515268594499110510612711832331759717770931960712943738485572641809705671011956656010664576916037039449225853188100838424372103698897865284265770441265110374237231321215738489811515461207881974925980859490483622076038849402340647056606983584020784222063342032480358744336143115466232226608851331375254362355404572357139721197637541963683601296049267741722209517952215449982891607748793712564100865092020311545722397943989505801173314764055910193834901982126868063974899169303976972375369015705936493621022587339481433237024595654688499553228635023050024285114646337862968286980066960382974398302191247524611464351466173933648557252117342208183432630334571414359371688777943478313137276985707093933960996413259898626263529096891914851199331856548822672787191255187642807154025298299561512344102452256526591396204893073104835059513401248666601936908510126515798088891217222030571062769642649002071498322597979207353779232260099098646913301367948506332593798011734991895563314524465013113753881730843269235402075908585507213419940541961750052605165238806289121970410624928049201687823728529909312049827467321950215905161474129049156815686824721371795551255708587400069546828400254746845112701376194006825458161791306996271705320159457337796753605601318298455245263200950602605838773554518186950466202016554467554707171051600658798275300845978102412308874342218293726268325715472098754856016672255528718199579095202400618918337024060296140023207938307580124924242259618211869033587210745242765297251025258246505573629188203805882005980509302062028073937400427758314178062419822621572064293755087622516749804552842058207053132971619901384817226507483563573558327356154720583421255185905319138860757580760950704228583087806281283321212405802475280356566875081478120283381400666874446314718378836248770949853294752330781690443245397798430320746963924113229247612304616355422275781958608663853276873056802546545020533310378954327062253578721301344491477007822491542904648296771689604787763394384238523043208247021947298910276358856614630855822857460766371372770791301676064223628236757708615538782490158631713035918704111466155062585665151698828721961321673662470636505636317430557497160241642569013501266266876805473516837069905369514040840221776475471167716790372052386088850157839897722851977831314053223017892877892758182294349721347998480769971700033736336662961743139021324771324153560940727371530274932381259379425349808449728485799562978734217239478401588747989221119612212778120790237824303521052011054984612409067367551906044159598486533387099343578051174077534544375164306757816407496107407190587694922854007809306657309767574582956955953793702730346129682047413221085022041208257403926309436149696586440007735564799826438507219047863660691064201324740135055879997640354272704572295162395723972897474133113269140076591320562612757267283048721605122263240869631744777632726940725820457718818766873735669701332058195668378494433767319805666538125861433676314706743631696992973894566409312198479606162423182178413828093496403070265070646730964626212176172744585056868451522078312829318719468833609642670581238577066457851209847326077881692580526517885750736699194584030079792226095276857735970418580775511028877989396477517064723343388814476738815471228940206043735356241996663328586902627798832721283139117567573701726742168423511393014834702021371179238295942277468801864725986732421324884072173645053367338464362296639082507558937055195841789283038131465063220771983876230395407362227785097445512605086896961743924998608879834247504826299732705328749395984735117161663278511024919414940703628896892401052175855257007655647826566110874098513350238482651167377444960606977407368396934882949366389436669187945470705334590038881777530422453106122381615139642876512423615925087254674396811535091938431105405098005682566710946132725431193288602129939995811383179616137126905482990059448168161713063394066172468295812597589140325971605974054407216112952468969504428751916275188164125436123043805118184527229406700952861398232058559137801955482248864276105285812128117379325804361276009775742108685830047126368687371470845159963128591485238992306641506156214547573171836465343780084368501002960953465958649102703795209884946146876380293644966199762472741670027735105426500246332494028525428728140747328408062035627610725539492891023904321791504377674963353548426810375534025100392525811034297887272894846548801384724548087270557316218224793278995430781776684225671661792161022486825151829979260549746176810166545689323180396791780619009918944526183412815904132143325818561202385904624737325428305568579565483097706155110836816576176439660373906949244104133895133022226175636913580517659252056784110715609405336303814279495358972128796304114577588581314112088968411187245091473266102092151094888646694123075147225131617673932650441275585174614545376734625693032881601459192722914013581982722736596638733034534470883711104937362542311397338776597108781967534258573115553512362460557981221280314254805542352393494882381493403791159594389262669380087151902781531910112630064196147323278804117534117019124584561406273154476480157223207741400245871960676520278782552375819085203384187986182500045126957756234866398291524638967909011375857761222426828749949294580691949254710832340247925630406971364792425147614572185760063774917640146007414364753493577365614637754591460045492006895178658487324033802019454024493315847090184876816112935352665426200995415214715453633335345504088105774760917780816645187390052293635459531660420979423271444839439415164601779978263675563897984718370161529420359790935062561849689195964276799679616437765809496297601059503367260480784090549614845999810628624758930405703912026690116208593064100394431297241740061163497740384898707554157993796938929536620757904962292337128791083124912075610044870696180278524778579408892957280825866414325231017547703532557776110748718578730532257633928128781615982094533828971798732652668891930402030015152334490275205646620206674953578579734278680712880077800999228037240271688136025545883689672102445207063202889373695978520815965189829789811281210488366364203976941168624173837066906673449065957260314830779327228030918218426051080347633947632088175846794609153344815978528528099620250233069440113243293425441285678447969131067138390749023851179079117528951878730511164130626195488323594982171405372270459469591532176684314597980422812425107272197063042469865192146781593297376239570797395932801908779293553005491495799359501063186006394528631374064891562318646686404105982479602131347358230182632052460109174970779735435499949692088421492687291029932277981894064255394295694517582338687585354276851312816537043130826770948517851130911845605595542074227163083941630053275507292127578537636302057826596531360415846587878940160732953063659805469619141632301555107960820755586345243259601717086469188164648599386456789105694294966488764004381034665751492082221089218367545296088834429756775443708073150817636807770613007225143453863107501122843065104385677501994600951611577362938428857878814337895526307410364963110862087474633371523656741354344626447137661006891938665022963645604694846974008045745445645693811657670332998394019189317585254161664322498527355687529252607661789327796315370064568745771933191970041984504040704417254034139271080388424478613013974365770448485314330032190065057399259003700178673465788563269706560232511516444533078104582764048406637831470103653713107267157714519994360911877419641726884445865635993407610070238343391749759041688927974438212750643257144722306160158309824611205536321717083212191174927584364605863769720930932232021722753401457482537196998408615032814037105285995595193062210630313264325918929390743337800924750075044648401524142102336310671928855434060444792140560314725774810376153040511216855996461106207742912851535544263186561113090326931772618544843306925671250842114894677322116023096094453495081361870576472905170802624538713792781023091448983703861045208726950534651883880573890184648619908086336557086798503010838790434855465528785463484222183998319064604546503047884907574114645929966457045051119206799595346428606101629267560236460441969395960734339303869120458769377812338110605541210108225043973942908838090687393266278045558815453399424577115237404655892441503427372244974050523428190413605813659283439018649155366058525339578594763981577756904456036045742446729348452284022503836528238296966218908874455319266785609145172199055709650618501578337078687917276206262884714433758713457761998871247665377938296445489667109375843483000110580155335831768605541965100127131252822644757646130765802802815100726006202015041243370610963646926194270595056820003437016403956144899210250453363512206506921921596295517804422805395385986827566691936000494709369384447224229363285457049388062821429875065864564865468372702979143694101439410465251936559449425022888467342018877909410449317504576791634327253423257857650011696295523040285214935408634976449048747789806818914290019658812844774067178001935418712501680948605125037977752696935826283304893326366814621571820372218380436341652146491129848221633845435025925894707300983524298954833072480012034458394185589246971423640911439494157770971171792789660527766279017127861387321657996745298191410993899116948078928941996361008901961415771091595371625105487301442993798947852591193704737106466204559669023239599609321700984696419734815137324864352144802627533410763424038787680767653255159941898310060304654100504957961699654843630438937345557378614300638339334101281346442632362527518830508778097385105616986357110431855268484953282741321437540624683507763874442711497769926572720948002164598821045800336994784673999228992202405370755487782010068521850266260154145461990676490395609887587114200254653917429652701026578414316535578418540136275224182384652759305582766493945208877984795221706340503632683503930574974815508718898532384784578030025938000170243848198814464227734305391548786869881213445705083035001306249921579968261227165549762374593236043535887134234945218609060596118836342675616222289652696204508892916904510045372661033934380266513902332622187637415612167706082117552165836285341993400318084317631265671366182775089875546275652021865121109432483966763358526692567648712996240870471843647307997668788270201979861799578560605067530796549895503340612621074136903159841256984349581768570734852406381657768062798643753049391579193504573621366556275585534145491622030743702977081377087410961488723851926362795311961875520077584150741268474293779824214841657091300915222654808037747505274486572433633020359530843769288078727608355301375957227467136848744514803900297657328866300943133999604436472918611297161055954138452599151138461351692589437232363857224797682456978750742880006039192837302505729090570057083759930030195884363570427589326676079616693131305600670382237154089711366904071187357694082296238370781080107453391463641566946616402230011425590654734080715567547603383219126549236023487971279609958281303178122409919940763800361086111281579501021732722584081688810153663653888803114639395686245181124996270770323358292542188571027111453780514416169703387966057400983811939847532054983298285478929380767573023970031339346084021097042271738539461752048623492372128438561202044112410841557648723479507515355031421528140324717537554991401262124294479091017791190125900650602490817354425257135375052152659164113978312530202052839062050657452065930678825872799482753838391659997527771204651986280291107200129117852939690696583306513443606542238584241624162017602035998034679477129270101959145962321673349161566271438693365181765492131578834607273148030961300201262407719881378692572301674753453316877585709395522466096232817671497289291737597935524030412117471235804608391043962287129985758779333670127969541410997605315311358668522569749094489609704223988700462241230021711972662186372916485159153330369830800770908941493153594817002680586430871536523478212038291989363736565847864283282765747987316848206522801322392039828509938829407223779951065817018149753308232100884158641570762772857773847516867257404483492507750121833031027618049256329630360186880240293280432512354827815554418490657479816081444575550832128950421402183472140294173887236406003908480005257970145934459744206092677883316193992033260452320782502970057255777760923594211508812404376584696093947569961624321014332598466273813205180776334497616567486475665225339481008523078177883749303346495402676436809755843286140135016015503211345094585376615097880056157871296020451632458763271723776805028321011078361284991846761177096492642265730444869572703552128429515147755011893379639379732647925850779795858006025927057696785493107341692429274959023276623922069407008215327365702580130586875450406408922051813273021496816893531275763268928631762473352618916383724372405754380621343215405329594826520042693902893215430671709552681183661004135690051615232346731860785714813371154821026112697516355599327849935772215657283470756597028928093007566920630454222876145493838860370719200735356780057240330973434435382555980686600421815056716456641826528107991194277673831245208131356869483870501827486076085588876777924214802929005044860350057201960565533968546907221374656051592220292834355662015640669852211228903085750843593326218439592477479134480052517150621248252128369785436893276203152383891695660978789599317009491232821957159707932845068564269523743855305075373342852403568350053754167364493953660071226257803720560693743065258496482178068486003280186393125137243461265712669890174257873961395117285265352161462094466330245359345238967464241370414187790262165926825825720667078989718249087197869683928042442010072392097419997713771859415864787289524061048938007118080683338595979658284087560628881085294285468858531851910696670409526560728746752996269491360816640379120995432126928735056565574190567757517404054178534520618629392846576800903185779157417832782565678360428400952952800693734713585006761343793282512672920633094571057190106994336377334941875469104598814650218559466453915047322719865038055117154568231297499048886027959146229896939433155607537387280322535370227060991241453572213896754385387677527701369844241220829924828112237488917369516865401568386578188417306468172578149064124169513650891167594154461928953338914766020294073728120829067926290221579535708758475735545190671878118403242754860014334909133884172546909405276304653533784154322767459697582923901533037081598237763238645708715940361583786592594525404916994854084360038663489184962908342607389072410289603723436695707396770218546877314149285215607393261952804802381387857337525692159545337233788258463185878093148160794783448788890985803308876683173613413080395260574870128465915925172020318420149156438263508691288920919956411837650059300384009352945382728859949062623833585897996347178166566982747388208328268377504757657365846032483457594410459463355928600448753677275216483859348761796293754691835075591475120825522983435487911169984928948433343900480388092057589569336611696763205488871836562865945769847254631675889034624522858311988002113091364825428993367386480406392199304548817021965639335672928556567084258400277868431638631207547360917945659907729494805276266394669734001819166630788477937143252245775764851748979789058652528665226756896741464018965184711823397247619221693305583513791764524352972286152042107580787438604591887338262634335369659079769468136169979576960463546155149341522982078333898202201922054474639663637952011166464597905951792922560976068315828896717039565418434558585426273737886599290922388897178394494267322883323461729078301922997705110391257935131888978394049075357158528061922191559468956805738397515071648245337240933178709794575156437101629352695330108528363898623612937526772621108261339563115927620141096504567427565941538456698538127678398592527582559677068750771523286364317697422491105282723562243384381161734865255341950442938464811517700643528844870902825217270972023350079980813202801630199968757505839067472975588168075237831786447005354632614029046093885851323404740494402767551811775332116271043617860888148495664238249423628902404528807467712890271960026293093012462116657359174472754099805842611231456318731213369655934721803995672369254422613761378470132871501396643812068634795928499703951814106466177836177984145971371624770930815012738521860303942587785457871068979558098744827460414636763170565811530416731243203080046136017205305359819030152956432255205088062025228562106856158321206487263623282302778712464401765395046392212166579617695089657336549958366639690513811659291747255834026654707501423694223473031588058252820733146632008669300351661262184746079832844447741244228249028334266452388491020332493089231813717119295967587809825113175759638096999920802555058346260251565925245858750193308098960964523089860379723797338589908239676688236153114762263429126069162691871774823355419954638535738212312096028229397925710300857678220495976798356873751747424862923389290314322593193792213801496793416419779153889049179102598711174690173899387004575526387803813075197631226805022255470848477445209146345418373711237864462171197754629957606885314827619880365875116497847163517494427187075178447956777993418520826730921002603536403673312058517235241968811442964579313487738215988821195502504009814115825389898995419947467019512585117702488557767662400497849617620267552613870943254478233940919532905807978500146589080805441955746609322217641810110649569463080883577239427618191729951919681429811673443454540139539494481609086086243780729339678991624546334894481856849545950197591475839598220190206279089397346516278771437003199213141544576558152852619030581726699842179541308131767016303183585766897581651819287456503692512767153418913880340527116287554508467421805561222607485988960208271933050885423907644658976222023869637302613764791605700449105888693757975998967297817367254573254753994903625052921521596477788760657497498533317809373240689653792595527026978644340353752622200641466288367524630891353084521457072907495283672187911395530163275036520252587468794494499306614474706094503762676135487693899134896906017580552233905119108326684842189656129744218144688229816532549320702259472920253844168596762849709897105157076686848936199976901229799757353763540701467363106866803155050710659560714212010370516417935235656798398625072939164742379695591457453524595658177157930316462831391251088992993268828520415633984039963166253070038909301202025018364697127928638042416803233748196903501307937872669294248787431623111417237970239705443875145469523358290134687010763313120205799769358807915686398437597334550029150443329725965925866719093100672957865902361705253460911417981508076839342695008643334790058284319850346248920565720945679265723148068126333621093142250554883296071721849362721932922372706754106500859206610716803559321032679473736823327393946692605076032455680969370501047560126498636629283973799576787407156241832829737005732605215203923621688481344586498111855647171079795805278042544596551722581966415638433620553815051274098206299437190874766125507300529074950677453265512322196473177815911637320748811025833855219967926004067031148169410939607763310843854735796423990776237551800741437187398917187094089982167909664240519959067979070908815017027603731401563557237096840393485926538357480330668501418142786037720261995794649256764026891582254151136661357914259264760077669607955362553717160245381756978814439700822762785416450616578371339390955589886379548724518711597805533705922974325953758811448509848247597952148830090358632214812115018355786122009455936808356483312312680087058686129456609228869695528471749715533158658014997062356092507073281345303591440044396648631006983584962818187520668976317578310353115135791037095862868071920671177866220017552980515267255234933100153814167999429212335203120071171478984476435958721120386686278539488853455253460083263899642627579820816892475600313647805190063853327598719274116683187358712883545416073854601432390937952281104955573002716535646553491464941653348227846007153690446719966981058698690305401472904166912236313172021728028452343773418782314243715503405919529165277462585431054210318904156330179761764976213607636886206589209775261058882231245978981568217665493813253236972348133979389945343307152936346333263657748307414605280899599666514465874363954650994478259418447432795429110437784887501440995280045686111201616948743466920856245328378883304486492003585627586678348618162855889459539359288432319213846935591344144406668101404151246272309042448253341384467196932661126291250252310157871503161268165425667873370170044556767647536386481826778223408163789134631258619693880262555986255638784094672351928061985355308715409998123819217708887581677732256433240796941332643617841030940100928395063248572622157382326385670302227987191662065273319617779320543611520931054491198716360802406472139414280584438389784922178439773993066289660392337962300856653786306924280820165941812600115846253908363031813899839929454112979547798959719315724034469242570419930303110365752963753820391229140606900925159342455859606453678821324866113964716391951399967974356415063304114588731562760662975463532108069960746885456635289752464269764447524717919680279956162369988228293211655572499842239784802172079100041573820360097344809137540260620013785560414547288893733556777059519037461036837708219374591141425765762281843529699370690386629324756587513901169055883451430133356337593752930005351023765526961969517558668073809881752990487690910122453052389542263972291260383710018931935757979376624720950976181901634865636249579471044969497563685228921387744343315519313094067105539018214040390424459562179575525176181669918598071988233411655819104551453621094166522678447881797105827466967391728667440539045551542057798358417435163502561346800564411346278054219606145301877780852812412446510451147719212549222003070481200556107010666143801508622054501683203866908296070978883366166337713776642805461561690291511075853980977208829882077208207254198874354338662924618672576502800513406031847331131057254827952899737725101118099081735007738107294260663747672619760373799432766959053598441013000891979752514925159116788723458298792411991725556103968763205975860758363979041367348556537942538878329732461145472697316078793464210927550890800433587374560081735110809884265204468634091059773387426360488706669734017002542279161108876114323545578010615016293650719736291565588334764200832976385832231085733602344435503746938764009387280484193373891999757541614151576059710067418740519483552882948451895409248806158430590449580033646896984251806139152482602577310698856867894944302069240695196719777274926127306018661259811930774383193169619002369325613659207885548170956252123966014474118609174392790903112781141277270037852130276112897959176356616088925016454290478981163873906057990849570442432838237630220955874669059228655935712347946784289410200213085297241368249808551674202961384372111833593949776090721164032187705013106481395455395346279527527280738978941406876800190232893007659466929772145549964128403685596371074585148852304217470905434605627368160905697881825251384501276063492560602967140396261092521589930991166841362746205789688268826349092335702582955289309075759405261321011570830427656073294234109688729210809201141120641287137347661256131933075561802763778611853347135610373809194441089079410026468704146306119150196091235603024849775629395247240654291658180725960100766416869784316126041790741858443008161536275550070998155407282592767750453199057857836716865426841754636740520904172727375396022074485510277951194662522231576035308256787759441483648662551259970574999816020940550614949408374978926512551684128195399718184058876042179262301524385219886362223355464993530215654721824963654297883276047798795497206379850607638687504204082905255645213546319587573248603650200337968454388864951931157936560105137424821668427636712868350017387424312685188979849163260149786980553376024337483795543288618465319639989426166376545967041936194926650156690029637092616872243032901029837695028994056330572897471339240951381842316216727927984627392843377540536143398892139122541036285329984100920402209381624062625251057549718862769243335196544010979004687022032981873504796870731450899689097260591961298548883764644490952478848353685685790053648827990992188956153195061564790531213469759358846187629040239850047010285671454450862939212980009139983149216367760206221644296260104109579309323640607317810327251306790184390528034733558911219806881666843697537237056264516716786414231601509039121100468972646424115614423062910561036355550105932723783176367626447301555045936991857067763714759388446237789597655379380214550988346134237360667793211803431919520941271722021437918978518462881212833311651764564912992226065349364908572232067152260921684998083662659852376728152066531474358283560430951321854886600607502769118971111949604118951518837050467998702982373163140585446126253170797240707219877073114032790884671578941854383631313933741731030918741151020046779227407080711851663568022951945056452601877704320127551793034905949857777187961581960343271168967823578336349280252573916900246209076639155781407615210977016833660062595513836253463964113091800097496952800143274773975323097513898150242754824497833507679105853473675852241501924973722530484643942100884353707519684644307996004156375187715698297950316487447384192281815496363972109736914335042739505694251178373822989380136299459852150724881303825544844548533542147970469319602674743865984644370023508980798779868604265035823349508741251973850212680799853726744679010158343382565822696025382553636610698158408059878256990469361478255720936641544299177195860477896260340631652456534233467304469047899633702032127060787748484349892718822001359086757627534487174296118305355493926759703292478724564940663019096973015951646900794825475506967828859280892930517703300708598293141869267532665197833652640609522074379368629561446578153510536543408032011763336608121845747607637626910863370259530555531663419422577767005145131487448474201917187799818276420909892145502945559045878373188819749248026674673457013086758450236365142173229988687933634953725744579972000862468497625525542544644876766235432642678187452037194287676487003065681469850356662227916456524092871522808462991863226361354317227501339069252619648225248012684836841909747382341768161278707717967646323421206405158784727592386852563494378997793144038564470659250986733995376385152517217443361331509832544486827823042527203962323810014537616144183628628896860670181522328110429018887235312845091634720364961717813139140255556901884703010997617536136281472532547406228349421581326187930108255488865683634953620495083792919472271143581289250562899963435018594273335163161046883129209512535666187822987219440315311938880936361378990431931853191222067762400321941505717830622412757985227733203185245499514152191272918988187504430164455156720658578077405599073329907773571321687305501644892488556338760212729693191104203648741878704088718765106148073683954541226210855282297089291313421935108777786778748585472346300138956741467367029919474897662371367391428960147794445885649997074585229488916936487771410806286966013012632467461846057952878851678668566097123581300441253499267291270312674295880113418982865552402734068713663492362497106076360899093951497741933161211060942858109250259146364522266997606984907776147093928029823299453698041890714700617636341447289525713122061269190063801967473456191329871705909375544366343942865273256469511900092365216487228062412226182629847552191805689321613285158050701361677659118154853048395083823136597273065019225042855348215008000433119196410688816584939747842233209517856405560083842737291808424889702188482740623564302158656048772519265109065739490436881404412769043044600905638774393841603350227115869656594926651248293518905742399490850799582520019308496864476958288782693910077766752635138484416469824220629847335615712865300770765325597973680676524346589884098881036894526720594776633992045182573195070220414988668803414392575018073714911395764395075893652743374943780684266366805830482642336482532216587263312746972573681144935411041665168735454674552934531390985450412840868911715366272220702559315525273631630551694088029926001654647276385024482513877112580681166304496762239558666000841878463167816704674570865186930915983254463169964263623204243074452645647281383638894781886849905169238452005194660780879030598411523870557380841299947237160350330852663968390124790392347385117028779906464166796705733175094913794208335732445880466099375239334988048573595219398469459362509340425667923656298101541246632623997869425868568964014672706813150619377207171140065413645027991280227436567654149400515878462064092614089775331009972195238207190163261810642149835981283768340537191043573729950073357079529280987928092516803776568881789597786044563393866840963904753647634084098794771542547649143693600905387768919544353832290346993236375446944601644906454743479974540110859990188374933639098589210421337776786011943876629498711085969222500393203569287453256252966115219399819523153352343749551720349577627096638335554356148730533701755910577952697939095410464425034070927311888362652843318904175122419666203177312909371000320705867884641519486452852390853681501530857548822229411808273989696201657072742648147118169417999821450024442460323392909102897322768583803380311697124153283851400164839053340540131760555506077172993882192858911220031106801936094264070950162830623120997222703267052060639114960929381167319484061119093102833345233829903484966499517204956537106384789876037591127305650423995307401174666354890500134532643877907573165023096406557590866065581150870304502732619215080257206858546894485284684134295419455251705360826973269145677942863746720666790304227699252711323896918463736014704533806055064755899931251211873275993713886816087795583406880238265675741169882946161834976183649255802391398215969941748123721336830731854957276242974777133841207715859482123040256849828117521724229373378650599065888427536336483338878054970958861688644314061780097570805220606392427887948502023553642459554414098257933510449725694556644372846721175107867815781125344210365427628115486703527350029650758423545629244620678257308095435630901674277121772636705266089016847072490897418282528825138923330149790050752760454170589170815905818413261959445534969091900691046260908087294844644049466743211615848440860500166180374071846579793643485338082363699316232062647418898645480542597359915825470417788084628013901333895630410414187142012577274721069327747959586512214358974299193223506017673088809362050940413812871321819694403997218183865249259282995429954385071487188110872528776934235233300589222050389724429059861526436418725421674660970796343281473619421890309192856966039316724706623721822854176292776053301773138380779149086006911003935118015413958670740411994860712021658054756345662763108089974477001390029775683713417318436372140994869551917550707164509398318879976622264832358233421498541351293702811551678721120340672283139012411458394859946744149419382063417193946404446889627257038810001125210066104792139220898630503319747270745465023607009489241340574913247812030728746808193342616471340720420614468401660746043766564514869730897196125745598580530371187549393663810624786547823935439430913915151808070307507398673106798309466204087076917065514109693478589005653293212589513991255302833041728871532063191883658794029034020185787290682143290764537275576318741012940976189449379271877239146751567120853236494178822013497572551477584660534575567797775760606289889127601573617370950331321542600622442718654084358081450962225775881783585650084199809788763590108924346527554914200748050602801992281871674485597649493220896013114043130934544696189824438271715088040554781627855294456087119707811505228169416752170068120986446761579873255624132415420391353304338480284450956155629544134485198712015201959291256012286612862753397134376352011360485281564831497633458266221850170574592446291204342301912054305773344364297745719795907672596365376940997724013193977767199740784992789359051598152872636483543013934738586097281988819302826130137897417683397705519046030079926533152160886585216440176907907532529471586578063081083483704157321012629355207439950771239552788535386303514813040802042424367089483222864249895279990906591275579921900939496710347983342249469858368736879045062938973167248481322273803270210781916530175839617733567065399396851382829207221693467677469207776360955461544048477601557984301833559979495321513935486811938834650620194064932805399968578028920559085913695653976779909486767301807526987906907280239137759303325371569218052849058848442142379706317610785591534447727056164051440538206066141440078186250644104941553747133393980450459464455620553010569008086032219210868256513554858035751356177647902231406196795902629185267993884795392143955138049253926639034901862966917430906957074797270888068644813297838812586837291575768851073912487278641955410944038496458449145322017942440004987051225975690056918066559510472380588842904731418414440336016531692380817124407088573872683405940148854279633513729481691044672638938618372717885068189262848404190155980191277167791681460786578499493913034881253567050055879331048143250810892359381111334202816884403526470545695572064303265258034744333112555005979333752374442803510771005438369845722688676603911867328655717509934888225112359180944967906744948262013522008259001870000881264039618929820262660176098377933343079333507211871883590054786348038836497480028682597390766155124896749390622817180147748225230138898892639755316698743292824685433201009650244485117404932477029046089697260226806977291585937514594879282751988847271174678532963799340386602423362419035369817143242605881533730919395259205090920861805695169929067816377901174105452638650382132923927919825000932031983666899271761949754598163629757091514854048654582397141011092059306051326399830154168181451517148944405790388958530728388692859085024651168519123095658177614880232242955651476877819232495091491664428739040220799692533326157585621177041122968956931623520942089208342564514146919814427919590752442441229849769831417197361887245004505241465628292901315540784054693018461405121053389941025848404212962054466326226141349070830766854245693178306085721987882101492454810437638387972973704295506352187974274473652830230527460917350321929013242665342900670632764836805170479608403392682889865365960867050516139632857778775421422485288844588303791058232568918578397235636497408113330660206502185886110917409468114478911104957487245595129649429935493748814182771933201547310033832840427237533697833314421299801910686539370053642065864472026129502242802769503977012770735749719290525640377071313767156901548807156478146971022664264517314407073584615189788564876921293484741894388357360444646496930800749505425744428868949960591327861770950991059496162594525452990606186190973108364656280490338934608690388613233735323338958563679011540310568373567414009249812046231577177589163935876191393999601875755403318343718364797824320895003003451250630097948842417270659903804095271038335460281703301753263130761182363908654542577066558121471080783085918617099869517714880154446274142931367340415718715138280895838358119889967873808517746794385201798056583911521316344339784861451098273612522530507329135259851817488056432641090167063100516551581967591455750063145169207598896874694555532242424497027455645718885456440732856850305278889428997408735732651884146512287145326691419192102808485720611349421131547172818785736343426605143380719925869171089863236836857591139950551968592652258762846054369067103387724444359314555473738813939174676471766975425559596079534102781844423825054324550938742032403514298776414791460474866519954081776017532411823646998177103295858301901261991709467459147151328368081175241534535705173666918099661383281039760482691808202771396650014314490140982309987806255742592688769160033529546562719155725734256168841014146628061822699725193071410665374675864899345108396474133497823067608180192253283689713004258980504591704884033032553776922383541920486413525222884925670570725814523098819576763073219849984766323168604340013135565284397187537223301118324521230977324696607822836030502107962573536927724082180909503668474666666356410245979494776994931905738913505571879269176486779561658746476944510109411026843656500471389325789345412340253735015443092874767417999628049373467799648423241943281442409846587901739069360733246228619318761169776376296012323160355003228763868656472510854431903387944124937444349810215998586234516243694114760311958855555816802570888559087609471600630864244792361735612129220629686908646176166112064677260583972017536809298074628435496727787237107151052591939348770305182546070484877772803982752416328370202447361905018289207790877842806669027291195301420424481519922031029860356873973923124579961642474394589268133290520107879493176474632942926336086655414993616223371184345299252138811050695067963312946176306005053183200776164624429005829154324255232621458537820458403874851110420386830872178085250844299632295620723765275000657777115691596312544196674331067650091486579819937266122958132245193591505506392707455910672811995617792091209146540333363131582410075029341511454310102580001749206814896773161954338154044000914923052601921862504219136700193101393767552870590102028237481588025932432490876658529830727203789214015144190244923411707419478860178444350200952388238668839071448276068874212145109956655999277564135980830510958236671229646687072993849286788015692611160663425686296523677971124207122221710379700349993510556572730536145664348850613652082061616890805492670567822794920631296741336252800456003368243734364160932340397865441208451558820269249348935560601206570106136400319342272324767356760078982070104055115552067650630211594061733090142540407341967624132921170233718183561947666106412621629088813054908764327337742380304800335768429751654003940404230026608135634147635261772246988360356323167294752224768653719852425339667029738885736527647019250791694281178189081445958962311880588353508142130824518671948308620470447279218756067354545452226406880217249868273491899001798368318180649869011147095155767070441980937151604799150715017796985589476207334182365090618714899434137374647578894695437351772882834985301376779649156912349092277530989614069024775585536583050494446594687313363925907928152435377324024759004503381484260973010491880449696898101301118385106995039647271505125997246623480522118303125805211311141663472994960792698590520971785684039496700652670769289006766894068313680260759646708069397813011002514948069539995730195882681134313652567014254380936372339051662441558472511028109783974298143620130014778635035552351445943690444062158694487554438974878350954401162531653316896244542786864254366109128844680512223448227767977480233097703166920756312834613620271962062552022527237071439424235570663167532397600902804668829783932538652600262542410922399260935284336207097558404528878878493903049617503799977297486146338434085024163633779368377907840342844293946959445884217833224628885062302214855293158051527330111598526787813927138391257370729826137155388444589829654912324798809102493111219259655770197892822963639207294854844249160713071163391056555549017595392420112845936763609758340076533896475507301935636100656239952656951329622480084007850737967735018553083933179089711180388168956364645408318478514855681397689974443609645892189444429494323910184455814501569390498751818888360583317752502601941490762813653208752408559453929878437361505486589181844611553569992312744898011200358340363483911369024036641881772543476250444915911619756893289281376532345938446375731840679814323600772371334710490326585362635050770412819253963839158003846168426783706238417123883565647708939888624766864414449186205723215905955412915869450217286261372768626514606365618462744249169427382517150791168976073747183842533251838239686449609799603053230010029063028288087610105480835199258491704407569510351861618195233480165613702823776500819841675650341247666271112714887219672677335154740217351537720431571476616272579865802614090191161998242070493049275221339381889445087880914735218708744360291393796031251496222530679105303107577129912538025329104428042398766918449259523592931744310042932525296885777742272791867552028566293790353500494273558509660515166094957225130788719538849329434048250795135220629801361171655330420378126021473692712031013699392398798654452296990449821099822140217492044286602852434880398785871318568824035577900110950859061730275664057703621588509678864747593541846347842503713459434115434738475442978756638175502151414115212642439064177734959597551252234749484396353594255491565094204749418095075825793856886778869454114562405621921204662508644222993325331106265055329020162002685132278391821910710262303168034953275519197017991780560163013589937580150470348479054206221909130919277343752571621083559167986654406274053510476270074356732222198618312072909052223437016327075246678284259707573657264211716255832005583921213192051579559854908403365079564889823229934334339531392766404861555875492802811375126321549005273097642568997682214676545573046764865836742758625282947801492548652382584753695372555032689848149171215549776043993605719387266781806137953878816319386853326639863078349517372984079368325909467150778428668602974645232732403988723531158099145827762507207018387711168657139205994917521599858064279285342653699815397650563222715187366205431755329320561390677592714408029531529216284734919883556064453908363375532455163048348826667855549092740536478701817313779936789276138138334329540204666146118244410984795618256027346141293963787202301228432214094821197266403027458129018599688652516288215374337822012083274874316486047211131943060424405836480643195331075424503963214525659024691778463606515193773139770645204424072884589878824416987436495708257743687347106985805519151192365119864870032083387564768648760430938889752283066967966051801160205463918570386885887580592489176110138737260861854741426361976795514115452920539276553597358887582615034884588935154606504493859028866374433558494954043038188237039608570146861354005427043177594686368986482134622368407055988131976076739907083983885595115022517194072125560180207111348034478387749776336288787780604431794374023254542317492624724067581934196398806442919690132009714617640991230497279591179515795776442821634189913759226647778453243404784965701519239749373614975655464614637045581301939906727167014409177669368387738688878297579976592918558498317074200377145424577406829871995549978798492725158609836409274673064264424656649016098460579594533695489816754341369851045592062209317188013625841496522034310444055716529616923660404046540505514234743605804614705052236409809905606794378777443368094153107420152273921014663617114762774761943523324232741356405311967534533194250861192483455340969937968629670279356527422922500450447410966930660248707387672857210920870176994516138370159561993955523630455532351768637136063154002932884460816070316125265563758582507531006938491159603664457247495837959773999325548888048390209232875000156142634568379576070667889631699860461974165424223553565963204800740124219240126144104156774796444727549543782592072819634509943656452612589156134998471667970407683314624446770019071325759966178713737851738568206753134851284449887986037466122196570377777911783303956459860457717958605372986216822476890091950252234271390120923282814287336375187596526438055381781856567390896890545001202519556026871589780031332550520716339863948002625094548519542533149978119373290095943166154323050834421569867677195181279348495645298677299863740146118523126219332230547310406516157879186146274965996361573384411875738660324908046470742286856229748559707806080026034561815670126596808725669778345081123960062507018388380336460516540778182129282903066202591347782923809177079391005482732110986381468550435404939027487742093561912593218223629759684943555313873017134129458719855636107377442286457039942820815746594797146345335653758626766345207457487916360576009639834388480526072493938177284608409399168528716567629851752862896421434949965183480969689826500774637768687562219841439518391425916245941017705715837197609504721358829475171937698485097116640673572560688958068414468477295544418931732502686804079230384641816482136030916547545945559205700708703719363470844552116233791075463430769244384149864315134126761328561129040319454153749199624814742855543149007595720568418082551228979403400051451609075883740439700003442295565366847241066790228585331059241311522626208141898949827301092565046020955672550902042757981289727435035871342345397869406550237093966678858647704341369608146095908890246806712114385723588205503836978847171630664000764126194652982895574933207557795950094686196621492068403390188637974728934658947624393006054134358829710753803066491829109206610751820511925253959344074124303715629939928745554110879659428564590261342855171281764428167067307780691312565519093466711782809487489203283557343512749951453409147934965898678406588048931283778107009408338053655043906091033569489295973152091108225683514089879548405086582305106298764688400335685154446847165499427356864819976854832406869200248896225997146268719265414794796960618598235809468506412568326412568099135726068081853650812655651609038084325789248037493181517890737897474757711960821647185269686626937588577006481132477821506232695296546393856642757820524186601348979897020621521885895516011487652360770103433697692320041071788468124924945353201187836383714068460405848795385196584034066276386703411102550454206357832059182302276085137037419206642998360501765596036640721995512961214976778606434616741721062132713254226607680173969172882672721859272318290528194227168976570427960295484525019093189929353088564968451942561621840531975599629103163575031485491369000693503559766688073014963332872228573627355830855887766329808832495871723650962584523993179584589920303413503653116041635832143543862665381688989857958747521634629538077993981157438274243403857026803209534966140018911267074202102298142256022283609979392081848023685776571278195403949944315125043939936949893443934722856315459824710752987103060207634681764450805599959646156245581430394899058160111879753262641643903261928211757055892702466733320053574517533037401672192856927672251913987170902999379025765069790529139396473905012838321398817829775540197184924282480486466992970210165973339725800751060552924546196434435349788212314076745851184221690379866222451344805099423220203793438878552632261443432586050916909876604877291555133237214330628247770736535811668881789172340981101476748968728036611876125198543104332723340081316121463970571011824316705455690212895333088057746226072040510548497578937505869782058928554524011757204795493994908329227840843017129096434059943332028515220596659155243603212811522542353352085000430376431876164407779015230498783034492215888863857986180444793607574454892248908009167057738107777837704990136360225320308373943335382555610593099973877051885966576433149581278490401710519639079067375784524064319840977634493898620117559742665238481922636571584303428916115707857275003070248709390918211004764457410227764866896158807086921630909450168910174037431330354356583017374787184204641309680960119632069376908315819753912575438347915954832462949701657354321291823745511840342776966668945149275854794866321309484041085996157279254345354595857536330080228026091301183438996970332917842821877704570321291801047242520227856952949859014834685776315783047654901776882754998854418043772999404539121029583068586350023281199695471935840288567824146005615906714456791622528323394882067873122588721881958124149872571084434942957255460078926490983234742887982950549816969699925117200957323913885850523678554205032445902597615573590135713049591034441035620667733351834205871645221698525203187389005890344282802081655618033467560242198723860340085629774357407889925331548669207835555150909271523742259335983831451007983924354631156737952787271964535114614835855605426153890247644706570587327356896117414988967097497789537197282879676902784449769756413974447996853452042029614963990978863810186312127913056934508967152650761388524388157108971138890566537035698877035508789449509379785482502787224250995403698306951931925029075200252111283880488151315702515680470572480365305835245711929140452470000024262513071099311702275839689956020741061835985198621790036994521038867205447972683825733283583424070438705492448572791536122810226893261841798858506981025263996412811253025708196543099685971128627795738175835915785852613287502949155896562356727544446259629800654583349455411904214497098255680851546212899230527484119110855021411598256518159624733374869204191390591460795362870200830938362498004484771560836765534707155041709463048678885794519688105053183646331965260531313300441324405262986672362156529529072157504999728196699543311484511210187395316636198927696535075502002228317813433354838851612250543935081667667429327806947099026397129566475063493189202597642549021044612346612907223440499134543344235472739860312808816706576315672894171464216621814555644951538373616465905711833162036904378934952487265251843761373963763533224159928952531090301087849607853327560859298838364551686914044964871138835170948167890847550056004491697444349785309993919292133034196478351554926842594097617080844042315718448675295338480224075408392531621263918239896158208782919321651562328777736709515314427244411832255791945691356208774303774467240498356679629345180614629038051507706189993979893377198498350499848585010383624677935455585370954788180056118207828817081682529370818057467695505256170175036368824791237367362895842681055472626118928793475540151177599878981576152944868274470293887968840401814440241528650635497866563790298223511061242086457869478313323640878268403107032767437405435683555969871754515023179052336487488361420001453714554649738013492466703185418466991209832585812243279391347278485593592355477116242997208935589569273242923264243045428710251510488253178849045696899982813929081832250303521867597497125452194393747296601004648753346544100521108347498027455574434196456624892074247770993304718024138649408966153125936925618902802298240196283845616405933348746462025881088050547103372712068660133008987780641508120831114512006699546753690941145265828840492076512973621838967162630394848860014354131535390300329861731543671844264683197104079413008210576352036096650829102651901633571643048532216234172883152328185340765023484027787611206415660092425046762499818186574567586025224548994311605692104637737705740160294810215215655484661739574201067703656143905768707409711865249738383513489528813902460892334839966605723017586878908496199212411586218125998735318205044503787449805636094777628480066985599356539966988067933232481702209266010621487966448576367818052654415940214800301103455348875856084242509775237647751879450209814027866229377455076658343554997447360701270057375965642581951260851707019584228608910592001500749611219857598637707450026309057870992186026704094932200643283494447726295271855605654995508226716981555096143758495264989680777238912051762226572468726263612723383395020872160973206278247521875100628364049554687220034033623027901356663980473034179201317986183718590634085605724257133717861029281169709163705171570879945766933120900903020030293776215670519342802073296296574214349618187278240053444316737188335055919143132880437241481023118464647860966613924165073449375779168004889847447275138630278825460979297265044795469308313461244747844893989309934574473053320033443225052484973550935303136021553963403948226139775968889823635520360574408265988327539281408066586081844434026136268798623720418536078658656843571614898289246907211028135312573063474130301513061926782485332175947472830004591669319551644036565777117316790544299750318181991427037267115976186541979391540395149980272782537756583371681350558164839143053846453467461038135147898104126101479649286603848632360338036644962763568241419573210023923181874186507122388881516806702727245775964476944604603063790114359908504017550749370004986558200289835973130204547915922064743349707296715675785132838158118682155333577399419849315701539809319642839649359683364913918444618485790571662516077392034858821766878309365524940218131739885465260211939051659284140062888691150945127349747747828500017586618355038198058161009319027481343540227030363240126630055866065061508372345754220573695344632492886328524811015459156771052380843078037429536409702122187992783712848910541009822128661300677830098630554245266734144872308777461074506939235748121195044284962588460609252959980076342632886844602850683920672974380122204657808018363361230236590652371790397019286938727740141951855660870333221319217419034496730437754169664153769287546786782660248289004327294356259042149497816903496781934481117686745174535246939694272288597070851414821569718406670397716308601746371558812730493402799853559361066461667426292897505720500004136992551298317541181368512811092014287576751206054580782169196589793781197068076673357992579566256014910834434510304672330516974827025566824712912349206132031868416044322897467426715236473450354211606855310179410999373413497126655221134236246603512028200920334375566249121210435987645552036930193993422403148338541407564111148826678276093460584488504680239283570721372023799598397454296868261445140603515473089306341264581905587269777245222080284002612003610855207472826906558048391939719006123543160778933651808583167191428333038977196457619424922795518553385501083361517554497890311208399703911015035797377772628379814463824204631111113262654857661051706713448274213413155804705766174841991493414205363963328377967624049593711939303218710509724010588797753828914625130195571806227195811474720810303079880373186269865097578232146468943859496615180257056460726796817480636856853799218265815432390605538869304974305604990807209588485481798790412316491591058479439932560098397987265769973313460069796332663785348983078044671025040239902488156720099882757217884399604201857743994309058902472784662670616904013822718351042642798675503712185480577128749345067560784831674314441722669105928818510398248864543942449771781312615454998588218883995890866060811143410495304011084820467607968339135259124748421472612458516559632732649595862013991558196320542376335585064839701508398417293274680205451149781042782277561235736766286036693898124600761820469282762350227001692424162280530939810844540255965242887914323510910577960639604374806545405513704358170621675516182497740163982764301284792678123626201607296235703307281541994274115949116569825713177666821150364388383570896215264219847631006194079564562549366948299752254007977072978092986131873550947996081022976271017226625169934740069766929655978028845757113880954068650774621880200434026924236563273809600069592290552333343275352460037395741129620449444577362577820693775042739899690961833876598503312237447159105492775932211917055760139946127314839335687371352140886966571967309349268116040728991004951840169045205039405627551797029190680696045990078374251217986168413454696278628102647854835572934709575648645270989732028400174927639445067806031303153253156603339122958974857513962396893027785511980891340898112117627060606621834173441306866598946758845077218816767174902199310524060818671393598258697269147635148745513033544086103193094566452135367676898433711651172698447037584271427899412022919342813424145092142326914009334527978605311392448595397544114690711229176297241395753076962753233159434717648536517479457257557235944487058945855002412367960144582304681963107569512138727552948185251414040745569647018212024916920069051235454258748169278074359513489184201296251907521364805932412574264492659310437543445265194950004873736870587576974648058697592763449446188321606313823124281835423220052627664648031718013863133205362796469908902649511388185418096562738416823996390856695412148814522215381114178970031811174896264422885815980921063574577408855600007870550344270329965746453912008895177500604011068649674475616771355017637410110112579182224515873837070594954575846619998319529692522477584267407623875411858028898472611524448121708174779383439511206650189110676522761135956967915889929419433286554999785929677054243292082101024834581331311549448503727578004816782160303140011882581668689878559354821437303756622182350556603533133215843771071656373521128164484592176239380678287201548422284737371340300638105424765362546550444157213977752296151818151159280278947019493058715153777476484584552379729651097223984715489132490096274701433766036663057052736026167310457926928816805333069550745408385503920072348162428771774989147416202543435017883511042654832649576455441213856137732440035076020483415394809973452986350548784680088576563434048536869196180478183767872094325390029988015171337777124891247355759475899774819559420201796357867133949035906201312645518382836909707690569632191313228120207535028409978710853330088333835571071370172696718379662967679348823727443284269321802960521745241388576990045869498097514971700349983655400974046997099615946292473272473350916028599161333271580833334991437308843092174757738739750111960143445279302990513929882349919704546244740202466435515409350301422832073842809340359624661529830323480057425177631670133196220845024993058337033444285948814616044473896778127087398904984970865237193559824757465444877865282515011095692146779885251452767590574205579016726665174398235888046463807355151573849635626057811480509628871404417940972067722418328763054094013389444737693970634563515455801673296959295625714310490515434749188411487035563691131734338205157404382701420557426216063755645181092981688277747873373362912282737164238084118296120493621582477108447257840329185250398474984157294509369575662693539119525024357979601795852286912978665789662548746658348776908120847131871719943266380804865528215626800587302319927696828474454505307254345089725123341788532430396888064037381506459189238958294738542184551357310985811830569371476428125549335013972291064728441733096472271280562799911913023642449148865159206230698462836345739901662283187583417710504469524479145114427086340084856781462346426184250511763615375743696420570339086021269133972150370598805644750768273966813737938192181097729109235663868910773747037899905455453160709392456348078109368801178163452833655379798990048418419824601747849040802969208762397026944803845897619003162450932524474248573542621523252726014727453062810139580507959315653930849758823422058694180056326066833987291079820442866903362030937822404714230702569438831175612731643143334802136897849951323091870629215397227952681924732513509884119341129882958911053147339690822967861648805594578812612169325113607878225391245154350428587387802569421858804218393683953534966542521438985357605910525085339393705835106479110981359295070676540638409661269635678903413297375318499465267853470616579278200082493974346161726654169475527468844954414096391327301871970870143015535493977581565444162503579119104078746849727162473123129276218928691877521270790191797972013232395277348625880487495978647322716111699079248309340889316990177555044126905658558941978470956578550545693573855787244842631762007087627096980242898460063345105007996695462592551121219110639368025421510860349743865539709347412170333082329287335651301610092945847716379135951570845224545547129241519959254191709293032857907875745961053854638158536470026979589343063453615832386292943349377465771306055116381064428765087865445842092093583843707797818526597210158614491186293233923716348263615126038107782218048391235563274680641810438264720570312687357882136738484098113415507539944600224269204182073966003730987671560923722481592169115506704313050574699185789221213997376583813221296380310629697126797970458352614224669905135875221260279811453504302934722206985823439985915120535311726209429011161023949154407234678979021453248093687758056964960334511583909267861966700579703919817705644839087798522391942277512550672565622719777705772504540963051875740520628331690366803996352423348721682115693245029824887540901658020060630926234841014785370366673798264689246071998193803156659647605342985120513921472545045205730228000004460240765101362163361069405277541243621694228328621183428578427534205760162591812793753332340722254022607211832092849086841552541286224269084107473329011633616804343795591045303291992159173037700032476847663472062419877855675878534372238534343947620135139606951282171271239661295091589712177568601735047150981054224875091214899963420122082292186154512579114923483197270559394053157651536356223722322338053315210296376276659783378401608621305592876667540657511080259122963751283805780095868060471871881869883929556760475332774573650238707260844295119874476084344922320000054213304942228791446712518903979875733312779607735428650663716359161332931639842697317756629216443441494458329225884537117836742995446945040892783007208159464444896820836669180960980003537531713965090222427292331597124487141542840008433802043664772166331267257047488256573153209085271769061001645652805554507179390886432433535961393758876880417720864034965566434533764515614162756674360316312972441024797403739733230880140722512624057197412797896719056186784255365070260033235865898341875416897340233676079600382017642157775812270029759558867630099214969538332965391574237353992610467473383065272909897792251823227106803238530773674156843667731800905606854322421438853084714440550470122889678756623255966474487783889720803163222262516110576305764147937211468483195989824574627643953000412185452017478684246911832124715258664632587147256828542572893506035249686407890120780031138061530334550306219932374951149587191363670870767582363849118841500814245141327676602460352591171737964229678682955694009378767047593881932658463889765311891776777857245257007762598476151587887786502493391163506158101807152522121299867849277781907074670697928247870908919057865250253441326673732944840016560269633596362831378460819382872516029281975293655707507642459863440304304772554421111977335070392610175472883241462084032669563757320609175418658024482730292773437055821705254807464455209222480797800032227644001424716417494974359889840148897010611837860686001569478584759739700384820173007235335130942282420547952006952279998454967825403188170751649990212168934301969365960599736773623572252553638930319701778700178152812163334220789391462595796184648730867149542942932179923506591282283213389498707673405690478223869665774334337321529100171286683361604306850467291086192634174111344013123116678804691130572263392304642149980233572268027007540400822985240957623624760663805076035355289683598507573066220807936124464468667110691603849865041489906887731949975089621356324340153314144938440331958768123396000487530187117411048804759556036263430290992003294481601920286316764022854369536327557496159220277220990397712975260154608190235496269184387639374452844461145920552488519008259153721761286336371524825117309649996331314092240775421106671722854397566329112547444144378084667235313185526685309860038205877828736105705916571312065506448670163780791588539725421087508255455122787860351046237441851338072619354765083920779058544167976599927071955771632927636717893380253716794834323277370845826000789107535688164880577326474693300589523715789198391467229445797883251748913672641009924466544909118160925590103845282520635124555098394056605102071606483108401088401561257541150108893704499161795937444332284313770733005501759555179858449684681121077338502583161004949544347054909353997530109026674611814623116176927873074394283146534851413304539716127238494027217912917034049084501533628720028818930383391856272098433395462452417302202294510760120072456791466180983651783562714979130240213650307790088120844795918933705913319165321181471547092129250430297836399470451888545322480417668533344749351521602746706071020415153276957991014446395725773406782934194029810594883404582471361028351016355873115543376105632845389356265217127204797050417843423383005181659835584103588378108909923656720837938119672361523766985605207407142052610538786131342935161056132311947717214514479974806359152723327202368687850127671030973152351068461069698447642260579761030199598587768931109140701450123029206092504532946617358345617856124709763200787420979142251964384567270217167962766315245559386518038308127032609409832478503797831933771855049074338096704440551008208803301265620177936118135677842470675559172907304600383259271942256006662803545600314735523792454760766486338694211502649196772590908679794791125043938239015799336373200290892393249878653231361781726253451595811676502720050462487952874152714273153139851401149936657000675337204150536896546680677047490733849741347966897263647650574805590545382587445303424573170005199359463348886201495779769509542135858503422973012409847042876344827773294819779858795771930257304443547925715596377403656079086829199836671633515719566987187071542805769408326993413417143106085522576468457490144075406326032975506156536231726052655445956439285374025208917803958812611190353501700406455112281781482943502141247595524228350721219083686591833681412824887642598713084906167534602630185890761207196326942450801215262714383494696585093040812708451324615358794183090188692559734769784879843336542222644943880881695642884473020468391671143313754070890166400276911113044836270046961577771076335843163154261365487209925695962009397049622667815464518289395770166901365153889732212150367900283236948407692445826024502883852309009067874154383829875930634046576746594909712036667919173608697890538891304662300291460071657006518190177652443037253597716227811647237946653546872078412401999362812457728189717987277316159903397323441024163780896819175202455960464464404932457700273010071925071405146263009526009543582071925076767260971324820135145284532162461366596065313107076623894680588602818627858826875896918442008933005914315042822801515371444575774245727881805613571158271145884076290255472120890692982552903463775132566453176409206906843931725347849668448868972513418651101022400325923168815259558928570814982233091714146453606884187301525550494048097405811223008464897470325143597250978202240926316967305534398605482384089052744406539290233129096631622758044246349707984691726156249223027779023496711984172244218529204000046301621600070110973081242335839697830330989030102875205633046427588971405018947700196627987860043967017809262335478737037906981452007895885211835593025980284279898708543719915800029906726637650325857200954445372802194825637228707588847210891617960603823366261198222491078023835922633579344343319170123668560110702403517937570174550341120957583076927648888336438754173759670716473831627699999480821425830831873530075564203427972215947006160103583894178570837899856771824215795786466409088591580685815816043900490438167102691347609613474457806469155035080441076355204810111803367215302711661750520556279303337977382983716726335506037059074842213481300166881651215203140873121469385595700031127122687088324383002022182571677715176536289962056097770523789100656246457433119801581130568652847431096619948989638823580909115615743948375714537846853065946960282324653426945989997986214181824023215307803526998096522146023457085787838853027512143970424776776411047043289916836674001291728259624065423978589967312082010927190559464843965490401680982585009603055893470828939584798807244899350143810437362339966833904009870654921653993816917295252192296851603487579050120017023578132497401200140058075425306562804715462648160406167085063633500010177608560954045256415706594477424667808709737495882259573243287993605699034138885239788482865622640331912977869143998714043153017505556136554304092888320402096373306763818096985830926975115143696457017841524543278285103845401841814139399018605932490120093424515634345197423117968537322103778003947153231664171187830900618861303266061586602283323283751828047753140499151661940566667253098286447607138062442167005477570599515255821742266475890612537820714573915953655759012800216151790480002548103858232037612786027267826047938371002631354663364816299324416054091718106667169349707218836211644911523678585682648225168761693181226701701959776955495360472523081396466997906889394246616004440912603631380451995387924060484660036352332785659656761167150174280370959451612887244445550328249891655021553136148821152688081793473486126051325991109193970596985429272969296442535091906975286516975018506053516420289166076154949344714095417524440145783309020816020741577370666400405628961673083471945139279378371528395395000792670158812967998684494010294610493540480925482903527494748991165205287699988153059148873569079081194989078289949665780121805453642119672524090586691007165140244095994096933830534024029128876757726050157023766811390584619230211533352273542565408253653868859890481938918019044091636216213280766748878513520984479681141943835936462724742038381224271286596911318376438193417111516197017435868434992188307295510813817780244087570521012006145737718788393995286234371909564582568723299932788477132266941805099370713656092281164453987488205721930532418088860946010857806694544196264663489942212697019676191286924067571115602134851069214094776138754014450384879065674639631876283461846357750253974702733016730217652417338651624803040635229373454376420340035057049780337577814507627752351146867947018287439574305807540529777822114435620366462019154781873248169868744874845126485520917187802393790391388367429151413377510752612495904633249400737306676540110397432935396875346176658106139964454111572782124700811640992567348108062135493988589669081778636082750940718957059612436998559265189462239787048399764906241473573331941237541653896709287952032670203236637268523800592626723042444229652589292344545445174855142165674099828945785149821431741360912150739507483220347447221725332307478084369892457046086183683469818906769560311259494411766269869984235198685212748761203592812034889297620845504541362577518293398349588625864772107489427256747823036707233730191299585100467195342270977025399863822286084470778454789843510739115562127481720877207329848217751077537415183141807386315704617108277177712547097580318764704504455389794041437990137337305561042565642898964425866367645375723894729985081421748922933669138203135100944924384689478535551187412066699698306770257825532171430484990814382134159608680257941974551244907096446056474500838952543240951238497465739738509952936983789645282306150979490594616482904664198056307424265823431589512960601714498221948017609598196558129095355179821960003868584819667154595957162030245026653491309639766662164521946847147376553414554767435958700667533947789709443997120040198888761078901246935537487268316930700128072678615563606409496845131365215403951091072414350961964471040598063027539823324334879661962807666105240886979813482270108014193605751256416842017878811791099658624166773458226319408242067127936193832049893674821828571650986224662741195188117296637301210788803923470095481839053872010235161253260601531642012919956970621984210569358890457970607369803484379466325417268453813057803002499715026498202651285050329473406145960710975930169219070295730242707337152263912793438647044560362090055179996767911951789552483334753776845723116934984202884329546345511380878014757663573745291622634528441908837305252028006909327864181558434155864405525840540407932961782395751513166962241174199408859493177985779158977754231187310885560374523046434991418059046094684891711321240677058080373037941214211029921827044140320461955568743928553444495443372416589754494341163095107027871555702792982707993633924945728263997213502117244580407966620988837481545545350064745100186790199032535435951852546035509411115901686085973632877672468289231629018796134152099773389429735257536813770688554436941858201312973626347433254715721868370153619284677216737106755685124660495045440689576727025572222933489728661465995682518128959832998456650297482623444447811274276513643658677878182843453964941145521197850315187126180094622070216313694036022257112188072949295402158425874827507998181850686588401507721599646874421259812008754259076026098643790134073501049815321629293496379280489843401347198941449273943451329094443219855744631138575667934186299519011434270102455778367673653829935818738489375495895137274014256077081085499331846051110324819374750237276036850936106329084449759631342229657485825630177966323762089570131342819215408510517227095352087272985166064167557053787515837092211027399498132448932392261226595625189636990722721427919386105023449553164821813014881392678506342485576551583081930521945448043123764661823835314107255052920897800664110984746688450355139574777263799985935902073221623854898978714513326407362219575201965095403593658858737316579788337580718479101953021641483497826436717458767393784119401421454688939364067645813027954093880800716165042677107190027643475713274762470022777581669587469658336684970209119750576771197548382445544923872625010211772167465430152321165030673491767802367077042534329824530242048544506161391729222312886094456371916364600205053509189044786262990724870428860809772636532697678076881232157785918588899359177014968714551394758631551532744139963926882400908115768126771348187785247579840133544256558530164128000970367157483072093373774724420167416744591503980175180163836461314774376705618434746333507397583694355242734241968946072967796909146895254077022830595299196985655461418708341420346432115739673742552701534425824552802038292796786894360879910766263400129243583572455992447909364358326703748023965687540297301795751250371035412904780892168996224044171032472049002268603308457447733317563511255987382148445066385258294846007692468762809979150993025616422556281758732877059129200750055841136777762655494728887139308452891884781097794725001343621730301687067778098332943139037890522757594975663088054631907891336864821684095367945005088193842523370318406467670584372943211675719090720420439264282260585664540818015338532648603564740925796697082859266973444903209292477237248413150369220740393195912746842350018869896676102276266739384330633122804830596711758338503299594534580201847778105781699402004812149402815147352518284416369175709339837588462822596522693095852508261627153049564495300523445630176920132995769800264081969400972564205444259505123712835984086386668052257557539189971090439435612434190095982620866388428800141206584232350880436434529708868435884825837777945211009999480357589662257934537275934469769632996994714934581553592177414360835082518790976584726505036569300130609827204809995933663596266953091062863200999394060527143603563827549634564956961032426687482696130613195690189973545835056597950206195311238551295090107021575003865696629855197053229225419183177297564661068077403126438628373716128705101535497671422556164313460922888593235145484235192513427015898113070223592108175208770219760996459869991676503389247126181273122420344743904352545297611137128446299708950823034571403328950635047830498285532315427171164786809481257171548415798178245104615721170121324708589903756827835093366846936889530907524390692147438185675425823488549205778625135260845270585836225689998315761056331362379189711338517897207506809786313811929123649522252070303767401039572674380358897194986894146589505532867865989577186538735695875795609861553393315993835539815847603744002642293639117965377287421137976326272363575198079585652271682234646169250598522632343739712164724971561662455136640691099809872239888184630743779865860109072352607251352408370720469804890430274649317661087523788988873405330515295979915936211474912392970538522485216430792573345339668216981334870393281412541068593474659493017333369365398298017523839514339419918104952421290963427180597690417559041895380285767160956767929050841152734357518640832968102246198651017169391939821210200167758131228064612880727286677906733250097151089045960898797431478244979300608840036250177486502205403430512734579280522682742953386012926577778448335232054019088643048772167702333235248449925191341821374805232981337390017938139664024521197929771856650772533848021476748997112892736777958179789589659592087234927932882959023927158810674593022203122102463169124772742675531383836221374201876619309460956254495955544924110982490279610655554872918122421274855301352206097526613311577024354504399903553569966942044256384966306507194561673953067343025316732515614114153370895574908754614350393953500683281407779918668469165655845221350807280679566465849869364505920724964430631874607144401776631601523777124895234466803840473630195267270968602477755235546124980360747800246163559757743450733347995429456826239194540086455450038980203765035295462893974913300408047508987327701324354480379357376580679379674087681552388265434808961363812908530595383500935262652626041767594798536874032616317170501301576989366075261632764203310996693737829432737682985985845144751939650606024830087363977035310280549313921421950973013790800770151466401269482853664883461615384321616603554044084845569339620521759760910044974262625878588232400016131690180335270727045465593886808840497894015025280410309334172208757230356268128045410385614478479502594014675740747927314583579536948901150165612056303892164693978331868015157796674065309893500380072522863776652583745328892332710018466912906673546806353604712777677074432643665203833839952069257714468280099489342510480033504056570819814552034703924777259487667738057746009678526964004682455605206742109626827202024465888025768986337370700488366564110453950171201386371850345928556387995089630442956234222460890814119778385857945109752529531512618675595403352313066619462639366277477080762747526415811409760660943463210666754065786147958578518183546572258109482999618056836122570123316540618875643781801818575298165838390983260825664327563459094658184457137258875891664320976893066905538656003125798918000727277794159695871971927654606580631537047546429973549494102078870698465601523388630535426845744706308962222047176707533341206894646659829136288229993061626936491618408312412126766104376922207199367258104212946595018015341349203073038186217245479676158593288775411288598960202842727977552906827761403093105821596566889031656216356773858560796030789535832719409405280506612399187030531858068278141412097680484743597210366323156766466570243677998404231045513025440630417245358636276797899602533657275635694231080688617578872902037962405113639011417328704270107285773555485537081271095994822554403599167583149570897012604240768547026140622589541550513241088336070409751147430694597901652815701336627437531282168090462513831384075346154023952117797180925074713131160918296622147749882022228430603955235996830675096906509770086591981432302588787702126653269502057336821713934396212267160026311049842720093204132922292358420676254018976102376439505357599686831835135089535932119035162804245796333031255490813198668606876297336158525241827332353081772545631862921673497345799906359316992904758317766212135517386547190648149794647438219592143142617047493303207924106545170619581316963229461440840478907751477590326306224820493923839112158212430781890323161242223334095116018147385989156576053422902438618429698352864457746251337917204743545908841707979656677067676138379028764089340251789365445508748392101123421853145191910242032329671038779395166142859302348357848539296147371242042169737593659174931280235331362564392320377449652538910025106016704464420267042557196347037995298269604849210848060730187164046210419713303723781683414252530284482442320167878924186375401503419658382496152827042563677587786337842691498162055370525443495396867460275121184497471559355247296360431462898426026487865484489504693435259729347701531522446530460962551458292237101971216514388835850996267181969012155026683403439252091447957226273696431734096781667996465034317249336259277535580536427716656564757053991198474837931551103983534697684378174454681036847285869226152862956483966882470283676221890846348561650617213227126342449069465184171548493901547423600655521729465390065578526677089660957393774235605641664034095012451982013009231821840695038228771370853876473239514394373510589486188327975348689136976243218887540025659489303627842064785498050339797561235809503225005411844072293463809408106580584979129089304392487783127171129948257819350453574422221890813492959712201871734812889853081285815951824825321499789941260521491339377896989845852488620998090332920197321753236231416128282034565123631257285417193169372434169172624184873983886488588752743299306451061712120264217355441321441262725431821075091743380770212463118863039844742794711350290113653531959118216358013407509145612644053027484823742598716030624142706300030974565915566079156096910032121826730192264806492689259348035356846536622344431569058849408677349768125196760578559693573457270407464664435677312047788820353081496216300611160815632368357899223943179414391594425493088966847738076840754104968868437677431303523113715427385563582034179791293080979440948724429901729740817522727814325396981820756999915899182043614977995146241136983264327817477408740409229759127333667657623914443212190072984639956480582125552516652116270364032308355190307813981867110054565832778725347413800571745147041542221804312228340128418998831113212776298570013294647290770261393533700987444134022895401097685065343422409651272085645723953056144882797190614382963512765115988859860227513881417797454040225483895261287292150288265947700967051415760559440244306450387682576946527899020799234477329864683700217124113114156230056869922847708029472970444649972546855434699983184814329216305001891424998823961253237284428350193902717710805593700389604761467922269982422692427333367632797274683886502774479996870736943896007826072730912519717020143135805680845999911003719580079439755135861846519466664346340901156289765027422284872666081688331584094363835273278906742232800938015926154496977377892851361431049620627728252900743699772915687303666970754548160177233384846115470008579564323552767187413417496173810999639763664614165036868877564468281445080072841935157404373607441548951718167297977567813131751675044755655445168299733726845881779916835628057182928953302529212194698516858016056795504163813319464803237742797363833669078358478501720669715923211295474070818314039048318575379188179667901223986508243052375117129241407293841863788926659208821489046341512874783123852920051305317825595813991321516592619766089893710961768782278862185246229599781112350077620447561917265855506189074312547736872401745872312940017471074354903612794957907573079594164542973721328948683245887088813011493221737612023305317850877518965816832207572538863946808866314812177715837446380271476851765161751051040289835849081608906201433203794542829071527271985443984118706658668202586723095812821931634995358694086294824017571732564793839293986636381562683327124129589232341218391018973255412015544305145984764683378154292624017708902195367819217482692387797839706838280831790286227545158933287933765674135154625634100743763448850152369014798906673437074755561746744632349797443802676712054974950605892686100305257221856292277868568953102541424732004686934380818968000780760005410336293892326099068243423211570504065960159928489833483321596524046373472459151576608464748331368825537726744657156883573678663130993026086005169635615405095850813078980793077382332118452319835617587912017096079164769272948234890202091623373378969755743239921704987711402567784231104602708833611260717728531064661974811151378758606092630427765133656013407968860370157798380475669777045481906618671113976166474091641090323757524769152641616676093148371313149621181132209585146861733376088889788726764197579645048485147190936682934945248076907901948953296409322159390945792745671878860020118674920608652377629627395110636691518246760756402505311382369376668313523161463185049480758722431277280815687327305488061315814439121172056882525676712940222212331005981989124178037233251994256993522596102884529042151871022614755203900345643970704878803397633889040555840825192589847297660143725456689805265429819207903389646290064200028695375853272755582937137555680718604487703223171212499639229107265610932471034153855494801897142100411232061557047491557271270142188949510875210479758932126508884025503146492380299298159621882333904808625974883304828916970357215379937115046259260051752463809116202219328839089277922586311155068537969129941490869506736022366464367271595060526878766239725325549941065332662950270704939474065949300259243403899024191626401042955309214690201288082217060332469551036466841611174210474695027455600349024042443765415021625501413954530991215414153055258662656061990256033902060541664916887030010259472772876611538078755212548856268947578135624295841949117071995939262803812019356638216752076224657023744895229915364775349207014295941054065785567680449509999910634095001958347015789787363056018920491441839445505848487891895708902563740893012937188324595702632560108367426891069637611015709092964833479496569455471647919049673542837694479969189398012398453984690931230281799801146862795398391077108476559549242881045808033324918048473967337199926939873888225832595688396299792868076372924720476840256854482968789465052464164575658714644162381319613689588629265684548913853692179034642868008296447931753297391176331469096204477925961339726146047205676311562147220456665951842559506038430733390277863750974015945832686139096619412634880197078478427017858235602075463529123262846318127918928763647663696236085641432790644986729729650696633267069787992433020899573813965067201798158275906175638647889716676314483555453279206045100373647321771318349520795117545965389845691309270990866093769730983177588808659410711176642715581427730662805042793501599565537132731801971902549814565935258971480560364625071565042630846100667847948196597480438431950652064683060630549305458591138995972952327280791766424870897206720595699525912919923182201360908103940671922501118305518970770176156624284325074981999846493629566633443616306213084414896180066364566605628729928519026496784853986542291049953014173970500955150825241390389216013085681387943176718507827376713239231780758595675965915440448161786520984843547713962074331465176007009472350194429665190574969310230845851572416873564307861986939991301750725262250586118447116846616209817163018196087733543640564471353886137748951097131918214268528680771223849712006112059357166663764603395490079359066291501363872983482362883827207714662313856956151985081850526899872377171250935704590188899727206366054222992587165931095113699563494080578452156487453502579957105847863698573691842416121341273627926069402898964951552867486324349445384841152670398677862429211098698797652844178292776777406049611870427055660962809962479223494083336626718379318988357053614969796574057682685672894958099904089285585239590674988150903409234031953437707783879346500142059459789948888023925574830630206676203555427610440273281390618796174310310050962898922654260243846917155865542422557408922964690677902053456351102438966171634634560362180967411653992093033792594382105627832141098946851678718231125961507837826968861524942500923026874156415598076732319192190399461903175170663428078070684361241961352861784436620605242921525883415493072573747621341967461861676483908719982516145050436591539913829508637452825334975273887421281876969986517452602732044024836843471641590690033730917321567742448062953012668179037693843876167931277370200125567624047432742558220946344451295322966324616639856857237091284793312303349627458829321785248397233443131574044304807494186643268271969967890541036760225522207092625908134334918045679992335297667548694522068058247345396968015351512063113107830731924285201956363896861593180336525298647624940071643533192206732521925227198679030627594618273068756226576794063500962684116084855861339976774123215835294801737122778338097559962369110154698887407100407908277888692960032710869517577496422539117822131883618593365538213090238801369927698408990063387106233999319104049638240124275881916066098933060089740850465301288009799147599553755822762784018208758134820572036554005823892944004781601641585683181851234242260599545361668156357772719392349163324033887241154243709536522542145941352365196756830142170842886323853430578247574689901067466399044848131897600902533915690018247803048506299859317031647803664455961646437137333237918629086091667851143568126841011320413170620848131649822822600695376626078586560840778932366024067099304806164267601454859967105892085111995163855492774324153939759878396991275504676563500357224514389708916495297113927340131803489287439166385554699651050174214632852268270994270601254723527159586584394257900588990775621324877075311242487542712463780145705133529560265359973522708047234206299283400168263052206737719440074816435747024822722238179905553011691189612063739831860506468350344079736885664807761535944482318386330472763846901544035862654803184945886668634647479844873307884276728029040889162075660869394304849574099779526678209865399091663148134921301062353003756433480761769510383417555294630621345003352431387646036656708037740434672652384635393983187766622733323384745663165000913286344237422619358557285371197537815040487332012121994342846020261911957529580749159403316131009763598936919638384920177381183653584582893497916115133785294317183278185233267421588620746200184657252520199821285147629003416565661851709850191376211733077739189289610331135137879653017268361859588804342339872880161646425985965642208353625707421946360922685724932282187883401012361968659034072615629847915016924383405038460332907019774603551937873507073567141298842161224702031719484059083534960030330137412021548306363322121620874592464269380528179475419072455830431319355808179993919268987009551175113045231037514045215737996672454698887871782210668469831990819920157812405330904834530467808971522616632019035624145670930212090653412956240069907784578465975235817881609372861591123626433961955739282850106762869394791017176878166380336340469967914487191206481029952366271403722084919996471974017386607290295350890345572199707142756607039851738685492326212969478268072766416803517923679383936593834032039193116824797960319140223175715831556342399052923891943070335059183509166374012852623172197258069980184778412219436499466429967087877357719071915137598085037616573035765842759701592380812368354967819915654807353089400518069363240577831339211885975918037803189879183159102638115539704996869692296343845582921158619234312630612164105354753200402837018300377988835309367549345174045794558264717543535942940457250379202263688857675105190309093529924752039731163735561891028784311227805274427987094636974958953730743996056776246369937101149869219717897305533822269864236745289154488778238004293078094265876676893532052752138194844023441064022699757973455043041933508825853466552718431130458471961427033847579423346133119819205109862667613620526096969215409263040711532989643598484485308945514707861897941411284752271490393318869536603881401861277200113741628603770941359028483862699497570733791914424560372661391895570238323823863278926462679919248607855028030570356666989768681537032010286677487602190813517196330831859425899530815840994577058768200381937074085740298447202611806734678925117822540768512292786394325976748763708845868910486961811461335084024042549786311374464183395325463773150545037968425054406961371652185705328551484362550126519538958473280274049771818177891255036427803163898531313952426564512292441443650632824654901918703553765838046093756010838556631737603525680894973726557541158187821112434024092478322645721937429372576745262368357496677634038817425459301741233515075058699439906468187672861384954821760208998280576194134785116652297951549991965747959147229179876314076094178587346596427318856014169821653791878829769812695793708610163545572666019264064604168973433688026014285052447426443097413510717566716617633223599662081647474626824433948480330176915357560421784138013566719603361083800168254139365704963179911963627675135375236040487200665242048465414150707013180194892035175042318865469043515010948713138929322502058510230675470498428614225128739803754963740726673476402064074587894115176811220111481750629248078979851503353664456977053135304638944260464511649766748824625550359630273582357893103599576962534522173015209627093637249874035706219853953792142729844505360444332933641811759976146819137227237652193235031703437524226692266536607877688197130466622689867475250206653030263738056162767533664336820667529205002871206398016935581320728163702906805594396579982935406961174802459421004214456118453957613693053099097518322412003545280765943181002224955502152228799301294407937653979419361084266884191070297788382223316198914225048838316620997973678920874555659875326664245982858655553876253359410912332764310230928579106447567619753466003656520783644092249110288620497183397247688599471118227570431374214779865904495687878646294515632815258433469104238501012050700808575668634860033488155276474391204603585498855336976607409819852024582209166756595999017204641454035683790169117009500180460299730759495173027572915982828048470015904504708263496855086474346921902943152782001215689781162444027249710654740953807015881511104729999164660267054103739089967052141066205976380490471321349110033122872553380242120343413376611537981760135065964586970109478485009192496689021721287266542990149963742655444978595334773764337214859772729892091281202376585090535883217729660643671541046833991067907949956740480801478633951883609344321626220005994989409956288187452192969034871942122445356386470826117899909261946406451168418191768724662933904308281963219224684946702467404906142964011155196326813770228432408333950220279829955179964735364958771161417344558040782585103251059583191132641817240502186882351023315191201094794859256672565358011244896297616049428498414489620328543837797747499512875543193335406179211071460746843442660747124807715091061603968249412995301903590280402993362416590606936530148693154210162113521796503592510416026880539083735304084736677983066214415383523956772588355995980891784685233953058759979371097395447372543373624672142432770174193160506132613651366763711707341059638034683285668698544921194376859745106031312011733735917667262859459679914367360698540356615150285933210380287149046481127725881193613575733630753179480774302802700683852970363285565274772157958768275459596280804625412972282539680777765525384522567815186231010336422022324518504109851478950328017169384917579501148129258694034044214365220458736308013015751645500535672699985534420635861689301720782165686815007878651105684401682595753391396425876146179185942567903380029603295749282657757886607177418170949554645420389167646230642237380963333954563541051007074627210487100415810215643847602256753647819076191094362010333104113329179941107576731165366685019539124983421584514174113622790611517614442435275338944019254249840891620370167315302205275481388907761083977425992183152990573195551832580752359036009454217653651553143323523574654703174616517469774735076678066488233781502536674057356665346911457469828495518242078103120245123951732723945647018318050555069021455289021347713662309055901841301597398402013474057771326816149964729872496400342641329979342198608740216363161431828451953808619138759911789835866974659496745255272585686359318788969273290423924847315087011994212460498642384986163215781360609629710509304904594878403301804670482678036195443648675296191438879346374535392659145807462221763077685785560790592325891944276160755968546376006438260162591757691787755333198549324489064442286306764362524004827049676606767518063333391880006172482844751128642122132416042204383204751736815985411808212749325785931942372883012476387053947832752282139593894401620604905374986873797604451464343770453215804110405917804699122516217419738349523921464027515286301170024029092079458101164326410655734866757092807808523490280671442978351912442475696102177257073812603291907492506289343450394434634222474586718506774330787341562527410331385534827638358564509042420094736998025337475066013280157921675954917278976232056831767817195968000912619399185555434975830649467278806643255820516254490162986867021082763303805927574699176766018371215561858031026001499039695300504016405169482949631974365819695991664712902809407765349508545991722488085570324977562892059554319678383465634011222705123082788765988005594205915518718803988878496646792091484911357369245280540212371174646721156014324346352950009918020275796290594064711256885995933277400900670206865155033967368449945165120085442700757164082384077213823482561063616016474109448014015309668000138715756324185897740290674688542863132505468687683073065870980672432222842994289672892874260787355964863887977661347550428060747987042322681078516717617857441857854853528343229839476286136918227186178266230322312822266215698385281672726722417431680648615620067988973997441806372401127463125989528512932050798405791249341626535053915166306377757177469193567127539790545435251073758104960122728262567668940200352065184319432940785628894652673620025177793648179981931443131489097618452536994148361561273700805208344490954919437214058806367073642020986822027817449168324383598408367252440796365439665362694605321498598305236887856033867792999642980061893384443256468200339093433799066222037466487040540196460259305841639904598560203202631234502993146428148926397995241445002589965994149722173173388397967052838673750420144401716313732670390525610110864709625486773951621708707136343861148319930684598009831193143279912165405866340947492357781916303777729493867960341127476676052460391640933133899913797889677577158182951650349113846147618843451987463098316979894025064200342990571931772682092212463212575286582935862719368462926390578225337446852688224381044348817346443111772473652578411700695930849151668217458957792853592064623626644792567861828841127521242913454470920496792372442896523755347408434101658056600152909114883331343038176129035815924588875376446949735494115956821282395829235814797186924891160081841024681220172172934531999186118203852148347431696466260162963709218305067733943155678537353529644272156900550842529955267581709969059557298410196526492051951806612647041867619026382513868044820541666329247114783325707440498752175701077545024338025881611946759052120553555144800058944604921705609928146355403869752719110996587446416868596706685862270429324183775225474683093624191906513936381043814192265896777187934950490121544628909126635847969365990267691779603843832689099713275629832188051824243631451448141166904972361337576428044116572562347224277108866206931956326359316423519253346570876672129818391266212709353823947052813345486779635237274168297970090873341944016894300897601523543054150572975386759786904142799069060339775510351505304710348079522732922648966733345956743256742326024483314330293722682229566682913861783146874216001417273829158306864413948989580936343813149569579992935159231753952315890959617200285798030721279774214200003326660048504709412958526498733483921792936745657007954606488847829625129610988464601540229889740811953604680082692803645490380819179704048848110947232467498040330183183048164287269734278673032590157300338339526049927145885125708511797366610190035573029562065929540661930551304263963575254116751325534316586492780027621129312409684916159050230950578977138449500035947676198687206659156837911423024137352943561303544923280542757196428690879909004775818538257851263428751915339849485567884630183122122833622518870579344815529129365297370092385474763820552817349514563593223749923115308410956529407558440339370884290085370254423757205079169882435406074930100132571309785095899994849472975970580755904862350111977494955970357365324878503335770410526219104636177188815178200366791208766290122705355649464207981992429759034556461551581564342971343180969020990854829217991318577369231667688861044202812242626751836387872495363746996890318779830429519365579992702630586446405974728417112828426462088087404159436422467118415248032347428295708370426101811018485655421198575233975257229475770241019006875290657501584269180640718069164020503987580601438669074088170891455596686227230676275164020341341592725822790044816621158577537781898569567830138368667203413623586240957780947015948866261313494344931038697154321597122493095971096082671910177096834282554961225336282374108816888199779702695251560932838209994216444386597059373215378205550459871924426116464907194123802980379301930683294684158381272648007721838783759661332294977360568575727787214292577475175189878199027101462397464119878801939095833125416923236876278777668038439153958154904480884176141656033488873989517007903001086276888833106885620592258631348565317167822948086759730457776003568723304942988764848409688624147955702611255973155878924957412891101872843024947168886709615402101962010622574471472038421487577245302293301965030252402548040580228280999748043768483936548300696125060044683645434267108351345549866449171188521586725862981698361222265021381767193186069895780135854659718617973838321411697583062746260037245498498365012361574974188061460242343454520843006791949935323019881956820012830411470266347399626510270248030347266713437685763503216931739832483307142449767675550397591688763718064663999023927744513628854016734563423525277980624693269678530826328806538316173670411791203015913152629114149357661153361092704225217130319422387458039076375047085713486686785519973675573301071663815324304118356274297541217162583251569771922686403868944589039860567511667461993957502138428752615594317868110557319003602996401802643779646273738465094728312225767368742502608136954519310262370185138917059560192700927682834721421066314738883523816740172000506542717915859474718923241148403876588902861665756155557681704236750690813542522986764958481125051218062191958407405697844792528680071131353297458366440807644160327133766212104068713955884984969233561838991894243395242775594892307198997375790197004024887952853723519652827382716480338398043408456413212606209881357190135713246000827145634009684376083042673892923574008227913053920447490232386947557688238769805327487455600743017584459546594246987283673570083205793153902379651899450021584449544878754394384809939237239660306478302917741054117487458119488559733884597197990378450350809141270778367377394728346646887300241611698850786223286152134747951141109016975636197045710547023052098369554685376047732403631268410071215824412992798968653060349689804726278449766239731075942574676859754362549223267618580276051768237627045177853525963680514092802682286942845273323095019576076201980543033793572329565924989475913225148593594508245218983001819064998197435142184178008761113985429679796442294085693779180975632660681567191038189551820695485313045308172459889746539748293585999528477956613856890302511085323853625215954720473120392269003798450139814537732028289005968757805077899651354824363921339484818235629533243637888449249284567874450294183576761770480706046872139134358391481270635941234246864360340420469520749000422893774771888098690557728483304926464688862623303118981038548231985898561366309966024659742225014325877024935800996946148397594025071136876793143558571254611184838711961081930997683068983223394348489368586323481517447797017112089701743055480248563058484180784180166130270529958936059352414511808102773180782837922133677424416733039906667892736285885041789767634737895493901601128728498005048447298016550428391295299142054018279174519434951151629245914131757938632876150124319942680276126048820089619230260713463172192797724838688179187232386343508648696557629712734642645281594767190253627773478951261311138840870821932518272702278057737065682009510667526752982047199341508250641446207604591973489633392751088693069305487492168574392380622198224764955004826136413068965713231280840503654256823911184992619913585100794312691890585624151127449353830524025910040827139430371353345975855869321898932423742348283975636593238609511005664710806516532779110231696009577020715114733043791268665138455439431936296571474741563403467373735153472532559207599656665364579551342196534666634705206941031774352417796352981007924587581714779329569227385559424847141865849074012694637607164790958603219385230571540629039898109719929443276440804043542352136459207201530533777840914356896999594571563591193115548118340012868926035409279674688734577171800078410873096401262990843918125268283103502457493654380874047441267963383309296300404849834867629905500624945424136136889909440046525053610222832194723162235541353865717733138522748466798153751532092230730918442293879990174228763886740100551616212184069441623863421088782458068558000473331507691538820366408460722973398831290942018770131261666542602210193563572175929892897458505784638836200726657440339194117204907731766263127217181332234476517865318185390251145597795343594913117756935154137130304952152319778986583451603546599660318944311835521429648195812074573218657239521483157512141634528213641315087625822693548038173715662332713030623091615633229235782913844670232416118320140531283727933085156735336551272080620671914415560203884475729293110554294236409675922595751729386195530421528304563829251177261290137584483836283292678543174629647128981841856945824316821708682245380562288464240433786038689657205661213688236282222979877562703480421837717175990937932134902886235844415790148728246661596670175129455412905450206123901728327303534308449196478238457264350085124392652005752822022260239910052963180366492310688438813784374172652981671196242653324099993989610870258840475962577406710899973905187955370735773010289314833226575673514848614895958906534757076171997101096466127181167422765453258567289200322675411949468512964617469818386064163994588094177572592567407973673971344160932668870618882534656698883293740081312416856513248424571101158344232068587729656332340898665614511541376068322481571917676455280154232106825319611313697466393478180156655491757605788893656847477735271219451856200366255593201493497234749969142040446142133556556573208447565823014899859356707383696531457582811750666742012250183430871468126375838441001343444107674419012323037885609588654264467625526923467569550006563359229345675436144617484513804338372162692555074438896951883265145803785934018079850211959101533962215968117245219917478453775167022010049743841591860696715185640244527345148024991278541115675593531036729111779362194418568238338557108483105041466733697445145948922754017475405265537151915759202147964527829850503186430135338405772882340645038469191889912328949030056285179398347333185943993240725946631755584943804172909276087778798512170537177454832314959695676882852161361369609412801047931880602034903842936441508547305412727057443662958988113971030168251476417763616020150110996714150535098142429720035284542068586982518960947630581335683483211503683667221877439712616157542270333942602026724031321050146022667034552922103903362388900174303779487963061251054014576042781956568829014235504827419581837008588827271457825655365069750999539967952200437855759898904467108988945582866199819092752921803194418722745167801017232416503349390345002647436063362840187323140439751265237295679733680477518735136064998400699465551809876227253307760547752769101496396443678041159457600914545495018596953637030678822033064690821774509603463778279292948868187482813025710680596250514677705481992247556168740575298695281402765697668345158632519041692995382138843404694764220338612684067797994666800289482589482866673950657583662326012905081581775346085680260751525056975278350922112898060532478992438827173759867437498215671033881713406123302147908048238240574883314113247532764328558007249992521372676804500060141577358073221710414518918837163008325075636957065740902214317993568725836085256091365252191055508018996445542631911755091532054199307534831051031652303795684960502588969301732448799103642568978696275489838762904506359088439627744862961436388571710459517300859776989715272441145733255557407048345439682862937224045944055776868178557763347285272585430500970354280927587764527205304472328089887864354197906086131160492480493002505744289652298762551269469025601327720905571564623461591692235368954765291922260482201073150831022143034444135698820346576079259864722371750185170057743687000423842152291287248699973002559722536950291560696963557750557732105935047334487516845465338436384692701928485000845787031211669399424269644391584339744921653584241466620884983935092741948300883775978183345480346645979195924943324097792081876262839316836347025982806185432172932281715045829823702486956397752239929014903530092554877079895631213443035195307908171250932795602654152168566297966003960343497614219652789781994843824742106973803971702268683898555438650841345007528015695138626218936159066797201137930740844588596619084706601691109773995023453943929494682026684170983562825316549805169603041055778072985545448953899970527390491493213472107248777927905482147033518659102667387180202583904249434956538253509959663093121542330999256729114827353381063419930375608534821397277549788944819598954164471269649241382135664708854095171082178421562273728138469695224330646496860823190842217465046889726990057622933043217947323691133275779327605727362604502119941240363841131624557387965504169957632894053709653529146321869771549901361735167241403484381833331335261217660628024015177136135331455066988903305925154008731064397442133953017180374057563278431906803092822248531328268429884066434405913640772146897467009380837341634329405137288070512607673396056977945242295291131301902965297072412958779046676953726414878313725388279418203116389017823619657939823379163303453054561885297375952956560134696664668730671634934881780069662792124220572025885561837627221484382060492892396181215697808502193963772956131146819985795242147977765963778800136603808008015852157342088645560837111244057603278962252088562786390030663008172297640917157626424521853254965457251527565101052214190436984539779105608469532258869158015111976453970096827454256244334833649984652593965802148277284768136406977515947832426929863308433046018904281686771287276094463526009285680292999003853989887544188647537106080855368569922190664008928231335068971728608880701184507860560195808252105015133719356809566362176592974126436130958370884729085085616972974507435576314592055875112694638646466857081349687950266557421751153122971850682811088096455652306301208214742956797620025252116686122233838524754026777303545424336529953375303509970171719013052066538191404088099687640561882252137512190235937823742278730506883798176510710979133554649330319505562781709317252610154731922430359074709894797481537001026131706405692159956251482032710331779514360223844976214428147711035727054941240274715020069047928640074427535197815295139878057393666139656489477677041114368084383221699593879219324587121006501698417402346062549161315031819420655739194892714117427124656004942365872739968959108173142380729709666758413451525013740555923594845350962970207147052928267502993511153161743737903590212026569080825181089454476279461645976819774444700308796093765187526339773280919329714610370662876284196062884336487002032421048686167421777100051085350634453614799941009456919019837290018167422748034047932908099636187778939512132616724694846791576511308549244033946726602265532377575923634233168768211746001098869547396708121890066533579806012134182664416491198417424348841932252151823614971395004586622834607868506794536441582547358845765215639658887247588944106758194327999899667447974723910861463864203453792114340422964075253415288858188051816550600951212991855886598469384576958436746405431079770624469267174578141142350527288850251955171555705813580041276476981789430426434317877323688609957514972272778281275843082869231913730076063470347939313017750618495743973131625936688634620756115445233198919155923511386445940128492384038469292587949850178506668822895459617502188481649112348126681561410013142039738916817369865687975898404206281113828379784863149162390746108404052413430438328773502093141308152556826565151703717809956686310243606907707871413175409650603698873610347608088055313263617368024089627374753581217083837266447150936041250169629966752603956759046836558519180846202402516420458174660774066226488930511194600423330892185780281910735868546691322853608089828092967453435810648046139087442731268718515678888358449624090401337522218851422005518828452911677509231067184532204725618539701628997260108053211930168640529426326035572548248756192840857704596334543799102154008317515348758074047362939917573464610356888900919801240196140514514496608344403159792328338221035992988707573645100953805613207989586335849057982405705181487335154242684594872707905566994585322284440286274293143556741569752547771397689808258307537577317452398562262182210355597524808253579033666356170025489553195855020388958297674528691359385652412530349986911753192756533700415839140311388941612797915046699116934159777301159183591372654705825409373160805856988210163303042238728784063662209325199836733719059265518163971467483064511206340518787708810652385986336232454920424687119100714720714232014079901841346028757282797918159815066238305754890677522208070232511641554915921264737455163997259384381660099612276314415241428595401920885630641271167119927388186302679034896383055147715591514067187519896665109707158013680448100232317718602517264544030875261534471401252999732957490600224724790806773557767444241179918570510799811381667384447322850732994040931309304523417025152703852891424246281217071879175978691483477388632736103299563614404510528261951925389084306299279546138946806921012719148187708887267293426706288505651133363267707225078458900802059431064567008255741682023831801097629547205520372243112696097161076542256622779020522306622068658723572138607382183738901539023680307224499196020709238810858378566965985469298387316626703395638369778829301590119854338391093094552793640743948817336678875472162925041993256716002404538272643551103716134848342401078104360684382694523128851909152451838298369802694814177423543573147333938844417421733868503046136556875280730133101218225888653477859193108586524334230965503918790477414431710366042532227412661234855019737519190122251771383062072517576050245619644697479994983905385538289995652298790499670065824032458932548328767996735463010520242380528624568097179431419520977091993982973328533827321987113823248699178964632523363907496284463864845875100975013415636636553757120535420773955687630067836058857262347061552959600692403701109600739661974611549540349964055121545285903456806384594578669567459844083997893421467776084685571838281849454636485316173894756206655456275293024859150337009558080584303126892914652674112299458818764514645760001421008063239375792421610913704754292043551751022242138762397066531950806727940438767299392005906099839854160905142907246397280751165930902065895608940186431995762106269622128611367567842109849500384723266640025100000433668589832793567693210466900796856499439753364459017999095235364274486526439248069156154031694973186724633119028818279648638986054096425876184186552642912551658552365857767058596491103085243486690821500009211950619406988295477381304837616074426547614140490799383566947502151848443288166935326228625714607305165331418264403464292651284727685247694109248345291188984743125965865284840437064745752096542767302301836379528889525585424461448892288827199841831344900611389489403684914207042937007330616037212378208216638335432111438018710689429519383068070399405659917876711072732123233124758962822763124170701331861014155614035519281413367677458881855038450323954878138875874887280675407346851372990151243213212091441684059437891733703908295786287531399844643547608852095400026527079567579261943549383029197835904248696265345384825721165867869694075335956840630615546848180086221695181945611753040917622796749594475859239485305099851939695572995340279346925737505388732053745929182035907061670377220742930038199391753675392614290740148627949021234073023939311638073647475704225062531580129491389096186793886254792235674169780015468958732061839754868797429770691152505933919807287811151970028808712430841031756758627241764510369369811345653358579761562703998320526833717859908712831613369764731992038608553975425497414471450383935821426729236828769784626712281220907248316550469090831429647320449138415953522988299858343126114618859716788675860355946251508424419881041329763319690645357008097767408307113273600441738356733341329684855077479161564863914927752888837203656877377841212423022967978596922558237961341300433602738140311212611605457324262079379578130955665954220596577188075128484224120935943014788045902430189543215297237256502650608481017015928683641481315103848295599037983464718675454514448488078415440578664449333202824924082389887765387087708125682825799119553573733512530267730102325091022640747077790804154221671674148318977627100282120882683245732615640662542210005885625238461192438268621163215833004273587226552479075945923072341551923635755656548909217316281750221864944617363312733692844522791370856293638890112672335299781296437234006437375082995691494101058904197257043335537670354582457334514793215092078290687178350746345266315267052820526253136739550947478629252372054534915177790030176329601729349872170671087153924866524617700002707064034711472204487897743893970481497437757129528409709666295154279212017828328637505133749549841128559277020051220089731804077372416692006885475437294441449682836720359482008581715263151055205263158857323071561249318881633436141506429044587728251613777881321965273542986624984066737574140261284868834594065128224756001121254314007458565373835315447631308615867622724893878520791445259662036356032526265183026137901636828996133764453054620822701383705319371772009106754148944613308467919117613861026495224426577117159479487400108572552108718150555849760584149379739990577130274402183272918115790175677250418624746891663753511411462313301095939041245813677051362088287522438361484780555879261019225300938086471178517016738976822349232173243090292956349311420748026235740128516260145680157745982683598623673499889068514544564558730644410617905542974662511189022145276769717632528226151240048098391896724064116737949599375407520314631612482079614712561063858908798689831080625704621065208397439085313825588812944371226227679991156858562463001928225482890634627686455990480885925480345912416858148002868311054340255030560735479530692057558748185988340440114793552307777336995179763294364189336698523940002097646619657268860847159105166553499031123620292136606464376665271599173654304739586881425073082050976130178351433794956886038836686718706226526430145770405501389280944563301543514052243380124455837695295589859160576774153828636030364398644949493601057871227607668182848950765403198652245735738184261211286998839141691128204118057498842738792557602846857028060149435604085797207544198182155829406861361776547417595891176009478354057994078042163314318474799268233325135614888975953891415745859694010290268921728744418650793879520586914501284212088613122281087274775544335469666723846526755166062538018511528794666799783379412490929071044483062352866867788913208150473825967416496498314394918604515541958936523203954990021971499910658232460242965709022024786656060630383186848781486882348734920142119101914397903839655651180354664199514462316311485717669251209284885514989609768181194519752128045851810700403767324194317829259554189735066191575461842555943734757419771483744772075186253422790052180582874588762595449448098598499164917118557203044524434458554190259290931985481454932468798266272191315709005843134068509334100304485088936397670420777225270031333536901417601690212433876135974165091155955196002684990725000456822380026895733666864114822206269941004601308588872774539149756957111719248088310382389201286898290256404160836523872445772917768509367142002613677185531460789873438848965777401838087166339834321871059663798575851476916899708882807111414475053709223270870652798378591327814731914076449585416783154995075627501452434075916436398939752015123848106932553360328863909229017423422627039447403801608731438378973271267843463200808966832853721458858705103393430385926026000104825020672170620716587427955574251972783406198795880953630668959104216140911809411178424021008035843466873855930921004127693636877375280653082361991551225411819546537937949730314303140549959360471772851312412450342837828622801693299174515598060650084842406126607727229380181496649887713660755479422855659681452307590213205154935766703977865978137341599925054830236465686742199646937276054183489674581555184797870030186673006522344359555683346624151500193805699166435731464702534533931534583683961790355832127471995059670039097342357692362678834263966612524131949342638090723242774923530672601178042288570192000901943339909639810369634145487571852349324137503118878097770893328446818262130451236846914471641131278270020383802185021366243489379240728716650986875487294655879933642715812221815415679571871836207048376856227914075883741121412248043960631611841423804544841095631426615678295172241714934985646835668781434313852085308391258415918959728588582429316312388312993444988555663016673129792884357363531970637730946568771980055743951740339749861586863931542588958447979270140164419227082538830590287105481584851820238155589519693327794343578713301019846151686354385063941397261688531108999088456733660688732448176893362175576033109916080298511136204503224004640818909680711565199383229809919151495427664551060996955275375651760463104167516784441053598355338404177461423695285959353714149023610086723456797320867409281427371979783367842463001913125520201023188894723724386768252506645081451563691709099038563944897050114842309159369708182431647750749085662230577875010100988928533866752837569590452539215214257528085836544101680836614058993891741613670791913230116295602419889137996123444957277752583525253583943753503298377607227070030433832881341227362903721221940427878004512232806100769607071580311337607857982767771759584367642336916265623387605080542294510785185386901432910040343022763947925361336820063032839013270054663192540221356724547417704974734638939468043333050705879638906567751514985566230656289105329599491270912959341764956398377421854960357450110288730211554415370864551607686422236148221426820351052454769360156286791726306544171319693366490621241353683425618818155257491080162965119698671259662661681290741801560425423965912426209894126164678295255864501665391257251811188346419148227303399484048929943831356174047008467074782569879580707989718299888816884672867628847693751293130768214068837598250173810356250144351525709991927110545474050296686147460669728477248558671168421876183419489886729369472222149864552642059587845940592476941842168589586774018178658425736071946689758265906630706273930225871731957446567305705609552353941034601283279065330357745719940542715785004888614152750103637293753946166230241308902338871430639335480558187861330706890358935713131524237524267888270704901743283275215594298284172994281360489198203329129520839529195269134681565783141817047796600763652438803082561768649767745845992999393651513435017991903133941093850624106854399749760887806309007183971267549239118459009799968372946040592399383664850623629907070676008902821536055372523105877332131899905632409127778993363719048399842936910758361342664804424426783167884839798609950451839972257277162293048794197535920706063378515135679055247714952064318605013182576285432913381955140684618319829236720301104803360828116386932394038053835166555943661525699855347217727739001548226360497399609504457181543895427118255158368314659175958013958076185054179475892183548786639623321953956923914922800015435653359251005778621874728901577195704171867617975721219550365721138362426567728054627457297003417473564994899472725415007478856080985633631789175698106689314467340353350269506677618431731396735385973021525425136428849136571049503008466531377666427778460753879720903098631331611236601180862926984951465254709956261028516227443409500950958585520142237651942932193906530484622911591651130649247233042993720228006054121833464843651378527747083966510282758437737561104698366856407473694759274312370594969699455121271337031916969844964303607021117284180086600648369441664342202735723551231586924937897171701721216502312642373970401468069420683196361158290551033061042201495726505601414026444069282959679612206585475417963283234851852749648001139294692664494377840754065810311511080435869756019675079155378177624082335455927540207601421475319556957430095601919324215056008176318266478162344128537592399384142766786722650211833937374725380810635430647622447428981304959112139747365827185562632848495872938125457999176431049253594085120919744306029358937774356594221879419234021989974486047739587846383981083366987194201175936514410512166534432956792641466776616376869807943363624320103671991128757709000146330665934220241778534300464083974933441387651925252808462196530127113894900602179843804252414089243042037278458787944481643518955643318417772227599085738832006067185666424605135401221270409812440183284054772110520195961508249566122494048279081657330231753854858291853444151383954483923026936867085950927028304991941923857501543638577491428725040401098086812791921720646194017864152219279234412956835165919730601360666242047098297895121057804215156701204761415243975100423331147615359143564207756688640381964224491839968482280247132174146137171658655510670599266218150655287029124990154216905510501715677779317179598437933306938308967882527327947462686064487278559553330651051876986623840382217356584092803235902387900232291195398630616085884074347283940681847352380299178665700912354476792916381658017563517952391181413467595842531761400247845661768978027336311258112940996404593061073711831386533645266308950509720576106177554854001803107833572351729010670084413974516196698343961463180983899514828794453803377608791544870036281742732989303413364827195205778362485717444006979385345877416946466349749547524061954615587495606952683606743676647581576252428536081037388428047177285079452166820066014977949027946960318234234337753964227017324000985051773843926353110245375435769963608279056198854436572125812788963226413895878491710788087418187316419646098337222571628200285072797641626068958422116266119413296011549191503979000003226321220076579868717938992783730416374877504429119215076021215177672147052048284004863078961482571275564538305439394692074411319547614081212895255864476962840586774769352271131762982609506529891445380420243251580857140222977621046605812804202265046722662254288302876250799053037921981105854724464380670474361962756977324681346729675440991138612263972884122551470455842651900206565058942411468297154125602936182107898757133575100995257075084233215152504782540544098093343419029710716935577615922336910653689539672703451447568656530982259689218233316307930240368094157241956119241071427492808850340241129141751750688258422135591504764576918306099492114784945559376783269401216317347688487899684592761882080608654162785343358296384100796048052878383650420129877064546636147983377798273414967100711892507832983863069897431467120313415838472719590757345784418506277894095395956706388594068036411756620215023480577622344787794488718050549293997463590205019440380682293241702781236648841581724977917147906735545167794623393967931019284873810617112664443237383039564893474818305127298913842804203567007188101158567651734659517612825582986953193498862693575769162049553479449004913920150220868740621875959475303898395720150850930060480619589118304000279116100914239145855683881732591057468130800844633270730106386644648685469528615018470687201426851956878293463047754626309336689742000819003416672799874395115047344696095769886499039965142218052039836190451346504704761444147611377997492561858388186548470022173862247946178120082634280257488269115122882568935041228077545816961864333978699759186261970014878510518886304832972695573055974847288338064095545420212454171537185726762382987256925939036526241799388366690370483126225628404104938087596028746437767581047572919033412286082503810620692845902839529469258095359185331841139515354571127488604082211932168461267991932214436501476741622467396791844813139714256015717878852984612853062805238315618852949677491110140402039383201742341236195207710670250259354014028014286822808536016761562313648283910020843275553976570443235381185005757900053201043264920407653201556430094919668554898350624647870517251620194032534497954148567706622051245141731829122339406141282207390933030659398280697147606680752229191116796371031353304349426005699974258082044229572203811605477801492327887201187349360655746152824995973054576034651342001607116268777585966702659272312321181005846286450213412726923878843572467457865379769669498070754419322532949532606741564378758408052289689658924212140519472880312862349256554761659662600164363502908302185670073053209627032173721736593232904513968036706348852167388302720790308515431888557886745819213456659668098327410435568606395931011940678717763001282627713302305701285477963476811896463786391696027375974047347237870527426176020268953869028172584083941286129801234536978219728991680357450149200449636345401315959227474018252085160104795524674809189011777701716174329631752628618844606168803952751189813666152953923773924439421510985840661475290985922879477645787558912640958804025701279545370931808525383100534301847080902169031233900749495673360922345200455194889017028056183930614131014744394289001132588723764328129754856278287365648648532630868675069140973943056788757837457619977323715078185734822657656001782867886346495522575403148370498574658328108399395486938321749587829666504107222706339709282415490958502655889667302253889449369232129440208797444378233435935148698986383355971247875609922798499488450560436358463696583601576685717949504349523020182588129751993029613491704262415128984244729792633910984226233044536190260088091494164965244659595324677618820294935609122512275082562250681235621331172859522124614237837414116276811275882178561291893610568680224163586584221091869743552649046173133467555962031188465705418288222812374247112545244261361178111508035429173544268850259332731522400695203581021422504764543692184919507749442736522093102140295657415253841341403432265987472518711460215265565988916940864618481325464653290909464024309710536179430442905861298766910699002469678408091321317684097869498929253211004695042706477252932277975597542809493223137344991383014059434578367654545902927588479474681335436617537483441676925008994406114634109567681049277518229632931805725422215746250164497727678390655512406247451636491570338176660232512662873509561943242453860030058036941067980345631077322782361883694021664761873542293881741920994675340505462907007156204708326527683815645505770815654860094695087585865412280116667025229036518475509934886431845957168420506587402657337567666006299937074999860593152533714606631801375278293664888657522590269148935949405663255383248766383491704118488355370572551840669739507001565092667357789544672906829315994925946819890783209895129130200436682873470051599452933985759935175395745890827424366284994153985723911125520891747503626200216112205336353217161878965057371186027666979973372432735068058305888645810206827880267431612621231539793181304721033648596725826134881450471748453128763881234751896459425757938597665283755193548576142178158276311949199041209047208706751443344683020516813765895591320099822907658122091010336066437396681845027718619282779804636216194987622511596628722322781108377847756005480900084194819249174649762177906631967908349037232574588982483565117185011609570947885610253911730421546799246479163648623730157871003859720923763958918801772463377280820130814274577388629380696955838902556370162911695337056817919653214030797535487415237693088275802813407141526758646960123372131731833735006085903457925371811060585530894427734356658237979530057655157612107974994265122669837931190330817442290321965696174864660533235728958460149174028958014611416433363144387951632347653075334417252290018358462600044558216661944910579099912126860987346547708841928071296336860312049517710412392336271114702788936926010486002753928159904116499682958303364405709763424166989624993104227363508616375646758780885490667305511573969323308894351374592616508785989618455363188170003761390211349607534490876117605319847590819627953478093862606072347830715370431850065165937211165745812012834056824540915881190468516090256979371930986551221821311233580828864867232241851469491750223638261111845451621954349906149664067269622856598991689407565003724793497580914824444287623769070528133900794043846297716475008880795381577607040644668478807505319155613293023399119851255349796446719014558756415392413159004219372560660040304580264963118205994900356316907879597992022060233959457073240236508519752104648517586292372971573276066009604260416786715747872491721632678159167757774840839321498862537350566133010053111068498329864446017535906095491451445725223469576879615070306467431030207392284786590173773834355273240175076738384403841462331504538078841309011675382399689021013388818181713803790752996852515623804725833254587996065195968171835443607370547731614584643966136567247964719616334094281626378155572695861882851498935238613151133149594852044408093170561493919331917347704405437144770314633094905395971652503395575612980776429308910160078340604852458117726306401666408863576994682205665162027125998525503281950408180518664249623545982146941053883642189111080896357181771665227981117439734297491759700200260768538429137181012853212047304847367586701222606059489745578248755543467024448445087311602123004782031670527251624865224021426154485731216607964465676964832528350557853307480024412749026851882657796065026158054220017105007855631306571279006288265750089371454122611604947217659135712776882186852787164960788727430742409355841921694138667010561098282707628362014111722573153661393153159192666214431594349875712096379347001177910663579529587356882133495869620593181654179754646489360074681883620263139236493022676239110954137047910447043882697730654517092594265952269714110873622984397120448955942395493705960342411636439327819079267822287787358688794885774615385023883989832192990230920032117165574425019563060562674552892481532948208012101848678878926756563580106182884464861063244171079450103437941897853986570018617304563995920345272485450929296365405250073329247903061485621283593135042725247616044770792857304467363270164644583462760176649256231565876748806558029194583850575885291908043994776947080712985022237845860405966874305313249059789414421770947116405016785328626022936493797158649155868275627563536475064539718847053567164416810678139561812858834543856771598581878147211511871038261934189507671137249851088684662214898241584741170855331818143455227820222356791461921964757666060653199588554080522237469397773951981992430905954928430875863444089204399472267105686449290537189085718510828129521229521254330430203172331526382083724156342814754986628458140931170773326722411933362552670853324151274705036026719546642604141356663900848530309088999797490017683018374202845573129528704921989360585624438475177488433060055465447154543827996998962879695092973937414225580173204291702370501610779498481393262635963537776379025589238484901535440819319404687262885708632692450903594556936098914872260203556668370150247260116023737865936413519000253340057165337734726330325125564836834596861003067827437010541049818846503969299434227521095712625310804345533708325108704587272775058130675273695610445280621459252714740668743315940107201450848217702753510743346982489457578980124147565234152963698715620340400504149764022527644373646815518390387238909688157681107403220593137655653191595879799668386911629936459679952871994895034193096473473107205545629835864386374823614645714785451959296870166022914470767557536305308304800084345632491765904987221853693761754597823100882817192059538993938612740582648755153290502154548919263915181201189838411493486875934137304338364746448444566936693003006984378062914363104176897139333408492838279277066606040741217546446210028510008568870384663308911313739168461001900578650434181873384926547607279058445223868627000365921673026338134001238482365661832966821649204097739480037371346387863760448076638218363685849727861236639731128247347070572382517185524827554396556094090136285443561729747181590536137325564859252604765554031494190020457708413865206585356445200157721818062135582243904019840072318485313502536943213998549292273602035654332728584386141670404969833991223187587178165695280499777291873125506768329936147630795583515644844068737659576715809932019088073749872505167284813278409072963811338680593200860727967739925394634010295442068909724241598991909661509637298956750077176006589900375686725677925820444499315873203116496949637944438496961912838969820428134792566678467349432689898354996369447248649946066307601628199679503874009205276414876882922949654222628305546701796828362760768152990789823381695522919382071234328229631783252642584638923784514405647055786544946801788236627111975925637734261552728032044546708492603119468706429633476558305921095213375021753358594820173152024604737484694995505279085328727450381519075492661495422092185238347264882547318080448649862829825311364204369624525361100196909865232414893694204661645259492569814998006841589225352428882633029823519553139897952564195447338804500926691381110584210737146037954888201475448451596607830203777351954176229897021398886327133783047214843287008209621121093398617351678059188743720411007828867758687670323841551599207820663119905378684494527248772919674090075297870899507281754417719265475764752302204491866829473985694455715153560540200063541903281062656851740247358624940252105954578656564458479549691441703699460794814802907992481820896498933449837823654725769819534676694262116758878752477677125798166943492118059347860869506565392055231395843301061623071042692574753904143694163676988439304083334753427301745408099101648732501896338570155697002108164826622510654548036024738281319246710711096620348874697695870406493257809997842452669039277336053669535408938434122805008617393104735013076544931946447264288893119065551412880099798603225513294707507560016250956712796859177840806230357026199072695427800511423457483579993460496390640859520726109672210383434688832649844122941511859272497528140112393591145510633842567295968700177889024136265695785432103370405898272251397331765046081478996946774782256352711676344935571386075725770508303146671000917134226018264920174498935797766104384160465414865952349964556370118757172256015487379714621584082275638210771019912959673799870882877435967526405027202947970967662338786937409717033749565947256218661236651784174250232842122302166462434151178826257408751996707998168204687183449542750045075610315905805299489809110943151708840938209623730819066199236889993731343052566777717018592757641309143349555699518896319150660292278388271857513658700093989606544907150500696498650151736009201364052359692602307785323272265985162445500569416683358357837297673257327540932806027523729467743560482370032852987344285204938606798059439763880006479638597151943070546098819815564790616583346958058381905719947190798349082682717862655049655327151958197166784928580537660696411242870419640645103755980791980284956033194316856715967765996151713479378460954921282543704089827015676393815108891810866233974094901072659383987983663937321628315248794489998978155926770075863124130751751535589892772409060061074094115521415104560772348916155966715522161412767783648741211482372914472435280930732359730092394543479408165125693708458725986003964559573524855287502573761322091394137341120024128553067978647415304568762743325105301733866608233135625189978208179326522886481287069289514694832569698175791910517709219108722821321928955675077685129702587151436641078586707227698542994138461011025163754147063782491940699809486824346192445598780124137591091502330482943267086643160954354659968982585228195267118984386566920426056012858830683353062592978099452789954739353319863794074137325412924685398148097355395964254316210076451119893688868005357872601348773099345836056172014637882117682176690420248566340832495369089139413093139815265777788398862609580456818240376768500576462301697699742806266925726275821865762696768044214894756678720633028601738330683131930724076756554345331529579617153408050957140529886797636953955814299057472157478945344841965754051356403283381834784491209003990661091945787860222701397678909201683590682411546464077369769910761791790766156763070848987437054814089621408556025945784363225388609085678517362029669646588027638624518360052452736340084396325401424671834638629895557032161826435634500609318903859015094073592835548560235064381237143765088753735962459400720893779789225084393368791854232675682009588464086823676514962516381576073544284742811390174115419442558927492699863166475936071018905806907199907846333934294544633207454561728185303943115926646615021055995152618368062774615035812678497973607966224444498033093786263747598376928885415172851727717647497487208148636186911971831118222911248595117206643683059977738405325598836077705271197432916293934746139734463175753020288722879689871305163354019236053397498527868455139248844473841981970265119333541994855385621696651192646205338552277158726812203076374875109193812408384713038384240323377299538071288790815893869834659430622817125443266711198423717704450004615573865286053670767949351881215575656432192137215226778391789937934330800260041625484700749630335285269285047495668110164290865687754253013482340868200045819937479709543593220289768965296536339459205726548412396826477964087483515041568888556681035582183841967576341048827992287798013573129185834669337762992284229969307163602851873756378598979505777840718700535314490500029150592960340429833588163317846118897632677976927677806176618476580477392240026411689279198216274754060000594248251702098955052036051997521721712416614604436492214687489379510585042397815482351719647292058613477965016487121676770601665037301572863783948275091358655222891376919542196918644619881535502055652123938054710911713789506048466427907622185587044786748289095400293053619031535900884922345511919164807250119034260545599475437583396884474232399989185475029348123667948344347530770076117853513419966161954958339412712695622089613650816654728775497899439453546753314744906867619111233714280235516838864950430879794088085476432509807633905496086615257909655583606580229626431389903741717816201780541007941403990436562966301138845457125305021270460002321833153835368357264726205214746523748028961907971085167251060708126213460872569583809769483421593764907532196703212010810819502744564665134051429396645977898535386871566391777003111491816180972775655939129847955128941394153364472714444372312776256204089232823594144008623472896499348280460752222931837908782953575699660532701992857136898789034145869534544128043550646087752321459082303395880595666611996324827339769225663337781540954024297967975167115920359752517694990427188849650960803154833758747543557814251178220806276780253663552762801938040325069171143010028367843246332103035009084139146074694508698974175925467211875150923619965519681855570690148896156948220664513921230667386814536910091022809971294507298309002368824989553797811090487176587488659241911050431615819958529529330973444986784470839174200064111039534643775027894190786817751679740202968667950860546334806458970041020454954430089738901267159510303598125998169975544781358386574989285171805186045090043963676661412469629888281048625260835804851738975634688204991806038076025821769119939981648986486946145416448950709359991247134021016746405987576151080551531293998036816205350226840195611464282933497673594865452698010447611062546868931728921258803666956318558091660683482387612160966535574302002879494116350692788492219176920465687939057844064037025122383661989446236786708580052336839017912761052091785273232842717847991102824020274371159377996909441932560454114949677725265896402467430455454156307240028590214859223602353036829031450805165890385456605944890967909734065056235241632948523891692342985424412202231709108121732671055846889756851525998304996408340144063471451509828807269218887239687753128722886260131258168611179358740357007841641695865650019091175062206618370714515036266753027437319752332130634876787802228240060552963983715276218352186751661990687203581881650974694883838468384320434686319042272213736214314241219266791697331713370467901999111538836906540182765680980806102767070484467992084497786367913824560174477128923897180389349764994593699933097617617092433436825663832822984544683904225993416448416058117470404173934075108042630660344120367393959940999710249210730237295170218968601783484818528713296024857202965650377803217292708909620080910631403761771944007243315354324976158955040743889343143128118595137504850606600882676461599049305897309757634965375676372523467167934578764721231288434487387177388001911222702430129665143666026688890706445082457479425464632008689679861615369049121634318673503063205558052589826669338361413551724776651015459816728798842695461654382692575697521399423731139326236827011746963362765412682627347553523382666524764762019478037446061201174902418754804627605242787426963092721521177290847929190628254511753236699616773391910059620295545385780786757354919371091819996727314385887998593188114539641948902092236846497097813121695729609314172024087530184246914943801110659232597935238212514793740331176184447624968636844056491820015654307761247641031658341600324808653980805918347304528187280809725865276224923916459595296060097692507623469532301484985109410031422390682264760636738388762835635813748620076084008139615259883920676139214649031695361775853249400901102925089284459304604432777790208784039421724561586465826614115232078738929117373638159259947123522695068235243652925001784345349700134615291182664649219593750011863728471807179563535872880026778581506437123519160412499395634251652372220323643588417180170944907330636791772385204206970203200438754313963965752952751321572394689349137266077439764745789887414217748605092722574912555611949141362816523124888881401847427116728774982756538112036657518761394024004262838612919688488136337620950814941696233009877925236772544478606723551946654423304746395548030832565208245616821454836243172422015717831493591728985858229749343435366248355858669205281089623629371746027939370870921043579165518100112793915152578167633943927839276159544935290835999619435609109312793370565570604557189995204209530101290016267846362967590949840354204000508229427243762769065409137135682614101550461439917106330945051016157418673962518372395136440975147790128732738835510760661472471840673716543884556933435086329330850329964571466406770833656596498462071461098515484068979488622263085652627109297294001521246627157240971295271510936008783164577450180552488028972773233491578414179245110381152761780083550599377230329368220409114483580348816107836678245296617055368580812066201355672014162081879352582015688563506906402923215138962070842666302232601985858744174772561627367062125558791048553934753375729763106192204901980124525062062918704141040988990316127128922596434936336088292960194996395632064117985864214109849658899929273706150802506216303121941146790916999576680991744794147573871425398790691623410567669218548607846871450567469688179107699663324259301821007035871766185040047021087278835897366452153606268661768724978145492161526567817027597166007507040465968572465083272607557564380279071403438716495638950383898879561345311126068984422609896398576136349209383741447129478137750963420564952731863761117567007965107642816708890937437989552781908042859093424272324718504252251844075384725036037401244037337205254489522951335264354725443996415915972977129127177989937330712808480477288098182149826886387135997293786452637070497371075581761886489087177430408203268153041953849881346685338746022226215035360437426411467464663116844882014823537193154357539292636928483731420272082634947232521572114097169939593097094301169066780909657098001155897208287259825928318364281889807871656709735779494931767287448346757454730977359917632706087496050079769553669575438639159181034818336024422798790099960729152710564794870144315010484002538937887260556740370772817225801013693132003087095120738528565341426921166549273080608242657919329742298433305458071161380065124891129005123219484607666905367658429348090178364281266486997237387569528473162502838601659132809321887132514284537101499162421636494776119487320821121602255473702353250291185465614262139286292496036838268064207936986214907856025428151145280733283751302926427254770903645961767804440380331389831747584181297429685398702311742485098939741128184281853364966593987622761283530959053399278043787460131125135520441490787301286358642705708566584660287966062505623058971759709977865568111677690105754601678184704827434317212876121391429638693846050975617270490744082631599708723578959696679448026744006644678656589232762066363117244120561804930488459907163860728635790706519946168023036165277580442593513707970189289486183626121794506405097015495683508239961285276140499729316771607295693686608618488325485444686156736907444512592642121456881016591681334201304706245652086887928451024720158199015184210630444792316021210778642905421522280378370222149457078989761275705943401234001570327955811340301575941777296500885570988664981770147101772911857049930551022374432759710133486850936476899723043829394606248067478744550783068170490618399257435536021195712560519433294546913295526939768445391509485726569050985787570093413988254370540849283519861675096094371118554053290305433183138134348377604194318414754124090674814269343953200284244099916969238225021620567231293501504467486131605222009739013385405603295734662857304228913711387675814559147261901135261782454437772052721510336401574725721165337473417000563389076374927153979536637813232072296307672990428090239514726597657723540899908444993736137799468513252667736061770839782894951352187255070642081019997722909438732664773091736752011810815591529527866459003343786286355809286744646859164796410472630887459322801059727686608006485015895259697090940469617771542972122686248792088811576282177894163600603430641712991874419704882505044973622181896018031239918252735361910457305407750338987717461810604493477865272564354721237352171011482163270641637312961262847072314063319790412175922172207461287855808099658692612505099337588252401859536305585998215896772532263312531421357862801977498720971305676707086272582869050310418048209427217326929332461114768560563008385429334063381841938167174816435582221169630874511479306466314461753036387031802105564299931795243531607246664350521947145439260561222571756724741808925075781935836971241333648285103249018196489775554594164327757402273272387015799760084171786218958645481043284369431589205586480778718731166025756688319394580033452891903526799635570266823349118633787947993496248255400949754252113435701128385806890054762879809419574572514160913870940315778988864015743165993632270080483698272463866737809434056853497242589252232516777977018198588127491842644035193161587177412442167372828974604704624239471458979935250219642413807047853196032568786066615617010599018707197585016673990229020955967649362694450764650555954471620145221370256351018248977635947343060694559012287950067778017150071501028976990017415732079411073340154939980051117692843884825928362849448470497611168454351634102708111131366082520919094950757094032696655275951932990508363645523600567455145429543202851728386559383299523060155526675935010868000706559361211624340546780031732443574549455663474749098673234551502184455334419433202279642287926652201556382303454732395676721843689469963672911517493399660074097246854942616014487263465326569799380351254087632683857035507179933806517319812719414121603346343025461513780023138263670071028094241259463949115615510178878322949566471236980938001142297674089603702258309243650516782933187440147563991293326705374977905256604559941528305665273283920497291902465834254275601943263873052689497036996376559649038726073276687009644723287821179981331589048698241201632821161190498052159470263946602831501414121033892013586160786878649498579361868548163469247543070882842477501087933731938514170485114466652652468423754223776749026336515197173306736601974911244661298533026405937576775274373584725205674532108507437008322311108125354086074529120268027276696580296062059291475796624368799712911088101519296236399298186004599608353581897931580475190825385033666868231700372521426436287217059594000333559005065255542665412402633505274851657821384910654843450997428766069731730105224472734879954612971437140928910537073734211076343087511482919017935484084540242942385417720318407108183279651800593331800721008059843471880288725375710384352804859854010539625192908039613391684489778064938415204212848813002680881626479888315546189473594884070986477300814224744615437032251301960588674701734389931884612158329335571313636947503926393803533681215485904552693527167460922179980933897067417958404070084411675523204920492056634405190325737279888689350352501892162597884339213597583782172076285070491798576488624309810487416859499590917648172106800226616129666930955583171961912118779435617705836920102721570158440294451537231300905026079305061871003898687832286045044735823268941942467467751652645206013367677385253014857047755000228664443573658120743543611048241587321028964705388945072346000451254731661718022410039857720883174716573419524003952559062368427431950285210120328553283425146141839206966164892448474809712445700877075850109465020342206814494042806734399487906645601097947693115744393282091080392238981036255281001314500530529252730767543721966102772140188650922735614394864129321374491112431956056036752084119972759522210073487287672119473125609213483147359305590483470041615058876550242896434351778526548404544170948641982379934932163039739233326414321676644445370460403409300789041802064839641622286711771831736221992134233456024632049525549716554779558564047815354932803182317878429322923045035130734353741851900256864506558917604820791483035537855481146855896943333977007484149523631858591142794540429363016684140563110556659327755453582038210457955255886227804230912410994401018429355795694879629544644938502508035585798544313273323061748773989382649917901276110826493325284118398856927409962229384441609511751413816944769869276756283084668631847485236374492653886760757662239960508530632434313424798304987293824604528075531126092227789720244337363565512496964731394932273646347607444825416091147312810130701441965115997977752184636908830750742393936187725940762191477323128267931396289366781325596981797050574372456392341741901096548573247525323358479433605538463316404163239262867114676344278218699059017633435964018352993252096747064650965502575561071258885186376903417872260876462722587094798437979442857626657723599769134867161321466222585032555851374573292692296314453772337696947606250256714043791651187865757709376461481388232685242876797954732896432320379323483782462381800942615850963032007043544846985659379011624902711488715697580218359731971225028878164860691693165039329551790354611411105035145630642319083064015466066987864082383881111340423066159588056351209460713258412113656557130795111847381189757400546552876540935901804580798134906246281377888974867268061267545664035384257347632228762561842141927486653907593964235264101888755600920262348379445556709963177433686305029591007808255382892768159264921952280480517147404767362245168785627332971642367224290060159845887871453288058055487486328719435067270040782744449349525485097146477802585668365928335223143299309007028584687765169209220316805403595047938410357947978295643601338251057386532652970226392760623069796695272999894760979541928456954862318416483432098147943480058681149236457234152089722721979861447357024465654194950636856848744778889698151848857387951845035500615408006229162227934815744761460414914872417680326792583911942127549584934125086781998516901363794145969896044275276333965512962350338504019612166156999054848691849642390009586531192768893842441356102190111212034920795963371623696134425420973745947957229414589597410535079062845333689742850928822368764583721377869501277616112626201361214683698490734617004210759820551913898234869204816002932850189977699325240783104566146068520530913270981115671211091387276706267760304263769563493457822104794439975212168415593613087481865237836645454090340506445535141171329355295467511262738404351500626145195171540712160579630004620613052309687268012193816893163869685554083140870836284242446747560575968277582651912441726969208799895547942642515521391327239846157713601795944450677171812535792549674782374702279447154398695160178588632387813357138416601910166036827936847096091776092203113420535942619672888703635153796116130818546654771045240052881364636099099176845089486814781615847016422078199003596073824964064201915029985165472280956606487287966183507224214068037610006324337231245012846347786322065685345216116550242160728041271305136304400180390604430540283107910590202098209224064144165627029870600597149072194361510753004891093616003002750819316293060301133742139574780825175079633411466991369585418750592978516947879807519922897696670719437747552404692815735768549544239077550664479846733611432727001703078387207092758603446246492803415305696114960947908114075616839527354485708965304591081480436440256017408401230375203657139255653224200678354091114673347887537643162261503999151396032039783357147911752269888645056731437873054538751701494517702012327622657155485139019264060229517784044133762294862517140630116064911501612438762246006311406140194207291835797473305551612939313213973686581035254177384792560834098061055581004166417565890624868011035278661594903761563691501906215408080806653284181777851490814429971104260302384025948167439216012960102751782929853469414374997917352775312498315448023177242143401196063919717307917882484948647121581683836556924747526954484702860677299436677973455925779266832595482794661070534105779050905910756630454557511042055390839519209515468473160901109270252626762001133270008225948845149824771125506282866571133102120311412196808086706158591979826256768197057349883674986554769391710566852200407195913293451931358731838900114908464833307737400606398773562414077638264189636912548892046197666865331187982118169111210574612763540805388856023734475183554236311951339827754411986997518868010989052062780381139538170473881332888815165682990708914505014751681609183603206658717526567708943074462001105790753383964549178676551483538126238919883154283558373900998369661846594799014431412813860134725947412736538657789934773839291199465478652930535027463558086448411267252229334185182005511434588929234247879309348927479897536648015559750405689836749893240475954400658416813548862733454117100721772436612873218203229590683365403593545126363792725782222290710822101555989164397320693055458267780873927379015672589776047070976764295625933972888024766678928635924899008423528348361599959919911357682538839078089321080225820047116052131253485837625739282154502902226832516469101737997075904550190031665238784387090262003951647368092606722290434857526497479431643950980391105079305871719234817881769946625184375840706936067292463966940157411163337006727186359443149580724924984053431884783295357794218104206964749838945277191710872229431363133774456918739451857365710883573082956521944514385066115072615612622521148371644846175721966279714212781239047382102489502738677481316827267346931038306016490299624279446189944175392677446014407076162999781295385304138491128273459076980610826177218145697673164712900056426879305339177014938073482016156536974092624544547362340823697407876880985412659375307987382822949928362041487058760892958893776156083763766665049388925642840717465354680460599541739574945259964768975465982311935631093829314868029205733428226926196203726571773005905017540049912242132753863409629957210990950330522382451323267178594823465041762312707963011695255791874079843787973806811944946457295147716827536969316351082500700294211394514851142688786174488984622318143658076922859544709248170222739701463789382406066044364144068182031901398509630751259703132339671531753373733350786814967875634926073044893839480114207398261522376394768817056102268035310701593720612090145861761906300686725776976599322722090809778962378166920353065686867739347305784646457548099004856833680966836419886430382798582956723441236939025422097813455566592659351730186283137811999935079583215583995219710209248071628311463633291234652200443813588856761942447731706266643644602566743253492573638814067707746820213721520418702677516228607028337728497281951095534371770283512452142557373942948186522191407460079937686069007681678295224240157411229098404623710963741243829224272270053039313745837818377748330143725418613151223054452791030804753398469262095408214976538240571329788872462066037602897427685169138318574288300490345999068004988399621873581674240331479443430736021724883097927709458762262989017953211748967231394646168585929477819364813513790459060692007780174015324973470159855069664879448918113593518627207411415601886596342987434810794770086693819858951301958592556456025474542421043165652580946731476339536663506208540692658792961073391508264842442748202379113384906402877998330384050814500203440593891815723523823302406820738564849514723693407968086462727415954627159751133881791169139603283931471736863755664541662730936996739169811649798004013749273392287054580273512565541342309430708564403423091397624681093967840192929452699276200534693222961896406472736456829044895031187054228721104342290101820783907040882021961395781231008395594980578976983386980916017083323674315166251893543179788954245757001072044350518447779530209240051885866055481299548230185697732900448400629063922660193800102428451146706895166610617260014246811832159172774952620853185305905746121687107422231962412054367078923467417166746421381113221573851683504555104337717736215060299254372568169078151496953112767744702911180085996579607701518050820467557569127690293520528931230248978932943268200768969818931184091381560795050090743626336070064495924594405575014032829631438440022397142871504797234395372474383351804891560896327229756077887197024932369326584151365478129086979920720817127994499510135603701511562711355099632724681813047608481076690424256872085808491037929218816899345985287826871274065785976486608338626964347462646558054164522577106108130924255407435049980007234137206285445981276786774204729761147413655704188470979768299398609802154120051704166874755998922643466652475660539593378703407076023031361818373869774559911017496478019132334140810030351941858541517826172632365091024713760782545762342978306648723382743877478381927767913162114238640468469672680733009145450405645377924817665789837495827247526259832628272849397877499740977656057271184912753419042855363743176875720273558485352286202808570049926258024910870486027204795308645217609262539640973199999214633466947288495507574418584208107874088978316163528427335697455990951286582876265360009119155913567047965273249621022399513433429943679927713408910588121410151667660508440336276567960839949528333116926404110188243708413888938444439666847471558671757081350001248930651418622358254372373591802675983911652484860582699159178219598889328090218059022681395361680554625718349240783447607779191794635697417727016328412323176995210057541059249259345890455910322290715512838947998104280461222995041187597383846844583537184602088233615845205703442422269110306059140589910664080854734251719298966413212954992971114733195028813772880565392229361350277995508839696488948139766122938387166932623894927370841765924163258418720387313477722071140413252704823053564656455808482950702274623554331510049414446760621002279480533793669006834169042552682499952982974400108119034996985685039143468100734952098706210984411516036159060525420093828265126085062427143482136330675434972589552618619125633347273810970008063723361122033774097383393938925001858135806421687610324565500897727069480779545674163020519329626076868841807432234263404675381611264708397476133291109291165389075636815649852263616821688491807231417814384200731088252005488114640243930270904442898603531114712082670082487586108577702409293830781684065057665129204219093719785771879524203805420406755836253901075841506763382982285492248406739801344047406151510706593979563412160173077015112559728567327820697516874802373497147553920912340460352793812292738237793826907613236753466800709441936669520160897698808731137019698535928704688270960938833156277099423465681541187207333424009816295505175174162446934025790338454939348445654261314451149321317367162545327581131568185007864214443780855596694762945355136816395162235901239627575854179039524615438634179917460532820347703680007567780266799617682011018734207089731164811626853840433656946715106817949186433982454316382079258181587221924368380998540579255285776249457478735612238499200901843703891105805653778672638928952476003388725254704144521967041708354381634901734907879428281211667171787429048083325380100291619631820168924797029027008408102564599466429033501148239076760049354075248004237659040178798793608820014273821512190303159348200577948857136688817641186662960038432085136921425819162663757817864446976745505261286261154926020393960164768652321119908126281368418377856829166996632640805334238481953420228457100607124613579713037060540637351214708143389189734689551039353412340437822418106556526345369462187150660405790089894110491646975867370055700601667719397347752133295631899708079663162523154706781761061949463234135070686985609273044760397220459020672390706856508583568191284182158790545491841388646680802773775164172810190710003816255776568667945848753915531689431849719634531788662328897750023731008384240357651098582835397826450937413168923143126800452813224213780304634538099975486363978568607168374544142834007117515549685878068708053602408313244871732170816816636354244262297578047900656015710854320661071527541529139185366719867432619138546756780077706162792586040776977158654717502783624693367655622661945129632030350416740917560718681278008900073863447043472848265670430993705284838952267365620322864794014251820017263164057988144983216331239994111735513444823537709075958770746275746834326879558786593786986037536536690705800480472158249066456243144589917435736441116236380312589240033079733421822736024414471220426907436666962594351381143276061777979259953533848777265451522816499194326723154323700655610729638335282808242062180311926053458054578156023573043595668726110445963452360592744569927902916938492539206051421649762386988097198586518162148072798502689672848321280805560222465097317680990237117093660923198539620232634927194912569596405966001656924099777074835287069936047283945114365262351357352347925455833712468498516877042947669273110564494041281617482533346862466510980556553241200685554824813268605858156435298002604816305662049251142702630225538869378774224069945483464819892333822868981246085046639490471188496938302809187748422209528232761420269235949481585099935199942639256332497251741296795843803071724443189864109553395840212291958219040408463017852337990588514849484345996557557700292519990432242404731752252113237047044485136834412954598958297306833616528569400712765806455720176065139383988488500522903140755252814686319312652760871494072015294846601345139608594642031069577968417095386005671006882167619510238840401925556311022729685231243007942140338736321211808359776269096196382818035818691531363854837310960471395904921763364178034765605023587954089787285628082796157668029017974732902286943921802485011980097100676615141924227727882233054938012288255910211947843120098020214623358584161738915089901992057441950318950456635811187237006938550861993375186399980874096712632209918349749278049538744007180030292296631734706349746157668479169544316620146894824952644012757543295170314718601356851423401133069488638771041818313691405404264738561136497208251455838408819326581738441510991675378754676753361637171691552204017004755977447590006676105899237702883158554774932319630618465999601702261733685164138176085483776829216948713590757626325837720727593099422798320232343673281051560671432463228950991264410302347382262458300862071163366040625046423948361117706066909216192163505257425306367996742316658021794407490512249115662899323744033884445635120549156387126083445872472390425146991060117413208537528716744016055419812564458940471842699094418866915481256250265434732934868346088038503761348749771423929605755028793184186848113972408579880184740284418340438373616956107392925036040990167368986629241307645230779680270631680041570438640461620251368361385019288521624346854510472511773970316394035734365250721028754909394603647837815250131531540503895822780202475973349410833377195561547773712829240488322739671166877630387739623419776959324894621257489132764049067178082134604008716051368431758759349061551199262766899303179462176271141948375018836591534808246516241934322682764307776021465449903167350504204792294002800522921003684576625068691638492697732408829765362803335571803728567270721049009970985141210920289030293591765948564186528303009998661552749321079523306508590765801644096720395170260699272886146512144888430482410834225819212207208490906519413625964555275262853842275972370000944864099335468676578454337686235793710131947295096052256953905982967327204202675372948720198880389791778848507382026653105467760082476381958131068468430627686348669389272980370874632145438786835022433177812012441201676001316057256824631912950728912086168314569522691566443660636124507973879141544007238409029587601258909738102165003572394813524500177670761654898559892293853051044473670667235153299450510191817628332732344714284262698360775265678729306213181964961509928378134379889844528195705793446180238696477640957122329232180161087517345370076029690809104135448362011273478434731264047678782590902291409421767089071494973993827760818001139942655418876365068488111150830677500029182050531832495125092857371494315887933099952650003977754891744185980580909761937822039772172536603884796227541212743389448204858926218737604082477678423216501112059084289315563532318391155181640225652334053874046136155817674583473592148846083901072210647630514160252514252638712800567424955230087109391686417696997428937978535681111213479506260349729187944056127598900642063571303016545001586317057408611570953222861980137405982980946698122771911759847558004968458100196911673813784713685648186775727436381199755394303865101850677177342548518219487152740447989155565000707192698236415250584037414652665167309908031758963976319983176148555734192969396603247362166269387019163285565743230323370635832464510577838273385167905699326181878359741814163847714237242966440435422318020395426406275415214429021432626537887180705009055008738186875736009090267341734541476978048916741325006251007745287348137832780524444314574163355565997050691964437541784048210942317826020024663302609717812285970710610216506259368308323017275682984296471238379435687227715087226173277419797149023964594172808058216699656928874774477349956067420472300168562946242790819591858789684868391352190496517952313069169727378250544713276611384428347447233793259076286915408146952296858892977813150186656982518923717586625854953465834839042330611030416542805848173807137369960966479814077924766006456634425651398069547917474055596726541294534636633645590809658114156464748058905075683838846154341285187141309399219986850909890916184812957231646850926449417486409757776235753063655235247709887297345984321034241513728210214865727450063206318216011328516644694454842728278255518621306935501356582338647260317680881712723131908990503382564442974160644551418282204261304563808622526903026492715945767864827050959609088325468118950165297975110608756035579951590362844711659846762265143639020431230216998427185617203612725936790061856764055060874259194115190390038235380728603912601749603129980336362464525490843168900409176737664749969606393644930422868802163024914215305591324584592796786087894495496969731353118181562055131796638572899095250010703054094801732840465125361027375758132440227446651454223839745427799123881338507192776511710662831533753822042012741202386482190746146882215899225772828797374557318711158311300447720451105840704135395363429835622204011827204167213388163990534431334297007187070041358639727533600827720515663087460345678926398623846590356180449554179085099934680349426619298508622753215850618606536410999961774880875533585505186896729167169274042302436063145431375673132903704711769846316950810686420786136259541480985489859843637088801725152222180244143015123847706318799758879436174425817325088478075094468459632969537817164456882031438748067306341564390014158214358376474133791177185722889567239866566995787147549251210746820080975631867141772994546535083416045904735332898587965801242472394193942258865644064642724589378230524516575614585899742060530190687038685917812747624915010455217170674160655027381181412385848853669140946620397343967531141912869394256631159276360733665846777850150630744952840164503421211945404312616308080658864978985478445628522378188566187814630573225192828723972593046726702548113074246237173834794181746733231021400464244369080500506329136301641325028798041688590265452748442042018933266974470996661323553308641152117786929377901611102780116947044569157657673443739615015066298426770330910141763549092255049258858899365285518027215555876051606761293387069147346901479338026436940032912048163390168297545958104576767034515509595307476680406880684701240134484478345539275365842433871434213006545431931397104520662554460138803995947266847031417288018111430546408687620691557698588889423045928482251461671590896643391252656883243476805730292885604712627364110265154217320715374254468979588762042581695882679502836019228219824073965429846516574711418927269888396297427047684194775776042626199598724876471905991500897563363647499740503869686698776557940501400964385506788967444140834948919863828540392892774772024001224720858197076582666903655823441536673945201088520083327968402658094904697131203714004641694264633789558447642413423070894663350057751915495626169030032109046110953562347933040471973694503042779676272029553796090004698114750043219447311682707378853443173859240318561569663478468429258132623643412619970282316232185380994875946135877484041651889113288836118658189192947004806390132937123536895904661907426076436155863965636087963796300861472427841419865940887006674396737918164683737799922849501923791728503078605028755582189574996039704910460506207210911158028156682894513390855241708004810492257979423799725659658564511463300814475036394448188841143220561101918561925813778076133859363482050149780875680082417631041477258256056254078453377125240405977993905615605497999769259768146969076230133923287631985561050855627225400973848022970468896613183259305518375040951139237415486128356215537193052159943133099831295917610111174442965431326638886195359591613499780355918983572478197207985577055367362943865944326546591187430424361338524175538061295327149529950478325460627152439612504821200087942863164508215099172150857246480253258296074263019128032313474636799893293332848568415768817820237285855311257359573056656480684989457730890452904936409385447661543862598066365549180549210526653630090252394237504702879734096000958363927675069865302968935946685859803770345348677872299573636599365484216142202501409104826955219514196475661591950595110068727848355380179661861898001053710733336546220363478140658853015338166555527422375182956307862261619738760352461662131298382151902327007498600498882213083569416695736785054272586668598960571451523646819960547810082576357306493103277907803487308107862463146098727562417340548841013652525917538580305995891962907667588052046672067089940581167389470588882598329868931562085245123212449594951615308872847633243927066708386516718123083537938586156966094253604261071054994371508238366814867760960033062853380595822741402475012849689677535797847459766793738927432263728603878263274260366737671571298840321734207845384299570958011051303536059641210129069162049826530509230763598965411138976425412286425577319708921408249004221199401034059252688011168124928871006182214862539942585419297473745707394760203720604025660975225173948598491194749212060632390732878540150432101021034205582917728015845738608813140542902834953214432247323123499926920487423491302842950206799132833630900958781921319997567875554500669052052112474161220422038239216217414803134826921104245470256452790537028871722682165887244355327368854929480217728805820602018739590481002805741692933395872551176916892865243787987863467389100541696031715700064234041433061480780252095166257378777949084367520132086014681482043753326222614998492447029572156124779261621711899542539095503645987264958056743073196914644190407684848243566639080117274189083895125173431633904737189285154813000965854979299862051645621070830590670243915493158418920717422600688839047059289945895766499066908985456973715247867811221209744721964301387839877857718986049863880622912375303396968414806686388543915149762488376111183220765998239273488748874089178824394286212237062947616597550716040111214324394612154161630093376382061725780738811100405065220173328113472587891776889618572846455768263031511148681298567301996530603285234296590788737840509629402734595383587223045602912842571409683727923046324425630131901167989881648980131807328877388665927043697140913734635619631416610115195828682003389291709566957550708883482198186649443835733958845855019236299541916869193616357544541085938552780149115933355852499822466999145936666215228003057621409963080357895295637188097647114755400479151531451896543376020337254152473165761196644871220679428870524392318138884862256561833543515470497011485869583109859975775117017782853777607235142675285802823843558554820608257561846789399744168243270359252322629924800393489153736547992838522334972244149404582239619802806398772043567797372415085348510649426024675565280660361162447322214433948323520212569655207070965793103951020668655996145455474381495284523575450537827524474868396665601898374125976367930081524726704316352152677658268294681070001855087827040509309128673368250928269318992646860840221299037673337965335709357829215716472482742906110411970533100947664815577798688168414300773326333064874389180699046674525674977280088096758600790058703452527400608692777403957285586947940101783353250169211007293944349271236784584599738193582282418359008183055396799997450700829811786531786974314990596785444967175713879827860183670679003067526709261226812722252726758697409833609168100869171120938202177598372326047558144020193774821089611121041567541132974589834830530017316925568438886017180364743715704144823746330198730123143700545107331270177504985237046534224179466343174611818476515914871499082992777682309568486112255106459394079210376562751176759739760106185423643673011394785138141579434154983880295666892344947463131790139650716314541733846144379363910914408864746031042720873024838202224013294579978367799765127015110627482345143570457248674512129948106708662507310960664004643446559467022451086804615136296106113889056488048272266452404331196524556297348381440034278440015547977366820286954687594130932086743162161732202285063954213570819640875580424534468252696627512501869653731843980192128749666284098505284926067093973746835135981454384531061263886567351815964901079803809896129957953654900307703946885362048729484433589557167385898460114599986298657681203807629127889875458457885374973607875147100823379947157883829444609851083873726277070423477829821230803629655401770241639528534041065131992221756183425714169545943546986404208812217941535966343848855237390662363433528439242501305796291472402329961695798885953785669715215553951646863216088363950608883048411888184666446448120826317958558087804017081700115950988149291868101932855201421567569267752839893182557196961329829086763696119511774832782617150428155688696004633130660568171078395866873591445219872253214284303344492813457388232440419108772786124377096143617274345261481232641680459767567594376373138440112047128533025450344407248313958801738020769738953192061379470561831802295111656395421551271155850299187744532776470873684150577812461236444217775181772615025106045415900725636976024906636150688862290418139186478075509522623900919840600250397471513667426509792000323737029518480549425261559743945379684510308949872780347093871205458434330046869514639947207306334615554566781828700006233896206692690277618796368435737883193456993473027416496759762993171124576597553482927459762967732905399708178001853382202903325494860586259077445550702451515345318091621058720673290212724728328116604917926872751607493592937321838533814382671236205656048305905528754638442718478513729079930304546354740202293396360582976051411879902648238722421094312162798002104119179141062354204416242675650619903091079734168432635088935995306449305129736696315922265204119294409930978320357158500626746074696114376376333023067436218447058078882731970510132227125650333451191092139533193131510120833934852521272133570379154249165831924350549579151323707071198185845854485628274602063412400372281620152633684342737691926106282827863041600537487880413734230884056530630783302486963669329500702572973375684995079369055507000756095820235322862311184747770189737763878287368481777938679459367711483426790122705262050268876025956381454619840526410177531170211157451986345261684462963091306987231751529141829005703501169493329081956163887103440228033643730915840951551742211464346720404948543880648009497205680800667313723051355917655303591051695375741690756903403340746777455675782185063620029383951655105895079311239060261214288856402993800719693905807158561800926141664761344832794044878225352888902272963892651290063347121445945189967247276171660603327194286153882230736662547870918252447148819290295457898444110525656632499818801021863516641249252838662453559038259478967331714298622919397364910059599539480638700249745517296039213933811829238170613119274944706813524693769473378982103777340632918692592346592155387901485486914968148939573086474547273259565971236366702078360946983334096789957557949776139554444841157510710228248083102408137618280998458214997796811898416957795195304997538386878181269269979738465826995201826631747689503367525423024005809048638977551852024158257204770546919056713999461652732321115268164295611892659713488709468672442729572846457443587127732124591692540551922802804562508238429735193732180266914943764083586990874040401175466505103120693908383904569559651377428984701557803754444333178301590683890629127434535623694311346499490730506444316340307357714074940663738622367564498775683009703053805959273404821500992988579028901000883187898049939450529597867115583763293438507762115378479687193195981030188066439342259911142306123951384467305648255929980588094774314555623037016203164474367857870030097842317942276950147756655023524365850298871809984174921313227512598927722700531070427147055318632701990582235300133268556871605605047075298713857994580295797734835424754906913436921263101842031666305271912569540299520314249810222319610474781881810146743738779439818032158759486215870379435791458994179980457982592192838873669117470692940738906466810844996415732651070755586056029217940136832305332080745669393451659221138139328256395472955872492319866578024901429757967613983083571404863483074439096579328897424643084277136490464698039762854446336900782495159648620997923296861899131791674690115921467676532022062414319237076089264074466001310029467938043488311349330213262458867768288582013925020814127818080230383873234961783353756376885699673891954623880569755722096719791542572770982917928201877950356461637880910813858413239127546547947732272826753107715350773256633520057044321524265867503607556772514807632830350468597627435414167651671791402780103454138418981741593746457836232566627517704575882426660505312126734433828599377189594394644009588520454143150686227860073519348599464553951203510239491420608944514856677549115409512948597457010208489506974961978099333255099343926608002270587268155189567870381088980360080412356141864712042217482688302904363463347017099571332928903489254681032136362710633668527397416426389992937831834582101185742622843908572922240015150801958681023789909067653351652729008519828978168607224215138728848611098149084001169282811574466404839508970057194094714142771180230845141193650727296176699342863990204256220955264575415705510229225017589912289331244304556680828687578901303033225620903593308835421247517273927630909447789613495202805973564754553367540128472109320655574960227325668946065862878294182620768142917104574366041434560664896078719461876908752252874377027808865323814125593532420066995014226371758506752505074796211913231597852551239520243496504303345148422921296192712816577497192244892550205848553913075753259787728319441047951210339665940694937286459845718549492095789592938922593588032142653481679520191496491391525808523689199092395822787712488527012469808537153341657719703120791195691438855470481065845103891501111071141666706875962384017060778823886461376173370488022105417818125542975297954258862489170623138912263333334990717299163997696255051437485817424305906687582103063021048091991705718074093131012396373577298525203829785020074731129350509816840906416983438297347008698369151802543001380756479452590512940106270667716737601675813171684244110828589311407788083236200356984604841603039258124942591071658816458409525191545735169210892524803049101653356100996013283977800476227658977763837860700980782061490304482064498314638553496594940796790734117113539863766631215438739129499459348569638474391147188741826798877509124886371693540093552410406317499650759967927053545067484208271550775332666044413748723005003762748240837814281698089505141166339738162341143610547414504863806172268627204049598917452429418585730421616144045495649242881921345826728181718476962648352228802309980141526763396042201780402968609199515175900523102256588137451503562599732657975621532107337495015307205734966548668023431821169029350541964863729696562385319476614405401588062004264697396373319533797170885161567311751206781717054615015284877741165419621329954963197096906185957484123315397690526608248650757499994464198680668666006928504432043056374850842835977479436921274157384554766308350035755003145426836284664676129245813490741218335318424545267245525907869941875911017702512238525200662841764749555905237015411831328430999607498774879624529086365882754793956610264544866140461306928447384299499285951258048572542236467183858781002059836698198889344626904911902960960337722076592917369940840074178072893775055703043992506396421394656424173623043170499222486017178303744748420212916995700031828883908481021318791412779231152040775926278841704939100734861233276115447678324493276093176020081665898639488264470356900379073355064606771400042547409947289139343387318922643584283421778429938842225897120155591366646454695485386889334123177418569864698660621804912760854910426346112155521748365349168052585545491808194634396271432765386910713444851311231736274851785019370835055307582263099568296007899180789155178141463763871758608922909346452477415154275071570431104516950804981579478779994893087071269489775394538064461084164114590999761447584067779032880657512326058918251974486518907676139035907110980035617720971477329835894625659244857966945272786445719337920783346402509954001019372872656582175839205326457068507952614683694408630141208710360537665803196564596478416347819316310785769263714758141503080812603876192730028841062005621142495129402142941641086902413454792192590588108201362657593503032788207762156593994567807050806662644198257120514327458460638792793000561534078366514397914675406720408020578159222045884367259712602992510731477192209776405197013766912612061840604843910338514257635700323380612928856154357445677475848337929129909889613231419997181876317788616067703843440364709866294828966128643036033440699677874990678227017523785859987757875673779391303284251544877042531607560592988086179468719744663403256851113276379286064096726384953834592814803038802435963446068953031680908979009205118543526237157066129411216673652205552817524413197544653541692444940654779277102596765483355680669807902087751985569711362092763620615340936380260161037761120872861185142343264059755910869205591636980146428446524617093412467203591465677170746095650360867217666500437415170673639808030540617592666802066028788459564984950957076026876863558268884177602258075987605316713739212676291818701000874456758171834244727882970639140348049036849462372479295299901870497206820561531211221107607577880035025666740045239344040791219874852201356405871973459539101662038720937737189370051510707979049888257789620951567615794053472042418245951698244734119000625220035886397490497412192494330814014310482335088732529324848759792501744627883426956109432196927228982066700055444238685482577990012890717410975947269845252772646924739139308113204451777010244546298179039705582362871091356607890043432650519997730657238572581378747531331495998767909752333181031221537083114481882063731092806545062627252543573480472765482065746675844933570737904381888278220101347139910421705335119426055662320940670437893389331459131948184698065461541094794994237409018155659142272818907715903151972600514255554370411240571621050454689783646670687032129630175169695219850900484942763738055475602781255016300646317094661400813331468975258404275435083831135659479164223640755551815165721052520274442340141237872976390024052371581753270468142537608026704576357851122267119899815137944360242916727955089462435907636657663972044247967951090311466174926198305784722704702433318709057268198319700922271273260231648972008762081506517948769874814569410643607770479200911569587587965285709087091094233145442589749993895071548922631569572995875981873005976506287616479284980979081717703744177121978407815236379295660448052736308895638579836165968798641559816531624489968117981687325437699177790440682969057536623621177898378369121129953290065360359278438865763587505667393582758734701016203947394412838421676589727763426464342195819104487073847053004440539313920462027407038621598855522556045425583112242941645421293838404140307064913767867822123975531472521681281103814319136155452779095330774252410562389999040337110486304895154813282901597148010165581477343116535979910958696108789458885778400653095966855586540791419814887137370877689466967390035475269267236283505081494253262618943595865354673278715656696022010783212621664569693441427185921964953120905457625657832389696268200312195880504481896931857764794861297512929629874251110470157284821312091430314593282757860683286426972928065899397879344926666270828970448466229681976972884595905865586552883701724121712064080428220650339972112603616064093331972677166027861452688284172103006294758528372985186662040862330109393736382401218979385197297818785343440644492150563441007738400612012789875390059214207993706982320109426515502730565977429227810909015038508069931572777044381194014572733299897142666153753767702533301308426207260440292627503635467032081422124583450186712783447897644928121988241626156292934051749183306921997844743151781529558016551796516030348133222814294311799387461987633042550628427520260324035333647425535456928907376247440039353346304616937751330495337595206509789766760318594299041057203936571935632789414762229669064863115506129540196177575267370555710338023666582417715277422195528681554439339250785252436195736056672178176577211642536276192363955602028725725184997968409752873503682900889600100161985163969107759358903971077723564116778735244954780043891035359344303162654438031888970289018517237852281058036089196121962334970191835418522863031118350543150890652571955619470360993148823952984035529632651764861362431652403081448519097123813308564896083271973795052585508892910341518197943416216135191275344144883655633410634804602760777408978768480641130322723417172591044538067282650134905557743426321767415944401758483486296320452979026776767468175678279382187334628674052251145530940560993296896659754719851117545952026541012165448784776820147635220083877502566161120773143536495239638097161393755263007954928711347202076350870727561330166247018866393054094117697113104851299906534247681964481574884485391840613757678127309420252514079436416083656512374013988290645249618019692397691328457706904411638358419531165144386852620466412561733805006347154444670009174732262285900442613785939416965653392845724521283899659451790118719774573214383867751786268513254925403155698393502992822101183247349598919348085208713981602254357730700813783928295795220819458252694774962410214594518198824951299241654768686592973462211809080386111566206548367832741578855275779657365530625244553981144968561716936631578786520179606991034087908077349998980967547843379775100779836817820271375734259544572107997433384371941753045433959860260490249225765617235914799949067491059556570615566261329700331946075310889717678128488739679297052154763685908006325481202376076680658876773632214313373022495149201738689712595200646736260579620945827085178474390442356957409999722749597307013410504664595297192592353094260241539929694127206064810453783333854478338178335534259620868765634651253981283057508446311655121906298823275360869517036631865057652096620092151876471442666374759935988207851374027944771286160593578501479385635221584592183764718311833992425221622882191190155820872901517529684660464416042767582518908087224973359609676597185152739447117684405607326673181494900264494516514701680220834145937505936800388515065573208522611462324727396152731110018771577879615185650903399360061289015844291929868268293644438805294169639429820915023418553330124960856097615888851850550977590325393015178115148316977394754122727811934825619891203401447067378699461131441674659551647838416308933658701611703498006277948830582765293792198555124294168767198396384645366821483075433484389495837698506863526250837280226306919777647728361668558439686350554014854046874839278138947539518302357135308463700262914988139130471349036619179091814521614002953585974079002865999227671706007892244176002525997223800682637365677121223238361817896452642679720912465195157251546320545216673692529562514735589139658145691044416892243213067602428624442781387798303604740869102884263876676105688882577677853598298301861564577223770918540345230108138938210287491178889686412493329739157730828529489308825401582369146136830560924175697278495367015364588285224245396129040091653860297271874276810686286437168886126159663617938683366628565592107379438914016776951756688862148408593978579609293438823309457237545080315524118909608212459554187854639084338668523003151236750814881012681791125246911805048907758188022089416563011627347476796394185082176764442107607340043825744674000659452184051117364620914113613749704581754284622264473422713052095695828796634654075882852110885482605872237163153227846602836071378298963481491737039375210948025854755315512628414260630870254890282993819762896914123523688328598201563530127780052511827724484291109910051813451014347253576052671555396320502918988002104871254539739372889715298038223717009859601165609216964752595564245119995973828170555639528309922456989489511033436829861733124010020240916174951462223483723836423203618299601835689592531031867617752028628714281910202870733176068325718792720454661716528984998757048308932711160514131061442166002345499657860072663202446305506684057139679765718646229181956115445908369268768577962962781392523312181939398353777259672527186989445376579138748298914087661785511593408322565747454016517651707886438899777149107548943640662052386122581407086020702503364289422059663443357981121494663856024096626666308063127566073583884239320487747385397054795321949377283660006031444290534312566256776645884143091387449980973391850089403600877417924867131933273287406823752416941627373672802040604181116112456657022950697311885627931637426819171492152535843081840327063677562741931869115472363925610271314101024620220221833669932450359050632747220902278372575094270091023554621515758503429771811329238033995666581156678534277922230557050863109200397916421382330870074035453685020416887357937711263486456170224900801133003343369822766308262710625855500146741814707056106878539061846209178296859097992420844033642074643204536022493520632324556275915765840975666094267197596017571114518541192511528542110966398849751448576083786334494330438229293776917679838857376052927124602337644241351312242964300894759272558027622372802472415474867883400346431726256760490527123906330392311003878292876177028018250769046269899828761839355351387183164959769477469475304221273820345319024641529894787129113347103677839948923929895466132092618054713773933623606061987509277195992272613632404485209770594032549502718363986569595680633310783388846500259105975928443183000722640686473379598024352584631800538719589918430872155627566184077117516536184819212275925779590759643644360581304037835702997987154096434925171394959492747419094985154163586927743199443370599725941505296160342925391448047155707361325099354900385004450195921732324372973421232751412518727810821634982247660763811322471118098063317393044021210756642963552926196063848204686279535935595280028927425656123909823914097231003733738599374069777229829746882081938901279602223211514670487254575768508384469368080053047160625239888266161059548278204136742445711162546547565668285140981287991493678409982996947806578650180535920744882679000378051361096090508841358385331609759680400328639826296200503510813104374461950425416008729527428947109933017713712952371122876087848216090240638083747719962821720420792038363333531891106892501657531313239825533965458759535197057896379409554011186110412094724606023550822274631171545306378741893773996954078303155136135574374782532700419648305974678830658030378558468949801040189596645399932757797079780300342438883129317964107150450024786327325275192171956452716931325573375564236353980424283559978274133526978406600443231216834425909180959718779398523291793103601057267866850877483422526956349037922847026592272652164938860215275596618572422658910902942725944458379942264042071161495322521304622891245053009537649770096798168386113617273592631648559556926765788722554864803815241271707750846379490489598529242668670583461160529426559641343201384047576822041461539889078436377811031413872533150452272248339485293929150867356558098657680231032914129872292606951989162021211458658720928690986710621941903326387258862374707968095451916820361721387916891275080241841299422356454648260530582904440686539882185598342389246255343911704230250131321333143207243194333142370992031662372294552083377995648958303725676261815024862222523545621855555339446233650516460376775900353478460266481308058350603312677217410211888774975805077840574019340305035052528592921636486191977159034794035208129281347141971927262612632321095351763542045722578033006345908521418017759476388244136418054640578268744981939403522306227127906868693401049759986290140205711046670482198255827662128445417634415362741947050368743823647155382444625855923583554346776648547655961839291924247223984104920118656443199768274967595616533908154767271238616405228306463993287506803970566778197038028134890206814806760349090495242533069967666968241201202797664821963379170710350564800169522558999491929594403123527272619154218249110255159937870426775685235143338887645403218601116917466892877674295507896798706504912736649582196360111565811779218869709414835807646769073394841744840353667039336670456352975291783944343393340176632342092755339305179677625800300208718823585930786950659249687974298061077194047116436937285298317105883058749643017169102071009384552292153964512342472995752333205936042531966998951061157559618087741019033821660017935894031238980173837183160206545643612932884743699571056743225234237466454786996899849830467521836121752632591099109566331949186823778566617665720991388459349720723063032960427050131836016778691892292797131459332529797279364182823229854407897062765054463488106613461356156092237355149880218210402387471181691647559107548006149444755449757745726793561131292472020838321127538226742705023770383809278943602245471664550363509221118339868040616139138364231233459498451800587400860834050232029365350960381265777225378836780451501837894129328466196639399486819326738747222465860136940051209087682242435176035728330131034727649584200710629705779705014972125936679086809246057578008421401786180458293018090306522033609172821338622909114325689939443138946953808688879195444193357832268734076445625119141032400075457175465848053867432126038745896466649486137719670324514351010808858447760389483404230349581885459027385263348641936997518627245613752679693163002198898440760566208382375501703547809286540417868943094077711265617823053888897844810652964178151724574904599067516601027832996822919520534841672493530323289636401909331946798238253267782499871279087293695264120803761502961684168517483316280067059536646782424666879537852045115274931358028958997635457424266628430943920785729300780977257868338616410673706277527403451116379319525830716246137620252504029694387512140818130926459866557740797712968076565193730822239359123277079703732295236690233868683853072118802127057214316527764874098955406878143008417140747017889530878117436284841802415500815193298926688845258984299852804405494558190607757508912033681670340252295220511279491386995077835263087958085824948920699885041736387694021729294515471198375165877639613994980104764242931586451595948887653172420240433102331337092991888631534534140505544176572606551201918040217845134051409129892477971553650711045482498287248349062533660091636626012763200654657552347791601555319616305625043686800205263597750061852537686914249236339795969440405409904714910079918571093355531345483008924311994200768671261895287499300842102854611848270416947420690111161669187547915055521245195505728844346804100840537165801990338924910102122087530454021729618211530749995949902017677535600331979479849369405776809218050506912878804784796187424815849718312625905629204577378563329501662820150461168173812880183095310789635535288082149475975045939162608553684168517904574495840200864905993122508672770372883761640864634768982090627652015163629613524310426036951760338268547842370889471016652665167600521292714234084304793565252689598798247991168062813789657357996049047420378011085395699597091316457302910569109354954451324326693409420218532140232669697426162232777589331454739429287775239688372909692429111790806645392174307839795350451223401113170033063378868334834809964146825480902187427649295062041667934122184575267655558156596074514253812094070401308717246841489412457906287542906756822747719512103994201524231744545637306738332073343738253724307598791555027756245664392929034874435579614889351841301402444800365790439773323755121137840974893284654978403754587878244825808897903651556905332577748700172294791040670005086145279934871194562477274052305424477571294173334668095898322932370455162899069999356302831101144814460283640836050969744603206676188571866396229015050659266991015547732257016655865503896279372549631995599453820261380429438467043328082537684919438877972864325486950283395873402372859180256263978583310771889474402435931520825592650877495571788620633556146977447943370304275402147029026256392294490424695164414204308313605862179933893596525804516033863287303897948975414259663818369411973334063817473207369041807377475249187743062473935231368182569993514123876277498502583480874717854704320968409271774427555989668076841014392782099092644890719693770022423848165386562404828643720349667742903744284921913451815334667509665528150397991205328956319656580717328848676267801442183815009799143650000242932054034206607788530375345231063814344055085294621398224134864219385300615085129594923396423749866947787929239979981409616570401042677065163684006687459388754534237238337102106284524612400374342964955112016273606499976933741460992507538859398899364601090002715035013671362113942308938528475382132526384535143133889043350002697367975142397523183456821665527790727865856890987700456305073757287707224357792848089831634498386360675029337548893397201689757185836505900615829099266419109634740954738939814327647715514933804245749639618289540394422753730428020113072025184285132885039377087887100026791180068956508933222881207666482358893588508890184768401786785937669637871829960350007170341635754211300833493366536191688792244147560927676978337157417235373499983973344147577532711819241285326314430986166588317046150152454616923278110807337164061819806839078449144516116545732115672577006213945299961073554806861684955830309502431570721428431409060024526920976600065064578731927468285342656019814403904510130912884517825270105122802667693642542480525630197235254911351775637905041587813740179778056776635538369515621036904349699726061952878399297391736397258360935651461429031683770459545398787855022891169282741677156443431574781718753137781333206010597637730031344158907759197728828559831659772562060693063997239146014042142924545756420235019252648593610761476466940961631819743186875973963456068020709428199215597364949371553568012839974178729140553186370244187269825469839071663807202716492420916982796585901039456903014755206484305754191561668405296141242892657781037691990840892520772906046962449322739248632468550318129861633380463906473272866692270813147055495401881487463916218861111479233316744926391630727211384921178903806304925960488775301232256502522768867163170219356546199415889459229452596094917807370798838633884901956742589531965940902419648875810970170342647918975339034087426435539730010805025892070515404844508047201559957360261404527625845631249288028043180332235937334257505189044157461977661524082481419779769443158824586437990643779776944740235562467364517760810590336886626408238210314703219597074733512669534402044077405051643687723034740330501001433060315451824735381145910759085975245067285362959950577546681445160181779568471687707717037435810773012162954802569054299317313685689822214252572692301938389278484162280327016465062711797040305246896411979906254904037093948817096984078649767911528947257705505582068585053889765350483237939638781936934640793612173289429037473293497795584499450284793557044126601411672352697831570398155953704923511022447310499006735817638745669643155217390579383605549248554729776327133541845440977833516900128708276984363188326015151271140488997765110944052330788074897972215661925293628681634210827540218755221079582490018084236664068909503162873871727986427438802029382493967707893450735369434021569321857907735874239562408476499773315332879090478544179660293396531226487042561940603199757011334588593624811012226174433804605719218802693777417855116024054220421482815926251450964826137716166783736520007252641556806096585208233167445473717129394365234997278146308662268630030903712014442487178717377369105457429355372011061677285345884791402011085783617788333354016048982454835654941738849746267226826496734247199160175225459255970544875094989298452835926178916374735233700958130406598671982776673130487269040618571440831176984076388125459758519019436591530708524372054907488380075398709025984306117225310933304756506465518820877566400398268685119301495859829251055577604662596598775926806974729776367263651386284026849594775732348327342781025304867796276002589108915414485523261420685979619667175492734605309521010671492541609094082045097014556448040877981157719351561329594244643492208235190390286561659995621621582936743883119994490347725768520362316547790453676768969578884315905397392232373632250068913902330993829234301311869927628476764049135789264251806354655332147875307074081984330465505100228943237019390489224590663061184100690044684654142865743674106775441803057110682653528407032567825512132201949316754337254081801116264563297501318236352804451435051614903837282848533167736552888389642898975277720751855137004741839549235356122221424557471638635399106465121504239012568678565510503016731002151272485108828917330843241621961643456344093372392557220803713201702539756993422498208494835040982478957742569148685246767622579339987556897568039258974404706984453074839383383183624330438556205749783802766206756705844486821346328213710607902187112818528916932646076785061477100409139267841092942317857597988626907779122141295521348948064216404048855942405855432447084649518276695700598869030099259073054548578363179165653096610059586554859404169933760915158674213204481818650148740907986249832960892429627757365911793563936465572466433294581813683335661291841526266952194839807707519230284324306611748291277879095174266001595372850861533568342548903871680061421524305508899685848147537242092092037194805171543490690929291004262439725805518203317655490983898481926437987116717280375876977202451763777554693442905188107616501915425707993211833037790389573008184438550347934969112933813759445341076018107405209333828958757708704461380262697271857713153779123646375228858908136583179877908716131826866037868489634756773470605128545413826729602437217408423897546546680619946554753338896329490650505885380193505553626826420554415432911388682384222318376359945039906697850213650841517214953418423307453668400294379439701534529646871618922057901979746353186820204861756769964421193894511538406615729720945007241741356138059734567305156851862425696541601831117584092946380153511540495083957308406833399765749906296883730438317972518334745735290707091659492571779965767803926700190267587768439540414669050999505061838176186279873447743279131830318990413631988582894151915794247893188410602298430173038193427208391783594480104822462635130065733025756025424787853471903595828757964406358584511334637650521208635310504084508218466718049278535209808065242866120736427747962591208549497746286581934373423432386603463806763666511392398154446974259281405100619816957148733204556842097078614029696250923368942790656070080041676934071994348840635455267782081548020291376621766955138912771665436974897502647479423671138908393439260117879768618306012539117537900516624534055488186952502546314797537585533664318783088172455596555821658517822185209264439654024480263750738797148035922908222406833393159429138955222244917121944749523265093166015288783411189688016359758334073391889543086504271913689894490133960036962539827281174015055132085452215261458992139070178921358794415018006210569272410302915837238721540932626568589794245811858751361493225081311088555001105225505607410932750863815639014304568149137171373754579325481727925062007840605483216860477849835430924921678735835115529948918150695222302680092926885386463571250943660874297744660001816987234471440844382006781684691253297558314410784879743543506814416630307389153917208339308508243808492021948961836708372395751179409264752784416960623208078202154668722069015864509862088549975051068852021334467692197133767299977890746127800360868278830812710784128401096730228164387234693190148818255010484025878389396865724945841419020749409494223229691116034717032201226381628821208877856227806802492832675484776457436516254545417520309008637273020045927346731330120635875621708126780651086894052926618852549984106857849401580845001663539090146728940257414127877353231178989384268429200316342138008664349722117991789745738013506370109633171306257413599389164749279349254392224431135516408220866021067253450453714321918017218791828668104471792930226540381257257055483390271973395060185690531317303591313389329943597573821912526770739655115599163058213015686736336518530017264826579557277554714780342207893790162436633888639163591572787938650867381687818478417749371175803037542557510275570933448023413009960276716825031826492845545310505117613135278877003591154529731798335467421483789083397484154451546602962871384266467773111019771840231782323657803215951490738413915126297284164868081784485576066288202047740161052632830354340584301645358074275458997206155629890541668838910759279682105356199630412752227098095000005992215200163783881907548337181527240529851439449531060389611990093793702791450184068833509015158529037969316991634174918356110209673159705992846602497982045931463177709445792709764892660689649337296111838389885579727130239193283030431008131328928004683105609083071114825841917072386455936747422884214215727319730134767697244682477649747280955251444714646805589849086447573806174473268027620012512378152943744467952358476204629373708046185034953684147211760323231695888227213378242553374946782593461467839341111803082388147437463643549544983368165758030915195361474424287611489489918265540389497617282587996817066491190349886759454392155439869952755939288781415572477783857819399879147547633403178911928411619726024560629350063808724541371675072569741649423512655848088059035457870904892932673829053247153196902663966573659362078288527126572106554494916053792804411532347811831172160629717860203740762785153935499283506066560840762155730706073035091419867268321044528219575354684877228520706623453862401169490561212067724837611153306678270497458144896231868713713841738174051522462522383918346305481927299213230708701684643019686272001561246231729547256426916183941734747854641770993407408701632245857750512622247546832909237361064675055943306503490006480256476893416859618361650248188320225358213791474887958647487667126737951907015521221705801345809911753733219746250569203606266089328986438229344097118056237155244351848431740341181792992951292905040387112811330792950958482074636418260384976398452259287639417041902480445871611170047409507635008690214634107725006813759209130709780573275063321204291959780264929753142662992326671488592918477588474852446571011649873373090063452993407060292441710519052958879346331200084471758180552548336067523326902578356874752502093677058710961261329883733172640668903027512005141915796788311576249045433780697177651312821226190652748998971371123672017761867809571708416590873174367071520078662027239149006949269779318015002561214041035758839237709556344086503475174395568447704599020556890878688173742489577827680536052420221337668563574486453209779962957047111430600344690029225838491992191208838728918705226556385709010759363392668639548756183578698443645225365427029507966416675768863644146348671679975804873057184297401873670851911903109759113426831824125451440897493586842119385825093642897082033300532657430111578083714547717134027932483634950893585598558173478013780401851978666684081416935290476175977289593205547035724742203512883805674492431932292043453990799690992723250677480796688243913754319255618251505166523132224380107917219946449627814470440642978898204679084622598258412993837186716078282373731215268908257849687543912505573988829790359784697758123301234968534177340531056787311243188229218195506186026527149060703417442365575471802223440576768537436394332922738188770912626991225621431981603286796359311056897239466457374078463593337721971502251450028321075630119621752947393918591798391586436297281481279263525101218182617956336496440388101077518600109509007470569507212357338070153094373979410272096198567489251032669894820670713445707109687100575864301201609677391662402233519883654771601615192554430182150835061885844454064917465733979344036516200883089264120955769399625231726101454546023037305855352788374629602422595395935633931018436265502257601774515280037335026921357905435705295071297963300962848325252748729716816706380385741908842852793283528725439744379958875747075117136066702578137323950465083251405399466491325562091417263165580896548453099348408019963905807680439640700564433376341187788796356368212376936552071153839017990003600928486032615713908505800589842328067155906977850841133420977199732809555325303272252355202394021759248120300819869408662887018565104126362406786615316313091179342188920314690155117763371902847297868193462760636842479472986597584383234634855748417829032831574204832642478369148941612875426309140327838058597863181374967061899781161408052730815353309910395008259307300448728239068030718282152007970016030103770743763832497328798487285287652596317633536277204598295243869616092100695305808426666549474024003205497090597594034931856634041115264810708156117523039004850289661912257881739818083222068720689663185334461485218820581009850403427047449006734248111481576075369952279952179904110267198225741067891313244284570033051110421431523644645444672177107297326822246457145509003414325139526200846914876762164578825980037985814830889933552124776636380664312390138541826392873975512577851836682862633062368881349054248665073994124564407716151090152472402971175933118784147137934721174606486666443894960887761824274736681522703231291897685666098623259460101963900063768454649853247575376431286151194832938901012036398790470860318125693509305773332687630382434548649623269582976535055668462977327501584866735420510770027417632293005230133586888328464276221573475979025491602942078183268313887773053057312586146434293807090615070702483851451328258690891860705026796576389401983378318157949248112513651661339935979852766030227154536463520104117070878004856312255523904593555162074861496436395250306577422457161407452909383721451755215058359569815949077315749603638615397457707065610045127384464495589189569607762524926307522536527512452601457568169207506794662428702077351797380626903621020473467847638416393170458616995825115877933342718705986566346794175829149993661188995224748696871597681097260064702532108534910573969596648408885401588106734937258412888661683119881684960796954027324711673031933752809986643514559277444169516194991820438166256455729183191345234079605469920335415759394446324755817607580129941705396108136439002791980518547290901905554155511646766411023758459670753630051823564055586834426905303043578850893552950084565027278920600532607341400027982085726575490033737479450005972962828896369432636058065472040039949646964432028170924259700536616073912131366236380203408815806371073696479050585911385324927270181499269062318571725070030016147867016038384718206248663745961664668860396950510990246458160300101190048209068411553412387409962542474668149123871286229408907143593557256474147228915804144796933417739968965873197305275637685590656960590295699132423562879727439158578433753715778252612172574811515790040763119152841087961724618639715905659139608760309293944222396095183193676366394210187747564928824665391362119874163811870035637214874665534150882580313400572187670795595250224337623953515360883138392912193246903584079482729383079855252872872248514623741711732460358097146830126398645287820341426845859637657823208893396703760009966703640309403903576894701889963339274037072387730816610390485766052946845573266278822703643638120876678517534904374409701704125548478560750309545192729243351855850516577615084829373751807284979160991703422070247748340514642286241756217754412521875861834027907865019133083797910615326254990763946773568062221479829728436379027038042866424067183268816944404581511718392053834832460680686269027037574500334577492751683780395001202300901785709266759278034146934171165970717824848077163163752466986924638488619892163865305580387771221751030788422061396323250754416219141504549935479036878008265267276636957573033824127902037655927857927787994625439336524159097169899048091604916991037809317880613689162899959725623635607991227667829404642303932218897923118475948438139555856683153711103070504825060613197078365747969343282601371771038896247856801560828222161568962217806738529154414820085350226137000463128309733646094581122689104211208713722034036769311002351850620482438194080103794464371056974084250749190423943131974826671285782625573864729006897565382080075468492363936234240394944552223648018730560798985169238577984040032342919589838011333590001870777025768980064196324101213462384861196758481174654103865400987335309079982772642736345592023182806734332441261404365532229157743779133075796285540308033935437272538635014324376420332450755805063219388879348213164738544207285645684447547056250947611631028231351533473503764504515693832629362675701630605283374969825192292632601089633919517520235175124700007233122779800105730759572833879870802246034449168778090380445845770790708529123778396642786593055386055047366850630765611502719600883427453495432312711159915260775788996359112100630962521745594057962718910281714647266198615897533230742166054899586684557270740185750062799904640596235485299123198327639762261872097565840908053979932364931394459246553005904193389223980569241140431237820496567883490732323436626137273489079159566601741902155358954659094453455767797506880675144187635144537944934507928193773731254953620805317670769450401765467031875264033378224189234474562014627384265415694395523938411964281788932627556938569973728622527426621688046609147421527895122114136644352955202810490663713117511758863450797890814155059778330293090380178887978074220057818387550438961029028443919661221489581821440798892940752059261786572466757806635034632692873225269344196372115226547397196548325249839932330784164372007164220497230693459979059102319019891230713508991095757340595351765410237789839546388154487798165280766910272514964745298179697380941402238013075370604537209334330379196621253472337857981318175498892034488750470464127110220523132557785365370579046042833060145230002306303753553590932616657966921929108397746979617921318046483517739849877877543981176179143690182844622183831051960647324722455217623801006238017835020826348344530948941975006357095369471628386117255333172058963981417887297001656722721003884914014100998732310203923674110658694626728531568014577058477532347009348680942888098852951020182886982983877716150915177812690453831010924463725843521024803707276119349798981634684318363442796707483222755613058234561049988587558544155842008851151789850139500077655442363030941659092189597030462317950620976929427127001261387259304645352211208168008258121782906510222190504933104929892297999807924996327167155482546213749785608478192005264510102697167171496076318491047800837975561248769790571131293323304714952255205108862877653278435910987036710142738570441589304489376485351156146395618417604011077376338545991858047283723546251673091490342726749853616874894430008378123561367720279738196541577913696096022255944567597051648865423989722623723677934482868718866301252042225347907936903328074776154057192409351175356300641112738378914192892526963801496237493715550028562337195679267764628517423780469534234172793146435327663035003644045774517081064671043218126758157355491819798052338400815235376433241876010112817042560939917636554078379874404746616602372318926632351485777429909130078994703318603176280869603321503846490721960912198580731742394021065486476715385798326279996335847340802359138188257230460790941963048700837264033712837061425210895331784999849023907580131329345476450441740026825845492208188697269504934852887242429401104459909558317850677979783351739749380139413528808439890174126104758036098330968686659480705895120613827046901725412430306335710051869787948036565735287347223679534855103512758981565507826567788292025813310185786443052555963353468415222772625727636829855336196086950219077916662215539026602744731129744149272887654341789560002496752726397759594396701044852584290280412343752862500358657109424129588462335370521342163165606124343457394356522000209163084598102577081163859891289667090463498613061496140277112129474090512628512443857242204963106948457716720681371609577658752455642684702951754913512428768641542847435791584325156030306562702066388769900346477198794195982595743432544247078924613999156782659177827807089606149565799041238466189611782258477305781101807494485967113713524370089363028760901944428293618864081656666442877646651473002786019647409019857172721857563649898185598429019672854175738138672775770069999554710590679765640153057773025175042640865458257482043788643859338338488209664000468650947516442951382753305982716169188393568018118501510010097697831006896481976213826435308464177038737074566081072913719433559079274975014179868369949842148510895016780755862187331677359498045356258082521258714211172146585233465257172640107673585889087104152304096029538774847267997416008453659268482560044078759423569753804186471131385196168397130057734114852889807581102191654048711368115399192447769679635751335358479144400619141001479220621719042248215199596078305614315281319083718763555096789980376448964675250791062414356772783067675279486908384713516195363996989150131735834146846759689669031227284374132666352357806272126133522701544161521504547706911014185760044694528398045195444582842331103291008920196353424638685503118007171394899736240204258799764633346607984139911462208131989850299666891225179779121309031025842930824955604510313549747983051710896899283141035557015062782372848353121116652062487442763119467858815602306333113360794167551248638870301643100195890759214693173918730969829101156533656286937581034358572562993266024785695621182660768171829825563499349797279249205306262549389197428037594377124209684114073458265054388619346162408106896842517388900228268418407853709458632449457080757005165783534356388810877119930295202377108529367092120132913971144085025224162033082536594516524462503993237032607431577878046048913137555181559864991305438864199385740451241134808118388936254965290402573641442957269941023340356184910507674701326843762871903529553657109406030574593414837393995321267862845806848587516944367275948494364973562933748014736041765344318322988539054285302979705337731992028854801953748879032545768457799286283141499362826467249886867674182517133801118953446018817183296606176901222971216249881579255141141745840893242189268155759769098066000292804554387654266102194379533190923936405055525312389856267065969143825037778794733434831303905085577241202696999482263321827754986751428219552206419260997578414705254897231896507845263735944303593710876842559846361430347897591189406786036929678416051026939087750994675521072505575827782323298507176273405037354866670700154979319918158654434061174040741105644450910142729262574310891573678685543977801899527730340086074920862288035341151191719294094911312757946743821076387523385665688734051882782971614441538793942171402018595102857067238189753124108459455941830898973706074980164714589940581883311110234887071692641359355911314940476538983708601949021765241794855452680712815204789844139781897952925781866515065062788186115132256185619229525433177259394988479569062651627062383757692629159023429668528625139873351833603160438713175144738200446809566845682702747624799354156329350616479685145635735013509234819490629219302034413428329543321053751931766815986921905629959055500916870578882754320184662406436260011102876603754799460827969223264185851350527092510131160388479621235230127342196441929351179605415860161139018412297366660856138769663302058785303072823243053442454849429418525159229228217547602450898194444445580249800514985054305400127326730922323407695366819453359584464627391853947157559439782999497028752489634742755234083737497528305398286085398136983315268307072038930402351277304493529605688250160660191796204838809432038973360033883758669745214676134414427951435545107855648436739043937715849848839883715119517417439698362749224512234622236199682611051721710840352359047854887184060412891928491665299356177278851953800624412501834137402609369290954809987980849947254300210579689837780806088802149417916107128569474028698910518623631559206377862024143088164207386285246538798928526082156051394238714256530686504670485471847550916711367767257378171668265473839968535631026142769599731491475966629504102181029282728054927834834411933035602451566199858699254533555186401853718124235774795449329686332856131689462597307318469890788773895921210301039567167069349880656252019938706755482212036556814881299466135506946954701164411079190725077589743006825811620919334733565630294329404989045132174191722825406256357407635270824200817746326456442547995159267939670820105101629069780887113861543344088711761875995557643383746459254226186159834715812165581421553091499214117018197604907117090189163414470140068953412821350225789031499931961864652144400551047719730854066947979977482133969328424269365748311182393294714472286304603262735659657214990520889049125914567291455674568097346345783663774352196879049413681795414545588849775304733852884863609506534309694194206671482289908129722410291782974432942878015749653876023749442346730192612301232558797462068814825198029095942669921437289652131860161962917290069127293848302615387770619583400110412838785091437776860089886571832337871869204370257815001585613712314931612011741675233979697446978483139828848318673777266234790593045146517581889767351431948519725738075637475553463638484256428832171994247191131145384557793057987245431644707678729309859092357608806899652688730868003725039775545461335905295728018923629367223000953395582771579471104905747896235461996648031861768782344923002544483711005233548049844400434555763660419855690080437937270621854335518149034900353461325377740321228341912353014301210604805989355445842149890343731257548943360255183959183307140139532521181469387588877822842270201623916299233937647682357294966278411659726342342322859527637639004799027510208799888973616778349259895135089250495163598936156994817419271671696198785235584870024652802141641253221987116462392837145448109646614269405014493109729815021259628745138180216138588524101387571413735599078744687712904098389172635738728245232463032513974776081315516440956430096712273159295187481205692416625383674224595402341200973705852522001618414487990765906255178718562097515677673293511997623066599600690814770409496284240240748219081495384158343374941532249789794635478114482841473436415394723545375530793211196888767865814744944218838074612133093144991836580783653328927587932911029302366175823046776699965615522220847210128064806187575561245154015621689583005058302517116313063647365354952301006317069680147938260849476586443303655967807385486984007455225268175425137281580934767802988228160887465472920420338990313855547303692395532476247912266162668920287316862675703536661614375632859218602236369834868407841428857455273477564255169779587544790763122769392378503697953244082952101369070144392092961627932354516175129604305964809185386946690133547810448323665279956383146495297776478606965095289993778204637128802613618415415736166416242533213406395924068527620437701066395966344433828610790822588243101511047808340226151499602844499765792433316690219919873191516797379255184831209939616503621192007705076273691530762618231107081209177248747483984886519482554073157586681027129113649311025833726350960381129088755999264120012230667390643257845461580635275917397557421054316435847665475680472180172515936325757325704965978146434648305968663415285713350737838540906943929384411332712253145493091405962165413598584324167175926124134715600240712492679126957093936947706013895665242210052397969750497021121796751673423854409501957573714043203852646232727789584697063678253768202441891916519795820075283629745357594170604963931364324807784639805582405831405147067705192995467642785554412220614699094679213143868840929526490052573622099193006864565436801066177752217603342632100115437568994996586120025972153317316694688555732367794098417219808732254155609745086868551511076765740072817551112418211764500957054897058847482691233945155236854001486777401018849345142363181071046209789897132004364974609163764758858477289465499915418269909820640161894022018526522744814023931846505656046014704042765575492875379654555921973896491956183905678634120558755803376633778022155180311630875713961201270551014697122807778759096411841386550381163925836932256185956619390261016404518116225011530551336391192219141111854948029139568493059920626372027847878756832518399608304844922539968714087846805207440478949651441313052504269300388001826801530575530895741795231601044552290259055121123427977852874950435383211073147379037438605999763999943126380625506194202289010992258180972099181193681048639558514087164018454261970417344135035772510947262561399528100299633448569200289928137696495802999027919371599617406996701610157879136138609834332595335514200527888215718242532113673344023413217450577277913976793783351225161509456169756360872855488061122198408438188529965852399810606821882806423206531514308370546248021761574511403796484222557490953346275260888273417036402340350848752826203452370357318690560314513326631432152796352863147812972960056308537063919499927158267676345330922124132881083986901483262149342154149245275550967714351483074691048865470517481383804845600826729868246933019011707098579285661730115173182516128743070815737795716080935563214369842929644931606953091449647826222760362631729335543768223131102357356952738884870353645860602298881425184798057243988161318826955946201795507576870433216362969561354689923344185119459946208996247329051362894835836544062056118247233634371773040344353238858660828083183395175738188432718574110804496428433694094131427475378158403414316138866170344127028809991671710275357992869975369891913871530467978535495912322643057195639424860769010638885936477753865146915654728448553025887218266678663485598691212109170625349919604669525060212345954139661383868279194308563430029872448046268139050549384294488301893399070855930660294614878415858635744759301710490797266752685216021594973610392727890030084939725463406072246559190175453041744065529242299427716734983476491542909283189256896778024756749201105742980611623621767915197487242783424524742861830331337058420962268080066232468888298702676111977756727807694871224911389141442005253624634371689461184228136219098326021426802242788813887692629495705849355700659162003906138692802129818430484956414866256205936232011238278322459812271837496305497750982965488801620849859878896433323445678841181724527160494664418478794388867749408959159226694030939446375745386880107934745290316478384484834423596255278389067382177951832279898745874303098338427141788080761110752551439862684008035887743740664471820531964657905206805083974509622044317090193516734645183058386167898284911189547900565352178306381773959476998586219082969757454762940731299989503386906547797668637836222884656316356373000058839929483813045898508520366172979933002394984629107742564652455036303460574439621000140151307491226934514046067032227083484726979982265053988920773486704838722175681463508077429320885200671505465864861989099479218967398840722032207512561199252854832323735239764858238569393043000344704265290605976998480788973960716822636061990151561389187345124637028534092450625006384175052546867204377321883986147953556365888061580317133908786242834164066357063664714009494055477088848631936375400270455527652119015477631200932555911192486699579322490104885652771968738109098335460381218486351404586788568314881338085571712343820380123757003887765912475136938626738510089777828929383651202937617820796767059330943589489348639446109446534366580736952836687655550420262513276728097888904851300597236445465063336494485024256094289727426892987215090357186100422163184506306521119824498751377185048508997646629803627453855086717668742292202369980535888285035168596998590894745833646744925050524744235667407201508322596665788460305120128999531869877878946638460551116103452347950216765796323094441838168399694193044347786995035514555930626249959994690560812402145682470377965060428527622503564253540244292478099818287825786576098887411273157882532527075280168119863024898717428201660720708182522174267159742117835092935268918615195302689704481476078287926002855943893275918598749118283965585868777772609399207520182149764245872266149164961915496660098263041332344927180590834318615401172965235109178386694656174961560587508158930424010680738702031900656497750634997151665652114489535218987941145267950151039710292881458931983812744364827636034768962294232143834820044227269052090559823799241397641649591075631499061878777717593296264190360144481497319571408973600623485553571630585726123367471115552536728744152464420254949545329496917661701535122609536768398328473827978477780003199387286622954784263576291898496077121023975513178060868143704533466027606625761572173048815386733099486630816219832566627454119532929152310379703598697270402631214600895708016203529727288287454756651786241581589437753139490725366579006547570527288331819009260503701720798272366244198532129822009439455147098163917001688720657823452565873640581433456398183034417288227052206710391483582106609763184562614317436632063333417906364063239862633298431393897464207104585715041643941614377765038463903489901719773266404880762104715783545433408078794908901051776294838209196921699572456264057435816065197129999641767086929341267767489709360898076431630549980263737243167905113982994453678429431604534541651862703220648759982661303913193239599389315093106894166829786027499611291945878717842224976459873116302018736397485314604103541416099189607519764637552415711915429536158936735497450037278912328759540919931208081817922281707038225826517124147984925923950166112691286604834231233002795213873077329983656739466135069531451102784809280375810143323675546773800112073074170190867461626301536324638967477089046985012152004960589088160178052819727196461137292231995007436630319802075241983297165470238444797776654707024803364227235610874628065206123427530823623562237361764587126983668771084278617765953158247310673071855159298193765977627455427043440148264061571881467098503982777729932690561465322228520566029695045282524900154894380725143438572759273803119662210621771070704396380199658083720319929284499799920509235640229179107783914028667648442057001213370830527282053157428602767720596479824930816958101485502700196232659127948394748031502969878510168902560473814955352000960912112181619516678196996598710202232756817011124311412941069485577167844748589720251726755232908363113733917213993445739460087044588181250658076709507714076025570871978959717448719436410652448760818256431322872687774952431528413912859357424596542795597453268593371482998875752580534737932547726304152646569692116680052191952673375826601741085990828886149263217961258892370933834335448625955281427315810788151101472027305249441489621744417530853172008559774759977491586515187798818016715078055731743274959202376183089064524842586650245342085441290399513360602564486043035546879500897836259080149279808688783050955750601486703454807702550189481444677490938630873770238323646810324336784917757148756360156056478676997762784317071738709795836011823887245501118579851495748933478926420068984122237234027962961622930984537452730955972286395440280561446706742379157737837419418114766601343003827863827929249882202037841173591745335634481885217642021840279049113627650718092585885100119612878960713893174358012493440071740853318532707704549859076933357481947530867578650188865876653121504233075745467007968885152806368735023952710831670737750766107999547614227391835471031983782378729725501147605803622915770845848610925464756294402976114815969431793577832376123208341358388159515885918292950963580657065706905700579779835328101551392443054045638507745244049351247728519571639973110050888487982907643561574952637826523675405747415293489471834692686647202228546088713286278839310584003988444879669979342696738443560360088166268400019023334478737327572292368529051454562201429749809433703713704039948246697662457000301302570328538166196839279321781003906496854025275993326204940105642387188753786887638439711491451361310852605363761533024924515543248075160155167627527690230235091838620169804899792986207454955112916447564654091868642957780745767079064736065758609790873167478827592821878830836234830933855822288894882071409342533253565248723753690379325071835808816747052308597469109308696185190439727543475022111960650916312922912310920536013920240283175336131146202629577717683762476756093177454611348571854277066301352309439677883752119572759979632170292268315457380005130694613629469126161365439484658713555886147747047986442629524222815600383927844040387959960219129404089885585788225756503036345779773381166411233813148400698305332139258247027368312128496549258975076714316088181959895416978364433215269514206197412171107692187975070321735679925877914896159322746177234688288138773252963542716503991202002774642595493387587604344090373898565064124113228519160122089106180765258208573354435524100763996185026971554112420216578440547253142716374648962614051595822019024544028371761472553370884127662561847985947095924045851002313021578662764234150305858837812869111314400720752661298586763788125507834181234136743285076923804391739895734252890948991936878120825661120461371973424181210346546526377200304088100530628530580063963120275524794249123961681240633854093293341780043303421012624605617998394529743071775634886249178453828539490684385026604203027229692344167914681908405279546950352044524219845223680649229963133433132005531729219132999821972064243473445065942619617730260013490054561568999910728615245784022601606829877702471523305967155498722245152913224742510867595701334466716623018998340806266473683145903326649443961944585438526056176469697171265404318235309773911570570280298504503719310341630470119415194594934776375703842884711674247209824057353300980770511445222722071688240676592035932176331920152099339492481323805069823791594815403674441348758605761107656535033204444486395052721329357357914462219781066961696680676460276039496629681895222959571700207478176619379743820588292644473663501647679530417968221434517536019503415725757643406628559809427806213945003840374949812607564767459698794376480914058065757800378746629483090485047767707467310640366525166691872068642407860009426845033782538891395183586666366759761051058228449106610903331954644921793361760678140073485275144893095779886459737467709188277367487559987013282194615344295814077070128090381026933797813382880449204594753569292589937576021141293645517414387507020491931798280876708267656191484726996122687417814790747038745085798819374003613876846105241732689691341403543485282168209463886827600326302586577108894292880488452545962476543431954490514559756418485667210710693469841609550451079920835029057864622945084636810080184213296938394551989239846087569355815490015821382720763572756776519634631892604420232976042565606734179893320840249966266852709596616316440545684010770603315418876792259388990852322487913937110246621950392686441942829086077497706714274902600612018986349651767514704967133922418703630735003655016728837806940350204151239533058297280168562329810749475000372301962744008808030852079640892485217667714551861357536122817635933243303301366076910553597466925087353601803600932627158039378484828204748221817960707624561316189631475802483570026025319519046724852024696495369330462030260763176967585157952625233278951751678145028099143204035754133208037291247777846463667110670536567542983101363781658808735058346506676009010586986350543664480173345644533747024850717460679368358905641106279477932930577337780421319457661422753295693419822237612435705186261291468048509015718771947209608176554390040301345912437619924142239615902388945416682080745303832288046995100757933194758990352421527177152984117494978025313693996751546897288359583289988920985135345751599634143077262327953834868434216699833180771072192890070330346645886133618803272423853549671245202850052962957008930657957388309920720394713553147770067376704074387725584761351304983299602410990686204300206804293416822967293786397518060912744613620111430666398707137315823608892293143838016932370822130183684945663543591317652671162682692309142946505592570334901705307875837059870991377126349183584370102884959223037282329541189488141567759841689884129747699457030533956510806706753394359818860195081393253240509130818692939302813690699150897253907356230140579840813378641378646845220093007265709875695937912384420360663293084845256990366666716033744152738769150674869668610878775799988133512117959564904506987122081001677555539404560908812644981715652577602198044564948034750743232680589902585515504049919811766786240067059541035024960901344987559133266731095259494045380065987879113145120123884353343516671179097406535354161230321066106340863805639792574385717671937339842408211469608975876084502734940733500221961485676190682972595153574157670612487841745691142648869946515666194384616344191590860399096490268368099106070951144190761261338732903600651630188983200744089450044478591802779362412304874616905009557056158716551271465399958794932803303786471453137834683579922213892396430321639090601668448806042233553069450194047057768097751928023884730419531569623568472121227512767640296933382611788111679461199780325355544404538377566729794002696353514989991419873020745706547416583652414270031309485091480666574041068428647995170696729626856244635963069944169412564244380590288027794977682878502692946526667120921492690501159289957597732881664217729638423072734197288841520096107708806680080195227053654313036687518341489398536083593102658518641207622801710773098457346480581923107259242250096837046204648438133088449292611491376733117444165991812229713433419330018678004147130010734596530658834784734854887681607887770756423838482550892050212878544056939303907296097103388203731029566884866614648579973848385795814667336010056033512811987024447738055512753845896612338319689385953401213987376518327259472587322991600862268875509698962148159583449581525044766398401680598068923293799164577000914490529616797507399097843334433698877446538000455349893115234695419989516470220044880702701940779988493185812098428518988417532888011162935405494192974499924124619371719526608326522483116232317024243439433897289281420505353324313713369635383101738287920209611818618482736230582451582840075234075920929027690040070345386732127513477244693851413603794530332180763427924574905047674784527949024560895364352092566755408770528055797887849670393021282486077613289833160287367548143631820460410094793373430452759672974635927285204102508938338454264642680127403606435854848004064399012423654254340181904367664555904047604378496801721394740984853272167074918889718109801106608323120980611572105898585744223044182443228428334700534896918105799862459653292001297952823094767647047191388474907277922060079572899676503305866014976853952238291965771177283572857076997211235120224055967838832441154491775025940979909115186316908452379979085268558259601865037034920883886321753758779397441806377764156348839262277072979311621541568994089627135614878422635486291574740437368586008721240838069417994928342103086756084633524666559926845386547430670486591842942000829982160177687710268774071681434289993627262677794787445871744046133108408458097443975703575791823851112249649861481682467888825804856012790520620443963574477363504908838167114751018306381638675038051190156747700819611576760451458936538699764629839011862676065184116265548438896982133105355999536579329046375468844536489380429964353294762857267220536923026501831735946093346775255485752603392538883876330051873622061732946117260617857823196801422647603905507425370258187504359209402306441871106212153055202502289703387734639883296827711482183602931484180106059481704298804543878441612984323964531466803544258022867061085408472480967053887291312246734433036984332712403855828099406976613438494370624397768194258393870378363869251976158693640718505818772356467935373757923837966815327746340108357435957118205419880353309330395742231606677790931794648925247825948439991271509453390363224281251663109375173891659083159093240407886113726895066563732656829369694479378972283632523117425264478293141439717728502989048883783270778137199051524226265348801351192976253240768327214474079649581242237143992881602288648629736409115266065057863451908024500313225580779813006124675398053579463044399584546356457408466311115374715020430313240085515375117123884341278567120689133391437922900242685750534376500008820612605911320271474964915055359257439641614635283322467992265262445456785553624530617133089958921218457458995342025502091340652681861876364917450589693456367270501365697686546634716515805966313505773282198620601627827198325628744503967086448719791227246684808567629542125421038833848686883327916786323561447975478202404098181208787476673168221613682960564159283318472389135076307919187772320355899960764971758588986629227382496584518781562438727080981532472919681386308688855529987540455482133262058642461208482970896132195144799715625088234251110446947793527318978020501506314318213409617667149810736182313475946166776303599178112056804338620301667298303521840491105654714952830375575969035946775615864095901852892548450161119286008115161433380592253360241400153973935073965139449069983467224962091083348047728602109350488244988425661952321937182947238320321625700013454166670335411935217795013192721806414630886161922654382531458348998047894476339559713342510543321155565107601495013927718764484696746536603086655318496118309520267217947544361114628208710147850203304431029608371904344293995646249648236668530209716606201877479400970965428782325640399182223980829052367757081996936460339982933187898762172045769099538858607730342451563066607000829991196851678865191059252459571563048501291850973286296207720427365906226280672099569540583501806729751088999514292520242041453113973246796423580673003508356355420868230978561494752524976501607420000868286206953885668771744188119835223954253020491377854835801974850029167677767489832425817410810577530756436986973797970992580381430481708338803543945027084720291775543931572595304608245840703855275325305755848078175953885435902191161009524304646833945373450299959706114579425839489414684817931549221270854340213297334825675108382219522855650757231458572531634380222097598717416908979799006285389862698687360069688478845727780989745165712275876560064167231089415897680760156164365234491778120715376902002746937289654420171703423900196048241865765446667734848028020224621282991042827341027562345302092029677582322523972192458930546255310875515422384353480649984099764294133455756491378670097332666723075546052596436545966196579987686328921713306444790668361420906588913167996114098854681231169036108974373926025494744848161252621208787760086018349206890014695707893548478755251103153615089415361038429674549619704874261061110627343968345950729791562865732189456612385071014134170935531125627241916366990843972450828616315561233847396295614958969503375724294780647411062944736243806582563415990392206886307334490514074041841800047128848703493005912551412747313288723290683250863330205811702298418746832669204966186290935526703326069584321648884784620507576860811350117293717522830376033363231075511045238142135467939003695191080336048614634717724378263753514689312171303992128529859523979566143165172407862197408485293214582439841439858760888675249788477646465076958418722454604834445977459653061900115478978686033086309389232015102576179066397498947263651122451758206193326908826712405881492307811715554826058555235179436473132943896120106391827944316796169687089742376136691267438361062012349208384615628253563643343989260846683179022015075677458388107209469638448813930302949787477569479523058108724251993751109728888825316434695212066581136824648375619195578619954164125852929113554628065503759092486340216387010942197411600920614947948801544440421087825176964996922084546312496431417336012911783561116653127623333127400456067307123272887555565361257087055184058432375799591794145932447364185888716476186970626945804067438814758395386634708563673811257020853955513077294972208703919981928707178161392651622612273225887286626494037533957113447174562879552764007877405765559993325392842685379814614488423226146757459114256639246630939212638350206300687820543224573443774931318067181779444746462208156061597046023548003950138490319793431518763536876298119622128060600190550060616784316794255177193750058769766191325313676041412624909253595201185589434541843052729437473886269018268612896775515243390441285292420795691011093989540803925500172835693662190164412591460542819246124516416428691486590789390371639468809956005698711723475845192894646654366085359847550297642469721752082537233116104702208558158328692779209808597270031157056804940009361826943288005499317180304730074323342731185052758977448614040296622860274343439951576947338295900386995388299214335959239228747693813097443948244667787253168632066547802652510857464253278354540408304940045093979547533321410164814496322137732373112963798552569321843254119385830123872947122699770884193461875339606791177571043985091280623516337197802699691310710209284344819170945969312439825647497935288506324570276514250175300183718071405200043599963747974119289144215466317251506477465035220770705122219210255059297296290330589633888001154485025013985917765123780822897882214111582289780319935464424760059029126223602576224481572960747100162024208926791818523225909193087395098425357311388425314756244561944904694257827145797212191153242564967496334847511159941354602680794560268526453202458512414638248986151391394896901148244500702774628664436776344920366348841934250934326817813807039137423427928774899994649484662777467201121409429620177642243367517180910926210796772184102095839262005428349159582243317978628260702374584564874637633059970526713597874429773926261441152115164919398663664429227665420190249823222230526979321684787521061715108280011861017406498677093850132823386648507134632352936563051347220611750107247102999461735065322337118769584859398452444529957107049899547743361325099004406202676431640233986844309317714410405661679593726799462612166610260742697126669415544960451660233203531068466803470503841822219040874579471951028593201936745766806660540532247674394873687143168625191642263138465002190933107046949902358896693254170200301674490542486242013697487015406211998493263089741706742466166311697816469752997061471436470505808468227726625098858952181013773740438946504546272599551303527078875217560861912965641189650117922658834453919035112754968977484862522159208273932826755628092639590465767254731434361236164061252903944148838439606524464508152404404646518754318057886796179895375038104182668945294488387666499338221284230156103532211583686726055087393627228751895905186257688911300995542342277185299650808906284912358808364041108614348777289104036283066948054993297946674764227055789486070368664204477345198789851047316599003972219564376406151038389318101057867747732975176472747165763684073637148659400077985717201452556467350757745247768368582441953782841936257232168576527337418041366096259402598832152876553528245422168734054705812850452725456298767858753872444702168312163170262509981290769164507699202596512898237514840828386306166304118794744357403508459405126177537144143421141640264273946422149734276050953507926990397156783810746223474568714957423197396197422358275532219805380304510049674588597204847474898982490506446602254714424664341083613329004851614737456554591952519574606382967913360402996272253883208547155932928239800856413026298748718435485442271249746094681615108833558887806292140311019431147692518464255115945259063592927324123706865162853997901316269472063649465986771985200513078147782628142484820772705327263724372242930370329134416117472915311864029893170312839202651327239976973784845823116941354824333043429731027482919445775570425466630718343154161974405856122570998012533214108238350806392576860187029664491092103889530665212762110838052327338008429650591878039172835727133445001020867277566882482087443309630329827947595950361962028885540436941613237467426087169467438323056521795476960706886724621853311298709842481342608436077750172330624244729160938529759778530940844175425019496041184554320471036549135970652372004377461106750795371407121044758957425059448293355106026512205966895720597790514753496379363445720083901741486550735735095590241721221943063990570787793378581280868931048568017217547849602880438570232905338327870004343639357648142845380712306684245672103429652802457697352053592340596829674154015579299267045058868962413183253810163710048551200604751691565768891473719158022123375629077287736199084654031781880099343359694368444187781838189228219950853262014122102858729104365373514688975077173018305241039674443926344179833295302155683244412191265848987871123270680275015662453251716718248365037153284289710933970008828973806358913339299888057676112795246383569463827790929572349696119270407450519619120658041549261154732119128647670581744895094793531151461352841441789236633976323910296395922310961557432791097191773022194377128454556833568259186464288732177574335366032136369606940474149139002855981664705113879303195482956523541347919000391736702461007800938879849182866416257739985197677961658738968467033170461979134177304905007127918212206452933249085211978099557657258460398810090258002640212134578988366995874996555464116548340161583207023138188515833520604552498227607784565693543400984283494933077611444917505732145912594420369068269358141198546551166873185899246598321831148778638327694407671018191843141376069373313740908001415813448284171730559286828337837569814116094312875144063914391968398441502785168970946388828466201632897147832839148914243607176057018186030225245653876454513661533112459238928181507599054867168084373551911645853858932546944049314545452356555385675197506231951854177960137489492358029611707049379455613728999924314590008432253309875467800650707198119935667579559985104017615697385021005233816567998982686501168605571272425797803029265556923657921248059548745174061886071274131166195219624188790751691920910727522888233475687958295370062959814968315023351794006846720944034098973931608866281262508684453013351004883445738131653847918074133126643830258442069282641133463830232353939887108849079599803230088412463352920367036439058180569528713195117190147088477637636981892812148670089872496530151882723677534004043179529466835128265642670569503850603899045398388674382451453869626620044692378888230823090653928329487617932241486549346590511942216264485590945937756105548998186714812267272027514245069766612413050704589004008993644561422291158964406101868828227787655231278748831733329049175735701701085489117827479050938875598771257495921184597551583719369151684160545990066617104742126825923807282315702828683781343062438390702373804333906331305542579113523949945513103830597292375623034798315866835872460514980112374848966724208093472516075760334311401653832929783723108276273975294220667084678050183537186637967399219749912124868201662637004784594321785527848217843851911071002108009835215769430782117740653960557681374957896392765755169114192888937396305308676630022018203382722275782017289582006648431178303294282164868175560168407616021155775185177766979293232011598098816769503028539507583366814575125530950885082187857309833011197189139037428394823464861028174270137708938540288917593994836083401955254018252362780348541943611236276526108674537950666412928342230761528642199270396298920407619398843570568581188871291885323190609983134721198279435735009572164107141835307411184950948886235976837459012193092360082432379595193863996831355051706442072107984732014559941432015913105699613243190645101584557392290140301675631953705725964844130877248373630082426873488245289391992575807638853185334676154253061366986752912882864311331542075512096926531482993380919794396782182260677182717659486484506329451501805444905806508127371120968913350495098552189296928330632386992858696154025361711330912909696893248340430537009461809757009811700253710027720535492370361978301286124947351535687768244637826963008668586233920976395163780881101424263655619225832387730079716065869001727967772941076123343924619017768040377877916278608042828785937438361062435092874007310876230343935057893389373338869089436143338349847870637746327700709235215791169295535863867902199339803004118950923408571282865435001884095973277827775342668676652548443988094014101477679891357756769495938280537833834110076532139755572427710110151837595958161067748088976819230738443167507896477391583015536189430620401300004885777888519778592429600014209748391003025925930546148488139248453074371242232321662869008774180592809517502770076413089853486521790668897730647628231741847488653640239323561843682407715199232368608104777658969253971444249624161915729315254866157288550655649387400028428820492816980665775632552202054378148721824662826766004365873253721589749180634393970762245660455001627343598334288954999029630600684036180811526058570165531415043345367017922148233913878132453057537310346786862150428015104443095722484262004669543932069576880907580470412414451345087392115481543941764819611172468406685853190702167120451005157425215804399050535658643788847507777987935695145536196273184506452220237066074934133040171525871159191351590753246697569705765070734531130530231302097062771888468963176445006253214280981975605925569089577472762960151799783420998252987252500513620383156392511190993219224376774876296452718944006939948728415225723120507167145993909483137312005880806315657789403844440186339356695005121332478106358368002754568317846074698802977040310838679052543811836039531226368038557201348523797775877844474153749345599599036151673394816542872751151651685267418545960296521272070664417326281542787573246811538708958631124606141682793201302178472420447374127957129290862505819128101914515034062226633230090551002995287447419652763314936676909069634854996425005648736963785880259077166235066153610110928652250127948284639112388159369434916052739140289428840496683212586588646043367849420129172432134910720298464517012899465279505693617518930332950544953388440824945461214237623560376906617433884079244595416918572643012296215578714049967352307635145832159204944691832115331174813716953447268969215340279029789692704969430637689859888265800222450347477704524343208943453939586907104825575012286452495957971842714395253831933608361969455959159677636822320681153454513263177236420927570987562544331406866709066889853489089123283900563320380722834241128054849146044762158621163457581377846186349920154148679883230027249679035658299248508745823135109707055949688554045688426630007345313167758939787265839528087284160594803981666936830292904856409172533079654344805203766119996421094275334819604003676909028197753174638554898180963103175290708313861678063004593748179432773128264328944600003282222879928689912043845012272546294955251588565877108873860800901761310878247071293027978946051835394514180462405426118527452040414035997738941381701706532169557723255493087417139790204936962019932898702250321100037399260034575344297892635380060046425534175853172803629770144452687006397720708114792569329298379232343357191565853154063717712366259302890483906906024206388870046939651137329343637367059429529186515183052512728358075172586943560273899273954309621752597281456227365951615742783549714346559163241590346619639813480555650461192608229642985498811764133159791302543000705775564443302067184775064840581495352560057640448538503200336605705641380297570493503861531870954441662360429888974404575279826105957607196067731797401794950955431646309428932992953452477554921515305978367913177492825366519561946581626747232131602724904753744352258263399371325166039935831731250148166063722537440178727908291607027701632605838278601402634750300681808607911543497914675974278986174874903060188541734726508977837128715278303210946282464060527186167985217804520911730124085862436870542539760072033262160288022970207182410794638512574558789394156583302961367619137373076661414819239234067839398207132200757162963925641528157012713969968848000611104347771737635864414656499321296036613703426299996959387198602610244470612918056519918437639208803867711201388154934232179635549871590424005931711535359427060923237652109624504657926575446014327306666463215900377013201274514254323118343072183704348933007615690956328638957449667380161256996938789951884400688879219172942997187869061472805467550732085229974833388793619145678540864557518490302818319317910535546533200751843125633722818990384548319815899703465690379751175447173075680432148383363303994426970927883277966115428226852071711886814467916769234737152873599440686848319639866918994769304322751936959036065828250889493610974282764090698421694239112256179941977852408497172562543320194568007338392342624293127165919215024265173297225642033307413303866387699481490665841514874836453809246448736425493118962079083943772440909127791462744740543858988061555305751579942290762828391196811581274997014956990109631454860505057063871816450149288279126832281132820153195478239987302512360076572930782987999867770592954288178059689547470523923910843521030784004977287939203434017889831821419912305949113425339116233791941694466108959947676706457465612450707021568958276111274791979612034946279085994469914755942139526432599994564557117029393328692969556827932826184939723571188731695421219603393273950464921816393415176480208563558279179106120015373789780679296673068418260861033572346973344637235509986467649012357015508177228083772557321693825368379344897245257818887350873937354009616077528535257861045249506283632784558965272131589902454972034987106605255705075563831560127592061863054261749102617610579466623970856940664628188085039598207060144264135808550004732662402466126472761770593174300147209139861248407615038662560255424649200711181621896081226063008882085244150280378260921178111415935297796546529308266445462921000925486037847779011065928503290756539736092888682760525322876174020941410891357626950437397770708844252263932982732478615874227855960174579834458899887654116745377793719995552865889303925014789105674329736822794418106593533580318103717757767156064704453056562470161581247138150755825461978838547426660704992632448680369466886858412347267757638775864417520603728990138972979716222062679645301998147775958544892106308849275342431513596732999900903801841652369232083150643835349395485104835540011662638332278021884679354038302093575121364707928368261128629964509562057656653384487709066345149401708824477163110601210419334153080014609619256245462981138538971603314441427941268613435094646909159395774280741791703052584366540074259267054451966730273927308142551596403750727360338710294574589896184599463554922036538101630523488804546883192214799346086358189448487213014912599525589330683371660898240228813294689037035919747666091533507361409276136851937593909913556515966150424871456048463637010034214779606762899604409665651116417995834188661632421190955490040269308371403737444253358687123093398122631394624674445885775339564967136428937966590862454812937165737780484971124792743717219761769497927263030959874646607665112791242216644135053113923285303087211035357594924515742211419668298947491783143610957162159229389701901314414368616251784918810951994105952979358976519932394439662579243230460483025936683814611773243546000482799518573059722199258280428313282992795867991609109759671786075632104096560788639314659676258918745737767166371318773446951263161712111135680598046134846786087380578432574075391520611083549616666442146922686037812651347198899341787425330042682741800873996653963906536995510679230272727674770244721953819416138568627281288107298892329355811922495572251008372316055877771421490367102608223193209246040108824513827228745323793973202594104753990617761408904737050013889493319588987334112692053468951206141841922948691918584691307705245134005550065211255240210736794607993056054941133928619271903312736269708558233444571321959287881457381647154108925654905007730457948423438183911903520810256744481953395730314390781224253038868893338498341847446544119850913411699989735640560071571296919862329719227829808594087730910714268280742553907798357060718629127964669140981247307469979521480826419348691728551006999185749226470853993452196432618900394391976941918304832030750303597090418809208102560890349638214916966748146142258958899122317333519905711155420418201350423247670122589135056272736631899373064882176535212434909759715596663857920873231511840945339054850484041267239099443595197247350415407045686185264239346287926274874215769532751281861024913641442525957493749511093784407736839559113072667160914003355109476208676431226989021342229405704806568792773126879443332150854648013106829086347671267133513523039451313819637089471452088480101487604329400921549628569544127789828493337005394286516113289145494985386733809791829485296962149939153799712946371225413142900325809008047703846116072646785809481003327561523392540061465218865651529794005883351179134391408382368765245216264245258335423136259406016821399648198665684737888383430953158329156382942290275122917647206853338612622770128202299353515216155138753422729129197513316968639350519243380014843026882624302916957104839186988949759598814122924103814755852132026767698011077310276644319194004596344888271850218393897245922713084740081731522701871198768930159068229322825994922570954500580357863917831102986700743845366260459880500342631348488447871046681219547813419418716960435714323710617462591190293862901930890015255693091778848238408004269913434117170795074997711545823415540613807565357854576491200243389801844817070852342462351832797652098355832351827565451659821417857998260441982062352928025532459823578629797678275080765790148259215589453713310720470920606502122485542685484386315285614497366585318997491003202576831951411364635045261688713251157333877007985529635047694906811458133379385330069311587485975471033210915543302268485704154796140751325892822465392967156167800839489146507708035162226114543065103750339951559288670854978777695831048504992219092773797400310896397341147051585309652489496932341473426776135494151770003189248861729174268517995553123429987176252657566051985042424136945625290085613012395880320285996429235959339723264957509123065599457418526237965905749376432932903798065582215593766332443555201825884919934260642634878296975313526485599027301515508367611547743529440340044119298450046632454602201268894059566782088691756947844935416132156838795804927979478338783545934560726822658459194836566633734875118403106523468435549345186716163016264986741285552862932153368529789331657179894266222388978866863475114663573616268842371252070883826354655275296892850415010995763699856032413934630837686817166988334007590396399370299619465986916241042050705747631169670213544152296445747192918585491117413493514146790898735597557518136333944569398319542488430140422024110125370362822712973356171610269697167431407475800536371564289150375046627672569770435203063204450200159785666166578951003255515420353209061615032363988828720266993397966094824001567691486633539230392094966439690285115530002629749364389354977555877079978265646532845061995817980459838461999376566447184646178058843838704051276900126155238304486698644076304437450298455010354802196240460453222640902455067969379203437265549561265252635170612749429165672777831162459314316670654744303747024729902119809379133092338240824171682414190209684225271436647512710259867740288025749424442384583775554004001200291126775085767350332035477851003588488324416740961692125056604647165638294696576891845886347498830074980356927342152435369582559167601843298490343059438353529520898207580026016013750452324307759478678999957390618952887908273687922658193338257794848380064649867593933919635147452526981174980330175794345256336329666805561897214531424924362178396757901672455579599534113094311746819348168100569954891782945222020903939563227931378528104466417976644822905630200683104586470056530977767259336724726953948390679036053913936731838994687417274268725749111870913836014867957296385286848514870288167514544148490004321787394279684247294300502647984846981185661809837062869588548961317952736996756697018416881119162759384786596527885467936359018033660739021212926473779607437359582689378092437804839091360836189125356775511565712299599826365338908305761948601760048904338358302509612038782904034875283744489775115421603108786752827149408496766394940439938424492561507229034553545167233160679496139285515589162895773737911169608099315292596028141229051166883128954926611401059555946301334027648893433932062581084714866782649281049861457655819953690320488671474254341504817150650721872722227298949112940145016302912022405851889401137324536670180640308070919016459083103104851303900643389301461990086569868885459824203621558835826318779091684554436472116380738915483068781750767340330468514703201220527757432925959796484790235718043554318052041091657390642432132799159532225666234373979954100198897753985408588642279186696276943999900036411025719677068193596723748057346379941969731545178929360909325934198552357795053424238258275235766731741817498329634288076119626003491761536410657558696246752469835507721589503532882204621829238638663280376113297148627111167321134327159548238550750206733958037501143565726108378362288487071380089477994565536970878933118664811049963490642161247607973037142161017605413785530163876244476527404102373944608290712010894843968246678933321007603305116324452409575917723285836961349413123362286517783801119267856761647830158894962476540628687850334930723549236789227275090528645304009820797345528046323071553609988790893416909055348640557011793100311887717548533344474768562123177279987603431650665956747350882192336705650344125609337739089199418351909365800437688558330273582078878006728875346948622837491473378442812942835319212912755085848706673487283005007930108276059664155098985153068655031323881192676709876071973820286120102064044683620377702018708027907484615804701438867757940631338044191649884723730045507605985836830154611257164734722216134144099563590186124117605239184534709910934006346126616391602036515562701667275240540233693356607285082117673133524233720653157208763086779130595125764868892146403176903484892385318985393072390221985690955274570323802879424346345624851848125100210223590626950458201360464954058414784841816630459746526571603587308021352488495486372560476698900935437275217420024636995945769301191324098759614057943371391025096774039456142204394168480213452289220757156838845717630054863962040509798620314067975325514423063174723027777569213431270512691619407690207187714881919029125214446806463323389522835375684540185363694902247431758376177554548085148060436004770009721216801709258307300256873925683902379400176984391425675542065369467131621346992420043299191957898195795077621564187077260941997823774115282720555635837388191672394389519083880827968512342494920318068274732169613257519249599441670478092689091965499718405848003034671538736435749213157513019026366725678224207369909592319953914465545550347242571371281664561453624852248250060075019012337253878659220102117947652228269240254350330502341375428570334476766288426478113975276718976977946719147767364103630840427922328373270393742727079293943590857352780602893510739059436402787975190183843496338024727760559265094335447393061566676980644269341533459307789109973412665926636513994767673429112298166092349147874333459925292867762747552658512062319420235170301968960121933950526978381619491192945347667766866482053502105314232731828124815077422391561799672930872111188852744721802287224911405358826519000190477014649674091520938582730636921194368411170024267942186492293334005519802755230654776756016272554982810423182491587049210624877205074725080783685234893646881604976682550976428015843208291237469200746149598346931002712542710768866214856016897380507484039224538062456962601700910688285081072453428073706620030495242053720561589742133462796501256259868518284118475833000145098376449747100009260190279000419865400244566107889685167391284906681892075545314486300332016921082004324222594798181410117843942276741398461889947638746431063366921331711904696866834795327395047224741595404377220806723069113878813603823802930443946181242672438584281678829199068714626801256933969121728817357380675520246115892398322143997357499674916691323540723155875285909420019788917832890519931663413306470423579695634365374365478827665514211815850337981308558145345496830067344958639439045505879193395814275284917326950850300607148981370819381947700963192173095032475619452095121563942516173762574923884619805789918388429662099483706750693569733733739861280833410838280049715896037549454212240024844618519161769479723542069667532124940985104898871724834240495573594095631456602897770352386399969804318706250019804067219500467356481832692244954680606526465880877151387865605985829950355326103062144752213043072005392898035083222331457470203302546865626451198048366245133046675784553846902445210645947639279148943898229996218409426537110777632270819282364125729683256160762937147813687190772967496952076967232128489967672007953124319372113341360131685622284045094937464532283481186997532460903910643892910415690529521587746808808007380445953210674937464856984693130475472790695329655127513628534743631436458878126303933291658062542262568553678293894981993130535831963737748820301636693891230648053992430993498031131721179537499047664744266023427151396758094945137678982935769357242973107096843824372517066660025860602246972813863013193347217496172414436176933083927988268877367366476505154188410583082078644665958432802235297291979727484507485990136545340741645105887567780425513937713330339394858509406049292621782697840052736519463040541513056115855274847930158624138984820757151617577519526833667346005609943983925629727700029578674432493370596603234534001528737243811579740986394903509263521449767812982391975216726234696077561976050627066978439431500375628949710248829098242375902775533003390215544107044422392958226414760364263100524611235782726057794537379716523160971060182268648742177629003026613129259092974274406383607620369889288124956389250725848772485980017131549596195157251473501957034219607291649459017580057779260830518464479829140571655741728259022979103171791731148996881545235297530138151867317884562259419547321358092430994359017924498465271399856111964483859100264576517489154887740174956336723925014634660053718147831470740103514144366243706987520475538721664651735840504740950746253205407634187647758802090330208835879492110003991761656003026328535427789489355689079459936539249760173783307672400178059235882019081757049362125705882654108793070867769153347808408451185065974308693304708868387140205777177955490616599359727192266062343151786355849971332319793592844980912781924333042328923112799989299022239601378333088530238322002999285949662165687771518497969095388817930506045109570827478659332026205561023475852025064045065471927726853748127306389162339707600447588716061180761271183240755749680048366127592050488404034766622105151037865065103764073787552125933085077599841341949339422129950825380683678663302107177759774267616641422174744972433517469391882496692724866592258296129950864729824901483606545394322310496971982344437689371396723328041479570897912833694986196684139576157248881078467775824996550817837540667524294034938074383375305130225036079145333815653556743154296757146182286629754722604524637221773369092716594597624803009483887744599067496128344967128486613483593593608384696050139432424996307187712235208232922308895291528689566891240269789957641140084759755684309878935920135893593170390530744734651506811089397693820217758812882263221793765487276587045242167104259824828783564554529596393220961646142190329572907489059932759025208459112687338473831478627803119115815363459219697824694382505305646855396593597491074063669892604621213216078283389431328646058424060151726259823062983027060682851697073971210189311070561085444607496796289291118312462307695121141423638577801704743005231258586389377311305901563865633288794806537450825834590626118783829991077716128558253119396192276779887174913018686439054036493311888203313320601870195098616125919400879974194015707573933266130470501456838076162212138384644910348991751928597158091941093129310452104466697810130339928967569102424214471650818254724867875898570514430193413795188246307948704340590010909958468042293380533446864929119947343532053027747572231168318422126639034573234728365716903055125606372269653985977220515556769159950346619663872230164332780964097556252224456374448779519651102767252778637578948231004489410039840692387949047279334199365091286685042733903458105572817500764058244416747689391130718099050097724794173145344385155514159417244883137055212784850528237029650786328167342743677093873627771062239306371601622281604190166212999238060159686438910725759807326616128494282391790043089733196670180717153927813634146024874554107600535027423131242238860960282270199917644378980215395778016566227431869809830338507561288526280278445409370177814616981920741680408466738428104440073269092835516109897911566510430240687878495174122436231246532495876682263988078941321230774760026754033871287506684213960256149946856188779414415312091996495915191775301720425484352121305878276764498604298750412210644148830966716897961561119883721035469620037809678789504437676421015533803627273458063590277684252587848598083348156383920737402176333621528647872525786538520862582821465328703463999804279875544887972406996963023046036015960849027291324625070829456341069628850468199240256106380856345857911683421199290825212387954021031576693653701225000600151457343086762836400219819153196542737712581369321774531434373225112430401993275319288609307273668671445082428148682072189992364116361295365925910268543166054847835904485424771643925650650761250686904806281310601448607921470170552193065414159036637935344259448921197847863537095567735396736002969438988328259468892452675895914420710027777143782712359756430361622315903883461518167784442915038430508251861193084378008789918844998454080265045146425553908137349738353072804356728629247791619497894687192987719224784119860000037136716506833206364443915396075365941405691137668095339291984586003458472259414552465939428122101303378395475558783605309200009364483204488051862227126248498010187832152652379849191200567262415354258461598362419047032202881042824502362773937305447319375869176282824673534823395388118699376684813670535865307612006121680700185494721315723879895884063848858253084809231047491326136875763105317033562694061208083144586475726888484222608673492590360057216135832993787209346856582144016669692475797327296550464326156248099204028093072787645706189551083345682156113808556306862171173364130353199074632241260925548969192583093319848177527788890570736606770843744130920753558953294214990116632974884378403103106550304993430689427498546432722478961308913957759757614374036765804112073074215372262822863927539537088254424053527983095679142638728406160220860872963593466442794118577807748466777852159997434819054189872043518705650375535377710290019366899069296923499112746221544250745426415706339773480950055376197385602733107671719749162379425532293035560263822756952786075260745872735002994528887330426683041327638554024921608529486150589131430821906445335318463212498138401611944752427396678150386573460554174664193630427023297876864556443677405631174558896262771990935341518940991343257811579012745403443065129884626885921613170629944725544050537104733962031943911471509101080815418675673763450208040864078397893003418730551860477640679941282277854027652537223350978951513453069642043287221487631498939479122089913618922045239958183567565356909827260418469097254639355288818888916629720887267011293680879186778063515409357077093349669848470624364351496789597621923649918829501282581653598276622654117034829734919231394710117390590571905552536292382300329048426413541703061641315406582530125000084254588769267070708671218973987232124996493708039703859596706295726917623107531985996509624675462287126362826693336588366204690231270704062011255092893708307117153839730886108711198714829834565657344160508364993488117322489104708824855176584111196358709064993450638218776558581221712779411452812934276943768598422425524606771217202780536338075512717600071752671533948212003501797745448939828492414540393921689171987929986387114506822904100731270647586612708433961904252067083139040051316534496381818884544482286126431004940189550870592437367993310717002359812117229654515686395733233931012733304503550626084719130900972852650585321307003821538722783358282487064903575430415152186019058200213581701956640907257085433704432888028635685188751438885371886934903787701827185794602762107063844409198304258996335971290256762516733120211152440835818268700904320784889665229295659855752941255514714086445359393926877090666372860718836714985122615824592960854697696734619725004773446684535762634353899231916550782099859943355940042670345713899678747294969619858737411377740858920344499382490537967348307021961940749386652152690437597623820797496643117038543631264469057572999795753853477532811169720626779318935601483812220817372300006862451520640091920167630888159642482689818417637369742728566909014436807097990881722534160246115178631943158538349933934675181745716914077992205367173589599642499704123309558919940332621943022628139154390624153509240482556864920561553838717580807269535405594301993249986827729877452758317293873623105813651142935787506326344181796638617327158132802823475305355103512692323323482125529709478946968043122425849722239067393430844299126432765960402395054171569087675150458640650359458122431337409896362365261631851622647794097881656145589034624892696562949684546781754782246223187926309550183932707958134214436165856354272565257716149384530252907707076846642446736010197223058605216234170764394355554430212965693985957115747785146987694136704954658287823358500845186848526825971189890406301329338485968064522475338540587281136976897412641124521980082193831419077803417849383236585011805124181860918277685856623992650749899533420060479304068248393329209227976535404272022108714103702538160148157877732082760143327825165898449803661038172622536325793850682702369274417699345503924901806784992845527499619551503967280624405086012659821377113470075285423208845272396100234916865500089715377766007600744176336807347761839950007046400502709978654058137983958545927069348074738927083865141189899596529873858578916370830501510019184446552296055431186843397370599110576718749877928469799408077154653760252615014624746523107608601994157710307770721006072044892853278080694713751435391293919564148470602439374056396271366308122584820569168080599666692875151766336741262769351226760541247852026229112947671442104958139212022731376760306897691080078407525235372078203804138428793721246946609488728260112214247016328948987815055577591856497523200836456618210290639479309405951703029496871293252207032709032296019423685343191754897282443489650483222335623730167277688527650280163198881643085354865502886733714831952472355110448467919310667229966506922962888073217520953581874786581629087113592253767986371157059462035933719270728932577726375339463208133234192247737303825691951096278584717762613548462763951220205733164701457477732634615161602721732955986253354321901703045476054669654650571381127400505756973848964084318312880986995553998474020022806525866987227636424860598035068622735488322290399534562103124479650217341611155569911299271515097674279911073180100199972571088077389925932265752617856337556777297061964670563834826213873468614050271221673074487359114677734484267096728414603976015423716100302356073941456063498037521784732206408692911080512973689423731945002749293371916230578819915740937071124852109255226648200641239471033945125010210780384634952059468425656456891122563679503718267856138895803267486375486049882891231568025924546781717815831566611220285133853033802366909528902426699864240699480428412832388185896581228116746303914202122018088119186110140161990529857233196759971114126195343303486594703680663304911142648337563822884493224011438966693500193702847451072559767644488883094254460697666450870348999907594086677268024769943759011178385933469624805583717107208150178031553126962131106249963875152262033854755339690373441644413085426783207702527957142732998477345476157171594304471583567706539859644594795667693570118861314023444931218645977501702004381162433459271868258460647367649742380617658987484671518587946851221686437032835322509750993880686624607330237397804570384484053767506954380231773815746900830135883827048571205136208493116636346755613937406961965829642703182954239993299734017757876904046956983827202077649848547129081376866181840353392016749176371628261915869609293570747872970393859680293654049983882574234270523437326591516524644328372918580192672006339455566862325869344375997636463765761531660652205651062924069738384960794046304840741823427044972015771231623458941995519926534565750643301845776845600541628000435040162297442705088866811236965048990289497121154647617360067642811240660556061505566978092664886387040638881555092854351541788616342018549386706181811222909483134732966511543767010183737682849768101544910272085202068503072868153914535785492794251161244431682972273443490716110640358316437971288254780501722726428546354239944044220377197641207140593447243409176088836001133402191237412836011362281375259997889173558543215874504380174902287975515790260975483265483692805148519720862774023213084593901208323565396229919665596430813197053894412079801247208997210064062321413445983571102635920170901836896870095436662118762325351292793626988955721110945312765666200519961517142802980337619870091271923189496293280355135276851434305528007834867926440582017376285945370959974149981354509941818660880930438171643659571888076096879546605017930213664629393936846687741977978812140648182189434473455761449271292530442698717689978955506570555528345492633078324293823957647873648616434803159529672075636184169201823246388530993346220013939005559243805218968335938875309420045335165104132688875130159316955937649612424642156450698432166631972360522130423900850080814400679710563661211198805055342194818132099407086587118010938566251546634738462490759452710732979650929618110433659934695023088034331772282208061536867985252734923258303356093935470078680318919075930695537769092759973289478468638213435713328878950036946987414698415011701358389014570510995877887338209263879303213098307430830549093597113375164972166779049116400332654369920924191995867406515881119254857080668833199607693994134182127120893794987042910418487073291470123794182004787831543407047240479529370143523608062104740880361837695377127400490998827953315353007154199205879920397942386003414309585577748170240576227279276471563116966085959291915564181610219351530546505077634876203714976838474429192417795038272483399076066766749889739826991173431033385436614604425596914572986939964248042600062066281594819236444669615558019521530188791980360638405951755617751781963451780714334512633933285222515134502754912264794046441745771926392662505297606620578820892684756134062736776903547185367169943248332652623910963476293191521084640600757044675496992247036295002965094226292816079582844670190076684798756254501346204509210933872501100127011883797682010070033716391585137541653299485331847611199551211146576921506704956411263775542266021324797745754555352503305188735578903543291924814690242338181596117649564704648816849994766978687958640047736822169036467182048073116897247874195146188931305488794279601623800034942386946765093764550694694488526968041069317757561755462030776695693050769727441654103215754707066130272043629981343233517727579824419407200956226947267789915574289313112037207795489719588094731276756108243812643991123045604727231407168450354699298490919159242953139106647164065328639220420168655702224801595213770137749899801702665200328068049731371915551186383219638886097589372762195245152787317640559667701639682776549975887975713879594492590786649530270622458819217839593926667272755444934729339478360685654906003854726457936371332468007405463906516130022061698207646838401520849748726991823754845815578631364883940227116534545819072385158688211342446089566456900143077486984539386239857704590837368205927473450857281366148969906889631578452351532196947542832247674016033659907553559307048714095747604593181257964713580899125292734138316949415949500395473561434040100903790193879879553582635375156797305347967603663010007467500194025795272089022756121385238520605073637072379640427172336380984796255298445674247435518065865797987355709117241797271323813213487954276390556094098139236200235402431366963707348660188733352797280705439291419070342080001663551170363174625327918133898821257177423989154933371663751470232685612328678941897492995103968619500018189247275698311623631072264912826590995326916398682360702083947669408523099212345301257015347528636792537233533346796747778945476212358872401739768498300510916540790790449308593451981749824397402893855835483730795889203158444716240082993110928905337241896127527397352197916237058989005551763051701177671894054601096938951898365456650927155634660327948228487852292311251634621999765527848373304465539395239805470154574677190372896747123732491375121424890573041067387610848151554879671631965394130301814160310635164962674318357925560706445309213336101087965432259264682794194696619541344408824625712493569825904562446896857420711811563811656737662478242157739257760940804639063391660914982783852428696260026852990002616005856019497668609417972635882504253401927176666672557200183366127608780719269819593181782842198638237391671530114765539411681386769554631878962518174171518138730410332706839480127203812288521990516329350895520964225594967386199732567536260307302816567011786651988022166965413120957263745170584594149780418078667869194680565545545539007722391005502889983740992723567868196417040294101458211074555635424622127046650940610065701251897026397913072401675352811252448513159447891488182673816944121145721315532808022457181715325429738641042941519053606096147249743538312512745203437245471081244928476425278288931579925317922269138600385794339035122878306188265866167875429710426433432734607909486908767905634157868642091196442855147575530457199675470574593451620540840517702741332329058423172994822142097508784903175441609949839480449094384640696342216140719199997915174588331390524476592789934201405367966705503083308475957670377964396755299181310108152624310808185283016335565865884031229187931583616766250767541414708453954897438004774451820990279902048505374501174509839825158971785062923432317140589592010144121323681606190638089303200006636033164553843303631903910375209471767738793367803479046558628718305460571393422777537663843373736856628602751813117400366865401415102826348987770119617877597149674046041019893976635136123438606227012122791766016716558578201056732278663712605316492423560357793007929489570203565364583100198461445998471864523955057283005043682865495505693278540396067950490447901682089732963910734780164653768774077755515019994866057554486574212718774095088714598394566318980558457572404389570149993030035113554237887924741485836500897088007605751100465381459524840913564095348449525941827533019177033774278580713946081780653597678141910644239617625783105713454258060432917263650744555011264644112005095294688933683056764938197854519533142502822252308845026295053901504202612285469679789335094112802669729002032420745912022293842901854686888152343061555117001084832672449622055670671131886139516632297934083890297990710210939243571129736301042082827081010830744646880939453621950239737604149925006692946141243473132799226779478323926403694614455338236392374286266817091310885022886356130351381832349310148719894916381496019463371051421129967604934097372329831018517325531118452411775587865306657222791156577582971285161192758137876612345975215423288544559527821244566389825274379863399931677385746570099234535106895210936385534325138480925136978506163578611197090495693558942041045075899686457242405366175199206512079012464912759079733761883298737581888987698735845298345029245877956348457129599682979732907365734090988122800735982073244089454924504951893606094817230692438252228140570012547526372146638566867310324270369780690022604517720305566690450938741198668940506086238520988577585758371014557125922059793440456790461152491222103963683721169875435843977441085055209404487667430781621147631059250433633654679923751785124576973288288703110910943307599570525934401583426014187994045416878882881101374592272588598557808270366569730567286187471863931324168881360141471541801637188415613561832790448624543066600256907433892359428273198760815074557582797233960645988653344891161689465014657166522800994587615066687443178465519564764527965049790368849359509404597205458696641432740615856534460584637498336557825863998950900037012460456582554735978102319419026816743853516824234775974957231345236728652814458096484572703309689575393879876921549198018426539406229460074930140118236301944404758855721461968820630002706145984959257109993555032581553056072196954568711273337016925238325355625824661315124748602589140501262651665737238678825239536580343349985692633312623361061742005058398123901715570135388812700915914546373738880390676136618533606684606316220683357702116904959316769251421398719240485033288714778333549529794219042581527935625282999507997898303325402547638388387708507890225712628685768295453199214657883813036554592932317111823355634443759914920320634327415401744884756076196594414588644240799545749270393662470638934039758599091475782816280578441602401535302214929832755245836352687040069398167670473918624114445825087804011403844269397913570841955003147259024189767570554085088584488136902980041192793929542716575369366917580346247477145979616958334115686846108512594476020756787508955420699524511567606235140721288989256794118593128319134653954367996102243215113421551384806641849389356835634508386993000708515264609570949589378009444290101097894458343990291820639139511605826525510508405381633543707978826542046035963448812519625530731508178574712786374053660991308914432802373581330582770513739332958939157143121646389690248863721251495147249915828535038828243217224869407953840000065845268719228081214125741868450105945291129809774106741725903258491154051989204160104432149911638319993042868756886016477585041415878733207884145511046985712261891871081923787698578616339631457877217410757239061577686129803402085029219327104491748009870199142947105243335229961925440061224710034721853491744365492151366126066460819481324827167997091881074393680443172435518858358877876079676302441799111306742551288473977989459521156230473173824714107490293321473635237612543668511229664618657527057786605201392501096454027850841547880335886600450261077775788077096649952120415400099065080998486101429516109778763670894737091505370267374013881901436545861465644908992976210688790057840317009161698633019044405022392664803704508973792972302073431859494588692003253209649746884513566575485392335688058189636881399143851176626311409709054717726025270319129764524069465666465268481642366505855908547519680990624343472889622421715468648680307776029361638693168769530499092923618796178784502132695724497871259966453302151116290377529770578514498878817271429346752676091045042764938406176993651730286974559902016413378770169774418407997590557883741862155076689395012125755003174593951661591775807467868909797233873437614909447587829879658025703881301563533810498578509931929591628989724383368312972690655247852887255700152295354739614199005253388830661565951683941960601104643453424990723704177836559349741030052837222569332834776977822895240568730153750478655705750364189293419304128521887548555209506630183878867516163971438780478630996905792489729772690768451393038931951942181990395280327227875237336239310305342509696365343835151314187889805287850343005204000274895863119718803973082574266499416406285813716636538576050703041427644244001797507474014706245066338045712899675437220932059436398467844843326247312263290648424454135759570515212771975766779388122497901163100104133895260405087528359239443577859880657716505269279214608078176069224268366600628675851102907607910426957868301264498426107894217082529828354545824912011665128394962086807086497105830593979942520567737545563682071874917579118136315026333549915362959137942825918358871338531390131291345648751122174973186100155050410853642040311476193648907372797378015886501023397758810301044243784389369793979883699584036966067750092153121978801985591402507203349947043267433106361268174444069223884335300261806316020359282072538560294114710886042440913416469162448258806852181271740953588364598652363472659021213498328859725480996689869053420880126667024313149643072009940788874862276009902141020339796455362946170482856215638863177903581558059024031758554046603048045046329546210970673982269246777144848860315471373693761034427114034033553462633900059317332384596421922688124410017075148626714353227585762141183150526814075047886244811171926991095374439077998417809115254287068965922849086497810794653612293218853560827747987864493690116579700244668627709967748085183915435998858086790683676502681623511961742639336694212153983405507153523765692390385068320368125618312838050088134073845530205728722158123085203380395429282011436272871139763566358014646093893869131399120587288894877266056561648388780821086125542755437191502680735397456734300851815485151038062774572423322108221286119178147321279583010653236085745011377879143295666881812835493541604297220317746027005689154486414787687678437141543187537084854242927720423706688749849526437984175408785403293426882186696514497774466555627069183701212364517887791106412473647086329604696003998708228705415272826991613879960051959488189700517273136089196812097222860498432757306080968556838061192787521297474674151347516901135707613917120730211419285293085703674443340511015288076573059852796223956947725613635628120820876702781488590497179582722785662636862733857633849058004732059417446992080507050938001063470898326930139581285870279431234639169733199342522669161339258522051960243075753513630405620973249742314023087992835061381781148966449695510670815398824100119553957042010604194275916251913231197411145759447691928061985147423584510321524615012724032348220686121144984485186467623831576119473968852169040209309693925835384204704773262930288145038532880066342505775410809032772214310325715056460657532245278887406105177694429029650584595437486540401941471591823886041334148865839392337856350290911382304799258395662950046475494219673271903178855103166453206244673131886428646037223635575901817229424312913967338913280498817071869895856323897909257245746019799528599081062094151330336897526829405305534253454080206011517609320611976495579480953339594601590044937167982041320447594176587510016409309168136480872144658942258575165326480855658326450732641178482249277192938894900865003219967767299545308273197328786787705508694612384510284545466130611752746325387913395418847635574466212630845987061092901040943150441431186447543728017655356075758800671142756244689889183933932487698562798322626961143201164737400191545049870761301163044739929975863697253822761046196358580924398856866008622148344267196388490554024668908084188380710915601064950701901515660740884074706214560747516377118962282324954149644888335628397203842650308045639559924117218715953361503733451795881319559787319344082942419041511257946023027696989452684799001443545527186820711154980070434818351333436290313432144575315280733212074493387129396421912589921328278834629384000237424984569854585010357602614711066253444598583206656416666850656266862350164667583230509147897590654357412487260589887380765959817813583315058559383123118901636086579165294587014440934472342136826825439335818054372537648573224051889818648506482893391445771906106511910218334126611599179328166350710896599317127994958787379159123496187857565333326011316221517413522599209129383135509958488888154796712794717609804432343575494993071859784063076420816069035509418584692520127273580528370287576068177627378130157181824783978059356200984190821764417647067026778612917098155066930098493047907069108782259795028778964571913227484226562691498516384901710347264020774642069583277217010103662244750416985735724614995017700912274754368968890064627478522975928789322440558209617806701524960028092288583033409117852508265245054371102174124533907132516568735813110712374695668620748752662101342901181937600423656834359526711531090057706376828934464222963558602654284232952202449123129794822770659102241908944639534099795105862814363280559281507761295801999153453583613501468080732869792640840366621704001981989791955678684147063443999255254455675437858634875333414178652698116547714392984131730254935221902081048772312082152734042537808255460958742072724570245604809818396884849177249573172367284007618723977909894903819603429103374455152698353021059059393010354221694164505442069790281252615572913446413080252352664329690875280410650656286231901648471105484264461642126824353228779478965376561624330409558629044964627117087696823460041883990640617034841174210838507135071874683295553000663727874080660016951869627968011969448158188549981192176705949760830150782314589691374429321809010143199464229135321035876065139150308451369369018112303832088356428376380995454823786302366350821795721627060652556362250491172079290980496181636125304172386890941185512945026417273001657779638460363666523947828637038134151125822136094557700869590595975462232439850768130035318159140942272563631925788545209163621853833733973094196545298795283488838396572228931554335638976508460784187885344428986455073032443929060303542069688458915825204286178233151219240809381938056527620847920244217170013017938511594749190649208454341457620848494420818341334030205634924759005034696285005384812471832173319740643079284068125507713448038299410589559150292756577111568471030719959224100024291680310666420903790747048049078128384333155407417282631707429610087456773799101203916581107567905722144446600866531478727496007411110017770870602090967254221343386718607703064629193736307253050130214210268599018095428250945394204577367798244077088771292688602730827276284896922969011465695454718887178077475953359023463107334814860907389929620517620779269315146449002281125834098332181390600729709391819776132989254170303403823416052214568584301649364701928777078179083144679653581636373426478091200689895692012105307325157602963047847667513056688261889422840540226764980679872130808343070642650079364124393760614587080919161400543640007284623301059473221033486122928053847542730881800325707526701232015725299291778312359136619755007296060887630203517326776933850676735739955545714203278425374228180191781006867218147719581806893760567977868320724211063711174181548159129360462593820011066323023263291960754583690817335800401095941457472598638332364997360666370854141396220159019876987252617851743476357587919890800769676346004467085767640496001846628918113899033233092153678353412621382179688138305962212632462532418819080222588192858512473607133176040446777979909785400588167638468098988842867748612335027683552490312215871209424608601585584861371651732915646137778922730551245880941979562312015740031055217310446311940192925013032336095545926770828389632500447090081630785857659835660028866113100038167135714254624280056781614811203475842098769692313381703704482807497716603384622781895345892005723915109302614505550168044427919926240623976339086217937121947837619550996062567496942701929774299548576095845828884597962848590050565787751628462925341444753652184848620183471007777123077780121034497209774735532426608786968529322750716689591273389730352303476397025885368322969549978959871488067969876135236105320317846357721992307368067007202972861886638750046194189933661495250024690893063216910499789913408719557642616198979607989030957787210169276320660897770358227906113475205500608365326234389872891328046761108303263912448843970883389143064078573282346539239255825716808106028591264695249901377511996534953345147479544601451014556885860374029813344754747749863732555755843321681652330722718359809543005390603499340303194814311162294222872103785187624131122241639092277794006012097763470710226351014818348940128530737316118000424264934710911694734720868115929558381074676523565128124208991263423018863251974056363828046345008671789865541192289253285647813960383383426025062651783192333159802265814047860054788154209728790432551253310891595290274845742599192099842511431365301897766818155019768012899361645380110173719666371391733335050739919686465568947074608308664608980100190855613686900812682304888107728753333747030158601952494289380493475170929096812617481374534927159294498427727871620050476865335638710917668491515715343508468349507527152384284580866809833137148862667779525293347934251264582702920462291994782957458810831693015084961313373439784797499783247253833355483441069280411220814008771635213489510866135526090368441692789487966313019510575082856568720583159008767614317881778623262644163231628109761284268756244657241869940301094748970210428486020671659964909373509026526326638842914949365120572807986237877776041049650812308904827136640745842431990719500499086712031466816447748006562503184264703247513669683816598791350144771326529925226890503868656266955681866911198164601806681194903452338971035360888957929390984869705324370267989134188454890335939467343118851344840131760532001877998150258577191473251876917019063787157663275829979745626391987418541904431531817938708328004229992090781998696424654914592391868353970678946102573126195448366801181086808802519787415734382302401419538956213129425856996463855691394896047560406882007603697642453372437874986144962193378270447845021007987042563444716666458164271126295337039192147297799927495264207484054584468389986066021784583655037640469453102894455876207299891314831264887164887635960736430341013180108910224711102277370718588398792404667011214437902335248755356687259039186865659584094938801745627361262166426093335822677105302617466912362030129882728137316627759733486023876321008726275132194527974437930669121633163134289619202114649736454361912532371631370996327726064034085175657440561892966450447454447763186509984648607885442601213883246237813172487845806402963945861130980587421572158982991231916783000052019085285582995163122229395462486375523377345294519740548060605632992921319789267896661533882103942559191060370338219734219384559363478110943321015095772751983580521624159483269533971758590453501645583407601621899468938955432021970422424737452219637524950697699869787530083235209897121945296158503730706080831488876491665061930303717054616944404362254272269236531598548204368350827398469768120272411455382880441405891119881349116804338840684171770629873799426094082008043714322779683477175682863689032638381256550612499292424989597442844981322356082286013273815135608459641810523734157178064260322303116559048675605463008177064940976934208329748539211457953155387056875659209204571344463128172904827958065160399617405253027413403006519639181326000345323641690177474676180509542879234400638033639981866947263311679399726302824899738395547506056280099058752812073590786439868800859168887321591362152960979209875156699712367462928409228760566335249395001115805629941616693226170030141573234976716655837297453727184326712542897621297312560882032109425637251245699667707184363184819275656180830551126899102272115118568298191807257497654426043376434735852973205778895295808557769741998750974055279530496596688832301223387672572450089098924268836059027942760871494572126540330531399019737043970581296944136236812396051945635565259388272553757003742911434824369122880268516893329828070068249858448763961288188818161181618050802116296855377538080931831416843419585743830638906806700841937971445377698758594577103580078467286209597562508760222537321043668378310904826801002688139897640705263169429197518606593899648541803402474000984677794001462442307316375207230313864969646839449793502379390572507215553081861165556399833670948650692165818439923284776413403428385539986492235282499650906603183004883475568758540416019231470362580309465254576570771892072654222674465922295834927444456440347292346940398871597502955138135882678962049779419545915938772675517156810966734413845396082569093481042364539260170398365611532716876985579653651515473130155577806386503116200306435008645459462499847493062221057766741884328347869559663408027049492586059260898998240561905161439911701020008007209041694002423996967085489509588261822843479079595247264204451321125348055217106873135526041819571416191641389104017971932151400858102730663490562318413224742889989053249870745477229050113719758119441399011895752329110983019852134441204006495261861062600877073826303086567660389789918702418965890837391143380928703253461088433751401359565813686817814322770478836357216318993512293509895177909573635622081853483199568152752866503987682856211080117547085626226600629512602828302091932732042813932002295006352488543209161866046280612682823997056598477445592841218907073963968647092859618146489556100684122944367910681507191252456580349735669961315309602637665060209277975995032516998201821343331739558982185762834837890972531070304973934859251726341105508082129868018460805681501973540291571002331102555981169887293065258542932429846613996194683172616951912209373130755063292499344798155709852085662572759499513099780470155662439154760048188509260453500708299314700091504052343053123387050979080170773499583325473042838969719648890821121380540478160989915010483683942057483295338488233130795772711145089943799547946424179023868885031818296479161898412864086831078659978969776966140858621835487811200374167251037329365724136407785736946643921752691745891525587670793321845017938520464156671863729382428397664078687363385594342807666675352294300982782763371989665496785864456368908779079858446279824167435240077124682455258319588165732246755887949366759137193467512992012625662883841261195474182886165254715438354926929280946899493120572501088194019990872579717927611575644736111784517258889154583057407576968816709229040398536664231280254830341551485994373478276037293501984337748636576620190299096353824468097888901250751540525630722441467421244200223238885121792560442129087175780221261939018336054097170578245611152888142489885988954253896724818247884246796135548300989972144193980064323984316349401752516907498718153222699863113699500531491229460794364546249600437148888008686858820125308006875979054017945364846476596752046868276403200050040130259995501754492812572712117563190589992763900966313764771215704837463724759901231546900744347411233975125324271722462985608615670604916531330317780249731395504563017165197627122472532781636788967200905506663306941141614973855085803203892368070582879134373791798450069868756126884143740700968440783962066100460607939499517319829036318982162787416958998475693487181293141162773496561260388681790213736320034614246585006050777936101967602370500022193392782846620870245156242385025539638575469491512679828442980180806329436958401439639130096552361050587006790568877520860167998274109152309082271870304552238703781045303408922505448217729294473470317351035721920755397371628862813206230454253471443836770497269318929987069495764271030400444078982745439745888169565009845148190982303487804652976112675533317528643954579731303489079385781639296867420608381403048480469023809021776210884556203065773444905575828215461326313888664477996885422974308130622480729509822187835344754264967578291974172459431908717294708316370861379313874954089306001521702518451548757821620191383402852940857359078889850103826541238052609013449442107308837306080487056163107094830261263760416689370654441410048063986004193748690503697081524981779575949607371821973799517442224261033907850813535411675311624488192130602434983047208269069132348289884593700262503783069135052192456890992728163205255879827381211013953871912497446109529967078821194890609287958511437431847262753833898406917698154455020534479437905585292248295126258700670970892568803996144808803554062953073160791149903061437527591519006054236413995155705052966730863065365820681040772147701813279113779523088621589868327008654344565101197928074891365970742240379950606753801205323431358182806684681726039691531363115485213010670280763313594321181879854882142482852308998201847856637114904037815471753062611865730734920045976941121741848560366040407428748228620954673966156038601448218360477483408403386611734411058096108179316169404606062104192204585133566229539919482892048740580588160989760057259932548883487461686681464745922718931119499153406322826932851649672475882593868922460149698288800050529351224683769807106926370572720409170500026655898534852269072068548115494116180532591334293577987652465167650101222677897625379997302425779673298386771411719533657726353396623276325010415434021846846085057511056769311956727155171945994203434706142648173595524887063473836395801251712924447257267284229948061630813510852410452966645597651767049450321728055468713513825387981534858858144971112033774280856676986591963127850831660374153292278304996351462351492004047525988113282388759182005181143776102387627436217207110370536313990120957963384492783922268404720245555924122774050660886144081522941171543519299524217192164876565269036026832782359766033942430916946364118121178776721723941887050603831112822760617068657025001928839365519434315511445340422552382890452448779794820115077429515455034683206041299122722002707722144001960029788060765606351336419380888078037443397232298740915768285810159567259027554030217541857501219397959187426768941654763967919179575407335131643055733542647846931458277330014765004426202417564281351114094111486398075578854001979116329856104635956730214947702615191491688557176295010988619335659878289994740747959312963720081075545904046667153000100282436042298117490854890520128092823815637819536223804008479747112954447478858299860814215575691121802761191615675887687317522659192314720656363486821213410734028757600579769516678041137494019666471271180975246205083341212291718380313368208506448320335105296776228240886048042706954935048769580770059246135491259460267889684087085725529822189069925478155699025681388328353548908342998426872159133076740930577678710730648263379374396465409057981204010089439939688056282818734376193904257838772142107761262066758669102693701018697766656733313122437704996090360984578360433241653031545602583183532565884439906949673148529630652879866028747433712869127989270409507435921911750824295232557917295707699015117203199607004953057559298017521722717661083278690724466446694548207535393688075047466794879773626286931101123061826706571668932214667425322260459539273456185527645062600991784392103896131591731580222846275953038076018942091305015667997088194177450909878050637057743671526155957830524119848286651118165621412993978034907649723359742366259004095265039628137258865541022403619925097242310401972559729408265906201933469766899019027697155719091705020659599223737983532789692568106210096951340412940908548659637591364727579346378184230472968531058447321336018262707369305628869464704391642104530766704328272318595732417411801103864195705758660166663849793983164762480078641629767506124109013037125161178110097821708959065842467867576561593820069982790908241000763480678687906546690417130521740520523695488923357265247641435538992948295911735281078398915711632354028379103329850858540598928362172124516653771661895482843785742257428344571634696061143757164114976121634052789195794192847751443657188597858725812952089544294252432772032321979038942227236412287900959300005120951293063108694067774467278295391710597477428476795035426250893299148867438804348537207418016763723994487718104783265818368286839541277137418964273439123011078450064114892485977548759558365764608888436474597216478256233838788602293731072848818026258391429697229820514651099282075321581555708197400878093586727101083901074372828222661539540646159903980241145941151843882361907372340148686215735099758571117296319691451931503503351663276348799246742561061983524364012163641367626678749486718584482379073794464170189336800601654477513243743893986888053074363768763859617792105885003973274753165182480049661871506443824878676211947940599804912255025085716790382228312823667637966701059946296001863058936272584126504907877728767648349344603940949276682037848481735637625182928606778385235539310116642202224587485289700837286268596918521027383357562236305595399213342369480460464450068380209675258696289733796645179685988347677763009477082879766943063293735475274692910255487414334462482446411951090901124335387815706837139304562319143158709451353370204250722624332101889818994325602965952948018448788044670130870089948864929686602045649663240435899602844907640857955791913668529132347371994281852514064148342626345745619028070206248533315247344584796280665670392008981287047993368105672258872520987465819043625923182302295470090291913348502782928036262790563346916951545193968440495508343622863965767067249767009723125657157853492876219452952263474331042179798870738846030934363412560702845700783774289762849058912911806819380617208871899780955837061297530507354174894353690409161469410820724075353009571628063640402267628761700088250537930544600995625237479015074165966634834795021753068893008166447643813780501688276720953987364436237011800183807044061211530997074619624754280350753233950967298187723650372021650461046104877326567411075034809606890920699801043469610105531697830880404030552228724196775411273726751447170835018405192503567810944690641485244673990846355629635034743467710256184530219369740038626465975529519984564947126829794647668689438437573822701518939416389420842659193265630492130359945478678674650735118906743957949291090310570063057061195682368615241764759393643748488950331733684653604192861918471963737154543500915236440433330309429173289497652714878938358376605528673981098492131107335017540717538681943844575855318426220572846899634897986409214543708455315054719725444345469829491872562638095446177786810004916196022631240380514051734126145870048971000647594375240497221021260891219586180535751432882984454335468510048133222519497538841928803633965403092446271702741238966068793904499099388683709887152279607271555720553609438105037402137848390390539674757629815398878340979692252790924805040502494972140950896823972803417956279463250438496643799912342479946386354519606569586643453865345155567678250306191957535852790277239932540187417929895141234364103524942967945229779755359537734943761129466336075787766640493462481538868190197096024222716429876005165168311773520833696654143245062743962020716010775554279951894382949214368706897181921926487626680802184789414818105653489720439714110971250724825896770291910120032824197068293600642417036950326007737548930285874748028571075490664910809440620773844596516536857402545457121818293801239402238423156030224587812490574739352006863182769709397840178128183847452091212142544581926784576817204969603786673193668743230143038558330227187617514300477213720476245931985955372814127043316572493266764785038188038014320993900363848821663410966087802214180616782094076363436097842088445539223767476937077464130050902947212949418427469810606715691987307752826171921943102064273325292800603820245309820062213407428950687726500875014763578971790663389457090836474701172581873677402117676028289765890953911191568421039970960644328952913842277995466378680981175630715636205417349919858016528784958399310795489949156138879113117971660259543004848723341228632932367698840950071117114482018821341189704673223192848239336929200315486884616404469582386422676760233879958609640164353719296849797357116099262639215726566510965814672445958473630567712558444987130712994108979301728753674235430401725420342726871886109140608510027375391123503772596625429514073624868405022504761370993257477663499721248240574504719245982517449380133235453064001822422252465991221978391800214371526028743524392860816901714129112717475857584829246556254586569197788092549902612684406729871761247026413480124078019838097181739491550082719477367787205459206196595131862794023844364824891471837603201101567610270509365315790451019774938767132716585423885013387789086901340596774290759941421793309680536727832060957254966973895193040182704469618340853330385916667789686151327302107469433166807188299600610482077474044774482420797611018557901544078915675990349498388094510335887757589267863041938091150147288279368098461376432944438919183776473066342775077679227651889244920770034742788999446183565877969468321320313725165740891037901207200445358902087933544172690005421237135486877770599414565539076191444273758258705608411800690032341242567407831726171307235719688935818933670836473654190404924427660153382478628682340816427470606412157507687021568606088711019272913896827327613051869950417736287231728303127408684657141140587471090326145571860223785262646835045687191891221217845293219631229993393455672212302433571023758688192787305126021033708227096732511889047520902793446016760186232343118358326270607932104104558679248758249460471800223523758963877498168953828327273000097736981097947005670215033051781676457913177343645132115133599637519388790667073882918436509462314089972871365785783404137393716293072868812324062848722453241059507280340140320833264378364033284708390739265086785566124818941706319460316048649191147731574401888102656465404216965035396596491835789257431830698033509341242986132310574793611963704614070969166377491310601028357940893886535527105130255939791302418618856913086103905941765720861100959888850985590215113897089438171325757862663390703817260896210835327316279104276379092118499922960142357484165437905949831409351167418108550284126222520714423201270860898571943522549745813632738749624212053084555063109122918304501026713678729264896025250441212279521855720636882110987084630284798356974606582231817569309161811548074666128441196186425205738428298459665472321403259188245066872291583358197852526652197068609705587326533158064531171850238388247189593771101357265080220661875288878515329694786191673820031394529844343795355047031267658029147084820995227662577964172594682794996328231353553801145678145744754264897999038170494492979708486534205431674291145775121226426928806964919706878037111294899309428229159161195374032447444779835315873388068126486559390123342120411570953265166283238090746587775491339978706089187964431643215511316709684359843051640620047936423849325951932338897143057706871542142643279439981476387643506893640198790657377682871468868305458671484825286397886717267242851202104977585982325160496803833048829744582457477221996086643710515320964565398792113192643560718130665908904951406250470987984172649103496944117719109131679942320397628466208564491953772657290268078398261079614511767566023576051408537836273171338836654480832663745423352603083671421097599233233381196189587071125386391452857287223995642943573102862993360936272477948785193429614104195702055315947220165445620939916479369067035136621281048146797859905234465489289282258584893654703511577086820646332966288610233997534812061008063795899912046913560452149113247929364572893869068381254171111796252944800301568266857074503412506741350775864388793141412632646469981850635893600699180417748545796611802043415331180249758133804786377634709524806921855014408826049872044143510607747583400427743538203102460365037774888328944949474940204343673443841998218503934039199800199460486228955200535277505167605861196252706848181306374231566882433752012181609575762843576842038363763357254805077689032091128142896490652782510461354209612769954686854746832529225300389434519246673844114059495174136438632138426420727554763993897369737057321636137942551354946100020475489559810189339743913642908256531561809749008234605253659143055125925352565888546660417587268556981434549115932564108091219694987278762446871395892426585803672410392956859993471054046666316834868913843925228010391902128222497370565214496544161120414656803629211040337912070970780284234746215262156700227526035033927270577970897151265916666988325078686942202979356675807071242089069702342066588128759374123091084257076209386399851671494612090710885475470844486144822698499486859892128124433586694358449313056949574241202394306717893475288190656805872686123387313568275385778363599802380871815982387444255956689926373526153207913268159331483853681081629131757588356919571780900467349400708225003292930924616067126553588377978399043799469282147158805833245957934890752314058152579815643478060629599641381431047181411736447802564931966580587417510331942533258307375709445810789782076567292690783714370791456045438837743700156068566732356125944067649547869897242524851275284785554627710610986020924315352912307586402146023469592544085158599759355462011233938125330023288702021634253753821106848116107014667110595681538268909000780847387892624828906168590581599069849172351223180164356547736949189324084147539133916129410562385966693993060517008013567257049176897134048149059689292152728713121121135034684068442566179816411590450915767287448062165990879726605295047993130268174227790023334251625828668723395105014522852051578162469534425154576678823667420783259959200300995173569715497574808307324047311357025521755392102506504551804481372453704426409402330676130006451676318385975335871170203269142324230178673052847557006679577255408154074112897055605600654087087737137410044439329679159203561113930627866291482911184592038117404507535187571827668300268516163768516967417141534667831445996987790635262477195413637468656428824385116312120611989390619303010864915387894589183512019226573783630796284640275125352856895861434240286392546184591781936511053589453136296509792091476739799357023309524226615316140297242969860432290117877860401633601009688036894356917440096968323366518967415437829036105587672068955934379790595190170310793857259312695933791888358373493405104143694146853428453019356762245450273058702517432635283815686547818937183541877390927320451274310985736724957940227546106334588222196739610474891000111704336767502779426098689509406412522940714571406438582072296469618313651632333580859363245387378723345346713115549722366538695031863801545279131465091608174264256548693066618031845074640663232356058141489444153881842153440786232581815744112602620251276291911269164286424743756124652769006322661647588602840647362368737590188645040714046383195189869343869989080995922088640197730295500867659646201048343691544434472511853742545127982254175146213127469226215359161517564020757469929945856123880211519024328993454426870500182037723609613778150578759074167145088411637201220596116380220049574978587424277759021004240512778681965176910859312081038051870695051499267495394093737532186168897645004418785045051422747087938782233730131477047790687668077981145458831630562990520472361453128456655387145290438299296777116554958666725017064255545866367681240179816827515029614753158527690540668567439414598087779453123586643600300245094362682745411550134911899916447179931827552133796846897299550193798309399952995759584755608563333463865140855060333215879006635619044149166533853180810464006954879766638261749736283244747075598550200078262034841929023501385456507127334469766998169301495754374203175564858833202068017922667415241792252645040154254326842253682477895179840636974624064799632306946236306902381484911327624328524604544936431343335886398770014501273026400715702897145454508680980859365982116866855252288477909338566162240506310240406384260810372035087951910761518117566578705909866856729347694738889294004676437016755715144274991450451351982080807179095025081544031266879455693540425096978421775430689383529268569783259133723596683875481497113534582428809673684419144531927116450666635990799820086547543118799828269808299414600568065358834962798841993862511025465518967183325123382393435812666876252420005567782674839889454343481322953074256995537927048723078665480740167737288042703248813750254527083215250294323381508592069607291685040124919759060089194823846141127939115085492764033747172196817369778228579171026737211137644360729414526550593729435296341307545236601520138260415753965676699872578337086976471871703626180028388764190553382561792441329754754365939705419342562742180210428818738540739404837026343991091789876824719075800446852034744806838822496176810494716723300407013120066571284189633383889698465497941967623234022322428303762862616933756247263800761548238762610717773752371223635392179403972801843175316766740499282781879413870477346200069451532493232836581753664051071230871788694035633834355619753847712238696808133751518067759027053077531737454323836117923454198432106522093208786484672844327539204304065875104345013331641572732924975840468875996833272803504211892229302345530737258325473369982803329591750478489349370468214199594811117863675835640480167578420527168414676859024601349080938719691774474748337340679461549446645584617511963552866806454733844076063617304391467267580351392877233022693218245820799110634498423603250741196108838385016393042141077339657440592071771023723143892938439042919376346929577055238124575965096958203681779035522348965514528552701600531880697234878674923004682702526300406524998575686490989109785914869323668390627626816914683294662512845995925782245304185131379934263242660159628773958280416602091239277142175391406666567953844005123986427933111129111676860512134884796282718742195061891556610324900691100880377354953039233057319966407358255448850113947529436984454566247752790000480846857207067960441160980718495608016673539382330968178515724735645784346606324625586986616268211896333289963269229941201656863264982703024069596445742939598317201925955844683161747487383615306090337501463791895006796338208328101806449441171894431394960499068315014768036251300618613220143207271066898113586201898997870267156046033025844195315231636341083389120428939756065971698610799502514247294324320155704674066966322489216162879340144751276545744910955367611400883988281699485813290528501012631144911851261317156620585649751387242719716794692725700583208684300785151227350112048169259550158709853272524209500549388276353051220815899005126284415315833442578340344727563727086671955869404987369912551052579666110629775507478327124823342001374824467570262001197691006241494127287152028834798511487440561567025242841648435005371248461253580393701659678073565408758143548856872285643350359692916902785167654762865601873603662122822875024567743512078386891126110892669351079058548110389747231165916653068711418982838816215504337088911580789876685204786710027367189767016059119679031246078799023081552451479096632628413901456337629484514443547175469958111559557636854632956296398258213170707013322360506611750984501509940665293800150665721756049501245222792870922296006445730027983636286133443800176797853418960967824811640820338634000356927989079102692322469151818212167572001732297847141065533048194936235472837041155828611409275534927713794144492869657661096667900132074725419259824945459170151513253018154685225447742765968113575371638888999931440795733501025282959349846838792585684978561371785398512544289362730085874652168651180353285445852148382757467479474395415316911243564858444380481643000485611935277476125337298813723290709323870520105416091019810866863632220417242735177798394129693066275059889976239750163704936722613468715822802074909451659755713737065261330348316852850222685102803437593706633390357842471367067569709338532937357291287150010124871792057649948977061902764452067156227258772410358492960711452740579913406348050259753800390882097126596281243861612140252903623799627399434205891956863582043653658516998797838869355061231324334758678934074414514368723839510192580376464687619259649055120053788429741396528523178380584449710789224205340677122846676392154444441667169262341559728563731163710482092400220582781491009741797396136916525410510602376753768112575147237743773399255647545484086373174764038350525466997866199133120088914324664324132444245126410555207315191535044063403142767926238872690621388691389222338373105141379148893502753734659181634376583813488099266781777720164105246135542823011637042868192784909502456285613790959290400235896496764040989773684710612407441861352076662464131088179712161332467322135042699606287263928498775655034184528913412088601571485916769474599870276085528437324838666660133822677728510969339630124525953858678388745629114475631677411640556151500029072747765088752060151556567892698932692062794119949631586405967456226818977688846758843135415137511273943900360268930774186370618208312176654057416221631717673256683350782057124484338135268853884105336880503491528278473510406448701556925946492166206829808888125902029628690537026443662603821788772168389564047004736180299230231358800411296096877660527984583879850152494802541268617648676569818642840695550431521639901536633774771849557707056279279285024440057317345970012716235782370549307658052533827971093390728630628140477938390049339062827498993823309479468068591514380665050857331016855672980556572713528371633673051911716606318601656752149914796758807109635784477676102523470866357540033184214938121304333193452077953203900763076244595241027094895224418188985221350682151968838214469920487015677541308022878152025995410510977497580953507609073966850736710766112361676857566032887849430861556558701373369254100453137156107685511899868301800810262653507008386052239962433629007402158471556617916331878797325585312851088657085224959711181360635962649381145894711321301423062760440923736571270624633197245135121473387993986831464303185083908415008569947459135463569048096253389924725741417085650135454596153104924503766180218475119743291783256147795080168078231899265669146585601919607185744180404298356949076889412582506586980242347671968586632975328436635951802933901999649498670236262988751462223152232066280065200174980393748712834440402674510991996789279588399191510682640473596849242681191054570297508293907526300597117137646469113673975025267994807080979311932812877633473005357073372556348577911361595408673803939132008204271087464252958258435909503977977123267689657520481519854317205125194770981566104148330627938508751045131539173946174493715052240824722901616790381321794251480660815890228790061265299414583183815199170404300518936345149441644779011067057509206540312086136158174069204584285391632533415275752007740337819404818155584914789404138716896120676881812814375245155206369003887624266206696139719774990944440434394673334763499895451767754256509982243986899173120234848607902788179291961694512380823402211307729619246978156295636126060183821911897135084689519419150260800967460633274214283937504321019780044355482040531188731802910856417189191764475269023314724187562752090848759616197502988221449455930613769946802416356813370954807024300400198233163282755673721344330583964865571454218303331497870744896973748014873071374611305600998152504798600245709950523230045400399481406047481720226326843676242880346703620118590992521552653573777237745428652665405684019547393434878206212283249785839665061295185901148300057218029751240273755509100631477346380329443112931558277820331220252810978429143595009472616378432004825924053820619596731322514430054216322325144725094404238843116524838630219793513516377100820241551874723756689987352897304594296138793734291695433566870319982501139927067208726116627771108214092138855121243483909898294950839844061198941686985542936035423493273536735283398418388568485091212144485204020134970251045865722285892533717174427567301024744843661105894548589984703412615975650726632830054432681761883514685356779275813872672692909175524776815144773638414668645044897155150278925004344831696036480073748283011321793567332664479373249002462396251958666109355622355797179246971535028128077803963697561521813989828052533460625556859498677940290338092853149867931104307173211387178444291365174775941491645597152843115767746226026251383776590597875859999642946551060692785265097985110720238865045963364483597249329584131373075785550716900717382882845996528534939395619548858393902479849870116050060286703535976263422576879630750998473919204125531140604519929691612690574473337556265936039618308754914401966096792052092923715647253784889187024723298738789520657129650763369878702532921446182525091135955894101580490925710279744072305750060128002206181464652675718525648232062361651348125663490393377524705571291251623909033692765599111775936484632627137548099173061562525181091440952244886009185449347574934537212951838706647378633029589365163163680641968732850474733438132074472756938705876499443526779081799440824342884639074911812022827833430178293153690985662028689469271263620029059033981878925016290380081484548826076646988543616159487962432036205922359485808220382566507669140473719392014195381102173654868643210366072291035248823669597088072139711743096091506065319745228018051894375896091078366156653420583565964889397780257920761940179661171822861273290464939981976038847002338753236271732130844182361286859218762183047969129419086316777097993814970782864860453627609184020627621333412905048541822189867680155477087356444798194085787861210888417016659722932233833438030720511044087235130256219280489386984173467240541226833476141620195825042984853348690572874754131451398080353285438247829074382131574044759891217425926729646620153280211445112214466614699725961866720105939779050133664815286289980520726652891831470847377152766548983620392561353249079823539765677063138259780333286154043233660194381834376136221024320433046619311990370704330083537831182587345763393694167781501133308491721994599473858258086524193346636505695775830552622798189014874553450303101346211430999649466468256256706205709517050914827833751052913696245774619465185374553733145961386347897053312700342890544355265005373840180192974271577624395859202432842285374877243548294493866290979070098497983045817585626866670147533977061704780275995995164603186355059866602137031097636599638850382402070571680736950203777624161782728416074479189085977063717313592695049489752148341448438810212752964791261574088793708384927755231674249830404781257836452800553689186219037256579132551738282340645925584782837746958729706704616001869285846166708110640575828392016815669106713601136713523754707692524628225875569130376933703038928091810739155161800671484087613057528237795383741864118614398995007097638402726631209819905288635040587852277991692772878350388555837237254366809493393221443513374398077702743382207020055168033231782773726941756963974195273527359794029358148751464086707423872110225713721118215844556620673268671667082590622910331743263795199402406877959753790996379705484911747294915702076835804385164422792296020753105468071896773094991149752271835601531464552136504785620066289095830100319873941112450302390549914233736384401515678973703570115159152123394415241213756592964080943215855296239456287437716186340381981753084216556476159243443546236367238390248704503625998707259538829636036686026510935558326355670678554326534742320621858721734650323182818282749025137033873121679406013386090371609901778379207510671032605774669023761929671272550699838441906291779448358246714167327000789824699736184381345164040967132716278415406834011779256752538868729250278919184474003187863313767164892434825821291961905774546032197768593841848055683119596728768185056301049327924956380245389323259845962555296676016902921833414375709465776913319374029359857188393701073475620229435044739858323854588015485172789251935786132979348667213688427960184012836261083659004240086214296528797920473430621228820219838117700739843877533350123200245805719515448142566099103957101368769880868587553597351282518761861297135809461506791119999886607247080736082590949929633830739939947857308255439562202225966730255373249880633991534244008026333741544755991421533217347790983751059833883487389174281060949733105955599111408996921780104569332564801765508584797527781725409593708931723900586343217581540643010562995780418627321538291767591322133014589817799348479208150493316347550446689077573023677398813632749561808240556740794531248969763476900389394485584301928789711021649077257562441024944294895541137674429858993923785278970386153389209316524844346728841076144346225434318304366732415328876372005675744061021586184402689083802080228790034532340380226745482812294396897781394090921203568240776294776929291054525732927851628032250814569633743078179839101757599163271946147048718059681195584550478648560387973293827651145774761970737689132408618042429791569519486281997371251319734425944915395602599761056680712475609311958162094561140037431979114526898221837257431653297780651311857757349950225472476620903979341728946374385819979592818835969158994539019937347415641129516292302915328035660541103168304389247437198127996643775632291996521526712946732916534634413621345612394129224797720723696845867743046792693689538475981542358427859755983409529886244018652599043499347389144580995721039193590669596187334683232575324058439338557162097585038375539425191152552872219702872172176491942566928654894456625466803357682030942700053565254828259197955978201187171980916124476612487596654085477581332592806739626926901309789424615424196962438175047431520244108835544619928453894528467097908059979417236023246512363541526692135485205286268701852053846366819546089469584840709494099209162829878620402273604593108686342292738435981660515127588235682436690900794962000507007259342695895424714517580990248580596599920186000955279325115051358769256155141457933032244963018603835712501944249442918011325036295667098974875841031789801300977978492236296915244907333794564402244869131045703730216316679870053982010018188043694976850375632634931573726449583301792856596184065943537881649791403589995009630558621189570321949153481629805627481810062633798004371861689490523146435195344409252073914819612030448455481332838786475088644368315578764132466843904319639394678782564370696930968920118674230696045024363056463161759327887964324265047589436817166385150740389937157146546387963197978534322805482868898300138688707357020094820205924979390008228737080887141646783137656587814679682496192891714388018137020827297831776238978531378428802666092926873882182427814426006876492919471173046582307062798633786775330343748794577209106809844057944289589014852589183126923424240772377347220310571269382872446753032184423883934099215456019270280209849214689214259723308113528141795695150210514779495694824433582258801745448711782490147802883034127965171707461661134572826956669181009343852933026691230102443675832133693951084384426796342208151171902688996974065080198881120988985796091514540517575011648853994326532449511065581190702822905744162456540769638136126671673460979401930956202100080414392224132057844176592374361920994148200701537180423547739221038781967366799466800942803724189352853369221303928544893876292977064954762424568907334066390429811594605638120772107351189331218316593527908400180676873310816198376478883441541102543571859025865218313423912013186261282746368907265241342122062394026427120186711533916026687437879471782275807402427889388829802103992421158095866566666724096312208019526857957965154963065647309349520223272030878258152360110233256491902185608064654960174280838733228932500199679123618488748659262255393008174626299035938221787385421058788626035176858663159181656025284132121309366791987176064506875275374090684205010259643184726051398890016522908873973086437739953214843490175604235507529935376610302595171791640525489016999548592457959016299001811425231274104615505766703314306465436741210101341773446707751438267256440832817418339256112494694215368106239282105909493915104647026481504887665142463527536016610013520283485808966419888291243164832659027391791376967661432715156549407659887132645576957408588415992532839304913627468358994351510366942524911729935192634011079740807816666372283101729290590689848853539899910530229641146715286955721596066389105210668583798923375306831175385305843282701451391409723185141784325380898718435949543907594713954832061786915869935337147296623636391233580473935316461833444685902344453444256012117360305408042291491765363022298864537044344810217294570916470435992555096908842386285726297911984404865959847737602696327325421977647468777971130072400163605866509136906373203493303090239414597688001452958008484859484180840924618781701245834398877646348268393090888516699208892670563836867268827363283577113858253467911353824388804172832398232795705173679141487870042980927296246005025725518246704338682474219700673961208477696149730705532994352278347955680993443942566508995388602737791616442012541018475120024931575535092222861868857440958648984641585208944751416124823640633869407754415991705940063280454041320799677346485622966707075799577829951492316123497351731679494138344222450450715487662776875686954497100605930940196734259413525451597028898416518132936798299571489955930651250203662300441263849110996536542804796275428578082282763385947868615321705225833363320807299916120868531779552420801140362635748069738816039070423735975089520643261264151012243200687259964754439144164684914680099728465940659042489725127473139258623851970552452407462314672319279230233700153953367243011959271513534322577568959398241248167516628273818748005996155809357446315675416160224896154515965900137666606633669389716442585842252196580139317761703347006699432352414876363458158441254927366263178668719790450213127407123569993379944408904629074434149757765119964318554218473276705775789600152080805197479364304413310995007008354497972578106576334110249625058619236512537205168379351292530442698180327861445240574645598071154853723299791418497521262344297788538591295149084796929551659735550174843879216932367546186055579731789246589513579565948449402742027895726569595260540710449410026832635271000947225479341344588254087385972607433503518958121478017582203970430855172327014372707794894376037565137635288167373661352587869990046204242289699224740856396733742930575653036538805472881875581832517933328938921617317538604680654764829202007530306073284861730523028871139342635048016716959648419071437828493797465922140369304377804865402546844811907079744895342371114681723879505594379863329553709416911007380304570606503050284654563172425354941767478469104647270507612160027618638155851714604995185740207518024249731649013488230275523136995612913563771136959386082251297109247160792204386435383708880917375774241800197589662051445540807289026573016397627092707534597036764046626003827695854802773731833330782560695716295546139535334649919988095571416983316492621306826705113236682410730840199153480617950248281375509740935973929437598296005639749033258280523191638574728276242340468848933275176448880574343813066839957129489985406273384958069540757995219688705823816833507503205142644838755131626058307554015392834194410118325332512448416902776410335466697352302910273303665241842090261476863652147691877891013369822393634269310534600712285401964685775815526347290300925199471428231554600747410341571223682279986809336128087077528274354676186707077927090469944156478352532605080884722868464406318632203508418997577946316567643006771781226615869619452585887917597995777396130100746125466609068546505270836752861516278941031596238816098310208206568824715988912697074241867377235864249653431977396135672182840843029081706761821076037417739262413415848397514505516820394983843168843882096655834971108341081743599044856738669708117050444375275097168663231913539190204121804633670718270175509113384851168527960821494710807007786701938270837306390264018084094856003659316798135078925390878568441117241081570992756434588375053498533869382589634349003751511437727946661371073637302126085737848071912723902006940870603970540216077593847178510003110747778651770521055605235428071866330748041322987610760187471523113307999227553931107749293962166021385797848566046568116241902866335219239379227216366855037656835610667793014266531114325697964909855544801509547926390255797801913661748951288645982131154845275350700386018668791846547729860896452186308710687900877601427186226138749450335454607987690197984721935316246376410412028782835114016439209544918183530478967222574312826033891097328308700924142139335922726658868832760125903442511813922837307047799395658106140710646572097079139771258080567158089983416826083115522570332719180120920524254219191505577084194204456961065886833697287925666555679900530797863481654912038923565010300008535769899287435539678101476039678164833510064437261951795095190093162565190121001104368293066168390395705308328747682424710603442400955055945841777072178441493088880516970979956221375165333012939472262666636644087477025035338768564095339003899230336654706769383867635727367934421276995216297135417308647495347456206729443086890170014263218187745907757613146658079240674106720095882215815788577468063449167063320372470721500138473387546300171436766418338769462633373511448841351650444261712892041971302914933679282677137609257642290086979666601474885069624926335015898255417250350671990713700782582826230081381788298844655418762354463244521351902288182695031921585565096791551228118403660954660570953093816927230325842128752214899667907804080447538185269952116332837432418709183784978132745407608820675335077820175330818160291522476757988431734235512674636061851992091086429163143972777922924619694686215286926418567862411797372058003497571215987767371477047460247749873461930055903272217567491335747983765524603347681396673152511641104472970347687811421460310689728960370536397169163107423262688234930344303636627209059616703484318013073883211115785698749995976307877885768672907582034821856952390846346126092929849478929975146220821577043892730967280820484479680350626269119019624038397073633349132447960794664598903360872282369200107452297273668159222950040297672907194951301312386556633432268497908943080619747060161145503123393513113970633946121827797060183412582257469452060181909873722342671685303004090218184594441735998541980124461613944707732526661446696701260782494757113035510773293075935323399132619785507130312649892340498449565434898688313239940188628856583885842110254234724395674983841572279972917144103962103257986399762390696602760685620921050681593923510159211876712513220176813495202735882397654830272860785707074742294420905214081865070756495838051976931849955192429981821302301105863342622139974027398962171285520744446305065281272431986335497637340635172709735616383679299014362272027398342601468868258324211716359314549575342825146747271522778401905728932726486431375239106850896275653692989803972544760770927976916582954384296489897201929439016922338747274191502002512479558076304969524726139797166241447860553218272976743384957638689755929281458602689682130342114083640581155809801995655715460920938593421873475533405213328385260800525626586236342734500283912283601031169599133425132578449612420133800181711281420977880019622307749821071494843072718502356775347087242817479484263787138069096553250829637660294034805269262978267683972851750029787224373321359103552606357392384551718076434960144622671791544596347091923962995629371099643976240243874479796383366933945650903027888076441617490159465148889151705575953637457267012520682582614633291306441156228683345326193220819809388099138961425827489096159387467279361285379804816042539254405618702992139770387411690186238741631853086528677336306957271635838084186335131652629170156781444344274997191572254787233063316390041898033735327254531899844349247586152953084135749471539235165191447292466558943211547738287403222632815418073936626945436161549035676517805506760019383014476099617021131090414869484600371701802223508316767094809542230903039281343171150213031619092445590325333086558482772690743694368409114956845240628109842268684505022363410597125589593564532210039689856896160209622822425885882645025916350950290685958672634605987831199651573758185357086013673458240721749344029036981376635542989904957860169486950166317953097985044662808531285760600427963225188473164227035818947856240768824601190409116250524198425911689870928985691859853124993097585845656355807349681483632766544184318473790719342201569665057678587152135943768329379755002351677013680180288043540086191497631168583067304210478351113071738828703226404158337970386875538771314225197260089831443688470240636143799902331142025169873528186172966140127987530584192921873896018006290543741964834177446122555136966452548007350005331861297176739387837743951583997474188187755492541415969139339147177668751636024122690007974007476126250672609710327221533112817020001572895376641292683897446261593329277942526065807686377811313956714002362267278412841788469015964143851564196699986476900104080842531686819264462261885187732966774297807603226467580617555294243601457539652583424590550734111366696378848209695421512531117274970748038497683565112524337324363608743538535858160897074169436678793293138093874359433782355652059572980996050697988402263001106141713697421379720009817003856832918796041788923024487439998300933417860329195613691013969572862789522458857805664139988474861525822602714773911580762985151537476540934183272033336719901697249079857795894686479819962288138348212563898110605317895215636451700451076373095946641830533826698581210497991443791364899617790181651032399988423246901020896132463557584802445157985407947932814498631984880930671123967666735347663038038069798967226682424741993617540047161679831742531561398410696708301861801941003690914282332450781265673095638169989779898152872464158355610244445046397834588139640935112648643736249142728666298046589642606603206712497819394554649331477096456887335575343421183801256609960628918042820785643231961458179133224130602926708768254999878803146988123993635237085657176873619490576160678265316065777595466839888281283354400170942400831355800036489329866763080994774912102839255109164586887503844358193948655735496421847053718891263422843059345533082092231281451115776678600219263740447482204774570202332357450746027674877056896808699948366923080824791254967408035669127545135160545239445245293866007083831330337814600452461951768515850500882415666549325945431197968207085461011706388721473986097795693851880172409880224426880386432730999642159528393282162249181338587527461317034670239047687001005885658168195206692903579172923960776267218726191851689039412106004384570600449519071729705617158130277709301488312665855476634740445950716551132443335201630684574959552808673183904123204494531695226981898741549274910982588035922202716570012495833988722607519583640907367796987902375525090333315202277121040297487737228927720535596623152826422387462920761288041204613655976839830278444611860021677802836714080208632648371221856316268383980058142885034853515907384215570710040404700338342230729865054939590090303027430892043069262103090041357057098101099576358969112728430130351678490341678773623832689055920340620499768581771510633860013111828533676423635886577663304231599022738235078557004856478088134069496095558473084813607217036815203715005232409796243773080073553830888033070437839337712523700239373624880108854094695442576021429652181588654462398450332550212766261655998504030115462519030314776504319125322184185704207200689648965484471768582658339325691708513507748068065798921237829825875729344672382322300504085374236994656651368973053257622743340830550700307186898742876480340404107111520076364401495045825017346067089913829049080277959422534872955776172743051024395673651922602502777340281847318867586634684837112845627065735095019070197003088917525695812843061604139769425604672959175742232575866198611680744797037542254927168095562859723484983722252813651677760560919818579973963976117395439413011530855201124649422806104095369449958838904784519030705066032079729184636160608373259685452099941976834636822675462957711123866237250630731379586906451970149661694258939376823138995914166828223121818047174052893051761253902419996675218446618697655905644657489171705605001727079823343115788670492469673729803673392872875247225693174635488895167569905916036827812724184378120904067551009406622574096694542385573208998760209348778237914883630865205814588061083258679385061482572625174279017663653294872684058721341967946876995457295186733512281105991784008264259286808088425042172670212054091185142740192770933030908215326800305668600048576326717785725605348862042508213154427192515503372754087618276600357282319223966450098739256839352235806144425998768453637592382257966772325241436371554598845658175377422542214359618158033721241733430615399748425589123122828634558704929968015270078181420200617166869611005546963973984022973463403857265449473812820395653720044497822615097464056094471924080744608197947606169478714663196174726975139729248219477335321862141049248736794314615734326421395772913000209527994378302548630408926487132678004166250674524859557740100555040251634035575294627889684719852984026052764113321658476714858114804191201317881507253283693634590146485063337964940611207920252023254083322725410954101548839788092320986924472130666962077120596718523815898001398960153522421641345372786601570157126168534895658772061508860551589427366985124029020184805915529675400165151467189148688012955946735824498194824683291423949091258446204143071845316492615464781256166086413287853415241263875964155989160732764168239245602353842795015751517039510732917813509591038173338827129696366402800404126539430481781346653016858246655414919974241613299891788074699888185137713002012368001021700638651488321130946521565720743870221829486722587504910580039321259145495253164803896260418908949521488682666688486284309571690873203157791386811349780937868761352653852779836900272710091786757003661847211501788918542537861694472956857931645145922066347496865408770064300167783852118726869347995720297036354046026542655700671057461249410933862328158445499009117073975024135708863941417064382368014649676998124634868644617035965804791516526682199147753127384709732378971079794828917218327670418878353751430746402296319431262118789441844305074963730803482260759520835116044367260918887155108621909875301680867608347655093828585528686488593195284923620700509294705381419713094164547934427516722229930756779082421564912194752668774484954187154778653706471279609287363346307998007715576885679866746957916950302997032752022974447861183618049680082231815333043705255249560466080014533732353195066539191611829080578654223617836558308242009933290564138792105159768753009244540023556554353080577506073980061792532487283480687788374468195599268071801602789816729574148254827446610500533768426382045638552039849650076697878323267043950644788467049004255234347418121289108647161099902964933468812027567628690506443727067498131443481730250515683845556538680670784180774228796173353478462189528725546776202780014039739893515135582393174964475169940961519523454492909940388669467734922194638232190338595403676390108646246096922725031132198437535712316540641545200130193000784866197477798843800744733185451557993443373592795794529807799607049744353256509990176463513631134752343210025705742720326678798571608168116031563986340571432050865479984093405089863379726011662599845235846318626372243440653554372247223658662849575884433577331801362177455864929079926953098853498973455705984936570235216120565314858478528939298277551651213761398534347352844270607153603526688063312507701761205501583325284165970067746426419680664938500061376391909610092709052085999754249005259726832793546494549759646974074891972847469414210193480582760870715808511062266872562244757124396480525266996026488386187200647061416571803785934093024617087143120711462683323147803364457602535017117117026879799279343431027607185059424424708323857581007419455600440099478536833796761553573337216326844630176201500358876082505893306658474190054717524952426704254023171831034571809260135500458458837078360599375235785999023470450871623768194274594618797267779452759348792475481555463349550611777160723136398053900998835507516957394126074314654973444795580609814584947285448812175865711929785457838715503713528030005344412800338596486005162502689080990876251586793494976980094900468351801376513484343353458491075445148478984262542146949739778895790705240844859825001448908334332348247039908265331587896648529214345961474727804325497856139493758425537836814658923800257340557825935016134947687530396175333517222867386500105835771707266640430302705832382393165981523480274316947909866831871612036617009573150467287494738933389000930967629746192272368789770779701984385705495343170834866396680112919635130060283385570645066569388969576394799825460712957526932141767478962046064274330088202502971329972422140263291947578658584428478130774792516176245545731629129520288239069209514055301406248079452943494617939438708760177816417336992520909978198045565778844107927276159573299284528104260010099820775776427360075603667138089351655306227869093797510911266285162589705006838468912534066250949822434749472290834908734529694718572014207701046648462614633585712940164998310834850798547940767909877085539043963269966920841159215281377640545762788965855081484281204131249622756510531102659300587101060729854180300171760737950918095483652670379471571089548403512083658281797590381591214967505390683308448448828514401723435815694207578020304611654879522173392119084607343140924124905078727521004411916227337866110004854518160033657517391774595234305894724062863790421134311980950916122095653264090598723421617838219087803666186519641139831412023279449296604790887291914908518325746822932615200360325330004701709312047465589803195208357095532264226210721686874423169348837782619511866401416997041989864459392107254563420713143660421965560047679331638083497392639973093674430427514839879139043752995527863597538829999334727849866316933366547947173270173280767588568365356776676328356478248048682611875793594444049571927085075068818882199440787686179383909538336491844508143236091558294647040947224161031860371739737606070688519777242425676296178857533872877480140389824277586675986485710236618926163064099110541620811362264592910476400715619922599305138755301086462570323532343655091084999482175398992748982180957816536099654533798236603543190209173515871700785897141191076907344110601558752928436485614880314089531539137750001496462157435889811423810568762208374690944992744195163499984825032198790765327010170938292328094284492839406319955122090087759988854924007827904972072126806464180221836583341875170948505446368940990387561258636645653310972442504765836015160822756181075206055686621662014768714801767058396738290385191116152566945131653061539428244158479300231917758316332730254276260757315554522957917599646195040016040127553360948081833669761120315792116200688325499906202955633258473909846769276280551165673861537127549427254471430540844782756871728135782446908320585184122135857837503725873251611375939702740648907097443189929706274887549601565529648250915994234845841275901082244180859347485269686291466012626358473865200994989911236499685932942359255127358342137180362379810444547977638045960583868274809156512920336324434811795786101621885784937542733664797721822170473155611715612280344237661614665514119047414951094171593426925082610294569617188494529732341760563781169820839841094325765454098094017370073786816438026877043359776560282327789021363324770038746064217147357120127013634911289200460125820586611103730003331849909025950362227291744043605725235366154825688008138802509929164082598150083353045421976556442236582972638473247455714747341097232063551438138279355993421235237768786187751736324899841858187077227792729469880118126408404051548915102861252343221441020232965801007709444372454587970594728455510728601125122154337236882725012075357857065406538124665273919239074688404417556364620951650761237004863496428277018303619042007693728877210388788451111029933262773101457108307112656211912347607007560835575032813553720487656946072718224610005242606737430398006021703688647877132040668121488581759383359195823289250678369666142084449718031496515838940400608699065748867362226080773623300679603244451052409077501420371779386224401237404448408208686050205676818498932914368715831540065483457632788400141456265144351664983114454562190587928068405328947667563134535542672131835074222814998045281151396273371528090942272425961002817708019185351093405406125839676635417427734309796453119685706171366137206337776958868485182108929905726956895808755066823904524682029704628934762114686687478335162975705738354954814466379035291660549846202341712011058229127689978384736093528036733085422755170055191923291443970718993027727930076793846715898395226158665405786258370373132151070084243530041467484192694523452777992760690476229126473491290858293072187218680148263298937515966663912953296133495081701130992727752780348441707085999770826147855157235839625949155790334044333520301600866160074441181157942498240739283837422685496761033710542393802850129991352713373926293106925701661094302601034248305236098811952157100218745004561728180380925843623208497003567383779245702789539418108406136357258910205184328761347346821398727394532000960447621034279095396600807920921582951770501995102820883453156854382898484218099185189817816322964597596065256659900214033999129883398636615794661770620858799262914844443514086668303735166779169239339791211706802468006787323057831107804884436187637652490209605355138865081036092630955891730725847506812296489388903908803095664032327729985331129940142432165479561143199043767929263288099058631686162836187294762458798497999234643367352124902642811132134176181166245363288337258634898220744119406587907722844073087534457809048080217629963871293416507553090366667804269833180737497592384220950846458198013904539763002702697225445499872171781537245159723673849467999767608964920788979766215883874461431648782772935631289334419556830984323948847376591412530189074803627879066852459494816510563216958108783702121284222381463574591419058396009152053871770136266813767029896797633963332105070718874788403359312713339398186056841041790530019490592637902426207956865967291686553174197745908070339406831409210413417071044458533962811295095341239366370500887541265769544997027138949673599042712487005971779170118394247661589084663293513186295873697721215287005337886440901231451403545603422737915177675709133611050663743347741474600193401165351369369534292550981673991510536235197162399649951695990406436403247327281803050711093732188949657150974223061487230104675767054982485742379891824768432282825328612117792072828271723750952597080255777142166575960601792025580936807403304702050070160629174707317966096933364023782618640524883540083055496882152685577404694064295586019025929222537597356998846431771892998051237694443005013045406068317220756262440221997916957387427285823355539419789162738701173687928891638166263673432677872617116394249323376971925279470798919575434548669212781444610671232845990429863843885285187841675893491486457983957816105286985199491868328930750885003152774960826382115894706634216265125320569805225956278646047899830699845832982112129722308754411223044817994099474072358534580796192562579756435556874437486198531308803538930441322123395576610444719384181017209841245324362553629088243402690008585326734427263801774122343498538213042287924621673550710362783914097081891366055840246399081591871074590881865339076590209492665069023801486134199099419392808092266828611158639748847075194782094117225619226885633300586840390302184645239085344029119851236473230014669044434499949137047879056446330630428537034499525079116107256387484037454602455508979007527595391888571433933279015995052280914457857206686438763858690514770474083189177053338899050207302091850091999530170398889757984143692117189607776650070783990756022438743733648517146419743426408908876365058022034660708527798873564468234780732536166431515636951967615597325356782506969271631612617294456614256437173899162023579170462327620524562424940009475804343693297000825566001651999338541568363600803683842907535929488375845588090666147661167280931839483097733145396296468310477336596011157512533681109763387086421137921548553336731186414611707351115946596297912163772216141995901167068169431806124167582546883859760327697598293557293945404671266342477658483922633338997444890348245617578460487645012053117458509841307510945772000801203471861268510981420988709589224718815984790718853881755811188718775238605328019027287962928461275286751571760377300602873581887352508553781201458481036925209432146818388233036084479391703498466352279772954085781981552235836549108865770545478051387781660153805323290593590849169398867744136470500022176281190063068363435151668646295721969444389095069682861688525844495516339422706781279662987121180020449802318035230776368449487415134655063323173835908407059164560331206443413166291947743771412415950723815706347025000562064922809447400071088420240995974029557040036823541449066477777311245993987276669056230906380910105356717860852692065097239698108051499093483707667805769102019657824678092986400372361651420353369425513682624686657862933408194384547121236207394105598354465628597582269788309484923500620140262516122242076235757793949926776744630933981152567136357458424469793227793251739239260608281846358396886435434861065752881418032533272737096442936260535253078715406823137898005816308609978510283902813440691239926512430407910415885672696646652564957899070213039918451669118548266448363066565213954411892385443517468716036884902643851159679975913409392451253455398829454149120335336862119930431559279256958618400510488591150077457164154492101068279239112419702533375060491804394614657971295333191110175053859816633792766359589761005769953848600986631407223276965034367647131058554163356954552570561712657719410959980014728225224019929125197344410492888685630615237174712714727044237115249963286809124809614084111470939300780045265642380744721386599360150062544763502559149900682429162702209830482465889337642279507206780035159567610754556449557345296606339409923321032640474804136733190486708577030669489798923395023724699664002736676463283115269202220719559940022080878984372509540493824302646064359023736600401776968818833332766609380638744811157666435187648611473163713981880147302597979318150074069538550937869248717650041803547275581042769176125860486676406889716985637501726500810927397274253291602282158397389636308102119389278836562930441289984005355099736862855807642583678694430899458339527612591356498533276047358229499141602186206504569595984435809149454984921820006950823261635380587817291978631932766454484315368777538013348320708654232700216257801928720419550466991702511208123743612129853096142838267688666194666119117322434677163544385209321964963268225209508671029181033145912996163510540558318590454156956954790102952164968714388956847972732824226898755125862456626061919459299411163551709507157246423989733233067269858620819668761767638941892467100862024340475589152975312437035699731281791417608662189810903553823964335753421373631012994322859988884054727829329465889178456985508320543192295936360559157863615368027499564332133410388564026706977840015411485347401694005840982215910118307675344022271934534608670674536527198007978001054961103646458324866890288338765183027610065726742849540326059424492256464428307176842983830675480967899820810984284002395872594332377554287335372986643385006576155181325052699128806871083160086845042999847085047765389569410054789393068926517151265755006527888749410069432370918586510296079606142373015203285175060416380824391486517545327175934536163400138402307368107105957315202107909597749254008865739787748990925233489538572603299207513710166459797222009242621589298811948743864316877429264422716023150716324398979635109145910504388480733959873458374862840643947051316495084950744695651924868024807553738621565100043550496567080839856270292048904046201073938115868354335673204516545157592631276516504627007445856903832985878073259045483647712064011631936977568598867691804619436948811106838210537696841022101035162968818487923273341839704625558193388812261838267447693932279806638917183362703062232120543656812266018643383304893672151513215074596730625583957258471742634934494187599465120334817328048743238671731473211838936606035800369009379600052937376945764951515509436058227201911456492708266324631663215532757108640829661016684647735136055238610632116829494161414062383503608436252077180843201600267305462490232227712487168524022179012515207850973493701587640505519613852995991285642848384248145364709452092446932495180551820933821047009793967638401108901843736037224760961834177776113900477655702990242857773736911909713630166218350480477707706303535567308014686770202862568072332913887840633238909706363011992736070908251531591716238824412080091810823997263640076638507394217911170336598777704725178882084243119435514976739274260465910045765393119744522017087761592796985676115046452035134657113149060704691611312127783408149875523965222748876751802735516279578063528184203023407660833449525711757076944423747593492043079548443229692664088771288239008573423020421580422509063317184113674565651713063759277336746991199569116831584421188218902398418309901865051916762307783137993042099217945670932947938782518704863386127397727169420085935049328998571662784767869739374607988178574171995614684791954900642225811142644659096130737797024596647692230574773347450585787888017379120009015079670960441596753290724114076045121914843943795815907653706227766956769801237730418046498203362734716828827283268654056113857410192149310741541879107666558599973863427129761474397288804442964967852757982139656041939178839189115189784484225555521697170552917470708832716134487303641880948673052132867915516624056867801651741708572793462562427961642509981000533194174842395899155354590145497633827839255510873044531368230153991004823435251455786219127231113913695649937822273336617813556760911862709088238930419288706820393653014440122368403245174881421249519488213612405780386536525830780172971319121282628293773920206298279969791086082987646304019383294413837628366988964232356806556846012445884663751344954134090509504785647266192410644456673699248370159861898142407275911555901564131611061470473660365943800306908809553934060128246741267646483788615986175849565687414786766262738866682958371011876943692526372603509737857675640465847858624759579872965522282562254613133962788635364706930814921961252822714541777102344538986154348684464526299721075126755883247565493373165905545706505586711237954677516236480916345562892669987725233687052187984468687693940558171911680834224188301292611272736121526685323392264407026890653900213507704411193938561072583044793559775372365121600707882681427131906098498805792032661687776303646275986923823907249604293898328837963802425012376747526324151967391153731830661739129884709185431211412997334083205877349093444838225738168992643212380802190393759482196296963689934637668261570368014033648651725281132626176305845393561407527601523334830877371692599758307240326862591799597500890649579236583494849413507050344871931933429152529011305433113834124136673115478618345531817068041247060734765085131243520668537026446416923065106135410190184305932936397482861368519055849579190591826808903343689504027339100303593421788731690116790861911415261381380670590742154164027407954963088627934526580212899644455924865798473413110819656120796818268932229429044305855167599318446169171118721938465827340178020603683023780725419834563964681344132855664059770454612095941806924954738740658314356933546858880689650980815115161212478558060737804456049416352879672023990450617217614191924612455636669122233063930743623987166892329936761733690223273787060104022337193455917437422275951504021289624644526653601552331427603824052201523072940423402950507099973793704500267510957891096350158374550709235982981808173751935474566900624290140723873074465634023321790268210775378918081457719139725147710729615317155176289132890957152426647214269400492950062833748414562210524839678450168268846851101024061138953784845102342916095761936579416537403571231594010100101391226582248635637901267288810148053532249078483702295520687903485688492742355788469381461888961487449668841920056500332452070423767916544324786331143431879986952100928591175293525553249860164002202877624894621042743004275406012022340197686261669027277532318567909594137514685227315141624629590991692866403838671713010546777015797530742966692660021724270051317737338919942997484519518044807054405393050512185510776864239809546162964664343039806178405267260813475831239068562748426508856509217379104921776945626817618325621378474979687327874174274921403416201683615488515326483713808271945227215254229688788672600640960683852398377711788405890776059764220617261514027406904643253019459769212301642328733234960772657304080777101443499936225459882781828220934856633966249509169665229559305453340139556920187182485061401341727140290273052827591186758712314263379389216092466524625309386906702317021106391532260606971356100882385737614746703221127187926780800216588984903653274848610708011037385298078392634858830130993586924379136995782750859348083461932459479359078243410939580709099145966752197342143834212255661740898628195905989756263995250345176545182695869195607575532060835421083655561438528125704824430055397083513784450922612988148033545636088382565138759132277677714335580480089717751667961040389111309169470195838624879877882344962628548062067440335545692668865486592844574221705287988794422160351287684722007185155483112598848979426962501971509685161992041071738220405611110699378796657240754280993767012471347067167298197016183695027312000351134538561362459054364746426710993647851432302915383183629010938794033015430810002970068589068226319617742902059551359634471687876948968138830589627600015069827966605661449582435940844689604401200316796592593148579901905540763161291743280737557700880377987625080669264703176557336260843151648703392840847503652099887595807945796611341443104399921845025643304993475141856558086965303748974852621231819101666151685013052050849035206262564017100305420281949181987008289416532402846723529738136283654808128182951737917883668165830299834602960596196302563285349553848164470270295360135860972184288547772343562864520726439199907163880921768056709066670061438352627989233438488486274435574816120426016360476579358023019015896373974580325928093891009079532394101514615267596025924115288451612832171815499933066052703468871159271362003460175097775107008239268499333861351394210009807771372674418162908489539398978836218578035285900386114896791423139919672801302059401133384626561777031746180946575821515229318481407167987903115845023253103117957179502702876722431115679974414834020093046542988611139951804703274277790113946131596293916635911678502080040468956392980381227486010946491580406561801036518666758614922691573527532196622976380293328869881141981804297156010838422151612319414329965558913799401734504163170346039818464508285025238688125146992282275590711535691869436572612166333272033075674253056461280128546317844415729009622994904056198559164768953099303874669014792785340361533984561091296881309605941448341834559684642640152137750415270973842724081698211359405760744871937530623332220429246240634769328567758132978480901199704348898453577166434695092136284944827828224773935851215001389801301209043113210598726539722035552701938463648534336955815356990783971541286902972706822542948576796616624063324663083677974781154325345716539396902156749976451074493916267758777608323939497251073493519599211986086784321407292477652644257796051114281061213535775098244935335390159102354143948344776468168122751056913860821404339671502184388957630815214287954959072324545416217052874983048008082093416757197065861889036141927421709909922143665584285452783980566378145989033113384361470037843291028742684157615003993057465018107255630895293753995366528308817684086443080182497615185191606360503637890021930053106391940451500597897741217875805893241169409468194481888425542776904967823010227440519668721178634183486446990595814371776107431764666954446811316513196057871593055990964893263692191197124123609273872187991426061992654458175121639334290344547161374175003558574718840492280082080654977883386176248852425347732603654642728345685697020298444232704125155400960111112194676538224671607333383945289441042595399458987053532565757718022830471344784960599315189838993531153975372918658722926075803615362523385051030171116519140415253588078770786019945166649391413252853504647511727117470098174324497016404453900472226367042002647474522926966668649998389198244390920655082041673039330168024565639020528944999653076899008575758466962303123051650932624597877121326984862098690130768319122873814037564633800732597207161979583420231945721219979674155298313251764515874084458673303580505121465760772515500474437891771060888023472936972861447512613613359352235170625926970055856641079031593279299206014667621547549442942955828947701766222911636178132466837597049410487916784588935063633602031407749380648351502981854516731592417096936426430603000516587067548291166950320233779730425999454120345995361623870065235405252015421819461898604028754771867677473619643378810784875263944803125417526705937680772979842529438003868444624789649459676457198187364377798608430501527063998450401671605001078242515315041400471467022658751935115551008722699106015746486640892274869449192248057399160129569117911702850868869474817024227917421560464410543682459825860678847922123041558911658687380621747653996942503088241197948575090778636272480081193179807492824074531023086335895619572071886745812837778670660063466990778549503504531562584978118738279333556944245243937389773933668662431128960191477416692119274978707111407934348884760162552027697898264029520824637796389021765810515670750589016834414799011454592070748964629088985379698310412037663465456721127613363005972735156508396099742181253640320180797942649946612540603440804505833853434652880461638298091326373508757746184847079448206772208241351397188900778782775640058644211998637950339376238737326770121950621807511725124171891113784340925702277642166396008213022148415919980939939776688887955443915712258268271261512554165220726851818345884901946166808399102423442776745834706772581877500508587132490639538967249131386185260800891036611325397766237356960084445568582613739844886180995214330093445932417800832933578083710889381923346755462265497816280096586092193207826202211406708139340964367859658207996929298233564136016135147153530909329395462571877799225354334291242577212039570219040512728929998424669255495197511740435091905093430410358499130268897109929675965042327798877160232146767301415030429247709271632171416593357659009141451437306740392034341756900408934316149514495843445857383452145407639810758356668043703711725954370304379306598127003282495771233856369144891073015510516058631782057521821919864165044953592184868303456761369764383329896984823340245536418965767409494421140605655349008233635873736215235559314709376022966053223226794025905028616397299601328459211479476224670574537275659283996778057198473353427918444415348774599530715397514505001800525780039039209699152359124015581477603532572297120945721325839559611173552153355891099063947991770469988748509693504235355588226528747009209129963255380292680562245785249324293035615893697806684424607312247814982891035744040883357625989883841440643466566863303924758644600405929027575017472046384476600097803606052471900669928362208033884656565761373167005427875532729451310932050194014080043348229555745264415319160233281564057453614089157292063002207041647072069851522372773305511877661200691586982947599541427054550938843139280979097198125169799415830472492199164858774563830304422584577782143344799418717946518313795701464298640672347303957444275451115296495680242971793051540617813178916849716542825299893435499738796702606276470254446273811802601058252055282749602941253489644560960795059440430723341278608628137356534581273188031818164035192658379754343043440452629802036075075260284660397995994356530196572016517383501021753057107700317558469562783765656566726483855178660532802433048972038147791089593730310624517202810956203896357624562973574752451165288181166042989992309056969708087273941680238965748514065621504856430159003143371928081242652803543969849253567307580958599145764062123437052064296575945282040538589377305383248396374993843371293969119228750749511327820455511127013373892642460286865533374223257362209476570897971565436730490590074600208454763766255346868062484305572164830878580330340957778426671122381081563284165670276936787827727190423426399771187679231121497487940962083413328453727992824101811006022349914857076888297091591914331334388205491101680526670530344531845397879794305968046709079542716732106600863753472925051300475284911355429038945274818760838774401610667046305565093964906363307376191756199836703809900979821500947678270145116569698377938620783936911152613661603437681437991460605598584130392311398790936793416032696705838053274133412304370204297379180402237999164839402755891652606564946957277162541053336785857859294930334054808115580447332930679610459076020138559368067415386999185927990167435151442815785975265524196067525363856854471568578989578447631896276902612141624200722271606321158220348442650305127681678370250937955321658077387626359442352898057887552789191670314205877994942377773490755928147868349478755269798811505845468515892501093892784341302055533093618738979094034569483366373054858472208669022936274031715786906847320699733684765856225928320031098256251281711093637520860150862734248362477191811949077416339004126229876283471074238445243212145878406323224143408698991084458609711461089511321339481002111050496229885174450420148999849485380429437303455583597858521940503611519926113305558884237592820804694309563296695334905062672688427901410061718838975626545593747165152501147782351914160015308324560733818205033727115802759621427849568082908876549555809451144026814129417190460266307273906971360590324623445943143344508466672378538030353623535794515360649398898024632621578227059383396212658854244649807648472986158025092055024014935128778847106840650272398426998941592810528651951810542616353329411608392349480813706921932926023175495201588149761740022090411736577079205648624111223537484928280558326727907696169246892180642461738746590927875018184811196811956300095113597405845538082006334006720733574853893965152743028482227581384077820108968141860692793203948382496655450949650358120709214451471145661661230749297791539281099743371012520837699146321065671656577525605341828157760329435234712557933401122302883710638125693125711205131512217756048219479157654835069096339308893131994192817331003278813909778667157035848416635967394549088875393821318093829590926266351563628176436788057405042309972702272320067123582687850227511710681594877848088964170746043697998988622488020682257707591071675766374080857631907709586644173559937475664650909944999800848293669336834978337517877605816963069387102642751403479560143427490124994152797615146886911030747854538584011058493741649959913424882491127667918069622677774559662780714011880542526622715632777337745970900357614310474095912482874369896652929631999148191069087315583730596425497873835486042300988308626273646929090926293004647210828000076958079620129340375902649166281480562966661304213862953237581757804154410418055167128965587414252099676657532241298167542669744018766269124602234523624006013926701224954742008772704122450599414067424923184018896024845514981296030709338396185740202832788394195544840851193744050684239206947778627520332304449855811688845975239945250978341146201968252081808727946136933810355667263107733268645993972084498681237928694657033835551199494332537734234985353802182490784224320805465239765843477257739737412091473058031006279436291873280779418053128789176120197246966872297752162541926203076377775300995061607855914465403472309143020580249044960765346285828060143078880660514493040734686255648366058868539250092148122007152130447209788175327245190836146250764726974029943160530051559071113022514198957183419967200767969773180255736172924271673728183042464465145955569164486697068034860103391978551495446823866335492064339306562816812948022619516074470241246136848473935486012851762707187074828785153907380239435416026094253354218169338486181213715914351941098739325729676007116737178770666250306828400371144830428042285283676491284625771529314632640353185726307918824808761434136200392840634041872478749923517769541766006390189578258516018676859248148455026036827647272316866794226012182173329828898359862109587958629561071159018737183403650882520154924307586499322936535771640036348932115383898901355028509990207741154578888801315445787002185048397591396971437594575871054133028747728200945638244558076174685091575208998782350487908225093226939655160468326198837713391573801815043026246126044933431090510158733789123001601435663117590024918480953184276884831978022829515072769715142837262288649118520487742511553034693295290974705025237349325734235025225648526517509634613153121082982592551095077807655628610409433665749102716601816590928751079011406404441239936465167713889012647039585597723708224433022776184391199746679991133521225767941385687170912973554025901864708995419477564161447702948477055890998594720785755175984890334055786618421962727530305993672328245885903847554361795940451505077855327036825434739185438934580646036312143917528912047099793712850927893021099503755430282521267800634475961250162212089021410423288475324699171095636377324234941592471487128682280534138277097893025598343990705740178414403588036463107568437794798902685027209560244200280027224003532066620563008678023036840496314863001991689304993363839431979824607916876649811858199049865799707429964843885229367111734621252125758748557438846831823565967315272308424900935742244394442717679272354670680996236478785806576942080485419295267809394190179955984006414443524267449941651283615014955563510363339301013514204821660436534258672780095205768328730654422568227103120309962394475545380142247646067409582623712979533757584278073719373587018141348549631227391613401409829140941741021545478508739551321361711207583971603867604002264808350696819477446941762465766646680727337909269406250445095386248949961696895467892285716142627779743971086589414333169171068652651095629364857481538088680050817895071450952280276562040460003465437758475735490793559076439945932722717652911432339250726672411604484058937939518911259882826736345851343867367602497416266723046105849182766741265965816016543518166667752353607419417207107323101019254044751167647565426328614063865612184766409063222928734415416406112138200097112682715064025260046063037784096170030120933577779980566981765692184604216147955661566131563144268869376868377744658027062756771165349583238228470622211046325839513457219725240123360476692282225695387287403684012413893919232424774551233483313958138471820438678892509717250283814529298929743299041292311473457747352786161255847361404620115277045072108760429645263288155196650752771107012675973494257562250867223901057353329936862217870687817011470652157045908081878831291802752026821652240015457507858008283362629588221916009996941186642482531448284564328823442682011284384381463122865197750840277127468088990649879860662937475771001147926298029958492916268897015262800967482572427583129955554826341970223652449127837385634878487369739363854426015212265119007466586879469919798262040879259060016380665656274480760058561668906337496458211989953035444513323081498362366787661209511875128432067898241466126638672292373310443923803932202292681005858092888276987882798456663044845960729853988448972354916437434150774573919462489042697607012409593389352655859367208403295519764830947747692822190430571944008837820472339690195334003519917585899736363316012664060600249977345447223474772127869476683053909530267214332836907674539894334854039075005840342294493498044435611237815625143818509476011574796946752268234510731579389921192479320450618613150759213761266772212413772596869508359751973799127732178673742768702584618933942885719213532041779212518306373493730710151073531360794820953480086068878164495742389596456494016800952060044618721462498200765275876948235068360445654511038332453748569848164457359110156450958948307170955371169787282465826057498792471920923355276607283597931996890830237865066492692756657735759926504364823598474089753371690199490863422718286524309460977721598341000927275440286769700449234056946285955753043685359591340562713439116684850488156038825453960613130710607951657694226686381399905790792875914653620036905143421878105769051512663815659075435000116802721902773789468848644076932705511919039856182578735888674719282508625892571860812853882176722208850146080038520163554221790329385105933202682013304839723478328202662310992106543820548996967919272169124912232622483983332741445594019097977318615005832086900087249818831536792430324503297608752487336163389280204850591288598076681325894385671080797354760097876061288701090282785888073059968218750915488275005752496083289983019192271225167603468438273268181342073351480819895474728681734048434592829252081771488943310497266443645401028982268393941194508284159679413864937176310523523734710113224892199240349984688020934998471909457359681258643853545630113657286162777692363594280429678302268144056493439404009590330461164712203529327632142923149550311534388368061916178273595013463300894391958493120866139832287579946491532252450349204504617485739582017318164745590049406688317015552543120781965003883225054103786697940970431611585638863593438787409189169724953769496312618306878284032875179780111821813378749602675733091293151607126000500914840722336325577221918434886485702402804073891168837568256150726733880197392963359748146450384580965936600463504424653888435108837387754189067931900635645978688712917642462987787105131307423143949362962582513180683146931107102378333624246916055114536912143005504649869252365889585657211754998780035715744221441039019730123634997597850534559178059763878640957252640887030312063207225159513283653069379481019707079059223290241644932342383341313826280141438722636645332051507523883034956865484183485615746350206629033310659182687658300274924848557005387546968926779955256528381985573901751012914583892854375255739695785836719873012629685475018201146384119479180038399894697545499977936394050525773534113831190816191195990787040961727499349608759629468557954184275257058153992911961048832314397398236453479793181419262468943289039394094705087876009864550156653296488234434377991523520603611502682676692959859734994921239379927764510686960595003956466207099761214610367397906291029019248754305380317712427029810175857927478555589770212655629733761130460999221999074175424922603298826212022256192900984151196571190149896401527204371250593559802924057491302543388742989387749627262634858915719771964217764650931400033032739613997985350552723772788931403364665968312394860057770175404735171762991973900042225537057220048699419127644759584053531620938284532256498343716861762319995617546952189421875703010921123857291561348883695771635082123314574864961134891248894747453928238006361640794813612154098575763502479933300568168765920770129801893517740267311997461681466075259759359225936088307074668498282014413329404421566061887869792185370067448976181797634222261676368357562665469835260734908082863836575072841604012477709152628812422640641645652389566353875951465584269206648377481544317066756177305700720882898220737954504927528909099592433436628172891205598378545312218209950616898461936957274658239006393420113883113028557403223471976765844695870928277760657577574288716050595956254709090692245759936170313123391678555691641593698660125659550479579291810281176971600795868401881056547574643670005727292099140325599397341634988155906551543897685594655564803756387587125993782119548175432126553318302870118451065082374347684154239023349018523806349148249918705651918463822894073015763458934185687789269306034211658728734569337035663956065735735464688257201814433293724290421331063197137896684835224546542929271594297911189344273846292995148577980178767778146775453336726872019417778951817971138806354038461225267560602626825980001522986894152698539213161851791817968439248787542959480162073743437050337964463407246342221409160989618616140092597362386508906342604574869742606727347187918924802570044894278400304616445263226502792412561197896435909695477483219908792849419353602503818789656609653134611966405908459113088997478589312709963629433843927416535829536712304966441963566179949587199304101497741601071219677446754910946226987282306043224657328239642391186580182992779057437275929680802793034339286352598758877207343586629226349406617196522588079183201842805923129138356587084106532179254784614640391686681962205328484127065061433905457102837985412155115251571198831537919295809574671779824458747488964689288916896834270653635273504601361256981444503117712609291404214155659273178980771668808649050118422576035004994276053678947039835917385043363669139112941593263663016080102924080269128142103520203381491127099559585526281859633660207492949752466797373367665285875614043006948317646714882816236766676704613733169615340274856500565683029662423881334128742860336499026255650759732107314661308207061451285791503657780024330671707382792393170700598659480176386326886963842514960906366898430718052987952278642127128779357817198408531096622009017800062330745523264622952275894510657272619975954978643700045950625957747673365796052215085736098489151402188839851854097889680007433469104451379103465211343595784243056169812281754870458371277028894194656994753125862377482288133021464684281161014844366136050818004894574750193014908538257935363066297888926366574625143338004498934329869659933369016147101120114312955917137879265992134606498231420195048162926289555545216583859735449160257426464233637074204661592462362979719533846495129076682503365543587041242043382712814173974592849193720812129691523982508130875050834222700676910297221849484672837254885023137714710933217242901251430167650348087060165548613759827315695606790259609657982187475105840059480412042932131087934050026483125994492168420788181326927257815980241052092495558826205833785172569978704496411761364996278833034169297479231818928167855966519555538465258111589587660541218507035302276859172556121025791567341687357087438381370826252123307323299323508168111295551803795670541086733618166664484905849504961144586491498312005468590200062523082297898736171093013919301896402378478364327396927371226384251459846207418085240420861352974917920753805179664182596068606957450167063360544442093511906338657127616172372644960452058644840155986875060330938757418671541938945429749992950617925203482479587261411624342772865914777123780871654196282085997474008185243425301841783451030463021273856775840022998348171328369721236681122291247721038592534204602087311889383576926209739773203616316975499377795438515183000801284001750328244583469672702496511261929629481559140241462680860970341322565835104717245501176694966194041650795538471925271853460187606349777479212392279303736202505227980226040579500548078504290456057757697043206131994078352360555153693131373091560755211837245136502073249878443148966034879692922200364442871769917135189025652042277840799840215882992435937114417685641014828862318750496333674095652918180518207103781863684352105322505922988335576462097508764180052264241441796191241396190687076607417848953751459854444513982022963735390786728554906748547154991956413859584599332128974538686589781066415920267137377159769605008823878080406168531034899794163207610270266546538490849043613216946410417900353306926264475510995522029610880877076807583659529226940097437513828770873830424998079388725634345126671263312888075046582291136070735990967988576722648559149913320647816350888537653958532175226321257153130567360826911372786077971230061912198850906459345557302571058374854664005662810336669864003645084165808526213102556683713174088962926554686278113866902551289042254362491317567374991197625065812806381049459723572295663733829365249446678061428277550231467263979086394021146368653722066193749780922412716703733756239296924866817470237981851649209231818900921412467980509084937666230858847141609294166535126974299855524419018382630167108557780390559233565487066091803693590931146720303317054270949644905487229519643504218944313970017485022785987229404072515557965588103436646592418985655493435286270699904513267969585777873888138384530131360666052903373475094842497933021715031589734010990962800590463093367427373633312912382100640993102064837295047411894968711474579323193625820679426250168141032351772645925785039842922480376782621715149236821058056501304603724749171785353928227510650224152281678270683851569922895786607922591739508542432196124702352839304411671655195901241554828717565199090796523211681432605794209981708775590881860860596157186458178520190180626086484187614646855782405569890467462402487752054000920213608701511049622205952667835787219467748001864889199175730706253651421574509743515983074554602279793135792426373911747890800631072968215635721507662674127125081283201717198690290514321385985406827435534305948715363928951774314719345078852220794573912388802330000264212625902437072716496854826729244195567360649413829541450062064233695394717456657823304176334136967698647708477984666150337635866888056687227811049750114911767795189361003586635536517882201046358312374935004227824401280718523994670041285372197615437481704495002897416892806069128233827239716268034321967665232539313183838199109154886871273059902224367959619112101140371522230065609893421039441896784516110114388663985041751208860514659302096165028943726745773334669609799360022600622066114817248215573774847939820895652842177802332597375612837727654812535613323340330413992105092114707090718242076637439945656484604154139290135450905927727400872519087763934784811837139528392147341404320971805489412497044280360082980400930582764000253462119867430024806690254085887575051277874578571790091407514734493066346479751714684975549267255572055923522322382502150551908556905555560019565573446948000999055765227072609923598341112370800933142230350663949480028207661344781311592360059043737329124560864995792886219514320016852854965991275128769891260433535802957391112362189066255121465824059263235100017928092252481641451419042853338438540760204531903386967535774706957385866553064112019789026851597009935485684044105988051013668042358489585356099994395065303556053953187440762593063912273037852412105309416827616855655290920976989757430466560957337543208108166669634659874491884248332685611413450326465242206469350965159881490812451110430330321832446255982632239312271428463653853427137713663721148307520882253278775436402348668423508450262370497150282194320056068935926557786435311798144349079808250342305608552431825119100625140382709763397931085823636187854744946729158872880585207761299404042748032223895420846311648353601953015646472150570788764797597379106566367372119368400586154314831582957240250107972775421409784757803046214510827040359489722941126309832704395246372145011189253837511141123060987243021679780397371722965181167042434844553965521801470792141274800310076873342800104985317587136464244353128167839456081820093867327882691723589579777536985903824205120097256498032045565479397297637711742733942337741691121069256495654885594315129222477701021531641317406464244603757125292323860572736325498774191439046954430166080202611239882611509548505166841703399569456081597539657911047824946711530570372828665529520365033690430377963374771580981974599665062984840149832021270843132537808550046221865268059772793721700264119469984172931219966242534224440737648054511740797774968323015968918690347746504322778710278520234917439335793096281836956902923412930808386533781186303205002089969685518945148177500862611514454472041063906026823810530334811626834899525865476559737005977306966216912479950465576741167728922556676917890269057095769626030587783883118932669126406304861246741843249367036956744976181332287199852354825900787131989112476981583382310809426418869761755344020553573700824460955809413187664306362667804773030483262354291308185733124005867601926075268147024348675646594098908346361851451885010313805726860483258532754398401422607176330714509821953253958246084096571868298681012489675897957491412893212966050222372913582898025672796463038434570849123776965436518507413015127342577526263637743752567331082097511172802376958913374973122012981839607645894977325954814826277373629800018399741520693192650721930803464770743341169107081471666398597233268102153226424308611656602047355816686637419656564639039902679738170471636294956726962094337428861848295219424896708254566730125504979342845192249166649093185308516396764504197281936990275411708092607445576873139318234275546295794681105019098236851641483779302745410253380459283287145632196288316990460925034401466767452011884036726871433878339933849514808059717211364339024192352208958227071185100608674878352689722054846675995805306163615406891344151450080622611318956587942341925256362316296457383030371318054078989008259371711599529233647251010644564346482826257262925578522748433495997291230113418210846449170182331353265688391209860651364289756576135085976880489958774178631135623905785195631383956874646816370297734033881258349408139174145158229130731272879228247126177517441303789960803036980891303854884391873586260217864395986891877059721486460694751720131592387495291103480838772637843613521494517927220311525552041748106147291108311344984184280669263332760233940580797176070183892333077245458705531441950649760219818118130717169272383399727282559420264860660181501932538965584070939593519243044611986062986033635843293319314991475652315835726980244771112026111229786747480394211705281561959317797765628196382057951989341737573692715375702295345692573100506381893586104564071413344891973410178621070481730578922719251165990839792698782742011421710838085622387612296523286350320294168254139486178210542873237204708578347676684109276713929000707866150484793453992334692116386708161765145117114445180683603531845366882974093272665554689105567208133864716376567119690123517373648980621770699059770903221652162008053636881281128403214852900404689276686258926789493402716809100862645885827228698270795717915840980847032108987149304638924027374873720050057739225054246832580653061546001838036362386394094770607801561363726503734636250872093903191400749572646259100974292003960912618953435007579059810779125258730419025135280820290226791602759511777663198321781535090632167396541876542973549512854564725684586555387014918626653374767466739647045505612014739313624786802633351091643564224660700637133424062034472319071295290319856107369153080311624060961529400318511045182670291690697298186334653939220401758286674072068813029381433099030780623047594344355674059558727649873796255796912497171530168223740993385658829518244000874152475569568444547815222902340732028879080920874094346190908032841364932868935450138743566171412410416942624009981751627926273625970012159792829849974055548340876732063875966387768955199204124532513954993690135191853742258139434853972996907753997340696813640448317856343501735501281935901715906258422753230340041106561797487032604922472690896406801696316524584058064194286197731570458822573628806155491647758390787203685612183830787300255612860815688013352836671947452111631402308999442854080415637521742373640558247644327291604505539628913023658810839140947824155136934951200740056895831944082323301400876397745724929039950718510115180656438077008960582828173510035589403755728629002234714104463510095741732599874216548593364354297580379634580718709468091792014492318452011133740861056106488209572201272680076718124600010864171315691271462232635304625091908958219097524147271200962070222214740679651949772296757625834058034273583453015695894646318967005912975122233124165818107191596601747346469202843406499484717254996177175291167108154613714813548335235251096492857869163017362073369551214262271259321126703263649257606611034037983171295776309040723463354336375810808160204299160489931311578683922586148051526024062632711761102141335319379999689394023751375201658499762132389247049570036574070464084690916922069158972131362571836261258916832961514718910252095831662404850010220325196124522000889216640152579819995017154068289375128694088907450798916957794350962385802797620233928167137132636043076694057102843632934517178457596853605508988527350050354240299265817624456371248471213545554742799488276232077005002492857945603242262306731376219863679597517902955334512554279033075255249416994189282799485159982130922189030583920712081520300514088705926917124233164606892385508623230167860693456533469622403923365386911353442966835194289237576493372613288096837704886220239775142765114170513411222406454185660040358496038797218430807396717429612168423700802440737002002415576469940484317541439900815015961328243929203948897400591324224098568133731161162413733962452799829628059526255540393953656754855663700119624495125921003127587126391954499815052494500116088208392409550713796110947612863365454247160346197907021148108801239662512233801913964777704018134146531605362864020251004222589284365405632305567749273308724887355076297798800182491037965449991842745341804483765196570745723719364934763920085709541926070153130656366220447000689210242896014962770950953649822165673659992716640178450080415546914386767097626433036398495244321493013868209329061859129870904736017124037354449428502819364646254403718182001159913396579382497054135246332869271722176970968450347686877837759874105168504566635008186546012521477426272553423975729231101148299771167186644789304297580620133916163452882520355910046235232501006942442076262013635428778118226473648023511420413358322900818549945558100542821578718608618427034721497548725473895916742796986534629828098462399701507652813370577433659739281418579911727410213012879119796364640863223536516780769923110115438372029797398752656335719528827504548741658696061912677607279564912219363259171593676013305355021886770112676976904583213397590992380607289353747328241248312517422932470307620689970562959402543521011705771933474426922847250036039596332421938308399191221810712616036788430203501627540991315654299680181448327195913632197973585153198224235092438319540588344839221264547467768978500080075989780288504317937161494207585988231589324005403819878481015799089086626320406582768425368501442451493660626877995344815224027308318035113578322673458010841310332709650331378538361774886331826773601888957966333009755419620465479625188213698190103243162723475679587368078657311184475599378627171800212104722972795416413411897208335287038203586237514986244776301915133427848709459162379430341876052354960116818660926145644409266264615671243231773003299384568265224954822941073783377998666872861158340566478835825194118281617447143763640995661108023668567164915193511761899685421664752393741798407008911846062754163660161769377102879193422166454831215231780869025058323976196328936898817628648059766197647622924127286018425183575318964250483410822455215882015139904760409051055386019716417648925738986807870455575088132392540432524075718204597407297193092501045450346715717840688659947943127613160665507722162358165805469428735566551907987068038235474691099661603173301683364069201030586077663249053732607631255850998278678470043634986294264974315572522331433906878838075472819649982382321289243776461033577191505853946734297741302419673603567145434991146360006843377845895845793204555675958844605554950525760048525973309239236630463755629800834851001935797915750174765259879874389339102542415370850605844386203071264364550068312191820164285285651559897494721511766279412532542130322947371909622537574142093456168138555350172788958960310778565621144882834169995286864444512248540643928589062692750929011103161318364836138965599121043706276456469241383252970363276206017663091487319915180378191295476432670668167706357237642344736106465907774401458198919605117926627182466302921707546456959606770754104218989494879758064188863269573667483160013063913922858718308054250298172108431231863851310669707509714725942415876025252668991896698770658560520571371965246631373349560560474948295239143145450537738053900977218946647328671107369071366245010727971297330618899278964701985496940781428993031398135826128472266318320026868034636135698354548819953035710649158365006231933828717430437019623230019493185109053026613776346175422046387168182568250151143208954068406169517257328808118181083110536210320929765689796482064249686142530429436678440200196404897579323239814532936961792473211816077366694057271969420746282545324685932672977408172167256662882828429001441576727967344938620635021375100425917048376531007868834540636386801710816064036136309374172446519817750580393500389877141572436231695086311570331660448529799898954173305091819763834481009327880775233961680088742770362811676817573066947293178847645987043627113667514610241676481206222492451640955273986870130624583569139966244913842999865807982696287880403954345850410686581310193752500327150204985171862475388098423400573636192532690717785307350307770205241388751010211730322495724347427381002353264500819948103145601589700443983622909490618910201199554888965191859394002119724405371160958005636684188392335365076854670850687129944441113337675127277031463751712650947179967446447523411893991902829442569184403554197315657893078015185356170818097924535164282459080451896670636207227559720710754759331732862235953569592438595116604633573944636319376527195262161205032175179162571382167041854555586825887267404729155201074854275447230104811485187999115801986954013259379968485409607403041212307722505785570962548029653395232423110551202556263935584142126469156864227752614811551501083703429969663852720301868734502907147692038430052524785346044410415616482173367277593059922244190292957667092683132390915511442451311082782336737299669621558267335080205136789254679262676857416413010932844321176436385565584991965543216784009723114534763440654397596626682554649273595585728397490103272654871820275629318487370550964669519473623290013058715080272546652701783020928648775858132447979218123408112435281956149135661134504606432964244154532133677214325792970987668797668592187019587858850308232334169440189292054920819662695391775810473926933470492817423752485193445912588942577589034543316379486203043755808679810817545756306149320986921052258192797333725311394041384427580846436099608433494983333480047262975988807047792930982428351720935433540758045156871969416329988564341102502774862284974890642718535206189116875793314997483156503413202601512638314034809719512880581560320986225935924081509328471261016788954663680622034490524281311782821642366601644134348088521487387850911803909009590461888713118074285500250007105288252326398546183873809911233038406328403529013118224719784989262922657259620177501439792373859096531994451319955704321439486938468429300536212042640571851182326673250363506894666835053312141860911675444927704624058707715157535368701390480296957985258630970772791900719303613065040504150121601801550774072425445013680941483193988829908545138307282278587820377681093796546598996009144368199204187696000015435893339582659751806124952672984183422816450487215225748271519108978329237210176379140241089317110558993781830856813526611494681030455113363673086159073795731251711854790552304296357395860018624758413756169987648055818896326618706231972420417447071221109888126638031631671237612432097901419294677511725485185629379083893867005222335570095945483511764297142850730664654701929881176876554406635214376962397091032493996317440627747940933156170045152314272406461208896868108987953717588853628122754886177126184031007759372022931138787560280259439078555896317780944989393992209111959896304257459336426619324301393676143434225722118565691195082128724112510425503027705158802651785217884955150355080821311202694853187538297780607015711811070654545662315587893445301115375572349929364260685518290276122821750680382807513089895871776774800265616960273722696319872670335815889404493267032037617676298068107863992488550455136059383399853365335144100809017236473113027736635721019889808115473787695432248920108723069443801852093347232692733664355299506846505859555336553290875598633708434237779773914896042931564191883499604164037459763923752590375984281615171967945534567849889400857704451767228591447632824556318775260679554999808756680731079321264119376533034189456923417371396940275611549678666746106524989647817541916328667673083875654575838396542592082552394864640073758380220213253441981444366631498214085718277724033778045340884488548381909396685145260878356596640033856252139116810752579375851642596183832436563829338410991062174530070885013963679113253401053580046531626722930644811599851120766054042491342952115140148298014293096500206693517995018787337907034135703448093961230942326742531705546481321044223957272483836223702889782764418067008189942988019344625145634746467347596878122494329579730126312761477497507451167790058488542784417452346927708895371316414971528418837680205492518871417881736573609578732697358958423895201012847133077797006631639380689991960344918033418074849223807294773364613857972424504237450478503673426109997869231155358620483572956274644648160980913957946746724084086562190747004173962494657254153132192895210855888926559833203035858445063139812377600017959703149885926137455554069483363224801164456517653896577994068658603154333827017455664048292553220478309696008839309992291977792538745953928371847782213946689847473519195538264183741906141773005505631203272839289345501437237574925589945209589485082418090934324053088649786767251095729418119045513602063030548092373375734147160778968773216714780809277104508039725563653940395346682470299788829291173670383816573493087944759807306583915450664076868537071328303814355951385850725110637345116423801516703803579848627762524481737760775800764075921135850607853998410916727283671499384400645691316214220901029436409618634080145488248288879361707493337133220594399865928292022915886507428441450566124031045660888405146672569851110072113163675433373404574548592232848682939305572596619378240610085332603432039902150193880620398512111010249227839514592320277957398257962292829385452351735316318372723055458899056389073160736950340278562509063856332412821422336494460117229394962245796023627690934390502145357974984215383137089276364488851025867529548352755337495182606016438842533822352366239139160103974588049259556477025816074415817761224017566784809897309906060611683479325192821932435695425503210481578163690860397049798924155692468029842415122135198393809212178341526540033804505672881941117843326244612633153423928747656802547835625398810040317680465387147997836692808974974816202977109133319030575430636026033325101049204628863720371839797398797793830635420658957777014108287712777675334919682877014062517465607230996113580469173242937133622966944711271269493816825983984216118170275095908020961564970250568012517039341705075314630562124824140984568975847206801050297146446174831380376971970776906054556087221320111836288290196546641218155142189190962900280447051773605961824767552812970146142418025942332319567561425287644900088010639901393142681141901686827572195691263770278618413146450289987161554250965551526166494725367128229209859900870911088165957302987647584802104832391721328943306821829905299344147815831634492144594290389825004074545247998054403594023003365329121072174983575673375318751101900033341536662602095011583341011654001970556135733610442591358531628495367223557198608430579423949678258544165960772264802486278585509043090543777181100552167297843440798238544882908723174402153121951620127454008979857963465166711686046080100287515780211672425235480696694299774647311439556083942208154798336156334652883633308862913666929143018544567485086822011624431935642338429620216024658224807174446040378614909710266244642231039544279905582340378723338337524531001948499996614288008472752406915489417573077988918451077023234563277253670742717314710829997458853671383161544684254350937049092125016940962671839661865602708136308100107848870545195429614483914486546621086835377692218894093468219886490906238815377866763608734261530278915027611394462010929959790954377169585322744635997692349801781332539291719258634103832614444086891120925900093061953842727577533113052913464369656451415497012739283944098493899715547674003620075287106441386988679695787402782236221395073088332719590002934728206494181458487689743600377260720030071834648826507537556650278537950850838249735354795518118159223978935020303500841036754868842280999325586007068919500311143888446336072034704822241745222553516243397742658834091063936862273553518059909617442427497607594381334622436555317867912322734344137664263493358833646534348585974638450525669598871641987151380074629259707046189873523588053241276218726037731117756115744527936282833412277133519354102988349715127649287611931060824615284748433922399457643552851900047062408942737867020337674200544433287804604474220512190066552180923022995409240783915010692125183832944256763857137604928005635742819829558715638969250360318656217485035963513783060178855751745948128589747899528829741105338633084129188834331350672605790549287182393462096509737379165812346637698462760597603140886603811585682419969526552430574142521049237393980538493617646868231873574188065337473646782359244968025734771172335520749202437467441147905423893398062350669187588923201381070668509114652920229982457746963986915529647678778085097308625969509745617184490626206213782869874921229284163733770341865814838443745070033765840972596380939268714785175162384725726694280492549994292762539099523497625396567843700805754474835226925232265250327860820680457877092029533167108412231973535487496884649635096777626960966595865127270056290831703667421396782109980826119229729159281184155268427741240560928981159568454666843792310318616230527722054808972226895089847805546115052063955455046634536962341638985126858350478497521826548563412587516830389197765572279846522602581998003680973997887650492706258783758732924941978689050874975851879847652109615625142599848327866264832428333752278968863489754212869345993375735922479237971764761632234414236206425093337921275176902710021497369822645657608478810027157295960158367662511363151371518994142418968740098678114980349598759413198668785110000890789745399246893188661225969885499140802240739381326414024323442780639376646130465457169461088193346126838923428106092991765697122060533584889942706850709130293510864365997133316947477018724271374653315755943320347779152296096629826102977878067424774322655413505119915894270083060300122784363094147733024885528026087411147674888779905520815699887518848641689361706145282091949078615687609240573824755427497336342527986082800971648938918384024412628431671169963755796958892376267338966105574720961866708873426562986902066833001159957949638699403967007227583875837107441539948153118633355957819043540564511076255273236591264992942090618980171084365285211937390272580301244438327990599223954504664176966915251939568230276089593102303419132338711500167229672453789352507602517356661229786877946958654034834420120271712928746204112464902481003437555550072244311630035418238834036892193471884951656493852572867793537981649485057244220296908093071221352471427278768999001429834237170883792504408683759452981736381702514675319757283169721052145473076570601618226234017347099249350466254199108188823572822713358080656426273760438878006697860625858251310880579409819984673713329603164167822685847438112182980495999327838212909820820704728987556982983004090081709103240514861494196864241624924914710285881619847837185629148643820532581032047788287824023460005241001301280786034640439648166003154141197604056881857522910850803415016535922543156305482014667390642598177860066311195807016576359978835186066357840481750785575694449492929586516184454906173140531073123716861527638225983281263348185940559136464725439585276536707195746661368131162916440122507014253379797671451535871614004871076070312823642758531166631984616938775523140335523522888698855176669714776190978015378066579320699239753643889530568138030187460987677525710064647544936057454803180795133700002423603122882783781774049814039483303267017705737334805353189806790799817258888504804098352402696019957316156700027687293193133398991718675530502149727262885053073431958433938906457974701994483284130675621299309657425150715678973348428213620497336072601873689391204291321618752478128432476863166477018268963225187466234645066396803771319286388946542004559613474783107021309761506533190847206036543216898596297838253795489001521791187428370503183191693141320320960576198333818067071584071617557012984466770540383728354224791151142880310456574205090660054762914613444769686528444417895762565154918149917596799857944552223342716453250612018305584143781569666819981242484825791469555406064388961662096216157512598220353203222174547096042046340818962081328716235758573272976790707791375380282500211053456873344253211539724082071900404372422280981705761167641779473634287706958832349913898792085371237721901872922537472647003340668321228740090985070282596526648093994526051980078269953444171228809909928932147510439633425386685390487875394822304067515535875201302942781207629503434107331525645090680957006741290877272857394989906511535432852299261890089143183096130638881649103497165030509344093709628585953258881658984178093160419493521976454076013533955225923022850301135463064232171867840379239120004237511684632642457042527204177432436804813772475672396954511067761700800494256689182887628065756919936632713725616776637577604742987038445908855312344154023059963539837479289715691813123655255083542338394244386636255673806835904039831915533928606519616572977350635727334898967470177697802344926997120462829584331940484972452590053096002258675345319681285418895174818915594928118214953073039830352006715585739023798208472491998413722794238980656197886756945568006779360285825073991545281640158897823869137166787078268033148186823744977925655979646823607570034652698783019459005030613932063221194848784949534990213195126709543309184166743583623839415161513370382493482059228584893760026425270013447773965822683498016304244948765315576273443190676444162439447493171209597389535495022966242823755290532404151648104146617526196755522760325302156206235438762754855109718826224405835279192145012588407459597027409504829387050893151394977786457235650905323232200988731536917944818748862894274040138965686204528141225501872677277946490306214650865664476198009140621984787450648744574904077019772254715600069759120162052344563673834958655219378983267597750679267830460854084720246960101706119671044485289071656955592803555131427548650359494852342561483335031308866016786232641047040959068510917217559766168026414746095968415192601238901359419140673652207262191282041388642335049368156190121931471467201121240779392156592263961977128702091311943734437371282393709355923598562480995863183993761682034175715939407323389280520206728507683316878654799211025935409751517175548005148830515312519274300695114125784392777234423372955676768325797714933645274634137002386235784620779358511278228213335159064388614088547937743157087546691590727692899538067765244972629386153792612747313665921460627812293090189180392207505292320833271635402248461903511897857390772448998384446735601343685643940442281575513720444445133827281129726341448546949818565884578299424079823304637340757424928060148967986861239971335021781397856380975733793887374762662873939313835933114069871892248649008363640148138238971459764127135875860241840700301418586594903379821449817710315339070896175127528512581995175379699204915070815777603764928921746303899673137390014027468549852559339835482866572970362783369109470047637898558001803506708834014597309914175200370268911348713864399400559369113009104442128259026247183550928918255267032392829335728775701454168312500782097164759386240845929620157067630912237912967392126330318740276717957261601892545056024494380128202824103036973953520125049744798850441112515106439978572365478410627287555630355046547053172760220545418405595737905870852002997831956120878455458042905886922497140837870104737494458332495361719225600885293225297606412073672077429407890523702031228290855458315105843512144786463531547919311478845430026920281443711085006760054636205497067810107437253519963622316867812782179582134988166792288973793962843947716823678723834790595973178660005484264351510616571110435901848369656852341001038507770228151131033455183247523520294421906029959146365060528007897234791449971167059046023806494648980818020706154691919455639840978429829188658226390438702095872946826179995407916018568938455305986012893436887557550716899997931953466517848422306292970983589291793909441847145966030208275970939461332486283068622830307696456959049195994404363200735063812923198811898439417362334147413516091375432878677291832761248590180702479223244760755561986167453120426091772544982120671302994232575727893080937671393000444637279555969851707774952390235288325776656678186391308296649011568671661270553029198473951945235085423158822965489465573622141227439388421932800621198868433708932513197468948593244009184911092372037772533897069522034007264855964815150856366657438174305042797951520617502820104153042338468851861294280689782874742220855516540401975538036666944552749458716495045523191928268688095378804231222839229466591927089915525290199323703523396650122147161220094407679981733020347047260902704635132507829257679332938845839718325786496279461477139411388760197644292227478928648043156573283256278634181050096237954415167795443996648260685428714417159738571310503629856605939899883745677047419464812222915052428026134678460142372989448032746354498146783506984249438997694584367018352225675846526769490123383072760888420014813235323283696588112964966554209665332370917202445625292309158506359251420470402038948810429139073964428640283817522641632366755287353636241602328814529178260726655509311762970383384946786068450957589606608060181928597446285414594799473382274424146107860644737041243118277497324466009389493748428788082022952847392797542111906236968048439513763729612652938327680604041207805375564207103701813794935708227968264102326734841735142396523785711754585261984424944862201434174645650343847808053213326189482314116838215989324923661158031119212593187731775546757791337535046766551922900892666344340370943035787168334549348240543130028672927939477592014215807412025986337244360765857441100489877654699556592697224695410972206732289212210879413608101985521835842979623147891310525993056400291783023134975557961726140653841015070712017522820604734217760370483057461448623362883808329663278228491344011463067004368160897194350288881907465318234207614049315282704353700888073031566416479696817911038225904252812113564423073116649560769930208826495300320201898812843349586668171941588320820176690928128724218439242918246334360398585523598886965367337846344514707872529633756342616313229572372599972553370614739210868177361371945136359090045965626753292260800841533622197218185458761081154372852497958166829832770734926788823350850602473210034952054358568259478147426166678187092049341808239141219430130967625876906840098801577911027475124976800432335679728144860655570904048749581778259368427561231157493155818197125613657312598168699156652856093629348849152059732765183108195665689399903406091538108330270613990285656854965344544560101173093041252930715234198579940554601238832605451028662579519627628934080150264739261467515070749619624357200385104485770533006148032559769266551775169424075167417256535401310276121624106176779594801135583844261993407595511794479369595705268322492114645980770763581622005258975098384975420206418241556010393057298821571431785461947526489865414120617051722941707599807157523111432241255429526035467781184739316325159426844775130576365579387118013944408959042731702263975348639856601937868453352765014562189953533744823354087433914846679180658189018017612965166777710862563366573325599197109775793574684843542597197736386522645681839327625472171395503758782405367430022592740027937812177692419781351775080073389458961318161150597664915269188560587463564600420058245918689176987591498614791864934267041917613285784337104674897151391166643094615233574596367053417318680428674111083951078515876511017559292217851027517047159109705118643912515881114822439596468551170843249852040863266889343189910361435773696802039469274747459106184261914329759526107359060380750289188588465002563755803444883094565516376861158313070668397424637120607798541886496865425784860055514307766884352685159566130517117647297770974238537393419033145628061261798561752221961419666014145486781117843042207850467017451216990914079906916881147668280095686381974738923999720274385632231039846312813707546456720643400960551564263857924849048951762450528524884310263495572420488587758619256309952234951867890229262010201075921097346224514211307533082587057235832342589020194292482409739292919910155703655584278119139503189659430818137097869802604251376366791341720428415454786692839196582502859819646181448735637112912073483645372708913783308213278226193067827333288849822262398877853592200489201062488934581484211830785780343919994342562379724436113413002733050507264000729577429104286238214440430232366884776703366511750619659825617063044033574964142743648489730410033588404914472050011952923987929405595881842795138705095977657985273455863437121299240662236984285747017761049872312242543590391165282309110533695402933874774471069989329802671011118597075075729569319655815441337216779483125196389349030113932906915919455824630553124744452390301932646768359835600546489166704692767083035544462266176864139952365682859897765879410136844143369100337243885487285964917565023276760906453079033622433273281595858365959371131282664494378355084377076462011982649842364912435807338360535286071245423324533276332744906666833179053285500155003671081889261998147353046109770843247858414763201198038637457228509973701813668447821320676753990164262007417299988083179108462510903375905698196549900665247816668253053498382635893037325375017853594163911790566083513944107430455626973946383831873117622371206938858597893716584322433671345342714235311543622441450465930860041083181933926004273119108869418838272954624892202048774482591141322606699614366972679469277694197159739542165739322200690948453473198698746978296966427651333564649188838858167096683625350018685790787303050035194922860334086893714577785832561764021102996971842411254709964110619075819715571257048181480096662057379494140548270113730489357187552453859568168599604576549569286767856100475981429929203197421087732455738128078222040478259634116396522995748610571908173114714572467849486996259658992466589440067694711999387988700734631718675671697755762394636674731732636633746141798138688508516935570195766324665921022408066728113213551485037095412090211167342946090925357328901805159908887086567249156410695589901669850527868389092790787160352801645680422222840322840842313748167809836535302034790317266232746376641921262904510006854673509006913564866558761124254203095784652078214106163292298947137499372350665717404026445302410911447604096274519779494171020887448672388393979995830208130367694722895859893859323484332426862677999765513563532363716204655915527575437082561228406158610257371705022783900376597676536651551932213280806696501454051420472223421388069326979675381426747869565768737504283629303716070984108354794446969424463485064988942203585242889802393206166087825191261674680697323604777703496215845395767452356186449895038972942066225478869687424005614859007956928648220206510882879289674886819203803539038626698721868677395703076717182346105946737957616536290446633556178169918535832806147218997719406073186033770503314611698351969921387822790811742282319401591190758678508601841256610726507988190245011237825043942628006156992957003547989324812488617541407830490255650903315361782737750934431224890004558778815698331590134256813980150111563160052727373388524643300949100184769123706911335291859018351045022685568190553672752647824683050992691430956441999429698415426811969151124157226056717612597783256559826759366331645086931154518062702417104050280082074301639377370567078742379142684342380483143386257315076539559873345682740986516107619173879887161117246113632946027647269607325147585287600190631522609357987189507662100358118183588697551365299663909971423485694765384785653352149781699744346685869284264702487775749625067998400402140477433538192628054043775256463973251028975901399023930777320927791213819602249877062593216956286382041161451253907118347086399983783128940215396576627700676467151008183513011571399388802157549666820460106054115061643492899713291491444900366103507193348202474014969452938511835263385416980505443095752013932008312914706239466609167134772865366763278282656584426756584761799260578461498299373722865992145851675332531952494561797984378618302408449042594397315123045179200577749005806237402457705738585870120097233429879925908215094742138476550636314255055242954274641104700945261400944387007078859715899586638991895070494254047996768048545886462994854535622652963077675454956716497951999988267427236226400669548747900121293806325464635716587732815304993033291506379413823820622316345173049555398847437988123395373586952146671406893377367964260239910492665041357657816530089271591886914890437580024381164735434399559556671029495462378458096284067794726465670028725690435460830528972532316529310158270577430155599014981079594250305569095664641030954357220942083062095834960812203732007616188950966829962002203696136635412728173412619741744526937629283434200880058198111704897638881048240493223218725980574729219162698676448121127440039143625848636188370635828187373586614831143278041158437865999841498986916400523626610999270932399498596990511443210559568293718131709410640105226226894267622749615299231896076946062977001458726211776575472548691724348530914577002615228368709048723870845697113413653228260752449998640373237634105128594758123729599962448555534077238521249284521878300870381670886357855814948350683941174386293088215510178219010764823632314846222055956754817136172767955673618642007027671341109207383804709388441769843473665622076093915787652954691004986756522092402362946533130903067524319709241439948652223611578518794816422200965038793192574670288657189263031073457011075990624456587922878742462054089680156249554662642595852015105196482509442834940466731180097135364559470107420736610820782469555453455663639954995420188732100080340053175387879183369060521963140405727406883091945149405728087376944625399607445701290362096636382913657261976380845379513341431379527341653587938372735541054792521447696380583154533047919801155888842505446431679905620372981054716125121557617144757323303805652381315242536282304937979151303364092361116150337536323218173180563740671475402306733764054743920054429672378528015290130052158244897738978914791288689402185582771362160321362215212110024026508609047645290395874117145202785880785384314260819489434095510202231600874132104066595935438074269355669377756832740190575533597715730956182540691992192077692754666436396391801691177868815355338829601824872929415798793674793403387639540838810208758543880175203935958844678731168980082986065787828191945809311942428347173190388826947605772684021200871870612477381733554617695059336685864947032418546649181094312986023676618100819825018405041546559880802418058793887420551466764407391417917503963304996219449110018063018001304747254660713131789290741126562275227463196498690457664010183887342072141597908970502508537610018528902106128981917901964826765071450547808221987354484447043880781071198888930415451411186922067501949117173779580546875624737570512085807876802003653509060612123846926041597302294092623840856896440490504006027083219906520882006385381892309340355914304865552379337390585797337586854737807103477365809421733765846991839740181908701250724122733131218356832522974884135462289773767625144044872008507847749333195635752703668931818354401788243153261150375608050773857739432392169792766705217665952720433960523650030094173255121164946189527462567143100990241766876216389102914857199165495982511510404652109256272748727930147734922618215038649194194170489429023649646019734107611620851191124991905902410203663234719539420980060125147793031916750173973366223960294180378670789219401220220326851067932056697422699192632653870198139329589832484404986089676696556985641909513675495602538952300618400387573631648852926416918905633079339743653064889239017400896272011223228504698067579419672868167836663986811660157386842946535686240762027984618158189351287224073547958544566857409515639500901471259222690487843838541182050388058469521769929527780510201773412257198351271066182068237050380071651900976647957542792032584944336166402566978728317098248391320626340106546023048091211678169663556335128810313898599248258681221255030048182098540350023166304343858924502471170706271186040897552533539747169353710459424043136795426849575079914847817957733776478811455583579055967183440286893443659054332669579825482607321514602868217516946124889356734665890677126436227902089094014587828166814846156249434268058648593428951350351694220261461036346184934809948039478859236510396059173493284234002579014192943237659198141189919776274580207318630453496463543695736885858121433415538915339466967892238908109936429938280779716298425945525477300365872608182726933050105620498924069578479074366432954755719986694160267341118557272182808831197230553725255342607203752805365913382964047615290325639677366535167390468707382087609694249971799710935011592570812354751899378993639016218519621592252172421289797839952422209589593890646477614918066030099056204154800280314601069137327728060842099252168631276159628427504609160608050301857181834923183679598767430449433687033559378424209328739003800042375617534383332381061263994200400712336465692253737585341632253763612178619281083248786114749928819010768699821664895642371910295053786325462518121193587459230442728668968980897051503080160824182208783725389090112500533975124734665381553340474856435108192772279101378450403680201286298929644110445025910083517819414210810073802082586607001222652793664849757739013014715439032395955517547562667882059289927373778368343021667859838857380469828997301966306699317586798711413566216227706200386448804603395509393345837641425650930574688289427387480162749704190245883139691125503603922987910155849376583363320941947834953078086960723065493256716957755944394222462453399253015831134026778189771786075647576165039552460702096899654635974257201421992291780421582266801951032301035954154240106599046777452509652033852204024471108558621862434588511147106638477964496700168709415690747924173915887949077690944192538359127877884777695392179246843870676900275265629145775708806817424259583433797109914975655755210613892590594945669096876660942331284044356595311360258074867316074284252649332228104106825304195656626004859433009360010607118608802434725077113703682874111855923445484654043016350619919638258354769151634673670598533069229906158814635532611786794403002657973094819399880581554219084274051019393795618804678516750922967969255138867834423165757351947245701576246416060859401170048837668676569213633848013585874124655145429185117104909393631885442931316594405247058739544585737194181090131076596702291682412039939578699167117651846020214622337026025748529628853555964380653829010072368655838556794659175533692147139993261646360788010667793624400641186891270503312754254149030216353653141585699603688898914146234693856225608435508221807189471332184659874541659475206057313849810321439188908689607522639160830151416378594553707269471829125055216549288055393116114839462279703191228230153089786408442707653842888494414239763911600611222389130143414508911607407755239977470383038232860503439900934410403833055546261293039916294386778552725723005210079123423741600835691679626516511547553474156731188826528909741847849015938988154505816160843601348714761041253052888550866573304280272241837169880534725078991524936821618821194732134517769390963578151344526965619327323663306687233796337796713381556387860164220347150218780511911260179987501657250186090603760753566903400331898277414113640214635409144201301742038070030218454699998789505808867406635911632356781129649828149253157458437294971144040602090183564313170046019867890901315604619060352078835676573160674742038475175769065713538030268535372831679191250688493293042474255788107820054196981746552303248645357864367865706744867190121808030937627510425492881654403768204726208623710150439161729799636480008256018781876260040401514724121710768680470821719354872047177762223319845385170707081673405495761541150284107084025012132988453009041370411515211460075962430210382270640222258850802269966688405059129302751707565270821692649843765129005678701411799852195222860526022929904041989742051393891934394395496114249173030198225005555109115076619934152315416771419494258032857513092675486050294967447942258993735997629915227031619000668931403277020713004273678745058901373815858954771838294418154568962136247852868902281248785559740842177662753042506748875591636769118233508467459611658026094797288268179457569845737390439613510378267903808587746660870464846937833907761552631536458368028417735116731864774263553771187033998982680045669774826144034834368459327554091422939857654348514291328850463771041998520780417382710906429793224914593605095723557024059266221025535131119873447282911997339923759306926489684631188905928265402092976278813114127055151486228073196305243724110096375594429945356103018581190207642655348074960717621753167058883869726253931511110328369450502356779826714008931204416846802903384295315096148107988311805217691027619932670624871291182702397314830397825290027099065213812594538436335238092184786803611134869904418505373460870645905221253019708058635789421122337567020826113400450956441859589340081034494515671732666195671415146842768351529456954715495142731946541286494895675644044984891458245803228568815230632806852955960699727550256300766721438977536652138645186148679285285406169699451036621821615251184324997557026298339601893328259789857477897690049512497698211078734267362243027696190854783257901393243526886113195953511488228426786413671296156722730853556868633859809157212400808459937870189323925757467301391850659086459460131911423308906574752616252465323572617706627456628765725624947377775973025579670370054092954572045906922960315773668001215387543189428954264692687438719012184463834966284528785732102917917971072750536802428262560073795044043048693762800302145293411611872635544819281058336137065129485736687562647704844730250885517284177566463382350785205901142867043303529414242259023576209541397912156238700149984624285601500436854717963589323848851317056883125783131202745002505658917664814028307356395228280713271501200562504372764824877024227083908512638024088706667071189564859914175032551614886269242780014995585982908211358013438011025925989359804472697434035342008641543401486141167926113611270213147506990758313078611325889029559083362357402682290710246961522114223211069363609044273126744264457497771255155664565760893450365859163071232223751806253516866208388856437600501910796314893129737977707830156617573162021218594013844340599934331872575415851813816582514198201075158269098092716612101918332455442516397985705139396236101466721307355988431537987509908939055605369632478997911529492366365519147840198579113525071866365450551134408031401717501311205416123802498771107790487015605956218914933633490180058308466749914879858718000037106618513140817775758552081260378401883263062685193334159720762230609996422593314033936507192191830519677894041720263488094127470825123227999056392776620818978848716607078522671072483825490933688944497950598174236904430967105431105206287473344346743259128480677463850487903178678802982384760368784121372362058775650950030153909593760757419937748046374579806899270386657264790265320257876995742812368040902581647615323648607382682167954694317393270654573319290014404205860073937038191212340273088810170842388011595119057036041003449658200673053238590206002060173970283850469084589348162534829641473825246838263664408777707172696595008770599795032781457085258658002760447007635374554485658087023420012121886833001890798519388211654673940014962539001123367663809868607017151425409713258474238890088818483538734427560912854392978364421320268669991080215378637217195285341626087668406157441246021611805660700227757691582825433177956404898031695406698798908096092067439149602336926301659448828872343431352333957799212228691356226308597143839963110258214503146689964111894490463558770245581043581235249079206091527635052949508551622045161110531912226609687074012569209892777923659060712157540794405607145779359550559569751106787862841940594124938763097953294509839960044106064770416838202955801223400505844059287601988604328311254237708050736591981403932396185258314195981756655995191177246953310553224765736857517710280854209085385885853970836935923071361827803147464492382474331963868735411526017129311888736776074676016535554105370958507748103952124681557656953885255234252778497146028609008402642444156349001494416895653692865916995680828128947595831564943107954700081597766533957341241210056129289773769806444685907803297700016499438686868710376523217704728046313052535805906620801578087077201884797762740257740439033109349044139068879816291211650187601033884294024316671848034045748759545144284640203991567177891496523489414253716456732511747295384145394615908533966416910072878235074377664631132699987237172333057193393017979307827300065846914613231438366145298539361472046383886225430308912717000336452441931887628832312419466678516795437347093698655905397828561834521802570579870351620473273386909664582287683000250044396027591391750585636861581917628110492743550707217894024412771878775586247263793559689956803614075614156591054253573031000133958092103368900606302239513592945294239994097714142921809073089883715011160755957296349501909386971966847255960799845150382498541496222650436078761259854389648842015396023107408988120877793883742882545506529467109916060161902564516953991406489883423360227244236728211210460110245038338273372264251283270719319732728511964942452159473163107173631160122474183402827914503494329933687351041743201952713988890225590998037788186175748284067068428101485032640540883489969792969413372596289647817477566014700042907353798447177685799548912581572271264779905177372257993985850955350525733239254865933059578123226354763858677705346950667677913775650444479641405610617018011046792640429365502302955693527966863166445310427841457700788451718951828617715546429459539594119725547816291219678313839037571873161512397210336035026026387065914788564561529808799691497921027708001310182953568207700048782563300769755181525130475309240249104604340262017027854164206205072779929926864911129112220359792936378476275591944135745225383381081165793551159611498080831817096411671637301270450066287420907273380309369897795340249558115721111062611870013288045163027674438435487600115393484887970358548797786237990349862821726966512139378879908114377669705980261604705405982021993093819632709428999289820531645538646883672474190637540771493306179354347188429252928064367940298311307299769608860365350619903260183571899443686854154016425273722812036481320369025632029065585339730712971996560469189092528223846478626839997966458937257711588038434422957390477801263431711480400389664528794320180943461955790268783653527129745783030439827951546405339640018159530266996734791899698582022079569383726035075385771380020099177490246473571749725608616876954181463197189260656155909690165744709133271261551662845248218064928891352041388006821574762142528151640965623292527501870273228472590031380832493439435974775723853472378357659343306366456665781773944225424350066895228312952343315965807596209445803770020937714951795657458427477985580544474233392477806922346758602968154328619245958190754748058094101846727573081859610408334711031454092877761759926819784446070729666173606429668139202634439368621417585393026848252226156701463062547149821358131745413583413926034053058352802476524729161784971098045459987237514267748954325509381812067789137257662771229533917023994893856995295414847746282676590771008575986248840259517376657502841976217693279857604142323537276284576892528068094500643864096970803731962894845378123057607766831544738556338114983206558622955008344501840420314773036588381688884644316446425367635233866993008561521786870015753446410982570528506439247744347646020885893064989499273597961297687053628914243747726614421580776691197678159492733305097244767543588771744727151167632428082215005521124912406024298767001217142987828712185702412408792890846889137853802055119975785085869683489387384189032063119561100959881668934896721200196517587440192836349354799485150293523688962977587813637817297663335053856962148704458687616678063963202673959926580727072853797372647140307429140497335614705239950072358794217643808517839848173685691775720279413956058190524150135653111862562864695856871962307605429493672759241097113290590961732201044714207991636474970017257216298886779308730865497854899893376777746767952762397653558090911739686823617311197173669121728887675738572041775493734044830631397556377684969639116386063149953273281583520523721741911851036218361054796927026960112617830426796407836710825288882825554783522741738026641973582696824390392002536200715078163622078838865995680233071537799465224852180252789593569294289592190767776588208881553078261087112577274406404145870427004992621186225717897297548179921003894748470631585067698845147744236921775643542034536317986547447519428529183687244383055389072753232847885114833759512756727806311528385105223302306142410401513012096179997941048081001578986068582838790716135915446405357000249680212606849578426679580395780480912660037154589071336360737830433869208848514609821949725834963304227476561161470228234218167177697739617546869626011046787481440265954169743054852659423114827439221026740247228164281866279238390455328374770351781527651686045390031253467091743515775381815189041158321225254723452285543077209983295254144742630186158670427574904000196700178281049909310870699031829365804792578200609040927630023508444161954865792730289302821639449977591611954334722135754739197409881615611126165705431494396738477337672469209195380199709977960999279351796157737687803535586457613824772330949339115704796464795793067709807387521753795786314172701440189984433528531250878084691215415579112844728344776563176730305686356838838722191256871349778134614932716318921394720117551413116163010961761979156798905903573672023682592987476594042770705917177071294466325942853643678736360596812753292275868647577596322066291184569604186470821167592094699916109996262018335081746615654065281682638931885742865487349165564214187068942100441280760038850697902132475208819471494030304371007784781326520033276206809158590871170706233911830718812176914661703537859316215951906941396992913571919776964472210932306619091043046470775711879043756698590660082316312437569312231853694886305181820312155455073116121333948987454021852736244986335096850728747035903412823592104475429072005420726009858353439726036804266766538182767033712929651511481731499346523183039468423786604896643841700011038849680366588916678115191708107215129325869166721794635818883912872014432566461313041872081623848666047725254081535113849599359322277741880178574121796005814572641146700584301150347501693749174647690538066349629028947207695538669109423744078256329222716274684253009932198377206469389209378111953483797516833254859209326394457499006907970523587460490711622219668410313583828715742798240560205683640030064980212753039487731215956677031019487346390214898064069310668640429252263661025018351675742198309225401968386563097518992370815134431854375706229216746007598356572695885551962583576334968970744616093639028885166882453784430011801418165580275645293966514072714958578851012061030623644843328738597568051550850047492942807422385290862819435208567699561807435337603569658236975724021986522042619070179857885920843557549475331557032139195083690253938962604008339184888792593986512465218317597828563403378815022211937953345823084574132607818571612415011932075659076885181499458065998663761264168042602066126360532020472388749093814211732996995272901930365031954216131454159778696715939345164828272053503901506041437464225642877037701002415751222404563192390231064368745601412177794556697710133331489611787968194901154580781570666105496489645752684132198584994737310902465181763741405028194400681439780405903697932387478278681932129207707062632730046395865205378515452836512774866416744364825516555297963783844302435807736490630272291788534133563941653329337728162717709503993951406387524688648063173527400592573651867874443370845943317580400042383344614694777337950132490854463855452514282332295171313320063579856003877535014727005598328994388706401649396721372463357009275875225836429729595973684368062807590691256002563231688237475489074897789045065977254598696721322794232083409986047030753328241709804573511333612228660463166109577646913337079287695504588399753908585526384188150989032059263283855809664745286369581521184383429950074768798622988725515799933781672639936863757507297176420736285232952530072285158934591374852185535730005697937325417329298737540517531935701663309424997111588352485151381114142772677425015090497196168457886584171605393709764605832808266448626513423452585923327315525183002215030933845043863325224766104986447060385328442445091208699835695581148959580064687284195444073019848643472586797201411556926965047084819017911936557053439458574210278899754666132843575792808895727292487344296862715581702721486741736379675076961661759011437363316206629800616775193535262853731820015592570810292369731626124864834296845922715514626000524415719800771783001593064856782264643098161550301272946689416441603947725851653453759689999174887887087544767057396653202148472002322193892854342404215765035328050209520197719483653887253322501239775271346158601195505921250302827118329910332340511584515612962434664298179441801813404286093860599717012243707117599876061529080458329962984418221447611854139151506689448245307712749708189865270567916906124772161537857299660407650685057254103550078811695299112810492912274203753693278195325689242723285435067701925873115605259381184998208414389770516745751388345813694322767096296308886601737136696395926584284578679943622169653948583519125613767578951932015271640087746299093493752303520268247527682633259270775590577551570184758962824458964329471003417096160444015079930493101455550732027228786950513950181575819471976198081162885154326573733611783487285940554750633869210976573275336314383388353463878360844146825503424625792694549773680196244476173438104136043399018153670310992661319322510214197272831079096689672893450505777652197283695554157622314795070968942998159168444698736775372018834751835044350139439704970956477925211807547510460103317243291971935664228281086415723294281749489281236676804111917852077270471705224522574507268741212332750456475546682732101086507620704353190925194245466068610531202477189835460985826824729598240921678621203500878504776421308090298940740967573949810071759937174022878790748711980630272025016241502909083675210213423335565761778474118374001288736537004076584533655251770963689792944893977910994341581703730227385159182122663029536365992145756625175782509692412429330129325034038571981973014676664329586774517713123254398968018482956751419553480330716312018820310190286324163937296665610013266971894864254495545538455647575776734779592152478765943815916097041098794218132787663733887805607734040317088701114730564218872346193306101297674635075642639377875618382463069854556619681743836144482623399994136520964897789327999788814410056012484636269969435758669508185885943267235910986466164706457182166440140043270412989422851229484742960411451848433986757377997976098947869812733502804446762957369510514210357132411853125775287749409017622344285717309115186667477626568838535986589073865874158887968970968164419566600812753607885059555724201657271179497080306559398393384448759823479659814417568505196193613906501201068005320632878503044977759474639183230382393588514416535667002929487907264102081823601543429517059113978360821518715562324435901449670242324776258563555482194984409633017033735665072664581307609939422718804032850736158600757859833739502185661347154198459540311885287107488257890918835556705259353366393174420082295055735379151872441201628776412910322719085953963183976752621361527552850025078342719121330271204290771151237000990202510325841849381442026614696707769220563925443356608314340132884665624280794259191851768317141430082795853531144392088654264508565023458222955271429126118701072507312514627384036478692511912967829285879403959699311724538077854666549108150693972981214807545498637911647572882672609140441625710893574651437850643183923362640875048414675808174546115545814704702769627570768320567284236074821278947519925235471875905399625183523054523397435862599065373007180956476439671078713329738345277244461908915386573197857217068613428310457871170006864054295523097412972310118361219801986898222675980800575681607849058508562564925439967325102931900162946408662876053755060590785744660100661555562008013761813678418726528539069705654323353115540971202623624412000429151980247064295141024346163078644243813283937369246467645026995017379902069809938890299520505884543913016326117467760354441218508952261838434123350527657097500853497960556794550191991385697610100774405107701324826081157435438459133483801001593763077324118918081641180113926812466467434024767475794294814649944315860381158763240141262432230716737887333486367952120048989047294746230122222768543201171588111299225287021852464522618849549691495129884595964257560416832039328215224375456160333275122564947768343415269099405271255880217630942363925128354435353700563191890384552315392452844246010924547325566850496719746284828444063428113534726680338031347445034854361901825524563254074715344928042552154289460740597363574096584478953153436519429748036546610808411745342827861453915799426481494422539927414754463495929736079464696055959220625926930030744917682411302936893679835131413424507487687216480643981738103058383941035714702662266825371915105959949000799566837453254394026388404107881198000668359222141337634913334059313289735589483589258000149870099707410474535165103973177580264138145363559974697838490647282057144369994219896183892597373949890266264693216955569874024653653647916320972512883415750845247409121630754033698135438524161456790947504674937407651999591276893754732044780273502719109979871946842417753064915268464433261741010747702668516615926664184456535059911490430275409180851771001881488863242762941663271073891029155088458394770592834843137693036133974639351122930577480292105096743287846553889302287921176757080623645090130745864420610629305201046560710396504127561285031988859207747349402602920129328241307583892474998660275702850174339518139924890772762860944002738162639303980486342851227406866161461877199487909328573440211115798546176947310203709348841584961590628472361204827365653900143799940595814262835011463031525354982925934274634137521555751766418446479689375105356391480036129124988942637578501222953642113705032392504754415513148869438803479119736319391588952923618842275459958073362804303050878337404762996848880240276088585776586349476598840794146265831481824557718584412887211756496260012558530171033246396079611696200771031319921744120226945838286469040310563922366179858124542852637963492327196354169427315855067472337408600768606574771076583792720747286249751350342573711255357013834917262814276896153285300048365525365272039997842340746677370633125023368765611265013156177482477784842844739886348490465347037034668325701973756237259051623139236724546878011046399993790549284013075696120164473832304047027469001259974477470244403807928858402360961077728573753103667854774051144276847864070674827440120205506202346502887959932522744139921864932650439862005609033881895335925199836376578505414743888461000694586547315214491435021833442162266846843993740800516851901616078650968853822550822463447113021658922398809154771975208981724725215054784190167646505073001662601090457289257456915996757666824039869499909627317031300151875138176264546759569989909730833034822720743543453173090756720925596962094202783824669588228787534720010314431205342864565231708560590069804136464777476250596913301612420637911257026336405659732883715084640675974104675779051340939505353111101897574966975183553055175185656659374820055791258654424768759096777271538394607558720593459138876374343204240305672058106891897073192101191233358744593468450174023915360855164118576093191499387394548423121339962240034566024488885796413201572721036470457061461537448641230513783137384568670324052512329595134368054394213716456389052759737064076855929628042776324163926241091035343066788615531398422834529486094081091822774503546934234998763634356415802025803176952900759910595447589791509591474677625912252193271221947354942824805589936018480279593333565188782075537317392072040681127144538498379261575173764712146635737175454213721111829087026215724293796053725254789402030184090702714633155602401444116422771084260275479900701301837403111228108944157949453222875945867522029658904710812872460628177245427720465506429711999311057594838427968017515400453998338777980871384688119720758494829439368221543799610016197403898780654595422620943422687363776746058841506547990964439567711753763231738983856351115911805029661105223491329248618301341062248312993245315859279491104475683124277029245627326160699811725601770247321117779130129934544644719021908639885439999909852989075836747007472853266819560631625617148040568288512426631659462596714601976321752759157965614833798882618892959460265680664620987160630435323200961091543901028224487394607279507944886527306327461339146980747124482643874139038897043889660502164103630007348890663067005716305709202092680013033534812510383305846186648412522870269462703625856411926928514385990778140634975269363376747291529393234939777261866570046970137782647107407924170017976735633059424273960411586017216969928439918489774540034380550067363440615537288962733810543827124090206857847840579492695089259843169305087281393535379929527101651800520495056887629944868369682845668769558013343962708043175264458003655404647813165929642576134521089228151948050815887198570112844925058713424564342996772884984060860081987392956565563346324366076642642889568414552696368285414073016027736308007350894418148375032433160764151170990049499627020117683395331497619960333841057245388082443833914142897646888772732335561626212136003034658432663048415609309454879673950622741775600367994840224438802974145214902347963693937911384393585122395184053849039426155632895698871811890730416057671916048569738823870684948483476142500258332700327235775695918316722824925367453399149521101413804414642064955522153368366835903925136710216620464795432467756757524451289265228301317248910907032778759696307586495789154260557092591687278773121664279452363153754745984527533067151411642859321574748858036698772269804247087771475074006059436275707476184245029993489013028324153330567158010821031846104771082487283547767975275892007679158032699697803794051567099705745074580324065759122824919905865837039835819460723610405417812965396236546488868967367620639240161089377620306152549735763608830165211187824823228323625863940343360205938668926070993896458154947674082785133229195840955264626638237039663939627744193000231740876786655818974914352803709556696728252718630907791699913520367324311582885257719373484444603521393220794883583268699230626242693595377231859189422222236197713622334104429220295624031726725508384449882785477874719055949203311624570059300940205801295561494091281538663883202299359163977533311484899582417857116759669918791750475763762109777643993747837797232039103532954493544700283448571086274425397677826492405865360836359365146409827673059523351204541026028686675012679769158232937468108903371020243586525841314256458478664037855571864699166874954190647443986995102991756250729014755169678353163529758674258902074850409197456269328943892875084865405938567592628225132414694281134970881499430678737051031292433943949554112722073513958625266007181442724527081400175175607626846679507597768128642506812978654872102156704620998284494225972640918127046794050514214868195761472896749552017984761923326395236576881457667710094848329882397108030506577091116257794499209859283478587775709370986624292353132704250020684078203675218554546374180451031996451843730675816212541996488233412672407606321427822745118063241679349468315884960238879743589937966215178439309794174340133552003706763574332935916090474107792697509745530514015541547490329232903491226362897008168648363046307060958712249014279253684228358428866994806164679819711267958576809860651288653688524653285903478950575640811091761718907517038842258213858440855292625622638922421795915101540630684690233830385679471100410819086484707936391101589573999289657973583968755703000817641947283378766258338998557317325961889018724130393931533085086485895501856109899574616308306937842002921880117489385544038970139573586715421242073237768473718769075815805051732881399602330261816957749662121599034296717859474428765441377913536524675278216153349016589106810123097083455726900301461551697278073050991967947696366537112210978869614100174576426568795070809644304267789752106240393007104465853735290320535132804277578422864438851660710069385880579062513445383300684863646854484434736503577198431239338029842278681406623767517035090353574250693460625467323514585367355177679349936993546927904175148187725304226984992314574857959257648245762311535912687509289451065485150734052635360673649953192078886877650082732923981330141281191139778829596949346019537336112461821535811161078606124827317702722285268969720436934050067040423213132488380322390562199574336115077175947224929422028412783015064581388322566118820700407962450409738823607581911308584043789720407582576974338120661778025402831534773319285879662500197758529313087762117111492329812288784011012493460109453385963804780830695371643268825299473256786644343822200844180612563824788026681862815499277853752072526142307650441717491950823880432238810956453168359970217026202628419134291225995265749363057826946361059762638273132098361215495415922231519622320730410203048780640055925800530298275924733536561021373497340642527588640106024435870018704006293803391429100658719156588616232658311834383438312830257142889213201050942466743240908718866893041979842478376774867673452880263478407355834912599251173537693426137035025678380121984919695838470144022698114771443722469827722272997932094770259428710760792138803676682642263498894012207805924654311850508223841066852021286389665541417834363899761159881064475143321204743531494324571880219630924294965314801644461460246628224691486653565427865260111881643574526081177611870264041545126710278750018503152236052084078037440452997017376827537711301234493067422610580654615244000309767594207689356501336280494565998610145845869916362681600325022312595857015340541921104248149560097388451839154728855919276102074323179243702620766033429228851370131347365405210475065788225359133345951046116560655770692440410234980197863611870437090645455113367759234338203363433886105370183868425474111328656221882290138414039325308739998978486955735196755629605584324702875151474749582748280437412811874058223281409527078455642279385877208099067863952338116767253236880152927732197883768038192547709805451556536458667978608014634607611334845905997572926129779359897475776238698999861208846073689343510661026492754182676947971228828764770135959300030350309081462932520984429542864308788447642910672311039349227975767810630549645450763385358483134539504308918681914758069983299805132495025226814738587124997712417123460695205993846326866534903302567156820722453790220159399032388143183412833238458970897673574345892068002581004204517448793043061351338658575250335864260748427874468453569206299764256260584241730316593276655152721064311313265098958931748373009572785113964575708490822149492296499389504241866735641746623779524752261582641616312547023637277842353395013271520964389276720388569963833989014164466932412461944221114026028363731916236565659087783017725133176415116494563327675034536466706263865602790202982004678926811764760338726463632646753754719756527784400512003733141782380766058965444407680183903763064864912624816948367917530972865854798890263524035139877664196844779879380468625099580387130323073108772959497534450177311957078837819009853160735274718346542797150622629287642787768881355534765339460391131238443237189115720812816912242904438970804822240776398281785393965174143841874499795309277608638508856453811316667982623797323493684858574836507312361834294437499305512855966061436146675038078681099559426401426749534438077797999499282347016363623413792310411876717806715247578522440949082358425192641174888528409754980427535407832004152589170348535181967679560460067184638856973210015121781457349999861602236515423389900845211595914150697339883820354902161450351319944531661366810186573994600662575789704535245371701109399781405084872966046353995973435331665702732825333040412712706359888966138642009586983557462878985561625586484426838864424913400800401897454874356253482771058513003535292640414312959030546266369263637508637528465968103727456572069454526083203037850326148847711823900192613664251601229458760665741124182840787896019286155245793025011855799190614185728715709449419465146347996938526448331496157293801856085381249660212091263841630990310810644838119503377677570164452396593610202181845832625491207769106877950893788697203907626067267308474045129836965440651147239025027557259649972131671496936320560341532183708378863545698844813706835374327347725124429997682801256505771160276152162466198980958238265547729682078794927060546219648530608580287786509422533828298559811859332389687990682569109962736696557106370490730354462181697291697048937236557562159498909127829563650726805909410902434012219046536889214133346153883746417298712839533961998306518972640773081364374797969569101291659414592860948570540190621854545893428936650020536279002253368346894699130713739865668487749114682259539703486652476545392804756532083471933575321892266591422043721311621754918251908486457761050455512109018541415837411279889064979046151633116197804555433986915173964670581032164901687998199292002723697610548635690978888964561619842224679716580134241456844936456343582053404212355822769607558337909191748019110888716360812445977047700472224537984268262130609072458776900607360716840341941315890790889352630602286624361277141379532948680630844145174991620356770638419862026508486281912875153728691658096328706558178980631508991165992487540723815820815892770726330072146281816516109185715684418358488981715620549433237955831717635777128176615372302250794011311164773749638683190442547166521903321521158275247166666667157917169292604443195260156100998115150092911366562433834380089807499542051077071074769567850158564213304376251595141952260882119025689101696362794234565541588501951556842303832111297641619548549568310909030251204557781421648102562435909805399764659677912112113315941038544340241894384895764117219803992742140902180776595163769251485502081385358684973808636177099075051481237425913532467308220538639475277702164239159276985103066902483848969910354547835496011142775400549768112843399779475492663865470197606137253156005742852159941814112085513320572440109186287758396701414147419890511939047099910782140175958414032068596291735453875463950608452143896829060980186199945494414588585526375377323934491836458646754932213797241051934507170604943802324366768117842984371773017292355211075085255068412294306924092583289674139103505272185966860618411014749345724606860781749160713342634906625972261700673063296852524659852876885807542757095050496267300268502403553328405559668426544770068757301833747801920609620779217680948667353476069019105951422645176390101748334781713107500844131607224559844704046473936813988245197761098366288592996790489396080064024567496824558380938025679418831668080323006772173306657863699450477699575380976643377523997613856899710537585601904557197678253728395164324656699480789848687061826634616146921875160604437292434545951720337443427141470893206452673368779379503433755358344514009905295741726626166398235198562404093201881795125160046395053206380923857957050048248375924932333385472928345290204570990379594501859903768766966701937239660818875086620767106615798863197396676710304943356943594622490644217228138469604875844017624571167098372627643897693449576985768363220113983176558482927014362158116217054939321178411997948136249474050146305152537829063350712617791549499447376350880198314652639186275452054138389358000602663822268432898253525244604275232029313866667717264506319420352533220563679569871224585505595903248631664601312029195100485243796348210959907952899189325277806753794076119990306282417540564725283641545917097635658650912430174610994046951651405883311447491433123976086278083116243157625171319888701140379884462861018317677878254485025493676929962949419068463274515696472942796963126304237285783541086607559602676356386916564304623058239568880038106002448471723605341766452816220579946067440492761549956735961844088668611720636098129915780131682575214730474011606943636253708456445341560651350647440478741420436700813324139636771000570283006670779082882935592294995356264955706917656754082664552805196156771236515989292101650128311614183999814050775565884148328252433697965589698886649490926893852812236437718943683569954143071735506626660828381822365208255042750562003740971065087294192331546255458538676780683792188936300026892923537691751678897287384652253574172300753233530877670673368209642835718724166264954116932354266038734992594847082185920074962912097971392965217490888920092414337092346260131520320969979149483858902911394988520078724871641300491634988265380120453043414208718214029278650780190624454974760553253426269922055816860136760036612251858068302273323535722230427574296947158271514014940097413596056158618592498354316908714865071596828835081391165439135724125136553640314378056009388559473744562872466457585334892797593101236172660460600286107285674352139965608108773616453721601630387656499102173070334043347006860433406190171259058022999172726320775981057044340441622215324248784048440454753753919468113942331958342320969927581420814034793419791165734204066425638050275660691218589415751551104185829729983628541862248536716177337733249133595258745475418087491490383967462618490569270749324934701221924428026284352992582175903890206267428586103325741760329810280655212397794306275621206536204732293441278188251584560721460323161075292619385215086308946132045808268773220861157252862875736265154387359488237608573641545946754617886660445000820572660657885772984991914442799192293019332521244194261323035021985548377708961838898494876782183940576196968842650071549938005666509368286494531044176016901415989537179106425454486442818570009672052072209726008005404345617822867779309556171996499019301799931597262775547834074126545934594583902492353177514743978333182116486734325308057285437042102305173975047425391191439998724304830689552534212286231710743125609887396104580230564190023633793392286340178752015460057870513888234473490800747129153129883420135813923195035588396419652367976114045864069307958987692104830620211138842163120752898287339599353143766666087401646872081807071088374116111743253633037327880392587311851858967742258959615001074716914784521688285194346389925916382114042140398377855116046533546416950488495215283271568611252839099937617210909234836986767244529192217989599909507824733714685254102568151787458131436224339577800303442666457232268763530353663460083481059260316377193289062436201012606979210770596172517827962210114724075997575552349827201181942983423029238624958324842812477039490473123959632577201751308687918421434689494584978998473592527748342205223696226313245891422951704867128545830172305437119551095837348871750262016610850359343309828599186253288964667564621941206380683966954228523652833620498435863239894615030592083394276293477690293122939278051155492952096586925018772142689217111479234201188965381360700803866457276080715417401788033086074345874366631119047950105998802441892902466181638723945557265314377259260767217454380443099224733778677915266356411130824573666744344265752034778331484003386850412872672446577002772753260169422258824705926862525739935403549359388369141048778700867536090346050029063208971500154629546306825993481608432360085336802330059372911115853725974563572815849492091931069010534260623165367637267309934889085087222625842473486126284658271376361013456991049014295438746003281282750903209206145462394427610848398100154982940634122608003074726558766390679040511612480670226548573544773659198561160024954152704778317502477553767726140996822297735053878770612653894214723378970689633240375068066676043932554545577679426644062108191143338667173258551743021822822085791146545226991428524630763469420581233456214084526923482745280688986998108853112509243684907578517402879904011166786691948798124981356244052779777636945606729184509678901758176661543504394073241120569689311979404620159763535294872437109518783637106279863074832887692326831986358822614389705655161203780712546194017524157560948122781692149225539892619817030927285335262876654618468878106474142300909550864365052833013144577470803834388970688924243121793721110141243949566947128064001578331432625110506775293220695663014186536384362476806132003546693354647612881034544976123765310199100200517476474433950971596026675064062452406538385725002077808057976832332698088157135776550221730385316313931916777313657043295337065089884441239235540744143736468265307034472033774065614741267976392829829261298870888474392474883178359320032254634972329217867162790651712818559180128878665941937771075743759508421952539818014273359068756341762684576733608436536644442224847007732862812001476608706343968169969911973755477610899254262136384252916581094861257886763320539657136625517349873920433895682518145686654894625889941150400665251450718356606833247377039502416804534712011192070736098497669972049894226184134488855386974369375318971691095715817477779643684678715860060061145652708222072821534541202779298787939938055506212551901129426034016590282025598538442634741202581634294509989541174488793325037197286749145542155810284447690406470718421757305474806129625577862771942702551802330939105766027262752828589895411929091700637875676468978268297114593126084554877794398885349842964681971686563304596263805234616878297133015051802918340721110531835315698809785399596724211541046009802220666511674585972878621293160245314088605030556296774060152192804975392767423010009291078015582332433536912495055911051832269180986713393590773163062215861877965977177882524578818646967048606536127271858544765486304071514697897402900555028122425106548389786981447460026374459526695473655198120729181061556765251961432519606663212366568461426832319326399574252546724632681762181160808044768831186522151626985428053842857152887958788901136890807105482237837236311828761856173362893930693471032197805992418921262809796675298374822467798106699958713801113047535612588361254150456978733667516694501679384369671264798915033831621604261395997931805286828043797209355697380062432226139216363254268980488796109534651566896440877261921285614534551382014078819323590899434491891413181085878485087660603290331343280283578102302674806090300929642006066138011093985590167184691741483419858209570772857426706312247797869569284668406282718562274813165016417004390904620123869984867665333835174322342914534609999277350535499647451965798074829245035760260335495347987578524975520755156708517990101462758524159162501411039611244497121442035222726422313103938461698048891942204912737701683286623760583817211539503199855333101671933607895593259580984284952527058925712028228371221037344669877784894578944839757609665851515976540220302607448759694155293771677187360808785252526712677921518816210213346394152003869029675660146046845239496633206101532762840141674137343918258455036486725059612955904568350661786286105783780268980664661674114248698895102187692363616693325003107647012676566852506317474346687247863897931886445813208322993735356967013603450968968172846237734638327536261912618639913961449897199343651538946732081720464521612910583161539371514816594079679702764877801106292573743783454095972632923467856217589133983261391239612678351237991466332594887558367211753319856644182204650429144932673528763777243718304716242841176296913666273493918882654216063044348550109509612497527462777548598719779744430718242172292371402789827490920175894530642443761595788326775032065857021123802363213569464079681670543806414776395729078612862321002716464695266271214547936712088299820599602512224927126389115348890676490042427879075447691190083220454240389104624451277310118261460832262869122270661014955709362083690932850508378662885346862088755156617054369331299271665677893419934022114915973288289738310955488404211991881334590405716791445619692900236247045167566793715938445450848857315167178831462147432314675827347824437335073507406743196341855427861083276752873515568879045105388268154355768204522730895688809097157305127073495133195194171467444808170014349996827256457916316187939818979415941940364856120559626930108932004115069662558229221263478525459203208785947524585679403119073545329948617136229303769603697385049165055712430737198009853160122463371461914955852364243715992601189991668152814286411823124337183755478465919896775412635448696433877000908893274486890748868156617440270788957115225844860230439623338999089066789875928978566616731327378694624112369443396746711287355716967046785968453804246358610304785355661533260886591281558005817836390802932926594916079671346877907302169485278851897730056770436417646609846208955468286794297347754338681023256754521732633665204507311700255934058065369858690949094367624392336480063445584415796139952585049367116224083452607407915319825618180529709424023805159154982530045577253721951953971147025950043092452742444238780491467587805420609471795600346551177691268879676767018970067874644219986421822825331594120718334697388086236927590430926851086666144797276503287104124199524546128718242767123391582524368297778790575908176551286602816630919961281155416121201935682724241343262929440502164674461714120705533535247250561922332004023125257780222839400966878671611186554950077537023798133232012002478698088224181631247922748544035159951420388724327183749322365365888219550083260861589394275632433540457970938377702840506884620794134924146064805896948436641730365864583096344805765963671958468675028854228159939828071919509396132645841253517114029668028847375359387999153224062144641971244969483723432808163822927414979318759038122032660251431176596368916753255554968099904525074024548326114876901707572731621229653427715524793416328607083768424772712855585081265525605317981148840439316200077791586629682589094052132982101772197731220404858695629014263062029939702058303017208428957938015891120908341638589042050277617967304969920942658277749601556412659321011138784937505522676114725687876638060967022595366206807990346134314197896615551738146355074660411493524371407142805721190182557121024329522988588499410245371070721790879626328797568319707463528366710014471670820619950646652024789385273036453685789445100531083621317248285359586866423268241380250905606143415626705479216792460893696419893439773798149439940201482354142130665301073458136489802010957482915555872409608255099223699118241632767621870907754316961948829024416241121512138628654866788593017307833590222843702809418839734734746564308622791229648665688899368731069120253627488699610012193037906893819170979392344544493600772021331839111978593628406465450210208914319327555487460537603543712736187006720971854162992840117811305822294175541893146668782515076308676285241141271216785419571894678945921941403524587221156615839500384208083642329910473313889814120303513267525354229547929159776218357164850236002040135709563496521454915940997858620323595815919143761223457954606871559740908883177328068739305977471822455352223619255494030979597637362113266618383227400939897180676768708936799337381623784175347775956567132776553686193508714673983653136833581452411539259457266297071926990506583129597006379708438626575232251935202986335833843320040608081484416008872613979189126874018525504124668772841129065454745558590945048345561420670913633366125275537322801623434191881865687330912488375889569715916142694912574713134805350798273309465468953218995113101823258028378829530541891667608891566423234491592002245387367575469287793154725240171647630016681873158585215426738421038977206535548878314958717912404417129426185794639926016293349842841261775897481697168413417490128132316822274935584055397458149441177588005127363999944645503756252451367490082189454452425594453324131286795690774201139095802559432722868807015562617398590252502665364757829977293483077617341097313737530074042755035186732535391760050230185334916521515188939332205386555934974675181609280847013316108278335816972307600732382374965121857952941721487394074849321704505049031288670822282022210901483393636945534458969294037331666824375207437447319331871413547509715139177181381288409274751901712363981697943763757515264534026828788468605982588433601083050880066377853740724754727131174675477541715417648512889661087657954554798106170607607997836392604628264078046021469512906981132845772151912594161858245239652113503696023902716232874526328032193509028997856447843373708696048811674820710077245760172577622479355814940640336086683262870297843362356660805349666510768552320134378821340390729308068162654362979375147488047236251725631312224699244063921456742910502007431248567323429327738335341057978792717592339443445983912019414697810958728983340138369913056430099980753761391387725844294960819073970558891572882424096206420993854222433226276583203946220277041941717332460708676742193556391788486911961630356230525448361613462810416013342886098017440586537590422816899006160198562621967134624266516300783382796493628556541288568398593591059541773613463305385699625384320517287705191974159291067808088190159380054108943595936272295594930871040016255833064694061373707288949992211169818346306675911100718237508100654891832307937755614981358395115791592373471382893447818658042333279955005122211046743700718226983386212684839005494306420448829294058086560229564192082280963697284748982176159571433691132407960723061635908740493591151139978076651859569252519493600493649022665154783229820932894850509893196438170962949844673628299475460128249857721135055401307270233670200765770119933927869525906623020972337045644613297808429294933332554693145473388171874620196839484262513812851390292034274051390602424494101103239932567494263846105495112118111827917356147148505547223871700503880495407236301623128935355107116149785837397621737661760298754505495946495512890636539300131552415502462849251220986772133530315880669398911694656948713377610609930451659036519495242767949073127004441451946915946839285628314094639065374663650341258101468521655949208204763963851504961115757129261225755109215526074643097462162285552904753872760493824278892860955477807897178927077619750296118577002303227499673660466572397501447614911999122239191224012240980458524837838401329494248020598320813404681667512573744796385147044028730491063346820179295693442322189395069265480172608855902449670019255858703188268650708360496353054686155123070825936910783234087012001195325046871402387308665781142201354109940334529169439259853924201149824824841901495473196110636514428024676721410886121162950575051366626791754791561293392267627113674780166658290539048969229890622626620324798225446556438506731130505127817732060643908082841679989335889667421588952386126831130635850108616209901568223753576167492483677245962551143624064368560698227019846077735815162944443325544671038066011124580260902953637532306065785121626056112668751552537661311502074468966408062384041316051997325502781452005837855480747261284810346704905369578676619154423759403552526582892610618778402175652577276385578172532269302552326242762087757262761822466254164121828701223395420785597000255825893869654684149578098495985760273476869057498081712376314572728542454120649220180496137156528897547253850840023246995747308843475727273145229001996244435980536601318756333980828630498675830811600666224127493851039569574572477492697010644616977662323415350928835650905067176931105421140223596777546758872885052464749877544748562334054921739740638018294862184911398728908406580656068971866752380233319207949375683170768085524114517972226646386183077371097354642832630612929929853156306100521100958998830176319089382611419010195181454896952807225989221304860277587427152677828246782127388293334335678697712515097626130762394395521400373777491499362237233779292630648369613720399265315683307912303008287951374576089891404761262588200406810018373130535264588549916525252651065194416915417694263457167201822429852739111423974093965193436590716317597906595901549840274992744598786197911031558525926618326619134566874075290431378124643733067504523827555144770148209047181814649684274790262397956860916842268510605590149372156196408173101455555796724896142311767048508078558373209693913025004045547031093113319954709108271416193140182551798286363407961449286212577267310748196738061895650621550038744849224862960808863911487958492646650191887934352156881742195056362121024223517260410782969482978045187543189384371239164876850142023021708230672932802978805784512263103743718571614660340888001497631062064807358075231657711651013889138523411046539850572431315720318725769980510552492757591531766272943507431808450815756160317982334320522052347312458758938454328878393973102831641110706023187043512925726587495289155508096237707290374085784110188164013404774995744109855627346801049419908324483625274180689487764506818652837332176996547617149331869407845615243984621966239061502519751632514793152708135945561683253042573114920300147639978494713492826122745871840144473609274864454463555312052904683039202567073161370182581516767528046019289557245237551751217891555094043807950915665149896783073247257154598596920378072652431167469942992345710924931031521225780294766193205009162424762114651737713336729257436597244879041263681807622377204427088582885028319100138229807420728273916506770384551867021697760369268758727823797407514740003747719543990410440011671730117979550583267018640488109952708446333158469020507698329302583655550217842596391079347046832063036659409779274162188292412989366852439565395915559903469304013937622025020951083627388305563156046868782402164070738073235120847290200416651670247653657608213251766520252673373037148373888590963562705254664257689069048076957184452458737542426418478165909443757432007600900613311921726016613142851058721074134490201535443827729854507535346035767421692410863797364758401523201563104965587475151278586992333346954607887824333622161271403229503685202978363452240450876207193535204003308660993967204679145704880155029300164468721894479956949185232886320993658657843944315651074369725496989008799020857586944775067359336338232443899053576104729991140459957039879002296323391676537809116030375482138978832487908934160614120302466407675359185501722291195283247177383681470248711338319533593459532960610854952452869751664929254543477115204202976550406779728660396047173410336828021135799557943446519625461735837843153212990404059075493224111300946294107123317483900892318512934576459682940096742943229506214704431981229876623642554157803821668836227850619279139455729045641594489683904837628643705040618679061466048487990069403605234067048141182045325239099446485563624824577889496943439725660295347388859986803828616300412462386967096791724016177945173014659750398640329327125023861884262236493618910058323252601705603703033999595492156533042048325495976262077974833647167052385187046070152779054535232472716746383995757686857672473074778043062000574716617921295206859841682562659478476096379361527657488854704058941291336714492859166852039351698615241682179612857274065343965846769474215404057583103813539063106071804097965028888231256952958468598721694655105276645057628711446308258756982642113374597907093373105566646574407426512670512507430501716268327220084222053145305715174259527254953510742124935769196411239327378756370752038770915281819473876689711944000190836578103478364267892496089013422422799797499406890054309705712429827377882774587967339737021090408174605850313099966459431485210098072792895348885187078251812222797459781005269548648383166925172377506638053051028437780495727040308150154158972872220488246880068152653930626080182020131027868050272709950321114369979689461123985973883659269312946497536855817323282764792786197875071703186635226207597381218258349011628886377118217848137554343498502688836767561902787639833242617821796032799908050942968811076109017041707411459656226160648891503595826936382004269791386428988357249577740804893580198656418030802813424987765068995711925192145813148612453335101806958853048179400808778726367101220700868112904869815782550716093460058149845297292272750138934612319203234653803819341348015636115801067621949029960006636890336340655407156754946228432475447042603072628209275050004046604490470216354227062355577003385606136097921324381817582750031265871093939397907693913492377296373682092725014343516471850443751399811645455775251186487856830901851688428868697641921485946524323128164421239996130678368761002255459699433652167721933375091516474061887975485638979397787571810370479352104510662902745972165472052432330160990411201046457149109647968355365966817915506590246458575899527295400026013126801182172099002591897657883691932286619004086312342831251076992595681433927248825440690144645523155024234842214018443378405232310659689614211315126131566751108011707652268282121332731397848449944317499129975442148363218545672835807988479169955442850018510228122783051220227087185373724229197771412379485545465765652292836084853750484083770472720048445912258501248736532898432323158482728877528014391180536472573516978416672205818050156513808462224431390602127624046400553356457503564859917383939510206586877888871355582779950105228721035066488956208570999085612940687040177344109594109342425427528077683914292235677914818226921029782643964031727771647153016312733741647232475351095671163544043283548002027604806031370895451298986574283814248986961667652349148534007132393447239500096811512961744823209484384234377525523901551124922414936067595409106106927491508755004281912393753037052345289395777176857973272391627589072617733543886897496475272106437076772559240286790573961091740406166848662295714850814526512730658792200813376714684306147942463580779883052512423051366671553609343515115068106259857814960406748361291657982342519784907848515193386191844886458178693646526310714612810518860167465587909624222249594336773424589671637705759219621941626609615885465701914572081240580853676856432320464728713492129757095714827086169609714065404766767277851753577084854572130338631724322346867861032203929435950486067174632815268063439813660303069504800923806216448150627597174053824759254332478098303790382573700250805054830692744353335074725023661676768062842074166353324951518441912981667644984822774168775148425750442017894919174248130563921591463422531182274003510786314489904705877138273260666929308974305382665534147414021183118644677610667231486252305492324710668509462203190658592147271674891539189412190696270631231345277266403970302217308133242767611396295454739172801231425672554318230279658489190651243379649635953853020457835712120503405664290719549179511774347144923169209062884536339937689737992811571752530908827876867093182172161099271887037054154745664860244461775262924017021499726725111274587437602504555178133153617769602344487896790894282099855770176316780232012903112882468435653163162174685282793622114208315176615199363975452834826867200045723464631630255973817831710592618309709741852881056162171696037222015640714619233641224033136701382280011036614043007413924699854860123476568520966864030516884403573350484376101095879227307260680975097702447542230564641768601478605909794555865821355172126170137170661511022754464652460390878952225633398548712022572964308396816031464526294154190290273313891306669859216004643561887074467095752536853974619349705160319999148453357253242026722222840737530415386222874340420649475061657643869460815832143575931439225163518181554698984642168007766857288207759647474676119161586625617260476383476084576182013741463794323692374042543154431836370360187624358283236538524722404969519585230219117232383816169350086046066734845855826682366942052638747153597850826450869231244907946176452497613636695850138548402501342011033431510309882715173036299397491211075626752230289946400981562796167149913820901263592940078113051621400017093396856459547130412864722548254748684273291360261434274989770629499828180168454898359182874293436162357439833945240537536049412189559919902869827222115842018379750798208205612780174889468712424331479779896605051487903297706828047718744422492675328181520510126601521563319766079096277418411404655667341344995416252964993648833290966222985291929042140325885261039279384203039293392651681737632339304039695198791176511740867242312603549380408571845685828212146323266360301217637877693957813003036201754958616937272519323030791756387374743498965565027210668866569338481658967834765985367213541214588890462550740074354161936844046185784992227280769675087875021755310138992632893795681513150869293387937145351970911643734457974570096092651629610314188118984368901523068111083201639002365698856460988228056837142393152313404962903905319210989519844855813171541273174635098490228442220232638020661923470614008060990491571923644664499131943793948858232886145707847658506196810972948209833119154783037337773303875148497062287665009754648350337209922865319213929706692183947790871913533114217692643114710455492261959609054691557525618386966639119941425915898919909303353616989060990053874606616449180493568750678155157268885006147998283973338236308833131936924855150447042718352957600950146484032710742052587147430890626352908373194681507403405106309269964460643949303444100062231056503183735566636462851178129735263941543515648406073841131296637849204412373085152435189118667156936916260927873119009602725191228430907583909368579277796011740589591418644293726614556206076772021788326669147696334240660532179214897150890233345045691092243653268966109636462815023468963616280882221650827274779412098027939928865443058559857771918223253193368389097338793531192950757442607219448983168588305028398793635676985278322253887179367841325073159264688730638346542883075118722353373418379672324359450118433069144623039326146283508525423000056874397747286699139710645631828166014052144964897746011810487588067357308872388768983177772104356151784618472757565100802077189880926388276229159828501643311354662980266356235612978257069483542028538804470005322327856553959196865578591923412294586974487474688502710576806484679454361784670715220330796248396728975575850748169175081743081183776175397972043700728514282821722629676175629097355448719399639279920110404482850339100738070453992827932352750813762895630261189936219626865528225506457021448820068552150698006285231850776763109201423411676986979561886324650928739863232523651981630428830858877183587849366969413199341369894110883329470973534349811254563388916985326741714099274480231524606570061683086323653333136936202202916557289653325784973600974571814520598282758233243123172201733917300076352823839835996890759390043031221506378511305138657870868453618918714107890519555703258486957554164333997115877401671523818560923108958226583577812367055684660935217154526090831604903162850347562387563205395660162359224510838511008064332727446502342435341486412610433207796790284019648346961396948891793502490106222481895474480805062169280522681683326279333876700601899543175998457723508339659716587371616882100054386670189354368002391225918427471838942411437463105250673671723961959265226451254750549066148435840897270927017608424790444635632278174429121484414643763678143808077540362672766845829246143446016228401001376813426082821539973525947997221682507764889182876041273111605758123158929120164768305375224507480681858593320535330314909750537006814043027291932486367892790319978253375000341140448703661545094641034385683047700526663891807598627230238411574424351701899633499715723268752589519451013905975214170506241485381472118414375472730923113655250698713209653775124405007595733060655590165796983922678054677329408650629734187242647927511328449298290679089903477211922423999050612821852701273629139971236352384292409156912679280426512425418131595110588949631523100120690730426776768324916583375548357137736362671323430019376146762936143227242488533568938443983469993074395969132012819844849265414514514847150560911013388064020669835269153056589084738275812352385998194155522387880383283438227365459526963060479033755080800256110818830907791127562986769821738224509889325546729166633417063261528923242431002400346823751084877551603192385309738451452893680186426581802110700793146741569261793468538225769487483263118458814916770929401938012232907380009712770678537505882364130647284754786766791174533547200816512490189367481317377659997667312010497686169681551675742884498722860782718919932017615593963291976936960565728531297610633108078774419060185994963835420929182020393027634215066277852760395313320664630969230330443632575651379094506268765686537136427379294291671999846344061013268256425684550629048362129132566984494139995861925868213851941641281449709676984970114866453592907035738037619027879496967388292292985463037271458032940240984558741730876300657443605607446015741036282486725236736655731247978792413967455475637049853806871732996052220010210204515574212131749954609366971818414400897224712964361891230190067633184398805919535686031126175440281014039316780018228819194339053792088422864979644965603874713352968742529988905303112341793252169953488738665837186019074022532639651172459410407214991042434143656741967083173991451187532522239445926063004208099349721188684295353734078444668810801759361871150995365136703780238857068549522849925831664234270388505848459779378681783029666677189625841655096005171874024049657382750947260220713324317456278018215196864062744532847689615776514138356180588369656642735403476101600060080054652916318527953997304099241447766948644525050056785137829023859597097138090745593660547829666846094236633720141975540130713089464732338434860790779135643143668400190160652487831888191736880440403868049002165269580605313127152493071452753402758628478106261701709980429014104241770574282728183748696538878675225556980051862949100740773240154373985955339416737113142746474448306117817728069487489366090323291745272215269806507746546906915111291181275526398316484156926029897841063767804571540280819198953246083000321175009712284793228313922090288697035334240070111416031471698462825052068321858892797543665503411078217471518395654932169858191226893380129885157592161733613873047265434514253912466292489172355372887903352432319722700696776953420977494136271423935642176561431941952688257349401671185336962370266142347975000781635234902816458934856119962631811318048498748078381300079524969925053341427910124078414106716779375225257281014119952875097786031256138872547936262106540348930393367233756257803199578950733226168847205061227184825185487669617377426187038261038326401883853437278758885878536144938677944809620648099683005303305689265575902990580467777933268597985806891548611954653978610310634267437050392030166533723442879017574525704976535504486361669302705205033056199514784116835250314662028627949527106174412424864491937305442351551528874207639335280311471938510688313911466341746385347940749912490824717232735692454550396071221343238265738471401629592984851191465814742904818614369309051537455270953702892528773057106276187684361478323907192332103329305302846419159865506810539836397977122217716579990378265345633177899622115304370723213805624863653993491041251133148677332458046715790109142217123401008974323122066971479840585680998800682630430584849951740725871841675525007125403282749241468337415112160728683883492693634480390343948129905553047960608203289030731890765530024619234837673293952230524685981441879958777049804328054982369745430895649415358849862231969116479663059542223592991047061771600284628813331594989821598436706542910808818978196609769527616504040328205289711515627203207349992173258978081212814869540847314559618806606239637769488844866448988767697404040315578081369922021627724512962412231952763999493837252990587757093384680459796312951170814128055587851779160928266437887377928294978882901380234334588089703066021536344585277997656391208622946384985346031226460556173800137671776926179769030652766110192853433783106966100763038915973989728566188469655938884479586035592982721874643172861081764925676140353913023501430289683765172855724457396622534853472579144049963719440307301130193706716590388591864992814970371671301166254699937117797991323268982596412714659227553423490818894964754024400861036731246368513952181286180716846079408638661826338203519820174546527781934007290291512823422868828317411223335415987655302144931446929241512008951837737808007596248669102735571986003784867484250929890852347596460646898331215564226513738232935828830073824674201364873323964005891080771548953375712818839122640435902853657984942962897107916811328908340993141728795708978517980104987889149794899524318012771155292199381493051051848435989709845708869145551691244342911691333198295249983629968626169865437428058191242787983196923030237762784283847980737882082218714335390820370521953226155805797391068423516082661640488284253866068561812920187353446690202151616241469844256792918017598501488040121099104807824319363178925423200917139894656372538847872993221778060238318240461973338689663316907278441071073287199133938263262340418598057503151768799143960567915240250751711673530570129762763720782024810711874198306336513317427350313500335141815350802485033615979245456917472798215835794056715372999455116903515691517597880349139146375989543282512962005708245990004034607702259890104393505372116490902449414685184650390805211326551794325179150408893872724798885966819514650347181390469553237632860637484779630992738736104184001627028955666239811311453819555726956291243895793338439965178334850733971924341770107823010626522978933345784459118562874732157364060626169423402945904122684174874707891521169596810806030760217384416907679798119874240925355306943977923085191799892456470847270051134690164459173447362323107032994418417423680058656500133151239654487785602953718847888344120315219756900830512626069887566501655824521748035643687975311224002933331698227203965122482296939144214765602251248245515164090660514435359982829390062664560335786827182546944170615732919953548679007716483210655011055074598539741631038796102941616184172046867506930989611198533793934881915776034122682587480294142393679626356015161196606455869619989427075679178289599227586370788486742676283278117411979766434333452649866303981056033169125669816918710685491684048843325351135780806341248112398676471058276375204768097987239425389752366269800355057921061715653061615290631448136175953109034019079240235391086170005528021176110949180793419976760556508901757415973285379251395092601181152054863282090948984912706291560879148926746362349503070311388767474055984810045037839919318173807952605484532009553154153994922644134829688198290429324962542619187874342958597451460765192288565094469632977221056383176133412387861547104693489845999471482785089818046483190270941628189202400802244475441656238914310877128634015066716803383931011105131256788989430616089415651422170330735351718630720845907236899300035364867735322621199146605911982119960064007735574179975733424396309920649705591654151399239032664242465718115809832083693114378163512949218492725060399653254541018929290846825592713580136037395568652749603565468672307963623898285038326199005651062383097006408340138616295897957515140668541110379706096443349202593185037143008925943695840573504621426598506547875014173645317668935806973232657028772833164786875524649654779545318692886545686138330317459054825699161308410570157891694346595574611567044665844771331477717201533054351508863387028867214395561758584254705634012233794762932328640074367585526466838375442387525192241193001599364821526510731531539374439696101438858547013161893200847665056016235243910172214071763691322848348024835454678547623411308288695163998192006929168629656275372526569788397233416107447984866145483920466567008611705652742466018155144206493054374550587465829272258320634614106339280196103953873112265434924126829127762358477846333025389723117000618455030858681788841277105353510580695840213074495957046682985495943262466623125759326304331175523691176966609388651434110216343062452576507556634120078496020694717255573508605174941613297116581960346139503682511679004773223035706378043239914287852371132956515955858850829098773863488670045118992864095966105410419197491440432856409307851684857860647751399533496481358581526689249545609677520932060652322333427125051673973373223534660754593410387497473973538729895629422695192845149877716842368895784442855871760814913038564474308914662875488739255712097371553879411557413065614825821013181138211184700642808253588705530291074115926403044572091211628050107145345181699467497365524680561757338193234001700936558653575444465441291903778621450304767180181291855753347473224290604092820291615348868315357873983556104753781375555658419464400018141716484697672446297686333876180484269169273715786474927781054593467910801950953199477596935085497122828374934151769761781679323029171058263279191934562561531484323515184789097469378160579711851778919595673316829466096206658638287871544508946929846842846991384385057968574578140078686490536284109499265759981128276571037713578590232983329383906629086809636019924942163923829334074384989840432074474784750894082025577651291518391680358576957340375787065580032818163915036228991055187912437147013528934408436408691169497673046631745307460699866599256278206508145428103468051519586641365327941291380020545332343861744861106383613319716809315046850782091161536821272530303992140283760003892533379052178149368811390258442854387150433732532510813409947383660068914999844290020236007659784364918679045276163767810320387208684879719317068680618497673403649167997235534064892826641082206267657745142509075620301884103632725697525350125814938299552524188081537552819735320752485218145920574552445345962758127395450753491812704385721156529943461623622037820920168468887718099246712868558659615955765996578877797460892582876263326062563239419176425283271467691410481981272694651994137040186869000153825037625527222625316690684075423056361986222030756020583778714387911330119948087877636630712590276798646541887980071767571787826251727019132881012400065827979205890513842054313446123027932663555383574066581513065464305522581910652810432553819208540558800430768422394764368557757687126662788555677838169181282303939086195049631250365249477867953868482015258645723673304441283331626467610203684144357156853557352519886134399615992726710991894391189955326475379707220311006045714923654787754928141398853631985864905884334480333104555572894688612547252830416365397821321655873032037661328981585558180976042485684516234474634786409330742652388721191382874283314187333848121614927360982363121316336793482056818643190137814210775898292803790317961937404436216930711595981753481188170859546255920130362594486416217125687437274173234361542243962613920550972114838391012949049646200748922212450751518386057090230847914531325652658810694008537173184440423943063036386225986333872273205629866136127197579091344805181546289354084828702324973563287248810897480759219481826148699809469059576854553914339735624225310178860447530990389527415550419051775322215460069820511253653229951375182035777591042651930289049235610317956518430370788076936118845570479346384287906513176103378766121551811383991625976504478506177388400644861184729516644273615071575019809060342504415159498584002068222035157082809027673310039691364106361407807747584852352338509021357320039974405241530630933700150950598704223408421205735963210906132343532720696715672839709903486303219925072751824806370868437340733534287316568285816057974474421780768854105705815387566415658801955165020267563358976584355299252919134448996643757193959540458940857050227883832436515773755952005320541868351264055637891809727487534746480510053742976761940131054581818269868706954561870213329655828175899038946463591258737820461124201010940467977139955918901524022130855368231762927916834265811483481366254173089780425347035768452391368390220876406044180565784769031475055891301634546044455869064837900321558606326913377784028215347381593872775706436520981893825519041014673011940423895192302372129254980476613777985662312485061527880318125415506441699534912737788679655894507823749923515144212389809713460328523106635983594385544709224697036720950914011933197367777841770931803225440329411618090516019630177618205507369568504935035117170837134916944310194998988961920087764943189991139315733411364201744260426104118147258111239990425653122977869312769138237898201455201216054840690320133709046430098344284316519884825012335540022741090298542480287434121493374986077717372503954870836093580638113260770130301648862070198682799012503511426080621840548164173556211533128009862079614890950388068180111067530150586779409902545944191786703096502611809959049614416761297725154024075196643320565061830891980487759295537922330061245754310731786679581577377387138031154665110960272886202738063334718316378681342612295715844644939523960421763923179251564486529955393031631056976148567559946347148151335696074349181863512084514244722335214411228551427735114850788245212794897188602972476016950621879593682940561124241561668453064687364454796075121742125242817166528305649984687791351082265039290963760808769530814409952869930905114495985041106391668245255540220724296941382244219579522133681111615341764483118926614380411763908402661139337115796246106488009260702066418251434845215037705851541477166526128746446682392240375335594911951303189477230691205810905120622289570883093556538177201427320904306329787195853227133808537493898785246180545254819034272795055597864379795662930492847518167063208982304020053844814545756919963981072845040348409386916698146101358472851711127734977072755918752122653744441698456718265861104916384183899611753378392360862245772898111626670681570000181844870085529665582036807239583837517944491461909498897834249399858829407588430875392952999842831524439109489241905691916744133532804920194882671362452187167226179183870181619333588620734067017731790318316142211641558733806229542067020991927672352079899591377187827895374098997344311592170653811870559752372917127576124402921647680904066780226107746972126523336279123037342908647072069642277869999612327360759527115237498896309862023454407070645770088194607359116409280306217259721253189926612526189548372088061584373592013902981737858260265807668168388213406399373797043483147691406761044695498079222810618169583935952749817023789603490901501041562263134051954798069919020879464273341440287692063687983088779590296080410230952760907838075031374258682200229910110650194192169991078191681069249096010898551220126244546729873523349116511738991600762499168457181791765656190997924867082346230528007707166734935784751998423409142203495153702780575811232598537117623301946035009840296891073925014327097219683968117166092144496540073139454658714463466553634656761774138157573838000256945700394085363363426994219902580419500711283601843470692963408728665158429015916311813794666216224078586290818924033312263227497483421092603183263034476995991011954477540076257306834576221145251827028522653407273056369343276877107483789922763245621600248430934822175242995102590248178654804956255192421454737248730850320051156396345723702402349389772985733605681692072757815878900801561562090320868363215761181166355879288614080285885655790214915618051566369822012780824183974300281662239390239158346396614987103420425278991650860061476541198389640611210008191160224327997874336745672266092666521687903181854881154618178335075935627803072686449537843037458349720476354752832980282152358701194666062967789719952550246115173660922606398735875544631541648360777273317141343229513516229417558235496474033087022940457154757682448857846834767983113653595000592278313375444108864477677839302444647738252257675214758170885067083695813991188697096007379415645589516988284366529930033628783942214017090546843462408942972873584194052556193056302215177581103488258108537515782675257968355527641873073663274716696552068053529317276529130408792728042804607822925868953948744284328382370372055328602855256771465171807124383042137385517898483708360941482510900174124122613342322182452616483644216821243414937441308162303473211315996837669633907270303924669870364896395210881731004391486740933677449689474585932426910425056424067645094115324472755305858888515487888264915541707575795107257128392757299098785979561664606563148253551967692737640009095012859311581309126582165230194224808903548556649151921281038954076824866591997717643999708952646048593101865261890238474031419570039017749287140483827503517354569600925918390266869631292511691968577227576264586022293174675690664689065567253813041830397310338228377381769639293391563543605744869600655265650065113071620118182202527989828556935206585870369810478968741332418589989765579383444911567471676836872850811297110187258845165401128120634062989766425119832995749524823615440448673500654891505617126018411232277065640682874843816419078852202325500604720695741526529705806693144184803535885484251298063271827809404288577542399387786559074985319325195500724959961762425427366893071694125023493258480569687709106671560996187070543040775144801687452678641985441237851342957508827647992859271065847500863829058719685422379911917144312134453934351586583677602057906019015049376173117738511219352370774396529624552446187312964912870304633285174043491706993948664411571366595307661033123982564135194600591092793670019006886294581484468733829046987478262547077265085629704620622958302047022661357435378750537117888736837088871074596679834439257754595922048843766529184188184521865687711616749287198236141236421384241154698571182739972345468751192250423102671622503798423068570083332462128603240121972203064444374660409430478541270983924014433219418356295903389510928496400333025185963113853348321408934444211183561934093252974896485856648456531636036200050718518284256545163608663857967653618013368729635430092864895268651887466391776195589582618388404660773428406990044495533007865381197415835016524622445357973480273150312777123831897408204482091438470503761674528211928198169333972694389391698622307805042803907919048622453340684069823158797307019407068585063088039164030060891075023160083701551412670159959533961763807732262393152440540536359916060756168718300476534663244923074109894877308869556518232579943519220406917641238557000085788623964274089756208469838249257412477991356136357853491116509994693474899100503937342820353292755250493708780588567524191743646440072129765559853934830602328683207880452847016354655147869904845295469138377037692333390005538933923682425612200113198664798167053776225922405705407513738076843501724394368942520583070822924352670385066273862214262203997526231633220757435899089407394918777943403140052210741670115894759704412823345896130577671652151547566660863417616900620776550630710560053303690496068860015839947487161065648481338096311423156941436943272383172070935381464674098548642730342658218524247077919667672750711160167721182496701139979558717646684281151949551418469676814696712777172193656535473750564186529090157426021425751477919249232803282221751083382922244984491464089940084039953702804911333556761172646150242434300814469681372326012660294275379084141890317455488354069470935537457497714679667586126616451824428534261047577930119441385760477960664222934845000504366665576876515327630721959945602031561973281781753643454769149561858919419469378088933136329327183109770431440122696661483766691088510320649576722612508567138515583284165231576212620183671144387951893861762820609314557058709102855345655804729911010633850899785434011567237227241064623240233192199154543251016446988411089223829251386612193354483455570841338981856887255096552959218924604870490223856761674855361618674259071531077983557875660414503319697423839982992426922435860959853093378676098457444160561778164964001244617553874144010901455204168006824614327640611615247164545681244589183861557272093624101860741466273425833623921468501367865852450102162157436088088864383715636963866976276752788205862674353582229892070557968816806628077077057146913757434412816468601019193418025235495051048807570201148571729257914004447303043739718514497897933006495125005792770574828625428560495883538718276475312549783948685950528031881459647837873067383790617890263386517969230755715499141869388003982502838120712446467909805388885783099148312372637006720386256426325633627042767556888708873197972742318070477904008918398208258020069752315485692449750117513970565664113714554000994414843710983020590558184281292043429171066082270750599470161506559991372350072363568224811570195935139877175033330368860339391992437838459648892432339983939109380055786944434353752685290249344230944744224110348752218911416083337317550303355065308267448594853479362211575656056681867550472101250140918184408313798942739065292468418926524479099619990967591427229465685359208513163703253480509843546779876991266148767488300212603634728125138394942962926722456813039857769236793920560408000854366045492519206693979186859211638923271910558061202182911646834764228464084750844702393217096072449475988904612194871215761609255953620475054442716140237667435646000772480579939366261930989862368835010924730059673544380662704682052257129560312320837620999235781070617882764821086736441662769681182053253474782459789136655522803433417655492484473279652385900647471873376483514972589755439630570667295701665627417246752938766215089815372851309048974340053720353793760468618228461869455354960558006500604496460558599534194013840926426309254829278535945525400371824852964587435006938957891615432094770301810306190147454474258649339896957429607407680065898971383481019821825575951943006529283132432953971117254982704992647882186306160001249803927989720531011480613387081387677592505859883514888787482017614585873122385991330011481225488532163374665990882295203834731486289815419404544672650229426578850614019949899335402060584820619844181287221642481145908485588863061896626333470576121000807615836427148241167402357175445148051026228840716031180620616634205936987140440876187209440219706904526545154342828999411661817193322213127103667076497764678536430873484427416145018753020321288209225049294488714199308384985874129560358447430243434033952962698302711834635521637489811201796303807758381993325912670786702284557980115000422992487369366979634442498452704831358502548730973457022887104916321137139134301007333480160768033927287981504562333596263603530215430612302180587243144168160857236689708644303863242777830657469537484109704081132010641963592995352003292891264210350070329299166654379141696636188083239754165557659070939060266889240908090385432582867879221180150884725004465652904886084051927084634066285673194262579397994512485456629534692445935489428405692615230515954281496627018156056600090034853097618105544334287774910768937078203263535070153869259905184213434888555191691598174809994207205713130670681710410686657079750958871584261509672885672844587027280319754752053774698741171102060127821645193406243530652990317869598065421606677794860178261030967608596512068414830761195324164073567307623756095458709501687714014251057983797413509238486762283223474714280762419370276563001652256704296933512044754055146378708806907360739971574038729591581455389782222256014834873410608261384640333771910045192787477475958648634999987497893005579040507555533222635188222537300286101714260239414341389647345898927858364354412589798857916159911117581812906958820940641212996825676047671918140231639658018771055804179080877100970296150055339511243573702705493110204050955881695228577599832121540721500304163052116906772927931162318956211358179064898183357573167380424608891081163724736452945784582388170304084852717016485830020089342403503489899144463700870139283748686713954320437298460612368365251440065528062035887794159163632388753195974959182563558498507506767235859062044008067103901172930967512163711321587223961236983112707769885581591897238027105619328906826976187890431697915401043815861143303466003615369909776966134968765671494970687915510059113674132159605788030895036791614796400935832532332459335854228182258040326681785725999127736627206684353928787468224947691558064043939463111252537940320999392328718537423115184895504838481855687739789183457863613288323370988859444294833852221565130129962456785629034703915982936299224803599631877524663694303670733700776957844217993744090368943822725481458301457975387732969046580171237402994873415391287354122573720735861541850716052793132712661685455382873649983319027843539831746641961693382280983143785470144487326854244085824888404867719486300150587620691085671666627394663240147212780086039300893295259637170763450108425262531276926406661991093271825405511582867816985894958047283715555872566644430159251486266925991999213903012382510624950577611301245687844666603716788707427010209795027621968952526884321954444306457961743614088794796567346424560797099731119781043940197288417199466445375550957717179741279551981697370699765493930564808498706100556151490820435664448154514781780299986000519772063873874398859902766823043643110715359879664019551168309015053232439506954065580226879270644434366493895281706178616219975078963311421571233826985448439773860894627732171910227406736857818822217290368012213229656495530997439622960015933237409438081365132442847344663005503407176864040057630045483472132974627774216891102586637506723660370477038611780037306897034337438030119045913608125304107304263315095926740741227044586826732444096026272582486366217134662153352851941176088835535432363208295408681635079172033099790352480919758831993239840583474700666800603480668152865331205392174818568811061160078288850379028678881152963730227112908116360584908278291594441950139730861661764328461140731059259222963972131555019138896986083088049623134931091721155037633887361463392887547150853309704924977849591233179594257520866126383047155254171891993765231893193200621666585464887974143893706536705585567409294408418793084046945982760855247685336301651511637040589048949145107931324456579731306442860200896187833764705758069201079979099149101398363755417066476090743487229344637734356135864065351624908907942140812698622439753846979502806669656649490551866055994229995439068992639537498209411027967902531898525359439517349182869766525804866420513304239583123307510359026269797475008431569986575617851741019523566175761806536254934531603174855892734776943474520259086038404219699790652488970890606527548360232614853711698368993629471267565612165805016581686174053932728818974823886607247819855869883522831706309036822911962643679320637679699443975116420907777413143621969333862394982830536184943563525593296860650286100883011623356315264255807064144480812540808879722725056497786966575780572107270324439968439282454648457785557668957707827007830232578044046638709247207597779124454999617663176360102442585685785256145504464047988486058676556391223417521150843427769177070648120068124630299282460466785506810257776101652148891731105870150535722907264700327258296276471140980007199286004790851091620520624048224432089560280922324491298910095271485280115205495364036999931363138039227509048708234506555682047131605343058406076343915975957277923627308135118584041798600523068319723977251989272572105815506577603567565135656437213239329653752225402118330911298440376192476698496145941662247297137688352184281354762901725141970776251287924915476491325658150010160783926287840407140275319624137040459029771562861422218355758474505291985028046935458649868452825925813270441743095891119205008037132811646074154661926414453283981032039457071255887653736893548633883088846293600120068498610382653712351791722239683541809129485223961953728165052341765010081924255062378266155096884569871151774161672949619425540617779652392901367642115932060915248884671816849647850115544676053746516987620854046451312747628110624833503296830340573722347409087219097042651898676053118927432081151038331379117645178094100229846501643253259940384044178300518667761823057227739654839099713189012532986421334024067942964169473096693623247705877390657967633734650830564795531785632207752108248181706337805845453886436286715410873302936773166296425682065908104139849175610524923771924539383346067789053858837072891237764002813212347099124002371384134422847341788299495650996316432375709894472227371023493351660929506101127387207506643019194586451151544508191480141888606604347162851459297006274019186264990140399046869711905218629963155593847586488385594831810855118558891403967910137837677414187135477833500174900783925493428774590931016482026136115734253058021137671570842001704215360999273504550061093286602198963800052426552787160852898545562193703536484884317581463666881633950631750795731189787196928897659130782969049382312922696522232010462603617527411914958590730633660529828847454234094095526313656866450267667846230956112126253102595498165063047024508162028371005000336314785398161269148689989365473317267941001220103358812107504561375615294465045675256921342840331013536205713542951574244271196042833514273091258385510927574270510505086676329150805263665127753434507234999557311641266075898547850885764886686909865623313230703931227467199017577076321271109244608387649584853748327756880600623164894248599573794987439508294240983862173807172027622486616128718932545224081904710106177052886635422409800857745167763355247848993348044190702823194450251187492562860374778293737566659090115912709574514047671307234259607038275285627583790531912824281006253723673946627208515881488147465128470783785772755679177763873589025968760807452840967186459960141340481051664971190916497194116351452603855972738155008823101316468161815996085376583873935501367673061972689346867643951990877306980988672695220760804385772067678164051666604953533342578818461657619353360059136367421437561458885156077666110228078487824305226357988224291097828394355066942043144855525135818175243116726475038203493417950912118412895046976374961913833869512043816376978877218691182627988295762301504840048668216700987392600952344427955139890436811406404188453713123207075559499324554708241836547710446546508937923136616985281943581917242630929344054263629408220949485134452758428875577969326547656889804030505361497578361571714258451587131969126594524022806738585725045366038864479467472800083914897361506382585945259371324473555075917203813359529756248807691128124350419710010002620240216817817622676471390204163465351960883151568333169175806140450213454563253546912978536876033461528713588497918165211880131173988038875374648686145777959515399228494528828596557842097885022680281172055334634374505563314212593346904067044666793564761962205810513125449866974344292996988147872233644220973082592057202657903895616432504459299584759806208273362769547876469665322565059631994400028828926572990373343911457274979780692564433447775822313857972088691719613094105158350620940648982886621249359906508810068208856304721387026506662311304760463707674455150248066643783199730166520182194180483278414289618813821882214859497999023715213342623463836669227971809009095810247338075809042826822377604993426616971791650785799446043275721988139391057657661738401520907085091405047131199811795936216682781724257611016566906238710399928300389846130263600115960282806019360158634014324824129052703601506719937928066456297186135089537522818518045604532885901870431020538325914298155963859873747853020904762178711415015926775811655684755384270232593583264104701864666779557578439370708046925583911957136404512497696175232717053757180589060413775540527862418275787883115729551400683262058020651985438273538302609642036198964002638506629395297851211461555367950422292231415935563290361237097870891651237455237783587734535905969795813218939281414253401322204433919518240965025095829760777974321847543616236492869786111720304527241868835166797650254698228462468951160939783150879204958501517451616774550439512408546178854002163340709656543057652537264960992578591919422089461460332664913209720377356344253403473236560200009655187662356229395128697933381534553043107560739150455333025481732954139364609974614221745400184928870014710841222724225501896962037863770797345340474848198456925556144045828664482429927930948867559762718402470179183757748211589980292067609155429049239127368342798932264507190032781255887313521656056497381689787416165483181358256239807363677379428820558682916665483352299587945527551137084718685136292935197860498284324074679131546119613313200752134957821544193112714187386233850930486737537059636519808824707046373317408506406514944874255094415883398929738913601688649889391642856163701177310480619311580308907946134522036637002849478168416851659982356286923767134270604159239007618709818647105458499041574880100009517234451198782991870297247663266006010128720068752685450527209680345049373661421349417573017387454281567087884054572192693996779479147193286895316955727476573335733560560117052855770771984114648951863012347190014195893207144047584898212929359094530343177436787509842787759379136440510518462046264102976581607758841800084394273003128773372787487787855836791009013253794193738221987309163590515138332517425810009191278005557074956698577976013092712840168109479514051005077991547056515579287167172978461426887425699386901196478010020712644815504040535808416606051336825712332105607995239253093688928326752311331172210030366470761995135757338982917794561963649098735937752909892727036559878201127765794382561691127785766390191959603395497387368308052750004613958839971596947080591325638468499629993374709348121333166352795902228901643200823696505380444160649517734530462622993088219391481530287152298874970608750109543996849157503293546410671189647758599394215733647867675185601647876732257570623256857713017449223150761284325581325391836457968440153997301026534875265976456352930196590634859541126511784457358777113144600160839611802454230695325774702858326343174426515600408292297686543456967549026675221510534523438091889982894335665028150494201817615452051827541404331795415570326435063235767973838915093364574821722398357032840925486078404373167230604724351365012549091188514839109798472056280352298982969120054053428093572208425661403316394393205115935985162980976166936302991231383071646456813724343919021850901505573867873197833273082513460251925284495226244986123354380448671947335520862513014075219906916081181869328453855669270466610526866910540112091654065086992521097895480438890766361513066884772701320861537941707950869510320986215536900097847417206977787307903947577838718670863413596161864830680339091392428962890630223718740317993001156753367337448028390166144462646587853820769495393643908754989620054121868490041165825217366519077428635709433733733952987182637305531764238400159956688144127355147004667960000233286559273944009586245649150565733515587235256526879567806146792318079886009442658553866606018029866441429290564265452543976216768535354033535987099844708574100198691253657749485023226740850513626202750850147132803730352120592859594084844650987704305982781676419646518374055033989967852240527554498482042137711370113250540017440387550984365195998102144926749604109951473614372418062215922162887744426466634181399400039628327301699508585791973744977049921972464143966731066401540163421517489680619715458268846783564368263471394649637553209003892115132249931662647078297159482866207616535821783919052492974015076398033748964998662469668422979750221157897895798793691121479749952756535247222542260804852393394748403440607147260839074639925410872785590080900139322974843012345526086282894527982579491869958114517536245982472165307969811984591986113155128661708882794576621356876462353446507607774639444981345850857123496311547009974553039695627698155463911731808600575084801052635592508626747822847043865834588814371909578612057790049074182509906036343145836634201898464893504926822499343705403525982871681882951908322600493674184235383098522496445608630209489849728253985778014188250599834082899569660745188622491381700130077498881368651935572604177668966724418816306901928716659245143326005543157243672996508369863670998490277655318950194981263298166589538431904918590604225057389219309121104915037659888845664923580221434672408830049928879567008894052034372843881642452355692504305368568223952180611764508416602820725296248289424533844641737274698823552292276553847479056755100443731521352992801072682851531036639027213135480445583311971399076764339409525151379558806675473504364070806359875567981084316541414718317080934509900734273209732841708227770670441373894888354202555850354786674087450572310769029075198794022372864921092948946393537661046587263064134743381787863523581724298024081282105781514945711396430731501313684981971215338872755302216631028325664353868208224533217023529231487835016213612345950074481140410876849013967980714324181927947270663925531279066454552596715567988854789525758122723179837537504856325144989993744697054636048189773278973694737421478101514049482003815990957389038785198924170542309062016234977472073373515885811509249660511825819382698088883074878210997631587691259891168598684668532635908609481231396593385161766461423433079568679680025035087274058956462563866067645589712430994531154986742433906845689659023537538274723253855120202440787385548517103950389186915585228597271522390191932477524442753983208243410778388378659704484005890784357347928156496639507753057220271097046264957078380497099341209124407908457871266839421487919145553800006919426380999357222540902945408470417067610187536387573759742912180002399184045137508900474051696261573784354409068423773545767357103012719577070587964678144294317442167579300677244639322987671426032360284311111761681360873175856066249431331433731381161543660423952082330829456294330178253337790631621458948842450507562515834981012613988574733153572374520144865324131359283821673454614294825634500739380092730432319645939102460379073253241054726147747477268886172858322534150201813433226531771875276115870634302449392804684123379788378122878887750865678599810967035702639914532362877992826263902038278949036746291247717555076909880727117608741392466394648359109155632135861713270075312692509920985352986630477171187615012788874777893428615069186102781878952342564037506736789111857130569642721386985267594944419256523647813818384764747541651768122276410652999526614052345249592256703522447143385798302799784484561528053720556081698178061378183059243290015639811834253217620043445226856179208804530415939041744381678470008485799582882529472680976584378427931014925774147784538998612526753413616877162080580659854977847273032044032565368019276509214673073750094325338815522125952191561010337761085536056902113275148048460828535298720359986611313239599584119425333986909541470170330305936930258640020084159767582497837608125762194419865124231772212073008658929823012505786914179149470825462872422782119496714641162494514867432942610775329109262041304150398278969708672781459185368385663365346263209211043071093720236793125822337499143549424919922674983272026023220852389431804617507895691004951253036096581185370572020633529481016922600069832231113318917766293913259671679307215666143635963610000281614178469452035716309513249765908192770340177350949165788959307656115018760338574194835928864892997827407310106177209996208063973052564405407708968925838050886643944826174494941038158191713300741252396470259784377370329227475213282731523680364486085574479897017121243327554801781767170524295599704614052869543859638040542946024100269280250628969706897871704204433698738160720691453382979094949427872252434197852755429891235131814820241887062920274664842777251765388065777329550016718994261926334836708344181147645091470269024519576078208682016623257142924208003214783795180462165881004669589341731609427428239662500847563040229950471968425256644856420752600019806878332779158072428323257624977032628260990656963352602009077486265300436989281270570199526523542062442489967567105967952272091514700419335920033091644361613021422924930946736162250002749202029818737839900311020510599671472041025117242524959424803640160750384800206522238881156072048101280341856617604401531231920799913285943710726365732842237092629816177660940868639295895957784606744257840652728490794134529997253765867237051174548083127941874923380077791777977602105186933220968932741854913985992880375312264150056656127463280374513343025178830246772830779687955745030461842755849699153616929027755947184782736319122210975137922194538905874336703413933617005463865365003431285864378277402009453227634628268532302345889817815651985500721296267331341135992253722294356479055314153137593892481195543894935275358800417684147132947266562631243637864196923979822588715214004500504408275959055356563831612582675556178918919012596829073568629068070728341992053739722899100618299171725932965614724491148650488279734484413649456416067646225926594040963792721120970862401651040196185982931294694242693107632768250629428147499416662670456011047976879207486305000073666834155740971592047420666706552318128505819440962962564818543830115657831825369798047770454556162184562984153887761370159076840066722525671606965411859560830698637820669654931834107188235846176565511208289852754611337846956647156638989161705778209538010123393608763970797754232546961883312084872490144663564149502018529315463967927431740338908214964039944756303270429832402896265602084784315328310056653910256438024253343228789118736233169635829548480346030672028706355608411859543588429452330731544100141646406613785955759532403451851665865234628205816728025507904190697709014470774502091637301344139651848947688042025083857098042732421436085630396045402147811160675396636377758646072092510979763685160404465025446085930691612478143111863788911179001341666450788441995934678227581937052272786400881566187248498118127756198980306534228074571558547681908829827596637410570088223643179608077947832132214807716889534517602198114374987922034159819112775433560265186053143242305403747696848628441154376576893829988690487703385346270122878760246206974423628314375495342019119684956206603419185416411483571434895591455140933306057611597550809241616690629503321819434857590789872074757721538430952911286763581365863207089654149929120244443726109142067502138398234588720950068599842445461196747125817552570268831662100858807337305743768775791485355800018490914871808167969070122779139328358661924256481712381720492610655409317825892786080632395346831041281754101257151269370077868101867521649336365481843940396752778136629184256835369970334868268752401779148886816924190987719096611490562483212645379907915811608775919090828341047104551923192958983742709747020287336414266895633582090440841261246861754124000724322567877822806704038792128234433697981953548757104135704600608316893102287072119742683745889365502424926002405335221602116922406935175503277153459141868673937480120036463490219920218785658234269709659056403536601972908690349012522590013027068178033301186598624749444321922359399191621032747358787098125983719197810537815695111754188615240552481784605050478742270523987124136351534339509571807447239191841087941326909696814798540790993925635215826135513481995097884054304822970112310570196240629217662016650236982744069542554462621155267074135299782591056636369660704771281486887661835351083372317114619055077986819063788545632116692416965459308017645870441860007234444031475245021886620360547381867497104428857458141536946765285758410943527181210906528897327869701325212581590492827812265695179221113527612597686126154779635082909665500765376682291535099300927337784363862334077808732487641552412446358097426982545714296104306847965252941464563558839277486053028661721655140422385898265156436701078506422868377593953353972485471674157893797832462079849578567988169514499570174059994440198597249845838023700296367330935820043969255526378737137361131867149705894696284547465102230304615011586235304869360087003055469298694575397824110826366062444444452704467607890906045745234046058672982459228085904141755871972496309766768784043030283911810275581751397267671738186879154551903315072676331070185226726565963271169196314426391112062029295522703671944186753310631922551937432945995144036468302295436478883033749052941371035159349834860958193968227690657043074752539251332638237153233350040764374649177522940776590407675183106722425859624525727551165712130003085400471800060180230529370128906674572924271045178437250425784603308931528996256623658972081221606959755451969090220566371707318135372966344809316345730671939429337047211658770973752901589839376063934764083281611579293432335747226600954139849355566838826123013168754184304810055017791323851702197392644841338400857424999590883955233652557298404373954361561666653865913945941143079898674523305055353983433715912020018686928957214273348927917381847910620365310603594028982144444417197409305930681858620004543209599047674794530170062314089577536049381250213426617430824740372730728256851756960196352204023772275421826318542048235578794148332671482046249685847059244445371868413492128830235634398330394905138197402262307626294316719802220386675728236468917746263600583957705841874129155556216335077984448653816280027445512614079262593462907804739398782508691038528465721570654268715942291674290873659156618411923902621826891886798553664196423739014066906860944593728899918987578773045045912285014749258664761128888268842424006373531287588503957640828232043034432877624598478039947141385603976399930201471419999993333781582605229708574287289592337970640117722623346233936406165068189844090697916482130886309135389918810215330173421405116412306975298776404050646218729105619841649364184183408122469185102586969310638604113799162083602744681799553130812890018693436733855534996880197749764311488126715839086015550858242349504228076411393222093704142871343162630870858481567563234656324038000080158007391908373911094190763945791695937765119505764171393114598776091682734344439127007005363991131344521057891678932612751184092508167585627974895810579799912743791732331304678478284095391658405476887969180968926358450751120485251577802009307798896690090233147018226551082771837890560356890401975466679868897436848327896596865015421320067307829349310986739557383463192947347637899610026093187821692781458446976376143088252795269756716952058204133317504505814153780439119077419007712761478027293287401931605105539710122340820062971119707150264044976838553562464146562367685873585509162020239364294142263705286941911192825920783224022408967113504815650622603657527187980850216578833977702029319070884715076720804763651930159448417804499418298965966628500833406674602369924368230592077878990339392375746201825371621152232026391363751838511636678728311894975902847455739933532933353480846217696089795422562826258701257089871151340882407431995984961295812187402171442038162563363122238533222894996522637905339804343773812456665300067069828611042843577595697850687825504312009775039487863431116312077609567816130023753902010935832440504212097865072608996352340144275006356077332602951167335587761678953143684610644891239071050913705841736204098493638630905330658763192257343292362928159074554551177141006767367035365094552634575459191034625282908253927478126671239474856704235795113070313670267923256108431061522101680383736909755524676213566754470517981610605946715087767178204599535323915333317966755753110817785357265200318406990165452432000004838203043415847139637007175509389415251972938831045479835895783810402024102096830756757390299101516758063679468798637360451163066180670799690933367529971343120422895424734761308702635225292180441404825855565729633784653720137173454247420449974055914894590952684114664712965672885842643500882061891609174202884367617808107774413096886390399400048793987372973018293437329158264586853328177165248423449063378369772290465955235738933762749462925130392614311794965549805615467560861458182166168831244828593809158847163303842796249069511590860804483941188676506138431046181495906243007422822623920080810850723694358266544793457627764883886271761871685022805331947660068914677514686472917590405615486740423520749106233930438972573613932356601208080959397528749583622285436650217341446701489232466071283926945020254245544448347370344742234122281263365880706795646231656054916982926677380211125359044163167433122235711326368000962141643673341615510631038338663980178859203216585780542044104453820019987352098728944113283001238040271623446280049153998989970278526559851749496303672496323371331859391762679804211118155346513746689758291237421715234337246348355558293802742626152485347959622047842666709190450725744367628351354256820569013295300884814085782032362886795366094010842851841454570264672448988791360511908818873020021236831450508351124216439344772235510856281312912926021475701750783390902116067882042513639408474625748520702782996003127508736434329531532105960607831734253677549702992445462217649228953655666372291448612152603160232361556736224036861832040159861849291585017100706645492076908281145087241490615731179256121674167113522320807037992912994610455562348379432647322433498207587478498905748385690674887050610477007059420372231518969174764740211448890318724257584970797476867895153177580895729677486933688401351717861641815268814437064319411171290279828222499199203738425213022075365714326451347561063056495790383316577584520125830479805549674226844665991537047131536735876917585793214947970292378207577851662859249369501266359723281048616701671791798189293670370086985797555875869238489002533634078210115897657507957434313930441751455018304391128696734246370579599015042199394724084372259627240825700660710005650889185431365104056491773453717288202332411938469405014793782222200602911694769185688288744290928137978064853564428352850404516901226602746689174191991648968200376286749978913488497123483598423199219732105041245198389273857899470026883335011467032372691619022328961323138304343913498128856328984346526802774634683866358795415656822790151353803499382447799453844977282385539344441788139714049084378682730684581196438869994658548228761917393708127955513563443531001452099104877143269901737623966451207176336377281144413540500863702146082737980958178281947457603836951375571123884592732597109770897789975961626518558386903169395075712681629776143843810284152242795508947236607286002861605837708148528909455362618598358191896739636323500706709174542112422241811817893089339463053805689716985549065634436825888480125054470005286571688483264763380757304695222121106677911721620885122428270617114413925578133602591643308609777566194559603264669648424572237734493436945647998639729836098127283339538690432510750942523342042756745929046142299920952076511329456982526799915402349448577637450087234420299293650849746180876955720848465102548429751080132000555350805067928240283153455861709524835803258688940726248378982825496282686564592562235836729891837065765618481308244962679550351505489854134580820669331252054046326571844723910143826623118065686779514122114261452293756906728687999803044210636855183703637780565310262140907718548375134283170243065883052923936723602159011971895886278318149047292995834322960735916750581994182773344724197576878469641466284131883067210742561110956345061204883241579964467050156791922966030504147601192366380893166162075324707661099039699247083342839442796651456285199898567169736260320937384323922298658056328673990243838874297204324054459180105976082743054895622139162589971230006449760984393452348052142875851490309601486045216606121355152273829743242196290506809371882611338755765153977618435432659562554408439231775816457925021395831181099146610353315773864513269164323927488036773427285626300175105048127105868548198135641191034492735260945622042458187060022889764354995134375852933447078410966851232486922970651831197215126446173167323023328735590399704138784323420315852282276129314849168346986493570218468042376218627198211816240914323109842269351999310361913400892814069239266581301798699621106527805435317359524013951529765251063758859581578465611843000374684741655600663117010562051766461845409631213173858368173211519696544135932054016843048653604816432266041319096100594901697455024401812169438946374014639383942855376284865471583890907007502697413341216706450829327018676623853216430676526593799316005836122602323826045915951331343502566970688898553418488724468545071754495394135014181364031883403244076325349730738121269454680693300440706972449937962239192970033709829161524513778119275517389533727780186551418676685390205161729894343897515187826137657160508085131970496291851047329577954945992433403661375488632020286165019780006050923947752374076295073081792349249671518218663742316335526128448611710523738564499292304991771096088951018822295410614964048001591294761090321868039462484716445613146144183910356690241670681033631685368936136090972700192029158628258506975497357898182152761749809517517422312081025202723349513875718966180870434225555992628645016920807524305673919551487440163015971694624901413012989015589386040378160154931437620592456523398980806843563701483103476453280011903287066870881359308662658568234600188149089367765284211882029534089332736890829135144592600194657789508425254687323256822697633886929151041809109184188799011120309448374045874660196696752246068184881858684723494568049993256423004949970392349438800024224035656918570913081188415075414073791979813547160355727717129506862015192860810005617724168288594443162359872859061479396913070579511305481577032191264734850634980729856880044497604204791388816684303060420569452334737189311807009136619911855117405698869580276987559568566088637448357625111973987966140149439830588754780723135249812761580766246046297033728952860380135288431301031740666638463953890248977915432773251741866337783256081245102523427321103642829253674718658896038221544648428862040644884303921766846035150120578318250339884270578395899033246880659369204884130594712655734057151362948316017491604875950105577307772338934852878843555850245376888873247896481380528904947664349027879821803936896497162897955640293850817582951296697926067845765438279330236906938986871268527443900762210246972479923825760287550882837969433711329804651008837275864611728233116000202732676985244112947259238038771188877445276927629603284919680675234305811787005521381920273504126904775475840329746319829165787922294262223796695024879026851797484277995415389810029086589714816289514141624686093055866710919318350953477955940675433619477705163921291751185405243020539641403526881902624293297974934264412051452738993732873032624945247969267024768224181894762631214549520943318280163372427322767147259231130796240771034363340619650486441918727930208342332950360389589091270260899558057314507081901824933144885787311679205347338064265808225735538598107996186639771478537273564624553442828242438959266132189476338093009830538396058093675238568460679909923920806027977612914032633334699929644856533880949635429609525126389655808121558575114860725079158421008655242769180691131994569289705065247206697132190509219178051957801365378663858507276557555287362538850293447359480358813149297106594309136268460639376641877406668347753004456888275736911409129245590788313641947593060835680537648520169256889196386667330512443887413769708977440941352361503579657672935000893073747850489833739601187055853836572887162424392769190394690346656469706062985838559178177511509587892932767951930620722200877421077576490443290014660116834460668537196232933900864175894644038365588128246037552865236399369020019943591669922023524089170617342528289587579564947475765992977929555907829753993530550149860371796648625341229980095380281960049196253790516892601808528379017112580436802431144331328373270800169199564552404876709891463437370102874267199192147220870423885386180124173143990717502502962994757918984224693971050595792057596572480780737784224614153458297018158444465195785464413308772996717816358181600307939786115103637265632815614167383699283755572366114298441122670804898440635024422282289534208415053298289785178325221226031541936432942202655362287426320277132742457561105313370815159923237398516347467214620330468189831175527628516618231246247582461909648924288960504802688495758678148353363804658294994770099490175545500915129560710759541072965579464165256939451223510078614993328241799496642561754772487051545257339721620368154062285239159337820606816757281423371246651356057231077906772664385435326203765127069086566683314794427120769577103401526094748051222106351005317583594772601468899656082186043439939087920426865169982840967002836694705674192031378363985615883297254520288494716769766227753520124899651329012676354362912870554900405641121572793625657039061477366188583884451560242292677333858191214220388980763289565241502734054461730780412019624008717883282200343209640873127713085183986978672254932890947254736864440739642044314370147059990981139473884954071636741865810338519538624666702799289123063204310770148539601387227953150852562987446475772641610792330146220267010623102384046974178154409584932146505614557155169721126236341431602770193562132221169391126444392197437800658248312927608177034930463041864280836910789612044801012632577040276051106359016648747454568784020723355476140715440001877769785129582350697047555956052649408336459282400467627678222427251089580035385835927825294029740477263233054232320247689360961282282391759314051393911769563607228249675971138325069062932248562865832081388191773963541764769154021299752557071357112453609997140281256270154467815156744725619822117509386054721752502183703464453572069721705189264268311161367001426835496082657661165161755220991930463043240284555813430733194432595877158840912718159325785095328893347479194086407682394042425985232153540240863244516585221632858427788736944921867554271062664793270124738958466185921003087207981944599797981777940389261709906138972737321893463875107664522624818576582012026118555424682448667208895426234313631070989680653064389759332213151380596800192042584756092702510083848832352361203741823731134185820967951136100718993441024048640957888110622745446396071868740939402125608511543216600584615628525662179685630044756785969869357822188109675596410564610115909355118166895250450046129888751781726148990440608203463210526632845836121968737415019568400778778105667346475683292792344673255812314889906776088658659796146014489385140523711831722623473530279437218771977271392244139281577591087656670415336883823086848430042143935605740236109856491407663152991590680311577793357309609957839651110164730047017928554720000328524841192986921518757559721936576953293005251445496130536351683790381645227669854693283301599227688968045209446094760637082559517240659316293867108921323204484175686445939620560104492062419274840541683354244628463073325971921614893508168935718305250748435422869502230332830214228614724853330726018858629076173951148879436350532139990335069190307273136219600790215623338727850053825615784422263741920154016593596504848862892379798928835639567413600441009438927896377849550425868565720369859815590594290662007160367918076659024599661228345236096171572721108380297779515915678094250590762753143817847086817758919212053388931320439579103751365420971370664404672073340914466328615590990486197137124895698346510521139593603778759502841170887442594015049461214597009122928390551608452967556346843290105757906661386171828339679235249057236054211476835585237840094847526624509346061742326244913539003468481398967824229819724902912798266417768465584251282870306105500301708644788416478464116532960935010219087009340769106262667926934550155619484906119957551750178740486104098564113152535174333951983252557633571286461439155877037054314790560173148833250219933888575407542765630534162875019817399291168137742607280528471767107891329355849424150321366899037824140835366093795255498776651687856066575091799246538848504821721242695653347274286585788691291669052907632437940142592533747880214863070733913196418593135527554555508417858737113952200606188207385484556064259691002069105811815564540337592019192874402759264444288336647348049682899802364079275344322562493470292573057259295070897099935312696529536084538276606162084316177613407998447187201371005207654757327475258029110799891969781499946349107840141669217296924458642009657025836718907008695656506235759152323675030704773765035385909962546003110334734157180970312211228556789292246524068495151664193375861632236371555014988541664583644881257074210143192906560850594635774602505521494768723610347678499860470840425218008881394633559446680010593251939662549366941694962277613043012790112461061218099775545453813264647320246379184031855554155853504485023501315437580581140951389301163519100641985656600519931205327274822412615365290881639310622539746282325304846767528166650022319676319272382104186114856885865665209491656727748367974361094771086149880362082866200424234250063492774059679466791939217773741196970710108497564439850760342175378955895971146189124251389674579545408118954479815958197034858337738065643739847017392678553554665694072529755626199912001305567273043460345170192556422172071373022430924987658626693705664312946829475665642232372372972726064983356692094126771927284923281899975873251988665782486920925464648688582499665443134807773451409164418741571247586444769818610353066455722946190980815628534528156718831728512593942277439778367145851795005837602338598513518284168046871717467841549540570320013134774100072289057130073025968285872851952824460873392376100284435667820793567561266840070003137500674624780941286978596191638111774822582145802003206000356944614355277048295694151587783608986585433158577283129608808970392317864042594664247531374923289895637227604175632142001389306695694918241340198336909351873280109643460505327610210101020561094902153356041228580238545133410607268900705289808307863171891170683874080609700014211840842314576063487011505628492426601559012479956756415402189945880743750043471014605998369452441389743080777658945797307182281500801945115103348644685102798295655956942973032998055381109348276934929111147400366724815835722974469505698102099783288931096557094415882475486839893920468833362825461380839809484036373265043599779203867742268266192598752511165716420042169844289213836466339872702145711974178557679891011813623236123154504459086820981875733694152810550226087297498878656409440130103727286981940537847214553626226118188407460604187812939310563837706431007243875025879542414223217613042182033043274291762495094124072063206184652122502939056926887186587965470080506907954174213896963124378067062089414999414151943368485585644844837272419824030155597444988803135458873869128236902335051141062760262002468201087678315787022358415563572371619869565318566630468393839420247703941900074073776624365879827683254006346083526701085778587469618147355770111870171549596342207536711763043783467487995491043688383826275329234870094297801557159196330182935537613904567417457292850565675491463563222866561790246918328683344997490288705233607997510382026151526024891463654282618474520986119965759191326646721283104319426809219133173760043705799983154661771254645436117184981092993298425961996843425384074488282499509034676115720959479493841628185618083537405025947927203742643844493901800127361147113276177404037190713743724341161623111003103442114870646278599256861517152642728202720453244254305293812987102365109191161727972111290024406779036343597564929215258012615104535041075632343038464444620224244637765872201316496104640859847020241069127423454679736049515738171251943512458815731839847208924746557415435502074551301941088200063006484215035291818003457084812680103785928892940606949948110129105565654462707500386944547259387799085196469332225708705364077167146773089113503169307470682090083213933058337379788640240799973252112960453203948127956293094770426309832815958271563593242147986521043371945032449830019164109869222285632826722572509610078085009240810493769220769599288015507493103542819137112515717598591664499356857652910187181933949617654203889957270358571964058978651858593130844537506575500072022774165899457281241802129144088982560393977675687760237692300736532237126427460163610989945223181818338336874897002653293287628727033779759432583207894482812866949288865049085947934296433869131409570950695957442850253316132907054161912603867166252003855265553190535907788643674145564217987807918484965408343785755786021851391240533108921292028485649548030695785078926184559428202033570627157561193999798014067210491074031295806440398854776614573171822184346395746675086104342085808435195041763321986324639846215952550254780918903495355565422468832858136589238981547337668349055088748860181748953408764766313473886466229932988702020442270693769581702847273931817908412905075083451358266028697299301890333508471036280903762680059766778157085563053472582874806436608215104002158464205485752557809567338092977629184865002388039455740098499422612068412919541704884215106272545856721893146040584224055966544728595546539498045187332076447218006650943435528367662860976239743299010012368593799949204273669284207683769883717334185123386768889851862050987287837850947038582966302874485210276177964186521923854736527710140988044442610658891326347294153820087757527278636853914200908585090770648319234475165646887590606202238584463093117351303447834035646310067662405072884340340939281740227098300952133904009202110402537100957885898413800581793110872984598612734816972935332591272341417987690159104787644939138934324445607989185627951588505580203451307686610975571676765536228896818499736759469049956415077505567773407113705044691036797713065994067800075561575815987185999741922663720669855361413003697288993005039951810618246442195556429521758878673802476753878397231361803858645463065081071188682479352226993543545428132443888052328742339168621240964683472724446144816493162054661321136684711509064461262366416726817126217297575532159679360266857268184336876641933636031350248107843152254019467964525179639061570631780871141217385271362964878927682494216639388075612084879528017503753616093004815190116904577839961194272621394693925704416690627069166021653953020776625770715901595151871844321550454231569737949386035341842347655288223187697311839924425828500065593690423977218057643144899777990345637567657606460696535283539203255117406667818476390115890213828482665443136698579493816001525730603761467607676953386485217728667144963985317185557539933530023109737221357989547252320985643518920506139264461251132201307274480590233384452526605902883431727474629069614327333352930863939459490078760300794489469619262732669481514464214200255883657118078944843512658736301597760685997845433949041206015450257142579081704526051655181066786187330324477124679175699593305826790979449292581556812088852159989761076267514622044620129077484940415859213244927772719142693983314810866190349762123005033919849522693672937442241383260813253024907407915650530527114924856734612311701779064261326844753186944669826050512502420691853156469452302825377964188758724565680886743588100915897754798539082339883957170644186826472931756609091838956010192108428673883489906848751198083542655997613732911461578023780844981625638626736967729660075188253413312590671207662455832540769208265251260892364978579920136843742917645195811272659968673900715531707420071780131096400075454691919505879575201425804617953288840689270069262132668226970816044994103909432700782590741849836330707252750521201308231288777887523719628191881991287043115612676877058296630389839873408100618933107387134414647107188807749810734865756941047722622420211950554451057450846419692805161448555569708675090650487806841716895141858587855135115362002292998335996328432369527148794856741213318846670892669445532773506738955086412027120260675499643636172573511793856061254120893951217749672569349224314299122224753370422191409838864411084787457491901879774914323392452101532673445277852757395563391418629303847363486047488702029040253624705416789823228230460005690067596553220194873650855961078859663486905044358059312047351178402790993796988853247056666339442399362496978662673686405652659258012987661230665972337800948052163069973882586784430163826431366215786420692519354329193170453413802847578771820051309246652624466830360979546006458554334398241841329645290079283771050535961008749682633558957553251869493757512793045634077958514502146709331250106077618040613120888656195680462667366915584934993405159856518106044035821463686421264487637355038016011977092460141024398556805444737217175918559863320948915008404645602860247630671871986905859525665543405346131346692163460870131754121524830919796952935092267595023751157654234272499075097678902207613504982006560234367973794427531032502272599705284056236232532533609156213152456890352556995308224662677647487754317313509474290382300651857864219497187243230587743779132804534815311104341617798413077870413380809124523263025653318877225113488412002124530367859016254905134894224344136334697934230688413073304920044495394846485328221853768377584972521700804311368459151111426116235506375654915280718452463107404090079697530953726441755217152228937713930973179456803648906831620215860779729780258448455590881292571770783097741145539511111289672790564924228764256473575198019371777038512511921904864812628236099596574071789088068151676639640923493794892420973360884951991054910426441950058672976878991841376600294015324080174284034577332264253706949185679249840746498053133024335121673099861138208077693125886221294211866398273153384331099256558225855217862434375260403423734567618693663995687383570531665954583389424263471177608483732936762803502434133533476223075826632126275470427800304762659367357891311239837402777911895052220011543666635178200567815818607989518182463348208487146674037323231136450826786425481674262795219858880829829689767693188928344237935430799842235296868061895898902340065137359766268267266415735089335094927809384906600658759139517946092820298970668524650843381119785723335367005623273390305043642914520299930416017461754451568730980686297572819381509351347069148492384237498125599258533913177575364049799669270558304444400598446533421851227292734364460749422581399468619334508810208453938454211113873363657762928787405851454591089805014639254463173166580989164516798384308780965192675645134434286308815724914658813974282719289390341836245711227304808514799475521823033032530222917305863158042041978141408755646642084927796402706346912969736523458810567516741212071158020008987879079267932497436662576295954661072954811457834729087902435691238888847293344328760276418517211689543738072472722628754412673244253605595745040562408969981479696174456703485969764808349363096730812050485003538526057503880535946080987364097066567098464996325477892584212005667535754800762374358290731473707418493756064731343862136214944195007590542345818832339446291462464137423381044421312593381420235007028329039735993592948846666074167709209334462258530124128862937096266828283900243338248412091797094086774045090222529606544778677007322733494348399440159181070971274987194096324755827296984603268120328984811727585880835233686732225605086974941301999548215419564350311745260048918427286609916724978914109193604351500687704240103975524056331226126511416594675652272205479279554201379657690916519184049894516994597672928056352308141981575335731062788749351003941839463933214570840504956221926646278833285039815409884042766867394787155672052081201760539026514399300681263089668367521310296947554585698932933681081913934975162197048240303943758436837715087731010025301325753199577684281360586707912873375741878219006017270223413157873924992031394301747053051848200139086087801183556518798702074261900685223063102450858698672265592426324009700250541961174676295630242605604220973570428254782560106396142122926709640667250998965771218674042582320914184615866900007673943183997181089035512895110381608145191486746352650380702451001029927852281336369343243092568673388626639162100803839295394388249720168621470797633402963120348996791843182339585734871125047899747671628182952220410186940634306111728823710435472178188844775064463715827503267249077337138313682393084307263481662143080105900651364453003330845163961317031438943854565634339979331601164902512594570404011200740277513477109254681218217365552312324525784825335919293350734351761378207967320543860063518847229461434973320099882733224229422013798169462994497018505471334751085029865923232484931571222126939661677385592778164869825987618430530255428804223405708800706290142310646060675427554725927289790273651396683490009553250056189296907182428749091178975804602442936638779842575355626460814919334972807098772035716660402126872205697422072754230680356244555007883707456868780918025560938873181101331857382371281999693336079488898053414183079810438478528988673427713907040615557992783108730741159369582460359517440574618724001213288071521782756331555691198998278508711083890361418271448150722900733818306275952712873643544493197060214964026763752640563778735003373208610017973439902690894431760875359740790973139013969086221888727305583556252352527829106111286370947249572922714900117685956654620440312643438155275689589307721745222562919703430732354734947855884164519254296209249059825780191539211037182301048929968387702981517130128185666078625090296342426310542670613402279510088014763022532047902968506909455777864970590897022330217976244505049926932303949099481883311477409369177917065389512746800546490705156028278768063250118410966988302921878297408409093617865328303573737987399293274807419659005211828139966808141080414180608815718344331822594767148020868166333927488887496980537341603168606751976299101011978934047215720940783306226163908149679217859737589578451846303178672024340685516339126598614078415979318648257856000353833656053435425351769749315890952365622147474501514321260030945613579442283177879936615811407750186898825556238238661292552270376663603295144751487689196133977626517330966729143075636177848759308771013298256234922994213347340179444307003832024857033631786463809473203025804037898634563624805497458816295115619530631851948411025029643890844901929365016192641195021985716598859414203817925805191269674259239171678788425513270063446887688975363595621497171189211848246559136105703695276363042984776566474332591294697025462384848823091032283568331274224660760140097460258548566124717134184212703522161580840417199796377433836159019359139877707133953772387398839322660227003728402731993560614318972120122732478042798119643775027992000576932552424710073255857540393409572419255939699920687247476963305536105996412368348836770042560520000178550960819320878972827165989140726797634966053051462386142773948617856153667745860319566125692956716813813952123730112680134123541362644849748001808481050582564404459252048575355209274751538786230778567612861214508878313874384920954017314779941182951399723053485339390423815244555013765119490744382363729822527003063201680494498016615292903037248335624043458113821792479782339811189276572904349867997938630173837408612937543697517494277047596029109879141546522396634345141295471420953300373472681898065382552130107775193359038001463388852248255608114779260892134878229499008823542636134444387882749579524836012585465359183030132286912004094953280689362367495786229330755131686350140700737245145398431376193134737555947874200785277475037298643055806165985434758239225608620874689954710625692643164593986168771931540654025572372537726841988338283217591531151485135834959701931033784255248343504670785802108233611842046362792803514891559324268142610123411403473884669579929476432288995758703723995517347214267736196567812758391701896571978687362718655330707822698695260220441698734079528966778526540208569058314589423396737194330898248213730707326501386334045348592600644996760798517991720048273865834554584843643673157920759541176368351161197384636923351261513058537767896963530386823093401746302915091171832766983925971787305999155325797859509719103605447671775343068780480972287194156675497833351918414772717903774393127276801826220093311292982649286861071814891960849435760019931480443951323776858180689204945855851571265742296353549443774842825659486141646105474027104235596635067097546306250448259566306158462647714631187249531009612026140236899073210259371429760906666098978324437028536879061402755896413978354628190071055121829665183123687840901606898868734974725747170282701641902023784879889321850792088339995313023263830644969644082708456483206485477724622069995995347644729394265917563299470792368178205853923242084532144715891386952490849303220561078428520683886601514669839524402917418479117370670725034015745198703406940702030398342491421751488056047332606312208836940373185510563687608728361779194112222918102789856051682610399046644006029132986574887106645556929826025949952810938094260143981246412051478876893604769009805323193592187859029531857503638164600005617417795395439886224590660692510575590966641623357693003325539651116934812488806243958751476753455322743307428338639805910834131043884358832133410777903845812913581917161578748402596507299763334420795901306882806398421701766939002128664807065591479687582778585656415637159532579994155476447277040348122541345603010014297874018890318292744897038102703260964962052292783038645441761689743310387960838125174852500782849833922645535015499844762429856724067297986724842029790379800367784973150088903147493541346636844621458819847491447620182463270802705834963531092929858661649016740515685700211439405548214616820441334040631597891219287275361269285077244145784549634158786517675377507583803508911064817705044728879812528363803246047888981499152295423118049275448441783974894932761455953733024615366151251567603737358873880923087045692355079861039727939520575951657170127786935281482127302417828177823292664162569745448267767785879595616344385094534929814794404482861994826563398812125447222872828552599688976500126309150475781191982096904162477901283868767833632514879250534979259996692776386304554776520481677978119271637994843141862472112278406965532065663689426645254483859401951850458380439295369215883126465801483278357790549630672316728911822377408496891913044620084289269913334894430854210876931755913051510443562197927295674745173895051323436451872257635549030770318440151351395725312956027168228364495928493369530653003877389693408858521735084727855274854275363290234424965706213466093880889799675715985740858364014874424868376058243285948292928773844915692796111216408894564767791963180188978570295272654386532128806252247048883479812195862632363045630736079410297063208397443166002976302197532279841013874522252919631604585370759730138256461947077446032235242911414134180375008944191842050854276692451754716548537957627952036692745032015561662940712652664137670173338085261305185583686414311395921672301022665288783534246355228915995660841438444442657330365698672425961054370086979559615773109465553691314256830710111010781168274513678876406419276862926037761316733900579809605290311631519453369775894858325452871945784980517024432941252578536940640028318919137024576178359016005646713533376482507833476097419754699324726007314044687524298508903621715325265630048786834395980760641781795878634050354544165482472923680233578509293368201663122936679763853569491911860172436272579256298553091133682350308018579077738576912261798056187727795112104322067324784631804983010882934346273765971593823282126123318095567938208858548054868054991936370440904654792865696088585698931386454819655607331012504146887549057908469886630774640805473585284597858126745437040555244801112819846779852710933778270540146405489540894625398941365702056806619330494197172448054230877867834270051097951465205011453778678626113404954179426853869504170847098871693767651115725654868663681727395648965385599937712034292135852566365427765761585517593645977407076220227443307956016390579618725606140864761475946124028245730252006550757447942401077130203897407668225361871368409230298252303120802274646820876722492175561566825098384692482985618714365925905748422335260087015091303380087064946315773935699954953836268098231263018569290251795069049723575316639674947246414164344675595528293564498443189101797880599025504715179665350329937774309073305595404037859000958623775065149632343520849903394650992942016094907604714540143209919916880802383301843153334827340507521664263972099989876130018505013622347953574616726762903276698483341166068586134196513999737358471019419745876081829216613557700335780303657841899599758110719214521811665561075639912215511879624395203956388812497934446208678666676566970438589192527989308488861188959994023570328826957674821757794617342146797965539806717962994190223286633488436812566410150132095427031824590480642064588569018767452103762110070679889308121599487373121934060000502233302575243814728966757508295358222082381664972147546688172024927509086083045938928942233737236126105482142972597833721701046340559234445097261851599895205997405029874616221367844246662817084782997517682219404707796785414622001202640322199552493977269660503439173835473603955350079847393035085033576125446240516074638266590853452257489616269373752866366040086939231229790221506751100754817722388513969657585246703352466216784639363035809029115984295585326540973233085558359118011127205286319507745392188514442263191687459611098033085333239817202549724576206247639354133235247878724144076090913594348294675551790567387541590582578420170569079135486012477915288592903113514566003867778918705449141372082835269844217617313041468270599658573311989733896082879661216642971164766789301055210330066414633639008436861004994925076373189491259794177625568449509577719508637132913692196459707747403360583929847266056165671224530623196072173014624408968783580132126774539252509988830081565496512246498300056188362592563619492633223266991720137149541163123337277903172990262157262137490633192046711233985259814924876760407417834729070931459848322285200680993185360380208450096124938637368983655423582451671896888435860032466550887996728457752782646200413473019219251095755517908642231810481156083561320825780423575031065226114308231292435710401974758222837021373607022764072877385602732131937523941457305546667548203827093686313680290493672170536481114599466592111676869267346772147505080994832087802777155110128521928661938789083450269336137895761577720081604160535605357744726117211338560407610478822896556636498327497292357676455303835859679057013801864654074378600334255678194116332858235856221635871810894061333055188140799878056411408699315921663488856666070871542028680961063618981605157021944425860308548784911310744112854319805664492136709055387865586547183828578409042371420836006719352747997489412318202669144725627624114225847054621952046130036454395927082163811790460138834739671220829712143520748310736366711211067291893112187921060167693807752238651462092611272020475035322664414165980746968532499823916225372534247218622997737704420338122436498244741460961979542325682869714922913094324489479662009022298446675688111553184629185879774082227350316619644565863256971439434939292060299224406610327587345779544740969206280027226292612555260355560698396254422789010352218679953465887772052533354150201038445334720557680691769028479109940734960213691033070415471689893768935768831300311500401413118593437968727832564166301897963743272693226946969514539515059786110449735680776492874732071048875721691215823609059054351215924962470927213855094100544315828804557315072938486904038382932085414225888470820489170006517577846044328519799256048867081799646882969718927215443381865072526706033988466292515232132101221304358112276097603353490904494224940043371256924328417055530210110570936951872432163200817382770123988889231055825320458590814470514021001970844921155101798289193341680828297025337163665695684632014958973563990135662319772562745415146924254584111842230059808446905016168875255558946589898013558452123845727183585965893822679325574491888812343253193061065967624536277236107039745715902253648821268541906938250208599493361279460685195293851886630860502095626607823930457572248267982488943322616620773293093562419908892418500937361243080520048891806091789514066244838890485573923311623203396019609194937800426265962487236803458308643881551229621061499398127268666941699515552638270766743516716401020738318190245575663363212106949110927819368310833645160627211710849383917882997667580851669704307571436205721267771133579738764750692641367355857363992283848615872781895488384063064354072560738643489336705885750252544283089987241575221993436323569740657036048336205057257024990353070017440654768842268364277194745678394421150392418804665764015088442535080151762677032025024179661639600080100658205620772615693329218833703051919166577116488624341639731712877246341175285383088836929149542618284503293424159877462626520326448533536042989609239725265545230316305246555071568659785200214625022533013811915461794374704795429491454724476930338045326312409773988457162582081069103681920595555058507873002925802239625289124601008225597041500723197673210965741353676375075282172823183692868709636840777333984135061611253272746900345690570817177645353424463183166965116536184724095398173341127202115720809611132756533715053578575257565132286333285579571426475782174571383774505666170291838071605643593862377728511418669100491954528051811934935639876844894692404508260086233861755607642284279924926012382484283889055958921432266679316276110774279992781158876512303259335053871154766001772143404724099119167444739732858470683898660944594574966664294929570753092649184849609393095481083897608302021415216676092398317666744863358565309112285233391735906362964304439400807046954930153920730555623455187366547217794492437252525526017366892542066992631768549392331032912785770463833931153540581824728101983791844977590880321694312403735353817091945057014445135361907442580210504313906721239287342252595829400101440796126340704320388444220119029167573225490891348096353807536174029603100000777108152335963425455392076492714262713197384440262503412823199690336179367031454622625399167624086047916827509050081208333564519066200003584104848686614192148868574981985263805910872456989914707700052660304288482535107532524048292768796943199853885874018407310991972229792454608773556848256493275196982538983746185296667494739464267531392045888404084488907722233590263105590301593238002014295326626331445241068721677617317594044819297435969046921062834280054760383943167788734770688216167087390948499166985071425522377583064215629207349003325305312979565527379972795699196376389905460379970474296485151464221738466299747319984829058764795039757339655551749968914242358527400775459253666216174657448042980681265944464844605060536569771915291683551556362165040442099921432457945507745469935408291556878683351038911048073672060506863056892836440166859296299543735536391770336675866568703147865981852869381980185758443383583128886403685541426791417645301768616279928397159058512651633558419628334862516351463160232100194415533845197718150052970541738333144735938882227006841746380572099637332287801272771732476321686485697872029357982198838739293190374805460692097260769450558745598148071218832090348622587092819754621534581976173038263158406692440284908183818754387361431487791321906413679410021591370501074427455978840809370113612455421764900736141750527214961654947592017532574342531768363897051137451236481519725704761972965053973340530577217196041692601333522159295333227388887587998218291983419926133320035393292622573232360332830046278180822204797568531643511399060120585949098656842189776562643669280038253493263338551317445220696344622873005359933964072303052203441443359094027107636927809368545479748084338954910466090856536068931405509942944092485162541211398335713487831721072472017165642769264119650691270370484154134109546293043335549879439998292145150192443878107852609164576635992602262632788774746554842195343346794005183932343693983144745736026687407745362226287904712790582863810738976703200768035263827806644443157386000713862482719127152623624296681024206489246813058447124912240104644431242549017285202867094598154424220590377938432423118656760902963494556194545926600992790334022330929022054887209330316547249296833651508725634978855331025462179209290381481696380474072968469380468267721753314332209716460097629273450630404104101110239034008727748415994856733556062750251059187850223413307594191624267627861206516145148165452988496698576826176062749669136053014456212044704756341623150486691540605851897331581437591542139703990214759389127800260074531506809855534324695535322549869424493845763905721954132920394298495775483768657247473724025684535393984993686522328296192644588367818311422953266285496185153142301532381498051207815106190332631278564480828706479099629456749859788204522944243933473919580970886859286872631075386636544480158420646164800550664793717151791943279063455752861802413379184095113061538440811810202623254060681406301768509831595346461079123796298046363318009846414633719791774769099949481659579490264954575165645480511193564464660011698760522856501985002653203842450466941414030857367119903794100408873027130372101966021684646250756684548013876539449844502953467514802411653576418415487598577188025719198708379454549197623280808291232239818721743192571033133431073444870211481345204391321086851981505481795228191627756256806794519412617985591399969349271083370665167749538493219109129432548214640070931306575849470849479204714404357641993623146605326817656178795814065423081333790252448111477543629069916253198043647038074215799234143394252043532631299105083309239663945946683897906478792568948969538359965070608513826512936655083565728782363820042984915663038510753947559394345394318899718434736151079636389657148218471618034191997420896745135430217037374409484163267818994330296855360202157437253273188192308338822633337569372994594196025061835621307080130902281914435879416658495405247833398156532783493688538662188662681633443127134004725146221838655416015804472694408363685848610434892177591439444294307477408779374433353363118113681176075469206482626002300588966433466143843340082227884956087827163327614409247636240848805806129036901184790353192137448610692470837423063940158629405942918881490027795956318001751620124595884150638114942975851954158288857574047131727395154836580074111854682694920942619189391912465490232598715587697335041046254224457884630633540709974842275150088783644994736186881435974217742690876236036199400808604740877279056065539846767003346240277992941771750929463937991582074337098069209765380053764624005259397575944448069694903982565800436957532794169408068442271993550945312495288280563772133171216647808017316257029762083712176696852289287824199882617883941046268982240905978436218518775621373108141992545776073157067648459792084666701841625168784793788779878898113136021967069207169378757791661121792331667210052851598061189429817509197480717418249265514174305058111921719815586458417205327291760187818482665049794064339689789014293238371371112009826968722800640484983646182929091492185715809710487202125262776437229334734769976114914772876151284545056465693566429139665745537140485217572010991724841453735514004999221877921772326240437684534403913579906023061419155357831044222893492984133449952818186589660956998763119214731372761075294371789657566406622775187598846325059696330316921741750484779130772283267357589151876742711753401678611630899312956572053220989095815249104387391851019199512437921864425996634122360470227851379187603993674646579908558286919017916807634164816092541759469024975046087474357463558664376247942800873256126308460124803212648813937377759686316847484223147366077949965258377950405531279580354459033597969346465945835710719919992394277317521039837627855274588157357731723828333868413793493926418482063322856140257662498592206380674232724832817356453296805449258786921849430792786225049136784106740231002711011660509516694323735681118760755913000486272623518257816560818352975023903359135721774968760009456879384531174536013434611765907918051920077990283535978099130142309893567262586606170348373423140691505876274464967847609813142593264651979722455537058967693335449050837186206746357020722817878202537573939135131228312890469507571533789633672768884253590290182613395201044609119227179884882998864681246403429535942109252651746138179404972187179697418931369251525771035188784924700282315149475665293679078791309066141309110430066431502246284737313631175749684802882954308091060900126429363869597041737670624259686270206113549789071948827086867726862865591084709974754418617566452595326640216805095655974594922785954987203594513241973559377212148747040293060522361369079125761891480252378491122559210336038124615036159069673581199871639729250182585157080328733642767832430660900365798082417212805900741814821437684602993869815184563206137999490216451013848871319295691250700870930449352381011553339912710467334004849087925873420932420492896843060423298355538263051742092680986076307518655338135672588316793057373997329762166367181416847667067579839459777221281714268907933728525022561003681338600973314611482014702455078828132915779536435533988487909210154188634488832957884876604440938747257041843393851234101042087795293059479166891304677050043116942233141331813775922804750879594995442782590937671155273124706220861742300690000000198389759358484634913960892935620047850984623825610685719868935949692122392391738916359211309361936687868281180654535027515876424616435705269050223950238191695961649839625750475729186113325757844388433453393500129848810754722697300815010724827884885633280118176533558047080467904899190099783234172767564732800802665193496655998284993062972383761406554970175244315121100643434402978904239151407807225396878664410315125798054764144943645470767175828297190003294431417954030181162159351089212972671779024842900888296320519712341217873017306930497947730585228849130491117617163416148058911659125998658914933681708448807886216488482700471853503513024178305509459489344733544659038222227509008248058605313535150689500148107568272101538435217839608804487606100130598576676787501911285981336897126272476765488630277753056220177632606799985898623961868546729776855572938655967601232338347251223769239108161407497720378293913919048154559586549183625859106969009158040810870937741829719679361553031887787756513025671852319094858311542560842856857523222077683444811074692791063241539809574420297398529659089825226580079485524890236819453605872274533128999267413773498406636121223271556385867705576093533339228457454100019249408952787660469648336666947425687676046641893817844485312159102335509789547047492272832502004380117195324838270970690629896382318021660437295251952067623950360614096992942460669278913141003907462502897715305325544347171515512773290690921009517338219560679032461855715400929251055594052800622953937033888336617419835136034172249141955004971567387886472935608893520397002488731178484169782580315206595297176906078398249822424342138405532524421405394962852500641139156957257037554082682057403803124769264510415478083981154796543665107538048545968147762893449829286527850172021023205551669454397125047327895084763938777797765891352342350365372182400257163001242168455869936125984963568753089826306633137381504818144226927485523018806767196337137110705085616426344837965886602235296254696093292039364565769794132445385457600653700832541415102543179820631526075311586727985519318254582938029042988081131168918363981010029013416932194413157392118905693566035549452978565923093904810997493079155736620867044299075725525025779899168868868605311465014674081255976602994903798013759143750726974036519965393012647991893968281143191381565718946680387798007186982625728809934275737419575686213861650612048922724747533780383633156369565744433171031859617103101882761429024200289122930805014523903466077574126349388121609803290175838090038731628148339728718638734621821310485183289378514255236888081381617556974402587896015019474022766136338749050169964033651367307525904531117831142211243421232444986901954746285131237391128137594747870590496355069141917771520544968420539024205306589250940156697268986782828471434550237420211585724440919372155824687533921570377804346093965506457447477929640884833009547381624768904178762320626485484459493050204211074525509438583378754367930476441260422278321791336280804073092253702230126373890410305892988974626586799759672803059567089602699732490180884675029237133545727523469082659397352292696874581686605252427629700055292824331306517636398578458867913610505122504046376775898187907761849910136426404997447943386512416976134505952310126345475493990819150527227538124181968168500396343595030465436179529955635623829214580155846571218355469640746307725555513918659412024116603691747104535380566922829557188284616387248628050973889039682559560050278641034151452124244806759393958701294364661617759368669554832389458046731665358916699738115136766324647457612788677778443137373792607173433974686981859993094310206852391028051091347838286051115072024882732431100313297538384278022181599917671055550174811229428896067441697772092836138089207910538589871104751520515405748975322278463851069278496589358227224180227262651697191401304586041757093587961299103691982396299629493724953502505392934463975294192534551078876329540934520425780803871429173205930885950918526347064768519921572724061853554988785319731854833891035634592583006697442619634986469625655480315665858183878623493848387336173414920190866627553772681368250600296632085533760060797480139637575172104558272460865406759386426736072757635804133203613535944646924524570332578032749757718109677631444312142915889151644098701303889975196655657138966727674802385177791268253661135709811412128099643411494729436725958043407914854482096607209041898483115530644258958372903059144644786346949633405455805640563278122928317860987390728491362925778413578375554875250405705157239369705510139763147009641818954003825933986623547983801627522631970841373912666996591405352564901815078192209745673072190777478568435496383306003928582670221861660716797598165341385674921379445551989281805122567385984858662997348320949045900184253239809419348164130624349697008124848120515519665907425673055442727746586915928463754552445150077829019202901316733949049207651748820971145678575600902261388932653159386467613830845416978421829838580042368502810479648702378637347980999641743454265486645333811696053314813387781859563192031777260032584708082963305032167800736194029229144357812226479724642856712911128562105030963977606032495383949313173487096692684832314283527018698230567876797613554346672819101270775792641910040271252021196626329305770191791632254482766624535281231887974194046192324987865402772282085607336065196797069443090209668948036483385160047096256726802500346861719281933640756172884387750026408855255099774671166374280486221700380401293235947516389387305781439014832420397799770547092879365052575315571751680723567709777347106846427361747761175236520657336280494277969735842157769553082618774786767946394141388927767909839145014646021280861815565163594091058440359892765770124763733936382513433711135422207482793520302260145374738639839678783465856152255582266003244988721069463801271151065641646495902521201096444440970927534412709971762595916516829352149376422750086342476278926421736927477264044738628388127559551161565141450872435598418713424626081879591920825469116448268856110220477952778080304343556157951892893575586938755605670291142315525520255854114897234150645946415127800605986063850363683500848116878751884934775526814145595389931400958893646437609424970111330565465930560309951387209583404064552787905415928329987085551948727351164046354136511691914783807614057177637203993557486360676013755933434042326214028902334472867137915513834926658225552583680527809463203425207035534683699078983842173872472172819710524877429897295032450036376181670395940875320816607474217451795524136272303101482771485521573144110391068739935176765405602164199715297954333965710619870078332945144673056926071420774744638920144332527832826436067015621854154691531669420961066555376256793721722371009381167128403509448510587223688389081894510859160002893878510908893264701071981494133003209536909043806556376444416562260564472287757363420150487618187531112547121409854076703503947531221645487562400171732600310554227584699298404228050086921765976364516459806014848028351141505097185837542614116199016000312567897442111063231251982873768151847560123287710974659476171118966080774614188849868001276968405190936316231036998508521384701716093757280659069457611767699245731609413320470583431026543016470020760433448668802989930541380331986424547798496205082911500479609631231236462209576415287966942865907390655839879752481635758468572436159099594754022296299350559807844080186689259842427549690753310455489471364042452086238342037530830481693493904129674091623761228444531608213834441262297498977208437629570699818180584552512636347967955384250694831020301093176782794854243828804758228049705413290563984528951863169736379323334372654808436817457643673589488474361433484515905934731780539287982123715356219195512071153706239595428593082501541636065312692557510080336417413373545194520788871409166949286786652495930768142352127947825215081104841537083946271769241176860300728059597346653405991209627045827993731148664797340779246868214916163894560997992513453949068855412230999417290206346614218297598067021850654194502829922175301746147826187616267601196077014150419188684660141226962018304308173397415586406003092224983473467895878140057165646522843254309546507606259343471264606942393232148654982357504272331020227005615281200767736052163036579119996226508997471129387756443654337562515835839338605074317590428030933693203139409262440736051348759994492887620886418332508110957023889160768006729924536724392999810245430634309498588909707391520979552204535110767693230891208897682463837302731320253136576236904506361910406911679212423567820340202380939544757216985964387125550476541299644965664112339915086842860695166805707532335532538948718312790181947165316528632836872649639871607375409627167098290521255323215597328809774368100885128630492124350352659260349966586119446567961594916005050234089996526801392545550664238558246583199589666502888816554993793881527553910306998555349108443137409637416815478909873367129078026714857551240228695683653624163852843179708302755850191838099768380248360284870265688692127130215370165664615647099016887211752139681650422085255599164893780226617382528589093485088187144447914889033939216568228059025393371867669221440841063804526193743419509719933160085369904877580577743771893335370040416618485210139338370523918555664330509251205059520769338572290734878077327052012676736823266022415059405138599166977389578206005055745362336739625159369110449342068930534583392951473835144394795802131021611432623081318040301723427616743903822983040159962711974196385739790429193065062767677245540759906997318492787390239413284384121957850677882513305724785330867976823970540298392225089957904467568909316136202902546268804864199122079327337282164432329633797223762590746601834989799375759790306104416626493638881082859287197840041832041136346981432914769751655889556754164070662527592927790364575955892828073460865477005388646487364241261575440687856688048844817223944036750712878900345727528531977401902326346763912478434999794070217536511555285109721089352895978723581359057579090466818520903900288326333536868563802186172770774519349588884414265569492077202050484483327844552543303155323345432976617596020353981533844394760777679486191803179535002931370458701935061108291653846721175030796062341557437283575798883663816427867272035903937574706812408190693424567001458473375289092432843476902731186965555364019790262788135759103573566039793211511419873382596775135739862574612322157183228749561496775338633147704034717662633905799896612326620448285222220535413418920501403754455166641678231534477417923099334539318455975046315524902751002907699983574979309367303833980093831398653679590281221668589680206429268573704061163560352137910443980738860720533727116082932203364538272569939983287171127242845677794161729643147563410101562418017485367525052224680963995620720303670485275417725122458452103396762828115231538436698186561863297136182569735291072591094080168822013675583404761574698100132492847435157605374078343087162899795323338018698907660209523661882468558773214942171420077349111363200511765423005702054190801391660823294941945767272190091523816221779300090841220442841008967578885333446935999710666289523924549009448918115269106193681148164984526465600043838324571458040647323970958258346728405532127873645612362780637819716157910876119884833844427385449162291238154645995931514495993407212495157049635020343350118256482993491224006235741811154485867902434965804167993759469500027497960989773317007465543406915069469783282491667086207425229839873752281497790038740152375961703729292713994182841853266758590926032629306439089957599812964619635918714312031426665103246978437764627300273225675468730100176890255906275959929770138871550690086170255126128781733250192595913679694539505257115206160120129114598744409273816441411110507165626612841435915650823450233423636625914345663254098947145937819895472690338825643819258460265526968461570315032018415983977596593268246959913516712553506904512032749521803923094336517386037462893953162682009367609133022278735547780760644278053403506205962361509836631310955465114507404376412737607207425433966534635165803967414920158254929704353906085799414040750939459029915042366687048960055448576225304418053907326512186481851078593783651818517406476242642547003895276961037744031534189846148655412248011346961357915484041235285277981099088729721847854473374311241687078408331863135905104012297113189172823128888750090074949364835250491364742856356598682847466255550866713764866491184674763111007881020150000325955253775199986851682679352356159951098523703592217246944602340499039505224264043773169518037257037794849940551656976873707765207113626679058378808650409950464205587286976107717969605246639692946740510644563695523617594546469834683952764880551752139064888661583444901627099761573399494118170894362053642378972310643646646465744633308385476074837330445210837341564529589542330237417797172670959710635522300979551981682561602462133721354533365183317012266361252834895377755525973061373325558504725222340445812523941189011610655532115285884809352628514017254136374484290725243151236761522086305600374456017718839994757198652946368294080154714903209783537192503965536570853867303812715843292880828788273316903383150397932355881188794128507264622491706614464967824092914635656965159422676471897916990057692777575566219362656549016012639546139689275563859338599327946674192175680415176886879060640580620268453040797848542100865318430317526289661060480383030611595957882142470718751595562320010497558809406526347888968350388858137038892282024822075491426028342634414416716139310888745575479372760543120255139490991317387284001166902903476777331062706407559765530520561020619408938717934353996236007720511307737974213005038923148666273933399678744914653855552288568932244492008387475865079857519339942402051223201926406198302964323766512171825360910104595652678914537051639605834869361405115287819688172300073339065875753735912640924298280333652374816093714683311251401986894020948347956626989700570445726922730176029326219540095511351289504625261923432784467256929155507131330234828136653408970000381774899232648745982721050939241911371962858261887806109953958701540386262574233179815913630401621216339409446410035447354998002091957378132409790377134844120396039697100082906048307685344575126220438192820715452687819262381578997165026966821788356847561220250792121656385589593368716474573012000568663562997563435260749641471021160468470096763889785370826537283809619555588210404407938675282159501741813650224031449112201298724645042565595113794852563930259543496906823585992730377085898105532279482332626275647418162613837021067753629082490371318938466900760251033823475468515731723788899463050387605104070464150048520664133938820511173069319467095103404245301826689567976225388117153750237407276760735650011343469855194888599217656833904322060853753226081936150213362863939213511605982932101711299624388641301880955684812934388690656470775809276633553828675087970944190370969150187502924708567463793247179141367913764158369146907682759581696287913906079604464691214659338250840781062924824602235744646622406176595867094159994726109598835259600828161706115201345697304284011689065088419429021660573225758181563863554250450005783966842378567962219002882028305816511344492017287125413030399298954915710487705756827282525511120766388494995737500989100776574172283826250342364171141673839634893854243398151381087763746533178004534189049375891631201156504017661967505921506404329217055186559229871568724553013581116096415870031700378454233353640389812281019657076521684999657479566201441159679836895251328875421308202405349999645702887201387592098205597647030019446286677800873042911597265628927723318416613346467519343198384358329678440614446048270601145930610221279702717271809908071800715105139868319306615196972066685634116626642699169096364200892482210003913632967677402622048678094725621211267100369498795267879257131869451531561251113555240768964012119534449936156441500650957021744532792349099601785796280205556484112591711344270532694079726524700079620028536111801302124439691351393187961295968013496437456739752901455355037623552921947841767322317871537343304841947427670333589549668637564726518353457993315000141716673991176578362858480751461013357805057190914413568955158615403321275971553586139396374787418890624068297502303949227485459274960074371636787633766487173351704449383643971538450109067324347657399994388301325478228818114312283544056944813756477971628796900948440138915662466033644243991834977235825812663627446754279374376111720271919465648825956599158589313896459493789104046331787946870195161257168251650186881351634064947383509785281201944684647595183488372734384860624184494910616134448139679448719317040111401163594046540632067905592464581738425667538292251997126049708290392110355830244883283392531340709961071188014874569482255535151514894249420571713955671675325835741800732618286480132927795361679883650942539719505143079116254448675772062529439894104993182743881496369612242830544409985973849222167557922221721115577458973153213735012638992806695503112672019712419769847302202848750686740780864595750466246766738180394279558974721692019224452266484648310698546245688616405678576687985011571114764384251611685646162980133392333386117862622019827418926587903731178463390704138316718515678005473725368813573822843590289638187377073614389088256367740725379800048637891060396051495365590466478168246139863486658385350817720291019472575423833848469568426868919615259146456846510764634245097409956447045989220789501812883791597779088026287430561582558714055734126489602862605918014211256468251873255234090580593239420139202993389359751096566988844644196240899738336125368695663083680684807370253120088475379107399641449717401662730756539349317387519362778111130547668084238303621229701977851213085660131418911629788445846828128066786009079829655548206415152611220128509268132082678189260220225261046774902322345506968394426324524289489761210947774958291505345074741184730742258192348477546930928035078381032113550670562039784533995292044460237510553940345880653519377869234753486265909363882984546485767449960991823141060000823390134239082301202991915365326837824025253415503921497590860358380036187132589678607694526647577546154165345019270206206110757927626358797929146999097684683159062634544013915753617531227560628103491690417437581447938250955322687561748036106608478204484225120308925310466895574508766189749174035416038615094844481590078611622564492331439959184935491648405064317998114168284124231369833402692051075252417654398093473827810999052086945276265466030765942260486484827778009010937837778023868265030367239669976420948082987037227390282426897822344320531793518141762310409379089441838411466575058268986641728333692218772002670376895013804273413129342842242511783269547954786721354532727338709911264248170903696230245247044628557662660557994503780048348952518645170591898143176952418834288548684686590226371333299471619466809974747903149363073704416289230219369269181498435618240010784949125721150880818820249167733672934019096788863382062202647087362649962561527285187052960662366283156440244225859082015723435724697025282809649460087848680744123660184851003930120235985859967554680696551546022113966528299982862336584400618445865955229647695415866199893269808524536288808014803591637594904104146519648457018371506802335708398310034543303407123395076306956884266795615391195156983794401743421780752690558145653275630630581940656689539159833577016206190140742514018147869602858535960190855379917959187995769391328571575288554888009358452486998882640287129452030804706337811257758638790011878160509186915691629584709280437802386684082340777227050489679544391947735235223667192227726671970752907775095099881828926369138126254896713993741836560322250259999338814599558873764829514911420609638961944351814556248726122609923912739801841810804144173728872226196543953550474803172341848330964314226651518181498287176814147699570027451635550005631686567035133107580979611566636189247754751438056059245446207913896471534533518687655206900354271798890997621417543771274730212181822701759263878199695422410257842546579171665603983553201914598951084492613294417150033404163287849124454683566287459076648209029229895086627317292347505267106417566589012109501041248052577937738489988980437160727541747647215122166112600870442224477107420837221162240708200215282538098041877998209222566284900456739685044991455808494003254538063093233871684578523173495663772442940911363717001257699227336362151079024725216667934522542126547314754875755202314120691232117872844930205534526574263096345768831367028762323644507199124376737717334345900460362625496045528849231640818621767431128941363182925296698545868513701011577212038042105949383731280775633922516919470601910719089610385066864336503663577123446079047782707594014930047227650014372091609907404423465343811363568202522905890056827095473404220640569479169545380084708883025967858717071644123816863611552745569149317721693926729147746622252823574059269558794992855990145646663427924266311836741451210225579642470640201050724721032863061973299318011504927074839545987637172429337068620134796887834375140100233188596010760351912836358720443329803136190551269991680297977242614495698800731517995345094628998159446754866018292500668707945330975765420701974551983687166817850394090682723109732044939543833646712156386042395004224028763269038102043161051307104816680954501827614759044488570447959322635607801139533355441613166592411978153286900744814632652084071183159849373606211353558850580533823693359016579161720874156515552280403758846024866476736243389540993277638706578827884728206201038666850534887009582800351747219607516670307454758034592682793236968119242700672210311126378651023668338383253576749087010012273451647132525193582862946209395405381206082037483236946796492615623463301286885396250492662778260574472205014147419514894632689601459045701173374393000040828654020717125883452543596202969913757161721199674924511920506278123695438267574073652170549408777125081070939845951384560860209824628802374450444040334605307718304047366207562697819819634784605253594450563865977408619447523311066870295203184326545285532290137675380363700768497418826888524720983689461028641479092778625807994754293741054027032855018784247328483417922477018692348238964889959749643285249654854707909500348185802288014033432164251035423565665056659731066625205521199755739771968280961338871300070898616555205465560139060952066067964921123203850107934640771442961320154603756252641839224976431980409158326206017637237666390939264850352056635310482744585435031321491091690861430826566905923800742746038026859550498776918576795151509499490808131379483634865452631233380065598759954709969801451385017787234782576636264856313195402188802343085320090038564975397578156814325060594413904525012217115546372769419756393184039494032257301139803601778686433187442947183148918704774055914449912331767390217030234913887060624998098347552902422555760779572225020601225800301391453311067280275410741879146871540282083323094840165746566332200377727824738904278703895500346574575597060175258747617982462565031422743952879087381723045538483291692553877785045632342093584558961277306341920556737950699744533206961958282687079334711775506202462116128124859708865381320471045104351962464529468397643742197768394801068384699421247461521234504555966821129689879601561096307874034659221830099702032397461224140346727389169420201279654751050808119386680404687897553016194147284444718170594550272737023859663720350485239147458837575438225304079582227648166507658687496991868867634967376101241024853088692949850581724961433781133949241366039725136713328474508294677069728538304908204586270950417059756913860597827553241502159358264097703702919218746924318663389447910528768786946932204952425139057425495268701429019055993583386041961644760594824839814645631381457395441826756497964310603607615447435293175544803532181165394522981926668210907342045225958136324404278550026044554935036838420415382464553225981076371209775007462962199083049377667832878302536841720712486072633888087992494188935455624306001033208693493433555915982195907182458378734971947654109412483015840002461601581577363005860466859604006260135531003091406010906376401161789368506270145827062350735241280036168705831701732318453674036166201464637122229425925067275339137329313410314014100064454270767741598242770252709842085269777426421290950832495500065529567278411291542842005057518469372006474168961528835758241298581850071647335834990515622659188796532425804505050399347389279811718180544113208731274094090125360671405390515476186225479476083038659251063397068051550837044439254134354633962771505048883201037774885376374633479934167198245678077886334393246148213961480316095077036218222890784841389402660241824193310922174886149699477316334056989132064246992718691478502706636714871583241402193413571826659807543492713137055689611022727255412207084324278732847334575432930144920255084857407987401655816362677821205574681093536641549758064793064835734814949457398636940326206812427944664420508903082486100028881487134570406638734063622331963981563736453815084826675316138444529610783122282719023255574867548610022482497881567943730370894672000621442636661704806450805653042247394144035237212194751827413441236078604016362082528562179767829596054247408162812941015964880886177072814227568628479609047683430313233352016277479839097920326925114779264910562597996483383088964946722661774656582489546513199820581422902710593562448357393831333386377044574200761933003322587486557766121198287955792368306409714332643330610265090336392897921706570535903950313067905895934529952935886203500070616093310924946420687825570663600808800675144425432289365688015345360801094602346796484523309660265142528844960485203132110946296610075855827137030479654887886785953799867417508496679271575221999058752920499715091353401275878331411505196811017271710244656685683088308899861092688222434902431536252979654600619218251803089429634031826431847392643920383555870970370668692932419422393074934026556322668327245816329058123852388856038141745698900784252392051988432466677315279184137575053273025429892534272209760686572326653455917811314859460297294346842696351689113470420244873907858631372986559904329549269333845423194280697848286602953835209062029173312165942811920936919250504214580129577948929322896162303341305468488050853347042960614606837945086142059746216590424432839072426227676848713155320237813654305875388227984460022885959912579876053050735560368193338655975796587406035439523499330226747069188055317681360800671534800142451309744920209852823861443277150937724086197988872507975054726796659008447381845184721957066495958331522677185010422926674720504284402714390283148691670575356796347435366617431055608808281857491505685517397165482300335995010992516166285062565834479549947033864030794919173323764230071788416425482000921848889673473740651425363014603924691791529452514309639011484958715482905495217300256424973202487115010235371398372750793730745176072145400928564069733745844435391027828634831708302602825225049217618973889638704693763792002759042656913962062800366716900973717050528686301138738963849122742693732011272167621710141601854936298039604385740680079748792061512307172325783035834816989914576393702136053863057346888810194166072761647864315701760948567238269920073205264441112451092671591231206487941156908832086799131395132882647702457743805721195085010225750252621757079552816667628632104537073349678897078476399545371190885274344318687252327111035348455507486972051327178463192285792869295703102147197550774347523182903951934992146829089283969257178496111291909164541395983783525571297417669270879420031519262289054784930458433914836949964495146292399511636860050517606601717999628394643168385409665926657560225273897582214951855420076453787657758657735997037436478939230384974654754654396796378018215911280305928298971896898735557566418009158474045003880393244356581432044817005086465001407880988698704809621912824448439496321887118125416967505721089431642565734742742561133266338539393381773226588380220163044340954984261492097417860598509099359622329519879025084571762351743983307859710543705161090801583678080785806397378026816827686027193302946995120735465634029270361036110690862785562607767128306403099242919072561369588742015149370175442474296675237207749878686650434629028068245420379725880927201636443269322886429857157451812026959715726837938335706597792471362293879145225587202057445045598551014052653277426246613812620747516917368122293426874624309507270167592880568643045248801208300776879915537913933705577382460862770660145182009114773491098974737652673350025443240506678514480715854752308099341571961973706673362409609954273720212647072771872920389904598817252427722858965334157656405090782656789696830316830498476768240634195828265841450105439921876796119793925972096470743630207316304982910122322831965095151751474621568349094598191666032405105821278337826066108425754188378867649498465595002114629040260532048914051361528940836273235180027900283976641451500567885429323572292783415544896634418025080032857528547080468750821178817740156300132473413774846517438055558671303794754781169107385373571169244836482814458326731979239377732159083071572592159833399860818767331445478173864567177593895818668285930852111206369221709360736715423452130208417514637740843391067759310178275397909327691870426093457845309790082203609986212559529400422230463062316900928923698860698643837301510511711430253117490042675019601115047877295399944318684000999105242221748001508713192984998596192162796641625108618451947926647090391094784674568061369868448879681133980634890198521533194198309810268737630486868767524917932087612900950288940866070952089394206157311398423650583954961070632336057820860730708170921288222592684410669698341183582490159804260265453304933361633964894925561272563531392305721796746120137021939397023481052778984146282816820090519009320493326150332031231058416574353091945512704897503883836796210120984453822319259736819101627734083132398772677156039228258844458893309953866524624836794810046730169344562931504308930921444956200238316533620976414809883980707684775868862672609179372637893906969517657048212424302370892649401925868799106428369910026267386241237163788773592592276032958281221865903310371074785487680543327102936840739799659979643453360610858385022063441811881061414760150511126924394870723401883123824373568161937397061001487080498626436722845067824086797511069420081147223699549142485565614592981415080125514549764832763041626271154838860514090114607069758321103232513398532746289171573404553247756460593817359944149080472019487599301442788607031745140502367237601778432527527037154914646782458493043326613114248890647437955430486956982338995297854954648214911291993034113607599756862847640542202689331170284834168747095670339316594463086902400142924334817958906810124593518550673828226609379562805595708946051923640725777851278069064777157418025097410875677015896241752278507106942133726441805591006520564932767630055021587813811277851823358295847562383460247049166869929821170493871761738092309155161818560186812041618240010520692080681922319424592429529026967064157730193939141696913819841188639402184401572008337494016639679492800633296268061294751951513365075989031943089088965739851816735408136825139080769562472395657855426766140266602486924775304065473983580646725687556722922808477785446815653966966864777235294087719597110039623627666956375557836245490978267529809727219265959786162624093845124823263308688868052543331922721472876730237753239177492832389091549724955010487599319095893607790632834732075871075643068822169387747744278491083813146952307856797693386611369663029226323194964392901411727102764520900830797363965973719540994133730352611493793505249218217032451603583312423826108425098719588973084471079426515474912286385281771321561278399545673107923902112820655931659427753882697787282219480967895796346508169828958200556068542675065822312157469166407120912289289082964806851228273143832662366969523943797713614061284392761208454733523502328768183661322365489700026530473359245855088867791915090804276601856540390789507236011333595339558225758323517840339367074427953058537060936005554119225328453230940682899996189743031569688599898968313342239556753064123148592535618153248748639437344052004146965127769294544041584458461784534193321532625025342980393692596639055818365242542144872110583034435979258662374635287671250536969671440599889845203848394983864417891058817332315289956886809190779911010556503411252296450622085830724508961798271007576742178763258864803819065103182345282055916663767584886661680079868875967353237734710183546591829579227290875383059762488652167565527878763980637963240307715009396143009364512722553621649631007500806085660140439723240266962958770899743122713102831818841838440690586086868153298374474794527807956032431925057725822221786715452428883525005436268378615422031085752437933947203050038796661577438933090928058001018718248759454068849731185744836396486686763335147253207618972000469909677752214261865288631870417679049603683403794144139135139802492810926927390601638196007227626482372860920611715626559360623410499348340333762344839738691739791631168500151764126022400127727838398955386510059535042057787065183407623517419761337388259583117311394409351072336179167264360113044063027033824649102038293293130807968905759050361509251456792970800752940481873029797359460792439231419145139205515353077184622911434474648596273485906434387390385360354326943464616273922160787345081542178705270753678621003169714185584229576738254837040458348522772879522613449765370604223567928371892009452318798956569628976300658249824902151700062893029318529327724772502060688873519485121868353809143251905195862641023969491790226132257696121463568511697859602649468620825873772428752880651674289793762418347895375713129894971859901310888465500989805932852044606924208364881686182673065908838368190814859833036026972474933131768411364055079426075570367074313767059372456510388296434402426978027038815369103732230994679642774092929890491474838334808460530341410542150424515732382725129417159982522411079631788623798704126979290865992893078530011479434806934256282463765035081855340705238213666718885682419486317315407518132527997863890595857492260127409608986408023014726644326275625147203022773417002627215599165862329781451505109874782353061992456140694954007174455887187480061185960416395078361172639603475420546491262018365117409806971312427481271648054868519009252871731553977488494934397675226875592480950496705521553520887864052876599792464088139314037733678855514597848077777876432543374962779696653487173354949182414355676876874116774800950581320642418321640672528681899954771706135586135821549530176009223218285255644676062480168748350279016713991332316329645069243834589186803568155690732460655473543215113278403108632870030837005026001801329600421740786129549682472174957800996147918475222985677281854164204029228740672272955431206741855870129870252164170806495844863365225006732648762570079286312585972604601543673693288623442796582636892971106216105361984820575871160082157883573642549086178331278956621971373325267514728773502032130258342950675137677499919809198104843566580711312048042926432728607482274259392640699450496526276298746051141814410648815206481066766766226424566591978547390845513244550530216062042098798516692981493959373056081321767557779521340033045112106791055208558231548163184292433600846217206438544694533621331125640678644808573818918033431990088258984841960185002199347524764254737918280818859652085042098327829519626587896252597720893942958694760421325661205868957882964275637991138783593534695576539821208268431903933917585258592233821531406049145774981152063062197803885540121807605742044715390060016553265451128052298781700442571917100210813816800572927709370679767787095186692609533432555315920141427299135019496439382703977865662426237357333159870019598466394649865664668831074559932587476881665915738281339459963165598017708911720496774938421136218395566327783992954162273310975786132151473354824722055137515572421950439188043296710577253804898956146875255454812178454728768302628846162550185904452055191293036743216341837574185827704138555810995342623447404561334063056452077853514870364306635218088981104236012554795167853716766304811816533549688824782980615507374488564284707098788071614316098106033920769301648882344976520453087891826762208287872681372915432999553287288926815503319600182065339207348110608139146745916337113282742907479589327700776258261825074609611337992630919666003573543329287145507915990000740351660609296883786200209622528414734766498113457364005584751788353025963048547747867152593792896352627876991955857468297423491840016212772307288207964532485344579626512747796916122494331483265647701297762940795125357732755242832698765326877992997926128891201154015764337656433177222279952112983176315415275749677168855095865199409307497967395721514748400207413355958051701773757109365416464650852135958982646253827637150056491803772227714338452531896497415178832126090923121532371390407500341990133768331378831171664689836732085753356748674416849759460342482145651662282008656710219327430553304305648461201881606571901193467981506839325991286758212878017572580543632468644073468209831054612508161786774554506769612064141398298700739920846429857322293040307143648814692412045431449937004181276659053514295584485854899252287671529064753674840197686032391669841553253421891537551407100719588290946773670883275112186941105056881493208167863073713568936653668066581990947434622734878305216211041082979274594596422021338588756570901079935965130384671588349641128345576739491083573165770548904652549203853848275384761838048471112456333762095342548401194576961794704205099654160528776627320687460588079616116895090501458112996118676285694830484535662606611152673568022859012277097317200857659261042452717675119231758954185974636727808662558122650892055428222689152768955293779513106212868061418105104157897836514107465492666740064858086700880930219944432050575065388036910179535633206495309632387794539703258108491877443548577810251622557721379844379035539275334307284903590135699253181031930340111339769453473014804562673241565510837026111749288605004007895738920680794633647091830298152832561227387410627266243743141055540979887956295754719231515083455129688764213753336693426637006490984438792550908531958265334097739855503203584745472303927935321102172021666725414671216524503812050264533823851944938433495157009172040282846568259364835040880450914386314298142974697398577327831145016008043353726114543884315644473097219075679711391324079357688245438969306673613160956978687593142972031473023173159560051196029687575756809673026929660478367765523906950880608905499541729413870211436972834063272972245505635113258885357190893024895076233082442236317969531919454759837392339608074240914196727415530260153454668777249914383461761577210880805434661673486770851184802165229670159085482157521030544156357111067473804932329087023058754763615637176796121779265871170534828904525803657640165061340030064075008619153547993572239558597022238831255124225888601559935393506986104763687209455716765297070159052414330229827314012483105184681043167810018843663450607037569736764176658830156888546540748010328873061976089813480354590155957057535910762797026193729267400362958135675672400369901027235604069375968698752904245380858822951964679401282828455141759812899107453016150028777289480668044247682296483381316704144672294893177212120513013731817961978286746045888066156224568077235340608826329974592051801150935749192852722440455163029225217722990229803902979111258030497405239641142821616827691826571351501594646923797544376644998693221030738683327167419930058017591362888766392053197929173796545665649772577132853897866958710924864937619237199049427564469511777268750725820404410473195077566661634376460247815603144635566221242582688694450803017546928135738022385319822583118830921152567098201736994541668624065170474650155734515610638613969736222009064601129049589462984470959530861194092927187051606872490406459284400170716795149604232391335581539973775532988242676909277194544982019539203423005472613681764189045429146710093931099462485426645530574595848503250775528075462916159922675514142599918574158033495337257306314886749238290062210568032484950586295599552553076881843924252026880202250820011409436690627827077884521832194469989857588717027002085641407399019884211953459270248444170664426524533864555722921797353520608964549908180717138152798117401884889332892059688647076016985424532522917386084528505388375320715792612188667124411112822636421265547089073792601101184062627700415340080392961033094621275986372971430537522031294736549420715892790357049045840924141084077727469728666245780967918533400929178612850397225028684371741703493901311272396591804205564084765975774434770790078548797492735914601762690761205714821953105786083621506689868874953951580911198806123476176813569444980668411502749356265624137619308322456062971605454529910133238836725743312789571339232591357523855267226273434481015842861630217411392982324926851208661323253844014501669104265522339022754630886296220060664815367462459246085322526705083375791382164110813108151174200562075248465934817550252611040596932777990852047892967277593800104018454783179775561024397110884559516440045158710349602113404607964749486081956523316138823891141655057016162444060398811461131413080049164223078834194951875747418031095056785324225738422527789374291037851641039404183044853770918437945222159582160479325530892766068337241837113254677342578706641079752096693551767268086568024124235472887755198949310247151488902480085377829611490049516779353807394329389518374724559777982262631551344127615667627423675648629697780634151015242881754951865578384783965051280531792157895118007524163516597293499600846861836146165761911332833497987267218205571553067273332296760733088918295583031080972969581764605128576200925624262379454372134647497166571966581777720961923094211388056494639857264851624231621319209487989245560087109965703160436303244159636308633078292025314000604755345376060807572154085600502003459267417953710067408678165381256800734324052349866469538411626554625851716252384961698416933235543435794276338402903323349614678257202005912210267545352465056485008541162605606660390849633323455684836317583162558502429875469335987170282165109909618788971558661696245671451537737821112629569749602931532897936340407829382967520787127765865058161673851684098875785460791175448786954637702571968904511592324502105208971212644375578570156558284079193622393513892390842025944995588381650826614026784159726124257214213859813298850637150647065717776624968559265688856204352245336133139041935386600967678810350436537716922757108683741664255966342437310055501431858178166105592390011757898001196945062862409015750500797442044493328659343898197796894877144604817164139677582872928867211198544497406846394346560795189917549563354217597505380062890065652987023574648123952981155523818302099514552547587348926359587482204423687613302152486712987560035531712562920326991869363742631877270019781461844721210127601990597375959028679786188036618936535293922157195979746920890101667882887632498808120336088959453106508299459526245765200892837969644438033321440605807069698139682639158407729341462055081270793535105545448098307338064165626838614061980446058751294527966229285192240420147134161442103671134841933835915464414223155548237826378806964679784893206959898985492587523575250487420840773511257526112072597728501880582725804555489115964794182317781264329524771866728625867456782372252199502262954371464924377710488806025446479917323652537721747856467731218425995074809095110688056130744755560674102768181971781093322489646454195192813362426881727255718854728444589454655926809154807807234883118040148103963804057789460049901361943461111296407841080486984858327329437090792703872967502584712395101068545045291583278455276001833056267491890760390408941906693866908398409306512676825037216840994088830216766699720604155102952497693610976461990596556965029584966809458033676501031700141442831228062495651414299564293401929124213981031995497584548025162149835799724510404431154370084297599675381810804087787007142438760494009630296202143807180039006792698034926824410117473017545705130196770038566163749175381526329866356720594848803506911972465678295253444508486448100803270974919608526400280363125157313607447207944498492213325599899101139442027015701478905829807622572864537100580594428320859239279593793892313411832360595398057299190719170137663288525899148203036110033070782213969911112678759950731890234083674719506398189952154793805487289628949521072363668431565503427099447042199281284179894852652730892146420214446296556785377387811545434611703853798358194757780001248772865044494769231039053303435519345172958683285752581543226694801384619095774801019213573629741802478107381764967001385090376019743591283613091122450718165214516961179459259716603642531101325064641154580711707557087291720561755020738953975570625577383513592713457225302619637995154552038831640199047206061737351852811682413562545562463827387230766931078792081771615435227212110708780131487910996226751407632172191599582762615866255985411291626533503194773327514845421790131836035960496929532501715386640406514377747629017100373915919722732949100422986670330431663157224431208799172625079050964624012366549486383909152542806852415308196826172894821604648572649180007310475201145584617916607250211871546771661798144898847730658351156511663903707327400160005807664018929303326002696909945280916627361575701446689245035473976120657300901647621132253568683521700890320991070856999745953614558134568045704006464984156451180397125552570148489118741277517181576761400372046617251348742409817349030175034890026307752524012446351983701042155320243901717087221293689380438723909958056893471860239042894103344115194067985816289182047831970051981194686918654793074814779414238702356094766465585382309413593087126759621732271105120018249314904548203057993734631821188070629055040502207264767305603139223530854058431037350763723892348384352418343259437464849885246748984519873199749441670914534548780380421154052787720790964816796361673296143571405367262823693627604566276469445754473602590033946386555473825260301070140692880918030008770386178735706159939599728711127660148969862584790347091869805238930883276998768705674632042238709927526345519859640176112726389730755079868740039952981465839381263650023316099145733766798787635722846844734233235850206764949723036792814746572761690674872975903089593333717564059014611026215755365637806092815842264643098321300525640076778586717724082006804477491932635463935678766218722909789777913304849366278598751790598959591861582135447802549775218889454289146543814360562134744259711028382010321792883406236882392089625077841819057836891975701304531931189323959801713981153089179922157566307983609632857088774339098398536440119563638574100117354171214108324747126428397363510424231089524595605460484612912190610925632122957291917090028005525410343589953522857939867231266128384246844080803798610448656492465069948205884758793962709751863853852319197417153388086009001485752059836066374174668332207788389141130075274446119543899241094414661730087667101875664298923293021173187371119063256512680755999684320955816858357607841590998398095793537986747099557051551840396804590088466290712099766795997735102811390738205446333974167708602816036689052402772598923876256231174711851158839502084166152957228605313180606226054754005830086367753167563136890595195877178977228166078731382068873340607053296974576145167709326867962765051350006683890287374872523268473872339318688930320962159758313448655610777278666526854555059158166400656266124024005581902258044960166053261979784837535301392617603935825597120656813384864398324252528473955841563096679336541601088261656508348012298026979009432947284203474167542675757778875362722124559209998899266706716943611556189254939138843139712945222770691867193939328917957471912945177284862895926382196135080976130058507427962382078636901302875640905643283305793220757288389476430896673807835105350022750284611637978865766720098261540148998015045427065143211989109987662413176800207712821749208413189097105741434290474235741481369831624942682275456045174607417348107885031854134915828562542984288862014115560152914994487698545156271335166818367940011178967488235958004659611359435720404026632974241469101081540458325273051247417714739874957236038329924354075239999595217091516004110362200181398827101225245677724356395104424901840983057540129740042162231348584096088401378782924088176764228505944234118355458350150376439695043171999124152747618540530663142611051483819761703069124198497310318081103551548437206348773105903991517047011204117834612010183118076907496743316517766618423414094429122146997578758052095845280721737133719660340532010629492168855551390073943988018116640813893640808382896675816544927513994020084047489093043071154483498909984737494514603831743941974951301248619089050311530455073894584489020267689647581681196896131098689018097492858883316944199646248168799917260865388964686269222392640070911277920993640284164289386134773286253493042508242688133489850332126777431352055751542829906711592434419243953272076288634632446118546052195474738445192690962253710183716133656298163516909565434305157342330961050813117676881081830563552462999290639522462179421090100357718461976455126124380508710518795880625928986410586357503770398450352458339384148100124160116901493870342482844642324047551766142466943836628268656768344315191521923407761403667541931514132529161699237817218924149083889838057414412301722215560488563074908488691849911442404075269697559192809832583541349104062053480409769245957172265702007133998128170336786212940022223052636925540171095280093671153947043928779198135731369805958052391888728564236794037159718488771536740293400329838859180935058259976585017511562722678999161362304824532965590860437444418438740747109053432963688186073611780903156859206617477176514014354224343426169067986147710014483844615193735506593151585500942510146046879131812474497451158432587403666743472322273725365333970057082343152068154594891454095584531204415802004786835204241047527818295377932950195790126262645561933422820354087583063821904894445261198263947385503465321473704311630145564096482749858484372486619891795981564417163104750484543858942283925513649310325681938625324079145133571653328601498890718399410112424021578751018232470277492828561664346935200674635702656557694639882914458781575187345337865831950753374016949279323762903476033324729511684312967461618396064304201412390369819176266482235970720089086370953205124662953826075846029701156592211341441248756700867842868289802510620601642173399913607567638289545493919580305158228554293721350013976168425538480387735831693402978505208660354315506974598056833130290999370172763607898240777509912156143174721948610525494528086317969850825728262530696113184286276884759004729399016111740965714432603331965591225977899647973230371325008598516702274476595663304492990591818644337699402104696908193761669295716728945258531425580559982464375912221390796527549738564503256305951664153857361615292236947575989301303897550475208351766593728162323814962712166147051996514440708233763089447069789547810866968625652479060324436868654457688527198310897777242682860986833739188086333707691643312139882469481191860253941874883594288783851012258847930017081277641485890091431123402839225827226937629735489033019177152527996585441832614912732544108628385844605365853843673945810741204086081463972481626503214480895776201751174549631422423612343042848702072446134243621800829503176725930707133357348101455635593373014272795400673932135995919112999594088962832470244052986566981952089034154941028652506039152777012797157276593000287802681844657303238636513170480554652546629431224426862585192715360609308344295481866592656983815353324528108351678158377653610408509043155588253036201582124576843386646603946118607926764945046407973091684682311011531014242538940907593360616706717877566994924928109335755095037614758031093449722477861167147705978525824308489078439479910371327648226101293898536535185663284410154833707191167580389589189270384953713369566761236993623176550936152213126895685867319076384661200589516201158161789361823633429964751144133628887036039961238992411315209360318450069841542423578502456290091220340708621046051526977331816529738572862183361172839887771418263572658560150200177330582478002864410656343288430151031716302486674381118244156282920572633863489863693404767932453327140216283669448643121832845709236239086244939885054937464695261583027352411436651103544556152704641790407907628476679598547003450751492839298588421075730690904989899671598173478416816827346997660902947854056226498835527603723460264847868123108375460486189375648846878174320668116797150329445698047822591490820408734608292413998370214064010135359154524507015363635586906176834425385114680168062915250507679024088894528935817385198257869752311862168418292161748659408796093871894272466933080491859032671866870286895338586723303595754170655794280768248245284350892354120825004704049970948280883733588325271606035483546072415997109339964676385242671482040365616142213739331009261119086464855583264640204999303298144127869845896245661219501036666426678239604619574760132328344564925872419074504945272884043542839161875980342149593191894257746090825820571069821251308118244500022109618871553486077703649852746565712982676729694847949995432617287266425117229990723934856199254429192328004351256482722404716391104469010215011444021009903533399947211383995534085331238375484293114188170663565493362453078284257696469423570890275604862903887548349422749141494216714881533859868311492479869222356259865555215505946765531511736834755663982602675817985464572919171466626796017494520925691848342673677507462653129521553815413917238288583374395644686248573965037309226878185622760323359889703982935660745806164597357695303471134717961323067348441972910117005952153248764925325393842153254095376620940260810825052516530696212759658374118145983222318729818157925806889586871212703781116846139561101339165370962301786887776120590046003889640016114114076870050205869085528675787898824991428641771992391058571448548402015928305842330264261239341893825468985840549468188318526710086668070877920362206716846688235498045149856825235735767724970734899152172723369813961241202609455819877525723482347028242934181494309855547220485823231769111644456961924581964558896931854634203368551045761004907139095600408757545854496290826918815057054311959789640002456215710760773574104442773311661422554470713827084194800679721179018616531455785468781848861298251184034637328108040853004158848048080869631283621776738619144417586171370305284793046070696097087971100743858828999351764542047702312967183656248309456654757222740686902933805389338328109290385784084538738988950983448667599898259670675670390721593703969317611444978219507439742375886126687869667516793705321123387617856080811653485688087263311213834716070449789822189288887057593369513233415041360331739274000645947274981087870509971533876702634434999528828351232580704799654341367355700981754058224782400196336500203790682678679990149218374614205040628631362123756116239598266765429869952150448441009428286498291875643434902015646652855261149663835066091941144510938838846072596800305147074233581167358692306080830277493480548658969121387289820951846309892658382659721083310923204164795603691017926833707250084909268594963536876811808047819509762793438487604845480348799384355667864261753092350694225292987039491085218609110278680007944729130738881411746728113693839242236421764211624742882831842910300756538667333121607648204039818598862716922352171435067701726333216811284695766975312785474376272282061181664176630760499437935170115860619677452517227234724663010024409031026957638852752203602266185398956933751593240995302056520566128493465048055108603484873116973934711673261889617673906278508068003971940248613477433764544988915511427299500332116015582958155714921674960237160006438996978110997540735942664227544637874509843169561514843099085342565193775816858812998110824410643914612030837837220702815438130763285556201082643819465038228167620985765149885189905206573612745028506364409901414419277557024900795953229717372447505213426858653594118865706210283024488672203739350223482258175934630385299945848522119447726847959500047651686910517682669278084339370564394177312388622948253917495980868150741418067794309087444102596658515652759616828971416701078725634600645353388031290558453270691963608696142387815616793764370515567738463809636376713544891621418232159889214730142272190835206161232322004981079071251760319234911335317622864657415829081056925766276017319424044849543337386414537356473491680206861316004937698464649240259984610912528348164897158486949991235833803390719962165071010982791894525717750165515154772010905003683364849784532124922421237055841187143388617681221487930105482408786913335867587931108862390222912409824728398176277248548450286963240274120104567132706220347783844646108828172568745468032107888892080736267389368353731318635919175711815130609785007410047837635861774180963467115760923922820714496832375736308036220195280077780559283000207497905773758453690519023941188746778227340029779486878529269040027589287625036377227478855112560259645663597718310068280684671480140310192480861987392433702128972415725417471253670412631926728713258750347673664164327581325859725305671046549186969082585044476734177482437415483745306642557721262209486710842396730023133372798641499859186314629724477227645701467101232598598273646148289577825427606868817026616977605745876658393756199613456673614284911690186495680473517581448946823048303995816641548784764356405691960431926363966280806042268950469131109594401086599194849204747279497736171079752665487740708834417814215244614253434208732710789311483311423061990112087936884396856162719456726767598815978850133140225665900585664380514887486562511883273282798271223045332092887791715417668045524232674709667970850753779959408081525983555982433648502449695234867568938972047257901063892393821621404887591237670511219422773857271834625847303722456375558913308516702207929246192578081691233909340586683362248002681983555933768363816912692680389998171700813920482346996422968441390663305037684060012900118227307965073624172521038802810294976025843247685938659891003861189281406126680365109339829890799230391148312212256460218860982582666528299018304728292323346783885519425869972744140570722479819983275086530799622115147872300583283167100759341335429113159770418078411875174824976055911623899440636534513658583621486694320125027450729557661325930459710935402363092690914675156872158027661194859067056832082541554910610618885935773284793586079340419754417890907580424640218374744706777908037879851599376633015419140351078869835998685249349578598917484600378363120608419469754595655312508280111345624994943733181813369126488540704654311449617084624202849418985197283797486930792957446377239306207130180166446041327413661823158982352685858285234892010400620084375503289722546544895367798791364236742613461123272168330223240295534454032074647723574961801316632367835281530268372768598458506666513699848102850325973751829312074472189677921750738446869115264275485420112350912221893724394403106367453634750498135716428840573167598962077527590945738360234332510104946075039126952583535574286335089131847238077675077202942819214832074309342375285442721895960579535352018599330025003412717659136448280944002862792191626008567165175945999847971514642403557260761619784361699675686377314201493917995529680523923703664159684073990714742601788109877637361943789437592031579859509431130214801604405581165830967494290072325403495035219187762441121960612647322328083551193983534466562319159419878205652120732810353973971017350076704102599944591687577886457278323364272717631011806905092050989436142860399953608015362715440625888764843604167579801943625127325506469696373440421363751860798577002957511054391370940553502305778913669754696220051052150951777934038367069879029847207755081343341856263484678205218276029653795691127694493606383597376677985334728870527100182622059620187692799781866950843074229303500420397734305131932106741984305010100232124237848598527965815195476344369808214072807002127930716728132788482124559501588570196405041785115349596251066351368778145554685720902599910470338406434468781447293679061362559208817542841786810894371792364851847754652031960369380527310301550822327553538050704212509629791039689783401433973107268487064254372379569315986138138916783769056802697329885719397498452202497039151978539004313865208442896868683776323442987902757511447635322700487490610692393945773812787846331150868345202691560022788763275734802323075620931774417968729110333078303934504582412686715880437393189399102366801742424491650971130897695488675149819702082875643350329391813314836594683318707358693257634241910673983978060431293601478703300663714781693848962510764408448710623103713231988118209260193452471318959399722386859371702391291797947285849616006631188128577537036936960075734009149004117510834231179754072983222762987094224835382385105429495852519968075235468560658281168697258078643177811836636201163180321656282530906499938206613424079885088200136281239486993510830886528260265582708465419406981914915960637142565848339691010870650054096475535879312431782480296094460613831574059071435494964240481251883352355585071290137146936908426760074853354752097092401030426140614466229693857504234613039385207989007080605023756118659753074168993605203907811955559206180885977177544282836146393072325916091327675371006206384906037509394932412772033366242991596481284962453800878223110480246974039423677098264716082219380154582757754315991747192611716638337809452904648977933657833117961292317554136316438039606297923458890151745113679739904445357308797045007329318649870893611063582107799117568240266408803265350600180966066598880906702161504074347322555476712766524037368246620294504277841893721976601919964546496160537677673984894547499286861961440525472759546816284439121825409659282354136551783379900647688545287944403003991863339489634852140937922018262318285385635060630976884537739017320364158405181839111031335113342594179425518785500995866018072894028158546448607338344636236479483462554967642704191681339854393726565717202114961089414279662800560939097527804204262727435580827814174891771008040564540772395865320277569067787338223221341380497273467720536888578315826630933468944843871364673847493940780119894053929323311624775280704367587076147249573621343185026420957565325269392205165357862403132577375309097301930860374507072039536190352367961906751950712919863310858798853552848294760133579532022281333130729838006734845288825245199636512475417094545503382327426555787559069008848631785547080206707984616480417975305524407623685577266421969852909403824716452023477008061342013083230758841098911071535925603239153657769097448504034734701895525250724925643533608542973249102468225136712795149633965329383406371386316384198112937385357787983982195493725159685973074374436042467720342756944025508863023480446742274554693622933564622308983310459129478530076555923628703590180140505317862104901288379878465007087497013059531108356348929466516890153101904782785701733589072466595960444778944018245385053099899983222077322442694339921228875519415020996143622933953011148005219359069917929389660237817077457508775342460957144032871559567609673749600609604049912569905088838892598139005529763957218297331653093065489288202795707230507729952941308417810546017133995561004602488307385819308220824276897618968346511640007256436455230280056361867672881733785092109293310651362971519433985552657427738232172810912523720971664093923928290561556411161002603745361280810043063135751383715090032418557637434837949291776993346240070735393248291059604429974369307134216384746442067240675547664274074029703111539939040270150097197925455328269792378496003261598289991730705547174179321731496975439593319580095857180711658078011284502807787473400772531804546600529982484932697773127384862995364129263375268515474916626148688587320419656271520522051799375335081622944650766626490533686091376424066247919825313422994395936375617000354742838190206569627747350969226872534681128778420850961824392718630624882232228860704706455048190853239727529015259473550508635460164013882254660517404080926750323524986227961236446392941814899864770367874383488035998404344075742276133164875589649788291165870994342172818457250151802591839077383141782930008637380582376491109563629214399834464148160384432661164652275266714242322474044127647177446663009347997969008383759704499203565037983753043296914510662227007394978351169296295048145816317621891787157152112367861570436291810892884965431227348326727538400124824701078790552745097171934570322603671664826984441490489272954138578764300148966824741535093122884794754841679306594135282644015231082495483387331729666549180667002954284953678084526399406869437049260320241334694144654736957067313221831249674694122629586374104790132429802239400996183431529647290079483662985036910439896558604593345833529757660687239539505688242425753415577770406302616405257451736570196519667421092312864093166213779234474943485810719752647677020826856754563665895279568627948603306675043078234563638539282564846878709947123336858307146600130820018188730306361076014792678850637447716534222270969232953367702920349819426898340864398849842237990984727702168041921791454138570495809481675533705158107120187662523021935609523999034993685233858219568767222214456835342952061089954211061385581114688477361919624838561042707191700090496515123795709725147314377610204687474821167394974945647289708860132952463796512464412709046675681649852600665985940569434041893947324834877349226456271141133329016058719961841892534683933814155641037644202407450979569340638241706182682648782045256410794281343871234491866739530521508514228756690065652460674100839951441702739244428445004006781184851729810601279008040833750749178644990828852326841885229352496465614648439550212940737525496085927121545511183068968123098503536481100012684904443939438921309641977313222703164538697753254819521711235878808987252147320611826956252262026135629476018926161187518236216136259839478935318905508062610549501200214717082560612847365769749003958483156622358748205786340361530535316409879819433224388058006925013977341292562896846295264716177308570100610866828084199710669914099350623340439027123206982300044062001692164457363030638170857374959160811284686581158059435058049004038955642579686509926635626470855548492724860197048771388395620341183582989102696999833810641982649477138576576703631515385550057073536574058008901182489457374437250682606538012951603524277796108751988904877074232462731749478323140608194088409708571637460520406590061087255673953667623184807534985756179753528982756213424266320509515646498780241413653697351121571224982522497426547152216005775540849030537362533978761464167191804338884421210069322724575007712748052188736859242282974039451781038500739397243662251596629783612281997583503415586549130105572680039998618857251893855633094240758038253869819872451279922220885294312576831103838208825810292770873500692324332829635873409584595434884766563228760818521675335031281057528777378116729692411679803558697143322262590998407993745883937270981340549772814433402074431652530391399087395079417270310313398987081759785087314313909643785045478737315134557561250401849800216249069772721800870270629920908930972336080173696040297498880277798167231839009797002163069797251211920070397505547006235504595257483035857815091564057788473012970363914389823293768518393965050464057397494602380683044082581827132052292097305040427222477771269152577047131282661090340111894626262909501579494029921319606314200737246801331375939611674312686469083461677110454081926633936132253220938240548847219820703209811444239106344145977062800343386353374797487130668096464782867331312248544691588730835932394191260643295926539209605986349901952111578961877899656805638809663845314992514877879151913459358498706825290245923752464818516292041268596384301055804954227103534733888092799677278433101369714288205350527097023440143536734300027529552991454164205572137147378036509072011094727476355928083768784900269946144344953256296856286152651233958047650700006544201649870188936293814076890865562877748036271728239282912286130047684654404519413740450120096235194366262537692117470375738982629246069952700608950710638674915484442943557948898580084421801871632522617220444994558663097498594567240592276720665663662062358238664253063304270914664837887549832184546336142777456815330549199393366736273545668429428311965379207253389816054895065507579138385084097432673590743278556927923484903297680061260837184171207209419536286563094305878969096221788829469030988526760152379490261494738111523434240672549905652685669088459502500885321095842739148391866777136007414206980910805090960743465978140095137499039903135874698055099279729920664689676465621965383619002981123810135828876495427221522956417266125063944961832917615293727156238309613380470157895619472722581446538183317446014155511214869310239836442178693390570341096559369762018205086600608460869628951951587623875519691069618384349345671269593625566734072694846184544059249270580762056477819199285648094379553532731757498399646055882012206072348614532362099724862729408831996504927392051794333981783888694033517436525942261391439034292219814038925522852185919989436856537036204099835707613561386079189903514480323084439455704364261451665537261758919469724401797920204652111854177207710503455827935499518631007559646872555369574224410281993897439531657380069763556334769241615146234704389046829330896891884810597138518185265662428449621837631765028898276386955299310959817532664281112999556305468676035413585145302468508225510345298763236098859874619900568203385585692648699705114770908589053537009678695482666703440406697114503338970189347353170308118712442499753187390877323286882609282045246250595343868352870685091062789451350691264894164361333941872699415427367310871614047228186155270220972311010850347589125143547910243093232439762846894963409771875836255218022477926386915052577128696860969924643539257458491268142054052091447575582626322962757186826021702185659233915950811802457978096513447600436290334062294536727929723631331723665840224124809098277456249104815108071250550235866864533335057270939134855245107177782432349670421284515081875779243043255270700044200719590158267365893799000456814126820222565478154576159855039886148131404873609578451433153357048978234832261473532495746286881617848769060970271007965515879140144377207411923371797814826577595881980076970955483294258314825613940304841978849352422581308781008793657121073076643136884791983863812616066449506942667400740535693765464641331710205388341677741887055706689402645375445060411003530270609790451334178860794851234094484962843385188890121590855833732050574056307765750597602469280385398464312675663130598916948179403220048764210213093709865804130462055173781362440712138179443298070984032342794180582319866295113116037099504184358311398254564333693396493078597644595145878937057371372285719370759599267880290694103300314292546646782196385470662629917592405551354567779924626797828478311444148497973873703455933691792299916426193026713678793620773821937031882314517176952887003567652674789494020505948898733486846548128737726827492119470614534235803507977320698633288970234701939704602718155204126051100136332067559311190558432171088030527949032501281758877402517022544677194824247067349585371258330266511070898046798411642692059927558880249450622570507719479844380277020487713463705324425719205722200670380062145997544280599303173678513675008381865862670172034818992538392614542300282441224535797288641593353169495190578160339085803700657874065828778825930558633917636189147804556442683174410475224577649387100107954573779989173131759602300303197684787812752804103825920914012455498322655536993669313612676797482002845584607504450595641574220700862526184456739021155473192506928291863336897057556090800432228743548888405268214354178970446575008295148368843827236331631048917194776608193437227260652030822086955620063067110046618907801549055565733224295753696872803376728489204690175300684801653847678637208803006378028601155076203682945023488112659402630909929852677352276810797556855611046384695508737652024925068481234168173703717213532349376652434322496735151880187362106515966786442462004714364628676942398179328527495013697486578883512982711221996176688566678286289933694833036627911920639970246625801314546196316327975466615904597196083284306106896284014399702683044044625486339936317982341377588069735347479668719266397199901080782634197155347061480037733089902566312458414150833321862023335893353714358102315694165673851317710958163994049616651233843713796203729049860044213891412340525324517951782622953284015134856587717216485968993898578291891780957674947492899377569895153525296450888061535227903654395559086715743329031700510232155888419842335015204546861983603399646185632585525168226193975513282433831137156485982803165489932153691313898902310492424953881499760968570167245957492260995163440768291511320063277113138173319420294973015695933728188838675655179465100729667136336040205155704611876785511321877891069333161142325977918208187815407740391744603224666089345473084199385175803603457535415468031934472732974799507337780231773602744535579347114647409973759699330486352769938015516819665061098728659564691251407359719578226272447838046349899409257128524700044741655671374420545386954909401043123634045934405500685078659165094629183892786383712545992198530598340120248913703116835470276814241847446997446079544482663850129991749019327152235119631652433580758307247006117111972524070858720904620499433913308181410713267742400886218452234966726340622706999300318799440502363143174879774436154008836022558211404316907148586011248233361001528932241583325396182585109410777301096994129907933490427187403510405324237768798772240423299832195757518001754208072436461766483046989015670232924608158810575722678354342355550235438623558857474233818575151835171316218011914458229095255660185893979692701416598678264303769446558330813062831065187359226504384339240651853710799451916704416360769053007446785388217067640589483367388891964415805803574056036659498778026021897809193656305965394480615241773529344793101690574139256981156040492488127310464989649472460995399148249060803038834448354854376796594516493055844018429906543845138013471931845538182425906017389509721742844764359062818663681482529086133737796247915542453832324099428227614312639208024787378457171283040629495491646560352831617984126958979619812502620076276959277164644742278896529996050394716663738170122112384302912316553731561270025372653993378565395727549804846954540841245965067264015540058007660612434955166958003226578342935856145327702214693370689045891120984291278110530953586156423993840019456205090579538564721139142647647225860435171330835452867035149811249004489261958794650102496144778249384774150914645139819091327517499391862772374169449710876204046670382327643412832709299776084976313419980828475663052952731417849765499652898467875300557531902168308792709149759760409148346240132345316402304567284878180542096151578588177204381567057518198063931735209887653433453970679412909930702275652018156032613454571202827217159395136036746198066344374266670019468996275306101381718242777468034599011725879819623191596456279622197009208604901704329659090295785771997484296169117439054047697921703349863506183579567006821413833690430246014705500532186611737533035393579871995999451855030799102222827681300894432092798789847645483955957589388603461934466153962258801712006040206602505380649364632849274975541897000472576078227925633335852315361972478208655624218220175371784196834381081631664128950953271096239698461581739867836586577097507862095518146907126871186352101829153529766707866140301541273644003524270378753367036205377136459932242968718156943587535621907467759345102793823660730173230028965202212701785038725487609759582024610377214299217566338858624799186731771644162757032851201785552256576107805462190579423193268359411610954406944664269791442652513212342574646477137415765252368983356038352872840214980654072322829175963141664621660388514590928252236509199519425972670230449208644717899387092895973905320385629666448423319276082699641152370852416048575661510252804032438555919335610868687435137108848921083246398552610966342844291035200955208724425692065971715947238614572780495600766887456496384558328690324095294430899282458766324714966535544876651158405759441159537978857546710863012407751947117146737126724266594614332546325041808205030840362868800446709598914707157863948075969972805464767052674679042078646643065086553366853681465401550780549872552522896572119324081920045009783734488054079087692468117958465578473918989938622581780120504302968815405168275596854799061623027634424990290868842009702008560933722934040104085056473365952333215653862306764612153165261149171802173047116307563298546814089147010687921382851384044519922511261035102150933510860327722596207253695410075955547430311975445309883111741958372124492622753624118834123838316560594356839020897858429194255281149952752404169841419540846038053029379118822538608201269770388028486480312618781981524557523382477925674060958072652242361322199696221088086608286139386951074230079347758487300705289085624963678964490084234022862098229195707579313092418351327232258571526036902235674591339695383831884681499717688658750147386174768413818396106209253984168877984041839457568424693827346984072912981646921580363539457980220236103637900840976857706743629979677781816331579741113244175925004349877223363106616941949898864954041174821567427084487589073092126815242123771400957289844065771263558572918580261447493908412244590977382078084406919680774164630048683947641258635035332006988295330351718018602032845501504807925184572702763412321624961541631798913985824518294036233840752655960892359206416088483563145311059440805924680374467144333155284345634444553251086693906831720488722852143961987067190231544722814220095023944404662751145625591095004839394297986923117099523472845103511937966789620833309272106138307829138872057447318159543617563747141704763189494991708788938376714907603806438093822895856568955732628517890030022623611678788463362803299130977612266978612614206761066461194162734489378149540542947831857685314385681172620636454493935479404287534123934089360864376297864001935756538131650668693542049535321515819445746905096325778156340897233503222743597291922358413583633405891913750771641350123003585718714070082597987369068137827056451913337380129858320256757787631013662795812808322473465614708064001344153856445643892349858029663983938996844451008254147133546346077269795764693221015786265849148437428112665139362081415923010484660687288172830879662965820213067330111050480628325488874887050197810021937407636004663783426950763414586293666065026058839508897220076865484502622538182192310392840113057788615377092070030545231365845900926228896935680493914023361470473875893818258140770946504304177218877578961975433200827276745402715049019556951490147856290669014064019712720622196153353595447873192588192220837261039693338008803236271664268848864200178730919224667151619601099835871371566802687913601275058092869684602046691073045229889098176615912999520906917584956580207361565402059669113096878047745600033701123909540232870863013679077115066849150844855684965020519706870508766442275957925505096727415776275432803677485818439800818536040820902105282191232561943665012929687539817682575418438296689709285595429005482528779038925133640217897842660829420137877840285090528723700367130322075149625112674370575193393154517381498123162097954256579295814054646125625610745760445587330269465745288260493806093230029022965604622273263353853383109669550742894707361093528344402300363311980414185084054444036774153202930083938489406960155295248912535275866937939503630919633845669024992353730910227778096140363803561208410373591781178847167295866246756696464580421222514857740919183190340806429446863851071564724957609242878643886561499483355534712313046412130019933909990106224171365079954678561024074834195176436009761014131202803181061958079558996187200010829562926147873938759158204069765553491119260859566966485036577300084131006300790865395980572815477896669634662253654008701482581019423895678570749451688255419102067376369786700472661833623887785374475426890366043627671867890537119210381752643826141742296118381737970000352414954444934212998558118877842513546544769296295446687296414565428931453088212659863617112228525955541679507512168307407333629141690677577422644916808706563496761839917922294127899606129784120571763512015033398573520505415983801338747487307586388605764064888134026280996849104245282083530410747169377408308617377895826880953213778006755881854230793680257220198231497992640120882975411929185502485175734930471693071970301529590926721130317561334959861729630549611971289765110294482035404375195400687731659416491396385686662037945777522805290961588450121537665575613006909167859513066233385476618832651913424489796823324898182655972823394038017069469241115104612818584111724410875784698497448677324886219664496757398635830689755315953048410981988024579468587130088907194730658189091539475459038184239660493463098586122376065885314469460402514345342869817394815664449217791728970849827680395757263148348526291704645888712525693850887521072932860547547201784982964370267001214210474372942440509485022043029879108276550891573180666585304975122140585102600593579232605843075930505494090095549853782649825511507863043124649997477430733163889813922371671331313829985145140105034027177221247966114323172511898753403536341225953288378348285588349552162207018129833209132195362890361573126035335548100076319484639703336601241635108585848877636875609151831623244304779791034967742777595141956348580518086964098860688429524032632892728408062605583219375541496454780856578931176019159755008299393770308184849031640109100084038770147398099615516518219963006083030554749394678500395347777446980919846437405121199917994936813015838860381043729883151813737483493060675518851053717452370890604813844318475626197264270158631047906822327846643467501656588101751971870794937917506647233390587193070981076320948327937244849556326601767721098583138199390277431973008898034219745080001927164974970737094875535972138692018198421788146961987813000127312211570508610553347814032714531519902429710963114845940188443665206306460981791584372882712658355850119684522700293704173256495835859383007097545294076986020746688086601391501603473745301827187751491892227595901983741999298326672034797757763410284550726493585035492767787746233959845428325447182866328772129172437433150579839675241288387082906916919883410735956552513900688477941009213389521922952200371507293009159257688760897331815591397962808257280741051324674752751339913933912260134065263480778952802040642605016048566923123468890419805367205450831201160818864797574877713224962180955977603837064244258815212161149586248010409230381451393576625366021588725451449191411480735790771731410646340252660759058916895567401885073492118339442991735918559401795985312258367473943209250877751475360017550195080567330827698242638210138412170180956769323295727958489593889977484755448945678510577436968544185617458092913046600716204986580285690384719964063007755891615495046472535118846811552379831290686762476781364952940656974794221897053071122778878655229317292632193716528804664712019475385718692967101503763744783603494910008218470074788444737120351379483566220449839817138776543736202164885885208298791129094355976239768360079989940247992724818381540804807075510504975142311138529153065232997560460697351646524270145262012757630045196709068057803421416991199833417023053492065935701528526442499113165799180734998317074819057487267728851129855656656273216531194252672391064636674650091844155236177743353920625973796445362285289100291083422811178576268492432191162473986416778190904931599436541839456392264020840373744005356285987844847136240244696050353911479554212032530133657536742316492161440704060738257749827948148091082623071323658153938581426298848859918812839865227729855511488691057219794241377614813303455587504174910984886802219009581950197035990284167302746731084973110228898266329394948377068479174336055560445712039628012993832573651151049692990297208377178807684425404227453429373507820759564054971129821749800942578008506020302520203368588434566528940906794856031707683218132641015342168824699239976044147571527768388005968491501402292145394461973195272959674066084099024065493038361126201404049667533558143795205376761906401528635866206334298043945484014113515228444268538555719937363795112805831197034515415031433521366197170440391664548528000789258341946865846305927184589852086743104508036344695834190757418602194151877701299121514018580679774866577272826683638435239640762569142309235036522664587643220929777460265821345622649227168162139146955842847009010442741208824343424517968147776633619203433730814551973062493905297613030904502672494703458946615093291956773624451177645873963457596361402755209410657089239775598329317764752722842413434115398999707199793491783029751146913923130082008734258755432150619380294828206044557511383737352541849887548564679038467828204945032058266521771094557939357783021829662332254865920564576989925915533518145048353678939650271112894208321818817632159430541295782668605787532992904480285108915463495070248208525738195590923532075282389073440927713854842129874363691190363471515029520956662893389810294440987778581600317099278544433036557132345397477400467944189986035934412856174549014860627034640298940629305019170165685800037934384162427917925536211432625198008093349299156408579968310443062087554656736306257250236532567481703811095033746858378411503608068691691623875361425383135568188726995656538508633721786512013522683815313667359298186260910775658070852364865575445175621177508201970666273332586416476208682904855512076906743198112750771343102528921226169659113911318165293646333019216595707664906038013141375079635034756646758276024360105600588200723457947171181572564406646694490206796607966650367657140304608902781924476444414899530542530625177374326515937437012820322955040728768451166741857067708361252006973817770344426370298229580755891064530672119682770308325017162425529326899974619315941065046503150346985474120324069237223953299108886862451735859121264368422915150859125102908816334924210762035361766751081583002603671739063175080006835072985609062361615297691976041146000372463622657084654463298046668755586642073479571651406355260480505077321239766050589020186318623674786676676438538886629717214032692438199511748336250826604529455129649766851795156931640710538887118345372013638707188481921765643421464639002444135184445145553635853312964290542524638691757191399849520956881855952137114993139337296256113524414467809103588973841464064989673048784325312890086953351332842409557019432655740842787967858066376834970359994488287931810005911567078389684874151600346870616997668369474991500398312778796607335425256381326577786911720530098557000501030523707719131447667772756682069834894867118315610220911983403649267983487880141180317658363070587520853754957444101130890334948521575303451812043500184062131484181747347879318379864896972023204139170054844823480687500792196052474970874214551560248748978186883707395117552936161492041342166693821505810366611324495014501191065228984377035722492996688395905802882187147849501712545871161331026538578074486267187545028728856603979852149243482068390764823607705676729495636969354104653331547048969694525831557890291639261147774414971829052193206281963472629939196592792071527577063755836961862919772526962842393779458168462280219034942444537554014507127092072181908774661240236926522433623490112554880495341100504561686909711952533614488204371761097555710049633567255903972893786924326927151623843309009490458604307106375450848680349706827859321877257202575709996567295518549666789460639758390797191810177446961014901267844790358765645561291926895647926127220988085108287751102389887475932546504517609824424323660502623079870166694111499415500164063206930410599618033383970340799188015590081995902061397607016673367064412795943470491011819010246657478425626056547832268086355509691761273609558531774005261922123747273712438807643538333448231862031485587412986864712766597419339726140597913517847547926938213765248668779611858831517769620747173814633920076266398935918271592285990001941563347527144349288330363330039669046112608760059170126223450514384147053388310105333409912260793291004903875838762744551630117308928122146547930669722936774535990384768735108455737486069853202363192618607726550065180951690309198051721990390174001868281588078025062567357487584267138843143526531304983380793012691615599181353365186758049518208306522887892990729648056832907609146572092819853173747433605320650347243938077404083324865282822163922158436733343501686115766243586954508289870739250669423615247484948018867877116035883246462663382057902444940619301863905337718023658791239613286765265387391576897151316853687956892809094619584452552807262085337459859727231478861400864072799838837323861964303163723787778984636978091837069810335836227837178430898572460630756570147956219730933493984773882622723580235353818687296613625688870051860202400096751597693181107038587383592970419091235733804043162844914991419427515624527292586022493263229523688963968114090886605307995730553088829484161964866713829259570895458368686279096931143875066716913565961558408548657841885757291605091844656602470815146720851539066813969937292933012871194623173356793898967461748979947930354783680438867785942719772232749702991750488526686957991341176065002275312887816574431773259625185076851112027234956395138629607153755750696872236515091066984232436405351513794067767291887449456758544639163395085572552409771237401694787959451897087397801113739414541002034893442905549156958413966797139215967538317619043758866817282110260340526389459378971343214230367006946516880133964372254545819649478503489307847113010215586562798609001853679126003628051067587123200596350172442768184166865649879666727341626224088619454577141528562054846718624112911099109846372918231623808857043349871486277818010632209897383428974671383787606673544643294194112661184245119164484429015933155328911602452852817884069163905068584198254240830875972799642752970610204807908983457381594397292953322187014278769573980690946921411818832485763251451535188969821161233786301809526198733270837251237052730671731243918792027332384566517921136355525696810372681719614363287873549719211374230041165601162168941790772478289943807930971709489372060980101676378864467082517497660606754608937669647163351247057076765750861044937516741349220173553374752246907439560588031028067326344771158899682781957028724704033760405270336295624354440051001245983060884371435898691547791973393278653534347375584797888425070017056056741083650053924287408419261036948609731657867679624016946709835726164629330880062167569960381076875602619512769891823251285177662555920451945610196083358251202771504833956073743573785965665701479846819353126634175532267028322031051575986405404712043033195138822248334315847825687642993791423380997193926658377499952595129058375315464759998616586224215836133690580647120727109565545084689165904741335959464380870809757391630595823789236622597783507788528070970734227405103369407121898819705334750294976534950901550975970698024878097116588350748889978833500965847671722583454717179189484945192679448349584065852824049233939053713923401359135064034099300462239354178431075420803718586605966900945603729259589059386310726024068402265705939125183158250364735536119399324494007245759332243330605858721607188059392244062694914460842215865377149794472387886107286346838855460571149544414104772793468721773072685805034176458613782220394525029228187854448031878605089422227205308595135246415391825338057455089987083518176732270685967699821756783799190320882611394539300680170553374130609826778549690372466504504515486694924418758178753455097465677955480036705143776568669935516408434450094230105862059330211931098975557391828997999156232700733501351524187037665824549509942634167950378190855445784757725706057850920877181350101180669185813715643767675771703671591185293545825040637010632042754958618632010817328417305916387877475199493432473898518948971462257518206601510775492441088541817982341067992334912867737108598172561002659695630546145161081702204756238610314905618238721405071713668610731106977324394186830626966702100600556518406399727831957730917721011101855289065734468582174065670976164155005253099165959010382597757460406627824009608120611224347596992756955169459476334493958389790420998889810111183884318637976613397062518237302266976672555190001924761435113988656315829478376258223642100377320635877791627385822081572472600387771667673882312276810208612512054827218183485628704465995500395735948654192351619293442173582121705797935736557653328493166512842993000280441299478666643935839496829493235672816304950092562675279509038514411892499660426634685935334107090241445448004955916886433952510838442595511973136217382141854002011867385785909588902032261386994234343227566843071179541437908731068594670398764463402314873971133042918108096238557684175259154183002753695933613377086946184951389685627342381129641622570818285836559080595177063091610695146600459592776929447071877568116477706372944571995537143124609535197132385426809492185117249391545653226259874282880644807542375118386171867555109267032974710382584495838394506008329985848763301911650217467203441768370684653900433903491826256076664583819261645873804846317208699415503408677777436580822921263351695759338499545869019027872370364591264504770829062606129314645787672761832996913598819995615945636302315557095687127934372579495983017704772568811819271050810909323797178924137815817586270651814222252897999871769290787127391224725256976813633069215657399390639251588550781534231316485271660570071566571656289462254100410183489961013751398603691164844604742804898959484758741097397578398081215615575280763027044675777270236991906633265673154147487839391422363160192110397281734444197804284946081231067286863587041026177322545165631193050107861428673465070910989195053797763541954591805427676791370070914594783970717618591225610206193213166595891906527732497851425217471163005207338977543747856755683246512357726429657241006130579388123102173507458157624560177513050776218100025212506794351307486631381131638495541789018985819061116735027989919797035590928438920749042420937318608425036145437629867160590930723095763594249152084370375014766024340094844395962532686622019371268509236715037687323783007607244697303600589516989508894650869914882649772266001091365415118380532869928935194597903938209895971028066547695897735225715133252590059910103972108100309956220323185951969047326727174281814638953353813995475705042647998902207279881303809713789713269255638078980750673728577281335662588195955237738218960279842757490490057614600957683313237580757926231080953044598340384571764199462502901218138579818821575002736037253696459122476357931875819999198531208841800040218200685493432303671234540646009399281774161396229164888273339704207244685054859421781475749636311062822752674481495035088849139222513980690723227951123345279837404711039028150311327281468220442910659156363077334629994715132617892956458888943755458839646727019515234910890545154829206242869169814427854829482867107823770535352449022679185890398230718464338471073846719205141881247312177581026416224098860145339378311799299053343701713644450329128662697085555240088803607390489482032054648121015531162106870465220109816739207977145605353337484591317999777715240185627328600183411388221088881757407227307871975583677438548170602195842143125972437173992467269199391177783612333226913099068279929544950960813732344912145425326021129265183908788065913102845478737238853727095837480056998236533433401616562362036943961060257388371150721201605685864707444489250239135605209322269853629264497620411764064101280254362229508794905811435021858379496202206071379768845461489650855023050097272417919470693126581781081089212291787215302774770881530077509927637452414116369105837191093707638577588055822174382761745212616657824666018920219684360847949591397592105740812499648335335290970670598110446095661669949429543527930042213146638274930220146495013174373990668050143710027421389102571356928976267964918469215025335381294315959676424891076726540463504229406569541820691013111386034939663413529699512797149745712584337247219985117869636661059974364322649863099059134840078946939440268326359281145078021948672573675187588658068924337961176735698894756212929968294129713825031719040346849782983848406144760209535685283309247393286050921782978339507888505101723105927378906977276465420426622701534019922620932810660698418518902350099310565316567839567508807831891879706974242539426193058629265963823631422745862433025789726242404999597741797082945957986524332059958032907832693514038755578145478891016202836676972286159412380935557428984137031130540811802578607139004889323279259108471848550331165021876410577359668401643098401790163315094614396785557121297475263782873665754918048024306005310044929502987085247297792081558217623885508266073487694940822896193558886755049612044086693429824557062101390962178833007312106986889838453805161576704573589705283113723793859249186451713353509335831830390220858121665823758968830489205164307972749224569844370932768329879233359746972731078915521989235366144192604075958036368575779297126503252894530231033927812615046660510491399836945799601938528944463794476286548526580805312737930048782313781601629949425255506414565289299671756832790003081439196286985565972129576990809269302305761127212007623566379746514424370266318541597041093258563016033783200544932286375919387962641081848558610450570196946944179420369579685501345394421166520658672973187707389017737761953418929495845719142403914820399452400362286960504534206868068915325264091337427504519472757135251141112978257495560164538773389521144153998640581212798544123347022948362308621380427199148878932523463774013614438672506786567453936915192575526587343698768511961412085076849951938877548601146897907512975561719289741343646783241769113309808799575222491989524313690558722406920940483808921345481672283397834765227517757240515251575560989282124441250387892091288463248463641080732401418178709032073659888856715045319289508584657130332947169184847000898301319347136964860618436037825078551614564273963166101971222394716756422840286120852169465299174342547856598818007659111332537647841798748756459153622623375732281575275052494927381494191975062180812957404746088356027585840933767846911031554570297736689110095934581494454373173858552261747216491933455986180847719627966084871083350518311664702894828608264859090857764551318667700113911909521773205495395414152880397462628810812821802192246490831891672679357395333187174495596477080481870232014905042358988030779182784035523684706258703492955071193186086901599869384798045507190932462738506310034221809568643853757402148503285944000381234212819779882584675711956383208773973991356111557041968902009539029231559710780786393007662999693572109298744480762804598348774390502514464685322118107407048419043769125743277285049669370234291983522225469516925600965193823340282843778755506607957712194906478156911090172840642506040901444050455397978312259926245926201449230020847092253560956900551258567377820775461034619833169679312955518199133579647636603097016310889489869754687918828314884105568599297856042202626759162003893664833668878141942135732208656112685312576567671611906862199406534265438998489118997484470829433855484179341612942068732103137990781802802493078269804440461993666163244281680093294148423411741013489494697125637962564496674567333468000557932050006110954113769810975508196390670074763807609506700197809169469845068681620881451651997919385007093182523688482009574869400939769412433258766035387391870505097698334321953534236847412150185276697717763762180047433147472665718822661567920924869694288678570789247695856333805219953985194558389146614399235162865276269210902693622328885077923607030921780277422652096510568004326147298203641469743554683709073105756798709485855480484192288035747128422124728427923888752211626812423063600742164100111343480370259753050816304653821546454410562095236895784234536326198520450489580298385201464552080191062194483814926210424363935301620398017855584749376596374134167981865553103379225123835380844994919796867204269142325165708836370708527867009194282642841184847486304862909483868997694184963456733135358274073022665620169555224338228568661309680989166484199186848357075839964195313480637059103333043815614881480042990609862149298518597725363734294508346645025815216253695587007638302942542250124811458572624393751645376366358809933971949407693037447163343651364390578194170635289698849525512157314133021404816565627599005060026338266492898831662878076586104726641114822252662091782138204142601605263205777228410982277520532039567121378992230241726699150191511469935664764285623415456965517777515907895845200572917401683838313171867074489781647557344131944586543917221240862113731962802302981393238756413002382386120624836159315566654962098768783308097745760394069385221736543177307716569593225915690489073178320337980806929842178946674147063113013803423409827916543879927820225929899890842381835189374902426298885084318101760824029103318146780766219516021256077681764815940571134107861720317916870749887499278989265103689921725460011238590858543541876110568226155029609860227250898278458455388576999752431005386951126091741419306872083447468759469520503466823094897358698538286035262414639746569790221363438648588067710241970810895449889449160509361753789534553960696168772369259271861294197010690578472691739594636318208522281073353666216566348775046506479875062164355573055274310700559367506613519122872274855510502981894908422755682213231291808111169098780640875095997561749971645131469779460850058973437531383061275932147197104668889463903264987476076061570535831869260385916597303315697888172535998812844996619933933118891208660817492155018577201246558683670253632778224319630413590175011556061821531546642121013441449054335417579697670759443566262169387761985813549357381914545926317198139338383137486360679836297872358182627759354829115600259288881614703027194173053906326004649577470703286154822915214188627576425774260330629211988535479177879377158387274449506616918761532987393306519487414814711725430412352723918227073562248204496129535413470666451146051478806260876561195512812752880328096246746947031627379414854759314115040603203639295141293488427715135431295213888260255519085993545154101662057671132536186708092400937119080183706669697066175224978656733943783057131804528732960359879259879806288320353132053768038569086491367453617530445089783645959980195056721768042380587928471144154506612800217633500212479701286242172264195449520328925826068896039407832362875738821954643984615828733922009584667106951172663576951936015003734769635238317312271975060555384423498654370645720343514530995890685744041944588318838943821268393516561627558477825516170511344459861544471966264969865563273110940107542405918381482769515812196242114336662894847368305673377511777425102108857025491771965767948623811705151608916081080383856307854948992448414694408504300502839696033489781770865681600946520916522474098615044329065940201910931088002589663364631216633107641245352203824645188048433510393167867682273351620741242184507227529388133766308771845495190082327802951506891170345156835355699021760843673092632556910456775263932949693861271854956051023356606883655770767317793322156625239281496870326311448792771774406482188373116434761528691139092553983522347293520771418735512579017118005175913981249715003117800644686071874603831937790911776458492107732590294631615015270925275210877069966843448944746297846732588560493661383090712911100489474002178315520688938791583173100796513136261663477262007183924460701245399371187050679212914649660492088031003488873286232212694838271246256225210928713447965535896725083561243950966358237043392992144570585327199590852295494939171219984960737299636546297336270495957401380790714746624868872631828856572797204795410188318577147774493278980623017124513632756658493979256057511442745077930259077325569352864586280235147133857224856938208552908398046811606081868206460939034408806880822506304465660252655102462924152180210037276808079045340434025325105548565032060174840523653293654864459326881043705377377639720372020728032386944575313913207820237291763258622411520072524834918275215725989321474065335441470949071027829138401255478373909095740132130693454047487952307064727734678323662985094693837924324983953527621439156593128379972585375620142573213463820126041255762128447680790026275141518116683158439885107800907368867430634260584332576650690110132813526540374601019355186421175278861900867365080661621533264222073314199401166827847268969325817743041001812293337131367195976522061903961344724877715955482190417739750609002900193026818734408166487333385717873586390036330001972705432462286198643461841421507845052680068136317222236005854307101845048357706416718736803843246749918118237275620867092559160710700809240403093024436083644050715702589080987982518129380949605219666334652514426608257177269748965330419479482648201315816287430300249399448219170766697381077192706913931581104485804760585543464931916429697103898380268376895527631287203795363322755181748199066367564240001898140301328139798375102796972246058482907242930512313086850439864311911259363686051455882441516251966827190212435455648694259821953656999559296547206970065333995915859150923109745740361328067196010200281173534708605836106715528896393183284741319293285246807013944256339580866421831614132992494336967569096937984368856189528956333261222950578594831612123310431734822529332050862626625427175100269133160301743353776600134469894409536954821695930810873124762072490388710790038243963585527615916174323492313259398513533130916571180170357425400226665027192109937319780942962123134211997953225406941559253608945822095411764443011084370470822170199397666619948285742943522353970918394547748793757694838899286613309313766420698931351152609175311498004404733183987862478268141612303404290003510700434201671260978938128153043144094881986467110668400385753465353821951505720522794250027430219014769933467407916922823853737590300158634496198218949064165148096776685780143235894653750894821941079908361575815098317689188934207610191119305199523888141028078858521596141658261999455503980149839226257530594297966012675479605639328583008332734774267389097425578173838620133408686979364528363848234073948324749147502434153462781120257381774638939527536153041512219197358846599845544228107769648080806446460726930112155725737575769635299792650430892768974468758677550709536375416676854030549293419889213282348999908587283481946384491597214453242623431256240967315778398979967942999133983537616352443636351302334739296613921590073772072346201743346128067157330493822106309838430402259879702550529154064584932903988085538708976139033362215201972865563543544811473171578775247858625135890446981885430193382544124486230030609086918189645386323902478666293648172733857016636634648508290605886856797970069663464442478922262290446801582472651020058858462968468391698135693728159112608678303808228590436122833055192226060580626870053871810938127904798765367553885646974691288444855549669683651592752144314184210188550523581755189376642046309560985998832633345485775595815888914066043881920638400050637342464700944547532685415976111814510741390288032416918849535887215820353311817250952726596870098430254147435575862004483901397073588695639696402953552344156788140117030623858563396661632598337490765041061077675105656954275202278267971745591726959456834031343973876052353788685131867230046849270846349932562119518037112129980437132638353931932032882015534005601429632748286390585503390362175438712145916174830156695434121287643429386559883524590598473991801976946832570936384229012050912021280910413270331104853720738953976985104846453475576934990596225383691421761972750020090132245772033113076811743019588275274437447521262027408953672443806615783264811316407235377748070886094333357475138136579224968391179946489623053960525050076515944555153333980036787529801551664315595067167535288535098244546134003285360347526157925026569911852088964354127897127036873349268847564827700396352797805475014017439990627979961133176644068242226351163499442140145582226830697314594218564007578434985299134656320127125392520623001650377635449969748293414192836453633175377754905516055151395354410712652787869527553855732308909278586247360610350369436104761304441359349368631830909085195354748270649546796886662104061889543886824145083517929160484793228202440810705945948196292191407119567945421214963559901970768686065542570206009469243569794224204758655891446149624860034447382292401047320895791438773406060149048989419903835833520068420945494288229738554816120092256848192149042051385864568554542533517082332157315728217059735781952911260728412065142912286426532889954375449923105594355313266404836489284049404869686943317443766753546512489989230016002316596490272051127341606864133325448505386120864357389553926917365537404127796700357261377954378949164700874953724543113455138686053810364626102659663572370883453816875771121731174625904291055811542424021297481851592496354533490127634385678342789036822516519684143568745279611727603278400303870099971613072762999189893206358362085683702474827546566199589638490873424890717310515130691039366576802089739564354318372871836858676565348971138587609633796169530489154496880207929015825844937887704202576332671868295290509363927421124668314676817148693902583966757705402802231875885961010108263246512665970204651734335345538547949360159867570952223238599083412311486581318887393300416447770345791850380344565554428254778183166484946235451215368057896901911074177217348136991204739452628975768509228530895588092624683334441791804992401663191599117065664892409310716221503202292277190721615038882040809279266323775201928209935942488480482309199130241672654035718540108312925208346352844792521848085441280988886574211568601047209272726518593232775930146488786778747114573175046260333561065883363823559971208455422546471578846565170926283353199086130958750212658675953845691739435716054688149345558571148945371679663020021256393139127865630559878303216749862503589196769841061397102953438074802373100414503442105689796639871451230590445632288898425115483261569547491619069126935054784067123313883669359503303773664733470997104588639382288541368226788718853998368664354934587497642875085911418958559678890420775072315233098276797604585836941099136454480766377583958250983901192122598688522487940440538614833530012279112485182975369632779557666696849833426239924722260407372222471637853151152647543346516338932483390329448015922281435228109205390733257219533432029302674385745048081833884116500426993235530728526494674387516240833674537054040192130758975141667239970877512988248564934693695574509772991737768425429609923718003326715858978697233066334463024313104584614697531209764138870078250743144424374865198183554725534901779283262999614192629760088939671459985915820582844890096705251386908094272547307055812794202341367580587281265300116642048971159754951925139643901063818915433745195333232910609330941056457853175410352883589282163173273363708969501560004327108309840697236215172556230402915235233317963558577336743742842017437226352167581438265552351129901466485075631311417336294698793169671228745105705827155704311610656515693040646078817338022071781656915139178219039413569645753481269196711535110855718197877562805512219724876744857413296726516474554650446707005387827475515056010368833212634826596222833759771219647322636357842125826790507791006666253714239206475451289493610707698142241062265981050795384632753528504964222967441131004196954834087275314085596197437023031945982388260533732607238114681252321141193324632382143373997195712879739919332153354031273346011084908390038780810734670525791768928866406591160913568937272617008417115927725456447112754060471551134598931835022289224465166544051801063153765609046446614688472383022973522420504925387448444819896715790821524053043260879495859250051481917367156546373136029449916376212922714027717001230618262383926734711836893003421694807771800648991168986767717742368481131702500729076869306522352589465607780101810363280256982755750873871142408054979655192823393990291302872999162107265247655262095422853813975596599944453546868080243329805705444817133177418658142322687960126203034596489957924582625182456061683018766373098917818106892134732567121048449395114926399531912220261154792960562224716345205551787865428544765916782684881323900515640199296573886140251909166814092409324858982854522651751473173976162238171329012605714608610794213895696522201853669696188449248927794085574634166604587883053688251219035760088141193920850090085368220590158325844781200287957640072770160407466621302140749276011015964443936534510837875326632683233239950305630296237923389008613073386575896061201728670820420863470290051706264736778323374548907266078422809586809011394832065041002540612631954434673109142364394554754082297099577246047466948468731386407741551645945989174749395472842741736675480097715998448882517872471656096075157529309584650519102432321204256210823920009008601415755899504946533719419833630477275747593576009779536520335196221158880643787256719624322301881617074465531291178668915653353720678994289296826719047511515655992910493952120164281720306707126610605251134204877768233999545875255766183582912527927270975041093374505250884490230081389308503191611154152238688824133089858524544516610175747358332013739066694179745611194326747260791033904981319980051001855462210071260237182379465294554513943997534387311805262525382892071586487796610281058771045730126851800361446702055981257477128081303792836439788480707144772151523270699211379229605139441683338465278169905302947083033253458825205384625460394114751662592452376801454016064121698150054660378404822133787027136520200526503802337787271833232942849484787822733857398301152267919248186137854825227804518357892802744823205654365172487299161954819739792429019069221191485208907127464501129836943709372186991184951473412463732459851672268322692529274841407613850369889402420576744266903074018969914898425692431295717177417557297182410488243979841395966250525422025904308607368545244350407073762053822229893869269726998611392761976535959762216531912122707971364847933064619835861989012924274861568053125794378086798465594277110453901398565289585550979928056783262788629933464900462923112562961701632799569690343530772570430189119023768352068473718466170486777562139150752991301783478523904302810995904914360594569551657789096621448902865200761042747151984671481800982624139674355622506821134000344257677914513385409105001336828567171971553044152111118937102828709842319538161140082110584489232171004811990008865959150502696929678437721850689004808033481908207680309568449800785601229794513432486758895647242333122015394145932285576112035358433373149780190079759742069747659939849258017319097468324000967892358119051622311369021128517996470366762528300837105886655788321861141277550334273657516534157898507240296679591919983862505956199501549562161092310498435418666382408882648907803092743687424553543011853800061224361958940403500784384209708249210815502441950376179010712987269894911504594004243274634468591290814676315668706445516769828155557983943953598842982262324304180994250962595060386765419791254725278287957505964319180457612522587891502776697613229730773219253622408168410227898062279027727668888710277197767484262186419039499812376904745329414892039909782238331293472028902622972449352295138926531307789179953814139150963535655608400700366715416271982305425409690572215388278327827244568934732790352960899361790900303128942848155068709667140131880434742619118356911319394429372603238586298787933283263734495735480041284613705049911989746133966712138620289846764757752104014793844462633393033642112122461020236737690857631476832545853380010652711690542908038655266102477066998061280415117519737556803692621301960481709963945628871045465648499825922922728439940501389524421616557516194691773633073477012808133020297242784592975906369031912598592022806783917515795011020176991994718384169917337423034630343359956446509249771687668426487828673260969995019588365791516651646674311404523254258194855472469926073267562636195717267248455979019276849211255265755261235479239898809209229989408585373955970930750606944373798055027438516895959955918514165018236539345335932921797805329981376361163660362473031572286945155749057316252185899839219939506030991293728032816242871005560221587012841515376451871741912436684134234840011527383911779110904561996353555464680599802310508767199946352539539443913548481053405167537012780196915884081620066262554778430092420180005729101152362242757431963885061170998824443122432517156157480563913260232008948078778558638041926341944476294298840963052168970704092378517251721902764924816217228390617608095327497264059172530976779014485456338470738382603207973821768560821228668803980559629492959260205564750418206204725759095147834627420956338470003332961622920175927574710234949236186722917694645363696845493812091583215074249357270274649590596746828124982745644414015785905221278597457995338076714055869103421352267676885529701122028195045566603942321092896271845836016322652381169066328804395038741575889549699049230089433206996151627718075360615735636582322702809159848728804412685630394166242419416152985935552850812435957625295767345947683791071038011507326651715823122190009441725217424087492404925257631120711949623310093082859838861810289012454903734066408541420160810249382366023814491327511647461307765375078461944298747541250898630753593895420567227831659976003888574002623161184692950648795074212473606069275100111209429286571130848994484611746731982801454799151472704433883793875042623512542197480072944277658670868773461712611063127048644251265276787973513920099730200833089553922535270242025370081194765721416943095717322488699386113337778129099952695727321978885171845593708793385272529835731834781135160533460222777388285479470733871932798413678960380587726737460203767210495433035524716763470455635995571028676579553242345835585628090459077507795589167579906125848560458596399134082663096215753220249729362049269382431972883361466702287231949104628342869603156005720719380510890997857759528287300288557504131305916894692482419671655557241990247527364163122782450702397122961530564574488327599041950915806630988089734191506451644998466167407980039581799665273027854010349739829120184799744819961505359572316395144634471761940057926621840099144506946604815934175641352693871598368819502662294399876062543763860973068554038772878091279622946999980554522608672736246165006069570686073915806956357407501507937475863875000085438548877339254255109481888387059127219089048572266765620368649690993007171257266860751986210208745889935530414426742580875937709165499322723158979724731466799223415655168441166711801994680418596700275277327009511497909997238464044822162489678590373755296453920214206564788046772948705107790401765278905260039925718938495274359678220968193499127181616272436908391677044917177774595043328913454463109958755639016527457666788899529823945380181321478501450195543084704241021804250235676959946203201250078517315519470681589803041875619049929700635432640870968719850488232005072212316503154547555903110484040825086921295502185482945423484809368925654278572651112417618077466787294682103098890861757162097202864119257383605498946661244123875537127293450733525700898165075437064485568817383647026217568809350739815311462624208519748775685769388291317787209397644756469868046574166698462001908558935690562683035278510039564209958808195295448965433846542277773824520322704223028169733961747709066209648513864383769424396923518885942500666090888711556507885606394259188196314434052608869813760967342294579374141450321029551506597051375720825807460779249199734426309867234154086885943379205756458422895766127595768164417412591135057875830462869456149591228403806684457084779246276480382433992927786660541477680781574702643760592299893396077732480017737056465458921826455300005000227499843297083044355038027613348808500386692208045051222442182527915874909577636532566413573350781003903790862788274773395677125545315408065595038217465120520679402188554538048412678232174622820879217882469576053557593119111717317937083502109326213591601248112716167818099400736259116872596847264984592802326829629577621737738811189785535660400698079992165172446700142499283587949479737987471380648026122804082104930288030107568559068325262804383771075065582523047626787647503109094532430808832214960909836701606851550875714360501719101898950697045381467454321667074085882479840999111622188214640934774483756126685654161802115288330000141441850194380118889999348872500592879945519239934914933537129810099890446885316460304732515001717144431561652215229782316015985782105479629851306718210407872057974813887353302489617785623811534123422396246558470432193436765967575859157514324553378687300912399761613890478711864160098058999570687984241058345002987646545536888877412046308855965215661186163156051598636665364445257900223353468450558518301601918940957172140772008483666887833591024858400582160962848913028830862693706846425880821305593988514857974207621541314511331979064120862597095469864545033614968711221303910229981598604663363060438468575751848925388207342669978254945608205597533573099953033911954411081566302239779976839274348768276584653525925757654101578643587342879909851442199043843819659313916885202440214583755978551125680083745888582383849356882017947266959486492594974960181596489906029606511656523404922475169675876414592875620171041288046217307236234893425394446059106084718473005589089084093648716325721266508634718409253026548563202891179891831880216533132719595391913181079821874875711430789192684397705541541828650748815725580518132353565267326274521509600872912734174547140915017772557750254539708407455459078471562072579981922189009710083107979323291487944534406587611084231831538063709690526446118222903376784345133853679023075834040819181250384700058809445229476739638626973820234327592358818143763402543915762701176841613942517545066592925441267618149783589750773494104923891105779433343114407105597236037960191195950486944000551183255635277616921952002505120419918061675865092957985363665349525055071489198126839497313862641203806624494884614671272843448406308704993303702144327849311654238754808909602965411196617682430066809577996955782248334536287182708920163122366174002686147044889029579096208767265683333712340675189581811474335148942279351794591988461925358691255019011142257993328097279780987457691337721125292426754889640012037801643901405116171446743960871582483779712587130356689156954035098262627169437597772602715744623122991568830454466046140482180733041967149185184606171096774792103287742523169264686834358887261155066165182220373053990416548205573877915670682462359732081738341807334353103256262757078965154016364485803339820021250402564958037406206640533459876768626957849185528155730519943711135575076860085032223311439936346071397954762348066534786282623564544363012178153171141134110689552268280211363996748590303591869282243024308025100045560856101337906504889359462268988686275245588069694588816076125159768381520072798227446170257047823204148756060695611678785222468598532771086978583663729254332872076901063943315764763408693623699593240140063212425139119313014858678241720594125271519838973403923590210537748235832809186612034657720551008164583135428417225338060493120440323490843294164985842865125720199133968246040666398886884376837718934518027765913452784099005855297620501398049103513157212081644604010834673732454274788624294661287795253871350142360967174983661750646396314660170160382308247994012011743582614686583674011373456756511158532253259998438267733508596996284522360809997529707295983944078403427938472708110436357226211479764657925572508592419028890683237697763461426795246281902996381884272605591603959012551666329613753941154406230013072700931769926153341949484431701209818673518795369626834990040784895241523564998205791996167889496643849167346903742654303602590178395307162275515191710307673017468703650566738732118544006002468555778251379142143674301710866510826070246114865193661378781504836438312144955871663142264825896651051882113049307140629246283903537457231766789172115854332059609826404032900549244799884817942857444272856391200762835763838005332210795233872349453093986972504601095453951197046264773579216391026548117696292988788850611380284949026667276419430580716780555185155662716541332832062482407619599194604267688944096525652467416343851158250476831691676713743120646320147492161612030988405344158993451051293345957849803330018368835423771951564491213467566621758280486315902950474376592073077458168609789808757194326264235935005096786392479046137700206848156774230589034258910356512418699283702674676632984548200058299279006651790193404714457369143904982460367220224299026518697354165526021699154994618026138432832667301603080051837993423067536014964940586973560632266466975760576937868082792265515636658350305473977240791360793676512330831055138011017432918492886761359566725284647703348770215911393976373489583817304128015914499959488275323693847966590647406879462102372487851051458889886938760816436841438737479562239868759176591574313369413578191508019572669897211505144314237535010387437436720984525775046280159358321478834910283599881780219346400934457369883444559629445455017572871913870578973565321131998863952352493855238480782358946640895279908072772964059209592660225450371002339044157857181364475419115549580336102056307998858744574061657973651029831468883142958348211717790429388643626564707254669882695090663335126481045959142740721795326720263385249924550562160402112644902406238582071890639738019906283113499026658593774450542108494364568242929268851375991601916922260117988096998549985651580550333313967007085785470724321010985757458839568459953788675659870643845855992838590090453336020310666684467530657211831620079374814742801181490469950537733590086731294630125621593734413274180419278524129481344303916300562565001279128656171326312173014416185022852156891603203356011310007770863063654717189379577896430711520403451539359488612304730711288092835534254851998041555713400495236935580125812391755428940059652563095729125870925554378454364392246559183075561121179451427918033762474134311146448986807443079674193465423583719151520078621437831692898919109657461778421233419650581718561809080848025148379515951062331030750445247427037829651900689245845598503658982624228880183411282932887863645798524907122655884045581596543910029754593567469039697328464567726350556464705941643195945391667145226593773303382790785180763006451741182777685905302270857409929966649055714772426017392637195975792463201209386803188353661425744232631799319963236826020280294880752901839520547059812513012025781296553137755581421510198725413697367413852416390372212576008591427386635648465711940649529458349246844322466698895678640370261539006848093294617225440824990927220428907536057093390801083393248822260977193219193256897524143911381622988438532229215126320821222609592379126760746812101909008546677244174297368227439758914979693683411463866844226217138264222450883582962492168546812473510907015493580642802893980073099680552626213527077205652542837015342244946712536380921396633271107244380552569819435872086372693043603231330697951551210360206441317859472245262117388012724384839102580982006121238744489371791199121515416927171478602824985201071773892289814201835960801690811412777233385163282373973049287660342179937209236351123108498168121640830452631125804396392706833034246744804284813004617641462286171622768971371792193199459581064006306946788828032160928043472070636710632843142015979054709470119718358295274178090622314458495767418397250866284298803594666450546125804766156711984068025031562711736318416260461677036393790257313257123097691783572595267618198818185916194629366206959522889896298338592717503445290740534966279519297366554594042707769001169625196300235900501087197182408090264211176278519654885639890949019550613798196876630320422409786053823831983701914669965151996991782982624781827315020282741989688817012260731279651060645726054073797806987719217732577554698514320100023390190804270418298493486146117556256334365984775373761887378463656054252318201752924872996954057012486914528609189342376791799259000652291377861136366766620672687466428764270521042248002379081654163516686716058835198576341903508995814909769618236139656624217718063333571101309693567810969440592070206713902257489853799074326974819764918101040935248342461045434333595124970211359581877312198609271094406792536281883688552119152156030708090291710962700904230747441516701662804731365331345431502546001756388823457684303806263238997513597809041001813966589925674442599141911522637504061698337177675358128127386223358174891848922831628995183019995080941853201334873719386146009578399276688686154315172715446805923868447596404894091095611274598022133777062331974016574725763839268590114966552807357463434597036236271353723947447952251544505070603934776944405730850495909577989407661405998307775453014362889216886303885673499132782808615714409549850641625087410539755746060604310897285230942708301631549281191917590042942669561773760105119543205755095408011818485754203383450901840847949158478382715677193510789297931204710428688093833407186243044932263936322793029832533454433584202735425978503741416933489325994068979404477722975889976593499804695634812997582907848616037655898173218750163189709164874924558857283306297993454005849257289009883553517633551315779563276480866257286490066542524305833885787025477573468873484687496317047785512047662390580800866487301490286389051190196530529823127351940096842462575732078288031360036309369866961811782203818887396335505894011661429990038935691690099566687895497399480186555355552710880287442615057052161382136089316465338038604551457385603590028820194607489715863860580296162691250670706414212910663221753413451165245954124736629535511277272828052243640397637584431401903959354760391434159525648422806831801658182882707241602190997658385276313031159938196332534075657258619275159949981009004769543304358956408932227375231338204677510589451523894058330015445079926400829368533422652973498358424637780104072054163728690051694711878843274973586948310382725716611297805270073682681099556358421740299643451323219166007428638758213319626222902483417959150064574961262994582257183131127622272862223608860204224961270389724890841316097977416875111503953044310699257722402512444619205185402159389075232814484044391394998726822671250163486804477703258353607782111521940341511561150217451426850935940621886947202479414605422377380002020989544812223602156718301019960332723718177800015256520202314426640957350800832091875432926056018538426399016884451449106040572585918732350530114459282026958169501132515458521940369832013560241509961770506805779041500824338679149869579712631823630006606900871728083767129634370563862624065360363158317734250058679424002221869035352335247126913959121648366599319384152585416406551711601090053369019518328971012359175448754252872812987941423536170953191910797207140400263131943951830380318128211517977073009041559529915055027023532134974905085377318528023872593200245097859088807320998479810603525878374519888034269594655003884352805955986788284598252402600919146223478597254294983798953358481618910454491079663437274609690315376623526391471218361263197073958104936012472560526046578740824367407373573570142762433219721946895365566724446521108067407550031956279863548231894362969064793273206536097680824847801190287146522633364426552070476762137379103975761763608843526959136428176992978109808300004456714623455910425022638872344032739882689175288654068770410525182971640349905763729389468392210014693216576513880594988195905520315871820022288507400339363252662193900070435710892890978601549758946959289109104994251641251506970968673452489095612072923504673203848708416813733263365988563647002465893441275246698922611386096358107533406003717624563864661312817769312370537918378557198352167121068355613285751741693629578705705507478084568270091202058747792466547491887082008394124162668010115817060691185333490703288536448044212334567726366189744489400634642270695082155437125250819616712222228857263329022789871863954295385828959257556779838869283296137778912239658477955450846085997751150943461838063196008389132855630254367256716659651408307888197101073328366836107342435340237824684997529274033506498960367975247414335194788804283647090128256394951580952889546394384805137706657817093341491956569997607530232809978119308482472678281197158311582169949005365344192940299674700390182459435917999335076539768504584198877510660639439100307572367117481580960382376836432161701827219971249095888694047848353402283465332001563915576846794086606259469835581538858263724544674611483244678332131964870442834709302418439717032618036173216808119525865573184300666712367352978371431086410832059017194528728723203321486214399059613329312928771730097889720334940218922542967891494195399548976380524918083104349259579731527157052716011002276511088565690376535471880780518265452712830740710385201793012553385359805312944650324111238420584999186831918597189097494910096005761700328365672569104281196354076139744882987114451109344453186629658090770482632897109388195636346997001567121780177723948435298349773079043701061768179216383587881050417939737110136893454496798644870569842916056317363253468613564169029905880248723666152730587123437346361494081394055578062635331751816738183697418280694697147889810600957194713100637229155947798209068862849325741905831808947046950096318078199761700735514393472547952764048489641335217721907155041869001968256471588281731465431057157079552052230667980433181405753843989486945731305607871846207075578776562008137927957218644486154722478984114167162805535388904422219832384743771352119742945970758171629377675148361994488981173341806554463947875734876143708612012913906205467143265785649058514155397167337263257664774239634799862302013776892462472965862854151394100066098359735987213012965569543759900566400116778784181644892461653855842874672824622955440524190117532064396958625807321736075946072984899075305840989866763631218439894329788926552093805162669529906558034201729798028122343725937885328613644396419705508958093173306215158068890723273566683921492567939948720937667028105398345418245193080364634769179978731969352205244225407439928424398659997488957311357409537035751306157852010584714247141821292378288840155373477065172159257315514293612478974116610263037562935723574264553213157302917315938220258566236846004737898812700548529851956549444160037805389549341001905841168605947693206879623846259225968992781338896017660892936193954394940064628682912945633029873070286957370627979860580768106505590013253700808383448065527732393221293575246700155215616344040097869939018236118779539170417155628051502815957162604331411656627483927483189234502595716704010183651285212228826056967766336199220209137244553434734048454325066913856308501661376890459302230889345269485997994623401457834536481069011137378781642253731175174018144120483332895397100621334545245315622420277127152133720314487702953428282620172462932814593128779815149076187317486944926305924597966775864306579823732632857403124184905413189459893989951630644825844793108830754488969181895071589062645130935249568406256784164421257453774471991535122403802277342110008797123159400230610861766964938538277655956910087491027101971546013359273936977925963059718511162610659252750548762897315417316430572958480286989897920649208104562601388708861638824460245672699436251876388016249692045507073128577224905848742495042396116746181331735210084960351790816275457510446267730788929230679971437253628117977222501572897665541778558381147448225235037639672573168460922000522928491589071139048654249331797025947714696562139450669137648232017997441257837743917578873801165266015761478970424640326024603886564371391169930970479064847073698000454395113263237428338538175334330027246723205752069737335576821229662222977523370419379549750487839309475850613614439081054289025426894990368067711422004565581877293847675489961140489462789794554165450243667279818562376200574824415874262709916920707398104099031354378153457681415689543836461284423454675017911358697613759184912910036295262944440514787327798481536865697678849881053927611736632354592522128339816641649748443465837348625105139168169313367100609020488222178566997825742245360172724645414464564736337580250328605912919596255984171282285271820644614306656169154589420368426911056724358911206207430661240290278202789502643842833326086797129094679419684682849713828931775185005359792671802565287576166663515553027908157272361232009594782621630923765631009111061540393922658185468921002798949314253091410236029309350295682118171655657609280106283026644917132227355850214134939240249005386286549936507569159022458925252553315667696136429904813264402451935659567174927149521179983258334758892262157098909498069442832589561407200737517751391396245704068166948188670053638370370055092859937651696159749193487704285503736151206822004739246482461956354395112989174308513819146879183119124788149820779655098027139841488617781919862402383135020375022396742353704216984305889192186764296279675378095805488930057229874987465034870685880864880559087329593000051119238464452059177931778380344497175749322873064490642695757069455751665856028753054871551713877445028957419147389643995189891090275383589477654168543568385936964773438838429644140877174769787542194101215227854889582147146963924777574344792483623004811540891415219022196728865344662103897785888379587322220609268571689274743372281760695904830461269666108810335895658979633356110398270865245993527737847884812233519325362683185964449572209670559065475335028138618994155782570487552747023847596116766604348932555179836046310464036780225980767653370304307702428047672403596244602992321859070240243825100959480705332225656585617889897241211827769445695783548277469522574239224727382583716860577033155325702312105886831794844295739409986753356579684653235062365771974921297703768290313078287643117196079067588931962321308252614407788844765699530091585116725826247758114400794554121080042492885026146305851711507123294332477944937034812457827967965560846337735010042906003278382392821692519692097571945789866501447011917824981804421746899639769198699539457017221279184920622061635872211099843337838497744362299835060527695968496343096842810223151797136914927489035089365893283441704705669743361750388046975740128129531061586235663376893086252649865144439053546374864000294563359747175824806685968028277298640114480634327208072020961472087866957631489926226683769227283411738155578716207564505104572917067386158065823976928021039876031809832122855629203166948991316770560111757020709830144001906613201193554704293116095403499676496083173885355006241099210169906810834624971385403449884002686431912000124054498341982994708898777106583186367477368799077196683769280141017425827378686951897382484639336947427777656642686489753897600755371841354259789732967346602863863562062558810370204691197151191268315276251387379592572877436814957840833993192112275531984650516178615304528021141923016863157032605070740708665111504552549665396621158301408323313094342909703684109464341786780044295280241878578937694794807369487407177442238043605989602216801368040137234609826824014805445972021056087047980883103108433378728455487269218551504199737592731561412041932996098687626145012520023122699443618821611224195877023554495843488436271154407030545033880167672922614018300655766301310960493343316829269081633746778724904501130695038383842209464550370501374689946140805695213575628497086844151295782328742402395407509149768017224797414152058018406551432867807339711707043354703381134908867768915413444765992058118401000892134605778016006819997048396336722869810921214524020828671765133521127093077417986602257119045437448499559572950270410471905230977199389033240964639252696382061952563795693367694838631902647452515456033093242851436678992852551826391794685819630816278256178088531356478657374539439286613279195177482520641745933696176436272117995246076880031677747447033623279056668890503789072091705644448912311103533178425956839799189778933591778820886374914319236967663656453681383067595471081444323032099779665745605231659076414405956897323392974750694943451629663659596879001682722803838406713447664653430462342611596831119595526950266160459024164551189668928408423635573523992031738187278935983376936389503019432043778929368267967876533098530049196168116111921354017450878186252242093448170705678574236835740294837764238697655575860112386065178361789844253367043725302873508838302644194218457756136887401600832937581730972929318422018423375008816326103905975081462286164140804497561304359446562197125068909931415343032159982312008018262314671690086078518116355987952737858970278870674734770085254220236529123588363509322094316723686376931675721352055967230448940371502341861807805090901284557803244021482014266881922798132237345014319709040428837178966254792716354826754506004123530573261133736824725875890726274169936989544686996384796373895082889549759499125789661740090814014817867010618987433878987607134579842856220835714683687716317124953064067367228617136760348191497161213863579690833070466700356316084369414274643941876259971505108733239586781616171288287793187946182391051122161383571640039941027222329193420079459380368974402892553030493466919623056324071944502110647942131437601091408453931067975874345836382924658216554138637154920064345020418248512664384113756726979058070513513296559005003247821632859639628724980518340016481451484951960788170146245354875209575243018358702235185337102717070013885034630795894023731448290525494090028710189114950895238080581846731774804712365870155048748520053968719039593319490992275331826179241981561733445042394516351540247132583040928329480864844157446033661687504562172032009131772371570915020829516599822582839667305483386947012106626689400374982920306061809670991863115704323123231777356061798972461289819117171355978675540684530602263502007591935477914286356861572650346070629243050567198787450888165283051566024561138401657811429195879282655161056579759824819300567313027701513148220111712575381156346771366698922757651862525189295959359083586429257467880121180299054051566438860771953777223648182374575725709526869219426366326426371495997210570153790936560256115018350261657903307256712721461757235322745766995620229419868917445678039836420192163112683646103243824296507575915605034013283283013556877309069129495702634891188639816030512797070959277175857559336949193537105660651815221872311176994855967350508613287359246851528283371870942139049393613884451456532200737808370405539805210433621134994588387475252305300792743829507953194370901771028860873332622891405388551166038597404216711180727953876946069013274894119861387982446753509390121097781117269824569050456468447535083868284392049876646819118455306341168883214384991033342484940920590535086137447768634868798902140454972615626696109708418405312301321157531288011555762182231213999843479509929624806321698651713785786369967980249371639803872392502419083656926383471124919917796198263947205364392497907175047952373014371339935852615964021421470973478451954897452419673074702875808831763210227744166657068402835450423260420102422931972887305793689844478625911603304874095070945962170168133128466018771606961741318802854407511362436548294141553769812693045142446907987799670109177012097262362501377606202233896169449603741485551646187416001055886454481097409667426003569564005377285228270974089182956008842413461318896908574513249530401385514271776851260210680450763343955891688077399357289719903464505653045558281217663096523935839252729578824721410202784401837022279510032443945611816225535291954065633862956519484905862480432459239560415109065862199895080891967662453729305710840724870309457575501636439512168940408848556671767110927716734648398477247404560351964759654517498894251357555488446969248168281022687173689704668960791608780002022728084097222000722994655129529531656431612643649813848321115674432350698764088052289423548025267629600084676337708769421293691284076567218591224998168028119725460773233155591479857229832498100182869311891060072590703317279687611627923370777179460604524840617088951905267964010157835945508271974726060366376573087315353335635512727092419233734860320843647815195346219738640161454877995021593283236100738688534505333666705725544344343062291633119632194253087993017495062965026435668579239238594278070647432413851754319551951471179241484648640732733790683384681701024434137461425423857519193288332084313571704793183625436475104928855180534481225997496286621997893611647806677621009618875035592783178231747353454352030562873406466191563466441659286512054598849518491145089451866929357544393556340122853652363441285574695671070100643383108387816520757205171143856852902737565186500802129740038269951924294776773745930945640304807841636846412124012691082083232760751469602940064924824609064645959007699811944337621457089522010178327372344053420263138122039240386317333930688310912069794659753406890688672016068933744990240490879271503902203439114231788368707280680880405360016419068035739996654915057456525175581831922525142009818755971745280317638468283471949559661475344790557254143738545655248587775314153415262276786331468108503188115169342730850165747489371293805592261690768463242479638780486263890376523745203899431915954814477609811640111312925999445138206337890990127303473284263591679916772594125901540941683625697169230345485330575237440402148977372261390161425569310725698143819915205108439432481700345326348125416670347618507683807755205688523629545333104160619150736597382435590936979539641817094851646020111329523363232006420458509278158395730414223136089293933949068604027319104240817992763153469918824951671464452718106747295374327326377040712841566473564853730753228840865802762678988714434603101218043412326636884345893986656684547775189044450100372869496657034863074162507069814368605934765240872076716692079060659368774403302760367428512296116299712237510819217027128345336399798617850314689587947108785364855155991084997317083141984114126594381642815496496325911015790733634881535740313226789747451410616082583788601402393285043397013045396188835203010976708534255268634012026115184641395382693990214112130285796727303670739429202967391329116465765009968102566158249318904584196464672626970912438893799083402432695703723865812163767193370241137299618345577355115546383538267602766525166395994085485587910552792286002732590552875128314559520047244506269703987680645121957998613954784885826915679049405199680227481764199143966388530374023704737606059579696576414393502896168640199806803200158285035819908945641842926840640892491644477437154629888889950014916442621591700440923932583388160659603143573100186819083285475239417843761748939581680638010754530054478622603545960311027911619179050436231578121384067509215590395967971503605230906085645872117546826195299048189346836774930303302865138942613234997608982292940224989943699900588948373278574961076177505906617706452713633240913445691182130868510144243277158991433484840587391069213946975785748887207621544141585411490465182787538536878041822997218508758843029719094936120521833715489171901671732934997056596729623478560555002874631472703313755709102458539369853855863776995007514389105928805815439295905204233396285486572972133303902131410163867465546408922541605643432670915593999611525827217660663359660641127146471956667522794559355334905868676472877318584175384573479753270229659551200704607797437856436917331177806552325642701084083598062545418574581782621212102085323524519789025205069127027167643456186421885644061311017201285068794835646722630726622439680538109758049795022246726331712809362500133347427007093993482218700252786197499422723206011265042902949508123962949135504137272808100999007539612546015284002497830481747903985226908928523351542877803640809909720993966246689789796364058552796130953221999367831858622670591965733232145834688284971299482823251092240345588636131315912596942423595207210176825878202095450412138864489290333840357883722119258530190917790467328763842301587792566666139547840940308783245261977537125692373862090072682067345980857706960636818818187156090351394048719120126849521355910162518384176651302560990008245592187030365593485929290505268231605463365246887525653961505774858110969105112487552471357672184216514323321258791114011897836552179289276763511136861661801162364923855642145522890338920061824474937643010345023144801453851131121746023998482718875610311292389325418894608162065131429323313251598619488543715607209584002221271487348080267774849791367075953629903873527695547223088616433958523121503886242586213138927318162364113976775330240542228014158282090141487307588936705303168884684693132637048409050058048242346472671348395649080910410670183458980479425244584777462227283761484559273888908899718132785979490685095483607603023681856691872856092912676749839433425767374015297643194530817816094798740157213926238434111064447841575153490954904460837635125989113983936352496425399979444651970564347885646235385843529944534807314446005741016611613214250276224505550024308478300652762415487023253092833785692654690423955219405062127976461799537475423684308896496326516257892636858516198448881342873440728196655742884142499114897101081478754007144064758296135435143235200380744270722233388352890981637557935124721098597644046002997340697889894719838061663337493636791890897055057048252495340307628569661901949400042235744059087993203087316839609095053175269400292161653978878857826141619226571560256360763740124188733602198422644514828770091801440914079399116186543652685930784199327601572711688927764631624868226357874118901412210627544276171372802120122521080349262297616398812339695253927641912513249204840491285023398403239812608152719539979270287871628515788326568353050374291038871281560783718852632208673855622341111493468522770902992003055861913426127519265720005600362014214738038851222871504550743353581719744776744259433579748099147124732711309250012855048981037687741736536205931421476353019206643503143826370519424659673252241955993641561832787450391711304289954039418668076809810283882117598357946430227507589499017630540129093432872734308133211869169783034675187825157262775531268292402134126437122645436314275722556919947779270236541541482864929945077719804695041435790698791179380325093515211292255220619508173338473570769433387586357968178205779526267351571436798634744741388495871783587960035443719265775062308191593106361592086363952088780078974319887318469912103429672533197503007701420710028377754533705290416261388380548107809452871158286310207781889406393215508539728465615107346562856590852541998692188079120609778565828700811022376267605391570847201855863853634974034578195218402026797930804959635604704164288774723409168275140532048117511218247737847168236026465063120057860738415407529910201128541068703184298918134706073207568515823284044543408713065202174288627950720288260991175360601181227598360713457739527238494128050478478292091463605288578731979509182121679634820860774067700492008703044526816924734251706796869453827815959927982648281884965016804705895552782942004265814643635427373493466315963004107258851353889755351306350502921040321474956142788992402993012689101303142884320233969155869945617962356136693664139697477136794132948142187546307261220668438816414694845201995096121197434108917436360864294332033880059546348592130684610915404664785366402595245311745017900606917949281521118414072129327826065941270002795580352528840765848324928629254281526528913555700022451248374675494190024035140750855066881037257032455723383786557100088112421774141683547790897982935814588123547195834134030553953482761295671771796275070869106480940804724992712158632398697964463265338320578153222422163484882113577685487090910347057335931716810734869506971804970586708208839805794672175865486150057727159740407406129296837944475039691468695613948252511793715283329026155455200485293162054721744660214197333905064174932299439686102140410222454113043953893076954108764448460089074049261258906119813688930380045297908291946247452811348334281845689313429274446681845981170149707046822366638941094618584177346902044839539988136634229372539228111504509681420216559721566455822333404448533410181862227330004423765699071828131917221942703664977061844219679714957646911799825091378380025083859649522759973669462020980778600659634734244498195680731335681995960500924901676588447541852101039975432154827309257768744130912008707241641522603123251902934473426360722851995183102137707114782471624494326191229315526405587938858218603210518384162475243437965230950904540066519330414407147703943728234620273377001354215782804300587653741362709999352799786644461016910522658933820991496376060877136104583073057491725390678032494549182503760382064586099142235880928917929547404082228562660870091549718610504183698683814930079049258813790576064491080700448369926717331798856986110844732133006712629939447777282125498635154018199549826180954876419699330868218290600661340865972708332924289510251480292238061457651164447663058049556230610891307092874100360355280311336847501681930862756277875163277556200860653616168866340268619847541808731430411671583188078212459057489254934368589075783804226015375828349494936366869976817322418432920226476733213717193114009424925633800498336469448901745384179797214067009928586827254730141371390413979072283228158300413610461543737122624804817078828194234305671583200621388543742242446563210066919806181476687229712453762484482109465622796247244742139242869125438806564303184281875627363838264054714311454974705952866250185891538558401752275152606359204515303652249545866357971734780694181543611070586485022513635583014401509221425731775961334938278664030965568268807582241162541988945607535392009147189234431340678799672788050778181169843843900028643719582364174531766636270722795728085774958156621593469028698802266882062646060241438113399886683709318430289342912613676030750435532634529756407274243803067604125219361963530662092990270153877550783942212149858982222915813767696178196607704939092894777828501688379041755154403583827889562612571903830740653569749970176572583021053373613055208843140109694352876306006340921583357933353614610475775655885090387901271023642018257061117297175732072552336600295351088212084951948462195404213289825176781596257041635101619269004956209112724329984869786323211818118424755754939534528604726668449084795875389872914379813740466229153729604308144688340133491666345885973257122093442097498038924397101766781712788613402177047769915547610564644369739215958812012795836161353725976397923161779514575644600391301335900864168430129354235148270801065018728396926895143126254328358615438060221501082976404761719143210238121116061335652934774697919019804714963137080711746059498057232998203814808077436006903501243998773476403867715124104727018436621207686756999701901462512582640296900338927532018208466276971542095254236086338178388560841632716476550657748854294472957070113245964655616815877337256529767016068079571390622304098646514950262448218392432839248911729458395559912603822425432532788955353516542106696377272346957316949424879431399776525769200789167645377426959339617053918591212463026758478717546326036638423987185079912545071854185592145602440212222617596721511234136645614671351576943155572163839111923493613526231724388417272456276951962674366371531455499348841444928834999688629993910581348452903805029359186069091275368546740438778052946624780010755260744443669109799541447781774456313714600749423841881482463283527151655067423320253962195025963712312008282707581604158186875228795870543438086458167275689468462770677745263171766940407141077590473863769205412791189848548536310388090489072843164944102485444862534699669912373670287118888975117788811574493986407386040969760925721775012838558581060376040481723961957843296176192705274104377607493377573533400647191778276699865758030580045280301469777626409585369428086451982327944848280671571361552285542287270552212221576382692168059007553629415732823886851610379354075794810620081333757407739527517318186600268594852967106417397048971524626317795396193729407245900897307789340285283637183628702454567305480652893155093365923376299929657712734492232165415549294832376180689193461619864351866418627382279872238440551497161157750938676080140372761104847160247132849592353635632589541247001375441941438603714229133409772153300588026948867919574314881180328363620003264450517079227137992407602252718652134076813794992455519967266421998320862242027877125974355437581028703913723480175689212452193900268520413869595070110061831270585120109766626905533035004519197638950881018981320816326088500342427767924304478566278757969291660741313713697076481887525358795868986512146193726816883025618437601847169145073005849135346196461580700939721283651544188052655733120751503495555678946695201222479030634138969415808263532331937581701108405731987607893250314902322409457285973051256833586090744606730485620732064248551079645688049320986818221997457075924708850265412064938750237151052923838040603669655590892799489605775053601077023156212225100722164307875717035523262432289923634534590643554828490856505114862607296369696407612386147950803495888823563265795399946123387662126524096998339110559150531563311480205140729857907033705908394650585325110909209045942426236522127267002667894604419598676461257070097356288624573910140834666154026448731593994402846472321583423454643510425701341096691184845570589706311017984950146505530475555037478158511902050927602095986538830317843629913064691613479074260902602345782604433904239740648286054389205227530567984885009400815561411623631852180030114122443496886185390103244243515121103435270246395990616794807826855478636348522950032087524858035990737557986307924893454373567355153923858758052509265950993707615715292012896171956621409729591729411047801921486841978882297681047352558613804488321924417883906889645591483580536249876779281239729303720232169496448136658498748526546457681415642176676688788975430071603743435095982297283594942405907607752552685153515190063140697256163042265416233735392552854491632073184244945446920321435994266294159295866201846751724046158941801335459409745154805168421789956399075546100479706976640322584331076058964635011572423181836937699700358785527115695541755144932431224806567021145932392538254734436501509165637686224332481808545117407789938534589438910341735262671307094369357293672185893180633896514350250873034890721668117488679669684736714563070100757181073560949227483497280106084096954150636417530834516330235884773346029427891088689885563080868555965974239100852364949166606027029449812200712617878445450633542404120832503398618911467469806907950102887733916620181952363774107862440828083660694116922421380676209222444350556523462734046107803148870796277765910054900900530014517617206824799363336261753067703441388379150689291469860273952817392883158682222858051766130339535611092866528160712966222671016053104296339761051975190483064258656651159399313724474928557758523533611154194249764919737410229914248957128431480766981423219376540434963890024244660967663414913832882335963635521257636768487259380534301004344806296612502178377363327125724788011911702203939765962687885552827640841865207438676813225989183599447873384986187582393574905401836431321805835680103696307617687992677287862182232622215690454420665239057070900585206962917598226075626341052710507021851653233322454741463117818620143928030657214588552836017769089849959729107247740322118756046918505092419950124880732365088119713906920155489542837643527173202620794478342041671151858487103154044514783257889432334820507536484541479679689883751749512467436796004198005954371964136804902144141797804719147076797407443460010428515490371590285604265440813215475262246826842201146521024397536055460760202850501403286087237447780432814082885077281666676551898749483975003002436000840328431302798002106139912955681600801701226681672057414891310154017883848818196699163244231269058656963577943696953285787911037664260798379938954210535072676015837145824842113971554675454098050565025845549743152040045458463847907573410522972932536610296934527228307030998159352311452243563526335028597773318352841091049070590469021570194325517550395054883204931416673769852817744615868805991889593839931182168536884450270729578461464935968793231056239667379650674875742946482632062177028068191275186602315798404860808934828710761301067327656059589165911679078335565784339533672447721566534258902225467213628864086632223484381927009355272320673234197966865690865509063905414541929570397786312076374226533989643426510548189591294375823850753280167967087229998253117134022327220968921476808241581755825927856239941680786065328860538176563306265725283019077951037901651253378975286887848112560170700083520393047506916069728296575810587598189187601268307781734496971799368231986176397477071478234799839900935348382063460383289637714274013266482194198153488344332579530017292065379611753155768396114615173874508997314785612220811948900873967046246820817066078400444218254996433143425984780468973695413398306756824601425585729133963927986263227660840894707333677049250910955162745919919338684455758725352200876369066031840979708116026049777751329309969019711969776060815706117482361143722758493149330377524640589927442025951396360164216990267976487146913488319549443779364481520212600008018188106817230257247398236884542034235134427733759443641033970659706814897822132239188334043976773259684061061750708851845137658044355496666598236303339465339884908004649579370282297350817206117427309865810332917241861956778125032990146389854403832122610467992696980939051323105755072640568590210250634406247999325883224507984589485767540193143839954237085355321760460455947885312619151457389534140135394842270752495968329218030575279085086252763844342258873201465273581319346327900360852088484437954736012925510236957884428944311057948542761521755683195447898380101704327437688640397850756807832250345239121590082672542517114536183401086365401020513411929400620353889386733377080412102334557520017134344531527666478626888272576469316509549109417991326625139721821207555087545572569309032927530202497582708704567085118003272945657112004732661087854830326067489395352479534348899775965850861086255261982778828442584655020930882216717562200638506863418867739488152945410427711231155635336776758979336972416818496832937824778305828939429331172908712131859479981941295398104475008972062658110883470148953333479708887657739917912282039439661529362723570872467022349318610635268829487933270522477259241791788872606479623638776959601223039218366334727467768569326335118115812863350515677221936655469918916562209153217839880103698882743029730825464737009023083571835789712416610986291006037814774898245145099309823209361654966701983871916386327087240232254604859911825023369602268195752282646616496335569623152601230993298750461232342592625748378232441411107055812215869661560531742332294850465623864535727685726669366900425190222199021718087031416905743401606611417273702011364711618501358039758785228809842523216036136932880477113801592872146536928683420586914910804307229955882961214371273129365052236311050680373212581847296089615022708650801305801863097290583138726952089918887239630018792096090890450378921309238098261811183919150140690629240639251483653709696668978862283350861298744535031285874499651915771226409667081940433669550816883854632415376688019393745018354079134285842339482773859311031442035489542194469253362495811645042645966414128575254794676845987344455778817425131241343690434953294084629515098849776522148401523436433192597832055938571624650719578329343369401968561674230986714024034448094606356153781794616140213653661370016502527534495524680111948933097670030350152924779817066877744628479583973024386513733472996917904460382711654726655993314257418347041566378568171965042575480373150465676263180545143843579806802549168002481541659072543518063482737630150907204496016746581026790191837228182058985930689494492935871525689804083394865382682892152912938235323506793149190425696070178500409252342006455442418594832498951793253425189242245912440089143430955136601777868618720368833178977801782898706587767847051039365266526950413277677338199332970858071158719607376006509359967191911544626536398420828329442001366950834163390273019559417947602639661070652214696732526078770181471627671833509609813990429235750976246966162293522940038320229693050476287752236418938976375189323277358829014224161232208829118818784810951695263750269931325852282049253779014909559435184298334046101691782855373229303973861788927702781093423245704779473585373570803564780937030125519594044507634114096482854360020493068810483413243881678099648922968241030267441314347266334806829653559306929243541211825532284053509828936030116936792339946606567716942738746857592530940774712578298779115707066350905849039960386578625669940514864451341198832817769490064586298419848452748538808357161905703671075239426548928341124648508108593753713862595213397723594479156049748606599970601501867967121816196159155787665685719581257076641248684375946012341849274647786050917139187563331069036769507467395607053304432969500056027905906420911852119503476114923618253286491459622005158311395321477626568845105924603710219865248838769468289278190926960255270180245511603138243791736626230452586971717690091957248753456744324108966877781299442494271398700795262840437586871700207538842672431500578823388573323141626847823132797017764136232005736687515985611824966765676914226550167399393064666035899763261587656695724506767179645851792806184436061622923355531279958648242807888720445482701379564232921052014160551194049233467549426791918827569629552082101565811239085610734665844036768171220272249425579153218450119269447980944692828957716308477947710240822172404446632524860773271371674620039517832716246844710364806007933329562474108711895227708752192319706765181907662931909675673494471302444353983138636518539423309172068231912026172684587579781027418349060314100287461169980540096646882973034854512394770100014815298028998194799826630102494719869412895755110867514205089826781243564068964001872579371952021978524420856598019913395085323225457957523455981926349802164470422333302930271178490446451719060588897371760550674166919314140637799131277080961763410807112482790648034112326193508814326318566587470888597742356705532363302003047400993333248026951038414766875654635082857940408645680184995595007362005083827887092174605389510893737610898245929682029341481115192482922003799784741611454010764219129100626958225331456627001404306687574257301134805685523753824583183605984620701880799914723316033791320429626039087030881898682386781879365666587114618321606807948099449903326622643945583147143111636674733323248215308310625080630328690276415507970689275153858402012594531154794769184321999250756001277501976268180646242182344698115425960159561836575120880620042898907759138534069726002818967146989811050803971295860296645544777830106607990643307621077681166737806744755083519766174367983188656228672538957547320691717402226770987285225583638780053455731129067175628402174544613163370942146127264460321954841541021531139934150874618489667990854247096060262376070055858360956990039663116059304608927488193433434010308419358934916953891303281906400425604830865904899547262946856423019668573486970497495320743189208213138721240681569248097990773203705213718713051842739581918470556300950266387355844473861542742242468733071980205249529490056900006492568073943142047205006071356797546089659069942925003121375545559637247454781197889509590377802379240018767397001543882553158160588940245098707460130813328476531335740664384586181471320766092277158291722954744289920295114561106086969795070102733258507385444686678102793223155451690274737769362248550906773600971099352210530049630858557266001945337258446769316044395456914847274660964209916521997855431629799029887399569230014686784139924606863824657363300699928949958798227646292403908247488355452610052159961450062003586942067400385316959401455314782528157401848961622397899174206226690423008624702119176426043182612973112362820100688582578941767787358730165613372816034582232475619231939497177323985133500421793621657246139127164217122891339571937049073049087239226097979189502544191945051217493196627675282928254017754619613336399719036142259368982926556762794537224548757878501985712463026191558061257717929081621952676282936549277334838312595414735650239170026182012235544226357607029985568461749037156141859089530421974373107984262189997308813956944656140147014011272623501030882007137411883873037815853378269739038506405328846876146528394214989995169004817509207135729710761784759427002103279440198991051097738192979919761903889706108291267978259698791973706217514963428524266536843486021537410559014961011280773951377322948465099285007933319693516936346428625587091320037773882393524565517239227947167233881346168475343771574402108389692706813674238483661663561808411849388078661436726042064336491856069946716541969259606207680564177156755561838219911705624728551853529613413882244084633374864667073743778868780784635700860804543673564413207233394075582505769141972596365094493353920165077912961951436389368087333871276779751043210866439990648585317915363488341470893283185914573893182827078972815033105279476044017935100485129527027344873413224993719561391243295803343671916528100422675154245848346589063537763042281808591888220590141427895208022546288954109822354967838857105203260328439358815072509287353412791240516156416723879450286788694832906954885310705252401482771165636409295237514566106414574374496250129953387692254308065644255396520915734163356243982516359747227521925369818566250225771716899673429835033085550429087878719238684276889574250940224559045363743246583859068680868594685992438944615167848031704320367624870400300367720465777882236254543766205426337065437978092941928007268623613840291068259401201379748056833949618061240504547465926361190206538915759299674196731384168907327577464610959758651156292131889592170681406941199050781025711465479461006797367578971273614803587326211127579730875852835505204870685983002872970898362695369453828598312205281854358253151935237355232772273601724394242542466705211983134512520570373938681618991832475489550424343162047613219297756936239815219089109939175544309688673905392162671822161043645903500076136472289540596528482386334294300041417806026600341918228042554418229224000081908765459003110754315660818766871302717835193250899473019555910592464856514308562050787951938511713197714234445625892174914200358387070483744612044637821485521654701885407267740323082694741481564309748961616297611775359976317520742371930077417220057210489120310694167855498281943317976934169792215972963195039458909358777073296646139478125072533181551017270392229351156223178954627150549979096224377055612658856965358313911833786872814261946952430062411829500262321852467707878452123915661485222832003668179472683177176922339736307892278886145777591870043742875385054489146141119194911654560045377560759662846253180506249882153049519335943835436713132905820704026058124243050871069082510420350238929996302140348164573672788757077465705537048257444287516558551335433656850308566711000537589602828624250116969264455358642516826028083247796403180446078876373820388073093885649555018716538310566684472233646045359347209229973944184803449978491451485456227680149969592496228497491068851695720847033983326476175758267399257402308754072195057464747332541919966900162166695409438774721000384003493208711695763034534614490689356788216121126708579407631112274198444990406169036384774688402828950622797048437080612081235034176902118607584965285496392758181360784700701619161352835896396853596347279570333060428726536506158278685319707430041663143287595523245513258968748931333596341630855169218272027483130601187731048486377794902661881393137107993834100810781575516217954477986326884355811643016870135741839439473697970704045834915554641621579371137001362173305177010179218896298842342354040010048211994209378524665589693566737699502169919864668074280908919023829232233763912395544732496142670859821888887642106672551956763049791191895734623570026564693221339642254492464096836149119635962156771959061422299105779717573772741790574209551311093636462273720365871181547236066466600501542515142056743421710552563874252203364607161788920007189584979523370808960069263576084028043016602779346818498219912924361830037360551517176437670039449220854995379863911957139495116359016436109205043358762209748746479464993433529219895669827066544939558465951212727175634686663184658435331804820119347680388937984577959194392808024861148128640929153468673841869087069459293502989254995476383133782463323586013634347682739410403191608598176724873794955280546537836110041341577347653576869270458064988205036244882064270614495585925991892881907571744145315146801692809195200376699595471865329752660231454392188143472945351145448488231521234491587453516321844048478226508941425131334399339612281446993286613982894483209692041095592188415170875964162013323013205819205780951037141648376740003814722377837639759956617542975169482847148583933536199323592832988699067727164674152750386527955520320541829249481195595854948910901116638072478414927512037038273928342073277286459444136212957019677548904363609719847968717201369169812552635614917135987900253444424742267752168170306745301494754978491108923067079995320925592408134928200605006484652539420188669763825740310306908847298498075198928894173244995670310625974500094880103061900693500032012795974060291869803906736228367806739764676965354492992141065034881280097953745818072160398226248024433429058311903531635340693262682382929797316067166301180801183859189045039050318562654705989851851792837128402506295951302642795104855107895027210858726315750256823487979641770197179826024171431211858576207546507084913596142737825573226959370122471436730851190233194621560365952261575083431501406018442327863732640615990415441608142359723407644643186318081751507746051767057234068056094844612950549204735826832374496923090907337597593501915225570151908367786227394143482851691061480030180641635964151437175319738453392686397273041363388497042675530829623483751046524191630085768664950561018435024637147604390769257955519474101098989667339768570427466248613681424161823078708568840305247917416781051822035159287609943580437534056018466270725938298031853331898404450150002218842214171691843238363829323413623796653214269235714313067954260273305493547175758130436502905724437203299856962418022430681388057873934751133324324370258901335459376504591362500318228009591061973658917295116524929049565108483903725398569115382914985932294201679809540333876952991684851706963709084284727470968893048121706815628560430380285515795971567730115627487427592664788770480754671699938423466694782790833136441859319061509731628139023034488286273540225438961634477472228029562618880964969660972144355964271239929460068282679834193927915498266834708065817840268211152374692256843975311903529022422135728542670984646331773028910820680154077334914858901483836821991631017206694250265482192575628408058013081827700101303807438492739352318162884609227646540912793038479345478084037776422036608759334058592012242367838978134253848197219393277500662244632876726846165532118498223448102313564930622604134842262138256895106619681627034988301577475942414868783250789925444835271819269208404156845178773871898707612174285276833807056466753743651656653494833793177533309349178388499809103115680272180753306251042124997273595608096814108410094778990497179116586344540157832506072307784844096604868205772306982361344461113768264388044045188068385337066939054307332378232543023782765263801555538567890139341972920075969170356102321141451672924885978245895637449016165673195615576629094479102771268688464806447775805825836882737004865496953915838686817689282852362282649579773228097056161561558457409067861503721551547470896831867399879827262801403158359867272407172438355822263175739263472410734139358290580990696316321851730958213263368096783325539213936215881295629580710177465181407064544572975728066818036969716357374466346955938837993327579740828104901937178204437259091296329579137274050538657284232363004155219609397192096266960693341861451483891394347089314638263429639658316084578625741721109320791701366055273939539961002230358131098722187930020507288666977653117731603988072237956129147117754160328656749508227115916531593519538635831615465104976905653562143378923780551421492677075869735858019334408840758002513618553501487366670149175410809418545487889674030140006201638835440120169344566397012378789365537685073648673330121948717330626863259679845405837460496037264368218378974309553785621314730971642696895476585596276953008933190313707206279580317531585668613676453688052940295103023888185896697038173775976163462829522923038170886086438263456704087669148567156338520497709645807373349324615440291895481956490375719890964702136174805289376659099548010536516085977481273435819715985656908281059669371731037907434434520077987668256915726962319043763448838676700147740666791193449840750780101582363985857693427600216205003774492064650090015040231751638958618888842809331773895563946890170116231626712374237904730114808863159833920814330573250612869743938371269940384675549629298094534197113105558180395713729210823965490899336106594290814806819067630794344866753719148363018374198873260320287659749883037501225961432877568191270361851686090793845021718655909023673152325611941000973809000561596864955519362123933905687741479076872802575003006952956652341442518130716630935641848003702277947184675047630060745487133805125054912932502631739562382285379413176790944967239505624012175686133923835246349235519716966485120178513945332757373907395278343399054999602318857076422505260945969881891303550279206273302467678231818961305287218140726809379882073962450448240293934229696775783184029913995522389188927808970438902701809076773941528187897509886622716378197871244068745965850231829836417538793743844911852301630336251377325163103920068089990271115165466500071905113772045689284189231452921857530775498810174115540064254160515524579887593667418499393508616941956626947707339266582101618447502960879368204087949227557096729428028907053376258284526967543027752319698223524771441888012392707954939960030301767513982633766076480226306464084586034712813536097308211876769008212449848441895888915604149903801610904453837003388689836099455250492292142722469684564177426929495245799490068339416774483159111342959514651581669398309561591602894173037582484827975584001737962593704805452187525532622616429724122680196608080863469392389586217256385277861562983947860015329203987636416141805006396014542001241348096843863235497351859932933537786709567434824349917903493183750805167380129752173558866661535340019614939510966171313385070226112673203975466360800782202008426495713554890344667284798002315805613015926229888841818277993214301090874899185902736216525173671310859611200969872592471090480355211492547834468753250600055419274194354609923641996154628062086037398277235668507622733230467094541165215662229694425320572177874608816402525277670064878333029793509004302141443588820576432162574216840387430664782431346060394534282055207813823635974207316957243624899570608686963836382261224321980453027347693583494233255826103462319455069655840406988299486804674442869143138674924222474716287589026808743406096192201720191365876540862447128925109048539702109662049919690662500947717687804178056714814381524625707064485731715722303629139707824077831942786168544933809746974775133374887840320036391193657634295168149009319077620086794562251223447299236702179499836237979546416597107797249805612534613466302446220281415585955193319890483501490958748360623910006029473809681387233822287780983604056311025596397904878029354764527751474212694123619349912348413735105387426189378314534034996342794017750037570797384164636728611061900659556879407363979306819054441970252280990710306899601644501601214455990973147329354001994928666884834167247347957100557743738719770387557357800533334882248241324202564658092832691080559838470806544422380231032921151962873184242454414263803517764732457159590645561129865080196507156530586111269963657250795338237860473479664809864116947631122934156351404727347688306173897774763049759733732288960752979612757147695399742704007516658831475724168175354537977873540670660671442200761884763932292892766957174068931741285506173739475669236408360119383806880234459378659413924844350716563870108159381088606463859359042681788732539659873164215533799050368309578555480709945809097007140443602405199570959089975523253998862297510665500539297836994895643835328195672928479986843559027935747941791112628545317330413848644990623118247380035523428272087180400961597752380118599805200320541914336795041625259105495203007204919040420643469402976928811385576619696656461655251408914027339504748872711930084280618667061465652961592244020773360103422387307411623112260530918375410016828862666184726201312658601715777846575690363817833165486392379692192276859289234772600445845476693739446724440067068841188760074587440139201931468414742110226270487722425086736323998370836388413235310135844476132031231250219105410755670963512767435301212101786018536931941635260769307841794104585149251999912357653191408313231483244245169978001896131126999308097798265479222146343456168843947196358471635229255493991573335838060202043836616276522010710800009880589647538474697579705577498196043421814063810643132679035744867192530603288220219845295172485258914562984063725010696935754328266699965463724059862188189343261804078790498691240699941702302755904039778402582311352358003932507388284684994161139564900021498694701898432257214130152199019853193537729034248922087148421331111465052648409369612531883426463710240599835561640696829941927286780458632804846983337956386421675474210974563916448008493173397481144389432669792956865056410013453226337318205794862453100078811853982204433416180088784053883736705243416885237054335676094341575408412429865983665559613668427717808298909401687329146180148089114247615754986844788014537337553595695582699622612067095341838252620228508940899854347492011252432722091753346559710452454206480962850114455984982795296064823664090893509316154674912848924557306566468198994667554810317546274729469330963337951300325321096582183238611454512576996865396633044005309062970737820689688132251416637410950895118731653343117656349964930238241175198750703486609092748000328935615441762448123743340978332866773155065282221068906079092881495367645187601442181545860918168710425899867395520487918956471667231860669606587718527556707819562083940231956989217777100197328542689965975809922768859281554525101126668492121778534585977742978708727851014043924495417779872017579777087547073129338949410953221070246174862116968343182764152831480988783234596803882346205014686904855287092379099692554683891089458167018606215896217828527974036825054920752057066669589011657282659771533421211184454578034350173738500771024535293670320253213371356543857940774255840096523209002483418576110282921302852717430392798403395909187383245340344157257019337669617335384051808111278927918256541426301027100618813271327222775114394989975824116777901095660346394041125575388248969174702431571700735619692430205282671489662135392023528185877467004278498738772478116899414147285500741695243481217726875272605424702800115656835160607831967559293106883765078416982057955305189473686584191532649731374437519173679368583210747258070764665995243907338351242199122756060377901434516213583871616548572399686147110151816378496998716473716700810709312512863132557132496499505874204834932359327222857731877771985595810262664643363129727766286990871942078100101082189243862870538229846872224952515986694285727257202199883744613149610485652875455393270229455074487431470188307821275107122217526214263210814542021944085731005612103181521543014234901779761660970886796522204810374135777430429275745470660586845538614443648897029712965080971912301054409972578665233596693323219571337885332512226803948532831889280372861755793766199263609918409019599064547453624013186196557770604804398168922012010227334259399038320504268845819082912092930841405099050145030474018207243984711762622409129666992465321452614348065191884518310170326003736428796914640128326028975635312451230569075084243645501846068466707530342468565256553232495665404831252239728603952590131155918691088207420800515215276146279050346104033517706122102053132134087211730298321413395509864130132360345639977031969251537615827048967776972196189750168905436026588519594875294469280302240594429820246628732138474393300070832160078826108154217843629459805830275529061968763971118488929115960006379086991803692378608304640819102467145828630025749769076579540465647467732664733043256686893481917194640725403607205049349767362550253403536304778617103046176964545152181972706779154589958622645391925383186122812013333530387945417035687775779459825688429894076311248584462423325258533404622753430009105714267653371866818870788612950639775917706220754518833146366766140449342618093030068052004508865776167457186797054929485454781738607701430007541494158025884626216861724656854496071855847562099347293482816346509534068765626442362762765509373480907401812865367233402782116606099076758795701700553501993032909369164521806977387221288209416293831696571134660431358883151824526030328907054111707195638957411567434199140215526428946840804033907136469266950389606225728737631039194209442587861487489642864796623020278177116689089627306509590480741322882967340104346409585448773523338366434217774919110219395648288526754060409702704897427726000307318924789816508664846480267527667578083335921924857687296065933645805740747580866947367620566996388809355682676477477458016386902891064787031858357925648089583993171197107000767212516414444909467424897674684491474437122755891317277192934073984917186519078283215888973890302676157140541106377368177499166276274697634345466047544113101363570914663533536421624471894159375532369640226053753610858840330455691293082431168256625057561280229087257069871349679762992080463269373488048714629399333496245712889211195223914333333162167840367331110323894663694548297462379733175999455840617507579486744960300073961696577088381182559400654831452708633280838843505764335971997930321165398268346614516569631690188913062542661723066079982478861785287280601813325854832327522706616312447671819954018011434546212900799034912764865986013530064528426305930535647179498380413110925296232796279873097942118126187191585498924617043876584666780014204395928920070144655777349737853884942061700126184828569546174456662647394356165916635022444787384793576987356560040652979461024369935267708243431110032086625374941181787453504303955826766084632301771692144123789514015380848076277508061330814831535184747299719781593697799007508799795028442988864191697796914015603406107594082853941604682221354427694425002881563365710224601580608148465248189166284653095393561580603046863365839437181635052980051537194194332934567406858662998865797184175734600615115654735989370773189332833961154158213438133685164523698421987704088474497415077871530938433452148015370410795904913195644384094595781657694036688987093442358226444430979340928812154774664619075127852617209128620620271031501543211918062558529853213731873635197330013570174580072091747796991684472707397606303812841976892173604964682864984725598707742317413530088583412194026111627855154527024633715279564351937386453219471293432537452723550293552434311941502097476094641075363636637658587645312794330849581106701071191863014267689665603744689736349807102100377652565919070693987247774361621099893367302952545047506006783254079605420797540973830308875813600463103842772159113505588072110074892586761225591687376447301661037754734705624655065827356089661668869439790094892856884000116008514343139121636124393652095722367536173590521858966674753028021086191428063301375328587135111067009971377240996174455210412218470619920383602498181456910731392374377857951234407644420511316426346699674710402513339278797275037236635431275377778768471087695401689038360641696991332500232162583612954972973841804688994271113669977188405688944666201005463989562619582732068090357031048366950459901464261271586053360803632208047237876854664776861550546182103370727710352327652718203324959831503679313335530030713530686185417273026224973238169468047171906294236452511578179135713659480356006003256535080043249660913706987503003921897515615453862257939289690847852567596134452479119352863805197310441904661241163557137226791197730460394511257858353457241588093786570133605219395427989192128894003566530918682077824350575188215745131400081680692081690164766000671214136823482753560826757802328678627784756757361298299387383369293215158803778985903830060067996132619100061312192739613192174829218021126345193192277481491423669815335185396177116638554303152480230959301476975001464885222325821407326926982499319773612414767939740990485322717108016954782694658622310094367581646186514505255526930888076091350848147173897540360545235637769097233305985531597461782261158163433331121205396940357628997674151059520048206143351825864935428152927676603493458365179505075115097427424023823196637360586116688887927242089593862284182422208428880797170954731924649259865708427884792199303171160742475849530853085912026148666536162809471138905363778738326435359378206440649443586965658486653089742369866728721070966079107275935903556187353595108746265567307806572639565180766312906246971157903266174995134860637128909723317370620255440268676770638200625778481478597945250141102961306236446137613515861705711863672914781743177101983149741094238167992491522007351366651529759027844375803395920641920054145510832662567831570432220162944684396087328737981689018494252880696350610578256141032079557415086937720736538355342190370212411140550481296835784045360124568837787878743790819203210177996265793898207501346915571114262229749088231162203499657424175946995213456495738758461841422476250991277932851095406286491081600544374868152479073352602215587089982235485334426970059218962915921842610042400082867098056627081644814712865048305502164542209529211441670200806145010613946938926798720657373900956384266009944313050651591023679040527075801881426577545462351330223798715670378759447371518021080119377816793152414052973167050628647501760219954446852418863138805286296970092418963052336008410523804328232820881024764714961814276158200135814842823855840659828914430067816989009158258857810580844953307629840063277136131787521201502668771108082722051693509619160093662495804168972575471637050300524744577270210667117393627983977823925510325230231582222561214264064768264538446820975874028729927492941183271205977801756445123174549577538264374091497848606867779871320782977840987512249819193124146341299058587334051671596056880553647650975702369524462194085887518945363088260499786449950616836155678684833624093784163251100961636881912771638278766516524135119205441602890478051914300848879849642124991198442428313356104360387681909470560585242718669240323522869324065146808237791415275105176733284329971382235881704461471513694741012951051816043801141707041634620391771357283830941062216603136938985743715040792382643787767611255704721543102569566896145675332893065860844286430511512150807979122814088187254281205032056809064984815023910767971234333388200828210642781292680934604868470615456670442606746578394423923901650772464684247543951673649910551972555251898005277777956931258369786523715298035832480593985723778970731610832450216765167663690406049410326314969963581709055470029611211716156466649703492940488535931047559685223704571631377729517953472571583817993111222316751261668612849239924112630646760400922696760911241172837090171963083667631637159721115851986347704186414632054900260922510682950839605684579605500951154032111716011976592568349210818556798200896722441499765079162045888950074054696205821809194364607256914822645915771686175039067866175312837078549767743934214220593918000881785611457852906730199914936720373020232510043425779174864980273289605624959168574454585868582321782505095756418084787994839129154092458579548422798722767994600432086658545592592742301642410543627176288725852913464871892595238663765164183172116844410638229942805760218170245386059703013082456942617772517877841065797895663336257463772190226143188674986020908120794961512429802071696032912967577936367225175223516254968050033233623396333749448815805975536842143446789420824059272774177096122728192945463922766199122186469121078718757808140416138537804600395031320261488369195500504744252293273438570996378497003260061620006872793258302363144485460340610782349309885655899825546995031722411808835118927536668297298496050660236355277683656511784173684328804725553811568513077524093407573257536075869789678495035507328640344152918310143321533560645283236266842869643659484460237458321737916084795608679973193149020937897626777775323925090871709367453816802437638565194292383739781942771541788164067764343200594480378776640511386046082447637308432642855952940226717967584879702866730822222216061868088934515769498705158008634914217450856098439377736147069718134978178909883866703444571048024013358120692239233893585704818472392808058928278658964959081417320296917661349748368783724189020726406014382490491832759221557103962630631303033906920046571064174379818922990397011350642252899632806861948496953367516958605061942379173304796659854383147938749730845757811745114763884292568370815865438626538830714618512631029218301908271361252889335341565571591346285306769415374695139527210986519072866648382315835321212701833974832920874695373700256205295277909531677977701445358658068416964925893588483880938680377150739183617722814361272402021068812493361915337034595762424895706477953953056981402761520644310810626656554117297380969671475732505986944540720185239226768147728587714625403743685314546357936752175618157604078630551726678036443506852958947494018210705937181230231669811527153941287723454899801932791855936870904061720725996939829311614980726040754108983283993996503866849496700340403563986014857210032694070543252317993379148629026160826645461594710479197962125331513472490146186042430299788962117838648200166753311226733448183267341281313496186233128276588904550484372153935447065007352086530925327131567166331625811151925821153186767139068489092311815565452776812099909768263095355146439522009698132675380489195684946923841002511505241397331547476467921941619574022114906167534270963438934087701144451719411305621372791207667965220021385023453007900594792937824455779638912634558939215034289699025435643242328524826105938347857715024220906317233671785351291011162575563444524799718897542155251046018753564414406742492096440752122296693073602809837981929778958651143583368682682584324222062054551119329085703325921973645203443405964268946443437174754077114958124602763076415255525135369025618590799565018834948613782842987177965195742617675006282383035990681906278335953265880061800741258949322834996243383149057637649415355523961533652267152690446554004068681812143451263050672864261179619403829944117820088563025999827381927038526410134229799384526970639470714722433997020686447358994181892385482812658257583815833828881347352993001334236441162811159471084792432477287634867856633662757048093145569186243261722714997379427357504545492367329754527874451892608629158237856223304230840675019766090685225923213564654635863737774963864943769439103405583832318741391642071590818544751506752473691224807787853836270923638931604608695880680755062588247623327141985763543031424906160678217944707117427500989248421930725641800761173954740298379342614307092330404906971461616966032409945602052621121461242588211074860202965845471439715118279092382086697961501553247422846377762272558655326204993775244583376697067791122656962547902703116956120035010259455313772877990335745354759204044006665099361797150264304860867208887613512478579401660806681888145046350168341613425640110149973085814629092280459073154668642289110639887322483157301118548061518116750635920566900802127153562505493577044206031274755573764120272288287935910453586648688242146813468319309812801999307174082573753572795475165584650610626692890349721949875877119944844963387312639164091848332775197673157327790463322714963036000466431859701604679702440728394599168007579089685231799342883610884216571218462761474841059089189688097517052663424934067120004318717352641302469230382278767452276589528910127552872193980399408132363872472444069061468953654446145532054251869076268349080356254536248509004614952190166751900201891011933714619283599624437884530469518477577972470330903876207002915983174021956421874804999827338463172150174781693750490580204626753058991461594314518849930664887875079953533227538434675187837383057340059119432559267746460692742727558466440706880147375382535460179681219638983500243075823904253695050962661840585802771882286231389692272344974803118204230581811166330433499719425072229781277853545018954354212624397458120271746545543704968541397370150173517798934650402678359404947814872088977908472553120319558024313362319393766380435598798672001076310265446609869207143137301877160629114547283561386617769747296135586357128977281725280046478627930984165675693732134660258772763309856753237465702567584269693453413828958849952993449311886813684494512900396109529025345308619969330284930985629898234720152908585765625396800741765826571054933508227772979249667856853670905289977938986288289674834845897104241213963363319862522245810660461352800467253231492815898168051582492774438141561573062925984718787314828181383362975984975352804782059589308147093123050827901070977037435082633455945278045564494883896227906189889505525423166401474086547402109848439399686321784844640501601813966160988746018464089163919980745508087042452471591804515711982884137383976457605861351251750053459706054977605893158127229441707008735556866692139548048234186658450842824605373650290723013203563709046532810480008946468693556756477121666233325847540221688150272799782344353723347165415039141982672614901921321963672350428388095225554840250441203496118408584973448152005412349552958936609027530284075346168840911546624463003978614778547000278065492726288298296368563873514107504814156639281926857433973613189227118556530531963072594033818205887704907406522441699462723610275162522138326221186244720963250604534160131756145991844597724528396459189249990596380544253420461954747543172795104396286107517160148549281444731757548015201511465978231338010576070947168830659372186804934007754618191454196769130013141842527304447715949967684096364283724939610889951513875537145264784737172253442850582370191753233764982294872810225076365784103700424171557760708085601484399057777574494811805021209948463944252226874948118429102338082030961631549433547680787659665751819357007427738418010891747518176590399348074861662940627899530243037574857095604857779549377011275643173113310820712267690578321170435293180491925677397408273174694397508963177671959952012663571029290979720534251236300812432100080452148653380764201730087851298569041485011618702218506087936410804143196875491651335719253348113006619125406970639972355262156694321110091624860084686848422146601877534083279875268511229741591413181811872707970010614712999152707697706215729592728727284612479528343568181273417579383709005464064108774435100120613956247430056514577574062297019779701674580357997669369669465853481048025056015051611325410030543850070848106836393605193824843636560261178598749982150557022023465995756284309964039934044938107458311548246531166309758461732783474543019378907232603530064872266729796074411656033319036860507791907688152334311616887114570980747831357089101004984702959113266071389328141755031457861275691711417146262417326853228726964103805540756476952329765641707408247742620207062979688498701268576453591126316989874290067057474421487585591057406255936076189686723072159449936303817285933561532252472431277778748913929629544527030740802794819531704313178060196675997557311062379030636223759804590101736579480081714733649194176834165689610759742829217250692130246367250696861600677049143127316132436235645973332581946257931473219941628044328282224733503766462708895518388738013312793507962168603887919803179137708266456254670652968854967218832568787690414058158098970462109573702081144009413602378211465661908606469088812147029068741273439908147395773953837886016290102617921082193514004442969820834417696355190202817873970861164750908472493504176972278052304154017792184511182138704610659875999987606983526566959669789162319765522474309534464540565373979705853780163784260558012592077299600056471139916173949925713896502576162799638379543912822747024685236568716039975093394527527979830958811543810862398273135500304649862820420785634343406762402980353387041432710615532943958189905409080065826810218449843596590448709621094204325751982014678737762907836466548733429461650574717790875018192152094880476178426456722849048559009623384983011153441735483338293240825870668793754679527778446054525963664565605898072780153001061070166569850351567878123085985508894548019238114054442428882757455985886854226328197140060003171900173878396933689727583032415381555142471327633706183345811859034043253188309965515982625529986176092432609594839028701171721867296153374833005265045864027836273092409183121769730674804031677147748372885503175971391758549342278710997597373297973478359878642121293974006439685854752898650335841331097068755128755183780023285949692993672808371488310524384643108700096914983226539633460533594484922379714848224537024098044334474520765330955088891886132401441924858974268490546523639058985880971594123262664182737060311973228567249075291251439348215316646371429245610112984258051385363012684953800394468610186284127902050746612773247464811122862840468174509415897544596078499039304061457498532258369983715320668488115931447349264934829360233753836088534852709065049564529771697517948392643369580191745423002522124229935937155722233388289169065996044206469956490115105349717595654870492361707167943668086588586702320307713818414489653923107891064375610429895229986906986774846876079116183430977708546792273453820015176868098362887547003683702991234153127336865645412527650355474204174329755140089064995077688871221145647355893909730772998592209267460213507799424225466685567642812533877796122657864680711576980401847540842995745119892905664448450765329692457361605999827008572385891684820751967408395094136849727924378789575090106913016201054412968810402746206285477712647555558554444270079583259218009518364200675402942341939751364192521755991714375093793821288332840595077204307464196713565003775338243677257200551196486634256665504550030935272543904340951902642098810287811034190746307301038178751677769207431520150694755359318869734561335997353510016105487581022811994059496896176904008378744383453815532757033069613956441855234269711049708516753570918582832585359914761997765689264652651130630772458540328759886479405588093216148648182946183224848673647516822454726160199492495748249287222210008553486194767629198056450193769363519042571605715326330147709740784286745117530513552419796180843834858987824381575995926522529359024374950484213299679563669303588116067718411675118362750237035879125109128110691473778005638062467210249194900976258583602044828972115444637153028185211265128974812737043624468725535962881343002592642282742574692388254887878829154105129248706373943436144643301247350347007279043368366494309557108356790143592281192035276461004601157003148622746350228048085872427279025470242334855023599552307327161780797941074177381069756656229021443330099576117700355784844231251590698539114103608238328584845471986175255143056193092194029961710623917774440703408897149140769251124223550001479389097581638819912998749163792482541350583831477478420656771703975867702593880614984031373091318037094016353695223822210413177657658729412293738854889577670529461386521566732446646208091816699610580964439693014732558867469148957924410775281591293217099951776939314614680079094947015232167700771741464904042785420344359050120486332691243103722488038352950060262966676672737769581045818226157992039600537332434333661016404558725253597934560845061853511935337696199466694923120088727537101920517774160821902986775003308761029590134859423428330820716745820021136954924453248374373133549509256859723642061947786233376768004964975100155369694320525333816834959676761966698745907967985211414440586458089747302612491976825546111476663670310785802597632260801098677627041836174423735378510329923326511820207786929459473813773485654938520550777465651655795755496566901144627581946787241536462230775606654670205309929561249632745302448874452364917756971927330298587044810563543477189726180069475106475788620691323885997017408586580560999667268849588286070249594308937735605049276390594369673074449400396926255896820555299354881492080606628301910099563542787093047569807121298417485941729642960357648208560311658907174336070602981292769677138248298118979928189603355639921354528552377668269054113491932398474287716276447303769204701934882434840840364920195044519071219390088266432190102280621259812741903391329941003800700418232186548995261766558372403327271795582850244439386928843642573053121340831015350829116517396940739855967943687763188674503983956585535772267084400029532836370728578383278775772586295138805556153600836637856550718219457126250505293484685545524060782292584616488189518687781108450418674810964712492564395414532137207734165796617438380750368815761580233492532502233706179108001765951370170892165411272821522396135566424386830101206881783011513982041255987297087679566675654083849373343744784649890911862551424787857567129585002504314881617993808118880579025742736219578777501935577939143596123870802943117894043589414486292824288210072234804577861008253074452330048100944168698314881212398176370027949416645739588784735704893589064716790772184408417302734161717861802193065187463923383516586856647144728764273384335603103611828004241722962489371323880229560888879892583389269195272423189971567699255667507427228360473766797523791467961011149520555992462464062777325056926602902833766987789857156563901182122380200516357758620555885638771692978198277122984191401889757493313344414845396996867417567882744994721729656973197554719981393064471134659231341793935405408469211075058504424947022598235817400684131883256929071027830953397768181997540796697658750073018938283333630051798504962923137384845126586799770759031466194256506580823164583701416415992009256278531913788034145538267655539659694961479921867445419416313060796541773784988194624583885151352593043165439186210065567215135680233431182189461795504721612507591702796027146515525391341814173372427532957898439328778585162139421899169687288702502172746212523601420645835968292273882521607080239738826255138173171586332819207588193397305455969167332064754505340188509496973635262986135255923503628932795071252966265371008854822484249839062541087822450542943398988350148750718059974330453906522703788455563989618762287411260931034695963695920011734449063646104601735542577112118613352884975072993266083776666750895487792956028201709680637554396023808954122671910299714183514379510825806180745015518308406751800952670198895914651865966780575869064912274646907816978249850281720525020985318469970054429529857147383642639270282890164927256069102960384837282973548542553378591604691557252791713451238757504015069264001055767746042363869056854289291673231334462022457570722714465837355488076316972838169869037384822641020266833881759101878624753326192674435276684371960288585010760295655409891745900120256789563615451581834867019971155381140588949121028085139705287133290875536040762499077421737619572821648888818492585352950778722424079483332491919497715150960824508765986185068026191805011088069112130469321308372452421012193557401391236622844187931453693553154748645137526484991500339997571118120784147348749946431970733430960066802382348006652953197807331299510098746285271455071439612807245695606841517680395020461752203952155841675050268777644710111919844833545535177442130496311321663782613627925228158302422309019852672823358213971122285772202759688975984561644392988508415533067947677773792559750748302582552018978981680009401509415130470666573367086886258170468150300112142384425643768251984224686953787783399486467926573553661536659561583787348755305703292597418291001942729033607630828311248896221217616589908865377072662314910340272838309864841050213627829366482002911901088556574145653918508035055187426761041525833507708770792763140075780697009911238749701065518676166295715056389180439678220692148007538436876304323199423671387077863738362788573582562696701703625181953625227283041569114450098178617096913576337711539506770193361726261687595906635335548920522577142283997821978307099392398036579987469298980397374628705981399513903823356398346056040160530319125880718933730382979639347049954167852185257594246013476157411205194023338323345347022718350322669076399369120465784905257172164776104830732146209911954255075040171458776331059720321779376385397929798678403085201916049351189453296534700659336561361337418340067423190112044135575452577139132187457200197071854521788940219844782053453244108594382364903970036947962910023369735759772316752215822960618272113963027766264936701020512005867734494420932797004676074635833176550412072282752027908673570827052453598775651204754575229761052606550395612535137636544825914488610243346570837985398003668232595244327403238111494647104285497373741921258248772019812659609997997588483153978437084688961402167014775773325126874636895762327321487495832812872935810668121438882985640108819942649616372137232113705130499964047277977354243223130519715893682561272400824733732381578222341875082209108010929573375391595436651088889671798345625152464313472223102359861246437599671579000336796454624998607949220509764605466026424049749101344506037119960785486322004805054210477722399229412720331936153947692673214834167303510417716250850124350341974442474787250918491874987070975335388236215355962769254294839864069391650487605060665079511154587066423654271244125014016207583230831070755961402052669559938489637814298487889331914207139080415853959563196031596724259450184897112222338869508838534588288302561998478696576879169156971749370353865928844169608758081058948966179361816416605935135570565099269693101903281821077448721269505650137808440352124288581219872187358738844707224615496419403329543405153530560367246568595137746845362251063883503726249131863535406527785156395084242612926076385391491393897040058749410832356285605565472709762589209538212732594870517534783393011168484939318781455593371228986705137763067953734651230672491452516408730122049093136351210628627575706109341733380707901979165483568217107809719699365501943999189964856123956533485646720138302184631664426875151143346721244362098961300746251248044103051681542041379527344074469373117902566895430998192123133873867314643068087346720105342448036194064418487121800471213479128931305216774009430074488487315317896095706621678319183020657394567060659918210387331185540682983455185573252284792190169114001338772621834680634081386142043927816364279485359196182066584353244130294599875062689524778622068472214324699445382100190223964179266763018731852686692711639836483208348478355608991209353786189622473998633069312644221636588812731744481926648694816380323980344889227183683996285238334734195485431581144486151991034301332317932374847556252710961645680411348405038638492295010011130495446123887970407428232047046871131970417950269122965350224928930576097235671775490950910011795525705791519617635679203680438578893590831311598548977364891839770993829922465462919212148111591717491028727530982005701642675719515368599771707493510749449519037342557818224106087129963778683365086631422073281184910870994267610790457150658676030863532001520198493009001743758357389042515444615535423161057767374542112686397366127316655900852200462096488216822203716280819191120445254131800615217519811171268228565371846202737289160926918782222755860284023079218334935119330465961183637412776494994200899988519361052824162006513159162334083447675931966144094772709903533418912820501752557576365801436215285021473075443859217363570276985724274412547527196814905586715525863954715318297249167095975248167792022094933150720352852252339716526120658322932150641727022039644605916354812532059989508466106373900380485206065907012030651651225494345002275188620393560709171496510939797715409362085410480760000502834418556750547711117162427708839808884650487147164233786581754010156418980014964175985648812981605666155351532770488734969450859316795674694808044186711170815615612061911921839212002996207867597006073609741622088509344368346424396047600987831410281724715288385045621454867364018771030244939781057003482947851072437312523977041228137432818631488198005447258191227030517455602442799826184707383017470662273305099216894697501180769772508212238634994988778816328288396572178415465804304579209721109483545563409175933164218751880611091844434825172322556695636183704748881606283417567490069474996317130124562459999900928657572856780678734011945928330276412102530622229587743595288303694035220771535166442711360546402283234201379916126400516903220562375669975866668098058942599689589460164533581828669961373922683886001656578945010563047149420349151386695216573408931581130095405377418330054820960907630164264478894183999406034465861617888362252593678920799109889705288773389085184436645514074854700600500661127610099923942862074298357372942558644796578901474998376413451683282053057807290133743277605473298112361117065698695689629869054930795847878893008289647124106456874028406546555598834726038253578587767816053348630845695044084745571491747604058786751955956524657843047548800244799912606471197545227349134811558918768116632845293884870651413358872331968819455963190692241968202310647308263078051290219113812926392935459740498436038309865421111392488606326516537975845183500980215387949746639080570193356287910775479064540467486941013734724337997468144883736524712130098493194958668529710708455678484009839617173988891199086378367995714935095805803678511690467038096995564058716989497245491620853046884308782852989673532060609994703936526872497971369801220873802307601826639385421847301029575540080325522043589634781641348644476353258376397974948867654434489750397427635227296719939694016385620736721579237890211879982141871681408062431717761178201695242478633748294215932260129210016443048301439075603858159727241582123523849049631796377695971718466171686171092558190894302459975350512754127794984908264933318940986833480569796904727476623813445563701494059214201914913243459955298964346934749215970916605709467675548427651689682547702237346310746477787457842783083835330028208846369095661772397901578936020500545037556575632199206827448236447541539999568634572919538810150285902715171444366569452566873659335107547501131851049569747067264168798398003726103865186360344532709304955004511367541554834192554875480397137689170319265176505415183390797474349124711369305457301157375913776567576321017014397633808186233232722013185560898473671096434382546500545249544102469288822732560530382752821098627269335855614640535268778221219680500337277773810722408683763657128823612225468521833978069084665511600360749998977678322179475611795213920944590576457059638881000088164122805643972766012770212055910355246343394304873083547141778008579635502246518631545724066069082328431964663796096907147098533981026968934766604961085189117867954659642315417063260543797045193532353396051260807767585751662212927790408749231620345854456039999453547034845721021192850563603154703214338745583947423364710188732665332555551993651129747959843492729163217223482167957914697844907893518014086986425541173272247180247859331559751730159869086173945696026937746032603423852989890427141717398038282820679460355308926760381842681375565286114863038157265267288868758763680343550935931722887398346947741717484342794765635755197424486546318617033700449774858919466853903880771004239241469014061199755854512685719964873489548854807219962490293219149326085556853402963376288408334633043615798009431444334326886514079307678138779063858073860363443483831804906646727407107093778448438939079765356850201552678151379518952678420319009892799868875632987806124486390376588074469451203714811969301766934660625048319352579907474802484043395957336766040643129503969113380666898948763651498431520149825554860780688257025628808274991706056455724566899907531056406858836852162190476981633030893111418645957829354415751992633699969362637135531551360047454709679520084068488244728030277312794049049315816477010713979630361327604335339591848683608130277072882204098191755775935126823207152108797799038998838244054635415864808670194651501579904141831933556472028872083864023193687478383649531686222084464695105151630085193991524357937246226375113480036476529610432483671856085460253338192048675352645506580705406108561239192739435914091668415847667118784044541907633889206909303723381952306252802433132287495713524469475307659612739561167440172383895602918910280041667692833652777662395660246838428881716679305907638992190722388124299132696642622142242097752862636272244081892077869086431390941731321682066567856855194576879817144887955972867056395108055907826988910623332835610668950768128985817545370733393474169578702423525156634828385015485013933998822859097783968251772005699412450657489185029038747110048889584477866583817956196862264726951658907106631666492103443253438751006522501292683416831878836553641712244756650151993072412469927147416953880422385433130262531693904127837942167967268034673084476276710970422684727382686617883592144631776218480235870232967580776347861262161253468995900205761780847222318506187385532978597725973197958729369493154434764535241361006710438561323751518065359806653886324601404260184819634383049923676359019357370028333799542850266263664864655538338176159745371169290157657024747967740533521598869834993102581277113619891997145602145919478062835088624626859757274335300059092208655713294571603959779811498262278961912555298124035392089047719469664213718154127519817609415683303703758728687017158512531535745915231229407631106896332107713125181757396817765706133985237430430967242167523676108454215925704737268108852758145796973042609175541658717373627783427641370236896939322996549253205217532412785985989611788231939071858676298191142002326858972875688411083680556968507859186487018202232128352825793947335234068775077830280812992211513611637280432619927484336324758272055378196917348092600792173868676924864518815631237668163694098000835311299706492814709167777667584504180101384190109679494850600273186213181487559545581691561579054794542560489246071694337536366365423316203652134890272833738552041573806565863916862255344853474624521237025531350171213246296776981932001135684151734696577566903612499729406380828621744482384659156460202609089810486545587103407477007109145247136903099060013437526142374334701461725944343942980504620101590467797461517667660781074394267861921539375204870194214060034865770298153132086207202477924564496164419149262978895571511013278393615738701308689206712007895587495788508418757768346532060963186812779954240529779999870395907797652016018423720866473177826634347540291862513656237172925693759665754015108438331362977355298824414862190891267630909692673327467099387016588072182299722520499065333803038491786133645031969747216625918263104068532885959161821540009755205248629588031122128498387949743318873659740849659432776035104828338450396007087423016466100513030262486888555130904192635432209945936430079102320990558380930031701904756119760410794717105937240490852030874763344905408886993864943680818986381735743836444537041755901203834332350098894357912859640341532213666592368963774271783128178942547915205957803011625793855419766072946988153965566355717631550041041081516797849506779782807177523013881038756167973241647142899504277487233246549523043533255002460638054782601901299149469293684891859633021811165320359986040429359660164623618278776891212150719727203402440833474236159765551561829132235227077967931188569209321854684807769446359545733342150590906570308999403486511156680852248330193117172372236168878009981067316576442104452311959047180560667861217853231806539227682958388079874929637724561420837438550560734916727792303722078388209575252092917665813253836099374923456325666830890364460807024970753950547845239144169461920885805435646869135633453011018448752340858441980545779730268329502271902385505105278827275547926650976469069375172005268279866169698738249053565397548536516817464604359843053327698716236603803245069263935137518238581095610435080640684257519178022478660381100595134976224588601494136868824753061148148996479344933796039583609413082798323251532741895763286292285748327062441020029863699557765349548598075103533770014869643729420888115378925399510023108267907350031429301730142427882231454053288144892456038586568582825486335365188063246622367630663147638921566364126233926905155293999904261953050175935326776710996023419577882340462729795564662345371111125696218797932412743474927352125926214622642683915018058937326698767563824939153811134081590265278117422352794228452589797825992989463699666798590973487722427522252815153510283727944007310298914753104007845552390866432540686064206737386930795721008057290668119791373557109907927846409074741444311700582432615670760634685204883606440994384555553154167365558170311823566535547496220230413063143515159278718929136287123581440671054176538808817789077441263307290870562744778609901401738335930557023442182931881638318765946689293564123641210996906346913224958890014125058002074332210680920379037580584993286494125610764965708362412613651070722172763493064768533918236022967537680488850143763115586061404982357462471085828084218010718662698547420807647825521661522716087130959420512678317966827654258857659382295196176557609130833467217478340655510745484896754344076833197415552558416640460733494963754390976677458342038744724969265490023576770199335140076916485793120480621669019022032240161801436866956791530834566804735778494032017626511015252843307572440483404662837313630873911079015597753666910599680751454876468150170279819587207171386828383189262269625586349848633720708363061771086742943696971981888340004633814154634824167310598795493869739038944888805843174647287783683147337302301503453973852327670278410569787828242325927578279872383608542355288587441842787445325736558678419708110518271134587765330426337082901461140510574928875554021272001250240595242617516554673873420740121865368409375923686875012064715503514731442957533726732601022853149309749302941388033257070228245231593505189764606403620178799747194152917313620496838494376946785086349690481968534126387431567608579061620335566690943857848003400898797808418119115380664840999167871422318282612725921334840998191416754265529858397858988946744056826005647716433925257117631791678455959632380824362033075200254298608630806463369814406753437416904013131743208734066558829934723173320252035093871008140053047723149259794714427679324659890493077632879184319354447803221099460942272485240333710145330576027184377636691683509573735255444380167972683432864391806372408248650960168974284620153699439959469896375158335623445080421600531105867236281511128887471275897898066084516710485581066710040903347549752447010094153634479548292009210842935760495951896309877213874048198672108771620181299088786276548067019611908756731460137015176467607107787652232354394985978626102296715895995416391360505934719842181233815584800661628339391825333698811529977403344486149854769102896089446871692236973168947896378361534728287818199138590661271911056321946967399560733425229534784790204264795286248825064096291747843153894740655701387623892422245390559644735892441747930056572051381075105084396592137464927355783706521845868812860030680654524554792342472031790576192848540384903085531581709776528404764416023593351226808158089711841352105007964155754849849879065065381881082148889632499101502728089297191656144901940321059182635376345694418472224896832195864095187848527994898621542093045445325922620776224527266093012658635875732054887863886712980233335838259478618196324414220287875819596667375185842175123523772858071159114840774334336783496130540775226960512439534914979613180445537693270741742000320196541070962501610199860994764766456791653193178959547992988716559338127535291570160398005498011379687511171499900930091909680862889768990370235477925956786205928549801308114755774082714571904048176270221431601791999006055572426598648569487952756385086614404731191633639271575906358643573832938870644618613194308298427038709475259796591308839632828544932224322307084306418874141961748480253268452361032340405119766994875466884230263883348374249558869846880365580808739343977304137185286561936998103299863566424094701198228206294283861333852151060594938235252410456633317118426197749475288767383276672440357897661007905310022298579558565423381793777781018078426700073576449785625154070194578249104096661936851816295817187418555839727405996298221173574121326202303760609398513175327544825667000602850698903115963965524873638334203209129276488676952990822598715542210352679049986062422459859375985880047827256510240326728843647642006989246981301212956194533387973607268622691371059989595869302912827017809418196870371681270386433216933763580589422198772723875482995355773122089216858270982823051943286133099880663333116346329244553008502816149476793149711978176209611516513375121076748039367859622035860296257077525344024968395072953240734913960578354600901505351812602728269206755821293749522108971416542150781942449512230540299624859795278828070174905046982838683124945905777929981036311509392786770789009795204554635753880418290040211275124555828676676323062468726890716651020146568816677879202496960872605072347391210250180978018607315063453437826903823934870929847110270786293209862604231063239095807805171519705026477566653393960853190993842318544302705045605610313853618196022088255137504895212946218688893308605078934571153676739123592190650829011094577496147596008212054491256079876799937406892068368868984313406025125496366212770604017227244299744561328565435282702333900135003588669038285237657604136645483590458136844721462501724598102086971767946922151502766665160689533169658781012466614338993792767561189421540308938282436911140360755617321265679213278279523188312386082955934088776973293377023418806067083155395970200950896823570834433482591671233003256599329039354161389678122845324907648581790440446350465171149782700779229570523813182329942239881189834042294500039255172349196794136163472584384021866767531617496163974963156559728009301307385870495578475423570105476782931786085011123153796381011068901297666464174062165340949463214962516674355458473920506239260178090552030401966435991087511651991496920503187859335482259399197465369114291255105602626244737691848403092181499678343825193141202038240521871489420479902304303120837956430710450730095915276360823939035910956886367990325326009555297980660491732094832676494629160151042984861971125242327872353044817924540687439918028296248489095076942952094640260258176707185008455715330881304732904411639619341081388814830808381633052031346032435639215150626284396120638205314364203318001340821824214728154621953419540228665954637836327793018198363516305800776523989546450018448140333269038005331297457718928975228891882939360506590332568893347574022716088940039112460331452650279825054230430577651462131977324039442737733234790455294951680973937551535837361044375970821163545920818519211085240471839724003988314635305941424410163520160421655060523353934413334265100954893404248970751885581974318178805346960017040093214442556713861740463285429394122213214388154167310117545536125121102003016700692676318669173504293028463414463943746608257512715949390563887501224319337729205690670156155368965041701259481507409963163804979993854554923259911875554314981691920498764303809021911597477173870946093895484975491033632045348398115752550386574405386143390171480968560492643023013878766539299084830683091075072662296971492234489964559340418665412100187349863918549470256587022804254837307848997237031283924689699985528358454904297901854893913274039028192439973675243183301242101156445796280174206208499690053755390873436947351035351828328189567820024281696504300611666482648555992523713847939402775978057523290212306876810287683057318998787636457228170361312680406261573724902832924208792268435407042116663495467382579422991991798180516015053861869762444604919002410769214014686253993236521593638659423299892963453743569986476367098483167740659936806150921833268603809164211467594144616447151381037148893393283094478752871026035745651814404921846666026486275818128549138968537076422807746770297287486455467325520414390487445659572057207366689574058276096761609981547904081790250626355428078063705930844227687909610810705076783647837931465851207695232788094816266573132330135402231726772175548051665602584886646495660166262748054908982165051196567992920804735240543634420802617719668371117384405900520378340977049577317626738192791157380010443004940461910138009071124261587932938247112751439256323485933628336632774497926671462752208616261808080851535479915290231851408023791355701348168151964783852047085526321765977179264743073081539611349514659736992505351527321582196179638201810382006785744736449133276202455656509976746794138724914458476006699586024464730475967419041413360689736085871923638684236100614248488711538410778757043203575612228927041851727304210959928433436175508840971766535537598547558166646919767552942161007819322457097139346675749244697427453657844082943611316252485540635821137998148800202020803625483018905245736055914668319784830218526772113130128673620046160582071650724693204525073887898987003566107202891501607977895798799558971089632671312115808058949416111677277672239188860312240993426432608601816904404688770413621624779623069140024930464432860905393517525858788880814483012089960436480576382427026546593524669631298082527135856004323443355983205998186252812470804071992140697441684505291903929132709771890025298064202055067530765506524496704795485074379696731470608665961835109052709819685578373432862290280071570113782234961676803706763960504011173444277962718577240783747204555861643468369489526416635868321282218677014446295852130791157668652112797552546523088845599548607245736415229325531366568224578701428468749591022123370273193440191971959998803105602219362285577853067342179091929188213548584472174851980716905068461439130948034794564495221852893282109891819174753010362998310078276546192946832674201030918678574201156352168114631089385621372333465768543574935882118823775799474548499035834522376788330109755961631160707736324431417653241143939319246981664669964437167510380453859992501503242304980056527354897518714657892804259559595454276743402122722049339816294502316182855861929200154900809720087204523055561111806629773627918706661975392005494131286575966314498018136142557906253374701074783083626605083842163024289135718283503772864298131899032909277204894864482861180699040223828800389193880916703447979386591877130041234620782612522862276802179109053040306369612021500195506522371970348179268925481003278242011818515657322431602372402330947472755018310331085996986393048546822737456522903951105711742668657513087921449551196337246324062493659333360205981013648483662618269164799800177672240141536983214816599384007832261298808041528791225512152852433473135043124479303914081394170996230881737446201986357043419245289207496043712050976257620866172950565770151242958724658395662352971358609495789304564317000559653344942424446785998642467213607982154490592788957205164454498436803805297803629644013053551191317133911779640795216571620316619060427746435253813772755030274767261719812168309137577676955740700737549441379134465652600541475784461459622053788209124689850870111083749908622036663747939673876769068633536540120992457672934757813256992975475638752802625552503765315584822568328245996637348493998371575654997830799076773520249373748710819567703309656139160163032121130403040394612658503065750795858255899320371196185472410479733642538601595308961649620768679670590443677671263139950492831284106637424420761379544998456592268916350359650581283361293697748358471667551212025817618903557575604882292713467605039138207648077827170941100026312298336521344215854478652626316422143630253492130009952675496274094610080091398565781930748067565704784203800257204520268356850750574012243365495973944834448613200725221144340597862760096847952989514324699711778120439982221090952727176341153797628811209153200004942227581117886262030767398951865837791287985866775773355328998981479512993171059718570019179531877479752741180274681468388825888361693540373002087114770269231784001141015834315227293956744686927766676938533281808311972506617203978952435105669683977507573282850228290704234595833542252751137638867353558223816748553033926055362445026568410443985051096359669285313927210914791217605456074569618310592670080250081774711100502959646592531263075303934091745911993620327761965740612640680265512693016742809195201177892591422517612969031621847113316125899454678778011103478485437795371156018294167443501498942299314992647460783832872650100902250321547589860409641764132924941805647750990691475047822680929642739575682044151075666036524437126730658645587898925292592324801342826154369369832259911028519931473058439630335275441752795917356894275431949293097524110753981015201139692085569419893604169720309398472964048496347300497454436930654838489561490242007303062113916857375289494599158952267797100642681448264606608284476745855544289710424596497100488656808789988065335562598823092526947235248669631085349862181960392759505792829152176100078198670412122432654509324093909445849579033078372934022677831301451289461611332565406455862749177803477790697597275555224073433295256208609206395795705008465946214732089656362927222452155384269640900001067922395919903377929880482352705901122825873250884382766782191652491114705326321672070486024952402609190913224677363883927473645912806514374306111284686403039717499907692367323087553760798123778359289340285181897453148889431753611043563642321942856338328371547019550770310443034542360702824156627506757232739285668958545728695322465181135713496576174152823377053872420018893198683956639849103199856421054492403378774846987289587296098275687843141849279914231524049526565533366572626083722365934337149604817621114153302951172798869258499482762118771038530362468500121141233925446942875455643662196721197956628261929237353327137050921828994131074379860842426032353723099866261735369236782735712143819181970569728378235306257325518264912504773019587940122845228127335743827644285905597337258456690099324670758735935533777839714451549405996026134313330384194593852429091068959890055709075246977913729862040916491424287219934841912262668809976725124130467608720549740072681006552026733522214543643080048459591684274414633999681760795829909421647603191395531294043328664629313725577659091608910929764815524589353200365110210897686104370505323043486305418624297400248129664922676395644069021433415239983055909863296029096193954462844907082403362458407310618864444466287309875688410574624260352796403466791901905725528543020226960869338213699868469104302666019917109682797371323506199833785042586768337127487607148162508635443400663094412093884907563656088891395818273512500413711890965652161495895875782454567949142800644078449926096492772416301590677818313307409458098548577146647944508911011661107198080714232025258613941355912307857118719838697624383845803693031368404202735260299546503049401493942412444208983447331216454996922953549205912791523499881247158543491303174051936616324794189618621599803948898586170079518245346130817533127463724353358083004997497051624039588153928435843509774220718274637645821734312715051762705891556790394797343671657973071973551602026692392405889100607427271409777626709288719521032989017056616824668743545875578310858400776022096981838585533494407547976113500940512474957920474000166464372260831353713836203565567643648018302347681336652704612241274625100972618311776510514383822991003128919630414642579102125600579838154914337169564668594294180510989481195336892339724098488261878787607515886031150707360956757630113983402325987504824485821329258254154443927919146758157029162252267311909469383009722599605401292416022077175833817445116777818316254548148077807696958584297065992903343626482162005452995980346698288597425685490603591827460097055973526269119934437157869830095209202970099650858694453070936361509083670697813189191351480738869981143493099740396730726600641123782148741507538260414124824567140149813876853377524098463853838510912331314643303974697723698136302296230586187311484269117828060899564942510576893521679669462670439335820184641127292164128151363080916604011432554347025730917560399936016565328101895398614510161938272245562387490739437782018562289465330702735084408671653453726812999648829766086305565354766456920687566581901754877000269110645379180614307804689947108853234131565322079678245393110604853336599857819300392116159080237269928179952056295548714648967884410142628020413113584148626395502325763395800831421592931442735832656219458084081526182567127415918014503461712797090075071020983814208816383273825248950590561531702233607607648719813067001249723737478016419765649799274288011304816282498419889801110004379880258601377058875802858838741323628222978181427701163489582005514856888267432448614968888169228878643695532367867162628542018494471778895489572175793959856471717527098391641333423775539751032569376803965430546875774216032293405352487045274909110243876991991103031398989146955538494594267828633581257247155680776161711537790627381307917509329408934380310648440981522838646027254921774790398995285785295429831647653630798552794720572870434007160766549161143726365398047857012381432836351119418962796459045472617797318722887915516296651748973028533318701097736430800046768504051391860146451481724170534211834915986670920528319202609186123746031204667638816270929026419414136849453057545219028633267755161055520758599966906287241804682747521794367672767555325746672666910330354489547916300993982628592642637993896717129979249296214580922733102841605261188365685364303987976131402129421877828453272302859034842514642658680472126016532109601656726988692737564826452543355859753440798019478576185705572233225772212789778786614696428749726741130531804217033977856041343460701277844471006726723566645588650331744702785795576083677607040064669563002206703810744556568183815922117536781364195072083687859931716606487031344000078740682284130861358989904212752756151081857922394247278579846078457933619901151511723112118336975080835045102345146328170723596625042767430024954500473247500959621506258089494957228000644356459189930524307843097656094519002231878741715371379785661888079126591433489622332513046617778898487854890185195743216087347598724817381912691327825558144635116972502529868293722350721776923215755782013793198185877903114874162449228319265396577991714630501941378528546733058097635449160217642162331253267672901809367972303695947873699334402457414807084021120727531240135839440562414042924983143519269049274368536972830121422171609718946432643402550723197171043821613279124123767704769756217892121701559202398749986026667886047186512531292628000945740689207039155798003466052195062048641723609940889979412403478767646233330516394040045511673550936396214923803037234450145271658807077309234641884648897503702086353226336676730181319063483903647978880308980123326981988729277672739413766728625013439871149801195498386194655322115875854091418699663769446325617539714825284755625720939437953936774049441828132482166312546412630909173991227442210377639083645219975097934778203618279543422389376403280039801662536741494265854330628201000352048720430236480215089474234451845972781071015040625363595255634649317544073888315689211873718409992720945639022921325597562384806311391393548556993041122792167518562889676706054973113879686509830789119304225654730438314372878242505897940623981225741202208390753773499450219659273279105896796603796623763796926796396340195101391182617597665576647544143718762431619569435329861994303331077606455309432154464670028656995846779222630076750035753733017287351424625711149409615225763437769381714119339335448729074047068960610825628041239897446617470805460263506151749010538360292878382899130661285730045184702953496321709774446938103479327098326774516325366776835153821332534150593606093591154520600506434149433263460798095913249558863248009439526178837785626669975766767700053251733963709313850570710228786657117736920326006020164873785116499763656963571572294777157421681858486000045829462997481438114141661903698817107416036025236874502365264906253703216062502583448918756517446396036702722909357205759619925356192441205253850662079706215819025589457421518040790774396193954598422867193391221310335325852130547768707859184243791242815684597761414410488293856347718629483827400997661432594624396313362472113494300365032487805863170579774074650640125117934235359155662930641211179325860581007606304073918969706981470469033491296685290061875971077387043576959668445700101530402234674987257274794671364505704789357579833968507447244290433643468465866810201262123957769473205138691782885602702592559018118816925447714455155915014908131704860451093829213922284879028952707430334889356017615086176811937144027735465041407202888884954733295754156643263625817925470230432401132549959816039143980320329040467041471663426614984735741451347547287166874217029888443907399872750372465804317056261044609582833032889133265811174338571303926248345221017743694394364774190988371071562322641210396768783043294936663057458876783100096746060960747607140330067113079080531369969043970964372648342174645528450152278270304266008743538904665531063823547937932659900045654694711574804419454055748663843021363694050893930226036299263029047811348681914697619950026961307059445131062367493952415044497642446469809407020090914235006290413527318556554605216579150441038705818307179709869401310274426927466552383445107994953872642304580688742811408097422748503174082139986766125663557747233847832151493755819268023769406807278189627201530493979420594793318008002092049327627861223200986349597598288227423884413410087968816711340934225684700678773664744334779217538866528526373770898771017853221448309357709213052487440314662041581137535023397645085021737428493750347353962612682139371507717246404977278307371664401817544465662408932190725364700163851485431361979609022082746672267693858425317145862580030354262445638505000500610902126334110718129262249280310663498321475759354565592849198937431569948565240001569216637012985481859372992649547153422934294569191468614724851021687299577441974840446734357022847898695784586127562265597674451878267213662621386932368702072080733830382663122964977319596266660097024380234574612956710104921454084437148963681855889961665785335233527850943099707198622808991286138932844005935590805696850156791617599491942327110079511675171684089462262904658823014230208142700996595950202357855498511172919362310246608846621954814809503683243166614511580361828858569509883272826923248794150313972182077811056876727687665597401658471510380180296010382579231969156911045703171906594581809842214957231951537905498547034712770248472554674558939929325115126665421391434626900953899449865416056639291594362101421780738791864801509161306407825276800235049535394440760742604960657713935963105594838799501082812639084947860425166085193793974839537423976487687120674016574429446378747816750496466311223488400548406819160893855049422732636408540789197036133491541420724055545927256369181739736871944937772145935190627778574812954962506563112678652303783903625974463957782169164132234931367553537813907656146016487492533564272627818771582192979559489914747155977162267924345826680026141607718433960874925773547466462620444856649363133221577563677932885040890647917533607420419972433944599790748576478225496408082416505035952276829347879078637827556273137855793799285585555282906349997209161892789695410550616783129148093895040042936250223889370524402216765696494727317977925592524522425582817433336534772864499517223038342487923125302401434610592265059690776696095880932063044906697972837411173030628769232843269383317212536240968082719003163311830288378406809994006678102068553194884646595150483822805536077519242816672861217293832357704361004329952843948186511773125455579365215288935901021192467593821401580232609712639936694510319610590858218230793104624093159313909917708005350784257403646973654130708929255679640235490317078011300582772395608293884256504199042802906257106970135796147928280132194525285687558781678925404096590919861610654812739343112833554643417996101721361445382523881093903949869134135344249569535979892953200897491789216608137539145824104127744812686824110956384634550221826461045864483310374549281446584698887260678075823926338943367123699246794160635548147485692675385725323196570992988639373351536824048990951492830072202374394507862287484601270715639729396608958422494451750433027841843224486746170882911850304189474734453557259051583294597160640380212772340608255640015634077221320363544149439656358463040549653244378917161739805034397963731396939564707494129021063371786586577054024924367661878392349132222680387612910828299241011952909115978781521332084110715826760846870849346808730428489658060272473465053038576191963825495713011830872732741604234349953704793337567417342239055093537483175650570069082741078595273232464792020642857504595590864950119182125692340041743015060195409178860556291564551917884611665096303265997043822989632638017355003225528431850132647463087834429970454626838108438333539440420914985482638329198035393949978196707107236132968413200935785312945945524326452654571293267418446240260580229080867947841138702863405671950880644661632997757133886888971086837504304213608866401444362012058429495611699937425357311575987907137859866457045554345006274013562833418559296224666321380451869322797731711817771857666560242593466077303984155212851036510769942616390526724239450126081327399101159942210514008681838955802694685410099734466083589387312733566472728229672410951172040813743573073176806747066108254328889022225331438403980114633677469501614626301497013867217402285361185875120895637365610802268018500153130443530506074971408735448177380133267037263319692350571204088904770276283537536941069452867124522381343117582118204707144881718023786900732449267621590006736076301836936324483634302483273327723890823549973552564216072425157318316249673955023297540838949672044151596841038939128423896112234070532639276453983122719555088585329951685270378166266963718289938706549782699143445408647334297483699499952494163593573248870770050617255023943411890951059752633298267305640557899189350396695743466435733629621933521671285545435416804244731078411899191417555978529737705698577071752480453478320413931377233037488712160713585343276798209851189139894239765523607874066062817292777500662754772194892268808736207345576035003724847335996909642817601013941035225017012663721347721983085301339572071301114574481735802520949666147311601509807915136010324921850990827105499752678500895022946110812968067487439170850193333790563253156674469107266067245657884172537096443141591464831823825460312125886421390301096985301887206285576791886356345454276537149407802704128441466293169805108940797253514514030331869206834712658197403271311040795562660602282640930642151870928080237821431732675742630309763369151947506844039150608086735489413285895381199033270210225920716738292472283681058828428731187161204593883343433757229083025758118834212775896299807213239855919977141262091150169401168576280892739088377945970589992688314944713839211151611874238618217046677482324639232815109122593431979542233583573803960710339195688278396806279361227070235949614227100923028147006834599029377058063820019481555776842739265138503927659128988829841875456395714652291765414128283898803560930441849574576842243344693171687071894133603226775937252300530450431647447944154172746206885783652216071976806478776346871523359521095198562819595646421327276008801095563613876519970540821503623284389235936426998300806435023929829687859456977922493023423145862564269868684006188058890928979319275026143751882251249374578140374946510431360293989467872887549570765676716678896641323634268129265668950375432025994962919686307033310273199637124258029399695211471929506766352623766267151654848979410750755020525313422760078487361127731018529593676239427907736323289329067187371096030349170531962501556427293050912306010645620357427502791045401978108833372972355135214616484643945626319760236672355366340088297047662632757453747721530987597079260060350983433187073891110876687251143925094952276969058543462292447640127208001092495673190732668325259027323166814072991359687787976696102788155057724680528800414538661371734533336987600471771339766619829781921039393803178195759646915725945484653347609447765936011883384287249803490364154890074657389500628065576811624593760715341180124419991087683687073466430860071037706339125880587057478457599672260796053978286261231653107108444546830628003049713962197962248160522679707926696139736369098332379162600760192301085909231556589197943806182389823237772132002159441690825316465064437593099859214896759185495528008284402877189320275604360799448551728425169140305376885091748826002137199813771914744739033726623831968117014229638453286952072079627217583018524630527247190313378034577161204871284030439823854899761881915571299942267738692198235309285696326831228902932339089060805441812557447256461906981845522724665106715983376288446198775912987207538596915961585600687625481068269132426203626312248314796214501966898936603568022169106024848902698895849222907180217962846264649482675159150710792039504043043060511093153421724281385627814895391090445371964785052864232031861017096955327475295042298475901481975379082929799792665004166636371218622948315077949783934940872393398711617984327503878475962091438223841806225436412510113832977431547912279609966415272723466547559974534893420846943778355555471118715208053201268654714313455421668290219972946980530494802721157831240621515925429675039750895095862012061210803565525488859580984495278198017372540423020896369888289787939481880462182073570985479191217458862466003881547920628906893791734143583783281914103079327042434710610399199351268196981752504926808861961349423651927515443220314468001809783139254355423017951041549803036096543836800022214753150071202571314397969650650284394905502534448637695623644920789043216762109258038908020818234437699481539892031976541264524354446330273817292743268013863213067858208905027679218198280643353235057301985344128349174447117767296580803165590362842231100994802291007180189477904677787985194165422950686372820575546396138387484075112861087120158368751478209349391269011014926512725982772786916699327968662516333715095616473105222946656732117289909309362771047891705740882079796012143432849626371901054764485056580380535027566129285485014216475846749395001186731917138162174894656868928900203744493749889151903351161103194505607929653787230376781755302044917368541792763235761352924187378594597402226823575698565234624610569863566939880233538638547675446745450563004274774649172015126287712467574119083371795391142760985101725472090621150869582297858091929691984403506525485837983254945957847483366131002757908674797394121129683060704951505785498133179171079505528664308853663091963513085552904271053365495701336076294800478359608809541202292771926723403199211821726836877057646640441215342397325764185075334181752079732181406624614822834035625752218262631915626426269261808501118316549938254145520876698985461887315384796003126391758743742828794314314637014438777686360346474645935440765144990126059192509697641434584013846796213301748167966784300396523059150522660383177488720531150665542160892765285698236129147698337730775454008541721742934889643405614293965654722835872345827586104156599996251470199525232907400065000771717869621642624247205874204562354131761205833085587779523896449635469505355039702481778339301929356232559363872036849162373471676121163688616623541971323833325704770746009233170845826760425293953643726848598077260696970774725359411610771141923372035099674723198528253008724031817037159191346825378825255156012868266175316530789757024143784818922872117280946142535958092317440788671749712900860693724196770958965508608729635511960846139814946597167138599137929655715800126392575715614527791381558219532125831735815113152001113853427593457462737286137224457786467454186153752326571572519343051073940917738809505152353933136679267925014568988632816938377058237530457715038604679440714025425648885755653047979348889938137064464856846276044446195841557983553758059889618439870674468273082750397569321020187841031301156783970026984457141675014159475686392901231987053629322233872598347742828126718019315414731321451688709371021986462846588310064786819630050427152295840180105620114770737682700292331287381258009700277406556639285294737544352630870000739088393867450395414394818380282960491431431271426767629208573844921665988916362323210418521438756331356284483306835505954127454661724923111841186284768590169882905250649579413421759965856792425214934158246270388465992021751365123672933713010992203067902395675846484001514441318484879430915400238186264403259088683279062053927671794522987608775803101626636016962487647841790575518609606532009808623974478770931717421589404726215059094751098059221821999228379668921463132972202591605904028911422059072625959766776710720126587915850352659288964048478172465305007162370838667777908786117165625049575531944843562749670850829529570890266693541045240733625698998873093889753963161333758263217124228558482657533153744740530594169938687801428275170878343917587407123075990929461124225313023208695999424607852602317068214031060678456107937913668952992846135095187211272006402946359293794367258641246044080241680502682275386132445318907599654617627273751172083436460893681439467219943676761002300749548184477751392621346075410422028673568685586107844936986284690357043775062076779729251943366199078717316546692517856317039380109268957935046335344360553531232258130784157202607782629245275009715465857915721813464189989266393474089259160560994703182683531766698430911602654845190308733458102265419996484365478460262596505777295313769354538937647205055780864906219906711072198464010106271828539191591729145834980017512745204425125296065992893969333276382786520347312684717227281361631649945706609315998478786419386024128095560621850168927595143661150445929019248143323467425880066259516525075315435872127873794172345572284812877767681781012657254275509017868640463303357156936328821413205495254113637793149819198081358510634491955784113363070973414852638415425024952849653670691763394417245751364432616197262875916888948458824510244322844021963036261405273127184445742395288385322640116544327376983527843270566285079697216849220361147322811216813098710289668250734398597953613234094707422457038284660151754401485628904252910695907316378907269120134184748797592362473830055050368257826073924719913659367312606413958782717923712296038966800226152589624586510432593435162922599268689780754934239032302292025693079823980483672776181045488948398464419320165150445778607210453061651258031408533484779416360171494742679468641955890542001987309115098384554034237841510288207045809548495000583997733055316334698283461111893159133524496802747083508391841031242478411112380528847911600652354519589472866006613592651966975268713805751726584936471853906652294693544136944744868069642341958122923712334758984876645008502327615949274531976344138541987659464547461665855309327452027601590490721748822692322697033420504859774341563072462936798994613523336292659959786922618003081991350645374740732348428059754248862603833625741672439362602183239437024831633302760195674892735167226677682072484880696221703750008417710853551101860717014320832817903093841951649686239193881074811831944204651023688461179669135253454469756040095822205986900904497813448070072636991848942892435433356593886070533668455055444357341850930348162464981939556004797491138434752294340196123929601511232739730936591135207079018201093443922438113354355351927651108269330620066133198289783612364292982810646026260384851241406622696121742045123227614041134875008163213657571626611386187529882728349869507919388186241462607036590864144785061922367784861229527326237688102439086363551046370636111088144436564387246839160667052527948208606154383278924727648535914854150023682820369038122188371989870794859219389750896222212143006402776464719726495138784719766576137201574050839105552522041604716679929404711275130240886330092137926432504660890058996616982730518485010669241896360382232838402281508017959319875348367411426410381060883367962754338099437483451192354571717538792575844281483151841705682890107324677685907196647412894140522894898445710066367498337375473488072218855994632856648557868770902614917864268128140764649171008001638118266412690409115497962550559754938601023073164962721540400305797523621349859207194644227638339364031181098562281841708975957892913979856999680784705993421242177760180272534937007963043821845096704878014643435232518365839882762350068955232195998098490978245521145110764435494625188550825776196792774885033743841292025311590484336244658109926932132359282269511479133739709013088267056379998881951124886534113387375019431975576929169824692458943136794936633515477721603150839580261866394130114393692000920960602276890123509671718847014025863734831549785641900414700563287794027977265059704289510640530305309877251756645924491903243071812810857507266120409747293583779439136499609501833779651889132427569603718283053791337599927703173276399488092185208289468569484036468634615265837526821680019568632158886654753866661663678716183571353706108514548453512036972376935286409873437668524509120222529219024136758135979407100059374559032269328120408520151402109635244005036947816672385856288287502304308982265064176496489165239210876835371840517857522317781858105011472970882053263941952997586343420611134071555678047037736535081089249698207810359066884442238079249795593916781803256448956448446818350124024160006503815132417884610663976575044160369734540399483195679337829746272834465401327955407750073829416806376768947640096430896253492057739548472065540558329723625488057437451528419907595655362001091017670109056953883773588276742697251750330598704910302481776334592257820033678720749728887835796452618626128026619825798909631623299996611897074559946447601487835331297488326108450990088822160107695908070436620313675432726373384474537665481296653039817033314120613747218347467258781172409100231443274897927196867446745852949781223677533378487319809098386815577813205476921148842523210890354062494800927091807957225763725822761734354430231105534605021361433614471756859078538728703720580558402553763066526476641877834748817142783746805872330283201010007067867426236002326785110539850472927274800093332257902609410039107096596235647633502164528909517011118449859371489644440788986640613027479462059275371894477908077880216110304165229716637027986598020634635922329360879300116366546129184327097946943851670330377663401896289247519756285507384931922458919249064453122087997629791197567231035559669901887768445580071693506529831884185079557479323904642011784996105256149223583315672130854732502384250824558809339617478976943197003509111249856473338821926235586036702569459194944526486456445629599337142768522551065790659369314726275556529945836890917110223306347160613957195057049684108255707049603111439746887848525447694077196871259702520612288448366682142312607431601753528742454390614930700358043305847375480178068722024838926266502519834468934280082831841127394411837220407846982999352117105653341966449752365926518700956635760975007736427646552104797148917160193720310802647762107331938686434318879741998102531513522595084029672653405857632266632722686208537941604156721913739210173782798943110617697622912036198062655063748101693362943525981721742222317624501353890898479228582987756649006677298965756606280291667333494046246150025609174173255400115308344926163327146795354179244207895541009862921395246353390613815605012042217979720835356545967477891711895809106880258765700971013397903368572499452283962970459683181180949667271366889620336257144462448467167062152993335650909480379563564189257751194313758484025774357606490810936439669178768082547226724946176906184011682989409076030423297235710127322400417036391308931396862055039974205134216586168855354806341750594422728076871891595380696319495572808943642761994053902719146263551140832413011171087511926607508426869490190741044600549181347359142717895945384606121452796338807109068361401868435993617939808943356366788464109635173206011577324308625038947766554350677316853561726772680455160467290316246007433126263204481789573056810991583059538375359241746839489551931056445276757195742646073948597710145950669457381869597185927111955011017796815396172676741741337128343798423028282123899842275377325893691206791853996227160086382597734362251373695882073406584787433235734683677385549288091109563614202392655503891630801810536773670708454988484248235156569549622967751508303580122925881808450088553759284110168592344759592401257762130132326887294845963745074827332647477808926062801110462707055465150002270388470275226237632127739165892376881203010126940245139357306750179263280209025029772118266277679657499714425746974602358627200462481712458332901561102690883635385404015160301291403838230980075319535895171897592014698698505807311853278453910969630751495348100673863459832934918426871132253844018035807783031822465466877286266313714623384536599555588754247308256790362121082540273216869498362584446311184596718400199605636745629920015726260051258499033939175099421011309161929591532497434310001507367455317248971435352167290416836203121580889283771156025339874987241684819588261630615256491208744348516216825953472866376026520362420323824225984015779834417788838744638436034842843974763533434702697726676655215322166840756610109743567504342637833384571849766605298579119658431969617104166856319565428640213307033810230349231516613803346708642429173472235123905793029708573879587359008085190892899108379001789834541522058545325513725148041984858080170738474041952534003594263154587058165291620332564154569832691142034093684819267473959650685426253418267300518401987195147622871810462171905239034194585197333662947582007797180934205631854790386952625477222799510608729313808790416568392449785349886284678293770890250651312607333522633095179311219549080624571727365254533507223345325434910154229146802583587556240177632463881883688665354062616664000912361005914492528846486818260294666359871055171635476952162321945524968536636181453014034861219720176927106009012236624858010102040837308193963859205615751467192374270935040507425627889340707156775753418241926922343227598292715430188250224617225594093515115208499937010950859778176149452262288959487820529093654212740584973933816867676422962807900053691307174038490430601283402521915009155388465878180211307369035774736865509248885876218901884203124005318049599961629842277225170234611238455099497098657999844612088350901231904340741858121952941674635916650628827387789836545295457441115240464212125017238556832379495064665188745012354798147930676288192847205596408477127800705702793131875754929112550944806857739571902604173138568712261392729232006537899328312132274217758381473732711372563815300756924869883981644032076323227559576855133091789581459664787579210560092041893208408009970266893040876308022543119880053888407900023079177628287376680254227735253880013394901889250742953558168374830843767232259359256484443948081662971360598682899956382910157144625840765067078666478700360832717632007512306084934553008243897284222112021344758735034626817934375883867252156977868345065175084036938813488360459411149577132315420293302818662855584518684453496410845021169177238739927844004664655425303227320319506313986213925667872306908357356166311335257601458370352666847896695439229192724167402476879211367946608356353430898994067874852955763264047273779538445071659709791308066955798857810653779950732773305227016572494243597945133733563337197823427676070872859847408584153968527373248598505124559906027297360328890114160403942635707841786045913084679461668942970304184106453773661152209426896136172203121673167523481193640024554671775752015792680512660233032000746692897666965898273560820406375357101843824812563608333144518535501000124360261713663407100641709571359292917832512820487235961742429958232695684705297386697894751011135179649057958728840273615079779731330438674878620416105843291559439215006537364193041547756463206655734422281134988697169177001145502257070952612639758214965175762427411858910400426603247224624495633829337393738250200879995798715915030334776865902967419560238454697600405394165498896363338964291458142692463243086074706008138191502630173838220075412809776531685420327942841089459523317624930846762523749696256305862931388943052118600965432478585220583054250442879321150386478802121510753125980861464303887817355446241373674855567424338939647045410404019366526120680996309503815767987588851878310954415211914322341192895218212951773481500385170227616610723291243813215262180337011062634694522254930887034206377639495550127464887189166409192622648915778199129439255112038229069159711203055577385895384477983807471602071847638966615949730926571678095708630194828485195875852612305233555713489827754663034180537538911245810597678832590798762964655898027483828749466924500169409719916103336589207351219138857299336478706575121627281297200992858115144659857776215928628347807520477345680833745959893354527081884193388508715190617917626368383537337546909432360498859147999396000953303925934189474635293281195253573706412099908747531921032350695330108243453645364665805990749155402772827853634555962112707960747415415738424669455659059630427441650168533713441970872693950045166476573131253258240362848397983637520583924586461817694719630604732645305800336362537245702901495265540035748484343357103432703779213803568013310101339324196752872555034109619273445748756215928749501026304975873662764360187711347778849568398985260542706911066618162163978203450965707881011989609205992628773576656637065698349717002243134762048393543602171351153881199598649650649706018003463266172628353295531928344242291676321785790159191714727702940943764707558443652205874214746669312384369497860736937080606209593619626016478756933053058379757076117704644576749071629969549632624364669713431489694715958095527609942604745539038035977695989221644460528978240849323899310280367830968530490241765668815809984254160217865995182355401975437137208047032376380027056841052578072913959078111682854732186308226589193561557783973299187738519829289351364554137255932961848057282640585533570783226308351956513644338473814972659131254561962882982597151017356528046696095635472479982098878038646170518274037126212788929464975909317930846558010570483076805647774853452994581726688590731466743471781962975457858490098919633669836867419455262627691217934577015338232534438156805068146892270371036027836533462260863908842848639963258063135436282004357615055676779536074320949730806972099122504171785173872725389848359708296167148865564758624719177571416167795641104363167559959256752657145885073698497320862621090825321668963723337711750006833868426996161428277642291468004045258646723023882777581511978342751060595801974876866376588278327873012593022684683383931268400320804537533778822569198771053342708220941400218468894205284527876626339122915606921936745098570604659946489858742577340985302293485934786148239837945378723828227485060585133513537792547130227731412050473737849763773449099563168789874936990698854756319639676366956876986224431588474571156582206158704305370330570330891580906345966239926584158440277812476898829485042225192511794867491242661928058431391272738539667302481440139970761137849734563052811338794895116257253232368525759265329621790926419556275238911348364575471388923989480379962870713037584345465748462855643364180318608020307689481048425573128063230452206460473501560245842770069072198764053026566923042422548023057130750067631967519831391469490962431157285827077544244373174433113879492795788335519150276371425677543913185492841512675314228065657005358093762088763366857300805579376666335049287002724497141499086664040902786667313641112489064043313864244882112262411330012321578154455991101062984557650283531021275144658367391195450749447891282813172568915448263005317133183543637513225598046572960804257225689209679318974429298633341075442503442779926280350863638191158282959732737288641095079529216438776589838036199936035094516800033999245487153005112547612592087615770359689856892460560672655078992322468233725096735358056786914474004551433195673483018058590403408889195717881254947708194265701724129572132759380051438403487405916261192024285248067194337931215913962101086982698049656872243308541496012601576887115192727039557505977199421591141817663959553638167901395595585168004847730524073806569023247540393871978331725289302783612721305344704790518443350528216186324634236465189200865597227639839377440920373854209520196139948383908498504536059859374619672805926391428399400340746584449520399913927977585781020890899009821925787590333696626315825667514261392484476804140612145380485745964447772540318357684509562087694067045952534246318134363859226577978608056503199893017021116522633832209725992944135878244157495385965282453058311025398860154881933004592145371012583405929293481614819733532258686872944852658606909383774119158387055455210577588387219374309171950453620334729954206626359531440143678636392278141214825528793481495793773624436290878288896986279987427309370351203872457945561690816866939102875526919807271455570534826990416014047205178028269708527527526459603167838211236042304522552329164039329364944081355647698193581236964558009989594166729694321926045294628965043587567578735425661468007034621649817499494204276343601399834965738599560807352898721383677040110221788777536943612624809911359676476124814156154915472399516951890461634698599864952375453499532275648073826726575439289735789068921565150604817231600154959993255421351132238858338251284010157001218938380652061025363742973699210329345423916894926918684559299748840324425784198660167282754868669107671436988260102412133407929612208874238960923951006199527691651496192923677351265705895237352623819272952469488977923569212284644983099160971039251172227084131311728472014848671707774215585639821043536808681103547577158462230005243312125584011718515321571195935460041601148330778263389195062148112733746218199447665439580767305061966055240726121668850998561793840893199271472054943325842609337058601487605792741997871744750503799581145095537137304486259239254232632170739511632215020733370707575741559739977492049386438326171176739107130802861915275764490305151408982659970880639974760884751103959011402946331870841083185377965080929699206345042667556780276081040891503077727331951802933516044547736758106019208492659725620330890250179901470322861781348985972201533285051813308782404058030772845160265768860500180026687189795594379277888139973771998734792795326157501098404793683253024906495054528088658279806896636834973469651242138322295591329837142686717681540521555876045848452307644900675728860925068201133222189250209334674319508741569602039886706528919997920656860431000058597236410055026582694286914773327345181694016228026757944369855794129426192382743798079258518100590803933369334542426536211895476176001226813014031626469260468118781626695785368922235960518524344940650736255986701210982370954950474212457811886023630589186579117018303804255325712648988146730888668276044746447367252810803305676070119302205108646403731967939965039079631533682920566998172905402278528285228347676169953536355365214427004330328331947465275320537352616716950609506283941041661311701625081101281395789827731973818177288652425592532186085690721367589351855108523094167480814095224691683399813009679531254074188205639974112079443414494462360610712554678072189685326413339104037629824310871423245734907659397001855140479996748543916016935746609577198511007792723309324924349458655050168084475650572165657938091408363473969161788796429398609593655982125937648344205392078008662892317272642774775286248541767606106688271609519503227534097205559992681485238282028992509509703199395194204940821611806258898074315962199645676920025120624856415635226084378942746904733395729807107194900955954331968953892028795835807345862036504695885992407103163349185932067684443019125672346590680100779972221876027057121225493538488655810579636869846777672852262620794613126467891707986953477739245610543268120475888715325448286845366136399181518988224871573931145610872512857405413133268568743994013899229299675373372284706755226029106863578244906071068125555046919106170623155065122848255253950645814478248124601605245145235437020627231715697188611632980397162751806976147995943154097502758403198895060945258993560438854796768525106991019682359993994527458898402136891256830499992754880185374183830634411114655628802135695801792145883818101626715421811618154393222990957178643906975581239034222086556401558538479043657758885624051091350147785741103688660711618503916566877280582234293578762557848892878776895559591760063491403416694629386881353196753311782665857701470758648131103991324050833892634871878186162204865543811716497969803300684628731826046132375910065449042415763757038668104995311389064295224201503316784394053718409389843723605427819880549931760645972670902676557432417380184920889133078355722654558150677441446504359297382573090502408668166974099193495017601454867522985395017561608681846937924180650474652681724954206751067698156839146570867580590292686715484004456231800417763818920804191279306292029257629307604729350177034503480878094349930222216710785382362208252062481207743961659704085737983628065709353986362632227804671424292922648086093461092513875464155630741518221197933706837672905155840870142357146807733992388500080676255893583145730090588852394061738313122920576021504958875309513055654065237560034053915769750734355530094829452902522751769363879162748869068075203210751058500845003565326087773256535943109066586545356759898589021259337346234532490799192897624472991915163310330290780759106817609935966199645855426328284900332557431335125275494826131105174924652210631678648288279767151100360102127176853834567067727127581611092022584991400901248375560156775850972963845724168036964770530189414674049907042983449762170769683801394549127643065774851403272956001361891765246955430809701698562392820918028807810340672338588692090036219074884229510297302636359457330806278988359870608709761245790237220591949029835502175357720008597776608677081067304900966876264411334084464852442727814893739563326876195840016931188929735558419579547479239832201367151030018104615208844137362220116238572243323863869962601063826505790659271472273446177972098158155609342264935150719805073963068614914377227925043635433452204220970908305964977120195786345528921209958861935482799805818066393863132601529499750087985119628363971458300921638333351398730092107734219810445748574919861702540552603696216209108524747139940510240456146928034515694610793089394678272418564516191820534539907261367010296579405101898993001752818862423147356231811818939666695435991670206016085816651418574613926541767199935930943600998257310464148597839912890649995533956602455442830543969998861018088189269172862517133956239261590276164855574126072804571519616555480083198719282227043980623946165728978243046150990112361525034142142853665462986346584173245687321641836453351579828495840517094915764832533971219620520828809089239741266220670781814082968696975467655627967455292646477950303204189290428263800151132599306960792265558447541185311410396721200842302709448391899081439413217869049752288276474373847653142191769664661531244215880323955100455030970804565027981580733644278632927059997584709823132421877882943185872291495935861129262385386450700191940571654004879233360170877283940091527329269431982294322071196458953986033908461415390460980238248803584531936259727831751465572653039647368608058574929471647261436697825957548864373507251812340075261700549688819242195086728339808859782234587087806485179925169778543687503428662302653743444530140531577719148728996957458553734831924380007636386187412190418683637251006159627430251643996978965856172036290130641633597618047140871505454632741666444715743934781351311821426885812575238020893994147713594166713191500895978425199139692712880061117545643643891233330343761482702079697165989773299974131770795460113577899444107693293393872305081348055121769747436258936140056428427471115860840073116306643447840283376763958079323917075383827719264251571011831982958700905452112422438732468532106980740895836863705757451713592406742761219286438140030919856893923614717505944478627111963154577829762535598072441945166275453183538594105922937741892627499120182896306552662629493679820079527855591273945217552158760017895052349665548425349547913640337159174618335920665358193116029272244881407073983662646262328562975614759025883800756055395949018745617376644863078144277947992206125777199096434175083388988695786663542079108246272055397140184516938273359995481163174588382936834219766669898375895518306070977164299998547834813073245921905407879204339008494402795262659290861531307826047118356395570231761174210408396421292354496384060991491859309461699997938644732966922438743238826743023409823640141644749627463885857749173731820291879705400279244564212199863034475461347755156047808637606885165388224563740345301742777265346012408981622897846072464211907742295006483509556490330095937340065641824473072908572836413914097567605474261093407456726577197744341293449277569561024957359813235873401273923851032679427624384957286557539090854938892612609728077601505003987540777569265528764021925260224399810103870006965302204624860295386864521720021026174380925340015500656207834539898179184556456804134588006798182028985874964302307454369347876381043771607222751312998642476553051210813001013946930010078963397660386083344599797193690825507857772249744015038083503672001251674192811465177721987689803719560120568473415132305942636371546423410097903988057322678381066100723449161180124702616294526881719978001792616520053234528659852462582784366153277076755365208867149968709727728045731790374554717720798465473782569973821160492574786042062389215898655051385875466878336904871881138947924254011062854823610167457765277213119872879068966815924616353120860250845523952410866807698498140634839651403984220084696981670386591142182435643911514468687714050431727164606093866428271087043396325044962312894929669597682357274409221812995443234250881534465131175705153535198507669259556285580863324602509455676780597585584737195887863411629572372369332302405178839767234186436811794424770203740351511639488789245488102971406470055351661456176259346907660436136507487241648146039592880385356400424793718352891261863599523230895892183181349329955347164958427033352178003335182098677748561300248704102593500802468473132904858579351804771704518766561368176056797809567518430980250500365241016250337606155181310666030268331940361031926014769844493119621357804152469530916107515435697443074576020309255802110416246629739728346477791286076058166889788554021340511121409267729175893164040608967344754106658582974201338077179879246897983189953930678835312938756772943311537286104780204614658984819242462066903803578184886428220955943891618700552513783476277016177859698648984177387617201771758012997016175808827842389511639949269099401424362034779279192132280037914672807775452522085932567124088282873980859369846909782914905955164942911999299399396016694812375874805299935665997376974236423012580646409944601388635671252858242167466726770669805404869130229515054171587073990305496354283734677581737411394975151798851162396888123348424309104250820144946544462362139893087028799154446349341155045464896280142454113437679478985684865207453872252183945316978251358079680255424498782037738822544911544543671462994248625767925029999170121180894196382575271828527218410133003144344871462675184786007406113132762544747420675418567536565277538642957263883550887126062967821198108828608431970731540797785635798348763888908760074829555820550775821704798200550865723310919323338305560583104104673162828210837338781517040309095071161712997016080402054711800248722226371940406659467043217375445449547209968566190407771176337142133585752990755991581196944845733289071011654809714581814997536775247685300885780150720531163014554871075234782666321031862513396746803387161975310661960757083012963649182074406663385846941205216976642137587319303187880213174565949183158948887692107577654135618982084399334040880703385132663370656323364433346562803884323034868155961795909366911769762041448247458401564097233257866975735490711017762799056681518674919521456331073716978165965039940578280319715218812051949550675614522605378498192217348953220070578690232524173164865521436362102978940199661901733037944512148589157392884378775096247923092332551292654384831235449461920395038295748981974147862854922998555797027160332189680904692196629514501295306881317056416608340755046388496260571617263098171240962628316434461140742626075756890511836895478860606771179253633150745737399133358003231236265694759894303749330081336956304649858007244293230347447979689819023534825090222083806485490077915808067775620032619953751223337352805853934626805522421942350801339384971811721423455328109493337143973864806192407561387575129812816722222731567404103026500376011103166086103800653465403197710867879070346866244433734418757562244474246383885158743530506174261620379324457957141085764454348220765249682215358581233374272657000674759629713932374567661143323971288871573115405625877987707927901316961577705353935488437444448055303241208392874637187652916763414055745047613548262868262592432812587514472408581036917041203505295118841229849677029387141482821327432677114724142277610360604316121394965370614597701270097922498391199424559652820668506996558339067916038132536616636907619326444203244661172134151665763934455981400215287878437793626179215455679268702295611634516932594251127025566124881424487826928706362117444745241821564903697222919105407209002622171596338621820454752285245620353862268706187747280549877511742526941554573888089480365062629681873779957087049460619491408196736697052169319249662090391313012842743624571452642559580499001075187293941695008833978077629205914045683039842653736401776035107215033524040861469942594189546202665882846261273205954338638757395432561623806500760437919412748037636539666952521121616385772712492620015334128208785889997817318864919027687966172027192051675595091155570647196312699128534376732675185589677907937153999290377919726419432756732657170748479968660548054677668632330762686082745862771475319067579346716769605081200434669528432439698404788334851094801588648945373990121741708741263614218138105006454034536137138240060197439122173628152931875283824535679562154713151840437106854570224183757456641302957832908620046394250199608641395713617104980343915967877953970908856947678789470561989904293590058014511561519023041583123052817517683904861518992953558853053493739002705457047795941424087730392298822237142774476529852620030182416677623856191284997464357345354527369127671182329513065066131942971727541408424043972414572315751913738278931956032946922755595635234618338396498670641096435387380441789100470129416824634450654503582066694847987489426152989031540803961191058909595841498807317461655357424272164436976456112886101971499580984880713268249653015581970604770272569613156253555536169640745033241675117167481194191825558354862640062284122189585605854685693873070149273362334226734295948264426028424257979837926245106604474728596738914032344458368659635149091670911482654193875570536647312373694820491528960849595680803190271669930821242619851014796100298851552529494777450469571888856154844107438594179283642521817388221107334423318017543881113020143635954892962539841223345535279745709004132905277280794281675746310551728830541448767012208544926668193062336169848770627334004069482175392532753778361398413416351620990234945671365226563819534308519507675527834142279780875640628486110687204565902687380013491606373360734520719859809030170937357714259813420198898428129065640532497219765250131754732112770892124131271137430682026672877548117388409029081493251484350526882158231269643858195995551805252100394505160397292147071928157632769301064623374573574721474214772232832910215753337372299950968424573446137000325613480120331464332504776515909906035555935705432741162828023229588569894842509096656072007315156284617568936951847884686734162623458008191078029882735990658346124203511428303563863602973011901110599740043644990068926593661914669091495487193071952154994486674943082997640311489422484826791959601902921577663717204282965065158607300889480208481698076122634067183655285054087030045109051111707383569222718837431188632572694657785214355139495247469041550152471155693345933541073529819401209661652158393136481671907902303032509247815658867884118842572627873498498145497293920720433948286586758784574786455445500501674276810385360521477868619745713199993238874543094928273290114573105764397245089209314769452779925972251840162973407436904418703253752108777110631645819775136568173705112872887467166834007874455591107554630581675261167364619437524993588468224228278921693517356886281143371072102269893680967158760075095485307448189921446968459715714275759024428938717759952956167797530563220827745385218763664291718563315395194856026392670947117240245172881089629773737746190751704625037387540106092926933997999544507548517122897303303379951835660212619817686342924235351759111602764469650684909495567292404803704980309622763685194916641874727506018478435310057540726977835095706212822983903082128641861446477329233428231644678123817318520626813724673364923817987876393594915367289786130116900571871245145044895437844895914282458462686456784974590272975380411130898656983081254293509329577801119443834545086959710855438580834376410770905110309181406072253852126924735067649034160350570368980361944602042861768095097310417520806714966236676035273927405180134463739519496092056976666666920854939444957094642362811367982711536682691732469189191402121019778002180851360172688555363137378335184755830247539427684427989387898090507932699158509822668100169466562317346996095229904066010059868791957619091662113016769640934987795470860291880528070428001680471734729600042679759831116378855489617025531491947956397697000562826344540583502758459103861210863399043719010659762775868791787189357332503094193240937535055761042851627989978628231349410381272293902221551820392971421501084526524199102298909667131083167085904912893233510885185299591283167264828990532947762006209036909635103359562098954105689263568535788486231492741215177312589680446296809118625935541608932795250370864292705582822753182900949661079087109188618226575560488785648892928883377390192437639751886141697623019083427515640844817707105865761874886926552671608771190309090444458825202613256522096807749827819369472133212625460484986990864991196658411335956260795714161644540030763838897234492339566165076453638285501177714868437616892615719343328753414344243964714577976203902336505697581021294195615826504851403433420568602797179597446495549414458592803943955406234044021403522568376968333186059905350167797926165709729507303526454285682138564312209068274119809749820257401748616786670323761927098252255814883788791581131232185726997716621461603969275047530672033071605810444097307372144233641727939458836692886593084008307320978759126175993087621541984683351496186864987483259925033664934442830854920677514455727359722452131440309689957783999617827510347368621359118558550838958931758567429542998205912906658262149099340189442101207273306935511943965606762169470512316415887746070208332041286499539198607134396498468348867087591826449384870319639072540958384798897417502765237352639342691310428203293904595597111983301086529069006642425037610386656536350228812200923480336581907249514874587085384552554125825731404892525829797783264103826604342677543518212679739032453399143732024896123916520817894522978017016052269722047289037377595101396660362653734220498670100956392955015023795763947222100120129441495420701222729653627894898209933655922992010683710716521594577754587087890812057665767012540979939932389039556861921169771059717992522395137049756937046256003633635615621913111342075260667451408616624850499088026507116734133185024509584343499118964450991270194028125340810899848918973419751806688884044403693689821835419647974004646502740935885306737556065226428086294459660491910246885272607224568026076070176077243059477327686156909130962537795541149215042977381179463035365327892036323404737542718913050677550471862023387312745549397230097068989953559737194963702453223567329854803018672873938066276581251906268118041563955337112764916712397938336326982166112075632176920156448236862679252468829404489016136520669055599186447065917529929146767645382328449780797403581248907036138501500133932436579864830525258307308183991883028914377545190937465867320389310281533721999747213493026983383317633385171842287390663127678168623603347936216776862766248292218029984050080706494974928088405276441141910629947525660391929539375800813391989601518741813378653066981414565050131504118137002578309726856272568515304093132811917060502567149563313437096793091255356390340544950694293133315276840199823684799376820879639786374601347958265565463515861295175263144015748485783948492570733712305897533248953404691614244251110739957584102413542798582169054590424311554867880806370018988725155632658378818117458421287892167135292477218291251120079878246136258562113765817417306554683602923934980001288943236396301937611748920216462045331238977296677882073307841862201237197895620821352853554549548759696345490164221152707242900980714513285478648165754475666246742365504417673755779288991924703539372962175093696524883697443314801466295599294493574656490962353048723124808664867278589085748529220703128216570339385448590526695705310170567789412609043863213198442341988092442382126373362517426781950912476836892545685072417003634062310789079259562802231641951773206143666073533680676136698649171254559068236104942599337496159631756175865621823025729615450030216024150523423202787504533122669152569300180842908483240588012793948476111815998602282322255292633213364629361238715645159013997810502222270551488317279723340201993494628818941695188866026869225931911553929668689778691142208950087775882500443721558496220660523165892046663730394042031895380426665701190577574206470680412349889011929672127238224100595616825227438189942242802966974334329188021823873866466832813227028088257983822102302690932011354791646549949325102055559689404406108627926857816264470036506662591952264246854444931375708622002116754517995952050948371306335567330624854655446554638392596153623972859688734021304693828074468546282992522341874511859302222510591515387852248286438907116221340954262127766965680184798051030146695300583642689013927518338979826432336371821831602649465335329333487497256988731909268383213790198626564031969251877291823983466960923356797109411060538919218872126725321183381840437810739440096947002343568142431404828694164128546286713877409597975277426002932762222771054887827084401342783574911348184964263222439873122907270055451394075221945114664108402945463627963614630955225756508148888728041018539275829448322009058355318340144009208456689144516216988042069439846339160056629853834447726962648079531171282512886163487674255828725463748680007480119554468381539713895269792280278409776195726820160863777871089978026510111730332071197197017096008416771256674145555171857006583888191255599852845377364897486396481192180029595176712136936961888610022654812000087068396990009077940163592428863192841080868013782017829172201175627474881687369031531580143725316669820563644582790357565115006887172738945012083663965227630185078881080708483085640153517413578282355260404108248472636463173911570824882980300025272588552122046632061743206668940091734677268118671665969613096079337209045281165151888061414555009263946905315351404412956693308946285810483686180806842945586241998434943124176078096098143017084325244805053537363742600287518114097515178294021009812175256680639017010437157295839908748835344528385092268714206874318663774495405066172281674458583568124536051912225834730386089906887328511489064082491383193569685723807499705149799896617332873003107483006978751754949002375157919789312800506225054232513302093861157297868887753271756225600877880591147430981379824707121248067632991654386746096957790251228279894915394423312384586366793745923149323510631240970402145538515030573566209742720798109775417030649666640034543527269219926667087166326509760795389040984115880673650395856896479341108856680299040757042542323254740937341941383703413895870373414659022466470788537009891473877917956149201052123556327305922102282113978567346851344852992404231922128662445884011746515853953352844918592905375899132538317730743810265275923598169820199934820615602028245856363696271130829130709855492821717608340727292655767578657197749654611070793311261213357790796959230443227036251265548021184220172274566085654158523012285177286801109406852796519437061453074334456722173811653598670851994908405032129837649790424096004838648241070945004439523482637971291561149881644991745673982413592406877856025224978890045842441450895051970603157597048119197928620329263262044309736650767611405809656648207720982012358150098330336084653252238290329983044765846704988388907775851136622513565166583409493405031664135057505661554019063690163530201171251817310648479763193777975946919806937798499030933351476927122661517955960342826891008168894806638939322760213697956528000235656054026338406221640146263974788331745509187530079056334171494599417988224011498407537281976810882712410236919051653676987090607564460686231670583063887811926156407581594681371425086058163941050230214161185808958293776459140544281224970485477993349641135799556901145370142887253107881792902395130894952884911916291817437564383368262950509610031527505491798971576264575607449035537364131017741632321736230765442923193348647864370490719251265426220691594974070830229819452241875596862047991031658577275772639934667187461116075718423364664371430153475217395241678781463272876520033719155922795404403532479694654786018150245221541805682728045194453677330833610092334079049107078317837084052773674555180008992291037759422608528305218281655350020453110279369746247616195131276649209262698852519002169210601096531625302127520327615888911437853117236374239869941816225268990719953205218047816481330213173639020525886047237178712797680401067496605137736011446256878127214467016422347489714788702215545151264129931931039352554824599721729632250155318267622001610372434708198236756846320843089025843729128156791151602326074871172431944838964043582288243648755083526149231305910795824387954172507358211700498321487140406608014760376304959670868362692837900228577788888248763559246040380303190716396263205765516516494680028192867159135162519148980872645341094392730463588472764213331637110524493512233459898768082030170530099588460963068403626340715058822616382421680505179556154884941557407007944748357058981763277866159498557921752630538859323431610822494393489863731891065486040592905606130298541549515160545949777840504862782630130399603400231466185813664265718425818874354264718468387871089306589108610398055239490151472474309591440405349303652737713342887466729878687421630120422692722723613189072069998405121516610184586536642940680802925360984849808808251117045240809015610778918968839929896370105045116009521715522441905443539771584957596132307226949812627749047262282780122438953937772908879459044757138882026126686258773874645266750126677190607706560097445192434325893108727279916898167556998621445277100106557798670586442391439353698236398067916715813635438326121303574144562030265116481195122912160391663233480851932915430806204165832403286430005340043504337982021349403575911407362402182075973769008082676960162782406464632668014499789666373811766758251886492328175877787789249910870565740937438663551588946663433498082745532107696455813825989171719045067377573706570060621049745743138450126393832046246980013731148299612744172387899370348787269678558668582479641283399529574249317519824374664711071174406863337151829498700795491887111936566676195778470308487656281636722515934863558056166891788664047941365725151901925354878117540690472167684070084412602187210570166476890052412941837803696522818077928156825967800511097757364260627321964483993232631767629708543826400595900481022994017678211935038230569857135418059679428491967201934182230677681027172963372797113555092086462359717594835327550086669853643907843191060688844359635830500150297960083729123188220102550030824205705700584941405200473287700867794336573964857994634426125580496005891438858058927822153204039410541888427853582223072424329697680390249036087646202493514623041540325907367790374062613816444574915634840456659397561634836971912170445828987972817303518529940092885946351334699886575190742014081716874201334976413244324682355484277274085790550925150066681766026523777633821538353591838784835885515929409152895042980384508548884511263252555652468747850079261269756234907504065837334980254503773917431406248945478224024572659631976517442577444573548346257533453355912769840719679166439935811937545654565433275785598303045912611376256858124126706332756913461272910547567179859649218506345551477724490819236292524821102269977863107812814875521541974383586025270652076687468358558165716708631022181390699005451878094284091717289053749523444533337111778975576559031791511714902553613603901111969094096075898648203064953732794462660614412948961989531117855301141740752084349356737770706292412216289467209005754002714533455483689973964681495726760529633647038847669521796666627427390252782831358217083414787105432944797272211884218544169650435124278794499615887890524609639851516177643830591258277380627696220828929602727993106003592731488152080621510494572694908401828194095506604944352814855420542560967907666109701891375501040128998410556704342222154436159503305951677723508170801000256351604935692291206473072440194945620938449540522790023085116946894974108509627742904022720759980469747221265270343646962490553089482084216862157823897287151936285149566161865136615144435102213145098278303058750702181176073915770821427570603209400779394205658101441517163166690455906533217493884854406160281751237562191866230671856334206683994191190175230870095115327241711539881447902663740940675504034025196974697051626166818347325404635808485729863655026711704765694769905976787778717816413472848470395121610415178335882135058363730488743209695601178479451274561213422672220260908814448786170627788763299759443810446817744864143640724195153456411360660479690068576446096348166527462460721205566504492963096471678829490965225356366295322249556657861969051093711415581369605412458797859689916133912129670722490697320613926958938906754163886274930920397820015544856110225450994824663584186598403794660519375904212982230219754237412726153172723242805350076265988422350303075945503831780698125851853320023920437631949231962065537273739923290668403671607905712585590339374339414347043824658702636283194517192274545255199592405323328685252744112934523817743570803574287302706211943550979881067733989133959204751172628148267476577259714867891869214086436285939973408478827788781299886038409682237503411355644237433314093814958055774113905004062016124278642095287288130674322128252787805468328408165428180224351683980185952965511884728668433081491435045871088689070165629779696404420508266618019294430018026458461328746873028416725987759399941303979960792570996314819779782385630790691402244920801077945369196013079225007175028150874877535841600137855656826556641278566826670352058038642403052916904436711369387185028164909302947678074206566478724083124848207583279759849348458810020061995894438842333554352385448217396030725289617835532436429543576794217726703292698270424534227661450809212722991173785485873187863131057217837798249844416645958398417831460724788371108752175307791738145179702851181099624199799653409434500643639928381829351341775151202727113381750549375904986154837105145671859943813680770220699209779580276960967197991457384925065668360230954823006414596597218763555334333330076146198308835092138742719190211859158611961539203223644313081863491435631610218914692349582058470029603477722253529975717278357563243443684803610516525629716264377162789193750617617450464619541532450451195766175306726820896232621856194784492477963411545568433107694966007830547775555466853010030950832285301327085766550347639536650354287783369643608139653363953814675315231576003998236284146165129461045943456539753341259023694570874204748624336154596863582360232876848540572323532500897344098054030760986891179900574525525742560527186706285497815783419576000116270004046140812254242397830833110922007305526836419517098667720617435925695280433614099171272362406473720603548335722046799081681961796327117763323937947808099028132513230012043854930179985535962589717791622792185095556741909715310643421984162876723119729882796946795539541715440192756605616206479833573376081284571026867844116173016646161648352829217553617288124629755669185656890155674417224090486703626570872391472391982467424323157165854893008892908522185922406431431939231390770905923964888395510599565959425535804906845714666875892627795481102101000210089887581116514615782355823006859795139040777464716282104202913090187013701413882781632662864179577981942334142790608836623184756510177807701251911194648549682830179299686761791113874721793928417337970596119034545764738897492781967033104556872538893924986206948518999556648480439591414472303692703129847536078111344923724827532827560319286154908180767979104038585739599547547709228149229603073893298082376519729965834722740319116168539350396429479688193835787077772346507404542855515387300806727320226852396130394316116500807925672927287416322519792504855986579589316304750921187244577237193582791464937685954804129020284969692125429552155103535941477377420022102393774868894587932293373360945574034283994343953453339331210450109593565960854172049387169790030725318643105809022353511597816877814726234801250633591117174774617101328534708692953324298122161770709737613237317788785967621383079648009512501250317035199624755373225710505960956372028053179974768131914995103310146142907969920336545106790875097279441590171186307279946498411294686859242486375218566662826217168257482776273775855681138461600279728014981775818701241376639210563177527536381047575947482998495153386068559193681024666031204232589111043558382679699409701091207784171576449899459658464287021269739983735728363987329884183724768020901934035515910774868492335117435606814262897035119196404743305758040384340046449276074721214823919803939043718441035318268933147248504846455967014588617139704199842881536892770322408791549842927512000867575378504153950696348988282455483619358296954959905586048796614411062369943182390785141816954879164289022255022629681310299084332047279155909139323015910408731600549608722208889871172258492114380845643979803876841982264199565156806234064778352397729788425935511210111333632789418443437625512321598236168070316313242520708088333090540167837155884839397390137755768841019557622088933130885716925676459468500713131857511587434467465377267864454724104894205740911157901465329001195198776191507531693375549900888007105127113574395915174696784901508682117647272851806197675216490231354692226734803583816061946580118480206465867751888513402229056403135629170327227875199927433181589741297119862769893303213346973544708677019120886788202737234640161802980995780259002821559056013026269549895688313837754959950202843081744595815546244182330611720740380888424815247606731627479499773651695653400494552137222669694758593421403312886646068104147294422664870734974876070564663028578054759387925581178362986371009239545714834382371729299672825231824179082977263592988333767775402507445914147703864891005335134513600191238886638242140133118933247891062119980778555185987769979026990788456390913794078357328318479191688391780055806065076961834217524405119499561080114908516107359669479151546754936800188868129191729001616971402264379491825690431124121160495605617135713175839159406383607147437951793740265506190384509788658151665530268680220438626707798174508666114807103459243514793423819227744509387434189145024143204523890911600203379448780503332492015152479479159772126845171466710465565318243379860936131699863101603291333828268050527885157095951892820287013898708851583489878352072164782388884473281976275037941369541588253428519777388686619416711024013814344686789982003035581525607151228762922658416916719370089580103151905042252988581461325676720512201512314251270369442993696168079277276500331787937096695087403983098031115235054131805771702247320110646046554764364400780877208952734311332829852598622423401312980379657136770880674091280163215207284043974506244645230141057919281676731260782509273462014930044461234205025109137415641125872984917473904605127782114378269610768136404891614257256754325806294441590203450310271121849803501835259979566876717247448262121909935264141554016334148066926765774110081730613215243700584866185091226859557295044867008195751314731049820012737291472587582344876102060696146128891440384800442628800116888605435394140424998547829149544282566713975611328010981804674970286172598296480437256482678388058658713674990653730221004585929009587574155668295427103474728681441311483052157423246055377476805712468835194514458159401138918758298205180742093028053931551909718083785229507266313684309210689051865915015117534151734282590581960102258845056734288766423905465696068861961505300339435245942562306308650880548277320960420191663408564329964173419917157439649836731353303139813325579364956219229226126546224375121098682249245472260413560953503978889777096082032319551110842063451386775501828380177753035209560580078257335432012585813571706488784234787390512896986886875947811014910589250730931552400116834743041253189241715138938541621935199564030177984716926383826333977219136821413070350453225473795477292228639497494650830922577584513912329662052304415259323476285531656805485943616311831410932207103731091232477967745656655220705939738375223900563733716517585835892379081344789954751119859056770715677869613404487820435073413111703440845679029244845235125093106329735944548165513576984746567520547089860624119495431851631446876261158136189116017155723357218403143860932030109856926623578792390600378449339300297218403938738730194299358735780210958137200045272043057851933489575568452472623316509934465211839571213312860261599391041483814207628168038518374375700147776042005548539187454497165508502508662740902804634982064622181236482324988823773939758084307359403790235588823123803407051242435224308269615779129043819851403508192324846511305748559965388676078584758235406352957064093743207796246577062035184104297665878523950698699150317681438879408549870545241065832135941302905597022807582609633805256849963366716493363691285062486196448066505857943658330035928392788002416141286544508838329303200223087306818584101264806191870179893908813033234077819601293225913526410416595997287241314511864896765949211893606353536325236261667722210551815221337290113466751577293765700177730911806474818064989427627379670369769230718508167388393426311493818463701999219427992602374698630962986107862682478918425506702660332664568299325204686486074610607532165670170750619939852804160232694357902780322363574176037484638835839083977141055083715017948507762216401453635755547773000930326886235772703025934985862943484462626355516649166422781762169846328873678507004470691142033488690306195775843943160134749679903344842628035321080886539996800554168507352407737286387743564898396015249990372839477825195986124831421514940733954404600745921557592601317758501165383029348754356270203526054318498770023130209375132324425331954696829173190342538827012534981608880157956756554747609286552166449850736569721885815660810360771011158885976764187751649252173896099258802369817437819839432905032209198948005603812249660234944235227492714176150024101900283410825163432995896640414125788615593799527111752449824231337104503955059669844306139956066025848698351119006468798627322630395806521332252827512362499018410426862579313214142750131578293799065731734304099739960409753475206980504946969406833907224176950789776443555427863199199818290950183697937268348306636695723720364000491941246618973641254614715209090791394152003783969697612616183017992898795774885702196171507123200818737359406953278056231288125328254211705717429379558507818910581981512233140988119665714517783070765531956364097030964106681450298492571997753422115619526834847884881031567239999477626432229841100765530673318860417575921124180729411041389511277458529730779874013922206481823952354023549311210809106672594128074625624434643016237145559787299860431521610030091966485674903541854281448277363576207303607530307203540746792525396463173518385729328759178588936330381860281413556469548772939940002431967342541801831958346059420391967045429514837623642434042865449777686944712559908943109087200398746118181979122587800976659968736428416152911384346698383066770840301179357060775682511386029963447649712890682607188355158480237349400378604285103790646004573871417745995724228101574932097169660875533042014670752857120760925714768083870180163498117095160422177410038593827295132495669921155251558493735418563744255664209396434647462428399677877972820376671006277105401771687665255795982782392268841624473318169950301712376467102050405951805310619831445596429006659765252738462897501459564295701213240381260250469360209927883540511073323692514150209320942107696110251710805120629181159552286947070666445786465582426717314377476433820915658549874939423683741079050672845384819041387688961492276318856077465398151310102018457771692654792739522331136908580368986873216911044193488843968118892342007684434880539853406418158441134222962280151987827308386665906131525571586801943588532687355099713273485136617498609777672296155940630840915377448840555054828774397973995760806685965593857433269102474271420578748616257956342766170339642171684239228323754226119065979975048889053546583619795147708490029381098566490104979989642780706523154210400567556027779654212914650184697870000062046540785463184192526570517963040523771713432541959676902218142190659888679135195311743323038921112164443771427774322429013051931489817652489410162824063115458136999566955970640420326164193017361029864245645248136483068559548727258705323375704568731193772997384059925373356428652780365277138869852686106947997922735440409617129871243130525221280651512424670767997017875168903295828221078208726424729302076884868370192944155112128351093111502793569405537520025245763580541670133828994787071184188680756263218800631893278899939882024601260100795612587448039920108298148185108215228066915313481619322719928848233150605396309971389103158235679085431050474085092008464612578398595406915898050444847137574694671259619246370020567780217498069531398169911390461221132341978851019995880811777000971686139861227407626800344253897009239928616909475626024398506421366111611621252381982871357458720139666404709783958857055815929071176423096065054706671545304904630859534682895391612103577794019990833344627820546819596128672247964199644253454125911737870684856043744858512100880971945686441202792166507197079806345348367616328240578077078014111062437633972854599780893201514526698785209083046542168963584910652423739010544279133530974095080323925952215298085133762066919570971832566101407488332564616634283220436790479097674510434078960916384749191271885017146896745393089380050589644576263474779865824339706335701499184145208503703647948483393793370007377044296483547747017564935295937685379240986436914184284110880166236354736548624795323532853287878034287629589360975191430449459710781454345488050455438304640014088051459382408282629839388127127869672091513661160795624925803829869142113608601480277243785542514320466249470645431165065376433362776962714692125577508944294041450000953292750372325910799725122032416430796704681322687442004790720150602742226705196858540481690510371141197605287780504926761539306527686714591787152708869822288861379388601977254582851708863382877292155921926342027127948290570922852585513534109208457727554891109867099092897306564920255937009705627140954643463316039952377631585047494050123166219279382997959792676666761929443658212891876291406100736223485081304717222767765894228690842605303662599014581715418166587454475106674466000198145821476782045873878842196081139887723547460781455567206871647889403926622140778144958653603548288069008893748567829632118501991543065440194154713590047932743556596776692116199754478111863168023559230901124264475934289147100382515194253816380353881960373799128764561190447108851866210792306909520268602837520424233345357059645191464151790647381282303208982477058576956238182490033282865177250497087442474338571017945060184444104165720855735923050607527803540364084687804961388901294928507523918404117903009012684197272553745601259758743629952831761276706868157708145041790860481588925628265018094591997953220104432617262934802864035856506625758263201121907429067445748581841757754177548345026970531111152623914140216549742035098916633080131760697547720183284701760387210587001812864940985425160949887276525335262471492111472373064561140548077687422897907703808903309221755872646720821677107332266378815452647089421936996854195380004491280528065405304866056922210550597014054414341467659639689109727182492312966233261320002605359439769358693840966323916086150843074563008661750688177892215792599619694548612952160245106165812031548204950666777570592014853953335202503284580921597346678684283062948212573211251643608705076098708810185749829520094335540536365861640444436516383544104307472998718052793101043439800769825824174066411773980552857090809921014778617299027908089262513895261827336308081868694822608924429704976303060687581773050606703324140492045611136758536674636209493263467939192921679757676992584138291373739682332353922948267033239111258356148175794707965207360088196502136125140592697017803949198325982884807691956831591530254771981860607197591187691848453381138594741011466077636566601032253508933984701676967544107062153239231143548627211517893822829816065449933978321566978572182652929058714861333348337054836729597667012951404644987897469312956648038715344006104994383322736978110831734195408563189580734041047810168540539672758548619709087825968834978031674937976759306210291808965578300594191570666744619972451876512911209751092561883904466257931287095368561209894262061201693410623576818398815523713540818748845062037746951987371556335803101912098391353038219934398359610381227281745165372430410594688034427225172900852630101073827141499058509765436952987394741849886474353271494520090096207321417262155166089560136415910513148235548309332483715794140895738520403382363435390133500299244707077559659296525699019491132727943745963492471033540050480315821795610790808880713110804008469221012400411963546047977373210005471875528254478122277578683989894814318966693283027815075026397961501958234866632075506304231354049452349071252227049119507870081311319246958804852319084628093483697130182439588986906325838924475234260005025048115723615199278938420522678334901111788954269655793060766837979784985883824994275488626920166768031513697440052703066149735206396057897574699944772921171989677859314773630995334997723734273515394949504813127240769461843038645794276600084971442821582485385165852650819227430285812581669576321167650064500211256399506462927438723515538103177291052750404678814854745228104467992583764129201501648145825556639084030035376318421198655127801215083175722327985881833160903576160137823563116098602962979999600877842230388665958518343646114784191122214346860717178730434222229216084282348406646819583999572659297669600454584382552757149150546519846628098621466699766722421269704922224945602360844585985424111723800089677516610379378142542550066520559136919064058740324244639802833776539515617668783394673315229899935645531424034281140809777278106822037262814814402073604044673461717411001804966090848304043152238424271727426142157004104863840292607414954474846169388074060467281665417322812553964860073521171853460568365395508401426765890592081997264981167859177868510819243207947216157513766170298635317390561681326532700594803386584773499676065403027164662933700947023386963909031974574000543039255110011428390150697650033725388015620651418055337618559531612708825721769764748850905152169208231706805050060510429152618471537297658764554487539868121059025771783018103059901251810682546936991043189347143069990309264550037513155790489743628888054644148686093366769857443026385879610460604839594940591206064466934323557921422602945610174857818998373893517156800548258288764281343521523670656942519456366126233723424651309471925251365870346620799160021934476494792667379072472505690088697858982773493825575991654643033184848722384450964463925078904814531566601328909887405470106648254717656974340954047378607402869859723386862255122938267419855171489610585049921482059903550680907773337749120826544296626987780781502171118260851932293170587172389609668936013598179642724983255059963436823133293704905851297935440808767606391706628759943447944179737883053637911819095567256115616323305178937340036388857479355882511541548869099177815591943458582096707148264906651864243754509673950844918200534803476736058286501324309726938556857026946027315258140805963332153229355002575841485245036181620717832183358263636135413902979938650617980523478191406034972477044676924419905045858650064120020694700373881201453443319261272819501978785739660687388591170025407914206855738459470772160524998124819518437108114069045340968759104813215865825267517875204384556356034612321973492527675548749655426265054631775461500472291635483143483819191261504779946300468418562393525842531142634566360249893691991115569862168459178829207637351964695923334156052244052117765332692949959227896706095401051484992869219323326094046155743221140588773999699816359066888230797911291718494278742399741616869017853881502564084400969750949250656227339919757627575934894988369300885025027005028363142346834284072815997892346000445831329004438203825002597957921923990800020933750694710514766258260772031929501902760260124860458903917356063377529452125446399581096415151227771286875966859062688365603270615216879835990314475271567310852680620299400230502015550024890002197974247424460275387294706177298670239798136906396718436816506111934989852675626977751651729557043984734576403841164599717092583409138300845597274661339924193011854813007340939916100554740614441110344814994203088051555423821644205287816756045428717427189272862484851076353723644386470225777528545301029792271917458704251114566314567884526599283345234989647597604024124552151156696926457937612663828996340521125818104599855220581478232457200844142133764549158208340904792625855058828732965241431629777113600284321626315805779253275247861031974319700843838636737682991923804284914914133504114871559927835524195679129883092537839547290494506328989163923908618298376567102777317075019551266138891798652577217963750466988424823972450957165844847391976637660935275235961873775575692084080302320180824127814828286276571406490332874875413330150842999954844996189048915316681452336213852243408648398232868597981262083130523858709238007770342754016609051515783339092620203875375737627405783161356975241266220206274835345851096601089757512346206881144434897151063706333174487576073929224205118126313830873004855559357569973542473195454196896036513699822860997541468651059645248757381662443805865955280163603155662573231083966493105961044255873620840374052540877424195730479893802434805395501156039382663775201499072882047803601972764129821633632489899056083449652475474611923523768372902726724523973508122240344465157003151094433186561537948518350299502294443919746340538336855084910927982861357732557569906470884833913986730464814982559362313660816328359295086196188171095288847443019818285271629405184755662549100125535876428353914720190353423362067322469572051631754297690087870199891105903339384128942900479294216283447873798402155300624315899580718605600234951698488174976251509750007629358143008768309994059461153389238725544931821147659641778702610096012549292369011984419326978441928188256440889493588410648785468365575839290650846665354157480232055453138731301720548021047121913219134146911985879744916432806816973852071656194731989670721055947786659199128939378295166245753940495721403810466881812430835953978100528317334383350878258727946576220883888229410730469756569960012073212582430078962066200678370089974714817558874412429600246757186939944228512572696468894127843388042497499986649814653816188433925952771408712297561192988468012889956539796432143065257559877094297474457092777690609408346621080666457334883318676017467195917594050423730527877684856218507459936192262552954369112611918764374829896278292024523527597970564156218360326912742130299293978904468562468820998054073351584665634315132767011899959574880380764369072123216467513563454152640862980316417771964175579672946433975931657580133737577711912692845793683831888710923569472352945754731938089021917687000417652718959199304319017911288907315470574889006285120781869765973980698879034398145912684203493066907242455169447986349772562891395234545721809993478826977905241335882007800968649434718580249101651425673142480665798229269438784432856248642066871774744737300652677041762593712465388209443657597162624116988992050919638729180319141236490671598098152602986641398137193100095325382919805690542280246861179927948046592771779094515696643961563213878022817942885290098623919840763434372425183853651224224543945428572238146137773135708630748922528281105621702224214218858148227502041883695455753432845501806587308563905316083540863384818092365343505681571961755341768755665986596914833902651846675707774754986762659102346066769823312636209860751183433439501911117783439238897589663766649125283330072212385324919840044367311478329453386360790751471902631990194694631542897182406548093325255739811232931723162245509245690488829515181353511829474450660004114197386331124931246300007544069232694537942330019226842481157063630041811783037416952177026386958936075132118332600442174856539373407466954697922074647269710375005146122684529153513327287618046361383104398590262249573890553509448549272515138228708955261732136685541309290225037696241091385076181057930279222711234568816223756359284798386402288522472956252357807534333317684025590582310917036563407950542846883956417732249443539450866033083359917965246036018373648044361129076344343072610198009351790978479009558744192722412569489964879909608709141049684764647582390226031931427279152634059389192861541236550158792922675253669815665080124959410110945405980603778179733125774256105803170851271156264118624092386223535080112243568183478874170127279410747504338385023388718053282552073027074841950701543029284072317953758434511896241976407414745376806001465743377283926813715353448406181095697297185737121964433856981298088199630743315066630016552676671717225622587260268649970315479606677917290799189374003252723400075391789641022704541895224678712284307602068016043558640833991279996203820801421897085041256885213631044747357344126417764031328040101392594498587114102895367733331224209292531174571722249960910144396971939898033960437511589531470870060487877821527499348851441130616332219711461207518762952202898493901899646620625483182369734608710413979947698248690491855013063882741073436695989568107334990314029168796964111405280797753344150747922034873090843008804672971322200006173782985743189311488721653333173981102115369404560754593965029063592310298339955723210554679100103312702901248277260710509366779916488173138415332898129427408051862823038949902671477374492774826831761895809680300432294438133740459783483376794165926826363463252790144894157358030199291149063575496068275816541106439484664819927827851702675638753531590814035521059376612691246853109292725818878077343536335026182752221087880317413645887029369461097420664454603853193282019529620314689611425618311035473663718896929101498503712106904737566608665516924551461649497573226543843144489150059018794933225220634782476230762527619305709217506035686866461450925436460230756148095049066302851360962180906389109292330328530697951662104886096395714042616812570680009140943502261318392596849607781484834304239095064597456459712884075248364107380310265273952233357611280284414065337426694047106839221749118674159001276367973870420877290198484630624195237791083770810588326809451896788765041331756659473605451058925366006963110680726379086567306209242068529007187362987185675736523390743605355909002327954817612085946744192878724845322099285412762367991202152758458196344186834266150538519909999491604223863759275153873227302714826918299902576830330489663875084510128459002243507823149017310766726188004160583211796726260205422449129932526317376200709050323313780010246900643008783768909604758033342308813651358502840721400534856056209297052903559097109884260689450900849113061448329751601033800517987092463144842523799257888465811622896331765238178099662567868734373812996311488225052518370711433031166981756193845411196007758871162825029310975315589234198845274890375096259513770846458605270426095746040138585201825153318214599017082694999750779877594006110189260691442057302730097303171873446445853525864162411293814438275290148697483401618504826343607108548748471815155785999830459560860239307293065235055843077820345246835081621656055761133205751070394979549350647970089933464074028418311223732508212509389310703185802319129683853727311329382065267573280773569229787661583435443804919150743344652690632702986710046563670920708357463706069014850821957925554632152138777524516831430843187041718679885913463483607028589380923686910316472267762022982832918663439985593157753105242492712440832599925331680337149443531099111968706504930687026024189463172538657477099597726764083573947143803115146042175540041226149921710204692149534547371776992819975052048306712337412103350372795039184516570234637523630954578588350046050583453717390001143678937208981914881445898674132250426430094058420896872010203766684879576973575913870798464490515254417338604322987032977961219777002939341423181855602048958523405895666091511175236890950220550430195338593931466668737856449261899938215739100690085955644319671954973065239135164321643638532585748920523789217657852672089859239107918309889076260779511733712153289762582025291394958616601753976557015360615499976729111039314904972176763285850261691539830172481887601257097938034785087527402165301801753904969509808010350859832721751455957351096842987038269438265668843492994380268488131372342279512883138036170704756864179607341532351906341003548873052954708860563294899891571075707176002867741747035340321891427631048556991315751867253904516786877568099174956086577360434251740549690585217123712365203417377477036911514207818862930210598311257285733308940610580116034442726323976575928471311818112252792924143043244582139305116006562011050425242384371234910909748946290824383688944798904068661055898029691454187799738470969108333466730500082741918519050886635398578875335821576678635333276271368388590490122930911436453451015946751758596861886035716790024988878860488248066933807136256198685093165081503008396786456969818107961075347348092879151941277282439975730860994506525947107016991573158958103982748686904573892859466570019037010840311091034826236819188436760370655946865711734243343026056687102420341254462131117651228528260484940702974167594670689487099572892768205833501093282884460923211554549878375922464051606268205119300115301330149464034248120288397436063288607761106051749389339396884242695126470971556855368239802286422295104474873310417955483624543484724355992160447997979058035368233287828348582339610127041636046973501697910498044432548538561516569743445843243113080680261155334858662598056376959705846910817751610411044810624006658166054181199748435712625631604527041575156748387431520379555625576634394663656344609639176423316638002080221109691109956082636122996099555160055557765502584794217769945722842367549595988866081182955068270826818445299677316094859651985697099576239589127546761684650489391479940185091989077297514115803304605442572564319184041216903490661360326219464473058026911754603050473762952127020032952967093631017334146733267522686600963279660195675618910797343657940068888479224014352818207307314635809568848078052437253783971562556959403199485054926751869651000460059692980899251765475738926914989357474082284747576242432641860397353576764757580615960363664388248002376726298958372738884102860732242129028289154255489634075251104335918440004627227672637731713284326594710795795631224535939475090533307859535908832899736658164463061798277857307516180093550358734550060990662943678152062774785196016716210646172268402944786283981879283153245298491957387881982753236574774122543319666386744019021967389931242692224602939642095487198037411986318274941179540804601039866539774947289429650629455265437177130358014782674901325744433088708957974186604408909293851508209738863734333750340589038446517199145264239823746164936051638504632062638284995502864770893389278988137413922034781659215791477445524273937546806903492691941383230806347428915993968589631586720498459437702045531646033708954724672068126793944521192220221544394363513374343314737854651468313594112627886848084865421809896818742086962209747531629509086193346981451607766752923326132205657170818176669906342887844676378698754134811525637811561272899653547351656468839776364860276851260055986502211815812958294332321798610267473537338173546885113248763186481228792723708439453381472036371139222825327296272779965974884942276112532574850091043907207865406011158220691610901568304227952018115197963021035180433039339560275792548473695308679285584094681461095510178074520745939838349447346640968239684978942008662146348547388244008443731457366593143499475432518865987260863885507054764464840313829775319784207226813940139870023169069796019070796592051374386007054587033678159999183479329717542235721697213022038053936805686445002765197877411133318302299906911566265463781024354344445904851801486865691331739667808885707315442876967640312663629773530937137925967811967431550958351049055750201374764207780141134457850236256394796640400058544344910980098080868785911381171507439908056175269334216425634369611797536794187096387428327551153505053340348926771868386523241903572934420409407132257550414472915317800636991080231225050326308029920539413273231493645211287554034254239270017604855401705447318011556064601140870312485868390647274547170533699720610621689793633889139613812819416202897681339490579062723454054613455453055686808120872947563306032288257168500090615607533266540232248271667043661140276261165488181100088770932855352653873225645147877292847030122438616998699308624122584083306407465569878427377904640944376812267512581107107358813515482747120416679986183345885530509027994333678607436722851671708909944280704953709992985071785017464415864121952039506676652198221660561244291736064488691699954775678366219919468118324706503460235017154296843557677558601410329433972274608336186361307834886738226055324835011185066482302365935530545759059407131159733949829800646647446060801434851263417421490805327466201525054296247802004070616156257298631812811376298895969588278332508094185734360164076598086841317627447497620331185131160602038550934350081798335293203614507958770172154348680522350868309249847380530079635626487687173340129871519844554730143016399312611891265373666272834228648991862995177316561029430297610080236815102467646052932067580020434892030807339800996743430739508467847536636704554754318329034546527368262977453010399711277476782974674195667015459027517525642266773992344921496349389595353170595413987432022793847361606907252539249601425173886314119074472598769689078300006565353608773359277928373981934623945393550189084857081530197007262855395511557442398712468766477945969154187930330396602901652231555686970211506633423109740897030628271827328530876821075105914499833250461627040479436354709207917901885295721498228507305406779426714485482899612642663383538837395937329023147674454365463822349051361318496802617059204601891335410497777627656810639319204091348306020058411528993472849185419501739791263531831524723703041448049491922872052726869260692583575698697672477668055672519025077505019150525759803823018574369367863922907313607485372235462525497724376940407126226854422226298909519224895792866063313492048896360179124924334629309650945587425182796714494277657171664778536685264595515246942288255537248773201624289699182882232692429872640973319262184040352695009957206882645078515578657103349607100867299657062261870721043531464984138272516633601081628616309761441310098537194142204809762314389147779711510570286592003136543819021411603685876401066131992021365616090272774015142286902864762464139753493005558359369589423076609440870579293355799181662500583013003425884606462149499899746673814645339342707945589708895407012338953402966410417645858572920459556599264572994171943697117822836321410670536411984492545713541559072575923768399837340372445064629493587788413783917544946466766215955146867856780112496382860605157244372562820988518326593023122686008827300015599439123410109672649824531785389359118151430763397412464908095484790628980839063300367409298348536887524734421073977849056774044142515408844906143772704941536805358097769978295487423534003682847689628867774535641850375044007473196003710681057269450527806323737278141391757642516822315244323090886627921748939961221330650963581302971689588571888417258983038665758486668393186528479877962180699522983114002509922262616599042683846099022519795048327154168252282846230524338486722851088182617803046201633277281196640451925345440433395841029178192594998359611741437973971777568950716328246919431247096150493336843984613769189193109666623062053651746022242479720573991954060582503104483429079078796044120335186701126029420417564888773768900957443495401382826580084526767823758072643445747322867232228013066062321133780324171066870950198216387373042801092396098442375385440218207358761766530747052987450641161526969692528665740951762968868302534094487582145240220732162923584592133281177261623470111837712692746314131418458373825467082851641607985292759461574073081298952959334918218448406220151781708012962230253998609962042462791229206041118166777453372668559227568616774216257325651205242853531740433586979668999401078798403961297565583708562714198667638110927481991237074761234402760946154107397432874691196152669307785560457648995490287267182688038566890610569479328111147706466029200013584466861665666703043028191475553065124312913860301242911051248563712724440568427341765845114708254958386412708057249771936874031833550650285788900666312314937425053829038849842591270831716435315749962636291227640419248600551142221569740059038156666721145698721499017799090769896380766643876114824384101439560124107326921147968041473363200879841608983261340592397353447566205942718052842958374130560226493301735024482139921865922189888555699004775722313313513645776756904456913339140064965565445525852534224707525113030241270158855015167013405295905411995476499793956573795485510249853413427601339757840703898160873346389391491584268359299140864447887715724529608814296227005442181546497411282543281703033820934306161991278583994159261545242004297615312653357435538533227221852428214419226233107332109651630435587389910584085024412669033932800704123457714159691149819994937148365656210038764364948983697173477981120012870743569033508190326611916312189012415293290394941369141344861262772018496704461500773515178582949845095817941467105426393794414414134344084223520507298238835318060339719635872133999271791077440825602818745452933767392704022498621256053952854333579154311617542789786117819784585285353025759998297518873123001585105347093803335519248318883796968983838604709997922554963362595910105043919077412766405578150114981870976568307892314838804400178606054046013936681654815179523390103687106941095661099907341148224296496822165513298422200238336365429402775071297740369455335164172717697208319573790600132560766552474321782948214477611265492818498702414659860510809622604978825872870823840901477179628989926096087187264740660787332579041035616667343906618907352879239882602424053916813652991252194569845856370052739984508537561320087591915499463536552343660186682410978359239569526619037951893006562653099560376211701385404480590177505575545971116705307229864430449661263348006489876020647263474929264231959729934642328621592247502302777523548686015985819592828181710412702054743315487368256482624479086258847874203723295683885728472958592541980897737345861454864495927784611867479471777545609978561382664972461750533421921734203436774181774826440611511453701318234364825856357761044619024647970365434681414337501360648828720060116262114293506443893988712104079972470999614625280503385036075068981996174931486748544524394836541180970678247662189093246492750974918633756085019632409271551760558754507496395793904958300953344494461027686500608011540460590778899725607779835201270285808112270313432189443199787588390657403864261779717346223275183333967122444272639209948174696349140441302472644009503672147266821077211459694834029937171370085907147104901155108592470396271630500106721065800008219714209247695136613215171092843022667375289287385501634759802020156428819384148929186577357694217109640513811606531360820894545455873290609704128715551392876094787831820512421847110686391004159838569504526032375028436378646754216005680925195744622240941425449688419309980105239766451212282266621670916782602523253763541278284308329515516335776046809202546403992269683567268645688957259852042485553020210413292677084021053651097525047672442279233236431008409003312194218138860352095513637747598676429752602573121421522425106971854532749331077813516730771539698405231557256957443985134694367903688107152047940702063157322382368623846704903847902057074719403325261256297198877587320886817028674360391505091374176326183484647720859664806182733793776623820367958007926170107638149952960061909906227042287747237192585518256003749075755940746517663262019617544636594697157680991543739354872757473298032988046174609534884991471138347416571708539743399691134299719732986331811001667699534728513348097825453103264084581917874047681800899793531618166846477982879978959426440845735481411983967528840856170802229978530792161930541957357395866379230236837697548547308474703523067667516844197867200620647901867897297526130724691103071943591213269056078199767595519523448531302939249596853765541521171786727655052287243782562239409620691927693982118244580922642060301527814204334752073023427714738362227313317475326695638195507817843851086905382576396939973192887444229883127750940618908580111636070331257566018685731925054263903780458218361958799636560109017970731569363759969365571769792052524688176602435025947997675661284375467339492531989055943728944931200205106485410801269734001124765091271727655153736846717863344647435660336847118924550333276105327474837319737878489938797565608837207885077673639583310808514541577965547923030986136589725983575252703575563231667367627367116982452061389356069511091896965219709106000532489296989303846884395550379870403686886142033388988429318207972184043663287123172539536325519537563774008856968797354858624777113053699860264215364171836944847527965238336687447328923236383239684328867493948878236812052571804663348536902681124256640640861686126967854944700697299276961547047580328968000932783160820496232911283394516047481969020104079365967157153274946600479593417979781651904140904220126075735581013275410821124878327376633776085143941999073954927885756735696380369638991369407562000666646792801308413195090426744395198187217146030685800562270452806473840642021554754115994966140558895247137981880441314753922767427127209091617752116376404405066801382210103879404855145153572948357549090602206373865804912585321439047727679797393027119646942389434428305222193502425637031297643846421309198654549501341213702933917585006352165685047232908771743951784510823382748335945806239445548358885534037370222168287803770353739708856254513934973567769093628500448561962048087256741080364535066044865362971659969546965318285539132669994022858396665134981142077264857035089004780257461550367416931113575676260594793957413582685455646532345796178898441617307868584712930680326249427706240177593901415253023548599954672715196963781627480084690754085270914109516157490798312028560308923927774112093932764881813755089701450265073222693434214613797287765618555587031775249797123153944022754371624372434156186403195084930627765085856534376848987789213586889278898386774880324892110191670836251835717880335079552068891625274690340117215787194101026793991529416550880436744770243581012311290668120448092472691612234241105805497016072970081889192353817179097448497984545673741791335448889183528367304617578690012656276504409427757039125637796086039999724532465527798346400248266294544463657774369983753581777639264499482919694725312489367765921626836388232653653584046124357028819626274635914099797225349475079849815401795538232709048808327131947270403360605764455566275889270181445162025230576026849853651610027477898911824304770717213187279968015860505797119540639355122626800631699441444249856551939579174609520396917010528283671530455695556865388069397010081965257548306368390957154571889614441801992553822358038465656352942521244226435556342720874530076559831998180174721695315879651914927641091669558613346066772167937350115426966442814699618621582694698026658425615993124926008484548433805348467021522573547115930019639995468831749224578604637508071842764688072261186372469182342995951157950517461022870686548005141667679918132587299317032077386923446680695266302308277644998242382131655606452619357668288135219278080458094798754053012242370892475164529275709779295730641299311588417738616161421180410383633599986789892835758088888621058452481681378507077402792596938034751104734541622028630412514191749324155077710420160151728951078848718865234033307912192332767356864161626765317154322295041391044313412292050204501696301063438005825454249253233719866422692116345348576600119090215193145127322234274771674250192372609631063291501263167034713885409744711444954108370098609598688897220243123206536435637101370678429889587527435071152949382264080334965895351225780130704748612501407865627273570978082611048178100938499953450039783346361455220174187800080080367666005757131667918241761579803256267269232851968045440934258314174413872149515009311275385319689800771711298113388391814826329479641128774388172454958263324830342900939278116840469952880964845236468580123856772893530439859111748105750191894277218455654503525613042400553888095899345678798978919571205427278761309898537233631314048764279414014441744765757174723687317034879048507505463364382886500422537530324793278384517774547191316493716983495699030562678117152731365968860481159453497928011225060435689003059241145792404173253207553721037013267694214684110474219317089196312001248512050388287287395316725600382934627034654789210175024751029315059474348581784234739439466161219680507908253483810023189643615083412847303697855831557311083297186124530574453841747087029151517284394856281172658351694406793282604481927860533854205281800333514475888706858876112772797705563979983184173810217633648465847458752994442240309529950610710065583366245092031969804638471013154671315898826413070747266549492761733000753202108696199473335841840325427143479688947812062584719260415190716139851257830110146282861156720470731007945779394632163585008123709791641480330856985177790690981833422436101379045865465258196459944398580984247621175570584454867647097976942785031697095181170296192374631140363288270152440992045664657202000914129315131987746191376061048538623967379486580846685030718727665676620004502781624009376823402109177545890912911423676647995701602831831390082234374455567750386600707203759477390215082301073449305958210892684236291407114308872064882758581646238700784367985131541049194785144465645162498369300307364966147671987667980680731250990608891547687876720518426466390496052110419995388689285179015427101186645723065608405340624235792027341947397039023643760580196625839313183879619026152301801879102035302746288828556666051446784129242468010505413627649992218758152900490333994079533954811812322068865115785105126700177052916986238099206588242387700927179550048869093194501000374029556772705144652775103901289800752285516269552574529581864962886084092918104265586548550376816800972620075496871743950053439394589696124243618877423823191739978356395898061135106289267730862391653055449951187679035634986147821342485722240369872924248063126416325646158512788496308275905892911490431257331576947480160566104237147025306489656841160307775830714973676340053226318695281401070316766751461874836405398366866674860554581660689257038338377212032091680288418897353843861568757838070299925849565357734335486902849671308488136825312911821655947051107451355064078827567347043087662946627591911102284431454436488449659235296015895918750225730757733620192788356069197794064522774808496033467435315640908085999572444629064335254388324131301600047973691507070937123724800691424027593690516561985514335111206468672561321297205813102091480514524120358001167147766182726882845312489320483735452036231831630520768681555104745493353626731916619938758004220959400707793271309598766444911136924977366689381553162340224472518852099413568962620011155518815464626294102745838166786432403790973750027469823134143721132746993617340674808834224976929662532525556750793817341694385236130890365064654422605383582856867050103615466365362574462976853600169439043661056281514092920656753484929942577349926861117706218885295159118518287584643280193256106925141421406464407581250600960785073880952174551731803721198527206079566942527685513879792514272259383409506921078899404599133440993428909374874757655218791385699403368345458911942894021074577630261693991354615993219934394379775421744384076229995028136809302595304808267641928604366734209512346852972094101715338420951150100318457501018188472294342991571371092877730203992130128527295715914071085555643861884011973037536301667498682160075276443357122031567979668715334924652343855638198627700844931180735555352103274299773764600788570750492768431350487782878427810605953467353442769932233893561027716792924813361340345897093893505323158200270848325858870857129925504380277443596717574618160574496318583659548653609180121464055104594524653431737440092808012595103789863734153841851002622943295351602248663027842763921851673458964391918729414844379892415553437805759119939749116205631272205184149196656747498845675208606760254080774208201038323845055479774487124887159021975854200313017005256314983273165823666287595072701234359985102942847345534093398245830603858379600615882634184636019532938702252942821306316409129376738239254616297315365110519318670912728747499528247047236823653713691692491477374050230808877769153485934789586266652143026073348256886827313339356427047378220190671974677707532214839054667323257457801745089262020224872512658032917380733353520442139568281601911254360095287327914811548029084609507870036973927935845074770608031455157774285448312031677874271130011535951308131174903913392291661298698255889593242242292061370568495163203477423221204988239707421572167413306984724933825448049711835475022723256200058566262041040385139508938022981426625732342869204120064567199658695331238936588482568791119676612355076388429546506849122164246184743258306650300789058482435978714648757350122420635370079058154534665304784657940352826467390734834168891549654780286561309414664227815810911028437960780272835720065444706670611458824820568261824017695090336842801430473072488399560762128484280259704580877938624273646768191452815940006364316399788886283272391151210358694732840977377306950785164994243579190342126969192010451359873287961271284034087797058067526386682576072078961031684937635294632827622128118707193996820284595912902691091911459731546904364086575621912148197826481958695041791447999395608445214283418632122833148411950816122230756117652671139979679709206340957945609003066337927522382180239186456209970646094211927672739555705179834108583053995029891425251795730199296480954690807875106012026395246954323882090817231679105654569671736969925070597321781528028899017195681353896164332134560431995801047227944113105151214213022832921511000636377223435845842856374687667181755678737011683036079589824820241903360951226197158678207859331837611072085364961258865706014534967067453204476257983118844260529359594348416381066614808534447799452698072561728370062371734820055406750042905717546490952766302653644697854967935451895130001886450588311656368919925365011520606624874441076315502520632181194696186291293352598285226938629980605423631635980656069193223796430818356949285462565519330041431577023436728452047940693891213354534373268714023919500151093902018524737724352245166123603525254887751183204873921238709627684533002621653731668986268107423079652748086091118825461076920408651395203363308892686477173856639415371585843245645375928193195022559338212062698864711322284802990206145126149331869686817112090412150115366660659596425018423341648121779779135066247796575224909954545184449483463770049307377920284957681532081166929418601997031098256720414978955632398305330148713748641718417740778222633158051527447068413761639312682039714614884177495371003089940097758504291269308645176291744244737155933146356214331701650092382112435080243920896101854241229946412546162082677484546238072706995795620927637953721358599188027362648014044100788476268205915847280945135778177375509425002723273127235549421111183782777657117866040056064838440910625483213877037406174029265325050587159684547840006161951357242103114471776427672276301150799998916815979297251948999743568127655125522473080981891650605607948142815642476388929360996233509641554757632631196915441077179756705769780677862120335608282459590073498425484091948118273943006189756783031461169841464310123865709285549289906024115379005572966953289083311636305621415169736195620141073920582216767896858412965512237371744725329491098181264740115413467867497501319280127907342671504431892093514365195008107177984590276016359005347711881874123640581382458623847383649662005322902056523721780606435882110485129418784422000980151473274260822733978496558843136046638625161998171543889987717347480569727228395248861950153503324860035675504605057313988307681669154485245775382243670788235843989862099562333322829327701676297409503127917791168311169186420646993942353740455185347841256374860845489748169248962130705104371216330877160703239642956396472997505918361831837304312372892921571845976149610371464759920295694978053999993497606790194870241889044712305205132817541618763130247366305882980619165194977104938997539894801998327489965384221960063795813993410659640486993449967712761165096582472399759294772827657628724772836047604191333414675052538102324850338958886653460632759661330859832421717701696692424511265363682348512161403135852323918232987538030409694355503903959031405654669413471635079857095204779249680349713605696780110429060913683737829060239878592734917871473844002442949574408583610410379246037993899014940870843292075194688931289715090642159274955747183136307602930435771319847495986014773426900731249145548860490374831639876887194245127567435431830573970370671746659068742711383123474912624982721571293882697177180518120618990228601759958733695969355822704406334802664105053939977094455267395035149905439074216222856087106588969378800696047685086676135091373780967565649385124236390725385961753976101299019380461404342194991485441855654093548742677496743723773114104655700402695749753635399312537331139260142437935157353501448112307697864954367263345828667693237144592971263718975481304956085648184089132457081298985013252344371808362027263208448290881126551794018891022566352861442578593164297678626529026509857191542295596448856769665233253567538230072753429099959399998963561650332640066182065185251286870556735292299561218575128419860219275325552289723083767265345780293657966917300361633067765737366135211766230010809008119046025009999536912769094009505155871749228415807685440524327586400218864319338760572466799347535444963971271188107982015862114666758191327481359035026505711160945689974252743310543375340876318430725761271999881297616409227033633831230624686539774008854740046097861175799790819853174706222320543470368316747231547744509888267327020104762034554578889973810897540082702180449717444782457265882766370551390047136955168697050220909365345978969098047351439147553856425734159726868280092270340870793357348973741739199932929675045817251547008960823361658163834956962473264595968785468411580151281727922395236955981741024492916458091541756905970245194216386330831134769454669737543376441994628427419326580526518145644078653354330835626489221848468288573146784928073825673068814540760366557535106787507728848484771707960939619493561427399738691021454240043786815586479051016965682778848328349466881052534330737581163106130935837574823124164333646687597797288079616491345174846967454796797388569183231182297031909050684981140137275296991708898413810798804452028007971649226104938580026699567526424388242165631879276259425234344934982595712031826995241685264887645648619531571208628331854973272430805387446534538924633744325454973603134333896917131656449163238903883640744177840885000777110081119384389242401065534593149063299037285559614309067896871893096875428101266078111236148454857354445176223264674421186085622047510906525723699189310812401948839892984434613063548152656793840463105845664282936068901172587436868644762878483784863198376790716122423087760935322149934680915154281790511330390468297909970550631125454872021251235761710059751572816658045889616908674207154673141078087255579634051113968354219947465248444391924750342872332394704097347090435923934891783898637825767551400195817465690308073651339221830484242570655854152409317047172696075813642639711038865407084440612221082608492582864609736767585754523180874478982605208189478450723969877935702115951778777168242246635280893987406315987105631843465723671029709063084213954675592424952140790383627789329430189227332108560487715350949272480024143337435641040207764339423174461133760777088911825202214249786732255237928381043834638202055583559830980593757246730221923256524430225662984082068676870228852317498609349643934008468159064496849445353040991800326404080296314423889632299168913789825916558648729406164181225097629248709692742781397134220465803450704857903458207939354508498027931376517147176670860170007019889033603418679052965232447370837140633644063202401668491560451879752889132589789097693807766881887285088044556820203354288304908902458285874301175498629066042068991643321746325820715173952985070886187724800373293635730794887075649672108010421508104904058607005174591273707258607822414568175607321114400035069940793590155111474596610383538908927145574747090125290662882784366329133452367396938904647854695821943618544772198472801813139303853643783341953189243942775619495143975690535157699674441723745672172340000899808403009242927589592922806383161632010539261571125015992810678856431322740279695300197282284635029405413716488312016438923245255268012689464903454926077335868407957605027403049231779809821541810806706481007314530387767148607324660887150201295803254426730724143450278063487865509109513494135544712849029111144289613598842461852565114384399115908925526432121473108943443662949245507944469062214111702238162868624432399389988026563176522953831428250338748530594669084353838432520254330085496732226862733918840868643852872270332568170951843574037199665824703336093855547589423557408570093804505849069574066227350963174292326032336731929110866135921517913488627289813025226322316933733289331241386897057008026691826474469782824241630893279008093616314806167422665328104880073078500996461077964902264294672009219046152643851665689918522522702213739889184427466356224850996498132137196211489525291552505642030756174136894665585593382953177620846691050902765114391043740541035243157310615830092441312272390928147210847089694458348151846992085788947566429646338937947723664738088459745836156864909964575073263404197445701582197451349358269794345438822679818728150194143579209350957885203874384280697313681847770039560523346684378458380528456861553468093082002494668996799434174630739314373802654400685751426971344065468675172154288407601582611821092973577920620676717728072119911335857593551276228839302520780952435021008270056933822879380439441322148626407561940167744234214198325906427931513008152579367217735398383414900099983717250746820799217806856184010902427107790021420183795455734986650707775402009308381835115742729976134106158624556651918136955985151729278255710166523808280215779822681715230908134870680749987548121061624276893661843092624653193441103830694561691840833765461245867294473829383086334867942343089343920461513135008356862657489170079588479065654646419627403785666631893502259778965155846388707346943426347233082828517095457907827792742086459610375652632920852861943689636929657253238843643266580366094461048351979790026291552616508783061338667052739833771687941349327155384273344222020886217426150890815597574463269206441361757423312912124818962921704101033793322377219874954931135565648364846546842388144904376294453431523169675520389423446101814665953971308075822580814543463741838536907318234667479262398030829115189910969428189747355479682225111463604894880463357934262240180108649967211980723253512466092259315774763041464671074892349323790670904062219338134226172074602054554126709188185630613339724987480971883820821360291730131406483255514481289364227475257156468798116992343636108763560831836166196867610990913718422483722168156904760556340590738473328542461303427295858976810803688057644966582672245620138184168196513113769822442681668332284086877000290155732611145953596687650605173282206345534033694634813571740949653537530833215193592617264068097255735086116970167456474949198079364226098672111592814639151201886871010056151853353075135547136172040885389072922871786523263500695337180924114644913331429978810082743589942858919499676974780025642882468038081749967352909672098001369006086299829077175535657105638756306719715607187588987904009975581804680944167273737823178766666587964945533991700430789251603776947611171837452332156483901291901899634815052799482095690518023562162870163402931693718130255585842957845105224989675671396528776531411791942697894656483228578916418936345518760540896932445920034189385653108483940608660540393931421253797166858868813455106687957969149752420124067809989886011482898614076850786337326795793578656743496096720500929974111197521084636337727880659493725037364277558450007403414859598795151256934176110406249502204907313505691545670763049372388060322246132603216380551428730362215896367129067091056477742229915259250100131743126888698239979632522212644725712147034565739522024817200269321173981665002069671515872777244540469825694141127496804360754256232760479896623787415809886316503168897067150632957507456147512996072392086495798044619865113842721326407429248694243283188217838162770028957635301114438129382054070909639483873223007326630576745668111478630864380266269644945841244719016958264675810853090759576629268240687229735083837234455136010791106449911585131209238388439739677418429906716302168350274004518584403212417930486690328804450616725765708572807982939281283097823387365652813433007057206097256145141213603552142097469058548324376791380417731535505557192269222998695226588470682314825341783791720984489489559833894099151102683064007767605816672447635098484390139380857632453752642848386777802623901823056913069004103915827804986745271179611624662359278015993999439290022745544299035308760552650084268637282938070686575617594745245032758291292516200878919896115105969636058758044008742762228808487614978538154733051963777719739836005066025207706834730916605423125098072859089177812966817494798484096541339036831997498887345198956084860541782173076858271572507755176044262592393119043802011916228834798296911238194911843808239578391192336295649621673296797861681493778390790778682847239606882390517097483197825637436717753756108490694052896454588329971463019839887624346897776103738039671789202111939041452087717972905257034057988941614636328816294979882608345555530080266983258929917837142158069274626724531877313853050351378958557289634437882251712619508909182309143484498505588532867805350308267145462029584136454753894625606081011279575919485847372721505108873648793221944018929571789925531140635400590621478391818775164351591279889516099184051049084306029725781341127865080243716882535003827316710959542372775629276808692399226312553308204246518453582601955860413846796836950544516184409536614139969342399100223977551750859591899450131991852212149048319325137959015679187252037126724531304997965678389679330692337220481163441468793401074387724544201943839841679725958713089783367817540296330627024386715683759272442298740489123584417059471935203328861035160944089106709046250078831285397244230699700223459155631293697414033991304828588015909391935658811558485085787786339831434159553733167450823292628442396333378367290805326452465440437419715433714491220518532901128390669546541513794364759016127219021014174596622537286673613640304549294478483996449945069173292210175484450810349365494721451750115039264849839150684220983206296205954736537484497484138032153818485657349501378979237346257633060470857878154565898264326142419759290097974757896495244299340133559710327637496207720748452128205506024462423441009382832136572412572545934078331058882551795944972839591238437894943701661983462163120833181085494248980904050190747542476068016744123912127101845449080066541779978095878423707223788124638877494248922482170208133517980686390443183485113276387017655266798969235263045998968169249667580045879498634913058724675156814985110273605902576862803177521545818373882910210509456622563125578965170310060573597909135078778052624706916894306133020525312762008893448091591568244635732608091653678000002526045254978811728907706217710303831603596850053065648983746746433047001177740777035691651989847461521491551390391431171655288853507117776564861244108256679062685441026890508505071475997682494140554155458669790449101245803621695466711700401977869403197433069191174738267380239627326308990462507014244130684411371188734112588622577262646618301044440251995602940121289552144244117942675899318951085441601946243679809802485768051885721271704685106488371847128357411950002228712862461552411208535335347847652111072983550621620200355894843970789980931866981953512290733497197162986594306842331005197491626377774243966125315838637189221295796367695646287054382032968850341628224207572870388219241870469464984784642169764866716843501287142240880611671909865742633053509968912746422299923200930597608706009107006553516193628821597572517062126860821043749677871164418387492384763413910097500721495867194485604669569503876765854413135096474631114942713860820258991130619583909378666717603379546476738871452976524152847677773957904945703891445890041260821152003133289882660999403609492265264218508495310873282438571092307467431453028446875892538926326530562744835832595480846332883483982641432301719097878931270057707566812540028870686217818938133984837178882077787850971171617303923691230934638146009382632611502503807215445636772356821860653715478310214519726308967207647545257979005632723745381404937939427746561681606553128085308207526764062075298926397536166989757775351294499761071128008950390314758706715542636705642381992852923012973730588051250266396772213423773115010263285019213620296400589515352424092491661456219514968118944359400397222305166373361815747913622941542957619665874435605679944231584067660206097330370592653288915693892171108064925168825739649560880337127444672811568678221404626489097627649554383814441121456431109057501269721988454868102622442172202204058163649254981505991925308721984790075532904098473480829846027797066298371748030490956736696946158062165759822521776186466103548293452804989138571746203959533437880052682454997514894635259939909874799112757546952956915104165085866400650742293253704511150259201709964765165840688984126962796198477047564677842685351601420244833178038557263900259231981556473505797188353163687469720856428604398704043023622752307844508729648131488971657840644241259849117209044932766171931512706070247318700596972943414718599769607611874102741471122808787949737332099778085518287644806009423885295060691879705447898053883482614710739749183837346187602017145825494007240696585927049825901176345480043401245420615542902600166330970105928043233406976922452646256357812298307142647505754496731066172721944951927656171405549424224789470047072334526503851854684157446702972430736176743428499833943438285815868055187950296280605968335223676096409054625494880234934830264297710132294422953083587982922935734877603184796193925342099609635464799991966826493763502869786672237082426245774432320847904738233053034733312423352602956030183112468772270743045072849642545710109078070183686873254978836748081556907244088792765684555580561756513983379448643360533278044433034693394304588804464109059692565270508160272528171235979612365283502282734816951925070902685156002592988054005882174257348311831694690987359867822671628812084255057209273168198837263434062153330887949074609808923136307170716877094202083748412402059792917410928627478554770469695000009419562025199986534933348266956097697510042276295859091480532282667620659537524390427000346060381828131886091189088985631338434668698336025643209000706657471855756652591676310961321546642836944154574206056579415454717666773060824351238311293736735437192428384824371038995956299803535666871527830278165917915831272742114919837513115821014188514291237315299993446290639067734637982551414340628648118035807403836961952743254052775410725145540315701586655493638536775468357465297776094546894199833483076491824936180683164555745655652858343811227923870125456231761658433432853833516080008026750031976126526436616873626788748325410592171555365492964765792579500132075779414185977383168799237577546726907173706460320146912427896110321410211721390497766738792226817059468124986935216100196539485274102295451442291778959167286477821927473256509613895553885879925092914956632316815240166511749541106486260439447247075049781576958755871993702427725038399734992088280530217731430519374040673641101180010824936572450276187108701571394454704479507011002659670793172377737823312965691440793320759441450364609879603262801226019849626325728191879746284845238308400245011942689007578369359999360179710624438856638821181010760534243628587916811067232445956050364026879010678374021302989518877385940376124438975621283313781834500398135483312810379864741142016849078587179386140999963514225523662846201363046472410249500604105292795939751236594006094104572540458591571002527803508013431556228135192141598189028514552242658231661160937141353745035876164342882912668089487764896798865673179755692336376089342938167159521062453626192983356724648519837590126649251836627022570483313076996793051316360681939450308768675172464669406461415288507394568920983257749038005814848919586488553353647020462144987841100520999404165099100743362024750192586573680625623573751501495397189321964253481317690219978920691157076379057709501420530854204453682847683697263030501326743403978814437596117095652350544444245218910471455154835448181972394886732865080412299309184936499744317195163560995813075755309889747292939284216099639116381833411874688117046794309508488298735825983756834659969845647670107793299942455063031344139649995922652960482321037557782086422178526966777103836901938967526734080807634288736268229186849275738636611942877450048835947527119370633770342771228218342260859342123705968104600446040810911517856605066475456431116690885141749448897773333757647557541502961249523561593763521711274160121316963279244126691467173166666647094622795853398118709403788614179044280102377728741131612033306243182340495443999915043982188726399682362239168081793435433175892551494850896553992658500554471343234874028414857725720634710335570202224750402111109318008223313510995955321719074686054380549603125386603656153573093198121659039612331123021866537859009876443835166966287967813517518169247492144242882281768547465704213622843561565878004945708766938554014022815325296025965548099498494052671621738090349277450195012705988566955954521482568640895874184077194146052982444606696457972772271428363333915995001620688722620708050902721909988056446943997812849317485556812261820557900496153854129238008986478501619447647975155377985371336355640838744805763665786534171994287036415306962305517175071284193359507625848160809224519355180757794917777207753029676011039849622028350139588985534233858341239628206231242751646244936762306180432055722071510633903771929132957623040542215351548966495914849560708826881046893891266317488241865087252964304413704475404314373184924624039476461395510870289401363136039240337105950439126278427267599898592381389946358524193756437141614483476184886391684136214535788734522397529297265506543269891036313789923138925692733159331637623042769183549941805592338030572789793971897643050724086844691411829919725962523531447055541883931112163699287823228371631168819278856172199305548692742583496675885172487253643391147596557662149912997539425123183624819915097426099587109236365087573483219515286483997225028964584187793156161584050719594537639694007517694018826539177583374501950954779886960352231402212976623438507198213887637740720130975351561378797886613368670507461428922483485793098699313032573371880962389483245414601374252927244027898212110155818508950610766718238250518856564375804350984831057109465747351871029251818413813684408662710728077249184005725951251700100337362620514026162495738535441567097934777475179998125650276875650908642716590892941078115997142505485324833489074123045845440838713607357845446402506358558135183840885980723791608812588423893130644224000647340794994699644171109121522859017887240307813906837601687039062064026997580581906918450892462371028526164872388069165103021510690911246502356837689235764298202298779723307190977441263466409481068382849550514054691327028882401097659959280430066860522795747460610675151910033680408798007869251806920111256852653994237791212127487114789403283793846258324793773224094961321172532877496843522201336994836916074709322183876875938302098244727522550862468051629620522505525498904656280878050857939784624280034421995782580896563993800162720824003906488536391183288130230476979343623990970332408565987222782535755074518695397320947088089419649205650350423697513996392042887168316651589691834113230742323747061011418681201126468844620748288318852633958420768263914151254387265126617137801868856186700080166743606291426132297293252162595561726548395326344417739927870744802157888600092047395694482369996090898683454831747583217720358157407393680811495897653713597813724252447447347072290599674760400634745298950465905640975212676241264095520414532552306214998696068551765969859472176224785721899210867942178097740105735219685481179733135373711902663699845738231526085341476153269769064757175569841085329857309172436744151920280537624363944839535660921193221936775169744744813096374160651032180745245778103940700883637731921897235709026750910996971197192111064090954734934204594112153104703151190753695587788259641689903885681610527195896237990302691994278020806519743957065789536164467846410147073702817522994597204364338877470556130985027225255958424096312040331901806609627007799100087762801923309186146725623486360099883066797060535886702374816463097970451215653860041633962527737804073518843175873862614087781407748354325963421085951362283673853957577097866645676244349248943190706384101282298467093719385298607961484640557515720738316704697843046015846951244882960588758697760973265447300743279175550090079243919046096734756267345867334239917570095419131347395713580252455385888630251436651931396289419241017665709338705670765096668670128691472111154812399891561546525456304013267168832886389778068213939821430168870912653315840717566540656361551493375277349982144457251003386918792822925915564409707579102304283153234598368004378293879415426280264829741733556923731356021556991392006008198787600873488421539573749125568490809866525342004691207582535265679782950482246800400864032546534709638701568692133298015847452686213642769505840070695458528068952574551937444661905280242420738106142114173182615200891837000337857665701329906541041843174995517424926969920688807644524969030780034329818880078347432722541261155742575552990018895205659815221567677228795388394491674592263238056321951623396196572371327862701533421780253970925297686235350703155370342983717331201717141552912645165454414269679085606575155349679010666442109571163086285298699007820206383314519180588161207046610478782306446650789279762718588912084407120893123883148972281653664376281623487212948749479194457249443119449844503323970452846257423278554229466513449055220504016482684995067192517498764601041005025223405507090046883364711309579714626485304408662289803634613527671417970945338463921952924845653488100339238378779342712506179804619470306984942333002510760105279440854189526972413755962810645724376316969215226508367148057173714698610553454659701268414090975775528881706939292520299135216241599736646556685133832780203323117257407860469524419079191695133736034967213833209731477783383284868784236273528704102722568755413448111700841254407717298710409729004531652097187250001280470370552547728602429573297400337832727984278359915341127015686873920757785882942182802339645680465910051776510512075340116814675938612682337744639708782202044210813584075855132828804502607807380099249595369723495701687566185032820144545184766963460394614762223975339840494302933835947119167616645509015551123613862673063385458264765116343597881472924817212172742855846789304234708174906975984181851634196625942980324374111398196962527115246795259862132957251138985713918921906363588051661377062571179187258554878189036065347893453482457889994836667486400354339986691263272848559077303866900095730804174797125756375793281894561314740707308808356062736260584868554857535755069420602474922175625367404629999946633844923371005008996166342849667285656270985131103381335806096633866577155573497719762121835498639906898878728284222935916191745838111393973776428568153259138486896203414960809518589700997806231978116420894164108843653688589820955391360086699672689411891191771591122340915123717684887855902005219390197202229273044503801388693786783230291728949450644743591703737693462803530364207007637765074963935046837635539990102532513836550901237955350209457816308392846595594353620075073380672225679439083297407473588494108109008826537113346908493812077338642684787143603453114074093402123691931950428950070967680893255802132361757881945434877390514246339338629440648284248473967812219441995410646589047557919311499913597099830000621608910081873676522865242502553594881967228415211612695915672318627900739316469424562307674890620877256774031453305446812451185604585081691447925343450037020408885186773497245835538252673860344831635715463510381054289934115455165550690078012693380059048230881238087334385139668566447357630857038198337239154586448267972762743909188532277778435403365502054966825810239991785462075085000513343718598954096083591397091953720102428504753531422609281467559820027474764724015312639821842753754517902422624303925394935005209636038445564425911628190086107254131780084027437341954523071957247669492076811430674837415870397872428597476189837065721463670098421859014924417932731811505332157953921777705113195266016440583864252478529662475072447093739623030284203401939105244483982701374284865093661862123396322483569887296549449302413887049860954170085566900961722431035785465907838646768575648507912685046482292129413613241409377334421931353408817866666147173017128321709102200732112161062442734747758449546974441014203723200180913727849248275902541916233436980754991315356426988740079818520824022763411155179367956975832451638940056808077240428239727170517468447452139053056433139479389121634210455448913822283028451603709062568355980939868828979679901928319907310243655216781627203519403015937054053837462587922945526378717470096780237892598508445388177089359033669938478760453768803354991810354739134561290910466180956758754125715795771210879499741092730223756808344268607751857951745437111597919651475351818660870722440915553810665646509279667639437151951265198855858036587654168582577955101149337473555710936435580069323825373665158434687571094857289368896691651509946200954246517917011152831287133526079884303270467790327347856862724707460967469554015744500686028039134767336236454473452755278687816086397768145822527849198987446604484923844399691146131321753323177170461441613415062292938900390039757994933714294984547515258771130649490661680293265692285626661289059182017042463975702024520588163052551915675859109810688877000962012372263217671891688919399283365892931956055046652551455289609512081865604707781345000499386176858770048611662139037563876447213168125369496620454355019342235399576919836211327268151390704247624624994406265256663979536081615596505647830738996869554080074867503230448523978265320841367230492980496067676174813199780763872847954170062952908503095405910109465795709145716842680983501119975635185794544625372505462343224284407607501444159476495917703134556370538639036766784908627442758126324955896136835173994417716008325834980819528890820681551144508440064436854106790368471862015159780333054039507150938645497841046558887538864375344310250797071433368071613204296127407156827973771113535737471179968244866756089127784175804115623103903951356174483182084316789798809721272334971107175569083303499102106471143945516200495246424664370673370047985648670940696160808942298706079885655532256007012095954969357906726818932135207662777230761582429125774317721683808795356290178963401479418109463556623496996033765053701305043005781219043560930596524328799895594171830667033363477470799680622565307159020076321782800545333924159379110571356044572933324060172410887126761165951068952907428712803350595131033102538716900682587375128783954762337215457281545798377332225413408271724899499895958023060177563243656515640299359176722861430978381888780679772065790213807915112491923584138840147827340403638121040029229357638436062797756439306236101401935911291168192326362572062020886359039276499387969821537302845404847688117203988884302841916425864744705921082445503193318011884047524575476182982180530681491410134339725368184518408094148225659254529254181700030846847071790048566011753881179332962392021905442306719376339061674067499239479233589778402710703765276961538185734813736608353684654317991427651393645815446945890084064480789489111104131970006876743143747044173765851675523473338720537810457050739626080618137137898382936057573801018105939597246975024707210512058597402587807301237670924919440939923975338308390175155174491619357740203143719338934986075604385604591670851617003169259084050647952272799273718090556670648619424782725598716894870291950772121955588161336343173494794986442612377866848517355072308923098795046501746017633736835566068502535214409015379445168489064539740664268534575123378802064803778405012565379440990437008963691246462778126864052327521828410968430512078897733374480238682997898270404230524398576018873862770301339346404910265509629531560088161536169468923789859008520008552763555725942452824017293936034949486009896553210216188145197924616491846815873299490071535683125436796419090196684211660403116117997121395184815966685737925858030881067830884135159521816259263540958830128257507773968620234683795896158648630396330009678742045651252104091048299588859125960782751193267713579061676360883688560280477253378878001872323334978018101863871608993194806142383576951247764951514638579250143932477673955249044469847023291784568444978851768288799478176884877400544857707443590400660406628183349549805549111287323032214597149774933512646984265699233743564557027115319527102390826254241128130596472116555398757505261818613198509361644147228068223751489578454886683020101407781370047775475471990097129281831080885317290995791376366427725785629972817795451259016916969770850534755749423228434019529135897942828596871468711861552376711607402283844405994527244040061933714801459417586656080394111157334977688990105967823573717666952826224108381970797698234925714693473688841531178071123840000126710371528398819628086600635865431375326606091447454355653563945783122262571464585288969921852556033887229541912707257602352359390933366838513249601575487280733415521705656422651043813842278801940897713447177759420861476620662321979389963865436123526970719374399625308218689885435643070096864786122948610934487961433627886979593950645431951877150622151302078600207450940484301958591869881965979753359157522470811240628192793002446414972064880190966395828651599444690612987621634416986063415749879524644725368067224992094326369684838053770200528152056345395016985931283007471239655499856567665352309147198665934863190906219277889762922747755377998949384444884069769463838694784908270964720227974837279686936293333765434368393940758091246501107568098798147557816372458183191283640453638563204249738989172568992294996852534471846285760284436825562385820056672097654661489733663654428172490073209326166351852651193385823423762009596165181666070173481594611841927559418221361713188205787581470366181985458168272386682758922066364078979486066020083041366965218916061210668198648618812965679628926266818323620541085213394286742638301206644408855024809852418004079597397745975871730306321017918486199034277519564840173916366293824419666296283520757925757106586860350163163781498558952529107186764112819697006587470658291765639983480252977812231614722099270604318702518659468713751086072699223100823679334721595530024887790864625361750318986767495294578637770662199819188860315726888151436297635257562471177542254292587207009678288524321347700110599663046641241069179804926875802604945030950817365817730748550204786641718914949291291758315827170391707513041330450090261452981471328322541665806158357031001211274568995834568971402162825329460460598912419584257645830990379025650543836341862365015670044210381170883425981310290733451829846089742052946094378027226336602369778631445898662457809089506947340234281745013073058938220825369313866789354726566788365131242025941635479374069765631791461143684916867567136710756197158620463442973349568665803623949703216807544214924893286622358074264087116455156327245690492093585031651643807824638839217976328181072415320373948765172393614019176782666188766462289637712645464695279041594055826697189250289718367107793163696556717621320060943606158842499639480362207315469670808658515764320746181023157764442834390259419853351986060505305811058385766653128522344005713662420074031281263730601713004617916878334695811466224323775069268472085175789024908400628833560706603095919849521822881629010279226216629210840393870439483508865947619999961609554512472009045792822564064010601301247411329389402698172505749345595079646016765962934311718397851295309357910214335177295765943568472485511275266236297209315240260533351094921525403813519628914512816870896122840296694737626534052664881135369243192186192304059685772055084662500950859090029935363811773995384624314378565370990436466528479094488466538871110304167161711802713094589104865402288591471118896321935230376146566885699947560795132261136421823534153592258260122762887503878823787838055841307525964224621297954939778436452437263749775276015613347935944247745979260147847221719214151811289719422640478189195402190461844107191467412000665830216004699092699076587212987717349444004118211818098406966764302640337068848191052521119757203361562683040999662048888225660248571322548655984752537642755715372791413944472217641333010128330114710990649264627912828134677215244063436504315190605604931843778300265098489097480257733111644201730299261618366908866902669650728525545728016557940345829939498823620862166473582561133687018573931033560496743246681141568648918196463687702789968403844103887933725832674340982126239821818991005717583794462440694711044336423366660723187520953314382255155953167517114978204220795137891990891610673858651372528991029866649070325920588062797558343547924030546469757983651792850083231435447126907193053171343397577278913495531847534540472202850361858444060918836306715698660838806278873810195225953283641182606863208209480875682498408021429785394576659767271621416872100205408377814176893314541593834402248664965876958270181814526249945357491007017380207578595330716407937392932067134121555043726910017301652597342595946838564903367992253899657824395232091226231079823370775240059730325683806304740042287887416149733377885898700622429476385358347950788316705047135086561439921556772911991891244764034185785605098947133632443706998301657989910989273786555662932766234089618400953477004761759832287039273131021675753501138075923893643217643614722382572597696526778886122708332156237632259592463463260951658134166267046743212213465168806722253857953466769711426191923738055424941543497265374230054401406420556818355449034369073843477928130935438026987605345062174643372056680837812046309973370729621745772776632904384283715920366731609906662216632143421257216872662140565937463618725428448110446384537608329965052639351619658447478151359763760063637720397606093538561864887839984460696180594069602951210271061970993900226029374830563790953250860457190006632725887084027922922110834486240973537546144974503238460553590333269089766699302273837395986150906455083232744935654309436639960964534355775457673493419989053176293091658649628588084098215465395279656801903938119791848220385722823482752625426454301565229002802843068927891563951633630461797531370907562264879508872015669517640614447240142722115495674610663371550504689709582341561298103063184951967694096815319211453893860215666870829976895019444010057595511749171656100748988182720511356965650435416490180517342087805065399977274103058851960335670608476290136698329418092065386449130316886231463814914126046517468030663968034447931327245606672381316331036263509112202982865588349914763850114358822616390699840992173588535440131571170116210986166981570707058207985693980641764593263591144450702038996499243490645275240286641489749287326120849934660264243030958426577392009966482574446139248589308953733814108676830108687365996154993950235674093878340914446733716828674562442654016701426339550573951836683852132356127212598541197684907551401331158925092629372538309911282212504375969404394288091850758545367342636997494454140869611549802464473322977842287457238819625961174053926745553495178831625017763881508922362766089667528957423660951042708630744554231710061207827623337037561786746987105254048671475018901146280755046206463876021784859415885673208576545904547596956919272102892920818229584187458987535827447896167100482743568632594744336498503750101286338434701183823355815599981403150452844969639716801887764859531169575700207295013963199586579963654049308996154701017887294007746914934235829400184959301324896048698577868583519850145012246549939102818437910470294822872304884274459171187830597145970144032988359587213906502368125720857836510207004873818858246917204312819412769222956388831296120328241510433237735144308136552820335949807670735098708159126388900151488440372998026384877221203654156042843789829841385508931089822468160880226708017297653836539503008009244636026419333579246391334094003748150146627504559149225762338384303330783165711110888964355301643168634139788345612433960373572851004610140620626350856742337065009290132360720693452772318833232232318045686061101053568357930595147553826201604440145012653194990257757243750305158726929033673066972894841834498043588694199357072824414694556166346263575380594055608657418324330793553578873382758470132744492995216692554106775425648789037439640940843148022612312781520395864263628160790505288761520586292281595308063197206951817728795754272994099825232898954148139945292171202067375114340861489872577201991690357537295405512343736706050561567093250868206650859657978554151296681594846983583080143815353859013035227805829382861565903818027432889805162876925508658401540360053521825418689476278159395313604343879169420187017988830380779252588923666621282134514538197446370321572214749361263616829539756671331950748282021652544248602134507481632347631018026434689823909493369377064679711905539281449677837366929964795337003041014682640099980958764964692481734866376768576431220293790927650230873449113145050542167621435306476415160765004900516256725415363587943735323844005088850072215874600889372515859466069013718185482701434490533256433982692079638024994124432972161816583376780455175763050827542831323724750331599063866383934076661461443881574991587621480852693248173005060428965982153372917834684356537034124568636780219847146487082294272074160826157006228481723006863623490914882208875634993832987937339550346240126088260666353072807515645402714807218281294249257383941831429873988649111368553056886596069730464169889882120012579311947370385911623383539080743963874330620068888902305521738152963818450973248089280929448067978281436441596822629569017056792762470362064601337772036503099958774385392685144484879740608258100573199599719250476300769429677884333906050581820483868577142684493264969130285747012153036764680551518295525395682673926293750008329072318575339454821767011798268196710253213362590547937849877516085310107000427036353620515196833879153553929699313659135929657079151834307326789615043555996743384268293044081586679316430738085419410639263182066699836495224755633284637252996699634296738281977614542281564513875680962752787423538845539532153792731834303755012845069255369985991043091393063521661555308173604987366103733140155453554234686936743602683219444353244277949476877477309176039256320034360587613768259240360290495964237836489900919648816510533855612878529337386251813941536046265338476297973890542880723299842162245285291924433167168074990291376441767977596635912883881767461843683033467409782955777633025176680159826925430088337161264303121477686376639481118902516777829290331999972295200999012203114798229650594879663438170572408910633014911453672583857188426527853609506517309708721234462617117378732143423589621747196564304254781856539394264636810874337301872193234181074451727821460742344119949466557595961600580365672711500372104142797054677355466831017184578376751644703388136958500823566179779890966002879544817811396952869582662175151366501159967182103651060592926432747043266624555418025004456089694105782663384351066641943327284309299404341128751132399208207382074622960962770458841087317166514481272134584300831312947327382935118791584729014836255736422926704730753402412310751505424329184867529657709572590112257543366207592825252618267440473712741060707893964633220756912400393254705686467755190143182371055937211940701840434019614465391775253174344428627438910782592380645686985261286636142588926076718449166946541059474428992174085172050824146070824017701750194569055606664821789723254441093728947919532430337154308493577689467155617979542226565498367433047054283364464143656757661069217227714869487239508705142486489855074529833097118892034949244686236919317491064681759126856515286243147330062006642179307716024424477341017529209084562061347478494965487199047085748611279316180382244250994258578568888515122881071095790914288083620334053453014883640268261230817831745395781952757582348911943401545113398265105283522888153427968155751801546363989948508054121701558219957559660003923022700069381630145072328880597584389693079108512287470364168327074985311723459354579857194943105296136520416950066558117679357852385130141276128823974103552376844637866509187037796042828661762810960758845624947528582730879588183483315683154900818063958078007335590442117619129018498611526638164381368971526122529417975061167000284927475012678856442569318123366922005948016044415958723546103420460123406279648522926495990949874645878074197206304813255880242624112611117702578988295718604963484900803145254189278536623879855499117602220173461051427903533201264655352589923045330455251244666883749681521177526408143906553228130663665316140975768063542545584615814172877712257150495051369210387750769772649387726096373192979674673429251908500699679782382523513319337074188425507673142656327426704352966007757714893128680179067149327888329527414401998106359907026811409354108010782225230624561300578398746701723067311356690551433387134247033620572113108576836809287903985993094263487091862784338981211331577244821125821207603882628273182564513469090184756659069232101664951331502709818684698344712046123193112550223503155349622103202017869615194857648459307898753180670230149977067717457160981620921277933050710101985982053881938755619830052889619039723333093753587663396042479511963260826864215029291637828581770502608179488323037953521569299625569088405643398912159481692863622574512514922532309662031793333835820760443942025936742358073804632267164149100092012698378923397730814675259806506919578774878745290141879429629767128415059804584278423633519468493639005666778271777575020185353237079380979099495633243259146284817996966700616824262230790936914945075459259431003860093150076541508338131542267778445498548831578797996019197899693424992048760301673199915072223354333732525188041639872865894267280034334507793859889432727765443128208668013905105401663266980921863449278492227085560487243342286769365896158611253093482303104042763287950730798511009824089668936841509581682697954962550438224355555186180958924692090039603536687919510952146388283889688504519913560109792103398521883476279473434739774173087293405517786542064198438049020798388578816403590981658488667479888075917006809918873469787391371600444879639264170441639988138097448871886767020162835143052011793848234868015148727625195767430805740127989567676031828345106419595674854840490028843358134324850574135247884123265789145065534385420016096275913851781738398556459403800411273152086269692757078156962050792728637344000384287543371814744662970434754676422215923362795682971720646935204893392575273360013665142272759964778053107666738247982463180027307776322484707221106986644148710597000119534780737331168439724151028309124354181563570969113839617770284830043702222474834632269169057142629109513920001033774325398176903806468492172225334901590965086310349888442255816801518556177650896987265330890789394625359061787600524349460077568606503055111333337416183998543280418876444885581405487872473478855414295330302933383048352521595225118063640528227710571538434496470963533762820827331774348655493680250003302765803267871581920875510550888920142577331307933564294953052103971627558133794291759922358131581202043809621208271476749730682705893652641388935389830204635153703326868343332215814166671614412460363055315241243801147530725522028989999609570706509524009996668273520490258467146567743583923962329471188196100035595244040267506014067173693178730272975857240328245892161918455299042012994159265002013902866275308078045801971250165097372665761848341656497308156963278338663308871863159214602440950419709916993709901348100097468225080152105316458381269655621721127226543820018985069490259330084522891586286211587117568529423243891281935846917725183544254341155491273932672488361013709112502316204425306604089440021243337536521334537011510002516269591723057844977555865642024641622719450017150444052017312761941451534324783246211837708081444109431803693894518615074168941377038691021891243486912333354275524981895808420912714007531577460532239445841210722769465384304051140983214482422735352368236060180316731340187881224924806467711511414934077879631795866875127318944157018156003631438564688433894505692262879033116573856599796110339001984481119792656829916071402844064615442734730727356617977066181406257697159046843677906408075586273830900266889017296291926808428537244329224855960604370604310996070207470954184377567605839792482609402839479124081856583873279692076456441058655402079871076593433289918823995776297285129408685857197555299876848969354103904942035634964424306306636070229975542357985880637926718914824290300989285825048098413431188209429457123582115797280249363970701789212023675368751851876971051161901582559252867323947446482467003896180637583034053551722380309167166722588912204658972256380443586407715675961854526071738290904834083563560115750043146794551201749081303917762358252784202612938366118411315561020676979823593897998175082684345156087048588725209061584084095196564649367507456794570590655971104354753119880009156872405923811839303117551493658360435043568101078367175400230283943740101517658493197626417172080302728122557393919334912754472535292310712393802728933100793304059319366904030668025057925743601349190432735789859636536041702104217167576213514735499820375642503619541687323781048328481678662806065396192035620967807684584180098776193948965103153181696252938729564367534793957122405170033634051602771470559045788515626497500382475637569546396868961371960177862158887312899321872814523983373471903129581419421504790751859957205648468526379551576371375243373208524921556948640747363822570578487102893782566562290783599495290199821867699064578183954242230295144404102186995046772802357036436870888918351063606462171432308569143264088520788561388857356588175103313196261357869561274543026478630145005392159545148056340383599583598946555302641993985840848058164973243711160202484671031430812751034873897998672626879577529719342786473752427398199072337312994935576199929741501715929720823610888469742765963163887105127568312338483664915368182318009348275761438468816673976069829602044875609811526876926791465890296481850672774968867047340423850330533525803279342496873223571264336486616634062992025494670599166245184292685929315366618387564695539239579665229970646356501312911337577114292481689126794764079256191794713261568592988020710150246951314428520312461371749727831504309933086818869851911779492732888910913977706555394460502900452384662893613587074090520145646876903894091540117393313443010011223954189017932182924197970575418498052101936838324937124004389740672870844499598802766719791079119800484171889031861047950464372419077502924010742569753085065871157582089545081069861426716831793710377634533270897199975036568455705941667420613025735004515662844658394594281139757213902305440298619724076446397037956776033672750790554941482175081610761217426882148890888786236660508378849653066897026915523435942807982091283111466165059794117645796472091066780669548337252249396239550947205972294446882959970747299428775464604935935191609902822765954618966125950995541208940859455152300768314427070432157774140080288800500070536215345194454555466391121353008733636602436253454460748965142490750165435181951107565299819265051230488263778692722288527785890886865290785896929499407497023597247153731161501985961009650417483271329231165717558647892456655178470698913586461368860646816096707899490256388871656099569608277788437274375985209464326390175302060811151269139190250851400088204688445949533761741343906338342254969872410004489693765807708490661137601812762847667213920533828272241849211202647454415582804076227986801868216410286783114873021612333597072210888830275998335944846658856749993129359903821779295048948148105834534275722147968993971080732930693246052029698618189161873969171538807177378755466183861897688232579472688772186966064670579900765939671513033583699563446241859326434157011973238267957208292484200195016392749530265216858625165789555035995962905481932282311842238343079282328872763926186168423797505697438298029177715670309389603707465432478292594896404549788220282844565312598080496700639488789536729479796555045255299254530994109980898763184097558432620297905639827976449882122148821099791816546417428511651913495378704304584473785317373211308602458974730218349954563710134982737704830344892224440550087307083123133597950870641239675872215922945201888385410459454235213427860547311852800743596904546129681380665888901791627039550942221937411654556009216133529423146854719775684024856221053692945392664281577543406968076155633803568482672804006806096134050583009373053085950457158055721988787660990037754770463631142984063906245349320989873184369627469359367605940423886945943914864892253219575689064085843981372143807131465649515847323318759995690073973684604978780873040557034883816580823906335920200679007562111558287474251911935503945089190183349129596872071909257883085564094470019205339141454027934030641698063611045340449577062362724640002273132475315590850398669948508739373320789513391767642272705222163475221131213536659731054555689609338159343103355584152853332902731948787935445987739518113338305753883261020680993844460464944249664744456972708309419912457265117498994922412108955444345195788539365032917249515625951740142959779909995741540299786362830692899950903840139785088810469887162788305856692254171363497222548493351387109107914651032488494567508368720651467203017458642911296114111413418719016446933790859358069186951794614011469770077287673439688644413336814572895678646396214497917828967682302889718307421283341060286212326496931117057680142206749500532383447093126080577825497203852436549967764601886520724235011475600181228348067173831678442570889771962548301067837815452213241824551900451131028314466381836611590769018194751744241564986073750859574284318612756730917580560912478162889805395069183657251309674265034105722456300213834464920538516649451040244171014558143802120689097739404465647331726772709931851175507909659542416643336762226323190001140308869326761048610256780634530335774261182669420325388412126557781642887708440105297949411653512548812460679411970591799816184514370409909349507831209525491849895518827518193453012921680102510527505398778804564023146067008887333420360457253555498486923963788077765331337131273766685856037076964237090014119557982424099964059956438463706053720193900807569726877480306245510042308235818922178497714924298321572722248898517740083303875711745452608684942861392065020740898420852698485753170493577239124482431926703397454893901230265186859105366460039784795130472418654810971614803608554733214952109689496390527663650433551015924062101193946334432005903039721646950506630814672885164260471204165377203359730875741487225032389969951811674333306027276160236818836636702352601208215087087673616703200127917812343250120930668875914140142708307226253038318882691668749956535296476022079954006395063990497929729918148864851804664143509816556606191704480303707874910669678970298838592777360411976375968529902626285193963377639372910601877520665975588925348780705228697674250632467224190875223540163814322047457818420087984194825614390162225653697334433435863942223154953055137434876226984267490055160039150654362513154068610674337937778967369205820668811207563924329175954665151339344603074161770359396689832814784768738281919520810526043823325823780977930868347040409603324780377664117039707823593017382314532087171465670328832016657987222455858969781919542006387763413963446975010605969019309686844041979472944687223287423364662952683704316880206082634514891894113938221834856094890001016468754505096226652045767404394239975524825482668208673455601824757655598939911730718302660577952492590713229435065838483676831166248158630127618980324899337960875206405662026985900501587560663084653920634710644801654813937965572886446620469117518476484551361797001070035688591358362629494116334254464438126840954214085301074646932139386266753399774413951859015436226697047727449678969188457540078277455563300426172278145252970374394184053230951471303202080823013118591350742235582878364842313515459302648314977867191616901314118048607639630708362358044701647341246878580928043739763351668987224985196049073910172402446762995361549893841606296696994074036190653402974119074388357503384109316633721241080977161096068522082532875346407324261220763873159596861806146898863980040338939346390276710712416775370783161070599725989641610047220999160645598659570302176118231270314527825843083046769686142689363410210603399657925973714111290923371828126022467205634009941755218525538832251985385270851970847157686845724472400336718689177196954944451289085766385288010797823228552663343475241669815433127904350012548905123148239285014361534886197270242572472114378963736927217336701104517092578161222352913957828574828332754748079256550890113729200886474169732249063189979198805671334494251994218172364120513067104011419985998369210041278484044665526784747800033603772411386863622570854580502175748911699535231442109428709903158794576497222903920014698482078800039471820277256568414654371271199700628280854113675895327203539856388300652913290520673689073974679974737005311428522579277990449634523609211444165705101793939098103168736738543403761189078982592359026075075455286319729094283581629872194515268115006014014030535123659497998014490841607320884974277298818576266230102024675809691443840646353574871588172522395737275817832037265013495224518690943135772807709401126141951235526424554499991262301395464518333208809315299032555470998162851176749430173343257993369123209747376454545926061525051243275064886197508123774771517840270651246372645376774737154139971176578677656318798629598300204902114854215658126690060743486320859010228000153560019979816638282143737335972137135143765476730870801234370124687787997016738527022626150479471450205387324176179934698298004069391107698630492693702159980761278086196816736115251596563642474272477239699579247893655367710639570772464936875863790356606894385500529409545244156505758428296837546253361046101064063325101709392998398218777737737889935534739137118174749370830912205891579401917336902608289070152831894926008837511488121926063507439637923738033333227040332907058231490002578493556176341725367541098659818236436208929378559942932255213303638516056808893903684192812458552241855279036102205565262802214137089768174579581917448710843485929944624243060366920768999956721108729770219723091769417168880099535793738354803144943943652848739358010210245443195918763256208494696043440882744643046142910507929746944249274867486306280697123966534446247688816573914952137144538403563274044180746364369979808377137718543812492976780563513488413799508941554972306166832443301691310087019562072250718632803715833419372481019302884875054233823923780176684749260591594764042144710365324605361879205671397145680103377999771850657443012148944075810356547863803864256378527690861369465709343018267120000865773353350583840047274177986268608933194065406053411817259989487437072689236704463120959772932959010910279969773232725645481856306618443654560031503245019335585377376390312596574983696139433025775592146281537206995193587614936876213128151291758225868098864489650408318377191681890503128422069848641996382030941430567813160254815383852714972570573710994474228694835811186503002208569053711274662006385078696633289898558039859425374010646847832277768315154225892810605965169837852208440043281183972740435309335326988357060759263004079897185738659665578327148255109723701650473959469301740576157751688942637582960727951128058796331794345710260722169752771767111981269423459826514290376793846550452168656216879684511883962948274598021471785886301115958580010224163842000620531240443900026806694583702756369744609804536173475943864403408582414213517593739506502466394571559069879906061277978066094721074925720877715517412210724071470777474699843206406645326204017874418589289874725202095310004941864903415404912859564404033060118718876145405277387821811322399132008329094709683785118693174719718900101281482106898869256273727340615265294341814413824362496448500911004436952675643368110339036151735532454374336340614748268774286911642831432284802147328505391757648306380111021364338056699422101888409638976460696024848465945602758876195399852334147554127214422651074994499474076078007003552830662976379139642344839273303108601992106500500850011263043113339465337961055544938193214505942456368108824400594616198836861905275355154186016998771952428834656819885968202148709815516821365798190029985863337280188652794355519334724875622020606677398842119603712323340253822364233599401019479553622190266778229587272829475851770479759592449399930620334025422593357629567444248012024699505586158257375943797481014285762413416385865238165411119285341273909164175322299432622706152364480380152551676890695193666677353776095322241694844881925620308087364723372230528050620569263170612164968536279422085365289402924744226636317793915360127323621140570054573519673128051996290348344572381898276556992485801726478970602826257537606113808978605571092956747181988499650194927073376230312523688641562675237945756379689858104322359455936182197315732716908693964736831561706539194883647815715446562980314597245992371579732674501108376713739239526004482917576934909065927953129017862506382370298552444933524961982767821641931881538920247910958526534435596207601575825840260486553660982342920444299004410439254922282787382520509704164184922581426623302571227449433531017987393663117158607154058153023434768955669233963294990426328774432033136630098153628631811315642076629993995440358903387415292546558732036301465848282490946719793878855086814293468249581484515477332975467062079367690361327823974052566707482730825829863289499647332880486059987120950928573481006410922424231099871701351314366146626458591358620703859199189951869650472577264658492184486591029669126254933066611351897602693967023002118599165300217591864932992054801014359522045528411676626229942338845872835834656093001148751860744790941674363469583285893605066327672634165457591901685861239903879385635182224537198937240930167668663587584813394125671695547455446567183418371291759163390518217603572954625684851412374198859874132816543200666855393500624424418034613841428178031930962338614124378639751390146783787144242701751004835050116324189755799986217063471866753078445731208154926163378559138876105591460478420210778195599753899322193130273899053606610648116896782738663090997688139197769677264916927187482193657674263358212752662297182936529543291833478204678284428467889882644375019469903900337127897439282573509751146056084793307676256511584416402006787166793633701478162069368285052220781258822389751802954409548659551215193930198817652308178795745151107928606110446657143951707585273720778475139100502813182531152594395702349750351960952201722009395946018983149588405147239998160762706164613590825731285718265281483931233035053005872801421870050054569709060626752701882641943246966235635457791817569986437523396209923452855496888822971641559481520838472421042417700611864832546623735608776559700048079934146777258624035032099582920434976123584002532499110528880931047438741319805501992822269330982963757065765837158158217076995374836359580557000734597500848823372368303368360157675798881814824129162927503833566116239947828242815580795693662502282180546271825342821744655393743477656149510069136407526264910196518643654233429580992910673304341160038290219592181640126136170806026920530015805253822273169251505121057678802999223349425031252339322383571347431458670639888627913084801656511911476000195556730060959930037732338736816215921202590876772694536779361532594641530346019715892393663257528975136042139888515822455712180604840108492801605201333838938930570027422394728783990581745114644030558211602670257502244712167846389394995727209293295813853032444998637554109981798731747267561551789896715486026728582939526069111399855597555006781624030139874298342738158370980346538647737419596243787943116003366695763292261714734105670214057550910512035194303180320680288003774075412212146403826904587776401946316046908597613063331099380163178118447717405810001073086895592840481971224829723205269204361308006147237245299897768816047681468327025635175630486111859891178460828587427306178315341054917801634805211425147162520901242742167981717961870352217938045668804971304055195434164181930889780974310836187346432380456655609863798045793466907899131228258650729730528844628585984795797165079150354547988287629778161973139468164351911799458397400043209933799240272356423324015908436287406267539465983692935710313691832665429064498585765382924577634802639396585413784418606378221753005708688748576066884755549106026326581531942647356836314210211408173240917714449109283767969479052036376789197313257492802304420002210791756348563641601810228755103919264954266330447030836837833993864788277803893977782820633499667796313180677610633173710445478039986759579829024073386936563046024186858430477204233654685678813278190197470066289808762026831402512850353062852965282115333897136972000763865038660080450799145798166084995095483540777191111601475865754028905417150141333153690275732483938138681333902270779387552848112261336113536097737207218972794742929269048511717934125431081573789259138619128155680371271997014852190937699673371341254531813077518136339528207755464075075049114638880254418788797804434794203254759016562373653199578926064608471379435819730360922187767573530102797564624603453627636991935664129045837794930572316610397809943347621574225430370987487083403188113852455270998238967038062377603382432877506500205120855410931660551399948991776778349746391658593053439537362578012076375592559376778926479135062908616250391522041615712920445711044497573070435675891096813969396519705370011747354084429335042817785374630588550362659330983338876908221711933496389075660232885002975214040134223295227798640582685276869791427357086028391101640375178211510555857008712112681873406968684851983700644335791631047585795575166723348758841006696199021890445398028096041315616406975429649083678831226372226997185448611755308690323160815854582155173521898707000933042717403025316435812666019947580622184008392239953704684407771532146891772957367595639339714408966208777087314755954768092095691753727097821835569328614230371326679742377723455960634018537237766088373759094735957117204977638606506332478496321276906251214256178150308468700680338565977204079024191288561085633354754938665475023634161743538431497558026921425220244935375133264665519082416048533888491204429399671815653265895995077574384333418087123946414836742854485305130208887404841504218567541910683796450170564777480731929333261795816231973093420706799732012992563935905765433111437583197928551423009901941991314249377025504557852521126268263495748595247902154576893426689408078403987969302552690137165704957513964934117264773120773037880950697980162109977332137375966368763466378592644647514883770816855902120773431004845448070560409190218423421099526012258626373941912776107905865072833915660038053635813946341177293182850410031446254065035217202078185281093934038467486322641354047331873294604418260345786603055457293501382849752067555369291512758062224632247480126645417272927155227050356143828139708370748178858195493349808379492716651530422464887123463383456940984395813792481794334476325858897375569004178053806999703003333433961730947156261170168803620664115592178318904314617297853665327955305587850814910557466264342965937550167410641954305940143325557687627719508360986971429023653847884320650327367998248060302203956970205369958971945621473992123776246066639950656377878938136245109561617673685981547111097943723260874799431392627195710749446806200078274867543865459609216975147594968241957348958026903171668433189751652668485535376397968619127216689810659845000757104199621208072330676790497801120783990035418120028479338891469537347587791382817190453377647325510783268830259858108410158277843444200406764545067378870057222349016413109376363545888799536951349008633838634353330998569742359402994274778357874636271160759908097988107726321712087731071189160042783906076458738026819454777024453172102903441602246686777713085969998893534835318211155807799236385540819468134733624210298227270481836358889014772846935817506227030575056945068650704521852454054683543714706115352126362046300937859672749447692671283545310321818214549204236608382674974505556903263844676367827268709676949982993141613829657568241942280913603187982645485897690541673968232611201796999755397281494326184460270440213329704649369873808554510667762172831732669682695158656970534815444798353809059879326599350479468182414892855015385874949085610797050829771996598092210141985165757314356850433961085327174821779561797676965727237307737398999214034436018656070665419658686504648568202618230406347126923714987024618905881832262791398561915495270821605930628219576010525887912645442131763939982592365002569619428962393543129994047361075386905258181287423300969494149265981238775940149959116979551990784478669443929676504968399689621582739103045057854683938656793666646620372010819868782100491256926911129068105357803648176301093974436460832736766621457760543689473796843776043260260106940699530111948438576853910956075655413070703566686787126948105316356607930738253978630854312324098257464827495218089058030621298161032825813787360883617646007079573462038852661476524090971418576449829106861700084884294375232364610852913343135555761916033712023920352702150933400893116230661468944386733660766800786960690433852634159379158817754813597125870162513302741803714076469102779876594239126562312411269444673595484866048617424566760718958464253779358704523307058619304130370648926604779560436795942620350280931387316886950769168127219553907812864787926788275315131253330146504301285561748885621009683608321881945684298156294501305416649286824197025227083048357437105744616423620703212409451014636232231561185429609350204773455436779540527988048205473549079316487409989547515650150921506458923450330949189276061575101763666853681325593493655213762039711151487280349966548902089784248295145724551034602004713278649932652156986510550386990481464189823399550791135734561118903349219754647921910867247157151366879245130684962827520763622353462892579130059772323471126781225010465870940484693697817360929401959512674289686496600936716623967345514733920362643405381949106754251970285061212493548857552235664351253375760101215685915014674996661519824106947592803814364180445448514367500674401240987954678604746281718216780354272846883442026839445020464209231768011771981211370653198508972537034143727829780820187088614968158861775722699027389742797558928184420957662129464536842415288499169912458742736370302948523777686914040153391471816586863873477234630825145258752639646337120144913591708586163010015579633977509456365248003567164479648194014823773215942349725184517484149397861135210661852890811258946517735361713893225580997058311291704326157888663266378601848318885109904729577320593156431341548444761822200410056131457743991840354283513212763693950997349039378966521024372747425457485009291832474618198435508382888625922317894914529068251030962553046286858024250366211967596015115163976803267005801136240180933643828025042634200159235762275922576564035917022843742591005124284593099582186935950462874090899215776225557749502597902884360880215940731445515310616935132560414718949069481107070460091429380890650071770163771528019110230280761561402488533083892394945921170789499485823333539908886459977711849577835785492391494526009585356825218755629293657382997067258491022988814928889028969942060584055321963484489149230323884393341261587308743799798264283950287729867628776494504412737354305385915356180219963223798599890865676365603491930538531104056000577041014045496503473610397279232876985869249340051807149784769179861083428307092307196209352009074811296925482190917828908029578563130291524313264620910701426697578093525678514718808742012530015944845568090867549095986980612510623332658650556670116469952427458451186864090868012783257913570503229604432300513385687182190316056223671651933152750419632890721060238874971145016396188643666516623364657619340936142809164151905119665579520335805338904861381685081902597979302476304063549764460611901776815975168567559519859162125889107209353439337015555261061915402066616366163426081159869296459689538197717546032273666239206825142934476862058790063139685982974545280157589657808192730218202298266967209580484799410137527944521383688206629397615959457942545418363905365786446974166325456411633871449887397935926948014151434001117543704077509612600764822768781753435879368783759972978198465832788279338473022829419482252082727296030729912663405382976394397016530687739757111782689598035459583402969128009225241830392521832375246059626173212006112325380719899647906545272358143326681352093090412376354576825235626348430202470055229681672068343024728170554195016753259622369115540293499898893670284195500212226241368600471016483156625156052824720545274783126405223422617657547771913027239134047635126645779798584673751958834663864037617504102541627806022433511597844470476293004976932201584077248930225675303975200901540477216260756366071679312881803605876142805363922968437160245637303365930610461558144539186104535502631636111258692318060720980579315450722839768886526282949074323011726329817794706776251675467768805799740425676815029238274620564103027213466919524801754475707188757223586896865345227908970500640703363865221255361930019137188336795814240891138178720611890257375375823212417681613534291645439286911637531739817062861124311375837648191077067685503675885451883654923382626287650488436617105383908703697038186970310302591368915271256783866369980336326045500009302302122502510715647694556557793804110644427809006879183829929670019241994061680171320122798295289373127055254852828809557525588249858471340300526893518277391315003103389754547893859510302212815158423100068538294954944413306306024083012593850341393861262484184355049744031763464875666770458538567112687564269175087413947362355190392128080100188341883941274653970429753367630569048495568864516365784307819654852157688179996262793186521059538477131467502815097828544974029341286219059365600473720751951640142768244383595793047162820804654047173976369750268537948841084557526734005468245452391842166922575037776963725037902505219806400009430478384730352696878137020158640070391340857105698630161339456214815956853544863815772247968525278668586222681914207295286273460950092482566764521287946699913206331332530004462623330004770866815200835685598839837381302762933191768590870562616238605656936862221253662130720096074188117678765932584743631787506838029459743162681081447706289363805824752070102923278684206827350389999967235023751528534522043896002619782743612308673125530258560798166559887460170496785713798738052785081192620576879747384654772474318298223570414883636931603084463569642105611366723632327671008120384200985760494552746005484186932284094107497640597284050598731967375290530003436809354133010630945633848497971182322519404953968389747288266748508069595786486890599127057120414888720892899462643777060347268439313507413625623453397830960258992778214268319293918243263507889799073592305080333006141827056517430510552338178818843193210060192585989403480681801628861227484642276747991480069131686129240924865440248108970013092296810585551565488414012937656303429628025877076879872764020864516895992317464636306534647731521319317774245616285482553375168525876062775464014926812918741010172822811770125971664463715821586610745149582008041360244344476100890253904775357649435715198390041480373074027769240260439254268123770741580220665403135314402508415219769285989593999206581215166699805384267799488555192856117454038696008372116132124672637556625325886528717466944702387888876580923430195021130734531484522171747485261316720829300712891504682439658688379039984167741666324874461571427080510156679578350341869829129053142795663770357458258302624805621106454135418673481290629887561816505351749074988140946676843546549774606736461383599988033922977737865106003957491842633505865023562359399315773218790159255103817055337750706460143656071811695952059737520549054655259288773696039615141880539655177546937916577142853392053336179051653630669419514684805420855984100890559432365999600095659017484086501763960694746570607954187576001849716563125983839746242133290584156433171247005125120240482062282451989611167625990768866663198723912388484287133902039007471898344528394411127995187456575953237019198686904400678562050294690168247961600775251897046770981454685983004959720939147183483446402181023184201485938655089576231995903089634921198548047251604190881881672794865299227765830647221981558972281277886906859859060271963295862095838872092609746411466193680159654973359434943869727023175019853046906185497891296944926071148322393800712613941352867382787206201468781773874443549280576728102622636331998979173751295899302144979050783225979729462740099984084156135593670495431887423130081612749786496702783058231456900624151513958688888138320799449415454528244565838346981667259788397105218474386515583339683685551903655818859086479004486419053988591237678636648572172599274985618581046131025699089966677948357750291808368458803120077951595841545000535103044513291216043312663045101021105949719240100034714815931765612965428639504387551647347294961943597582510130173864103167269210486026711216826775176918729937762108018904065282804975789876492315248189228748471794106962445963435081478835789825244823138533065967481312385135856968397386285769148350264715063839045783859070543611868947998743918491681000868581700628176944769700969316826137859793805017181960123571685638627107351928543997955319639506929384105738621177042833594184566246724305907004696894271473827743054755761192741561256657225538695939532402976744117918966395531880388181688989107942363664566243459436220327719107298401260381049770441087231498414067762661017697928132430867191405126450275932095832918856126344235737533588922873157110949029578822399946286677422837790917721409738434736442593432041587886104687088116111147264123224856808098831514936277805063088186869024544994560657261467507883018885703470543107548786598902759677158854124293365661847775594323979003146737741559693390356192233008132114294397380135575367806272006665575924929886043835537819286003769809001014613475817292180381560713870472090431242822430964677223071111825571217895618357517096730285110577947726866525109779041492069911603307573117913160781164342187872888627517830601991494817281021896590265959389608036723462973650894653989051879258854128873636831756128162647392550972156613085620471034057881550528566385565859021223723715629320356091695129382802190504732942590376378554809114545833239762806883970969697068618456811448773704967499217165516719706465043294692370176550364741180109735120561110551576109325640127692515117833740909633961354748787514883186600338935297602946300943665087922773664969995537944281843048767052204695089536600054333574412330025097316027617928977231313620508891069827516308520278394844163238793871113487141811364415713241638445581353117082380681879504422489281592882975066232299238424657583653399135105328384734848412633045432801244506690865805268963720267669725652458866951430263430749622243237158526251972268410837141472718068068606590474736241996593233451945402719686335427415049028666041167716734470319613109546559694847948502790392562487562735889886061546669173772886284871998212710818899117167634787260052172700134028132140706488705528783942696612476937540149355548903090206712037215043958640588939471695419265173676829598622891894060869446454367664013295763651488901531444146411501779225213094648296367358707285666172017541156679230986234816806320092697374099964754661420738828692877028376323955955004459067534380233385198742745166870712277970863671514474574271625101541851617350812634236498881458450791633905383277330094889186033332718271507589902959064553611952255673958135605706465228437621714268119315018094617942522393419817363195356592459823258143233865549653821867134300042211666058486011006743774054351640964278683544165039742633453572213621449310900644410446876925970676911000457221401145172382121187968713205182978882992567602901670084329866470716668452285788323643686730543815068413332589897052578715707684324495322315073861009918072231111822889052911637491387506568374026727586649198966572360647680645950246353054219794468183743946673436134074458859294053657798034905351676908706709092459877808916374516929541230403984757180801014681209899740065128837966354843186316052067010083039872526801036044194294304916004895773966766772911446529023875631670661722140813061172628641251030772782689043656833751286003457797794650529351667634177616233047457142839289645745832847793993526951187807113632794276995572065039874141235823541571341522802060961014211802652156219922206709655071329931190815781072061983246932156054350585385277270641771794483824374945337796409125330640981113296766946426064699170817098186417135683492269449553528579034864764766392960436043956868727148286841606953355658816928315530288577218055977236865404891743757922638719812178110984628303506200003248750825033506822890767146660988451326695980485746162297698008778473294716451747133753060776739970560943720013829007506717376450113922297009982925098571510039280419092079019675292659665754959131102229724636548306163344250282291739443282191380344660047317480214858193840341415471952174041740589945617336934431344239781386885498048748053518306262300390758224818313281357739395517937075060022039204565384470043572209325650892018238204000079996637042130309042952834086405448621040848542026599068644544258404749689905309892719063295908176586799129420315329276518305582151715907735155763585972877365611046354913229563503055286452741659565194655896939369186363754001014609799846556774397583863855666501894423034832470063274424365305532867315860783638177806889403546042884012228368136724504782446201523461994300731277893362313014489189788823339614316121390328102573139614241481675915053400524766862861080305408518262870858272175189546139110258935617076502362244605432122566056975216464482965370607418511218155966724663040391115379723901683687653831468345539798789877332592646648519872066324577052797113629324134342420629959520335336412711787009013344904095420920315252985530610261147806284499519811878534267282665435108149287537329068942657298899534998229627726542019123116422536054992811218170111621490776431571963847834505580319507729478243255067089567453228916543777632441044562713294013936072778207757398957271135333055120977544723245463223490993852681167431352478131478279145076787680246122217475376812657518879746843029728533161801566946827521728679238528411347355187994500367730095344033591685680773351393590241355911442601765630129461048698403199783047257011027780811746663636604946360096243400314433883943160718206267567469468534034643163665038578492457717251165654473755790413377971292929314557022665302535696562302953974602627154659147830724303326770086628277145744185933640185373655706672333234143011287763174609012055705331895780868495748679487810898794206241809136818038070170037190359989766043489427203977630623807666539673875582031613257591617930447960007716509084375052189999567540169773926018945181047963819665121506662492991977433934407690539547155124155516755536613560942814237126788289844458667363428955277049093541317759692524893619127723720994525798911152032505644175710790034188227999803079401740663438625422683017259574065024787666310792439761509237907076747948284866479740464880511482464768511843521790421095516332306437540246898527259534276964755636217046839615210124598429826717538957231061891522569135537710453195433993275217757483054729517090140180938501681940938555794214540947129497094354834962071068389292580646360020862322998967132607215459189234998064494053593437335661107929563627928310690778246245002861037765392656419358689449015209468436268886109634514343428427228485936348161612762558920344639774616445245300917089340575999181428377608720225893735369196255385544366878751533377069193764638620975437171845576134956382431849070661204031337027481607278223178005611530756640392514866828798102895561590052825929567866334372057001428163885598156304478384240755429376152904157260565809060445019507082871745590289173854107362835939561794663144625097140733024403498077437338752733074826027412028177227974989540300601204349820045687311573315798385587686684254379889777065388281057546909985494824290943429729747410324950423206506933215263341783567684342246601164491117277324611922438923349051946731200375649292823853967310338050102265579499488138132494564174710933645624019164158527356956376824657817726391515057368974252041809337856244626337264117405416473953428985252751692975996199047879768403802731919081262111387883542016502779325962080756787847966806159957725093174024254473221745547405871075292081428730684273000290274741377713959971177526624806434337073226359896779144957909441353735391198792469715678139973907395308652875315259121758364214242826133928078518776656458338447734871004463115150369036313560083201823199113944895228649138552299607180934045975203293287227079028869702795743910401289602248235681229289814964167731695330166745533601757912485931778014591246116692646587409585603769836776142030898220785261138268590245930318182664472093077005812456294774744723964068628441561683602428413758911889551591688548966773532178957458397038601009298837678269814087193601585201452269538808523399226563959062188837127400812956183470338368405664086592509677118752730324673862501576801649790977202993998066588745200218125048712644907124065937351986027588268681565516765089699871994280716254939558150516032340031250525738217518229777149213644870105345901621962662687030007918745887445120146987954084042714718981539011593753811592020708755546135061335326838930895908907208583255532612315659300145245404219281081456889031359650049989890482415958901361001360223727030113711905982561022565526350341135798534877593558416136331205882530339634445357431514521417398780302646732458709238763564201198458777257118171978237919850211253770922838547493741776921614227982457403254473726672743623837729785801758345916753707813953419155951805138181896470351281096921693138203709560735598737899932034459225938481837311127456969441119258492398822089988766556419991315351956251891155233150301715305562550303119772258012556042888273175027416903549230328019396832423291240378971419646599854283770244283285082810422211501126886006369593637526011552117958129147003111577544853642302160296857698036003926454846838514442587796410643985897147604546770822847104864962187865719542722317069117201032628887652384610021998643476855280118470026716048538116579362067267117433677097392609926008344958065528367674460904234282476805720132896516278445572999165919231106281652207753530727582498195750289482775189346676018953232188020410060931424449830090186068571545661260282370650272684799652380534175262869508904781223400848466885317594281581599223588723691882321112885818377240389779810337795739895584658564934757315259948961694343165206542931806893777485140028896368256166211059255016023685931020794190662547548611679535768385533894427949060693444704806224197152115439347819898330550396336725969060482625095698276634022232423968901379740338752044536670658328101396461494964547409035523351566987421098485900948372642763388537219852526975350409561837440615395820623756929955866735294222109195780762819893379676059604433452212265046634612250892361879551024373301902164533152338126805865297832658154424628932815369779827757921164002714327048507795113182998004055399476853868120110835098735647722568106149956890890239381806567263197950030401865328999763700827816983017237874648540930590419580697822881377872365831914233070775355373583906484260277282498022774065072914348072623462564562381312512504531760558376470099685007713972017008648685853698506464209126664842796566221578925338218852176974339784687266411272523347873477004376727653629871428718649628901024375036581867178586046719519786399363491628229263145918497807650361875422563398749996074988467742717719827877598316296721210340260312960661522375671336479482924201901172699307529880439729372482804768821564564276973986443995899132979202209463362848308069551328089544546080894769130297590781298736361711016345609566131820411882132584664010973188801009233170946149878169614684733105104099379581951195122053371170247629244748362878243447442255382856499440962131971222860324792008993147685485424851088622309095132781695144249636516213220353265866130056145062731938285414893482763561689808985256019010952440283138138234761234941028740563820169938232850138428304701003545425997035349362463785362894596482025860930370496134733616913817486342077999547432673845724275241905702510411053839097239919214662757632760725211309387078463326764969523197042053632894261783993976431884813201696646230835920307788194312697487643044901785336382756337231017454262688894686038019391877962460943741785632151608207557660534907720762142302048846497071949418722263694500088413846974287973703143516495728325117459664011217278832425433496277736475501627988359753684326423497958211068479662109479494586420093043367566148173794104354123826611513571801863296437060215294201851870513420879313843211523601900651921507623488200664383240753798632928004794881600710456323538231126061746539453874763155637409502835440207809196605030070759954545280603305741458078487619620882268222581338747412477391038536962070982564677157038612338895103911349934275552305492743955104490028687281971508373573906992888024521980984700952718041029056851992373002075598388919089337026606391823906163242158799250976827232594293391532769309473130718897421965789215579934653254337988658963087693992093605175952722444801725922687537767699487968431216382844993353587537032637016546656672381220524251804018079514748523992135415919407546321953231659313513531124956395116397949150101568838742124729284521208976596273834141661772448120714409062018431739528429491585128920670719797211241650160923826895737637943260463695304631703014784066842139066111309158854189857465033380599234595216249810979385362033508701939499618549788942341288588386712439521275974847156320281042106370300460141047555350313096465319215800795572169952759141076701497590843468230216735390766382529707083379194221604666360688591318322180438790769202378563951808572524841704610432832859880066515388515549056336747450394212571605963614050910103544090105499036773221983868109445555495787108330908556741535824292791852220414958506564396942208345830922809342129874891075087664453812841189440320276904007931954265668361832240386499820733257510450790330383374964790538914845758941814504709797419132440355956976785132707659032707313108096663223035787491714518994393857169441539462123283080337198337245796247197088117279398093255071892554851725422109777134955164811176399419811729790335674191253830396313799159051549198257630965179897948744827579936200676550018385299056881942454825729088226977367815197930558907662267960577673146634388246079817467358023558320426694197486389141940263815894039056432202912581504342199704526824280613774705548329136127525972686592634699787488159464685390263190481809243556888376071812544721457988002537399513726311306773979878977916768589163003924891781778644121932444856346689018670510155979507930707137858282199598211412940435593377308080320821416367725264093760527571276012102009181533375292796332363930333707593044771197172468492552553638833442492452958090538600265090728867665180907643962687592630094120262445535210794313255941073552880136838798422628322094138372997069747722417633226731891998873286356309140020118575930763178796261121873965198903962252887411526930091385213902455210525220276623424080009816360379897087446634279229915941879823813545579922834522515595532381191943089106903452358818636821975610271087106947297402119918194762882929286763179601360363670076080190314224100169211040717029992292585398654296074871658795073675458929373466233353593632823883173554922732775872892213975293938432716495622120536677006507311839075654983527992849692767407771595004728769154402308911685984511134870334087128459143004367069085880271943311197294215744968384567608718440988447535599368315878769353033899630867065425596512633615294929708879847186010863519626593626606739408287292057760136087031405408664317016654263033969125349548147494521108685710049873782288905544572812129320863649195523281497244585670586439438161372918062525278374761756692329993710067700641464466825309514621275320729171832271717451754834173780955628861614130356126595240365072781427549767071400244477877835507398201962213594712214992854309265255976339156091672581743783099786287425397352198796026970286714851054375431195528108898289539062648981664607575803952376497021079706222223621155508724610553667410049157516353330158056631741003165145577719649576925458906569284312944623645841986122490056153054133542689503044327048443442973654735742183005357117378947604471888670647017783110527804180955008408115770461045892465460117786602172379892414317021926094534709326090047275085994479944420677189556353542536088259668541157947306221085872398017978681845219567130429864857442297683503844978985000925827363440945060834665315875649648788851820127925913286869672656581897265751819445089960897771467510149167707151176108838789674004332151858633394744630212366666657627093938634892209424481696097866762206593437876331780427335359809457894874295295070119206712563038500222952935447138590276414066163419881541777193135712365615873330758446864678032170897970886144619004580586298173579369174882319993833598749669292319197909475276943351928061275369312973307087595832506529307227206834506212897890960853953326504472721200170847367369459241664408152378397687151871205152058009193153648442315499269817768222693696522296692600241720268578559665321335294575236425709007497036054458682075995168823201059645865537239481197268793660535544917579881056493675497751918993473358835908637341009762561347333695922179864665318299715497618905129686452960917108681662156750470161769488955871864314967169694285327570649420647702042743800941716988516787018176361460329525219733567502094102292727939218582134852177590306056443855547670795283045440833133926242866917934565786261029717609263708419583596253338096662301206693148748652509381130601835669984136709690024918656794796006264550538059662329536452509637536987426650930623156314394519513429720443396114899951152605335176343321167768641748565329200884322675392999952822057422067787475409115716509303467512254750749429273745676393167641888749714343880454660424481744305986542298358431922164745844697752291033600948197254196865082727951391934219144606772814707090923560957009027295612569928427567431469737954201795924151155639458828183075088829214033439442014432390461280887495184220635152917605082229801934959578444283466754311537204409926466302072645896636603091768961164207505861314806892402392404997414115422097570114698223385388598223932643777520067136770830524989036472947623325565685340678685584115756535592179701247392385700713991212675499463763218247129061915882448487292917452629983789396967811399982828724636645942328618922973347668953543476499207300821611416844927516839971617796836033001050177675161273105185011163334582707930885310274121736085313380153193461813273291123382259356751900475849313958369311242170034850343427189543473422498683178221136850610345889608300576176433490422806234511644797858693721801086784850270776286365906797091367386502636595432163088187243162362026092751256722887739632054985779655169093511915468744731905601585380375797797214174077306621798677139175093478378912260675466715956520861207716192634604035822706757160047673238806006095081886155420418588072920889237323381477596259981348295973119254364325914646106784612575480128861694526211449250348553482571711860398704890217783687128049717734894712213896186524831279759012384462662334866621009299388322314481255367349083110696598458282989106092325436419932304431543403786622935361567821647032775011134471801890685345958469250986147087809649802343578567201381480491442266098245566820234186004382232569140264638820044702364282203304651678571317911934253693640057077631042258126365209346663054452854353293273791248973059398389504668043323598189964666141858452481032598081164683750007342241899495104967398728976198263975075859120095168872912583383179981225947709612489394435512249974912598173786188306871763702565044954024396029179711447775914439860429574911149343360428485558018347102286112064820692663198052677976276148682322126262348443397452640872767588440452990744250250028782100323899991815490627528328530808712253700207804484610297472301401628655345416124834276107680320810656714703215115453636234525493953169497247731854013159549203474134704642586328227785985953766878242213328667929984610268205611505247529496686880751757928224533189785803876410037578565470099174057894010801533147377637621499230454840176749946422542436362750462257330475285584643937168926913655630539001454441238941773652727524883469324084307375495516620551762389011158301348106667748160452237529413218581049140520524870046168541786716775006730781639066839274129293418649484933128389397177556836713736116285735218844325805759498546731785470374667898941350910246670597202212149010619434389403267325537631093070650915368670873946135503532785589450711702480151924479750165310803475018977319306623133925068262091381133332593185016507196342527113413364389342595595792039223449187925716299697718297183703972561569652885861260541968046523187026584708716657194301585381943483074273595367904841324751069584884044911522060767990250344141495605747709904485824437471412488625726386687010230682621237197155366174809576963788576358852069036963975696444682857331244426038932614357777769478507645221729511406052789302554268797444097170682187054467748778423603052855057973403705037208606182307888854280075054327000814762532552722090761729843068734157384178889489783202006086902877460030384367767310392225059337403953427343889170503595138932263761287383396262927489519014977717754880860776478924961254520886894881733502591406229394088782411141749684959762487543687025316901942988246960654740728486148472260258611930444236331461161735220573947189842037548715487477616846713351198797938058740599868263759911247443363857322949007534116001691236274272131381514711060069226799195027037346989303114608125505349269877208053958433850157490430588959359035159972149357977966917606593441118375058673538924815682064335398030462002417923124903837483430100161933408001293817447835229457152675102291291695095723448943132463238373112384095096879806262045089924046296011413227813451860902811934550503212613831169597131503146599635510398333738351579717875702729624063804308798331980492072995485608328327697936702747074140655352193977766644824626232335031021567662814889682456355303883304052199522599150461383254025580954433863494332764479546497241664081456226981623494623316558806598986971184944057059006713942229352938874965222876311557486636649194397767582926719456663368127140023194169444036959235075868983887218272173336198162510922495100680711522550504161990971582679134495110699053800250140952008747258561385774139939260729312462296526743509612696968550618194955366686859236468322695751550309463788799235215081710530929998306231298150179063839370445074329575633942203846530236821476237215490575149271746238910373735225518048844760684484349255181771174604967765952550803822396888855233720562776744025758866830834145360361917153633670959308697468687821730952487255634272350576273032726273334709122684106236420794880435591436631867965858839388725114890744208147955249864678479490861113805356006259931936051112928794090667201683110628367110381520823525926574349008797746221531958164373109279018324918336943193028397324780237468626639171198786667464884146527662824181289878973020452739875010008038221471807650311394759559192283287958683820215399712759309616188333211434279915308716488473632140810427092806330491739150447671627080351560454957780373361780523616791165742917790676677449866442371793095460374248550464101976409486691819589914529852948234770373761669516124990174704838395427040575264008159254474806852858882784290906647695604466621842289348930677548444309045971051146619211937144824843488663110039934860067239624732692464622590596580589923755633769991833438999064316770214799314895428063586750858582474996867590388350756922217491490900551428571674651219106829650643944391047165576159314542596919702899156180458971435626842796250475737080232477328843038043508136057495439760669150046426434058085940056696246372542810896313892713373378642478457831002907528061946841081356644442343786363488898342176261595012938045875929902202851396846007450054780722857819003285230346779571297228351917160268508223503175882680545523719013666545053524318446144227791699792096272367142526931619394706004667673669178998356066508451261605756259557309298948893281521370100070400357721911771837718406694500308336571021380466204069726454871093688306357913974312102180344061264578207829984659143895037529850223465576546964803557008353898088917284255329000999392383808168696579038796055911645297270727000508260762456527530924839120604925718568411450747435553960032395366613205860465421924390533967095445147307203508104954816501139209266979986623279108311738443089613462498371779821796039785965938393891867796833338893003583462107858224677095197983020570260002094165133216567134747879006847188881990887728495705836178479843273815855376710548821834110410537470798624515221037485043338399419762125425419829549537914870971502900025609868568896401120425192133646717968573669821214444334477579133693768785078484561743938124055485482198625548366875424137652487402856762741176124345960572294634141092804389563576054458177026914044565095506207003490169696481361153971622612243314157307669031096071656048655637665878331531066117117441436582662881232701815877133431853569920954504601162478700960102960617145135076104756529847249872171506731459689332683471210635639216127840774544786224332764718702819353171265679900552438548648524030035890298648973580815679075876758332518260319003238871831218543333558881236873441392707158573618166611095682578923993715535279508599180917680594799579865772397620654385622893825032901934631996304744820085590155743687363218935180051373875256185178779076286615008173959903976661906410003866273662980369793702397117503138703682246303178461381887744887316246598239838995713612768981672329076356758371622726773978414046509947766075925077899541835640468802783091981843890182834623778372671274230885069025894532327688853729071252300631148132330672105068414664684353421195956181792948061102437706970573043909291140073659797848388153088306582277615948816772166503885104291897568243633958193741093201758342208654901913053027279702038103332456344523722796796979491941973953133737324932982475343007940909641674503080224947282742013213408457941969541167657518794467860897565437067024374014285963867885355914166182040197259027686826077812822525149794455604692539605610924387053876794069873935011870462011880119442534302942686485037660948677833669121869067924452134030050965520571181733145653844416547953807428283859618024865588687346745118831757117708151130918703218665183047858916917551912661444198373988786453296940025410037803307379082338584199269700561313355825057312316962919737157120759859195435668087574392416164879773055913929251226321236672578963007441755569524183858440193267916257887051974473122146468550485862923247793494863434708972776834499015783779152682896591184817989494994748672585900405914852315872711423108463475025643347789901837937201662025623175496806292836472169999820037724457538670551442797718646155598232467275892041982187072195993635148992941161242831407538281268957377995040264745284412903764249336409591341996702792737143124838247813646915110539055689931946818538535382302597232334716803742955905701483488041989247887603798717905861150423686383237044358243176684373059189218944920841361767008679413623967315092250079924660573613659013060658048233663729057383975571176947238996035618948376284463596854189491462190393293195065830526464446046683997868579447708583617290510109631042532175776609565573993144604536110360543255914554906317074803494632556273539380458868153044650193672739539888370263476100170113585760208726329849622556083113716554887300265662608780358778027389133087957567133648127686738343203772820394877489235609589857738412293041018613548226381644220317384791148999327056057364395530015267508789354746076754239265598130343191848986109162898941203226555248502276119703339151194644340911926738237597974095730644135542789171356920204165574558495550614823512381673851158453886813729984646294878120397307534627336199410811731501655363816310559166854239754851214834994633406791274594325686158307309653672504963383948474932114308175054923581774468556593227030906647350374568964561215713697004067853867725245488356176823296030762224719992813200975246144327855673046518709187278899798184208833795714952398732768191394819150220074837151711129551480132287090046063446690849190282601235644071152100560575175015944946471032746248684297933740183698887512017343562602660752905943704544631019792071766501299594674491502751752116016082591755282148282290925631743679999832956736422077379694375094306774439707681310954989432239804568065461653232694684315755893142939725086212388313948424535139457252761337037308203262162194433820225012196375285170381274331900536780557992482910106511837580936144591172230912795340173865623826308793432478757900584067623884012144141487766684298418223126334079549123793895522196917944610964789084857930189457099750598040115803373574231494242418805737441839619880236479648100760702825857869785080570509329934745598035013852195261790686721849009633988256886171584808058760142256366342739549443967304322605145887448877033741491650350040263217141698371098116118054416108192761043684495563344271245839681470863063456411442450916010587333648372983106782456537425929934706354711874978293872919113312561782591834997757606473853173394916567436443160018199998751084402360186419025226331866633066151267314943920037847917024769770782275456270430982473791347777227413450627944230350903261363466124594521330993297173983874600374911505819320029971657699879015791340520388775720244097459246377369234041480437426131612667715841162357067503915675228512235438621511978608393932528378540094208763945211187195664800101600047431640237819856338872743395673027008146430566377427855786215377320007569520009602101456624948114926487683526872504197688757825305712955030892786889049155770910195359466104906156226546787307042380997901273414609308406791196984402202980773445031834751941473044141791761999584897659585582820231110072684785699295855222282091020418954899750074410352790103646908964170039487882013009653872300341189524290596776240405552767942715646185365110644763096089898494627065328144185311390744403791543777382665168069710007039690846912414746184717349169149678390013487847157307972004477723362347239759078139762032678060574616173130399634925075803624572043317745966286895744186649382929751309584032390422228942012747106015089339696846079888397536248868934776617649870109804295026616752810507729097797917859050838927149179345162062078029774662295830326319280332516765453997667577722970512438753770859274977926711867034848029609167180749878927243472768875606361888262054922064865400408094828064142392525727678721497430589000494980388830630127720989719280719908196256674616923276899365283347228719879814417984798554480000860819084216920863057387073598859888778233894734702320140783352218866041135885408967204124178446664057186118632336220493901031116701636216303385107763557617460527879933043266371957919858707175578325198222558236001345726189672027177652266706196350015389265214580281485860640964989338211391923975581038477401995133300749051224726374404420844242020072165065177951735036089757832993190746197895526598117675659911602842363700649079744394036929612431838619507477900155525318290979750881090868413722418380851923124307228236059531082572190852849389285691763578404580475979765422517421789067018642219076596926046984649975181938840174046503212963674632138373759073280618663173910547929166532005754485870633864138563412429058813617409918471313155905299370469033780461125783880173871696451375995826045230521457439682760890549776861959117146063145241997437783128767309261059950055902635612962920250934338276950301791923311031812631839435540813043223285730831778067174622745189703322671556115278404668186956785939853477980204321357938639430154490607200271719761767041868995778126228761566837348420899833520219496410925366966815035027858306368197484465870496553020371373715005287597833736817891942208334452669312993498154637208402775934772028157117342947710243189605406379530610801438622172726236425408722979681872530007112128177846508693968522280693784728157602085027945811479022223717904806455288838380657309086621475545928559326240387783847627168792994470587350322516354416885554363810195902633040792222864930386949375754218856637395216579759791396307474036144143829941004934095377566255056682268627497001575905189914837423812900558335527068509797286102777310386927486549605334452873496307818886366086854914533856363947188543209437157771226941464821768790827487336147142265079753064914187216761405887830037175577035517309196952960374370301296223292848391917156924294064813725364588214239130751507629192765234554786019008434672836479082903764424653014814990555251522039778486952474970737622668656777915813207532948187311651300033809033618702646034614736784686405881866462419462078073239833556078201263547604647652870020493353318589980204061310171282437853357712108765833838630687390492673860947307720338254738875375388710352954875531109893704817606746697284289521450700295069075475165226775559652104869013488297790648859372750621720005137658043464743474994016805908103694642993158594256770732765327310368113513451064844800090286283574837740609954221531879091509436769556734250677213921910375884358033151181589149904818702342881429204097848889848414034856733742496045942289247899436697618549005415460906675298985672652260636651561812908175769478072854172078416291639464802985111881277685982135283153598199758170235937202227397154940129579216825904542812338749532859557812296043371440741507992810300475112112899973537991391639891770478106813801724504746071978153824431013015343406178112441100195842568225461234354865746971632109443914381502838931222356054556757649351149614424714370137330755979456608640265180517706935419488857436202179026687077725467328265657465391015983174343593777495226400017865471846178334497955251586749264833802705374688752470276458444267155255140427609715971717973320891573122670312668685877917625992690730811446518612771949265360923054029722846037789227783978832284698047303785311296240423630412940114841622738542213565221676516013549474904511874255286510557479909853337967410122419475855411693723460126742696804542994340272832099305794405695384924918085715740017814090244000691536821423883494196127687910136240607850844531548446189310562432945692914560782990505137472628608657411892467344653888208305872585466175182936769800523522976724903747455232095537735632754944143732067903260338237605261035613238578679005779408314696306440471308251966537719995541426500373944858496469087603659458447689952714758349709308244334418174487150110189129296371783713021203655262628658948270703652681168754662192241750157538565034426444524428085419030583959797169865783130597061012041656410267240232921536029667741293559945678031889304540267978494853921531676598689517026243581241052339602448007202467709904488778823015660872707604827497565014183685064083219333777592911613005891383188948324816909689579212102664051021890724162652604978354955088158547938589490638401783711938851110135047326993490524445009384894779228114593904609421075842072519955587524223619605386831454588586197018705294806548528880071573346982935231472673619860786708793933826439504210272240614467152708857334567045275526137347699168632818037316473622481049594022735870493048328827616138479633440640618803862089949923660623478430936896358177078864413879392293167027388857803738087485024542322755105245337714750787946328505965507886627184085903763841508202976862760424575672645585367584619102373999742061130233636030749503978507813004946933450592856690577420505802467241565509545329950156005723079312806004768307946315831220783502862238110496238833793935149856237272849290833530830555908493559607028887096411400804274051626664794255485757257345138353421251653990853180414692420163505779591643555416166848232973262267273448653720587540871021438195728194594871213761657835166175999794575968569747457668941061818270916507471389343593912844671432450736775909118819512243657440642802506649970588693918671106811701879078927933861294926030971752828955992065107693838127998963839202615257672206929714704561854657717049877080502855848427643371305373245851264053190256500573883935744028052287855659266718375077442769443707207243832944065402277687371111724339665874684645949316953698730547280722907243210511345219821391713492373321309971068504253850931072320366090364429728649579464255594217477007347919590621171294326280339465606534725313702680547845349166314067101519531354261588768245269408800085692671346541390126273513462642351806089121008292074843750554959549180914496226509946474137738739505529506108499187562234894705632063979105854781092533477386862221194021529188716643551366354391048362349326782801206759210525601921655115515809802621727084764531438028850486970735096769802508463315689870818497701989403393163055985736240594559686767360173629927455526294512741635913676620341297977262300865894172282551864157362290613940106438016611433614915266082781908209551347617182585020824107499827008855094267226559542170145633201007499964640575718772050830001674805239599606623184137498170913190260171022838145963595970332374212876339000817869761220744705323342100637188593803673684440175614130910110037523838725512846974460508911986421947430226117232232810833248050357547257169298324882642504266190791454381297277055751442100694613857574584818454765386667613782226794673677819322767213162022577303907112817070411662248703606433991515008625890326128731349478927399634641741505598838309144085958877870184062334125771678285949238979452668559456116329536393292499987132007854194833104858951824051462299874130596045661863522256670118206026145566710139570993919694371354587094019448411375668424677678022959851451221960286327005056574871469631090412836290999043129293282382824537924854508259750744091856216854957415171540138559072526673137694791042967992476319656453856801171280393210512144957401604971111943848302671747398869152907435109426677770339616385734998828709484429109783316910703718769528839877912659044508367630769851723038875740038484723720499121177868754727272347226677948414777037982979435151257435973581654237342057260291141114126809028330306311849147405047990589826599808731859350587169139892383836275117588382460319493399558278460470570106382839640202709987821966145741908685165943321062839411358020382952405796232187432351574171020156300826614266651753351410412203206253489811809441809169830460986915584392554022361283253565607432637783378288831820897751135272932010039522647330997667309540089911494285369200318880087215531148008239411879096409318257586925972967387259225549300001669488739972884031022571686410119665619861593170899107642402135781693398171991330006075937647379788737263421535791081635151385836440309856652948326457662877816271569471059681924198679600739483898854051271345328118302295425260320593485441663667022949397039404618288652830967756139427427349081454159574290758047790926605724993168968303255254140657493274060641194591583897552459729305048035481175807041171417697296277046483676706122408537179432793345246758838656490623890016721425559250261321824236521753751931662863337655649348613757303242498964722936690592023616564382970000527348608562752509648088781801626411665694337269976595774171306334022807985405770160328691236361571341178310765395551146683176554927369528790596694133955688171820695284682703895797057242704119654047902447039614588799907449867882554593175707373976695807498842200304829686451224811506347029785396499656462843242459604945960826874462545296495013848482322820389355708613741767600324807079563338840135511703465265949435733977751282283277695218252699735007722246241860141809851048113471544507998379963458980460027585710861390778136303007467915888100027771194438188349899212795599205454032806843794413271735717532453585965614467019234908131136176017762145020109264897133627457432155075583286429421270732614815898050984118479003843861223782776983555144723584871825204051085351874290456535226573589155636119139320745426462187092360326457253040785565520236365018183230754731906700243864716479572291066038328986231310929042717775293282325987960924576123636792053061609018190376665376101970076787972653616423247792055189139489545010060117847234250488919272638110187054653406375335688938734471784790391488958463950065527077114807946402691883728578470778857808867939978230037611122405691642423340432526669810559644208733563384154728757179898479741277499284896755629517474524975691452013938758838354488821104594057945320099824047290337829508273194302885696104742606424545338366442205083801671224742477376628064535903559841054536850626098442391450754928660463732952591965952647660386066348899822291802990045111883474742972467635136121606877038428059531414821355801708850064622239691862622177267483818678883875921420073555930751453017124614781427816888052561071726810232580464801360216541690425281044725087109065090508264556140984858407432968701565132484686990467723619611151387536920521680764195755623551453588139702593124882104297803810238371855454581481231177949850457295224915339755399712324298684849330465208914465443091715295422766972678320747478291695446138128855264440458293165522350018411112204490210688071434292702078804240923282114196094538908734986615680879456219344441690246171230080603523283131648429172409561070500873979844364818315283259223685570132845013529673492463761573816940214685310175083438783235849995498484245275714234912768951218351376657459236374511752245836198222044091616131490199152529811228856942453748739082756351733436983648934214608349188355071673395665315036468612295499645953857907703027663626182299491607906529323713328452097946316315786458588178123761884724957122352400812565876005373697559591398794163216338725987947789877906462455611005309730866829606710433437716506453308612610660379879241607133677077383081913855685070664723857670945325235978827441801770125644347939929113897813896542939706599289502803195334495979336661932114631829954309585708781402765037425727271343131819985368430713330519408168074194531400441015319655823591461085324599255685853797428371064432095192467801279950580924744632736761879423566993907247355230689203839627446441559583365203615534180166279292981678364260247238546125276250767098035210405217169975877787979052715727766777034254517898521309725132633946753085127998223866455479207104778617193659882416606581126699690987533208197180565529388203940087645626084800167696830201095568158329255661862736175045821729477102173762690451777317975425017809512144391659646450801173631129619028299183130327511897354243711745307597346418193740947073480915335597057177237339879641123194508181601634412202124100455162703059330042784835180622041430046429960108310447513425697681185970860937824114759812628065875137604833418720321752222540928309563427787524737036224208510422976673144471694302951384143365107632983550940086794647597283027379469880831655831802745499451772225734494759495116576173645275366639042590031797450234206339495664732725158284574313886903599955302793155032361189467440035989152555170697179548374492817504092921082827118169697740564434390157976186207437465391271568783830065985312773302155648871212440088744591725763241852960347612062147598764771124724078772744986955788762577355169634756530642235380450817968186001937412395583286479115981999988734572214047248025487095310320449791546551328226233247713079074444914359216448912946595830791992423576596699426836347362292111228775450864224440007011996370248902003161581266384890181347285053687354443512226031765700161414869471749944662437222213498980326734411296601566207567499281382891407540205977903656589833185009728761809227971594490202402320286168198467945085706757452962630610192037320484603226263205107993004432563440504163834843168958113953066534272347884303201783221697510316895730376173098797095746640354775241866535139997554443681578858503882694844762795773141317177920565537878020731291425566597036022706662741606969288406971295224383074842504261085451717996002008200707874408672409077941479579172764194584221644709146273923455462001130290151755161087937944595380935730864637336708056691460196732000543082394716050388703964290990665808497261909570961852734033178075659755473724806283059020122136494586191710342899957671026398949253032931457704840024889403211204545653125152960010053195046230150047839854842868430243549590828662803348470728878624717585243867967271067910975795967732808122264651085720337652816383280734119258891810268807869372901092332656672791856933968713346290189167955551007676115953115028777350083109460363442126957089741799603785041875997161838440002573916475430740160664242370239637690792254655041339239123941317762336298078827826229137568231080534209468017517316914187893399270525393569419421390874547838225583588650906598682506793272247678990832638388465357898133260609010750378193938374348917702886707868780986009029139090926499044540915639676731144045586269068141393318268371519740392370226601420972714538646343535494056039913280625899968059463093002931432223261212392218090929601031115937621674421917395083098319989411357378783330206262171933932590769602858141241559395682074750827940586371295322139908065310184446785093770020666664199050946314827557275040076012510079752253498805829416253629619478054443305239970734429614704171917946008805608113406223166626790989658592883345158686656300725990786992199774329100723213849878248041835092652127929744463861116910256141235782646213306737761220805810206752717258211248915084580217831114147012770854017355211013453043381675890024922041447760746447603332907118272105943355818986194517609543970296423248053660283470695060104800557277161094388964513416569447628172631113693876797625271386285213872952213917147660804318274217805138645649982075642361121935961111358193349088050629084894972715606337563785423627988594634536997659437677448961586284652353567175400178904642975711787266368013125148719570383358218870277869619797033296371848296858999808217817996260268698667880918533901651065694417719429357329884866245181222267614629089228608856609968644867459979648394935621816010231827654211165623005652438773508130916538221246859114329129670301357346404545933963884525436291495340402845090884440404968118464845624612771024645001541203371732649113619402402755978534554027626582890503495059834209853605522832454097987244240602373977259013856703219989012533283021287522519317225413726159096262504805340116208542633326760714801246050541540601484520861247349670762672220871888954987922115905812947682803096784802447900382501674867164625180920190893751072546879011500682002153564641533826904584129596176462585699408928715005214351434705018987396721242905836392480973635336403966295122311111158701878994836829669136543921499730849755917808139133798212022965706836698131327238480903968455087313661008683478307478425045322266682757690819208230218811521174671564076439450910785569884237659801155632188705936362906116253829841075485090386392673129695722685679846385915135859853522390100548624772650527181018322957688399542965013736232680426216497873715067320879799585848322139828439155903879859717195373960245771801891978399525833334096964196576693867806564339234515829071034992736692398305010603666012707462541300363522254996457786574266716417413437972469713516590005210244253584218356441733655901099404784949069149894089420838241480122552964881090933308720898924006194920688762406034864165663436495489184228833129219242216591688496103726592728358329842806203630641849423952407577929281492275781624637920486725479066765823215258921291557885884399247906992599488755678508745243329174391641945308583681285952150835517219286490695665663762669129739882219400741008670755714210183758364452001537192019061405976462820081493949766657647988568447405271155853210615371074447810335559289783064158633829602746983904764218780621700290299766127606357907757955581093750364083232802932016841163870016363783886579737102829385348675256303526497561568046795269463860139826992991459088207966450941418938935159480466329546159860273863262521098826963951530868090463099956930856633316913063936166054127694496554432859456406499622816534542927781866241820077580850369893628862967116287434659975506058982913753779485130961334326792146456891406579091139440774481048403081136867546901744393811726443267913117350948916867798364098882183507410677396900506457105177747866531315298068931658769473756550404305588678079947184782447976883341461160913844122274182307808739494920654759687079285205317261994273757396260697059256650541278685571542603736510371425860711699290750175265267103680544584105321825577280170138206476402989983903256909209594495305690277766351411356492548090550499844284412405300797611077159216465633474701018060522417682237459895092482607034296561870124949513974368122949488479457039689980932755613138598093287641181016873935640063257535003026158579921747032605131964396576194640093178615043892990069714467511278526150085396942751369762465626647157369183068245701790939496486224951500483068062779105727117411357255532452791681594524293368087582860597135990864334879273139057150593294296584592580528476106141946787002719347355346123698329869735472232785763933586345972022162688998204402209434658831432153560359615564012716470483976518294112426290699788287424046687094046741211671281022850036823529764114755462367654379365904733432853083652627875286587432663244722514800574739675145922864977493641704845671301385971728908533475898853586751692446081242586923062511634375866752354964580617986960420498284100976924504685814121715279609466763169774880411603309111238405082997456288788689734396291521413701754633349859869942569117453118655536216447858689819209635429087983082643505089470979117005609761171957070481526982099956683133691426244316789254900063906541152346876367202669615974884704183588419991370417429968819029151232342129671986645789013792699775255373560491713926159469491964908087918509430163882539257749506517335850806015067181896750189980711940792720633229241319565110250175879042856400782405608875147706231115032335663550422084751501268727934238406524752184004710154246556528416177668054216197212883323168585926100478799589049445016711057017025053819787488435242097586075285480908411648698141413988189431554319558707383992348258237634120995817260437950823027363724000439307202288317877047966647106509186389914855397935446881278775242309779346618420985308015819784330922915882032045227549387517158662326220664318254833698370788774875267172393735627253458966559206052515612545894965195862217675680506859951836883692610719604439234848267877945668943039060145173326063468888633467422629121504268888481350684897995978268702043593783788607423589888069828412282138832135124975461665874790698670770488905176874138200422542082896051380689995920369002814816071664958739621705595860344684413062443296904390786228380075645278485252979129956799327273900684418606103101273262982335659830132640575450613154992610344859834584859309181849928195977090962938604212378855593557615114741458218252826965660778955817317446183660598684713484053626468387405145236450305214309038503169764704311587852133808990461967691452722950852776084395535072661390449793288175597753687934527978271469041984703568159048475100532314361756162924742095378110810898818335809924856757012107816468901635287427075402702928605945182345873171659744129017269704097323136695522914806115662504916659889120637187870497097951719829765796823913954877210645114638288961588171013409634056979832977561860903840407516458748840876999073590127893796099830137328601002141225044061455551908647414853982007053519922208089727159149976042079398597085976936808180309166014020419941890969217525616314945483693188777778106145558249763244895965352687409725975355960277743318883203863328716313362100372337399582479372036501785403695763439254723255399280124609850214386350816713219258715057848447221448772206096594758222529172955048790183014360580296800350851882158219818526103623854716031731583954430620424196770530643900990378357772170588374661358855642200276285761186260996298846332658447730190854865744637865551324472943648799467962362353372091191403081058250480177006842271477682003725983415368466275258260682027017283062800880093448112282712385360182236215730428456450388016565244616343682950670108358287726263248878068892989065985907054974457242379030135428078287382715976632773794313838077835415206271481947968841828342175463028493542303419359157293366224168313557422874208840612396257847886094061683451147603664782423947127389009953823463010541284769585302533834629770447086987517965859940393297331996023610172511337548904774174620967400328412331038749164903858255221284172276251164054371575978674662609160085867080743172391207370316264044775645708545353885457116695329169901451770183040292756426274740706015248455774975674043126763655598383171214463363929978148750255035323433181738761613381192483886399446471769956405912599410672788318129109751013078474881378935347502495286529133786928062192691527397100410714785215928019473889311117858406299806093417887274634023227249278303438222459563450245626699713274278668274477723778684830596573967121930028431163540445307977606674745558915626982300005290354968727802678401766294707467405856531924678994329010164326861950697318330717438559730976502220594647766307993682687907228519892991331304055194949295265795357941371816407142555782371454846534132701028591396137502972796145838936825439366342181842521846725520066135337509555129169915442477086907383105523386345697409311401938277053605289837998082008648126198119559967475349972993294681754112417672919968812038760692278109958852651989584463888801747719617801947180249781824009039793267389236319957309698076033685727383126028037699788507715430794319659128894946353092727028019034237964683229329141132002585649898713201937045990439546339970234292604344772613206921619832084226581797399696166038344615276489505326716197882170661677101986245323543407361345005294565896615024438976189881478967541207647256833733312974033022969284105588685313239841099713512901198886240926620515701169168075064759854515817928793058286055796774091209388090135887960090806826309943627878192625228922319822445716945033148670298127783484016285548159002103354731372073700987474853610213013238795934167438041086300911470866612170438852314323374390693929396004313482187468082744238544421603618788566676044402450146965516074235968332063509539735766025095590158778691992077268706417337922989994119564797159582016052379361212585935286706296830524210161427200456938287857185630027397089836727280297416915456205438038658360332946708879271156117210859942629383847461907664671358634680456658649517538100791633594744925367065354341858286594872767549835518258536210868196470193427598488566817018389215772940413177606999452972719429805259062617057127279072014104421192840179093204913619871091462323909311982419126564819587227566253835131498010402749755136311498901401961475113274245083714639743406262664153931855587110880421393916003666977327460476094169950741712334486268717303900441746459854629167068353402471704033535518793515252354782999835081452959990457711076382909772857059320794510421059754946965949077569130729639391764177740604764474358614433404807201625134422996922024006313946425680509438027858912239739643789199625384430661944923776272657962832331277302652023925208081570420001650779671356620411326600730387628343129968491150300572120914424745070635184273254515706030310965351437101519173558127012274242539824615819002246169686236240490885208315313806625825452584588475753254122006585673900333802851662451963882490283741785708478642234241444493576735707686590156002580158893844711235953862969976146954001311074429101815344356622472007315338076009790815633521107782962936857557424626947881614502561931629915005761630396045300899890085580614684414609935832713696384036461281479826752612320395441470188622264897645224711087520287342554423245105881910092531739542713308361685716936044043959963949846408434092001955050085873710188978354957735212372827608810069671784552342944583444492064631721615013807648184124031227980527541141017927479121762927497988607625711145887427405466514030331932096339174353751736009174585640368302342513578051023862328357654749844818357687005678668267250901781570240717586652760830497498408459723584561657801239759444563176375061496605821921657220203158963746726516622054184961406737400337598375714055215533824327575424419236970055228350116531634142488215249420348794309177300260481027306771900384822615489835753173669146467661725407786245617674949416304047358356445077769082870786653486059600959533675768630549781606677622784809081634983159246142862592007824281684136006530187234423081409981974421947160798791827583919912082060741637517346478037218321397130226665387487235098148096530177024593083487232777687079708006765076188725343836574049180838529224679516720474538897479941312044671271839267405183219598777953062350135023299918584828496811913400292896790875395274304216679338621190540200561267189740902237274824208934534926208039305743456449901366946189696601535677237569273312209537599053685512358513559979250895642123382350015912043919797504444125916743802271213007851580736100537841967906154406702585152492995269157329851650629388033535105912907539466064665456828303036346126343593170680040523431295400328456032612678759728710184755218127317847258822372367714455153669096799037855869478942415550483105543730219187510891321792344392945146987971931623186126086348959512932147114990637738892605918265465289850505854572118066866110050281478591238250931148340999193857933122687828906443570906751835852580037850964209799064306771787010013694750079967284167262454119488497705042039003624603068121747328093382663680728317135662539460485871532719823079372347118497586912760776586374129143433229318996555358344012073858493149597227097976819655840865526317763472051608196367904453520610094318813431986026043883030793223292673430864333595314226022267553187332795455258608070164691272410427417989269730192066024588047033489291485477775565497524403981930553681016416861501103641620692328167987787140456054126368649964422709866310166039542872786490648692682939496415868315397529824337570698349547128754987582840668115091572841073382774700713549374577582299653417295455541286420224867716914736445778109238079471379901219542656449916164622511757850205808182828723348708497310347528449574783645757093895378919771404268112879143083964033083849962267167121141538694246526441278621169836306718811413148071892898875139047950053539011351766523529397754511001801999585147608675733235220551097391324512306849815103317497425299004875115146838356102515794581736087890562863517367022038158171198065323414605834364754165366475666297916393960728590407493846893792176618789263415271718827804296129312432177437538839452443989352848664311121381644660716160610490053410406683076150411553990283809249114344229304624048645477446570625880986012294435314569921781192353413009462625878478807003428974383954875396130481562928418917408997593505873979733943675430042232781723332258088757143556356440608156798389574387218854358611063430881885497263994164035432314768720404782110976278113786150598754364336957738064822508428506721348288183569902723753912113270985636782707216781348045718661450009495623475842999050647188779414125952627254168542750650614414247397773518340076825471209745787115182214956207822831355349837221358871563480697410399947797533359311269327319800774848182065663062608906721163114383729795863700630764288527679334288355541298963536121860114537042732819025570264959877181521799424580069005697689627021531721528274781257965520049980465824585561915867575260692700220068202335901563401448092031557718202215912058507623852079514045835657811846986286596501427201601214126552344064189626683197411838087205906508360444173703045615392558990376671373606010703303088609118591340383309182737450375688087971313582010505175819800703903076513159296358289506607916865098222937749626920542889215082912558828983232422102536695150588276561588132108630937278417811955505867226723375061896056767992918926258897888978453399272750622436642826495825576358493474078465123901369799073182249343177040925963755119370341658892909864119819092093069010434786453713926401380936114494616831989485776609751074018724722308273818507891374939397950917888701439915439514832617459864629339848175677934987280414569535786557970540906592667107516254705539367692818285365672969260549113592224156192194963682332537703455893477294376796546939842883020110658888434493940036953657248636680458438623823669355164727160795837443871304828007634089391619579833207581476099704413371841175559292577225505441189508955904172527437747762946760784921636096733745282151157339516607143907620918524901832613610562064839782266156786949618891298650806742354953101738215414971454882553647201400081951743702794158087577534479490609868388304072634955030748313513755977346407103811763820110331000943884784075082318380300084314846777715076711331044580922148135480649037463421174670182518470318113665487910174580257454701161671074788342168286024186684419044169285062407279877812421515529583612206031402725653670654218452122700103187377288613378597180380383371457761308850495133428342965628695706709825682351801281216447919089798138275453171759579595602894915059314688571648763501359937630947016396751931523272822934567890779823924488891851974282739431453996965909596577627081165484056907977018368655337219706526157763064252991971416432922288309829556506087457227814356207156164611285460174171199423852970734951511103954612299616453078006959361863266249021143007982713247085995360172805855279297416286193109158958997406637554744246462790605836249903869445438455922239037851164707539211606588580594893251100361851022052289127255056258446489374481143892860176861928886433921404033814863965652730266013972350285876647002860785137081112116232457807083665019956793848694663590188229411288720022115908746345064082023169707361969952079122300270315856725602726541887530995663657750673807888977771908609879987927556420676171644173461550426864706113715956959734315954608089598800933233092826627645964861382984142035783348660761739608682236971362587174045847419285295165689072317232340569858450471189156929685948335251993115929371442654315486642369778232369311080246776504882847039837839497179741836030751391701994843533368276854509015738707135006621604670516817319571595459743037360161053792290371523040445302312183650253933678257800039553423602341808169295153188353790042533467608641368162755998614182854023868194693896231754712859801845511747671223585275148920706202040443615939723900954887240651117942476797849291817391071219741306847050483698909114204154801501244034878074891232437972141949966439022143390655131687074776335614908070155924935241579749922120370113781439819811089110873804653434285215553871844875170294125411871259448608510479601431108079945685608648903843316366029717456926639201655780715668059736809671017587149504659209864512580363432296692857501907855760232498756012524219604320919113270219263968161101285991455496307355421877178511550233667611885154001694252167259564967828754614521844232576265378598225165507272150829112121888748480214256507504979305944168991823527082982025800820084746472021206272958852776177484908093922619869259637251132880529267383909235603426322378568050736346144969690732052498028112933597807504270702078815871822089654121051037686246051818779016623095036786230827676993449338478767568258343751475795033748637268456444950474887109211329678303961408650714135823735532998678081292583272099566662552121582775761676075868238373275243935363259777793726385012232991105767078431901632702989760893825473083961302283306870353809040745821653857295608329683091162855296748731063280066273513339278284629814649226275289285459789180951582765908693538563803764746980484886349800514125157453266830920687433473901578089572484396207946675943076271734959742069353558628900644419767611909156787557447893277971796142475499330506259776432304186077828282777857739118844207919952383513244770400955148995000278899270174468502426894050843030893530877664525419856538470494662490491381884201823729800373319002257646783311690909813068340793113542848330874555148848220819303281364146850409804308009592991082332309957583362824404960801716568734344597042900910078020591003313290408068649516483516826723841433454945267648986274695605703081380297945976170196335805515971209772867444096933224531586886658580024674114263568192941508779608309141432837655857679858335868113332025506728669552074811126667543866524482774077943132073566312542423266562334695213751021241274826656156725785560846904818484112104214778492355987582149231042595426025177540624670810180709225844841740828887570133363091610557662159709447959933638842203175315094811900015297163424559751070385862984344659918693240796480633375013804922666074226412109805426801868885152606314490810537851533703307505243065183850519030519782434111339594513936611790618681277576918141298155501690834097537887733438000252201918028261635265093126227458567450299769497343377209961763267177840320484854338740457892758894668603338781948020682965549316611424463627877942726734322935025126558435797274163645331667697479049677838817619945766460287790457282342894391827082277530056803083142991104777467603944661375884365120638859767907979833948158896899449125355499730050491489249042650422334639529431858247678937420628554433613524693472122271218461776910626564366642740019566801831411885418535617115448212699729154359893712982965735361243012502372643459285409572535363552499827309904284534326988518727491001513977891768941443453437420828656199735662444924760255559186418107511672960419444666820862413833435852694588599818746159606300504522764567364938130851632432572475503883104527477373110371375465668282362812761085678259078335669942933925596778823917167584898722586226542477591440736455758763823366228810155722779983467622774915206818591541810634967650897652329665077638785612798754099356636899236381101702259399795693181272204134603594213983053412935524496505185567596935126152137474810964585302411019194840139762439324938954587130073143127848394125590057961077650483895785569852591705351005854021108424690387347893978067926873493071246487504648347590173804095108695712168164606990636190532730933113708235692461922174331278085507911025452026827524957862989082532904494896854830328083622718283367757106362164636039707731656010104092657642414169487804859368606688562931064298017250960431293317457740346893569046220845154194381354758867073750316619959588066956467270232505460345598538029464871804231950001712731735579801895549956142160981387589044070813459295437601875763613355988808478027525278034149835762069134335358066228764752662591782432361802761205494689874379767313509327964653643362705421845901262905276773166766721009317109640648059712005601773279373672892692018853416026721495586654259164295132634988176731969939530435383277862497708705334177118034319376464291935489041578950277198204815545950673654589039872355808736475306467723978089257077748776238363941322527849873465879550674720702260828621336972642084800865341355680688306367514289874088519879565603486697171027565148330376005724398619130367717327257926655752004272207694313427965191895429567031968160018448988078627588029158839184396147619650103194419999296800689093154721161977964076182688311349408211513689061277496015263925113875813775274428653198550630898876454973827161369968643771004118467006472499086877087201188925465167413609325808601161368096180119046192491165667368071172202551056233731885689638124295517593839828302917333575148229884117176393160988205447811492864717742877198524212804216801605476824877678184554733409408847171020011301026355020594445706543417622342158586585542476560784304500372574752914328554772846126631753408476674275554684082860666867215995095087391573687917017772080699454935570376294108763107146203690412899223982398073391470223749575943447691994441746380019448839502170111957766302232442772859231875182024488594382163979820798339682466855342728312314732128583923692445670337577892534766034589666625353641766477481007265480438695936875999478883014683158801373928882258129092203716204770024166257760901489307104890792278427009790621916016034910905189283423244007419095323280238757314388867512950955576701264861797227001320106305378921117781051094204862981438409678047777611786388338490047381190022476674368339793143192399571912828769665464083575231805859782898255148790033256873295525802973004229912015662239779312769611333808933363926263415431744380433604320273412169963631000608426563339203856905555961689384046833690492940437364712951046044412733220671791393390683812716384284363586315424863837501487532672715778049999601075771428016927655329772917423770057632835337440602556540949547265862628985247134431540105037218074188546575041188292602021972235385494140225749409652815559300691067622282215102045596564204863425110046688005574724718627197869946150579303677460123404593043863537471324244157628724628498899381991891398464598547304964796513308140253030508116965586903629129424698043583240577670732133418590245687117104828245576569821983811610946450286666420509736558625632511720873382212175248938518836879941710151756420066856187012609046415488885846419410241628505430440644971070097962152257195482629728164887163445437808876279630906379622277388423701173114179090351298848528020348937819554372055339836509642535205069428600397273081881509615972782322922553015642898749059890198536858150372183340976946658738172375162988611004340036797455800229288934211640935263074068221874492509997984196978276674985965749822323555480036296932829531775858310990112903889238808404172362081002574962196729688566629494487838786308927570283325601993361695943048951455217377158879841590853820097519277640227590883011076905649830370240850866448375627625445533742345401733870183863577847741195367060599585319596094018444138305403371444876019052243897631014337517221665253671172251196785841966463941364400061276458705812114015010297801489254427431916170187005368930731480753670343092742919521154431067374503731300424721631521876853105592258994210344099464340112385089767434801830355252398605938713780895442619520740471797425630993466758090351440093094284772493094908774209307012458712044212172563407760024352708261246903738464226127492508224647342267612002129358075247349384635366063030489086940125213644644681943220474633416219090107394626805517682292633553615377029806288445566463171854178884434904261284196129108110959882389595207636038013719498176518902914085551705605697984188098859650505750406256697488876951383903542229008349024645342080344221204675366027154420192316347897423351901217051493568134889457540389937111144250239338645842758098600957090164910661343549694414097204561090827475328959758290335212692322831905130175499138198350194900124456102853732800098107242798431234478332987578098256220682958138346608873984803707504760768717367539574374487013025520267917296972252672050411078731445882318294113702862687660527032755331844832303717791930360339670186565776870456578743280325093728343812362951092460926645095668983857612439178666631559469060388092751480404195706684550523536225440062553109748212593096469267760367913274871290100214246984774637679862674998976490825854979010248366234573013046325990544323435749203378571846245048159962220580658663155701941473264659043579286418154676831985415277718686995922412026889098919167841224625544823462336112720369045663675462546375220765140165512873677813069079345050699651060914474705770014827516896389179362390012720477105523331748338296125618644209786874871868884692809906271759558741191005486776572922134545335998471176312857744246983597153854776433917568597337671311514143781871771609262655194343240199275396728507829908707334768407095856905570457599915591766391771413630587303710813865146032144229288661085661793665239530909970024275331498066412461905938861703078948464363762998142526972018260550285185764424351584422615378596862717470808561815485017818131451621450626091857988406128478312122305392034412002209393875161260536549591854584488767930747819902191227440114405080582119715848151376786660394105060783394851091425028699620706921036426511072611932902803290586501511608128148257031396218301894505099240685548188348218519223271449109906483113587529202120940952346632729914180676358586753567403398798526188867293872407094137523444596501647625244729923379451127395370424210434433435835290753232726352216672738675757743049968077894054528374913516421930409684720846032140598129731150148739246328942518240241987973938572714116265326132799749717926217252995574134262176001801018074806519447834886937534723027574177764839143451592630806593754901294147093928209620329807819336405515697220739486114261236867505533056072046829302179300868253883390452982093284756640899358745185233482784009386730416703134469342105869949041488959069230714233108361102511206435883041134429299725859399664507966715205100094676491385830451729977029123563564608356944176855179935331423369424324640387389506297840042127698156785754976525736315451462539567874367789289116070412891022983858671256426147210451534314924185291348401033432819148560665091041062417826044667644013913456689378877035594943849032437465878875661196422604276139203463689354604241379029149375859186664132363035836972698375988881858684605153477163061807651416003578139699570174718507393640038118373163224009305370015111732859587600355516145188153546501409709625699479130368798355310163574929586370844613780090076263543538377555266634948634348223765037681377721287521089099231791146397210765733550553425472161673950059667052890989430207378757697199543064887392404023917878394282310058496181239427615330032291167560429936292419828235336184977006946773464642965720846355940962815912844303419826815453116136131219428617886282209419714475356539133256082668011335874807978604729506524956547035977564241300319824033884136991670840351501011246647056773831412859908777866340108142136691479520458354429972353015761822381573497039584666249339851790233610232653324789347549217723098370377578051742492033009690295362352720076376015303503778715275026242866479233981438946677958466821261073346171621582241534425127975179313644463451673839203767855632049526515351339836578880914826816998050713837507022761127353630174378391661527144151981104187289246385821500952481823411290248340907024617799201332682258998768629079085135049974178302205735487326146180989093782459325504783254765529073340191388062804018018702766284920592284474961877654490825205449656620865546875652964528309266146361045546617166681211022590076197919967152959903173639713923747611801279689413187300130656865469530667656037139004683845913445682976232373640548515733554745005018035183658129076692470985046017195948198929831568385622017413382592848634957116152617223952375376614981889928949847475341553879594835518020543160499662950737831797845358705745741031251569306452489379746892499239112095573296726207337305322811928170662974558539735877485992816366897157254982549583413027280438521646341020578973367092648815994743853217418469208942472157266106161386082238496490269489021786140553677154695374450940557933873372907268516239205226806559481472033699547876803900124856128323287139327220646768309357578056521805015422653534247410926339728464558709047534461860854323529562757861091326139283380559857749419450014980838396240309976216094512168691239166574420987726070102584217289593483511856830404231214091302216744776669919603499286275631480069618018857060299757745293196282179463556419654457158881609451384426238686495787549972878325217333767719656193261980731538683993067855568126773202967127575721209925233524208189415369899970457030368072798413220612380989781444977014589494472219985225445654179425480723548917734194281924140592350844538749864692414142852389831634832438722912435631404484628024462823044715104391944294424043485950600173604710934092309290298871752569589929911076090496722376496819059603400637846075238554376781858558312190240419257863032537088069217792477564771469914170690347893582558049617592127195476797017352780821393805835572148646932703830919270362356893836906458843998346082817181740527972660564976310746994892213929135763752897512961596560001840729323070214134667557623114206313447961770432286612645041216890350013873341091819826218681129344990973993128644064488416351628990221522602236619151345736208837484483753611628741787703109054286215918975314252151622290484153865355254033998886931236861868738097926462928298220246478833354057296303627269648655931835254994137574185407002664391596453200579447335742499691708968412258769279744075910178184425317211826323043671478220117142426404310514279565753666856352575839293693047057588695754210807516049575417178818244982177794026565039817193639138119457134028008449945560171544697961038551361083509275719161184685502693454331816549668671088240631562400203876986268773784659940264593860337275960246561591858782506900037776652079219916617692859140268664304523461105296785182334157831620459861529128778675338082109958007076191785484541983198067869824349338223408462445214563481880281335368744865530074130540097141378061102587598144557757183218816432628666152061518107904344320587066205072016819418662618254876068084153072856151151281003521784382376496978207591657389488152964854459174705372160854554310911774616369287669977684960111433386037274662701040278791950731924463940220865032218113670766174391022768079464102437355237144019370338552906508316270780726169297366245979559501703439576521711596203356150239854516279087916513815425957853020062387500802062382330162013197808488068126657377664332791373468697708330007141335102482367565495525420032063854045190198124625943919138034910288637069338995688716812636532010557713641156533899131536035692957341974092103617475465108168640480100243100034270668320384251181790759263167149733234078056416938923182464878264790463524999974456734121869504675802997876252803858150043376249525275935257941342600060091220455625775990559563187536832196448768903444948112607909065210664601777622463325151504439425203227714952156304485239405184417503408915894394921947560928508027399312213181851017717481912614859209111845931688820933413633126149174634014722038849567265481714478260900978920314972116722490864328761102845553811896561528103277563317837847119195972329248763957945372977345619870491121372628380572249666956622911201873639073511036467592983949550869557900750398749417912670601757450462842254508404657848976092480775628840593976258677986674841858412903954411503865629875428282598319238583351221713380808073445523063153245648087527787590675217381613644168932973181471407739870148627260033914101509015695518076894786543915137917413415139583435919843522737311765056917645059154103456408924962740516455108429145143634605850768562605216059672380510824061014845616947836302654996278958537185090188108478663636623712639836020700959183871514876669840351041996647573069078948210150267708307003714082163247575046477799419337584505081670772836634439853424570200278813052600507486439361514774907186031536930466537175813033729695460694570523634725529751833397302383506939207570396609588377827721243884711625081578368818050320609698291885748169296904996324555670917348369087997170587168842250182665444660373245793603448735299270474252546660732395065753125980856212848493361936597053905940543716391384566895791101969880551823932760956589394040327999090603371228325475787495376356435170872365193003931937248008967187793911068679053560385417266096922741117257190563599021719556844471476044894158428894185438435465052506880425466832956846699508072376515417017453917347246288079453632767133098317816730585473407588601467420932630855963725549998888940841033037994645455646134990692280809823293170811014590949054666237510683899046605535647125609644463234675762574716903059957280449422637894209030778988512446062545229506124852083345432713543501302440286005147781620843975105001133418729355925508699257226359008202900997337686609728408851356601849271037505693425494983273231134956790071176699243521652289677356510169754940019821918547757703381907864270255773621439632148629383132764111285605332277954524538819259733975058846221469242718402919386951143824853333666807194176833241636692565544845878528889148888438030395950218282514772275338399572560290766105900022109788684385628651910720607694254898322629256679932626048386967774311137757027308837620712982610721357254117307344307306865300836649866764347328943717057488843720385920993285111684522982571701736627804991274598008368112612985089160889186863711889428500148571353767920909716701987449060013742062840685262933715677607560316197074158921330490530826230196266923802975316581850132683512070731791070566132415721379925342433034668141170691648883820689887560273720442847032639443376231488367447767881057696189747448918830647474797535551447520210270207695253412405520404205623670511158087288534995595833012310467500251016967081372698773544017223552374280912589334631158162695175903456796796062962895715811749907118433998881325895254424030989883973760122223851899918155454920061659295462205088589863442063899277502908928167570418909134272829710596264770778886090382294612772911162153720723819353822515458415613591787563887089340869428427811918338326342292444198198910261788041062266337608332967030365923676325630879287116512158441181795812384745299989049771269994373559196822451476965271717167213587579686133865901692637248347761433605107544511298157466902318403220880880429496577415850441378770568718786391396730377040168972905827065318106731246331382935808410787460847427601511233520431129650063052278604529860722599546953963911711663862068470275098787093436223485501748912594844961093357260382078885738560133801575299927812718386365071226100514417643395290135872303090336904251822379107563015070497821920299770809623780338034589299942332784406208186455841342704094371974989392902863341199963267045498378901051379496656163658346609147377506740671578148599280597187315927380605711504533936750869841847874670758130557024910193333271838668968396549609640111346968592865847809367968519797880572109983719120463123356283155876242512371938931560723137627425798039156849079478420537698298652892877382677189180421901980239248827585024317940219415500886351038360980432553063418516078592995533473193372214405251687847558605294591584084097040802741469551661492777425966461991841546888007788654455553253196414498040723433618558729402787864994605478718495264902177163735022358086735336199403475738733415014893865964580304926754014903646199045851064316156088180353748638845634995056571848919009754796043655809090249128067678668568938926955206281101817034797270163808169111487814526267563843779188166814922337560520190626515051853315397776513469746609607908438896423727769853951502853537086727061155317268947467436616623799106305234239087325376335393709064198638199803299302006903618765080213510425116820459674829608084591366464266143456632260195508003315280091012739482385779868174342667082457418279952045307092057617958332762757442776366254912334514900247136463437379111903455184598301691489033850371633993247248395512677781145016484514657775269149039642280435898294627237509583756578465536841396258936050715749056932880894965126104542156395152712586557498542491451891728305291973540655536382273743627821963447171726604066013829983908038949506688471104445637403293476687942822344448963578240348683566940241387383314588312489955525476198417903698941253955791178649222618115457636757959051158206134629340394324768333371614113419143350522400396962091660170641029122911153503929789098815263111295466796592360259759231559472828041971506953312964719821396895909257216284464120557111632317504071383480593086700153476198881870592132051811112628134935030894951911455252091260720951124071952638006097108998279693821623222158208786238930741129272419108408351551955633717387357952523172116321851132176210965887130170050255013769986747140945600061427493769658670931468071662895536714802780826906480651299009520849568835934430413131872639629095611241503475530016743656148311707444342227806950920711798778393741084071009167256812533769881453353285559075255893166049642485911534882027912099002811545279223178201537344685882365890401905474279463475441556765286296975433153448308156306301470809372450028534559067966422041212534220121474009567261449544598842565184748253454050106439365313392946824914891671431856937430604905922120698688056527919294371509236695551270711920032278522921667552419358215424658264653142653743628484796329566844653632138626997528158064693945377685239078311754421787061647566378694161930410006882519842415901925566793175238748655287844018113098292972612108081074680152947766959092263337497923848548375141548490747605188225608861000675551018391840849976447925221503628808038427525471458858027967513390877883145279543010091666840493508793306770550903929869439388615754451550878099749070617629003742538889080312189672280599724782750568695650249193750107205724000158886466430558929324178102807142370858055832673464425192164510760419551389758562421542405710249015197383682572679930239858325576468553864824362533297530917396541402746937150356225465761193709821003921880221898732727961332895391433028827396441063609965390681959987673757181063609966457629123948845147278685640816647998742202819403233735348799249454045295290789372131057796102974138280828338462516886807444088630255446764670244751852384209172877551789615825110105299415884540064696586194074807560279747643653206029540636911374059165234557694648708432071823186900170205975667013945521140771037263415194131230767291103431435116335159632001842344230501731121657622677627958948656457276834135662928509881609956565801245496629470426626010865187909510940570892309386060081017951830114607207171553287304493576097036727620207670622985303857011897275094703188040559598927362052096928069297980782984776494531677867029814907384818425149036684532340447391134153219427500464944690474216955370939090632202373792688504988302136760020001210786701186380124447161688244451379014589115993037114957862081130839693947323160805615022850161788314332222452996075196010253645551493684083533855065669949573975482946577125412996165389826763758534738080941712127129442127837842068801408618879014557695760210444248063559556337117866994021067513220789370873658209871561985478950330432457950330542753765657494755317469907650347700241588600416654348966797279797662191620629194305586426007671760076273976502999114523749438573239641747276386826634731419966070562198087146071455619835214564711419572507182263015242560684989167846831370175005439391579006678082396345536338134093452383135554167694657511981399273616907960745967706252573773145529594271303497173669006401759296514171268049387878433154339352141060381694926259364667601356720175520172156331732701843443266873724606552528503951641472867185776363570793762731926626233212479774239800271122948015716154961700725450480238338745164336331113268490511519070216937890346469374356500510818535767657956902754743670500643725316436759884796347425698106514508238528184296221286051376809018018698573281021540739770513512624858916548326767384647326412251086612033947726056390952323122545608403946626673707721733768264195196107103298534525145184426837100152235492612865654333075662014064246061250358291598534479343521108939511884286593356309817797392431663846107311459049577938135644813986696199071101417448738695366285377307259760439637289957828177386686244369885330000736574508077902652630534928814062267694219697325390457962007236260102118124534855970183450063736582768122388779228775956325399689882685380527178001374050703983911297650673395886213203107400331957407098499868262693600521891355427381412480091689004663939580160302287465705797684294794712583480453154252532152455721503563451896281350137707516885646313988970503169590405226629628608629960879117858770037346849969678781578260302817738402749195597104474805143076780922279195026143649336716220554858680789500999501651555509341162381383294413399947709770867386344241327660070872977683772884092806999223533087768578456843840266886367591374255043088336676201301726888122325474638815543920454675263185294934204169151200572832845159475203108882009079539499014441114380481360324133783473266946697638223474291504869140503039984778161850864067737024829463659964587835389861169164440402964003206772071165221323411588898039720789257630163924278039489659121972972736360118158347050694578644847823604697446672126243926089840622553972366066795211571084279323859423181026683864712954179068408235289446743436836395843992653766583305727217128167437967786807672692050384932499328607992440998185837223598163484870851244812234334034629619830009531950647541490764820193037937790700108553694881181531243579977159066668951712814281697412259977890927285628817250632203642320753429412284047970844428360034329155040452243824491007611195803084392314965331490858647982839998665167970791352006652902743896429186225205694860249392505794473027824324549904551892275065043203081619038976328199195863065553057965904338016878450971575154576264786494746622295947728075352785516216310464222093561537675513216331065744181946906308240531742415263203795174071625174686425580142388455319446129520573902857565325610325186931144930303934334932592112400550266273962482127246361879342020122535959772040603103441044140990703589995251410404358464028010657180425075236975253617094491185205306147996846347450862315284605360592348831955183538269994445753888740488914159127002739713813590384760781354471779870470224755072351333381675019576628670509404870347407594180390387162622681942547666467764414524147739832531655443844981314344506809447575185618176374815760721498052595507582580697035913576662838708907941945430605639701665975793430410283791514680256677745700325664475038777302526582546745848909891126477099226764165921602732585625419942259649751642707101656700097639343451302079114844064760173782539782668763999153886569474293975777188368960376417332884703693117057614248324863429629513402322461116605960389259130868178047634924931881471288323803310613409892438471193610871108161856082525374276730826436442484774089523992180245616024900227271879653599534242841130374201321951407675032979453427021560070826303978709604183463216189412908781666011856076491825471886156514862722256568556069434110324486771373510709522953103325911093370773731950365474814469120205487056909478358718949255897952721060750441831572048979239744566989046237573764840261409391446839040690925397014217869342677030997037890888170953607083128390887197913679752769549263989716711692880696798439418625907887360444865421954031313928444553941367141273299182636521063602984983450762062692289836522919988307413098782037960674523758909343040559965475072820434442931306628163748183149411641674163948881257545041754641395914805700851536252303854051606759446836381625999349634982164086274206967043954846739333454610035910966267160434932036879450860281395377014565253799045990980610326762070941403006496561315621530671727462440857501427079920121955482812874481545635490797597063884787130772523842779652928296889064954628623137889347371384265407679781245412185601107502543707602246452604553485168501600998628847263181427232927392470307237606443003657727420918893259433296963020557602588455565012653333042694470288853801653569929335577397023365316181963191013412038187319097231485601496895257918684660907262885101110307167385941105687871957836650037201143238708938769376808329195023232839432561176211022572133135374857581723875217460365510523232973739266128995099473585459564919844153563276306251086156177053053588604887794280269168035994662412710747837252428019746027614607277685176375351188675087530824950238968424453117603795966717593897971378733525647809693782263551770307024362518085067334808227429755410456757323107102060246456622919492236701846067552112201465305338148413204574260345159270973968938024500971909021860863202008871736146907289701489226501180126269806905764066572133723562689109332654065622185225944087021748882212250691890028078212794298129994895934322500335177453302737906363416126923032533649518868277834522270231983159856151297994223280201673690136105455143162361772302513570808696340203725836640423702665845255801999737257150201728524704030610041146546023817157068581715192201782100928259710904716225689849022089193957994399414636285211927850336283673913225418469084539276931966513749639210633225014998667057967964058435311865000545284838314066966394484797366692955654275008612555845270189475367823139122868801553839503450911776460158649281579225410158644276261115937413031672372715306536448936758239621245134129421912146609783703606521446411176697024597034726215028069889484207369748564685554486922938892237490396407883538203072561974284191289480172732394909539267943321940540483275804621366488051704881486753782083354693938688957487676715337267180451197424419204979703840166447904005836154286496172217251671751394058115346092672988494090195898861569170918662048414409925199761606212277939907177260714150831567393898921417917290961664911816229736339954555571599582130336728011352142697832181380161881196163545586923161692917112272689749723059714378982896034032060256131380697300876099531358213122944209176484470189612254207594341383828388065868081210613521514418191486428309429438678729734014977723668507246322554568001483138523137172715154490387938664490348266752518452528119452537516865837836420091543873872710171823056135420590786494215182684824587274959493840914932413298528429604031967594327788711280962338420984154225642204014089415853723867272288412367705732396654978783061668857429994135482832429038464759213645536112688793068672654308244678975051422978966935329051691057168686762968197287614525595150227895868722002736685290623555047168551342121573027273090023335637717513171488894583894447377520552077531275341378285387312842014542641286005631733985578420860750405856069170805577897981404221411983839488762190775954529616719688740898571875997762379091328780773283060710557701695573008477203389857171521307254052741987508447172672355970981550850869849984739054544353085966659258639812813619945630292808442665952051948428200215250293292732715182165145254712473600936569695592922587283882796057373186330911325461526477560346829088312852899879376931171563887209760133108819763547833158672946835022818517274310550792296229711364094839618804059732982872206749139270956204406452618224386174329081360406583468299902414705371667794268935908435649016696772540749053331502819765035164412229361013133389780940217795476939786593991375262701002881021158509576309100499049410326289189968360501153167227990975095314154331887578772166620343657705038837009473304363648577380393684193189754308426263648343591490537852504637096532504232788905816716152972206703707548267428738172812350359303196570777888895967228050127444250524383368285226437371256222336962149947817428959259810678911250309010404282696482782069382628033429984100455710287900431674202732282902946305014506999697427286006502711758889877550470992276165387240793627507964216014962833139948742535922339949727320000140640739043774744671784438361791019755117017071735163521224533157978570680393694300538164251290259557569583548965211266359384405623455490985526124015313483193103054420756167170903915018222202575188834514414772878410904388005968452232281486152995494209745147288839023909680573724967608805125537865765016075440639235770307094522975788250591256689072317595750867761744071138138023257617069932450952573870251616344461694037200697171280787482489390786183278868318847768670796955734358773829332357687372430352903499772683846951797076221226005444632641203744984807812109939642400126947227685363567776608674853755506729309955987867783239674256234005647137346079210289715788256859763681488556868279512918661899902012610333244044881241127070061671905478821402119827424751991998809316325746604784035915189245528432387946090460188409505149459424254735595307140690009033656498966311447400473980480031526701774101782847058828692760982286782328435690442554125265560109546599995268224412813261795599378492008766572795717840128862487299788394884703737724748859976287617300563746154212541220071360004617754764637359836336675143755666999624863942798680239685774801498484201963552507320823412761863230616045652350684629135458925406062129874910438488566495976981947121812262573457133877200920251738267311017702513509755446815226261123883895933968510659319116897678822524209192701967086053487991709501020573963669848104312607714257478442511548528333815888849152307620889207813148611952786683276533372516051174448499646561825955669721511140672891510630917932667978445521117092564571503970350761441374603783715457297247507905892969150445046133286340984829574285201868942401325602590535142265458814792524461809965385219497832987271647485428834475855702703419065463574031299336075744170569796854193247791212760156865670836901043978522352580861000275454521665254088725146783669064422078226238821072621064282907553441679859903544836181599735967265654415168747077276029920331307178301916736116260618921097906199025920295728447082423347848970145397477968692159725856814905626382079872655427652723122258468062037472240089941412145727268928734782123114283370783917658979627594358443065765873944085718023014355817500067187670817499754359271799781706740670437374728175646009753749785175977701749746442881002779490337654296975985387913781405698440750119443371690157412227714839385043455006259099146839175880515441487735342911622401338159433311191207543559332949351458303697581300960751482639605633473468821894282500458192504349154825011267688372968702284833525277069605968819872432709392467301249084114488334473605673969269806435631213632420821523082244913947015539573480502008948703346734900359160904911331374032613443038150958916254071231190767310383151773347118345261446669552726116967727576285596698710353329825203983677361989856663537886354666887220376067206413363430827001103377814373215984316218364917298830726937869883263848045370554792926398418044182170819248109694207282039443924566784910486732949782086713152007157146282482111097171408161637884279716194731831614993669315275948860601814451686127492373553994386962977705381889824336148778391424406017696528590779848609576591018765700837227017333984071407118501002671646062710551685609649995978689193882523412236344925335466419778699796948742055659916291191655080868670379608834828373253842291469867444373228668670909344453290324591615310631039858096286274368676395546457944145242171932101451746175841922007487235029758605164210306866743306958701891737465193142168186707445890400158863590719368289714810447388405429370669743300464481885535468414499818697602019020832463454257596981752891935397913262364874301923251833212234358400353332421914854660657169698754618078828570607911029499357425634508083443807305412898571842353175969304526933577987831837994957138037438704846012102386337786841781089072133113118833718235733281128373543004159971771948050330621041324142681727420591774797504320052017159708267932478203682639877974982558903756428550586640008315515755241799785787216855566858809500250518492010806410512593609380511699241733308324896053578147668052780507391504659944296270653942627141195874047001265451868221906339488274079812574546271186785734604266202254914526172903954944556695719389943651261224059366161592715005316398223176315366482053137660567318185201930318333570536852544873586068224937659357823253799605551503788711698926052718522574248248743580470492656191439447738925501920675119893502035379293793628203620365298558711727834508569900399607833266367080915097690706109050542305288605224013605457332169835486855050048340712603048532843378314661352153281927613267456254019381136980362163295513885797450234778394717230360046719709962221711938343782177616254385396205483404870421842493297052896814292827573332911876909804876937699518718798918739955948112194957550351409037843475392813644849294513767855733984281081897290123505211715138381719683847622061338032440474832261585279676093000370539586944961945612619003287744362889412993406647225181759987970450194656023534559960799813261824900461672163754277249654120757134198991697253729495794605888107465847816323368243322229328177089760046614826598893028859151060714588498090827133171138901292501839742264369387734728342837832853648050543651000789608276382614202367607863590210196460008277841047171083545901154455785036601076014658410381908700274757586378406895846495777139782214908636561266729771312808785246168443245409617188085574520427653669143514416133714278602423785659584640790175593469491895918182751186528348779826805987514488346372243045385198978291460852993170104663432850568107951498437832954946855805054382907269897041119212096835513372919488477750906505183528253149717040422056743199012714162129229004412346142182452327385249715403400058826395341692302428205156598168163460912320678832924172369764509044111240303922051381970998939225369172553482055904673396008902577788020456452882814858666098139104056789529549174950159021411860405217725355731364494765637349671707358050300673981623484271489863861316262852332305415563010113683783258080275566166137079060869497642837739846248514722585113060319931843461445622582266496507569196531312767833074372653094837310740528935575595873912404374847787047824750754490198744731572578099407036424845269334086242046016927278801893522575079153659002974283380681864820679470855515691020084444088652486983961195244077681267984484818194308723416427838874219045528475019195078739371085343537420676264474924089995246840643634120155908080608480834027141415268237728449863459396154541427021301593043272506668307521519073444982976377933544164046906368704813188811457482217242641749781071155595095039940783123835049759788437114315212247023885159646578623020701235150522536384276087876116488628029885096725000181740644380611245177696485623492901236880970655064167518400968363841478230206569135153782163948771803649768966765207100793535869230390123800568822360053511909580500908328365929336833631415731350043736120724915577987024432947796637794100971296305772626082274191244726931780874001080362058042183550582117976239845036460078092247331400702012638517549178111407729018152211418308534840187618174370471046429975199641817871699724335133874924147866272871273801938570054075894294309281603232486389978750753334305818269923880236402060028264856210473148529666728189230138779709380576776337824678038995618813579995764985829201435110982232604699047674613097901493219871350871004217073263430003360404810029540793108431089058292774576998576349789330424971714365348955510207448186176268930895616420243429609044143136320016672538261238827127083773129444203004019979357016734425355842948871726068761476830073999908597268655433612035549197604405738764897784226753931077756122873624225563554578592518790486646363561703634845348918664327243987837008298575338121118527299471600380869221050564586540212439200410621421100695074270037220026132657844678292472554606376981987041977560818895432055519588901440880570310858068807200443561380439911032717390491829948495897913601611844582160396373106276615896764299821788354037964585930104471836751397456540725748907670225192897285608486779375658384384389240043367575473526505520526181465450903268049524074777527577079366251085813129164045863977984903070951354222313414842845444509468314306908630094234801837936135252026109686524697156527734652017204844771451667048532983739669106588937862707550780925992525100828611143198523658507862740467776254627248273575692083453796517406512088551590274970853915211313460552495100223794355663353430226350518826593741673517920773263093528086410245137880056287142907992115982189234766641484312956105040693679474843500094633870964615556081387134794905706702548435395120099478156545961654833153544202709524787993420208310382806044873055968732154125012408400059423770024111494432565316686337051958019293984606197939678360030949394488053169459299387647236967712469570479204874103943951170264310738742516550409371892510655074527453721167667598201525031326183342019158846408428855454359603450464092339477815049702300803933374653602914031544757541757235458001375425418394844194014209271201316353570955044045744400744298158620369352268309341746295263104025386593661119362653640917418803318348930515563353832278536974884628317015850148919113932591976756148132653884549005119819804894001674376714725082473363738239192691297591298617826611692326359864749804225174841749784177317946609799501156418357183467348826691695993757843758717998665787272055725620789931425570873428636327799931625101446380209662012484227074380466881083541781115706116843980549420991713819357689273773525063939835532050398846066982939326208689952648015293321210620037223908693614676505036216333249968239767783623343912180213688747250758756715223323208646898973593661738531410089227098111517359283370939502011494020278103396268349257167461558458099585050325369675497152410602595787199564713801755876714215391250216938630260655603636503820626170780642789340303554991148947997398979786301556037207068682051658914977178999973676029412780808452401362445553188309382933918272982285426469582161598721876761845119940505093299891362408562879518102257969488705354692721638357151541751835440692526724125588625609472200136922285992502728514847205531052127830454632611490831202364106160941170184865022994177984800970840248216358736466925652884206993045455595427703855751111723057301397558958798586680165552483365948722610041746651795630930065860326751015412429814752245453164232795867965934543428320743156507278312376806026812030472463220595277706791557748016222288793081867409217004468852714796996332414219030247658769576020515886765039989366176550633313447918503373117901542226074167408099513957281841700691110112807581893825534983186661154967178718476684873734613209217003374366489146796341818041266158992985426449197143279800336364627118304708911384932133830943619286923401204380401451024509447562980978006800624140048891317361615388360503287234080746570161108054817326061302110318409819579182514264460152055016111659986907603565301264195033738120797044777182741589746115841308804931911180319741492515872612076080518306498122094496641885803643741375791709144012303400998985190739593030783694871454703936799864182006688634728502916729160039991730000354622540149729881130832190857332611493913966029705933602272805040178675847983307399925882926998584203846999363588619901187509300948220668419981944709223717947285862511627849309324785811180700310010009633200692373573442566770167815887919701625497939599118195773257292954823027149854458830929114984205620985865039049154646784665953743482542502855602251387129594306263799770916028317756190401927117371902399520651895490419882519532071412762009194804210211120729460612856050652058564539236043906094365965962866228188831678831070773209764796447841500831588096169651205987356027636273244951679575761309446407248761172959749157589035123244440018318032819113232622435197850724491486356534924616037523891352783497447568794478540598663113812893773795100320737346286996135673270801538285196943250700935329303252201874622700211387417689475248727601296892484488417942459631667544108906699027944456743483128001644803981202891845907339535193513466569234977371193823336551846618671365166193646504554964200340016863260784520442211632713344080863275048911776192249003886456225117975696843812027379899850933283818269351141779498475926524104635697889598870748306900669871665480980776515416725276379035590502551527758579110910291322861484617466261513498950869839931122612965228891458873756515600527877700185744270684257749463448477179179589872977667531066676635200482104250667248326535939848761489675234487751200194261200328693550520970935285932325519645725147747756779384625461465367758689484443048944653423194214902336563568076622805639204001318403141315742155740534968192083763767408691858681937197336435128165028276474920164440250894310955935661516700715441659413615664779530081104465716595592113799144269096490167692183128186417498640174393782686339035872406357018969566797000153793644537888350700674421138577242536240537752398013252848509983079329061688832631751794098578947666717126970431908998847250184964898393397409741344948457411656866691468226784000440413320277038297563277510417295445793536990523482806664068827543416181126149456251603000075566985032615021303897978683084454986952592557234427996989971280945964124875339434147328208430075488083052196927919312818328091461684908949041876163191039248449441543318477895506198375363237119478586331415834428942836005649065927857202216835095746927191722827614116921246467249049226271372646852986511810496999590416902982151650736411113025033357858128111415965272679515060760863136790574659669231995472542568575462986390740962532041029769013737572492454531350231145041440473117049865066714188267129576974201046838933294642241331386952820575708186390415881099155884808997464255356782855312643123330034372802151746582541035177663014740655034491030458104639432611879065763409958336139068336920418466757540472725636888294369348656415230516402776375027906090147246114001529555468721719500009884335640680372195610904813028959627544296422146467717534987563024167842007695441684179939153121470493248231337180831553195929602198465255495331563719004344796442101239501383304717257501939478295746830467807113755395035792769193394595589639596941658469159521945496846834494699570391480842980492996549888111169222135057627933250540886950453439810742248457904334971466233198194862932690143312712802984364988087122633518237551555037819962225218710329262015863430706546495332512167008961662756521977832656498816561177137218917341629292959946622354580827733532504780684458432609202889659015027220928062823337991206356185590091691127001325982234149346583542549192682606220602898004647262091970492550547054959641482810324886441036788023862248265078748639806095851855409835284698868164397240685862117033090740101089481234004466827333219855642383653854492904159395212416429039092650337766797321721106242670383807617600648168102340678132771262520050681186049519599456721594900438469647458801556325689778920002086343878466215027240615399301550411890142537190804009255302395512990781972008419073675719379871740414318217712790327944422374581628740538079346451453526746451351979326650275868628276655602269292554309849135182686652641573495726388605319564422959505360330033367484059101493240325075226159973845864802938025745733646201790182012901453900553708051401150046365325775686281396287564224806157935725144319267808404825519337067550849715135893582864906380469459724504456810361889513538445984882907209124744798589610829429413010584329578517121099721495070840192684223122198669638920872993534633345721347610742691785641376399413883600670267685895081211451376469568904823864832940642955560856209984918002801521328180201470485079741739506960419372210910446516539475880693184778758845453521982756956905960542695250097655694019869457740724786793413310638904221446840020424975813405141975204258628023525585189437212316093977272406589416772127289496201126091234997876852621741243178989136665702692688746145184605282245608536751204071478345382031556716642429749786672244182802782498952573066484029300809346063219269749027951232084428813296248373932643122020175341122722684032945425697492495927649587285206289370792253383957427722815763973709984453444802151286474265665135258324164539175070455003570803937876111303290541058853040286572349393058838663335984461823473085007495753007755321579760616251147553085296856811320256220143918279260870683977159486024877942671269928650531184900551923072481010348495535626382678354234705050005287237759683985285316252984250722784200139190095038491778595907029462681910556896986347607579502207105601202955958142818709418209054573464789547488770469823374276169635059757533820865473771717146510986239775438535385989902232026198849039041155702206245503438080191499482917835558896203439967070036059609253765428876513905856863247385763827565441416164589193330166844812682927312058230404896148722168896784636023710994457368168102050190839077293841165750370890407931202211847603006980005574930624814456058645147121476632972601681812234883947659385801652120598534841646984441427939758694067718414943848620491765444098892492998264406799631538301237391251063848291849130827395549719270326842736359800950938889543352144755528314806316499388020942489519033333445335555558073676138895489916116137696451589465592200522167276991065029655602140503169879639530950336689781244371041746249134626037074092285898962166374063893540901879361024763397160964861502795826235968635317551863000032684230610551726378080416216814748864718055828805315747318380009197526364053210522016299794363162115645464381381175103999449346648862296310104725610897173033871054299049689187241940867772602145737541679075208171582338904297690839275539259799707724300120001709556031251274646989504869448293767048090454763501407971842219767284291510693546211422657606364684814207355067833476619585725394674130978427096869154180288403767588047009218829616389606065153325134803110044429217642828216743720627048368955741044507984460665567772676912293835325839371261697046624965318504919612936954743513206101320880193118895413822000594500292629420068405706469911111702608550771826132746082586369024551717203777746762458733439818465648038483958019931265115514730947895497112649986981165666718923396117733391360399530132049822686141533719186921379031009387956968908105549300765486710125860976753490529052515917542824541645210374728269903412356992876355284160666475973286561377479807932737246156178396152882561966243182252605655569649672133993425154177297572173721591661000377309980675247086254671621313821902431960190206355986920974459578621605145479386343566412198056987418700088621544713273443732573512585966097577434867580550424894979506676568658133287060270534146475652005507863848852877854359761511470370444115480785907184253798246880289012146008683787072124315441218204904925727310269318924370287012696098097949079815677939620294856273873234023982858320566801056841688142065514400261824834823135540104236351501429379596496966796540497576392541034529054194022271109148899929122241852530643905203935986777003271294418910632601724375586641327108158198290573989837578888122678472262042860060465809118906144681468768951863122931584120304189272084868511757999976373276221954739112534278566057417229703482248599117581231197107956556841695017884915075408972962884372689716017811382600596258465783069970745706752953102468425139157036230362945647994442136323788644634014732616826116738552288335435434433488715582576564182316715197874203310477746308857196568245733422358323359890970420126054203106057361744426537954070110613499482364828870739396184217789562432234499099744637486388831148650525402892318096686367724044664816718150837147151775693190646992538586213850957887449714374818601264569876640634077443708699042160126515608470179711586978419040815330577286559017798531232470009286744222077043553147596855007207360572476212033098549209840741330306894919484913684804657543886152831364294720801361448091110174663427029290363783110762196985656978747388428240855204979240279783548999951394187715733881251008451296665313786109444133889413586275100302318898339825398914446785554540861344424290647136662900793480451273507886659995367099983013275909158720567511646809236493246112164297108640300996908398989706022801040529631702635097982878984591494231199652415207524519186093509797819827230844312740305195676271006513715437448360797732987329960761759750684453003117156470004015502539353271667786439580629966484273916352071980692494135690846781386691860799524071088632533518588635867683838874996889103488784382252273095589697765773371761543783193345378762911920312844010339798517079071173535437391278653610313635583615460167237325070317294647736726792216279123662862753964819722153801675725643630391103165414206215498752133824638810069052769188989100592204742108283177407606120689457975643095757166466523968900035597104365262945112187162470028984700479373258144532279066557142470361058169439657009405719975571225302293566355208482728421180356577636687664567799592316367005606503171412872006172762347603528953835469480178957649540081280213260527106832464186294757305633027091100046970706084499708919496625749223690491800592169940133029529250565908920461882559616326422725237932151519808223603963952151385442240989418644007726219002400138864009090398067026224574588496808384231704996140515548723086914112509722422179618246746801364594633095731785718879421430954613935675939603607239129476488228712200958001350433702474410417614170840072074332745780178024637934339428414829090063180468411501157323510177750940133514963438051407697301679463743422088303963909691693436226423094088921757515483837652884063387428475844196282833039890122837404043931985675711080717648779813390764845211672778608218269865894216505009319192705239688498277589232911122668623474500835967725146074214715972733491297530580992807085034347191422821121361958014201366276242634182294282003929401217901805846607728595941712873267209135547727943236567288656265397087455397843799232285032960366771398462449686242548764838351475270691855444540315038461328356920348883783730210438412671423459692292189833463525379946360434618388606128619916225166373541414477305362780158496308942416915733935469878221149915871451386389159341718359061669221576725815447463784330292252876197175925744510731587484114854922444693738948096744482750974092166020037732792641235640272169827198653814108264544166412890678355477462619038891147066387317161323649592084221096800460786697929895936866604308526510383617468810870150215648779937454945616493536941442308632747999064250310122770428301280421356611621879562175095197603634949968947937501346286025062802624040816269367124080418507350060247268001477483452673101915842244411409050815137449157812075601779266137537903496615754656920930588062002523894275036179227707523026538013653227454075416233384291965200174529569355807536941424056498944645259305051036055902067722600811456819758175502760735265233578145907176298366619313897339752538912772940266712998291334208778943437618653905612002200170711271637409715049375451098142128845220371177240933242259214745145656780312904585215438478498391241400402380166497901971366618322403456034549282645041853415136936982167824566219587857027710887242169600581639769617241840097000744030910036532807282097640199292341217803665839536602066636489112642378067705802261779706641175859761319835540549814930798063811322921417742750099172876724354039085452557478749748432249435239254382431425810180374182890764088269398126546626768360497810842410606017146713272325557930409632414747731162432665215052646549124921376752521043508517823390674727773500499576912576280294490175559789865097530283964296004181209671644981438806566709793670494877276803198163435514753368755044482625175050190806858186554408734919594772962148132877867235735862106262293084025845347984831728020633534880713762234288930867902431922091170381863188045907172495180920833727326663594740735327170807019358385396601415854690934270329451139355441586896400604859158078039674353920885852152032709851113319423863378384572401520537247380797728137976575512231674920619847720085575848280566387099338254967137233213160655994299398564971452355086782133489957300204359480282721611323447306420501230406132029762564884940819439586583691943505431220152443407311783022891753976379323538786882612507917095417329758008645610569886211340395835817938838423085137135445997794605771902224754888504526129070761386026698553459353606627554500423498402817309866313754431942939409347544386581184480657902748798886189701668546237104496108596992739588778637602979270827393477389929695325753935820742287061191993755584846304046843270655981932424231425995468850315848405750769245998235081723934786350297952587205921479438385443141318846386718652341751482624659539382901487879607963805420911259777398271017135721555399059202003902350990269494193625511479214275398390304441210237086253661373195370676133225317803065809723569099396272567859612223591854765785451259024026325277278225629409912747126831493833486058259348954126901827438345982191703328497378544900245633907228468094950581449992206026216014812104931271312471321813179261582748433243519070877852703030987227444684195824327308508088248310127181411508352586536520213798875523766622723714224467904986131631379139220212650344055110256812336216226114734160325105348670403315735434375676818545602618472079540565965200243751575822707192284354726510897028326335754062331230754797973085292849140804699730044256471336835070627352833770075407629565954383983282295424442089998534346029737788879237047578452966290480635965196568400635074231285483085360483156482771644095978577966485865556271272201356090125405807199127023711736632046453611930397549864215914335400776426815537090322109236609871665106113402161522233756711080522097038625888801058713678808786619826150618005914604500337486198685689354330450555779002495221026760990954970097104339461958869680870882037359170010408260801372461234640765409853250167597154304261160993420507934463996913117636934864956244441045737570840022226170508401015131022087779798361084368055164506213716791572066516717946679861986601160807796076593665122359926270001860924563247195272309958953763975834946874063678250302593075350328816740882249581645396260783510702399424540617869878577187763214752521306626851974928145272027835710933990968041376089392473805261617846255222101656109442497249412815922757164582117557665819464574047218244762412746868859421815012138189236884313664187271226364449776385289993793945049832349999858083555667530000628508478979860399823239842097784765579135409801135993373667754755491303343787163840483782573887160667440039874328167143340214856348616077729243871533315489592329013828104834997560657817843919748649880476715961860426804148505302457956362636222719727131107681127121851909806771882176170813545143146990322042964825687351729649766219130610379269747791713840042491103184827696324473555241273388552067400329898539123271809284524556209630628482395489033032163611259628498101521322568940258253909758393032900405167560056178293682712445040654729188554167722676284124156088039088334185610608552016472468145102586892796281819292078245973291454395414196525347573299391488993219030662175532185267270959280825172283459963995818299229141625312553678643915998038431735551111603077602736175584849629110004302054531583369943124927473265914737795739172083560089289049712310585304264484297782032200883868669401553150846665731850122195256381622698681747984679953409923939885311535261667028812840674178271808215027973760009147142654274212515468257346117740511175976755564571031919698700907545792557455550687672215252224130575477138134424471157864950007922903143596525710036662557829185237364723041804926317769456527853434798801241104622900220929192943720116299528489939533001579348965563739453401552938446627272832798162843928330741187298701025042390490002792511188968171440880733070444345317314554293741736429263988540341061505649316377516501693595510180479583892537573307039809890798078231959951754078236993644209262836656714632383585972870423904586152462819186568071586263200660018520601096556400840225134675861734309195116966930628548412941849375588203864573712287068994156263454373274815162591611821881568709230835136129742709763827646944656102583540747650353062058757478037640986404935912147985754850177811306759292411596978886964145726135527503133551461998847337788246326375977841735655075296776346035644111202809061347632897985898967522398719644381564573087175099091364618974583760846981876695726140116765308665291423921327672639855250840778000655307520911431330318864012619414972867131810196680192718782963143473577073054261714495227433957590002488325321095601399267176753315313453014041033951595092345391702870460080574384575399038340216929279767859398616088406051718775044338198358914681733357639118921950609721166810865422410964516937931987557581376790498509588378822162600825816191626002970576677896282935113763217706507054938075554886110991056330759586199789426799729572251574592349254131427586004463782059621500547689874493867955679865159907309735401827020333959612371815822467530795732363842734102247045619144904246315601928349872278571627809315136102871585392377251264398849070778944015389346044398287098741575244086920768018007759788962135243579801527950049973838987148184631041828204187196748254303161562234668255242437225702902268781861109724577100078117627996658172812839943614499375721206358525607728896044426011357792108865897314055850869847908335088841863921231833187014031567971575038987124778005764650941773964710293891089633199146276804060785502518611097536747919614741226660812178945570460166101849680143888908558702096222832955700459974893970961174863802536262314906469198908353601068828615580415078629297580553479555888741223255894311086835061020414943787973598440700817119264643138221451199031886369953993924442069946454424361759921286325969698512627423357961961086802191054400499098782935489298408912816183545339285236315510306273913688565749613811301213889855600344206269654355081598342736199888487687205136486041591099762284111497321427704059621759833848443046415237502544184634899880180264959627578136743869915394709126794906418410634793318360366490332266247171829090592984773890922908579282857387943031663980414207132241098624794538295404286370023541554616719678533933895146349198678560698728807442395282150235075769493670663860207977333408000570307273134183959875887176437995804219902318495308927688406652796303744749745805861802391513589697485725344493929433877783414719330571107638493117064046720295964421300444392725246765528660914136642158731167711933772149411611842685467675994036328798179911999521540405191348344638294166159361275839183729806001430099384864288721419753215202404691730707766355114987805838654212118218446562974919383656900616763788229853747516709074719558607459410884349014606924415232308804523525751792355987423931598413989161466839124856143443144610223432217046384434983109860102190218579610650811128366358084111857332301807182510464799895284688682187317969081257792450319124818647649791303678551573439876681886992715077642216903853359661685709155267253806077663821330968610625826487649166203155682238564137392947609491048900518197355316773674428388201953294382137273142036985760787289255932529798001634551353380395956514233537430061024020602061872404339526360299377673104089774882352305008125347667748669934295787457154175894267819461504251674088565900866326490521572048113180223284769317908482480305472947932213994056677055368836348063998466942896557786666531643638847788895045943399300171275581264684499867429246784841387386689421957099929823066956345409058722646011008527400070412103747328667549978193680658815998922211700886764441235053903533275871732132257193853502658111650840100880163133397703350191505100653848890239927779148452225303053587508150365807322571636373247109377194975875514325440407084504099839409012897095573881890696856075411113860636269276715352589652712351086609080724582587332845296301692611594254954507761050870962703508842207133653209519386790141514199332433086999129516388620910231860117511877935175018072515923305201532165983010306893041895920438331145573442319376540048784087579945444255384856824653167864840398247563104851594617625106769040152909745490794979376878435376750714656353940774697543313713667660698286801502750784786455121111603233419192481148782164958101133684874322674653413640359085521061975590337154002320946325033806854623141900602308257388063286522314618863120129910672236724760509332723086310700415529173576789679628857193933026588211340961186652292088636802899428138277797296393447354893482775533583034935404447221547210962992146074706879406412048267682331990924200977349397417845966693669716509887565698441159478789669319075486691397090679824755146948610175337395210746443406917588357430836805992517493829997956454595386722145891073268555538630836675461609508056155561158034009495809731146907168087537071741543651734172499690760644507337169512633520936926329551685840894450638553077215259538120737075322463635960329387502118005391025926358839286341440492208935038963104911586526457542401512087135593073027526956353498294137267107853421791356958285388187061859551314834143821917580538472412957532316981377608491222415246203827215526258456297949566908106349980031341513715369107438252474401772287664545104545645907836743599861413573533139095969754322062340506525539449956467278023260236492300265882672090676860452092792294796027811891336116524486142517903755912828178762879672930737658655558832300854816407414156860152820441601013500680648620623200133181630973022871012903342727343785001495713228456095589680727781424497687079303137003085598628787913613184798804951578726023765966164842989484268092506809299016391961364001424010042363285639196711363861295310754885159245011099099296412166925978900155865475335840632094596913581885372962241912679825936812010667457900311871607511602785268638430041445308879487192680987320931146246342635218708480348482963587396078111700192772916083829124913767789434744438127714782865138714569590653397117385665486671502511594321849225013228113946044110875042456965255184057995317059077616285862468187365754409303383698592206285048762054858372650779490204127708563512520555425765392727415760121354998659932495123159853908125336660508953226070696469422864502531033960208604154968767474076954425897353526406142575040983839244849143477663500805325888845708711604922415503083091000668279271260716584363958739525706876313261747226124815160498699672338827464045149622997762362638850400631339588571301356356587292746830801996179527095118789723251517132812100077892173228485418766373885532686357128240924343204806035608392918782319805956600522647492846620041289071370949523724793128246670234803879304108912201029686110883687821965299074750968951252198405356517482623631995639022502224885264718361442107526601759406039236284754483602422918662335314752689430738136720106993624420775495615646846878877789422706208913126475068638373937081075119158649237441203915218976391009138529679663379502637620547852426149934028456731704549124208744185424072448878764692365930744166052617938983891112070494139641703888986723813966223837634516782425109256014681916151822853567528759913009851027514929626869903691844569374024379006009334505632467608184301772834375178667994956698948648664399800255175037749440059264019233148984867712413015279797817175488836589158086601129525470261231311342491100283302714069817419954224269849535120206438284484575664486639980136056513345443370980173345813630828265987720672473223906108950441630924325930421784529963806814915244837457500706627657571424069439829946268051899524445897175439779840635812370875808326324170957493874687041257796252604580863893151272610393699579630762948113074275743172402674893903896847605903181054175950073385771457953177626090135417209926259095881056235144005886820966481782012545792801182737365823510534810144482287674220406561223604561664246145791632108212845220345841951600529278201365255912588717231308679915030885582886589926473767127949716683754545470053784072662725185681588657643463383556273969191745290839273592859071596303705217737655765047758031686707954227450113270620474935751652402952174669743138657956865404997952523204009752625047268259784434408154405012167268289468457935041721932785389370630596138440583982089205906611725117198184276506982194373753797010031829789714429722749651632200017252498284931538900051317707463090684127290200578447456642951377225550406931577401971727058212935413503682721957704126031849276404429218949819120124656421819510826774696225961751116074655701697860268094603702829750876393900932864752403694386862568181720847131704180189842739250149173198623474887968319178215811549503842747792562059974496667705837886721905658627312041091118742045290514185430584610274020636472992086805077884611995585081237507381717725056292162026461553794594982259679916343073534134018449287186170541847713588334254269971654241457391210949678502612414428497090453135379410735142589166648494884976770775241468292084934962562629297739991833286134049196181905572960615968766373202593506061685365793835567477719373181326042295288938265274756031505507771658521110693473032904840181825419779508566347154519299425646273685611026222806368995739703240240545860787882605338528399728812667177369461853863763058078807704682777867536910163494912737605867880418520817224608677364851988597855719458975027131256528803137313003547695250177405566677953542243390764980893969983227954062296053203455370494540614350494077089246658645479339131319499249672289328224462502716252305383819688375012656990237506142172573154902007951773546587065854006111046515410027027072530827544013106157359667758976767210268278267036741346988986578840552869277677183301071937829641062651591897737751221311635058435196677073916877562386702976369593236404045681097475005280943723335247674128684514590262017258221652623290330519938505228072626435426094341952223798605859165098664912355491346512315616742805949134469191164334731216063087273801144782755587459771660188207430398055987246590590026343631904710030441429788818475903809000326250192061206275194764836396161273929380313653366151646463050538170098452612007124148602305269936792100546266336571285788068191926951285667378097156398676083260279466885776021413414893799567915702520901068768564809428581403700131014843716126330661969931612383265742461377253078585369461824407453635896376094527704547920143672809280104091471872691662855569752633469775160755361061249738637118881672379821227886359624517762379344078439905284836548139803603584536192883967159733207980053094578268235761557079780630710380329402872356096916042428050122150395976059039371654152102652718732371858825242234151438020227267904165149289504218094515774941739914359224985368011128323551770047529138564255809705084375445020146234087440085499202692170060634463980936572462380671669907309977959694036441091818532695677392330571538544180303137733100104891455678974843637502087530502144013192699084200091649995362563302586604673068055035523095965551071490734628778542541251581905021417183646310208135092114863746219966641060485009822505240425588203964875807582422651086890137969887048085171367219315444822466383287293703349424128658842218314775336930293748416051964653655904520076046808488248635618682255694064832530567532324678907830037396621225442874069567991753189158766285330566137369545319415790108284822956153907781400319383280638476422004007466337621346724741102621062366418547943197782553566479655173667495978409673890743242406863349262346855434373374177844695859176124756716224749370935244220230695595062969229798902974695486967462580289909099509489141834191679553791648562831716411991305654757591000253385585089024666010790134221999821861920801087099838948975730848740361618843814443669577201446098029766061438717712509323296299630668531945026871356422629117703352159592070186544678809552706347839958420054647190104812472673519530731848772900004139852867795826417595971001126361686139077156981516275399988847658496687476521822911409258750152048906599155211390846092383041899340967457042457449436436218027388980821376576015427391257163099288937733098386763104949965056256909171791109175541288985054512123296432146276553651887951892343336284555693029660301043886369687476950618660003025299373652007533559400379109050357281486307137025286145261584200844692411225301187050542021497067318379071304740283561569510951784764891539471949242030014479732414686418058259916331396464761567191665488993247326250907920390061631940053086564084748345082210373963456572875625768224308527083819541377915020164010193305287680243206951339212926828971411355808894023114147430180337018011187173314011752191381661857663640043777411242657462167402211174633895043373385763374655789461511659780164013383459475674981897949189266148444520173042838837441214107150130373408754409401836041313268848952294503710764882474157508484343554634914419911456204564280130802713712385648057806841206366653372677032787494562234515409341687369604991706189004232742071630959329565198770305421413895705586408869263218266416706745393595319644861895822093015668026398613761605416543393546733548293755090020411091491885085996434293745026064308427406713626973264673883685124008147260626764280590478222710895152482439001242433289388896228243791451882503567093740955089406859853711505317601229296240080776012122129471329815480566430805428861043855548484030324555852210773782402433363408529472005771768684277972314314390680435366788585340880614296281369042592608247775079391882403044972427716373608297121150744231392836743443480451397078409101163033162716957808368099800506725830773782863709063537326761594238025203445734591835119485431141815814293834416635301639656562755991389685483983474657580268653480060388883165270978192470646734159119910686299531006007724257189414365513993838947317225131018621121892815669924640208861179616801768122063524212513720201974971540709222766705630438163838940199994840580567354361792270817296003975702826140002302793028270873640640074504419241519265094438878993609928202264641832375224972166964982681906717537694680433323728790610400259398526227886504096464851807003731426243748281499979315975341751324719261406715701346318946207246315233011331685615053009645221356614144146317218875563244665078533542690458361067109587396711482927562110747748283658244070402445274613058846431095725393493253365864582918058919494392647938270610176802641491668008321158355291766767072120134895165581263404869044006163622559086395013034045058244596526653293877706290622925639211729474996289852641212293612850932706429670365759575410065285673642637010625690116079383577875916293341835953540337516001548262121272406637999009299461482224045302354028874376349157841328320492946939591227794088244823767196038150699885205100959002426995748221544190988304742218215993802586759339174267724226762767134691714282550680815007335152381171016407577314399019797986934842705902297412523104283175166626694345346798315646075502083022339516179846900506512389686350429710915070930173651339485879218380230713224903549959753725069829411230593563360519657017433313823372004851614939553116194879585560810211856884612231365021160818215862838709684846918679406256195563982025258119758571988257079102993367612834712632107042262196288557893492027645635426378704879755028395345572509460561614014589695085365964785367217080038332859271565438448975677645322949054237485179694204131422230911547474104814625415670081115200935171837198673663501284386420466246421958841042913843921815275319899848859783137742543635846389545429092715151439909914709884950892171320938175325197420633584497580440048497817251676355215997761513786322149303320393845424345738972351249892266422364095900982800091234866424847959228572532736369173547133197812017761773622431492462278277385544014810574223651449331018555448533543325974826927851132814809212288324040361184863913239158195484762122062379133996794087673113981007000773286052213968794959597974411851137964846958825446828897186011310088676000146327918995251015196802119785581525295576112165838101801300684104345956829627599486394489470935255861917501141326467504925189644788637087777824808190429354703376820884776074650147586775548357759780130230796597493620947897697643776585976645740104930203580741108649004431041815052125150091308290234396286746536192563483966398029805446392589556328554470553690015283839353008626961764183205265193981180474569118576083940115113140710548409689527456222176144298562098313707992032586024303885259601481399467644761990115535569876279617094578563239219398651482327557434242836456564677057922229975910120483229757431914586880137373099108327148178083620799877609951932650270526095674765465317251624593557926185158010285324204577789656316684025252376638251485564795153213935575568399288670575814936362772878400125428180738208762226669776975747781137359669479647215876018227030699764368233112683194499996903680499333996790154974771042954844203646553915371763555430234554510145898402329041856497645107350305580310002869923267776758798903965250595660182005867374899736150448751813027610931798350792654299243709543887245789533498434516827326494042789378656691472338308292911492201554522398035058783200645265815028406078341206161330639137957996235111847870799861235757706208598495236094941181521303104352076589447011127252679763698617171032189090961696951271063683291153300267662832541222509733846746106526087343165137282693572230094363261410075363601019246565515615729736066347186891902767582933684195266896303889439652441155719241857634079867430049398307576538937509995511759070345209341975645128988821395738737938777774344207046626993567791649004991926043351027488166076348423019206074576331414250447047769253072004421978644177249839747805596947490741476562484911249799548088821508851898011503012234039563813152647419633685066274077339316835718527568878854086440920401332023693205748449132595937191690824409103496239780813017845979680964837985430697772785910993429073706067057500165009726361106854355794539210553359034340936757758753019756750397750883946001890334377856791140982064458265234772217693760821806000986741514136155666641916927900613553210810691828192771348318103553053734269550437037618088583251437644303992344456961939117963516981466176802757328881942602563889142996797964158490153791515257705510603022202112288662694410128069494580510986495497508306316111999757703457189856760683742575883381601751659139632862020717887899808815140378173301959933404121085647571750479890314399022843562894359978955510860113794554277963670403445191163015047203445935325405204466993340503273474042423394197670767850624307498073906521983305275687959396631267103644527493456717614359144362169136487238136532278827447550172519321588720613320825613442946702691504815507475147355862855710310495527355162797664319376901257307940246608822654902271182106296309519691141063051475767825607985999654805204379912782263245011320272974256233012226189565909005095430344241353323026241308813379608946977408933967169434786240005394814906341981337683724207214832622213616759487770275294059710170256048259395116434834251082044951272434612385553318839221535546052078101380416843036895515909345562394714888380178892316553448843675151485734528229496255726824097597613076463582972986907280841025599272325637403883551273198005402921709073550572538022123543413900275993424055428666403060582066667074467051308838694988194972876568081425228816096198579522623569117753997884177409581927960815437925555664412404485721332893219886325831409331142989375452934213019955614798374322501266668631752000222716643439178386712708612668624759227185377797857310853872463460165828951732078103078511058086494407557139860749363373848058979600059859112524235707849030523707372927664420186172804043048705112235480005392780508908600432600882045841066985525314593838813074200690860661710622419750275191839742376834894615733000043727056028001346556927847360932412399724708238119815013696869631052438489856219575263065723750478623703894242396065093639267845241900981708227932906578029064673537496243215360777137481197253106344865479735970794870595607235355727082068701513518355137891954340159596131596693809344356455151247583515820903856509238368299972484424897350465415614464955487163385572225319218552277484350248360028069188831622314737111731981041081922097030464404514066820542324190115775432407825270014086837848445587276225810598859033468396952497491457682197165470124041570767527050527666909673847423099402245453325474623002330066440669921759076057070559923899417231465636779489015813008810271379866716889061427080479250918580090500552039610084994080393452525224515729527799026042033515055323766729459347875253008949488521853668687159271656278184744583200253726634850271431556529408046644059883209247597683743720391004543154012253350191297370567642649644103925888092575178565354789975181767149851747925423744395731067029387298089732771374848860140184182746581767220283028628798802659597185830918325062285321215961290019913873561020660916106471472722731935545756044329385027436683062419686776619218084714132363125477712477860275674129091039569921849587885661942276031999689094724490611845946639793192345689042196376023430047926024956970274718429763339082296554230701669233457642141777251978641484497432936123222274891841700690977580594279116419952384545708319730649380644704677020623117816992165231511053570777698052283978909533183794510094476725812814164647101830898304932623440904581488210990969125176766636725327081864243898235622209866569654801485442159684541022744466357084950126401236349443762808762583021500468732440644893388673053493983319099959117907141842033471434697304350431571423853852005259075508981023406030083110559598834073767596262551412241095200142987638104007104916903642011179505012057118027207837068412440334653354033087006568138284714998587403726947804573377926755771420023623181018050168025604868830143606045498443890372138757186726265551482439732999158113693911061527287712735314763276575006617221995712334416023695132592892181602129357407054969986441857188395031378972974126277756587535749565595364524266509290036619186245095824958782476892473258425733633624604591030420867823641342508142145997965061918925960679704559115220844061481045993173702834354284873777271580924163259344866853703984297142353952155594601271020085134712267673559350810361784667454758967684905408498404808740021546570845451509522571236318596738458631261492813144904688217759247417655322283916467849387965512101875164508513772433123586069878390796127952130167977512434170004860598401822606822595813994542152604312316617258367335544333503660478626029866788683967983889717742066215364539242747636809026912605424169626855507117662027926314228586966170039980754257006681614104144576296969695202055177800008256049569902002916640745294326006155482139123912101784348755240161759019900495458531073980712400511652521811524618387862050149581259411306354182688639916723852463083272680277308178977916222665594291473638272637977221176042652638225889689392033222418849965144861814820934317141667170617706166617338012182783454206092353889464274469865444907355368284986340709712380833456644954881985930766790702897912186130745757868167713067364485202114361709870695284911830657352503305102768798526468446050483558652051468591895291561197229373085368375620917811065988034339206682065454710661787447466212309404278799525188001449960529556695949356866396948213475846269281725087395938029169913403571800254880526734868623385819390029513930443244382930121710233283727387368634561020892394171647868821806606307593622506802117604620668233166049311556020785442440489306384612328848480988208526778106907193630012624324901816721591217406915776885747672166640780425123446910103735860873645174456903832146621627040454828710404794866931587201529640146205494590970113467481785775444819606189309322647418898435919133886451121937765501740874695725691306496101504644562201696691115482776954244351098377123911821895540775002854169383191280895697094935261264957069111744729496031177740031612997974356496571221432553462306635297068701518861427847783971445263452927891100797594711913188142637180373245081884629803554178597997457948645462923292502614240274403082981940797579551572269189110364619704814151270133004863850448463048203996659103117532689549171579842360862542233965383849109531565667850392558939313888974040675948258694006186391738423561711077344354775254749647606441750234734151273651878928113235406650455613205348938685055314170071143077188187183976102930452287403824651926977202631418839749984730749697520845631855315648239098788039670889511321048498344926957078583130573145967294925492190980918917548764474154980543185546517169580006387075476809718470276471933383689877870917243192083303613595743644779008552294241395751974134426971071587200191761751683241240259939616477380970605882939586636972924297013483393776059809466507747527120233997244577589177782876128644827374618210166481740664975797803736624303409216064923236021053675847501591315343384202110897691511066100215240096703509430272467185148195922303720654171114020298840021125235166152269827618324074479884799505865241550923732738401522846423619436525195405517661607482638185631840736107551904465610838883883565977540006116786342007255925971469789882212509439304529071077490068043149414102700680450108943064955154497224652808926631819530494983974358035446028137321801132069919567441587273479281830935704438793909300189362995617628593591964366053406239582213856598735100389158166741434080501306821294864778358589134563013581871972363344743709670936806856839617131392373936386029787716046526035671276231804370628731443559449895988647162849746209404462012553635007703973074893898842124761081626467103711696634312584436645392045143120423720881993907277098972254603983532787094959829563635869388847772232571779150758028008741113509032697846824913888929469589477162157591889074733935300469683876363522205986852944266901867767283489868784163986937592983203868958645302947904603553731318380462201761258256082322425081046252492827095268924502729557999912674769130986182028624161350597976780869918105953965713915361581707860767483874541048799881351139002902440598720556753581763519579084922310127179715234474238048869893516916164886028869968896589470670950311672647207861928279143566368859126120482542213264734460696954274950326038410133888621858497070381653155180590387211001626116637500513446503489715717288253303239772813072171420108568084962605524258063257671076026943191413830681152682456356752894248453598952768006810666264972465730369177737152660384223934857184507506532022827942296257687887288886372880227914520488339907695772545311265235953499656407161079919099884902172491121139539876934332173626558622029380204664355335250298362876755931150559795981006151626787477079610471821958737765154081050185837325670083564526121230785172191098188715898059462351170774266747522443931070462316751394362971794528155888610978543414562023482683234793726564506235174135098821943248705991115261416698012746994840563301952541632224077997796688711678810943581252980822815123767786000238888824565262737841906130854060178321854327225866981090205011988378281254211632313260365182619649804475951580218631624230241622453847818232125196862512128112792517791276000064421603087885868515074064707153243122080887554620255706324442279432426456181084984292309118606034580749729078964573140132729703146503116588716238022664804210133234385446727112075128794896147661253796721362111579741626309167827982553063326917181427352820807616642634949762271631294651085433575639329582117211208773876096141557515885959628100992009094513769250460472189563170700329131069979470801416997989742862612148631816152795920147299627057147962732694574418978784883701622314902284461572451317222223124804440001499126051119983067839687317624610180191372301038896865865657620117429435608563532742156847727905016295590659852757595755804235815657245997370296026303216963446337783945866570660188708415895452003524115397888656013127145788642783058485897467644434878679556407919088697756187369070259438412029395644046909476193501255305270858904406566257218010057962939087347029643845414082660545532892163102937208143335524059838283310945442934521559885108421024752526827587053119009421060015122383779629116376127862807445473058125738318936428235636492478474656625835522051755172285384529214896011920012548689446244283983400027810528888478159294144601472292093728921463693421024850425939179565960237366586610851139458594578736598562964435171594210279943255546379980627034709038181259110077503741460674525579468725476314557161904143486968436253882808341426103845082874811957625437024475907521774112546254316395138016892290395947092036742154396025040741120085185525630861837987057151377021921276840998932649474902277814822878345814246828002621992772849557724635265396652996441778259902143141665522275601478678370351681001938955473255883637724403755706477322358930861826587411167269997446118848193129844829790048220066434752470549602400156181698064039950102663553581122096049696948647025276829647211359753242376280869626958579209401940766464939501582813406910182990470419623586480907607479960084801941561793704518517554146198255248522273596589746234762500042896325350388168197678225954087211322398509421462385161412601871449083908438695554871938843259769638184643568186307875335448651657924865426892162704748653783232151828072750419235594198957224137113393039739989425313932886398364884538360053953593710920147569407115033743315405279228986159282455591550325567833854543135284569995934061910052800659258911239155390241860316217509582964599619773536538924635547071722131099618991283718803605025486434358296301017628376552918935434745649007606117662545291375344947786597636355921590267409365465484761614104683287956539814754764120748958255631831437123172180878991783963211065401574926645757369427672391459896616706994485588333421953790983974628576506204352809052757705118829010568734729107535731013520326767959510576974270027395940359945661490227678850343153549557419096384906220751882535332100711160919724183874207222484354242441190919021489516072845484869545046766552551028642336206908216343694750503470908979762630084484873320828209299773657924067855631239642601188517350971463860074554269077704444278344593240843803711088484712252989749244560603531193201612843847523110263667786883743196354230721317903385018519079988989463028385371230748412220477586767222143978378336145778009662315393961654179548590924155571707501656064390092393358736522870959481797011528626036998102799006533762989411800140121239619372346243474737677663200855317880357328276008770818573042036429537486628919752292095376718361724729742307779597157951678028458438960780194486626098470666662920959732759548556490939506070676665952858415472553328020554351681470731025355114143499019854555291098032791662026309591975337875038888594868971874174090193176905645309316011724801578545396113795414389028107854116966904565798999831766746361115398106463783042990839985122165060956935799927797820360008834048007640448536446941817935596600996257838761631187590975804510391188639084342998052691503148184775538181781099454810074339371379806622104074311754399690412443901764982862894313886539451558637338569423533539587412725007743076998386713180017143219503542539470334189229228644043288971878368527122016457691874132607782790546412840480029260148941016671798467784026706414719847323665333236575862947432214454697690467079196473707922000089842837533031700874705920465571905490364117405202332697728100802894782332586537378476701196960989304317228580065850039465412242582015278667270982933397331682275756216264317179172399861789258831051471550334291361014022320034963283430016057359069182170634431882834118007226495541426327776342839208438764667450402789433550156960911500578488211760704000603908280030429573349160107048432582259281561251156961558279578907502999605758461684886467526652103571620658747370479434014013752954415977956963242071642575401330830972926042875239562209938599832208456096001468517437449051452590389913619097919466856726763937427778126365159665779872410508347718309004230339392442789000507705933090687091411661974864598474589068386952583609417364185949844553283996051754811020797376100772179261679580850889427564695108472899479106011948270854665165934167649995729390596024489673110252865573546958628522768544649935073356318201433376379296939841972539293524172774926615541813216749555305014299226538643179979709528134858972580907929387851677427671423095161122162491308060623400960837434883510591329529930169605450361979521462763048819196588567047986870299225217839856676357752719413952216144775731501488614260150046694996202943619572653210983508109208719405407505352075890313497252377286544158454681358545561123921243033300764390398930905850769499920380923180220217830898289764344743721416410724131217968908556558834482479955137299358221070308421748754267031608674798545522065043028451416553050011005516387619747856460138899139627025634321221382799058636599251889293378604507373857184720890539200335375561467362025097252990221743718062420623208617000236044535735323445106884767805271134828682523940745962168110727935494165455573868927319414398983237477325354566122014274698807079980014425606897357453172194221694970636208462556456829111080880821302562979006755270306726030055757220273027406695068695356922384167468652280544378243175826356115032158327562498563086073626791785907624925248391425180168182178949538878767566922838933351027403322080234477269842130000609637169980134204427143593914260447812180238150494982009518433563672244290967681744569515825370741560839538536650358922592473335101183712952215019434007879695205969454801468829721997039240051542552143167694162232240036350498816319905386443284789252984217396503675137591803799689811811818529122953495492809026686840771444893600887376283872909270663023323879777324457174011216202708135707688830960362377824307321574947857118901512660938367000804322368890701725377772091644089346397579440312780976081342015386047446579218384586332910051472733875214107915272516326121986383798292993927267026920265378327670622427563285600485864227207193541946182193350633113808992601747984563126443139361103309127914782650117530549209680819232855670056276458064107970612332685094297878853951651821665637320990834502250541304234869681052881116194741464540141299410732251357930836608589188877683342754335136866891377560214074265339755008859904166725821286788691728893780827037610616323782956882097858867634793872462400569962813430549064448575508692867258501752542941864961128656943834168639973282641421973810775384863450390928719344145970215573557175409199713546474265768748913717918946299628547716684645767169020077340276506815556627196405073857561781524759969114895884864895270163975464905678592739200158368620997647050762978055038842120630634677864158917495062299634635164952227093849043454189561893546823468694312005568643813999036114063609424260166298535769946549821819364390914279096718600261890293833585982979998800279612803127916469070410346065056114518219143370289851383118627103680751260796062962592956189333934522393632807751306731996463584065612433560153739335550730430465916126299319180029859680349888829808886148889186279589900634018155435201890961792151396202608518317404333904261737299775340281656514344678495309668882811183034767179776139434683642992898446533250610021486766313124688592638225298344934102422176301360645366400390172510550159358337669287909484205501236999872302159789569481875417910374495648477192243831499856673839174772177010012087245298335951530646583435212144203809568906352320271464506748356443834994318351280252663388099516731637255607795700909631446451367357507870889389250851128821277334104036759631300481474148590268827644330546857726424812909621016509586648435819537748067109866643227477749681456484945957717336808126680059167512157382940350922489608677896182720377074643045926905954815952212214221456468505190646422745349471118595235643491409133042261567756741284787611783556108777670825861749068987105560462761693645239268019749876709463299007222300963406868008714798225983263974888728504713358873892603291628664285234470027827503292500798177527136351629517564661718754437122886826640347656578208641500004324526819503888006463569018672908531796876167700368139524518286870340571202215463006119150369728291337385645072141502606377075281631057153938981970343402660099954486053166887387616792203922200517309160977558955483868657141676259417420059423022723110118645152322607576216564445339935497459384604587947787423186026242528961969017223127856888222049519583018707038892325200660638283116132311425585115916878725637084791532551034198390484795785060819324582457969747074071638198232335834398012771276295390778509418622516348577560436599678413441970052524675909211686620694098436415946219345667488707733806590923425692089719442035613101205114710834667643990850822061931645936696855014012321822741353647853537684666956421607226197536611151224266777405312177899044509459005641914921619351943649512789479968346881045785319615939516058320885287561244918293891652592733196070672628620663320758146582355846832349590062597451020402923349336653219628505928481332945062096590601555906137595586801380275946349120658062248641165396102950551485034298066885544795523388857166546878831654462157009459980301426600211063305460402672350028026645243677261004478066013135141384879793073841595744476469401637406469473260069822844283636993344628670367301878944658600844471577094823047930180870200587926468062658656378058719818657815951182627431857046603645007915493048651807068771780927550592397725114701499293203707817789109526626283851297418963754831033226878921355251805433455086513000547298770971565276286548295137978542908569645642128328973211356857919048124926055748358151243378644028026704974986650302721007847593949148482349534804061193940318868971598533497829292717696100488914440448109356828651346738786039477989297661703179739239146852826209319428935637134799024461324667734884413202049173963967060548176619390619216833323029739468823001343108035713723673404955657855621875086167284564978260833657209960972549818626212036645132131950772509411020725350685085325028864119256094449353211405746329671862645258856156900450688514912996028985569187090484595743762966404796997337732332598541817663956480428315051836686744699359941952007391165102610095064120224821402560506868233974649105106147035456776365301217907992510820679676158564574803989759663908874026026800649972932681203257642367890219658598023012290611844947098995831902442894748793535141461436441503143421159466808812857909434939632098989959922422033300821061213671472492788187877622076272566817951949621791657438512941987588084235494721878833724356611563307254159686333474571636054632010739669354903562249941267852460754141342395536389631008394643474476854852191936543603899972614690919863573698498733759127127275772901322714734449172408677188068767140886916097665758593266263337452764654669847695183027575923955653973652791160876651694715007766073954976705905178053331383247611714594925822857187176258864778517008399338552980784632313047729699581859300434332017792124403237852881156678468859005228163564875580714484422967410318834973620658400080762770743423423569863386079229829819700956764127288113687111495368299449931768737001038219483904052018738430236510805009505418147331662969204973140971511851770410271130357084261087349318947226349139540993040070621488651088890568063010440350437886084242962700619426041741969386458080587594129174444997248485944633465541134564296903026309713434599462119880375082192413292017814759643879162215448529534946695606207343593117023885266719021024042025758774832529031560344723539183213611841759094056008216353140113664981554876968258696723571713586630890229536298684159392141912644996626193344279515619266652963672393396334967335759729131145580364740723319785686816503056888545182090530442155814655001464339292397032943353520723522092677910414206864584827268788219170242140872596377608474857561751792338769384782848940086873364726620541870536658761431976241882857708534911982523599526936915898715368096525280694851890797604849971864748032280592667554132790688718631739302639714221980610676266294148187841802770027360790623584461544329901287307301508715348102265553506612532583956060642551361979489978152931677515756232863753900019053294139980908578544877622531292971370995310407891668040373131928777841691249957695858436196628064513608352132617224944752338959173856965952515302791245432162852320490003366082969911853858990607673578121842386737741520875886274325475677995411368176437832066043591801587849158041250579561890123190734955893839110504202594048266228987316349743646728416815203869320851183489997157070733009510244197069718570364861336754283853821723804121239979350595751589472062121949392017340122146967431948826874046791193771360529305693761039536629598274656499545862691281124204253369635923730389923257464569588100172049915228302452774519016885717463805343370612092493859828689254248399220196546067111083919225680919855922232444225918073037128279087082886114761953918053130190895245357656938288622183631754094735438770328714413251257600327670794726096147504227849134322834557285632039888198829366034936430551348300144359344226308828023706350281140120164689442566633806588417420084842222887378195558856998338968701710694153703955700163013946782826411423310592529020753859060457014473240587528512039172841572225282823410110934947015106647569792069489149386597884235310320265744762787450619568738047765998244152473419717435198229640867965587201564256328746214531427956714965707396467458462438572281701331275450008991707114889552311428370503661596040417745853216319054032629564593433484231420413116608707393627685581140111765998322245202273936223079835836539405464431189338045873989759007882517811046218153061105212786194427262229727013022759884675519586799588382208730644148424641773918246929223657631088041613636922728379863469340159110865496161383891471699841770584332148562900758949862819008705296227343475645564851575940608935596922423079745514560004363497833337794506153285938503028527762771584477523589280648686121933497049588355510696692585405114693945377420248506188345174744820471936643665638120695978931032818931642889185101928896772609592323920758560170088343387759146706612266099597930711449254197122841865196857141372196739184730102344095099628547181871504362311664185636943690489287709233932945248396578261340948500977422201656976583304949044223222622740186670554271746996794356794801077211592722371138648459861505387957352451384874405469821887895793691744095994932279502653159830464602661283067569466569843876543360371533501826299636455825267553872774732236879324297334314041926053757021331403558517867648146786619118609340313579420546016094627383112820166776761777727273799259946516352889395734042133907428942615430701293035639270517842735165663433841484473626585184999844384087388353950601662359824303622252182519726834975860742437345797643905367767010104290156549101877452021347654342061046614842737180120270557565595683863051845487679641982098068033467131355234650473994117985070981313947505163022712841509316873848762320417498188134604826399159382761343091524054448704828092048528590357804868625416240935205904492748299340556769639252492027200207194104765934006558904129131532919312050628134428922566629091311159544230265273746117231827034110168564719128669797670525672173802800781013386418126659089083367740336321591128236808919244398701425949066186597472267980763884312412263420136537375914897468472746062154785366738734781561663081345929894354229417291959211187296953719787466705182497956830008697285248619873890283848932308679396529975877559689759261666708653036268553885423219732873376834178593864546231731967899599455812334036547987253133455182654479347594723712687851074628741464217200657975535182608384594984930325078456753574038257692905600575630163284003600689048653820469969066659546824392911197071648660025611563179042563348089720819970196868368391390791496818187720586519302126812784132756431373399985886586444814317819635280193557065542034153311281523874902515715107191815973197483211446253332580118542431975278519989353493965797745665878881065111286853809035048553357714151551468617728721119481371812678612311020209725207668347060773385890024110255217590578228374517739627911745500639020590185859350887925547484680209342055293683102055754334349365240138525958899888717052220544299716442530922731460259155981652956639564928575967165456508200483431316722001409397797090937662944939534094857065694102322008775088942827199362320668782988719632346658553182273510514430726281977983442186292227477224343448947989791977475726558215725641969844262892484708755690428688482868351833762897769125986133269438378507901736238874675709462942686198611463896082269161000900334867154805742115518070103842781845838432263590226248129032226270898567843320808546717750332509777995977995939129313254691679478163704251837742354356753815901955882045445585075283357315960464216049590556214106647912413849834102791571141005640506769953080018008653280352900022167795250178033624034890362288666781426769681535025337176474130503904668011611599473827119433259854274035908811940483438469227593270351505305226787495773288399831664909811944670118055212254451321402617676795146421800256178415308809464609087054378873501944759263331300952976621471551535039726452197308657227899370745666000118544996335199121439709196841971474706003095786240374669323331764550542309008434233197609264428348592419152002870052661343187605146108198666654032175943925974053129201115434411675227093698571167028740918700900470557050284070820061350610126799602336744668708826839402582363477686942588256100911669486849080148022057868358803449674354773703411573654785006878920073559535026140885285471332202427691925081177453300593200656825852117225033661773999266705592297240841315115496734767990969448119426807474100327696741855954502314603276979339302046559839519859101805760093815125369278593099543561388755238757982375493333654497595465441321784968356122044312795199216783499642952261803768573094551866078467054371407434335340701143119741182889659265976493584430586004734986908751403937536528334297272100419397205612499457485988524241958758013035508785619426687041984590184674662409509877358030353894593720634240051050663300639982283138411050216758676772583398848943021673120447259821255650049876630685277898561338143379373971947700327984519005124752342717447298651067106953511229399381650679520385234465878857722906380237955561990042507996878417463168426191149313275140708566546094885276870917481521184974598164262962530509311690398583947419997846180942621573933129181874198720540040645014564785002378739266781479469859411975122600777356863460356389460635458855383633214868479749554575600640935663732162475782319763756692523847001069626069902495428521017408432669202307739488465069492029527233884615749916597145097687764429125801407206165416994311937457280045833047527228863824652713672329979718272058584601439478115392040497604899724903418340786417799984646399528889574813465230165874810520856604813500317126932481462560513723255183759744041636742195675152364878070340131599463241626792579544155544066667206643064385182132123350261711289420176742439112721924417098200429085265544984605368147087432663229869484235661348355555258676278810249697514359813213602631764337613162965981069584738852562583860269980995568625157570556640936294146667567540531257138256311175148444539468210698179799955597464681864363240707297472106210185783708984292835891581792315638765224957326830689498294228297698068792667213324698816450943646015441028109703803448938671718241963089434690496623270326412279274124498666059872326023237332862107256777165468026598168700913516484829925582089294489022019347792121984287516849964145723554918194930860430200374111311766053005100598584045645810507231815626600092016982469393732599584874311027826211746651322356122780779458422106066186855078762151270951669184608121748550376105367358158306129461878761937819144963960481601039433657996303021822792306808181883618457298070879615356966024179913206093247143437191536061971253541371159722220315911642883962079905322344084088219015943401713407610059674060542240083117426090415154279669117948270091740266940066789852632962110200599860081283900433665396624717742674593803124619258695103329091953869048958468051792935649777871173582900539705703062742666026718414091808796598118966710349395788355595685310749953964675144431346919016480246583467344680594755634634704253545048248163170391970946560920930170082696603283729139360634308294890468570537506052291950699924172625634484130239954923547370497013124895032328696569001734740947129231546169496711525610431934430366389530548090689427347165436217732503115881493606445759288781937020058129754380668253920599056477267355961177241296699520941175978019548881939924265577282569926596417436516507684143009353409991997754050286002384120056508141581352944323993416497366085610868945403902555287850710113834731958240461685741797438958119178373004725671080557141273587303601623785039051654625794305580286097802011865421369074672391076184247472362182403718028029303540927694640165958374927220057214020408157352106089723465871201889463261373206738731695495457278118262042230201404612718514645098857372287904905360846316194860333617283848195586269882448400969353519502706392880649426575850259846369990982043808540446258945531978281308249661983086529372238087740556791753117611729376847564584246814937365116183345438991382988425622205433349500283737384767235481235846337098610698805300418797627222806591459200850874669311719166584657018044944087583540304059823006112873530030526345312088275584686144606740313374116713865203499476085518534262196228002198526359196593585782152990380585677843446848155248804745394472484361287805396704520533737171792611541012411185316845130468054259408767324611651027991907636130801809479699596053408623753569690610361734567388044850418760244965510110792772417363720528626224352953904037177713808852588688519653174514994281458824124566630913236842283613125519219055808206959782895810531037875860862300058242857800091178921286204109663359805248863066800038400191837215319964891841905174725854706470674145042068813739883383775623102259689367702324558220046883184408422699396304201112754126778840271331858260863169614324479829209108827065133521190456961401290878736874962154504522218100773480750225856828189484000560172406592768284655426519151052040173604393770482703437738071833852555187552532557410252707894561209644739676697955166480157977482405379583864385051007415397935510671618295427349081980648319015111706928386045145976088072404594332351896088201672016608354925838726223612529493053726700184418152948064139193528383083068885224070070088996331590119529930148323480171666902807334977802620819202064431226763022335326577820063820083217211488398855490235956909780511763363555070794940082754912837294957232144914637379164473271890256778351067892081100584650410992916198992410623163486247623792838074437422560084801944428604245682809481439522261036013052636587431024085399096664848393580295633314198950316396789114636301137003817550477592186345315836902135935622582659087890598296408891573417353295056228297242314060523262120834163454031119558116368743559625690798666125172980374366945342676385571742296876974422420072467795771032401409515476918968823305840183646040897404281247423837786112865532120412722272509179749132455914085461698332703744652519941636704198320153527629653503202866866006957603788116046052448518472100692637253363219167604950899793279098794530236424399685353141934720385097936406262853731298103299316668287336475024487988654954138704863666595213671658948881992911113191050026456008563781335389630994696517023144420695658768486808456486662962202880760393007867113355376128070560496120129532968857047061469193527325532294309028739008519132654066560214453561987363117042934089641508952680059061363198074612646633179810353223761835135048612350958392972410066127085138030122390752880047565001102774937241606491419463620773785754863755957830971630159824416290847391745729925278804658466490547750025397263963690224249689611388584694875900905462841360016335081057053994110361596847174801659413109191241652925384039273877118129499976246437096905520604303698360773605587328505951939547345832699162165948193809616630249439694385723755062121816707715634078789857347843457161739625148529217464819353806011774193739270509586233030866188987201087505951733203777086423143485607164279824104280958012062000958377302421120283255669941561567976875525504095125151982988199817939095607725684082575850068608144061302301207012291051044017405193513929740123653869869400201607572305411519848451940866812900066361309697572702010294092727853662339548388659652671463751998131033875922093753855919271378748197257761533433806254050943045014928897939734794860748367736627525606993702186295881187236654374466858378948416730392365043456037361722741894505776358396907548406798332014887396525701245864827526162992825596248221942203410726793313561244096096532168815261100811598786430849375381739761830709104227496009795448253661794833080608284093129828063307345292796566073887880730906304365101447514896816334777564130876280098570893348270392681405097475742730250965730541243276423998666833956873210630305212871319181271417152173799992885107405779145995872298275180875145333784192305584164237437267632494275879976735621546271923094221085388188208625933554429848249517839489300885962691779624397657606387519752349195830786562477614873822218870743842916884578216401921412117924059893980230556413115689482880463437137437360390610866228369419383145988005630365963589968467416051712430225038466101427753223437852148526903526865946353077633249327006412535076659434948648589073207666296106541235205034445485762233445046142502614730372530370677928194587191320400893206144909764700483113240962411365281637641688662858489657611881472885255800481807153610580090126558445752381530488826900327481321310912123486113654106207926374787715332057487451146747389768992280458204173600113958182310074252410234744452431447198836720609156465966688950749808585647057011221155977821593018906837161894349900157713591605466125637929418287810616006492183563860563821978367755061201270416882342051580990813025740269413344710998899568996436600039743260027877265302562160897914033578548051838095049656773023212801329972458159430412259539981551271874465717958936280552814788997258706822381695212736402706630156807328982366718751442809403705136359341363705016006792253498041062356935641530054448867516695580919778191539003972056530094695047541201576476860296648488000490166975695030637061510706285276911502129788767946175824972053050428598443132679080270623227791750307788432783110685170198048738816651963318672309828574067569130875250181181017432884781019153491504567806484128534698164446517135393581862852454981401285608031573024647894686685272588192516699902242989577377959355350792003285135562149472947199029035583737387981709357467880095785426164451935893275951051305146402339288322231360020223814857697576177745261421512448620552805171331151817618665126991373655315339701891953054829422563746098081473431669460805656062864115598694928766332835374233762238885856205668111564609994286375708568659595623610611250954148030662659854257965769995082784528625944184010675835578372951951735541833710814145848990970731818800528394084041130205764648393785132868665199867784777687449396622232435175127078685747537770280455836336687842371390178764706888076614042849066362326579853078899562921278178917766807909498585327184192773995341060892307422687347733351139092702025385324437420104981049461621734492634075560638081550271618709371965305810043901266368205022175003561123481219792525031850432345521582225956220172938527672729865891165333950393274387276766087805731277372629619537944946203553324546315062331753328399103676055557042537644173007482046218604202725388557516957612354070045890093317702730153514503913919402339170051731416796128829639965297640539620256453661415407089424166672127237621123500467900757566802406945140403749533492771307876335858353437028292030936829755769886127089218947514415328522492546310259051072943519515521395585830706302104370028339043034181303179111422395352864736855426319822390246430948837805765051973367562238573594766747993648071038793356307649856222156245095963195489699746562304940623589152248081519121335502329469403459950915377775940225257552587212258016132307504427459970458150294478015445034768627906039005514232525246410873691408872743414260597662700021738168333776961697453799323985959009389874968145499967861227139874714181417981648377161408504191327256267833890991168255684371462308852584237595332753427414790973936303016754269219714545348773867046776727298045838264303530278386657172568402194167725268202505040045180519799286593802609405392098306575086437035541712999020090157680345617502513750341280925456407409327197050196101363219448823000588101412954019787460277339464743506413573161352730842499697867303422059803079950097428756340086304575226366141147195297955751685937107296706163395060403436355232138484192834507666126535602185033302688893897912490403382802135611014672378532371985471647759849043609341432386775945168932563691465700182757718152685883086231769815649160192284405073166062640408089279240912428255949977428077256527458808690177556637248804521312787225636007177354996810426216449178185244557244946766899847195075835052846999279637010201670474353954898224760591852389809905474023550136944003579541695716434268908688368606895075103729154747978076699616344945082037143466804903541774019940827302873993247847499767173008388880104481520476232464749883708822944941981497215225640629937035495232251323780112575638683877461338545814400254922741945941668396193267775341435444319227729341207708965880998047216852517234466145310496069792958053008255032032298933353061205113170535969544536164886754068437418673150170252338986447427406144889528705705171292133975635451510772232497990829902733797412635525350580102840651443103065397299638697733425538588782486987877715848169976279905288102748950939865342325598571926384007377039807455698882580623092475140349199242685019281767652751241859618732996548162660868836519800375134216919641244854899033885144768687016465918388812838087531415896425819864274902231024546700923395387627751268544520678911706539373419792210547165819910330946031209857836534424976624867622972679234976369766750679780846228143797550383048319392082448164007000674530082199325726810888397780534585380645953622930263946665673973087537401040087323204300650690108886674103767022644454223781598641882333400851902776465781163637533511954936679521683067421869344112910264774248105375626486779080640889601104535572641301332724047937217993051512424296516612307874730828391446722589475291437880052504999653051174055424881756585692401887727219494600562133229605018456663678958146361610941609428532042105030612588900678019465718281994028413828079690815809420502846472070568782528386716048183240062818740219939616869199676474849317592523987137811864085535165266776560637359830824961381808873869383761239676913304862083650166843266341113773546840060994888845851352842011113680692106267476788082746459926871636101110023591355304434607552747437032928745051633748525881580801004473607801458740948906574553208816706599769064369788019596545071741411134219449203653862128532707944910282852813330517664973794686421536257751828488646913534966702135188506719148042289163452850629905440593656072538116186925533071899295381777935835249185034509368946740809537325693098847512901955377331497654510906888479665851862822859384438658407839050372240236257082231707469536305263177559861536127607535740218094287552435368481033442519668779438063258310195681294808723943658096461369964552806225173870969850242917750795418906569340718651224510826673890255025227350062670615468534993489844087727701528098236172384556007359511879660266712932131365465741428054336386862448332261329468773183127582769046251875048099727942188442683465390903130445189691262312304834430012557760426299635810212815586525291024774905417774191260567439586507898462654757680614651127489663118202836371501073344001217101009470662041286136696562037793104293090827936808078573425133686098888358618567984992687707952918060362961397512435777788010691736765527880841108017088041251777988007543993306710610464909414112078707730318463228301661151173202006935889942029207845978507465344843371186311871247463830724815266376079082892131273402730321111788624578329324427810411556583167821224334479688935718284921801219548185290749532861464945138773319943255558644896874397659467158777815861126149919023550935923289230084644059086001383781694811295099343836311873105056092567180193039767343926620197659883996441809430399914527742429069963962797202897744795075074535970196259358158562338537069092513071927268470294541207286512948717033455133370766731318704630172982920221202432240793231341218001632032424041771326357261352230580953572541569002936332840702002923154199366028140237102164985326106030143636016454542069198717569480189134603475788818123785070498610730854194714129406277016401247797533278560690257930015956772076681377234411825481006135509296922113339894170312041019481897525364607789284891914449606950433606191836351456579424519002135115780667600277952749834634345412736195342266412763074512443893200315149722413190655678248782047057048776001796384590644225318863248572017736027375427946198139331761149419319315816017921181776674784067905096156939154594784606514970483424223623082060534410216630433489860153889626531886502874309760965696527674078663960076405972363825013433277168917066627655764420805463276595464695228230392353568946550245416498614954187861726635684653746024338378064973374531077919934298826524145751584326808390606371005139440473956235473212816257525358846903205004205860524414080237546670044860376676003093088945509294494668571397678617043940279273208977543855218217512874366993708977171878995938765438173182603112049088476230353073127875717961181233377171621987838688157526094121193198903491574671650669158840406552978793389611786644556197038440764974604607441998652410459537293898321759064498339596754185713100851948398329167130571590380630590039210729668485868100407149827408680716579228856075124215864265150875976501699311295588935302652409416354396959344482381042526683703895928978454308889503432934122665460775159184775094801228806543686912503646206452347579594290919335066144811196858144177835958124795217155463625937863669807450270829912980624890122149640571143340050633048893108410942121926150357236199684524192836312592739541028577131348982226468823630133023295968392138915049602270530915342024113875947956385157102661495091519737014282211531833094887839271248030328436941192841087474318662395173886335798293822870290482870897645712413964216280250340856276126829668337080173809865311626168847076588993068166368884766265699657544706881773821565147746858900529177676955209260916789172160931584717034185990225649357837059617187587282070948912832967539126881843326743516759334334125777638608174831725804962460095646668994065307260406906177275319651941107769239410016398377479640139498246148585130961075875033712358957751554606386173838499207852211761480534633813879041301100870895803790474142699654945528609461368929205842577649633630974268665151805001707243295480680348357910390683441741289550870722983100039969782447257122071048465596335068609822818951247425120500928373099695088538795283291681761100158227665178261774780232820979165752176927036559771113078339891166847488475571565976072071505873417497396563742913337115651512200679739764405825114674722757944413167022117679564396108521293256351241177841013363351189533683208189863423023748582774614072958160405106196470979074805166741577548088365824081235654664272745752794674478600780294156914452979413062288702630566871043711079891575771291584512514764652747548382338903617269823759271211065740746355973394815640294464297272172411159581186177611581980614077713940740908809266910674269959430051633786108100291522549316952366259315921916560992916716281283954422466055212400439174964566072058408874610009709696842120428862081592230355544196917755694924462723423090274742160713928889812195554925696535986588820667371839734844810791365801289994055664414405198864263916833857397623920265209417211372056835049860893017853219382248266381684394697756753877309084813680165443901043506610934268821976445372415620640085868883805998250462827754010985068416971620734615474865454083374007524607257754790856923250833351927660937242187032700501887874160552768190231766842566172486453669121484398317453420934271069193902459013234445387161838540426699417211034825148267613221857513027608538879394374841403855950465854170599034879219348395879210564823504616177812516078106132041391717312850210851662599056713103685691969857482444843165220610714124754158747381127616753937150635592917531276436056125171098106256149919925672545266845103527107755520974748808954549210958825981062310900117903886623511396269335133170408178646611100826661679665549837863738600576956166187150556474491685527865979921234031378028182860909392738910855502073086373054023871652821204210681235387686984572995180291173260340971203879787820582113437391654039487051637470348636005042098310888168856347591545965372553628160660106169775670982196957192432625066002632948650828794956842589082812494396648318764610759743290568117403753051897771561569575479411744595875701887743816846435475653247466403441782749912461340525829976595998607478260891418356051096740161995887150257222483563819299091797029888023544996053173037674405873344549614281162727079963283413359665338432489866197082801134775008690786045773943006458987136190040574536140288732416980729260867332213662143317086911692303663835860236908336676749485996571123266876045450728878848243167218911125243423914332850771287347847719981885475229147543038434012228015396272819046185243431663998793211799780253342943401613499910412586716890175553583496405906559084201398440276691350119897392026038959414149642314403538262461885155382808177107343650693815271943597929689469318266654340943630261736045371154098863070128997613635296380162167861960265094355905104504128465165490758591369096580808571634115473609662685574823587353897162494564035181931547175282593099603996798007322187144384550564985814769582027076138061112116130555150497368454091897603175645224250333490772215167689306155506611720606864998754550081957689832424770706811222165923621183121617293906273113467570961743705134683627232232554987795458635688727795107166954187421153279958038091046488697826658670109839055189441941971996902662179710455843947230080176070084071725125545553398381931683440633977417612208839473581792743909382953930893825782031948427703723119387473434542739827423872308902614186798614440995002958601914887999959280277105545913121200631697135990276199935258371414401979474467802367039582298790584531372919992274232011372139770831174660168158540482396770929003209645958187550587103611098495774480307139191674244637914353622786082756138591327981258994663663383046103277483125393235634400269763812434213989157334178319391526133412273641113467719461626143900057040180270796946582543416083096970467346646382133535257141329769803210849563575363031555539893631962628694958955879350691634290792198872496286040850500428873468677110395665811673051023793127461263729548225125106788264094587514297860976523381037434706115637210057531239643347512772672804241808972000903156428168010325938787296615241626725583474071526817388498604753218587571926020636202817021672511256298041655632178805661572300293628815127622350616423128876797902767154175186147062918425387359851652537100183808589547253044503483460624385891204510046858278386308804793579619389850740813104098977616836277987147464377055667557051562845774669281475544575766999865267852354667877476849169730988455157503031329993645823813791962542826359745655898749045336629649804567081137190020178725938963744717089334534583629470482475367167410779706252362489971905409170944320876678266689110829357488145668638006680812091968489981987890492896000135691489378318836585003653066360623901754843887814789245746438053327698442612848624140875232061067535550129527964019668211928780733128585192880036717981852006361627151725631285448447643486526717303924608452175441307613325828535155214264313451949024488595064981976582758660885824381504038546791071053214704351227089292816482994849566348944619925922293544767550335384038035729951530306611382730115366600575409845578136595049728099306150614788150460197607328274322834834989172715476295704786124969008647539774267689104456797967904800160435561670696664849967509166867184378614815878383681370078131458229409672794954094140638169834208992780015917357331861667689308934555508606050039747457073435759259532330678409253431521459033994517880954416773814148766499073333282752244323829832216276154682687137599010195533889704948855158760170917053493110143576682458553992981781984387872025953946294613717611060890438820568315243673255086938744052280746647539238466155318837828511063397494957317040379853811935828703718721274177870461567453873576481871387492635675577761578261502439904736235405445259642570087848823788756308744231384003189044472248859915473300933264568964728296922548896822312648015647092790954906491650936715905669587430607576739124081912275347033253612407684336235704091918908214483836992365314869765377698909132450236217485534552523175919258268141576151680647227597081212047579512875867935120181903447826709355486568969371723810030776166427061848890339103365770182847817504939806045482768853269030871656691843394330615516138083919106344301790854407570446685493600067411169517277571766098664203563737615625101204027530930142070911887973722613524496997787138556069553370504251109498925922046689172415411544608873941024701681476555796539997827480216593351329430745312639693385074689140915942485802052371438382866771834592213449164302292074514826956013184532058383492319034912792065776942053487445950130325816168846518512549428227287228928383110629004105427790322419370341837622207855381527423309385859674963611309340858935652654310294258905448943820123380773044311434951963317566477935800780415932279612155090697549530753297116841871925881525492475989574497013117074518899932303285596201619290581269494651841505456964044026787392629563264462897313875544354845977628910070465431959959224085597414785028567523769956843535173820873195569069603404149788243225655342952392136839535527451774239155844744483832386741674183198082554730462200383767116231997313931084197008015871363314068027062221033165486409747006455441486656548480538136128038224307686001497581430417883485457642581104251051331739078891079389413458064797539377606244967240613944782194088910943554804047710073905507532433645364304440082801747625373214089876513995379221182982644209291237236525099298887549553048129566660786953424893091406745172167059088606536144527230004558229794129974482284016211273796579778840939792784325713394134060892952684526883532336925961148560556919722781856633447667502204802699129668725590962395302092690092865205130073401658666682457900096425348593132788693162345060214634522604228021165266876002228392670660638717847156723292919459428207606978562300320133827759307367024201728315362250331574829760491814247988388159554867619390581622896662324373632207937744446437277531674373327716665154221903575329405751788713674702253355822521764837879352916794418451911275910919978107945358931317396492560961793360205496305033174348913090056172219929893250573629454876692171792752900378744838647085969737556953175685318192124756327319910517669378981284077848487942267658226426148601542309222406944461106067164332297167005967254962580279222822613285304479404866878192960929717088150596301763842752687365613034717285082190456983130837752782588175839749178840127123425885823358807757230144630947683468715527997153624125602014478241745545929723089544372024658809230696610818792676639604699505735843143903424608821861931353522662021526087786488885882432393893964453666716449140568534351058711212018479655931002567640902132041477453693921305122331056558155710538090467064410121702815116308061292947600146524770141873815453583831726754724290439456501875026082507498059957002702666922592142068405654566909708095606934895647111758847422513492595680315928379256408616044155871535735633863295087559006624568944549985454046030793422105660071342964965997552713989123924391664013818163255297852191187898393452759747241068640651709109140128225393168842087568193502557174345688237737691049269112106523451158682610554976768021536421347080290684700209395704126770248755818328738028331129965342974585677229790935289127072370680731688228516637886202764318325681183332893661951197713001554686692664339431662490919079553249856414034054684289482550271343677380752666492453712611239799282512757571141885583188230854197746537306888740902837655960817036234579893538801845652258583820981300334891330365202002947145117207556056356764723366981976839400545425567529614753179606546265055484975846144551018287118944916839249959893054568740931748600275403371479578018612465346688808372105003424403853570299779807333382773822388580621424673815999657671209029940798360608626450244780490834821448894501322476549647187711994721443212220793009129647478029793581025192941373667330724989822378593101288463535964117982105115560954788212028961133821083856186380386121005141320805429451782102206348158215969880319079021238294543281267303732551805190670998601217240954162436851725577195558787471289392511369628790095595308935514953609030060790558415306076014691926101270017836767518168336955912222212929323071619207774699484479241830764636662092622014551847548805705706116708733934049451714040296842905789907309025677751737361715951061109462172668414245506357721782777337533067901391071755312101830862589092179228672498419335421783245932415171027411069255036171720348936491550948782659102018408227306495392205900536526038949398439456743288281572282755320473437001178180713449421029315671432754381375538978919290975992214610378268291909664352830736639883486627916191749948629451536997382745375874964363772686241604055682469451892144833368368404514301819011453284846180791637661206474283262614411562050436334746087708286008009887036829165160741302370954813416632314710787467090449384403935596509981353400900435833460222623207483034906476133450801751704565675206758398991013306081490525184542121565245150718848884446548466543339881337901583214056206047882538338861649970663591263053843514537087267920825058781998094280934753633911305435039998344901884582009826712134445671429680816678505335647672995854243626603141675545339089543287003907093446858567750427048604632342597323465287691486439058445876800350677856691130974093087398228189844585939319479974520150911931536120696705187690310304235505670396666595922361387562811701609729762106784401861291058874956902835323161459572839299547839763524292052098555301443115441543671886594374466059048170473451323986202684793430147163210648441612141479601912019146627108513216841335809251756870156367045264540550578621662667039652776752454772365914341121637472313888334521419456881000515965845187760291470225715500890379467563763055275765126096750408813129567925123863838516840083547313468917791124933425996345400283477005036657121468144954654343521172625099023511588862894565894835615892550657832523307502132091200622010046698651124175330295797161651769346979197150331528183088557067842545851711456487031516670228258951813107295488900900535214752053865456816112091472880423585427208568821896576193230748865595692912936672180500310247230516601182284184283499326007124514338247129780450461315830520787396464376147892443629817564379266217108749277799994626698959499910466228403401213094121940873694031938675246252972740708315300810613209363603693436296961777491676000802795788570035156143873934076226011591839261673358743049529433971840350418802149986235976406628066681811105341287790932392441624090534974088256274555033133804591789838581381979698707616006196713762183851436934092666747753829809386230648559808233930537311008971743692617727021761510156724326010623449849647780986246045764377293357503711556145844173976265277571616869384934935033548004840172883564888273967900650096032058296132228020273661873789121240504557997537998633799082344835198147138231072706585702160960575187258850507866387901821517306251468377418235817882189714663056055697124623522353152604722864697737311099487814169077916429219973002455928267580695357364752329586133517820498632314470296116047156969952557364040313005472387950875730817946819317934837047955294619319806203533479342247316083804069111793600174608839597247070030111515791248402483755113601797888977647528603240209064824336417566893918781909387820149629384284553089570876950548690777960112698355235369564157074146648956242872120894167188076347773827839787864839007291577875011109468557519357821816103927667080451010812468647187648871164901995846557823791549458050516908365175688776300957483717799399685752854437759503968890081493659732085799476006800534618106793166508098399076747213741327297233344070161993719124877700962948260545707820260776776053063730338339590495793943149186965574967370950218198838909390850039640980268493023409363595347130368098912111504675982904930351135362187817935253021581341515596819797538572457506628381548684616737241411708725513914057243189554045279765012303555310546625551578390140946698109143680861936785573753796491053518381715413818949723104403298785935454725477050705691688116182444627113042693323897951662841807549096027546191926011761719444372675376249452783508085584017139800536013114044655528924759755045918537424090449258628024854230820706874846299637513152487648190583935399556809721878481484992885849140517855506066408614590861697256109026191877592247262957835124088840931636138086728412122942784770537125205090912554432768437279361626497656352991498751445982080962435725186433560946663146885533649956280841190965449264178770728231166158819989978666751364593527393381422342191168022595023433329053729423399094156571234646898134852254218781783984254531378156311424403895652925867924489689170923113431938969446181677347929760780916909564682024375822785940198216606401486587239361624186915707201525217939328978687457575293736043959096065563800307418671225261730262170795061224816278441462683894103344617807320179080940672204993073423821464840685992164791102809845539490343624119026985141003626528719882574548096149174060227623383235783498813315489061415221695433736830898839744271826570369913297423940492859817974747529293253180248097343949955612465247450374922926616716328513619083472264728033887102850663999898185115311214082084966886013918814459541134884842189692648809861860842123686510464064420310573658090450803792408536396912217720193002811940071399669610190205102763054173575961548995919299732306162322855641970353703797012381811156806492950556231630773893114153874451588072505254574155783566860310181056324332707479637733302106322416341563558472552353495358155563827878271976865740696266854714666604086941882440042005162182372955067760765987823489885913394964966200149378264262020790131452209216427731738560692635918309467144644759606162795530514523133499561122549203671239397455736561981131585000121018409646673101433397297102269895132575949676948101786278308184413674939727863961635307134914815276545033162158199099511913426536377830841609914075357451770156229865547109474006370767809921116841969448664002310027449055889630560118084182885037187035902534372778859608716070472184083389113528072089541206730406952607649181157790131620585972753558223424184609816767692883679756539252656236915775429136856213184674597351926954606328895537523367832079060328563474201988449986371090745554399809165558239164031805102032584229988314229110645710116152589307736994088660779276154257554863718023290083469353585588069813769856523782281700883113745500700429177760844846207470682824880992561940980125917146951725935784134940477788127940265179788331617354939491597540402907182299060906584621844323770329483532841829135456352601929513361397873374390305375546332707075565051200093316242657895632723097270260972426746459947340819127821395368825360987322829542070877864733006370064136096370086204919736913631019234624654575170748545412662098911008652606634364794442814128889504152751990741437154377513495401141350869939119677612974711730053408165006579364256697738188416550449027367323494070912686959224015152806283723578760344989445290140994219269357032376749907755070230091701905618571468095529012688223141826383945114683788828724304166879644188051669600820354438716187728150447166496849870837959408751626158382696340349274917481992899756013508306704670211612637939100451189906339210782424422361518333383062572340497176969304930249120213370876649635116481014128141515893972550712644426675655666336740485967808219192192427902679980028393042801215564039164136404374220789722223037999113456133679879240412335838104612924724661555837506150749032925438381979569232545355286437961946096285213993742888676136375895372370932989111155621947714229413489074684182005832760097948322857635578899344219507512741434346786514299091094902581103748920628600815792702873530100480457720737136544899604794813712646407518888024303563884679037599625003198949320006475185341948779388434089142920962634099258777031021960037035989679388802328049284008282618368290827431700713640745308171680807071001386406121981314590283612672638332939978448607776333685988736836413936726719190687112731364967156124794953967976913058727138257423843234638867366733888036364465155344425680035320157655986304347478813643456018377819180619844307600314991289279462636436026676474875680614409704151941115462207040196726844440227669686965493184639834512776963232880215268151955912119879492442437760872586506289827204919867741479268795376883380075161635064892148701321594845480771363913070712218510690646190248072320465342665683492308986991526356554955052104052035742754295923058464038533678849896931272070989621133647173579381072110757644809894769233956602401649143853510101687030449823392604090370767088975564644466902686102590716591165078555588342727666369181813313629205451333237713486554241526296567211746418850724078885001430936502667901814868953465108318363906111385669027598155659682365298219180205518694871871893928058950481982726986531386382906646682763114620004707112117876206140683409268397089331441019185520670053092932908174569206915258515503319664570998226382247668430775558033091315716374860973649002658210388755856499471518802959222071910992859660926282793008511351547026545331119450909868876737150588076206680545686995882577714403084739396238931963526784302677154909469704186776539607804210721519914589335435987467908219008351381358838536252642105201140430488535107465762763018474248828960089931532660326383983921423059671466276838365718525251483986710946316353458292360965647915115997155075943925862124273821706817026258735294914641639334518147021324593062779456205845621588004736356313936737624168459560104713214356059754432819411646091395583495450957742756761976702382606401707642607623806567614477494110432639647672229897389852811160641491634558419526265497001198196925215854642151343695736485977890761059355833097607209876225004179256125766125711002910626397975828447073593054069294498420840185776195367168035850801631967391705453979457569882461710146068721250567903633284322850804051732514330245587020558171527087393726773286215006218148474330766157655380319941560638724732462051533137874170386245195764504378442021177932957604564142160447301026736953915625752997487525072174599064896876020250618494790578874822471813417363533747830353021303600810839428333229075826735366763310911171740225393839771435185374043695265206963201249794729548874836715836478709854919041961784482366078440133084801817880483331510343928348173898013857470002638804184545878578940130673525981239404674332012517966186373694307572394229441788754361226600403884573347419146764509684613002398217987251152514360665711831661498311079285837803312179860708361816488660869766606674719865375781328651095696850739409141320844257341974026872524619644785007529621051228493868159829640993140893554734862166073175549763685943873967980572019318721607976647938022046964847787934789276917860901265215845045808467321436356002712370904412197186240435589627031925687452315804782443571287759407066568609240480329049512228175092316126493467989682447159542423604368242735533322062371421161298249434429774361676355094922556571172121674591366127002329267818981620824307773261671181780385971032500187752580305015681278129534211889694653454977654247933546619930783389441451990107712057671386732538708567085437106019463431337398069954947288773943644599617783474229353721600786070471697570747084307506869948910498393364466631047731791600518112441606490047710053085602867634064616426431524337503741227359820991771090133544047540327775054280940406698058383253410098624768133422351125244118798154337069460414239660368842933830446839410177334461482433259695288383376673031351794281034676641132840075715412497359507887370041489789800428902383866586152779412700075739749215082128188293557802718239773694949854938433871957525689677929324904157505328603875337273767272022261136591847648280033890443013370573776954391559033070988136681058009902409167142073680579981122591005526238180095527249293469026698200462959377045156053941930498984122562146352873269896260416008948621192985119772753687524871628976246514731592935190957748070863067699925436658480772717629581158865124186089925299347408746702861676250970043772274159734355969770513134767190976803998655483520613322520431948044064578843081012556137730838693782675922117377072465502609547068123808776442694120444296864488289916153378993960572410270964301699495651214393539316236147821877004936778009345955283705903422351463843466872408141946772028510323250712231441281923792991089660733732442340374201002346662833978536973822141884434431932963748124525505069570840407270422458838397907239153242663590810346836753207266374201293120767841791561360328716203978973877008122259302872627231202356583683127309285400444374119822519171142474950158551356419671258258690471640408158498720558111270304062561897832666754750948413534105171377704850175541433702801015690827476666983298123106275546990366127676304009102979679967784420004219780096747178335666439586711829170180103519641145581084994322428081237118596175213939860701515263921900229657389568710285024248681443379408048522110502041314459761993749920263524327229019353306600089933343566735087615961827906522707685455355071431322286129219736768682358360042286784817362007906120719185902703883789040873969844509427810632158995203263026676252101923135716764847731495603967965370292462216540847243683964877650519071228116715102492781096586117252686061032110752154349762204694812805190155171494770002389589281264100755100846304944787458327999757250738220264700791614147303879162134227933803387366541374611729070831340530579542350380651694117924046910011946012564318376893832996155881357661339750005290831643443281276061262070694122649034480270850281965420459567431595114390704100722206331137599374273448350132124240001066328651150926217005683768935452621554480245935621800094240107558608571736844364141220880532888046967149180362699765840412465997405619201324535546367601001684751022166590315923275874150522473441135756472379149553292048691095738306598907766058555500096443803981559608617886426405676623530267374633184579776180686250169587298983290719839313490579445425907160450644973975501354825662555997612193306239669911245871221859934532350529092228220249829235101338093616305845578585853796192070161211917178762336501396550302991751430186142510721109049006181491709777100932885214332416570202143694919055235703187413678875673391200922903540617197645265050291972127108248279962402519121270297034662143388882783223538494934410275022134572309457348445975838039313823463419714516311037540379197792364892465330846995155638253525438447849651595452208709826001626278514466652864505193879468335076203777064067644931084555588184688833121753757430049653357566765724850080184852096957666787276479050981442455535492621548301366831343913652685580471456222946290091210946426242895623420938610236526579533500412431218080451362453089119990014383128690109242463607044192918329977872175236365404849702392285485450981920856565835977448851673372397936555122157418244048763602798183440543462958980518209577984801803115164613840444577197459547391758885028967192226982493945926410729640643580512934183367976928873812482933317015126653681813605693898696408091457431745230118875574493835009609256230085421066301393413063527031127250054338831185470025388065075384169500922530530675535268223780604878403441854236551156812186447480932626679500623660460186762764447804643092285722284870872084592934125135182324882108718449203885887571159761284737060951515805898113309899883390356964803206881076899611483056572858008937081307446347331834638609526007598347943109102970645845138876688774764983833334487655671779813887261829795121550994471130382928669231119532779264385931365104328163610091495610379929270221172074967277417692232413988880641571382567897755546385718564543487281859658597710950051674001206288601978297997516843590096455136582604926115497235111554387531321250421457070942620617752951325392514661848549379107660091719594646708204882860521471535894418916390490622790573710682514623653427022995673819562452413223003062766779328407557258588387971576912388744853676623298909593747868318810530482531300617545701675761737749094550643401131329445804414355567254313599899378070543416778432333990484790352811222027534275978234157839643334200547655106785421824137261770962477994966509015254822549873141944132153327919439806917775221263844602714114214457453816399856566033489761030513057298332201285271138264874758156786539704268977008368046083254082653097977364747671213529222328002438965735692502426975129334151367175242639427482428762614002970685259482220271974987678501952931030317303755704559699686850362518102192064217383102881169999853490300698364453239870453995920133892853329148860669720584511404166491271088086561115024275228165747653664244365828555937658761911968101109014309320068349822258325440760776026562386604626673041262463513374427704831723714737123282622131371281777178400272467251573045199702103547076869983842405817445535832752593363804354924610741757863002645831216204652132653030796591966955499198832014821632838047848150817629142589180597966110664443906654818513182243019675579646316979927592264490827629090946758964081406275008071942892334502352132994834461942387059348184745122721989248804501308637714498845889259393101558741903571305688702005898473856108185921639342940631809566763332345391993882912167321285427408144737786347628400843943174722146791852488869092673735731415214499142728434350036660949547999934948536926486902296378392502180686902299837235183328873491421097762620306606575557387088790026763906325608179909201788225154171744119117439199124232587036838812521073663888271119504651389166329284506938367736549833190154756617410687674693309312862921089784767849391518470873131029032999805604443748843083867223870707823217726392000541158190564595218953482217610501292638363883444222507940299479570204055816659173843279547905640168040532341967444459233627259219660888887315670694172714236540127941456966997657753531454810928762567474498823950491805876076738762657014413297774914529412009852863301804895338622846527353196546693454018956709245810925737705989131189661425633696550283527844131083910515095172138255161938732169319325989685132289763721180286223901192457060923157492709914976799616309296519984566973881760270297900660114450476589521314112842628771534772289148412041231296917751916578062295994872847979900459702352546208837747058054160035951529472486059610392296804324468954459095776575571239381905094028873549427177127102729071108069231431482405722022355534662243720176844339015464351549567821218895759232598750834091633076022959155780553705358676445418716514236313498545745615604857233566199179064954525424205405868669005298690711327238719770144469135042817891368662996059492429668270815851810743418154397970061202005384670980995173351604386336484049090868055465377396373423110340723512328072883524348193040803032361458488517617281227717940686260542255603607051625157813856933365227149618871138270865432335152234884364026160295677943755059140454355078978239396674613992050703748917549947651811244018139754449258045479026511173768130902773862765921782374039988609170675508589371883966026807611749180013776978639709138323798858738920477301216422698231101926055538457094901451870592014299599110245897256687239182621180368069619399265465559674199146976708258556280031525341823351008589795968736839226260142431525847575395319133786520494195131855005046426722697743806506562039188330782993772898642261846508682015779272402981727558128844701455493861909887865619419499014624269125704145368504946888689398939001705733000507526054073108180849749878959073950316156098038728286907287401946812634060559056955826353512993163075340613524268676316848592563815734664341355239987272743981227435850930798639144991938105880158475555506271792937179468382509169039745708676342152569013244404216262210190101284006877796020150780197418204845530102769284019671288035323172879043508530065109161784344780576745349594087139374322750312264923849285349636797708705369291453074327253097943974422631086964470610088506277593393412373059977645301710469041505343156457200861514826534054435775085928974410370968666662458445065196270774299428601267554915152508475479738196387605789789639543178622563961003517557417792900452522928582383622477602768253353164815793929145190589129175786496187873633159221958743445435270474555706985735785149338003678469272648948387195321609783394244361427628090562251981339566148850760340457286884319711795926318173979056904102995197395896209860036829035501311322140901215065136871838954646320349654474660648734106666836415124266291751718366569560795123378988457442660452590901600226784063684931163686119630574470983288434161561789857877547358018449043266435809063033506307901721886865949749501984460435771134348767826366086158812887793684474058937783685377534667480009229196696590807481185586189814602593166400813502018968397267450915066361913375537057741468427931395207002894841800415832659059891590869106736313607223979285275128713791943457583456617833875604683976873732224625669847170312933003566997358930389376277817434440170828809813396928337837290337287684278267222823961189524231850254433430413417757815736098491981114751179699740751036634439515499535041630246748718421639711010998276753900115187435608283159627505407104107208920931127549261905951105930076071440562318665591600496071648395053587859132615846006252113920336524202703725425463049798309690138562807169154645560853833103947404054236366641004607583616422882942301930580242239197463362484082432447771558444021452802118899719500944949662498369187769004694760308612176661595487360241988052717847977494776842620689147797138006312144182959516097843754795779734748495767520816368482573546194852699186678969298054839855941274480687816344149612697077411618996629233737488234239723876618900091994846895520365938458744399285479376435909854194496199675318320237602376506449131676117428915172845648087944483955281910415374479519894329142820870720233035237379994724551178097431019469567984254236839081530075934329115650542018774226603476891675345765989829543521421362172660376528035559887312439509843744738081268042563468447992651172148956156466314540225266671959774026591589585128698735049141762997184891919016329708653558154035944830254399779436443810340522427039545700306848960153904648333454545195811059294548458075711795287543715260068582232121569567977709130520727700347753184005462554802355727061799002148959844391178896577515863207157452386305707604374124234510310273323508716190310751428916418082007567839508525816647699913019408482649285651054555181902765553534597883825576950823925390914130830357906603855246155752043644389834663135671769192432899679922173545855109081128211367924530218671160728212272399791529372167810438127654139185549874627246515351751933175548189718804144138241266457455766470846648680355878599228184985319424612256267668063902272747174176705150841540254553794760779294650555844524642324403797487932209793530402450722744667033857982526220789028532016295109634752364293243231661878951368431163771713136225020341036571531349869439728407439240831781273852706094477207649084999604512528458745614217712385394110334713341765965021893873549472059318587966822204262220777410171936083262939052943476240490221530333355619482385299648503790119435833067770552401238316581006275511265549751261156931787217599000165715769489169820500200839166162325232483204088430000597560437130491974745465566306758089012355340320819561531075541417798313549507462563569655201840528443574472656438581945718184110186430385787747205500261651943035472918770920644106574341988348533082967378982860866234051001106991868247829146063140970668484910500221304276984643644152077399761241233843821369507044206044809503286817222061612750770807029558204946512617218954968876238253670211506497633278765031790983646746806956422436055413783099767461963436835833913213640086334779819235861575254725106830135837204351061082077900513491928181322597771159733128815297494528706068411502800773218860664535332548592913268017258013669134714740747354934651725567834934004265946757056550643946533313276004935343283820313661627559351940041342328735799574456233100402062683516352238741529392142155256948051305641621704391742162586157933754466298568195281618390831253553532519474537288497595213873822894628452588001141106150496311339451568206895830995657990248817656811540824129218905074972982148819230440971142347576101856675180480432259600947241068706398373290442689244165507210314132160229540916121125150961102086991691025692781064218205610992169092086714765291860166800737124179461546852844135488150787623335445902248045797963608674708892663613228074223206845834507267571314084639041346017176612473772687359118671271797949764421685521445193853123581989628397451663896882255645472214994294799578823463707877457635484386910997134485148933485522222530619042524370560958537023403475856430365985454663823001827651697094687655352712615544099834943761128195614999458416247337150627334894458042000070484585921178155267922200699916582511494644491536300365322724318342499806093553634688154671152295714164555498510951734756351922492757831798171880847271816837942324442762733721372763359416905474641243949652078558929829163962018388987731516184189539910617860561527456033766441467941465197281471598034073672048436874117955987048480682586229711935989574251046433103177984135512617685495294306986597596309607881830737681568470409925012206015134231927475138026075317600696097080386877175312518977132871149879170814705880907471346342944293363010735803097163045220788297889892617561180752356837711932208236477022026723574085932080362811588715438464892129847666502162226571389061797734430450080132843437864377473927536197785485239910776885705972746091962476874781880516317994306111450376122077620238156844977333484084328663740284723520135902290562190582341926753784409978094597121445264837374120452439413039933855139839751049262661268126008780065144182084234503581836318805179344611038176839031715521074254412469285825277850642567802551389887462051871366993038381371614411009181598827569551816062978291785822874292888443692802814495527018465912762427567044625853205350060538631434357726464532099012886960965952496375327064101927983073879071599942632608384856221042025575218217806203661083646061605974322913170489874847465402792866822991929436499180928347328266614233821337205345190587145391201014062334710184341693020198124296392534918236445441802866684931012778078530806397885653505288077785917261875166943970534174776960873705081827566378090514724340859942420075152183964455470496519011340630706201453747893300561193408549189476004696923355634576800958177708248236627594117404566800747712898417660102148316425314515191145451544689162911367137665686330198482769856050225633387399428799575828983357625349393498494102645796326479214594790818118025343359048205296987283797079807112906728132924679917858600736649964676742647288643389038505820442192132668907932850964073369407118041663707561876186097157537987067495379515006807615348074346960227815110769853697996234665407519593301509477758626740565031757609985491759512939746572993115567929576747435877623408181778427018756364986044315822605763422751174092587038321227903461934107677691382829693849571610858436596402163040140547668515234274962990459067949206640070886619881688704989380740142216878493481743402356567657253174991385340523424482909848080674274772173952564081893687323979700615507300449893216714911984039274242601721490441793817048203873156489769340500855686219294439504725879061137379511860880211618138038157832071772256458182084788402267572380685681351585787850791350271775805617239050966043516059688083651077974671914094746922620020659386395461046991946787203059628971276115713651763490961309910082266257789911227186813971976293859565747834301232546486802853125140340854702535218016592152869429394808526374563845230857789476743161773319030510037424810848620779224734233175240983500623562370436062150928876155959855848177497741530517866686345814447017941625326001602914445511305462885640976512539027983935964763488524415427118537869480318604103807574193203953419281515993112972537532867173024361372651803535646358900745314423543860315844899672504542231391224394942449933980306407576129447517393891847637998776780070647927340100016698758815300869267015416347366414130585098847292923223767611571065331341424081106347910838793673082749493875258972407745016927345926673836006710830495064623669711049898689799626327706399526656711512780842719980014515548623081912536967292469883315741156766153629659353106200660726253562933990424776152337089792535483087354111325045004179702669514783896040414579275922102841531863340249903803155347305857112367512929180727582688840991081326179755705286126002092656146780491257530510137699251797713179382195095975307638574212291612203525766973505213252480167359085793864852376306404529142258370394633786392313938476503815919704791341067335860970842930742969982623781926526956597616450428028657576182666465872523299725763664026689502162382153853245935087976451294441664548449208298811556990260363758350235410356909363967754480246677125051220573889379085737005933306090988049141450816227842810911433512217399094069028957629731159979767993154608583899143212148590126465260930522172981802568111504695851278908534928851178123414521586553773400609215877611278505927540365567282037303389086143788546919051962495054626992540124925738707463133590881362829738129145976679383546368597797123652074134669829546323549680644820568679531597302090717069567508106390480196543303682911491171428704513466633677432770640004523318739959707188227982959974661134815532701160615504093730583101316961101333009986313564091216579878790834747188972588806292689640821275116973131412478580050481574383092657417184604282829190629247875423457140362149813214434118177677401686118721368708439222666081550831854443889883703131355306093299599116256957110208665622296906502448990229119426326963733417304921022502417232664596540854685918351469182614296682981416580589635846253409962526754339416239855665944053252961293000879756413261974157207080411276942981638885323075119259173652561922719256036761131069719328385254010599391702233082599280955480591682953909440682022078826815028922507632325606447100612599258328209689842906612511419240580411058706073952581410845467354088572234875397792462595081629161814116264665808174979880685662483255693301637853413495361892795573082473559499630395391533939562802171411239696783902882938462397124478141800978936908198051135211533825491957098983567302170715434137308750530701768033269786328459753573547300092005956050611264130068589861945673849877441730183271573511210727809446522368585167761660204766933620072296186080374460969737758063994883752087930253691367058991893064799476959698115230330295451909592894129351383345024463147313919490062813129483590870743452716033748248575261866808801060790903532088075140983916129361154530562504026244654700613085152474261786315772198518115088429402811508503464479819179542386828282390631483538702568659582766957684696968950594373918838469786950453438915542760317560625799205584796754270004169189022181671718602726000911665557196297705877110913558059127304011976648769020324562460825349359606159784540372360206225081550719316592320773708865075936574124504595596154580859800753004273437220326157048329476803446620807602654252509641953863210794224550387017281646198611945743291951367851847531458000157484804890734059076481815842528140459351648389483388571224831586455617304940439110956709401817379716822584258100687430094476037692670748463568577934917417109527461490217272079844918152190892749882193789471783793203548310371600450854187868032814418862298888750848701656661175226440620124622380484427236987810743691514032598269111607580465490774868175768941126674668562491356490151954280985836554379100553447480407127667083488347892750627384824322741734262431929537900473019244998418347224972736222677865361757667540919261771765232630680350889639701937506050007108634437321046919676127108408841922634419882944773508494160547129721365102090005646771721963298544418057845482203288298749481696348980001530229799844487406988831083969446830195628136795442352253243214722813076144985166007611570519823044104046089184652524656916735872477254477665079033183672545200493825933890737275685542294775698160924322839914218456151721188278944593899462511968103479418413872671641486827447759829592597280445281794865643914917134905090950922930052435913705087534445984295961313993707018327665158564039676704611181098058142958988801969664708449061687181737009140583115723838467521001360261535085717294093501552478722315437182776382163841811856392782077639305961242742872734555470563386459468735688302776564115444482557688051655935475982956901880055285354395450238274651898104901696527033018632905209037262596579133238895810251775018217171517596037408512955479753413685519780150742723175637217408920356058617314904605919289085319260712265068969458159132038682442405408729266155983490527096581714436166494156495583765486348470527149699442411070087208007003640616573150313646213488614655204883523979684298125871069783049725880195038397678756014438835089930159322732328739301135853902619497041689792221900803985733040401737337715808948180987355929032034996242023098292178231914633395736387299802454350595578256015355395322290671973971194656890945471870535185911132878679401285478627241619218155988550450988024482925240112532195839397233583669447050994924484384685528463532285035323400079942207151533429923851840676504481625817778506824146206645234021887349016813748162022223765630572742727247061213359921160170430839741018369638843531753654328899791454982937914010584420529114777040002379644908248713483873988156933605637829696048901674239311506682148894881502435072746946810077920271278805125432355642958384649298236639385554546189942550294873915866979391307157997398787473232992959855618844986249060004800319465580350279589415593305423986524819278971743396320255151276631559108954061221807419526530822402986742655787862787718117310343610402169533873289522548301541431707253524719219931042685501675919768846140422007717101660443034368788284035736706764118787899706972680012580830141750909833522315998820480724999223545384703001179604446532117127909738913010082015444140862386245323231203077594551165691000555151899340284853346098254261798068044776783696006957712503298571381662092714769437054155047721663085487931423388170350318067602680161344226815239088105585257113420959493549221781237812098759233547418012105923390468339653137629397211203306649043437723920673500611395184633166541400908940351685283499820719969148894945256705074822350731428705993464117919395720613461706493237156109566567871320964800762056578657011473142977680419901217790460346660916269394866922680325847027454674414859772219595939482086048506898076301412731257471693485456548612212772643648799965144857699868948809558059019757438335624253987211602279030629821003621590035345321346208157563748264071760320798119731245184310457364081356421735931716073635139763787039342096686469285037513195898098504625145057368849584863253984775663650693373896468979629947547612739251811677608078233048600316412066272760849333412781276258255071544574117223569827426777265109596125085423308300468476578702547286650455808647570674789323088840926905310826555588558090172237830218094347957015288671309418287463997794767216198062142371858079431453480848169734847042038420670390525357607284949735376913876300289406204210358581143422593807070303489885503005035121994177877730861465978146967206277181344832542531776721994048160908065442991988571076228293104855324768575497022093464691606794688783986307431911160787546840703604634566569331549235048039185834883359728850968115181225235003549549664218932379966586265121246502585764312216579386083238296100599284868420564897514386330742099513752498097022078779240900417577363178772097790410109009679286977715847199165133551235031158274817902297144598492391018216018455253904720393803985328169110603177137023348764529895987628148865993905496882445443413318930870861582205746457933031085810910348043356232887113045601185756429070741094498222067499709973954437645590421402518157438453592084122722493027880845995735668284182016304511745394620410929275818802173941814642652086330706725072863625489671910827908661402213657936181199599560435712419180997660494739435081593941598735053108534712354294316078876868925263606928091695722893669537249912948709871963765112468346296368063620326349473699544073851307857082519885784303127042497022225377564054735940396400107850997651774499132649843795436321028842888803792733929388560724656593852946438616650352061900734191572802242152616563565637440047671085937475612307707983927711975588039924142601035787902589847682627246827850349720255980998792162833610627106698398163761397063628509287837406877987771091736950764770520805328313910987484550947128015995762806115509384198165249185003351904598168066338148440339178250601428214857496644749046665039282737631372213504902708482140460099073852912832128523049125820006190406060407946467536503224763179425089113377431383140653985608016374033923882119130860681579092951087260115203373741851567429967090626900882320498841984661631630198062458223310999877700709210264839865328588153190917200792829493906243284205667766732500226362093726657271474613254767570571692259030588237931147634819660801290202505170735814095108886743272199290007953038680211017714607252528589367805134523356289415411451940519651533434398607326536741581562388012189662554609379136203171927972604578226761086018607414927250310032786326325859129199641004948924486794629736677737881064813157442556788240724530877433678773941843766608285581268859997644266352516420206635303313092052041473444034590542269407529704290353054043722797580573103981174289128866123002703365793411136406521388245784201903638807186175913794784817959689614800867976798319999718936647585085513984704902447389080817796272660088561712342661085492012823180336531178794787390448891511953792943069556664730797350065438708160105521601566408026984435436458077733781846899601335542538879724578323570113964530628843115365914221731739518732881403311764066010102565612363063667074278356732779493231891703460887958350673669568108977131810301275517285004944066591521147713465227849001454546619979188057611823181465603236938232893193792001187402474540074093556299276234685643045537358632105088525909071706811383453266267903694257523035241526583987492435590756230973023598645459547708003686673428097375015787866897750289750773328587715107231467144909872724443775095437645690988102507401882353216755425003370652012858384604244905150467763844950181020345380432325266853014426786895121344640341525372513108272526397068164730429900645753548596602895275953251359046059165264727261481824543023055646877161154755137499528737156186173117535461337503645505390178522363104685829370435310916826977472877599494062439780128248412625022995688456913816789063777447470165123866599028988480964702547035583674221343889599745573357606536155871869054818374380653978817322668118388128867155808239653184430422606765633940669437987823023858106312294171983213317656982668902979036282220444782920193169390121806986435600762656728725691554664636514451533740728817460559271155463198917099649405923849238354511369368076895079773490879034640237811318220106575225449750243694772201464108463018042232734353444431856007623605465942403932496141209241791974819992067848930815303922582032882122494567875831492434059151177933703641695371914006030948636626274321389592291542821831079783581968974929943550186653828965169744691631779862526931186405516028019461366108824348755460586701789579800098841315628742556549027630979417354013389165499049778484493536373588189597229289498255971490080815494880050583310728002407662400014180697430548799682241931871022478377726867800725834841383393760346985566881238589095203602840279244203925920543783195319333421571887106530793680859296087343365721542590357306102130326580788061334054455298833369266023596454293504990637774050064230079804238729984216187231642098746772919350056380133945917044963144759543729477748952152491711408074237175867966539086680502279180995334237719466343953458419537738286440149243497903654486993560148127200530973492429553222756417851459989160172082863856324650176880317706415347818240270506112408816245497131520556684393780948970622996611368957855395345960360378728282279578512361330759188329189295596866761064344378724694987841508658099368156451787068560309081183342739863541601089413831485361750711879343269605462094272514555149027563628878391426289734948751786781812212247320191805656826806287763120371062970089501573944386695827901646829632649478724007557103234680774861611787311691327939227591618610200476106598973520484277827497827758287610874894284256608413488589211782598993399185530532504727798312784262082496931002333456822906417385007523857084724326767227542133204542674323987563730075429875125606892990824694669351578785295216063838356698902162448654309210071485761765413555234046147316912757180811551052864690285322825381397418867761717039844968767595467468654836122265963143736783524681753411003426779825333018546951919079533309503688997965591583937867505968625698507184555986039279781030900931635803031476321542572947489955647825033052901160169375099424922494200177954233862001123758691958460407588177927493196451821168784044344186023386134938567807409743588984288123317363478872051744532682464996291672463994254788786741713203949387137708148128817300125624973599167867317173166401960058878196138546679885904585774386743022000961922950651779951878002454624231381975033868115983335828361623236087065349288849769339917772276519863667080727379649258857670430237286848323902330802773911501274121904463998002480578994734366326370431446426305926123334845372846869332595401870895263683360106598067705339235275018186616055494122019954643358973814887786094802783421216586858608291683180847017747402699688587283953264090796954628561149857178351157922457388679173843554670416050800231865869324145698149738748806422899158746050458324713310205169465180677943031255383921304798645050737203057139308009822272353696698937766635924357521330197576109843065811263138148322784126438725156161209641188262978911149440196126935474799201143166941261034477153365985835767994585250330115853086919258437785112469061381172702125572423621621151254065882962525748364279224210328086890885884886921388733465726629223814016105634381403819229851643048416430071066335015498188314251862110958095635340845890660587673450808549583626687957711155765655526108209618055760771145585763929928009332759904028781664423909247647260289124234899250412242375540610875434977370867666201167360437746137061975406034169829626194817257041843680248886883597001251552902984032332402678642884021232770457513443087677167190576403217776207351934214191668523857674113746501835823985666610356703258036755742418157509685252821969076993855095575444823353324476871197699326923809713682705840748947908407387967457630137789699184298330946609996205212168329286330790764861243082287988329992585198727432976184242692430928924292652781561946672091282311883726301626807082372623675623571606254752278283050987839739711383835610290930011758592737970164967507298893981797723618036714087739620573861017424313608771807675130521959734124494010410319866668066421853759138257813366218170535798228355090071168251216212289990193559997549090244079944629618070656739961932468030086240982474039178104646778268480866085801107803664611254309946107756537823245960100749282856451226413298737577221878592784476799342280788079236675322896686117287929701578149840094777713198150153978308633867323937785501159663384082435992279260636562617959606114395662296405128949344654915697958424767971490385475333911004487180817823872144696252521510394175697423194871289179239939226085531992301612665394042857691148207612061134776802590930484732751562519407956727543701694811921406052748955658774919849424296055259412302603628535869950055940638111753684252957732630736304115617898468689511039794218460465651663032960574922339738397127374002955275733278475208493980312796248688395871733495478398995795658271996535718461500102037373999355733440610372371416785659134446319262622218715799332162942072004230711576706771181121819473625752197845696881331605879352960688416915057783475329421480719253957742799167955881106898442221623829496256937689404869492072583304986697242119493913171392555049134073467732447840996622088866791480157434786725204074852025343511497982896325023690543269405439406298744025429836564995758577021861169118515767607505635805087295347441041225458735999417660829810569224043255216709555663617564447023123763993230434485700796957638682756503431122767859602867204353203937530917187229081045891038221087584050983938757049467259980525397099083951296559143395220947399647633833730986089344094372581737162165723681462986813540366790215601531186525275352536037488431027014586411429720014741344654981771131354467951856529068765051199012739121815863691463422362829210519758770137373393544213967291186501886570227924363556790886443025127547185393764754962494037764405021058551143089956135692820231833233390439421758479937517914737678146266824691919457014583224438421070618908866977386845847348059629130591899965078879083676952183801151162032639123245641193181332285437876922806494312705882510149498879210847971187882352707424514373173054101689528974921974602024926320165265200273009403981177514473104711625397655314447823696746225332143751382527157676662911090394152062375286827742990600861204430653266243091262204878528959075160113836087416431742039172088932202097341534862063942410806484886359701914912155457636188760448423609514181651431778102913476778459579094168478568178382895778253698676960129997802151371384041830427261342978491788061303549798124796693956371271985151192064186086452602643085490009969592623162161129535361923064210089132603636207580108805910958231864261063908035161991303613610620023258097192473193720051752879478587447493714632891271249665618484288161503318624091057753177324045858922360359967282133815742060188104386091230209229584309657899344948219822583952251782454882334703124125330557074928952582324875787029971232871149862262979209382719952960548282881139844206092774696915959224432401140066564017890473330350371618922260212678383766510175928157515189836716144465886492488432431523564497637181290357384120665771926578754780872361972580257746955382997133654693419890419474275002262248517303735497623713362971469631171090679279001404146961662068863396498228187791739311922227657631439247271584658612978366296950681147463282812921503192484250921940081517819341695933098078203738491912844113941856347345117962870055090462318518262445261933788973931245939458868360064766737949509642456090156296814865110189363097826650796340474313356249385310315805488215251958711449059223534635570925278241675204271889252270096914236057273621000457738574552378917103036531085223635343185116176327688899373509318301425101083233347811662648575156141896373997027798026667054259978330595144258325641768370532341717514236160006161452446859789436784164173060888344360075812719756424474526901597776603619324849712292428911027545292135583639037767861273454784019082205368700265005725422014124266230600850425156982550127716379402926331694756134111092705168799630451731256320907611842210863428994560864003811729035799323846062962090612745700232737147533048805301012190474422089387686448471518599929716174292006595446785188174405159368758899247526996012880759020281598292818755851556656685281882925810568381203776518494464396717273051804971438916307333196934153679354263556021240004914580327702378564614707699071559528592372140616932910468067249003919071604697434784963885707382027310042627775247129903722653500742484677954615228179468693826067921402510061425167410109967881225305421783981088674595075796150462335048754629496716045008827696250572304948630386040965457390934206108968286100464927198411468718079447508865159830462314469543532666289617681422654065956554834833270013717118607606183315039513440221252801449887244580305093115020633961410886594632706099022615658131633699198506157841970055172291923401860673382408157635909412872267883512559331808262750036704777304727260585148352736212956174491470463648948503366439550292506805710583116790981984337559132126891040225079957167293997116272434586395180965751825423498487025094327935843991760086534830624813107190526385761879616144661143767257672316130624262066404333639018123605595799942171972857909648443803480901746177616310740124235653452033563882021037214098034939532779931311237149472158001865261348274627327773156978376623115729547016174436477277565711789155407473145807681677702443807864236998866565025529569989148174651715384853801912860982016586188284778309482340611356115342902229632658907280831961702686277876473244646899361506410916912108518014887268022843472943256823366150208498766353266924273904876727259729687597941490436824247508148330717668841523435491255132612386805245747168069122554861728623214458706872985716161597924489322676497835434892870612507773095392529801875782916161705274587039258255525370722769682765798847415116175193648212936847954517304541173653371916227153389207540390377374795915856879340812996997360815713845576132869427548682091314706813476739757557688206064726497510892142308232673370344350736915610670707286728306570841360609510583908261258575630490997814773684804662556657789468760438631200807214907883137550451885457573782105098204792986850042371291555008527117986271490285800602782778935684279885552312932559068999971753233732881452014257425959286805546981355994970276354280750810646703839497915238090600270013527384517187482259909093957673475084712263807529825786508893836347810193080240388939600470431953840351013317005206799947934301180158653087949128881817681565359897641990675878316061838515794214244931701386013231775539993261593759503862036475047121970882211869876459431027789162186916627576630337577839478605299519976110135282306614480807618785086766864193739937549016975351753209762060226610833358887326890784715797797490109301915175475186617937589342223264211826833647571184148233446226047727634470599646671511033050384492733703928632344844477116722064560929054942792129422064675921587937165569624721731160446230992693989145786378386512427966102722280469521677491020884365165376478517703350761625235120973714293027928732310842246819537761622641870198617937059115503825097369428797630246097931899178442278548311623959909408459365192671751801013744114929665597420363843845048101123680609279846507469895386432037207444169736998465286416113040573052465575148241428578424065999123391670979852648268207688126781499720728808925400801873992026579805081517913005035785399012232284343516324391975681129534002087493589675580686447339428471520272151255614387878961830975319964529738377069087225327334262204396561478172979659393043726126491725549944995557189383296520407666111498260834800836065297496359513446304630895260266421071699368673059227276343243275002343151232801133225101232707136580815892039590164820226101398672306014182241720320022126107876767981146746951014662110339632619134906320019221870111485470702747811288767933281936830726381055950552504911875014075294532979809684125028578209120475427264789824032469811103194880605957521472963229652956815864875780757599502018285938621113863509751424326443859485872127593591071750900963882351896591613132161651628533672507320537336287633107143095681436259810406675863456908669861933791086698243855048883058930403479947023145557063500345523039454307779506292750530213266473257431615671761374377961571573339079872854716300096916653947346037320913556630771039856052486709407646169738582614382085502077725409680573552242240560370182827097345513851780278202473827540586797346448664452044428682662114375594728284728520647654536558142005106218129171679606551682026447566015432052244248722916556955290349181147687502374589363901226503076458425168832579474082897065729683429666379328045468471801486794112261553476645553314125162450217231728991856276106587212723570889384957071086954138547400372572063983656517820239893345465957716968282133762398080120163591305905410570859044842457136413691401025036513753332307719176674243853908008995438147277126478319968577645577865898799905295370151073488224117738750032462893035915132633281017255089790906544361746771788112348599323118890715130717738259822914248859843753798989213758672608025420307013957369851985782965050897755440798054595963133803461822339020019511229434884641745095291535111267056703526000744603821137871053350526524457524746503303855347491381334513861161650083102185665382873422676537503638033638396405893681571898704007057893290453399893088284250434278282331316896383545075617129559137131973026047454118445941578517016734733767638704876288720334773052038354851466955703092815720812302245665601224718473216455031267725892051783622911273270592055353796540098126235498422412820835304802945245402755976926307342374555064929594514038545729899300479029305267085340458669907784909140471281494155802143225570137324148022931480311662151222104593188749084343465597987674666511756858915591563269198781888781660983122895524290007708906588628280624110740928679301673020414996404396804209593498256522171800191164600084322428140939686657986114687092628531613320165848425788733716911711580208664333332110645971459986677798183656309210596036215209161053180116662199183106332000535696242019668002159327600663819974767127705026930327456334987774882189293046369317623980106281612099966966204392820249726091218840235820694844249245073037746105544750788914762487086897763588938644007493572353318699885618740126638143707226785914747312171134124595081945903962556186414494902116168877615064406858626300377586796100748102069520143143661609384978749113056577718098615843722048500736860544871207952626008669214346293246650137552656040431619263373674553636317670386270743171901345314615301504413620171798143128996894304954277908704185682129377127994065813872858183653754710029747621862986871141643379800792435563293401047942061050250477038020197275842013542349384938506793320015375818678818830943262357545605014327342950754316993493281099552581940944597673610243247863508140786871077068350215380437797839834101892473200447773070183174420691098851250085453456947846061308830464634017260286695033748153970434643826964846709775946984023908812810703973057599948713130885488308095353820692090788256985295890294674330722149036499559944396579840095064440548018374579296883526338897878054150197226633662350141175228398172982284453244061448220040008579987254213238886726208517238127179178824332590467810649027673045339400301899807584520634158512665008889590574185124915970487213502428403614705504899682637265214727774027491024789034786788075593486522865949646100973505478966172067600360063583491221046144126761511063572841143869616941403545124555396051085745485518880647043587704629567258763522795751033753132999639861452812457967193782698119958502489082982745528236159213655874195941236707966625271357684117364527382220989205517919086034109441032619728035590766323376984482550476952513970551998104162050513687711999835547694776651275631664146234316484850747795181892371725592257573525303743392769498087445415962277305084154029304373318540112520198995516770558216876532925220210163871867304014961269864850008746143137707987054960115102478671994504782060771886974500562604165662711219376309888634261820457088429438926110319368296082831565276994774174892331384105861199045211725718465081397455719556072831560081122904488621167583635679532486111164876673264969583386839716254494727048141185066083626590088954634603977798065164550543863313750902496471988472723453054943359561146340041202793942477793111311828835416590247238751691278776030839450495846886442317261351370838285697733620561554438020373693367226035870671727311912250384464433754565101446351911755986541539988714668538681525268284960670587544493506785338910330473097892345521273908705000640141032135630804807037506368619977112627629462359009859293888694101870975718034190696795045203840346231980942890900939775342236210365276953402997304347449401961203905200585150658926355497328376679395491692271587117119010503524576097755224464145987567420127523555430138000435121135806621378269757238886753872942844828985583551902963145575066967894616577617643023761825774282360175886939994282493488955870893851478083329611480631568199158651116789404769099976050697706221271703956973238542554915297244246523029698422054119402903637808329811191947992033331046166671425829136145876372226937174255783698652827011996160225228586858246306448337157594035807988822015491684229882968449804806854240884590600937253949026630890793504640080333115179826284788063020777275390019835317241316220250368963386008910817871431893163994595812486209999884260417317254262398235886489870629622256068601902869932004600670101050475666146678358917173232188758619796069390943585486136781474803418390163291520129379622866806610454698613286194038502051731862219855743682436072821655391221153097584782712883512784569697051955931338261745362804367558142888428787774827369430662399303016021304219313064138454680533544709176738543509320958185196436896146195331405349449334235644482714867670701295115394036179171213516607519325326310083074044972988550918850978131973881085708620934970162734854790215264472486671954383745861981058598697520458402340424467276729939753860603386732473833889737819347104757915785740674015116528844535302564370514543996625047365963358881616343490798413800864544939269262484007643896771814018483861214906353366910712784460629030695308607776692215611672008949469052791944193625134851205643611174033759433892218141577345010757321580254730744604841390063249021520925358243079354711168747264274626697844709641953946228503313531125790690734066558034703483687954845606942765173371021418912924736911613280010992838964590606219006572949056738606882434528831876752764725315260857405899225806714050086578970040995577029533530816627821543358771242079047310007673145018142883829294441001783881701741074575785089672815368933097130529012351886994629329415754211719398198929093684734795853612313057791009581951287117637782922151185276713559042475669501998484068523780760192510397422287233326430754106693426030941911401189222350720224466806402085642634842749650789046764316169870430180298332023677716920155684084003955606003768214653938575452930322047138528454622684425450531180931094324908713297837869994741336194562958929602520999380873165076489162235619380794204216112256472447633707530921774698415546904531263075219329864172365890060730167444593418103837541678829459554917599409242168503888074879486202679440462994564337016601604298477612573352452541970756643914344627132210192140103014298932373678872310776374552731699014619701697929332597481523409248470212993855722504017344401116340017050575385660341988363204901604078463947264095894576472311830194543349263666815807259711287573853375041533341386234833385619422893175823899587545212600193929099380085900626037328362657179627285019090995878733969857360551843903155097244191282713482279514362448455602030453503024865324870122057721300024848800610174271822309195674358847458076188397759702208457973336839809605431001836336498488529770020641270229634723305723371079942121639910217207682176972112370436565369840623391510474056312411391413870044811010900417150855312787906778944056559236917664392368898993129028045577050416419576560370885242661632757209002408404019992653260092992711786485573412993613954761859805505395157457949019891966529186960332246884840073564519008106723155138253665734252226561364098516717096323190692479072557939451579938393890969805553273576106316394654943641996620319454571855916011660306761075028706832840425096079212619864117090617719410345489423856412258180829334269624656226983448185130048123577847141953576648973801078579184369937379221377327247430364272478904926274735342049770898563794578524628708102388405498111836015002639649741645805133889274130071191988204599945420730681906907739021525453849716236495414604446076212463094863642853601991936310660408262362124848568445246049256998230115706878085465483560043964233007910999774496801838474514317599499027496340692891550624248266367098637169243829536567131824099230247829334826925014194050484313827304585011634865108032490610776692032091394132149310208394731357178294593200082880491028480768215680298385925608325398225807138045422866872713525720778818411376764938454589838213685346371193268875128195487176239260233474864965288904704480367844581936621724399315678391695239307124270015311134383041497310969495633871633225766352182935621061237124644134667413757432864170337422708810002926442674172800759246785458100064421032053727323510698966963342565680660443691869954790363297389977040541446866653148517084752143580361969824687923464188354706924213907253794315118811684233804964031236719990187792496309296268713133898104547056408535982276709024746729253094928104413665102382688081339986843487123006298319137359180571785539979574318624339036325121951259157690123727964259435212967426223899644792319422917908419562448499824369699784301798844029339116729335110206069386465958647610789198877671543109017077421669487950005286297051204097012648303357813079814126291798738844221110067233488003010939163544442543834055370331553651232667600786078642059524734125376391133424738889435593115022745527943688588497464844233908305446581762166176172035379674631515472529455274900855716508127514012562659303019934623375992741553918035906275843677236374538900424501606547789726378446261379731867051501640102963189537376398331163264824132835522265464533439500871491553182216970363922041571905946027347474265423721642665431766119338333391487217624164426914815904866702055701936192400242897274924335680929901902948597918161958133106071183293511097180931167237255625719654802528078342553715063962126690902115043996005749558322666173857080292943178570566888240869283470592375648201600859948507320547552345259372864118480535095577440344937153934117179623322414592786231803446261674334182002341631429302885001349220614870916038561582973908974217847642464070924144352652206143956080948739801820844167074738039267287512721868977451516829049449301411585847383547438850504222180571902014969124456996895150621230841793217301891655712456730152448867639241193327095966246617627153705359841322623174948963004947901219526440853074742415911126584289286833581292148589448561147323265042559194922224933304366443072387843961807426869543382969762231702594776520729230358619604752359941305512082677085760008074927610977271855339828017299012022973532905391684132892187193025475518850498934640473439063770209749061119148446798664199711583711700001678852240075396076163976776348954962013005018965856275766874209478837386233301507283031393757126153441260831813468448060441130112840128280309979062050898736490239378441839939055971882765481501660610215310057498682127263554872739312162047378753697660076064730191846335944092354405344451144190942066381315748995921698655769289787266915235446861740578858465016214823588190451405362002123436106315173315933894333332260500311362968123415373594963736855197818585902603764724106273451816903081047025811322339300876939977403989965062506618092653272695804889177421810909094608935898182166136054327624749755913044261297397333594010839801687418973985591869538217788819426733962965692547032965684720067296314833689517418385163180631217918852776788677749195180789955179240490338201283755652857235743800695417370519748921622593897373608846087481944335089951536955307548659524294293086447451505601205762921382702732453893426700693409607853968216375508851026954732786889218069414810240279322128859978567855698915565252322019114850867968582423900163219473610311662099422178937827432443177715669796515663392642792300964872067736256427915717735963916217100579786877283069800861328620995438571852802216650195975510893119319289998866440886482136038526333401268101970511411646724761545978699873827578840827968009696916206750813679639348460065064810552431759307595573102895692965396758913375993011329916170116188060450336113305454216298954824887380286450631563219564430651847776731838196449274501018941143750558504915368768810643843125702549176879128383589283777368534940315839795777698075823446353701739569761426734502197067305694901288576313325452880191610276767709988007696541125982766022171957851671679882477236025150457304256400422529296744252394451721799409499370068808752117875531595986682801838552075681539254504249634287944157698650124615530537424847012582009875317872760831090379702155664674430825742567657393718797758769543575601039593411514343187269294790500886435469466525619776441351348631920737358281747012499514731947989277039336494267440587689790992996488469642770060857710875866428708558152466425072806267642114021910956245754924448047282487806094447277905343592807466943160504185500803465315535835670804812119142543896507596514118586360808228416551342806471855911108511668995153364277129789992007204052950427009397300933064994615035538658221478784265773388658310394830799301137099747285938189428129346141433183633331739600783741631759508932232384752226037188333188277994340485189216081326264698740337740210925100489378257395145994747160575194731525113024372798452341602828046728888687840794823929920794762610621487493401239017985570184019651832290130560976895482095659762713628928527601843084096684642197986139760976909644065968642543935831593451223479539277486693152309409900362719745063043933690959122379772249686344500765584933786458185729206079515233920876633949330321232551350645029293478344229440304786076556161663963279860498707500742804051958100421642806412035467652591686878476346275946816888463392699050980703553768584304540696761108849648751846270137057494566373172486126892278214941075187300866751555817809805338330834626595282306515024027225705863534312476919206513652040665577922337410275809101684903482513768121612460260753089668925026702068942807006257935698736642279994082360105641115741046399741556923429825846025284904564191089837306780998943681607278272080801751001898123457127331167679614064069909499088809020740372992151227337616230329777146640397789881310839521802035548666506863633022935004277656277722425301063017274647917331820618440788586301222709844676512823852421627237897163663117857288913231633287778171097004580123882242312846503398164408902959307174884706578053462586263329081973866748814300535248380227663982177928417054480598980716139831284403304677389744805776333561117243126138285000878997597040840870132972473285778031313400962529121166894479762506019198657398721073357195726382865140321447956084907333302821954867999689747735691463041311110271178448628205610006274470401338423346895397556763376158491000078370392529403052628526926445011559419895323795913902260782345912767424535229001995301079240608883088072620005170705921592756334153449033384671322656175237587398650047029155036705129989053856224036879908946265968581555783781615237007016124311393107816626464416888904069653273954359952981569962213327388597324901790373173425296505595385730573511253932047791194832506938077525437174179859348051011816339089246425655705367599899124506936799480707585649392134044551211760736608964897596016946290119575576296866750493335032879384222968292549116907571380552379111085388720341439796150168039710390804698583258157848852145591943645686019087677534545094285051130461947271209077660055737014836596531450748464392942515944655801663119658932502149503193011172779994026620265554861771448432035952132368157925850742021009752512495104364549368132385383567456838699696185854169321737344113322841183490854619543083756387321631357633700518822195264063603541217188793857205134743636140828558174391647434962163673108394793113870784155118688171855429600529526046322523209790570948382189965434075202683671521399543865364477149658908432267702834233209855712850111143048221808826295178694433873804773485862988995432107914638482476666388537386434686811178622418707059666443122717344664198545792745947355994186964208784848877252573107556218571814101216756568226424038449488745048147215868432270012608131450421814443925638763868955269557574050318764369765216066498488248373465346229108255048480442921441387504952379770287083652599165091552024245779760008838833122463000952097847888434318818115820877776011106421804727029571323541044525058109448411475667641595034436796049565767180055058989549419470112774960388495017635978720968781265540789300237053190810677128181850835606175047731651752700680787046478829199049285206703031216854535088749063063261259957697838225353452087172692367699872872267193817256253693825064276289683924372065550272009778164456925803773091959323042321687046694378910937226315452089741000394231979453682092632606655236102398800916941136608858816087990541749363149696631314902567447255366141737763189945127954450236100361242083575229648940165158854406389090749180176858004773762732462292350576949917900247958790896260558477453461741555745742487144089597343741291427654752543780472188075638897199089824191240775373585136148974500847082847348854136530463959473380054350177866694396949959130229959081893476833878341146864052986939262965319565067867130619002926629634202149730195352032175490848072660732216425407915088820397602907758089502327114931921669310130726871205868228290106538093268960335622319861536225382447767513628014614477148122668688138544028411477487477800551675146195350067621868890035862004996734256848469315939339707869446056534579089874607093166900190350491100425292703187383058050968195631250680268466631178268240410497942201006915497000572107376446282373800229587815773904516730469542870533117238396396999480635891341291781426163488068113379315276859749510032045653927928872155148250748265479050266500738116758854391696277243431901698366107409532728727499958635706567005963953649354320311237740085559974763040074191099537311594035562859015496141731005982546520167963232483206195118748720640103144173397962450547476557695124610036620407397708107937644313285048012151621500216368270791120774733815236993635176579819225419926426858661714724807668444498615003689694383711870100781618190392699646611346453208664749314578378769900607089767072347263769258331594369726380646991244533736027395886583140695704149342741266411478834289576577926917034302481255860170188515512981471210143414501559093476848466736140787036814276747924343938698753735910004949650626236327949898484122593566121529568178067504064957543174207444531099607451909979433840543595942640564693669601764430561528961055677627452909883296559427086981052547337731734264134685140959919648897847224008832884397630457881154149526634616027661190719289246938438455012650522909371792073862968117665624705015022328023676081740175402143841625003615982084380241936670280081175296656246854709629523369906419422025584651083312512346235117681470689374488773273063335512095392305800008877502627226563120490092806378712926586646404351596116653839144120854425991220221873738134534718956584969123440024337628042058034366513561768017902224647448699590478260261155231215775479614144732778854815648270093234954582297958418729919789333659539577966295193266975091877569752732945885629215205512594070974737934514791796393068942044935290087354198031629603148105638402657443010711676880870040754503068905587408131078409633212114997851564274721767969544921592547480153782176498627503413561625444327034113769262061718016240165802019560098722830259312443741038926366369451782814884625671016150917294103184431133474577136698425241075087624636396759376346503260489216702396768790611144329061947221851325856746185625251378279188817594370279929373366708548740669405249970823205209663831598578726587922429522476312787584830788417094626342743661553032540979140934877861831114985722221582974964109026314792168448649931850435899307406423039770410558909347605147098915679685906649424173471050050944420590556656537618884534023664272432175432771614439457772463050958774872244539492408043674864189957803226205050056194469684878378280671165246158769855939281144563672194908118749799027406519882027629558595025774650996708042013497249618714012506664737033798458854694178184006867820889031232807218337367107297554564551241293017973034617908801945043634910896258577756137566836560731514002395616287111286914492933263179588456292278137221415339216686544469809365045435097251717774362342061137902694264398128655759660317285270065750152756355283744545795694425073669932871509509720806266129117692193097968614936248631792543319021674165136496911993490059213570688179650185444233552658313666630653091675014736230886940229013771630577429486587344932086721384010550113015490557837608730806978018953554129618835498275255864429158947021653042799358423687970091648730850287758621369316663855615037602669696666226108757219555460942950241040433804513065958723750745863326260844187422102719441681454237595546634206689726119859953173632057354729443604971493104679920431015755666489384628141757554413752361579058099124459449216515152020582731809611360238618874503494957422283748992586403151008377668705778087125349530216872009742101849470781479982660351823011578424749917543761388759499083752809823974932025954527738765124636821811614507158766211669502210599383019882871208807469826138033865097276440867668254734504165304019084187835316692104887228472507603861250911077287711761967798455390522482996677264285537190031926522295741759706881166983547108349646575443827023337995838576255301912567111503274794792594917853084441610265281006335257081045457940573057553840190320941396807274294852961398072266702742243398988923949431412366938247725733579892303004349375907585950661357627461217113847612347543792153260467537511503710525928292659508680170756552581694959758880952270170374265285044912766980385151160971063864824180449408381892242623555787804613229758780258688177059930099096281784233118062759164794333831301657485726019482073377645000627292899192250360348941190235896668745847681145085581600340748832670007417876785714567438900660946695040621135037997480985646553877312972156518983915638599624567533500099505613750987542648774159888576434777624789385559471980734288758243690856208867805949512451149449494398339816353111470299604009805917932946972713813502561206291600469797029012753978683628424403564009431501561906612126461575431034850253474513357758812325425599151661170383581614398286681784563047642253269660607959667609340622978590337828823695591801970362788729177955403630635947653546344884198931878875406350065355573210971549307217624210184162069033149889798213399308477272071388221354951439886224182853441164160998456244744882372264737762276391853958956804232055131252449676965110620433056401275513438174678732950007711247024590182593054180383939040535522233179874142645414230935199611204410557956435532224759543574710356603729380308238605520442219923331613433694917028343910090425387349919374263961005165082142643414243855463672990909522834460803256467734415233737673112585969196635591792855738508408968172972726515826429154546140846912960030645974873755411340903785122222274532942155539381570908165485777468047812767227030225596675602281087649749073463992128393183270331393510752907567670457187711413631166564678261263156350609044523087755736590646575868326108826749696629262349705399832577911828153864193563310838124827552405266379273971021880329532922672021659820953379499909251338095822533827011363656249217525401819353628452050773138605879297442064487243239760859794428568622386084963971014191209390028988221641715410673225819873978419744554433390321743541650239385267805011406150531659849286347774958568142923062945943504451053479992898183564270988367206164908558143490513614348354820812898512057333169518519160020996421617023353283038748783427502422378884714916899031197869057384329341836763331810375291882319394484684138856437186986291850667255704064034225339420448506306142977447462741890591075765586318468955038814120289805635913982504474602741593047210332071049440926592571119747232666831093006868494209727362753410977288969887082093457771123513611918819596253654974747209224813367186291581387926529573014594420383688120182653317971233318030512282352166203488680152486162940948425375189307941573440627485290273671884895781810487166755527366350366766124151599386693678250268700232471712137358799418734879238461893363156852108184733122031450299066354474643657816274015474921497393115946120327801531393150220593091717226864247441338221197525576704752672873648785242128524839824352753209581274329189465888994521990934347771286770960410383210355985232701145312445433677601094403110505779075698968502473553854470367257664488723107484918513942461496327808362995755023154846134274067032060008862615499807270520752635740817755804941422567148034297797199583810440976743624133999297778243972673193930395227693074973127851650396725063831367740091960844413334130188110390846610066038589007057160255817923584730553860902983496454505204600821981008184251908009450697592059714203218418060641487105374895053165303423859586899711323093007068566503302551864769557756059861024728511192138978331576666027554457716562344409591541439180829964332877964156927410835184522113779978490771797448944413843231210924089544036291555398002696426013299744134949253409534483441592674426585314873214285071446537833036781321861813071458157696062186156343193511178037039916419733248355143377870840673469553105022184349336060515780848420865705567399487760974423220664913996999279430193790041269106367360359277222079473103813861251170750499233012108585618238286662805277889289578895623900746323170850226120228730012272997585496409848262230023873735274757722715659310811642816907779204807515855010194322039063715557409122229950994050340340948164373042255460700025462857688106571482165272567703920760498920953316061685012706547872439306256617953054324070289045669957038116397935578383717150959039712281928785128667601714849315150256972059519679620949864636591570951003288457221245121273131126752372366179270782631281605007152105599622953118893472142061386576886382078400168903999107316674052008516154773154234455363029380677342390603481317839808498860211327407975081686697132283230774406978066231152666771332369046947312705280580465213875803020746470517977610611186324664179584445990954617332596174854522119635741449283596213812212064790609848110779995910639764081231583341979193584716201790183317390324222103913425289746339599046559921123809756955130061799695355982680837555062298070479541754817537616038616071639041145762718516296821210788106456977428265159831756179864174866117178202737960750080039636255363475852914901326009115813294814073677978126675695439753964524805977786209383312041143907099028941112174332122340678588176378729762495716712237988269624796169579327312622235187056359755116776462668811536538784640877727847953842067384692414305153934167115702418074451585745914933370945998387659910958798020127548101070482652256423085708934814592819775799738093082550582007434319699352774598167955081833335858809678783591212351378208366086394080882422429027340820564383015548305905330265745172711616785017124733694112399440653585049146823936437972490578961406953117879044564478705590414490682041842537886655184641375545234119428415809106477111041758005262789159042568310190382867882307187490581333251912706588054072200875836398188816995801555825707741951780772197040260548589112915438145203696464561481632184792407563415411050502068175699187766597336203777314545854746307352309882880917844352808351273308199618015996052179462522106945815717763401660595431181391252646429349715541979981166743454068706601524182629178627546111078464350162917567160914591307444300527913712388011155213626871753611924619239964327341683906350579045464225291902960922199723423874048151300773598010629294263970277464951621969909354104463611585833545991619905049836315019270794518087775145235004644097454032711896845435225767479728098312502362139729065782219859561525622650831677796266681460137842178060223150207947369880947514039809264645655018063094853099626325502814669625458499014927198502636817017330532526805027344393155317615992683527746360546787499487058389549677504599454628903400971363528817791346531558005449406755267632530311816383239705371052555984816872479815528879350223100686072270851063421375659698565293186000045579698068829756623487334578547294728702164867445207045957329979761970020254773660860585572909220504291880424182549854896505865283525305771698772595452150008274681164286652232529921850104729825543474119109053763809876919749216774960509137603953618005339513789150265530852040710077087910169077323152140411497185145051195976021046493647100582201902011952032108873409002008766468141786647013500206769061910984917845945471648341241043079910328960045539756975264967075243243754271796979029650839201692393670400302345485245965207112805857868855224882800851458346805646777015589374260270639604924484231638817204741619763195278216658766206751650563020871014727322962125682014797064164874535353183645846626097806762681811141945798961591568214226211879306954963406595442773101436265349842099132772562905165959954864713867646146301842264702218995505858636366435865149851285105571236072636648139251851461172950591621041777579636886224997340681872799624097179459717420725644063129954350063679885948177418032250510748250157805827193521246779804291271556446790158384095427135614989184183164081407223475619188175486864127607456721059082995247181122024965885494549766105680287393731879564500582646969935157643435215658170227924210239616479100391816109452516202200037332741484925242309033903118951587644081946369505799704345111974747253390824207324278080930788393216835236852287750979323003901130488979897723771667011680272787074348973937509318127080035803539928522356990392157387018608927878776711213832224626740737245578398985019638730853200424288611103269009858109780563113245735494177666167918484842808780066130127138834325221297559788515849300526735420819479316418788755431983368979296750771682127333737939962504781665390247985854922016379352433312765053881892968208505371477905964954229667982247082739077590307255538078578059748596752995587431404941675596319457857524570961557617288923187489038911227500891187643063334581692317875757578859568400375316905783650522728119034776123287152519471256488080752661101117096707433181138605213089047527895290812690163421830253412785414130945784028733048043418941135318969838041638701426869882410439793637146953881919197306956674290065129738653643761934016489475835270258411986318514855567958426319721965737427247194952335151568621532695111426423068603640340981362417600575090119539053335008247100282018231594273574116030265329762738440812200145317601053629766141549991590823154516968232857741206930747142542409376124992238645532163088472327739996359660473421286404934972320750893492796796622677344769706933764457805389304542324790764513206311449043977642775225062865677706926713850476325806528694688836537498983230336931157779947940945288025221349493430877598275395421038995849078084960180733234972814827192287516391723900385015033113291899093390687473556154909749638250809384995772380105028741696945528762210378979075335690078862338879458470663508743864084990722285581299132962236953653367115643581042984576072594195106164415449118419692681740628491084762334187515643942005545476644276204619742796496163313501159352110617510833370353251544695486769769710209557015472414216415042654053344697746300064616905401965009942306352546719871913362980037124488360470100946700555404005816323395098683004778741607806830648661508868006462638861317018998013218098336167993165447098408482963393556207791556179799457323648208014747407808392345438301276308399677741095804265916019652529580376779140480553041759672822283489381586227630632041989641071956717632154485426826826697848410186551042588346010188192120453165991280957462961859912993131417377322505582387333883144208815584606474351251193617802046210061779203630050161843558925146389130554880275950960600335016418161608508291656059989312399841010132390790139369143477420487509713810100248243144859303043799370711126812385126869840873536480287668721749242085858977154931234445453265971923735717116411133704102412169606876456131574027486991204524877359749551797303376462123134858644736203420033790383275996341036438657226985223376161516558721496554813253895413109686389600738953432190769559985922766947241044687203655736936826154166181036756406519739880017884965870510874965800414676932404541786529992728659219940487835119918006238838561720642684137133275033973624970832390577569851045304029354468500253201074151727895168156291321241123213228229137474742664980214400400745918353871810553873934805358498778998911685350057129529772839050824506631928377802299169880942626780918286126986197960057383558498771501445831093760500629509205438504463987491570154329766392017650568591785755180290039242509905396956098519606577284662505688959369023594388180776592955914415515183661998885049257384694271065840222671402110215084359909569423501682039978060478145998067854604359405443773943623131124029463050501251943652500127472917401894015808763439027685279234568803074894866456481041809518096753151871383820450232828611957992106264263722850593394758101973797924041430211613610970554024672876354833227825088890192277538081630061179882011824263925037401475777675755813061212326410270241518148760636389422684209039965817034750778895664521895875630285109246462498001391399486573866178698481462154377096454146120245515461801059275709165653820132648769389081077864085580758130495544774283990154878076346481938629190280496885890146903242005800495683369186655240550150056121416925473002157240471758426020117366426962306534852101908338246679774398571832020960419376291336042602797228107278391270219284247734083877657955241224162985719856963469126708199031170173968898170580596188348279885899341362900740563843788504961861149811675436809602322677510865715716223858923999299959417608600286847734778828902089885039451258488298036328125231532998385199179514813870815311035887290997977236321825898565591288779635608548139648619529483115971808552155487098266770437548684481925587063799135614894498094068207044490728835502639969458281924330530509868995937755556817031794906620693651336635390353785240917738657144769671317328452563473852954172241335720214730837194348377355520296408551773458085026775452211237577169898523142562853211349299611529056676463353376625654150380692445384442591511928402270453525705593061071528136054701621550972851366308617800773999628839107714356334283102010566556994535925534558389469308546526577877425283940943413186895033382950893950939522906166114958269651060378369499692938121107321105187580052939131970881108101470341008050090093020010919702140893653973309624165790070887630464445806404025008945296362293433336678184796832024500493766232624016023454694588608609151293891965317865898246306567370930663882519625890729457699350637406470460019641548956412781256460547812786907080830316573479618259837546362094898071845449719159301056449530701320028430327638464174826320749218274463436629292693714213102096681757073273475443138907502130104134432704007618214992742532882069319752533699721562572074172740790684275825352717407933393279679768908731816878413040184609425077802174531091613087793429374926301398979175275045804968978880225343127992109182324954313622963335122793044660976161634341644660392861921621726465124639644902969314705437196913351595775124589064579575947689624395134454132787855026980558673134150788775427272909651807835846466646706427994292803722076779454378473605868054255492293979575884793612886013937385036558560400497995814251537456542237939069232510373879128975558941757015973849654424431196470529813873001685220087172886263767927238245865610046105589434461634017653075850619756049587908962201933764167618297821426159239187244445306680833711961691445294507023154461591925773835562226617302006227672301681530886741801191481524124078673799025088855154811492992216332476055111906741908752833365851961928838956884520995854349061468280437751158957245981841131728030573363896704766178202481874545659415831481969277976556175393735373662929620682577700686359169741064344807389106242884399201649498012771091241304216288857203083043073343494093786012890161945999956291209516225041655565630116077282422280141292242753145358019409798248228866229679724604619670554072321005384054013303128562230881467627466657538573238407709570764219887712863851616520730437970914000000247865811566396493274115848420470497372686283309455758001447429910329233241365407731835639652914699279925690500172364200035391578379089277154472831071567629212034362151270111408854962157534891147099147636799054653123594476269086437148541491261148560203902800120815018750095082667500415499408450835530160791470303824628124446983054697759539021630712591522009567204897580569019629636190371454841395533238719654359896174699076132314516899131755354453957037516486820609810805632351958776499604171547192413599700094041007340878804002672903846396985922543173177826780015354735136072844680469255958184064351186145882139326071441665223858501692945958591767075967092671088890547166563176719274940703878330503341628514631816582535409218796082558783968096336723794575878223553550387700675808507481472100374406810436878591777397584696511842563919388782884667226497298379035717386624294682587301077048967213493673540853601145016130439473304439596238338493268571625715137442021440949785741501389070730679774331950156625779249260021469755731646199428153236468285032521419494030992273954619410575172491304457781225237930713422996786556172252710215649692999252224625367080348937473070449577569936821664134570327936552003011262878502807125905041845417298480597246980880420191534049055632089557618876141400884710461373835395512925378525867439936957830023298672808638197977774939170928102099819123594455796490031483296889826705844216296404818749329427164384881865620050133247606660899579248045245735562922373324884740001258142455720566314860063675912695494942602609557339556208644546647218777728695205048015559466834631254099812145258022161316898536148165420358946513207478091631961630420117404188794621779510625441310895576414211627913713246100803351248317310961837052735519308643794773376676399166686556352992424099723463801980983167811283970435895754190661453241337939931458879949632327687378374197458883975594714000995781681152041566453040525523653049259971681171404985712740655343658906396652222973741222372782973156143251967476230842871796104671077678096150919796240085193449687364522674156521859616615116278686876817741222564329518291138372422302577400757869447962315229472552794863248855610942439711396595419448114820670155201795020583055088674718114485622302335471640201301722852755340990582422892350525861592656440962648055598572636421968495266320810035772910993177338343273580192321029722875238223724756172729032240651123711672046213601881715491448000279406473788315580033024303239801600789736647689173047181562443283908891580002274167455160829630173629925016397339479479516538178823134818760124444596735091602486626802820796563377901454274241941514018195711837152106452756901962719869427609207131109672892304166339398985975535637704652293256491803409864267950921186669793834302089991803243563949279700536290271287817871248215758359474485324849076200741132878371639669971177630583719688967640806902792909780817613697030532989745183610417677653475814521537052141495659158048543904258919740357273815434004954549987733870976418770560775242942143042896251470329613523506180967866245200879476481877286786029058968675230422185109520443999942776975964602940860198556377874238649041570340485609184362762895711568742859253327445740026755525620406541596843167130932899200418286203249917630542541037878400251240760988593351575580887389781075214255248167395368362362643530793627737077023778673795170302233675755807318386429083396088710547476968306684382352914230623690924561768672304814013753217899275760213317258355813600561683178182786110907791481472235674641120472871587930427125296421496624594722603718550637661226651005547924685879040843860804110605050876163817105035526404013853760713048824114941812644998899024820569335251600991914957267744842486573517913142922662117455941018372396167027987162066832144990233895025397966600007398013748473493247586907986649445006374425145302011722442708908516691397201686987005965246447181758642066249511209630112414975667980689494904502527900558865180612563523383130215537544204491112325769626337525482649124097592499435924798181210859918072424868369072950183408033370650887676509879597370756271810727148231216452599573724023243907957377792714924211648749874980951260500417676510265179413512172029644362428548618785804093379414233811040139470604177354592417845344995486071043366134226790389604210897428357329749874333528019602980567185787457245843623183905891284157748544644196932319517195530098352382474495830514639156647444805441786319929452180019350749570902688676441607931014537296572964656681861439231047512594453869319362650718772006678243583894680479681753604756339033894766085299113978853366683471774267098939163296292609251739367201397723489044639046709698843558262930283169022675381433772800836288919186972267661534434773423072062997066680952683661151539917854564102713292086549381964157528648144581911280969439193183888439825309284961880584468100041351354078595310839986006278498357569232931953249440116752609899045305179278559093140928331292707010567102337253483949688213226308621508577626665323142871034782969451099713968771113515168137263377058299603278520445413088534426081222446824042211743615259452569030785605526587347803461131821010808091502278543741272995213338250288281720685981509258996171624057709728260404703997484016855135597361250016416549632968567995292020849620359205517782575302430852312642980474147559291926974017039872337123120717843408640188098746666383668199012563606136729389005182020285806735464237453165518972813655282342432241322595087483959390094959081352300881174734971397684537762092550649341815566740940847067374478725814396746017041863893217956068932238127658364775251873132966765685064320532150773075673950754867195559340435438675510758756719660726719637681701406023902094546255367815340218664369687068101827980849115086392028647207811363634928236325542986675135345839326816874278580194849488464087714672519506762446230971917050202962079144079120371194027108051260265350262691622261094756772423108158949763180624553671475066982765428899005627728633764381561048190834994075139912651191065053485161569048142436352075263573207057074840406643321757038436164964122841910452210286169858260063056723973859411436652562385323823312984377751170245390416810893845793213873600264727785834082916282594006232343379422575506458844051052789609776058157727049347947096830683595315469752154857928409011499599822890273426424371490883403877018755876220406409868648013984655910316787685198751584549648212697870167482501779796349649336862678132495526846767064127611652218413712009104296746627831446028761334490052594400616452356791524955202427475984988779213602904486121225142671753314942945578708111778709624558728936782461841338836549699719275591888505525354532855749421878366129301613216638142909076985016060024191024363778608137259973146347101718785111256768279613777520155379330010558969022342418953351864890298903860678302414069764209774562556693270631711273032408909902646801908643059868227911286536361442265727458177961513741420998166403314790769292380490859980915721557273243302187054225932162941412671876790959524378706032281731361486209461787241704041550356546300324189077530902208372071608972917099798242774235027929072299380081397332706829446876180792108678847045340786977019048550675015076762737252697874531857291118599930019714047293990499348409176653225142114704159237197162130305832306844881511103755350289533677264222389579028827988459995746195491861351839428742822527290340244745986101535464314772034481613107722632202868766489811420284224740083621305260021263501283291909078723212163653333365018333799296275086223385071324898007584180423718515604061524560858471840642867290927742992956776549180670858084640868186117249222302955094610403705828517337644344788632747433464877918527843316809579966401216922055545397917385534781343625107249021266250204292255004640875925511503264109855150151345258064352125692136164653808538524556085644448789136741217324951495140785250434025695982740794310938922828322995733406276267535763725689679777694000900358237746832997411769752304082278258420393685576144837560934847158293756267992398113770010155128690962443805922954938894277190785938022944475761162568924007092239459830499670047256625412060237264548421631476152567383378124746159964481150146275458949825402750505612479354296419599679089173252754940673559611189371769005138277326242776576347871226722269706463012036939914945604023885807596055056886305359242384339975394591352503276370939007180414464514186408096361715332636840760880537776964415989764337551320443510066548443553852117837427396872495013575969803049994270962032459339951641591339166667965841636937984990309509309161107439166099524634169687551563279826422750206725908899448214240418837989331124343921144216035385786810423920072058514079779851461227041274991522230834738216590195509034103000841570920404051293444747479821956588472709331347806108520083622430308855858564677067536801825804711253969738368194786631852037517956788857339526520921150482845997047706279073987967343838535773917096277411656488928632466709897889488876611252931083613587412127573127861277291859924086807409041612464687376019127003132599445967796844988653359366769268472955078964790325641642960669771930442738252599148548029636079170286000727427222667202766420199488610438814465943113486397119786068531747185856146503210612402877503136815670881410431207333061422692720641982528324249033193443747905240799153470630647889518055833804657054556630897017249664146352144803702619885559758763522995775295637450194047249072090849412647425599079265893552996820450257067277752775066171261493011454386254964875223340313138388482454123137533302704755528483611728922551601282081766943197650749503533135611588078033890844146940448426742361437717862336396017088832669374240182167536614159472863393833422509542134012525798582464930604570000249017103551343591180258639748559412496663747319849034695243150250133254140815109348231685628815087372802832507529532133376862806932018134821458886882124444247994563235964869264394828638516736015458209800358514449761300637811626667191441727113986339558817642301207421857656691529692482975873950784375404597577937716962544052672083419193680206888958828909154386059036240473920234843563677944089891592225844165769395598358397998270292853440664318831244542201614004171448237083665421705830583563493833995259121300859364190186952541606778819660135796980931373487874186205154190834692717276697220091604903065267489632479008970313845374730514282230309397562364709552749909371054357589099047557838655246854318621846758697788479722781785454464144965972507433277076238011990641860104661182786629909539153599197509020403969663155296363369491194924293155013767450840852833689416837328855847877554561398459742434277772616564171306252778840999889605726506654525650491167608730277493818796895097669828749930892182957591094561593684586100591009657643761626764214046922064554471023728288631320560763997466621612275199908612066571504551305804909403151612292333636952227076536816346842314292600233523831054293708800094003595131345199101197582417396654824076753144235190310839977730721935536473448108484889699811536925431830744638014676595493609458108402718409792086636254582934371245659727195547840135400859405229275641200616157138679444652182047695886714022349741416226509867321046482993677223800861473513690766397492630070556353119613636527657564394038582610678348470829015450547105291564119735783651408062797294016496651235254111382786913078480119550180843744819250121144873597368028268125169740943091017927877742548991413727963968511621915126140691563769904924766717987256190086364635469829670861025374929924514535400826881000689011993914164620288882795396250671551034737673224086033785904026605908554513525299483225160673541740592796601229652762797553892840218799931599406668354613441766055930437920513324064585822971338230500807032191791255846915943532883075452544467200046080468066332603152214359493228709661617201888475968762132811533886758658834051839164257600053916450481610518042399162956355803703959492367959010450857917694397011675754262266961937762054796328560218343823472527335704306451244087232173316957936506557300910450858035468223057519986585581229417842198787997618912354576221060663034585468332416732079372636529591623348096769710124453008090523742966919056572286163434540265841520417341193248053731212967144485802010974210104272729540754144741460629728269251739365859076551444590883733975045943502827919789897822260003094091511773141937838924404170359032595363080054754760096612787695293910343493092651753346026192337407570734267969753561612521472992160492724121630768927992745062854182015955637548249256988889639117354561273093608854340597246883703925909846962668850675780513728840405849028358025539999142300890852305260121512115089416383801160789964691574376410061879892433242164141917367051044228692318765696491154464659789421300369757021934390608106397439863680720261681149898192066656389746081808069602887780927692554205953117727540549132996589904168094963555315592282487521342183421540415787706318704689580851477417386966713333091445026265495689799000603100343600991257969608641990547846656658843407993023434672372906660611506996467709705351387219424815541503764248163741107913616028050132758129464632780983124484989108647266992159239880207794511878560053884726791831929498159338852800154975456616822239833114293657837764767960407744860353511489438633387123309483766265682440539899537618232793426169832078911784485893643333991032889820977788378317956555487391305020218280480305132455587500831470614743028072799786082582903767906248154319169278214685469083276049701688770850036460212495806094811525581612498550516576399677621680211120283446647734612939260916008060300440250861893530607291492119275777026830201917277065102147127178309290017512184113626423243946260464884304358690693555913243521704890572276317006695995016829637142026097625291805906788541806782841850658228806927722721718633951814208329695823203849667308697739595793058314886275261724038071745114020303427255569463087586773642068458943875464347026603577830030581309411865761498212497468972025904517507300602535499028586750011673326209057777994119149042807529363512960945782537936337644094486243342326395136906957841127989957051119339544908045598778466451461365877673938510218208069279211087234676065028327364990342131223810473630666584750660927743462504770667711551952002421448532579603986678809732151458307943844229453788944608265043852175862945560705118661766308891349689068781197026994894872334311175165461707773563664422184680995575841655055118319944547940924523969459966498852879105876360856060925279833893295934003148325331099125919628214720550262919534723385771754822512732069022831403392013751145063594379244214653919540663918981328321713339453862603444632656902895355559737716670992643281587920549174990065609985739868212032787029243449432923632782239512095338415520651602252869727244821998318165571700457084286815384293817949137627540517668829444430979228596997724055170296453015611801667299604858480981984689552456729875037347154535394341462927133809587473567007225607329182930667226044762236240766360327135810429725261262212042424820246835506685246083259459021165717519842676491136982258632351390667730197607644487819053560048461037385387378233837801369393892523721018606377030785691274367723078890765208151751552328307506606145222587199865444610218144233884268218152371203675351582327099146274269547168426419819913592954232396556114525181439316874235928933139631811066657843219411765210321749282126859355342914306062050378052265891060751241376772602163274637090512120669438705385758842918740974166903397085784984176612621765434852334429897336706109610398663843318737086800310856637961624882709206543905031740165224338578258917723493381195836491964200978408167623434592124514316349734069793059948719405799668130932998939888774825270796462674355630056934667076623529593061773461383465495756081616630955247560364782473710668463567751967573935648697667303164176510317329365896501339294468444471103272291733479149941219534750289859529743021650241495007576084592329210056125889878568077402261868380715682753664112335608846515358433089559829819700272806369353954668530891867990612129898776307384557000765120564117554024396332190701628148231428513988345728459473074008276590170443921868422908128988114611616144510802255997142395715702655880697762319119926755997766938589526019511580860462959455685385169789331002712102331034833001474183378182793810085864882255971258282663930188276333923674268316326074604165015194109880474767584827461919756194048667449433505861139410554314613013604329590523974009861404918188234989515012455791888916833015270755943412226897005070674822287811134363363114850677885924204038236509993598966894972125159224060168346369638413649893252852983683838131339323635444040986559182932196211732591403321443314827249194715906159528870928488663154926699647585132307705615287664237377264463693579159259773919206516491434634341526253776173695791838746853977628415098002597519341198130931276005017927937661024026613684661819080259510573674252332588013093743444403913412065608386135965416476941289614202432049289587093854120846903188921681381324822403218328332533406677383123240702426204276749231654304690636950290268605586947667274057833023497823677240986595575496887965211826076467831207439385658647608592480486374699687861605229435749036455096725352984136476359966358610225468258609982393493076408434628365713111372566362587247709532062943039063507879430990651978987406365804686710310866666884395791695348767257881938526685697650396267090947438006870831103386306471476003110730291313491861864010963388901390194260220276416469322482347567038502821834888285134403197909561104877846482547515378120330515489286091948532991742337621015355849883487037351332126294610546439997141984634193648822931073998184753366274062990946383883763167704473747809934854621240955801938674507158523664234125271113546718098522963535885727831743264920012359196601235717388070107242286989268436896090298654454359175753591279501970322436999951699253373649787488871947201373285252034445579044904713573791136832829022692204155890412859595642035932098035748017661654712533957365397580359495837925916066055994961894839133478160699374732582999483752067596114147985485352330519962650776460223591968311267937546627998938975538300840953689537017376353765648556087633486254773640292172676972577222729233162381771486946092797628143270414831678938536669103845337408619941677068502636260654507905189016484655216056949316725528149099568510682875176882739387268652913441672600763136088798754080753920996349683102837572663427367040896529537329637605012546278795767579946884802181441351582164711013529162602056994186834231120001146380910934348654808220122649654305642377187083659436350405736363986312813977642528950952010118102140666565457672540379085046698847075153619728941878245991940473829606915776690562744419349037274688148173383288882020012216602621223319768785462579771054811447953096046547682092313215415073388888211332967043871710962928283408146156697362651063069533804542683362190821574790313731243070941019072885516739647934442162401188996222522009475685408484602718185815194097262841747690005880742402588712849491169896071779470046626506120807466033856003267463317802004083060634804372424539319316417948239848001178739659694961280916393363831202731992323792274759433340197374508202169406981823098476816662373833855910736010897255168447381844543062784852849810799871067869201845640369853405981840189020870071544630081212495133606472011734904355210870874630561447630140391926239699357506273796690909220488552732337096580813777100583017016885065404422771673671391544172371737327418195200709316476467036765447186770094166236227719109783396672645642859783167417902541886116585353742899865518872822176728384831619713046689881372441008900506307468138018877888995591648269214246178416998200095307213692073751973908230353546220118808211846124565259387822161690395857322527882730762333632343303353174658244723366761757881077240884330232054628649311055974244061114461992695634383719229353431870404323968740291276191965797869526688715806657276162326807755767292068427983243675353938492542529134827174095637732665848834066516974531978970498653355661894176676004006216884143587274560974836417587139287566096477893405450742837926082239914009535711319074144634805154927190871952443049459263991576589700528682576731580173672965574907609927916133446631613123360055715055336364312837986802892957536494743574539445399624222053804857106293549356597397161609377546569686218230020268790118678519465638241715246468792604685147459486413017839440379460223413021575018131152807921273890146415394692851564861582101009074242384417478161062799723325215208548809052107439573671532350618670777390335121339118411074763318608507755444917623133394248612022033675218186313111979533426742176031611305650183769863947656997000600860481695978557015276596268450393552909157528981059631033356607269246949920601562711362082728217994133021618578216656833036621759040729876231970203337260378681181120855544718795586862199432001248439645705862142965372759546601419843623064444973889001016849732795250686512631868239538018512574923703679043851197258844558158138397654459545668711933419995435761084974554004329682961075997561906787381617957590620507904925364663953659925415255120881531517489390576908706790401566681000106510179626904669516214027928708640180353093887729898205987266354043257572929121573771971829216365639995390224603837368435493182746349231309820673273860717225452596184842672644238904513200951274833692653985458517570881570556735969362002217691971579624952158194036500502233346909199658090845622394318732995936282183474208252891637062950848633106796902799531435298599286587560185798798573901300761300132560273412977653655730230555676897323007210727021431163498001088953496055643666244052034501369908116150552244761820371831812646075435411046874713254131572132689337770354903865687736823686852538014288106446435671861050946604540484607241217063935280233431168604565506987194524970899671417636365468389372104503281219865708008108942010874475997434836780626846120738652525745251849349615751879298854454537731095693513898696287982660512775999967580618501338465293133026625746760637717893291558864831996247332476384889132654724916615224214385905052121555695878112257087208908325212553956176798076395244333765089946253270239636014670952353630685405241477909282278219984928255341352205643735857941509358369178700853371456463664576101117303195853839472158357113177829424083180607880674721059539691078820309341224255167179190847659984426226338934286502589146821901094301916069892736574928027167528686000480011480283382536660669951735725122157563307922678483058112927732989671047485854113131021611892436754087685264504957792997796977265048128622659432697278784216511133395050089939905805791738478575925337850355890069139096361866858032748882530705293817996230834714606483201912938777724052129212712087047348693299789068426553242308371951635432647108481746256700108555783721727130388140321447703030391152702914936510786485418401584341006388565067538654810696810406904843990951631136836971873125111292780421916214968222950800506565576473755497222311077893290482678573371695171651467420221016701595133073691030185800970227786787573100575024148761874362918565158739242633151302484586264754433392033827918578132674355100524937019476343966091317598502501059814229282522195337630451977179738902623406657988818285969461029635432267008696618724340099774636699940759280979081694973001743168227673182466462801979683897528788682189566936138630080334047184668046018819728727010784267923329551761681298218661976071677606667950013545148006666406995636754264658179850904067979746608415487522375413360631170553432212228079209413586138352212421928967527571537952236029620571872247827274570522837519377779019778752112284195560272681592961287967163892884149927932395559498660637892842209627218069248371093683094497688059040478239577947410917151824098462912046723198097621538794943236292917888713298848255474074473431732591086729292825277153225422504559754463483851429811846498804405748691467972728100224569142060562339068982853199839830047405936432356903311143376481640667093935952228955751622591217819703816171215427666457026313135840649467504071677251802367253385828573016097148006971993511253408662521575043560118965278889658044191934407558071392998473107834453059562625602853191872730514020116168658659937157555515359293962161519035985621051331690300144020303380773291353883622711928874433587094586269826624714662493970893874074507063753716988931944507023138144718775960148829915545338202918079886698607616509329584672430020562521937189765333686837926529100905054581821871697623025921056239622764804372005216172216579215530609948229998171872425519870122855982762388828308026156380479842350050350117784655763630874919427920445173808558462888507168537159971086912294596864964577023456460885787968447773497376286818265986337583197479357443710767361385929946496536717131091547210821270212346573363841345151739171265774905434903251848479853343188075834568741733089863657022727938257558385810779730533536882024228960670050573355585983164664002332777933853947911304198344234948066385804191981871056687007924090110440593857433748820316714482055177670840648587363272990240395254619920837301594751305252148861431335361765101850381736011667440443109989785550534228436986979166687011233632714507859577348636460585657471481032613011678397381366502307650332993781363101589128445856524554637646590372928173896492659554175119708276857799052690695331889868737840519991312309710258711702295334052671653283962633553791305141409797096711168211639665898072404975406904361439164913234725187981717037766770715873110624947423141901157463460767005291428529835295383089687015003889523957182135948460183465792780204746908461001774705219837151328526023885485232254881761315475546893740558488905578429122288802666150355634952975618555774395969912837024358660683154840860281403953034420666732572515726920866038495806885064212294533048281575256805548360317523190028731278435912125359991826521143015195644504248056118809151630912791608500871329946541219709994551293218143758309603998639874998475219663310968072105347679525731468345390581408898862064310544618806793650478384725189250641005996110610371061526566047512888025983522357688636276290769611896329434546022595949184870889005320405012547548799706441030346204605851826079337408328445069245321735549951729547118163063116427172702135061370850307368322941017685427755399729032736501767405562015191886614704007313623826491508788041539884835406633363002784602192362807625636310187259410071824582466854232685280961390664210775042035455975906960915464942183763224704104580536773997857794053819670507029431416034809960423583985406686534284163103663926309753938090158216769322557223273914824570917946896956685565795815138691331928815276651035448941269687726722931119983678212698485580245970002899438226881732190282841743355588953952934835859891919438527201506372260669932847153437504971115591391915535313072823670289396213985262372358142209119961090971187414291749156189176813141001103680311135102043340624196556406102079704286796579368646361439044438691200461647959589778388603042649015642526759421635005822048914516352054082352315867106473259738997146310249626831552158134986014692916104715012260223158327638700015247938153763232764820841011375478806940938480360576572425757338024442458488283983512785280967057334220880077987423350675071180152293351083892716207526839362353595082951033614075766064525881301800514803884160337556157991453649760990195499200725145267090486424739293290893299809114612647243464652126062988572633427733583703439958032208522535362751860318932482711338780667893278049696511588536860007627647114429663044011686699215334109732225625552607080935015010725490707797198515416083517116778461015031857104393788412084338634781801112061166780564375216055500224020008977718416041375542374121711576722703360788885805772129253784054349181521514041433553447633108898900387325799715116657133484152596079701650888044516951711005714532026420029389544693481504334595639518107561554523590947184528902013736414644184851438630655991551923698266844218484521643405999509406553552802070552353031094025962606623961125887320881051910980426902428074836553737255758597862726476304148856000632001363350652538292415040594557361090595149642710811797361095964487185401263598622734324690975360008134691211196615544784942578243797788852765762196233260527082796794963395686011019414069968214799520603799554679464030035378323048825677901603565727136894498795185202047026213656408898728072665912188087094399026790386311430798893816055537861156908810723070945036003502556715760800639987411517330915083137757981967808422933239919631357675415733143692597947906398185397948009416803178539256927731426032214585288198886870594333849381133997171334036826263534266624723713956156583518785567233959747917352373755972468681526846574577585170378005784671621283413291070338829150864573965325038311629565860616731878163175475775215604739645262887115594591631915600913656776540987277128523960170230271047807144008881713466413067062877718790505496580102082060722478772902538690407648662344375936166826386969744903059842136274330778460766981995572404959488829257944173977712153548375227085858572858397759235989069430770026717402294857323006522124590316912143695151833867828653861197442533496318118193232021952981780170781138123248346272519508303329855373934064091340480090598801801258455653105219620291790519368603686698254027265630014730700903052161436807329824027463718872503907076827975071636159861836757595736294904987145961830093739408374068605212011900236999894615273464808700362004246245482113672038962593633485809009783074758084684383012111842927195576320821751374073614271947234698915158426892066652916427586376001893179909047629630012942707390944000222870526110165792316555820532492985886764190096655261458051491399164288552267245058901196392432887164833169591734204772569350179717756720027879524768886142818854135982696775967684132669979575875785790612963119177564455860477112375191915236461342261829966858593436588404711661298100288252216945501894062679045311048036443774711448785148350164761002209685397707273501564980471277325833621320939518979057040913508313199372126800134601316783533842951122648440518608152771420134042479405679898351722124426485580284570067375997130487071596276378977943231342818654300872968578463222571212325602456965425842361544723923234358091582050271506468098202754364100664373348156638954246425776390036771115853783029230013190320910617924711816456748447853248167479333856863747437442481055438601630129354473362070879472689542361867187001809007424458037378725517662490563165387343707261666794811913163283556230407765846033254906723514251680825759069464427671959069072762670811545447434263803888735496801517089070047642666598295020328149597955698968511809246732183063004084409490245867980689435617085342308822547893076518569362160944696893617927595534036643020656704369877678515657208931853321480217180913156721424969539917181517909073803816692958556022127956906989006954131558647384287447409199752900169697442221279881959751321346040605946027110230405836797060416735816774574755727778457518679686695354746524897459378101781857354006514477362381214262189650329092388071027891745685800129566796149140832165100465780994366035752011715135968325932296990966943475187144046960951026362977536549399993355484734540824179728770180490905308280846260547121814125866247309095211516661609357500556721440828329926348842206085169274150266747090576001169971588153533855462871074752239527519487756772825278091181426624311890945443466649427944652635897097002172981386033820080173174359602822754375339615220598290846576477421827046983960811079273640148039985057373811121446349389549601470079359131629034749404251143563442627678961458599357311802163707595220266991889912102048022162711581866460255395556636579876081120234388726181862810532687155951985662860389036389328328594485122865078090448249970865268658388754208552570246097202281630472921041029250778156422245355528803569797900699434352653372017810305255099437216789586857079413648001141396132499560692738048533877688361671639097824630983355217324386886508442683990445023548827854602800221310895433400857703866441766978183205082842938722430575706415673578621643168591629132893526654407674178352974631575634884324631267798071819796989727841431170700978322432136261379380650686983379891437877638190132386844275150215561291423060686756269740679598711565175987218787948259535213199612940844084786824471737099071878370971273799099316390234880225014603804892525668508316307211755148527129560216983395395146522168184555717446893878989865656504917259638678265675626411058067048987463286997925194778957360902649122510934007072334926938509209889464784372831487584146642453005440515276607577728589999009816429978318308245021311422467798152040127618622208723295558069301921379110145499480494276588363408280875307664178191448589272276513428288183432676437589806489779622462221115145430158272663433023891347207511442780581768533134197465236656576482006034137334479935733592263019646329225408785108275843002186150247523680023332246935127738053367462034532266015330358375496988463365391747412788706320398122132562191831492362003488650922664550043393392642343233442036171159377918988789326407772623587034801086364239586197929507663574562002127744347563726968912982225571467624498729927928347764126257166377341328570442741381130242799974762641216318820756701445571406888860037095420689649922203720789662965847621072587529509459342010124671752378769721367186069228657486778011511384548512028527872657709833480305355382083497313720569573679379998884513643619164849189490060350557282378063821066654166494750029460067252340284731216770227611921866675145840882282661657541491244835400497189355093118558172575571259262308615649250866138049649708381165936995195582921344096281364635285624501930618961572064747743693031234366110772019123691444386220732896972427062052866760273421728660743678187704667224347381504516036834758955753681581316653884353546884172986662149673295566619997842056158338652203924552469135891383401416601288418394763097284203767526494402785550604443547499841767185497767769345011995831227671648079141898394136931074567352127795099942941677392543930159689961608734996391214865131527095869182011003916703195754067519543121506366602065444936817596670630539054659663122581077378830424039355425344553384814919608905338055771074619533831687096660268548733914583765545951607379277096003305720486897568425952257561524820714898954896240695803877911040972629087381176950842572891989580182066992883162030590156172379632974882450969190500900159698381702119553800138077907809583696814415076881545545350946077678614808378652110742417909008482085699408295243664986884227589944671116369603824534560162210609065487031091381540477243446493617579485544398767723901524672133731169550386592594841867765183980038667841262431322853804118364079925681006324522090137102556759791144763746753281164704575962764469782979045832069248531218386501256585494390413340836010285167112373273857740291901666845853529826980718361143995043445468304928278431619786718379947097250940836819944420288624754809689534124788374302437001562152218733433807731968399839455875637065139763124814072547736454573568424132975452690894485869421202736370406268878726191030760050777283883249158858415962126827853748417861356954592236939933040375141245410595925020286716406453110079796687014028617188529846669103805543999500519497460898741370536862809005968563717687683769841356429879301634129858129911386635592507000555087462466201464056500902210945927871257876824970953082788570811156304343144327399887657977263003909973484777271053981587595259739531571667422450014625943599597906782193131856417719234334472902255948722891585096915840418126236589995811733340006312098837035873113708477710537927779576619229393410711330959083825695171393545292850533728866744091314077112894844867174261483733426116718894415832665016490583362176212759806963425612496341733341617075296125239755561231637842306813936374264676790255054961608248489004395440687425697568262567026068484289673159907189039392306365922252082248349672846207636281946003969598449149215712304438507441340507578825078656100262042105750960604835400599004576727345924025923490737802767808417138112597108190601342643847003834194523478667268475383748274642339069070213476523793296506064735494042076352804364911587575401859094754067988025314500665019836130296330084446087430916864291394902807123490897902934591198400073792977465884565893709704258752394219908609700186634702713361581118668279953350353162738972399372926540923119917253717763875113824176571976174481282807638470799205144317524832532907005569698764284881378526982443005957348883509568521418013613271484085426538038336233087318670786014835547150191713492844710423647497168740028088100376919959563080082929127891070497995457275806654709549263391452769779954828191687517815541749640683325030958292304310294502667108190058890627536441457040327072496382017063932491062316529432265792594426848681446399820154473005934587428366638815231123164619668034547681893448523703676191329283913602400872375030106099249636385289841299889174783858677045669991227597012651966079010485405958101117485456327675909360342899256219287646677682238389148155422384486744006296065302319424361637566950930962617962839553980530072929330638735491339661219139746680524727898580605509043066204898417835054811534296467084939678785237459339308531810848802526828596050770100754572323758800513911194972527393712423192272350978717469300664760206337731615364972725793474756497339739464908043724890700533421541723608849676186747417880384220093577492279269728810244650743685052386220114803883163576272533858670042920056754399495269120071021042928424624602665395392141100128557670867584602743208238584636458848479675889226081246866826227505513422497070250549076169206439353075620539983910554814990525658615846027468396405073883508888738482425269501068847043451442351822853574565577230745519703559431266293636532190281762439800225104852485187736127209783719936620272625402521178531453976372539377887644367689487113469613115080276379045509723336586466437997215432673288263290810247487361187121110784027958705453856931250210457144001148905998160436282746202415433313911946112951644285883338759716948431041051201817720911389450391922964107946772857199004426898513841975158505934372490192912701156058676389456669376237459009605156278365342140224872827632279910550848368601184850465094942222144157411068953822846202175766822662738513462169848282335958410892812012948016466529960020663714327474103626253809083841756680205218173365620338223375277801275584228694935517129138857888548616949875971654409246392769332008650775829167353773284929230850446659517092879366350103075826769511584991839164977339540293618841006774984404453476782805734022619545305995001768935297361041823673307019073125058677328804871707094282792398547634968226424890880351337930788796480269444713018757141446872511285684992429257298752744539342833160226942304892343045595195218313638997398662296397727412055858765242014210550413212043837095920560458201516475170321756062935030627329539249563162671231754522904443778186294858256498509533365138450751175039591307917630063516037816579523255579769222962827841944804969456574967067510042309916078621439999588496630507696358804302541138973907195014003590691289975835445120842679586622951320284750127013201394361024907013427801366125281792755024672400605493742761724472808607737613752389601325521865364646919284569842266565217848067761606606197638823316736650120777270234841822858406015674297054953513924010348578972383204812813090933909526934096562056429294655487502329196431388008603734832374241572365521268992731773914847655582290570049584181169222282033354676164556396502772261810383507995526701521336363758083546303464011094877134666179080656146385566560497832328745818553415666903594118618305634379159492785071329268479764391254012619757832099935766274978369825067591812772325705282386690400623903082686490715338335192177531644876891291258969326833551930972200675613939860538269408330881360304811833601714413149025856601815600505475107637015629963957106357170171319650321244124630017975229542794440485391296022442456950116571653461408708466476349834929816958723255782362268226538666665462541681893379795246065327562781155460462314041933717602081509159066944377940890205470623523758837554245815644791472572931269818895194101001143444703636825754890949280761458415243077764308594940392046401440392143268860442881308365148543228448553213689420406571455209205485083278085582971511907369645249350006856195860872570755492215281984440264934606561746196113043711883502969771589299759672757264839362852770600546853267261304860925421441891089610839964855431585569811901322063104165415599884187146835351786993329371275624678660890943219407095808717199186574226588296385201537954230062373141474898759471540657762038661125716487522160724554078451263460188107356892955135174448064825539764061162801865999278544782537101186477290078120289287920062904280644786569716262357198170489868748518959739513435072380132907568756528720213334582544217984215055875654510250220228268109540593881726995429772351917139634019187659389971776309396631620959808347377087707417300237801935116722359151337628111811496487101464398418579156009861645600616493957987783957201470135016879153964320888239658977104528664992364879837002933751286762303286196958647077750457516495712605465394935499216853957294580044270066478117429169255756556067594275331910098783216956904870485140540245294214076777490665428802554740428651622635626180010465823645655200911096706220211519999135313397015661032891952442842534145762684659557554530535080684196791339518504864742639001835846085478837166261597864147758819733127874081358788080874037390594166205925207229101397091149704986931215267413813603690475711417337696363589587190660310804680274956184344330976891099710289385579797679468269088542522090960730733040278340829141747168108860891244257763939353296317670042861818561562928520951410472108427039541847573045543546807657111242145548235637908605434291476968252496003128827269477222859122127398084488898419063148800606853497093015609918662918497786575187614787855317543975872005663988975685045132913245967147203026870866054083618821389921399666717472023267758799716243132842461344174248339235398843628784612751339256655547699360568995245767962601981852936515548062127864272438688786906218542172232791402854798193047874620708811839675507704100205519433398059789272027894143371329096716808700233885425622354133087898019735987379810010107123305321612556981517747395910431066008028866852933409610244760713734918244564855265750340533500491310812443225996175153591597953210433319344370640181363910342986098667988986804725711394114827070962127841729661785802560538742950932288619393957015899057711474120632903808560582202139997331767669697952233287803830146842181597414698380690177421812659235565675887068139731851113120815023277195704875080913293375707689708612167527642854602329153617783355660244121020545413205155065174934518967320615049210640082609760616952323656922316561756316205492796800962516499709454881544943192448144341086159404719542343891670525353118314173638149586182026986840538102013140373606140628551230486391811441611376710740496276071491795114612566663237108470901417877955950478421567016263768769479419029337026507994817587203558784866473405612317904671085216993244443931485444436506482055614954682899842869262651212225725881684783032355407355767013774697035818148172207420666066573409584692722154819325934114057256111169802030010026737370615240210903725453250214508203079694592054406694656122226595775490615065855532577987726536630886867697359016393100322401079100878032434690962792362562734796296480042533752013019880401159993369271174706757688481355135978899438454498207240862247520935917212339179715209801454496008824140199759347793914535073281673102622306643428517528490302518012340437454001927009460479971006714446326888966864249886174602867422879932935977080485849225555743376607097190554618288594654726728737433006101465058573445186410553298761419368892856824287158607806344175076396380524948241401161182103980121302727216303636484292735133468129970130343623627438103194571759476494433046200641686162438000080381969071858891247190110293570381821093841591471968248715092699296106929227118514927127230281779454062494935555895561366689449086956936232590656912073485150574309597999531664321162615962206083697989363551846282014763449780650521407774143508602049158233292819726809258052841511964226806917681120237691421307910598555740002487401053392512133181259935568673196881845654673505650760685870385389624594557211394011535239959732879611622028488052879725640230945841837275807957813605762894367366519792160320989602613203830113375676603236371234932623359931706113393428221905903429892883507346201242367340342775034300028997027745109043942696079599766658359211111447256576960393401403831549257774018962344483288061920188499153581325508222848388221938291293712004714893496508997675060351667323662183201471974684715938733377324292720279477047543691271756277585383962854073772341331110502555985960419776641853187036136654619505387399127294156873191072071359222904388397199512741863133070480581778513294399381787528720479199531128295840751632881269712730905534849883342794139362432490092237264261250386979096996076904343582448314619070370794717185468856214892009260524463159826705531332147167571165702900576421449497861062890847856281161242345406448516842501191091670263550349714525911702332368914310396696369135106201644745623359235699763499596712575476881153715637962921148272266262562459990854222571416975147440805421393561235356971254442870500376770772600841173016997407739495244350247173780495131903360702140182647190147304346637943459764479045376473254459204948284332883456626824815104881258665709727190741121681557359554831288409951586152255777076706662983907359122953938771057631114531580888744757110810065106953625513413467922041237259278769523110764329475427853340800569265672593114417083391397126775589739766790959118113223450837135528280347954977982097170867758778643494038996902270316615230288486509367498325898940257392327022818733164721575709905458632170848413176114440837476683771237515069787303176726249217445984541932649100719883818168294582597391565623877044066240077819990621096453319665007802482887090298314059771401530427571589426191298230936619976558975656385716997491372904020588388207202422585855277730458878011591701100895482072020519106953578861862582947654028442811319803577630955695089295677640322883468814570378141015493213728576912751978396433183064267801655253234990171637280667137976777030066507890824999329091043026318341390758699262445956053726348336597600177329551297164954390258701286986627323619341592312867373432035191447013816345356499836461591470461830581146003304382592413287986708398171072518105255781310067488166098852844043490488087845766905621127713656333269260017248221544611570322252822474697927985376301219022978832732283546353256181488762780796649388987234465131996087862928280399054616684584701714739987760308099437895781971540617663569581844541547093892828839436336558785222285996568331491475233996982301150769874260331015843246111551097169343104029782238988055070564505451479807555313234374879118968836758496786314018404514766549456598417686399682254705345758132274985223502581719771377341313264485760149077312834110500575433499725458036797987819440247714459555913411775250469761470117094981891586568563627663403502566624478605706088797739561740413775617376373230209296874289858085321623807425634898722184565507844827297989921606860083094085074659861691247897757791129815090413376692708745507226462714242895512533644200457367633411879564072595784014250131090504310896806950852568948987579662165694905994271535071913878328658344048607064916122293940616125905349357682839380272924278017232315478678035372741519667541749969895784966964311706019807921502821276047244242854625071891148380657250998005645771071045077796281936654967994691559509634864876425327006362721514177914191353027108814793633373130737390005012042855425434877673733535508061945153897724897147109105160601924701958596656683515263888137671331871081714448120966345133417420376627968507503007328876395283380843999002117942903893974564579181092521961856858210667760685552785697915727703014959280988608098873900045840033361129066223193051320263655586733417895906705025957593951922783587693189827306353410751777207677557739070342906093483513543767451517747681928323713057643555188489430998578594575691656051358322900380502714519792763284494125590235100046033699700055789624782808976017501019832675106428277656893888725352596420168959292019256252234195672089605072118829492554273200590626145756144739680935331980339799623630930141776906480950902270225036330654907530840993247360782681477095368432161929584288936435157701783862571779359322779594977874186091253861764439426389469624135709452388095732342334000946732446137597915332104721110276679878601971138896232645970779136620246342604540876594398413864557630261360855848002878214729268528093236645169267985126154954870533376667517426877102522714393549194806829544730697037718234858985726067533272086403042190816646110189420346696341059824819713730465278678006782905312805489386593988994219103289116849777098090770412762667863462451094157475823663313111733709883089500647747858092727793960956237259843982510262419654982104988522070257492845129536610574220652694810951040133915758702283907394028410761674448410665237783882167340141595502150974313499520121297716919323364213687727532829954867809165043737165081969248913408005774621314517647265395327863057376986636081187147871564939643200313180092526301299461834567855153946770575174512057084642107859612347512412952150009084475653465434730696415882047253375271197492786874178581701302711886541356491972101763242355248495346862559242472527958644260526983947298491303745167099145960496329456082885634746680732180864710526416936911778733160377950244336421935758987988335850667854243031850278249761837869935634405841177721443079520226227361923474617374660658714130044432322675012331627248594555686501224777933796545094538347023120912075259465519133570169364316735810008330384575781216886605664716839174576888377034702113518606640393125031762221065277714292760979752777254556418220087529917656329723953337981788105636829611585995963667479607069363086446023360760696098391653665412970469164513835733892947980297481045801180730201274738393942882105964217168271282591755233092086967851456087874560169873184008404430375601992970788596518009871895752403564787514962817371953019213771340111045557297722997542113795354210825341624403666575246956583984703388717461499818243099729266149437441527948800879028330213386748256558164914691084127458143623992520160546081745634849403831007712886035938918645521104231847295241115936500240311303349100454089279560855461488148290238096237221162515429840237829744021427582336430553035563714946652672883844834790866630598337617265127566326934263043433520179113910974158223161396876049048747034075369912149639209772929341686606389432631123535214058088000901419102922625625108090943929685514153000095021747796658435298552108665317763342335054254346786020624602701254176785382601971158764114194853913264795808290036206703167150802934314962406976490983601111194537543631854364275467405167054900163953898490890677783240624861317844767718140572258690414098936779356405076550172580692016975187598905497962020287153210182204989341792733998973257486514438916395549702082241004360019293597731563643436580332223512833087168992475874693457519055270531222917602635901986479941268416510579639493950591621649393460306859317007245887486512534961288481265323013247612099624162565866470812555327235756631257638769418053212183955678234562277733678489807784500961520032518795974469534113517411291086070166796629082801986992816640579402911220549784909032262525578849808978420982020916082203863690565307238478371956305878537559851300040313111516577245195561361189513543498279770750789821887656074452092731651345176834136516350431816061841925839779603812338553602329734336753558526697654942148402970558519175218902390283809659667667925233038060528385700038019592663574171768642804042314895178994005473520510147109532933844388852864611457125045680157302225276690594348847836146967865193716796632031787438575680098406049713747386849188964088468247154473239197218972839915709102783137098813125162187974840662771650240028384471004822273681494601025459272792671289136499559700734584274318220530399015446054348206851904960473886322333221443934038117281484263330646630188028270507278243312640689991569278525067646962691029464371919820150492933956378682369897054879848970828768892862004084896210262230173057673811867286109334235819308775236880940078628850198824382854544162413347206027031545973721601290432180625870116108306169529942126188649374908225108344313102262269062371584673537233956151435345711520372093184436330704629619367187296700418661238837098535135176588971740467499521920243762959033959612642226462779526711125304006499233094343947327603228041890969321700085417608785096323449113870397006591708258377962823487420446902413717708113963423084897167343033735721139076801312448246881763834253886640801544087195464260836632079588889380108998025573688496085227677118957342018261923815933297170237021214579601845613438515474654115276508086244420811349532221615805449792336495943489081752984202428696059872854752613650601217846981528453244656081377273802213044306932583737637434371681329721309907989703913494077721140075341699642533941504454257737220458548457865430834015300765515464269434429153179525528139881628649789106817197238480483717495692941706497727510720008437830215238278863701804179299302341530011299287552536244252408571877706411666043045498389152270071009895208480496148722243196174243789878641090043892498844916557392210282260971146368443657795799403210147303766051768631190560008146224023988254032691729030890762308303506402665999525444345159846688222529789155451527497705261993693937737791553383661586109493758666881720794298071194730510596994837569258678736323604310475443055676409998933897990410161715073313794461201623042544861838648392601781570718813954171187846861948780386171146095572235789934543367293294789545049426094151557375298657687390999245268957864161253770598003177604645895641489264801390168864842275326989041322727823528186197260462511148784265200855796929229391351600206885981698532362503981740636359980938773960166429748184053843752758019023565501298523015205968784529410265649180403437859055969057861276044224575451124809573972263188282420883286415788573193713631458743394886822284104616832156399320932173764026039807628906490774031529843725105669633251254087478608103643871770067876098452573473430986718702862952184328902088713210373433401957528575296446406894481534436624830867579923442932843635617555651419896507078806162311036312443431958575017632617497638351440118309322228729808407694665586775714477047290533909284446384652099904397175352356570475619258378370401504997570756920260683130652712189126410257765344690309324277543510773294456846798263045400416428140297858017874130224958427467430914331242893504535212815966620164427276716275730794439162929441776029253671711284911998072098489085894660110581710653777855000735530586033595990141647886753932253230248112132177757156570043860764445016732438891589280891198301196591171111666352328668429044828286623534234124645778213648239807488115183331778411077784370561727095706478958355356210897865253368169964614795540872395157837551873779378942263772509979612815604297199529243452518446985970712660312810424998720931513327139408326983235821571314492333898755398841116445295638052940845514402814267907220041527438247979204356844584164628344683198441932088675154806067785815820323105255236568753364840934102365796445437236867252884569198976435332558393024738451517308622644464345666157630062575127989365528589403008127719405574300847671649119969557624079125858946838464926114671961914263941373727631891983229766150409470590347412205791399551911337252553421052201712210165793322359647909043169732665648857649750980953029025010117278037927216579621885300427798727790237166503110965909711344324053979458593906948095499632005425549922795514981033835068262807526119392921690786222150550193919887793536144152077421015104864333609949458409772299725196182001519085049630628279976616072813804944205573518464459090734242060932104518123372338278454618203525326816123912887876605865792365793112434013716640440183369562663621277359288350823991752155604709574060947714276171531969846307707471362483290532159562955166058210340206764999716966996784549752639519976495185091460849535825657330995536320614553359567200622697069932854401670850088000788197276587745895084038091488180648272597588115300154371771086808276177133930505209418267526248953685148398707196350043042008917558827826206639626941270880201843343759246539052903715058145521497716852166005180760923358301044458633024570219816543404153553812488189911301333885963608775303844480285086365823927745063433448897350999548900530978326092314183141768145964288396035068926205848191241593924914000455273456944442691117188047940719335345718885818848858846943382784163385445245176783935155347372823531772515633925494733618704687721685354259898965874551914034796285124605391157443056825733109512381404709846984998117334938223634493938338030918106540942906763756958036888289021463799419763479014564804844302816551983089852425288459289892830404876815146084019495265682117565784940153283402442666779789195220475137161186216782208315276297221265225835150435126580800369574664334852098173575755282431873510013094515184380110725378251654821359850877203507019827610882410339982148054558753769622422219106749085743577836671503352125497481412226529179857517455462656327633699361337733062660101881453001144619822735095132464293416353510632833271298436573078380783219103976458306932994412398400869116913918698650260055443785022638391157945337145036031023284869313528854122672933998721574605075303018284775763943331700404482881718193626778427654994686413443076042784580952791067745546269688329487613565063755845830587930859732422803193534114235745609352433432969414799054428109943749145480062864004938346743382303823701793144478738721968708646185246882246782583937771251928930590511096963154125871636956102251791216687756643906215859167404560598903099721711291620112527855766767401157660242107293486806752107549195694053318326321914449173884289804379482274130212936550433898118890383759238613699943693502772795978411163521821562786925259080490995477927450841637877468365799102747010108235002185478435186609500469409192496919834227062603090779901555659979623092119661561112320536333674833839673330011626136104742518284585060275989067892183673499760113186030779543706032901255761862546312553492300373493467785651322772874482308026652139743428990433482312478422825736047592838600239955878050676131930924307584725981292063853334874607570670392860007363893877165055152272984901823624656636523089522716907999803253547561491677689695887412123039250759375460469598600625548386195824270376541095004323024241083836065552161780606900806499195413602035558150169491867685310200157702964609232470909950792092238143212260507085168911064044581759786506797934937325560750054556787995665562445605606690267826622816417398243244991462117308753334971881473070365724546166343251131053496105578967840177012602402473890520089733471256061498572845281767265058281278424787478392000000141355263868920971867713170521910797955245702582894545870335216910624459621079605590437654936781986095823742662747919733564504185390368270853931288446640555636190995587892422394588885949657910438334772342087264905452996891891720566501580317322418247926800785101505889640620449716295366590287235500893989200034450236547720093964932456603681381667366037379888548358571124197376928258841699195457271585934255314343139563612654889255240304103445996662329067272711015836674747719697544548480312839688062560821124885462048983759504708832547462842419751139078002274884700920662064163760550360556553708707787420425779684039386359322828802189577802231966859890665757169249843808172330306297024634557394813862822578043011650931498470774128303041709206439201182979319294318060635633842173956692945638369801933033360696271311974152452699487588778227767684983345800347528099240009810210842768682992226613084209143914401987506702606012529277129085468565314339792740722427160458321783978986163964195861313154999932462506131800111402396360110095902526905141596952659159093957634298470393702381102097652959855257072829651254090755703319845807780410216285226603237013633062416982658063719062131053538018504379417339492536540920590360622051799672507824593199224028971293699236037256678633450275996544065338118481449744032246801995899534328823756728997200675394995033333432929274377131754107360706748412638117594673544827049462397851920221712384506788221847481184904462174042296691924744832895243084220732618214497216097326629412716469751540547360752487342479541596490322768589789530901553904811533031863895483199829850954859669169437163933559887091410568430395046124593534099207145430228387263369531979739846607050520652196553792497882671140773145773673857150163455287235810739196432090988602934244192541288039243460782651058116057703970583431468632265533124732047395300516391978983168684276780297962293108693286932927181369243688264295768641222754635399013443721910412793317645490665173443203320040866769774702696869239743309035936569548398271680025358377952485472614775420934988734369167034063943621461014944294983401522868620172888614854733206989198504514787645708494498937525923188988244063605607360758871596468338756715103706256104331807572758264667113338832823263328240559628370195448272118753026177590293714642665811532187709038659562153894854768220705321472452661735148758339499829162800431398988559340488987344954913101701338155533519165143917866761237024044959666735796782105318458143374633874683145356705683076463693939746537267245606184168249457770879709597627365014592210106053903769084090703550142531659463779115386904027181135801844968745459430545527798189219220384103945420339380944528052137058375704535881799460572858229526789278190377210767422477426429583149224366247159744430610248404087376324568838931125937644808361397212695727787499404914449626316699300786935717534491541514397401561586584019134494258350072340123953832406778314430287689320032687224810739845505386353280839153048146972487948957930729997866665746094097394594387883640664797959810521147360800877327080177702223857589729323601376994151039427915017556775545453867791818272085633745588603579326337307773965685833268010190781907046221578908994902980024333243456385899328902584269775985828023714699045922960362444411165683996205980078965059053992048874034235412177939231128500383847793925939317422868517330909389556360736756516000690392779076798258427105980137614080444221209324249791445640200570746425814506769425699751994229851110329116602103492059214804063625700953430056724234009442462550362099636030877131244539448300822270742646295957353844500833206601651991538738003444818975139095018343015548300175811646193711349198654381591392578313809352795259640261531872521225670623774010724858172895569834584330516369229326055728733386433869255893970340086262387064894412130958612868297383197092354235474342211634420050539061089838987320874690624201352634720904943330788453635214314915309701689476592552160955077230772377479598230985344420497412407046018086776791447783348882109274388765052912294552430741388508088320089148562805327964144672145353750620107611980340281037560481293295789241235977136980115647607867607116770184203657099178282872538993101335149250389404865059726611151752559703203490074518253451216272456716780363363762789706564154587222443969855919320999679384057147198612211061833655565822122873053035316680632098110213994691369910363279011307802108174665413252083840250813272415717299569711209345044162714991791719558569917890937179607132061369147667638468314816990691711399185318741476992863485843916650343399480980297054976334928426216296573039408709686138662642766495998024946585643297493313815100244035632091155069284597693152736127290197036416613352247696721988502889646686759621161182974132794869463012682084399924036050492492203087671095621606030756408051052486290461134456040142548424104716114715070648323117755619887261027851993616589770545897420380956717598632193172683262057616110087299576327933964837519529300937167162946586950168842322479181556112665923351858651947817429109633007939554684746036451689425308906251985803805113681420779344233929440470178825998302759478818372840535126400960792551087743960887798248139024469351945477185630828466784971519248127352055949834692618646776105033257807570189256859453248569412518259842502661971019270546916247789011422519112452839439524292945179899580159885640549204742481713284991280091481800179239237311289166110367986417419654926406707165630779554612640995280848936060810385639635653894560031803540445642336343614599812892985585856836263036787131318563903847047637779138122823188560799552096199976734170237020938994737399299673215049431492083509468653978923318436913466351194140524797004730099976474528347248623894310066756858216963232844221344898049507479401110373421607030705709798987068290382729503032731683255914867397000656885520421098724230440287165692549868968949395538136716078062291856125017808935370618332119454618526924571380190717782308980960343788606959890009413704591527349310908619062557135127407599834074927107449250050886088679105688369871544839595640525791805678236736476038875322078286222301555789080364490997995762972437230813416744929106467781621737198763810858593907280249321354688197268369245764220043581279461004855523041099157124597760663945107084597269197115640899468137011890830536063998630709572174128984052527670308916258340361053800651402383458875140161692137863941076383035338059566094616963677354881392418770191530601664614749377980041308372290773401533433457923428920788345138750785850992018346595603502470030828823847876219671665872245689338520875866116735568246945497567696763609670087333929665614779790146921125264490272781436636501461955866731904183835177495595586499408968758234192750308563639776124407715652673485757520735601333373010862761291365138146549819428484228755303541459728673488021375140699011939484432902728826858436047818161660231907233101114274703063886923360453973606350546392993281126516809779662776516470243430138096131695755875134784672674210610053555789232668615788814561800035626507449858354804045799902621889968541963889954998964478732914166247504905279434749386039032842095937073581157864617155005100351453656045366782884518988021452084487070845786028065313733145689762861094824525534174736940751059908478499447462149894219524466003448907852282184901602157503602864453451361730131027157186926238845669924266433941564707211036960484077345469815448215563145811181607574118413235508357791687324217747008428613679857746655758915743366281746933031151145097129844388656465702212465591803037532636928307168837683307509824894180978435333241800058995336520658678549836460822807376909468546424335476076626621388665952273315789365273574997995294003280109206120110135183583805258449237766700715299629271677709597024415075739183191016428612563419431012449156521987300431826188186061490114212181568452739310774978526744861788838165162054747177087310288309333653757779370001002254932075368025784308418731545406624505871025101446679807460678404544391528666381682241580722029658897228552122933489756151272760043645830794739274806906518961557962753174230808709574790121141444185583348700409108965155731018376841460608461311793386775937533319520833814432869482201896122753688341083962946739156449841347304697258437598248947949257215062588126635472224950215394174069605307409152314324236035221366548449378398774363567175501217680219089390628396210420224006079932196483574679656751197108829847188742745832583384147336187520532347938859670772876870919418586993368371456542911149721576026986219503566903853720331616507721563587298973923591769509054763639671279565654535792951162783042470249120689001057859702073541366159549633792843123434741349437816300911412124994779467374717556606298519903275973962288881208748093172949023981620539851531013508563072242443853598595668212518392693713314174611435615276227819359319404340217866656163872042933255199959753197994788559218028246769856666855166431121123512636274149195460712342191833824032769399853742867704595413850360189212951653860051175894273577303921291909303546255988141525787247072087461878337289575072734038453901129748789501122411100782444824049341764297967637852363040458204876337024023375497896960568974018730203474961700673326489300382980585932571121253353197896903446283203496669091911266564831851636368137850520688134642964824862953331221008436670838428836455636616454855372450674680210892202557346610721582749962791433599956576296624596890013845396692082126962941541832960664197558794860627068962720763513783123496508337991399620961321660386814528158618413313324644905567768625249065180631631746040691611516089703368977576457035192923261093116010605436223671544911624283438144887723846489601809369315269742220083081881133268501155684317545805275138282757230877029548968260313198195276612247671207556827254743555253879746241775088182570263536434242741751421488369353224517848668013386131339304956600321117694250902482210227468316309074787582904312322824673208471434059536939186122084300530173727783733077448236094294254877019534385691334520515467626279981820202106299907611769576511944455622354129483811643980571312651761662429775272713889974306346562482893099068261310977107584318756956837692868786309514987254947764947773608127786852325356335790194726744474764248327254244650468229858083632686482691888427411101418818588982730305386978683741479763382301492622778682739409588123479759073914705076544997628374694937214626800269318220340526617794242903648019098094482536777150176531420089606227745452966493891043896964526687891148245794751376113897124311967583532803878033997463110953130665606818902422905393190187945371684921891331576401946672994879318251377533225339213376124104130499177834416894438072388047158474767614575158452762912019217202762650011342524132547299019730804462147571042732704812787225485280083019672544050039523318618384463093095415691859756964312137602041288744915787994984782883318606595474773303401602241922916069632439607912971912909330332745761135860967558609995176014011263960611629750860193398833481437507682980254989583581556303331020174412719866189070655312315889975480689714277353994842627626907713612623883911387080774749234207859825147321508506010317560759104461859797670137789176331246527213777820176749346658634731647034390460295970882470255955058076084869218296468490035497929036087321084296445894704318444463745554624763652465519783770218869566120393880315838544526308199211842976906932529819481261606421564590111243954563888306996674039834690007345464697884427306016229541295710500560245163669732394264620233946123821963156139495335533081262190408302058155888090627616772071534328599831815545889616930661394209240587187457133163350180366400308647305079618616548282101309654788442137408266025857096607417086552493253539265234464403402149624483867596195505344305172997259130198939957728401267866222664911754322499008068622179461169832948582376930305959212596331669409080998627994050413963419017638054457632252404428163825919117754055892663087528787629581543704203631754888951598278099171142733707544358840368852719503046980874692039587143780242946559911049580090620087044296324480199264081496618576342335271043359720196346755163325922863767087207141241938094414934429697684154158380977672997799512460761171762704583424830067608598195958284085386973847474511298154346059508989012060459828376905161301126891638277338552488569960565888021991153902644254332674762049389218561571696806005256730386937863057745650134813444889095632013090999492388953810549773525477714099398608367091016850868501395501436978959124873858854478809264360038642311712496051255728213267930915271296254195156039477515109279456562326273696699746146788484680383852924245820970254489841702389349478579736538758318256885032022593441359546786176697530206347149491827278757393432510128973004176749318484312343229971325297538536836189553324100726862076064799292532771960829799409380568065204109973365760745732693429710633372509864617579111146332490149392447975466162976997784705478558766356054528335009739021832746630103530617873525436824071715622381584152192381272973053293307351281470329398753686278384417975095834011214905803891034565726722496293467717651013802374295356785059611287596373231079046405495791721680017834530820542512442352563142387651808219115604831177077144268115985095969324741868179584289010987455505722127882654575856826150840696581844011710731691557957397516565822535173106074322797562490434041904264996380291434846065799471040042273031391200254342535968218906144077193462254829066419144885421390995652954626076479840200897785497373364817584444414545089344667485942530407426470309336170186201984712937268046188600587952700157334279248830493033715565862603276715503416551668862276892247576557159868877521172318302497330437914574839201650485233367248073264807782961055375123563894479026452299288918869960222566185126268654306061229108080936734161505918251505298016833755022537511187765705730511331716938980175647868922786762504572409918049716410528143599935175516422157478338708317408889283415319592722753212439553285466585691421434691957034936137262182871139855169814282126123737107061394746299914290802829763232296518114379249731538199550842086757972612453353055970114758900574347509965804795592247611905897245571506438620867356484308432763967665225777281375201471552518263643636735301045723178864024619474626381176499967386498030549611271134065132299283979315479855146360184766678712463824730952120313744182488036913046428457240076997518197643276230193812306246576106847592593263965609784863764917596927516793136506418186019498398293805643412023926623127794453338822734951063215200774325593764399939024252396790541993827436532946023757342148896663102143102994308298512572787484928602476944231226379760819681584565009741833538440866064962021024739402732600780137030219193303187589362180702694157787477709699663390732636103928323421783998250429323279284114232384592673649734839933910184241051748325903887484523549781768497291346530152511561908926404647863294742648351025165574446329416037700515348227990150503025000718208404836085424589656020160557550484601987343044442914682084438876070546618596651483088614919495872873664595180188369005998005490061300628875337965087527678314950100666148993331008144032024388808942163566647590386055777806329320834067728679902359664309773247643892305397296653336610638251226132769094992498630039770166544518695201463715391467126713936956133063775662420900935139207159035286875607676822349117108402598436904807411291222897843306655335875835905843481241719710919864911128434367336019492554990913988437429174569914269773701448405196644389429833101968637224395385154416187823721844810602115104679134532145113107899383110228855160380591456695457714462879473085499457141763980486907657929984142273523212960702047166742196456440513439795316809057146128053552912169509682786902585053226684376285862388020317816937094514456569761382797109344522292722696982741479816314567531943531758696833313819218642936468989183761669288700715905995354550758356427987721442051981281066604651214047320328576017889231732417785412938895332387072884775672362061065618033836578236323532775382506490299915090345465312728519001825728905930265848632255237776631733633269302752858097864012339994874040177118672749538887405120402552684416069549018864374574125343259055270281895360035578513916886530626936680442390394570143096943346146761476619911207667292177110085007251729705240839867402708368736477312520653530666191117172003622447887813300154197012265208915179963101038445333725969737873815116772768510676547476581686611441764626922700826911217732870019470879650120935336773335497447025097185736422224513172475501421648416341134883713808666480376697364674576874371452245522504289274556839430833173379807767542730378760394951498143783870974831136156206930374092688391658759558780844420623561781343026404371065648807701269082863992467241550862289204537344459872281466796112128284299027203521964385085475804952810180128630997055772443688534153470601424371548596996130148378268207773250846098640947471190797783670288001651862773001399603254177991816171941160396148156760323992355381732136254055448856956973532780928589187987697069121196166547049929605740753069424620119191344998962019153814015973750917775411314387754376849620973270359584615671443475882450475210049510515602911820608201239449792252212899757260695043284285055026105217327500782295626199987846694955486936979592098373071073512027131875182145649041515499145066396790630836420912374961560770948548252437452615863172772127833461280034075627567067358886159383127076980829894690399767704494431401132422260941813000005390940984176639091386741338071117376184290022031458921791684522630776656237116256976747230565152134351282788351196298081884933285226979444996775616082177215939481852646050388485277211076653108885824514005265270482248591906338434874633764190317184983020146350795184001452681312232185912852030129517992504885907032245076689501046294485218662689219579205785748551936773434955124229785664931240465357808715789103992488490349130278071873714767944583473734795546787336467414651855228451264537679802083670093184849936957626114434699852807447125761200346277535639275116538806946990901682606912801387576574765270375518768302891488501293210902543421170596954522577855687825646157788069396282504459407088304781407762772074976382105327668978026566064761447276641221370272076278078582671770656174264468406799110505178870540796280354673869568481389475859439349042562137713515375968095230558182963552211392004648386843196097509311937647620919537977995297186693895225892073385609394397302068697805866050957340466442128456328421232801345834244019552895249409770823373835649312944872737893488013819096448905005576646296271276964168360337562646617584105960334885574782851712310173072265317481207755456924384577055309274414687781036383297601590692221415000872818584579160352703465426791428873509997712628902892626830225506924013881953148477291015768798986620267304030147049404833302304516322314647982385154522528520405005713114195702297120487182462536925592272444418566138710359517532990762147892022096829987721385439446599748622956834511865528973576563797855846413748955448798100948223504213232916946517600417687311339497225531718350579086689494869887648253519476898578905460172439338925052922613884369688283365179037170718165480635391801719995620041753940624651538462889070907145213086449665852902094771895107177902297151501887357170700748740252408909935197371320701353567248678729975911611138943837106849010940320739295794727081656621904142549105415440209284260021760510048855669402450398728221003672452460145060948354700677691147484176044957906154415912222217588604633975832930422898215638346330312168474585434709707224535718240865837995663282061241966569324074947425965027703717934115064697010920523868631566631200949794289211849421446942513277754090765607784194926658743614540503122361492312224360148798362901422828191020977878783297769282109540426459474331592321822769273961795688516002454675147059992556668950434309260671802856964911396115448101774337179763057711000404717078691289177258730643119245703188851556597326830563089688767861683228106647275498783403783869370745739318354415314095982527868878156163999679529609201838035580304338656472536325111926792353909297546230350222613643602647213362880731437985813952265519384843715915091682536186355489387147605610618759933699059722130124630086648107557869452346146570589643824483148185857609378257208286882584455177397569735937919969160715030299984433045545449549590108087075425154947937318805559768211464398398452990482572369017307085739358079941717760562105141707961025977242156082399466497294533884848072785400868268106209192577176097646942235308680539856697887236270358035394880958352209812832208540089606037824287968126976329788647305417943708793908015957641195803529195564384652458206264369424764152091842355740397343947183718667792241705636686721016578844326613081834165932224661505048983895514594627752642517372363700341054196517231452817500298657553415107712524401972291273406280170891255141813551125989065516384758101788670201391120707581129267934105750302296356192550309606090114787185289001554110794754609817058861256884523934110064133104429861334454039543379011169747111328325030927826583892064804462578585340144759063855687202636959262458811864830799304016960904490155056550549419495117884408956812249522366302205005196412158062739087572665551068145321546198542019016501737430165731524643984986495470315345358667111842430894088624575838103546005074750885340405932800112373232736783250205687366777324498328642746538906056494099831699418888265584198788501981376151033463594288687122350699130483196168103387696614049440778262473721550947140204049926355364442117203282705938054843461657596226054926851773989708477265818876326983940460078179626708019734603922802464331758096901615115466420578076663345723144227179315718498473115703235112656544999011820687428644706104474337460232230062404984554997735807077761439774470530625361121277990115801391583384520864243119446417890363275554521712326684612086505205858720330491122409843698404289610810190431146918335249508243950277944905766194361799672160018918601854604483580313081357605361937442940421284644454982998152824481476300853983691443638816821969578593905034296385224067214717059141995780453317052570989446026984407504336144198864304740876266231698954209961439131728355128765851556664846396456093183049991452988740762571046105329694690203037251439432843009423895642084088699240868200965787193216771124986626736570725423466028213050301984835811052240332442300050984886176481743952307366941562941341414194397552724251755004963247161717953156664315329918316192579587361631936636377279810715760555506566296148851194146093316270640800941418709767934936649633640054230909735131552151159578220279065830022131603287945127620942869570138164831870359894630565544610491273381560061479283458736565701709248852829285033332848848227024746896043856196517103645363732119315054540949717405940725052781145800395904271259430152322147789965943905993012166045503959057763572538026201579010772114163274961487851150413956899275478900888024445709657717638970943441967392565168102837213176230834893879616136464704274975279204571689624469863410022673603456739841545192210985394583461496163208143279794399043903252074847650208454693417458427105795006975174323607776031620844935096990653000322195092987883392288502525303124170243024437478481769699322885797458013376612300286388509190549201730539938627164165291682944250890381511921176726545079084444676866572130197022644162648155934632246532475883308898045163008129463386192612078093969270597069958670836029878292206629763807816671510089519979961429695791124311865134476492726602118379274335055625516964961835347266024125535243822547492865149730538595484650579341363762591635743303045960447322325868882106399358468734682632214059532039660442087123329254183225299084955935246357527352176675734589783053624478412634664678374756332685746609331010837170670322079949348169157526820852534831983606759921331797121522116035532600488583629670282461966291734065015073184174327301659703165457386667312716850887102073200473343257167534910886460671209385186951442297052253331065431374505843843508647349645858150849174736084860702409889432201114132228912475096472437237791084084174508088645661443038280369456002782184207776094455520892013746076423883427342648731435850548068685644751146025609194401554746446436949885530780762137779064904064562264677078785512705621129633197069164567213648674961664606202808145130001222099013885704621616014684482866728719433581439477112146938858356655821399712554299302088550391272751003066179272684748428508786161819824561608241745878125996888526685858897373201596446126760000497203523035927220196537862679975959275561477210682694599961181346643058477069293230367768087944855923553449527700784320688628652573006975681928458328328256218442688721457687219159214690267520671935801698457430901736901052955517077002687804774256117819775638960245447153568173519692436246216478707351331766878802499097470962847562804968541138163258337766770892749028520471896471274955424213988077251913741204996517271247633486541311341844357746024835428350338298555507543465562036494617435886108205820717145462799683497808213973143423361278027614349379050098657950611372909187839559590889781656735462464440999563161084472241321113163200680477082295615060008164530954026375045657513609782070692171971999085273329016457971937356887234329538027763441193957753509208215840736779201663846315746233356085944654296591828710660425634126870559254622014829293825749396138114422240727787525110237391661879359108926186084803764133546023842084120912927964298047479677835358797582607930891996733934423913764019026746944532055489089952422169996886168213487137435473581244439120575659559258123772627782426966073644120393575872444192018509352487680505610867529460319541836411686431563971656957773182060038904273575594987423734456039106632984392556234606099119793826668918098345445005434382689155071176428201847913324479680728750935485401788815003553374405951554474607849993902992023863611282292935604825493075896161851064390399750165152722030888188745686973772837043549948696381587353707177749119564858607626279841247983201746548373277179522027628449390701709904246209868110931558163486057142984571146094639968906591055139464065648602590027007193157700867260806432371103757933390869879444639847442789223992253937176241913792119085124139603616773466019395637879321152381138242215743701158617898635321991121828165438800041973157216019634402275367571227540942976715657021887167023498839864581829009078764088249731882752756396017258401162270928314244897877498173170121385404858254296532649422720106660236335209211745529165301451793753590461713657637053972181729898937604024657387068120929727999268807386225095973981459500003412010373317912196961890523574401279478669780050086136152953553196339614952552362689675010712975419856372728423780280228025536365550904589190490484525674085694827829517835994497011756586518316295542458513452063958210867417885416902249597781723003584948766961418083370455832960771087288064424589491424406115340933716649693048897219401627663887216691106795686605690432242419030280142143441619344575489262167889650917185391992112186421375943292262278488561872493293469798958158351532089148619434629330965276022105955799215390527292558009551215225356786200352452105505817986568797247129818056260327521494111094207731657214875203095488735766051572646602516249004702111722114137566085645585619017933798086261278983974271639491148407299898208115406788855457075131278738927435151736528699456172637265695581167732468265113724562872581807849015748863652184368278406069704777832905281850522968182062524751875754428363409077311110995652118725497764555334409295078186076862373239804458579185619282434081637499265619016270372736402029322004530198028004902306583348554153561791183473353444089190882441984720889461403305749132113214629914027162462858743805392134336636966663065600540572216257965396873825116333706877884244668121909502082471691199873175464521106953198590531341694951049039946318491461023255409345646860878749280293130971462157611153081010910984648751998164440712609534589943831584151520496238688806282443713842025941341011928598451029422792390145829893806619960868856894320169760534905085484838524521379917162281805270305161290127645457688143510179681914532385192507776223855658629984078569320044633641044840832970850171497125328577741093669831568468032979425817901651892077569761519618449036233746671988027062018564990449676795543246687688140448699546587029522180450302498683511727815764716498591213436108346142598359393519876771370065277270797127446970140547341809126875525063514650709461582005137714552039413050736033584275205573304867181247000363834268707701902213835886517130792583578903331413246858004687197014434284508902894628645422030911000467700510300755910966454065983698622510940354290534300750713696669892728791570698142411009342664223175516468972270679109258799178953504327236102149588939129617795965009505539059396508190464849402123780251391445792020820664034044932472839531567538926676985089098666121494370541164465058662489564807301403285341841544256499921652515251432135017421593579111635039831955300241034707273830632681630139575134172744240119024462731122164590801188865527408915398402094442094740238929450166244739799494193144870585985599708805363096275052146633394684337057798924738228408571506470110532732804129009512051395062566432338644501437658954551704579427453777356505082788277483662226263230358368640901355740541182842157007826528507374569353388162048171846379721056682272786614744965929044379234052548920994479457549469864986407229388166404396710115220003388723131143911732229799920256243077229227951567094055765551316416510864463284592635488109269316480866290422021497112498085719952413141070773637604708380496746336642787565296123615249025421856248649408627428242034928422950742115402310855312022289008587881254733117800919457484540455714398053097454866150495656357598053635027304466296412478796358308545238689302932028220165805818393871450959478956929571852298450370819114975255666876135810758526766075835695349816073497576426755287292805314333271838373786674952121126834568874566288013834812934150680646565895781330399379086474513213347270063603314605526460322619290500054952440430028264111662329604292971382293066697192598052232129622167019584345936012514203109077900181194095326041279739729612549595529906452007794951514029966847913428830696760952017518014244302060314863659523504100827560693789277532093372619563498794045940118252540161149283068716320911770380489437236913314498827292353537226254965966427531909504716068441574682449866644831964509729661953865360570065129058422188383696364705036254570836284300450315740869044511627037576488298797764193179297787974004100248913735792434787152989482987177503612287433537338744507300027040947768754221016036982479636901267238714311199850121681995117784746529369807241736272320398931405593851468725725003538583563567397176156801923950241943983816268926718078208867451882615255927198041847389836336151575970804184049061272260198331432254386889983927867958029648274733880162016476888231400864414725126343763348993836688892727428706083212577982781807237825550484420989035936143301559721993745206315234992798442284289982065795191304604069980931381187303305187102354854672720375105025872098788188351974371595886291506044084089945325210239813856573947421855296349858390258662880614430525174338425570489597327701585871148311441189742842769240958904711585532964031382595716598268461583581062974895857794785507323936488942938783995243720627901541542265806930054573284011472210187390572553305853342715518426309927305280432724143040624462045432895111172074067240253068546615706703724252375701618430792673318587624490749978263681212001946235952820588824759123250819388521806326089538365838250602470719169025049587354514187756964569854953118646959260565194877301996844868517408697846103882801320156218832045197321024402894185925471574826774493368702731616713442777042321484909816280869014541468674997100867366100934302017212737811916179132626008893122389681159188176672427152112038903033874476689894139352975473084895109406116342684509194622006710418253041772338508930440805800096459130287210955392847338929792286499892824397720938502258375622928576122385720121200942976925183790712935397170736536560112161659752401177572773739395188565267806823987127256175266216990308037716362165700723646650288346486395259720730388116336332614254514709734662157032372774163846712574901618651324875478306478332929037149911536803836993874961585077638980330415029456879459006153395206698186033715142457710215346273436056382271565064057801881444700433854390659684621400157733699192396903078567589827741399589976137971083268919842903543686603737944648424273639886825410290080375708149195129044264413145056198362468877959518546117859437696127324018592455610413111582455926174587599896787516536559078774503960566812563380455111683572925700376618779034263887357531330170079217214255770392660929536444847305615052596976505848912064958133673693041562725314138348550870869308521567187545674583023780634717191939105399609368906461850362474963141233609858380496873955601525916541473747326589314399454658494219888851129531968591507632605064599009955475436224076771629609823415424793850486722998417634842878612052856409055240681602098765033217944147407664047145114804821964612317350324577435278724677328259714500120564358336508311255876803426951011388037025059496014855028082115057428146233730289809429883359828841246261874189656463064524510373988007781167604351073289392812092155953452863291651820069394928247889213823526955665424714450588824224057411817889535349261964366298565664573422559246406921681798561971174386029286584720585744761353839735280534064205621995310681975033701108706015997623720349047979172190131004369525071145551541311061793889659539166365732050226473243890500540186364640835843083093779165947838812039695456669579883269469396577692167868859024603537166828549150064528874101468750433417863544127638364877623861560843576672988483870284476590951247491731394672325063138215827726952932090517380034126758242622369526415839306286848493413296022939285599087233133319873752850040313120201633121656223415576857712724046265346199871108631452629309767325346705910359204491165431546402611964614161519753770541971453210956262451715832926487986120608885636607185486165403754566362042312694014387802846747638976613185225556871878337662345906332644386889116428644520160139181413397738048480041419768744695345760347688509549884887016553908109945022723233712245219915458546252843251956522715919696031823742720689195575799878235277649493068013679820193114772392290904784922399948213578668077474662042992832483984823284409250075167302222325987055492356784242314385468665245287664238163669995394991780793327712948545869377257850051920343384576518052183739242966369908034932675446304168642324758480593384437047005419942570068450727404219525032816985949071675798353616538518573200946881616511277714519367059982180366139222297698420542548956110902238935561709655526181106209221883016304593991353815959996553312839406791929836823636746374329642528143248975479981057356188480487809799097123464727972371810301887606665313314777802828489529079521006732937482387446907675342799493821988702396082836204082227699140511994682524535518550401876106387706102001672219843064828337774312223424699894504351225519794954514314408320846757718122928766595587364511839164946502560922193436380127152229701248219804210379381822698968513585958240929037189635368697560460361825212392344497796366981339989153678872391062649265035219010460067330930709716027832198629027100158040620783353572818158607109153505776426214906571352156282395297946402437789845664819844533206099875633124438384262698140732258881765510650406531572817796310203142608748240175219375558219053712977156660147449614048224332692284445766254853978023400171742678861262678395389504447407533552665242026884893588797257718238029801290518263315495417291017381270271317963646038563658971230626327683078644936471205561577771369166171414558802548928237426122986380187104348998848176594167445593152739265165139554370733501547603645399369536325018461235951615241360135448196826524114400415688133775734987348885289617519966874738125463100318119521432955585865796057870011447947907727752801560000121277598469612805065334397584713233410781280494936643910905942084014804999273356032037022586036206266764711230111117111148932483421560354572658109831357834971855553275397365566877317909287149583283094489879536191674029892497272057403504145470072814301801243722496192050013486988481539831886044776666853583599317522968671296378914134778193196992968238062753062400717336919977939139794012836059963689760080568311129984560338698203889433072480531127863284907739003313191664013220215318495516104956447766013041923623065953368777224689538691680284500144082723325750021673053074711098358813803845561481402883931898941073949237339604419931346163724142518017833719880416135003895070684878761526957530963541644524486006421295105386547432939146723125179669963859103917958556431478025393070937976826080639586060645268673987470383769064930247683298429333646405316201578251582033609706106942106426677080783799793196618852962256442962900996011883634698543516282866546798785554028411263075612318667432219284634750285859461965489725190567445267605807585106041788672626456346421005698027920154481470246414474686255995219499468743015686467334951136834162793335043886088662851038914360245351507161997008620173273596725710683792133535701249974743215639602926813968723805586535804655577328262485262313747625902622962667489017400647464432792348060817682097540498094303902389403734902911002301760516541456785440155062963713784914645038593187162474691631876011114002726915531047198850425972390309722193282594848493285874727643681528461311130255522187263091273800033747556320615594423125730821358629520888809033299991231687156675772805163666247008589045494376368345934116598219762392775771825867252211218607611688884877184403680207158991973048219413568481526606828459510896439155077916884109075259622921438255194621070811269115905941835279251061001200553139741673943192473005730465347237349537700497312471468269942863419448670662657776207101233490719049024960998355046408520274744411940387713475547795060138715122614864047328294827317680752429668897989802366278039070946380960013464901505066112025357980594634221699307087188821046705543340575489997815825248539675974065216240892910392028462374216157907680910705411210117988051653658805165130951243457589252641159194844377796196902241324313889711570940575837961987320064446683325984235945033104409645431750326986273399970037851092999641388649781317274182745550717053581420057548815867368855974210502946328594579395193242791319934413725853079622706140364044876195293915691965158425463483132041951977767071362239882172112106833610263758744011843536161387774186653031776601076152749536891725639779308660769785445781116968685309571793662687832517225170807098148228542913851956589498825325969735855657968308140857573464969801056350197200850989206758058325685363179847366520810612742078994465182846901424472552129275151505699661898203863219936671654753473000641955612095839661441567638198548896451711666770793709316931434092324785267553766611624772151835929686966495001615136549932289550144697680572412030967942742892341778004461190512523864471544287397107001766536842070908073621355873395114280164457858519021092573122929840648614645854664707345529531883369534043151439116336575783570762076473762794238663582595128303294244458286976161938021701349696914666335797777101248200663966058208406600834270059847156849987781511358372758837874604205985464314532758733494843081360257058667559608021804982920330274713865770727915771492228228109157767095942439297391531049032169525277775590339343192641768780400083199484261932079500078824155425381309535263283644172241574002132471662012162972811286957814290668394279918888590116717848744492148776247300420163643791789749786840080937723017626652392721642994923591468817416434399775902545610391454585731225781081053723969244136180195762317489117712781916476518208183841116092437726349397740429571641863286670206139767422097139212303498314278015303459748638754552592844938885219478252113537879479609740808358957135622816257566682974177006952250662347187260442457815471688879296045473981417785392444645256770051852962929046851075656439061317858085139860207064619466203018920700411434063474061708451912325664578183753678148633978582891579439381264262398822263687990291193404891086631588205412494514032020671512304632738757215627725744532622819447390929016629335916173983630430065548214366031390095157636651801370230877054297477577410753439145413272076096664917595892216747204188798857172067853390595160510648812984840984150551913472122211595002913207314696756242960437325282563260712461703019777473104362304268070868386511849699794762907767568846051268554779046433850011457910047326384392730025459209987468072288339018990005995612979238551561755607701953821581205582138297582189736876492483165351996353609741781323790336081320894122351030844641240388132482248724295444792199129311742185671425963518699043010347263655502260566390559762083801697159176698336114596855916532928463822098799855948852226883872432981096656324677033747962465112495013664687193178628288603377962232857038621227652474658910659996729016322691983725162541244960804566235525226493407881327110900226652493204560883183183900135979723812078342271944170546264186495787244247613982070700038508798306763173412952212969530662125654590711721427943414653153838897633784662623091939613209096279344657914657708498729147387852877882230901491212494037721501176993450734709704466943538148545164925926780809590892217361078043486978464748075689489901018410637053182514161389042703514465373222200580850263507588022102244066170385032807332825742867470084901737949331261407483994320066357672797697229224913028802367425439547887805097099536540889551687984037660216499129058127816708338155971595442706034584789851841062455550060324955578637015848033788435216030972062434407524022611207338021727341799450606214332112142375354816768337296934011002414804278216470304469881204475597805668760826455591977997215754072733969207810900874513120251907675688433275872117614797336897176533679230695286100887700270579060536012848936873149970693888607980160083650546223705645474455742886409427137095969826393496074476323566296850904509585317629884521544608293780974307694689217662978227688328137991559931706388746547015835305500615218569304251654128278943254214825644672506116384971156757442629404227391426117462082527025805638732930793330469164655425823330609245822628980895892586514179443023891397710609928988678181300875968451911279789298429303384025207557717555024937190551578663956065917844678816317629079642499411361687407711513316606627888195396098874286078839575007095546037546225084794697849938436069403404244984795154465118239070103443238264868152929088839295894095375152876960049003907145795990640653163687042523770139009184125308482834659744136346266474472287533830493166899652459326212898759762283200798399511320234100831820307366476134209591970865533215091621255134598570826795913932827502547616753267637275923147668580756360682869587946873622732897782203267708143820167022943180552079049045634432648371926763903307686263419513036304103636959372293726432013382983366238484538722943093295534872729903644460932266537595260172052095886109284228268985576871858623957932678803122124856008105268393205853694721605621700461596171986562706704787580084184947659568200455319910383182822203183701417634437561689507202236275528670339417845609627386967868445612442954989532396713446953208658230663960116100937193801719699652917241514226011155043335996823162098547693894071693080253901156964646958874642887790248444004007227027135109034889665502792940110172204635770976334791567712201976845273153954603228227742898901284664855469655325677039106579374799823570088273631918790630895152948059412970092512279210030965288101666654349716234108025391754232385260360209923192867747775308675895343897874121321223331043209503987937274108038243910224870362477033911259534326016778451576833289058143830189043147702543943524949972441063362590405583773731826951480911820760412707771921870471870756086416529984185821721298834100808106594466400693861951104911862146855839015671911937964253554736429115058525593063668752512480019657329077554613433808613259757840493211970453589253979078675212159899307215634071310613426637385538122103733225096533273706073288312578822952095300736651980189924067144795527620790929201973330793722162320578048869627450326805839590949645539345176636482186555818491397101947391456078382608137545968955645683653078461358553051068120944641442246227739280918767832155444081587661013708572531937113878171236241055311735406030360254598689808088698175551274574490429116655774042894911851316944426858610208838083517831580606376919785462934364781293930272432605452462213637523646854363984660031380669949778631797920892828012075752660121480980738021705342085586682681765006874068653090370147392210554837294312069917267284614083181521162032709786892832104400882596820800606815944367195828436632834548274383272364110392289076271438737524258890048042838201590326319060165798517707208592403826718436407535639035536123641058858294917737501254054477128846687186799998647413971731198283867144647347530809518098001657493627912738490140030003746007108006197431917764062165197371312200396212541559426115434941478873051240806516849271255270546195318899735395668378756699687281103635259367380183016289887536411808433733276006008645128490382194249989217037862159332452513274075254225788787954313620146861594936195547898297070056307091111693393117499176769785501671751154757281196766371011467269540448950232202486201307736577909603315900656888465026201297336068817453366606103570598402079638270654807736499906372266692464179339325923595687506986265423996279029118982597574698843001042616583374472621817074077462500155031234413572602748001812577296238507188761078852560750514759841447321685672630621995509256167127005498134276641547767509598693066348624262000462610415405578760810791801292827858127635400984942955235243977945840521541902444839298883803233613997264437195742951151271241381870123215030067125011205814890414730259260088489421424126941365965304156319358196651581675276214828942261835581964488808958174293691240845169778878878663755922117481359522665246795102433221282067127772074948296685207416811095952574322104735726464025774376562290775551878318931603198364475965042289979143254970396130732133585458566360891857754429382773361296223938480938958301470832534535080952099776498377442946922491107022593025479805460815515115290374715555795513263662085645817782123324998401551201576806785188527363277590450720079611697698995604921137688311136776421329404420864979563680877801261802260026496231141987676463799939090873230960065554227532981165910433190749639384327696863848931022991712098348101799005290161340811142324579961344229981355085997257491437013472089001331093579366014600932689010576475827447949219596006765042401963544185913389463606920387059969494459987308165434963084832701597071455424838923009971423858379909896309776850631839951318321671377708677421245032607929522526058313051459666363654452883537331238199672407397634720605319088459225776016200635089821271893770104275327160878168736205586360522118690972594094680428606039194484085270271412258213589705827283028362796747808492063976536586731717190908920726778690714641374311272444901798765508467111391458502427335718524812417901759805620024149383188859338886851788124461961882053997012363826058614300423904144956691352454984241955281065778717978256726226610820680866131082276104589040970058149880235802116200956374582834664778271294278223127253796991883872824460982703589713440924492489214508295786436713250826496250291811457095493054266618120709743497627294731910175815405196650867811942955835075403065236361208598681502744356147276614392644985565341423012084611246335015866489333118879127780503322817380049147603433995472335038435000770458809200778828117465787610048439494783679324979531272039219251375902512947875765222034960288472900242650481916028924921590716771704469405204688650458049633854990280719536319636242826825728960522285682013546677550503696802710022670877593307352272825277815675342212741271473512544088582222584228721755176865802847039639995944915863600667970945509360365214665185540730594774818716285314553771933796893006141314857982895624714956371006580116518183472996848404230595362660377590543097999893156130412584181631730028457286942687541191213192055306825917442850803444302278422052107889054508719723868639310194758650025644889745268872846582087757923607458792011890972119380022352984865688829812007796631028540031498369976449937900392087135342422791606142547506520861413697948307574505875447382753088635958407159978409750216783478899475586965678951273480267847413493519736771087241397219732734449268291766995672297716744888932202790361298726419525821590744660903720587001633188443345459811506627637143927083669743437619042545332022231746960846219550047904026862347023852909316609560174003990036048597670350627348993327987359599093059681629968039950168919449792331918360299685259086185290857581722537968708223673898836673112493731827652460650693027793560181746688697026246936496114824478625345064983587042234089208029536723640816127781703348510013747629228771804972357522790756142683196406700239142049396929814415522091156636982849939732400412336805383052286765675434261122795077852504592443548127021906796336818886520751743384844665897647516768050222832936048299027496032615024047883188015944134529411781762383468526148935856293051292743162941924414248907647647611719376341785638519831017151311055425572649659536732763706760690686947788853385645463076559761970507785756157341945565323672346087092468093315164768545877462721193087707178592171427406006232578982463302806936926647535922681613192904064911545879964075446578366727146821611902482629224298442902668375203176021528791818742611274131349439970593023147378865073769873283019741480281055273799149638064755456537559311156044946145143781915423687130006908068400195913639450912343073023710686663306634183804307564922032210416197735703528296569734266857551782857900450774377915436912715570483183170515915817055938271179469428078677234208627947408877245851313180802519193480956985098356522363576590460800838139969256332146754702573506433397889680832720651312677374124443220996134870633398797700437284230194318051257369979223738136651764619385744841981170585863835199644897048334857834961936440956729158726468843607823884520585311653027775620798026469518308446996174373976217607585988493185009438549188872791427405724222957355956202112001129265603672438692929135461224826777913813090114908583706029843944624574514887644377309645625422640524414783968141917723833031194936457727077900136587772611494042314155948441298359425748783283148094603957433244518977914552941482876466570265386569475514366974870215016046785230115106688698416061038485355222258350300069242167464669934328033417829556479817992209934450698066867161999865680482743831535608647560162747664341409509817426912563569848341271591704041069933500556067151583718495873991950932215275306875677435234887447482267327111742099312156792547675543740491892490612374720649931188426010559729771980734982145676339753468424786209651054540456335433732338850752968175742636007287700062058449006674273738661470551757990289342963132798448448217473770133222417912972616851190084307745942559629694724888296548516133812098600727938594039703484168171495750559972926729127346265428513034362945151759001039617370494134814788494869443528352348274438164475632070932391880085165019571005127790503801651083441291044139662303947574919758426917940195034168005649360197558505236196019397697309808567595379991862279243814398983519764061951809218714983158268295810916607552790872375048639034509822058497299583244097612713460420393332840915149579034077272000003644991476620576747299808226808840494231214631116004146068355164186301850535979631376924030296622264172981863460461963901109065604318988510193018739203782664745974733433104478870339887520924108118437269462698860069981393174194894167786017192099045417234370699828256542609919513038834479622817510297108535587597259851314425767755031881654551067488273174830319266631363834956335870563938357650582376385334423843953066404023464917363869195396507222317110882532051896276954105046181584328781198248800767145877513805807030326686995538161317708432367496304986333849557008190816379324537397929502276240717699960068678799716131463375919805176364512558401331158394725456345249379760065704966036717200405459151543999643035767477886329298610814577083155613286919030954606055276824814183212083557903579471384057386964956484401046347106114610567843759317647482214838717859202155915481596738486017521799996838937962449704469554266094113909970392355113207820172096710504403671774095102432595505704785838334825274553724607616237777289237164560555446645199217467085828984494773343987722530014566918778694514102621701904068988932058413817064768713134144352370006967053940571956751807318898641083681510538016421431993625703927587297400966360880320178152916832713655601459774179948429692454350411160489071337457379963081122802766071194559869424776977420131873853487187753597430543654485457905372578539163443921511137912802434104792926155799549465759783393271856816405130172819607916656554773519740040405804882859019007890812285935234631687470318332587995281421251085383502008952509329426363704346334639706462075345164250141204083590299186985716521120547623081132153997755251786185589596142987708019508535182598490197210336592678223518401149119075405024890889864077372472252628031115692923091848465899423908956137261761244414334280769347989387181944494071350078269026342374181123219153342245603489014065972637044324274422845630475394870244010244774090339747219374119554121712417483004567751719848461001637280921033971395959957103239138855656327305284363459213803195741248095852891808570544825984330978285252347155720963258214003961637388870475360993841702698704082011398665626079689721770133576265928793051391835385191989506632212708073015702459575717625363427370741270431739174907222159428887043987010191813810797415777625411731532652117310541928229671624801989382512030782821781718110796583771369342336980399009985501293707826932712870157820995408009775115857521525027788659731770233637747172726153880916570149891316005595857340045222686215121265715946324958850537789977362070572296661502456084697895198980583160796963984775164528583183216356019673007467140415215406965529261729582184722770710145898681246824723042030619341826323237245220848578308451381539135206024195578631043213675927243375091678711101248990457477062275359538543162092293840109846971279574580075356719032056311893095655580008331034123373265547219607741396609326573557141910369334640849220210252792575430108463721263329560911026389749794012256829715303509155866297956873733742854299651248241741838812811951969747329376478384600458583254281797018072959446413843415215386565691793592243380169482924305679724372304647340924310766357621671745111255404096968232924181881017976310851945948047214418511853706491216496304307399852851768937102807649667894286701110563590010833319249129033847069555743297309585919997248882181740917890072952965065241730025649079901854713678793225830105614885435934721512649381686931612561967444877378017020281756862176866872206432434222703806967267096054629510609363073494118419616781363649244241956199064080673542074203189306813729769167992853194152065211837279600164171975678409108339787762197847590350362394360921118839893903779277110613298483965535027921501908121363963627306345065023728179161316419953047577587604673817855037881030754161165778144759872761570485484431604567910167735540208751459659675066508604729185593360640617994389105734476085249337684151090213322875981478923801693073892542248025142245049738924336267538668071004650472523446316987716899593389171708103735472855793985286424363767767862636924543477220257394892810510589777662253470616341946631373256627164122064565330505424962796496251020844120099929346532113446598742302600420590548382032795140900658702420590623308182151887191781895401356997615190691230669762291249714651157998605006752764440687994217017590310169023784032896339235642492036376856724151848823590428923753249026645029059724441385886178612952189461142311125088389769449390141558116839201261315102585709376502282739134747292886015074083715238312595315268274272379491152379026429681314020521582113447833633191032382303763878830881956449851724551344976352628954549963302584406960482831934669683039160230008875740438518012808230273932456596151649405943123305713971806665958883677592258596896484357751072400108632671181986484217657719750209812151988207765952339978171835926591987576894114332151182717707907972362137486052649663222906274921970617608760756792221634471857879421417609297349219436193043231820498812091610337791165493331866888383383048633475588265846841505589269097587765311630925523136682201914565403278264184042663687041394543984191682867744030028201112384854131162754002083675385956370939000737229488162267153354484419649990713250081735927138449024913364357948848863115975292296129830750052486040501515280433256278281904690131892982893849947628439068051474262070240271014745457052004892369209708904479318017893581353790857889854268188815358691259358803982590105430259698330699871585113321297947793041949208052510352471459157564588794368271113177068237726122963056372262292447111693973544670326635259466383501400815451448908038650443885682185684135322610664832540414906413528081263680624740996058699875807546412278810371116456293464530861744088233386456918979086719935889166728623036791964148666227732711173374921989380550366590587058026775479690788747378717688936636999795270476899545182629834702321860213210156026924175267916589975921254536393981663966528374730083787004438109527033432014782202178553870288845680793698479773302163884490148079143960217874523245712128040975817006686811845344688420891648922255878035364373465591076920286220664676009541588167068852829808378437930490117061906793145199006882206498046849301837659859718746606515504572940389725672746163430376253991146984901446991597863605046136241763123064895343474082655332881309287702166077724542495959244020956982540107147769307365771980660294136846283610872739163989436474221346018359920530663525042381459160106064190150586516649225160578510931665281281687255403833115134495559925010920206142138781057112066244149917878897495690982670822885421666549460982269042164308559861692275207783130321313669432201258138863445026934976790301276643237704901670196129097600790786959747773625216616117723689275344442066019478840588631323903902577810944461045679235355314667237913494104153527879254684625429792024355171272933849564739513993980453974417642382821360144725163736678457850529435276319744769760136832668981193018011087642596869349313103531734592536840184007666147092522904760010764804970055519969296736476925446452470798834966424164139087652349531011761390168727725584380907139895343862099501011266647906586661694376848452315194680334006429382681863909963176569750380626260735083696027388309918280440372735777024196474710334960912485160819616417651322224880932343315451760042606728436943079858709951659643332778338972986647157957726085490668764730153876665639112724757048709253493186105263237774859409654715762015265658693555029583334799371963995136433755225191302432930599193736625784630367168977233470387490222554800171171882565593412761688285516184094043811828933710341766683123050922570390611430644757106326971127635890794120480869940829868964848778265143243244510379078138984431880995600970400548745308594081898936097550620668705824514928495397130928211941439779847803463315977073543446855430705378523619777176545980315211290982392978061944632759044890196211033871161654464811630861479283478560073993218049858930508598887179269360933757920036718082889594496928146522678671280735457771634654787608557725808387542306011974041169237420280431585371316245773638232492251084966681882064068199967365391973444588924810575226747944619754202202021096032919276115591247034735278053342091862592916036266537995246510545428249516677352498883431572895366963506693235160065812041466565009286337478251597581957175365627929877957917885539980290337645711586555812900774675470416218239902695128146671384160878592286335022273792016535422966891074804319707219637759874218661275987406532739324909411899912054504303985615757364073785369173567288792224000385357251217200037767082094151259747160196702348449922729015029442149941724190814206563010433986732847355252661791833090627059816048786259735112793275724441254247602808320330483467950573266499133987746726664874552203530974629630327585177517386968628670496964450742801562611234308198820684005850380479223741871997603521451450228497912609197883951808027272400986890728620988492402425066482194010914766699494376658804796309528388690841038880309529548590604568487220636109043507255162683112854726895586446342168836513466586091938155569694949400666796163465193859360433759310811983555802137409690876967476947642432472498666900767479176522886579302908201336461808770020891863593507136397229141682969380835454012883936645331833941683464125832613307684675618556919437337427563165249544749956812862938607457867855855412478541649920299584892045866385170057356420503038588529443921081676536601833013584643502351783022281247772044212823256114267548720381777156021406118557869975339239295390748784520389510509268483812405851499974696497377675547104517020383930850162796779952978139076763747317906582755743794854349722792365145998257999113856643143016655665631934196743452978911813619070024395755542150218966194063970719447951733643272871139840751520108682918336714939085610579871540246429957505679228100414081555125289014758250927690330345487397751129705510448803131638075826381543588477808708540288333094642728127085732132797717518444880875866595365072146302914482564832331481049081212001021088879233051549942618967277823304113597485474601799532905350513813292023371400840971196457709120532256063207263913456418730191486250385542213991946414160399560413181425158631794813943884534395951214507592187387107915683903649648772645327151071945774313185138795301704807363453812937187572316168788930617052716338710539938102785805936648987205535440247173457982805005328103868776497906408797504695384545913385947335603766376861111339664155031430765997898978186640899307599896496248900367082549567212881250034044700356528537118648531025189652644999414080623628528817330646396731225587125765500010104130283094394433225581160928730356879831682393316857027131346812076508724901059924876750706712373990334615497887567744357380656428913073901817072152767616305042518317831929988750544714978972984478513100610770132081925195487061563518718106628374984326923048137601436549544405684386586876760417618360274742940462740982600848208203722588495793711638689682046733502693873843477415043134539231612407559508521295111369845851388651969788682556554476171840755402639462329621998348037971739058214437204432580842058178543853228619361280301745766094342706779579265117282931020346930372543487414473235204944676483150967349221327292600530170658088663520253319488434092386093898292554182648043050223459864292798770057261640518502995625753556293368653244369660342687436333292246271344208667740403841144708319957680803406289225222082427718075529769698209340902439999815738089951258313409350906338359525762659746257542079655521634948189809974244774589060828718390813123055043971652149335195420251145489698166655920990668718393998814689665283297315194079836544170403158757203745631575083768274438251973340338855415706568318577250490239262859129660777142815345398529640319224344933559984777493961462691862219056922858807017362182593866554107900783912189790788177609806018707369938742591169190415426386186094463574034862696821756518221546579425317172220348294961576753543927673367658374642496189103943976174631865441981227934852416426545136924870632813172651781149522723197158900240572653683421286274672139082106018783181321476175217102028254581244894149349435357335284926247592693702890500908287498957392388273607532885072986632659282345111036762798825893259761397652604103012299653956270779520269117868840731485864795818748641730552398487968279551101039944284641593953697231919109375581511372221356035051170911000204335939491768656647886352289112368486165583660878841961527888399844040310399540072547347895133062194778850570660787472153077765519825880395891920834891701131302383012383293977344201506186118602112789159854915467999166258450637614568900243556451739783592637748173716603922058793632111132539597495870718506541823085214880427612443198682860352119617134870093074980845718689606726349826569772926377428686396482547980097295112488717017537490763476430501281088014765653485417917856576230281373819741781124983008695181963269706950250806144551469909289506580951736312728638137795567627017528510308790316140363859569501325842311112503617551975420837302300143046596498092778970635309142250067236682050240859148264295796084337866939618316148052443287418349758844737964967409263281281700070663479561795212075755056031297429895698475826163115387837953249645081825683851122741127372408857307870021278890178827934142644148565435397804865698282082267535764773389681553574182964321465221001033415335305350574751320122579079108514042160366754790895191217562323505337316669915005311620389899141873728498409624657570330372424589544148075854045730234932759759496107485766412811396558581998841415664454439254083322291258219658961071455695872965895955519823768229697563403380784263261003661189853787399300086923049413936325560500519607355079374355440076878963902114775435179505640320679960249881777721600174489370836287807586056575663600291879494990250627853466349846209862917490155925370958746239445923777823715565124508458396586381975280843964142927068145693126382931877854525945738180994116090724987453288585421969164262178350011378397149748592134252453766152961452009612199211700363272804365570743989090715773206038906646129888894621677400213569307109688745929140780790002834412131714159543700788256469569883641343453289421825838667220480203438702267578287754365175141459734909424167657868770841355032821997042176890112904118557820214479615915153224389851627384362031590045940350985889386287172815941175521145344496301983556924970447178683078069194764711019715634020339904189256304338104773705681204516794807869593788799742127856163338912518353954887785175424454217212731730473768862475909012720946437508594169910052105270999227382082206946662576081076160126273439720904746153928682746072976060016521898092203143234809218204242562144104219011205502064285936680562913493938022494867021361232181962061178512268079695603129160803564245374053481607142992730699824263607945468806634151408405019435210887999941977821166288032731252788581217960635423200739282975171238517048427599251790822230130090556911038712595191779495531553680838606392422092348840469242335463024552208999785175205261795681101426121719958796522440172127865854232570033603536035136290063782635015417848807665860483165989490090046623445641230971244782781239032084468517185070936591279244316069983566908107170077315887385944240167488523339844092024287478066942230979811392711582974246076129997908591634896430516180975886683574685696405327796040564012564246839197990296627196585928315936470686996044673299650686749489870311641761304377883286031216107057482696246230456573159091632039090365029011179089319321258707180172529985511899010100552448563455765790075935396025648015605645535344989761118763320083004145213078479024954716525833630970607939936385143089797106376016479873324814319925934470230867895729326488378598410018798227612065728668064023783221630539763279391273942266965622079165877052594260284684677762982566670737478996707500215510871644842477526237963126857340129776418882996973320484773229882248712928141077804685496820096669706691760460089392917532704779405587289820324241942210366379587892586578322544257234339221343734673314615764833379487968426111625234402774999170639731721975013375577029511062439867529129757122749602112592199262957611683302814994826060819872246065376811901302606689372051873906447921001898244013808822518552289577331755977901802081719262901124492657238182780798482768670841079902627545738721528733162245256622266349504372257782833254929136252431313942520598876419710482523366226855471204670396627948011133567798927093552539370500121195355952775463948466156941649238568768468595397858998764901378973592924976686159176982345412463554237453439613160149630534531846118892708176889672285037338592865642538437794912538140144760853036442456503034064923443607343757415139735677137401745927702737978580786804037808477440996245475693647165185271894551770803176168247496035600757254875442312516718645015984401353450435986275147679401087703008670477267971035626806586177576880599296199981573056594166318263634077042538789413290014916513541423684338671875284694514689289737915067498417584780356053041427441181221503078412429375118930638439745334102337603970462430391666920761255087117308681681612240577838294778481148716507449912242456485085347612932685373479512874497860342736556166866009757447056202292927461639948137262817987960339176236916397531934925064455965344297264382909038820247429088735867485246465300968416273050519239030033892381509315882046253679034486475132192629273269235969829515390717073524549946378036663140863433234170452485230108659084973683201980670662348184021643571996437223097430241493488145827260476177558105202522782582379830131221514663397060948779711236615015359538417271426885707877303937784601955254785742918082670453624525217145936331832196418760747907223107820348324675396853729304503948207810773568471252927827562207759162107247260966653405489099624571104167918075896241171407230187017872980893454126962240054534270867888713961606939760366451049216426121314917977471633913199204629521765827088071895328878877577830603132325966364676813866790932521771292119088725890914876246269413878296436833560525608172305372939802313986695111463457380845961969439221064035182061059685629379150252873102438629770463722200647349685193933473422458849347426480384057002386306499131411807035717576442826933170806771140817869539224395274442239682096674482401132925969626871147340252384620479927082909406304012561830535150407961989059091937694701647857550246466828119420769431962268947840028500613473234866474391106688983434773631786274177722442175109022809577232808068119003731711665083025349195657508975284526685095199758518896577495936301669403329346864789934498129283410033899225843963263185803502793939486112801408346349698719529052422758064662465906153599919506256803150263272379816198254318860009302751718685295112757909217212039863887364245717263359450526386646940422078332273366456246102974950291149513184749944319860091213369387924461045293459356143413888163399636813548617202839531494433927148699401922359103986935473870425925380747148334951181827720703976762208230051168408643444760094724620618121359089170963089771676792412581935498440889680678553395910242935016761472218515585298020059287651656986735780567281104023663535805781142276104228378997316235823094636513132245500252431035607931250240704332957535274362065817292965184441564576133292640602093115995255095567924627855367527411557398084003394395603138037359907864023588912122418261591410507477733511597336361974059471452653198168379686463282604952815775521842388001456511738669324295672939889459772389300576978137883954865428818553941555047983210899331007616915782423476450169992694509005590421400854740688226075717105891639012820043684467268180558257513724782861739055222399550988981422611118597335699881448284628681467223967890674465389015766276052389208747219437802631590783353366475592779988129436258326741763448133245862916888741475552992177343063008035899821250031244870541450145134289327394999641478369016971355258486184266753192516944815798086592866798174280948637435072199573892301897962304439676985223282524372331673003210904093526096019630141682486046334610784455501303699572647741312790656569991577732023242341679730368445671273073042423937806641930503273087064769837096984174067892452743897826581129251980637275696219862210559610891829799068126908163601162243486784811987635312301028582139737406799926137032947668561039336956909238152635525778946936231468874875131299255181257517475316355290646039267428615603545123288307557272299467513586362189643111521714644755125375672453559569212088588245433876511630983343164202399902935890518100161138398422442760414684480453694509865682222783579963974251142617519290615150911849537692752231772710132495391952270748729760676457529924764466877450644582687363094533808492857665420316977649002256025370815576632903780954909274645785257832589540154629611287171391304282073273991314635321186629273427991285038600406947477331264469479300331852063286598941765828206726029281786075574523007812551419956553063761455481596405173372301571250511984236088138536188287644726832703201078598717903218172900495925614534928691086697585385164994158112232885737229337978533300517944754860686532828987218721579983788892830021042448537432554235626919821110985923631321294395198606719627760791433469313317097996117493566032236011748917130400084889986167386695420295516910872890560316763881040755880785474031122919078467662992310671816838180525366475008469521935952537228611122700091639374714131574437704968368029474663788547094059631018295571297218266445898518589591318277412472381247618554497518537227382852854378913403680423287767484203517450815761347247399403697622773867640060048763742691264929277688533624771141460104428530057947509739155253126974973522181844336076069670939140748163408430826688130906761754435649530811636777484513521205223341483569926657245871681995026434986252216463050497543707641663130536358361623840021821679025719428064315605852596243822380462740798112737171556465317233378333912865839901628200263970342141142089297193259494219564921977623897924428997751740996877684358426243058809872974849318666550781962426534157596286289896926082257485836229974597343407276390690660837871300646871282475989201723088999743421266746365871532421439199732212554012562361057622246870147195863460603216647013845635914549573987645249521004373817782534716790250832759225848186755508390378643561250124702631552399199489719485235060719944141815917591488418682141191336333499530858224558131329591572058225944556969056068845757634452287233898730070604503001142037107879914087078347307294967743765484372023727765957591940504152096884174068401052685458933509650615623748984413972903446561588277700701823491046847138545900642206165233461531319348765413583252188134082020164007936571052569313245495199122844013354115472016533871217018492094547060410388085203762186845740282277143070585667355138881061539175298483627630873579713073133225721681500822598568056132348277352946743089528867402030202962059609403330481877652311314877451834561040831107226917527274631694822352598466049872435480691867521866579184071564003866242783107901146272482110845497266862935700861752740914294521452687078826182156853832145066183224988440527349681547785851670437650224512710525901221138880535065201476891488569123275165087967529579979752981760354988321677400533220610701485645287523240602733624122289217519587876997653269920312314926643897941510220670092192643837392424126726106460617566309182958975846618964469821725321189399576981874851276204612525753849920488953400935404377708520553620996652668930524810871513078366201178669146148246487331919648690374181708981745470073420002604747641228205474454002738270829643630835443562550583537195700608119074161187970243631963703285230360221852544635147054037808165014243511849684229264202232829868022123859511840516407741481222944379342121659114952734939896906857204399262949808993575786282591718994908144674508203048231739809157136289840150650422323119504575252645494850314386994234791162430333085781158436372938672547866435161811805653485215480444468471914482004260227780966298280317683605809468099611234930254642309195438424769708946854699201682233218453669522745207741220356074363963246028225408264895436469580776086791829354679912318561968184598202266751042289432679505397666332070607992354476732138958204634589193269865315628911844029698928200556119255770490383367234370556979474388163872782051021404437395819984126717494329822484263151791263372159444084650267102440930248600377283754923809020434600001899284615391264115943786130274635435874879229748069218380854078129414625401369236360743387797362347104633404590764004283361986875884161960860531312010146709702379990068488196178558386848877338338200343471337273113933084523994991499433745338145425638203413447866355634053178058552591923079986235870829200294189685148813474335937545252113437920397576444711149547292574548496515322784762965228114698688672373985107423393273998929967096764881574704090433268814158169738107393228598201259000154899002013968523712980504809707314974233005763145740920558485310311404727312793396159129098249301835555458556856142011343601598771415934537344448035386634344612869872576296560746658880187016466449213419427215849280292186676530013138532034820169954731732556963897920245578996084221862144576893820185279187533239364540245998214475225646015422585122152801366859617588081468651435620742074799257332027767705175855478091895805450545224532049519186810940416787770726721284063714169570034311273088827326025148772074998109954552731193728624674711965475007885371794167366695295668364253263406892936097435153277483943253031556300798361224204433459428838658073435431252003252317081290741122708535116669519712767010923813167417054261440957630138112376001627855996169236875632527648982457439827434280230915903924947993752557902731712201060535412431532905351575842204778177664733921904240342640138809112226684732637031214451982485182056745263825172271377776948305792650374630832976195539901840999315539211411009880534245720874666888767607632653727411736733150212331738685886545562675628201087197029147509998426747719891592771209030052120438281876037107717105849157392528064406310438149200011483289017188132062872784212502436066625143665838786784310433833116153852019658627607781834069956465483404821184568811546989370606465643023260960447626644601097923987542334005563189477669582596252147275661932704077186351087990592488218587677039685672897412315564385843897189716220489646733358408847669364081172769700011885522496902957765272543100152266115468077895804069892969662347759136623620202013204674613136151187151812133614475000483693694513713658437385895154744458294692262503646057759152147496345752455859322222683104022932734682625336332893230202328473810967362546710327443634929675343252338359498808722917936105494475121299868978796764084225631074732304876377002593525357156540236249710058868389621413925273502560015654178507448011611432629219803718615575276750509099209948481477820903122089039019640415520890983491776382003657315835899636998739630279361446141748343229657277046826449523931267439391571696040873460430985466728098415563358544636813423673147902080479975916568186564469188371369928177854905202068823557872412858650957735804319587875616741562080008845613280436894222177665049310841326815512695100883721495263925577236610371711365553280854610992497185354544601576537339721838562947550687988553606875596178902175788446733712471187296193841506619872672775898445991824763531890028001216316712353973897697366045799539184459234562834797287257541923700604411844099560187617127342491960998714156221170108416874864943750023864571205138259531210506894788998799528862681876392470923646848269198103082311999677335751361767575648196167492148930701248507717612288471081502234178336918172698049525469158831233450961090818092153201408697162050947998678108716580753111732050396253959283460094616476282682799956627306497209416280199185961179476865240602341060462867623923525761722709387140634312317002091081519043831287256129089108163256285894494959990118095319406582003485301751708509599009299694821584694474066245788853544138132536427644420876552415544085022895267474926098874568469952416208713307499370756232542322401249307002521287971396967539246325046143943751111571288871413118766559797233687982739583968959917654969710619847054532645912939041285965677132215185478223855994933805371842892161175808596793172124879241075734944029547402697509361247592172657039134929499333041066125543362590132345882985977537255273077429472081297237087917504534467425681494530302742309514958819574250759999641238540843734706027875865056876750562503168300551055370660890423650204002824372686000948685532862684345842686696602224250309760031035062019930040816098980985951547325157957901963016037028716257788287497542329087115354375278581872419648241683548885140372460383407025213746773647170669995588029554922655340435093379311451771513832683259217935497013363152628123400234606658838619960184243095740116890042111393991866662673099799530028596767027691904721190899228105283363732990356880735530065698400038607209004917547784901629175621430019736047779673507441439497585875908937055557539463393351268339409812844743794511699992920956405141573777562276384081006757630512463664602931011828101033217073935503569396308774116722677793224458828909786720834370667477810314802139363955037132389814762367878918837077935014052145722123533875267442274700223894551684197886086428731053013266172935308126324026132984139213497718189686109980249801407336161992395142560733979095653418471959719656387548281811345145602730224362086615323163017475318353585549655704907761989470987141742723983345478217308651224957767896361465673695458855020755604508624368057997155885168870364474452105129672739741637254500890984672546664672526524524650976744071491708215915515885259439675409214093467521442178607209723307279146418924803284810964287304381366734206659671521263774135366285937768572983636856492429012420760123550690466116623411847135535514802706311842147871636504151253613006249975772376798128006141336887621866482684268212383665558079956674326902413986120733092463238926848081350072478511228286135229700341634616876770749011514837028127450321322517058787863963136013625572779414936325387953141991841783401999070812758134852405081307279915727086513461244691505980805504243190014167358405365836217499682238490179894040602851234002398829051894308143467840531577584874555935793086532850236299198968472072303164141361382176495500826333380230797531092592605459680572290012749706760142070130380932820963636403058907384875141268683753422790250826104033110374322677028487364332460104131488100399336256977282096771228663042135518001334528323429532823579317892196266828428385219468132594158259029180327856221333414392421793935738375214230567063258570294826209021815123473106549384649301718828168046829747876595854727816397985844152813061815523955482156903982903468915834457956287714902312709387403486207592718351717790605481473807843725618988987680080941858656160040524394497892959237585823817258773809755462225430482203492697060766156397732157314553518349725659406602667972622373218828730708092474308332279380936179637987146612782967626376412491779792515896119769436413807181658018531924442670908905537659009891455022048495752013116522622828509483712605923778924201843014697183941322805834844739168449137959415049902520376744100209876965088783340995355099909748706510318122283797881196550442502666900979935112462435926317561175022954712278923586066268814567378466691614378627439235331047542932084288236146318813743450381456096997480303223473495760006509427297242481170659814158438430312556823921117966225216408037822411353921592199523339463508528192713176359399800452802860476599450191106327906594687693856528698767394546603953867700425796437070520784054313164864132178402546735370941231135433153313737954303640580118406512142876813208257831226417857945938658283943467285137358816389318194712271760342594050887012997834280131592786657331987417381341584010765404117428644384180599148266782356367187552069431825249772281640445787767272120493569952073021891045622502098241287536782727464221847277770611864061379253391579744909126111612429073012532280669104524715952411519963434860264962130966969844941262768281236852112156135382917981507765543103106998139643684815985619569218274889414797889160267288976089331111539633564075519289808228492449341773412478692939531842912234129298051092284287802016959662272816184375738431691108620321071221105027363165981320086686428339746902957265975967044399871850326603323281415993760712383992969674433265172157187645632402334509704543242186035972105098191519425681427604559379103234895328977580586440352032608168849027976726527677707290991016381727616467182145582968012713903196038054860326622778978241579197294638740451871083215475025356768417151693798215709720155349685795930507808444340397534401956175090041862024751479818669445071718426270613957467442308548497216194232529598322355967409969852084190568888581697926841646473625760889170142422938437614809717405395119517415677457606193079448429129975085415922610000599957943345725937606636251768587556438295857903657570760472038172924549955191684102984842481337612465198300513460124839961265163995270238019265324002458845937730097907122277237637426756549280716707330822721195107124596878958898807858139985188139336149256408189083375443261774941199739674575389485414831851423436580543014211848318336048789276863204177809836440098454647921291965420223520717953714318959104842324246274671540144732577213281928231215315830203438588633593695101213455932252914025064847247674990503721070241743243321379105874565971549491646078417626419763418164484840439207328034702191977783927737637553776966863861543742426273427198407500259701236185524219504710890018830290959938574368402338178532085759961351438508105376851115110948104549932231407878132327110090292626789154052849554922491864043403293124895586869303520052098563695704262052342383001482824117250571890462297802843221129752568490765182771758963796259994458447548384815298563804292440127579190638169904082285283505132871304216307939745854284388550179748364647399511577538215702802795379964112148127474198005863745396666231201776048765166787246070031039527272308977885564292327327062697595318269937825144142511431330430439029823090171612439255911106745545838521469040306230936531385971482737157597845751457523222178655168812973305802819988761594905505235690477917219034274150828392933769898496149051572195374402504878504915478078036796401477028322963416998751963007136805974320672125048235804544876416527378100357334955446263997827082452806308123351850561254088951488317742077292893948421719021139730048662408994310369768104000647450180530881946830491229659366454836826155235294512568727821487849301940335968156271324856872406338420670497306368984797655634494347683865477222997127280299507947953263009038318064515174774566666288170251629165580396839311876039040517434857730840168825967270748555037553877920575949418873008827199922892487868858191633427069794985420518769090449097713529687582610064612470261019252590028093430020369656140917365917129517098485790130385150180147399389740115156542804854734017705943901070335002691147114456819008148689244720423237691534963527117867926755797445865478011091098220151400237884838697665301403831845030776523245437849044296772400311154202224951226422934981448461162119908746871329601149891442461034163996513165119350498329796385456723121186590189631191223675472116065589052942250437612810206383550205301199906245116261284940104107245629764562037057909467391773160941990357480683325702695982209627721437430972143533515396255578011857358336812267740931132828339382630762766780424201300953332033081410396320742952638815887266821815712716059685413622986067728283189691408758929252719448598747707738883961959820557080413751631356282013501370425181175258558242243039107678403115096013241066467075460449135928904714111677547077286224817177337708645812443391287604273695021958021576819925116443842096381522542387704598978418618010923724270944485607833701864315833121342764292655655989421601014233486161523454756439073540073223469822596879776983630060447532292596783021823144342920079802321711004564911366567920291959898587986821139627666485082364598074180755516408602202669552882092706717639367950832059014658199940825554172925400505817302572669620849634712884658794663186006598886317877940514515864753756978341683428466847990810838321112133956224475060847235817178208559874267587975440279381822191015986570222656581886513535497042522473581191883114981166585036664761824095249583814207464748407873556020472695313602545120907049955958835547893321812834291155690954237602913726774594196670631388742683258628788107490687270603892053882479476350099213028842894951334091042170367021770399399788991477233658247317599194732604896592357439063706383138773955100216823269627428834177092285386124316517149466317283058918114530805718164814299875207352313608886979368100916127414718949075473898363539723045181838541212836880373874045286557655078177695604166477899628177929695868364273973993766991550394948513056329313312374689809515535518149404447426350887234614408458203785009058714348822932190284155768892178068570394555246107459565454285898033696187255167825508134277683369544274232328406134125597928977468624465901359529489443635150208764909117211824200903835329900925686335826559967077189881421556199180018099640353406982732801559162398111050759158547761364233651320838164214023240481904835107693424165110593745708767754752787047276254920783064541263135407730220134074352876450644651806211156121174351594586204076355806973598687384095290451589341617717563763617330485426789410015425351850035134927829253373158846232660782123712158497530037578296813827096636611443608952359372995233452677570469317690362009314581121010335204998091973165578735865447649379905538341242288565825416156210975184429488052356175989206855898118060720506439551856722640787158366254721200012021549599562842384982358073601651842619105089494515441335689486118473279558413747025348227506256554503578473521247659724381256367439427888729860291081127799809605131956308973551616930095407106217452790306510207275969977018909752403332972775399989410035356177153997689796887109674561024919752383178585519525869992670670232473107719790444967385463099650717408955570611215871324179964699176154379761948478860827216112083039422074235033818012814377731090193371975833113958475764772625088553233577756802836799932593429552778878729437428209044044874201074198558463322993657572314137217609707495655754905360434613933170879544341735319571285281213277571120610099968338907678520161024443686056773570734043841146625125441768690585466511810629710336164391961802375086517493763846764936254396012014781308839497175812798897207769316402628694708489737148261465704505705606389377187243702995409163625210209524918233508105392875550751350823883622215950243520734720419463280497967448297767982995869153263760697093015355347462586019785712394774233913859568009654651442481439757971128190890857816186944499092865196453305735525976135676644255287257556423980317590467488397241455816865660638543564547379666303078948556209810737224346229050657285613628366619160958487718901233197232094884495721361380093802334326325860847044057307706429306987255975391172178133267716171970114737214440385368760498535659521072762067845936396789974013464314149065720361414621812217097916888973820807501909915011157686822821099282550075406289322567379376768957132478532760292269788396361802276072845229948032020063231248471699470855309360841284933155823774477273877054022942491241100725030694779841483850199701559602250762258080586199909463363558874839591673820129051824924242749607891601339463084848336274747032299281281489557797583525860186448289651299160102149763179302551701428909928043070682642968805836130541824078429188942779454646669313877665528341753799032160211233988033381681551490042032665364466060329409197696722110586363610644244575766849229814120706776751747115130492513447080436440431706472049021798799318947407486949038471671750153507558398852718209149142136525091154781698352569659669786102621080691195927140408610971310188394736008654357042824281845373598376905600847642234305160632461028051664822326536655292822358619326374279602674435430534155394869883101729235581843026094990325267126933830430654685987120071597160115495295472230129455388575732317266595718686372540127111071664807736767139166404918024599515026880719774296247668380267599309376226699326463659468156591343830083322589993128405631036027818555244023740457633264486864261405060347102118993313896901226934303828039811268598801693321393870182869503711863951789428093604063095473859354157595521280921346845134800285926289680304797977579089265230653403138228786793197579146596363721294902015242045981322160986120605151307201492213928342389224056700441263575332319351087151982021489896827216334154169022470281675128128636266428797024844539273794868949537877695492842953229567944335586813844033181182850998615520176559125130422639251120778623512013515261550145399361096653254661553634616736553304802198108489520938335000935482500665602579553528797424190117774568927050595943116411569868653160296856012587096507271401239827466377207772589439475348250210633484589357513511625369722813901694163679273861909015081771671864473279976434584498642242752219362024862906795808185577553963000822232756858605472655467703365420684571467356506798935010596613347965678984280647262068967991205577434577572148966819415143497400159513398457079723620513902163418304367190705261658146017057445516727893225464469149980455874015840277329535071861314367130477962489006928674416052324483526767476957037378607103370674681887203362375112338346554448939335293073703109283824274104769827063160602584612244297814097182513581267856030133357353081204177875623749081423060915086324715862650016423003503826747702053229650049028485152372488387795840007389214699137169506498072560458221628704060419103975869653884704964901321172649708403942848648588710463950990811920258422932112257121061171691796630879430861426480754432957577868398351899352578919136905462299009503828585431264361656726613573593375981864766080741782464758918180118820445357542087079392418548663133412666464310118199577959620161130057419077206803916686314991022147386359662411891396999043170414323690329876849708191076723476943532958206923974136516132131369347784630049718353659933748161595086098078569653767537584752554640474595949980690018221210288529210860643693249353888241489177479606823343429068944834831340218794119086803022210659064237950413498073071680523383534624558849601048905531423485109991590413189373953639414426936172241189463160814177735075674899080029972511890348455018532536561818880812866630245643048046996935554717430723082868154323589467684731936785609151678411516785155220157813031364389242040245002729019436639919664196748753049454126532091561450209259405788335078947632594449450103484567475542040030491317872140734573285155247175849402651305546160462087669753656366674011753446350161452334480466278145515779110977623114645932759845777540788206835676998083002300469484602159324694171278368752612575336796899321060141686874854098017413328039586613959295057746793727577482582408217552141655412773602919371623316229272479342544034811796576659378842961297803994766673169916670627316826200931491015212653950269650642099922255717415209307519143619006151728441656005263804010392379693103193319524345121199074025420797699552156602821637922613906281104693185101439600148186894124661756278984811700419752255104779302671868212882784879447791620406391077955202051014480647279928324293677771895294689191214477313518773572013296106169052340153573321749760900239271768846609704397904474475112777684934570537938320114698115916392857628791044992866471313475586467821413730978740917822206730076371821517697302336313465133865174676577733666410142117384027684986220167117228011538955776765270385424558043006717506573317185205769618611425121961816171860042706643676787797076495672024318725864240081275889998355422189006701220007703132793110754062068911275991913649493129963743006988377377948510755558236494903252795796159536903138202111466651642868431143869661423414142808492790942296399919200525915321711785058009987532075900258800180635225499917389864564423910522484370305909397200552137728568355291954596981985159956826243676011087523349817449160904947795690450030634249722786599807384372827066389075561652075545969152929306568662814567493979919997486368531748325046100900926069960621493266723529045213363115558023986107836109167689940215729737877637128294747232824939650786950939209858185717652092985032515247381080003469489461531207439756391359871082791797913597443315218912478896555432172581106199537292394201385278142938948089122054579610743748513161801272502309895336368024374572268969088707497990777642514346593151562607661247848006610165838942888986033058099583137153615728197615771971061735968026369238393194221429634880890376550759977381250512482305873821797166716946830276085045948261635157350965512526652019286521360903843793992271179614361887844728441852944253735635616203838370139705889463974050437340254984312553517197771224593625583539687177354781951783222683795478347064459019708390636306377665342120462894601005494715976166590648915409982151918555792747153902551314430863386109003633344715725021123314617874403389409429272497529801275461696484745349325907945029294491621408053373294024946519245430439245657462739222173965473132181960890189945811406955938365258405019375817285290099548954034240154685684918613475689168542596944642957879359841249577627799582557420464111492110346138892810260816084644849015203736263331457621443809200623507981792746497645514200502482845589296764692501228013582581717783634290222456969830333190936255134181414241118922951192734792671178668524514708192217339460432049219920990222767932222683548697863439314204954613234353168023897549801480428678477872199395057400987607022741437616252880549292002876508172782355352135621352157887235689918013350972373549599103578026265243743616380351052761080252491082689102106655596465667523686111432884537707505373175793514191501633944329708329895225008324401109622774181155383302257915940666875649735673480072813382491188678940402384007003837138352865933283883137375547632886758230623337451553940179857725628710901443785773633899762744234574064157304053837840735565135035534813242101896307607737643523693430487598767568282920897008441279976733999500937951169680717781800762088493577527785014240660290378964331495563630621539462937181198964166455488092519878601804274932642889342854265886352845097176096589380464407505936381179006140461464035576267597817096543250240789523560631165101087672739545020006016653199275754441317613561760361253651402884962623236814928289199566926285322401136397000987924859005950159699561195609590814969769623514086266565488340187653438007432637457574011012572210492089901990825811451951642409951819296575678940984077604525296380103959010060597249322560823152492060013702153874845854584344775657774923790215446037473433052165174020876435829877638009825818312933130979583860788143334706577583065202314343140404178830869383726541913015578698416608164863775719214693034426141679806598266897364795786993822643084091812479444948232385806683988870386878652441761002437690102249776858367861159849456342799800837859300442314224622550218878796663707917732458138690536828904084251227386085604076376412936774500766036029683973568061381592300762400357064319672648153201845023698321784209479039883041217663443176470975876586854385710244816057639509490563098847524095058110413268344435820594430789852600475768681097123307009501812379688205148643780830567218809810091629480955615163001599742908839525231421855374885593339568085324037198726470834697526181415012774915121920203578361146761746217718972279959962448537428798454644329509577758945644075115160158512772759922421997420284799538929339868428802794480909666508940743045868857430505573034830627505766130134586308634178673016278646371685900552559146515358095595704824941416573769554573155774757485282470416174709539986025175612719231442278320373470061479997303940089722810309468327532183787797661258375904181817777510035417259101509185549180944777868528048871279892050259759581175034854641987594883108132720865305583856209443170363971372652926371174139645720255384667363084100878679873932389323839320895329713844557928737351278723815617897775908495437327463543215292236944154284032234089536553052976271321153211760989052245245751948982216351088070741458102828833593356276596368917643723740254650138332899628914033924057185574277538316279598322992354647191115919311132022422188167721810759115204002259750854055749582431216778850496859074966330966297535356523067090708266654171431862480372372828666174682026850884979349770930018969904871429204496515235460466062135490476741814635811733320316850581072643631860109614907032994587068977627615357718951008572750354669740113458594566615994687999396952544175075509305051495956661761452342314967541524325468235016848282677837182861869616697685858653638045610995033477828147572420806660330907813726499021606838588571240422287678926779273523697043251161126272177412582879709610538142115718576741982440325624127231746575449536323457573514639858768777873214352367472233675468999617359308715590401517552045129564381634571759756643613423927747499853391857837469827695922689618433758089024373302299033901361318205394695616268411960827359495121771396777487540466132259121605834202238088180652121678555731868581510838139599237957127093199644024212963547904812712092725051355798327810845652036796466563760427053307600035860848716906864901880096373064419524624742648846255313147262578992643177349845718364296029614376384625418052251958421810268353390608637010582855136259919610901955715047082242885459768147268817517524947639205520815466473305660748918547390411948188520707737258667190362527818369321781161991695957543996494854138209877680156831840505981388216172019997233458015786365474088426863644027460053164989573744713556894929318819128891749746824191543215977392611841015140587182696734293841579385068850404249152425653048892319213114832311520446301036003090444589211995372568963875312396455130118963478890845032291254019538803185554790873849863992928832223874600824671712122763354673276063635343767387311401882854867791221671185893859430428546580011137979411304066549391035252227960807798677587462211039863894899192438952989469514640526468876039636558199650202844858929586141169533334241761918658298245956571027133478598864194728038926971687449868948890895867296271547125503695308445335105989286964104510789098894442467393935865767949645899749617323403656380607869734787584393896467882557706388845711749121104011676130901764507662237219208839657042403924666174774814906071496563650540536884718783524431887183768328155550529762850417671227455240901482314639555152468669432690273610064472987236099953076484317020015550872484299451981852003215920211833230569979079679193780661327480145793552181197056435542942988158406033085633271629135057581949892601482952820440719571950059427368086920553844525096382320883961356447903608730715395777691031322198191150048893809810550454196706426274369365182289116280786318576330692663183219709796439234700383102898893757573549161910426305884966722626621753753499124975302334004619505051969513557553566895195728508805254774454438299100818844528549772083649256255707850204511212491723638763538475694808088826462225677524450082793908795286312181050253834951133071055777228715752049599710866627271354819766488654350439941209708888884668709039303369871116458906404243007106089967738775508492181221277830402421667656979096907566161787565875421112107920675810976881584991722446587468849393800144414543238843407677778057153791389653500527041907477680651016938501686450259709842846270186666511106900643439165676930013780545226167763722775944040627512654854621745551604049062961603823848667397154117115521758692570268388834101049178268467457504315185610709344617095567406519102462430660471686445676499143281507441440519552870336916620819927413101913218372082238002873996781533382956353043836842264662028763196613698216711264872519981625972927430115238746017188092572684036069392978240052409101674979727289956405138020343137224965515443798906962606471984947775778319764915350272270124788339967823089816423602235799183780999143867819864555040446981889369913603014791181052237080885148697607230285818639464776365826169889744931539155754299161269878644389344079158609467740097575844001313080302869389902953212847265055316005146901155793016929315499135871632842511036761297051610483630452740241010141282580123725439008665457923207668566598889459278088828084013020834935086994306287932749261886468771049552221963521444539264888398928866674964129263950683989500190240295114625428515319872684519249041277768253647640188792686889417079415413686970644152783283573108103341811258836764608338057380898456150119957378484696814084923718477006246777849793569397778966399890103767147657024040892932776146139964227823532107920373591370689714693777080538516101483754530678259449468578919117809069337229902261404909913823500497065775619016796768826700811695094798905588438317646569205658880629463329564283022699640109452958418514613559749868163529129486288719072936671834518269527941085881356072931197755579967971030208635667095589454913693991124937324524913326769459495848419029321575469911696048174087704182306291855691558757080343664079307126159152470070598056073075148324782024635453189262764217372762828412570941474914193161570088321980280694455845726616635538488240877728876014893044743783868571551420955170734109456657729170468822738171435703283251161593228518436039798181572348306259707180559912397310374725573682004199936897071422945776953627636035303918599041687903858116246239187642460158729028334546624147105378995470744212929931477558841922196798864974466525974853161326685390469739127957438635947392472086972651640412713414680764590530125157749340410626012340101995632418943372374581789665088551028762291480830154681013125920833468688558756409854401707277440450566574092339089024697912429931196622116423048840361761309972882230911104580753842162970550783267740611870659153635625257065285535807441634195136780590098802371989373077131765814362651598987257573888720349770207359571685094898976447628087898640943336640681980215545606167072694446969793408949914570511565367717677870172867717244458386419300836968971582570421418573057671400178269194456925928817178739903089836817799895885393849094507198196172626004669935480767289011042780078705895487582181818324695355852981715757184589247450957691790247844257870430859241316789978486808816815118087942780798165140748161259820535306585748996666429085374681837921803269446937139747237070149665244469617815500060052989689531609320145350782474046841293326834960175210682741308715181683221597367148797436738647749891638062884076399814609480793616998041013568726206749364694407237759435862949936134840387342592346253540025773969576783698237127701699088504930412290907605579282366893755574844730576694713272579700364384716076207158949676087365518039614052575217695574354421023029432837196931679375609145002536526417460103073047074353381773198763687403003694015545024029871816440093954791469522672223094529682987319459396782332960642962388313505634272130987477105482410162820037733577069962075308166453501606737609617271939341417173094761359041210966278925163606702032236190474520831736082932884743361558343364302091564438206549295347006805216515292348517764757116202492248208860034475316629967762645628802197909775037404487523739893114775075517242925556775575815841708332477834191040331427093821939214459915230639982331816155213587643030730701992788595566977217519647865731185656459717517028283673354716716142523055126822000305690539541586115040334751722119834077602574201646270235059623149145640484343053660057501156572668038115996402646440214000843821127123972819125965158369370161122211937730420635573897512555133122102297781244515698032854501591928033213229606633599789821441565423982375175589278254705339720167886923578533882936511806676783987832438409361667410117692977359725257465739400183995156913511629927711989106844709628600190136519128433010540312297131190806895708219119473158553779850185833170151650522492255254710889159398294925658654574921758544129090364782847591506217476436852633905530840021344401660154385970317789552599419517575751718766168081520326203588336587017307857390648209578608154036521879251352147847183913105493671389355868593033182596280016432406699617238806713286938922590367135936722371692264692556855091615568235158211714445034229562328541355787956406463472499988090802733404653062266501218447414920943180075713154849673115831110535444309436420647154279969283035405945917054565044962990918605041341662539115159071662363021079608531848853304562811343249948157333520734403777638863146260774538352210100602210214664519102115546271558685210065986030240050363854337223750091124338906403448419045753708657030906356992366163184370513346126270877491436165742893131353620853929121624287745148229944359926497391360073852199321240214278115424974693933576881638695898872996065025205635044624577770107552136610819971833513041211505028000822174735383588643816440221098214939232283758015535660597115146969143901307299371089374601385030709453111848452267153557171363930201830173054759495985998005033475492864102131338629280537703466960987457073262849263818905269111311371021751468157967349311839953127508537090315477772811392740986757817463861727547755342485631245160446405618451860090486088164835956933948479535716061464248578553110082729665097327975478240798904742291087008104866467061246635700358555658213535670516955764102407864847966202891228692448573179791614141964893843776563551657243864132469577977980054050847113164418605619115866091861749683853470756554954310520753356494904978956443286739538985678739882885385172977628029842441240132150754983501574048165468776569527489176424079360012945152180177874501300051900407172171469159584118824749440103538924488740648048418119474128254815221221297897929852302428064406123553155505209396977221112357192686522528290358642518656235589084039839416296248532808167952475914021036956983713272822208928850236628421765160720885128372109595277311507509261640166142963691061700311436525360329972735266302096772803945924033029636683573677140318306606469667294078169734810965649717893498944563674402041575050472579161936325893105138105775857942803853440438216362879109619170776803223272489565816131130294150728344388859617251225089028747932007267519445326794179954302249562528989085091498691099175252222671930008632851332346132960114809949086658561563025445151839642761947330801841167591583530325782584642857204102729231605009814954453169668963055675120658079292487223731177832084456934633154902993108582717622690372139824980374617038875564555589170089039493037327585600754093592451546996328286621540565996586704831778235398916800451040737441245279454361676490246517078198999625597212430499534932535333900194213836782853563049382658957943689500218646665925616077406220043084607118702273803872067989879424565776029125306899127374676376028145475538085350220570665347401950872653726449372308266829520991456267957041773548997373273842897098095640545572094442998824222567738783208867316057868630283410918812667302909702592969105321399105276699536810129899423325828984699296868889284844343334002425456860403039214090584644805218789803922377840586110136807639043618945442621408336764364682091048257641299315841731147696050592710400607815977134014327949928648008683927330664828578745646727942885118404566071852360589704369498150509282674738446389683564081337689143543123771683688292653299341297304135790229938355848794214612777714782011816711067416521815052429968655540298546000766313705807729058801140215789474575571660963438944289443082877598120001502458010716077511197576596689252187147900875225676498217451162241228862106719669685895383505200374244097452107316643429772455229660147862663130098097280399848767311826518903458927090967672657887112839951328420968261207521600627237525326546531160360995989272951874242092868221076554334555961490958647216492880147232369048359392881791125116234049817631910733689875453005982992384392526429502814158180004452269217635958471642219314354031462293795143357106917449671056036252432678433848606933192916749214172018404156136700901237385854465014604656522635309325712136934538530393842405005480884967157218092322211043782953876049193701925749918440439568553979929756935810368655759736988127441852578190201090569735066705157727280683675580153420978768814326031822722810991741959026855228558641235097188399157096234976393141141301518585737538460934291539331540040505215933145156550846265355922603807916879692834524602327569782891774714150926683975674057364727393371370375661343599775711868448582663473995249781332044549970238404826912561649161697741514686332501026980031560180065154707126004126020085922593822369416495223772059087349638150162378372916352423438044757833142809663031437159766903159185813649669383738432605370740604043143411400486274163746114661167868093506040835433558488862909114272491970038039104719123485421892823686662212660567327902422498661379698889717175761633290744742882187204414910518097619450690284184667395624325920614935186276754920261191110028466677918858195586101415035102210582889295110046713834027973478105693953861948140994006720905616889087502677564897266953229279929328630439956980749285002748223159070401504565072962882449515502973009517652605483457239198533683845076116735239199980501530105532966872609000268499270426780035480569965676084916256855216670022301944832473567221948574617998788774703965199854662976008729666050096872789122258652371874336122938731201283261275363020381031516222601652578952237273421985850464361446489168573024883467782362534190662487771982785686548222610459490632826676701065310996524890688114689622748182865578774790889371557433484446988144844034073204809514493004930621318422728167391470032662565466486229296619931434388987577009173395440121523301244362933955343670453676878414814736877229506034431920872983035605044058376884944369849840256951011039836672653477499836205171330614167033666425109794641032875078336837339957811975213630898228505780830374481001835801719483067046745402909346813545357595624553631521060704938407513364438150339144329954472396392087559493029978715120144138232899163636394213830218883605108294311472255849885409333211879198345629571280886107317693068115109422043750082527022760283058883561967981130243343880380848427887407646386529203205501101263602272250457468915236663785249062558529078544192234979115585556647919626882388691877548883099273453684524032698375747254530744922756443175261552404761648591155316198499986959834563880005775600463454227274213909589152537039006923435573229144550251849723592893074645096656185630867102696199162382616932049077955291629896512324243799146580813661588082971030956573527160055850480757706767600507104055001277445333210496698050554997487428823041054216841495872711327805574392130289797019679153260994182799836020226418307998351244996933625188728904423587605401524948091296844643212321100080186908689207130785650385450145872003000026167821482924376813986694269189605802219778593580928979010473485777011114065172820298608290049342085680098356037775740593953795192577537371723025772685378856671286050263302368194652416074760869579451536512227889040964860456263186759544198648873428159085886095268517985547818394711814573476264363536310292333620810351928857790328703139008851095198906769854583073627152870875929353159532018248055107771814897824891696084525913154335826915976648754124655512540654326515542374752800018799506919800250660823371126919525383756699584992962126487127918144479962317419278279882729814461178172478058467786159813594736060204419511615624495888648017488111078734365635222538686297582571953683411745996608564741563988252110219353814373457997580399685678224046419236463867039570882661595679382009638461273344391738808353416062626620403368264914241624886208870756117913486450906522623245488790759176511243578812216578566073374947532006875316225971312996990872484692150176894314303939974691347242095289724816319986116827030650934686769844473142375404024671982514603570739512657011512788092747944975936035284529459718826225764658483945870323472121369960460782794734644431693377987781615573935501385392911082098688360201240763602395699470575941732594153261595186637879389680037476074202735391660417012948136084143296151061518311580432431011511259760295611385884033534230577092254343664346749280882243461450520891690544147098947567180980899360937135074726620613672116738385064257394991723635693853691802353436098234126066397069496677052792575559197179879682256883956246360031012970711638991123689336337669114479641909320088005139171747214208178436004734121799804510038021644231796499713368354251503766815314701369660659975308058119430348813482021163305678863461969882058707370487913447691087920024092239542590041372429675994345702824503971066762097479758975932804659527037879694064646394435585334063815532794431500971237369196328197966978995845641219097870916388980424496952754265660865956048275176357922414827641825830782028509347903420233878855546482375526271039033459926530534198679841977947849187474668898214204429915254719477344415506879888426008942899008074181588535772997714361088385304656254857273453759840500054022756999731690609270178475770051549839583730088946431508693625235398274664279657169236044207679976337696742049754771971565917609657728922511709810469289390231841702990636538792804276473494635196076604989516914657011490908173882042499663120999875097016694151288223839853876801234904364006519519976728403692355573230286850723667097229189416626078160122525039797870359626966637740894115208643463186409249266828621563484613269498423024055280656795953878887631501613945055726273004341904992627452276601517380626079487844502446151935024655404496676582235755668102876482853745016032954319985158356446471060685274376932658980603561586476598610067401075246193246685162103752711280473791708562981759545010067385872112192049240623030557724186181128909508553513119803726682022823946902711902137433443099599882958390835437017677261231805737684627156628399146411338236782301612516120792602537060071912524324475357053008854529357076248354668772543724041818708783730952867232453583601968387747183552882577337093136576798980366480180133212592133198924479978777550875771461115157496745919606848181568267295428491063903255447610214899325974024564199087339066984129100339700113422388462934480503950948676521196918601730528999027021012731013866800317790062756734051285780311347141233909833743636671627797209337246822885229246883018977884656305929289580637555338657479226267556350696649005374580438430558291677515114291876355477774507817928193183247089962438848577485594483787708887383858696280862358240081867295058184783965227234830893177490820580127142155572213700000588685658070973018548162912785344560606660551562581765992484465116078599049224219432825402915325188452953829055812198205334510743443377848590332701577866024834895019775041086415677574923157129234735701897719735694270139107588876591754989630431602926166987393196673613984393494435047971673168137175124341654484390042715415497860329196804236907355800476919233689619113060964112964722272575303349681459512857376156757364095902837955395605617590838680436239800682562995525009626422560634642081693800680413366454253119854146668886613657227921483082259289547046331798095260392585835041518595844608398148047386276759217258770721212826217585356011881291280708848587362773349099776388476382034399492259781751182325488770165961379394750383977250139658889039734144491031634849181034987514397493755791222619514533947324262511624992495236370211256209780881400290750089848364108084648838830433242441472677421187226611929024265006507129849153545030485739737816251497887850922775667260898160820559561577008598258396431281330480193368542112960435546632093806601377783288268707472148429351294988943119515449876574897316003933849072787642152909950795303652337472874881557747775000944248903987254795084315892290950946162684296032226278106012287065794627103756164121317979274717008192104385238403225053004270535308163416949608818521061960487445011835576225983352845773592135673108436968527432937920754045951021304198851947557435760434032071323350613656205592897550179207382764382401830939269337973357083566765716774145497477876326313621879594108232030655518633945506962160653360151682408003284134335094132476746907488008890414840994332632593764954584516292860768637992626304357292982526405733514604241578093057559297938593085260078029645429886512554181977155747001856683749217950624693619300422688516464433312392108810803037995624542280761437999332520982923324899623223410136027182329305480731755561253598873070178116472407025650360299181118604719167913657873287761830256858098048006212670754582748822345174303549122225819824207981814046912858447127123878540809785935132032773167862738310999599902870778240702385450109596037604846543588663897342264401801340981857664196342288187677789428250385557770335202414370341455557508463949165642440403941476849697651725659448977056380309863164937867467862358337020848846913325017907777158136461954841530506120274791221123999269902875690635612225030040530373555818357592555569570252935198976702366040405220573356433265680155121953453517709332173757035619124044397400088935494690102615041353089184920856691679528015006724911743958945591388346681096793046108490884274697178969917142645951761303913159547417524597675272421084522947881991619417531368190084029358984175514047062119541857997373021122708754322157592418799820779024164308039158551836437568417399239773567680995351154415965601469577347896183708345910651128972145085820649935037690437845883159174823322011124557321547132026948272576614536758491958291308980359844148792036245070098582489484682462701467529978671720967235002123485002268248225920579980871611864502666505155854624105180683698425464412534569184006989944662299509663054178880092061988596786744008394705523239569673872369131930971533522098340677424270094570887156010248153934364920972224582623584000568188927748127288001683753907798969512608674055383319319689254777777197096209974577910589576995372345797641724305847897459522831376581651744524083533689397809373820387470794040070383047986030117651535084874380219625791553555228593835149401374051117996131155960261997969616228115632292504843608571834487622703794342743205146962080765345916415919492875871651157118198591008482831236289537177688667024566687900115179823635507478442807724582761745432625233037816745296227467665422863295750663018345815197669231191259886523505206493194196617586730017674747784543715124263629294160291999295119954535380275012547138816569636979739452555351772457002071004372070181676240340969139880556419569667745413860356015569910555237046368773763990682589962656690682335020093231806700138790334514837402431689344063916133572939228083525892646500853766046688193447605868216710894901744328665130653192705618781069705044061189420099476701616469383088125050741396620585430193535202999748745741429111778337632884248624958109600447859423974165524523444393412855088349475965739939502561198886424746654132264541859851636490276996706208315986195332410342088424152910739943215753789119571930081148091276926597871851193525227556542524992567027616142689667700749414904668128187367873870757870330954726272005038780721819481682474974237264084913636788644719683770627880329499466644806222926199549077229000798767141339704860587007898325534967988467831696246662600687657374776414556688687860133698843496097679002750879072068353839756793323099439406826681400449802280790707918301362207499188606793562484307827721008068539649076473680340446376341204997416464134845140949146941080496485813202847276602028407701723354783564484769914726696301164813185032787967499831253929843538037999685298086895579791934078588244946862923015985737275318648899608479761294489050692286070160824270723794302775816917270954832265222200306200319538617812661950543856066813527443139388584126431069925036977245276036943604447681641961333500026637140478784473930815422291924231576665271352408656946636901195418380863582440848154208659664264405573123830816980027882487581390740887224331328308993487287606041733603395551499517521332011904869306203185659346718645561947655269647829534065103803126934868097966075118258019201876703959533589852087008921272947226726124395006181876335422163473305148675848919344028724991365299033332303657416250755640873477829152428734120566113496471838217577356748475595354580898370301613278523379725034060214974213586963562435959743910872983390679105100139445419992284698891714105304080633850565546428733243374317659107394789480684812581091879779950147069718454994670273728069928830424891912482567811480761611682684132561812850205098625354514142894525043217986181241594461588458805057184257404099105017217858596142094076577687453481227072366774927643528557813102329721775066830071402063548618995045283739166380826651385712235069562186788554227294921589598686117278851637114526833802813186355369074737205399389607910532379404470759870896024041606344708420441426108432813909180070466908817013300964458302845218971855383901147230760511007367077152009920702088225111502726724755619823847193527053793578383044948530008360831696214393242258076240533612449187536100527675889923212191969229642631424260244113815555022156200134200308406031661929683245823095073486030181783104406640121923071457275069626449280213943336304141886730769439927500347305122669865726637808093841724466824023240354208993998733001618579411575608341127773897159493289800686525956230481017756937352350066132525964094530115113043155402672846263974953202571544164182933248249804207625910582123639943362617438335972715532166859387568935581465283759831999126841788332240000086186131413360538007049357830398492770204775083388349799737592535236794775085032096702396646266071598690833028604855368478157518675058561465116658255305033590633244305460718326432160147632611675012179487462308732055671119438600162863601548135808002891683840671024061474198155017607697933846017022808177083372907575204176081150799666150600567531438361389005967548323790371504614128778086671293960255620890091468448992378313794454295066033848183395202465826941249839511817268239848648304734362993110132857710842886038801408794970255222596960055545579299473274700085601650289819984281792123296791654270581327802973361714246765546847016453205231691856975365744026175293679081777595345259228756912272770461567331942494195883275879748459998261879976251884510716564260736816441649503363609668833141932864479206486930802804996583341697507270107554759603795873412881308874260737294616842358708963184876849415973843703241449268810065884612569075645960397346020862586417364202442854196649756078440952981180939242942176200284873082619357112957344379827865992052593058097054975207108615901061583217752333446097515143471168341195388682882782751857065675789436235140781696711166687065532715610973281502826553348971842180464473324068557704164976321511049296143927897383291498880861015847171905810947017969018741943149017408625195178029253608509364362698644987140202696295881367235510179224331907568871202439934051232200935701409417000398981253509639494079688735452849448005871040479795939432387288032903695339422866244028303929232952601943809414056155280979341864038879111093164586384058816536521650150701822776730303645471728574899145672741131931133630126976377796908306785345094123394157377200748584410343579499018377246614248031894172268205806687552255248688586598949127464285383351810303407719744913564135371289350407689545789019452333519442762667729461155441531605612808927169049271146513981347781039963084524569919630321086768300690295425743208916093466296931591348474012858260670600629307295360440312247790669543379237184473686682596399023556428061907301356335641383095423905799922682308330154041393431367039599499484241283029658749982575250478963767990697333068822677148285210526715608915620499594965812590986908845382294133345793482846799589977200929965373015569644380392717552480958057316534912565160836344321160065762027471279351513139391756938791628194360254524460728863082349547372413857571920857411721295836539570606530512882681392226809589593656333051052794356115122197965250983775519615362770821608991520560520137650530607855196216622013446926640826318318404917334871897517108351589576797081416473098007290703612754552108150682099338800702079334053002017825931124889094751013974385431338066254074902087625032058472374581022909116161402195301848714717011070788415052867272263443150787750473629261093156398752408526556298947340135255241192488127735649594867831277960772103504697063494292019307490253715707519895457954777910683258039663890809793984290341474275791194360441959666912888744440288641936571114098907469440485173797033332913814590195307677472249946129029878243449415950411989299410915336725162557707882917575023398084053989253710814506424997933207403491895783586210748920524031649056650766860417112118283380743679068304131796143675505460915881951468819056422055950881866464966152280032731537535769994736848125349178611622495446719504616411949346172361512345371017056301227185485071327578420430083550832733832893638677921691414232152602147312149906483330553795870397622779807690370702170501890464207194820782059737893863642155814463428079048977448862398302203998152033630343951707015363597571979321622344076937995271226814654090122393535605386620957646066861259766057994250635173380796124826266135842160010130016815759682442250604770037718777192845183222997342873879985672074890225898277732950311016938282863626643369546617138017743815193317592408836428881789797725559929901214120957595749747859555899167414666599637202087475109366635292463675272207731686851623889828255871547952025657301061270819909999733075873424531469488243749414522066474353784694045988938167308272292221522611060674523209038285838570867305660068858226680967564149796445486549802691006189694280317632165683084273132394818626755493773465331682456846124408994019165280400819905945842250637021736740181876390136364990891233744519206059310830215117037637740574862780397958989363340530141246087404139462531903498573010713305326363885122042332830433159463008452065940211428047864583624066332370445201931153674665609912747491414560444132572470982490445703736190159437245525825080814702722801050467493912187585296497423328174547876854151025323630417917464313857676189650566848181658665285456388454906172557655164132028501397534173584237963061534528155535503782091153998837777685372120226137949298789514580997050466637579597387526333427053933562187201940278592958425955737774941710770928821614258851571678715683983832309123242725425316787705612670130795567971840568697432657348464418670658166078125242879918934285715420753218693752155103492134640322104133347921984678627794542067004617632425639521377345534046586385712366631452641679833074396345098006820185510411469128368448867289893457250392578802222635023091468427357210550498179360340160093238134646353366055989825173008410136927681720106341292723979277191407443017812016950081888911868896281490031614841031166524452445029735214031953439045886501711018512199262311428013018492986024962110737754762907795822786147594550793900196599319901575350021580357731375496553069563444553731378516310319863941335065571801819891804990896968540897462223067587397680560458718250797315590773607063833564514860683413217766842147086403357063006913289146806241042840401482835376130914125257000814978239744583906712637197706398002267785750092531114242716193477793840998773048748921366475982241245299480862792913483159160852157888580172329821453487028590947215729137278780317827198194493919138696932550401406977817857132925472220386817610764851259006574136677294149755498644945127482297964229208760781218924746088884190917409799030975616647555138063257653257226915159820647739774719703221625847654126506131936673655433451365785090933131628450965364395158495395992002222682395188495472549542937614453584114580357496987153951299321246440280529417648841718031245999260638408789429730391386193492171399337566405808862587663921049835604463268619733846580122302527607342241235001921516427608445557649795176249050826444310085422767718539608960122222742215677374678233526097968813465357815115846285320627562468258522592662394159586739240861859620214427250044769719205243324520915245473906407187046746249227210352482134301143398428680657592483282360766845410493248830381794733520563728985708274989296162229193161495137932501877810467853398421119930912906178285179071730405855030001682616165407020891168557482800814127272999325707025123242537553337988279680377670384617145716382185461413695060509613815475053159319200253992566723114036155852193121548742227453728270046114187371947512335341342724944663590425691959195659287711809850951862765936312871290956280012468467104795316291555176441086413431450411909676597481747002550237523315606462206190153046430114616275245677499695812685855524513764615702604982102793156072629455846535140208102752634224682714906310367645981457831693559220105580180619553084747627815945881608065501150070909013973663230800766989198624189360544391452973626245776423384522093810921396502643952694400811013712258279877745756545418245114719159997513323342346037395952700993227215967156496580190801853706640671300268361862902849707902191894206941207377199626030203604634036960276356014327283103324059415404636765310656471086381570819934026627658602654571750469796568247213712595209847027684249531811366937896707354775253749588979459020789068135278233290253035128404406833121184943116880677263806073487618546336558967711348583460228258559805572733646516327814366774216032951740119966154150357736874082710673978830040821877994130485281493241922476504235775100190353486269184130595046130779761891997397836135977746271590808050128064120376564266879692776886255546159453838812680738012137545951676530135946034349682799707918145650857242119647932726105898843685618164413659299389504980495064332673483617717664858668432603289667993264661709339542703549217433424927778938695327649766409469563355795975954269068148142918298160210058921487864738842483778871822135642700963268071821439718918212766290758523645727050479216243527832125121544948913265238188107530962226618894543620669480168202905274173339265019396129520512181941953634951850288320005782188233840510805594430320718319481870800264789838950719203192640280474745098197264718182601605158664097925016995934563663314049199075790903932123673400091718633952508617116302012191692079893725743551414635938137862103450269170469827970781805485475703158165124355059546006594781955286752704353801561946278977601557039538289015959044708359080715477142867726908674959749709271785707522640654163838097540155906880658936426817920101684722459847798777256088903766030332664933387194292365401861709515153161255238853492863533545008748308080104145502938910974677083570084850298750033038247186381339227325975841679050610973028143002481243003910311783313283255359195439918043149845203518233631293155043881160052331329797883299974893682053714588714633226149002848015227776311141888846252126382892833955454270079223618628640559187625596212954642862808795541932468355550822195700478732366037493078844556273799310940996969478469115674712401787511571774658373827957036812652997347523676346754340350126826773833579361936578068810075659422214172071050097259135815982891437069208404307948665645833648974170235559632973691331949553575304218057198854168759288564675658686150602489431116084638713668938918518545805159367172258331027221575150619827103667320281441569001401166215578619478733351215760264917722825763962466961950897311982442972693759390622739586026681085908339286921972387599042790419615527921165910432229600191269556207861189663696204800216994842623091821748510714050292963633743093180011055596360098795523436282988976898598401495128192195190803711264486313911953916384459038853458071220204073957971266954208477599826518636681900500799734800567924727745585903757413385226332220096047034004999429032624962534933469283343256683691026762811431669451243515877106891974179090001872279058127940929014764769660634257238523473149121161458815079935058848878383020699385101028180764592295420542415863661675231654364137058078532192309334450748546036234671416320781165442775766212567590972465079214873664597693811371014672910643254734174122266571855467788096468723362924618441478040331132684031002533485679864548130637629418993573648925155548199239110051893216561711086032465613696729068039411849741876931434073860357300367803228644950317660342149981667285780000703146205396579395719810634640415224665402945833721260386337395996946659996688694684777124438551553975804527688724233515326939741563809972813231349466064419685417350229821393811727053463312788251274850952407613576026439266193154280278477464377391522692143354861682241730242575924004834595086381589619602068715148584685114938320702911243487700961327519414689268144303363972162967903046464567479979822993452997267725417254719056991745754502770167554610825103954809144081349513397184844063721159218357881209645743447340068690701836589721345537421415152325665376327735780748929902498175969613523616603581332420439564769623065623268489809920431780271222100582641343962903632007040358125819720828574558644617414612792821732351658989798878553062522688725068304425310734738064481181139375258190550624825304880304889063634002293414915360916847989275681227432767051608234543825178769081318175277041048563728199913288812098811884711358356760369582571096938785551494769853283731207966864885908968813635226240984288789960203800960864989756529420454225163854448949172937855496302238026424765475086481424196859545820861972906987429815162695284611328540282389731571732171467609411322883746096298619020299734856274847188808030958050128634058096950597409198755272749578118317719683367102768022874351733575862862807543405954691789956917327739980601486064877553876294905848271427166175883264825547841402124377215799964159905436538916675647490158257742930874168841621246777166082417380880656269395849939875695633291788345949349232736457786964518610965207384769439031701266220418382539296326692091851412908961126509243368373683098814266752497342653439954382094163149380436218720189197030287163482875847373053313984838172082176100851052110495822680597764554633638257775444261813829963508093665261737845045844891962371029448302577803906800077690261328673907588766930826420908305703986922909923699195368446554672717552695851251681160908759613071286277230293723802599665964123048962179134685199265202797818121918643322084567749991345335766733514981409626614577547239691543256010220787162558954056443699184924910462097986042563188471844021752182302939317534067108124550921808961391608464331337448501937091690370064487191380281179590846341311031332691467859170801867003169304457603813959604930918410580727783466240310884589526568798267225566608670815866223767099583076737001493661210803561927834212986617275674819562204933758416217493600511339824818487293714218687069136713441238506699911993046023586301566642180835623956340291582728880103085425963700416307678002004115059488408303292863690056768054172292661903315853190204000356590520272791363443039092610905821606998324337707116407815252536993908991841744695052227498334351159924852717580414081022695785398093870573087405929275857252571541030839054933773517972836108532814483510094270338052161450924811319223384532955164003651959957251211735735362090360721857754717899559970598045916561491887151800836217369240381377166218717252838544822228654032820777874337920580587442155413846337439752939734807157724167034584036415283908654662354597522958987331762446672427111426821706038244719239278393293792877490101514461901867307169631073205589871220389535108872023419042165639809152179329279069198669057198718839499141078935322719284110437307084919543627354324410767585420417572856962831458551765890464321992459940654798126414442614968563915351847984575679097318497850181896054631352490304902628111002856295609066109143774117149492668910080705841335646194835894003182614986591088973919902846805880318959683865092850664248475343904829074186037587935418662498619849739760234127998182390151024721366100182860453046364509139969815007321927005260958124609142743197045897074127312714979907449578588316276761634544557962103029224804435288515755196556023798697324691952178261953190646041978698903264077846303425097924069634687567832651887171471726364126085924152105132064101025358155387055028607801242786343509720935061151525918951111982427589730326597956137768166894754800275457576545683448701586430579295302693611627435466040440156798314413190708471576428440424938662717235388940385326717904655878243097692883312984090378283105951551042795834973971800570345420602414363323951498180063778767029583132582270408426919685797371679346456884967156321688126437182689520118996781028472458893299939151428302638180255279791252060014828746364590429282474762381170751273403877520307600075094458485868951738295520490860238758289272485714595698877273908970918425773699842485104238654552734860443591619865104770897873024857565407236174429729058802433709819275315213713382867976667283803757726390078159684208238748609813139211575689021748561647435658119077789554846553086623938751188956171962847152057499163956131843643244708692236829650917760694914010111490967989760320148801095263611822521755146057466692102403588973337544986987378424404966003601081609584456636859377884201344292323765689022775541371080725440037362100143842856529941154443393942492355598359856031318971234388626920540037788450769675064501780325329376052392719088189807791803186649923483514388190370967152939780235609156719344555803363699461342941213093705231714534074490329743925612651807875907442706775911471821636363357394094809510874540278273915417171841885581256168243453406881668527605331056861726899181134880136679924227397076151092676297865467381066120573119807242008517578424787688383414900555461295712011076225937853150152124296259651313961706489747278975923643070400115121938537778773869572706332630622494327810009879133800389084225340423971482507659085587268038337974363999960560394269677557269976034736854142718218161691450708593400002256656712531250531815926252314615388659392754736013652441992904556581548030466108664606212508504877490332889999587095618005603242096607956910632729627592099708474200053734225400701149342220672039422884734342518796465738892630276891699369921843536774966029793919428738167072749341436214769141498220302736892499779558972651408897965769656857896728321315699376528280165906907948764898041632754587974332313028895683541663283379559851050046554312703393968365260815868039084023625404687034241222673696132454502113251554203647548268056716037744541430278074122556026035955400268952043464219654302540846983152144696237531088476031400666545549628903953838136396458903566980827122811498935941763309729740802685197798311755589656125175219971671944194380019736218522993989517463658331542491800609417222860666042926434444115212198672706035301748275204267424187321980725882517445759261422357679469374407784125645773571604130234877393071497329863740509796501276332848465007589820562621895687961920046480021384700677666656693616622386088131232846802131368019548068402680021288391362092251306942235020952043797827875355856242485914503455428973131678990281860492900593183867724452596223237384720870918636410124744125621074696882228839677481267713086610756853554161812116888699437479430862830951264562942998164604305935380651869003829198599848289932596875627996723508609663135421610540925492170371490367076616384170559790831817021158118570274554427355167185185307513821618778186964302058241416792110807389158353288097330456544773916907752236303907147617198130548608038672443639980057019454135410436017215601312202943209311593421815132379266679588716750540397039645627306985066645690377685948782371726874310079536078027542365179787893597684969364840047747590162246912870538525066138422266849794767066265749281280107148539329558886498612654443531080740548848313997248868742965947853363061220816670045348367479283572760631223141850195954283456655718021968121504877899090834324531608495832439084069122780472970581868289478242922323582162044170773302565899666889297163874136722634001432009351903898060623313234019791251623697615998342088324650416348283807461195612526341463777900355553669735700596540777408048121840807785525602043557889597430312035032148100364748329622364265492708493874422244486816018177958823552368538978160067510173548226442132596997891656007924260540076465550988471328074050275578534696669967871315531088214047025398132890449729006085316843113591531946853385124254882837327560442837421463793946652037151640664441848915901004899495594152275908763630029655867823548393875805816269260676475505184041031146392392615136664920731492090617843933720363086872218264079012844340229679642254630513808401840736719897291944053110350568061392732729742480989662480910488103654152461998232773830678070088454264949458901602869300984725450164965004101686601981885270371772941248798966146610476624819608663419609117585618259778907547875444063661740929904277238868711667044913948557633664199630683327422087300853843480978374928650282582578725085452656518607404516331860774595421819213413760480502083056350108135584427132159530056368057411396528412788999721791309515767661967741158253045104184221718489281818889693898297012220205412527322311066118454666070594847004770212243591485505744805288317375136430832085226984667305595398821611062849157416450345440025505375878170896579114336176266321464737603433243130431465692227805919125158625870699204813815796828141988683082027948676226753281523809726014017824142403493667723679689228513222987664083901432694447292938709541906783215321869150330386338514846112608770700778361419070556174904478894039140500359007347707278556597933671187873391777354238334056290985914918271548336021785851781342176475534725989639354878674439594399053747367507903460817455809964461455169436720392862547209297377799281710328077364736006631816434468236175282874070333262149036561941714750813530514328491115840662766888779590915914371432266834256053850136251337602172607900392336261221117434905536630342095046761596995195092857261072104479538311899133179502852835052832849287323293564862749776037304330680080346391475667490543337225183942515635666407554154955109190245565574966811461647537372730604198465325029095007740570583844252429441384085566426216353216104563440235506815115329336820241834624234229749853906433831830998412356231267751991054461039870350366639437158333587700465574001519085236496259144132515371605353453903899207882250987709608323150264237687590949690121328841911689651687753235332242093101082330335661290270969195785531858331998337490151952551707123048347856572051304518340255379939401320100094298834076384971739807782869366174979153851068568824216744427151072178609325259827109577352724126048760144710205239829365070360268955968010022665719881109997632389355369726424411896377529969686037975408023948154770259622719998556120641411744364674616973784573293589619693363640166107028871220150068721828589335970468780393632256350398149827422847795756668266825557403468449906805244545402635244126323699298232247060381131525091177129721155501207690670308853520822686025318971624507934545683707480736620112820729347714208191065103378544049794161590594909780273722464078499140711479555740696830600836603756710259613704189740406624860237411230528036522233763616151470667232399642221989424869946687030908871539939969457365281573360167298261555537273786004774857041791903262057890230661897201164856279431833044940591058295775242499027214398779515261415761546110358179846548706619714947886223059101776857545167365440899304339525239734484822219712469126328978583393374164726062985632584799324294411159360084463911720202672066074894415109558101636118056482099951417636960054546232844347590103543714800426491744090928525423254218761487078642567896871356235698236688577033838100089930302612290852771626216320904913602553756213258958337948074147737681084992460087392126297011676737900047220620736429534314139403860379553617027585867579729423206504244249683030773374118063447917825472461471087781154800189772596888644477224342591601937893702134208532499755214182904034469954652628962762032372842995814127119089283583222385294586679511903499039807165414615814594654721214461999376426454703690476369553916511748677050625612155465352243684187592556389929509437741311420431879789882720830513354685216544370757521364726121595059178830324826912288607980633795382482476031809689013290086684576205819300454022517624334405581007968222013150401664575928902416033432495553822478433948894022558422654873291904905749296654334274271732488857869927019717770725119404416630984398912563670475349285986346897692147669860681280340193133516913779578093714264686397106933287164058912561837324412656046833778681338001021018983229437000964837035465996065732001346057715464777109677193623628902780537149497026561983139878039926856355025178046696392010607789890297015381022095382496055864860909999114691986849809129048670069380109205165087239705175752638284714144124153247293583843155555337060813447577265783071642072791083212608375966964266251300193305340950156588225303924376805792775716746053428181667110713993900582297960295243481795906896276843140319006258687806123523093858519475397061431961303618009010446482600070887418414429367154519552590684292489738745557036035888003902402065501412332192938333457718007280045392710708346348815843384271272826081113894176213273046500382677089513112777989312232360059900040717922294114398878213283494843695203014789540477157380531241952074677608295169078691786509359451052522216178320156302965421930586865821864930998282915339516519806457065220632935620225299133438275670470056880477915470683075170715964134350471840512286844275228421126180066729223512546315133856713109914888417870607755703002160808367907265648621951055055033210808463477229785634199940419951217313499276548817713027874438544368249271276462663344377272438148043133625036188922696623199786843846760955203335554324548925771922883309411623869212776155683078604850877973487918291731990654050566006967771698374239078380090674629106432100970490814831743408137811791932593353232142904647174377228312821481248563245862401750982308765986145001117711403758620983667824894140316756705162594244683720827471296870727981885183834887421238965482534518054858611280696219420533510146271231308805095306951165308914441724098742880203199939733718903884175448019438508964144538416242314031254297599145802044108824128804857595804080007339297962063053311258843357912911130279345174200082151602046206031888070290177956116510026524727579508205898766975109034444516082687235754213282026275480224970330029103574986453059085919002881296080934350808918623823637478781733669459729553397372543852236764707573092145421796954122163667309680707904526456859837807521250400708590203391657099991993844273674878699085348809195645424309370469559219924980075006862128937038552667326187127546589549325940845896334777961970920528442450897959565406113246635531068006521443437614224711748969534744421634064870390242355641825608162192345307317652176047985999024621748912680180528476392240822075865455016248026337102591814464469867552020675860327509488662618531058820061040289384466695426714483368014769102155912711098623733134075475509087266948850067576238202142589626065509756698514436193699915844657746074038789894089534489772899004522126383783334438465221569739942981804102421060366105579269423019944454758730427606534406263859383104342856436932410285163436456154049014998237044913943204979787399724364762342233765394586674166786610448885958641654823998851140330827173039000944964625037891155545437560199685602836771961705142048357857950456956030156666034355470617001315059482739772993991531007159622839611578282148134748940781812654945814346530160812429015589247963574247919894018676798969156313249796758143376388472891922600510560127787105156408860032263023860842476758025825263342253863858495132922233646045809215088421320088858747624096608488972848083664171260500213497344908429390442572652748079941547135815827538552260972802120475196102647533320466066562144636954010694126349902520027333055079854394470105766737352776901577538808190565131068515648635764920859625309747400711730822122963590655314205974586191014369021653021997922319806281846220967686375506488779709874102107564943352642041311212917677784706391074907898738480685690866050575264390350146113218423281483398125693466720230918729491664023769197492588426316395732508890998424368879045178629329233260968518246272370277898658598016236019920476124100328165380571179139611073272546478548092793207028979434069903882466065500499950633595919520092925335085612446136105868770467365084572471614900314229037727033380122073949748754059332216410740710844732238406604877847234719866805062743697178998701835418921780864764209020105947051110886843271945487026496736344932081221743159941503188329570550797625365497479337657047438226744490368465151807042800171920118824493430207666312618917738822714308751538936408311337206612211392170657330703712625702381038430099997057013915638644164660762875362772945497242895276824603379157291571736365900957773729810575261895026704697837635597222646587757636514803982119171405814833887441010560886391063169097021959405257552283896586861762472542751284520949213138454082523666852370067410226161309443464847827474792510791413179497510792569755155050912626326042274538220829830624984519688707911746645822251778276478269805963431890299502287320146963790822357679205489408739590435084508572541670039549866731555574743975074546338471246018231103640600092053101580356237571453295571893060670035845665916042762836326239816934400201249353340776176005141921902725890779511043660409160877818867732519676011102841701448066244418708111296589469398696106593288102783095934118023548336307868285289816296571219835575272641823438615163833685683821004735566979161139796488540427454102329814050527154601641865443984372863149544879335989625980174421026417179248907124398506704709949200015484382600692961429435011321264994133775109659052002715348347235620975136676619045805555481424316376592951336080088694679152209372470693290969054808533140714672525373162163434359233250126975106770086398286035660465999999352146348679391373195146724639498810749669803028004756507203492038879817931521231393443262579105616754286061472298888641220606406132246735029954730088518702793862320715266857282980139695074750793432597426809249291251921303636501022668320907055796014032996179138355717908705067870836462246153398801999471805267955017032837205401034656273326856116570990380154640002897507711760178472726933804833914847405627877883326121574644469914746753645301267736024610712504673340190065673378802105654647871329761635802815040450254207932964932045405437994792532782017529631015204000086983072682022702493734405740031273830254173380969263061128741259959070886656292133203097731324567559997297649678976822505551650655735378924655404174610222383765294555174819761884719723078560159815720557940621533015180569022382928663414727059381811357902803139968453964579960941259805276266809964965235500797648027085334105845367790713304691366099041971892833204137439102838242378453715633648127607716585876342311543878812071084615059338802915821744504100682938569532114734511902970344002213220059295589217716983977083243129595986524966050660791006461137319943638443307437315717696772321401928334414466752884199258826906790866494026035672699110687546144174841742022575101223619131810058240595168910949123640997746874570560992448173035930187782160929167209546049211261122574758839288077443565350552129370050932933189553900923728469638696992757628935176029332548031938124173285322393926646641097788235559118377707156955512104347741096064881201190300099660405731318724564714676154878233275613929433872108491420249807453829092157859332694861975055374894210218135224910863091430870191868968361615486784427338057814413354002913218079471034791483139849297271649738097418888965489452129643873691888014127244155719096253757017409808122207105299565234286727086059284009107518185646311501751658885514059446801872167778008599566931923788770817444838433914871730445869367204874845029187070953252294189588200403825760137907304833298413537971386126481555458301175653830768667581758770382856133689874009228299037539557679808073522293302248694149046918486628018143282545300817444336590240473139944088522826223904110106773120443057813169759682600522562648713163808168554588415178102878908125958638378208470549741126886790905917117859853927379274831754871403724323250760121318035365762998629429455583741452691640250833671932830952306669569858550056981556195847944152627248801705451145465830722221824546910451751075936691931768280122435676329365121228014544604218264242307881319872181828177035963861878041309320434752287072890252442251579741574927593958733383491292569450654166029031159579428031642970146977689208336871360095180393130953144717082366098584333681369115984211867189647596884573850992192644264812951638723576750959203468806581982253919908779574862619399380751355263929992352201087003780028991964553870558039788617570821606041858934451640719327843332954352861939396124109745742194540598614974128537164956436787379546235997129192540744424421252813015816011715260126923915747357668854779867825317101559957293481242723432942840035889397942930645691149869434712561741744839351243610286590641747417067158288703009901379193426382713249711712037416797647629613670688062386957706658926564602378292275883762014688306607223425010142829213943964405649548493701608238819447457171383738991001066869390741280275384518121951903834637272808196902367335883217109904739745239938139637123744566864647582248533570499446631499666512544144465802669158588161628042752048631877511766921517347253369391157633859387763758365874423503336563838483000279049907401059453313581132297673125861561347390807451863628701953960584231946991946229956683079220153680196510359473695444212344214686283484490125867826918186435005353179973140482035258234362626064923234877254511542249984808133905540058804160578747855328195916702304094810355972174928336026924397284527891747004619129224982521379425237992878709478330352379594849163433632241150892369366787768099969662889623109250442109008686056929239980753503897347114426241120334774685184579499772902607909014214140325805167682731502221653522558352185006546424095060929481131473852027880592107154492257962976037243431385325665733186695546115585306156127034922009729487976842746104434951725576740225400783516284579902147054794264191488995994207921723225324470618882575301105210565170039281472381402623018557478983864936550559917512965808286388657675248806556674943890787147079257509949634954765366989617913515653285648393235050472349861718340465912622311229990415436858797214988615525418198545326739726113358736353452950579270803223337651515767233795274411889986436122680828973174890333902202109597813654728806120101789675918364284092806621876369451761383298985121809096053627341556710604787427157535629184895960010581165029029967087453034723664796299783511083096619896175797895696378387813042918902276230252013771549235466962987379083014535393280190620958795336197919036784090682985572715734726972039921560880544894770296908623580559817395591127408763685698685822991894844073813701282143001630771482460283292512916742891333766551440958420820140968593785288742144497783742218256845070811137714006357076868015715032651582271235192521470320061486171492923362009405330177811455624558111921368669858791351724716619902176962698818929924461316416086147655562666100162107521184566224227583283663718603638470160577503185218153512491818774282224488112167281104283861927535913722861592963155353464978060336368225910399860839668513679637813515175295516315324228048305111690268057202005366620806802642560910606752820350336417037175936953862069077236129071624478178806720079579092687284558163313870499973298784305092866711284942931338037294601184496761288077781027572294622526883911687394565279099240751481283155358392888802886708910146947503851760560063822764059119835179249996156566799048827360764540601426445354436902709892643113625534298955322485643953016919221675455856960315182353428712608339811248732875773695210756492268200436334398973049430437520893813049553791432870216587889812610885752174148639661639250037863413812637698944449941270831089424238576307140459064202730910499401956510379657947399472185354791232680425380665245896243349671818254601462872176409722142603521985782064703385589214998720897135523581628173570482093931971976323591510131977805990330884939961315907855923194452425929196334049306735584698588547841085916092781302822577614511539755844059314688348677414002974192707759462767805276827473439815490155988635902326903810723809871093552522503028781334315189536986654055480885845101973836327817423099533321871774671092796423868279335902244225245503040587538998356047286050578106592834938349502412835565683452907058174107921475674251046858070577299214004582689954628515594110701853822541569128954765581178947726228860690426186913657800205230398589072715685014678893002319375320037735542847331662495246535435247842635467688727450634043971550520934742109676675360317869307125805050433268580050308440162667607071290948017464299945319397663465452003723622179863597079493595303740947636333111402277498089887559371724268588657137954566781193566906718050688946576460311814999368775814703144774984786215195922975928721948842676320034937590675885127864051571854626188997175562609249333646581502124792494961269225539632005615820428867678746009308765417624030848666368802037940786292363676813014442276923778819316745560656344062841243046498445958335407770197698882885239833340269253504198151379437870497365245226609396139185309562786983902741406436462582319534054425874222865116183940994893963645075782604272356546768324429440604007709509558840278612693721562784131603599767508097253998972526649688816678012629527010360305674783757948353348132710043755506858737259994066875906342956534988546422347653620407208089457611517324279909012700139909815163722014029574519511769385897568072723022458094601372086300248985700039953426943063445652459536486965414454886672299631031934087841522076344239868094312526416443549469951114447164873621672217957274898739433245467855475819439060951793538698676315504437877289069217072621105009000409389766161108384172581186622020018454089476538790530205083581289717897707619991731504845548803451141691325802681160957925977301741621052130855566729818941221476990380742688273530128878172806639191729199663158751061491658091903000339988023599404950172485144029853320294333439990715829385395836104101548763616764197059107351817354089075230419936746357907778164602016275589195711531104583594445175598136476076667949019258312955625322672098330071173169732714699873863626858463399646575807259237244305811895312877160276906674469174034436667237084624278059819189398232196050776512900508849576301382002354412865970182312592736587492793552450758068369172446085700281304999097757314315735127203584031075490573432098014161441370741529195046822301115120034347926264597909461639630072420113087917890737854336129161718717790619906466265903471016852072566777818490772709301079171595742672141897872039520807274260497518077888744453857691258262272764945650219516284863792919928225691737581450539156025782948367670021532606168453891351097230749042305708259287694236071762924456028619570032426623255169885659828128120483267035336283772209631176607286512391074678613147940951233689572287075254664969648719249869998414647197064169403776356520234367876503072406395774930188801635920087422738967905689950913695971816623676249543464387264541213941072084292871915009994659860419165622295374575673159834621890214871088337177065386946309826950365061149546664344966457538409770385932329493034830790276796118807098566311513546961499224368003410168959836569239360787603551516368334824659879913826663719794690589759538709986020628180437551670500984972978018611945895013788053685739829921586134360996817529314927153477901963537726582464827285859816684593875193115533742417497813985303129456385350920579556272515983814740658042205758277377691190416851667575231012589330201285167404618774263057846969344876776452640694017501700399868037857199491216104305722583542003011210276293311927200804440042178021285770738361908453954663204366606007286306681219314008582362455464344246182246992209763649372642662514987186860928431269325814647568617665909019859282601749761253325402864312588655495445846146020889033683092299904138063278126969890003903756526760982428850887972212775871384316050289676856186066939480934548375451767091691715516921356782753725997082485198646348569195315139861207089764171183289268429945065455518807017360241611359784789472842831784906345983795038436936296618107524197076160676115339297245729179284779243296678307383076966322440942851865969070828075404398070254070675557787822160679316792324934603767441165092003648783316906465052728963735271003454547500901347417643405274557893391054102855222597195083074347618980891146754971767453980238836946196313374107902035340829251199249421223592316404171231393053810105390742335292977072387036934577629791811469870895769778902129580269841989273404775842357135614912909102416714938025912568056572463123652633380170963611638003181004881149484202922079072449593612147945387732431924160991245742069680186109785134276032187507191324954852506416403504081669581776386608178110838768546777489567702958857458826001346221822120194814486993557512279820370938701852278374379123520312404149042359230102290688812169306471755665803271706269240702674341637624651955737376559320751827729661746823594657394832096524198699448575663909382817120770521470164543632454100913303968973232372858576316786701606028933810087382290363797391020821789052675433267062820147106661646318824664259934852927911605616053617838804205101003655899008933840173320140450211999104010831576844765018880709534605072650417932607713322785449317250245312384970902722186494588576304466292941632347424309907710074635402895526258921967618908752055587979272444273057087825904569462486058055905650321468222733040703150056912196268802499469879026469928792666979102597133929455297997076684975350931181201226806954629142643544540544540195996616625366937520786767662588409958511864941542634334685547612333036025004049539856221571348404662382955288802128059261996941488877713045094525537626546878038316166492521749234178806175669448192513162046617748014068718456494533258288783408577837982457645094917587609752640446361092025982858414247542107264643353541420513786054714525497146814948209057854143197547124101285689211812030517122398728002702938302737145019119627473976694979793251760422568342262377808741287387407072635007643085485167711882534328913693820531817698542935055181393683659516423770638689096126328607839453300461862557221143639780253995875399377387361148569684002758573442933285190182650159868322892425716363723928696191987631466926453793619492312784214956121742854493320928800473741881091631097784150638524945471418011615416430047256122839098178794655696678687563480860616695965801489540329152741596276641783804216454010460301220252926629245169704676095360915609032908208890201171449489140299888634238468536567786667293891313829501128492942564176545680417714331990705611630664111278180680864085890042696514562108107467304567222191891783091054530028974325154008124573419270564876779062476368599424824262495830387867499714370261712866214567032667650797267956116526482056994647649934049652398936200193982125421744981604787969687895405226825682897233241051718906461826718575503315850973962079277029747972272131656657996102232761621256134628733532374673103044221234170460105086617831017470338403060545877235009693523492097078771585582714441220468906841930535004647166307978022256123749014567329964762708176256453217781692871009522142683174273740868307797519724733254564930929354250890005319405843418574054236052412801837412586301796541198204258598416991979138558491246448376278867658150887253730207732389494325082868782479312787520026889475521883332347484899832931689443336971599156521000263396141203802035209681735468855588775437511915438669828000993088980274610145735213959768973158532399344506079224433478510385228345531101175772996327156806957685697594433499808451988884827185105936325408211710930172219623045370273551956006833239105182122752555482464440935000048125332895061277291678372040823470573139293439397155231121543900020146785961656713447849686274693390275425929120910051825038219887614321987971768175296615701708272141960053608954324655736220790103069903798549568685815290266489823315994139615344893907321205054358955137456974556034906521557142923707099985552612440387371454444534762376737211524149876277436802574804518456261349309174117813408741948688096689178154508499631752265018661927232392394212068987279501755026873400473158936866283620802501686325536439502425828346353904688991142988082765069909800059326460396759883072369785178913065683212062215724493885902671561253401001916156536795035341794221021855866972706582942962865271040336641617398330932479413565918277988706481063723457859968486913610177558201794302718410955186655481740220947883780124495357050595235711706633609906466826436493340457771629472021775537829952348675563370960070927646127225862891797944560680417922234047081019775155620873334890352230330990469918445893446912943117924251745419367995036332336129956992286774199377106647776997214116014026793929000366811266706762027672975817865747388690829029481463998890699391939441652443620320907374163568784443270739084501980680234857602921523659867798378795436873381219374172877675989487004503107803273763449686256004407400390831123100361311347148545487090933688487924776566140483235903828025517664181307206480662416792855929722623533028017517327272920773576836006202439333383272809841065893191612951974970873217327473962900148223582839483566265116993025813952207380761527273741355053703330233693984033996500952311440694595865147635328691699703596263646146243521285184535543746422283401274911869196531938250467801045179269039593897364177463467659455618079745920075418955252464260241679872460036807680195941167088641508320320814954235875392989971688430866047105613914539743222615866754369927347182990941404141360883184153221733803409282263507242962996172467270942022607514191736694255876919537397249235686141184527322738576652110341637262768619056296228423957956200120858374760768584850635862381878886071737720717677606307940292248538186088196008161846574499249305585403213313722375159853497522264918934953073104615615251484781792874324919479838410151942850112902572124026647471253136858364581292393507702634616522498165692692138332751577244966195103398355301906008407026324759454296667421585057544153566783136151740015364660420234088453032769740191273535175526377120384147723091729164315277271341407136836745093574343091788863421714066165166047576049926421265590441108288033148476739250773178984576911592989298644212756287202559128793636987409161523391566078768802446473820258684601830031447868023162507954370795781634918819779006511013020232088660798444531302057270268505464054052699262094942716806695692359463256426623977971436548893814733055513065430516846485826409030094518702762012061446291697062019930731865948706281055808042924094099150311223054300641898058407118944147101557218000898753459435570618984451408710499782169897802155490534125259820496481458977030720669521998588561871645124036746977048629929828754781073605678906479775310235493442704984545049124287969458595857048699964844248935946159318665404181990905090476688938929425144576040328804323879408258127445325432367753396951962929225124686823503390743296076967153030864525340994788180465478966540075543893825978042400838630187420291639798739701076237896488662932723663500700073439549608294525652941535243885947817792543361137105972350673907782736462949295990485221794049587971518612617871441832850567646682867609020192454587010884823328267033566304750540395814973541163634520847663981571220834801820710986510441024290608057968149695613592285836973293125570806421315130096772659638073448819198291628393015030640673445820133754055722817538712198820664470903524891985932359647714024903014627947164722689625906319306325179495242435178616179380039051675576459695102334243971394669023570114307883261630182209771020347933767586752662058353394693581487169377552387158214403125725341161025559883314412298722526462625826588189404607181674969637897385655000353273063160164642578025113960257472148928363924040016811554479284838586957222328028227319104076854003400828170123015308118260600478582633881777812101763780743368232978952407032657438852876375680246347528020252664899321804337133212029650606215304668135812189535054812992433503975349187101593341171228595772493040762557290112748349167547562373813765147423500299902967733060435953662508094416301352658079563015213340936348016361980964484907451069729650124310104091541016203854102069578610302912769817664414461132650604851263486171117411010463397052057185016197899622765553111415577457176148332948823932278192012058728601062470335787447388030939503055920936554850430777198831566614547195343126292570625786961347787648376243506550272978788900964241585447992267607657713758074658835481931386431751742544454965643908585754091342507520280239960778359260136054042402410855297142465825601937909142408986621311790307341005402183039035010584010030514764797110064520332620441744781418817295123219346751488630276644216098194484101687481973936564663501123588412685527978950584104504658841172742894352394838758265018998512731713719869278019544221017678996795518291023647593334227900205760945617995299433927946866020402454882431475128925934838769615324567067481218805844991237472241945663149801862807452564434662378161105306836562692010197094695502177605468445196208121179873083960158227530295427359614222025263285215332653339938545816849059583698951232339735465710962070548660558182175583502044589199548295974902942701792271415477622624262333713268412141283704579220482489356431687348047406059600769862540808898007449753112690001536626801912835757097885072342606033079321005935915088938231710964201058031274297927651478352309317121734682577281094237565709157264420834269340677080681884421443610970224695165765897752199097785096207449445520946346862725531618333819349123503762305774922230097181697456779507130766830293859897161300302487813288346008816474388961832889751096167786782874153514416720871093451195209619758560699884376296266867556941938110550353238692730460675366897034902770983163764159110272901180452231728224140941668130517312062635726451993734115696978639116318296075693667754961591523416315621155146757053157215408502280157279057512996119596191051678562499339959511715617558254855503776117630128365154307006055679808261574504572221113566490085381166129581113558676840836849036127438103011253127429346507183194471578449468590793187890049859354262252412294494152529900224809914627352719745801204143568106540115221626518994307722005756475720122559831593357633629884161159134094554138596982168428776923408593101080682209827417663849403739444061283970060161992429979016531777016456632067510001377491502304728508695298377429705970478169001059374395779961562942732426734941396689897280979963987752631617600785923070039411585575734363458064355451362839165189085683530820670335805924026120052087303467727870696675713761037881743968650872941487557403688908522002972465583290885222657274618684093715248716621868886724693840161977815648761347745378482260433748980097653319374499048062881385738181887148435395077340889179690438380563343944022560192381972155671509055356498792666032777174627715571548685381403002082150430020555453848821539983238975621513722608171306536848117385106082625404128498904478238288788072162252222591512250303769974002564219663830373978305357781140806443373120323891674402364209361259285223903499404651934770538583899721947925004621114422472515720611852700711336121991868678665215001900286835339331362478698187003355694457653535776420585129433197089297837768518185153051720489019104653754109143119225693052625504635356193382729700564799139694492913462063547392220130341561239868815092465974460845059132329426910888779152932230455401852418025085405321080258196300300767082653219487942948436876532594810834365824694515890571528634390682467688399205895532998810593590093363972531326610708609340244864279656491459387322105183938778863837290681226477215829584446225327234036432100576270656984247913677885992415506900368216721993455081386508294047323162739765877804526680188060735384858956587651236223272210036224681586571785488714550138004369200158188638937677020811001045531845434513640021562276996785224760355691573646494513985373361333701491448774189857523757473987811477934065802461792244242453272843216201774042709994002355194752949775390012415669555962943087546616618286072332795140631405217824079168897678637215794498028281759222956626821164687310561474892824339514999425174494129481496631813490173848723415318096421403313274682137541495855024932949756087488437036803071679104188016205748724919991315649754058900669903909811448335365003605289186972004478304150739107045808149063627117403633553210651036102760339491809888002853027934836354261839649099406135965525077860862168397256942636078257227967737043302743068774955666685664568483038284250570068021726437747862129877008084170797239745553463716347745661668971542931947683402354731988187352468069862320097231764681638363612131549925402712960560429324352627766843845196804859733123393345661947778667540307031729689380141873640876233476586230045156322757603983705428679446417731148483023809878455054792801229614213352134402850657290762541973213899681616592196645176103681890916227920905644526393335664975646252322247275204361965061131325506850581851857804155287467893132819717728044190029604099718015397724874062843484723291822938230315190601302651320043325509077546008075581068472258137084776348201889990801649391104251531893720025174609403810785641604656228211205569800472836033918587986226934469979071943881880073853478505206598127146231474451316734443282817254048474358462808112500407623159883081157920216426599353539792371389985653593643291883341954654523552180076026734009302445282530474058558902107523865395861272602066210035689303358335054898721577167806733721491021702638579404175737533770719835491192822338725332626343145941888829603062561633077825753823514183859726305265118483311517410765951306782427696896819719613269113336586170967584349479957476990952487832377978352813653862381189323334943271688498679090995045492682614771006308796916015444360683176334328665303904267773997109825520927197448550273332210517873926335342958302657731370738930120847325394015699966259682142797594165311022403766025909690252493208555595240258665572974100497705145139250046220610771601548246643600712889527259683356092984892916971683490968214172249929822615005983256804479137516798591665575307065218301453640313376396082995651041095858046937764227131579639349541688983241177007817372392462467261112605387556641253592220347759673499590042308512881996150701777270082475587008541095550878334724262983379944327402657734649473639956575101932299029845181166874058688672148896895921592830332104998616323239827701669683118684917409482095231902673824494169284358350979170194460286872923319270111033810440263988202360164101907157203746720098616559484696478286353722435898718433006585843561678684327935330402679005604230616462735328814367466126967458715749710263749754152028558849248215313758099268579928620488481127811694924462293887276013019081045832278789827063283530205883710237777162623952063366296522296190424949774990994472307657962103743698822378121311235134143530044451097886403843141373471748605868287788570277838944454308474953415902620770508425096504189732878459894059685163503406442027858877991493339600576871842440519708307696759346498037641073505532634774516397636085512196783191977456678620898369097020892223898606909856992661193016318506938492146854992464109211279882732616974336391266011257196397823722213437647627984416914141505637834746522643412119147757257365486009782962150279850362020715956932905540791835409746603763107371323482467674181044994166719043398308673548790345043716767700094608508243543322251556107608855869099760917427261993149665287872399781761402668439937152662100370587726845832160505134183186443211587206838214069248133871598787791606924551997400072211670251377181124644386259890534828099672208254092431184206328323561371551736320985383014285877244888395285001164391563428492657552722692627136231848600424578515957077291394365033016688010098343499330897407925742098909751916211628553301429396670012535805840217739649104634045784079593645060450720559971323188326511557341033484579754054291081115355372200089194924665753417354045901508646070650352289771922498827363782089915951208528379396002323451722992643514515721918969382886073815188541584803491255780149657441556596593822572545320728334418769889193806095853595315834150670464626145440558257023854938487442009191769344717113936669186126212210794677015111607133658945211634922522559152480773175214659366468337488061574231182945142476255773270214881647281991421104616874812753619109139911011436166135619831724191354381192351472710721171130896998596039391710028242215669916768471928333266901858999817279704687165650441576717069511292654312179233467949402351236949839493673363684688661401017596227019876502418816538358925032476277761522681660291135328242659774192616428138137688439532957549082969873889746971081506044532231570739600437160826051655140177736748505400416226510568945738858020611574556069258631898567137802856027723232535326578215188532497030430362951173155579845667308073084178170196547672575455434927862691995230524345997129875068412033951654586820148233758653599717185989628384158191145931872658177458482506611233015017062150170404093564872006248134861734654869268403070234379929271799778438101099078759078540278674030581352865424292294356231593415129109886463596477724652191337515120400147765690367892108000051503284302418879389211408339335574009390636938009390211444741024309349604602823034573879375674995094813777428668294604328159782138570372756787682504455081536689579521131363652814879802256305365851185450205671670366006771103305081017927139227602399823848156865964643507091487025755755054178425662018870752894170748681830179801597751669237766625284239630487888177747657982277256045121440784716140139189839656348231561023091486853628201047032641990943264306944192344521835390749533111398616416348643642695240037538413060107521885312611009598736534656862471391970881275258763852517844163897561513346556013679391599987472995844897032087229990767216273940512430549815004062565355942034372000498529268763940660268400916269179538095640345046224522072845989434706570016583180108579011100507330539254475175207144173842116444933299854938559692594431766677124630645436466712210612099719640542776067528516455706891440964037953217877391172034481348068523803520324946665761054919803572731905733196501344155404051166462333013200063770471604209467577941071896157262521137278805923182902047330501651622364737684678798634665647627340140360377921533552124919815583306410456206134446698167683444315994777734588702218462402741723397401383876909055705075808571122623274846633208356687324454873618941964522032530454258614699198363294590210047298684974269492208988190378725213193927383815241471773181990357678888686719939567492210994572754783614874883078195719937439796567813043131565798917142413742813922605240590773467187401683471958660187299078377425030953273142174344860831613244888698783063011326129810109645663845146214490130281966632899987170064083688474241808399894057460513378232341595786723035412538240341604564513128103851984195138092025970454628313056969341833634833841778866734509452360450847442672283593785983617693633122007046405394869510153481212376222281166462396352233772317272589682129784977353953443999547004691481980638343878015531445978311241665576190212579115136691694441372628536571053323916637850687257900413421047409828036319515274784744957918231027071003884047607335967133519245210417739112487053256897477903069436137217956048636091714034870924923237514969804679234131063098109650792176252128854481052095311605896396677208018172481794454387017420287848363368688733515906230927105692200431231352291439401361185830270280291290104066985853320256754526171096376321096562258685488813767584326865777293217237290581126684016184873574579246735524260644812866237920455685578072622559802461225027964302654321743021869393762778235179118901831007224426751272270843916110508483366226143955329838070599086846634972893000487964095860200564389185576316782202875432651459970398857193206636284238322986087960086944844295166495537814365099760132400889461747349549933129490001484080919359065569167538009470842423890275661093581072595485636732464504823322075925971958030702052149202474063459761182869427907304356546599833435409349512820586093535474492944717835711815452503921501205063583406348043465705186668418734369361896089676507854789172673067428561745235713556358889945699045917519590214474757972704715784340741651540547574387977943657133903322662749222701803077674696950864414869921606269192642730261803619520197320606394893822861909096033768697854402189190610778749748613367095213542832073484872287408177938403905395758051891239601434006384636747430655046022699734249463984164971633950447731353232255924923834963972051425588149454015802952879532779899826778416550700456491346827183172656029033096357851283853508794042129768444143761306132758119719351599839257330697163031976948637332015149611001763964524963334731237882310035668999752240576946833024905592433411739594362941897531596717525001070765329200396315060380820786020523404473414275548014899227551430901321301686268781368741611774412472833652394355390898492074338550231779932396804740873846066974498350765461818938711720615538557041671797681712772015501561987329285409023293434530788883465052675394571622529012015415349332589542187331602667002483703379298261131348565547082198410988161956147862499509867871904766754042794175974052178893588439705699951367068179431736108040599119667054681831307305344785676614223359391160890799848224558618139634434861525441224652528913060789491007090222750089236739839894802078397597758081991973802522934225980364978345669257454275172092905464770410816208558648686413675149254634981420786655220270726611396487740690362957068911895044600200099543966696106268881198816322417195404687529740644432147793739940874303202011370340255354254496952657749345971698094747601201111526146287479331091792277055483791010356544751377865418331360852516391203710258759851417466060270490940066498596184881153997930859416421305824328123916131716707998110818889612125117211134859856791290758364406583725133918644763144756143327877512150483576549815162128766059845718242073155916887939915285795948511938450445145183141425997839635236014172831865641453454095929024152911745338845104180902382117406073061286577086480555686769269603284619380591299544032103369368167755063845705415417888453932532479690386970874146400625898744366000054835218381183260077443183076279515335707190143666400012250986172603628007449833704644483724266193424007004106111594711521201131380277220563769583009897999344376887884871849408854992793508485281637897098620209906718227456297111893341163619981880263990053541569470917355125847618397204489039283886781044483096164683335784201681359172062428576560959915072110789975640291400666146083093209837513073338562090636378866949274787282535878485870975559457312737317458804530970786081489166259865109632168004825724284856443247685837337595592672412859974524695744606842597012364216053930563581140036705098437350996142441460430662364205688898745543402573678671799865047365167498025580533834383432027276673969028916877202935843680085774698297214366161353577886617223207812201305748846365665032052691426537495851600425006636859222466913955283621033337008429755232201472164022681102126683523613206595234564042298211752430166763489261917164652260081838204640130845669190059947664290470663255417249948259801818260680350306764869888787622191394268083480369959870557623640586682634555553962216482814277986121542028445349368289520674117567536760163275633811036981862925902831918922120010075325621460509210998476336840173920508368450096093807883937371230111828620776879779164291283869243157417423220209010160791125617673122406580151683666045017253432555135507001315505336430041125288340982976395755506291710584970141116677683370094163097799227622582818837166730222077138071536776191858135850907647417307979983486671151126166377821498985425148332409282290079176579262796037748819030522964899427194942450115466339130629163908985138190263831948193671484559386359467335175460967060831300040740475576051699791309859877937545362792577066829258836206612568149556585843317496180120821425151992667178677584206185335272430130944404894548602414429126063154163906532088361140114283325294545585706335562238830664166112755069693516344435917358038924992847173272383719953079901506654945212658509092458176740309900984987641199034778675521188890910318584223615891697479539175831217902953928850919487365005652175168707058697122239030192832475510058660756933569089711136871499639619388016523613012075557495112266376381156697871215788998135333099111787190466671771865936147168235998590935459717108179911833675465941766185407045977433510773696771406305175348555947575932524642199915556842289342670428087130298987440014588358269751250809117630097098016297037399960664685155590249328398553933537818282686748478495365760388587492691823635993030377491979780900724143121705560510400578025737130421306751292074641756067498659225583446181826693215934134184999464198989387262580661255160172762246859086151196962274613964006206413710412013850766358424782469107889432538221515072599117563999827508888071756947941822768328345941784566528843855921644069034311436746840032894227839703564227661715522632723411534994632429201433441924845526966664536861119640954004458751434505302617554205877317436045502438737771108610226290598920717889675215147713795252554899137595085762579096271305065395574392245154637584804347130432146247342069955293380040488703642625756548584179816718404188790834091767697137016054078950650789487007307067173107234909399974712566495791192501567834678748989408870657831326690895029563406788353500600413675234625153336726099481766157164606196341318998154215287995838998563710032695604114310803329100085770342121143202765063863735812241625574008085558955168719528630515343554640986585007257207805329904233243009900843045024268180838046832756572876849687997104000472162450109153201067270082427729811815975734071556993600503838848064807694825271593541319568233062915936685584845727744203422758435368741640912106517032966249394177045218008243552126111563253546380368366119614396912274214270954991437833335498691620319614897333802527632985600680082657027691005176568915525603716749421492341187458464305129724752611557622363569866005492887923204964507350191534181086582579084918669947301228877520115211049268390301162291064183262419181750482289823330639923975776997983384557710497773898800378930034510810447045416356393708141343672668438253483211474281234193098929129429924201839477655034237538793341871213778652441784892246347952940852415773097743944790832349723117572078152057856449554386127199418791763365619034540742413133827174445894128895483513127680986904116546706614850090046553208066345485525122728169467196614031155670015039145683936505201235496741176220953487675447052086905606713898998046428029137548522709251278366003905556439870544325542179788834284783889829634434310552630126872582634607132571040540495132359026263877681570068763928627540311434023830622620203573536884057044964357566829055871087850473552076146933608481649748902959832004153854311904840546443599155361772407940594111814894710696297632378413588426102759058990492034771891047088190936498362490400629836599688252709581713212578700842372346572543441066131501517795484974120934960510822182015783424350583499075711312006073588668818586569657821515603448928359113724678161710754272632180958659522932142248022436120370281675018260344903136270718369968424958456731503426771872132929625554611009949033468557843335410397316420103796114971078900326043596426624460911085507578713759624969625618540843552496951282389082164570780263388360741861482214492192102412044399051381360263667728419901353491612504818464431018338234338077687335798978576355762311461283342094997491812592776647003169058601284051716470099110899764090038909175086486402841531602335439502708067142189517849799811236119933564839043165968895452334382252274992654609134504693819362538560460119126805446900896480439984874831597012628276339651906412376702760090495615828527656479891860441904722964750382632712892803408531700049937176475300918161427560285068772819517542686094244908307198670246154017336365182348053157938477612452536632998506225886247854381464709406123205171864684498124259639922493319460102511381795427797145654686460626908705632033027927831754962828211559915546837423802642503722631211384132353569927316581600555071496596083625274776010511810916452456162291269478677336026437255137457070648765094460618247729550921730348923056963199121392701104467389806303134816459918363811863651936208985900746678287559026648548502288250422388478628878356570534310958064426300104580631001460841018093452213385383686151773848237999259026458631088225934822369262613747507447711256228865262845965063102006793295416701696159669000444686385059502980229315273783290997472435105177008300367584962056918352062068562122229179353297246767610289363831512579220414442441870921986494191609130047769606845062257932450986248584313137204378940156732272307926650130368547976184965291339040034503861774596039476089194714969611941020883817673829537302578210171542871156782971667325983532940326862439222947470929149636014856150157846848965022933359734870696960267819000980949371434598716291519418699433298856441103972984344932369267133721138373436569244892606530446924288231246389277883252579641951195791578108983717841649347902693634101936277946133605306110748108025970470769974571843079765782842173732052218484934206262384715879526973931256694665316192835729573048033270157153105701533720412728323227890267946784208668246001183022690754316788652908785565311773059749790105785514904169694576915713135409475870851170496722719488694554793441832606756061490261064740101243593589609684989786108879380753100775402923076429567566126622258727028424357705699142267938523779457278795674565940429188059753071427111361603016517824298768617299480173773382683080729196318548379351292312171023421821003214609958270879965828829092955348879557579928050587266133553192360935186380268690041887998813024784866966823525717358299913842285269121047293387894645112229188188684059785599637453722764785659533092641982017568194803175799262023376594372491095620343117061813293873664120433307686874191896922910238874606931768967816742788764897216604517014040533424905328629753117960114994337208165505375736155522808040809019517217736626882759839914726846662738079382658236307475233771914275083064022156596022411676777479313814129966027039663819094176252051778614692587487844346539573031292892955195435346697344743651768305954629404264206973371526502191870411813603269093829012258602027129059831160068946170896817469106662777092320521582244790600078848299036659749070417943369166180441403968664253772908440665643603995638522219807614223730588077728303367499140156103314804682812773372400857376075558314871168103032193206321768524150463053863173372577289441625416607163966397823509653669607140203927637356865553134898385941999666279346911553576014571891675888414204401221013377428974642791027799823431705524270373236961575692968364715940403769779602693585702723014316953426118888233264209511663564703947507832173687239229521304806968571573510725861535657370294704493787505737710944558847365317771068102425522124704545566264635262594206550505975715611055964803854041538942927780159243008310844735173744802084356354659375316332577647674809302574089627824204163102755818028939959513698430471431453472521983963120269629208610798797620101805534856293713602761885827850718608281407900105561717377986113190712192795013414547187423099281566562611654964122038893510161227763491046789873081303456869782180621853014358343928313759278593713449410444122791803114793065753481433664977302183162045231429072247957719458406917090939913563500032153255973348924048958882829337921129350712581501203426322845894807847833694548701952882442981434938901854014673923550805062434633850236793961677355846186224663278436432747162219912848017561640100210198918549267128407880962466584671067481027989181967548537344647855201358243944757775544138226757036147614292817168840458995379297682668446012659111648040915160774776613679605265994105158297589558768979027636749934569805149531830263160346330369526727457117508122630187539815526232010944911383856750822594363328396639196029202045259499705864606243247760799457956594342999398173072056505907661341735070767073199939043095096224535002350369957197490365628368021225069885979828596006455175817961564977096373369849136412164380405687736932370680991280445823034589051303477425450561293650534616316286745051337374254699577258051130696560417674941291990455699760565961229279123703591324385125058360580503449678563487310479232969357707740537903825278820386824224927052991212952435601786423115639295043632178080342949830597046457518565245839114007624265535665002887490007189800983300957790444124893053839684502639619380647579970154539814276089196830197076691162123206531001868463478870329570820965034009658267615076994790935612883022459357460056359571904514002660968567714831814644278872474886373518387047951936383649055659560604066697610347736152389883356982943581633718293137888569852143704845279528117072757358765654624480266984098650881003209758148796184070531325410306987961027281974594006956080465319077805115412377243064021004850266017554836995105982840661672520041665103790202691764899526212770229694661826976974319371641452834572997996725812027041305925674391722319773113007111347584702081924434839753165858863845066126312399451507374771236246824387167219854539341352048644017897905393690291126461203786844537067112770464298020211930280109553726307540733229952571877634885967194186782602909730065001975447716126279346187933894753469587307593393681077938382951147102675077531696878476256902659407636746289253318173110343839713618286370910557680454582858815436577075375459756790054467659053454153835567805677768462290445486723661080687495686626730162900063372284889103242258985389611629387980564302922203209188202475326035908990158768211604948978595342846501707368842133331148323628745119454966249786212251677658760328210895683810150276068866885823947005591383837685576295313959735011459584222376008276411257048503493536222025640438912633830440783515180948983363681753253912984838546616538787359562058537340658769131791594779781770453653782386030105334410653114039004131949476917626211361138682536846637381964436269018214273835234592513145729049814446086848707201036868456790945775788323070096488741241305092232614627072546052197290863851595300487028732541903771023837353285966535055317042514471959971619643140178649605785562965375200460507635597523452894619263092938378644090069409114532632678413665751033140610099711558220624755916374775153488252095715076481419377057005714340037350851266504748228301073616939068881025072191173183642067266085868134788651535352186223155854667293684680922763950744396188835387458286592414372773877273469596141429189054129141835131579588023961991081055776358941655299244436646343233512643830094389654286474190678140025696459306851516446925183319450790202426800752181741320094082127387119128592164588478631738260891168641862135651957822759591764270503970481295039781398332092650448271057346427851547369299882576181317327714796889194307332210521589973448606470523312596403895641256633155339390988499348321106138859724488976118554796593472075503722393411504725912195718294211565924187028775560512127703730175684595888138601544885619131863353529219111361560442760449933948837451654113967169023281605850753811853336445410995068365502110730953380401125728464844543910281959875805700964792315511999929832035380987056921478143756969549833247743224650231364527850833463541563762737534515979052100732836668528399396093977897356416087326306178659755738874664731788835352167279496292154432774590813534981486596805128090364056726104411339431849843170977161244060205405296205224627632911276619792587484725952349158115359204152672054318060488924332398803729839032623793449785363251171730986239136039225687299473195690325761114371849554144771478563048569031849589396988460636709115228298761535921086500244163302651912394143353914358206366844133953996684016617862435323453379340445570777961239881279554449198728033517333265120244945602710975970014341312868004555573585406721764532210712028691205990499416736684710407558682579903682906596669490054861808401368266846798937290455271561474317146983392075359205836947034983281395945253760208747392912187759651841971395395732100675559584607270484412103514131166299221243392015754180609579277726834467764875842582132947417898523259092201201122976724489993958512250340820437293661181309745074806849674678095259238265294895652227288678100881608003858435415582454224623435289613701078557136147477438859969255850776555022969963531099981572256118248332348418303399471421857973495713931123974600810759738676688894181337486747355106367037659410680904578292891056631220361996931696882492327505462913912872938432612337847243409651333144810023891657084684920471390282585802431582621640691881211928811226855591317765040625362704432360353009675471160722342449488679895010576610292149334050186701600680533776736227794369881957406435862160229943723582143528643967252210068118356311007928736730581047796596848261079835294912157628253935655794321319151741995170546975883949387579231226571542064098187678500626672660553339663608914133499430027412093018951164033731292526524494654198801609382331278191358572354300731881724733324042862435796678794362660921635970044546335101703259376746724108467428251021458570776645355828181495882721981339613440466082779818833620918422807423616710082569654999225179723251021367080692428445035366066943535498757499352631778823454391416019854636387838561556545399476253295972902408578277008376688477479727099211827374810779749419412443041990112315943739064985635273628142311176308122131561010552483423438834736642096730188720665586523530095702060594064928355797655914300263122776849788788089068155753949183122218954333949236711391021568615930962534944191523174174831875477407670257867847748561855066410536328192973494625685267667591747430939158612033127691066624940026008285129767666454164475857904077982830199848717738956351819220814295218008491649990942045791216929382426045882906924802822721500181191328598415565722879120871550041929192188825498025118349822457263383901527921572955318642025721158346945056341043483520772649162824790280103609231959646812460509163793105406486794643158225773815542454195943984902129468690874039430012374488439378541985200111528306047579658849794193762267098121936322169144983388445798429151399441220736745568923256361076111497320911607898751004655971547113207948382006949436923898967036535279564159896521593829725345329074857597350391920374604791060204601990805981213170931648164842633826281892072876405202942187983805378388661588849122821037588340889191231293741561856982433064179672785743916048754112986656311534262773522319092897544620735824704890471600471577982351797862639390006930204168069111535914960086506345984619819645622379619905159412134308226052500181804229497863260826920778567429816850195860426546905566830146871226050100095915967599786027326994715059558980313320010356192909647675526937256510650531664232821298905935487010431866342609687232392423536380721151052931173662747472471889475682465164339651485775114296337987920989097087219470488928852270985718036731665289605075629169515059450850871559061186805197692051730154981506164314955292550871671197778844844208094305209226252541033683818420574482144025420100818631792600933441649547425589827016958343010807001100818842376694708647172483426568517472952631311201564858475254169744050199066704900777614489149598925691462862894426636237266856424307031597315062045220186455193908081562620794829903962437768217005791019056669994460988281372140343544756999008390389262271713441323355254385683723931981821345961606886582625117702508766954003901809283754617788078151234077724571164870314709431400589072846049437054759456353166310803901852156334734295849002387485795482090825096461002771895673949917085566068954808560145032268532817338559187455588915187588877444702350140420515953899981209775305271335119279200690646518342213800936767206058185933958046041573093886857354014072225432208528915516810645214190000305042298680127801875986450025430824409677829990252619690750197177654480073373057188635340594511911464392930863936819964950781612316557939858378271750827559784394852578211805918836575883860859849568208238703266209905184594475094115565692441389517018044126095041979780468688599311075860109684470054047621278640753234012363534402885462045445392957458500448564399193208654023697826632733614181927979821296732394631960890230683219582941061411341747153240246059766772327356167321105503974352846829195999214382061813785437369835505108027191841593394148465930762743357302408553755745228863893690030305899516326643455624591204892732319171081609260203606737145795176778041382672055956926620969369951615698953527613508984672812029896173995087394858564740636737565345081737753239489142208250885377508779811608985083502977501605004192614567352479477154527858683719225412911827712283084394126451872629188607054679975568386515781954328337457141445481057624601971327315650510041928237147287325689589136952089125508210146655542120597963976068652123571563082465233749453032751059925227464665610687096904315982292035850311327210632038620304576627412735295149154703796938504597477360642841569699324438054253707642637185611790297568469685328356762103279782444974238779872103575837508839229673795399228295162769467834391598165883406162531196096713694846451836104833700329479290208588962962479227078075785062467634002572915969681408118513980771303061281905573065616090569675363696224342143822829966546538074332668466612963419400454740854340694166982321766133171879100339711295107681908637676597035174922128045598189449271470778892988842841244296557766793923646825210649449493301311938395710903698056412746157585284856867272889932945336275989720440707287053459253770485262883110825288071411888512187285272900353917488906407860086924635410504687041879894642474010960990906460454620555052245756452180446100029618027274240624604197099020827063969452157772548908754763459379013364275533922500565259576510427011686894809195990799156548422158432268775494205582762913975283106426828588359259916379843175832440572906052133914327941327025099038448842742579111155532933395273926275735560574751096884353850281849667818508941682492156984503516675273513958561368096884031344082070588141535601304762766405597779878611236402915554252039072008084234334963275194448158413695926021456658651445950372578603712557569529147621117835128510724729112538045970066000928984970001931753132668941651499467976997293203618902536008065915689715369188946134009625206368256403029382226189350640446504813432369641886880676873449069982730401288770485826222226055166521154366135229715054120774539022672607333055382561931214334558996500930512545134853303966123120850555147573117169058817896515347262572171332225402867376598136796294742565210894787481245081499891833401321869534177862697391098906035997843606645519848756653172524264678401491482930382146199494640051423317054991147372297045890184311442968555817814752433128946082872713299182442632638425806897087112082481701773324313675207245685864231529902875511435997323221201420094754060715666474556752821546900639028065647490733353987848457795772568030880340667564751650577761522833736604658201838075132885334872739626110160392934541228837442123938649117252497063414120700796108896553698891268284807580408584589579449186801537667656096666497866397620843723532180416669205056584715199263954796615407726530567168422420757654063260371562382638940920381997969786854659695945495284229701577875921202368236483810774485563131111961033021538911205224624007284587341497638598027817005807517216196421420853527520594276740185361293882421008875895528460678131356121811187371677701661362916166775660224742458137406125920579107789990078353622539661309926196429248025650449828186829943673367512637674899098496218663478472337230829713347405605029180385701111534187176294775036550475918055311781437868909529134109718885837149176278568421161013655075858256729866173970807733360637016086742087693307809542334860908616880364030887189626295333468908207693640454785590965593701586784410005892107989108379427913789605934978842814292217893376649219320545192675557953728577825913853101196960303770943713849465317041945848473904657401444004588228504573966337839078683777581059878697744924831299892408701142986280459932939445922307914133184713336089749808311916906701016871463771215828655396369335338828656348968002759891743333461470918523123885811559462613809504177886985659170646349269481845239422407012715284540811405392061551401465312804309351635740756901669962715696880568373069436075906545433964209561438631564783092555084741527553284650707780814026915735033212683001323915653232746764131871532407786119128971529168615198674724124335588321100640724693056521940175102437069334856730472505372305181666011895148742922783794637028688991824996877306213886114415435563453869943527583513868271472230435362055435315802235932328718924480442537769437259116936395210710400191335065720705983572075293987695885332495849402300927351119943618012472389662989935268786481627854188765873380825959058540951472169986252854647472606702175244488184590577346249737216396244053643608166137713403936468492368061380828356810040772075219910742373120989829118369702272898874576558691412015256547291867364007903026561495498293875598718484277809631228850356126428675875673385936490545763386838723111300558360573731619432869116591942131251463420613044160224909672600102132591659852967760980409857781919802285402669937455683067062683842870982417600295736272171304446792097204008706104345516836752341961761798493946629268792262983747345132382612529564730719650486957719660613963895937877487674696884057168477025293770298469039279811714800587315787369094271277548587000550415567688123926750015035445701069061721157786252238450109491297138962093406465416043868374641831067252872878181568766341003648265940453032943162466349850246036640313892047142867594411562586867719548773229973591923064797588771537846657669691368328303715299380301271746475688997174571789008199910233545761161099163044660691914689292478965761609342787413904598655324374156146906217282629061203545720889999831527063324651624982874993715895790971097241231942187274656887335806938869334678202177828315013128011018600578305822760356711214297602225168056467014734663880184976996765284566219338959556216093025431183509430601848687472926898475384676372646855423137875578921555767245617416407373748913549185772778181701908796951242344364135551955101961623327169887552935929200874674395913815012098955871469559216516973905854752595437355746026386022952243332960664646143701907219675027683311623585662756559094136791974734760363240679152756523121881286230753038082160804637377925443793341003831359454291385078968761521279173186784475401237515934714369014663754988421999963896022603107568087861169517946685139748962673700321296742435828912568420944319624964317064954084486961082029901368345030429741241995449976643239763246161828620884590536356266868466424482813674456939557670824904479116215479299182937897997448716257547434646584566649105524193189302320667474899299069928495702297295839928866129784391318615370401773182753348132643116195057207022867968060517180038892673343685759392265132535612150507215709332809628363932578298092486321642391143688757759550050962184941909106190023573125213547239622065260687754292756859162320763417262728159454339130751422973578270306599045897126677863867939544140308351562452839224939104290977865288661286916309669041947540556823630574797307867478838674704664322013003620064153091801076078779071590751914749259215037817259466092988692138107473423923371361298737252055130075262327071498865661508178492280828923349244298811208274872220422341779162847247014615153103155514416743476734114901397950634328461591409677876140001389979856349839267786147457637341462300489165225452735280352505330314854909287857155295890694615451369430168924015646980426963702045560348326138171943683104623528363575353444213175246037834122632310541735761434595159537006677168363619833098592724361960431721504454926492619117726622797934126631004437451405294127964881750419709233148387532590382733398373287128639727907220561325256321896633736265351025830238142382166327750108845495172911044132068184395096593650696934245800963317868835236295986647566661312826007813987117709524346952199188300415519066566332806185857923869372894253669898478825611310252373916120617158364499936713382510556778016479816044695800922371462477263646689972872789193935355220335593245093246223882186962420475726434626230974913642299886087638832323422458971158630633967561078014544248407385024633139087701928871445874707352081571566177563470179971209083082834146004606835147474080570083442641250536984961472609037218063265447290666145940238018129892818706396406717478267769867203918458290041392226544895505459790305441767586440438742234619278810621204754290065893897496177163352336348253953292910627400224492005578538840221593964113468191426743150835433012563878774306297976607071117468285242268918995877310708863237214915662720750540345865836470966077490948611054769794857393647419133917297850882712611753291498375300120099820479530583154883070799941767560364386117872761057715827641911426213826798564858715932275622888673775296877467488009690680801511931704221485667829356157895371390748744564535837109934672571496292383053695720013700011227251963735817995607504800946282142550108461873904663733072193732106697040388776877715281442820647263217900560984024532018625880560331350740975758352006185581035981171062440373936137384775347196248052883320261713934479673001282437327614814949008943530325916547763431394285659727321465503243452890484656721009638311572546399935488993565582798093142418919876741410110733067326408989676588718012200470890502531604914050879283661236656362457095262514692407167992017829768989303715728902865371121759448172497521225693678517417073715549792938177931628390595284213079217852840262667782533262411564659485317298676167782242483407364507131097850438919916525894031695163248536795924859889462634183842163193699769697401116251250472225121514134045079354637478135062374568927751873350423604503076348151070548158326027093438795915942234117769127565345297086642297645605704341846195229726933696969540196506311371612749721732272078073866508511666445303962223543764286967583791663349806579945551891941260703324101076685070196298640963557718001783004416519696364337486679110668061505588164456639846567226400070682180984878253875677676864699354382758625955744683509928544285106077910838014763602766835365992416601907041182066113328202846637112632067947145093016340982402105079868869642631785962506012250965498997930596577424695126614555166870216759447835484358931689201980700061934593364370981001162564159285832541063312029536444087865998394486290066626082453053735954467840512561028353865392750649999555860231903264103612702024759573327972060770159344769508393644966569096937157973084213324907029628947662721740790819254516554593735384700045394583404006709000578296747059055435547144767733924735840567040081318050467340293082058629791491605432470260271219878744268866901642829721617342375793465605293575379181587415244613870691374315474452647892244704119581651580112145814870972844515961177133287861617076458901082829509198849973755494857223376554267522304730702732389278602570302369433287550072263775293938695206698418260740604518412694348191427979141266512587545582103617529032237223206263938772476261395138153300205957853470615387634827985266273861388195586632860361120224973186362302249044663734177278854312000262044614895860655823419117987533787514803856259065188449523856737646350312559083847008356681502208687464055971022887847506275898964988650528134630638062245361332369472804252989665913394836887332510101135749393130312470174577742319316918360973209583301889202418811352950785058976902784966567663279016070642184609518414587866537921952861450268425055728242827825518744787259426007093400923851705366599399079317828776859890797356806443513276446878646337514507795149924522872340466067337556492445906054608035072438125502148868968882522103371035316878377720480354033110085848196857335559098310185991598406680165096551997141080923673820508363490459872509301656228694416123080947252758436220563601209225497388813080771809479568452361923999785618391116773887603185306021338997752353738117664833042235218507669325622637020944427936739733911371882089339184747058493112695325554113066149486674247729487193373872568791767856072515051770589118064071457129632093498191131586593867997879110693250304814818126398328075769794855790618698063707273459222417128430291912702553400343349862947480839540059646426948013464980155642319218844024493723911445917561940370480164254640264968305498654482875143365596651553565136083603314116267750902498323439263349444048111490816500469074679090291004836644365712501634254934962896502155941376642781201219641594307973826137616416300133631135144895736647916208864797004430444892414090720449583229213954609109226456707308924669504026304216017067983448941413561301949392437871513897206702993881074108617641469648157506636554691240335962946614284709773348653156395622857250951954342980573108015589239658319325932207560774888809256418366354041166731009624904395119759486993997383010597450568658598261429253898459897754925813740888178793811753774587727996734917184987879516366065357727045853336676283293086487283505926535482119661016588757756220308142740612967938870484273432446799163736705529159473545512436437345807023721652231524891568702988513923932650637889065477556251910751074398425184182529744885260162987945307421188854690178597996511788276052338896410046012216022529004185413513034844752450722037520702206925375906559676666500898444735500121294261304299492053854317048044072076540289218078726558250589965705316225922570771384268894014160881545540451346900865754287083385254736042560720116259513571340320539027082932493650395082092802783276711878713331356357954040041583921407038658308337118051296829881730093205746936580851788028066169886068636016664619149265240054284028679786868535843616877970028659850189193367133127881088027763341225892155303413437078057134059891184154167141128988667737021332632042649522351437201815409464003262849867874860991408451196097757237282683082828386706218225568852272700001242580620209209364022534598852164592656067193672372409556094249314515776836055419817759362422309028842915764602932024657843030407960623469884706821595944774538377847470375289322320663960499771879468079617175470323983311849785526837673239988211609811264738811015424725742245297297859762222344245479025969339745720544974361583474073368497386957352386043314679363898742177053905073529997660092305997954196893423355230218195030275253259300565014927554729879665284768043319058373804582475330611243386369494843162359567571080421870837504884995557678823836745478734591332894027968501399174663120924760265544682876836009777239217835162222082275739629397703645876227713307253851950359550005885827856312494115481535201235212141060601268739827350255348722665355365223220907010786794413753430176947147884791763467776982485116421246940155698690214813482058230850545665001554100266077676667936023797385028343572243807568774453268746351879510826974631111230464772286656977448674885734974252851489410642600930546512322202623845809709528616813868013258590393630311655263794382738910064602507443861861162494547480512608716969953040716322877904319098323239328309067862302905557146384157411780925265255111027491798649050457020288963804186202152326765640034016852322269741734352019605920568392127386874923894094468214150666987720994979549020933981812890341965568817487993686699174325484023002830515462317456548809694320291436320756347095238088447061685654570303407037569642379144892912357159865160397090058326655280548193485683137969044327291786861108373862591309131175367447774963947277114580739064772182015462206579017517493769692006499221400908349287460462277646325737626645796374462183935386562668434163998796403873414224769168648699037459604721581002228781956664325674707119254917540013063218358006254512157524655594963406438262271655896147374337861713465521317324261699888023300556714192363155138593733378126876534790393946623647229240698194931414122418319999133212985606983743232565110761197386245929061861929466729687520745996253755073378226889135208411180531323817669808364601687595816048503041280741622459719894863207287712440546403790902084745799252366255559995995959881809499714899292355120906558214961048820673210308714915025498638582936596646687006607368340903192861109754413213145585066867075031796140251000909120096144122522407558109946577013780069496575512425740929420960469925727460101381555797412061687471525137206673931345353598076449283991343049933945618364059676823104598437510292290533029409780176281187696382390344285079669800646979862278061703465174129604796982000507550933091800151860623546346153789693562651709066880383241204724349999689080280019962525994712949997855118069530827391699015908051287962271348376716520391319689481772201585870252699124053153271928425319317094155787357670842159559364052087945060404832449668017999259195233704578821644033707378398543450642785973216488639540247412864766649886817576775470135213047257280438676056665743137073256999274675089523690491823177991982606622026485456506037965343907724348556479085683872860070679436281385308038675248874259169334151443922215360589540951666319285893829634311608409596099452894184689867397569499596573285423483237850219834851756961206472882299486935925624926345456786745965552083722452225677204653974310958633032177022439253782730396402000536851433980013864739245602324108174943649921873331682489592486025893159229064929101986993669086515961916499403159073056234056086563691873452470071217167836366102677644314980274857269731937491285660852343417867692312711930327259552750845938439374159226303855654724143137921318146007870234351566852838510982569736850314737544414613969891460608064553439230535965031443290442953478611065707305203713410912604394012562465330794400631039393168296741264291696356828273791340045247481923033364404233687152096346764997488542916867089098948544053342460778797336905869252997321643997366765838141741513023553132828515773563916126387805634046176040303505137672848230364890022293897632714021281047830165357696956258223773990157555807874721386707982561200463214188995105326476548048977314980746943919760012527856103150693844675338957185227242486831463727967710847274037001227168375438691602034899907125465423497414547381853640784594615886941162331721807698063279000010351304257946542721504047273390511273399928773778003658626763624452249538863460191004709821623515322022596996742744522921093231120228923748086470036167754565288159814841146936820911373518385730884334877717726244882073942563778096125870343285358363230621658194678797291526980407174976700323637548280423187024269312852976691219362731448508001950507088851676807231791665560904068367599368008038750920959740811214997310224460093837797337265580467529155149478284596090579934746853648004043457414471630595191545989599506410736349280786540071218300880258478864007061549125161617647922137834341084485454384997618868185765267807699788622793751615726015465726102828397724074426941706950938510406036843417192705792789920525060760417936680014685823076503085695119898313751473768466999892673949076545190189343407910035504131075093129005934454894225535319842865034034762787779016004022036616575278493552386387582885019097455399859613541733780729315782142977223918675983876027193532533697226287556699994343461195111174448390422617594194521564589398719912001784413735996409010946443594640353990894243009973889645103916433988493792283798409902826449905116881708267808705693008410809708217821923806796557365098199446532217375666220714679670091429337425671496402778621364921226446975858155793129083247024294922334658286589065216829649028804432670031104652997796677916377994278011850804647208233320091201423714361748921615367529821399222798122225569186341766543540310460700573122770153055819753059754100836200650473658279270746012448511248160452596500493970277185399583002453765613370302979826646357201351697396485935713789201887410182766523056681294595105188961974659872467314851121388344260298338416201931435808178618713982997297008847795100846365807132756145442385973158134270818824308886496859597729539122473438876970223481501728186219850154977988882531688509686622103284141291977350155942495471112754449975231131688218120207197327572393859433952584027370820909768326690462434059689455033553204996461038437874341365191450867365702521910634975495859782532467073947540747262881586776096457796940726441250179276239068089553195027463995742834732042992321568451600615027049545303926400172325414863073757199329917561620747345212481278281943768202272001647157854204916076460794653283800434678502480766494429874047715556532178569425765183070373610482853528373121130841453824334461256212718435548257851690402411565726771588541127892366980837932742853273704678732447181716062755256427184397847931464161187884059548899294624600099644303007815157637102302431514892509476897450716232957589074660104337585676177452127344788073864941551340605869648193999133186939936021175685780277721191949951085143251448076748693358536800079090806397724239809373124420002399289618131731234571972677645865686683968608374768409853263086768694173701660223428032113808118570116412698845162336986409924475770520012312903853918615324487112898191424479616623299802517924330726708539548663070266265065997772989794128621052254403837537057000354898742252200965183936696745563186506743254435581907093798722079850013672752890325837286510413779065125720157664085479087279613894675662325038093816589269842066307835758333722520855142800002339814402532771183618963191548544953554342554387367094846905916143603051976155149857857074055025464215497850469955034870007581881740434225761758202847495380159458844782723829557666346707703295730393204870897374501059728613980063980599630165911689402866137641049698051127427807224873543805578296541943152900132927191986416796950318013710728184152572989094331612654071459218681072417401171136820190554495909095194307770777647874895193687010921235176932394965083168077399814418073168309907761678729947076188296549061875194476319027328734402789323628295724313942483967201989787932040614289848757248638812224308992059710583322796398563570454252470129271261894733421561653329578174798261279290265124436159604331445497068285563550300274806781896302664889455447708096034348539220434489596082252629937484379847276245470231391196194545066418099761875947996859362773619153846856545607776760492580816175847759449804933882759450002730812824831592635681956924630056937892185959088499096983448878978880057118386361115012555522118350570566952816121223317089419290086019555315754974529722121789952424155884296962967334473003060596517451577076715588581613462937496078370553950164161050630342968421296104234880618819724648303383322361444061501055210625190086586340847416096287915457073058461447784219064407973389033078544678707006231323903548957166361162914834941591425564139664130077283157449855059073227843833153673271266839495671362188316773787137533670065187739184369877012038868500966024908154408292319229715219481210592246034031063477165881993785382862041901902354148507930024701757133615597655904725817725386362921275724030277914601969585984359728248064478602183167285397458320180675337222022052607783178296043309503893078728460656936268802909816770522856352407308599844978203776294369437756010738348115840189982455293393146655359734058354928185143536732665100373849461989278092293820584739070612777053780371890756003392395871524813202635652292979617664688247035113824375289873175716095733766738475785266879591402829858682850347131079946461519717569653762234419824483142323746586125611444500542628310561881402710389754873060043367485609684697530783435865083491282993541705120514958670420195379574191086562712138010706328451101793987178646199612606016460058051319707406789875887732061814099882301948545561250328239153202337665030745958560301515607728298095754126162131698050647993128449650256571103333541695005699617087650033303640219942194013899661175651600678457790643374191690789211983444846115805903779889911222854643178597254722638547018124789278449527288731114912963983204958556376407165193707199670691476139516386324225429184151666337375925691574674388409224854251245016282522799910336963376534485535026403725015410858284528435909587126673126464320414843927664229591296564014199921631687198099860254133177615175824008264673029176388811937855629621572774753032993387583860512462022172122464071476603562823508434592490854938482539054730293704095130976955384689371809837912307395709185542199412786797979305091477835162006488255177237204694974168652730178758178747670757129055260329274698773589628753200929762245430323925746907314034375338609117346779187096201378225513323890398998008831305088718728656483569354828042377273780536082024093547607640740521522955635678529021941801172423433549670128688587706110102948186913510023744810558979469026526909418924900265902204574199997612046842488334055624444929041243436081515498973487636015322718888934258613312816479578567710067479796393395854803962324758997513825457294195948126369967932311326917482300399564000569629648154387686294934984494104255933553387501919512828282228746124191530249407546493118357731788393154442779759042241001695612313625248246991836384192445632354537705211974762889175153805800205765327371788378089813122817137915552902910474765208998439796662618547255685522370758262153067281007606439729420209199866404645216615806897202815006003265377989695041362719578361185358688212346970072420304312472689761961303443469428384237934872313895828635822997456147658451282348290212594356264569265776880071336005376526929747278780799171648130874452227656585800112964088044489295283522290372160285644208972810786788232610808346494764007078873159412316698699955123627255836625652515891382235648677767237425461333802950041883327118409341958125318224798358152402139596213288722155669267812431059595135398407608027551937784441222434168230503441559404362465501432510244480776886092835793946586830760911414220815749987886727168149589566076683983551482517038488927440569756646416056400018695474392901603135952201599882829304645352927084563464083551077104726928267274617670869030710447222633339978900493982762779431364876293044260374010555952771749029220701975125791272923033830108709122580800028285446586005250469722990086630978751698805510599106796749400143153241747822834328965856521662600951947953286415327476636354704570992015105906001242068329542686477383076679636274774160714790069311742037127319008202323001099903371573518918302583103899462993107769166985137457343182425887743119358730899222108391299578805349877753890832364010318846136866918961224933313122072767921966019679900908258631004408050750704720673244136835293969248819225940849826832536632829996724535774735933719362317371094455814426831395342498372268350267069002800595935632453955622932810017693403056295721441658419468116725833300699203984633281629712589981266104153142836466809707023955829766050105997790858572511993962770053547244116862842368981485222356406791300256230856469726173237112278325966115549116902608169732903159664480400818679423468777993611313069070681470381089661172514001110477313192519862067137120742967987301379833230658789584565705277045950882620019417282408513883509636002796302386925902814749072390494970719436340384365065101265914563291132626865712144863100749613991253316557178342730015305196828652259601514510532308486838441005154190366290814384719450775712802597171904442415948656843353265344906750796818704581857316373008206127342783241409111558765177542322173178947122893941632192309913840277641465730465024215621434900254518662358406814124679403705531138135014088599935979343261814870886375854324947768478089219869556726007616210591610371655751806556895604390966120389355071124479942187704137869368002458059209164119542503464850152620181757311425579961128649862465834376244091076075067396441682428020964289389545330858041444550547787543028499737889318952421693530252959860207172713622444071162295463398672919831499703847079041364585422644065385133152190688289064634292802127583079523656618881167235096583489037935685007685868613180069508540671584893791185100806516428807265724416521781550567112987239827345666459235799230444284737830251940291967766954077307841608746943026750491134857031005460195965451403421046148279364209028716062011289974365058266644944789775246204829046587223137784947853238528060933576768058147529623940924269651163383430261267658966268598259887999993245645674794758383251794501209061692936246021962520366684163661812640841082464137547871342627537538442525400968299344347682556782519046811123341871973997273973675758916615025317687554091479045503171868538354447718481968493833949443148690306415327701815148714197445914005869719019289048590089234534328220883127264649892345153523195965167611406954342918806991239536523640785075064522250485429206374150567024104200660860176493828922528495069691694533815666161079209567292585354304731410890462824847031552741944080124793109530065006011850229687873725344520878536871342483218501827124228359314515832803843527851350003573046811492894804450535869770750565903990070851872966250480569179797264510560470545546037369490087720445778377410667744148941202068548119977459153274611892905415710962361352349917375570659163884107987516261682245506117658750016776319631753645399620071547930277779336148327836425011552550283041011776524146002221536044065432625765315830092777389794628162733354469440970986785552081094844409160048191667990571323972774253445441119150287714820061055933062509574277747990672376628519624000634380966203895169646861234436377531936625510994741502481269883046432157741065413953973465096537232785294511372325194650008435520463028967856367733410843796615054750702196128580009482500259388415569318405417462911806089403699476745424187160858745514233823121257061836517144309717733657504229508760020642432154481311368738859851005804522757334629871289873610224001319448804012282483692276659091129326359634833111491501498950097715077603120800316268484078462554880228183758126549229344505335141383613937138257899576418511313602020494138047487798192639580418780489089958709316557307976822056281748515485143188207945976750274423702963864625288166867680233752143853732177372547836702488800256116906488856158425782326603086269477568195886496220677343935011269244635907242154614418067481782679231654630218422462629750491683763312125691676753631059225323196448018746766687544515070856025207181767117152267457551070589444454962648014600869984008441200583192870704872449850974455065622154123484401314690520684487216841169295078944701699975598995485781676584210768066356434028666086979729826015681047776074247648728487288015968355216901169192137950506420549709428492862069426119520765300841535967835455754213301499506260229180778126829662628898839586483283977298428654848819825741538289389692377701540751368183233504345291037454072844244360975475907797386437057515359009435007397211023459041781548837271810094569461200581864503593047013038903397778531805602422777721030127331372024897028835627365379430716207867957048072416793541669814145861924480827951755506983631422823170518509282192265093707103166024927872207868232148348633341635271944826537034535345586838978024723460208711171297410256290046743381867626684092601942735451639853447713773781359416285266074293843261723688162019080071908166615274336897678561519863534753466728921806510819940386128467970119961696435524561757746360194033173516833953020264792232412941546083630001933060296469892295360026111905362747030647773058721705499121241856235465733183693341832698625127481936513767784908047515011712658343412103712731201298348026273633257896397481467209589148498755749079961793201838407861015662941344483896266752947397714483337470193563175087031463335914685032840683456619177845322185493447704642954227428332099732315718179209616811334433630390073728368543355244362525628509661549325680061732735818898485705955762150455520451315438241471010910821374858443944970826906880158199862327580163826302266970455415933373713800126785657506357447155721495248068431334251288346129865073468581246515363502628848636818506500865366521132469218712009722372565579700300397924747037790702899873342886981423636085805793226322210030194551609166830083118497932227532657656914822880735199619720835803295442806249473741705722178622397804270111228219882370802958780833513850945504351407063248445832771812172962109472455415983610208168807725371083093517942763082370858931984204259075139724113023058606639373914026103966368686084138859435900862946420377693671286872127895535763423865602264017454870462581358375885210203864855014436763819655218049676645037372426088741029389058422607089172542537724506929176304892309386268178270837765697015193388386582207825719921368393831105907810345915117024178149126413237929530189668621217603546349603564140822335218758038229394067360060311373256443731772835537501766413401513870061545168042840837205616865807187746202378918439903443041274650612620627413590023772304518079290544017639721472606405827971664564961682276726539358034829781504776900506140194920907706321510562809820537246560872894404555878152215694444339265108885549695587811933038681429296614649711139484159102812418118403882358297275257983983431656245739706665918334178654353892024315796906477186361963477224664582311505470820171472760654497978747047726453244549123914640721050966112451395924930044898753924480387628856159679635213680584820826535907070867475869180046936041416547719659177415421928639323661240480555959863076871309466547775145883222115371901042807371904152505707643995558152257107810239479800166597499416418813027691505554645541960390991520292796402966966179526190261846604334006274367188069745587327590439437755673030816731907778160493009197769537042500804437720770270259666954239547066596003994214859164774720409240968937731291649804393603353215498556529899103490947045250171294522011431189493329471441178678191056688538115104772484772733872983963960150983689871462636057417894172328598401966650841499085217661024960618823858194442197301135228554419632153822494234666998159905601110513361375623257676143223551577343845433098538105065327790803984185813083034313906804047940488936103415685736357074160481107592213191602282611782048380253524400611821144320870264516693135002515996778523358966110599473627961467394646679239820652459097260798965287362864448760987128181925834275688281531878503297048372658714965757604257986775469956680162881270124028950689585893723761097782516475271946356407895764710175595918416637310053076212357071467347707990267573765287934880116028003182562903213455819510994717264157698579004237214470679200004519461440413983886602679982302407496081864049717858360820449564743975554038220829400141970324511649663538585458862720875779501117705404880132389581152669380529889947904984033432929664166960503248421146094553031783100991337629334322115082428780502145469284053264172011962774129371262571816950328717320393557632665558199570818273546649749541373465357970058485952278164387704543720902381405965474879846584983399097588544770859934482720296077202407446997281752640978167198460564616071256338923280337839462844257852830678495483648053197064138057852411179899641929958751903349262699854127913376482046526194359463968860198931003664166175237023103713093737156775920423084132178610236474498645412206493075522021069427337280574830571561224525966516515769772969898045885951889644082763435950770599988104496980393193801216878319710570640693229569036089473244054042973129349555551931418811338593187414639497538525520766267490426463405051489590351677586602469876343220335034101764307287312413173358688367303941175625912034335123640395262105479615246304255335724636265701634504891616713249207591111653024146033878369012181082654383078918319746480573018533449739983928083517508929538423691204667070709466083489361809886068165180607209137371184284731109471378242520569754364479011042378505056416709904852690909793844395150152515197288061855208336539586577812242650367098801389320389361646742762623859483824966309507060464089745695753620676187928190925744609082497693065470498029663349557351924530342807165899777828982694817659023829841932402315285954786996439690706478422213399305392081786125587999414339548924024924340504106821523952224330856348841639445889116154857306759397957896606325803027488009197238633735291313324474567910953760682275308922301193916190920993096950893733077585100904952335144158733384082193823554427510617813500678627635333427405581327671168454708901293823431780462271507244044497102268643663424947855043208773300415721298579835570670224236743992030274329539670018363278490452633501799218657665686925664403697985010893166204341501220825489730446504094302480337346042607499798489393461962212254430022712804387234033043551140858221432496119637235415900161406925192793225176229318945311604061025020317035262889352793966209035984185963352059086963485149387841336112031819247261607417916039986874915192921830553859196205922629082903712828118849258157227188497935999819103280812580813103525228216761908054673382491925227845106142637869606912490025283595803667078101559955798221208815185565291870214190396982219261321962019562707639704722523740871187934992301013367427621895487285689662338314635537783686198131497188875983836236830692054583534820859323487691899828275937328795754112288298345510082346355000732700964963337817204136575104585195559046725508213770040411395128265725157170537164366943443258639240569614697697385495776441665342736838731516791176940946782023485560010003418299467536447537676402352780409822995740764071124882049067693265747174472299240184738984121928330890548039497242672443546460966650630804574030569757402320212778643048983001650969588237504661499239725655471952868915671037512249399989797797716287273988106285682546827525626014723373691859392204988587526714065704777183521889205545183414717029455860993868940595173358901937411201728262377899782448323284381116255776424053223926309126394169714761886408270037374373176293381598133252524949901019213770668289503469661180951042403673183605047136006522749372078694090181294493312596129954306450572179238562640466558451765409364241744394839902373964456735888612753236322153973887466383171509475765318320628304761138253705007297060319631780114472346015324657588202950041624604684899931912283848680031698395487569541756625039975813157926853913629264783165343746618493024630694361353562554804127780146133073869981058632347028281549113112695841228636414093399570405243015107537833767448710499737342125884663359257603784707364189473245495589694367578300343474016215059362364940423818606768258776692202392099596592348635947648038397650350092696657066094391022517319593188558378839505685709535351075915301774662447200038763920250317511311133484814118828207810894349187937588105448844852785538776029976892667238452908290544097156802820061750321527425171579530494903827450387883955431987202878864372036577834225853581843987071782300052571606532338642258625039589606080038898433625856223985974425209479426002188053906252234068461841611049007367748995459063986004576619738223354688130189819159208770629157935056641723386419588208844869517797967870334623133414415692915045930216034880416860474811356311112141385698113688746649378911944400592308128433729322882494857234337374589871597805081157129350901667179747554349196187014641370079040881721725531237326489918622169551491052465171341608419674963854369476474587166412523976906133474310286030960813892380076840316190675584514019973899678692254229393036975839512850451727505951807531709611008920976043391972861594349333183140886391280501974525801414496081630083270949849841692270183285348644439165799131856034045844996349586580785052867524493103207332285113324327773311832797869580025507643581771254292546787114473297021132701941165253399350370095813830555142269791824159379970522975509126011292790774401756985891171940559200956815235727184265109337784125636761144042226992142008233788620054264499185312248563020561914601942007832552518586345387425589703136111888897590888486870198634755449725923623817327211423808912116966792523468659432044660910484490862223175943870014936149975703425609741665159408682763191817068174474037286317124188187641316527699835821580792196039542516236731466291056592704742641877995309389888742728401557145504477459733758366628702238986226504543277824335637047572721099879383458405957984206548108188663174285851978819684318646174963908594215943049665902636048645472557518050210203136610053115040688121959160564035091579262530409330706229962723658018663630532245442778792667629303521105916237546756305965779093834370567137818349985146304828366465064448796541061481214561965138601383344973215663672205939537965032536195085110623183786560590691595437367628434774873927775314497219318026912546485860613372000141068884708867216889383254820474913532933723493604540826005369191392581771202313765549398910352789120360750377933597129416557351017645729661861177279661325763623436073704475381978150500406001014293914570396907964476124894536599227152985259944771686875427706817422993021291698711948199586339040217877551278847696720188203982567600065855265912291593714987196626948199695908874371898002575722659684219033377507694893504247132689183404751337444841842092550207955192245823487027444525114781150976916740727376150098733633287982001365158699188775284664815681056894562449134456271492635458534744015594101133941385430121535629864022096304281129034459411563482373366021474096476122154185649685544869587307406578212896552160272925587974189586862437730266603910480766836241061575646765849412396017286430348611864973073371999161900334387384616570440657525819611198862605557029074296818464671354579687918428270216095238930537022901599266131565877679496014407648560641784021591997536511956383371515628044467418412280328938242513604195315444874590184583517450646586632769509509613280469139892616451120500825382220859183120430457290906966421750512131286579791965620231040968188392604207189155922494858458580325504713254062213280324209800173324132038902527088465327351460533077345583221873930263747723617236131546375354365379192414626154533197728810233190425416008072594748120336885774515521512162886657712451746971815056241131691661403786430802349802394928330143092729969039485844384284725047004570711908887712772374212895510227989718251691773665582074805601499594846081131335914020449449962109970757215632827374515007012065076013583625692055976636967555165604386297482271306913928426794510116806472026932145833117038312912084138288595394777522110154446686353978223440067102447440846973580023070884594382066499197744172343202886751517897322816987712258346725355784181750249904861169630942901573314872581821620830305788206335085948551770610839754498222115582054880084362855756770133832328424829898002678644040252771837180942214250865544875863785112611668609313579412289709652390835110889704660062301501231362358523466047239224747020272505918471119514267367544639304327624923322196727321115404314341236847070265385604032582091177973307819925507455357704427354043053659736820507138049653621487953737705181330708414952806846591515758204967375277970898306867249474101824123503077970715637927543166163794805936597773574143393073927244226272163283172462313118314881129671127516857826017503249262496726117286234442302031874896809414397493304306120267735642405558304690775209019642245431883480074589008632045819069724882503089248507664742796017689017310586691127613194456281760214684916557610211797339037286201025506015218486928135594848715120889668421861075512197643802992407016102533280107201866204079377426650771877276899013303681626011350219078493597547097624055001929591035571600383816237102865910288673769109387383893565990864165157363831839290840188828165565535100986193171520254491416591887755993317049482914887733927841391576183163115859544861988218590564998518093445895463931171183489362174064806867366040230638560922830045642180406618355566929981307013592736526918250069211298415844506476350788508981816258559995160927160412344874648142461955098767545825438456328491124706740773954027903141073528897332920039512301251754574703772771230329273470331552833954146600745094428211756798383924294947237958305541169009828120795912147669376401474824695163675841796339860969782587390562935720083128794714790779207774979460475589729763752449342763816679709714390617835201394051180552092249623463912573534897480349626493106628377999343789596030411665320118660234159925722887018765454842927970361499803332559259995662034281477799432602888605063859379260715484989316528469509553433824652265889264446503584387095428457833437381622001335539417904267964549843057774942902211249340682841462195091382227753817162490365323027555713373727651108753990061280219955284673334543038517472070420611379672905162332088733743178502299459774832899732203148017957856168685726301596758234490633563511624837252633126991677766885796302520260389450700289724059295343334997305992960473756162697638808927911367714001489562124681597643694247557489321120212035479170185271850070896593926374211609566880955212906219975199388383951760367045803383039512692435827543550966262271546390680201288882223260726224371628293407394202714064896482295318912298171099440744786751242942697063317156141911379419494110803349888229139764156027105436559133700441900246891438454796225390676685260101249323007834711219440035594793408345256380713983397205110789851496586137300442559084306441899686637592436467268559252582534480977163477035418688258644633819427373365110356672254422955102933467381548013735132685424980541708383766482129506698114821230273174178359835009170929657544910572052201749388390434411149245276418460043652595863346423739928082517908115854780397076699077452843281558188185507415294592746255465676011781414435430750824147107514762699286274500585417312189833136201920777587503820739788322308931799269487675051011693295149278518146786592935258500937905147597500757229793595609074621340194158846968284143264855497654372169421702966503249812181278553790992924621721866377745013326008683814771293445087996113272413615150636028097894642799962926559082154476769954822248324546976217922751518271592417397507244651000840627747899312106483278705211977809930524274604838897432140889243785343629149120999411638215613501530107568886259044943294429723265259651787804204989566966746096260046716123460742061455838903510285336718372688929293212920207195033120825384096520443987011351114774969042740371934603949003012483311106989721476387926042833705788329966740882587169015821250898452050365051748753306805570501842769915789620918744131982630417134233772244793871234456142825712506409014478958210252254557903760478391606168748175437842472188844327711533274304547405589303668316573845604444276569067261005661971938568633609695349650502266710304457103176886618226640827653676492812659092938876513497309647013876322605965696610192577668282390731757722508948495776637950042606250625779717352559449938786637605727372327914167165225992759941458035691618413140676228801375608719455350599010474995958154093496786844968252197971775296588970847166825211557227131016274897124434809194939438610041616943091249385097925222095948896153826111036786136526180002020784203071417531312033366561397882963397056887881960945469516615145915555251608828714279859074762167777507074112798937676669969916506869491825809164880399924844225305042943678093829280737623863051362386512425249577289727882388920943133569771002812823080033653773866121309681930384661087963672379410124638770084797176530375982952651455260789928914298103242596654592208049054242171748708623330341005546630089023215294195900837575692116061358581043562401180672819815528773523096121214441020155090803812123204476422410186042607865203458145545127994509721869399253382578534811048155011775990984357647593395154447921372804302193525998287992982442640838047308914810113305336815164376566562764894950063683120281255110064046528812962720018990518892243785312959945884845669871386879620633363779050970976138834503993797897155983069202447126622810905759614666769116120809810853059739352065894014216704424976463822834860106735557004315207798496470504974204338122002501695225921269248787965967474735380445333078745552694884008209597815436743890731097014313293791141813836116806950873840551633663483340616327097359850682353680611810891287631981470182348563066144759836603079940096221257817092102246569519489215568939348046859039486562146568426774585459834674109730609237715591935911664074818765516011172147422908058753451305159943149576241811698967845985520801884095699368147717317673037791317124890266020389610187678165885076976143815108486500740249421647982559526874800417790245059266775990609024055539272343217721535239733206526204832089025662198754155129285231634886584355808399057836746106073290267755295178053194398037187813815053253513056218880248082704870647203148609200215609285396445836449308682386322568429405643614409004425949317992590545011572397134092100427505673106987145686931025936186755437743636628243120442143746832031072543897038345488416811161656746761759435044736798221677372020146383349687833723566856002102941153001669014094231455862016842931894476436245549551382159130962240336592163275126026872207408045951803665342711586425272948786920362664744460024320925496411026926841595968224448532654029421923138459658821061741264842678947331004599666952032602909570174040627834690101491886046571924497224095198303928021355478035508625401598802482565129232965120312389932348457945697230547235455883312726808871407870899660185817863898025677918977146315725387910211981023991962604891311095504995930373336348178910537097169969746332404228072145675264724102626515553151273479176834068296152946661450927708373905431747123213956580387784249659586294264296757482065265838967362570934433833425120210539605867403394678707691595883381024352710030964331755165136712840233998365640865961462711378571319072431677536230838461223338982500982222469444752591164331501335368274212722018504309571173337206374493462562468484468570250614577653316619851655513541234557846947944625277028410418852658717464411803391620524644879757838957111200714051275235642568370674543645054509273963061943456040096490621251706378187353349176018043367672342548077723045666676651664572508290067385246091473567086348646116022576470284765128354251121347315520272185060164714025950479479281163078846794386206825451439186835276477935180032026326297435284937585148534808469478503086328550792283123980590129589391850918567325957035133172028162286948845571457898697936153071808653749935168890194016799964352911732198205812000601615728780714008822234914560921435939459848090281575966008512971407668460992410825404061870832301751946885280214384997410800295469987604149588814196816913722729532334519852150069071162619306945899863479436252542707505754367432108420206554606545892219846056236141115205641822260940189899224652027626461321761452951517362512973391385051661150967439288142796678529769692785422878408954341048910816607950023608491437350221884959382576783745408909927516754514570347703321791521387675163160385754547822594864427999547382614445670458245368908044605697979886231440557412581525323213367246893333120191854623199886643280320957275374987178628164903443335704747077527196232430557218455497367147859908117917848144830811192237241001578914457746635916187758351792489832344105154573779509718969600218997653479244582363450859259948002244551364314181888541490038419816804412687289150931025404239305647282375224391229448105214243480102977136094474676255141645358521292268469519941138615185100602642384715073127982521184540668082278932324057633043279043666614887074262474649796258982940048992384546428601092945163782112787910411072669680090687725935969619200245842779751087957777106239873744320767627178218763683768291774581147500944969157199415523697262748285607377089719573109030674635296943146572944008545489564733459706803958081588854757648584953154801067672334429006424397033776152334537906920214893519381046103331085490912726058130014633458211758490308207296517994236547963099162321390776578954157639406483785945900342316196000775519707385138364458498502231950866999694862910263907706447692603349530854899349040257270882494500118144374372382573293936225635515975411109105063266271725479568569879638475744014628857986509656437630773350620371957753780541022095742187950013461418095038363318791911900926601474660817828712789045380864711979015426628746066257647965325737009218402753689736999829960828560331983721406874712128632308875756650208845414938548408452657486243956091225898889120278777866313329040412502321289320281757347292174489224421882965179490006407342529921745572888139530655112495755102994775043579646485949505965324680659413474508550873678160061349109531020890689583426016392251873286139432224568052863658078360169771774458616974332138858333194926123986176007221802002970565819470249170507767173475411910617057266238997558229113333870026706239923350905241902187390888938313351869237896911191174081477386878333267457236935814641586109856280199036704226509032653837749287265123664890433314889112908931096188923425603954211187848984858282408884043972256989405514363219565749713255890821803184472636717870095505498921504350567571554849427937454748274132054032132648257640206214113592138062794693064110110835749789634199272598132215000364904458944552634154302823634157381240761334932623681347442415121627482363792780456727427012629039377135421844516950532303306416526324247062944245672021242741489571302498879639630481317524863970165845025217083577845638005344302421621073569109127278311038169619221268235956172845747767203055530973775696286011534367454051542850286250515649460593590603194076365820133506682252181774317651880914153866281271003011493332864334566842994026230057315922223999037479410610867134349820913353700001237778506525522221651105202440926644774370908847041507408932021073157266204288803500686018994721484934836012611148668065178335432132648930566644803621932133943461450946994312638738525099121304395339801703346199452564501024257936112632492519972968351323885880602451113237254579280299323103653437824296485795505633200185435048920640638700574988968760683868807211404079651107633708222190216195669369969127249686009648153326284803928259328586876594231583172769709165870936804596154538031557688029447415294534127926235189695312096597021725266839504707895875143288027152752615026925604881020331396958927826957776662929629198733815525582170611806163953184569622057248292287210998783336350106123951723239457493619048556021546174405726116011299697670795960712593441847708363283026114444404192812906451608757599526655700277959858737202595346508670751187670394556075269692458057801103722787001485028437579377555117126801520776308933973134672803236389610217984387263966150338608344875609473918500905786372032561763323887789037175891473780134582008270888959162240876692165164815786066083026183655611352410481843064119214335660017817795096951869454804284783518792942351395185208943529489589946641403606314064893998486737509696299776603308080778265692668858728496259956901678231829317144460888872303845170651871513098491152926113340481549101524063752379455195369835857119775134718624116343525194356655709967212049828646234768872507277472685315825288086672948631164965689702682199033348874920443501314021387208197473962857818165627437634327987568063889955265779232020969263853852947297456998767448404596061903014731442580515868292048505718978776305895132847715282759225154623050504561204935516245298078863586051474574653671229085259529995929678070943196348006459899186604708625579795953114970972304774217496237318320009296279231748392378200537786279335931365456943448528853436041220716100516704571590706871045525405323349035627785708469439461266580009065806187283520229757471384253375940608504824416655205587347649675904233057872502101102338129287000387168324281563376543911950656985251338312750866907337957036131410593356563990237777104444594374217152518461317821494569434515406667401685182760323459395656655340723806870017583261344667922763826868765040601153065315016342802337765786200005122494436100977714020801981230936942872313494442669874983115179971355473612770140004031563991815879299789539668301129100021384677239327560196097596754717307938978001909589905982380847754154062346792184349593792584821196021148924521048099526984606718588274904378919449177522374322277763465997572217151988183679197342790877301148734589817058778373258580524652272854974600832111768018729914769350739680119119391630597025010675159096560752463093460143577125887870673300772350953378690763404344744347295697887891211926555126074907913029341993752509792463206655955665407685255422130967214837243769128874956291229956618693002834519695710424329509604436478106460158641471639368413489113679100503483473251220578360785133301915220728265317084918707280492429514919527343458086942422732420966711523691781267153274342805840958242609800035674761829893488813952526461378208572996211699346135870192091607118636742232089809701240775975619579911307506628106679143586655956607002082326990882607288441164146392383688450940927001006993479701663964346632558077095640393760701937476738473386659177319666474427607913730537754043633396926535044008963967055405843922013634554969606303150498360360049358344523582276892747962813329049649040277337400664998478424589150525963803087055396591843266276200760154551452636405651158831175486104808959874114699772189357994882865951714598758268299155845519893574280048360849435626153796640389010806494075051736775280375864561451154072754002538838273070909473281942004551920422181256607129711885827333641182666457029104123943423656270730386378688499948742130419278857108894887414943968010819936412225184165851935212164234756750426091550189060914688238087823273107355991616417628803615364911640536937304260369126785992406580271681382957537436359754960888539189914246680980964901825704297043973455226543393772880384815207035350654185630059762862236434477823620346085685756584402281378795832368292147180620398878387614465355799088813360775675566364636096049014119781419447479577324663466831345654076307855752704452665554139803712374014525003667859158268541225522417466327254093414044027444911401655888125843489580788335871027946372470693743589352284614683438791491269324118283467804719634889459334223565591836204922234704249177012250786954118274648638987531312445144866680754321552878262256943459510390767628854439176831955180222972920001204729574789815749805031143378425724967668232966296473777562154258720121484917199084067351431668020512806505607026734732652989741249683105220177372805937493267379422940922717745778290997051938580993340851167190894558767084590033277254144561128566926609309582058740903170033658918290111266606558061718207921518752515839172159805217179614023901328920684617065559748594072452151325870999151774550519777990457007492414895851410901138200988162900284504043040065558697310053220518207339721034940757105931410649987787446986276698738124535010129038297020593798521580774616734578425686666876801326392971913653050276184944836652933904663610804005126385128511665579931491487833953819399934821766504156075726637540199220211486374988352007702978599247076138147128276758667836891383610297670581835862302045662144767589111800461028743859770237533511237058931838417372011509900636254275472856153784379646059980502937820180912580447237267679929652636791187725023951313506205088573624131577216923452147561178470890599558958048083873535098747997794849711798355907819959992335461228646240360851559028675134095551135095352197811309161394281117667811198877489329145737242280639646572281853090206448872766916598601176553259037620916424618132221318168499758048997600720409588274915458243774350908395628203887720629526330918843505386728835908336865137834279601172780309792829243984239610930995947848322076875823535434326667044264174678839797037396133660811172020761896401353671477407256712177597523209417593895581125782086819551679642542279902021772354173943639606661225242234363296737223179017524077313540226152785559227783627212624900713637943163636970447566382861554037917089667875724522018682505816581860542825794689835359911258056314789744657043354647790252562296041691042794702472460576442273366136181254810251097543722022568492505439446237108290935901882739586390231755896289356533186459027646746299769451061815453006659315211801407231357303585248602535497621695876366540623557504341880517244880227616688977758546718043657718865237727786158724949444864728809258551230529354954915499498537365550268121186139727075974761529502705058095396611327422788155468047696903391037565155819696435330402439483003880329485304911566626276806309383910390928111272515616859337646699389985022742897558002367987605434848401291923588272991769873595176064000675913254422394328827331187885932924409769875149034425338221172799393442188125146149327228775173753625323186480647386600017189888392769821050320631356919292882634308281676922047144424503050364241355964384939930797022639765293101768031135749489915258662762881048703618800806301873369800995001927781158756743351116623657654082201229914914879651175379142156845903920240323226929135481775392686477529903712622554153793150082180709359622688817071544102374325429875698665704804010518694029536826110666607150342551870682114013387951195253302272308147503936543299017912696033710689041535726087930583921273435340839869487403315239572031111433944892468669568985571176566682779785826337687669878943365281001602987109112515790064212717684612858437773961155887248920152983896949525593915428219524144964014817398198451204758514154198257238671544307429679834100320094960875716579327642516388365963329962339747830575252425999377247750500216150904622350723383209908881003741520502739062420995573658348387930653234136756330501134988678738928081771888638409760286006566887950925877290838383505318761122260013061950103203319099379099824698095636682610803017817767531086582835211817624063641346869603554886471914740906587265225306749627255824118543904120077271011766143455171349918121774685005868651661379983264452019448979367349375196082659913920235494560555328344206413946180546815587684798523160751371282992531681385198812586114612539001462093403178242534418773298555753225561436979083818016843590182102417326979639940846401942442598807943083684847196842789276880596791519091244940993845490770471370602811044679583991960107614517168586966378357602857384310818695623080449269368031395104916501552999704709809803538775950590840488344232550146728447451741082742910425670572450929865600119710357423683731986725545954842876948520828343405379475024055773195591083052918539772823501520690710576512520406484736099638246918802094605901698545646398700046277532600259708670107474636302289694892768984384514949348557895143203380830849715263813892950441392626548335083960834075238976315561277508869448205863343176613978451759956748545768498236540938605464435989629822797919750712658659941436510920358129868572255805663184000945314013356169157021833085372189194062280518808479930675158549584989451040259221569127301635048005425397021194198392794593887691657640982875237184353753989979537246256491923670990375727880141873838119753347655619986134192925758565922429329440975080008719628152424865586048935811088099403174412152342361967183847307520999414154637317314715096600466945426073117346634496551065146046327236207063001716687039175177399986247757270651255777241634744245300811196601886858583508351261209411132365489870311992756533880760906697520212820773641028572908278195505401065675626958447657470970888597149755921630375342467877502944928569491298041084008513905745726016679424259020610623585720351814374701624005969886076675880210884636343187395584527312141047664152277693433546229358147184154173875532184401693271851750696272554547284422966577318581758736632054840409684254770730010195133846686237774981386515569717846126189032250338689979192310846192172183271009801295603340104623906422105695573873318112220333964869509908968490782566861955277034331918372136396694101756805540154404466495556273588251408039968783438913591459672483817637685265875365889377728149750509471139727983951299745144672764450376743068627721244292973089068453995820709820524901815396162039516199779819861286453489848383487794976644629886229751850236741416171138941572266242802228263755049349248386061782102824333665016008888759772793385682617343251657109205159557924711843101369884506581405680662641625351906277014085982915554227409750289022759149329908708214797482484180472936342413593625651875845799659347354222978954937285669893717559725479043522066620282008132547620826133723756298599792620629713583757935875550309429652815753676890457479289460812234439212638953213905894577731913693661971144879537801518615830085195894581018390872490064623359542098804991042354194311524379115315067569285431130888320276875596200389173354160594330151463718598877234540809572493179405176927923247704068307366342825108823554312145916944468446082750405211961566546947849551005041384176422517436221009395665515141961787167888327539297455718641524557750876610196175456728437865042510676367576364887752611690234559229129581549814140965719377495522381011175159675444292905557513068592219646878779289260959017899756770297405160495349464088489343622111775354758067171019616870285705433382910763755495684310048297470808143611282485175731847228770493340367852020315113658684673624658509612226689917137308360728603713152255450839016636226990208585048036101785604544793880444415647571351166891786229069172108807656565534758675525866171246366779803186880351989752728631437661852405779364100582309938583481485584494004542287766785157645287663795481636978084107123364342964831958280248275920879915613203436195979764797233424547246133786620548199797987026745333875444267857764638656212648608021586590230205537960150863489664572411251901259857190402038192743110553721482181276410378489565611128570677465027741174019302132510976026459652720684909539279953726881239957195345880739860926873022413980833635065033132713776437761150179816956775963279923757702935855990026645299593019546737986409861411736944321153250896738573949020283497925134835048614249287160797598274957668146219035524003554233413880593372760388325929389183672507522714617139032966741448843981422999697884055615871463642781948014493829773629182189597297563710154733685565617897364599100788120105609440674337714130572396405761243618854756919178896438028485377058086779805608948619581312316410332367381610127816221179552250621714567582137417345004721017016008331591928411051317046722215902187952084273909194398815796947897402445856894299702833056376951626152631114944167640237897996106332779544886385434925102123312671795971571596266066644509212156569516215701347156242686219024748128720405346225126166665711472354567674021142207679794439221831811640061977269623457197012409281647835355062902707293676753882386443111921510538869442621700872639426621666321166796218993179475163969050579359962592847258421993394647327932176853009499371884468166254195316405494802651445357967782250101985820398964662935005263719804344542922617812256518183319762582893223468335850740132264233151225760162949053647358784374556275298524851188977014339935331851581463644187258978501198537958577461101820580870630115059228302635367300851116375789187901287819908121824550998719659623784665368269817593739723761064322830018122986439232290982412962137603233506042192115330386788577455007776515818943058749169917241344946390610466928215657826450524907948254755563518467707178417999286292368324828444005784673741184092019730092754983127279402316555704208497667835012565139647673968132462635942449435352044110339296895649171966643228771559074633206270649520859959043507627849627125392949852718367937530387940726060623422928788617599986118709031174319758047946483009984057731192453505250029412414271979399514815059944732186101567347458218931905182603796010956514591707423198471267439686174924842644979473423776163033759373380840322728802214291065969021299757323582974447086703151703043024264645670983530372546771525823958037732199907019521504666614415697368757430294966102099648396388287585043655928091634452720636964232718321924145141324557206157478593624163074182528285122840316610449043395591257508133034815796533262404971265280601476428400896372857437421460487984095257441689439710883509561974398467595333175695567608565727935189869525009766862234374066558289732848994257467783937001953722346067637522639125300866499007656025138018892844289368325916691358767079139595781505047472654083472228561834637176178956712080904298953262309347523694152594902037586577717841385690713773320769769355967798441729864568139500336289779203912968884219120974794888464663246026541965697561148900599312001673340843905341480332900963742299826617704781704106025202602994082693940727424640252605590269608715372515091910482383278314475771416327711601089025147960995711771167783223917950975138369297658467511045483456001409799405911007756041328151467360599696522284132735870400183806569292639773470841034666422066129380501171824177405247189396204279906014468243180183648185523954082238406073592163571648321081479171077514510368781919916781868016730987555441383301349475278472708610023374513701517712468946795460746962329614284574828998654961862681433773965447296866847780620347117107698871071170153330026399617278362743822046499182292684229492886768873249553854502859217231793207233067587057848502283003138179315131032097265859587814227871362950974794810119456331470491116411921900055054801422808152297333507575502484952801330084595617350832910758766936953004494906258377103108018960062568936266281979167034745815190580720782840893312363670999449145333132965435586368399321028347337089724069141807006518885366606249549990724347418497162446956806122818100486931502658571538217101526930310108286669643152908334993466176292515956351388559848508463794888157083867051813052397414063743464343228972536605304341352124159690855684153737190783513971583517088004541325333896972427648298282608281464331600309013478742232864127047498643216988902120056680136458135331736181517518595827514654064482608114246521686521615184665572625850568610492860369236620715740738124770426203419943061225942233004108237701249022589011975174841781904919465723803081234128633269831846692847737663312377887799664578977926819722837792061467672572061169246490235256535241813290214008597180305249319500343742096283222580579959942975607901944299375398572080787564338058446940002949457088941395809873187701468108172995114119156094269658379272765360154222554221857612070287560830483096617413401505043156638765802394464139742396102472427306496729239114265409439386132778952006108825695978256840990721002020523941721542607743848325104527555994387918733679098051280925303251196167661074339632901030972131741337801729482547104872546861465067791582208242032637578620645616903642041007898725713189528965205817314116466155187599973282400938927112382878530349491379959718376531620931924083700792737794254885523044628952039389753479675309127890262522907054586317421187984012028938932470631175664242771746220506460213660246686047571891220435612004571656129867496884862712268348517351837070749059386786454431216483204785889788605746074965790468917967746928861344950221549605999585535982083568432121039347592082431567031981293336696582161456143852384417858168846921273389587861685551030300088350350815688881083735209956650920859102966092571433245029311225159525756139999068440900080175194583910187301422304655335966365567254375541764151019082768323237711865869637603550886613255516495757262889366453918123053975249827527963360899961019791222749739332408453087024341954005361578692027231697377068641581703689392515613339876976905731892776253699227169322593333592333435886913156788208751406702001693183057627203042511744876479430252528131227366336234214845431378050527150844061239907468912992253241154876552952813452502835166871902537198608727863048098132129332969423114229198702856264914012740013336673466510187921215153276642663386700234631256297342350266547192919171837928429030107163736413972191257979850161161515691552328461990022020583475998876959209722544712165153061302380612482193265530029754658348046268916490099415583152913464880894769546741740534892484905893555140894567701710953580328389129594672515737050942323095367763711138604467872732616403054040520287539360884027842306373571848621575666074666772757088085911977337231354441476108543807893336289602792383633482966670433740220291753080033701810793121695514680589220448024282408338035847484543272769039547765769607173599873501803993319613215774484201551279340346058208689125662000823520253712816120274433052759627959220222847764452381310671824930194587571356329509443851447686942723475475941798763530406727170302113793049492466732634669621348206162441359544656575168858316283231538608596262398750290425214878160771272062940306213500702743086242491777779789630785584183634921795151352305098240807627198483236501056980543210814878660008114268164260978438562215359233380001192096239473646807294544166936325418273819807289789518359140770350711995937932613194649046565978555115289915697070570306145659230556534679966780717207300426981922549723974823689393855973948134455500147588177774502835246086778444433237026485778167369819529869027647491766499360680662056868527578145127849779207475163525847497345469189321801656702048934783780994618201595487805934211240403903887657772174861890974040456574203979302560423367115512503653663369917756593108017149009395616232935265460145782619716995849638311738366266862968788520328420573518005758435757885323820974771233732952519102359185903014859256837596780242638442678635936301102565983337172632689863660323517352699715386907215953179450317958099125574332650216775964058414887538098949727121302046689056443376459896309659057962849726714683539855842393720199652456204111959771039317919570889437856688038271380403713825967637013654592918713681233371251601858561478588816512005338249609222002848698372217039373349221096194198517305974561205292837700101597634200932695176632698886060527482290679946207378269291585327706713274531294257336153336686956506881765007864128502827937756532020190873266379147168162108889256146398419460244562937362960368594999723497307108474342139835639418419357545948827490767611229316273775271328120519973062708480832440339275127586420371285259893732191617134581315723536719917212132436042751349224564784720373649679988934410963651388939878177324116111905703448022470953773469099033799667540209820930897862947906429712410978705792213473901146379063064605552722373678737720095285704996142058740842693485693026536160526121926768897413671865323816241495838769078949408967989236875871688985740377794162607390734318549692591183418878658868499721110784025647310936384255019042289732726130147428663535985133683383249738199516908445498563737762983221384596627896364845884786786046263966237562292933034588015310166307910931298684883940369134629887794066065267811712632133248071140138188258616746389911544200827901402409159275525698765908772913236746880819573262120799787104513472409293145632293652912887067176846317980745395876547136684882472634152974038425567910851101256763671166736535574583327609287160688499371060105905412794991501146403192372406260477006601542595042083582929952331073694564426788953073974137473588242454753591082628129948268325405744100738192123619158761655925813024570089353688684954220990876106645343830779507322707024231103325694583081520304922669670134710022514100366403905770721858674578750649913040627658728084193120571427232066791774052884311419088648552889338347309177491305929599303441244646130832629563867997593762491867841417420380082612885244261519980994791222595942860179400372040433558180555973255894509006024094061496844553323011018352760953060962770229641624772155695882974194352611072251069158469195279026794496063380521604343768107711032159341030825355023690453097723414113065468239242828815660503165280626382351604020498942155097731754157367867337607157763535917230137971882094656461207355217041246752467618920703589471394232649357879028657947429340962474597023918792123941519346050064383838251544269024863440616578648464970037948241381053255141516918772959424834245591326204767234598890289709237008181683333786254510315920531017125482856787004377862390781867656850047514672399796521009055923636200106889874745342572400642691266277175166655164478662940136167226015183592549528516046699502355373552628787108600557016208661554295366629716325236982452779535232410013911181024372491062401022443457856379876051322709654652059208149018991919506326468290036572225047282917374184735171742870538665018261048919573981993765661620751140789006118846707227889862834733296999653714828387171116047879780798066097329339598928652522892642450137345478647667212786466997334758112900455735262511054124635015484669816207945005309176409261082112589174130493011942274315249751488656359734700187645390786318480922353560005004553044856552673799300240221759212074759833341424578875158255419876264372681245793289657035590728709155556205169810725132928712669748582170629618899910968492315777218277179577462686697357087596214531532681321240261291153987109257500641529842568317296531763481656099355576450837431198485661523116903172564352407591447082132625287492836819148287706301165883585400785410800012854837299069507756371257437941173057797854704094069422593437719534815074911296927854383042788693441541985572636551141212904297223396567926627094200686598293339567708359684804054068074540981692106569394364264122810759747041675347489012661226706991499110872932878873692176414647866997180966536933844557912314871365262638587541303161670452934311622798122486125927290153486390928660259460474374180957989169395599805132147296277107542665379040241666139465540513685341433602498945473041018536546312940274397484499295127313839918332492505455871436148819910323463502574199719427460103599050910575536784214332855928642868456701130608905378232450229728849770709423845873954772589613155303133135320912225784934171563003451347678345135612292732409732186113023452339098126187256605385853507424096130009949792173411125879306636624743668763881415758493296178619869788017124604795707965534911061831041961812064040711122683042568110071381251645561325541706401148292145841964840522529249001552921469490398664880406728131977274042126457559747359175416101426423987748937812182651667469323980818719138837633197716369134850023091326221554600037022072473066686669460158381670011926426345529246829711232862499113980255800800201171458181449803417833386127831298146643693344033133625239716813639432556929342330259266961252679746772879903802686470252320588633434358265169906959627931466142914012363241507207988152140538539147906190819687998581857990770308964811384190297736023543030506817359805917425587865583401105132894565546311683963288726414857055672875945826040210069985609866552926728956072971361077803585462336518101582288676281672096047979901230200236618596839177062863502923271639992308016268442345479978105786287630332962664161342584736986696550217721211205324102275612804572933712824315042196917504705691719291481814943828028107957685667150438865929066929049418412520435898738939363749984806799748535112206892164291724189860197220165401616086240211592482606287619701081551562518478561955440478391498186982007421825537698057860220055205848760314483750556211189457496556344694236161361838081955688815447062272541490034428136172225178983485690870807527173814156155667207489453358892114923707521638331270616915114590927935358490310776305526395822361958934856947416850504535767238953430872168315652971552732638928578792509897047770726311651756362891879508031644865237811060576165884347730748354085410401829473076140392227609339500106149034591485462745024697315014391323461213310914648603170284093352883750126106345554501316365054943791623418130173175999079362653296437850196413250276999420049861551672653714953567613241163350490410646037022999177560514913152363206269748638743185866409911772708184638374358110232905376885581350124990151446629324573340503561226647929470076580341360431986605659517394208949769247235694412144438461734638664517620029843520064938667203043870270811741207020242423855928352025453071730493413895310420260177556504752373934779425786141972141451311370539489068359587633692577115954301155366699256173061002605520424264228488146517664567766869134839619589518456792899276028949183079370325814710217767025117519823931264972143504672900793728253213348850859392688924719837049891382407041649894109486101553132882683936547774356622927285927517798301675806792216856858887978757994919703547856046557946971740422015149723136770207928713551589027867416682344539727091784179188784240565244258044745382642937864983953254738567761375432908238486708605566572170563100336670332442419768586736778239399789707935895492515070017160864880162026799200774981451076807571999219470237852208548738851830605516970967879064056090323810529803671372460216170173746326097748828598563763533472383166677037226261298924400163793354676778655849303963536548258579681413289424110194099867719602642610521747664242655889710618282766178887436115838377666197597396718169425667777436134056536697000164082743072987806396619501905211843129908183124403653775501561537073864286729799499813536538152764562535714784151194378516278069010720563132929662881349344515590757865830269722520623599951040287961266865659027392731257672796708194513381256101105613079618612364253116659036800074568441541264790913860125352767426293898755293585691979498926042621263488627015248500375323651466230539147700374214399983178236631621769230038872946688325138438176681148130244745236459230169705309828219598070562810846089895656922722813627675436846783306534784196240137980110572792600521820343461469336713829272219353646603633325632953374459631182559234763521722511451468855674133607055968330641367444107812133582187367993537832749638146789490299920921952353582078362510220991801478570161087026399578619138621131217745114201904805501988528770609847917821947312547483953062190501255778908408355379245513512660241529582124380560272969780384853443562141663647775705505192518549093546469016154014547834519144727115300005572945367461422792194365430840978297878062883757689129535168213927294795300166452561761866116778454314673924992564311820643466369046969016282094782239138045609412659494112011885345594366776906572754633663519415089972903651220780656733512098176759472079336620381612682192437081344432071215116193906916371144409453935426012968129908964127239250284468066354295559517875541825588618740892026907373462787431992202213026185067009714579254801738877728222662258769976797602175940967891987671924309146437332119931121475122671310080044118475264299358618816832173765977525491436560460067541903651221774955729728014531700604214954033669615390948577925913613972045890079427655689230258281489756662793729831443975887055189159704323278683430796118925514702296895710907246186535575227961045055671058621579991859127700614838946509378763996738014731207455688275194377670935017715553198992831372799942369105080876049275581338460992325469379767242307689588963630140673452284875496837597969289419707115366772920196004426396152022171565595985527942833308410807973697067219989768405208397018125844359458043810522200753823940661352749083543880894407202967263756756575545477246803185324741985975842334335340004623198350338836519672554419764785680773827782552554218675234565191244712626528460431993201311835094343240416690916005133247817440188445504944228224794126426834722499559136627887989063329527180909681818553131787826638263767802251715975201633946355824200939274180058317751169114132286609425455405286002364976867979976374983829674429754752297571978390619088382465938429517455167802835082801508649790817445968259749000616331233524398029935375600995136972272551264052737493658966615165227549498785447408517064140136858639821068822775760301725278852390887942393549719044775280801835428946373998535413377089973147736879304132035010156260018044802221811702525475683406194482654166222451953001270642628080207310790648128075778080953496982275430723765173729988376007236073813216650729340718733722998873381372018050338161889268607622742587602469044478711778328289007578178864727252992432087880500897263570481596161670211900358476449472618763585021814232453779440984810452071348628957992677051230560743440082973636014398721848873462332911351599024310128940479650962931710235535422092624050399198529197049750903409298730147609228776439366931801163086222415810407019068673223109372833217960551962726883604449885982107921120034450356077997977286832806256967623072349404249429085822164826642100724642001486745781039912903342085255829533531435925946675259169191206920961159015355580073600032474695826348803042101385527181291595245859056845230212338045285808454315368298285324262687654524413102730740272250930897728587757731216578900392156311795642263226716503605540103658821617851197729860678875734788186716440528099043183519985106873548156087665737357387016943052691730650875465031926444869320270468364655939813125422221125667571008936496178756928207432865691964586554591004799481675702526842995087972151581289303128776386107832139232051678663644720601118433707073837753500133237701589600027501868228224585578488155039583804609289802449897716066354681654882028471559217253910378896748343908324023831440573477290454291608442512553188531637078746193655433557332461991901334729188458188921223540292486182254554510196800561183082001105263341334582431599025930860431768164296201832819952665159655957882487482777288708964314436058492695576494818566369165645913969724172753586305355713028094592390561767742935453116400276012419213348496731383529839566249687847426342037266369325197031330138766463894759543039418768787236633526204209256183261106634205339809014417640820748930166635727088502415339295021312948828347811708520849889003245171529064124528923384592438454948493223404481288444445947378536703508738696258603645798662367013022082177347950906600156212805560327519397154659917752299637064170896741730750487179443109878401910167434170692693343968128487818386812697105075213895316417049878376793919391160836934217373304871857197884800078504949133954684500885877573834318717837146105634976103728231600248218906618836880704383493033540228396950153534443202910432108198361376669157194340882636682778816757961097597563135743704802300055522736098703966851690339779145470344424298308713137584502395610951812863995560058827525502320598818322348642185039386151646481365877798854608365951138609711614146064350480781216912990139637862951604191039773641028207625930930662353608337916528922237519276268945677479828264252746849107580500936618090895632039017608941292467776436071243098102922162744812849786907153146034448994060779181853328063923758760687406908440588265663703712940007789588718451662347935845066485713337960412120771546485373771858993539683741894314730383199503577115018596641989798058542703315407994174151151816216446401583576802802251531797288085765847628956225876811612263454506695201709611050265207381829815011902131090371502170874165032696171955985829799522876081392523550163315381797124495334306923231175482911929661439460208792706850905803936041456550616975029649995505219457264810912030712736014269138505330808849799441224289269022397064856055941811267925539154629174809588783644940099638466844344203668021880523994169530677314942676695181195559121403082523812871163563759295508551434789940910502975465955651980133281472618627843214371825424963778929803515091834603620977229938921398456446167695632493920838304756289726601652868575996626926773308528732152691920041290094329715887462165160909106636929716201050851251943009016144208099990528186835750803517810552394487100672949627466685776712758796492441372130680362305358949669171679250585696180159543396591700089113368596524994998905191283870897942306920050728382255667632940063502443244663747041874703895844875955800034764377365281792146493665023150408812602984960295395882090336617801164299805072208066002412028636021864120739673113625704416780801938981462803010245249837311435230519583328890799227766955240167950303459217158484238789972325024033868566882103943440281829151485383966352639006144963843837647499570367027533050265418235371769683724816555449946044645077707105033238787971007440516624568350695871187004496564638676931305049787307702548854023659067271300119460007404642465656747131236265116573386768639589246490373276798018660231767952107052460748163372701320732279447586466344755259053908884620029732516681090089419501385107448608579036667807475206015434527192012255580380797754292976263422501238805715341250396532015754007358892244997735217967586140572546345903908782341346728904103892758813598740225188265618902237810381870612058547155818927212537860210650241000566138609255417145431064446845759017009114065986531216993454703478316258931415508256603250936768100664305172608118492678353425068185022158609536991330814985942422553068555574114455118033153367317404005961819287577065642773345719570875925358442909400594873017031183351525049912981553976963918039821715294723397691641245736210351237429173335357728602105168049159969226785690064943916224460817134645246953229648452077868055898764138299223322987276559947603297103403591633379281940836168545212360160050835609561092696284579017875142379894696794024300433046633979525762771209332693891196915490393766884652414632658325349119221446231811832801395542140847641314754432472922666751747446070664854901955739993623549886888115011492279070960468100782269698355054683323189498522556435802376336843951693188929592550326476805047207414528945811942066193050142735035572073112571500363808999624334512520774319631474924353818966361123376738012734329590609037300053068323248658397616725916808415256107411989081443445427403307258838022249856075742890999388539902761995622649029002480183656700378694314933620867727447873785998258159042637938754645362285651332817519456723424754040306194517763251189766108519519864222224402867489386710173492757517181366463813913665328983452098973763109604808720685024870915094335295366174832028701702087113891807390595113749565740145816193196808134673224493344289125549054397384693371854946632439644763346093512279990262345011986074947933585237615762420535563705965933459675621930183791840793986099779074908845640815970386789030178133097448193371058090969731149895085537892306599986931671233633146617235665800646792282835739220152225610027148145702459621703502053727045110356298608157738502938785436308938738731718360755633005042118170582434768955367330330446829849196325616844629697061057384399899437597365090991439168823364335050682320738945782163324625291808027693983064559812493519986590689918781088260605019637049133296822879629042169077170188290414310967420026513124304586807356080182847932266810734722341973814680763251516081619008156072828623852406341839374565812587736561928647119823572424582082584459086917694607137342549151164693735379885504907973493107674285967681160998217066189866783392942090708282604155712408773945378487620036382412505490116392331788849372937548137675600161085893372749518036493009703704217676359913180200558046234922587847926923295960553794087533771821211053831887191966250422931222956215145243823144954078907655744038548700650178487144738523604688658475592775768352635430239515831037623495591018138563716082715908413642882807317594275751265392503615131173378434786030990656943538955996172975317873215007569251938043186868744669653028008761544012199033762315799406224654091193652613058219808944801683137461162929693202419088809247248107750766818858519955710112273547138162625146361924415106675346418741109538965876807004978934851797503393129537730375731907830309497995133569344936361807597106575758875508975259782118560771804953535433588105984462719334646371443198539847490850594304403779755557545877092440178921315060565302504825693453830943931386182975543069685129831288011584849449995788078027081735386714437306025175962008830713660013975423977405701846117305244385310162301547866305177275737759837840783295889912013297215022987073522796390692540083890115087948391421613371157857814406254493220068892709198241748968069199509491872227378196666668570105296104256287661449629274664208809266754748859349037033065366213890964062963369527259328425624553978069175301990121691133901523047208517708387094235108006811003450268368098751270174684681409050105002355955108589530546982639193946260136783881815285031252303664342904211422229466867344907455733191797028806653301343461372690574927382698580030461140687284541276696158534328008003594158932310576432744735133828107187611060212714338943800383600578404960706646960256148095675855001913012664951351677263283600731340930985722630268687330746570412186016014917847292962304866034634808101588993572510102904951530766240591896783406633167884030535295277565059988166064018542326269111372069127760203167559946050025032743019948392110987592279768068747005484084984464393822592907901447999667194506405678124602354070503190383246888055521747493305720483924793325903091046475809090182507575527613977736111199238315406223974280503043642842308053248571641304381724620608888821945676008180823228578083833871035641037213369487218750897875334687336123462877054213905731508952386615139941609965378855903489458720880682545758584930077666418946022648153992634033962954414024090639316250646737650661418273411493691338052676997077250971652972201784239916568933591930567698495486574759385405298796453226301837196853726579767400971621069021459987003677580358654341553727799881536677995656169768315175381984524805264475478212544636094866360834281832904077863808016093622854088230122502606803487607194586812193458661523020629950279089496154339358579751907456725330751439943235342689853456941293787425960999456661187568549046978993356544537686048485077468385708699172422759845179396012387824270146345297539303956110009942247500862433252706350247134155294394715897708488633970687376724247735003236421591017686533952458998290297631973806043341446663336439619332717041270866215622171048420785907373444968155205435690035152574165152419071557296672603015292258212990057074726301336189464016833435995787657860399575014818206754127478392268104890951623041051463917369774791933890565813316744476300471682246033047362843562974572121047309385124107232975667540185962150424797953817544541092897525398068959379253611763029864761799822380160130477826939907363348012361751102657866478741220358678852179745834038430444947821679937903015840824425680331135136867098716161793765551768051121148756338421536493551238826517892935812341458955968921973597725623498136480835176413245870283779816954693739585418798176569740401066453539023790453499547945323268832049078234099697768213948433398060164328174203683384926704952732896296865796408034853931767148801955113627067741053706911304305493605308733923576853472331890154522615121175038795016145773930214125129627516796055119655766812359767769587143829372443942465408639091779515203796547831920570552118260002407147238701447913977384867341722187728940048117321713153884306956645982946037719340267171600440147688050404390243911234129983630205512407156269279925369350611143258990957846599296996558527802852761946605458973022183804120852846883323594515029148658473923280058006045739321472142690916933786650580948216733188538592894733534996574293075487041060279990053028076357403577069070268440258383034089688155313675061371507002943893227420240416568656754606413584228184746020727181000165313834372722144571914866449802303347082149074229348368294711632250555561050125144683971153097090587729445433583942400863293428580855588439357511424329358322666353864242815405702173844864589249326398628159675109029865833498149458944088046186755679423072566875528276831160463797488272739177145109616787072977683476429677719852713217255866987499225020977897287168003529594927971395356508029056404943992106339059870202177736080040770664735374357681617535634405824841520761819830468091203275680735656148659891861041770081006070316242347704059115064406014585263571326909604942256298928448577899126294995475597918580328836548158237643911259935101775016576384785333977374599974024163606273748767264291317997454255365537758763255676521924283197559653098184167661151617440426524332113274636050613506456519356544952248574917482806828071123139053730591274649674227235842834639865926297986146502749229246267041679109729458298096680684794080630664698140125521754517195592165473411980458945120742334655537025042577351778027718336885889897108084556640181181966255135184270637766626237845565478768658334275003352757925067932860332916734240712898196478783818630102464223582419627645029528172618585327336395144579560459883522748444457646394228966109631545078792017490616256482685721852158934872602117706092479052200212746478928681213480023112131737977591716507383016500018737358837690197247222857627099012194003358705785394461374865766827395311280837510257334272001703821073841256341318154554549261771328803900538173864376895770710106823715395235556676910714962531892904842068288852509297127784727409375958019237015365013040872504551355664754679584817600871940819435367697607546877150159942746405403663017754947712088114059700612753160774587844989025154431813047493400982233858667732394585224915048584315687111237259648613114867046807444448559972879985439793839588242974915508991736813657768702407069122275572547389374099327590390080830234826316629981715814044033639080087551743861764849436495633741154416760040126390507363743328389746458762555936908793206855574337705877036630541824382587138724489485322575718960713201688173188317478845399714826950080971857334392957235549065628888186441615398496433892447225208776100020436262794327845658033508050994946680026109132328563630144701937598118843720792053630203434101332854244729354188001041113104132195195637374322928289076362439811267181924514909578892839024069576326297951409569169102365676603482365526009762763513887084685102024293651563167516551063325771471729199256524286813382295029619317404037608064755052782266067953582948307962569631748947091295731799873526237454817463375969623972331426033361124294547681768178063552325407218581902156071030053921959962124347736445125620903320726914286774922158855222127417355656026960501891883491660473294997951978732123582270949945315166355379582790716920435556848231499750880938369219891413662012678560604617971459557981935035319625014979553831954178968720206908342551526365353872241393936697616290036425888780717810989726686007509048680971420312840980271301148863655811495771596149092870742829836688862168984441910455204386956422443642685157723395088061650027221252174089889584282248385570470016630843412002692642397942190333227259336131219503308128658626390626225044594389388650551113309290652290248593818643521576684386606407428087352055459863131606576275029090102353042979723757524202352685975412084443432821179156506372380033115206868509740504822257133901960634309899948161081885022768379321258204757586356057811100196492333328396628637230308632382183714277469083209701261226606618945345492029151850481626007322116442556912985272252802146674166019777364157849307755491791133542366640312767616937272725590336694448751512177140643898217502899147459079514245923756527437903512227882222196966965069877162586792044018401415990264336571031682959950783209804795677896994784689631935747548397800329770050516542826410689927899175096183702342485436356822961861806430500863455046811623119490841334123150429306626341615213581065655677397910641169012037748541816531202810328237616384041743751770832808260960045699323723182323165883412530352782615653165070376906255262439684619673601799210784262174656837183375293065297480780168429201648505253653641762327179914645737747549120740477908189174932770606424953758680001557819578630194534673828918542052288024554794857625886637384239072915062681426495483669583754931380872129465949054596788982757013602589484690211224059215806002146327377964047358383527951743098894482030054017899987652636537662344172644117623156318988104652857744795123203256505424764176103417619234774744869265722794985600666083937778987751558694384029681830722134424840224283857361917725862170369760505729703310283037438051639351104042615730757511587142327244941481218007455212117837774450566802537976464053451823055582552225296729472052307646673653087926345290813010127296434689952692405401606020229186361170310487582812081415009994186534208354006336797982996045451800452073055688828786594125855368378877715640619679503832754642030377417114034414276536918143258214560173493953288657098686583952934564032955049712942139914189994990016797445335321239187460827712756829386570084394375995450759457351864914635313125397626749921356725089229635916369422918280392415149412563685307763087322044493097170322641796937698143661371347153187083903053592969493084636208848600432002497719563109389220443647545084004871390598637354202895945833161677586798477021438709058345277758708054431165171527270571007539153988854344397054912042807627720453832322579783626707868571257035990254804718527484133016539694958733873674046883820001841084162728242577332678718981297344359735604678628897371738912889618691266793488511233456772706503110130073882328042151277287496546336373278298951544253272593362413456990819931616622806656077133284950691005159666196008091321151713491171076156978705952486018016536871773884892997231195744241069391891904486044113072895152094712844487195350644030864655266779116286389062159738147110320883308671875928756751640071538927420661809983416261399657032788697521854190268192827674356547909844773170114318727917834832961277110495853270402899849128839329914628334688366931936178428094892661251075442842442684074040163492829828699023158484495934909712880967110027873985181607650564900135124373678377018636877892217407194679919571922055275964534109848001390984708945997750840504877566298494658767476136333932076426068379190794188019977659997652257386091828800680332495284845609986770554072582787740279029804740177309290970396172028007857563767502839813594508694280486621948778710727388930108462668787798410288050604584465321027968106673349995462311963411597672956585775628641846602544774327590723660668352974215814361720351807979370685147771227056705155640192669556692807387900975411096418330104814181565447780642894623952441790134104315961572090096628034220194243133785156814515590627018108490148908520288899779549407912557627980222406411019786570729552080057742341272966268744029350333193391079319179816975930934985850026387770427109217989639494752307369196838002820997222639480570042286032098879929516186347489894760888871798653040083800369462819381049719911065152129520217147204681406163089735978042075628051359332841470710497940948175412806636456388391326875289513906511862431436891987078078624122046580756397511798646158954068341451508486857677912104425499079082817170795117828178691536095290003248404288359352885266216393730117659410833925843831556876720211029690534593247991643464600654910511674749993919050665647105752523494465646284173746066432700230358185264009411695762216834534640302946583101353076981970627969633444661757222220793319028376688015603397958777779053863773453034006433252589267432270469010837059287730677979286930758838354923684714435100999274814671136848860513866553380768285547581239040049170138924355120152603301161863544159483028304989082886988728338767357628187723327008050600877192771232016584663927738754786783106007110455442570091915118464834507847068686918848703165311914073953727705065319938465305934445866295855879636157875594258623678289313697483811072745830826114553144577796345351502381993220956399630507970929006048610548320376835921921091479234505862512962608111236024616048175337101495901238729700729398044743032263128080058522134773723484048346223229421369898185638323769123013864926840174345472626226180002966155062194782881469560232482384244461296663695037543449942949619029193975110629413144424506587097569146178131731805189721711626643617386889086158591898856646542610302019707287255706955456703649997748818202840269740901880013161707389058835834975799484677705209967572171723676897236678989152739828788450811022500636841437357942908091847123394124346020499750431019737710496188065745782831022133310283682024423341084328473471358410071813997961063768413929819197371300284494815243302063112065438912237484084057444388817502935119565614189866957698754607803851111063444488288240800341862242826607877558160848860103811094853612499090430168398818022165751655995817293026407931066537044876328548266231258881068519672620703708317382739539742313889965028310048029696876523066406981768170971848070132309413841412768030272966857756138658360055338954015492234601942442725389344184524779008584322336518280736822931271584356244463379676580781356165692102156048157100969925249150893118890426862128306656799011995083518217634785662889888817121851809096729794828522738147628750938157356737860381937577097196681727094665087169512390598151464827646180312427160017422430488486655155811916199843054098991918090270564723584604943816357593811227938091008316035232724177384787261337716726454903931040745246872943992323513118428379904942013712326279663510818622754487778948660688736291796069027843027453492543995372981431701159519271778086252555452896271502818232038944477688917341842071990644697859157859230796321740984751423225886841042138729981441680927427245798097522996678799365537098093609588527978876391978360577129617546513657494001857915217705648743825347936740040492363503279720780052112030684734686639267359482250744188945434554344442018488798286950045921015609748866710521198119232143822082885807332252898794073261000936723267863437437549848205623273018405754682379458120983423910834498768318681872315505733906779430021068711739439481277855800035720066611859588618075301411306944687202841288080889778730661005324150417088116128215598251819649553154018391662634411218265408448673006514584157641693198447422952234182556128894112494675204206472661299598249116671834105674915585288232419659273190053973131705924608340369100415855523013666924109350048637904923578830084804263002301875951020583435310114070523085890699745750285334790447245700963661152525526609862775443671906490134877873262015747276605715031836790538674445207812911565395767648948742579779298812515269667170074512584235895295537273361940104604599196649458120130308633004312109092514357989609226121708483321262048693561640785055301209038041638791365957459287844871750346323935966931446572553394227925227715897070800778201324558545283477155350411252706281840774672721409486075357523509014497503520689405297296820896375143657990089312202186649542888742909779821307208073657594176625419950607431371318300668818126799579602228094037331798231883196140346494718268693631717606216493229207916426038799188431761095545377591381058461060054226326024710235466858212795540450481166338386753633750541876718303103359423696780746915093705640208331052489342845167569550029449835467062495110451746181611633780054457353890259220001201299843121087321248848050115133515119886084553806825394438118925395097196097436874796666520767998955918985705367274479753587672564041798976769287726964953213664623366981690317874945352907331643743429595751699109943516499923316500429716538189108293835620381884556131560063348491424433130527759726890607685604443684619332863808868538580322901889577100347049710789162523711488294317489890630216251009777613478254222591564182561837518340028001123086381164983685119529669023401742671048971106377629872349376470462634790880584162463100166857583588421606686080810692978647224214910964528508746607562445572276111905654116136751062886017429067167145826121321627304883935145584808723043348581804482122512568595686511990099441595107893744345615862073039216870900421178130482797828588038520887910590906714400082186550196077625146852842252263737870150458767742112859181964227926659191534436716609106399109223766439952595773325322497690779982918429683192700063880388630601964458952290569538169845218446321449980407343562363388218575572810328200237672572471378618212584857974054135636328207736934068072546455893689850462847522471839461713317241407453233260589044707787085784095168060717101884764009134173461918563631276288660786996498939527715323145858907432402869158845370235906193353387817671133470236574062754529434183052587120743723486668329424226794932462766945745038916950132514501404168455899236823527274653324840998470730617037425075389004247361716173582939187363974905211914751919396005961780753277327715232863013778697172469767215115344353010936035954682016907708932738791609942890071299021410797940193874882618962541075732539380454514313405477731276809462601212503238192911650483568647245081464861133135635231397907335251868665153061650103302763967508020226405672324041556448173427417329276966103552803527408514127425572667741436902933861860597778018613832571508194732618687728157805449682782230749369712869831495199021037708567728336825039622677383674294295285971561494500036179347827723755516823313942130424151715561453326781839724379626406078302858745155372044463200245808452124841673437369566497656371623189417666600070739352605870608603175970008040355984350975842620830105440040408145662220567029780121579902602742348444341852375015247703987103965998840427260676660660278955555335477348469946094782252420885240438182736098937617868025893833772043951141457820294779221856701417600353979007112588014900124545960529200299783318279542266547251241599773333946113605460474760690392361227101837748508373148010218870669563864825452253074303975439144949456467806817875526687165060341496120586009901369979953257315922438690824124017228072142253413937214126170936579417432711104960256632142667898690068968985395324599058372227185651214431940664694987310643555750557734028401133441425558843345835598417466503345727762950745749477315202088140503348374249035760631473729023450165234115380843788272022101882774373720702048285502499789983469583985841285913887422998825758148121087953607470099073153912041306640040378899330074494072929038640347664506176408887034149663675988962580910758785199405484830565293535716810989614614503577898908267448850704594101232404152409253054610888856958706453534914972227953115482476304465603918388229153069799565943301908670624651321911238062352216161579225456508504889676702857762215596456101561852929987770906683261312868844541056430977586857076605385412756724232495523375501990595449800397826526883844063759999209555092919535346765172000662074130981196996158793749411205343961246550485887698065099999504888349635582668350254674288920102928656584055305309684168001945324595750267519853200122976470408619133225334598479138017659782658585465483822878812726358502754942358847211032157568942996495687140918444484091051856378517163561514379986463215616421204929681520903776261647708076872963627712234007431141586090747624844441548428872889094168394395017605936164945949108962676445332308521441060262035547763562426303422148167590951407302052109535020693506542074257516736354111718091087606883474344065175485072382483676201872487965693597141315124086428630903984047808807998018156701266937048653532223421833039273460613854561910787030196244118404575728453735050676299454035547698326944585738681577604167373132683175427241750140584467324863700258630066657426897323420713055704171776884953468916019076154378917310501375529106411789664975724461486338842275114911048851894142624289691768879083609189927857232554598531506992540939077343866848644960727611894885115724610406869170850073657255426569112068071882521834687915729557054855449637863045999970853580885132442937573692970637247740815941045825541268122877487343557985878332359074541879692459495675595226183811495379865091992612518494751575531492719729198947767683335997106808843558299117439064581068477318887650695434073060545696982798077496905662497087560161975875982800661604623908097767488864996382952038279444368715223723034851597956682008490316878349277848875651171801599887127482167834013810714129118789137130883953105363170197764443058325940265122045016049759843962384497882901742662356771099062180256529875891294039018139226099637885042946519786577779702587628197136459844088148019900637040655820270579730203812946508002546220977502006567673176129658144612596650835922325619016225459607421916580460795799883295347577067819002943061215656489406376543588487666306659552193163165884296096090504060212985611940537539737090788250730043098687739125390172928554945595395151900978673394427881191861049782873834442434319618606990746161149047383981907671924835887152206078739735500267959834996522871420106270271018455165729721699826149495059396858777060274268199732689396775849825125245339760809558744463291553503609534904067750127376270698333467476441732967072761107545688562367832278433155393208048285901807328569758838770974531667356436902738318733398982938121697991307717706807231627070501182273757374869090050681001297119436850346915765801311689432803103761334449223208473469494668597033052281474665553870855729589055683127661090851318578816745746466975199451775091453093624182925769952736631888612702612420305947430187854920449642484528109575947030966103856384515229449711217046736605800086941553893940537974308602339794320787356077165459389477055858832393288290019588465045817140120650289481005059285883227678101149474276651697946890709710796110950965406886477225962607898260460764595653644721988768875011438331713421791048252420794760988290412230260984879080307314416738580282777719023705297463784412328669188585904632064691033262903447694093426400241520599298663683623834732550891652069068805541771682087384239858615774852134021597735044424822307172744368898270426683772602682816154532009995839248827350593235176873483731917232212143837301542789292664783475321372365873218254004309370201655727802966403954447313759675032494076910457037791409654495273816108596998467111667671327451194305288399575073031234225997914838296847423919670620821047263314592192428130005844755787911487495467854028717526764740644483599898156122981188026882351753427180965236258213523792505975635472300464622857058153649861678300667106328004872713762906932303586158589380808451463005674711071383632223539720363545111847855877031209023242860116726835849597646549888097704987395290548431394576806103930715794163002046563421027333233517846089382997424574151562411787062763874486267175900836148726834760849861689590670378588223336430221317248085962234668757260071715053679528412255341966882018953629809952589166501997496891462281571622686097025094174411763005984979424454732849942700385679063616025260162973251679620069798142704291617757695431607493898101373880465044086943540047973330245096347135770624939552222837312334266522058338754144754283393208368534093168493852376954681205337477504176085875878645307493576762220946010186006360508927818688645190491602468809991385555794350769497754618625927354392746519910504679019962214829600019017053850435046588819735707312037381971336837324122136778712763850016661348733995143644550859718891842258156796017487408951594456743491803108238454689369780654138856481064704534696903751908243235277600582280890654652375529390721445250627083662377584106837576215036285930540470465663844581749891430795130285363002574087239600748537826733282797399391835539720131242299629496206051205828389057239374283029827642345696452336052764366673506343565684998627635897346259225798393801800361593605646925254248916287946215245759578746296344478294807688809159296806220234964742293346250707479595356123880582721175974890198090296945247538227973048681096585714444967138041726294124150663168303628204700067904836323249747669743061079227081426395965943106478656401825652901844286243379645982057571960635286274583534224205193686963967924551603526344779983595007205902245631122628382426019066557859214350166972788368413975785280290070408245236642558043677227729969526524697680212105837548258666399399584056936878761681549280228570486622080197331587014310582120432813513416103787986528955621525095476101621434754627308342856215676384769241964554447040220986926241397282873856504529518565869036466118123072064995479366564054950931546767449403898879657141095622438118179742882056297496087203823469996800124015004400456517687968287630116921172946854123506843340769451960376837993664045765492216318097171749728499431135462092784037426107107819476651970428547124622983510947876902587401052502583997176622842469143919102418939523819250864335249745545019072524894457515063300123957249183274007717216694299710913325857909092929357549445503314927568678870789057462204392313067853607794272009411365271554497385253492314084883012480117881417542654507595540855366698849478447754180008938809373804157258695698028285543931011011572147630853611319284767739912570105561036683823871772618049171644775981221868216663719896333712185568044273144590678283393510007915077689486458391205273815284613541960593866301890424973146541107075237971344631007008949708920150655430225546558015602138304114607943226701425570987264017201404761755199020170715070187585853584447268765045559910721960774876744494885642771519275689934004706633834010007446548373657768665193403155184085544394535502161680004333878921462905574535080255794102520250476947125756586226908233543094614592730561022865737705872344853075051636085015968823429668424155978923979946568674522237812705182385128565153669239487987034229905498102974969789295322266763780296923816614760376908665809680865711702979718554427855737405549790381008137241816519523388951734049038526662094223884809764190612099048492419492542768953943460202151896556152995286303028300165818758521240918876932529659660701417460591951497158144243188127639347318817004052171575256028036465300322098010514763767580043226525085639391420098172415746079449338219603532455507360544904429585595281883634574932752304401694055477592981324200119454161451991161792265197431420374787109435338656826248107784234137950128862915610549746513687857854358360747491258204239743876663171271555377649043704080162872192159849630190024428367488818061844831545812236641625965363356489304559462173607366807058655094075692395957827722337101141993615368589179655255224238717305910820583394480521233859142773024682848761706720533408312895512620883042495822888035554848723732684691209729242327729261706137266852062359591905887816391702742029081549591844003536788363362847948416947275949811363046219113648142035758755863583211424867369127046753473001948230220291761231831265459153558840025949232675069033127495107857948909925722875575193340815824121034374816842221983765159119106308630250547302554083006853979542479504166467453958482700668711407219127755529044066306116505371472296991404093008391188544797873005618677928713068959547005352399929463693425556232200622353779809664590035546810032016883213011415116197377138083626719481335257492715311693935724057844943698724900054169422131671287648509394092617862293741298989046468413507603302093469281778992621727651947952891153584967710088116770117435588319558973233331811412287475563283113527781574772705126508011609935167015352450210981757281795002448361396840302000781094885675001733144744510252998253250705129445194335041403873174507265380216132880271388816925075543095649445648893615050101517155970879145068137915458865410034755791447637958397306581275559440476330442562143849944881837925640966548086515277880708457072133174346467336076250638114455774997013393172533088251704977180781713886322683367163792557261435971273484255744044436147624551820492433637709961272861273954094338121177954138601232057713012774240243633066798409641697291587710551462782834972036563480926980183648565739900251875203141319405479947458073974969484877710404955944749041080629720401265429038687043577120784372829840980362228682617105342419536390899331480074952475060155883721863280962472886954732760708220724615781253808070943808448038847738726515911705410882187913866180633726170127764270879195259843738960272824257520716148269503647267591027592630965220766305350671649767833774941897411153122838142408656328829840568744398209213481401597525387080620848872658247051506044743488675741208978619817237997018767584321430280048003807975228408015584580008156549887453929443443256732425793404157448418192666082810492933672638165351069309230800138986225130169176999976916118543793954412628115122298724863989575807329165261612111291250772742682792767643026568177266918436653586147260844899982074489810836575103625584570269704617352347029946761409348423674638031468894946523253361887798645964359588494026315879576647777957225727846823321601380586103038073932754993613729966186587238237146369710645312317813926414920972180915786360090338733628321629719612995916295277319597870554637680977131219634733730788413994540071548457613564985484948687433984219917611403115238844841568924201267463756740965131159481285366765664900413883603743171631744492383631760398270791605173574240833855013651223508590106050162839803561488835943283072786445120829745944270291776878515488737982036396118399378643215386645673845857401520411705114607766489723274532450229714402309445863353760244507209926221376549910310994569353431046269139016388517744618181842939670231830251969878756958929428470657224926192836464925011703258620404713162546461968784916688650529687934337822406897476037462320833401939131088206024515219657921146082013851204391305265941153204828776307976288550889351929810286688501431216646442991392560458038692472674602982910169314418943111567136737256077744011520478027485216419521416638485180805507442456325271467712207694718860260338629356018090916766211998956572084088905719222216184599853019478573258522950585592561033980667238508996623915155597375545629860832159537761503254074295401576455130121142771196041736775407578734456358326494687664361080902837672384119887105575662614380488272082061801411490136286757766698622995992768934084311439307071161002818815554210566146118346228622475888687527904696473949867020532116316863464449681546669272638899547474713191278405206791887652864716824554208066736316491792970352508078263061710255962078040924070766733434295019769779370469817490171229424192958259221764889509056355721617290309063716435511414538952306667618207665505046264308263953116089056506182871710229365686755678234829605806625973798826122304073780850274333367148012909763407126144403335133986997624684907234787257940720553359545269590357510903070079475590973207525931428086655517247136247781735623851686939560568861071141073315929797731505104266693284364943235300222719045099802323594431279148936160620646797743362001014723558780867675926021629195786602725664428623432236690503731816120935092598603548977833361669642414107723580040482929567833256896178725687535900934932349002011789120781680462959670694587857468296921331726997025148379965444462877597663807318532342137198688161866979008766876402756962480969906581232351833298689964893345747438928899725410613397522803916164627851570672980514744205486002543844857946133437738543516400826268222252576017496721358040292965944669040574606502636796847270531445722084457079056172273040022891690855727468486839329394143927823772202915678615292181291415807112046341564408044664722098017178915677796817676909720147706004944256725432045356022022733643658319055077663967266101657324770845549259394423086515815813476278157958447350303202942192627752817622581256147940865049073100042876490893818908636551226135962041724833261425130805340243168313447208953998432277299935701502176184971443352505709852391157832635828067070013127425836874778139955106412092422574246167891696040791648584564607950309393419916567502339510222380193668273847107222217880408417105027988788072352556292186826534452495717868694901111006639475215708781170741147326905103552216157151902056778643331120041070328113220728419356624396185857702862838743819798988539703439969645311281817280442926174609322369424780268150800787507019596958113535210473702388872598486892560518140232658274783427431208446203382620880803204621918466424913072444946369104796724739578605596388903761171086691504149999153431190922489685713501416576302639968479137603366981477007860531854026155925169930920954789888776866186326000905109093901419487998644980923968574342026045319477494622286079881802909735886443635571265294296398270908072164170485915407031708311156242782636864790550524943859836214372442082972281865131157876393273481973682606817273964010498055162343326488135022237516420450278695806406104461420539269620193245105727292779480583230941306026701974907024724058010791426877917780072009004867475218369248466098904079452209431243417636673142942818809667814095996529707173496135014332385242645976216155105871976273417909787269148792045748510460190084606797314245317809211572817125229238544905084354593045790506053157969644332465807730833600108408723124763416386493490717078437012914361607872083297134759606286507383503186629507523142782951633578287861676779030759614755107886276868194466408170529260091725733315740470324203512557427190318431322708643001494367791965879100693166279327015907186477931674360203984133136606900247114296415587032638461113649044441513467639394979451805191783543090660966294323265521375441732370811377645633933965131617411005305455932523040961543528442021509038878532204496584660032632551272190248806799922695698981620431344666198088327876898066342434336993115033137074793392128096523608148230332450794978188736368797338746026169694754937725107647438856841562783487538584363508838915617594918832112694338897583825037135496365324662541618998484901046802982567281065850971367316589424441624884687957114305839371606953363579642931782884303432724825856360722125318461103446569437864545744275632014027558601666883010627980785373777148853312834050287803413917743464103802728124733017135818633760080250764112164307178243983793688454182771483319977153940317979949279213198743558467277962910800787537019820243724970071653204472432160110167196724477885492191379116322263456408285458074965615274279116609293854286032315128609314157587865120212973087258260756734174503831765814328344147855305878710927238043429033475575444655393279259464140003562400452938144414439018807167987317381640498567793932552173610883008291094354486204926609135937932296588231808364046056149598155847360261097808257103864261275844645337056121183784330857211852740389598028753288210612466534577359691318002115590187659745594366812187659895676387925694850916983674431437296117131446792197259646031945898909538980044111248289408903243111918417475116271472818327827720638416687260921376793157219780838989769558290108673771960931879095280572851858930349743865903600505373436024637947980118091311534658256911739731055059265496318277500698090268893261018113393085399399115813091837384807393537434739922086262372772951640883913692995990364684085807412315739877027083116854846552699943228585887320916041081867154471414153863239875003222724302448475830076991351727212585323576978723974887715325763925367282652085507396780654962866879243432836642058011023926919535169828173849819137857192658400382735229915670966487625780555106467344356047930832740184732894565831585577639784010076234650698686193787371932241279241572544865772392504644298038157569825960970562718730420408962909839924423848943013853341411683980397193426065319458564876426696972147612591355263060124812002259131419132662480058512495091121174407951460451320849678910164331885411191540170983344559130750773889500684047669444331687190882447470904396477270530417598530670350792647002545494226147391075082318695855038436876439458094354080630793792464115968194534671357168101666603723554206541679877303311761112992708710405906483611264081399597918501053789935783079656328274589472554448739705305276715520727331912619178133040010056124299024350191559457900046323725126575058193211195869981705995015093622223167664914766951226317251857309590975905912877367806142203251481823856714811831281427757681356504167816413589682925670716729873251908805948996030432872035839491611999778522505808919792997065920125984430305469521894463062522926949936462897137990645404443411602985952143691925384116106347482740552710661862201117990067182085485785372510091332300841897105021277395818185523348113984979940183995644453417571383265376521316711075827131897231834513832516232005338804164399278439756925322576177095925080563103776216811583237819596755253247325166032006720859033693273839542768914850709525176954571163350430554068170977721338104400437613127610946284850859844347202352390817769228295811665107961353684281791684009034328692023750824683074485027261644724728099530049286963303786164686598870071548796451691460469600429372742841413767861572126299141404972466138686755488871254267413004270841416531881508208063142802272589430490553230843748299893619162658873717008690115003820664063380149730250087760337200903171096104572021593593899239275555655978900075545500870613344586715049392982256687381663660891770901698324230054726107234643454132112108928664632357640337882250263617378620943658913388796271166478520583964904860235118512797496715189514016066551384145322264590188840127949138354664443109324690549268077239796415569714958363828265500456629112312435826645140460635456430676190278360778879949552395001121741670797034057397131958991970874610282825807809134963184650934858180625065667942372167030057702888385782307821862839448314487552608965893053908770116030265750834357426289532667503407761951348123628232732569487470188239593292476339666126302395511084582519876004142622689171755156905275616126664522708179183843650881405347254935405264103268220185679294069049951868405633416009541253358280794719630907929643989517463682670551943596637403998038941425975012154614851759506003732229595077100839363370177302265038941379611514015398723809449036961575599190270321810319664390062676908072346049736950130180006701307233973798176825917575358176056771266524841936585241396430785651986307842451681728598998070156600646415708156662987129328344095272385805761637149160703304620144451292812188872445058665318287774900933879532072616166670951455894139522795443715165933652033773167011103250728522782735034489040028387647218562834493362497383817269055639345489876056526163846049742612576748608099492690478376775385890856697750487822022943288613748786902408939786984850034705422515739609389400175814656129434993648391878160785755761326427630229250410055125463945289138678976171080526881810298912020737244232628861247369486331041940890732458984526057050932988947997019359918525970015450986279641275527047415117634171659233859774604771743845360777169707860711365898536089084120597953446894787972243557520405432229603809221270443374206372450878623085896865286762620884645548992946399443685166354997523859158542773178225635515190749147520255039565461595507780188645961902433415259298433580527548696965059433431079615064808476892236043381659037626495645788063942797674998697246349895960912670717055558718034293545158875979738874344171796129675534966726379247106495126620637165759297192628720411269082870802567880971421483015258370201720233516483517438240242320408076114493303020145139142676946687846426642582801593265452188035702406266859669658110689327588379278888144166258457053921644461168633179803140856140418869082828790288185769494010346637081966076520298940333648476704804525095353460261310694089300802474508600898678618422006724815546064674371229933908484038303293391967445527688729681766188173866467323520623563761734610634157864018154257357807387476679702186467443264996666929512959751073645944184508984544570248849770288096232281124624510520785746527494172826663465210733869167852928163470983767946513136374530024016136196149153598194296396521191262504281742630822327630909716754417425191628690939164686520136784676087630983094834638691917279301239358544151330201760377336105729425266783385301170521386560069592264081422536893355655294440919424342434695917416324153916815195321605176778181432171363751263480823220708206457879754347950909295535266661838945938911801396887360310767249031674559694791664725033378662638738074651344849774995667433673224250839334182894033411264200288238116457657649881413068875295446291096514410551043336488674517165200786041847627414620796588899240624666578212871448614056023492590807670747204569298146008016574684070309680619949508453017551872937111335040792741777778732088172120842917811935969235198392874419698556256873260750959495689908721892560067289452711399284547403702536981812681175597049733221295133322800255532581643901590722189088000274814639624156039381948267380806145353939148423179002518159970398961667359462612171062325330787602228041345720093624742155307486968090223124140136638370357075431185137385221652865678523262567925751460279648969303288710744239626384949342998301815868681314465250462829133818572667495790106986881387164659712711640910813851661737284583936139362496645626658569917784953465657961688667777279205976377405116098815772193676584813603312279061675933594374551698198017380471986255062142846717807948518943087800636034513633600557789624576273160564900355960759091765118282110760188578884893669840395296467926732494180851498059755212892116683943091683296663310012080025452663967121697426166948388376632255071893978185642796022821466671955476741150799489891018269954617929203268389504881832225047263606407814468880255616115492822350027935885450231131056547634522684992099049892739568599324737542086996453636603964173644737724765855924482654886152600233310028985454002155778859522571149929356777172433428425638616209896897481487809596348376269337949291061748364475773945309225171243475441953168995214826506306556395698326689890651210714687275801669666507107350118956587978661511879357154793778417175897790410813104858825243793741488324198852243749790484161044001863449191409417755233038366488317535151477608027382091117321718408795344546982838962300863412705408628499594164276979907319944705158756114639930743948187354376361880830639493733593536114858294036769989127048774479613794255210453203839394184102901056883382256665167238867727043255907313364289878124239603639928209114507362502008683132004771323543764502190620794313517530358944984913228733231342885145364130546837650754405149523964797408267811941207528728278084291921217966250070680369501780743173635740772789345954022416928907684578266610594652966564763670243924283878349512750733076291155978215592208108324677778728865537465138045559645735225169656908927346931786020844743029445972085698067069153491590474409233354652987589549854530000336994263193942452225623301098739594130514910456243969778347611166238838111178442502807616032339848582912412235696334290275672441025265766921965958338259028892019078752724981546191805265356906439166061460784258473719587942484695248949050402824865549535760260684381262284315757530448189452739875631866924739901231474363356120006894224043344855774514740564714453778490533325730976178678031674494060191777618316005725016277647454062150912587312580020276499224377703762215580901183103888556427326018691289092412848883355823898325293233263905257736655773574398995031040480792418694998403069354000087395953663924275285143263321747700571283249322578224488367260302711423301431609560358317520378217057704161945764551043683633926340120248347267708494521484116528206154334471681687316036998372920955274787353204558538204322134703920810524121710260263964707697569975743195618692532855157422982876439150922360022211991442262058065592670880265294874000692559324313891706725903297010304992399749816026914182228925169178146998886374143812333474452012651630881849302312138406914684098608761010268046489548416361380940594115502133199647573233782705957543014494895123642683781644628567555544313782584262503440832656841454105571368239603969472388720396663236516297699662650720207119517803504141888686356829133181085410526741753514683732987970271277776791545273931037718416641767482627175928523041790206494545057232024980009625738934028199434614886756933225926427337601370271822472945046442826426233567259568223186734200821609415744591457016913642966954131172260103487047194640234847066718394990434871564701729962842294093190030317020010978327551642513538711736660404354723435580104291275256273038050595054279676504048810508590494516240058185204504965796040742488884746284038515896062935381696155107414296474534473747087088962765368811753516128086959458645355558217812653040827898415647490260978335580001584050073934406401741664619117619512303134213843904119026208896237826200214968139187149744178163896470315156884136912060765707370044134317443762172232020981419058027417324019414578465655726969905654689122968487616220145631875066395562349364284170599167386899549578505206711037703369736070284289975145032406649917949350688059266550014037913604831422552868077995632442991621078635215868275766941305556832333793310092494838485845894606390232103103026575227143843173078395913269414796868029804113502459273583145323613445164393850050970424082065952218066313882611202860345468961082277971431793698189500827327426873326761650483945577762260498889832356294045451316240084205135859370349937349019482240036497919821664594176373901814570336559253676251267465192285513073578036956671997035722119234573588030549136775836510419395884664312846513368440260347211703414421958033498214988245104153150009825114783692723120688557847893780569631607919028997493881296070232481716952776318245508942700499022676427133387660871790704851411322142127982572489359037598021459114391158647747700621394011121313648136948333207150067604925292469057269157292967074990686736810739556106094262918632159590849129023713594030411025196214699441775330922925777809306150680960027100086055119984176451704016261868070574659257051616759281922602096356968535923829311747745953362028271160678860878182143631752491302010983477348804369223059498049836396457381885861810919015574068876222643123965609721692126571352604039567250908831402547168386572559770620224010085646911215740260934322280785005464554075925027721281622732617174456477165391713369264779196049392374558422880142626179258275762784322259586075771209135608188732594533567846222346406010389273468686255255050524455853253823395736741656116791942725511317268121534759667090734303266621544716302434213156901590015336008340013056694384842069113494600255705150529927596288099808853276390553520167058283571124946379741226491225785611974540993902671145809392403784922218048379632126395805183106266584060654230349585991011792503018359878002409778386934901068964284135410430056376314745614917727023915372545122059281355119013842320781428197039490911850576332021320542911403499154653624282123012590638873520351335240458334753827743279066532778493214276277721236532055461250410144742842680467291646878894599817842390123037599905914662386496475339964190435713475642602413316655306576200010422888380686732748572850396739399809590083472669339453068974550045929437143876214749600354189059716001972527481839041777967538273042696794038547801498006242506991362558607070570151552940515498076576830938723754142751187891079641277888544521588857853024086341870463125971890596221304810087116741652631838529784129586248826532903321682080061344764436690341860174656066992359556663096440502174572477067667525382145024495275635356458972995263002481598905554023830975215901882499002290377638150345567645404164357538684343886277660926508364518469185735638880782630280404708204309585167414350847491858444723675110876773761816626762960004140544339688095795097422452983950312946190150836213454256549338926602033111721468795322492127784309115004985691451926302074685324565480662872396019239704709503064045400917930678595926071019977824657009327585176913838410359870722569711749917988390785534354626752155922667693555196067314662694701663165909830650756590084242904407746131285994486003690344754023627118274169927494046661406194120880255650201406310090459540359457306401998186789980016241365798476065120150643072867183557417390167180135943658698918366505758297324562979096446154732283603618941570989171623492805972464660986477606872087429123674580953851156796148353177553981750058545905781612864370032809567686236308982984188881916985113968802704363191845058283735188730873380946100678023001750197924000026828808524297572796790625876255007988263629286903125417491361318227323522905548153141536048165660772109705335721548181764400806894548741950101932232104003005534361063923841563676347019675599343354734846348199299063428413889984381433168113925037628864420099360721422669262096992841520157582960423322247783004197772038114963995261151378479001020621333797567000229463374349499055565331796646507489512295305766178004405070144578310671075903051043199877887076636984216730919373407066784678000416950048248256201591906039952851048365496494208329692592522655006624054078238916997028912642928143505046409572254081324880885936223956350876588885603242265561634415893150624682111456978380781207149656218755718692091004131837481050239357403996983302508560110686401096163473898363834672185090797411770386741651301198744022023050988457360322738998622167441723668924203650105724736985745191758923486474649010406243376062184056909940630410236846190931728786152116267553969407483175993510562252083316981505835150593882963492071747253608333803506677438960532337596633971833489070523321278374439135353339387703408200896543903185111674079798920841382755508475154099194392481794024344579110963341453766820040664673625473632625078550211266776589697331447026434159870525229336127225247712540710174924042206705845657797344468219958629498091789464906479320255126359812559572320164617239270468008636147019122374113381299117862603618356494372038951348311719832565290151580155745608812273085509986429273267743046403753755827689325118097475606306657713555040049216074786064381675831531003531470676001204966249601786303801736705052809945069610170812691033108078495687768997653162819439650105436793339871700209055575623933306285676326530112517430921206695549697890901106511372048478424420283997827803957666088518067209118898190682603191106442904005287462244642544796811790144940076691365779531067919677667721824138331738709874057453878948835676613244759800618523625476275115075725926128033238435614213670336693782166754836995865789889819292438488854154363213315760773187441303555736170845952228094193401219618793308746137939008112841137895180672445099924711885359644884734466183535423280631249479263679698572128196814513522672121473594866014192659366943266274478356099604974688065985806564247597383625344381369697663493698169032040516736084676124222706261603617867389859638014131512158210576257039247766752727066686983841610457707944711526724005280112725153739821976602932940027765501304564798876602373394352595165501215289948779199501000808539153114607524805831605776591235981582778555082207828320696734149634583443806851345155834509374390352268391172302280209790548211664413437905733241942644851972187514931133210630408361970713794327327762110388784703860850713654766012852651867352214986454010408525947194737247229486120073645826781100068465563378718353180119797449317170188951578949966677373506136719270685399431180914044061751362636719810975694976078369820144190779239456062259846055131809612512781493386718102674444491954208904971174814036366377190521561299753386971783802735181363733347312636980194690752399867743824954544811064734019349211191596711903316878492605503328304875738073852653244581197654819708408340598799906227071640681863346771088999198308494662421336801562841621488815315842130999309123713292352885879540654359487798696471572927226642581462031341565261323699210898884578208259541950579230875095266237975812397994747748404935865746625665854161377327144329186300018636829263305924251984902927300044971152281251665943294899915707254263932285813875370895740639324991359611356792826589352046761834815008212948680073780208470897248605137174707313881967285762434554294846237916676612233614578781653511900887721957188319054449927829527477927854720485033909453476219041851391512702945102797222540730840454048600462579379727578632820682338686231943114337863487248427127572341096089434516196224411929548049835017775490008143296888068510040860635879294846492788160786484502794354562625898597792889321897886955819999963578752870660617503999274242659893447642267187015947835741382757511320018106438386260723502938702784916530206816705233762915016243109361265678674181997193970854257443924504807679256151577129216029032427248983244695500513463288432979553925505785435026631707377767902712174267685692199814914998684721798556029239249410819380323094568077226639709863756643771306488817555113277270207100842215319393532563918632227634852733754419066024875816011024384369887097500680257791263280352427101368845705886663443329309854473869130373725941638875478082812131246315045602922148671733164765002953841609926189720789886694149082707166966189551612975050361447150608998703194406682228862748655150614479619195082413270670114839054716189891912522835629624973876742421032914098040861399868867717923097485739869405580285098947625771263317947918519953167850517703244978234448692208429488990948237979457934716912566823850464547710138283099172303338267396755681681757255420383830787905937050011152110690707187166305299159321838839251568255001457215648381160553581878827802338530768259156739592098998084159820557370420321970013917825023669125680771699355706267270673559391341315850061053265283548391656993226390338317256894720047803529125483882969139088867883792329145402331323105034961248832224247174896599242001324474138569389068516647192581133835864275350596992942657125655144467286121326383829675911428015284999095692589189568593792011556598631742053400789075702918601162144073008081654640142328656096089534611692473625275577200280473698455954240342187139459554976638306748243253658543598724682368733011984612177075041109867657484868165628279388346862383474285439807148771877033289952432909047414954696332478011567856876344190468086684529814433875186487906277588558008951548307950806903397201212284380809493811939950118052623525765146617494836081117002867030342774569936735420282096317366290852574398831595731440978062646243525428578704686477964607653925403300625127957093103228176825413954850098006929790900719625190751137424447819424541090519548371377445639221269867826300678424903901437372030176760971812249145946366719016680387951140280142156101112542345467279850421570927493098494225300439820908455390418337237543213418496198485675238852259830684921673821866085227456760464321240566727528979952394650705299046876096528198449398210263311660737899296977490336063388970124719805876387645004963702289497582879220287741165687685157174429119552662691745603269898476704501632962167099967620374615658760375056317703411248239379008374283459613263761248215374711173636359984398861050318606037251387823277773864541735572806022492397400700398262199457572994880266012489665791198703570882334917029549140072612806272796657108980265003937471519828093528471548148523575404269255028534783414641009974306962949106013740461567177908460847257914665209594677037198882992765639686438054109437337779497714408076629510600232531459737840945577254077997112915035986385453110814929163977442579415283713261301154039705109542770020876714762113077363973452756587432588812780973301522071616097209943496305949673718071408429425688974072426322096631468405497470413503385085830960974864981748289660540473508383521695229896834012264947395591490290704387301548979742644832640545537404505121518159805636608554743312249864091912923413771091062446515898071119954232212849542309436578846632963559369580309367505908088925229159682185312857650392118685539355055099146531234792863433917342314989564500191395064653441929588336416630089379226566162721708519880035812350782411883269478706920252240793629224020366835143393568025569697427686689247580202589122409461296641529411862012426276290010721825982302799016496736782723849945088336175853590133525889869498470248868884248528111553787152753431904523227434295238519029188831980545333331150139854740518412389313835911805533549522604368108817672904420553514983327148810482377188045186270722599726978707678859245040529258015970150097487507581873742425904000691220607602426418830972096327597338268256908681293307440332418432945549330749875685785310254323995059775495223808749930241729627813438240417655733743679499640900842779484309869573114252181718207680603431600278940735725342270567994722535312609604882897091755240900096384008275232039987808562798301763065201046098179475434412262066884666930221097582574613645574072712516225893142301832652094045172548900142858719167868458508143056747172794094125385437689558619984801789498321170133416654769970020958262637897936430446179441730244715837458872877089001963143135093488166207609750675340583100194528344030991969532201429911984187124475840439264208249810821328173111261885818956525801045914659900814584252710001018087487874228151917843774516041463528870183744341302212711297372448273919009372878565683064519136950412992417169021276382153036988374164940987775269411713343734579421695095733702477349645263881518040388787078750911853937173083665922714653427753135515232306148366522620417292426679278022073803287637920404084408428320405277424305294015803580126200527373481181831332191397787926366741963727885310789294415673256118574578595091241901611925823295064160207332412855822711592927682407184314523865713989948880954165048272363188461017944072996344102985524944609306685448106268825566664610748811544075443690392848264410734170953741716866869115043586619517471210679173592337904230197894111091277118576152725372512878211016892306141430523522974208208185209932099792278158679694720590463934673741105527283876893794623195820829493600425064563968078514529623019440211153350573514794751642196986981428670968678187473027086047841737381875042506300539800382333804323739353726551677409605682693705919866513995483552774774489889779781842607827576953921523640300676438056136538713020843566760191227862488962314778561587911412066263367810728143427074673205263928876126590519679415518341602782877084911645609903583962248717402365846800805261131412205564255031656612332103832815050949799837562126666219216559471967811061851724727407574896960778820004042607818784308636386078710616827889768153920944658483821728680819437054654365317893006978079579613412616793687471515590239867301061420352019954485643372094394159541327804936625910163351801108738367704515720012887883318705378109532980525541109406691345073618723972086768995991911370288596686482300750908915135127667595055846370118286129409785274394256443126699961029183924292739129599489996605502485379734090604209299305296615822880243160319966920061536804501510256890473634861080810117936962085231193247266599825832264794162724601306771649746182429352051665355045293615517169640854399267541458513530250362526144227899648868687677653898606558239828013938123853823307892339265434568551870773529928913904187216253425589325417618346267986179793585018936218550432057799405694463420649120209331379835718084719926501290841122750219594507383349810791416277162194222950903320665869037422068217131088943135768262705168885844522412852692633270876815955232622570819334288432321146459668590144502713766327210791060010154415249654429526664277576134971273621710152882942837535073120037294320264219826772510120157296059800866238779137829167878081348492745620026796267738074418267777806365389713339620811652859792798755035550760958361318189826099485982458519696671695811396905064050224889407869944799334615733563680129810188037818642357783791199159057650577574773932817190063066522371061190146876760895715344618729894035567910879776768419956683216274380717404940884805444863994508152044654661948965192372300266857997142233693004071171815773262779815627758385354966077309020161221253709091962408562536796689147555675560718546277753861664295353876774935333023066261209406792884216890783322640132976107585037891448811989406281707858823398121761325405606305843219400075842479676651497961999589594469326023980711607270329956853672481788339178087618756315837602386670019934128793718345385724718499299603503775065144043697380191408470399938688480797952973190068893495709418747077863567520238109257169730020820151678830576239278421347535819126780835881200405881729544376446991492874385823737488586475550236092918703042844721783867821136614513688914332749008790747621737767146093420438523141301725114386530385766865808181319422621503017167366265621172261661150935021328370620072748703818897863342461236147894125986812270468909771691225754258409366220023356136894078690713552517093521805567656302916608869582108887512463990844699021933471956021319784885862385245365550347944416321870961962219007930171076749982305553683413346944396575903666607606482485544590372228953902417114282996869856387202565698320439743838030569994435231607607056210750216201975663432421323096661284677688322979221354643368414297250418781717753562410659443081044037608413358932246180686889740161363238732737760945568845318803187191808336772950513619990697815083389282555788144328007687220904330953873143032739712798174687714049860910870566660612264629958476835077348975021367484032364149460678582661791882671811777435806509820168052228220919201924757553760133223591988820893602702665145958903397549171266002600842777773617980090533738882667044928977776700555986241767652837360508714654300971222539351518653926333782241416675069906425706684507596613168170086623344662968418264585623364361622241066939634773901846671764337975935308714633791882583280618300273795581659164630878268115165800360529942778895739690592319247652270372773924813672234351763297307861882742622687026331450024454213995903835409120009320394459934733909245876419692881171728570781938354359929919916344258622840151839357777935757933337526818080598505461067080683427826043883305740105850492009820748301110215404410231563704912617624730233642026773755332548410834547981182095825606132742483140039856758366550754491816094559905518303377403575734072517670945178953334642264629389619486818163816898982373080755007064652431692823265147958425222214469329601121918554085998726920879952465220490602481216776437253695474810040850881294301769150596012090964836160555742391118936469758877026013154434920131914687301730625323402073983674463570700820986015736157447366799133491205040402125024818282703503275745915792616583118627486886216932991240133436018753242020398904055878317825053254206171118601400982095856220413125072711165335247895439540054655231846984531511568744171760483137930408053039784664212914867183799871100456132395233376997153361592936478867934180518039770926484609921430723699908336901822202225707776453366207819839721252785403156049130754488131870482713400392736639777192322446762213526228049166674074799051629299565518073538904840447282333031121674199245714687542100212380647475959639699343922198872115522638748019574950345392311736062192961729707778987370486119602396348289245280112081437159754810688644090649004707435917186970743943165132995733425943634783127874123525901149572197281878405750606610069982840623619487331712091790387017027079699612352062845663211504840839087677390506168803597976443329511524822981331881814413613702168930494086775136070360201036175189927653227504917753506477086046992189261325110732283456989661247453943143616210159322554929397193744632939177384809569720350861194014202110881094301250832090869537043459774380351629283394624657998283900120457958854099948740149255907898395050906518768783883533241856051535779267904030030013518726146492383544274353076167867373515393059467989529986530527133078024096056873875462072035037711914587319461142517728759799471200804213394694258480406065357021907761603800918409769908137880490344213025886736372264079872563859292419548954776388355938400712486896764423491325321827257173318568364452897167059112716522381708395355187930044330173747422933485180066832477995098945573681871629169107472416415872590973548858608043245819781798892777939277389732855514991488048551421772874845367861186559260923444313092745509918204193181805509099601791883746657030161392662680373513757407612331595074048769085785940642695733582630786269719266855214390257728997333397312187957097993648057033832699205960842762411792066646001431156090643082265015510842584849138888202803380325478312517950310562305668556826102390966851848896861546639328695548393905268400064033359455520359883638362920398715326914479098570626570091596206418286226292370585755538601730090151340908654952270700872712312824491263716809432315928127017080933780662205656550734702933342384070996269093101728570669027884306490528445162373243632590455133059288218505141165074607636812269438911473493690647034550776193740108519930539580045838735466253837762606813444779973061718115779386893442961680084918460184269726436469514059870511519910475129128261682351102203456463553087921937433701430955080895064449140247932050021731616637167545631822814892637229837101328295335257740567398322189865409846183556452075485506310591656363257918657702016457869118068485514887970070229070070348796112365235364439654935994199901256210348812750460159043064334496248328343453592233824597709768817238464548671918202404273256490002343346191377633236584117627414496082395636839190350329492235219095776172962225116356439928721726775558302390485100031961051795135420870342476621653672208138628620846475801398760104333202956382201741210077514464400141199151266323759384157179026560569640429348530391023375678840985542152107509862040611041026944635233527208462266386601780923359540649944348468442205058692872914913107975818325766434288300472277811457773241230170933763552723495350427795353718303393741248779901225431218958131228461011371327597494930742611422870066968953324003772517636418168267655056127081484902636028676758925992904192431585126939277563784618143724474424901394267200534959190152282853248955631675891616750850516376324646156628967500257185101267545611234577759027059536563748621993745342832621718352144965338110992114773561284171861406373046881401126171733569566346391413934627943743817845490257096627477058851540065269334670076914860497110214633275095042960019643438608881328178042817365707114786256866840825325863002996597199798538479437756869171945124260362102120509790142926134830131197184545701624507465154274020013430032346054308754106195542238129437623327615530246702307602745519581358697610600129972059059969222074647096392884363279852244179135541894932944774467191624412905043225485140975503309120011682591725722549957513274049325154643762474980139251021112903537077568487749761272479421974047506490580436749556219196069306843189881044885217958697837330404655673929139777995405029081680537302469609799924249022131271848609490940729217545431832470997791758974408404659633702433202482521839162501273705221465372536380523829998489047882384030998343425968969398336201374108422060567347168514502317554505337173176457216114236144860950701512520360516287666028397446125375989133886542405443004388799991440860170923588871963504336410449251150270804552688129218011221767916401760952040745597488086423341751868823450457743803088589626559454039546503961057841129592190338540401761898406837135345243299004494774697957328570572001241670918281813488141366142243535667490217026354665815395269172924885305917878227575687344718565149016721241124230925724150937935221155716453534664741982832010007042936919015254754982142045533981004494284261183173728422775673168895561041427207355750620999076254080929610917015059923116918278640478730124142605976476416355804625869642873582946290050958713194816747263127239984059826533969534285092481182945930720216103142598718579747608687948586005309818276445598900660360078037882480754715008068882860339906577034538701591515650901479181232701182786472474989233586114760029343409485407415776355008127511626042573833663532514206350397119414637223169615869054079164708586117931901827053703802095906792153166985701257479415397761078775964859629653555777686703606124065889528292516274733208321645766205007091515432791153914636446701371823227765397152325940650860187168972578153048699004018193537394740254607261478658004686733118900067179248304050425532231011860739248095440070182043509447503084719934743052838134008272488785139553247071013446229093084398298298485650858963363053261277985052790716796594551624417692269353564597950660496366118869001230194558598590260552191853373540867194301109894897272796425950218529519454919796711743307323530216907657914703437911107084781844245609273583688882822036015319114850273619840645561158825246672540948805040642238916206936612796538929832523067123575174396797031786449733758749772150992284910783206569683248209514666721880324464392827976742975282087827656342057756922674753467630157606492556010054255172456055132894112436039596420077321122260443663690491544649723051909747794898356847514989803085812153026868543536371757943392062471241850442674069718776869342904669302150825428510152009805339223091716103483813123740233231955661503820260334646825948801835629137274894960886801671361265354713142398040798674634429614693358378627362608177729046008477017317682443838365010624964456013862769865547251714291883975015119510151124688110211376032568793532404961833524066152722847125253306911767060460409092546625909362910591477372107616813801095794296198293167736417108912461187307599623969665008406161608290508208805199697465596295720193719111993388296656243935616236214085133761153280276833269823534677665373518973805376930624714036293247058864186737947660295017430917698680567574545013500376420632158890020468796059631760800679245373272105378534892323658754345280159984451773840495880780815259078894137429137983037180537570710822692731771720252939066981294002274234697027242133684696406236232811977182047727453962919367356518155020636139773009645575086425073342157067527877318987395164449606878631333673040914204236429427255686694417107133797970902258894824840095583135639944463211305281084519636539603605199019906526914551905858377114827706341435915983169736119000547588754938608406557776892176451408727157938324465328293125597431110095510782040548011165011065386267606019072019847358872637694551510499855662455022174979830750896386451918041733058425222180789516517965741621242420124172234083501995439590276129108048394617873229138827223773960491230569830738004725084317993126619903936215848322238559608077233860129895559294739397279480662764692121023632018579805308778331524495207105974950038625530781807701367984218799520972158429911103350291094908411858938178316262073000497852199035482909665502328851596028244952801237616160175930332255134493644917481017713488960267648193334171487165967228863144297677784847835268510876390957365892728380015490795531196551838724059271041738929722325151015883997185543575102255420487717505797926826399303951446982335609381120949649548139203577451915464576283481289496936477964064419182303657087077262341164290747093873494531738634050879092033437197080100647511045141832889152922177961528986172394512659537977615782923605275054920471639405234933992238746867319572153486420446385496444570002362185510471839894999412185004471093896508848865251744487975135173921189949869010598118029763448320402052477354438824762873838019772524760434200338855113924376831478427775763298691561671952429478556886326807620376527805280465824237401462408835673101018297669915444644905462009921592733645506618595478881209815710255650974150807217657134509527038832458700888436572208379107256819496267181787745519744895239274104436562331237132660429224807305597921463107572228530134709355389862357755891076505328741278170401439773110615575960667127683882563400392408095914222485949258820203730468031804554978447201582291636386344154854117784627244405670918157276387335036113825813715797462100748897173855801036081469375295267873686604928705368470356892640782834354214440934657841369631869589461180581215040917796833227439577699897376829821052683052625423948862973088521630645655050285338237435907209463459209861195643184490094099076171992423936133008394106409579147867041252864746515478326767524490262854392348820915256218937075738232134223550698204355507842560315073492870681885718141180100464995900716367848486263732032477119402115643032125305811066290266597766674183684417333895206399607065461935084594756299741380485743067678089035580174344104096722264087685438988064252621868635416879705337735640295525883173707453042733626234511359975224222450703744178610310223054070315797620591746006709022256153068683526814496444694792986727662956839542567638068214744437432268796661236780165819679081595681548024957288877168385542876916958700919075570041335164359703304346937161361792197298771036522235380374349591315480370693681844822317645906189571175554786987099438795455575429793965644888019329896757197532902280447285770465965054977248959549166380192238973074049253508068393018437570726931775558875984659057237094687255028555993974404673144885133881844400035666626656183134927593844713231376363723807369396806367669146109496692974007828917165386973249326538642373431704535074441364009563273262453220200457528996824154979147337257247443848884825478846509591170697469242125818799462114686635413734595139200061994044940682374717368185717619819791155627109370632134886908637963181732815550548498156469012929039531801790502963221853317927409047686149436320976268612278494008312530395695653829908341852436236652990804285889098651365867237116117382438397304169215109804182544911655229421193328396013764934872479113289098258453580004570067898529406949415930514735182242963312821511289896308448243989251701310952578265719745612159621860694463066604211379029731087422545303929255522296325623474067886789444519029714238898550450316304667367823975848367022310316242953964606688584280214769461724098342612193191656943572602884577861701923115508710463829627297250307723164380953159725161183103343143199903222737459258336398628503729485589816725264835844005968562423157524286512545061415926277237188214453932018146932457613895435551011911613682565956684640123175039517712915540129549705037247628781982458181425998229279774344674672186796110242279149290407192889359209534607316820198746570157080654125032543463777834152707104769019132932661697381182679600873200820345851490692006058583762630699521700333740760764241970203357182020769842897672546448659709697168294057043877742665087297573125317454525051506641984536501703241593061902344484065385041006226079142583487397909435300005708664340756556976329075049114558549858412364306462561926024648173592049220064794952669546325914283083046707472180770757574775858078146957527866199960851854855071299186635673386931038219955558417002563421698298047805624464453580969110338295009907886475840000649374142874689377237688843619024488458190688916207556657117694788219185323973231995428778571165415061185679459874237079440297851568318057864234431939709376631800909657741864162453904112392522061631262238724181499507101966679724291700350437184570079334896226452392647583684938625126704915393418191051685195936905831649531754409695036378209677055858008860035561954316659356310704999276903644668005780146070490999917480277365622888563466182239447562936265922492256689651032298944041406211734541160744120966685651191983948356191817041560498938667324223415534607854974104048266051502556341944200136349550556814136456812175780584138130453014282157076699330341571308275629244703324026991241679814597083633479787178309104295639240768605597867117143641513373263199599252625430451609495179786408914117619351889354180421578249020349491620278963037304037025483025046307728867564562153947793286512102964430848283952144601928214819627732890028533491067930322492401164378896269666208571058152411177058659629867324812870565358591857374682437064224826858190584024739969730297801634794448725979287172076061096517480877065568936168659468739611742195659153984646997957623381997418862768251916028030060701961740150631967728403484045871754844458304237589752177111430997692423910505539695435438357154401932517306305678333547841779883381488986574146472716693807548016499985669070331744044504756635757420226802090413782026916682904961997649584811063760734923507808711411132333298862263400330747920542376250268842798670211592901067776782134012478900575699278474049783729185878600435877937753047685299576208388762105325571361570851107191507434486836208169314116813512114955817092378393173163154108211222373494121495345055327062397239452527603158031426436061368134431561393624140972917903890548010688454987735133682391771522398898255549866559348294490867220115183003381361005955352407817798958142506707187299511735891686987419791750098382644958212087515276628742449128360365584309541486682736115807036937060272034922873556446223033153494096588312493481416043952060451161421034174659764253974653776433253273117607855640071999581635952925788533982021368386822674698088967110653167228868226238096871470035690621888627955043805202480323282471799477958621957166595910277901960440885744959072462554441255377226544958846970475946198682841967817944655896076160746918146857416179554844242147690491494989536495590006716924884952704064371594426741560168777832433483337551633698232213193612463420245923232750144096863447069429052505974854621832109790964908501431494290870639649190630247794812398920671332681839563050216759944109120277061556315968050051692078983392230084327532608222822184519751166804535963986964642674646259139595689967474381208457769413307773677203737528087448749843870387801487901340358778969961543299891288350464006949939864121675231010056710115805208987022462029309660662116513208388755667305906761039414201768121993515144498593390196299578600039618445724153839306051542320313258518097297056324909458168793802674589925784897337990903075942905040755545646801037409662206849265731893926956316206622187388280943876094573386534713863156065456154074959970136246020508113962466312703970242834281902342996844536872813763237826304067123842993817706332593364359672133936404077359526422507939052166173974663648448382015577699574194755025642944311974761942392902929656161699149915155155280783873576332027619525863340650561137843066633581006515294125274256417086139969983090879539166676934706318183513532587109378986688993448194054512968574116613822302163503790924028054284575097280222374022636956230059335882516599193461372591186142211117156490550274180188109003762724018199475445268921766838171497864086220073177829373664608711995233160169861881158191406358968607575796254283857334712507895626117603214889159754789445419209624475049481567513876075098409294911182820564357959398961908567950339921039776034430328588361943214453985262583965347871934862917584809710851032693828380805387748638160490792506264249134554493246439914095241000581859584751253439580951110165786579369155414364362188682249019543617525866518253424271309577636446114109905055840751083921738453031834469436757796803117583857277032444032428908620680049576030844258823613230238003023872062058272494062852961522728494992478881418072522079299635878233157283575654310185257625740465925922807830703973282167513121882594379424402032126343515630582707283760636641471937510351066685347963825092963206067910891563350016954280345931333796164480992588719849788579433749014210272901388247089985099395136822303300101146142021156757110720923619779137038237346914855260087181242290025978372924974392189552359721053314895830803270002118282299413857409213657897492892964430918038769828131504623595685725165443095100955414426100283856687285217330946599493091307850862834197822291033293293001450114406469865604365344487682840824272085785031237964102660971965475936629294377892203652895754888768093069960963432833038335766507222061704775240745309097396245003684207078582320588816257178797026475747021551360037740697853395063729946536643780799525760477348534188499799152783383558323246301986306919670116947823048728176652309412707902514975192508494443005962836934272186718706697574786015059859146853102696012089203722053679863187969062748512734590800546153050589652222421678164716626539857569581742152106330108766809593238248802260757411255303577257086184852556994893893536046684010492639658981296217378866373570141732730227179683764912994730023539346850140451730066924287616494545126687032218254334088645894231399364661340006535402951898740742632115263713384255526324720468939369636278739704846359304443663434416881333486794539215502633819888643455856446143813816638189841600735993876507423629528129842719920510519699159956840852937470831947949835230654302410663284248965884732961416073438434960011080204684621679465413259623002158094985683153825842531744522699781477561232808683770920763738545497628774986674826525345545763798107168439471235900802487760414896206204930658029954575748604346505863118609730875101677400992076493534739033145448162230784517747358403952653274970997186263742287229334779384810153933049826243148211428542533418139014866815036682202902564823903382698187338201169931627404325388606472311367042077982714185027112056471320973915073521073320857587121871932103162879504726803167187015222844693452420941133688842927764362580014203040099423145208280572874613342889956278854958048851924404812297799223964252476028020226119163813167022717926715089327112224379308410249901857119361496221097106453605917629631227212510601855772485300934463472602966277357022196270055038424767350663109504101481919547729548867725905031020980096230956797972343938699149291724956608568912234909641295548175764208715380686421910226995157547291023840466731829094063214906470930183459416124776960142961459845758214658349474592517662952234196487948932370172904093400551054424398035473010768414090277375237323383216880887032999160704533235162766445061808686538052781203288712217487927264895261981071398107732729836790278596212245921517170002005705103802197979382498007851666490140885151039596466871173287554791395076121757942567824888669766361264411059270381991802245825863875252460772140882054728855105729934265677040433606933793990267046388019803082650625623384661592092624033709640253097856855702912659227462029308608381943105583048071436525250081807350803804808736123653275478570033171711531586214783643877055171853564223248629606673808811083872192614020722145335559655078824716527845591097010453119699097703210426776002870432869340132396426177131768375725350779627736950031759091974252713662121222717413704906725427780750127498195101530521247970933014382574244057388477456627375184241003396098904329185406352039276964950897483388381711064766837196255308183817521732330967252240292643913340207560668148809600001534631222048277881462712447951920348235946801528179572410698185104520516243937230260975410317177492567984281311615105045256664949480246458737045465702382309474055850700000231298082157003206822033870116041195982353360285823620896467237512027710364421128992332688302012904271759077455815071614872601103134280723503188179012878044517751240194541142194962312783010775304436137331495564074227037182497290501543801630560506732994480319812785976280349454514855459976761991373228588544578136661473496831550048580234884907713318486268744542511014211502669287738288177003703745504109822594316254972155210483588187688699354909756957471432365318973262938495115942858092175953904487915966880551497023612269878760925280068155109558639882921517313966164953526817008182455831323027132600604477055990664152695872307613667756120449899269228618454154610163862589739287132435193806266151411663408243083795230481760714401152307940860738574168869416592794639860966702737508901854982208084698042967667794497292717030805079232257892358157217676696012211038541906011422794359543516576599479776310622411779495776078407675098288393540221578823195525421157902703182021759372793962430896436128993944622594233758056088542675662620745346688284376392332024347955743166106862290996321063797414881178700844568611269479554918309652447351481784822084762792846724560482093791628080598623718143831628067054720900545415575821597960324751902781613437524170582555602552708148234600716283490768000585162793541726144484163684962153329030011663615273288436941880486052266268095546269602646556037476775885141607273999095416708304052493855383283202958662546966636782829110024383611556197797421818681407269782914285045390916603970354575690159819030063669011727141641251964109521840320096790349607504532151792336940653298096835220170177506949938282576972028931280256892617392284706030505174685180071687724968048943502666735048710122955123762546635861858081315052188078364751614561314105804117154415360354892024716314677861874614380823074803963023859229081839083229951987838828670134346338587197032792969751767167546776096201571465567066874978679240906776485344609375329847675332167820842939186702750531210045844044869779807256331521720290859452154350503703129771827608627021860466623496728865189249994769834971455405747431592175052033833863223967634482865826387572546574093766063515619944620309274612669655631389314643661699758179531384624197039198954605454344176683118063952018136808723170530052797638490865624422628217242293309262647436706048515639794565635972167010362466469335529010541980835456909254749669999389630232180733628214597856470342255589578966738712217096367479646541031034440303094023020090605361907637952438939634142428589079788340162594886247092963637458280232146022858707666460778226065503431996028666424237647386825689939026714106448067824187846501625300520324092866581518406274640607994975233527660253109057389062723059075906856807674111855350951833975180699695082722663411143407027821286828223269455751665042232335415557349379307017683628827134919685125203541187543558321470766188776543011952549911803356161525913389775647076834374771960872200770126762392715030761197262316720486082898943516887966873105259624108781565863384996951600675885572526775671073382350137740694656245740545814341510176898575901193960931397064050316524703283675671265685685543595048591643546722581513492640415632231279451934595292379370826001213868594130707704512745639788662675751954812272985202217574055787375474146361752594323266401184628715249106566235293389533234100930818887540903659591651884852611762399453911032307081236020555257073735603237088165038360437740807575655713912615587471667612840971312257671523347574516021921519524322504832381641244630874963041497984000401882145974740907649903703079223935626155390638581289535414866955096185939120851975595524879404948312423550540961972918611945598938182653992587097229381466792662447525680871023503530823414217267364633211199818761537494140855033902888234272482496342163724933815378077255126592492642578705870001588580135674922985313431542354807068804982604532374831198806294173637895486575244121494555173572900450149034131086886267102333198920716162957257544073230623961087523882899343612619669191660946010458129895676468780021193413226879613598070975371271944738964898565452172070139144938967201293066470293095662278304963684096498974341531600821309563249218602888405891821627897659763634752324861304733606023066035118221628606133116418738002897965821328678880463656812290755752847823120879984502580211575666913333805760323136659910961631056469533171043863390773385992999212886253781111940272895328285563153375653847490273308609174259802987091700804444591034198430476883317334409023239943063450025195497417492527391281358841494816359374929448538136612085633364104009666194292239474270666790387141706690278464470052169675850905277263269328237966943865396936496232493870218711803367151230742582751473850495055083458775523578854471402585705388591724541750420022139295274142381014751242683947660197845126867520655417208594956126459564958509651739189734770253872916814145524117705318338874273035868189355552094739897962738650209388595800190276670872566074700066054712917919669970529530940338303038864218792271492090220915306094359834602676974526213528061968806079057345726585201033027714920186258907770116352127749296737826030193083931989257221407861800477039676938150941516340168420219200606965426334498353394212206395653795170225664970979964472263017021176867638511363162741306685283120994159127770588852510890361995263922629392320340362924780203793300881110531320900136746519548413829277845738569831890108249707307048725831052519174672401030236549012456075338856249657609227670835441145866747339593266875089087439915691429075029026474718190379689172450599960320257008724400047461506247315928494438797410614853732301416162111520253864669203545719470588824712194800104297980693250734661855968340773097294784684301259478934144489743025332604885660648312307424015410397916402571791876381263928954154391119568830165919489919400014291212185713690727790384057252333213705999550930335599977566057150947728485709608445633906091705041602400152654972779071567081199464315163570504992299073034873619001542991739634610042024328493198655500641221539732492705672735467062696471618097585230214181996485984805295905461013433827527026155466686107986830695102442624312192616391929928260636057727298830041691341578633597823533957528427446326534900718240051703327601296863196729203209378895065533476064436112723110366909792350559595424853502205831491815429799014242841953741491883236298900392620546009560713445418055884558571983365182344270459659018534239166773363408352782882204144304691761655120086059590402183501991843698890890845863896103598756378096790231022865295020936260228042226461295525984303815193111434028581920773015547658717532652837884102085258616531659816739117190765195812372426169353167637683082299193844872456659201303610077419394035239678496622555189853483144602026782779759036725823943418564273432903214818325920947484539278485912474917077232236969668218085822926944882715168218068360583787311167417572711434347234610954721780279072657330065137217985947816703705457210467369219827088995841387001869756269855037785572060154435612954124272606347388662279622698892250774232607955201466011175645302888097760963283459676012362816186379187167760786858347651787910607751512235009047039889132945297568138001541176857388769303252067734317645898457022476831702791707624363633375715312081817474659742523157453428840634714176673259628023245761454920059272085681092851521997537566504134024586355401852548620926491108628094984684411375639512338810559935931774346236067067287930148752414170033865572284419056970104343074360730266509832876491862297943314794538797932823639975213284716965478686646149011343428174127330914541225986741446710952271499514873134611250983787552258747631683222612842918090331249023549773795043679563279740440221966257504567324251901344438453903341042076631358250790968556279922378175894205240801749900655301036799671861670120991927767400173555201394127798527688231238260896190775143513776714620838369017193180912258124158500456094854364377223493890837611555405121787546493439950770032899884817056145112606462670514671931051925470111675974828784771717104866117775941089299262360850843663650787364352252262821526156418550828767249602037110920088829261023994037906017903421243628054198192836316662367846935743815189050210589440757607152623361615506863269313956134390953096851913148659213967244693077292472325374979761379702112085580645908742719102620334416380096300343754680203352739382642310548689000504196595566821472010072968368315366095529217797905141770294273322947176817553888977725456393834944443221269593845467836747527942857535884949646636770823452560283278725576315913869515119139337871031031846914179394956509596003025865659631042451653515245614984141116975746689267821723350183503782041556593790595007428199538952232539344540535780617984216468933165020414376630362503581060715001126730232471922982856991164518009688474398229915279555099403920807890840256244026602801476180046528500141413214210398466466323951559085708440401460928483644465669583010769631701412382143513703957601743007386019316768708211550644561387435823081382158617483355292751974406115042108038959430089920502342403660736557025160961428958048183039813981142089883634025061906007468068602155230970235205021308225254218952380537846867490304619838444713677072890027580059154049246518570603742368966836302443266212504854321902523547939441486560007517545627272385892928118776014158974659224773537355792536161228443886375745996065093279044848153080075243954828798722222047965853787072331639994655941499205628756953408608460512986274562857422178602401012395514264238604321670086800568935091760137493203131071732725291100305096043924899454943533573257994842660375614968103334212183727613795434910991742680197194144072474093622080146818435302575596271669494891392382085430066497750027186492680554892074770441930145281763887854756343455608175303777634900631528113271332707532286295927941351772366543241261128904904005331569537125792639579587272715686319185509170024271803380909646719543371599456175613937122811571290788276206483224970609776320526305638209738959081756066725208710607057283260655557283627859375727482221533184067443216961134923219858616622350731527856596505077710520683646612920751988806423373908229074293958593199873885631255043134492420527420273943707813895384462986255783035543117594692824363315122664404579070016837604451368777930827569381238251384574593083327295115278658760284566867175870661622878219796010175353201465027626996456850328933662679989374888779812385121326755012512931333373577122686866491812522849508613179235900298602471757714461551450088280912125422888205402951244138409267390505399405310663190105003504709038177682828086663419054624940412449943785841893138231332091089904720092986332576173285030491752372608697880367869150330336803721602078475148360535403587453825610017912940221778779642807524437468193737205761632751863127894960461880002698794376330987227343517351916867055996560109787050622444703286014557072934271130543817411477444508078801889284089806547520380841733914397191863385602298415295522076587885716475543080071532936359789963127051614758724951656306749941317070173509005154993729263087278133590664355764909156320076197743647518324889620224894403768026921915095432290207457223127863614561213995512525529410035177108142726165106163969340551476499277650843511969512062198407654997722206206786155064691669610911433690396370030320624691761527412666494212612411795550159052356719821404727501315900421952062950349848951327765042787613073928594237338169782089140765900237786748794695541604445725663897881967216234239125029915093562591675737549009339109330530923079232024653490224589412205947647032914364708622639551113271491982214444312068152895106285393789623685822524636034766594357685802949775013571354073191219514507565613641503485510708068393173910954688076356396304621817537202197464681400490807086817152372511015429954746690679366074276987930619801063933652260532750125669586441770536311497211419823147281563854051307721018790388259842729941216647262811903901668815929291309649288674606124083794370922003229803179791524807000617595649810388579032774565895837168050239680574344858054282908783633458357934373019520926440764965486222113157931004703551458723167275814559541212399465830685826160709118112031665950083857454490515406230742050446734441993352890578814833343615515986069644281457524625441316469417601605964256850266149788953941032277000878104299962692749372750439585293443611073727574869026941927529159973156027498787479418890209678552375503746070549767786227809944641506258435467884977607821135082107915121752413357165143286079946800690793567340279019188291851238548946152990715053699870858957618456004077795180307292773589300552400556741463913109660003697920151757924984913971792385276519250407040714618745320367330510223667856571340427814584844679155875364203481946538480458424033109273242937352615123688799132452265974237344630593287408165367638285364461447621604276947524096555519674416698387405110116430683733154762001333300584453923472708170511403403142333462499036630870483302031708410897218276416559368582456791682422382413495938918535058712745182487859789086687853678790689721974562378892837881887225531966610406795594151986385860356083488125480916162205425934922705903784639283261046713598541671286313781110726259504412354843186555863023423178521977815518269006529661215895059118193935039330705439165706111332156145255106723662182534363281299095146998025418091041133232601892964172684616291368863821458829736337140985944288223523486275856913541573790962971790109797791423322350820402552363979391549806194767741080784716882739518225050131018092015268707359942150514342277203137786159350102026753243538489019637863544057261356011351673774610501243348153115275452587703132296952061600233758728124424756653295520397899700000886879140285489852511113783304432380244341871250240638249935138497270978233747173118424231158494807717384535512037313642924152246436882727999585900514834853529485448963284009307285795121609487886191390376133352326568824285981051673679122145842910269179747140454264450876260226866374899660582989479726429872447786847889602271618581060529840560666477120954288048968464769917078099591733350875976023604606924887647999225236321756254850047445698246971849097756470546568850814102988427609242099845589619446882328381871877724742290712095541977927337364349776775604307014182715227631937789476733467617220638639598290405314572436871868677456198196691953431209876043251082617891069971856567181844218350289287805763078612959232092454883370987882958212534933906385090949041161843470051546987392592288312517868295735203792590049948558567275811341224326629556523118060734495177749014072521505353172308078504472724854642641192062504217075478494612939009741154272952105062184079886178303811750185789954769127246701376040917893773972279851910590042621661959350502619039106417603841789720300968905807331295290146774391485028345558713634422211981778624430635886407981301999433456831786750178200881233945140246005488574233147768368161735625199578845806372758178306035540543615036593826650470036840401473450305413816674088049004767083476245589465788541802026323868394313868161439620452897818428641109533511157321571547146926397450039149145082832741691355600926125190186117282261175539384887082190251115190337080081292586522587918358503092237038891839781861674017899828943324737201785833964931192345770380665599187422992125706438352945442391779602829861289492133918766252915835204302085900395596500659543665613924498767958665931973526141691479931748021331332766927749704864401022719573175084692941338461329230457146595917230553973643735031855266861707547148250966955615790263029307211565990139188782596152241115957051953831362242890579237291943632073998822401966669773677034914381256996458691018315774608778529903494006088637316631203526865350773317772259324105888937584981676778957443968485821502395943227308037606817239845567625898011652888188878169432251081694567512420803568205553865050830132750489136787864830474111195667096546557392046101754302728889875259605157603094705853207722079732844957906369040285918288545648727147456340724826557828440595329721337867913754088146118255863421351656566464845646955768694876991873343828374910924795261328796990074403033123287969944010834754504429722230876565188464007399838850654170388507233072137777413001644579889935578346865739653536496947159632423720865911704946294909121509478109883686437475382049804344569051305264872433851734050385260103552456241608486292369111262963065349099934655838632332839779728962599031143963011437825078872780415315298471848507463304625560796858524008171873358708509211769013556869538140721928000216826493627040689480467968350154223767231376446016812700553259403480338746351515169339128634515335730521980555071260437862562706275681807701892144690289299256482244247481168186533040071978702574457568322500809620925103822553769018027499516297922313078414283160093341396041337392463879096571009037199248695624992174726395262609127065737549786711844239782115985967287957275601181016942254422515202376516254474180134368977399778473148002465679841566674640343308498620937411819833048065007659756797063312826300373016858032645789176958630937254259916636302721955882223478934170211519211954760545294456852969995842033959854460593173603370316303822572314357810526568393416059818376666605086891531928821268285072396117932431435334768674500717017370745546587881989119424506344632257439217560544488874433882885595862728315454992734729639032059471097401588880875565515801064092093166004457630648986634022877612468445355956108461244361959354172081468316585030757057931630929153752885665435091625621699019500010151915739489537123546189607499722924226122831948987462859297822874624205814844737434331583614266395852047370160777118898385172804201232959331185580089660614014882158984242065372288912194014289242009243571952987002080190998380213724359185367772082929791288513185004604624352434279466518872529045960038195563922078686129008157412104142344201997688802058713097601258958287731975567173190140134397553808427544552383180514820740142302376673551833590462607402587899128404105817432808111680649475453327576932741337290736547801514783340531162630287996192121163083535429961322800490846913369485488995957560339555763943666956650422829545518563871148542270511354785980006461771974446758996404375094103712400452845774599432500938987312350079165215493310155495203602952257948813043677250921137768018869423058565586411642112285746642071467221281507036309076635261629172517256593166703360717843420169470183980059589385344579146669037045474920918758889101582617569617534270765220471551258642507069795504107607583142291665619678773610471384872302291424430720516882939940464232904888007932195480675337272954340834094256672211547803575445495643542430052845669251879493027213311879685280644598348750693434645950223529293186495717555602408154630636977166823362494020687322314393769603269556900634793986490310495996743330622107840996269958268487892517586913751147337587935726123332431477477064706641528915163094671053073842308436903031504576404213854085878399589851569259999940595705854101356500750962340772098635471912857769851695883458979822778666885306000501554996259826541226495966694482451092344204872381409743041837004771664053313765593932249828029685088942856597382943130564854102339710011682463831353196237331590582978255739120302340661591511365225460823183353531406836008018325577313795776290295471684232275014224953626956800692890651912332550990151807029127930296588681248290639026389819075814904907285572201927377152035573008015947508494035529745863767322442174768580874746290187257881051792534085674154232282924298842525401302774998351149750591791322211125958181109026901361980993073871757193288855946150185324238217378242938311715211400989581726272356574733832663299984957667692239818141498616646961637525997778678862352522728120604232143897520509776282631650267444988380462489390003576353987454738973306787036899411329005886988836011634065496186325036269584894967445033246161637850917510806095002748961998279499505532186922013859771537372872459371662139836514740642499677998093368150910035783966856855297101568123254397245564492260484819902581204032106660100374650930922744207905800448780471031113778878822802981032194991567853786743606644610463675458209659723538953584701267585895276148001532959042078291677554092782738961359555655793536136561693238029438014901655665672096109564256773435202483163545423647666961119309440213698500427012133840559171132469987505875475701505970692430416198759122000763136703983751785745180098707158690329134619765911229115150599111102879376308285442081521685882866701482011627606541306672336817040690722381620899350440575449360658361665389827086485837726027122005472055032143313814526560970778785713049800940164374532682370805009052288193473006119586586742293708772761266509490552904312336789541792723161076812136097661317641335614437256657735500332656488157217242290432942755222398684300760357680937115710218054015296359218953995124670229019596261766632118033178699590851457844974171066604862124293255859996969978869797617796140008132509519273903973665861415123288924713104653516810428835831189784197015006105835328056219819739054296906296932855733754896046529136187516695125674998999994743423502706225515739416721494989055165893304700912918100068233985257053560946239192359714899156032170920237871512250414289466819653357027260357010717413923325898891045178606256023594044089630390090458523968855367176018402884402277978471885799194012940388518898396190091359419196660404610407895943172035196750166795949634619313887502054344532587518072633662115910421732857882853504501303319560343427398840304508583185387721502001225787411404509089056141737652822114806557392585624635685569911047173560761099545504490592336806656249436452892909119693550022838029941547564189870814034536287059804875728841501535545658387410309268992342666591924514402147164729081545864911570915785248173219037538814905581228428907564919830892397577290177857593625837346192102927438080537724100973019784886518567866040865941576228101394976297783134371063315487221351221667892032753641507302562649758800115627243267921285118698960598201873712135978129699810101097673926427664802033262439661397551778318529002778811216452628159576879884250334792560816238229465949848669650812102507976936957672122456073393310970796131437586807881393106787484187700293190548039631972180246892818386818512849898397609392589797856010814534945365017548729876071529124926736273380835263965211316489243087392894756129836450081238240548247111253971290702954099891064897220858123186219161335042474701932032403787474955247843870892719293450292215940684569178193832626392906605062924916931323461297907019281374394518277538742885190418125124876188671027299320098298767757699062995331261898353683886911167677308915812850452371166713542147925904959864341802607119840840765562285634280005526857502625196726635240274121861227070401440644632103934537474435477508658391993196472323093657272409732751903971280576073342206623140909425255007337634042702127195185063429857686162769509330807207555583951531747285499300400543594954012224005883366839494002742955915717815780097184530658710806855489888516780266395265514927614544054844499662247690472318035144733394632153009149761951899346868591991055539020160205933330729100274177623245667114371847482510919306833625355326056532759760594503218101702638415025562230658120938869344841366318323686150464247998404556359482646208735557047310599860056761950918183485076784334482515981319041497943249418340155048284514394822214668147836557632685607990469611217512649644089273301238156254614857436118409870510004164983722783898137520744478851533714987353744770632122602712542684601292903014427187921215925536612994145868773278340394794403114042079548108341788110772469171207988482686683187567729823683331747001128643460031725166406120452527174677043633101116982204028335724510454599588544219244736928034812165485846505921633976184155376936063593548011586427526812332353675659281248547399468730153999108562107515921443844757420233854208328991369846511151854332153997919329821544447408601426220251812517382201411227017598196090294826967759980053527143657233147608419003890258645181691247065300408224813940241519010292122342864036625810187436101328287805115679927208497664691102369700565689989222659437863809538789725138744900875449101140697884429939909850998387193905734395492857715632673526329052932996132597774932776157682413363197761011809716980790020447867906537539618712582803238992200038124705218419042281485384976374845777554703210844335199737468967951686405345745985654833138070750854983242128029010968744429594298059833194834655601786551761984268112851515917213725411669365417384791672581401546065210921009934609575323208143396986554171323369361410819427011938983864505170115503900989554776191418000604892496204921001460481306447867724199193665000862520013649279954763618871992964764979549690899461507613810470663057076769779188578461479298695134972364144841955241904454405492824106473317137935346511103066104094048660725689240473170913488948160935296979866159289420439412850101531891881646350611496178965170770397610501416969544747541935134133603825619581153001785290579086813622496829258196905681013431337906594052941410251253458742098516501249841689477011424147891350357611524515599154179871049310933192398565881330597340234875802823769663467550820079268719049504185224387994329696396636641682282626406965756560020523261902448486815624360431428488808470144919540335295674768909934516839901999311950344484166266625973368565309930691818115689689592601741891396783723061119197901923779515652178007405752359400648122999001312777545040807138793003975305953175004652439309378008617879079405250551549666828141065138466681218348671595765798125533921098642534973116137619056417639037243295726052859399561508472233783215731413254804745025672865565780865175505830583668154674763982159798002787524727307013197629365290942849654570190101947508070626054179998308230960465021920444443802123213057640082447848419008169676483282865259210729236127655240223321625867499853297150760008683037455248743356299157499656587451473014800891431239689949190779273296429261324333509683020899634230547551762772558804126500264083627835163810118875470419645188735298767281682262838567032996143537044514630754167730271153197524019688739455552920149168109042712251996321793637535232869057982187884372703352282356568376783821207301482087595247528809927578556129440806695948827712451982366880670845278766013138433617178243547948687523255104561786573590779209666169918957140580423605556712609365669465001178413700938940729258523877945348878088860322551346700450186402563799784922241540427741211117779618780949053095313460539241504449414401567889900774995056668660938867085122123351018455011674464905052240365333760549287817211697284002403488712894158694334022875903172382504747604453576527524477059501146240817706116724790514231139984559415813723456483489234390053815299068738653283106538473367980465111156178377909343016672392956926617003691286076222071320310485362002137072075579933197544078424354317872918380947032318826856288275856859588554279786757033471119250704198427596386253641234992352479176516674624174170612267961131176389691711005212666059233501534023702975333796072442894098962695056402903237079093477522596609435826178344880440585468999741999432829212555297913451545009667007735715768203916136438452390054707623545747312574896769255115078252421256809518160206005222057775820717402833268018133191428841581211748259010694668873473106160778546893840417207596713541881871787977603372955073944555033418589008897274991272475589528560104843401662843549071126671381911882600328995433625382381321661498577210946603716761391373026412710703384364381578729267964585445567687137421745877318367415201816296190976788374600685313947716764971807265806346538876708108138975802679742691231746245658188953406752844903855172349198746025346500360676979313945722790256810318116230418027237964274381223603895112817316435992979414078959059313092361992535651814552044175409179225360042116710428297496995055049487327131545096658451179069217817922276580820248577621039291635359678515400866742128230084870706792827851196790084345821291304152648671744956819831910999515191877762616526674805743958760846765806832241923096933899564385755549383544281633931572338367189205090698029562324932765377488265640723747274831999141540929085257579369822367534229271071087088280808245106536709958429541692896628351482390119068065312787741374982529623116719304562265341144358152865498752477880359249260201612126498705534450533858601650577414571867553655133300207455019405918602467026188844007820202192671175158976170102455863014701514849774271067800860452152390204807271058251884657927361736837442587517754483873015854603081823407549217290885814628640331094306752066662838721255072528728349393638309460663017508704726419703486409819325335620227807102212864007227726198824726367290651056343811375168210203881433511056728742645695461382437319066497256998286940909401063644571637383247784350886256357951519137219737865539138390145459128794989067483391466413154161131474918528694206320982042199026092547008050238881032319998706768545105427032611982572821020857231550568091804634911187392996457447506379773489192451539102097685798666553161327766852806231145017934884067098077865314455862572514779683639149245982276189155078283539596568137285695895929610090702320906215735127283274997615055314326261653024664429258903266634726941044588851088291704683530983149097497354414756741984935928907189993946176664447463963081477116619971359495970417218424870835958144360726857772796325020268029604420340013387734729447124298906014474033564872009569676641160078822715759492010040960035221452608044552628913240063419992044446707818857513047638175233951221490898118560299441684757439945915249048327396385094869614225941190098635301984689799369387637961811214733722760778965089850163404689558372125419004791623589863617056166726048701504109384093954793767292608322752114104078692323743900667782034697646508869996929577728579063971698467805999453525881523656127328563025490508333713696526736386488953465918306338761377186441436337461260727793147564164029318658082012744852674462492984525458450108235889066382459539002934871993365632287851141454299284212118288343214898922275479612886118887765475099928404286870690938658043746428713047072673116608909279560839721316341284672943592415062023770037916933338116039231835178701092142602639632642469286444792467285077464800627346834577613479438405517258701212695739655063908805621116296456684785079983968842012991424355608635489917571131947179910303624920854631442502356115300049519664219272617920959542530038087776034942081215190061614643444723065636502304331445443475616011942959028892573517126086032741446647615427530851939035969991723922520962310355011276344921617954140388406616506625998452768080269724834799754302554406912625050699980143188416385352189326066888338604566605806902612251230234242660937876322349627950988615283603520980801837373846440707953941822333532131409285677508070247961653651763955548363990306669012178211753909730573531659534417013763324903973081208388296907183067213316660437028152413777576749949475515613517712578899624473686999201617833352764005692458290008578031765651561163779805606966980699102594860242754141968033091007355203790446638041309002457299479023403963957519755510091690163384950103198468174427306740849047477596312092889390605416295631044478385908874914750456747529481574406948070299052553998921216500904868150363711124995345220897377754783672865787683467332218191862331262394407538815317779093197782993546146334284629910873557640416835882785707034749377930556557700989884464063232800400752244914323838141367438230630922070746978805770433533368446536523054976710257741458428730226433422636890649021609894484452078970281888012789515303938766177190640992218030809956556779562521910442354225095149451475026611807441721891746882667556187052414789587799257405467973435626920356330471078796732941854393543479237879898996286297496474993103044601026541535534496420434512778899559134999689340022564185013401990917208878187189878992220808443926616976919024907767031949153327547689420805515680326751060910011119403029010073102604901309122681283266858702134512975385349742263880682970658819015352982514587070867890967063703135031121771784786438479751420701191394519311212103083727946405260140368347601057336716312424228988023794969521902139560107261024184369331580652515245773406922537497025741507615724498511461714277320320718720973149683808157403915585941150980285078567279900612844618923849173735069054950129871348094527062814388163523521416385090019717375348932166982070742103585606590885945832684055596287828806621780446489602353402497836606946046578176143973040420988302331467658520765135833398696738749490851196608267645931618408583982758322075712335603730499878958359608727072932207312765125283139738284447640608067817278250333946490473245070584935308055980732727717780947951879600076581744372005573352603529875704080643610132119088244719884872486625930056384777489026712999863684239703908825036460832254814605810341395925264622951740438505061065889920384690996330856298496347970939232239946516474147413663519851770930241888881827485098981588317289463735426181035213946255360565935859634706406740544635534460022531456435084842383490856838726707617883827415413353311870686375499951622928453592957364067268612580913838711373786139187764486460108700521078647438696132744774247789964314574368540848001275116007309286386705164070565875253033470936717919759975484370156232242956494337298980590318522100919094950867215728314910176756447502495979013360695637242917736781363628353820810930516105249926305877388649432789945494831960049539721219010014622432089403384287047704231408689283534760459537167231588937273471055741285586764587704963041293227065736495895597330435703361176226272600233166802158330477358644889589616433923281828266100166084635531753974398850615329813392331569893715060432972733326214618666978149154122378744941436457637746283490050631148352895683474221151037220297898776005368435388253098266995437536471230216852965778591709969874804661482910439897462744437371943406952062918712230872098755476494971860637972770906215191563170206322347838457893820985153386852319282782985000857868634907565337322297724229202197970338738244808919222348029554223483685763331506633366656710808359509346733969713547407279979148828089586833484293122761493797926099368905521955934524175078690550782057223003941461694004327167582868707770525068003568448517704975716454582632131840000570025152171960616416583251284729909177712377197302192734569702998838158937763159771882997713857098378375164002799936759600028188293773144917810893515061713935653058743813544017445262330576827104657837002208307976973358487845885997394900797109733056158778411655326010314810674178868547505048204113925891774488745228036282171702765326399846887393976956506214882223785198945047005583481040111135178707788235816197085121680550120167424497218241784667651673590768557320313986560753070505125744454349183897776084043320169245754479468736980105501011213261293231680504847661219142453635363142552239082156984712059596228339268104304374237258958421122978236854580709811871288403802506950141283642445179318646328295173785442617579761268914108752855718473517165934041834370673245780342583786421367874248593447332988522619709920049071295689985557900358739290271775079820083869839234807956666081272202965365836146326123937235643599179485248488625998486710379314376694974742389303640156187230113872975790193687919741335449419188174219481630758158669786721622660714286665589480564757359690512338067355077732226849477542232687323943249909763547347947284954982121207516185649627447016513905520970388454141075198917630101767417107516626188411886124702809096596387785868111822763420101549803142714501996945488622932964465004340439639899991945453280445632496663434329113619388075818312303785895271608474381502005648190764754694865295974834200083374823212427996461613811378266956804996689102074834882562227264637540960212521658015198103410914982619002793879950438112064864999575593923417836042559461926348709971754589802186003648494898391943493171217240008121802357315057679957295349509853298631478418878802570051290241739562646931197624205933281848144363314080786432897195105964748748175980759579863937937533660011473024098044486076673485765598599257928322228199515855290929998429817206432783778298164147237736702294487378933333914605260405255300877572707025130848152814530866973553256039526446349736064644694595851657035458068644700642273965075947664995351891842756531643270865765549466236952287596282883547927399398999877101243810430704630477622554175374663680919680061236241403356120816136328810752932100801901058251348454646698369041393926766879279040107059967492355626330126433011644065699664934149529874162797811333919399013582402393866127500641011963737995970886289542826596112206247478321708177201819131115789881872739016487618062022395230903322024948179475613186425698890995279868245263623634555155779083783991811533428914572432436942871282488336497979149364838275652915741370242781402394295792627337630587527934016002015706287215650729472512997877268051394926266413850696792511877016697179733360505501842226950529085089622483296427357797388030068368216061684862024961962810463696374528784138181523698286301256789417320751393634012319344474968911296553041464885907090551491638357237484739272461991764540917817662235753204663842781108586142676088044602483386826289227246785017461328066521723308542973603248037582140227755141016043520323234770643485952977636924004153859903657507517731793928316217693089844656276928110787696119420124687595707613512343433896495876929504696766271511033735652601810094029149900111264980145347193031407079660959706180086499035669911523783499756879827134037468316730341727575845912096701605658950345591927390964298016512191227478293466372035143277024389964019954610369333245391957569493993205154074800353522871862540259373702689332207103764693031098885062772417517787492238323027612510896539400797803423050450655249605887909835332904737598531477051707527178916996095784495136866902356350847795819998474679094571666314510176126477819445036497062557531753996447235041926745708569048917312871810458176732522404162366594245016156962651936051204612162698019925630886847239547716214458552786384931999503221319054910316579662246916745930817150443787654851008009868857874542216422375481475432696661992018466003670851250255969752548688140133291417602373507235245034003300592270490309142059169133893267610775968425529742531516924463131804973593709912903219387001093461706236685878887362667310525704672195924269077749502027299152179000547186896092924223596067022419578185704993512468294013609565428207985901382231056028568258527052903096238854082115502151397621242331314599018931360433732775765416137501848067745868904395748458180224233402881737915085014254744263938486699224728689626748029066992332304211829991783590397790561539978258780783736602120306659315125165251796280145449517140390392190359192910419883778205542299312683492285488350524398330924358956249444452968536042706934624782994345824081581543407931251750854860830491442377282613491785596531890475405418303507046836498653421629166751628863602079662679663061206889321780549908280871779123824095780278201772958006928051061739083236926574089714551339757426160695862039958159810745514333223238236367193692155663949716325872801400316721651644402591466628141617963286590835209393021043368859322942670269858873353269927723488973403264428382356895088096347102934191109896197729951751346575176586360334254513428993061528504828694601370518088571455262028297241509857063388619833204625428198611391886359698838189226851144467762888106096698893788935342151895445801517425482703269190407003624873592512714867594288182569533103252914667502468317686519439326636530793052153605049163234438887493617143168600147150003982980676752491831958930214162555410818756219812530419143754419104378837962005598851955970096217856560092326635212734571371042764043082470083090666895177980707065744397989645248312820688117981539350167262867542692928662201921163762850527085275645330547616080255010488102481775102906630091130888512913955583047831047160621142412741283914352755872627175518261304491652357334191783042805721179596810886543898227577771513915756902871552851160135953959642971746164556797117490536435575301631517350436639989539368396080263154621706874391791848373203516032741047241871936907637013931539371931267638304997569700411073560471014608129691940053406919935330958585917257655917318897677254638011657229322592888104850987012822171015269795222991686278406628617619072342534492144623542240106829929802974918548492457525467718360199222020782061745926690996751975794415975490970714379810343717735958585322215382047169258283618881159354553943495898670371141370972501443684360631992037425235168648208693386502081804236995874970687898638092881900824706950656875071211141504551562625115964518381866345899646082227602374491110739235789500630027218986851345774748958324859856781356753003313932755192468437917094936640563433014182288522006717462160764288118673527634169517467101671243293295481998765186735400885287811904448035585388615260039933005324607535912094398999345911443922497488187836400159443111385550714115498353267947971021068604468956182589667786549492373597884335752129508513911999968495981386592623320733115850788216415403808756817409854576531760390881549423500959328166015138024291328010982340487742874784991668064035416462032386916691221986439856660339188792713024745343012506375627340823394076685100664911460499468551654963274714611238199316773310029997399276166562325560962681927906081476064828652504909981664938584572757683125230337813574557086900449807028569571653683891887723818450872234368234535542381445917755034740246006388092865202715380430300138775729573890566083961315462154787005950984183488970133084352355437094033175428960659397897625817965551931979124225559766524140277930783496148729187500361192691603779724552154393606853711533509578770545900465948724821072348355258694054368514692346802191263622954992478065142692810985911809364063869921761507488756125046735938149942404404066130163079288536459149075130092118361567790329924446986621879736367680812872176387217892078075823573110685140309662171475747599561284358937069348163455056678484667604950163640995601554411833836542557494939254912973246097639860460390131178591227653056266066719868961267187675410166360768394026407376059887433944824741714218668573264037428050314032268850682695208512524838949466142887552821347592114767131235403387619057009993320965136084477841769420127294660952989333238991662840164090455082224576820110727861314876870832017577963786305796936844653689791226177768028906684031930321972297346004800515513027485889635240464440550204679998911645042578824131866848353513034573338059590922794216240228357653737930124839770500780306329242831122773351582063248448800951354036190741037562982688639788696378619262968288236362205022337943341869371914147676414339337629424119104673902809147140012785179950882742041912467393538856607310191696416278298610800662633559267516394501000412316797040554086902046600708670682100410167486421544131670255254707761916405191438485028579045115751751090157274823658271816925625769767430761243805324022960719882604042176372585916769588951132507603818137260436335819419848262000379677243196654182698156942221581767116791979360640141808050387984924223205183557893153300448577997683240026760797974751036571909443710165590435749862185960936917152858136610967604101514418270723377255317333878670540148491120097742106050515523268603248706024953030059853553468223225877477174313052092886401576854614292885537589100249522590649866087600480324726957789768096917400417261736827830856791012148585875653423561479237461455481411431276073842897191064219780964263978686440168183191586583666862461230466226756146920838210688946255900800502683927118928783721428108365989416713364006432633585538812596418336278685435053536996701273740319090001925358924013106125147488806547467920550284989719923117644860909199453072251118902815751921808965170128169157563809856716079177463170380643857664886266631903619188644391740818604544488819716026502089354554894247764943515262137308241762821042870529096401970662572704061398719348427668775175271693752311936322284668018359700422263937409085853440866725205486098726379036239883860838285142147835700039254761772879286435645957354739442226342551085377455807543817872340923649994899215724142679162557721030805966356870569001446776260851057790645609591402186532864053688083189823070987093234805983664675755434584998384312024645975830698955105713353606982575089476602512481523648383728152822812189748564719920320483689439983302791594606824823655207121421385269910738916545750419340404124962734169418447388143267050617258883381059410654969901118090563686120477838885537764439045624397254827006395256805610321472690791276868458151182206104273738830081867620589231788171009175453103707613770871038875983760862357311806161627124783317925493221335759296273165891622552172028051608898352323038192545974237491773184708138710582465324246390950436985706039548699796878478220961762356126461541859001899302611030535540118215829581487292647979604610419123323812446872169183168845543719189537394010137442192290139578119064607311799305486437717092505403764605076489231948459235769890137442896553259518003958448405023303302100266113046441178544737402434840154454692358134088254434264000107953698312560066283951183935139874236881727948483947447326069659255321524670167917840689582120707429984272315357934541631495836238218957302486324283681201446860659662907173141837986756432034498170775882511152593694470235376694768928140142336671583239547057191497733069462981890418322735061553504746221860558021344691621866092167480157254753028073186687983614760761405879308312965621035540677622385650950354587426717299116879957417728413545251171168955801265501379521643095497490156598110320671824475120558365765892478992425462524093273166310546187679132971283911019818148911448441663457889704243445302750561022110267013189367155066622816808415414763826937035771169982395603692936726232768631562132972901451614065143323684426862762487409120860854985033397844246728999111549336387722976228334392976924667685962649618184512755073346737257818615077633153172263769763084631168606460717000109783503846869472504491618104879163951979201978393858311682726255468096153576743582359653088169688065911226393662308508953611302943046639149455033869067721203733206098929607834082155369077421865713646286977251800447855528980801617797014005671000605875578478210647897276558009187185744375995145811277577719726367085294115111805092660472396479596021987335780694276684845685617856431951156529297824543876308649181364553443419448550826244098192053218993011251630830395810424677791525913448705582277397794972580401834129316981175207515510198337828925517242058603122081121329965746808964142318815782870805472897015500593095002986166874753980927802881195302317502431019825178379876917204429777240194401974653943032114968391723896468335033095495473409023635955697839512003444167576668639278576590031618206621898481134628342378235281883712250999229253144474928430154266318148729507139940868697533737688197819760339812939195869288099506316853779081420152186544861906612237818496640044904681834082015166772546909114400757286573710369362824438855546394634289338540232292789703353537387645437657581918371542937939340546434808732304135786944608868481400888609734957832023367153057669820743854119945211387986681579364582224845560569051866583415532679474687968909649874383357241036464002266462731309024861424782198778549278304660334237292480588842600144886524611466969905395733689727858622077469336346629208361424481067678161745546777901679571441311392564422193037493661208162354808467428222928386723585486420262777295603510729184210405561436229173218721552202438848402199219935011301771507825105288987572863094808849417217410551586042471067527768584467347347794486901660050206819909406468329977821472779511198535365991019880657257932401909658528110329442174424697774702911077272033334473711013279448436575378967922804136796954966400400810846505960591483545245550982010550657020828859325779561097994296693672352601264820828195184294234049094377240756895889048771361438315290018442831442960532066241416114535228588001716169245759006941665260394598760139411146065451337646554336267455869886465528393438984728313094226886718999551087285267083107209187556821984531225715762664646694487845438625776762458352641865222239187630263515308406237102111906790914399709308770472123683750749646011979726473685620158561717687678925485722864529412958883928923500558678594377432406387648535726399605642177350234548980899832127871497232916472080520277404980750238167974279492822337325651437509689824272968383131966520121003916705745509171964987366207763248062452151242540511104793714661955387258682960770025129191084807247746895105696841769133364816750737607073935235495784973040545337704200226871006406952113202787236238225620088341587187699556425540366744481719690686119396169370079015448476289643204250456337894645795320132112389478366082961459982443389279792985863257518220763309911590419490528691962391466295564969116415078376671192884453922664537732137193605766724813028058662778039008731942973318010582971168814079549021136788423793041418903658249020306019007291542807012573504346440078964204119010859451798653755276808897924042563437719016977516150250574488548770554402618043791406373870749947888638538222943096937420025412183944407486852887877569120287953178765363090020947130250622075633436881096859880873170967926545032810707726501958115009709837124416361706471296147702764497933998187645133498056257074199251257738074150047356191509926624178489476700464066722929483467499037227058330931209575832431135478951664425937079766235228958196353528682840757096887256897110104280823321605495169517099768141358107875190292650893699788149169829181833080805078981609450931740060843728447856456368795975066784411664422463364328341278843154722314750942050361560266780013356742366513719487981068362580655502672935850241362675928051493452082846431324499280755308170041068310384194794653929341558923435001002981019159149130633556271835874605433112563778363564159253472893411159700966880666604130511215463514932298900294758587891941242399868109393448684223472915934386863607977646808351223381931717633289534389513677342601115591266398725908951149474183877486812247178440494607953354441013812086605722711707179152162745258785279480105973795281798024199935026358010564822558798611095156631714476552329143298032202015184097381028004910918258883350854361180799934427875312491518272946807244065879718022938189221945067844134612245401915580348354176266945612955786707754805306786987567948718740159110201495138596018375461785050289275797680674433574889369891881116674070072168861257500339646830308281845094033610119554235984420240906221051775400874241958010424793463397512765152224834079758516216854416765123573932329457946830140641893813684618041698182483026797238699068513474565460629257548016879700470239387731293644463129694053629602606035092597442299647406063652556970789103437984426417000110271964925597700303264343952879910065673489677869694884212504135719131895482020223562692097642719297864279608834978899271221933308744315408771385920587136200475559460953469220390012110678144071185996906590278603144405865027884884370172593188340405891814984040692659761134674894614008281761326731485113560128109818824594770235907009307163973450100622825771088981780019979063849614705241079588918406200047695101238409330611888726526263421167970507378502667872027951717501266535347365780852548398340216797446303652829813250272588997912792454893526948943406807087198920462426385468178326609182078473267820030345548899877081443794072296831922852478828553252076681226396440706349484126159312967227018131825830646898420406251170128947272824081949604093135642575018490200874385404740763875320759418442948806697738268331410727331730389179500001871242234946644463467871121109826543399355462466464117049996088643438762531677412758462658597526476406991060124123110674282153813959858367766039381200268423539463470183486547928835007356260767385390806266173904978832433539748651838434071207427155785503369742982252358566734540195044710934504763459807894503736295451769730806219127844435406814128897317799108736074881398277268641243486123031875898945498950212554514160731547633947788391083766539896081281084166891320897008304599247201207870104907258015630981634439568734222232836436923263169641758946106666234804094622436616323322566319404190107622249864181124322262215223821143991943060362948694205693923348575569472481211264790843148682083967048145207484628081179885335857341276067334733769136621894735829885541033168786971358717632651780945863303320417906019276910499376495611236931180793419594834118286334482875597334563270032015891599998641306512650111336699867590061110526759206581896486943040052665159842546815398869386298242444731696216785131156127678474619551305184082691860670314886566718748612945953593985730353172073279908400479738072342072812943251941713513137270084472839305696638160524393623773451359238774074946426728235027153926632407579570630521999937082405142047218629106304656293556350327181821003922269660715991220843720040827093589360742261740692153683768672721120403000665811266420450498126411710331531406445901049878986077633998223211130572792713087052707996973404489054765403074926485728866173862572776871720799913469371919304739955788372312347005878269819293716374611879600310400344923087722467591628629101777526221510445732897044989865704334813082725640354574686056548240243840323403468615336469229349628140635088776499592996015141805559699709469589839206727501308315730333062200517205038753592547394170969796575392410893699436559891565052391512236301021116827638905978283358955118228734009852829088027997574959178804011231883128366944060035603085773215135691427356134346959762376239638110492168782866899419538839719680406900027311512285876688081485287488626380094474256891993591394884546444429780606850400259262972817265977502540021263449370588167085027265767145321223706395012734516631637812218600352570208803249233722528927546138867734483873307116351518837399275546983884844804261586252987609855724089302340728104500199718647726590914665666594942795359540256205105569116074766731325472049622610125013347388734704410277520781574510966406236928282128681188512019236609476801096784339200116198936738472378961493841302313863116733287833371589484518426420805585458702812133252915440893454254203474894027498059518218340161760538554964514055377713600071566972259355113089106965296034391280543629622213442693685148946091594868946933255310842612694367257476394931255900655547825153282992909537953564681558366352873672284792072884037103826409307798592855578631380907142115219207824411486478673402956345801156268487889845371351044624639289378660622865427800177481247620704759321927850246747997740041937911551939230894453175502126228395863954781110029555550154876494635903565205300554311016551496324067241241041772912144444654883907700883103306985191559158539895623742064809660009286279105068933802367209104150096852298609021898085447438424287187028950286292729044633627939458668492845512138235395050695392748192588230499094709638082448749049336912779392374182546864856234699957238440524210594898698958378853313584932819816690981803799870720540989207869484248368135922190706215934451841162683503156730624464643769555889895330639529464229174628904148165052501595894094472969366843502233420863618937531825738038048051625053050412800134554229017926647215693785296482443119998128529023978887712417283890024027922882358038554604959299689789017526758072855179482422588793647598731915845909581164859912524564801689318401595439661242716836484288355112850513134300551556260004268577553976842510686023791873664154948064881293689912525197614347567589473802860567576540374521516208326104011548248497567944010778075660397132183906246204129308290682295392202745070742888785858201661520274725890898760655304976693587215178501720670711309597070985296412963360218555338715049782249940553324848342122355132171577911732937547050168673235136318942272853926701793798828886799507891979126591261074852890323160363659493649134503501232175310722208776723153588523751037433860838988736838526100227225766380281310511946953270211304495102435784799405813391938695222192842507834694198581649175560305726934961709407231428810012421111844904893495993362852447068139649666806666184938477224727448311105077082767069134420818757280099043212055344702589235874190024312532980774889150975966608281257283329935958790343178688716340123262891907880175503376510374075051768502692898496602382771886988351567591365913322058581762827459409529002604876602930181587734667693368870171394800295869311358407350102550372957997605443483040262173822348841475613951059912872645651127360357177874669546682735604794425243186273161645625424223407404778346464700849749812417543992211977884788015562301103151323280910474720731232813103977709851894628153461046872853178543854057807174016311125769473678262879250197200753933911373728185444778514793312416890717074181458843155028169361471613933671314882121809872445723235418285723602500915974795454497926525848600209199842258513605232935224414438515674678762908935280756133982663791266994344405130826649642650963817683792425946077171777284098941754602546077402780984054685584638301811822165104951132477810793118425954601106208110164298269829864313342407000689668442923617273193963999951821579931652116702664895393800906259617097967441084443154417352770511768544424873646472680938710868107495048086705175170363819114095043460371414162981177302266933347342917477912154296669271295430784651495935449444817149031492079504982105440092383326860590024867073248957248847843416911167769707508293158320456083759221949199617527315170827910780705680758702828169999211724446274768933988850874950413141770634725772688824156413761727858361805002305669506207994954501564938512449388113196777068957056254513102320411900402005119186595816762269276719792641070779632600878001230181692822853302928850647038711118410232896786261340751680068898536535261051726695955818486024389354392702803961815149540832996271950377502123117517143150125154291689378772099018046311937286121851213188651131971873656757286698887480114044779159485578094266513556739101253299009103128858519267038457466960028014765196295688612560071422452560660433825689199037712122490273911841470913832169655226422302758624299672306758802161012829872814591139084972483071661627390096239634834876730141761107390878005960561444000611244904759498600039282310517004631395467345778157875364960731271058298615580044367681327642372379689146426539160906461063354119083946571583191259458160055405480941418792371603408084351835540497711927673244697413139367622502071060396178745718483063336154462880293955770885968932141298760199976762265019615722722873669926403920409888646615614075857141749876735449467494315560571361078092290846265158764266448039872257627871650539306912467752452349541628960790205782277919978229934446134407883027121351424180697169867839628804079040357502010612170781625149946599784845096276732650092417690524105793682973651944064435881656315953133425434936291201698817098100745944509408358537387473757162425950271957491185572959948471964293480055772007424427671762351402533137264855575735408789090082363397795352375219291796228998491883818684089643078108803434663676822458948866085276247233072443882402320183056649114218686698621279422330629836011985339249918479049192201996256278551381643773952823954155771952603901927231713991426960955338364060387878693125551359335550538842797789534845180143435474302404909367775776967679448225821143347339139537585866544814372342905547578912815087324181543613209596066028346442760481757158684264373452265755091997653051148630571885837072482462725316429090936852345938601747498258491704290178380380927313129624718656009538577881923974891999081941216158825218219267242609191760801855386301198314150959107736933690818809116185958807107386386981124788708661100908731567047979158367779291947986875600067675025395536972788863000958567613834919965322567148835967786101232135620119814823566707675078755368219314335946397745013660025167161371253563469169312494434240637620906062354715812880442559430091323966210843787630027018802272386430124249737082030523828528004276518929187089316530501117909808988007683626621575195234489370110592630650474605641374799923796027126048628287145382173171777728584454520908225874389546465331266359346392677023446227146145029737568591326132476222571667006827871719617480955638373756697722790214778284478314405043324311659527778761108517886107122383106183759601626729655612672176290303321150972309699384140999905535342690006985209734288813849037128112533297678459788449312875687436589441636047255487744105088731986044098562412156001283333060194547030150107908285466140522600006048201593577251488445025763577757253159229009613194803182065854908849781181725221034914454278550506478236252873189456678826607553744237996094860291535516950168059164096058596765131673287877002057085376902569166982034694693208576695965803678011023175540235665172660949251625257501130433321065504328460098499746237537251646322262803821714260113961784999042262874049253887865509505963020251367348484465879480240705128101372338347919941539004011092777634585234993282348497274797594383198146923739305331737316445400175812390277041980929444698887760415449676117208440373748007756859522241433602999545650691316902839833198718615529539908343438690367577495368247871382309591270823120474263357668961402315458051198217334945838756706082772001837061167347054958608717737043633217616666287884091574051015493488080927357445824543733839796765105420312764549242578356691697302742146771327864618221606083259079261444553363597874076905856021346420776085634368494482208449127066065246162680510965995660065012552086092387518067370053388128152434889060676555009163797346885128451563385320161381447239410424211068252671049480397822820559576766545750896608508568108547177789672938497464218463503960743263776771354198150463173161677794038847315689991333256255111068623873770339248086229732871485701179575579096758855858337180011774451899526165418273765139064200051469347187071533512701063279858050647127152152486940420767779664841280400142597177814317960940805188464455471679922533564521275356273211194394151912605151986498447478631844522386477019029316637865002492504810420002942276264804571444295101129386222804707727816899900955446249081903796527191207695557189465393070483930819405890701759200592468013277918027510166110614866408306763887800234132595045587725619015542271291564541995819174480285196755825698438761026137574734224301511718840681205025596576929853313509033940565718093878373298069164615015815594907212491761126502161918094488206592229662972131320049249874979780402985824869288643337993817890070521610301484998081074240751157432754228835871253280032978443005591676202681408636397857925752379859278560927419821185197281547917595577119755026165215323416731258715098365365263151135091032720542901969695100637960962491273924757177933960865788218434284603199917785405135892440518116981091499088598256172320339913249304864438177029018469726320419316910994955861239099776448277650877145007575852685968236225642637457021734613938209063082080458329416768877039970931866833525824060310363234476254852295283708212069502459875292444307480857560804371823454048544534013605328952618320680794313011011024445425121319866405121960562624070393691902813610262872004349463887592442572250966992315731301210493231362933574032454352663067749400840100587064664374539674572080962628654738414647005360978086025257000554000939405228850711809202517293502960892595807467504796969359329562028436210699706987293644717646672516097066513310150089487626657136259071384070166287803925530684126454690409065752689555603604123272890501223902582626526726247104381150651585736797689386381556550815622098516996702861120380507331697614838121517994113151279277640764099385606018360558149835804952062470943031859903043662691012608234777609230368671472137322365664988618430209100766127591849738823851921401982565594905087958256249880227893666850329617993692468505146928292785346042783956436949781232986531845794817510541630585727643488293848724036514503062064417755609632686828374595851868783912199912229856081348459760886202709367890145343680114721052866989278833234694590693438509289711185647967953332174395711068802467366575064698124903695979993828009104102274144926086196308300247685739920253902073985150162034881477746627290515449080010927248555424640813302030490659947360808734668341370716706130523630309379980725193501498201562735424419334030986478017133171273326457485768121844887088108063860242613854197210485380028110398791928781169873588503701085191893071287441615892499878137188853792219047187614580214938423678180139619821860892083747363421034325030936154107945628612334324933990296617381125369101332398706287156977660394555101618367110093928202547700775897598145203540446314442276508330566363084165408610923948153525799108407805172563125099408175933514007643798781248538096478463236953151161267261337857269206675153165566837993063890596894909591714866418815857404027453840676590752922746378280826759225241355911442642312565151320912448246475418957550167117615502822008530551622587925832582038926835784001269254884661654452800661234286749800939374727882621818718922360735618046413226461850700073062150865413463793352014074177801008729313792410244992195779147887123726461816966659714354447684792676034339636364536742556543963853976099669516864542698250319976109454828670902100833624408329858571523333748219684725447488133453288039051778093923429089102005332991237997863900927197360373284754249967726803695499452214301680873997129841018487108846813575645714577492252734471242813252897355562122812424320720053675743456734206536556408561177027780563182900781163957604422935281075759018794615653584325601846523918450302903223849028856299926276465792519464411145554956956579190856975478534157445736449675650308304424780047076072322750537871958624692199666775076983158595510196281423738665259937474403061406910834388466056488176955141516615690321183941697946853197618815652721149967724858083113061976123822837659754633414119019509137730641056796933761480690922639960514324155961517884199172843114898814068306303814633267650343664374438115471662218406429637785924558781229834403891132640306291325004205936146956885507506819482322228123938918701713752334422921934274424061888942766900404129260950272489021876707170337175930058744670043850144165444376506611257258111873269377746362945604193164943747704855225725063734442555659275334958536612931774661720727303207690046702354274037137645103514499539903143939403643819919639815883796723100806900527731735194956246048225078455325469352952131161217950995904563132838028065744420514530167453293253088994514625248670613940547491529529468234362408093798358365719726825573940759397192372738553127602530229361726481731751063036985458400084054397143442754792811338150698775604675305910726264576787134395113817745242685904198455034148100252803673808116302858690403108369194837082560089667233460164350893066321454622581140583195764743767633401383927713591878022678854566922393324823965783846992965568524347460026254943069431640556622683151182287615933271989568520436017624907862839439961928833708753074342579251192843347658705260964891647490347236730473224690333881074838978693783624610653878275251151085401565312495870457371328504412582981493157512370801688188747498326629917180190608379584259623357402473832985798765786107663991682518647222431160431167681395415392635017654519675311116173752609522644901255385265056871263352807606725382036549259851078121903152266448310775344566962611892452013431424567433498200317531509507737491749482411806608187641169613533967497609259240683455552494251446644693643490635330392399448025405243774813411914929833540959948764377400977081078889927481885295460544975502954457099262324817183891990027686153340756740508185918775509161848356224078271936981749312033335904914302878592191431797153452160348965458848893598140074285168883337855236115136284517078695967713055631503659481844640523890332938979733844515014324233214128234321048960890099472160534724933874760589249282874449786975076179604400409617882904446709044475253058407476443022376283631291795994957111470982028855660672857885785103122148529656544864214119793407760050721462639729093232648555791943643197543417776828891255817451160398100013386882379351234423721572975104894633550511632453404278686497822487020875852757453687616971469832349400270190022660059782468249680402898410414948957040795875924170114437467506327900504709801571915175841873795326357024796558273611569779440002342185446830877873675689523768106832778442192596852406780042252356957301832614484073062337233869706593245356103880613607182368240859494448518292928797486698486808519639761978739916130065989592047121577698463560685955913490525397362007702185736972775447435777474577352099350195752804322998863165996132881452601434093534055645552445151189745183789103258124557720433530133731871842941243999273797712242837386062808798272172821228369454366207962570801418346562097199625520623930452042959599116923588850648218753960954499602417891834284817377811457787765068659753314910086433216497512205724266035213141267862350366167122982604334958657336242832998582385031629561742949922431537375145564378111375799296355737527026972749169100712293595507575604932871257662949778681897446281836164294528296096453651728170182144482301422868746302149942888536892489058291510148133113246740088925878121725139105180173178760006674986940581821600058669443663400562499533506946601671398460968442922100381792194644585769425765792911036632720915413764311610345505173674806507252614927823705878140401837231526325828680304800393651173495657608613403956995401931948633912481637064204441391577105132255973936689961026475159104947740570097055028279857716207032624162714248232836766412077481482642247128818382190461093642540399174282568216881846294095790099293716046471634782506185973944706359400679017230292510061097292668382690230704203565691783528386459258701390912251638009769444934935179667564679032005025475370770754409557584655873022346229071004239293866687182854172325575336932856849509382170196648061181437678096112324698995914830860331032113606300473678231851710185719828738930293548866763016842642443889723887854304126983960779063275118458087861167447269681258208734053017451568037264756673231143873909397228531057478090875471956733905707556174020329436274704825819840638038504861779449840096214275491640285328961257228100985302881519182735124036798382395199713273061226197521669466764152690358518954290818968957454631631028874642324131907709914051544345563058059959957194925373122025754045846754067192183059675320853528009536294779918826595509712719833791943890024585893885023914877551249166824193595638972025371925632513563088812212543482149778143428563090855898631079042543145879386903185453009616247671425187847088230170798242717291365284688207256550471346061396973839716286066719604874668966836293825579360239335642248005452603995742671186797936505411180727621989712078866088086783005765706388912173510431904768433688104794672152489245174212168290797112922636331706408218075172996180240733772127852771295854527999527044404529493477357219001360124037961889969603272132018809054776045878009008961528961979971724269883182605693157794164032762618316202525662887712077921878089540594902836226950420907493078758824432455211609649474724690758900870625490577190375054523258580008624521568888475181278717702294652729582630416236417687596203357477243601500302119816090745714176759413363107473722532870693119903311685689064566481089984548985291202137232744168296916907503573776314720195314415849947245452577140789829163340877695074631593188446849027729168251452997628219400216699416112196057128305291849366715372593559992020170639145241161252777077168613503413629347172221406496521376582425019615076105973098397409725448545046161051026392693231586601433065849781160576842351794329773494341745778622696384084795414673297423917049435031216100901040582682549606792293604310932318126090153107803299110677746452450195402313664111705269263880880565761604441983684566660455236913367339642972717830427740940809157327530545655860022269282669264335604045750956728611146197179035549000384836990795817694787056777342879721232697506247156050184590316337041229795878644433224539980214215844037396875923913999577838669481557622042670445970310541558420082063176506239193374817028690140578501453736141276924268206515557956952098373614939114571122589558609501309908905074193709907692845073648923138324567175553399648940521166199000427970239006177821328276478182750722832516588804855163563442111589275591461278068026773910257187391875940597041657829852149073530285682719923825651439881495872092702567151657805950973266741203486416910607880110165254248400111208206134656071356266652575017697528251215067396574674571002922148685284692768480051542759474131037900423918475393026774373025821912613728749320003936378841466113077734999461970341577459969532358925476442510390115583903490376512939219623871192202579153701305981781996054170195202831481247443063340201706371794331106816958808172004162767917367791385972513572679373609817782174640625249004368283277159316005239684683019119549069206601122417666258793901411006413884068937114169386924717492410207243914740460414396024842613149559183659920771788635625601376077096986361138929817801125865690204953720155098732886962602816957152026310736949755442003297172075122420374594459065268114101949548648539742907861081573524858937049433478318099397490284622934322997933801543116326544931896911991188221856030706473835260693824282582997279759055875192127277791434043910509930556727903783024128700119389247447851393279645643824397416259627900329836047772978594981655123697709864341515760328384510950096609234595232673439500276693437352764928278582219654150959217608444439479026510307065871087873150771396850749551806910863784792422085727345176737441137292177631246799148728219215601976051779845352022542738669941098722475507314905335385680987597548698075429058543033415404021474804448724978715894220352152390999055485050979529579331464137909354108035170806039446849665814297354107272955208336172571980589938625944547707856211738668760804193315869998533455725732214360242814320642044034266251948785771472499562713204893651647468249994490054261979358432386693467515685122048000926301605715803653054524913669222714131074025626002551774418489289222592057623622144078254339003886592541854519776154950164499878323107630444888700619040986758630000893473708342885804280126180428055397467202293112558993315648478402618143655324601893852563301268418232903690750863346490088183553736425972860813615628099973233108497184266101438045394639501142520861874935964810276550087711436154194108324882075288649027473807931038960186739946042645941682474555254918526319589010388858537661542352073403943284272419706074213347446771482834110743140744705940086970249653705799244626329365135243288898566105970971932632436444809666217227427129834167285910508771796659569154726599490350989105309235230896739428007749096624822703573744953119644995253563952555840175689418137859282335907745580317810425618790250917692561824593460526405421633352706580180763338714949496451664240805379836890337769686826117132440454918561154416929029403775212884951471208272403362452372445494246976908938716842093424083563501952205827954835628518700910560196840498043901068262978276498589847633337960006738167484170846524436373886156647228249481169316929577568084848617013887320680900233777782933356746276238214785142140333936201927819145485428500356200665226857824031907548953562588774220766264943284383271135600990189231687922668729959230725015137947868481313443981572189879022092323428333923722987529901323574310680154755099429168641126624180033109124926707671787488996109799357712000348964826401074347768918090939789075266029738229487933609402731092347823011877662896086951753551621731547555993643856793888308183620622988018676249636716795919709400319212917353109271141120707331019059582868562094466357568988819411877490350642557122525034563119565831763965599025911474254074623760743314142633736600472805994109600290184953217615772117080065715939287184739626219081121582426087791978015824401721167997898193217974500234674023969819181285952907861095669724306977639217859914946607340478444540965230113098608739811121558789104561228002049831856110831646036960928735743259895450501832636063611090796349520964772563802200622796921846025252185423960873553630231156926509040335231598402687303155347675449067800900317333064181934522756425475523992597476005691614190395599791029229153846377085833891167843633112526106961932128685748495174694817462348718089174960940973458005765169399961765371366875217577300138310633972895407397265600765741346060953339984761238886322760062089979267287700739039770938250381389589582175417424507930142996776123202436910016191745020967747157777884429466148228683192001997811112609861552570779125549883547346104234743815113456081327401094032039466144924581556739810434645414999904704800091015835760915442739053984849213947060714971848856917811670902035805429864000634927081464617628325694306208930604827940288626328471070024602705500227841709768555098986512472508204858894521629130206371149387991055427924149673774419567371432198277612179228550466087757947593291365405792021780901909909233751796217900302828520410772199275716816448672009461696640423188879603572128125499037648012687444508292121469176625605560973697970030301392875908373188978243681920375236863920467191349631657662695117421499019270424252484776760871538800905211329645023390480905719265544658889113482516703847888349857974430388372999006256341065876991297548710315611742100019127683738827958615904493717360381429309166567383711604993662140015746822536986888848984247715473147578007549414717572779116051622515869260972061823248981270051103704646293221063628154366134630612534482158654418983284193358110702806134985551792274575302250785090919888866573206528003276002793293847570148653590116852915898010558990740198606662135608678660936437169337040620813205926870803125454400154414674853923649421070315166358518947536233026999564265184892888800973515173297092615542229911177443087453570121215573464992918790394729947174628423893592120724130900931090514843639368476760085846738308865691174353177721496960747651197433236079399868903643160141920100513163254371581680548054106974164008801383701820537341941491732533209001985169366258385736849674437198793697318588337578704896209307482002305074071931253797480032056524572019626554054604662789051736117969904090602971456938722228543350606931272425181548182775787946867741795820987488538855583879594117713952294309960283714577722113987590869609304505097815276186505763534718223903685678567659436158665578833675183154416762528516103530184748478738297118475596817682023207644063562183869595519188803567538098268101020479937832625659571560721814724452485246671988332287303786356720640750641616323432809752107453945844577732326873592943407901547006914648859465354223845896861340124978909194061281409924232255743405989886889429846256605543942584244504611052228832252854357720975274532544292908468695366058827964244655828158533465890363347714107054852021790924830535381668074525938656876728326213341429692210734512197086419018846448177304081162385759777215087279163175080191345497844194273761831914155078908843634354075888510765364753486084869679781761176595180688391683594266901011549019326919897737015408017637615802617853081598123213705194768413493116148241752145230410949227980491827906086644979080894456329646114379814563189776205317527866795746374506426813161816168864416305619368927724758094708757475134194291982728223073047877928014114879751455623463370908820843015686288460783338338230582378414022513088765653530171598890011133262875478435173710298717215547109317886508244849106971947115156300045807721075773265563401759771011520086544811065237238806703441831351812359581582027171885999340403865713449367017839825214697239259753674649345917675696534010697906254395919879951459649228333426014942183186178317588839428026549146764798054774681587498232291782369315432242881018651028008017731733571972037203739528151170256803154714180656000034609357736403365397157630288921691779848201875550929218525249840051461234507976349198102383678204380277858268770628092391281446987398304088872279526471643852721112925128729853333168417181607810649677112100341777113951486042131109261076412634843429829951412398345607461393046911323255447140089962446145133792125830681896148797977763172808324006361619665193134941241357539036147411932312808884576800958433527409520166128043207524579965444882814445479083452421827668191076045636779229780379454627881149149933103183895733483021110469700710553816837205269614116468517200617345754308178894346292474701921297213811654809977020121749573092167953602920324593460762028757299771264054279354501548848977764077143136069035711869942243683183850985806494464206773252645574691125591692687147302671659066706000231113044742553805187210124839437622921904201753918555031537219169057859296863782920657465022702473673364686661811291114331737830692488629973496118939866393508513334309544122169581338832073057968767624906478999878878437945815172651717120464045964756663902971429343771388638908730846186661807187871044377285503610958929097795160243160304169674441922505491937047665515937659320958302099188402562437152124548526557925157913743553142896477948385875043422134520577353970276924383679209509802946818032013192988071193411861526837451287123574317689894409519758141096232651241743119405965761095041977761905916102477832864189750221091030814986067318747360542817100239558510728389301327330218961496080459168614183243979743348777034057113991388492789709622796918884889769715171363828223357543057939651308142092468348331642902051317712995211588218224542217707963305545667994893789808814542531262244701262723070700879517251441749867034578003933357276372947266968050512893044279571518540220619166202911491224470781129022358127394892827933443440902041172829976186100600421726588626675517639931168906792347912155863818396065766325732657399956694311525642533927945221906996653879762001183745269184642520538231446976982864621304552248679064942042802542571524757792593063734252518685176299012413370588134555400321864603563280819470524004429378573773399808227059939684857363812737388377798351542837563761860274013896586308827055459074640231747947731778125502169662636794392398151486918943611737191947514289606801838376859848920099195874884761746095679856952597463938903781029582869777109437743948400438009911633110518178102678913381736609756605714708282268755499090335674343401616541987607601720166654830998634918222393834644409015183805234044986262829059111009481315217862005093842474924767276934933056931469968206626689785363289019618870296328748890189975690010596221218099356776031632101671947724286305636791785028993478705724274556237353933268027418480859053826199922036450181445341266573219730020395072787486055894134907063000352396600821423592191435475993357419153358843841421259930177708230364709451283536757733296202086364839926436564140793649607367827779020376655415488088763220783090070094451470768399008478625674348930990869571077194259896208371341857343424817872089330037175854611860217605336713323250741299992019384111505371421483503943260695862375892308447701125011216746175262586875100221946327944578249825242849939563711754149882228613416233295436913946602245826758759302618322558431527038359257067748529036196678401619063299954013975922187691515193041940207067018954483493291085896562485751331310592406788209709141015490003863389415065827416782697935186785810034468570727345862034892176647577984832858245065372231822064058357284784276421060814997967982086699755590829176966163943202169126007783111019663790487551068138822958646591174169825301330355456144980091825719637524132637247196811299887140676941572213533341498195147259283634709430083539167796989299508307091384629788043704065971602220325086761511067519805489195426735495237556492266486982084646758777935454813709484076903431907014869154186184227316798200808137153238954756569970300504829071094832216505733024552678712189639308692277980925828078987974675467035941796343262602926511362573331736463067578441848217318995096222514408867351624802436755853253969217866581573023914149060650484028209704597027662289262430665505104096829803891337788492987301190274735427562904735039958914510993609825128342921516772267045967849966532400104103043643922743441563967437078233222210614487583486768507197024464791134411618530756217813675650667230651048274811909803895691248864174977526134514279118925631777412931729835764812388200152490377566994657627940343383394680510080047845961196422788945148610236535805958207696822087159437009973463108407175914721204428963903747149606312849786643255097109389402241687674419451153465047394061223949006540275469399906491313465793969929645386820857482508490321098577481828323502508611129432760698659933666992285220139222156102193210945879918952024503347603015085400230392739377970599964628431238987346240565113294617536303460209497383336798175752323031332192839082716439444016627428908705276121501452479550293546461897422663981788895178375883004750606506951370870503286948402660148522443688425622824419774576785282015558800004146782710985668462356112264047237001418419979467544326000798761413239295118914802116654125637904342184375265044360168801936849917331696696053724651654831716219689093514097331901326955134643015199261006380808737716098133460351862770442358425095861032964197541363870504264065272320882137658781705816333428040344048924278237934928320547591317484526886967067836279883635135029017760435058378316241403919340492076545890567576405940824721983758347115310245081195415771326865945935373667707139207214764205776137009356172224132292426075519298859643935722918686125616478415409514476575131270068037383288348105277230371200163889088964099997305032429881574868164448906722134989762864863639070536004657896846114690539131396430018399079295380071640068257963653848164605216861740093386499796277831803184988166611030051925879446277664089159025636210883655860624909984565614085417998237407595542295298922048259230774913489531761556485954240097429646334594485417068948582662041523031376372658148151137310893012376405682134813242560717089482235507663228823406328961130562690717025694814787311836119553076100795175428548728791010485255101669879101149505614624232976664395967487811935412448377777611104684635112027535209902710581193344678136499273568328352416542025486229694996189350912438446285861211982775915034520837302401888953011093144285985092034575804018716136392986917101876939634850594689128086579376994672270726899969134136214450400723076993693129014884821576786926833168713841180137031627942932517370731532970180745270692515029619941322034491417386485669743158369890030083542534962570103890771631193465475101661982688100463500856401868601873472782365021776032208774463323537845984666633787197010700853146953737524137113457071789134247822452139794168882713608436136479741835780218711496937854190003234643543312472158927697738320063733355990631846988708966982024944124350314832826116725785597110636476574533523462288544700847069033251855430340741570708273835254305200008975913830974957573868795835795760871257320970054750238566890340145122261804545948927034365947276292787906897680246330928649241050384171288152778769044113898918246616069298249852295853324621798625108842433727785989917763668482225678755576501719970702246444103526298157403275391910304774518257062843051544541390702614425081094602053546472122707380060449691552595571105154252022527753687950687143386082847012310437851183286471264406310179118100790962937860936325496787747653597040912041765204919343142583755600135091731361242207229784109622032214014080272659193752037926942853911502298080613253206871370063836932754140040757371523615234613014792307222211115428522357391050547228535821641220353226598195921431783992522820084969978149412884490102005484897454513996529857256437060278882343506268756488230231520625471138012366672277933854140137825793584756955865468696439052525025787586000242844641467182502994277571143379521175138372079902191319600288632217277943382354970979799524740525965205047039797685037158461660233892670622086203511187259188023203658705188512400948556634004962225365174504524762738661168891339944802580200188190805558952940200607742376715485618021179027692152914924566351704977603267027793327911749105798293239340679618940963781894044515482353144364953106914713070977957566537553011268995338138514314967582066558656157251877570984530684239635614891136229447756862559118449618933379628949491335316486870464386569382305053956155912041148696823846324129369968407640253826593449037143685624685272356995629211081322046043939565254918879485554546843905723639578311676570928368317583988380302257021240868548980368160961845745137831970736642006336862605641769470533176815939972043364769788526642681416454203767829668486764096783283105473312379691713871687437120016978281070045092831533620352237905736382378807755692849233588017392600916360515275775402254498349210513109742823004166407050806598634273559993472040973540438822045428481854096277179715482676014884372730264688128833212681821999139929851005091537375320487120863504349456785553288706631281448019481947806892704538117964551047600813164918688812093149780316958284240860887493943263387547378211438747155205061818663374800129543727535777266182639307579364588228168859379173977549901130985505992278120983888906918147746063459005256122693822628927711760234067096277258407998990517711494593015107727260813700780356635079838687813942278945450265018105709293060572029211691506135323574407850605645673164386822718973290333459214903796114249840244308346678069229564247444985819945393762602894806765590558508187327737076506629562537561082303120004635616063256649567540164534342442009624473332152328363755696392872283616317257874232813081394290764119932748630192752734329851049520252452138989084966763155781870406475795409768404624334874991990907250450456673474682606199524390680921896425648473524832384166871766785438102791772065890336513436054390753579978985607994160621945340506407957506902713498511245734375180918935525530221920778128835688242484104159042822531602762407979829432101652879678123429881244435976556445084592212873313730860990017129134485051197504962737157443845601811806733487739647344142287640077564902340784095505783108231933209498863322745080483429538405449121124484403872211566303016108702852628843324612467084252923519560112812861939572987375960200600506214843042318484060373626118664634076371607813359665495540444651533307777467944162224120574386909040909437967937096703842644478140737226798996245295825727441552704402411200444635223079015042941955575616208175193759949814787425077208077982373246963013891729799725988795273811919600799900695698640441863333328804982373747576581985642728478283628683255467331302863839252326291316314064350413322839653034084236939036394763669610747999075393413504486183203587973777781779805212202496968777101123519763477584756306782974648165807446583675694010033777966416452747643672160980025502860460302418292890534711778248708590133730801442788601131371772051303435482200497270390729634820947984762262297635267495947622501948159592072052192588087567909857197137088286341103019604690732880672388580521105474301459862230739805575927627062275617744216427473816688433842241747421177635727204595315864493344777714879080109515897554837899892554140596689643209285266929970737970857195335465832871958791865278045100993651530784453127044254626247624987252008749025516888614262920025815689710297047416737808920635225976083523204729910050111893542637919268629728167313453062518039264238253664034878499259561537940392064481381656424286073311109608432613799961830577912889729845129262943060270044897265750957826162246486927516663932555506552911199343369531548865306245258419934304268484266816377291732992618291760122332137248725774602610079794559259498314213209411915331937065452376247168045175478230627085748819515039297522182655132444694494161844930209401158584944067146925201094625508931391173947923320462925928154062567684956368021018950422518660420323894111236353469358372194384282813484031309830543644875526285974146348984715556801024225896086170534562683127872734735971680264069400472030583453709681507034586567783188880098257571623634345788591687030981841519195779667838011464323887463128447208098311968704289619713319641581469616333304745799137482526283543992117730006562833766566989942754433662777620587019295390018752231388354996018024967482591021267086812001272370730180232698767817306751799665970638563573292255893322441613455514322455032574353227840335274462445856908090161169048877795179191443282202589536070887718885980218293596849758278682432834056518625953007294953891477585222463363717113428760282209590601993133964216789770083251398925894815356442784342841756049747574784609060767267026637236092009436173308128078962834548507754454942782105975461483072789234919343375182645612112607175318305484353317581991760900594879925796263393663296777020535729825421131141829546763530339009075989401385345243124700664966672680272575379142251394761590503124912092309103398414099740136257788295401715971886973786888881516595218137724208099258174847854118878348074438356493570288422809789229980740052583256995722275953767967345901811834270303072034697126132048172150821299745344630569311775319167087415678708660089138674693253267384886716723905828034477487759860126253661898825665223194008734099810558585285442830179588999906081175823220718002169632433131105181804750765033245516383186604039180660764484830213912518920455284822412764210817111067376229174805807256384430748257030006633514762045782247868226645207812925438086972825915808748539974256924226703842319747123226842112022732298982044856263628527662860958699819997057586959253950391681401610886700790160202973199858205483977097316832053096261696656303652842400391905856091134357291886542632498960853429930381709432310833408170539705023402992871419695808775383047757947531054751134464990974135140195703170223220912033346247507468234287721933906763701039466509599829010510875739640816143209095019115070988298216714762706819025938435883415855105612297087436224461610868800170207842890901845045838953820050296048383962458647023194859182560509391981325523661560082410351419181934661609217076767703419760753480474648604608603457106661412761742303572796048853429390550504502235565834726056709644812753492561975695603330116930481152444956091810682837519780995642394909335168852755147872333943605478908130618882424179264615311868516031503526089070019032124679717103236021696182500822920252523964201730882414744193943777413688565748983329324051499479433350873956473886913086788626655212996501301006453973316191288119199954854406724551103554345744636636173812760533897507968004969733712607227890344105381162812067691776082924401190184669359512663565572119129654925864141060854398773805961237140208099720486026070380218519329018531761370270410529639232756474526110554354706499978697162211811814803375018144303229127626872455849332252309441790491352325524458686357103351213777263557727496017286117737929245851009936771042964385907147362001279376801293614120440038427587148352851902215797659343381700071776736690544488387690800879516499941340473700060370040181177324654533948461095096701453575636062990431297120350582323033367507890446079762973347593010505883734479344452872579345168354287069079742207433467822675065466690897065384484020745211905238923480677476715138966266435562601398602989473091540375007834597964895675391541351123545060017015915691701486658225417021553070739419016964260979254147099288546112406973149623374526806575972483439232974508653204328881665308043479810876601600563537377823786127480836192161239378968186337379555437979736311548696213630197044492936810766817438729344310147058521519340798201794257620881208043900861922589358916419251743826230664362645423454275032277797821407219447821393651498120458621252397526992385690291056777813080526506957407135341795618454604983487505111881265491890343851965368904055394832614064442640356634825806496363951120369891250996564550590484795144059953403833093985762720476950183842214046648205994621907647898687144521161053570514669096107516846756760768809382782115095501812557510172844510549916421840253815267717324686280839304557272904737632603791676947946246298534410946286538473851620074261586117516020747627125762766282722309968814875617526692182597956128999886022092528865773069020779541355442233647089718654643649114800956919925580541580612212291156674004143386166083210421582510189210400320703684320910731144134442786393677730065577839706005044512572884491595659490454201404395750701862281984079744944363350770400832418346592422246424718891507382684179683529105086267432212854051038728807757321713822996088531067473789006335819685069889684865734693955520962332741564038770425070551730574153695282038236585111730446753354394273593837499539539845364610597228421151674975790886602505832322752540802361383543501130761485621818388685658836119414509819594184026464690598772595934839185183932310360120297170441022855654095104030023807324021372782300832650491356388065672404920812589573206890495286192237011501270430100432935819526603182916780803115534759131765370180535775728352021030369702877864445016757773244606264886201696752664820380294261889851013812290734471538587120657580017544037795872541803320400764096859819977750235941200122518020100419228479166515829872204344751327969441762674976750735576263549828504855068554883815416698667529941519161451300778957365192986219882499269606734148059759383303592331599795015778247769763127254802852002868522228967278515228521323640108574247782086128247532918049397307437642890628071744178594916964471369052280142078744050955024786594032432525465052047821913380960529347199882686661488545220853808383448231460312295494172245222308794611597522497702306583072402699925734225756916028467190053999435878879398817736599389893372310726764412687601797320218305512563729507507207353816553524495477308606869486035907348241902610146329417378202192007861208105512654520007355247991660972944633345561203595035625432478169731718791478577866883646572143459060288138572112600877186169137633003184686199905623815363820412508048560882376035018999381784426670565895972042617888642096161486551295067357503903941555465004014902420278887734163591132044800781268453652075155095854055260440194173766702234304565306669731745027456056438216360852548753866963252817118727677399282691064688397248268546383303217279908910837190545890479327048702508912127026094700127160050979392811700013648671956448215001771353107895018661110669856038393036335568953148586864162981499958479837493696366994281772242509028194332877018096208312586950878974131754712065997825674234965673554589693627470299703449622732921630916037522459432882276173045867978635182502768976506015286375968614784345511044630888289182616948417724396650494390972056730831986525608364453986852727864464394094336991278734882211323709320437773002925713014772907846376437482779427307440713059107766643327643300053893310165744948895687872386423820176910322774814089117994145945991513209613164817876759688654342264881928312949398610902180213041981621269740616817721978433799614179613318937548781704205067296788546865134563667024214559461517333549221910548842284652320631963846973435091168336522236071295436732873074628895629839911082188900448120163334755548049863341977138666589669230813818006092535031611763615804190154096802954552989807418017802591850372358971354919640911385320012325286009826652349758042296451218227615118681676424520661025336061796156863893581311746267294091027973012741884746358590995347591008442302597718598027474968891290009748440102216333228676616818711841032302042820822585337356625925083247208725369236991014749084633981974029086332858571730791445364757445819591652161022959145565131694748497062566435319137668848461748316220458707527422374429659159308226379190339558289562108140305877572310037123516725481583366301955151326551427971381066700386350520105318358894087236590635832037747813502668924870488841440052992008370509957079770706193612542873425308103170413587653043228239073351976870052103002739446770541553873899030117781728794619816001224372401805384964495085468763853776776730846024583395769711310199685331827196611351235029625617464168189561216163454268469716477614672439106309716474170004164756995809178483956990069231285481096600531906046331704767344439315496178339135286293055371798113221183499676060211768531987278419518465254916383377212175345228057171398871697749705236572125984633496771509874720921834251805784337617337982217369348981973311927161826579499234889437624336324228923401270132056583674755053108324449093308604943033970691683761182012883827877794557779041690683646202366375693415069154934904458255050774008620382764784403884847782306571895927534808552781395178595852120872699984826195143353065180707083714390198304237355054235009071190801297066303211428460203261433555765401179026042487066235152813029677378690579203862511118579096916874616567495265541313667239040269025012197117226910572065336873476589044956256485795204250777091793309769450189326778998138509741912587224952325804737280611897363837707218724183121357361506670778053738354322105689703361966368190193750631443550415110153021609063648883282074958571812364591717336873740506949529817494327110126228101270458273646632619632408983672765300388991127649855518082632654712561086754202407239620667465267372193734846364178821387629883480107968841429488833183747772819041523372954318636265457388485652874729724480507584297787205028134239736367138808620408194819758820865568646473839891290057596821985238244101160323493933640926267865387921233711510617195813225461317492276579710232967725854655623095491323926927001860395764226244299916738217612455611664612428701705632837032123001012284078788132460422257400103849816117818589828221990399520210089715550236336168218301754700063181522732085815087232642217413035176869494384088588110479529383148515256067009940281428446132920096938384917990196881308403738505244398609100967832735709833900098196934149503404753669830809449192346098544119097099949518934472328820977051240331872378303046329888278916206349826111594081849627789730712291248129484254054778909231996145308501243977279924554548216078129768792289476236791827171465083999731203985538034120509524130861636479618429094560957701526473057220488686639339388505152381991187620624284769009454835896852510849226430135451008053371540134324951273067633604567865543679564077618997519820279649814479937143743432855605535152808798955771776169429115626054356194830039538792625972846627682667438296445731725133221092916859168210415745775169015652790195827854073160970863370334007317959803894236624024303810181064089824946571970547666220981425577643579002341884727977425418285469352406600822514600806099475795696864243528864912622639799719231173380362949803078243132778270409136787255370299912938886195516042127441157466938230189836733813751687827150852225620844035523779971782734825375606579055352998736970663874206966038952638790960022779183306787175952115206115525876878838790276951568768068974984579106612728572907470854249587272916272340668659689825000946143007204136798547837660708391223012675694573015302256385632097686183110702237267430969437955399475781306634001723853639720880699587209730362529083463716383213478577979854683867235506540196935752220192267050290989453748816643393965429415280774924527995904481620194209451820832177345558876575710338077805122242681889908280015158117675915408506723961710917095137180468558395204559397858889335471466203975045682397902915451191308724877497246164013198414171025995556266723863290328067000837522251002390466227887813170845854241933821737623380701383312334653305207683518281564441763792277223370344473331162238942172052173952772913900658367137877486184946153079998952692583598536243086827685220115113487401879341624066704373517334788102723910560334295873101578994268866404454151125733755127807450903797554986882511047945796564043550713807328055449240446792925191776087871904531923201100169289964342036787852297307991354270249904454805034997620290728636173584238373519435859683261862231055914968914439601527896675051265807972821115931641892798562213426701858455196293831058159127804352057813248287240854317521902691296865024966704870817780546951344123206324022425058468708817788581382124924936723415438003572594194522300260594560466508074709391658849485804421492993215912217397314526371538718415183788609616057136390328735509441767970495790171892017887899114886472454927642633641323094683479999311074542021991438462537059515738026221098042501252552111667949124167259692997808516315247051445969810210672974047679549915457995469504832609767587619721068294030012993899822511463910942593609683032152842257789866871053734052129396411041944456074493358439958602695431864559801949753108007958875393088048299291110220456697609139903930675709901800432457965855999622237069337746985480242553979749416456873749197281505639732420005987254963059464036174516806730705189910976135598215543416532044693886042860471226690715312736013777621589795760572932700253278627472954859486567761467952755664339588192809209864278904134719606390116269854388673757970119687471794403123359402418138468848971029160417320452464543799233875291360366886455133160974144065824407523721128970184231582657694371871637522251439656474907152005697485346089338187281349928317464530794249838133652766723132939401428928391022607398960116379159822974150564821971307395152616902472213315570573635313844409023610624318445362571360464601647017590246360628010157815743217641609468577222558451181322764352621466240162508631572156724962716568864529366937989069663878415171041403036913167122024722674180498212364249463746562073164989272717650337244259760861170274026362529510854284145308047686636124190965421075467312916650040442540243434002593988249678732490488285437187929855553349425295918268191369230843410495530451881906624525888824204625465454375448732884267755003139703017435530661923655581493494843250983018036453757857328253623343765548392704185678986700844175121431891527200030849727535325209862771878632581415044913394779724332746184452621369607870707868881918592410008719237784797910327747196969558176519962914608706274560172767029774811829571337631010666528498575621370667398096249650037608796889277477503487952484140100219786270597501212578872162051481488494473748464698453270408249801537673529651564318848168006375603121363092816128794565792933770685760071335086903783067712557115214237643258976410235367007075208571033167803583437226465855806941061320068442828614899169056187243071449411945948095225703847933534659732888688625400600324499857027602638664276840832954951114674633046049718162366967885641808946741484981008328545534573645274070668116975721086168072215031343063032041231118766766887379896829783310625884276358133698317561236018172919892270619641715044356758594786075348935041442770693003502603763876609713774791306493807777310792652239609615370543017280733100489252392100983033175172544555857187720993409837696842610705765044503866151765400713120089757370988537642850311990291102399309548332452679362493936829230104195022946403686173645453235353479796073935237294561873426111331814752931487551417919852023227445134281583953056027939295970841002752099736543731219460523773102052867800953840973033200106714454477242657854487033237347833847622733750284427393849098967004812407014674706790435503511566177923203077270519803336362254474301994619368867900008882606817145152168260551263738186439552019800758575812369987989203717102846899676203352152194125078284830724711922746712874437587283441718113487779915025448303187159618585960941190933214859158221445184540314603672666340396080238738986670279107873414558866096657161945907221970728017089806542784186988392227757274860156541234671538320335049738126814080341918018272030402596260293830519219039985415219107791792504567312243114244332679108533464305367739763121529395514458977942973175704997812733100697840557626870677377892245477207287929188079119148777580713451474641383371316008017038382110695395250197889941983861183078078598394513303804588373743448364781758016323993240032840803497287465644592437131237265396049266465752595870467866834253617714747699227903342956910433151331586289634500633826251191041591986870750889852954472399077072491437483620489095725703856369515672349764839817648843255835260435632081512456035767004067199016736335810553835073785669632908393685481903331135777601151090823161044331030965408031251223267886260366163319826450729385451005699089036095780749439770112514835224562624871854882085494981799276167485868415756437311932472965293343017477593909279416214051114162756452196296441622631672042857227169679403140864185523238465067719247461055668432698893602448570074881082040402656366313003149576663349792599890418089474374046320018491735084066330127832207283387696943230269056180422315254396558199654141644351399705540148104086370057705543954201463713361499878389869055800220379698241661711310988356541317532517306715259528264807784991954295029425464635259304432681007955059811946316356021408134001957947608742615517599829138495039484551074111080287085269698182353807924970145100190022161091317059051192000092878575702457010008159649823745204183356744012402599072315492694791725262049496644204418006429089487211008249415878442598701805034040261509187217755219918431055755129855401137312863544326919524811176040096182326749128188547531218688189943573394202623727824474117612012429187970312559780700649834781676483037720505024167981331634481171032334600851287132401734632430880177420961018144267110172338462514397717396154247856643958797654743933442960857252035659606867741120214285665686951996617289599899187902041983457898023863525843338369209569268529705892946829363396460147335946524725699280456106828265600426239857494457706333003500288952643612242435634730019542717306714168745914678512509540722111404901249759117969586023920795705387599554692422169405894966057745003102277909601027717619270270470556127492534996446934837190138341819517355705821830591600611508059055383036982773699895152352735459840984528964748369848736123503764493920272205268193551023869000742287740304937595101388318414819146851551915251334245102919154563946485382464671181295370690178733218626535653313996613062498396851460433347314896838131078427297570256740463105653009819900991929291506412928665784460192700326173925555351500792124852788894548169466422666617354528534902859095430282686415209420132014011067063568869999016598443129194940573151518852762599072469495137398824733049111550487254319220221301842465526619701857087722782056802720962262650652228164923825871020185765088799595392332240065188199302023696596250657361747373548400200587682888380356389482956694157194014799264945373945330322673120110816882168013467072930258927562731619913011841416889471442705243018234823334523645798213599318238697563494096325814278247295838922674210631009493688256900644460954619749674162592067131367832511561083829764395974072722025925727128751834098616900580664568998405405197114924413560923237109016284318338410297179379065743413680376249196143470926236883503486047706831603506354278521663278568837790100777465509125714510239231638084841008985168252857354501632012493998359956865601868281286511251499622217637043134931373888303721127876479635889452963024548417571616260447010470115128869148186217415365216170498745133824520221674219248930793366174515706888212030122124354197340573739373489008935877970842934392434060366693962843410291487240872176656324512411264865238658614961260844498990359861926794075078201725193771817697547874147710168225224195958386193338412589832123398884403335248073967351673648461459267926616847854975847241880714709992696956229371194717593267515673592826833661633957688803378854033631530779720440765670444837297296123429431154506043064763014210989363694169581084634346179572536911045356514480877828525383296298210448139608321759240190493378497262587061636950784382011200580285665364033774140936592980194685188373331314832576465095761323027446726541609181281029178138478608483525122389233551154662443629031798780776394036860696912698780721703749677988023554083349857346929885981553916070345845689641278842111676109137531483882358816106849540415434114008992182791622743142476780738077914821845248782969108668768854821276426874675496743724394436994476826451582530582274779847261799405434192646157977623527302105172552404784869609566094885842817053992401887461456962563164498008399853096268884460488643020454395155225815241435717838531859622346079403185627357332369620027558162236268300289153604679258440059771530313616525265658096072616874117816787915173417252736905245486678724850640827202448436334275384410907565536445392462944174171412497135994733070858335789060118619866451576389328008294534443075805294625710837731312912700337085689104760674082536776828406589327549087786411215788832537155494352751469978253439666441747762085443033935733238223874779674601575096255185097402160471817190927380626526482814004664991118653396928443529679753807492493627651887840823352584131264121477388109028977363005333938337218111198117777774027247724755984907800322560679329254614425215406294831535133292166292325968292163041021161426989046785741569048876499401334057612351706682487138654364748877191253589939689982747581367453212499268656245706944365974505374506709223122280286037393721155636901804055720521625354836497294968081421735172278802455036028158591452979012211448943805638767459393121982306419559190437516426240799805955352776989576151378982216913780560156351171355215367640542386593945817469841685110587516867580279201015357475421975970943259911723900530026125841634143201277005085177039781161110473765955739981196928251200691914912824213786720923958472111729590388430567876704509085142026398872646263404330867306301655792430827543141393423390657642877199362585045861819652758955369495053914661170647909350977667230084308140658480627570990467665328695336070925304831388956417998296491636707992113062698709450643034285047985314492624088965894658582211829020331703366021280399065323314549040061568385207482620538876660376342061127638778342269035898824613222622185037855943182893194044743253702899888747317035631886902223916273365575227667010559219403116842597609532696303096075652058308127860756565376201168702684330601826859394251215699822718782025558856635393836364160266045275249689960991992888039008368911533558817138072328959264312696948980156940317264697551135036264227997749403897872406624765774838188674634088333756691858082390745997368888150264887302096203061773094946527516075907009251890929757713609607900740213238864985756424427345734026718074170379493541857993979574063606363218266971288277590625404611004633780017063149299183499864122062036216127064023441003036443215663138779024953974617837274370505217667248339802314123973964004904956300533891075167677468961005458751432477156527302592270768394061996464353781845480133162415656084275889114303399308815348060736421321315668114405813340339471321176865744655182170875594389641187192114643199914455233743236709156732582588810283830701874004212453647092407097209688707403808243749310445101662579666894879618563890076980913488507579850105400902220030226632144683869054145572143838492871398846416546007741059893273705548392436830154095125361951761375587972037858594021109510920089084292684354308767398148748518223572020877005639659282182400198708501430875237046974545953625578541571316276793137773166778576825135821375336405155155638795350970622173085087882649127478987626221483505717817010585129931265346889533322869175294717049343693716511447444034374835781303494686540247051745906096826248671196596962028795922179005828338533428514263601265369948648198128546971374841023289850979841180246925470695765939914774765823701004002943174136008856666817650644547683101730741275964090181513729985281018833547784758050385391625285701583591513285660632573596126825991250630517533112541846997994368944124410248599243680396506374626426030154956892929552720127761806027082406484717468850165470236192842827562641292257608650876295619541671795360521933558904078038614187345618155993354138430315527930301716269044815091670116710482515576672850751422220559908228208138607877497858455728370107088633334574678257364107718316572179533166398594175151640670458416504765436985538784707990750817371283816836091054299076502939402589542759233929016074060597971685212339195986633100476632837660638484057900543555067844710379057473053429305633564563144554303527413873824870261482624798005428884777786879975503225100711754341152861861409918227031310860453282120188425761240050548393390378868613888856843584842740283029825307277689857769027330583186032882443454311473663487711487412843403690377725890645573788962643713466118945207090494565277474607017456373244202757850854665142494737519016019910555308783836071611511826624729077836302737326487638436792221375844274298301508615279035649130718520030537413967489223258827866120256965895067476178320878683017904975015660742369050668133949516816530145309051838944517106739778721813183954813875039361410042275683689962581736422824906630069418127464687901327791923268298986215395515918216248856005774241762225291291314318197756173529694186960142669780242233538275808870899098389210289077800266298154729841773452100168010316902949237602140262109703646898657434360685759593424282303498845373213042984798205493881875417574585448874065182652829303746320040332558998033010910161542895192743261933702248612766906552019034742497096558593376452137503953815451214807140241910659191208227508635493331980691064296915189780158672330522155524207022181762520517773528541624219074430350125919268944898978088822287993370181217990557228769619072398461086893668462071003956717344931402130789867344307192242059347095397696341514478447608391927968951713400813024224429797290547571830268328493489429769122600783724028312464504437187525433750607890552757096592919649715117712949314614194820201563913638526340315865945017470483882734656081767979218371815905590335016820344551180308851288873730218648178610847648075280222973594551863150744890852892663717527131128351102695564009918257696037667467424383410400853324886274583240378317314091294582181967405960811180587953494935195710321493799413784136319574540484175398492202708275478620016662531066419413766056625206104801992920476408260118569146120916029999602728026665500974871965308650237491833181916826791953986357971425858320212186150808355624651520448761415462842211784886835972256031016813579138285629275934425219947805190221943866248945907674326134662414492385488722200617601615923362118600867604518520428520529361019051093613737464895323638544077005188555051642678198790970003218235760369647918492895667932861608737248176718929327252152102601385264945812364925581299088446905950505526218320459826593839686625782346228578049093701418547468119343337888071653325763169634048431392939417341307723959388614491082202497012801345176324717294649140154800899165190905436354963249239651823837203801401024151843588947128741004768519615117187707413223845756521837174506742364824417541460236867865698356881950514492110863544105036616435491358281928608176237784258051032768606417168179390391596657881291261931667879661324890172781077760374754052243906678008652557309343058328969646082526740467588173828671085226220287479202878858909275694497780569201610786066505235181449163181615239897029024151889190409533971302257714308300329515858986613943889279756683167702253749843047866500592174899430406660070218715286773088376944094763351318629961599093532912186634230294142448977489585326979060259138544384930148087887265756464683271054451525717672936020843394841529412670208148744825971936892606264547059157063808072228421197170388064869796766128639856695807473295482481793382222176976417011235296007135128831332530030368453412826463400784482486564704863354160868381336910864504762363050321415230548326663155615094275807580837585746107608920254815568936719047523528802739229180436470963831949189257267468702116707078473756576159085551718155801452472080257920345205641369682985573942821744761416429319777014043078260415684657643204257471893575172201786586733772014253807161746453968375301592890967228104495283427602141912451160660426739615624495502134159083813487898140822121247911412809072934622768316554745392465661472437150637688544081267581510350402575505597952998930521899833563388258001447324915808749065786879176470025242139135556041367171183038540986685614912504477221164476308567597014340562601332184133695267521517935484856837576794120418519579231681386390212758032784695901888221910673111425990973940150514274003503416926023476711506331907033177894508544633991722111139226336145673713878032764731436635076759678784511435384287939079266597842700036188786858889624561717616315218917620774368118988767823258950016367528021951753432368366626838592919256929087633613242897551104382662887261253487066097783275312116606371587098877154134216446614330446275909708282536476294582205042475931248056654171197228101410551277109064928244629481171576368513081810149831909715696773877340441098675250205950232900080219244741521230273974872691565708521854044227949525056629035507256010871116933004186273105623013441248037811266959877046567926870685116993759649917973266742349551084649574226327237552657015952620369381369020187449016165030395291739269219966842567063452692677930758183044392602293856780203486633676580090916907910339470623005346911870335776867855111761910398803212026932174872305950771662169556446113466626727797977491007817796632109436310784621313518130165812058663630690967747055728751033948035255828355992543727346061634966982108890687726404976745506176315940499547563474349450013856256015267872885265048678064660844942332899828032543219214864767931666431400580942825839675043877277867890293566882294863724027584943826470185732007078889267390379270391127654148053645250691973353006605322043260426062019610227507638690999602856054613547516913506865869159587733518015960809272855254118941486217043667502576592791552310920919612230100129972893320416427727394294454397600047358862570764692562644722050748663775313981396339572753550655824786819466854976824439918192372035010730556331558427827793985509017951958768322996028468703945388489191102270727333681874935933297211498337047160886777310738447097642572728130265494630464765604827702868009026555563733698833935843498454929345084507446779440845016767202074870727044617385821038956810191030939727590442309055318892565029173323819619082394826780093068982383553440447586509567624396938468790960153161388983142649679279656013147369321392976131185901534562486085109243147516570968683839204133220559103074051711816426298218480235692080196793014023655927066522377935897111923712750761487024325813252811645345253193286877340044079988560811102840127138233628198754116408412826351493536653546495694103662866547290520229883707566780378197512645280086549061691116374509520538626186798621829377884231755098420551814334728321448115261813855307310152762109866559048555911853270922734632612583094302083206361814996177415227613763256965725830616207420923239123950885637794002400615420875774102862020226657269633290703350574592663764561959657109275548227247578644871295653004872973353211305416832138686121248243000576222115318354041910194186772521923002408046438881300648508328902442865655546738594124841379613311873870995987059455015505633828856788261693239828276033042202117439969005503355321278626467054591362746572984900007075548494717081353806482816190415966714730519653591218092222154735093786405085970470984552282987179913610997361030289626531851805408830404923063868648897559744052079574379859162826434408241748487798451900003651337798697046382372940628185845683739368522788104557820090855087801216243653061278738657944430334577030290985542749018039004887416149383758049444554653927188529088018007730590812500479674960802034701386480527828413615649260674393995341223513839470789055574963468706178297190864208939597069980319208532672217126082835553668424786717214743876015899002141383778371874182535368362645901242834004944511342834908717976145445716022525292582425830712759225384167640944110890197834269432060179365564628061442106793607333877770064480363920825496565147865051878259052291652335316592530070073785942263023479507092191167220535088093003568731587668766936222450104698385823057384904275281031591964420192875121346552604784206344098555205763830606554699257964211987532370041413991695163009612190047147432956095284922902294074283483252373134101699635521030109020649566174657748574756187541646101251514597246584565167805045572638582265643663305241058704682042036629809922574239002275091773157302796713949883709321392827283156524914015485097743531873081191630240729981984345426191222759298462215284383195873920919422048624902279933743339484223578825121429629951763799959109124008384115827891345661790667778443943880703339781070757512594234971088787596181656907414670669924544695562751520359748602808382618710865510699183545505357022403163793566140694514565774558843057511618877433755776505208316481852002572638207917939530275275926094163355738588268299193404580101940647718760184157966360843220113110565277191694590012244666314207399075712303586077524152200877407716056980288541090082841666931577963362613925548278479300517612577750375467422488514045317272354644680023740318274548240024619976376022152080349127393843352292388869735839265847129926863018759889459769241339920201452242482106495028509997425007222986367804473687026983010486793326406299130194486090243436616800679734537574034740044997098739899923324114365147416045767280146784040662366837218241247965159095344377625548439885351517819599813794321765783523405196515288634580866415690339960916338879550379988277682386310081388562735475640819101302384270184055560331626965764207936175769335592294891218977690992152602757111075375746611582955603100479866558495280501690747709361718874553727379165594503786848224718123746311112785052763673711080455548005897616174673894373387980791800586132970086450305862653218960425640465439993585911962095251657918906528521544589987075738029951317126160261168238187961000714181284777541552030315968747911026525329622333471934196982626226104822185111190638050613159615213766325212981244054025882790968228166991802043992346605082428554106405783594965196937209322856358698416512765530406021727117951336211053599625885674099891826733180876479915472779752973048562622473771827845941618822523546361181328400978862228475595555158038678788229706670166036517874096289318505022752033892448742378504166507271756048684169187033537257034545325085710383010294538065151082715157895624209808635681946995563398996264840295040211210052498811730051483791527081558063460906964600149915886522095099893028813996067037271842995481918109660332374390376839945842460642109778151817047700818989452113213652056870278373249687606714806803067079199437806460989643877725313905624775709025459604467644537166255538031825273447625509235495786963151118452872536223544270502992053102092086284056268675486215883733842296681624712439276758320399904312099100490258513921863725987926733672172506897096396974045217296792650879801311302770148087303395568970369969291530541729932887892440684682355440354585675331461790967088176007764416943712371534817843808596866923524762593979099445031911431583967290868965160444455464518675328530497242232056101250325060274091520057731731551377084076459534896347065367179543729158601496325926807024962314336325597815764034875462205072429479039439780730451457918362622964026991831804226935593489358118221261896960606539091518798354832564490375478384778274007940078232242690048840594200515845391214575342462158305796450978730935147042446883280659262911961572612479951623212930072446385842557157031426404745658361145706068714005733907728368978885258533018525350240926927538836911814384462686003959963219547308364242678114371038575684900817864035193255156829207651248650862625189410177677679563167918869300343916439376684087913675365462951875510410234175032554061255165955536969935932827522085445241632451018353656147985431261121637247805599281870564276620843725219982556640316596352833497134919703824098550560617484090461049663648632054772788135727899729060244357943712008654673646105905311813202006846161942686057300464874624670958443974545042100706452206897904125274301441174570229763626292595017836252911783343834286972187108571228910766563836723359463865592573868106165090660826256920424175842957110066304547981816231336910275636085171839159819497704302778582164891066413610648421147441810954976375310906592105457272149521690392998840686410510180230396493836171044012030721899197665356410059608982856065708186742480906014300323973926878806967374992315502766783510572828708983479243440987732775381983835533222416528050207951615295744199877310066850582074225899241623622041506611917708030545612733393533476301714360490394184351858209605026621696607496203814251159516901248664555203401557870632997494633373091267030925291333768732598001733325624240958134042178648405852402047071416661704236802518225044737607046648613102622094001072510710960432487244300095009092288170056047593271691513976553822074987740414380217768322087055930202951240053935344565328033012443496867115368136779490901804609494535391758607720506016451966266286424352642899629703441989212573898517858830859025931288663441334821196832416117437023951298595343328295398210187988310473686893661316210016111513015728203871496955941694323130428731691798600263972198888465264413176766288796907761673725889633979572786111691881035459839423035102594126999956251921160354379306242902767475458927439664367001582747502732299785192815122475542950548325481061362732605237718518622214964140242704838696994888035339865712409177094468802454052012392832557332333455796415631898147785180035515616280542747518851619094474868053014439982339636388669068027534618776023935912571936389288916696593163774009223536979918504752254320415082484456474627298761639847986997969801831679992575263525503718863859050073955131842771271811281591142234933517308208330827988425979567499344010446597464284764271920773441171825314258860882285280125764670059602542838369763022961590094153486086179884385711672950976923595263786118411481876751543142628827691891680584867544729551463166544900817645807047368387902480018185231705418123253483951466521573652748992218074043136326558289180857729774845167043524282160830864972116745454167717282176976071124707859700623038986391670045887474969780212637863008244897274550804883508971765279742005242971386378796254954957550316522771622195366739226932559577375413238937848439353128160835480780865675509323045913527290102623335533494743281282518561776593413103971644516718621129214885069752904007006742192201514915893212205128750782614699078873782720484948361586746173817539784691166542325545235337998821967433877408225813123557350921090651086370485152792626097362672609251049815472220977064227656468645961815474382930508341828373445771700776569565386736890949421615268336160617278969156593155351602671229457914317897934761897545772601802323626287268363936518768637152139090016176512279486415451220434581148402363708667730072459958481710489226920041416711013651210752765034304099644870248926440390932658844755088979976801272141368345674281637981557220438126124928745417297158077593966528615536468346202341029693618468537819910763858248047843517452740397487430628395217078707723185700884232650537048630232466045281433240751785987573388100424303872569262717955808802158420586860508157025840001571057873679676387314073531331571098281921355529024203750253555384553180018560570973686963611063232998815096507286236495321849055395561617707397950684960496955562518226779659505996843880269723553029372266030481324543316327357541044334424375556113500384090342679775283448441490930623551473717146733404592895623385542266669917641782477587785296491753877596759609363920074126517165725050756098319227851702499566524630548452698808947470324435356307383515146976689336340962557363323605490344139675425598783068718244526324471606976591318276718733851748119112480864966226014942671613518177639107681538604107265168905665198977853722567023030745814905726561465414705455184864702999574144567551696167220071422741176538729607264029416649970554531908474039997684269791576539788714138215509525873620003315945316586899184187161223992968477715401556256158972272135992333791794860277254206308368984714219097354667625878464071665238431283837649129812746412269108617733384275748867295808079566023188417764400654397178711344956884924259342237215342614602311549307067845968197101041902615898096276527353075864842015540975119846631179362955693156185489558798646480472457911072462097798707420662374057327718093991213774756071555642600896520405635217702201153651504070153874109276371260728348351020139063487590040388737489322916766981062393275538956994514974283003409402983532090093506474389097268156125851352149829818321792683938596827003645734909080582526361589921926660764151528119509105236818317887027042951007877527692521622530087283427453944988689241668739833599654138526500299514357741451464825646459848623415352534820366493806660454623417898429759419928579115067193772221758176052417605237245613737441709445436289205538965514660034822785721840466773469255091513491438730496539739127502059457428165539207015971978188730310255221113325913842430800917592338341286842197800249412594736548684077642265333553365054258850748016641298550337294066455203074135568655182240220866911456951932526024439573690803760500393689357261209897629486606129592267544342707504943612996657487604425175191426040001326734411725907335433457245833167066358377890951714717387592674755674033073217475559439370033170699797449272361158489352760367446441747058511967921566175465206912717930299716207479918098244801505755149905739330603642887079774414698379401973489911289215900679646006452883242867307566332660294018551855428789249477005661968916022839670269388678773236086556915748848484539421359099595897183183132220817635507607636412506048883019114319262142362237586999020488695214180222438872126446272511283653232405719949917744999032915377287932794623547223335234994769097994393714589983841867307749593946143343284685207750172316535355032048085061697882581828679769820438919438630411063252215819638719455554503149659367233864492973041177264903315106179616097128073859893402039366935472381629397684306862979205257485628157619234854229191330604850881395586085664971447607947983161220090900985402901634422396210897547701063744018345270526166168018832142868624919085615158200658570007246960881301765197577315611880629062751094986263863883334557690485768206591676548638303362764458716561233461868147455084916186934436306910118705730266503495673639206712953782302933307492798059505549196573933098752870678346543336584864272654777122349398481925553330740903717437625761704413931741241761261663469491548202901222987485541345034874267535828867455509851689620468014931871133891298669583486189709379753474546367298915738740714438139050750426447628851493906768879547629193848425166241919648672858187199385672770513494371601674346507265243286062320895269875166550393430903553568079569512836780464958193287595244282762110573664000356706887865825984083338032959915713648157066084019784327870180616918155165464974433524235359516756193948382208832748632978804611614181373267963713210025102142072273880227054999581209635208908634078784455186487133785387357874585192087985500462378212987384253632004692650298035956663238275022739278327894886094135334755883913414883364460471557153991047407719211099458016730168223737840568668801254806087847980310209192250051988510916976108745662526843306272220658585543946813315345689020940624402930431720365964617426953328688281201058137271373441370870016576424541124310324879479627545341034479162906852172742984335530022884511582936879439913604713283482428264602393937907015777608945511758842751532113670265373103814086976648140035404483530540989500636238346599170581069213562379693561474655812503709681307372382171646740258707878299097028892790126408398401688157274136643652180209885773203229695192519179487540792499617641355815018821442803394173063792638728840308310964680003573129891893545500026560911162365051066900607135374903712019361101302245757620601309966297333264421115222927757485472399468264570097965327547092402615158172377684935799286517507713612800855618072676252460032958769011584253635718293973676638907030240555204848917597726742910307099869637015682166087383433413712287118705216188570992526436278115815376480273007681093894318757427058493334709138834503773413614128575848672093957412534910273945333612417899993257423612028561703915689068655094828640544061115016366711450409916133829005384323040396591660868829183882633353034866595623788211566335225816883329780110357955816464278088248812387017521224857134370555798673386213450796434873581307745862487700292530823373777034931360164484921256908923695273490801620049973364672765329389524593187009873345534733362819865349664149317325350754583396508464914086320266878820569671055086973600117438240251492099613934208446394471530149938917100098408197290892238618924870584690898618402187464134161510684823722915749866475487464683994605053032771127213199192562501528622353322520309690575051163564378511659616220074990478018086819683494716056365689581294735890620945434537229873774863230971898161132066193248834135228791943282137554014541507268185386468210369279072228647331564565475768243117305559648775776696986024200668929679249028583615053747032725078381815310734442253918651806317752946121400423795625712222836822148974486220218906270565196094731814118969641863719963119393951795996823446529769959997871710238288009454916199156459200348538416817403119055470125250156559438205624826816412929369030061124308038326393329535627651632198321175774159439136161724249567818966877704242616253069945314025950779169306619619216445011714651741141624711493050346262561175181025710140474784932492804073653379263306147649799565978240714853269048578076803180129498460263853389413341154374078934730116398701647317255270781565937374349901327993256393040304416253115840285819696222678501724861144488435268520196566634009560252834712047325495918164693635726587442361945633467287120269015364449399991345245648548021311292581128087196298763635720903675456611678294237647627940157353044219939507728546506848106209369193091238582367429818480750082233807038989683623444477703925905876367048636020383364538106493619700931667953014133551580775819967897130782735030787769820057149940845173777950650912915264872445823976799720144891746149030974667449498797392790680761555669475160668527973215104919586776324293152570148752473095226068211439069925615884370365549782049339460032116103352531796215283755300801916151887288327580299882993052371703062045539206426184499185261860680188331342387166454690664902667007621374043852953896586170244060578278470398111368863414452993832711692352477516015210657375994841393419566448969942798666720939818973011766173942459932288034027147883685962561467050022435426353498327857942279754015192009411869632872966512669455851887214841865361842403556527004189840016750685486062167928235055861300079587303768160106021327446929254344446742105236081672500173282600319844092814400332562540074626204683237421689605522840149688816070782909342942976531613882113862145357658317476203292668578436390098380709176941253586049562843800553535330564540530275542546301766282727797858762071376807503011900778482480675394009798174119875950112852780823816405370210890030498258220591547040836170233337437294589048207513817624849365875496278212396740960235576836738977254548563008430061155068221435137693078840770435018943668311159280585499170652711957132958280678380299447905550856289736485583311885200340855639504906507750611730370914308812616587327546596456707109781107732839937376969165826134810683928107647358094381061859662212295931203293410721074679773374455831082111938646005469122899058989049177704251783983070469839102209446260327093904131832285839486360804432176524269204487953125414951155809760334036636970111238292540666100460044361348207840659952709704604562401198390655282867736412199002041279327737529034539850418817187640926297936029245827708899042202753946672112630809188795844215721272380163761781009825151941702563461090679031673357997999987262333201702434633207527026675331958754647303382666458605951409048431256494046679531971740079608321603355719247826867964516220309972520219419970992388862267166780907749579527981262686814834452692230678976747906449629996653519146236989109320609574699286549206689189243472299232534498526315040285292819886800056556530541737075673853343514881465018055346875771751475228904235935756598927854072527263645903874559153935507125026378885787536777993030817700522094640543939760293401859977903283650165882369144511491598182878886509000684808949843638080257308471921440860390688523582041264226072860451743362630403677167439519214673816045192378167532189069672502531007007838828666085742350165568758513272782427006384795585610382567999493238832308689935412532213076285070099782692847037544733009369468143958912959160756564409531136085379594415103961902699896031142903491367148975731453242172159096670954216646891075501451185875448164104490760539249325280136857551756054955278461240294503994264811905230769284979385568411756400492239059342129741876698070184225828285040555775454317495197684690118202043723404060013571414263134249022065687632932895448535402109708810246832132762014150758132798849381567403686976751201093563277818156454554571669386842401750245873852000501691118693414719900892279950836165500889626986236112568522886147153866860384900774813227409962792445555406128753997348309127616269992701847483039645264355712971832353142928739155746428286947609887137379098355196495580696238962020591725979325311868735015616458640006736283825204659794524625569527936340305439071553941697573809761580058332141030636505257357709470885707186727421786500176291562685207463211634767546961332178299526723606176432852174511499158536112289360988910344574158449063909957789979779015546883544508902394487064733315514099379057891036945891241161056864523949575941267858980571181929992100188909068209766465081510675084463379402081987343413362956971600293653330007616069042259956792650877760285661156741223823560933488701329903703060289579381204247225215546959044001304749779420805038282929149526391502402741847398922135320440353118189937817500402187348689140960731181899661284691890146466776750579393575297207688033276982450351416182399369999838222530482001346331027686579121284592455516019978439837147035014104565368193796805867757681850807636612766876757670734852068440331862230607291294668166334076610066374056317870640285211596555173593309290787131610221265260129575933582169610980196715927768190421243100281174308394979291052454133911340376669197284483069065256106273528085624039638909112735957490004105176956387910114766042088178486466489499133628724135966380080549810728704157932202762922545875676498638035078973285868397048077345206991632590598246841231499368306926102252734072279533324965842606530203258539795093406990893881698069958581329422518458246475417701907766759517660684656453018852083873270537432159703936130074045925603229677860413768630872725416543626484198219240251020450063945097757739288824766115671160093737945493150404735548591555217530863640766112818166259632127924064671642058911070760316594418658059314528894272768909212077783664883721193897019348893993862654447783844575529867621590004306792721923760265373954657027889877103751227556615992207453787007418958381278601461506136116897360569032135335685332073230047083021223792713772265746460108708035993491274506410392333842087800438825425196175632536713949559715020680543446124428023572199140820438739751793566465034436832921016385113168024477769876292786424979607078887868487484175498079915868904363587107557505190139925096609758266761992651537432881725860292613229681779702778352918789607443461111369891781373994042998857926025338959063395296542286989884878022067990108573850847260646805131278309807963349433241135906280276602463977207717512094115315119737628871525699453154812113298747237512140949075427637002952805053327949964130122427742060284971755197727926658110269998712196745274438209069819213067119569187547445470637916275706044821286430666414354262178062604488814842367561522579174497483525799629565777542699762642643626870465416213787764833078269523752071702061333935630386413117411280359610529676467844661697168761596785912110391616323175142273440957555265381868234867541930997784237816331182882241538608027774724891374264214937097162150867300278027885519159764309415328838429480453224499182674140911301147409721544329836743868225143537778992856103950627525992710529579107258509207622877680430580408507211435320987201521535713465548025213584397702401183612318813037009636598055915713491698640737402871019114450226760124244284106230768357617195689690543705967608916316273609808161402091784320773753240148631141218992247409070745596791191509039465355625745432038291132735166571961986198844511222119599954406765121911156860794200678469080743945515954612305641156626321100966340563344671863280299489022338179517750260704349083003314601518212084340797605702406246289738266818383504375784316273493403373552541904122225728197609738277427376089312689224823533554437655603198381072327327315190252047877866175891679026374995679886319473769509236316082067412013101212734691891746807237402481795072010939166811159056285039032112345571639167699856598089148998994608272393026245150327800183400774199899928002554505023566360724069494211696882385154885636527019627352554352946457730642605934893958872237035638355870699336947420326804761308574924005908831682601102140476995651234452686613649287826646396520465274358025297892416995760557471036427857157456763948745522412614052826702550182095987394082105422981850909999155084333781799834486971895439092666901714787788181354609938889268389543542097579418845563728055409938338568418616284084325573786707098145336624130846787200385115083606347236356732087576324435032811013455054270017054112723016324247803643313482244811624574788007230375587923754757268318179343579169786608267083821647518822445786185664341230111862578966026240902633409762781358466288011105202831441064495805322781272456276528653019180500466372662511201197855219225569223949140722448255895013814869522509889862969128962547330104735800064028954050820128042809772819118238578140136387392674804683124730189062816775077790566238957130136407419207212954048014553550023537347502768937766101110994963812742192149871135761371441065555799094762641682431360941447648144157897620800558857348387988827823151688522101914810603171473175949592659812308155575226584595035375453856289308275931533270553257196873871804624380402851256268358715450241235584825679716127393547849348655134474419457554688630154326401945807025606128711982661055065553032836399811121629025793374835795635454523620652706389463178932706493429776127607863768044141984230520230126411481815223300359113342257703196279616665857545066428546320588582907530833875589466178214531707316690362675806767604758785693252614228478717021289703601296747393946421943319453188420019070508905823470426785824093782332277661726707088218402749019487520784727508995508761883312224350450415283369724792127571945550890632634565814660429576106916262265662714755609889319945871286930142445173226897019354557202106161972632172741656326704089128090466916440317567116323388033944132992058492783073623391326424325900971706564220816415994028981506207519660754928353669904906247517182829733972166979183250442515675351961860079525609792662013210873870093569066657843016397294727217752692760089405485783443419976155762325851790913774421308781540882369048402835664153641564524813796332837074965235095992926818262782016751491447544449190747790505475309303637077262143258845202210766131766062386317919440581492336445680141527334773596634222235731463229198211520439537481864987069003313645444123157279429081065348663137993093148433963111672445498260988477405522928791808472977560171628312285010297319430933552138394789859273167496406074350893164289384010029671486475210625786841110386677416352281783874506455266826947163266589597379503224452802730905826368228873018630232160634861909063541800766136015216012114943450369645544670335949081616965161521950708653998491397372618997199434111608368199491126165071226455521301077835268353468501827910473616128964035464462517011754300761667432027151375715399752279214012577818019138191399271462556638221170755513599552954884552767351339334417884485683086351828619293814709392114075634687826130500278242608603113472764011427235812429922766625302588635352445678916441200729739249136131981101809307414958499748102128727389533423779674297460739316375371649262121083056157578569266739284338065731857080148171920148971042296648317568002832007905865269314950967498261679439458852362502119001985491658524501487836143986969937764811279366529430167415139467275876618287314028616786289275392336407181059355952646626115477481769999048151034127740105786148350272818439725405761304373103668944745772215411392176053855998370208874850450486837017956058483990408368767808262298536976594106084570495766744741077428152397966037912351560951357735350687062921786429476162018437148825528571971257228562138089209425291501267173805330667369249219939815794171740104252472592551183636858160174934622516624688618504663528496503186758898914111976861298552948113006105420142311983696248444663592657195140964571511355320195840019814776149237641954947258371373205995004045075254253833688286976183067600653705264134514546874904686093466675247761241638803644267295467340241337397363978666697060215045093552033091581383708645695589045725158728729235609753117868461008201842716948774213900221683551974970953550575859452308498351438701440528240269211523871048263736464733062995449177492061917360555427665182175608510203302228877292295454666274035669889658469925193514090900318010785650410268179117486206581257362650601513140942988896898917924369633833539009581331586626033810700992501763112673309570241231815099900507165533596796924524822468660678391190786466044740242196003216421346519781283229264265581845038928336528616384581383374954380301494000374762083721029959060752853727211168204510934080307489562697761348234101571225876433185413344797970330996561051686696490641145635061071606104305111551612470729677482694569459119373087754265291128625604469516068136458707833413049356059219201945198190577812616000511595863198217552067719529540325545267158133381047530124033501644531835574573570072944314992436178542312391073611869966868433529602809959125146230662638610736491867344466364974850947594404071482419955346676789889634459370498752126097531316143580194828170403705738141406145865880313655047458936756767074382377978104003226850709933054311503339426244224743147433801206798277722981461161412540087342522936461518077932931040918771318742502001976857417554783779426002850054428179418843476980788852773548582056308907731325679418171732414835104643523969272704388112780815847068446404252878612954548477281870492430269646594540119623870967508159126530932756179308933050685414321220537695936287581181260083557171979895830743003767910045178883219230910627657827521760033141628250524164230053861119324530934874092660595463052710619618725105650898491117319194407174209646153153364415216833484913524536818026474779716616603081626174422132464170543409017122427484102970091271598444123744408002354394293021786875263148202183242598518965395606237602733862397413960934250565801005948119064026180047451511314167749329255198262503250411712919987710275975501344359508203738949568983909343038166089553658518394351260266899627253192217672023915839552308951446592185787721562658778053303628118740346992940802430403144499106360882460528385714295917529541211927530192994999538489391988927217238791877061264126197530483509812304031170062730976082943035777676677808166446302490569717573478998029392477011064313546806106312677206841952230575343627857130291223316284390033535923707368363352289330339843764898387087961656000708923162770187798079161915466398790424114002492004172291536139644408105381197342275627753256092001286348746030169704930258298685819449541419612712197834075560563698065875471905119751756297546456951671609473849621704992867199544196904745545810146005871853517049163139463148575566003727736213605622807143676781780964284143833538745379063702178358037517345613873897047269603393132415048989552358859999188245153353438885343624967398872902438490706958603975264011959843195714137204403701413908039407707817913572780749701996031712060831317029994402315585856189802518969149279591888491454577842735750006787463749004320858305927527995006712405668375210299235723233148133041089524189722197135249031317422012779139662645182390016153635633129105158807554639062595042773592361710250411944709731831419391373162392170678597866078982590533809978863255469775269587305960993551050329122449869844896150555551946944464862751853805447150720301725962298025572132475797134380372572883353141533862411188138395467392857220611453052428305791353805168696591822044302013067731336905312702106010066290152022667033354199941425307109711004821674492176114997993216656289160695725283698621618404069452292139624453120036305353855232091062677295232428442701251351791099399168419826249088706860148540111780566996638058215917744152090844518538120689012506680871244172054617951046861187322554570649098138487551383296573815696019134679440436228304906412442751730336348505379412925541192530927438861305530224307376063693838954169980082366591803078184699357855304322897338108808373966791416062023441417297931322277756213395762160263175239766023942064370837333506421686122459030575734265991970281275116111100881888395211977392944271737373240833448846834737054511855578372848974867314105735716187826381078455170100304742942007322327093456514184614701569027270948602219624636711413063288339461862261559399418643934412736782469741993533803273693729378198406523342682238857693417550003795713190411210096984676477262423654839685514039838050044691107839663328302418419164702599186256696496729189674864966107534987202628603779822355651289843200424551973997420540468142319505297672365692770501803998725987318794281710349653224224499240395557183198712098246403732102108091024867407914305616372710615053150810008920423550022733276232181940087013973206078272852363435591332728717588300380511812329724138829674807787635945373040567384052212809934244838194128729037996079591964469592335982484295289658271525467577681949783208953599867586532236110295572638298449009931567731186164502052329927513012047233015558989049357042584157530947990083850184676345785620050278340597452384901645288436441503496619990514065797472011187514515929895740995822941668412769051360736302131238431082936825452729989012770135610427755835559422413617742769486973496701618825946777299661833247867880345105868668365258025280000621971167718934330274426646390161351460945035947390605814758392319117267982922631082770694328171299465833653000154243836796803438304883002636613974879103611662063126419738367524309150315650396477870444077295922871921727299867792963277215856277270798039386628233564632614793228887054646729486865356709900159380183090856760376716736288883859990539433398317326126609832384654211610076798258847630585319484674714650639786586895715511567623921730152565678667596377436822517540914224848067353181951401258138681789599772474100844389705625493370530752201478983119428485942854240652681392854897794450685935410741576901364975342468462538372875300392226581564865501573556179758869002731624086643989527714248654364695870491071783432100406571559374375268541422432740136760180743765347901314151654169075152194865216826709408218635000452225225255335209175605450735164215866984086259079532757833762930371826823520843325608557135179588940017878344566193496409290802009972337950901408579336889065273087785421898514836043101864342806872432377193393509836177708683393086311540291936688155472292059013481091779247729344157413820073673627786676727171608425130999820243116548177196678998830804445943532614380455852676701303777216230455276264398484598684602030311627914692067009873730689750761654772467380373201667261667955645857882611069949012905404127899553085042467995085766202871471349632559372085992995742260357363072195540669832601244818577487772997364234785140913910458727563342412312726562850929649377205892498406237275134340601708081495310326801390705870985531222058602564172026518704669249877281533999940601625383853735188422107492824270909310735144963346881695692894775168745739887073976211146703524335808696240589909843190132427602544448114044238813126159697947387119583864244666577544219173894558840646529776550937891586010100979725275906985139880076661977718838594911330591063228779363793743858517042378953288145968019031353770033938870102192796561653598903864466898342372723204879221925077634535843729500590345475723361890786447655783997745784431239987966169974688679659786270674833372136336471919623177543711305017426308330380241659279134696513899693885051673726689246449492502439877111750353845342529095196247208800066592216319929988683442384386909211604315361041362375135037277745399872678895470306387886689397031324633880171116674522556889435693234196852199585099795016842002269541496117101881265654378139786785643857771765823770998072776404169520583579706740718584675061615917111530456232419628551659140041975498649626610948027560291664174509321793346721704554343514088588609419795205005771606716084607011729806982043437883835869208124621744124768275384237664077621266395492133823087716103847790618921754273103200472820198251846512347278740894500396147668627397451930513432475813939860669228173266563872669495264689636252141550652648318717738116324992972869875209626663723350806878725785207027788070344878069081744944761422532447103656247284525873057425773252072894251632404676999167595121311742076449018551385054415234567557340349574152465050063781496545334167077561783169659482703997906540311559836639872168916708205711159736183574536337637313372337542835325700125930425238056115944773016697794406460221099363191843574980500244074461406126525480112975542875024858663715872811738228495089168269921329361658232292697206000449996631317126233724270011540733618173800236757024359794634991803819157982257644915808080148283745299151733371633864821370028666011952476455023518812192491757333206924995290276013384622576636448844445756194489278397211015869245143737514408168163992582970532242201632861234242862382467130925763492268627608077620563904767399054503213776482367948997222674750669298391585916267951684890071851505457017143876134674064597562292210027472178783106569023223981187779702723655543841565232936171654176700834418329603909338608144429432756364985892104727118318124422551134704519595437243578374409941425555292300168768110620238475314363052698851017480272079798419241206436609927988775670595382040153326392138517290891987706068355832933938340493020013618516733462735172433582067324697474994365120431833056754229335221915583494991515308310879105453408005855345760293104984612612768094501185940440135597052239398834988429037413338928250865812579538735512498176319013880733404748536064114391451020870448897857204148295206486857615398939811771887990825098115685284622378962770769808695905779045134708319745004242952555626151899660451189829463183643462910899930074844065244376309945511477524377933193654387911671497074635027410231057090871287697139445569163811541559081038068626826424561820924870460500224770720844971657918917875817097597252061238415468433469903818994082331349851528919957946513609176190319734408045089358945593119619019871034690063738186733752353850154735180970839851474805174620029108790904826777751897206533554025812143853024035562530299568266770192362108454717899288088158067838326464290877916904635492379106821723402271320607369905546733529337627862526890474439983615501027059102059160614404301230635275743643909498849415056823355066418299602012054693135717212873082943660781882815101526906192504371893075605840277569662234124632136181679926035015968028797278313270402262885071479200349646469148141085080870828679696737595814059527729602202819038269539115137038643219280138978401523726126291263312444017510964334191421519319726522635273556692300624441565848778128848774605521237111657410011706691807584219904764284449837434318704368452672869779790288505480984928525435053485583006131008432471676430110438606252801159023852863855782739963391415663939573729864815549204026191902809284446605610825775366725681324078021815797319220861743232286553518565925442968508860282759324378365640031769624412968002278351842136983430830103233207185109756587130443624019381251242925218854116390313656800158179107941114326803773236224734492780066621782000546754720679778484973605295616612541918601664231641205898573193899323836695981773521985971117393695279587464437325646936837902208666180414730971425645556684229110561950417137937423691847424800026303449918552414646103615256092281381703057043990170318232136783859863487981776482551310336749344284129526002477143283056793234362832141136940066656299447192676481457030942343230209664875162870955562177650565936954166493675914472756434900845709245144191747703034369815150504041785073515508874795974590840713658460529120135710845200665723467992615443380704440992725754841641483482087180196103544255340614653566019227167841172605119757884340467158077422851915032611048582832477177882982501197161808413096951334947841873529342713602236246603968133435939506171114481297919631839403042827576213557202773829954334715735426866354457795172719667455426574144555368598124402489818129133172579246585370777968153582096579587217218396210315344069585282758756621224584661717002781472598125014911764187398120889032346608117057259746300075305291550780527364746433745746646264103342563435246309962086652455484156564368846878743717497328741067353044271534472780456969104240070677149883250588621932380362297647162014605622862927934210871597113405739490054664014079388007166721467543210850998705727967065086642486265906744723786205679353710111049691080757140387379684773923999635910487510676312675506940016793640496766915391774944788473280025060581304949800965869984094455596326008418418759559394140710211236645116407957938920177682275831947019548601751611929925514677974257752529614607652265828140755082959112661136455580152237717127196211067670139346673785299799460112364309438934368157592179588944571567445485052659202496915849413682877116997572356007717836102136271211900227869262813817755166075669830753756905937212598594371817510151566717717113513672481774946866321926660373370717731205034659991759162823719287058776601562293908650378843228449660956424744902310682999240780549437161584905143070253565354928225267407957715189236622724466359449810248396301828276619334159886910261910699019896706991998066511928801772140429998625493106377353110218235008862340199203739420264719769608523459651505237066450678362091574088845746724977427092403396510264889420660786755136667231424840816522571818951267746569336011003295784247477530225256151849756758876137077997555627746304989395049274733394704792785320778966646680731330355271088791769488928039963138497076153434874113189567652560514988717907762686269301710861212055270854027795168112792321759596189129866722171315328656471606868887317989627071051578193026203625432388559546555984301296383392141184565307881519420115615985402767906265037061549024133209216000753527904663636385942449542419688218102883764492852784154409910218672662199662183217874376774570263033196656707376275386967649830396761531621561267314339406801174934908503160637445990625995651928042578430337330417926743438856455525528987509578289294115466458495940326751786940777502907101083516330592448799707576280601170214937706773990480093427955987677670016698906025471089188084097598852189644652789710956209392372918713776776546395341876547240289020284410028761187750223197955836089158236786776552383861198010697581602485695976551346651938903553995482627443326669676879118878183373483505464316534968598930401155738163578263621724757121615555065041792447625474116127120648511403583291887267165525724759224348241965915528374857094990068853181255582855844114715309357991761913105950622192166272329204127818058475146650440970964469760189705106834750855118204040538724603974088998618757584799733296451147953180693851374844445727616905129344175126476911164909576592034640380444002774561033486166866542758982336564015113388068310041422392134662674803588752888585870505193732987128586987634521910229365852888742434045817163008695127179110701054448005894838281157628035014933170699189404819992327565956655865090931622975164450103418715465850542711204543458541895937637013633230449569149497711953787357056335390299669652815286522720976203659822940118379576239625953513555035801450779887525333644773259821024474886988028823286885123234994521551142861764674984568786556370897784299669899523416880977468052691590428391887044031072362398477117253983338965650688938707800808529951490570063953418081890034911746607631406710061326134834959077475165665585640427895419539081697853476673076590572783868126001911434436681185732723927991323770383027853819983340185868295698615123624534576790512717114131884687041604340336777247139390813929060340074081392201614964911202398174759562850379067379115756051532604312147179209961469573372600434127008927251338926932168205171665330401583097180638876400599297240568335767524383462076055092263060500603164552155991718376747343855739791231662482973310027051595715977870981955500038618943732873839460698584062962107388170798618313424449611298504539279830773236273647948687927897704611668062289152081916825548947663859314403552322160480782905495830703478778555966806129075994036899181575279936827395647667929872711062088490233979840202582595956885805478205377715158940098107512689081606582609134419171171676860568919236349203829104078775982704452205791453375434736978409641582839248717054798868766056401483035628848409254240831519434561001548826075157899340300320253810448462870494608737967328440782128556426892476033754435242115494202585579276518443190576896633341016798382730283251743288611595452153700413627406896972412407108248243828553730599057846771090398380226533351264065603952113829380130868150227770604575620222030372992700108048485507445800483540365449174962688802703903129287398304164682116572345251149003784946173552075726197974026515020453221975221311064955445857633470490229591396338149741532754342419189625010779230138623320161346394517639771669364130520764164478073434039001255758803448612035343806362509098393583245072136138552577038516179910425111213123876626752053610238150665014475079315515253030802085998602872091714954331173825788320329453923597889486244715387017306874596105015569430386059866312148281445617586160855464537193381657391312891274994054557484626522403079340336464971827760229724256281605993024286270699552009944784416266008752705792160706192436081743585630090678053275784457812815458073611846043793297060246214273912546747500663035109053713598871804547441161734432640301097771283248056343865671077145676675481700164638035581161601903037830432592811479659477785549905134601109935783348236031650525759582369754555003621759691816573652624234309889157878106929571638067327288734163545758794154146265087661012469438786110308972436971130605178420028813812204730894280818609367160755976348019217857499236184841423409579481359286453247993002154902962902899195233138321444417821004590909750070231385492518651544005520602403333707321323994617235352485919562445789586255665667828162015274763295440156306666393880532720605951339631024492077152316279644200604627489139253879884378969461836518572137301155923115246579767682428792420773234602221877348169310026554812352767605332204248048187663631095726372464205128127715932926249284956021567088244945842341837712093320332508446083184489964734258102283495260005119472387768902096317633263858646087516357058151048525967815813657911197200134684441070359630456952495387219347933036461866017315679373721387554277028753982745414539230077080913979006104322252263294691961871571191467341403906163083874411048086301943206306928967144440598145525560689896226041084686800086834991060834439281981205968533692990053141066810461642433982835677911771423018094489543251822720789331091751253045540509966252846269317173494411110563007311232937858415560016200229483462246567111850672772746145389437048286688131131622517815464887102996549889368034091365317530345770464201076509298692890396632592309939973182267216621653057500933535774095883083844068361390607910804027338460529580615390089686010339977850705571235292978676000744629024758065176534572550880787686587171127803899076800788933767414878340947345426199997415147026349891947267785885380224259155329322236704796706644306206428080393012957352254593405931464538337637612693037962810311740221536683460819471665047592940643489931642184223828193031286019379682434118292075540691205765260960525684204266040689900003483958525299482212951869684896471203329712373661156222439423598424336434460890121780333228808152434655160616443088727963832685456840725904782066373314724152323087993362319032668406464217188495119522078689280759308579994328456092795091577121129309633977310252788158265731396585457993356449413646091990357939112841431089104347186306055986951704270746631916901416071872813418853459907518967797916918236298208939833629724907731996443577879306141496886771148496023667171094320913851018324464232117240397253687985160136321403292932650706734937676036946238837605872963945732739595985878611564093616083571444891693158783844649155938031150455298805803971841346172637732523384296406575962645983249138097200112119570127889177186444118843535064050279423808157365592242607576811870925399506879358478548041769261001755396408658567881160363226696799457953356009922009935816054227395541361786627159026596856038027593570574451379400269608376958159061690447741414308891033822466069088292497213446434610268537423624234048930578331324454730624672557732078888892622403555168265916475344737377256720899273814525266149582864859919125701801801950139680238766422843943829482606361019800332154170093366562345470613615089567083560408890004987567540251975573046191062447972120987885921287786878534396185946568503839171920716531991994532115972528097503146685010288136467438076516277273140448303212467011701177429035744840751532443090509603329941261085723283868787552657614898319480625431251924806505681141292786944608390996731228783508040211047391970899785663395479401903652309357746865747931539505138029972889948175723550599680787916032651689120787054134214036321837355779797994726051000582988966349152003087486412605861171700304634129302806554577970800826405040119414394267708828323183348867296687944170110379267137469231493507969206200682961891253425415862988877723107106533474190844453613838210372628030095244715507505910808556581269263963984490774726291645216976414097771821556185530921218520413932047561649946034028004431848118922764935967920093875299319848060107305316406270977657157794461885760556542560882254013437914910867546650880523950198031836575936318371033873350337284836923740213943783491230088979574002244175968266363371451114211624865577302949049925158815317163540970157452828962572979012578740366183990620652225140586157798714011234154167634351739031198883888014925537483495080197398325066198475565665016800769757443864435773479280952315727718351900457821283535329892456182935542653396510903204580947196779754019760378678995818808610974211445489216929244852318648257980265255958746178714878803399654815323138675613764391213345177795823403978892572025741754705712234888116091647525035992345970508431593940955024195471065050945150906602247186399088316208241674139646355464055071174807467607524430411189372570028231982579407757448028973507771068020381700161016257589131318922434247068114105926552172372469825621163503641320025662252819872066009057655647806725283560846586212042310223370094346737860352178168681489726685928800388594137085904359341365326535500907074199823729937178471278542144004405866789450970437800972242036137960442342711050234463671868328350667685207304284287305497943330549461242219967716617219217173017983479019335099292707398888060243982342812729352488148308580071112787364832558975456949599934039134113124764930896861244577002454061595727837764269376794416272453358016893002755670284226600298804588400523129945041479253296129636943084815069801473188457236157791780325721422231911707291762454738518606103305649758199546524086798906386797662568182589232640685230767126224619924710792219476689921227772779738386995877693742710090143674428655663785523842011919579868118294299232400717553006274917160875617441677983282247221366077069929096989362258063318979493062712056211679307177230563710702729873847479289629384121096601562108709994089618203945089279899588753531169119192826813976416002736081962660070444925014248256326308752093907927729189528023837823831086051734670322084647102151706317980487683523545902252607160844332433087286592214269141429588797291791093513322615223181429578594892223140383189777944294903120538683924519758472611182069671221544184220298994222374088437680965541055013334328053974403094059259455186699564591154933351968740959572888082053815547927053380627384471727750401433934031297863429598173913529852131418326864209430863056252288931452900294369816143772996792019420835361392348236629300602561878948142767045766328402285991393593833943372101339934664513796090326492943705209557489802794599179501235859961403217552893095319650502153288221290780111485626646186551348334773929637737738216939487161906514084455487433587928427014398568817719053806878963362504642404333500480934361947815857718111967382654243129448217995268074951682376965456569083133417839225513839423638665544655063085205893299484523393642858220099302620935779091552600633205553197115984710624004859472804087405184138320861572253368175837651197169035612854176455870455083636210043301064383253409247227198946267664933875587650819361292004169814104884226854931479679756575653745556715099060307861474334204766508036493375854714545026315902363556480156915313939112908216738874696367127556667055191683629436503272931976961972378637584674770220119701088359322549660669624254641923005798903065157871751407731938252438938388821804719033739472834898177548966819745523617854966186949633088016129929545270667216954345628279323330489358283211869292305602201061545134795218044886353483036031363177418742711312354041080450658472306531323089793367571784823510563088642451341580088760899259463285916926767889251623769199555773714509259387314530821047624736696517336849153070331372333846787910738958095260567450198002484743450805820814133649579136385699340878117277674734044320973456439304906043608161341530071110686486169789877574690984658451859643045149354267113816119190524439074874745487901376605245258618429036090510853948769279434298703682941124303188978336443700715727220714413913763181825481984127016694342395162371949188432670286580291420304756145123021879465443037573534041902078839423007073848635459015043736857144443389293007499312910702763845472799103303444131929837244754388805328523152692016195519247254053767722007061640131642522268827928411237119996326389207998576100732580933002169615121195034734857216819019221368599031912951079690507891843729334596429458847865016375865098621259545924811712352791062154648893291884795830895172136620885727366634507099013113298205828420552133721632490401842898688648235333009867742260844683767203590950901876211048175763236651099173486006030239787336430927564973420983619582532133145995056002562629825556549756310708802832788388564617461846360589319439811272001713822423673440641302000839648733601068267050710742511104464521688302741094009135828270514559324649940107890313660885475928284418127798644445056582549253340513537387840480328519228733362842146016958062356791178972323457435015205938542693176587446725528286579093819790450612420524993573963168929999578760893418394726792542177882101452185686814462885470602330962709235648127516221592657519109372967474183249368789027202014740691014193610089270635485388164532079552194341057878268273661078811076811397785313754194075972718956678322174323099803827204946858127592416027424662177458907643531791656168764705142880228552222766245791854482415727791358462694537964422782645966081036130962745771742059570556979967230243854223998285377961134505288967028102081769143037588352083980120724884878862906512231997318389611971157243195831767041532694907301343187179786933867303496025030905699621220054527095578749033211261832895715679876145012051290694062699419596979576982466207740235456455422363542666258458403176886502488190110643540630359408681191819860277696073736876559965870317000182343776170833637820719333998493041291069982098839556246385391903763670669989652091834923301542936295052987169412120080298321329467283070438937368845001671302800128235316778289821741381621301932376199435017138261732418841310277490761104189866541072833397280476553561469310338273019873481777940785469511863428398043001641109229739712903610047985282383765816436130446470961674284013690763093214084294306716243149399158554724482337108762412637527322619901527745476090871878730139259760541331889022423595452196413337296787064971405210579054316406459932902503953288118809341002391993042823964400261874557466438491564053644108745582843409997021989927749959062859174115489824724686101497463014402851733096026897212668157419496736179207801139343295756492350092038169715788816664907049171749615892218643940239228045412859443095958542592635111410518697907436632715722400319717642596139685785530427758676678572889748742136737512840857759306035515841677605096548389190023571628444494950986416174321764835007356805059772898586421862481945674167821865200491424176094375032205713199159046121560869798009122122579170052781663323821273215831204424353581779163420830567774287296563404330879617488184252115433889306444150726702523082099583954363335445774513828230360863041729905642382245060046632059182989066870970240683270637024032145721152832692373657600178757833726702569080327166124035507648537052189831578310415837718891220910301313491128045283957583230534059170927874763645636590270119891897211351426754863797095204711699982631111912979019673044601156367373144606799011848468767768375743911049579828851076271699551794144715663176747111436580461421100086075968457761790555303302012676612474928729255892454953924170548694066501948914842412905907371577619151314181132305860010828336148291523114647440328838563755923772115554428942463850024016938091496080501977979501202763753112389615884058549759083757735698311354394289043999691241151989898470851472323814548545693220307165399623183518420646928855895109259586891917276058831670173405360560747363451532675857443248821478670475111016024743432193236487847167617171702225883258554383540459332439099259346162127887728830739940032396822985609972235310909214204653359701186778711300500239421540276989993368239623539484165391211590432314437245248246940038437229267467676066981187917789225343763250612181809377057268412806387020402917566751722738607148285104761185972481520273214114035442395815042608778341180545830994805813484990855876647731701459069396890375775348174116887921248311200264508892665897666518851605815218941319519205063822312553462533536790837157403098703786545636894469555193299901122477253125108337887762590159892676041325343504276661416697908512004506180848861817022791984162173693179028558434471329061233545010804222720256246120727935000331476447573395970649562481342128091113809892017355400911176100946966723594878717068468810401357797606927019084666506127804836939745597772314963322614518806249275238184762876286780021060488406125843918587383180553887977952343544253979928766376555661501861186329827741236247085855553481857365554366008691479144221299912319420208311207845522946869188735608178307531230971475900668301825988004293111691228670291187950437825013483033586338038714525831303316970873637835388854910229605131087585463998453613190870687937845153908812670715641557724839153832314121995652650085788183686117641331440331116337481328431082680702408942585081892499770713871530220370513388346413596756431905439215486509311863386932477487508634769184844236182299034415516404293488683490018758685409146860917962595157174842893117289403641233777547036674880848833040433123484548666304467342064032143139114700054205994831100931430141087217488146644538315651618157294091493918416516190481339853147068892538609539083019711475523507414247797211272955419986506600210204491357952115090443263323419651874572326938981216340859554995416006018015473772095643700285620855962789740001767763593931257423429501356460679504407116401192683512851903582680047980262722457494001501765610608336287984426511781535839143151597352556285017063270818140862207778891077339875421750021939889390772390827998325105435171593845619250776487260073110146130012973198852007953276849016706056202570290823554724583459459672337143209829663534530402799198102613096209327559405112555496539934373187024041923462130038984881996429333766953853394469867627202914567179796946055899115861084576737670362275358400346012408506210793816202862973558254472348745783292402660464080599638963264710043911720394875282412138974061078073811436003518565358870120904201900309838224908605696947374139098584250708918597288893503002217799791590890034171095311229498132219555575720914427394834462005624231811258456809577066796015278817663177949260282088695085362448342419007394880894634335822052956975382565006079744419787316894209143641041807786601396267764347312869147743662367366628184014688496140998499149242567467316562840134494738038383030308126385815178916476490470847990109133092340603003392328135937656775094121381053436752914081064699455725558548699369043581438849702996482004855366975446629069247007658519498679710004991078392384583767420465021731068308182935623783262172358428314161718104507238808272452400812399191047100849322845692871504258401046424610515872299609244328324757765031858122142647207654769460457412221679491206303405448208694291197328751766829146778154856938983765814080280284795185674801361055194389129702251688284078658127014527098028173355062321564608933736013599100313771347086185639157893528373399693856329616964426168889535882559141016564636985518267162545021609679863400155932301794400272142572685050939482595676831242628738476120348826553354630859402561489261574574656674701785471669162358972228588785525544805299867281296759498925779352870638402580048743324465886654588909974737192826584109470612379738959934047838739964893337615790926095317402629885694685439304159391732278681444223987685827829279812897292045459956939013389575561336951557654291804118314167738374681567475854896546339187905448705405351495314236360140850041707467289561052267582360826318021765268637418641134727930434856696080879332306694546984962634696304650162346567559089791082727528750330434752050738507277193368753365101349841876327506515096455803805132939718389393757312276692047009410274013022687041435174192689574694490460104896623153385148042825670124019851448831642108058984270773928864496204662003331060623629512336221038711890781350736279726130929518928009494851345508058274518016105268920607905816308886663247464646914689856506586782908846647129790382598492283644334371478086044393126579756908206618300407014520100484597776470685831104889780855456425791688187963351698335803907964202924123099637670099773812379186351969249030794600555009514370204401037430897316960677499312008632837898065078709899941445319347565229968776137956038669692060338953083018813505756639717464414294692380778471887102479312643378180803499074438388781543425028681037453250189927062542959361389803339565109661876909764486265691373628371027501787587859875498998956553932787189235291857322702380501447858416433055518807089386357722036837770556395785168221310480264258165070456468076905584950834290827360928833531875418005377634645798614028537046542055353664413428162007959286781367949682889201296487901364908525125663894209766506626571319093761741616292596539560467554994512464612304046667066037794052355310550473036089988618246360611403189535152060449373156924697206166168964319635819438213230700653571188414989806363580532889005592821597395201641324432389412984602890289903426552939791489439285328157887837208111526158118879265487815202741002054866080009490268319434983997341301193557954352924092184013855879876181980791849315836803951665382666430320180099067529788531251651409888725254963706535787352445677645835848304146586311298820684269920229898801415365902918055732214400284138354197674733384826997589645230356400807778439260414357343400524225912588628407807406445607163921001786363137459068115290887822239616376639061662070639449663022359502354154001973056042646095224142174752205032371877014383220369257080959732090885384422423161085699824644287475297769360779088246970140840732230532054407962463286369088336305667260613856104745696805219837762922944987280681049162763480913688674378961790867422641561077381753887699512666065462152217369227050431961620537781429532550125270961499050841759018156218180894629703394016923511292387350034237829845051605415277055042184709040891269636354515602842116895360779692882757133151477655125803317418293648478334057376001214994089588897420792299493648986205028012986006890271824611637960311523847540849704593885028686890053310928445529853991101618232160928779922087390389885735766655303779914342048604784312830898366165187258006213564650146988172705603409604300440929377560278934113228446130130802817452654339729959781003463184179313137588926181045177910586717407104145786426307389290754369660327825484148762794103125214247185661067150551958506075750455373246102731656610226206291859815794203181778525530871133701163413065673249947012149964843354294350870133353210814898123241096050907488417573933746780746305249154778002468346702928739049237277498636522313533644838105747180588753075906809297091917972071568117628004969527318301468793648171722314570847885497973748876029690824802087588386243603046206411204235801281960423336992068281686619362065507467182129142140210049915055235675904483676102984519866852907235397327991872455262486116934678336891308006217011118540556847826825734083865822015500416834665177911514229497800702742364955277903153555783225643982541148089443703025273206173770590127730526081637118760123427182534262359550196762611602042225251973427670956452962136098668592119619205090934267452648655530016299638625581381608005391878975182476239053148164157669739061943042248124880011993526680930558429677495711342422114380535484423388001740102389102520992765148862011856975827362768878345783314600992781689612420231866117352388040811011612535681070167176844283612137853066325200393300801817941574891320339217508538763921070715304847138281005639727162576422244013646379092364023850459333562669888554597525366025916400208295963576703112945124987791443902768235858579617590047414907905043063962930231632062950397681263130700289817427987280875102016108992442052289362221469261399664202961041871859984404997641079500064918401315976683499493723260656549349896364854333630170353113580013719599430110788298880614441426898103559858611661073099128727011658232513256230457020460402649327858887499534052251689633967891380689492842690960294191542920406965897135604728558686940375502041841001599807568623154333799545024459101730747348368753446943131393704224739219412361656657657583924578918711773217647129825225448834843311582933631074906895671829845858434019642054877793469079956115157350971901046484826067976813005322238863074584828267162204693288069787358150279757785354042744085477886647037012957924812024348159648357963785620248775956282797913676664613140899906023236018439445587353648006087550339657344646958888265044102390532749933447757939802689563705802180889433230561127123536599025027609338438090090527493596491531361056012862910826815941403339931276683285501164415649216239261565851962658476792709281280523227600842658935717372379424058300944316390545123892540966228671927552427670900916347735887081393903694121021913295156209076716915966496935249150754344763655638193624987535801341598754391071366352384706231378712175278613712557878392304222894474795472328246495532539668450562990260716169933190646009122810565530846193859406329991861570778461207913572471557143657321633389754864048962974339403924721380873474413654880383873708479741552593512540525304443407919310564956938237137653998360051718404671378412785765792768157091770377714210831714843205036207678250943611918775556708864070349354105549656337009845145501743102948247331072294389171351511707403342978162266575616723778742765898766918870763542660347663903603455484435679236859571115462242674678651889687324466320629361896010122815277825787096433650260195993678588957113468030429953008981432011686839666141929870757236928423448541311062139619883695814695162187895131079694911729500533566165476531137926952693046570295724500072070688289048485777159607194243830537835892161430990100103419302598851611723356688966312641347821136887205065914845424196970531122600389470676528719743602747117975878826793065665611027207497197321661558821022291542685588832336625907121549353225394563047861355270673415836045677236067598474827110027376525177055909546322799898070615480972158530372289269312883914084088523683168348284615082802050841110852899942987153037129312333605855520194807154359961141536301650862571461982667416274661370189669149087206366435753584304880818680047061173932559095099109566050859746607534868401688269564296963895374755441419707259087650086131935408432871273756121161283235478634956329989720551927952639376246046813569478622729069154623024043703243928273540358616163770632284199333762763521777859534054033948561688275291564568074439028973737973519145531270651886654565280937218919065552068932740921680264692312101571899187209873411500745933970623210272380372240615407214975626679180941416562469845813257714493418744446391740634875393423556426349554175495531624574123869085142305126802341211539832833426235859258744414418431120897088206404693605160431800500928923837522278322525879251612193722411806535139850291441354839897054933067331923956394404770527256325463972403927042618191732751919678360584959076086178849743986638842584562564186162550861527638907219674289622633670363083101474728509702000434663691223374504309400397664464133225432206360362221816364224211139218040587050860572514292037662205283530284922957954272337199838312257704094935765113567076313832951995718433373049605201473033087696402097609520503886363724475721045777745228338761041396882298583951652338101359634240533990965881640218423934991594685066191698860390641119577914677908986795787403273243046759844201457519430762200695075222444369938462852320186317993293475285566231883433431823175436600596770282649060951651942066087542207575790306241636163125769055417995112423344160771072632591595942488954961761377629012351089126338615831937325500567854315910645461184822224955290187681109603263251413450787385994506671824906914393515070037538827579828736168743755183759635584989209741493936160639828087465111684431166565692503021116328107930258059464798371967573057332249794542483111775142151888271294219740800118005357499887541621312004232628252851701196150337716812116159735956898074320069063362623069389547124603007138468032731467933633617426114789514285017634240849252162308963432852918984607034248268213622503715031459917637130797881177843551537583467628279116940141025128918869829739367370074514992110258432463432198926120561011915998381172131344121734774500210556311670985367665377988386325675085758006358716357871226462523344781497581330331859767127309900163349837569381542565882635058829133609244966402948425920077836649999363732472709732402084958513510286448495699576010731233298534083240396320906290914790039143045513929910489553754574850470652416916217101101031880236037687031221631823882679095004306188427881653901785241861500122795902608685414056208230690682764868296340517100530357848439137991285893312550114981613337358327882187507774455581634399659704755245096373695088301555544125015263989268338763682698181138811801207531377815747247371989834684838331054409070372864392421318998211503750978423181270553177357431918924502608571799228413370194045561088773037598486474072353018994089266899960224545550791208483388333341523172090495450243449209380300379046065143954122306158805253380996426295791230058242194995976764084894233172243251507638419182905630652270058902559590894721170060840449974686396203008818982704228023918087283195081345541638427227207663648480878837549023644768247541688161204456268444234136025256012391279962070555456352140369967393160443653291205743922890903506499252480673555636181503571463339322787267586566679687669432781485963147840339852048364120095454698899079102710982248129736958333790415169971858563616616040197183663604128001653964963796435235764314782534191261715567718840153773938048673634092355519963283750233743207888112863695336061544230006713253463501213194477802759988566433996489681330515281193857273107795931371926405947754296457697020960891744444751558463413257068345794922135124936741761037166548809268239606978110022978247891666135110925890213290725871258162169892551015919606002518449680552092513690873256048098256270226262011521458023345312971261312470070009742987107799850679359988452773212403371154315825066844708300249911335789129681970687425046662981335852754711182209085790917460695665604819864514111300148367801835979618183700936999498134306160059991803644334009362989071291145510803738488111587761044393398580000578409443644497368844504673858563392606439540835836308626934644971148640240633729596055055842081206920357177379095017414682154115743548654535774552450060543778165223052674525271611587045405672188062655327049150087397251376597243980170942619477759994857232199931639020515962771311303577065219569787582281615997720321510901793148738724455228784456820655843935961824353199426196064347366743210500721921027563969139156034097606211808560016036423329397160450288056677652498936813069562817355045714138475400213784317922210559466507289024908291053686803161215531071141493848815632857102510369202405923413174708369573802482569689581371319637253712627823243634699013228328998340014232291591134111538753510569771686299640972036602051247167934837861807664811056186889812095545178806387836069902623906002007491697425078387357115346818150544677372895107847950786211662517312439737237790911988283575288034653121173312067355279378209374757916655675447988328818797155863562176174503836262342757083155802874410600571723504321331480249402063111772849242277305929440513757458191430037268884259038637023863918368189106800365385186431754862315139543082789052349544577351786611566991522885698169847639341492566083803963113911573224702945043696068476406390555056469533146067634057519711512398839691624736516373466745861650187292052206679409984931612408115045593502707211431565229114633177227660556298788692997347373276968843218989742532606589641723884849309505511495720504843884646561011154187960167096183421239504512789124802197703774683189157855445666507415577627372163287824376420695477719785322696827599884901842652192153964222566779434821853825646962733431374544292740262434516764370626450580169264739476344067705074022632899466251247475379045080955810313772102897440383098982479191300055214227031478815589624035076456457414882356419472948943906411877004364434283096837379666890000790360691210998028478632352056303040271544603339189197163416057869526619933963019930922858963639113027277514860551845556841354892899342125579870567977648970415682590395074393447403397379452091945676160635254518707498416299673807886309480076446147246947809757888583418728400458110745795995207819533657132757825247899811961140461917265163221808682166406635905377070876266111704978279392048032009502555054272503920297553003048232676330374750177492843676011615209526444626944905882933442136711124212444162526263897101672541727223086426293070474089233339975573851316997733880382756211412023323229060615258474183928427625731628408198366843868568274170902902014493206571528759316154276083243045155195872666370696578798701650316733545754980713950028174726449111752714094369031150576087234770160806016087617405856868013807548625514671855350010955148550457052669274934285265586542698339314273777891652251249214594608008519344055331445806540257840954622314058789375249312445636152861469931690523420696308453630082228563735746744744511128849262595036774846150971215304816538529438093375582519528574946869090932761577135085173327197620165351647833819363445742195481376203106692199087646203870614512465866506978211528994192337494287760277734672767665780567966038184091492643632283857055229577481903993812225721575407569447330794759669531041854414619768114273352171204838409743098729475060068442024734858495703257216323472367195106365937174360978935821329898732570127497825923251587517508193851345858948153623031633779106189231439082331815740589032532845684830812587752937378439588620314989190562986572719818717279974687115012005260742998154687369063701125962710460339767195241171937596401493219489737082856791020843722203388091096656832140831260530913049246098149356463170913351738055708822173033731634017842037260655069574701051921436603688003367241473352180233886462287952207843250372739565076081238613177973979944179734530496246372478504280812099329666358773999759706225317096479678642578419627176594285718794896864653454715529931526124521392104846868768147103326550601939457589961811179745009619166231904302223915872552874471432333842544799912887199035474286800992667622733309129100141098204728747032905979268558640915647054041577393036288141912452320088353215469349502610318313766253490063797799212356260142354002557419797518086254249400280964896073232510447737539545669050825621878064002994924461908046405597933557495843537822410231795199490319659619546281913423427575153503579569019705846576471711078848462257433434487598815767898019117105963369207883441956588451025788447501580978679430487374279162353173829526355685047712523232148566400272814377024965034232749280213513627328522238042805516540484164458254851882633374160492263579355025047125672017209242505682780398028587051965394658842555455824212801445786918904260199924731196401573453160448501114921587496097609173259568619645358528928472494468330875227021036225633799122499030109917341729072766921598265405350599868253906865567276851654726259729462012526707040759116015449377865936438016287879708667827204128680291033583660583959613710588164172556721687331324748943334654824024132161082873091734135394220051735834621357181314134309945828248962666279053550674867143876448578189746607403692787315404246679297069527201766473840535098359085957678233573523009553726727813357043061727367192487614523813957203192979402963293939071837479843091187510388441485370767104145130223282044853012038140809456676102431780129663252566779296282317165374580251587506083725094278620709830404752786361514274803733092897008741728456273664950090530580536435240983103500633477646496647161520571584469667750134522987160820471306389274382016164923191392701717963930635058174695696470934526918675967236001079550916478340617873157879801537396584342028817587745658253744771201270448770247921690925514574186700563966613410814918500385124572381698329150312476719298576425239813414685845204526084465684823160272104541818739140278150255985267943212006386607267482555952512915796917558036902265479025844676569555180980935467551254559197021054955687698073335110175896013021788826772301242694251606751167682125827730206623614635987615660251010947603342202385084959807544642341997682421005712595502302099197439996305547975266186454743270590855353601458564981506869142769442719042905721609019236240095843323316808647982327714976008236863132377694825963279576168520742419903029588067147589509291682097948894235045518132299877343232477944343517266473741751570948841124913274067160609731342585906602040636847018556664217752464764227759789057322420637149391457632776852523278604244678644757023208101535234412853126597119544085784132730979214639700750588015897600756274032956097800167461621683515151269352381568231378727968510187931293147767311149640395999096504817607724803583915773818964241585466451054083725031047006471257513541418493097157978309140464155159919177184956701407505084110007842212024340625118006343428701247430248800696283737812733710722496134148899005880643682630527701911596327870951046288801078600308655116878391005249546383021880311234668984888916373332213306296949983727842032886766481648672473723828536141032639401992451573383968315566199790633232857390619862052620835429790379523289281857508758468100631364247086516105487637102024241633348487049815275036287577990319574750327397513920235147649158807161157335468417178238354845719609100105676462222106274798353200011419552954896272724472068886975167890817920095662799383167172042651698941708075973815397899272053160434180145728521730998769410452533078415736814439361826322704655397091376317276347345228312480947542655272380749029473265636459413634440804815714071502822707403576520268392453673923357521538990406272534809636238025260580414839528589020820727936253459273021409979898120309158612846194130844862248711569257194615000961166601226480673574960907771931541664030989030453429859165533553215430009107131260116659040525893656121073305531718023225409569595190095688642832423903798578522813414034238462862358288666125395518657841805830830812549831243358521412280896482747904132360705335302125471875114961053061137458175397238108905772008582137906414980969916014094870964253878967977070446703871800280036442733535325368340434286806561589911510668871768638808278853428753643060539557184238629250299060930086991722737863220810190791596450885315324189812051723560699506296949961153081207599237322143872829005384292051648247318059823252085985994125851264035795133351824814299697681533454335274769899299814351722602857697163870632473561983540674141361840061895329916195932778889505717955807029153027845342283508319432516177474779177864650263928105479216471912910279540048883383484489044979934696051804684075519517625262247411144823031067010228594265291619258660869680849690866338888028923364808477834036144019998022486849696916985538511713596932431064459135183920450349366142251811057955506251590506895643405957694831902995385828594511355470248794393486973030159913717163026598707888902604292357336380355055076992264986610938814161956042206191689150114312523776789695034463089696858096320544574617970502961143803143299730344622624686958545697706533315281634441507026209683192448081089587608128276396833198872260852538627257668873025581874046875191433946402762799620346738483315024082606088450445667692561826251538272868994002509095508769637212073834915972000871181189827710186100872240221397785357771901620942693396898847796258283722396886084548010696817809011718111616558678318994607164851272414377760040960801085371446743589876452776806915546606450330391765771659683334978666603050761051570604999506316661915936539431479535489233724214545988218876596706674377468882063079661556863905731780908625434371059711615338416899533250215477543502765366512654447586973578247633724215060095700069245452249475975998412417854525915739791326025809822280615470953946353361903995322352586610423705941243163697049992800984444284505677159192427470160639752994336880242965120745333709692923170410680699467148045894719092824110925415484599180038945701341922412588107278110124738109719332261722006866323765544076050041875592780091161971877499111503800349103394899084763989627512077618921710584404323283207925656960589248863745603993849875216220773923279452999535611701715935146495784585447376982000662600603432997150566965850388258614615170017955530987792668646134541507660368601336611712824511795956802552660771929059893849226335434742350626833982176472921212582840005897395704432215755589632171357914417411731951780446531818923240088141445913797248844587520270499559588435141225715554336489889758559145908776824995471823850334115756485074477759284118182740122597496240725368166681355720206558839652148310431967974259636930076077467538339067068516899867258802291517290749647979724668128215722926700204246383625081785172329332350524759694430304407907487578399755541962085624229108333194074574518136179430962890958368429936748270674346592156563026264804551779206084581756757718888396552233308942102570961915586691336294830025672628140995665997772302197860031349405850210005667741979577630497192819648928677520130238424472082952526961112907232672686733113241020059641671810790801183747629573518902882084473692454745091176731882867068908820398366667171453887230550282492763395423456446090893243467381087263802016455599835042638443009929875550887080691723314563929407607739829509672526883351998573847179917586572173077512462803606855723694205161177317640585982454264548879986238181886523668805840531516229274572478926575091239723767613207959844485476843192009164471075826692938033985732793272249063752003882159589196742225815216602781021038815298831872415821197363424317932646623725046726794140714356070636168946516370513800222793358430349683925183642031591013353699452208570479754723010352114034300341937773777409490569909094218148244896354648563006706811139080529234638689502971010542036705591429347949910722814943996135455442837168175425880722770237658097923897428187383772973118293413759438278079120800676145685372448035197617618617477495729229349692288260621656006769467801834819791473167936389072376376371431374818179971133880799897477665217500482230894419294041297650591222699600127820089607896049340639234687596840949226840758259986124553389075404082055009100184760881115493649202105814882123227661405952315039972359902074208815746971537629398079079976526033827787592588317013092591426227034814415757118389657939456133173386587859064137925344473114855544090273102307624594903893045475268249271997849325631983033982203761306501157917886896065118738022000568963035181494923752287318460129092806483683370226786638601331519236252125140431699917800710540395543482912678468075415608839884735412699330876434209014087224000634014240036768141558536669720070623523970996708780003741909886348199140908498607758292957061424288537574913314157381598440231257943387185721991120361148007736326393151849267668814591962880578569076292956810961284436203821958577493036212766299338439755680575023716567144732270580686835125646722349052674534488436700042511266819292815216907370235654074824460953751635528162756771141245488236260915093818807453691854725156529012613100656419890844362032265327737262036706996500619371603372981803538119469168650994484444112154767024857506769612602093148127193199703188892939628204165075824458691042487101067220154075489038343647485191939107267274255452612428133022089760924365116330014176837063995427336362492447938975450616283434807189894666565169670086284291546374634221573909552771506354825005210135639850839797453638464699730384832027670241364639596625270920286675290692830297735672640599577476523890828278691324652862155679516640974951578294056059078252082151737892486568774736602367740137769188474654286147510239489797782838956243866188037724199453388458373453806535173998153127466232682503862858023437802675643730897931560816243350061111555837406997483914372546635016230432699412560004223605297774580119821388049874098511486522676072437480108441810150504953931886678462576524810432214440716436722627182409865699415485782487868970197676730522440006532351508268354348377678475599641370859556774698483541631682492707443526364247666368443603228451972336471459549394041368476000535713052725513671664520519500958672592630953866566373774632853418940654985849400573620792353520601421779170983789937828732671990893937334156719940565833609494502551834894250515004054982643932944670829202553215220554317158496968175813629844387434708871544692548448595742518766318132784459038092406510681127686268359855430694044256981030453242884936653175471851315243954301383044786185537019428843041162348869040427666434687049379336099058495148310931628924499835938060000025570510117727227284648524390968771419373854321970126473181645487764874150737576270660209072756039495879930887310600681737867938057755887723424162797736670199782472565585783443551854836953023928027129637352012196499523395398079260058674318118258635581391195683988780094992950122339415059785511987474371506307008448431261424636031106483957646553705435392643026662396568080808512831691863255414276861930657911318856865534199836133184852731463415410565600373571734036789400654334586443449097183099259065061059536080563552789311966868883250255627632354076356197770158093684443551160170083989686165920089066383678936856451814006288249631126841375419251380771658326862190145733584220874219909275482868224807676754258484446035321845973919179294799774414166645849757247359476092809759508788297257185616209596342182297812636086543178756417869074145328436783950251248257240000617163967319654111367347779567689214610029116629133783350563610165119325035958228498047324118710923344081645508175952764772958282945687698070125101701778201693344475267803026670444053134008818976691223273660446276561676616577358293648344714249243898970802780076591718451645003891037154263729438526466782806029129598832659352489811270209045201822377769819352127982563111590562392110049828891773605187743535676988039588027490577812944186984029920159218891953810592776846517548829395937119718900568629030688650318060118810386760632328570463287784993623481412249245568002508381426688195169244905862685332316652840375398507474435721825126216875847222689855653356494752503704483553822039480965536297462461247921400156158339818128370215230524199905422557225724103373430779948947964846778215729502925212503977324233196173822537277289980141303579918867741546459693832422882889153767834651881868154877617293942657291069841105469566114788500032654568651453512640089674290671652069500299671185719926075119022574695646221185060612266813169389719821028475523711815630044513640269331767535332448562740605295260108246116731879665703954287650641545009601714456117550037159086136597085200004684734255850289973471558163612318742125486185919182288288107595852493077172447281564545490351544359277458632452542671769323179017843523465073631447871465160490096683118304882270112265957305726391709201646098611017348407487638803794311273405961202584441955798453889620559776332807325210775915688467313304380743780165488347498934868093292127154191624926598458101464172725282851876485647455032206460318378008373129423018463632137476838376527633707605633254531203070939650753439371078414308886332778266033452379288734132973891162868047115161545403884768859274561543711096295875844197143287907984620208761147889338504265703670033299620919719545349930334309499454550796283368120322081693818362335712573968205055120530209999090680825357318093483351080881713877654148593761570796935781185824635900208500852992347404824504026011877438219277220917733260136937849689490808817590898424579140966065995808517401853534510298137273187083794862799051167843884401203945468350294327711563302374189369059862889043932166358826692511367859868752876833129511236494298563789391031124575640807721621070510493754280874700826855975796584005123260418426523215111218070505603238855347815953089078101072505494762114268156251638666212657598554648078252521531212373819043164202999151213032982742486399275811623814374931799902431253055817176319033911978876184740951632724598371145072872292427136057786842962137477548254880145312331071114706463123249436009967028324862847260651586964102404446674240453347268480093958819452876762915530623188670119556015198731242895225794076831921016258781790751597456981164071590836593178658097454833738341014054854630001016767717438676230287478236953353383709395586863672381018892030977372953441481743334090700558197919629001984684779514380470075549130126982901841988724896415503522630087041511825798409190765094665624276281067399958277581178209178403438898527945114117251850209903570336002250871189394780533344426297233174250305486739409406681218677160569061550970609095629350604315994161646986565843959185010521615773464054000340711027571156598196676489829908874164877964846790350155180110317786352337423173670176003468316760749432767408294898348473892432121103995680013679640440155763084918927584452913759248682413878558353398491262988221582176958934443511934063240407914517567964401425082906672634137994844654383215311604079761491016798270703273892654542144643317802013554358957202170102115578224776419868572016254055229421016164081488607784462304705376292418672545295521801298074001914409405941456935224523676519953540512440382647451518730650534193324416702765144332349047806239845237637370789643216870848786876111837012940473916466646002334373198809149267410337008877435621525337768430761689147580017119847556192390499404557919197474710429197304134954447534925416554055694683730342426598607450388502655783099773195792558275833748511894480959152470233102792149377396017137493743550679227600193153965337438056083139903713557450695188024490568655875472911655241213188462670840891733983566371053514905383942363956083699960916846318655264659525410488194879297798570903407046769175374888947032497435070500962336464515945313803044963650823982328332857516054140495689630187782675403900142272519533127103059886590154575402753449818034232779853171932330882921478147537198035539836796064728935245052130317442986343848902386138174340659557761107881281167839639017306207606659603833223341794331589980711142905787609271052074714289498093585431346247907394516600384501849829514132596585625210843037696736743890492201307118418341669096727029069815053438815627916866087811250868332636908705198320462615263483517308254826749591485128870521587956179513760999052696977077686593340941417443409657305440188469611588860696322771525002846975091523161696484990264164316662203045070963828759925062403371989131532942377312499272345690691627221976705869755050045687331954648581705195363235157689937116524956048665908650717704691223441677917425713071080643656426393157587723271841071532168043634055314058107415146120912949227666579884702342576290458833561485000067227551534197452364882960368899692428958879093274857122899635727716353772455126010587945500636163598815545388527658246966975641836627925123135243162079700826540743840774651245279153483200250729967103665501172432791284172852470220535544698257456517355773762587479877182415016591944115547757963989859620673529201863366321992023430982493776346251033785143299606790178442528166874684658764212210810983431963054987131146629308582197154846897550688101384291765509841569309386103695488489288716739900212392511646652869287110695985562200304300331423170027758253514954324478985706357821368982759370702601542016843635664257069857119224673167780244873646211017421764254966197313997827276937303168170479524051855014196683767482004493308206627841393247869970569304975709080108627317377833913711005913419291204858553778375329951017041288445645037313979406878507434103899859281509068021544246398280995456563684104410907414860733989854016478240924971120638398007818770502357674464599531620586348503206390988169398349615825508987795915367752973167341498722226918768435844481069726734718464022689649074293744912058743615826774669244906824208441984580968544350237386177093119196748221405212246645623631080776058965684664226267234017510809050938656761860240083197044130047832610859949832650692172865677372389517119103523382334154236100772558030559241316767812589091655595116449664749985699096916583249636892599930598288467941443604515547304735850092116933566554695224322998563112681556789611573290380687548279457454620267614113140222842265221357116069919554516045778048814367468979335336768969250621881476518082187386020026644897164333176818669070867157864971272106065622114851023727226635679398633941926675230631227356169425159465315567565650476942017804496783967153077552524976681474812362389802904929267123043887739740907978214707804758946183957665915207553275013239396041454934960885480671735900988807918577686119365561240270180540469036304879054239493781681836231927451935551110659734468150764234100686047457062233225736731780551299427866403814021591500174404850291151990803919819531745692932787274689650140397636507223631688854213860332918867753844229406885956103885433608285729233793072857085135392649318370042947567428381138408490011723089057127571048921630510714388716688244217912994286251761217349666647443041633378487771950014504928707702128200137435718988359459946654839085615826764234667124119591973531234743495256608351146317746536080851142481789819778604002753481889812770025354577443459558126325257097889588145472222483561315517461342997528975942340106248707560546577407612715944792947698853384575541833209165160116218721897318598752078388308153828803279600064237941698867735451376662219834141448709044578274858649693789202403435810930412949918072321113263170428317696608579736262865293496211031285702317113950692813476890332749603274492759700507177385380541131534839721852053551609123755222684164613105575044708615711756977540489603658723511574141992505804074066982302328855755627812790038728022218419931466590671878471758897669737387071693790989633258818783002446799483218707034896466970629621903011355516440595443218226137638834950613248009773490277534820648347768948797701520392880257126783625414029310695982429965466512434722382819024943585817590773207975552741433104611122614195988885609158708701872056882430162640719957114755501908738350462506153674563228068581146975489149363859519774524667793276394917180391524383472537721876749455119728257136712050291089846787861833543302922575384869327502189043812170472425344467322322426631653229843603671364194188267710804654641372338502441872401519176188063233006116467023058851316476439803057457904321769274340797987885474901700646997746561930536268501250242995567784495136974200457235135941209603718838476485858868188944186710613592851616526406208821864496145538951803144764982808504404689128035108626877972756010861854537478912650918435735587621241496643842089803133932211274992396080215368504858392731983598249571316422949535814810486977230961527485276413068324609090288628049508819853201033988417740563504225210031029313205646049023723161059366832946168816895805074981132787246782389652875335276796661506205161250810780121696696148106622984541645663574547404043436827708620226648634530224205666247162545113063345111377781639705847828982882390254948391613447192354494506266831016939298034557498019630003034480694965724838045806077535428858750955869849813114886449358290329584591316696522608385814238525938077022652661178070372861967991788640811608196813670752221509130020262925510096042786097173541562322322614275337829749295170169787919024211901350462984217025901997338010770561094703773699261169475922355328334987390022511234720168876213677380615128850983371713077191609879042024422247825485855698631449457538655307729683421062551935192467600721763538982649093537665856984930073173208142350787591901539743813493228468467671646863471883276283928489915041749386728587843997915156233900035911455192587307246269737171141852877072074688133692712205750327957593614932776113635232732818121736412495664067389817111962675712347650080737275450223527767276358633048311545468459212994197178480457769640248980848462173521627217818141368152581638492461534173492332117308125381756565122184504789170360667206941210963774577731723229891619262778327838150158803012529265625576542298109149896352996201227035503944541576290213468491675087978651377449505928305980555171681814325109518928183862032520662408161475508803010954394705056499453598053623520033779048509253355941746453512093203681041770137987124973843490487060051521276531311730022860089480216466997449058442280970431818954072150931481401920561457813356169306682910030745097702446061190352529315598058877426464705223381256086375248626841639563498521707133708485358422719018936380972178984248558830460907115707843291523043090970795071529090630772673340536230174824209264551931769127560534186813060066522722387344391318311733134161127526032050080881538989319368951086916737928003808756135066419492027702459891557891260205958057708447720917484922572463200766192918218301958455378136782826920913457713700168897299487244217490930385223683254929316280499445768321078964104714672079005949192303838203639479686808982315074798310275254682224169334619789410836209654543268559259891882802609560865080737771713475077664059109476951699977826388663102559026454373577496337557823532991672565800799660656396605680610161646831611433796887454135165821380768686429313134807197081775539925069226127340666212788458706267496889547304199628735596322516635888564162261076346727924405933565597823823176069270885938552700217895694415267332758458057560418958989511209538470842329369581112312277295484788821328713170926284643637427485711794202105135464176974840100151474763715317731268943100154123205323447608721112531040550575876466233350898441999692239293040617655681079308230998758522610007005662504880268788123946143164419173263160146498103482525326900006249419168853929979151092248087320915920038755048713460984660791815757272705598781469633310427483584201475209876432643141693959011105627395836585138195677504655675391319281644553404271655697953043055840635155399317248852292044736845847326411720462288646298142350243493521379928426593663339414855146845164832667470000018469215431822438270149778244095549877718760609668170465348240834827598406177589821555073041248428570904113552151855428441999033146885404282966552905892326607898462067008871607479575457729332649214512796943951521037088756031343924502696877992170658436411856947904765605244984096741181433548113426465035463318317534509817841962559419889728968096118590913088028454665933695856491859790002624543820812276056787289878871567215015864088081977142444412042473471066315057865087756985908768314923823262748911355908805247165292650322128205204049223137627476226499346291674178999216804423040831073955931438750178829654085345835365044207724630889095053294319077691010939019960544098008270015062676448123829349110947980525081517245981991586958035006370820466839891297950460486455669793333067833317619022308736965271573695515217559841443460300561689545990914491610596552201760478082311975482187464672140227444758993884602523955058127565873141356164764916699587968133282190416060476225764152172979331435512024097518540651346167701635807216020870760458122492687368039324553603497884530662822645267530105837371422453830610010516251212571833148647634378377346376874375976136241473735154924234326175076589424158243329811555063207623785271621810333251544261627994988696695873582055545261391224397269248418201672261872206068348289446792392276428417187715310838231782470989580547468220345052585735277541047177989706496371245301489846733921303860618116814390758184927472866910785308677053138831865257729631450616475204982977228699544609728336949553730781554503645044353947597008325020703798143569353929680927690486158629351920634092011823051960447284506567152360812215091453893753663706683017658040941929933204443750074104501866596802799416167631233681655437298364791195210812226383866546117013759932718923663204249077267697323395620874726387627627821815516178268417625095952369770025060827650993117431581982036541813152187320616748577318717119617040359042161101165048084299064239667854780265712218509905292932542544638706653194585758668871277679723177150931500887500696059544103084991739959614482761744135254141751413059672190077944095377601550858737877386204314394455005617277326972563700714297103261101377066202181558465355183293174890331540537683295255254231874909837024229170879039355233961409195854140229949269057235063765974954291202154857848836743092600341950094412256172348632979281770315871848959666656899080414338195914821908862667618531122764647445993358061430398494107635564573043842087325007485282466500663635187229161199872459117502690892932478874748826730426393337642288794860299414390371922336400468910424765316511670677789472727863001909418272256198132823855492369652022452657676891182272292952549350813334558210527630769039180026708620021197221194425874642680710783005895128127396417571834788394565662023977864486751031803207314992480291182338468298688458623698791459291864449306159602590160426056668489022042751253839042035718929373488219045240264251119053459571328953342169878768292327481035665469100696753715520507902048803743888125345047471983492495577103283893438477410082971865516411472933910649892096844458733429568447879590718157370982499252271402607529341718344232558011518559701188714964804332519924643793880041965821658264793728507095166307658412587013247889075099788312922684083661176119590609306999846022118114961352303589632480748842218161196291242483985235187864249588348119820612404614884552040112243915908704593552606003151049018565948839253566213720429608700038334383520283009643151679557675049958976545827201169881740363563845540168838834225645464961888066483516097032978894309771406659530487792972639819289947770677048677526047413100777467656347347572395110233547558007926653653591088754660472860084466336057916702327541358111757672628482806027557134222383762343095896106648262155396099178435102164002627029665116762618104728683170748444839048528020136647894342425160435694238383251083520137811970259263362412704683749806433888747878952288068525814348433304484245982480177832189050006923143185671253879938241031258555824768802365390593724711320225399120301170943436117570572943662717485505751668699073979590050780903508951537474163489648234346839378091197148254570661509690123588751277337390871770943522593806749902669350571015279495426710592679867682071009960324410966450912264501816435879851890027839873205073490690700268123891235577285781605842076599500922415821284898451475579397309408847728623478308192669246830009905665377083259935276737046311907887490605821872522920338701826424820771592699161097129445084157059808248830955899174293715407062391076997961369982560067317472213165625648680796967676522513988609200711848743271635673461692214739071616557092007928794445930142800435644943584387549325566391100268109601793123904798889176250491430468631544017648535806876286746580221954766858806569293286503067151782963477983014111008269625998894001017691560655511719333107215906208015016608847678766421021026993531166420226388687548428933130039895968541304693602542232300723469217641901114988174046484047074704217500375889281686533962614707409330877429180324999322727374868801037462045381900708187552479584270437489751725037924017931631067117640397075153043268681369275175838748677338449867603049363283245011018044732355269868177358167940429164731083995339384089976082416101082138517038032312003585867373042808366138719459149191201274917706180737858653097301061638576350145408805308986046723092700204497324307753157456177495346287596746806227571513769611088248191922873784870738745840735161650053528250345418491370346748222014888314900354170648740209488325586131557762455195602335853886023404391925729983879607596701476667854957082110830419456046704097911368916469883828562067156677467137117787467638031158086747052539772733562408617060060132265919402433511495743132871527934169266950522011936349175751301970193054485566908309241175163629888523008202068072620896048853496471634432366186212989067305099455740113849014936802367088650919752818839466224131997950746438835678899587898267523497853148131088944575322070763285258403590263462723964842278041511481736985407864366424907590712077672982999684067839906947915920443236169721534176532624543255624024993778341028586352006912112696781014067698011217814895370349497256487343260011516685491778202498481108877062234670011646014329007352694991243664814812915041260669267314852522938169733600206388193059759697908079478604214398195648571983294878632311203990164593257205135206643278434677949367212876362639729236911677918394590369105886319766429097216699950505400611270009094381310239778886787864943977631241063841108529421228114458304283161415027202868013562334377843204591852082264020431007434666397199332537326227538960916173321133251510661605289528121016935667441268242471847416299326227952642899305774221797012535217463722577468597428413017332048513969480961006203074359824392887972334603665118508910335867256312403640968016582682831330836989001208014616940840246363469316092019495303578303426306889282608754734903473661314579306933182146959372258602363732219382300736435960849326308428132246201510196023034206531662377526494886691457652183151866861510592352466132267449008509520958815800279250367714717317480535322285410483491800549924881216150245443596583479307654478713955613489442356715086078983368508143400140035669949615717859930927436140518755007316708183635755693303496401215964425113965331752954767070268580668962307626240744436809366578865840992809442175406696917181343970253099432034468411418511809716676219136186611713862233114127368551019696542082824514336498718438556171170248497065735151369156098238884011109748525256958821428135741634989259594046241450062089136731765718345691916786790843449879500895880186159016010341331184336288239485091311643315236869082535344937959429869901140727165821157970957957747140570147037475271447023626177584185523197019247864447711488023682478176240243284076860210070470961809072609192451883754738308583938426284997044819702957281184221097031706813781401729600852654797836911670509274150961313420433553084079546368080313595172130010822623288359022410707420445214606963494846602456550061412173163645077420111000224610771216925627881146609430365483127153706571800229532874805485549122878492275352338526728106171241935138644193418229084329246516001145376546689055274133767897811574721784879849357901189578571483151423690283764219157280267892876420324934812023519263554708133535163583172817640993006857499684466007133228410177192360004604752380704409152702169889269977972451759633841040049359329140242259484074285969841412878093395330878455989693958892665071675122057230608991003279345112666239660911693072560949497346238438884080118102423615429644902847565255009714859409155151787035856755012879752515222356150691388012815412466459117604698301147023883242499697658539926486590447972257660701432745155841191387439669950587305356551181984612037894068331522279137861797400980771719167574557134220190086682759285027184378596837025386161559625717836163065036939219467398150987052548908906458665490431625394407951250100564866531624478546031844193671832531360451926023041745099308834816481235812173752914897527057143589260888900915479861410751072030597139162223294755740125515732718180432775894277895328223340971568917568268454604948145257722270835695511596240731536481651232239723078536500115364666945159718269803640371237362484351841919456167566741360671701517035531146535699941582189872402977814356417805840288746261689508848308751990247216105325716500008506239546485834989525741095735150789137501705864048105422745561641955995582707323697397173038211242866231896260901054829720119158438996935782773361388109598339162843145897683505919136783655973740703794554706697347607251293979693950588056382538126068160769823016510350193752855510469984724933886689932781377527747123579594078852567655043721410608154511607587412080381034537746138904508940426236871723446216709652597113325006493844863508410215979397739433393232526821703993644265004563800074136214594635999013115469088005176922654642289249238150907609716566527508025564073152498651386347221300280282346575783632944467359262541430842329495477830907837487978431051104408496575039374972991047388644369355282328066087507736923324049972097714681953799584172517119952319115246479752966745277907739728997255307548384911643508024554253091192379217984731838108304177925711718498008398378375765094410756228339904891795641985648414583440015063088706920694039734914034148111378735766332481908754179078580762220882542119823909206838115715192708541740744869431138798559989226449391624013582936767911592583728437559947183720769451360596738497692458908828022041405102129882565559675988358531564357732505104677392660202420679934761226440106065558650259293042815383149410516040103253892297502471400249719112849663988386130952540340061641261577691255998866032997798836204620908562858339890567975927547979699343126168854311456041248053828199581268944868512626633879494686122706334529654552840081384264863531118806417510234867148635854009771310151482835960317530297365942425315192793814170701545527701316528945704749205974328294258767743364145986842208505645995368836551556701080306448230411393896459867439065734598122000305645996854668179879408882261649695294371693792222202754089401669269889995893224579571583004160017794833412811795422636481006001749706370736893002912513763853007688829562357167933405748118376313675723809871755707308203865544704342999853830936766484867680106175504279115668522979825299251699353308484826044939465724437121117916284542760515546991933862068797982889626878996552252175884877333636640427402735578132535773426654400006164175385011684680691985313056658311888183231269649383964048151911991585799175309602601777512318687859858562736814294297258454369290104820145338848234453793746004812518880044758511071412753662929929977302921263687061270156208004580636992396790191168188174674703531883547021316198843511424618045499236241406546484032706648224180835170106134580490761536310367689956637282707552177699949110640199249070219548696612907569977965552364629613896141748308977525714512458325047761660929398016960899897972112940182859334770975154118290824168455679834737819622397235223540336805084516141741852489756209262312955037459268231343190116003437245614247149245394985842428070804941773953187067450688187518096895239731300626067950773704356287684278112533564908911899690297881503468792579358038269930903836639338476290100409596264694249951803192236250748714910405618040129832642986052290178683057100730515773294562010925171315126076583226776420916734387615727960956100420094044320350040834214723651790868468435919220935841980348474669004716808528880765770389634171589689217412922554060206464747614382164072072139847064484165437208289728591355451406045796509442644150798267557160866199962449234628234276550929257913016240600809751641890656619238606089544845660108466678830129630944389892362194963265340991620058514642863861272845564077161299683672488414662860805041419121361894780430300372405542196216038773734326337729099463105182171099625830531799415174076441268230413041612119479702128715471345016276319365879098232225267440454926786155145376766369648148872947974699607491617075794321585886781019842716329423977574650281590705851734293152111931362033803805497747793130791458334066102125304119062247826860780839658689051394763070604295856199919396714673415092765301988128594020279676758026838127926518621644069449832907713373819535355825200233284100573469882328917077047612481824198730743085863795358461302964663258717680727775931738611028178682782484227461714667330888048191207510497458349668179987024277087306049744088836539053480061129829177986544691861282751672162513826491663438441249153178965312724027150970670707445243680329693951258739612784632885895244426033854461792083901028706808531149169761359595769989050771925239629744884795339966091705334710391877082996679145393855893699806561608428784036937312983324127849597838405868755101657792907930890342092880012551664922015719130695078981117475520596149612743847938085312277285035377561619793002048138477575214816881389367488770380770436199174396708094405766809102461661828499494849240409406904824175581389202189367291794764478733290408468551847802581321968439990983505914243865455550488094766441114559409979878227961638512824767534126029072434558080134550831505171605591576621933655633178972525535342889466139989358278944975741090311536069312106701827091712697269316502839524262368974211262791785656241616922707472146530391913763429925683468643825761845436031834995208903745709306523650926620793225739206090815945927461142427048468730144323512027915743463748514070955375637302937187305946664538253583371335077109192347154159891462662876394506441678518899332972553430216114826240506823612658809501955132947891714730775003751728859953941957073868047301971588919814048633402455944535310962057782975454530845601958871561263577661756464793606264176133107289830556274926009254277368965980253993430891419046979663513507661925116441557203137461712327231782072203694215602908762757808972623285694908095015991021733518000800970092950841888789433189243368918939123050307452975922463787109846005676249699374676473120420560054013480455022054077071895763605972178270964725686626032906691888764623961745178820998194920012094902708449629670169921673272417318944184173797770312487765877440430113070491499861185421978985536976712905937774843576189981334067809998730717913816228761696226229815427743742742597614817016442734876761994695649313010303165484555670706531261239545520264736823276006713426645187492809028724919116013460952599676076425056145577987757801750007632393523910241507591891712992728563308490552472816851417266999203822531969018249382148057039884909738952020238638757194446385338530082516985552397680422601745052687390293364754304114401736641605052774406458095919595594591992911661533989200528191268170819315082071014462930286754601474902581778679387761074564620571730017732999793750131699699243227963862679228665308230250433502845120067691067956889942145209301992506983836944668448584145665594826649947625482710839021134591088758832485172951761432102792837780968783595757619834908137430327358745116346378502849610850159359490913230753053329998015141852598773614051668018440327598673741769000658601594361884165202875182330180651332501827149206460229318334842153696706537269286878949139268851635610002640174115608243000882098668237386883000876502099713037887047646456112660475400426014742996480728492202345751815203026816192273031143473891327416693633075443303767658497241353690468311902513627362930747316978638033321189015994388445821883888034074676427400071379274439298426623531603685997019408161967842501117457157700690497072598562625844779330287104148754442892283827813141224235290182712769810601206612229886099609408663937943312078647694203354410574896681812412922472673413323450038146891790163304767541992207943691914878102789852926491734714678424271110922519347145567722369608100056052227878226193278239065814542980949692238660580404004721397756295355403448052642772699793985823380437095532161633798785244017353613102068505479841606116379982611500532486713069173045312715998602698121109477288855586252665184181661610120553895146354434669495087371545901859383871977669619671958688208418661277707082682599228638387151856482780256584463848421998860971377590977969699470306889616237539872738940358976859898316013798639342604776806401743049885768355032230814937815159020635212949757181350831552930999708030967590584508683894758542650766133669535942780178110376025671939724415808305078834872032877896531597947140531742935578784127849146307642959911118186333641889687749664400646381736505793993837573665020891433834537509858437309610268973226547052395078098244527811233152134637010916431954478889275322856662291605678834082869635105297351293576715446150913881575828023584604102228593953392871567511662071226586821596368831096888550247167899548417993770826299430421511288289244749680571065465157126891189367706039453802962850484500571523188924712462289799267721814048394723416583862497193002843142367652925065271680824729952640855710473663626962108874819367558936528188361337501715799489334280044389796081167074978733063123117225437891237997405361045948652913535042075596351606603070612652341560965870273242046941595966386407816662828279013819336967602501752670484103740621982587858288144154523431149687502390536187468516623499779638234961911295334077499327529291951999346149801232321276828300034732869860886502941825505144520753233510975781182639538671009287387106616394892254126796885015646358340846285338554318997637796795446338471427039782686673177017144348840026583457799734831805897135768660006227152225586253718484896588737222826950590549476580429602055450248093935180166938483859268372589418261294666403618652773598459225758694701514530473572778229695890601330708552369798826638196224942671011754826505929557055264870320053575549538739594453017457941725051221101468035502035364567838773880779922735544932008878594619277962315585014421143489881870683981620930550750809388576112978066878388794712397434723232832635838123831307542773011939805046933977421027734973073917796864614354484048629239188079053619980865484242204839864694938947208882218689706043341746763920278290941430149461879839200587603550348376855601549699410976638504220650794655326365435507588611197499493472091318567899036947895505185560725288917877751311165632142969125795979491484216270794141495978485980559671280187217954421604874408761435049970690464841769847434285599105565599673843862624439818259432891816834039800359076241565404331394957017701457939655437183823796530777868149830094988341862986506745807106341583968457296971845475436656324108527953100933472476085724966812912696081954814317046919724851327978564004632838152299861509570427851876288892509685684726588150735364035507507617320040417312102072669805249313727699743683246420356545615849407385215152233457979538249388111172912451852342459712835331097596722118198577946809412017189244283320673258395654146717126999735420448966824414159290911032677571465062165661769431240125592127285793475393144878074575265182654699078743570410082757887065152980940180698791388646484461007954513324889826876470539582570761537546050536767100441534581023412148769457854806461902178169586973315250360623007795356766276054144659829873406209283916521960608471738331011697627872751511940847210659527025658925829513594025471490019495270908564349134193988968439703375718713514484355944235793235299027038486885234337618950115218698829918802014427854184221416145766010018891936910242476713887065958884716614989972139955226075643570510636723307485963421805592075435484291786033368636556507043861080553984498122560444637421973522781207518933636123299572100836607608149961689487133830398969403937432294326793266750141451517180965724205838374839741796063336555118231716103146051215566854911750018408397698582343362748843209249632796626144690327075959099937841285821818652901892857075152627391655633322221325187545200239898080154772775900982874613660111916088312870055537872293588585733158869592741040740526849117350878231100307086005874117503719293913911990766869719669684411394874495590616406086021289019829856706334685946304719237609283303116979963376838785403414228852472208827097946965859406973941668255040035892724296829960343724328745031847621320144048708322388759493226399723940568786205624088704407579089878756763968408797310894250157708906275663457664829686682452399867670972659919584540641831760627652040973910521651157169505778950286642787130560507353240467317213420840135474126367537550441544645650879457341461608242153178779281629478108067983740179047363143451442329691860025620668173804532540696227181184554884561524811254954439084066614174420447210508101923101723306146654796189986401840523097528574169992325998109932288149459768207661883251618389367253504712461391771272056558437648232068504629676495370499757879492682178577146846844687874123031649575616067527898566577092434406192326490507826926710154675384422049054452429964166153140726316078997204882038122240297561042901061773249558466800619517898169016009896999727678484517438051452884570694203107970001046825132680186186935597307032219948399559268554703544010007523818262621168102921088873272184676946597463600475313453467764470700980676993786019892099200843573892134663723309014485089434695981256127469077315446254280586835483974516058192573417955852102855808672623186071011396371518601505109011130751989405296796513724120798961341390149502975035546728209532685191638620262606116274125250449709731317283369794954906096981685580720532832651543038811631322133694118010396995863777848594902343781701128896527740630123297686708401026934818439224392552765873610473708581797515097942098038659192845109373710761183697982980886320576240634440059181411977736366477055786011595733089533973841371322251327173882849607325964064741397756239322937035486349298079952633451510109739082638692720111131220926199866428170407014160171542576741929021340371915878622459858812492425437924036371805886699801547038428042794290959827103185670877133947611417988750833980082218433412384553315243979317730472793387576484153347712248867719643665050869919341695610778310678960478857027682674904662090880789387674479505354651639608433044477168704146230075864057701899140568535630409687553204996121954856190633613722229726671155606174436797146205088093647477914286719199248059038530354965068156298797916757761135639964551365429723765278772757256171755575530520121418780448699993153553301166463434277746998072743266754801267355071929271247650923644356595227376742067434589711708309202272759411632407119760933488176455942705304914941257516418940659647454482092797302538361701570393148126174359147814822420480381065454484081918531161978773551934422622706652816923425422990317847132921316428772076808698591724141324637366835343754862456186216444535096973242289288828734017876096693014305096224975362750605255175216694184209063832792376513963174715485781333781300967917685745202812185573760164109526527973689039425384839067013108062018276507672433233607039048963199870629023790877129342017469754895537857535400924983732576681841624786406942909153612981429667333437288830014935643965796847498460248172725066084228971556894467574223176357897014534078348911411900039043660036972577282288390576717082847857399022919347044093081385529453939226601714162421712135606973778057555174384155835040086116539232999055119185293446681220997042000296492993883188175362901197880824759543392399104319235660093533288095660458731865360026745278723909625504071753385562842838657412934156565578157271627214874596351213523886683996170882314805011263156886894151166695976684963203329919914933161205608946967715781250393928122920739475375655530096762886352712819241252380667856599684175743853492261409260445460577782322209857499058134650626448332829261593708175230774608339792789646518150293991745259584964746261677297215255095678644057541742445859941011507849577062309562345485522793273892946663609578368915943792570659891689231826431777921110936256626406168898789195089320231654865551427214942610651689271295521872935687630154120977046416543862406178803363721460829857432336246571765497754841117615839240578103206118621501652364461253755267933656420831327992484076636849666094126435752455840626094435933241855438349486743387225129141896905042416021051801668168769019584961441186636201482884639945026846623249295247206439587471931933974581130873023305807308105835378876319301535900119315223670558337419108440367909419347784645243859611064326623690917860988016260781084500046552641797423625244013331661051126385843767621947410404789937560469805795676794499233601229777549070773959821237526984398961819324526830715012631313353700349034150240903676616629290288355742950037417190330003700270119302871472382668852153400372650171075550941182052108165067364349053106954227910430321592174343813521780630109254566066666405597736470977552587586940995951985435394151901533779334882402389748225320479643376730609176186921848088332190626660106124610897287091579293971726860906901639974956442685827195616430068358310496327794358094239317539796298387095808852216763828213208313994859133595211058377605302091919298573524774753008968676206570399939242896230477749202021942091909472641169641428257566983572292665604802167915243510183858693615101122655699940274426623523802858953459948642887701555075186840684902986636375236189701844448682334816805445537030308189913229365264652447804869648254820654966332868498516537835407096925181585905806252419651677650673454594433798889335742722474751878345540593170015368373198839291171540342775162465509168128581500342208860718308027611995091262361117343248340515617308045530309696673107545758788543278372846266988073195752314694247506245044965369054365481281784147185480952588684766411930874395102629821193585112841826072952099788369137429588760248211154426067684152158724328226372745182886143189698880937850929814935694111531345020516397708507796599557368732547528814057394870046100375024838044405877669162191326684956641838090978248519401022054418177407744310724856830206856477582702804930808685060946693830439828019881069706114596120239859330149953600066803329026844672502140937084184885075550589970917922996155908298232955253320022083462666398622892596471750924499526040535107482766596946144197901600156855654896214224606721674281549530336278003749249150083853567040468353336984717538882047850916452607153692951592410023377188540962377503856763779983501056787708821714660996530093871432314233726103051636470046112835656561179954288948929489517341745847231542314866687761357407323455741401161156451473835026521815594677509057278916761529631128345519360044333774209517901216147920196522145523882586710759637557497946095904768985784788544421889167123623877388410345865233615728307099244951899630503968474343339964480712833543210332116703765047667166275712613255481284549136291918513586691076411347602288355243699211022352367945809703100363106044002675031053862629431776389756724025013851898739517529051507437209503747176776978137640840046828351275990953741956670574135576184079884152382893590877310910549855612286893733555077195210866703336945834940648688019862812723749191091680973503222664614531342031161581224475046356418316159133406357966198912790798490294162567046558801601058958916347602811985268764913055665972436923840654374592312410543103053080290329468877103426951121948314626696481813522370198588732434107545206987818794038415653088082816395392466740150918587791940437685405881830712621939622420458781841115733874163967361863691470888839300917189006958633668919661195467108777616832365609657514531863940394019856985212621661498932960048599466172940299606999378012840473948320393246210700109162272449000226918140129451633890948722646982249448918959451699397858039828806044221946515674697703573334773578144674101178568467216242401294582496945642650782747180120401873991051895120406968199574474923478717729502925838867604489943678940634342822759746019397185358298656462763148616744186737913958175742278491607797297226415330721845767209012851313797980537469963289796780310844278078425786809443053054827897047941748630238377185435734684759872483528926818226127516961037144347485325060444089723460831203339695448243782947223580872182884398021931718137640208798326422683055078472155669797990638226567386091414492137048726488453346400202608750166260377045310604960362787980594316198786092002520470767681405066310637226646035890508131763330555543979050073926236161135781303042724138803584208471323920889605898841253819377471637435121978608447645931858130395138837624508535719298516813065452885050382888894219947424903375078289867733333276616724303977856401514118513081743041144488498909848124716854309345862025612958157908185142695463124204463862451195038796879439552487760193682027562575899898238780806651564085599316643761269191507896480994096712841291283641772864973607723393793536862322885995234627225615620825170752426069634626524640404582186280304357625794452824096145695210097063672908926314019134246374170711553366318381133788539823306126240449490362528483986640866921115998754441401732049792735487551259100743132452298952362963761562900760780821953364485191174030547007004199631869050291388236803961229222426454244681816627268910481860958217810070178083592272563770163350141937013990278472254660421534896405750396427758469527592763430840255943623927725177083044370919565140491162264818680086055102981960962001171014321689956119225269057145360959124336771369180760720070169639730126599729633174740565908212721858396314506179691388207689452514087365377856637029670281019219743345303355639268717751407929544655537196640986773727036405737135351814838647665931369207956089726010099497858609374964867214563437711461854301195952696815960014723390776919264896971562658438826230493843153733552231550635368363740809642163383081846248835330528491235886528685669380644852313590733606758610770821465235748246255379288966298738566965967327570213240602077280146085970015224876364943496876349509665051965618986542687562939863754586967132858788651367468450541354953962630132321237310404701645517083690028756196116814791401608488097556877210912148112006629378838976766457019628421669590797827476935954206411132457541927371180195931355454679690316698541612885998494970798485547221403333938863045888267252196859096560787254482629604366430825592417355614425464259201569252727522384635923196546634238239309986391428121583151854984190463295121112803846297550638382351712612683800652767657402460962167738962834334047518914659115880083053384597305784448168778458402180544238960056376306966187600082177841081569871289954631341899351930416239830099589385448486147430406242543444747857952816756424106813031699298535799413000325914068372459859914624945355860813762084441208828625044034578413455412919195114978177397321454585595600226439455985532563212149760809979721522341213293656509639104050053719302778413139186538138679685152005303803872008570133421525545924938159388952809032662938984995716145584191147332384624648421151276816574167440429016844777492634007194816902567636831478633970065766264777987318334843948611903174475712378413996625635473007890484868159448179153532549593981996883207884468456902081771061289789749686366314688078639059631560335164714903350147969999620694832013611283425821050981975535888074274012807642805847527246085739878203198735006268122849480614775382008485946476882243765798967816851324796006176132570554825306823609050771907809328799761098271133749801060632545509513098744422647264484719442840888823268223967762662338711996164558815473441614364941794250525724132280880654299078330010286561664968733180461093145433419342839068012674667134661209829764110978935183808672054587577239597596780744333886179956478739952001334368222745010334045552265112929834399124355331146356342526866680462406995697699270298356626027847044069360843540902280598647197336110787700821541253638936584552973750079524450284940866463600896280654401994615320996618114650607768354355509515255032918860987770849009044890851720655077156198961343947348747834459854596643705907683261329745090360866053091752726370029292339938888698746032686183952044686502230137051312605294761746148823989735647081999183027702286314037382053292032170964968137513505441214372834103286437319080882444586227707286775554512681601161232875883864626891157838142692328359142735680850220183524200674237045789046364486078708021779490319581795619721774864841019469673155888748885758862958685067484904528637855212962093812317326622469240783276436425832131537174472954658178059589038073353912976562941129414332446964393821822684691436296675978664179301096955185815162466845352382923085274900896377871750026247690630316673143292502346243758995294084371152410764448488058774943788969052248807493408810466392782817643195092903797926323926895017345845550782010577486935841273422823971722283811963641115434270940664968449963788009224226741087316566113009851054227096569333837444735958844221395701954259965305734004117743443012777128581659289775099844908800065513266820550164159865415780017691284962175258966344396390418540657966336413094205950883755004633025361084626468293037800356478567941398323871863389089898668880258046246389367519478265828937973511750093692910608180588332318294302477320064789135288320848634126574118412184342110471410190156679580026710052890032653997365066900269075046185376568405166013977136317703832415385173280095922377588258949659426258675803297424151576145076584667471951518264386782244862970965310752619787926743355646247977188957230438219799986888594197217602294473092607980046844527320249127865159943289800142080936571715998983898402013013999642134406010145889887749946078336031783053809075748574241172002700999777584248234543237650389855095509926840877786068392663694391410184192167959716238074686093088473477776505890947654513055398288401150466207641677848139090433459414498682976850950762808067218957664767487611054411993275633751451906887135805831749836267661232775262585335542091823159648433188853161258168960114922281988303214983886105662749336704820891665906840972031531183993180697016012635166632029820687239803777077104170904098697842520762991309359300853437937508491996670622237624757806920834178445359893896611651761748681664961958232138580571279527500973673707617237042973007304268209292414807702811147710200613716986991470496279640836110054672568427255007065558166366546685105091514578280994667482320023982520558794498433089091856232015621102056840912817537035213620372739539955433452100703089114097893262150910023335659699377748013391468513695921461306537680880033333269120157142150173798662270293853184229784521268211938687306339728778508616291319728575896835354112260381407844106182584558049847838334665328390075994683013026044060426234314725676558948686530702524309353498946450633347491650120457018813873029992768011989193632986801523378977619563367190895255021369350125065202645243883833038896023829712480078368543709940130295743718933604651319584295123195637648929389796615959751728488408579482538098110155673708578116586100330642155785528136098129162684075301270168749954741230004697405158155962907399371924230952971570324803523321692683217706021198930386098156764928936601862630305359163621351025557977187991058214139576538657862215407391955097532301030663057053012466253440427292362930141345668689049157393859947776193248410286706784799066486995996405925103997618344077047008396624758310482554860420533982904143355673063862395282670947556723342179848862977319889532633977148258622705512343087251001132453954947656067700957463182727272225907288937483289387425934568804086175399783659945557762083258310484542212228982815262886247632665636969908774429207452174241379151356041443628845375824251670764056524432932677044550732801855401048718310083115229083595887962840153742671391718509428773556991319870602984657655225673361450113803301722848469156833088311545823194382812154331837138788269073008234495040437051780825700068112836073832190649901350668939712974538162395339379442160701499942832053235289724372538241371369804833670232183578672673313707779064579317768620923425873403224254543065473669335719128308800072523063519746975642483185888672602120641009222539488868597176200824263503355947022008185231629439160530513248380700285835218141616144279570844759774782454238612177212594597016422806921746423382850783337416557045612107459080155312661790850645185475921867637327079029867043640869507819677848199787827861028120318834561323819807660225449978119240324078453994208448386147762894128706302569430059451393026404903278963961623462026124021729270312700082285731961289318681263214077042654371233400752330192155387231657368887027572047739378037342569997707179438683043459496740707808381335637595332208235467643977328072010349966315170368799412346026044528504582621926941386347960580688963033738848987784256230557937093033979334146113072804291836921110641289809655110181186121443937003534713914035222339386167347351902984591088245529030557207922984889159503986129340906758190149534202066054276992167995114829641665066645774968880286850269935350673180088342617491607597184229903200367466693095912683443815577383792733163816287347680716782699717051591313331122882145956073709429225401744991437323258010789999742497833283679247486733354028506272467169363974230273711197199723980378105724662797673707376821118003683894060874832756017528722913764376778375355318531970998177633631777283387294045135535847228256446497815136198801376878123354123663688901886000143712319648463563436663100715020300456029492479946123944906619782800034971006521555406845995855499570384821133257081246374982681284094982976406645347941990834287972843167636550836549356070292535492747329151210873029065008676651596882537682154301690681088760183524408456279210423755248219411784753731191259189103775687022746965973546245416573462362694690045677237953932681596113394857859034277448746827048278140383799432275059561579135618808555885933143066820898814775986027126889524525569336555161763927470545951715911734066334238711708950164725915136457896674062324720221593710473925914537399435163352607890759720888493695019575607355577485919084464332076517441225289857346270969389829684817674354989887436181844763331870262683180836673147065137167072214427116398678300509920876076875559765119818016477620579602817971974386467046229247820109033280286429985263972600800407713244238874271952401481485021538614488954569335203845381644166107218276560770806889769393301307071405818059519768161814587582632486537229883732804876837056597778365157941982365546438729943256630366676870228456289346866105809755961119236098157103977276226232786727405054402245419066279802896391558036657933216050197685152675912608090550784819186404998844199359718168821267004417562674031056716007841679013593724126821880117366392103535292358574753663011294958456875989195502810337933012490518226811044443312715123025680628952173743281956020155707837398333717388950474246013321431860389780247961149244830696156180635096965513774668808455169372465254958345518109778120035437466806231487653084770836269024736561493645646135377187853477864254536230363322655173823658323058925368753288552291667519445276371744882674228096296848879718190995364222008187874828099086487648222724991796504428173752171279522944689355884643692901322255693687770597418743728122657690263999648415972418173327562257413494664282827332989243097039282008023803560514873379057464638080162922327320501259759147495177570827137312204410300195429329943295985011215287326550342974827520442347292356026741860518079531787939067686280909056943908556243478583114067059917067256669313423344927630384399109037856668284579209866045690414338077991325388617502178228414787549959711039355726137916488541719530524694882998034644445429503022500081661737239483478485236801488551771382373365786035753374182764178279458140139929913434139375504678573677760150621304454385473078944446095603608153793737942074858935858044328294335282239216904945922872728752641288402690823768153898385781206249801591652958795010066256235390919233440765273026474059282993245901454635583800237741870876138170795576101990508703646765302049433629375912430222818016354022237418120056868034265609664152622023886624785335346757611344238771277601224077828629996494660335813321677548653877884677613198438190804849755704908275867923767504047533889228373558348436266025344299672708976105486190313393439394741009622427290027204348974805570910198314722005097541931117716615097355156052156781984784916333917993643869302300873232360431490083312772813688461322987336000830979232217247610868557876158279772488259636767909407572915262666184731313702888555391829513476553696074798416125361067561436760351027209264197132546997440352177972865504487053637931828397092081242825336274090937728898708080449970882977540298487904408459633852998968585816868131784593506278144659496255270390529834309926172501677718464442112029002641418265535884659278258085340016682109376310755079766868596835385120487708167876983495445706384838531686373560411324627796940640233121185182252942407322025834232177241863259708406455261280407306093636119286889076766104358458283447811312437947976124309078189906680290763679161676163972924693354761078563144810542040684331324791584593883323903311312303226925925418520447039171341435108502778968362973779122577174396853969012010108246597733790624789823881340136187301662358666763068629282703855340366949099377478133938781369541300444421340807493915621528850388929427088237678586123868837419923258817646596979742122680540394288765428715029287876690126667041521130446173952257425783404526615307415069123625996148713377319563919705492558080012058832482606025045823904332741829187922175765093642395375864620403716782921577129178270799102558702678512903120455833324721051293784235420251473453529410069175705636663905147311738862215857676259846028414216106194361673677005956813090045184475364329942870648858158726836102610988135788408091816217708766474389222988049178303151917052424951544640298059006997473921315008335867379486895054963437771141722729412952188535915708618350792457109753954972663150308958079682169059379947214891938389278864731705998323542181917143396556096795426829088543032996427896270893083745838384359953760555004725836145938637481023852522919767376635283553530426199359310058921857853116017310861257049265144346403284703325129217755880683117992413313123875507970301977370793858898877598877613621093576757241758116983472945407302590773639571863128926394128904370424268339867303672600663680127977493784179105341545055412581428723069715569219269155871996897942995855960129038352946123397324951431338038330880035493330653097527596210303729047690477090096910006625559206162603678282922211447474178951654902720477099887981945213861021280810563219179923184208359937110322591493607327916081391423363984743452368151875766349983558590800402932242454964485303563149891403247384020577401961711159806363320315503811757384224064228987866799806643322802843012222651734797216365637784638345192200306830484655255221675220903507873093903949311970748759300423776003954085904794871719350800496496035029749211611307795749447549291133001175119681077870514713431082797462251749258984445488021696545595945124300276168994666629528301901274449991898022868464152928804142999408845852292364427652490384801940019665339341669391359006494246650795882241068921619924382697774498082803219194975278842304755509764547847507891009906798485241705087724865676591210912366847532105781957113439091236880620279787668636229757258819883632848991894688145192582950429124420163563368720234865545935626842539648985010514504290962067926230832507181268171019945590739776321972858355140487312781732945315647406128857453348869322706859862032453908406223858004977760999317063814430223679702251853077388407745484996980552795732339456115522141561194760699609849269095568495072458843463916185086106239433689488018481617097013682363649621709003147979921782134526398332054963115778682540234545213265670653762497219105227054425176340682510181467733939078760574125991089934974786371523337962152929988594649884141653771563986269015627473573412712769732017860796983541998878699256259504802732311117038006266660472358421635873520029653809524430974149012304931543463681874528202639394287767515103130881647464352412237486970989884791445982727184245034013111688801447448016263614688227683804832775553126830409490903978000881705292908042690423796085562738308891649951020902955332209827503032843697832892566394508068473455001647949603481654565039763918681895451755007046905972621628569764740673942214346391361636870907076861805226295194763994136396864492568199227757086203457135509707966878082461763075929111443065891876246568587971772799845763055879380330771206064594598371882984902692889139915872989561390115345072619341572954255017754211271153439361171921991717043114181809504500656400356092963317950864913098612953261589313686496125481005931604952184105973349396571006164124396342873217071679108812445536450253565312391484936066933528861591922160652936662407002897904929133853056205003676277379858886186952739421089699679165749024164377788964934696664819388948090408215125336681193807158623017121532439745527160114403907271182148232764948690210628733057653739804174653036995677052541083732656967897985694214840961671863884626719305944950722691941442827198768692521845636346175876878461511203318756161846786429675819394642291952017550897673739110621634575625611999857415432999743388219678887680657412767117204224658639894561438295532029986007740702283608212460066091683883583582204932326608655569243747775333198289377429452969820823062423882325472177925079072486427997083317776213749039563108888445536297651604754796760815290444475757397206578814724258883528072689471764117681098251149870928955080311173722742303958752968992138277458037964411648838521956500654320240852673931300813583294414259382581645983797119794154598814562907003981713958725490209485757527474451349208377162370798078371579647765449112532631593190864304939939198516532922236672903050014729974177745017135649096357530737731218524556788022980622168742498451414107526763871637746991921454692530460081558339439001057613412069378082071859050703619423109700346052496816556995382577675549892106476565165928798994969501369121911882163248152373208612340268921734031369696931829960425691899086219156351892170902152016952266086573411316500510363154296909809451251727833164266780206455949843913632769502607595635459341320897567668512657444655942980365122853195898353291229058750048057094253831440848658890044283584973315997884375248021520881024087482752675501606749089620635122620550671589992060906253640930951561414008182268867884868145469246590476775054329794339905813892799750575182227976550798316190383119383332157201673755516317348269617424505690026142945336387392544679765088790042092824239346335231024151626285532929929937353133977973187192627694304548389012535773095717939573224864453947347120318619178245896157142855539840785673163852501461801478152344444134138940468999099048210078760687932338823608776009426537268382915643453614680752393876881074031969271876690632462198723952864275858720987392207056573200405550140780339893563123185373966722430147553842656543020189098074380126877791471492588911902672623235772802923952366212167833322680599765703702605035990458013623294822602705139976308684207187924472415143703704993823281958825066182209291767859218780008632651599253190556972223953818299976804917797757804760650301658840029024793997326854454396324413645591740514600022004210247208018545725544892122262459884639192386047022696582126557734386346884616460117120786705202330639434766580413251987057673040711573289832432598848964657601919466661106483101467410221916249374183797805291778774060222426796874716631853876787773953475369994324363093617864744935493666468544781625844406393401075574650521659014891019211695639900802926629319400794381923460456951997270107373382620397593272750880733412295249154981045408250930513062701403357446500224083416614951015030633713171010239795638405835924733322758424917657251160896951775262967837105498379439108667448398250503833665750009191497174595813707786850344558039923381486197223837316020007939055363879415613271218749758310490087776232102238109077223545864930916055714048661385618501469390947463454881241582100755379792233655012367152207223214647063882733840187122931940929017909173457726043786577246729371184775810141008789758442407447056259342924602238302482730683140557391027551384042351238972343896258272810028814958049742529668056516392717705787433047441322579570040183711721407814766808775934043123373442422088284637648645462711080915364499908968184374449077615142439293045222483020196133685029495079244199765546665579022650088445642743078602722173775197879221030562147522471849170851357991446826290490197355175288757725906211212060563744079716973326564301467975568788180273190574188247018529680772595214716933473365525127362700611426823099202525437265580172479297532724408056009931039652979807432887350106271159380010296119127108559918937604713142756771578463672983314518492915107814549606495773738859416004808372946587823011408162047131796236627440425304654303989592782952117512390939000247779170050721186167266309111828438711195807670890191315955063735429760438859795256452646776832276747657785554875360554707801110323275061688401074268902599878450754403826738834835162161575871367975530615704128968200795603137269150202671372011975432365457660447469872639156861419081454587572729833207628590497247280588748988208953665098251425569446331019593895625894055420682848037045186732463211596254350067611610790203703246767663964783276557009443536757217191777411022764019209361110887509446311335577684818347661158546674857502425264093639653288708579932339606247976489451296010600694049169467835722956279929989111973692636674955294912278660802040092978722877702677181790628720440016972153076745069726297674332082567630036336000781797700917794791952368996932346670550457618018327583352933569744496456063266910531212301570481144128544688649971515589711905016763152383981819843695560821074887833151360545670009775955535127762562434561484799374819681924543315987972749781907355506381144177581824386688533809717856784491205810893911184465695630880494814755767026955882751063615793981675707764087947735908762706564451390925048417575808934566366888589114196241465773627807306118033215123774842119080651676028245707510103975710003017735638987310220311270560628249692169282918509223140123776909346642174125138176804394144594676733244969340637782241233464230316484612700456522058248140002528510181124885394318961695360089881012342592028907262529017951107998937004002667210399412632454573642179258278410262946572133829787427226005980227164243871862803593113736469569698865533671371678555536525852771275850229405945477076059640014642969315632074565258511484195023393638465430504282148996144303500029075297364433508629706827105879763688067833599234512633745259447796271349439081502008207500805823910313532017772145326904636910614227005040971491983246597232884490035179299658960319141630732622746313305238997165635031611192557815666516975683337433635208282602269420920075483739037902066747963036171670988069553578878922745313421897385153194149812666462551755291383461362977278690421179670888257286430126826701042255847576825966306937742540554728871734513654370634576396240988409058569353357415762203331854694707193083520714468748119243204257216021681996203086561047764092610561675233963824080564031406780662659760057351062025351993624133406613061311947712782573359025382070326974135147016822559386602107674800007390380439053696722284373199262619431786241258468255771439453676722362013995717515861299794606688544005310686390583242438848779517838264812330709984172150990486623900399033423224897957743191528343509593811738471309582704493277557721798415213476896579146146805337746096329274936187611227211016888954388789501689438520493842835937172100003892624253201180518042623794892447631144392017312674729313661274405949567318606841981036381277505818448193650453630196328793523813035553407988497507397332711108255446920523470996681632891918656351507471138812804926996391778985485822335743511038748721056176916314777776319224596268095133180914243858361350820025750296735583638999097617416299429599577536684871545567009254734952814139981496721481332741277255622021659095529781326555647291372810271540271618361258824679004132370162760008613630121655559785467147945315457150531816890859097335516031513789559689624553167983748311339606155033065240494815158724395789779003625211143838859283007800353736822262101149435549365253927870606425100266699880540601376900648094603574988614010469333702170115231047440939064209334936194697509688605943073384341053304531401932619999731524562938745516022402412522585553126975436139268922303085539702546504922162242239155910850064812614301763540080257158499428503187199801924385985656840683510098070929228730340036793590046435245369911890693483002878215178841287755705512948374838720150934144843177116744039956887519486559784624130287826193413835686723367520071516547155103417682189370329047747510803728652149279371121026359392889120855285351581838959230727587808384449112586394777499754215202250941960396945349760640905689512890308065308277693926852352585661132627265763563014900984822698246267255159768196794224607245769460505369482607823503678604485807488759654020566708148775947284973500775455381846329622649683260665706669518803172103137147231992689872603743959914946143121092742481549207151746096627432227395503374316607802318509690329465892280450548406074611466658413355610085561322922452028976588572139021956131271881176930983042940444111999085384046205136183909493591560536722533922670807726838179585150120319554983827328841208697761700462768993542437603173339001590512063980577558484682922624328083972326881634394354698578382140360082448359685624112638737920224629771439438305101469027154127512397296471541053961097959807697255779678717210920080698883393985392338139572907021348629007235835449483474791396636941406449314697335968155863868759217571349317848556300530207862168086347754655510259471744234015573800147908033942060231168118516500338781120046715147703664603035033960282278259954361584778975530328130626565551968427924279281955521470530741757726852733159492390372606649899443125861451791032022203733389908933653029566820579617518441607417642713022845553433609382760801461033305040137780891799926088743462517305708723667038766772463231767175572353953599115720895870460124769279738570682596181437036495269691791494424657829643235482208966663012122263130619859833052036609673232316395164719371304721491580179206168034923459044372386955321089276935836980516005907146814936926916081625679016185344894110092804018965020229353817940726876605338459169099618040781129476811426344934933167488999922820556127377224539432448982319580451712946605358444053597628195250570973644741732998663911294196664048184311771422494933101742554106171678139208462074679249422043778047476349016626513666086904288494196659397771961849944776257664498695031688576509711712748860877771138210380658451258473373670046148348784666953697151888591586645427450191671480058850946632093564928559346139757605468695671675095079292744471150206673330781929102687131652618714746620284750342175652201490584087148686519335107870298298352739870402564123402438786250022039088451859076627379528989609892709425961491665508913028624652316057618123036561048231404735013781027148977020114774375810666314974241288395352674819885548163219509966983544627087937202740136297861852097864884050036179091945141332562228225462538324491064079552729919851287024109444659373157300001268943321419761788611933552664576805306502819353851600345749479099811727104794425712839122375226089701167354379771197378822912939770730863549948822379133565956641317131660769460651774156727850893118009748030402309512478670139003479903254057259816001992281740616211771648285278053706472375617558440527492945014156267406840917550408614511792757484358044395573268750777440367452388984609536443409634308688589899527759512191201156644375951769650017182361227286806583305214744967573902199645853364138814335679304286441516872072572197284951440847053728866378608118859349196252907827743298260107826456129228336122732232376840187001219659986883148976169631621804770509341607495452488169824524405603619089557827924652731901200230650539308012049410500312342098849079367482247285683985315502239648935988415646551626330870483850541785872883161761607235187479785329189873380690050338460961759873858832358178036602361480960253410019915856301389699435869915192767806800232795068090967019660409373432776771370910467223142609187226989775301784335986761020036020763055664953194935422307365599789103046871527028253241280364359028921629972614571031063411954368439340648533092742902535591919833014902024269807363998760532362062116731265432367214064824771798916072106003936876348063271159267946935638618035412920064439655605992452222648586419927774171803444691938660381666478850247659087100362159688482954597544997379114688392519575748958547539062533442724453142932005819191015400264638527050759858842592818225306866534872638360973129241762104029197991728466422157921185688236326718295835747524932481298797437599785144237477807269637086707746818592587809058977428396093542962226562361891637443412681879422208952348286576139129946344270192914450135355210688871866688859842049378285434537371769583790663503373438574934728615212548627248323112378867251103268286705220816857995221718906536419695218976083939792991656026799416105116915569703000165316945121239371201190904691104356303137078331412997071899365811524150814232237131711722199860691003519170494492536858024189911874070203413708130024217934478434390174737979181104764313670422695612604950515220736601467699422612321506361138197170249736968622115276722789560371912749106964129942445639823373126964436867246696666793515014667120430302273600721417787672951923242947754859077419873384215160883379933299035253347061277692038488270047095663883831775829704281282242230244908783239001386945395565567987520821180338887572874176268540993869238409988153812425457273315788574344365106369575446551724583604520371762194805187253447139051539062927470750767302208390258549972638858431613536722100932579330929720817674913365986276190967296669806693166795574424611023838289382143368253824513998905447310986990662635113247771599505537350820058757715523067324852957494475799516162826776268555720398085105829705073661150108722149394535265156457203774196747354815030350111705987434561976268095673842052860039746052358436314491003430582119833592521269786048655360369561936501859588675894427645992340216113873253912117213880423932367372471162128259398752118740909726777676949420753767213875666619806619227319162035499092977963235882048076920662565832802871609701043564521183728945464098460507979876195251152477904007753202478641228357678293615820219240899157862896121922503074077112557311587160519453113744098058176064637389655416494040160880277577129614662542837100779482115366794105152565048297389822623292002805709683941329057037418724130763982574296067227744273313997391613627330117808034352631201271222147609874966136139906290144162133378706237299975444126684728886972660611048569269298692279917503376807893832393415241000303396642060433159146779291425437853678031331448133977842071400282204031463765532016312365303853530465941815991508158746391926953745288704832120632523223853029367350633941127477375704084221828790045316575713686441184264598520954436114913275228337041234166824636854481606703853395069615591020777620649174557178232441903290028059492409867449179604569109512266913455369892334355902894525949061780245215529206773422622232531306221344516659339968669953792843495960776315508920178163730273027986136486580519410817068700060295783989536406056161296122414872315689457182663957181044350225041548626879562037305496767491047960729674795425549854779991792151238433589843081337242698321464966807510410247209742642477993506250274634199135447851083103461319123145780545425806545225669763429023536384271993825930627461618068489337264698452070801569387118628254795536646026781743409243170393360059234424121693884090162830182945767721675934166265850075574274049007921122998720851682480335281780697931805862064265697313834012743585724061058725091522762018339631693940825801459559871990456963881704758585680995165469904256906792963013771288950702797168196002948064838223705951763216263557825921744805091782770311480599574087746257004781680235989883928040839995123733966410203030241110709937916342614937212410288795268537404307805872969896624519030115057927885786032704323118378612973143426436260407630738532333216988693310778700712344790038460626910811739716101418617132226764160408443524177762110219127287532903423402289307946922752344478981336700663603048480767616327067015183711103441764979819016561700207520208354382694656688874371771126156828897915765172915432935698440711086139558572088428441755835259052962749729912447825548260465835412444956803226809999797740575769161277411351370887277756437899605679525858106567983083909306918100145964098631778512498153562178741894927273404620392935498963775142161027004469510658151754373495400932951983868720189063302683375957242120453599487826744617730960548034232640273491202649957671403410742482267181096358489951800315607781147113081533376834903022282830695551364584278207221959258343806332356390613048921896388973586888932157445781018632402751353846024467080928549646344837689872537150409457609333890590675677123685767760395430079374836255744949210216377857601202707145123729330186637792126016099911992092262392463781447625737275441873411858409620983957019699285785726113910375979190499866714973200542235662980797225791475646213077382354194324127479007210600892486588202925509650361005872550009387850165824796511558152625349968152177340558527679434980005983569841474910840139331901624856778212527917975881111185232230489666487426612338618056796875266898740300333212796448587505617932821601579776671773515151560380131588532117857745724463041427654620925025020931449867437259103862318183042710362468910517246347434716559379848842236228659898403026239524205957091548462919458476125657753491548909251122801370286363646188021351596701020040157713144480883743450619384996951632777156220428915333706780554330005956702175086245821381454684099835881093123371581960152480630539566131323608801515900806822969256812706862992312800377900203150276829209308678760672900240658834446920280775215134106967110634450632096841349647323182048878783894644742055350771849647304227997660340304031456047256069963525962500890519059175900461852679156436667667430525760062641285617171242908296733632518597154154855465062292066226747332262416904795127078169957371898953279343729320178629045628625281983287581041896554093870147648833846055417126609299366919377347960620212005632240089884499785703768648299497779853345675860095003833304030310533670303528684857314424777564950835940658662494288357166638567566270131095046835685738603501209894131650769600796436278679354651518300991040783745608847442445589365614315766404158932606170393980871325264848359202942601231124799597666981119515585809648865990965282975395315331602410375751542163917330410531512402003736707992420958382421625522853545370814530176153569846735073950465872596185320462550527497771304486184390686877099605836885661731508872050513582836872048883413976760262273422675688133402340906422330636927421212955588143030911690076789208898779862786680260329533312528241298785220161112917528701980569677286405768464856855795732947840689326520320420276529127773238567347626242002369389625146694260950583208945056737211971522342589292764149995270951254172494926803923270088645489178308332355120079453250570853587609735665917960370094016924398932876091882485814849424805916962219049208486968551588917667230017659852055231944152765021476883683742108358378419532882565746021699524155715112245550551396492622100148845456747290989904647912462873229512386175438449137444559256728829446704349822176864933396778880225085410528027546450333499678218949377772667892255172113438939133814595735468480831445515592386904852650127170566638605092553596018033125783243743711824791229985038888635642354435267038422023098274720433038680504027746555644028497744117044945796261826960706921223713689576887760254140877534609767098165071598874534294128354902115891553741464395115597505940720845203802065293560503009007301408884389697876956205315640670104605962841691728579179079864105392378787524134834381995005109782572011561234543185977752509147272203820937862812872987721138568812136545278973402144137698731927092173288725110045110506191862498910244208363443189525667195378419041060282426511090577733925848861429977914535699084763328310489589714362042897521718439436875209174773285870081090182458575424159650142227562062841108036642177196308040349235915689871818816856275745805586954903657945769334278776873116237571301194938055393666542635736390801402590951718444584432434071527288836175493923016492153546817930100865731798742436944094231647098686148185152620644190394672490492814883091074247445454598079885254097253691850151186853366757696566650499178464909363828488919262833354424454519193689939097170333782489175987526660650178594131678651970455171468577976986744001889415981635499989837675519333344478863262905458561885002858771459138015425577628640781395878896950549593820519353067458925562252639264659381318256537143121930880636172105037585116932478388440518811186442844899304319812681108901193191294432416914454352378363766482570767472261038209400763919664529630548221315073498278635650048355182905386149454258224736562875070052663481105245471716253083218741319135054240634946327998417793824091045669660369701010289408949701726356395773315768876335771206110062500487624544398550229655533810656664720868776084890138315861752104489087321912043568891915721136272115086642131164320240316369508146892967029277554995855026660919175169222092224345101481553888623109157013030953496252594867700567834399907671582375748337220775988357139010001505105137170070311604036625878929678102890668403274470598746123623409482574921175156086391584776924019034335928656022229098738052310121213207691374337279824897619912572571474272221669258732622399350765162324788572273127807250607397856073331911271764428064288892383980135921194486656446355220818036530099832841437649001392297422231067155041802494960696454256347443169051658699026061129450646416002156196124207660441185725796711248312464381144804130708084468061066720202447843725312925439415170189052802760934764290710986769234287516103940477475299584582012194590193462597566496296849191425197833893198780428991145008184615107935724334420308911016499108555296433309261685361672750893739594586842995226759694757296603844979749260159513451418118663141753885541978918826865466018438074801835316447938766866702258821550245140848126947126654307312978340156068732554209024863629896968140082197758987775241991830906146777909812375749213234415882798103952784511466308912096892944489274306797273107911403559346033538126160528990148141538734403887838356650800715425568258341243891995819008104232869383223781177649019058861675229742849849164710547693862625498774077383337679617923148684832007581039462300914452888264417048280325664793354370049589224604878575115403954215297590120297986310488998280761846214703545225173592931752496665473653967587293105361394966014492993069145184954717693630504605214248918302505853953265671926188339082517535932158491720020179770282856061205474724515507360254984231925176321332323337633284066625359673246868543787695423840175274891639881517422584468489666797760131642432606703268958494622748538173680244933019266365383594405709856879343622086512939729831286467952199826693988657370960138481393730397450791495266573854657643595616357335291907626868632975096285778518355590961462743920137364811618467019535992702456948983087880656740608758172477710501809658763361432601095604355840708963127442866745219143918958833796843053242128114971847838164559730185287816892543458969198119820551176549955884534128458618808521560170142900587807871016060824361832641988812820472728364323128794978704164879738852105480789279936985361995266568820587349373453003822020823879234882631846228646857478838563192648095133941179878946429963451527314930547067472986869427305754692054084616690861076953584239397984704562316881494528888547848367814437812788237900863102882973872371652222699270455990763719250571925130179992507800678555058860341371762655018598137791735999757321867450658944110565757867554213666392914282472869923357178360029132460269990909615843413069504236674155940341354281096052390691177468697005866073183521126320035016921779823501862472859861297752774565216216106701178313461796831753856886206038117786763903863262185189623873438256735102298129093409721520309280442711377533139339498073484602016297672956068508090811763908048666519422323551321215473738766494933479880889569654744033349916812223823864519918120842663639817658006533545742234838147491519258310231254642342693104277557701027683313856419084577069673374995781480203308461413854955451095209582687405619225707836220412816574724647363939872381440068025656469881024002108828082171281583885177577436020201600486524163157423179583291107625720495732254660707556423241421720601920032173119381372487038048960297449664030564693425183280490147603370321487988925917169773358822003268606207470506505971987456762708470176280815030198314900323823259411550385803097900685571856146151753443078855135091115587460343931337783351199731642615511028464018767992561035219912578448627474115497225809225478950611615539535201630249026416123948211419658465721928512915072918749956957294802739321368581769599238367012154202597911021418912784594025339584329651214509528177763022977903713369365437790767796459968154085442378049666683694958396105662442650711311739097811259723847131028425184712425249734717823666134624718094050334106053242767270750171788922249184696981514562965788790877818360637693486998731573010625027908392861780686536333316802522026271148257029208190718492094771156951229345943909586577505831826725545674824846966876898306521962779293866548491631578837471295538464931117519118472111705931929851678935435998020244137213784815084098791296473941848372319826351024913679970204587961588792256544544407731587286661958893014167612185057690662945687900366289957580380696512199982424257479096981765183572002138722121891042238778978026705456726233556548167838559741761595303403478577154933128415750460391556718122043302697258167637624416191387494140665999403626846682392168376438215522088535584131638979072093125894814345560081772743362823445576502878368684098912678424156727003817124944461540552558555702867689471916699405269646857036831202720545088610625501304424836746844704353940020007977267628466990700846025574562571224353296389181525411993928396009551733542841144160793313721388710777919219311231539702296287020863787566858907182916492736778499331147425423851437603339261349728120526316107846672195075256584801728190424789363633928969465566183734020104147196106536868045773921662275677732483284929620193073612725894371143698008599017860127484338180958844141745039917134645781153068351542386317368829445147217574685605383902562860629811904333675533459359978079009523359215974632707728633068210994692895934161795311369541842511216320009542595693790698322292859810837875800081050673857765719244433515445132909190847376076265265911918672015737788361804361198221526012233602702357886990851547165468615805826663781246274840289931337677595427867912647136354576073994138238151414806174913991069994572824133938607948924897427586594441929993194901981989987227556617613225172224560785333315420090992112515535509144685121034092939245541209379732689973504024678691395673143077446654822521264869318447925142893075660155177649440781413545450762555179209037935115189759482596946856159581896509290703801947002378937867481415508368387047868573789644262476594684323310379345167171493304154262411613239423388038030325935470194064590207071362774139790579765198485905052346272401076796815485395635101312446657332389692017835536909698006695520691359914391140114741179893865207594776437181939784457447933995593109985899448885778686598598258741410056452750637167461868002864192331985664259974421567692374065598897897173046202565415410047818562269342511848386962755554979664812748438616266676034488925302352152717720962544947035289416180786407741433971084536255354734202851443873379140182672173428591764413933387778726680721552780266995761762934736697525081050421534412046429167646012215080284504444312769593636106831538021587050231670079835868273416899456559122871123428403817105697202790080608409180741583400982482546892176471850312551733511628339999172051152840813626374115250903731467347018012892777858491518922853919425488594254642741083684556720692826864478861395492441052708562707411575109958205787575522839370861503415470464075601356904442633219102639244658738167414130925404346462828888469497083314090040764340148374675097476860700709114506433537143938559473328649020934470649677000391854046492290264615933459310668527128983396809930735911783497299958270205966945154767109903206327818200508419723988315324902765965239957478342947473909527670515303421958509390503282793434012566705321513294455846754090898066569196957945865106370412191621854790545760209771061611571943146489574961200956309934444624309732719392653625282567972078003842871310459850517372147400939290953971361602775558292771837788468434997760912623670188931769165119071920030666351523195104923279059483812517389099303004123441422938702004149295843777313800766186003009682924400610300071257192779767507130181771635406596812813752234543220095436294426940032591614815283651087444108348391187357294850220873629007416423686148197455514801942137120777279125143930016191489420018387157146972337241579866381478444826291026481009711526290480748262019009037211170515392090119363607792717441532694555780111640775380234791291410868313063389587812931058915200540107665783363518895375375242054102173251084070500685480074579112052550881415143007401793133426579458785969257308654493606198969237682403917327507498825531267004324844712714934984988862062260193542490067513897023464618284381571404951956084963261596395835637099544097705859826108729062061483275328061291408340897602290894395554348038529198220709431705545333334138126870821280790130357419397877213023826504395056884652698660380370973351362206555935636254441669417051609922174498854974279482229158260178411523227661320367069522209695238461996244150514681009345240845556650466148478339461920985764077064375144424180719807284913679597383876702620022957168650032001548722270910412954986343756791460145660679544128065208302387030999909471907047651497015240339958687862074156248016416656417866730353181225072688903082861815663258259957589493574397755302099157991079245225537693972511211531606119901292511583132201616276788068274778946711478638047738191581119190149523540494218952441195267303997095644299388898630700801449170390433005784328993099932939758359507549939692553270749861723523806912914511935792753684713724484472941492122044316653599551097773964100222742776835926664367049036621152188747836631881037307700345068380578664463240292325442034562528355085585731721587269289928926143018306698474032435804927360440095827215660065376071524167092955454634522653313395814203862685273392199869373766364778664591989069215263163983552379721224736919392468816015821420663975264279920235550446219428174410910167688174232789036940952383104095695206252920968509773114766336522480289368326299805458836673630748787518391725077579721576291293542604148463695581899356473332929648887432011402380337300019424962841884044970961846762788905672594750363805264411953719372371913647440997804361792609129587104666574500265103482042851766716479726269478564028530296380734814098403506041499856867659715571782808767962226392212337001451200633769167839441403338199282506125939295628953886987129742138139151259374475844972602830556434442050580346287274884916406807826705607121648680944782081659911077260795844383797749431771006201965910771988514600841855139775368870056272968851588792962105786296099758376333477613673664268264252847801853206583405313293070120111333072757867584819555534890527475624681814978221639007149954541711571531883811212449631461262440527571631453739872260169416429947251993702023929510087048634636760662312476092384451979389899579423676490619976185410328886919090502873911191575418127070177536206621452797954162924047264439672060408507872895995561235115925214611357014031442089484927735271746835964638661428256198408704566975724683854938354125094749500923933713637894915643837529015512734078348157459845470050282463374245624579467979929395704564353411661379352353445116748654610872879270194126350867841384301031745480386027078470524929909998923458861349187632637005261373479275940577387948711306110359959420660147686524297176884738284676326568083234949692490916188447397812159699634261082049168339324938007605467164037203603570760942612005957622114244404240825624447142897738148465911814916022005428896782936290116789376172481668625255897488940136606638990656957058828894835183110943861417942396739506626881992365666320910005873546365180458486718797817626769900582212585581170535534564825509754830257104248350828853838510924458098061339274780783036327621146232571342248661925298519605871686618561309648128200097213026517705875753895648921227472925578268639288958306391730118568655183709863754942496405244790694602022243933838974771905517524587779273106629102790816817174200575903031407828203378933115912031266149167887254760481302134783583748336069272597863750755542351407924223968184299473973137512042741998718379385073648258319361501667403035440131046372201842983366726757463826746155119761940583253527713090253415821219794937309372388189880665393089382222980044487119269076503216431862663203956782278173296008691483081495140293807052654136663692547557885951849147330494226160396307966602654274912200929445430627599204968341228296478266696426013025722541403104662788893097692173044645493905165502441550928994593888360649572405832630528146311030135974018609442759390566528682950544244410301505623455732213820740664088934727214943480557675420005104101555704501849813658576899682304380101977225911285611527233438155015085447175185160025744018818031130507959431241001371449207429635454863364970903777856311910337784063920054316043125928152766291828413132320477496091395175657842684090330696058073573143567584843353492948017573327640766913950304496897744069859732212818740545246134532025376546194909140565606855153687821894447839106008171720361356230823315092358948738914370419568308652453816039441972072317838155843384181941774714202912316864943486007525430353738269853673262001985435172659561037332588786281762010560103605548204734178710961318256604771863102197852740185430400767549412926724376799276002408485623883437220231474560197646796401631639325242176851113308434625839919426796705628822102139349750358681023740281378696417454396030457921730736487501543034829309771987635487529981154312294133638470508967084287650418071542160646940012702761648406788917689143966587986800844963845066508589161578099961568870768643259325085247536814647517894971882052505871256316988547870156990918373299358979322406762127733078297992165400893161487980952245653511266134806461383879803767929617753639362111753393147248823308051184636695235637038438665200846280687799115608564395350947200793442255292415843005559558880297064790658047057290154190890535284437673149571952952397148058558003302325391443205869098882180886582529484132679067307723563941154254437863447652166619837446073065718064197256608976465149845166380570191291182580896883957277801641581205814854326505318310049882869388552944213935985605376931103185436818791537481147725206029398403381892858426615457692071282072886359182778086122358218464117698028379116252673216800675974603744807635500931848725813694781618065826251184163665935593591694977936026370594383841744608343847801645735941036829152629282408299176313641928544423252823518070592483160697446419286435643448665561415485239672268786815626321888062223502545233861618379962921943957661888977772083036819458375333430443163678853552028783052084588319123370639863293386237160588663901967912487839654228402339497347125806389585185263431092844144550628713973701974929811098217332909792109565360688414458376838671778093138518868845544439772814703318747389641133642803406725912360506382621356196366339753874258565220053631612884724525631296529817679160366433042810824411027967619372464801433049261683183964055693535371562439240447977745759356978496690092413107160212996741987706580286881256402723075958400335516015167001569293405599744851705529000791058418205002396996024990117837604110789152591629305211099788837255793827751639609270469090642064037916558734449635863139741070770965735894484157414908893720516501774897640784605148266634057295618535631545820638075855247760316223260893307443296346540132279597320662529721141228036633971377112474533105776269293932360089019478263174110027430372490656703869050199000457601019129634415715248612714435234943566052673398749671370741814972008654196267754916374104348376776387227878474681382812795070859435261851358420872874285924033463344557790078339359724893189258100019011871083109134890737872614633886805049005879535727437557580332301468376458165369320272465882796465324142935790755704548298158339387453705442701528567765931704075844234571967330698231632382216549203138802673226356824744147478652237865550113750225958146361378819587755127056324859939850674118991833261088024666738867366479813408753839500087253365925893097614781261930252558275715450416045809030507518927022659938237452743082821493830588411229959121361140314670283463569148322137357899901780096448697817768500421057478629424252549445144768257045650172606973094648011447633715293130520838859048603512176414898198990623014158320270977904893811039856712229048437433945359333611237747113833860928533552250916638197049861324816253902994959306153030028167011884487191867984304773673256629168316190566444825101584831842989490048625706812353682346997960951737707411653921012975184153026815482333266850560031983186797932278353162713212808666613314130839435533879148392766754813271795834286885805314472123101344723387458735711356031566809752392138753737848083222350177871256932306236151280416907630050422271228911753237337878296674375732509586104416433070378939674821954892962856582737862055385120928376618044180020714554465535417998198353803470200903179969940297577551939266025700477676297441719719016696031231278737808352469075337875764104616379006251918452198244578224247856548178098129385832097199618255123758380823570959359795811407925371202977388786575361277848950679147970122957031675672305123411743179411625696545258072621800488638455270993343396813779718919164726253243966007346851912842927998961749405230573375524441016329362925662797499606408941849961453997041213348640935926722632543686374972963745081422312649289550955343986222423797421988693170490417405154870097165717177706546346898860279563281381358624912956215581975188740532993305430800186060345025153909238257896550070553886227844562290651638229814408483055114189405630036865004199467420075386871434263924236984006554077523724632826410330985427226820193387745981043679695559044558396865899436690373424513857178342860890548462367184628738296964417089030257591366945757495028409375569777600439430119841307940642923361756883585710739514817556995902523453539438933786293497067378917614638277211117924421398976902287723668403165880371614070427910739953754644029392880726768340827167250407810853412660238687534866330882707121042998650856976305882086456684784332361972556440093201125696730034151439425423421217054301288163923771967434494432927542414876098328429820903001980107867855453453195801161947859434920533490386701116087667927134987691307414074868370422397443453024575572387156689862096924502316936032685179852723637860097124685133851331508220614909148405662486955439474084408288613635676018999944283078954970925154786698954895084650568419858520014980270487532614737028754997780199388039154977354766579480766934866332129709337702472764819796818840198980966497736445831597112266577767228702508814156688829412803280038292051431784005405672849560257080868369411739824202293271496544133609850403135610413393698512303742027274143299577791107289154450348177210835352488351781010267540115433631308209102975012151507673617279229968959160906955341116207749052100525131958712584502390713954806616280726148023619069112313777391117502759662748085990577893187863132157251112989445493811110123251776762748982137327294307962676295646055289849344878106577794291382633653675737522134089465196449116071278391295354649983833002151026342024786883170618504352236695870521077169459574718596848759552457293145245949355185941041017973859008072786025159246422260988483857124329291578117985289630441069982051781572066533205179559455497795974777831855274531525609594734701974369244773483509868114713321899418894583657955501729222205682240012193694877566610650024211895022604951479529655713758280498140266205466897289382403747247137022328308544075218586275066121265261450685828262572608065769233260514035263988926099904156220032483516440765143895990721306080819757106897470909769498464693549396460473950991856926774301810954424377453003179148508570575581403248086777077814500933186377461012385104162649524781522499399332887485750857002087379386395453798973487586389946746082301914320241893384948810702821025594809311977422733131244447830991019379338520897907410497638985690567471016404737804156968884723077477215638807529235312194191071253265077470638227294834804514079922603663640515796225679909184838715165670975935131719537404469589369969377005617843308057458868877495892400996828819118027925936729870604565330950219294530429236284052447632850963071044215539072663188243173715313823600604736698855289439147789134589156666656209337180444489932062038144559835106965574107412454731868894717345238909107358440038008222348897051846628573303877980183008260871641006272770130708068053834608508356617119008263045701621210323420321204957028927338494578032606511205436057767472008850788766905628454773338830654666999703121866470402236965303398088226544332267401721388216047661219361753325035929262551332425909617858167467639519385421023972142084582976246621144881831015914611525511637939397674979469174305760411425485363557143183595046080552269831854738222652009994950260525096978393945278227302137201958306953265188925728259298203013749187418404436327233733134069574265760075247498713553707730019788837841280692840481165864464366998427805531086076380193901627461247404034146114872961978372302750104552133614743143128491251091847604892216391858854063746756928003585202561101285901395380733348109137259618448518385182857607045398381473061302887479093739164773967610746644932950642718546534090248125037592042207765374910183104433056122404120001213239497061956056678146310210215221883217334368282491314824375788738604009262265516484402248103605130614721607265866852726584364040302220745621820941732807866160658641000240440776499524441875074969202602635980866956147437501292054960248739464005397341266438467108454528924511639785553876012140981126571556396029406912214949756516998897854683242523252866695085641194577683796127503565764427648562789624027033901289549466321307780367191036466180230977290331572414687394996566778384474185879671920582569958516010417354924052691285449859829796141103576936715471028857002534365164465421333712470470286913614972874817254102394247874803714433991973249859538078183561532825680005340882895803916777391622286938755531781609900100911896289257124788624379175027042093246321199840071401926845505343936461577266459702478358415217966124259171545357029500157504544607868207289677875004313616743672152030915189820662025390134079199651603253278665055822880831005485891834429940452086219557892545175711480354243603078320883002485196780509606777739942467886115564335390883172745470529749341599900614397437183937841885556051575858506298158038358165560917848474973538306231489228839623659515778852057939471163962128091385305852814845183213522165101951741131211454621413357579211012017157427969579674762374651738539933178755397605957108640534035185668012588817718486060540597031335671988901846692459035093445367410466575887584011975854835220984236278465678481752401640606822763103018443870406320443914031145635113262053464642449723544312856749120154427355883717151721848858492161272078882197418268738317514029543303618534864209853804137301617942939961751143081312793259831394557702410345873780906350891409243850704868814563409088728368094798024288798872472853472041862193529868299228474408932346334007309261715596609739302621005997264942644132028145642597766459062954910816551984910658514094169521392731909277482815958943837103979561254434804930131450293847186988890348235360387626999549194801599987014644668006659083755560931484645165117774892152222192481312031476007381575587562372529856798192835990976899425738648473905047834013117731765004208585356514400884569834750569155889248255587782445092729180751608549324545944061632227611458417363456489912300277769985653077440959622483444955373155364920139606113705877140567765777573758598380520305348702005295068528203224032796945596512121687792967963997479193383368074822557542002188305756372093051086349335920818460898274343198950519542972084485769444130135173688135114604388638365919593535954087243997565881783835679596012750807158993063495113587515111122699378340608533988268889843584151881364028482493224737151238172974355030821101286333409316200096522520550963719294124317660851914884023782236387869369153206199613029255323954618466836121815823078864058710139914779138258812972369569319605120153446115997557473321401802241374533975221236479282098401085944579514319726333526252426245806410417029251500447598452811211258080462413424613986113904891291805979970850386403924151788839903500112774975610202324207015247287590961993751723933445706620667178754710603887049439103091247625879800137886041185004704976416928402552759693151989451130545718845304012874116173409231722142862874454432717007417550135931702205396975402468707069955111103448609938163521567182775596740800179085144414306753283969593167163521810988129570405316174908719374906416796272845690680504066807455052677232626115766179753312924436239406714814948192165016390437021111630461092459578592835914219882631012533114331651556440717398437891512600322365447017157459774880683862815958548557720493225391446921883866516110991546055582388698892281451606350321527964249385602367551511889383611048701890534674615620919536239199909561815105843076369537889183227189387544405944654229539221961255582838811323804053591157016979524671807918470758812244828969924559027326928743554457736126374068257566677978240246658994837467425623836248735944020262462877160156542806480517707441802577040248271152638034433879183249071809678745590958717619098659547824810918747931078776373203790332292806679031182825752416095903227900631799007106460458385200972741211542252414493234654773437514380881170658164110561906860821282746897172005925063534789370112959279810982966363908881824078300467922912826798228149330085325650225624129938834692064188622570284239667022722708144492013887708484627519700340738629125271764293853377673356226222161761744046902886827566375759296250224580643047362834141554728172029914238088943681569391457359687294657265508996925940841388811769370005229633427135611786454049620301258694562710091067747453173851766278206873224335216708005140573269460358344693952587715127762864683419982333310314968154161581676182932645530602412223203484084120664652665024658479967186507120633856001121800148385408292636863702849896605964067328563484946526406072259950003742203190494661378000052198285589431167211072408822130440678258302836543575188173396891820456449612333932924767048566499396775465155353769810919173358443103793252988752269424261090818430383988812300580504330640075122465892729547115591294778944294088850274768383355050162778588152369339098908271228170568712934250742103518501730037554963162831838740569394768562993520075097163880183284313389962073608554735684392108889686322615868207160390293900421841025137993771636088160342205678041809322899426247298854791314467293840264049174075487979431046305120093461738438155688217765207927394379622697552250071535264739721384202068349771335190929531830535991258747633770165095041644368901731577514883700781434990228781669904683726183358738297171298378688437604986390552408383481613222617908986689147793272911666414919277610488847442978047586768260287177866885296573976204089389273200356878877222315373139791379454526855774750373029899241320237389510245358227155097360555474549103237978209964241168474510250643646059844482303860033538716952064614809016509353516985152669809200739468300831477975054674783673265814287121763346172645385500304932781285638162631167920997357027867795511046451672027084147994933964386141445214162110311814565822292579604272760839440313570747502712052851399971782881198332803471491575147043254520165215999114905831054399341493441353567865642585236903647993824903501950075196205711482210547169073478867042392647290599180352212756248659402315355196423392761331199979066573393062245170064494785440392724520999860617032818805067891351043588045262246254096132445365654682994143677786726452629505069496551443178467505023820676224326570100779752564932397814329744156568077690074310531114458319912201322581978865033132524814463436163911288046153349317951130168554378031881008999288672359095930796624695865328645338848279956411527586974653442361408854585964756596317153487386686319017726549248810868942010348984346266822663373474094819051582041596727096440908702830169435123711144234566465431050385006369591930837455985167455826719282084020312805396199747339360335765185766190199492209762231955884997084538857602429741242189569433031990497392150577535887448202067781671149953901147852064536217540414366219380532760147355424549035015281133480801368299368525048020497720050591309314247186629668536639845715907986883647960110504438551483849798144267047512986787761536925993892404331862643212873403316763143170438205122848901927280821118010526259316103546855804717116635156632278253569862957645090493526004880804348239178528331574213884074724968362847499965290785170304249268328953389656911688992502713192134031809881851840868036972311418822163196730066416372103859475653159210330403611506644259004770724492547709993161870276517265543491715683123669387167771324347847023716730740275229830876718153444364302000144827245648958538299337670412846682382727931282887324066720231294905534862151750269237654516562741654026951003272074632744731520660399106811268124206153625462989400260397587278871295911972067191001303895476744609749374988087503767624720218499490328338477908271770983478261538237936716144585816541766821346864795761596872411091898904985026830744739038490518175321088008827820477327011887912341129652843408888399334657915548538358635481470626246612011293536405622944827644909938381333106105255124524249653400766076565566638365246757946412198683611848585592434118165528540040125795219588637495648777103072053953012734438804534726212324766279852720565538148113239361166430858040948750449715130235195197495293835002917700468310109989522758213898659006046783976299793155338743481812656641935579219957397315882208575097830426579194455427675556370142759124274400553597641166833785288537425923547630637374926784131267661379797727291160759661907328222926959881298947059267404799790045436707357044056048466093016716210472418947322991623964226144654118939874428073263665051453418581129195912959438569558196267078839354185669661458969818793615758268602452251010200202890792908569835676656035439936156409786787016456783912195304310794539392945856014288381476181719138619982911101965584172675183089577860521883688400898383300255572203945235023443384593977531550105348334081562984971660700414304862046522726833383783845291314449681472076156269349519464387774561937902562979761763796103915598186886345276571617287740804749069372447904724379482676172830258989464261060970370444108392417208154166563028809036765801951224314521227433752068486384098054175142863668702958552702622780213994687620984532773563563538111076882136494415657540914804085232628982783444780991811765421512435890651235546403706523189447837022245674346846316211901128145193666066459632199686342173898803144784511210719983386574626684075751450301022327752816753778618861192293020708314301810714428681289511482209088529007755535718988079746705342584576111011028013835878107277620360393828677535482341702460546617348245087208199024351289018362183061506305294010438959725515604293741419473521058270137293348814880596777798187784295242751400179403795147587532480098433933892559651459133346465019358313334729882706826999337898767001997456613347892301988066191517609078323490488831397115459600349622272648793280579655107253825802472444267327510494927992497898593545517065191888096050777024489804028094072298692694829330741967619364382949137905098716784303356155579505966016286278591003856947361021170200559374361360747871734559812776241321853625025692528264896171003160696310041380915505628229588345718265784360853466701973230330580962083077521678665940745434438211441036134872268391514441661175889130752290343738702015965017850157786687888481919044709937720380417287055968962173062644666225933418502285340447950978447008928154921854711328579225269983438689177597141615984583125159142055475673167096772058304094036809675537155314678383857692860468324731848620379963311955028327336741055352962556059931185052235636382535717358697248738813967341546861277705126433618423247509108810408948981900558069962585174793645359589566448813361570793075395339002240877521683449862685703750993876385340692430574150421343007889405233344165221898977071432224227141192707836013046676307316182052581653339627285623859768706784013105956727430937663430567882625638866949283555487838835680381180043169290413051929086538339153962268387826694833358038917728350445767927837799164556492565299588519660167584205979540712057699095844498137922590076742305335435584104758318083760099498222749342619719437965428204569293763340535550036545612622760952559099220674166005861684100590695232463444050634876641822844859942580142147291933958581120356294282192491498569229382867644553612932146578648538739470172439427343194802400814851271260458832938027407646413283721727501071373683897071304378577319725901761227156906559926876261338620400917796482549413175417950260995842477227963134602868502310360684491978375269577626525537286023624598266895522875313583352241300619889265850852016842918825787190936406142051059001102436329203591904097260020279325324094095410887220370738340011841814738892792240624508056992701184683966758511414593298016521027525016409284748094859170399257152088336489541132162378003074052990791656549672088717722617501600559772530584731959300959971259985607568503167341449057607851635617497732673607008213761544888975891457155819866161609537272110134779346626150570487268253623901784094314341186779334910473903842531727138147099680437887072913921810038664070470940345292835740857818682719484775211896827460434858463688021307920872460704258581237922409399769976250221129889976378857507706574927995973713173759432775646136520781740936427967724471512052806685832813561604083882975394225705779719331290563795557178461193233509622194931051156741581873851758239873858240839103848383474533727298442994819437547083888000102383364665024373607963608609108030084137158440282908127441649885512668095779412181289628012610521008725795662312882662064477757034715476658597173505034541060397772715284594347954429957049185778886962023822872809212135659288844743366165158521899808124209742979468336272309392169228549688227249438760973241185454924765511512142057662386564541074093334903620214951385308540635781380292673919588837591161664023723459938094557382149237995004793483283254936106610505869294058469911488589787296902619761453786870317076770254546525665815825850322617462670967221417923038428304692184607018254665611803210991051606610252682458772098994595479149740880218712832164436069830815701184088720225730106731187608745817938539336870009587672236472410276213265473450099111097596104676290363156219655807914215172530304976599104997588122907629049734998073945764977688614800870555785467168330519743609247336311382373348077868030252221133398993618429268522064105979012225547196900411295939877429046304891549380827878437298383779852068281838425311038786772410308742067039559818333447362518435992501590265440447850026089445814547530564986861492682574768999378140989970075937048205116432712916613162866387592719212388049987750082858029214780737932194537977673168394050766791476573848704245734056566662490383095066418759888213857997781316015596835649059832522859355743725961319104922781700106914375090775180617209626055421596540501014575590629428343115362463611596651212131855341435818025464876446611236253937194426985878605991117030669032324160507200830401937678368653898482326699603454671594721627917788666787944552057323453774834843953453267995291714614797886339344746360628183454332641613746132308664864446899789411688773794408667508213508417770755032640657655397215879806029898409472707548719051456628464118858680843264837209881150854019781079537268508160108406409704163933233307589440390469822831332485902312222681308745539754915413094528873834022576332252010970721476734267530038357289549236113081077711622473479135949572770009068178458921047700679046182830267626510406823562642223064007332548733495874948461209042110128664033863229859107908556015492816523418978937341275780938282176594971569292689769512756612695916638725144613980511450236294840201847502549295806304258475108142929981728220874547677399191291072730178526189040045871231741653000028485001482695170799024185515091559021985378078389121905799788986387609776776338171476337112531205880163613980457633897287238724772883509345738763043301528734834783973761532780538634494720880692417906265989908361794417774501813833748571561895566716295076676491393769433237719922701936945204883539379695150654597662388833742564632046566140985609324519023719584544530203016838421506818703995691782834826474597897221244949840021079046294671309319267364839095629475513658152158334167049224973699956639436943296075741739111241897637535300640830801653868150540937864046086945898126882324112798966333486453997953324358625549567279785150266897752151428742433859442675687414507828447693086195446737847027276505846487673291715578458416319499505131374876707063687427574120586041616970479364547366288895939979028047293581894197432603313318203598113123838731854763034024565822226975929007222657320412480980273127534870114559247488196576954191248911572034858121865397984496939438467742551836045559370448984912497742624429203119145235708378424050259446556930787154831937917028611850112864049225486372103681262404809232397178091238890002660852375001929514308026262135493853328119225785383126149994173371769942860146424783444697754352040193309111935613929799401063038750147332153133685551322365185361880062905444865571477571332500056852703036729453518076215885638442409477259181879493966872462223238830066281157544609869370108122482670344364821950404314292633625001012889485209500940998038069356245833498893956036518620606849500516618986614134876180057594578285144596373080941871692881102362660322231127865464030002744537328396635434889963759269421941241247126049466646668745204199882122280128161914473876487172526855494911860414258071543970576637914874322776455242394127929960467886704572465694477365085926166565930850697154399800962128639185055127262211916774543949562441812869490334775203879209535666346563214913730722125085556766578357214953195299486058189720363958176562882343730197628379279146668702006673833391568801629526644418200803221032245984097251296816321186612528796116127626158301162803808316328573410289965137544800753734830315401090627078927830002129369150421986367699269451471477454508417510554131558396771260932550851307899594524555158610264197846914079448104989340428378689469625284112633084388685329874679621764914669708107771299762149934007495937390446394221646401439892288000548248869568375401038197202595029840477906099201983806816343698118029698938852708706359783315405344880163863151072168747677842990820860474420310716474540049600686471728342104935723758995268155367403566723030119510495048421370477206331746577107868311566608952443104269930394046211005293064975229096067226872263238875004651425617217180188762118142878882354921783278648771511620442741069114663985521590519233793878289777687266209416798060607586922453039396049826098200962924367326851520798772601035385206586036497031547914356546780732480200210133432920776600512263860992805863159778788874824108408260554372961633235746251536111855187456285622820897903160226663580585472352388219169874157813568725487997528266311860969312837444649609506942305520575630759945448276202430505521798306847664619892704461091710824831682375006411393327533569352915725468217180327988594165181960326758904174127430199259982193088635384242291747143533597098864960890989064227434526968179531535023212697395311683461360727600896564448314628549020201649555251771080905928029498119629675151155997888365284103355976602865305469877439595240981361008822282850994196318157560687540093923610373698779246911363144001409362964846237790084779532256780422032408353094053522144411874724014724504545963058022036515882339990340048978592397100959217627541376660829239192758344798490973938853786654712518516912759792067211697645543701281954337851531441798087386415362013866333251669823599641982035452828254880800412321165446911664318170925166371433744214188774475730917671876245012340624800140192889156547078704219204620908036851996699388064865498338767528474344487554721044376910086783882940068264481624435254840956231221697485522261813923612184584161756846644181733010834006261300750129491994778032466417864085927058760525759758628656635047460665197583142859328676489829224072594007888674998862614459580919588655608606175534881724200527402294741470903182501743454722113188122521266090057145042282842996625619499909125658714081421079604354849277867666803858285931788347161259268110796086620290366398954968644227160202841988789768447283522431770704002708952958561028594921040491988783213422402007273626905589125154004558650937967358446405410321310307025484956154655597795081622835448631940104442897174338048102676821233278071524400315749021694903883651816031906492478430810049191570921260784230197160117215038826732675871935923890356091209610506971621118876466104914783932291875974838494439959335074411061489273811107769560235120679052649311367660059708255394368155868780728696691888341522129648392638217975773346135941531961138185086175661374789315856786232310328920399270549618291771174818805851578623929674880664861005487461996723646633300106087854663836074680925911277400985977914189581892125398857887602612761753325838025397106258542540046795890079988546573879788831261880068017903746020164820310170310631084194353011174342003420840331764815478045543584329685205619463141778625654691815620887512210302499951775440027963790772522585715299944411127473828214924122053859901474147399585234736950165965573726337074315746150699701249890099439664087331093482817548685397661329375164051070593119773922991633807369207117594594598587803600405413469584524050886376642026022493849719287677889830253466666646298747166847676443212902180053648651289175779693794322382192943138139111737205974405723811652183471854054182239144525050020477686430600239569951148942057221600973897129727193057935065083721540430793576878802161784054560244902233698391998793467569802601785962977084270527758434164474721349896940128833656351510224412991715584935388922324326920344065599874506912416705540008925203027937900296780799405663864264349852109245385586973446552042417302124407618740887466354272194679095421289211201876371596573653118786397611761448907643034350665351954002654028068280981571029975764252453449771498003220684614886279129063159107210891241053890518951892689294312186237105571209504721253734123696080970741516749465974464759389104725031067902939974587237989874483942122901227751182076334271080249559274936502373825010667358239237888000821177027629423860286430278680782025012703534226432684985727765332196528222930637563700017936319052549845176912636158115021694306108492128506830218934929763049282523830653759514288932665218180160077562379985131988332533123297583151684273598698828364601993658303086535272748098288824023162224228524685111590623816714281735494998878012465104429284045627253692262338844689160360676473914303463429137827947076272251234494517016727318022749823420325708558875997867825747542297378826875594974349202678584422725077861840013378879712353578413252840835873356695358951344774636396644013955690484022968381181824734074427288339971181363541328398480044607822718620840020403916491159226885954964859489819547422317962730634056191025437292936887492280135667994898138173542397183902620142645700988177047244368339294510836549105764351174326247604210317777876514662993644625985651740026453506667201687740157151856974281321101649831109684769363644779107462051636503514464509479326733612831863941195482123668249986852398041976428715267238923685423961368440578244803592022540702027277435984300830772042146620103193957216564320395027651063275787167354287173495085252700781897148224338265350393352024118655700610181760651811128178019874505486829677137915552608199169851621185785395154561480824600947395719994650205159488192242517217261673920415751395759867892474525248710701569044903408514987143141902658429239380161828072554850116535751956165158456904180353274314205784906131894784658439671479474403980458299358477521576274530320960405493483275897787972302255018833182827723481632183416641602139641345490381868435378613521391691322294551644825076555117493498699064296997396738408600637891288350709675789761611045103455694095448244461265925394935217062729824353767559072855027880483994272913486442077812044764034103844423447028096748095864611513879355219945739240116580012954977062662389879170401780221956288069503117997889258914206525198724439027211876330113524170605798696812086694956694375132213544484738489447908400031990271703514728528007070904999886076941268077408018597331872116384696217272166860817123212879480607909792765895278566581290925238664702366098470863147682920324950708530707342478729809343069515731478781219796592643096279525775460007817863629314589277118267661031493985227346530430281764264614156348831487090821820681780587502796923707256769895903693805427826518690273602659973118856996671391715148164461919763315087295486808927437279056034075549122578540300380625155478898057050082683353880717631478598105461928720823428397369798074244114670513151041947417775566998283923290017689715144517379630998130379163224249752462745921560686799514132653232262916873937532128270297802554664423347743961044854165340021110675247724185664484144635224495313299563236299385487314368599329243739158418326398858710423409945107345041722691304544797636247767906695273184092300413844464110089614042023333225230969734662218437995788117124880737425510556623156459486246920143538184197398924763047834319364108401319507581781492257993387856982582119060848426396741131886929099944463691081763879693331807310918848832040975228240697132812207048926192680819143623352654292932625214093091419496304108820742701303045346621440019338287270747712981461404474253243132372474098962872107941220152781801413913350152288378790332593431111953096522127316596997230308762227500832067361726106164689715049889525699888323720023010800413738683507219264086030898197059773981857259695034833145076465161953804280269844014699221088613500490939587138179421109144990550988123411499213232049484025851973199125424111935106234447403359758249075651213244319579437681536324467789626600003170585301559040412028085585684470545777232445027898154681677120844021572104783180347385114410657231157238832381212800763061347783028856433701737329875222331404664673204365728100007117993734906445759029406286407670769656212610943843147420286325010038947288270417224614225603713602012997539097575290814130870116462253926867029368267024393003645855838678689271356699765587706678098283210716502127129937256774594631783152958903012937563794783897304308134735692582724141105643042259703405504281213995830566701860114787331114627283483559627257249004017601266973759356804553054629613431447223095539916699419118353039984206457940717426521522277114995432554364676476137540580937116866390933881780754983616201125324437528262365184865258521756925303282895514490009869736374055708639709456092161566621384084551895432565014135524834775232434703688940482282468823735644810960767056175132750684371751928510680265416092766450642270364259626741842393814312392195177216563719059777462349225693577918446555958315395714512019002584582568968136615829802865940320390757164512184081991936624120993737018716719900417613166458812543329112509153825421260359178183703060294210693801213610576873277915832376437108529515707429423423945385552698986118440047382758088614137311924356463290060935733034487085535328833423939623557004727015906820001660946352229134187830729733674556121582176391897213463374237181452956334495544320839496319345161802028160895585098242272276442239112262896705436188128563986883786202427548062020523563835767134577297932041496453419554261600871068881594507363430128231940176271000700429642575567143197224324548915060162512955891281481530112722366472717456908653547856016105166370366337026584445283444314283862100108825166589787596368894003461701271499791008101311361491675913945701921363605887428149815774267560460201658099717019314612107387827055157471921876366235320489869322565004348281114237604963056983208480852128947977839882771719313738324641399146162788170738360301614253308634306532224501353726445907920864107595093651297089548186579106292628196127536973222634497868378011562865088209661873314236623935429940971920693258523885072615931924470413139141871347775853445164493331143852781867407282832706736225432448096945756536000933181536863132384175371399119351790586937131706345689415733997757515934815475864769229867837364343851267841382627344177650972460311309857089162716437821004582169287252225429380743036165048466220427156083610506043072756380379924792538566772838377619667682235460816280060185087044541357355079203829588874558182957820710876552229246217302322966759056094163427911100310982111326142149860735692171864980433683328426083778488106782281228442882398038365195416777602289778401591186013461802470211215002561959154550284805953773471329608770604863363830167134410463091627156623879259760515552187093216337539128741892601807686923389736982257634971095451191283923281423406961796072711369703895689655280446555359501961442300202760811153852594399558013925374419041379333557608140872078080295244413764385261442337503607204317146824014294296302761796951692378295958222715046429251145016966570678429111582380012503250297910412662946446501992848531570046395563158031560658795799281877397972604210349192569177801079690755986709455610142143640826219111415721624464808513041769795288391521957551312981379129140640882718643658676828521255560622289708098460170781554667848644006487079106944950636446220435563297583395307435835172331506067457427882377281309683733761308153730205192910525797217202144757082845724428017090128418832125378799698801179740435374561811708018932084559903754867002290820149587236032616646064648353247036543139675643284823853718974669341235221692105157489129286104712048373506754642698604202894320396870381181646330500770433411971998232375233959846695498781232144721530779776661915707273255509240123310130917345669507188509219408882427037157740289207213975454960251639920256539839094376014007419252977198310140683934599861952885001700515662844165343295443290863779301745242469797364513393075879211582880684831500065365125331652514736499581907991226761329161223099202581502643152442509123140715136467552715867558192507138138263064137209036540250434632754770587794234720034789562230483836892791896826125048289128828681791559308843697336010380890205047765270310271536260357531202618188193586844595824431280768128579115470386797393339381913200473702933475506710775215579591743576520766413494803274641611989864870449395232900228492191877484684504117548292529171467549976476217244902478056094830526543270953406175745715215137723565618890147243544956616620894649668755023819707401517486380423109734327102123308382927477207367182533356169494814458671599213240066892425120017153258780358377496865875713499169095964039692576833022305001921479622258303123485170575938589078651431064203405031298323466125402530130475304653205127928529839849293107558720005327519917381449380101008728775359945219396480161560602395405337847910894895531895398985567213224277256528208647585404485035266270057345798687045806285920712651519335236371732633455817042190460261265654192502379664103353958052203760627096307734325117353682582426679375856766157896618999637608460203166099476973893160039445070739354996069469426628672225414073225364808973108760605452577504826567082507575772834754029392556648654825260059797411818124983332897900667308314732740412072518577504885062182308260799181790542797706242916892377160252071699310072251952335608223692290766980189482199157762932931684688997951429852048519938220454671953260322857173054683613188559677708962169552539506193276159897020404761072789637511925297275703364747033400425739763076131844965243808476070550699610196527471405669107892120267186088579668356358610577175695187639865665322853555238157481779610635881340600402737623053690650284856648151828555322362528348182049806242108841188300089880325123877750547881979847606695950860905721033925705533200991449315037636338400721070261644866050717092789099400929135971882558879759904512636692385475933562482512974457886118844549112741246815241900714547326307010972903037964422519415721702812080435545532084227691101247051481171613884922928254930730641187796220636757906537724321086815380021395066296953201167342117186910997947913987538757207090542777146626744398217215132391707972500112169711630904672889546639444377568935931869001963822565401349254357250462825625079123991422646561586690489545408969165465933018036017225384477860911670954518506278632415105914566999622526985734605846342560489708116391511988447027454148327021802758525134814749920390063995322034871615840977035583012018856006536630173422221180875619737736661096875242459378733855624114476152225090301270525785540237416192706482130813964412741288603195839237055856444449888577089607608949964134081902751245059391480955810264812669337196139444304881307966552451172531958832258733436823187265647793260584050243386461765950489201931079407847409604157999848688430630006560811148660639160205433549298052689108549483126954831708492699999104162059001079203679888249549092701035653145786917127242272164633045122990220196057985852651102224553252839476951618254749626530264705424469220723917840699128481550628988252179905319404234344167262325793581508949774501689007646601153718881417341799737587431032272925674763889308315517948066473410056029160574824773496928781094881686494803382950639366619075718131953714240770613422268038372990195511153207828817259191048346672457923797851624570724707049461895438169698524490190717446212015566486026257178768758403979525887726842497582789050344245571524663102911199353984855402650882211779557958015547178116103526139892221775087909645802147329298499527115031314033618904907979076481500609704478405862517597046209328787395286570776946266246453124293541065365416619444058208051551870923047856955881627456521444454139513408134098510420189300645544618678420273150898033989848003641315852367111937755574697579806666004106750374604831802353743289411744275678706326117410166064830858199028229554054033106760354784166361080971772815618804821366627598242123043636210755021115269596226737952205628462516596459669712089928922002064415323604661369457246240015821436088231298876497209556668421068402293502829966724135614027362967317875755274769229310116330732241147189429987333606658898982101863720698624584912472539483923487988607052849248672294982307163985792403701751707732254754705575653261370916276786876041699896733872392833718970693452859375884641401845355314649859434173929542777866862897494994271574785072272014734267677445323466727131229818282208135320678577240708145436671850902323560242674733227762634996323976666484762541313533776839976520242955914705819675577629318162488555112963834296303764170965057174340041318142755413467429150105876360666745578710084472120131704978830920636218537690360717142059082913395527433024434349079073332068274135410586677941118549960038521169118730709506016150959641717809487407138799614948721043100285256181542070208207204904944221047108314078985444439155740229239270411648107516780886697474130561172662280689488333064384379168089809000425189410463105842431928866382514794972359073172464581196215325522597765960183447402298670044153308984197526777679076041451219300009861726714658846122048216065632869829862466969113746460726229136894866456819558135415712309854073912151672728439836193899431431699238195480193594863252871516996137861970385156312999190455116633054140701084619231172083639044150624364701404650164819592664383644748516849117643132447850908688967710562622423601001766751590176762976793615354811205732521666988409715892717768278167986445862380821736804466092237432715458889472913022984889509422626145122733034307622360021671739800272329618339100135911644624807674106227193088582581881278362748331875076876378231704949804237140873381248749471929798649406794403334572822629069579849623116345821101267616360103889410000242273213691536554185324697032045262851126710026378336425527746031365672773276982763479935148846106828241456887668304883215137830556631839285813884295494903635786762092750221132179651678347017124796575057064281875934007845617145592125075285603464234494805132148903166869095438795594742005732485523058325630636867587475070096470496855904612302940254619797626316912239614923761286993891502182315895513138487475635894117366849143886900478752665748532133199715874612886127684567759492339585774466193786920908038144855793848057893402523277931530486516435673800722864075918286969382447250241945086684408325240036483850299776778155746295139881274205324187728428259942296291164641728673078775541547025569972340380663858392987361104582221960666480322830117100567184615891832492050383962016306193843092242159546904714275576990412343416722029756890407043133805328144796589329415768945849164116718418121415456400306638078849089255372617045113130343031977129724142369741643017242513374707902190356771902900394507324205685276962893457004077535855366591408883065279186766044648296433446835027739226645981564846354615259785286448300174097728901477679370849756598279705945113997047007295411433633843182329178961111566586590151300903606928431432357304715085410602623210272086838800044445155073432562575773788625164622203746361113102593255047448933689449896345345756326863910219426945102785656368593870245954614406016266785165703604442438314829728787942341055613854536503481500745381452191637394056473882686519871195170039594730672036644591600811822529290470901822923983105634491205656696071287486793183554832924995540639577622354834026829768959367702446601558612342859760091638172055030516074075157151824935512110287569223953454326708864879702954643251879546763833670049542292987703743582443943361123174885762086331402790651342405538717591560132572185509295255903148695209564467119187494205255871716611189486653447810413573324632870437219678611928326357742224420145368779790065443462725076857937733763836301615400221990133342362149757819493503353773433174118369233097881886108318015174209772494968530077786690318849795339587491733517551029349723412957514751694710484739087506670313018438050978928958535464488562489016747847571822684761955337349324354196733459367792799175583745708903835112900945701448263503513341479858911279190705310821721888553990916851615969659491670497544279999213284719942238657143315516720408320313425989422310568658717150985123651453196400228849805998579829222766071808205066309544382534195900880667887370622428353771546064971185899546523233531311138888892491207616601510545968417970045653825120671853776037230234797340417182583150303862331989927154256622727155388614057276009505063151371840881644896811440595093247086612453163351672889996062792062728638171965691659626528334664375150388653708520530883638783553887895725044613279716183887417162843838976271828358264077034299229185981551928859288906042416649388940187529986624369464415687296773817647731930468837180498398594466408024167370357116707110975916787761208716120558294342571116947017812991514639054649680002279647141787465921634701564841185276243600011854817179166475601265440144567942190903299518681976655281850218995348301730234152355433647269938954305726259626925161346003185917883915375478929071777953926216689725933995356939272266608489447623565793367673933424671596357629164256352881547289044270928336065316395056225670396450057417707906175620070378164361809952548336410204501229386064808850914074788638960910848074990926886710826628247841434247502409929305129014845680258034502287142655479051594306345564844465680641503519218782998710517055383240372207929431057314433361462149057329123158777457660172187976497167726835557340942097170034152132659822583213095223968679302058598545868726482573127805340553437568095477476039543830931418216044850729161525297026006894968769265905259573523197643170643002116741157725922935736530794919543781265117088044369459954099882484341360961149332129071206787190227991845602766356425301142831551522052093163301633388720241343208968139108370818890775429969646037317714203447980388670112584382259708455167888914479510952679638020910500014176726250798759390361482377561969486509849488392574058320683899696105944403920702191728265687813048469698385874591283795120213959565962083562653075070118510976953102983768176255415284262234455469431634475997343129696420243073768811600391805118196229562098691489284484865666691275116847693968538995516579060183140314507783218312455794975911362727124125582099917706941961077106089024995236315500318817292694651337135237665650590174458667117095514301643044810413565107841782786351220351385935218282904134763084793093068253325548059998140266700716304979918070701177414930165014173668657437104224494882034413384690967513478873469787257993567505083389968106219687740190661494105935391149511200878534803347367910278480574210841078345517281472333946686745642758820787075642688073744038230200371859845847065577997827796284610773924317465406706253192654147085782964231296719238727355545335444584342604940932168982357884067134447507616111020247414328628682275660267275861123765812737992035228068773749587388639380721539231539460814438395128997198134225486527499368982157254959865490540055523960759952862556685185733603477863038917997813658407972425666920156537820022500045586546895149623724434084713652426098270768117408729759058546007912763362979641408750379386112487768361683176313662557531468549140699607764473277517817888974072592609516302548224307116031948828944576526048456582943690245717539214962622083805069257803658116591524850135752471604163839618528290002725958140484855874658658526294904604878063362751028897577439879284050582419626909636251116522560980406697305603623197085970068260871251276120632606488809084278947337617927457663425555003436703664752863601984465481325162562785417223444724849030241136146969787726846381987351576365534772270109453183476684011589495681412936213841859833333880143327240506597472791020705170491730887835818063106369328908489916291381690013760227882666968392499041094536498612034405172728221164026157060659795700798672296722012337225354113120614235008024490047767747814915729535393745141299428955457532228083694949944790059340082636876119521210529829578764277053634699701365673241140500042175415964130884743507401358047476460972389935390584872814283981557752823071111720681758303110282703130888736965446594997290578781954254018049854070752905674085538622761998768634637036723468594656965557869637151976019209553246575716542898091648195855718590961339047406431765186768386921440732757062102659013819557130658121957518173491442398289910022560264235625286223101481415360354113576620888610368237877862711839362745014273854337429556848258106085240328127711199463543148353797511944299453669181927063439162186952685335632109555058515481468156061656097716741521795188761128019993677605290919563991885917313096073158587249219026458946001228816108749066589388431614923305597868063141986224878212975558295055374250012515530757393033940918790875617916672362743231075350307439026982368392272232588463935537704759214798629674257649834437150943795222704278725676354650316741554259422538137671649656215161389740885072401710634423595046744936296513712574268219901307329476031591115280132432166307533616706698302256028794930265207943598077045936756502960423247064639570876228897995455992274045302251415897034315578602462236162110754814658523591663262417057478208514379127339649828020998117017825713304290588086278808281750723767703334159442048432083196856056668797302153507476895606017475287046004526489726027708625810415481326274516409499090066581148240363673873822537555350286524101502098540401495516691077858263486362923843267341732770980305912089598445562915897067308538564206605001567723879717349825140186926001279666591386624646857466268687318372247733607216672099564419755980277010548191324978559430885269020363498976720861595322320128588598399335068341187933592474653728977055717233601747617818430964217980539860998305138752900825834940308203096058647304563209391441283650334084155260025054095444044820479403703093114275933359489815603517435428609713478866946831329145506200669143483214461175282337661496536942663058306468222901359886823642162861631434736227896647036918054435196492928647654693421818875299764007303813447375094760159762174212197430918376279236723887430751142777704198096126437513776168467338366214547939683213089929883351139152310759532231402720626344553457021125445217081221848539203780586899723013499409886899098594282479219415983727807363955188380687435787682689772385430416208504229110438845063499596170041987845826766565303052820692940778520749594109221047869667937524103523215460019768844848928956559815372327254017269760123328753030939724259691223091937062885156462432766848759234173420331756031028607513558930360803905398745471173002599707389778273224083760147247815122480934450332399256988691191397484624190741564557838206517015554982135817225329802165054226794687038660369531532033500345548068621169041165476949808944211235311847906378685308199245061830632677993423504828446963544557290763060327540267946867981918478508200092003557312253579653424946775124530650283264376609231100872661139653476920064016478971283589241981445790921357088952650428640028398350857735727834873116642032797012525504900524866095859853123921429640192052183761398412225277478811977811124340901490338534939364648378866319537816238794710777885058500654584832661179512142365317851719216737701751773250365513351116985999328481435236930929173077094561294899907609816942036403390869121373456476843024212031342194885213148752899364450803931374218762594041332664327094874698645128083309886001328980873713374119633697801035610140055861751445200340730238191979044495888809691642897106949558577410457355482978048777655429394647798095059960195647304446107082118018568133657400236533716424679428827008563776038748970997871727847652368283220375231166499257078471365168370084930566822161323765802636789818379899777233827345869250933062547562948940933816536627638921965851511068604240849033118286673336192959021997235477171919532108290712217349088928611213167019700187670117368199782459422266092649851857793188220406189659387818890703279872869131276854489247114043996924387523515178490780229666905709157659753318052959262057990173134794213148652082296694287895592049829487073550830470070703185746968067275158617003637887074879380630377936083610995649854580289462956996138486938331318176079156836624305034836130008997575889586208142094639324136092211271559170396845490247148929667295734237177696872150102644043238513442690739129473270640722976857364013510739256059439065803876047963895525442373364780434577594641208030345533004184957303364872895744421396128516093800277052182121701078826941018100936437593198459260766170886956310214656432574259743800082133553741548155550331630693333077280402212670653245298609514448463603063065436891562609169420853190903172155342081069765173021612950162932771485695859888637750557545602488809037795830275400838868378524369845750033360297182358190268683839493552921666419825114124463325765471972852340410775091455243038945146413920851712791404889426371488485398888999929462955150543756229293149309223298962700029019933994340167672183281793947222651386688403829593318751991022647147935147219049661847568927210847609080580405769434953714672747099533623588530856082917354379729579080899300952733376022751762111034708814005870541611221772114373324319285636219756947512699528043887866330465357426209935951471228325222162494276162233791556057954227327407277958356557521487551451848813266931781374572535840560198271592064405367648424249546017042862411702454648910273416374014203317889771291230512280856591148988634302302251603182693882361203565287164400441069444310751678456005982503948247834226747940965821685534402122629668455493749533291307189843668996981543826628349849193389983286496714865809931713460909412209140666078682746646203874250581346265329058785121009924832495382512888429628680653897110964298678867732575910940397011352130088281507532039072668096849601811936917421565369919295784912702110957415912324588930582633043723450280304775009489116194221526162796417887830854561238880450938221182562025182493561271336271298915728378577159276168030900399282006952458944112369958367889165970483606607053367781308837053295195673639039645769829911333619894387475985167272214497574551199742300614190987680781269323560933050146257714637857692551164800332100596007453794207895340133793148751138623653868521616083072080427117614935692846109018466825757436431120703919444729345999677482757564549459840980994403033930732313151890206034962643506167342002565566450967005858864686415133994862040767339644977032803945378048645934270448863052308559915371609990213438347017571142245768050127329776193727521911298710235198194359183577269780886802787679963808919435628765133230650926003427158253612757435963983858850267836789287450279421335821041528800179739592511112219782390163855359035510035622373933199129766559068969984171976980290315526315268714266192793357057872467267548233405792709180672965555716001626298035172223234345029732616702048318309266562209311785233018064425715100205000006134516946416027852490813496360543063056462585795266394997608284541908889615307174141707427950160638912393478232925191690470458293600764875289226053617574222211704963255718250361238493796830868350467947955074836937816088843431917297172634967529652534553759634665767513575814047901131225722947657909357271561031414456809192804423382881291983874662666944383344481147129564180837450379108402978456002027991926931591917655065253908283845697335308066576763510602634002655590347998828542089249295114977962109558978015662793572035584757953843339258476561863054420601498491657926272243041317723237054349423369591904544527133257040640458533752789819220591854201674682860796727146372782618092454974535997582022741847080295345340707119352612437397917904477369137747820069532161105222219495308931512547465191542988459809809384284396951678463862446211286769778531849683848160322117802562945869334992375940675168351687938483178527625060277853937090822159982216543425460581499886816821795995323234460569932822373962795828502027979795010769567387137529508507046215622457951223205987420984394185919171337873450786132192253483913347585025504111328804475224353129321432013624470054873378310794483112522977184674692043357979213155044718743181871322715769497008799414916327424424485466772522000062352329163884293721871101256891461782313439349312955340617183700176542013378310256969095139728520921507666628366045652656318146587533895331705873796589611862358452722444866490988844797313501779719575411089123657633061304740679864303709451968917146890598260622938970224454763197906362868928242178661654406084899958572044165951751740670150074650247548413744649245756419825253065604623666282065543468639308197740354418523415524329347914618083243849262301162300270622181540433884421853016143968672692332360288238353481791331323978464712692757743813784232600930017531663236128043715801290268264359356658741275855834693841114373845759350091969952910910797332034931440273778100650417056778527938193518916205370311256452725704835741256087863849628812088587834487832285490871589195949944771032301714831468385210587072120984070930977796971110953664510611661273087467128110641296384495628818750810960118366043171098521369870455946965266785856138075674844397116271585170961303445278953244679699310455956253067838279455677408302466789364954547623419365433148424096327383922230061740732019825749445819797752582812994477408493074523836762817975886866316847726064682838215947756458525122909075440967860459966330354780657063741352842312678770786197637468511008055085264577287884548895941316888449207114107595809190146908086398217625731098706654006012436503884584397581946230245995418707925705367572169254558033128932817414722059847820708489626648154425347935599047212200728796504882285479195907246833677070641263676814673199988518267214442947056806701107095515268934448679418342664423992377794299724833018102485815989736479268694693406380279508529467461945125201806111278619352827466477617236677854484740290407376169886740110897262819469550921844723470404339660964713773094515794170776270579857070276485893598396431443934907234976813081226516895884913643065912382612288911427201053013359608811257239013769692211712480921396011851989302533206299647454208056463979290548705951251851578191392510058310639769613914257967439004508147219780066124876534184209990874843766444432908854910304495416240948139341004061678954892092043653859177324527904270241963219015911325271652433250868637999185293414439038644396104203223766181050820182885775054426788138329353734123194061285263703367639786945686948853979416954567679902580993099377255458287088397256214217705754608077280964547197237382767964321414449828221494966921778011514039668282280910989616603053054141987375380067895329024064752128009883249251206551417847565387858426982728480468076943559090414396941906687293889714299278250342124056010072898424215280046728065061987079057898387678878770464888773626129759585059423277396858858528210355906904935676692409269991518259499234300695140416559761882930336043148355382988407783077292347916714578899331253205319241091809655240778742720274776150044355461861144316100247518979944115665905853128997944359472533137983134868430859123832819828139536804218507725319517949286275524907615609263751152783605340178911768604447118398430118232654864380703066673711530604006154000991568330498930635781930328931301324444396408399077245564772924689128481120537875919560375815942548639740486025840501834214348765784253728131104216455449084558045730402837978027232718953445532648988080486021499806579208125839986917745944199438246060774221664962780607109023054146830916944965696403315343669252305584318097730987696486009360328604704025452514449718481847773712425200068611216925498532094910256512280459156631658361604373129741681842852728644608823388354816602507496916457185020949132964206383260262844834235024250530956622800509283047174275326146846047283228204855043712560887229261320303053614670114519023143816145353362706892589480672421378725754014770672754857782309679555013609322727900635667775414069483346701199700137724654964576781921474012462636207195968603692626290704070230624738851050749827538905866073668302259923003226583026864611838327084822155575276498490774076343808303251223048626506294326620008140010623041908150651421582928808170618743877308074519548675461156782829916957276950263268559804934479883824186225324895752376897601441300516295398526564528549231194651458935175168537373757625596574582925465157554113514509399861288141333448148279519333801388270905296655760109454818337744989471705367079339491066454887930091208576555090079187443946394331021917182396171287653207614979609719234742335085937846901184616924628572617685577734258627143942063340613050394323114890164422776500633543135384497744621991594381879736165968182249496220746817663621626177187079969584512941747637810736102700392610267865713191956181255331147883898479813010675460698232720140753039840414911971888500983713946136119130280346639455291279985937336204725850247904856589726975323997431993427215824431600130364392388130518238211207490363515798185496763738488150797816493582484851513342966896654784758895339891546403515455670966197468409166653957089540089511934445121941883577128321358479078569645520944616465933028433696485830687161601808389632883509972589725982252106285724815970865906028440085255346761288225032387073361542761709742043290638410125014691200415413018417597319785602824767274494865320904457009980106121045985130028747064337893088868965936916059987474797951868311831066715365310448657050662845392648820421742128940362402160210973660111200559962646346973159739172065676485167332119499161803577073483731589523895064732702650615558380030014773148613022264601062291925426914583039786130896514423959837983755847158298950174551816384619610518626545371113652892729134991204461639613501100841859169583162933743312394719509455783129732698070151740841543009187295434271881904624519107903445131513704164497934288702117017213110519381106415005629164104451858586478345395946463975863248128516995909932278462191666779880255991477446277744576114231009528938818884514124371984274998367137302093444052523697766488890848313552190144335392367099617128172450622482452255970792107844049059091940262942247345310232575460342368718514114201185920466134560220658216224238161156194605905695382608674265385154226469538571396549236450071759324504893705825779944211697922681179535202704544471195813647849691726939609843200550356134540832226093367566427746066521430994959702964906565831337014152056848334471744305382386135822591815173503512906554551134085119118449649563754684052903347913230816034731037474542965762632561774430669447019423248664473779532122819868305112671984381545807512470781967053246647564123740006510026945499165355976163495244916143366939049495355677668983092412912275833380140268427783914963273631822677725825177108763546593530943188738891792332319207852499356154199445881310809309641760135044304261726162317671201627542038430976139864470629575940791977890852105030306311376925634599711372032654880808195403383723123403451028455274659718912337695717736033121254845057777536891438517661801184504898347045620418190651788020967075156068073815847064423490939284789889001076373954516302576332464191305262664062198322750486624163803599176393012377975958090061420699322520892749470465997029382617707608088294322237165601515288603055999700871736563254596126223520568591770488558812379945538516633766291932341259349185068824204808258501664177889230850012813070635119251877463610829726907826320281988286134478452898029992022798856444621510197008211363657385225656629838892103929523479012341493437235397579135349467757181093152421852582855402978564176079634854376625895216532809646336138151333804696233784843379397505629227326048674720205882610549491442841777225273495852462036298359928562434608011148971969468469503567815447519552092586279785256473532920101816151718298087320479266058513000414302623593725500265251088942449338224597696237091489902122498043515550294918264506535535220132151516668419323702818686581623056424917993683418726444421351842909216260516019689259006937563454142491303155787031705662240759287561645532272673066153368970479888270653640993190113133193404365145079389326608234162940205627133832934601541980615204965213021149447980600987759061595679051744602743330484677441155862696005135260235486579275525705773570942667671324191747740170217733588874437199770031551567727722594790091388498680599048579011758468350098482212864605833001490317324747309283675086693146358260971261222627838017064366482114270898725649915839012603948028569109930324450777735724744169292325533081137877908423342785220737004586688236109486575648243037563722121262716677645534204972910012295304529762931595640671097483277057257596625772194088301897495121037703179739612508898817160987629632194573504752722152387386496707380674820766131077885920549170310737365411030005883371703636664143641689473650719469766354407423831737305675219201225203860478380776755919171630026085978813214221573711869618809557995675343857468881676524632502600341832393163281461232865776030892250857530993071179037214918353882791385419617472452835975639416725194822597932190939262623477350274553670170694794075471386922661167635851681018772617338393636255904859016989988766815856320039663859808029115431137349086035858717302830709051759944165665383473134187743273414695626910837207770631031354850394215317737375612971251250809618250078239434429070352918169011639978833409107723248531843697251929820648354204183785544100176727851786168664381319680709210853714558988328386428820191699768182552130478307383353486020560196742894109214943138982258026740450661814766440816577510279684334322565915825019277769252424413217732579723360909756723180478136143517680095939172057922254602640980454302777074271506398332009676705286150474701695437029060700513930953866498313731617451870014845418657449325872270022522042512127996439447568537821367092585888289189224546322382727115383919080261092109006809661961691649738332170539502536973739698183899266031926792595259297807510484282281548757619700198600866736895565930564127567747882168766621350825045936208501361154798203607066531341722810977909222933027905434552481868893337899138389700081010993369535244584908760874818173747296699881252802704374765557274155536602445111979027179648194016300208413462834370621972137244357345676750146686324194756686406603483316755531018845849645433695486202534821161935870221715088213986536002380114539330499679597100639756233902148871695953800221733320223135380220358679647360784388766019778089741900145697507949827645778963835945705426163133330181716479724659893981003415738980240359061238565043097020255212591178091341197233684835715906464010806217104966216058329567262927320189045169467863734935051196113142411435278333057191644729640095841677775939317748956823209001501901433024225177992854349569885483554088167126183100223924493692169233451141399585989622507978703019396564023720631945525104169704804449372477171701937802235263482938529675186925975948631375021967984439503040032105062195827215671014007434660054219421246374375809965911204477540881101697530478901006762764168257245970766731811684832416924934397474576376415937813283963564603797826392271975706782084158451721844578668039983191457656279792260932776391692572273740022748212727878382744273975862792491727610338811136917061895086360506931516892125518159312790955780420759963231488656917781149165221257465644317487778050123674188812594343079435165842914304442655121746399006834392872328027333776904588404815526965049928197563109453682514096877140596827406647169654776354320949347247907331377505496351209215035079352039421130281930024125006769019794874952354256428049103931749396614853281540630310945834777558653874270881894904019718236360082199569009850783355738491852366797044076064871623040344717894507844739305020669036270589383607717523466928935585363792926154973676694112809262441657006282559146083711543861209341118507260609940522517523377911428640769769672447994496030417644063985540818860633776579625926503523417053570659748906890382541256130125400494945062912690654660535377807013496969068486922818349694897759019843723720647258900044227672935931288307417447463258966080904937742022094507173231385109219318007077354842163441330783553270031016395776481605985173189817722047171593311163300885493199722835778826868705721249991677872715466294539295999239254851861551996712611143645560317175927145481077175948923170360401983168204904374459712034540869233670178412640642337500268861292674024711135446783619892060805818506396195000466351826940732554472145145437380046686911375540171326529617917298414629461716986442344662925779944334992154798056237411755747509485837799739415575187680793573419793942181853695205920548648243760677058640233703004832729422081944590617305375819270679749394368567347180811443533952275926333508059256154411290588404279307845677088551939614812323521753912170846227581455577817631086451305485023230535657517477795379774389749728565257245905343376420318846463632169902966724557048674360669984254160133788437180391528116356511208256848269404650028347110474326703485364668149881741553529524072297435005751699836566713176724210279615735087383173345338979224930016869720288123825172099125704720943646561168266832157291164902316953443612463957594771110450657033508015664809376846946462083836540295792918740678763639654463114439521277954971665942261763109686912879619054435928116093580142108191158686800645829200818512445436127859648990322504159757036003754158798569581114933889219448492225040640545350995121771664632705138554698113710514443775957565421046015765628006404234282084895159686677700853490075665618203276662219665928161975054291936835116031589763097130890940769073201479690331544906383907490683352661347417012104911249036996373504811670220796159094018534612656446823182165847186061889629155717443033684905592463804415083254447741625242654228739487141200050682930591386031764394262424983519299902814619360466167050909878001221292696704570304115727256952553406106260444075290889536277620929376748944257507553155149471278496585552299410151545267103134918291803937194600464680918909776949521693682626850676598558924622025923781796449594369888132689277667131477853448377049277834577422517051081290408436990919988035349141320029341785307548677962210356429357125649291610131868917980481091617455001100257985904281285885888620410816661109411780980366519816906868548573334789319803781382611672351968749595479323631902529943964357407153196779016407674610099887498283025612689321130370728848922013509670166599106230802033964159697816058744696344529852090396081569583826714697809651068553682334943498960406609203135981161467644683742573873746225342581129551414480794591668630851414874663876433212793695193173242391181465011202548251370255245158338819648259585919068315968184604316347236796470945802310109815788086611326412972814253607749955921070444933129843346756436660325798423586690629047274101492401889348731047436748250703475023032354463271289562735495515888784510001914440847656050575491296237221533951739712638630715742972807369770738269461748331402877234689588646657613848816990622133558910050080883803872298789134501284326833993582496121069764718729044851264522149072393159819533906740493559127672648966017906482491365983732556739578923091261443240190163800334643619337043990723620436060436674674509997862872694836939954441613650983078675944149439599713087949797296365104163904972254045763791084750220610013436346817924294901751230967084040370928794746473967358198888555182596951168823498476991693284158781117296468884781866718174475982007642852461690384644153056133660161256141178421944130977538540495670480724445227354541926714919266270806083187524201946743262701751244815138243657138833229380229694731780279447099823074118939083374264830712244065935615331240637772918548033563065505070524428049785117828739200351948716661056247368304847347814823420953894402915412982796241229725113096085962356932715546257144986765816713414462035133467706978586565546065640890987577917590142848574769719007955423274253692691061413722455282852617713309462797995705887980826271735661335801059491369074180330939631334759973275195398255420121272903314034166176579954568985947404460716372980837806858584371092123237979181441643855061999048877612949059693418646054576515355851811247374288012176169686894682929078426846279336063033279881930099912102802364675838188564741500601053897232397416383194956698969594717362532381735113007860737919653045350471462451104752397642292764553316107411687037687887816244577222398489681049828911880176383225291896874447458999719485138476306292270300300574274830857750635185478968840352664750354137159149758576440342462117166543844418552656387625523241630817179740329799898607621384679309054321604500542529841073080603223098161051115772019946452191717685725364621082234905632749543774673631565616195657951837252188052900198396840238887367763529270931004985383577742223934944252984080118887882085906070018610669108918320055877910912495462768439617746548055807410530113021531868593709582982833736673590575652049498193232607671618812610289603046402382095690293777445321406946612638365185386435801880306925905674585687459503953494825657483501308261803447577409544591854093714873594627987607937104048026848862062132293264915430991027439754466190361936757326467035345810251958495906808688412725586023747089785860113285433862327517999601304877626764008780361091352512371073347850699074522951648721861256098287300091691914427377996883381426995215548850182154679143534931797187862267321460742129728578039502125869119180722245866901953314580633640335525115574919551256562153862769745269454046519820706115636213214642068604415972006026796415168013338482388134300195529787451868450034218153124516014090418761240763252701920750052725672784874335129919174210808022476933614462397871455648371118063725553515312428140787310636894262115738753232658012643294123297597390650291150824030996747885227495101641246537455202684415088288775859246338872380592568285703557940526411558209790728351942200500138795359518558348769847765449609164294545071764043270054451242474731802569202009466187610966863335566564755377104396351035164637470141569739114060170122908692548655224504680487023052276635591179699080998792570688592135834367539200863934432931724006742690601164032257368741042703266462585243544143773358897383680119369866386932932869808917872483053306218489995075967307812458248033571793047860785083196655021267612018697244986660619156528481668053113874924211343456359940652024909326267822426873564789618265919810466300096784179716433569853015785919661671771347015805532822787065293548451549754435659963851665865562977322641944714733605983646490904622512987911794405018751020091841647419580640121548855369011722992068859282609415839185861967020732002418720242290315862577859304603869069725436267298733455061255715563914405610110475639979818551365652696151911197759709347596184549664141471829754724146499091004751838077522901402023401500916826923661410788829793182474233994176316706059448835455040694214778914396440311084460052351422520687038023011713376361434956938384359210384741120993095186211595888039805474670869557142681785625378510929558505808774388009239799112796360994193010843115365783010987027538682601315507895341482431777214868038718266026994338415772469824421414456797276157094231801956574233998774819965353515832929850545565055959722358102480360040615774874405074595023284044878752693634028356105645853035260555346877712921226959612534434834422637961650777431199314930590518031522021995057971783494403632800371042718477082096255092327855285002621347324417778039211761432125067370770491293762162480323220153795180141850804223047770494253968310882631801283646682701518446147929374773058576765952732964017236421657633725869732771842766157239820534292125766313177216149568136174589576134441114568768397580360495644536626044300906167132677982421237629540397467643928962625808733310707238493029676060542379728272340945009089855373333450814534894062223867920757672304309569302202371086199907221733699822079703447075973883585348601661051124082843013918020124898260131167807357768252014382700740418085251368479787116552651853738732888953217323580389166177162332260027160413310226532127900074191030325925988290980170054588080437855817948364995636124188289712379313348568296052110215044869065556301678668669378855979230186205675445128470788266682997784471604652242290974770571494112152115360289118020111769472042247506791692596516750868227990229246076216520375908294280875808431312648383371348671769186649790582060737498748019472407246864603065136515318824289446736733944679755700803983191878872699355525114939858573271943156023791657849731035757592227168091685553522328350047325990923369829802892630501309696596092941709775104645669376517617702903781689589058361251484076753539862798572236065652191474859937783555140937908144972537466669869182634197869788243757239583238977572552091395133574924521328647580448531706372158977122459952135200316625303389803412033613404028851894855742529534611026110910010933508600735261331756345523089271530047736145225998926250793719511807044961995052010830953875570798334000208145527731579883389533544686009643544830381621602218271987222086747439194717651213821265916223195307312981197827184547593172297213597056696355649401123050718597204998998956767215066469595367023085221803555542995109529894929751954454624180998893391272255062096813321512905920385567744638561271501347358768385918196809746323981160975198684945983522970997149665338916977240143347572150605713100225628505930220440619486691930042016313077186650821290229727880637944840978621787961088956254993719660949100205574971548024543930598174319506997139796971012581474027077552530175548508764456298963938544973241158473256722418473248396351659528624024881759494553468509971910770127966695660578696560098891094331919402223050685385412592940266416051353916289803872527616340221307319217336895159117549290771383485058287624870548886568781200798944336026096395049040332405601470265924331175838851136222405429914103105966188170801897520843575936134965999807648954523214745899682316302987230018615026702032970951131638455273837172260552145614017074070823171395897065623223858293590027592371686413617396380133120961847373290971949955191501040075769794827048879454914092489364065128687391930934793137109191509258512867551420511646801449740515478208437575694846547678573175183242910261061112128769660975093236499912754645767241636798147477575398799438224703634825367878214186480915761829548906986891774140546422364048629495178555505232053116644143256733759028028527184638865616240345996306823261026708194389813789654827470653756589669541135126134670230232724971513941716204828060059443327885923130029690971967554875588203976348386257523611276561446813396213337370437437317887163723057056415553917523880843293089774560345892246500612624859801240128918439879510992918457458189346554154480153939711812386728581573028271250051845364451113149112926693794268259250354439823322078665954497177361426348700109720498740861029244638552003275674974797678294008631985944153932423892392045045974710357883835155245255408524703591652472198248407210835245518529069088816203360382662600718043867840706002678078255645364929112480182876095777459845068855160810763730775918846898693734568885475440999761207181702821943221358547917701267238345701078732215225099752110750896206492771637190337049297583992429300668384421598308175652446273951773304367135300021068274549301866882393469527641607672498902466085940949596209842962441777233219330010030810823985736433021062205882260686095200310985670567612807533684159460158183442557900602007966927455373703475559748722606173115222852201774388924882445228517820338103806197382993565689605419134608753312388215137198264843215730720720503274864710553645034205750752262277157677326305057111717197466497956917215658545194023906481089376553325091197073811437311870985030838152588694916827749621447068881287055540626346303909140461647882172615427838049410680595975626489043889585525316925233422339995632186868968710399900837087569875528681516873484197579331216684815666114243903389661621820623351657956688073154751345939343203281489203843510900031177258323717433917005498154533602917712491312766574817320815329517836948725904693953493267132668077010467153397756418390902853059135374236172819410417724316105856254459866522905283921592501086008989061999620691899104727047560338583616287536955853075538807096262192614930227850322237033907057244821122526312285652639093201450472798730528299555605174812897918910255156816361529426429398699095882975785557463445347841809858597985809244761419640601523129476697815207465909379217354817234170910895571113081330273252724187019360839951273315167783678664961756640896315334535913696475251225995162089810331761786630467766258452823232473087081324938644283318697100382915073172149380193635967091009391774850324286697421543629876495401972537222189109219665573225586234722308551037424447622688173525671929730454891863493029772786290560587303007884711619713277591515252218954569935905518246586343808863165851597104161827468574564568396529116721744834571726444297102106121665280488855186086807145627535106264515086666366940805354585025455266786857560208059311222443440899668131624760590704067038170075274226309639517946725486621827842052545946434241831486697768199562271964911265738799213988710486381869957368922476391483533795903005027797618605368634068100596684738777715539373943066007530956807696324370568015056295195304230315817759427525348748498711436894150007489719432218694382732686954990526679190474319984186771582405067299284426064921494461327069135677325815959228559934300240853604035057825953360318765306656326936867432920839666674553646986131499645753796012133912634955311917478950398004640659622068463418453160775236407501955232214913470428086908130179215468133036387571344718645968266497510316400781122323609125094260991920539770583672386456018284878347491958950025186831571772406768061572064777333649728861548487058713055388094664573035391506275173703577257785491717049791168112503487148406122813453826289531393214502802181931044187085613903477346865038892499809417123850323698452867345899456511365512772844701749089030720306571387176492767038789344506518138987992204706435337865727545009619031420924856712571124483068935255099182165835014898035486541775089431615418389470371598330358429153852837294454675071223688320906098286899104673523334910087139488326875903899130703377860947442094181975512060622578547362221300664921980935115351599693087017216348745832269806421679357489800132864357052312840000723374072770428924133681471195393883345734525617416417128603373621987480614965333736304106468025030643779023600735715694609907443174524279564151304308680834199863197655597980162334046804720889712434997341049883869955216059727907576277309494375464262006895145775904751244915519816146243360948085004035312885355582709652499983924394449841168150742830837645719335049720660370055505872896764220852457693392613828438962763468252693857044877085210796810216958401397218922645051310195289037355010987300419675607209061063671658461056977708979826847888007855972444991666772597733343076452920190601357341642373682367696733288903562014642782023601911045950866426259770316542427632310975790743573001809711931576842348182901910550475878665985042185708794406435551699229278401026942942940621734182440602260232378049118796414136325226741836391325982331183967816226492537652406716373054348661016237513536088142965717115869209669239428291663362299274873341739403160174277069513758763460507914702559938848660262333281329472270042525346139536184862220642172929386359524424300937363752585860556754413787666949630306415755441177767214417035569730997236964415411965373241556050123014846752352760449883930294229338879609489452137109237265744992849866025993670314864435373760039004565547967801053420221539228389274150095474212701147553600269958641450078591742746302999777849449209866527985826775919412052093825437734992736211075970035408328691576300581782699757355764595107774133603757249726542315519369778194449178666762172880196847574040605837038831457391287444761925049101565958618438613878159471790255320527842397092777568007246109542746734606215269296516518451422768203570517672250326228379950817943744551662002484745461826953897270681094684953915577980721854849246974767634901510069795810859844369757781917307219005712576207585345096109097543247250555899218545559475587895095932215301791729810482675616075609522518493140326973440726558392949104692319612111767416978434792344475108231382742802680264653751995471669663589078644306605651548209532993887853799065268921741011430687540989128580684688433700799548171526882582014371367988387522726234211271603447759474467776276205060257515144147406561058545180004645066361312004518988781064232079337336417939591290444650974485634179358333150873374551460249975734195430811940544581149292756419812250743439116189368483874144313552991176268561474136546317393827848386080196817569031064081660444606217170850106866166252576477451949520014604259865811813307037545979677074234622619037807566494152493934703194745774705338788199320550517786532840095513583317717492187183650494700602670045357988089477124904883166144566109382898104600323429998103456278879675179295342001816315688814626631994977637725047990474119364474349018253016870878972061818486230659617995572125868333356734632565701518113529327689800179436506487086132727421917198288942944408965445964371992644466169627176898047222503729674287053217951372167173055304257598544549060665019246894779295410727395331731169012945823453147463436993703421139053356538279710929573821363163218005234999912798121827537457244521451037195303441083655439494154606725388540081275991687301150924506618193201257084378598765023999966162339152602632588269484985244954036341458345307569972410628346797161084017197087648506473945713320951526060459541812656165365051323086640989401799784237988913243941005855885741401958177948468529185446269384515605008886314655124783774141154523699911881713435942704856161493906710960555093397291167048838546169906407552592299833325536065283888004050878826336008955164911294724040643163125380633121377302833553903583077081804580448237950340779504357703487772030127332669889470540403499343774128418530577482800552961831687949151142792855769722313594518640632878206206770138053104075864214086067153661451948397226556058455970630227447973291316144112017784293576704721484230441615188524651141317765404586444071680745169237759130716329901939111565566416297801676401734414805902554323980091890376266316259424392264728278952157855712176079670812941517107991592860369534939897045463776159604510852692062305090282554176903118391690047441606937854551393020670579896460598517667745975771390539138039156174544520441122339016703769392498655794949142188057717945542413914718864466410274890236323552325469317353613880923447827817637429565904228156137369933126267358751826378170287073916062553513172419823541787502620019329424189626963408137442404374645346476210834093529343142142122955763119689235803583626259584000294082962060137465585450994637037231037337033874243325672221578144813286439078307606800526856994056061184231289703817808646855260386218305213193319943212095215491554445081151685386249977355794295417486609945475646558887996576078225973274372879242072898287905908657811759548412133264533482310313635295203888799868115720812407683031222697687555652241151748856493715009443568213178583847896388467524888605424365986463072435018652958579093740945921375058937617896204899988470326422819807705608785361261914686575892408463627475350341166798707085020570608671596314174578125671188178433416397437566980427107595131387653102036461047785340653162831973746070094284407562000428839827837883123809691306105531009553444947603009451295948720198684567370868842321237244573857353478194357012261860432652239778664065597716018582990334411632583128835049402048526463607748329412549413512737766423235472870155016247872722428306542550370057647267849914745701076914523633199988307308164761192801814018526741275681259795322057748835322459248616245722417274228140365108501018602701624077050186218288593908521089672988051679878537753651370864578998041639019931720417257073483833539514225484251446880634801987003976003276271196394331204075205824943661968854359969022883790134912663884308835608628773288841009535100812637517330490598182870599597795192432017232811400488988647377023333168866179784033133110835713841330236899752467948964519604812653213766070727250452552768942914674139984052936693923455087163837725046692001549390725887797843859486895217970688652236672329828101117659195547497590091409552041567494886680515672691668114580191267970142615518091266771567915323118802092707969147000366286855300668727886284391589055993224684638816577828138894493563406727851356768432567441489699969475415589942448564499825636730690011046222293482279502653702429640094918641965474438992044379644401313026835891706677594672716863833108883336819648925316611369427735747710456579909794490332972898746293832104425059297958832154147606962927928843172250072791161344003972231211151644263017663942288849743159033099883165732786640540974947039062679684471517896139230076936960137587008493345867539640090704388223528709944100497148931952190863106160152490208297620479722545775892782953858999594497768115468249072105406377935547475869924376565762309738765020107296275957330299057343664060955228934731956904976921479325737449906994655601845627525324621048141391413640455780740213617785923139409484172512985838709602941738977662419087166110142877811717481694571412759171794586399912794905065291752277125541896677260022897049491013991311692216710717406651439401426871433932536224873676861488607767080590029371326827073674239877153737429861315059322707674613799257166790742148866181722487217070925852174539473871834865834090697879081907614571745312577870783399002310708434063409068267641091963721590632831007033236127898758063586117876568936768076959882734474309664745957008953681284370567866714121760739280803821536767198221940583256761130340130718846641167534175007719217348743469753994989989804298392290498286734516949360420044004489904855049713240210697868078801295920002540608384946632415066239994122204328451865965903011406573411133519023753764607436006690125735299445076215127551225836085510208859646552535688368697588399206774293991220426935737416764198596795213486342431657215665196803918507330594584270324558372873945637853203910412054660154227573986108458577243120595890437232634727839145283495345661844217275757685814372416691854194503281164701929530108872910126225591224090225000978456020937945372509045494728094753222042948778857461186702874427257915743607095366634902799419987325418127384923605393241473334261850705233013337563440970130122589736858157083207641726417690084175973232745169980867576309497074334946201920604160326084030011689126145903080268204368358087510788493985510736903377126770196041029062489542946767116996377572270999617550076284823244237014309504949484150339350416920020519425942928008340445775898901848611322036357668404706904791187884225798432349220433509260354476327096821656696327314016203016710128354702265369053214884727379845290543392826565169371643469480737128219233870945621431023766641221324746220706662567826356726474062797180634518967705833677276789704945666852980069982600258705940496436090012531665068483182789973825905702322585139261527949586684211027826035757816998834301739059385512811868008951322300304891671039393384024591821377586043185944508222859281258257114761712979181890398321118119928618264261213647477636234028006434610026651300734443922566095080513458170776884231108456310198220503935673581038899004937904645210011329658584264069024112408396382566015038571102505182195391651009815682382605957860506760071382425200376902019892737524211149780051713939943651306070914511608540644606010883287872953954208382799519259024546986475441128351192608732465597673032951762881969852897398054873444509693723951504313334187295059800605192280128423277669626370944260741243431030330165944032392085083870798572501106182337452208404907066504843885281877638619343752274746937074626170068794352875202313037637233188077870499321011336745124242190281163527695103076230782691027106437558142914413635841117243696693351149082751921419667280779003484546885420045718472596451141957633676728632841389546667852445800708146948144819271527497485313939746210283804435891001170868510606622689243171421514122878376172204784484903075183032368931825398015717651051259187014040416092766874742384411441073067575444748351799004674703354405519037444858513390172086220092688660776529971487977027713928905937352636446397765586357217530031395773638510606091598918357501503876185295949871408567655859941914493847990660995886358753144562547922025406487536255808258830242872901035753829843073856618227851328801243084869228571124424990453441838775054876832222212919971738683779821708428357655063820044310908850783018544914871731212878795002386180822141806772716345486527948963474606314282945714814919586638155101953109000834577056326728148455398992061970029430102206339543914225956464968530100962038189070611952354911058113654170931088972039934007386401702615382063571320745546234748554528082290766564484380165341737905341433311976662471450251571042464320653337965579418064638777641915325647219855189479658930850429211026427108799761769984738107775515888373885918273071592659666264809005907532947033543161620101621716263223802696174635426082027951350439090222076704639982854397202841365380712296378419174809608627662248672971640879372277139396159628796531653270965475905057761994892719269562508061574851340740085208819765780579582388505433243164750336438421130752404619522894135387602042630725616491706526682910058613504418336034724625791700353050479103857963356329518647952978086325288594202923918224475066742051820664067828503507197374750689987201029867628457091509288498652302610611099045138483321950796474316066639095956549475567479277217473563426463699604689631049120565852413078750206189963493112587273115974215303442996891188394379334044716888310660058471551640055332482002412517806195945700391950927533625774430514699467598941631215999687996235554287717401133391911132908741074845660100169710441723987800231365617478701672610479060221153220160739753519576719776883294565880220088400587093898963212267448717313005506416555818289455872245766812295301140926019561186801535446897448663759180757110191451251428724879209309191006084656710238908877840805096845408676337227180343827415027439420052899996742579261943235844210697305526939288547349713106344875258388148780952274110661751700331027696855807668626205560240377216645597965451675690120442662813044556486959371240558589073342684740593568128416709848037527081498122663390988220090731360334453811019308896655481159335163903516197849502661314877105250320115005309126293761800065612406552195087272228997221926533675254254981922748404540439040151147378097369043495920567111259783877992057467140351585333291880375902566666595458411697032082140196837927883987545071809582288463688430192440833645177195304603807398625805468139528595487828350860662036302479130558832036137347639258239089885666801671773884400461321528732269416005209105338828039457555779555901725795999379877711955612621822589292529716521803384176596603529431512472869713009894930651198360997949790830892413277689499891808196227928104151120427409118230014623658116861905872176911136445503306560492012903870863306102303417717987672696483409972779737162332655143351877348722231857760183366989774445813167371992655101023813568616940216253284880324865047949853357821465419577820158656917894241727341365621090893733972622716675239514513342033279073836133365218322428070072920943752985918400214848703848081337353088301742654623486410916699837617150150733248039682988294656535471578597964304744346017864397767974612885494493620851254420895842074648120244180882481169114425022981834824416625176187207322147307001207583476316348699512703728651999604901533957147719655584139315540412262670964090192814484644139414468867356473710868354718873528078211121788518914256396981769347081864620606759364609583300911258366848509342592879744894897668243712591650239049485342843948637016494844610711444278854436800741889027152693569932455929834290280952894032068390655867546014451461912536176873931140086856159330509415580042685963251787661217900992902795191046999773938959284256145596599649511738903738552199021098624681730273065953897051675885237726784840600981525800625167872764314742290439283082851908982908798447198454778607319456866230206388861874780452761582458221496443914968484795581953886800208352346527563740402309663858417746860724011350046608217096050603510952529166220126998503034817383939224996736861015723955314118357921085829572712575590387361242915370212827720607087934081846464501520346615450712751399065272778763655265785684640616510701870234952821962042031464486499807668712790397177142764304351423290428239436403546019115559001394543037494452277904347378111647259070071790874993125225986994088483561559518325255672379845479481449274006182265440147823224917620008324791083887564191995931213777341389616446904273001242289932845459686012346021128837531197101501492654621813687771213597425815131273494635317491514743577808934762518711474522249255503631063154473240783359841231915771432983257347945530760301876466452263103336770384696518943976919843713313914520707555481202602744152011128884918414450314529612398468398936376391717106759755136766740185930225843019059355613231487392156361630138233999187827532427854802381938522233079933071646205214379761185832384127095748527245843820437811132875063778208224594804537175766815894831005475684671953859717445961208534692140893449525124629991180651532032733929102316202082916633898664996471691531084438078282470174796550435677335538870134121026299704456829993776890177703555282219256203451471166582332834441681592045087748721688685490492988986220266623083530892872150428307930985477074347377285537182209091254970516572984034138292987412714916792467631049136121776586559586646256535692713733593796649783840117510332619668895494710161366192574749189028756615183337253066678141327879578260684635648456243466427144168287892989813919738968147840707033996372508187386335480724360229621234341836820987653467056151841129501063528219462947556641367800252506040518550903031431955366243881402415703939137985442294676889700895730791445477067030745627373269973942383410255395204025601992314266351936215654833847904700088853632393386687545897116222221379828939891552028217931778535132730085974208627328399670992596860970201243007276042055699013769942516989641540384613848315692653593201711218943209421884589156696538981637248154751775920100270541460267339526132505001702093701302050349027226199712347700901632355738663506066243312605066650983784248462887780574215208097127447214139765757239001617982508111931233514557817319841603815384045992936330713278527798870181464100599509141156626525605722621856562668138381540391485245868395044412562022890006218821790491502267763709868076540718250274462355417145089732364111029938345981179877337042498842149536821967045124061471840893359684932612948742672834426652168574024413459522295762269792089976371556471910918745572431013741881995232609842971959143925991761279665905589190520632158251060534564213389947495241543243626514131535312005934804797916425653955052488734879304365565682666223981789680705025801983469168707062466133515955835632238160009686523418715860519306479947579441983116441897799918933553266552993643451564706165709861709324826660486041266113175924673708141888230644366351064022082814906169507928745604636277390287391676979970603707605975282504947290237540824727920355656693334999758821010530690066271564012769424816544693654118449525444347701701590153151001238226216461862300141703152119419843518043043108554167041389871036017956111753595895597325813652451848543870206844491631485222723400263390932498421260363950577059132209205429848473927659171716968122064870100297742148174972536762813188200164402590501565750570561484694545163007367995630794205745733727105442221180310247078089610015097762143458745149025868975514810684883213132640363413573536349167950804903753069260004082269707832313597983887746880559441375457982140967620273791390040410769023776277570554863179576784236620193045327165154358557977788629256208279717548518299336717759456924250973304267925734206060478720014046117374329813444265706393357566576583783045698394233946717531848686586565693868299535515746107372052713440801920306962655365708475204262178464333704727457356019791642335253679687208396987675847214944526817710646450001279104130671573209078705074859691580729836596032615058427329789480912519099637214905152831182026735581274268173998876441013147046595798185087275414207318331781632620848099691285789103444097675199063131230483439432700316942711851204040063592015310710211445679898328822472103285462068719103145530447573012056054704913736118517455011432173236825297101285613992469824949001568583030207278122299943314455128031828916023188471683362646894544429010225014136593696135168493138868267604258537285320000757317798538842851775361278274948789473712249343487225568227812717786007053460049019996826129213159343032568642014353337667539671656176761369375336947344583810517957348441848935950648256525893650574517232360878808976444081936777782198577975488714620701407623646990462111952726458425162800755862415068557754965768531397715308544794254976590308924504071978706903848614910590345362225647146092277581018325218693722777337599016644863412834605137861066792675665674241955771422634985658494967738551935482166408156609286807158370934765778058487056501145283070943315884932284953482574107977872567242348106171509645764971435582158749404951557786370611967848537099922694187397729000848946710030327265720779255243078238533015400573688325794677716460118214623164766855278570535687294472305264223376132128807839355542151096585528367583125423606198193404754931441658383934273460535937000393218172249011338367382081306819716910988461655488443256787910287977038937341565635032579529254793703643028515839487975682054500841060125604711818938876995397720763449934293775912533031845073370048014247718551977226703938495158630684049752110622933777832373357466036268498461512413064692230400865001783206613728299704085048119376571663979515703249154420819485916596139611118665708557859234504136829003444886849362955867148451928079777531924589143215442658365516988513574822380660858575980879345759226476671559059708814242947444945680452119703281276484754833148707953137826796946722214653296201076649856562991728916341765800269367557422662644547456162558748389117486118044420177858288756900715691675608143191948406715379009092427957228792292159444597312443125725889427217860043358777473996997842123067759944001481619266408297970970655038802573872608701997881235380080090448385280371015841403385043606060329352602357567714930411489903948333732792583056343651916607967932778030066796589236067789095850390037304296859418798446582907940417794224074301353448493202598613105025970075150903233137787530101706939330625554580698841159542754938875020434910933031945188651969292300179800740258497103000832055652205437626271290824299301757166850710966376861088403173613434363695305227487554797166767784924636976873880037234670162026960065172133087310417512654821120662115158823860593746371623130349795121401883845703976298930412435665370897714097497278268189430999978889825410068842339090833754329265493348647542339930965111945422179225558536436697979261085631940436813188764827541156458870196557105338165762649064175135528716618695040299322511388050998754231084709660493469761560783414991709427841644807181187839116702848250399132792854658049981911750873459899588235953560460809024805413590713300185772919371451633208375169875049147189710412346773789397728943009999053813339349185364087243569121217698972885893939455242020703379818952023089694462195706120707849887161347178814168380559325089687433434876188374279526074746679061746008816260150903220993742635732624057016351805036355993329930083178050783840750692904573701989072573281448241483812941683376238240226675560258036340721437055622592145927473191259174243882551366788340854895087719496581917066751867372499943375050028201385957289357470882345706414027187338882215748986269896574040173476740207360665966642040594626637591924937257050996818989603950346463331219257316828892046187160483623180746497081295686397026676602038677548022953491442664793618457871803983068903822892934927405624332380217127365264228579764369560097162929304397807556050387429254757083085284508946810723530326425236672627215879718390307825378815493013774411909814173362968102491884924433980331401827338608249091706705136742467839509673727191116528031425283700470507500435453774566700267965458479314364073771808013204030022094842569191880424193470147048727517887217938934387220826344071207100063656906396530146162705235157679336196083014719694327963960652037064342640170753794205038308311882346854181519813736960604318238420088466185937577990905669668934532723054321984498379860901670733642302907504894933765281299929024536841338497233346663711235799870201785875774771346781207037186793534973445362170499584042007919649880710046390977637107102121241339666664348706015392865808668565938816797101775281314777884118848759169781561341884000429622777374589939939972259451045089424030291431401637862737349232547834050301850365022235129237474377062428896745990229531059962412040362346634439144921915658841059335922937057532631420812316433632127415374759124676119190662128768906340587102490854692212712170547050267943409939260860573596879134187838563084047505973482856211012321888515456603351346686181534401651155712222901618762696142343903257018107882850571865483431844945081339611129937137727700066259119396056803407040354438335588722160586064740365706083350376676997121681392363932110345087414010709503870850286591239757059842086203188112755496945088951958466102697578510489760520936985514198702128252639177497080140792063566314203156927000396907310607000637659493099272761265883645916393251669244661388942562180585815204424335134980995076056796625635038054917808319755071657556723858223394713979579976893673963895349952870505644553153808161209383881918127687947350184785317291472021364929293159565360287742938892255313277795999442764923054007923341296536348194750362068027935450621655319677922535740282121851148689142804340846195852570298569495938067006692866889095035154959360551771518010355868776604495239806683146717926437139476459494280472725715670809435126114409417549787976390984645366251659578920527749049208506549913409001441601330089539411486479349843794630580611997438862219880140323205597700147852432295640352460523603582222220703192083445354668759580838631814993866761862477308457033092971587490261862023475703509790372690439281481141633593740011912919552372675383062227873205919121611451671099917822688405021039398102514002728835088999430642684400216604649145018220338445638432382275602986304985045546706175991282789713635855338806947230472982221479516092287258334401204620673878601685034702378754489157988504517892360013705812996397559065232278183772026733772437023488583153099071436152459170096752796179549984148736703500586876209666800326158070701712262034102980281711224512997888028684878585679743419145026200617764653913745600773657275072703647053323979568324400091363129269446819311220804744242570211215900878523861822628101986657110762442423612424977074298306763499377334478999996333151050879109967853992767396702725231293677687446613593379934045451714923761597241138945883623256737323477858865491297122406193371238096394630917087632454035401105801852043869207525062736236858322544829753968736989548876359765134881613381947033170580824974610804329362852159924334494063249248429320871995156730242812073730954176438426240532193826146444313102673469152159787365505943020113378266707786347803512109920991081015025247645315548801939705809646657397426897590021099414184873707805798039130953356676816511782339964588767137276520373413657164700416743025793289876900270304574493468146341844668817144609626091715330732026123579910913560233718597613613297138239917540904123456252289558752335902578892076491433287684486443256914390328746130464258976725838296885946082292939166744638918038791336970632811730869449821269732311555654058812867652019444885866543700872508844429701458120180701750246360572664528897388311182638250102827796599858214578375404507310515563887726362540527020624511679413229231428862887012758954008318768364016699872020450346005580701356241973450925245286105878056180427461072089016559822139737881726766696077648026812365492126485849862747684498876281362489034712307568931204576331793644686269829707000713931350546786603284967056463782765382166746593606429412288097142643916269222766663880409571858247769854371759691471376429065776758002444988711166522900875913751414105806673619036236807471610784626598012030248375451511527665357339488263672150854934303956029527097362418688405620245990789419393826368671807854050740326100327660679989230986192355696296216001639433382240033174998802796330371173634123576733105703463905226666450744916799425740239624109871035834886275083623723311604750170644346308011004985533211213506707195599078304722135314679351438171690656286746952175051790765875584174887698031737660138164326873648100735336575980541044368472205501896358309695048354785759969675279325657068309540770891769256508270350904760776594749200719792296085381466852558344321622972623865345850395644266354894040531916709810876142105773588676041648886357784380844446968697612158156300901955743997353846002246504109665334735407205261853989505827070058825064300436669488453145254769273704185741503038463797551990235540228452943728724774980155631285902530448979863395254502620297795251748476392922491646941827335182634744420405845147306236750641139395741298968948482613168707808392501349476985837318391554082742022519087165136316868420272403688408580265042246544456937581988741306168890097116308597647938330874910850646327105572117345882682176323853098333295403540936110533481763999748348202296846735300841174208419270097321171104311138843122441347710375202290448237873596496044018512560074940695504579032099468516596768891012740790172872732359285753543822714890855475954332353509717698687022190870737701879739186103368426774218720835975115126837698804288494639690616712390004330206789349811815453212188970635677251246897729241170593514757416707439939301688078856655940120935226268622759290889358949873903219327889924820646405199668387546824048343393053972054094195462195568926462848039918431043268637292043546421057776736816366295613169173110493887964517654309624153184581240154335777485078198859851349862820214546212242368897635597356838796252428876455031024091082185042212790262499555040228193020949627730452832818844246650406630992388735438951519753030057617511645335970243281595625114018252457513472654295174295499109707404288786089482132768858837927889446310236476178266773333656056697011562568342360570654217944666566264916404944566849085908128807149108667864492650582405169847527962960060831014155320697717833779193851337239152165414365946287227912186784505334922672149144098913416505807908626145309046558058028663819434441952203108112749307791654518870093957787846936505564096048106519166502158877766596453620326215484584214763298484752174430769180153127239864711306002601240313957523051756851538803806801856216869504154299421873441188358040210773541794748600385714213561352769050158965758405493608444420350990775162084503290933139302563302812365413334167064110356782111208198819919828316054725919188589941965161254756030588785724316155168053605740561927648410618567833462682223875919958558021609922807378956909857150783017244544518590446436901582060880266240509150681098936522492077379361689339223867278485898764232419356938469584643025032721571906877455193679148025355335205783712822331924718399827440365776300295141056509230105865480159565846573103566376696319666957349903294985600495230988955449577704906705392531700992508884144639589515485444759467471529355790170196681429106862176414664089108305829124293898826268354664225613133511364045322315403211497678770779681928554836004222855983259898876116805223994616014401567644086397604356772773109130132796963634431576082308173644868046181053557107437101705795125715193198305726979741988244054953950050224580142045074755251087412740397004121272154744176084253958226312864177483112441232662445703970464707258067493470738694367045788846330508851075097235035154718661470284702451407216555827329922192549161233647456985880382464201793816849501669182657793323850912662286738491707182018040044322470263878844157298556086861034199988173497515469487356196980959446308646392535366703596699082517722515470402225486594424180244387110191258974033592958832873660776604578329485204734833357352682358791757428516382455930134383280166805403670131704859860193373622197912695241433443380348167260159893331044609277304691937028344908029018298185989251282536667805513308755045957808607758736528451796760182717219330762924116179737630173607385557059675927531645913021049351394602135874628929768799337380961189525844016791268104212828831127798292425297009015257177987591618856238630804034820590969951322447116788687442733492858546810663005774496718279019138286312511565405934386792439964647208371356176435078685967659821005141051039998686376655231091863295783925766287353543697191071465038106366914965200868817557383154271776123867153296517683797329539884812722953905508198140086696252957391717827176438930150277386113385405586434760280879547554350318359876231950478034829162966163309266830372799579597906786585244196331108147694999465129769736162324446443765842007029030216280513979267519917779799628392627670783494319097896189972032860527468184400494280735363979507872210134437019436096670049738411947329592161335443302695378845737619996835535781368257546150288675834687574006022448729302415241713518414813677051215317594833750417087086847309629689492308463082134924936147208516259920577717588349813497239226783452754262576330071962828380780328948441108692128264794437493830541601136306104530741877672014120228820027167877497198238241181833804103345466344586398335275804557428786624527678813857044884562128387894293197354654692807843306509672786731492468731925315831614146977407589291184087674838442986653447785245471820500930577236533539612414547143826668102680761172534420891322487226198768453425369827595010822092439971786688852169860377414236345271189013353934515332078482749749953227257807294052275567077659691736247759196211047743647698195653265288899440994308865369475254171353674156106339573585966896541874930024843803829780430005833958317262727539804329321847459218390697183879749639603258783927258487873301335867740840584288024704358110044750763806457368821663137209168978698741428707271466617874808042842511832770098262440499207549179586914989604172804524870705519261587632284002681851518398187902809426339098708294229478136130320113258991167983767455063307133705005064345573338993546657200882158573337643842221658252299057876543938769013373193049269281277926042299381429075986070187823528647794566405215141575987436506067561833421908798642534792111144192411815889355456649704678851416653075662096884842068523335323659342313098339524114924511485332704668326857483796947888069885760554736800931198881186435139714635676990817333446261201854520310001334247946469172639258521231122172062579722600110410455846824941153799485416073769726651143052232620793878139233648948968547934529807511181729089678762893567097668944639041119102363883510665210895042934256855826726027876037824604049115144863854948696458023531815309684461058259031804439826832205141567030389575132726071466195519671238785314869104338130122705143290488374755960089888648629558844858091969315529849647989774426439072223984056206406687661728302195432871093857750509766515622300077870692586118951237125186067929586804713628611596751825693101210132610655180212347677930321340143910360230611598463075138300394890602136196900079120944601181440889143148737239351694349075343647646510195029704825041592659757556662658725155930624099888360326990584727657876012105429045341045287398630920261700904873794640665731931201514415605452918764096441917640265630677756967203760810786004878728313968623628716151783894094513460741650378021969527438717198352008740770085533099068034247820278094349477091452551041827541871787865278075535586875362718485948784245027084192878082742133290311602894120976897868195592569131780791600339037362519323744304279128182492827400183852687414054730814775190121887588602482372151321414832140311207049792474105843237200441823762044827311558150759717121888883930191528440645967646043842578818603144284343183345663878138799827375892800787437558760120021947121996479725240453250351795594680078039849639210949638684631481197615068895460764574434837487697942694810857132904549839013006698524696653741033451948148698000779223226625260499004796091118189144897112641444113603025143396435387855120848085807720327358973956950200591527084351434241288544193240619114828924476759719005086312607310284117425159010375625291894913037831788664067591016053960270997556130817876282492260115090488807859918139641477731198867880336697101786336378061859693814338006213565452144562617589776352551001401729534092846776878358921978022818017873559429631158484659721953775651037595182755985389501735678397563256317442456572650522931336403452794480379141138587086215263536071690783390060235926926566024217901613747238955183175936394274150812387851862562960714102966102189550276710503698579388189253116197773712297277988984645493883524381840307472013064367549132914369282526057192595572450801526863082610156177678688121700480509256023065127287661092999527800747836925428237588114970365549139908362232413488131094511406939897266310517160625333290588949959285592478578644573123633339184990728830123734844301028119992155648744706578540623608230902606941366178890856313059692728039118733625279207109438475716373263277991782943270394561380884652540354829255409440754311635572578108579079981651572847833641651428444328187874930099652075700009593681234367526907047332991922472087684649635730661539734059678074509241305697893367904007201380261502898690323389589706239988273481354741185917772942510354007261230415383115229205355350867985725429201803963928906258306150075719974034836397921586960995505026311717047217970970569323272762282790353057891060145493222515200412184470721570991698923934108234281420112931524245129734987316567707505587533820856464925111559335376546065711015926027283128350572728705220047522987987062909491808346167899838809247754866000243980667036878920738606005862230950485294771054809507546106063100247430664634663517034697217916406347065700867563486216267803917465022012613027771204624172029946108790895139313088837729641729958243076119375334880285850722269612397244422123966613385766152224551172548324728010834160241793440864615713849078251119002999091891090631979801196919206542860744595527151705430364603619130320557157753270068921375478819337482248488085607050086401464984551269372029712074375720830133217545409587479361420884503588313503653279471490457526711000581230398002255817984111903534979350912612218273045429374138291911093576504151460943053074352815117471481703040363678686683444891342584650763739334321693705864823751510612442132530467333551165792485074923039469925783009420440780161951501559231746161462646579530256799611761332940019593713441487693288539542760331044962110466010497674259291332184424277873268651190591675112896891165076711870016546911635601674381260774450841644997167387882462565512824357751066379158068050068830144397083872012242912692383853306313977702841549236691287362491010269465860141456805361679589633205130992701685986088585207009946273054392601689011272922314076064052764775162364212315050902573654575738198797754470558613615919251467366710623585801940748576698438859339875125360068043566350678552394737369098710177310583651845925957266964941682353637146735625220046041109122869434930165756074607494748601854867850916966625237088345612150276973504617421215605097627041605058470742302774078788293650011739980107619698829567837056171250769098652737464575779519176819657118805543430494306488551708377926255904376871880501004800268674324696868025085934022772797691076447130705877632318694652640763760827747313414371395002398194317897156740457896240469238831773609691935622462576963999817507414351660464840110673876981082048409573707006465355084148283180212319153701186496095975503154364607019773798333299429162466253240982947364702712076417180903198186731074119115003488723583646302460146270814064368826765114719676902878329654041546030275235433048208827909400408488423303173816453515783036299478616230456681944165151701495974003807366035175186107496609971821391274433770381674245496638320703790378463859318638815423926375608344785763590077416842138729768998865085271320567522118241762445789183540907045642334933812646271124857904492854836275612575022405843772627521024162397285003656119268247803559694464086195002687979891677446828655038519119606156791139249867673468511289422460014920602836516724357413040108461902433491730226339361845221811478788004307934847467780068891460991850374941903064598450246672458600005047749667781742042444594756693375100674734482724402152525931423598468453870503066111804341081058541317937235232727040259190962182987506689348775694408221853380729068819064458842050354544894541059824274007396070915572600332655780349276290057779802226515961542061646105485529959931458767934267575081712865423508986735580311190384991821316243253940078519958253895635267694147617360091124237510866622696008614738425326122431324552854804442105285875243567608704885032545980050898056776245184592977574659997150810353711958837283230358996284892718952561297844495899830569386513004263140946172484790671499726726621183429799667224923421483488730851625668324557578507534999750871629724008620807662666128796189340683536728457250175659200463100236530819333813234971741766482935691208623635843446143135740063407968399118771531611027769030319609658693240602742606758916666789050060766633176346067534880679650712889664824083281660037296072385556287724261199790339148596718812188332516312990666994961567898876583359867167101339598394811661295742857914883322575745761525793700772459109405534808677482910835996124773081943841035117161152538150481733196481857489704072869158832399750608910476991583027526782782540442663953979688690924642669632046115841808718488048134393317307662370976405877938910397940138563238625052785596639955587132169199322740296958134326459632553130012454237533183847868661694781715807049227565532141195745936059373681401040848595016028365987599749488577988887005201724226956090914848344839024994322258592108228151614097484635701303923181482984489143663334003924955679393665731268329206738795980312247067267800425665376323098984266310574134829067278761635115144774163167029450165679540380073640150507843360390983445309089118779743091670404649251433348473328960495475152447499534811634261392612949094710144300368980326207757249254854554072830516771448252063602633562443245014627585799320778320272534810961833828824899710257145044538848513706693412183048479022121758500651619563355099361896296283506745391616840778844295379516369095905427450873368469518306312142453310523582129045877654561878015277263598511498763395971370943548454532488354791650480452266838802148750313432962394856913245882376730579778290369483137333658119655382483927669213116057115683049355722890074378431164971173153951584485483185766996831942877072151759971221909866329688248546964245862586832062352615253451416652675117198699208852671725165836734655435967685785179025946243155064084397009671797498863404980112495619882030216963304978754605524489155347309015111641434765027275695346143951946028427182883729676793271073744429382967416729779999973539767852081831987775824594694251961706371749932928769399876010961004920693787300071202744052383030091125514919170279869683013109181997989635487895494820751112217851180418093077778251081604089095382081766914079476314022516862477365657163688199100673777339465112420749781562221768708253635320109173397217085063572311099060598236530533706591986318006680390316132195277968654190289226919195158300174441334957630490738059924725473599476217999796286882437995761167714663107623684869988876794196353454486428169022486539229424325136294883963235242006943746655790073425699419651094743268404967503755647149860072262261055845496287381117049492367832304006474454814245202431789251205400940801163197453609729527088383347962013556780516660060537439849310983924081575602684490872830949285704501184818882575147519129521302676234933253033474584686672389153673729742468764313271149903990206749972782920886724648886145489759422974425944470498124737577103406034743703031309290538607165823721966098099521116746359267141283183368355042964663395507566151622680990635234775715885016633644083042834417917675672617177149575452366785666826993429050768172185206342111947413936290886889278516939921511152229868529692359942825616807647049716811218340518098406992775622533521882353557778082958561666236289956223671569812003603884285097500046966303443601541983683911247972367919510971412120483607782177061274909002037085740016141936491806083210881862126241995767050935876903082377232993791867711945876247559641750640560393311860313866993035605589309466330479311708544061933687073313293011389600326398410029411147484225460307377452411984491617786052824408794315720769048064941946404142104804736177014265855316730088900399867253817411837365955215128747585175496707037234160574497483172749187240071791405227139315123594084446162483178098450291063441196845438386947765970931275968199990300053406286909230533643855129015835607493676292720955212030769121615633215563586204473113340237719612906067064752897619381008708680329568265148789700806511113227288038332550926094767461858004846642381618475827628727398355809051682772904434937011841831842819849105192432360841684315600138978387488783325041398760692081899827648933392946847731441371343926084834554042069708459354329743745491392962386721873809406158700904741385611644779417176995783899704861667473870345733023805653668542076964864140735612628238836084512251020246519188913602879403782064393346027025342811649445038862718578272060249662320979052555130658323748570720706159681809573334509726045382831552147569544767813039302333907319081826480703690704175337399257012345902601139228754083116374603412039922924369480297080793522151581148511904664691708688367971800847418490115373497495889360753490819120924771408211481083383754262671557200840239474881863365240212242449189772928651500440878908675487933919616714088382426356484816915309068435389043018713577260555306092590210496872987538203860363111982639945985697711151578355762757776047733313879873288230096711824113776478699560935389928657381846365102030315982142779788395624421695416882474511643564475029991972339258518156767149096928819208874385297283571881703677630027519895628841805659041490535544132695378175012632955979836911171632265914149598043378935864649194235295756040764492375577515430327594690127869316915431462276550100541183054658723680454343685594901616404795681582869717193302741526122498878512880400205264538046011458040738918900493334564617965553606418849311359526870066384999989045010897062055500355082184829426960125202969574316582577926825775980058300046553476797871232411205040937425902278194441004523371113727626933871596080905494937378688052859638157402052500512310111772555046284191265103457682119941746199282472270858693095786394639364887255339760112881489398062553680739922529167328106621414966960866593914764667386493968405545831529945844651442661594919840746735656048157365120854808917998976595304784601731039704535970440412238263994469557805745100060347419931821235177491744499872583255986819146485751047273829042855723440795104438387149471205526453020659708541920378834366723161672129628899130618364599600979284304459740203308538797866409528504116311559834856324113617737232491109271988123496659133775187257748986539960256071426811695293322567076457515948302187333114816181779644086784217059428843043995455935710100694664888546991391580850574597883254314858133411811705284203995807162436552120183632941490380115581791921737369007725309348283836099813258229016428676065789509082810057259515142112368787524614774609420043621822072449626938134170537944911375274398943857559302675606922618487568991824122897237754582952492569830296675194673203291375154375657569795745267412712092581833934959009948912385588267636788114591026934629200249272963076652584454950072364195604233822132101836600077556733823450212182067491015855992529803347385964280129392602954717869826050182832689709745233645393120251301979628111562538457546350292092541835867351428587036259515941282686832566471916246012355237937903475648571070131737585250341090166228404260802211588304913102998461710376140402650667506460727206746893899882746794251629415571997854848072174240865462167896419310011768650481569094904317901592439392185526720539019151444811715021952130922801089789734793435628767490023559687820907474026924951042791757152846351415723663429013139359136341848657039143101531494891454062204836723539568974333757901014167977434747767538331039649316005990763341117221734756552651063677190122927295131037275608379403342973662720875905562952720384798444485413304674307140973325606416037378266988607111689145579152829507642605457945387358681421190228107257695155345958421835687256091891063474727402702224765711758613821741394199235094658467210994976794070185709782899719413671623388762539950758023941728030159464417650198592482276936858378434904379038382661292619194327486398334928330479087283629325475745242533357504321903950761594552467329209453096629762449843096916784130168738941410546203640170786778070647738885082782648926369470259226829506957806998391631120652949035462219983926633969109888000486080937709563145373325078181024154539147465503822389862484098024216176326349700509051260135540948599359410952825055179404682485682792726460703923009257620244994858011241075355980106723431647679847473690976148442111952076310908432124362643720876148450290371128777466965641925014722201182933078457145455777854055547980325252720242898111699626663842069632097041620312382857659353004310281474707301894193353992292825425755798932320809538356022528650521309795272314193026746130212031447390877398996612744343096306854591378127087044463809555135809384112662227458822269626681918635011725584022900644382261936392785793950729996713767187311583739338673156967710733831511628827733507439742309170467560232950969661473474386268348534720271697753736154787285387965782711303250274881600090991137573735714458243590856460574919176266226444270743078836282462476616440325182316575075365094391827905102035940728106907829204103060455561813585901473638134740837695300502813387954273848344415582965527538165468800223160068095336559988494304462355444827150669038317983838661604083346300432968357014406289869955967280479842482069860210060500134550033576500099201593567039362890574556728293319824747326031158992781171644682125562946674669347473736637309335941212285490967587123944335382228001289048663094272373847430974552279173466325138196766583623702483764148222411536972466317455637656769882789932229217164858988624124168962742720372627606240903524359938031918855949824431597207807447672376151010585581014631309000343928278384741664707896015621685276679399306861681918626679642037323641152837590672672232221522856856817448111847183539028220011462798940019237161562818589186457949465632737389778447031370642464878057513291624197342678948449390807919048326104587485657335391234131177899766369804637614733168735343864266078496354788172174762139192569625278017142653180053427505856690697654570984993180594508415488579198578976960913696646023387509640671363085788601454483043188381250906190687051318497134863953059813728643965117259701890797356101981799395839166468621356496023177862958587637795406720173297660511830535583454811433602779872173972746845390102379913568561474209689599832975179132632767955872350770363039972981413740945441225095865851945028090561234521280766166407401201073503350061488439769780308257929859144330047890083306261688093697909562416914309298357778396947974292422404759360042865111564619260622753489218695282342356417129363770966290249653047475448553803180006078558204111093647077343545950057082560204687597523186437568292208647350596600481640634876578054607625523145975720226958366475350340199501394018815200713144012528254754997658440479772417889419478686675393354505468518266401881350560659784964441429423549298953382683647425953007490664580706081970009785959591957213198580507874453820799391328329390006683145122897151367430374447170139982589426831105489016159545019565538498831767035009908948325058362733504539210101669056388745060507905145149321211054669203175546139010137815695286663989060070837284483608034217165369096848998908213580838184357150644294089844025878312414630740301843189087174636283570689290467584692601510526930538612885083087268213771898404672976914550329627836610105841282579757040244752693796495684231773831028450280146769366459425677534270474016281200522244532126393468820317875771765483448031178758912311499700956480775170957030290310320891354476750311182420191919617509553384971204335526890728803587611098205894310842090226215446441572230637453775712701565606269811152326210181787053382464861526620285673744231174084205856021374574891887644835847470047850199248498079141931689928727675204068792935033585559345084243511588357350195976182709651124059289302992096383589555135564938903422447188364346063562114130713245663139837901040037192176532819427789564771636633195441671764472707209478355705785735502631284961560743179612079777553254787321295049147404474024450597580817647706431722587667763229596084920098463676105219252365729259839528103493228654543486656889465099747916878552341994180708500005444013121652621784781017950778266018141257409402172254940134099559451077896598118344322230882740534903005489355535124432337012389763823805750611040515384982264536097022282691677054359670059380987149829379945186975870887380050847130186389949036946898655826553675911283947615847798278999828384369877416617905473662491999360439919249471931279466745044523598611796202504089774377054220754311468483682366386905886790108063825624615195459972357503023002364327547779330456707233388311924528785933260937207875170218021605638628868073023456521231323403015912431472093416715116096408877863278813354782609100028259612810249848036476462402628551991182658797466244285591249525240624232318545292862476735369909624805766306995582497634902067492399510782952520897851548746572375930628621102951254057452686610051479943049882182985116662670236879722608644179832221198910818065958783430912926629470270553670438998909772605318000616816171098183894239200381531682338465586229073873446778127472029601359036307564049011033287596677452424897270399615870171659915875535134514251390008247680290270530106161551052295734057214738505157907428305699913922637984355062071449722566192316731607182954356495392969800370550646510216556373065794428449878542996911437587047838768308400767976065566050408945791729522705008147964134163627256351283223464170717347938646335974827636018076934256305959914979891013041582551978340166351467139055551314168441938638427071742630520403078126479937847619253089794710973037414222800869538819070927457212476622275112648772680623596830182352385024397509179116188177885177493200888429680113878581653519010208778049974001492964304457824511787520245623846029509289024453687497362043534381680523123270608871823928206865130941577949500892968629453270374758739773404709831384557726668607057885909417131371764316039086696320494187846494054271469500714908858414990976012362690042597482094394278521200652689098238676258833102978340790863033885956922360805302721769598250482501708569365994445364807416973730674685681473999721258124008395061377195546771249120012065364645040980234984217337789390356370896130572879103014407614612923399501114863252021438993632263348929457604720333070531052124565831649618373854383791058555120118053755881727890274697906717914961102851526649177347845943295051638077508499209538005809346837427524882126857017385864935096770608658668216711636206772247896977894576227029058373493803905623319659557880642107961850941339075585793537798306110394123063961928590963745069003321010184788187965776063725858416830913817352286988246912477864899883350998656155656750153535235285995656603244064087642467347781453663105773073375924078561494142346646300825033706573589169942406711691317363412221399256603943714709615811665851971332960395275299776541358932159914878738648713315290881882122248985990702096893817000642734081245931507637887829794386789808032411706669444549734221578643578967977713682027984066576372029280512625068410242791421007514656028004577787570457657282678501610656180795898199224011725365302265788042105389415740301470841308199615937933466835406670390202775422239497467772655126988843458265113167824692985728225585068069331684877297462942039646674948482944244510261276686978090276714234174890187496938670280585874905315436251730616560386689580703918483959819070542062332189695967679202581273137390251276238771077876479358501424114509802271617945426023400836684513225570443480061884765803917035254369354448394167843309970860667887260026709738162377658716187612034142580601081825070376968787668883364988522759253638493814715977979767526348702986872895396765189761848988113548693574936342503489073463374824970850377043856005348108648304830872106258617756788293507237934326393614757929434517019182294385594575651280142508539257502087899750215822033820851809538963630564301117557392264872393655080589729274451956311489487831864436604455893158904250378180649875442604629671829143333757816559037795512355106171764768720417072975289814909898867872398406209982682320874011718611323414042290248200827070744018943430628322375597442810428299911534458676112838018611041803315514814701648067814710763411685827396805341815505380812766007158307605312005063465022297574057625128736177052856187538040854903386616153378432927555583890069663781861734556015663823089033339369679724240011671608813094962947526517836320742662602781834504728126811213056816831559255585344226776305737061780499533559664995217057328546056193712600763977630512774539999380833641809969458570074727812755923708484731574818541105575102346043920243971462644578753347432354008661761087744488557152986344956408520491443564518892890083813438360186634077739523250056954862941560171199372767154624258453291295755573221550679239864245550262486812180666872475368922467145016217564528022995253963000720442492515490191610826274139628205909966766681338720247008331642714549600508782501363992828358841696083687826601080519510926172056704126073673626680693410992099691984050289631199945548165524302034117592236787434548787057499459191391266793832607593193311856662442397347591208815673563593951866453748786716204342377344179452014916871085565650335301356949369668449359640887169069588660917367465607722182560071164623098872467102603087474579863305620047108166446173588479937347180666939619797627459141502186956336084716837544164980319427647478238724599314982447037986541681392094505519140928766378552327148030257401779676988485805243072659741117427345977821373941900208407888086351933693687151362515681851113687016217680243613638279177448679021450024787208543520190531382800218075249039958100594808607984209929303505279782206517867531744926632075501747784207263321726094379941121311558554199056460556189002365424736414892939106801673843747467709484471332763141434891085564388283993172821800872588376671869912376675458814800310745163966166671786797479380855284389719269073815769818496994406071038238545216138689540528844563181048711869983830493511881972806280037415524904426104187948953723753946361176639772209954779614073678936078937951535386908581811667530601332105009781146472700887762994696657828341081365103144769518330051193923045176599649807366279733663358559758061135694005735043099750245415601694585092227235237907628653330967500950679129925116205718078322752390232706724491477705404467888583118919657640204000556056066504192171974418987036532379173152947875937166307692387396266236207477459145186660361385636517956546725750336459594160322936911942168015591009365102312025637070300009096863028066732383793666511145418391865174700026702536096477994930197086206585164660621775361685230861939200213089241348412252889959426285007715527879180687413983892968805239471397026504623324321502487800509558307131717844547932953984076006138907253746098376543543974151234886046508426008455044635747946780947276158120641362054463554198655204119469183597728652459394073419843435567716785402241968247176355159451950327853881291527655161646626764484746781662578900105249622021535232287442640335279689452883317821332297613490608064209299970938859777772417723788516110199386801713122158683897692366653828469806921210583565874835221135816678637645159558839065804220057350247520433106406063388817629608699874824565090976615734152833204845068175239866810319432624778867596286526321396299746383300360171315109063252800576876775621210026556635042225248890216115054015496948163987828421796464425644118696362817937185341553007779320458494989455620850813880677452253053902282249695151713570017459249309597250615172413731884618142794115001567973630406719707268403824419378029934982647183465464909846857673261767274973628350992175318815003289801526588390566121938210374431464863866811114458019370585724450833605768433945984379622595769725753451881915160127055447329542501313846907140877216930152106124200671701796916640259617246159527920349340734264139501656273099638971797411010081265491850291920643669054762331921984293823255794957434603013929965713644749592691892532228232330968542856672291732586853858700434295884642636650919922276062720418642663756585984338740186779266938278335799570144073920621221961269831002944008468535451126633923870585104681837714746361584955312496837238511199543715560871276861385335634992066641238983336248014797146893323324536341928565169947075718331475650147645233376030802549882634548634933786969232509411259953795161843410178652893713153415840794263836907645767366770181348184581737532309927324240725342591889936563386425419440483363270563815026456982265072561612935358744761174754266155186469693959820792223829171634234585593037587363466162246592146639193426294892542180527645573745619817671869703751271900721053937880276787901571215421991627741588168075074690846755881326219969230022036669477067439410041510723579342640857532967280548799565062503231137485315837552793028063333879209476618082460825059846779692241709480778683383920168746811352313035674967976429977138637314053722430500024857802121762500547712662688354515609738209049978422344984951809121542604474064730359962979129690209212131575337870577427617425128059252401124034337777686531547481678344640964889827839161144958857158051796332338507350564126901446550369836541659520490321626661681301205512441592977352597835785421190573697454168594823872598322063895374803889245774230999000170538108710155666140456891007454525276918103876946134814375890955422529962043719110302400082932638606299738258752830482135762482841116693594808140038504817898745307829313649865276530613045735372655224190616712946581695534586597910392971432713216998589438014472071701353903678019610847353898984295272367817300558407542555338923667894961107609472311990595661863922536751934167893514085944537716226569908653231145326596411792183377226348562530786913152168794026584250082558283441315130801524416976495925978787556699691500754095111847062925663483047497280108265736618936076364416094126921720933010977997405169672504119077321783912276136870201017876609113035539860192398763555033451473190751077534674824208576737789019582138123186581244792053348126989637277494032211050420645516899661107618383980789055558078041075350825622681479318852414587104926593046379409045501607009642597340103137803159094936405814034383940925808874731644042194173805498988035632720301665841285231214801180502934360071853538175035903132897744667136625869290334244368468430142663376262697656655561177690348687286434139509770173921361193807080600447525458890483564802616382789895828317141221522939454406644848074055927332327715360641006066868714599132968265535813636967984853785485183348372826755231728739046393104003523190660293801515193337854737432384162723265590787067189067629248292537177658957204909901553662675445554341222241572784761451189983822029854414111116110643055428795511635066740746804104478221565836779205958398346740242842901347352124112366533912585755815678989878988817602828430286085589529962692335679631982457497490909150152609404683357976831546796945789961786265157830164269859235324856506634100113677182092776739654736425298819901139727250837009192447682680100199509369288532959634028478792047364782741100933633060906987286378422408000412512658840056705574026670621392656971909789019831301732083170625644172443918424834450390507455504062474145830971717218234995498910282132988331495658733302698167111572597411020724883830648235754195643681806185370262668380763132349829771520860670456859410444308868749097735901356095012642341826055501445982152542325897870299430084144371407925667476489039810284913657371055262000126434356904318281962838563319674201402694595913777033690743127370890030653310799211120745278839599732773397121867428365406946602517537535971586273994600909554099786253519196316939805980233998289145430865620300573101299426464463896078548637434663251059168191567273301637335194978927343982525849589205290493481591122113719519287247658819024680552686062871089272081293345441521976027367236648316650840995585877993677239757458519113312813076026534476066284934800134839016232561582732102706716892998651691399767697141533878600619661607453442630505498775160303023969125032396783720433825181052600435575030465425135232176663332522522687156282159331460541205206856338203295359271280558086176442795916350595032480066185108823828536222324008632148527530582787296240421493101865550822308557110301314447001939177311322579549788919627711719040524299580962701836959433389022934337643282463302010624743185861861553775940027295773338508912208490621694763197315891673758786094820757277283794252231198394423721560259068244854584775870970552309247131461700205091123201539905998766749138051528051345466499323828433284649486685260214517380593523414229965377065253054189173043252800722480728735080032420909676552103604224759259950344219038253581369202990276220481501243113926855708446778166001397185115447881810472604881911879564783871943564271048987631351172525751378257789593406516667847972078294986401412700210273116310863476405204081433902148022529220062840728744056676744783137393797226979717761124900579098908449581124833155093532273864102119955379246029402791028919985949806684477824970845452143952511464196908996292564634595577436967061156278987053846410194811460718514595351867067153401136958541092254456477115878060755019649891402806618241322929344395636373929255765380033222814904761576766174672223930819947169475567125891315240030967325093097026887249826885485952888302502976894222285744244730737376361720741829034984792455921739004091180266732496759522509009754465021165363039370674678106483507667795126911956276699987704723475535437134414158016850879522016853275680206115041338720160625645354098255932996691634251231014033441210445884269019862782059201102017563891303885438008838984724989538086798806914378592504231422096060887258102630288714746476694669126441131691994998548791531121408015757254000082845079569063919209548238870185558177676299796994987431638257941671769039196781702053642690400801362465863490207375439928928444345006690956516975617132143628794892774869064638787527582894090967939602076049977556866009471419586015621089111712079546147629080417580359198122602855233679812330084407834605946884349827719160367451892309871093136581216922166984309854049607185120197870046236585348227141271916945656036862271659652452924827387567737487302354885244727853606084056530175384359150366830614488365525732863390208729739457192324464382022916573673791374526111710586230775760315789723880027563160073835674571366301039383363362310073127207314005190261447770078719171342018609626177782891793885689010676079943640469272234196173147434631232118344324693705780176254842452271644155765070970791306668531553438672033886517021136082801455417224442320610139940018607199441017185748186957709043223360359295829340814408946362242262989256657678607514820945142830724697175323024336866289583597591193950295379080675493840556352276522114676997616805206536223591561835505227809793306470471714572603155507556443210369874233594773430185329999885031466617514874815292963977178641898286159426789420702422346184146423909127277529924018016326424609607013785091457270153350270174790963740875079810314463005652061424659434515571470602193452939866867521938602488607415291894129242028942679892746465584080325556688890943747061956300018216680147963166996024063543776616840031248798502718117110135135335030131440867077809289751003304691239776124549229800441633992884191405913924134073418048925215344133600318132917071155098823735055422437008059691551015007992415126511017356017819060578024929788887763111801326150667779685618054717536379787751331491059547772206464484833023566365739561043211680809917144823150722725483968214315505647503391621697653937076460465992529099890071798890207880420847633318772748414654512925441426461469966469395949577076270340751126699258182132064288246993406152110045458049117326105148096843740408996527635349354564024162145660948574357122890343370804431238227736533249087306206320628805077687194701136909473764568492120891587434643593976756376619614247167579984400621670055398066329915189689663796549769112634619898366345419248418888404623699241390670783051772322083808747226672696671733108669403428124336927381571924049226008296427298553456159050461624880897640099339264343342962302863152760843185285374631206196584009577442772843691361123489335360215491212194372979286277366734721305793620113194602640126471367479574749014258336663343710187801627141318564626537412599150560718152381998957822949277667740791704889030098668215157629976702111718578834998057668028529345260989797590952849733791518997949660478764742390926460885043887443109540920619168655344465024116370105359546839505746292411293298958962551470702967840100556871384791099064228990148482418867777765743389425111866433017718537732833092462232856714629730166162402269954908873665626108523460873162204750573391009204020573869652613984025023115277660061897279221231648140482455739928768716723883650519138736424294901219979245878104165037063754492695614302305084508341821651664355340526594762010860845089766510190310116391462805968747717708020233773675639738148607567545512051497869701029946024727623836519161881952677817644050103226485879380585350499697319400200650879545583873230342348751446956347801504148918407504137670807021189173979663148168471900565114627928431032631085399441485343408012513229983261962566598586630263163036922481045957754841669360651171027025570423513699867361260817163190915111522309689461829740374566087423878693425684105919133297334915382572946036162106680030605908427959063128678170019812113233015642429506225845722276252096827176170480760029888944269186433133637136364098329386072513197566831010927666066676320171763784174507061821080354745387374883212199765426362805148982739579728150510399076920345095761392985502710161063262866149056193758997147115545267396004671331254562754966416956253577067513103000147905204737275345605829664676679173387054057003987671952474319570931944840053319365754676884790017108819411926680462615059648014438487422212313202258882060931754356293440783619755932885303671654738812533919873121524872933646806710017201948019664914686604499778066980187024278790078309696887225715723731768124165498556722740446261429678482627678466114426463870234945481790471333126484042983336916780823054583317670537746464144627829358948740005758916989798526230581453071964829451063946636775891739326397693343849882554358968718610015380582991926631433298376354760452607634486895451765617755042341884444296299871192450807322429471469028559114086018731203467179001381975711505155701153335207490448934492474429255494165793069245667569858779031570405569349161412708529967763226777996650544350384241429802261977072564940486482459926317271202695668069674996765364087291316928599904966833434050267518248282634607707119563013267576234423612456565520301103549684546597377247394858532347895462982306064656062322783440142858163544786049473925497958448010050741779790821843475405004299008446967119823663353773762107139479176146795356214585318524851546341342621270032490801701142563309111517282831722293019116512581799257959820957606417493794295079997666168872102037685499907999910579643517327116704899831830651907577431444587632107012758693989942538482095375546372664282991132426688094678907104905990860788024108229256186785565457051719095607223204844863115972411817818483534917279615354389400230378183837014599188637383136804714999241519351439038290430088260278525487987778876805532231338606428027862789509432102652800074898932909384352710627416794600247631787306896047032899397135986275581764435830954128291150346936603026046887410041118659992710191964664954890282243034083702500837722276987917067834610013783182047281748897016012687573721814524336372027382798802530801068507177354262365985991863859331143030562003632456776881347152120712190685435833698818974905292025623861115133423954694950641186450697664428641036887694191263134790110129316633780851150588145474985810528844049847590818325456848511217135586940251972487059990842005776597587595891020824343177489506889847165987786055056144078076507450602442240001727456706627252302799268034176673051166028529990327644277800492638496657932328242477583113189063639760274761058043752898737619042663643404310391134122949966983459649694477774569219973415720592637886332691039945082907399903365098743418105106766959807324416826944509954930528949883765343946137472951125917077915478303950666226024899948027769011328659573894584693518977935967045135679848624276691406270223843117491478564830999694208846255848897524115964916907898931293789680219400377396709877989825243471847724383283641252141396714004863857945453807012126342018385581875892886284105039963004825912958175731358453874195203767312508167017801472739785151076820984437791303502966435704779108970931406156792615534937816550618014896564381313185741478353724649266222382211594324633083617840392819128319696607721473726855129249723810514579956588669263572835133719395534618566800552629004290885958583685595703608737184402058114996112215039097251137636003991013150677497266119463497390886562404823449144415926140027312151046430778836865402145971851417202036911376385451729873118293649579561449857896691884366104338687766156322293431093480070137779494394779013097167476412895982525430694166726876393538396432088196183259018436250175501393370167872367942855189068738903933318395546879799363036950475573536253591847298033724215901990506657301829370796386083406891268116461961955025209984399475803549728665758561931767054861566896510849279672162000825731450698797172842832284256744590034721292679258071810134440166980447000720484976126271584247907987882241535916298222193234759520101044800010602486677198252304405400674936611509869107034058551086983612922532115106750346249929743226615290240451899369663334273516600927180859212943588281746811647529966054929674205613966372610530980996072888207274188227593513533186359243810279449735187885326319282782815718873193723934382740281845940535808236270475821015933294672008181771693303017676528141138375221016141086465922748965551324399432360789508001964583437055005344642626182005379234413071180894438544339509245572205100008335378558146115006792325243007777333540367044993805722296166994087375763419741725601034623535267535261696822091425381551500690153944687867838401478462109633542755158690576739080211198689932137731939572677944998980311458992667775916142906279633214919968317583441538198140611267456954878142704118870195532797238075331009522475311055333577624350312168146648828402884304189147403627393365367839399661711853053059324072785549285726426584806755005474201538161297105135927780989582099070762962524500325437995604800687797777807265077295009814030083259501259926129019472039615497364234014086091680724616693739462494227413897732634750262717130540160380612760668535704250472332382245040203483006282044040027521589624127314172201478868227253513653229543492205917087784131380983978040716080184899559965764622265656404051881305671371520859435014887267500845196913565026409441602503854172939804367997455561722641069069295260988314393262379917223390993522166379594132795879260356694674905340432747715787923463404041529001588874018072192940411686923794753480197549721399073455141701525935392513452634480856943093775601643503991163521015953829611260994385488449582214481895268029647355519804873189979784661378150349753782165647007420055438511235618806203122204583443381354115877737614134403664312238621684720476403674296062615643874209475420878406487318474305590226259183647556809562240029054670486628686865312783195745970272160791109530065729686599645429866320621367964905575600732136874953507121294603403165496833850181986078992579703344092153066334153861234806189314287824439320100291929621486845438663530601851784247289616002590537522399646961440463836350062387439781526564558046678149685786986129696015653753899845505776554745629119743342324313541202837310930727695575160517758222771441142313890603840837164907828042404396874235610321485284545920965126371322572980687961269156172515811118449362447732631695025428563467949745330112685126845898029437083613108077167894891189287394714698372355653622585203208275360561233631850774775200162413091409974476600916961226006223830305544969777749817636995548572707004990570842588522852493893843943987571206394834812793143889542993199500393920388432823030666665609652949945233150000434184888877536753479492798633976628695663307630044278999139577151937452125770778402571074277356847729454713889889143873143377725091421955733734303963453004690341021735114759533988034867736741408647461266527336364567070736210058839188954782577188249538916433654130971632499696053547341490022960934212601539255138227011293618769642542558204329439501640625692485319794154618558182746640074786379504120154171947683026475307627577212143359534002771493742335312354388571286844297548226104795068352443618570045988767530967955708150345863425793278099109322879167939547744186681112647375101265374675112372568447004234503580482138679095361611055669391920660277678384144013600594183573882281908269558715301890330344629090588898918842237474452380716470742118690969574421583842220907580432496896192781919829529543865369432813531282130760409964409334923333676427788621980919116269982182499202719671840147679485645392181532826393918206815798356870560539737585896624656715555584161297429798133859949159612337268469789817067869156474705176995081209389342922740816749873374543699399349418294867944130861911979037576383852115018662246859753169113927726661321220164938076536204041956529898322944992364709566147982056498341546399785505703038481806988738216782459450705198417869803344636217278938011944095488520106480981164896469228606667074778576372430769164296771034044661185373975664466427381018994728790086090078513395326711462087337790326881404126251040540802232462952561566233321564135024814499304711262916993922061367227014453833608470309832198355717735275676867848555893732377618955831674623932651230140175079193359232130807347279989960772581534798688756579706008971110058930501304375199557838977243227002201294139136232047925566593740654581628262247357147743125179889730815840851561455618872920256227287695995387042747625681783244686046320113552565882093279274072032834381412997407972880281591140164222929471638774326664442804754101271530478929290023141057760208228048720745828879913164893301016054422732544397667310087292207305686935448006897868187516813381779982158026354670901735132783061997266138821620017119442972235169405334445585117237958526719092159155332702828302785376307553036492480390181145532199687655491818562106123023451546976212616404248475158629169947283213266112870518499104280554706262977906650555643656599878458982019102972787414273812960148631004012605144783263968442356834735391179224138987181023346965424843471470792185922192812157951493029086160689685692519280639528589067042843354205373712531062078057398779116898775293848888076956352397925669221299478337530816254260072717824737875796672641568611317069635283468207320218966418280553561170017463817018293094095385189596979070892559747715618784328621393976809631929750240448582231387998599401044485599617788148534423660209820239442258751707666094783747019980307070335275124906625729397489475486251256879528232065660101743763552324671895831672334140974733528969566733049610952425975523231170443314424591227895483637290240173434438466345859753447831573093720389203907594570696534614518595618078710063373317586509549585890383191478686104584243197939549468077190466233808979742143361002155560900064662800906035211660978370601000290269280364589511774281780091883206183679103639656159705723647096490439647667668907857295261257253129935973074244452257500732706052669288720888083821437411581531412278005704209334521294609008074684161433359909064897136308866878787213565753705785621365136912259280100954492693310499893433377749032642928567053386534069190200536311234953196566677750625378391724650018979784393266846759846990776670054289644987002778537526852963258778376434188256779395842489642949381907407387644955722509019596956078575992798416234314984818134454908264836613045806517887606256057278769736645344804643320417577546244430304339058885814212854382750538483065601932737414979848056648436479667654084976411032832501061819154559580133589631920849544478933614699121516884979567116708742016798981203442020344771065958011646826687377785835739415002124583297845046167495833911163808891358628977822293117374695365460091092984798180375206713527491857825933135560349919489698583680881825273367161173855651888708640257414618367107549356348784654177806231731595776445018390304627991178598847071647237007586959830282451508333303891909666354047768316419618765528012741690694646312739649966865698054564952835865423469524342300706126696359062017109134950059382712782140818164025173891540605681916484707298521355153290019492351639151935339908410099868064250707624453050921861969563160277640472576948552358683841266428881238674572257110541772360482499751665907437404282907418167057786657347720314799827717467523667200751497957992461065531522854216583804335013108158121807130162891808469107717234201684143816645116856515954540606300786990127334539083328573246657994070958861596761951589598429391358328084393856028584333285814057454024629253443563976669121202939801731466428012778935784987132860441572329319109707788151460324345204507892239181628898356844984852066009319566956914423192485399480123203299835430077286193013556393969649668862355643548794819008325478878209326044948535578005194204280641628095808854874260426478547349410986801267766275943517878742379297082852118494557954246181016764189149730353230889394427668641987416313935373486550979071531754674945420950163223694123303308852049121939001570977065270312060464007461010302608371953156514414501472262984893404219142601967944068647469243950410785307650449284909135018057343493308699232653550890462305708579931940786857401715177530742698241669352317075820092035486568231765157978323793920791696561950744680045484998532053417148119665885576013022462453161595232727895302042941722550405619203617687968376771182612219146873718440372154192952344256069027600712040919821748259890288516102133560425929910757560414021094550612232588544689631484480766805512652346518193417495549420034576347467258479968256417231282416244422215274706194444470991199845146289532230697538486355060821586048594576698900855360777614735140814714054713563609422067196232895398878851843879781764476410133152575815089807244548368519033319112907392436393825919818111815969974635492031765477090186845789795584619607854225118315294229009109573545425954232136033353558184487786738753140246134201834232719723367515989953292576884073195406247722187471397498530069910616344384775625662641545229034765286009647073881178719893501089465530666795415700158437424739358979983749978110993918138575400255338050538106516206932530828843830459444678407458845597074912095701464856517531856993049486069839071559454516051890165177233263160545109205430232496355630325221177946330785896525345668075399461726608823225757916537809277350589573162751066949292161764956151278864827096635273566541056574721650654937321382273676347564892292453011832497354055857280455562222005917208414027419995814137604638251046037463003066639079346240154564929079814323330443789678411330799097306201743507880651178400418765987049916569713374422069226692696158118244663141167268400196374349609880016755276208387413898471334021281199768420754197191159866819832904295328933566295571787914194165581083053941183166280011415291687383180266462767796396068544929501838311301994008340099822798758097986084925266733427865851037732335179025156681873424756058423224762369218355447658953863105946624208853548371350256412234320772250257459839276669942059037007153587987883590787171921778090702810665508461046144167120216858110839637491278597782734170732018292565810337103539020204995040510593557245886841911372335275188930758588461040799768826477549341084110104745950425231222566734865391388564602640148852161484875658820580744049180020930129255899196237347510635008390002974034136015682860434195091133626516604777912838928340225506489324136730910622210713498264881036244647896131909871761084842318760732332243815794819947811035699975449151340362644783963309732832936676526855861942113021295306690050833623361750408034416167256863500582667512271709122942230457718849911923910457524259708240537761892648711157451784418012758277875284683579920503892955878204640077309993867128146855520928131503107998804537223947557588254799451305845841384873154775655203862042282455859708104734546232365327040981167343782577357257202650111570792183133539300936982657930762954574430323283113379520815167493954759992195864768663046872925486312177271994501197712000278202522764778059218739548914477739812941415331280458898162427354329869633824736033721747840890017456417318376874075781766689046054125049654114720998394371666447715734926662475930028250691805209880484324638417423726884356619333274331397459646154640571157100567201621245083987586241814588383929235169413758239930325842284755085847230955520387650684718915876950525201921528263020774896749288305308206047634638589354007093721087026026115281100512270809597996422352828331579995409110683395928252098555448773406542348000666747982484268020496467114556735988823950785188127933543878933022354719720694971234811187343638719697407003601571406674000081433086239806335712372019520655442842875859778906788222911496854683829514064135470421767399953631149626235146626072375277566256991309220525374229041452601512538409493006157501095343853994966868408185838059478771709191397769069462665941159025084667200180061692631468520851554724639629114901997893719505963719732294882943944163737317591314062301328718107757097897022876169275609441786493785216351179730576726025285674212950823674328597992331614136711075101651381720230121692982013133970435752551718659336238850976682193250503499003080210762578140889199754148915371310897649381396782387847394467991722761504226016375326810139796705492343757893906723135749944886985991097860684414494882630917056102219765230195035198426824758442112841426979695957118967905675673151385503351838808494271509211380068724170915780206910397668040893419942315917435430100475924546597900554616358415995547876434067599385074413751947934550679350664758803493686676450674908742717242127518433972050036045534605127553024086944439873000260345002940847625079467125309050023894597035434890835858399798531729786375486673101386769216353540483342901578445066375706777060936205015754495853354297469004686260459349064336645243691291890400587198896996014822269605068595518894570487965581812977293203761946870761505622560426318456707019995642498923374234976081727792850778674258966599425164346871305713973669473076523956155647137667518586686127502926569293339462964619826491249324665288420057035611364602276883459803454705284300947565292898451117405058524093861588215494071644389147508427614329831303878373816533648872414959492397035245459711374597488975714792393379176254591957299060858384204229351541867892025946750967717413222219731653413767414609840883510187134163534316239780244863021480928836317723685110907277989991970806166886743222997215003404635433970998439572552670311527759743545736797386123426762928690850448118692239262585177211169396824087975016186715976989519774856241082262343591417968101359890735265452513251427819153511174711606306015504550737142447181859151008101774256058261238867763190953264795617010035866086000299919486572764320627313696103156881876811720443873993091830863884558227253178452126983350970704602675964883783616263466559391721278049431671838338635233901372155450586066081334450495964788646213511064494724535129853833872452581656028687526093982160235326025959358952103925685091932093738304812953585779803296348862529254389072208814852201734547469090854873109066804152536710914389723815250601977699840567674396934813507170590023257992125642705490467486351821075897595344714490416877724913996959084022793233434553886901170187294718126024730487357408987668837785086097507641811862762369954105838732268295667860189397270612290758349351107050157308607511054240886565301488060250828138822897984844222326015466114857940506791830483284736772849114925020752678678063827190496804949096137917306948532422238158070678550494288965622390464532883945421813908483439861824775326105561760342645493365187629365858558264673967745955184064825901647145832356849538810470774438163260294589452767719723948128781440243249684973878345462378497705733494156369941591706640228683217131677187369881174868914772580690587835520641061132034052702929127409447748840809723456527571296680736750409518056755404413561568405862218478922875009993155414543370108011874754117035275365159488392544143637877133295319046280873905235384024570538117663771013776328937280877680297713740076267022533610320944941410883885481362134167640705658420998487536371849780311729023964015329004522533692985721187320078514758171700213753748004076915603039097677368447217631179042728679261162465534015310499225700454744093116063377027836039024838253805223677374177487779198252608555048872525193890354220099080164117327076471347638562197819820182868137345311771452795341432999220760753448260149043583819324687488409344865344629972737868191736234387085230981860065115522405942705592150112351251657009772049497216931765552498962821339405582148738413995526434787841890380700537066114099657025091924522941826180126677020675046777626382180052687215216397770165920176806576850654684107871545977014165717687121016498234576957806141931572357334306798563436000883535901002344642152199652424472763231945752273578201218903335320668227287650491611903624290972163429923412384951238604758064974403415095381996156850691611870195798395197834604453600765937878585724250858649501210223866049007905715627817494528396066497389037183061354170293525035532687893450100218000201965180368230243558022454079336997171243767875328633606958307078236429260599834925550256775695528470669489620051629258037614829135843475010388023815477700067140195104898267921447537078904200640657894581592741852492689550904559469856238181392943295361763372482755608475151188697790608907840920491709268843039689031107991429011528793013456269688210045427099049643735886162622848165925956283997574043009688169733628905082322207417735442834937258204765744961057230425780336995988369550829504331295306320567667650028507019114793655330780495074146660025486860264741536167096154149255109246399071305199081563060716787753722197459855617209605569874242684507470382352533043693290442198687723171975457526660027488603649726249938185010523465906997246646332372321595546132303002615443641759975679073117853182987503765067658632382026654537816878228985625102002698827460344504556887072961101613407268900341277344324928161369030099080106730015945680231565875273389719334243862116354860580972268216312660110464679478242497395502375918971781112400774857506219546301633268547166209803652211186943449657486475667525838252351287726171931740669194767301117449882797569723746335083768717558442141476992554527563467909980641378769867005508431336584702567184517407930230057667006990276538033772401821509907948516277632399523809811888276374426930026270438861476193170724010467460802435855769120032230002258783131064999288734225870508756389463420628558551604952784221973747439815805558922042850657426706575083757653287197121045816120057494911347688224795787075277459487876123614391936227685128633058286608440421615078124131561698866566555192714923648874617242685367812822766458143612112387969950462114464791730516879507917188024147372347816441509215171335108635477058800228929478775121078109748082734374915884595545842662995298517396501917486338748999596995953891852842041656008779629006868657484396757627448362065576835792606436941935487789861165823841949633077576526197725515927422999109325292385103783189202301096295376496478699821387858125579136075114726862467738774260022476997341775986267682049900998830076140645153638200792064011534110111945418134976832168827332109271499606276908819704243181992182897949105506371607836823823936237692027139271185250891873320660641059534406683896343961133859359581659430417902543443293069069813757102368918019736216697326887862347336842171562148126468413391937933254640966865340324469557751171060075420523947274629177543272400017801546957208737688739102885064812098100686613286177493134400909482213902904212758997734602501499572172137995363457460534147566168077441580583034281354840214210111789605484493962205681689494629911832673360527520718986828215929712687463123616230509967421240955415436845606742337066049772142865047774787836257006545248003270259520707546330095734241562953380296412661647820299323857308202250480237642264088925343248404158327072502990085859777355929826165405302965393228786007927580392029923679451269113092910722860102608446951321155590374102673750374452060525330354654150675831951291231359767752104297386268445546526268992256894458414541409358886762528194509785158918155969571061142484924668541696759802026188413554495477314493510110269811257319973876367713417540518725804081684975305235825501151933254966029035160470532208228465764684913201410232367542499858618029096802415214529418362707922225988113234131886935284641446689487100474282368411584365924944483575842294688450936995933222880788920690826301719057892816354251418524260079321617131098267153590226775848313126555625376967067010654288508581912690972087444496130346768661118930015124933268576916327487907561082892695245199380370288082888949081967067263741717833192307803028677814079796375213324424520847307022362184402761125556942614159446863470474620085424037080304223859351640027756159711013742032009003856292928899656049587666082258827915487716236066025738171650755600552577646514036603184818011191662294906913248268181467416336513655507879415807046077225139329955647273683140487917912662516928445652908835879677926740973766179591602271902795552797189127316796934179850517314239970119111382797258981198912924581994881129433837231297482657514026695255852268297320885765449813413590761510000123363249435628877187616845715720029200358497185303882933408339068682911947429606000352809971769412056056957266908742478999199135351942665527366372924282955113752079816538322794369512923920509260282890455083496893824186322575337011565182191854187622510712990492901087050210801920388866555461316683572913837347509176345521960604753266056409450723965670803156426891064399703862588312484402572848009481268400758808095416098099712725272684353821703225632234866362621596868945413019677114525615077411152613081284784999788709692094485802227037532227858004887543875588259681672401601767477241238139394229681422639864370185174233315423935580928056149524626450447855114352612082726442414726743823306078792772105215410827595430060709273334715456124066752596729390818452473793246817831222078797170125513325672138067913885856539940249564882198458058613670308720500846428343568909017544722815964215281723214753766647030209154191236847604856794963172249118235637629928413126063850299697877009291107039447974464519859479865947029512695099247382249427292167328267955260119340157233619578132302733275662838603366208932066583289471873841768528680616690773876203126310023104836667314808842211895932714072252314886967925943977468513821521462562962047325208540505064444285282398794080721522533472157661727754385265189426366328797940813092731743000897840153287127735743571018997550541071838198514674266175760922172813980469824301880666075829276506038825177140136705467121043121176071171434849302938303766337016803063050731796409510398114217861048179049623171226789876046773888779869045708673806238731504895411533227870952871499964690020515590163138610609305243381003703407545344811345948253063208023614946235028405556327820081814606501002828325346792897876164113074215935264000034983740604316931274479299951379966979096028575355705261805169511621431204235415918478803135461309678921897705078308635810592337169999901191632352479861052094891589050295926669017316154903393357943106701889371500906987604654678819512169263210027439542877224327558439658166947649287263122133821660689646663138518531864908188554680743560262836886309248326047522558445685975450289430465866833488722085940836550670429869195369229161676319949079696432697850112466666565950458664111520151536812598318863892266314376476651077826653656701631320877773358938953189040144194113474722994547633942607575150596921296722134664459335496958630297337671899284280958124440844207006261776522677665069836701164924772562591544368520976082346374334647238746547924583304316726324273419208680536922469678610085870427026665989956478823081548687446883016579611207397209054885665295262382474044630335872865683189024557158342364545950507786530639472217793294513136464838759663187767812135489884631252727279071505014490211444174293935212798123659366390529093526758903302358360463128924661428701752333791938968745042373206541260704610224088527066663695735464400408130275591601344236111847530139398120830329000268653317357953153110045501092097074521972601986241398860345283612554278543600745077411052784234760363635281668295941755166990924152061221635458459190037049096891774192211819910703328346453318251617377243720130496173563428369951698938856257610957316708240662730510831780815571016520161227634141347710738128630195723255849960047573392390272376727164543225009173643793397200305049844517844121725127910288377285745117724343571018755309882171503901700050326272285059922990012593517700093297866316686552539410230476534978626778926930164328291129378681638580739283798091777190772285330359533701664424495696636798918865733538416403552548706546798139078651244723801990895554358005206485502214565595045459646988333587957214702796016396888004293525577716857205536053856944233109798639639985279524869654299161878729838367100455209327904449241911588314433362421711953536381570761065818800888371608383185760323050284131919376147954978092998374749977674431432007758273098036164970132223655481756175352692666474399454847753042714982604141533037722038607554200326585899096077387879643862771535831346453124880574503888248874321069429096784933459653075608790272110648656347056555007952397604905067110772243628950528186786898705059181395712703818878271156413842053263384044956254155007647629825748750021584952179094521585890161800437182152763630650841672640817316581181975186183341378499074921221476457647032491592711028053966522753209561959236244973019390893623396021579536090870802678467384917813574985138058460208602591067694057365983172396209851562038086152811395655921778039389174582752525420862708067083953397260192521889455498183217151124906787483456801156853796003971634762714278048210170303612195107475188463943852712471849093964489692796381523243262307350067659655507505936798351272885295219897818091580803450212231851765090893038264210753899253581182005449159390723827094749396830726028251741879601329652500341455866811559910985925865426629150373663987067259441248954300170028499273069635818809040851071026558630958491596357842769368278592096933080440892083705575898519085093528694817985610792361164185144597217205845663712434085782205764929009063476161942551728517955791296339059314683461642222728586016063665190775228864430235654705436213916000371091372977549449472395718549054275208893945476342804961323831667793974244881291029092716572917962670422569902085168586029257406409177622893129093371099465718561059557593738469245805239532129746070597249099247630285796823951539913647975091864216024821089933217634034267492771744468035699685355972256991879035064492408566259839391023106458277532260103917654941427061063958299155509808918082107075981158386016920841155083758140482346318117032224642717623855778440496158451137065741736921074165810392655544847946475999243465410189888995429040117618583834571943462529864161299650745534384934535276195145138957061834611399348004614988535923000483126514415420848211223936531469905330950771383849575024749124192013991119185653131758039642269533034208354109478970823310865974286430887279742800011647204890880736759595819883179696141571240490415094982168101751813366308870285369326803444178384096343284703413008518267054248910840739301227550740970743806197363340319485095451858081324500995734420713468555817727888324050321962466592880914326459444804099035805543250426933464438163041550968978944433986187624620996588260379051225421817788620887641537000735406340761946010471300731351362514257608659110652454532176029557730929532134884478798610002010782817348542508610445849986594809627569645966782082845188781292007663190666919206094626192605798960251658094825733283015235723522290713548811767754940527487552681905991227542987026452574317268451994226909042638678344476156948329996415054161907465279113961691170435505621484204550503310065597002988443202063861814651571078047392657981441855723353400519409470149825552714620384310613227766785159505319605609675009164838343358631752232567364176309335188637581060671654192858495258705006874412298908142977368691925848427344578457647169725199772330259108514953877459092525896731698468134367688233571326263644095985352138093058126058341905053591896708656770563894188022239967964538709092969126841872578714266647694850643666508158542239905411906328827076190293619753703982770506437267695896062652427896157529549160394221357086202301292778687773725667794104181681267565213332696136646776939938870214152859973976374842742988129921567401537046038406870612185168311211138760838022525816263731520257165805339795070724414429080451737463466625500490489097430611868644198161256204249799832104297507639654534492192558922999096828587734019859977659591669716562831324979959719405632702332919423714099999539829807489361918984968098286486100959898744900381757955748953558447302013047162473157445624151667320180741644000380034889726899006124065954560425972392015793898978723528842551781657686924901424977183259488882917874613857161878510097444102502028850280299823973201568277768982237391941862999543778343152112800831952333488521727251290360079687358747255321267709726623884486658331785987966428437550828781493481619222551468297587042216460423991385952515506039714183491149275831467437840217427679867786495755528846117808961390587570188984960015460442471417487573468115543644273003730026083872399857054305484250535817342808094901446832802180091697685893453418974045782172951280310152785598060996841511622564689548909475954946902118226544716355716015355698967943999625726297107633533392885387900910008776885031711712401353672502389625164423663942347032916860363961077663289032294190136737991035042533127324958824947417639007395584708249701730632766650356000858459645156777639403481831442345733658978414549670784041335156482806608637816563261837838631825404704537897227737553730230633384165590903394082809957248550813980660758065467444393721043723407126469269883221224725342554186004282747508264710628811839118099679984763712558539506208267014019878796909398533546548956683099706923984844908751270382547172414079392444153553870424384221720296414884687081599847491837110181549727658009838390268816747014109455734994455037354114986154195020842363601025614110088683469963663664779288693285063268037037697484849594018024423017896121683876307375973539974717525265704612414239469646545613038368420045922104219676917173675480828120160324760775952108716661724830186611679839387593674154612502830357537249684188525265815937937527839307771562580480465491438067269141220228334353731913095740674553727586661081484732124288857015304268250298340509625876428181205340153180303320198278705676596270700434194047136481640109276542682979256544036901309771493430605387164445674279792179547119896867975016736094430578502258638673323929038000869789892451633976679552859698581655752686905040636159075359066725602976969271152607829137413927139283293868898550848426283395913155710140695203459673208920191887897991825555488908620331593934128524336604134320559451142612642661853840626524826699170087572067586756907708291123435761453619974056636177459742427817058336235105535715971083522541649577169506655420417323983799118169683993177708494871722792224568908714386806811371646106953982973102868981555980558675620795164061564863598053461401073841974248121391176075955308293694435092833859604867994239094098817450506849249082145600222041414904964960297647898188953789250288992253137348122951249150594731082948009891830740188553565323532036699176619924326042582092828541049157704143371199882873778291489314029014186496006593126287530401598298466293370021467288489162516717075635192233995624923454674786471028550834877205067908394725499524841374816629939773611197469685640947561136366627098556598720926284650683149372509457741622797365683069259775908703075057226129617321110420211922778753031732490436276545769163664826394051594502555764056317206852974463475426833200176890038289527433853087497306257696893855222168099014592685362226769014194718496922049621350832679758880762761749647814399096505338412186733894579525230885845370282632095681213603404595608428378428525106114838962063124374650794941821794203938207777624969826162150799870841960790520853984324322376506879597893976078546716571658753818811507759150566030833686434017673801295783735525161515185377057845268721017331473865065792548260090836344172018703251292866132502551779217524767223170973179841774190239391510399465494092536248362359877743562017534848266529010234912531088639172374351379798496332255323832561168418097222699229920493395751031318322593869513880192837524797502208647444090114951081146166316462976189987975942924137699391136141196378053817592468979848418153055289002904994929478253120821235224735729962110778545662913729449276813401673468970370062537594354258820252993039565876349899374988013663483911363066853553499572876194903240367282643600114843097905244548715736405495128441131108635593645739265948691821504709214537675764508467998956699138033392530279019559386990019040907295176249906093746425905923895847378922050898839176496723128708086708515825647677374483706712835743764047597285684341266218168648947528360778542757918090595343225853601026083305150888468989526474615156977836917867550270732345338207409328445790248580344945593347078084602418671602330345276450954674371865278373749381502481662455761948818730605614453913914130156262281373753564262773525810862103878299000733040149350431155907545867285302077810493127162144984825454121689049302884131938117325064914339759943816754566169579155759956540168463471072741343379689658185452669739019759014524830706219608149821475363212817954468179179286554865584679951855140735389568959079379036613081267588001305271720187758573189918872309444046236517712604225166341685563005647049079934050109916752713909611496382423049367634524125301813634312859065231334074489324559112596953149384125922872851721069358327545691041432644137507434969002922738534122630696242630569818407801957513135021253628103204449156113781442706504710354846335099827405781130880901088077871290821124229365324502543013684994499647055277719644579720698378238827341945566846093634730204841332574895177582305205865583433679851584859082193522397032753273529513036166412368503794018504633623931316725192644882978613957899651546924268578826534067658878210107032814845693543092882210149110688866535687392256008960677539570321683616350576565072937142941832932993849219958367932368944034468927484171539489093543498448170930094379331033750356496695575221981951591614000952702281455742777506579374139625406282845853556386068138561741375749191703018224937370887837827409739323232844158323895879290759322230052225948649169281677453726983418623107449757682617294363729489730762682473262753502589626640304802848513071558134514236883212199348746262827189090280456724414353719497421841743234085499494487995396000398759808203114650404433973040049014560896251579836841161151034536067450279379436365064493566585554889618054763824635683113337633431565454957605580729710461297189217738525158778724965125325920791972207717028072740988350595926846263664237316815742411653951938162188120509966696162379197574201782242003100896108338591021909543160107653236650077169593550663404494733888493736324411345093632628398826968847688414218297710282949684677290045537795489362389450378827616590307114195598400225521849344059966817092868530732309759080253319870678951199108812923428779164426513570800273788420910239950891255043297861392569917220630233489961430127828336165006526937656973523568936078148553912056195903281049996421757236452273640864385986244578238442533346673865999684951696332053831828063090760287712790290635340241650429503915827837198489510871771007937712009692828473057810030216726682831007738083205391574142219339190450788524154101956431356211275359632846218993099072695730886017535388788045751436478111442284482435291735088318117103256177848022161535477862380217053572075748468309198040800794045723273723407389845536665210967566128778667186434863053643402776274250695213714422730397722168068790541310660931434220708902431841834462599854522841886892364174785723591996491465940076127727498420833454462312525279627635417988407625551217268703948540571198995837009266291551523448626534494375588309895212238307995354081928363685217898054510925035394464055207652430407523698004779982671934311956064921773876016130921108716698093814036256892569236389511443947477989252906163455082560571749842441465295064440740896156038512020359357357215817433764566688957200989703211665788510161791384205757475129818984118988191332147535396475839559128299477140876031875448158873280648228108344190383163471909086771224989473796241060233385148196060634002288667036386658662904510827761140189671276583379294117554991695039434128975566220101698085791990197266795194280523738286499636851142781245693694306427827684021727072634020020745842218928109599410871787799110348015026470270701860084579620448995373923951287451282295299518209478129324918824263926296130443327670395921094039775921257418253160352447457414370034833261673904223064776479239621828503428416470267759580902328924675375823325232046010813271252730350407079387573991090892196583346465101790903356276488103425941050111618547676483308242768186949254528509218524269591831683331257219810905822820891431471647879867413345047618649897224804276919011557897454719216150164345305790881833546432057204968325725044919648982394598075806946274316524339085174446658173236006184030592765628183871388224146527603625848820555200611710041388878507820514025853557921428428545001958378788421277649870796821203330428445508299210767431110832900946231132401899056461876706900001412294999789504687933624461925781382483494965198063956519595984448859741324351726306799362782923464862016680232796743625709595535951706661430116415010861630064719470760768070910880021885583028110129176950788709209018451798136148312386038120130062758845978286286545986147250863631380817713046142969195955729702673038804669386481892908968050901109683499965114716615410006688618294367939261522753591578133977633493285390092318509879666663764147246531869869070013963837600830092831769613018405254924909656483705939944161650166665941048103611750372344693151329505487431901025994349443071857600931307577925665315884305118715948533607133775957422334102544554709141367381377466304841218768628214718485216124569114870606637739946421398083408803785246861731860771037964075898281529372666163813353056903093086617777598819723561599690992796282821335331981135516945778346190314825195922724832087508541962037175649385500896847663401076418866812627981325449971598140532803111888319701992925037190406641193496394738322538015915533895785002557422391549712213746249167807813740041030992942521749835188601569055764122394840151273964800366257586743793853945987999559629322972011310986168621712424543349808582965491749975225954657129310285561925030428800228476802720984374564402894801839580266916447874108750606974081544189897817574983004455224847360281647216976911084881766969259670022042526353687341662484607036900914829884673145505581677934594694707302092161818242510277008390498517392113374968472616586435867982323807218957633207773678758924767993533981429025917125615936502002471124694881171936930737283503632020229981922625682773236765704505956453819638692278754345468806828656181437056599216302697421196746184814282772738651416274254182643889279014580481728957792874079725592106559747246866870156498366377160404319971449798710616710534905465239703368980924197081049953912292909268192029791513933647830205731965641640205885899070251789424033072961855390163480910695931222238566127707493582067752419460974702699768719588374151861358698561639680222998437426493993451652169743052648508588780037066658188957104011973223226974733819291610948341647476222651655135157151712568496922780320240067444039184412413363566478087870386347932551228558318739342809006055936878823666181344704180160782866939857005209051656229091292562301728306947625429548591221085589602152604977714710065000978571893762986022960156861724205950627896654902500920197123381838884477813865274865858162539960332210816073012266726223522352237992805711189254299617330874876850275257722545515555624869342040565695955935746852452603282090885421797593416093208417352079161334005821953022627503624390115905693611917185934466183932168947225281510305882175464155932799104784274312528719701885465355350200003878672547865427369753174566331713847459294075190570145938301099352335754726572793028346017918253001985968352291047379455441197185003757026688210109092715829634130887167758778425134286658323381357980774777929713050879746891573665200435403391007955720485513418412351468361813834729273828904500431660836296944336905488943628690047711924172548698079965828064753261528661176370822123720374142194357798409950139458329242893624649693911031193592167795011614945540489441853926155587819766735674987060322913070698610308113369389731500124718237512849288423090856958415382467468370159165292410630999737463326158731830191807695100059838437407944883368476841590120895025071377746209638399119671537937316130005971427107733769908546774607322025102388769825735409167215127693775585940174529486417950026223687168632191521216221150189009560778801660065725749450199061550494193581672348977836659639316618348471860309625683128616624058954636228437655054972801670768604210979001370331300215852426346394338151952977182762065353057732491314018388817554408924625491809153529472171967861557816405454968724930151622161443708029197155043203625317119006683416574930920852090631627501866037755734112104321734839891171563343824827081731979598230103292334395606460981375914670688278268619307536195335284828112155875500710220602846388760557350228872771889397097220031782558171823286930794526641820427191515696671426445632146010037281444697303026314054819999524907115078427407129341137024661349914238549505457012914660564718630901133612194173729018773469702223178518485824781252080200598719299146522574298209613093586548298989240570899627527609784610424552050921308792604802667238305676062129625677883908466405932709318533480050426310714325303683994292188728984931476791425482020974767937992237108094552846131240586996289214775153742826929628014241287799709644800414884474281419363344878983671925580044420615875345172184630676585289012591112496239870970827511234990737455314838496356980676567027279512050109889015901189783660760100019601831399580084267226437979487248057555998784843725053456632471612851193723363634099797661946424989421070456729299909951022739658650949084348411922800121808894046901246305124455930343317357756424407220379599310825612396559579100254721581356876886151507009227972799746545885548588991123994177148717891964870752105593443240843954624822602458128672315856514828054186332707420366404987160969390130788455271836869556512973282942783131840456927631791303077261436231530752054951642224021058375740789181093663872300869166761929865062610110033883062356246152415782739195274446272921219278929371018281798809772423319911995122746243411116777967812287186899928721568567639749205955627558282921409496837463293594507361750318134460308676053932497667289685388839810707207626799724374875104266365864506387311173535797460279261174850322237537045489507634878758299482735425299422398817190350133221763031427451936356121743028969755731943451400846412741558674642113102515024610611255810920913454349666216068253492376726718681748804979847970009530121053895304574326963007446305195174896615168387356796209373318879291472465884350954286760059985280120677406568126685491581229818858034209461459382472295138610900088640550866339893711805057102822504362988128773517596750945050200951017270034749803502852313654176904323449439084498782611050230007080831656441519275702052142106109328479730330960363861293701343907729833111590340256653913377066862354738310337320214432778202772203127217498148737968251640825734117683344962665678388055357132579257681243538550282053673820189720521256236878978524282669498478830071087003843174848276005429163138717844578898813005714729527730025051951442407404266678951045335704257908868879764423643043514078075280541548595647733881961501744298816071573556295360284248903033252507647882487209471200943661016060587716781415921929032363550836658259768585727546596536380407937463349760848773773972106012219164786328272894054704715825587656486350940361797661217238530875414286503032182361946046745371609893707105167724032239557698723338920250640738146204908489700167864486191898125795307670652746842755973716978998631885603542256192342819266587991384935763577185238200176977478660303342028739876383444698603341793366960105229761322080444139728800795975915139971975248486888953554531823500140390468778311038397761737222898388778143620751395131949565778481110276561210509920358950846024722695947415783279708380241383133108411109514364269128701905489226055477627233135138820180136916781026294665339092681730177593664004244433833606314171111931775497305677113141542692310091686445998263140465270504784210079708436010009505142330661195196446300285119609954133296220022879736635184592133609649604112339133426721776557541361263175004547267724701872284902513023603741925903453848092063477552261485108075299083855566008677332930190631883152574584933013067071861726412912898175424631743806228661057471873224563299524681601428501380707693808042209154756973752702966456126259636255456806918952955934164314597770421123693851414126061852278890138112354836003862999829240513255031862496742983033786998928059084057402062533837511424706830537660981224797100638537750802892547946099173782110643923983802867564650658850406551184504098067434760641521256668229448559239301642728595179320727160381348709741802289775476095946749708256246029767326116798573709735321720281464667217439709446387217817133177089495741349847500248946568580063732140641070676990252641450729208184690279320482596124741309662218031210752651250450027938780685534755931691852856533290733740736917301155799935352457463244751999363814348033913084564958187825018588089521606600613611431351798290868396937135252299081275062173048967221697160789667992697073287125685746598026793368288395907759674796629160714521603979899972997589327508940624608215607014191010733571311526082034644635246340682031741652746163728533730460143050597532128440134003737393874447613210518074712158149423492062936792676903103696715139943057118772635292287985571899851993169408124586268617922605145593557959336715266598475555581128748952485269422572372326601031971564642226743970915022982226453395279392056993590174099426377136498086836551628245591611152415881514439082307355847534074135098005927265859296805320401893614670971681798984278477439075369980453499574067161312641569328944438123953771100970482398903999757658994339185179149358729196375344208905304890981691550422282496526363122658388585104789820647250484084236156919649991976735276159544091228006371974050322306717246423355585015575195282255540203872968724089385443560861318164648871299382177186817954313481369540139255767742833119680934709073515165670551646952412411584135933924287837399467100159137451534862299649396464189911003121637310572928554442521120869898185870604382128980070823674427760976724664606007553014213748977443429383445346409432782191939307315231577868765173913615046086110104494001557955790063766501938473629393541046393577205695101352646561064421709674810975508233826644178574649371836076724043558603486033713942945778234435769808854694285685059700481664635365509996345158481760361737994816468809928462856378274245533182301076882196265611177305005886360296358188856009579337968845735354524170467861562516419553641507956007005081826046956362674590685953611036943221891073231670364616296813342249753660416397331033457502177952850469738479090935973255102406148220915393369901528623133505347590001357594131478085111482946848598003529417307397692742217092818201386441845770832634923254221003393922401741149242515210044161020678557270331197179592169871959567131797309393817216886550261559953016152476319402805341861394350525144692620012717922636124017390438035357713664933393354688433795339029534994837230044092436545801617357246484219080042390250080804448706023826234935924912002790973209052593695218944636636458648890100385326153113922320638167079031837987518358827897663497145346650720656721980816127128821836261749662639608874636551658083047986952598826054381294249368499715954701913228970012687055276757256525927623151544355774126179504604736015793477262718492021342831568007704083371476619212788063544991839637355535181747402884094334070609622446804613028947458026148074882809345779960552492888657446460274323535750948933763387147184638352177864807327982194065907592752548333937193679580556091005251605216472146342938913086066996976578683058717606442790163737153927492908825201025530857916089684032546373959589013579920303188821263551556450353969876648809694091090688115848481687377877070375570141769883920235502400975453884756522822821521681441739906966453115273793409448938398391518053067179922772388412815538151816247997704532734637037989859245692721932532208544383675491650687551152634956685241639474863270605794272837061101128740446174450680508633297824215780118738517566662713576881040054544913419218127791454727385464518666301073636190297630439104246816888747141644860907914198836325706132645116074222147637717696779332073110684726183435297958892315242293155370011878856275140807012697368615363225573574448327497329365781116504242084622677241957938359233364208254689917584763576563426399936736450277147553454075171006792600400743913806729563136354109081842050741656480378709903512520030640075702188102426283165131436003086422896380714894595164421167827792579020596797698259389309944128070232009955853487351915761187085929982072814232318835180910731849769302702031043197479067440884097960830543244289193450597317669932196416078131773232495091423067198745790522165438969702109916823420997750407734444821832508656464128015687637215150750132382221260602904652429378498247249002909052883996770821467895170216428846088158288877150486515798389454061829122036339871768346876905459619805896887723828597947286094560323445086269934331170948881321240105187290571219680031325084182749548659028515302996015319345244972458901928671591498863257244433624498562148312385483792337575587406761954557326148769763115477295819939933108256184747803203316532648932473556579522424139612594208637652525937329048623106676747271321496605777103733606517902737855721518438133288578622528137778176023349320453827113509449934375848775223908941423440073277366529561907750174958835386684768223289650702236259195971563629673473690089068952240980226948678637581167651513629454299557342717585926305139070779610440501468838191786138487753490472501198601922006366688233493969735756874837885488330435775186166657653986308496644427261989316965896804564268006442441774836124729969976278444445326111539971590528281613865944097106203954649137004325604945125984066624152090668999306036518783882043229028459879655984430021403982777680866776809932395120288437873796595958089627800772499181978466295952702556876406166601398989706969753606949163364701281534976355663411243262820057241597609467702485756756009189381170985099677433769763162979137499438311173415307399681340845399074277361149626061988718456661182214451083283005766792456404111099069588240315412743894525194163305069575892274996425631797853485958946441816813214091304214604517164008458117899533923403339029147259525093209870431967497226732091189247706916618333455523675846237257124176293536052222533393191319047835377938288216662726282076215500417299402647546749674571986212108665062687708400226091355097379081468574783937074628780530654318832582365051031672598712338180471015053475835823367654336870925262117867794210861126408641145069535193508873685673631234698390591048289211452227684797215987389089548101905889878452220629415237386400037823234863972802283351723026341344580104216953779904576824499117409484561730108371726405298014111442106179094599067754333343587275860067352313850738526724157894932786945149644314196592658588624507809903868825519035351449574809895975116759125737424695937963921085787305641444369945115168018058760606572605835305361162844358074514975586847880325794037667513194650812807250185620595054989090256185611138875112674196780634539237087794459525025383420983121151192609299208478545428816423280645914029524668100678174409040683956169046617176746093093831764808173481754055419657638719941149508569055959836943031838236251688315582678906360911315719855013911048386602065343763449348492557855714748642729500199093088489785275581762387483767311424366690268101626566967699428088935726146911445606526591620138998711750901109689783610406532567705444985000975747255121022906453991795893776761302953473917697903116796943966318005857176589660587581790319677253020628193517990121745216169280881455075296034827833610268954663485936631141220407897302543532608593151208331499276997252060068353380880483045043678166944288381320502888124064029825369436776057835576967291524354482217824638228216691131748446668632549078187454259259830151617959063566858153910469716536393944762187675347433007311278162438365775277512494910520819244152683637096311005405405280382175933908874930501807220378588329292395697798161067389013259945446554757643616875007907849075086459091059676824846046794371264400992034788547007243525131317561377361289567723776025169916997712114102556734430295365008334847572877357435583186485103090259533374341018648678811583594758743678826601085842461855575093187902455396679427394313957925120149136755901244761441454403695345719403520127669092409538680554081920358099584070423014016569520730369889072777654031606234585785009879737394959807093497042376317287632160484872917871938552563959992651223947826676572271270244421649544459671334307417441376584690160237854175836356047280770092849817934332119266918546595409545960657915785349629343026105014654821839014241450267039666235387061985072888996321519337919538697134610631965443370020651590947855850534588765663832381180685956308236530797031153311251251431165566791086831330060139077973752010931132416828084426434757266824061796551938611562707139057571292444360928864474735578254141760645640841750771811255354285456652717458990582175547709192516560849690699510629037052039855309210730649549706406518544906907547185955695285922880925039422672675797697171842526945341955231107151409131470176957466098232513716987432100561571272862849996484765463082202143024039932773865248272085235539203590682300837329953393251550562188350107687821485711063479723431571972147430120655947794197209302326737603616801526274189372709322886310664509241985576437682355568359378111790146023140377529394941939364138388902517707254486764938303953099451771151449808360239986642821099710652427354238066587481041815518279826794526986269469753750803813591529400822688271321867670879570251395150958342383140212459031652427431750334763608385965244877188383444311442458382655438353322130498652531401342247513462906272600211303581511564878968255026175913416664872978602853910098548796753996312596825242223605621529010201618445894700858943869789508332115250907138714389340943135882637769244069943583989014374569212607414709995643771004031097693508628560622651976246979968940152778994252098608870646316764390648420383097263542699450701098155540906871456073355197459765158445093488281218910355518636117172595411414207942705259281479773087406034495195287277075706081771945983008956780607319604048419482499424507611679105579708813753057398087004093813894352192417613533069571361153799711647548898988753262671925692304786981989435508983588037294645615034742976575966352716740791977436726068674631005698703120272421564399572163767873850871666272147515156336906302324446421015196126405066603730885943114071209296870896556846206291237219161835341471976820653859890351492564825307096175946252151387295211492005162109408441086900279565531568148904961730316682948875287090596006845810031539769570663543243500049752881235421635216317726047245069388593330571843833271521676360544267530943227678224628515782627076871415923247878540755218689684374750116826944386294193000274411242141327206281575513239296287642272127177543729082759021845133801158607413308321733325407677991377993121551506779428044674750846017287942568737601213184060294020936924254541501680331769498145343226589705995600511778931893023071901993759625300717229900201245701688763248749248813107737099493068014439920142520808747103312551159923461680678298778743416029199093886630205141308310120309269084415567219763967778914948079910140005827537999204092378719537573752209790759857903550894345244869022184068416754919895022416211746999947332224870861982595871568592396674460669012704757321656164820085074522414534362587595254196265351523345892533032063535498077643204945055226637007883471044099097921934122006527502400279387880488298066284787092927964012766782720255977993078446318518569271332875332883812442259153164316704073936633329525311067696656281738364213964583979005814552774591887087527206021123896925937648184847009644660050110111706661303321831509097146364780940148011708296042774697979578596940906791162833704237111392995441788747814962921002168394266628025606860734784757751384647510278792640163058458712660022537306817507837585298695118927272115954024339878589235016429463789996286930940774774540457413768845388120879793214032883093073625362042074558779364863320326736448600874888208648056582890380537662999226426819287472695705078145518057270382137572127518841216247746651200929604907036748874788232782065210012972862679856645664227311176354769797262430040364910551028395754516027753609043281245092656554334398645137658918221457062927303064064323345831994291177657433724042863423436739329336586276988211502309403396938922029761383239005855222668520317698358815330735009030718469239186734836908978303309715863139880508886003291852614738893981671240777492713400748794807500485377798434695526034131168937331209544899631799023315378664366341573311438473394606944169923986661524276205674635943524361276691381438240145879485783992334932824857349388039845500557789740083187455790980717343622659597936471290010273983205868236491157098806757432379610263908648558849878459388152926451955553962920436540708830151552504359782473404235342973033350516305493941616290142742083458318430899799635781288262133647276573264254666673135453054422871481178593242998382684619202525168851632952809850432892827698548147783635742566143094832981852745413087704075269249547162096886156211331809928164309385035278207511177148082123037464720419468407127632691168779106941327539622403295691896952940102706046874177955017009012910299571722698997917237111312511697456591692383240462268637160809838652163006789450572563493804998315278273412938956716147741986962530981684632385505355005730993094874440560193099924279781608578683791530869961265145691632472861673116217274967621326592387699933879406077850483038512658275096059528461030720298890129474265832227483059663928255645362779709070817884569438089974703259408463324350963088518404707270829490638506562780139075598509137767345613449238008617562757466971271179952712273900656484658963181454301503531768344934396300517297734788331621430080886617904931666006103025547746977780295512075564959800908108290051581257560869557941506941541607640393172903640407823378797630570169375505479547774481712994212031536399394500816716937692538629349488416105095964777138737474917130753847044815481443851703681402463994185919912474251378790131092165211847998882317410414029926608275138733802523189137913643321034273316056262512250433070976851895646410247235737497084953999630467410186939564388813861972453554530151970167799396171412001830529539127222555757849144552847896604866011203581989029357428635457254192483502739841818172294228942467935479148359142151452384874858805246530641509073701943845993392497463768525013257977339417008926216279960341964509510833789581446814973264243605639491483183572994954394131906582372569010380169658926168014737361630848240013676482419909982804575010737814269940558324907566336835885248798157576425669076105512909849828020028705212663115977020784072808676639881016891565224049730897617460889071871510534772643491073948423234061721379438007105588311326675471336810105087371867623461158853106305057882394860948754869027433723038268628686915113020218321464436163294439345787591867493162860141848205036884537255814306442815615215604262181399957952056366087543592523936624094220470577240064516644566156978008790433515560144712120912447199790062557938641510111784811585350840531934517703928358724429249702709800275506697846119043727497983141242647975486884391280768682288669831023407277893838902914517897578771550038326759341998677574658048107448726070739090198770475988233844953312650542701932616501525941135776165959019726854772410416958213194402933081164938081110417497397598455244425767834793301845133273539065100267561055039030143716902166312846365243201676010684224117846065459548470098528671309591068189811213346823273878033824675349205245376346724956882722259717074998649632030875773258269214542975992486233895227065109076784550198204409259637045203173925713174013398976612153356328918821609945948529701448973096739001120429151765942186477630416980635682111424353740909320367050445446345019377310069737839132613920910042849840312384505295619061542633692746517007641574550721634149943396859925091575079159793249512924203690614725944520695389281419345019493754687123564550961793332086475970428568318671724229622176010612888492168312786695343646586069547669637476716295687799969274298830218000791686290594440638965632470139802442788466244097554523375387795592149854922433499986040196353620489378682836852123184181323357611003559394014115607540686115596548184291406847611612313240356924950946539850170756114839146052464547700553692926007674033475629641330245211408385826453950803581550562729246504608518111850796791256764398030645386860732075668878193666684989016696424715387823879152774532451275327806347810919510004219857532731731436380703959002778759686544030412283957420457209322065461551847407326810108257463516014167480688709018169032334124624758869240952929626253117164547246074392593953182192658829555918236978375803327910844942227695736814493128420953984573065613688439181097337982959775365069219513817661954812316068237566457187378384019620523907038151014735352440925911945270313349845869744730999920522826972707556164420374092404067180340497752522432759410234229066595789254815477747965864735572058601882807523863441716699476603080288195060260012016201211147832565717298491916100575810271922437903129813550594163752147466137601813338107964763193685326214245603034609803439180816693031574090332428449698677962375380765283509705479275992923704015773946749314200252650558603608440994251087161277228067021450203550316635316257391956429762378829873947893884212208487407414515744245124416701480389136628906801323107409948916178812635191570625362468119832370147294919757080162632800911993386764214564492438333973138428866777375854607085204475844976753688555079723219503181602824648427646706522225170697809339770535642518994279248654793736294108666623885701145662659717996842153321735510755459302524843333982900983108819078954403984197026581569437838010977836023957051798518731984178687088425327969584256085562993354391983373885832206747798698304839077585739705042164048395000787982983001601319806151804251675378080388009625990788482869444851352271758193413425392126135759302398081443145071574984058493179873171694149190763347523246108461034831090818501483341324225602820849962830984241630943090675657128662180174481271491754860629706664869360162405066669156199400758437238992470435606253543340057660730839205888256766753813059235436218489962876526117870796362654181951935595968323698854387176716681362333516489146262912972300056993925153952439686838637141646409816847732516877576886981086760731371147258245982756130461453926657112523371264012786300451141741399390723708925566960056031425924458759289510317819671249161921389871413962942539943303545108252190503183293837157184506934673929235322422812186912504481228588419199948144737998404298140147399080567351106934552023650955955140367016600988322023420635309111822287817567346053002021895550310903846806392653693226623541212442874021432285877076161368515265620745843004284872170818964092723182518030287262237927112403770895776750912323629411370615152332648737896300157243643203833174757119434851544731989780384153423516389616994291988556852674531238074578897950936354351027132268234009556895572153605682768277403549075119996152579678461097174016368269100751515569765533786223144238080513871827835251699722316871418542745711728968183339007836955808237145275806144903834727450664433985294630308745077538152065031088812281846534761418564244750290264611201610509247879460577367653824509748815037205830743525434151705613149317203377670150146963110713336937229448031641517158751129155036997542238565325308870044045059142518695659864056163844074024448445827136293380282440035600655428091558729429984438929118600865519037559780106697641943567977893540375824531567847199173493585913634675349548135454233510610512780057267761232173006481660857685374946443855857557150309246167563749521529660096794198325393815493690605667690097864957231157804969898594801605953203135212234431133091801393111590327734045481735596183885527086236133628588176628104200854235227892391889532479857073797579138625475625224493389005140162490768662490875656098208379826680528691388696241797735159045828837779421229627653908806965538646109446336205807014808783141468444382170913740454805338363945191744445360769037873578836465857302456391169954640654576039293693278725549161269806536813858777000094972914834845691353697648156185490168658994045558941401009089654872028897042669824889619328712168548831916460337238033888579732740499057844405685711359034398571893408583711731194887894324622804642937508290099602291965141897511953303061908716275815759941521835702884858278325954278240301614894273501951104216655099869533608243968527802361935852803357049152339297669473551525785594344601499872505924706401004764964826372937351277326705642310723436048954312558848485906592417768089909971506906233674148020093288725001762227448410117122924144475280222759091554316416416196171984929922605298660489448218054053372318708484200134185071602290015307103537937597944508947793414504491460313788091183768216228301416614536010910403909522031673043461362384790480301612546639389068367761437981439408511952055882005767941879373254138161483120410933780586497536955252810247650786178125751539901278040438114455804368081650209026108776878388965244813387384595287302130406924912604042483967102995139029890716834248989302697565240649397902102500242351110394159238188896299615530501087599044157870433786302536804480097531017392830665513107753413775347257583088925178273823404183784127198356957542268221956015814079497775148630186952581673716809038279872725442721475330136740802573272490340811026289750750380289554602410402712596012562112973011634584993416536463044695258606327940465945357625172845135961820409468636465360578273164111873656529756204291220295350642071386865648627601534525077976248854319293179227809082579537738198150556302298149106863673007502444969940720535613976437200914005240382796696413059701591199406794797027129083567331205194654221504196367329207708837243833143845996379520655112634683434809860423580431518071788695589127119331193741094415230802587459965629925531680743775012325694491904008437945623707978655246321739967540502390206094338762764963155511506765879658787018925174500014876691376557604345195231155835890654334261272675446358009712359151404920798033706612778894657318135793837721310939150252219462641535659905238717970162318874550280418031300718960841323289296235140637100136615753139772237738669017884456971328401369141289346652313035402640402125668224206875355201264076154312282394060811080705715120339192550679209974394147360758465304489469128386752454640154204035913668566370558241289946884802703935753960646575077923065808742512812919948583840040891373374156329494683752998738764166554047881094706677585714630721624004868628760277136976927697375889322243233708499752032352908282991106751293373302029363967220594007373780646271835463194191301352511904041121429576049470828746078939372019355477301935916643068132524696368719219041064567513436887972578599315526923090011700753235231295362158009706559794356541371783960593797049894445608412971449687079413340009494362728927301905799218650076554411588373113297647367118515572643007555600820735530162548025019532920256220614297985963269634862166565147105390020192449162797722047547257534787009451031251593450299726186689099837012097444539547159866694741820970274505412246788187938630344145435459199352000449304369996807386357293444605416633715192539452306818729663374946529196884108859259795834933142846618476317517616283666525369525459637507660616476889866193162338183895813986015434012976329268697613023597390216271075018163562777592087639247335536253901510649148701431301538179189318023862242407800217380784666214081438384132548488941528409425875141007646166410413155716125582100035102302523491283862013787428127456122824161527811175172199727515665401930195965116624908133261440693911069615668772614257340546805183743241919186371676466351091554159846830931743768465015859942450527903706537387458400306335026234197109504220627737950001732159949667937089467561669009870536228769791019912610187998160326470987317563624174791462750090645419335100218146613093453438102518573060248671783129774541236979220185880338627291656937170240142754749920941187337476437729444584761851690457450719665124532144502478995729950422120175368002378646181712446728154218724502771991019463076146089575653062567272058388021210305203464437957917060882441396154962254023020484063766954097396700956664237076560536134527306046569260446378665308726842571156753297764377662748205586013391168506998904531661319625197996994289540735215361707994814115004048792823967160032904342525272417710264550637183724877142400863857790957578986636987480007256336714064638031896878988477451017581590817907190439058036888938963676789974919767527379822599806146466461109383272295879610930021492798843402023376726351210553339738518633045821707503739277947499353336964024909484315702844936848284085189174151234449354189875532786434346068333325093670556823564327325949721028284904516787031963761023391442705107977741695679134153066777054382184744247904837720314769493429965267084552168009023630118031641914272446682071879808882081209027972120922947865795861757044613987285074235625762356376429144490699493141840741841009280900156897758573685207566640177230096856557321224469714318857035285751420840405829305505603393680342152356511908257788854833559998569388235122769430185264972170307845369549870392879733296089142765822288384141776816273346324940488921928082458381379037867046044760318707086150417091943486627724350414976860867760351119431433311931336541644610570575177008619490713407757107710113477185078177171914637079757290543162448201497358801069305804483965425783086984872300268142933711247172187870278157565711586312765483040381616615112236282357524217181362503858248983194919846609286907222707390392192074618516514500212773590841338436629120925463120364283761093893671547898913881905297778263568259666646022610760238012842047623940138256460102519081551146440312792522264974964366481124644052177982346470271006229341072154281455593078088353920053719069991082021110038995168453655776039417139991130868008971640953796419038842839060238290757908260597884831994231015391098547269925521217134659423390237906366970119973765840640976139654645213412280657723103174962710930361640025948672896747305979947453653329133515611515344522577043312377900744659069613014590500276967954228231210314296454733167880687855837703882941623346020069982704156500216094040038330926560172352073249445990639617888844886749657307052908327857924794400171514703467811279138625769741039230357147839587252380521258686434492990499136841679115071634959958341757254849570247040507539201515308595693723330594852939458581526507958374676491961685042053071141438993853560180556736087714424346325396580602045508260807412329157455977841273330808639574467967396806322703979359880356474736471574406008264736786468033283908688252076161581753609383322830890279695653862260576017796629086476360730145233966378494319618423150241659875319409711606641336166141490736671244021425618497661562398641363001554293258507418343131674989787801526617584558280724572414851556884785821222923509804920627532838714980018285767138598533347934522951410302321612355826170179884026963799537281554200103480416275220228847690206688818391797371637080142369265300623765515364135635859078873866293918293805891886365298917394773985589559543842391853617473013985211962782410805200023677138167980992540104205881570660465452225568363111636958735630984629056323375521498649352046150098205186054115255119120457760903387809664777086564293212859170990166273423532793019724907252351537435388680455525453660980350937715699599197996174723095691784481107552702799152708903033554402753681267277339242254053439994359893842137391519263171152502889957368853484130814342858604704350897162051898597592532051050157238343788334988631829981441589023158284979353296119665382422115052226588762029766416748733911284782125577122782946841891410031158915538020972079413948269721393327723087094182398368823980780741540670037169051408679101141009932140533133313567208220076546701210273082880287684383179894983353236026782549435714501754964137882149196783005027723576446098447239646559395874013835906308381729327357740453515510718284991365967446104208314867001839686056196017770490135963870098440088127067218688622095763765133293761003616990097515750940409480891207600719731326464193304932167998352473527315452515834719622378823220775150961167247454220405654313627811893203615518187213209758471980574699643593494052854419412261041203664723826681408827478735662399250981654602257028533890829023256179823723861025921649704479357787946877105307285212970404980225008785368738155112445628451884284338543936101228582522554222798859652806764587351692169004981722253722298048538132897222278233652646024747097726224841986007407482265962515983875546890893278267239905149166717033233216587967318337965752603129614761794594928036362242971405204679259832445463463995787044086405546155389517795497360811715643844006854457167114764668794278531884238607754941540856312307801409151571547789357384082622573612185642944341013037857091082199709394126890402785215682456988842507317909804982882269588988067268120259333749022699004845833231691836800867721566268891047488492367327268971934244075606081236334010361605648350937688088083809498994578949808606086630354467556503283618442533518734791698861668649395738038243557952320252790166326310418862307989657894504198055699848163931483868500078707687062611710489798990187000402703183206646013537210581421744428361446844331447285710838858436220438323839264783269532033221793667577587527514796271435061815838914617470080274890157552138073654959946028700653552816794164510577927239286328144989798265790651523501523945453101119738328300500466588251614726578203796125605564648247789955319542418294407696712336528213603923830677259764297169028747490359531773301309495466725755965857622695750272777988509028060572474930602274881098851709428463120277139562835988703839422026102916738232884103522910266162199603587949476250635739057696637673286116185478405710854280561332538731824528108455717132493457173797752589908128373317391118833205053829910740686736194882240339375886908064601871520507861390864346501349798108310494597743879501448701487730633915006834862292997439907287784893822423184030057751877045042462739371711042104074493548789881852352486600328171899407196254999206142013369316344099966408083399434997621482714601773270566671049783742804351735161986043774259162378182553828193034161795822697598785779188317198804253419773726907334817466578072064122285344605014497614008173707358407233338382071172377247970254924203991066443356188526966452879870566831704286581113537470307616759450956954189213723364777410892752893807135985537107124049019864188422776447269190819571787040540820123688397630088901806611316185206361955811194044996473861826371862631415251165274342437607780373593572120443981917552657388826039830214841735183642265009602315977104316831876638135284944078827067646813342210266923843524207694317169034930374579504645768328994767063270286915478434963373179414442341685253486602764336936098208581462507390740143063877516144803067348555810463803972737506164575816363680081476368394626050402243130471013635193110557240607773005054514932472814741076355074796585378897956337356226328274589936698630513495393569705041846493104729878283722424551611905356431910669226341703581594053688084274116775520597477376771937245650660583712105829562031158937468882924133109671223418327028919305791367194504643112510212761780782737109882312941323450641819652697340837831961741979840818198577668485175891697617988418845428050026268189498250375196027078142833148448131105546708369481671587378718956513021071158457136755006195453151491678627323672400794669580684822376110481739029057282173577982094371850356570814362830113562277276488545523757166823170057261345713555902667680505960956958129945967414819168738049258290446921011283238525166083765649544951888872998710147626795344071270962565145844874102602263040377506258456114282109134941609000616752287294705015027633668326605891301800572664086901703326845144505987378177938091361819886657663892175034529091845095165195191006768901953173790168306235637290490547535109548522923039144024904590750622299691048904072006288268101682480742640615993595466390654110889273495801890199513191458971512555045622061920008104664802942073100511893441504714334776634880556288738966830331053536681479821475409161479649320794497280904950271713003361284843969976545402342143049906451574312930314639631519121580142417743701440316041841147639760462932554011335060097142322401183927824580113256233662566758433948078440112429592212663553845123237853968314937808836085162857408307493725517699071356519588475288566307806136011832770182140767304061910360382078470373511574012604368238431622679175123250353719562241055663305173853701316486876570989496073759743734644209931180004054540784301214956512297137862193485548013620573293528057376633529509554927304668413684190131301808022508030804500093276260786053358001502037498880781178191424656190955296792054680848718469104982882859443778789850413278472328947773712962586236074789454114203217393174127496546021631030797161177125091828339826122209973182934021063692420361893990564368475145121354238721898642388620051291475931810050716206992485331386701308759253539316147458632942280669035347071460925041484923875915586649952193684938201163725563597758261179711249919194142683067943362832080853572123936550766182292295957164667784148018657182242857599811394775241560678801931914530075978074993646950957091452065814230454106114623439944926196514370518971388815849794110680768102206659629177936061649132710663160590619171820398218402877231531695440112986071683083837522378277996142684010805272742832423643795658588624687182206143296911710318826918356789250677749432667134853046215254967422054002933216430144877969849607329153935911184793016547754781830160825907115315664771499991096834601814320159541137402745123912010488971466699845092230100062356979154897434967379520839468918835581384513810350261391201926517536856290391527626477349602326416005978622971871825240066662463376974900396059258423340645786662721657889447136698614365696768257960981935406505476610559330504966684334700969553636363167377190943578060496401132936071120793294450304705322972269269012931415097108219263902635727842612834563310413854720049919775235926005500959881801092374691459780227871464612833757477980864114584054523953395695635169391241739284617465025684927865220785881473419210867288682759399678469831611326767541291130784266055421917307590476089901528568632060700131322943904177624093307234195951818861191127008686422591366040466249838782362021107470877457373093390695318970600791286262967153250097268173209909761331583736524680574014727693569162476847461952869095012721867597354101366740697649933305308922324321912338043812379454173455711764988112820587384233750171176393747072449082665691249248499286027603430743032074609419449267469597514081634024223395498404110687292744976168239233259122015587340137540397053869005217082730720758565864315903337028000505688880374173652139917332668682811114713807495042030929881564080245764737199810504712504127864230250757072559675895967935680058998057767197612239620338871583430802335978099123116315977295398847631732484070159585048386897583469658782835143794452012661367671783524398750084956794369872410652418443754546440276380478831656795375446435139008374805358249823455487550038325103062209250990233290471098337862637875423897976698136886602769893053920900847749997471370707947008464484426470439042289364208508739866351146944930089708391571335658284940636431426372235429556156341261562639751532901260500955755931302543124244833602867776334820389872397967813281869376161774731294106703629858251653832174418747463467766498592532410316393622627775826780719531450644035686158650691139500969569957504488131448915091418836424119418886960625004852702748648978038792885072959252391978634822959691018493336846538219368342501796770217815653189665121201974551463241775319361564426909142010884921320061727753615696371565497307321692710579957928078488885385522562474872863421546653469520112424304061381122747982594914544130401679588566855104069601966765072911984757348302187964561678041148053200768174333224665577414731133536949318273615860166549740736961913705796608561692111686773251851823003029791150226171578342122736499383441410239673459723120808060292146882658393186230102080444226419829616217740996993676301493512016158788976088693795165820944887722772910441655007067016728425719714273149145419491150340608487563600472835938689523151119438188178569980409115417480222079488731602169177018036268518883189304943288579710101656057530170239687512145496603475084065582323218744878481346460065070292871712050081767305610962006002778064419157957225796348195625027167298708605258395769265513458049751583480885553458273147601915931786437858452908428762094260678954839742634192712644399853535180964005826179974423320252176830482613683527311471145535528324059113001067742138556736571843597342121953804624151423920732122782763149651141273649720899280455002397083518866912248764442823883531706553831583615658095555710500867521269167434545255773385791721262136037911625570052841316077854254350511051145449723675739538879088025891730875078598767224001510445872076261866694711983606545131448325705744137201999943381042014137098622564943706995079161237090146952135025247331045788090235904639717071067802633507823387192601386332862846933261580501219684164938239799401105215744948667937361259360320856099800973714180074775441611949380390561028279766718056398550633369839656954005235688803132028716337473675010369950492660720285002829405990724785990692489577723272136676060925265387579857680306988832479555414010381765841105726525224255011576734943832398124980751492371734367285505033811694860467424251042965149301706080901879202515193538550997266768937658310656985461726945619118306487269347042682608264638717659593247291229880278251006983246483510375227662970661944067466915579974342256061240967802094606243134226006564615076239210791562973431253061422605766317514786712423096155206762084593079103781795467156638627189514187569046430711384651391053379092542999870086853097800228149559105817663488289614613392367527070708984803313742985902005247807029651894541713062219319720943439724537762208620418494749581886769653517462697084980121971703175438734042714127741644368699871740836631369926738246339707650784959351391740211809332472582265758051124395208276779462282266548753156586302980781449727522326595788807985467169033098680196618532524471508182659947585891140749292700572832451471838461031844499782557155022308459115311487842422671511450791912674868953021315059838286722323033108404913672251327485077239334800752569334545569297023309669367035733141100080618674197412721289996885443748557916159693720167590432467798761161793923764362781368554655193509587278614519537422004495702200456166910181401330393169216858682131313478005231195268394406713650871314842553870354037744431417040769778569818126932304051058325526001088809107345151161095168216134457340607665301225639492736728838224868022483281698213290284959216936195460541569444698476711716297491169978115260007853377890538220201072952535626394961391511170152665612426718388524174408176101584186187244893031134137819870312838042907238655743180578711461713415473984365170834307835341950810358172235710470946696984042084613407516082798470225175603969082767807443480591706887495213075069672298135094624663228399201463630741239711983046748294044266751659385842087202026949029512829399681807377949640720619384862777425019072926314791234791798733452586727645189105877721078875922206322948438536797246060414945471980387669493621252206357449868622112712326756812895904307257498869245973713333061570487084220548975183954539255655094001143914849701467538014711460983832886336754612996579585590841931233085904923401971431859279065793550889733639324374597802811126463899657170394800404248760819405117225179254435630780379467657263508409697574165690751482240911079814334769243201531963536211421938467228125852409370957139230963205332584352132062258088485286013522707274741729063164530846150525201696016695182752448292108716379493232995115479840736762297843274881693231905715461389091837494954607145344259642099624217304374118964696018842939720481068291669178013221708108679804819787033209149432220013118236074654579824347652364751020093048922279231437048698147820158794537073272452927316695645709217416679708850227658883605595320590421028194682359656984207637328810844003693072099095226667743026559672691168750945541434584988807791511329774279410756609340630282301792409467281169863829614447942051586359359497487872678413840340499777297370397428274142820450808114385790284719019839820827384459829246374668145313365285814965459338475712820410180073436285805079576277576787249533516746571784138213327861328924073482625180952067766058893905081549782420917193494495704037927660829385523842557236027767306230075790652150393745909951320330997736578351223237323560662919912481274251446862361256142164940653631690613716353978239940430689387294986847046912882591346338388930594124981842175522002460668213744598520321082641965477758386815609252850824903520414631053580774066097221795754618909748718223797622822672111740859396460370876216728135141995813931120658378854446048379573410747771640269183713339098236774001530234093340353559459908650597320511928508222331681825441466728656555181502618727394811313245624692852307047852260531273870794672198227546802905417104737944851518140095485542076513871424344762232311264779997319353562896629813092205583020020507422088392914046075565150245801976187407251810084033419357065248811783449366536603697696881449263778719910025564557546005504868438508284047523434155442815077540743931299215205208654569926417571718200634980490520321202746372939898505444465950581412580271974420700999110375273896158720474897926075295911148119595558690579074190006592829857662279913605226680708324560511764347922415687795223271920019502135842206905371592982731181980159349492212265335114513347590459857266569696817685817726829756550658395747217552845981848150398306976854981144699174928022119543699166686032486488300870902982584361463593733172672621044757984557351475320170890972451853591928222375390443790719971600122495964570768856730809249099778407154762874217170896943641700889691844623665308084886007326214958873175117595955274074365255869001931701023187303793119574034731778239900240750206354639230717723061989185352770481158301020882899823630439283733206026838699865436715351442433081252383755991737228888596875330443456280608482934297382500233829553777855715148688116152964501203216202616826368404696524315130169954666516952374875805661962086753489728955148066358219538818862393931819738934024410237465542176069443703104184330644968653088527750735848734126737226454474186254189626393573682162700212131196541598479586358075805074692594205038344999042848364297514678713549538426998768779788406514491679761564210351021370934393972054649223290640065487520319988950789902321706314022947180592810521922302083112171877967825598041099476473633769941203169331706001224098423895024974815079043922256705622697863720577641656981348458249586538282076584427284469045746296343386223605028881553218697197451630097734448688713868598303753210316655748127241348605948463098343856994831635179067313549945857040427065611530221092552616196321420883851294503618650584631225178438488825748133858999294434918030397637120825295963721744075520601859930654195206292621620154886142589002086515243043638061995233926173847640482039365069288202668132893943723279867874221809961502085511904215939742618951183770192309094958848937132726573366445699534700871556008082403374817521256494501229073729688423585907691031713358880619538517176507665856593688324083740966924699432613045150113164717255093908788565364991150350359960431483491070447410479841597003618123944716619015796405871392939069773060884902167804908941592809010129389618009383572296223010867858507225702268499571886442873220288881840820935748105080302040514384330490726110319014971531351876573758398149247374578560026626888822210488979098345958519876858717225664507558832365805721693675787628245242791475258787467009934336348859177170490560988022319128404346889362147907276877934228373066147982554263732294064963660691571556390706165630180595692499974220125771355429429157919851235560707124522347356731340334545212435745784144907905928805518527868488662848515103482750822844817214000333369283622280542435839677336149174343709550290716903856903342131278817163008801583966645926834079904966382749154887364455907553658894179314788499472067790536109337717208274734867756130623728916167016648381627677542656669371670119148657627879813107734243763085707700588298425120742914089214711214229653061508183435255964169012615120052320781586094793909877910231599351145553166400702898258120826298585736510966729283564894307593315391625130344389739554594094921624531444027492957378910467624530314806103067144103831150195303460219891233740936942196201211777791666909520613709108583864841216529181419073507518982559839235014887634514689008460506027140068488634306660896023139435453565679771474614621175729788849927931841314523833027433485417175409050846972519595302075476464839511259950281524743547379532170151813373239191916522049319833581704244289330430528859458060066329510643370292730381610660293872744565700874045620782556469325210456483156347093181105689466158538778142780463769427692546162314878549189529794398143517263157956752730025946991877020816121839233944963658987017474058861605905152951949612080956152807092725476925214977140895352148868050581937439823843899314394304608152488432088650252572338239393152207779800284158864938296232169769415157089484600545786767371386200788814458210855037363847545358362695971407850040870513164714145539208141663269536074642820366797679598658788373513146425438138464744964094961429206312628039740872070286885740263589300995602695120286272946458131353090977120728861401320675469696553356714160367398601826537833279369150446361791821340537689150454159728202277593166650465047865353093398969423202948365513297757705507521903036250428553908539511714234311749332835145903942371133302559328572754806886553047940652908054403092086283608485198041133438167239230013440963222980540286554713232099354149535591762878012050540044173739172791477595976485085305582369924137116583453300929795103357201609777372257542288112217817246458581911753775184754101988424338610834100999931658385460008931125683529204671183306836404735469650624310563452868908759645421964119971774946968487052670217803707358340474115735350574243883921960905113201657067519568863172651587911342188062616893525344519299317417084489951867170157586412278286881706875546659066510751677060699722611786238422753695421818174777709265263696508180083803581141235699163873638840177530991303889871273502065032735329470292743311729114638012606597737057065305234985526048393174498340555047635039277080120067148148207285330191956024413793841039552462133139706453332717842858614174157666681538275345489894774241318076062236567046362612601447615818548685368032421554333642177743209260058857943709002963072590608540671400672742528398183151612016438437424811406811437642391079781532874699296627129303648265917482529051233509910884374047661980967254466874267595717472165525682761863345700134881528013335040172586992552577212653543682490837003184852904764394020121865927251245488888131503250830190275807364574014773179407327452861415716695057333794271983862884574098153658346143077379536965581917490742761603024234214751108307738828678850475056483203858497872525354983203093111583999888899838941689352365786964706013186786219116139085838118105466965389517991888511112505596643777568174851199674273345508855466800625244108412578355444711512661127407259320823213567644073856856692103065532477713373440218534915382114223100062563853671106710485200242244969910228542432171313201530398140205688450812030183942719172250536518076277384953906298322711183820966000105498024926681885296244128428955306196286443188927550388442894265743850458810724940990470888356518648345662471086809687781272136991308258407941258786808531507654320640257212549185751493063042453492121263661344637135665014925107995068670205747401801734092678476512790906613714676856943627266886227989038554884726961072331051302025774415986837274654991350682601186212542344172113218528483769203638674664927170188324286279131617099699018873325832393444942587339239318680678316030459958542141785881881333041283941117046103072604037673807161265928076472536724072243780152372621775677484912044565374238184392921273241255861573634863699840936786711154679830916082792657876632155073368308617962828247448793238993776162953611946462514338019182889209464920242772142011601003991970760231998119197088323098113129521819015767203664994476598431889380154199949271441501279016874249906834012873330186160671320996838095050368768072222299344666130324039686029713784057682019102221454577907563143337876258176456415910426450884302184031441443640498688144602375635425077613743694854676093759386336320227022714894294072684291829569333416772916307971357383977133816966951515757065657736796530958944660042284789806110239310485567089472746214254000211246725287239267021848427021958008002159373831986141450838281482398535395905732696044908977116399078582231273326864950390065838802701212686536955833174202495513717464774478727288211230285951935674212040026278516398136225036739655972099184113225592613407615916242654267646397510062815979851574210541117609482282941245782067604024526545684334267585223254781374940643656009079918048028323057536212977280872832308936938258871333829084855980375857024460786094906226768175788145925212483479816516223305344563630045578665932751053308874142790648359558588521724139286746574685655060669178405621870435336862983250057517321035997468122220096848896967861725445690897667746932487353442677068655591284037068417014735308363288843849820543180784606924388456536915557502325331719205321054439979968285568899369773923702400993571101936780112033781151869661764078979143770654360702325593393918415415289013830528276160702745893933629701380317230654039112000264831674124428307261972897863796768925720530208216546257707342385711405615614471974441711217614666874342359084062295248289102634091415477524037311910276921363199737791131414511917361737578777114806659351859673352889424454100415005015524003045484380445411276681502036812087971341401535554457684148975699934160091558699418771045649183964415546204350046727998594776761984713961281855744980593543354441560349552607877457808791792784027639704952887433511638896881882733893338729473691102335895245635275110654891559477912729343785204555007024344957812134025967700143442177752480542151008216370458154994488874399700149742064040568077450255575902323129952886739352933475436492969254512062248418508454471858095480091720788982699183580197775356634042611510098995935580074003650046172505099924647324189543754416990267040121945481417041631618833786265461661651585315646721199626617678553414467985165726402913870326184886145394231132643854178585260786704046482404211299238143327128569780567554042389769762772193186511527361189424984961155255170561299768758609835610377904227612980026234550940148569009242487407468208658912699314291246820434415231339865577364084070886144710358354304042486065289998788966125394194147193972284748476983986282658077828788446363746419449624426854725781548409604354407847141942284692119723063797166402555395857088418720168013507040671154177044380946581201703411169373992162034853414575528128107417877391457574386237708378620059584901168393377345324824646493518144889047961764810394337256609338869676410036604633257742621512412281192646484849792430935011861486390408629877882142253245105712346110674689290852419677876831432453349605242888877682291749289834395065717870195091519413877793185595367997549329810078382676721883058573108213257301266662483763210228520324037592455301544026268337068350154994702183979130787764106725119366159377874937052347184026942911567717411034582716352356558158696022206445377938129240482941375223527159038686862092083411234580588678743054825359694770220280339039958658552082784819935917490418051140872090468406775977041670605222346921142321910108086684322654887937320132126534741811489395876327843689109969012525398192566337579463953692304526627723083925401583263682021138136139824865347166314387279855083837195121168525041813866740114865533400247355278201062893812021924771000391236753173280429628105591072300843162935477130979947563717986162197142711952057918768725155108779672127996077707736175245893119419685282660894431149514380787677313563222591333531901767092296927754620167650528615998911458898902940589628424017247594966734670898484965208452983390132934786554526181552851735829934956124654646667156138434036464138987767519355450965034711600218867367897876657275383902421142360883810442062099351296902708950361991152361424011949901238049940989065070701681032259831904090155245738933051336174937609382067699633553531799408426031138662127850390348278403730129643942793553930911457456481153076438329351595576946201859433398781257992782070119398090044576730426755403617866603339840364618564850153853007412397637433126855474001570204099163394259610682084002811866346894930540834300756334117637981407382208849348073895424793534838493366820012494550011846283809841008108436662724683287541500503059942064595862803227061345261504794234729120778657648953112966809419279219792676741502088360768374365578533180780932832976607098809065492916275926877513396653814736394249541345286483378441016039508889005586315609434535041840504787553704467716416985979962190709130084063948849364967547942681365543523513396155203833546245969739684651986099234886504659866193172613421789972781682175394901548084694982475440079897788719557604655854647996051166600398855178583941516977727449897976200638782603065891020984428806282470778016528413117474831726108217826376967652095262885485149790123097079449924877353760500919259667808863491490413270418941164427669848057154387604104997043002211700087706150321712096135439648223371390874200200350476058611071684701803895167579241670762604073197641736442553130394104848295893492905275550268059912785246757645520130559005704371393870667106443557780185632799765359151513683910937818285638951960086578145976435287814816135325964758307618107898239094505683876917377028223234919712306754878565530433900870335335029086565149370467902518436062238435179315066042544442890816313060785172456639061601641808091971000904525069241894852041773970449032890547125116612665835117571721369306344462645697766200608955284698535985064979605301797191277177360302178257244838657673755954227616644860354803908307795183200729811791158564684057108722451288332903337987220235938773967015916041228947117348229780114531925125738212164679160193615149796849717718028655107415593388790741812744932711847718788686151068609312329260586747339179688536826701008440235814071830094519873421504184422823273324868921016145778723886638374640462861132782448665811821417715254645119187988554737597530857192218644242627861271826073937484831813575737405795228266242758132402615839101591991929529175601703850748561199593978395598652365128060379520137899227988937253700003978905305471825818157243879122919151696343778930651058135898893378226980869064269773227820566801288267779614224901169251441677492875129269973609233102015123737289581476426331933375105642109376541680055930323052901232557360436299291350674340089015371874028056136798785766806765435880888577188792145718044428893613915034224656867226001635443209814374177430972602930289186459517847599220292618014939724896786572610471852919869424657896248636129752833765753066717937211444586831389444506549918695869737265867387234254266725926953434596217935338603855979511543939034821505851171077629054851147230767713793135203243756830164199905464905805146607243141022011324694108449650121130780950819090038028074334577461409878762515869515714054186880815516729636260418888421881220242274708929605572184615596215773964779063083717388365479920875087918074425578707606534032570668951415727155670400038358770472925952766208457612586102698956578513755390358632704685456958389288415855506570194199872987889813977230380867238881882432034382517833624346293626613595141292019497871674446455274881560093826857581543049270861334166903209402145257143759287643793609009194726078648770490667537583973435052616215471550378029066026910452942510422199369021391069307024827082592656962335646845015459548022108800523350038168053373706553965932533835904020145370736445683705779107907463432675309214286439659318745898140405469050840517602094453133811778309322055414187786416764540432705367051063746265853017100597028138389187197546915514313082409098565849072323107389716379637987027571092402358276248593263365878566336832961155542232778691510602685238469585640027307505053054076447560215471265307306704578080798094925605180911623870662424661852555030088931169525226535501977232837658223854689288578775628432008815381946023156981383753418390444962207871494868323440922076005388044080720779571701158712604697519539859902676385173092830477958929136119348366693681138103261949339071365150674199691573671679028737563495910114725907288470658506104485071844410730171494316678408698080363459768885292412382201458198522975479710633972354587668296543645239499508949490780783381649799445585686982343259262613803618026304293160516709442643102273271344247693270005371439061124089608776021189052187158596364968210867384236923057085735496280210813466500852238981105492604912710272111164603011574381839046449246300423638197147368890479085809654912894078095821287946243890738270596986740971252465132155920925158912639154866461206781597414232788374383909371516236230930164607872918417730091882317286713687996931761917216672964149487024883686551907299981019092479684551066632232349598817963785584779711233833124049780155162996736099504708935997732210118772251423009408003038436193603531171999626128083504010611213560898857618161768654016348173686274475688365761718942001701358717191456428597746885388238207736879346586415877083696602416455128642493735898462930466559029739105631838089921526334370518657369197352243741118779816992619093140426237337977123658305773530133606299466248645388262683087750505951798541364300807867690175790519178495163007737797509525887626782459890079571362917655798665854248093571663688608736388316759210273498460779054614578161541516998909067818431274090051275689852729588228409233830560230739402758618214404995173412039126360240522760682618687356383649039107698647799615890020916164464377010988570188049641364914797211942611218643377372184238454130550977890831698534208994505988558621333257991834820275352523174804803570892491954844383786927162770658261133749140275353618980808897540678063727211075188950674253445963926459469887998659012075778509935246983462154604304264959670548265692883467119268508514505044172743928133010156050749244648973929368883099702582069047901049470669335733566829349053451414988775551656976771073479524263093066783160069088692472017459213449349931329130676208042458520224071819149742486991179227808253097004338647969941691362992151209917155573081262596835038553861367515013692692243016127123083453905089691305835218761551648540535850287209253881425186598979434881903312380656838570578871229651376798255267124897582073591469847224918337603816695647999545729701955004451986709387128209547908986187058769426632065017026211740523122073124312277901461104470678793507154904740955270423921133886929571812042414334673925356569425197663759660384980795070523749060520563015896096492455420990196601903789768566881603137296915627255394980401647777453549910122183573271077727103178524437184269682931132802783421019365665986312938123611373776152259860466474397644121112672284752251478377368827875107162562272500412007356228111666822476812404693570925812227072343917765406867075337139647799199568067259146017352630284441956487952188642569986233555789772949277977390803629876019661523541304024397205203170135461028058185466870597803790243676435803757431172577499609909190817970186935214037638945980906556192504479625254154788325016747309159426399998656394018075170833731872056443293061159443998279052278654785016434085144355795352761826373674416986949883600254164736799715946479458775869856087706564566814501764465999044772882781441841629658878734534110766829669653526276733751907457111087604541592993265574737350171958573804570623082463436492265626653390465443373438523614838953695216737463066536288063953956212508270254072304904879772192355537698077525561138712447899827123479860237273350104834597569102815787965891172704423425485496549181937725124549148456338711224466503628674477241304482809221795387156994556563739257511770012713609399555155935373646889122309556151404968100025075089876667574303325092964337953516446779326785315597885036552585361192495866151910023792383895324953982337260638956696862139925636798205340024007250590365463946082989102775868847627394158418214323583696179052705638520460176792737853327647719072495842558537399356277181750229569297659989978997424163297307253978427479064680100147416380234164333966795320024526014488220462876737121145738111189519180824830740785683957644284660473647816224684053483287150131768558748522592998209732244198794275948101962787070339701422896507279418630924355416064061994208959615116487237471881793705141159227249789567536838081480965908700627420050764177211259040336670803229068004574342257996119679671302102672387699904148510617111036318805476796679547557270305292823792937145602320902362287012731740918391390444325662251777028967701749770580626081091159387717621732374771159365642828779298655826359435050960226786423932169113463922298556176885606479452958130680881503369835747183309513755431520672759457146823656829703072005611341396752531570688480127988103836252079945949772479215440830902354367170416207148653472264994022354789047872990812142165039601346797467254221505361571331149175934660298199219944373659618955429150568106493566292360917605526562036631597701880569074924742355523644974249102443986603029823921156217852961555811778972371357076937216953389669431421380315505424562778823870337673533400060516772770614661675398266717682062087020017275395636576466817216872049156787971089791276267797442515184005872574999349000609028919536924004585760934440909232837121112836395143352412510824682866395797379227932036368192993190708935615646955988600955937724177398251697732623889573843218962581086425959643784626649473025977100792135049725132882158782716903777408103669219086641574003976105498122502905806766452155657118039481454701272176312277061309288792191458009613290159967627069150496963405868388473402809110579750838483744393204390365918991981775006610511785066272762103674404359006289491738144941659926318488462383900262797362875445200798396174104820538951084363956627503522666069363028826433541074820907364165249950381102762390515247278130538192991025164617635550052820358673193602790324946185339246884557539097236767291455405322598146707590878723561565217964814924906897538364549488611614618718076658795068172140229254890112891093711559861408504446420836862679089143552262869910194668036752115811753168910397916176766992548213256748693364585389243559439649869357838354353875859694800844583138432047125556462026973001770406733926155129236557956821686803199038108260923864729844340753156713001943073241606933456243740828960466671900811744864928198370114993610493176883751603971486188579000077427031439489195713741289892692097296052032479846500605166766479469300500252474321013111505620570749728454674196377988563998537243558358674797140168639599732728370620874798973479127168392191093949986185330492505672206588028481940075157654007401885684404256151952407903617951577345993258421620745418434632622956853680089065638553188842524763532036451310864902435740595318574484270176615633313864436895084351119701270249954511359127739304506037544229661550102165046635611611051353769781414507010014707541938151315794128030785157696304801116569264130999317902968064443972756115690790813453650398895167436814614535816201257403621796312096488062674457287070207223551817499676928852852647111573777879805094367005345492386995505282114367741270979666911388513588780477621291975206683856587283768258214250003532858655778010403329977440985592997204760228289567319240300841430601223779837479154594257907525384691215620669762133887887397270759430749211396014070731866054351692939901069122285737298079596915578618481209165379181312483379353388986699442922161332080482787645575656646010423182152914041344674666889158385958107824225834013885104528763371183222668846107418920761504758445323933964562412535272108551409400795015383477890246249089538911658675038399714274974003769928740362057141341870321877595283935121798078092530815050475044744041839113044872622429928861816931332918161453109300648173830376604630497935859378949371242658563810174995887062025451119399100111359928851034732418775865498412309353960077863252664412044821788276784155336442675221096653700189821128888473700506578204186757993782303552908823822927175371841394549443822887816771936028791221461465360236166049380814502866639120230372910212902205510962309790792808665418195000035290791536548092518016680112871640631226618286278632514516537258803556277761579542975567271077146019457177469506844770069164557663799583345581918695025591518699045922187064947947066684200882053050339852213100864166087516616145404075763244171827513811056279826786009621179672342741407508755000541141961716246146754989618982888778730358896701278816236150879749340215667332250194961774088710908668892801305165877943984306147328706924104500928580973809974296135294559221844207034623780556570306004074874803954231908522914725063057449404907661319495971332487479129987408018124875212570034865690787683987141549608603977525113597378225762441759100802736667738604928045993061802677754140855446094966992609356052072605301994281965192294026629720926438621426028851175792700523965445857493177844493772023742142135638060355075409552885121378439497573915310374758253768280070089289650462104222986666936115385482813244210728899954098664726253827185110350844169243586543616436364618297540783575459189863272837283809210471763868290854737748493772929209012916190506035095503331582454015169665044620018374150487668471142946820145064041098154402527295491560618603142585037378912283055063304041771834996000717444894765020590823933313036248858588393018994649854471101650159842758761973703777768489977873091474062981488785592605330126935586822205824112710703650940154529278988070966957327242363860869067267364486376179198277730131595562732087366903555561785693764787055199384323199331456245858954227347272447650918949688368905430482809979046276456905778406885789321477379012710784818963123431945053512723737698792973482217868687407466451215970581609340937848732146056505608820097325505777901171786346483166899531820702000821552865084911206705000141403847996499172630459129973122392224408698616954528415725272410538921887786022108966011271462129440343840100335712456911138988454066271775432878503391072860648273263901466133483823636397038589188825850855740817093603307617595295689141787497780333297971390618000068222108544319903482848884948922920662455182015124027239224652375378949828046174059165235371223930618045257453365625680106384653608624514092349634154748021184857316466805151916960337020418895686495680176855157204513570149202741823423305007177267359177533382080279003904065822965192811776870411611872518538328274240322409937847410505496072149241517982904181908950002072787804903399577882946347068790622277169888194052365941760321642897374705286176210718384178872511256897968567370752486802321127246113042556024340516503540474855580141824578155618357051758754826499948706318092964294183347055237762784404081226855877622313647697057182188411253740919234547281085554816448613669530338740871307956856573346043635214058208114821607805986832766918653238685412126410316468549385281595225192484778146359000818869433509950481885525837955652853558570073020223346513932241146858405908366820301776754757410392487231838156774767576273903234345770004875101054633769193767053434923411707754160896095165848425151734458044163616117780960069047118415331746253162095225071374735789937947981820403018864811003514709790104758445985666114916301381553851129932326566452571470261675676422511375660800130004964646416143034647910917695394395741840403238487213328703109782261623719192042470535992487851389763326550783220654414429974771779484913544853241393297647824846262517346972991383028289710534617027338617709366947734311310756632306145006965316934958457658644474763301512066832057518893062343619756178306397604304897595497752256762593418692399677714171462873797309922950305815775623704999054224530097976955212082474271566845157115343260229724107119269723945032613888314923260915388425811365591363388147592567360837622006259188416738663187993156530119401425338929400724768196022109584937588213472465225520947307781515206734265777553885352599795165133952187268508431447690929427222762461164177386709207481907409366629363148117742779223311040687161538428198606305275371078885335821657176391009034623133715843879187622790808781307223629555957884854882208514038684733235072662028721854731867457228461875164055273705531294962749461809912717978018687437398307971872325039765417676038940373853134843729318686820269113328270500037686006716741250411163330666123693683911211105274090132178807221355024979094381533641191100348625013963156907011985726700841509872125632846876551015222575507415762438390704818940326513231390716035366673067185305929003183546769499128484453356166669288394563810244324474010711382167629223578357088886581308581602716550414933859187988178527630596477524745112722895531590262460100320574415499006724869730614216547015560542369846681995923556713273882614978965783481626198066090655302822177385985916830189289061311823419929338799470414529891321921932222204457899589112460047410218364977432142487466933627247606518364800579678665341374885441071906598385451867056845864882347698464283999499333014082194579662503136274208407115659984215220513451139884874187436334516710966731864242500953611202618392426104379684103509118026594707417180565823568369080137153735407934280284299066555969572012492165955709114744651533371002314092498607734360309699580034843904448183548818337778577407739030316882151747982589352007750333872293214261879782521983433740164975630470137313338027925027541867363107117559763449175119825662106311343224495621619919167475717395616301293649032281317552651770042472790027051201161400129309093928335068196826658080582023953903098662590601082852871077796497350950781647725400250417235820195582088958617905632594037944290091084661606142720848649026512256379221371645041884465107523058295220903107259179551206217505556419190584205641584436781265259612270352284364999581003032333415621019073506503967856725118171834659773623067293259266243421678618598137914184159561865832563544701251814505681875695390365659659625457725387979082062441068655696635205647386662151392449128349971671239720050272898394765724769507864310081886872911526030114134018556622809874802457412443176328191586780064364556321029656232707544739308246606659292574675886064790152089236993590078779637691379976270468006747494171426550837693076150355944590888025663715805811390462797019150101351209971671836477274413101090065592055699688629463932642673086556248845252017197726081248956578088340781763749467546054039093708349732380275324093428845501847836090487323365242803025943783940774868653083059884869963720553829992562686546261186751469603944860151404434749939775732612137880511196301818744438628924328716810627564619309204969975064718926462490650225010837209783180233228867453277327401227686676252140089549986628670129673401247634621730073167215844156389831211125588853300319428244292390704773540403293612570377192715165414528068389079002871894570636768628533461514507908419011953872229912557442513591315757130717791607854073202906467785667799201058802892473347774340749524081988915988342356089075455479719885129818306302941998243173864057243194158686383026722780128221853146229542036343117168904938201616867726309195281997063646070711777487952118582940982906181899755409897227489161805672436539622820443536325799209406252347003923691711815851314553527171046957525817515910246650723206897838563795913958341991036777295431223045310642775077497101147861459668074708661741199396624820439230577002894692618063809837882006930223361627223075782087116178391010376776487495173934463234983145322936909289871446917746561413473849053460581181458733054347787054256388102447682999436754556864943897575692872520855405760888868048998981048878655649698791882976141729659855358987111535169759962619172349980700199878843348091726895127828915562362971698453873039242062997612723112952274285612279748295931738209497423628675365225317892031011803723121138708988268754166305358729234400190510341277436293135944273756102116804942025469877384144778043450848813182596025318165666310322229203926273961522066177141265756224194775635940176890651565820886935882004610884999950216494326326862805154482997878587003234258836232992843252264963674550411658656474469292018468362556377564931761691967586960349229925743679424470405054063689569637571998804890855001138634255329764532077044769132897669055300476339983929800950718916504764763289714625460392244323109291300917401615007058256835468324570913056881015833954759859584780621612975458443569431275357707804764669264759297056671775060059429245119081731430338959615589686962167658075809386998163178242131835939406185231948247598415878033016957547380167032046014149456469838205524274629553110331759951417289181571193275645187640352787320083881269746380376793550038494917243150365130016728480396799042392265022404801208292363429727206239033854209918969664088786356645637424348724640444160658121388123963551422873957350962455267132436081345027105938943969463905639454561628869425438502694639771705248622664752971075069004902977298184656930713196991776639498884455476914762363431724614712976607861318571141909769038414563365810844992065557551655179889340977917759449155930816514445790206568599306208130235874353355790319491014820653055505733305787697369024436705181811498516008974356194377163540472320945518996369811131319240449852601113544507769194209076608330799691610195975010663733858693117691065558905973163099919773402749903258489859086471335224247194310949428784136679633432701153937149881737990305658244751065838160218730481435247514797831971178395907311230302908328350119039278046128740014209112371317820097063867727909011496057430789392539267760771632428306399615307155679459631075385720568362293655854529074333155842676045518124510045644632325114168925737825883518483742520088380794427585119964642461083879024629504559957297499800854720298979002695566111250696191064323423627069521593240151559887404461067440297282450886672602165011448147891309203332723027752100319814349393918832993316429187131317905604460141320504743874003508946373107637215586778770435353683729364140980384005995125551883542112791986407717021151557714172354981798786681898634706426711157302988326358144273076038995356413045895107824425416215174336083166529694070574313161058726714540911644382671030387296384203399384571849372176298759825666487669089780235472335940034694818633650472622535405521736717825922568215137998531696443335309934058690861315061322243191781987508462673733802292957855382994151346384144334019680362424659472971980257231202957960681211327550547662085985980593653465367641493587806745121617289914691906184545467714771526232235913358427911994649852804620924672916787837154438556220476692360802264847210091741688273064569213744092378492415402117516473877701628701966296475345853016115574747578788713636629574486766180806413050016192304882727726792313878635521687848032356357437635892515714536222715322594176093712230803289200573561222361214239239504923814826259618645018904630036896419554905143851924725246302192411663040321609898113367287457537165814318838905719625762088509757784880238262299077988567930904051373217324215253102767220113986208606922633073839169239479269127434950714958507616715274222484313379002014229605949796236135848978451037651070822367854398914652567649754333001074354909528977180252229322500311590021542625338144965441786592279260592368680818811929212492909987219715888475413908778616468065920100818169595389693944502578265276467601745320304128606937970930801014427631897354211583076452027681428964793086197944547393951116577228435297512969548352277985503234340477142063948875432396767788142127334394726195500719894725449390777675501866984144054701753745254472688696570846855801333567975523093589405481512045475335184449806846821710104571460443775746416693934578829118813974109605762952562413483398934848030440336353332663697033914654229243556778512654636398853565779954051863195120958318000447420103695693829584919735281315191153218789827315002609689513589261497000167840787462155854058373787071119759593375885488474651663642943452962032629874890374765227932962435398193833644772089918731450404537309119129788957345713108362049081765282463653592470378041248087441096530581481015338258880522569023511418935428212596706610552162038920775073845714448432516504986736520361538615086986833872781874228724008256721102465456237870106515474959328566932104149498490917830959319395478700180913766639987089189092494122693533883164276472431182892005072145125009865199098403814413812665179786544135944042447355532867390565400317707022868969331770136160278158919627137076305691520075382265160505253347350149809330145585322005976080145933390317010210760264202506119017157109322819758671502076766241606203577399977321424032892192320987971614621768247113327434961931479540057567145186099195188888568497891369691212795459834365864915295038479074654229430692460979751430153487117503813960834009771541186925468482632596640768836905976558781447919847829649681987563380611374036272972877445439788021126183310583036193335179615219078478428741151236566752460954442558514786488839392772220002709945995956199299335467225472926387158443635362309453178444439732308253838625344483040288222356236349551886475155333255997898950693333539509566312380264048630052041050721302310350870944300057400366492164706079188022259121966597378762256728318924230214939732439913238895725490449620387727931321703419393589957403519953371051654263360482964224530228875501413925069692184634011601805539353661195199138150105054526884373817580400593595832742056446757502867956506696615632418261834563641500408647385896013825411748885428590538057669079120256955419338515354356584675597796772848337026566154859970020646674698315543470635261614085046238624480589741061171309531511890785662348419862463687418290695143465437651482160223002233266228745951290428898926218389164910505208435110207057447450025980493436751842198088035440106921096036258557400139226365794249106307355673897935574967417194585112103819743291219184674294860063902116246973068010064401007239971595405593804520230570569287456486759923478638851587031296262934098008752408404106337631032953644246676196831192797674463088985818718997673952921735370520305920347408014852406220580005628037721687469241932629303972479100229062546036378598081233416766116084258353054919807722235807594772462988854513542266205370954044535064850407950550348809416024933019587153757387143529951378599934522891583153672280146477429209024072667798161559504618904137781892974928479113496249156396923597837446299345457134885931567458662036002980904285407842136557991745272136023709630035723160003799078643904255588908712931988925722446756782667966217563147418105578937812547870282892532906760110437792034049261052290227143733007139280873329525728256585978953460662701988684751009294883774622146196150284855383320177554135341957555367604826036760031924690654593623955046152717803768609143448642492326202464533325538815443336021731676478047463399004124472196883154387574208784717141320329484322123835566260967849518371991985661281811080220596843616554533934417352741071549671167406970279416680708731577262073253955540464434190677770099089553562014657782037001858193085447786822139811466825453874647782650374341371395514733116815501666473889118146516716187001455813590805971144497236426685516958397015592377067806931070386680377754594703597943306952166546187853296232969810185319099899726729011343065192656066068096387250708434721839935365992805423437460468996708583967602854943135065753986302050238958301398979147893073073858459409079128667121322831651334421122974891977002212864944571703830011757671495423932468547715533469739275828935165691032223960514740470074054332051710212511331745910154267143569385008136305418726862542499846465749052347598682081357051691008268034159472853897549814089188794376981236971251994204753816614954054983300362876181921701893923635802233657595073794667971846189002871409696667959064801053955072263701225364767032994256717844384342201715773942630982917289387872916919583320081991872285836131653151467854752478582018505077462897066416267784344630918319466002985511052203888513082817417665395578539669049320870889355135871318299269487882085136435729901557914219068981373540371376392857125979932973743742654897761920751506603063113185692091041613484336594514288377931424040955056141021461411840326351246620871872241463193179850668677289475844997846262748000618300154378093514014510164752307725337635793246859046713543465889698918984212455913123660991799489966077953937496975946046303364767107798429265247237764935785287276893021837035340073042027911237047324639569745492002822569117674620314151932430059956913534195808168409655268860448075673524874225229360718669630997717071346369519766993453502562936498683178581761106915244121905908640968771030412031224059379116031698753460998339840078105459994616244945550625319883955949264527389116453175459812763248728253239794597470511637623069677031858262768319933759244756530298463277092937415218846561109650142072224705080525416572041944240517682273840475506309491158242018081884985867623024215259074658909098659864556691358736937086840739420862152067016007720532011852419637436383143553204282388194943416659916639937506785831673037117282847827549924892228773531552289844450785912587093358115199910621451156414409178713781275761168932467545962887695171477854727327490409536169908595827286803207535804922316234434635655174619389590209165192929788543602902942898286838956493780272032927975847495276792851020271242313085069713640921236395610858175828142206295458248013087164657262498175106169613414629984172108664830407838505610669019485780994346600473071733587182616165862385481998031379013319939698149333286287612680437474564789819034031799532527207799957835651606478315068708483345492161562418775410189210919850185440805133526000632362421681604323403960157712856649354170626161044339532863576216768126107542855564103773575177487572304157424269369017062681301214415084331287534803216109130133276392161432847387334307632197204156386274784877336358776179435050206837651948499721058301965346473149709276048490518129470862654394588124316696793253221251682060830645846161217468745507954320863220654243866335634285279993371976482594331102283796948687621294808014230099754999939135835017561322751987512844789921828221806604479108225313271379623216364625019431764582232121135258083915449640588700810207569641978620719945467398857812186804927272945485916704861532223893781132035436615090758130344652686947109208853311935706191750582287720927134334625481218211769208087263717302972524840588753433759157376233815048537405789323527279831784098283525474739858156392706210550718423599104184630902391381302493983131044196404672771202381217637591432837339940499367196866796680260414267748632510388698257531955509573232867760709882231771603999934578417025357731293619484986050288351391336263138130714323139840272099879039684961377940589658068040087911504837529086849675540893684648657770051433254724612570025228670828083188475793491959472341823552968132241359091183529220713527356373692229190891671324955885824804481126635973138434190942132419414441617272297571897669380342114875235228477873307986295698801153798796709098906101271815066015220877130053334332413081499382536894091617305863300233488344268961741553198346780167172057249166572237441782638147023499580462234429252826486588529404233188549510933394219456247476705088481445099404731977653226657886113463140055292614172385980483994008927124811708407050241319034829125839561188660246380223342610996363363649247954144690548818598418501568293961133650352302498003806301550018556812917588070637020166519568903432475867283652493700476867695738863055306921522854545278501544730362642059521561438919316699499482703457344582769697678345061816357420850432055949920828428168769589607753629629144798881588211432208602607897358572659975095155672326445938141327364224367635519245513717422483546854027319135861247047036815314236978650030613049939176303412807828734923783289793879692520981938951081862681834369611928061757295356322154712727128595429668408528346343601908292013189947302321145051329124775866027277254821267489204158837576735754007073006403570352639117062583744931360503731391930840350234804710382200718456929343649082367954496441658318411695537949802407949155049619121894180237371701147475919906269806924289287388701420363780211876380917216110149786245086671043221172353147584069987436194280415630899413371605932008450646209852141494291506532981893762708665906422498743847888818776189497638629812607565873584314721484189861209228047822805294056138941207526444909204854074202138783512897035146823204772469823531465409805130442734719754137759108213955272662633014743939707240476228977675415892918253231975209932455948072161090482838703013220254984117474962652558939617634752968290416320104769924047118845799568892576491066189333978706034183686733777291206648961158902090041103949295485316615531977309521907675468955055103737339979325359196348717028856067119778069649267371078074866174142861954439090966222262445964873876526935023958082381913475112006943184685615061917501424089919883852796235566137114778180814156711684534315224886443459234020283520996097424948588570177348022136147854115806147444735081012090926982394233091553970793857989819683432545935963292664048262041779132515518296065321096700790028514206623853038198154257471187618566802931950963244156738975523668869903040489366231860693733081252888873374987533868847344310042233299782259265548985245342311591194854702067454226794996031967609182176159940490523180886130118027071704502266231764371685313777206210045897203152392843397083282250195701157510829363793043563775449994131240764318022032605117245466571350871880668002100133080462514011962896712165091126148634394762381368965982235403567509547337944191433078965065609062698110552642907952898197398095916936109035817354555816063285631479755185997681869361485773612160563776625765598314352146236748537536043673190426282471717782756489468507555121420377742521378508929924314431904195712327326837981282072206217845309471178718446343976983453826345180463553522239560593273017223502048888556328434194454015491867581504670785546676608163744583257579178678880111674039633282088701895913757867689245542398582298651518342141966631157970765818014682676894415855050818845035489034232800769975709230323676858008099340210255329007848179968148148899522882577387681480617827305019595886219701688609699547593228787275240676694346957408877036121218170478240073905350105304078904634196837949958640137888811795220249150748684492215654333857229815617444847243273383401388362780947010252247226178406414463445625070735763325918945603522815168276219108112264614883714462353274753322309851635365877609905359787257252667914780480289840547913998092211684135712147015059606335982515491982822084776093474635910441994581031939687312921484563065804795400107987658104047795620065957583636223952179323822585395571651129941168964948630387245357374480624388928278055096678484291915619961634537289865028287066228698805796095918964969003148583653152207282072125369804342292909689745027087371485553454719420478427227824729803688911594200329058114455497062664540183315524021912555150000793408588011966606592329076553337799043698753674834212574866227729456138563147710011200021820013052412540111369763578669445343690374493165389293540827407597755019277885325284658616129222291674702060704567988442616593387478819669497959672569755152958016016837057399319931566107134770416182498651112359513876516795872660178434908146274627875703304164598696275846083172173058374114799909092748480815187068632555430726779146826122019323431807513305343155693982440664801460519664433201224370964653274793599583591623572596910873977240523657899938984467035250911594124828564141370020048008694190998240344529593440865251564279714991218669603043640941407506634009635898803814342341459296386464333920491370460696313742821997128008445161873871140250782293668325131973759883745883650285943468906445001825085500758308956773537772617552482691141366936478033303215875970407474694052310235778227243103875196109845052469173982574407899387235006297454256967394443483386664936226434384495426469960301196312000464734516273165058549929377011961544656070807768598121483010557282968944322448610222403503777945127018606399683129691824127155094259073179333654042164209619816922166718435357230023265371529621826668149783815023740028523585661815285278190146448939914153242205453071682877777433122878786316025435036888090564155699753189326210466138383299758798404010700284252431214944233762203549169264193089275055910264781362086150964392812841001965865217594671027664558947989589126064093309933655267964766279485012350196623579062474764951803467318770473669882916061003865471308622060446973431341522071730066193368147464516777292915151117727208348276666190310519604257178209472684599995157504933646284972638282607417081954168088783575990423093218536648570335370938767816293419218492042633060633985792974319580033998929062049884655005398502264704587056293592585565187526126565756724321049716210599499535117482396521158333619269803730723914027243825077031843851571213081351412702807227645759310374471232983098906863154309066365110517297240900998662894886445000435346361913250704982448785899760115608093224406843565278009861548346854059089285135131371260523917815290719955366953194614473783072066065735959214801192763558780744391530074102526242254765710823474174422014727637569077172188604246051179732724328906936334829500140010345549551737249416434158364355887857638541031817207539326906482196901688313753365445928589021697075920756493427224502953369844393636681023076684704475939932446398092160675976971663260054909011424667025733691769578478900777574286271787093874590068152571660061144148729964172569196752711530665333657097983883504452953844507353945665154023009888056030770133449421519569383097413466234816436199652948733853192540995187562447071408010262567812880873964790646189450531799451835553906388582493849433478596080492650172876537011239785908225155359639440336959040689426473963647944402687960740513434657775597438361346738577084890495052583593451250575039892776744832927429353709281700644900503892924256238366642481943073631366946217778042634841991042781719641675660717960122692114138226515130030048143707068083175550549036898575189171815751228024431230642189172176312315419178404958758134598626449531698040590009092088030055820358569168702606193993227062399699595062835155000724485116094880591690647158920785607323538384546894074064497819410901818207791289653021341704290197590579358781177543110083601925797284702691297854959941529418257413547496236700539843413108500802059156780186347944108027955661348021082424374912313318270915099116508431219516321390284144078783342855105920782403942948791254714293978998261687050673163932196973562594185065533714838863969439198818478352903238962705181791039694818472323751317409313792254442627333550904430433015623079250847849770249310298891198148308594648562520873330038659458003464180063681352595332641240712142287636716636588637371484958255787163201357386391329352939897290619453090824051927851813126691798379145643548167513183981314975127477050192275549604993505396218334862481487420013142943071352935066168632610586846041633220392772647505483996657111625773056511396330880820939891319684390247831038657188680827820561211493511345073933078399923872480249538711803948643710532567351892564057757667327000538957962717965134374659787351637282984386306748067584857329273028036775330483418854179746089933892716045516524120829226025208089518767918942014448957600490599647787545943216334004023002892701187913570269933199111380091868742708289100557090989771622900053906510507434071959358747942888535962708980727512957777305435829895304047586316215933548781050954604516732865057540882950592524950882874098944195516607533674897461707853725096379868163774279930623488813044902696697426098792499995491558070978839284152129877708828133039033766973126392820871510582224181659534295547124250869914863164113860230146562323442549714042319983980523711815552774159169320756037158194981285727189526201001099150198574288968615155443366912259319944932543618867485034322404516381935928805323798542672169890142604446669720374626029466169058427734352550786477185078905467129086335309972859408105218532075431769028918213819988505184896779448184467594495294320048861225403201216465795195090221151397951866439884017262799515745217587015041736901573769603322815030156861897842229397352896939445692861204685645303562806211560334593501845967933279473414053029158501750264818153167332610074667793619607080676273731750795537927061026893456030496520005915808497559278757853644998904838410136251891638477024936851677976590023208235703473453235795006476135185236166398474149160576281303209769088564671437709163086337444324675741720571242083410333877677800190891186142425067504537549122483341871943416711449257205311779441401302169042380985894662519569934411944054999667034264841159949120463593518028964869274928006870242977732595011184218322766620443889692796346114021412506072379199898285575208769669054131977503144208336542521872964397000307326070645776804304695245909204037631943952653331333888880780184429252015185251394096394553085184468088845853565293391455441657053913917532579579098709659868224841988022920040765985077816939779125616892609382463225748861918040584192605045322132333919646335736277938751996012545122246347519720343080737594813127950966610899892022410779452559358417243062039743549504723694784189073925257281260740011397787962055783500557896622925309009342947755587892847829566555423800447040508456975827681201668071353246380537553173833179857452059118825001522600423272931155251146662010555328302642594969478837207858557830253092858822301448031627930931564762083104348169532311664432472994385924627134941793988550606789463653581784124356463411803989322423581219789226391832667709346012141258052201790279788830038792982569607590328832337678979194689121720326836893870389964637458448362412478293782912058917615175722132991906667206598573591758395675046418675681956612844694502509173865611655746848257346792965172417243937316560639579193450006273349395041795264765457767099923786194267857466933587982366082941656732886565528746184568911071002334343794274081964830263769922191296102361447078821290549910445548388849855746820383371327244827671694951845996141636450411714675582010991617188450785776388683104848195267290026845293059536063669242744385130038558382831537306077897413995759790362829626322843437290487734841406463729685075946416284978707786640955510947968626868286605227160348868235682587463740369042125711560670297621212744920838776861927937904729638112540949278828861555537676812670273131293264639191048403785235892433540254469299137371068716044183696312277076824240626412596024393382724466001921868910858940032351842003354911273714032758395792149782251839304507548950824127640771219637180239886402380099675030514601771237593852708063026706646676527075834698060420568574679959639089727288337923314963543323475798952270742828586720951337038438668920499349352599767639655974706407313421635180969417459804959719957602090112283606015784643517767263615771423961635346787457743673521218203542607969812283509713961353080522813294839817154414237769642467037610486264634438906404295393785524711942416694615208529810277333340032870785206443049245929181381611357646012358060170176692409399389523526632689562948792350103830220176355953267477831342614332895529963726851753340821158634656395246331766823494566197973305872584240624401790650308232316770416569738915962593870720548522594327148629586182436327827259365694877298248767814812756197416387994108160412360135041607459450040022494085862326686511459233286898038742161088123366086562213747799527503699871087342792485168131433837263257974588107847345579876753152822528145652541429002873069802197184167552676620927817794529547548234638899947393495070646242154096781298930696370513682272040290547523290330347196465160759367864249728934110487136377980356479144850122552519246520401266068522405666780761252608204343296636989634231014349183922410009846074181507155681768521761651918417681029880375412333991852519703274960627661766124824001803449250322253873942694584158654039238673769461006944330308854210043062839384037001990840360245737973437749820246440275298643069417871886542927228876663982575719620101487091164308784289843338125690572396853742083241000662178665616591125976417775141983975706010411109354661844524423125894374610350276490604171498039805623467728600448070383170676445547316888890115273553060010190170671288076288602935516846808932206603471621038445672265735726263808953880956872583878195828253797170118727549690750086832906188156571576433714096950539008466457061315038803389982633862385130692722143077174489222288524725617459437468565978577301157260236131757629081750996385385123426174506569407805579202829006402592367979184023399556429130197839674148784752287012902985222011271227558451175989670314814898133285253933585471987212060525745889625140559497328213104638063885133323419721856337777284074375527896277435416294256690803589929946096412359171645506170785596085791809869613687556338111554261885359538348555621798489633916708481784353146281872036285424520215701984975527861553548104425976774311456754933288241136187174030355520683197337169077754553999679865187896571428722205051341731672110505806885127538511301324549969980926714616500253314207148783105867092992851619996168670609609878882513856021876219919411238190305830872151438875392612531320370766929553280498970576145047914344476530374543389442569992411792683997900495485753557246447762839102807082549655898887224223137317292020382442368889899392151661257266443450047896051087061722489815322381753888207990034645664311430483722419345416076013954942613731403302337492122545050307652201556042585462176218879172598228541167855158687563360914127220159651997124975698945649484579980618947813948728267504801950937673057788807480934782723072092222274385154308158798868296068808390499981819723895896597384902790119644708636195618923549188508381093345719189260977466846535142312312364982659164173585686387258330735035233586205056625279829440203178165116800570767908795915667616427748841150436650265619322444660994154424884748285533667429071975084938177064416310605771793803023009020751586952639858196189422003234138268600818414097450796088105389959059555080380561459864045159419717047518284603560279571620423643122197953495467256998959799212133596697570336558829926179200631333398461192659695261480470621590220786661821706623232636342899951234241906354724345937256927699611433825967748034101784416559451093642116253300542337262386674890565649808512112812755614409255420916373666825184767347160328021383210761938634467834486573552862098844558042517542543980527184630138345807695850653623894971069720608720249298106835608023337134503646464417945104997501493881014968032675896435580007351185346997907882115490574063512654614756712019378036889132484689726634642680770999709408583867742978421269635474456235150275387567475156300379591587184687618234381784338037738234604377818082653362786252893433063914295479967110944943089739178939578230605914542962861836075957555293402285340517446476943095588745052047835444500903620667693562352023479781898045741362874665236135543579833380322316819827847172545732468238365520482469847953906107980035128457166083283141034060854184061747108631118402187348853612901516974441695405594954575717538399340198564984095015510309893112131492930907993612777565399257257539947310256462041804397068308789343315440264272388713479386249303657815901415331090998660224468696788862413724079898524452252740484886325908895331854561452760360636977524484086651115214312557762925588812430614217623784791413788713977204850274399807052697533467786556766938250656874885806235954381920389004007975590337876048181394034331004114613160049945623940253658138512472026368575740220628451929091940313928686779531691152181420510537611205502571170141392553738286758883576722936180800984135635132459605401891150702243583503980784554899245795738786933912773300350611890664306135508799090984960709045506384229975377491112210888951849662996329004854624494254812360139099631436370038769419056371582509316215839132331068760076769930302935509293787623248306006537814329300248292491305705338601871020634836810814577611004325109967551568072047908440750689337175309802512056565925062509928876742196191350319985657471603850761450307720063885188893174050721047247420600710850208080015241348952269299616484709656258880629116117562869048533348187016274950284328129900748230944730551518139291058966736904362540559902051997411065996243345772532388477222358330714504060697653212085677667097094006025382639174258259000013978191897297373648701492997317404877503450796475268139554518605896502668939967368554096742531425991949714954148449269591260832290895854322438879463188728471356484208270644454648969062592309520328150963271403375032041030052202357149541555707349989883197937541134506599380001752745225962626795991020142137355369024834332564544708013741465557297007443259639950074650845912511778372050946892928737292621064743519960243686219506624186649033642839053900814437188233173118973185924864824109953676012943014616612133427832940295229931967660615967623707517595266151048513093524222215889995260016489449098612817870251101126069825473750517988861859951475235648663554617622861544127050488939905233939089349779163569048334523282030452265359758326935917187135571556939828368403391648062824346045432047532888481024029141100469973455286003547327036493517544361688501067134803905589799422373674362693940297631399264782525643331852464237210009342365341054057702617464854380832650779786218162825186194007169417975132790158799765526777333782140057088945864747037515646919897685536689425882756048593434020449744154829832567585720996478736410151143127345745700807445208043014251028049350111433717633596953291084753886997092274035699393046403194851456397459433143010797139535447465201937519749900691526608680438208945530329920156178764921974277461455776582390439333860846237402806392326108742850647629552093296195930730995807335161240520331062925296100401243199259455698351590881234526567811421857986543590262203616851720991434240509836950354355401862179501471074824512119895327690398461886949472316911130221708359600490954434132971248886271157669405441252702650698353646864129276938978095262329331489993188009355308171124044273592631384459857258729401631500654880207425735703598212664196982146875086440961332908078835087320860078422810704811099068875838980208128898775464942301451833738780491079461728138617180823529803981474482129879791285882406652903078270047119721334575761443648410839946049742994430974819474104611477402815006863037916444710722920864016958162214274105183329225861712905863863348766878838497485774420151382548895014310914738488526981198558416167660958515531164208345074598191472040120975241341507723829230273631356782329638841139148240799026078978693530724081293184793640302564989099136554479282889886576716909187445649328115691823010183163611977517190635821448625113139212291877774717948286848155570470757316049403959624078175234854513917352608083222066856630727819109782253390706026156176709570470238145183674542442816240234809014150097592030852267874733988901369068885802618330356842074052022734780908788777447951290374661446975612197871232617423863752172524378535464795657687493522050940014249500270614671794217293331803172075787395987976005627651155430945805410622108819271522153643217997072255928640013126141474194932200010041280446209614751955273218327803105752413668721056932730117287004344416112191467417806821788850920598513273019513333411598985851918209037745107380023176322416550150464490183892194206998583132474900896774285664701152024155030690009732964808263450611965679049610824725736303362524327044651318358657082296445446938702329265396435404323100477617993695172891382977891749383167320819496392538621358664634080549147813360524303601601005435077581723476586707414726363379229625855942139607381364825249890932923222932003111844016187453411163843470655950590962589230297385145446317152195946861935962211145561618928705855119990664272760893658438326285424534076345749823626282152675061619842059244715136120992392355225706178499577352117062303022974370847625585529474985530144977638614156792168175878691080718239526827725402194566144477603885692535141902164537122331378494280011996230995896819756277190175289646737159278623419707836778130839400905058432381978175040267757404007538370247749334328971701989409834419092827724438019895616024331905404389355267092549108457590619102649158240772043001442272730927506610667532569272402091165236709990618795756521347177334328676936242822667930758879179493332528603010472676681120874908197611739318556717542611985992192985646144748102715102474018121266195256094437118112463673512450838296315272926800375624226932302290559589341646815620471632840369991043699665111217591539271317301750426727748351052642316503830825028492849345739237739130747558417958842137540615134281670103773633881045646678162950641421295453068126864268015122244353540530842308138063493332948622140380438562997819964669738866087945945714194832364840763134105261219241632449664036408154393537073757760560917578704576252950897641194077575345664860788172974333820538609720845296569211156484536051437275241895130866916838425264596695187086619664298406414725628429552231268393839952521316062228411062506699718970710558356827432792539091975248749311461404321294956884237132732292965044687084605828997270580059628013758781873819240662033810154358178456151801216680969447546368136839726508237691120610373491541367164224476465473355334645561512346622459371561567075256046172161701834159968044525472705693205374161616949047744849668790694607656151293745886097729283704391216969772192555330392194873422589011390949504913953284010404595433809195024578181419792259774649434859103577991884075134170513655813042855666403225858820249986454668972789212449320290701924051586429946948070398412737250724566179834559200178559416223589389608417747447420653693045867662225544256563385337976408762660214563507215845223353557342580857769311288372856917138122092210919199101362488313213628773706134843988435737952667096331630760770284846050867076658582475915248367504389030144515901573256531719721913870295171945175517320506102684618362251302127263292931372365318592535440042628992588683928504054288926604450073174294156588445734412860331470065042890004317735217558382936667661327606676758254489175277989719248010406099400795726943327277669279890864998321951386712056836748246399108257336308087216043650021166234703180411292116030047363267313620046142909903785287484667157925839420763015496012981752777358145968959163503772099213236818166480530874077221550545568932194911759165701317981633243498399578633108483917328578097842640486363199260051145807250856625674107151359737703241691696492520197035572848702474441137922062312428626510104487729652531290611949659888162200776186008831791027797746457500794956690328807438403388203963490306710071287363150101988237706780331542736483359387556814603537000516325479559310431804512249226707793731657984053845776226257453941044794905288088393642120920660942090898585592162359124936383663086424600315247220614928544030194714148575584538544490810668837471512619730139116897939212630693585202470415616356685663548556649853347234339362703608350220911122942186679713302036974271525945926243764159014348360762612100610727663135561308128655052964341637206862167700385718315673176495870960574361037664239263206319044247400745504920762288621991249321098399450055648583397527037604360663015542563497191225655126116709253272281037749596208995722525760753755326083711478874199532993840953327333045244659577713134923538997991138743651411794335218161082014088294801030506772822237073349108773797912191949373427413252857179116128491885237538122914537250213533645426957572746533301482785962454362291437243007469881850285716599855250748484325278631461928611242892033278321519065321569973025459082358489032078930519291742852501699555035109585167905790988365087294247967693824324902795439551903930118590816162994341490113526268163828083037692373287822436998314493958040891098703005761554981063079821145624812201006994925039724057626805653626928330345347167458503759182680609925952089865852367763281722486484346424653385408819137443479646596155080157073038432046895659942423060598326548507016217738776201755688099276237864027881253729280766512764671345939319890295887674104802159536694608690558839203451756258983693297533427273004717324626043423691293040198439556910629853678440089788940828769470855457216968276879586807181451759475205605813551462875490993594222691413135305656305107359907677044686918857318202766346359487804087484314191673050084250495475260654945112278305439768816594766653669377059959065964903565961466597908970761984255857232544737468196348359640007934699627282698795258714712025168864467825597656229548162655392605857975267526231357942811042184653404929989880682780746769364442850193169752525605225185719542237661635226980605711606971470207581431316672790653451520702573489210665747895153208904463002274347996260816045641755334199353734596483506354473193394313686985602492480113527353603304571585764853392103958178874831714019817919583429645154679646893440009385399162635241021248382869658342374801989917046640013383630645873546633555814236109112390296376373176270119730184644889145816967218260559040303007554260627311138465287982272454295812164357439351241360146394160594332074466225471626399216992411220716527690619815601160881265504996848452634948328731495518619903739780610068587983502960839067067435037422200169965270315020922596321678745128455681048967565962576068935988647627283613518443452557120257909365660168430749171146601088190027612108525699558171226580747131607348163419770708611956937339640455239595408437885918893920833822334526521837538067711123362662031648574634357891056947514718595928407675525145667361127872140877214337963169175120787705292196298483757330125569236646153507728857728474455226624601801664427185832590463467283918106736552856094447395582557951933985244299255430841221393514512809836779826900797890581165457782055640120271246485131110790594791031268096374157623599049506673968865961225030248789433960027106430093797061107944622335052175232005293034568588684331918275331006968807834963855218725428595046941798275171211921080551187252122675187724790285142001443263819578845126066137511844484673020792594796147751267149486919579237995521015811858079873270447404692112673862295584282406891016915431214362491290761362662283508183247768072728740739911854689971931368164271536280522172320786814741312618960434090203705859302397601316657929080027426471104742864371800396987421068997693629122191362229089248534615308616120771758824439590831646910826149093785572840699898720874483564812798198841384602631605025613204276917181142981583802429983343184597539242842526123316517535770062021431027545776118447696894332187767502570579674102036386045419569775146285615948146733031840949672464571928885803466597081099463430338732383238377493645002563641964297394594764000326306534720805167427030798915984623278606325436004861363933256430061915844399547311316465858529401435908967293036117415405709385415661301189847106650870643053033952292102117250068569538237962419274131098002487134131852056625687472067985209824536158481498965574558367217299619106356640178987753287461153269424855277634662608265958631701346561467447335412926566517424809444585011098222043418588670916198816014168883603569160313995309038906295562874774620838479507714032468359776555261184094616304414178417725927379429927195021159041774945289593352510383848564553964929577381140183875636789234567244113229414245375428290488241103579746092134036263524660562420016569422866896879756252187694562983799355862958641557849412713591279062370255370748817214615122622378544077708828208092425360108518477689588913430230235105077646305161165830683379389235913578670436839548882904889089507224693268064263312443992267252336089413681987761747238891031247225508785208043683743768955948035926369990957019261675273522115371412835182627675417714546811249575684534535613138479950907456868944812592530824406254002570219077247750754267170260368836796290548413061641519198576681358673849260203312681816418017684771170140625546291002174234685951131075994134496163716371971232419202821296500138033564352220855014153060719638951635220261095944129967161208122858304927348701956549306333712602419522988689048848839448027523096120308955233849567874478565776816523700976437217842851552827527332125528720999787021404139581645985710895645937572461213243618542760688882029890014806126426572928263061997448335347075351793902523296766115815510799852242416626109948275436142590219953024186704061244260746218421219312287168393080906699826262862262267852844099791990769004191414884057520102922567290506801613522558435203586101169929035012158392252756553072308406039319025903569659955228132663227483536399171476896055801695526796502291370366706186319751072675673132224617793519615532927226688882874674228020612907174697703117434168292491354573557034263366229550842211773639629456916160486931717558449775332332333145411106756029306919221919086507685900863034060254768124769868155307993667541354288754910399084476798657460995959272151574443972823745872672601297441104141069263125103487610159115827468495041732357305383616755387050337224974285959794195637213663368160979019541304720573675542476423405887888019905674514817431867766856785682385091546732716283267400692576144109121971420528367399144642825660128831324222714236677191192314616918827655806285277093691097925807470009869992272610677799258043492926780337850703097704617264769920152331494502921465705803134668780783070589545214890495583770972409676246920152297425538674633230697206289501769288304904894013994466787791954680055228174727557313404573238414055978851202449844023554882879150580150276645984974129326440718432743644552806671160484949182792200913700795398443914007893846643378228608091380804179459878135694779495060621697620599786006836437718691678363209742116222420181278220234911578951025843015222555352301855744972128783244883888966989716150294804038754074200330783656105290385733698892469738534782141666979996663738355850643844234114641342205475975353619394139633918412260317967078646439653512059785444125570006519884566390972387609946049251817732011063505511206399784231079198856768622480201593284218016068317753129780423860016019469120956589797080604220355767938152952857338293818355930382134574933339409012800163008532205314604012870933616070012091625083375562726902504878130181903947085464223744684286128223578409666657111282606675089584520495150136190043348116865820171686065665142671423560721576504253658650380643824267946209559677387149679184202294015422894646360840527493552509913285993343500588136083005808885200910486437085938055965106445121679230781193566359325031396668618707264735687925782607212182385283903022197251930732749576066925466318780329027183193131764585030751132843028029556444505037280386031774380473745434111703986773445457179301403100219204726177191083739842813214275628524175453746627092359202285166831819228910705284240653264106042235604587614929329664757782056451650323119240565789010432925346110922957949289448204223367163460517258695484331931323738409247914514464006526759965492869188175313415349592107643612335826033749260716871156102261139715442560970331440351701173672825991900912823768443825555721352009270325538192784078039230469900205280734918197207816492229749699033338819003102752906641538994969037320140295238390363921751696347516422796712157383338259241966495439653889402526263986546232424883576171252431052201761866514370315756934432244082307142513690701057686207680952339320234732750485163008284173127366373683746086982776353699741832024725152853078533081691913255277418661309896991495338046992388098674970746503135561749801695032704960813426316094524761636350586449767563667542375595528614612015106751714964728363022326287391078882474155855546300175782406560443591406838356585840628820454684681828887780627663435409674690553951099071815348868104296932927260360002057089136712010181835088863443914240244705633762965501415771814116594104235193520878973519579985704468525986719830748984921575903262481213087997583630844736439402203766125975052991937726942383870063343194716482489815866400925462353326722713884115969287146169557538673628725295180257738905681113269803240293111346510484446205721093571643671104625492002304438786170240581417846168084644080189024874337450855382377092094234079561752285845590827912221176740469426468592401556609499643243902313980768782476317091019764012052118392011034622229605604054765491001858167373045261966340160053944983877038219301884352802330590022040406756470516370991357482138475414638731440464905902357368949260267779149209513598077758335940569906922764500479183320924143426500328883575607256773231438493002611521180697194925404639349470534162750765081077091413583465595504070610789915720638442000709925095960183829156872013268012858249906188957604823491696306536361359164109428316378236317769064223717984424289463832454210726858699724693675160278228331972204547248006605464883116676243936676533358971148853569066975089542943009356435204290237092278522466076034212988363471969575548668581117396817152561685653577330614817017698722283465243820995477334799905417147148635120127604681450015316029764173109618081078825250611774206583191405790365342478639754037417137245332881438423422066385862006730010740977436252827132192500476799873221426509319274056709326140613013025848471837463389874790754812461956414080632710781451374647737971038717946017124868563633367590158388102119779044074232748626064848464327769763726068446464353126517257096075532380991867508144117098042617711119065599463991247416242976018296326996929597490066590923799289886267708561185228060102937622893140613785750366917330504159611239540139854534154633734992548886122564166949256552060239682305140138077346642352162863258951104193830813093031098018953762571950933515857020283067332110882338827987783092819751036825789512888800092227156044191126496009189013900886172481547372753729155289929112191685250626579291638311962881764973967410768494579924405009510129495123599453224364644433998120452107974391108156774786689018175253957778674355156113498261419438962799334012211828166764562306264921610316607588563302145165487708686090160087150971961456037185563822152509601837818434336950486193240299721834801216170921469691542840548147318663468157108400151535216237635676386975890703130869323692667055567080494272094397910334711151694120297951079588390409419601718967323163690954614238551687729873629829187103606792197989611324691880962746893803311204071298715059872221514053871640459711065125405183140971502094117988229998181365397060456698079113282513751718696915993537921676964267351357531505511652626824087974061028392021936863258585921776505293263590589779014381682836873202676568022763932688383204722023174734308933238118750854633842614845482686596675775292177313741703041307112219236183952772137133015485575389127639461530691394440893021802722553252541114110184211416366866949875291139407827419692739099936812868005755769638027352338773393952989862976030970981781765459547510038331350395359233175128472100977424279949043539051108929414344383685498720522586460491042711422558647788711649029387375171080632448994045860084615030810319116267507732914839220406249816141706436149221606173713720944859533295823604257643797621108297067872884563560215843737452056868070672398383957149497151559435756686790771507573512752373755643075121202271525569242411505374191633331640651538236476373224737451890789956572134411731633882430031324080721595727499631220868864499037123660220726148196713893927009484121127658621172463528103121288722547327703765637968282642545182418729793175236230126025088783949753423064024039935471437348876779220300069713370526318227544495487047871686408920352304241084240278010368249338391725692789869808829238647290002609589438691656818795276824650065554175781218290583169482831480482891745328446230348026335904252606649080007295862645153479812376113177223677045177022976035035371778494648846180140317212699321292511687452108319637841909137000658066921366049763845883128852554376318765093257407282154915546703156201852069072877597801932963073344316480222650723186208503055540057273468860929995097599919393293257106549626937627793466027343610855432967946201514682170781353894203539394798978619972527459545538118567638696428412956323933411782212187384025559173092686791214298178987646865066365164580986595870077111326808479476301895564972987868071724676377825651574462274680625913407685055723075939990791129296001775916074975325583481397193780490690614078308463399811563037939949616100545258005071894432951182251347853751346465790844282259452642715888997266406203519960371828600633338200444457630389567271821480040851891377049146809724061343752535047450135678836524678096483867902248533835310797841231624708009070421782533417870516167404415702868084317706165218199239885819433680297149946287398855199355040848067310184376894599571009343419388476820047215725563431492529942943627786599347696051808302083203123407175355237541307842384886085759178782788976901105818451474940921362461723311186597529546292236282017656249202021456698632775075336425912286277364819686462253555499275081652605187761558557376989868738993603763430997228299607038089019612104208091994973817634556625663046300840212926763809953833530949985060338815727357110124825997587503956788850360130085065959431672240299433695300000979332680663189207170344838954908546719934100035893560133412341508843626711390863722226605916107792228904937363243022651800446668124048893571845148137430224458853959127375482745879066485833047488560280922617873857764482075121978622841016588627484663588220185737357459000116644604759956191793051964407609042419295458629073216249754022489526979282493858740517311929102350833379473788767622650031648310933502242864787220620186609837605740772713763785293536264469157529010093074332292166645370720200659322338261218665551024082901699284103934241575157228239590929928775152613453554447946022203202731583031007030561650964620176714714437994914773717186886415434723270254945385383590131671016035319578504378732339514235673237395421168669705471685635853275354352017325154254526262524214325157382511253644640409447489524923899581372558082299796566587343019924790481625791114079951125109293704505851730412208834831100545157040291326293285418028652305710558530957122631402801150357737915130859070927360810327425185781245208792214967930395023021691615971782633091243140328045096467719349527133360954485721381202851521276745209119915049737384623096546303409789561737242733143355296973888723995185045150230748956256215156493323038831626188523611078219638213926908238451276314783092554245168990200163532676772571506388188118850705359107060711184176564645359104662074825183704548636831116474914651595473815339694389653455868279268144631433563860796321237931164980949334460994838824934094623384586382840919569530681178007427655538385687079888131065050950515413272133152616087367067835406896156730793212118663251191151608744143070732650652745007773369394400408470605868367723429297450229679339666957191279065018839960701322914625488472392409490923140785262608399696718011640134095320452456114542996962891411771714182873754311455325474406019946879349380533800185929737692028285279887374250916981757442231908920762908918923429546550981104704767634228977610015783997224773661569151045993219907268269121253514002041281396471579719886690557022235956021531028518747295876045971497382036825801287608818839895256682461599558176379987616250867737537304660637402035456573528623579028283535772399750814055845876120523814655880879074949031216057870268729204325984922346109196006523909522723653552034594737137364471912980575068932857139152781217671318491417400867634860318640831987207686619397623006710680847811146350123115638685094404294981784483813171958097755317920768585139338735627444529055689313806142995090226184527140270213846682455387554882546639070288633639561418081976999336424319517675475545219341829922780987444113640472938437332879135840991254017151551437713635295467960932099055737659098823585323278705390093022308279493004792234937153750073844130710269528530714145589561362475022120119484749959741555806991954738217055377672813346946808502312597499794780716057287916703376568162970290755655069035328834112571586730778407089397511404254882739897753722522390350388235116162148399067845504848157631364294181065327981083797199991520384532451236312846053168902271962516074597489859717289305173344206398945711987109754286775319573857522688764904838191247277733343887322657689922511548839376038574692426641360641308745985080114219911141131758381928809444223898038849134275926454293966237247113254358804582440390443702657717759513038740867899814739380461618659742053253315598734922900503798152748725167303706479485525808318679066512607062181177818430258764893774334977842103935450177314168370646830734463151260877028257591883545184554138772852108535208497738645345956555732763504802097142621491222614263707024853735884295635941541967251154169154489959429433419778779604476730910810729485608189923045483600836670332233613435364519880051324457195020163315058404036405033824778375128550580364408208341779035867688055738038188591699130679421024718860403807507596749952044452355122179477703067345774337419949572203387270847738225531069445021160939802272048628052806830927823015300290646382775298750363416256232418453906107249654761992810488343825886549463694033160667490366859885378118739070584466172873548156204550844308138001757857285225111910744052875168447637304813139471036418721567318551191880754720828680016568064320429880953860489667777020284029247947483780594439479146457595047855771397348329184157298558148193239863574749434226947322974031322136344965025599353997094620959892597186771641154189283083026467437819500158982550318550236634247911357446722180606221643055351888853638520318529492152165879087423660272278459547524346379926754652431565518614317834730002953457330342755338221463696245961511123599245971586949222362500279230506706806323013354739813945265289303642239691477877804354233010312109881962852772457073327188563980221199976800652043801300211531566650195969778977274321026535144910877336387958462508493281756486941933591505919217335740688822682174106969932056530111861815742048956948143303298582646471245466183771678892371553921909457349242702779374433501413325274106213340233986662562088887473788849981329115099973178231725817307212623635038302995945924989895827184276840933293263509210776646905230953711326949684002148144027714990115048380056119949634897131385075111081557055365931435196524211376833754504628223422756588609447009656380683408318117986050420872202015426642967226761659818443548751538071402465818137375308644247400924795163095114271233700732490364972324705090637946860708714879237911125562818065830217539852278944335654319631018374725294778732388009130411958362648543574388854043703021077607566617834000179050095703469751845298028916502203062605624237656345017059426276233577335706920334026248128206861988015877186977065111393361043251685235033615318904007524290928917573396394653758037039542430090949623765733538598078048961313004333661392975077665732475002267733891606147979365483160578864355341358699433778023090895876767385338185235773451512441072560943872541713145066184045059090070578097621286396444516664476590019459193719682297473185870646404253760325752183020489229877672087214167490315285468704158422574928881857164351287010896336781931768798755773059258570151534019178354734304976063965471022276470599368271699671414413785515303026974630355551417940437180224861232854766456570022232161855826324048851780258274398081699622192199150171992319667593265348137084199877968603446882155732660341092836713334150856241584440037039147130782159932329333728957067291240760238671249024276142876136057436789566113961432963904240671721639909672366366574860094177255846238410678815927905739046558081249156168905059306198997954894145352534687237244008693595398155384473205343476578371897603773415620639548147031389511039661368733015139249454973424460897442267587367962377155005288176303572990047632033405962664969211735302944764970489596972038034405207272340877035535221732244545000359707200704549764115925266635147406691559500423393474404563847235781237592884895121432686828802948278006781875160323817347862801262932025203872972487746643509622966078716870927942178450866381125526936156442123093877990747903731508631964583088313636224919556585747618154117436052243057469416558311104714419055685546152331777679647822875006871434705426754076011513959117641753820617050752904347909740010234662582283375031251986356499112737047880935039199869483717905275924777304574535746054312601920895232796150083976475487827030693401088744312794461925991606896111664820007294440163197522602508232405398702023577839398246626751985216505549053535023848985050623355505137615955093049303610765236735453376379965824786608132955382989724628197093069988894089052285507266511619992999254189559418860324162421170256193415575845295967008799579247537346491305430171285864838309916981973507112982094632387288600903298332825589407802949654653227660325788729724821111810156488343548581596638411588188959204958823306430573399111837060319927141566552740024089023829021699065525086635080589905400355521249191908037574518766153114292237850324890018980177742063791023754150794955943600625120145224681781425970572029542888220649407340462271733075046435135067815251801678466306326466783793429964209411865483420655450970998408157920630527596436261062037461335477340662998900994284236201856504941054731691729059880730118250606918354055024638715195928298021790569578594522471703544364608659275658578601647291857043238949577494283834492239617919757827560108509527494815988565422002417458343958048666557471986328359413546458510569565653537916705009338958924682263301078740124810448952980080812601730153609375820116234473876200473052398071661361637328865458741398150312908743226834056308157592234320224640773361698358757429086823660797674894155351635867803386699648913736540504633724365048563137277216397617529317253145517221603588187125135659638545993037820653098257845122310606786644699038992393535900571362639698031841435401215815660977101682196975476695836888050702363635093458765758985094222985679033548108212070446721248556577619801574360951774256062848644229306585700683330920109331957581525106704161464295354392468951944943182080549426395895074169157820173000443162218792963417651962533948204149391528966018392711383312941156248855955647022429207894586001066598645508633730851558777108827311504378772338873983061955493517379486168486423525136858414943065270489902182247986955482668027261999355580705440032393346364786095726031448120357734179776756737457099652942073047674642975777834996128288478612042059030874895485265344217646433003579270204112111358369630394315299496477659225592435006974378243751962773872006510045518805084415489958242256101990068089636005916984190644253021693877769301437587911703652742130526168373837361635582205051097473522442996565980932541150098651874824866874704167225406115568911887981204934910238278546087137692968139516301775325235787772884501853069313007325034809154341148891651275693674747837361749378112281982863281939049511811093477713411844212656968751736388648761510334207995255249621741898242998076933633394366905525551254272932858964100733914645056593332187138518007242347715661228906790263968071604631248071926429296730280905836457616115138695663427913841717330515229553328807945600287638689176427074036436457242724689301927461607203620688354750365414437833576259233925965998108885505708790043231279730458121024422090171883289344197835360603329304793993506258201967777039049958884704269165444531452607005735079919002140942427960847999704614342946855975898074969997006120402326896569942935101594807450616543907564728031360622694627735345770701690812746867259533613263548764817374511124534390548487203771384662835068121672432611277561907960374301158777871902607631949205343594289424956795883028115850925728679626510615572958145013177449639762912986650453601908088705239620441705219260353606579443409298857642145780331384790761179807478062489408262028481141639239395292891613510350492252459688636717038190435631167867146837760945722844881272275550148090193261340173571321477041647448587507202654483348997363035408848026620102118597439125938923959894858170797483003393618247020661880035815956590550964764949226483106099100027556834546444105277887954896280441558093116448149969030004188167575178746446627204205601926102643906606336269358679571387373945349953799291907999227874208629780235050558863158360355982982552558694947960487917421306355860520448710107135306604195211519487908632397608639456333396268916597713022731340612760483916893712016647442716203107666709737052954330620987563719501772905125103000797310461013615958286244405927665319823831799585051154520822304829069749786323911630674517389704668312444153102096137318049830862950281552188160935039055159876108965899369881428479181570267015217108509783881040930359160461781890359881390166205684305645189701422059673103012395549054783110743798957558296134935465985278517652966979972053804086080637539588932800210091512454492292114767084867045575469278277150348815596340060234109272831422731486270447591195212742880011874859682294214099240673858784875547818840554415736279538770737866406135449906691524197808151214915293988656247901886040464338414792664441095814735778985723863847279923253404590728777793020159753504718968534993273419811020359622547497914606146303987929646880828968008355400689469965401853521461487212417613241028832167335620174377573391767817471797518906757333986821017926879190510263929361402436278420164448354131223573412948374531349649478364359595027059054519125826215182312498037145217481197294352219106598078997451175543244138457042613776213386775108509458834678847366024514076615814851449618761974538595687865971983060726025344990694100664981078381829838724038992658044243194045555585955360949119667265586293034899717495210104471813530849543935774280770642275657184708282178518754213834129726442505405288478953896271856818375428311917676443546978198803695655982494438173683886072301254597654991665945258932671919569765746586671735648696423862265638665061698297454212629450618810243055729911963334005750785771935387083864207343800469997521167779054887306390125607649953620498958106098174854891946938045062814345669945928617174976405137048187376642112449957118997446353127158823917589135636460544379246952713874187462208422281964553889082688474781783580522945045424180878193668699276324402541214961354949630198727440978329569367355521296582828495594327440793771848049494664354937551453187824752851061059588634120579074470858523236379920719242912909730887321280322671128956035828969121204563744371076796845535710188210607678763416417714618676966947043003804217594773040126457802476385253260037793117785606267082708850299715197309894225984888612182006694760448505755077111976751716867764123312289833031286685751294055663917163282792145456805460277365014563252103569130178362882279688024513356203708940137932913747316634855227473354376783460499799314437849267722269274346591395647643522540950616290302891906542008417035282297958220949141306748503943818422445604088679515067986358028656529925525730681093342436817344786376682663755824181427661550807544676424207472589230589953390839496083395823541099972713957882647707530487093595517351772006836871382371907626688162922233288177438265827598154747759513949329872786042436104038040671797015395885325718217077048121473015002366459383210958564125148248365048845040083367504425728061386193794156655288540929191475086265674090824703620400120726750982177826530919323747223820351099783931786630929321611736723927334049968764799893703375117147117499164995536541401581240897029370370297313453653737821061847647537914863133417047151305286422096574992488056289648596784178106618585606840797150289846683252109958670353641859864589707411588573043446911835896479337785309830903851920930872440423357403960308831559051293880998907217187592744681837846020767742944418153554359766191001983627675088387178076596998096551805522018698463796675081535724598049279941862863310853538551543359706015446071207173457429661330946661039328459875887227723196477604567701024742478243641746370083472257019207051277592328028865721462379507924734734335327422471305975276042134625519505552288009324253588431707193087466923362363362570549089871622549228019869142108172527433904696802604325702561740491655006433590467637063339480984724247351712579527756174033824037948809635145601849694824077945111267117700493341161071108834687634333029046642448800759584722103813580651693782578177313615515869637559199472395023813157349728807152650820594456031688013708398233899490076806424659639246035564528967114381674948230345862436861125652517886084523170945398965362914676924243019464812166322326388671058240986455992566013925733977124069607480259706216090573198307537606532880594077079573763685736566145238208048835204722386220746756855279136537980766926093377737419438492981702244228813137745906376447146578164376365534988251154324296338127067893489379506124123483243929718589746565019806710390058763966469190963274980118372685990777632982092392008457311338880303934538563803061730954571863413943570267916771575848089526014550582374885341741138322836937294021484405351567323290495441678144909796268960910080265974989377587116677452328441293057182859006690872356742134721195386576566102621457362923841485408128198293476601930007454592867236934194352032111980196062482775707961211648945613119365783816915430627929139018633082522312109813649203477990000746782518339210839332386002550626188293616134421344385468691389596091065150147685116582239124724758913699024982252977023693784929745164166253762992785908661657772027083761034078046272027970684387836635803496978255882344369180289529135380600193737821230250002963246386090292927486220488567652433299192733334136830300675057396665441529819796788150745562788835353586059512222526139324240161310993780696471765826656271610665385601374338106633158170485671780892327989250147618679367594247908217086720745937806617562259940024986351588178162068898910623167231611250602398338310670332711089935487402141118894640060842193804788659767422297085563633648922148259682795259487856219220817379745122530986716058368981471372659085730875339841110536106190229830394203302808105247439244201021587994966624956102103584317010183472396164327219175342038714058539634045174494543238506079071651097727584867635273568682978716294078136902675519529383258645204629928430768370387749352174323228612102321122338499183071376445991917255964451180969032353584280950070477997984055062517043338872556143388687526320370835598832159561470941618684110052319402281529039832037944358346017321308409356433401356535802114759585906405910209907035265276499477657781004814296173493102909365666222319779989792248398170454469273002460568942304294531396747030712834755803604658974885428190325257504559349273062826931163415242704332899630465732802872571947366207875447286932915961047258117806786872797489429214824386660938882690165560035891947438336876008358311456943453039641353296671133242422749315623339677519032301972649972228171375408584927608761142357338306404762635652302545648841956468917556935455271258895277533020954009584411398924559732035779858195047128539380829528432275727893406314688411142645515721073814750007615615001774432247405192066084692482471859172122910996169976194220315501658223143821025036428012672907139757726469094236790971434897302904017027452239631650563140381392142349850488986004355385560568563046387151646034846416796380757260997217214113994460475246517455889721688574465952760999497777818643815239412201684978828935166220462882076770432430350004151626977396279517628157080882389456888402031259218833867095554442628010156583526473168477609494577295889568344119895123422772275041984551498093907998503831938396923380155849169676504430620479720557874683867017328525862890921615555308053221389900775217421094495500482184864613601343266860362283355485987619958324749415986482636937141469537118589661317335486258882629609531179245881199711706722144835068908480353452731356181695682940322531273886666982128351519711122044770709844769629163840184325243670611858442886415348790770145206006735198658350886719018669593333570471175949748817987547452119764885902013213937461963498591001067324310393706291634546386293240696899367036164330485934465349609023197000472212404328600425843967926965078976198918286163593688802708815256645315046350123829973362550755865786424452468365415763901450586599084496805088282647288419769381486607268365343764752477989338698138407294704349040265951469337693363325013705826058048770181935236282886911704032387817957044507618799710813024127352510537430906533553496185837353881132322485775662065051537088698484589259182543516280867364615915387425982217621209130131381459565904612424095255174164098214426011298862923885154019429636130822918029672112638611520201465733252032787385058400422750441191916994554578351621299314263350197358403130402003783588016226865735474890611859313050057056884318967681663100159836951034061606448118952218951501348384896575198891754161994916463900899962813544617463539847770870127623861980027555946486148934534693527477796473239063888645554567914154100561839421427898346179757427801679571998430526905666254076576397025010237042305032386551874015275500127106204366097313133530843051349912524506401498160344407356760752518046748223303061902560338945779031121571977518463077432960196045579464639066083741691807431497977951773099030515917664463823327499164203047969174624042599954879918586318579200943024354092326849531016101088362963256446894645060759315156463023831802607460426630015199752777260151836377836823435909694902417797172402405815557238051840720104163454180308705976901229975920841331084195075801250092765691697752394832754933215941151379370564305424729512103379682211248128353641687285731479185920343316582483041397990092320507455499130583847406294747654730029278230678881335319912197470504405309534518163751213976373433333703757379679655449966134059461436772361625594824470058504040375564075518293924610663361404832631053517098341945033179056226539625610300019233082092575440062382381262696083396912991928532424388815197492300935034753623200907440880775867719675811389010662553013346362308154903558243360361011881218883299951466640300889004797276449102862263851088264037735509373561134514656355243722979257443016252640344575167075657245331329236588389690536440390570112444119567977824759179764590073616415580839127868486742643880745035260574365547004444388346042495763027835991228760458859872027628247019921111230407153467425006005777980698178756430985072191507043258211296158643960546684651083933405646732029437830380420297787401051373062302021677195307984074871206749090085129086020168775513810750723564787946355564728520131748339144193047531274863325817488468606653274638051657169028132593294649863759378689505214506120804773892435861501175586732435755612249222962756570232591166555171562550508234720461808882935495338566823164158890367601749685050834293256350378276282719717243900384519981708351120402568131978103725194060828435970211797511837640353457205947287071295723031971342614934228577246839273013573231478209514885675707130039556413615825180721805267039105026047934789726829581275555730948853813911657178006248598430091340233961756292481052635425254746289827523381596310701309860510838138046473371335412148637227002459765710596658650626611258517333796210678524046650802264255802322383288062213836195200192496519685735546604808269670507367789595292520112858993840126642539282148928929552167828198478894596533524524246527910458740418863461829404297216632836590749788095721415397382589378317687568137529082451071576933089986209232511766179164152367649869728176118277313641912270156924619815197850932565965217303807836503033605660794867221709536628527061162643121330994278573587362860208541583465244904662823273833276308347270374067844216460174634090049574987290798728819431374820961908690173670514438531840261546048857451058276804607800537566244469419480456102427872218761337571449727432646530569984636824342814113426323678564112950996417018257784434628008832408390208092372951358098068555469997490740419602059551101552672160835633699930275106467670018379257627264566569589274644392621058477987750052141466584606373862874302150170716926854604493127096388654787997731032564270176947407981444062526032237237204988547035747606111017176909586834289539534500081028023319130750323023658905525049122962508296121370165304986986021078097304035528725976034939770599659035091435022835473995752148136198712672944409537741019789458898016032794335373468337736939249249154557265771747056934847568126367222479879874905640025480564422114508375405628637388700792363970370073581992525905763244554256815226494246673955562726294846948276009994480087645685687379828168043165585986580140464421102523650899575449472054041679948224228003598485426919643572369347182795887085335009945843548569624569019937177121567406824342754568217602396979633218208515339759906807483525404686285567174648457116445696751091094914401592531498401911707028697040017664279106162688679301107018595045747444640766026095527811826045487656232090636696225995741617693993313078769454172507975155296768070038681479630201319133410410940551575313649669343993270463709604963777506051298890440707018174714141593947852800660041631201938469299244928770574749673662602575707996809482951034160012201605270600614905675251404532325329054536650309201117590553692221435113674217997469366200178111271536047660623897848783032076805592598089846662634131390523810596690287136084640921619041351224709109386222257105722745039642552506283045191863678390916842135434609724900328829615993059250856998602015829540352269340066497451757019118711003105524964743330817135793256999584591253587559289973938304448957201444507213893428808875208066449793432790006728170691702395833693895735017156934969079171400562151081885990937945581146459239310567029480239890796173833930828135911697188938548239939773104950095285126848613087035281157283435204681114501175682519050203814874130584868146364277685337945443216025913831488841090311623424288483918087538879351886751316554418507680334639896430899375908983608333815119904442374840561984352795192351819124585300739149088325159022318895302893201636358492889753894749935026492789501025426365612115286354061670946071978359237333646682609757880506574337487278237909655179991607763241577835415908606217847750053225650632035836913171326888535987451100354298058971960748515463045190630990396531776582535383690420282084806336710399200307023223869728623994757173666678225088650407205157200749114773437844638580145501348866644202174081985975933397890424288994108199426542613967398255861635106425912727942749644032072406226573784134431833522425670197559777297148240239932169545453921177995449090838947991762263024282748084147285208692968668785232808727370923934344169721316060302087637458087218548238201379157194661411975380072199888999403324496294142972215595845772969213751888935510764639931522823308415534676506899098970733454234495230861991134172998623411769589924001400978590409010269981499407027672873577134099798098971052124906096042302720203418543333069311301518920333085300934185177897601323377311190031699245207556196254330475874947803468939345989940587501156621035253779201099649042519573895045793349865446053767365133505240117388989755870870547576685106248011547376982392989087857143618778706367429308239560159293307983449417064490082180204617749781216162598580229397182199257793949477689676108718493401611047632192500408967141850492718659949304876967888418054820112035670317172349293841091035588835105371960350322048412120533790260910350143087092345291355817206788649216543239578482302488660641813786022302024097446094874375838698250551583044555169991527553102841715531271931690941992913655445562858208558989757654515849899012665258736691599061432988523962328075595868728341767358532006721740723243273202830322566327837074805900729340213660863477408428402630048651097232704835756248660949829397532025759408684322386472968940142948004497480643020351768193995661764424722941817898081402779647218960892662940080557932923927736306649491382785961765779521875524018793615334572549474733618773782592251773323264523390307024290539872024424199767455435849491267731538097233912135102082862876228465591174885810360715905076283172516245487928877153271567946226772536694247932251350381345856748262924010140955397767128550704053741884068411398321166395128716385230093218101314954817888058862635945972589177652167034871118489751052816444535004273956950447959266191108790311867527417605611156272958798264783366125057741542292707461968102148828124784822771208207127937278260895135390091722599730877451186050508882734690102190426654580220243086896980761095454838790282393707634691960194197072522160018244225004620117976848362013828004140067770927629717921808611295687103686089435351665583771035119034081790109117361147522910181488233397835865668166599495025568276218246215628816744254685712402357342135317671467359369017296796532933899583346611741000200940008314813857395227280947174408399641041667683702392536321114926473191346468256592936006317071547760875842170679134282351736835508883556002198634132979798377682202666624495427262724155423847359754547186152509531875481547616246103703754429876239657319012285958739115191457319786952815114492578987217148066815097938222574177745955839618759808023659460835329423373857793802307298122681165177145695042351241541882454420153181383403294690488519071843800677963202928566757104617683863312180157355426421712869062731994953243222978450912531524716255008561967451122399085558000129267513816959372905187776697959407020598152526878052674282449599422144018835158556292338422412014450005135251792868425546459619932328356534148075361099719283046116647893499850060232663057555167651603003464860935514653338106723112356752836530256404583397040645034649832505626248897998078336603774940374786940409064004526743839185051594790184944748615885118366578770344250352346583316248864122891663372807140730480525949567319132373879076807547182203063396183355761238926923666965543295596499872995097615807392790712609021431233761728035653588478879134475840392907200391199303187827833331832400962680003168236518784863650942516868311413950287996442829539331471857676505288635448943593551274032643421125665396983740403536894061622214560380726495134000893303014703563186209606708150248340349756327201718349404543431972074255135287261651846786130140541514597749183576433898537467946123237405336770928240435872055117614423604811425213987491438520674082844931446458201472318739437151891076524588972890170612369176564263288931139822380651746455587291191400479256008185526813866233331648562708326518411652683017218820411734028085551219585071701688939594502221092550248643602506677083963080220809830906661138945160348283969335340212494511725370739779617827084106702859503830606123078830962737959173691621479342545318209755754519525338368601247621800426878888376789921901300667010968509805407969414227487070723262523287834323744592727421289555167580876875164307652285980673503459883754938760595723103269473419498014919002315890564407679814345759518251697459131680125698198530784708941047025467530012824483064096652438348481423516945103172132730181550017650821546693203767792590088929890513149920093921223393696052599751684442366565334694829631472766182774444115035817696749100197813233848787188240806895705250826743807925195186751843112890130098264161234189175826490391057041226510080874758926409964534722158640607450106065407770912476686487843135318031198836783825932213764990052789145668902077475495810346826310701296005085829747070961626976704157235204799738930313632187546577342003670158159043909807973859939501229718083683715182831109836723445752156097319910787256120749001735969523054049575596032423692400059090364366025656791404038393867007065071582916159096618216299612919801430941583303764108698016182434653887674104833867922496365306072747732089520479880455349276659231076466737425656914049325619029868670945405917528020028127371086591627633646702212908533513572927599582750145449983365626553663143684470694570716609709954337591227625715475061853013304533023286856126673663563485707566543671729847947091114110234977417024693884895919089106866414541276472021021105535260509930416268973180883350967096464384109541964143800188665322138851745897089785242357747888804150708885322698128872719066359250907089093148927112029923088936880381424539940604342729118349235018922952140436690197201591144459679876929477972412282686309718108482318590283858349089178640590562146526375609224538665660141916487071399956983026647506136755391755608768549013347079488708450941144996087872356251757436349461955541572839810885590607639871947039097926695845285485407795117262811426345197426527703466779507686683753016658047691123493359755010457889708291682949654276034657435341212673764109878379351318891564291517860493092643617032834502069358895147867104767719619899755994702872539194125185008945305479251690210931879201062937289666982556456182072208738464524010982805766867607153332123289456557784989863570875617857100272362209903671317264336099296535882302495077978160578889363103402028609853056280274776043475569319508724616434476822619693897990506439747673984471537393550183115268637568045124030772921665639922111389018804932307712879994255508236510317101888067035616034577377884222149561197564582863920355582122729224585617159469161753074445676650521257226856926567093974287362000249287927326629601871249353598882621980525706552638006581889802780976332469931752844714619986031032395242511826431944741788785896744594312368494062811595412895942230083707460647261619327269880029293713369945673475616064260213915193432477820241860223244529427294487816432256450420347772226755598563337771513693769976868961654932671764511134694010677368261688253933533953513481420598954716109636544285335521260536501585141886843057326785509375882619341015521877444772113074925545794706704719073433323287984336846236915213214961213589647563043943943367487985411186335905801704484571183636651660976829494981162761899662546115228788927385984690121956765168822726549066697032854532697026142306210950974793485932999816864277498043579622643075374120641945143530710138763365060773246750309957632295236530306237694016622689051342966035756169451674689951812192366599037195682615226428103046320203542607462297353624921848617474180762614273465982080439483437379370872819227846621035547076133549960999926625214966108591188259836612531885678637063665118391043708553815688799554354112237777654447109829018415681357174276469507437217210727539438250947979899183328218620197268521029422461007954821345917083592356541472616185797796212718466681836582660009533776207633288469326429100416785206769329819560438008360655944184588820059912032806957033588039963041427481618148717735132405477914428109911762873253878991580257780896063712440047253256673430129523455795271881462995828978822983130873784313688034607913487003925643183880262739910009687052688854555094453272439322804935263473990261190237541745919704832481333155352989219228689263744131864143930097847530598314271767196499656692454187872300359750175780809581671774118838826802477751423581104058051493843754525941001937446867668149909118670863123641303301600343479950653164737157143731951343052125579725933453751683029077747235499808835783022230289829886070376287758942030151386564988777606513730244702622187006116342160439926258529875268246831838530773263120693798572038487102249038355283658270334264091226752131459478188075145882169283707622565589117558124265942436488523091609362237651019740796923940347939658152587846509622875098687241725240344794143511563882746310363144061423759178529159377291306642036122805167227066595708487857993872183152597717483414808169487757185403395955276771505059794849878418515642315458281079668110400193207829055975074118945615033899432718944687169226985728952944257144868132828432619704839816623218554607553818721073331414353401668010187282934878895401010749157623720859739019345926333064919110405355403483023568775907209840100092129446008287792117274232586180633090215584428803763111154949524594473214449966528832788479522455571571857755668454878692692433799674736054421358749367175742578923487462202770248223486816569909463416775636200089025365612717280879654501207434121531649250683448955332388063604899420870940555536097095746173573942612525653369146096080776127734858080335126420896206446436012429954362654837703671306283840477289323206178525677568209092866203538808102117408304053895615771833860462323857353645468627744583453773661700617334778549370914558361003431590933914968969905868229781373688551569449251692631503200640870829438580086167046168836963807619629869215205741166790683360788023069926842391116405381893646972516306634832610514498103344473177686527402879461266352152063754680629791851115508257395556831353144195873013503583740648624006356595593756132826928260474488098051889847151499631588230370179825156401962449371359046753916715103102302254713514581748951515254068418036962859543064446006813148455685536652557694474194431949138983035023729183622228005928778740408571436819888137539389171506165409924134423434904029383211504761305723605591946124508187605535336522429429666069074688753904988243353986789948302316064539031182877850437630128309680930734122018035558566920162634695050210402921632101795286538073682926892035337521441042552200957359935649802381700677083071792195937925149268002578460848245851898485903944247563681663518642827211806849732640554536456752993151882244981656784011660986291470991136297020828237200456831814998555349118631996888355115697307853180870388714985122622135332868585995024634293243289897521320060392427177663997848003056196478521517473185694881369121125533920670985553782990837063707255327985787225850949938670187835075576427861065270932379441794750346972699644534625722515718564733584293915262654658813123476501888942144584688105354025423821418973463533289436654047190571738313183097243733416306608547412993557273271569060237120556711496436228821494057032426458127258324421760671160762101795432595965481493855671796203883362621004412715406684056817535985367007675969327273168119922130930037443274239361633592607907000202537658356478242659323663309393033217688357054709230940435348448543507486612764718882978767226501450181228855752077826687952719278482872297518948180799735134573799020360231467628368733893558039526710267125117907916415450738581801738230010219340274370619443539969115077396569038550777604220601606694903548868376920281470059562647376271880777573040783385229705133220981383908860716631441895228957310034979552429557405600808326788640431556147135821173068439165802503677436915601486531992451855112118113731284466361982893924059661593207329997927822135837877355821205543656011270487298703003305430422186269838960045221296135552964841755972680052900727864961961035153591502995098086819380599559091836762425728588074412056352041447794447723993322616071511155739852688565612690577244876726197657353889969618641232965603079463665396765593819208470940055134506246384382288681229068838353425084500007102719626120698614452928646683788261425178213453042740688784059533213019998364122058373537140921770405869670656703509437242570959206367983365183994921881424750024027977885274203355773515848838527355264205553521843462817083464109546898474576209610914791564384661262398047556899675888400351567333410906663735690439288765527183413362667895150065023396404922814795716915221102321130279412935862938296976766613860866865455771533306571478069868432629977093193074774376176518992002489993308347469714751757749704503610045737654078144318427564489689925303791795213869119007624547795445261754669343971859742769069962753429902600598786486297212843366220510177272392941187522111426408994610375165168269564939328965757652149704679979142342665118717037139017186770144405276258101908966063747179575253865178056694018850380704096584578574252768341933699941213503795136321612488490080758735568774428813070005724914118250877063028237217758209085802092875472189324837314451913394491438318555259965856741300968806386389820328877881611758242600072814917083192871404717503280539426533540089930831755290445129409337206861293405747975867955715068749069228699523128546143419035040979337721788763216309026185216359891005358805999373917594515961336240546808069307552911054216173835623760554110040417615690815483618384726316265209734608782213995632187700043718059672003401269158232967680603703753355306388976539769270343440692846644199311037155136078743199289283143696459271952598573930004774916068745401480111299596730729973414244739175608399239477278714097672558875149341026663596432948131732067068878952800305339470771857747295976789412487058792066112390687314825898774263643146335755608747553042748720410830453625097722076083412045231185795124845144053007435515700828591527998832162455059837031075772239562680771896296151634092842810104502562627366409737641500009222947283167617809290709599520460647728565528517115068755737653638462938425297584121539521790279874169254926045261454609831288849161827569233095785267296317365518108981267850750621251500391344733413667599883764481668677654429139085520121328496430278865670976835790482256553775967848177227837075236657418586231762479493161560053117595274648421618082809671693939239985478801974765042469023037055973287302657396988497214159906501429444195926255813853873899800003313017307043027950240086458074372181161896889668735669838812888463405039464853746240960532281507733582435037150828626188596913231918989249910272086662885359860309472995632784506053327132073880763516419991638727165787037136636439323736840195008130541645773717136413000313630014462577369387905728270987101988992994080381188007816165184365695878731536283038106536514835114934537424671823161519631336862256027915094999738082179778266188124660192489557795743825999862558004812633500262879447320642767022919488197515636569847454109823046353901205512567238318091222781624748993588891575352227338654033505722283250554166562895983914160038417244543304825726145384491054864575140868084315909967718235499044957806841023975872355669044081706365846835121416666001744619655871428700427556210975609774060675196707487091779455809367847961750413522182629764499599343195468219730458989210929745323984251977564516675452165683649817206108948025728515683136536295670539682220437687893386470407091758273810624661224936353017104235728210098637635611229093603240257817768803719037301880076327132961655678907192508032735536040242444589930308245857845278415317334453417245977812859194917215745798167722197063042794928577956699388939185126392654610944667856908896075579853098331357316892787663369805267788346551049509184038374743673842075564834475199409400366189289800009759852749597366680081886674539687623186255013723150339414935375809308759928346854457554737340326686029697320563310848255219659402616850336751861576859139815168267533969195572542253031308512198132682114817752492568155878179726771563972218136608494966403996458444260002824435282201837256283264430897703082589772243997655546319290586669027425343767064215093052160927921466352420691089353309052327684273503655188532787173569475183010509639790801115493737712431578272445498543813622326988233577262439345225728620933761629475785647111599289478736050580990563460849778091512724168409204168967672626304475643484672636498648086062264980076939411222442929047367895623932121409049866802036876274615337179092082514129203060596152826847903011642519953045360359088272548257001013512978637262109590724650602343785971269004460366237452493381866645299913440392123820743665007455261813062960045460019345412261974294038273955148262242456362335408334457919330879265061973491341909230934662869938692128893094561972994606406031341168484893907892240501755017368921363252316414816923173546787317106467761625747701594428084805757166560876137826799756084837063385185856575535113130454200380809240794603277825601804845235672851435246647401911169256115789105498291011497504798777752568656352036140888144398278201694189479226204698639072568907465594994750877708002438599354835589592914148947495178392121561184086352218225838170861013250221287424425573306070054911193954895691775796450893037851484512707807324381101655606681145469304315752767951376453215117915637890665567204634675603585698903535601988255446529566362545922882447973936807253221734013888408536821033025588760290347732203040472280403563282988291377201865835262686478576259655496031721477473297292653252541820846984836357851071921672264493619277356689027240593418577223263320994391163545451033095899696966724895519377979060287078078016512821013574625541269672613378951322575567454547868538938403593553546950921040153574616278658348481188992231517176019378690289888262373501688636685273086380165396023068846130240071875215787031041319886652425701170988418876595185318754981123050161320999066137812792441156507913330867287672956204242438572631076800309200695364651318495850416025784595276839048337209430012025620374093045733574646400048247876540756746514695334014284905029295165122739653811712481714643057042792718326011787326281091616156036143535417143680730009740035846820535159828044165134632968289527971290614713368678520196923238743365192211851862054668127302389287066407712759594716553208027681980089055681713698281176082148010967827665609304165263685942423311963437358006217750746893674599577275066796310608153562322403506808301126603963364611698542649611613002640379824429127483967714061226186016807619400331032902685294828189676507759297689160217293132264182265359582690806194056617778687407685132819197213116528263362633489446143318255567642674149723373916969494101548729584559268536405570791123903359832101105366689129161563996628169798006869841095033870750269670914363752501822361149218489417599518486548031404681052059087564481098351682749258640524882313369699854007919667184202132764340022135326657399370738465247841195758119802128030216213915926965535996770784187848244933512110942816991223795558953791401698570520007652099996826702552581666715381333485765912198994462621571714405448037013120659380268729800686827317794035507863553332804920088311135237168712831638137591676212367297474117775761750642178216887958866561997673975561897941696575399856499155253644536700417894778414540042131358999792557025054698200477461250841943402940729441732563503500390954558076243985075616103013482517117246836010872400911640375528738279175799410643736240849595074610101735050022531601809957052227017580492135546942501336344561727781568246966977916121381792741343912548407794271179411422298921995595065031092829925186025930454409856719075316704741311181786488040098658952890987009655245350160428165002661698986701766048128775038214223015889449734433918214695196709696878583553430103381331628992311404930318286490219915276295718318847266058698993941918756819322675152867642971623643948845040108813505621931635375153211820780966947213451784195914130047482137181023772421318137838999511165752388501337401319020783665433252992942950445298292575820399920495124231003983903095122942738354959381760956019285226785782181411051613875507427873059238213230622540027056990366680909550467878792197032237490354287442159768581992938048278598026905758605791142963399048303262822232786438179758313815139232223013349297460002032899534267011126415971488775903263965111667785160332821521280000838854052742814652537643249850720395354837727832754662608135164830962132576810586073780023252042674208636992799505438658290764860159310412108154461096881375891986999181750234265509175554713334763079190617858907870702250547501428001335625377316966767681205833316079970218739223821128647989963307306171412974557527239423761498490205515621818892462675934531715727787011811929148495229373268122910964768196157169854775041483224028906016723850383734603717417505532587286874646256012365446116324327680854560687521106798275945082936641895909412990995387393881348602876329222573459646374180688807353101142662219225033597226757032882671608831026575219581525228258766963616016013711441330556897910307103542144288120350031136865913362255643412275231626387331165818489186245748444764358043823382310399369823991988487366256875507208902068704571537224843482044117790994114649084485502842908397236667998732572256328479727763281061251029397813960718239386745524890431827894556380376414363299436246197519542619835212632784573101533581433985797218872641612232044027227973949186670568900469792213145515765666105553620526839895419852979133368294220457301076380061301517564255504221351838247196194722818842468863818472788269155752598692960780649997459283120950018602243557685860871905463139204238516163254134139061876774201828742480833459140037633733580946027714301702197714289489727941162304035286391258366294731900869950821610632317101787280409613247754827828577087933418130792763847665628018618587790555928863811984497192244115542471256677844440614968865348496198942445536492496258455770555436633403392798907439329752286129430890291206713510417605752474531947296203431799314663033246652832021385313832970403338265465967104806300732812413332643530583111912520698089560037861422588192941446738230028231055187093403086488647406899123233715014168611174477690733629670660812580127275003468792458873853078654237641470100489378162832770061182854804766943147833984864681313262178914434746723014155813977980613846338600529670394815758775893853098618272451716466687882491324577586631671739102837143749773128923841327790505158375326969517448996511935327640695829372193429746911505127450741238770701215235716522353691653341502936938630887808583835106110297470309764905058096621842285040265619931571783988947921837038177248486818305727976873715190532619237200992397118756493574297496311359636748561639154050241600950959057665108405004516665432589445363727827800667913209034626410578134020603109342441879247862175149410995755445119319749256701411952757266054492156345892012994679737580441857062581807293932744897115977402832513610059814133861830621546169064670694150423038317328335952028102514991310833029452954483457864713742237580987026850781282030792583861580566633665248540469052191288248501406793560554772980421347389106293000468661924784729004795119286008070471242313313312050697447516692351475629656249331567638504449245351792886440887239522806850387081402956645004109754585801982819823408941384294963623136222070457963416509589468792239335093342058335512771534521043801598413229896709322779229364144209370220960351784971070087995684280571129551378877375659278255170454948271783516233393811345914564065899007128424626636927834077690416163192805472923546826905575320720175050377233992106757225037826086493263081131997493391476569355517741248722406935497088163454560846132905349835876159961629063852222897030437749783036318683174674964183585818149555180122056368337300733291025336496048848016095616175793496110765601625549854399690574464928898966911658347136402893185148167825090817185272267351446942778793220973223062227309808238055617062311148231900580912456039979787370320294512823263894075123952901662249731922333073938022264920466884569620881242768377976869660034447050497830017418542236949859283871887917214844948284556047393456726984091866911959194160637989816126265567934959213852496219021011730895365583658329141511658100885303943409202082501249313996922009051576182816968801667968898121297897377760955648270023294286523526475015306373058104671078677540849289826429046991737573671173526631741686578951625645824347093530345333741647749454426917632775288048888556999243971139723784905222359538896793232021014657992435289027629763003289100165199906521131097026372299362475327360463649894279640063061283119139044040299502100415057243556651405913278278162154807563162908035226572365174301394798897222321308606465945357305430914489636701565327183076805884151307125959065455973600126378818369971081536343242554047557320883160752535416485709520721297634464836627194247012758618097173038183328640025879144234965689541964960972698366124241641841722860164413681191521853432773441315579992428801175658610916340942623841365082659746025340696392683902072987979161493583071509418384411430408482395796479986726558738779407653308874714755568438886665489536774862657686008983457203799202591106584749319667707280760285156218875212266196893594416212360066742964479867964806692935634922462626802972311509719672818122105230716359860082779871305186605978395009782205919346780233118757731867903789695274533140501589704942801088661392736689083068477303543838863150504349607723816292833834342638584816009181709432529670683095260568308357146725141194439241028719518184911544070659655000600328501332511249899364639607317920457237072002004232950448377157952424681190210835427645786035929241302105916608424835977349770921009149015735538852004942214833754363258296636654805952062983233840804681303405968019304671968388702597588340787973629916118455260912173201654494489340687504393540502804845403167750882253524034465871719383987363285673079910595597036954380247376211305886648219599594837313676193119206769300288455671498186347400175500374254420574854915647210050608039952661018867461495916261935485303065800282658218236447808982166520479054360288951999886580871264690679574481072910353741967319248663789743090609627950140006167364863763860022856500119220978622719215485983769060319682254788272309948377469480767902017428199621632681946856517644514412682579920890872559552302737733782530093300774606881251223490344617978303871783005080067032994580346625009161537961633300580152466895986196872733811121712446798761485853560365751342283664926511217772159790867867212960753175213911798876687471141009301282291092236405797455485217894193989061448373468743383167670149187089177652803904989449770029318994267653345927400994279654821669083881433681115169042397271661756253581656365257526555036301968493612871052457907782395086603528942637412871975051868532060293090730517477160080917223820275745642292501716192907847797727143640364943293087440336796822280441392650917311792083123042206142650090068637042114438230076287944379623996237132023180816540224966829729269190888476634007063223623112448247234269295662264662856872003217238847205966730868028638227176427811536159419784567860981784426046823679233818985122627916001734025981747351070008607091107257721371546240038754821487434018803925402253307013481810433576762104224710523108299945970051837416684886390446966719397424480720306235008634641156203985032901798467309214648107129459475682439240398342366827185143642527464851857572806140901830539439135601214803042125733913451953171837597165955574183973766045677304548672550411296869167170729198081613263981524506411329402368161171252133918569737147337940169456339964563895600376287499563772705179890853282645555694463288585740034626258555893401179856918863313095948920613247902698204606881381599747722852022317722367264084460105137452106491671425284373864417761902789807926980459880520566731180437856015824860484621930363202263728853325246521680712649487572367651617457667012592282271884007911817863032868872958322888192397862862477567348053496520900207416279649519223991546256983137860759961779984894513215602118878407334152488839542021321895046104509644173533868650041685582683490890554439237635384962263223204505366496841943948443681459867268164197159901833173387715649692571982017956023187654213676079195317378326418048765766195767044522770274930866163466427505716502196039414490859724350746583245536338827623626875906155433961594031773169123614365192106251009582615824206656240281076247274970289112025592879169745744190458567514621970669980946576322005042312279906217357435050394194014585774356211042046166783155238117939085472732453038864667228158453281841550460855933343248367821674032328688144368774534278491815613062643583655499815558322126384803051331204908759950586138630813691164497207904616680382992312904661677974686099628181259823404747144543224006304217526789099498137051675228809870751702111633948062871386309454700299341601606683433169934104370117505996779797760512166246151345295306463361182597595427844628988830345818827932185179910445074452975526843200103213569754108227710758482128536266374254520190487902538875523358661270819812692684653825970614865033344252388629601669879792739510301600728560399976035491728368521393638970768139002226462299503113360654118156993755016617715575493587045093725233729420181256403184699069473179111329785014956539659260748924718709806125015143251439965199677801981334450349335265713908566335917523048488529339268935526980296978733440896160340784226050353312334264632367298697127541212722706399333898202180787519840080535565559067025645912633983079718403450036343766812968907612873688374496932523880801164189002048775671304000905973042777959732552109324364039218569869504047014789244969107246763706035824237103679937897132171570565718485234657311402920998141123260280137505620276516644574338346418688975830562678725419658714257856325928222610631672533286489176238428344793040482930060632732457972529536924372974448461462074663008382182602686585151762383654569985205452629819577361230090694822936795023909879715844295233928703551960936698814218036113009554575414139925997254629099157487744509721645292409267307282602580035684056506197932853318189309431442124082622071257718984583991516358522121452837629482533769126459864318685053006963305438160154242803102012841258191948528975129835435850511110188647840450149587642406196501830738242034275315540349277306335560532756691147268107246645162234429558846096025893143356041404191307256133896049651217966298964882206692777253164366857148912080065100803517826733666032637367139027605929254255067007970412703295546753511906231885593300006157053234306011475858272082395801362103959270205364212464974564731184823426898136093884736436704917988771393211876192655825023172836925328732330823860932225613461949400148315041977892375362243210135252127830349637709988047778830043654689297587785418829682602947529648752012111779690346488910513067882743060037246382144648371251459364109943034926832339105347163881246672771744660271868466484075442437951858773983819955597638752513862547375002699695251629157010840380507366695954429570673624158670037438670329329376749720947233725348114327968595010606597420637697156398905632133886763214076074546331143225053681730927341269188218154716330924237725215601653156070367167695282586266634463176661413843330932456379653035706213802649386941407749013385576359549378302368716594537473169476751816314429030686613099795747971801465872955013201479580838401460622819045973686058498864104214764922971042445101279125438660188660760888371508558022327580761393185499347773719280674252398043952499125434693404393538902818926462967102656173086274666809053285164549577603636796260102590174143182050771983261158834720143127244079591257291211801394063364159588560212745851719798918040923837638861330501276114803985120867372841813502194612257904071220843172908837596147615810997400567454987787830976393447699657449450527521762526181848635534745568340437288264340321945818515128319031221858638380024066943374977277799954072174750893984944816601680470467803731363317332841465447417229449495502984260933569386627279144569553000914014450385100916101286320367316281618646847155698394211773299422328484773305382977618559457827976916652886041979987532918759976454078118538960306662634746006628688183467545857311885741285347776248790880841185950423670401197508474502098827915853669467458370442632549401815916485815228199182284388631083632245582551681909881496536726814199224570478046167405358074570929796191084528305613801380827400266558139184565214773707728956907733384322211968070230054538347520735441226839389603469144433430025896329457605277397666572106450108811290414624188948293053280863859524328977492073852739396480819542098982074724716728051769638897537708891120745908836018873541498159345854558905516691628304728941385743061735038957214240886744946827568593053807227594129366879703778369329004309017116741426259241031472282241557926061582629990682979208127348679895076152224669351991436142177021983199593079476822022826801798886942783898574573910348572470201742549821797608127317959173624044239429424032804396810091803039422850674219072285713328093676191334637914244987593835511503518927411250755483139499563228541493564945803549071378768824729704885856317003760922638722738047292900442394968177128429892292898388876500945722019215639163173321216757951223080512244696224385984487079506918532181644379172517850567996101654124440671356475301276921570152263206724275007576826386554120241593368848125044742881464770828211716079678975209401293479206698809300339894461711945323246319693034650261750850063771001923687236841170587587523721983092180215481452573285519196049895254563782202902702090659479755892768596624760022364053973440552044018801367138777292432666799693201311348247935870462155221502804464019384744656878591182825444383301996600716938002270449217716381398680360268227223898880680705689419055956516955527491411238916789950749948859787425712435833849189092769553346333370696917280866070518972006005894434945322941011380302237653815628532252180559397392056561534070004206776031980480151985501744551279664271491075862330870529582903497120305206467826138790175312481669099242462840813444564287038285336757260717275567808188361567987861562283947825008658131829977548368935864689281625575435351575428173003542704045407530323714447792200824355651227145907764726576576707990006500128837032806381746334559529933030638849327591819106330196091803991748814969947292651883372585011807222410629405641275452186549053920629343843309583921774826109413115297485029979535669516172356279001918726890882086377116506404751792943262020814188118139529967959408805082016274045234687413874515296533012149072305123648380951260559184967934581384098566909242643061160051615935988696768005697273685677560466434061587759911477619542847259411280121503749279288761474959770671829496667359597280743798482346337209490897103678185085264746237158620822142407006751969851341527179475141708632756048041679976734658827022020258892116075019486153823120537187601918794238766108810747257361678948516549879617224469355142886906109256742615906986308709681460914151273378145570807664662083127960067939489673308554074453795124145926032012574899289739306107127754166961805079266400831021279951419258901631131491876108818068106000918968387878084508417654963624047904760797363494563733151138613235856390302806038203415248792963966581748236726164209238430737897687696074643642088100356857428525560564198876364637404991509191766774470911740511894288957515783712965328714049380685309527806844116962785814742899647500336466943060458170757018270989560587371515527308491528750143008420542548597028297280777132074736866861713007591352863373354245508194559283654604299974271605072656749273567295182475233062836901990668641603218770276541971072622475215269605812115049860784109158041342058491338536080471124787404843549932771168992192791325968319986124069315573013174258733435456736216294837561193276398913124849286470596148325405837867536201757726569420546205106692150847013836225015036086822658830273566761746596495499585031227079804743182723110781632714176006521476929574349913775583675204895683035994745989757040276072980736083604334435315070775575190642831166511168040349015606602901362628185567289313351513311783323388982600544113846601106397175087089794344757975894018803379749278999212180615836800386725980452501678967198376389792342107805112444059669940506283914496479916428966839066559572760853111736037924032746027966464358769473870651826884457356320261466905627312072330064743941576053390523154332166136445623931277817158823953500062551981899318884814047918568086963315626266644625943134176981477719870985559294063237529781813637624243560711410326412925834454002317912579974023956331139867120605415898343346058131467245445069801784106532635574644943171565304312851207073098702338345884475040180867790325933157927474544508467650001317184327848119334110127205837807485608119517362256902560653800320310775158080330463582860362054793183728162900488659809032527112780899394792485684093359990551694725376899502062884968888898815200013144640208322864879311126349718128444161288020758129195064067239744285591166788459751970191385612112924835381883323739568550983594463999095272085297889498280587663875898205921530953581068937084987265562487796952252571306108234460563014143393245619012226192915740877640505764398144111806580227910272367240270450633916594062591293885407770284842404518872981307798000395751227622766253378977639004492549807143424757403338497498346289299342009983983506070618854140869566289457854400393133320396609164006904988955327195833047260775408022358500081685566200976645479117796045572882460998564644203061854769282791411012840601045626545627533818932688920877744342231668600020881057359185849128787051495940072367520681368402939005693922178863066925408583000102183834167068038263221314699101269813374915028714372642326767238622528384966656232344090654045933383050329678181072299334390885206358463763938061245547032014744293688023321793353224913594738963501369037440876246252453531196914059536895485284219718980362570096434714670380614751097872998045676045434455998278249411955937626718229835188400594532297743388479710702824031936737669748871139168580673897862387962940898692612213688621494317406417671861177610451845920585444130004426938764726009323950220469839465434405327725794008484922662822177446733803430955089002564421759666894566993149807002672353140547670120410377974310741377159804728951756191656834608658085501483554340276759330275179019964704982830609366425796202662873322635967399642258665270854607180220209612181552010919902437713071536657658233122778862204236282994068133519971200365075825320815511811909025599007608921921113384274215270095016842336497606240131352280741468831823449700032209269159387912946422907591287485374655162341998531137137280265074906542620858539774340837224890778383675675438045342218045782018036265117661794016681188109477835150395581162660197619009228894778379134922342649889537338094423069561606644657630219005727868122976405108201178867013682713903570546429455147413968555027322787605331271175233895488311769303949243058043476219605884869151789287241214333660707663521778898535742498602253408791273591888881471143400573664347535619906666381458463910992791238606052119726458672845636469645124463550533010713857819113106176410467101005026539647113918044910548152107229445993844354791915413336542113418551089760958911691570362252914948721818741619876828976075653423760155955833721653079263261799934868647970471491876290229035340091402592848315320982182014228027748877657241429990621901460053421265567601899459601384500966562542160430700609641548171582660355322115291123094795966291413369062176070413513702853093181664320967058812131085564611076327308485011732450091488962313332539804930729142356035138423011095680622624823965601489393887672566810652357388794376981299919592137942316262427744107876112379409381700022630495057985435576501215503194641686699403967723134127373268484022449749029166942248183585091801196820548599461900188631328574972186767072469262875976872350086123157858498043312121150265037870521918883730979713835179944175896244682201677956742920739919735426954292284384195433754812599068070821408528720591810162367140932309926971982353706980992435296334259251882395615826658372792378358580890151634211312696806979728628260049919852207301080622272989680816769009498161835017648573293671608139489332169320108263762532475398288801860217440258320059197533626152987163428371784512700144564630157596939680239650982129796994138156505830749238269679694615998226450428678743738501700143386619165755181320638476515995027709799866877394803941671479702171273227726989828088469974069186032788383601274808438443544420595144746669194214640660446990546602884164016385585978319516888067184914958541878287102448202635150436814989936345868120395707613426298273403847183518148800169529008456365046012830191405063706775766746806816656641313220860580514861062045511297855498144702000877584149896156617641616425034580475355658325527917483552161294823272669280202578432355809218213630390053109845875828621313001945787352250347088999165111769903913742065643757096596601704900623806056600192872157463028176166585270164046036388179931921360208465336933821049002690338438559210919262332171278830856668649613263046426907089579213571216677352590336695098408018485549637293308714970038989592207579293597436059379298892001543192191427897509704467118946378157534839682287675093292915801429126945697996151458322639256442745007005132272515719624236830025139306038883166858379949657626824041654346625324032475149483221314059325434274717849444704193366826692500943956947494306164186346260755992066042368324099406074377985231330604919784338076762068103423793015270793662614202185707114604164619477359796937231703884499781312613301166798921595242070054088418748909812800375239468387889944270687022245832909957225718846079774784177683420499508160587110274706719666238878451472924057388539223078357024452398239102308840059763573936998740284428712759577427685801179615375073410683370996100825377185703627735297385338917088069414492448661421865294905079289719515461214055331745007627269277538382893103573784052841550931838988606840069162430946328580082340470815243933530562583259399856889219938297824442912133018304333099444178526649180703348135076825837206506010281303143517890741759897576609571388728716653445777424520171885578491573676072089990336803471985719198271955013588993202697712909219220181905055537825981310881844636068363330478140247366450558959178655465731205224011770521877431633717830351323650786280602859260403796932421981231140587437547169307705028154504778007964595002428395090486802228129221968862092221438277884798511260068193701939793982241561731444267644430980204406625879493925569030253560938592968731273149075989019719384353279666434087296372521353567715053720981475758866311813323054971189094929984002653859198056657573817441728948330894150313279499193238079377360808966664725114116789492551678585954015697206852789802480134085409830632137333107803307412779385195385321333522237209769850181475962833562050127713324178080966098557095271512330512514206599503229163341538951788936208737822830923924878974975110207557143105709421284505472580464248959961165045990937726932856325243094465071498655577316374840830278601835434660804024016514715130756645954283733886514356153885414162017978346726388534276243060114448055878509455098366821171537775346087929538258105496516437947047015938537234365116400193464271302839956622835009334265774638814114389800926572025721379469354047096336061816943922663361840281345579037838039918021327283427473445449513738848431416502688503286179919725576552249057390389585766437960049478496518057873710192859634186415248739870312863183023031667407564730451509754560616102210309691061248865912650135238760445159246265589612193554917735441144041265547169517637663080495104497712347138304410081446449897023267209754193153134286046952113118681454662163225981444022473937572069816659515067213084449742198373750596948831369895729898173551181356712608761454161930968911811757535195047166604890864998180224904794014267656085183242504550106718698626748338441124771362213884374420481246288640970818461532626079385219388631219370318035675283990594413357695620277089167742832363462603169917585522970911388686245968905389356562399399434735397760821033656813583173596548296612909145999703581198965142201582408292485500677938579467836722232029390127972191918413254684369875219998647936471099874759780814445408370649821418082487581212398765266494822216162493930230081084785251007772055592506324320917480108321935231687431853106085787231240287153549833073847950965167105915057145122451358396494715617775174547328098607542267908954308235318582636543091703536723996480809857537557634005833666172996352781153924855048446063459146587329553425334271123784274942498425167669990939861767302886920347283606617463957290840889011104729304440417447355900522541476454181354654397121936235796563129505513642737078160477299082228967773477243209120020903212329546861247775106737318192059829150377491659063040672108607263629940910323962807682118338992155347821537093314720747403553900472994286264929190978792338354247808657597202926198206664456478531564140594403967834150619055218093611524443740613463560023049533868233662408793212408201943745081616342924110966609585260046590104825978412940242908366649148328488900250825543747076116558906841972478027077982714879893350155987156530776398278494206138450553834170314490341020133239049580750183949017582684312094154220894410520015064376317113713178372500015710101761231108289471177569393461285513493948210977069500282878092710039321569068524288396658087022365528780602186195326215744576677057569381666517181252616046646902621834502252701593933541132521748789643753436901361565466291032169957932950853337730901036750356592673227529808255955193311764520828946757152836987604676335398912840904864464470890575782592977716483445098102996550640271156800130665972391017795543994270651150836959739746880327452619089067522866832790708357008280708380819380015190787078323273621494734420655448095819916300212040303353767163667024938411699853618886632967707122334507445298493018748771125720029221391010532010767824508614940029542107318735421748824933575884168958168789528749973683739331350506278406132031992664666630838608703474651608664377180616185750803184431195143025124694952729212089313101580553282799692897577570135794080640851196306937681842508387662436755041236997964785282684997774725498243349936536404111368975869025580554833891663587745728373028615218032643826513597174998147605308299413719760973602001751366011667968221465156420319050868434294577213479903339222714240055120390663314447767549213919455804816914576725769835181673756361284212662702690253436234616511022448905668478259949928518419500493644134897653654974521358789417802135941543661119499419644200232004483344734738104253969348275223307954793262281327131231361950320567547341159230591946488575533461217786398974908393106103111090420474026532961642138877284351941123335754346168038194895150393641120744058022199473151164861367818675118594864246369301983157874384617838730337360877970239006959081986558504366590149959437118624990542769732387190584140729206459608041277980659779048771110243924937767663909948674594247867453311063191418499109194220694913800608378277132651279065718884190379846032006637964780150065182953039414654772771407007693049216582785202956185595486775337262716020821535930009221529751287794914631536087071295912935050955986182828817737394233444008321664171687094617384284788798887167852537537987534763816093369565207159358034654029759613514054209457483304374086764823576674744022434694817798487475152880309064641547854517816405862045649585204797460066006799195125744725540194881840804154193100198595308957438424267424449086024523135087633833838413180005744017610582100747919869908761543033271666455864840707321170815135289613387889874023550998108443257145078011228029825422207178885263769396768103622156261065083090699666333824663236728951257191647863664254848530760676244710217543038837230195413839055893645105139587735563016973047993498729615931286160794372614645993138993280414140626778562021283069770497454822978554294763813443533214135739840984620755553345278603995115612179197365862995831604656895117105682405591508532527572826596126164784659032828437620494261535931412220764220957864488390968536860415764717847746611751328265585054678356517335928634644077361657646502635472542658596219954077752707524102469527210670826618367843722655397507633029025062301079690585073338108261500391423864290990403278769378436939308671582247215757797757642399658329145909594821652423588194599011710521422364946682793234655580039134128416125124144044157798741197153915234735510246690408517832117677087180339579884651096755288846230052693343772708567898325156060347630356062417144950459815227361722159615382518190284184482672135042831777302842670421396227653545694368631578371654695014459131814429645932072871371937511907012344035637131740072072476259003604067286408448231106940312940725739501802841689644336531835502361930193097180970143357658052697423386884767098135540752141492404318217930329496305076203898548012211127367643432694179569178683202800517370573606807058274103499840628985279907349162021079587023918057953216802029016145602217671778662436689557045479314944900134251745777214456130029823100855628307763696663536612234497039528092707094945451558003880372330411562400394049211681245316242561884360356445625766982560264783993480597298713341678315406011740212809118365061849881109028115372292800885031889930964506439353766126703996696424813475997720733222137662168806345696286213214867719671052502636948469792624607483128500499136215404050808770137503494613118412620755638607391645496977206021953380378928991984965292944962557416517043234723383076307025179911048618445283164492782550988791935696547879892668323252013715702848305767369459948589787912687631072659270495177860188409921644256811729975425440698679254337109535330026670638042635468273135347927951132835919650700359374705998305813957510528220728533908444426315131636689397028000847515652788560353599223853635225419034976610108523508051191746656158983976026565057092132901902607665620198762328633063037493370942392854387881420756564716373297086055954961359114613691281372235063654317279757400260094256030960897070818647236257500540836538879934132362227887924355993979816684225794145090266624363112885912455488713137900148017692042262118610671596248080046344211046732139567696710749245588748763122037742548906628680768758519005915583883403329135888952290463407741159024954131205306873467669576004705796570209914482299699605885701427207108668498907802377629668905436219364538188898869747854397535396415694473785987028080673745172226735798676470561767847767175337319716040244066429489375563167883967925567885791987658271031176295326803923114081704259528779811962998671145478705559569276510179255888838951253693937438441604907919835487167176649508895560410251441819393710946443203755261886823755988443479012122358009673836392293888974014118484322466435254705688606639780899327693274619724219904559677212644837007713735189346482893079463803201809565856230190011901315039111204578314515950487594388905013016953724268722321002971410446136287213008570603282819743746805207116922679083752932702738385377323253409841001439209343962350596069906774322450122062364426956980452773156429683884788286421779043084609023501460434886061006009547878867500054730792202391761561444609237704157791617525702214813902618689955365771442712847107747499315092345788683687279029891970326335879224829732084658738731360452322955513622031949232213387283964954264530921740094378127248884744793500898276497928587634491615400823530612798762674906134535433333035115157656312035738857499640285387622920304827790994254113088976103660094640757184302583544816148532199476578947911035559276154868039028251394433330359831137145338947063369516976320868761568990666276027130207890787153000436606095680800572224510712532905330378498251967168305729811225844428746325650957783927158145493043483837976344637716662820979703459485035310080891596397461461315165128560865977692680106527211192025160162766375390241654483478726347117488181992172392025289538037970804904490022867874600531115595986488526936494026170046236347042040518589213489319055265193623557723284930923279763665580919240906143046331194530206142244121374425948186043204088181898349171366204395364559955944969351995344968124879139082884798579487896770860517409922269051143134600733141217652521764687589767970114650153705548569502890382257808407689819040533567687751098861101277607791274697177136405568566475674615616563389828547637612223601199642551881609618141562265310534144920717532640000817246907482497917158018593913787548115017609250087937515590877201841296666324521012253785521835151136094803979194671778589243681246058621095576107566016976601779526926012240444391560679957699871973715583329072959024624807081671400562450016209359853354262602463973564452152543352367729799477715887223568446436115305547772280172393514593563863587408842437807265471470945212684573967488368971028979141343000829562180891043848735860257803457207146429551769694836935214392435585061265709040819098933547859826552034849385549443614134392660113571669443063502012285382465504992751471177041024643026927880583097516093889898763521537330927634796534147660953551450899901968421784748860582678045923005091700999572391124775526730643809944237750442131543653968401236001897864332957226963508183799876188262120183750548038502681800379102341947699536901785895343493569202993624629999625932316536941381384727521920924224824624074155304935299522985492213203169594202105910586829867254318177995988367533928440956520103682494518313632075292859982741807684572131591411573854938292171763941592749872389183217501957793632761733371090060985956875116742640897701517053010864886140894508919368962853983608926525835954486006925362708789567288265122289570356873887144967746444646997039642737783742156960309288432273675029229770561176382970385531301396300772149512412774279244128990963070706172636199263685323825283211967525241834006929002733086259331949128945310238851972721779793851036777113570502934187918585364277887743629830251271449500968048140843582480927882279640636502127455481623940442581403135913372018833865490099696680263095868605723043815071088776123587607245470932926645658198178661092694474655154670988016747948253686095473003392399545113639956952696148089147133528004775271870544388233822875899746430340993190330249977688711351958884648538226879812590148209421214907429196647036559145134380677545547894119642114237278455602757684911531744539854614564888520049715623905808998067572595032853277055428612857816813237815467868721444613639667418179323397737919792314239757893138326324495976770902419578513648398150283885464883904223425364326041017011668442502163588445263967431618029546537836563998716552866522121426618942014870364486720218934900501675180016551600239400246300111357467146950625228186429860157144674364286369801012627057887164886978862623440294143943906080192633702655964406185970094897743022440308923936776363724163571743920179140564953319628449753106652874883606008349128778389246422832982601121353158455107915721479015117505031166409613937990806940107230541208619745689812138711559487898771159551582696649368445825191874357470012175233689083100958004597989828535452828149123190025101589138190211395431554297908102816124904411802416551290546304012764797375385272488042718413186585157686914415081593367548579555047329507383835748214678042493756890293042743195165914241858422457870015236899148386269272165044922013253510628525777925674085855989940716295058472588867707579823511651568891420716805659245110588752579036468454007782565450744501069140751455529239311395239748275483207370593618379790497813612174142566037339921343015885126742607832884344210510755442427457257929627713993199871003254918541986739702139389946073002082907414336194877117310063745294075976634392266876416495686810941695481580321513386202878150947494059136215301387170053064543989722380644042108442113344306330711973122217367444881388449246415663380610233081322757763074837251830498999110297964102787188572937444427794492097496795897302618340514530122609660999812118006567160058799416334302444234471060404907971034623675102203655972167564156233317729545095508210974812767749362757899265782518745256852029638726241145153487042703717063292205971598969140997095257389669254433808377155125753686648746007308238395137951417383047813389787058955884637811406230753202933043452403507505862193338300172029603536533395592396538885307441648836549745046516434212210185936638108566064718663065500624993786109799082005185520369745431573907263274098981100047411223306785280650257750153857257967965253613289039929765685294978776698819135476505400987837472711410671320241729772277068803128661386251698642469664305288367473914154230728889059725137900055064942613300450587094195398938422519819351752756916714501094682498126813948112560241514376444224748592106933987394661321949182330982801157364919442085905316730733931130211424881032188034526432244182085324835410505450682879497920443688345305884631158898954793344552136828382586848078737187769039507606529783022386883976593452424344276683992390372420310461644657474014194664588683459660006272196994247704925715402905058141284773174915586484348562667364229270791978564411157796435359728285801097989646610034514545852821206847653515110974028370267468512968980093356274873817056348411132790522341567249541819609959843766932707763647009512146757898975295733930682626172840593343907519217554435257087870498018875242543182553735514994181861562181661088399775183070047518416156855733702886952314634632927517088337545803992076119275265081367885216596564472376654713001921812517488313480983466583643538307620948168873637371043942527580401023882342691452239791257475653601132032602933715427826948738510969838919051774132561761298939374053849704769075843071418861282228219019898512553698567419136617601972669969186834623741291759721625524578322198382696494421169385240068910411220147915893716705675312861462558300989278902737714062779913574382647249186443470256544423907932317529051768077024293566954701371863378943272721660389205211995664718296111157972322448108860521111301293026899561236278975775028248254953441494641090995228191599254140264582844090753238328271507912707000961963103631631665782423290841657311621113331468700500706324396334500544322790004360051179556240112224175519095428587140286881053597835273354647513398355238642861663638302501230309229296242352298190108862982423615669551789831303022610801351122770427346861662818558599065880468920028220206649087415100551756661858883567457608927069649966006442665999317261765222529501832330404302735279806665248116578464524999507584967712915828018472395624786743561534624227027932397765588629902844957374079812880422944087667024279827561894005458810149469210548316629742478608616660706838464403912120999515749473759948405016935185830209186555903261828053834786951692070552094021303589877367432389505258080450865897333492439741878639947975122553665994447835903468365631603913091793218301999688014520708869929675246121472708103838195155202899265097225307737642433539794642636932136281771599978256450722656187892515637200586404303598623322753085822730802629560647440053920018578851787363323661086417372895723122469199619208754947857765777282609795042763903233876937379801254209263388199182264671148268763907729320366599498989424027521344380555656836746541335844850860042550622252002439253038611231470692534789801371044045375475675372354525916182406362225360711075686732445419529202123022485187099240175762434685829954044158105323938993353909180338698401465126357202298895992124734878395978753999235818311308447718122259458816662456068996500640757890796442183158184800126056689360048181102307797899728548325160336593295926024194808443803940397302621554557516115380557291580125097771288906267668159434426978520467277986244171075122504092245633298575096722596126166589146065340486851257873263045413687295900749700724287739619578556542388305456239467073080950648482839642554662630218416281713914020541314914422002184609580507227302774844242935204736620778165542556726096467209846101979632596080215431493353767997408083110571849093334766574758092087304254447571250021715650346648224495900835795287934573370184484944675568237299504770114840210205375641033947142580928963189532467747843820405955795827825802200740861517492224990947515179432530513907064664651907094196403177533743867518581757832407409399418467639292908268073683403866827100002254259802512483435596924910401852544687053308256608299730450614659364171158467357460087946423713844183531520870528425618812011228807954309517692754570003382023737726756001982395684209945632656894550129703110304632595491229557777484015287609392588237645599240125476990498089767897918197177719221098856333123313648494885116973816957776654207640548128342511944657022205422384195133042822313898193342556196411942489698372605823739279333506262782236045803796848354233758969765803348265852094531319763967237298102966342005472775396377458388784296090729657102170000673176107802337412477141380094112201511212941086585325111090222427646160453858285964102334459086157011424648167992121255845399236482987788763004082964340505859731980834209780234810096812587598398312048681351073813059908270754413484068213326569372551912567333081744066095378972560059183895573940211752076790561156599113648439990617373034912030733330219143438131526105644728254799839707429728845266027129200769089688996030052495906109385415369224381801817058490896926596580384917660850272482410706334013001614456598085206012034147605387815690031001730812937124941546640700742671925642617796959253028090527288321212865314910676871373093380176571322230109309730044152878132282146239497108718325348435937101652812163104226177891800421290745288645254336173062547888138019116664801189043991772231871664615935759862584452014195686023448407520335163008927789597028522205064899438892931501598146759127965021043898869601332799959717023825455789663000510746075764761197455112891588304693489618670903167135126014204715241380055568095139577586387345716693197669878530496236443232450116191713447410104234011944632329322186787333029433238172557042008565128042236165620296004814318708850837249022054965985573563973253991807051970315705801504657539583397334485631922407616173822802959758961863303398066621968169089584868466312403432070908731322781059946844945150986322742892505990147633673648136890114969093348182502532986619750668132839812331842844276283618961006246177978366480509613122183237011727025296171811403590331359740862804736786367071213014423273876149303844547637445363426823265784971436498002962016811168744714879660508818286351985159967549149216144633016413122018626877881918389102829319181998641630248707805467788451548438063454786451261096241409113928015871689871050742206816554331760025242310696075210634372985760387458376085666765216572012787096380941592776598322984858416876838320931296195794272745631945306202644242833941468007559774394550849355702770259542236686674120164100798373774205141126169252384600118624167490696376242360439600760857175223519962464325021169220115244369815366997700015673770407507044529595369585235293475737986947349780061371699434892328881236504194349746552684420617814743422541635045249226667432530879800028459876670793138029041548760886684548571522001213461444429806447520888379834345034587516030596336564398436060109748236623085016372866732625082677763025139341425570251812403601569751158105701554648753990323828626805271294020553988904054504579784989311026487052121361202620642739228060889183075307920160711725459433925432097201138964226132073862968147822015396322628213945611602078358340483920227857598785670617733224576374320729368265141577351910026708548881613927088537813838612644372493758050115005964690914999311141764772392343515495807136843983542367706352161815696518776046983760625135041064894944403848472312261639978162274692455817743564796402704912196585248106242105680819423922124405076628477764176977545421350255119193286473485642764174069497913075977872969551864461170983152566668503564917088622115854430234113261452774623584166100242164553767983311900450691035317845425000669172870208940271955068129846670436307323546776889872137401808807168394047751937662012484112863809497688014559895667937911547271937149187748985811726620961544546859523632246826143159372285767817049510861118550166103246378204144924743120129888679561105252285140210766487478504521188777027729955466812936026713058731909218136739364896979127000894846984231015719673215893640048596308367462794102504385805714073396227035026850007485555883030114747650682700056655055459287174638242380373096387826377019225050510181648430214725044489234381112618800134925735380290243097290484877566829140632692697309421467843337040267088173224933722047810077074783041379332995624420728890592973982009389024627228087511471095313108899160873994703807518333612031177896648193334865363105612390544408688506245895801513133764918938952221768974306834996086316780694202070414122479725122556254660252780413504377512319015791331706238295342943593472441882820731662690898074519592952794497755029736084722337276654971209252178370211991651880547606176322828668314013504954543224838310502040453440054613391977392399763175093344251068556182632243494590474042795816021555061278807992489084407571057006341590321816386903076106412623987535625402485741725914787860155750062908078292057200762714325472102170617322044522217515591419230440000967465472279454829898007870384344087410570685296481167077322855445638487343432343884818346773118005119659526283474952320897869957168567758704430546289112410550162861517160400592709282907955944980217684556546631513719332798320639814332013204735780252566242686211989114490688686900095556434076582512266775087097502526653522780760813398856917944052079401331170393891494423788500745398721905135339462198382562899131078614932588649303880640352618099431353402832690127506459692539988432014844581099369414132753811301750084857066179493709139335517551547626035695308345620301748546384567407073350963758528522090721315527137612903985001204832486249368189323156735540118017389116715318738838169568743313955227902448686632402110738557453931754872911769607557565797519497218441910634797554841777992448112824315015071529242835955783493481175158210735994693781801350527969784923276890954771219317290180267222026348560215280624065296351404188865063196669311758989549330765277791262994580603674020384447495916516477217463356343469319969385935805668327799666363902844495787159397599339397649611294431912477814622010357160923171566369889615314641914296044489704061150206361963008390629231764058121105051156120994234348544607115319168569639520700620336080884254847913819318817793003613793385524488079048854046845919595133295403610687665800104412112623224901479771330052445839070378386047512198158312827378187733368899785040045763982502580742166627516814270407392770476774313987353830392951391312820516712065575342754786732471278552391281139314475609181337189990738816406656856065913015203941965613367896221193079694218768338901884008689067728005917794033308707134461483756003269354857678697233814283548671266748245696840984405209992037047205626284506267593097421129383964446395604812435796917895157339461269352524833614546917872140702416574830735463647482502710608056681973151894005429537501526059459840140516811406027405803809540632906076215211875909613408307225183833398231095104980737130528455124435416079096923896617605705340991043262410650467259483315224949089884224511833600936359048423363379128514830143225206106528078612702704597978792682275535064994128660191325461224613253706918242608392089620534475417644425655292825200317665076490290679577466272408393264362835180030040564849326958635561469794416002095566855765442331531586418011389912645922925954424015419872256572812274876514688497489808175437553519749293779181917630578303512347660041753650740046562310140173206443944344091426102583894068053029936207501796504221192119199351995616135113119515290568737416193854163059545194489659614207196027997879344672098906578853492388185840888290449659673339119091039829927390898540495154210160074357246448223559252717726314171864836186275200958159311736181772943530350748499018591156166924418352898872215078990184629603955728002680914044133646918810296916309863271763925693804836543832465969735456826452764057062269979982952168353963950353317394736087592726647269968597414066373110143883700218343613656996942483177213641797212386265292136363750195812141274978943721098737938615239750768544457961869279199168510173495993808900804854994473305967042756778166010118075037299080669380078531148259122514003659177733298743262200361292687053789481962609481208454285023773967442032850730087416212446652696921581973274814807696166154333585093932262534031031402360795066136236384771774188429210857912787667468781458833745810898537761074616427923298993896189787353009775042171800517240295123200545237401741523868002915196341945110805514084497095446761538028204232562423604195265559301565143395974431042123612900129488888707872276596315873346259805204313026748217646199972313502109403700283865594829501515699749636175811500909514995679895448160750033880731619540981806979435461172437883675625603749860762670578524927537103261771232927571465960068656368870236666531588797258057108764823291277427325851892241546256829038482754418623551088645711926057203427421659910440544509304621447259365575229891722860387653614169294413027561815271549246709840355951897960371522117836668939380868957211038469951771215916521732055486441387711942704564896383239808688714745161563633844902693168012973161511631097837552592998290330171063685251589637002936933817350977963757813720501371203675453638563009158824176916127975603721352255401970594678613697628040659055472680053376448613362317398127116527257878845681118202301762901744916953533124279131289261103625221956678926217859910678847931980260094824384217632162525811024963914756645236934663819850502902823764447363582166288354111277404669944161006848500633858025655027785293010489323018614302814448863471677637098567267689237850049517079448846690469359586034794609657619041505638562799966500686668941965924150017818340933743916644690012133048537770192722906678656267360677835919710225782050412622878623533953806101438241906233539023597170584811610665951521202987049180263016136120291954120361617487860574695930985905372467533939588946086863993467457617707433169747945959739359013930827541663116709920058530967349256344573372702391810288108355097969884318513840297620538980242273030813323259756949404581262930069277157056157569080398784366231038358601455568927364483415751700416491361558467550950082147587003795806020887141488006686093620145607730400884145339748586145705341009854421992493908566724785939863083795355009066423667250074697990628433879216058136630245317725239545818437669730103807570070672112810597267830258276375205761814184501247223204501311634364384522425799717031609462868891577011518664755141558470140227338384755452777971441598793231920759710327667819401307483066363303309032075009659785708704850168256693105746082727589854227708774839962811621672586164169203001164264842151880765770481348608076467115727718534886074750055622703319982846720486870231227816301957021212857245819959693906954452730329371503908841652765099513090141308891021154439418207367854039799543265207053699314557887409838204167532377003813245639885191633840333168095388904986543127670688192962320188417531880976412646663812550356235955223756849327808551204485198933839633315730872349754025970011322288109627336461355061727617000046826601085756754400031014440407146526400800289706426506183922532952850343427373073504613268102687072364482643768850428880025742253058154532858339725587369891259128762145847432361992432876015891237840397240213207861488538937521067708768144590427266500909429447572049995819266048119647565643473377045290805452769632226179062000988519691686709247561267131158854716511793094273798538126001996924115089358011289883640615213931700493170902364106481363038438136500643825456953091931350807423953253563197785477774268391462068720744596951328151240122871627859818570060289959236863185472648427992579116057073790388624095616591871563786235203281421495058950117252709648381394792478665741447972767739864638773865703489949743451949295205446493598034696176581468669898687330897741203087864730092665808453149749371942295135964851348962808796240908876927362215692155043726699190192099075618409460671502027628324540698421608128367143596249723014298114208319075552251031451587488640862216272476103027816291244637810902868509135772904363988632585709971271415574184042054884545474902407277471953244781771808603485466121747309482153480601365595838533269711704360539824614509827624911710345954680547929230591173796726099467417848283661332500134323513567182867953139566753339558158478384343313996234833045471760955793289403685022851712501753748633792838462825863088189564810159633136322128128245059766718539245534175229953223447136524609094045483097338650544943890578646019119465454141007873718631750974837242988510102172813039370915216281749883660828257890763156752357850086667035456706030419677642448160101234730000085686005779250717082575784927797486774922770872377740557772878379408633533916003884183971499840439858730690521702667890367596185668142143649282651292767796963771692511399159712134460746961238806854053454165609379009893365373703353564131613225970055132251026880517778029707314600202481902143645227620232628914535630300824380882310260060180315717016388592065718618893702858732194391444915303143915302847952467138668451044012673028635866566788472130158952197282432223194808492131880689451335288553073182092287149618980818746283023568462655217746715302381805299004170484685492370470792706858667095716156120555460861829680762669958575956894268513676174599412080407962159004542359971164741973624766359069043998607235667236858022183124088081338010326302663403877595312698317050435085122727973124206486718558029903495090990701089264157289923276705360756141586510432474310536777347021838425362919760712888974091630079529535139050728727688249426637878680561459880881238897644550718586228730064893793253391377076649228630078229365530181562430116401239383172518546072264683085848647750989876890908601625805039664875908343904905625570469609267871952373830302271452619040747838629024557550105814045931265801670963677568171117264675468092511721419287580895464980713600271322100071350624421390984656131861434483482569008123016357452458656594702534672348179065733773270458599545542003119851768159704517662063996078186883209847752880823419629741830018780531411808335259503006432334655174010489139851811760732103143155648283507625661725954792710435120220140792076536019612302693448308766829138341925625718108467483848640703207652727972559490970631772894682526393427157363609544211084956860381650735053594592112564214709466672520235410952995118562686702719316326583441907651351534960081399918321577789315338850122114992501479105317481284462947444287687274027919672309987550260304871194173560373382596710433043023706053467294433512882064520557414295783506021228952263415127864720611359194635040993463161309395650451924766907170748712708366988255415325122576364808039117436826581755823499384142040169143639206219469607055398402930040867844942073784082927529819210087500829935201761050909409409323903422978411558521661603163608327975349283827397238954963845965173308839815996051984519040476839384103345611221226339590410305320457324223499319568138654804239326160552481397453770590877702330893670844855197186444424888024221101389286789621739011584116984027971874518825602502917614762921908802492702015312515830102641701278316660838461336483523891800942039129564909923813540365225860112295762613204166282217557693101126742572245763769281337614095579368478146479169278772761997758565806021248810695308922333860904960388074596084762147949880582536099532322163600442204314164941881607526754773004946284533146434872134330015346448229158948966520633312291944923766011455343016282474767804494781671830095607149062951357127008504737010457156189560143346766430343596897946486661371484634625077576897045112613099190027087670790276685805801020608793971870381066062340926854101862748573784946651267409428022143761813737240719073804329176132907734941145235649633202683285067709066216979950847431615601387961952854426288294568617969698381916526101987218988079644989106461153805512933174044833805956831421656540368210324389012863824924040120195284281267758625878547162232793045254042459172372066780243300399715280444106057667952519463607923581547644333411776410001167735503133476555039572870849960514788693524841195855389930481377326912455530705883898088862325503094188839281362280985805592919249318950206471852593618386364660713748965169722115021188813574459499708152943152893818237227677367901390352149221428661055914165630791824052539929959073243571486204091689527629422237792412490087719709426509180226989439610603697268938354919240909054455751316250787905962980135057526845867347439671854035726511972487310741061246468761133009617329154365324019625769201922908422016484706997986501737299476302975903811717153975962701563493157689275632148728640933862704537811827163841243199031443905644144000970047012530592786916681453963186002163213345033837714131395291242187886256889499961200879759442505598163640714590847570250362756043969947549128082833158967429377846136675208429687349941506340711171594331808193557717389348311838823590538605144167666903388487131618743099283241401598243867063196366354620863307980361770706624400687804758419311047147583337490715582930604484722129685585184141977711617634591547754210363492694364505390026906788795812227630649068853245008702926156537972773763652627779954877554916285399110958716546066366968919662817806151091445102520288976661446955985554388270459403326064866120471112557133364571609303576286266058712712030368314564307453207568747424780881146800126594291049975458998675595824781977821789881492969416310861641687088708521714604152283954866669385780186746194996349264692083585891808040914456033276702860437652919709717475098993447064404406204286333871353139377887330298762493485284815238052763110530465577690643707098736690482155528169861722290412847837777275337041927090448639163070810154414529357564365559042062679519405437926154797871001080201414244652571022856757969270250353833379489785714515886131284183406425234248836492690721714231677062049676532003803878131732653159041414652927527667366766101141883249928455441014022189465598231796600370207054543322174997905289171597178274911133367721004985395067158021216004816646044139282552676393857281721775608472786044961701523001914932247443101898663847581705875637831636682806378597388951951653453907193438920501623864334101360246896905896507739089150694885667782938768493917808928556645593739589717629790285160920443715771942445108374598017025434203372877274169102941600284739745704849194065372697135813518364794165474544241746538570619377287882311311839831920725074098032455108472441817089505779270997075657459066353204587339521374352907747453259654791123508966056829989305786939436894860334239284257778622260179963008184507789636484151429533981161370601132608312187886140778887136882556964524846880125979364390114389876707737668006286832634186129660172418982157377692283826756956938522399539394719002442983472957918583876528176114031529818088845984073658051825409145298401425815120156898813764148985133881623568261462105532507758136914769129549760652618860401272860282298253001557925199623744892954008378847883113173450437607546721952450839469535571520432554684923435861255157537136802805332901966491945675016251001128108227080745065963175030883904491519683386198851443793956854403385669387615312734228568319987440205600136672827893503904137731056477567026519660650477429757387059525705629174485733190956414642926820943679215460178687437306571822535101046985512055832849485613891078215433812763517138165036747564664475766900690228954586650199713437657103244035654044159514047517316068600562793213773089983354007084808131439587152758131042784820285544860801210411334404703653728245783500366126594179522593785979542672753040460857878784171170145102586120078536060063735272812823891088829966510776286561101679019994825719651912204978982594097232761090745215332519224504686060210364098394132080933698263292259202047632510079417851235796558702803179442581268174842024147460728490486083117351958214441415533197834603770165254061327804810021362904191576322402755908856860168425759079056678702663843568295980571525028312251976704210815376879179548053698455796234104323724303599984640694247713334965371437011157370449974702015975172455318373926596012846964263728576463819128303672432219231843632048374081733732194199205190886599311469457833156858139746270824499669223450062999823859499092954640008761676735729654347037501894000478222173117049377044707660669676944615099528423312776875590693983559077182413770518820621080374588990550491682155739518024011625368323345414332214198171380448651245979605478232432212060476350027797533807639472960756551349129408240266664032850951353074654742159058927948703006733269849339507458517882655548664471842257335995916268836755789439585248526637326572336365080494868937539271472977437155081713598969305737913114235136096252998393819720375598509619491599257552102357840752860795675036081803120814919170982544197290841220058751178994648368169493260948190043788208068608572952978870288734912976099800895547443050512389491776561810767781929921969308388241910172088089978962260001362451394322983161019080221120884228709211987275294223276383153406243553357183700811956864116784616427176444574043955065978324079204320239494645093778003981842885648273479130833745957706636802006763310631948611414344450364452755956631510492118768890982069822129301785941582780778425123845383836290931760345248082194442620546593939031666343691632342050060065974147478539233345314169098820333991858596281759750768527581199804868141426654259713732282722237154386311610075245257249908107217972189390464702743650617510729786861744085750489144289467159850336019386066438437929223132397603099209088897967491074560393173694576266115450898761329069569273929701284345786203219705404565615775851804111459925919615496088452711047502146805708271596754206064280431954738994161878296486772096520554671481290245951961774389236010977917517507013922815064810681304004433429191681361990743216516486168226114357379101882461472780233117352516289644371543963305984222536396866087964575654747228682862007072949076154150712658442454279106983289567206057291337896332047848649127495061759229032378891091840509883539736304059168003755815853312798284130627595641893029693238789562159918543305939913743596472328436625396458270256696002976654816629956299638644457922771879700288126719876636623191806819361962492567479802068464944018355114916379658548699418232362633809488446312452451199070032761744439145927405123306342366875460154360159567196676314157405413171965401013449507559024747707287951635526363042700097521843927948622133105168473229005479321957628488291789868653090372909946923327854046230246571588008583666304537189275580221817354182644176761544312291619829517336775921154367698560492902903144219166707762187101220373432208247996077209726630873062452443848707075186556970547065751213118513564735668599715077642230887392421515938582307572938366177107276668862220345771210284264543644062867899853344532078780507538893426207967358396577213000814750532801935457518112237454221196097021597434890018150228776667466548585263864015642089485867042030355293693808907169910479920415546050455868957015295250195046278533988863199190976657006313954332668836854151301077206164897894226850586866312572264064543951552342247260656483732852434248465945054888325117861332996030113866714743965340879161483458512331092356256595564129241302506761016440410772033672484497875439517613585976272744813786310345825223669388726417303923795629117211144026216989088145184711352300052597527368703469971776591292344769877103004585865834425816658833279957625664506731341230391192255090459049206844185598659201343556302251655259808473339408772352797336318085353374485619583668748780348417899221016223068716592554459707724769901291534826357787045146456642973207507199276869864921612168085723663913842017230157511510671939952657047474195838395464303772492226783744497942288606241834448087890598425736284292109034237985465498457265704428368850630168606962823474864954369150171320546509445897615794818041899913472844462342649857475529576627922889018994010149606478284558504733520240720592753535159130894066858240360870310008385211142118967530594401948818657212187488748103016094458650423982092008751952699988906492899896225113655420830267148553480777085563748589996804066291920269237286228422042931686299589642876760718817289949096382988477148290057963473565861250561113175182960985329392118379666313837495313355314278612075455454925486626915046609459475482640863931730147893641674100983859913888995503049950240503504772154084868529639750514063029046652374511093779265635946662567139459940311506536690810729487937427625273641584245797232188663600023516666206064024165727376263667947904264951767946385667393992023220658055206631222760630994576542641856836952989674490640389749553741254224418363837729527134967071023760179570281804165675216194350378399747773706936102237091066884427897479061028657233574213604314179276081986051766929993636335395314428725597341137210632816234204366133333245442670636746777218075762557119558185728380483680935993964568225272175633685577295475996654319673691923618521213266312893470819817015363276938516386747307843654443921197685072249078501247904182086160851919493476454578080527731833856882892739098185760625096719754763696794506984034641180732974997739749516646281804361992697386959869168244296839314965372123465334880795347318442050532662730088602534128273168704911089634510133558405587523486986127958316125201765908713401999561700598467369846409235274199362615810292283251641736277004296414693792854550548209296971363972647609194094888031260953487762130045801333571792131418948643369592881759863913410909157911781505659840424531966156718446077377504158143276206567158391325163590129549632642664188517382468702332315468073493617189531403292716176488335221331519756831112708442816093295476893362509018019234368320171630626226648468456964989280184561455344685074594697569581219768501450555491074515659808546755758234785577273420548490780730919251372716679907585493992512220429570262170904101363517254013088787026880215919234119288071563907431009268135680226215141222508397381859653719995737486096230921143219719769059401770344011981804599205592652488242447854327072375862304510375635899919870965353136016051477846463992523108474888223219990496465262779792555914015349228833198065049665917189749921556590541894854331538631063780732777044154695419773384287825927673906800087113060985991499747404681923982947909715713951770445541635618892528730167625577038554523790609569867920143086179193097783149930692352603524162200070024673683344181965298703899089860994888206742929285111864840493477762509608252482645500196836968570429398067776392247055194721234932651065678366099017818125641663082847713437428604955129887944135124388204049187359724923784355243833958762123838764253458898937201193081886000151439843672379029600735090094728584278318588383267105555172548581875094084218058443743339360069371881507105523721748252376067868819866053325344979085317066565298784778619521528868401301665367756422873107642846683452918468658242633075074522728921254294175716818480630572805460189298927440869948273872055693868253287969356403255578961049983366485302585641699701251521430204033030861758227935207472353028778364784101507793360980113526187509779536049584603186537013963124922196854332746355362599117058270319697958389352097331305264571291085465129714810664256917596408865217852187421543155208131449429812277753675454391057425470189003506328876141930315191368711573720766645863745337091662249688664757876898572166861946061909725867062982457945082894096058306055124191264083505627754160082514047815594979498034237308181223098777253985326913904709310993264018587090985262403363079415467201039525429610173057492118643800570857258749875943307381346601099822150476672241440265122608090760003004030672610629230375091489161136352165386044389572751578267933199398516781871018277075065218815116008035303604846426928241170826022738742084482154914687613219252682493551347387854897508014117545237289852661409964871499131514777247521811922623531658382423126965118564840203591864583081609530245727484180013161472377553468381270450741520118802739926344791199754195168179458999665182342835282162628761819955028790553367033554024298593011220793214360448156185949226485481641520008797390235604267544321428641479451681623457770918279519988455086789634974360523238045850718075713388722703293174054356683259330519690010935587508051420582614095192603837555084546896225379463683538980063093766683273039371237104202684090149674486339294339061969553107232691547454007489648484020050746714291527472902270629884352289780116504586619511158498269075592557953129308348618613306036884878190235888462498317053843453942009011466897249852708762797235239936112270505027676435418147181430289309756560563427719110780113389008211931940525504805062213479535495206298475445219550411016005920165875499033177367268212195065200933439067833124773692168944575046933491306666545960724430733052084123702055649771658191122466336922824885732276430358407990000192188640510390817560982463899150574610847666215171084477272502871559886979644033959488662382807472074851170217703741852392913618162943523756898538607618694661418609212254106982393950724592893772269021927938307781606164742428928455969834428133908111862129465112473371852482079182367999442161906805997627139312885897895652947555635570099514044501497771827849716850573086186552387484569916110081620187992084014832510186600850950886941321280879677831394503136958209257008127689818074021857055640250195414908219452082180202600231520185130150527851258189098663017509070203423991455907550470773132500047369038639771802622780426008252823256217584400001194156421342863063748822734079869541773062659035491425212876887688169001088341323854877451120242320416078752434461163701913656070527716416279943325172929538513464799384525642950037293810901167090882351267366435004486395282021508215644136721737097910847437890714430833686838613374228217527341352335088388333660864639795816840323014548115277832603632530862920229506049682897038410448917068172579186070066751651702995805638439362603286675225027425152707280950492019056487628416008072739154475251746877391840178307684544623582426162557361304495581887256934655108947505915633653965823939847139640198643497451638889992456408033249426078899192646901048851605019796941003785208308329970481807913517147189816397259025259785362711009114672446601580994766659956231508396453484280786502386636752716640124438282243055422975374627212658146469107950076695514553662619465862034685315734025011302564411918994112423599172036323457338999339875529907493842864137068878438247935137628133077559862095632850892640056125576874962637034555263200231530738383523263833356395943015648510639226052557321692401149573539285489666508289842305360255489914488012086616810387188638083885132782315452939406338402651435240971220842970371496579094281280065932457240779184221819586114550766453295875519561576983616847496417819770075409561447955228504242550315715636589838158909285492227033447080769317782310408857638646662103790198035649338503017597765174525249726766414120503202281955997620567252888370280380621926236945756798514531037792007588573869101634478977101833525877566892065031639070458341159199695224340155433389113204236481716244112249582657516634324684510462004958723070275823957605040977381421001672244001529967273061842497596363312517927414846291740493682440587968659090839131297606759802671955179478833035208722071010818092340533809422668564529072885223622577147986256460845709420975786844984892965774887018787046753676679269161156490931854021636284828946357644319506942354100718941826355995815412888550419095019449373346184216240559016873041425922789164909265714245743766186834214756075413877365731667240679115255578909188960359928047777086480548968635720135554730031600172501396004747767241279815710565575855572088060002088455470169843279976238256075127946647699863699273181408345073000379849873998208958009608876243839729256755277281237997107674025391101921007207709349953942176091612997649041175651236628504181865985799380896476283363526660999028992830582452118395402806832320857701862154349333922713033318296619024781404221416250016263859893667650570850992681219146332238195773842618648688351322280708926337112710340685489854028523049990035220593280057230332775531754691571853314749455672755326210886757243957426896179587128325460476315055078933971079520916680587814799277448874556722016770360756165666140857328047426131638781193153871545938558637029932506506253402746282402032942742071969667128411402043290050994872608037734449300188146571120245884261326180696274910566037119193224663414999054517856538274688491637731941114571672831189925754143994929960300006071974289877731353961695844148430191581373303752056517239623619733418909847770199381351265465887290581711536197338201150692046669007785196441408719210290043929492728927889732364949308716906834549684578971141606523943598482550519709709674516991356059419310174092008980607670922730355153601058746850223331727797270397834901590501661448226069546311314189269742371227248403292573708645176860258000401934663455856448815513533520251026706646678666046847472156763468854282651610121268137878114466453602474620349148363157325244909257715050328027447507067867131634127748123421161321149128905476290287223413381951690436887346508534883823585616889306151764220755730502745876606224339941230724816539577698668691035146704718057315334414500869563175869331383835432321717630057697695360487023769962316333065662268592753312320083618362277264278319844897445847625707862299516692599715677326939404795875652472782727065271449785445317185842637654886510687811460629134575121711386142700535383966877897494101647997272216138025688184445977032368112620517286674817628176391143145546181694989350751518751026081169817716657489516372839156029044445464971076584153456899956023957869951837275328323607610516916528458814486559476039359045484626386153937092082171338053387578571244988425744222403514795487889824965466532335725326393726057563391424736319475831872931168469998769549536850233240166435235631855085160723438190358177808681996385776561990819054701791521785720422260750488307406791163976335167514988403115115237501760831769877587349143945548516015494871171806985346765085235962593044960457124368853741767654558985914942122654899081408248782766795561569380219858185488731388306977650527943553996959625757814095895005494836943134377441526227200426967344982585655404207266931709495682257995483941079838304919461395432636421393351060744934368584233401086251891531842161016925363101364752176110842555558272272494499008159523815743258964410095573636588564370469092467811294563927732466057769673380625860230423553915236460943322933513261348806933039508923400054724320805644159710340869960367847883286761846234566212709391787068344239085146013496013044885046477551021751704484628410652635720550020480140558290741513731156167042299693176858296485844815565915575479162590955853835811752802452683455299587626470380312884135419183143028942192794759258517281234725827220403620390556512909394650143009079840184901955994334234107153024909100987710883628201256441863377978119814956749021029915542439598294549246334462838613110074469839485110043721852025532694271064486221129054207319180824257740292269229683037089027986597964990297326907931694863377418941903028366626285262773449704385901483461223553486153562713688093667129534897620429116142154151645464529641309030363845248433226268418035031352810718568275567229650440985973565774180208073401100823337668335826035486747787666115344031341497477168446306398307932205156846546923298632589092852438789358238539759327755033527876040163242655842862542629529124552634191962699549902690792142858377289945392066291214305644261298142973265409178503830344913138651384833072044952784690221476619795272684305162750385383029943134282564671388099551450744939146864827917878522211241424823666541620668704874334558419507515263252441943738138138351440293791396595797776113172629321475517510806119198173339854368424802825637233698625853351382258619979950209980557644054432243712334009502074837706275895097376822594012501356650660277120153515651070478707436748467885722390794521330981268742838978987959789040312210646152560077768113845187125990200149854369424260751907065960282793375259579439053962669470071166672396095421662951597800811213029966402422386215952324830400700372808064145180143566677535438952387652993420827293179618225473758488617909299883847668008104473902446969595968760330065095019646167646970205757748463433716846183923853481641705882428216402117681891393434812324887018406328724821408555276341813989125841732373621490468025895470361620018330982408235423351202307661383697565577433890697323397026212743724172363986822413842839848935247536366079026938060091967145748810670328946992527859480897208486479432436249179530639097161194633610112586695761075451579414208525747374923094252271820796478857456256940053153256693309543626812420063002059221502134415735820219833239341187186185937296876386960294583378986133956572513949335377092171844756451566801734597359450704277095775637708673884778428497334141541033476078791816732904205470430300056187903916447284303387377594920027237269436401639441740055321679963548619570557763851239329471194854897895562099100972789249984262490423232740256501653408675024244478737396728085980603164835622025771988250976340918559472714233065114446907848746348839370270062587011038737262684817145429845749789522457601642524362424599318368935559407921913354073854897753752455555927700861946169378896665560743528488873135788909051284324030178230480966192686490979587322544372172953156702280380834480288350532853141339268391546118295634880236567086620487589846727916531249838272543496747644617070935263163011544961239279884035485072809548318960055873238142919769786785856897442618148633430409419477173424961932394787395669532490741680373476103799164976293566164437088875493333709773382920448647427353364125174798330543738349204287555623845904089897926320130380854353157746083533129016949969279654630452298230212803318889200557714913794497712993398835546326139657786975779469846067055999298996514307424836937447071540168730657511674795170028906361187148311381236856476636766118955819861699593631852595869844062158947486321272552547600173603067765514999076191973737957909622696772223239098042200801138369448618148358692526206263391407110880539866468519727323048380936026615150884104510751977738572851902042632131884016278800691191879447719424748965894769224514421542259500810189428216573601512810283248438562446697145643708893960005380446458309568880925503090788001243413860590887096710842672288371550863573025560461815912101247304250131991951914409320329117900600634372305377042802875542712058669092598343625525502586997614392011303483605204972343330891467959604948131119066266586889932808281468657124600822082330184575026214797303028125932241890558364582494982035454244815212856326341921748944213358306934419189148363531162887602910680801629351675136403472667631314095353929863898455213008692013208995871859222167869680503502060668327229143943727213534362353302149737001597271217248763933539543900959000434566605000924585139966449298485847482810394149993564434364971764487750379766738641579961063235542540526953161434934088526853105870178305336124775207920163927682404378840451145333488421357547272240882020635294943128554743724085399681843458295056993492550743048131482816508960492213046313040272536173437019658506667862805441608029738589957605220468717022292705450574235199881049390330157987030389675922175600909293495882951006095896833358725294559017990032653415460618632526203920109938515930201390305661200014280129798832959457358396247187458544942103945314392439287076980908719195290963078794137819981631371343961849901331077168102666968048379394233934345210106436967126591298639847484532740808838822933539072826790577964870224092016489119189613678456092600769469131987718646091137657418167632298195537245666503359703403109201309912109503424768015178471209295985388509737033297830019418776566706480044069675365545775111516974314291745615922845756239883439153185821147090315895369708185649508208212406038271316506556563410891788892349154545257284330988202219825562646381245851961688458148030137335583843449223611027557216961389413105413140473934178857222737073952553173144239197230241570941740944594796492236420429316597292125853059550946403397368893226541862718126655004669356546995902999856186600709549881245669208833924412621200401038196231079927391276111479177313381203571829568923138140413267365838232566048748816457564988366053644088683917341204571451097011295611218768197402873253698575683024234801157965589225469294489514375923990803031695149016087509308983348816564328070610584167012975361109498008297573570745363379822834688891379126145828988143908183384673512553127322743227847482894322520782221466264263997538539091771907395590673010528579037708041548408577459903639517916081993500064073424372742300948493983187642813001033164302515295145510499671520928110955141108218490233096452026293407296971068765360047734406214666683309210138606420992235350402055495981578536754975544868752772913392688827346045603034613509428641913329859540016113019612734098207227360833968928651877293331292811691132353708206033541662712177348314209908117107877654003871976592494301778634210825752534654954991463105728516847209735746074645890234348175232991269273234806007531643489893582678280604581454134551056655794355850748043575753158898254971341700940828662656231375020771677801963209334684605359784440740303099990043594025587670915295032991858342985102350539503201444652223724813379651086545020338871544571305596228879383326301575557163413091366255575367566050324331008651419953716596320513739968033502244553506527494994237651996786770720716982899953627932514102041824012578789994272932821961121242369017914360725667150304183171324167553480987186418018332362280821649493609947592204412229423221313120516275061286914351831176880557689171675693633367408958262889611885255209801624659774904810473852343361941699623496391342694676930695466019822870402248533929536749271217666899658332983183490084972724410589370476534451248580755606021643961095239627055301896551850791166910717207910266947646720269225770084582414048290889084343670255195913740836427145897155339267406948505458313972568049102448898401393880124286489931340053024251930874552485881987308943304598710047865349133868697044413318361065480039788091233327891673700616064046560100169604679852214293056227917596422747764048425933847657070765734797258380834952394993366374877201924787215726941984761330678929572698952379766305147937315959761389246172846947925531859134980490049160814028332088689351389194729854129064422758720810396388041041329125008833874209478373503193393301180625239846884375126240020589795829063741662137852964003998333821694282024097469548715933773746236163344156061525392093588566492338569729470918367977338736354922334871917722216575553213987026024856856478561792517138066220620300131730193250966722706054315366438571745577226428325252294476553600314255714612472915404639040722783593672616975068998661361034937233512417061710237076770545139660890560945621540557852148133257668573394712738928018180462833558000497945885591288995509814841798935320347820738533724540928562586457453901676292752398046450299363897829241707391803044837636434294299759368009384595156018064787052736578188455479979724327928020316413867882325543701378461164265869115985575140624670281854996413003407215680881614579521795093972747568646009063485207841618820831991340761554292085914759786384130475044719287089653718704573428112296349514787902380791309378466696876206875891597622730431057536344110665899567003530705980542599986526242252828638747135208686395112173964652469048689056745273614992940416899760201863418979855389240291463516954177686996012395254218746872222676594331314753785241202893942807464608504260589882331343547110931457983558422329722536739592999083762799448905465461328126208365416329632812869674064833319709186257229890070205460827365362723562611927798834965613931108492244316638554827598018463870494168974381856956484819408836291771274311441483167715400153382393267265806148991792449278988096948331283175530303372731675883775225136634810644768627079378064096733221288666566663547505849296141232243034921686267895016406300819154904709340408832135341950828084822062453531367067329837796904535813526115819250765382522509309291146910571718444120564745485862170516516643358117911896701825267727196329741605761658130616362901206503134101373620175576630413914651841705916365550388411954441273020805128593055922433410376021917554092714018175574172127632817111911338158865090980971163596104599851495756386424872215098569478441119036292478082893557693241625833490999517744604196821705939781401564948473729929528564445508671928174782523573745089908222107999052452760745287088405057287720128148611339415839678877858510160352424186592762013330098731483757199159088244024785951436750325899451412631648667034970984709723696221538988672367168875159654691005895586612688903219827979296716072978469640279155283386347082521784178153419350330351771674117143491489107385098060153782391527841829589472487355161918277459627980273805308001945190117098141762291745479708250633986665920365426253798783682228203846227805727890117835305402345786679869257518019477118029078064102150954009951958779056932612389078552686939143108998130220493619339995136160360218290957338961815156202385670246239958499859531319695150358685869060145191356928877529532910248733913917170735035265313037822031728096187697191933889632493546359581847363966102572894588642938887118529594948681701056995925343746934322955449581234217749093866638290353321816124136654539531188638276496740462384570672791169330191994307384987378388757447546994844010670363021450334712419827363126008508562580215850456162693233098987142602556427477637952827953526421702289737367601575021777943678845141379376726309428258687593644126211366308507346020563764485297969444584613229270039765823174728915591118129447307213346225903738278076476433810770385124673534834195419497657550585406359780400214077132968969355538465094058447927477594571939553858231266019811723960686101131132442570338147648442382233839232678499501032961127222379217768763276572322579444867360773141579420869363447902443146832269094457179861335351953262807182434739621248902676038326128961703879604044194228360944853638870123518938704238679408185704726548806757852090786760975708905207098848943777941819763044419100105761962873736987167107476958465346010980863208513746992014981566340958173159885207054234133718677298809901354600591004873273028681052152122206803933005790233965788535683189508936718547573073931714328494450717323974491894187291991298871843307519798464082481125904897447541875034213580622885267452489065973958200579887965075417189282273945767621288205623500848950419402997262337441484082197936088396081492342135835777345775856276753827075473955095628392917911100712283721770615524545217821852023016124155808292387001438020336674112896277194972504061356590433974495990140025885567064077839388073372635541373647255547400775191327286940729346988060874801634819830493331725829688545113178576112747049484476578646423781553411041849233421761905718122325969133834125626124834029211046780220129354072679162010623284804095052732489051266532881864189270726776484546291326518636444270548336929353075596522560452492417940496225637892640963669941699256650345152388529397983818881101374263872723599435339836685877309899206209517568714843983892711056831786034362620220267639788858950078990459353423384295385704419961574622631418549721752517592394314028537151771251031773504136105744553148080205560689663197037519190877151193644041840640706318000761922936335866427311793206142203907219219119689229651683434612300335942215776643907787712488640989203868814999164507239225014635676490486186721811010717185131705747832695637433245757040944686260530694439007289188684781030804965893660761807208524779388534192076448751750891690942810130911126844785553905240579336342114952153713896300303089115777357282015825708057501123433644030679521038820362072504012030294412411969307136616153080063545428406443454478064515075601111081170042074824692557474615006919531949341314315860588549079841631540823851016319056454813854240581219275286333555631506826815049909236674742857450519169445329274191639180010860231002001459447509005591553174617506040274305349279904605496466801780779331216938511032292762764591968397631071010519629138256730929149071731676580750857441908423171694479896001374645458324828784130968130328112584629190003694892725762248869022405731349635245210912669019336785339976490396606182178552707715692733616493999205092030065613923936303397529893277977712518252003910507999427779452973962988800494018547494910120954965914225838339401667205699011881672317739557278204147874086978928812854620822380462604482343907760030641327730780592277899932781233888322079694953035543799144134246656436475519800586824000203928790800291475776450927680491741445396698748157513390322358568126801398384171028411343721025128242661338674280945125101916469322356061535406155860797401834871438033120769025716067632975523549743051253639602948406168499597501111249441636825795140080967829862259590704688753178711775445556542564633891802822212745429169013721660095509233523363851512297649804272815524555948340975207175964984421339079402596773920860522189833887128005537826697147071344693325558106199083265601311325588593690471841577514133843800169463408588889743530399806818226674063047684078231486591978666210094658015208507602278731597785005719692173526016507415992868799486138186959554566710007284021912784801884245052861843089681867349629151994454346202208233291892709013604473828960505875730170475864288008575385135384472956377358816802942958582619111700661965312869641280126221519113459144383588295022797604080809078631020362341648295079753893332497250493522092410450204972577990137441568145865387213932055997063742825442866079604610679031965402084024131260617548035167540537468057534013823288323804088000865126940487623633048897744242316126809504487005096754620709052853055678095014497794186345287263464506213568484803384455249809518518135542477594968354301482098359754879915477747562575548634467299031664037944727092719285828036383142797765784362433886273985157909427505563303776264069997342809245331128969008658361623669394061841307984052912163160754826005555553147950341747531494324757906358153763461807291162096944385196929689788558407905240110711616428034862248512703719249129474773919903357428495603963064785803773917487279458478257909861781650432270901925463100184259916211403212644481755034737650205853639870525907123866143312682172896026923031851875248418950372467515617514352593925635061160856568280295162960269664380120457855330187522958937409813011032846809594099906545684072812355980955986220837815190436529183811197781900580301981517359315598041894223811006816836005770023511933838295469480495618922104584322826667309026172199377794866505195029558748198216295611815618816393388184229085407381396123466921593768233139792235776523654092960906326271696107570741399212601542740917826249564409567815549939352177936763153452393498912524891000072164427696863915198542465718298571610124573585150563379686552000251148928082885530871453600536197752906431272178707827763421254095704060440450883643331656718870209645539339392602927877091811998283574118204623851150205405969648180782139460977252431761791024577002899704126117106466221918302660090655566177813690711559813684706225792098091663321913224807392656319881826604945956154580402034058616783727623199488486489673155821488196579449883509139766292776654595541358391030805529541582247871047480872982704938233500862080461707535798720261080113602880158496761906512993436155528235934097042137348784185508789433440092930933892342773103870645045711164748494814945505554173351309487147284752614219304575285943191692156948793654380224584973467221379614981094972775406223002269661531756202505970087392667441391283497745181089882444452739925092820980265558558678786125452699604411786529096196743036821566174867926107067287897517336909111263927116727178346747572333641561398341139120082537538313027953140462562629653698977226483168680680861935667169120413796586074190491552901540040138399658491983444075617057573808886390809124104982644415724366647717930458978447070511119649380761621716709188538116409876839445330896468884772822058497148520723246548688063889715944975855200386013091332784182787507137755039219634167950001723089167857574364870911598138613023661262768048247069768269122747824316215698895619618335916661207446912807237338931121566177731843664207590962985392464949466979831563092837711033806709203576695547745745960520913971364604022077613348677460142068030251232754475361750600770373157374389725180983416235565206099262152699312580836284701090546645417393114841086653879805190256343979796915056560379518878448406116775462115521143591905560321394077298527497995403324781905082418447654332428625778176502150699179376299336987555631228520199617526403572531621751976543150614439015120698671435411555789832713799726681826437349021498487886200401439816437331215281230745926725591225589654751434839598402823526675837497967459963740309186209872718500309728806940751954058959787208474466740005878203092237525867393897181901951610069753390960084639101859312173487620014930021639703239003863514927134265613736352056102896234221833387690325765982389929474747805012102034656346159126607732861316955165350068035538090284843872599664346405778142857677536122724890811088446775235896776398431321933696590805726101340793143635102783109101964599088014168648934319314405952447007639495160782679240876911698977865758616726651255952238186320038235684835822678936183442052671799538432134751627035537775050940125509138231768403869450723719654614624246417168271356930794276370298114235625302570294054641662608165615375429783858139794639534835182635228362547055883412795643008373498386565543772825859600882746424335442003830873375295743619238188855606047596070055123508996969570793133728447200399336563166002751973603274530003905441931580011431166656142700063576861755674559627558112931376798597013177253324453586837815966109346102910760086080926385636751532098692372206342627555200417423583776950974647722448828081061725299694215998591317965150672779791141144428429934272475213706543287806200981703789260504945288748058072103393775362735155904703751922333079152322129761998372936194824194007512520716443472714385102908374539475440369539256326104243824150138266011886699326490406918259390475412875287396808688675662367847101061027296149084575037046025605033553804889948422814573820544647857388376344763102096892466032285976669858986330356605890052020665589976703453301404619363599458733115770493024153516018553129503115551704203913506963991462688475032295641647424824744160365945067615123911198088381067706621215621146329005297569793589397255086849329529753000424886239381939368356479796763754522892980380467690109628733312953708595728184334294498175771423546652616676227669745009956302223908791310852911686744002073798048947380082596116281884184594779309055486874825476625882302504508355328079550356038326050314318111609511098778424963012978719279324752026284492369175605954039181881360414378841705525325637714394143000263980840178388971653995999356336245400357955592899837584815933464711908939868539422444802572635228937426203388058836344952074503653887867103104576136395262193987611535116335651036801574197702225643082341934103471785722730457404185379632762574974788219834649976406170071515760782096425654421180916816073727922251651664465177000224652476854531456814139568909874677698324576462804658104643395765364464650215326614131583156755073788289329984258237154827137418652467801334274653459437232060738674399732571405587154848115650842374068989429793220202539706009026992599068307398433616096950318553575078043085673108015597176554332633669072752358542145733155327836784812081490400156082752898623833679225252432440500158692322896773504119797781029239086245691500953454813381858523979119918706410701251146297999205163306500194372954520953760764374975635908470460855670530675361977169071283711059597658875961308423103616166509215681177378951110991267428892444132741447446204353156155986023037544504408893062686854427981487070517200286357219281385970028671523523696534301557151275235945029132928568376250314504262395358319181698430258333947025625643956815489675880544396251336017897042447842962089751375557530297243856440784270980594619027469680915029111699135538998155257645920332333224297580980261871382006606034759840701174772876454334382444116538425333212592029433320285388139699958602528675375992513606081083474065721081590805127140065130147031521666878586852812067947265711169054376530920504058509781436035260049726488676868697986294422565792752761973760011849406737418905810690569889176211774229956687031216296301915805231941182433689986640391801098402864705222709711592486715103537717573770290547918419294326381850690843722883183094500074423359140361947816951211903713946186201079304742765389369865938312521281105861907811075050612770274852972124319371446910152020403351926817811383771727813622594698315088068215526543320768770272514371658779055179143543244064087200834748509150641147614797143722070868571737170799655587928205422348783855145510832302446236038307266128337275403093422873752844853760140466072939335182785717944338727901960309495169851907021341500020257298089478203300967608946368676472873569506525695815131611606242655523679839666494764844154249373357840492134398297465599255614908339732198653282629169760895124566440003698477499122730880524755600178280083242514510387811749165245389570197766426187109501868361104632143287530628005295129147945019200778612628927462970134292434686991472567132314763398529700468888648793454177333223467095053312933409280288155612793446464172683659069876598084445038625370238843229606133992359489497233421941832607605607481413979613912574215884215029904918132689222949260426246303654561738818527174528216053285091024977369483186086917790268463881458922131495905334648846692292801008397941014822934531908521584378459481811601182664985562520203756005820722078209767572372780710461130384277580406233308057285518928192301079388333239827226550683368088481143412935754194293379123553445489574169047558980229537461550550715114345660951039246418737649273358079563098219341207349880727781868280430882920576120119418232514944404769619088843995258678102360155679228360073313754923021913401365001109712784707115614636646384450411090907254092083219955733733413852212708742448238463003679228927249691678817437609634473867928132235924108780430009316859097744288187797929208586465679508288646412598855148524358496955094320776026313862028540076270420804864260195928833967022390778097961705257103711600043155628082179073986477410801347577364097865138005660672989138357382838589680935360900724070866170342926665635088293375648506378081734965191705848268254242287874734657440972630563966390190524767724755228866425863155017773872074666007648000598630580815113654442806173483087987607357321203747027776750691634771294886625977806808239269510438973098041023153861807016703673684242739151785290937221909236261277868942989205986003612235506387932866494276133501336873437148315474988972610478112907834922608617854557321597661046474693144209267678222847350258241078387261435001767542389748829866649569246698930011811229475885311682625653599156556300453611213263693389658357676856450605186599898424624078103975927018852613837878906115964758425736509094171715979394752763461581833285041517533990461067967680411091602385923477467878890958390993090604051903170411600744144361319403215513441257234462929501285962822357376550094249632437449197333837373325981481620414378446537475715565499082783301341491736226909740108901821994260720319009848848182372225443206255572619941597526158952046760174074832157911141916628451151288050684199006164945317522238625866428784780035171252001390622232570665487031403295812091381742295605322172212863417142940098143493226455165017131971016351019643173660444328548723907305334247103645357913659645021005213317381009809619237384227701584115234497424162209091632783897132185380037724386416167523375298006858057886117328310877889906218631631011611158732357095354034649804623681543622502404252654563404000228820325825958154756152421707533984388730360372404838368629742633062146150180289642841902917549710424865282295931920850277051761211311648601207442584430895810349961987874655445719247061857151349600949868317145735737958891084031322876681187648379066707157856376824803662185950916267873531033063883663804766889771793984533747400595126406095591071193775939457689122491819945478259999483728141586973392835790477154554911535748915517470027019955025399015547448936283933193772158036707823101162057000573726924461722110343789189020757510756633564333293859654353501874711958160704530252863138022484088698941452587325975272240086998585641883412620670726055853350614741718036010883042520144185764775478345278266556457463040882135562692427111153884226753907527770299050404634875721897766155943060799506494282694554324520714496720465201677788604221952717391635133944797002964914893636026638333659808571199219952657557260868867666594868800555893873013165526399845757703859106026759379658624708750320052455973320339947521114069507580423060306314588653228167532109446001832774704412369385372317462819075479871966836736897803794379701930655590750433679442371176879334133677604339644499724323830348675077676189129866633787183914620794775964367116864372006069753671919431980196925480656805998711561364612384238332076152960784043069856561260164540868969301920195209892090399840684260516718176762963734378160238826995582314010583293935038343609098421211977809619428477295333155905910730788882494456807479144114443456840327765467447294090316862990241764521466814421445335596797191203272393043202398190186565711795794090987849309393158438668678170483228244862369340467305935780236361917630820691252738485315235114367740663824905035419611860240047614917418655107841269034952424467847447876182977330628601730076117001964962343541409292203775047683845367311196545546453315909473820476052927095097372806173147547859583620267467870968922784981103898436020047809162538538508991030874546937780115728266854081043558699709593540125077194465511109219770473371532933328361881967454211509046265296790052358895855440633538952865806078158326375371553571754420761656064267509553346913195919194893225805045640564796854807177523218610262923185111635412459876570246788514553869710926684756103886205655020315961550145531108832201192462619818429957798506699725416607805042164885015634652821222386329239434667842603304987010751780599862377490681135265902833637934683321640021144880488940231518574752777875509839876503085467173981551800908605729074579044800827401817046609153008681287486122649796769407415766038726329828641617189497977717852353846606984085131607243830080715121186145174462184291049821038305614757954271230977782828203331975665443263806737616981952114599537545219392431236245192914821850553328190358871688620185824163905016505271084268336538461237515361630162197367864715351220860268515760431284562513963465057988179163990140030739745460620184718316045448392836913895512081807176310621941990821567154742727840612268345287302607422990365667751136265774504710380705103433703566706947325818943497813869598610226977764399169780255553461063626886554402841575890565197751609047643933858420651196877540875567584304973980193718640249454366585791744443856693124423914184625042398334233013051528193467611947903189180652746136187001103564999409088426198665879568042703403819269316662151350750667798693408482780405725055522478078670611412103507542003797265807867780958397466991462924712256404540929826142890096088171219271691217479278040125626181505052902322089548816223978178795107894919460828987858781965685778256929144430744913643643864703853630081336271353512125592511592624452929355693781991739930465965919990528929491913313104608995181687052532896302119071176818009353119800839752883808097650360756316892760820530735541653092223964795223356898230851954389371692360392173426634926594310203785070851560816990605807214516539537577204425677918434752084651391054665663342466347861343584459028443071970002930577490069337902460560473107974307962325215824315139265920135938766037587310276066955932457217167676269111626773160866356785762280165039715697414780149207139884461807703681369998956325328290793615177504488923718949269069974397255137958068172423761312707613634867878287327302477252567096368455683706579226653688647430781862046515640125550231024895094040139440725728853235972066660153401995315901816734076925596352827207974805769857752370694356688383420121456581979824048093553226554811526077833959425269006602070558558228773410926246205387339408653939428399436698132887269368155387755110969738300266642618960253086277394840940310249808539983853184154488451346546530537360953816841256917423661608204584436370029738538713139304683976045912321509700349667755199412131252023109671357599771170233981593791433348256011016080386412450719338717687256564534570261920880168036499464969068772832165349052350900901662115906659374773582307715720776136621740722332566089831216803124679535077504187312964893380580920310450512102042273667078745317570664237883445008729713117839270140735972394159519673536366836389771002775319245086515824959632173767772499475406013032348551001580384525122972504699672129221954182951252817011335309353531192939892821049530405339091451194337410943859098953378017209317385021382707257071441317610429940635057249438337967841100813636442337477105812878694454669445159009771648829793560410507943312439194242200407501622030789535760826679068673050570723897448899732636342231462291383457034767463008737494247889462414212618405697240090952458989291172079323815936775196245289829871904465858386047932966310050712939013534613108631047932749990507310799979931685032492154279603094483419311574768514676988246868340419558448224784412888268852778313111799760037962442165120508427462467573365055129163929799785745286210877381154729871384360780452644976792584016067432173155302895891346229351467863284354666449087781956614885027317969500918932985911821930260961764728000372570193265080529604991298544420065765109930258036336491259608024803494981404916816697895178613736398927502327118615709809604529691562620899961035858253481776359932834304452066155602601714639658899321767460409103734420846411020765586184819581491829655150708220502975638890410320761539599666687995122578381487657835690747894282620791936741018925307197516221813680834273333346276372830535329991808959217121751620485751534796444472447396742626542584681245704540910537753437763645039818675715940390293834241074469258483714033353100175982606669892575399152227078407484234373840230756638347239147942324408982367417877619953676091273671587435143910554414365979392382662942467050360601343993698761461060564969774564487777959826436544983720454237445780240536289514631245053004642168554616400020842386356699595311682644402582673681629911209886434117079649132279974833516601350915021780113418211030061561076577780707736038670213150983542458669111624799669673821545125225881107889579175251984230026030637924311001808738038515896550428494954429095596310349941049589858942115496501389086336474189421683332451511937081674520863738938848609721161181784669775488249213850298888738965214094256398097822450175406783042624297861307237677119150843353634159940530151143566121785549641222574891981643398016655117002923527632895974409595693560407784156812951730010912922203194670854957171080090047040621419825190154273008479003852003637143909988578757741603719739405833986870744998786344462057664985001636730650774640356362465873674690380600811772205426968580098257699824427104830520242133882594797426450839999203515522462351205963602470538560414316893966137713172025177537715338033287831323852325284817421757156026942288458567276928738322653467388952474191402666815935441173153810757926082852349641407833011338608395775653588421092915017289106060920254348706800816133318165681137550890554541880346835554811356522726906215991631888397888418606337372018660413115488855558503667949465587104098431508193495950661270735144154599161149763766067631033088777193205352022928281089439592795371126684384564925768125659016555812781940926713739273601303787701378862748241364197927066520969363923080377957428528413125526679889355717891327749342083888673484003054376444140259474325598456024174917158351175299740697253039079220316959528189622387381553409277920057296395598749715240585146849524978313638173704393775731466494883018334140175088622957292354132443699465024431935125533979883854421114482417989215583562194700691189750592959033120456755430722819292984030275627207676401929018233026974825456336156001592880200986899643553386720210771038598858239609750596028853037054442550160005446656305224861152959488437303040640865057856054598414082184522247044788167574083935086874288642775292072158655166278216322369944286965059967566414992730901831281759627633793988849006469912793480347903403143432902155791374866172948692326784790019935227027985295627048540255811566208416093046243637297121002972606989252367893538002358730316606066504850364580321738783453699220535637146645200568724148641008735006702799097254036447780797407794158419439986624836160745455367985056625409019194158900573080970758746908552153868583935987636846679423898371653632259472071623999668050525711721037982838980907102581766727358031404587514209955280909127757427815047989216538397345115644602925337333356119213296848287405878724140474518039664329416208847410450084948119287607558626309386959277999472905583968767663648364702427425795022488261029334596787681851874317598348903390149036982569594832492875884021882773731342711984372142653190519187832368776283915117528269510566689880326512668668247278460201923745244385955742884009674802740374058008720980962251820842797898941444173752811312396419902950341514282586148240150717884746863211804120875430591069001821944397762919766428973169798432154831592418329576086530065086754217506703217598731851681162303372207892629198393435476490492149869877582165969681381392587304104732284265010670260988657382113763219868863424122440395441735772450235192599701514770648379501962822619766844843443634895067220785331364104670756526535057773756395464349850176349317584054599768097117918422653556381074247078893143717938068636101001743206169421878173894094482906643531697838537004751623792841467509677252064980088382404810353455811107815294338921354821699241945015217931738051871366693902743042068588947185892028803526923001912647954448421209743054503743500167847871837445574983175306236421698969232095241792250214529497414446852503423709883417999288907814454858188348520432256596225591892169806480498167135169225505695814127805841500000906150711506123639981358623883945518149386531248493168800617217551951694362145581349868805538169046893350813605761306986447331366677942287375347006746608428569100812229414831421936623418531531100777880978917022220411236162316653442878646731890694285442954473211334340334307490384385571150127150533595556758577733845815786439190877663709181706075987749290605013472250008192520551470297160660031909798912825523705901496825210442928614925395118603787291044000749482087197348281885641161877765190318968472308984251055815768562426869567764069764099386577319454283502202781331035698766901429208635325091584563550592960895578322755722832107173573858828680674282635522054821157149020142101154653083480949293896625876925691547259567905402844649410230874997106915675579577280104222679554390132668413944937748810176774376547457125442668758744111481159018197667159835877305447709860264813730960401553539208679201387472394406384324512006598503865750783077001271591676790464087684423283976517773621561810386325043601182854064467564143947692738775039086360528342792352301261601568925635710484048148469685793899280096877924905176771573099112964562862435304338513184565261071328453238226230933200334656169304941476137499810878654737524735200476805941532885891714203384142894338663012899806236259856760554830971778067853955658536195421361418493368892421424428531133284583303511138545853787615244554134571292204865076530893119961348059067018206527965278979572106795648070886962444206528120716007084671370373348304877892083955232861880346391185087288182269877094406394708569562082456763502269958110743918443835975107717964840630182979011049449449236644673523790946933142175058998095743667204299082091542415298381121356239511295264636709052096829956026881737105782632455463722754400973989580350801136516767359669682817958719469799027002275490012651458560251190851613620126200797622382922937137644931888682449706151084118221884680279519308259170941721269124864718521733096006421555490276608555028811224513131525838075653451578166365692527691489750518812071580685581385092205989968131897193630407339506768767620295839760503480770912916498987651884886457630976937800419954769664735635989051801278879058149461142647891537243173679037473790146284397842586677213883126442670442222456658786928501418471470416247630419327965359124863599517229050858006885292349081956160156281472339655875346157717245946944080587839772614880033064852354851873483687483391038915658990226710924008314371953975373328930391552168202983043472736770910164840500401738977521465292467614759891771542608124952731765691017209548438746944073493161902207319483447011724999517759141940891896129686120393884390238738179619056562568214846442404631553378304949967602067864046770461815112970920483077643501035215190603190160985539147318451064177385296671893645600512410792673786396891910548335543656920787307063502266256768713181277749259770714680001222805552340858597622184348180633058888989433125831891192983197444097206543198135053099081007171206826222280823402395923180119079968377774406045977396432665999034926361977072710904745779968052706668348908618992697823511808919137770239751072555951649485941062666742689416855770886635412203992726872931093510548523464863677744318124589999405041708210809554465269467630011152731976814796075196718307602439572478101033562820329171202098131225456519189785668080120812887432027390723815354965723507759686540620564793026370095457066936837269002662318573417804606143639041585695451668019363828940119588445318460794461138489002975809682713069204267327249777102001504749410679544902930002075462468163790672504632996863965723767775660276426659188117923965602055717393547175193040551755995424846217235572029582600316943021582220239326576468778763307802063678217444519003838696717255115885322852195906928102788628703829786994019547627044628171045232458451598850694154578832056036437177756790993855220528979298666901614363867171849919058950855422513404013701884197688292942662701195362955730816666972984511926341707498148651805282998885560118250108348446249301283323772064846182265921920353038287384832267175815646629515858926299231471207593780485002318275081187213092116702448425825290284814300609337961105265755249163211699150049165656408533754542419631441327163647381662200572488821537215193225036605901593370440811121630183681606412340899093929023104803854305387893960605719861594330049131267619007156217483388634311773297542735346161481076104325321041795526981577878403696479798671428052932583250151048756623549122419012963277139522993714520007622224417774394716398963958912019828071272312906550981059023334554866279761493448614319938761851895863669569988176584168950445513289657489255932126407781877182763981738290075402644185721291699424747571751521529293743852873111756912437242323407408562075195992178464533158740956363733509878592391226769631335548973137907907064728956500513762933300146819021239121867802986010491577289794686777912226189849517516303853740574010548440219514804539567984084340735730606596957980910261545559817381958781904943181463651365586305804275329216549773067988273522420898944632751481322472757861875286192908424934091027629754805787455142576556479383542088153210546290145369280162398062660438871657570036062914679310764791173186240026588157443033918287440331703473701271329403482834242980395942817146808595765132915841414638391515617654392939961005369561047340418438375509649193965443522180173873408566511903682665221626998533552405703531413420840492065638313400752377747893959576333522286750675596473072387682592959748015760119839932467871403882836022582261313683537434992337253964962216586485206226748797617840840523534538797426844341851630379640900092939279040118869668701723548603394230855723963214072838276370734635886324667230012476092137295710215166189012653265726781468988094953188941847215929499097379069097132569480929837951310841110843016654154682695957008214329151274924235428244232705942240124453474698189187620313750643099456021722700456648130023644840568946695109000751450517137675413983995312490003368823526366698349950365923180844160018888965019440236158638336237757793458009873423987459122410277211270551360654592530018467488214896664929211316322895183224079850976709522730636221020326698007753850159504494432807644217248540146885023032448807789457168148599808511748395068539925303294769727157482916759990838295829570078446122517104691318421942483640784281856729452321494001983392684929455868415338759852053514554821303595755131639892385671534042738878046977020732201960094752972910017978997211780409030128007966704690908691159967391561878062516486492020941128382128633497301481079281457666477512221530067743809909204237805589707928874536118298952804152781426562302926850514224862379089797005846972294158965207301172430112682658967208536591415733720613995244271261738415477642628583456192212515952535157221056197939079347074753665196042389669060172876661194995055898417569670102641553245559102619791233826729485179805836802976840165107713390929421846664441391841254054393269797533133972780854597605782648664317181635980963925853132054563647741425825073118046412851469277154669443241781375758209558040980162813192062148720476648679065420747785578404392136635775057106829501021818956706371283620590375550130445571277529660079003885622890151671630961201522300236277224418887167421935185091032257160603225098674780116317111870654546247241335063672524995213572408671483888453433055718523372934260539540375600695126327090977460122195604149593202751004548721089354292262402784077000025341458177776295081182157100959537350742856114847736870171104385821761025984378821376861752747371111939016857672797567135108177051435171695862933201341823221261935736227657125033470337207467032994578758174937293942630792776295668239599063442371319071184757791389699729993364202545305705655037512324470648704141466892573572364149821726469950854018880393608264061004113504437877579403161224464178920806592627231774476125803332995194684775100527310153961366884022853959692317236260490315676258398876635358461015126011924997539477903749544685707481985592036075356383941658085141443711031569442349126020809666229826994684788176139114692436888351738819964315039864796846296674424520385069979579642949541834890868577429102288774263825883827723254168044688690703197716190427475937530995415527915673997721316813667664763865118594978694693997036013300096009671660554022089568561072356133084558979400718029512184644327341292342854142661681740009367829196932758216926941946011326960735318382494862699961364321950641515687977581771271798454560774100758701031115221426507486463123788652456463553585016562330282790127743995561785197655554300694566634332796814062235476923574668159326733740504758987263666297833124993391064300685846009244702097014648173408252917043421408039851674992242612290521932600806835065069601512618297064679615564898198373584576448815529433435341708712874775859899485183078530863319675593497630710963075638723057816486939129749644331325421758323776362005532165673746546437047982684764370755270525107703142284457229316578969884979510582949880124676773367722615799948647895596492364001931037838881319150108777548472900394160910106377160359232768467351957916111270202294276374081206140140891006996334813298370334136074608399640586159032704223871109285643839957191739937367797192831622762791702849736413119615581337505115863689219392441949668413588764985436118171581827371215876243207008755480709503470201537612586499178373760113289764204613075228484202728366932374732521760739633337471379272321194696368717878421975701430293132315810940770568209939054024567017651648654328175650176406618986791435591423623084499467728019715382959429249703003716696208004326912111274202436610089846114133459732667525777492628502660509536994510346166731580782148727283894639746346921114416853698245484013318707329105905491645795611418976700752836099153136840543623726549661971038350388166732844745746493223664749465415126256136043539021718824543004130882556796269156809041458443593667418591130358703202040360780540099338564761580716114878639363601232182450642874173942419151857558987624241122117234820585468762281173556727587934613682873786903982037078462033328155183849176578083651275909593847134042221279247531755062093315422628290419487314245190530112309092170925843412167727322452187737902212779951662538125791707954585799169858247240090761225211350460482711930381875226957613301925381978461729220427314473125322956541394703638824159238628638697404317181103173415757007566019733583835036587463233561717875470354503736352364805989301475486020150450378648016947058415963973271648859954712727109269061652113695263404100818270596571857673121661396119816892630315398696459886124344949034486774689330644083253578060609322839232540856178018018919216053299743819298841794472194965562791103098530943224895937164834197388842358679872968251756857359418578420826843206995239829723725943631935526952430353394314043318101084038375487956836375609490413159164412046826371161704582385510032411968602166365984422387977800219107929705982730364866577340470479193463941334854959637851844805210206820085059024218156653880479667337874566282531595233900837091040799427259488861704032744843779992029300502262461844247380039566285063208027609392903387237185313317785120292831239375073380456416599382649403217622565274061928116694776586168216708194678514704044171517707939736562847352813668024493880871015692335633251222005301164511002714754593878271463923080360043621818925456010448368265097421019469172756095149883263280342965273511287284118071405745367470808556986937392452120183889851668907455284159324188914872883006702623241631100987081501181661011176576744384401139050447467543568073490934930481350516187433289746190324539142011089823051627200775427495687533916132329389162922444370246640899572796877903069328527165822170235253087976516771272471943108792987822280187156413918914105802547329811130691651204099400099798188238746985539886384709874627004739688642210753481488577158384853616997113498853285634571475726220122144884482211279592102326868313018829704873550579302952701799176923974757319215586668615064036771203563915828668307350551103482841748708161039425042309992369115668343553961313470016259831658751987235519813005690737594464715576567199196345717028903592416863926038486627683389281087932785674709678125177688504783669078233933405591619079796308326825726621228395623274823875988518304989718859461219100585105340879145641428343845612200693261353613612182350820725106800765322323807217988782524883964177132465576402078935336827771259604060259559507893076405063436421546210546094504355066953956762033837817134585491830800071278599597342806985266828243176129045942077158572552929051188749508356713280728936641601853259205481129430286305420437090101319068084197715689985752755051711941084363598817287250970756190035770518275006584097157684162891126837805784260824179583654353178908956192661913280532793331551117338769130638250696698662906501599728039844264059517145672533017843246692217298665495977122161726200710499068715842365775661367369727432956709497966815506520779342453887105972145704964721875513338071518344158646280991332330446103613661636366932924009640017753251437709045518385945908116986394264668719657363886847281633466559402788174713521673502470431125433801432441639895362884072599249203847466085018537414377329908159472725934255739513655222431615380150157344486429508168554060385542712657305134481367731958099984008905227822276901945546979792743108354619969441555688824718755858465086005312389281384446329826151007812037401858409265447691222833425748782679176507815431547576854604963929809682097048597965819155780457910106647612205504564261883860162382131640859852701067437154753049451258207823512593512506525802658597387514987249449107815508871887247435838152952217370288375343159338795572574068301914672722861187223140718817076548669524384552321049376828082518979441911914428574513073520844854663142747144970675461334455493292876583709251066148426212073661509553259888872760449172679148313362583683351396067446983000962833993010572394040206878172216189704316335715713295708415927171752799316769697000657449695604473697096353838354360658395977011418413710568083651309753046958943416774996766160764809706940002800177231872615542117202476296371336021113052407913607629512075925776974816346576730945493969195572621743069222559405634025078232463062030740489579706246088573919347912861700299030691379236541591444809586890727183932733281942370135343516285414432491912763451658012314856471736254447868424690414947442881792098357128293778856847200257180613779504371126467785571925476442624918809634061101151022303427695492327533877661781939114123370875491459299506596735881526108449158729086497121126208907378688329974676461158889245337116401029099157435600815305043760393602206860222944479786228038402229372356760960477977599523271058839064266043258692196465981628773201337668575498439690552491317386560554549498562606633499212375229403475297271002325158268909671772420704752568529346072178051249266985145500522537561524004521350544906086685496189494044372889606169120465832907505418837252598805874183406032382737199939351288157904007889388898772480333537920161078732757323323119107470953337062774321612122226155491755430049566615485820728692026453052507798806248899403551831504906518021442947214372943775050984121313076244973832139065888579166337474298829920319827185135445134067119713257168200399684630078094248018903071040591189961723315498192705466904054424202422044329958354498528686572644764896323042608940240462731368594312489819463191645677187554478129898543963667835630320566945540413109932604608334483490507229043078810302604985171685562172709312482967094459805566031499430759792250869734038280364085097680115929973680869801244812667588992337143339170545518561532460762730302915244059132334288903208035205383552898558971627694256406337363926816807380983457417380248849382366912275512843930442119166423132662380968553766580999373205250238116829136539574047369274821246753533878196128347434168345729387732292741940141330716112639087453743739480699390298319672002690174023076628260556246228643380274546495593638027538995847678730623157542769265833843919756009963465124521515165978435196669704394476899923874155473396120919094116504900914064462922405809113209717916636377024932588852606362023055734111283411044297887631586101165596566598407383738066770757060527204388528317822208335681550728934368971326676854019149517794407600527363335533747341882988231939512641561278925121195104118902249158628742055787170841725682095736541731752688364368731244105806353627958525888053867129663780827516320151026127828177269057942382694402229349008445470071921326603595320427681589043158429241953859406434974233184316246767616506714211386165139816666469107820856034777340736816958813417351252069090157045513899567370603524946711054945238507560427364581767594848426457894472988477766983451844963345240168648070448303251516617182866611701444896329196062616873190969019817323056269564757761157934775162319842616122758742029839258445484232061476575367917950452124013492902961233079908562302173058121298019406623823850261369580941505794971455730593445619225738564410041519491537095451539399822342731907321995574276569331860473076259228613209032082445181242053734216396558449145485054167475481799145585763678287698899202376629165848669779832964487747686869385914144620168282360022952450167794879653951273820611778512596260546997870216738366811799340897540562542858644910148723948232092019535005977712202133886360293544115932723608411316734335861313593044349872386508696201549348899677972195761653375728248867363244716384769323225521617624959562436716599373400679204705773352684685940503081601290117226256255320889409117042508432742273768217267783694159954523167693616606844262944852649913223646543987463525493674855631066053282736158467505562610241949922621363434145326198951922360373575247975842237536035055491774147373072861908054638169215234075052311839832442303506187653498643779069129070266776984210128013183373495895318565962721676409326849623068743330959845857555520344161572836983800985809660206581727705679069337612693764214865797567077078877636543073255789792787913663234024143261505557524788990617403819478359592840756402262116046867223305847084193297526363031598965713436635654671028806050158275878840615089592532891079907088529276999948165032084996028272455996691640562828934302596260351396642651763884750173660002488697409436052070224009608635895902003898665833732002873199922276353572304079365226633172275130770667713214340385076685292920962919817214226456569401885331228250309644136320506235194111160694981839852220133867266817671622414764288804061095303519550881097517445667000211880376224558795374730501251312692405074583384871333229220540580968133495401271005226906544380764280263974013214029144587084628499262898643252698941729161646735379693071889340163484496791187246255046480972937754554048780752080103416977085735325188320437177307694919353864935301811331654887113149422827979372341190554342932355749821694257873727238036131907484928762673077072647031234579017396177828119220871607254524305981059757139716912373873289473731700181580887596798381592130550578539100613370488579651061356949015105795056918601016162576026349657841292992252929230013482851884451459955812829856646329527459836842843201418877002431957999446875328076221167853176958853280248016931086056935140589358585361714048247689068075456426214658694089109664121114652222382901682733089527844199573962087636310844546065422245603113716162838762973003043330344161831982495897183580248471929054896733830583831121748148189169291252268750329021012208795689638423863247739947070969336602487232081271436606396813438374177415324101454357332968536864955816949893817439791873537190039895846765111412828127200719297112154444698212605390203916198026866475194061288302898030807124342146457545309241298133747572487785129802374232762780216208589780752008141458075514257256234365178141799173201003141068666555316150145084619427881567677066139663363626507742779243304819814715135812540807141144829723893830485054037117194480706181237995899895276605366410615668141212822126217448886652048618625703351058907772967063448975826061076565930857386602135318761563676831302360600736708484084777076009014291600299748471823271349554884752062102923607148560884975372880861854240016133521534310136225318436744058732685275915675544475551676675157435375161500178193047152193801206579846203654683483939645858595733822659299690779801609140422546617254944998593409971249629358868721864303420276199002115154184971876496165358580725967514270471168436552116681532823395681570711520240464807264615008527720783634400265546277748979918128979334597976563382740653302374895447334110831052347783574557019019765258402203921300091101574048976966081653945681110599512317548623014506645125698572167171747100351621113713362575700972940011873467503333048011362805335918791079340103084024475657135196671346711037237083775915869856378557298175309862632679151030445062072496495973440749249939761179695989555759471477067920234050973513106115632962134750720827115343616081535648050408643000291916153340167061775534678016199207136238572778545150699454296191335463755821080428633072093545693365753567814864131179567573669449170723222328931999285509368900182423939526899847447091808099057952470090026738907314559900824815080134797963555770334800359350093160433298697784601375175334230095319355282321776239217278561159658479593971625998757841368630338963175421754912257939078003514639714385267191355285793544308942706420849685026473135701128814020402240188204887219095796748956567677607600467269669772917990187324373790074905903467231253336400649525993667307013831823651280856478947908302063397758437553195392471179361636706502262472746954462676505614165043201958636830411568689855421204170022655402531816498039452592857988395008117118154285184872800870946388688119539935042817250303937588444565904250838937045745435245791033958033262411585628827391402687758186187479247631433347065970762343073202335995989918648162632564729009713215683605247787242123439454637956742772893257174606660962666433924783158353854269245732903521975477168586101285277069567071279437467642589426617657531482640585993537922823755974117583613101732199661957111778880658023384103610685171269646382270988576577695246453443986764291427981075165477646508405282045455171594413247697264716117566195794660715486188591662203841903353258775478355512236615139197065547951425589217483353369540679197468435922613226574611131267392990296678699821592224030317082114726434387788586777925425115361072848355950054338630849314135015934411170677716667076133262213788603554456972739846313138780651442074452537988228150157458512302254984655093679912608187484145031943267049786700554906116698761128431655036504131537694246086099771960912485608783074102061749166907460931893734527668479284253567774182887317547866870265551079352586117167311106713486039443794248567425746404714929692232041859816049906570014857944917348649144777154508906951732317552728199051958009093896234637692673877317373909822429271035629169016234075721302198421575871019082412893576943214288424257732969886466499594959937593285202277293098158954679697856976801660782379743459563714688517994198295124217069690624788871236120522270888113310696113519485921988113913937505995202759642945830485675547289891705214626788553460584739204863457582160835160444361106726335373925632787129663847645503887227189429290704609246561043092906095202198503882952812198347914794224531817379968360747895963674474755019075755630979037291174480736224359950166027006537337008697651386379387988523820976932458545362112276219055021955196413702856168617237464881439670018571212663364022952518897054518491413550497241502570358126582788353790275339361916457048226084903365987441086770293460090963901895163621497412225130515360457408736914681331784639994114594991603063296904566432481046385804326096687370872493315040003584493983495813431550901962358044643654277854953673907549862291075191578880994470946622227449304422858451274072750970678631821232228670807253890837060348137111873731684144864874356438855999753165112633785844887596882737901744529353236933599609316625175905347167070482095609178196066387815051623596371320637322108300921801146558894360432832964669483511245605806728316442766001264698707246019615882703407210230372019859658655511966194258680139720933194987286557903696088940712971009396018650729981178654729842714200379357319339789411147642487477424759372776363958148305328468617130445918022616224593030399582073971221402970070511832821510693030584768249350184886043947214330164505334109433746993646435865432977442528997128135905877703970157804893580178392064678498473227747121263623069535403661674705283603801207291862664713742230595074404615252301235073652116616892535770851877817042497030637270177952848587511223419556354600386073203234692975733048849909017737782702285301272626868636437664177181781043171099006938148875468360479569731834961565632220303388714798465499098952254428400888458078159995782897863483134058335258061914089462301077352934996897736103229825875553612063681970026576132140365705271089816073559162634139874305993147341210839041506483717160235140944207150172458159426079281280692489530176413379362369443565839574385382419393617722842809505125273236093946876717336872140646070397918884589595478157975351524060089393693639488318848538456380409441990989487662423084633899755039447498372185221724049661765502582855450289789929422719750368359533428551506411621247832113626503428896199188870055726309336844177316969426749365638051341222892534757441147853037363142434282882966674959154288711352296260848288862701826321423661940677278611777497581031153599691701392400452205722802394338368321401969343313214495789601301206635726868407215325883506562129353925629514381709146958807395944445621100219925756871989634167993879528841804035971907598701766896927048900892219434333817447837707356141818336496329150444240503773520046516894730370803508338227415716357160359020519557728097647424502005296357382666120785719941431566408146430573388767102809187343609176690807203456657144819925695663644413514489483766378252392251611482654662447920434129279623894028837495485389415375464755854175656928771568109771444627959623295596122596556747653218634232431278990149520268907120547742957547231946248999288041931515099150405691644486616412544437568638580970265147676207680136175125012344429660802282848557719093440959898965971875658093113386836294148488414999432992533961996884450721814487064320919617973236162445143577367640595056394638059460795432370918375776754791724269915822859067929142516983140828770204808043915065358458667678979218194928699212860713474449178143027184596146478873814559898661533318659402272191759120998685902201288742316562961598635739835548025777846213966389342890777898538673005373474088442607462161981313462149272127648281947644743127041059411069184968419151037514736945995675636505157814514458879492008892930983971631927377182271414119679449699699221779396800302643236091498401461006482834035368055011358029293240185791736149409605551753679520640672534998520855088403791562987792271538048131568917363187174882553803680258035906483812211296280258956861418478160605755893026522200885135488238076484091451793515050374723298962293797886147351202555865627569841321339500090171503287726189135899968790195977489523522114173277556152289636169568115505738984989018376290484758086278409451799641233965626908413041232582785769663234883775866693407316528884883908169900347640984440359208981276026630935370907478211393049731842353135055324284562951924332332700340745113329430222815453498614539979670790403938130293855233445424780362222111370379730055881503700483256489241617777161424161339028249940321848948794439605723003590156759356467957859302666209985377453544851800387251545004034071815273802303697100561100084037695172680533802535135782730026820384732078798743654887745276734777370300138845584129810914906148152876908603611124552853214530655048812932947951344787695047125482358621341983200163631523003213060417397023911628426599077425799422567774542872293152145894596784513149780635655100646745448028200235412174081001967690911040405102741814464833518362154498461652668308925678849609692719295382445138417126961459570561858759184127439463972381610964395906523482311094184915848606332297295664173793579577730568768211839146259836858388522532799772223904131060842380873601980154183929028505342085542520628781863911669489853400560284706567765430109455307268703680832685035654481432532706833240634587442986885852915003073884529848623097557267358094416956642973823748598781073935379280227807224728611259111684742737617642279144348774908661544898867520862351426158029376411183012435101039942151905300361315160868648292817039433783700585974954884431286207763733770355387057333277260148007898614324365418619270045131136795888218015037407696424973380643777720220947599676500557357295743895250030385438974624934866892926355657447782621366732837828356065019679882584867939132933905583234898870669627964553690152465329220134303401783998429754957153312214134316192380596292286506352257308707558170508729862807647274386750214950105462826743187395346477036112125933750669222788221233738112343004988374832522928625418859687615851026192240372344033372722950634269267161950282691436702265645831709700597865115954483689538171097478989746675816061478996758473895711001514188970368313864834206224859508841396928782776920003047441878177021345653493845041472856431475990944398911979493852908568371773874330831338804059845456916331266345390717626050869754052162085846642139846409506418078042716531253315788204284988694922636784131104635546643048803515066466005245846394786017943190627463450290475917195750766181245676738710519557011684491107857495061007866115354410972491381409879082456948081247797085607410081841681220130462279551924915991861338424343520478058613247173171435791182557970271223169910293174125822404275019570381630503696530425502621385973299422787158957300625830568912794689056934083170613294137733187643378918811089462548136698730374255905659721366863132192009681572836739448333708509355183207273983741003232992649433257481813988109293867416647842838242014972677337524908170990197517760231722853037319895240257796884023699117452098172306024386901122419969474998423850179255559459714024519823493508009350871333045467811255592585131191922302114078294877737984075873585297472294476748740626222127045767963613116604539985586384269171368390903720594494403956112302633548111604041546312644920145607117778907728529691094460989384795541195521023769842316705589979803644828414152189307108505748459304869585842642648599585677914468909062671472479855265636670914818217847515073224438222651566639918349175472468881844924148005048447562460221536844468072438624721842481055625099876225011960611755600204608031476176585693895313783171669888850782686808033630021879034796037476871567673063315536049460357256370004351065866492316143597981424435678036228688679242798736622488572471309627622589005019042782249590182926481436791463335658451795876860715541970042644161226564102696127790786409264476910185549137663430378297422598504640272607036567873488026397857073795813771008246010797256145063154667161811393998887126656782079548109382494317848693534932503329162710897446416350541383417878101048738283192769336439155804104792057983125318760134181243079504662615544814629416738973158589416134986725399955879765037357803091795744084891155411650852674639604237357211886375424311329465789561506824181195858208057563373498054626903718789472200100090518975868864382808481691023581003737969435425534566802566800955645960380310601845853973973906134607041131794527670430802533672040572136563115954748533298418733554475890313710449213427466507464621547330774219217342880969280353849193049854154834214607065009025305501951751014130908680876421246213401709657126443671093468436066625644973309209110217720561567837234661564889899979948930419618099677083874059021959363343098630214532145029621039389518105907530836716499432935582789174175476301730568161480602859372075845864373911314387682451914437386434445817217692605531043309767655299458032103748074060307193261644729371747989897246272943947639302821480145075559135285034495097727682831572832476402429233537052749750680353844219611227545501558948352387808608218858807398643929615197894599224654985759026065147514760875595245577195657404815726819434336630005430906846792708477941479848041087387650426844876186130022499595099598958346868914682826646502825482931980441906577423611375988011399443878170490338545838552143411820009338215524051463086246977928104800890586830996924658591092693603481527083606684503508185753130487811456973650676570638008042609222232389009935031128026900775976003841402302395294874487679854745407285613807136555452456616608419756515830604843301397145440994203138329236052787701118242280675283951371017464351552252696680802595032629727096946001130592990596320941602426110587817043919724822556523935100584197725792996352624654050512552404770693610394575499692924573035696137887498931936779041941134103167629002889842420349114030014036388113787114803279859597690999351516385748321424656806905148661293023021954258738446934145517341368012484945639737315522633654834418036799787703461807415329342289572073129876874498049942189703778446393637391884312271783318521048019928638613643228361703048695604963685747804740366356889937273267062855130301646746940559982059979349390949935469694510061952439246650062820512942724949995495999663275509232345506039822372961318927557578338071481941853225437384765055959617234214947812746344186805723415673228031691780369779391887407942763491260016875319698224481394020219228010449656260934518763074235926541425878258939549535592957139378073523961283322420028831571390761943133172091485688188866518902812710014262936261339635127504292396333435784565229907206828479531501122013751710245294739615773791082099806605069760259344708477736855659969055957987837392572958433656515108248524747518825201196222106289616323096546638243004279063859098808312976930562292838307813794311723856341512059472716217866510278279111288692576847165202857110938230065069213152851556153819211740326007541663091658467437152872809443015864625020778055331004245604895669855611041827267596342309682302221708689517653828619195504455952605517765785222986633283469283630507707323505402431093362102487170833284161774785028002259008851894181995795280148620072601330871726567756722441051107147966574981851680645707827717319283694589072462065822798328128795844121740447635074469991020396144044084935064075797710701197601605812481212739340038968285548447567690875201936913725514784469784478995232409717303952509898103958561039662333180112955633203938040448657856701355903960824359027300064262953007954015389313199696642417286060036555656336241507562301451226528709865046655105684367778457408699773012888349017149826631747060056908273186785647394599089953065927191222782067118073806489367118403689684171252644929527252335062784283480637346599976224534107101722519238944523705522916232851116888496679335292720039772661115409158261392686129127695949343201835654742724170522705609197949509204192175987967750901072534482537227186266994563057849489202224176000762255399979859679132623382784229043757515762760493840718402763182432660189330092422926057119886615194598708210079353694625558245564331697206885074975187512925597843662318289565518145763859660588817841276271468523313088755333041641270961149029867380143358511084894457188414844579840230218955898697349103058063500293895030225915770882220452678732669211660149002939492523100959769772480056621481089071926968166760479933019881714078465631402310347482520636910801116785571703947442442679537715753723978644174824592035138775027467071568163512074155511798182891835233333452073498760286926179000143212153271957587580143327069228953091892367533132420753970911735195019764368522483344743463337418221749638270582559378267817855984684662864520240624220574318165876945157590859471703137473670673005059838306666912544283561306942932041400444500463751021203305384768840761050619419043414777665970666861630138656970640729708466856992146570574670781164981822611039110233403991710194679433221357380860173655233484349681418207090512644531629193016218032050892287238463973895562743028553567138186028727811006304497925082263091061757594219672312641923920851914824432886201078596282862292629982692961914903220836616757825359706266566825241697532662540518316117286168450518935777731029114011661536712571529596856959854126453697629586939360091674687555277284767885302564592251636443370856991039004509623377918158567391150449206636078684515579738139919499979576652735906266798767814717684477368300186435275539313192157429604106552766035235478074794265844043102105247243435090753207729759905248561040332592680724017247166289851586206838732117701503111804166894643072118625519535293763860721887035786663568728877691913892244674650324120028037013605542275473614536350922480232106942647152719778282928017085064011070157638100475257361762544648831287721979415544023693545200080679448866472797308008376753406896677745483869182995871503728548806616616935319020376432069743629062877094624139745626933649609254653103397355678460411139369923991200794788383596555712309104682075956574467393008116647182756030674942891053988807982593972509704406817302594821687362545644188217886224818472517146761101682116971403318676226641513714150813179223673890666065070392856905086698091099556127969315320828088118348278655149521969942486443715314190663711532888176059796936963644173534837505047463575128819854377923038079423910216326699446447486686119880771208486891040908626660415945155075648199821382736748071191079064709522873460664930755249577264432343849334483370527503724970342579980190198316622673611682287032910122012745644060143335967223582607328480574343261570237479753110474251221227117012656111587498934775227481852422533952877492389720994523742649745164887312051083643628099754843910990538391164493806277518801480054932848859868263251184157747098658511654563630225012922972728549477280698405116442839085445958806549262474985169564174146902078010346733027667465282656917430482548118698363191498244118238479844549953425278858450216069741155448531847432790787458258376066571830677553750321120574025159917775029788655131627356318415587241912470304668853671998158613715137686215031842912360817661586574752428655896972736546798682360872041783785844700925554331279721159132480996885298693131734469850577503601648794158508415065891793532542161615045008279115337726089314717611221748096444828885140654456097076934925730647708061657781598806203234986839712348624007889779952119509317636489541737780099142838747184815176910303887168371362270668213291163732505210825783589813951723141494983847178513076097016528292847369776844997421374549616468769898318226103048696019514343459615863654159874654468291221340787397256565132365934733072891480683985809585795646295099482991634944112247169825663284211603904009704561238591807597049034652808044101170434504921180884118734209595335026460874026881131375918102243789581560766085449956798245013819743062709313361419948147283200871081000925468738209113622125917324447415882651645628144804063211478374940109019596135025977622484938637562392018928301843194898555152033329738743642883905773405297611426442258074384349166754894751617953237214228019429126822921449876791786574101165889099155331105544143647296424259402360659217907524962634105812705878393683994485089383045811191849140335187246839930060910793357235003336839568528888728432256354179043343165671805107794352825719597258320471860727752211803423248023348475584325253549599694232225125380069088128092170147508177458092545611160726442798196903647984173901643916684324938500256153415261991770673111797236938973611501491791546416719616006347463759898450215277851979703108088162909849282201580153473990455630968987687733269261198214160744641870678878820027171718045793208582505277063503868997065326413619779286514439934853111080200515681182819437368888901402053818185809539028461498677780330211784186289512006915334596623263219292647768207955326929622376714112126583276434737298683182834439889995201669405675140729565926182295847214928948081791778943948931309595930243943503281670569458541514995308705806237332591624434745909000726044852026238235178666037487044397026016253498901937501247389662999504438359179010203523785314037025247144285482854511261844516468874304856331390255382653220013482097430035000644952530751135851814400641376867066248836419299219646748744981623856225621857684226371130589148291682087371213494373703054226350161717691509953158522635380919251565574304073942812547922160885397716999728064124652060212004410712998384550867354994672360927051862070395327792434013722730920519202272331753047654117426626292740444551194545104382663943044048814765618284191195943564841592717350415742837962680751816104065396076200293202578608632807246804667816934576127610657715407356907632396010763149419907105257688073470242660334199081949731468836426602144588144862433812155469841413427645853453858222844513551958148936651273884267161425061713966322433523501411473560881979951627226060415663430280748942420321156288543012280917154325735837707437198236257293630147272648498676960207504472374756144391717410716964207389267991808131019000877700528873888052661164990392804040576495048562972753201556465734941354987001010208588929137110143134846399091315834965406221016586621580665239328480089186541507844065595988014891220591398688782000812009980612972503846995171317912134468699054645937981522452393209623952753545029201171861365361597296868097048604221660377116540647162104927211474423626592783224319948146474552357269519146690707004005793860449846532684371826696076080680185416958882269354619266841137787339734138250687692200294487836631210331235763156635632531439640936427775734364282145168032354631088540304487699304579877290000677492100202405180860528182057738159037264732600524766448212334706347500807553392733263222675708247943143165613856836582589014482988179453794292995277487357089415756826538678465584600739687099314890489297325074392878537898690150908616397487683724564887129772244666555603249120548657394078975901674835041986811694379465364567271734651635917748207832736358065046337624265805998610434455443070830510090984698986135539080475657169423856848288996717127934170576861548120685973543860799036353351692707814110451510685226405135729915935656251394896759012019697272948695927342555785444392632035957685555146500225923963904149954878444828159547244014874844745807841895863841250838639171168115921135113239608094038028289579201293753878997390632254405020738432758030534097013902235880174742009247301058121189391455342560798738798340959965710951416708906534219581372882257111527012220214636857606253694474814205303671156211222317320395884214574920639003993263958136392123040258467384001558229647786637039146601631390833063859489441087996936971248234649579647929935633317811691629452469711936337357417994440438375215766218191360483093258049964233984072960428555771672521764327515326874900606297281241783039590369887507539975222987631637896050320280508909737483803212957510883065528651212554208752939854077671607613227455885319338767927433273027697905630536902357673851196790634719420762625959415078097396599123856664731237425109406643688204492197350098241625724783569022651708964274280248171749073831529149204305668707907154858022135123389669481070484502543682476608396258670836953505448145851698396027647149498871912425782878517327698849666331660414159662582618660881894397473908157072990317000312946921392104295659325220640092754361714455201113130545528941906000413115773064465043700039467478271403154070003808507705840680453297041038993109189722415338504026467538681478808594933902811714452307516834584173062118853584059223589364778705419686162991230890651429767606017133865997053547927701953754771164465053924434904727307924230847070285061871330219379881432663399190718803922665617483115951861155444120056193422071774408559460897721644932007587874382990087728467992519478374992859886093265429812007289521522446770623155713284353941675207266817085897350162635504547860922962503937321972339021101217652159893053917985513416780298012337370898865233792215595353138267230266616952079437821383910287647370018175379344729455801702858127934349122153136490227918793447584170293765970542656452948285101901107711414753235327407716987020349688025865005417834985605290166984228046010489048980955289804385108770934254472855670990037493255745467217112395674804323259242267463892588627639816678152089989832161119708035704795516164080465646889587607602367190722019745593276883175843823426819732654906233215144291867266796529700503188588621478946124327238909020721898038682340184109764249001141449069734373226319606516862616505127760457193366404172496761256393704407602720336214052411292869418604688413245118051880331553558392875954710779781326144273014722625946828334830522826248811597247272155212012673826264553050749631646864901324274248814506260276741091401490985736675181880187217311135935764716792521901958228851306651290192667018179494325168466993223324651238845312743435164906780433141388861713506978192077324427674897506761222488160478970706515642690541864587949947362674936969363920775929803641455086852402131952824834608013344100486797310215291936731464017561686550984030528919882873248619709968128212774522159188741594252185416821134601519576909887837482869472219840925273271106980237267403268222080858976324584237467982074213775845598495677787252206240158895041511240957116585586349954925439155557788778063905096596919640326343564769586181753076164505150562148161329804611180357454738183253191872274528471430078360951557225446905726727987437066861530028002854491426506728981857497025336059284382909441601804880876693395724560476069299364818695687929261469646771509053943029865944250045399582946735564975960453926820159051222069571166232504491460187252317075229861213958523616841649947982844280111212812353768828121881560845612998419829261199625934516613769673741061286944656981594631404031729154965123614701064028057016951115719113908251592658439437189218829705907883533212495412148494745898574673474155538201238322377785697216785006899841623837685949681356647700221855583759431842161895440747978401491520643959714203548930743340479853766155734688039238176588762513858546789531381430251696834844612913532933305850804419686233033086803109610557188285205312668056516178095525524253205566574850417812054995558027593572288916428361098815480688408653274190802643236038457466683473225922148696279419553167978936434684027111552055517100888272393068650768089761372361844648666781495080804534101809335633589845919913533438990447619228188549025670234755055686770973569370979306126392630241799101715524190942095377341667856770919799778004334666703645509197495883480910793357265026830573561956113873105915500886160487403997569346864801156242615570155942236524114344209882034775754181548836296873551222152237069847346296313706154570608466670285474460003939576769715986298781635755716842463951270377504782465188382767714968015960470580153858760815799634876443925263931586719986546749656103489025950057589461387103291955413786052949277453964501624174365038193398894927972415662061342204809787963630600766254842099352816021111462430586357297796657669003722929942475649757574537074231863618312461732035391456813104591045478715558152958510964558683415289311553390736141364128582351071621706451365723394344716224098358810751104970669494130199317475856740477119904830256501284224123812418574244718352335475568648298161430309538985207243429433928339804103504266952727098840331806775536597933759167121301663660257065403038521996017269077391131893203642706184225262875236025172855951835592325002245987026492368304171927874639298132441640930904360292436404653651514155693363583968259002142737471221959228906437972615646717483256621602083896624981497219849548441340650040875956507343339539511293245556703303621242388120190152560904424960925914557006083741406330569019945574886835875378754815242224436159573132557540079193437633398607780996657149122545053481864979220364808639146259489810960891459579289207970274180593780591086142892604480630014662531589330941260098728687033970453428111945014078870722645513378631284089085839997090834114412751016554769651953836639085404809081317608129393920867675915492295463290837950749603313258471003562689193788299113687188710566818928661440908504848704092582297879519872693652855798123929866416411404437489672927476911306918088047546020962926065823290992593258291969620601485277019193686993473091801873102337371621651938708607052758658406214250409190797226754475105205647285417558221874887511732250803816393760575452813674905542208449737597496271396306230644353334525390501772010259728454579545284754620755098992938654272864897477934103193448720855788266621861874134200706435472695771402223249641955392556024346491054697924823210975989478436002633698926796148231722743406934479397025153916505844541858606768155731753218568399838586766209037529970421561093059147579162608257332029441559707407664799605993197912124650823991218907428278664938760402575034147824561723068491810072217391205209229507067523605483997227427077299328970018140588390153635374963017155884085419223591121432574435177314180418139904171521699564497074966322370026919922537453766820253291604222476835203413963503066220411855934793543211842785085030586621362204216895144706231698195438632364108138566016091849721979622560038855515801717928030726960888236485753540413590313698008913547369188018663119945333241485901549021430400740110823947236762383087909624266718186197296357599533517586891963855799519001045591142237130875235738157291419935782270814186050752747471605495294061306499784725977023893805249016804603325006301906020936089528315808144211903235696301543379115790803850625194955049749878418251489095719336570615229974162984494933283174118729985558139858090456067606154161148231636247504322692655212222296691115884563058237263057282730841731064521851107192218842263418237508083976892059684357342503529391077945968027989517403221808388329579015947034407402597552588040912496547732072959497899413236787400841528114075043009813270325175905779166948845806572788085778618310033380892799759341995296735150424579357249599098079786049235482647766294261700124982218633824636522236038268640939925842000939750870420256192985203370728403927341909653284441721790920053151786268151672714865275391209129502321434299273790092084487306419126956152233359421539785288535966886506555765482049660286763250998898850773263034358622748436167627849473866300147932104610349542872035919441522507944550946534193276119056163521507146793112248419567345378327329116553558025996975298214126115739931035096846609332739309654472530989815520778308729704941334237215109982962623161461638419627310039357974351212155386206523124421957281519715739321715363820480644586193734358380836056311582180511738346298234300912646612657507050385870738248809995960038814822572810759489886893399406237245251323900798582409059839082808630494409897181514841444293155110474566208442128401352016018230308762927991744339142287465745583106220447402414193776418016728303801760227526327955881735922903082052292205959794294998911284029915255804596864511991508378287514381595230617263727216490528458621778777364617216861511347776092605860428538009157016215475689424269979052057924309562752331103302699316914883275670137276003292556921057132907331980209087026207972870405287290958787074000845456251797969329611528329626809248990078469406586260479722565285789141796368552652343853375854644960085651189037449568905050681253671789385036553697073505956790234748064056209629642991334446100205968265257173790760553788542480248092907247778066004766204595793278684723019424476435917985117735650784491138029163293528253266775252298480743181500733521404225970261390606118860116101864396422158028805099295813434080562411383315873228800621861705732382904695306520371719286105443858443148029906180906600657990643944924893097969825339163105900006047775209561556055300773914713222560263784874098097669902790547329174123574265781560684456143719648183094038333299967274614657137702069586093524764183720259630347550985729497178672008270203418817255358322404849946077554062995003224880702407624792116319596868496653465655909464435391760253006025502161810243468075761832397309609230400977642599268618981459614934766785109617929083577914916299707565248872822055673042786427823674648190847869078768676021298832678984563919317148526345394166113132945235453592837174490112298383759944029795893065619083927146365115434536342179522140728162260425344896904900525174038804915959895368226535666257158212960601382025766337435030998644899458412744509009369696734808999822957458155906395145947651080983314952014596432132034201380231535627013644953360069199406185463296563823136920946645365343544824234710275958027922805046819925866288768287236760452458806116742965459288401768619756196408839550326269034230927474229227814544715389076654213259035662663338280829081744025061050661681834991136311182797476274960613295910533628131689722591980911534807800103792879663012307931082231479416453584633007730804007449646289483573138523335262412891998469739269342118576820056393718084901471421338215567099697257520993486239687835171932779927248881767468993811413846431266262220078815996880079749972206408795916657595053796906355064140231177967674065851890438994905200527558331461299165386318145495200416156810494571283964770110329004416798422238695412651565873480674568970440645945213175198728408970594073884848900714465284693737803250509624490837321583907773347402299807280584608389123867921100872160849061593077462624945974708114575130968438121108619035514144152546742197685109857353268593536250804294955691556868800463372143650705166439946552699289234880236629797563616996376790995396076450678079787770576613643365551737767275380140057592359952770093349241523862099022347945927709083517314829722417378660356082244393135402996001679724928944805485511188509885816894320831145991989659866898004512537702211654044181397183752279354908950265511273118981546696796452801686878237097871768933747076952433247660859825054582814509597029107632045168477477795939511735666924670877630555419882605295575907108824806765121682818049646902395371479343077090580219234067365179679108736484939158130834887718877910774911631354709451064634041249479475072651902919876643613178981346821011591848179911715964454419903315470606308004347304002624497855439509363944094706549942490269330730211646214580598519652307329501284793624725368889458682668122308188187375919881601365739123163055535466306583894615189702431088730357875624100242277788165741610478587922996065024269457667307201459217323974223715626948400821291744088432617440682692947772848030279280122313442400192512514529349527795608989475899517857725701885403525514299601489225907494419859798743831665579056530672645551991284714257230281247931103573628810359333646732121965749835350639382338146087498336416873596766965775288903344481522571757592980373603475194170244626647289176517974261623473313122459571376351325939289864902145495050256158064444240868715271507592337435472343590004757787814938031635212997469822892028056903980469229726684394120476982384299607220706230476739231830699930114725740526603569411148833001815336534970897886382743215794029050949767014091542168399051872774490626121919148088100880698712815139498306625933584838829712031805636352055051050113027567931605858403357918379871189329443720192462299919028981489528784798440950654356530268917753423889652506258035031642648650146067228700618568407601088340379681290399262638007782028849681516220721866899539324523000001543312260019976478875535134674752997885094688528511847307718401788531782246666651662402034634769725812056483114035238891166445054300620636325796646855477435625674086073255541378161658064781496620666353460631313028748895809129626287335400386067707624077762051974336677615577134038855157167596523702688919171158307443045977151109684918290953573790560363220177068747395035747761302967460215417760478837470308795909228393790039085924108199675899010425143597013265838688018520372071819240933845344437679344855641753969624397951113777158431202528886077650881936413677696514856025957984971188351431333045429418091284347683661850383944145674320067421306323324891227737474813493790143385928908500421203043677306521903694444425211132361622045526064442583028461218875814077733260809893606228050488842721142337469567670046390467485078696554660614776607354564065653533069410938716140560479880059678665766223733029885747621929118625126826924737932019563517858391268965304274368053516829885034828275140796312137207306304254037818833214093669382463259920464924112060053467127827922121247815276252825473829189293184036447880062214991997038584085867073520560377443510687330444053085072519852432624565281377866651781306522669043285729184116192340640426108611504256926508218126677697643384904922049403511816072224387325508983459590030027469781093405371994970997281817847721507343442973422148835422201140810725653498516656610804880076453088860558528291652355815440958457783839121860270366362292311922125987927950171233365904828301864046212416974665131347773737501779263586318467489705268084000824369160090351341015358623786617653348074409515973472394123736659488283308542875582105009005408117572402778070087608173537919868758234295387672329758713459304230956101874638330891718156979777266665610692424486864892782261039813594161062860287186721656819656095858946216971738846884467399597537250793426361720570803833754016784989092889048762210873613494744604430798921660173064698504196319227261505767876110376713616327864837147341567909351950490370678547357745173812881838880530286957111814901811744635300686689016682582832134975394018748233861103811564588754939577392808099495988499529058606638136566332288939529436207689446915779277931306838744066951352999907857965572679615496845238481180219245573173415304978078795867760298499393334563778154986415908865561793975283414978143191975696580696176438258810258957170889189624173251004177250940794456663120482900902286677520900455734870016678986397746884274306887086418457642283894079506877832556086966879230184526798605966670784659354539362135430861560230068403660036051645095737299552610177398569921500788935675100676943331885659712409603120638046939637963744262417373213980672540967056667578785756996993138119964324637317211120356194506836008429038401081153949491917673922144598587928154604136548339553215115200201377663286862371924907828173101505219460957810778879708411692606985084588760250185043715748528157454440330136182916485997153116462937398384892947738350220103450121117212176126907578223518908316682726537151823244482695717733543811846949331442132838214654588449160722748540657077068738903046057198836231243674490751684565955788743213136495902647544492172077526774448840788203868073568612181539359375667891065878397206442166784780413770014201192239580949627842089949240043493159875175471018519169899381433757942931118609031235339508110812019278464450238052077088110866921890611388476022976973627588055721798510154793475199417094958702053256622986889220968067941780444565315033519026614054578401620143969415180551226251001731773197359259716260584334621006620205172113460435938063302852464728939805098522202285025450621622282295556309703704867286071917136649146198330046775301359173856533384554312362961665089474751023963961279011275877958675325920982119375176574172427691763959278318306038184981808790602542419857556515489537446267621802309639580609979568260430097830670581998988390897207893531939117084988676855694467628930026435904124771403440443743912696667666650063131679936624087614615341453798040888254086040719175240033118078848766872838099122352904647570471385695710569311374343774260932981023526661302861360112731725635584651397827789726377950333749959453958887229344066465833795622549099724801196949257822926936952446500831347270158068366610550614857591555797322692218236321904874411384085057177536076151717266807287413278754629248910607206553787011859261326451972940423791345402980285657968214103971386417584583929933715175690761556126359479095572958496029646669503916405910067645853768034636366177794441988967761111609362249568221323859871431854343046531365873646785441629792256495133832316612811792102927402855837204138531689148037499048291647701188463197577158059564630078809658089184299084893933237304724423914286631563134613888429151328301667329805052335314697880158104799542804030814233252603683851733983990699409704482638598112770860404002655920516264162709879942028355599325084101124846996173078015670012824414407197126674429255782579353242321029484374013178701502536376758133219539941389825804050060649092288722080288590984734606041742836195778757212247609862353669179711826934126148600710118453135376643286427189905826027259623916233653646698869196016833311088912914133748558004168252204622730876847980470833514943789032965628468986590292811579082944737604488521600318761891838657952056320623730298814749100044917470543031395739156617059889993707824130190702660588018876267568338257994401536789918051254885409119960474264754743864947444934850655896842420776210405169169146184689449149827363177447433238434050716779305404652182467082500487969812266894272853092465651443617283664038794275724900370636645954004497297531255849873223640844705323724038978105660913796939701646346300521944613971904159066430060387216118296222144349459482231917357393099862534359464237212213371939532712682894055114153359635687147856511111391367262241438677954499044629446326170357895094063225953793245693604132408108772011392250676258943015552221009732874299878727144280829325290242959192919502076301000931323402532018348813022421818812768835175484222957048355868857956826145118412650789438477424336698426814500283108354397693802152263141320131674993571756784414655625503355171394715016850124557940115179513234243143467921474523170842625758650090507483410739688761202001913497484468999300612291389567888759453142647700044570589972852033521806345899409003677301549954845601443261072076656103894709562980095635077169866784038117975788591975984862066562561266298390331514278733444141336364604092346777778094723530134444602775139845204969805028777997676775508317473937484372095652967518884093559916664063603422269423605056515650723124723418209456460676921051527081931492969621302554442680856232957472720093195466598207282950609878255166460405639383266131242908316263937686174595542013057033125734322428829134712015424358895340140088791565725928236673268256227019450747988017415753074462639999121304282112180929915929985352060682385588973328643298888896698197833500997739920681156257875526582282278215754261019220287052922513698935123259614133813738215774349015283325564137333715327141920137049089430794080267371321521109100619221041070456662590343204940850318451447870837257186580052242151983173323602383434153167903425985445139331445905447383861006434726910535937741981239149450721733303956648842532436946892207062146139059424606713192102473280766237173667534051885306736671591301994704316327883443524763843392325501690048344055859069902027226823108176367419346765205313154447796546100869111133081390397329479333728434126573315336205842051969291026481526298787187108670651841907411260251470259560258218550044330511290956270513093480104524235693200382152877239843152597619879938912152122911755937132138600404005693866237147275210661765436097925546815148958742140803415065480530250998729057208600275075651214886697070584039240769882663310544137542460096964694214393832701424783676715302697785211419083942999473412593260967140042672029985623366205775838226708140839633654062590124987244046794949525613618419200927021234440487654798922097021776540369944937730784447111670179251686071909410070328070705548645249151517973822832352910980612407768882542259885606755537672380383730656171228312519380312427621793024054724702253598393257636015662301505501436594492585009374081904750610024326767416803985567807683685131213983267326950203101101559027014686897438072399682218575503637088920108517030390910501428463913049362440087578302073235602895137884736911566389191177562942818212462281058101815745404929630455550144747023753102795648178173503270700005119672295972350999278209859598608044359590484310046684223095166147682688601901565791597462327959904958957636178123833857197785046455042466819260230472680846629141607388650238509157115795082180553740280646623660516853813114292648598469033301295339133323423654866888440690538843212482483265306813190665109562568555776241245737241109274549627200345783853729449924666467536995176273732529238687953740534357635384604099143960252014513909490417077442452763379050468641495781886243203736203932339960093841155498112463884038173567885419151810699372993972766626120263679680960618869078871971352045783788924209423243574569706481194008023955474011593918776706162543877291134420809484195562918635382074962429851531065408957070048641084190161165214312391832406474739350563505179093650661198941429545689654705266463515043716270802832809737098601011061922111298205902901032021720655257829145269686226607775489713227203044305679312546447819681587930582489886192421126173149162256264323750776652236884473219000642638525621261707302464461757144516873080624607558742793876129795700035551872048474431919126046973027350749732056987411268545830942262336606713536017080034707545842872741830234739654793314483823850097531929283303734454535185181014362705667401892708969552023057626588891814908727088682303319696762641336908061551765711587816231466865357028948395898204669464969419097615947192109907216908642524784779431918939983285082030938131530438370201862268285034862469342104198203507797968852852658526676069452356999104053074562055158495575195046949591135973687925026195542354879612249593754755261905993739045293975874773509380452040840121026148561971430180561148567505996284022682694831279620257976851005491801002015266863831951076970792736080998346467918312384250601554483504961851519462538335752017910764942116756718482010282364808588529668038313435127081333219773109090934613224111084680755413652462733837339825365766651731704819198214652032708939329947747434942596630707768031296981066117192000400817003750381800094868665929827371375782126207835109238823342550835020300642231381816490690166645330037855620879136038490204602445602573546978100073993021030219502611203479827291850175544419403168154554189097443125879324283091503112388938484602486194786034080485417723450551716447877109012727429728063020866902446980194407938817884114977825257579638066295211086346193951596741130438518424302361964348708978150392629817491091429181768846433273785696332977995607829632347694932543285447714282771814044866205553544180192579828109558545234679341685216048583481296112891737446785549751442865315260277654004832728131279740986544003315499466675215601195448728946968408389900726890292420016273396874552084868506014262296611529540629538898339845166344193728832706926936313912011273732390238402542852927971335404626855244595019487558340300892320368476340572904600143582942176118934402271885743907395602668463702123740352617386443854679747679378573593362416991892264762402405389280503344095882794235300727968043012599476402406568989521920131870990463948343202471938405163462854503368031624672454771191848210594565991213426914495173534203845111130871175132845885794966070028094575560527248466724057538099111719051372461656772627732966527534119868058093037534436170052652543406752011818773609517017652513025882424680593827222693741712635933643607073270850655480242885792453740023567730700764313678851018455351950441334463607794438685536286740231240322125915989877297334873507270172721704827866637257550925863164861027948983033210319027560882348434533291842498823419894319604283905994647372042950271349926651683477722862653647313622924792293912948301032784104028865800386413969554122680144790161867943230746970529207317288878968461884836553578327571843498708948373341923666626814479057665224539768248978616192792721627231717028777191259796981908056110627737143586387013265660127854013301142631958490542097818092916016741037069314769870439450466564966330400995816174881030908545167662259570537800155701135382108890898142712768874247052614125883520588573435392266072280314480132502900807785318944618613191683491655653689040017517069099051434461829411500787197979865217633461300058277905656085113386505108694272558338957333456469087671958388032546432677341328428424924721390833616435407875995237188801547233311916272168685056641883891245039549876752293368955507128811589570747342219019766204967366370498596791290795517443969289344232742463770382882038484065773426270445101959384584727803907982242183052637036846447185435539985263289753800810089862958885844872051495919524059786052763021121604005033165892515217023367265981812131696219539759549279935989752602789876700469741731114966587763145362568908554491412483959470415322762548853315016447848416383974449855368452469955588894644361232853355025280645743024003594416520459596854866506923932290744206480639951407181283868163103361703473664237250306197992268487784185591004152078028786513732752665470848205169085966816485292742697340914882992824283741722582696342744407233343294218568798764156425268899790398400415237057275795329262804498853544515282166059823686207499013937475395496209931250542924041245753031688904911993488446419723156203182487024524571010696906232433279019086438660535933600941128601617764960101107138429966695745545096780227244984347702602051535778966916474196030255978295157348263883256526790430914836166339650080683536975370809907780947112454523296480163485507765591421913250598184723744286521674614110149241792069715372765424183725041058232448389797870733688304236648469988431363279485151424265339115019776803581176114627195945717500356076015954834278831789503508157594991215568248666325573145936579719891643320342610574292917480978475961557501527797020119788288385265916603022467920196481958997928054004863800023907197281422645295526810605222436996389679490777997541577280264232826140959823635290226874601764696961151228924360563882278269726989126304864920899441835399497311503438439814768274935825658999230419254585474486199279534048798824239920096283970657017560753553027178734574401713169325697283082856586749696866705861658394932645628524436976425295879315155360535518515252513440798663666610797689243283937292000339550790081923441424278765079994932124811838645719035457875356943119375244981152179475000342842045748392230768983722408310449072664979977402624149208949377131627004698939372259215508574967735858695412830864911897387295146065098851241756843415074745768428807321832542759053958794677362241461416639463481680343856618028170815599013796777633501619131232701960579638203914727583044101339957940644502618890258183911259904628216125177553095266763575554188381077904427788093609096358010781495863462197498449582164560535085679436436141693897991710613344649669112475327276237307159443007810238426564047079388798566129111468552770801320394016339775369243599522281533801251035730229025752204690723339218651198174742300147365339813068566216436797073195759256145861730923768150925658327042571919627641883810295345861058032930334993975226046303869250824426185282105035438034658669322747521757935818542386538545203705387750368378195635024806043794242338143754409910626020190598431592921490585564994285067646916426311430274630770669479605113073619127361406913333790315226113067022189869064961589868444834501453828491061886661169766075071185496434025593180782264547207050941564160800081280422952986491432325871419608547291152434302857895235864367863835826298838808109107201088333008785376376319746906404019132823662277571541644998110771409819955945982268417336700200289515967663783899581215535381822382318982243478686687066569307276837831159006491830473258114535638783283310363551031859928003470956323606845977750616021237325009806516306315101758632369632127550461268717173991563131853112459198755246283049511147901492799702791502285684199359870823619258625979452815234219663084719239277022502776116076021268813121391809259285266274316557153998889704811434774863874128318011032048313421931723930910418323473057329189226761545596521539107160510726782481256155306652993980128035702107791876372186648800680191957729159487226788288999422664004824964193574915728745818072103181011059425678379790137990748148235849931684915331126051395075578025590348685302498629023967920384141483481209268618377988752231643445903748328089778248648660088708543698168943016084638280068706527815137106774974856308889934931789096845949057458806626269125105055158799953329481938837655608942979453006745317281238190604045480154998481502323653619496818641322297909457497935047399740111963205336534285334179500747555851957019112987543458579119281236134696135231142717484532926868183241782542839261061089838775318349841284224915447708417746258215122998048932920860466625834775528503068886239224858140388223871132827168073330389369406832388003289982502748028459911981333739371459128296098357326528925884322540943811425853323954076672817285347946073770424744098564119777023104171262573095098687124282055094520284267790640632545575351544817231854677195044574203228515178237387894403414749660910688629546669341726948295889614047344294787135088945506356698678037941581483253976194357330981054423049818820586123079478250499545831941173421971140321035931381083666768012673498410827156943943529030165396651618906850323317936521164105110463338709261755179025539968145678592198461176105697869210174295775194950686956033263569942074550337336362043506764142438430206340580133272040863078529854849926634263454004716032145209979592868658739387160300082387747901918180527013984519694243763869013027171128738497116574810774707857466266172782009626142298599201195131480317046585341333532509492072649054451649232037565658883698389496364446570972149086946124108132460909162871970381988698067994375275647327318831218449423750277976807425094846216846112202577861432690096745217343718022759071198367882136360266591251388228174780236783104839487215400326350614897883490358764759347432115253230756743778481432137191140949970994991832209616593030923756209407633164622530101572225150293078215416747170333387346837795074954738427940700859669135973848477729724636701682671782986669294592339352045680488599747732741927461474819214465348488738271457941486640748594079817968515959432720607516382147562488772697756073367366273804574069988822959282930969199569471500141478697830675432372244195194987339050530665877398278146339537286133107127954355548238192564172504496635406463236982106340815324730253232720940362759935380690358649764307648212675254935817289749185510654111834838645354302651956912763395633370031660640427455832306981730942016510547317669158537737856390408283623669791552226952669595063375081844741565097464449213999255040750444675256154362599998856341587314958810900582449705420755018604338535287090756088590301149410209881325644616198220922476058996163637113818748263747223828691628784681668091990109248870373985703016086562136768409587903729370102124293311838869048791594686250077714411420143396447925706950351367215407884759473415925010678590136856218088450281546955919241960320851477318815232406467580053273726470477313032638536170924224743999621964265307204989566919148678094983188872138666927891967555601750964964677889993445077290027986791952764006761616093225531664977142897237716061586342166921650311079585579790250901332748215631131046752482429279586362969112344305549198895437899776488600050387030712577384915645716145620006037504423083107978271238772870321555227703880932179412269077541232049888443469929889228855386598451815064399149047238100132092393530641341004579893277435686334476281196696601914813889837632134409020788227091131417017493834780721305833426915019693845552207986189196850416115100665481486366740386141832506673348941749759399301614370751592105929801658884095116887598170931900589997761721451481053762022944429158676905746943716341498175092604706037923416387270963592883053088756248561554608939369053692611319197966493305491468241288134919356652381503497925319638758257212446242716564758964508317462578060753574698782481178261360664810154165871547487070856347540585919564011369087526614637268805843465531089615617986175885741506464688290320757725755446439002694253170028401117500666337856929279714632060927001800692260827849399701279411529453550408897712083603049210287793198845763639098656982044685088266241017557008204583223855005832907558151827459555832656370848441903862459340049350256232957872728753254678421497838809154646656857064811759813731749743432870395295376384263634400796653106634352103571998980216515142116229541445326098420673042744095450811122511081152595422519699223473442235279369049774558292127219553379406927113714859785101652677374150494312785450355041028655067930794646478516886359307518755439894903166449861077285818570239831922514484161719835203434790921073106907635051324021782744912261890852278478362405073241393932471528965028271069437899964678009776044597962395223089115024170297711087971409094644731245307569184995687288348168917633365566131080371903445350653316628432065630157612632592499362645527205699342943561151941821065521399671070512566984167565308116831795788237914337007604163466358652801904463554644698658150893026429352481830937559194182916328497102914686946451316353444967557018806603351505818013251389872528734328963275243852870851023668110067908398119022929228381697406661984101373279170256660915870078105587893045138537150875424183517268763314071823685667318810329501296588438178795373972837163271163856958932469557357862393251359970807267601463482254820450535703416396784317221229088325228652555594785445767398128252927135281148544334184828083216461046516613769916415055577497378826819093850371803176637681418577939260270321456903338398995825443863998178918709399809712298293767638554035866486869210250644105704573305349584651837969319111208443150270978015067153262279950547012730135979847024199916159481350262543839599070371298108047342168960977080718573764188530764004884366666544699707275452705923201515344598409408924611000172324717034727838532486291417612520870538560571277250531406352110207371606537485883687131273127021952630520129425798170973996780633176441353730743180351870018022717014977725483337291353851426348216432562214797652149932588145675054628372827001442179948213334430818320966256387507371007176514349150447958784665322535096326502508725332130723997648850634528214891428651568690740841555961457979026242033383533994033193943928321671567590997035526918652042363950930798768195065189889019608408916323361456877783472080707299244118781584295137740703795506890203256257690193446272794561539986945337326743254853082390855350669023123508033960590536668457946512273885270711061689569621175613777677541200232472183271980816979130134636946121402317037199898636426991829890677891300782754847201963298942223404559615418814961272700663521665714423208769323717496423099578387101888991932232219878599043131403482951700092545887688589682680278788500914039168856632736111214547953137594310524724724678732617887157124326879383014294366239234756155057666255101148173977069129081534951286660650547135310569357958081094456937942388893665469669387828284176710277511156140220139074951939853378706350974113539406818634613792544361445296777236815069764193601315203034731319357680543662756534117641907996158941226976533729759381323416200856577955505947756840651819603019883855763907820104568733955032989982627598200522975397347758697303110759847799079274487012297245377236621917913309639439784042578398357310365355069946021885973964598603388785490531450650368130508172352660339005600950403799666127145344294470764586758551931213047232141675331568152402378477806261564965803432893867915311216672878735318696018093873639155855083353900548528953397718745177828281770279161954633457942334715242895282880415660981287729487271720221965156157983297037942595557309998470036937026121490696935406440326873225604111230753554740263252324678221722574195566573292948911768695477896613986444459303784233100751941602985805703087030417645560836507277063252240250541020236632124358790848934197427197678386013151707278376074872607656906971523879749996618638372496800020350895537654578109927622316433060593235230730257575825916835444834034276980395686493742904367461161431653684152026490656058547309662753627151799631991989622764322177341059368386832331825534909007090191501899316219456203972561001402842980997102740502543390779383421483429050941350655178252122895095442609594675426104021086325534355877108660455801500453848845794156933281651117138031821257157530161592310731799608273048563034841144669788233057047320383192495804349431767139648404061168108951258048252346780068503494423826635493663893494343001238109782729179372164242736257249638575183852857265418032963193015286565711687394543037302031664433644559536344648614912546093449399976322569159534274034447783713632432211583656549825209262778139238785007484847684748958787190018815045135488586354553267933276606273232197402216401920139013618827844409282933077447702642958037759412105392127282765145336095441158919666985264581178352690223548267437962677556584660169433537214083138216896668721736688101456498348032094886018813973122356519238140695986186524579301300961728024283777215565012178208839196518948389285920460960523499784000769658692444586649314233512430769722792253502058204340333783242839391411790278959919265567822352024054971107307338019712343864519550851918947641366381641984256677701076971296271512145330578662888876773768101897944964890834513510933033482573624656527440539364483553196925413473480533932177517645014987190850016946822416003559639302690008892761262191917216025193104522533584756253920930397003583614138948691909617282833966435616850085039849466038803329659921643903992807890154304441616176281411279420721074756132403503911639987649640710470446149755553110221009792738089003636886189248954360938947460202740810389462718228829022748942980946510330770004474360032609285460723247064758530759715282298356414328658231041307260479893610866545168253504954719707553053120022447433493426542111881084472439265544404740541635212310390194204535906280549161181389108228213975880648934549766637377586940804952478043983461824481283377492563704732315310347819863447888588782828621524233059733398622401953770539252667903049120002623945877440606530177895673748553814467822281920979063901175571295294035360638076536292222898751972659322142656599353594005530715619858073884126335591968748286418818465749900575943805561989547073758308493647975540964192363419147311473403426714616179704985258547664028764166371200766111733078353821092519219276894628737097555287649434385394001789514972956572189716519497892087377854943541543420451335400023702689748505164556204621671677381263741040108666834630542043449101938036621779143523264335037140440554789247257119768158364339032335853641328344997618776005187286588041652642209156751812162147296408605552560163423187752981556534180022817979547567326464297285726070495438064588370264509374823246677425727679807998411940699493913291426028164434992738118264821154360443039118072696854278124150520013494800850200349265788346476247400025741885114220052517966596623644374658823480720782450617184113305391637368941732170098397674363118934436746743946146546811621407995427113451647556063399021047775119866026538249208691185358998431302597562647479291854943938376245723197919461753674068035081890403646328188185790527184125511220574777574482097005659897982201352178112397659196362276648222267592037547885034556335527292577972733937779936606791626816644536214742433213638553604470442142647094777988434903244761319610788082111980196861963469574925711555400693552634179966889275515739751721412108949343871406949544603065797123647877500867742957381295046403781718890160345940115411958867225746426721057501890062641535557133465936694921696869582667259938843665532539196262528416139769419284778862888006475145642173985840779807249550708489213086071370751752086640673160784373906976800597263388117464045402758834220131144031179585373462742544589319434049286075448125901006159575527824061721223425026519478766803872303990330385559072086242697843065004040206466496625237847724587633236359550008804996094237050498907682941692671899171895470836120151800033748072583297720605598872491838999908916270681197094681789120362991088735717327937443311304788079104378897312344788306379536553208051863949903620697601876476513656407962217906414611253005237071120601937453095284215411205565761186116899658056951151633289595129263385373311283458825488264478629721741358067839997705840317502682042359158065336226327709928369960817400261129902346443663738157656427439072945781551179826365839001325441144536550202759684546343915225294698785763984387049349044467448369190386036358347725852654798729335179928120684916462111549071392324994109737466293616141856701512893766627560125597535208365383219597307362097571330256676606633890663278787839914411876914132443384927268803543539872362328913131992604942993433952198254922974762722115397586556547490457711264005691488996276504713522592007739495763391326760806113061450155180630419116707839676503276909138440650160827823099645981638243084681122455732634020949506559324067733351161252583926764644703014094662354711399379163823633862823972182727842027681859848092743327953721263467043116551061283754203849159209522845540734838916111344665436146512132116906777140931023752499149825781307096691017340457097467678426567419498542005630895297867595115495407056257387076163726147299819811696642581243976771776171584099918004780737882116986320166440387031742132387880149839484668324020733136902161311583365101281263642331476137014509400461662455487536087345085836398681950412915655252583724352525303540099674330435641946390924925169677218037879259685238863712693325602553828329591476479914031830205529191895471528805367873425926677897220518752623041769940245364736822873711156558769201092187443714091735017174059263523665521238406313424954099434423311171190916174949015289359057975347428508883103129670576614472043352176279596253153295070476964643153674616721540572669493796949603375201019070655945985887342494925807693573694412366194817579099117679651770323380256236216654749556044676563098819948595402813956958829095851235589856298091507581905516770399111767162791719629578802312725095834457661932282339056030236477868360605626694092465420401858232490599495200960854825431922621560858751105052731284535421656675040500821884597106204086034212579236659839232960462725877643968334449454158034955049401029679775204490699520850291567944827366831426015445070351702685806484772198913889957409632806281258851532277309730234122305122389748146885166460576631487099270393686310979997819073384863010897244666072324679336617365052938490932818804600279984597434742477330551548663526234210472453270008441301858177618096788606677906640907528411566071157911807301244550338097106496440345497208878875871753595601053543663021671090823705835323474893191738118861663854252671996130532519502804305837031307425478128080001608483000237986103556803344842587660786285540937509666830063718615806873319315837852381234679677577380227260545839694813832623505936371691681971581776694000114549385993996283197994086584352770409162355560774943566975521436382412244057934929008830760559470702547783306051876231845352788970575490263166872315972280270180957446009819793499069999698014567735658583774410063403248368659425120198146672974341434157708545037583556495115199233488776416230205984522051276305362762407982220324841312677934444844118554673304173972310037009871710642312055900634291043035115860684859022208458244010512563811773266783245361387934490527299530542266072122808141827806147214730841072807352775636912968918589361645016818730649981057487123592009762841755099069252709620043086323767827938669080352379919802827797182301492363174233337945434167381220501478365108442836642646041957047769724745908652193908553111327749883289372255166476553704555849862775830218326836282113601495835825240403190607297524413546922826785196895574081861974323942407092828182316328784415045729260274289636465130881789147564154127303027895215491086584002096980998979066779919108304434701211306439281941989514305550653906524287622550080014232294753589952148219674913630542838115436320210740881675492394159564391190996084690551312849139861895333553424472091741826649750319367487693338964063203289799933866513399022484182956316564272225358225898727469052927852349116656592887508722254678394156814221112909684197364452741728525423744844229027892843338767343218269936745403349311718558665902346582210202660650100951049382518131284854013638373342924394800958831262518329933113260819818120728795534265927307470560103234267521222954027547434986104373306728921190228966726410636565639201220920209597315929725266242209437658092661978879845536282891166691850566054406881599487347542957484378821341718210087467157378948699863283584071906247153585293956020098519867488361174911935259804082870869926035166031187490901092227300320707909880491878953580379210029997825958182866475745236247534087934740258531612951656835984345042518358929688702547859594415550968714823886032829868162448871131833915767543559396273781206366936861733230570313085494969793561989982184331640299612954855615765069134028878780935107554296323801901595915534394388050349529790311468068242903437500745562632512960424483702563534004952330302598556908734254675208118971087464537188512293509688698469090914858331187656087454489921335488513526986396834347803795838518375354966624412635872712011889695751213274982428915450271849465642095706271097417298439772160641257098555594666764757622433238276605962922929364742517150572386517801461088825270892127024594146412016318525993666462409443537549427315231142424044189432754279003152377198648941399007877642995936611842882062842932512851890967861849041390775876748165357995195163970606767415912651071424020115296730532896377654402931572232336481816268352013508356805221717176169938077486809515927975469421374161910632186237678960235156091885376464189611897552367509133617179184405260848382534407411658255946058092357984210153870913431646463271880929350207788055493260138661096583950273634355739025510706226076372724980317582367598425288497490055446912939044320185697098147484127262957340868922499628210829816444151650907546081420248250568108468462959834842319700053118188033746959969023033572071605185307314584552575011716325110292165237629340345140539413742206783661931780466311587549483133837394775820005872232910111658780593518824632564519156164200085631627799498289475706991089738458830860395575762193132571430884247907264003570199727376257487877601138846514487774554525983796058363483125328613466060531485381687045659339718778643830435363810873964396946454962243496706215589459551837404405035518077214895204246110446525013130802260635934657389984026413590488455776268855081761367263884207078245523691635525295486858841553577354642970779009482036931473237805898623269000135466800323606110931086308676707727925246676389128260347476246600525271857626384199465271148040676767912065662644958734769336823449719809682413523241249015042769417550883073731843196847121469479695423613503912061141654394399031492239392369698060744487137078189103272880640238701800591824370842175342522742225373898824682393279744073458155129819753911951070132615400945441690207213669239246108667126652953688808555806479482607747654438902775521719258866797704541496037205241246874335102806946906534210701760710951696998003816080732569173693383884768974050220901245630819018535016189489240961955862313961551490403304000445573184420509619210432283454481090366114430123465870151911404744325921525069922590426264369312753996535276761497664672435240066677985650972707097317142158230833131941000311787515709605211673282340099392351462977744276057824400232304679169568371449942431099879211792890050208433893210962071324543418878782405393254476400625860547746488657474590519398609866128068604988810139471400755916808549398414358468242064901499678727213104543678000387625997365266317789795487878399344634611646404601680797840233880854526114023722658739229774074861172552940695603477592735994538682371175107280765647788582151515838071429572605912050419720281473346627094337349383804453723992971359061391346067279265837432809130011048034598037511853599747844033643089013470124697123203827765798305576230373810484756543121806766051028468467023680729832823265697876416792618536977647692280090865149725153093886588353534196063739345063706031727353400576829292377256967776272954383810923947332511053556325791679975208475811548155274540472918294968263474118348888173702909783694371179882254979049724436007563506651203243052303347134088836167353536281708586354701133657366228020036362330145614497441642787661235536566528236915793440774797955504306055039420718868478700132390172122159946653399195436494703786442809691966817271461386182314140812524772231468598249203536304836928214189938345752501470818977850156070989192249738071240351373712136278660003600339518034075392155844593531129539670431287128167079103023565260662291561835805701212982336584094986376193218966414638909865318206818904614238847712507367277439104303919128840458031186679436929670843405390993417083048103941461492058661003208305939282055490375050824078085115648070986195434720953177822557912902783600820075277871001300962764088433061032625082733906476933345722698338082463809381249499614429002270157064633312790414519875957991360221563062571211904606360972864737626885249437033632481827416452632650654075723587830611604354577771570211309501310443405601618901952939501702046842252413892930257426032241869449559961500850892042425661026167957820934462066657119378234345825393101256469835519756244166955044453292582607637561641377890507274157455190585417885310343063413360593658387099742299454471012633258607374385694388153855762910026253655526959803351980008856479642180417098411550141200848919943120355432231183917072070254290350777342499797248528601483444570401251551380628044654401419073403620054848252952207739342468437278241065145147060146432904251576153108376372589973299510413843132222725012306084514401653819961752085750380068220583235196263819851485613249696024072417588701521592645769162145427043539461945054302114910625033838465961891107383890419436211855566953912131187722282328323555759031540637453871060392773502047271894629255207421642663952539377475710880561207207710760135720288361264820268127454022853022172122442464359955757967161353800782049273886000138143845462866278628891521364517531815680054449901059490117354680868700162154703812785861472037560832585140406511620115298524801527107121129554891654040924748684429760594380676868022217220103373815599364342577301589067562909733939575066518434085685446966626617555183959060940259150168387625475724454694209627893393902656980836975260342581163022046174477368334560224480209835427007572724831833157940732296294324001836659410697177427991913438609114523619459691643452400501102476840374417996864401745718196966225664778612257091194924255180176524012718499983997647675174836244397891056903064465737637919842748526115717279173891537513015851570476859444724564503997732301454202493719724682226022883827966993920825368515684851738220359225765961423240109914990827493355320942891831872790712049954829985070938330471931885596012035496465306693222993723144157393155941361523601552363338520612990112140560239809635678918173546144742610132878501903854545086920090367677576340742241392268833802480307498046407578120656961775481368752361592601671146472500340919391403858837120849042117089194082171692521425885139331853138666991927331514096472721837346494916064504399863013817355622108159964022112890235465827775198545687797359650291940169295898029202043321222445954338748464854097296215598106225644321059466092054158863737182302166902803327597886764686832316282826193540522969680505334991394720853360821882409970310886743918693055581928424566492105419045978205594099949167218733179016867361779644774879873750211803884614278335118282028842030990184961986947259494180327971069707349648450061688529948501990394682510066670886582767059679754798678827024023219345038112877563672002703214131711627008579470706989503408127019276055721498070096893287235221663902487633902598981385265183275036576457659586230603807532487050631741313301252464038094997391088049971999502341057292756293159977734869800646146768507843032609784466399134319128306724272855851298094438965379353398234392312213531666635912272029528319579637088238726975865836818230572202886603111858683782756020523129123305774481438047387298523758588857535852660537193090590263164716585491252131813308700103329681307245783799169576641490948914918304799073095799591005377981664661140519938185801357991205670547456685410070590824766147746969041385461328870692205474105145375090095300049517157389174796602387864954970220803306329399457397770352579034644363117685813594274402764213353515927796008266975394356318271279942033876570600132614126100166140736657488517318932009786283758561228925553759581230192571611994078767380253127313052148354502632150401663689989208311576749859891358002108106111753099416951442644947273485649880958463908534379232237236939321800954544528916052759726071516527162863799020235330892846870454119984664839288945409400978660860961227814758169633436382515861530260499815300382937408252010332775401775411865134461314788105420809855205213230014073738396244611584588796248977218236082042640977930782806146183763058408996427701130520690054817838028447837682234401842032583161999692445486355738244290856930419599968364184734458536418471897338199897233218427424619199251368523730496349128592373840958351969471593324492550161665384625536150140208230602711492621124665235141209577612885226148592556863948853823168234471522502250883113780431163383188454570321626671406752524571764682005436836870543378201330388153044153919673526217170165116704938380850273875677629911561747483770152217701149464360377779189021749784913707242362399610898577638642268250615102455832304973905734669127638245091568914944775349895725556684077654009127936160542816740224591293009531096785385562412414792449369027467017465006911541730459702862155911875484368937917856585130992649274570068887478747366559354784401261762864299830211680316873969868726030451517211748093368056831022981463411022121607797285942185078265669558141951106447609760231496007848803041179630400149605786344356807043874224769948832627607999252673702229465630207190164820032249004520910646201941543830833258745040813441996195037889873844238177308175183509083383228982889523244183499621308064064102559689703481796826291986960054216904425674336592749646716424326401015076833373463886477513528656357615121136539283705061394742137905992013763824624429062695245099512501830867793554227030849596296167112175052013388802585495157376142402223745345431633296097778446375485499076195149860227305945917201139033602466909490649235694466428404264766784750279727202895418276692933260837941125322754157982812262938213036675350327224487444678088086482118279301402091030591411942825380551520888604525832981931905493270004543460722595853386611926748715197147558330463374469069419685867694409402830345518019836915325213210836782179482414929798572864336131581974415195849843164152365085600362964651853014891546053816688226352409803890161009246357069015702794528960684927540517844711956404534977040749498983164652732067358776149306830142205074520146671391244677689191165489721209892436236942097414442821434555378126391160775492732955780278201964197908515499190078332776761995781858406850526845484646475856405970995175720270224827058058229905608135044776690104824604082877006762353884162028343811720537963449909906766366957113332858148143063639456455075905899441223795527920452574942773398263375565538470246478159951504805468128307879714961980338880799637434873620107282250939195632481238478890223026739241391006572651638987984088893982168898860582860888765588207741802285637122942912232370118660902775123372402144459777045540185013122928450068994675225862120107315927741064196550400619852419779151850662561806136973592554448571089025098366174932701271138659564084808863948195706394449080074274277336851250984628632649091534209658009451103850770672084339041021883827752510628184434206495031203382777245779257807425757300763983861594786165388271190081659295075884832372012749317612880185238955604048032593509542949198332288700145810688389707945100737497014398580454043681810900386142434777493309886249391216345191359817184295550687115249228725540173861677429072446154300423984920875301162945479823612906451790756212833594226111058066357133188795621041777686588919545331279736883487376189786064206633379458951260696133407297186094374229361972265450872974107443889536288054675128713900716625789026408408633175954507554728576635038876235334397589775492669740515798497843978489202270529565353176848935621787552792582172055662579782531313841628973345094756633449321542643513213524048451088012118236449301366993780344587257942006419430386976948068804656388623060301332542208141795007480137518323066809920350180512227406497459451886223069517621590763169241243159736743174611716865497707161329011916554001864529962611543929201192499794547513936378537894734033138722850077709769687721173463352452372476665882699647205265204157351663877778634541560801876938100957592273685815172106065992983397288369760940487258580676105108735102060611329325000567491486305163108568114944175792319046313827714553711921425217930251225332862306408364804856596664696123680407668363568587245093967410003338466911363934232581079994231366398036634471007614261647266399657910117012683969599154470391270256093393711705595838574994480092168310346520133486206135484363484681476401025176461589813514882712367093203985138886889010030420345166896609012924020503712531854938198574461025768920260392463036520122693464720633628470553139532446813219794680573407675616173685416062817207655095746725123480622654424751955971932226762738259529595227456766230542187473932098657161310080223517566798410552850428662377370237245158234293988962349799224450156787608241509290924847194674689517735184415860791643151393298849620596148258201597177108353852362770985310851618833127107978017117983877274077679742204784745993699572498953301976948235737202453224387273751427348848865420044201252973051790317611271003561596185939105938556950092700869087418541549326349961528635445959575523753197117434882692599763236191216843103607925043570729385919458438512602311174514638497066079468917014053319900287830205039742279415571427440403345943020815366098882920347592671490279081264571171293191831823353912406058192201578789615922213569052752204652799670244084138172905519541148040214025087298111683347933327617357023422893045992707698338245452149584294436248537827328550987509354086998444540354929746362974353350869026865507891192298853886744696034915669066998583058870489949417508566341437656412572419608865502566093214599471855240237781261758138182030501313215594439105842434275399549977094475140797233808018929539216437446722894572993337699178415311560066805548508107710715751024451650765828828391162587898860429546566821551241115965076912185184461367989757452795704433593548617377012835954694968858639742006842160412212992349483250481509516390959698080388181461720334636876689414996426943510484391668637592206079893635237020904282224824840587144571471865070980415455537091741306821346707218367084989620102530647271109733309891102435632598543511481561159782004872456012633373908902753235432866836492448266259856907341831791303001808422872511711770852542679093518050246062158726479646595358668641075748647209882336164826328413332243074642757780442355327708377982933529440645331360043626244431833178514941154451928342628770206828133996455635002444611955872158072091608439586355637207294348888616386428521208628623305173302861948320089840905065530711729074010913362722158376535483927887504175756214816509366740546588916193202405076199052473945313398935477397359969154480362523846912551467538700258522181456690330814746904029418871174276778054488862288992804711619038586131693130555395397934716506263235253078246448097040649044356181395640402849479195202682914999063829816343239657583262855238595697499659245988134580294818997080680212157348657912220436778027838075519026351789210775465817502402430125375418171200914629434099340721936280380474002438473095322735606932136870644587448161725387687605489191022848868445425165393682674529872493816460745415481695665147865779458806804801840357505892849702169787048825553519307075906369661752378117175284807705576366860076640274511500418372120683979139610767904801591646851316099746840288029674815820216569652980681142623981130478543079415740275082089450550497335794273971382962119204853052599681790578892726295111644924090476507149570916309238497621129512622296263029905370392939565013268283670419420439310057184357530478921830625173439811915862761574005601004474840911742278459125580444611351405540867238978337080294815534162729123036302646368176857468322658559488650327494331015028024797971649020485423319588012345640190665529336612079469748342375595412619307136982645795203637088987007327610416346131137805332139790816652806543558304153215928227075898453720417680280377161919541977898301014279291321086087118491883309599199045805006969838886650943914097747211673367475498080291586288793447802347590464237811012353679994454956721917984534429976824838584681865289804065120354835691979579244213552435880032939337912568476099397485065079443114217861113014279924208771428538936092717063328605224798837639413521698201373333975426696955298783008357969682478186595536867812166057448959441510174702546930548209280277561561095002120925045797622061204357262319366554661834459012564157523285263280709749609455569777177108745116713716116446310068613756579805570720375659267625833477875580494675111124707722821131136463844009837724878373010056678023030664570295133262852926913042902314722802270740014486518833105329654762478764832816711221557902041828574035525158356481690491441881920057595923704486911522235363726711425213849522493822408863604387168066188300841225972515495351964457437353100472694743887182653401629142984473638230718707626127767785441749174842096849778340659674742702828634568332222910872397994462416999053897073737804110753857682393240632815698145226325013484309734183641209378093234569570496197726549413341026777618846020698541812319831580783409624951302923301220677453267500754038922108559327621920764973484851010324026848210423223121235586132606594212401328585079363500147994518710243203988440897193218732581884215009190927606553365550824634219450968352978775504778756060126105892371917313602742776985671801575673200364138055129994475840754565977978064994655833098109757789715323646757136887650697475150096864607552390123600417670846291704032302549973074286453520180754181827219519495095631645124523175381424477857276200746146406858411889903623955275653325247300838617278527293681708203581431465802609458248763252206769456126068295318641360393979478581713468060352107260462127424818605016660005836552915129899314304585910961230390479108496932334345703572223303945347721858966043041603108942786069828003681982067959366201630586611438231138762005954165975162850092726301676039238997200979141104945993265829891249335989865287321313576162693261266052898781728387671368882869847615345111146817948760177606032563421791397715622429977729976774328686478663331452917475918509001052339595142916421002317599542138710962240288160093305929560837026540106588389734419706857534433397193144637986957091638804052564712171495907484330910497337894776091283102965981522543314887845272198219898024900824877758340767160046660903317094613699865205279492690041342132151016561818185816286650737480308539753301581031546270837125959141232556046126805316545445991836340988825695527689683759027715210789650743732836900433442174666815134465709853859819938176746740530410107018237857127419079204877190257645163456757995208385489135504537284680226465456014811413671193078239297541046265280692860187595893949956471395146741351073646860739775433015468491267135659039118912507361393749817775371572834662656956379388409880478520032680969597903348546275388158235589980027767529953203262555982622000302236580571628500871870367594435813999613543524648122513536107716337296926571878052907958155187004842377741772684269093101433419663697895139873588470507859434404809047684661816830173199348708632203311807984345361347515361216342376836545924589057513222447177575009448220647583146747935956903960017481851414955842554506582202269903077970847951091753446393185327496148379277662902172912001195281451534602886725826926834982052777391921306016828310446025665786191723145368278654532504766669457840286023122909893548685902609739867855083155028920665060086011236797807340358570687945650300706040603478679867106330049937464041515777297441906305716050382357432355799861605067174183003233821366849425621651694722337342252672898074911494060842663250466887324223564793484707571224613579200474034395972421012584908879586615561372710902184351003536333395020888920121285786528639881801031547065718667379930679668233841598600085331290853835134143261065430390648905284446287181041620624542697467964404740200161870843940301748720595427171930111510317130486365697726416717910824938063102251773859030272498575363447633064208273225161527965646706498103361105866818573142832402765097043415018825899855647358842049791318350101414710713408983708386954382139840673201069055794994286348893698877011591615082655859318591093059994984601647302987181896773412219814169533835456464368452825198285029717135826071856461267567807438134818648943417981367769691790412728598641763609252427345711019612510690614428647214166614623344248581630767958725978324648905324335204985302538170032074744237217643108529575466701173077035844265755340384060609928774040060031043737828580808984185257860028854120636859614030031979673592393144814016938307670357848779844878018101451570341616386689763067832424761087604531387342770271918230852234902308262672749121178882392384842210261838528459572466847599948651074314500213733038898392020806816931932942697374435641244498674905434889799479257899571658903922024210864980215122739715200026335827442446215296323734775869021110731912624732081428482523014123304786084919173752796725494303567158441565884344382865077846199414269301301912622175754304035786871533705001309915389681838825341880787534136474446345523612090197147537888212261477003655295864015698532495845294835334805192125144938480075055064359952005875007676984554920295062925351775507569731491891185520956063256928633131232909371476815283643756791839547942647396418763235805410241875623860986496546936218241050465211674136465851157258600213831803514957783273833073290343639165028420402709743797809445555229799483304003656729786878442981306265933955674101127994968942741512692514433129200135774134953369141547882191167110437288352682838393848027687619939951038529066246640366322269648412589250674897807577592750055599820939091246320011771306339032118482219201927269630436987238975797970431991950507908965740368518176292606198090444253701133471421284988025852979851363410716404539461265359778020394037415426836157904975041034295029343620915880894370529064680235663077456262464282688920046990234108454546338165537147532651548174312445223996938890906546507466772576386858745072095950671209165179255900170366555074645000602435753630928071089186756716550898905985033603032089134576547364439266919654322061852977559692340072865145243798985950122028322555102251917855838162773607100398295787050930964044366314980675583094745857202598844737374979295030221691332844384135379218988250551641475151074754177312079710326971632147036600900157405199745502464513399869527148868131497357123974973694377331562923126690524786924768212417191155000386271051261759077199401152529087444100803738679914511877517255681400053890985809285107377105016236622273957412733480147545891548437183901104726337455890190333542381919614406682562203788595572749952012339730706980701246703496795575311582832352182386114736649368420977260807377506979069188532057519367162702769010341842067838850534230011742368635131735399961054906672752712557640715064164702136921336815293744347977738073076260973524262915772612622084397137013686052075962917685554223502315512371779581504174891180700052719945662427120831289560499800149671649581973189251482207175023327805813811565584610833495020228382415588251902406858699752219722852526517074602055693301896988765081759325658509132180615772367698216827564748844129837907758155579989342017692088344716072916084503582059024302155697962373338674403151879320606010154181680583703309783231087233861265667263670932789876586728345118752504211337064256652376945330510061393397491211078509095004793779851003577666545499254483187966069053004332609144593287912436602018564286228064159279807054895010206512099784322275574348284334834215202933836716186456011640953777239460262607392819198432320909866446307678755619398089975534656818612979170577222796966161093512704285195323844793338466160064523385323633362472581889122021252558677428734345750971810027884282442328852338681920505119583137392488028945157855558922476040910657275615256314338772624001550535339984357832091557656133672472098313624955238381984285069736562445068251586718738481108668939467947737493754858219536921897862435920511747328649739851957191311224002188786233884009975146797457212116522550760439353876823122283445807614433680260443082314826391154244081671097608232742248475183441547133097013308213846360662303795908275258130148108082946646774433840540892693797262298015889504654500184951346449810273842445410836060233402783780825132592876366332709367541513167830811460895957137062745689478573837549925067876786990583370034080893169797655581087809349661042441364925014598985447887120002977261783377884398146959753561848596096458919096568369622320204645233468994206849318729554157908939840111542746330756683187411172769290799309047801610134044727764735556818316193968657136719250885426048945022129721004440776043529395854674265924451267647109008543013114747049292186896704296464907515227458963063886053680270858323504869523295821994006741689323484845235968508842631934444111518938165181114341884926993641471411741390513493367173332556161136091275473417335145962748016563985302093846574301092365570487117801787779267327515918616655491617773160263369560837204173787070825853608227678921965815255714491445311269054311354500503208065646324586471547462950098129242341414593661685312252753777798555876979583781098323518062796916387838865031523047600069305059349482460279426142916169117870745016483773037671899115577762994495151456871110846450475025685848298685456764006396987818112911657872160278570262028194053453671359033839649409908671871411250908208103258664924900426357550518728612626711126922198749307417823142034778704604795756851479896558561162315947938287879511196125230551168875006692770004461900661214753717660791790910078818591392124138222341745116921115576463893144994675458517299492996589929206891999629152441333872468206484644772298691566102972507637511280620336011745631640990225144432306980110897167812981466481275108514326850003378539149815131140141605068541675273204260972496258429431614194185096502184341421773469469320362844017901414086262282473891812806030094711945843924659318835529896191183512998290597262155319444725261662167603344033909619973960032735928866144059349900021330936943544589777973740480449630229988841739710366116849271804788187457996421820707327384474447422060852399406123827960667487202273725833240142397008788425368174819073012800618091408714693136518380636557873740125398625736545215082905085430366808388481427580103298373731397857236676719266092570946039111770709424182818919915190405274828653310585547492353995650034549702836963502280930704827021544804721509131022483786298649072007658464713112854589658701801174565082530971610885546645785820306996699723197588956949891049963348929385846639987357130966003708925583493526582824485185325898587857287932303497202961011488241189697700267623518991098061810497286808483550777889960295576925520610635486500648958357915153250600181219970364928937813954393289241516612329581199483341659103872431685814813404313755063360811664836079566988766398490023325127272419404004732802529619863908785207363967804915655071872497858156798386137843665348595548809355951038291846033975585723681306301953886018024809614337864831928047145578964865589440471562881498270112736714453554038729727754913370394744899013404610587944047677315005708054303256431464360179841362359918829730252689580620153646908867271510901932529947757671017335163934193353168548238203375264957829270695773059900815324228800654973442912239677951057314452037933677639646923308164569228793127668850602874596341314523937796336159770173914731815847453930713785546723413308693688237491635285382219561167431319416094429402161432266460072776326080093985342883856122032164109192913695229202147990803159644216306325323291845817636304398844770187720246018078362771893858999213143871544685880248428281172406476997198006538066629358075439295086195421299582717981965730384597380965580271289694743928817296093400215319228816662043536694073083934808601185050304173619903898278949687823866778824587475228658596090279694911590588894860366173061907012095961587237069462687900058953401888830123391101621574258579245573643676160648685207139277292330556223793211457302314274815334187298673412053461746987740383942729565471766170228400506990627626506877161768037857764894895922677260617070123877118129470988860703117116798336016803669309882484731887908368181583649459880323036414155145901261314130292633920033127448714837622359271563073145156072638568863062008803736680053115004641664632155928924228147830907249925009947533504327260707045344779048605034108303509848764345199017501433134634018076605241387636410513111327436904498328848675317696117537112166243810009786170828813090527848431360197116517058521827395404002719251878703008161948405612876783453513013505102723878104413046896366581747225164774250863826190392945793587604036551804387109183896858886904386285517412132011212482123376971845733863057122543570621701809195328137742640997407107492492594884682114781078163310963693295069719908152179410190837220257663916008178912113163008659988333506843921574278319890406119404356150376714459182591556344674737155911528513428044525023729780989886807014733766648767500341027124328285410140369103011787120578524422811556382741603737965329714833272287890489892308267271548944481358743550041932218251660715049948096315179761235592573369355411260899348848125912185375170455468267871960313701329042021517180920824587004231345110401230392406520777197214878053452000888088872028638616118619866562599167138858769238198028476254342753586769771674632277760956594697719988381983478078523401798516774065816104211143216332347681922594090911449767342943729292079944890005159150512426049628244648319859234946620638626252599721023793046702273400837547838160251380833855773092908550044005356436754449563123041844184342166334250365917509028692186686233142641338867714558070058540857273607161662388454797550703470277703150367900897793909304227759947691798204054849077161553395502876099497408638876035046047451528706629844693517502401106117493774090369460850371700612523667545723296780148720915827495392978362188120430230216941419358866571504060231471933507212718515000766773367870972515568073828973678334266402638359111973516357664926067261445148982421360004849731823245006071362873635446417246776440126494268204232361972410345140659946307571899464841388996197732539948509926555545586183403764193200672906830359854939945999578442322132686456488078197827650290022424110804693835048013618673077169141547452637643188584819287138814310351252073680256997317308281415294106499372309856066418700336221008668555244790291126714092476612723765327286997901855592657948960208084983944630943453269490371057393406359819929124193891443587369437483205676308167919237901535080143781075922106416743806303783562407610153681386375120991106740959083025553453219538457175087741274195997672281438598963776724837496911136370105070689655856504405914447783455411086201370514200683507450901923095840000258134221406333287574935933924528087433072590586672818141339541968506240976311513588263892676712049783811527929843807805333899773455781478780554869845874111570564924939695663125911879222468133130208976047735895542115640173219399976244591503285174066347023879718318633429209837924978466725357284734066510135127716193091040145478724221261882626037024536004370167273190156123081233919561492082263847228829221372732796048949053202469240419023619487415423728387628469502899123133676014008498335611538013952254501964115290743449889341984589310456008921686479076772876206346142742123841044267859045150875406212878922176382932357950958897640219641215437458120350633602342442331910625363891005125318130247211614428002640863958008767039059124494599361693260002753100610921048919530420945639073230205806169705472082673829680183102480142130120742570742994479795780756763743139409630691537336733163002991179349013072405104786542214613229859492922425750629029571292478811857634361377404761539897000023295561589159575741900508520485560035243853473319281027459379852132831706869817255026770442935134262661443301323469140577735320143017453510674528466187587422577221270359967894305561576285425509050763676398608175741903008061352285834788813293709327850703747874011298194431424067467481489488843545534129094072853236014751141175578140060436773244644869744548450938936951104755290496342100232698228953325291350122669810600992467125533835930936307565292705828433977126336832766958504678414379375795704098289180799725461405956056906850863204075516083828910818184998547054265984364686389374623126266489890879851011740953686292919294864465411132090840630082087914150967411760804266951299170457489297256403777630605906962081270370894458618830736294268863300355150210211179120664678508524946551893648326685716648351117517168032294089055226377190641119213944547576169038000064315066024765979285730237287147999690671857094106116685333190182289126133382209646660540242273018913776816805995559652217294761587290381562666237974264743869808162526151603523387547691164670779412164658134157799983135721155806050867790409955315964789991743309187069893649412129253341491047352775513237760494071252513978043115044659382334350307072063586738739982145802552174091725496911675635529812352125293189996299854524766937679723840723804556688395250940610432620804396289455149907718047309856339977541868273920886422380208226950795882932947386993179881739142942757274855344111140662659132579290635774122838509200172574966471340837149338557713146800945121980339047908587034285742068457008729307877623585700147347437631827312148464444614375409254684376636990012424950310579415012805951005517900922582850107147686451772788075439773941600669667613238904678122850372213899485911310690298680879245795611901675431603558586981831961593320933122215446127417584935307164909731533573042329586000008468167053025229415019379410279210185622374838842063582643188794671713385630709818421421984407390735490181756006878558014323868029624481798947841529745001009445573336432995548311084139547699403100227046800322821992687307344512143145251145152791713321532806631740268312896518799931390190895554448785035202567814861759992844187934688175397901894757380960923449066883112851114284371936731853049961163398424192696441599915930500588742330999234926250772768467679656324048658099957538773559336178111695867748926922950792007725289462135126283619751704670480482064889389817659939483640519961552594689875745780178158132729963162071509199001430677674901766325015941846055963566310100434903297462335044953457285389071860984259657312661947418362879668125897479126262791149236585221456930879245371973806527297024165800641173719419515879520627256250342723655319865011178960678523081259022650878501053261839961278715089862982018451112399575474059071507189413089403892185649834304371408429546504321963504572160592883080489391893070899184729830765739761269041601366161833064488441702327759193434498915307113600658322322860819938959811223151327939377888784213577382978683829841105930568437461748924599424807484306898651160091702795438725047068298124544181290605000309398512334184027817857808819892040504259003022567546637010789278730621101229792794568290149946923148983763658878280941935596982544226733985888562429121063844360929622112710926662058892430718127529116098513804124713404235033740056523368244630585650007324650201988611203325404363326899951885039942603356678668877206579471538806779766167305462288124788301946810960358216378642283967234027325978004717343827662786731303248364258159887513828326787295127466010988061472889388489093548551312399529258429827232308286387150895468882522957256675960055070551835572184960271764116231703016859334704926430257665882063793750927189170310804288929174526237162147566504432072763682309723073363199581861147822224478923707413082429434122843183566116005022727869533577469289272247107197461231616008427210929455704764845908229992724470113763674172273504069525464512848055351757952873745356356638419372438859242273629556104757893924322472641659503459962891355148261019237575444409988903837828350921213958341617712850060566289009809154311684336383569101626705602526240632072097012348859922133360522329399414703120620786980579340033778400650195872128532021851713621150304381933772533165608271233123240651337391293769374945582439088891894745611506959585362264413134682912450582894251333089350742733258222927175160930497208952635822549376508418504245128324646013554931407554950965302298297617683033954114428183771269762196868809338377404675482892467986445335418028287116428533204120748926685271766011468641757839557886157518393480234927945471535597464071804761093003865116471965703732947531296565148395538679383538247195232996327442262570806236855353379848195306711534781365360426841792484827375916692738274190156076877099908452285905169432492274792902872325864510908271090781284453444467427740674524927249629124915701490851352880895060915277760130020951489689874256165850336464503949742668531209709703415787499380961490012427234761962114212939576656109340738233880182549863796664327434466337416718087530560895881267116250196876425519488310430166977121723315165856141900384122467430902049513397246856758731782948224714291376811866470132391522219947577111623401134236360378199835502895522978993413133243628159806734440473752573992895580546517931698322290862556795077301075375578923016158187981245039741647671085231812585335306653331164396154938590776304902616428038856601266452215918021484207231469233675301150494978754279770664014791408541205860327547685704800559815804389225164446820642199383676334398450629495491667410285333246500349714574351366535976783565711926519856062985038999619492931852787170617696905775559940600440095114796783226980172044395910210657931896600117652224715675263878670931406756623245239061665817370096004998987602189292251537014141960361904779875749099048363122110460107155479621828053500513773214815157074821109614424350544915850312115976722157617004032406986373601211652059025039149491525705087846848209474426364073095293013022043950645788654569108162090874692854226192675255068853823421370137755888528248146894861254973268513674404422645544783576095053840814127007260304061605427971262914763322762432788364122219541646262359754838054603233297125989476901808681923500369838294965124361518877725608103565569362731710894477392355288978483241891408571252453867090169527305464127263940703857334167373520600969717479840429626204196019250300256806698754562229316163745001477375075132101312127582191120796929595694729486897616941150347589250620114558606804760332970023451642674981718461525077895857813274841915809038576092789215078341355383222948506898935312927001230831882881057068328009951108389317175941072856650707646900775824813203928341169919715644809588482783600815011469423790743035936156035877363435859266524707313360071909756257396192213678608160341878255898303288284056177436884881583392325135581751882963843889950993289644782955021750111875834722072955516835638269182124090385536413114903389894949665017820118357850370999507362399966844086761532095640339963084996921598424727627683875452909329713925978102463425132156337374847706176440617562675460228911970684637277985623573504515216741974439116251993225232802435278411196709388904956031107970666576079760591216637544030714169236636641430962204860462709110912363679265511941144385726306069898754777557308755747523965051744951675184477947133903782780963437799710297454021657136261452219851408086189666690278387649041816661949932711322082428011688384869157495127665537919933421206091387880548839739271007036998232407070885579436420019832729347557136505000606991197381283705435333291897865778510285941364414065032470376334706051626635406603014234296504061513250369903972071028909772958408830059893095919492517151917963807635441562585730072327519120235200859896978462770087006570529581864497612212849397503738400047483193034462789054746552737595768892911515682071198039608504596050302507253304656191931953288321939983265733462888938739920138246617097689438713560963562754676268053331666891997742634112721634221792624040720386088808480849499112456050815567572076104506040423125615376857708296092183276851090462927305258688317408349190301594908935165992704267275222892610814875308766902616793367472245708024748036568261093331485499848218955603600831414348543492513896082047219515855269749074450693994567487908962608401621033147084824260314010712635988276206785515501379814173369149544363781778010246289326952559561792063104457255021042459408425894082241903850723533286529897376895164498004640510309448726228178831622142352279812369556258789681978939189262853628660730840540618454458611458602262176485269296378321699282264562179994773954745524811573608146850554392259270478193017478465929593266604547409872089980793709502592719281624166573741459525607640226146827120691146280198932978162473080340970826810485802350741708844929523008901503124794878145522880060642236357634375173305597290108078838531170429082268024371200314086411460096678561820346230503462350757738844595535383002239341776005592911389772731878684682587752042591385031495879872580750113713505496659867635781106573140647822992260125761504665053664636615925618300581196176924527938274125615205085808075733536141873435202311778078856152425014588612509521618080426676511284332599815136057995301026017470634325342860213989525482976604265906304021654685659583077722596527009635292710361750645030124304001643646304398387553568067929213602604442497763830787645882744058085162581787895416785481031498295663484820209614485179214045780514687638005136118009537177582709564335837525083486891320299169981995469505744469196445192273580659488499478445178074395579010048670626795582237363477944822458618389751411439642132463957637101559242769490130086615896279357141078296028258003986050410661503723376341116203413913678331677623697065261080371284495656210094134416572110945732091987977912994683995568464624001062462307900212892651856433465299847482578560287520085398551695342573252458838976873146728927608642707574508619527228074701296140388022393177321800570353804163845054495180677872566133659540408033710949062831163438406181032738114437526563525593067458646995995102891764442597944283730168571380496928736964701041109268566997674756328396133805413122364853217918777257966409531249220673339896022426220276607507469924888972042269388694319568409010608064842103483482090632079048568488700222409193031270053316141177648609287018447444944456239931226385777014448681160836251730901979212521119915445534862334424699808514794264160768939287063963271363350740350192553786218095089663838020277060679439492198976489897666840894937995571680589578770449214002161444042957958999239438067877161817414534997554104703739539561366896962373334115242433305678711407111632732304201225399021031051880288874608791261050934817916535573883491373922998911776938344504667886234422835228916814832541702387022445509393896853610326349541439663932163059312254886411133848734340062570292661404542788648762458399470495002324461418362832887082760591665809255273374014208610321318181682845758874669917237101500963728366803004322613802144785635573703183104693663508269465303114550382100048520496505160865705631839332153891506436809909961089403158722913174142132749107636589130614259909517672622335857888047546876131649914440713657074136711439722315458574750110828113326225921909984601294506758304102193491263358641334935662239404461179133506472734550405971326003161590448004525491233698206874501986747885020828419317750303374457754426872722373259371360298328834591681892030982068245540722352382707437640120204575008687093723329588357190576076620710583779550694913359892039490212703301595170228537649785154060952900694014666444091364066916073280264796652717861276995772299746848813701201188574026917566067501347265702744635907525345093985497987128798275943474709840962015560017293811495780865565898119826576763073579875668171320374965981475190064469318239528788913487891315273347622505833339465874802384372589904197284630915758906811000848335700896270129469324098049522448267399659878045382544961290342371147325934345559155720011433088310708596625603402113039816446689676073367479064770123911582124550365130737132054957763420783251338748224348649481313712835347632319664112423477235167419832446948900063138961748151127531062768909180261613458250452997915392563160698174469049688893359874769649407150853683448204356984457411786898920623236527525710093363855690328126232439422680172830773902517083146794958544005236188018043841695417622882960121616231495352321353646080952946138554958248400146543564043282688624476176191594319564174874518137071195145771829054574677503320402579984903178655327100046540408283772569514051971184402082467675624471965890886225987736337495262882325691012632193098981059333385544152179379434353800833940921590637711109336856556491549296104695509799165401341183154975364172151548256579115681676211547451709964214008899641515392268050595275421481432856488315896400120544881235683048234387040822392815230323229167130136429416626605918510335488763857887085996276197664751169713396196207005559207067810218613912414609835941400024466372636443551122079460559849204047438886238735678304264052413227401544852217214329164356354340681082016589614542871420851774463499213858412134967078596956592960338330629271461855566550839053375509364431098000885636612340411946993348645446109331751860032895807211496067058128477025639070628283475816791176898645901162293685313974631284421944008237137356330548639233013219197224695176801753754236824060414431811792447435488968812640842729865531770683017100908710091568360672551763796602098097030231697757927076378664796257514452846033902979889914858921380636800081167800157869857156048735625316531105774445150409111532288192857052470531471221351652308126693771954271661895901286714147631260893420921877693528047635192377447826713341255704245671703205826148633209061714147727896995470363685359508193079898309100007104456698946953833065253510744786673322950248404291084791060957041927158269600797161736690553222665728042034013759588986477607564790688898101477329125037914606715404275755504508270077839053931448536058923140263873067579174828250863642267295419747971999255417472131229482217648458876561854695408953752810129613805496842359259434427362439176943680409608454947786156264096050483331587137737688889864842237872660229050729241380131878932911096881065945570661113259616633574972728257532060810490111523633675555567773607097525253162312474837986420423925695816923824192951812324670622582271611126120249172311824069563810842391176815196731668798799262465877052199416437815154855268665478863983658739950854231892841469500744014122286415146035909269683895800108198580939853994209404381341985321327237220341191333786395041632849446535731781561704879403210049115624294456793498363463161725573238360571299208555452009253107091221284633723916678309798337039462826364447567847787380284073176285807741607033800751043674980610829925497924624415921406431595427203456630847799997491504308225666672246909072189492879450451479548929571339249661655026469514894790764483724459695733913889462189023951669937454109768430001176805878513468000479647077569635392242843399604801395800071750198507368390435076221540357834525770148379464878067711352176633636815630115106240421913475983929213035291868245108873929450813917362941729371707937295463732245313365962846737452420330528081804196745626308489981149266852121522270153528746459101439055971240902846366345654209980754073518589846734830344856701809231464544299705444606749199423700522042473224907037098116478950859283307278002317546803618585470510175834111312230279868659663083629740453319808930896777831819147100709077527439919878700527406565622518816960685001512795747719882695691468669647848071260316196551151281990642933668885311963850158018167756514059578964349881635118187185780676086792224246369710372719518653397317863901889146861093195447114138015953307589556685085795910553010672441167870705628060928149452837897972820367241614802456677187079811811990546240156099086407055702122068530975211125766153581908076304518794749003907173480289591116524105949766315628555090359563872590425510309828238996993018743633625676139357244734847249891942742593681402239013164462330414268028358144848899687355254762714638937183476067228784642182031030194849351135931251338363354720884899641112170017963519032353138309062265676269891362380656636873992392500037435081669107228643141507714546736827580992314192222055692378134751204620930320263220386968415169246346876346019476474913802600941910965907906841180345865438891653506354133110281957750690215875018207434527013983248738530058722410272564911813425560075759676497329043488412884576611020037884718890422427369202057492702791974281603114981739775515935544269641606885912266345191991053366315836047200440620455848782499489007536242292966902355431760487433643214152499548473546889123510283672674967659266978277222267206308346584339412723871068864222252569155708163790629288195266668075004410509098344591990912502152372775712786084459375440299057526844833606781130214708858239919761550275588590250794212481224306770893684021560931441877963766173363108392024011888281940436493614164666162674399355284078103372012402491351386629058683632861740553995642276954171617664841834069191247528951563175417785444354751314726478387093349214564360343834742833362653600092453126978341349163959313486404505681252911810069832806755646648136864309930404533925412265335574031258492286542255177429110075400642544414140380328474279640993753018201761431811923625434944848101696249980602082870000567961124596597438502363280774027598212207532638838910046054017563541715254786431911482704137972698132114405963898716427159023726635630800509883160020211113151415024000898306318189332551473975361555098827780804951136091644496811116186271485726651785581707761983272479774017959443677649153759969596806442806449265599303116456389185297493669215145267301755806657392151023267486989749465321687780581321333994760701135812442755521350815952690007600712199972786474227616552346980593155133961884565076950457008464883646558451286823321138649717167582562607117573908353761566612720340035283457445490637574884831895105677855322410678570351923933457991625890518932989875101287171017227114648261858321546135217872964032339687205016458086164012919255271493158385598290385828254057881461115304805238988891756769339602595115318135898728508788504547833110168480479322554329574819836055455158132071374283396293148045954108213584094931065375193016738923837352747355841222449920186378464021769200200764107266478629126124389766019248429428673582761327371156975200082914969705309382663150656365310331975287881794012867752580815067620850980813271425556255434253302471409551573271885853539749111955301073799823324955879243555759730276937147430347277805364088595031678498156575458954075421793265911710324604468245486457919957716068687134972054785353460576552256510800869978885392100416878622391741966824747421051732780844097430928142366409056446869807333381460690804287790980175868924393961628978321122632247009050037827229830874179102540200834245736272721511003283711911102078210479462087673815663251660112081017082140993292526663022930487832347700618669221081247910580021006835177881311914873591244809927263031907858329234025425869018622478407350218210818307245943562368076641825415988251120732116724987602728545878215755104048386172426962783073732003528776311015063253676958814901703546345866412106807682465558176758523472687600311349884384453451763210842229152558081318724906383092590171546101760422034211246050197461707126199876404013418120551799925119130729256092128519752090694022679379437397603602448432081383101510231455886527644360481312002421635763099647819483540666651244584696951290623913481039602459371314337726261919438440182898989152022170110856321169183409178916962537107051723208655708053274828908125499089082422285780389748467993232836793937539199626202321395871634331202379303081367039621390714131300847728992209815091604144275777887632460561308308928383683623197352308492199611685241954585006002975154875410555335630838841548759759281186663397752861287564641189361327090659597738358086792838930935052446217113158602740713128148014237416619098535952670589190796767970316478335344411620357165621624308687462008033521477570183568759697454423331213102119758731659984749439416250056221019692356535912653414608910172611473166531814692245242981579571841142623384129588061874055995306609779040759906997168179149705899490248745934359352421634418051628950251556236087316850073546524400794745729168576289107683578088684194921451836041386439388878566090991788696078588311243649703034115386950569205682753994406178654669595871323811725805053638971637188271252094886464858440165610909353152444064460510522001897523799616134456869085573105524060880777778639585525298926344969198324104797440921913502467108417464330487226716484267296070267958960174404498878171098958777710802980004364977609847001165993084407809120391699964059356351441911119793027069493354799120024643661188597865263293139367793076506225519883459243933226188863290227013815438352482177068342892976356606291357355545889297457046711122027953787258757243297972511376353256695233887454987744627797754422913927146569410621090891510448132021013365547886909476726350202887957111410519765324195908267926612124341490890532852801098706645593661445693097989931626152921242964073143283593120840535625366929478513480654603173955448813598800866096341199652632621855669883662265315677609097322302486417238767768331949650261070752291223244305253412086038215649504687648941285242486094976758316026404255933487995936720343442639807655469018912749718781644503179611038364505582409484824238244015538032126124877430293427626343682297392190113512022895913140205765985889118364054806419552909669348123599962410994646531227086749913963822883765398247118758923947924242678389895139768030883106272791919959898143736558801154395526211409323035900231179111623883025253296788822973638846930683678770462592903952152501741891710004399777270718362802378185688735441137574342443136160353331813467138976280553255933076571767164433259539366708277559384753880498798953593203823297675663753169450152032142191017980405610183831483287439863601273832841990922442280150611634080187281508183379347678086635487623067367818358846167276243207789605415250738304528355022402213094507573666973535580840579293632672938054647874537428010803636584330525228458958804777694345624919253083634073026443135835295235910401731548301245811132967111932242679374123146533377689375791062583120459286008352613576795777675542342979522812420542308466518594802666877873444751481386731382279195086707960615563334665760552631220712321154477481962617872995574091117574311206952794672401024496220447819889812775752448627395829854783015295396133845138084237060806558938700959112089323048339485907054312399118164118490470821991751230786626647834531792118649879836598502418833479555196843849272995589889174086096781827547762455957448144284560323117143356653386705369577867521262539580314732170367161379986761098231817139401043575976128126396444200091934487046355658127615425771066092257515648218027454140426263785522708533667677962481968961857601332849216919733330100833182044253436852763623805940371215642362568032998262253624263955903425450948332885811158224312550862488493022474088064810774927039346357751327587614666175200206626087350042085885543322371932601942278102013089481952173240198946804227078832710309476980718641025281475556092525819283471822977409254978964470887583468368590817065450251084204326061972208927866668685537173053162972584674059547445826328640472924075441858022711750574401820594700863544968198742882826683350364097586425619105973298501345258360165872365811318599923692879620363325676223273724443165298017664966685500086784573916927173517824714834144595779581981645087863892395317035211670733026838885228754324786476172866364367787391453451547851350168453513715499936400504984762684453852644792044402167822697787088566278209797439603197382328125945570218081071112686460642681761727507343852042322856111505425142319970386598277246499654223818892315811218464923037817827271431176363473950747487626632507354799414995120611970424072528142697097995227090117117093746239478029933025126689803896662556281628004252545653564007691147260290907193153753657471996700449905447131235695526484681790616463771912598252374884380713282777205851024296518086633827585039342243449864960914496337365981326305340760677795660663913959880131489767914885827425502377230697259830438969004465551197696262758059589028200770945408664209459827389725557953303958412130022171782149960731008289161387289641010987176301757978236496914183194002699579812132130170835466014423535668404438413198645872090790203433688245322735872671328057774999590238930532836775930888964958316042661346427465636456698234449499455239205938349667613180894201736941765529334882124293349378647571515023049783282282455310529880042432859560803037078755815615478662222189383199440797322747551217711653150956590585051506484463979494182135744000511085320710187291328988384510051632180833363937653357251820706329345488397389820601315748804451090542989698659120360295392170707200563454967323084299714927627189177038333997866147706171522375120460419623627112983909682243472395157066086988341073207205817927937319299925105158202072518177053653673489301600401766489306724798214517381808602189625968802088140179707865909034154315083563504770431806641709165622382887535999444056356166104508157528143795190955714734113811402636307359784996556399355428270088661088384847174115674981911815574084114374490233750889483420038892949838108769398995995758909192051463148991757819762350431085769963645852916318820810219573101416175436150166260571818284274635084125221246962756335477859871520300555046660221390474712358644716184319666172263339928266896896525801054901854821697317631737274149237881698973901161528870673319315059558155299478829679193330748581644029244499590807339650466648033487767176928817732726676121735957225997574111125329725802723306517930146699551358782010332961002059801062616005511979768223298435047385089984905650597001220802470680994345070839987021006798302227786799661257505406336381475050801617929155208151444030991950899566285629967842580979881489867697051725216676060036277564735617008264618901456308752019196952505390406383737366220190920517898178012168381694110547716325690288436677018455898570501009161951089600343208189730285097922536502470354945175021261817099249810343275264721446130810890910227905834212689247837371933482417623819767648973858592459923420448942512951053441548938879594739984488404274967757387215985540795779974968613443153108769686112902462710798728653144170164267594950923023725995340669696486766303493548999928070113277390974099414937181974052300711741923546338147557418453178012493334168370914356827723498179073365659028473521727812782553429234405293324903848810836222810602156351661018127510940183167219910437631363116515113181191260346982454495134544375901025106740311997481989810685725588225201052220834744969070926860460932479708783089958446460347027900398569455707171572445338501450871296081447894996950927656072872216518348639484467713464424359441596519734243159570924253617265025689574650945203034027544025567547067741032681909972966638330122803525703081882228236726215077935949281160924376518083383909587904848812068219278654652800366903860945286845717346497959960618050010063393236715053931485418511618498092442635220688054651244166646942239973557542432127086414857978320729857022427191890345553396607999514359731645234047460643149843352355083097533157576801931878246756863375953081448265259927815768704196698221157758007850805229949451294071628878721226317770126963684963085479573068284212673629139901433085677787262028524051092807168019147986029657713982365031918598005862223009107551089983056003138516515175707088840105686047458429099323366138305517485802716976010056004389911398616877129564917354575819902230325155332889139505685250127040767858058351342789018020100797303403404696928124364650488151150695668236354483655585707039865796089770801665461152519703019672685397580416821150464916879286373650453244053317507711332201908338295087921284767480657996769402864612276974317977048943629327881749027146673877534201683229075033045695724518326775905696318261349856221508914901683460042975726695412864236997483866231158364376530904851086809704761982820666304536896414341515827186215275540754331642520330593976010129861728645435353934586525915787549037599358738176102933344079590280530768071975384054985380792435848108993691823713292316655328676726550699665022768151089851545796358481231279469545334696897723834001400026291155271799652311941254831871027189722169124185789111503008859540483329518193644591458705641990767918581221952360687992725878423717324347709313851492420778745141148135696163446052636733113759940745937171076371764000764677084515216152829048748580953801777636252076733920205037391987345793500532107069725160840500921713905869833854992502406536899268108711532539761704091988426926655694401590472970097852441369720717531554840721107941919301724755807245369400062303982696490382251227524855801502820386441949983333960379756977057108651719367541208351187727270098216798950226745300648936068789823106748170281398460024504358464417349218327138683430470140533592433443829223242435878337701854642594141043640034449187324356316771080917986177896456232852388020220093258185496068083596189727379580798781046404608413423778174957488714097488918360685768964048533216428689453120008931433814909361595625889665177176426662185589240343421457552494519579378756346507952746475945036590597302819573991009991535476782635991022968517523552156407626295144889132599070194764448646620336864825508116642558498431316914344684982455914357060860967336207469360851094478109977494852028060841254179334977041937262746918485210309773886758800795983498897334892920898799658997822841260630760044351683492516585933417417712175583769515106234077786360294550689846319427384928305354304371370993727669085033043420215860351405232627337613753881712335053705015162387053355232242612567456721622679136331126352617796947882831766977444654751494751251036782607688656824787221932942799622830830706812318381964270840324338591656925145269934237724495271825881036480233134875498471558789563551604445804932658738010921543553357810986850471312673944398250426156423216155115408544370398213364810676288015966626922338272581066182285013777153744825612893923576513302649329969501588212388913815483960025868440573550467477723405776084576859884414349234857733449837964325818874019630034910854752811699726751208995182489746275655378380911932821172879219611194700624495332603438349477259528719945577311187939748286224219660755432260549819440732773173455359658012994905731960131279020373980127443651917142508058568779963878996485068520518928642665236208796434687244028823564274072300125665448015652058366060959938547336182030327517784090015739521608788460843008274170810178609430097685140019131068063065641459673075545164103343194487703871187959543313974377964893938738868827398855507919441030670381570500979042392730389729829034775603401633231531770973451886703407142148572278119129134158170562026773574974401804222891535566482265128592682985125750585010194616442280485259740593555978019307473231122272579855609332311751253197277032637524883688179823814797004570921689326793229433111807536587415274570314778911509711706878715989352653368255524202169534451888439059353269145419279629993794897207615880552143646088934715550308392759768292571599423775764092740484430294599430895284108972029225707538615161962941206925663085606886623157115690411635744590112976857700660270955704045370943778483883706094613202795425977381053595013262144358414228103470950568487184013251571462281018942709389627720385615117809974069594760725936710713473549398785642666141946773212561052860534672422569159464870200907077462190144516699470973994123785417126344429423518368055967147580982467702750439038967129095572247138089317688066260642761333691093584444705124281434263246404001763753687700979424033110194840148744921274986761103053619591186532229865464472980286906605962815695270452980835915200692533759390822670674646374927608533819597978769870108718810469368240059293842431929566530660605779114845759457227590267363643578253897627987407074354974055814277459250790309823215315383639056255463464048505012567226818064902096804884583329752719335764179252014699680798515188309066211932027538404046486806799332037427541338478717242185522703018444035151791634651988466891624829536827376581608082746265503993512796016125080655237574483632111132076070292759438833768408334872559444727950307909050940429875509237474788608439501027679287876741847918823734952263101878037872086035711169685653654334359170781270704310085331944685286238009655341830326641798642473408969927933249339636444931690216949246560797293196577532659147076299668811077875445455498274130741332562366344434478659679065909680065134533211212277461679831579222402186640409714489205070580159117633726841304148600807016697781737045778887165006933082442124362327585426915015327455390819557010532245816104825238151646169785577018606546054070233670332466280518814615746606660236985039682481728257968389717009225213447530082541749243794372631858341159380558853969826538801497173451348665122629302926291697345934681847188286541469953689539153359910110881434307987493522319403986809832468775591135209643256559930749850491369983620302419064327362122380960965680559987792555403444195820869920396696870925434919345869252459657589455485994100358427561611722220502038966989058130252658233235606581907920624126640606276102863527500274081410419507409495248054362791146776498231302788828400255668548064318262152966854730232286843657253239082974075674445047799550901432196939993350880563231599553753043214333622008048737671028818342887180887547559764361119843154187386297137024891630251879135773270794565503082334975217566548094349877686683702417144410768740793270849909096100220539646873587041262408995967274880159431367065535391698544393494264592144271099034959793784133547299372149057587880295451538026293800959001392083762955660543906561263867799989654843230909332341346726442397046189973070441218449522219297992577187336116818320594216308115043274628592939647730681039060515773184695728328155462801370069395537370590467869159698446850513831925628160518769601678308130275472147864875154917937521227161933980406946911162785502034889800814576640696932267484355828524834914617606025504620391795189730034104509832500871173192595237911305489422733366785029531489157830163158005706959811922023056347192629991667251041409423720721826387541752277120132913649301469405214308002054210602770997201293531606933459626443504537626721950687197755787295235543726084901022783194048322856310406267849771702345459757647548656830263328679179208043992323879528161892484200379714413430264859816569484341092856708769181197906478736575706415390060183886789550754620107212181051125356073292016419483505877764802053581729205100101740096430183071318944503190315434671952842462742475448756275712814888890488452915468865767059666815122797646143190348712215220819969370730876093927684367116932090525538260475726227691285423980106275394836741064140984218313874253289066695831646860545903298228800954876342403759267412949125978993343511709191639797698210105652469471955687538200406630739221694779002508922875890446198409933491997199043624525581062213585750643010284987575753081936287723242004328182389822533328779259584987531301965173829943102100171369571082948131389658245498711908895809903412451387180430259662172387751058763154616802834640587269967859084039754686422132860994451227603204846627031522007806042771133358359270715695045576026394371799921032174004498623432372448461456475895604371281772132752465313224983760022686241048334600144040356768088572354945088116923259659423018125787709694590034935056707988313883537898707331249815644412157528129630078837126086647517138448620562614452409789673743412027493205059043892897058234843043000416827889549915989739844813678530661610588624319724401373024184468354290892424269100822652824982510933461878537729497837138966841204197228894961560505165822151057867318837654981857611471517674342988210986349081516498771535077062272343503813549178208209115606683377207189468418283593276528422944403249162186948359755153380280002171582092128870079831466814482862354709521983709087928074167092930083201902736678194828215299409323078957671290504503369706303308684747324719667992485867479756157700602033836651519416910299277959799473613738952010893623995918697677897769100439890702318527127609397153283291540208915803408395645125154109436941983454577515068165590510678055093121054718023698386656058293174868287143309460031035443452764884166814675683336265473030921123304398747897256547721275335506590222291512585228333396240632935195352730951794663678390584349778733986154632083443344328633855676209255452195261503634929117156310883209887144350048711907737373440751782277981961933340895772638280515479375274312277386599108362462913441536661403808058312023709026260707873508632808922245333565186944378907772389082230514589593988305874117815892812706547318759657508332618757721191732857526234253227808549682905326313665801285927023855383534169300672255820646515339795819386412376789274573242522987300537240946051429143519600144784106059262965967247626740254515773950564949683218727022140603185551719379622917941170646085525708717700312144542354135242881213192570665548210382931585448804614668262672873673111057898735585957529136213464755363118679667939975178661921828473085207871064524552301103785224675028225918811258594451495226346464527849634549319711767371130860772320089224993727934614876417196895381085888930538803326388498500675388365532383334194274279606822997497703907213497946151166750053329545276732145980374645643811988093314291772234280654637429150759578431100699767143935186331627988886165611635406552329872274572272701130526366347791758500690519262840793771377737745190365019935911909274780374064862540421384314371389238411881176893867152670744659094548768063978298825683339119299666365810133796008550936122534982978689775411195460175369394137530993797733955993500849369376573083441208560984384133616341416476668809127439557118490012806667387221608309625016739411253388285221213776238370674798300194222547447733568779351795963061985939061843404896959276697105403975948439962902028624223143734243154252668449326584841447777139946208927460472985001518923578143822648632360995249991073982378269375901227248108834514884833326357292390419010755310866818277414023522293874925304838072999400011720265502551520540912255014979392380021822715723894688327444646478031639194543287704347242480292538201141239533782359611515288120351331281476001846164028908776431570150676533123931144705204805020595262906389464511792905697539495650669130641803095879084727035900532791897364266105699868668091563400398203169642815931706797118269975626925988477928315678676127510835003246163175678346465412476921075091191331762986687426509960654881714898637429840744793819405024991002082344922736659056118274364902572853926100264479804483929239272957592494372529365268707754852955699400995096241359878662074399835760424066107391182623492253477298000058458232347299792538900985101595509090500908563545038324421531254480414545129766048373865711243893820190490073749969123840304531532728191585179511913801148410643162218918284537485678870816168042750995920406831602572455339878195626589626849000027758725028140630588001302284473421187567207884684403277537197658351490962864250318282508046616218310111879761606442376073027447021729435333051206028851964765180488475228201786047368568918546935606832263096376932671614679254384576247377890777338381547025285454315373491748889653663682639821346024120946811847499130215038912184829583610959553766086005204431037506923554559053303880559608450342943949128975584809956182204450593492709391688304561660075804350178985029404601122074498579731681344350566542526728383810360215110855315451514192606434177507701193329172664302519085086696183202134591503981083535997856231842893705462143914024171223291526596450520633795849210715458323068374250010751860260385396444248060236568116000476055866366606566912339923260158822323298920882166585144014033924808252495476772493480511242933314184371729200236585041977752092951683472648017533175622290504749393973311413330125212908086518712430684309219577989260460816273188155521453909422910422696249512252635418911118640889054369802829775332140514674727966242871576707493938477979641419658666122483566648828139320385581251154879258633714520423722244410868767500133695852661515249418403486335442149571695672645057680889869627423359581942024930532683064426432605502145608706337826529787649020167051556864469265532346735211489368415485434762458226317779072743900511490024468328574441438526698115923354352561297240977863793452246661296980436424633167509828452822342814768114582048575170560748898511094634702354506111367120182375981437641293710178418960401338229229841067498773414487832900856290896172945227057669932555288698705788657930531750955581779217445481494085434426312342187594841946647536838598608667278017115692618626797714398686851997451235120353511239809807228737595228879632846364882575687331497129115338798487198929319092352000302837345426857435152957470678356602060842865325382769749602487959005452882125855863673637054904824328146469658504471381779003663358003087781748848951510367869575185012712555101462083935289082659276813814799134794769606267942613211931125832407503624512921323227957453214487979123102715028666854327163866545967131430344172635898964366343662938027039498001916746237407188513433773688559551598229242079342764223899105075638367536239285146317000039395004858217947996714869133538057087604059960259316909339832821072101807823007161940834187329362109665169991797292722646126547836915000939196087605465381147850586759121803688450398393154257665538691317637249443788013375030801091676434839275498406264661684330426144901611556448662537082840975456174855108128842326358015770045988865276507176798587762421371303286973897621807270874736549189793847456568947939782955111353985931378650125430621443590125706097706759388433160731230634001033058724046813597381666688012580167934117349291781424441587226261118709244944666999063034886533321243886204816429346070603916033068936187259282906208609487019232852574362937775463397406111170885777585121565370526778910238180899448755551989659746341009520713591269538745742122031178094073118462682166946722966642082918883095217865566110946054982300388105672619554733013096532904399547563782108276585471955432994541650767938343897498388074466561594595927364249805796186687495992199158252633552598420959689246073667554551816201495349421999483439113920899661441735074097966424747012323504360626011720457336006939720163811116517766856850576274206070931426723764295135815537301276972799321943893228075540664129425921834934405569555377581753128115462588312225191049842140420582484977839010201600233369231432748476057515244493922395441846367892302562026588972163142454734364373880515036244637778798382895982661714604291975414288672552759496963021401451109551314710199260226731609771861780514026461171992569973198478214693528693203638872529789014652000286142501883412489944646436284650813772991129854969000205703157262616303181568462728355155485157499489837218370765192396225399375679242442711198048788286964572724173833231378389726373738053005850412973622482645089263132880639986236685755897763641301020057906003728637836573066280366084782924570686033482441201132971297232965854743948120083030518524253338075577585103432522718358088350636218153319124336434280730665706284388050733869738216081116922534320569323964688961844203081878433619960870535303973408059606105411581370126453311970129596570868682397422717362368600263803287172216183698444892038082090981287297896638022563568237799379476649149127837385192195139329617549645140173694627662133375079945711976790244500731538828838704073317544646067864354698594371009282685897714515067506089471988365805268090965719835320219883393362073940427446983916045430158353283108473655685140096816585124381226827813477012101822079803168017003683514503568966662380481352430547077323436539725234369429917167994893966418587548663142548845154672584902329797851691629461715527341874700708819543308815974076132917142353587173951157982006944221082900838369570462582126784072590721743615613496910605800456421281284639383196597238281348074331037669071078014185843763105120995703258921268570679591254068995628117780999189910521058574976235216716758976491874303582556763458809341277351584266735662083075259496079330132996435672477840524685889985713051228083833922501813331080567970396267121886819274046157309384422813782903743560604597721506095962579457661903887285915791629834220217256188603586621735523746451122306590590652922557575227149644713275939187443268670838594645303260882721629031674339424347026370319818518459375516193775873968338504515739773149157263806278544924091118075233693803406755779523081380223335935521372636957682924347596351169591083220786729255282458545930809811420694405483805500496002238109885111827623670357471729934488519583375326483113179038356755881540830072269006722348704753247844062287986247656145030331141961901951168889041422573493932002512633003972692107719338918107968908524063995544424302000466657225402583757144638499461365838154679970408292892110679633045609105675230257150805818230481924265422258386552393535445754864685836988784241617187167446513709451611862047939731995301256617206629168777830892451325638587090014637600028239943116980583890675427953686954158917698339663760859079933451741754679890468240707395872719051614289399475575747486845454244508805552948087762388446098372666839242309620569375293093286280626257435840290176976959742257885441183695408947442265890416052721102059869738046206609743005558264259064137340363604721138595364397120949213506450532267578957492459190313999739570480097426069747132098526366987376991829904278574447570787117926799417679359292630188656090824965337960795888671975796345329947122920595962844445959953988213215621394695505789334463944286661589375510094081516269405367304863424465062974007000019961685153852637482469502287855208310866848583127437899577760786551657401225290572260603995952737919804530981958298309327529117679836760930587822544440985581304801078364624875936747136289291969913349213371969142866108875347952050390227239274648357141672832510299280999633324886016018821151027948466456494632790859232757183798085743365358205942610798515803991300221769604288567839844616752209409969095392933635270145311546129818824923432600928635418772353438399992756721035395247596448221429954375517958235869162221045870192585928389015476303148285838375574509298526641487104434299378454599558220380751283424944805703085266620659016473951821840130307817540901860320596921535307653918966897052439700128488210084521480889755785137410701752335792538899928101163620032303607079557812854803782993021224351865267593918952192140314420366982791594201356348940444083849704382909977856480396253266155056600216825400941818839326235065806891264568925509998885576505086582636152518790447858982361082086133514064361885405343256712922015997906464738145833639960258692206614480411297891324033738528327118728566945364218941050253546292349540104248200432053556075041358868333072152144449668626596091449076883344255615577319494116753154665252117602685758740403777728480068604882062319461513812080158323104378763495559150401951094005400840691182403843825723116839076772112407083789602397658350179461404168458638200015718681326590756824620459379848176975292217359366895895584376790389058977552390580491276710588642908221576358818088452956020121819137791119743950400603727574132601299747916116672015798841199172751063437143671042621370924575531848478585430013583124155564929710515790515329808469854875686491111208893575900794770579979689741260316298935098063205885435974746766363881332933882695108146008061515756870288004656191666966492218772919557562107211508625298349781653624786264315286954480967516919350066880682771154690864015574515179425586801931816688148816847074690841573024176437834807943373500811510006541585504248141604538525459067739693597573794205281531918423326491406912477129097011671616633931857883324088138394389055805146727514643043948503755074549337344055347116391934497055077656689245690552559841447209855581220356052873540719207264180022744601292566310113020401508586532653579192774338370542031493560037296433320221011627186711040851417108766414080116295304522978770421206225644872429210173399044752345716526014016642932363913357854601973558072226040224678820059538471249340853710705083776867655806559017915014797028806588236379769712643334710364782580619324062086888023297489152139075867801681380734476263773666916079447280318636376002060346843645589340869296128550062389506781435194773652229033819292653026306539437764145245568666963670322576826011088776186916396406460754025734495045846729691239807217199934435179291512254850613574856717892148217027406626765916040868574035464251220469222146587549076383834734884515525523625521220128548567038104454469863160077597548847069062981192298570867930868040162224995739501624250661448942671885191581856353785830841932567908098525448396938769830344977424332148934093932142328869192992122226069929655256554438832009259207972524867764799169730128157877865348742489528713981058189599991352249162642360318797974220362283613480908093704147132826404587076238562409607014765206570656450792765253609480537518014851865121560949219869314274759696242880718708137290444097980587447359544450395634618636113390167361286724020316211132773797905506442172885071363500325528684031650789162101391756077105669311649541596072083760392957715001674521610990676719584003961713045724582972690700272439429915075281424458959447568192713088994702161759906089393506894272883231056985880217625690087437548228474429374062811460233228446983304611643905232764434729948869599075125544015134682760719746560487286666661568546635289611951504517629749781939249767805930258290982521594467520132304830450229495771742831614703707190336650709851041505626152663058995168596124057595834792387457912249337525432969816367681103876564339133643501484777261196662292925856645302870752522871498122774706974374734018268668797564879809101324702692818449004751361996317578574090525901150948147614892617691524499982740794240048018474437495752849022445902717470256624709213475118989719127777755114953302094308534870567761709929466697147560675233561731564414589976296916505802284215610644107780595511760025536230593392501155226276494636084131476780628258195374883500061381209324173438429631387716405171559099302837577889567923575853575610948891065745880648070929177658311191369265779018972868420328023764085703432100075735502547936128754573266586877074606380235424739335504820153998027408745981101405512338240846775540220749272622474739298042136722793748517616983749278134820785481302600636355522735784753275834225208882112886049031030259842023080873546406056310964512492451679557576225101705847439185746443942036933642797806211068825482992961623443212750000675969678440755255579714931180267561345788255186459468872820453257997639729538344105981467487678330908411697610665760059728041700781162458044557314389289757827960768420854441237450768586679947509649772248774212120055960789305056912076143534734221969686198843944756978016972633793681429578966639371395532402588213721570365842082902891472677680025323111798069984306041053483123462212508344446878617831876078032843082091545499318209282371113631010477489344566585522970693736337156658922089101486127094279721866236245351956451975313172469144407838081016399243040350247143968569245189833065554912623899857462157153452187965095638001952835642219853090737592836324103715813220433878026285724419208604246757819445210441833626570192370792987012350180786756427517033817435375659935255450227768712950958719342067481236576155422393753270780682049665478739420162883577141216136585956044356791488954116868409584219845592313723911755979154846345604312686940021873419972046541973276813819576031553528306151059117194922799387805439984005605449515552256230700941811412601447250500944628340605243713533908653783018316349398746489792024318042685956413923317026343810893805350591702620813809502631939216199377534113769556533852967109516501886051668597179108806512194973478757381509739407285067553553926852330397130467428916099512659056789180724878989226088314216469431124829099342201561757851601114839304066194282347113304533464252511939716129448202538638418248512073832430830248539145388805921688414954201183763084261365948237116901313357311069683176448442921824097430272567190304697753694786089443608696903484853809803122936783114885148221569049732899986874326633648590233167093750966596760718765099128310049121802721461399324446671513846140021822314618856557055253084653891889124590696684544449608159463183929990162526548565339736451904050037028775758069975128104343973067607208076385725419664947308085488598575323162956944039165693274536860538890465973340896966512109740529491168512059133312334998011323998393647766075210603151181957955319113496635494724748120913029833873056412653159166302119662620380073488263955946689005096315567457958811612568114228156577440517121195723280066783293555092928359359663649489687617293283372872450499827991085697477545474755245452620510939087558239581458633012851571346801115219195766499292429541061715100342326580158453522583398130958534501427755204993316369548401498188155957974303735162531343073697536790457935437608366228298311155784455806727958697999750811966130853571473606586793338404512617015959334492016673955801242353098171056754965477810421014728272975582684961823502508496788684372471320806204714546397724443110785312431473244268354234246160925047449517850471961874211927424414413879648532619800373172111294799555599263776686083031598968743522133937727227496903726776818019595926794672226405786734006334951854514528587449180590475212615025589539374857346828113218422380001374304839210759566085378181319649413321894597565738945153415919221428782489901821247279862514482136527128332265417691279188365019939443263147089124221346412442435119877306397176841710619957262333495963280567698058437333572327475049846032140446128967803169528914270063725911592435312914976446332080970611656826405928339819966741635997276736113674654910959179372686148154848354611970586236850520340157573770095449148421755242055259629211855519053580738636204946194748311901957979929953772025971214248278320797740293535696572927775107737339876086549576604855852882799828000718162420125534128455355224059287803594956009453237024196584680177471609449612592738348101559491340938978234403792648189812336949300918753893559386739490015679259262583412974372515105017275477531175536744572156543257477109881001131493499636982422749194927837653493184908878405963260340234254637326144082453433210056527754883922704620321518923488541716079505359214685891904032238065974309667430059235053342796816806658581612675270357951982752228530487837188711107739996002830888654894168030812700305740855610488901693433054459660782753065468764687098207096854904632455741004941216353799505498668413151974138475579176149522910492269685528735806320364238683837843246922510441994160399103068564016469769909164010435424628262014338723822640236835664015082729809087609614702187931909647341115194808328224839621930890316425837323391852227311009798823803298999221484829635037805310334806552610087522128091423919770164538600286119789722413619124169519539489620905546472256224513069525323248052949509884979653838787868492989011418903097888531668736294813390974436245940132055167229594170482612127233222970962388681753599134054834236223077030260569419580228620182829761699966716424879857118234692788800129324944732387684398727733489233040283036625397469853405572151581319355120643082157345042921734760845976356736146006437502264995296330750688533388544471239680381793078354417400221823954088720421307618419634478413774059674951668561800329335015321738374920819738218705685405863307789277029912330476587046401993929582063029705814104835345190927655756647149702105422990671387230800552897899914001283751255243213977731250761418546881553773335378139422399591150019882961850566921884109033945286249347348553668876847973812375432484898889877679335168342812152912383255127810906051842873223546989184900282315466831427478015076199146010153349526312974951028286467684547003350713420595063819769872614755309059604489859116139201780849054018284754905845771266237820866052558165239383189011369481932056075336393029333685720706573508510976381200418186974825478932287675415835597555621418091527746128039299332326319187407120662556768900551430655054771515869756956876632038006362240941750371168327171490400709391474457133718585423543767462579732756150388071711436006756438494717920653026260629793064346610415826447139929285465382325901796139396035697017773637084859340325227524160495613226114082714715197005206071497529927975904299618474313240967636092718156902455305496203404620124624553254217374999836927704363648412211653806551799972934839030248540319333965180268233195892831817022196439465371116273923974144556446033560882411351183019586190806640080425881513423948660393903303666020476250496766576303230389562719567738176616974386812660535068882979763159624655070003889333246700175728685595577794356807906800953910163942578147631487966340215876949304181128519323553875251370797567611287014251059529627669363384563603349497317022275008569782835020776896098951707818334556468205008954494481292409171782829438134715397105835680375767245159104110700422245114830133592479944324513678578957596105359106651389947976178081632006201955940372909051822680382985445519228592217877733320938783933198771620520397674041717213040155140714577773054876767197993746566685981787354711715834262002096894556360866711993961988400585477538517920367819649705005013470568360175771159687061414324845026062261997333751932368258167598604716160372924998089112842359992506553048643378805816250657770268600152155437988169543957248033582751021111208447888070566255165875989787416530911796738034351641144492676621347245464228082594811594422737093038984003928013874908374493972655457882027600060220247679445867324138575881878686335274492791424315402607620904022475832060907742561080407549525120046908628051766761200567234070399800601949269449429082482780695017713571183035977540099143987164180660780317273026383934003294424038858540283929824077184098922932929825387063073171079487010683999162044968145035130160549812157518669560406253443232086570721675305387629990775097424786406798337131736425153787686890625374936174256392526671746377866883464987240668337263280930539748236745092507897812062682623028205498259546884999544125965187291199161197483314725052205597136955078801145461778409195091682679712152446964150132838729073337257207375661991171574738954750245366788646097079945221199756632087650196921119747986930316096095801926653709498228653921124096028349287154401019740856208282954016361607629547953746454712335501905853763515173091240134954277040454162539025790900147482146647620679319708666144177792707201735589402406578041727729029792155971914800855617099667952226101719716585082116182699432203617442299427413680671049324408874482597734849031302098407859880586042088939300206481217810278582016576055324370025437657418776801152582884936102120205953226321455141634916551304687720108129938829130789245293625758446558705052365143036687847484883769382771559335849831575591173957312519890232047308117679915364948252835653178634913788254112497737391152022490034942504733113048206037679032177204184329866779122813230169651267796121372529057825536698590893572836973741583203581236876617853371161563722826388132144124210645063407231388262648834924157648175850621780634864248863179264773136821007578593419155398064513427882098659878385875208959040067432486853163031767099444144495034208240772924131953587911923330350528592238291684372595821063795598845789490554873775678103860049174369250191238986511228166385858077274689756906491013265055007387117703512907058040717543522454257321843548845017702883803864031249803522580331995393899537131488815965189086233050838778911667996787082784684682829865653866910472921314322223436529462418608574464453462443181576480879383154448334139512384026710913426392347993300190587817956151558361738322278578638370115659971402323375062525232849833178495294158442200766185259782241000015187558759578381038599841983180328486293252975868246499318917329667189091589061967645863424483579206670532327843033895620169731568337849364671720641582469756009879061225577824062710967795616784330454208766232835680830902892198082387940544811874335794330819450753194663350783749402711471478851968574143647958113774680424029985809639775503158423070818904895848734917567819175906067382689494040493789793099907602842348559417722519430270423551242988016713777456891738121004278260196159757067306248461776646193285775682936624580859057903831564620461654204744001603897986800772784850844682859210664433548203276201316535120423098935803614488014271748883792957527699175321133901963778483395260368859272676397553600272552370650317952612558788100401530597966895587768771343931124796263866251364547935127377965964352333498265456934041581107263422763726246010323582895811402699205992515424258456621965366921911880360490952821050599441870050626473221528207617116997891493410283912834455983491235635533096543573506049115229611382305825962323085595674505345963204361918372438369124008885348960354604945790845585242133762075218235168724259618996754126878159923248324590258558690552963872214607919570286153169070621898791181035777507962286790656400104874945243474672925993054313604647625234408915334491459089675270593544257247934418538233346695214986337624842533206459041689761516740196350858651414250371509910948302682376263326886223923817883754308843317730314160189940181265370582135168146226669598936036588802340895997329362694007491887961605388547433826444549384516511119894730563429321178049890722123388694901244263482425446396027428149862324432314314071716672883507783872465376712775691758566874858655513370790974930737528284146211394200923160737200006815109913855207227057920000940747054450511332928962529301265625953168699322731543631387606215218979923318945776835474089185725512365622166912794078802722438262601677422194107494063192110471951685701729901388832560603375357699489062673245116692470013517229782057461225458377153556016716523572136955836999169628183615148832078471677017331057968185515028827469511741748110261344597068781074902478244363972063752677212213892847328822652370461439061172748110187197326437619705151536285809443714287412216375317950915102102126128031948724350532866875482475551831757704967133237792386159563487483048939345305868658794584868648095018842936270896631113798103360993065430028317484045096691320313120590415007208325642583113974237631209533661929984226447297274366392660751279830340183693273999752140789465931521901628066427052765166655104422851913766109612617296027294799691419095129555896545792956732322070924641399502512526722640440056847920851097583652304671201940901980865921461094608576044615353866430750676263622249997157228441776046446364632114966138926408013836797482814195823390969980813990980215292861269951764916717020831494536148655120872955561272259270106609392409661504437604727046401270645343263687362067497511775942460308284294350280267580109634441845666992042267511235146432204214812284026968564981260297142053209460460656856144134102358439916115168126941583560710100150277514808097352620354598565020188724565107001205655733387558316150112130462453206001319473820933060456077550665617735350237893255956065668479994449254562072137133156334679036129523486781125956654786375017049118986314592284903105050064000014454115293293406428453153088996944411442927047860281064842379522381603424618777410821391787628384106490015121533306280725417080359651291210578244835158660829515042842840203770913158144553828792621244667926372564050653468988254433284354286453514290854670798532558396576680329897802709053768942453436823626012550392247592600189441407247258534105973426039283034965583639509168525104004887668792193827072102128915640972593510481972360672784326554910923208774104055010155735423474910552676984845524636105493518446192321222829984250343577148798404894768129452667603598282948697758321746298989329379045779178203180919423448277690838893831151724135612215221429050962650652599045464664454898948542490683631901856051330108191575518994698651289184562839529149750675313816480513552502771335389590729703277469405013016041384114345667955178878774006239525559315213068618868779285600415792348760261186500273227284562042366307985561731129084770724450581196575483473759207566815949629716906526833241147290708193041444113878677280591028948892448116543723839030488607351641394778716985758799128408996802324931753263474074536409257161139668098220924472557676582873816014194845570472669948296739158680681732134886738723130001815843391140623766789366846390663762033097782987385727691351589035438618405340951558628285427777500518388990956123543211415629104087174409318577469769936691550639378375367063252545099109530459327308884808926944322519640324228098775687354926148336164768224647888765067852263277480713273505269296686674603540488594647141075558837993294095342122679798629370610925310943170725777008718126120353001650057422055388248750142332948778459950204916915082997149880833811512266248538615866493526319145604289026298653493301438483868106390774775613135528990373245081742073848518071058648651820484630594493987988022406168833693773769538441620815304744151948458686872332287509259572258602697149492535177802363343985949440947067997384132194208060238262454031129540011275715995597952405853596237564982546850337655696198311351348036507895857745939030821725544723633518292219260357942455455681662063406874537686815464715445791361264654798933824692206075689430311445992317579733540114456619098390906922010154350920892886700848753303277309176121908150550370394127509035879247703909102545264424194019001144471220053948656002138576581423824956456650787637460362246321673076767502498765010267403969010532174007843190235156799728473509477773572454410341135599336009109579184425896879228991230332744772523559865591201527929449057947097617927032982621922765887506735313518634943367607682632305341036345138242011590046636705050042271237587492215405396415154627890328899675152394314095230638568830799517027041080746604871969698471470424028271996668861728809142243515937471524131853734346993097335406714989801772586214123120109320645732100106759940276083766670493194392531863613015753018121470255655583162409099244581775704131922063863802375809892080020060702166364026677761586736395818404140478478495277570196385404484852198457220084862441955416654723916423278440954556479532613790107624094217405396224071437115322460752232273907144302495045660657175806902249147789382824535031953657325812368364413451044740083416246979375605551408373661367123653879863362544909672424329334830954683695847610572936750252680105528965680743916953472938282268156245073449851874949219861389133463688285030954952107574986515725815222318312003002919618847116006676022316543868518992845984693606373108739152595320653822221492737441202586452591150039143944234494835465791903660930885479509770734949341908001619082650826656074724460536902223436978858223713509626398042946232182843543884704143304531312431366146955264053939362562651822744350508508036106414960418464495926195617504840126395358574890908946243075301587243435313031293093124843085557456097084562093323792571643956334606992883461734318528791208941797858051446830781293647707605345938515574088695315086216338617836547133909312892159524312329406429819331026621865179648143047621710814429202100830845587633218958773505663886908436993541117467670608652200181958585547742955353642906547628152627264371676412030980619818111376113589668982455546155031672034504786818084957103406807140677193510622412703003021549258785952671017075442056974916309078923113410732429197120895550731405974261026642596002291860570265879375986387379190275269354023497511191986576911942194669507515033839561933522848289196245901958800288154813400919815970503256360594264037076847652028509332211974973671441761513317959762510707189384741058958865711568132660301855303527691529554724504142067709988602401424986053703633619636092901483466919410531455684318463251370956491177909844301816994421186921886853667002044558689222519938889131990820189163578513989029261962566000136459316815629921856002113416106686262205910413142196269719700081099078317756849152713046172685756184768221748012763004898804767726068115438667776802738131010023061104354479020759232588682631960415710577028403707181888359095002910641807373685085181950397723652913238751015592796439399912303687095945554211122576468898333750975743158574349517814072470939484347120278731337094287350069238510846643641158667211529047011186715823860047564996535761080260213920562838789252857911454328559054059201173554767011241058327468068555829391254902233253312937798975191576080238769926420214868693049071284719505845703534130991613394087944280711865287147689682196284344300383471381593779224700307710095854860617801132604883029070522104972513092739261827532388118835543358061057091379610301926973485115484003668228895635895782053588363172755761028080854356787739892195197905187795682675009344409029972404581345091882138686612658087815674587303081727154840451098289783883760584561502280675899999971453923957030391976904561501770037557540156281109748624475776085425990595110305155363386748989681656497052646197319054860047203843692341333982482630025443555035442973509673424053889865000317127651702834395910497298790643005855983217234774233407091918264549313179222200033813934508072715239689070305580393654781981357210381756707988112167546716258821666682029214539692585875486433901825595140647626224430982280075886323883494426912268881671232095068477162108575045973224756976612935100667321651681666504260156395304587633915018898444321614983759801390934742007106945624932509625005087761196342832076647822799236972628921136292111779728109041599336705554795143823507648451897809513135648126388739975480054825368834057938405359889797676087263379470111491594209865490275346966718304174740900442427237100960702598120732205018839307475400187013197628771643819366520124929623995397031320750662404895471747330713743446446754179706700109037424950253552592366715549192065979946803391461575469193696973642423636713904035407281795174315463147643354492268027082892590434634041737808006432843716240732484706916367956953238410995123383588187401419251137512562228971702088583096066017757879919823850985016454110952437225527124903108275507761930920957474381580346045842852087332514731161177930030257616327359816599169731938781507407731714417820006991854001721472977178723367244716389675453773808814246923042928012725702520642518718969869615980518906429803815348535507403423617390116893256223558378452066205484112912101165072244942689091790258308495197804887512098076809021378511622680929960699438174789191180508259965919348760992478929685524528758174462299616971900164313881612355514667748123769539941464750897819794088557111819529051879966225207902510258245814723807953296315031159174105277260143780349950252098965270337167198528472265231303744897359552950846691370530537583810905107201230516322807513745438214457856208146725776821823957422067845084249301435728808453315858671156313275125052188028458869456136717955835188373247086525776242075803557831119815677526381151891933924487233647885487858282413610267473069038378674081452629735875341797151312563725917533692468971273309668217597756672627152583197757042565038013473215687321070418189010312361130119755796555133846851202056366925220788922046948008631941971552206811159976235828146202077177797667861148599511234262474610415410656527892663741318799693820289540751317845171028084473436229847828810775014508759060923841105710736093365800954061367267432043477393524494821760911220781724953942894757097378875783774611653653762526780227484138463642018600790712216360838791693333309992317291833854382663918683173755064659410141487662689493405828052031485207411802638823861181112112989252173318058991217513278923836701119521825349788641513816405122495438574608506798895567310836604924870462053541871135173091479208180829665553740966699383784704329091452139146834851102010323339225446355358266061869195901042391664333425629423642176495029848600585862446846481430322263831170661239353208059782283795318169981889601046823181026937407423012906304826966633601861387648176367579811034110523637694930655996253061089687318221152482857796897605327562618349841362338527198231448037186492557640660245636255221726792785537632163296212928730829267341542109804645060535363069353616340476550985552995408503344859941688957930515421296916823443048913576606363934735287547524538550393264494825252556741702098211099343229924456322381438764986349220985869030271113295819601856903018653246403649840064832556904909120032806656134890307474224199122998317192811560443088707005152628166948650237416682275907679930910751209177318408263520399360682148075197496647836565741324879306901170372082465480525131888689733591398259911805276439916303597964603287460201723193445804672145655479659555900651567977327764027562933702653366179947260537454164850978435184401436049881944725177687505925643325941792786314897231827060130796473370149997245387430374099479815811880549068633122732749628378879814018675892906089792272741875531730613870973748469586768299226380293111680485537538017623942988659268706169449578710963751077538547309229198847591184698557786565489359647689297217939897442971271850344133702999285857349101112535816202548502419305503220784864296448535484627547454240496213690498465525359966918422902531515875727397704873451002718077777759228353970555973404116390541221407313866076511244341678002715301330800030789026365037521687812861313301400026258314628968265197288460216069081025774250863815595250811056195045886600879832677700655003568381210580030876028679511094464059805971665195400565219998609373693639037329281841137203175047386232242010735912796225830393639383993028911553834429486985725268771703483202890655840510713356572427003752967525808853506227897732055413946012573823892779316648966105752482046368040896184427925491219027504174652454063820216653969742253552932624167596169004967010937981188365131881348864912206482826145011509212963294450200329060693517000351287983873298068786823614052465109932040276658438392912207437826134871917855250345359317413736883463794975345889429391557082199573582671569484119389033577885612419088420177695588955367116426271883776984696499154634485729100400716637263569251472455991050464391061191074796722766027467501326291280078138708736066524935632433192681887372604455542895374247065402474529544373230229261350020082734822711651661091471296527366017347233574973608892074385514544961953028335296668274477547450884037350879664587177035889450734064531671082661261750761249046413685456556116892666604752476933186280338402851128030587978785403134026851869971595713037864248458864157880977941235203321535045206952336166381186490842237314790243250212415874898415066186031227881309747794386979412501968602079435692350318086401665009051949843106618236613757319985011745130638245291399637514952225495958194249922365271534672661301956049189105322992628311115728484619888687186101572377704924589028990787237453943256730211876466131928398157840214528730541018843846071477930224801528945656290786774324141371680228806608885449863988607951073091876849622163604982067784963673773061608784579986052119671911862579010944737126763295775319850454262800608762261357584747686437524473399880010984233041282039298098395048926054570445370764390559894652345829884560796925867613655228913691707687738804719644211386395349441908898837628782686737201164471033964650304116444755859780023008421487950753077497459568381651298927156402756475074081669144521034527038840138570683594241490205540139246711557562452811628695055649843578146157438256763837090984026445491389602765022148123742399594283103816656839310603596661531332796920424445255793279111261056914035916754837190048699781084540883502247869544513286257683726437715814873658157853244033052962610339247964743789416443685998662286400530622320091202925692877990751848761079457821757570542351878689050355773007069156294596277940745370968385660525023610637272455334897182710363553797955589553657573226965959529583072826953035334523018407017414253098013951684558132003738847149656406791391834841079332561919627913818857605332477279361240102364756279961094875332010103140821103954092144478288868431398714319791019716304607171484999752395024505267999960304347581121649098014903250334746588293018283823414462273101218426159637004812932157314448976154684441753885971942207988521822068405277874908230335834702006411484938494489003219749925364768603718829979235338177464020307988020283661854437935813644752649264364719849722795841657688554280086823374532590300936204408488318784354611389144345835086811939990982032368560120227542379773518472910599248896536603814445484253174471140516838393849356770777543203657896590606057693623550407603336209386297074135265974094656786514374055783032897867786383216189337431827153166119702037708568462155263119900326706966477754535057521933493823231416196874726820375762665426628275153285874965659549814401510003039648517559964614085259687083178374239383644554459030280908179461290314647480272984024848354469897034350784037592100338380668599716088176228129098556591623433682356091854816120525079003809870101638557826135502114618327089126969527697300751685838691319866725344424856107218885323261682268570666616825684857871988827272901580550178174662619595404039961156963186364389658737472364689527157470447741894078717973844818389530244514502282425215996877823654308539075535655746535884771671728309514386125819529441008226170560237062539983149702692527227421405283599538737337218476701969797858529592300471131297076847419798599498099656315475253604502430072099724391772629581683833883203110772534686022117724719485031892360632422397768464154188154009600056974135307607694826970707719821350125685769036004332436288645847362409823721512742865306398509574501261394084551329372063819103039610649949739931091813859412491674001312229987256759220349507542995176427933875580087444667329341782834969708340435351203207309527722603203917299079690063236800060796916125151075598090209009602208978974122816168070321687519908334813194238532788707078863287248989034885706595904267351826143558160157086119036290713055346923163087896499319411792670792369497570700266253435569299751463189174209746999870442800716509483467916376029773319358352371665233572855420506283766365566083965876804663741977175785677687163416430314685157515249266731191831890680402310456378692600336494652605850454467433459614509099969283305351881178670682895418172050018523613612601431333895776584602714222206249053225757475642280549587245735018322820281281168823218177947037946437222720525024048056304972564034916045873765621218264945948380574151956803130950568380816017687792822009935908579434957924696340161826706607109940802460379314610691376981215371290002344493737147105869497122154020624648084208832513911325386403584014358950895151599846011874142945191400409618882813089463433276093740753921388344399520240934218346959287728257931897595353960582213374504305035569478328659950923833607372933177555184059017949029334487317296798591728089734790429551068778606313762385512405798136056036647013088490662803415978073284873205984181213138813174978669034871408227314325741042941365502939483236933405830196303929970297168398961169266315095347450441425938501844162059878514256814656106784991290042282837670430880670207176828386834793053005986067571261645278100283677636360416399221656242265556642950732684324080478348567316259356271786507456545966295392415290447490097700240882409522902817552629329552371046824657894593533364563204070849001074642692974593599673630270569113645655521980157314058861673208597880618635149081337714419169653503344100076953561420534443779453226173142692280017927373992179924154108744423498096653175778988317383659735961472599904237982023395910516551900752124492237519015081330014433337833834934664972187061761437250948846421369575890981222916775705203610971200669941246234490349260741054923837532767490778043756236526766825551567831089656603931629798174209789547840501346132219949139859734836146838679021848429920750513582277461867862864437508131593953999596385812609617486224009418142141889033870435440381447543093504946459777711728630461529318128268986273890533986015776789751931430459907349023854597040006981891715342097927327690065157117975433513891219002383570058904291868642551602337214086368432890557505180990906529682384572593072611131242969998675840419136750464371075998093928256777078289190054677934177251249361278985489191806411384005070973430973228442456207138601546792846799391204267055091971802947918243012820192100082890289274045605216708195002828639381973038602039272798009929669201758355600850518639836127273852080231885506477762304002803924108608444077982702428064240624056928562708330179700516547287851752159053620453008440491217985196374127755311101879139794920052821597449930229716376823698767609426513667407341509906455794778551781187682963075129010194173355034178785318979274071282068961230126902426516618342142301597614030174815687342567992044087130848721036245228485698078154368157652838856064146403279863648733406933516351620011204115357943802825209065895120203823483836622307841979238559685300313607399571061070788523090582622735904548239981264677686892449306440360670139223105535120523801156593850364773724415638868401595729538343313948587043745457188419196031408851948421847789984368783922977324707512792978305668711650007456180521801133682068027394269314442363719558046259424808910187753455113941587109554619513254390483778997165226735381385223000269938108634459591273622508847692177355446727464458415077736766501388186282589286469507147964639785321056441769131052787654223823268313005332821413753853161207310560742117809015125597071267676390243912428975802104874633381527862105419126532111144586841148715987896688512892771094451874970747202165931675603592615496992725961624140411214725073003809960081221520312370465392158741263340008351169693389697405514266788581005938787798834794872278538788077964785696580731843343933415861731878012445765072179099275818090428747018659934237447736574678202911901350630724192032943109599880641429517373623516077055706529896029201926129056923217173733124206547161385122282057218780652065738148876917978915634011713587883231428897775751520778237425005382706044818807669267008155390927310129123007267660016550974346603087066277917067400266528078773419445768740550171193389124305259958752479175186577936854386520911779661649057865623196882093577980023148434954255567909720703977623138753690046800753363513287124237686585670400358370091647209553447059643253939356201639273079029570309723177332522475071594300583838698374695781639953596272922804609970590700347477151692795535769682021528301400773190134159881520940072435520998513976940308230097854939055566741129971291380501493513202379867493851350055580711808562736631877303391927197609339616937805451619885097855907012535766541169162923697070717326306958427345991924666771338675954333873339097164819519813405733691847564156185245834980729239591539960926382384906724289604441703567812797564080035526454022786324658879315488028261384666603084520404605104153182270229585410067262453829562670170584385136837218856611299372565730918336812011205355505477395029693629417387532699891464553824895457000964455750464928336987324870536478872307134798532600218512439693297345883937361969886373249361653662487274813405133512526292547340648771056928788877919426811597955304884252841895044277908071072959510707834957338379680283230284777629445924152416151124695953111812605652231854306561081702723133753949713013693736816805884074866178636467902545692373488323356900722102338435018517403261309570501504860209277800474341265516253023639817720996834860017042463951184449137499735139350171054785435451539203397604127172031811815400120582860373206824227455101523666231086321517160868493230003295332925005944914221264683872639918329466669144904402937052394476815005060169241731227700132359599947062404334486368905771293851429512250390148425468363346391655885265987917494364215443239423326366801501475870397846769758934456289167605789121036208033472719131914478677591470673713741619149560870096008630656791972847414478132919578543869103754241311447765242433841469960310131620748116514648211885882441677363020818592330008300524802367484927565263555937305560114279361275952373846468514885995646631918986054147725352364552756717659266423532077984683477339383892079844529055330690681929545594273198767763229970258013977155549962264983529793383288347176799888164187059321638016266932613546094880268489342969467614556387833242062181811718412171065831077085409843774350434359893073493269837476131091028816948859943291676776259180745956940707396587165518552672625282528063903033779382362668351279209714954356968546847736075807557890617959917769117565765009938035243853797059482863673956372350163937849190825467369763618805547979443972585533366184637434993001166752709001709844610521794981576612103151103278684978453221778009796282505386304002273543395331504057853219019799622880621090039422934701753815220991539344355187403556732312795203494594238037412368343566736692162150771277864163748958674275577160772604594899369910913604887599223761230110689980419017600349745257791218441861689839667264666483679629218936324387984033999908231379785406672112065417953331179639167636622185082137278208289248304776846601198501487682087468838064889685269969943536030395249417181731379630540580197641898499094321444373015318511486214999323230561327558917406124527161964225679779242367033021302121116892855121760001589287549317061657862768157414750856610731294969481052155297816013791024398959570062039113684768602212288780624360028879538479882701709710940568799775704319169849743518629698482240277886409999557240201189867395371582915538317253973141090972894227989617252511805539119711157283114566725736425149704066895969373133467666245030215446179952699186164552428553957406085378540443532755650685092390190715830471087766391700247659382469963594322708550770296635746113430821703880662961442335827884385961556957913608688709169923760166873605299429820508868408129425364131316119634017782280238858024543651255526395362576221340469020860937122576704582324969070650791190779683888612405687366873285547689093425865554317234226925837007905547456532327184266537101549899813276189946301814580491568803766589821194128824205499760568757376818994586488992864623409444189455237612624604822180726158715235918889214089293779104348840034011685082589072247338292482593663948068194938184073043606536219216875006122396902541268639762640482527384633856258225239366091154742657870288071987241997484566258048153087744680215600077224062191209321849283245573568908532721942878197707634285250705899605427321472557669418760664507176874911742187608341617097637806491310976137383438144455837743081784425641192534828103500962340100082226580026039080302366893304294316656396473837883881141522796864996052390130360572326071871032867230433743926879377797699023654745883527800200618537658443861312431186581628121150298788216534277184208789866872840447079502979446465922733636284793831630383496680200303001873438371399402390355981640335941994887501733262061502180744156140036443958529973295186637921374990235182095411352190582874561850381011459711736204189428078175820734271689335042129591939951360932724845368863773650234231525940706905459193941047332667320763796558668769833725312324001692334304007074159507307716064097395334736924077494621229993885742179635860833383414681036362426757050388929614823436153070964424822952124616877403911040540350085323736364062881381818157118289559566377656144076926779535094302756000227607755975587053235677783916762659092316366223763758763296174873693548755229694401479747545724960659532448108116185479726729304655971736018635249604556680777909502223729899644509046266767983651909930433147116526513609686961395354690702635753412210477964805988787276876167245676884541055955104544824476292862482785221917479562733483159225863692331137815653983063431213801791744598165132718700491679913873915065270345857429216893632779630196457915947241480950295305859376183864203506879199776481162461466331330362056830802106769801445396952188142160356691915944825317460287074082330592955695632427205724443945863194856229313633343300716343023928081489670931051950621660693505073204300603650784918244630637421308765298647599827688435774054570608266284384932263841721782222206589008872065466571502893618811328902882905917965780519060739600465824381199905394396462492629854039376236151515889870716476101818150306624299892868502980681713497328270248236608913701097908010325727902478664688580511719316283378378994377356463995698792728577069730684743749863677814150789734712114461574721538349533077243224020245737935159300140709543238843149227698464627759652741475370188962416657135704277109639461108104630426351388842815719190429616797489327559210465284837228361333413665737215439735769037688883833744580085603111721663979054947362477031795164305786450549623954993026013531886312168839992378786513384610885819669061695522106802043728778530689662432382624122368795641515602331755301923829787765780440013011480606952997134288063864711994248896811816993536161409679215338941951892654960518100594842611793837219012263547340696725493931794596754233759388832268509024479148906137489414348189865313244550849614004876830952934642134234780440791174257317477573665542058024721548300452299246501763288003785826478683447703178727228760344772491754467275440506962268738395875330263069171380922312950373446134333472872271825251629847130005785166209817289453935739312956653954133409064084413803182199829610408348218608812400196655924735609901945332656981651684808522505281281395451163833829073617618749743863089313031370329009343571538888985101023361039917138272971825259102201716332034030430596469963572347038994975894218310954187171700956504120611620726808390583230840552892367131901629311721091209988866489899199436049818559376373946421643857213655957706734534967667161525385043520274361982476778107905422179378924914305506588128622811699919800211733915548195864748186314829264957052819776419503655335668581095348226871133020795402112751479280061941735103383064999649888899888409549577331535192943752510890191103631580055183520290519336369093925690856861991489559185980112323910988409959994162699841503287491135915950265949660279010164470972614284443670895462577512689704594691881155236028938305451093982363552083947107899897941168129504325841407950629378852673942273614261113046755058896799990247315799225810219711932154200314486156773972660168726566211304146486323040022441411140202130936891788771427349933785485622052978096087207337952106902202837357520614937435851857892740261192028597186741421325780931196443092551553785526353665276240917784459642167144950107438827130069893821646184279254439414615852910050452029062466989484070011325324664461986503435114614070349388138871110972328862381074570502304799247000731510898095511047787785390922896091297348226337642615943380693010739201976395243838801180057110395711768618966668478293973203771796102697336592512475729006272233511281406986402016936485807138241494750800478867476017694364317105601189247342400378694869057114474361419430467019902282814006932156850077141761175211173124696114073914272152482054764358604828995578996329498237512879178758811928764769735113859391381293871970655714548744566424484918483221679818496291970786813182079231855568849745730620800060003001429752953805675712100843070478878352801017186118969433795941472016286566516462032170730000459601539374450065986207007290180132767353240576364803672212720285600209413986175346150094181452064576338878606240167458800828775621226426026109874733411199346717710526924836709563798432406065825403566353150514311106543438690524519280124919591457138976614620284361052270923837231210187589311691977760956532937177921178159706093579556753600720726875950737834318623669759134397508626982250841929781813417988246683039220267785566523410453718988488873645986973601577797584414218917839011826217746635118836518404171653279631657871767942005906623074913250211150423985584259366490401559124777647524396532263277880258790169549173736010751981826417489124653614420419836159462774195514309851256827166476155961456883146650846866104550769353808042541287683382461017173679257696135242542168027669646926464140422212754080940514855723866518846569129755240694156691396845203852005311099716930292993052072419829853582076963139195556659563414411537236899304551006868281557797582912889971793243581626000255612101716875857211448180583337891987396751847690148487871501118536321694890294744964078016210249795860092128235916211877523859752898627984449681241054645803074825946397329282881779493351433381626359660979808733335350340457580933693788972338092196012379025042987131539819380684892686049119968644666422040429090538251078655544565470481959707391835497300122024400510503549937751176814463295034674336241220319828939468394780269297074458791407768935074927463325099776299658341508267942737999036714087445947878544306972743615769898746698604424847146383676110717106655669721188737351851666371650553458940836551433966345548499499912036707651994195397333219349928973256939810971164697855400822723483484113154398606938601349950552167220125015059874251877111555966741552104437147928987470998527461912678717852160666559366267095218734446396344742547369469027743826610191303879443456735803609375159071304447257224489343139488892701874244050083887779557349744778374228036628506429177225467061979456908053129911402255908311013498573515316709661411814280873675670453610230360920322412457562027770406048487569806392471794310549235095629123383911069090359063831748608040698633843839084595860235167139546040503693546783523082698400259369528207341033425222475772604117506603951139246193741802179397712321090109867159718422092109407430724675879862558244466918048180936884061921974697533202030581604588826055342935887801349061019619249820823034250770729353376931683140275658797681825663362266272398730511800145750146268584989002368231329475120293449713280784851974971244092105042382147115714398920282183138444747390357710570961488710375939971522805399542005466545292047867859438532577130667387715764218925690775586591220687011589792011390514212963825968936388070289855243802118028133206653832307645635660154921650547668419872883404628687590762746891151914485687266681950289234803619520729413573923446334421727085639859072979765003399943977556283393541359046303933466744666160353516976547795344073748134359858696280299883481219481369986570301793454396451057487063685706578467655389368490654365968869859618268000033946544903754301768201767353004671362605199067312935724418576721055029364009029589471468677339877245672460956515999199009266926083937031732734488548887736160224353132945082085616570905827448528992588460279272056605860501788044072856301246113813627095759212154176936494153988409619058836423074543939111943540340591056663467181662136663715330279123246443851765347631918663343125809962836345214717783005100800594451194045716797566263095073537821927041458818469446823209761952306424223860922778336632708812894248591762566086589335966693833781485979832287435113230819854709484676727313847940646343269629831528639665854170417829420412888894400262913666043185326156863101668297762987634082013711719477416920535054990032877448336040908431199254129840520163793365984950690713851711653373814725581944505948522738514957372401644033346895423262195637356131591876502625506104969639014711703547323174295246436890766104257944610729093141975268299433448467104261037756367504547486578650887315955892411636609985950026719477476787896641265187715903076721761558571249279033654700636639106270123152436576476441290869037323262489608094052210486560351275777726406999189918634291443464628540164844587972158143342356993147790855103858888539644729248920869660791509530519877800560982564608777238933770737370950756418339604761138588333822043891311699287758318908519740587525613723330227322893718594816610891369400154555573132052292917524512491862196658651406665396522522756162230327940677118478998297882756456056326330213424241586893207905405241769044708945820355482061196977352133815308490332488313811459493545465688745988202396973743251921145337976446480034667295496558655366689613116010082508919406920012639973034016068166351166231782649310815591639138456842272230310282228785290851435241001797014902511138710734472455737563318901712520486419375715114776419570902594533049465996572199477457092868124832995140720393824940057699487064200093574931664755851570714575103832747425274144979514677715807380315643627525223835900696732038744999668432589468749324127211727848063185044411297009072943996013389203582101360280467799212466792855482359226203317852447811021975052773943277597252576888975942967794601017562747131538637963346496419183296181805685370358481250207514253614011282203240567630841078024555274397620188018134751534238422431700335156987730944665983031810485996456222961372644523016953644197693426132136546208044864173404548685686728402539403355880241423529379780119120626654539957877230303962742186174521851795385621507229190181978200702664018702837361731458669560515795271603573516144517106796294671667877574080034556810113001806631331855411433593193896434135083168897477147828327567025227571691561854227962586087618289377089190654649606876042426434419642703633256414751147419293633662700974227443430563358780011281559806259012535011222001504083698295930309338473115111093471590674644805946239496388558540499990636054834782852357926406060074959491408155035593154774468769615717907159955325997823843506522204936968179396444888012694067234984343821148634928213557948331640067004419368415893756228387911034757268118796937945696515876097653124797479559099255243585155387833244631220817927864399264385688209560078091905223865129575144543018816980916761427605925655081288044954779367588356929859503581902545975154005161921714666579114064343010521242265767066534051897179542766901136593200042158016456422230631915913318419379343601496647994968868580992485814077691704659091929341352932485905466135472222967518924266023741153566272037045151863210147504917371880389536391037958547246852782460363933319236034938586955425399420194012863532420712824716170230012975709980094672490430977666642965328991519297322359360994315586828507202362459444406569677408420483636746482762895459313891060755078347369235688384637035600541906422106091925408266330460647777051467627737983904828925875098034783015727007367445736160464888518351846403512898659986138663290700176074245257973606864497506081370023632040361381581940747694280393351158708792037010211830868588548217957300762573536061942069173499026638012482615326279219960108248665142323398577698647743387176780321548564595057487568661858148105095443413674007935070102535821877236186730429696473993698364997424064675131263139433216423772495730111607259723891133474226068495726602534517910006592059280174726753974949688318963366684412725445963589954799276243212112150562146446699540687115799410850244560212068022786705172853340670758927243803295272349119759114590397638413659159026146637407240821625164448667401913329461610242625110805580425459830753384356941259777147008866325801412331532944100933605844235577069047605871213856882642912332514857360670133658412682598316463052020497714799619021130586369559860032977533236632115569656213367918201830746739730446109043634447169019896687315698605380506143159433219914928414228118481114599798485629084775975965598273852265354569586404637892225358876595455913980443583106596386269247474111442724149019641422001202989677498769583021702776935332942398511151777611544920380867834113635656946269728243201745344138769431172842577461380337430002491105820257240021988652499721579563183789386368155947816944452737484700554446845942507264109968217145306791364373172969323573832599386455146649249811953647735618576791761990080845140799614207286270885637619361949516953931444360545735857366305916989215750330824227719299648144191931932922264173034721441304387228458844902307107565670915758523129286985149603460572250890368182105774772656770401091591840211221973607580548445353814285392561362169706938269183999789405286419137765875538461454066052243234812467251906452510983170252421920662351672015960128880013157405050043026808527243676411383341899667251880659648740515003523459888966626660576195666947029834452539285017494953912372906282690384752231584177043818028696455024950943302630911086355977440425265785524920594846072118821894543656272085629799286639308814711610393417313947963277112949208896787650317660475631207848614442991319432997306102163412193056830714545848793316782796448851525307349955156296667601724748287847676390349982395976621563270062568516859525370777286589464385311227848309604527384393372342083127112861415146473505318428615844931881182138458980543680617219031525394631100303422604079084269156141805841221679750646597843114702020774657573706441984686203892786060881707178668100265064204045370530698096219870012569664384014533779855738357721727092210496362970003366763806651857503706407833209290254072615111027418246396800550971387764216143991630752744316597412687065699106599443775019795060104023698627917065419501553688249943756345339862518672265278885111696310101062690204388843321941559184796033730126947314791612126449651595708798393708160460787949374201836502863649082505203018671709684842195498808317002381900578610921530616767897192759128912897914679871682891166150730189938356129077832600054786722224064996902458832092301302321578322345808368475542404791673683311002571363569757295359941531738741653745411240623877193875719406687138972445011781236561939384361431007827219693909502676055509195061552785120373522562211963533214681681256858727619817326638005509790866062319547754372751822849649258688599351202532192386174002340645905449173229747537597059130276004164518818542853452325789488730123742942479856631925943525932573284583913123272023745554469879868767611576338953520506004776227105234829885057307958653309698225226827041693225598455361132430388331366469595359724160538198029102247922117392753017814865909919961423793155512310025443460587073534733858725489556327254058243192971334222566325613257508838293436262561119178755852213112402634872115536840180126071685330286347836075072190456912115311204428647311235524450771407905634270725075708857735617962714842811416787167212364831953691788340702982601322997302671500048054085198357123448382219638503212134261081781488260135939193931841327895341771773961578986667339256593447433823323095519793986163220439937286329242549006274749178356016304807101777103169174726683007097800531415187836689501475298544424437331462153038905751812076892390912983709616671504203328399749476794565655905495532012818112746299588634088893100589927310255978602633245512376184013876661272360937737453627491082691394973780919343103933786043267721011337912317859799647093449946987309524052764145235284390940394859891111583418987356140536380911299403888703885647049402212901018625823549020958845165831838308310176182538475396499398056597241849801045764008617122598206688914046941593793666846582266126135278109803714764430358727925660007719149717222176016469854806229767568845376695285897443772340646490605319633570051291316971583688088262798822329835402942015124674304696662626740079435681937478152356627754123690555183937202313504376514829754357517486091379410421347570507016102594481949456638180829126488933909578739925420357206158668586251076150149097431979440626817140903024942441861616262316637330076079213947365668341194026332670217406337438289923951129198078298014876724455756672876393468681386376635799942984169577311507647868293287413644052868310747299993880765902080817789733911420115933980882425491095035507126386660282299011014444344315819051804328089049472525682441795902507400385507209128165876313735927946563859023821081700842283712065700675123049891824413653682910419455416152377684018006928331273290375238747328470586600240803273479871801549614602052839695092845465487073349874543578507417836439431274248078757786590285986537397692965761359895743255947879529625061434136020190424003610898550128510548833044695589597197620384538693522440073863514742064657790544459043291472984801947207342256616172526817494743253299784541440071681546381611754624279072583331063576067109488968581033010435105427386295170030262094882263917368294209150562001020017001083422053305388157669418232387390736987909526869735747619112910404206570426346051391858881716437694710676453101646440990933361733246891336536675079942170237938631641374151502273157699294771367128502428309174782018073271450318612830075790750146561668369532644148591777625089950421202347022294737510357596934258691537652652149640451626345131618407788239715236114870701436896308666587285529292935424885990291812360020834131806192551832871574692102165972948449297388190580326481256720001708153134004639001502852666844430651793597131705527625454464518698897435595722914997672712443800352951426565301930498517168492474348247799479466489123683144475424605961195252618253313109359934846118670464765152957793736774147650871085226761186031770403161660052341190327500389409559406652696394670861487109383699546014707427207286402088841348203258244014775718258484193409627887341594871297449743576100704462709133931729201664624542040088701198984663397986304243058316709964921632771027845835804702232520124488671275699266447065246198885857206753934567638513700342402922782216851831318467196857402595236499263057751258861183395849779504039400340221004747433238675009905051072446939554444527916304922113378085846160010951117900013003508221129879590598555467220130350169815071962245073535667760019387152936245993149878466438640167735731201542577287006017711936143150903135254458938613009648425788485084228477338748277668222453063297378147676256299061391381752127253212372616184793950829111650281163038088072751227986171483156442776719522539917712592050152993973422381963800174506216866085491332234333234549413870568470653092884836604444502767311580507951411848962245319715947111623550420805044255888868819762692247867713039976077809972972945254907016361406532249377902701697242436063681402293866711890619152579738467159054211839282619428978034372491485530870208208724184633631246731270391349638112554620647455619955833366887208165258253637202508897512628722135369372704430922274812703470558895817277755326285642546845197879323521114804752887009287984365346203223968765388202261057325679602863622079039750369454798567373674499759774536311701651191229324406113174442852232088670975382140439873315003480980240725984512059995227278288279858058064709365886926621297460651110675556405858161249262554924209074664217527540221719029908662415687854250343428821310367725698934515403106575051495342810278889909615498826817118225247004549064325762193618661846656537018803581969212295974298621667078597365251632607596527794072099178347972253627785790634963038738902714039399043279612594333758944990908909762086432257461726175002644164642022441206217533597282807597499379574212732924364421134548673611882320123753159070849845633503291767286537146726546791335981763060259897349110044591992417864599230924851006298061362698495051137689652330358564877064599059734052104692441688536648699382249052934293507382949436814738887389616751012085563179371187095011688400188077807607101653449103926698701127234242661417330378078237868392434600211345190422746235432357651418102726518497901235696565816356841133677047768786035356459168091133716442120890082415666357924146860349742054377511228627473468091777069580656912347226722406565048594238995959994039845685508731708642265993234112236262050207897524738255905546564804800682941541130255128603941959422342747453431146507689039258343480850100078950077506034114845043668213851582302453649033915857687989780104801429974883439706019062826018122689589180964987114546018027420909722662191896616678499160633317875050097567979622218145375450642667255317650587509959044023521196684734018570000254997345573516762354189352338535720667759680415189110933733437709372177571786928138780769743081054438511002330389903890968078622612734252560225891837774843353603473791499878521777879498831909731090946295232223691299505183749755442427934344445804173405152423117326480290116687749034459873078620152967015701199749683300594364056612330057297885776996130492132021747617699417328473659248641257038384378153964950132449018828716419456320051224431486530420377077818535192874598036025932062001877303294930041470364630626888229248294975007160999354870694859122660619900855020359267294505511992044871603805910729993924893375992044241089901895907123369764086735525579533580126315120266905277188818691845570865586245756053570098889893448137458441357363477868195706337194948855933183757667374725559981431889474024834797250180820163659314309927999789084330372902874883734522794175470638060069246366338155721060996070943340642489718803052000089272670793537748480691468972653966765378082190473632129434619478957835159559425808756116823036318657958993322911555692925460774839024381404689113519640182468060942920657039700483899060271060951683977675021334851573701087351838139682989975949146699269497469263136096899205514846442256766518019152435738518584637049505385552523989162074613727569814977511233755919290863864259233324678627647627725720912292196934405991326635785347951666948914196942005284304882659367923717461380539364362029506621005233194957577972051944727425803975837413180170042044012118182590306292003325049487572306583455498184627079818827708528167205874913783714349419371132506101338989009351825832647159520294524385555931512949621219074007747139275591896027124377917492930519478703662683649751863150860093264346661668402836015921555624736585843129451316109149758739118159365182375533089558311090507037017965803865615237075494544490162403811211577611635645725214438859048923093621909293121622042677546002012380433076350410769386923333530810434876808093270836034322401413236606242551939922788582319212410518069120016552479912435221942612050142412220277610322402572489912334004244988942930705978167296054338931553400083590957432249802286773184352200081699753111869353952501249884676052874643652024844914146601970932234018431437389986399469295769016459845489000857298215596637452268277081004052481607988134487746727930155686491398552479670946168328593105142378436725885121357876034949766842860604463323299901534244737453317899699538423834008162771371578171035241426913000419976946194929027793168422558331344418322277113069096523651271586367825096310994947278653359621061400149294980262329222054696348603915243397981545974511879600883744498185859982742649090227306450102088261123977532677153092711465500432026087704235424678528170481912721117594829487888618671755499428040418334643566406795429103361365005602816360451508413954694116148346875113541505375169084014920903146414490178254032328641764097419739241355561749815391466993876365200215754339783032896938705180439779850629483262371118778238394909854584926171994477176615407593030555933776619280895638726683963392586596977212443954579470770002283337286752300458014408054908306070166901952212081519530847072195298279001364656481783980629834050506131699874503459736515113761150238040171651027350652885164197905858203057101417983644158866441696211177570053501483782653580433072644289390000179704407817199438496064223623365803982550867772778714468056446964539271923653001987084862987742579296409024872469470928194458344196437863851509284612441537655849663653509290425067979726073405466943529971834561021475332449307921079761395793001174236680399722534616184535394051121324053852219635790511667998223360654650347658106146024717814837075983535409262019758950912484209036345962371851799575687829277439137758141316439106040263082544609131444022332493460474324223054380280133954737329484021943690423441315434637111148917826133641078129059083027731856766921759923417836590120906923116991767836422571423737844498707630852365349388836538324588287290173022659707451626201755193966071784103451690301536377613035610535757136271320474417288742221308154128788962672611830654401759299601880263080701240246612143410132288245926135749399623945978833936168888101162815066769593181069598761896011478325241415233817545483112955587975880402669999755852822498066957275571683569488110665781448700261630089187521517496154576847031122658126033264048375094330366313556832569363919072097025519881272490389832622310450799401799445937015688819838243350377882498623956751101443154225723726497794111181390038881035939643969603650403728390624380776837210231339920983676367003415939343003658823032296330132490669342052709572383408329097027093598598032584353011862429318562562144132987623558921158759700913780713185153104343913223359424336802096372070184351689682535854771117894239011185381209805219924351971953556806188299938968817343059339164285220078723069764042297214259869677532311333168910581771056697614797131540371860545538338085875921130346052133420650795256170844089623568836801057996068780269593138654966562258045565532272966108627167763448578823337084499962311637424132828218325888169681443361307311510647154135305188236794232294165292759257617004122137115868563682261163998320414805575677183506340206197298012948013445973654007528539133507169102359706069616926687086471141665914758290685471629723593112552826116376481163211777026978553268642633934160586780188096228169492577398885015196297868527482150899398571964700482378021937034094838392970536658368121584477462013540365873222249756260296995901589641303717076444277959747481136994017824759953123824177178388422656168830177482681287960397410762598689161167167917450748706823280902898427655609213122655264215284096666558857118183370963508229784878619837819149426792841129908786870456100893057513089251035876285417228552008390466566744547743851901103880315113346301214756176481024540178057121563509046884604975697029243088448273777653994064284027737640666940561792213354599877816256341233338992688546546596733156130712518351416477198011342175526845860997133389125137708402638986535796813609893844928938660147401310678952632308418571868518010575513539196603536160056042091868754321601228072651508902791058464029045321905262185837437918717369234400869933833481738605032042249553236352219908475706915555005924924017330597311024868826426070004278576356760093344138108654969041591274305615523138797606179586593480049927883148082241765459722560301886685719457558357518218971380937620435695812568465104416275144443612918752536960846206422867453712025040608025855456509475296938134750581708286318185695862654969049151498160906152729921910339946152034638667226370894893073625815173712309312343741806366010964732537432151590124453751554549445026067752171388827281163876622487326675145041868319433628788085025561228646009460702084730426411301661012571777130488280836288169719498134643029076824589383693615810628295071776442683876895504441304404395637328114001209790955754395078305618397131964245281082363181128828459798146857759356181402123788538430392924633065620465908272827478063029023995259724039822701509821993540297369691366244933484142097341763036972892400254780326235382183041521915330328424379374999211016171308965152951107620422377473931893729797377405782792413236366620456074559020934481074068079282965032106472921938276233967996572015681357113930980759504923491409204034841372743136615417643029553376246557685198455280714182788420712401098225506451018857368662019106729859834066786023202407419215202537126491443691847053939296142213931577102901387248434707681056813110813128580531364634528494967489673364128787871768521157289698285209521019640252314592542283549514457463261682610874964602338144514748322014888597016309524126413000325267755854360926074217558831791910459803235284189958094915336952394541370337448552723850223727221537206864595350493543548117135971961971960822833418824106925517809629655756217670510227459741922255963544132568422359626944547851229457122459574502687034495743650895113589075281640170057700616745676163729608601717072355302454382640368193317071221597411138516214027481342233865135500945571094030709390998378535420959672663126638114975308291693377592109079029776618509144827959410052334740871209812420179387068827447033489619823844732557929643499599494943593182190680728681128983119369574684394580349762065027346645669493333837892682924412144617300694686554714554714622758052868521645781780405590728366680963967009246256170471669146749614506237772357674626273932092198388672711673853196350232766767677798992870604191115734848842126690763487351988107247881381506301110617368356465265653561502995298921408145047077463360293641778650316947580391030975263031905106188269525334369133364644431666491367626774654060018498783072398666396443984682537938726047535980487765984678601950045799355797559593601004191518818687692331908309653190854592938961572249099790565301333970435941721845503778029341654996868445587743603356082608803633411674495852756098371448803717959572637174134846162994482500432271678502790395356176700885165125368135806419818824380744323960566552168627862109897798614340290134141062176735421698665289864613550632659892870883717033227626546607018045976365109158602624478347345295002273996526616528267025811183252678685826116046447481548790814132284663635290306716452908957545854552224339891043750922214230494047772442236278797881917036868889764093622258534652545493027112694529303923346614774546972035213632056545779291934143586715229876992382702780120485599714147995698512755195248726862545104062651380599345459651923033912625848831023742504502300623196147328825310361387512869797943871807298264819644642109061980312609280741206588442271598440260570710759665054038846581078307253725437794829375959066467708411754007695456550895525799785476497230740794766638061338881881802688161490147400356295392746785593940143214167362332831055486758135466987471788067538713378641353090240183348828442988066751935095800548881846352382000052360643480491196299438161689555134460894931618908596457267395784021877648109652271002419231220301279791420727188334018330559904890252737428709141701913660406119606069592165718212157277484065920197528857478053882357741274941042938294210830107136220149604496085033925530477513918861390861592265329551301985697400658855982582530427708353270402910732538791631314072430312351080029404911229442426950058787253181915555258926405143175277495201246945535196103249022681522555268518071273534095911599089617036302122111965132257539929307512825634929172218394116204705823923048383712639479109092009146168656779160200062022766423626142308444456465602190453342833134779150896918557600927783685519202664992419226680254859250592167358288933097158221125836876832427203448175129220633300335622602966766157937602571853669003120094096542533919395372259158962174502501642301588006338184716007423000931331984631374518767685110874144194540972981931096946459060958234499621111830831987849463932561526817985631413421294341058210758121246709312961128219667172384807721297820374884097234825419290695159429398048045462608167146434778135030211389806753961752160798342583103005713035359036080416344856068054784790293889590341020380893256612476206834875501958954420765939329366184037606743453658434124216503888729324244473076189045352967672549439166683629804586388179563528141247356293029227830228426124263900171345492555582043770217844330195249263427921289265575347553680436547514980189507648142257341806071949103293931619337854630545702759271662618343912819054399019480132386751289780460754209373470517594222674424735675833740722515861210248877859982502174635863172612700155137591297388994544926951138312773592097923078210825807741375273436005962193244963767145078409764518399313008123215750026743643224680745463436045101540570648189251110832207705174479364513136061183432242737592525699448522012491807203413089049583167052066625084746139073425536232800210287468294022597915478358104865389159848832676330158967192040351997614133627638831737322430319694916211233014248743825689588309694725247326968704362672104301086379234250017760866813996137924130001503233899629438812924274482231240495477389682915579412077440183970419223521773651280634235166183491235047445953034766720419809091723264822680030183607932837487666372650689219930265486669953225742504073818852208868794085371762170653807485243182474376404109588925402174361638366932863383931329048403338146584425141710625871965646308946280658957163678202708697178502233907287057870683980560225899697126336794184887396781611739757793811060789924574668263326560748367314919587098220320659948971895788525102129771473753681981901676820796418816403103369015811731278730600858298136159475279794610853183910993505743717371061862185185804988542963733157382874731349999932735465303258999888604536210035613911442128543015048866484255747216098363708720963071770611367638262212142035933186971912003871518063971134583205753559799936538352019606555818677002378309090160490941873000288926461578735809516867110385211440340434142077701651324747601751853286283736299353060262871068107173539409250016495789924434820090886473681362213899861472354705258489972842704760335741487009203185278841065506990178782493338503462151890135290389844698257550511401384665491097666769208715393770696239385395802744599446283275899126958338369614484278623272489791748976625395050587540423489367781463607652553140416966593210779328165796533411176278502721645800124370427238304532676156155181801672001595517216962449434967985963785324106798609624447874475657269946435512191684146022448424288492117569035712438519855251700771400227823175499147599650960552624886679397220023621703307144207284366975665088862664428929208764997205486487679945240470109914632579053243677000985633771033445134329257186812107480041941334608656681136700841942704830039461812581459502433766675246822963303907733976850728060581204626353561712882827243535307357189459483701531066731315133674207991146189438583934735485364720492700854083871363319154788245746707889060305661834632568984891433976828808203172436052041781951925129107382094448667111802381527775353760036892898586578175821061403724859587009145943725805944247356458787146466457561037158007165309363476680360009370837878277153169543733312446116745107749809974884388613965213108442264177649678054047447337125376973705333002458637267686468507443327774720097605911111385319411946191107467627262419204591585365500769858841411559952357397130921535343562886365012601736086918044435464347694757398340844668208403650983278195195436161935465916949056923763618703899762479093813859770938232016411544759262020921002589454774770897576146905221923799338697513958674959021787648247949476598875833921761727277612007748156549738901686167714890429222973198485941039061369045204095713155223365284010363920108056137236282663339984052350161026196266525591120571481860265240377558311136849681244356217178119004751383687270759869311940317003002790168605587559571105290109049167875157449263350331019670178207412976055459044941768345457613093295407293220847699713629448937528703423643609555205506068769272607879587376573610128215665452838497539830042682550964577879250490545097853796000656740579831358520045219101573243731541254488866764051210890646123375893412263697269356360603203034658287626591634642328791228830367488791478986975098322895057733630550572218470152298357900351397183895786613788751480322092104964112346259901946988574726903285288868905781312931167804741881472609340423312652047313770127917368058822919920915060756476152326628558712388128876527841404777762635280621084933967269620890570145471850491333440957471262322479571362415744156139519390078788935348167627738979194076732727129924341886435909896526138100754045354946623529815937993276108944204029916537688007617109204901158033019694398603117905532090382104219201284626241600715309927899566432354075016796891386104327588240531748229351054646429760134683354957660788789000137373071418875174135838889868871533429941383203859036389970095716576264923185363508261786481852936670073948469762336663229568201788581764558525586689344523178054787285388406596408716178190062097252094786776367107820969462845626120635058792094848124631183331200695265500729519109115870469511206213927871861706029244977638435087431491270568551069259544598787511308181792854021141610755948305403384404429719804949186048313152444882927259772499588046609459934834716651162688831008643810101476959109849558207844290510917209877584801303876849422740641966064563572942736574734794596897214109869580757922571111760539862921259902200515592419340422566140852816060038577830172647207523110942236759450508592602646315920677068879111094465193366136779246679669791824223293998191896980224784193819646967359263964181865942073944319148122038729176593768328265584737248811815067317747411474797411375004778801854611599641864641518567505558904151248719012750092107397647629698837599723258218290072936659438649666271639133084391302016636050295563993091354701194149757266305059496826898928223394094972829123379764047903866031789334718073895910025138592681375591414887659015464738433486345441745304613488170237358368216213568787433782425536311114019788526757964463272242193334232548984004249339717183186346184698740503583460760762277476168112669802458865910858366787093773649806388861073045210165161258827944685218192363266887981079508114928321315153239509109778737232793493200797644604648191121061841813846852279795305070233796770544128260464063400223042509199247404105812208023202281790417542903256418326179093241178083574437983538734888746243217920606509594106100841626419786050601053125429599078527953040582841197239365028390112570353972770753828768434334322673926792899857161079304426753277185604812893826166718325770964762994249885370137582238594063464096373158670156254648234057169471941262574744160100441024372903014307085806019939622704840586528837560679164016342302314428781371000118236373800748327624270219729505532379088718239719469160937078145365876545166873729085679449233018516843715136129044404141383454215224631625370627343253010934574816081576023261788427466211674770313189583236275058201029895854728726296037054463491891237828673290495637376592648523529148386175621081311678143674746173432251937233429107947036103795678809405412307717871080902064704026619725223930250176782216436673709601501531699173551665674236710100848688531652896993438680988600934449613315536019063146593166429734341412386508966787028335289786579494873440270562177051962021243096895397465569532840773965351559351495312336224301517085639098341953050172312727998622400780367684908141022337445871200595734471840753732669942449448756614866176298865735625865565318889824932758941623483576132040491144569540709386268117835240298642386673253076248754073172702341426673450875809460114364056755094762780339170425801258608446886672014732079773282163302851295032719130264888007515689669067367239469710935422277123872841678136624676164445753131153636824043210403314168950496087037049881170495497718201104382261577634844007548773686210219385722098620509665103467078023428395484837703085285287994514643965690190827696690896676253404871125236440550002726843393044859758167061355714187288479238904587086003259705369741346421476539012517581315211028049224493876101204829964036554187139016458684482747863834466363173426089690347608126284408470739808829784183857272632882874253402520776660576836538392630819192158497161400091425073791453257936036405134363773062853371523784973505602223595345309426451763372209891030325463410031776807007358706703659996348265740902997039492429235686270864341314448183493133885211281282428181435401003455980884513813424163275080575259960492423856024600960206379941767144077088839771733623484997991261223057292261245377642667807189649262086318311943271668933061034095607079756686876671787774414154880848793022783510113739949757226312725264007931442712449402812638121037763121005159177875036406479976441015436286476140617172733359121352224771174991410049487538464379495538902222094417217922547458230474049009462335361316859894452582745369500217115912850083909758875410549462676673755657058201638887789107449096455981603664190176298522694128584751784310583979296557848997151333743872544785047492483965992672791433621354646070648079842742780176159310058455280624013558393826307292245624027787637508212300029650291180436406486385293631473414306758482211037799058205859127553118136884358991540393275725149082092761348069787812249862070441262752555888369715943728366842723163964944283102835867541897418752113068790065613741282367377048275030689519572831862904396476859087268412668604326786938302146240157178059938130065335714953470675747415798935728728860607426806735706102096379478834581243766229699210692529500663316356271355935185289336620903222351351972672058577404564985649908177019740467218501437811193596570941636819748118493757273384813275279350327739167784100562603879936788342345792971507974950246762319996609497794718130645802855338672652741144039491434698701533343013878112762329038476366008104803423492992994890025953937313074403529104119800561582795359696226774999537766337129137240896716124888232683798237437457191532359706282633630455389624057694187502264089772070125204140888841084717390570690011806851958253412678572204606645783746673364706908181666222161588640332023558446548681781123302239406445230207344739914249528089711071199214671933116507834411192526734173207332856706548936587235796590464975476037099834588012124469701061306940282505879325636193272899574535189166256155569193467126694029691510108044590810321892002580228499243475139454478496324428830910590637548309316751277858478221808429086765399478228245509376147214642088275163742613601473883890334616117306274321262367465024844555588770324619988588478200821518335159665434058458346021762561773539772891653123974593128436517033963904173701143379294466417134162808854970338635149602885050676164822321703806207031121060731482614233037110762684928734851397713919349876948734536836195604261940135280086730040837342747784784110321668449963002231170712368226230218432536149302304997415328832759673288138796313649159827281185531199641523675163404143503336012578438351961442404103133966454116906642111948795624432560180166943803577715082521953526449240556680076335198277635375565448229110551867605620236111605655397173470546641077923314614956186071772627680109531745591349565946748013762348093949587491307346893511202164653264803577069106607422509150946354177269585821146148211624432702638461953312342450744203986257348181212484572239892114813304291913335632834562543718772994134260807667907092213308273536862217403478185408999266731883716691130651100593786855659923768844157936130497767909086246586831110213119496317358020224199980814432261782782343205401923586260610377680297859912359158489562589882624508653929953058399088894113039696411044788777557713070335029768571008008840741569542933078939147458641440154871844992351185839328057209867570618710346798446499798245134776691367874851368772698388333159668831967993289840564105185197861304580518603844075364157345779462475623506897355688975607301223028641342015331008638261448238527828426954504675437025487937102142315854113646193596118475679835971752887521465138492216833605296083152911192930969692513253324463451181691940133444168136325595393671930811015347445663962576319780694586770159461929882927793310438755681326409718452706560228796222851346805440047978379548852452129426217728531065283736789920891273599109380073978785451119919951377565320239747804632465421879805080351529498254557295627299057526846181587881284710785598807147899741224048042055931865630940896110172905276133856001991768079573756046635792623520641581035773374360764585562986840051074997474180544757500393131796278200568462115836773775017355142951194986940915862989847566909751426803875068822065899687134673943512665369573715233996669258284143774768726898447294377503899856186844330576578190840681296354703377225097442103512082061917698839308238811121153311747251134066813177933137965450631476257821317297351540299447940023927399382190171939605438327111244557912121203693079481271712609790177345618582924593627711437707791051014112384720185928820666708965945504717862108138886174863287966978083183544638188447360006797442321498797586819637427033784750643959956691651375837239376652024254361876516092674269870927521654571518175925866648650166374810224128034290687025007029454239414131904676811923127301851780562005963003620374540447828374352281588546501506184951027879723137684004602573021631545735431814601560278524354345581218454259753959395630348727618435439304885681109433742749436816491880733396498706141700126015549711902595543803082427600536145853481382770325036276455051895804009052179317215704849703507465360103132195579067489093292028992055766540920450840789026575855885981247146180307904711382876105378514906409915838322351154120548564595576120248530902819901160949005196401329682481912808095931751677354509809013083098598240156130966299059212274326852907603748107460414180732023668555940369265623202429829315364983824737757006289918418720062674305720493449180247777088086693184326003470128392725196403412965656957056878642842507623406622094075488314411007380724047758241693218150739641433852086643623396747016829325824425665429489208511449749391359369241780812722141140995078937452965568901099915962927665493522418536287051210120762938789920109584728118201038721697816914809872826805759226684340332485918060466431182934258362584961878647130495913761911692428890355347957454041424621302866756046861766252384848213152032249172189364200378801681323516829952922736294913590109515075593351838703396470700727746542206804272241220309145571994900294347255333460402959445334198318883364457899616454033708836905071992833020925045646490231294083840965115139761149107190712082009571859276224898853060743392917222484738381946604748860911938981032841746454508437622387320170723658201763593239907781559808625440285488897991775575927378117206910557368136162075566203291793717398692672230486934148479010959628234139917528233127920943014680806397291322571209890045474532958289438964122981046101203593091613329846945057753271527650308678607231741410191383599785496135752454437639453975457213708928439339685991537781150657130837233877158661713140516299869889407287367437437899057488464001539870186077372376425219689244209913973087140082159314152187709317836194192935798631158601041480881224992492919289927149166193614784336820166628988543333404197499877505366323106623249453507886736958454825159438513366867121643262479754354861270484623062648929650605540201916808575043040991783221673165791170836035700537054162947007156497448678363361271876874725396527723324937799444667790974745322223924192794151386405202501092772785621919490339478124940611989170602284971049473201085952003354178572727177116384241043080419813428751194942513413067958292775885576399569969825291600889231452709951732179833326161478733665396639670241465478159211808692474474555649574989902467202314570641242460888543313897958883059359775764519025318793341214827158199374263540663063059157616896291220374403857371737150261988517989972863731257904154538405976480365616159483823663106716492390480790064889229016805293024247670342900149847610419349369900063205657093790624447329694107513619961448783972143065103724177544715848204071237470656813325858443626278820850154423503912580474017694783997826243540187524783162948936385798023205322031341847289088837847085010689186241732979113144317337877629033860421781052484427127167350743213997340814581224510509813933661506758171170819994469955804989650716904619492573788792049181267884307483647581965584805569461644532001391453948379647770653415574865647588207319593308786725673661541587890726200127710256494853272597221238033970438044495931994073734103196856812350613068284227359253648837879463054960683953427502513492665449879349206060310569995771596499997385115028109143792127497490048827160778490107812298499761456395370341482029450284337997089947952464969882126116683979702277901527702518006934697132763650674902249222230725596264910414362817102669718347755410516995769574446586903175994813882645623587012687662124856934837489180136628982307608205809616407628314087499015074402847987265678831244934332727623639851998108778890128990898185069165671016544917686252977003034483653323416880109884055833832061313868852825049643214274991130274730252010043294000958475234848168591752762807064202114479213692001590143371095620599146549690546500330502392256323452878504846477048164290796516904821776765325338816584226837839750412873754686039558554586256663359408087776482109913517945324218989859370370459076758291180976376872663875590356517445653059855191803609186591886567323308050739130998178575960252826870314320296796173518820585803765864092947596614785683823449690111887624560487964424722778865719769502428276365036490588743521747482275600093880133723366611485654266042446436169098423519601204158382447940715504547345860842239805189387073839018876953472888745061868488223369669622801009734499885033178264387568015347809059246779156398778402369531817525486394293599466143086792448548592860507659450431664166186314058482193005928554799852951472572489523494954190660721734071465251886220996383751064454009343183047234090258546747237991674051740457837705545199683057267304832049876443809408231635249568103990707990708937984707531550498070639711301753356710837413798302887728065242760621166643872970901687515075031717572706294615979619683850923630762950738893242701420228560915896230773355432454040567887802931174994036073476087019605834071283181546188127670701573428516379720486735715090828959286896834524636125173070862875045484174954549197006784014370472934471891141525058074935746560306422515533455257300394471631486612357547702247366958571104047203487665048041931647703342328821047712971020729015045776295617621518422432745147025139533984518817877597681499143487783750702052664047382969812169914252546019474661490971992599670027213041693620535082347103641866384894440381735968901804729542137480033706423717476731759205850426868646358112097164285250615193582747333865620291544654506476333790781343084467801119272252087311245510149311571669857063506521704789085216514329173304197217800514809282756920135595987743249167440204927414590308396610551321162210690077758208984844734075366622484682786779146715408675281198773178065304992011238986293335688723469506087533197295490856867179673541634072789877082936297435593174682935308987997213154540715765339402237845907577942853523872219036034944102948915110530396604611905531115050446117058602368955318322231872957678988888407036890410523590969269508664136516784500930877948242581678683815366577844575259558186811980759094427336725663695550430007940545026604582184365954447939450210362333990738706593008439386566916003838563706001331144056042259789660368226304711384941049846441852808406536389434649130760323761087975359304571374421763289109908778823203458200102421829202415670365946172998131706091545084450974980436195288801831496013883204429526617398205673751874060614690152996335516855939319456113893659999743574414745369087356164069103347453457296941683015150842757163550716180131688406732174857663755166990590633712062665329478953827269578215239844443962899834731874550879083669397480144352194363281462053897622614522035585197149944791913134727854493025952600275167634995397457564616353289731471688593695862292594830730000359377853554891033107785601547391644592040936685507307181516756923411424577640379443421471684140320963267748939300385665500739170860854123760193046277222919197581283410068940000435096682987357397819481911298234670057689137653072534095279482631745908730100886532623991129561068855106585464200153202470413628670367491728921542300249234080811381380778247384871821006690970506149842918153224490970948018126308308243011911460002620707664370407238941716124381553035987615677685954983502395061353051364704780627631493866466930929769098960061408866988075973537118789026311127495001793679452051814932083402741471652500328820170665713372921512839622801799131888432010357258797736513541881383653897075273155155299501311745624891712655045210400444627382133929586625104495110562626445218908801384333571805778980550747139365621597597222305102566184090193343942411500935536649690636850602330927313143627637672574704646171675619010687814089306069940284931533502463272015668160022864680702104541932611346590261984097950713161036270698568341617267564049945644394246081489068453260605842915222232492474849902733758313555843709813221724700585251771722882216058754420647128973586195007494281054275928434956261124454850824339560230390035527156650517688760482514920354349036875076896658362807994199855414399959686073230680479424735327431793436232872099170152288509202595652928448483674706205559847435324867791893349071960893312817384606597537128528770033563277399174267034474819831159607805281787740337411665463291128649660622582649070041310501928409317929512087162219885195647537778016773417558977748757435967426776223133560238309813638341404064990255318660962408639766204121916438851013752225354665599998563847070742034914045675838691512714275377551980273077828074049777372939417653142181011854640299829761752748590704817446582540722866915767181997295121486160910343020866034456492738345965051739058262910426613162357278702684296472299529313879759371820953595491362625615789509364684283445836871526283197343315706152976985745462734078789227456250431899368228078505843038524465661215484415330800144650207945176349156956001499136247880978741030663249300197820276129496686501843210593780669275759468034604882237107541164498372127545477767400487629350180926878179681390778910748109994504848526601022339793084198996606271778778179346393405803688662642846958996284679053376515045600049861921227675104206780090209514443714626166902298599764084733645312074627975800764036641787910048733564311247472727270134220879470655158554131762967802736881964498362277286701561186120120102328177310318080520100328268999222645925228059122040137008501723779317211394788455888752726613925527250501959967961505279089085346999718735783100948704586053748515500779341562314011062104826635198700573406758849606742747706404489783522315888888030434352714358477018635069066723154008373872294058305176609536616181173636476329697768823972020647950645025663984853319640595952516721627177701439650494418959967466420296036012036164088870345496408580168328188176481762516740064466520151718393109898249871789398559966386618211858453716013538458398200544516624185914452646352685182710862681270223423828630843532652741851027606478265223972885820634249478035160138885899618564309275645637732638456165292513189462106980533704151067334946179956747325313059729374398753789528049186778466242378387124612152553762500741656987381970306111305388111101798816687458007948721678967082774861962732084320281580034421355966100980080769403616974041087480582702557644689810630186265603002942196724933296109953506107683177392163637389155855924874842112492709085647804472935912762627678207433846139479374850315862405867893507911086475460857207578072254663439504224968220239810103317767980103669168512784244137345635525061282482005714519485048113742872938009080141927975200577347463947488467523143191336610355067353889881133144845232176818662528021594610401585302146786420471999525407878469942664328001824217217475336560795981463378616567202961606372671341318726799927813015960870745617383279417228063101175509235757941968897058524005168545436507542688774838927248810230041903477303798590573337504902524124521753023177605897004438062329308763368342131844781316938978543366142324108222957678332487926573599343213975136689187282320548463722793515685139227818237721587523169318943341928170370573265459476355209166887124463889727564790246380445436409021501593039877038036764724146192690595784375742511754465190636766579197753618267015097991463630112572004023732497516001320946630558931269531533177389835664992514321670426243091335594690931063791350878379648414749075835787767638218565056214148595766506438884125117174091044277188489251821665107667863892411647942409212684732992381079174940595537975171353021220175644469526423889988267008230846086478586281095010689960388414297099532192771171651190472400690586907187878378484711916337410634983295582906033790161795735199514572847239923376433231514971317410038502388093376388481577547753173389522713836635800466786646100876127187403063215300430241568000119199290170741610713517560100187592305215424957173073660107507752185360265468740662007776975331404422669874025079643218885519366815108843923087748503809214212403639713038586961526526963785127644583329228408360765141136612075159414520842015023499249858049473818821898994616264460276198339965520737366224809933092073330277638574605683701683508385468837137102663834765164016499536207949052746389088682942261131374785532815445663046334803130929935206628928660810875425570747998427921929122655450986739441277645151605563997879073114827450268143320830376328456613454543644293116183412954058267351666305918140971389680737363672021780420625171173766072079561481100670981090215053451027107809308604072170116095330612155819997192035765649728797814239894515393477684940575432104878441517129308549568223496986582699044097951658206554691291102617814414646448504808368465108758217323001655525483872350146934858439950713226513386802795955875271120002969308576839949099590267315994297665130464194772417117455037225501939402838602692416255535685315619929305498650726410049556587876732232425102826255222545512746165062180606250335065732112392009625200302746802914574826695406436342252013062870762668278187632260416908478866711102613871257257464719477604719814904246479362338482145948006633130391433858640508468328615894429557427085305237007144390959003909991977074778419224281886710124674026661063607950250851997432806554785795197548757002059028863831080222026507893211336695558361803773117375238771406016942252093339153996394428082311726145203163470685947351229400054061810081124414621821849857793322554000226979283158828465098641205958968476018047240041840159990472360624552374756439344264763869888513830244430193899163625244277331825610996325052058687834211144260156032076373106008114169463333681625884253243226967272846322144895254212846999341387016760562914164361984383573323085061502541996437358665523285656695980018508487945393802513452995419743307214256495287798475915931920822173766006377820949436810479182777600150555424152215067087492564397394619442716841196250393942291052252676388912840139221862663613979799982687496826257632549997106190494026436744107204380506497089450073935651769521360781637772333353401680771312785750443756803158668398156326027309641133029911052571823639404141784903046525690612016025717223592995635165231699859970069089971248285051839164363642445077487734334853612426051613830201856947667626227929221950311227204882740283256557071856365003164017222305510510178551172735791505227025303840027574193622304527039332239050790639804610776802359213683533085516447232971582855548316958113456536362454899594790534412832915858305560413535296434675804521078587829258486701069992930474231256035470705423817150315436730634913785835051131948752428294620791071742744669165910286141190710447551927086939107046936759039917098518582931378543706670193808383696359108206954277772307606102301375577722885991105908274299442574751012970490738259004620533581510493902995732102175844369389759519669070486246697293638769787973635151960565160962342353792267184879637748396859992722765811765937510171162675959641673330305122908955037194367825638690248204842012947938871066162177280201745227894627300454292939852474583615099851932087579423559915590069601079141119286411666996539539135610628954916409181130437044036546578148446552047258903331724971727788412049627375029351705225588044668265502016745973487013689651435287177514965770176803463377293493931022828817389608663197865499907644917715234694599109122505224695909168130517633957957686728117632346575189212312530986058646531452444335762772584882245808410077459422723206489984097027836540641728019383634701965884168012396773787862842089924453311770994703043577186867265821722353794788085446060569813202328724480301982737698901921768050849370837243943098805383458120273177987374009376594852466225772459627041659576611840455308619832347441068703137767483654249682795759650394777530943436282018075772014936078317293085833281564854385446950082478399610251352138850651355746632453906033727482962542259402570064443218775479179150891006105610036595721408526535484226613628569966858252300083245841585873234767877794412920610123393513601137485947793315015514261509547118107312743384347175234781293759970895227216422780323583174905062407544980705206956116328086768782554178491440779470592934485228905678885032960771009195469075924931264769662370824044270638684088958222943199331668943494747407352914605808714509442570510693202558658827326794079903567760011475103280582097704094396750949889280683283196877411722516418232548847195272410467271628288323741178580169659048715529424526319204380157524441304149017448963263444380870044125618592738685448682890213539053843574944755693309265432508398125303867239196342239272787973597204056135683289359858245840897018649255616003031684859604151260153921441843221376936545813882540969950942646531993288593166556376958428695872346126250138374191635275682140684090333868636349340010054047662114377687802496982206202255169618342039948488269154463724663485641205008404038735838035819360091303423912451388299569826253981570497116848392003219318552654536232764430670848836517395363697678152529859517696204138871051308596297464191440798585946224809250987801671398201694794735260558672815174078032340820035405585638811184415895682942113026490864198289503030285539741313009641295051586877634173326436850147975389162199663352990074278510335830338521871221227315072269734368673200490640382879106658351805242138339349810551594256430221817198974303767853423825603060728037352428000090576581320108341205142525983632284373667143260095016406365847860185602898600221575331751460095644835440261814022361989601632822965439171380836425941849302313650952653698388315242906396637733660583407682737917122494817452534835297875123421601197783438126644588184333703483797181567437336580575285035039684145202304624637684133495997439472362559467792982517681477468964840816968184526839956758533380259016466063808113133467228205104862594957382022185646874992293935878480395030025968584576386842240477362466241189607504360011464631280053350302579224513241846890303851368857197808695800210565305616675742911904651848907495347703606429034628898015557345852855143403093589568109500769495742626864869213938847890283288597965375336378942273824110060653369727946179836481503292922478186867294700947313617196926916350576394094128839291964242219804035923120031207637676234776461109662236291354542320395961168669980004110511197746075343882314539615240302273670677924383638982781810411869267492098276121404098130276927330259009779862467553543002347764818271303282997457868392773655185281035228720134667557016658605944963256587522693064408998163047906072860523299966366113394287666147649672033480002413558997439180532387484079817572244663951916540322394338111029253982303380426122386658221524978590437791897888836492721508491232096279154438008873055902895560936543414608636247317780757408011457061079175971352379804849480014588347505530358430225627153660346529501064379528886711692362102840336190007384397745149988928955642292303712152298215778413195261805673182982223670224038866121354459515945651739942190637525781486313441739093245974105871733455004400503900712013333027844716195428312391871036326298488044897052518758640548659337020216466749966192731641116488155219823434415649194729899593699659848492550657100968800353475828678101078813038042248022040347213886263064635500538001275690711979276556881683140658090264037345129762719148428121544627639054656415090915109890994787516100613668959085636039411445194505695018688568586613454221134152454555884312653367701806431587070582686999249743668687847374415097396714534576812125069352063902816459053543599800363715596964176644396422567424874964643352534192169988083959890892568741738595459970117472357417528237688260806924503498481288487942199657686580437923515519613916617535185335969126232854616526150830725839523612975396284196225241249812250503202669109080046912392737772205404449309896088958505799104968211526812136728052618212353589854786249918389783974490547934466514360382096547303602023686572534614886176947023031407795480354906948539767795098418993978025945594747855379036192780664656183673049978778277594901545395124900203613066409397055552997383751828366204820254627614398748219775685494247938972958528587512303675556877431386995484946330334710469086778301888577288773118316448853251098885551386799657435515783785120822686059198772162510582737772627149051187520745857909711953069494203318819074446534832518969583809953353468834614487117177929614606629039961582845485599225705885197400241050902497084287959697737753680591205387724739196801192992124408978012476823072538346683818976179908969472241800813640571783193981465044577080317206107664465470622131020727336742305752242515086806198595467423875686534319066999205728171725852952242726046384841368210256234286724775222539558842290108916471026656652093573458387516411529290189765795054672792805954851714946254591163469471451918125240689035213289411858928654846156516472695026085986187338271442908289652244231935637358813489833890774943676451155342963561868040140194126379268906991199877155394123131223258256711265003801263966728790668946825054686325962402256265791908429208818511925586741510424300293605971013685980410347710531196808469314406598722289237742787228432793358109330131081215575279715723306213535198124467946759176400848790112316677469503911435829246787127163697472687072912723403742634141754255405408118054282846247289044837179949947566235199000451254082436383005007148718413084352421366298559586993112992109082757296299038694744351433761528492785474735733517269605971701994779947191703237827220681233518414303369322820767473569604437592895198670380281842477068127914775263300060332453581632996067952064027095576898163465127375481470206826910576878278253927793300737798996004693010840227743334720917708647460144023370241229222620260219892361011867312948474077557250227504000611063867379824417623274318363745606548524102292576832813584862230971133523003273207503911601153780076767979303593364794461521397525015721788511812047367762739036941576028396232601099687763371928114600150661329778884410379931717718063660078385409631499032214326041611676935212687894192185795139708418827249134938195788743887909569133681954110243294743850579377476517636971727101170598905298829622230457397425657407651726657025553597779669715819859242007770245847338834122362871258590976939759849154330066187744591068503119726063105727741662877038500679361271950714238262806439148151592139738165842517508123655135290051628153314025630626955808653190868346589534007441726543335878472406319879447362845486496270631308786175322380811694920546960637195588005292999669554450729479832379046465260631026497746872746655418521689605208708154163037697372480924910688059838180406347354111720906247646145140437813309540836068964210910281626457288658707502067320758352807109729901911582329928862583210164405348902793933777301849753815896910733271947027403659237998002450960885328341312078698495361548814119749415994650920969299338394574845042646008790748992274950395346028871542845877921126820285869303942482544926645747270827114252313027604596128892530369087849579445447487054564315501752802705482208512373830024874429035223229744139443110978571181990715971579964634280069173212369705615247204937683533743865775024276897680503021299070840610852194248369400647581386136344299858865002471234440724820299328223865109312780862993852787462167689223989063740707377772434351200094877747507969943788572745362353484169550516024886314530579277488230906569293645880537120436661041022152779381875447845798670653146715815461840211938164322625456668794565118434093298413626452115646381054595165445854777204743421238230588604939573248125657511307439704291734023640751177919563625251877884888036634945339672642959494820500662567856316691596413949559522907800654079880840981508959838611563975881330333943911645323971861312289189414428769800140269224255316997769873451044480105387889094648355006129109043174761869845719436855723806189960415278166796697520251739222193305955779766170555958102613911842922083310286765456996247168085064879090275445718655111959998409896157386092275613887669664117882906964625264665081764482055148176937282809939536788397292874625182347994489440801924042236031130889639712076244194981920927640438424576936857033315009080193281073518457240888238825910836792049582242038049489775234186860239153747289295972208062148775859507809368983640832365028969348819689955692185234683344238005464344295343067778827300980449954185016191196406656947910015494026109376342986024558552853762116523308475961918409372068383375265386987276938960277555421256331918472804942172826283192827786254226944940166493384395076276588874335900912568170321068863574857261182708331088600170274039699733545194505315826669171844228599344766523604021312909490717144011347710697413828378436476110999886121926180863885037469041620456671643147649461351105805322872360696788048059604910214991535321330741080300774960501412301756166340680693772102992623920813314049004722191717447240472404023093301858196622403621090632842719855073380555802224770207486650550184096587108395275175937178149301638953568677723993085088929920696116031092088664680509849857012955562413319826211564673823829126064438026636669678038059294552395822621401327908967225658751780018599479563065826203729976449071364250781292908168095383047041387719965591421485654787865716606424635658771847272944362488551577745147588539177699120629818080835217486402637479325369872854509783725418855778774506901703966723259903498172907666685830409613449216312783983449320479553212235889431679554648098868742028397878207676988158840808870629045972611365200805228712741956641081447680176872795845452357391113143266006712956793595967473222042293977720711397263943266187691673225879978610518443531708186832690261783799215994001754406808543617247895095905955975716536316670509260133631017480849217971981145002208402230833780593387066550572883457293076859504874234781930082877600611632975085465086804369011037411236349509688557530443923623643739158365915075284976644111237302221705654977098849566543997945040782046688031325803087977097644156269074958229719024376309559297280642322831777882297081318853891474915334795680207731171492854781716146941047188082266397282264308704056182489021204546873264012802072528728966171609628044646510223987074302210339866024440126293768520018824662443871692046609021166416476363673743769817866126948011254722224246692497840817900759698141724674481091450821750621301248906501741015047490235050049491454488288674129112439509517743086457565899073626813615938740667862712136199019170977346760199443164584884567702873885536804768008246958456743969254135030950758481990258701438904394220774879349307791582780518184565433567292251335819568567007038445015386721872633307960775644566458062425086789352020178497898287260980995970045174311637837122159434972139552569012340096086062962009875305699519076499674857079364751287144503770947655551672883005955447722675507592555933622090448519626175021363326660915905872931820751629845166349920543854751748901211818739835687867620192900404966125072206920978171472432579460647956222994354399820603941338021173070383017714245388659308124567624903820627719021903029084521250958933699136845886558212080406833363064081438165341282119487862987459636045699663065427978662800182057883223881329703780777894492045765968045730570725951117840102272676743671950729356163374883546935598729436229360294339709100995409641750379417861703385225173742922386506210218150652162600654711396566768914231338152112914302015690017217938708918300350705135009113285199622223459445993892885154911818580906879630274111460742295554614814503938528917324098862386073261568355812846767353145969316414700598420408709946985149477977349639092397347263708916188075941969646899754753240741223304448649267376423091237059881020908758819189709244904132180807965147480190780486546757984628390635567171558389948853084389809172724982205401619721378229413560738682521275149202227072867999157165684919473114935043070641896388291549699134935134995546904101589092597344007377897403139675262478776828169502489311684830930586144251350550662976766480233319366436499088610894625789871068557271301701423020786281866738163308501955006844475432765443877742719168303980844031328552744683613253143605648363265363229285116978421338610925035107438427165416493436302814379541040259936004902067865742987780016344880183744674697503314845381047898017654392028991199626605041322108761250842970621520000730428287161667674448689943750280310469700442080856096080431116514028108275700192447788173590212124966178666532937611056413514283697970360821009293485387337474196731044605790393255850137871852452723466026245398264781824242808274509257683917087645813150244474673695617216368449202609176404002403612774074690874897066671900504020487033953640348106195001172103227213386534004588941992680460220078582521300974368265567270636098661680104609188454623007261309108375526369396232764389510361079164496629774209246373651722868872088065511870519051507630965800203501831336882982295540541589538577454565136210363417813505139191140424348989203646849604147107568490380844398816999459138638198840941920647460526581368479639135422171479122736852589040822867635631743592546329576544231043775654209719060695752256104863852138033308981417637413765582343345173088499347434220272575137864192233649669295475260841113970773546199731248808080285079634527356253228760716614767204317679959950421714922351102576729723267610514187250075745146229196365436851938146780654853351260901726578375854651200013020440781039900798646212547821280564541559841516887676298839628748508767380314167920652361609428023380073997842974092399600033644091206194433719142415306171530581119668200888404712491377945467469432265278797007625027427772626671358034428709847395377937309165556790854278911916880730242911897826441789135864549907935123307645408413248904044375390454946479602707794607836748536356507196177423952365277640445431867469002961423967744152607417728251445479074364915559158018114723166551939122884321450454999357502021009521228800361820504019276834373965967006932254144203186864728548823220015267501323336185610082124046094930379697571716871625199534880581646378116880658782340733115447665313413394476405570078175369696681434203550501815363419287730063384294882283435002378345161769005193831636358584287836553986393505410043668684221359264526910675886738963099382377716651748374278889126923359048625506240739624242158809938337974486088678068290885506323787578386005814613999847273569548666926517957660478690616817970176931848486575868328916757479791749439013026913623015149821174853522398526441433013587277384771472292684452935378992964106861772843101605899729113022157454310430053291817272457224630316894030437475571470453230167227726099145525433542648669522663081751865902381568261352245398331080678941516841297577028338696892628612561609608901827838193649823396369325909387413947147899085251259694766561464606995771950466621717200069180999760133446240770332491576365843648983629916886662494559298751150511378054579161440450002346222052677447908394015997681184553612590123917247304158870094349832827664545626336144942227474953289461217004060294836510938435316194289108159842009214892367779325231191894846941037014108695664556658515492787646853341747685204949263533383119494816721977047007562198314445324333213107932068344631379869440803922183557861443841371683633647534848038291931457645403198818263489552704701129487747991060368695217112544261393461999042564069645601733359427989813219419709531997681171107886286037455639034196405076000176958103219960465965189905623854049169333971958617814963871141700543681322966214017137156189678996385796642362139956779601723689333163503020986999485400359358847230685264738769643232280448626668413424648745958161694387603819964618039796901701387941955482438693905875325756197621908189053625337386249099952230268871841915303537754786844608171424652785168035226658650048379572047199905093522826139945126691544317439637311291969797784958803493467946082772037838649387905069727136123760858181659686533333062439434370343033288469822294989034507487730897510699832625015694680034306481461240187924691315228832380471232835434541694731936797516633281161674952015786523331868892218753953052372281586699007156913348450687424713910675763452601933291091548557528083234039540112812702252767602891428679553769113051166082548647766012806481111171806797422845670154484727595322020726510153107011458498828345046606270940136245212408361018716081830663931508062932497965895125274496659326595943728821903456493379717341635541795775512922999126539002636226737161825985475714648766165211253281184877985838139747250057470675240445518104858893501933750374283356185370925521218572341191444455404082952049431554114265251237749113040598565580951829950671735605352779253324483503928292903774723034381755958574511919076726871062611164503785918451573753457974878737638750755280606950816070370454358824692201530581586384242266323118443803872085011110150029924290017936495400015871329751919772025840758613947853813938556750583859050242825584785836437683699349977214481324807838035193500933336787844870477376906354699688554338419641994593153054126506679005820207935275616116549182811267491178452968878939498338862767183015101367417544504850459383147949287096571756275558724448666849923405802509021144283324451158912961403672573567864616109977700089402900049874648945092656026453968966537649582274460162984404526110748915363752849232951300782682903571674960383663485173449667728609695914130931171615157846647700775485119420125021000587263139791567440670785018235850395147514923123967563833525821691882769179249198183515636486226950864401838257095789728036161896953596259125023486508602090362353192311042477745786076417115172063199838842701030160639905317130699987367639515002430887513000922753577068895194624688007211511738765061076771927324361880649341015668562632173844412072337154677431670131147703603611089040291830363540932028489248012228480936264288829656222014714243096060066858966073241883432738674117754862978171848487539198738601135600900084544095701521355837722706249227788307060371861556532408790750386735430076317733040753249223083646245259822555860493684596407651689254469753484574054312252808486588502203957982349363836015565065594369687578665487193388650549279057097272856716723467006755262802848750615966207806402783032467446707191007044118956441571348745450005115824754019700247661037194669642508962344810898163251657679200459853293901140516504038282119177050823282943807756110995429903430969750466517311946560344784116714633510317992024657445875408912290532682008048609050526031795863087636421732647624931402553193985835654223217990570966724151246694489600136061178798749459346357252737138735450907170745435351072970073171684134353727315487073348890685694490373561930242523934017701305818444499265797403499478094258168725669748906424602164265353238393741533347342904326410706323400561646990175554540996502078756463141370393707228586343561335708446632352747985409862495985492719337773143206463184815720052100251451575384086133933415863367583514927007517305281930110830344633878323944274166805975070289102386905249282061880595532139404161205901164800779951075319051515703761332289355955156589313558146442081215183484168526233609369737474745044628040318786835637374689405070057367912883635360205151195323366992872915778018786963398007937682830188613678600455715709134271388291232593841580211252894347923060837317049517061866425806113868618537284202097212957495313793587298635521865065655580760694668014313605205885416672505405293338470866905170828822034082303371218148823323380000158039627343932608267212747548626109767434638196768386797125952849139163608489107737249803648631441105030176167975024491498035886532256088130695179609550136384106758612193468167862889895204100835158292306091374552365707067315491770233787417102947833674575034849196276780320796196761087199813489645915443539518395413934790251129598847352555329210137977947442599416260285560600019506608147982754446233357878411363543872496437567999006244333679725114450874259622845919411278014090650104470446306267074100137736550078082357265184200153667833911224425264515289930480543723225799830974242437083553622218436958878093937135496648927385243328766518026806839738135178534965421211573127263055776014789213515221289071576786384335651990480195746370169476732634914811264364464779574586409946470439309124142449433264717554153188943319353420690368194209029289358305372237933765131548288498367148250966609856912348916961127092579755839870557211078631194581047110290806054733785156663680420921426669476662631057758721575428856010265861994636176244843833000845353855404755875047473817622369271839068557050973703083617381869099301499958658272029582198326980007384000453128341794422458566049480398542179728850864127661695298718617529384797358231380905356855023095231139430109645994668153004082833945042084449281733806344735614983293985350368463114838751890586726726621199125363346313054289671767514464784913199624060082187513151980462814549710825778439147124830239388721365486458160520180585223763654747413081646886169885733260508725605226039420644322767603700891532566107833984977009182006698743538828744573208169302587934845342672938187357008745630914596359463425159447013588853648853478982013305764100249326047822468005873335226672390824618024649031440453175762804571170724115842725649225862850187550407491236850561879692349533723654825160064676323694666811813985702957602913790978388567104197859677134403485735576104419114771730473065617409012495566124972533683038914683898716720438241947316000981644348522054869799566629514855246613202232886578576955042638801720414237489032978780321019701209385727950430313765601177559202863890876571178609615946401060281871529386671309704242972512256416539148140482347894929900251240403962994749774392729394945153673800924596596930941169499453815484430864945334399621751359253723184957399951980689397694662502677288605967179439690344840327126908685235570028313985728727330394873352487208529072477990052077954016095863279918072643060544456225509574533724002837227700144473118749875349500390945848515031922530555800727720090741509714465938845861144393006123483838657386876722550828111108382835148500793369705817912154212135727310868880991717837677233620689679785383538104138977106634345137746124600849752541614928394208090029110672852064793066691356062125719857342045227502591775558679885178735653825433716250786149655671041741389253994361615063264986801910891783994305097951650323424493862288835640647025297072563897493610555309805676277762003632399459030386885382488456083208146371592357682096116585104240386249494213589254380720889273799288507954843045353789088945871705136492736199250484234523113002242352494332308405648985226747728667191872108878655022813722107791904248804162210241219888483318383178950991806881522803099245168091744603786353973713482972308076479339671023900205190456062227737677271195037315399633019843998774832438170052903365085773589910911070557679154540626492941951961457128073785026242341584404389710770631704154710035983214572311127035218275079149643021858596366268491550411240302443839142498023244768601989333669740564147698492868138928299909185215282096689191338586192880289570282695087207871432819293167677399950210399481556237082777683785830350139956784142825100142900894829960568865787650575765568903244749676442608965168486578804915858178292263811149461869978809903527094608337442619077602045354420386715249824575020046564740678642396936623648288169955101125100496029580212360562238794604506329885855255806370535437744054812011795145851501621630512517205370156621766121687365361848229859423542981112423710510862897709086656562646445343212799142730001547046641891944833885744002905743733203625258168303544609010700250219157112448849125300969752942761587008837952658142241857694937959240170553197247123370685115444691448262375006552759281134931050546850570541333261656194260846170920359922667246162064031085878452668485432520061747765953582478171471834319280662490281337593846365946205422278128815914238564517776821578909104194095057050020992948840233497480778300114505251692824351009519783104749518521618317240709519245165643002230799015429843401909229835232672080496560656044369763788111975071929127418690206606959310528444644195263927428100557816476629980734591312148552188210659989477588765619527225086245003759050834037169118446180941860478054734699588964146665704728459496868033729135266082267029599234314569707363458278619513839069194470019978612584829993793453104454225189127642850564218380628265520132847857547455176488512667052051059210619850342073497542519875893960891530951234273399113124589913675146622625491950649573051494077502086839246704310214745916270016981121242393663465220745657957724627144096229240664803304635101040822091720837088813020247060952630334356058756483770102550539150595677820107906815520919032821462368998466237416165582007117997204087128860882023016521224830441384815334490152608235888134378539857812761335393503154026329026404092130610711448925176935852067921753167100257421704256931151507866417950141055790558113727456621090485681504856421151045295523710398230246015936733232150318051414964719070555873079270427636817235581266039969399660670982817158986893557452812315803615432365634724483528832547900377666972437168187310010187908459906844067286713435883120124564684868935689456513840718608896884498745450869568397199549167964361763175707096666349445852401315037781174291878869820556826786376523564333144944442239827857038146892588808480297600848054405957515435544684871200981003023468987225465716165332203963232070802248277602651796619654192003471305482154970571513969772139895611428895806530301699285015484967408681563621071006318160414886880535492214257508595768989247797897027130729214726048900704110321455407669992810128317304801028180974813523921977123159029542810968331140216662780243189144266121014803774591671313383922197383889020831454226217870936730312045534061769677152654971743363163718552211764741349583632655288496153019644239963904206213265698777069734350579443266597757981821481137841101111891719404634183591563283895941546581903057514782524578928347672936345509532744411832924560990237351524860774220944909268049151183563433812995901447965362781704366633564901408542165231964168466119808955611185505754844428795904766536811689036030540368229409009058869112534832709820865298142408371133407651085284666275067775815841541056302550675444172878467476818496839381810647530359651390599316790820811564021227493209368206494393537689171994914931331282889016436008666248991405686905665845964018517349058789430817167460627193924837022286677533498015752513667929958323411159801045875676871003614435075591555738555452931794689382977096815625431300739794345881255079498314708465098800209809138380431418886833357489338384559669804726402117223375101330494957691014173295461376741382928113486919268895635465511154420718690643733910325101361007318737364696532635014403351196767964348379284793521097640965434952144439121719336147860807392876612274287687683835551707839344365720395472624181868973732373521676589376264687201536587877943765005640966004127786053030635818445562513261908887247624364625226125109765333267128349015506317280682805226116728300394611393699664545280413874535197893880122022227137049053037603391447045321811324026873258219170256956264501502364603692512282052815068531116985604083304966119647100565899133112951573805549263100799312989195899791476451362214933157595317743976022320933301943669966667437533842593130835593425005071628120926113000049894716514337824261080324632142014478418442708567540979105443753271586932635524644858960329494901836468080766093908324282713199724596123116832659356603678874386965785394382558550927446854127819365253871041976475079142059450855647844515284480466812260439785630995795938511427266232750159015304074057079038508521786792809577548784175414467195232635300418329320676914367745422484245591153431916173424862565786457280687968033527840898018787427899186836877410132660179524917302476063632462849457559234686369098886429533530576223347750310425998260065708994752756721531658298228281657133376944982437063783428985134186239701126048475982435665441077423849794860344950963303927212486258015010132890236996397939544643750415090457755867516946413215157400621012396235856724730327727623708454839359680989161771537039406969226342649080553055917980566004323912640914351620162668340931519550911340145641696249019012433825675484791098160038400256496088157612103122650640626829601062722711975053219174844418548504169951987818609296167589958002803427954310871317481713788444560291720167454905457212511169409815738566439128404779129222763098728516988397480613162005204330630776000440227764967128399709690358051558542473506864023932432321658363217912367340618132608778032210019397835635158771024303548268163191626456327430532304321440560160454255832779844457165511141467775969195317677298362524240509824703310777750697713127015999500079472731543917375571749114385957324267808875641912225479408689307753207920548297213720569464786350036664281778154307536055047162681278816675764965569981537120968102106639197995099267463730359571383510319592545885999228759944201476992600928068229074963198117992652394943040921890913599433202919231588645457846276623064578188652266791631357191079766419819740021263774083151286040018834996572592637523755274429448700698379197477242260419942259785876596881364362805825891203025630250625855473726868971644373672960593916459079493403359069240661683481650332295364169734714110941507602082248731619258166561917761882325391794507226093867902084237246763457803689324883189746236830098167101096775533933090907069052334171309180134104295329745721750993950259692647203380116065673837509207516046373182515212486464946504441888774614978140903227049504898889582468113907441889364417822501270670884151604513879453375513162116905121216315606504768089940955958143969233028980441237122323982801296113359349453493513389064168833627636201683198254551809100578233522320771274709716050793495316588514015730526121861290884387384509658420387905829193282503657900222823349605476316960833109045866654326338444276168872195014569026834530145730750820014448888077478813521509162707473326194083929961614609236786362631164511835138640492341513893254872763848302550392231738812524297001773407136905180442472035162631582465660751835367389040631479899780509120089821416099749968756242617013795345561067734066188430013555591135785159089643183182439826425102745645766808110272495854042255887357859341962419771486231888062667980761629327430994876864655949968808050198783694973409388552675714192060014673030686430615761724742702269212624844668090617645798385724306211110095408349327988976690307106933530516979760725726483986187967048575931837624262823064302941492230733798431709381235304280816168158781410246793912942876390269412569597282766083125394625147392176686486353955293736595016516446647789763605587066065553730056137507803158116808855943463543389249256433945594772546973621865813957662775697377337490816964624883901599318946268875159876771735104251544269882631306930138748594146064480819900420258649017608558891273213898439153194284094098904383855201996945428600610341306914403806150931156681122756821524309770021857000163753026623630389622241061744124191737296546510853513653035234552052340081125850677197258136012582959267654494661394172124037629012602928963945295782796955716297229062994071011518493723659867545919247302664490793274278424999175425838024338897883309403612477459679604130143602753978658687627378924447493016528288654817946554034190698473504319385464776531647408112656061191022039981327114932853823729065351117314139495170430538602967243769202883155411217164577595391666536736706298689646320543505101731759297478312408214458074908789359129378464170388047656707611641759373702917639105358896633843702583671948872492708272481490256217500882804526935965573543525274709867500579527894397387265043400261178697227583758964175736644916113982407609834413527963359444016330659603281333340498308356084371839899522087060413271054743664643067199904512457793111870973283968806208495983910290413663219492333149089709143437242787156067181913798458277597276635503253599786209149978895478535918582550593304570331247937535357752085039851164181199225177450125466126851962638298998006217126637084497683175637861693860452057002737594023278962277190130842316600152640998470869487043581646327487508376346900626438963891537063782120583354055891338944698787026438259668060361836968989469579971804728742648467822280709957850844943299332156690606498690087385633138468626143264710162769672918470429933531256226068278890407369879533900194730325019056372408321887615894333041411209389710518379616162699576986258548784973874676010656389453439505340101510847932826334100088336822056716856368479908784080438632797632207919040443428491101822006752487040101295214765129182495667982858493913811881671174779958178225240997494304330965905689757562741507525901627870628559220163676521796725526969961980307545724831263724045389451241229199960003990790407736154569393744414468804093026750573934365928443608916094251324914308681175137685946766891947503342666166924775403031102888081171659874804906373317800083546305499959098043135448123160255948195817573320399360143452693186926331359538279628258791205730347508189374621608180331689550157952492010594336188964280962551436515170491236295730131588409523243631339723543044952575755666479246628910579214499632927093884911624986878147187510701787896596655372391538574631829513866551581893323097110749927144114022147461519177806255025966312172003795949005094394642731320521109836633051482958990051140153277750929154553664787319947646928305324957392770737595479502259833259288415823991437625002588826736025678698506529432919153960642754656275230168635042602463647593540979313588326073860011516840022833640111428750790046825460980381176651425459338771755118984915201173049579920030092432256596792141079672979604870502877926190334030802920085916311755751403269987803041462160010407306123764182342658406648105372579068482570629711288206959435490934990115125075154146150830162804001953665192483258046904320102644707794264849281460924658490803760187390361235588614543383628847471633599443195130021164729916236053742830898981924341319690599745643073433841730664435527386226825262635515236284559917579417966539600507752276456907807795686882464453324069207938057695762212259277973834810962149537867507864590662656212464042249671329793822708737461893408027548485827988921861492804609810568711452044924328977183821426851181496795237703494779714455589423157636890165066617666754083982161475476508141237559950852085888915820217458110517040927065559537860835864343153784076161803875429571147242729161789025371974298980800176283324840466836737166523238603857985395440821508933453815640085544351990572682006786568285747911512045866170873285036917274389542575519173757257356238453593943487618240690661992634979838781733052523734972304929451091339707800221514421846992569810085960000273737641181890559552061799411536125053463347960064312701658453714171966257847146160579980573355259719784367292351723338297327871062112841259804192157877568377500091545204957887410240729377473624402212733547204175761315118768169718827169180097965469974855214439524439047874910461763472853442529299995315177587766814300196663526745643432177693566933963542408502689430177790074561902335076522873674489565050940289016533202367272901526860201235805539438859342095195303933723380846061316336843003083298199254730755582738385906135142400366944065463398311350629188933245621082735887941010497895453620075214420658511257506775241530306861754260607899847903957788758382551529608998031916343441459944573165040910689314551264730730683564833930733317318644995941465101954805928944079166425230764522103850824602126262307562459553426327157159283578923331339938799768128142036348859817838319153546260438427660020277779771195569758689424787466734235780117454012602208262232803631792848350201150607206121228133672156216905310861230904012908200419855343746774321338399444040897974705276837406589845542067338104043513505102132004748985161725599744050694771830532417251437744197543961202884044837507477423722641661916020869142432729011607106979551739252986152741143474506404499068236404041271871736914907566066341917540149767438675690091278440681591639066273386509395965470597719190385737952560386949582274618624136012119995139793487635726993177102712896942975489898594391926899766416984873745121845094340183587260113761338076578505796895348346710210792189391405372785687895114613912968985563132437112802592515408969669190821867196781228640619417705323679979883412009565747927114789496788977971896773758454441569242512838994401426340969946223730716128985064662352858006549836827436515060601224276053234689243806565910442334599431707580440956836251156743756965563231665952459661059147707639427695413725320971588211685537325485241183144289599678309372954217188356677624887065303179192209120864559188693724274746226097576345860517630155150165815503401348098182987687941545225859526178635806623751158067269654317012188675738054225714906694898070904272024486496458988929829099830287686048773220938833163408869463116795048006007246204821211021948708925865734475452210651008948194995258727232577114558099726296432427382122328518522403186943890762132418367774629838242158496417283421809385840589356965547814192189008398869730141516698290630105926970690320494232180469132911895276797400460595195060687983517446015805913510976867671203283528371793335844950302470866221771582078317867981240668061091789275674343945875995539879763604689023696638969293416475898135289208048967593191492643726412635898988858274443032209134800311343989144018703549949461120398999113789631464848345834984538629261986187813117391336249157322779480485727676169816580613261696403329031551409733340315959838159458129741175224386921515927252626861224231945888465109537464941254072698866564349667480095586426564630655747297855851517713152711387248945955602493213530174150270027119977087211399619140497367796383333352225185400870110127541670886774531695784653867686018285664623060604144769808333174259866883965780078542729301041987930638150125425477533452875802837442519604606753753287887857994863070019798487742935530671932730266525268274893229365755772701704875410049261436619725842183211321631210361328928212939037020776599034665076935384793272328970063746800084629197578206789232852735866551669865143938169747874370506503991751193822813724506221368996352826810201737171976073461571212838351291337609811284043231947770078701565578103116313565672044027475050287238285451302437909031951250508710292180884283191813257611136214095844824274448610306990549958257942583930352413354271792707445296561213626484818416745435804360336074780445679905067511073235451145893124205221867809759869667408577122161814115188066056368971762904526325875231274976328788080183224950588071837594434850658365316407793911125304952125629583821313410200329257865143037297468879291597042634081003579362722258655036101145482097634889716574851399467570787354147848773935455650798578927610900879979830873366551361999289085990414160578118139143397318071035309219301466645275398674205656327617680834454079548791351319506564038863812289631263585848283507691301163486267574727397586909964761660501776382918939035998965627879803062275088592488667087225994256226171734469973583509701317616684110047739300228325310842044285188405525991790698419295763617052510784401589997394505208115628708695459861903159073503429019605603086959179006048426508110480870439244827405713902409243948890500362777441860200324679407071088965288445444362036082881820820105212723765487044820919607663715026153379681964418589716977778813067657684034394873658904113124595007744045661263977344195800764118611243607516489786378887559212754070071140335004979624564952735440715871311024886011476635515640570322284615423714493826954741922438994052721153315811153511768561159837194954171370197782253201450790649356270509419206645885787029166423075412720296839777803924130879582923392220700905335622214692144041069697955377752459938594695035519830572819451430880751136585514160672515758996969432645941160355689133049326929219987073625557080913853891643568455078288598373352192622322422393137271289327409914927297855486083865831189682393230130546453483775317037968197289951297678035200424490701698848759734511311650669588689985482757656540320819260021489324650935909864279481638431393693861550759472172553100517078378975344409913295605251173827922267574507440528964422186861881072851373203632792639208197922648780954939889398001157151842184994310283739931231100200173380392941742193494882789796201167879676369092394254238158504896050039184621373690058538920962318239335383826862743474958305107860071170685972074483134977109244489341931257326226792985535225874810735693618439255040361751466070663350315393373759228173188893577153548210308720073074902495994437805674828511097676964823496610668276381031075493324032044661461698075303616986741987032548416428622034312422915537264657703179008190229937987667528745712090737157530818119042810654827218633543317948365570887254409604566244996613046127813672781302780021585093153601249126025489314898671663017112010017924987728905348838712361585128748995056011194188497160935661100425081631969233263098398594140978404257890690343465402574686510585721309852533218104918667238287379224324268554300611308376745315670008569750512708622698392585538358515494347013529887458294674958291400368425577930856838446483819956461499076894570858664750056487496582241582203813145289895895260265019314536121567821886302114545008066772532221778590236721264996329358549456458094663590991704844772511521567283873695014488234244420591310608659838279979436327013535866519448434565979960683833218574272287169431480941042944052619379649945656526079036524171372070970441119150903011238134710480538495797568640604860234811686511046334529072580344383357410830759792354718532332347689015345169290194767242729358651939187754896724703118164537903333810063240155562029102872546988229389726572667482125059262115853097644281686331435073631542731674291611179890229382803649827278026167258932473244791800839267081193469764153294449567602867153054307399335484362434764881600802397402841110606893586485582273324227275504210995365167844452226965246800811867090000411603747735451621667410932947488130634664757757795347735165162293979824095451349737836577111256237596125730119845483749932224841080654177371895578888296774574213120572618920658055290813276587777821938411691668062925158009870177465973589151352500509432980644039317253985616053514137139924143110476477734200698005461695687955094008798566078330095105294990709184665788998135856498015447478360604680353614509898696091529268951921272934027381658529364757543137727348396482376958120549127899529526684319906535296184956409265842496953549193203819840684558375791989609790796366628313312807803240596807006383375630907111125790635532274688744044887411475563446941705959532209773061032812282619772546703127404939471435238585622017728026025679295490366727365369544625592417680200096398414075707772835682070581209985007281759904733133665595665690039305157948293244167872372031446335202963358239530138160941647826616953464171263592793712203840576044214999973487279510902249495784058672940480494565112534537905021051386262185272061317414351077550806691084646957423915229099990907329087633179156725329688466122692821915112064591896968706274591866650742123593253027591177840725495816448146982539275179600284959038427826568688246114721542982041058180593924517668638313837668919091479832147410945445968769231430949079082175825977734641870854408199392110294856627001713695077911988166173505377253122260190438420717421524784288994261852265671418104940807944995321045816858713016855262227170293528465875369573305492034259066531515287663938634442792259345491321402510805498791107731950475003319934927209784291498467545855558299759752673371339278207344762853208022172479314602498539923628419672854473304148985929739290566943379948342679038186704951408548431047598191848397664877469932651413324356509277388856838417834434675529245354923777564912778111767343594657484758099753337953611437009671042598284466159437767999131662138993250174222222627717188769100473317709451695851250295661151071715237108612134373912691781308465871254811301160979693412654572389205005664393141005914793697952990959922113073658019708708169340134038343048966998821785600452180396351728892994051465181629809427812767685534976158009175290358578266574973720578648394337082169987849199466119802341758672097659998817230592641737612036467471666339718902552802125827693273499743282867572527183541899263025302077413749872155637829588316881081917033060004334994929455420918000520147068842345968594010173831412757130792457009704629204891885174752487445860139841945487600978874187757340283696634353260621460807591895612703830695987622657251347698023439527913229648794694412076799628253441603970999927665199580043795615816535633702200276511275200943459314497071852205952564529003754502776157799679235378444545163546925785880286806515790016254036455767374818817362313836444245585012705714015205314894872316328960170817859975748714992739786722308168346225927614538544865226206331278021915243082685344665395909330333868609091887178541936239745225922155516679101060268782064799027019485946641758256082100117909997334622183822470881024818869247148394568854131037903641863301098711271653599144802437885633043298664498692804883240807586143591783969784129339968605731436112686467720398803208326756677965066186228614892169128750005953303222769090590340438465018814378793557141272616250945376593661343634961116888408646983030644358920762788346462309048721369426830460119378997079846513313305220990959584565928653371778156950970082406938242625050870967437833682936422159869688152769888586133060242285863597095542396357534198934886498201948813766735813035113826514683311551104440398374590647267423231147910311735435155585156719665060236236640474397181405210204643446834665019024952126759133918251997564416107749841103955285637449911184824293573759076782576915597206166936749785497279277126904420905088261225270818158709951863788196219294554297011282541916232212789933372496275533447171463516319256366917247728196095701120058619826171533276983876894041141109449270873311651224828839385797842062787243804718180965981002217469509510868847169575657458361548910233033429704809543811093228110433986931499689550258905096446201562524224190792565538097766671660453942394791441973526578898803826166530233568497812616229061206408998026543747938683335609177533949553346617319812042649858605610130391850339769889352133773910161038567978205780415525053293827892176852812519888280943578515326025657621218151512380703616990200585260762807678762300789864161658461272480627016134828953682385149885843427050970188426843948096455221366989206313982272550785595321390877346853483532025499399109160643248700332356193089224145588182314560939179282352274177563557145086879367664882831046073430028909439616161413053789822316720113743121325361188807307965305715621130591554863192766631119729352373279975106462769315807506802607278262907162176769075333713565296325524855177977073227973598266184613280421718891665586520797401269237159613415589915361854406202665798682684416283318811834418892243550719687470582220164669181101534479047773734398945613566633984985944658646311482674442709913904060098809457398663678132039972867668767538707263899351891686208845251124137220877452905117181777180081259531284456589177960311386692784134647869105901221893781539141741390122367402103336160578952057763141084887274411680285741890241541686687343619833050086996509581493940475321743060862788651276296454105145733422165588420297758678872280992358947576538851210287288388912508668245526000837484676417989406529496938435542403210786248364237831929629801941747183843290237315147733361394899331817799072189443001651961008600885290213924400241496902174347437900555156412840860947510583785293851528048306978911036585003061682846525826982156151572168881041175863023511213599832077613771037248268708388787424931213932078860487694022035172224850824831632295022006633187350277654689561397720062589232314767548518411320382545336525322541745050780385398574057569371244010572492062960673119163303985057505959757406452494126859264628656629713910280980927566461529000450050499484204712960686932719641812900042810359902523976172404047246998057851092208602074453444145012066780665335016445376511053380110220107390959234423054336228250326989221870199107670618395528764921093003080763873196147396761138490653126040970405544813321847641920642635024193907884141739213755429014612938641394937169482533290877560842670758390477530044459838962141259080484008705149393444206231350039439682890860045794702082035920547401571868570097443787609992271111655417940291379707328073109244772434754839051723298972740796569028231378435204143805418472412524998686487239328939980718225376755503094834265307919964006187988879672688384201323697189773769125868032127688722599462133250244346920178546336567457155921806313938188097553908117380874549181774999967667557954126211584315691722139924448843918278809753137602176269215906839733144768452143942309364557250614860434400690806069051485737304020165044687038321254752917736835332640735263873483150864892024707063006544624729016998261384755627555250590811888786382784385248974502949316259235680199882136097644526064373404875887718303901958419892794658572592713038828278042399228966147687589216038838292678734691520551593783219029813412352051742716363194829227370953524059750015007678174941658621057244393455331766670348525774456199298261553909588970891241671216107055092455988665988337533251135403483888706569106198730298329098515963123142992706443913247084836940456733203559139878188470619042803612103350237971672397360947216624270977652407785694157821754823290631155720365791966529236587447087704343727773245042267808581544836346565787879299665639286983600071747750696657063736739915484337573936711775237235458743190637311115781546354175567054452543496061280540851009938834422065074203461383202792896775822435028876363302607264020986358227116427564679586273395348000132752999425360112502333128572550730673128280023613641486002945657961487457000305748603602050565653327155619943004874041523442833774369936625504069907784858887295496724959452174596949009220267470536386110372556916921217308593929694419030561939181158048041716082267150805072153494057539851698415244674899077612290337622172059096907310035066878448813885037904676329251573853675463710341071805904352917165820190863284246192279236553770525691719732666162062786595723594897213613593158902951638164086281447377809564459129395143556389937240292505259392147785404879503050180282779041855649232144729226013655998402017301554626178252060073683722230033662210459445779528101696100254607587722438686621023477847483755391326537767291409826649783763925647086864335431357831634007094801764411677775731228588737553168424649146755524025389070567872804309562094357360712041472186373061064466810467058641256580645870451717206621078579470035216850802699184225510089279225995513191976972199935388687196781462949614061455935821399580844593866052028777261982980893136610355453500566445997276293108956284821774271580615709642118222576053177972207617984597818736761387031455551986398999756986692719842658175466177367979893112708551843966312141409898206691562418682750433858066055540673449629288072208559935408327244277652754446859918106868972614789661413262298910014173482250371060531900762190500108840539199235752379625665893893203358155961984645119141256845115053661249658595597290502988080502445370501747130474935734637829153855061749656096908915184763776482821423024303108815212678009445329241551316607302604854153074194481468553590838514059637942607445269480814625745980545487344075987265612849609836980102598078346714592949549968937760475011059975512859444227722955569315542801776830385217101560013912868015878008411128410763511602935603701918155039356116712038999657441101982347406827790189079803966863471409125143030194860729764949480852417804405469514861664853296173991543320438475095184033073418094567450072381795427300084393184665048125632936018324865604118385232952286093331116918234546320859150915097197704592767038375884260601341006418663357183525934975944785331126356767676661161640363111468935615466629573608033220357545267526089556972499267825052331188153705718181267504105513029079723620238056610644169193761161215997643815890511089753337632679901084806989108246874763850129878569061531989227491198134852217736687273641803862607879718304533898208525663537246945377628637857214066250443003974898557127524499860382088959285645812889866882422604069189299138203250707126455009994144848231477014824100644956337833264987485383828081964185693800450664397799366337889487724286366098559813495569658891687989844991365486756028391467162735846481680891226949763418235209070744852326585173926578270953657262760056224740169194452436661725189505097893301317659727185299928953084705695843699464062548172254522651516762297448825987472470634573518491606518702707224462969674150882639074158126444326563498390658913712956013961888215014023327571178231272258648482327691781978660371118484177390060683514433550840272129807035224721664829321727426733949373719512268059338482857200836905444739910142315111691579466730640790649091869234579170248815918753790848850375520814190975859370222117532304787237853689773060382230434468293761616007528531968937395048913768913167453419668596614378966866610856210755405504039903073901338259066544517965787330448922521702717129959389237383169530576893863562544008471948924468335642645984494718476743714011243686412283759454493529212958972510750876677375400585940956211148644805257985947917976919157363209976317109626297793903702240776048839587067264852858543743871432850537083606967617085901298532323394159698633830912100776878535472994883190792579287075429028160592415653917476373591467146974696282570409829992105970258191026121764183060488007868107711630717043989106827849526123185441319471546093872232548193001075422936433962700683971227067261697260840276337478937290436693728490655075631132227250146868815209457755258489186901254176108409826778989510003678983571429475833169848202616940684903089193869694979677342149328623189379225408065767296932358154990305688844112578028756226635457806600821660300463337135449971931136057914727543474509422000550491374142910302201297330544361346978010379980045831204401156558835836670145684898609616167260667008313827296573200836002922650764903777383385931337700356111790390137197436428479712588258434020512319903801593223831534201507720392631167242272958493177138695063526177449546909843927929197525293456508182711233331253582040685217493357547795410814006748869220371572486324141976743084748278869267140669541652952060526700893859340283652654148997910600715279355874118110389446721258551981034994392278790567555605915713270484470243380983562452490503861731548214909764884521599393275314393150512166991800280207654138285360406860056727285815423685671976409067990154267450335404647921618299987526136872280246970549421856838709409835564509254833470236538710188985506167927882893391678708793002056942788727166560131559734493615197384229918849080465852865586980866340776327183198781977224026739821389667254016871556258008561824399892243520289068902206746097360350025595741206834386443139319546835423588312462032966162893563831993410336431506646504800579890410968267610389321670135319432092049655802632889192856837258860218120094105606110362284790255163635613519172140833484171597055933343496874359991399049159098369791208512482126106534180398589191797904081190477870725063348210403673638089765043790900474733562873472795326897972791630604102629120400967283372174995763425179952634163180187203691921633807782685303575122358617902640809321591755418039629161725629516944566254677214632542280483917924132050831641299679638855493633457194264546781971318846997338181564241890095431490214492381125711842228560977270083172948543197764498339723192520083132796649313805612720588540876990969299242632347647661549995455346123965189969402796846897978275243796002182100179669706521391249643631203991848804008009350337550749832845220010527141786548287377917008904756864069450654542352096318246438610919112393891465102323482161197953084313777076487660766413188724734417090883160174691236164786738856678785587948486501755974228542644182024530422026666373368281643464164672756250203245390615538633782749845903911376477710372533846260176303130777069473997769347565725287868548294477065558323628230820449439879120349170395897267872048320859221361536106526752819960271949019261514856747374704023353284952023143196021500898263048516092665430349372401586590269186358844582702906943797554003727632106638240557934362283672373689230193455082252755086360404357746277957013258711819533300705378138419680240126967605603384577957377751176522749934247912157077814069964855002541058087208675129470535411133538283582185774435353181286000491215389175998710367598131499219616852127162749282284783775582973666944684264149857689864478629065197769219386333686409854117384668193337957934644034627396001155804182106382562738040031142986501719533487470952555995194650747028963197807408774363611260630409851694807155481529794298057524927390330467956615660515867040154370894296004174992321071953852203678245168429330499096274069840218201665763180370979971404004819358528449801166613109895433506067738947207269913057076492009707419464707734020914369479123635741763098294062820071153574334035574578643871292774863197377108267708335350447988555155974176149870257017127226020437607357907581878062040306517722328534412133232917563051235480611348644943917558683542288733239301752189213610022957147155852483284027024900347938003631483872658955884533526747731409266810728374795210681942630598747061111317842560499947445602708463186654621191880705651731835720201133255766863743934053879528318523870966606865781430309797437932374022037346009408009607013413027343443997485134724165575153480003203753875172645545058369951128292598356832160342950576100635537458422118843412112073284917693679340205419303207111322037911197503166855631200713894735346530908446159047233488206659973961403399499803073894882881991723610686202254089784690456695102622027211773290173221128103734835926549612150289548201354961270888970387286781276213160875556911054840643217071252380532419389523074205706743030132040772930099650339874708336019205576908351370482529194833160381281365275099001700040497584426430314722849412370489438666877750773014958876357507048327529180049831497509776746838895398122069419464678714217894909719764101205499174308209247059174349230147051592000112644944302392384708889904771511671669634383259840877305290330747854986884486331152550287937644194262476769202873807524164681013951108944922822647422004896392075382008387517268222302671953278380569841586210966302502760689057486931446061459731534724559479884919175719615308274203678391808313136150734668212900837604064694595154694133641375849365679015536465838751299523033837983315848396650384789109659358448089978290943857888829475772995727248070244509004161859447293813974968562911728217245571279781815180625926806541551052371502766842481452485255651032557152152747108600043108514429323199302817250173615210545102831417513230484842601207187903516286582423368410858423259060299168865577892843980716187620175052416908507887775185239654174564606213642532545362911021272646364449440121869425839163670716132717864216133919157236711282475560924893045954729144492348485090369634152300127675180897613104800840603854589156003407328702213369147482159767240811753183929210284680628838443405242381585006174383445549572690865564347841092491707374698470131499383877887646014647921640129760438420618401045517337272403636551987605632394738253829022489533663488072323486686965710045279888148491552479409206343606825354042027007929461953656680145143260254229097870026611139783838048621544209460721562598672225408327075471897109180368531216116716128961848693815994830560764083975134722047171335483162043460284748976730099231947744092893541869852264845295109664261961934646363222203710343428250959704408566174281002173967297793464911888084116812443177939673633173793858426951224303287705452473153310427972001970724923870201431627259290126301721344797531124315638082938876320607086194732771948422277974984066351540667460047231354787417346657765448602875330538508340121288124407695907134543165449567600383209215444460966246575171358710702424964245666768929534244616903770008197792236859867182407268561500121784060407191708259879708474112710026359561382563250992361682043781415263181412553373716872644424707263413503928817113034156601843858992492859925402158819813341441504931508009698296371839454520243888933324752473954731171130811705915107585223736545693130348763841898595622907194408381417956916716545840581281171640977892851980669532413382229849364734113029861132505311971397707996550814584755347808484061351147878279722687859596007491630469474556856592398166214604782999549788889607562027653674092244135989721830507673752590817675049571996821524559386970127730391625049792314598901458381433628978973483256665379640784268012917506693114243973434508740532847753443843083599496610848926398301731865305786122706238458716251763599114884537271803204181722943556997705835601157946185644512667068672069146450845455778001939682184314715904821894673106405026594853528673186949811763567726130989850162975725889464720442315544848772943586337425550939793434554506426062892634762000130471288065516578699386307314083843706341680472002471924521566561204427544517860291148079405043933088734838794000092843598868939562772900036016519266199989018497034606840670790101149965629150937913467666975163351039103511528589104841267777762610681995375879736073082067371701098305295153651111779526504932050433958562023803595352175938561351967253613607899818419438537244377614474338065699096029507666114708395252021663477445754810461381726754737310929351475987994793761484222580489564241951122626595651816617757307077108757411545665011644923108616143287962139738496015830369465364753543131016094678376274964467321033089606872269569422506689205777303119390991302217978963306727921808027249470685967110526467194037565982602559332509672216388741375555415272936190500203755509945281109618056067545112307412324166004970878228284161677846340893881686688310438132177766426428801679437962242168823291575225707766100965443416698327004739696133341435098455829340114907923456671576747288947823835457571733284300807293998039551352462256953591880496961538974387584852279238271303501939234270005585546572633671038476642402122783272186138094334191241537118219807923978450587893791843386610390888321412559012987747625105884819359805432445582504755155283235953097426591948903889052584421617323764111723251904972964957585506075772078054658967301285385884986443385397504395134710441040597149756411224316830883576478667715718648794494583408854816286909855630258016166322116145850337298350684538846937021572227095000580062950573494967134875694102368995489529936134870920557793864316442097758801791090211565477711257099382742256404467888117160986837753461653163768051469079490943677781446313955695963108369687328252577433812356086401075587847834070573645374861388571711652449284414032039220747800028464167463430072881253160321174478761157585055144771499229780180923007222079170647956468066500706976970790040107279273576778186266145541616875977464583040186592235975421082071078106522889168826737402068852475416606779549849283963812328793705923226634610726270633878468886236737393013389758618087577502487211478187438136616457209826353880492762069423972550904813171942720511610693355344163019285725792522974387862907347258880603017223751197779322595746882234360531392453811060846868964840780397514263323599053430786666883525926838726595779659811209396143120470581087345059949074223560595073387645180233590733266306396501555487202195948065190691187375505642743333250088078781982156493956343958974490077700154345398949757948251346841545863125543608095070220307857317566333706646454016498782564908446786159786142488818214468033561512178097841256818545806055159248986999885075744246981485168796981640174967641915152723986944441770346238025814537057469031091229418517395374310272073309241942589739866102169914598632169312515989901665588683639239029061863887660195389951430924129803500852480717229782581187684092261809026101175326357904281675877109847369349388162007551614569827581523557854628282032988650069508041134350549590474911606379436272296271589941967960471982648359616252469814325624321599261431517428886362919065775660750913943154677924590170380360754914136096773785668895444622524422573481360507960525217713246202169920902641448997722629582081893119503076480054447587653735080855085624318830527919571360049103105934335575639222098148104344980175181486349287478017730843029712927458478469718996454479308244426060023693368744331865925440867102094557232061456867231013744442409620767673292714806311343227756501898298277841186460108202369575847276516970530887011056082932642597921958875550274600708769710242355175921957718596475275491107088308635695244939959947956485943459039399882717655609028737001081009525010529512464538465082737624706599757097139395276614449947813517665121240398747854362307205958967769079563523817190595791714215293254444220642440342318841075116123357094455090588080356673657683166120319404658536865865719255669771124694509902528959586053603820104365782292388728223596552046243807724339332712974001325279601381129607087918010314701080546079379291652570872313755614644535863140633910250610436646908098313008767731328777318045892357655542812529567316225093428322155668941054085644218205361185098068391271307057746235800784253225908104331606710465791635501661421179167637639967075736654874770631938516261191914339281423071442773210326158087453197305348415204033737648147343368371980531114203986234103209186512142315316058014559968214901949028264821046436377358375829422469391531992021304322720364678391783095925002830834941430867409753290159052154531214599242296013946359523750880557103720647468109769697757243663577449514462416149192832075252843088814303037583898278031252644350141155157382013113189740068720452605921654822985389928136769547313971727877272801137661040395476463449132441107296347879348162664531114560089342414013996553263395501807579482223927879725919276300647781987182171793619439574909540586762786202324730297739296259873787001090385318858503437044997439374729910580931292940025747446119310127990748243027094524118172181585028766466287359492337809514391570019165606343457626590730293760960057063943599660132097809628177767497902170658579637398965479198139552995092771432594336067169646247128780471082263430713029123693658847095796594445046030386529696312481359699183421045193594596422914669133133959791288178449817056238134230821477811053676252092885732683751902083334231616296749193870192479148311404077214756255600132539515686751947100328615903762260180632591258543732646479681231289396579341884168655146186263784083326374362372862956208868214178116653432762322762538070526705376824244721674779002648774785682402441186248831045624722245463033361498872561400923706037753055831377380132206460978406293722817208829006697727340965277135301337069966994946534839109994484491461072426736183878990786289216378004787679149333010203225202137581275242242179419005624272647195958127016803760106082078999235347886565845278276902694565918513320028638362349834876192159856411762964458480394392994178087156364586426243931008847237736032584557564549601307121715178279307366571864575021213040452821997623672158421651981011999774651661228342466987803360768065420537932587591061093849286508867363727466704836003647649453485644182200066600968128068272024858552099288459597308498151092239364182469016462407116787650604919329907020440713976690652678758646289928433279077622578400828439639536039974957383188794085696522038993847894006858851980591974687054029799710754202275412903173311277739601810563149514595381342565174240439688608864910471764929586998523540316825852441934706062996505513635440325537003870849244006455854952643063204521680502093337246193688432658631203278917560216965240295628252513298317565161276373629916299592666988628545180976438627708975711326477268394518140661980062199993210133336598855663616649699752444179185415642220489344176466082459210475484208838243331385978912830393914960740110543635602383703219575726945074893358020549399310172962523409806573068672891073888671106305179149099513405509862706702559162990308269093046495385025200755116096806011921143011941410238932788390731326425526738214025026094240889996205137392702669882260671477075324800863978118886823752588041126493768739980727069813977148430874372020724923960837081262179291763645111872458931295100495929592818336848777411356061863668322362680153601379282022342938788929365672597901680241126221771262043340443252864998897556361901582024604061294891768198541431160124652321029121432289143808148175805584803958496698898426755657343478043956271847916945299521682341601516049694740621712061163895088459409770552609897070842813423096704539977434765968213950075408649607498612614813802161982347662127762984605828523218873118253831911005364419202848747818264953002955622066822725127835393676635956665051669172524380454526537440196993047220945119266037200430548966702873587839166857502329120791101681942479383495712724795613415623748379980723258796074498653079182162246100071149175377250069219466814381665973056119461289474501799758451655697716321407946463274514458778638268612818015468249661730422319847508630765795273935819600535975841760880255278875609926065080797980212796607276648548323070251229282033977772453693923591758775714698964337719010106265213802128105846953410194157512564218255049189943681165243812746606826857554172836168195659849739671127615912396620693240334981130829101314975571562500134689818841090692801738870362818895890884305376822874897371371145661421533262671898469503601400682972126156458646220247888619835096590163181006003352672363231348013465575983804553046278537642478568973556637126037846367834195424320701893935912634833781205150195260000505880768291986208517538681910782178373348993307793488520428124297168927513414206358587356178950697544370259421581961714949383162471349342088434956749969032201439739280189285480324649591231860832823927612755673911240567852692553565743135914758153051200434889476032856001906928212678793717726923428072899182284348575445704325105203771142589611380916242339776012104766317595069319217455939236495830665548398326297394141719181036246296769450750230229606946931892590552480448449107748326695136357930322221116489343389233939088980804502555314930978103584520969167685052510980083739445286889186219841182555602113153000847956525858685181899965847503213850601447466200801539185148310558855318166572258311018398958379695295164558077441126326982658969988254717434653407185807114696403898061551378761280883218688445145064452016564991374102546962168817567916727119007488611537671804767006836612689900992745347749177053915740867908310504642008801666918007009789290713748236792844831755270355572561091755856339448091027278738086684548308554347253450286145787510309886969849051036904585240969719697601171834670694937173468611239027305830869234094684384660254872586558265427803370416463488318034810736017488696296936419030348897034849788488940909224244658141104739553156196906958290159269201814722221346918170708990451561085902015581219781246074164280774455086931394271070670458542951903471221473323009347908214511090241652148846685202690452305252659263834820779815440736824485764856646521464378110054158404658338182828072820581930149271854993208253564710523003680232012971850282410244538815590294576692666215395150405829339511619978928330360324802030760913098819767473711390292812332792432909671526864067851869553757126687063565949486308300767772296978039134384556408813217975577263975362856785013948860917832546609649911521029396735765844701974535091749732838384928013252414260990774878034812838442218264820378327561156060633284084323435186867655428322179082425840343208475532880385912317025325570477535109225693397400125950236080544559807154708711765310691413634486543406648729381918469032469640705811997611135170786392347419442717269908096294745996155190203062132692105072595433421262264410799596272273667398472649983354554692118188739970739721317245877347100094492531797745426532489566929828859245783775885837306538231378319779928773575202126536231749188029838790529064025389421690658095701101275839303315671153434647224285764089625260985913312138180838079773768787124716936368120579806245581954813096417415235897500114933014968924001987493244798995598670180339772486629946475322988630182252755879249415741851619152073179866552180453387739717911999352914582067671429751681575502128635460855307602106660571648738026300731998771312879813627735468208306437912455178808186312667021051025041726754180083610615780259645556348870018317958838881796319845718709609027632383701741525563865652007327991152252171082439872209613132348333835843066654161201525655667782491470202800167417736073385420040651342700588074628546562231208242084349374974532915522270310866936003266619764035518681563651490487720962824252409945270282540622311035181530791603480321801810461171819842862694765139576848166933386828399222604187678879072842980708181538297062832542430602928322684233194530238264758215724928399306521397493233930621283845656916437769800114360014307289385473260532853259001777805082582467435074177386415917333694063116576417483518023298444234281078513083278818050208553438980100529115509463551950722035342118798737774855992365406129451105076291136370481452875471317428012811685878155194633176991752424591387550716898296906403823673365133134823313451901438721134601821048168539660950955942960545563716779793637577430260236529074314173482778365384899742192137554123999518408881605791041414750024440177182132131285671343080295307294883900751235862273522802599349192704801104855088210399426192170510042337257846906704558544528795364396552401644748120434973918746357499837333856880786061081920452312402897334452365553092212165814621053091580766823987487092368139423918815461705833066393912921784256983312876323147601550132341879128466674244648993749863808595945408862562125131479260111838085184492527096347720551843007760236110020348409233704038070560929612031312982297292284885101978774879129314552608849927198497401899278397800773411246974325730385852296847085114101806505123089551865039197796826798730378071291654884577786964708032180153588313556827427024950190985986595997573932597164989054310601241124151008732800870299515169166094953363493639631932829448050856877459348247098665846257118288650429210451984290098524825834896092805460561049642334444900158468756933919893987728065909478774886816669522038756569710418583015440494251083439944814819560941629957295474884559247344548628623777141552177972464180949903592073512542499481548027195019478574513281202534624410408660826363211190702235708946790855647484931741347907723180211224793385903497776446477207252896677593632860539566774746595387450662166594248173029791384263768187598150184417520488751262293748289209210729818871305811661917567455163012739026307559544626507898772917561971711465955660252902935985104098689310630773672549279343783982868383818013542236802608481536615861454072351862343305199549210170952975528266175278322238572780512919561753335578324567960884844455085074560585880102742850723000711725103049642623538417583785836605500946614746251070699316103603036435298075574355812990042719279429596650446329673470267296332425145232199676704155870683049352505406536343881006617625631725481819278475195739185837490553307975598680297983285075524112953037289756125680125189676880986733445434365422856647399344806218377132776847015393261188440752400311290618846807037021290875835954105456264531141092905177785061920577266610736978342594064767485956404729310739027904934216138711537668613014275568547966145713307430764821148458900015492049215529467811561321605841305867041245987483560873016724304084910444269673442100751471492309344214934409458781958898347627657010251718693762392198164580285483751950468256067654182212044591758590023552652645818591860054707910572571212566766626933616362956293329657761064767229013996804037093040818532308231970879522970582250689954804572642153712324757455746521884523819936420647322323155008229461168578154769129835368363744344522546271520191168860902778300547064571019393437936784564763835058579462112189782598087283608905651575831863643539300739579101569093444118076498914987145591620349091019733806467264342848652767676480717627744910691333771056586296229652226199186461963445003522059006564244740874819002054334713204423163382047316150979933030956086505641601130615294769166441945570758889349172761640735440997981612415078587908927429472604020947319931548141330450555521440895274133990873904259139688680474119168238411152301253006847644127511094245584979610727571170772649821644210784888941239821965568497527340969580591090489862786071996274244521741451358911716579642900967188497438379967808378994512548902909964390429914371640493946980963776086174897163075617574599072888367168184606364638569279714449989667880653012781769331225960939823506440012528282944977943503810037753203825519538722639348799419783413429336973620208877731776852623057443726939708801901430909375699329786402045600504700325889604300454454649453916088554707986681576480627204274569391951968434279642003031862768866727129523648353799802788067848026179594713730601262176305774845273211057713787419865390644167087623864222655679528899960454215916083981860751710781943274498742234798824165310915560672691906160519075958718719166845380267946264832472970694812438877037243934224223069880555667903221064824657171668232549986278578385510283683515258753240524340878308920456403363213580964223526714789685868017042682011246048453432938988508992213365977645352308444802127857546731807793438387180458115457484964398508885634451357772838256428308358679699525430020200351379049416338946096806160539789411962294580201799502229667218313615069937478818439078285210191309927184187309948763703655963709520421688031014643809929489863792572854623656992707762711690674084654860053322800122654443876893978654332264450989841871379875399897404221767698180839663113045349069821283334332284587257971617366524462040650292253242059462748264593233540005152632940099022140459913147957082053249516320625515261504119297207908912657090966698477864810134393846724156253473609288324324597767330662158766853321412741037255163945096711247195871771142915808519279506260129400224390276543101613260799725808567839243678729830631285939550740388893033518462091008578556214672245053579289610067106984452032664477677989357389744131947080852443577914675534411758006501040247526348960607122684261576733762101748695443109437028328939075289067489065059128377463638290880471738859044206642421323407755961073764406674212289140493383722794675652620653594578070735497977077303480352116261605617128655307438639505188166251425804677839589747043291174029137317619916907324068045440878392210009845830492477343523656502897827174742618187378134187782873528544127028076549523318019905579728956944891119840429267464718769644737375358437063088480499507111539633242057849427466833069767854654549707051112163028101601048508048065732156622237530044736825638695404497637672894181786467534141851331312891294301458904341533708919261677160888859633536528454265295050848512480624974574537094446091861689567607767426834752295434873268251829754657479740317959005126162936898120750404362772318781696627790757028282751968275065422503824005315238497743296668653136906917283520294887104602307408179441896328480350852503771265853363238139512675531785259717279562707513203703423707432515420549430626030585419041602271124032847642653804795297783858845274773420726797692678947470826864895769397504036722594739357399802560087117000270027415873602106348978479885747978158521475863957369760024697808673035301488663266958844639368688502374901748237437936855276704033933455131666372334395153248991964063141052851894310119065828287924950807406130719857601890600265322842354998821366268450850767299889608504526327405021278823455106675166622526040263435782149280851839776786232660739546304791938763269986660712066247364636411395402075090812968866752951410398919179110413325765584320879358705060172250376229520723203103675837100026074249654368424580725098209601474168833001754656923233005509027991364437412536471416303943332709786854871592045105924669460690116972319821603650129789520337542274866386122651380264259488914750727411392165890733633184613885913173023510515798708347037641258833544683844279496633778995134900920134380147146283832700366048914602640991748074847876952191710301806888757081589563173753801322844575656939525555748735812546004008138451347429650998425345578203113062181276796309909767287756263938222287960081897332776561665600330933459483963226937064956453512533585575498230828351281553249697353096777367337941458854898365399314128338102292780979448014042810798049071935111102721740990438716707366245303930517729328584126970718068142748014158846926085408181016923365826973113785766325518972493356365704214343040716232049576862298147421567685361660049450659335666461638918660362133887431387266651582634897183573515131190093298839088034316611087049603655515431413113277755252171605095634964869036967879348256977260417117787273161713728122180305585261827766824598341168895434068228665907912487447483404498312244066321544050455611851562998796064939904999200487164476422742361879966769475628394726447997622553235238467875302038236349770161211140974251111676290909201724987000441110690955941876456181924495985209504974258918597784209262906992102203454600205049994760743355465559446037287440892694057141569150572355421487780479141836996331790570922964857845644611056981304839713309135839365246515801380242201047959537700801241509063814094633687157061155314661472373974776051484424777945626402191583174899439053277779579215442842730336823948193018880774209995235036973636475874867539687609775967756947024825069094621761475267950906884876978982633652391241069188893847074633079467746474279573285827823827269522722896987473379932625747566573090566616104869772136710175935841182522057419543146638006031112122762373759096590778749063191996861707494548692600641006632837464437990754761690973760403074877103626851455587419309290858583887083313264379316181071483491527950317734957612214620848363219985892969266550985435869824154779338649122782056984230734967156846190917063361112723652000552860941053816559565918980434520643901029287844292690570388494084436286998290345498600544190869683719276701361038926834544592744885963713798086857264128371092025466709735911906977673693251960753697764080310430518441303255536923956893339977981359142368790541451680516627927998566520224533228788740700472416307226180042170076871859476830023889611751142560937016787569541983777427043740405962284495157098658558570048963027390868862889876978444779163418083499499742851961821191221853121487214070034782314215903687899519299724661815687739364197298232831484939127188955822167775300183215835629415307191311758581607620803754857656979920142657071847466430576350061069110784150531742012400618512745673249532106299633329926321148937573881237271001451833910371840227560646904403278094056302960138285926640315891317176113891963835869084582156892516511326491612310491205865929823839522954207776577424907904875807458095412407390652962023437516747599182588897873408820136652533170713114958573707943626472099016605381793871399836696871825405653144873422180103081737394943636734620719279188554267725688731411986607120901449161848343779929843320444409984914674472929507936795292293847156315461912447366898916590281642831544061822439379435047399852893888055753427245117495746250331942279655097464847349620310920126290838054621798408195975011173300063436524833308264773180957383154420452306281593785156436745461557741390015165525962358351455452793969567335068152306004957975233557799282575336573868233577896779687378117603889592019804214507500572216956155027782405944366162085195309734632518252364478082801775722848432398371691967456453702064080097752763553017776933705693738790959517000979773317421809120703707223110175170933189670072051901858937764426710981729209878488126767514316410345588830030113690486558552084357412514146641033348027039916127247512298525182897563563351705836417843297595722947587851875291734404699190309485010150243036522732406649478447071314617579469425388962416664314559383609852007059864315798831357002513519594727219770627149250724814186667642261943790384232573871621070726514124300229982298429918004326656596142917914174767647150713673674326290760805071140937550056401135551772817242129987625642932299451272377128901351952667541751696127495762183321676923513050023259257308435891715987238492673975354474943996167700417995169633675416012169826075056322849175775891860461527370057043849877687031822423370381505827296400231012393899433007430713686332926982820940171042675599951776668107219334995006264844503417273593690052885527410034713626234718026696160571235344879830580031161692999573586904937003878982220388937341255623884063097990169310825022693889490735969362879478872459179298161378511417557697858313795529075034426033539319844675496830155089465631703706920446646110284200590178584014107362440666076651861940718161420905159717092106468889651817617315424031129544581126630416748535338117483022839040987888841311296678800173734457810480066155067119279045685805969671140165914337069475744724899851312640735876829060352723032323877037560065819038430859053023940263356884683991319249614798707288491902828440696010745212295184254839548494078210483132062365987147115855005706282672069883616215107603077454112525543437070918868047306936513713642222914388530772077710700153488495808402317046358877267093635786601407099640019651066496692430064405887481769940509662554103388063132570890434440779257125297214610786325471104433632380418318798166527966854275002470407746521227983416019875200041814077054951237870303743197415286083411166743876816875230393738398832634998672096024792094124543600044983875019162792484605082390094237372370326577847267974728159395498946649439958244518232222525663402812313936314924527350812253972449833599810802954993529268252924652971270778278073087131909851822335666479511852637457191224432089171544722453307992456572084156892392317214941297291036002054044933801508839641615892497424220748477743061317904733028306220809129986634956572963882559849291156504015284207502293600903476824974530442757266281191885492544580615589928827175605601865548642586420642118108155131952196584355288858986631696804902753132898177715001588291301134789426457754242741426649316439095275035613111308896523310514574090680240606309176696315777208372641450720926515890022574895239450093888605504955969430067249729150385500564023882690758125117698520841413168921980793356348808976170882190079653802438458206248545943898609001817825383976231029586693324212221995312447855855849097788465470952488891487107292691123330366566533739670018404284158160824281135480391971945821145251025445487301104908726824729069709956412852648342487129810729898855968085079763272727363060473683859194351029685610798003119286059158271678067721326965467851448638189441940737405793528822963295581362039836708299413404140643983432687076184256208139470596353565473635962438352763176293670746456339402570202169326051137836068490017127513030483058661794884408467099534904327696297105648176544857543247476729470803272829452087748509559954334443680448231837698292322311852436558739653417916990109796146804508349230946202139658357714639935711621411714655516162082297729825063237717949528601309433178888597493303034240242750691463852152921897288179892311720747104528766145474962645653083173311964219031462418176336971759659705641003915497497104783177714231095748523856059837144473168166842144695187643745544589686224025390681590196672276644204830745713878865379708934702016454944264474945221460857640467764766867825654770733340274915698292337803655200415843764788738012564570135510207190997986670138889649529459989648289608080255016009995022143489311010714486020641907009655486515646520711649731321584400412339330703587825245250865969836347750294421846142381703765238270291712826209042450680378338262546261192940020417504244311428132195629657727792761302728582599101977629187964648671811465513842629283836360263797044002711733532930158578499389447146048446501520843388008491132945503318434486318920254234545019834616168156451586292300601807382274507879974421166690882225785506844367893355280904793112236552984320865532201695458714870318870078696697888706260372945194356564762244889906793244920491211783792828793734058574298125398800641533185227604227407847398141844805063973983119911779545328434955370209936255771285795842582056035810912805665027435370549094869874884629261064333773592998333093006773790195938711685830097014924427938884334419305670048070629696096681532647754435826329665225880956731027756555876906161343132179233459025599111520066007325856094673370505089777570534969607026549104470092181997082434297177831660256268582257996781540589588715281482998185979769479951054654266878889158407236140031485979713765739360770672503652834532879909212953805702834978020059176692402750222584305657811274655465334418896580087968743917469068433805213496778097789164130916910333808702245265877293256015631752936880966441135117560491827030567255578801724584823292835995655487276741616280771116525517189615474263994017164965405943482975516792491572557205151590918712034814104469380304036404288977742633847506687084701548507719808790934745224266146607452656094920515721953800831075498156446702448284597771432024274392286558237269361234656697968883846188874245630524899796469487223591756943085382912065278073342142580978567539038772065226517521391855542561303970935437747290187036876355454112885488535930320608653659331881838356094986816092352315164553753767103973685758888040991170584220694681856258177797736008862673058042239369013373558245530519640712563825417517297384081291439446905123370290361964450337944138425368859544771857965860055740307174944103501428883965879192669561129602119245854324361780258271078627688824169839143835547418801035648661041946180467938934809381058610127889941292582990649541806747645837602053388749062326288834824023724585069573465708009740655921666519038570081773622102297206393448465608437749921493665811523933893358698024682083157104147911864142211666756597467409691201503477940062810607515897439954860163389419777951472229245728719628071625676169790197742125978623020990752577596886888892620559413789737721850990229284797528693810238370296340120034464242815356256668927347353019464740449770603744291999890966945165767590031225240544780432750091917268983302964295274111799078330426684166956448454779811596327173531777304677099544266895739209563137376334021688600144748634988010748075946236887732091824071617780761750174694857455470876456069520428439447907558562592905765883941254666504758675174516082363747535709699237152193517785710385523733282579099879883559031411184033761886010162713420367438987474385934430108602239221948911591984117744899819504982206343705954602155852249352223165432019833255330596384932514056248136769791513776122856511233668420417855349148089661268137123870025010921805206163027522865046430247628038161083923329196826491738990358528529661208944580082857846227961826371162411994420570691168765291862631070388695942409526270508496088453505797738270402110507899325111266071523935552821555018642737637075242166750736584389958471560886589513205917764365372459705210718039931200952043140818307075427844767894881571678343443952446693824721732653175316732315056969740817265271810895234099742496929966011001927733819744458685497163641338588953591885176867687493479288106533483890362816810234349692451788636506233024309544070937726255175090999483699678554311691488290845538692626509764220512732821181734456379194964686325666846439443358273667645502381828458787642650509153453964754356589909506015971689888961592395816627533092806236899945487767459187083647307035941173439547623363083401468477824730862254522483993719530451337033554314225068286875583291670130705704650856950905294965234219708116508424859532375117789675940984123401338491108229647477277623095519162841339199486446836660650348581568187564947439331226114588032012133115996099318075247483901006725364023152258937551149796740496663077176874862208020736073104929498855332721827427239753979267834466695580783745358554824912190486727070760316669712089739092276885497608974425984757113310851348021625854226212384194518049006192543943397159229973701938199512259004783366516727829929150871044039680036668106033478699593036459570311973472215154121690550361649314568646782233568235318060447828605502114633909586498007958516536894487208287731266003855960400590479009736965188248879635303357923003641156992685223846033489229526287329011115103162601586086039042199123982286231427044474843387369255206662817398137380649272144650371383865590302798777389626977212522038193734408577942245516352070436635190154410695699748173549092511812975845744216313997235150593104632472301790052751328126921661836628755647739571180409364764528729437514985610493269262243819897055912169538646788657774246909403757818345122600828961855951210773390680431955320616197222857228116289147042090204006297704258543180166977998148307493350510405017442489637737179579644914897663629990799326537279796782527304972393936764012663735557011467746790432661278073350368403434769815127340426704399770372463908243706565192635884931862586256391181493580048319909507817719221131782066915413603477971741195476371009055076928317230792193368033011961911628479160835789510328684263516015953914268875633401398608831219333081275061640371227902394186165680549889902284469425103021226162189095022499767438752015666360445793442121909347033867711467472179086878759425471825520967686907067147673443990741866769672244416729559160660679677821499158532583272590005787414126731357572665631999715417243981788665634073908427286285577364846563511613349202913498575768657218291350530323149389034670299018184873486188556284907370794085062011353693249611114450285635506485839908562122676187884542227942044603831483746745962946710216198073295901591925885355173739146473340792818217604479517346583904595180465296751237324069885321356529911812264392026874841213878454926676149932392087678494163721434321729616306505683770934481041966777044963038553558824953705849822811802955137590114500269275216146375047113737924206910690814329477099513699365410534698453340533611890049874289509740087664910633713482049189742581782981920954504066951500095634069654774587011476129223758424069215207820107328849408565988448146628320953421291122715265117750442830586211035018047478502169002000080228500119964669362922328621080688802063239478793849743156291961305040242548724205125490332366916034108477794494457694174295676058639776156633278723706465709024533790417855119352866440098363995811500568123149629819433439011548933455798803129136534321290164532448098657819518619749335875641156386070061248258400454385065781732759300795332609674054638898051766364972006907912145472276943076028185524010997964538859019702153977647966604160151707225016109735190275773571618353169637904857688868360208608531241303788138520622319701003766936781860954859610353188697126706465362855536602886528683407915801570757443722968723469194842687710337382145857392246976901318975876040893383883974036652928726253597705024986880542820875769663205726621871783312940473214768016393676067021027102813368432242453386058820464975876564263889852296699701772786843033427806006818715569082409773827984713155832487786269631792374063314620832289936492976257461298822832105926496817924590411337707524598800056620471464466777474643074818639871382136461321592471956042609584146297987219038108766075239623440567737314671658080042340571578635141575691984982432385431935251089024548615788431162094364567859114882277119733896448513939591205389051163654479063747802723281192865653927328089591051679677430215343935810728360751214270446961110514880330322460181584322206779455191410166520053689009013164388228621202425441090042540847963397517390221753254847516596560692256685141403732891978842451269209254198604965922881848641438983304115121007789746246392473461112878463746751109843254088499858830376793742042135088194707419377668050990392156023147640225189830645167476701968414322844730083009764878544679717348261277872628299914586754887939335906035306946097268336853505344616812968186062391748747839819377231833267340787288585691539891097246196052357891430282919774045402382166636613208115923895548655553167595338556974073034693407464788345989280776788894740197552789729325085053563498772490239447430661662743340888418456952616099873564703398503623942833175982793790323097942280766065673117785882560947139123753669496603451474204071896424880068106811003583342179456265451472592600478533228981999496097171294199300196952956484464731277278225168435198109659694039226267099116004535103684737053664976339837076579746803949301715574412763038767226102431484666993636474759929570999696190388075026879369222942226694962587122208965950117827342395703688086982164792919418292495392244232826381845617424095493822939169791739529034806732506781238268115413631565092421585649320421853033108392286958459051190674251898890103577432348920460502231557200279474632096913723682689793158713009571665628247886215077116281943065019324974314551191974996146918813489920730705868913900767349019395798124357773326024019585235009448502668601508028301454518214092414358296019747597410736516404038003301391495871054470658410057539222094554487531506521789283653198132494231837984050491153538909441722998499503683306645308811694023209685020985690349492963759049397325032804227962369914522605256172008293296190641610327340981532230093207851306462690086702884788811446245683626201029282230218954730826934011645841948428008841182730142422347021821933675014507845979217164096661510089439781050345122225333553974543671901292765212154716868264138709596728455136941447964861176318900110154098350377024783676896363702838019134782833877861052841571464894503350416025826427957943141075541895653126005619439690404480280317328009319989148767970798247895054397527690069420123317943272284461266909793962997086360002677994350096175062010728315436841297032003740785147624005854152311947421677187195854023553160149108838736154267794858237259618324605411177699154306706140091670577143009748706276462786492765622757344452357403020573763973077302741179245884787995651956528610734596198688400578243046091622166696240951875400010537164380564197057084370807663306524313033864211916090086583032030331801774830137700080691032107838897263776023297699076106249921961385258803516287790990259513068483121290297509257394125243207065675823318391319648372006633538417169603583573020374622331166583827347691425784907240925255956655990115773271398358481232843172199030040956200300918326745112561534743415656260367565956339543891681188360864411719068542828785626302005327825618118209921147391743051504039556473543943247777540874173623884604685087364728827621747187637124801833003893093059197406294341126215249204882418569004311631492699276285464652848599845608472591288208954823796430490590359757756397104781404053253206253585587184566003892138787526747817656460871155366861389179488818232469117650461153212824072315115737466526499319842803729695244826909930480599284324963024290080073122061963113988942656219178559441565822025642527595164650312980886919317974028690714852900717947690104586154073735353571882032918099851312273954968679336478740538958224982606433877643632513442641590293801442939377528917590394032163195224891946042039989242173353384661252663936076739786871591719003593036724653824226335710929618326731909344429655132379956683979464945626163979268971885780498717345099031360467034221216013643153467551345700900960840905998475947900885447842071296003445603134712015722428258446564621039657481001730637819690706875284083029578429317035685059406431208768752805697442216800142886719444121966495995618307527790571392280739376168105404913961163838791665055684496124536488500873908840707299527279253412746557158643207692395013303920422177652710064270617413653396757230545111607490512376668892093429482618369203805957477333934484377655851883155747970623406171009836354933166894647571795276764174040596629147192376196860622715524951157396544429357870625451080042353976440310533646696382864896902501084791506891691009718242461365198921247279319725369512775324143896829212207261351369519374951409846717265523600566492909095164377067124552773086408358725096584436541071759823989464647051473544492930380993433659482540778197050960553792366722835051512689879764338170484534871447221966398583481318327261497649728567541968530834871447965700918447356438038847249023529504003395188169541699087239871185743025948357234402096241875655515080627329958374605406194935718111996276268283335676936334174323159852151304599943399379149959175114181005342001466343982422845044829335609655707686598813876229146902825550284936088437203753019827073662833725900933669200529249181138197002013444506243530635086918858750094191127806530320442031737775449351666249733927294728963051314289583904543053100306076188901329992734673191370021770298736696129948902911111627871437926046956250861244446565642991545091322854917800827953351555122991802898986883257168479360826676478923556674184531669314737248886209101900101733076397367619191239699719133988400908725592300082039894546911953000206216307007329832682254090051981991534828250588871353315257052683589138108332678961938659608483930506945616805678056127887267607183229714194381537078252425149929712673580668991590713130325531684854189891751879829491898606252191524009104352947370141409312712823386091904623503080767770105122030849568038823992940969012363855667764976864897259095504410299989920755000522955693006933563128249982695748760997859448803494487763998850211664611407220189533934838769271656799070299309807515596932961022262643955198716285231420233449286979942263143745578688101997331027515079792898166382960152823167235516490463063101948361940665554068951135298120820182208033133321440078566552137811080383530804869552533990134287963980824991589429133851473865018856099715014295464311163611389489599166398098264575533129382205513979632650589287530496107130110368519095253339883491751512228692265422371335314392838468433697193651622280510873205368665146893920409992816540833991270411341276000546509132571023704357748944272438994917535476274384802830221140350360292128973822103583915038621589050114198840791844398507346836439189780661547932058152235752584462468191554652306298045336106206966298142530262848420830389800439419271618629816911056702101429462230334758761001038022770754719780752880331385283786172759104716220128292735814170449014393045403098630493971999669643026434517905965140219934297212046386082222397139116667748923342621360379594419267317119412555181228374501515360291115582684870908799460646892655984809258579627580868317390158655591494513642250601388753866574421156238021120087569949915206614069413265162254464085766569411668276339296128337625371559008076052149605513556544023734289768773295229892807222705802076531935192756749219370535319961545420223904528576449572799465628772572878844759352152267867752212197496688684676715181796928176190123975706999151303574659754719130673082719940432592453785546109584389623192641146058720641496705460977580028025861226273942906725183286416470231797814035399780693395094685693715067589187514996620198513507504341991526234671171277507773250902715588076410555296288192683059304175682201223031223821306385955739701618681216420063405285835647351799959880492128122078679503676075961909727295639567028798957278324020870767940935728670950855994111554402346557635518278040941137338786802968662876840630946652410365469880462440625974398839305771491886506875708542028513452340148029663876728776654212184683361103728992497306804047866676585730645246961444863686336618876809894580207681164290831146842040101446180677296118228430839299454543722059915020068464823722258142058652112077222340085349038198123956998618936139189456889745149338024756175555155747264048649277113201679656481860586950695717759265409032373248665455034812560575959128794675637309071691294667593188833328365517578738884938999986725023336070201484825955387329854293066750485979738724371393744776497761884375296687491334652081750398334980818986193839211172851118919101061918992658930204170395791551411856955589595619402068136160018305727692477236557760717746510275922071591343777631479399804545140187004394180196721162542571182811053349802991149922793026949120379295701639465372297872877921199096987433136094315308258637060733379507071752495390108452646727701651107591420564479450922125523603968674302837302837826505559214194609727445680652320008074469392134117933733450597956735942387268200573793778639254581243238834969945998979086855647758632601760466216415647193617512259306869869708826218149196275649825979914081964080649635493665235269533633082649904919728728470141810012801684204282336619172481179215014466757131264667494444684920754194459499485129568383995029004068577924446333746604278398636885139492389285125131300338161585515718988429148834530161930340593444981033501712048534401596826248625385039517755503888923995490143077720252248881320503342355136318713608992266909634886697158340040104276741425104848929290539516878120761183960478041476345095892327372333961466594960772159346942234353367154623788126177098762064180172584627934434579362725692829089186823359153050322080960907475648364909735529288562699236284330547560550721979799487551422971072479176323568163577909348864736954725522253822750053926774586330389847650788137329348914205125895278767385335860461034554364713462461145373119904713000347679411990075306561814534125403205232504023643572321431601541431523932951515881534805876987028531166688164002426021257194858650523383862387231319418215928322311277331090618596265963443119311288763221851142219254027550224207365120692482315513634248867583021567797586730207952776812425740510854756332645906729941912536211726653317620435498507802809032731953652060486316078039817535508789292017906688390581190381712550230142631866992506938298551498616630767225348069918281925094098363543342873349337487181152005918625097930272031009539880647886261428781556207499948114700516299182299933607263910558747069961993770046149168885107942091762554820639699358864298305162316350418871903961393134818720177942386014181559344332751422153922880919920354650637846089805570487228019828822495951780547802681843499185716844861026802845086353622085576531264320240554982665733269129960986493531508299626331032161809846621930406083698686294900582434228685581860740298333628187755504468522517510058384538156046739659330677193697414232622273028546599768207336012898208427452397490624463353616474257365215438258149835637596859468101391170265537469481231600776516555272134717995365272004500442990752784478112380556141787481952745413098670080394641501236722585434028868615416557395148653781460187853774668373041781809454304389002644356614050908935608241729571978597625422649057986291275602204883490549550588668551081570820934253995133089983637138537992059560491554405039894070366228092463621610403880964853502336516856091771240081907009822693101266186686165448470038646817245511342303610418145951443755417139795059109642753518103724877966953485719794666334222077023600462565723933425395474366974569780016767564856543773443769061595385270642066412858863593865584339681083433304942844591337619775122816092626641187877645686524864859089914136528171490448706031604284774301997797747183967510413710135458430993994661786439426803426440927307566081063253068367063570321486403152619343317344659494291870078197513934544488683164110036760189520812071318852291275503890372810959870328566635305750370928899459409868464367904475827042895078264540785434062789267345213642762826711023393166126559402039512848997901781796539201567965751687233983348148399870868242778287638786385592057462657327057390343324180918950976180101009652905487759558153388514045920661102405618511623078416475431776955098728831778587324912678933199404566624567794865980756523742681869165077349772369707469293204274218529050144970920926739918412662630611261784290302023322133959708042449842104027244926624032460227632376728006240475073414723796881119243621286529059235442534005971167873325746536832933315213907233398824341018685527970909913205134490241408051884538826031692618431502965904942285038129865542076642142794011145457634738900380501841047870875465897145292210642003169414408114107116083544151004882900714757807320705340409668782604642670247848431821401047862777253867993734650908101746245987412357198258048371632866962505534751562971934435302638571856841546702146671773194112688246138823903567039803089184180659573073181886821468127942619197323233297479314371162258600139207415755820009271993488818936830651449289433533211671958819681635528521124575228499332089544154351003364686305967985310081325281820698969319102812277958026205281631204534461588369401024687656294406083140579614086572568651800527131090344729596488064260710562237814358387115808224097362335849929927703310635403603651529857365375924374521165456751420608351857972005235853285583133451539913329129021950852104329762563455345332856540099510842627788386381088083317552590979506238737275497700585315176115659367625674973044754789170318304034232924051650969190469894713374089398674761016548973300935757020626051571046425541213283587678209586751528141702014532451468399311286317383740564219894925003241425581607204449261315708152683436175600992232964290625722472477162454952124019955186341604886960886737757808859467864685572911632227575143094635849338809018977550722751666783266801991360259628003760678276312723743990278260396168574364787925430644231156439365975445503266972722207081477879139735486317650549239639203214903978132626611048460261410981300878697106599845991473020133065083756905458145323352828809537510071292342694645971444923462883692139443877424939480572713593335327309623733721113874025292170691418507794179719057429361384425516283249328463593315544503210174813989602156669135323615338093582782843180462253122095112052605322343101993337650445614921783429693480431779786908201688498803563230428135190922690511775227484754017473680901321963498746746847934759712479593880372565545556030537887994606515925509849129897344691818701017617249881841501423316196150114257764882190239667315173064320483379788333326956815175676085428378651888342089489197518053604770917926302877749841058649531640175893123211703376235874713039401312217021457731171836235390667546495829428319156643531115371194593099592752588552486245829960223120768508043229206508067991733328516465074807464562819966110021718126282729874061471445157406142944150578821460282341167293376112078072834940784732601145342173887216625479715666321621425733629696250656270963148162731671451745713640536954363616159769943220767248540868362021166185189604778002659690940891627731191460782363246240782303458411964707352942269495847685954686009852838624025887187933818076633739701675776641004974840076493660192751314869248384585695872825623669375151724332718310917566802061568788538972558605561775583878729135036365426833960562773577302085608626788646984290952154132565854174592484489430225220952051996828534798648859992568592733106406877596100298916139871999197210186921860927351210392656729637711493976302676929181147465577774962526910144794398670688641933171048394528526906975993633059598486058107057939489609537084086632799373474586987256108462250452830251528319299807566931301233794016602327151532761049779294181319049150764439062925445376206779834927136903986825814156035347882538904358905915570324489048918346407279101529243236319187865572837068384404626342649259033641760127709170601050219350542137985555613178970274365423064499769750024304893244313495005117357146995360049557789179919757152770049395194532514710923598390866708459998082099075045681336130046756217640912216906582059715090234821487133529347905279527031359936990740579033200069033827229223252912953877557470704453897199836962285815845111522979345686903901423341271606804828589788785146891754405417458044325347899478868952136197156785286909179039951483235101926785913219014018085041886818928323158843060861670510073978704364478850884639946155711870743624501458635891002286896101034452270387906506371825888492752125897678397897692246900776506847107317808771478340211379876892125533448189577740758189416930388957131248323183354008967345029231874780510391315499487239178168771546180283771055984381728964165987131714881374470410804504732674260609072242875448730036621804048560848787502870128902409351143511055344523663696563971683152180427944490202299472585049673539868504098717905761285727597642557088835618915297817441677807210639282675098584784644674918079289450870776670067393995480341390811349048539418740401791690274174999818617933048465483087314793697451156873515881952655585446173939732724291177744501896609326061341649490465742587173001823451268011924803422011011802144821199726595713817307013782287454624416079017224366192852745404843466559733936595705505842229906618860866961398513916232811023632043560940947919540491545503181556698496458872510505163605928449803511379887069065898555584168652389564454635090441478905230702635835542125900784836367414442563374382984843575161128290965946102003117339923967708298638404994602370779321636221067990634569022252434301213271340912651191350299852005273537727319194227469323153531558362009377742722746999849972757444020018096515484254732542953452845606695594939305553423416197299989820376931057135780804293164253671210109918732616908602075762340607798684672508368693394200919602907701679925505490481593861324056336084387454689867209041626609109398353855382057591250926729606379155792633591345262903922561746324541707329745243751102534181992673092124844016722314355323525033192319626416534854734055084349071799502397477388865023460996338389430340884264087017376215726043815571550381301778143220660081528295508852863586948181685895280537777872928517368382074236752843830732726567765622381810056759567901679903677166144480513986213720936766963896512490487880939958512189060313058434603453385241376300354287278760595830378723841655669433339044829428610730988991123347548468193696789980621450260777518862057720628773203398852124549474271414098271290834841023039392272843524174145078360015982146723583573272469362206078118014123321693635319529581888962203798695410539606329147833214574399673976168777992082905344219349022394869673126842061280799058288026844638694948293186896643989843055652604080210176178406284536870784244575693018059191357530244910061088697471403538733790325170484424766794585426815915334745585862797205157961575391841364216437317598251673762434168704329385410066643145150757667800314084537719199255461196640307133325708293669158964228428570895997130413906468352467105187147767947728007420165425199303184763907953608545681001828414138256899785189451417384310009117549958228752301051030672066724971457785074445279401499730434721053652284966990935424128450147403036983187383937021920269974561924520750316546020835603548250228848589335646906386588351030694550501889141792972757001707335126571423950633667887670670863098059792233637177115780726004899630328750579712816537778340288014050003496016309683850484330255297246131710125763616057120683383146680882656482295489158845286713799582284035802580981011305627749706819327369617475272588932216798764414879918131103369167350091445922142346196473377012120387830730192456288958979017781977305753181905969679136612253607541434094988936985022792478907171204200706868214257091967802300344452086325629527450249555909886612436346278363124347462521521484971443613982578964660404500847770052321118653914161755840962229415168519192369266939520090698407212511954682104968788436054544065050057422008525948103122159165303561760270825081862040664662846526521152835214569610434365735526043838987030019248820880470701694864732161445967006258122329349933489111940065431071675661936775763556764806529165817884920544731993962024910333722133610910921740749430683068858187343250070776751251571161247623296744393356885031961099399254056280450229996150226840661021190841724040150591147094664952608148588639097321498821166129276274971622361428318999843081705402680744143798636815048416955120237240256244902115902995823899235433860723682120969538643947052596455217915519108667798561877170558178183938051098480391962105287921461137519042145289872915965095750121339737776580566029494127853124170428861758420073696987984179064831552881289199923204363629676843313592368427328074027946989108119415950924532910507815439411036374725613177693644748103986891126931511952407455414340796968971657082870441641556478708385624633585159583751521222512007840337311519994446514349622144082676587984891415684208141307708302952658068181698996244202448282757010411123701939896119208142171937257707955953343023943446512445948569478830280982019013311408959401596752517825357717377770099860091369496591550185908977727066890727537739976234196443598667927806344080229904553981775817427744230743246049152400592675354448496566303440615092242657466074503163947582129591909801033918676014515627905291466737042431346731526049623619336846389047502420649236324036488889771976667242056639535810590708217255908304989650403886224253052189299426314117083362395510768344315365900486886759910713013751593016784416912581548381615285079011887058464154043573930927957579310570888668027674669527100636295234008951853331907686927173731968531330727792129111713547676035731162348367417179838362873329501582145260168643217158432558130224537523419243451650110112090993712587173042562023887609161011006004050212645217571608116099434347423894860299825670294169647606202378793390697665994618196191872031651849143945012034879450212896085657635169640171838237730729305656553611472737459283172945683808411796371689921569889920700521367802687700211440923623049513578546731569509525508181715430429144574164840643047869723062844300468315049096497723961182598389273799581115942716044117973112402962355420688586141971705645620355908989222585657625800163553800380395845069912058659639546963715685562475663400803517103044621076630272141283461054800097999087514753434899098069222109023541848851842299253036619005189810515176465469072357935587013872494654119267166585943012070347819390740364068141753920752144639717418700560226146752173096662203264034418236402634293236065264378422340510755682357759372081319043248903843229999807491405167908793558725756463595243738374642391001339390001745552183960021781201800386231955458493693709001187855190571428276004443425327988825432918347871044934584627683923708531447036876970190209302617546466914043943445120341288311403275264196150885525683185458882178091696779244682264621289011555770853809986909319838374741343668070821642797951298170187461592912147191875919358811498011024961184236729926668585646067941375543027893064827717841918628624755280288438164022388355078568218026585862420618795504745799896144461595770972284409029065378503963336324627044526054285713344323075375241121544803585304811108469593691415398030932135717909381094840197805370876452259413189265415658997568510096990284869969077763531239887404216922067082373675890520074759303965231505212249905784184962357335620487645175277090861081673510746956642150271840056067930680730333533273465445220251044728126058538048217380569907300034027076489740680481179595503433680908853779239365752535295475541387264790929439025454719003798886695437495340068102030122997917501053723576293566708041459372843318041874170484779039298725232656810333172080721942554606167787068376944684565547964741189565105337430003471172098300019530820158472840045806187138236589039758758029342199083813230599591536224126396040863957208507113463210738332875065695707246494567618623884297038254141070523333852823152698879683042965035060401713930138139001859074559818705182710817419818445892485726715705593744163423639302359975786980852801854590247489467628243932380599077199949817865680794148084930774787500076253055251827271024592617879861829657231499897050726267950915425983153422184381236144902151691722540886704423661274249043682096573247148603235196463390263497651681871811186245599985927877578274256661533700969819344895747467828030560413004718937264774985275263367989364161599825055184391773363975927755128008613892674799710584733115658066977491658779626046291307301108231052438962255519225268168175742561153552861232737113751102560038613694947659087034421238720719107157754296602625903023797420319163890244647299941812269412093973009673670660215987980479941739961262323909938854742604761435739253483686347854352183654782628865019235552760256273014684101345329191702928367068242734278205147877840866567322379437486604912198255986301223832359792347822227276151196452926094744825248628856822572132855201768554708166586828242050480712455051673859041254270803338430169534849710667414336013918064382365412726240747590018722834310618663722279776675681660626277273455082049924685912814196218764635641793096329128251328677664992527083243516282062989844283263986191055251540832460028030158352107087030120898033673392892149527843999657162732013508389057593002065896694006168720055025748327583452317521089841718243654554452858914248811090171418718237059200790870216184201905512532724682646993720117766873300920431100420519449431739705374712544577950958519018671408581231548208697196792942223645935834559985540475345131527282874711265312415495726428060657279966914643889481991510005878072134375579954303295797869071447132853078026847023221852546611747551932843448938953321052194332820397272187452834697522250854778331536644704014769652291421417135106452045607434430770278862011711289387755963417092110496771860416524182558679743363488722716848424514743257005381640698515106360554582280411842070038311985745639458850187816823720370784739214168264747783413726059242262691100784832858178815121971595709183887849555691553712042412610161925589255370396213882598406562730944358325241360930410038455697412811206171345156382592454397321193119626056838294256030196109524570455951207618421532736252754188520487512187018263699205114239787142680048697151029292177262067224593657362057110266937437045576769532118489817181063948102035497136764558633637843112985744891358264557216687408380467399051291660283743445688463412477243767211533599119102726574083586423087606631904126563214932903592495048220531349634373333240835641982322631364655813698303861501824592080390607440731837156266177351179167742585675676529709312804739173853108115649165224941078971264216465009654822962547629284114524147928571022702520685923804695946767020083615468257424563670591447174025379826867699338194246992390841061192577715778394001708966720341544603958595271389402036027720477291553717882935763134315375309556578026203753431804825554083620809569276744972436796933169509038308531831113149531114001119445837693183511399139661107543681229189370204364493920113367085175166677014295364053236828304672325936604400226713335208771639637157269536538792997546472131979289272436159865886804173412397799333568542943354564760910022018275896940202814943781335562418820087620439477820121186227882297350475250194367602299160802550399019509610862029741416903149250010384279022285876156568784835516348660109119174403107847350803405231241165600676396208580216498673776204979934730413964679936330267072252475061209602975493088319458108749481765709348386457876981246217853973382930126015440705105764239420388363147971527578629349096288415337744116040856461581837063157357616180651166677067875831774933865529940467860368053916454313589431703763418777327766289073739459971038225590895877024611589398579806775497022416488268181405370915571802286015499487518563316971013026456554204001282060043706983680643652219235472253033518428995032842688264174229477954421817475144974420555665902144719913472319887445605475188311380592461361148364171274166600381188875999829800184995667038129230297237076501403417915799859252767457537624608172864854906074674482806313457894778200159324695799787577329400645986818841305477306680607014886250605380481895243365580971272237747667392530697623942634682026491546769924822465205910739467383474394712511623110050833576828266176881020832433851058129828640021133098791839332639183127500272530994207109316900169890239204411173932763736979331772442836624504235315725688504253682683404645723232652711682657134655450742696246436246674944885688855936687624180350174411720630457022980655010988879322844238871194386128127769858170805163731712763641654981343190463107842798098457832951355601336829004973740650377136669847315437309796705437280778064480765599563330760853455732741335119937732471081009653486641417258235544353740435549398530681924088361422950643324546233752200731018528928236393955420442338004259577175660248055079558739266881549465807087191087238676693039291449915529581742238564939097079810222029719300358597483899340856758072309706789126060310663582424150991392349077751552667347759788531426114579254314036362327283421874990558776000675891363733877359802296202913493813861806238909612655045719277926177114109706119092462355899760205894501639076427075979317336071211633912544087847865042088764184457703172231278444191048476123939428911005190052419414996648680452860019701715448699602608608649983635847667973615589542983126449386415131591999571259574976052638841507397847721182129321917644229125046380231115133280285941234699847686475860665635112272091648349986094107280909471732366992057150419252667078276813715552537433110893323532069178421249667709191195149094649282623919924456530988493449955981390801931810294276465865576230674816793730530957704705953658705425309830173553556068568277266794342243102094745949309460374812126684640177354520661570693815797843594750350318925512166602942926982832140467659247668560044994873902653859817912917606331411037491495050709859083544711289985409472961504613674937213733625411106371684957104563308420315479111479532306274291400337205138971501259850734526260312143290265598436147681412429535785184273967425705019154283144218408704399047302835861447926005425202384110198795173356953426796234798262551108319123053324077510489251649698314158331353814614307729270261686202085262297553124572954081323437441822371548793775863251064519625261027170511819722593246139033865473942570072773990420163627891983814167098063235810695975982804399330104806699583640469567675856678313643377838422723131885322031676372480046550927942081504661820578138653301680182339367496368807598978667822400202498728598290534877230860400607613101272684875450520713923458571961093993380428566659230298784136664497614874373772439345155449930769293041166934890241809145555044535277603777945449198194673001115340815592166264081696198277676444277761973307173629318854587541402570224945847749763862266780223373601938949511088338517916695249550294184194738934063931012926161220272239924195403696235297540155879221383427480558277501335056845720292706420990639323721912559748513461656684281447442265864734479741387956860229673645767150155130565156440499167636893754717862077947557117064675944437761992816823250977673797430295857136552189731394960074582657391091500408543337292675903574367756951613356534763951114529411945622962457660990530297086957552697551510608234465187530129792841173825456958072129514490636494876100911562805111283595255925042549428092914286454044439320324897809722996261877523025756697537887977735642496143919946563260344204092787942445476570536113596467636111609055098217212452409337817224452878927060707340134223143791148238735467328975385599738274531213315858947454599768546918554959435133800657413951046911291727221678442872251016816614089240227188024796404773356720399624551461167578233305081534821006778320059204670000826533632177167470615719248433808010990136827836022015868467825812389281130879315104095565969345695929488144288758498786152345066102633688072820647149146026725300895956328604480975988559340128755305496723795496412631975202937309308711054290358314045495487339827141308406152107750011905785769154345514047007767027849317554181511858222192425636007455454028120082073454733739707619959379349642653434790222615201535753739643645814787742257496937227950619899293105768794484961325099641576938751805048937581165250187655772789126411625401077379400339646025701449525459378062191736265372326176998262210212321633291968071710996654369201436228654835625755651652943748221935950079847612727504742323740045899997374826912427150021080973282748108382160627807491217836763462887197458024747849614532591526557318281828441157977670968490488287112003704294440297056339997377814227435338688929650539232061476805766693982331315657130362161981910445184882522411684994823909260893837684140782109952015574290558244543712520083671300977861430644412460312672952293332656580379821919438553661628366226903178971064326466548218699194460924873340959823492588998536953815901684445066966330693448498235515341287799935706240059212209703529280657832166155640944792335475295819841990061598511971728957017554892075883690235435557957246883883865474335152137028171284457644130521103149143026538445807793667526179324270760628335527905479201035136999620218213129724419303112671780523495986487853498614908813668758925835980043884815371993907698947490982223390833315877354277647222296128853133819766796313777889311328458936959506139868662453156255931435599839695027204571577993179055727996561263072130825420645531639742773284759091053970017910012120689992762073026027408710699473313144389553823498544771257938277170210985656166580423352809951250728502594552166335608186901851353826160527462733527953830183034761054782228941961064588210651361647666719673400941861543878635718846940100589706101368123186001424986483967700812560309589793758432718584767676921631537153818405071627413219832755327454331721669089967715459094235974818827476502255439025911428541522454085451746020812056224462083226158722379564370773941575745878222406408270510177177802507308076822844813434963788964701804482166842639454692644750718286251139904798813395373640717889305215540844487099427645579444493736081188696687563475972821068535208515703778936192835461454147171400980660175846747040610809274778662257998431094231478345371448466263183811255348675075708499741538366821634108935978580921987425210455789956035284131123692591920971795026325044650891721219702422655961254607329615029726962573820775863251543078396291295083720226592186476002413125841030020915231610835409842963828392019219085995352840551184852232906114604827753158096021160548950946931869801027552003439985048111531739350432687590858650154922251581615268392803335862625372573415018238274452635777247222648244667993969373949129665751728733373433136689977427619695363520547629961500744153217143405225795905017207053803578830710768650611730026583784552344312392203724590779553365231276949102888235405178846354764219617334128615104432785292032731128624776476884905465252449885469944437307899242943128979818919166811490600800558537533492769146129610841876330702456655470050425856866035486195322910274390614608592224604981065675245754522449224996803802052288613474987416090702864507585675064900419790148619592597432778747698688638428190608185150593435815011811558669536123689222344514469518587881935866690614026698614541214078290523008340124834204561886324690325605664910086442007305799638755290207638478161246294632789183016138032348460181772468332977837790047806743994065769940366979271082840317561206162128991046963070331208369931053432209948820279569163275747942446077223666498818886431209366651227210341687457223066451002699941971973473400157387735586626485594720620180045381287012486756721334753623056054105399249352911422178192113643114242950711342599301023592480279798816121804910396434001635575766032224806847791636584313102445674085657343676520470859505182799589316377009467156172971917880173834775351670612277854309743660592644154981180706871364796703284351712596229311327560097574275417848021428438010054130164113599927474110457507503142412101108206133375871549653878221258974038168071270441460908512067300891990985700337183630512295712161994920778175562157852457310220738267079638946226237353362313138246810963325991046777601368509469067305584658974266346425256884328283833486335275894711307859834352408063809134389551096655251134120235079402296371942784754028383027149108107921657308113247275373740613125557209264239168014106047052335576913718895439970599260782172369406134221249520246583372503428900771105762114312916116904110084931518689464358017927078068835347833326729084182277268990800637058981028157429880929267740871071811223707898529241055911193433280160398497014015854634002662658601921475100281654524477923946702257833754249198819524579050618286777236800946373370672868234489516492577320072508668712871513313792272718266327497022177197994491046362423259389569446127017305626644116058102931286108723363711137096788325776232310220766484072755233763614723950984443118924953506530802461295064659692967214297344234016768893145721167039996882167572850718406770791641152431485173529102086828966472782521898517542386761185327673223827697319189710278788108276405109860103810100378816153239600580863191187665446206553874695902964544086983016598412973703656846919067277223452111920836802017776229487491646474440265528474515190750182752686257370961734755880482956321815916176261900164807278206836821380014812012543107443361415466254062972103562386510224958655881256726121676606409337957169921442623708238929826304303357104761008225274397907792027003027530120921325824965860581125088330266438794255143199256880579431887215125001831254290286413538944531040386825929472723055174591920970639195635568025466898560870919826931242851235911406440842729400717283618417134755519544036032540182336311733442107492169356676349889442442382327469938485651591787382137072764169631779005081188354465883404068905458681722115024439938924499093526241334684478977471891913310614560769993623349852223015151036706435119405993273452236927817869124372881411572404578704022021757519622001762292728341966035838886838140826430831264437619719297872358604481678521963357071568272690856888060456820041474973738171291522147608627571624565096914552276679090252735277026705593373924196922797471635951472785734757316929084246708621041390358972395119119792177199448898358471433690045411275888152365270926227725572743373136441951103457215448033110178140801680526201457205908725425829323856526592851207034458754694818372362179577930454344813641993873077740092339716810729370176662852361101821434955397989599119671453591746666686494984356224356138856216460464202331535631520827236762495317670955799406512401392245116251365312829915142824036694056826110343378791896674462737445711505724532117124238779477340498864689732082174387077864197463630613021483198652652882337105595213959965019106378213987239365198595191140382918612564095957133622020706866950731735369688909536782874013425364798802831936594450670433985622849928152529990626465202881809854209581108912293715682083537170896653782692039329343026455222292666623636078715423337178515464740001681094130736354387800825878850829608379301300929866556206868460159062752824730058853781023392130488463448358677494129984477259810340504235119933878419230449041152182796779092783868242270763350675192563474386981816795445534255082236687195268153284752739224568044994371422131873593896795647678270762463329183212891889544884208701135938689064569223128554193550144228837369368981359657302677166562786673667486515078378401139725986021485607346125086518925378653035033474645431568260798633143048300391090970000213014131892795880304904447399667771657173869575284768950216732042235417962096290631690471888081953031599981695514442546041270520657755166197500043466807054942073665093709583937389308089575128134648773080351312549563839269837008090517212479451390512884125057503792243813867545922432644198514318691682691007314582991370330577636813899077810781363157396041572665108384548325194045009372392633504085424314296278789695427184456448288029444779582632329087336269782367274428050142787540560487048427629900476279470090445688814409452096203467719385153898442772949504490499283817175237644384880207237487735889583071846860274962761756578805740121838071520334209364801758700017672909395724289691287698073427015513422512351091354921733098318514625757700049966054919343257666762999648944701413046798175672561345496109588766260622492381386132818442571784825302904363597860919825022701806892099327393113484375132707194313760297264959207765348542685708092161909511316829903638564404102154314933080329908707737623885172367165380069521055432107005928855940073199794732567770932287890436124570132102756992741858383363919208463790651088150709798970451777961958927180636836055464967011510051036249507470711461261123784500032647599612217276182780954383818184134857131483669240982709319922132299218640790812213981707002222008235371797686811791741335103403029194340786524614285734475569126063995934587855223097282734562297462357015500564976503533941894390190660416470327700180900771102005606278956631946778024348013633826118650110706586121441504074251782882029691873481622776744151304015337397537359387922423925763473993755971449149562204740669409467454940639022766498622477848012806678966411640309733267960545648501541836159287303563942200084265641005130404457335357918402897388201464293895651234088469494295446440042064479766373564918779062003334893665395869751991002121548085901907325217829103280946905009211007218541300193609360351714551710332881771656922923888639995001978959150788892621458942984844423035802600511487485653577607772170864556660120160890278696019210745336052126508723716231584273862912523693965224082137113546302402299743099641317436553581339320784213669505897044998111197666736172712013129666520683454729993603162475810157581941062385911329590507227208210693159860179216166703765346010920664291308446746681953562997923171728267027553060561464571675561585082918799587947792638835791974606905665322765452412375373898093030431220694703133928701563617129942446020544040598617035334141910003686173765480646840079702926919730480636522449348916353062584531548216842823214923715492979066405029933369910865439516000523736770004509712375711869365515628452805471587462767620821183829823703552960298286167949510263659254696913261516684513222122422646423443653251815472215404853898516133549402256207904562260456459786070168828726045601912205712561632547016454051745267130296823653841970519074444026824551829460663134785670788559178225873233828254697518562503960611899488913580299562625821714961803718841872674237578039343427644351784958746776029232348972283821742896912836319750200894462025434762627316114655690350191649738459856733673496737496159417155996372558643409907808644485443947353894892054951581363904931651901881165817950308306661911261875258860173058429454963774852105330922399239603057894026091822085332621801571795997449013920313645393677205244049914299011988134183747486442656924101415901737066650508304522376900410502462913051579648150190182972819583051650848816276668147049058210730751453387228431038446712394766841758716933665059345493238884252840399574470234099082027061770100880566408735709088360258569866515195872178565944133605097912789712526354403351155174756097849118340457977101308831139218843647148156209202307436885214065331125250236881498740883414526201939705699704528322805724054197469699116474456852638318794443009301718483958191317234753762153227143870958487510180389601537016502099750673089505834882465218611973460761424859196850324646794336224905051511085690864954350463202330755887167491479585011033642057873102940407621872218972046646606524404798672581925309949778676890977257066360761207737753547235910679749166957807672525951487472018587981324762906801932742794765694694709916577774976363822416603311583089618616923385023903914606391760692255452475652466567716397275062548639692690103678461844222091568930362294909480800309907499807725221731882834593322831338559244645490780303396938750488036956785831588793479878624473495290714186374679248444760244222467541917588965985290499243520637569159497358797228574800281617679550111477524776659538178496644455344145314242218698383945062443880063560798048346037891144586733786018548382242236696063995709205623675763558884851034066267853930944585787641335886043706893689131783161256203318861771065214443602457967058076698567621674922099689121447789788553837019248764389539694008112003786298965331387894932526360974176338635709145038598175231753222639947301466880411777862166424794636594720005037700191456698417966197109868692324826483673257085464810129453442101458666749209119786619916072321997240222816175156198045022189442805102000955535548554138824767742083583822143791776139550963792597241134427189096445890256778855076988604269594406019784739281445793530307541087866426459507089713958262327893313028605670538718078276164616548337874095478793305525485540684979367305350081529442856927461258822958967555693148335035725859260584237123665089938235217965271248015246080830873364158117877746384649052963391856720930601487811608462073142409430234589516494250878612480470492478874771262349302226057368254451965041727579747108629546681646135829265883776167488436622384574799684798873171818762710654359992673737458689090897616409654395432347275174679703549739846339103088688706542673919238752008849291033464412646738328610376894213814807292779019887731488157372888493918320673187716072190288994343798282386346561333064139206577601196915070460187447171044117146148440308950852258388881045156936090326036119725712139080172567951063412575228231985764571325247290807184957655097331123784812655045954419722509339135786564617398082635325502155921442098614133068296136879157193084867189241576570306559275249931244997639248329618213630713099832966772415712496767914345538356728245426391152894127319835101763873387921605026822802076376612532971672989706882191839907480541321113881934767038887260914982851390737411327165253370377043802867197709318951139867958627887343074146444408826067446955984384211377945538337009576650988257243480589443730937026341295198105480519606041496419922696308292795125900344695462603794261830179391851164249191287930799956165610725238328189700661329740310352951741853940895356157316253536525986916495130213940941339137829226571146237951744159210637388402802008420702097395989161795509325570700257381017420676131669322481221947455169962408162723317362951141737596892065432995420403471717408166070077886533730591949286606084487593983951567199820120687395926008275058526667176650666360325712566529735628734299239815776765422778038958217326726909751752941243661099065878147570162415778378036317371331262003824185042259129790050204447193175122031114621089949744742838480658420627031196996700553631991459560091830797877893344457751757253500153937796519213724655953333659196581479371151008705368522500460321925332613938981492313994343003281183988488985587526897154704985038452724178375339459949379165982368770347602267829437452943541817416578027104261455143320384822306753646447908683194800484463269265540971096321856261023961325594210269260680976404165339698290609640478550073342647293708452344578089170005486015011044961358919106558374951369131276438076050934135905967282962486838268304924580936828514449034709953150065485529664623689202897558710355538178434657056988345316187773590662315280328072223754446479254090965177742871539238485534435984010252912864529591385918498143090310640103108478346371311907430389402121545267563346120612223368236239007658107598370342994804561945425030594644999510210198813414597749935147106124421627433010999259556104035227073007752229560374773076209418819766425404865500234040692128111739835206558113338481809614397153717432084264486305616645402503774849150116310085656071512107948403856286352245730469020072103147216245372991657493108423174800165195879079463260843021781421207195066363864460683710598311814635185885780337674678080356347419845254361230882880982871661617708965585437215809416452911124016785583234999954529056461828937798637024262564415717257287991493180323998641252252392724395457580769119795431523335057008019187086433507205693591806498240337313414699255958469030238077765070817421461890749854349421216124975189523152270231292313505216375966711479974199120672442202402461651310213702368402713276389361988457437969536003146132007183453202713897636839037415970184091117299806972352087742015428881104184326932360149671592728870517450952385590333356581045370430368996842526870004085259208004769258563769799564102546495562334707372077458282988687594957763535272025722400151026399343440988326592658802017241596759716356729720254603203077243511931593989895872567876055486508222355330463360671652231151397348834371260285650674712589251145261026001270040785458865423184628860320762853859706165428841884441779648909092845648344553092365517167672282027558629016757639351147664226964081273980624379544274456790128526775825523328971281011726670961121515440608641918209314347953592856082056025642174450604458007112936557091519697649848750434251880786802728138285227131557264958029786387128072588626182196348823659687965591430939850457719466557162549594819461668147771744824529166993659082000040102683016623501909645385735823223976398982071142126541424976160913174572237259053200483597460228181646041595009071909349494303400827038866480609656693235159980461836777020247505680773463763208385918423537826842046268205777493647572983388820255546055229380726961768158390034994338785242999071719957860902165834699467949782076405323396806161221469376279346515140009628327183969350644950817060483585287969242885210928320943562067359592938035406434016785328233785914381933311383482563826147967546656695783020719758469664485808899987786790497027643691016280585313155566520120972095294042050029644184750229102110460813113261269423059041414147335497655420853552083530497240514991440062123377621922346950948640201675749994522506066453113584745167217724361468221380832877601182386440716538405274739709885344483013023887338238758162184095196786843240893876834215508317138922283292814854298012864075555496161104817506284074597256884410293188005857088268816832141282886424578241146241594150052018882720698534992446675786969864656901784206972359919118242927536443021812832465740630251877890947304499223764256462082876042225669973490410398942000718614043351286083737808530643078505427480769148630940955152024072298623966884483546861273692661611298724747118577838710237737839895623966464809509607473281412214873909214629192720725289155196780739433764869859048137508952517606324716876159996092458468661351012625462919972384524877578088663678050185096787627648456133626907803680244973377388006254378103369456154488328970672728411491652994622795996411464399456047770026412561918094390923950927289854360485890854872536033564569712915866596878067404319385164994967522520726100615041897889683142792898154771928783721651613761081862240798015996726732043702936569465358775377167315223986175422991042188816097788563050568616614961101261396593430970064861220559584489447396588172114958985247388940445002548246256164859384624224589279742477967962235842664793092058088356779854915433873874489644576342016822929090112609072641576525505784997021332386240147255024541202189168798701948658257579626541280956502716468470415715392380645738518520428887167003025071847519374434924389348230135957185488961308352851015916164126626969393463682517814021967863157237975542625938405211351140463570676671681778268861181584078702223867341898329026428748725004123713570516747268253611658904235358981419284143359998903986374817383533390437146697560031673683391887097846952650765963478975792898127060484203561095295307710029112833759939679263701780305840550112795996447650675993475520701148338910213720549607467099543083773270615227641504970664787649447485370352089811017736347663933880735557215742231222559066024738491735616319150107304275452912513342030079015365761904644493939038968387431066371618695705990098870505357183746977427887051234498819767392471135859750725241140484241517479863772756804801968293109271420749413578863875358261941988137407126023801696768961107119526441489806877456178055882445537179154863627757668949695771023216281007765128221537573148371527689266018578525221440261641360477156887029479806720998557443871656448670149186674967221565921675422948809703253138676172493074137734927682673982198354930526902436658073692917469085255898508373082624954850536976338068294494008508629593247354941265185605662079347000325025432001801683398431935061596939270550424469691796738895801162006954871321057845791611565871087417961566622399088937834038525334267326274037769733566245823208196146070250055539324199741572829911940411975288669573529725692327555267375830147390357049660625854366762327988871361771829514368604453827325464577043250507415833896574647985735089633948334599535207554744783227446732455910542800477697891068367894128351307730112127893758230200032872841078814629874003520387787347704121462188513802728516677662127755177752956529518681388638452486008296670082800672828157379087727853462275093734997582322637270077164238480817790990384682427917592585000875502561277867950822743665665983956371432543599444238932741370388872751109153630375441671553149981575262473203669530809727865241362506462028217975899227267185390253213912854038341493874934895454455691828494338539457702986621769401919418462292992830712629131182785105955482782734630823595846445432925100206149333873890804582930698137063152288332575832511692211402373046939088770388880720785679118305531603132151842460708611883143498080747004861173173227608592228951452988972556924873969912993580220914309980646620875891146859979141142228032672391022135657967800270203622271909998183035339826554017445534180320123572460841998649967299023645181476428950762292982944503872462543426077076523004220622381639005130650701906157132833303620158930199400409945876281034990971095360858662668728339230114520323591241479481759002979409294437239609682270108927261625325360451046410621362084596559661585103803204438752031448401651498962350695453068688146938083197539289674042383528470777004281722648189218991742545096727961086873435645338779823981205904043457271818150122626648400672727584460635541650550726634340097376690786637337909969183647365934415390175859566663513767596336670195268071384985177222476626781574516356086849021952015532227755620220305202955531407699854424290080269552140194999098862103789837660284413907923019957885997392605441000169376679835688209017967553745932297166908408421906011977560948337282217895164853143224935530447379414156230470504793448423458834255105202604704748089086306568390615017976526487800600099851103008936136342939949719636490544462861487288649220285999838623911723426089788356666358467827869934407032863065187797402091556256694341327930483201492214437761615856444520154960796650616881992994374108284285367873703636166569752040771252010688458378769483861079928595477253199124283074624822154502676928051063815596571136698363231332631764889518117579176065137657348814658200913506765504472909842881725855290395912812104082645871779116478454374296957535747835848693695000318159384372297681513519699464891089293894052348114032477199957830823516576252846660535245565535218167354914298633644932357964528966618142914680876041034071063175975000594596492012526366297547134453865963731332966800730927535774182963904702745102930298827186467023407586191077981539284036639642727017980960889855329363956147108907883855860917616588030246930839546359693676472053065775587588032595368613096713602515864400032732340609301870715418758851302451665064107458711918143403134530655125029467074882056998811242978313155726445479595468806496332964081630020955790986233708228195999836923265895562743203122136980403970460254358447330857623617636732173734959481363468373220064020794318376885090591960890328590129011140385896456095923310963305220702691509521784241403439619150463391768607474706018054114395784875355689425555996655119783070927350907668608872397619530441991680791454684600779512782459200658901234352624482619923371663276110340963311376838960132331909154930520803448584888653327469630532609509906057270261629415460055557048128859150711700435234626320269094713068339707305861235014549564259851115129071575292399478502840214180391125464562898178888238436996397265998195052516020301942147968511280491269982424829509013017154622572329288661250650715154207232863491107704002447172840992740945544966841177662550571379191240603698449530292118087656558265580917918042429363114452038411998914883929529410455369269771770860852321626328509615167976850574037518362606610410174406648522062459934916201865819168545436421851556041255944743453360602206828507553397544858030273411765254993804268589156605402271791878625854482766701273736790681870194122557796772264068981633029932396778712249756182066456979248402897881159027748288614123908416404215195561258170014389548872043825557269374553613224176249471390590088667812978202162983127816663725509918651640456340235736654417834380876123728646321624288301951594819744152333042192985975649236526077217210159088011279687821164009694538504850237970208529533527186280149238409907633313346864335658893676091716129094181929803416001650923712115120867375251796055002726191289825724271936365345256764657088227280818892637480173890550628326548758446637368449907018529251122128186725705273722863803752966074348610845998111215348841651511666246866760073297215270920156007320889440361458171221076067466719823114448758388471685635994348900303956540794214397811628578902314759883504830107817283841292349002834056826178861313628810279689427607480436409003877622918328189325866914674303423479395690581901442109813928366034705654212874871968511226999294692787212742832330931986170733290614160890821023852072241356057511862755557818365140299671320141790197729698937329441519822483137776694759513186476670223415463762793676194222339025469082433877692312035769337955069936426359643913081354799434017250355735281094959835697049997954180696904259126462464293654013716152090167752540361568089787104084435422302819370043675695267321477460048923440552769327473543135325414024038914387643338656671001285025850061537020456028245613569137229221089109407325192572876817651436738896989936340799417396119114017909631134468319420030169722816336074415350694803928222578031769736449724996347246567788319845247306614105099871046233183505279423657515380713817216509912718338279704714552505917859021328361221160890753444369650383335955963215983119421895102504170693803986192647581020202018109338326661384626917048097033381823558084902974776658043472871237329419376039967660201242173926868118963625650684126513396431209308590634248688000692926546742389841631400210413575369934982283818182566555365909920270778679468836584502003251387568567610983954888215997738127224570775168230179612483305902842545192997114033646537900286216064609563352959004830154068685557424971380126462642376914263085143953564273536495609245815951851607866870521591393222367681224422593158803140646064984636627794864431571890553065840022522140826221354928198204555501285742543946129790707808016315020779477231521814326930368881550995523466024708076458248722813268279115736512699846335536581279058568260123989875433521767710111055911285140892861394714911720122599011706691458409178411509741890584536022584707471169329147624725702291245337220014745226917723691682646545761284478277691904524743619870018293918017043966871124370345960254317213570237179734061767569533990952892883808415188243809974745799860444223397171903734930555195691151270913142443696399345445265285927439784484133828515250596807785080299582205304090179765536773396901279702806559597975951203014292933442681572573381974444659214596333541476092526940745696348365229922068799204032424108087405966700807903977939194653378129347740587752782984670516273684538218399587207610935776466053086656484325905345283277466784610699491620109143197857652546275828313706983065315552956829032053029193784120289311303096672766023990988508578017408491772519308921483603117985448188536241064305230362397923583917637153847282257122855011220611104186835840483580071436796928572463218440979010785979479988616381377784995393591225787958401834075298966257925343953182151054605022525629186376054904366322788100788334902285373471083997407357632993111939669604433638864920322628608606185023379903431712860827317638113946016394138195033444738752006175093567163297529130901948460030709454956793795954607372411227871852725276915768679138553277192742949520588371028834821697426984156176725039768387303241615706016231364502041402646840108666952714098400269999225825255336342402027348384933728139367538548829524307647538565157261029127181194630022402143273696863884701789825144578837031965793952226284084648748922213979419879664226044067186755301281923389898026458741755535667903998945434143114446366625152313149973074428336850763679191981101519820717472533942560479838262170495722211572630848948643889751770917563531882805794803955398057623394747247734307529560616134316838894119624664130950180483611250039382999229975515353552414071861931265294817817452566124689550492232699298416378572863836271091647227856147006653783638299341248359546672586824156310696522403451545287862249801974649266097841576897444673379481373862718459687360197551156857111042127116276120428873579009038502025320407998290220595978720469831221511472342606884928343672538133639583000420691295829197957548475663443406536074584997176119909722388348144675954127919069653438700630194572043255045771521835600437215482896127502281477725567184007178211853344530293963075462865465544322426651387502219858880270142768762422224453683861403641107702087010453599361511611558209604577263717165414109279385804833433907412118528876083480037800417630390473651696337095449205038293007411649801591504069445692776516389405548101460024217677917032315161756286974501983176587594832654542145410799395704953600838439755368053555480539150460464932739731822910068741594135636155684741004742170542303512915670275600849610506122254469892418721274310869307757060856883701287087554739739231641905462346869068693497428253196474106778139021052423584341108488415992631546723086257800552350973194492762067114079182514286693621265514370395940761086654553064882944667226461104107236242201821142171001251542348993878829481167224484725036834060824355889610510552704551733439030402003747306184843653045068850894175703537079907660494118898454221343026154340003670853507028908227867123300048607823862614344719043921263871843393250870252809128759786614614492381288369187605547875491137375855023555732159750550762695419348132291252981436687937040925892871515694140522507689897121262465285357899957182325238846018352189663975296282173778981140055200155366141935504914876991367576158256700953571246091757677360138600496150497036840215935913772352392930899283107311877998133438690481708312354211508254004217011247774849249469002680010239258483313784618541817340605816806692637158967796873496337345226085075161510865471241181842291116890245794926806211317942181511327147177819521819932400072302706163065487007946950609981007649701842581951630014841327656980023535414558587179946870209604401419813013287207454650444294084563358181185414202326513701335338262077809421313056432739106468891219214640667594643875211331721090081144981540887502149800337283117589617018685849967313000558510857401856499177531024190444016751632255986729680922542325589869756583419657370859712759707737813630724701048829071015498581337063149664085762262849096708040037021489473056245984308686624405007573255660395034661111790815585083006528846790914160502038813672790068156183297862108280732699352284722675021750417192853947050728740638479889863525661286518513083047886704248819979567826361629671900092820253639882874364291082198567756878967419399410763332267841139897026095169256028853587902118524991679699222088477318204033674575103290798615187521699511509176851301486923460170412944369365126555346531102203567865357772348333177314129777596103716408150091663169534390312766379698179577796980468011439760378801528435443235254416170747365535994884609868726538413166351880798330923155010315452609522742680836405984495706851417303189950981903483877278793639673895305466822127614288648553462615352414549647739507687683131731332757481076886479744334324791437839458440151008158611982729244451577817887302979893532499757370642063255059975785171363693488180851953325870839794642237611114676572835936807561065767102441319224070137875328558898672564365008958893559570631910838840087975124143883099023876709596490361552592369655836706850087063283079992374281324283133934651269082347841898624036540413530238773350208232971318930865900339584279432323256985136878040658555381510134280877471264645978216589772097237831299670760932485880532240092235047550649396361550464999802134509711341431553471124992179800688354156709448216439776861098314434719177439995105066229280854862411455040381147857764495123785742893456633383063571250946936672067145703217861115469854294791439275031541051011197102055344683210126807830582467661021857845910469211029704526961758878622596930954129878469555272942581368663758026522335593815945112846511326787160046552236746843348618217072361142239159932757895396275450158838703640420476856264253196382158686878980707251829333038170095328550582901854946432073978536730930653884453715654035121213296468762682879607736356187795357237102481085955717566063167747491371581072287170141300503215905720015174631814663992598026267097893104601361447937836103820021015683064295455071346108461554858943979771328618145686164498452554776711667330366792282269492180225992083188884169262505254431714328630324458312384433427881184658412350358733162966381350798250736013311893696543757422507138263729053697570438528765181874595515113581971967784362032551728109437112994305432435057532023116234452592886114160321113578901688692895533593724570713782484322232518687283267230430674784154376260133258170964956076921830897576378966799669625462492481554692007212051512435362328496600249934032411973713760738668885725198704698806265686217122288576363249280920652040744520170540813076889635696548813808073976319548063055973547754958125575899590228692424852787454539563807847046819083946389557101657199111459184447954622210048473185919214438502381187606783071370007517154707464530967344428755860342434319718920462611818503504625403923345838051036299106080127646421699673116871716692801043780464080208693795574790859926972792517327648618214727532357075879445734351126235767702009181591247435509376828387553878792505702977827496023623903234204267960014633958978018531887999916152409326618361449928067671116059238315413287723824436986117667117417422406619211018159705024911914169479000670283583455268836742172683877375824999896429994845654219694543364541680691507636901430490546715396029174498621014130305669112173271315650305946551453860896549396446196668319709534963668153680610883273619840465871275703882047888122960151237294932819112436770229616837939276055614526529723025912136630227660931324667520312886444409208774981141604670047242040148678120438435379567922412296764158505077938201638168264075075250979125017892752188592006823351711091229191332686180188852643540042054633186204278723217777263065700068579061061920724251036695270314006137419237148336540371339483312989358151684281592015314347872209556059376353788143105015814725922801982264962007434937928747341894031542576334815784050455927340390052340965217716107893073391498148919976278561074701438774401825125611237555100461265752911793779915127104731060065150899046625084096512067666312424054827660903910231783514483938763929189297963543112839979446911094822916476619570691474008268294340814252233280032584260118154577433432050572179850817321974711301182563682925173028357579753880680488628190709963077766162992999538064286081376562484408489330270411860227003599304709167310640693984352941042561616662996975516917573247331855323695722696147722563860131998944856863293259162549558400239654721937047348160199551728626111985966562006598098112084389858600877662914118441918692697884841679234504022849798899654664338546127205849893844020516018180469356302356051488603383902927385944647993999340882290666845832514499113728442981287662012720788720384388308624046265740244372750033166365409400981940966870248278258071302143314408868643575246928898466332191406889202709945906644223453030652446310060991661254309918222657779761154586038914933962842768218930689943563502154298423568853361230998282171648550086769844768953632449164124082094713158552922542632891712000619067459924688691544225428517493140189136022284692720738170938912805065829274136376549293182006831439187014424682186796761141575466916969622347489385132407288230751958901252754731401761353588960964410687793093166370797736593457803174211605102822196142603580435734050595495633328274866518983549111652850352569809290852087483567388008542328811452570199984559140093739947920575693554344854362878722925579926774520531634243120951990659148364143208679259172393013155435187568497716054069637336548343842450226874547198331251003611457778437711358929754374241158326392605375666510535986948461580925799212704320067314572118136373523053070885842488952481242177458078926088800695330396922800681240282370599183895204539176601388837020817812959966359567176482752095158837544415455114507281933433393514444491468448863000550396771980308809709624728698952725544037692569906608907826999201765416025164222891128308928752796177826870441122375253616501193163460743811386760656979392470350761855664663415216896190776509748422409185140501534255808145420278180803531411495820416855377597109999298440536202810635714526122853225171554731952045577944812000709689885056744271817519622344378180434866905757874757889552687187744235234200225568950586140406039904118150963536675309581655032536870337173351623248191153682457753730025405923365381032713132704933736508227242834267431426448081104769797961345152080026185000086229559018696713896560829810821899828797320175160485461839534094565281304527547124658666816544024529928107332633770715397141682289988568026202200955254821759991219553689140973884168067106486561917222898614539361875382903834499035164411465509765192342903783155407409963721604236689758628546412707784281221787965587134041296737978896687087829369694524261862375802687429637251641464387462972865020971060054903034238751669613366763965984859279321772939111098284749877791992335625450587019562723476268398474675991274617748625367458755310167967955236577801120829908208030333837749481588341075342592014797614347555818461625244995980845581691645550571835245760619627622589803710938687021606783594460880576562704707573256539635085154958033046786097312046086181099441488734259157927470006492968610735032921307217186379384323795578481885579902546098678198483611443645942017164228525993039808598868089832142457053744049024439049947519120013722449593693255383855882897169038924030911534652864125910454686603151414118522501203199041200246956794908693898661482866868128262029293320885780045871280016747009983784359897937571618093541347587862232876557285806161811075087220878026978376976647750081780948566884774394423249236128137358191961215228684469529291552535720414644939139714763028432962653100682974986466746403835430847423152197689183720334147141174604598195499422135638353194835566754296711124043638388036416730469592434125408895874634953539082861461537866614013718424900746022631436152309819528915086860563691813060437278652515637884057513500103621961140117868230157098045032053058224167449029087489647901287113777633490123267455750337051986400695444149400011565300925822366482436986741925958863354707848443760438581550446048075138178845254995436224123033598576375325948333780299688040974388039415447658511070680312650553485459722369264658040970268113508500553048887333113969931713181847275211631617981686377372391571421529569931341219374598156275365295509637748969501019181478934882879875942388805688562520892837038292422052337101412850605549227489394010898652240518932153342133665742877693099188279291646833623143822937080229658227649453184781533307882604799595719152167592136901046194944058044041335311304398632712685536871444270348029515092396284158022121220293176508368650623578631477623716561214793823090481570783957190297129551088322173297434101917083174856915549002673909652610138923076661022976905547597709163702467184027166564063182165983708912116209495823894516699280155813310654069994798979289528221451810872098297285145819063745906167392213317150679784131431568649937065131545258884227163982435023666790294476448048123621708309876229235285544472359200485432818537236532195414348542993327662179896507447781034922159775633156865232719296594428201098118431778109510945819629758579973181370582867088380181876432832236905672683968707310686658593093407326512924827870548613080211082299453684033490434960305531538138985859375563790647664340525111507667640551756295943439995064232595648436105488478399489212799708640641259267109704658312797734571193076777734553544993442191355164661122118351168513841787359373139955322943392762502339496079775372737189805792387101761907475514861938092880116300087225018073241098381617717333614475726759694299235215135477025547667749610439457069961293955261171108050524006265243034668838805494157765020271343691131736370777814301414354098820230628900863723161332839824395940979237799729222755373598165993329179826381425448574544192990177280239236890901282506346262108990991449381118636719588547946638329949032562059398587767118143071474495599195905051136790719762593358768236216058736873263227215474011009659415619837141949669663806888071322209108011195220412659186439000484742383728513568840239088176505824847315160965524387961904194887721095793218180608861797837284787880348737718348753912071393362960470938141042926820202291072817419242280138712610526401153914454211088210724176697013169161522890276512041375628821269719443883850251862812679262088266007636378641647161483379597181047028573772807309641352321200924923054780688610804473310528692474802990752411685621395637536211902677306213287084408225370573292624017007401089728539966280909911958949649480389847653793866725051440267472120675826795179178657257763354628872235410269380104194025898913953116324206426854161551775222820731313053001533432515358335004013008799399345933078542380293824766428891915807513465270214724933692392964702048476570900598995161810170112422830968944382663163352574279243286282863227542822442701054439673922378767823514595608458161213521679418005366583451327432472560218799970401071846170557743412314572872892031667864620614292598227651009320908940636568309888877898694542075243977450324580990578908025355258979092958442759965136338017771762890566181524662318482188574038384640030356285678364482094099215693448106264036705903592671607532966853936833226426036695930917301091160539093482324759557345468058982785090757619870351490604035468524208468180998261411336560270027746571680836188648022869024193691301250006961315475619898793603496101067985243268147495382372289888488555738750727961516801488421058645618950222366143206811167103171249183042358661506624568807352544051018527757398663907316450562289666268127167733308167880102913262551521633349401134083146406294545208017792038063686885660344344458012357882133491110498577884566295548557596502879136884516860379421662664280689167494461289211074260330729118442239412680324246778905514416589492334910407314569177202632464868034740751906648946236656926131930238009681892983376450147670229834075173124324829103757360941095026509241177926764331406054270327791954405226650754068041868064249641462934802794339912286252884787877760549903032792279480805685480839509082923114262302365844341337310465250162683903244276701056889698725052452328265368284940777286066004258714112212008613849281925742522607857846022511142696994537416451910103200971869974942269274668810405279446877020921262292953654455511938008857902524881689312117822008877225221228656399531530973924357531150665904259082261206734962533983057221047771955257791747144395380579447703764073399927671779611003858992778480454239040370876753771429592279735918846090744744675034742919756931813525272137507607175920457274762042755168077143571881340640697923730835466388334637574489734095470933452767825918675292255344972449813155474017797823872905039373878502200883760664729432648637113935138473890990976984525832099150016941514598902982683375579087317251358383920109612814728397955115816825183697649243759106391871128075223788024516883241686032534852062979863141001528290844364466761599565932211926984279035746064907826902584725115694660861531278979630377803491887619559089703867857775470211262034562117020283028542894195146439645735485007446916769554769813975318798988434759707927169058846034023968343693492791444790118114996637834180742560319157617178608016227299350955546012064559007772038452203420454239093991667839285342280507671990786052646868329792076021081896816329689181973912404806679376996145782626419103548253129452196391257748973008028059101025984186181679879013112727330497862373254072569447796420909872165175674536984255859904106707683545186341324317333864300093597900933658166254055908926375299651609500265563584220808128121812574230550960760284841391054110691076374791720772333598486597467003931823636663667632147265475997527575920877944531675059996673625748184455347093917534616623198880742191226286594071344382634974296454351395111448513814251465954911088477865221920492137043300921039587673809520488974306529392346979519612758648130063843837249324954415498204630148193403833789793367302415160579155238918734805738088827718148546189339857672381668578132304809458282931176620174457067334647169777652287589457826374049747860698407875091888834981409486354235850224589210655306322232713962544730122418613580231519131316409154055438876311435726335727060421200416518656343825111297710459335709303271660274945839930406043141210984381430030870935227610224174980754236056896236953142566705120128419786791028182239237555514993156295725148282825827584459453751812529217406577597391802127925659844735959969973901502650060432913717297753970224108837891422783748768037762900584391495666912263057727907712180117738512716618226014451726017455473130147139704729314575013270942286625721320259352594501160849714960501560955961189165043469634994585015793681125105269511129219796936789449629259277830523729404806830097233093235699942055798772241984248554896495302598786934890665364990664935118034603469519395542786382595453462297979448846144157565204515449144446204167756569127276714444123409996143661103303108781364477289801253848342467088610878408679532726043463533364807328409439126379005072920981613626181629459678678717486533159955129926385928144136535055997408659518613716828352077554904100950498598058776859578970797083685509097766884956222143745886523355618912050805382710350157712322503499173350486816248605040720185477019246618083699947500137937368420865857330981060281604439199499421810924685428911469213332670623516131789912764808927967666072916202297729325810182021988865864277290644274887428520557532365184902762136208209031281654254736170234831965379421429900221638259401829238456504070427706296958258002534994598212368780330295143736834216137491318139389873118795677045536427717091242204558075597543293096672344845647494503896140450883713660535120832129656376525601763762609634176579687051336679762118850817160058949794796865726582408303357643470666720871590540537867232616272229608633127177683201763175439810244229710534413608606316099365333483714290521434319830510907107009072445108063001578610231095802671036003601629412661501418359824985951138287836509470362592378610662999127199737607890609444688655257758220555097141523264471519937759824924209631900222732562651153851774916965629950626182372404826443160486574737682332245145836489613701627879135613749000101387314533695220810606369876004525605335246077075106020828929101166572223601847001888814069141452554272744512881091469238149779776094973026240950410608933492405810352470683913369226831426874204350891223824554659052360038286845902269961584875317764895392017213458817188664432194137494501447678025633710941223821492521595520286896383307400299661712299084453347907339929374573530591978800412018106157448428803746862114979614375859644658110666983788970607781526646692011706159112692388123531615702570301392267109568197880779072130730969103877369165839643996691372749611525044451817108150689635601932419455087188695291210821983606640608702166324443934416011649130478243536837281511275205051098291830924123357307444394043325333583741557109283255650011096108630330177041148090571069429203060783524956208769458357375064018229175067124447459069697185091924962557569924268310253330943088576916199917925074370441273159618602236204770543669814265418254477965433854322073325030120673579115092331327439899187648269295363079051732930531326541482976827516114069880326108361518146625319702184194988331272227045482130773011913969189233337978825922703211980590028931388146043433443780062562111253984491823984531061905517747152188299795506675469318778480081994826975890687599882520941744743848359763995884980771116270990069203006580306724988584634382587912964592393295663772842080848369222569892337197407388700506013326459813546046912944960822016035345932752485699409848624116540054948245395152802840250434916569517605427102762791464244639699863389064019952310235653452621171908815511882434533349932518585398323472284841171876772310006758623614635057670833534959855217575399271689749948782420366804124461085583252419480570025801488166120113027558615529091976891793338572044045204523728566305209466155586572854753096464496800481975929907252405439108682570084853463378038918351365838694307760571179090786881834401263711350475709682192898648023604435628280092017431146094578241764992876348460621116456261671281621288658299391606929842429045606066805116976861999768849415314198425985985385215441536221248906970636128763763975872427676788868273406884641582958698238343036166515521271543387927383699079866310179430289417783854051418839906612417377264284891099658645276942760431668668019623042244351922112016822636584934494219084404130826480145033610982701758525710232335290090470849208386810015992102583555449560609006232017223338518504997628620243576297172310243184058111901786505018040964560784125346829560612792156799991903195896521000835535753213601489548133871740372950016396731077899496520822632446971658772787111551808318550697194125550566144637348716739256735787707088616338371346230593354200563763933164148621420732318227408241336922942248108369297244642563115807990334552191031429669670622187010803465866827140325027152514067471899053933275279916877729416834680064612077638175201434475957409174443172539791790567538494400253793651269397154751751938782060863807679290626986356775631064706352296111981259389877672744625486995568913705692076079927426398057617695853743411729065541093370283561786497239804032705034093935670375932068050591722438450487785762704338035844553628256648795743179257509590586894225299557720708311305840840398723296886788071056543793695216867554972250814157292324621543869129649770003308037365080256894162619097950071833869783302907447768211819253367553894987744557914726073456962336227925705780554407274277306048301008773314635829004859286481897114444860569985723341225959432767286820579357676282534098358800219790326517716399585942082106027954033955177802196814718190154024045153809723764615605430267465962920930866901032594265494846714689970580023381141122802513387646261504265367641049841127105663820530566150935163682991205880405198461738672438694289681492656255556578342421887509080833241487271952190299808264902387911556124277371021269444998549323797474711945262224216127163262449035370155464064296970492495234797165955191976242607232572336348414124461478674199611612990425790964731091021034013240166311588857419861481965756985187974905308916216444971303729925772538012345611981461393339037891645407788051879723700672732139758637642668896273719642754079666187487222295917986465635596675137133438208257292392049058827979863055539555085542486779705779794754576987072496755460944584238344581528801086151817765258611399934830247028580865799863782334078862369812786812570528548970438969372001894575931723139440770198358360410759119529794182852595909960159914133342952607145599271878454613227936287366514363351335896843210440833738956942875346217982084269538200976155342949675431754670990859499093610818015806282783441849049641993972170858273835570440302115804006603087223862978724616549151459594217077225020085170582741789573514557394861410082688674309499260687729108200984670063632105144205686382264742805557332754346438809095766280747521962023725372825601727279738870735368846463081890618210590504724973253747633839506968415716287767431642803032770527835892461955082725790138715929449966080461421267826883774741245057279951838950419735329026150672821698285526496408915780516431313035423260289285576548837473858911173120886855280131840299392904122316401413634914300119285906900459280072812679835370034230160334343482587747198679717814056851405420188207937363388868803758406776722396478895285168395074588131930180805956458600007568645562433670208604581323156360844702360270978664677421161950154981150123148916652685169991397945118925948100943965744721531265744335176051257401116269311441996691255556983617072667340035497689581077192108772076127296054074211080843385913193564525563171380090728749881713232430884278456769858113640490629062119349134242620476464480504210091876419715831322226899561993678974671363846252487707468705931826058167653603508492707978067148214639150867799497305686538149193386280309531110924106522109266845675314830258032529431435926999413092778315341298036774593550515911005238772716913050097666483756209492604099020948642027919200015281638422705318754393044520431872574114754499293877765461259960416796018063792672374675272569596997711189833396260984018312147984427952059381166082392857081319219312297726951230926513948338444452934586382428096056183363042509569123016189787013626310027669224165840624913295998465760374192954831474768346624895728953609399215270689529823219738804768189626071284297989951150883347560120380414215693101136494436780537899426087348637056058202930119151885642686563139173634489017195294614213916520803411335218391901747633327692441509145510168138195831297103670897933625737234576322411767125804267681111323757890378642414440583348774066409114958526425231931870134686563912191437452398891781662417323864128512558498948736546864555478838787149174639180994650238457675999607561799298043068809660536923907736493043620756962024368987268608412512371241905951817368543431971520114579703254393414134005825779202432122766439846285537732604065278843855951555295373750435690693116394180710653716701695125054535444414672191397116044688806816717134616919354474958245572702717158122524670728507439997008864222073476322916176939243748878786188132618068596205724239543702153929293136308469530105462842921041538606413840988705968951046165937707992016801050736591617654375950110294784362650016099194065160097413399411268122604022897166583570538788159310890742964560833127728387599621031157527002642256022599395346943765218038969711825831015260024774736100793854598834327644457949731950624964054097638869950803794054387256917869282496177600504446933342995674067920954663118865908366761208809592145602589718230912003973449335489709275482255152521186854153084457978291689084112891564909021279019547191865713057892517331385026062028837857362501717418878092067153369555601054457707860489109021110783937437316607795806660282306149818925844537446641254773877752768955104697796293222783895100459866414210139639536348116707601924247080699065975413262952718168739775055665751164077393968084505746397647300510318855862158755019409006178133838640247142622568906863335695810877574823414145854035760797598991571557375288154481759518178202914610913591149716051598825345721493863186716616819466352801382345251928639289333849782518528503686105496995159247010392993243153326229799280605522111027719619084846976250620565178608875957646016760862075998328214233924313518233055653069806441730189986370708985133112136033299876862301577311540269454747665699501807825686748583420120314447889400469874315624397823966707618720469560011397385419553627369304767461924695396957042526673412508641185821744004993877364651459973062573143937063212381303324784700232629100364127458777431674603588178884858993951040042407619870043125290658673538430249085611598424389071237982601233055214036294888972967242401106121683975374480309122848359642667869309239571213233522748101911812816375713306413392013817581783617702418346804241009409165566761283131588787878252537494935925770876211228277906617715048182074336660282622139116613147759408184530491307905525856878718306453812939799024058796695130215708163061701332819901567773610978654682829328579747604384755520688988684542454675279615336227032328851285381907638039797238570396471557371515187649120482341761110353879374555174046389147626485831293406861448479499167568966713523356316871496217206555228154772490655880171700708680506868769925167734500769519209799225664330068867715969494968760091449968040291180313501702326320265575300088092155882940625787569750505583670922687348377759761036065518195962341529282042914607970450863290835451031563146103415654139491622169336974629322626686133862073422067801683132873339983101114118107924277701130335798246009189666899752687216697358074100947311339405036376524007804883805618312458730609657535829185679617123181044971376104735072733732577114135697920410139198318033446155588550636909283474850176471290981129849051216840787697361667100566958582398194576382612898261780162959847660446765677806980508434930782162562611368783417821022597377137246384344591112493452986697571159060531443258642085894807293470854666150965516844788775055240986394367211981408666538873599733831308046510573667476260811454650812866297902294836032495298147156037352153810130289188996092195577211898056207018854506276862614143664433043571887533630459687615155769256891230759237875575568756770063694644350247384628471653884445198216664674943309550022836737922892490964405973611898376650096493573429253554448934626384303048562104836721748753546059046674914178232005062227226845586947298620502594963365944915911786036494673598230246553580813340983480392386927441308633621356208210748168531515625699660260185704619863389289251205079109747218457584088878811818042473897867657059287595102309827080328760721994749449916827774336843600014468144733459482565341265173642309395997281952418473605320367310496610149385599387382193796738137080912997305415512213455156333144507426711685766825909582372724094093153060726535702006588567793012551513545370507732854104005455381552194157778444676122676412355091469714952130234678613114158964892003910646209523110497152960797657755232769518786041213543180035962304422403380167882087478555832664202839939358075193157197908850165817039452732244191465916811491413173976662365955238598246390966598619455539191588924282767004394877171495171683461469035660422387233670068957252096254334943227551867040242913543674837468108586866945212181045251673613825318760319994153620201194318252687981521412600127616141302638393434407348915981264941780664895171462344466642242353288648590986668859428630497058878733688782570366968366716795547187672036856357649837480989496821825160135738406617693565497890764674051365162305023843828721108006447531349155923136302236372356276499560477831537443650276253891531416913053766909450172776377424330455912721264789943765817215001414687275195390121316295177268916929481073074226900047363977280808669386647281800172806139045275781043398162873428028519963659989640160525005626550245372088995803021448056417271492756293167152194264771001112332182245338749440577554612671959605997230845528997549512459879512941921562259693183048175487425179877425606395938391974963654686729284792337685041330878982959857265471177371360013117389472480091776967398253268757655085330307959963617163430239455686234931631353823683797775517631009414852236250130786137145676083058350073627168007844056054534248420693632118855887795497468082276127218390963275286487524708611582118454718600968307189473769756896065230343185918587316929250190865107155032259210083317554350822793358857757104939240500264852230720976150259665216533794562403360926579757286425201661234179825635879944028152276727525196344857063105407936188930224065834907434682255215436375512118158807953914250449638951352369371049053421910148810084726302183762088938345433857209255112704088408918750037067374212335972501572951913334357228414134360349649562659624352444744122587662337614429176025500324953701207183692774491028746650962447915437535381497621002637298910539987218290277669271273630171897260389042464579002152464794236041740467390541836922339366877284966946351900026178310437410733697865765993689337261604584171055769866188170718446956790055629509341167940921432455514466591107991347692468395016636316024262542562400897744230559593090752595135197899235578199993482886540356930268994373096998625227645217675235215122662288266447691704290294863972233363253814503628507676254183871942680369674753527769854933154230002086480475227090608306579382188367414101001257558847598068151371841441803602529288028229817410278358332844018078393741544784833737607306022908412329098357458317583260112525082709476401736597766289224262283255715909454950797451487169935957996573392011605296294327214226510667917274990932631679438119704436800748721754945218677089778193648641967779010053965880223434120023909880787888945227444388124168564955155842230294743079005286928732316847708063369261917156672665634235320629682680707541984224865427396493870046095095201742577339865371425454484972891851613065909032780645799968582299088585360907136451668188843583203287574109611760310983660489148902269749996807803119614641333041394288402417081208714351684867686482295082525428686892864278718338627405876258786371013669833258624161007700895897993435771258112268326219978943968753031720236463881374584951782830261593694456949811849237482892816606492686581273361843373002017842709241710804189428411764872794123754571926701468105745817201897258129295526273154370709079951424012007439848723752398839670713600193627867224952016020509538674654678949700224453134103012194381922872424389981437353009156218351304913665070774853745134320162264757206795867213869041874404217425155206463109038715749320763206401800401356278596136633584057517435781089579308708541268657137765654496745494769744222425496377852754019780956807589531515930017811535411000735542626637185661929105972243516963370076747055463812745346250163059234024368296804396357318650821405278857875566741070726934768193950253008363128998062917479220504320681734490385099446893478228876107112106365756398706696625558731022046885049179876688116486944767566789928539342785196727145878642549239971902878833329067212072547100253887813241445902177020055630326163445036403373180539544693411136697946180911973646767769986166137784857551343453011727361630143389495931995915277724502099375669506369969338299106823987674503081238137451979264582104398619382008898195825777538425214038501558937498181210927308009025714373376976076755685799213147682855809934432574487506306175870914897115702620064873544305631913052760416683746969640733614569228032398782595275127850914994760371231392298897349449113587949202497597643706336327334971648612100330048645610645744065129265125194522064715069327245402254989135338970537638908442263052372903761524194725824843842510535078305728595522185446758142197870754857263396483449865575330986059589072331087441277392394705055183127016968080869518891564770746997051645274962703578174821418382194010284062893583454717796079082636584317095371433508494971100828519239459703118623695669656210953189557655700376476099100622053828828806765379801334717391456188329071789847343338146764892523750327130260291101562695963388186683536842239651978193926167310303288628167461742681405552652933094813557922906211189623523953029576070350915643649268828691159790929661055577996519119385402631648673546654276631430507337934969832764435802648117181134982729060452684613448110880892263046693326156025893862968368209514664028157297661457934602644722420434578963024335631625827798042251353849768719128858288403943144397355207310588020469053880107650777070506556979553243980797736219622117368506117549916678778784310477279908798780009354562179490104617641839350446689421492356905731163833363738867623619231259850740303166121469839491833988353794433130280482566121439600272294835122826358488587105000599991220698704291121639908496529331925803078992346202626675305691404262575447551702573893245490849746626779469163990195789761653209814705105920730466690971001140061012081991632103587486450720798824531013566254365875452187989608870375166181340395724095480553949326591641863201928662383280734756236338976377410235597645519974376884185097116123167163041665929292647709485736044118799125073068795631024192737802120518760064668047001409111164614873247605976833011350118771163428856692964813045142503172469860258631704779368986726504759133835836685173318672955477252940428850332411227417394720342234890338246395269635337392784564366693938252140377470902973418084222963356321129723883397738084285002509022279784869720097917332762733131970111158020601446226067886427732811328311771665903436315780637048917686031487573277075672737437812435649335800873630306231384877693886681134848567699304832957801263477840421632346577696656362733583586120029388207179242432849787387312124967203302165118098674321620727736348557014752215722382726142580766737863631573399657886621389062394635058787010429192254983125141533248837512754003651511850812618851484742700787969246719786075812934522868170846742062344064805014897509606772492576451655170473726734075138824293631097493931460303022865330655048596965027817074586895147355559502615185321130395496503426490076430491162829817006999019417129581575124622187424811783114956325935785470947715824512440965849548980262075462873886029537524925467954307254224997471954211132286581951053643972416896833797854875351320801237077893549261599591150293347101594347938044205913142327820568945017630908793648362474141422630942325036627105344857926730175421950395664013541167873204289594863211524171673374444024897010180911229153721267791069659617224655110753753017637610203017077614633254515269448920109486900787049776143591137632884470035887923013849735506822839887814267312151314171437621325665353881248830165567871956399145899065011746534392196938912551071290321866546051291874943037354777290658438129416269628628404631349456906366044999916984388743430579960703714262134541557050339663634860472933536251109666063332675231910564289614911863374307815893695619787802016084165713800094971932715668299664070064059638822783206173159336788610798453266540121643133724863216206033366683080840624723266469045114189621144892344742041302436580713391796546349832859381643133348878659917765589816462053114866462247043165061509293023532722727757879280513363701397724423119420193238544192957796329861162459885200026471047788020063438313797906488441239263075180528766089245656735300915235967491776452465592950067482919393908469143293669976309673177485720592900736821119065811028036687334218447742240228894068684506890295683544670526721260678219773199080457254028973321267467499417035550665165164994576312288185412052542374404650033211736695687273328857801988927373210368341423830957559505885441445625419151618402157960802757414105531676603375571475972418662281323397569905585601734556973791589546640304971453207577503492709940409801632699433567163471341279571396372534970084031550269306023206680628922175278442075804350579472557287337127991257627989970903973831838805115441555715856597318458624610087437494808442846020695414011088820395229809199074304897283841736961270861930320180867713913488522726810021711954089086662382481804343956353685702150695180142726227264220653314281430638460857801564991672808399544566851605707092655670278307576414119711512873504545397167513013188523293215937745761276161101429696879590891667058750875799377445853918310302943928072099374964170665733121478046718367474268586713049706401470943052724758889456338588882031264479242888862465719879874723003279109500848850491347282072776091749742912801028715353928213456632597200900145345005409446795857353880055848788488856216742112028510554199308824288786608355845933319879453824977246327947680530095797776452585536737327632122325928793842612737078051793386760752700476531049696072873791046182816101769701986762864265978197701227335707466948238786598502704158003584924510394766891124916091292662967246738274900189934139503075564796250064019375508293939741508183309947510040044664801823627059330506256951845958222616028118847904680081396532293742313334796698693389055527965676046993345514570300288975916962812995012386447366895174364650893155421393144192471037141479722555128661100687435389973375451175125227423871571762319825129467423576299055458257328403296675124364683012563927732935505646556731323579789932922708315499137059651195561742810227787391383493328813122377453430339628650605775228368035515274119398063234739898817476380353341843491832748278686806801937597237130973538735342264221829410686781720715326606521419845459694458179424417084690055894567975236106223301691599493327645808479276621062476135282017281223727949709623117802953955702747506652539070576683734761992162833124785844173255099698264921982896615816389336374436570870112248916282158987390937978336827180927236408526400553930892096618742177616155739459943594433499881064467408642861737120408646938550057475181170760195880485213039502419586769974260200947470112907003948011050639661546358845390749519581073643578452942567253547996391197769324817341988593555829435296942888272536404721171568553672553920411299523207412459396769741707661865864692517404392757817554128102081739021713305597453147191908248467502130275043470638099140233976636805095108405825933144964574286626922420871332096269360491620983274798636219956615713191335750018767520279545345547017076993572401609739273376968665320172979854161852840460204869808149604724376799478021111737039062093976173686976332474484841432619293186035776895522931152589997864306314499746937663574681147082912012396720286839469985068656075856957238842288654434092270162086808511104486031828683240532108410702303361432194718824057168882805430963366536650973413990349755889598493212186870641154954094118619177936173622985565851202682407182114134159446238362716932305534432057975168520916143616672201647157579102775756363906994366938096133619012976977484924586853068880625807342972977162620992127314454530390253720305413541201853572682855092295121996377391052646912249078647579818569422894685263738803781856281582107219701491038623284332107535910657172577503421912976309382058082747314716558893959368812074592412468671694818951390341981212470686307127180169915079815278058689766127119848577142157634809396285558151676149507727522847736201962978455477073875999450380318132100656215952079709681010750331964215527099626341248987470232985146420026989345189320755469196297803406284350302147547369503633634295998506397318149729071909263943261845624235113875797585601984430333690757651202109698464382153560454891989025575682550223053848958355425371699858692042584225474985069318089758319317789317028981628318507289816688829635471864411352406305060077721159467889531208123844212549635059125065328657490423966044066908556449605021330429340408728178523789858579280937514521408464010383281580620412480791348645698275594599121303357842266583283822766687069267054437116292413420547310607930163226964162388983134604220131649228016485230043983380491624874210328578411439155428780247476138498646605244862349744424226376712434981430381600754959487741268868575561702234997340413786095439008609859268281010798763950509423206309233050305943099092466098432877599935706443618758873009447200980010465480411914226360745930112886259730755281493931231120407424981520577476789458068250072885284455609459083847276509556273207756001094727901910294578748012281547403305004210651355717790167159937349640407177723464381399495029654146683031195454907135447238152294779097366903744771756873507563204818117234316555013369184449225206079081368888295787089338831514075916996563613051161570028970381238610094141221222959978421122932959092122042662759040378730942849072933174704334745502652558936675951357659170587707639931986591175881757633592121581932529970553084121994407900783727766601019838469420802950782914967828968137195258288486344744929543791987221869124670477923777999343296817033376566705128978586472365629970494764191630171101481370111506736862322963788552040543832122804256563549456957316214497103543717990032203079750595320547567623123436571515036126921365067374960184054386707930433370393768145671669281394708724899243798631480012966299257486225128626180037699474395502740898962787703112097629080856149031031707735761978956913680795473104965403709370254123873700771147954025875257829027589063398070798767816804439701510586532189455425785734701022216322153862127854429947439259378153574111060373230885312764905225333455717082190449387417373286294166729655383659809537040802061040882775378972069615991715620383391147529719516074528417372005486622556576724269014194749947966053859401548465888554612069293635250625315238500472086313638678170534373153892786115136611073704994796877479132434833733489321258354642052958145960234077781612951152355513207870718242849517584639690027416938717123254776128545983741001716213173961148147416175920622600634557220739710038113040122267295924265561718368540181313723558662302843536307654260556078731981240966384301679494317894937685456182908821184280713659062884111166103180540642097416615295160293129629898859862635839292024295995480074380459287736441000980279138680893212530059222749713889788745009099509781779668524002551221010256294705055301184963718865797635878959742925565171993324719404355167468035316797077064329557707582393079754618834371808020530172851658779154177896090239611255494351433726698152370312027052521987182305764416111682911844127696836972028681499127801129943292066490190428920532447543293898034961296079231454062747256257885051843907151655194068686467482591437782414992682371295502448110505041424370094237535476120303924288931538750966902063148774954866772447514004837527934656023485989286659872547627456889645089142481146115798344193524664198044618267968000565503724260543803791097263286487934989233194179632447330508298644651163180361626671551590098995525595345343568348536241858661330374456428269566133648483629643827646907895485897236927938710535909179987302509009506436768795807645291502924827011065207806456327179600908293011434277538064699105591841254329759671448827229433012338729826242137445915993711115632935153451681741655981092095178474236793859757274088811660055707597523023612746376890313840456762567307600069053749003762965970362739552212584135044834822716380425141904499870043405801049139968129734492456110758561085916860350682089431788196347045878532972652600123420757445241213417252798169508534481325804824125213351056021532817509983021271069833454362596102837058220809817253111696157585010683505028966640275335014988221612812355018115820636625332790410141030510385709773646769314434864233805863734875653777693814691298648536349494479900478716834635441853545206885157989597903023388971033601528390199512453506383621780692634002618178289403962356803869179438176375207426534506333239811954863143742859280077336683336010545687678657868831577682528942614348835018811208853507462717080010969081406237825634261264068983826198524361442406450613844866662106106510067479765447415554953685295853004734099512974897392349696465659521610695630286604759886705350477911471769095208573874166494290188144232417798075654345053254593007885331541423238010156786906680661162807377156238094717084712220147898980435826356288334115966583666604565430040308287268764499450908674131252246958197472414982431620084158521625399957318449568473915548141833096684866576172433603589546769112132383267639677076874224423165915867166454163934860630719584188710181791247838808926973654138658507132645706274776928823981617985490415234960040320306051901441108087357764269285171456165695848633038040331154328553801471120218451114411425332037316639315540158174415991857950999769078923594109912309461402178465918148421103515440655715431729320388684233774466767708649173636899837925273468561043670226575168908336738226789760130950729074017919983896738829480022455197109616695373538025066913758142817771725546758530450241965905681616736772097456741714650817575211561066859960796623034855049275654588632928041745513786620690132800293182897226318674286767427310347705504115988348905131635294973668273320564425094213655725302370854807140653390563066968946006178916946915971459791995494782103455906474717277832231749138822177341680046952943692855890900793256934568651016556093214017445855654342525423170086902418128230672659446278842969270943038376856729592885416576905208892884594412767027695939244744123328108010356541785657293588528807431452381296660784019987462884441902410517651763394141067349683117386506879766482884972129740258019972412559940928973689964477497213500163257179135007953681268853777697159039148021544389700311398991738593804656903505660103588747859944372927427426382839552421604136825480885284849314570379471637415592039059905568214996446069645165440055297832400687910830868252464707798729622319255305147828635014120335399683961657115333123005526246157664291151044781028580734880775807051509947465315573462953063867868520907164335478343551916836528608991380685156402376613923908423912832508548988779284762865320743354812981082683512751433130362050098911251698286743765627966490480197390325395805614459485513194296124150287526684335801413416927800174662895057291374750179883183134037505305830990336711801869446291785278214685146478884089675275822133662280950916272923624884993334080033198436214022642513429586182605835434018406439124171728290142948753318500631737145670745334664049318917948003687346554854922089846578134405253044579461837464895309977900886626381601026183893639309987568247180250439117819269755491545036413949525840242659839509804545610096986647045967018287440154966778104307118755820550331823270800268999580660672470704168918122355644800129426124453514934126161194594694442908269389685172811647744474651534258732419125815391899838039826745224270012252099781008023327441260740709178827011720835968335647801525479261059472125910873605519707671940867996571801409821059602645857727050944795048327733391089132349135057965802124099570659000047558220424843895564297827591037401924926511777176303830625425168375983098747157620844307509069245471416323609007297794215664566655786557988171863952670602093471376486904777478326854941108543395772776657946199212468945366691372953880935203418958294494659704050227670963391982310997648589575211883754867947874273040086740613086988754194463385670917423444830958177213152766809286469103063216577208174320675722494077352707998884897338793066639094198387619684719276750793749857416507234770644013415519679153054471303159248040046414073314205974272520660656842298238805638662986171470136442772558695988257673740496789230720340959054314055148620393213967746591840012057643947347785452669069228227237326690354157572205777264407295376295690452467656498249495792220392945656329930680185586654622212279747740893032349145368348021242838057369783606458722551814909158582810311319627060546818603950542966387469148501459469654032684587781176397522323810743278239616894231716026502358060548739138836364308674192900460658976261280083766569312663585019526697198465890466608966661782831623655712122778147069014177792993958047647896059500674606309405250374582221248188251274106094236379102961846638750383585366590019239902416563588663234842549334798699185421122496843954605818137379649099360534550938717657222866221432462044247166039702387426210751815982578179503591782670823607045730627061397032464374296740349392483859162788397932810915241475253739347074391292966999058035543972484035899834971215123569124065313738899691217387083963126757332611381870960588996298077231249403440501610498450435356985024186071104800552737273583738023974994129800747591622043323535565723583359388080323770948609456256906064709785646862999972909735938179835755464565120702491174423616039228794641221318826073008411756262192477838330859035677632162178678609718874887257542952111160722799920926380783700604308540069131698673036764070235280597253349283564635453591424321286532803936537628946304457624136866928466484222418204645857451380691439613127868868329820521284878004027496377189054555314166860500407305127342979530164954272674873590851226719220845387965489970813398232535036721365637387674772877932864994899756315159215050522324376845687163215605135895519465852180039048313844010278519561451035418027885858946506686185586881763993785106850361664266406589359156553086479640084231754947983478687716682247283774734714031424504301078614183942748786321593028749875135836714028914520342922762078926492847979220153932299674522170813149214610890657230435364841881919459454445171568991950394567433588227843596097577365673287455576272959838732552909061949329388820892256540761256582944812834501154142845309087079616140309138058097919113061191067282083419956204569026713018345666853007722543449007616351601930892235984530896153237121017622071477082284193081840137016869586679595693021510800318159993445940028969557930049938044690868514127547231143543112102787411052970148408134036421465199651303011300216816929858717469996068773134961913092055298460797288775155986790731407428200756675910704998592898598338545383785531306819177222539643283014123495939329661348739434613028148614165994285982270433551150539417351617315230723485840066816873976844196404814739108620120466797723349737214837445672693374155204168543506378141623064228901390066022688312416347558927348297472067102835273166112712324086980755377130113408902811028151154152217167396761082647408442219729811851457211810972046615572873050849333525735649846986065170182612159363616744704203766270043754754282771576029878776745056798156312476007070375881876437905385774969068039271778343797586432403278348196630934033772802205581318502206937248843210405117595341009336825016695212440529319460283272369106204913252161209841567243224638139867068473420747147433557062938355218568448305729647001815382309922791240106840675177930988654460288041823001583991807180628929990686497229371245237938220550897222119228089564197706060174217616265425305631759699185014191711171632201541172256058607272487808506220840442760707490377519159843205208021135545558035368073622406773727904104269995130489428322775654792800792071951438808089184008503765309845147121287350776622653306285768375806054938228031937798081363458608515102709458849936670940611114419645246900873314023351847293040992976973066218266016901136515292943490257135398536683473328709190424191794057765601230135438658739948627311821515487434895263264101450364690170950867942008836524094968694562307062493106056268448151705081109801642861615809752419661758215551405512957886964715495614753108524093334883032151375629525409272326543150246644539388354735632325808025571416216100004955698959021689088619395286208558428285900547573494604016119993883720346455515546981964182635664601234411650897877371243397855948229991133778461659914717734409608207796991769400872930512960220530166804504779389209166483012234454425706178388162871723029037387916097508503659936062377206333631382540572421516933065980394858924058421498704952924244613306458622342002411990378356023616920009107001260974246659081573902029436579362794844552509067050461255877603819639746333679839103713031734997282587283903886045820767175837962810992283839196118321389768964550066332466070336260331078740321832823853933768133571083431815796729939271117961675079092245839777570551718907238772516005339970827259522187606333315249105659337377596562746291393487938751304354023112471881260109144842059633709302391715533299016396194053111690263325184253762523923100388860512449559198354996128302563852586797974646150216557472951577750079270832839825705278083728784714960346135000006286558404324768939526577249963047877076613007572034365770624027715407331277648968573801092025361956211509967355137647911259866852685919830892103454179072948969897078613599205836950683703872079780503058802191115603556174742920274475438010815579122725204841513711385198805049572772383872636042401504730058813812272143740505718625136621731857452847852785289068478312315564040587903891651563466361160170117315990754872645980357357632415569855598922514484967812261019003234373005461257823738658764069301005190531863992370758385897752347380708946085086023089358613871592612099891431901577516994361051053505377449331588516305774798164240249651301268335693819758963368574247690204467949192752535060616204327399838136052317992939792571732534245583732812653406956726096450648475892881240301345680330840823653870089309093900183118563265788445680964660987931421664614146605503635210774381031265497523359829731388685426512420194532101555858325763492827004635317844071565009864553287178263189550109598991335890869399901530436920689827831219550650085031187810518822115367024609281983710978199368913023147627927922133017357171193829232345481898110306347467087795373120541233570157157402228739509090351228115849814057679541323857217625225180644900819872205065255196578927149938550021650637405466772168161264587734028919145330978379559843368560113900585439684590508515685285403201031482056130386636035707164680424647437346199232617670444651609700616048609941195484376024527234132514121437925437270380665062235637880842169007550472403369219853580892469129093000273981887037006771179066189589770954738993942396087632131739122816722693477481729759813445088694699669235376594475912096761182672577697753240433935897028679449308103345508248247118223824353139034603158252410007910216406239172318934276909339306346054161457364657342794474121433241813450131546419639413176728575104668797400435373378007492888444540851415136566034955112727809935140683987302707627650167060261655715207801947433304886304459527486583345815091701075116977323435685166892554631429914328883424993136074267025165277648250500469252413656495571234639197038608076347812918851514286200151601521594612292269193877415509172044872957900516353415217583276961416278387532382461563146488830384914004070297529867461531795689235936085927520811844206382588550446170727985988630500573796269823727569440233430031751645065965161175743070296303552088893541967254738441154701229893069136924282368988835438380523858889202369396511883994733989125559768239448177492589442911749922642168895400467095562595633426326526967349458841267403867936343588757758536663710359510462116064251416237693978700125807664935002198885443382996373095044702041718328197995564402675460703302809133539042721671455429377612284053262496703708067084424308996962352804969091505761009165953132245600208459519347783858762893457960385612333033306933633560278699388292102226298108458393373684300251990734773778573214562197524901914494194041778629358803110981718088371057131172102094519227430140109845740007143579938164678769605971675443863826893623105898603475720690673577261899396839208419066373445873722577611560388606888385068539137112128264362492360028725184590317630205083240546837779028841935623287153605679908628305809172940228792668811294463250325751741484948130497712511310566168180279330803534385076850954353739005521633314096926616028641227728659022837906053520085695094564371101158798205754524933198863445993865915312162584254663930360848621256439978410506014820453125597428260440700732580647235733715318001830643374064211091068678873055052684891117440540095070378971872886831916239255657858231162471394062293264954396972309410524309624942097524843399466623396979804138734506052217556298445037344281536353008458139281602144167621366726667775346544061447144002708069933942282727756020823415459212423752189007298114765269846019090128210282630145842461495217896400356975670029464472504266250157270841562445138152940047568515145373886899158150622794619991598937506287385038453092881757424719257680112100681726352184215259923717285430495309406750117648635605701027967597854040663365331553997352247527091882390909947778174853645940635260245215561269612493984008577931587261302983234233202617767876877818894267558516821524039384191227731390204373392510871728813651675606659261390405547134617429815279561458619929229080397852976139539585754056627267151659791570359102296711499048354171972718849240794814836248542550382399608328876941344290287095120339808762007509741375199340766426734822550967745700030449952689123324487602642371809495968563387564618368857573487390175462368272847355418561261254049766007482835430533322405553715632820962678551579233820838188634375473006282758385600541189929605871887895679196244765960069903975200828983664466149226378876282629047104192046640328998935870497048100592213205398133304686595239229298151476997355404727154889690862182496559506865499928086494071148587208012016314270200198737314597436726681002605159044392657858739454907620100738331328695576610606954177498062883277050806687446385315939638308778961927112815207525562301898312864341977797718722352800178442629388458939616041784898377016857160527882348959092961425405396923673296740531844804290990593867324296661395071819858655174046262145054306075618406458875461744191511768007508058380299803233885302468343926079891329811308078341805931404182941636950933542210354762186040935759613209137362671674648024718334799792879235007704970868828967796029739504986402607640561166193396077156840612796145248145276556283421753077865088779527142565427322803556668395764060258121845015670262272660518269614400654590564499663192001072612237980385549385367342341503437518126805187261354857242672892119381018707486517593668737820500352105890834996324612907767443041267645196283650971876302544079677439547169143159130661725183202207759315517480237591670197735071486996491078705987151037202649550996554074371946228970921861443584495485121063360838294800938543367876498638078459261237333623965694655872723375444596743622767867225138513904344296213865393295281247745094817083149915991667435758459485008809360161291727981459616644574053886116593124698378453088362304541825974457983786754538969301813022549718572903080478173678535841990129430229336203462917201326039189122567831072151129220525595274379068696708340393212774751203154126445544969715394720102990785039283662456330581068801631163654741834300424349781661421922279145589537216523881193091484967430727457617437603812623164231553307585773636300615915614458181234805444558842889933656273452488059009590212066925423104316817348709488958357814889520255885479868762710994402238080717622083731588344767385486930953305388165960504151616900919158027172760632127655340210983203679588166265160951163975219272701597862605009271634417198608174650247681913515970052234862122897891074580314292239222479896599788936173006854877164724399209585194447672724275867978498656848601372983625015801865013021451172965361022451114476838118295402274521462446821637924282684005348029576104915196681889252870986662778346979711867276789727790964368493467076031997075181434875407720041191442277576154899185680904065074828784507576229210044043439540812868642618994366357497843525389055178724593241036686618097455441215012822314970222405555048288822303419928354232309863192635270747860592387872652857004240343189283716442835617559110614626382252879465377797953111825541995376641478588620254082618413618266996554366125814463734356831901573688855110816306841595676716818213442947066341389266871511439125031421451892634295087027238017660291203326624451844389434011030870623852943274754324406072980365768574271693891515161698538362399980941466186077862763787735881251325886674988375387679422982200868018900848890203139626810327345453896251167741218979522454156697287453635003370714823291684457725043136045433127632232536116577372835456533227032433451970811183137018107193380322052718559668773434505357002778310360479824767197990349123158249399144580778759312395493732089681760832571853178076978358953051824647622349800635352683996290126707451840255912299674114432366709684206819438111051840807100055782552573786585051415788855600532789024729366440309490270118652371921931052884679707992412024235867114990272280786013342028127059115110080355092130380212916388068174252002045539776548248568994989455159911630063323051056806189452192565409753467450215807952315498040296951825564473833867203351226273669632163191212376517061639725454087744110128356324556289182884568618277692849993033859194951558566792371326749371995540041725854797178943069486305671581472169029940024716706976562582231884205193408943813609180451422923312301388629739410406950464606725271524484557589181781462830365934245967518880445090064195396019220887678107249128976199171034019421797230324490023780007423165285394939643736466334495273045065685665721023879982457069850278698488896442907213190914430910015037894935634578509478598037196372917730432404856606681540340095020405319860021411520375213416104497166732043392379245027140121844736192229089537688432229434911149466938567704279575099083456103299834415071528712420966029901697075037732698681923286390774437492291716756099062766269836258398699467762331950773380148637168709608615574653939080731751341208785987421285804228723625264422756856264558493139163355305311147010537328930872758828499042809251843471661833815308895738707711212680423831532194494860262185077390444831324225172040956710377757417746579440101505851597955669858723112815992435602974471521868661146146935251177157133002760673726862546683778411383321041275626445705914252181752841697495024412735135975331468259350233240007852593843835616643503964219040810429752485865304239999855619929619806799782717381181028947770903018096337222322593024336126595016967756353669655090917791478450105440336843369962738815619863160590464462545438321616863849818166174844047961743199236874073613047114703439283090967676241483011694675563880994297490935787109033307793154562290241378508195561518266513649156712935648726879472092940600367716282446624569280750297458890524529897837291936949033733936164855179207897172375359310620985661162081956047884190712440112236584167095163485212793379491696429182612272395135316764123507832782236138117653584913816364035380634355506813406764719609670580848453251090073852476830187792281886703269716113967485155392112294794942052133806593543220600719939307297685735219274072330523059574097544875481996413625315439539536975808981004110999945873437143677391331767780668691544712515534115812496207906528918270541841633339983849143316085833028457163354414422525631600975774279764652394191334502201068753469910587263261420602532181546750852866034287303628261236641842974349291226321092271069033784505443754539591458000395854881474154614224126654901976228536235623803309220560091123165970582107292782815902224292286885763398742661182654115556642024865395219810505213683102412879756463906670837247326217823257139727403855365357564666367512815716301118009548906001118672422531866425466954804637595741541275163153684943791157560889296256206646729921977526571775176210464521200661837897299172555081715802610735705504446946075987344715018543458037690622085874406541328323012027266531732137457032425094727022709539365798565301640791402165409062909809601077096349277288616099884628778794139862737993993620311104763239085788378170193382913912765353092772351511781300325516829157327223570614203129050323801656696210733845315408992570613156780700485109511344922113931878286320009668200626043811699266814243360210693112800411088919240461866124411009546483888784161458523522834158146595833339260227326247447216301433303404225037413481427296477322413500885229245809963839442394168799184511333393480651542814812444225234562778946514521746315336997787558098145505598717765416633775887487566956241510464018823200667697883049163881261790423032480815516214681631059170144771146787168489871540139472070978335292364414737035191740920064729947703748341701335830123761687749853123861879859534052553075090848397045411744989531360601444102537221573684700559048133494961189079257970353805350531185781701165060274184306153761692108237819197269184686087862784820043584966028407454915318695406843034177789466700555667004193778718016843151121665659834218222807673963649727525965733819541708730937958531527040614043315488298529156313822595958244944137338845136091313303913032008388131876899493381718188456226008865846955627907475319351433414193091037787419565370123505981275674729244631503320171215353081440101789443005050884263652531044496007323186988438455281991923855571717351475952086884528581141942384413854930444847524740823727986179467428894536486611593856474226887946720676111443323169710454105578689142251218053438885090059663131513402352672646947350614218018313995549519016227833926690274641700732225411973963784683855537256568599544933985267382298636153452900499981512135244629466110880959433317866818421511266493563910630892915430130720044412785984528445709328100835866043441460080023603778067948793544197451102986129657023638336158159548921347699110280021965241893733557091864055313327273188347869400385247276778069860869459018802940783597481438845133483335556711999003063437393111818720112782241778109362207298910061176071217771387713712961191929856208238796864892912182627528564559252957368433613823771987601148343250347089675820064192292706974986166412646137076297813600089476545555346246997224088419189100928957100070119756753099888877035140845544133839554922592861207240773976135780014831143072258206034371461909608813878846589781577560041310717658031709046811392387483384907767858002876574827574769881839604266118193906471061719125167682526385859150467131878236711208687028300705027265221467464468979555468585923861215939100447736689789124444296514023990988573184320224552701867303830007161928238622616903634186601331416838706592683196265114702228184826724883824166159520313553005715785148465430802356275002554292056813577594949005258807608411745792970670124146151305009803103579236195123926626483506261869234201779194665144787710775218512230212682846053754137198097827242431288379031628291329710437110383873779689079558537730917491889420040609597992333551075471378434956926172775609805066970865169091219803487233744462652140546216799529926902117331069094394141961903987278288421554409257970915991042524742263101952673471160528419536507108213656014531687400938381837699525039183894500829349148073875395091117353911355873518862247406931692663751764972377772642051189127108934812927025568656996989123392593135416328236654414809866503290725217394907342421301821352059460405679039086599662166525282573534170248957349744958173591290112741042834796321045363304921637297044348430133840408183728575894736108934548192735321777657876065400463718809373162970083681405033743270879341582761903715632688522762016649901339262077816606290050044800494828052971960027517584884998670906256925560728537310300126095762093122823400521609628871840045802690691450374226155022742545227545677374126340905838175077038444336111723536465265901828706483189145633642868452793818513453436083160639277743856433604487068950026929775136824887128865027500661498165659912245272078521842017177873799562290612388470718689597590348152427346654300486044696056989534837179138091699702003072430620344292191328366323327658817473928943540953635745913325470671084583285778979683547191609945729152223698853282786649119818692542616736071058265899459992826292131466172799156084895326081172358080010165751216695802888205998052261623058418798765325659449733583625338191384223590222722682865572688640380765201424181342127033519850482014706316538685801724251241988204230574105461638408189349902646628244166478350774995275236305800789905486186185729487348151523307331557403544654836502551997774711568578795093366055100833011450435199921458214977846356879520127146472557464605472220914563958750542089817190743129959317467382363938808715021354602363352645190792439581476120668595065762443839279643532594092546269788591627654173796454796502672927020785717486189962398345762368219689540356312227534830854771550254820965355182443454183453537442083357801531949741899572401642834916352426199903217576070445591977770684982152658256429810977064382579146909026222903201416475749997419015178485410985039918442384757093092806382450340403909144372385817779107507776019229526631559263422425530826650520314966840026697378392882538100787888135080878361513022246393121782703120790781857759727734733431108428228395155049964301096592503851120281846384142758138526581388958100910870987931455790011919767480494703694528580698625172314973134728066595551424622548070132131917751644810597352373795552801432060298879506708825324780221499045654152936724464308120417549791488040491887065402257769894103828467776046273937627707181976011327182915119206646149776591773097276818810084312007102039238076364151859157811363256177911399927690772338612104479490401414884447797345905474532194100760937604997422239372893337539187860599889350383400815465264439474869037623773569921559966022100105060139719956519305498650454100422106593338228588179901268957266612854027994406902681350111389187701784196652782219180242378199609278968569956369457942744239903788311761241375683361266528795344855445704472464989255279287969003206329373915766270593644690214541292787622569977195599719094659734284642630073966037360345529824004891467421476990635438824078538336068862519003059393689595715801074366228115842941687961266835959992999640006706520458655273235948806830379540420611123755185537594660014653641782999864180448511331247299996127035980651615527902781362235796256730489089973356880430456287160660102124743315854616477010976285437389419472851127497267674667907569678551221371422033350655006208670512587612692800872729429088989498470880341748725660978103760563844776055842133003092183831108815759977040325263592020137886732766942505495114074716168761984038095665645929121016277832500456909238695424378635642342217317436995745638682592775930463086156303601689889282584371448492499877938467249098853335124814025607670439001773006229292383724913052404733260248082801661586713076061648861360593651610567982943185238041929669002526975118030084849982057562596135656002650122278696010612250821781962762053136334779935487794152641844180780113406493804143764246282461378137923074974642310030578386925049423384488658668713333220342186247730151919910450700944794338033054042176471315326206290260795944176460210789816822602040316919406132211489058775792788168857134587731162097974017466130145162627615944354874358271946494109199741229278599674950471758990597449303350631159647039164930405835048013675901990039412222756840196232042666853319141913450597433001867250263912313233456018552252285664276037277910949224110561239220350374780247245361628362825587001965699764932247145693596037893830335792201208114937717184822994723638649066096922172400243518428998637836080181019065880261614473377618244330391686161680530433334524116693309699555146814223516897736169246440847692634005346218509438649156002523672094027144724656086744560146152420486235939642244355044020387834920877568685252622424419579318208460853828774173412716820973087318363952983809387197453547353656309128941188714711556129705479354537713142710062107620761258826739482078837761453593887682037820396091753934266917025128953333190591743413099599959523296660067100405823400430026782045856099522920415075470995365566849185262356384095884248147389349693758241162590215293886705083068147589472384976830441813934185576635039706233127626615254050728313536830040303771393234909713725663761042190098796389125617946691949749113405093459953095045574181553494036933878030238365416998752895804235632391582074541314436832711608690405741331467094824935200295439370880716988900131494738072840972352414912084393720829539253296488968475491338124265723797004393410135091642623077944611394030741593203573678843683078880549469692148825098835873028824041278233872815667794446232337356790598115874610341557291768234981439674573975494913440947031945697174769835184939518675008364660379212377319441802203779226402701971027427662265045730768625117280521050710581440359765432257234754360237842539533449304840243878542044693533207783479790782918981839401780249106957123291632791516886300881857291153422338679691580654681777153649393962267878758607638524439490972136256741954540556951351869025195923387958150225780243707820200412208630040811163507570243391149082018345134452581057297366587676710365733598489594221166966069089353109068355845743993433075436740854048766164958129962451573486322964376837060079049156148185652851124096555531768973613848047868277989818211017609712354941559202338508886248240866298692264750059521756559613724675236823059421247792770413266040928686113598932385253285451484493754081238239978132930378009304155345579809630136924563169276596770773084210115386555546711137061467063938927851343612867242521471311725066941922685663299709171878868225869878927557795317348886904559698886130883102435498056867595899690791265117670676854490659678886480903799986875623051604194435919520723403598819480794159949363293262727455354541512767317407388200848417786200127543321580596976979463007029203714430889001502804528416725322736353032242100236636060631712187801780084218704368563797017999081430384300585967488143120400279234241387194320779137342943051599011169418875438649388627362040879435588525029505769774826568027438683945322934642766303922246632546238392984456760678176729313602937316059976853600418593967544170701877585333849108966477848694444369328832446789131875261238339188558294084582763303863838287556056164483544561310015495789249544620013769424887140914667189539262980698012865842469160824400417029299296848145707631431512802124109218626936903222004645341542047897645342638192911263002037606551767207157695963274699105198461836743947231194613123353749903740123525971802751250568033148159247462167918063542821012177274790866182447947569311278266777040599103381103872187829308748437887626080208497817463448313510249028804682846833015925966561627502084816351820063043380113429295037770685912079276194437154450143113158342160548829003210103234311514676994071340791993212322812278225843094956389255215381122910946362642803301027521997811455781899546692714604906153893010248712682309711742644282882531876373138911061737572942394688463531301739860302288721453629795362810628919026886996921755369762312957923900796140840258948029884442867503599220045499701766730357606226137049843591618369216584518670981467369057892697631402978010892442465245128064813369106497428998200389132494982778367365373617087742238183756571306585372725790456925830866403952454278259996270228745231274572196148262085627548899756280662277871696193186222360474341938378819169643096574718910936640499467890374349705816166362107797231957870086322108652190539467308125351882717782791805955286671791976999627005228985027227742884544203406428234030408303427459013353690262188906069023483877541277939131257684281405127652127545192054228627455332186190033710964769969191161766875270210931830696718877515238311382900827539332648562496275222004347470320091600301383765821998848521014190857661806165282432706234156379182231240996290092693896416136605122926725167194678537562547317567973736239861778315947005198397618621109591334011376277925117003687944597709454913805029853835667707264751617558297737666798088688998341242737223606278575118306658501985393891392695756858517174524280551932605974916095083336159506185191423308305339031974776404536119929779432409798345019914011031231926377804124800982388323958605692109830681160973514344591453294651434084626450626403249487558181483521410682209413885520515893172379430331699125634316691915096640424209732695248659135263282417036037567627092629454789053063152052385229984015079497774676457394832221237924874284806825513520812726468416846138306621050485753797706390960142883650701872395230341495528004046178790902569314809615511557107425399834665122846576045455941213970062919714009175722466503569630601045275994798768518793298421720463712301650693637892725258681366803476675082685325112831642484660723622275986655461993093682240213492874681636430556464549049326961335852357632623997273084591300531572548286152424057106918044059981993920209588966422220630822686202521674078733248169432238144827419913444807263352841369234635055969885389994885041090097051797733960708988350227565674150481055068264286040290065410865207208706127463044567703134020848551926777716607152515829769747889121947488006065010451334751218168006434624378484432287390989900057126046968502218740715418844681450867369896446677254049118767237469467214269414733616122979471762167758375738129120313421098882651768484119254458256602982320259811181906046945683028498409572973813626007053765129253071355988994257912391330871309465482682617512018740777568893912826218926586183554183647681540831195735618512727381940909658036560569684821801788379902627836725866945457407057703273440758130989180938081266347174994620268947618817868606453579335998413250007357806254530656380865848089598554814335707794056659646996540380085859587690653136041638045954110959111810401210114963480999586112593382137212115406307662994546649274624638488890716622562845898952610628445406854857537332905235631506255466673934397957970037578879348408063511857023191695065510469926916321831087830517906878820864967763841487888602247345968920525913757673288287739362749833965875314471646213536363442418233608426014887606377592981852335713446336106950419751464044364321828748788022152254066134563482547767793677541337016243359813645936201563822286105477196147569534640899740607563494078757885477082886615144873600767521113964268876886971640399515572084124462029586510035845966897268489916336425655279053013956703553925053952597239391466156642852809033703548416585860754270315004214017201547395426431355826843898615611174336492371040082320402702360747897296404356077515559103144049863928464217268657376332576945268651262831204868285871118586731302941119525847570912838949752427838732054649967087491668858645507914670092995979268817939839253379511995351404233753700802788161895667663530869038619796322911735651457061236659493071346242282181347519512299034837584929226812833739427266818954950954572801817087490028823234038692273210868390751679276299936040169703550884811729227596769801676463003095200519940854607548385722507383588381414415664927801737282936415990089114712123254510363311066122470561277595706236199679166613038527748121389940727100554266884201148899255869974199236084476859153593645748858774593576282157647087613011388608680521152015163203664260239854140246537895684915919712972624895401132696678223535341187932679231229669256253096843188107824939014311820611089575038022304303144996258156102841448334068625723631890245394824113427065873898583813346837266317305426964216029503055203448207542297232964409427286458702555773524945685512710063471567252636429035410213693781353639532732788456823114742947789991929496279869572199477390519056009005627786453349461630832857544025282229299874177376721290356020730114468499913435365606585074258570243570793826208142916969338564685316756866788949807052860286235584364648570155145715583456022757178185277140661481350023749507258078962339777099685437116579752089464805438395296935540999051797206029410919937727930420201433976517687309095135416645658862656063416531139390898617897143731535331235450477507821468537608541301082009425006126763668695246347225202362928693544831636010273724193200629819259718369281387292481476105442680178324724906743282218035874814826468258127524690943960456162465077395938690650373221674055452983941239501882341085492906735944667894571934343070914980911783259548574246015665037357833425370502125487598931661065243826171656718117379071825215468644834433472566838161227141140610632729364519605634487628034183419749702529578878562745330330491267510754606629790959057784395617338043502227793620425867023073242524211064465047520023638178979626302207803021049699689673267813147199611597950903203578380332688916463302815187149237772042031411857112470746706219676177918174978000793729776258596551702254359497326717299985473050222963862140853437329854958649319284627272516993498765804741029288195404537015007336551410453578849431370026770725309618754177234573922109511268123032335670286227081540536465669038931404155973559694647322395741394203000827713890266967028404611986337402343019097991625544804164259133599062050945573599230059949150316025712800433861355406078797693520058883385939398834298791485635878136567068120945107078474306291930775535161605797942585608286849123869495177032013192742742744647643884245173072195056657774694370198729287225322815190223744334807240702134189655308684523514083340778266646924021187060877873426626088879869561532712944740333714431014412673295405060717120054770244754368905835197478895110686765886395378949031301444098632578956975581936005094852531381434535381572363047850180014662615715006807724102878917829023131936040942293839226108532075718046845866780013486679230685360301272590677179298017453281279273888628525024916300906033327330822766847676107591776379039571500521738183863922690972100115479998138001827452059201045131806083571682448508025735028759788239035320116352409384860949011890904466007474985649968811934710265341462138073343263355850569863010273418376727981737252831847325851353629497736117333099533418652044302623295003319337014630017205113384809223689579685717976811086251005737797926339649068772215428769274804790322431890077199916589897124121335885405856395494750870691692696775234800826065752616962839424740793242672494820676609584337742396236569277817596658921003886128329558152279275372565002180290126729308357844020581405209792999406802097848594041198965610191582064064786433908005489589289423521627612869721947793972518524757493477481720044583358378924442756463985315811436288794579800252562927796597675050889775842285929358307531193926752361769978422236825934453285888007887809777425834642343620004489546906052637723710832908618933195907578095931711917895876913461951305557778206083231470764008454767840264708433540636023441436680927346539421913771014406368265349846546828431784148098113626140612150799825774117695792005844168025479317620477224073124625288266327447866763105090743716411334360562367363603145299400528999926446725501828580963067938465904698889149248897534260751905813044144632735519346917962381198193759709365522749895776720372457707918796848346640003858182818800518409966252019019096118125780995873235358700412040316722469915861294439249166005012660118132570102347062014598728384796411715863498978277147366703060661784188455670029868743792479631747135936642883017594892508184370879696722194416768910367913118869175511274239536754669211095596192180661506699591783319751679864356070436224808645358440935320711090063339364808252957090044461811106675360382101334184134734662880312364522078002366453191688547163181751212335820368668766625897676543008338264592682620013900935264819047625093705942774803497141904041048115999830883120149862973111002910815765839885293708180006315360317682488765353266129637693145612353248897110252399029080220891197094004859158985439572767378790667986960777954274732666551545448140137668704719530177393004296136575092677984140166798441748760601369707581529661887927490230307800729050733808917089338445816689058948893151963953711800437643446402471918930412059771626129074708235363831779367193538079086395829728365444909888094127780368986359777369294242460075993210547471545368821893718473501060713751172842877163927563744842016730242141081699222765372635666219178622085615008745936496571369177100233286470714585981164223404850905054596569821823854756684572999214194855720804493925315066169951645503979419365755623021620117662165854664516593629072976200345982020481207019081879178613669687526891920295082290845382292485179770996612242423257933623343122462946033539482967070168277279706188268174784901263867352485910542765745755530305627141968479681825472307834534404921820478389685011596003381746936117014274669979950991257666981324405756471614059022983473650538958554763569675958040760545000090463447263671677768252005975755835057164340878205975833290898917260408258942807756853086184730004963118361888258957201187545820728251448220316738313808653433496807128018041749845335530751301698908049707115824697485025845343365049533958308862420447180877634013376884438783158995741893113711946385993599206554813862270509498413287576315302565342973175426509696671439482261194148738886913093105226656402279216216723941798631101898984569645892654477220813664851791244745103138030671433599334884718492066668475851400715381392097238688797123533687339357256587688998037365596230803463990258111797261490226542641865101206606907027827629987207832208375981998521305174636964143104077521574602593198438205264145830673665979975955547668529596944561780057325372588856481655445162226733737607428687675082716918694889232572791827840770747212829137777238187392898216635482138711995021143496719028338967202415461814209772041656387763858007666780677717243137632465947444379381002292247249926506858961105471661220181098987429687583856700251717405884960718914690564730989483446039600091680933464483957770992156415883754361192606090361437150516014981113462302061728965096861992020149079066588006395898303522299168255038675559978217846090847088283707151157971346931229366915281838366407547767565759877696186984800011112882252660471278619232509897673648541044640368051526740168819658232375204636558429274161899994395620107812441755085917861713846319614004861351086579208987369762730170335722549136967383629356946241024843858664491908795510791925768242996276949655419378791073347076425472605330184524105967184011923808140178193996055932408979181947356210679238048221970872862246927385879293435352052026102833760614584952654220060670651182036087744938174027006357022330269771422753824042746110790468646466845132085614164353785470905731219440977677660748709123753965901184717535734905280956880204195695389016678007804037850517794063138867483765122095210371592692245696508434658983474030038070511057441577338754385782711671647466981690090773843932530919095142277534932625236676921593697035885683491175873397491699734416475150162611994915499353605395617671619676812962885607829860317862138491158994684131270259096335922162424023312343264603432918179533037696513000572055970586075001231055358200744734835974042489803941879157781829396124406840153296634348851891687411459437934367376530453352821794899901182108630409778789368334909164028096116997190855220738712004926132365309975626208510448097143556737184907929798785342974671178885875420461292096444897116787006525615142976317519118223997076214502423077969330385934877975127271192901927645485096524756310097510512855363470191425200087912353229041070142025391659815276313482719573632803965406436163270629768055291085652870598233104336293141178230554726283048632518456879219299045408281115671546958070589621512933442265496743388926006803265719553137407683662764887760487062865902478854719761873232212011362586161701133402743327574574210975595198102422794643168945948000830264217621400923271500405176959212163925315178718625983819041298574413169741913669130686253225380218909376384246340357532635433685042412335439793507466184719639098571237758601372582417047883275301212447014689718043951837888079899686529327463459105289646909671845963200536887654260719115021048467908183001224425016015878366838037630729288858758506502241986622786500036674724272359313069083048117518426828208101975270558909741969303355874010693824055044711323541683814945640929086149222428967400361777275261726055311025071669246655489213503055068848736164870704284937347174887758647669849248227551572836945268193944394567211119055281177248004661434087098868113738603778978335057201546729928184873140225138107868877896682037195333183313005018765851995263278094126371582666391176054482186762222328445068395205215903539528845371493855311740854229488853056903227655217764838936086788404080938044740226564915692348905653966090107972684148305191059229675716404070515044245687383996165894636151275305821429642439746665341726796552064612547070209163096657312286666533774439495203704744756336328048003578602371014282599820655122160405792058245060560620710849160914507247264200144217392830506498507572349379620269605468765282964802996086763505153220838987948860528223363056978218195509702007546262314688246928016346928602667273823510101514434155641106769057360881991951725817212893562671080687101775078671148694300662984520299686089998145301471255252863618407729389745835487638948742578503189379643615092515156924535573996685511030186922561783947472056823036969147966048760126120537685732023945727693982278238265296753190755899341714334204040520917626116259875386448407517368333503324014423682772955901480938697265527586546411839644183424636004739493075185006479346295255043004471531174933615250240532807740171273426024311224427145275721547809454839712576138244696123255810350761413482106100715786782332684212086126512173460904254014453848885694687319528368469555620784330880675713032150295141977338929354060009322473945440376342651614459557898732964060260170774935076201837922289878662177462530148879773985236796206708612587594717333412796015214053945504781577859036722750759632937780926344909833491861388162798136716415854027733461695759284911346230258266220458483504014252121958925928346436491974440888077165230001624394326017435254848538247082556773937357583698398172774067940754438418992782608059794143429277410333523935563041519089552966943601836318596193858019054999701287194726962697268334759555656529742604316837899734658511222193942564642279269880106028717659592025177383090963100714556993101253681696631357947915881331859415219883534715168405184826750229255549552526760647680471888419856779193122380417780009993231748194642254517796666525149275002880429818274297511602859095840666598541246220074097843976569759173754868432662383571112997048961421492123884127425465955878282659693111249928123703277677815858687432300861857418585977281562551862916843354592118486508204705290730787749662717875274711845985561529245557023217395156287233849549957968014469582442261379170750219228514623312641555255123488921580114186970657260458900286593888384059010293590987499046616772787111447365174590887585710257567047503770727973983750790674120267299777965263994951945035864320413374871036388861311755908217215957198856220092717544093800299132771569279401219732867254636210258395991874583726627531189624022731361521462597435519112190207682622356678196773747614246215978469984718653777285433431040599681015587384281255757287506550180061706515026110704697520140156992711251593386854796123764902414448530289743156653476174528458709466049507085974657185187677838949147869787346492031990247555853055898707895311018592449450874846617878547568841300971584065755075794717103242167813854185132058367874866585870351765407275749227456708608328582335607709563092175329433074747155085481193797675880877605326601583437611513168544632304990455227041911266959042598416645086799995301068508090426007205706576315268383631598775184928350974340405123738766294993139802580394671395398657783034933960021741326696161559289710898709311102285714202058193435617087549180367513507553782502746339216706655234341759172145885197136026407344241805874482127533787106659852959886593847796288836895501716547820252334491109279426792880342375633519195645766949215089371075903696153037783678344258548416142486487271577514776568055202239505844468334818710706088738555771167198374276912613733376144320503271865213136794568433966357737083421512037988616549048972970600249344866853564562005870923998037290055042292372624450960275418853942868896685739212170219540880336400808741806801514172523055818040904710846121729428174216018034900124146754075206707795126582860899448235966615227411241648978903746373743793849552946185058596381277240915816864872125515730755609026226405087509250854438258284694814672156364685119535973504101732295846000895828319681596455987504379518695140792759956169148701010878701647722945713443569572401735179596376886667310783428296485797146829049572548256456362434066347961803265026517046645784852230193837987398644361544333429503050081173109780173653311018661609403845660643018478113226645695074851417588675394553441539288080065838422861929975447297777346292005854742868932851965866059812122028727248013044153214889835961809189546615979594967343690548166484260633232698891114506292647394981686675579082238323105398958002732870490971610534371454888479490564313566522260281066675915181629461846342257519049073126513163301131378174167129436986234629688029482728771848615850445008155107862562996848212182455219803084097965058717078265952480181269069309080400331870949621223371762036291535002794167156673776877795017814914158853360308350454612946784942955871909269261823536033164068545101547535014570457111037031143579788411652046765749162530561698469966319319453778626726956024123311875331402207841051995485673182208185882415238788919215487617582341212549325163210978839384853692882867298382668654338594988205300617097811776443182064946438536600227962757016660332422227062828229878346141128707969970869046869009983849290973782218481568024420355857949034960050875130390839495825470017017898623288725592514544331919081944315619167983506522188782196112019132545606816170432605209744652586042862425779532891262283003393097827953693528229466349058158104210681989489741704174082870951178836525465487520539929080124636908848010978220641662935256890068526609284987534917605030971932164527204402306375428119147620749148140676490243610832614507656542875990110740699605715264561929683721614580492164096805732443885177732958437882210678414601685053015783179832026745599723813552445332540405207841064354794466430281530146496772019675452465629044416165091549860142212174505551396967814000282718075234590157298871828515776290585293143801202934010111240557587270014465389483509603868731920339583263683456932123027010236694417333090862482464865739840462753178279814809238422124912105816938815520581859531959136524288931837545216615370017768925035888694515926662780282534204567239421531200401457434208117313132031134672873949783884563198972447318994554020479391565233133251535928481280599784470917381097191832493750440796517027085772081515059482590014531591536876517897996354584892545568271663309319190593117615411266030134442301249306940675523363895062634373631895484895465946699846360820050134560684248933814633539063274745915310482207141673245373292789741806249016368744202183540232993385193529295940752875224560280210515209897977870407088962614771533997563227569719091217376393694138800470833639097894194646235650246852418588662055910725834493906066647627735791262286139400358630940537489458282592866466137775328777136349734723843865700474629578893313026184816953808232319911165020952860734285985371588190056305277768365872817656543195341777318985488609026928585913260438821941608489365471000523715657801791620018302145499451465999007578734309071930570933036198572200740732518764227134972604880864575743378956177519338862482293862440660479397372114349955215168857491955941940772238481836840506173682142693806064293699451895093446064502561267961937555550792430479702623251550403700375474495955869308064254666985164936850651778477110219421651485556936600900297584601999224502443644901943237729964285265660695541814401475725641921421584740447280457918594132560532371545341336224350130555615963514524896427447501497026064256159337064687899815344873793658477097737255150846719973362639159071016178933681588862554621408607153746231537295184727441078148701526856257683201857794467357658954547582694157175881566123834733730565257265633689540747047038006512257072355302184672995033981476628712281823593872156283052801737463311268451578672511762854616217946764830275024491307070686420437186951906002130362823023627687097752180423932698293819408602004497982673065130725979637903592528807282670548755504530809990317220937085363343629757144173613115270942123416357441705937001909205684866412699073124529763506158637606219946407484454665353711150286181107255240841518906289841275536291975000366911928989914051342377407825799321709533925017141591416223895536254221176484291539310135938868153589448999683429999818753823980372765512832920187575719655367493023394547147896776765906544548395552865093742053227848608883152255734624992339807602256550719507751639630648442414138152629487505928538648521510654071647081963795185009785317000716257245390033030418867275046345710515473147082848710810058516161461484871452570058399079406873259937163495755002013345263724390246810456997952803856405147683477403709366310080063432566118580455242690718999323380061845853759186459238053339517341455521687683751825603124996804345145953765555865164762617954884087215731399889086022387514981187318696031756741047488801382598843867706445952301972067255517541110338374653922662300597689207112326166990188915578594393599023020253625823125746112645535675994208211494490706493778594119371808120608401572350218795957034189296481975738690882962570627718294210198599476870842476871245623979290348024526042109815146110675771985354293540225571363668010389253875062373332891088225577186133093530350441013573091111202368951277173585559276962551486979164274232471375983681515826023991294671450553768799405794176575418522443147101625169926498907939830496559461988389761217787934856983628015853940772615090425492455992125252651386816000592012012221339382196762068496663934971145008725708500172663944064128818428197728591458038905040724384080406260401245539624475699542375578568848605646235064953469367250377267138681024265295906460383507657020513697286641870844963526359232521714694435685329172339487495099776189940109088969604643342136429502962154208080268487691132425123536615069695453879207800619044063348955496776460695085290180158063070879779519966465509496575667978949093984128216778678119903932701900282339108412105140200013250625325199820071007143566647523727198410231550380163318318354722210717543091517170636892178092747623490245037530492521295721457546383494094992565897350496478750982522150041466184711961669780131123042159228321471746672229771034257287348149993150981629348918673287383841183625665303122402440026544891242667248442698121963999250351494003056852152319572630982010488986102229425043397574594593048664375265400028713647049925801289107652483257632581081396689376431183650286739589026761738086305016903136957748749345150831768452831813520677721347920191490756692631701218188127146192253559069919552638286161268360467800451352917890696801651926169059942815849692414600275663351292570210418313823995088252280787397520233893498718620082202282612978926141431506935279954366666090644936602995215044641297597812140669982981413991245328702260317318488902992891505531321463830698376928820662270921775411138800314568511960659609006090479517841482384352958084412569484077693384435180109196600975287056384441977378396793958289926829540447843978451384887230129461543950431845960154961232885335049101096917586682570429093826807804087238207231402672817985989841689220853272031878123943904999336062508560114889667969070926608154967581640814600306757722268569392558302600719483873556693996825156410898487747043224076525320178325724884676770829765942939690471238542742736571380085109466234292036912921777798612789644032787344886922081831766205882309097158199657130833257096268603574308909945164812079464422115783893835142567379028428028999599842080569122548300565176164636374775093319228466752810581809938239333941548520370739922116554658960658090875513465688289225198858229535733193918214836585427034043725106128540644550571865156955847434123933764006226687547649339755261920646245042573147659182656008939781030746452799854952532248179383604492768382723731396900502381992617002534956441487527204078571236330326476116321259908816223013336613251337236333439156834342030531865083482922036330997368143282062400878038497598609225653759306768696826612050699874979894810437853555468100672405598275814098715776250080551294308765534068577742547274518607076163351206694185967479773375138207380238636502163475621360719182622532122065512887614625367142583629732351256635940017102010513132026312599251694179972937952721243186410966814181408194100406382966839778564057476333685845200997773475402618588600210028703487998445094121988544293512471097645743978737235078028602014733765989908951090210968401919979651866941327564706024772839690605572070242919460077346225021146617862787328051812897709631768837379213774117837041121414990353581601027534795496329317992187717221688193799133769739837461887776468071254814782815356562721383681778352363079096920259600454395663110966094612518956948207479031965798407996340619346346500634080858379004732198501118999670757574649376388164901408899357754991643469102595458318250314045441930809060771054364479984765316980442170239746876104575605078363587577103617163368170831714286372863698852528283201117832374651005583624484822466234942728716690539582587419680917753009305456082268034118358854534089655754991738320881638997193853189163744746439677700912114453600768067417445751452898121408445796176053062895114377340771413459148349092533330536791348845936825647433931498057965830571323855264835791206550645028358484656464857453239697564995084445085017738364948031633251658374877850378213374005569746406461160015616339393159280213823986247176145052169745130152928291728316173827546457895692300810140544525975781897261698578510229322738717205990124375134774940351946477329571691691267018040997433368432637978043391938166576435904642398003568926227374960577122191496849917315396162284705626721960226654399871755978011964966303279626996155555176065876053508165131882590511745283779974944010941451308610812411135289876160342439564284321248606207590741535549852774503865368743281037282790425671822307582869141280756539588426312817341462929662495141068197132145070569139342665423565741017635827139720972091983271273843023620048914543644739899268461951230472583895349960975013483930850447393138025701391405154104362273145560475299179098527009382899914526687071178901364283754190210082493825141639032296526978734853082862657931407897257783908782861466762509924911339108624484172952215323927528772343375800200771371564983380978505885856449401251529072417989912523502266488823549593879364456738718305585199242690183711944799268814745109114965125667517603250089300805705847315838590568644104605325998527603788682336430302579638377830616225891392977952157438912780174307296772681675249656844536099252765195621903627574084750608390447268424995805411131218328307708453423771754600465439974033709115553404767671129564896475750718415026371666036123656149504728295637628661973030619896695311874446827134062047254913844530413486753435090424813702790817530606079138970421077290739164469101768011626345488541198019293228897217401017785662538961498670587252847779316018135822743580062182804580129619496281015945730302555804527488651994399363706581101163541824062031474442213960006941250442667634909519235728070308381947699541212961663019256983995905840175680428179507951178668744508998854352828695029275555427724029381666336797860248906756882450411746932269569536586989424706575619090685324643346655349231814225703504928074850561123716344399294490848196980605018962857289828076867045548430848418951927374977211453792936101846709613905060787474858484191188328090476292294087949137420153792056611436133371340706608000535989698498741668494553048056021948662973563571433864743582822011267452801324268832146874726113363281824390416716560460111331572609452809913603423449203610966985072343063208907064954566448002207931330978691527798593795833981268190195187427071640084554925645108564926105325725126588624926361768293816408405975200130906659864519143410209618150209849807205080486389457573343316419318489755938628813575884694368620506720990434307594895472691709278920433860056481872587325302331015315609325044646370399584988042768823478407258345131876189786209319844171150411605470211799606773200772306411726173199988246490956595732701317964392378204220598535427120519861649802475925507731099342834678126529769864073706561636279061017344168812915091625912899434952167012048075871496922875585185242483273360005739824920282298171692658785279258510315054667247888871997720567261657942356876463425103795299512691974575223885208166526441010854647916714433718449541870564519325109013228799396987218573991809804093759438651540018462797413558392093075694268983324160700569407403500252827164724698787017793753555833664724158669815931912067463720684388149038877273323248030621136785524102360773824928033618151189941794522731571427797195099806368536519994557133999218224877557669733346880196107373037512483821485378120621491425207496484572967777030574403537495580007217188186166123911985060247036417946065881728930138971376329250814217194186500719849491754432816243136653267438838236518769261946185240153811634146131369375702428634940964087351682602826436334406846102063816312622331216156774379301847809471568911069513145775696705919939368501061175690303752626755082164216754652784836369738569918339988772875225465482100811851772509314633058715243915170065390136495920391000369829260429445970260909580096494374098199972129057975138945547910316326742194814397809836483522149246606476564487859224650097612680692808234290555508108686221932886495188290455185233356686826350288316773594257281462927220759028056851396728826357799301663671821625910634014109725095665978789020730741917099979612860136590694998691455189546040602260121701928376194156856753478273311070206728549042209928686690501294455615683627618318206090873304120957802672372860646837411979035244093854159274565330798631348739759096752494808198504145174566895824426719905857321691166749388285348322148856983360161463269647331800029602064822314137913971148416444803318776739057045501263527375557568876124193121039972683875041989825794469439709565463024597863124293880541165207841336504393954556910182106022229031511574423886923524939700235937268891975682150041679698204898461554460085479048703988145117452498223158036240561403577158220649999108273619600853693550119716457554928195204381528920760156480509057171555994874423883694024590863052882276594941372829256231074231381104163922557422014711868099169429968915782785690291433262690062293529594147938162530022214710541297121583168029648767095680481946394182271372664635847685247358749015280777609927905937624295069671109350150148729469192763218119218596253678608807600952457577385142535920282314771736939749834565923419248926923197566603083868873517975627573059831437556629668593552972857773121811396714738788668642601928629410554610882843353730774119690503623303158170228408900642526608975505560584067832867112802896432887576415638403579430745046974714109531273430180126747525890523955838583444694876663658402335432864547707978784047603560880539596553277132171140979405638386433706401880128504297311304113988663103480076690521029580229726940010643504263160093183143958685809871438832022070958698077780144917547263435111796313706430042905610982211957408929600071230016044355777195895469637738637283053498992694423734813447092475974037015036901051126108990918505174937753690076239062166207038907879364772402689412645782819935866774679771361903136658594861788342485101500554587061528565184708479649414098182164179346862174869124131820650420540379575310574958503216753925803192733935340908242859657439906438007923722673909597607546983646065919837786360913522095986501238763087788368679816831881892997219359190687646251531718496328143477036759370588017972858193583269854230094547056865856750688914779137843591058892496511818030605619725830276832129568853276870673952423874724752424353220642562208346911469262197687536418906539136253632011152561661201448133348371761373581557833677782985547421349494557890990390852076649890927971179751081982143101281710071963057213444472352618302712184316045608084756538194417327951215190512577044184356891132896603136704542176654859196081499391078987863014645587922398333323778794381399099294311743906143434357459627988061993886495261043035565849581187899278541722351128144798942793361887104353646221194908406190500900240567001184123677448070707482994703322266571752891629918939801959151584589471820683855879651498803098366877982343645098542530669205856945372288985267954323567980206223392309881343632027642477021564987865130670903752879722414547517414589528052822715947932130479383373699036262152815453045687185671843018826321308114780051261576071226166300621342945491339656681069185296850112859865581904959900966377240690378803241813967223430884434101749357755829287896585061853564643409585331008706685641711956788830671714898646700191402852957473528957509622057155954308677524867615249553902073185240252106515347844650780371883459324205082814740627426327278553621996818801498364835175751155901148017853870874755649341203449623466020147330657649539654108373973757507027172631066798948767443552128499883261260322018454859205159006704933973834916531035614703848816134722181025711298141020164843358879113690610149395998978029272866482294134281140731081324348290877749935605704839509259322082593923910092963793546695778025084412308643055756808984387325757698066307071725852541518916523772783971415473084770185568994103058597641793147259836166633710057289354231380201799362019341033504917676785728290152276679496427589464032268056329128344985651182832796694467831191824262369491421313169340524707066054597354366965753821123627921471351499346609856919715236099795528637381672015678971258456585039068943635781566823729146830238568477498837735924426539576018144605253836287154012765035249010068714993934401843119465134084892671657230591269184376888117017552795254836342111885198244352731869938825832268826799118723901052482835270025931114310036408842828555611072500125050539908187141400786877159418539027210002071534702940765209416876575552235065765342703498588525880695762364313252695234652181671578894574127278027404192698644987694392978747753695399174898272730759008893059250660371409015989050657200067352054743176508614140352825783265649126138466246223513632108715295932517667163829111263907607725288117508186360215319792709404795552488115926107483071427240616371784507668293602749845318292899278653357348350830249182000625159212524767848336954194376592918090226566565999432412763535797254253647374179351012400664440202070138817885593907599166148868022068723938447958515427637281847374791761502557475151548464384029906022085373253737664458167395151668363345517466389071166659168415490775491052319967730975446834523460581306002103494882080654739152783680577308395967525436093798856409987364583023216399909251339265217501729805439814757669128740272330356366724321579855361894641589574481115881257526826249966498100605181131029290242964528338655910887947863832679449225620188775681174095665925006012410150078581917708519525108337202460048245113004689736905305915738818962462147611529696001180540723909617562465423642744529904569024300867921780731763438789638865351894145281432955988928562499982954241172286746596651389760588042915501983643098682603895528786411443576439941919002125530528842639181656674166061729287039569635237447770944022406939716932364037828392695175808065582644311577245868441696776665550832148316528047918418031721060506103604431910455676889924404955963757831161989644979811608493757993864292601886138683813207707881078039156525951263456561468563325005320900743644593918961900665759418830590268529619456248058057350121158321321067615605530558093877093903329809073825782897246343169396086501814628781029624678650760952151510118451783375360504851215727880912913531054201219119256775892454177627811560369467670116101999190371302044384021898304006229410678446846104445620773840609997240128606045491817079612368393620175714752792990737726089887432803956385559194640433962321768786553605943722095305664670031987982080966233886581566463951213509744246744171122510513383344949268734049561576874277837809271445396504040567353656971675808059496559468308966330588832436884094074306076238907174045878133463316520932134129763093258150412106572136307275586033459832287715424157176952192721642011223286966861233739772330478241481542900301806692595763627760351843352394580202582335033503704367234861832583701834011630111823204572970764844425130702064020859139660671602183358568037716943009553967545675265547403263113272490548597767909210469693494987758187518126621271898987701063806652401910406590934949127568804315027085833394571182292696527967423598127407242918504668531517322143973395834454887939189434983063008393452940385240461337449822229746569627009746616750329228884934498464685973720035252812935656349414348682437751626068756720754919226003024144985293786381891179245232354697753460634675670189651598740026016645520081306879467565796809683576275678947550736051017191428061596128736466783410263243636395965289869096392088419955528734409900575949925928465205171492686848343639724888492077234711089648976014401010303395232479363539033321902903777129014648778211131085813798254352336511317725273041454050465625123083559173680527074504051000856106605989139076083157405619911103468925437962068993966666161954379663190751624657754451676681080835831192992802779669261822455918087997036596484582537143210497716722397755111810356893111300664283403125624982966554446350742252721394574746602699883016162686614689113328915342800318788767518611671846033437005723717632721187168279722184503337664134716320168615424077852054333333082873775037866662769418193652876871973339344044306355822986109682742410852496744597315375968954450634378014128404839304688904773660312537336100119007008045133828075018511081781634575675603932513044607789992265880948386984424573356080609470245984129349204331571422462645446768378586133288595551277009905577329187681298034868305473894697647239826939837272482941073796890782787742125059417531586112329168416436429601233913213335280493163500100714294965852254414773939306028305016060108894197321951656521187828952648130509897765887180679216706897520578077451474341564810451782548976524784637651831681595932126046773129278787355676203375818520409061047213572723993793695157744554820211403930212374513571825828665889955851614919651903076019725038224506624110864449643147417864056390358640148080117244628044808367747690796577327659308498289652703526349210276929745558963722875217563272225016719383981035139775077322417989934551378778000657461330099990580622449116767918242608405221736862706404312119297306819449457734708922997526264266802175406061746684744865862791018961957259716233912077797317460138095382835587166692966652030789305377379609750920397371147325098926061442026450195163536444988544028145181868770947851220992762442518290773326844925236195442673030888734915330847012659901178673058487019455588242775335650238867853848063437008444363750806354201435343859747044016491999142166503228934749251249909690646535800743993869787637067937399172090678160090450606938431349942004051700456564342554550989416496904138564336466070943191435320510755704855199050919370874658232141364862705825017270203042826918442260900511746588840122764746307255421204026316306788111019311463480291989872374900381749789000528579380832772838628465270850871607043637766654531803079731357926263079994215156735745365988978521405981866927558299200623160457281641329163351448939605435865004901479651063788741928102261120428303903450538877305514238684160485206474650210910281037204258994672091157261081303385970661045249638303281955641485613162707621894366537684202320198872870300875422882159758218662039150087813830708403733861577615506527396526822998031701193658256580487157230123434373417491281933956646134546599058196411272247855639359892761690861671367009085503972241503490495741964457381481593603519958610966082458401350451199959518254639483525316422914607928596480674200776396578911478214302052420655380875638387276608090695875638622115070495354159165030409284195404176279234687216717099877963418291113402269032165327855636952494080726021338319936897569742182754865559887440903087643884949907502828810181455664432656014260155350429678961861254500205067298397512017639066754871584325103681960313086596113789840925249369250468601044440034073229070784359100608736042606845514788341793495842426224861563550791969077550511523218323204350296122491422078018794233896819904448259898678046658594173742015025906602948133996165627193874299248449891388971019629121044336839763227192049464044272022989401256171740223828814032871475348395563153601576020201252148164644813953386771129542860500492257247457945218065455556353213525430580507068438163875932447394113339101660845266757558195680864146704407970751933087328157481194547913378811950480659838869215550807576130598032488959575263729128659931835442983942679313574093672664171456245069621666434653049371392912941134394602998699775072606162496867399755616885811143856834696761105784123085119497360576560706589594352713910514995451470886244947287117908933690420675342033661639915655586251500721695150324245203765791464258222372225274165442673085102035142163703490080614570837569184325858333735522169821897255843557007062676846111596514856415809878951005195609038197212433569884724402431750392946255716114697317366751654521886361331637898728174217567020305796988655840330542378284860551049833732242394316102268510936107664668238098785662325020665440525742918637981226649494308677121564284784159628521758287750391984352055083026634318263279152984811323682754244613464089787810334995028215651876857774902255121152204850651775260977597902951086798363916276327537632911291630293793341102646285785520287639586667192021438376748898699093128745575260679968275487081925063872695715918063208277652296899208792072813618187102376630947171003202539808751287884576956323782885629843004396522222828786144527444032652158377270318603125385844996712301288109291660088030561388840209067234782567593106707097234282982541162780892129552893214586006004705169271708169472615773315949288018053458310246484646201683258286522986478823846860824885427243973172097698231065133430820882870745632189678586309913623404544166591942354755977021699918150371385080152954863033343155321448401069657445958476301107956951474634234256167722692153283383008550659431986999894324420641566747918076118847367318905415989949584904591983856551617044441666553677732233520351946272119760264999552134835037854762278200284485895128749316493691577551451153927733237760593905271733556571881769999195291351403778865291633300203359551636096257171355834120371310624956480305575365314192236872660758988526399055812322723595524712457348323276063922291542264539374201480505222174802508524651195264610911293492699671794518652497484827420657641071830472127113071677326424427489520623209869892703460505081452370564521867483069041380456309135513176397872726795152913416689950503083826016722080327898146365217323017364595973717051963948090474629117840146393581333270682483963034813717104548416952314684261480450883980583774780524223042408282044732530128350901531180876056520459959134708927591641320695393278994765433019768609960764920707639217860928424927030326106603230155640678123665961705332173666852526106362873568067099697167098758373795393172395045177738659524668415203618696663492260453243455670256399598819743626035881073868782141441786955042728091537255575678999683159252236811026462273196270351245772305659651118979786873502028195794014011847593979804403036087663508155915946372054922131870181543976293145350085728086778756352523780528343950209658696765583301717673863826101489182648849552478577645736882771815587300197797280536153234566347643648431245389611264197067484515983780639605078429908092959818300108457849008091016100894610962164944595211310614755906547107025149325378188398444764604028489111863923573580271985373778260898654125306096714556842430642703131488022078807544859310396771830127139805926788071821862819206914001231501091167943354746072002601902918311512626753872506760241989452466295329127346083978074766414292866817398802505889140160548741087596108225962054087780686161251053499367552387463958191453782297604886933783075684013829089842323338392661876503625702728897663550645016797326030660782125940202526664665519457508790977671691718692037635481335158084515578635272546965151555346341964469651857390575042805994997985763069307134664937109996309860768025084862567464873979740711799219667813147412957884594415278724467103915407359681980156669198529444645950746002397173887903436968383436160645006397226711202067292789276770685784341961497371980411316849479191157907201636023478797217037128975775895857079358808539124415627320991686243924033915681220433948094145585043671477985692458628880523934395724741143785671349074402095737885256104606900032055020266834666798620294090265574272423189725731185101339627452198867670280391678463685768958497263115880235272960082055480950822738091881651299662721702688133542864867960245057141528152913913064502066103238443593484163556628745495720180444178246659526195815070885459645945813943997894057552341252068018805381905330734330579184905788744022321791902771254180779664057090820713155862947834720637244477720587364323192751764052344478623079300617662939165371833224981304065610961694615886376779330773702766790642490185572591652866673424084096460216399425955631743442363436165905430650446073085092046787606470367664563358010278766286611461461583933378658814333238009895471832714783855941548975046549086701041522653649932168969192336713392190541613405581795095586109728112018665541893155248447187853361793921171800102104429713048868074767365576617075395051672503260669730007187094483475377650687241585805712574762492446123141983144197198178060903083335658054050487036945711029086128179250710994453501455342331647791836699096594986845825352672565292627692402426356246396418731008939631896222520893217395064646766410462954521388705636228081263305035826554708712226926605163354931132065466058819169230050242358322006986716469584515896325855020567222197336562848016525221454422685513403245635329461558061717487344144437911903021893551888958440179959284644655984105617467994489593633609146376678544880322640203806637333182928912224754297601645364232203577640324379292614397438777724130718678427656280621316194688391839960939522831065953141199000762768293529930671150964350906862055473757103562048276156498028306539557529730515859245342490662144046366191159316193137762999299423483498397614950447463535543113136068372275094491549750591928069647489353480036087426011317950233960616500979592543647736404983170242296221313072788254724601968040238230458700981564131262144972446047358214724502036320522848283941020201356658738990317866659927550892906677210946729593718335903103145046175678399471590353930200657114730335375351062138701821108102990690379095758456861139625791296766822799326206871272132514470961698988353350259830471977594182268360638902211478638924046275656559852488888286273564718272855386387338262905608305721256416679709961855504764105237396485689913690638770949777347409208566879056346518483047061962903745201114581154842379874208287710824647769668458431067820346684293921775492426245085348730730092203629353536060121041865328413691414351340034580469879752589284257178779422901524833767696238866571469286795515974836359893966805357550643075845829516214787837202616787612203653009608195244854629812215114778881914016406381816043603969027829590099070698455313709031120346760278956805704466660723662519628805437531342292808352253907625046532764615689034826017189017809276165501733358858532559263880053350170202655830904053764374878125504719927930839552109606241375262172942280885596305230942807646995232862991324830692395325052909494075926531049502390910054238997371434680893153820196384750809213788960604674301931550911910411527602396252944262074879070554725137184505530745696668668320555667968890453363315375423352048972610465647395966695916489367065248655231903203559680592513486248171487415637592929068937630931969746989714497290675684807488357582193998180562734733186465184548536353053321478931492253515664955158608078822138282988241355936858557312913694247904541856833328256729219401349659106455101630096329044213600308524462098474126586370162922930106005339113732662423790303369911181121973642240982420819916826395608633950139618948554660362199287209673696403330830894057536374075142126635932498090631814132341625014049045988093235278063800498309976902999681618930701736996084057239575808879232553917210108241383840914418278213738956505007861342184554342539246437340791221124370239979481940701079749053138833541614751097993505556305639501277961560541674572336994870514937385096516824209225213543770477374180049692650902347592462628769587423804466396694510222207600588955061940443958935984478214087350048328796524031795991963960589874974892145584693988687360252800861492650906867094274649667492030852663863455324811510387350733300462340552291831480377941958811138946804055512767417124140987351962426153054006418398043762573869233776237514316245700456149689264003560905702710820143605921526723105067069385853835634943769778436967144037747435066668251671536414794975727047359191056174556269410636562971126857816034573592966855013535280878596886441115312977430934498914279605674777130933887906774223246077804837276875423377774715223190989718608336509956535867361960364617638483589127759818735353945594253183490865305744428334343989052350228415517617911734226083631452306250196481840562877532506938853924364832283822676245321983925828340833467719809668949270246839952332166348030550708289154524237456227297808346529267043652394179992012772206234607407341987282949373876498084708251517056512619782413352810091335900152683456449975755146637433301764409756778938373361947643667487455138038750369851063956014575587415207840751612470202847741467512039085219094349688057697269960031544044828904399523990217821491803577425680247665607251255698091714153049720296925874382816644072371720066759534772137957425797802915816258316673610826160993826792060828541340904354883531511924568801113039822233645714091061438688690812091708661863057657310232606894005001159322813344937253037585548622764512881912729231752185908107466305701728001639123843215033413775041800126853747916881114229458946559986749422244823062804620003997002063129936671121344545694497901375288369993583685872506914918926831325585948242818819737896297019462820641604378054653098746373195077659862563769529176638017376501022477925351783573458890004505738345342266153398411774388852056178030826953613294764232762762210828171490218012097700249552212561075136928860186875650638918756379694295267644819370915798405045967081401328806369237147739414680511525968446379451050135652549544577244558198268650619493402284620857172048223477456232323144126621632016782738008833057904794355369232750202840853239597447150579886364149059937047304127629258347064597507151597621083832648977177685328005729116582001896872391741788640687173984355787376988736028519497196980976556428776663010762240243923629149778624446255124166126510681307025611078849517981988795320531727353806904440205703592972706180779330159785339599927781722541525567528259509594739812832703452430155694212224143139344124137710167296353799697407936147347904794862587877759697673090000219327930633558309589383840076124069261242301168048387919554535037623912827658280590400044230835427886579458903398783710050905048528444450040601946181291813437924476635632368986222435703467902560131191577534379852658695609798238809984776940745815056002650374059157200227854610809302881178909744925332360770950881733623463141001281981989155794495667963347077788323250375810489960977653769959365937347484482488358826981535096696474922997940090267818097619247409269875009539881341790405843534487589232798727689651896790614740079411047837772816900477917299975381322189436419857794886351606708756199078690105898957654376251761463853489747601654319765422763388637456586905038190167201319124283391297342537484952213017925867620374608183915879274384435324754431150408749161695775069015404293110787641582932848593661722656969915199148721662002581111301499232724731049248129557063541887175191187205873612936619560826682103336170560844188845246645548184792729520570564577006834358833234144207342072212952499544420195098000724491028328492966886976211967380276334227179889882103993783018717569819093002222119232492619082110566306685998286631074025869812105399540860913357946662280877715655189303075703296754501293119695290585439979016282380724589092526163045711972151489779488594856746822842777084709357551765559561000031906536814181093278258756317732162489078766980908899090094591646906680098077379777755071889991937353916987071940725508967927018523910926631734475427182618536343366353246137217928106316516278037062669764382903646296376295356880559743257207068633263788497238154370087721370922087084084440036282086962870998726440342623440641528531976375419562541840182774696322358595137309647725594495117305562807959664625981361813395399001564758049539998315978646732328786082112007212807662170398697856648851918553426858896089402491685221591955429101356791985872499068365149918001735457484557507213237884945160963565035309267734686775851803905350023452976532538950726367308710721513254899106692906392906723948838171767739552182828116260037848423367488133788643871087487698826993634392205831873793274095790026988307054671834960246952627818008468032970045372292302652459709369563513444513750129233865961300760423542128626754333489513011532124267042472346581587481578004026286268189221789344061617882865066400747045665721673051643216347774674802150116128164846623234030134077010347221633066129101218094060855560601492744374047460894630445806211571326296708978593428468774461931431917497104599091698905492642993841794046391095619832256789818401570488766762408512452673637604992731234396068661068755568160858374716948694763894569427499464738286523506209079747321255328724310684524320291672663275538810868072060416020308221927074089661568443609191029787257080866970989879306950477315101321490864015011241204855188157238297852944420050261835768861664926351366495211905954078412977440833262393835480620952192738864304045491169424969295678060451601872537412883827474786703056852056207376896959176948942041513456861863333714015619766359409726170690697442924134068744166108025414809460783325208085197545083719795760471079250678953892599926525116726632635117864944460143041331895374177957751685113720124841691314789536060053468650413736224639133124601965340089263949088823128369923682834577487851768544148365221125051220753688656813969305204269428157082344019991592844947575808863158334322882885387476542947938851926386108682934473230788660545332273058154230974940751483063834400316133821248685991860932271701795868268003605820730576343035829132610489201120016427196926463163454171717390117356294872715331167757963089229811911281981249824188037431699413903256484391156297731480452375674817516515465591667969396050641816612709935830719281874788824562052471345887830573448994799720984594365255934632984092293879440196686198012601753269594753911875409322589406098529104189652473879300518317187566981676142522037902137002940878764756231864830291788959372947524338466386234245810540134693302773675591677765692697088498914771610149062463364361261893338949027864548350573680750575157521310623552759812031611704089880197512672548498806925365012376578224104738947781045315051190560670127732805492592055638134520715837779463348115222999128692509074748031592974129600622052003787820495826816688107869821067773211627974909049705334067957602754462937523729402459369342219888770113622240831842525355218430669161046985918183476077826646804521958565048464543110836295511390109170740663944671471027527785734176521327422511491440159863815669297945280698085021689174303597942490561374938896665794059691626224514626048519351999163827660913146039054629597033791856867160515515938700408421368804796515737971595588829158868869106429733861443782650136794418152824567131578259267186391584616240927503514856842383549323677946839287656426531225486815384983567075417133323644663219737333506842611964688651719515504176501371414992503445029091737781360199587337885618897497844402084226318754229678932720420958762622721569188716863698121694760685534110126288953100974312843065744615264352148655811796853223820968164163042688727169958292986139059486816355490280169867943879846530971898864972073320865206740923316322019948769645180867202787576868527711103280862797288426362089599462237645951983563538279076155488697449758858701589132518520148006303238147624677600830309790280853422373851485372101126115335308131554475812887579576594318046487114815366037613534122702146791661915838614200697623735747489100952070000411377993853793286754518890851593736590775564911108886386331569601879190167361638537420043598201037573083834046749210924409712979649173840430164888978909206521513073720914096550425653462078004571828140640393844470120728950414074644451361772331044983894299697034668487902810283628926695567701820969689037327644569124643746774786087201002259650356155972586512496947594084802762199710756589301992310277742137029750531159788641132979221122995950392501737095655204349972893189648779366816348935959689706987162463388710718773918620046906818624012818107274308628976821008707849271316633649115448838622219160019303409898031127728758714122616478856636954276839141424688081012341022272686715940390032216260674890720872219500085803374212413115982198489216312687220248662647019063192170361099040849179207206663872075565224894477359520195066929643577571027153689598196562748634318540171310393806412943308124189515074134816058556930932162199346426080743910113213046085953953775878811138409272326588635964565301827824641508485180425133490191751411647550954917220329741156389564538377792454626177032144801397545423128627015079397959833584167898321181657600036190600092630094767173421177625044135028086094517199817149373356381220165735028565544349951836517704343126361562356888066171371959452843891866249778942557224788317992528231609843449277364094207775702558502835129738077061842817654050228758780078198935575959540707891921586040895818853322548454200019967167554687719362244976661840506395046809496520056662090027685960231709411537220678224950207149087106151246102683334405695932241001346606538241210611111541033052029906379376804947419069467654454462761476454493397571133334894386346055928711136471567975446780996136467010834921713157763721708019433470639355747619831920374801005513720256284391357456712711075969637914414452305261443119628587359631022199786699196880811710153573786426824049259164529028069185032858256838308766483612164677596628955526923895591133427013784507974360114469587462360959342682921164549028650873558986233629003283740212832543161393558802147274816859658852065558008839718105450704828419683453286608168859932296301231777605685493193331583926564670407741014318770696550618982126693690698586756432683186227138184733900452793381748234104248276079785700036207563281892139219843246268486768882786999426334086857244273409120614511937410784673041358659606306008056895645696614665269082622793090464180260354367742803449649488150615340046562265383870568160102877217800464990614675878901424955703621477341840751452464678074773834208109697700376290203162489448855279773524995448419442302229883155366607677825833890747320042135828113197896173599553200728208492035742363193423544116482082281677927430473958282769698100656009128301941940483729206643744310163034874783712871058657142731797853690019756514088206540259983279022397997800257722827653466350237778653126634704530779952604517168508885513216305141385036564335981718853624886321966130268543066427513743203913210784747669049394742646491970114181088673738454895287283051057715025475591979244688866836848419942593851626521654753454060440557315778252272129595243660934580217694130204647601223555778699420477034946027905690523295291933538127430895235402295671372518679585663914974615424341405935892321908047542575759573375150529670733902265608662937589719688546272618573335598563591968527445701034906144320279653085296798602883525369497836033261061806882323260175203876366129027791814130220548722572227238494099106543862399626511280518321273124360686325735341887716863064260305865188788513746548845852361488434592195378786385974662726271743698644976154534376893144297728570607624538296432065136896041898061535544588863976523522128263715730267403843464722891240696398577826508862956069514935322565742832499052724218387754474357592034188455706596935381735313509961824578936140590862509439614814865723161842447107899206387007330816978746177572688117286787090029424801421617375975543225797297752965939477588083193536974562726657991198894926039780275128392164770148880383598587464424725222844017439252957665929648617181203979907905920445885375891784019246163829807799861778055763428352698037978894355067612825529381685141213368940546965461390084216096619517705626298800071686992484612783987140273007010834039609157993053252229820309257594215395192549668827695893446170304937094577917065882940911778732327105999376457891170455885851609959348197679873186598637590198132201506411545705957627044471527240519425981822859394551007752907995843061161900392314050427172927957601023610639120874815014798509312246796604481096569587334202439178303345471445778003308477087932030280009442763309138811898009279832643522123506105145450945528645294229387598814213302461554827348458868811274548859187725989154078844478796227748262836833822061486442088491401816691228140766244097955326567205003948385701819730740914924098596974603277037624395530231799340325147816105219181387612852023570864952865363868789611852663472162843317285522911807732411257159473377127237865292199810359947700118954417073044304573909970585939663514793259697044576323829130574518883469366640557135742749476163033551535440116995984009439225979070079253687413360885065410346173558820133232075967304657605104541809256006717961741609701398455450260636260215695860297067949354618121675903968276075971330147754393327790554628121644356211621201023253828915060618712258016070087340756588437369627599071074016159465315952316518538354073654369883659619069851984760987977050028218714861230902447405766329612345791266800333920141242109393172249754200301429042501295669346914771612620487175841979924930911242920653180869528002505168569967573899226513538576708716057459831345107829593282286928507326173059900017105274046080196964263175551573273246539369414157994498225120057067131116071666185043877788297490092036065682935860767287602786293889393304552750783454335957336039414166540492302617139340283419416814640789796372424434357624232655297493290180032001647420898528200877458482748247534966227765506839666169564375600806657137169455511643841094693467901539951228646168718858781294437307444756106948050070282402085176067949420659436966628424061633964445693480536381123269686586382155014786145227453191062167350872462269686209783580932003308967278094350569808719271344533563110535152539023188592047537471794106915217664324960692627952775563458120295083905420883702926869083596439881967987111412259680210215740269033948107142060589448030701501681017244449711300253028487350848429999055506845093892911873738838814024567486648979124093931231507606475913890375929200818565344180768290784280540303508831843534090854966937803078923398282184307644270039674486929466397034654311281336384926631696054379063216896927387962685516782256266323651434227155139944110627541724106781783842997252692996397409724973397319129240759257686835942743281657310335839257918450308748913356916558341970614307087005895374104676649047315396980961108214290999344563210568540189653445969117429084706782221670016941745870739052969278771613317992219785260442605338440550626048921118577614886860584003849951457712729955738310434536960423437189787890613893247652396027284502107313002766597691691364118453245561573554066222012331683505157653415287797069233189872262468407257385227637591080208317496442609124943716265962981992381052058448942952750173115825172927720386477917790359720005952994772428562532795793889779111527380068665647916233371561457896251674428706914534184809447108048246651797068756220193480032026010914892944493366899976955567866127428476172739616779659598032992877081042169785724962801466333087901458764899728848285966981819326535195485577865409995674530615688832020632593533852999175394992076120289744923045170871789192660961024311536697680830853446672939459146094993689709411043665619193258140752505518306898970260653553364114212894830802189598946171566149770641557684407492094828545030128517915949680530819440800447317975326379757456774897562901018304493547422749692386465670325794160755845987441762643856780094932420761483019150291128343019988081897446133429624806448111478100099835201966936228493734337872192964229670440921245911570070780369880071499828132582146824413213736214338096042941124046952507716771159157621818307933408987058764644615182788193386926889479633726872478117884519563870468648024033583428658944629881173168619538848850346907853252613417109483342777487864949691066353607252163470307362815967275547351186587073899412573379394835875524210357077041675345889604552552760822619549343898258258372562211811538968782384206356016736593266753967226183569793974786669894134219958856552566753112103643867090868420810273645240015754416965845722151284850992321746191897577137261551652399808873740329946198589601867942523351061137703534055380148208590598423022800464302133206129496315108588659162827636766875363888275844426640857775462459246554788505456583727249223124621191661540966076699755830045595814708702171130363844846789380140720401670439415091090180226210706673879548324486377910414564958820933045088147649696400903521770653965000861446584202664861078497460270522798702601771790038100680988550183310337386961778826478848613322923958901351913580414583292889241226079575792933104313401116610575544830833130062360615689468429646912764040099922392847463612921049956648481338107191489346018231211348728846723370350968930358140975776925280820205559766269616129924055389097265288576524787418497145114801587629802203898873531247785357514783387350789069940285743321284727677888992112101830283863466602404617798105897298511796068362645370847802904901924026384746126981242360599347498277413769752969823299930951918118786514061728694082509843703314697821767764209148827103793446477937497210445004779222640450434876754172109864314840951909156823150631292327428261303257215137327530054072912141921571654050740506127715586872622427556299206208424870852998296495829507381600275184689591620635245716419797739935843516742757150980295793375408807136875053385906487075162461511171861640008418149003980806082513956667586073887684525912667933534499587429006004174445432738815436504372956253945651139530932161370099272711389724161739545596633138380480289279016340311016502923964903295170876295251240290138025973902931636674476891693098500066570908436367007828240981297682323944695237968929991505808792348441004835545239615381574965378709080227839583319192249880118930627842840599014056955149824985251929823416956677921844378497575232429285278472906555780116450366733138757599598503786370086996441229284129648890549910389224154462375448686304838146567916347311693034360170482340795238002620209183699775498331609187199446852161920444349757079926580354127010864520489404882298973604603953682810965584578963096319804079061893791038534350978718264605305331466784688542626916347876977836511178595758988209729333437043909311410789268684310297319562304141130535814364224574008099555048619182323048179988276736051246278649469826271867076422291683403820087262730642238929698236143611077749647312251533960402981434412428799092692456684475984170774880716968859609572672402221894287028341050826238348492374071215753010697456599590269607948543316367549643238830796725202841985397183232721200895097063873450603451634108414261356200250265782388058141554176884790260272470464332966588043545890434563130318905715727161937808504442589184508265452162130938724049699770891042509706789674233353401647421246013520595351489801229593155419348477623898478266073579288167727024305878916456069530290916721617911775104612600639378922614674090817270962163808605715371600807077765341139978573649259020737512180778305116650777986129948379755269416094741578524076240107142826547687120840775124622992491335773848443529925222114184109539296111391422494034202351340515714407266139280355705539433099409422264442767204120620370870544549442857255203715318561210430722612305621806686005384172485194116806649498758398467471949681079338658986650692481903122013295657364490833150667098545490963461892018816218115757380447148648445466693091917196342978132538233942059094097480653144305213551754854329109299994342352537874375429858675535797580879070427156457261327032262194293144967453477490059627998262230762185209622172586097885259434130970241981960684581371738505278784032165116452027594619693972471506585479357310232176010182993149583733313098867543775864848999248429922243353517363507904473400947216229577810755381878500110114436406708702087935618576581647538557142254324912800090935422787936146905062088145703003493593909049456100651378395868307181015231551120416780944456280732430478046337926934434298626267083216986940137008842404082026755327393508619816994748259638249278225689652206974609205884790175913340098649020354040462855093797939870426031980646813041096593957139919180098335499791541079134398807446364128330156548025463119529682850473185659225794561513607646189341828503460264123838704040775309105982623680972794319339678107579181210966115621848565177298499558803288746319298366109073698941986838083475639070295345861741011635989275939882937670131160236049093807832427587001254947047392232079924286592294694777093577392392869701786200582296130379860245229700847291780437160860783984096952590676945921621990345187854987105313260702827511127329094923210177071541778768817265474342177361946648348833116373211131634467536321851268146134286319305551430954054125163528331256489298363693046331271159190918360610340732686936109887956849912779986787695460401570429820265039996877130617840117138389728453631420239205108685895541947854981714577595921199210032644387356518503283384014228135858553586648239567796004313394306054173076033278403756414823971990297409575296099092053394525689621398589375501329620780407753785660010840233701355592554561103689279154541854477616828898255724544768290348877384035886312632423893466668627589049611637332767847647774092855769969337962907499716764290774927551155390165859464438915435098818961312094481201194950940332944302173206400856894055183537312426348997819212027742357757660693281103907723462111110572926426701113250654537300388334831950219122992774094336545904096518561712621017716933149337345853738712347298662928918577647587225515134059657833648589503113020459860590874313936340149206335321193965989683099049167584261027532844546468302321732703176205661827406546614807555988460844427022191499456338847254295873027724393201128181391227434161932200380753727071789308669462979939890654547385412857548451352917640566526758718084622919301999941657840556441516536012401335334153737146617108901647653162112986176891751158529790507752998633235551210445685772735441761820241946797253340432912035599233141618391725679616827038994473432150327544041940841658233137351098430290071646460766135715689826305332842978708127617323359017984733056898565012362882762131140963800260147788060898420562404328156544529565801472207367952302342992336961130376654013217044695208208121864803627361930837225433338700079996992652195986946587882990127123623685741860108289986499056927798972621030076700909659650426606597179451954754400127719366812007373030138763202054903414595430212483698868433874722163981575646405716080264569686386002162659497691023637295891112469696466743748385734606549741736857205804146900290291833778264238358791718680971795848004954976438415422260109958298561458276540311567958956335333245800106763338471982292217918040597675680557683634984627518838080207353905972853698059071629120902314901263536600331242658484846462164881568197963342254471447445614361809785491826922523221524192466689631497313196566763867749751776914456509813837101694066536558862582483454923618676255297620609249691896027937116502764815957291508083007084206457788306399759575477736903358053250447505728872713668588394158528753638712250392133284258408412581587915774725122973888843098589161176161121086509727975052618084522109886652342249178926586650470118543407951483394872004883615002294919868322257282189295620638765364294257992608847360900892173062809412027722517758688102864270853663843075338043314858235679077712379541379986355267927779089384143073243532375501188016411461388463190285327114316827308933003688242287287678481551262696706140803546489161696660338781828181318321129478966921093249569834424966970405386400334331829198622191134817706995957652823346119251667783385045926613700881971098951101529580247976278022822102088984170259505075554396359575285406603625871250145849814628249042807032591326831170410872438071431035587169615970694787200806602569185994153353215955819173674480296370745263781193169576792027837828957280061190865290008466009007193789085846154876368529151049989803130624524914669066744791229874592128200395609120546442814030166501132628586923153491530571729785134760291731382875932868289399274756586017488792920869139326930901381072691113342059359761244511569150639112288455874440718425933883050060486140838684007992410238738795128407560424776071279270985868966600146839756248609830845911683094133179912306433284912719445175358885279796633216926830415638408811590808643520846655403315834191404165252785922085955653159916068714938043398273771519460346634806126091522403119663225955213111377424396214096184096370046445567450306079745820292984055389594388406217385632648438835374508003443373352964504128428014452550747122571149913644778310042778463645520510797465714535255316295856303446647509770009829857326569557799012922025185463635286009167661900413632283171104937941098792565571929173536686528154224366615591011644483187621846752046763531666054054876083557197068729327142067889652321413577616077823040891500849209474245960075010228976833893063667426608851135369506951115011743723515006566829874320943925055219113118614935222438643933595493890926551163714394159952715142061122482955831773107387973268142156269588417263707369989103423306447325051315720363172812919963952822493972583700959715619904701819321925750307068171378092873581644695998615132435741711132002338850306158167513884034325192285281555793178044973385320131696714126532009802951224642525401190224445301676687576720949793807677644587367338877342340935668295736857337190989408992308967099477636780841989784165385992447758370392169651529543578415463609171282770557180613255376706034762814532494208841694383319769978211628170207355442561683353175782424364399716472369185425339362343357820065364372253270461398478788168998859020298189326389744875556204890441729355428564202611403586459115070594723712328453442125051187192242720136059666849351650579606244361318308233703710736120226498555438761973379370045099599744476751973365960314906224515723662268781757894640637372927854399355021318422175746684785833037078585719609010417164409338118537325710947988143210328192622015198053502447628096440398833201974043381045105189246682751510619562239570136347097924375574994661819320498771759596699698758263720342572342476013768916814352588365064901838205045862756712966441115951449403303804420198585317961043317958952810320780013119004685510928928810501100792905974448899620648295443782075066364836164176636460482233434337882386677899233984689760578711856528484830057681337613809605511766894583469464432613953177691366104321358668124695892392037319543235840498830437536247302174366041171360040999418110390385438488275478371167583687822104422460198506813887911890992522215653830960985998742430997978828975452555080116442114245240591218076433910452918365075680747904297767752872796350947076826138685993472763968240303672768526357549669482079204067485864163729638727286619602203370948734751352305646899644276500344414532455816625106060163194479296839007225698550213711130024996354947921575721720169191424142495202661241824449257046667528950615724717712781691942560287690343645207067446103566928999382400588241390313858829913235206243484164051260789668248818715334586626273071121219948964634137049969015895877378591051964941897390940852194729548869544104776648030544076704875775932527009711330289526062883070728019162840231852656013483528217399406858021152555053059966822173795833945028782682522136282010436683876966151672035271566272338157742015419515656596299667516046442108285402081048394176197164860723214952424307072434266916842118448585290227707818952235476666723309237862660359669590983543689818931672280507231186225862612379804473828224905673430112476104225942807689495220335531187223960239441089300326925535216762814966378850266605636010161966564328704838358372868269351411688377945254265870271712016315762972602185436559558548513415749040415547131547428989597318329237527041800433357097066309883492017541183701668625327526828460051370677401263680942355151487207164758841678489589857864638065636030248628352528833918220104422356872745708780132304029131408099517976875817209882241376717860245081763306315194451937057821068070058806451329230898104574560311882506622479084532282888494654689986655995802233389247718417515895225902352029536268225017299886166637366865572376682134489261730863455427208177534051509963676969296922944786222891260040983736414914928124356396053305273783573954340891532122328593975263793524385816105591082031146609688317696430171544400558895390598453730085777416640064538766137714926416297749012211568001263466443475746291688197377075006567057628305785712540492846087096281496458318563742872929176707016855036629198545364881463187925148520222102868213967693138392711849445637172299866754999188998936725872294509424753451518616735471868948924916134985747969460383555590157583818642445393371723452031805290837194172550871918530476455503909481744662337640693639100934634889143918520214396134866046792389445159955231404102977748035751428395606214694627029245655247117903559614284616483475238997379532694492351872916229411097152869092827948240521887769830575846064806080167393539007770280568719851119080466899155836063849541591456056946875540670451765486732855336938656629514923427233948269181734391935455298299706033804531756991411859629978236190425608746074334777849328002754467702483348693901143322232305685171394517996397881588119659311856534510482632655378857913408106962442079267800588051906942540712031454147946214742299652296498488374743513494140734961225194359245340408666892824705408970454063203204763193135769636133637843158600095433865546365135447040401096244125713906122705600458101372004206325615391682602700673032957101385184091562508334970108779879876045046531877927442075604211223899141798107202370729557130940359132485511549163505429161759987302446367655056566586664349840189342372756592749679069973833691118862538494318066729382876129414875031230560334305624893841838789515172340999070668907111887053108285154314511400483090969257060606286673205783763304416122543436772043487992181049025774947456847669120065711128643864595227679285586034214528889446103814856922554770869584513666434000092388852044422288215162346958379427686544811137781533265058845166042702217245151326618493545799625958266771803505446351629336228292885372884168218214048290944666066980556956535086147761395768496007125824736004094781889419828551262291138328399874382558183401989992141328097232712670313978322613837782386732522552135346481887616418757069691689770118793740442399211422865560448312347511889644974076368211330866876978545467675376583924016722026524598514846179073268511631402635648577923396368942670475156817988228001470822768293812617073016899908676476675026352036316888417240423207306346431200020797184230650928779715541871166102610821557560300613682624645726056650396252216791829225051882453220960465361478172337881953002680243522812042789794444110154282850792036784158228998526674712981044147125579721170730263724025587592865750939825602830700895482565183706217274122649398034077243524411013575181087374076004300755603970225975330848961576877094320425402915865711238308683409639909469189209676484938182693910666931009473837241780363945777145314654894199273810895892801317937518982922361139524585380661761894259132997444392882603571020715595130726604702130539577062337008537171916543015214590152231270524603365269864336585564141967912745762597381319415397594107413736793370000515893043279105858663185475725408041183757401752851062412998916250459648021450273552686264239067879949028348921801753378318366221201918170076777272748504639762772080801958573926493147876985308516278342848874241939260603795207667305947289660959361861242513684299402614614261532978019528226594043899614736105342875517977520985972347572072192817591539146439937291655748522992176893567181628368069628523148966364361772147112949091673900818364128912304593498261848730648273580352949020732485797294043095778033502344241771719079515020074907922832935069052317728179338545784152507117473243992477693266132720042243829303033372853514383173942754830462577654918909973090021003283203656338006607549954182360692334372603501761877702183674517704490629761787153775876554178825660074384591208677517694830491403559196965933515150874131150270421202789456714999700401124636502488289784467318383883166524560624044768993813228372778926997791339558665029183888464574373955615401472158303462177858259775574087106055550989020685221999011258367973939993462693072148556305724098858448219570701793648330639055181284006173056295288531538066002083373391832893729536474193936137641741694539259431441041888048238331156101123624492237569956446510119300684462658543324676887668902156663072280763303915596530231711712119861587650211411563411197087366043274723306972999395391951359578075658223412660423720505282252357307574108569875508141106524780404342911804711892768454121364036949190302342100714266380595587338073524217027068400917102017454799939165295037989946965801967784263213637757761126402783573447889028224428042677418302937550836186880480272017131652574911795647037130922071865559328286949622851048792771259559468043484369401711813927673837994436286546960674937706740721587352922377648727248261363149950760238637636355561179006801092115528872536086405900284750730100519278120107680257420982711373415534467440017728225282100820890660304698888609334917702537577276269920125448142627137278891921562181779668611547905502776670571982528900877675537765422551150052400154345582071393911071225895405487723361729674498332368499744232253875139918068927953392485987016388826152067924586171561316486332471446537379199758211268084112906319689295982193637927259837516046551959223112482848572337092916970895851872615678173559043298420522013158921014284694418300962687330013779927320130698479368433298085296795192989816103240475877773029818337312063877048810459340548495471710962422318894690912998998978539149983704646484189121816469844975668625519823553562855793456549299284931248585887231341875381186904987458001910674955174433572137483371799871514064254695851217717151827591732263683676699200366412453462419851938928505737654207338353539539847329486328927425020280798500331124786945512817104793585477623350460961351528471002718212144768575409426246895943797300275140246055263073607556121270393100302372708238446268978666918765668666435533781301570748555314721837116601969433869788830408945210654442178117260777531731251506979813376453818914869668304546134246088782098852115622207563734596243733296391994181558434301885828857269564905641489982229869313393439416207053543034640439665231537892469057373545535647731152664243311832700880448511965030110843019938174057237947270809755497313322231095391376000832905844355333099201036916584259860459624444360082479765811353887714319193459863184880035952486283496726838572666006744948523890740010832152988903299140172529235545732090281435880792358006730544980447643772569671741173447373787982349796012571016219519996138805176026858040098950455178419265220046289022667767636422761905999969500585173868716899478462325744309590079611744969945172660864221834934013705098792634401851256090279005291365134621493545825608598969504436763544835498618627416756145792763483127284125522511517908286351130934069918448006738671828013704922956202896554562296288850567952000499860677801315247619397104212282554160610327517862168947683450623993772975473505604610252728091246075436405668535682352668494860263985449051530647255486489968489003465955631330040764778642500980875057417402531936002721077964569783401547126044432881859094471043780029809337078438325772463735351512669141565150307695000585972420835091606673049227569249802335931328138284104964809548793219895999436536006168500442428448198613777826005489298519367842628085837589818028081964530529490885707049097167560017398529310682939610656338770796857584042996523019147800894565637904975424517383857603091318907799492661243616619659636853194844736147463559457230412698976325838349505208755680747707048424592236173758676853049738033273898597412251337608431054868088722456914676325822282499370669828049263118480014296945109484294715333273467543532455886197618382697373009700077444088597764982449761691199486095362181909376600823130309177989186088649092630185029427381869703445329907909242032594033065785797586509845366994184019054544344489332547943673379758070452067681107468797749229974579633592559099570756767934219533128268286163141201392855209619325390734147875591957514441967964303396251876100241634355710312951756509625185778971775374322194341808298800466264070160383220359533451760338180127002921528292725714825689357427393326021261497913793000238526372554563040339424932350456271767467933568571219162535145936600362921676471700938058951729331638898726222358626667963477019514017408287082962502039233006584359370618358271669215246131436590424799634283545855688739343944686421944492462720461930470671066650338788417696176525414226523034528354407921878347420682247843719003752434885380823142419303740230513841774524622657814418602673155216108125773579387813392074559558448133626680464111486546434451129885844166322859867015150501408420412900678593859737535735131607825992320326540023815941496408829290528555856216520352259633748597390157157390420313962955752552573392596341086082278601625058980402535794551988071372375671138292795664206433019596309531556503455090917979302024865686353058962427900723550758695562976253217647181620302382395670688801096542410640574083717701267769075188475473463559773234531980619388472273396399058724686907001597674972783018120474128758901994606358387363316811968660814888653525325075206818243397776889158696475487378329628593261596218701675333212503771406540383833317391540136199308148234341533380228217053714531807138587295261203541029329744110039564211966359117097568290252608568018100161463411926456579489773927660693049041188996498092282007188718332041514512010830288850592753140442596155419077356331821153811064598131145104686196413273285478981185768356330878444589471249337603569452244431822188312148539880848444029046324452205962931092572241615455996445169801438253164650978686965336309995096579942947525099422552311443418104485847808796738448360155929231778816291166322785434508282415851328501045966686846282066547490681875627912142901605008589166353989323708409010421198574450647968535352198257975737936020427372562241436335488994179914313103208272821116633375638974017999349652681931144268479661174294611959468522971291003218325537374002514420018209995563505055923486702310799259329636307855069781828951358870505139551847361394178464273692686155273974293024478571191191478653292715776230957803955311098324353829629822630784472885932806283912579319828026499045409179186575518889108979915899782961583762540404195666829003836359267647007457473139933211695262043861677913842381129797029041104017818097746563637420706798398857227721409216098589706849328558345003327779728101755396183642910816268320061098371002889903434044003311418208941014546154617099671374403131508313186100866538222613972612969846380564240146958804817602781106264691095273635637242994881127379002216790716002328444511418276000738214912567444964546281766237617173294342441191910540596302721134744699917806403477031198943976425251042602251325365385914755659302421030785433584763425333534166364117924511538734233074691883261339417328560862998457112613402846785505732674194968355259390913145474773188008850441275537432665181825593538517721873645058346644693239331501025636191793193426038159797678017572708380678501383886400762146328081371341277978986849381936495556763064475761179079735710452946238715839102901554010580364694222631987159036432614638650902372802995387611963692647387926108736043005465937747217943233997649091312915447213237627094764775297465066547207986051087121744495037006509481926291230044691491278347146164047512345190334662662050528243429917135903487866382631106842897154483424602525966592555687972786079877310854309644166547298250751181188844283957534816590330403064601614517950908564148293368246918152500864016402313308660255613295431066759423959681999602492639518855969665476920930870242877672093816731642462803096526289926992880089277300224131394393394402049920124105851368224005136999001088968296857171424299709823185814515661489285632868607794144758438425965947252939415114992400550942250164966042298112900392909118140771957458329324882837488508684155531884363178878452712299166437923897698445859019907813776789350934551979694977433657937611654228154869248757795530440767346509600250169567409022991226311018213889101519492679752998209718350013411307643346494445276498828338545642951271955149925284947763441833502401295071158075122497011037676864521345490245210006561439328084784544778563521625914530289348407154603426619514990307338521432720720322888487570479661887544951153980358652879674630173361632332646201829576877252675174677740297117616670080619600784015094565532546496068510897304605742034039851959467971511222266961531273098309874109823001736430622124110890497864034690082782089551908376625691034464319613176697085004768111702305461205813431787953788756981103036787092984669339371240755708929598926247564600036393599454276938878843503571380497909123550323814537079571082095636682338344396623193051907003779493224546351815410843903836280083564970525295547674301780939132306364292782901029064833251464773125891367143278519916174597092275757585470845233895694681054563670939282808547717924199742318636153809477948768209065808643918278699592183357515901936298988741413873120189682843457106911840561613479374385049481190623375269759004068845743012335929739965745395431976911331812339098488620976303821022745105239027609473799547797441032463850863068860174962666711551202819857847585079045340923113356278113029341789936815037930721938870357896512789899200214216453841788898924427261514393517055296757338932194429955643877665062393588660293169946682946988324730109702169999757914886227047133152580858780706855503213349709836151479866651063739753501396724538470107912722739003195582326269307821257058591850856042728207038274665525373391691285575633777891561481020295893585284814939084727316449454571246942650525169516199448618841408993442057512696819522705889509113521326350951040096436526278429911018037829300021489241472594299836941478043031297635551781425390143011080714193572144497297487401753095510770686314486543014033213269748285086371722866806811778551673331512276030296543121328297323857593915887623374325456108169270912751631426710698554763532350915510319872259179675926021989067453486145731811448970123930828439226553079674710797465204337063847293418762653561976845300181953411043470219312332952281106337017187036069225286354073381494213972348180445017773505078875584968688456026401881443680279597704790981134649823606718375482112814991493191494619323951555986262719802521367654450539086211682938610960701900024085106465115830026979788998368109759742696143610860152842365010051076973733771099297626615293577484121143989316362506914754515916645282365816770301617784392102607280112960069204989475528966981233506741254607698038549448330855433233942996892174734674728363852455131757130878741094880769316020328521873797502614248390509372365116134446891196035306954840255544099420153001990520316992529161720853516733598983450453913078762191161392746438111163182998691346495735452063955158106552978854459535292769110368228169079222283048946094105420844462698543215199108924619244916912386888795742543583744866070240040435225500735775481902748394937124598799878243846549903743076731677242397729846133413285387257207629775556931522139090334174610463215164888397887689896165825898578316047958390047396471134206915909929027417797152873782633821033187833877436545096392265904447239527657239160768137439204926526336179670057257926136403330864092757715883564077037255306589618802069848967380936098799026075548924252078944909361145707075443321652069430453354921943209237415984247700582718280846557926041509284824640383608674075005443547829642634924565819551937716456934529441735437251322491559565193577806942675065953962550091896243642777504100412494932890243823356718217976746432597042860603029319601141860302894998661067943649631246111074073875752403910766276679481186488015876180387779219987248246275093752044526898853005686269965502565455553729122181673051692816538119428498351411690521991647977107775299358512584317667722779997906995259529710471018245333979716590205942264360281583534689845293189369241756918515746330083518694687844654673223736270920469124271990106849544483353234475559172279525144734953835356732023559690196716492984065056727362510570372371142179642956077329464857851598257823637214030873568109626620231512952972422048566734115349293666301928343843772961824592743702430814535031940717364947469331362603826125362231166270226688114887592874796022715666581285676856574893075974554296569488115628716857627393291686851886763968748077422250534187113521464678514853076703143993886782461910832519373467545521487558131007517446702876899648976496784057404075435887714475516563805161928953774072619939358826880521264129496241244231099707783393792308611163043127228188596550799033108272861418393373915986354248354524410914015333282010458707919885408385210623017842328952868333579390202650532534591692134509640538033697636589775918888309369588710924738526254763620485655066506625265644925869369830909273413438145632826899910162477778865515205075333028978604752381443049480108327895298482287766067210925487327970850996538386171664389782291179298511571846375508423485633380323882101126960000919787040715246114062991450385737084153231706238700921331997364859244433262468915448209815221335979579520323657820546744212036153808983833407887805054208089212104404438705686817913251031135592392535851980255307901114514330643927562534613776060916288486634090523667109762401466239442954512826947821409513688686634004664110113675439259855249363691286662206038972136248897138183979347751021619148191457473153834230689272258573347043912883145552865931950323958675284937424145169279296365331510908927138453028320319331409978283783561370512132849803387240711266525080807794443004606559312862962353657816239202853497861509496012758066267919764146856075653219244407828168555062073023558460684790195932267894645172848632782257764669935893010349629703508296502152289793197552024159554249687161454295017749196336240202824513058063956304004774791420942755440896954840049367803043834614816815017968239342312215009010491337598747185655704054018660109912183971387956004952385941508315102172582618538447302003206830749682646271328133947032332724432774839253957746863094342999028322422842677346757839571386810086590350464897831828300342440550410911052787602117093617162900311862552229114344850545157141834778264749473518297351582409507370244361627247997489541224498187612157085752418663086216951924864960439936956095458425636997525912152920996132984511312293963431133393616902239148405979157346094467666306148376551959708429122387406933224269104597739204590433834316219635796553594346934993299537658851285025767125511884985897067202698299232240923198670836732481717357088090440365194570007612150262625410465976027837218956504676825593812234685889365416699456183838780443514836133567011892063019855475973450013495801921962846161652530687351909810250699653697774337578428977483690572273079948600019309248880118800224178913730617577951129397877001941957764003685674587042751377751991981493700052980979062858235734807527085059497653896348221857799859794327577873692609502072011598445302655665105986719141268738471529779330530065412975261304400779751868401529921623036308020574424482482707516264650098326919966138302663809171036422384611643099767021471635338405169568834507355554249260745627482400123062398036053043950946599337579038943049274157381306231451432183697141726513933045230708575173341061617465940145472400135709884283211735547907445298296868582496608167837407883463502660307292244775566040934911600788521041934354203778450425313882546319645150175624698951405506580748167486585693512541698684320571626928076557796339438887982424536647483217176136247575149031108011297981900504476753522223101938445705370378990619416362788491864522604113031482515853053047766600354898882227533873310064373207858444383774170799856963434120792794650724908462376190433190389838381158945132224655999103821296158030880594984198166404086050731385367372890548624262054602043321228319455619068384462940793881373300006081893630967615300681001440432066126866722052085916846198660069546970230143191424460103407351852472229548770590967244039140165566800477345723500724667325168551089174585400461598829421609533648768463019582134827387260902540928536399052587966706391946293842450762853882122876303114948641960559784800639622388399279456329672340134100774854691581180396787962201478721065463544230984394140593295913533821071590550072672049433461788355077683529497648007770064247972962039018795256459263568113649657818525214079152758372813682672240233325145139973788614570746486344748931332748637299600220698588265588408013647032766460981308678715298690340316313075179479989371610151519796144109241906291036647320729024389837078470496429031985436505415239284322586285600391646812385059097322202033134757859968444685113041590482289766927166922042752749717175043888532392908684367892132174814310484932350508858546416082201970531103892194799900198563845346255173945054871881244654344401719078967601018808949174245854584412625675191025686270290956938919753093091166061186893198093599809289197822636833642321141401408509471579424227190475602503449716038340097411619556189046604164423836872667879377464098418246683815417599413914293707492217876337810378091232556447928120862105460901366795603699564426161304215787502878939720104102426417293273017914035224367055102302751367603088210049763423648650699000052460716990615296200196964815406085879028003982771214900694427091009190140251087975918723295192019872457846205994049888297478938509242775055814925878259522163598721645321884342524789817870792576333890956721081704902883198802708460640477033632522956906613779306812596149649215919159177120851842780498974483936125282046165484928227896174187404973241435784089660306281445890525879466631223834288027210988418907355216943640553564086731987123722818530077870648440844280758610675376352833420993747232194613568083297249730862335665787786918413730122914140655509207280485773076590118585883726364817411000654289381513715800953813978693800069504884985253207074352166588687843056911270957132303149983089387516158166995469626076612890038434215825435174854205320028662617270402933564048946853013262430387074375432429296525356097209927491321973153153847948605538330658624622255811224042359407961330262070807607092302126141041476038638879989971471114653006002516467720094946681221945719424577474123161485492158357112982088428289991545213200790238504918874861996141407864174097772313189691442801028294626557150172646790773240391061427043921486076389690266783133464683234741342293570939811479648820189695934427532666364178228658864318442704727075019064685998121159486250796762938312082895606304444589277326864954879466162391269940107509400858869746254119415563761790178682539095194804366055931211839151989064880264817436942569995114770872318836893012693388986120081832470812419390653337779277394565335239745778149935248174945625697673182286400079741716359808001764637851807615921642322336938556010991381298856041878505744914641789092964374686557284842153375252055713555144028282639520929453634991919520169014547565745730570750428859119984557083337626261553957094788016284323137652835611376059072627784025451718187429265134062856209484353587598607273883135625295947245456757702726115077707661391893624642881198705388283672631151089170306428071876212807562747635731911752860290689547714545691981933509200446398452902960285828845081122117414913488237534479893510588932337660079835265641394837699546939211205135955644451060385901741890637715012564624541169711785074671703806878816914398278015144062694884715714348006569177269110469855306286709834050030162180227052521198158383532326106216518058543514182538635743690196574896808871457691553486882630294338472391062314249855202849190642388558217950096682030043937199222915387509316792132608359407555935161763490495484000944363927801687203619392540958084193503870807751575576326987713467031632892684171839712591107571717530007664813160478635050602879694847478414239051444865278526311499315341024887013564929148328009809308229164197997594684235644226917429409523220409541988741542197984499722033792989254139750237848095421554992054460565772502558659964014329426279220843819330861341111235154091352430124028738634595090562205854654060225374396422898834201575175955094127417819455516306072591968730841847347444165616050652454626463332928200803662423807529203969077899021813859837576313264691181560258470020537357128550645791250636898168523144173785929542790277628479995894758323236969522814508712511056500228158264609573213721849291259494989196037048292915181921911017228294607200433832263898836159106354325857509786138166966179127878755835369878941103566361717220846004606203260872301401711169041498903883495226588200544299364041531553297256671315905113278592285245915244890269036587003640377270446877073350188269154072530368693157608225649993991872814753391517384062665696144780996327380873750265801498756674559980546587074351747563358665407784784064460584793449806090830848319419315863786156624791912546816331852644499414071892060047269510045528214932390484163421739734927417516160242170206559720980588294887905476729815942900052826056048256418249793484872873765810548338206830680160751315777502809268261814504607075868878848846817607442230351002825681750165068178238313864481448939384423980569385531809213963550929092301584191925421360578208795151923182265091443046273434566516718004605990429221011598766253615744072545570135885345829325405143472061408449193276701074626711889446717921762324120898979362316017675365144190601058414032012311064071232022162752484462310621643426211807249764626636499733872381112525389513952489449582312817413742027038922807424246251551467405499225945746914739525120805168559715162577587472534739354955800051540375324505300282796461867561948997881641476765166503444012537213148460197964835473530625660955696428172926139627300364683526578959346655726411586172080764834156422622022627100105597455318842149298188998067716050224168130137652844695487758591443484037330656998037956634882590851557572438886061806002478394044671173116120067025401810001663758556949734081247444775918213494289567927472069185440902337757088300094311042500811255646603652993709441435095605087835438713430234535947000066684166202417440969005617678350191512242654121042714503635803843526688475936562023476547876336121328162797597893492596875356662586030100813597246776509481019935673156360928722329647132693198358995804732805708269092622700775738542520721025094892756577956308558856535543161412189132498769908797013200797498843451255400363385857714798986018060259879999974999842552144955595521221475794621385939142398088812198465493221602098063244699910684599010539478545910733781697189013049466397796018737910319689065929802261222482748273520204362930465895779984783956753240569109664085779466600986111141572380102526956349124881010006302072986446510612814651080067657539055259895249225791462135395657733205723425586396171387741638213421517705937469743305757480157840376752714379331348843236066591466032552880566000886024044733458359220363479844482020468201386094993334430325845692273741902190215293400961023733962711287567256967935391921918033510764877025045462376865146130498271566220655565331311255028557241680868941569892000377255629018331460555945757187805314881018926993234421755406520888208564550003008773130650170778774998588622733626719164422980728113331512578898097762774309296830648959787185866348625606386079655035118736274303002850991125686379226659679096662818040580139985389075791579534365081705813821241514189799128128758876907594899116029330413734810827888462934212204589145020861007780412124753273113046391752048847267470421762819054225970835151030041759775175998309353617832459988839221434778793595345885611599575998085395798346966322300370998232614423424363057736211042012453895529669427258582147459076343594521897751425068168613129349431007907757022547791177365487028524806163757895239930602801973175807931778866764883076474140381465520663893728495976489714718833919212985183323930066010679311475263812694467205023495688817297848589596071083332623689823913409394863539916697937087908719375968576165631992535475253739260141430425854396175660172129367260904852559710402317050424857748020248487419616758923430303708677034834477881971215405975887342425832676931919997597363805920504561446103568596293880853563597415397858931007635660419474797015458296880342301652596309521307953623221391044694206108724588374569533336103873853381830037404925362829506263809536261378768595739943399157324969378884108474423473223718001898538476214935857030675767036810633350069365708734278176973350967497756063070446237182588543501501253093974297591384655612053323901515171519507166101170261699502881933255123854778398948351988906710947595297555621190910092117520347442628625596200425962926402713615841970441476445804457675284001463039889800435179383667910646915098770405629314535335951980941954693247464991239295262180224639308193456946714027679665411731438460043439160751613992039531222169024899684424838103637203856577350821484530146326293044394205907143524707676479527001901113645710162893383431420829195413689207994573616192864949443057088576550525913260348397764592469817043219966770291779209650237358669454866285258559443685174996858617872542187855939927628906818907177637015300378167673103872140903839645536049988044967875899220418009998536322471045225719376911306961288393207398192447119489475381989141643008003226499175084973599767372558618293298418723703531351906749727449914535812981422848798685652316830209662203790484193518154655010147355239993472207618593987403737282250182562953454135709063506527680437194799287295551113411533989911066847463720392857127658165969423370430275783574416773430236374504256943787223593479088813400958948958177167514837138625885507813934017598865737250257574310976087551435035236880533338392315433511683227280302411889373712882351867153078270493993819363745703875337943150240025727342153835627828776199428230511746564607638328155340538312528675567586550147157727077308345017875346186284982285251661794111088563920193722529906602338963329348151342438392424202816146718950085988446530844515820699962465813254396215599150260122478546522387256143911561363636950948647726537103092064177893070536297437347086628809547829878338108934761227260405755931604371217061229879804690960966386386169436107979724456133557892188043932268656837655756489538869605530186703998821338164577232407717942859759048638198746278245133935056625037630067060886280818970439696594262228705190424093585045375833546574895769261938490923245324071595653356132352721714259187564795485209271829702782437923570439530751855235697481368259804789383729728619445470355480017125506873971385145746237365623587092556091646786753142659405985079017953124442907544598462112460112363831188599834685436546992414558828179318251556242858388368811704841115539901236814638659024199431783927353941235775097013426055368496760416435563689753811851306786670553475563071217220109426762784251005713537883110107350339815551796237778577429549200085043505919434712347433440556771012553818229683919302219818586436273807937113390488187031666335726368081238736160616117573468510494730027045972121744711826357317422059752605900552870582317163090270234055413201183534153310533421626087410637000326752107865262146114638110677738224394690710996539986104625349268298747784412639040697161808573916732102897237320683029624884102430042766377617742027831468927711433583834845009545043416115322883953272207956425376636431630034713286629674110522327942493189112469386556458587469800339733854999166460456982593797498719445432218550634968516034527928449553708014925616431629670762910792637126373719852718232177980991311062208140135727816399488399701564523598253795895406493777507706394178356019964687580746937441944398523259384791919031025575839790844933461344801810479550363907262624761621341814420056256640522679313364842793269620394656799559778654298394722760205387909541798898169560932797405007316602553926361997611778248501257482303418021807891861182879865454886421108351893994554770318166360332188544747442994409583858561677383799473236144494458038795951575230985708152794497717888822047490688698761619103180751570375210952048847928900156130759213946689517418463233929058547730161292083115704479313911343844450221997828299366673234285683215912316821092239572816898274753462492876113350391111265182009703631070341763905408317381303257302811597234404737257307655840240219811478231044432343526008527421349224138784721316612425026575895031584573963418549069135954660491192475951922407453398374945717823669112851161839828604068896389570600532577935546214215324616040288588824359986218475376513331139552770853138413224264852692347209144442737386334778819199721882444474973195732497412743258606793638797698466548321426199918101151527414349396992351003964414962704040988116011891161299087752008833934391713769470846767847998177947063856126046367321305545262566689898775624507677514448530955852286157079220479664450403219931464477793980648039949741781073543764021667990252499764284700844318314602043007115393720481922323549246234871637917211405725135223380228702548803244325566792235098976530135355366203079824386781323953100152963194672512247557761219492393812031713387985315866163619065121180197021884190257041630940568958569694591858555566870547188478581017557140847574553465306264145740739577713639828346811510745672307273864493917872375931595738415503246424541810226955027001953204057339513743092718057694822368794173725294324917200493713038692368286678727501089089023265558252126533491383585016896282948280753373045607451626850725067723408404052766976465348356577135574845309093817843748680431366222219771348654746968719960928835326892590339011224390095309874818775389758181037275099321302021433516798887578501398928524338665922674047489324272330795771753019890130454525259880088145344356827175288282602194780332034900269788821463662796456008256311978413806430644892924124138971857135709285079244937555253823702740113215359334464632936861515478207237612333345989473961873107817820265383159714441571055240583026214117391717185547283888451693313358911141362021321423531527328092027175061100447231444629084051109282614947175855037676887458446181025746573700286829443102260518785362250893005040291431455795518483303848298145379560338071039367435417400624052542276897512405570491713541659042308845558448308947250217580465330573262588481228710335092181429164920078424816333314399726686393176081486358131183942549413428576953163961142578709788918744778261958037165991267957270237910816116387269178432968995056880268174547135474891483398441454619562659049744654196613246467098037635884440389902483449494683681286213202409579026919214088200706044046320003141327323246093337318667086771182449240325036895120563110999648727962042509864584346984969629197984767375300860466717447418688993064488545817461417197691997635575041135607844436609789298329805329821390144473555611990375260880844427175476971055199560607052926321793137788252698080206543419251765902556350449858240317084899999280995099739479760765367676488693108689435410332298952723009821391855079305781730944227340426524943969875068823976449856723406747739429297419595268985840152072331451544225201116944704921350272189167391833034086438560012593639965106152136331776286382495587834098805371101724174216713800327039965505281324004297979696594857417717247253468856210404655535524396216162804432471146038936429150201162875154579069097607487516729706359148450278457245678958803783703117505510794657177134793364754443386515637929322621109508081281190749774673123966648393925238208491315454988650957318418634968985978864364595853002376664895565470121824806813019308067571648224290824788612268502957184400633431388382385650299809295859738870406546650664218997809869895531048512495389656174489341509159800269934661964102093036986020725719760639311871671159758762205220218598233941587719050907247704845876382814222660160432701973136685831887889271537874633221718540670827113188344301629882963592425485356129386991367107450835485921705508778654688463582426029429353030267060670840321359018552723392954807760785577135227331633095898496120506761731767803919203328775564545660145558372604790328810235455565552035830666187994947525403820734678615562876174658858546222548831390466867302753261135252959692205028880794743287181031339117643236123194264123469788029265332076165534720377157329715776482432043167292700722262523045447854665779747123696976086694136873218035340456527742858964775638489963542790414262866705949945136771766736814290938069640315204946909330015679213326845821648535026401455866531919539566289941390260331471435888194322387783150894899771408086752880728886351989007386112622587023974515183070843024512278762674721463935938754400091740270572322050758473438118381170130344906405533486340773107082721819345218213850670626138417036413059836581281122638889291044785439889737203816842446678685058534124492218964300982266425616946421797383323866522615714251869595344596383591049531713828301420637412727775710899827450901761073294973542978539599991452225397948568277422788305311044605384288599320749953112948359751776795460333855045863603406068331771318403893206391094006808918150013553947532900407494623861929921463381781201043772751862509850315751964874542290000128955326122395514704211023824981663714838422336197218457118484983018619030164157948560148535211686394425321627155253976875153456666047110642483914517517506050833494089042390890722556600052342700920449932464672225629876312372079220689877985265453055500020016459305130052828745140052339645278837189339873480693620693362087826406651488794770052593110587741304473121078936801635953131338640051132649808866090566372683823261734869741593554196890537599729015465413797312274616874859915573458435588008698800456909342297074452723278610142613096280072322418840124674851231020726412796426004716481207572822286603669650016236968900993237034747591484423901239669249613160116072856448074418754872495552812321364235887765314729692365897336222908811255704753329444947342144880156689416789118859956725577402895746560156475310404103109282063790642821944185062816181304768133525368341558670412019253511355053513489737732838472590552539160664346301809008700804744378651881881462934176336467301502083556767828288628634390247586862610927748197541819182531390074602732607915372413580110664879244574871261455091098831074271628047723413780324340243028602747798919220845841838570619230563668649467415971418500264323426022629473310641766865264173734253199722105103384731987830071791673581426187735324197333496213528384104286779228135442988469600549000292924330381570082110710736961777525755914501338519866104260497586735209404258081000824768585328972728307245611572274641988325263694138169669696616102134530390257668611962571668357179193856614487699257335428883943609820017312014812689297355086645082410719299906489980995290569307676419643053055450604835435758777894492067200194884490087691525785574472245889985697266287064166867467103275443791361410098728651321208819700248772165843107329299411223500191203444949649156774955645544024246048002321948586986108558999481581696512334118772175816200838724639517501600618392338156313127703472296249019795176405309837150864716170523633682614028958435071336817229111546843572506815885720685468524457050984023724338240796434842810170168110835530606213917111923220186192800270660496540496761698644530748154970196792783452601700798038071816702273371081793837451001297438495589061085401862526586472906725618034266446020210830727581108402370175702086209201421513077815266725996021681448306554628202796101739135221934710422969544714538888951957635079949546945280781962521273643454758322822855498531924288899089310979289572010265001024948194180785544982841778268556717385381932177087627602993344453945594356853469698853093104548521793889200434241986459134904787933243376195007088598787534511501178763299199077294278182604382065208723427850923089339848403988745795185703225010689862083788908431806023839379541502452523595028765005791769165094150147526596331166183096492962827498648498007624114962639857415099550304446902575445816596627510649776634660577304800881153599364739462540517467186646863044792501749868549468852744437498236718418563875795357463284425785022666332827407440075725001526020304727513686112379647603320261177434583024504527583102310169608021496540959708029267362132445745814287748110843697366425318157268153498788771208432326809699008883101822275773649863819910537778702667008512486719198579466576101835111990332402499628104643033942120557675178090207529421467551765852382657056990355595183203114488872483040399118318636825355673103730402318704291006909643492061334666981694485406149752344941578338632117119000478139445243384777222361896089267825383770939947966671782885070194334310105564214159266310386963716517512000372733390936217116067096108849006482778865459008025663951050831352859826575294503297819787083807250879123630988831423125372318062541722011005104488413500249155978576724494906818597983439195387245184849910510600119618858307047685019641468598064334757571343580675720027066779852924270952777684173855342536934020902708551841292622028130166470135922394022370165355334970358511987707937060007345910269695210162190325845875027183410263289865434368944477979987089399524783153925485553753192334751345084765593426530250031122347680374976006685304720427673740819137015711642086242345394480357631610541942294256839478130387300898972066042944673024002992851692705592299592016237355796687906169218021827049167652439285742625311623652588468812636960711727128490068885264062838473595136644708039584048699955575629189776601542466803502639760896365582514575418366385543797854553657813678991089870834933045099074004202048501484827730320547803099478808186948248717288854473397180232261016037001215088005145917832736427951177599096382764511856639465949954823595576009633199453020898892143819190421093239530478231126056470158850953068458339036645305378549628689114047869091843350321500377154510344587131819666601586862150691413114993686178086812860729176102566936607025633093487682253933561194829457235820033926753610554957756853436334280405416078594874635945914863550062799626831667375900546479782080526805763212162777089003077290355972471585504056474381434666497358263327537399368557674854401429367207554792257684426843094789586434774503279622287529998358485803862120353738548841974737092483352215602136810968582384843559901474574040142247024282749846441720738152014310909929960782416262980401217719176925420673450309334476393107958219461264797564453109356197246401144165580720385293083560616860336006258047386704303696959221112917865994717650539397422054463689406960951999105187718710381061621577132707375311579693653377434412241053517706995412153209150609299042397548290325926306369191649177070683810506609047119628445192867230147371436145763046069098840165828635100815118642321128657897426259008887788592245038752292424446276742897202309343137249776830347891154406252126978981554304771549687813618112152999087316784742334734806224975999355894558126491419581240423878437021006553026924038841567542573205897317729110022872052823660897617841852138899815610027698807213339745010222871227827594431154566263170506583513957052771545313671075889827132684580019846816473651833893652411850302433148850462845016256767523171609362421885311533888390494724930640758856537112739066809527756459482757913966843653025541602330467139792645433569358955149497623116391239081110834612109172281794059989556105692200721849815659376100370683467054793572757747242228139258292382082474732468343907336853404085494577104980134466161368710175296010352957278419631327883228912581424779638643965957846910903194631597006419896608861102965171977999160688559951798370479621560513997987470669775431540464751592075605738565269979514456526900247472362747688231793313643451279765131981036822705447688453609685055117017804073076720682717929420314838141622532072614429938639526331629321764539587886467630606342450227953516327469816034527921613483571613212059632807512077589458726732905390349765907235114269039410298438075845489514807222177163459662196131978347953291426354131601473399228682660707832135690110011810445317917121033480395534320410308618584546524078656279459259743408256398464183291154022553283549895253725426926600182811839455326993459625767987809905294867869363089993125738456694854598296105218905184646866986567162205247646855871816536493030185015391057087206142289355126472290104822502869351286206712043088011890722868268053464500564834859388473525616404197770144256854373150426690631597033142041697624276602874229306821100723692398366366185253316566999451064159016816094667281536646055803900368743763413104485390851410993430191107377580545545503295702172462968993558869111516590499318389234671226708014832250827934725944934986367937298544311226750595013629142527369955046047026678411419571481382906781347746883543338511541122163811685643774180300497385364675411811616986890499047072826357316726615468381004629446252399281617561393461914907644234098964603263138670594795257652535357189134280707210905568497230168387968100179753264504993296825364409297680976640788433437940830055655189060583620881675674700634084534169200399767306393598452837302251610346840649653082184373280195460935705544116503506331609360275702600361236942893855847893058801215780937042054917490048958273866275194415921147142508043051032595359900044886954099391010130913509271969065177561968076487600883230279883891676670307251981195866915397510897811372503910596106608682901488766991564979410432352262254232948584883931208135369912433794228343824851862380984093385505966353782086859354209712872990414986612206037681185905174741301394645190501317648633648268957823977294407762672003647684990395417875981310354290826850353071160340859660376097308512925264395182023085196195753794832396542345718414910030205152051352354923926508264336626375782065957257750774330390735207679813240023558349438913618284998566697238373222193696166230182736999999867792396369370387489814205341901830515079998743525590295971039723407427726046339373870410975455761849611683806512671908704910973705970110382684180561285290515342212673403835346633012572558221065041583153400613183416984923889193748343366261694179180524624415267955266516185907740659363062426935788169975107316471224877041979254994162763715510659237310584032851226302778463870405378092090897113776529998064996278449552667791075575671656138348262308625352568558327027771978363424947166311783295952854360272250150338948194532746292175112747948867519211341578857848023729206950127358092899610463765289907277462431178337282004444454505073964409085784236901462031089102533921344459853343836627591296258800881130854377422459061416685722808498239249900854131067493479887807355447107158712710290966356641450227812920539679476230891027368741146686950943532751979528497059525240466648394335033349388118019275912761793021348084600394234260085790261892972249945895167634528925175198965594877732369177885136892902857941109156874103340126160627663068982857312151374755493998688849299794586816964181710404776616394643502652306203202250969438607532401110001788622691695417373722809290878992410003113559154929650881947265512451326141701445695912510324191956678869278413541909269230585925947174080924593993648760287299006873077070765227058469120591817993821165774233996071496496358230589846888816482070127650534735858912560872923585184601337431674286501249841079595559645470693528761224302032947159994552895664288072205009198143867348086905744190663392734797046296291749998221273923237482243136586858424197996955959223179052048116390744041471067780625340529805824594797834166247289898899720911301137058072677306330524616831911662653784709802735812040288407152213721197904562917769621933628828820990664603667718915241801321238227399210839915255731816591209849424377835984193465659801387732075156128121808089349113993006857568047101447207482788334787761178555540749274351244859218010782637625440050591685722706743018104320915526640316740518120819434580993017391473372384857601903215422637950870916465659570405993972399056604550025369878009503247950088253543090300771019775052558296293484602953907676454950929948254046652342454887273469052673607088116238752210648012956824151653648000603025712339831950615930321555930119423301408485619588939154976408979772643111463382216043434729691722736364378267351841316635272252310340922154994719156742698154637220838279357033779442473077372541728626819787328469958105556586407238142596978556120066227072161235001958559344407844798658424320264987826462726783416459557705333418607211354175074414276710672724850224834197550719004935083339133837311427947747688196145783772543294761283430138956006520064043309409965633867252637482330112324613004792468496828937178121963396705754120513477862140561463489892291451301204823380104748366096244457692441643486949664711501922461565754525256145868791237697499641092996772001887654672345021957910936778813175788976499518351165976015302303070154257607872467466804049247987531734943459342018479108412235210502330459974844379528062348974603459223761351631821321910959628635831490644532531980473591899431964170916049935584927321645229205701955926266698245333390188709556444433797633472957260340066002864069447098685988729256993002501880958705209301828175018032805538902901956949373649294741216360088150699228993532177059160976696360980952427287231765139638458785458789214820892062928764513169003537017069325595601054197055948760966581578127045529241452176496503049142467473109830484651918413068363688934640237179737993531401323167189594200946332208073355341822246741498935687685831400437856360250971706935494726930270213333953242362231805473551556407017095774924097082178263944089451284932238906225468222034029774104196566510903469342938550460531519224173872897980363295794047848969423252745789267633368189549059967757297393648644088770590986550401625787426346196431231807694272093566384975158943278887261691632191537954332848810106430058496607126714052355450350600688214331820378246455390857820487077608103635851607067231837633789329417473245777961216418777320565752365946544844884423493936118497621251180467838110023818679384871155382759239680633014985798414379114056104809338602534647232757421408540552606499897388327507710060638140250850971802985519550637227457448087355179411071279488545107565648350093408769239126915015556293565428198091941864175988177665149959342375226849852756644748922208901240892583248934135262900821577993936247657069810743194180001317628271782669192942331442885740830382027073269961718861665361904277247800857876950752232434142970259713276005652110589647469704510824887756943181962082192039882595139743996007002493333487201166744533805170659524693560829582479200692317942014683710371161615473813563569429054929461470685623034963384027067052806011103743992562960303873852227718465468913676648406835750493716524688033918734919040969360148190180044255705060725154351002995128537487212273621854271791670571915172858143288952753106402521470446495645626989374079546088391723325148389537009591510583375826475748707753997636506865648085047437795694712411662650050874101998439290419363579180218712930430424301742878464799297097504877018561080493799390287903767298148710333202286430373257513960694816910283504379705169240622726307677607449644965479683727346614765900955663150496514173645418520439171079613985236605321823733878896924290160355166694226585233733138341984985819302294603246114439470103933426141331495388325186303986446663928604116753425076854404170332890935960434333660406934660285223933765410426114189197980351018916051392964967606184345058111728941023184486399199732860426547967340040937001641288446318287462098621733842402499547301998091402285398783651213566934587488350580806460474801099529896773197790279532269613942670763032119401350136202348411875292250186604125293876774981896017625756426885435003975017448105240375861839811075777922717634667747479406772264107485500009478150135225774297655128086071698493339756301187079609198287907599761254885374031208675719579532219950668596516203070406334582167614775656671837993411617622880746621612365797480224172380592633500689258456226936530491943892899836794233587879586340164359915231266636085091543478569122775095591612129235086821469146380288507074589218489845887319418938301543865486616493420659213041231447766896197639868563765360708967792665591339330370842534297021367377080262062342897911494355607725878611949096659946323933915806496890725881663850636826601547486280058194355488528634723473331073272841069384347590901620030437276445608708740929038979703066904527330849845627379165801908570782125732918206964719636750600270173145955533972531567549744867047781802270558865688213970388821610436293182542225013233676918708405961406177028276329723239147332014378826013193548479090857280692074373710175338939896683301910263633652658697537350664172474931912926424426351016851529421000315964458486822696849234976467827408628349445695598014156733637208559935160023039635266055243824486969154561136680777296717698277416321976200076542241898953738606805059600959420079724826352197734588628590519012570807344074086730409220285500974396698517960042709425543656365941140291108594889175760634950611209722362913088190219347029470807459287094655109241092320123079778664074008925284658976277359422550008260593979867633100478571433782473500927088750674623615264575241863031174142155098513016020553532762069593265517128492597861644728532379877658209214672205358442539840912851463280843683631015052591881286386639646462402786202719928135432994440450299764897072616108472656077790291721506212794626042290677035729346165499957046295961106530754995822273087340195354032800588267973048747933423082700649891744951190507786249391945672426138425802526001296391053861148731054289414382421053587866158883464370765433089581067553299553293490815208405350101630554548604587509305212483813044397704694096530836759465894007619143274867051271966185099315189316071205998771279175620229336506813974681595864451001416311327521271010321078921369429941266748186176264112611129589276523458907954659817257544896028893289199240229579995119320315208105953968957582227103285925939066597116581433508753113423397408581239160609061357460321882967387217277749503398781293746069915153274578287932818540644360088224475647000039397553771180444489894556413084202279175775225809716372096769315996069882510766344348085141000087617735832388082480873980257041971976142442405897534800132460452856002755418323174638222883041998585147582772528606316402677608752204295014339139320354972065016495291637997417593232515200208439529490611237829749181800798229138083880074954779867335477272956766602006157144379970490452280538799924024185395536043552025448385365741313440781819127731931954411136815301610790041021844310625718127510677850805013294557581235124731430454285303581953681777552385279711568257734163616524572749711716200387215574558924390581821985949499680258294065174669788778000256980811129153210207653865095149029628227270442248718477750815774484142555373223251742949997564638034274172893406629354799643025458508334287010640055483930610203265391781924453235115514106748044142905461414561705763253258344515383516268186512391095038623041958052820194373259933684380427092036472075574447592299296978096954848892854863169547038348641591241482927386830360400670344992051392238554236062429989548897018666305350468164253645167453628927916791375243937230767764050549142584312207242096425882261307956365569394078862738540868330894604989408045293676869704888872777163327839500859756444749752904910216127777614789257729033785309284705683182541039525300235731177710706424147568569482257080917157028920324231779059409935760559098411315570274918920091726534539564524514533336729918233977115838316237296248982001241333170703408612057714828373442115905187168491841075127178625873891359424683194692978576129313155689104283598857521938476996303370163219777282175691845313991354050467696754436141507545094270386578231784894730696161971516120241005591516534945313897816982133097384821940346761610792607428032147762817783031470899178045429485700655238496320815611391990259623825345060135658609591770048738829126597477277324053895651106591785541571166135033408900133572258452607626779779974131082185375086309872705494048952168474650233969366443574884105349021181156376790405917491760832113108478080119202530753220296638423761878376407746490428235453912446042531293287514478094188898932864223097012640233358649700029000664449243684602192507745324286784827048122815284108871208890093206943118879898566010872849395994072256838278334138702109836755615722423026221269864090038048612219062976472370800463582513997248924189714459770547744965248761667118083758588847797324222473327936241895703690654881046188268960436056668206393431378611312037543375171699312068422753816612064427395897463241050132927353867721977794854999870527373875498115673293315500399094867343528155836678455069212297783961859034662890608518969964786483149959890168624766194633343419631632443014378034318748136672959311028528435610748088197425824124852733764933775842495454913155930200484672226979376790777689150740527033497532138078563805462380176300869573735817983042225609798842240257194336399055202173575415127197351167025897165760179448514145945835619074864048491666690821252695385870177322195215220393234866515378115395440430608858797865203175021335934612432855725651557918292107816840002838759943591112337183827694230039465147406841444086060441959565059612792581204154124675940652486541382744722552159223827323094501212985871533044274791502536326304601566824089735305032619100395780867441302949405169305089418084581860250885979426034419429623624960456587491371074142229619726559528867821664017869145512655026398400730909715692891518178362105308770785761752690652496966629677861436304856318375809415326212282769841329535671364952684676394231869746948372142119223612990404620132847587963105014842457016618140900615266801444564807486159153200854955238887222036570750904200845443538529705744204310531399447713404792403890158538119578051029123689974456548572712003395633255984515504158219026310342306489858737108683429937733669847697924844315852820822672999451130404832117128795131888066345150376489023217277958047300282983299207317225353724068221900156166932353255606113423560373399501514324161799169893687472189597572976629314550268606957605809512052617173811032816910288510496370384197689158026413505407766350378489602901414281606179294621120182651148250857021456447099335266446121311452359238216051561379005028731717146335334026755032238226397941848045441964978406385170758470440718893204895810683329512310234008918263856940791431596461213783535790733065496898644211743667128880192843263876527435190157337044081785632471109069320576717698299765606962806855712671288812142222866406592185362769084093071671935883844452597336543783895120672961771405593639370230070902102213554708665846968473671928664039737652360303965299791884954023537167083025511483784390685998692803076895550368229250921833135033696570555775845234855132049950493383796793391954152902737868913613302565867966318560192916523143103790578958471099910427657036734031571096519170823998972830656595312135442667496103853114244844160814439489871481083471569806834890943670863298093939165591840460615306503053904037500413864365389123312224456213152258160494203701009999963363413044896733987732820507208228140211890338957713012126534064479976820924598680152551292053052726740435970052419584728754583019985112475334587345250088366654108024942554193154432453552050350436534799271583795689927198492433002620576458067480648921199306219161625741323872049918203327045154530151036826528550439261395617130408936112679701062996867151115958046997316978569163220376502087810307345037508775900055967163524539102034309546086087078971364858088588287462115411210863689344263441799272599211690940416669786991742506324780250728387864412762660790508112024543061513392344282686308161835500442805691141319072063683117181907324673432137876304792646239545753838625672168178375373232222496284826588423827747089232804835098737803776127665248156545261385032870550467910678040793443919109830843516279516207842554663059996836939141445211379273128743455998637199692175741847496704632769676593390001364333766294260313940683726828999699494923438611224541327798624702131645497261731357522863137886762461159637734867158081849978763184844015227537155576637223050285898909693056014666082927060085699500605073986476558819006512333808407224054420332763840245639172647153622890082711293440159208216708425653925564830949332080853905136234064297970522054640644960994178161126486511832254401328500444908462737449524702793096185344839835167692240066455525351950915656461117202359182245616647130439667511508708023544196094175593469315035369982736682308274260941035480859335528159920775655302740446083963607255355096518028878954234560171583809528342107865540060299906895334300863378266197305886977050769579031969653839629436687975447366198249968215044208167648354894749964021274449412441000493542548242537135788744228141266205310701478102709745037562906267461947087837964598180918403908507933847047511412240907115154111889723405489475510026210994120138854364659160659745642603477704422028703598289229663118770888558339052321017410417310248448167288179616779354176844480112699455421787583263287665242899627357747476422756584929654789387028835194755992108448755443697849483874458357418415864544591716085038674560295426516035095843626240461613866299483858890482588651983317825362747368828454267603485986157407538505678201378393863452796181815970414384568040398419075924033758044181253533481093860503710642708331125420607686759021332883452806980438757454490357034398104247041487631798956909002451303525751288414972940227316402812135382952762179662245064886043507753691220463682729561695688057918844391737943350232246603205582130848037310074110825063574742588774269594504119279077560640541341505202648934411674201739499293963510585636938007440648643173011328845009519091624001221610837939548842404229215145477881973637352716596453016433325749281985422530428406683726524543313410789354352815237100593476855251232841234094527629105358857883729924002139669717592651230374093723251272493238503734515086713089504466894154826073727034845360065275314671325309838091351040611331248213663718422603951311504127609743234589551605247164490462993300342338336376964154671203706185119349945955027394636308862617586338141585097930654869782808129438046893207880225894873675840482760061896433271772317512389693930448292306452336418426673050827579402630035004822556941230189230328140046422685112344081454342842068617214364937654756781591355056593479514481688481761906936568792577861083399821921493004545529261491342946150479266922323953627419411047308689714707228542512534383070648889599743097105487255305594772041773682104087175849983893369658601672096294987363953480553145921521608987316551487993548994563065709136586850975532261401136083360603883608456799784943401461060423873389558900426527518655738054558915316561195513315740214558216479762592522864861766530706590696448699343484642469400196680991923686570738669281575526409358835136505814994519976972747263676681337693454070831272611034494741494613833551077688266074349792824463081764520697758520108608806568763608611627504368475550934255805707578394224385720479273366605022703436240604840313586960185521045462391696183396243131355493014035568816506039260003136976307246548727944347342493454138610282517609459653803951797465409324695370150196429915053935930529083969911795809827974520509472704608516764351057686676923586884446666650256504936431133835301417282869119204630893824469057687349123937596159270158956263333693237338690294049528081755163348457689268589270812818403771690565036476010969749823279104048395198653157786673481766287609390542457185200939059985684519481428127012145178865952498572859129974977179814169072458962887314072426489325309435676580691904866835329186083676240969681486256818184513330740951257804428378637179945918785858033949916226798828995154326779711439761982586092269003184358132079267072769250369185562589227528526127265239104421934475797570367305099587327641770911125404025199544066432423034802838796400050303337896515816261199037922282480745353587948892274317176110274364722573235973303749898873111492226757973540213721196560744066776229749524593597378495749473835261670222550626864424781989910927442807147783426662051160874628001834163448711687984889067938194659161402208519038371444982668232160494871997748715636098223920479249063886399069133688111124622144254235441691721797805449764790462372072705417827962312007490166059309951348730873450809059622663063363478825462677593269626202124703747454389303812097084453313034851884128034728766371281599425037145162156051774937968851657499863198795408077674208101234425273352886451023997579557979128054060347806977460179555958702668870641846415932973365931014100359371555788814619897052047673070343874383051546993039012661466694594573973360560237299269835286454870669049365978535647118659838322780774896701593343597847472688290536620902529229399631671201735616972710245521041513226324436263740731654963705613197134265319057645209684947863990233172831771444355200754697119385338352418530144766560008139967368482756234882423215298466983861573611372434614655168953461691921280854709269035559624565333697210633434525386594984779474449120997768450518185870620965756402389304032216589467470556370023262061278311178133841293864710937496795570180168269318293197759074217370816747266743752520512695880979147264469141636343145323683398668003105145105674726798980894059772511496499606498545246750123797872692973496786809296494635249246655817136346707276310247253736450153342592733767433594186562566790121737878934525196885538481096433506669009405672249188037923420798804917306953068712961176924620707778310323862009884332628220412114162470604038753116505017001449821790402688930754088442291332000449984232860132661332428503142448481798312602509492999240472008983140647962251485019735693035810798899032369046588379561374828032649260918976073508673739495330084641109555572970839531106897558792436183628137135655582537718590914487504758757446108853050464071853676872657080468845830557561208024079107326515719479581287431793089232488869918674144765705771171137991198962934063477491863381486415849394605712715790995042116562269412499097491623692301550310583805337719707613602284935776184805276928667711332373977361558980946077571250905296355951895048430119416259201348696303037077140597848175968860325784366518654945712011599090846395474504020547144230679407447633470786643606145276072554808953725930656413788648587852086787240704241666715150154321260420786117975072823165231556615193329404204558973033891938666379024394892244786420142063489178527978887146844269665890985098878245647381285414101371599188751454914512225371074003459048014216737277121221026047344716702725445649321642752963781199236666948266943267434828380509723312916785193149168086319045559465363118950461407493650945807738754320934701478812085627877014062896453130277617954668122886703497504424241591443381664077260674199165154469570467301647173622431060388706434864180646339343173328509849655139859855396543758360626449851854407884078422062724344977411612148240669747245125038180398235797762243806824673997495341442932039875887563395338596952738954029016108162085351962298313402328028520376123260571283835373414682086750371829896603488941945273659615309091561552185847905830534809935513899456748897905329586192336051192282452342133787205196465934590739365247420733297778338152636713224095858766764600836526513457030652687685531104582698346669450041015796106115648159269505425160518543322525053332063062089267193114573380437147156261929535354856962129716123150870740442790539995739336133437547855076615494678774308428977610226825890985389328790580659725963259651418059643629441498985696558271726531229988692962124361490554406158443916738067306108922427973155031365002773783525914337347253008277012583512983770409241588367809838298191177426694878518178653603696949505046593195469360975972000546344857710767091958677744210999640732417873344170185751740344330454779182943116360974872017078669796268710160800730877973249490469146130117317624699584369178369081794087959526383692383151994103241071623098388760804161781776505652757432480412893835418733831098684467805856039434857628473495485995668584299637275013233905486686498359827988814690742800459742202586802875441391826497870356286487803125102567565327504927700536495508548629412794614866605635483682553329949880500353624437588893028411270297639717966408699556208904383894724144538287727536577740624675166352426722525712329169235266989610978148832329721329827933684032866809858553284510446173166496559500917478966976322580421135768922129055375397086090557098248512931411434305510115521040848960253668930070854868050264243390383572015458135478099534293604609808735393149220852368576032727177145792092301196788710937526829051735431394707562251179026578887544186415919898498988712580907844275994324445990572104825509216870705332449236374213387263528528282747048285562645762170470995481367239344831881697000613603606401381241545912575499568321334217725810846183907079397177241553012826891994481368926351060740030794610887229094333238902079943060354130507264376748548477724926621769130537793985054826203236333206722495251495213902504549482111775622342513724328315383659538067119971391407214160727268804893901881063920647176562887997349679435152159433118606726501341076281503869814601171854255706664478812731271817839111706054713742703519836688705376280663021902518433110604803860052275685620502706020198321340734034368375284114679668525420965262717082192416580886506168502541093035649666151023814204490044386652969014379067663150184553868740895941770078502137628961053465427366342968091487648553910304253089487014927796697335728508439586366345296005396735621668438703154895466308478714892425511611264181671473879825719887124468141171166905764655629392500560904891369573513145550137742702578545988054720514870597431431612190506240635045239474100711333240713155762609122327266934315093546436796306359060328714729619629101290462465108981794479293225239025629188007219933222935222781063464444816407679320712188265898230209490940165293827465123031314956241341676127912126327593498380603254325263442352495802334439419270561735932793653642573666403080168901286661816383278658598441363632341198725467580794620807058158516404047974672026449415938742974348886718184744327589951790596969575665242757040872417271340267344153182675456726705350675638991215897375114531637383184783461400034212002776909934351358133650112438562212891498472461143054608181873805492047011966467316163987088935322688300433288228757820920371537051170135304752482846531259712456482407752229159918873831642930787287857546404442662623389268230500767967360974833393821388564406838104700061711938998783439914573273978591939684759153013965543109630175588506494882544226194125011696420391598912421559135590079696570330111739566360977870272028858605323826169837039974488590637396758116058143926093228524137742045439057577869541114063346274839667061945014057326787988405027601990356494283959465274360368479409694047901436679176422626446344981378121338185759454189635066945194125373925083399699228193380456826729254363988954156542832830354786269500225213443287277876022956562575674364467703105133620833054225605396422190661536618283470440410341080617517937062109344544489127177815321046052630977785677755812070531532015941236200972184830090099211372575328672854134125022958454488864677672039403377611674435787851744225087795340950887385256624978875040154707935741075396897534076554572142260043529222294634767963138344627296769831554310129903546990756094388745285328877241891534598364180765855066280054987167153670452265225297004897095604597008196379331260505891303981010350276172888153810414978727676936474580014537364338180426993074295679070815214443940222794546171739592400938273769639998794601407929401015624697194759577497903404783316133586759758180750061893005576648069777498303047235297788638587612671490712963898463532453256914791542651730521833650452784647907465523615542237797780040026467634960553176814598519749408761639061485382938503927810916379012500872677114839659495993270681049026207101585097332508339223324039727891669701333546708153783057216056400154994228892687278290501653975709849858686579443671808572201785977793844735906523173183605808903517306493184315465790671924778017173136834364872220294419588095773109933946051113414645894489336142863554654818682178227594949342350222387571963016660912063093430375180062844567284096778707350095426831509946674447041208735624510861146805236376622621202091943838589285979737943621569715239859731472191619414968302908409023441982639119053562288449871566376092997943015370731455930709283759485650089147572867821884357512748902351609499750179903195217292922863489304090891091094497230330281488837999423299218393030530424678782289116201208174965301431775697772528376558689459212497635969969244441289489216225536915503256746357970205292711620814582314355684567156898523139164481993477191856364184753772928994138070600032136530763625905841284969255686608523856128543276474565313653287735472096614734829433407749471828321644251605383523376849535019175706120880033612403506392808961110549690391184798401391425245088472927712522795183699588396556698627790281440599516524935498571582681233599740429294587199975316272766097112485265449842268353213862429845760568792453228029197430238695719615293485523289725926002622870205887893620670405506705100406973035717321629609299768788152027116484609155391543079166523699058538692088971244791935636358523318632376853294275583490224786535964565820182503879880389130153936786037545020290342744991636003287620377552911217426784602866515468334111692985415531611439961442131648038451817410300123408098044541093781903408351411414206391672022178311111629770453601061010745848115024330174265093792997807817361369015034413533675898049505225680957138131842617720248191013757576260238090335446808323409255590300335494371336697355608628400414216730316348575705598127601243670145178802110214191813149640154782144427566899062610033637857351881839596428300957666410841191025733451790511990547172452804182258244072216968754529134280818673795504385809342692261399943917100126550768164534918946161458725327301279406777274184657284068118155601929645567652643579078635777018791364825423989868398629655946735166638493636355640283300816300302229544232130146711158526083420764410289733865091743313203363291338701624052484295280759634656757135235278739369637868608808625322826324853178187388577677042233143283678080955547215013939422281643775587885206424742884677444042649936731735560553489415015477588159271128691184071334001110866363344679021806306252796111748250059534513117479444960326073157401105964833548154222834216905845099432687176527760168840036904801712040111525907794610327998960752004623682780140888041659995825277775272569116828321938914376282599403867981185660295930015732076251616076042548306843761297667283598098306330844661192063267492511412690685044818809600474748009892979322966159437317691568315980609652275135005206612420201549459898410672976613802746648231668486977374174115098268040884484056457767972707118016842673744803324548727058031544081978166501704244452127066982981964429991508573171422829611354702663045374442493057632808839971594721739801324547750279528275941574582968877354478282713566847392482639230188334507153645629458742231195442951942889235067586330329386009453579662972631764780128379451943300532070697253481134997338916336260270857002690558545075411948658104174508324538565115158136360118068298810751932760071000897841413780056015319038966431813094520709610292852281696411577056795381442746079611233028492260533848475517831845020466012914511180928027614533759189589196720710288739707876032473546967354657358807804539154763318195694472644091840145095314640475911904432087484430269082847204717629762290161773344804382780287762114951885138639069693669417266216120877896368786760925506813739844170309034973399696361969200544584120699526093431496676406801469926863818239437484503140019234019485182413612893178315372489958785268303554764699507997990665827858246684717617054028856160986547807296313615478530343560368790612143244105566308403306313849684822336137780885594585407269807027843155085456869626642001510716679386695092299602067327840094371296957285258509199377643729691832573439950293326701158687467334921062899791685169814342061478383815560882287830641347426997675899592201884649057541835666339887902749067008946329617874100102691018308940245696001546254168177157055123506869737686251757094268273561267588105565248810336025511256749983178656410669492459686534642847581814610338897634157899493561739647856960677208724369845093514181290705311185022004507723881417666142558412586942356888205415504464623427454379315549454427994370192949606853877436372463335103102062990019884429361186527781482301776557971924107586562325953174798919925149244874882780502572830942309938847869662198493269414417144367841209825730803607697751449853063531776439148521113245294736303432270940055224258356194374196326586424453318246583655778008684650559436935623158856624585337582161474951888043264292880532791008211687112249163719363701281636353299032519156361870548836094320102949394862482704256985779180232707066351959487389128741505326693047959089802624931531458908191184945715060178581702737910472074628092205333590205963185374530453880145130132703874643002707066033172038847453463825219890780566990759384489445158887186675311863456390741219649376966018797831393145770060374925803883850282321059581092456292841714809685316063710434352440893764457731168022991323777537846072477673245461746051844647903643670904089732779433043977163474397177363958623913256688039868075751155127686790373773129473660801366398595029460389469820522175635569294258482765201384396762218187023661491508733282123476794173758245601541468257852148485109642253264669768973110673931944265031264617426302724530339556960129871222704082675669660571720360914161608371855618959716880804588837376370573902207234222137200517255859489223175125879192035492933481403082090077038651142208264426953308196723250995358106251081210395201437382465908868297349425072225189802392937224945337686881791801163983515725394553056770202338995479375629567812426753450607768828875820312513064818362104697610907017371983969171800788854055337702709454672613725300936524883892592099271883692341817944546204572826749302779213871319071637258419294093630964136118602838689867461729725089744785607633090672868912258784282578324411027820597245184831123127831091008180772725538312991385615422688000542328666305118252203578100647227124392724390909364562861579993623560901958541673073938766098521335269032327785613397079119913953163370698834470943310586504587809788158299924583682435317920471469230537891089586868494742474127722368915270780189099092663378409317961190518806758614047748123967436422946751420829447505509641516385205976628114858566735136599145894043079851370041103934390757173443038051624701201650032712247551279121361332716182039334845309470487678411687181779021527312473469121494338501997167477586277518696018804732619094183783274100936301024149783835186894487658377138040612015163355321638470456474402160237518873906549137201476173168631049535028996571232846175885364930543393691099836374625314477289553524680995818253286361755454899703922681502810686130239184139092059639432847620771253665050477128861302013836992238523620761844751655511044005999014034976913853194235152633944907672161100723883063509486917282844879032151770655020989771309455444183045466299255354706549042853528885950610350355808282143638050454598980113181003638752675989040825082319549402255707129599177540483445503006391133878138923216846362751975486174034524391463546729999092567511120745994094585377852058421589745633212203684202876277106098368838124898920340877621166582658941870819621811416689589867488405717776829965419850468943279912117968745136474701706060682613231538162918723464274278078094398094418641067672686338107082045409523657014370308618175733931468548559048607495540167498738655920325894977682964791455089261892263181751187400783011964576399034248191126281628049259642967072765434242567484022701356185266286177934482589946899371755583928687645817774096277805242223879166575016608147930457621178078074649718302927157875411632586161740763666505130253485235525351042054423920725894014945008228703332425835361660756428917556434152568508156663983056477632274887885824219176290091111913548382443873448176469873790160076946572619895374844015483520961025814356670157242286110665917095481182096313705715825545939596684408626796630286057397097038221769935327600444214147706252805432319648839789479172717082749949897965890364309114176047998728578763942136119162415104861290827694396844804042065099803434547209561647960426392775510627334485892829397889918978415158709863267774031581752849194750796728156938324030599325266843611126343945332676504058294463865521054394328975398290183352488575875310997471251995420883777980353454050226743781353328481832641507801897706437637994580313129459045307401066834979818588463132841824646305935476650909987339072648051341266436575751234757792696471575545959561239193246984008117372289282253559555212872486139374032315029120014876272511442771192262289522205267398830678274877537877827230311786152322733897386944944771114303831176206790084863721815282817511695812607369411066677382539928501026217510905947724953647046143104319064206753849029447329448171749389192951735180605036937018087693663253525349686091202752846859349007159262206801674631239157491639269625773719163521615378774592638378400725257318151024009096347892593528935643929734799506618386324337005246809293626259613481904339188160216421644391183841418622144272238904576063086572606249721663892080112504460290081677013621267031521979386945507211778281637054821575860099563469718893487754338058535229021465826770668450737267581031831315827786244208895247487052399991642051616256845998054524758212454678704583325300366098776768401560638670545475637518688389784292187304762815901946247542449443422796150088151660765617305632907027533014878959564776577662400202864143776059746499512135349584546541844170226077612101366075454824576753752257209503473523413436169414184819530212135746974419490846647044499441122083646557855594618945752835131089434179792925640009926254473870555943477761050863452594594397431852747043850435423739599320290463913791159969917897772618063119929489863007231142208716447164790095066374131557883949551962584599486842122703757940338065550919335427390246803490849127325259332519444190001828883096207329550973401904170538849202093613078526115253297011448298564184815258122010359679176457984632662388115675375713774788338308637185695122390363791944454052360195606545183804807870216027880901695051017431582208679849272734019025337651253691713316923945855251263057271269923262810606868979754624081961388650412829572178123848566293664245010851715710504372356347204344314478856699565740354669722664692701564969414360073846527304307709638994847085459116443162302379120181495321542551537735296962421653350777957047220125694793747660016953278284976410853106382309573544594312416815945518461674022422675879333521858507653799527777739693433194157897089389232713257231436688185055791750678867203973809230844486816010883446394001244085975646335902991948791578266590886910030463548195422398366132503688901330528346753094822076913079624035750592178242732591244453018731145401927446318679013063616646526223574137185064899181394207487972733863677889527450230432397035140368026266477270237955974499637143403470826552045108557483627526822661895917162224378275743514435018477787312163505948420936217172468262807189486421864322017133578226089277536216674850570383741709595380555000348520531031282106837405223822388340226909676584659880565419478472293548245306859489493372541219089084241231851392121305222193988922229049610872228667824461910083694621170782682627986529787421177125832846735773607321156083566179139644119343943053262127519303372358312051584926708965858750628560596150134302023042042505247645443481728194607219323551945636195769121215020880466991229087717089219535219017689511281609625472493312393607672381685933174618227525823216811690954285755130745817814772583158791104485600967836202276306657479796704534846124675408168960241863636924991975230422330241921231532440376596500100123946542297592626832899918257427211994184999734964252178369302817887899197196095066176505082770820834005712911374969291647474836060323863177782995638539248681406673758460507383480031447341078050507162760023934228399979618207070349397091164624602710809686951360449090257524107249110649960941272118026265688023434571012152250671510205791627551369162271397487313727663128424732262203823352123466087230626333132543159443541314439359018446847586665688702889460740777967355596000284807436444584390121580097739897155585145193278261544191507178385375836193352900549688036532902596485149841215410428309089352598397418155009648437839460971236394852200068833698343155073364902758822806378785609199220574453130428871796178467502635825123391905841263124760242627253814227550637603715590899382439686018802255049260985820900014563347632280433624408475869139621142661164789663221544785051617542468735997981047282524204972999146367602550813947305675398750776106364385398637269450921809528023027262192333059074296058606074430977289818266067067603583440670655196504879355043266179567467053265940708174080030660059372884001438990333239144390018814772496216183307207108825172098293727400995039146581895369705048351344381180021839270044376982810728078358257064042392233926166199539172529166748277325257331578683123440535649571755755719296823986982466562414450760784741021795457674651554770462110432766989876037654725871097332757609995579548360180593944129073281316480796818870631802268151501842759434425701202065617359995558773689152779977511893146213784519575871638458154680084097039862293526230553449981351012239824787733687297316748204564038858841467725393933348342301155757799804026404319152075573096909297671531014298918749180992651385763218324594008679937914308597619815552368787069832407836510980728154344879600095325925973782676673682277174422388612444708653167328757528337489036197560561661669045018155318758966296036264924771695786449412058929403462646405567696429264786032442439012184515782901508221341837568890148002871615077198877304762323631215498440647945905060033431508204498763453182878446014166246908650049933127546170128444939794877614862554541140613752271936592347075024199151437476057395129701754419460610327880725354571030879473982027833022687880776459497244712872148176726448756972779974425769387405741971295445416961886262859610270219221308199087403545047778426011069113553004079665453602764024360275481509285838518579121937600079553498832348393495654564262062392594799118828827215375077853268924017158833809008677092055765118040832643888566844560175704607443967640309467713858750628314796296835633803932772159137845144346998463483656232662508686929390295977376116159047497489159275996811261010673799350496137704959379677411212560112646450137852315450323497694499169037553634190644379656988213245404186200693456436065308868000368543429857661617040879345931877478073102593031393347351525744338752134186306708845834007478209375307117341153570325239927508850076775404910546240471382221735908016350459128840225329741646494626457071661363811861889790906269063700206595217419573999484641983396426061731195949644333945469857542035224457863810351759215321267199979764881520719351826014630822683754754275739894963872791999281123404518329191329318015184334747027780821322322321255879386618501293326705588113192946347514462126718270910781077748810127704870060995428777048426831542565620970372601129841717647340009793329210492859911674353218918419950076867141970061682074098419457547025371539201864170370303216518038239425722387498286261636114217800952917915864066917464113230049447925164530147277684623185224947591664096448188562462506958256292201225302384919269971131723345285453967150264261829374955467825022285888787216363040694953887101318799240761723628118981312307712554197341320802953563637918000253241649438783394791553002442506345745862881574289790498790006257184214874913254259742160072052661920870611311685896718938319773146065244509590638338475599442854910945093416324665855126044247849377779890231752074685473721777082807957728060907968337475653979783863787116505629519391809118896662999968972044778783187989424627998615653905640954322868249065344507519780348792035927052936980044275128848732110959514423893659487404453839231884860464480015950646156195677539768245337267865340926805647511245720405354191251092196223827967384264136359627487540549703040282831611305987358865266058638365038800618046295350282442928112490778482706640845991338077181418531325203758495008797122142453961429889435630599947247376816974768908614545931744921743258706437853734388171630096857343753207279948463620215360284266274738858676074450906444304227332234591250416855293758360681250377450275051110992440415283475732325557876394303346631692193958176064108464417947956986850321174033720055552432845104260784849515129056452017725533549775049202211331753558215704949838575511047679106100057459053368190496694684564686902085273787933767183679703099896255933090981522876309351092240559925968913869259990304756748646145162625178215429310768053470453225382469943207180087538291469658889635721656554623361018326926321773355654886321177000866599448559126330876526672556895708389406625690021707937587914774197333153398865871587015265171454758235390285421868212178744093280865788529539103120524785597323698538197857207217481561945482896386662901299021419220359317097655971085185687443841906505639993034465194588883419761190478726633189838027560119309466767242672734932075128832640154152754804420714566051327213045895054367260592572583277957793622306424829362748896339180637347012057307234865502172762961498792527475566575408361159541625085292496799087276189262032834274368359883597910501961978019291701940008541786598920898803785929720578865254188475035623197876859654932341371862391864055887997708855496629146642005922927055492137658207880393801443054728958869583316488492037438975398080153543761869796652527153623749942550645441687316074655472790356076878261084406624902598236792884311808273094779187562292168099233618761242227371230944969593473758602757627970964600442070759182171266194178468213530130701886939893233724350795788632804685125320260828173974627788046645698696689001964533967815729534463401324209358861064705479772781935101087579081076733263492327225947082928851528613705401315376314306309878680811795811051760259604473167548429697805114045585520060669301514236190480939681565442609923811028858854499907799045721976597414999483002641971004840161913458515620721994937499457620717980913101831127281195295638658314813289791337862711053350178663574159642028508533752884971612864747030676441577057933960248445395638030685871502244884826859876646352691345462371745876369664266205821927849763610644779776468542988180246607510829820864460237489030428011729848515383217463439844052601345824648534297707523106930613119784984493221479474145851184299528844186318491738599322924515639208200602918297850441537890969747431120610081613749522435404441509584556290303669481584581473032679065783594010082915990838423442577654706754932834099854549418497557293102603222360302588379817094612576406249677612005151324745974347015878514964084334979787264083333652058809131108265966414882989505314038957414720522779899559151052100614660329921231023625643425964396852023323798659887984688212560477449731589725941570817273751390342257629831991668007911171762945979540615317832746831321075377131907871047741299161087709158955033437656429711514018984758965253051023234334031272864318606164593533977503821652136430702864786204022864657436021733239380450096367611712925905331460951054149163333812082960279634865122568954316586803696078095527173293400925279055381541058234014218308082506625775561283714223330675155399222363255052611370798112323887409764287881148944907770164236874647923156028056937127984234907616442238125570945493789027602034278056277959984350595590270905796828092842385759027685577584716791001747155965048131441808063987711382416788900412319539357982219620393003743209968150638828663819319879577871067301581770205948500358619203166811963880538756166769667824417192120675615021818912193731138275611867180229273666880637240268384106196117678016034759647220068098101559983882178677877529886697773646025037729411745497128558911861190853838968272617801815862332445666598136267961079616446932631088040316182260055724767117110888690499374184214520134428779119040903601115496227948841797107252445755103433659910330708887641883241614212448736180023644882593263321522148596110118419312091364539098026335769309989983597126492110224209686366245174918740507771364347509682358202189906618968009035771658359643915547190198224223846560944288040406048555547929583979479249776217746101872929892348797736101207340020148841167047090324022564086407480916558157796241250777014797005367573889702624065608693701712602891787367023266319648276650102658296829434702611277860084991554175192401982319467616192126397277799033422814504182290771190977699413803751549005880711691318260916315574774296195119400382607882681217486654967044141205634080040518928212593886287910757224041525581519171754557059493450005286713990891471503290191959937305303999227334064799321367134421742488076846012070551364229128882252320644893558429137464470822162300506727424117656292513774725648594996982608999372086514983072773611968076689914881968346518613690763937742873551665076946843509128732671098939283071363877794892026116896762214829464696624982786018094804830441008014705692662767939494145065272818559821129583395551723157432029022578285771405023087171689122792140404588438805871518474168205381326357131266155732913990714609338427122893137347312824225224528341325564640868306150675017048849383054827048603785640758832016916289060465482532699910827251223061255986982879733110302601559500202188366259336690611205603484814604784450889286366434524967341732599718641827133912597954396810911799688346448729523821529847653767331253561732181899965209816154854890456172631164453296647165631118220808156321421453447530240305939575040839873680529031832324395129687358342541004286508992570259550307113932184009223866756885846843432924308209854038658120233055427462833219697912275800886876870524564950107591026641914064039366529298786548510950340301019071381256878586751785919360278415369843316623786542076845122150711977078020255884239511626917615802163195049775080119619202979632568110514889894031696825578210555800916257897133400189777834405503872844554182751059182792431470104775091005196994886098756312985060564586667251648909789668657331658870263878984573653246953117055053136770748478359537809684621584197601745382623063864879265742372117784536464025523337363893725400922480209467860624722673573739551494748548874821047786431366944430248042831683633701448139245005023604827644603377255217475100290484344153349112765388861510547690119006552391871646391872828743567625238099916966174766202810165426254299092761415054752800045863565375883362762186909868354537013788883372324698660846113202180488971397239976664832932040906865207995863820512519306476651439833628663799003541006782527317217998782911869137768425377616978628417297226805099536847130592960896311907903976377545393269890965053039714650373077653955347291906850612212117521886884607800746004342284390903837649055121407277823030983037240395117710218112967822816154765649913928883001426248328897204624763466554044611539181294783325206941424760209557392302313612061797307919168865214403060815658587761442178467481061567727083120093202446663392493789729242630793371921127601203267882514966574194675285277409864198242919706183510492406796929012361270839843228439803146691608173800245264208251181402620071575178613756235898518623212556423853300569498456668803211729841641873101714237565920524960657058130277997107002376762707877050206242600961563541099564578566940316345640869907764965186430531268451420968699241990251293276485668301567806473267439246918360245426674958232262732231634241320495503028111339227996821341338417334701041349752841990646263095399364187714167186112019727286779920478069076524534097111818567851539307174479179675290520765601051207750657149361252010912245479130700424035572352093071570906188556463751178888192688204346677318523062787032698037241932375100575121195522863432968421698870937979319700579588376539905092081953190734459949624557023033290979197341679586083553784249045516393246977836053745432814666379468831506400167278133808936265538197393067655678395972026875131526421234317003231912895517700885819434111221082717579444461544880282004699204018041339591292792717884744811227988513625730181671578667754055390848067611297277770404033059338565586762908060529950420494356340074201098772042858091448090739632178174002299866300875263200637836971821232331531828925710449644092986071639069788561350034358283873963693491320581910594938004227178815062547762725997048999447272157428284106869314732538050315769371114101595041804394189971885563365449852014594851583065996415110454354225299051134116474919967338412150942792191484605684965145392383935717785028365213185521384471713169875216091894747303448231808041993074662968968930854648882897253639468145074445847058434921504291745844267516455842885173825688908998116544769336878426018042046652309369021771646573693952580328252585979753342083350371301226790111206364029702741452773060304384901171383835562497734941817987754855469917467722010273340920803825182421393919789568263810499306555460106087541373555313462560148075133947426756698505121715330560408655231119301462730061671614477419794854234373182386300959835753226080036723857590743082044938788979291524284847809397939114452393623845379804673055039314583139094181238040354482433943170930789545716086295074070592135564359970082691286302497971117674494024944838216134779143477526936314606248153336935389852135564051852491143791196719356123182789451735402099334763935805120737324816424621544009533582218707012303578988952357832475644541759574792175063448716405489595249780257615606949703652364052628823762470750295397232833152240906339226973943997225654381249485946240535128551567019718803119645735232572776091389784749995339494567892466527437108630087840997919041106533381155786781577109785744107869516637017346207720081079896257272509723660261385888955235461894377529945170095484906324944552212690456933242825097267550622174842909226772693335767308305872096585998510592833965161225219619885329665938363140867370656148169864711913988907567453781561821704005425437561507002451599059666349323333640776051132234318390099394949185657423348430263000188845193757355061475612083049202860275370759931773477606859496077603072508269286525727603466985366716843928923798925270912826949813913594968487709586070860119640548759801292581457717826784990514894974822865742587378904560247602308030107709648902498298022492900541635520300064037081583558214646431228964906512874122887945530546209894063312121721846107948142411876303020317232009761183037628938815665886867826201657724799184702873911174919646256202692989502013890590024151392350332132913329264253921554519151300575810220266686219788548554958423303334587979331337672461125327259721915670518100815728003936270126955453382588957331719883657210700484651358494415892952868194436889936371528708710830201758107788623485197958456716656699267733925058912964026663966858412491832170538495375982583631666457776085901052813167491372809788218592848754505967259331567287876197348810573095080940395578847251359413287115203899475872243569236478815783198605440049448447058524763085037190295639227539889372780190042149843233538345488757682445534825662591325850651740688759011823987438274594451331611890111550571990497557970391074149249260643583489424892912244248877272909365335299129799888091772631441740824592955400378152285835094529772337712162373528156213990829185132877495951960173896089047520884391424136772188907607102989994939817469813666020375545746231336740305500749137007128385297986688824488588117630423119650208856672284383894802456193500836281123640215340185704897527493610805509349685375284394381494563602183123712239403874043759088914461435011127477262831572543276647226679110567088134186788461331151139187324852726903608020242043773904811783058075346796250918422441735582438087685181189752854345190797235333057186048896049851226206660913655798688663329395418635056220314465630503480705879782303349182042198324361258116165074946472560304072218538388192240240564869640701072251959292566157475285488168024389856758186786019630570899358364334954113610504248037498764262916695680068353662462737973416511410666355763161470116343154733180102542657588104795260908178869684660619773127790574675868664770427129093540669841994147240219169289930402931296346470767753527757954717560346409097605022124975330656612563419251939365539840962269745484969162429067470290376256741379387842519809389563043409204778929556438713363442429509339757851839365935488368090876989081913135689700859268566506944395664097267560487989221405590330077997195854019782701770548630515980530866399871366857442958546289397358464917814796971508803506453806452816358398451620054098129751095955835304284054722701034293137933620146012131480045954632059490567023637253032405655120782321199210884905210591240975748078428844537502009685056992907435220514009273021720298154632665351424487750592352123757061467687192627214161908543566325419367477223222651221507324336811851928271344495378282124519438427739060040718205732505333622079508412927686858173104777840397052917823945256770676938257888316561200080460551652005766026953625554424447379887840770080308501086505715852743049239199339886084644361639190064647462377927191523232666221312372754009936524434411184663991171221959606022448796494430891630567766441511600970630823803322337666723783347351981661388467416760639928898126487168418202425246559264102173496640366454731844596242285766564444502372960476071324901040410788773262739015111745389450564599866426602858119043422001093938686780600472936283759587964734153783128152438551800511985369443252356205641250331792213362202877661140839908775151978912403657224025184361394097230600155605014091184421181446982491344498940664741999111790503820767347957050953857102468429619191614071702222327951321569610436880670622239046512386113652979884101188040222954445759103672267829637326330079681177921858509611752065185635462265288074954509243246600639912811277301027133497279430180591535939802056025995192968868595794728173736722181868271658485840217051268979957516623903731946480109771618778240070998679130525551179154199829869800325179279678374638302670790884970310512698099879362796576878138211483606300605071551713919695851597613780842507043353741470837114410891433159330240471491924742149074234465038469709380400334476145482673929532236965388660540898493872659791249060458527003645212032056895616563289633611053540464197453212479325211303230532985028022865378143172232714381492351397589662301577732427299592231355606752000738514376960062834619748389000620698624062807172625467096391843879657774924484465971889155671776406780595694907136039100381763152265437850556002925811182583673870446788311620844128812263539562875164564260787618244496903691567729553370793256550744243144637366971029071134463868116738548119322823804338009918675708247305712000277186547760538208884814009187720296362005930742943055578622985805888674292971117268524247640653319954052776767184850934458102917526031673802659626839181791215097093461976607271649775993370220344309857704199419278545576007346975701076800969196293832182967333805774799193970896135198051838745805601873502184140413531830528053758938681010863119976511616270136584862031906260003180066592508224376012473885487422143297340695560965234774719064337357857626077444890509377519078496990975561296388278524612297360034817195388832313448055424208751956506004792191337502100375228875082218831408146376273239912086165520850468670334431371842797928379812801404195401825741020897342133603278464792956328815722734520173511411062549017588255339846980767991990386738388165098542952908817372916269515893560167229512007299842720331022587279932854008011489805444981219499230032580193401589283934365301298228449469512540166232504328311738706004616309857739191979047258935707261612677660731963346241820732624474997154699900111357142757782001539255991475546470767270758312529493426901297070024136124489786367710280361893624974011710967937999701974592308740160846005986913562403970128487461571587432728890065672138531930341417754198627850889711087726653080491345356844121997033337025400306379203147224313919083771124402860481424652907174455368006640306523771228653557268872598579419008112957311230982840933848021466940999091421351941505858306161801777446515021721618621502285138423790140748974822184701433381949863238726912139179890942363688776565683034228930806891844344460466316089559169764765676176761591697566699979769439016303531246065129124417697999846321937730581570200241556316304608593857653073701604043267743276448620484293374813015037194244664119794753593872649888784120247761714033006722186172350961502666242484398492291346674177590612596706759733534002024462675092003633576464710641191555882781260149996050009172331702630978596889753841449200253022378986838881559025073766089830830678263451853963426608222323321729670871683736259852758871598579180191285344016856947163632817288107584916116650463465880728014548881487942674534260772935721333060739499339178359562712584960751606028885266034261453349742254795396466728560207251137444341252413797501609385847460848279547629732400012006770413301120128828171148067475522713297661393903398469918946457541471053254870293004045157764272957588773967769486623574595324966620783198333059907494165493497019669239042025290269539837111157672899524020202979056370262599312760854137732556693637398728273784337267550067231697238579568753601335934094788331888420683609439263584291665665496683783790514017716563503926670066122498329657651869126628637107938547123454459715981896917250727042414083126603669291424452702713077089688915054261565733939874999679580354945097765588334888289249289719021041284475188750139963912100120047168685111998447090091086283214776552730133809038996025749339604829639259084669748755943380196269065293296947812841318424429916797363115239239075800029079249539897897488630759478092979792913789335570097937168560354266926153597467850115797393667701359353876448610329456262604682444943619491604928811391487145842508156362004656146848148432846641522013286748764735946199430956204620670697053491692951288693840394620242001407941150609193322613164316578899754924950807103649568832717393397666485259774561545715450406133422320668598763152826813825921239495031694987371273874897676382512349351612545561284810978369597991603508438420518004241527087056128076725023793114669724800307211528146552661754047547543651838726666456842476202311362462544819198960800817836598107405387373406564358800695041891772020012097708630575078185176133464917284031086060633823187924773948200931860418036309332537347956102541514090297727212438615288129119856893902216234905328035110607670908538200001041858553793720010884178768939274960089599782598151324986711054318233993390577237569064738820816630702477221497936812725372322975548482586508351688918990409730568082153800161954084558703414074429678281806687519994803912264560302557050826052184082510433302462491427588075500311348615013983593235934373493479799036264227438856612005573859653916583345998302617161460052142637474234151094036694625999412120148303993730285424923120362478729503764774489728634133157607972884091782528888132116035581828085365512738018007752470817495481830582889577432524757468641090437555734629475196411595858454552322916891862136525189135503923546172290711523674362877993125504896028050399307520758957908396220690058174363355457832796893072237580217873650090041358947385815892561138568836346878957026318937661403812787255654637042788916376172623411206758494185894636690458125820644001861450743803433521898064645117164170107860526502556591670231676198124363384165700717333577925015260785291309270457350141808835092601654784991228047042069778193228148169880107378162192043290954193557158411668006960349848017209181333243712512513495401014740449542034048062313451851928182615992813157407239154591264957005933464352008894088976720391269368505129799872363675240108493895835561486167281853843200795740609877640626247074725001362690725943004232398060942696880783918467456811097055144219913090757938909904685937461581818662878478869487797306511771761806167561054065406286012235750814123487253286758363069967214890327925502371686144247010695925687645164627567161532042946292599362983764777620382377410520196602365021674544269557050305458454253136679649854155902855337791149439562977989987406068455217884691130819270720919371823461539232453373941959043043476582951197440847521390206949845278379953265085938632754082045786794224518320828802687651335663440768338380074401802134036998891405751364778993098285930425592423997311978936454985392450972725440579531287252187193168580489885128362025033463446176860915981587678178724232467304989234538209190373965423657686343910802072302895263742902647411593046958922503526424761560207782545143322519430840392395925015296828637572934354098204095591884725340043271637679009572118243272943870408733132793907858353637828008072954528823133815057091273558088381690064376187985271812378846706735095557390007009994277424696742785358084004344452868286353197614300950959454569801519587606966702993900016631943811128731925425915403989530318620355243698469541017618292819927041795712889827874338975814796028354582414867095807981975685052046057319814773634280938061515501914395867482548552086335099534121630223149258663380833815701345748904639698991062427839212460101734578671868391040910392952767600495256766316709416465017901344597160391872014548747153935178327156789702270344008814842761863466111967265668447892636345183704234327914723542123579561544576105936929477785184881211432782283225173802667155625285655093085125412263704064193285518924772285306837819090858046928200807001237150404183795412198724059850919246940351058292084254936790436640875336780259220216465524098252898220205973033893403459561362940880285714016387142889321890591500167785012055121324297394409665409161045503998787868259762923226075178378819321707589849438448397044065900067250795756417705617693435978960041947460135552235768154647889349281555092799136448860820297383278286862987878632667573597853227757517544913150527509442894028665671845381182897592160759124208182722316960099544137357392488891150573661401582437294062252117039631150904299454831143935817917317725798615085429849163041055288314396898940395692800287199116782329655300969123704091552376054279970942074194444303088649327917102870028900186603154427789051473825034387362722407400701386525690175118413356693250507522461501083633082444361268003693559466434882498144533604196325382391349200668950511736692562483590467109180457727471331736822000063424157067152461813591832035427280058242406941206827205111416436169928014115803997143318259883483269433526365002188881083893334024845642259847757311684174312764718435195936912021964896757218372760812631232644387306700139903144291205093377434584596523312091363934932656395478706448161789784021712156687213083371476124205831735213708441167753102504780423798454072831371056775273222664554673815494046923211781966598619573071557340270590962059459736195802093633087606804019571806143695943666976022189941740563334033082419558438188145114949606880885270078838620879458107190157380104051400376591309671122496637510344985050105765860183949796939755320490392021796197043371408387784933810411912019528486120282576214914206583887280292173292614636922459564421031921463483815365472773737609370288405060564107327165291281529693221275645294407464436673648321968401386841456060197790310227014500742581206714923118314675191802394036084165154554130657897086014468156754110955859516454455595498761268234322458242861447350378015890754859038993991591541901210038365318179289034536840178079319041945591960878375749081337942304979323546342644897123145360652513621663210842674972357484890569263118615071754844183813965956435739785533062112313457580647814023485850473088145737236524755164705569423320579302358796996632361466342692051345284279389184775993450118238229710777096898527715475606396480488724540741995734805596855546730838092726693030907899494604469999496069975277769754594694635373473703208124210344131441969811988645030002712803079524568848975110046859312563543813309734113994297659237647347936151332881210432071928476636554702010266899261969122358113623782524750884769203884581662875368144207620732170478131543311226614995032022124596843806623207048728470180631359410160080459123670242016257465089201719077986201103438754805887416384855722883539230602678768961573834635878895566118232378649750211841914505893884480466923563197551875525951038675191890018226390028091876945321431155261283166277300970645986921526073436333554112407925584024089677399420919809298903422468158479254318713794798444483176429736999879559119711296571763819813575626996432414381119139827705243828635940428720949763530198027858508669159426084327914681319598397699776631331160767261589806545133880661596282746321175005067969595737416050859068938280455631463843781819380738142424808452019158507683223331286403656076988804045922241277274810610695438208389351147817665540170442975929285496051782181042653843735351147244781798253294896507587354524535265812061647143026276597179921583593970239972043809207685546122620103535799459913060675561338047799615091112408456242164920803009467440827641304910826978156017907012813860078141452881596840561038121938047557101439004528370436879315472153515743997149313691137318353114500429971386351766400933131894356373616112676880495242667023485928948882809030642027229417318094227082062625370182056353039913523463998255252835994864037641724625140868406235738172152997042440162531783541622572629814219831720684156422154183964558787616858450562392822708426499898611403324427407526464063475198553354295319110149763885665518824782044016699171187308177829171259254806942766477644463283478362698821383786388259852701774501818157501796248910404783791329675407506994706364502851902129802663285075452534644958810649970275974856377686465407520382835676642490765043439119608345970655167389254148239878717732566394319547903749691034666805836384813450978517283960201863661133896446355024432482537511072454238112562193360961234553673304197324345223972242604058053148277018446015343937753445358227617844147654128524323513625378697112812432496189988357678222864811769868880100839619660507338984237888834366202220641990634320584172860612562327289208642652092819462459597973972820829082832428829938156791959003504385807321426783163750528440669412403503122801938263777014693172235784571511023578788578777974940486692102355206181976645741565357157540387481645293179097549230809840580343608097597167387365573218576309431298670511908898826586936380924296648542484597355301449022582865569521888598755160765114456873491660688958649331554859500284273555394956878433798977976257698432291622561607949107050005321039468659636056371143465830222941697546100298385653256358464188097518744900409003233769843768088348678878261507714832628725710450415347844026878001460555923762258519169363086164028156091054673405443119126244191972613442793788343129496724121986114896197264208345489758599920888558847985998545394199708263104093474243168841384763582890499845239143055391020788690669196822244241016571344071896880702031475839899496947515053354798641004156758892619606865570138686624378284020551788008366327119737117804061082970313024142135022308517230161497681153904100459241944845678511925293026252286608588901008703091921088759244267523339472533655470335094104767382620294780723624882726925145924982891236077636157099783045041182914669148120826771539526805720021538276005727711187595073680470702342014335906391932647257081373105305542821673110391352814534684145569343759975879418001821982386728016209226601904415600514171774002109305613106516701904978406955585282371853869000458826006414942542004416637113125733627384679613272577686850279037795082121384337966306522790532795220786271101604876889621529063597735921327578695147099800355100357426288777067416919139528955463448407865576858287000322246183766530398248289386871073862782533219712195527450542228073219770384219458746710338852285187157003073469332031550865150368173479522331397175239178263070014184178293761016108527206699573326717920479591509524568205378336003013791970631052363036389601774745932780180114049678377244688216519907954415544856137789764909180645620572782880423595774534877431025234681589569602025910409544789575830088462188504654487134932269373835114863498623665362855486909123536285053181599786727116665323657882159438423810597673286792689255498753265880254613692486136941965174618515819256802663017692364692697243383411975791272604470007965564683760316369051700936754044380132974358243034468710552391305181302800673937435705891398877142664353068518994123325646006731229524212250181844341190652561795576094764249587011680148951182907287438217289894457018618369475598747470425185476346632955134492412599002626714054146789581566823164141130667238017102532637029205699271523446428919437876635437662193653237643032080380899254610464802872787164513927593918387081584743787522301000837497636505697977667671771386490504880424123269995933393423629668242333426756543077679606110307560829775277320346218868040957771249994407776283013773731310048024694282839305272848364199871802441611657568268883776946157402431400257896307492819526019802346251524911436936677805136483900613647906020929130132176439184690260953899191848195866847173544010788746307724586066446188911557207127510856070358341520953014324093059692907581549802222320381705301184575364035421317785491667943510475957025813326579724092543998668997970599642185220707227855011314572474761787454444856290887259990066738444856247817894233322515847279415736069330757228174584860848438218461839151571410711173660152784730372146011472315362692337367773284745219008386559021570200867117761726962880903275282275225236961126310766065951835948245795737104314948565089819843847807356314631443689771101060060678506048527207329649924396824736970125627421409230647199834790043709435455493608970077085005998787817370908590762198373989508460829949885240453302286554909756791658494355453062636467992710232269707071813824407928780450853595680541348771952221912397469103529767544288267745071386065532360136670571482669657698308497321213020486128845116146656328755199461006085725298665729193124428573642465388716421812487145501914329497736913176848515256300738446627624883427101965836551671959331784326544488266672005522806772980942070305298135386300114128898369606156513180233071419898487447338138179115818426348824471144153264105529892603128501677290170005090785070828320117427882177233726311970938728401133353394724826855605942222783022272166624117593265940444584082196522877482774027791419152200046840974004991517269875794243863966608575351142144670708837878136777332088292891346585130916862124591487141546364758587730536677084937804299998687319165129435636295253434688094966165998426929612061734479709066835877507442094397986348551752754991587366793912138269926028734828664659021322409696162597998741276497673873495138788283431846923204702822839176625492154192655140155619418509976236421378375511210243549942562869350075615724275555223705436399137177253668851063482450894602080659837323266316049514578611678631613312848549716698683439747372259713094440752377788153006859922224378304408550160759338801306300619530146855240510237643996425474357715675933051784333025750602295674323991385504320524860228279533625748322725493650046066236708590488592348930390755952712382499183059595026140539656842120832786014640021971311786262308921598736309056886375297148548868172183618805312425968781503490563423287840493321325261622526088328177203166040310836042959234641038827068689429306810660760728056847651815368328741021589254359047620291103243096000257032877484265397915506141545995500480880897947955709852196061366909140330971635780880062227905271218784228237931853237827989936164531259108216818413774118466036068858839239986802531404256183711297130086855503118979201316599005618862013754089404742925290703127689187144591550366368065877517390846989261256614204046186349015941241610370197319152384506925466301735334203614500093013279307986392848516971482524589726963226196552078802359606163385970216864081031815957713971607629077408807337098390773780019446023870163270981397723012195378831193599803337774593915534134473430049028929039624726304649159495668454766682809865014412289834263588610150912086941473645644598566045774373695334372223301745778132723476182009226423964263921316960646025839460525922742262785520678860490878023747660735612850953741730873134461125335545221097003778260003912723671390568619337327665732409602285048979786309839690503862447963278642030412195132909355441731232135762502640041653544228863450223880866695621323375148829543264161076991712760702182737641507149594799051847034520472146444354274488698189089903617609069768917216687281299861889866889719424937703853034295688759845691590009271369872280292406761268000491795138057790174717524171485683271693896728147808616983431975895538162692525050079025822752075416719393075051426703305216517445473866467951754706314213589897631808204632754083078588134980572327378426222353296154239092481057001311745511904933923944171214057977735651209459342721268188822788138445410044668145129898198222814986421766497525131960765893738577501255779614032094574251162724649751529249842259772535577096756236363974498546678582312707832747133985711642463078628667218397205752875392935604276036570025119381563126775246887425981185962744318995861465896376222444050069473167591424518093098695379168401054557590131427194927908475731573832177530979450414248145850294956333676057510644769881085984698651245999437940719180548722299709336221996930611398335699006844778762258990399265277675372616469824407130163018007998632570880603306633863097830416046345617390720849323245642394417850395142446323774982328308892605834821935055963536749313416562955578562176089301529058281607561801825785256844322962726015200673985741353519338835577943983265450731129012569293554546088047819540587645722636748702900361136736756341847400951389833441198303209259258317330962514665864088550555707373036931646009556629563139242850609263656404147179063151319940624774412917864266700695839627207808116934077570496503502318103039545042255620413493447538666567720583788566335856986874908757267449314558255118633411391527408209702226845564876109941189711358769061330875361023673088508262063610114952885292547889758786601824375353235795629917741262916521153687727692878609756788453251232617107428853742983380651828374941419105578766723409391450233818174242939569313774112571690185658121964968706742915553682929219498943629944982568912332155816875424793310388422970173724216203552000390570728837108614452069009942539146420147763872840214083933478397544135004782855039387686245906592658806881288617017799416982900298208380519552868878433216885396386034776416180105215527961555897641333976486064182063496897191938010963148152570976251498100222695515722787466829166485300276308625424341552118326661553763448278451143638831974563362720983029782766421413014289485382710169610069338631826699660594635294934660647725735727426841429171391866456843051942015109337261878796626026347945869367479709413737282736270243117521063109147912219597391283029412542964636173919682573213893799636021685779458351985671966430532001527604219736465888879135951444343456340534256263370414635163620469015086222787803330629635515725029122514828462363099091985829456345277758742574450016631593307652686943815822791079126345655718945976896396001521976118605985897984410234184135498153233651240847424846790888327589876779918239357175599445782533814467257894517384080598557400284434933883722978605787420144032222202109965744053790371875345046962542839398501311541821124845291685357190161347553101466498289454293963378386557206124993736543887756250215948542605754107236909765474393021805524810083230935882601926853322307739836347409421514287261282359701037096389942847245570636438478691332992812070653873824851005157656164411603826948740780952618722175117529628038213097694301965014465376674859290557426532977514523483298454818207234439395714522106313058427747905437558259660115046786933086113771106786172893640752784333204527351653331126819421193098660644321975501637899166302443098331600081769383262779356961657166556714254612878684793777227541791956981017337084614479120435390087504523884063548565459335519732511940793276832105313603886502301216515549745349576501263151506666264222437226643211371441504988112716228622998869352107831041868852696618777701200081978409145796990770862346974378609379583601309028822418553289711516634371369669614094628998111023385982494114502153863918375536733202437725078660494168455011486300753220300280196231461426615076678290310339131239686440943640662124026066898959505278196057884060436706799462794209792211179327170156898988231929728355430734110418422591093773028169162843535518490771298294977732414408135189986355243049628927536036071380684925477597137343003700687878219253066913721923250946570822828748997311842691741884122877538886959934466221181803269253363573960826329005146062342653880070647247772805560144797251809208616154169139667723847388668944262821345526972486239614054993091896282463036554676657494516014195021129094287178663858702905197555753805023150516388408418393629510874073012377998473021369296741264288157499532899936979424500299787455436843593805981345307205202857974314445510598139260956280640858758565464099384638899626506911624029232021022502855149600165654319571899665903397157498013943593753943183809359876826941683750080991057641402897495502093736039409416763629594055081033233303650075078427233951096983597147387961943438846127236015019712851391287241430884431703579516534631750784777156940731998356943638930447261842501570100971356091614976496070537741649098856995826296636044140605228710687856055395500643747951564789542414013993958135343837241856806163868373920613161148948481233159694053062130843258242886618730745132795797765779644699498360492442372264542992996472394104123684268931842313214550973864236993038810003945391837447150327859778043067943474955352955839267159743329451425542952582782644431782808103833231757348293360842029675963383396250513198186333023930234040832907016600935842199129727667641889355762775687841205029381698083442649231955846840018508929752505948170898158353985398069346232631552102813248267284459585766730774892836768413302517914982192413344891601338409774368726863937785337744389690420237466462423964380299303605677195961889843140016231414605045698146618893988426370727724199714497884912657568930644379239864182202043242112886137369453913740799611820937488458606633221422220423125597488367694339296231016162271382207008711863268983063600834714247073632429644036253428568480948537483539156130547444258163976414684257616749781728146319678796172210515360456000451723142672311308313811854910535285787345432418235505132243192875034924416120985855991559155543821707312368766639297033873816217725697992632211833473587064905643051799398875320611493982254781460287717701800133534432969452137694299208096546107264172971298216679554603151863735084786657942486469805410600971633345243257970190999997800977027393442748839962642204660220566586426995266329314106014698295178144092696228026339772116062820471537041290322930571057205425290688124629829122627456617363060034187224066177731693494776527803701855205298615216530163984300209905859108168242851201969468027136314167010038037211513414269508909170307927804383944805327505565033580831900117892038409818285603278250881822678519132582036319235525071476616011020239291078461617542995843410587566088091279267369138706051581251557300399844486074958475434322909454002844666713471589983945623839555409538280930356747290227900143105637992395044258785947801410916398311945937152022358266061439264288938819064196629211354310013379079826577804749193219971688820315842221298129901801635145377052037590532018377272173985918252769733660045436632781544678334914692020764912258524678875806540929267946219889809234888597172089229802885215560258256511464199609804395216377887456443155928201895374994506899398236306425998948440900347190860281227354688113169601361082184233302038164314047506961686908884590013888909017975609259062556426379426209475360814880570896264871937677773099628590041857269613334200197022152309901384438086073318894206069749021885766623854565175494509488852321161682724226925664446372041088221735732005817492086382367193394186677735132419357236342153550675718753444682625721096358427295683923050573872952070926316529691534335170123695606089827525657979508585343018397443454153261643002471618377901589510088650372293007024419525574194793697479984751631831111909185469195308022139264358072629380353208456591276653192403292206825537951754208398270691277714236686289580030949045753354811795146348294666783822816548471575022805024171152194546147188137249038884816500291073551856837476426008880825518252644407450442039945156004051891532503868170272490751026526281349015560175284881237382911338170420594176652374371835046798723931353018754848554364734330944610621644882571223086837786097122632571667612367347073897709084575487013607452335650863520921340098649468354141304679206774663129461188364009487281039023357644924063659738156722327623985733877306699619340546659816883402018396678122665929777282053912164891783949944426694904142724599585798989920115632835489318682007058060686432972640250391428845556120747881870827617762717205238989660324808539535787523444597347712243401787644535551437931798944466423963485874271059076911575643821280344364736008126106264206624168040390764095490979886870451163140226493872764625790057015615868843312386915379432524248612930846485139365207481552111460165832768827380867579282719651563974655627334934370397536799965051973282364804443714574895719996612732388494691555891673971606941986902870863551721095616615270733639542223837010765986262775635051470491105345070102182666375795020275567881778602499470561815918191111098800768455605061965958749153706329559370136294260349771349673154539597890570753083918416480725660079348877579171874102370787076377058246617634208194324982679636905161840641040581079629373076995535920078231584166773605596276479310265116439503822709102712654799960815601241546316046455491591663685314371926384169350352551249588232895301475856253267788960433589772999608404753357545741650625773713333062422503843158838302538984705195417371120840978038926225096489775753434939110367040031390552800331997710338509119555218152560711499923369126379375608307948451586270815749804584679974611425986478742347486653848802498002633315975211582417199597016207956930664633298644606150996658764280285041486478246907158198066428877545035781366236384842669176156415167868804070099798840835799370263190960159022017732037267946577095302511146339589212084659447258223853092713382645635760117864211696409182120548740545874193550878275760255350883431582127525800183697515384345359187821466015182289861437952299940595971150757202881270915193751660096817869024108069988146460401046941948034774178576743174286148261830274289670147927017147573805561501084303147178045651475471724181741709155902898824651214655424732957667093347345163844026996960594790474538287667891909014705269654013785950841617769667197077917476615582769951442027052198320118178818305341207198357328505828783212115748428527170245637104582685646476781582828168831739722776933517540652022405569069682710875957854613362320301428887281807626521315008046738870283456867554067313923680066484539293924161453581429495086859032485066663630612848422937161876069155986889815636654138279874962061735664640330896700678981669970076738866746481608797476133477864425657124685021815574376795522193101010304231179059459245921615520309255390643843292956528767898576275403903768329759373768355010111712527914137653112572029024237187669022185055095839575241374476798176753064355162005380603982841067343343822847943880136991801837129114179571175072186444687388502491555905342457389493644786601424363944436075554970476630083645408174742449783439328467276431270975190846454324358232949254663864775351768788691968566581632599876666162327305714559471192275170629244265054301271047482740641568954022259352763786697406531502887933547371339622504886617787627899838320259787908381612450704954678256298123204534555252130173323005703858502681825940252502350486005899264683062956978652147072270814634727891456718932662482308271130317775875740321596438542391011569193482188247810061683859984664538423127490047399547997087183849560942780919594361683993372439921410145099978910326919833539055000485462208909150020423823633426525856354042642337672657428608234866068730483227220528416644271158232640952395944175949284160256156917796952231836042811836850535177045976788351773468980667246816948730296016648159557897584216362808260640842428408804877034702075289860092730153039204609702822524080603050740352843012798019708649826216228157814810689980601458095811996825404492495338720455545585133979904319694759635910141665313503867173501891645274471330181105097527321031118140135373062340561555650918383689689354687600301643684920225751724249448814524350586097771308432835663516508651324303493103202425143036834088376686968450324599963279687578026678632336412751305303468743505860747624863107063778153348767157347369364909704293550565941031680908306242526085559024197663417648844269746034103726928130020765086888870111905159528714409183130051052763084046919149059732941585849818734774179184130208040892929876046078869699072604167348440375449228244218618616578404570076310463344810579335959167794936422614502240980976930063454506447655284045049078947209657162855976583847735960080807162054065096753723806487022134600549227599375706405045727065007511601774541017986451293949667068345067130800152269116874163772029423264167520704274925630577961500878962868655825992436465636792834585751511410008086477814044967787987716294949232977898742523549821667879168163213566215533451741492843250886307043317529555879754754889295071291748106164248123943013217486149762979087689291718507496457378991763100863775159661227772976539407556546256721038140348923529530914276453306355841340954986048737952258854911377998905034345576248375584004882720339231410756398445062124204430348170682957634498166927497260953143614295557571313635520980536004771385497367119708149437900543748344461405636013199814408503392815134137327100309053209528494301578971144771404800904612228120378105274106183516150437607169683210444388714628310076551310230851666040323373262700268772576850824876615766480115065924908378432584206030580800890019566514898594394422182941614037921106719332383075966601273843357390752874846782586544895138382069222211769092036380397629795094550559410317160289118608112114173511588573285835557306500335403073077542191934895233115775222305427960311383681353897909132046609429617266488910391754516050830523360759279410405060042786075704485025454041674102808021121109631034020177649187112114148598638942276207595697133065139335024783928169741672422753387002643946224142129043152586403394060573206500288622744693579430141077815431153668031193431544068903094039054508596813754142888534821347834510767688090248005794291257603154495700276998960988060688053099028830449973361135008728711962891963108703354468145837809431782878162270787664070469153736845579860935740710897889583677201873995359052962950421978614386824180706604675361879754082289777738910045616939627201265519163284088507890182497247246849934860836641438847566321362895457015957075529492860245047739992361394903217170689809787740562802850514806804400111098524598605448193650077174215492025213163939986838413413670679963094096337551501862688288553984411186234600632832520634713543685634846848058901716733400885548705150040570747158169928464793658747084006768347403989921930483591642534527401594170428527938295841062187419815828688712463616790096216298571990197968715959964193107164573749242559471020008556846898122365364760263298256264824577045648488510251977445356668693131648566355296433511222228972765658536011683219330769438330460152029272749737565900793010639090166416356395338094959446125497241441555908285592918374363353192148886457179055969750159885059527093274838881960230006773976354641192018078141725432033638377970836683011167267397362613273057645196515214181242210147138648033717674019400372929448210117771675320423260491534337706679919703500100649765069383232584040371659928566143120372342218762756621869139823558691648966737802160438181844022160527340390775517911431072450607985832576812176949471775595164881764378055988579495116216589417592497243652883535695999316971582338229930183822053874216173398506002037834476727633944007698128829220446871490274173724960987733425867127945312536052821250958415996133978948763734598338602940397855660010022618753615830283580508180953693131598781625839004781721981683722548731495678591969506515577404047685686459143513704997272359600535041517228802306076174335797041949691085553141387494279628009275325094253930501394748516831528485226031525722615709614964265804779602247847461820516614537160825688764838118359622821650089135337485268038367540804030826791214433254858375930872069993445219711112136085576930328461691546277472243240491935597422711222788132278826322517804436382485279294699727691002466727571541620079036973024920225664958932728966583543133136060502229416701020515875780145776594193279233328599646076899652398983314016651652193482610883477921466666803279543441866216232448947673635267469269692926173243389188891269307634830321836119214640025714025918627868000396486905360564371949485355716754608380937074136848837463533541346764411972588318832222594199986953798491870877188663698181189203353227728055366482012771582436210792000085797641838241000360761385956531919075281264271370249642624133106097743034436718965575607358625928852259176238060272639565590389949369811212728942659709184426498452351826073092505704187915009079690675826666452360684090997564115272813750209393964298569989217170600219453882499790447671432965322840448346193334991290128095435916201493154592363470808185778725044648185679236569902237834150595903112500577747715725326564463579667736230610740619830854193970814015243849563710923520723549698329432764839443834073279510736322336359162136702762147429935305023469229611612842945956645107403839858567776251059984638729962237893789975278511877307638001141799098556303528945717997076817508382234553914146530492860585202643472617227456910235952246611799298284769296566196358848623993433384054160593911234202388910686110751253326862119899035645244353035463434361645634925456380391776551562916687038731955708773572390248175187570268863805568297004858908040634092529357066294462353263583406145396731480449249084980882566444419224819946610258850760286011232211849644963443080923846985180828890140775056569270656178461998120391942792683031797183880191463283951154668474975405813425562121406907470206935280366744433664775567893632423399320543570663460801032634416148087787444917158214021156575891505168604409706876313469235750041631867699348699131128791817898655459016070362218683184822075395852058318283101073498948497795234790100577356184852350955302096555466847413905719205686864000528173409983796177042323565765166561901278169230907029164589638654157592838321465644304821885553365694443577252323861829372439066130820342667577558700574222666461803697260924252352607274478456842323028934642134233456450020188092085755136049288804276033824432900263980066174864697048552813815709171339387801044327307833506753609192772220399174416207287796090109226491501572235907497245242972972472920708015649002618368936022700098389345401470152965314668251908418258728788733927235151606960546430157203336622124135557129684425559598094029094058709923805627524531570134501661929672246764622363789590605638514314492283691142956534744466459171695680861454474307585201284728806391154058562518642360835724683498390428158517626666274909723510580629343311846998581336197138824707325742857948462608974791013136641515399562246728152267257126761709212427969099798686238814881353567325736018536677181417416584423904335145455837550559281797880041945213544398300684149418817613533966196815101500737080531669358323260532996757813211181571068854212236862960200354848135575923616113506456585193742003058924451238086712545393267964370510726481442409404137581745208017384317689325532367469813921108286729681705197490630813904889161930698993492713611843037247699638977911876040878704244274587625622883113904524904738299107195754834367690307770886260883386073386226043070026475011647672772281347692880181657986602270503423997430128682318963210997154676214919284511247841081794325011687570579503284434172589792006326191855204801714875995946132173038655607351171081044776167563488779072410445054154604306786002729406851138273508870613256424338761330965187781347519266385382726329749604813185253679857747134206023528978119260082573506644287115635076101446094622818661496432142387292114269624320345644822365695958188893162301501880930144521825403844066780436588733680264103707492347555971347793052549513497557986055416093735254515683496947609137495071169093760494510340150852105486861234998360631125102124711821972953103786079848987203763832789549930430119653877102569076075877592670367983187926369164481678458116472092939497097269831895487861951768807132001415163316515572528308444625828157779154327080685140938342276914577432419743163759693566155677833376069484484951105504649922108122294222612439005864484281706211330127075558503886764373736826709797943111678888125743839047658222877331224072232814234865740426271177369334193901174796668068165108907126717421305124861748902565668490329254844150960834193821558114269690878479772292432125754266902221692288729680675472486742890499315991639525650925184340585210544629780504659454564474451333180866085653792233735640984371080369068707355686492764827666840960334255407747165748145325672147943699714778753009713637489331865647667429585035172375553537061020313413629280706600597508417046490759333989716800307023259627740050786796891158213991681101436353759727751201559432115096065535115155295799973477582212673758603409171593949997527462729434891080993097423920860515706219260093866822464259118860658766240045603444586993119662150238103051342775350464673010479161423036470568384442923634451788006470601280415507151440615863694232724218304450224853384748544860705520010141836118928120229536123977095135139297200267776775342345996238214246948965183415371631758197781722955693184323310920692646179281774199301022853242128612469488079018905884722014504850471670625762977211893395493703488154130083598030529548518187564551076801932543129516248001206727769046522765877972391260763483893454265355988524627963356483594077818552453720305360589154982198389318241877412339923261688868457625951400438878678878055661654415672950940346314936921979631545776192975283596770858331441596057279737017573413453962502259846118797384057925657682512041583182865792784823758097024108284951728291352776807211943704177332097162219857820893847419279037831398717126112325423243327733270375800150069786364130331362027512016325330000154180503547759626262255957277131044484297995355104057104084804944205437141006613684213492026105446099663257301441742172979763419914638494630755378494915225714857986294473620943938567221277255467635251269779377147534444802815573286425103107232920709699137613318224935394440224791100024911972005803360969608170498853213373315354235895194325389820072406680345780139528061267967694633152024599619040205934690716380833223800464848942412903470715291046532686128492901195184441476248150869020433647930169866248128399460227878398486565202678691653618828046191307491969044412102787860424750770148535472403012814743941702632894458033533975566148500860301751989171122261521016747969032329343181686328953783823885147535316976554915981783586965111425834403330202927859854919897428302997765226032724397516349749719689715609029101408118701932134686931866618315113009146056326674716710200046759124478470918780818211342000787307362426271289294957873429567659749704850435417838414589467153331696652894313234902092668699041488019905074170402746932707999584522375358210754940206577326460744028728123974619768600004345811910364532476353472393535989745643018352875567807643336659248113364864720437610729977614769007668758510919709968909715951720501696860087109987666527175608353523644579613182458436404300511048476528176334941829008451892138964164363294255114865866619641912371479936206880144660613931395387408991754885856689305473935743168365630521653340553554377996100329372901538078820192728921277703410153556067509443267106793310085841061667621151961960520484004986760863229207556048988682439213588579288821791913225718179625076613664452089150183740336123773525517626749832409470447987648275055874431011814776469003989218289071334275557053549913407959546463672459055740708035737858269269069970744489113309720667594052480790973865397207739971685724752018032377709305364074189957074732181526915883198985822464571699584400962103527578448949565771776966102978976908914806377823604976153711686504302062329105171399560961279212971133802216245775984415818344750069519258923358922261112850365315255119349495619940657289377632631869622196863322135101232012191171628686832822229591611937433718508768210400971164803529894401968653018613090718574743722460629765489153906751785242245237104119972022739022737687370071904594687299294807523457575799630187379613081344408775153932451131752929983641033419353940266075859881438905622926268484811683030273757177790308140742716398270297892466127385760169210975067337293369620182584245929622924582028167797640865501886902823875951933501792330340705752258139404612951988715261628012130119386036294602981924150055969228433337043942960215839668260513582717058659580174754718106999117374750783530612163588298875976817028303769161949044256575843605726722345768260956919872671957831194975305203971616762780153132934410693204254577615473600519527527425795729184590941758913873833601142988816231017049258551354906330736050613355097819948455419705320977544400946375734570380346127515958249512086910471283221779454375445044748929996961853121299701706971983272420648597443540929561175495635420125932652291037368533966312798307145328680438498882189850137702239530454622088568379093679581309157101785586951342455411545899416681573659003893944693563769119633296202635290738405487629179915223121097920332858680293850304310805782470321987889885402192452113001135944010068713433542159017179870008661634402663491106659387891550219731254971439228708710730508867923222727755873136485461107616901799282889119732495067651436149848348114834825517270801352045997815274769505706468134690099342553738330303010035081916900715872551854853813847727331673504897893417485846135360833068902594969296004561934792834497972644470404464688544217718323264161564186353882854110859042417535323750092706750515365554920941204737110628002163970157702648477181740162557273810594035144722204920002875288920638278172364103737158909939005884254831475475565202616640365519792077004467297430552714957747792883581205714793514497306372697709379360034153703930722882328600187950581150624484408286533217061725557551232168078897337693361510511116727043003081399872225937977796618421761324241014302996019165777903626155306551194004843569817065085067325349816319348069900647760022712658026375038830982231460334768857877524506477214095425426412445600586494229683426889167314215333616148427467051405464816096671603279180973920829488277265384668714387660669209749294224543347115183658746798768260010805621039431072261256697989396999254065379006940493112142692843931478752211867603174736073204011945532216744106440831994793890108689940640896400359686551411469273160397873712227967177323600244640462977902384415331683423069289588660398371860206926099035181726385047308299639517426239708357753220758154179532660034574484897221206527317190807714153351765648827756141025533739958045754341173937700959479397356203458256746789361078754850207412063563631074782070174070576213163597344379152631569550834788478667990806479901962471799270152801125505552975701372623639842329291352663629753706703788440420506319409317267650787101871456189451419272047814154254455688637913844772484462209944066727908284917018877396746036997817677055998889701717876730134659342132066560077556656121695533507272194180463380940348808630489515689601238090269636354355228180366986429738461678880322047695265121788236660468253081155897699714693373841144871527428121430525011386210325735790570371905138896149813117873845039609957720662065500533541841941279980088639776662003188759415698119825658592464525656794041826864967842540545929540961648541616923601284989627298859677856619251237136308645776480510119315982049351001395797071803180744177828098684627710717290476629133940234903378798219880822068981529101117461425583504628439177584594533915701263541881355736588529487614517282133617783723964279103581239252683110560530878888758420568723688240261761371334522131476787034772648359454031057325339960440912810931510556661903921302796646128991902203182995386885550552885845520016697431828571189301338946751143367834056804474319095381436964329207932239442781740060034355722432470812083057199336726955335820918619686561385497609964632363254545376253605071609252461706987410891322499591877893011402482785725287158678178983600075015838700514163308969125951604898552475368292989171921533116222614458529556450871843851119221490748218531315020345914391809762320023838037014279235812597752355956007856816126509714686715849622307162998127763418536609408966420054689171678672256333889666625639094977843364246954811880579443152866461331291014808078661920913432966485119740460635081134440894578383376112525595059470053080656701408801997312457763846930496070365376740173830017259500258303422449978191155510727675766218762504087016496469555094091336482025083525745979642608579080771991523391900226963963607141626021457635297263564789376647892423871767665734216563966248535435765055918814792412608162152928246406286728144751988550898827550467670793830241313782437936010216024473998803951928995039062665622021797642628034154134888266554596458055845262781337439905867446769655884476815218139202977014896858590021016368561184961665368216569995821915267841207664316563700506655672539247894147979832120965773416854318663016284452941314025193561411332631724083636525885315294908668695069850647331091645952559425372130506463579838386579695647807556275588507213737264737711295617425284764736214875393672097724533571891202855795285699368454776140335909494726031580125540903514435482264137760958355455546581454888857178605590880724365538611112973984912215888415793263083257873842917260145626462525336886554289584870478775510504559749931293107669929740843947119676112345298998941656809553829030647171766887352054009256829394875074437147702458506865300200120601929633437193299754140322846809894112178515925953052104753133478819987209113414134520884522139463970866980842915928707560047844244796208455949791482334833571989488245776398778158201630701739400355852079590683110561719254986794069200265976613610379761807210574983192154095019356631497387241747770626684950503999030378514657895655857731282594133821676095115143928740349092149909205286314419760865456186594492066918392937673855768258689687941162581222397020207848558047858604608010608087602529820042919210291248091568133862071053357348692374272111240879311327592522675066362081933130279187228760011955590874795771433303575150378240019052214668393775258278103687639703305684459313042439835610884966911911022062501316892867307383052328094054105872056523691996684273127789832214085894227510423655539977376190197217673327446202279847506997001942096249163902489004635751453497058401779685037126208198148997586952361665851579349679675499786823790207567368419447046002561146120643145544296196620322365872277435681535022788152901107990850957215852146135190480820790717443978359641919143330219587669491979899651748080795112637530363321514035513585864491794774348782424040332036697667411256149532314555131201319756293638172663152868971645753709950740045073747371129316297497726051398507978287045632517921371029547024706128035067344760896360590974201873859087019710061914657794219806044924854651690545837785762445259594853179079413913048151008323503685959728765917665812119652929501815576272243879818610866495086172257494079747720961123196751126817003494632053486278794278025670057763757983932488979273076966129763212854519605575030379825087701917667990481041684440653543382172414926864335061829780725764324974523388853380498081917084092070321653874764238656520274444680742324520486182979919427997765964108288921863236455976263344319079095740007244373661764583709700097556352330054482608362114766568121175482531342297344784160893684621989913658380987037691103166412556018732352529283791131825889266483195693163135254112660992639310793474784034117001230201697396557186611931556527202956777458649463417301675963120436871970129417984632824318966947928937697651040020905170395138259747982717397511104484146057252907723504586305014007544184041791351064698042579337284262127967995443317668542964010334598496475934812640671404432714152825644848186597463704274742665561528809681167462062005994854945222924085840159594097746736594196221230813052234690434359265304164247702685611556510273089744502972750283853851962530026340253181596390267837814803070723065671340206240349067988286672933491996791954124336822234021494871326702494399036741926636444459158926801455007636961228334467768479637969360173030629771562632510273769884868931690185333751883191131786287091814275330926864575506076262260027971796730860885294591162037431078188165788994682030257064931647464041620359706887798849887009337305343277578588123959980277847064576030176071893806365673478807753364103468787907499958834505922277750613093175587045385850180210016316168198329846662690402464121159746132401481184020732881793926100090987214168728103837868535896014362799605876315852762902042341014174867297758504363804615129800304521144146820514076537823184664759935428882997721754279876378070850485683275577851794833224463237349865124299489371484230194297383528899424490065397036200295401934621400896089854425466227237104680707816743075505761811653699569742501041460289809226978123953218957502687890213164474215078276995876515770232626744194564969122739689234272841409343556085230273753099919458598730797106886942308603336668775416730767547718787753862816905901309702401444891468254309059560696220751612928445079752122432086518776453032641758237116365519909519805540734754051483370382846323772950024384750825834587033175231204990879339368484631175417437137484606522524220793193902861460891802697107156051830872590522981603962403118351867528150872621902912620226056582476921410982410027490585192588499768661854974876200053401617063645003856484822796630377296940387655001072946756996062390246957239468200483896434705566375873022905266439086270962843781640328992631848100813156385455763535222831806670385008994488325229717388985901017541648783294174268984871989602328932209039595318413348156647042545452919834217229306351023945688659856481346809404162201691273521515936849402845113404416796757917063117466139477088112506464192302194337636778716567334368127742425648030917309389488536949535273768423792480473289909338654031352025887500527316842164435335005883422868081441653038226103983384837046151133693411542378969911009013299569108146996505017450114991188496122437467453583877699863787763732917963966780632130328929956201287673313108682668628891087879341398802863366632193577571714168191048828275509406033587557319373697346254258621839044173373475886237122600699998616894693032873980305898611498534096888802958463476898639865099512432756941571887718651330382238252526135722257299754168295778173690695105636737063891293093795258374629167658776578876392165447754499976345421511983239620227752682194197061293605951094186958752986360302019966749734200989840137101856427102789732170586505026289982919396760883576490605862762513707453589181325404730518079132064179623707924536939236151049463148761145381389806341397774405264916901493101557542114242720593760362401012558562996416929535422580425366556781952556962168443802366627788711533519092077282645277064672322352434001690797840325856267153435877107808874323103579392780847905688157485096888537999896853792621742282395342533035952173514275511547563755912024203014740810896291795050964607411217790847678361107299868430163428113799885650033051708243333180452011353914604384237527511507010138134207024598448056582681772149177142137406807001531758744231564095583833215979194740027966057849665885984633558376615276630998900885307406197370351986987527315581115046527384667911776367264897849927641793073802672145723929637966324458090540671831505436878374252122968578434076328648301049489171725945684947862244638079384385072447114075408875483823198396746962894907386568896550776195295799699877200976833452552901925351861020213567873726746594731277637960137717899547843456994895535816539584327725568528479220086740487204497788822202942460853561978803158232997120563786562780580744363001452715032767763271525885108279753575236203558363299831527744038334123842876954057258254132102289749581410328427488346594727636636481148255091083541722525664426067828836101155988584888049927600170611287633215564114482018180609056488931164273846546797058470726437153804870347811866329312961280513484540088179848223800420564676958008074982263584085361042821864071691168088199486163237669522685501270510584364542080083815946622196177689481239540025442754400265333178876175968955516135285222059352383256608951349187348748930173851015021772850096414119744047652989896620378541890140259129821081392776765391668269679650756494980850013905023956209934541357546499695049927907337929980793629241153096711630276246404240427001067977196867223616272649299567752277935557790894316926300192118577905639561592908785281304813781267751056673166865657533422414655839856820623161879184323539695317061428360553253706348018801677751637360459530008895872621878209013221873586683192428034529634657164247104086966309773382974131362439899149876315267587918264669346388441645826087082542397991882146816193103894345268363163706358537053488349092724900149981018455215254392582137103962585331968591384362601000984835821483876553274237039000082127276123188709485171217243241817894228560559563519252728951467307032073887081337745401099864012645611869491255963153257488375746038862136954863022891570689114816594586500818491309428384835652777793256375316324810732379511092092069108349513216868711083097091597851677000940288381674516261631548295154947115694827103544890655286134519996149839720475336296759669162077027809343080682376123341196548168290145119379278947157503975187552612486857508412960980349023276946571332563399709707186150069735156788916070626694516438849061457887006274072158603976284949062396819659204659877309833666484430717738449235636923439738699035400096239077380235425557108191183959050591683682036269874816049190911087885059767875771022637679337393015451372634875043875799643839848509905416459372745440564129046412768531977256477640101746669242839469013352243186066864470230070932043685372694928250116313826503321821794212880456245744326790721191391580308405255759735561418094915211107906403822163511718472778013041314266480248146129253460236539724598700653884711638092812200268009342837661022299018008866752339567236780438625266206297858293734474889243665331796456243171097409758263021619172403792844283114754828261019594220820066235977328905115571195015500846133518710736144041535319546064069635298284811401310156577996632533056826790293648923589336156563507444899013036878374805742876097688412946706166959694446546554832141904075663706629089772705995104761988469511880006439647035768647616755348401772714563504425248627571843894810396765372216923043838649888131609090575395120339916099378400358683460325367499599016744483482316497104782715957333151869574247384653001975209704711748119425691894574244253451191263787716716893048125858890028194822820743266398749628280716707703723173090157778968868287971411918007707864291154262806610551651977041830740844502559556618096829711165654923831088071074307704762134493056552821184107415918848788824625994468057906146071778333154839570410316110885495304837486320324138873277409546194782145978228040019163586855594338291064627938157388293469350581634738631120936479302368317954543998851486526252414473443801087344181849665299019648161077122329318647790139294222817387722059898474744340612628851086782438388711352612352801322145491172286262727784511382168622778154493110217869311055036662878769729284832931663525056419159337364292626615441263018563638006886677589994028940703590645356530994497443104730780416212745051588917346877183818496248356845532130313967049477371088787134421011193364744482021376062302320141990739670516022303428710995395519407228616257745419280930981390324685731660897106559673806973899221770139304834812616979395978813257165284606650552075657461511304511315759556660935251264270085864863862713972629554717195179985665321290139997936911096162609799107975531513866119039330456265282604785390258029761002560052357505510303940200275594872007526809640514349093947306281623107690585276878837492142297359591521191635533344244753930089285125867088910682328884610888327524636386715283021598061950040904227497118131339998457855016887683531161718124661385896135104859483986032960356648459805028865339816282967915793162086816094155673325017389859518417057333430825477073113294610714867610120382670020716236645862093480238443723380256126840883437012681300131556984386254115211045340717930018082583836496589338229744858421308722304109264565910816903425981025435641378035676981241902441682846796144765528367244843433460824481645193527836010807359603658080615224675935216052429289445765074168875411968476288300798079172993573463673468795589403021615172264371599297189715504193341637997650376164739791582658503762445861155490880801203050667442004416900447954455094436616718645287382650388513518451932865099273098393959198872824346793752507931307345801963498882069979314431391582808438200918243830008818865235160416464758063330755592682458906055902673470259783329546875215810811239794281312241736370457780761614278510689715091279408294789111311807467333493802537476264895983775565019896433495721073619882919121583272505098448730660627022332448280912215256271638535075557166210504000401904060519107000044394344483089044522279458564948839139851788617939721574800668860717650382317756491943305481059439575608906547497315110750049077985578536997708593618895286197296470700928504787826461392455453170442333849499811443393633064892407126412795676584717176052215232811996929409356473746906849461798149907361942292236920205830922903321657796770171646714714509934497877379748740073716800425626072341887088001412994443717677525137528116050597076268752117502456906974999721283263598286072931176046869427847712432464954697666221762346251795006230332893762051976951848872644433538809688039545424843836908133095885752101979655564497608135453392051738840988129391761929473751763808441034456267922995738774314738773225153936160439930338126538879325508358418390201617444201465436654055112313609350651835189446604788233089911334874159959564687771554821128961497995057567798908440311422286615338213908081081180694265604472385524667849858157562249811864458625955230603556681497260550141874220952795857631395236873376624110254032303074996708796964239855905245391542799403932090378130170723156179666622740997094855780047087261071217150373019467523926090743238667949519053156977104501015775366218997198357376603664814893935333905900036555042670407419076614416041767530060237795850294846459228312870103065403822765892743504183411495218421381358853636381884501726289086719987093500102845169378657886713639251795868438653153457087021022969762834978175276809454105782259386172283493122249295899341351850998939485041617402221469811444532216910587289659888078008925649843721605580716951409075666751514129729285772805490532330195090220542341508026654025390946861361986486552160936422860326356181593571157347384637396539122573226246757113344445660654160330616412649812084499383627496236184062810967527823093750545226545339387777743463706812167743599485227488714719552429944357466405475140591170797673845737498063998719692713609626811821445655540853008771356282072768835309893086721535855781108952915791430067429251316732660669792167697123621010531100763135558316456949008536839709434291766805374161732406641966600318119726297074046151817275128834434526800765153298507602987143770068357449581114850524138876310954775878439948274899663155246683711660419864267659052958926182988903191470028264860244121852986632345416950021993562252174957460454450086637062837498113934130754425894202361270600179816895667324514966076041609608841306912675801306488466885920200718052121583068794140145591455691035024987783249254675164470987606326913731978371578948652315660035256836322366556620381730864178078999336465330177749619756120174317034877813129068040870973671192952102142406155393341354281864959317245738681187949536273237066300219147810545036675465303049329542351035924918638546426955298804182302344043598050130691343478270607639134367683442020545757906383281123933995234074852257046819543049550658096014549233678320234630695251989507623587514262719770219668226910674088362558093933733604241450017746903643086304991866415492427115516728434507123614275126987610376631510073153152143265628314650124578330106070670453796914311668331649214782866347912682761229678215879976832809082232483333932747687288647891246649944200603375664629590285058085613045305969914570375936601420263003017867827093443383441063617504405624350360015159345656089868883029689654040649285818395483828026365354002460070686227882919405928070888907146557751271461438329864025945703093952449569265230526463494858190724861465941916441322137692316678230691671261586519606960098443966098069194441260610205628621193334915926328379537557772582919260344520275279380846895928356024724056041020191202951874544131742097357667558422622781751204731860413433214115669788377714758380027215826942601996118780864216584943676406882871161783889413140773120701767238167252197296344666949817211076701745748809830362938372119124564950581432077938269624372096639531915845141612853479074460937792632492064703013167619939353290874351755047539699159250795975594835423298209416513970495129527308383421659176111675835885280830745436794386591406247645171049801329942893468577301553731062755309528622046846875128297562705311435134841664108120094851129733259153235021802371791090944716280443988848644365916148414139697326543571857137761952704782546962677150709189646130113502756144673176484494371950783384657775757929119223229097759420516306141619645650713157928545313177296832387740531517653766387017267470297230639702126435214758942966440741341159381847434611774596370618374226713545994072385457158322122197372164027646454592463352162841925146382915153117773689606621952949959022762741675815028906825796204766525705130218392407535274173926950184158554682972150736164427825129162903409955878708094953221430466761414284552799156397282538729210460927661558272762984168468688275486702962133378171719954584707652098284974479043532813884757600304039453412150775012110330839745386598803950029967266757396958575165550441537471199062140407404691357832346536374203325643492074607705273766646340859248582700593476749320838892298764576302271683436710750870584515365659004645891973965335878795268420270719396938693020067443147199382082089349686370270883879198947709156345013294182263061041124711221012557810823817805249525161353109812798292908640313142849228823487949101888362288306890077978253596253524939042074365542388152216184311366667067594616319892361538283691750771406476013083378928897646044584439955255896519227118871604524585370117614633142725367571446629293053036737620118645251557233070631085534009804812156214074257223707883197136926275422482935239427877439144945498401990555537037353123256198701838451464914003867508142545439097550755093929495198502642763945041703833802379272301249428933294686077858692962758655407067961638616856008106303987211862820806458400813886462696962244244388992610476997373192649030406008967306760752279293704437705409007126800783875210865390177855699975785470967388002737877614049620112652984989841900286810058063096517431662809261630635321291682314599808354273545819305175026645289370455997682819251114709864692984292791387635307432183037489807577924292427079183412284629702333658959541891521332970975945427971295237963461562031079377463122833342337199821077237273882328889574302618712439195244020313000815969197163689946012906018433222239194184489850850856268579422852693299675004374244971927035989841173263134347580069842124057562328789420298580338368955959734572446944052208685431221795512619255937617059191578873162959349242928809933593106204679667722679424835056383815673260468508177528560121440763400957141075680309518835301034098976994740714413122666201034332054833733659279236513784165383501620149861225143876002351527177929689297710682946797727998508866193498642708345874977531392214586559382309089320174924471978405984845155188654475513511458423803500996656603410503380726288532772362193555401727202527447607989261452564457971357091046080460141735567723658179346125786780667240373531249382133167650299753025708787392759968002652931478281114574194148445569838214872467641161531980610253765435992405247999698853203797546843258060041075100912773487694373488484036439359704100211483035760991613827653342373678483887139798734545705791237682020761842327625559607180122394714825638593597478245005651327529741097655555628634854823053445830743403157205682631371154081874839266990606919917839057470759672075285444531768238122665043700480852871108047994564316434963290666533374314044756118071684823157614978367782776346819727494607440729043634066444403305845490676404001267307412280052145770560318868638654510811807999919118120901808835139484794066480072834928620674095158259494738024997467388180382483431354837034542134611851670582028896315957625535135174176074786526355358990220832227468081481893874930059801444113787507922233681643047263246219847513135033968891605145986980981367482933289243875323422575595513237369621299549693110697820459159545596860940361827112493579956490186571047752765745321280808496124349462046080676997965449611342039070913954953588480598232407078452737512193955525697379771966087358634020515923171103889740310043796714351697949188380991137784121666275975502544018411213871769973241618989691814711177843492269581901464376312108267885905929812743574133811556373901976582914224806868445707173693321620412605121902238437278851327978905057698162725634261234701555309189950978746103691928644053237976799412950160134072348793995653665804450971795896935554525409049307102479877580278247583605633038728616147141246836021363876655716538371716889961767673061652760192530530481665492903341820248787859371114811069721363252868422364750080592607481581931737642158210105611436969852439858992587939237422789634099095380388455037783684075190604868889115734046450222546884449796171047689628701557518966126276475672903892177909307368788146957994972558929818321700582071063494947402410476321843441084722683436798760783837544747982982725350371574342764902879720388463986477422380836566310888154032460931763629121273962703972668131054351972801450563047428373993506137957017350324033037430852689024447441759420212143503865619397618530448125955289853293355267388033329135927281722831098904294128324534593447083917987833388608901288194095657715531116095236779476925558217210011818816260268506332096788098348683748427823260286178692860764820184327311157758399899409204240697066789522129863608324175405719119097000799321040527281954326984980995766059917339832573350226748006284561935309439603316882677082729893734880490534568043215595154238701847336247222844554992010454634089007904961467523008452064407773841080160538828532442494537194449310588515988883046163263501983417555462728037534897068959279033938349540817624140492035788988904358559311987032831808836933151947675316014092286309432613735986142151630763457286378247024856683108462280552904387864101039034945804305474531251464982477573924213844701016717841072258585685981219973083637090942905338599926189959688972840483572045612580337153598651579380114644080642532723056171670321468192557597035706777857023679718596194736573597369612709356346974791984123334062156327888298794981383592277419263842448578118330993009092782331351162000538393964068705410153848632094292764825247437823625146392851215024426399450332413692991429551459367900208752262221877556300341705374698635253045318814186580064506992808624185372974017860530072170006077519677240800853518702954620067869416676856530547260079221392680312725932292079841367316424141087984252035467951732020935941475066355273989219021213702831950746874882467682406276462492806433741478121461921311398289832091148789930415502940106543250079731935568771726633307218916782160123010844686309118920488003408921413476760290966929962828673379636033705154161404750235653974274124116826789287775547916263390757206563387075096730221299699488176178589668139401245455369563683838901406256309345570011266279489128436346554083884358206909983501173899447895037057513293176020391544305400346562860500030295274569411960183502262893496887833334485528544504667339192624205200492211253289867393801274769838321101929289277371350401696423851789321294102352358046785047401589251276577590634193891375067326536510023362507483707220320108248585344281568982881505108546756088793341220402996519495982097605757259890305567766582309070498602512749716138778874777721596587072544007271499450131860370388700753128850092263387656527083049371865299449045619777830583549799232159526061453084885157534954775255478306074986042681188598456552332238502692122338890266751809590741295787808563649945372597326338320216150935072465737842776918629845699173046358941884066179648234836871658928000403574240690555398493466224761978593207040665941714393353971979081978217637744996278199953040119349937322307375875824051880901882402427632497430406751312936581400621383803994577752100991215661840247405665405115618831920775613563507617919597076279317329325570190230982608900301540260973066838566971914512503188128587630931558917228229962617279398622619282953038429507184393964447300914716576234160802288034580208502549036433036081366082515218906907180967356563040151806142410004754560327240259036032722356328110449645550025399669851216265446577805218928301533296710333972312312747252403711257795203927787004928622250543037203242590965486581349378793316161987449914641972151888940757661862063740568017611380194697523880884474910818570666743433849987348083403329109854047356104515335376949438757812652637332489718103796519737732824498215771952619174032859342857963988762646343229989992540777765561473538531696764827080577482933663734855292004150162635511987858010849263414815456985923111846908167748940992174218372055530043084503542182509021203251449679815265130454112203423134672750283531007055783370767413295330474819039803747968847341171247574295853367961514448952193207893751743961670411486270293065500666989401977698651618686767140343984905012257598492571483556886995020656313693861252265749408070354146814150463695524546792747528364916984436003934993158883268223909952028721161028074684516466657108254259281209625405880745096698188656643269989048860523514772851164514391342340897635876226317609439150323789536197609866369740036022363484760049646448157217747533230489837619496419881266987149218626619394019215556164307434609562435664705522794351348189683600109169254454514236191690761327369285971897856520655689033108956003339167393964296101332410465454201511124326317654986898894789748680315252327892389124837467908886624083449518951065234731638169337845403434864419889226144410810259508665365014402789066047845290340493231630235959754442268723227304442165260712579734773481935485501475730795656171959247750922421080692848682799192447778372358442549250538441205379135650681645678536778929628064039107612023704737470147760484836080580260732348470790195376432126986201732794462539586903690853345499321558732894163302077876628065775244281928420963442079669949159193829194945399366919729417061944108279556279203115277715328669258750762055116224937419109391256587666550136219994664687234491887468136763112669606880734040755050383437869197614026962998040519067410481710423966405790676423498619606325350131076849105674944232426870193878020115375673143179913288325490488773374456839373660706905554467677417229980722335908531204246407154010930898208202823640706532591693263304824899798169146413857031584629978832092053712591357921309122453034178249669701723110671250313240225125904026769023052123859539610620650013894474348865094494389247633203138075391339384425798695962504302753275236953732265211651780595472173198181035608096345736533555827899089006378391687135768160299053073227633833035989497062468252163496058912303986181596090587519024638654191292359656554474907921353299392006811252608088002517220506243656452104202131364659300328630384389059226540024479015134844325050400633837988392630340448399929540510298147358375100315932275280509824605805561800007769126917338113393407429920012904806444604150495047646791098931686360944960539237808421209882259737221456902255701486030272126912753143224706608993609478409422678045944521706517173915293420072741687519041173512856838066245185294942086103333668590120214205370506710596842312258164177243898857587009387677678828416726867055457346471928762834316475312236803936359384814027062268000255043594845933278372238253831615068221942505866330023719358809120207911784998908896790023885672721740746424141866459907100865930361639933455098934859984645869083287671392915745916790326148387761838431400388957674143492693462941109641796769411305803490854781395698561593971521416213721793965312611942119740178807207981449642973338100610736692293794097061285578054210926928047056512485622151107892311828864485902308187934075969765494282195178711151293574946535542682551799404417089650379057937183144123225468665485724544182963223968992604415492651919400796095518781851898570090065770747056421860874159591099859139589959090354452311303594474454282066508208625379350414475191147637689912352560482052277771780120421828486953834793614205812809611070721837265158009057077235457017156413001500023967531506615754784311965059052908621238461744059387463925225293352833793586422157447219856217366909367188400556796301470049922410096000079912192558476171521305708022300853737883000656134968695420184311322058236402013338313245395183798277704363074504164433345132066511114943200650526736953414300133788994293193170325621688105481243595672101786133165802496069390611689582127109588903655971250873153275212067859814499197918162553974766850493139354634553287844513754031873389538223404243759536331352433523386498514551810344528021960585620627772986331156519370080497809156384911815845683529363632766610780074388310348551769360072868504039148650754676155670239664516419034050808971220994790677514421061944139155371007028576909537712422748898240875981577851789469044634829291895682226450233112936282684306757360012362422553481549591754500218014119026320922758086219245057334680140482025250191055062472204023263331078973593579457965002605473498880981435142021792146741299680619516131538446773491949772536085299860097840979175549301235103488392802232708318171876152088908610737749319812645463167883635262220727726108739762900306095337692736217716033783542724142433669325494620768225766310143948841324732769124477948294194940329372795406480396450799528928985756888774542471387182177920948872492912565875578331811649375200346633779333267616923347548198881869873543479437847939086308174324721375818259480270370730915779586330553468356563452749604828230052724905359610900357984825815896338656506457835802462410523751844743864398119703962684057417067519626309228870589283209928527562591117819134877821015053832826970376988096954566493015990585961505753090426759902156765865594211354083902818527552426744880506061796868184973293086359577170659488746882200176543844107967349561294141059311050645457806656241939868449559127567044810486169695903779227904925063696168960855933316273298386604110104512916297155021263315374863888808508537789920317486213010105028119945249074795210495922490309808121435529057486890142577823911460615595313910466541454923277176731734181569344676976708642016377386131180812579491511049205056261560411998116166378761011622900924512267868780294272167928520194472601565399566130271588382208250042179279305533566920170349703198814294896000048246620029058573454119976240826553758257894569235907651928194977868721463834314119998599758443728648688030702516510438982185580144486593625115084775508813888262550916470332749473054239355046437481809636816571557012932553335434736731482983119282740404807142850040209223935102793762858898897969928133202663075717463730510101922680990094498302823722816099690412013190973395303377804768068708520765085999137207870616471551199652358764526998649709132882208207558650771456277764094172497672463549926847139216436960157856980755923385963330161723088903318248921777094277250911906150225061063584293946510919062779733834602810196164160407318386385133590944622185577511722473403564297764408371571160683413460457453950903971067139995723342653545806909045977549472250946228532373070629848683474123559586996506566624347313989118833082322957669566540608102580260439642517590781155815053194021055729875381465698814967993493752124262660070941420881807536018753241912045879555771283128711215660588730540676681668445271349650207035877549386694597602868453466444958519853124026465174918619434807536547096856297728013413509804250474049956111417406786011752889123205526988548372042745304163328476518601629701548004784058994588220967622873998522642965271115128383472771943109348730444050315560733664684454302771449527235035911350101773186560154217682809283235561072920942056481930404532575446909035228823864070670633781130264977579047209384206963350087320165351167682363208134693908461738074877479425367382490068078607881794546495306923954211030273637886392659336625674080983074169652645104010874676352137230270660986488006463620301508165765795857050742080441514834690479551113288123733288578787158111241550673849081821420507297618246917720818663498742641458789969060026165916732074773084591677294232041192482916036411035586507067877348567225002833527006738765815204182461440543234595418231551910112218168651810064594822130464580287544146862689217675948946660603078893578513927295255366092416116471561689690690151884497200007718414374003893486902263087021267867508714198083349885904810548624833740857204647791894221889340740007725437502707576507960437424157979662562849912470349544174566791034392735127281961177852297490150237687191652421644226764966177099608073536871758282854097616109863930868008530209531652781342300795754739516025998479508779070552301640123747490390041980481564450987813973264404395749933250876294187598459047959386047031822448021999717591637443236256805400188221938771433457953613815038921969508212662091025370889635050008358864031327457115864194619417534891754790224689267963348331614709488645342649127229924692854313720833452433992477774788344239933246852651720088353607654798239174976260100989856496550360260671220679990570654985707516988645222960693596526495348149433087883210160590176592407349067456833259494986764720834806390915080289809077637825467342610007129811480030443577684017245739367956168686984935313627292926175073697199439302088952284971026189951293404827303625588096310216726346721254322949275384493178122066133095203844098724301528151550532423123462311180805458012633458816614088607975213997039934810358358752002698234272766539870344223048375481603617880587584886459542385678348568440640813661892919379500090320016128563028088024059624470282713290495419798156756165639601527569872636934149569292851204608434545968893559786408567400403138515161593337122154898291104475969472658670794312626222665915211713984083126787349713615904564833856080441323954813992837856105024945357716244280248128229752326340958290264984869812787725794026297898870914260776390029718357409018446396667110802988310499080950956456007955405220935598613943116775274278475679888693589298557725246304740692150472477138599660253885340739416176358311937689093696331710086198021904335362762862457971645729516524224414491431040104583099402373545036198387139928526676978306907295306761596729144317657753657713843952864021018172932995731208536987309927545662709447697181080069780908399163317106186162172042007478504477514955376161552676495014760885453044978189073778387648362049361326558671064181371025380715577165681818359737757856714838876144258708364444501692205874863754061566350101394447908390240590727198721155398394523068242998112802283487584917071829317405445235857611108724864298786196638434527394466502025899387083326500357731542101808774882236486960478345384395467998360623902019362689972143997023887530868109467361667955898975306735248310963420073239994463191793027749199217347033433032829238599666922408080167029361579993594783322516616114100274309367253669361670153350691121624187328452525105360339102284866011942793217714577703301924595103848264833790906982435232182724934118394824655437045354220145855209720320986543564336016634370512864045078380698453389947773674862188300111053873685651454771885494866093334891867584918796806917288002413919651739752050947523556143784731048531049245797152761445694959623420712111359499836337356273686817933503915859903308405454605674676462296568782063458340358726973674640827568023703579498561569516041284382975447043607249692810880099873142985575465490214798974155799024842504487214877313074416741369270677182667577428909054616896966325074529956994130358512729652672535101672691762693902855278364159122710951627720147535383737290829631191262990013462484607065158708073140770950035742469970719521971470799454708111072707804122709643487157086127563340812438927840255203108455508103884888261605869803710906363507495927088814490839408563012210089663692839112193979302806811445394018401066960957297744252678391507875900723532468339180974177320119873109258042435572387527925019881571797946348183683638583098445685058880030856023660528878224141843199189397051011864762085800319614670020474905082915683924832088862292990068131896677353940534387331511204726924401566375213531513506635692528505602495343900608503337310515214629130786552351401992266424124512331026651609992586001988911604374341971017745138098509701903477370380365901611525149499251114049510013463942824600309975869477374832201232370035006836856645449535929728456736129291086213580303542874312792731978237950437768827039618729854165156297837621178358086997394499379332470563168068380529085010234884798234328868860602075439170569426531359459476684652518889247012173393504876297633643042674080434909333912822535557391351493837325049371902237252035226582034108778816433861953861004469665132087349382443137485078603914701094964442870348087289147052976047932342494507669632354983137692478726452507680804241334743063872736479844499394436180103142651591409290216842664496980234909068323100841339300488181104317453259059281620048454955956298722234167089331212492295539622843744195852908146312417689640517933148182473822144383657468442557850160265066398359780376999953421528667172051622268115302886028620596232526898418374152475435319385790172452995906373091852319825486483302120007163240011653305249295640845958588358546121618433279438154914577189983752586870391668995792263977049941918829712959422858485198435549359455352799921390990471526785037680580486611245698299854798505507840742325638016352994211353723257454250598004419139169175681120634267922725523134900830550461165370984716083937434026966909616372740442493238180465262185365650279395976466328961096436473500344490370891487820536028459227242838766976974700336476566146809963931609979275294130818612217246787706917030232570237794164440325512208452422914042178281904111378267030036681681978224856745466531056658181677752461161828638049356737443383684495176273681153594647755874167033788080342379110705677635324473379880844958074014037989862364211164681381678638214613879861831566495703020293463457868015329438222919209132437091506064913715439543177575975562965088093119286896626760706682363170869315560228501811859545078977346201517108951770237377802284465671908265124052548430668439804339489997366053839092649166550245058478514725203054458104555276025718559269665982064681388060242210889518551073602079078738988878342080144353719590596649730747219539934915407030419177752102314193779728079109151405285965909768484191755179042540600444726297049911716458301958261340235755765080408676182676765416597069002860106739321873908000119483062617532232390140504587163982262489704516782598886024134543654153038231776700745924987265622310480753526546245251175336054235673683752928460451571954043335184129779592011642399423187618372140895598634949747679177463538524764334353145994233640614568172755363101362041434787064491835248986546447909693295090138627299730921018013150942931304359153803711100923825648485809852204466935785875468022145379021591450090997732979793026574484120354499129936426403393895981691234915612789342134355021970170840533708146765267647182721355673148915392481335983201581098873117250539185051689954121636661794111224519363892304031870228175681215164513921062542926289745598154826110067601495996168711117609068833993831990630859587479906988536576949199631137332891518050956124677410354529977734907767750229288372870271907358906045337246423761599365994420142825086302730892334475837241642222887602636357656383825823637855462151008113296146977109290022823884705139074719149075699082350348486162496122646205816685209758785944678873247565891383526474680232101659970948570374122413952343382107291054803462742336109003414936696032248801317659473776766355357467662073296035874702501346227752367754492072088689203166804652735202115489155267169331306824671701338172851197284515256576403766983441708830993314088687399934586646293915401300778177112733338937114807674550722380575244925808957053795764326075845259769361535625237003531596990783084591697064296118253826774395058049377118507995626919959134645653838655647552620176174085458658871500127272899164767363606540594479580419338127125347866243793755591149007369776001823870643775663504930089017556335600399914100629869417190899122723182585329119160354687277441323810433564790803100572282676261148995742315469243100777937798729469036205600028140024999022903232126098946728647450086746233059184069590224970437078139668415579921369444907459148485670703155043508144203505370561611628619668869705983032197195894388246938173089895863556712852392428508702049872601785394807198291580535202612389510392326794845172745383642761057669094129099654384942471278338209463467001365036926364290167584783682033007943086484533876902112060302795217228551405678158650580256607176755991671661421005484213848944780640582675025487148170226421441103648893919254323380512613630030421638751975091776030349497478928390418060429938817417649195227475397716175506741665968804260417056558592039888363332193393370502438265609540554947776766476018910481751524801830632559005874002240978706097172998723941170785795236263474192333949893765893863785941335282862139529027242253342003631856348321600872990087934855488324239037938899101663005230713809051152796183613662390557428965193108037903397746358176342776456044707908610849513865050339965611992313790041966697012170439035380081991070641332734439604804097000119994683388977134195275749091119672248928513523146506963087915640437124284022462147357047022441223712098638090199226258806069021077381489212136905758137699789825439346037992242494924366963113609318204109089733873791127628188602620086508416049153074663016993361498171285168818062696749452628201126880615877177645710818793152711688998057740324736682820145836772478023055196899779047128579495842055066122209419509221341519358661968444424364605861341805859568991961874040696654535029935625694467120080122115947710424151242426088891173263973804214526656051751469724541140392476271897194872271464556697001405836698359411387315520904625920455660012296030144318681171605383315375930829523015808621887820873755824103921418883255712502962766987265212735026040652282945777637251628086713578757717398912351994534883468413999116627187120813489583675502196349319859622649356531121212205216738868024889755614142781840897493034087656699650995286334577087169161031385240472339861501356556487860811279386194983730963040958854139541719097194496394547869205702706279414899441268652998324353202803881461374264225574477433819633231677194231596113476297243094978877394753987187967344134402321986106589709524642167949294761143842490905561968468503786085652916492299712035076384326249270593309204608828512394913442080030521994498564328793307967062486403595691652990664984880490414903482221415187223838539728265196954571608892661208130701517518543673354386950122428190959642284075059859715457304179984035367560488870300840557252323342981709133324312363629832938507298563858293986171430808429181948300235085431513645166689751250452737822620949329603777663947618306299864790550298907865562710423510133350367506833233180124998325784590284523077823666084280544648894189919335862601377293709134038252373811818932381584262864888708966127261860216161837792213634571807267850787524785137073692460991730783981495158688395145325638006572561224055427776575369313397576360668267470276520841865416187831295595316863952601985595490386525921128254545421644712197367863286281208258109023626998670365442331557454145150589751385251718003548222166427174389372616720253395192416678218518067684600962606045242326482743275382586151999579721113700133229995350369983464215410240028448042109998541286942533723595456711037614001582715621464115825305195581745161219571669409249178115157744094500241449876696140885107002983771722748239989228268242637811617495988471221419984082157387057721813358774086440126790068514682821714717181687161404425580730320850440701282725442871659718805371728808752770144210060057105952753175835461598491089086049329839571221089370823342162872124261893464952421080254409109382612675795172015591685469092615526998801862462152781601505720478243775268168362874561787560968077869279456594408528233523543032766917866613537726638713148551913093240152233804455386387611123140723432505833834249401244238237678016479410045053344571887834845817443819399316765790921306933623471686474052226127787946419851439366446557466228057688219402911729869396862935536618773442547256975250694753227031470741305044125798161317732911166449334002742361650304248587759153684363913794021821522144294604516454254259610306724624855114346442854752704606684911360917406751801469258125489516874718951605307708466970948639307129922537452875651810786507671326948440372187285197089211286069531866332768536474374423456622146999510136890299658345831488168935368416437678371937935221813122925554164534079278392489271629442718539379514864450582767920790030317854403779887552008104731954761421461909087387282394274313112375172493029638106919222652262784993565535607626028013755911881235424010959521990862361888432904882394796250796518845691827353642343243375527218914462902294008132617322550263563577407918464748556926133587288114685349049791804744843705785939014426111210226001695704672553130680251930881656955211761531159710163139605975195496326878708649416860248056925331522268363398370739793332898643374770864792309786458716891861974298005083122030689301601144662445467497087982100613119709686117670265183738361999767935577576200027789712703591375864379256587619175972434866314594740880097650707662758205594365469558951373419277795620521724465105358711392619045679487089940207011610890256043244188203660455101661621737506194283286164768045528746494948105049179368778543223762899784829666252188269403896453024690115096430293429909649263327673651044589495507295811459550296339356414491539398579363745585399091182586277856345233651381386224007491027504087493395403647186922122237820879950189414651322453256292434823383876731696161510374483668883487162631628929655144737188704437958019613846318686247176513064987870411391702981357025801930902233944384704895206879811094129763704055890251982607513201342499617926312447541055876057514857467908345835541535900648214960212028006413658747272249652944825057621555025811233042800800423035025671648458746668383862496062515089151010654466733594281441158213210478512348342190578706187357451480653268550418971812241467026123253959174819288399825046349665944435381743592021913720696648774067156171433003149430147544701911238004010826467154459387882145935455701658428787141497735682906821054025286293786128840028159127188063999039976429894239263266517808785236249176693044829790474636235557916042759292099131911813867297990463519267109343626335707279933267247537978087676201763112721290644846109367354181416801863120648658318935341480518715479416319802453012707994823034499108914547989556559016655699408436614684221156100180100341318378934229119511820168763186984398911599056159857910396667117005086867722201921237646096449534671577325996504483879192061566874449746343672425637662101581731094778688047238824535552083288610236656032135233841173498835874301793978958323872209054217510849205859881035802196022072030724300465583557495437239847366056749455785758877184894436323889529054398193616672473106098540231677245440247709210067354758015123833230048747644004090440755097669882955393458740973603134843336347756550745031958597710693704412755244169441999829353032748412199526091584279334134924449631323844803036559908647037110644851633569554424147991565830844158498665523844450856696562099983527492487617092903810152837348289072469435027057001427530621071311035109418666493986926665705250329747424299832372881573829127710632672221331526737017589649375891393155946236138322649226607939766086482970132411210442512140705688087082002248850350990023990175346518141832836919166711705637831976935932217375521615224211882695722548245247705130483804118434845278696292613734296780119360037400161104791355957212526959210045331237033072220411447509746377366185919395748597273195257711704147051893789187988124326761746472097697383002557306479971064042696081720824127199573407438446658793571155557644547298974985525228453676370454032815063032536593896055071503799396601815784715434078572945819214038202964019305806835532125768623278941330808306419196776406715074523566972847894271641997841680192131765316820805062557193315370484798323653196190417461341128407564469324455107715049948576963323985979424575119627430016432675380647465944739280213531972618093625724917922359763073765318728088200510366208279945133755827205754131716781112629515356841366427244579228191990445105337892535686987398142429622645321717338213964212572436389125983958283169142794436901203559116334960123527736579346738524805187052117575829241461415554478210396651090854936929560193744645497297464434232192887963293005049159441220231312420160213034559648147691830620554482229478300460808053934828664670899765343109227130837873078766507375389947037038139329033989804909308019182681407585990209367954286991836575386879703944448829114091668183985861663297110110976167034881965541971789977303390599445245356975246149434973085166665619472820458039270395571436194700618799758799319541956480094649017579127324713976161713431288300555087639493986793539537652444245828678656920664299181695991132444105183724101211309034590466107203399419764289557354846862801622623171131013050700220077517459925372145633605143268927762698356036214658173547468832418643689608809114653469308383825858398235998933495333795113110988441675537858428302754852870104195186302443582707632705138126857051503295006848103367471743696663525937084322050813906440804423581580254742556780413540466840451515662876228455694822987504949926204201510461588826204658617362429864300719828952710016676315170869581958976389253939634851470001914817688756454677814947307655119794763107104930710650735282046402684126978866306402373982313288607545497366588174148549780318643003417063036753715923863170624662409464244272124002494275214308740242554401222400399354629817918801638142109514524479816429727621240264969834999851618663817896406636383385411148045578006820417629518966188697328617291252581936015544518969126779888437389839642496649524488615379068767039498124102547825846031950839950392044864170969227474586800574291049552979598766659715300971155730320201421130864426660517337575308792012985153169045307710214934359547638975659079473090896280960515764587757951964383534402435847555249354693321613086794807607380239742565303252124708538620546052819810589581216668136068961830632919307085789310744296861043829448900828779161319680231632251605105025261567157935847815103527557469215003937062792913838244235776547048675870355962389917897751523795835576829823765771292353496137990447043259759806910546882970514299549586124985404171341531321700536306665876133322094266659594370980929541552832208459215068432674882101878351928785280187707799774872999870781510035716318285491788344556003502470155498431922726277501173518263640311435933318944250503879101309343223634351779170764498329036522643870488039097825111728776830417103879160522548185171523736176475645085252013400669380629435957040428568081058506941881950705789422800971436578233564460864453996306180427603334521499181429701173975163948487116432878168396578302033417944581737297801031904736628463949926106703039732089341003373598344181704043775641947106871224847138839731388655881602953182376404832175583752868669186403740559152329450896471935243088189624918020164007715801344035257230501495991843477204123906895158141478218083543222129119278155531140473157676310664053141941102370093511253699309241042564093358259403516476132837266491721801940312012537278317481962570987105224020259956801631523667576885987255248396711622933318712746064229208228986723467620208029162439436682865192336335371433187233323781688049963174946843273733502280993163614737112663265315984913407141178692713708772153221417349514858109080835784202296661279100206877921815123899829745200680160425901935559322739856258736256586820960391342844236189639542046927658492837043281195363776716191542452245209651189984146893941879703426164710359455747777397560104157332137883313095558019760736821968693379955335867655449444281628004863794952625960107804832598652250159882535534400766800273913074359825178226676401115800852972504847466291701866570948106991858100231561396480988697296421935521385854402437026126251763306684443657717088443798445356347540187242520497769849209875574502732932644599774028772586632785639009755577357045820881258286202160980121599853485958769671296557775933616156824753892567555758971614625092824406733510218672474568584001428711157675912200974881439437861055370743321904451272769634110333771727909920336949083284820158329603914178979588126927359325225824032994462051037389855436121717315778588666679978999570460485273894205879167896123756666072832230390274379043774898931251600320695415203126100430730958736613760198565627235559119025316860826857310201712703612316934885381561028800936966673119338018648806432825779022380441457582510713367503421916919940713441065100788612828968581587473621548041284841096937491335433345103007078472139522717472911161284082557729765465037503488532608796612911935687887995179489422045034814827545004207711624921313863308415012293567508876920752768436223819188228390979709598808180889499416695329159231808260464569038390736448474692010648586421579004969850181810463042022944333739160426339064994672334718134605837762701351995643086753359003759721018507430785828588572411944713506846198916564577111238517368196974396309391483180516816674983749066822037496000798273192640893400611255650573369243627551441940582832790754870587090203017034238054337874059611049662622716706155455349848563075953138639767959327635205132856756419431228259523374285222158613465302808858797757242693540581946191089267854984309051399712884575506549520914806524497795889320536490034040107915748697511273896263277942192714081398874250775240773957852242630969867555445654907507097704027756890180861354606639337631912825990388635371944257610610894205227641105261602588964724228392174041086564277359014946838868649488709558051867734341149855597992699606370467426166667678445635408049592067800035225030387707926839573583475700473065412531852991664654098526745330725301076374401787740305110070717877770052850457449243236237284868676647771043995478214611764997672322588725026845511456907361761365847184431692428161840786383841695446584782791803062235890169060903465689461701345671467532081606135116962006927399845756270920013699859760798668941355605905463823571498985961958865489760107761927974288000930021324764515435883107276962624939056094449212146689488207325248022722650712296456078949295167086318821997144032872444998952420031513732306810459213122770209605020240946740488574477739643740498792954508087823515925628560550017973822936164466540664385102821416228078017528650258183156889753633958569808786118029981546722286151879925534232530474909737047071960334370320508999130780703352622640753104441456126030786042670888780197013997144732360806855448837168913171293124692375639647358917905559022457104579880143326460791514226369619931920439540881700177874313740462906550456434165859290679249995556489226194889950794396871145535872146620652937229570643997877317550949962466680624310425351567451816976849305108330741672174694953924738587048127980059305441424218638924418383768943007179289601391359235723848512126022098842944252086538876214376569841069159147564784404878423028022161791057501319254036504913859724090566088980562842433722929938064686772538851388516212089827762445432133407973440307686447171885995930783023722598127103923165811968594972222655841721317663240686704656378101387082487350530913585803099299347890648228986676023209633854237951834703710278477252201411496876602340907244964514315407438038718679425404608182839456168443707698274599108294071761368644908249572029413232642284110820358619005778924001843044522684762568101118906835839888556777847852457984417716727341267444270513036199424940087364016744033244681342991275164761758461213828717287481913127987603688989247939499746832933771853454468126385215244828799622070271763690866015658413205122702542016635025418705659869528573231474755199146732823655418243175344099978219377996230038176408839206356918455784773335474999857825649293512829015522449929560122500587664486489389887358586710760451973337541332446027239291077577667669302874362673422295428596261915184205472234149616278887147187922604171916662449647470727760307051391833366766221347433345941954313783438177426600135737775658086203222562158427715708393235680905320399657897795685386412044488505002315764947680964980314330408028799147652137619159107658366182657909504146394088887876966502292561017639584171063720542153840968435480728279047666495889501297181990817414215600681432953201548231049714630457610798067741610493440098124264553166781868616650332077296905581138888070926427065957958278570640762149046329300396739258518492870428533018965157844353599371286397350091598951817489382017451398004775965894786499321131308927747818626471887086325139859999462980369276083999600241223315390984055741174064638419080250795943569866225433386295140109570172709942803684907423380835857606518924257849683347991084176343469878886468622621900888359237996134645754249095642593480313358339708773976203858535710435311717938400114561302454177925806714800282954092403049959127992521765841954521306627969939651321305783216370151506100187253581219519718063357355141679075740127079388467098775655469864723519086129932214583774980770498795032530990593737090482269894627782067159137766473436676818421154574786434808078845176743187797283222320182161437370620509775591477498372181632296133613428307659141079973495580765264870692535790237121505470925434014881661083732693017352091345169882376087600543231279489628382045325767538113832679811217842540620120537278966450100494323334657062505558803919183715992382125904031842568360307014871823907603630585331303610349424252792352329114136810751361387602005458101549816927404495856829801472990464215140592984348024465041785043655877557287991581592074587628665610425726075304125141597685672786793185652764814468756335912598605063260087675987094807309386610341655113875256403326802978928722119304140146175956374452234354322347895407724284443394400224113593989205492284322867762011273007420269209249094642772103490713943752195926371973187344417024309565895093368435661204478381702649543206971062032258673021640774002864765281823134501709263568566476009505572611328811195912936010883704175165913243280809132179459397007720671857980841512016695171178368339166804267048318417552072721079666560721440601347254761570610708210067228348212527519295956252250764953593141882129039858680674511748956702400926527517082383127051526075371584432155635377484055405029386186025258830415318950670700846314073530669611057274047147699659027775201854600537440610005929626855269578174364713071026801826315951390672791082815734022206882251180617952765583904063160272431447892969647053269797771446648079565386214074934648815418479099360054920049605093641009806860295651366530983034450257965673816263177849389295047587828062961125105451880242861512337146617066574594693330622248450108249877571358117435957067162010381977797372446145868075584205400465782116320385786076798329026123107691509615570847115483612906910079014032456955889779439311212026410510190052538766651202975462599404795473300412621897881994637145583808854348641373219393857634579356683165461301177285377169682273311144213016071945363297369130373688290059373320328912847509316557523364319487805906813298945708375201590530814537339574213595093770583550394259815834836249626131051331484158272867644054605242807850731492661940009537175114288466755509716994611635188972601656277835483921238632743419894047856299761114987555196354488836192305486203747433984697792946188374673142508826988324472275124852635460337870494514943467323612036386546589374763429656966977131526399180710927918221456240827206274836595803594320848643211564376990138926374682452000993623417822885156925552480708565993721673447956016649227234274565612584191780908434610620464358876101045842580577487086834285649721817577776550593616332369543527904701281392367453983383220868695616469694280240902813163713939319696366666412732827012829057872792753268879165821014657697323714928558786639280212298351274078886050785432097971029860786795679469342671856618945993788095664887902686171287554656776854629404147428647871281085567879944314167530157863497183069129677305925671712267270310085379360689224385941826861143827483750503834732164788845806489322564254209160554251363787792799583162533584539729383570897911404669757035177466547819721149197272093572586987910693458387401363701434707153041997175504208840076516148817700209713654623840468319848847445770574326515789476395561438243610326451035978258243046239628228696946487436507018152454123272926362912425614509689135126238012097165422979566605715030945538742788509831495124100965049242404692431368556883233050366500321679522315436066916288567418932745590079293889214926427322382896717887933030283044788324508432992122053016060277357506095661986533136040589075812889394902585558122296811651891007317592964219942666677993816935556354618079320570804129589414294029589231343819412901332409399823937163558777349375819564835305104996340514301624065039783775151972378711362452520332033082051903388147101273296955376270553372509790089112172831565966122006315324148016335118664606959628501916518715544546035761000030224179177055221000320886849490761923611699920600682092810168219712599826570873827873080234809263199352435807407285432500134817321711345030823558778264450551235603357696521800957876171261197567394315417946278645413601099918770658879399665004274268669348892561730199145801369244202405375259625538470165486476624550386899091138770278459563800363107372356335074711699895763150821138830970193720524892156036532621439247308438307656025188496768537377986200809436555801416566309303729923639172647085251378898036206527561346361847968742988121193276313472659730852884960903345195989568373974193545328984361492693965941879128421735354323137431412540165648204361297650907730912663149938800191017129718922734702275112139334917370578114776498664245422415774125440013752494374925319119747379453062305586528352135946189953599624677872824172489622130310986040032522946772807307891323545627083872385467256408752873827937073643211515364227628934827048003704973847964442540467664668907705649317522434689881354509963062394637560958005700091219496914369819245223048639891071297118204951059332116994008075193641054022500295260736113250134984837511137304944151545780590495268773877468811611050433398822624616138703406541580611733430849277249681158069409163886669279119070447091455613200963795303638239078289554099670472392992811442286920801110285747818194861790886435398731666746305002317016130172377777622235995303209285772259486852996333406254961930063562609391144753704151514689609161338070607168877824379302540688439770159741063312462603252297610120562131177669140200680648028663003995235472354154335732195855738722726218458722529122645094183973852389999891347628247134823482015915612523379727399841151607542084702906944143989759161736548801600970756961090919492421778007195312957753006330788843694047615435668195433613890036494273628291461933175417358929285278713601701457027154280187977715662636698928867339135029960169297345995544145560388789344381235410632955927213560752040470525462147856705188700482463084535013729171404114823036875485340127538353504043633300215667491207388623064464445309347991481084277105383859513207391058135774154753196085140496749939804491837954016343277924521130606315335297326526592891591695148526171342319308407610023501576574525690414953916263707590125182498606250368556432699852088958301051364279302197025367568061348420373152272748276189408757501073235435934658463863470952719445381352643193445239454545806852415018689853516908294896676687078474895174753942310491657316063957574790873238242374135007377422653833029762772344100530337214624302690215519870663593376803300613721170482923697560014688595912306398920351317436099428232906976207582288247233361103192155166371880000200140047018663441063160092519382047742737873847022945616002618347206460269521048784742579327945182050660202818930510428493721853602631689043954080781697770956449138765313841908109374918784536713815046264396866723117090686246534157333168967874424478043764836625133340105108348869107396087900555782026949149584417932580658613286820619198792637914233910581090603766462754693017636656099969784314061860034443079183556828746632798064748038197721636320012300348145500462243228814085512189930710656532700957939252400689653886657920401966873062572852946830557681768169082210946144327697652903507086688847689986744160197841954460186406677397906983070973122333363955940411168268029102085373390985508787617387749510525315141986403414765407859232807640858262227230278962144622178826698615171555698418579176158973569723204371012995496886212105010582916728844048163488349051471309923802203385092203921643445777927567853461421140282049949265605399572039235457654010712075851904236399750868906110327744657545639855333599042092885824001667306150481791982356680216996345797912499099541596558239368681706677715775657512032269642442287334822128505562653559612558934107265606940533938165873014964988382127102576271146833516586830518518213044903143732326985067000313371066031360167293614210905908584568279391592514586818989977731744911535905749041412063367322090688718899657697937573529491735835452421456987825974057027001583923912313026213500903988392464868072788425879775336312636494929699408785162678987726613356513880529235187091574000293398452338517398860458577546821500087373082081048734670292887103712942097473172238649217346182407159275552696086717749441388311210247197161657534214285171838311735637591159265821382189477319247115589012005660757067840411402827856356333617304148472930038390708112491556929611361457257914512116801179459048485534627417135716501283344902789768915574069967144474592538246298383586944362624189378856912292499563850328805405161943419066166806378723729615763805539574341202063168260046576529688394735280128948364932938721757514639396272518629232558968477924363941142965913504159969381479416081373098168518574784152249326502945924928692792542207101390168015977989379862418702471927835817962428477627553235261030246065376214934436640705729494278369566583633236499728603525307414201686578499890048902852402154671848223034932721531123467203425025397419237576406364823094058054413132326018158024461091099468258267230817755620017093138771289139662806099019405697274922469208693721330842670385038772352104464056003581167747470583861961729969941282869736206064056058615691000853130089646615745654760676997459675442827461009095110255196506487513220532687014835293679901717811211608978663950682664207587229460259856182133869483658796412903278918649352147946938357693919110623856415717627249086152413404761839937152878367567331916032294954213662329250016264355260572320984638724415224808469109616586679212126858882455733478630983505729358647422898985126337950041300404838479075792203034061861620544714209774518948761894209063086399834320064535492389286962326832464260693934672498125983479257284865191779750683439456345607736624046710867876799512530085486384368679107489026802851010057081551417548938154856783443503196586089643651119741470268664537776555095119301826157391093973864562415746614917390776512502008027533715899192392660930314768262648679635510784870967612142335201484112768804279323889921459118623735297810849409824175578507859365509360761739965572896760674815520851651108795249590735218711198069828820839783287055108871082096016662032861813955952520200506054407706613486344443826783454657810904998157520730329388343777044117569725132943598415542756554715277869994075682692770748967770021205893118183322543667495009084573495943855401169922484057475822867208193687467201657921315611471622212790491757831759026225409881243579417486714734975970640263568770058730979878394351493523124565152421221050695850914663525669145271236189085437900381142810711286917140687744328687903012394849698287113147980960675586883851793455959994821524161436416051729420569606556615210665168613899256933868573644208086735536157851837661438701991980334455160511059248910004584335641356532108152780673302029326532100232179944233359342609488263438046803782112850541166729720545873606709979036343871106311784714389977132008812157403266686076887256983802385806648970971098903237068492190031601758192897637575651177497595220532790707049041024571137287953397683900142337884497617008760164173613736833255542877920496238308444284760792247786606125728409031015250547428708789999414824218894130586742607450649597728799631450568048227032197393177459095962352572253474141127965843253221787847713711385425831825079308463661135313791725203116930150847262423311870016435793403582614970205716293280371563373472500997953618045394253010998618849662498037528795791515291025742443258215416164876336368230090302037205481747852319331557772759809956264406999586337292933094742779828505866663453365211694652423440280524954713325749097179311339732642484009616300378211150785903583689896280554928366799177202905297670259542186505574200436442629317021190122433693335030458196575729109567362316791457358625772670648739998157220988310610159884197159246421434092993809375517153345709187979866589508241829550696416831235459728158752244690403989489314724567443000878472098825461901206031114837691608118167416312546031626798457672963658719296011045347051814822886034951019337059860268004568620913725321125572133599306554136495675575158165911969309797101897356233239296062659601792677076497287732035856566337002297919531008341423150828577964387093705220493053046707240477310868288922862826726045777164130302066302525377531843303006163458773539104413645041849614491464610579343655859169946663370192816238273593174987957800867927079521363139374067372640437244165715271489699750652762443141678007410632178727649128553797833154965022638264326747583067707763597143443005072892725154242611131488470030819983942854746847736405992924725783024921033547912820827994357533955394363645390891269765804060241772156738914415979953220997225359486284700312101449502346372336994011472786294228256174246978061454227769809615345819808817772083099852383300702447310979211388543938233277034920676521542933206348622971560784092521566051958425649467976658567400962760880772817213660915185256081600780761237475904046380715937398768829839094122196190406200251477915647345259564418701272715415181100542847339607556585071238348024774690126240875861788627272782583315671179017690716194981774468354206457776569525714468657962128594980538753452099838376745363848236596875410150560427759022116333768215855414179785529236791291407316206666216491983278884086017249860823445474276247050189826247229715695691514746259967199763904335199407197341891701095983185767998435852466198986432116572488064942447977184971800847878006993789281076759977515232763557094118518257701765923586003910338466117900978755832043296341990434466355836569483951146592668211073836963580445702957723236251479873373902265852790209689414401008839156871971323386532898640550383496302570751235959849127266696123399555981010049020419596773941776984392193207477477612932230181274163139466239766394159311797809274646707435039173427638881314979820769082036312943267908300750235306308944894295921293583514771411298437693187353566895449473054414260988908285748883030869358959800454140845074872945689739505765668929847762310070702555476084610138471067943267212237040490208554923133567109421867760371793178327442892084198659029889541732815378726579416433165262978226186025153430403584741298651258758022576140657246412116314667925276765816942897703244485142579896573004192387993747928616093256468924859619945641064529945137626650464896859926017391894794452613626321058205543981091139766744454186936378854639441220459800334095528084972443281884845991289419876220082347956110671884449222469348676625434535615843463070125734369791865850698336588342498093303856322385285495338593640938705855335099939501874719478012646110858880790057421067875287351589637746011963382253379485396408883257234540688464896284350501438341401731689533674692498954068114230279454219903999548943201950887023061636471592045382783609440128632591134229082649821401901002708315991174387787162441036819665114486679960039453577690921608883570546779505780855006329597445297784977056900550275678718515158200996588623242869694113078628495596055236658367767531219103274307264873655250502046815824247854890731348368532200125375035537098261026608470506394326881339454145482854738667004121022689613717315074524492704016136183918348929241704726654461491474453619573952161589934905408485651741928886184736983796722191133430365034055587453473679243272636709009071944821261781074374287162612080016080592885977171691375183538529952864749457573803111132113110582388361279024121536694233062830382491978950195491410552019946883535499716919803899353106134794104445769553436474955972798444001561161157807658712643788129612493557474206898929255788640033517308228252035741143781946636057683297628797065087080133954145497604101018666304123370221164545610112557265572466034560315305124053366431009602943282625690369110432213327419394021297084282466489669003086554766589207724053925864906483605252158685289635034733154021277048209567775551802412308945714874041418189568468861617920804095592375177107250764966122801430620519392563613627029972003113961216964455444176097188371197732484078690501832258919322328491433157023633371815427740911918696896964210995440777373273346002939190157753584472460731222886833369509922915818056965824991405399477084116036451316773671808168240331689511236523804921616972104427625042097626444424809067832662998179753814024921322186250139681758637565609868951310195623100827731316440341190944759783336790117136447733430277140263750021167920013535845071894093004900467019541933553759545305644028139365370404906837182124140857535310985271912389541393367208108898476707967944225029955704683682511639619039020543556632499546415692349402986319375798612002500766942177968356856541769013368575683281039089530168813505968193777700990696649761463568332703995655153748607361333833684025045842694890815634836369623698470972087971455062380930914591707514733719809227642830684158261739663999409170732833889059313655834471308997277024940079157868593089051133960594030749243499290270704729871054991654776660458466485604672386269759443734898653398678953708857909149214694176768411358207699806625833905438780493442961735549176644959733690234372120976882700801813618291250211407027285996483489927020500323608110781016450848881032936647358681905226467116036066190238536190708613778162158452259514218118042126841240724558014714207575896458680512253742331711564305340480532451860926077677261084012373079321452567660841176778719178346805286313413432731764882559701515077004541409757379494744499959396532628856751693673688401948661910202732138288708496057908702881527904990375310761547893070503712882378623256798811052950901280359821078976819603861403396428977834615690817922009867806359498579859743765185644640994315318360890665203771089889021647857866547831634910862915849086673497349785837037787174395462698350114748011257637602694155804414506005280498294472414305415997982356300972812639151205936291810638873987691055813418927511920138812429493475537776469069890881587248302994404656428034041767141632985960690495659443673690403882457125697791370430038413881265569934999496357671167614641458608580278116317185195507480767434305552691755974014276681118763445662276256470350086293780777947531021191515781618468459907176510004495477276511403221994501861243996695252194826869292583077586612690964321400423053988097653536229120424698517549433406184921915554027538676344261024859344368566245031763398392264441056709485832004147696181075212653070003128247111997315174256175706482027717451280731405304176850064840391811760700905481621846667967275804536423411554861879350157449991719950653417731188256680278011111352896999632142846619958552691952656810785461979388108063943391520264604020542339138188012038035752998244908592807282309745730687138315300406260199879921362172454176131749427015416499508445421445427613534388152083161800786900606135826027732297726357634283266549930820385567128734581270222540568669681714493032242436545356022166988461049819805718211051897608836787649278122115048867452489318999352974059360600247718577209897303694856504239983076711426530614672257012464097615258461865865720168555714756540053807700506154742238699297196321879420157677865323522740150213614503699943436035206553455209155527930590142012862073862248691001014908589022460218357143531275913517925314540591709493589745608772008199041858366427517504346664334763056027485247818577092680493008242585178135149838360802120991228567711124251310671612645814095257709949273374707816124970476414239428565361758146591179228482328148565671606103713541311386480434746926539663287229844767982278547153436663436666343484779781464052793671038725515635469302106121223214317557199614447196392425496428716533513281753875528439034742811201512407916612660821899792386035979140167371564750810763702710157289661037016103356582784199584112848364338905101413900592473046505054969879432652073302644118306015674395077489212150438313937648899918134786912150154623734791628649734637290200311644480835541939656663206970724719491892635828865122628208986668123758948273838276825050425621576786972469841620704404252465184144227825567603382981624195003640732509869798280420476239239726994913709883308917909489250529161676945880938468383134412771289942003945361681138580149638425953260794541801593433068734457407652921873365558377228670305577930921417245334893172853978251412747207644552133973482308701581264502866471262019055987885100073351250735796975669295115668030772116860887981740885826157753272328584696780381295319924884516623882207989823211686916109794664409484350590535302984291436684100068429166486965198030747174926381228524347404538371839555459900958510049662876672619689012190781253338772426109739756293410328497874802961675446413568117774306433908118566044039116961519372259698515329971221194627773821112182127193884924582017896897952101104601431925785889859374442525419962323360931117343597021517373040147623314992900125470768281300499967223319331278301535076541352489292364876921036416400077161741749236638125762959425441371454053265289493190470763398200763859048020450655653019282563072950978195875205275489241023732385288769052542076521547132220104109187057148130440747805320396639696666788752625741740652187207981454477468146742753674386433844957774383527281981412734744868465258166603101865401248090026858620445041618775773513512116061328163366667579195948539413115790538323592038868355134448616386010227168689133914168456929987475786689504116187532322675408387734137725759749491295866110400341468309768848296912932994908237865358371808403119567765794435266609804207688964848329184492111201865614977639630098770526132840333115605532557339668484979044880277570278106034826718104443037401800407129147900282656069410388580871349139529001919083300028829690281305374350930731559843961703782107957559023245900346928287743479136972561835060736070027771533972588786917124919933847430910644369735391463823793044047986923145825455675156385788696876629093672456427086965803432618542984565710955881270003724093075937647508085185135778896913322502977895189042661287388582166123698440115196201506411837893402911030948674125554525001627216134469351350150855019469715772084856305563633577073942353984538347947455086118431837821254302602903515709566063844432588412828004587220730881341980743965283041095664319035382197109631084668378801505405373165597972010707855747637133252832781608082377721438168778604735118327111888625355364894507420446840198959182651101457859907761530797150128145530534726968771944366864405138186808779865804944331853552816476782976343518653440272110213136230338633661538346288976136330930646624997190818951116017962018802765327561097717601092999692683361239155056639423591459823265909531100713340199626377082053803736984651411613358495780824750295956771687373088304103363758506737964569207537456700060819890109059620045538184645729288721648335802262036625362147401151827503274232500705203679758400321143853257852585834440596913572046513628669376274598873032361829599537226500691936414158517248629629739749383284207011014131186293734720836302725623199131417360208405889296191675227417756969008999981494992165365970693269505272853419347951425665644970359068020683175509180984641727889435317785138398883130140770184560838435740605492035446234296202641382005145295112218539016032906987999517531025690796831111064504555363739987642315728812254098628067167054403493067637872489518358006086830338787852881625751354865530191541879959595591486451683264112164355238028670226034074290794274953824885346438165313941642958107776770977997505862632572776468318303275433179139225856371068761600643055943671361975445488676157909855685371964312003964418008120274946831893475744541365278093286801974780814025033267974348414059449277846877311566449443475126708167762014102162663835099672348024619743954457973069689132217451672104063603656713384378323245342775733761257814503438054687231994197779335768343051127926987079850445232631592904058145571356486808852853206369169042013142379566348902880120982639652964316579374980139786364103305081803762370383470099627357319672922090714723532088589842296649125431503174027105574179307692933070885004302821578707650041062390849785252979535849760634750599453090479969389753852921234024545008814800052294063802906538945988965881874360338490903281444165633308680183889295864725194377527267331585935659730201034499949089395188810053123798177614331092969865363561546692992862308707781867368818571875373377324965434812398459785073323575425121948820645372672566093982805129797924148064406246741940045806852591692538775402218422688449812448946689882213950111986813528105645770312204266602384842514478651681239027863713910625191735755361807529808848313557944785098719691623261979533767332759091815771665992695930515732847000499423950874372924623820793736638349925201956399943205239060187863052813907448547326534662305956606819385007793419453996912076666805266852641711203356265532559143078512584878776992766539941049179872434051505424972851223013665839851152376120910989036524328848426845631266361284864091468340039309380940731893728466443091529665942185382730677953259648731798018765656276819392921266890597848755622237143100683515120820823319806761215219371347061039762954271263285957126409321986982771593673596327171800154989564576737537104783505713028422530273627391250534772849194142751474065358916046598524075257378004361620214927534422733450300523289661395650116740370302350304503352539585261817368161484209819211679113754035042077288716691957268868989709262305444288187113761124391503376347191490538972907742476359929113143679850628041868912953715738745458102587634545570658882097103288389726736543763361412305803358763333048207199495456561260415971005074607491942608262368800811249299265108510285102323661454738056002010677220528450830830516445766309532244068555728893998014734531766858313753292496834776455805005013890319319189027843620310737665376589409434074861980279413191256716755226855032521522919105703386216565501811084539690252439494570012846446032000850174743389500235308482110289460794789810247292439840592782672165971064571866920071772414666837462920872587275963611454519923558860846109979075800615436424302255762244702598551227438151241256833893192937284673662793620971232655592202505100294641324998639480761811293281083469534503576447831275755069145562354249690854174926431285487313600086907044716889344453976175225782877437849384817993915896233500373855581242210263535030930578780048415530681762986836449722582676409802330871410704054398529085875317385727287758167067075458903637036821840369914614065217061411043441732795280560483156378400032057541846402888143907760833328002518834224159283354776256152495450280131787387296715907965022087075633033732199383306576389903501889201910832802917336110717389158122120332025906436635482327089061918375835505449634345538788218170159665172683856111286469005778621865878199889431227403380196480731734743624294009597719977122297459878728128925685293908158576646381399941873257483111199998733177706175957573561132667355748318252722400719850082694671694781330643607055585096445849805016622610369363882037684849878999373246085761837444367750693582990536044299203412867386771423265968496569156118466578239480018694329773006689544276989819567093016761336112729164377214142638908471211995971267028347360687741531920430037222553097746165428826311249526705502197717452253088700365195347151656491892355868655998387384969197488435800070815373225260076539408091309778016711341005601062513476292629051295926992430423773333715207948317147177440929938556558712491352360107874197597350106591783058310486344134860182739674938810689084159372847491925896720837138856489981229679403432660986182306863789297793717186804038529755531805231529470199011566878500488968756962311920072117216883651702130309776497781901266951020748210733901008441013443196971517672683430313970820962688914641843931480576210959019664431459046110543601183356855197943181161064888069678044589991031067858940831228563531799212207281224639554877774079726994493532596395077409678841515861178941167754041374906838640986550154061695785022030421273622377620584399165331070611865213377129518461334098466183482817747737439028814725191854796135339753665187058300579419833907722917757710188008569849246082554224478399850528006533807754699164271044418494022514100257814957088690427010794005355239712471776864413691945440260010118275847978874019674866818556409841502928584269144317441097533435995471745912895379023047277383825231982498253632992016971590673644052418886319617801048849550344767456390090634309209369890134909939701383439462347889373453034173259233983377967017942871556375112093846502028990750699067667486770781628855753868188576087449349887100833716431731074434358130842254015676982194210373582043439470720840277335074943050951219037052680147113424237488774403028469504140244647082843669166747821203675611325535782765942402903706751982432805262631415618052656369795579585851427260936255807600525897347851140436200781008745010530344387317364706098420338925252302412186020772642105086991951123955905976303809165075588086421266827979274238857415747814180159241738390407082667549266525708387142678096498759867499918811854764360670274958305503223361191190511703478899614190525208369336778679870137107946779734321315472709752409765412240138326782665277428420854517967981985537674776180348123829450091935719444318186479728993222469740321423801350081183232889383371652183473167676774081474020282545650719281046930942692771987510670160689001139007829580539094340624887065184777521483214895047686829653480539541111092024413012124640794993227397657670468057970895145216728628391041720988282073641472168454281909825996598362560549987772121703104809934070972093754766136568166525809394076859759082607246194873205495725517302415638340024148526748125499075819308961006467403623015047824250711509816762770724053608311197019025596645149428378607732917641846032013965726809584375852354485977953928556747307522530462005031249950190611623274067446686661474663794321967954407138047850541993582637229752335887553233724696723640066705637444452488259932944840223988117398515424835960535715401102168838035609522858221013308953601095751556171393622059540397617658548422911432057394073229000683190568287983221859261913786707815160392348875585759501616580280474561967698168090961023335065150506143770245888148551765051659528185845581027115134730313416163665434083177409078072445339506527346164670174749164124214855595824960105132472473959625578216660372610640668802981165060507942089133333984193132918381728144151094175884863277633025630402294140405317315419343578165697358188315953864399746193082685591452902985951498171090028698992753817393014699509841974693124615828786804994368356927477935136663948789274561160104339713025126575141056265409311068665038189269258653363469987015290203803331338530957356643684838264444468979524288015621926414017927705292661330044412965599477987791632436777873423872145714614478812812619384878561130434657960125148297260600334753363700406572448746477439089840467066789477207680910536065254975682715310490555227152547124613907615038000517550845106011883502627784960588761323097566217959045882925218342306211956357438595270422187092599391877829836034805376619986046991428282638822963240322290696956441478301843869513299914893255686960044073036106722432231183439774496295451796908672426498389022599878193351926724981269041189830695430141366845782313470005597383738743100411735962965548509419957876731512774329197525396735966360419416103819903812280390812769211388646136661824096755528090509030995291436547064541520437599588372816453444181192169798317187684954139381835512855805172038172658955583059052623969691773551568277312528176618705794449038378850656025431098642659313216256309883962322778682113047093467316593357095544755702388207331879237218223922709738484658181826730445167405450794012234532343420840183072067379758342221469933706896300668659871285480025860108304349591596211126650383198762471015720711650329681319459410252606694231931094824746067906337014474806865558451530422816272067796421719751614566016559634639979595939805832828836822949016194399686334503601723338213770742377608176137841858194872917287488975552843249155450969496056679223982496290006613697654111931250043069735552305764112995239993448676878836507020137203211773855873904538465025761064965453665276207158506244991860962729137739412434915024542733991380608685044334784566774634892596471168177052040349965221259278636804988051469298484548253173023357520660435799384326292633789497115008666269003237924442360584769835246925885420577551717724640783466058740821226406076410914275529328128453714048661794096084124496590991735239360266765918177267357159775890173511199088450895592246045346909101248940146483908370641815967521580232236123866803418073325833349453899798396968564778560642674904487756020585177609130572917391677644865165252002361714205126797391984653119762195394915633653341244483775547228399575079461870987763417294688724219632473753681168531550311338004239535713414939640030241752667691164375424393189610263649047702801947281506155867119084729948011617446487683827733342582047562142888414246956403968250394798667000324155647576798890573546521600982398932702294358926974823080540031518530192174334228499889838099940812948424223110569239266436049451518576284951414220702300263852873488934773048812882027990083589824951238903318811580868406498315770878578746528187823353901915745508702939247346444122667875390564638442568175680416929456639722285409935362681427346640955935934135213478713009459402081934521132119512443699552975810804857198490178266475030023361171467532861131726548066688523869922943417201513151604478541950119612810321527891330381274271634416939700108999002960940771579221149344619870742332104739209622446787256170964661424249592732057967163692841916852331655031958151298733125319342250904504805941590446882826207008132545307891548931656041167809653409514050423992470872647127024082530106803353567678899231032474806736863806471727283981147139079249673235522878783805288417259472733728072470743899094154749629393645965926996030292914231027816880368434718893097429768599775469928208898473287000287210113377979070107448469009058097709017152291189911775144952759932176713568382568816101574497182673746826747668483523143366111470785051408704034067084779705774009670886932415661673834866447699672067119075444853587390052241199460766441345658206829766489228682890032379693969892922250907052867989334610596429344782033991143989241921828566071025549430885732775975832076994157053371022801016885482855221459839259493942887330976951685992951281332621864865035087893972020612352221265780587057178709625190882342401142642024251607660533426466345915455287043185585380037712244341978189881647295244517720226189593902529315862208265668023213101038143406688890012162574907945649561312659278693797815909439586270129220149060499390028706408773209771819946520148349365904935472205104436370188471317336428437563461858357978926225201895930521984309511326562036281234265378439231923852836843489520404648593710686825748335881123249810124622413163897865703464179761330609180220772547250491591447258400202155892657048771059253645456779384713691070757853066558998174826124454803016919053212376839650271788498881040230244019779806303788827888641947520305998375684796956363419967639765034329429225733981571175712664791742757700414667731717906337604565385491898920134266393347701921259864922355535316285563788297671225233538391424410757471074836211395375041182562077852022309153200492628682749134386972361515589336495029804194625767736246292787013231316376020809143346735158585069527689391739998524972455756194784882523178684000432493351598438717574135162042877800198002233102382435099924521148842178304424902623463539790780184014048047242211993972944354197624826278682342754967451999412296508006370878926626100461183699451320867491617325022681318114428401072473961093791778115511072884428108365735685876219291730896345005542391351595828700408873257680145865565871078875422125406182181452252820903250163525511890100811560931356425592683706704500343977104853284136926192256448680451501779884362295833506804191313307332433203499690449406060535734386102680975958074999848104775819365335920062349327759484861721914017644858852283386872095918166462239791205892685741168832940542058966628960480602904909579224369401936118708664241549039169463997457792580709311247590139488465788668147513561215574098731396124954324669333450960700415566632710128200783959719392816264613671410052705013740664386386481260907450056037836953820964647109489485258277234291588269766014674915274700335857586749083976161870048776007369613721393857785531496732154784131886849345296139120984104024491909573810643288219427125099305078974381086059611398524667042769805926200882388380877154055863062045837379618329191940743096242276144109525650640024782414785216708007836191979978953792426963624076727011613775678832283801485478206885305845307247428478365479658211516699290941488974305295605388872987707682866332472787455630435079916901386478660510196146327260247702970689322370519689500350275597099292633089685337269071119344072601730436624809358271910549948207814592700400377177299981731681763418158532220821408378802454556329868900880362347738550191727109004844027601368902799941764702523382904039303089744224016649057017400010124188928477670615757524745836238372365779422846607526344621805880524189520143926700916683491743570146652258564935253476371660704867893035526413826638468301963935549782757753088937118544564542837253029171936251283682785239935852364731301437092954385735119689892896731841405819728210046896895285796249474002053234083213620106188317839140730994122936808430586839829822710400636892937314700572602923753387843881831548653985210990321100605362040705245836089138956892020912093814717681296602212403951581562906651477631834022498807685708797518127513205567403600797875864979445935352901867990179358544340643012850714293631247587810651348748972471232100746386098222539525918090141495940674316042696892332269670876167598616580954204976240197872818708002542142578335792490801860096486260477053949503525061402433901490033525273475505115211381337132309415054329820437885889710064746914234943469062848091649341083629660337812214941035058662212939426991230837327084662136892450618320296934968547610350514304268595685471670424081121013394502233124858577270297419240458733764385802073733641207873768734336508121743350903260627040244791366974853307831790906182981803485377170716326915010592943245886681289776330863811679238333235447061846099841916954079814838386433076596316464037937301123910362014638099524216095513638807447257366487749039938340044308415612407860920737452931966780577367288331491770491759872456378061436835066875961769981363460105158746367743430703434574496845002510312343825251805689165890129798398595525584778127434611685784103982244473782109190516866823143683055392496791769130408208377613629764603988150660953373714220259877292516513921853355782216179088817903137280252383715945447610857254478074095515807493673908985096269837054013889586379615988512486427020049434055960773018865630925220378214099147875991938495832799793998651782991195963606629734655329518870464664593262835811388063880393116526509895027151634513489995317078397031051000740674775260301448454228257185771950668390471466215759780607793728444120623965573351629995473824252520420976308351832728284332459535802012081313019202746325779344865748856181916564346340870409546042089105097670686375817992176523265445047305132587109608349448683060958604176222989374806202637466186176419661297199482734352365752230080136762552029217834956146708763326285586658099592357232397646463386976407860584867854831894755810075853430944040729815385559379121213350997086017891662278833804949917290325467375613935280088060958809438461252801706694508454487314952156504438523324945656795931912631008639613077080040122727605764796469204669612947881708788573976385031450038911101501841353919594408973311471610961179872743093101771393903931023507563459590391312590034534404968281694076460199300323723983779752995840210773286527604126301213593045922267473928045083617434999699684336689473084502747506329209501368844342166029531997269426687887346697028211714982246948611961978464690885152628727844290488712417146518013039591929066548019362612654514110950095342448526328579655916469891624075942626358529475146350550224068913190507303077749134336369282786037247515394979360835927448661889312160640303128612639051787272820479988693405466405772628251802774096434360509479547820244646067657175743171909072905660692675061449739972261104232447685686398950562936680735112763826769752019677767792621115494361762420409306362533407971214829252362577690471777568949824778776734977603108723863822591599721246716459796153791249755546562658547147754480250042678427902327771861097174333928480772088372480319517392656029879875041893307623070682646287145812686037309829800120638027786826902902826774704082247946305360871923386776126492643226923618351893391560368427524926242788469762081040635005008826652123808763239434263303233838347323886064703912138078463997431910830902563365354326888714053573019140189723140916195260614436666842824745736960438754423031587291112431318623184041555054286004637897515233715448628512656824979506506260231335304140302181714084472359428299150795012181802024948060233497465600484358223486003634501468734676161266133023156756966515692276375423380467209545555399891353829829274453520214612656259651720087358829289342675650266273265195917916162828988817248775527950239342397935992289964478476809921576031827338716316741025063807867006016223242828574861053708652285399577537653336120919886772406193092791555302949107556064560316903896850334155254227761754443614333777387520807119190333514489934859034159171247810932739813356436794521900098889477129051144455434750493300641141518066894288234591244339019404361950834112566533876973977444385454749601511495317750109264459566571071419709661641234422150720382819265482418389790927608560377434769744434653205953286422216220136998538624049645816206108867052385463429726815689383294433449319461733158199399112243365344299254164468943875912903820155538100586056146747559246331148696438263235197757431776766812961316493259294132993324805948046546733130756903951597272671203810367348037964096951171579908139878503982930494275535496187741308596473522554528640204338800554464883046872348985854787542793382866682738692952590534703364588290346421381612063556852967633106695189210214722906570336539726537622085277206759320692980328915093893428339093728503748070913103585310942538624210143412934523759488330448858787283317405800005495647467132153553920014476807524730291854839874856347368835198802966084335733098899520713406723186751441925155447954518243810537279851701239740951871093921647546585248173045128118173409700759050596696724601682621946363894609144391116857554157865933293289329087706015839260780075125218614165216370201102074210218892594179251235349184250100972767128728271014786629093220335603446370518910851044246727108785060980452423813384141068655786100091752335445261125784869311761540128804060048672584317714831616539263723064545772075941582809968572213972438196458776640124524385679645168799368095089111568424415125778699728124484864093610459447657388683917128534414153356311039512967262234335071280126224872547472028912100413014815491519706761682386528409050545111388942698269350217181106114335378115595779267039674796092202944131607974019930678241814131943216162604972192714048590647648405935441916076803773641941848720348481377100939302735442899720338725515997896971879220344271087973776454146144520578221463597444771168679483094974173720396091964736758775179719385615335125865640959765897305782673209451043487909008898534002439637823785389552588671290602956561098644969272948021995540285962621665639374184770633215221994284590860097374273214508401752916854286104837996435186908559815143230706394741646932195206621314816339260942345319036692375380021770129083823593489512925439249624721005718333145439000480340053919263717655201045969657379935236924257557610776821722175820382814303735889820654807692834565463568091947882624455924631389570747367741354745644030501385368948879912613178639915051028674660142384867719068460910461800238537479239518430712482625627109551639339325895985735647016296745201589273213979914807983416789477848092590940671329850591835789001162471599988351273872058723599628776208145101993421763811528416319408147300781987051349077034085931701552971131837006408434474263613302275794632100029785064018172361184707784295251340601862235026982693572261793244494948076325064352664914005751068571991944254975232520171265647419740380000061329399547638402261099014956898186635908121298633075801652492063349482249108933644148692194736641387102391824421808948946744392509663408496640114399636776101505110133253890995964966880350692458689466904361589429925450404469480514964260243106698978735824723579728807100424899107069372128640606713520176390331674411700535025834097111160818038613265477367680548012068655424937141057288549396521005260162065675746350657237508316566400756325032913362876504200993956434696173751534884431820780426499236291346648595271322150837340493825531885174173355332760272718744214809791849275014174092103556308665237447767873021388927100632278688664440593300155668126516662865403428270472709757856338975493780142086489839360129691033789233499271570666770887510276620449844370997742238369540974517689356508567409524278271449186079552898741408514405462611121527288738878772966395123105427699695364319264218787081219145151300961781264730838630578369236855310254431675174122213676478788251659059320058422976564776734109573551753990583627612076835189986830638692961178751556576470994428842027544798414848548705911404376911684335678811754343354547278618974770642048835998037745757552812630987479906176353962738629123104203050003656836283834583798065587833020718798641876361310689142983765609423123243036287439788953432024679060684170261436569300304509910297357868971086168538516448801571269691012010640860162876128027684816529376780644058793381734183436990557081352844888357378057693111618408217754946004511244659945612820254203474935289018526772305935447924643236479791246833582260375133297932510670566345406286293617443808213320975034639653242322126367893025160679606867532999924516575210922065843453299096407796814961430214017497667983612031862494908863571788743290310525742628692364773452634497282893417670732389066906457465020239803333228908641932943204218647622683820923994605155790230844141572718433796180170255160361133864030876712251393012778411953833009316429641942275188185841478787405379117085333507665908665906027044194710899110747604372413351625594108246963253274252899177748196668529251195651989148312902979683851036245074468957680355449557332227959015592712375114230544797597406097149942421997998460318356933114290254691129805269981080218868011918107553592552078692281373771931140154768988153303273948787809958572202772448767678762547210522056533385261573301965479653924674898956324273733272684046569040257263702045344458417239111182810903760603435060470227585956709078847424230316208985157010100126772229529316411702964765258583111910056463771622228637695561543030912779758778595756234330697888673429615347796079527391005375158278283238162753316494645131207248153863518967700847288905931607743912963086740430660543187977593674390409945633985937037660976114791516396233424398570379779904563759173739515168247605603886993636091551308380422149548556671644062188600151817109544872177906963799826562679338770204226954769202032705758592636932012229899911842432133048191020535461748979580033623603218852813113145288058289894369836888787432337059154151543215039930081884293118702164581986842679452512374032032618099830384826045335435097687953548126780736404508067000144605108021925881953961746208657011468843158878415677463342955782447078137406385693868872889284674330057051669718058933345024818977744441619752225463336277695973842581381350773706616481921156398508673962923880448940920713606646642347299711215224944625382585509171980800744224797884327480074072254508139224231142526581395977044527678028165518939707186911888280001997141624335283219610585113620251535801766209632874765390228524473808621814449396831596089962180070310915829937277571701305847397174445750098168803214827977124375493166724785808742134734699165718730278100488093790220231285170876031194365585331103394310885172477451215125239420772748236719650268531736224619681144798992429863712903481863476081086751402122528207928861693717887833108637537142399669626621575392080391943089068387464365682273754938132828953483964440252351239923477878021006019619263430786112940427933908411233162911390068856845422800492833265647493642839769247613359570634899791175900224926280893031879162408509076211573115348630379352260418195982594916204017027151055525062764019267092072921273496763311241051283083567774231559782953275788863789325225768351624185533824094635569565010287069224717325273836239235019375880316414990859495255846694348713626891019439848196820315183169399547876659138436788636159305293483813428941128096794876010135083080514718204032228422799590391845571590983964112507424395596616366065922522863791167171821772918302825352249177055689506818892974576531753423538446062293839279964407618041654957589670485559241663504506082208063146392770805699591219638681375599216729003214618936260818215452457815697668378154539044833684147006815813077869596478478036483261910613021909020405046133128691446220374232482813812132871936841421153801669874973580476628926876855834192036978468373660928791494489389475952608247941660076491230446587416229906547304456867348254022073261693268690740573963066701099233641898389516174853737518203869074438277757977047364182172051549480614592185424472742710608398025283430948819393248525509133928251371506334561256046843541269039396606239501624311495863260905746810053902706743238343117767680212319680603379121957354911830409895389009645487548303014854401595386470430005091471240604529151194721780470523743814261502035612543514403099767809075520812248243023662818934825814080490765366848240446246084737444033871592861724848945570417616289757790051149729047439786038032585181520625267708876517572226999739638005072067486880758077592021717520031220216746866262120275241861574733550852997339475733420942733686482002498826872425647492713884691124307275420161450483465251439901802698482928784814696110894319071516326386801218230661443631223650885036765040722525892801197676779896810409612871929091092296957062536478267909835203050624700782851293254428104350703236795334109269290889202844508231357782091240561215568981034163132531162161386895119127917305282871802707965187946637860385102175673369127647616143011477253089829722199011142059040752251383750428147978893099826524904273812141222972465524303247967047778389193403120553118507745124605633695505464458441665799348710792427559944743632613581640380697408437613753703854809357735397152114628069391865845918187515273940634690549255010472094426714151340751127358562654363813946501698357074984404822192389979077631241090573946455715994412928562825893325286176427390888905342655493612035542198071886211278809558491439288305757852256050381179866509368587549118242836282910142232630144730017588792511661189717237000358926424078808815046351134995756436766635783425849420385328078111889906794688295355199233601682705516094599646526719281348000051168900469611545799143376747154086611473941041154164850770085568861373528492471959103157716139504842578282548086113250987800137311282477098769312856403164926430177543150140582823029778202488261084758343729135994509053325953645564023966978601830195657628786823093504881756770438080328955495492690347093428346099891590605391251453123734256793759964784697890722610045292863553637058080249484609542687046827251201160675381640632273083750908832779128581716959101783090798417012387045237848812681844815586627675042669952742206031261074870771470339877970105134954785941597832890485128373105964341380569693041775349975129044484697426091007632815030455866944285964315545332641062710130443570965375007447585201609083225866649525022826936603306107243043910239270366468810674440548638127101920988852123156039071471911304134530643547002432273502579236299608090803067161254330213798887663471557924817764051283984887196110888417728450630863198512145577961121822327867966705384547263764998210652399318462498855750310607744636942563461701527522489338859158247992659592939295700500642741645841311288599359939368618687511807945663863200113759584792582598869789411771108409180316182408571581035489299996472675427922462521490775361597304154544328735161487533930461774653312793632280793493910505907455675718280237247310777090264886400924712706261203361772337632595637604143874742724859538628446222883201745009441213093182139030068715892870344662444560159541734445974388934435598663798404965981493268138158216049113478710489400648863079358511761659890694118223575633823270069904344267879118475713091667896030360614313050801491223238868621041528448156921247911594404845220293126098082548597231847774828954933837219584820615182585254104116426797725076351392987780691965427599358393613887123696970335754609677639267779509426373661371750313001960885720004486763198291652553242771260989352105190347859147431415764391068005589249604599535645660315595898118982535429237809849423351504954987290813740046278412296917246741053976028684842569151595517805941700311613762985106601586278260060783948660372435612217856944956431587834258865895175169805338772870577982173545460977400644196479390429767854735521141954472127753632272612583381964533704966540595378378305258392568380653528772328210270294705526959857133799196482087980491146104225681796272009938595596706411069147023745907793416756115859312591676211273109510521241576414275301559267143541444232692471275565312129925922639871646920163982593876256547439502630722666233427788378550621344852690691571820406541720289754986745502160935348307816271396352928369361845994133748901305342300392594503603352347416128088493329214092228527755323682748400000332116617368772569291183645985770410825651137567800250827080884030946433293182906113565154699243516072227369753196343268368209539054003693952778139540082437718552554700820034158958767731787901068230476755428032285947265300610228576484791281725639760981017544343068921752003956290709244342759679416408349156963259472994747153846078807616284411967362622912216473391226418396280941932884607904766978011079257609785724756636254887802454051569305124138548116361617277277381545732071611224600617424901311600913357074521531900933329746574781149958163673271237830698071244705799925903056229039756288371104316290946473869388904101525809950696401213176749671932606593360704435958777193480366293509129581913167122539025762779603495413694798800137940874364417064412615156820558285832999010648078739843060491399454835850866890570808502678884824408635808546628199618520944288052577044577664481782167342400633703468939574991645750370178845146431734855624796625730398290527206844354862727966144568660836542752817136619110881909697146037812403461419870671949607366773374874642643951335956561774612154919341250537010179082723259279870861531993255375570405517443276303589810734910057498061019887715707390713678366906456615213231295728785145498059429411175844468767096324409958741467509541527201948161513450249237736465243724379228703025998230335122534900663025837873390736127723270230213884277129165156844548235282128184402241842547840968430889003394425633630868517579868141816213015056101099133375596501416134723601700596265798106899767323363723198962106594301749890467483456392861199053468722107610379300589461860234737983301327155280409216338460467026532831665637825512168408959960870404886359252182132812531984142371938661107601155542671392174453247165339990007121802254693470424515975674487577323196585702095436176855291176884093434172116575570467861030698572936222303942503845421462525506703516965228617171652544595291613318802580042885266835620970884064399318248348201817398862460327773501121820807396778860903368410223831909636488438667182005947838613976853665211887518558390116944926005878169628141961049883948930486131837582056357869251392167697780589007023303714386040232948988862759933880127278052708861427113531044833605436432877958827176906656307212135746206422417926103731591575545646288435930182514275247341552182361019540741468119859129397488457453159135400558262519787167335678789210229031365826137580151588406723152313601456186413608609325742364662632004018876567199753989370018462612389919543365138878655677822128647863869502547439530532080678036288372915520592533634794518351470766350683812941208025576816918795907260255671007486237378106409220379277216977370864177909254059870395784597895272394229269031536402849717904965576897783858795256637671448929311962213585198442445734566248962373331501632947478218479194994075991577328841069535328259662577428067951716504927756100462752704626035053553707577963457606564815607292711628241206780317899818587135693980274810959776413291986791111373295014444447992649433713214495385960181501748467008426420974530542721785484792207093315338909694877499970844110569532507831344251593464779986006532028173143172625516223871456401192248103899986002748487870844717644128237957105666423314886318653733399045010659147019865608653812889764736812437522951612512936963252557339926722348742777086209563047874462568695597393987571359206709715458481967160450266399686896196432471825012223804092605331828278997677163060549599938218578897144731184106282851100288807890150198942156486276354935012764573460052314561205253024965583782332760258600409616891218899522809164102732673463581338781460126160964105001817664235653271645901017772542866810953064577842654625760996402670164658134872390781107841259943042923330237003236089186257141634734197084067615746453132849046158847705404514007501105092893286438769467069553280650504309553747470407512298840807348338999251234928525572146897594085048516177428846962345136730692456679267832133681373735406321868661984533862885471683398561984307016273049024075272660030399420176235447042903351103623509876332369709675347055802074205664360261083447789397355654615410803388215065280472097043967925838928688755346560019566333525949635175744937078903632737990850405233152904714032567966642720670601557899847644819975568765303560446261652782634777196921726048790677205761752223510091282600667707206202159126637847685413917792327053344174657609543112529602528628131915597486870028231623636232838389778684475046254489803774567627499579298460513431584036878260260043194302839619736155466728078209942808665414164896310930908320665655520436786524515531839234245663593804921667423495124750544653081533602550357572968995339805920960338062388316008703760067225613560175095590845622625098804343689238537135661898578595416265808114695900147872093271893487378368609950143715285802058926951491812732515253847041749908707845803949336421527858551327118592389873472533910819215614149722389331337553962626589309532565582250632210809686450966934416953952881005947129704774572181327343184621086679481782017667533192757806340331931855742854242696800168980785224664861581495279742842825703275655634191882166655173442209549045137771092324746559600224767719522041597655320169990645284519003341317506070093149174140642406566151698705636544421408115390232008746899060493698134263544547875615535417080071544534324604642690177612922760616442562863052577793892658612841656770505186308920511885508726704579804024989065075614592929999817706596477337157821467244266176540754608214130183943838415043990376097329575839535585809262892604260963800694248793938240239394477992847952126335159856470546372602541918742695199597804899329180063342249509305577487879344595000311228795168685722607153916803732666125110060460614318385400905347185431328159626548212729863891090404825418405155380980249451978790344508396560105684169379948947479916401264012684390886456610376090063919759989785923405928294731741628840552138977961953733611734917552799179524385382658893422165712089022751597268398499734123857320591122852673423671407589493436947767763991439214714153031681482580226632005953347517956949495694389872855184588754851600249122282669274636200372036830512844957928389474462608708147935715446833840157480879073869535155704512476669904661995146534588768215876280333376622835986625657207853670491998344633880300018430896003262319965827296422340891078056773711961590754027615245852531653139388910120882111501858191537386725194515244058654141586805345473101610344657888344619165722761243466652245079434387405954918878056955283728666168283757811461780794663563698213281480078637169352896956959535245885237797143404340238297477287289579002643568431750618371388980406335769956720465487570882724689596491722051100812949382135308241793488135395233030785019091636547015204307173717586242996000877671192573414206418892788418076441619864245817666306589633707572451414260570661751417734280559521906351923103216263304768709067791214622368112227519841579552687654007528650842315159779889043976713917700999883344744143852845517069398423327458684170532236450719172259224740291545056883681802914266996317964360485164758184662391036482280458553129441009946736648212107877317032333597088774144082089344735956290140154668581871414008551519180200490273257688402582636910467669524873951521994374438326945174763347264100692582940457901741843835903780084585146993104008795800185383421985985182874817188691062304098464894111441031688929870314820674246524772915277398290832304332914528151812872639836269825163450663657007079825739955334099429721359262323816691363201240318648728506186556591275711498697302609466191527695536248696943603399846027527608524362353459067420507787741623142363989534512130292269249388828375045937755593128002925534290883849491395014496815653364238581707712946791160255340689810595197660855313298611058201658664785212337295009365259623271674193304355293223215186657977551517852958476498968721146514825179489581894723857157723710937427755500274195190252480068376229598019115963976793656899741647893822767511842613525665917236158023531256124836634691442105292791322933663656418081398674886324670717883018888221421658020007254814461032432128646511347240286571350448224439628882531142981387104357105960692318636433495259677616733038997630252143037415127275755987559428488462405307357784272711768618182551732980773324972772536469598654132063101121259252281929042981798199674615460612635009930200036416238444401015066160188585224084324855740460586184871797755917203145785256211032417050832735341292678560266873010301610016028813489375705629467471724651051628008627272736286141739612022912153259297661263726129629389960532161920914409561332842216227626958405414913868037230314416410423289765657888473695326323142259432096303754259613502241882402542027660240337858491706277912404913881306111642122762624802778987618495879427862961404837021618118250537257268749654285589093790096827275357475695606863800886227616637823255554923232970253935927143298366646670452676373724117983879511864026810153492576909430574163817779416636520936016574347191185285739802278491701744769683602784173671073844380319619974558687796209044305501120238416584869408536644627318870043286347677406899939012019230643191003193789147794528932518215434796692284785553327740971520434644221859265204542907378851580640523947013383218572621399337104314162266979294444794240089143644731433339820676843521145725501129678740355563734991841106152073243952810205620620270242658254700956670838716987458528689942208823653184151378169281577711077239751871102363781566589184145730170163071272473346528495991063756355137361671197404194861245320493074837646164161578395358044940791672322626447964725242967151661171624764243458419501587812348918605621778840433720804225030143593646943918381557243354342666622162934733347781237563642788379224173735607817350621994731063664575586830634599892764812528410180378443142969219895935460343911482251038212307872816514439874523572310969493362256313601127672036323873785770982092978102876819098241068327194470202662820917384570316496665460544033419429926453258591242533983836237626763547961737319167506422885154290068129120944158621854173565748225738218680408361372745575653767442667110880208765958181700509433637432889736712992208453723635814815888861566550082261008669919442551628230794898025075491576177424190483772179208103991280812249759103255254408906057589258124108065283461946044607785391134513958071781083282819558482693068402655457965953717183499360628782703872257674223974277276297337819135139348353574318494323354005282854631985017739450484741907169032517541334787973205633172184743958664805361370511091387155106477555736279413442473819976623514880960776073373345587062303529124414814313863952352851662812754002931304060899849440743806102283199128432540899468541672636295505413140254424890140137283298123032507719953108506962289791387158081479676621304948540588599678137377221193109946184630268944379343113463154640385559829015727262277816453644875653683886473282793702053516583908714054410274292061657080757234643516059519483252154570942507340138653520640605362375953276327038320965729483848034754099581596393194394330495364583814243824766055633838722365644244893474528833822058550178151413123584303252042503996537491346993245908292073409451028027818661023311118267103615061940323020119619086565076508800154243173262308502179873229265915517740804855228755879998328264212954305837282673832155849528943929210537435721382170136843290837644249225113486568980399942956573816059374960497478431845823517590852684204150251706325913843321316667734438941465069629620465875369070524764393541850665789232805146197048876723489561769629443253086743012372262176487576133302296717934096829807968591158561317761510970061118553752993609381155199705734453565392384858501890550592902874382947946156936869301724956901649999576666461806084414416030900537280929936986079278440940402823043620665743199082516014233996134344184302851303468546175947576009357017758291649679142547241069404923379648314477310861118293122350183121918004737748048889920671550357281780272645156450403004785343543089063848525046475769533301859491292189599821284746161161934462564294180898172110527522704509270637134112624449669353184254800409921699023604414999770826781606740873335002121591465754248840072951444322248676220518562974663573350634676268905243828623135022329268700042472671914305567351238548770397589466377292765519507809277507590483292904275334740907292500286506658937010281068934454575517648991103348962681765806317097268322171854556113351901776449448099721594320274210571921860786827943964667607243059343105519708243763284495905628112623603744279653284489610153836276080327016576663626507013866141679256856664117932082521820049547236580688726690841297150735248176444692816322557624208469389817085399525621248391679509478953656013571393219664679247125604435335167026502607799680475752969812386094268942426739154537829905908609037314969570977969102535911123716699463514981321862215889554684748590344796727477636084655824324580267081112824083275251045319071870726863899515215244581318413855041601122257339568165743122458005763929405144260408074733096878492316000919162666055661631545082219531750598374537226651860635313862588708967023876518560871209406804478240270104814574062368224746689308037601666228725018131639660623078671973465294122187966468099950052923667724233828640906553190888047582566061648117955614886236667658419316822003311674055169169755586311471332018790100459954610310398035847522509345901491665679768853107021082293323573225781034439454892068770786464867437447022797485433265343498220747696852330429184109202400726227413593431260783641263118035001912138677402595629560370235264914421572268226001071219613014062707311883916755122604554228295765971900048204507676129449483225955328134719700625217642360461518545098912122402784724518793019282998544244536163227544011699372088824787268805879943040058503513324056464482179810131552631789214487169699607610859766295557595134434225891849364050209944167938874558055621119884910619308070616291510315106961739682689767855979818391089664153986741818638301389939146856896539200380743046492734008883012870255297236217335313102305798856819973164897206031959111776891542398991689385832194005269439678287041845507988316891335460760439763225585783804363234822961428609921036845397448779524837202406757969885786008276928579412328342956232038120828492366968922239332111004904099271229040464218748307006858693931651408682669515821490467068609428043320817143657635579792169117178081544037860855857307772567425403562686455854550484157785237001285025966571749120755161914133437453243589764745419697343332136929822571925738880310687206572977546458823914253468328198804346873233062368860508370124233475014655442858974124949686350979003137235309550973292000036583087863181428232021646372364913091252821719895085208614872134806180291980052150978154845797381283621751200724186803609711788422744908205029140916523512148606777630544081872245695577686596760605177481850808997152781806519305548720517284301304842193092369171553869620485585491674396735821313424098952649216774503978983627005428122611786332484772751882890693384940599181124228911234448953023818104803127464013799157361014331447660292633229016969085376349237296259700544165370857685649937687023227116794990070297650277391751880349564566619092891057442712655701781381971152025173835097386713305329294227921932187966733473785526311208553875170102610020293105149517769821439955015905413085055670838632683965262093471131125118743816561755993157914423059975385424822658364934482025994200952838304050745109813085221197853050164409135375570359573969226348683255696105957774684839033948561104275439209708365728719803708241961674404978630951579996480208559241206964432886456683561797386788776272143467957173020523358307589993511058717722743974128317296853127214339847187754968649538037511118097300744354382039932432831913080904999792588219941376670381638928230688337413744078011641874481080150680390551482841480463143516780864065457398462878390435527588384395058582731459389258103312215145855773390288794255560728735104007737529361720407092159975839644874866367206967148905632471989018307947405331201581234349662050421947234729136852326301505509255364201546751063190859476786881135511056173812935277307385276281190232173441844159929310405932552024910008009111768696114690555572361472162439688718887472143190288717980125517002463251688627287524682225100592755472434985022508191452553198154308493488670169363308515279795972051089094126460186346892669935568895696090237050705859926610733903593802918897721149966760446363927240202201924998224298942346196160692246905465660628648424704897033652256725728039758026138097728141946788763193822986264783827551161861916004594757277684221948505378840377970778154970119771992335530303287122744969275504200402775101096537918418758757417357608790160368500860619522747522017728749669746084787689982000265318050253897255972670879340590726411823147249369512289198633563886291402301226730945237233724341835615442127091420167011127478203333949681201624000589205140790489888047993057626018403759635768840016056359407304826789403040596047464394142125797602518377837709345617796879781148401333461994330205969461878595381381761485458024031326513780867325045539577404094528619393372294796632228323720108774810095068466504825882669333480871643332338270249200805176925467297660037532124167537564729225739858651455794961560317034987396827807545256446448446606163611456993060628422794383386402259041279033723695227796799154055491880471660123357668366155637600163038628370047558725717280632932517166350004810421458868923260059652943093500365675113241215324621898173599436051042926728160435226661072273275704651381484490657657229801207466468705003289616006317851545175003441013908888104504882481792814953608994443517961074611321356790519091693351846229900098312092684162395297140586506104534107561726265827633531195126308348732758530501516834498384160407125664789924139161926039393627287523037958457412131219965706245859200443004038378182067725769818188163035619125208959954026999781479409698391055787204177432338457655112313299364490315795677452278283330838926228797168611060962380859363352305411541030631372111511806247130208671841369521223446411886041390851406550964869900385478402125299900111323371983740837150475544708731826718893408586179090947722819365379966345217875206993627246564295568461117329244746041445229745713935543054512600891645708602450068708200324526053275677195043501022353201584228985375096822826069632449379160519825976621118941097546500058028252450433178985156305856107323028804181276841150563735487250606833325424970748363900216009669551628143382347867916324089725096217403629481868186199617939798823650023432395364053310217647898046629843893566319253330064181911387671473742943774238913076741977888451179918656791039200470952633715059311049790145639663925375035808362031597064354058409201514885330238416871924121884906823452814122472858397965091538870566560918210725762821623431792254462735192215141770756829545213057524216387177869206534348502046299612501414291892078261942376577348061364882699473455738400628900605504317497971269366511663679848422398021364061300070465252476185471019646683446216992641831207693253575374322989047019216023635251967741720287023144782685143010778014161691723528350790783575540436304323536864266776045606371205949474353296917762796179215432752119508553155181720140681375450928369328203160908882525902095574672707249965922957043139635156272833286086049966109078637307175623119809211924974633017338093904461452356061173618154578958454546153823244465295232041832650557545313349353091589822154668702191513443206982716414041928664351726066351027362115460946372486601051327967608066142202586849841534538026872678433922172044538072131035900666566267205061919442215619288655296501008380419515564737345429085059167791791510159436267355386869218845803309921646009467190963397796535743752149955892510313406108630736865747374927431390918356030988487537842561214788119932578305988554624409284163566123612808747377899529371330752497465232505032896773623253847676284537204402217875015180027923457860927470539925296113481709845781830128216359479443207367322085949070595386717140328250660937093414287417172157020969192105162084827993603938472735468082282783447803753173585979737800971948715969800769828371579381950830741472382710930864251823763569608281576303772131196193313883941686361207670883740697203490884393998423808443877171205264637878125753312524047703896816249609462848025446449885538224971063538824685569044858094688757873860592849035216299407633978798285871278056462260260191619697336322722765241278888075735734376370398140403494485662336089506264889367670052742522545008522509701609615106705829570382185487008059827125077226419623569654965114852002575544401986932152731284470860524288747100674301750542054282672786984850339152140656578737200699408806829972185945433407166709983340977238624535735029828940846187400650859484300128931687680723933851044171182600981756524952791626480654866628073810001360542351304717410146727210650840297584339275916623109245121803828078979786430474949955800235763945176057005909253282651407084337382888150679537229923617980038364638266629940480591531231250294109451751752903756316388192316682920398504921737652328565232803035743636676302467295939191068865568884861844907411793639051653311042822465500353473314310744175363492375010353126278477862906045506611107355565150634391563625170810429917154094985285586154970524277118890726938776248715388417539474166172511656454684263766562088142103796180646612720834300966246377810838609535107614827602681647270867114139462638270490552704908407822040321984577995699847064443381327143829439633275533113581146737470421475956222038140160479058952233346617289152456473455640289821664362404406012452123360932110054629535048998165435169303778561784327448280613070066385840667217928708953186739358610339817003719092547857476440895003594251740390811616599565159792670709604574095688668968201671271197264131910314254317591310956587331272677728561450670028321393042742732880258619496656888320358813799735064353782797083974660851065272888247317312659638846717493801123610632090198775312635640866098130081383597096069583478365456168222534179360528984893707893948397520043116424964599580502640954127430814574857295916057493698626112962942482171531013260666685262074002037086597058165996864678039779386748854309473004200012092675468133180607471744417081033986287429608600358085351117535456730409524594315320234796011834938772481386060233844207247665725275813962957490190523550970554043955260474543224553205916993234647892438084285289094563898108565884390724836378036078538897015101709411234710447374944498484152390012156470758151424760620143038571271424474391465151789064306168529142945681955087434639132762624246800258623421564498813436641583418344874385730780187446992516432454843213744577592738952606630630128973036925664771693639446971141752415697464009981801254905767199777611267839619456853818075171054120764365126984046326752000220764124036452507000167905476481101524193934881779454076286563584206149588944542774888841851090218267150988304524421973148196287967674741663538312846531398381319680599621472998708528305135403967136533081413643578653518767003030534948066071420359008028979421263796882290450217228921735464194449507742439917846859325301847276659239090229501072770665282342127061194334924493921634389791137490967355644856128221151730776814918128939860648598742661110156799079944828592076562680508191958948206153052736971728986073993838794723707262158443626914730090633579674326265025573591972709629405020347623595409138060192635598451666747195810016648903661890563835432995093665066237092994594105169195340383349219567231146558827978343554257156214859437642210852689692944129075314211487694983857587619229857834828092752384312314054560333781876659054953147530160638194056255014818460028069040899110825748485170129488137641707211783772776247808272272624109806641031843191891354210506281086526562381494736528168837872935180766256163316058163111372970660391357725104218613428173573650203586505397402541020259870944172719411778401459881914263778251545300825445444409930980750742690839948657340751787453951077305081321533830214331806867012684214845861538603022487665981248853490151767510054513928405705541587541814611671105084941641435165514889362781746378334189952040584181733419668555582191374367270373794179568797086852247381921246427371762001408684473605183215403846497007561075438867219051736195433997401877093389732629690056417093536430512463429487289728024565439559361785214543207204612338972841298618779029580524854744570508462991429893556921192171587957974151502656012314315696299809148950103199646619485803216075631221197225083783343117284640403370065414860564147543579197657532843012024787085380375875583294246038056738690835433452633381169696812013948353711573942184707510130680141123232487963347510613008465929320446788207357031885413185067383571726163307229228755040221188382977332304247222711128827384093308859441779869882966352314358031239071858825136159531071090543692451828054931201534178399792125635252632947533868143952597928523562454309993724904300475298896949191498184935727748184421520175468191931458774470526532050348295891319800257475032801621402868690087050582297166550442428091916728226043184375170357568465419978798331650929523610487360910342535600785247080851593516614726296623802500163424125461714282224459663989055937471594547517221133204874908613454262869394695916164498161160418178926933982724331404073609220857296891913793503646777122166842162395472951504994831735454515922262241798435597001873562483394987623953952921240771012824730832932032886628601994112991145808036149894964318272461460764038423762932390308719788222726192314860875792698182392744355864057184954566161701571756231361174540670818745075681298112692368901277215824578025789708863158610439004797784843191213400076153810260348233414376564531704244723978270540951286509987517469196458271021447372871379754541296187103665253065246354913511260382614843204678264910516308007864183891313688308649159279778927972518274197201784600950190979542643040914674805001754198408289000623621728729088908788884568284663793178951826555832963930480742680386000106799537216753407188339066854430645762541335014353046112822648677073520411963865217472040221297330511417772911102431948718307827042825711301940896806987565839632362789317116972164917149612724579689755991999631912613901705467087467222894758065661213103458644493594647897311350899867524821060434036033966328522984308833501701269652055220842304282365473872350496123116148827942836014242660855633311354945297026379174817593670749092813761881307367480531844838341401536466170147601174665802383060414002070761538719116691129474964477870041705521593652562917919829835827705653578673595384266067252418821056453268115336594550183044244968356365402045097253979526342334132255919381633487140412113294349078463796397596034616199479071986344748056441341114692317969844719300930799618391340019282040213109637029331516653688441874422612532132941588367980920706178764744134203300343671405284102924514128455371426741407771482468366874238903504996147568411870075534415339466918118821342102184149343597850261290568620337679186882232503433479681305328819004869934936845261644331610945612755813175499716994661796839472708803575159967260419453720169867659982002147569747434331943007823288657794916179223711804728042210979144966037434687732035336469239461102425861234498737135429505483980139569943578659517083305187349832212903401101163342184302768030994436734851458190041217169512463337723485746956779161434076833911973315429493762566093064201418250285902051006348530426566870349119169336036680482357561365732524993149645718058959477824010779792069615521155006322319734520832427564990100037723489077607253978180437714490741140251958778921578764237695407550864828593997960123349335655075306512049080841913147571771734250497541081531291158373553133995212018620199613820026403362312162191856469056675046098963607872274381776987188668063461953181129663022551635089201127177495008286699565370310249423840182938301332332803557302198151648770130169303390078250856548160818202426528852821110113195441704976422859416923365606541228371786727450991104377825697191450356580034963921490275868127408891866307495576485930451286600200767955442302778411511011141145107473832724848050002556815343689481726994452792427872068905475568187458234192669061176476014476961000617891330140976752937189636148138628735244480988668753158210046527976009117258306239523255855094791531185448961836991444493257106768300272985627024930327879421730369198695268957660579162262969160297634454522555201578910841142215974107263381829019022991808391252502891754678293911448670063050719285547781766095786440901547913254186191976891668011119714640172407188192682647296109698843700215509256154447300491216682026245487810705341191007002733381301221498134791957520083665948267420108263818796569215078647301853163825426324749030080153098890249508265857899542058871338611400459978235515739969592946191984897616562718908287589922660229210668767717955747768118587910756906163596835705851112059148662844405795092247634943020581172239992183653135607949708382004024173522733852507273586572588179183003919980663016928115193520823656500016490745414014881602279240445225860590688374856947998650647255496604162822981976188015064837909119639986881467200647768662812983146792555369438192115964925381125354406625714769450883118685437928746274528493516097710458117407621856276547117159226910231843014095425929431832139683571936851826153056555799497802281293068085839053484528927656931325082010144179600986595791069850050738193162845592035184011542124819084542673501435015679777796996650960023538113658325513039637422430628201575833185213194226510818430551283442775628058078764339774732164135232531939150595320931660642601274669267274886918207490789674746412159018007355562006310902939060989116214156932818811418333649849784927320213042064744375620369891106868251490738511124005357706016481721455782312736286770913507881603088498549876564412595981251850311584390421701530853541231198640431651406285640209021897231353334542000359123835710049014629093589631708440953426062010914938713164859407162334776581876203596913102239090667904921478650391391687328637165249938986446294073051539875446479252660082137758263818508170974285439120908039159469826995566145785480215296728143245715026795048045730576194828917736829573429074994939115490427224151411206590825671280974203914955496528129433068974615210323952972787601885828605781764810483473403751984103266380203537398127612190351975965742832410814739686044131795692887080386088692866181414034687003495439929513033277540888424400775457890371824942084145391736874179788601993614954178821819628096010267584520095705128165899204663619332815138647740277559108850046940630390197752100784671032197598136941061430035915179205557335272458975456616897361962252498941645860155791384428881655348054895710775402701118969093854590124745729924001145452694857139611701966944674173951798216318031450640755302774314253763606930046674880374522047098225383583906944431195002125809828346199067986188982342526641583797156451731935681478453995398244409360638559367318740035264792756908917721484347772318098355076380786922149534357629947715750392606830491485190205845449876734764786232382218638477427581411026364037706229751122068354491463959705414447796691721260470588387783341857844285267225048318697707061872583052537450522090768370714533721728562085477164903143692397243453398426770911527746378491536215162991933299675971803949924095168436118247486983234163726067775902082705634970824361377954920214076199903538431169129968862852121262123538966596040048730964567496469832082441590489506648973077779665478406464052683795847259171423116583813006656367146101140621850168539636243051374739657071784329022726459783001342543206777818659626116784341447890618163690652101872235670027127415631932407502671528974950896037422463517795059153498525134324120632133919177011132463188278749661692801694187654169198787216970035799720039850682649374954149697367463193617496211951341503653231945659214514527431739079485978469922452378761099694016336646990879925814807826456844245488747327119656751391579463335921655197567015431598637209450194729872308487669877113736953988023922612034896968775506715058289242904299606028734198471897165780420791247161262809150385884258372115858221879999912063925955566068329805489154932273545376749749156887038865794634257607156295983183017582877446745725037211107749481775526262928767451103457684974486505067317831554944706970663122807765506154327749001145566932277751156112412550824284741265447861705783023909523498727929924641037873139927131704100455590525092924240582049179387747931563348267184008136640009394270998610278055403481979473827391965508830240763413991636098411178150429860615893191031090481138548296345299459169216937330000233236376045922926033624824444268774957370612022487770317956219559445910647890227980751599846955293312680705852232125427675793782639317470635092201251699408650004036851197838053932104120018089423614278244666858361290867220529290012510411953035266229316962854086056533440975085395855132534438056984967473146584723305499003146016647074500649363046523689010068515771329228827430320983634516078263692032534028743295996102312326260722905405136711918915505393538752735016294544613201842536767663145634351162398545795190227902877293775593978654393546031505251272344255000554359826743572161732105128525859131105944443401141837522950847733245196445708577001206189362875231268286446655295885435854847832354626563629623533324329406656435888326687924102678056148251573112417335126522784575389491707876795946759342463820995380720472177443925977716088822734084227958131354475089317494240013052735431858429703677747422374444318132637882973091700172533430217393074315385865360658698487140209293505641987092349868092102810747092552216437342733575328960243199375123476738183239369708969743801764680585648677948150582084126675488250275466410458683612498937861664515405123255491649110612716682620647151555341543973830777104188086206462865169352630997331953071978022324834363700719506540127351884894743610969123015618013267814974001413614642531887767726907975551731757852158468909720523373165498687765245071363855740281074643499420793972718615926973514478675907315939935552298343760716790580711180192410074652016781217064148044062752013839123381316757789293930147898173258830366246797842571345262753114582427420484304133128328431099895905914027323564381851626890499063231797336978112871477149158912785706229108873897679638727380321759787576408067950250846707922681519729900642294384568385305049532272893309626657980356872338913183336843089281427174553130785378811962196218830283467456971208900066125988054156000140633257586362131484174804020324228497472857214993158603408920052614447963862948835039750279312761064748639359965480918324352683186594734763285881384281122211232790400485816894858036604741419399661341736495370888293084608522152212849649405435252494561151236248834899837858295049839031539805191122718211936915435713904371727238472676648638546773716434427311062872506045995768887784232525029094964149846925786945007366349304500328982885591054386623912871245744689976748166574984571852926208206289493551732399486455388148216435228004477209525824242122673576839514026207670998467948137826093655263653234470218345839036471396655257871039831172622702514931998505520803912090826118492306722557242513460895886617105561669508662057790063001667471972334529067919102531947225152075959442842945156131023914225834692475777773081037234135182021251455678013174225475581742414745487483738016206955072883619479380515881013942796753350224118299674569816468396447727286093650842701737898480476631434486946179873131147555160267549299882198526156981072138946922134196495071999409104040861997537460482178978251016797025097405423136514200370294495074460380614433286586871100440449456333484720085042215900031429299554667300008229321449426264576587388565617505856219964472445205792761279088228030249767515397831786065882987733736981241771811764396371156451342119259406992020560229862475793270229219490121399863628375049154977803422119169086702212540063692366898178850688017037555188992159939793765009093804130714247354457734184580976524862649880955969599352492488548225224600060768937853896667528691142694882483679183768792340915292278113660767080494805226218309016100664091705204461670030378538649267240707368781152386873825898839263244763143653046738078824981480564779616614256568570536410831445441411255920071055408621313037985280703566031902394977860005390422429617724712901970932850326442447225556096135746925958307146982632944522031048284125835919880186725883820400230113547620351151304722602445932770445129226432679588665051437604204053437838002900306174521519247739682543443022754878267873364428547499270227710917644929107419374400201127407990847167585888110896195976244025032626792105616577452241425074568607602793677617371243609245134227275848485368622412988377562127590812318961407852788754816131482964436801268712706720405184166120127046158772240449891384483464568580406155835635156914494073256940117004254038553232911131991118551362697096797601770277181360962091548882466538727334339890437243031538098718012597413205678205188709393102494780294237762615867193147517352167236578679311431618787591632004077235598117308208079653370189911117622257437942176296406781760231801150520044513336782312458990803901481150836558946912887030925575837191262365738631845379244348555180672511662019652568919298717074309747287358232212518724650943752573435854253221992463073468555609459046646682169472440104602830974794827038683179967475097346261210796822741517839287366077475152496929583692873881110606044434050744428167315084758250268087423380145266362105001237120777982229396158048975656588766242981154657131438642449584127336863301195928248967374664396216182578218310114583280849143188036502796678150372238111324546340934190360934204452298478569564739013284527826508728570428974567233091400377378677680111082021675002999078156886810685139660499519412861159646469970945572418960511841866354717519837345573554339720621934529010358522636681710776277381955674347480699765420677405146753204840759229581338332163558474752674866729120715410016031860950989985630149660856757299386976624171609763269317763891580113851046676185282391315784798527087032052534287945756935048771099159404699715476717724749389310805715761482702618160117123989430137935758442882347697947261795231522122226781846981102551495204905162060168439361586999150031058004598169205559034014451748608768631763290242232034589050302267108906224913030039210060437119439272327408445929148527240075044288621664950054388112573628555095333469878294343394065876732955051708428119870361042099992625810675983917964216571049800270515051244816593517140067758426091804249852722336516929853683118098862225547873513367384377777995243281581080591333424233350641847440302845682857000411392998036913098246465361890845241208725456401807998557855279196255156221694390298852281402197804721563226626592286295910811417220948849932624214158805799309859485420327020552384538078869184337628551207100213080393719287603562627726370062344007450865837045736167258693333436452786716862817551144410122653547681912357648562855449310066923401644089196814861865492175476079165004562863587108084160561909109386746469532858281624417663144867931876310883638681527670595318824282329146367077382855661839959033368589910678492042077670104687493863038854764637625009506688685056561709130784893449778152770966710892639517257017636190528767931760212529403957804468845116425881141123172639808883890075808100329010665535659184159302380377848064626601754235788500352009088230648376904774015948588731212601948096785998159154805908495673721480128762927422630159346443862737897730270022702769600764259799970348167093466456290273217080441869184903776426106253816980407467197961445025149033470973153089190941920702328240374847972766456340445777921374417692376820499749092881610026844318944035608805899134205716326657532904370641997249334884627921372007832209118617376840698446517070185990717657247740250124405784579009504774589993645724985069314557148482934731329179347454960842150154078726363315270791682848555116463334974927773932168622201274060737696648380133273172919817864504161007197946220835934455308258047360356703040718673392629894029909530710527759328560334614036096577630297738330415363879018131257897536259239205632903579053807728761725437058103623589804305277753934839241384013745836414644352266328738187497406277000870931564688685568522518751347010326559341947426328521147268542552839135664210324894558061199508413914980383496820522116128807270047294786428086434092325929172783059297249823638124647439336557036813382234793927866444944990048005312487546563965801272048052706286780892310447211680188371893864721153672512747196784045484864315422049930666221888436507434819322097932819656497540186383334547195077220713466348856420015944766579731348513469652391305191763643016596408994828433569510994539711795678719273104543804858652707924084204703274008309319613538787936082912619309892537396254742846450388587952270735735717181012230105850348392802159124520706210564898503155984661389504767218681177586384222216789176169860119940594218442606922409558467014156986430274273984601699923744614488249183413803845498241333631161090731382793776865022796945750633094921610892914925280901577649511604998240040390953877933238976296141079807338241066600610753243927316357455389888088299914765190736384572157207647861922572234246539362230743973988934304851783536812032614120546108515881231344716704948294797166101237039910108925603091186688176003000893249656407291489862887477918752297944341334017584007689729331811197447136634557498229078623076794854883877604960237549768982751301079666819635453700990092746720232961143074930482011602909314661518562928479623352152603535905234167586790801903997146749213661867345147256986170746716657600507654288534173147149922271662038491406327926952296427483268058761334557908386314794317376763690109130701374905331123471379265246393235794082685224428008416660103545976021146530747645249397928896842038243785745797087756856258424493951897350666595991609918343436990495677031501235415908674397460208890330151008707667404520861049621273912355410637260605726311644874867661554277037453463221107711630138022772043880434198957586993699728814960617050391476306166512582529578646583099642974109513838465446216157521244786312418265876401318747096726906103589518719722636103187285143277893139409244066403643832187804104577823213200520541044429118813292797700992219706115332987892609123244479596965317937506265328683332632889313734652359686864613255445779655700475934405155732555700014099701896132762990840359863711608746587748719122850225587833762643379543175825541052974381548314868795293096493151867935425859738769571581031005426801779790699012232156389722138385194248756303199260459799478705632000579918111982322118823451890732252362845628208960856775876904106477679020959760799973298036507351577590171686948832699039437820006964036013658680860641156194832317884493670562835827009729236691603445143054399532440732299056246797106944042131387070227442988861004391460830156307071004112705264709330379453935958799865957319688833726909913656284266326421278993103603133042064058170309651957339857057441890751986001596874055829878577161687280590417559469927341628934696680778115895671602946040178592508612542426622168970050150307337856636769818047043412397078400803124293795943606607349318170655143646425552838485583791095270407165861206998644615019745790028961815132418890953431669035095091918291133544214049970456897232893099100025825668326544683057412042932408869283144419265006260493716593134648087441669269422077844293830654105335706996353228933075036965595500028183917395688810209580503065579913327763002381222400160774162756404113417025347767148435416740180971473549291844085774283356330018921815090750279155130441400636422766349609189428486667816093435478595101642416204330537776581742059499609436728040773649163992154815073898129070685763940677767613034247635621346558257130753650755437273911762499578831053788282018205633450542179400988276641564811996391764425378352468480831676729157687930704256087184059971263742130572499766508760632745595153405360312780001608532507981630285376051089418383635694792133365055615932634624187227961769110085094417150877917788098684146352757960015552721807908245205870674150661858910075638046936760758769521534406393768727213609656860847651389205568936389799387265438329828093288883637488940339342106042849375833473826591293257783715930080112262133566329945798240869439975911593476795755662100053783862599414812981266406659231106954617062234378897162771241432712316824121735126997032402708264301393432094374743582906400970922333330093920961370761380673174091487345612736465922811654686480816443801581510840978706566941310673964073102125992218957711914490871521964728610187704079700947784374330740902230263884562793487344378865414268774446329622495247216630399658837526763385071759366459942806383067946209736422735802071147469422919817606161818529282394462820919603976148440436529005795612496731012343167960767156969902379355888713491937171211373830391691406257215848762287991859420887149722918928339870887723703248625754215711445222216718651207128141671060222676639329648633961013639560910705856656800704803823111742773571214005994720080050487689574197456612366730201240817607402670247051786792030859452153968204572009763395554171233074972968659532971087809222306089448615869577313980235206608453238960100061775149915982341718289052239004645006408156772118492614534983599578645262164292820964578645242025036467025751591651616046965078958689909428493528153918970577989790852600103900158520374296701242596762577282030960566983052991635433445236542905577417434522540932772941756897209455574884291969982161623558915491927279146761321233786831635816123997505317653974942791075464509632005613192211759658001825926062016416615967342972285555677618286595438689654315618718769858567973826788740351496698699049136948743359067577853556113349877645091863876851314936749568283344213593726963593170542653625013449098653982793599565670975259694665092958590931571981096898310846998030318934080807617715639229963149646145381207005439576261559161780820810064261454668645561229928938350546583079348636487823311394012529188734416166407477069392804673185009429949678618754443977887914084759618074146342211111767700682551089421865064125574526056047615142365744653058920770945197345087034483244107400147433116077825765082562719497958109964376084852080304508498553924243447730044373950394462713782125256486226071979024308983881365626617619208846658363983424400247027300243352535663409439055253522159709506635296414691764619083166974377053831570962142031655878119573078776725358650710215070561064577910663664435616012706506138796040115899593851852353766154214253031806919614099105120342574498907752568941731114938900705089183133173904095153631515502118845778648654151592811767961570283416597246870914937385207461398012638863025982450930940213081566263993799402460052880067592131930687664336685334161806647656769807882994206869865662340767980733679361839650252357892517555345195254091036997531704963171895702076218917141041945283476136568087234948317953687863630113290673139660441326418513059355339169968132263129573172571320220671450585913433000746558085364516168884675779249027924649108759169759204133837859133873592540144707213687360260923275702721659445001359451709828638310649838704749974437001176657257882335088798809097461623473959262427758769028395079801215923812716073480016821677410465801411983302271383898544243819896676915810053821177169444342390544330867816311764887725686062756868941234441168514901321815744138956756079238562167900976383659497131658418251383660840937671752668817250068646826088673615670252022151260642448914361240710332030362113765274844235717120489985264155047402458437562996762277450283831988680252121190839638641968253552822730861736034040504267965030141893906777441373344575141519620392254449123041843380845190413449911824852973628702226559418066194955092041239229221616713886935592382949238815872914702353601780089048303415534099568787484096631758383619299829652299461439764688477545353282932617458226694163631617895897497869756069304846422590891474394266727853694639402518494512513647147199502041423842178705313557917352268812344792673105302895689734516527738921200458036207381409088663597094108597998032944224214103177141162193426911593502381813055517708501841675815329860790753843294924543204775959761557255211486271325939674668817039439694653005626993999383783133452131221495979268825947933119597233829007475013022248614951587899020884020012028411135914899176378424077887080460084605124411213193015746369289857227934057888727940901760159411949090731362303005227941468618158568423258347339460030239365787898741989650401371529200918355063784626620823970228613452513084495667994123979690473855980956542305512424449052191295512637793121508243551755133974862309740493987549095389108553407217655317225925418144701832024049457627869316856131894095106813618271481748957261649947326169182132166532545755898685856661942645919353382391533202188940287416470258697652730241861063434756884572118039167351080068217404885653108810381211943853161806897570064015875526808503771002045097218231552702895217670971014049818570940771916553465791277459398148204249586968103765516778537786782282277633243112362850920334475765500021897754633711634157842558444349416536415722813424569228502174761426196761667649762389647960939783208647862403023892406345965058546738875095941474299095433877499457360035959896240464813980203239011749840017202218272731615908794853980730832627246483799062056585697244960768583665423724329135690370518592583706927859154015457311248992863705782283595543147580943663709706286404735438420540775359829170010205494872773886652599964304651638278240377019594019068085811525465272379281926243559676162021928741769545464866828066838505642346121168369691044450996959300477463941557467433572645015754027886239025399357581245720075911017462782825819259589380025628770006273589758725470975557341641069630722292733850676189351267014670076817388785667978589635382785669548478328251812366574867378667326153313383455826363392856755479981189445857522242138741681436826064650234619965639455954237524659893991797717088154556828588770731819945646329614136076054082461049231518330970255389404680045476345294347521183016258317899072470182969728638136219996364305353812454142064646626530808559906746575830495256769430720344718398748026045697896860990523582707919314805273686797650324959318420404713320894748475564844333933943331053980606584291588131397024267341431516113322147920651609237547558943237877181904903026725423872159547522762030531572161708431510137696335078402423797843109834090386162198768327987837823309828891547672417146535375319801967745693836320357373318465613152933583252862945083303221589601254936623133728106284381269736672181653904051909863063789156850413894624427309634556464407596013353124697583006622100955504499394400841016472088690733350547236212336542400291594565684752268583032835655873650754184184879590864468883799835858427941373976331761494596849571803665127710920693103505619450568283353633032673485443194838420703319704776146602949294137944675304829080756519292439938881211089671975175064741766812079249170592457373818192250838271058281931223881430900706324641799263624072929109352708339089826913320999672302402497432757570793020163978670049929163375378258556220995076446754992818127308858193598525924531888621261660935352088600440998632751946629142710558057229126178256287292815946683682261225049759111266134741092936546148907601655817904936023482682868676705843814225110172625068945993724571886874370140355657358511867115537967723589221120837410633750147059507969363742177823544102849241474895291420732615391357773271847079528863160616830431794628068908335621090034684987036366720652262741687824124150805563735606574850200023554114936199264872181572311611438834937591018814353686165236105095842600803019886254095158768051296249511547362335490479016481466269640099501369166145381727568807793185993590161961558012368834598524965131217158055974903167170566386205411497196458748364710496467591577737221156765425472387853994190932174812576298492702804694955384542344614234890205806314542759465128572717427595891945442202165768426104064735310667751820814780607404191529019391262704531521366631446632078944700164039231756860873652117439981788187676653382673813616539055404139702831828159421913429806896986634257182358997167451701240351787958885156183567597397862242825159783204090464930038308936185531605169958666530279765913075131971253914744632368761381914915881732644138038412973385976600765582211550481516923452868023718488626323289465001567413806473322092981230111568462026690969064446789710025105927353771964833691141331783384661763093729442982432192171431930397202275908099986902441383918606391627722196412137523887668142964773732001032882109007195035190094671685848486359119637643447480913065636254018539892199937690074723295775491037962956739611507560782681333834398818654341294707657771481994843122115042663677872085131073991168311315114758915859412992096694509663401763683618464547771782124604374778199071952787933770047237476610615194120870662372846620875908293507435853761189117794390372013704064081631592547850738695152846127176458342677320847163511959507077012946430834864964488999707739709814563245569371064680327297594655061546913441356372933533697692372602136246551210515912575222209658009463671178630600416522104999886474845708566633937300843823818599006594007507936171505838736944336578500903774079574129321250334939537949936994057116408633162171101093220503990305447816727943444972403899339187391765967525419727933285005044771678918623922063213318097182595241258838200740601999417966508952764858971838852123002576698175627749412681965799861969992601995327674559261482822846300921473750712558749959254204633561748112563215737548575770447679191211150887651180003755246631267581106791832448690359107879334206196342331712022400113636408176744148101100672405159282943229439214166572716023593188690170132025309266661950567814082430949161628227372057651993358882779919898249068975782933784582590449478901631348458685260397288680700474221037011878190888853607367140961672947782965610002840791274772586552901654329384009233588694520608344361396280309134297428036133182805414434469803185328183289692643050923222654207124597171784213426162007017153695708615490138049181284380696293178620479979105845555861010999604781179225137393960237540527585313171605045008530388290079724155756566563884484757808419908933675208018767879943572543601659890829908661421965921345728554940522253154962653353290939953643515087056012943028628370390764534337911214385437290636025757138109489580096988277318325697242242341512275296606863524980522993777786953012437737157355887375569271831388340743990936817184458506625171675710106018665260394634658012512839444533229772309842107663297815811738984585707567014794808559018911188955323858535717204427266918090515318209781055870856705259537145551057122007498942288119636993669455269946165006990734910964097093796797027688681522653556462731014559497761927847214977809008442736959257160716148642129549973185155037158949360421821597762099798681010689112705679930036750736944659999892470835809372671716055537059553228218828905284214634267517830771934573887001586749679773089021229707409287420694626727525488041888885884058683976121399943114009102124770163135449358223955538344705816574231708949388461975776737868018951551824474599010447614938800543546639314258562704913358342152825400435745489507789624970487914697022582376868455407117412557212457234540933154711206634619559016507875658902024969981280389959669599791768642918766684629590599486068245676576269533389411675154338209110663621556318090944198215756836323218069845948519971561031145428312929145116528232974782675861332934366995631769574410040815369023294064770741406068531138226892734771967815306809584296421549176356752228853192950010821065315208042826409302749879986990564161111991435374378747327513255806423438646059951053555147561501111608172160413439569681361738446769097353108408958772958096900054192883755354748480978139929504561106191544116133410701283885768872591776835296220003627829427185303765347008302996619165207918988052467352871711524030757810624129674275159425848090483029812649145076451193248632152421771986978679171164075903234084189490587573258659336140994723918315904300153574022858457107391495049798223703912775465927747315831455563780097700442517725003839419191093874792004654310426392386897327985176503741687749776814211327000259158380427577425751077447310727260614024588232929495322900527975098037121458900836868061274230282817842672572334502350712226208627184042812350891953454001815004685804573490373090951429416646994057923541889713282052116138828194538728168860732533888057515466750063762235414802723548076921462448550234641288735054376524977303850735597850468658105702233204075445716626163028470503545714556804788796515630161142776520537539317990339732410661999936621450287427103566472980697676246825525891028770285535258125680797147599330093220947634158073291352202887296866371988596530217992221830504926026338099955915265826554567006988567296060118410651050438087994403892796372994178333470109290109685053558787492343191945557684744923408215519092766416452526959328749522874376580355774718851497103239217114210963296711298342704879096498859201948489546092285223692185117414025900018152038949239387484244563460436899016989910711718726101352768448954998055046047182310451486743503504847535016607259145957539971169643566143942941038947692515372302857947857601902278897309614026104172131334803193649774267124646527830660106157772622081990302838663001960651979835124736709910946095234699006872504017834900141418608543585786016528051188850398709387668384569537523061140171244665175474803980052235680396457328116437649383899397748418045549340704139578434695326592692681954703802810160269938455612533732480180298118578694912828887800610293020699247667960357648611857805455229951176205141169081031248498266128302844576253723065399492878359113487643196496186595689586625367556066189651614999405140671065081595552426041615383042342273163559069873903863762025524785133262052676709862678191294104523637960890774585596208004562250011980797144532742795274472140491415014810619488492557871555570882302643702117596433373246291131208605341655923229554531107754256396428480859425035264425084740926229835568594539056130980881378448336451359410960611122453248839785318836205546210922075067689328492671012815160307450296905762640788732001265524821561282636912893697512772681754719435619928823627295103673294568982379878929532788606627540815194432937601585318921706676229451655676004273211919618810901241694366349114345059225673655752612913144458153844808151454792656165143263188766809379533215928184212946397526693691878896676539767230689011967252603936172704622139636985711697734421498736203948107563366196923837684366313289061063246989223834774274567978781586473062852822562424762510821984221915618548892020331951843796156304385928514911163379023096670960151065409458256308838475386392752641134404621674998031041826452594238457015015073152835141512971450310137241516281758099823209107448667382317607195821628859154270055155930840114314682902447245780004549347196512351243247077859225713931278153350139240093980858184187138034394516752251434785747717383673157013657575893702796723279664354702232817179697760694388567374078958142884504405732957029946261707593141411872413720336388818703959592490464285887253834539741626805208951078307197993795181870649556696182111540830868805604919228991467781505735822366400333981393846000366783801738429496891360059117271574013807231400259386358177016598858130378560291585690195000857513348827315223235897187511517975568636673151904642050029007813878394130666048368558148835322455207579242326454607079877983880754132723691670069581442604934867781369998122743181842830885150686538201396357234389728097344127238993265165026190092271608488234213405011501780157199742110563339648008846446437746950822158757700085877740584533641282875036480649444813938883462677306482268566329097385541937631589806041023739275484811592912744190811576096269533416463926832745323233184279874868777697758595889721117429274940756397499782150181748029805852377490415846823194791082080770103720440039535441585009741072491873785486135770329257867342309547397494478650847106262661490094450553755171478092663914509791837536279145227135614575570405226228834060799866208359515951736001751417135326140174528752910702494865212211341578209997744094606079020985699721184068992152295947927090891116767107645610437666416286907386979906408306288545738309029822805792646574628759518447931182811387692277206445510947739009428631537014047507691247321869300437635799661048423331910600076108396179283366261062272795599146420249100939212659259604510786404874435035022596614669495515830895070735794738990057855112198832186502336775010887571004874724571441985210631832900702756845076384826953728961611543180584692945035333838875421725932781432419996678690964844784344331279778647844608730708861723630173928381853462171629237680131292941911639011454878942323540943111141696479981572724354780835903650938310949155507747500517480752477579676904169914706380136765173933038047255429045685243636486540883469577312803540439049142215172728339440839099560597028154971322479204508469483016649722406333831498308225636167561011179201025046477680255730708210624060755154159624872728576308460201168416775413351204316659032531400886090382962900038093098816649428413536294098363712418979154304559724510599103668013456709744272409217602262450430746506713591140548025555757476456980306294703439500138922953772949859075738069740815196498611356882760334007335555727318935898425280894027571242115604248480907177931324794041881201252076638786739611137945344994818083817161319092769551101621221031266896712299487962285695685341049580387971077301272384129789436045177582386229486978618051339439768880106027894039626196313989976042751264745263999877330200178458582269368396077339010310390988694453952741547744406805094142268196828770619996176021621366881574169663418794803203383502981995649544268296355317008292773866966086753396232422365747546650968464637119322334625500798643086132880093815412254309980412241271762844110109718832371211544460102760096259544575462158918882998139398672073085474739647255538645231652624736847448474860467643975600122052279869638626734333422117641572325405701185058817669428367453911057692865780009896506267402372620082948860518706195493848394255175635014414266830261128700498958823053178462604164084232541734750422938666471275996805214518506370914361947094245585050781266991215154193717923191391653970095031388545963772472622780967965998497434832162060146221766082034968839466092752304704623605803977855783020681648811731199763803111608132707661431875925552846527285732921325903696987910182053635155115159657914062171482520118338216336996776355047999669602329517095789959284611604101934951335009656031876590192940602175212721030176431701348178252915908733238775921233971094030156060959288725624602004519129307238994513476415950298497785869264343797593736002495170655342823971593308490142609152362309591966217594036896467966364694077909091159181093012429758834795963485674655764019741734864785282611099326798592742679546150036144909691107522704711014328509522983518912877868354516836505373719751284239660698625884829293437578880005323462369367836985322871213338042956727548140210433267295252530739531199622919128896708690215542552404364125591272307444221794772286310242627459924651927734597175805806596665619264428921456820392559930256674123746085320267680949284548095058971720481627245204362018309016461834202398613775909181193241411407289659492820771498990872397871529665789532746279918744235676825972104708980637208571746248131842226031804908584278741769591794359596161976033191269624234728327891526024903627302608465491886638008563023305921810446919525615370840924111458609667794095570900446277558480361975793033434189576673234677724756863504765983029474564719140209309666230850905702796436550343516431945784618352653209699361936412029072548513244942478742333202987761867132823651921640283656725877566537249855500283640608193509888344759923875439400887018406722810871243305361783832596891370653923033375356473639268473418651533546999045885470738627599717734099274202320524389725274946558529241584871468253366314354795017928820939630649770346130473604452688711139427706683904635661089317650318401233484507387461375501547629536206215917053778039624383404796079252099136629566658570596244238703598136757573250663314593749585217700344095194557870394608205892750649792585649938272983446070626040781135168907009695741547174075533551010128734276581645295728377622136208644870624454825349461901580096523871543821440390684360283506175558825264849026317211294375266136694772831203983782273059716065308720072194006223977886298705079541120456159479236082340743373403010620002586777420829010009255989510358691506331419403230512173992909031331571721357550532756338899956892943764307860480305854016496708255871703426563107373461018441344391492683970105618872987731835439644926300027792571966991044483662629051765775447312768452475833458589822941938928437210924814950861763564228123090157729026692930770066816404609120174823248440047249906373229785646115720477741996334712298753743239468525276747410085056212101619514107768594230424440839564893532387400510933606769950833240026076839856124849276493873716465434166732340924349958607431076667024432304710513384705715459807061324596821296354264983608867831259770104150199630836213226693432694742440568913690233477778895325086293496124677769930786765653806734585511950162546266236654504816260357867996552486817248529100274293674709912055453849665320196115509654937695232962516219422431134996362145456909192592728619273131661578404417172601659006802186263880734784366991455734264282056577170997022643198592294400797279760118614377027983195470328232884160427022085962785388654679931555020462562825457829143109019725308063520142881529131512438897700346492248747489759506189018468527495979907677835472987756138175255723558213356857826270269765518939768075187352958446710517730737055387777956157789222511729962874504938190191958970289962879511223360006606370997131504266283434187258896239963919817566548315403457701084325245072381299645591198050941549290628811785688453611217512658828649515816337029135828617558510846980651314508241802793888802003669744357952925901259901080648181716782881182904369476193886881286349256183177944480649453508327401854257008045404682587300037813429448467676156420389666316078489905341813017709684371598862970506387512780714526557402546800534354811965255897979241668499035782054626437634713627209775187697515158902695736130000846774918413208054908294223077132458501236485042520523133365086182096185466133185796330430875233394844474659285300747305546844356255089339625776215595464374414102739954666259497422241360113597219357860856979192612433655507659326286998588010769236268917070104064135533646508051961698131886489538404791625901032112428147043309297891184649070747227916262325122020912690157983055357046463490984771554913431291244211471380764489421045345952464880436535203344001756945749477448024195089709881629553893318719052872901758466787534598532297509522949328286781246971161931132365423737534051494559001422694089998901577100114854701346571848848217481383891906752095798780250471853973040656654068706703432027586883133379626926460883519743654145753329246033181056906515934045600778491968491947272696526944939372770347602566210050405360529393278172855499855387075298949508693031089528898442373876485507480950443198312168500153517027876695786016834808508958834623260918812699048895843769581763853265400832818996937328965262104854344462433700348906042442927004767442613769577235892500814159819920619962839985808161204519292940774000105963188817315074492986680816587528446464645764798875270347073181452600094371685086013759932913848291139167330145010564258123422843394719996731124328347269635590761390906905937112558384069305308553340476550389663112216965574501410547213723205017348162268389046201171893012674525874064993981833836872554873289994140165118119715074259036602849774642327160777865526405633162990002001841056492369971011240566945004751336709960133529414995124061874802183969359822408840014002190388707641014896209953627669517613125279217475694665842146332936006638531498539803984439364675864471451454910976595217097933530328976524375609066992176086715538545549531839958531368704830250766991080744934989745863745778986469201583385716074029040676609147211788485858446655282753223838433951756361034740442129645877060708197184818989024010511951699442540210842611603784959072045275461503746113839217080495017809327157861145505686137485732806037013373456756683254395438651475912937462461484276257877546234426949303203366452330555054868734629707388226048495007394151651571791380792730517074284840960459752137366890687071023738458955785253595765373557335522471914760275238545567079562255367157304030615185232160838692816639735839118683413812287771331346600633198586860789552215075656266888949969681900334583663680047678259613813119520419501543472919815513095348203073066638088941578277721596515083713013201867241017916174208119530789358753272802949229541072176079035945524926574076251841714917479115978150977549760011241682108625705930517952221365303181434816751212828109215610114350968555086416316856890422192068868282636527158722040431905744208432105660126373888660293562002379205587120307152405333017803951723083828966225978563484557891624510173683838221546007463326279270070711028150680703678255245535175408876431229424125757012415341756876153854085519914782910215677731630011533459120471745936810005069335527257769377914769467290203303986779068807779006146937925037642780085161164580011264933633350793947984711204683556809394790175387576967187762363053600703514907009600462955946809930544213525340483183631474614066434681091171432473945058185641950960104983158719183891573803479019073249297312895534600078748141014475454688810319241163463773257445130269081850813642704522891252274073103683179336458175124732647216886836934128059790605495065360045312869015708998000493569294503362745057051978689151667636766531179370297535829029817592817679391451145585014063607651087717984341894488659743429665893173802553351752771831151591667065092062548075659431973068796399139692254525442667803827563079043416263725578961916468436026713168050362541553414686942393018917005286127148358850615218219888594011637625268365577837436572085768456897703205317931058451949172897438705929368199036437388544638210141584823296480577174421218874331381586506952911554832565206269404999079459979110013801169704454858511741369165129366359516116632316716880283682415423740259001125142072803552921599029845434928496715521917340515028180007836483648978687677434212822978701436116442467038556193509540042736473583909567912933052994184899654713206504675806711158195262260112427435300201860039437517484919394043783805312297579005167913741232505769931602429153232920198576566179374244352289205279819743388772928567197461370930588627410165365905874835318943122804014872515094116449281342284853216641171336679934458309870589090213439980469454302787084140771258915989651408063141116106678717437381022622040074022946093677710183191266081409115114038438518400278924810399132544402665875771530521792996233066825860330692892853971948979704749833599157263669461207188204217747314366718852084746871167725569675180692189122423889024577298281431418141164233706873554952571142207749515897785560263463618102391049163546203161748238441785853299680707077190269352298992790992350418615412814983110811229138460176519399656207936632457176935600170409490034368565909463980872925174534439768663471017922914882077904697752161847332421971400871006339440235218314241254612964571991082444561588133569595621841246219419525599868074283576398072131388674937245034531991102123700210811802710861919215000876046455329614122222103929093512790876159944025117707240635914929930956141516738103181234810493006270841321803859820164521995000551683109185551977955148795755941011016080974824355189844724330992300656406828278579041721363482276543217278556057221622311496191026832146214840072896587788730668604815043436518457353591256625770550319546679127459903230583260384565458831152265721122372370320951076634884159038961505117833618499929204960951936945277952785218475811560316485649998459287993177235855552988905165755195442253001075558981999250926097186513718558464482253438546089460777885669084182831330204348173905154329591464243944049563398758757589272207259381488007374357433963701378275979153432356959369801594309986328601223218665857194437493778583716038525629480616320976924728091053987923221317556905927169591728899182380898236683282410951027474921951837523053450185525294611785484765161847895664413576537564276729333257051493649207800583923338632292757676158440259589093018366573831203655394131226446624146654012733911222384043316818772767321452748528015180156664258122880465267743659381508453597576500724273641506824049327485340487285347100856457059049280095453130821539257704418542116862266157338323004584252652493818157291428675420486580124792596189491901261247815606389559275164826328546943464722436316726272599214604490883272545740429222115333178544535414650102362100567476277419601318278667654141713201394484202266424187900113367527143526559762780825488536240826118690716189143748449331043763315632034168073205506100128772545298633799469931925666643093372325494129918110578842817243058038370813391990249781336428701872912576131190921534614186976431067941724116502343468727227208405697344327972950922300824759510509698492188106858605302617227790899610626429615737656990779292696387921196951171613805740996931536647380295580197025570376199636453426960543359680139834335611984993132244867618420291665437541863040511843838934861031695406541146516904144057233907043593023242268941110263786843504543032673357773539906476517282969261431601508188743982356344518570289060098328190496901304198408631172569697371526432342898752542008841970461081186072389227586213616826113317417200288391576106090765154860933694188326458884895958486805379498889037654848243500114842249206662982037665992491386372326685400840329434560291069383206902766863941657580315356307527700324779086359626151033357619485319700116835603765037582878500536847236581955905640429987982090608536202957536065010229408986533817896708709140474838610220146065749801214275737962773781600987414768044347101757109275224021772217782427298091916066439831417368490439929346873924448376224087756420548854075149745474611012398604489624689455237376035063454536044661569530834182881667490664650474468464604364799983920894089118151038139036974867496045319894121755905961319366002307911223607471326201388569832680120359515295502619690152320749871121450313485262284639927778462711459419676836696623870935802551893659723707082011852839629316955338828807059221915414896453022308202949947226215396960845473912167314585477159352811015982152616145482544777123379499426201656739953796778218883234900897927225004409712265756561269814747482318392342325464355423648087363775603629431305269521666158782552872090085811323011087712565283140611269422934375861532071093229699338422287338765550976608931099313006736970385780839732851031609282791928973507352739064943085006477882781076298632492485754813529609447061683916167250497308693591907952859661931101555588490096132880238108821383033028465959922108844663879641780706315513806401901756352180486143388039119277074364107505254981410806192865383007075522376873594870006313717751758715040937453962401427252343096656041005924834389249372225305965693332398726776965655667044963932892621972549770978970348615582584581266049058438196512268461259144801755304369297211839962065569614128856363960997196096379406093926423691549857605823108393301604086967708216326854880520803098359572553814289309920883479385723121286971655639121774108742221646158841091763679263429739255888920675920877878590651324383020171168688755642194806866216113754760844401076332440544477219230501927469896080927504241178275343959594344833188772235924315328913938352981471585324840205043872132404792603870703899496996671884228714204972611517689445603803461000702937424146534190881543911780142525767710850447358405969268011871379260807513256804524771260928014327477866802460183346188177386596980364312289361265418749649599208710235803975028456942024491174153804699746985887069259838866493981437050215500376598302037290246707943110765368706494713913242895974878346811154296203387189617009738149722839769332915990844682455525056852905999293899295793368965432645375849861002703273107736103471914093054073923356850104931179473594621778957594776598730999018039038845449467092298388065694261452315155211151833377584611318284603242073447712720643059999315481724042154372817213316167900070805990564416412375626969804865454500318161581504373092980677306525388229033699038048489048668984823949409915194550008692028518550832874576099037154557866559418147748322442775697614295764418643812319896815973836962877756368494576477352549768224732903384858881221240227849362539959338319571860347798393461363033966848283607278848982078921830145644339332802762856598411679337978796336973159695223257515981693820615392836294597125449034109139417250077535366337491897078517280908826549851808327859416641588408603409284220025732582138497872796173545069829121232661172227093207492955944404366746079408457367105842349382331611074385802955302059733313776947518709323504434332228741256588552306483598439015194259095235696368871560352969954611323773205122513669289718461756305630544889893191917145259987125328636873582766047903565814337469366321940705695217088823022515933582568813560976206835272639893756620820685279636015892195322001608811225169505772921191825781397962689600722566117350641814507783069203853739740752887256644818507634095834304962913978736346223424438786590700385490331194390561646597227423298029287198271475576841899171212303017935973886094410846620504314652994309410489729779813902435775362889503915109152755650966028875457827232726459916849896767748324098742782051064195467563845967190292712796238263979655181078416261524575408231326766481894534047468793502767489021147498381643997823158137642834158617038981600853297157919947433240040640073926027827113043009487816285552283446918726016981231272369844509837786156662992858478587142580045403150951685510804734309094704031929122458155833891045496203237156332196069914167821818837123983914596865926793144294437477142201396447543434191954517905509602660858205691413585161760428266588210537687031410940317245344087698629788577369451396496123529315617238617029887006670645185976956948615095490493455181144814716115685784002835181934477214135972717541350783647715886379548156677863288702086227769421159527785686213022316490635393414659536607292715699586744385149202169182092722094863168023787974223044937571025290419388746385995443123268553537912582062184907386395752196377907692387961813111922893953615688235265877307830729650404642186413510089038080783733727403960052629916413402902104730252711530590415474344194507236497240974359363994083777260883983475998470322381987870981393172992371476104101525640683302011058323522898006581561488257302485610361707455111894510529542522636381918331638006094595921984644954231299798343688342279338679587755107731127458702626966632782447255208540976561046586931262487773858200838991328586789647230175121536708323095250537010623589641973891948806868105602271118000302702627260542479712466396938256937154141175247784407000146716103663805209275045638983882818018378236123199408851537163499599907954615743252730974115793995916474789793430947240088754929181939337776680163921212525664443729640267882307787010706386166074220923951617654003986988753963457282463710624304053943875042335197238470048298975787980121732264401824260209152630705041936549491223437450532293756398437196182324761354024534992092213545652688000517979575205363645956114424967709178566713374838916010119482807976620687460229279951207150362615244079512659039826327701653973672284327189399040614587098183381168898159912069742477716535917945907776887734855940378675430362519085259155302086257500015686255543033189597666205014744416441944426786918467771296302744856728554467979614208529255199059104548400362836530464164935804867982434949022707914690267636642713949263499021855716709796795183337975252529914401232443171760832494665421500499215010428100874720039978679609698637683190332053650531605733298272039042854574453088733358396743419246466043045026607945057901347540272001297651658361393880357781497386180196772083925716978357426804543881854189703859692787909106511489173793225477864830426739777871558371117104847397638188025563019269702561328430388085976877087823783637393953406283637127007968464514679891715183647682279572451950102733048881933418717281987625138115121997417420446003643158279183098251960232065666514184561406878624232798502461266373538478677927987833700554738353350658663842438338273118361729940202206540714993120829051758637752151339432101035812149121479510163244712620897285580748359963634120720098324976108210026687234507248999517929902661843552548273957359658242713198527250558459944488431450000568133262403622089742942321397502878998638759126993654666649888635393914051558117342821737983567221233086685353838954568326451555974878992322849907039689468170461235645762819914742244108503706858857712209518454868529097930691482519980172699226870147678236958814965222475266569050645910459357209373926228859292672924636339320397056297609323138642921032280461069984344679242112418487151170233766557715071374485100751229419523322745621390645645558663196960204010018345615942534959326649124811608193414662064460916681800660233365973132887430047576334080977976068801191274629237569472241844282586460455893850270538847765089961082851366877463498937913367796615823093959077068692934875460493527504518491789997733612370941144454494558704151843982149215097748037503955717179109057472592372442827867987741333571457096251731460400410199478097650307160250168854506800212932792000103306460430422787007640822248442645755073410192924211271294079216080375464849985203342971189448882429932611221364437008098742175516601282453575575661157700328660381367588473749168064799545957571306962916193825688265351989846581600478194558264091602529689895192600738999920682892084152314177367222591151763896164813298408878703540549982038775752345753668752076037038959717662468906253696920462401202604937490568073472186719756702284036481981140614233071294923235283410853846748154891350230008687607660975510727351812515898189824817444231375353483998474318309740224281659094958103672186631672754520250707180934342231655313107070890644124984742446471470946200828851794092877568574107200745526567379991839208801863991268439496552277744027113860604400676896281949846068954500813542335281574212536303032057959178593986349600790016122841353261267453727495643645785937244897525611576478662066329242235112907665591684432202036680693543110007956853106013667450261784684925534317860818477408934449826027798442981970273845263982421694946413282090338464033284852576501895476786893886287205046362072178694005958267495674849768633140359619209000257097035777016899729707434674153367027897426679607734729793576469583061423503138417408522687028332910079465784270802363212075931231012232689640696733940531283237533888073192830879851939931067733476249070874462516729145547652796338934382107534519476742572083095712525365761279177834284431968121140352619022381980301709539016516522167865010806884316508603788681692167371983647778650191413361499837931896181631830446559275951546541166577079179871048064488342264667524828827072973546457598055826763879827684187063649146853660586042453091923553789845448187670846987974024580390366200784787137303241470127214091912484421526829358535702793417942148543600701898732942045419438641576509218179154727479463998581391084556379235192877176976473019794807299309244481349169698419722066817967356601174119265051785277278261456625305846917182173928644573404012981182861269604053011095014243568277994463211039738565348392176733624929700445524247976753728165402758225696374350050959775802482423986126550756385022661460195144553267286223947041685339660282654559720843803871934230474165096700355664566552773292421729954652782394547435508264153853281483493651246362761648425837548335836407228738448007575049111114706478780828780603290555711943093346437238910513357953020934117418325263043136983128185679756133383234529762234110040772308089459012657661953601989479027877528793087284587127390966221089236313760986416160217022761852467635471431852082633572722238524629795675048311968747871367289163485886255165069793655086834260678814473905788193651512778222887498211343349162357446164033308537079407026833161415331812450929853564886986151438309765010702763830797400332400680309534672364700854655446499117932227960855242033910172914173212990878493949880947220747678982289729321932880931342634640332318853765111155605102638068059463963837337464364721146443148459657182645400337271322559567597991198305355648494162318011191143348840381024559931185755039636560215125953580175180379929813358374260851123820926546660310182782894836530655565653207441826002337700993648063887896144915176517301959547273858788047277255955765387863467300000066083018899756672308575533304964867976267645143012663359970928103238992135522244635560954362690527526471925505684378876676966668882314276698655257229807698200300525048238098781304228315214914783942007135009210261236153476670957968784460366072440772644388618133931194185700081077926800401142415136206997958836384794086291006097678159780167672366625259816776990900796898472874163457427288780730986302293850725970885010861348124720253247415266204025882873620806720589671409336216817943542368120335340570022998611057785281039169786435917053916857272152671167798822683901177368676256228456310769868733150597596052277005449920131751309579866192273688935881267468128482402514329413414438031243923375888355155124689211832067595767287404044099452084359472243904743197153303296586414236902198988921007320835409149011770472017801588593456085523051610195329087628929604518835022952504548984647702236067201197542028579812975623781812149083748600130179559650188120459819110044077914160550098167197392201439867683172012666719641214772673279034260678550364173083728076563029164219277089666890449549622522988964222731037926941375734037858594240164225408201924258667267670185634891242850101286543947130955164256683665794522765256928875109197610140023905759558721019316239304291073315601449388656932579381306114440150640407521073365252394135715361760059623566194054835542586601500509221384523283394315132004177075365939745589487483025563632913578470993780794396469187913153031906218002495275274309402282522974618139358710744890467055978617141688520158455838260841242531255940578473359172959820058179227040151126387225264809230363118503367170211585623282062513405718971743416807608810048402893627574656051307700276304275170445488213445984260773532689118146094171797583357139261608101388417113198492378357921708056931583323516944587663151735245470779456221070058169108965377662607706844153303748365304158268046250432768989422660320967684596004673116885150439186140936393166901771934343204677579259428907579046648705227314020351982150848265456773002824529768927541493461557753745642596834461066310592991068917781382350060178894546137113689822639695891451156505418219450004906049449529893588548175365366511556904285284902211156473604150723051739080189993193232327011828069887189939895105795537898191153541891635346332770040133631723635169285820051095440723685708847718128203875495959408963989541821921182550041054167622822836174192691014372012421459542474613779489857040500928304265970976577353512812539635566984995008899332781411014102480822468479499127276218347666916435124604962520260512031362160070371090140502737429208709225989143363670385178005514948321158679571340287929747738184558318723344549986438258924435287691315165074518017249809624252290518701398638114768252320464579786780730396509236462078449680395427825232542375597408849079782492621077676367101794436953141639340044936908118978544755833899587372915334979851505175722658566699181889337185686192389083345977881076744036757942950832806318494210383666798989531196716774119697770422987508112389066502322732209062316564080873592014752144848661863768121687881605096254019003619564966633717409823739538225861125152779078995215164782470008863658259974433678137491057132576755753343841782824799750282735947061043267600440807269290126981391106008434893432017570375668410215453405087144691601257795969693575276811887343506445954908707517214596423568593030233918527073326741303438222484457738046595332806045789565784646884027605503022333898748389342074833732535158870812625286068198644710548014803003999259582277250756552352056474612381499563479148304188774980241168078806906264804559038204050665863213795953665557714479761345132179618055845291069053244390311014999227008818676778733052070723658379201549291150054517772783707527763963941144270204347621272692700014817105480144941010782024965624241031408124418416611964684308467311254947662922294358489982939555675842043084008568844843762219626343101404731692846379778881352767109960530273995245517764077164927461925475751663746960433161270834153660353582280423896566260824740126072388574438038281818984112995663211747828237883321684427988012473439057704910597023337373626221306522900339976172019246677786426906228833410373298120473736972751596860878531154403273088311982820226777305703644268657456885548160254165996437262326782455585925071438115230345290193901690612773411563306408046204531048280842724275084870863661095022014977759288389516211027595542938716906386247430725076722440245000979868775159982220825805914277935622617489350017269621958321870440154184881861665118429186953461208890434426844953564164564089781637365671383476323944687091267947155168381849447035262218257807622508870897607752586792590646135819850739322030123463970875378400433293210570859328854184417992345044060116040704047117149113640588470992063185954911133571145284475743098701551756625691170533787566501436676966500158013562808768991342402378383621753581859121781355742495243709717277644949388632447117837997028221885139856905692473787257066124416970500603343307149243670249692972972882106425415685151932152101106861191598485798862681592288234121967592201901525932606870147524361305559145758866456727952083078348897165117676191324956657759359928608313771651922845420478186834033388170808219370576208541408702643943824804150165979051490198303525425769412363067499810687945598433186917753343683540249197698560636767105315932960812420741631162081019278857847120582482772936909077842162128350093787797973039334438943141115865112864238205861112601057287738752508111924656593984955739710277688329891024427898157550056871114829034631816368288298557900564861973002266576072865410753792646477131763818052598651365349422043493462517690533240677817503331696117553797238282094386998174803403468266615890489816771562801936550721868272253128246683250308558496692622859487368897028550163658345617266069517474650285227149194204280367281249847412386228224406457816125107038591459889132671343162456999863703987225889486337975091909406153040433983923642521230531444455092113926311089940145353832234009769367819393958013017397828363746189185537490628929691984469875514559659139136284817024257071053512756144133730311318081854108632003635905652773515983530149690940518545685197661938026275333426245365433100284432140295952849338448756661714013180830065189483048366691093463636177970452604254893607544173284863498185037411288849570169635130244030342509603399679371348723088077317241151813583763756752660715350565740773497037396499589763843012716028854430056506477868123707584993853836736715793753837247748353540594919597920593697905310059932510715929502568780654840016011519575992389210966597689577548469660854485627697743611596317261935891169709723552801292234363968478067907109663764602880032256192685876609638193638003485589486263171807835852080593981549280481073971589951242947073219177920119157665009232639170108139471990922705477432370801563992313067038084224773093956950879607955314192589557464405353018604913364896850117733264477151675051897330831254819157795687516929884585594252054573409768012747586925485045874348160905285619387806054291258687176454617973325960616082098302430663398346241008495614002844443666994958898369353420130452742642454637478727463475211318027053465893238174082650534564659188636075531483651516583560631480985493335188459955529091090492924061553838387742501228499354277068505800143890683527814848382371199011040265345675622628549785207334928641379622032466874680156974268464802559624671101684959301956803291398571447773467649252731290017106928763257223683797974429663887428397664178595531085785554427887176483620333563491730838702834957030207096113312774536453004085102779935551639911073372546093044765766168721044904927756619350026747484132931180607203174618992805072536708730708833548368097201564820503170576836953502389115220820877973751023581732938953066687749257973280518472281683525916692384783290625484617576272502452874011841029549178150501393320412812045808495339483551939806057635256747978739729394122549152776596682151503258766348997433115555242042046568530722177079772009041033927929163270082095925971756988589677457739809299195325193867990117457139086785097610742494032194924057886337579566995448839809069044206426597780222643543058392802513217853157526683853748054007045416635102336518773812437045805115970955348514185377589312054271620031600285797932976395733117466944509470357512861903994586948214476405385725596145836752693213808360640211980939978078723179759760659828478450391524327357090802226946905794232099301158961888533331252206526235275891426658789664968940780305605836098497655888443916123565723985093071289332946072506021409864254296211569889354485354709167335403138680011310250944600368859049531188618992378787098411215108938200766278333802631526419288104473958231162464651673885920456109599447057487086844851218227963020220010804148312437127659080195309620501381730425489685808908128701804259939706372891534196668025570195175848472204806668255642837929567958839548618952509725145163375272274664078948548312012394142663890773835790517325495043912731847733100672982461662028831677149965552295048123834983533684266979755186152932625323698184594891107161148061656117583674698312345151572092358600882885554550675060526450019308672529948781468586164907206854758096446910394617849311381837172549025714911832252502763334426049696918164441206372946110048883394625921299751878256141689938917888953394107857103695975113503225548971422266583112943200955398458412055779697759612166531782591433949152821409045549221833846546599737207621903229318349144490915931596822428799396734789148381260488786078318129377906830393470138251606574725104770835252618689731340344921419575220095313879963189445784606115469255011912706834010363964702192579203705921813917062100995672178502769686009732682193907141460376798462599670138842868613576118538091780969071163644196431797110277273821607541836007172284382380224854639159873041488497996994084149476536965824902148181710642790876937123813221818381812220349689828578556870176864177812935361308548274784660846722367183836077216014352522498753217058620162070233381076612511368448443021210602560935029746587302245469750176235947044689493823576937879339862140646835031124564217273520147809860723336457219699732244587872013888942536492879899572429073924402575277343874262168321419498912402077212012831031834431377962020971630764374313900446683809850575299447271331453570181815264082431563975429318611510108749663866296047674888422492040250759545643837322088565363931861387370780481719028542757883170713291099226534429498117258582536014301325625731532195665103190377820536338704039293024238215421323856985712825823549773373893391656801274965655336879824046055693186901045915036388985340022626686139834586612942606045053668976405899223243013259740659096051813355575445291122112641032562580493389624017825979662628935787184674524308155966139418037391423407766447964662466070883211674899902714611543426033469091174051426905724395941702957186960856067770193918618412674122192984805420337557625295299736781832916649375893580273626129078698889788920693518475863487372086383775681130634774835737208581346385134473490482662582808041889807336282500704889867442137747700506325840563218521416534823081491919869505533963490295444202780456264639641491393062038479848606248167831700061338862764722186448190263896601251328264491088294125456143269273539146721912600504302089949257304266354536989875887097223747241742264088919035561919109931170534432772079850614174860590771751906752678455000834046581478244256052632718536605915809834646570601561025849817088292733433485410883412441077240520357664103808552141032931201629470349710586312477961410041277993586520635214649540500213910331313535235946137738181605297189680172135831253964891847791135025288497352239976763309304857760833720583466035137802624603325719116644369337682395073839761410125731753308864071281433900860500181465286487846613620797876854170029947737197225256073080116706523088741715894874007656959825345737129777547397502638097802715402374795563326892666851986948073760884233328485533690922873618499249957233898640649492868145758908112715518939600738605179975542514893462280663705307119251409202753442538690694251532910438758301660515445852407154435059284356673458059908518204702867702604019502103832603329578837048126804827833306805228380436209288303273888331452288504977411200282395758757551799019115519106403284130125815234154619303158174965476394340812659739217485033771265329125772535516312368538964345568261751621554788030334921690208858629025894756274353895468278779533020187837076184611990633927150691109112058313681553513162417123937206990156864909275324051760463590196109892004179189191656970618468486676931859202309164208513281876667972311966939702674704713995962700180819173828629702471186520652682526935202877342089172262435541886470939971806693617057817922374247236218229107329645121506166445291998363026328352944952890455979063879921710524555950612701420559802785403355567966295003492302740353839946502152271517110331059472297280738677730601185410198575160578916903240546277307808115715105738085085090967224647232710806537080519357061838429978030574308316862427340616325103551746524703064538800735689336621446062598486266387306437525835727719394020557489505399535311424335093428953870719520497946084747769048175767303577134734303044243186913515539704563914349255884228183111874022147978264057304354480323276034224906021679611962572785528557567236032616041172506503002284472530463476416075074358835035479328493805441006161994333678608625994396260252942742527423115781291600917119508840302601034148941656491525400626628657701552248540220204761188411633865354166743456314154632162891063991837616820083513854597933660134675896032048363399009804944742577655585007738489916901330224585223614185469876899650496260431184851795516938151370673484581388487019835816782997892225821520352306532491260778424645026145616954329046636279917430970310502673858241427018455609756885496800680489259544444222277586336179979314085596487155576232475335354437380539387701754450961986204653685962738672450987679779360284204513801778441717302009000505201100367875470092668514478274188325246024546202563378179490973763448430834064709190148435315757671640777139340876080154470118469209640382542422570097124852653257929987773273712834139308150491293432415478059761396748311474048311333438396290802397523076568350631953316025073426253597443230488316172505655617414810047421872117572529174600594939113749314914113569199138462469975659924498150031617748498062918019911548398144814107060557960879642804192313522475742534151559849463222216899672744368912582383974822018608467421000539488213580717954699332923771073234383365370920793493254936925610760121062886535001218716681895151839512972546762096618417213023090708740810451010160152065938425213760233335961469495642146062223345091224377355552769406711413160953757987244675235484100494795527958229559808381968310264681166108483762145274332680257418506604804394468810604919217125060234063423128583992546861621559202890119845767774122695828355450466680692109566311927373652980564475495347133180791936212969180944924987082235089321481780926082349560812071961729761134011484664505837958308393388284011020373967522905196149913057916358021083848744470960388746314178194138575341853277911053532179011558629695780759024526920580167214926893197764875863358593276112161998697922335676934527914999943340237323849318536244438124507127355649097778068146230772697254262146548494493591419020501473191981488714945894508316535141367742980458983527920226589337175916464589323596172471091669848211076761876988516750797689327056612339144076670492620604347311731507682194530931610819646005196531790155524062344993857541390383389029046211793182148082728467115995727919148540803100861486759512946710038722803863368246249937377903623830745147346191121903448599810682016263878606335663257274580367264226563459324066267649256744938264135837925498572656557190918211183822133552145388390410341040164402055405218280288298107649557212762794786736855192659756362522655770877663523159124678647797951637512074104483031005941711825033110818944243817979608211003287745310818832794352375236326427665896079124677778499466445394866631882323011275540321814074714126559653003459347717349474009170679992039274259624597831245339541736318687588090109813448236698704029077934931833833974299016557926298721061901190021385489610275390728558888881367145124961021886106924207300416750418110262255105452468968068978170075935010031478361630028899872288968927185822116511664935190089123706893836645418492624833621125661495693213839494825367007095519136170316532880792981823406655017154931831089344966279373698762551789030701818446919704734873632712179273608183381289173813226370549315104104250032937158709291348443078056192607656422515095683848414074417473002581780197247186706283472813205454436290753073578072753870793580504370158379705305060519936314757523700987700708351208720398900363207769190167155002658390843250184487374307592307302516405275644100008625455348071505849714436084632564272847537214569167818425582247694299912109932760914655320758636307366290491203143083447353991899847636668912507295164159653582369671117142185157489331940857397872876409675225663021984966606663030952814149186001914108229521736456047488643325535487783658035852071545265493164895040174983033426146761142526839695024799672260710690177555656786997849732086410986054035889294120666107776213852859189085263401297894415885168472583049480799277897565199090916073697879929847619614877047475268634342066488589187106308655080669335484848199127537982801615809248724640965895764508621338427445287517113897556153854077772771461588593803552456051918346606389973461685548948376805642125552247298729430729465631768545245944408765320862406078828226715529436511673588064215676965597040895157764268932031629134480507174976452818072486687031932285411398349127938461472963719233589362559065778804558254149791456416517991835365004772944296154226323880783998498934847368650606815693127572879682282080958161643948605662277273072278364560497310258067624197066396871448763063690266910656878497290234970619461208136967520432738331863875598154676878885166164041411563436132399905102612111880237571723692523744812699475465776199876946829748544182955432761235606585270268777072744215829281581818807104259677507942918415648879783244715829788166936737802675057945406786277436884725074449349148766334341260496712305898260040153099007032678503818105611130636126251099313544481033939252154103897685268674990742314037380834850296544552132560690359085908188203041431770320094386387972436839047223107029883480518315562739783331490179204685926728011164826491895747900657609454155751230921659461723532877454154200050448330262004546963907063733637725622007506302991128202559350914878760782717047395828207789332382424416360386195836948827436742415216230117799316032696319007628969865188336826342684078749418791632452581272628932557735103899025118377246367884761187069035435300138666073439892547288333442319557156512489309074622270344192478098320427407887965644056176979822301305308040767279721392797199301249045287961803669829608595773627489788071745530351645756116150697175521355044080473727123606920184067770178518325171292817428909661792025068995536723009120848564523136974531333390756136700690318381756175656925065424435050988408300989855366639787074485768034535536456272584359838546002415253061346086298988860030787569982666825631988576354514042968421768643086071905001985032200276427148441851861568838853174719021876442003587659032335981994248100277802157477534082462676880596746600978240339370276512084838354208929134409211815012642353783028499346842014401282345912350129526869749182122757820302719320899382845813691127328483831278331067895059771360064059435473275142712424100525582308366951575487038033887138282305402010732878351730022482439931096928315068213087136863813490154126331719593225974170314393685248749020358102442748119444886507318958755558382238070794511831137632159979907249045425585179830741866505546687523827616951611155406963432036062943797218851521517868738097204172375438288018812243253020402969584854671967460168391179535428467737670811555346211212379230554190026353351579185782741546187848996497889251600429386354651828357588511323834643493929082405101453115900601104717357863259708502382515187586081808054743595403371536082113104797649465156289501686071980763611974894760979231170112046418367149946419676737501713016368960180251552527435212340139306689063727365251137029590404137087364013691333173099774381991110844274959194262237725795707701206173898156395159924140859200190096100197536229154527898236875768529396831346575437252214819709925007544592322983015408333901729913958247404759562605340963467059012993443167401239878367672169310863051613125159034502439460687465924906271038539044435565205182172529986511891201233307603290756173918868920813865716689749594937457358796267764057691942062566685885727875319310725021528126843300558701423411290646527740162888445526233078085532565463557155497719898821520596738409382978777652408470858052632733977574552498144549718282288215258949244638776415345449502281512146692274041185972673509026839749931131948295607618377295080568393548612624787148093195630990376954008674887759849959167978825197803048633837745224782586508118887272822885387727858577913033933198055821217487297970489231838314736789036338642121078817828957494566818035993567076850163587024049195741665519290049200543248637463422799231364903944701059833859872909928672338728646798053067957273449286212425610605296837577164163782317815569447372455162621858213648766455144918548225739487271890316335396428055566672819170702020721431601897107378884563910987703233399704481177687494658257621051833083818287681764204849329438354586386318184488826289487309630726674809280429450296882008982925240866797253947758849305600193196399760364589636344170621595049439924026147695692535562770959715230067031126167329758433407551989221776306386247450614091481731403494985869468790517385051028886242145286867758070339137386878239890440246896852974036265992481179386753977094944207560279177571496662962893622234839702802884952883239993177470612157408704258382316895198175647484080778020637227052638931597251562849261850175216098373181947480967997623916788564451155471911505181276877535384654443201069277137221808928273253703583737891527213701907563465376490857498233630075496886597717974707965803989333141986626251569051899707379850624392713102133009071533579807561397617882841953258677384339117197541147967456297318031045390662263835341605713470670919390772056720260028495851725655195742095216653625924575972978876424562912714647365030187307089147416276514226132609353814396448591772899782736752972828561683363030675822088241276623405268543097780049908673243018991820248923018657731373746411349119514437344593965997728277313431060393827869236890342135239924468234484549101775930289742833731107550578573484528794014181483699999745900657140507390362686009195759273808092224078060692786971223424446430520732097754811781741876264925294096526193625233137754669976044954168735158706239505143213982557249616019337302756988764007978581960022405015995155557736094048885709908589313718893733172246630781120402034256651968020969670586816717495450570495763432040003921726809452207393248998740603849076502949279441714646629361109093210891434672896844449918022579590160381605314609074167632863184630434459697508453174467579882703854454855308856514823249566019780016996286727237337274856770666616736930436341885549897317103681253783524718463475483090517909186628030995767165984951834684805326770833818129131638653892750562743558844954272449843075176504246824671974790044685695809468441935998054311378075444007523498383175324155905330924814839845931520122137404828731575644812098382927568485853734722976276966656343787702984503358961667165197628532806944629059087815834238521888243092192953996803299553522114007497130357866256617072067978352798845577474864501728487825451917033407669382744786903153434845575471252378354135753492333834243079215160788437556433480727569151619896109763938315760956868335690361036202694348833542582634930197931931557168503732531580959157672635992688493672999416928057066181750821208933469767923623380239536031527912311724865785209956406219761871454610814430968024846446112124831443682717174937659024736269302391711593677111600865407525445482660644883327186987182290958796330532926670330928593263963990464056698107647431070901898796222341861824212485972095911379205421536265294355968919639180285387072453494697411048066712711688381157497348887715642162595811920099220979476426131016094130591860419198879502825808229177659932507889284968593238325928427246565148689136905526317666608418404385839605977186453474995548716735193430644747444840480617491503023969583552228119203916465549287710216999903988717413441931507277127620973612496278389253250538206108464131598037019600485119252817001375089302633249608241107079566516617636388934522689451008026788852835783299538927613145645682253356488091558948601029694974551815637943925112334540514022099160623506019559598555309776395512477055166885926472685419491640077884517845245722372979962258206055289769627696579936975171298971829769943800173821777986576548726790255322053535247574926755553952030674873707132236963850554840526541171591396947884180482886346283093367125848139733632164235404200339323311806862525974573169652787994901995647370344814974363103850225604598261037406225582733310337325154745846242251579667439266509800205649314160543682099544156824819933794941294298531728484838416767125597087239193763911837864184535621708994880056098597437981320652115362630410261327797784789164475860498304953065840917522910471655965018609371218425266907541325869234586629505807288466975718833172435030460061698121767297914143593570183442047146982608936415564798845311478775232464582263270940809923363844354372568813225822755454361031191007398209307079741413439329645861112726634631222593848140985335018896125965546546437879184004987100213832599360848479225470659482055339351575740845822233056550311412064901707118911402621069528329737881981159768474629983784740691310680852123328308558977302159601602308069085185903348050656797760753694018043806169288535441026734559858716978157674965164893997720844141217274603750502199092573640833804161301856466062077662277968317482704164763368226858388954951086085957221487160735883188392206852229110640069782667697916302687104388199453672242241238455739109354187147552430556663448968562265934694286756142718614002017938034181346791692087785125003980344659144780832269677340657238153926315360014708628981821981544243064592228586657687375951929804863492328079811243940661913863278652713895833427742969453503042929052307752923602368027494528380665100948991918578469729271154276317219754475446449656214474265063537467453910841847198127070784923256183938685450472051094381950740003064734608401196548622140413979328720021290556368109174261642402532840905693985602039929449884777855125260915684759492748564930997753508325077116562491887008564432036529615754919533678597663391119400799529056950328708743083774379170676935595125581916256379237948455376994729804317317221019324850447164998596315439941108996570466247810690922096928047411605306509104904932712177822765991885528529853413630816608466290702284522628981282034703657484889964825677870362830286368427032173761096970900190876129118676555519352062499234421869524140746683452277244781238433392783897219326438344775223276554027646007495339594119020837689024170097907990448466804566481852680571997695127793533007619731449050358827722698190946815252945929664236846264961675138862922672868449400616508727023427804844275335812557086425474101277118788635343205501515549179604534846058928193967810463523473452471445644229061589857422287128421892248771818030794143229187492655200242233850783268669665548028129742571284341984086534545606360990727894260424997561266752046784616808047984761855672765551211703715961847066437423981816741268271544665199470013268369160891932140030106468385029790352788237843766729585529234312496018917192528027059765455222470596687100149097861390129346324456732050581663929246537992300086730999738963012740084307685972390680190859018591228480834774319298333818825030894449322466729652072538080226428954783680462976559499648201811116132308577588128184186956637195712516908467100964915476227376211788512442505404116999616472758441729831087536405545594253372269900400325169011724058467491343771161948615793948903843359498018114045730285854944398061078092305319887947393320828494093693915185135553925189603247356386637621807377572486339154054304710868647790166589004477235959517442507692319120696908139182237804207722150539376378021359070509084902895107054650477566627946678051004676535761565628024148758401694427570704868319687196733009701739617883002272364375029793765696143380426208098686923596048309599394263468999417736135155389493709914503897895405710961940066145680065304080649408640910265475750894054817421266652764884094080426728248547060374409903937292541247667878063962230416029684655812544560686417281711406724041972034587634210761611682785161738134109855984134755211999013534515198967805664863470124105295863826106718107904157614684425731990666843349891579644776109100799552997709777433275201786570583214641143504669186219573396244598198697296208319707167182414115489941852143314784625358621056500991031844690489175898399950883999525600107659076818869688937047145932051128034269150801171424392828116920741418978501332331034713982476916324309623184944760600913578137495865997100266470301688930244459674658447485407352952122154923508464383502127494751726473842292731449636861341672370539493174768336483580746014917525250414646525653740806439566230093712238009687841002282374422524226112538208555158510988296333698251857349133917529080663421681496464748343644010374218803418200113799222666473313265145134523463640719617625897011588996970070777516314369574980962773191959406147757063497384870938193552720277612942614053762235468027645289680730541563520255375387807384594609045580095209372046722719005073558947186512141575747031994908469808046991764880330440680293726199045371609962076136957198352012556765899353478174470738498686690024073783658588607297145454839654171366306986752335322951537741900611884321046020716465974801663512895151423350935430201762522547928171017907693305953593793983239112874632932150646251827281744332084660726128738996183674623683060190814154314190922201871221819614120307058682409725497166746459826971136328237658708476994751470979021637079982463475345629096919962271327902572028798616179287889416884184234621659554242652563665360694481168525000252045351203843879165666127563210924763261487520709923797568690353141290816065812557152254223671129675692934773082749102627845050949353423141433747979079423923173149773206897644714358484400521925160701182642685937881086326256763516852129805042875479521436642540855752201017994461560971244988529775618708779976992226687202484662825246569417888689178838216547147084755396322875839396667439511202326441223162693803072986751887351328969221806538022610698763742199181864277835531126456490261700986647193530886235733283064001558043669396476910542503472452340315529197848547617048437118708105656331128071058948529777435688408186422527860732423363165401432820118639268431453820579454833496399755900263963930648802221835799759187856213095299505553126242518866929440742507287418719708348517520517183960211843939354843531201267915281698594036311749260996132256635292816201940897329117724744638089613759216778910861235720050528271669007216798369239127832271683910889601242268969168609261978662644066314985774454824010308051314535972544941084663983267996783406787250199308544569802857329115136371103224834814455205055321653299026040148770713886140899119571079993902642793526446223408592674953158706184465109237505868269004707090297648672600324451103717931013727134062028560592254998955321069740597645758511311334657847296773067096016714230951068301575694900629612104988368806079826289222211761534861258933049760085924832444009034301554663655069250807226163535522765544026783088262136651216914728161133580500107857071504883955499770037433470418497061344248761919738315994362093851378385650931977771861561976784717209709593946653025932119390703299465027852409189540783729942815398271496784905805925223819825778150893536174718742885809248352548092954589110744484103911247371746896438605380348215474850397060178008180522562599497445131971776513748241386154433693172909257739850757099459281942055410737003606645728496251200553656355060675946721861577403418875370287866028894413859486402648149955108468926032853277052064267099079889470088443492748798030257888762815567577141751034670925106312243939958389141916401867964396791587483304126755734465308172451262682040504867715682530407787577015030627382276862966450909150083243973094666977847937364714831876729464631383769583487151700171972217334535654805361438895308912526467223275975706407703845570298115635271071973255817537639312363326401044662271919833015849162601859417290499215736727947691801364183395780333615658018276279358735978942781032708868513403598577638779628521282548168138030695978656325330802980977386713279477512610640442338987404765228179668199703690326768461310799887132561472482338436109148651497470164519856105688694128784870906497209070735527611028625178947852244676454638299042717745774987283876797071214590090901747839534768992498942948770896015686725214764662711238541248890418854075074644439186931422755681048184370242244579819216010497759455971655549114681977126248800292305563589250987976551968614335203669656835436551836784419110813122845422451656999530709366809556461246647978828924553861920754295647011875257108926226320733005821197618153172093574697282336289221491644823542177824462959925105272480094165347016346391705819503422706332183210306363849074033717186107081615182588919022774877318135012365785526702288991041647491858839134836560944174426298877019130691508665489615751771844384216708585583311082233949625099733845592224991468365748726036008986616127459682158741964829765699226692797101393478446929024345670732992750308784754707919453664686809142708776157185543362916696221911756147595367963099423406117525733758100057690044905346996167889012618864418155510607003674866549664484831900875793806729264456813269194220628106277085063970818767937474108969143911758948250467181212341144099898776639210326155503039533472026562402929698058320362264105570992877075945374246724914883528431351382345296925533105417095066221663034613508027459638909302544306875811569138426117015360483105488208658465097169569867418395346355105406907378014325369344699238486260877478636115158648769167259618644870351443857215949064959677015965049768055602292544086494184411225568804289486084816944276451634624256149021958445364896239151326298547299706201419477233607743684295684815881944215154901710735850826622387960039795966146406053103081959093118184718980782517887096736334344479197394624600450464428077718766567180148651711210308625198075819656339985990225758195468255514803240329072239419810164956725096076775233493593560971657654359472503931371690011745976318038697309622054488151656347126119686878394756843250020143915495939638634882209812663757904937036130104452921349686210305964927251918349476929361525863943544324453176275998607395483022247120177054326195020897210306360731313103785627722313008326133877890329461061128756430549861484961890294963534824702129197075774190388362713279050276212624164372444179342880539344084730303001519989045023067889661836054896318250650754526295036671129375247350261619343446884954443150612664634481251899146233540636761312936215785990459056402748206476991037190726283536122214836967241226056904357749919948268034661145876520058613931920724038906243198955373490121196051329860629462105510500738101826994982788233422283956989855214711413990535978947864255872901789921141946467453977366341022012208916447628737587770401482484615140268167760029876678258136741456224749291214588747816520260468675759578825333512633221592879140901907181043093234321962922545428243096107722703282544291290218052905095379017118093747513412786623104550440038543206836173097389458352321979139939149619545187033780239166947913566317543935283323697215708716566575070501110143034107356591548091294093046163439907153900748767925180008981929081668634203736670249890981294860470117481884540355470151113433186893156916549511636255640448010493067904039901137012813978430946509273239513121291689226720028775401822908775924434205754643785381324981040354408502091729626056664111853156027682326138538357975956169122927900271157973166861456684383862505855417999860366142074619257891538282519915236127917326389260602132562470067891183369311949459337436821320869487364263721492329725044426015265160423798502270411944278478206568657712586793749138898108098717495420801408445941101950984397807956345762768602570016845703995169353711782887581062500768813396568176387205892287530925860788111276365624213848715830662624024728720977177779193796077408861204447643095345588160230633125562961187381151789336082757104699607678199851948550133237866501001763763892490111392769316952116408889942910029191402294120962818660704678486842654702300261271601042316187099407540552667899032862831679778723721018535916306589162532516939155075957274416272311568775055107886978257304683522195193307536025748169476004417380781737854278337637207249205713098602518301432089324114969476133177984982953076715212189928563600498088886976989723346282607542582632269740228467000071845993849807574019209861809766048730017346739895635840086804708917462492615417587563958941416950048903991874810407374193367705450184476576772736215723718333155418326865208192316584292499677185725854876729194740022601246495902422932061731554368140800263366562334847751336147684139072837633091102621921375820836910025302033249246506086125577225031655291760703616238935202911116857413167269772113294024405147472196319671010805194281523217566458338153029939376471801041950669193988683276764059054403244165652471680195352760539181594535362742659309649320515828194591554210096685579974377727061593115297781150150548156822497008634014446279730823011356697380269950328391035848760074254386420815758351125004992431246313851553087928633881716592972064036733268145161048666758265532649087659819807768737652359414760748097834983836314665517821830121188109634457533136962888843664408253533970813145139150442221185096479891441158437871595995087304198459595872898862775020454299679167866816095124948902430567109545246227762661785694688331787297226117915283904755489916157286173531754735787853256387504139853096207876522942322851371675663370780528734590557151623466580634587391594711359278493815671090494829050844759327303633107141940672825226951811496185595401820560225933892572505329668902927350314649509427815685713600507005150521912363798470071332137956565915568882930224183298952967857059191290248690275858298891243881890114546016784617782722210443583375469762987248860731597436283066143872284972494849781743090356851960235831338086382427343204537324404088366653224557568500133058646623032369453424513987891262570755383203417606102823759047367499012234300305618935478673690739779989164904465412128243585877219066890701235793644393111344510547677403613295986827120494596121214876994430377549315593272888994962512833379511326957989314632350044459943393030055098910876524876582647051649838872214104017787150970909581682273174010233447021633195824594868983261258415340937473999589953807607199275113485609045915609681446779943643081168131470955800005934416716467825162611229015995562590060219389980090455161784002110090686111413885980862035509296527261472933319772066021534578353754528361354042000190394828055398704077836708113029029046513179074791138090031237576078037039526393916701585308169904461194084546424794168853514735969127624011585961069644155223778244086297658758997053764349456603107792073002622706973738178354099712924725964533965580340001370794925826351318746757234828742402221403239530309725950980094513998673926354123424368620210849498309546403978632892652745029444598306526155943418399194289587842765976447255022711809982166061470395719272181078982121720307623029997527441494257096577066344948400367712210447421179069498299658092291611191061634746061814301482637800200078647648006518218901449485458079849535104738964297625680747402438036016766617737653267126514779622938002507191249485426032548979505349570085426837881093628788335966152984737804959771496892516947701307239554694656693161414601197516703008738135919669698203100589823296684963373933749161052481033570700639375796775139822034688154300261237154873042617915923898134189747078937452929983916442677617061818407863569777331441288579676081768354414795466979766840283748948139431137324740987367537028517568831561938775279250267448105540925563033001585896251129375541887784247482081304318745269663486556198741306719225046550561513225485705243296940814420155828436265342605594606099700660064865642108808960797884649662852113012986207320727994509245597065021446464091845179083059734762376402121642819982334311743099885568010498899960513889490936946624159953124238343900933800252519302945488387208810320534791833620926545618794411021447334902041937125726635436453324294570319391949258700508235980825641961864132208941659908070327268988852295358121928584257960119523492111198844996290267349471700681133829501058883622746873417927160032388038728240185961637496282531295655382839428366957820145773508766057472517254303833294976129966496227446554323569833056957393230180970680962344221427167555867603009307168447097097282796392670050064540888736187802754019506063391608080246214441868350295127032394574435352229213616491725113007683396047280619851065169593306998277011722620404819945915780287256380211228483507132979500711965461236579646663452046710073379407688150135077486919252744127580484163059507765789903005692054727516983701298277278738738037901544491440528985839728648557653534882464501708475759558910626019379509228981261696578470401830171501818872028725990399804509307643463778092814777558729418254546533501245561760114617572050953320062780365457477433923891911506166138393112930451830297220531497174729748911924252188459817144607920063628252824452453034782504614102672050008539035087324500946227105554150769752272341943337065403257742196595032896354589532337347775618142230495152884688463332844699955207873443053889864410350192835956276607071264579971880389205498646777810132095386468896976763008970005718234543410154213732194350112369065802605120168233661789051508181902554345681430641010529803285346001269300603663605995712157838121456195379933010691248628415589638485161542165352841006358774900004383538468436740573393205501048588290088084189637752747835945309171885013425432118406864422459695560500233954132635605544568523216374780403267353938214382753937596244881907939965596020350811112556763369183298702137475367746583856561137895767584970195330953935295443680706107613377441317940188490867586211839291488783051741368617115558110191596421988663446566995328845464075313122845824101145144343399968752239868510223297322322832052176852853426811528468503218324368804140083797385737941591999496301730057449385346658421290247703076104116518255534612963967565523981491026347422110992069039558857116874079263436294863711341553282318282314654669291608705233166427091938330219123282982013135152181442546857320739641584294347754389802380608821140993418840823148536228824379659926838648896591810605335765619318172329510183979819200939674375270788105810841741197178181683972055662917026954014500620608007105262422348261088532207711464052858297886861530132215404917970909111998507707295719275019227321933853664326638161411783469404306876167695805084655281426667266007476927344226993574897334688528365623787525188968732996223543757153932304465079807258422897811378220531946052934705197848834564363042273508009503349713004586128546106373042831057347575909917516697093414094744815122399432925827454327339113160055114742572199108109184360500725893655818156202976923540335457427088253856345774970997592248181063702610463159817169915820496115818175487795741096015294103241136657524457693877035861046782002272067502883882484186394545736174419255137122490845219957090944808257524680690289474078299122890543541247070241382158744986307274137240483161065526625257437266753523478455948299515976023251862227057576926616106668808521362348977186375524136770032264644901110559544886689522067297058207092822248694895215787710872628376347308965451789468920577355880848871199045819801536992583013065950663923985759743613854528964195742029467312405147714815050363805989684510700085272637751267049861097523340831494657056767172878892209271829250264450617926300467499616488667872428489188718412885333282872957328686005215092004414792908899203420341597274235246581069416843456899077711498788719310053345955771754560331942726000853724688414257878119684125595219089630518961390466541150014466132323161382024614025900917099449389209610395412152470967300827877499437815222232598961865247023589699764731554578570307722182378900889060157569814470469150698952409782951795833334404120174104569240032129147545844394359280223972232318015240916597733716859293877064217968646759833063457770754762789993715088820114329705779768847735485426232929425758301222910574424407478281938552884554769919038708849131087882605347927078373070264923223148452427366214899899943489761808406068504326208742981580306021380101356413272290683769680419777564916616704060463575054371418414546906143956220596518052003555153628057122218015270724414757974616244428178353199909904221066277496320914976734629546863861198350345179706030540889290288191336424700568345795945382187956292507615263809087401781153271787777537674056456651266597736964236347794001908656693913341156820373046536031704854729472297212189905833050770733032266242586778052358172963279026109010722812340823011568839168160893042870804913280139637269864717404460997188607970353545671683775284195591389856761671195944592146270066749057344996539487789042701638894193919139305639211151560398262353314356509345672128657405594505811736729209574114537279745058134173160309143730096295882276686126433993859565311947784133136547331207646391174688727054167186441909980070091795530932450455044895618558611827162038719602633368753703939607974405131375355481717644416003993153284415929223459928815580373503616911420665339157194944984799451503014046434871644018439797625760106996800413492843082506960769504822587411291301939744148328206026151263643490667280142396175729780644870029697537554307503163968274466256520209016111871935924782820491983161537274147595116323080824574272198231310867296820673366709231045695763624403335049844000078394353463699624487805652492533938572880755830282985164282231175531005637771370167594305286293628912799228118096209753191405261526268204881955025357529928084249660877840192770855291676260242651468088988809273206368858878391497643093752197755406028802092029669401846896681307533483176702821858231744579673674968382169901430688429179284222715440926646270460933876946827937412907172711702106850064879350472878589746649648339208718998665675965040106526770585212452278357296402529111558924476350897572407148419806622226550198392453737765042932881261228168266888183490169421474061209770069791882689895980046526242429753084192022122223483476101832559671324237655728101114283962111075185719265888386833030632357038274577000649749059357807334426494143229971308630010106599817876512887075100441561644836000160407422025639174448278096729559619457497739341468705752754598682466867220419183501059327788418532711958740161555594159332536756983072093868331141578680744907245782225038702253386767353500626277144549930489003856525471600383862825952766430736276628647178876048577523805644439960388108787239669795291240485185939982216530862729014562089970854148424223448012014354903990201704975153563935001633823770676280142850158913964994958662858345421318928010285831813118641718639693018159384652874093711938084909033425091517616399713223219900553501481354529195511280224297606178061177624499070462791875992566941722680848447358219588043108493701603313219178733047842107551826164389769942325062769703581197835919158631692175593349206008593152328090491115700985622486076822156602229038555427677394408948202006161751921554533727735926311072442645330520155325686043560018481062272764983581374192990053744687893893653666922677413070274535609388085448717163449485124809657945157985260412114888410615386829450825754836150718363090971757465423330692872311662775786134105325584891821312360339249819103453548046416281466141254502210210731836316350234579088099025215012845516829806976331814298499225798204007429490976788056507451014532521484226004978005211405639675228932863334287610771104257992368036039333079703822785675020073311653322452409908555928344025393162748546127863326457495356234247613652903075897118822766877187344645535124919915299751466302929031920801601150480265421642143819204015502098620157553691267047772830028471326369324849601207371269138114602183619139211137634632728893122831970964476494868050690165623429014213867531776821101837664541656961255548985578859023470866891903702046565432663544804184395189663721293579916318086646868783975896854999984682193976149343059877122094872794986390542338743299975237198706048310051128297320504195852842350944312481587099586008597565326921408670505715923820445465174854625813529855412875372007978843224665481565870645522074687517676939377584547223558799193309434725617265969156379586416832973465535916803051781553064983157685271736631155394728496003994105178774088543373438158848935952599683738431991497030252282239388436952372859584340871623327226763904765001900075377625785312952000266412981493415240772255717407342036211415478783070200068134881106989170657537114722972778443442948884474356346533382953042430838107563311199689911072698454208887651344812864321458621714599798647955652430897442185031872936569731735679551523682787085900755128192071474866395257517684533852936665217578678270586062090532701661298590030470421836825854673085256351975225166460153031215519126058731998517804881637335949984967759561533303763773949766595537174621180872738590679016867266663648105062428649827760542974827372330324946546919919326136814017996881183100100153430057456509874847818501396647484517419292066224430707546902008427953841559617355902359551261152587894745404933333470082733024673325379958009298161171261597447380578626761964662389335719369596022506464336032205327597845867725997923892017886453071235488484922073285073697472206926836557525696018037747938280275917515613712121743997199499630672452607666966763014399622408959682524969197393660654145906636473123415804799074581529530326237376811664602470108565610401164912449910076564867109250987508385477403545067537505020126520334582451769104456610971238528612172932437184422238097551892469253360109180827845723108985193700520846641784177679121910786727836668604520358523513746960907103954943071795167803465452207876603365944118830359328917558974276951363272170080543548129109154248705380499825103603451876951438001284310006041017853496989561276820524270763636132681217611956158684480924735672313613812290924765980287799438156088315572844241522602319535212218974199056997675802084520419536365914879322669618955092065103424648655142631311529486217132822573481592550884943425029652028535026409396092925553679661659359955091936694627332598485071911942478816944571642058688180344108293360707775913501842242868927258141085654349521062060977105851345536146432374379397660309661052114021810154781782561130681298667496625537247598591953098573962780948845816872691979571413944712561402066518677077578691319278440919940202171382286007933828531347499483866709577950877594696011788098443821541004959871895302286768250611247019940756199189069079176527441508492379819480804376443964662811540335727957743624764075114681168451945443375891676748772665132287315886631481690552153470330048601986164564667303564163708881165533352530195011203397156897796513788709821942957211474029764032143133272701424678333604884154103168014313674482069461750707559493089599918750786714548834840097298297552795706752143305201529318740902956732298846061324246191976045163209733946934826797843397690427606467446546211161480246513882613698106328438640510556747072698575808006063036747434942927876465247367587610521968434281543181357623613043815919555224291947693932804407437725114592849509989837589705819074438838255089641647334562287055914241428252006421087901364686018883988009528526041486470806131658697727012594232045489630424150482426513872485193939108911671370038691934211943997968289780303920764615423863181537578625122941606932093082164894933381313289970167814171693196924727329380737330351443104100678134924559571449890151579324963670850662851259981384067935906325286221877876360757689090759544417682562603094656556444816049502758490459044308731829739338218360970290929546603549448700310547963833914157551129139611255429152869281868162974195017870459983583232744882135603335622274077035428863992945979959180978826624473632392935146569675104871456501027502618437519820588503043080116664539618113686168181896687355419809353181102163163578540395627239770002499418693222808907332993977719938175443965634958637739351661204996337396500789107400265603417710863490965571115445418773929212700509383777556069180157032012062770148985611268449718630654578791236760167674119873912907899098821997588095144906043745975269887541635170066177571112813797493332429828564432097746024715451938834744933037474233055049867870672562128186655358788679801632556591770829114921142894832573222095750173813425247421989003212518906875752870256192074446049555908074516431872944182676915377711583169380996312672731758224402653887683093134140615949457441961732334432823993668399313982077725431619303186070733170571104580157113954305114885170131197816338237491585487356295971185665475420519973398815786374004195765540084906410424764897897274677973180755085111989929910000425849667785353958052483943693918003213405175365770553140773256251401449819476128009262019696662151719464408391861318328539686841897433783923807099880365419550675533071653006749738765859665212567737127644660339160256010286018986078840059924182605113047443906533534745388674100576606494515638174236811772920916510001154642025648656696343312129097481412271199876410494781588809008716379862004471014460430394348445958778267241844239883862641104792689983585100791674169867960208579461312097180004233985299044711962981722638200500486433760763152968035708503650442019416372527087163684468839466641839234699163780831229558088223156043403506899489416369810415256571708038859936884816269616263947421346832619252480483341273022604561934073968993445062233722799786365787240433372267036428283011301197030112026466218259545381039301351944189017219524809481714636277095014910973824719627899977116720506838689047984663553254792281924074451378565124966054323408817993747676864658095222611298220117707039602981337418061757317612143689125353546732157439951722770847890762652845935164690405430970985418455143046510329991101825658325563780155461743368651386772844151842434888724830663023169934228841925874439050716057243840648753908924811159835593424195650447388276940323695689500779634134806552499235737886903244722709350062527257197956661062690794525010135550375631796415883732865290844252837697106613388932520668794673678419069094848280013141356638459842033026306227909288594817890864711254810893287864284117953326673556957939376729703977805341189658870849535956439824079134083642394379306762234973473130363440953947816534129054915267060602165299771217116589059672375946174511516599211382270834476197035276925963738894808926621731389122005510776319392977043916482804719847261121293026638235684098218137366255450407844355027098544922159120740710381113738236887961007394132310429258363471567133564616462997808566062670579382403392906472418365741508310182946582265275231260613044850442703182873090005438872447229225924715234022918041958362126607864601444610601248736731852808827339084538963424870127176464165583139549406185612920125478198724701276721142229680979056213868478500548783465809640653028277572962762018442539932214679348046625766389090458990777275140022165192488125889616749413640636000886318526016179899344356954447963694113711663323229729955678059843504570277793999808121724442245635358727897120799404184950433796864086529957147251913403847894794913708353733909749058148912030695048435176459783167307059480123224783573444647965495797462642773990785933262721746612912759226370158181107724427014370589422068279494633174270194606525537786380583612052184777645567661936581503540558805647654856903925363104650600557116034041602365167360796139244748628770855867688888970084045054054170749691297659410255942808902046680970464282815813529148768994772644909421627857471467262324718024623520834436756950146553166441306979204149333427075025830850240022388104690972349729880816682673719561559664004415637364008050961644557694986931173842687168830291063361092574393540630689353373923036126813547780223840649033553597836222841194525326888541785466269190355041785762830635183834316053702071582222709008922894683453106558502067946629809557754767953182412042919978604349851718362823555027759762185702121907526071432442904959371155650055937914766470915480554666514086964606123468323193188561089217662802986335574400814093511458725939043441109561977353803911877684571537255750238283437971027059872238158063564290722353493836264740194453138631742654190007688638748639117970971331942596845516012256497682920594734616612380411108998953713824035834584076789003999848076515952008576238389864414946764335983601499767596661467733459907285651853294335088331855676193601142074198644511719347513673270869765395445623969178554910501324425640839812397435737842910499836756412235584037787531777713499332703894061918897205294911223511849790967606156238293257520681607322374761326581713097746912140560987953710655576294090595284744435941585470020362425781016902682863053849989193657263703984724686718761794335385359234731486054458100584635497823577658230752545647065168793574205751937027256100015396463053452234709313675479028705459436666473882790716525402017324464810926192033087408758576524512408127370715410480896211009002015491307507915769642137784367156403542003417010095607008896620142130166279970707460312110054565116575931555176461826460025739637162460329334479823847397185775643014868271939161511794618940899840651160918628811541328166743614409482340055705355190320725846790573008801736511873849996099040760775347485264185227194313908911631282098836346178109224429350266340119393409085979272143216512611320922619631880748186725555580913501156076784632038184229767311410474961187375364602226100925643362538466249881973328394777790851685562802908784403960586884983673671527743342603985447911292854615954749974476645945291485979695209975249593929215977549698751851303166681932704033825536488907405039387620498410505245914464565446873732699579049703565838034613820625402086379316438220914794460293175539079305004567171941452665939464393818496754769061880921525283069672599738157408778387458584844015514613009243878282433513361065396445122486986235575977610393758811714599630573301174621140436281297998095194527244890377150217511815311702559169444397601323682642449543585423048453250438882520919041821044289566728092835291381776653128569394554419776915365747698735621548761526556826787384066937327008120701543069660391478093381618396692907485953956574532477410557478256432824366686007848634418645951340854419293386221913095295670068357940533573325761851174844892011305524771130248737110437675567927270363888958763021722086058643834107005454559433431622998128342466557614345083792679432638451747471132101053975271737654759345384028728652946845472303219484082681983774871151168532378053302088069016180777427655952478527231568891774790123452540712203923810482733330073002077253036861620504534567188069703974048915800001367680985008043700065824951798711807624733226122178532226290303972070991657845209349395231689723584239300808186411591421840816136167238561995190370970063973886616395727185612008447330827527319079613516201569716809623615704305453925363604066774543529027399557255285180114369470765101558139163678786050198595250142809438871468967956642339181471602535939794255495844970011602733244553491495049997480683079206841891990804102337419139517824360875242711372173865429655690340716500114624248193499049179147257932594967344281870950630779648688294424811420309730506808591077242109033594511798784180229509258817569716683804491341898721376241169290266128088457846065901842861898282983057534389047575190656082853110987116015225234512137670924922832534149638270250286152695741276728572295180654734468387443561884194709523961891036145533418022191849431358775465087169972832948428178349008140881172258681200811638898195606870796850785384003091904244133538604876742893193031918850335126995508798215595548967656873227953751604030796234204412598180057251719685379664053214254205010392166612995415974619555451385685255113474926327671487284916599681207005306082063439638643074396026064249194547338558058860093851269890706829547525307896135691407721527124752386891347250788585671797729964586804537880261008739325900539590938738495146466755694285040322681348618880726857582149741457003717308049102754116813356466243606664855954165108170636485839515635616426242083434395200657491626088197226525037479704798099755109934981558488181969310484923046386956501630977261678664508610480603959038265535334094154082794850359965618686209653066607473399239562452646740423864573678187735476692569895308923890108679213557263812774653365914769022577244435677194496131194276672286169953524055891013970633552948337211126077247862631532047990004781322576224940119539481940042208408229162587269653932938629739111525952969799104686004123523622224019516725619960738625132819008451068734795754052227859668480791687567324476356197044849004872712222235477165337458251492512460398689564585847466264906389596044371165261895172240233370077935231844948567027517766094198992769984846891178881556124757066349895177040197745587845032896931020455964707190282721376743961823106432286423446372877851425249864299025338586222058384307370946158819578170530377439917124918116188671556590643845267467287915544602800349313898265088519387042851884714769177754769531022974611748347961202571372549811760490204042716532862488403673074301010619068222599896766321750702719942805468110775799405278437732380877524659933842627369148913337092067649603173211455425976913615645308196079368614199838253855519901031518605539662326682572264268601320738381470933876408231016590880527255838508086789877889781194862478998680883540127099243029854468429446296376396661198187926961699581437299883509699241761896213109721460196349461191966287099259030624051396358497730567977192046341815687633122930160502442304016027307063589726445240329441432246188905332968291220231623649754844429846462011360535630916812579254039407365997634947786872976860877534749742036410333584883296294003282226681466236869901652951637095203631672183986839894778659095150177931735975095360944988900642422450220705209422964052060308127972279993818324394490636727678720916514750030053008060498336350959288985417823638458677515712280342720338186169549140134555608218426605728189951442489189660463256891527680650698898521389085247155442589929115596441052021398573423544389402252995480735381186274668404747419673250271725677323131105803733772851482658426913625715480809796257079741184448331377376197432487488427290112271947857541410524340605210949737157396370156903392659264413969389865337232863141142753088804946462763381078836151740546328370197251642637895630735455557303795002057662624915294085629356439544183141698840785159256240699625052534046190798180498592410521624760641966691923191885875383527805569759431287411675535756328814021116742301907479130551250901434177864066859475463921736634480334612864598523511257951003204233909548015739925132190759603861279914632254781705887491451001507503301529091907437574731287449854159660038540956290518830565316269177630989908205553476986853875259421035266084812347984142775571995193135238394966909896446905020777774474862886296177963430964863347403771869765065419772105784149573564967876113392885321488815397251259046658635825423573583011290652946898894840809990229530167842467655696501935729364123086947676489687617457549402983264033462960796151665878491413396302127725842597855648114136245361476125580899375393102654204648247271716569065869199736805484945476796398505629636348477037280847670528953023756946507986688233895364117039776783835268168307752865401194222620243686215700109809735865928698424247667569212195843042830394826628523853937155951452047771404409961459246361169908963062526122087335795217552691823670570219886581749806817361226206772625255912471458709311293131374154925848215339665364476480430553733834779652456140216694975587235172368691208851881998097274910377970922160097153276310591747377950365449591409716087745207025771232905884764908265279618147744595748649647734694977649623208764635239781660932054895572907092643605045980411828822923516874590134471041448143804375416765967392386087926141352189432415492743091879658404246280353307026012284595531042062239820750218691387287057501093185722862931189115395050634938419287955085515714908731186186999718772394100777904528588426016480048075806150514228032113786495204288780118593188205970505986167039519404701304386129632974479092458570797164254657969150618728146470054758978700586940189422377731261022237662336076188890534560187705134697990014424931986089085648948925506467294168748809224397116674621798555757590892920349231932660075862757878406984311389359512115673988415893703133871744361850130750931189680306781822750615463795442660412637609582503799851345850858685922564703637735058879523451071946601819423596652720428768949627497977103736377882534620323129787184774032178435029725231353970768719710502725556926094435754079416269878409577673792434255854975042728101874430991309282989638230302080658488683243604071781920949139584164851457013619389313924959954010436656535243907904839588724999356741261021670098076181851100563396607109419920953195103804449536609760199003753516436692078624795423438766797274382471012682477418412948552367972664925100089754799784538381851588329637939434504752613145331449406054385283687624722906432817695434493948352007156074126200503279077948330190920259484461975493890410953574759694130181072441822836598331061275410697075338126096450113397352065846111992503596722837797597280554863358892540421960684893517006932125455804291602060600539250276825384107030947267220322103675014752968570370469038843458590351390118303589622346084667263316265945669726668721555598604655052558629168366523598592913158533382827022913713010919181470065212337116893289129973359277496559175925069220114982792778096243017700326834462411438464128552372652059081029016180699195478715095769725525296199759264889812763641603217899267457900933369274144187427976440316339058329695883372022232833783599105368771982613105613968508549159988984844832131551645715664350146139031469586105368534610044147847124789286813765903743336216666107869008639714082605121987463879824072220327979757485200700606334274633355201345316144923682416076947681999229566309928215262011329284650561868972616927494881317245284444747949286648683023784935216159879761088915162723663403092511915869406886196841374113274034079995185474979654095517861634265114181349855836292832078201891421146322966447179674644115586421461237880190145968872169810006181481856574700929173936520238015302578867877784770135194078950702984116628435893402995042387662959176234567225472052461797284719177249254359729491398252972767733536243770833786689846049841325769831204650798670696985732086208288861211929423165623212226665691299289106843804830341132146086176706119445185170829805466047734735152862149112689648501038970069346974201358762755961854316137232006208585532867231314077959657310568405356217572398119837821002716609988846758108750196389515921981607327802494943699848584827751297164795532177919855981953833066618058635938786286563393656541779597618970246521846120495979872571800185773450472414956002795981286154120642199041653355976538892219150263516554008662716406669553097401310572887565423851349404504085148171390592059078494707017371511618796469534889580977703548261181464473137314537825331116192961554081039579234963436388840796634764973126310691562081422397399419467152747323467044732443214444413185322945780523187285629979477147301904492420745365539509935786004777212901715590767297243389091350030295906534651898437442060750996247654029069066454685210144841728994550952960083910232153014067149543025476807250824034633754016556329420577301827099895827859866208209859969714189621910270338104923712356941591931974936840861811532190844370744013141882610823094639999566412308550715586395969349099684274944447167450418240217811548821926377161398834709932489887363098949363257844495310123679513243899476187328186284303853336303573984357471007469036350647906672627605207052692118768684549035056883075604851805609486930472463948005129802362704744531803548502195676103519069675037969706198612880165215548392374316859930751131341488197037918298668963589261801155891663771490763514525318888557802665460883463545862968797974518704518045948634616682092811719988530419932819522722750827570461142439847963918228254574423964515689332513838890696949349952041865245372167218139837061583895947109012871910339542222265590180862081886507979954631141094884999177175696327955856025414429636260790506235368846137096018896817192908040846329015113649755804535870873798835006369721941590962377762749933054591046019208558798339266187576170386312393316912424184191327512735009765604215760153501237666482690984322202968876674403686811413250906923435562284497170083127859880264748143858364283813331336463072312297943188475766521772963187661313571026417236942320786754687821494913912419977767725516421371743675381998316854343391251924841582791539903908875982986771922915771802258671083608367604328817910127561333472666329162548634236439700118587572955719560911621420408501530727185186760504490751230205206699968281137246200018178500673887467561998646103633281213046519873657557700207073991530120004312020660470079354605268471631700633346783723438598779756825606576783059402755069614095518606929461150656387012620589982449431982593746731473160470559554146964511770749921853892350556903861890560198369266512594541683035955759401815491209435839711416017697377680231867799274812405102120708020320752767981317317528764168797490463211534945608950024403898055668247952706483853543333050206175769315843086468422965892438307114693904738035543895084615174512032944765051657363190987406644741429529758214843684449631881964001073425495502830439780995605176187157021535151692395989901578597199885005198568099943241318487085777563546853645170060668307724908741352278867676505153562882969215974579925676433519826544836754099566340409033245145553977357940595870609411290984837662863436534177434169758549537303877761264415669978642734843374716230337005333576893618384508901604771560650497144856312168023999314428394040956174531245298484557045253235402949232124367832898236791739194568908179875708505060309256889763993037623822586207210413891071731000551184925703885017006212996965063418697216825031396595777276912619463466506336033765767660200904379393423850022176394232807610448492430766177621771407163364342434764289378048284496824449078052361045682870613808226241403710473760963356373892473744235853145429652740465418850004007169694322907018246159460983442152028989652389843634108580930403707222214508501783772609533649954190004286373114079185370070437936997731962054858298606277074863522726355538667331791788515719976091184045185233240031066304669073837696631515849195645119727148663485058232532322085619532476960656075449542095447487830537852135415164161982481349738513860636054816694968903108222881457213884542237458601601210704237356515791372002336622972121776032034141953735821816254812153223824080841075582768596450994140148449529637938577040011360355571320999111760183785924387188349846205265222587412937289594053504987091545640932961696867805346526904465755498947915770323792670411153413920754883515528997675984957773425111711399150077707685806608662969309389378490017243075703767918574664446235030868130776820209982088874482170756557596578599007641279448275597664732769354007019544514440110637624449020472199870697234407142287657640899882467690601279114293175780478317199631517911743204492401886656172148155968074126093612196197541237463830474980173511466171687119646191975210674612426622985723510008482257262075448149595652914018480175918966410873164375813099890649784725487062143823979118056710521230810385038121711553926317296987106518866367959948685422487525660268770651439878968396274388448610553202704801722428041728882321141517430238135930782067313864807947567747099265057219910187276623458157111158521142588772875577777103006660601491720286198453077781472416463317895428772552935273308230788908766857822228663269196141816996313922837019524794341964671232410588191851850583259010663569274584165626686865306736167969253836143463680300729276645650275317117953623282052680305644282882959673262746817551101613862129999868386646422738769440788149164978118281894696233985576328731175656051260264043334931716003358830913939139377401766781445216412568426962182832431468788522149627802775309251072237934584911197569510714469699567932429229308313508943984990924799284994306051506432572918892516705796972809220716999117975651664377086544541860009608903850905815969393305627012511187816783801072855932364223534738197952619274792454921180638787575991176374179371228273438761694296808416889330410524831263602503251196140230657322201352090770025865525467324969494922285828863466022505138365199860702493313630637269162821396914856391659429583811607138793456223898986813330419624983755425140127268515226944006560546961496170103378796196372470680435299645126232433428780195312716633632596663143298910818854006895353464964006066431571190873564395741814142403152852610953191575982313971060340354352057230878068073093423981572316184393454010050824536681664791448980005731221922159606610463156716497298467751034586844273706284131491100769597412837041746933179674176754855693380622457447251944770319359159348928803576069433452779877145645752783463914761357975459535642376064938048244308595851608449317529242837331210601967701833014639355745806912038902014249070075546884274642731653781122968967931129960468690564731500917482497147312423149761200370349465915528436095347827192889387802686080874536511636361560919310508010878712780612076815140035773797749083351522851585153305384655504978594710517960477392686615866059966865924148475226824021479600525303799139863239444563947126248239410561650669547313631648825674157320625637216641550731411006371695087340570017883154886289430920039304291067317044746712892454526577755890057731963129433713573084971012509245392020254838222001305066023063293304890798436709708619525896682940726496662155027881573469368982650914937261606684819960570788118789485698962290459825727549912421514393223194705701844878280450123887371260412370881167959331039419455300033025684455389546554222899000561408722913661615891540811139141152439559358008594174948271549086424351578395417384783149938254215505508003573140609219943220300216599618606957266438548328673966646208526029449409536546573249141578055768410213364123668354236509060357715902597512510163019714144560507596416976738891173227295349664230499305765442217827363225575024510195248927593930797155106961984677139738704510626616106136704727684792490530674478938990375617322925381908856852254326013879289726302206444382388604988100567264583546975682277046144838729325862125627157236288958168362626306921724628442735138192724921853906206369957706604824356220068115739688318560762080748977662541893152718345553623187958028713045261278288473955130559770911717910530393627012882693244639566751513484329822696424365413285810552479658154925519460685740705666098342755228746729565627750795252219456592668667892799236665190062348961827056460807667605994136469088824182888699743666508696701814651807526821200688970041477681744890576258320373095973771175475850298082164861771359283354304896308087502194238659465925944414662935001939583115448877053944122318033569683730278976636976837316523741212800022060641064001265520114889566372867582339411603357096830936273029087378107147580707578019348368115001969521703018680934604780725994634609290664526470117757166927194755973608188066901396470020530741018322397790104571441730357454605823793705868368679544960286474481116908816118224000725133882958788503130558075438489276870640304920237463879038946611560512910376560156075490132674879391049743863555649319297185361559159507894677391180301585252527942840092969914895456359860954050084872317189437961448335366692472929825998708986177212153014529954269831218400619181828015330207022102535761521393798252439305249730884755744107266307104802513358648313399201340279867436067088966247902405538627408857965200046867276492457446698326030917783075530903450030378976349455970396637957276347600990744528190436453276093718931106059528266115293741205618759596962765287425509388704676637730726908728141150927460047574539797988523811443657959883790961276741036378968167260657780373982744118944490098058038714027530797540814189300909244452860243241070917259048326701003675988727010813794057612623901379783331642645031220892516790384888789452602865581346494171104175384728688767882975520339296752289169233513033311326569876041599990502416203879793316559536589294320306782616925820682612569216739243032119526765692588730379995494564687534200086047268763967188196471824141271816186311285434352651944608769361580631456251592986176307359513394245716388721530455328165811187883177977542248893043242069829088426522043388798067047282994698566602616652556967700187321258574338880796140492972021489686686443204309430580384301676923537833590460937157716456804923113997855100289820802682409717735527650301609385420924471235423570325752552053548783814234375368242355111839941856163078035509787390314726425685121375558128088077199562322971849580881326342318172666892725520222479399770676785798782077289679078414047943366811781312388720385188047884497650624342928111250211710033442438177775332094328028837110060891129059291817777787849352006982872333688783733494201738870330238932222352108212222647515811411822652892527057232535095995371741097032159056003822617713444064974586795529539121453018033295571858952435173486082898576371305930072189914926391490237053890348746252856814032813236237011445612357644256883494822241245053348415216072768571394397959273061183182102905913749815024701617466351926800252129732731265086891431449358248481711497022674760239299529884967040172928761329718171087879485607319504972772345102852293761154857945832891116045739530682221112358520988400525848866216358324740563416062047501045187540920877878922257689664488078398190591967283137700713608371636885142576667982646923938354812775881044247989159833289234411551181039887078697429780458986086227396008354081246484447513294243418149865355025569140846113554637629172468767625156246009520453833908339851410713728785974042949982932820368449433187228991701520861915637461986186941720024457021805127293630432634035321654407329876679182869108558714596867969602812537916344400646040536020100549230152981883659468560909373861006828627791868018106612946471658653909205096436472238605606657348873548950369535832123489196972615038529238705670528999069625524552874300452667747961164643495020364786701590626356670741465212285576524447783027967987183357502522737443722462134509021978054766118246836679844974793131977022375812341579424631012569309486732791163358132429422396915507291167652197332662301502365970377440246496762026536269138653719438662960299772277102251625756802062185140216181926867067115658469343263550988008598573866960335444799932986825463988836195220434145391336211107467918215992492359206538533261270664975077755897406970831707974980870798715147703396064365462675468412205630758285719679044138362064610864243425152523140857435476551744864488258756277315766494638992678721627590521909691301831314684121036692360853246740339954181535294057571871560307705767581961606387533354825506707486825333721443987865327890683956883018755109268843628857470456020858845170171425212272052168777098911226049734933723365608734850378126530202470907854752107706087805663114690487644534329872880565834800397772441556493412197527609416266834372263930847780599731197360285870176245526501642509211752829769900522540618662082129001901820529633791347146108465500506437048875307537933258251648106361386358456731057505279385350586785224114825533467394795885424130373661829606001670138445700534407103186481366277118460925525752612707784426540450068867561168493379544522731243672002465669526062535652808477845709541465828399038710558161416735236209458452703854599201224788602113480348163146615241177737705191273680510701724949032854478202313360802964146380776316621254973377964847983183113022770502962553219313532588298957578548321057540611575983588232155014992761630236863641107638042173429637434005048863252710981421905613872371249925977073485881506125470074343039237019345149018127231338972675249185386122875258960612226368205469306183132446554049524631514531901791477516705558425324816461146298096204867316575335718320715824510655122021368599716714171175713593106859961800438368868847587469167428786050451244466652420541896866947710211737218894626573112732764115326866690695728262911785807151262327897632826057468180248504810444153774142218007160682079972986961989689929656339727371066706367292251500642029787543389057642906877973101391276318971889105512180793827924791911859501794556360651210156648766742598148918752778355995272683671115859353918303749834981334403172739945705699232508535998329784576689384466641126599510154409818925522030417424988120881662417375043752143195483099858703288008754020783982543240379790115209602106699984900869913193373929126167515491554091773167019965624218174271216724155837901484749086591345224380919604845205058545343700820439616213212336532724284616274333297470832670160136877920890323426379901903223752822201651577643460563164153305695406122194431705496185838160173518735437696901225464725205615968811378876518316021085547670927425410013399313015775211238060666040414489854037615241161111822674387420172075128456244141025295951404558998463960302918607129970091965952185346549786892446072850150699886108665581839527671320544227946126577100730053106623364594520236266610480951182971879339339455712540982071942730426327445370517057056340813658334463561593342879986445179979567016613110248340228833823911256138106693659979382266246921215834566783548935109164356300620561014612921742507131057687477977597098898825824043589699606136872354675286678807318862976170471581682613748351041241050923410158873448469721066832106261078322260835141978644403716511515173273201473006285578470232825330981600759240101697247946904850271628082091937625632728731900666895327917201339977251230461383397263624704306911387510529115522020368884476072989453426285822667110810701747249492266223913765262356564198784834327896362869219971127441239754037624142373403909676716367174747781484573231912935692054036670866439869788486359115324913292878590323042033645342828774842193034588223732486337089912806439537570147352802095778729911609895674953650424623002566272642016507375402475528400147344321353607661369117535147118191002797377565726616466771475664137723020473932519775114969997068657975940702171223088171284621134800173769042087024348338916544937121391686602263433358608867016977404707358291677699051879778941217068857562409003436795569588858786495908704341013907525700350098076484508474471047770050938193910595651239572640191559233722312625474510876125944456768110201389686101574357900836458498287956921786061815682563267899028214799568073231351940558039948729494625537867319760869684560642843143530614557047926734439932172643734004517018022181400664931240509759550394467098423013544092490252731840304157615224357240518723731499559080331498043515718757490488425086812792067570525414849097790401309527660828397526235993106289763738755768885541030703322607712745587984939788377251884054553386320808504159983695406509455758357101096849011520849823660567800324090688034478201684591143290647108747584554232649459746927519547319633617666513487395137942331230376091662378860716279859020983641836834872066117554184476425092359269209826671434996459383847767607673071120893000306738443272955544387206202542375502140496141155879679392898012002840465346369691122636394788300853029527624468178501281733610544909132863704697760096497181847303082538196580191494589102279799088138020040170964713369353943509045477627790294361766564198179731526714066026508383837737148338365830123024945099341287552395309252908490837258941120985223651969556269874883995933978715589324007358056990624074504457263653793522987186083953524376364175221602575989560565843024147041437877885272507749350805325701805351559174740233127019647519441314429302648111047565786613621154081439058651085311096681371200208735668134176536217156047598361869383800497562509300987274330493644255422242818002692085593302372093270598945903319031302014504512012978833324446554968923153045730589638273247765295661397616160473099446553762181497395421839782988182338304636169389335374497290053164369532860609466900759961182622000577372706183865099431903032254336982755961413082718077452403884583152097395513349038399077535728379951849207469068009016803647920722171741448021884930514008361915270539566823014276567787000595472263689044541577320877113518019293968138586769220043734300704740121293257872294873274858478924539529593799104389611195610861401719157609117312382233845632699049410347759811238095653480059089351864124844719140424777069901600989036417217145506988971049254232474381371831432087846179803677906909462679404900551400103296375576231140327553915171513764999619976108124596219599567692709783908040082475017984001998284335624843809443611506270948429785942698256625281889577766107539693410490984397035274879692010330082526757153910406670069007734388534641330525653156730131944314677128579649749894172107798474829000436017308702956202793074380645754562885788774450651885546821793505727884144561436136857218097383083696955998266050919228216197132979940101663737382075459158121029319808054181574067947027000781981037130316537408684659612313188966942004861903727111232979776979477270529012801466278851909873074944017703198304997020292202906659947135871781212264406644412051085913612751364442894638609104356701566045834333590317846099060151135462698180742311848629678737208192310689685507964918078479954620062187994686967705767443681405496404662424836961956971482801823363867953933106005554324922854804437499047452322776065698300342818076181303043855127387670472589469520563754212613167696204530366287029572668730971923664049010310389263928577029425370065337918079420248232570094651558005796966577031231059392876140541403470315791302835388185560671185786812109107486101434403728996722635872582070675473714961401269452099855456792179163601947358395276118029693198574618240777102144044405240775154268104928056456397745065132930368060781817390230617684786258174276056630669040167307652002413192140578399715536428027822840310108342526826182865540359754653774375829008643746050439849643136247047124893639388406882704399490309781231816791567560613856641103267729089422834887178006169264502301785991530936802965080657180232411099277071305788854201772689922281025992815045835085221343060193662034457404341607914555854171699294426393246738263863919388489027172278620668680759055783980425224024704095313053842052440798105694399222516037099229701528226817395807361150498358633140009811716921870731903827372613619025052910505994567508121663904620408214125742677235694593350601227241002446286267693921044809180763192068437761699796793154273181272914867416491198952370551626723578252305481038021636486928909899876630882837086136260869401628465254403210312217122193633922028852155093341244091314861722543294393824594836028859450234160408669738323414103126463326463806375784467508114958960553025796913767810175701687152229533752345580522795866335803144411184419618850900195321071761102200270316792854082757909566661543940092957820732240771726316575049414354577148312986777118503777488639583316162637289880745746502501549890442284012789282699859340865423407002703602132173807160872944049205753456498964407892921981288244086991023729488901906817839064460641418996858849396023717338058109432992977813207053497858610199552709321727717605017850898735860152171161678479214911309172348386118384389068551648259663280830312583507830027942552719846799744984502952124521532464289087707966839161503602443040063166737992701178487450633926001019527485433032008463882963173070590239830643758275922355072569081261794487996578742316495946275174872562573377724562582265582195595472487857977701000045006600261043586241710607753406625070741225514777283792896017916036198054008737858426787755890348285442725885953904746306607788227358309491812279943637408716922518701381829682251423767989973068368139836211975117263096593737998766012145194861608003832939750965303274514354517190753646605911083501468132490999073745347557730884069805410958914311927398145011965347905054673940021269281242623663911010747909879257793306498361381628816895509138681676288779419390217146282505735184627906041722542779709724634507386054226599888159051027141837837636340849887634934022609920584436585405465066502410092654974914586091162071755328409306691879191835460290501325567001647556084479002921652246789939648100570001972024767937861583813682111319331255531103610542847161815669596725958238063088524220986773329688339140863043361754607303501165034407334434627975561404528806723927124721017264254717841188266428054095591835379501883414864544164121525954730747476125855895106623872227017125227895703073202436990744795560298937450167009597645277171946420424686535832040334761608334514455303645235645517555982632524583917472833518312049132953876374864057969428235458645806626954479926217537003082508422146375965872608231643447750158928878034513503938899999352463727924792618067256918418171462478563458614586998227252514997974857901717466428257595354324874038728138783140254526669181367719760339565010771966467642922541005884528318636395750600350488053017130922253850903897393095147532422185902313722547318333973369460816873597627715489411841474974635148085025085193946272951287321645707790341679695278540099467896219568419493451177418870538079614540537546761491417724151092051007024493337076230038407668196912978760508041364293288387142180213973587573199609346143008900723048385874900686402571121661818366661913579712490447208262089922472401793394428371103348019678155714469388210048585348032920248019107117575619825444704385801692181822122070235633991413251891306451997582569808210788424717324585358972115518522482985017948935518982591114375148548939566017798265476797524220003150039254810506412139993735200637115707983225253914490462237079763127850148440311424183712044123239888097561733374031014386110619330154257697670792208460832752867869198370332645813806720380298354538854078080042709460822596886610758330370032034528504492148025409445187335906174562989581383598604532136318438718313619794563839720173627590766031800775057951618722657574150480260753225328116830894936705847902746294505941602753702761718683207389902538162380522242478907799742958210840061472596062245642370885299727260616456447748090143194643011790930307905626833288664288068422748847270595978524117089278253915540941196399461403021447047219329794014322284120081271092363412020320183396407158824095354586703666257493503837178883340811025854857266123438723375267634964134085248182308625816112863078563799482070108523518987547237825546531976236988581927738546978059353879173488745279241944857234718206500656996394609604890748566055836680833322263588198160705827296034145343781543611790108434057173367949995614688740102600753321781151194345483899303168384166721220229038881137102048623770638935285576573708500224679672179970138938948807643376259675775542133103782238106680524960730735944891825760944008427711896471133100109008158172114875269720721379969865877615118278097593638343449835707705133455014557318202612859570993207661596383978837713736150192450556319701752248897347872724359884509247102235326441326739343405498386768218127121468819921272321613074852599560794875522328689727281433016431265613702990287242431704330852269865717566006005722316371302666310579683213850746898249616191023573438227532503585638720311658159774820614967030064144944721761435041982302664642992422080844232713094880573325121491895370894719159866790902302506562948478625046172845497645466510155735703677751508097995741080417457639921739378675795722233456618686652673178293686553104853735856143317176777258523763376316995048537001050458046389606178016818197603168937051513903799289648795684445082562595889090665647468598958935323520777145961042211246442772716667540971302408056780999513952052705160785925906246995166590170019339957732057772495440084770117749903323676683203976604384336039934193444575074083739058539922070552858569968452787862681098020530168146919729235141597848055591147231931741467147508895260691296973055352687360944520476957824895890945373718635064638344979688741864089258293874801082619929562811630097525428553304052091214634803957187487236669965269209646319453824435861973885415207013051751905880136164532443090175840515084086716517028738477681571875070923448438942602884976867256573711043320046342503904918948362958100434310128157904785594552967280212893922838581184060575958273344400746432738115918797175158205494068586499443672092570745330351820816152347016089609210619568238461618829361600438768577486891386288813691076376482262426036189377792990670520170337639948730729801443512659940844880701773483628373173397125050985505374024831201336018228678122506575226688737789360449364071369342165048383099962240108978226489038350644802470063008158220037010156999701059697920574238561656318449627792355901251375686330734675650078512002906760683210578367680972398654951959778545680861610263920129722108319724855553984109947974467581523585592105217120395670092980023871093795386269173907593085139713335692385481708586021687270712076728621983891015807916547722394441594519959367766713719821976358808426243320875358749880645380711832080424326718081315364494538997840101788289142118509069835723663517431082979482739828127619585005931979676248239972320652939269195495644138153054543979628114296031983191211896816598321383652815828304165498489438033493643229701940465510346878095547501670260492830842416930125264090745610790439253646059253602880726916337473569925751555437307271980314845203898341902091978053019858310252835618040847629195635638069392038185161721526731413180894258898521949245403338543147064798934999292294226458573405545980897899075681478153734703703975208737584880748600452604743945858445752750080428900965836945709150113544147645970255098525558094990123251838097097149639892503690495552978235602545606171217290842118784317847881122821815864847780322488697132733785812436544603622260921996646713015036723952055416791112483323471697258243356748173077450793436209503237268108994871675594931411846723204306008341219069811388228090106228865251669385285647867968673077546374209403209291903795779803355217274580841083222345749478569805101090935153538006427290506948663354222682298084106739911665164029852352052911412132226911015942612568125165067447100480999407509397821389008722495649693538718787806825244888972115177005296259053905686280842979220294363028715657888137602359486584075221904725954698567459693677555437060730800253924096555095603704667305199917416098111669319314654909641973754894281878934808387066658821178497431957768630983669629052573232233297215381452309271734608517151310397527024750318928219620669554870625108623085834482570676013377286803464068212230459532663506058607638746989006308888347103223736698197832320350538985498334153618859278144300646287044076491038471094066981131624454511376060835775372722804670598880477723419930389602581712983510336414875143695493424176620078709080903055378423795897955199857617918249617135208130925981280978725331115761180113470156301147126017103402936984128095132832075835209854472084801225607273015172826212904602816312304261778671789068735765846677872501817834849760690075702325421452198864041265587445070466684280086589691229602459570184717246536419614062595282428359654001745044885644292480757147222215227226145891320986859131595340484723727188485463776312127575902826867362092261433604751024009483546569189686909560969415127915621083882350572764976257052394144155786979353224043122088738277812088369474183590959173518856851632224452635266661915038589206738871113687696817508048925141514039773074127854068361779853312112740886733971927501506425623653994324611108603946970062713023639706975030351034860968806187904103719381723933689212411726547854222809710523232082112392881751013290719148285947114922046012865027008806567512976315351056995623568809279453799664863564029589584327866390222945904310116525211799272503924975784316519550354072418155257026606342656047678461135632202348503391387432321213372363225828731809213765553225196074074881857846959048162412760696490103629131651790406074257936560518139067288643113997533610429466970167584058074036944606620886723948800169406475457563827573092016732287193535655840628919386797595698249892686269982521555674370350865055239369096441841933571964396276931972831846084393168959070426025210650233074573576808845503539674769481821709907639078671210416944623154284423896035916553491050443607453338900372192182350269498517431804811011060912052531009548713419173402437207053733624022163717554697819650103579088929390799860869598781788460934421349019299951808434850632474552739621310665822077901162756092327579029911696597339098848567434665447441812450684482062488431283009586093279109782018716033287823487846566672198868593483714263342239122283503132896948377797829632371129766970640872574199510397473114622503395042846202991919424343168699972245624826603801056417970310240644080202497773737573034949407469596865837376772796457874029839002447604779967789419835078862814830246982572389148259942867475384958333033093938398249021843378516416733298903885386423510077498348970832290737553056811683018757688388987068462748471582791196974025752344386668528768147780590251574928167353244139001123447828372134242792514651832980165325844116818929928070123819316096542685179894415437047126554315526958252287249207379440959076906801334271323462710711472422946743160182761963515673436878110824615449173425775124109938306663351909590072478226593183497897816311641118076145199947097905158570910205206736866993748680081454210972064378223386102664197372494112427878651519036448890343123105611734653088360406401799316979172265332705351814111808309532559912916812955199061447830265731828094505170778064556189895984863441821179334604850993249021664673849323133623947182475503892255273566992109144657647146403624141443508738912795405973666029482192922070216937178761426884488089894752078638177161160788900409832223099625639399985969327378686546298458142784934896365599097469527489335149561669044360424110842307340329627178163721616755890341627695675599518037896493593133008996635339608253437387754314321653217324188205536790262195956526491372676270862451083483573589013012517326102043423976291730272549192959905640608815089862500099245579363837213528590025950396832779773802422400278634385777899112444825060107136854142964997111788017951415047173423110907052462431208770596506133759807199181169083740093815832298649653490030524954165221738616213428052359697447252218605052064882279592617340105133598467975305260517532861911564000126762037374945135178661898378905516146030866547167362445174068929654755973509278564037982910477675016948374969986475138061483060088566787272993741965681989230309009467791845916320599056973971072210670489688216351773380750207493672150257713225340182391589080128626356073966017827879233735898205368066928746479641513745845917699985227092164086141685401235145090574289817136340074059625944335380181372135704863166734816505047482523212443482514311833566185748155492612702765332136382403658672690868970636915755088336117881395732599189501318779680959713987339997717387283864889490361187014904830250044882987471663579049529861046276713806055986061740421692373670424529074846985759640571262771758599469604752273318208108774629448933772939762395339069256193822407830719743899848200737049705748156519280052335963513628738800933507247799007422699134537194894313945046653955736339393873959653218924771611580227228623105616393080600023014063616986949845925611092896053209580159776527584372713522723482961629595850727111436739688661462017290778969479851929259741643732693405065376861761386214485911484202006744985221941096848601734875629067789821689359685962033227145583783904633234234783650468996073442857665158663701408403934426373411718320482348369078892552578937727154499771533363876505772485234730327946559811744755608439028856707360906194439176033632267716326814953910735923198355567722676281995633713208412784363836411845991899904939038693736215058174473358767598597075428884320345325364496581568153062108543307877481912530093422550392470332826540934438097496934268988935283346483404208806353197208016862630753624822931229525603200080697892168612991150807608904347663367210680849766848318746173736576111213253477476315419264391209553032259856057072015997383403822836151513690725427258127428739096165631302116033126608929276927989055259987914024966050016783446747731756405121038123362808536250963343613744406724105172914506464172399566229144484537910343996028688460404700351973828203730143280371172626207711147884000874010566174338869459881787063679841784954945264077994453225025492734806070354858389851124418120964558319788632320857330819256865352358198601213085953180826999779510972264321074087104369610321714130603707388416056602658832172848069402980119604526885375132164404119710752594280453242781167088284142703645571618464441985321547228758800270663894420560041017503553374861803863007240355788620454889897466614821886540753032923085203302553437730596186001986081849165378193981484672708429479013093250774667761701452410079937800713279222175869179817944267655624225338828568431796103045138323540745029005241589925985281470364446072492021104447047951144978287612827228053216532535398564215102068312219475366567835444566910254661340363941289774810787974480763317534274868040319892141194424362846105198796729934554610484023245503420421633580503825651300832232669578978219535976899884442902467016905297941707648561879368486461349750623804501378980226533300913060760685514311025093693351058990846128006634771355177425532848301695747200195177825471828207961484597636320816524517080897999138046832555436512068616944377770103608001027099941550686886056288601089915169796185688418144528679215209170771188212720307689488362066381372164103297675111696940941322771236655490446924729255746058465217991970068228071381208805367304149280557913583406586392648318782251431003404500505510549341720128705746881663149299133625155324211159570344850436304608901772281633007477810541197074267754318731566828629988927342029967815617611129963978625328546897662498829576110438296024623581658574565578779071987529524800551181341268088020441652790445251430072211518902364833615655254632162358614701384348146068146520319548811068991850150748187084094451414780469699404467940009486544032274639171167350284363386899414679916484844441686971108122055213793300548563130701076107701779946941689258856789805579763916447667401995171801341949448523244961060125143290469613475108522931704465400974426436659737296165133137293581693757177945523109961653271756355312983484310286264674598812935034512501411890464598348362825790619951751342836453561391086172367674586044009891677686124153771972362922281287755190339395949689583850061179803295468201735978978223870533121842556030119768746722594150695623232226387843659221696730803483234275181384950754432275694050754042353528937613610318885129790830485153494431730595289478067286939464240901750298006032629179358759490699748484784204798872668684841964711884645196432862606644831925545690561275029086135190707069866363737402175001380424652506215293898879099569282058859332100811463256781048500991791120861990281541302174257645426060864347207199758041145942001509308807544204981602475418441917150498131528651390901165765115443131979702371168791771446402143503133102271719699078726173843755282574774434321995019544866067334355893644888926619876935141605714116394619856277042515171491271412429394715572630349698180920714139671543050958916286228310734405587023381123385149418175185581261022112994749736575859986381001114992378688622225073874900552721647905088486015045784628536624066577833647072998692220089871723911112164651870193363443600454602492450372795391815154068513142434325913992211473037731838624949023364577078582248442568345508811627287597164728484833074157291118998064932465345604197931890991658798128836578774886405710487318210912222285600863089150297954267186865412363517238915817663463886086157429042363178444950543163819519349496780579358389422569921956715429578861564575269088062113623764479275571101744973902199326759406399439403911599374646968949451724078593587928287317619383741316478151706916130946295685779443509962600491397332162436264292831332106097386649813636308362715721463983049796554636825930906254618686226119762383158247733786428341595640212012021187454059796915865306725013537037297297468258423971682196463351307722159650943804318288244911573604066469639744475598395812630728018551046054547237965723347503587500623261969412430517202129544401766937222553924178574504860918980666162191201261560017282058541973929154684470194595406836397081309537816934397117498606403672518847195622562277326490435259216750080695362708317836057752040887014494717007095730063737786627063941974186869075976988970584434298025126812088820552375542597228453205785126391183113389624914887657606879205915327600603325305249492103755693328593300916104592606752114669407250385621438634904874897861974234460818989683557032401574827548272721954611443359145992050771753760440033052020119520643176518032449221642865483426764202849343856883113308194041688956282542148331087765169719082276455224389606715760676581383953472223916989199376532600712130058046886105419570850788796474167609037870667005721622306248432124950604094942263692254786819164289317706359425248235831529864247007020022614690250569939530382575721572367937258369276960854704201014578815421741227672458794307539738314451218037087803972646915800317487401865034691549265169628939181751801226955825663461569382958816306552620784304906493236588757551560182305111871147280658887586658833744263549121438923846842331206926841067873986892027604171917391601265628784090514973015862550476049386261774148173335684052756223472634986519525929021304519878783922867066876367111459048846414112884841863385826685598632511669008463109321543043284023208083694136887733257309991425872507289852263322214012315212502617253763424991574160702149447342849966469708245616915417053474068444719296896983814817230366637510414448171206230391571655990966431761950385854593711863775477847464741482207174029003608557046430590019490855668898945602793294839647245504642235088023046871987232803377577642784283238826267880025656706602346592967391062940549068038874906693003445776290709107684054392460984615585430183644780212471869618565326526521863070742298439615168848077806959053732100760906368262986863566929289105370978322021597941625792100699982472504304840233785603356282375788547072856668067972514770515160595695618101253891411963020193953044756498748766306715092488688000312836035597323498036948810296172927134220521961409297693683914055642908993927907913279573374845866641065429126445413927521402334526106723205216463418353946580064670292655963596927809077827565092087430157342726760936249597294297061915834849449395334117980969519724956550368244327114516513307962368099519122410113603551914817623179767238699249092673711556404084955146166673645816064400257639456405883982704527167497065398652114596426722501566415170173413079547848165011229542618558119856817513061320698708672798057030564136197993354389169467650692335776989197995885820141589718140593909153120250894960476616248422671349551413805212040077489821735792706650887837185603817370713740022104630646327023618418687183240815281595191353958896534536344676342365347095434169247155009905960300058248470243085111380536842135068309311689857181162265943426566935740583983149090137445125272217776550219139043416073534652447976440602045114474596630042844360563793582286236409011053923577186455213918601531669539443741774361052541381148847330782084426284798904730450394555859538267451034370137336821716796786727223779489870017402750912619845501888776781180026731438424658835597721868608148798933809796095177210433838619701171314556624010958626207854943128476119266499221113170501823221774576924503545773841825647073978439329137083470182080709430859734118613871545210656335566381490580130606371313946869711104571576649824063493981740242328517115371497261174519853233312061444491691696502027133597983741548297061866042833116082214083105249955870607306569168005639218897244349666617677539749604883936567661189161575209408423140488618491627473821554114083811966943832847366087417011902585755572276985235793327834384154460527378188539138481413242547725682418184633945754497044737334574811809196925853837866682920425844739603747853975479527691503646343510738986250350747724537483651831183272388717197731118472406417807748912030492778186617391293674456170986286905602452887202397059749411289329447940783555907771341556524225217000366801479257060763495521273351018905170569317797095627710260154504437843001689513630984482454215657247806308301615112410187216911863476120252737276747388874624183017137736360818497955242030477798484790296659767881274053893136015692899595144663455487720206053596585254704540038181161956651565625996678337974300422302597512477493095143345870743148540794371275546918515573841674607168148934814678781689596036727562375606210776219092224942214554100741638165096078406827507598773991494770890010485836252977795797343959147684437269662007106901226059410883430606490409778653783028435331498778229828618060313016503603796010041160380023431836109964395959969288701113243838075528753081633713788824423197135851526915069479113884264586639343629543037725216490222526589849983925259026527100669591448153735899079048565449668009447408414258398504883910490751608235286113765938608223908925333396549737393541007573747440123604732421930966873372228376817421756822003236256097193589604923069998827641268011023478318660401875065197082762430143541813358097075614132281448313737657802008813122772952124013394071763149408358263085316760020498206563848089140325281868089889100266650075235537013456934663152603812617576641803583421826385130414111628531001914820240639871665786380135667143173921754889291552764867649983273175361511096540317368106540512064261386992143126538277772151409530699410104892246335594876030995762304142213468747735067233818625089165111479388348718045579221388901166234625434061871282015681329760642524644724209376112384270004883509747322277982238034448708426258286681239479450549274680634968697138230974170476670766538346943986123249209375921385066229227681379927941906250701042357010003973421557866937007912333031043826714188082646366769462926626598744555204984400180983667791581562725609796916462756029333224801554572608435483247681036574693316752729684605236188062853826864565411998365343080289145454843067974465173201352214607043424810908806950340771449443344121989479433352990791573436978074797753077791565252892397902813580713169747500073074407242604785084383301484097477282435728776765388059338260601593581562239570879627868444365243515610352902507808607563923346329523697605867421365949308123849619732393295529529969342877312619397149506422773687681694745628613808672728504352718100226893759387015345625599431889708769763847849862838322161818715088584198970973777109057045272524825079242333184225039131208811220161488178505840725825676850138971537328490091469174162084293242311140743602228070665174282367585208143671638751038846371129456912922922401144454366489010330830623653942637264723211580514232087249814215286244485541126526671907473093529469173304785089849580729142088431858709759327902978276947272831190228612003892801892313683855762156547162902373604385251499728434377553945282000218364781395596097116705485101365475637112100091197800572322002440923409812857245983453467629942263624948896070263095099755866906667253325250568898454881091806364894903015363833740005528693042328298527577199644020255272594074295116672398606420679095481615711545493797768724393857323337669141091297648333096941902882024659541289924261889229600404391301217717168091317271431257762920772677104343921379348993494824371627168122916130497646277369665934315009324558489602352871739477716080948464414587928047962750667106015695539011207540307579837486421041054553227317571305882819444469722929087932909439647308222792008714575796409743501655652511588128869975291223159921969733700402012105650144743950892857790989348566075183255026412811793104896626635021025791337677407235083444479762018730531018627174839439863684992987699994899136541679956323344620708308649533040592927163380460189848567527138771409151728165003250585779170329094354082417680604144172315672352437879231993899128009307067842665854538190110605226132735192433331753860413736131928056538006598034107434012715645969165376735887777190271904697685797456145834132943021944275688341440290936262208440770500973849483947626130232223774268207857861671648764032783848664059977036022339117820624753549162434761524195254377822815427723480687316258228693460501345279211145204859811351922575191677984672835999599689410262127293740598023378109716915497834219233559760676277673965234623986588193878793695061095708828494962676935751174377885498891046999498483054257197973313819736822725959366192935608261221135810368938180789109132144818363222740799041858366543438997497397998870638037529627247539690894218599255260363519204458424664578613238870499898339430862418249153863575944853808888327193318281887771322349163113521970851554455685341885865406121791658873126952858637390138245230139460591141353048974941941285197834428331375476477003924816478424398823689905543103272631206871348462342995424833766734731936334394046641186452762245226418923985469659141784836586940318583601413807128427258436473665341551674944943469951559639806152555142574868748377905316955842781999473747873254994878452294203407550260737875966668039280465301611708439510474505101908888247015903272624592835190631669191859570878024296986576934889317374140605991584941033175537859025911126815590235233474436411232885577084549428416947124538100881252376022204747157734431224021668835211533021948877675400779996118296806649333531185205513476048683825234814826380514519390839597816076529654956785101010055743280327133358815067577445501931757155631452857553190512901879468079092624005494750664559377895416354177051538628233754999385575110762074274713932722460479729079167943472401840658171739405281545813703192586600964451378832372169098473451871397436974299660718270610107417333831992518325510039731848906861337127731285341339542162952668757820815053727715295412362296840707166553372877109509880855035449724664227986705834444296616418130278383746346385794390884999487843897110551511816930767721820089430570831567605064113916985588528611406773887022690085557507515767437303006490781849437111433107715899753893052617332081584816553920962613111927430486183039559754434243594628107115839448260571163883399822691597632433998320872887493641314620871542175744157723956467626422990968147494669837218005772954969901293143557508040093146476007445911732163107116150399631848307799572867924378167485892892045110965978163554332554969170447610094240647657751306456906441270219313884119806132157123321839211576214746045819765801704397245718922571826657220817637688756957474309858898595671212917170977450760140171433801186034013563925385976778395744707487069586208926212060563778483468682568480015162016369500246250613988376494400496142053843993579107536231830572012607538975977206012628199440674174712828879329052355972735342706820995138103159008765449163401311992743502327616221164983670599917683366488007007010996507189922930403224704024332331099121340299189243481796547605032712273203997377562242154924430147810250559895167107835060844434510483846476218594589567189362387014544848725470462460844291341851077361824283489172728473272645460424805684767387768962645335917056962747530615712419062292876316211297972143995780518024757966124336400692114499085670270045215082759329856215579061098782279337562570844040713358523348220153972032252451013647398827086562051695979390471304566520943880010820898511750464005694208405327192508182489931122668458332321869041227552194754092459403675390338878725589672553951828740673497007593319550936459022360436058190619803277355566749278469921205207745459338589329054255747784713479574752553229864123549179927018602621523799170227894861354035844730056446767217957030611660797805377888293764007532528983695652687797166882459456636389523961229048300221726845483599575662407227838322446233692564199926395298860042001654352310490072354313160173268632616696896379703418895680193069013264542203779012432546578351900682625480495693889973412100815082356451561236489630764133369099718845684554661578705433854730420217937285024378214541408821296186350139695997554708589421252883386531822111494113480457018261742408720093207668456168843251875127582358895569214047527110165019403769641920809917184948474715076051481803011538816616284563594865899546781000625461079766494686485505858929435262360634219933449361788026412239059734793239320683477709700106627778281535823594277328262976257739611917035738081097741625530599941067054547221963421136974791071728564641760741028083076789468564712238720584702954582863627291982188619036351960632341511951981176771943013652648771138109294140989555915233110699235273860387365732980892115337289562218046053643689349129897686037987811327435575205014769887613273353446923964223332967526009425014256003700607310686312562809785518266347684367098495752481213496242205208528513608731212242969099883021162192087142226460970827803161195208081288918583760379746477873820475178768163068708563419844564199546743629265854679708168496207689052615009818324030358689256787297677563224932149362743924230848190136872904453527724644209722493318597313891427130081490782694234036044930424504693398810174297410362686109154914253753591177737476486653739021212428798584089471780832070887991533426655286500417637559237488603417902380784370509715260143623273543108041037576812834469235903665930254422297926302333258615314101625260299062126201869145917917881318182038374130058145935334817351442019852186459185760605248961609672299775605648507103576486406003566492396026438121707476346143556156880608153213972463351267450822966545664436562659072367842735653046415286990376645184004068573727288337155413466968080310186271603498892907532731338622599017397384681045581874991029688616677575166547281157397187906742186308861995713057270057350422104125960592817318871728611134206698675907482730137392782836683325179321982689124276139494628687898091179793271172111969006157219497677855260787542131036932617409026687935249756062970474844215367143051164089511868370513507313733147369539423531907027970565076679589090648433921262764354378303400282007765181310899143872547870934057280596069228876145839468110518740693332073483389995905514185785987292617100862955392488513674599575569292542261455408218221195869971468176359927503528212243742775583802428631644694182224836356794166956572116032514520665661515162582240509983772947308436026287966581940010096236135776252418277162686392950099311068318739024110381686349432868034812048100139847182264478557350142788985830973455058412369871343461590375397909718706334864600423997673102618305601280239797508397011147290474870799798255659461093351171969459811126437802400767273767833811775300827437765617619785965976471949989001209958980710371961110258477517325532385181830704489324882083993131172127542848981453882327029229508133644607220674442034673942361805441965191216980553962725718130660548107914723855493224053205545394232110568681319917301436633830153764723218421865301573056249820834821057383115459161459652449725607556298502047723785537252325406900355332955156687353450423020280511452333994686463260975672814861022145838215790633398041396300380689796789109925564160420480619785185031009213898814563012534709894318914319737977924991110254606479115539189254224087659378333432999109657787082707240343132702402072831654382599550586209214807800730611076257697121917935842529604391104684244721334451509590547564907746033771481661497502863166148867253383778290437803868320504387354588029136195202443346829714968238081240000192199184721009848102870449465820102328531368620360667825961076404140019372883039025400513446252037251313330615669496586140144882988063235695140992644937594792704915481432736809244607378960521363786730036031005567895034217779041694078660249229618393950984488045712656333020039233776483672166030735235724864849573089372783980352018919761790163754608587799465321667682926512257495090752651763321843310534502102282839097056473480629087673170046774038801168182955786961797024175697547217790284817657222755085471297448656386837604328313980340739099462915127727789677784539767210907545231204541400146165073307005374136660709141417452081591099065027866756673360062375348418920871007591145139878921256112658470129623266296070413326170069031703415241321073212227770954286850646064741108209557022712378751652560626102255405806766523078007915018517154082534253012051978622010377597782552695206574535640668928233477783627709260952562391685417489078569744034816478418821599061831595916531305073943026397454237372877375324314868758576549475419272822324058755710819404122865223551099678663051228649680282981545090572430264319107430309580039177359788465854003383951571689178791619052509617110245457332284477543605157693209085580796084483968186548123349181561815727360051355612629597554039724135162079527888252217627532998410404602310115554526234020843895407320991222939160088105962174283479307572380881570639680606572823255391634606973280187335134161407899580438652477363689821182498420293860563173266145894604817194988935007732360265771299624137887384024930645196123764638322052343506483487750922793704884358700567884595340023300082881238039648250992873313212324742201723060990479978020217516028168716896887504801700506660468867760059526610460978794240180913714773518085055481572104158601506615107333132230019998198494169623133762205757610415930555528221472544348543670441819073865852572668437288704593759059165671038254901807675318102205893336349451403246551724483891309266959178527441170713686481588583406090467749870279315756163091169139490094487839738860968305833452191759487645033413930441023855722093542443947293147323831477180628031871268800240074927516338003575680056628324686604860964704032126154489777122183085803495801208695622662281377394517227025846275360910665858533967709510557045651616854510322049678425264534684114416812752597198804731162806478585850807034842757714909843469374957968326357014061777994925424647099118451163760054921737951276546438478097864788574352595678564543472479551293722751921078415916946149624084908326159805112244303221218840975524449012726732000911551286117477111346031921354966411305082522897591483776706553975027431025021050610464363814014878305152477960240515664121835738194371156046866322107223405858217084585131949537898191309353083453031679992766405223109383351322968128178969380538288799893042504157365601152426757704495730099606351769599317481247205366052564743710493776884150528661945097581645498456605375852856807367034929990675054280536861972314403908266758884621149505919066281054117518626544899205628790782000499581299787434362369683928644081378020587696019373951962998810422573045981532428340761879141732577478446435645649623595431638651087995529871117495596729461978298735047790683779100557126649239194870603665279002006881771424869490062228627769657455737334668871274118350648745809927939104812129165101704839614272022801409974568774015099068226431199886833190475080652559988924226767289731865606154297613496030489561580338497992716013077278767978230478088855150754781480475606764864721795998447547248169007572936874336664212935777077854764551343304344753788882850862690477689782829263857353606160325926143583923651890364218013811217017056104922781069557076307450836007676809860898392740140526026839688983930270373119596266193897183122255739180088925793289704569711224767893411235642394784193606617605890881783219767699525322068971075265129877312043237755913900333847696328820462086968936808170517489025962912401034959415138614853303521705071911302756726789937372660988007504959232193026803910832698809341660603874290044274757307174719208440997974110545942646098140775243726167805331144005230690572228288911595744316887149773476602170784953588440570181934309476837259102538975357830823942334961206338031997479877524025822610042750772198475240556556703473639467142886564448350049099548011415738460962042887825002792306776977856808934535600812094199551123301467894780681848630751637435523833045640295198316878357486810204694437318777388466978963699700650618125185441228970137411464885405599111410658744073108456710063041615500235397916413437275549097051281175955081255494757104073733330650384859238866906596789402559285345702561888259796463432100883957104085266177756041199842334751622023229843738004277927535012160618522362652945708577409429536482300691367881084741011907498300115416655226159216315813914081378831486979883992737822785788849031534398522717344731483685072128015162804130480071878922042635807203312702379227442984932923250590216175708078200743883833626862311646320383025684245796477555245188171819423286039922445784020020229538417249752946540205059361143070007549773721343039600250885066656438452123919906428921641770216282969082011232761210687666122716966805274625771196976005537939097416117446075561276313058648992962626527894643372361588011384732203171889632184745238752495453492752793018691901783409418513652736205745457530506206920047870626367405040454597863155907123379410489760883768097180863159128491981675037190185551007417658008058788103767613446240614146944051253672436283134664631729171780219237763695967656367957580245113456398393281286766523260048291832889795080776786646814539470717931619445324191970586885357523657088863222520415881289786707030859847008449641123165817520229054878274598304950802184760503620693435460545705432472890176201916913113599272717328562883583762036590813656764979658242640155208807524864183239957584351846732873851430255528708589048330211531961120886812571466361889889869718956637819386306416461248839310165120411898048478394274202461332556767491219056007414567676150581090011106055216741479767462194806341373355121402169430666035435292245797202130871474295276341457677297940943918085657222448921149422176530045304252273393296032062798252671229461952034150087695713141322985701746273538459869041351476979198330791595902500105226663141020182761129703401874475259753109587179746977239595795302452193720464962177537315132729759734917141076481724640226573306922166013224777001486827555992131765985750421250319764959734214337569287114817854928850123642520933435405738430405313001955726185624699376830366426533490696592683800642615226216183415612230727850476434983120640858788622320804219462910986525019790064689334913336947588215810463802166864529393555536927635363506602432417012050009644373679671488023368048340637258363830398245793412939310986635969916165103128402129147381604365101501349554535198709944170461183833442386522642351002589409832790832829590681207805995581934595346119809209585705634034866727797181593982230898509070847521001640301525308914719002354574615713239223748115278647212522433829501383227743060788244607250205185934671759098895790094735258505556765449515668006445645335927566056800239596549978330335187121967948089562463912600781021675241819682410205797798384272953884581036639289279075357139282204998551283739106111382827172619046780588345575215331568727650011622346022304958258753683740456948024608035330475778070207931949748377736063507364178733754073767033076736081127576544042165413845665197729138066647087620221471221843892326993599117571965055302268166711015629244947352466500867347699382500053612318299964888310864263849781483873338900485532699765382394888696619126077593153664405395031771609861051994124350586349840059011698074422070785578646126455502371936338639240701812849566650585569847226674467687185245053326249350033059252659873783183558220299424963357247084596065049759277289891846924722858675777703497010881587382767231766898430079554111440964703628589626113797319024675252606261142851389901123186822709287149811807018551178683120819521942319775238042445319881883492483170269898664918473308502668645077767003134777031942698591675967624785209715757929993954515724198105134252021658425220039175696022679022489383516482104423522032579970884258938148685138539407369862651698392069631436639104745028301467861677239764941077568028331804144611678943396765714143955938928564728637823056314900899372266093273671008342782436891868789805931779471526516445339098430064969881173016026368945161597413460201375718150514654442503640665429060518878036140257391227707442705945892496384185526196519441542037436525587164774579682844714995481686540641287481192627005244941313862952551575393981926935701937580750549934162495426031838020005562140856424995643382903985674634883281677113623594196756046103543385139727433341310386376910682510515572102904564755797926173589897343266077920211033582834949747900934812741695009865772406210853495043804090209452212327419989649115610392394918435669948340074432921108330305767500911652926202545581069516275033600125738902509338396128464700887073521757231214727631955225897875236780571172046047219458096337413745645595910725816979293795022395234652474594064927984735608216242913029841070626273499225472412526978139485448783431710675378233795175596507874135852577654638337661185355522267194982590342714635811958373408228991882505786445606621843212803058283979868516340919040281108090721514469905239759212134279149984329337788204173142087724854415900240644608712428298151817624678402575362770921811408581911142007328991244054004790093257433575611603029756121662753092943094215899180653744212967220789962994330894983229758650899903749970172303377072813771047578533086085200659704608452666232277380593883294858284982705901379906730478426132447385586991328287890623178677230329797508293483213362876513598875409927736842122535229511338084012995639030817279520522861948673146687546468176588877269958309998232982821129078710322962139374465415699056073408101598387517989530880449111913587470059823629275188435529253831966954306134819345773061038946666220007047637216377854264988023644652388046352538379625364356922801781953957183427738074268019855272856140538233773394581738446422571157468249572568744796657685215216060274851301974142541260498791668933045171927546072910204817582109696737189941399667871078179947199620213748820673522028705274312300063302401162275044513515235958185877177069320202524789719934187886704152430210334194586151052256478986513958995398351079957424150729879878002344918442338030009497423596648969994117674446350033389855864264657019488238730010992560382785779102088421205045657882286980942368063274044969603601029699781251628049112643775629173491887225851111637241505858007509202599285360566722235643440927209157107296831010972001656737055917824253764420277925818334834673243298245733656116451962783738803273649652402702986293555120715275642413297069891611001698641753274928445522488398172218075299669153708791085297735465009530907799556084730414324648983447455258518834887603665559804740644595648710136838711983200721974091057529823550508032693014585060627376790638592334552589357270765856954834946406101993262208291645466431719484130106288266126345749999485152224530822622944919798139736744379248923768126382642494016647888159134772636196028078374033761056332707095494744323199646653656203312101011198759645448620854205772262626511179665658000557586116195099896309230245894030797611526475878058348442190047484242812728608876826231508972101833136101982648559277626475404493091990902146202663354237116328037601049701645234215376027801483459274647165270444166207762738254599102064142104951394542605835031923083491441545633232203174640876632030571561683132029588513521137449427998060457986855217613550789734694044745682975022191700217394707280861164188065433170811096622243627478930429878125735186787686671556912363831707284085352760167041951498842843068550439033241855165908035172813136194351768154099458216733783263117518494503635470952554036166409316523688598940615882047607214953403533913707228129982279487162250490807394870597884178272776302744902203010424052175192593763204790086858912235310713399417635340214393251507021530269332646892551340923122188236076554604736955566804219116088841672248957656741388900835206864909357289333023143980443216228149084411499671745068788169517038657438248916690458044778947219660760497065437193636340319256827014729583526506450991660817676941540114489110001006118460392608793935872866995695886135753055055060041778348771659158755871773075841394811376957218970636898037007098278004701646202358794621802428465200898873226697625224636469721959857862702214306379428033348518300508202664777329223908954383998369508290760674897332280011592810082155426127271919837545787014922875559412516965197656870033564570749322890942541951058267013709267234994803477152934671728179400800612014198522118060038258709212227335233861965482056900025817814447975740982498656369974959259148788025554686552276081597600891840361136322968453870046774943011250189062357243495076829437627169049221334082987853859339661086737218919912384580821079595792577026737047772169839042300896150785784918328990346713587455654433664321005846432059352270370866183832876339149804022472399253525150990206934399551761532305641630478422782862418869606067809284885513399579494614879414802180339258353695860355481162983490054760849677581343795882727661871156705201200855194130593217380936525563535050077521189702418623504905205992553736937947482289431677114715070753211177640558106131787110755826635984280982070883200890190222683737811316717874509361488039303724065230915776319763708537523571955895679785886997099630246642219957171596330100039067104672697471411806672916564368374090813622977663745454775018472530830483001420229611521895085935214136193957713560956614624446405582603471837893219660903222805085702577076986793882558532474097512973980961973923762066328398614560947795255000439537736460436065462937913600187880578707019947015161735112492168992336738902195376403915095182483682462087488099973984876075860202453110015385651313938184694774783374899692804110719268741397371088206255175386341875437823395694634086021149075765718271722228772104654967487279851888207655681648079462000453037601548838218270017411104884282836221563416892209018515531258556559634573834306740614513709006640181435006298067893773094881731013262815063464988879408638249197568984710171888657085712130888421762068920697877404315636459115547650369724826441587269317806860053929544433391812845310697845281175469228077650104337353082277879356504698697249240744190156558436925081186760733702301683726910353370848417961639813199562724307161748446334903976979219322249959528831296106902614991034503032454694856036129768320888546345455175862368772474593233435579157446528638013978030330724086943240421093343659084812208974809414275436741248685586757928707525432521371426883127513713365870109165355192894695770479636596798078167841895179503701558173345116424485997886667335083307930383973727607470435017730880823464893304665472368071103775433245002792347351268115701196658667120834223926304045475204348187672758842581353467717117939810155843471273276137838100587544976215125643173363049079788677039048678405801958934761095108814325678095931221064555631485590652118350535590747930497677783118600262455265503923293003997306472658719411082809103273941465213341937919889832354252979810083775311543469314150508314224781025844216054465327859878136352056784164880766020714925746601942528083859211951906098703565820787944949050701896584525606613881380174616117380304700329609717493646427930043563735580928422191528775485661506395635208396228413932774746491403122168287213184138894001935231126300453126178736381208227801578181482692961615532954834557977360958165216612892244732153625652038086219489156794693808469364481821924660867782007302683440848065008308878469840972283974821254432341124495017590213916660471631247499221912584363724444871210099887023035927077743453418192421641177506767932787704953095747790374927397705665090986183486557865307551861942775420022340152118640045526207701093611366529611767656535507986722568000061179882701758215098912052636039898953511077324645429561013443098745156373899018861682280926134962781124366102609730642720147770609994526942307208290923708296847313353520098354115721250543313239899565434907823300402564749301488237229544598762885293133035033572025972549415963462625472230721311866219516225003119782490381324684573159650586752211804493183468978768706238046017591187039069434412570201598575868407817142550800601594151323515116024328530378480298961798552765869273570464414428089101737532005047875877606056575683061818105745353572236347024125981420043440146998509333006720981984524056452198884589276037515812036884262792105189489295175640604437294602827344658922097375306542081826981712159185531863221309984759785439904209053027285941142569032484452932375568268931323050104603363542598397556705079101684250195098239211737032199595445976911244311873848106509148549355708338676697115877755480953757876868184880675902284338445585429941815078359323802518583229541858805759525381460417735954155143912503275050993228004507728470525292121436192360364076841369852312393851726431734805741511315034709411926917342787566377128959156779510197868374254956856314412944825882143125700177137612891892319461742419195602000252265935413917624608740580861603929996440530988080802059060521320547473930643575687796167576254911147506255286379354711615778990478542974557348508025940741184174311923292054298413559802535694188810125432583314707619523594533147080196318830327657186901437445738988341603743571018116485781806668212786485330991743124979123825145816732594617906673057349225679596898739512105069449566578660996408182131045492451681375292476089606137338723255004173416348698970163157590872055156650410731229888139765193430979427619544920737739557688989460364572800927447795355512546832545616138637126342910268196653311808207958942886409625820239309430720933986312534521317568695358640606258776022267490859050059525676517376101187370885748753362283628737596830609610458084189090036483364027182289626414059263472143726105638591947608705647123534213752981053432019227696003989542123504849442457811007331730041608827329325776516459490778644677836048631642786662384136642238749570764608027991811874114455492083838890046691524042389668232058964291284880169796392028385623411382149872435428190288533911464137624385621022660919338710160532498659306425618005610959546128795380037659244430907581658926439782087970615864607137585415837913897735775591007718164697712323078909560008994800033306340810100920957712225875693452008315756094683322350335149550755943818340780544826391513269831347364820376514507393832267486968854924518658521411911270970594395101982355093228095955767211228198084408496110648453092083086791506959494133474004565763541682317304263747033115256759174955857439643978655157334744131905212320229616145084020624875874784827489259185911780051859627112679335314974791129885080496090198950817505644810252802491832901950444482927721939996301698045404141342543695222114555842873401357182525670748321510545300242876674095115688271420782079906148874998215319635705024619222201723229068064571710744076567743065278693273001078105115925293385669651271955749790058291113070197731465892562897635168131735848772922650680605764457697498124900507468240121677040380843948797723886710601298988454449831628818344616079535989687719860720945958299228596931831978162669188839766981098378182323537182359691483020630980619009095179277200788546379896086433722322781284852481234516131811953500531078322137430340313562223043002296673951870904263086023490358317332878319553784267297305043179791699328782064244864461280178720016620403358144776692938225839152280138344679359711848608895957260255012047181520484744107104598953666772967158823337490301892229584711248957365430227143383602468243692141791596580458058394701427172514096462267887909770591552716301407408427417065418323565973358229914301302032743115099969607682964328309640300022819626722755067892196702195053592407963276413841656046869759708198546676497219279597521947994092359427155275435462624155154707092804273813999937595369130957744871046868120662347395355028758865454295470579056286182535294762394718306663947169619498462104319957005380039470832578787648787171145355895769981025783930919473476840042154288752259367069658175135778529073684264830028907017268573727025132375778177035210843874560467859723324250853003568251082631051135340867901499436041903802904583941814519275406266205489508345593537177142564677942261534793410483252437095249659532202630666780577857547088266312961128504426061514215214496158394242971354327548900065025691963142214031321791367363204708885818766610682846232846302290511481281920599293713925787762390232422071431687634534861115287368851131708672789294319500228488838961526736021173118304650457639597631325037625018349668774126645241774132189309611421717866014712348058198035675703571829329078054157041478435785850261444392005765402224995599391258211860752743138351166660043844995688804609064325309802922620888041011621653333107420801923089863712036458251258749545130829305953545212501971284835316590125786565275259034594683428707688120387063704100491344301497524377807851823586925636625230158141024239918427267403386836847140433008722841043698980296239431166116915379471194927209979724419522559070857466906940033843202885706993971786714882677400056185849365309334833231960616728213893077760035979073856240758428778994885279486795176239441261807647955887939871911128585623509361684678832988758057926953764321975115719884757173581172721682807629435922261187985312901699311001940354717957848499290406905002212147889657174793800020174349803493183761833226867505514203619846444142116131310711116986947287439937305868009675724898234435884126646553074913800694378744727143185572644363377348168807858248637440329209025381968854272859360925113285507191541513732725776521415009736604354227398765537490915593755106894483079118637277301837983238488518170918832677831571438567741662675606780181099275415804412329109797153141761145407134343913420352251653642519010228270175672450287895602977581237569322074540180285701077896350718282616150919931689950167248490864731871600758079246380826573822934360481737491288145978438580664840636347198906668338841730322808537790355985003395612625490881219625346740949800872504801712832054776100864903042386133085502811065926499765999016622443330558515187855530500701861814830898689759252297052138269075256555766329622737218457325280287083708999103551889203680276204207934148386852876481653053171509536481691468924882710242977456086757965801898329277778744549574270465654403713566236493921298139544644690227814468687960688564571796861230845720547217158478919755262987536852616995315961145365251265363648796835021938844154958015903553474235137623642719105334840580177735355863635039344430394412015620514651989665546084155508754091808751102241927133062915368786748405373511488988272419121494258045894294965299310963461001544078633986587683239214370098623349789421432642162633748807929907364005124751684575316981648529945638769807114610372445233216130765153177106367682262563641856643702232943410821764964873960652382541302909769749676750994561401737156803382266335798722098164138291059151535490275238322702858909245596685115222026528034357813068543590328138226864701324838763601933116647366781250675723630871999138840986157544654329374706568871460856545818546706865202135840695211884231537731389973115553836138277417542940061138155714780001451840245599743435684059645343740909779199112282451057855800824580567948978003247234822466011909697210570558978432600067825527541314510710713005186221844922964700360067065966440706626235066234938647871025961371757436170462241202063463657765933440793020197020499592552119695358147343189960605016366352527466557310668578174751054628401143926831969553016041831062425880772246079734440532325613284218932680270816863678177129768764253878862504246890441366642044335380199510978019271915090043856938960177802473048588685528908590832767825206338196996252161291875054215360566267533507628835596323038258672017422979543962533853675321077314550110931411705504132876959447213861456221997589363307148701514296862391250404178968626350454245168076014755551834530254629972122645206590662711687864837249639106937600669201012766529400224595299649204416653410556723095772486077253645474009591433333686337992598447478928989116785877131307198665903197167118726617931738382496765844655038016795298789811680325090173513025113144752916086303609134448902084741510362484519329360190945352678206629477977980494197996064472473513956521333508810472348913403454169135744883522960098866926158058448450439073689776911015924817585889101428209270929150642429507316307619117766307910827118358749212969151153680061424241053170565951516060594221895769955835835882867721794409340879133295330864772498348327110513491926609758936498683409935978186538713541264876481572151566157477312407585580594145084555452983031656798392519673613767989161460580160521550428818660671558750618535651886826036352124931741866167910002690234965189442790381886059864525870332575270661759916049857595126225022422712823131711750561346069314762037476567316677373447889476898002312874318117841952800752269876384196667887019547835764787904486346065033592010998099510756355267284319532859404877833569812323071820698893955531103843690092501087784913177889013029733730030445311766272933905084119938437529597585856452652349185767086678589606853345067318843968208746919043425875108067604036100431407991711183574449502238796204845186827185096297732732215774716540702812058048494985532195625376520444745623090317285962021439498618427955984125333012650289795332529550227195278676802655348907268126441262841912839008177525845826668870593479293693297655707061470255446333800218334211251721840921637276239657998998439089040405189232306338901700614251144643959309858427738276874024042768274391962699254719606674065545798494612604441278069272622212977198362323171292574152056351949258517377354286318675218302644994073647861299183230321176792198624520858791021712287977861120560466133626158643869101973189371993897849191005940583981705386779622992061314815530453500552320441594539660598858049881952995810364392013129420592604836290113597925921398710342058447793515706868583947978425370543072898498622590059328549935148245084465416092298096106817344238222735929450778271670291954922087325651085981468091901189371571024611836133764519812884602930647431344323857296560287759407430292852481732928435875355900649001186826952491701522085798087856715763531808675069697986638994329285268082809007035026095205320143775519974826494639365749082527866679257254988346915639498880757218053762574733056823138499735095195727401036991283518160564249181566546024766115641596148177112009938939143710043786880610662164124333102323963350014585568199172364723326962324285376753006757921737690288484624391240483853145624800389677741686869936857365101442600808739551794872399005590676547434541078301682534278687523304943044726084307703932652874697606794869476992058772149903640913849334744909359911922513088609229310057043492763577017002570246115265088668434503403288629490602789632071060402643833484998812644410375423535700609420776721971051515401188155095526727436238069507478493382798650452181771529381152269915013061886830045247229031600999894478420693054658136399142820251383735492758580110371570078203124942478987497697545624039785907637656483503627422722070254334784365364632211511583075405128399656849656873999440414204301539964509415204498941846897010184698533684431175712680719426963362016365031129011534190171928664025521784872926070334976230939342576169845571713812513631119068540583539537584034825867956053269280546868898198527432727568771786270371050192027697387991912500874712619436601485191793096509516716794526907485193348924649140410825690019381257224783948385213830344703473043188935651887593320156179154766605207448162136193024227677143543529769629502202793497001422604722094625202550407306520563156225637725084336924936987318952011542666985708844833352865475337878519070341270281079282793679604663978061534627678680605247995688521650896831910265123507997067067916459064182466848938405069750729602542957562975265736644134330635557689594843450269192429967276480505064833908272181099679996833679894979632972404989525383829349159027448512901692746936522222186824190715042182347238915741263447857654319374071587160932361221875084406887634953565170947249072410566910869475321705219577593635377318634008154448766152778746995547084401656351439168759143901924165185041550944881443976395379607434416526015349884477318447470749365551554123300292066383221940833298432719187149913859121797189320144858522458071165278674358532784753243311963530093203363437701197050172828204900269620979583776770734084499628404525132834482891873701487383351957066635959075365546163059405735039694153189958297453212222467745757650485978995727617472459355686028820555724974868426557698457815278130718867653289795497368535159775206917709415941679853897192196315653616704803337709983556120662015588910872782676330307583695302311275723036503039547362513447034510836767331437207179836865579757704818403053894927276604577037756502474007443193527377859976655295417819248785342599859593489995543603065390030077923996484925114589604985192711649322012234224963470616062018546261031625104970715810080180125276600163333730883744402834313120503405609787471576036946383921071373216368807387849466667268765369419766831005279350394389426597599646303651240822100127323780763087416762563265535832960708440395460017561815869756778506411037018770328954854812593389877817783204944495337550089947002657438978465673081508040083399758435839476586169233145849436081904305242857423046388970930417771500542256010087323827189585468446495009067648749326176240067554325493597242938464195468491668925872416154232069997352401237077927924971433504928234732252259635251587780100781243450464618917779829371448944477548785741986555191480847690321466425097163296678509051447739638148674515041685273902119384069235361443539720494942285157928627175929557421513860476790608251122370144193500245912461637003010587096449524450451647680727996390943008452134229195692238984140220928771386533983413761618731560228715775941665016651371533281534667101376996441933343856714207275414849910788446591581106018740159905188938028510118097603300999533503368903792850617116139871327489512669512987612758207939943842102072525592861844908134735006546335973378832009011001461531537044106517871732235423756844361241946999495177261081239167241859067942930627550704947077351960704614791440709181662177267864707728691305203313144196251179474464882662073384953003770814350172457057265868340051987727399753797374145316589412469452215683430237734293962055125498495257016402744992803516572758648884313552367514651268804709719430818205910885848829829341091110940649146921733408457605099308766079161970469757516555924056476623226749426824956767889559165111392807767161409678802535751030401583221127138589767434140043407874281297904811441134092408770949944023158361165716276396532118680618141718170542519986781524251846533606023385144225909915358331570989029463758091423355889338137076610934698768708261359380846439294887927841901337938713304931004396658459055369604370739217691262445135213221622585654839442499764951801691376961283231573225197237133538791512071282379137459091464621568846018815123862419678858942044065220744358929179087576194955059928098912338143510551332272470753469501011613369453249660401740458198781773506158815841654451210262790313011886184444659597632255172820328653726245897717213353258762910495427033022357978974555862376375180486541828253287859052486100109571462066106548815304152985047126329500827221146546192983424595231058638314398603712223546774164308260693777073882860830364396467614525235524803315723224773792179988517088987667312476698008169544118947893917898680418360245726351822652693194370539289946118790879166856707010754375429352927331526174757129140511853547276544193154098134145074226557022881301132501170516124913418569390745949683227667156334946277264335153304222820576950394999619217057346097337660061273594659994875507204618916897424036620079063700838624181704732524542036676170167382127770696504597874067628940075476829985232312628329961611780451360349699608551310562384967927836484941712251785791259817192211908109109978742488073947429730826385047856174301749098749134028224670476585708440431692461766640636222105209211142311099676165271413366928730567307255262894938618814068358898564082031194298392584354498175516252877731528965754627683290573295232946640183750444813697944323353170399870648937226655301951070605732702875695645372839519957021229180996892835777791192033873877298191843947400260982377374258840135007722873471440613667069853519494308702272526189557773209018829382082416478266623305803264993027256200175249523656157118456974023862868814822950417321457840104724363932576804149228064351493733023767505255370804439420980964793559903738877556612858800813503833117230769098538435355043409963156746496557497969752555587993970845920404278745475220956353266284354852552179159522959693557018860108552294619847573638454641659208723727561409751954442981148101971104153000042485966908622154359743202907904099549265037473844725604638483105725717651764213080144520014339815083280977913565762869340784325207033337975856390993008791242324281408304711482696055090346771442141628037645131777480151924723376897894679701203060823953918956941083436989389658096844027601656473863413981551588693997638298913188137648695605753084899105028704562634389858767964160664411451900500768407927179514488113717497564194341663951029030231631071031210173314656608656354869469220684005339190508369022824905165081057329133704231635015386500776904379137484012138047151144538659984188226921368099737031357682128948853008395976813652046742155059920962262863972906744175522953131615380874792113153133600736837238557013215415682219508396341978777881152980224918232707268356661982702769904617751360982954612424542729960243701783624873900038082107709978830471818849467131863182170711013151676363311184551875044385079755696272255665247769703790082266799012283110773641093342624329529371271280435525068093220480904446282962615098584888712106600897655761454368793687078108103280596973445501932987338966479723069506020196066209688062328304163606753632010935086906336861619884264661093787800775237338125171391205889595629855772678314942804776662206026841481273734917408160967854865063651513605445945776145141657126632330075932470616488978338449825535929945818676631313985582550515247731697359807669250213567881371143187436303351719901891447342679394220583783322065267193463306426414565118152467374464364178075654928107443337876250675911297992802500156765517173911396311716615510376159551739709701930928196181983330254157202459534666925629930844995249433095637187919782948888681065456017576922076964196604260812689208405144915557734573643881917938718142377742199440436314154544274524914002220652897797144677613787306849637287544758270432364177019267051831649685273569479030558713415282067841687514656153274725172124925192889766639527533379754897559251395435078797743211149757140005551735710796295776875236701060604254692188103972144424243041692687733959682908089636585998369718204739599880509633275905330117511814477354484460491005298860470998301392608637107323674962951300060476197615387958682929566239954919162764302283949061584844433287717469555900679048022488376209846295552353083465433709312890266042908058551908358782013990479897420242569685479846496345303343807303245670777601335427997929839731255158789604490248240303131640566080418802554821151269895043178195273271118066141919740630109834663890547764625945410628558813708250880088771446821295090578994855567566914559539635464617850565570151952976823910250066643702208007931814671232685142485583214422841051763553792552003491497342858849871223401050631970523896165064958960467382904923017776464442344957379328444936341006719301900867419632771866575388550539869856487082034689632601626057418878291933106827659157677582463098089277708822558012817015184952272165434130561046806563073216598670767826476284876661669286977576555088173458198849796740626454764917459568660904024366516959371666391117350854260387069568704298912710874984310187124563078967872406913618403714522306758261673661861048539715770277594686052862969705485479616271949863025607492027017244786200042932653333096710635856616694075049509181261674841160527352657535562893143725103090621056948570799006161570370159273247356703834148125965148356678144513572456410519183961403285384700094658659993319835304656475436958241727028047199232277229224342362698657608263616792635560336367656431873634105858789901373891504797274243734399879714137274849748762691940961391743021203742414392281243573153790479977797451587003312723981244683992095137213690017700632770592490519918269049861733632333350238412348781078948381507628490506002715137472525246045521100035396823302000780694171465197833450621532499184846082093813436484788783537218445460953222447342229642023771785909924425266106915005300911502752377505242815344099641354538074708018002265800301491171650605032448569644510339218026157962677597897276022957550810992579970698038254618653959183757561131819511723165884636181787120202225286782213096128587418603110599719815212204578778052514996397728430875141589947695690997946693114060659651279903305237056864804786656018326614409749419852427090675323902100150571091962838470368314733635079292198204274766824746624748615288030390064749696423286029627970929359307392357334811251261450474196612022133435254140031928388678084807251156421680955375561030727888908811510601539675875051350123507856293112855798430539769425622685086656619333847623104564759488130468828407794960506778627035847785458452660644263851692930017380061636502321213543454410904891345692635741331026303616456615228676564084751027547481092746082485159114938511049128029739819111764785335585346864674522048425266847850916432024219081613991848194961056077433404046608917845295321975906489632721839119959944532446568769321556897356142531781988842948204569661845530708352966441034779029202533291117888073693612067850151698201977852512152727685613874205791233623344388396578246889654387163322523334595390374723697701319993043702348819207638260140173503320719988984615190353280920707983850482126476136817824675870709070358013728136810075204902007822702062115127687582598149879233597899599792992223414547575170250207662282258085403185732569424487128254758830572891714584080011051247158354005153584472049520758613237662074277614233167940308916174596392372246816280550672302441836406343814130992827657833875437545195712298630748504023456006720150630989968817541793713907418747843697180337230572179926765465893186218648700642555820196464497918509247898843793013930136400241766119355699421213308891408305981955290582523408091525160857987755117194017313671085436227796423611043433971373569645327839265420067736384266630641857004564979681553565735848280335314748206175719757488075687992285783386872360341340694674558056775019694095237863281021451211253698356317949354789766684603282498811788293990799322933592740685828140455176839263636781306647767428924464721183158707178009779288334253894521505253065448269584934467928431809632824901376989219989172350121988982988154096172924450326764786630338410539476507624500956153454686180035073927959746576350055854573314706112961419327490491533360183349140031578540886293408460233680006332116686539639017466292413628760078150734783945392084441842201686331048242650208042333346679965665528695363985262413291875653207005170856536365451314849112898512846383214331041753294351771677914035683307963756830752027213395774420116117788172945470457086008909377381213924692836942540829423835087396625572689164801009639302436640946840959562095782569926331444873428449797188976473388551939481566959829510086586385414300496047709951072159703233187707832590659348772202527457775119795344646691929384774530794015730251765579626453541897718010548687269525093094845921309953850056757027590898689949466195904838042423733893481495542796114409121195216739489505950366101117459242509638538802968384740928883263123102546471604881251724788447592572893072073662787694515399265391927759717981601926315698304002563761496925068412966504553042288355021687321429165200962589688744887144098708778682308002984612349174123205149602709296243611685045055476448148803099042440187912991231518351151281741110570508937117822708038823700661468988046949567278171540258470499785840610479938665110764908872190410534854509343215981047966652991484418357569642848811389279602156711750243038288719410129269527489386290184145874295411208884309861285658959042520103307285122084171445165603289216840450054634456414455827080692377861962374214877800297087553491426995534909400774062086565435310585248116285990902873869704773308846758448063048784088154184716224671946523773478813318747266074753438535999842598125531797855176602315744818837142093966487425866363225160837241889289407838105684490846004906948446247388481188660420095216472954919687659690614408361342470940768295275520677736479539576343651486575105011149372588834273436530938595734770814875956789223767273353195834242594128193880076219589740808827908760203283059627091144429136758151708440667884861028217253104445304024734782736950481664169965855640676789138740350293298959849022052794896489649538592139180675821290743006258910738298785292061376326688916471622549611604424583436190868182095301804007132789316911000190352868931227299937813937391994013898933543602332195208980372969533207560508817618557994696856337208044701058916192933740835920279251411288363481191552708263431929483931324704089475092529416354712142968037221376199128656153627733028903989837435299055985532547049945149313390927072939094095153459444213412022593379101732595357412413032472358273909380409137133953608471180404031282105874404459419897858549984206085755928387509044460288428071422401182499202692558461150405618018807320640211248136926475303067628574812831815145487440440657099973493906633739564734214657663066499025923803401901355805010045966977173777285025534343709007054169672544976577724014085278198202454989719265315620253895986197047476282173058523663172968987365446560819107576287502615428695754697229544657276235641524209808783723464986664589259737291813990224507612803425631646497232889083914767209385115856078398379350252626190638736903652039572081435935894883390918813731290783344635603392388248674907243822462477874348275377999930308678176390493730295492725669412584114973776390638785355701981177991166924367767177732474910367149407961617358956610492294334144945232837487704754351750145255973578943909352520020763386355080437729717581657439630791342896019927211437271553464962910906375734516189105160434013264689979177230660628660961786121010329510299716312711009866658060797144015534368829739167476703005076358769697146363677013135920750094368514263566892437219261513910875329782148702644979690243948649868971915163906520737903563631883775150153862137328335176603899890556982021380370823396259247138291733394632144972503895017573267082799968267341218822508660606553520181653712654890881910457135709256812797748269275366428763343186276252078854438260470457863263842744543422156113598677500203150680046012438902575298133026149787903882241707042625627366419057687302428892153575603875813310405690408195820683384076160014792981715099514033635132687756762844385519809525851478915369654565753750571294036289981361769330000786934480991704769209329541918430955065974812558747954050943712321870335376462349728367861818344336823417461395525495489947908170100717738983899672211327615901991272427557468782799201318598815164270023053510627450114571005832859282058985124695383670398673164292571596098053026011297305137202945193648266557794494755357948356624105704760442256882874580125378820409284968290240394855672279686625130001068396895335726004116056342093308664256193690854486162420451605974774754589552356561223760645683416844166176561455442512594215881615878400897696929385865268704234645712189630413078594928192843675027899910743951994191265010472243220104901462142430615116363474854762392133950616322207794631600269725181190618096653171506212358972997843779811654506739850158912896488285027872270740344531118045234243204651373200002293793520042693266655002308198413043916955048253515210998995320012225704105370818052707340763764382070122540097380861251104523136239079826364899309931139793026526118277314973499644271651369247017089725401929690305860785710928441609461234790456183939936586287129968506224151731595386501072137706460955734066430928694859012765529754260020665504653905370765646563274144411144849882803779153709382554022092828367456152566817385129468291301263972620995409175730162434366583671422417799963834922691527039283147197671768409675933190687874639456052067439157769561823463008664797086248967907306529872305108574551100715591969671738404697453248724050223520148061303076690266643427061868655416799287768734583054899818012110885787245022365971204921833436321530317074972683987970214039088981140855797925111739304599822142528612510628099922699680648317122350759031514753190401414010935818725622729885211104436677365207247379395302883165475400036966907907123322131818974870496276276427554913745951258217854829267266220438080401134768545787022514773088327379263490858297519152332455120997149220796413356607964982021743967391951310363063779163700829895141257791274921193384524456288430016276024805812085273738023345873641868788103088922122840003976710685689710722544981670546900158956226558682213797160098951766741469690221316823105588977422064444039592817627855200484470405139045578514852235903813092932364856336686585752325639861907567440212521257608670150200378834881617552199708034730694818289398127499073235447452012506201672063260186330911418351207445167437318321840100710288948966338154477476845829274858020826219354455492634694585003422311243735751761974647835258196359453695702416288540082154837089000463769728842532150360145183291219601120339036070084666809830711222810564721693592365696353177487410807430077802699016521752455683752070115807216244361719626383145676592744849272834114776993075297328984968782639299488318829086061401975224551532335429873824253923101907236003703306776563809505357864444254243575967987868279185835736501968824058067773209304212975820511868251736705089096535066767195720511480005771629132734030535962891783215162230639043008346765152073165842525404660265544818700898822755196133775725201610896944616683134806185405196205978247728311468032712681845619097323197016158020020359348163597051281717224536261664212222284772283110255139776379970400346286656679366517773349238705608020260355570576637464638206562681094926122579215786832734244296389469305177438253675564489938391635037700101722054366192415933082027906121704003504323192198872999175006057669856911757341542925807100638653627062753802337279882734497365472685847426807813839522978747777352622825982808966238999771224192876972672937882553841506605204415775221663423506373742240852790842036890215245157375499028836089322945171175484397772175561911415917941554368774223794261224413931395091340025787611790781111380745097692149081973779893833615215649425952899654682648015584761399213415397377479196569802438773043056086960069889684504347105626210161159822641706764860614594929994314142601178045538916056835349540564374559563395527057270151945849845271341012912055032794760229991185850292517592668802776033742536989836017656072600346528737467590795040900117242351375276842711107393378112411666704828935849717539665369360543270250937403918081189429885738252402118191723204804040096207708024919829973420246317703557128319250741249212505413258642367211700423805341541182271259865449504511954828773188427102466854495489987007475312009358728797969758471622650847752954356211020491326411584640274378982262536357034073671547426863872187444413217147957473519117721119316930171473168779480480788236961529959035872603701881368967221025374614558789463668649983518545072765079037758739949934167696588032883781476194858534101129310308237624642428135241891029442195497009292004337170065256702715343394224486473312614105078315474759654194901301300956848208161464706245699074551218599559976735299809770756653156481730611065499329831973283841699067240592516039256171142090036368724634568866105136567516422300331366063829159113568351980939163252359475547667372761171012299041623856078616006241834557920417557634702534295591838875453664140514482119263102494690400470921116740126633994671600585972251073736757829650079534543919731728511079255103360661792269508128639335588744719047883109412509146043260354119985208559014271136865704321132858381185859092733744818540252485963029446999549609391079881340088640262489016883290186510565072148857441026220407027633705547915206352822954542487240390920236116040466724627051535076394001509723319628818971576260470639820398518182476388732086191752387444311732532998224381745772899718080821935439624902444775855746251116275010850158486173116081258076323027097274367148088856596783527412791050262802114389480622274899785804723544210097199050423756174293929045690118116138901625289923487140570917676518721944904543339046089178605175062234509248809024416973944528825236493653686302048714898767148812358235789284664910887676897538596355216687249373398089641713293806740654668600301687959012913082167268326923047323573619808463233537091992965511120945403360137282316162866278033989803144963177735537647029881415071292904757582969823302341637243130156421537395664371568800209604060085364205996983686250434567619738571150185733691425841225597371222890868040369145705165809731908008670546152840818166967559634993427682410899628020126144058061597296126664356724699235693297823856392170575670515304068944047313812704048877746391313751423861157225938747805851462983311885573149907245384498417149135605896902944612035733991257014248010395949468747720836890579106404529843345997153395163569696039624950673821460650393615105148540424249651062900111928472043734662736460876501629350263647351334767533826176910243483995054619127043959864408572552563770355712615440729868793289369650647814838640243756751815579186952469927891058107685043608220864418631389161799974937288674913830130293300971670494531281410129300373124168661247824425288101907088096897539464126345652368548544525243233884383365458512898314622836731903786314811832210520930201790477043139354497237821167924864651203497706395349351624240435260039851907827221019184842277966554139058935774660126953890326120990313094064881007058491533238487643239173685768001895468135164581282996006420567364774182155318792363779471012274977642898321813385711646804881781157890600005144695064884955755954101510021429807037721046532679578616974935663847240368594297254902348898197260891618700948039026811023573743531696089344177527600685777677830491745654052477704634715533048993923557329132667761538941525916449241816662329457317135395053296490615607115012962285560711259247713647627335612247557366999533933273318571709529975800121759502094607563622383640198913645094914766572321805994136200024951956335798263961152118427310520077452743045402110185971170040427760486191335267433957053698587251756078780118543662521243013542887909060579787904141173521484561493296055326409591577172978327346119155269712905876147734872751848784206943621659295821786631345742465827933273220907534731921409010049576143023716786090892433560977002384528990636107789048366287927356907874420346654757685870371416982965103070320636057129962383003915536471194806445368020730841975947669744149854344470737722277641208649781427703450322307702720553468453349888148525960073052582874292655625465214883858489843581366950688545848743744719288925330603928082465337643452810931654883893204610502801245368639405004039430604379109557202541384509796313114318312717475128070500482056349888269122267457687936872459906006608858498145852008888255916583245623781778451205969757882903999434419634213965938902212465965581081454237419665206278992650939487918469171235933677006960071103282320860455322127251856641995225926539199888997842372006214870638627837417132253876589409261306226289269115688287401776064239783909300334150881192304312833870388681074578828633307712439022424550355585165383401475422571955408909049033069275979366005061134926140915204392052220629754829997904071454158837499611346085254232398068422426857312340503775686636120300666832705297640775236868781204127580430470840887635741783151595885022827759969961753425068827093899468677897586790774193241424908952925216014761223801422483585710843846573146719386041911246546002241973328306249562326461077098802901377777244925588642142651654010678487235711972161078232519860054917893395620774620760696155375178314689136337820727659999741284541664275569450302473557884576256955913060506027928505781228091753801438848409564546530859976374025422304671675528900586180143926870770399308149669863152379477215120219035642694104332072947389338615540039397903594319076262575444742915110987145214144232153198015295411990423881225608890529464366449313949937654778265622258854821237802419349466279572261591502204195516040498407829439162635017668744001975384858714101958214122423751748853699424179667816705952488474021852821531245202223416066203856813278223060126015216030599502885950922447933191248873757637395842479276851431624660849482556374539383056858215839303234752335681160479559937435831141478200943440322740965966927205178836564290379465524206450456128289311558341628547999757378178468231388226746956025368278293039172334743505100742979934435896021850381622230599427185575058908171089282148613327211562696857103056241685959214907286913982241841990425645084270597530934848835620738019174337933551568739514761983909149626603174023925142605024340226550619930323623449097141663748725554038996499497795641385323860160274101409002256788591649599500457510988288516038784861208778274915012327640324220280607244493289405048959394672966938776143172280603769142497184278276933391932970623501311734969454517825434721470431348497558492166971385692659566979810466653223910998560954810210052938205866256733469525553139839948996149608542089994525444756635811838539691006871771232539497891718239016103673461496737468315756783448379548786503273809787383237816391911416373331861919164112492937048085212026091233114019325574487100804538442614701352054981908332331131454792496600996948819573411868708423088724060862871887144452354227679184215013722793617156185768608211851909186748353966148833775925913279632223654008539540413341460949063194836689137567476881000025382091309666362934447025452652713144335232022357127031737434526561994598521030549112170182354005630615685972701649848983322037416854466697607848600470826688825240078433494779325220116378930899548501606569199758021398042649976909175420274592957193404697153756340429666977690955871328917207042801885983876514804105357362743801763230667979591931149210883083251151048463024767363050286530452536606874573808407823893243088357598006225144926044699744276723530555957337366815924549557126849750015701873727778555221172265026036444717068680773976309693746915416684956193092299491485187729590599153434775998360377408217448648753502610201437011719825332644205549289495491344846578497026562886188056985312832680750910545353281404346983077353833510075269861521980287318190295673076220671433868536948912779132554966283441774267462199002306984888504348845876472709047052176258927628352356924516259011143753074867906882605155074468829275535229894719247905665229556300189365197411592429020880572245305520545289174146138421860914191141450796568021576349888236551510403719570426018420369887524844646456222846645954142705197040189393814492092808613192507867704852542871750750340477042853397439911134037087008058245875641865578787440813988176942864151171392509469733545828593994735654167699762321768791031359495861461962615691646045876430174372312801480066890020875039442474741810036352645420718904750470698132564066328441020883628825861096546848082488712610566839848076046842491309667446793858798849862854321076603590160224514329612356394901972170314926344481036372601075188850103323450819644718057220236058612989372653914375728680997078685785763944994334425924299715846534602366384550139082707546789580623715564078784151407522133599843809472827447629266067551527980522240520274185710842098275556425642624159307165115831209594900166648088816160228486967551513343089632115606452800696953494733663522254088457748860159511404755413674836347846152664350805889429235423715819925389731377635196825958146323554859122984911281505011961509113551985252580192144514932534497035464334547293184338065643246817140851322556990195211368276857498843541773755085517232303897087739737787837568664187642096468880897714206732223058903314048792846424839680827683765494043885616118345939332745064544038604015997567371437772625773036479419327770382548406725980675973197434614086954111781110982299130664737265153727154131131193389977840409218327146306147295818149548250658531205728200399513149031799557680891155103891389827393620588381670806301076401575832390462702790765530475464701982963773370525139271033601731139705268083744541529330512313296889790758173739912470628591287704891828949095222809939611411226619541361256954146928557400124850288496538826198669099819362736944837169803871621552748933798078248849503316055800654399960505338678159774115997833462208180001446735494095738816507431121322146104592263622596734262083447296182292194839086959141209609106852091459729867640143749038658481520808200117921223733388607847357024392166357473689803294173865399933123208669551103602304155503277842557052098691068829874932319369536134091239810257065087868911769455551547309092639663552433508716887519998106216175993576760829462038723294672201023007168857973098149422735945285056597632634807159009418824576985960532478929609955090364767013931818088380892433424374102018998183732701754948633690255512190551184363397740226727831681746180853238745778576786721349851077302758225646030787324905907809199483111441032784221397675805906606641913905468419052938015222430605572649807272981101419393300830187070022554622102769911109992409449104285931806340669715408921724703531425283663814148873041181342845734092738748347226377901945995090294639848397366130816251564578835133459207019594507489571262584293031788554993310699178038447966257848141912900082634572557684926123052699955423602488493275638004612756498385631873462662682292980963181163202274817974013373882446226178962493877432046051598341707803177123910846805677507737769453163074598883251136234182204564217691658031969751001161393260853782253785119752093639144146248060470481818634283388433149250649194856848620315560793130698958863874234911201793924470093914919905172569016473025233178020179850117280921433882512776775710906964315244372088461307394404459369748149480594791090965602865557885765931842877301168328214801588466234481338520319582688011748412439939166857676807670864211003768429472768397338085654527280914240748574908048996999742768932088664695694302820890572528401452250392177249090595359324702231581466582209422424152065305877982771015681436317375526927465748657670527983814523855622980419640033926886007307361271683211479678343518318867525644717215528971221107905040476677553455456845038301541081177703647902044415915976791910354842064726298734232608148332819818263091819030777763234186953771934356167207475547310227085695016147862309329039921857138862790202103457228474781890156337894409694267345968663736858184596379269486321250926453853430625893621341093074855278898916507393301206419360748976865062520953212072096435347938309412515163756315766074265688735286295220093449386729371526569048538547239619995233754621991034907928935876631423187801621071466433054978968902431577670084632212056817436407922850221347264187786164000883276028034120819354014685112078937690723621241310864317940005238961183568387700950733000763137907759012327850891381123954562443318169894207948850011493901957436263269390681130482386926268488464008661086993308256915840286244394547574857790026854027537760998210105800427042990626041178419912855104231877987263432718341001800264920600228808748173995273535480267561324859387755603122516765854131836671307320802276448228024745320759470993403346207039687421897956925332210278277588709457527471337647898816347190482144554885834810508814086348990476683703816716097106747657922762357406197832143849108690523789103948912498130982547521992558797672068670451846574144214162982192032280065931468704200465267308839320776370584793170159404250634908559486288088091016635270584440995616712782737376931938707417233451661587357709764378141607110701953057320296386178637236054215555198937537041341319153744435995548052632210727842266092460211125856905507030928187225629745124396971854892479848850569216587104868822187180597643155068514914951346418041840212579075710915661642047051720167558544235212037292578559835412513571027500187906536723368540271611853859454644554140577785459585076296983736266216132854303885185906094199768360379319829762035389938390132741197475737688639178576465482908090033528132881012151328612720584894581513601110189615922236543507675698815984419410556775652224647777893411073127838908437782812032730821551379647877279757941071545051692048332181483114786060609311834598673318530321783928048474104940948598585966152727305525149617697627344593232175288176591122972024201476178554338168124838501933160423333376604220520592875245243679870850642387578025280688080536332463438749247894699736290377284436296627192185907582675509666371088275415488197640679653737366824284983549253730562042471720709943605866214569351140860124025939958216878381944393446118519902723787719500059653489268502194025470597861054618390460814555999543779838096452365011092880732478943548776381811520617476359452036792942362485294442835314188785200360519134921785201898406441850921958610942522330086046291928040725236265391195122321854010338260761246424256204388980954578879936265594786607031235822700056113309679668981299071936855553212932131108483343656808005594999588363653137843886408323786173516036880753413904628117504223710649109841261988057746333932282594811373640786501205661422222945853140567862708223599422849497324378047310300578256144660782601977849517679961554748336570574500370519582965697126743557870092332885751613866611527686281022087329051091350852746111278758886143347637339829517597298926870817635567202253241557382070668240895871675175693120487899817421345186145355146540158426505578973808184785611501481036179522878993987900336924366763097221680930901011354716297326425256693127515512093711621294006576416901846043328038855047997415600945495813465439299529032783377029210791167187676291201450514241622539769345801426670368319689527264566603957984116797093097548032331628971338625844453559083091642263902032162112103446739135880327602816845647041742530638789887926622419960652322141364995222469917351525270528793538531510178518912094865202676790033678399139996232959149517667542179120378104392010879287017899719311946130941834265696479700855441383100123324756713033177965529676547954576790983860523485913395625899684289366431750615568002568335725246270753476794047161327295522828834191430108050128981402260542341807037245696485018123820455528812541758860841106204151585398163849741291063160451612778589478267074403506756700252939320116376037157069336458880428181818771756813427513962230355793542043992445608114361852821976755041671487394483939587961232817055471345765286111188582067033231346072407769921573063026809867634308841850166555044050591945694158040327104499697990118285118024831022715117355886004100484735541201917342942681137700837904149595979274693931611794756479310089319933382969287251988207404575463088090163639253844969211079922058689373700964253017741207764481665640100529752240533007602072092529780790277492792276419183434765592145825417042804299677170248414200833174755267207500839613491347648746549375044258371496756264629525029170350213254125454328636357950868143385025250662148687495225761722155589779181259458400210802957511792154621910472184236452230546925289243363158973879204887572800470450581166446336657604429694107760143703621313869631892606890575132399629763625509165714321991469857837349780785362650695694786882262821536042428978062287897535063083525245795664463842362816183285846904363442598711453379116457064891848887439052748819064169945208130675262363473399939834731644568292680115664376890988301031397967340373822427993099256207558853566527527242720872754166209103133954718994642442987673715398107655234683741135686327360423259026699333951676696145409048789266806309686342935355918004632003643814304452735853223072581244418630680909341091710221857376502676764219798089694274128693135137978497432980412483608972723379771124639634442221374169546147835655874334673261304817361327592075039509274788779811124912144660759391871364154907645293658761944641859630362164787281030580053897035324723674243462452359761388622884258031162873036925003832147549086216727756056340291742101015472470595308033502822683141828082176890974846912093661738371739511227527148926990733516488254038913966124613448789359944742711532659950053841456962195431587330918479637792757328542028589849533622398463932083083137469863113214197098815298960525961550667586393122786064095771638315046148576286729713325437743584705463552805512268360242016173260301316340974261441877487570922455673913927862674252407601160473891659066625645680795458060388832976641160235023485241973609468136096813705718815381395004138558889034337539405745554305240288350500635946659399772850316107074340071171991684517602551199019920723277399952304866864615791423531418159259039089041906287158808112032410851682507321639772241774314027494680679370733667222025534704499752816105567639553869743627339742237764819306804817501810037367257408845251289725774084871568564917899144888238117076970548286836603410856594888558864473127795002023980790216864081633917328950489823437508910769222430345832795163302904603336575816925813811709884242041863423029237616383698054439592491824643399264993551530926292574220817299439493299509348425979731899048130266833438432590544086440585830283054877926130262936774674814470475850565677634265998135245392760799288344268734260959093179280111158974414117810609785154268874672046097593646560316519545246681748530011770277790168023876511182717605401147367910275236935730124805855069449622377391139482293775037024181336097538436641052031877832096711826941480442905895155824769084003069914156834480291196554498634855169005575174688287935940654890231636793300102364829638827807137476224492798325225057441354865596809511737754843981993803142896505622802657029789978660867986052463576671927647109565743409390367223471490291576882177337776261946185917335490665499315678474876628335163375556544437668360521500485414938082703975707319030135815006736943067859462776691726120382618958088887643082780438736058493632058355571778592546808215815712449081183457632053465450556004727593051661816895354038423917938705063008648940225303966291153835932356585986105977370496956276241353591442010540435120462679723001658233066770674476855841686237774850555081549410871824050934454126022316804442013098121065177494575863989189937844931288039636133145252456543261806301114508556174998338174798941358594748460131087689765053891473359621379908827662934442762051415491740392699480905992564111282102186259012732919084986173420840956465072953160240252640946189016989314481256942857258476201360014197207505916906273308592241301605859269659326360794487099139999736139095431268430988981728350165271323129900030541683165326946049236968038705844193223324954411851880962275467526807499112268246673673422519403769465103592809797250266425231954317009578678470663526418208737935304378240997329409719750074739783913953950254837975106276397743248780160742692960685907594587290219863747588389586358569260110498025228050204277400245483434027131781215327510753771831101750649710460239080157495515966005963305995299962553417418156396391841253188564738857547709439200913641494597421895745207831329739654759919422721228352049317662285101334551930370525253123842332744824627260260280731723314569821021730429551729414979965984954375704567100549781389746473608739169957813290908217425352298845920573190708028920707546961684329586852192770070782188761137960800561365298623336847926211529185605272280200305225000547214899084553678888227099180828976444046909142656440749101663411229032521481761950993912902317042501366835119522626731857334164772519194362841204968804685120990537193322919006498356346257312820746043236560033907550183160733231773773201298446024764024446432963049223657888282002129302173369221421325930066950970337970252784696193583906128443293355188198657546830301864286596601865799370915243445542208080680251979856165677879741585732140426214775594437756535268977096994967364379194815708673348796143639148949506388085358135330381590071639982220529448987054094309994267478712086360063389754953280970057895373940068797703935952572154400167277929098236662280653460770502386577586951838180568599595765464759695566240259113384633750761535541971726243326832888867316000649330158090281600120245795739496085890140054763490019141897305396468866272772782555062139641878057704163044860251862750624737582545845457207818126096108726859919985875104836065543477554988183940920442977114961747985053464918626035447859746686893830190340972509237497919090189990114449535127772965539909187440949322441501067448055840231252487697662199430694704206147058570683076763617669711493542083697023230045836415989740143901193598261592932217819062002866329011736637955951846003610114506351853099402370377126958370751758362309185869432216058708285090278180787299731798507362781978253017158684693360376068827460574925410658144382378077776968707153817080771514843652844709861804462654814099911708970178870533043140633862879707007887178477317263653310982748750401549976502090863699929199927192209133111777066205424256277504076306525822487015110995881695624428060513516452911716718053979189977537955068624126589449826889697693373504846662495826478822162480096851711549708833097256625172635078622044202864810875407360377330234049373537232815992612336378863460596462674425143104810832695391091408337326415730452348820863594653849986334696667184639438648048692280759191266915361939184590468949676305777485212157200020525836017246994950541010794078346892190737818245024833283718524330747197609633105460762509440433448006821006755388164999647850342725772364701694907239139964355314120433373468041279013114942022784211671680769635065137116217467296864268949134048783532744606896894973478468851661971816552498915220469221930588236028314947402377657135759558930808405753550382691361610895630220290438614667927841213200129731636241058087255858923254821891739186910902285209751971974620095791188051476246462503293014982741988577465753145417203861287046099618478447508343828476080714727504967079349257832993428643872141376812756157007946536428816831085227412367744900452815470889057435050025308254191460208109153455167113408285752968339074424323598117060893524319490387008385259769315269762365693691110840227467996905546310264702955228392215562678039252523686729424555177852528201756902987913656383329592496698958698674005291084964991533160344748146257275994494387111463831508983117956330046843065458050653449788868229431765030709782190334387226313059872404507312430609334100059967962730838095023150376215390269269201953302550411405384786243159420153882691803104913293580664436062152932880637296032616956486348037944584751005915231545337405439911650676613715238045430437084609286992331832290669166431589404521532886370473253658602893191805530341724263558508566464809196623160623266247916700479593860567018050983974788103263063708940456396609284831181818638677125586922142586039715438635358099677770595457445772881498506479037101412168356425354217987095635166167470503332500508525917109332140903115131330032347386116213970127733853688028549389637997426230913096658046960857715993057529930743831623012233421998964224320986153419927776190193253385817212093793968324056855081779917707842068180933622770469223628332680153469376212347537108532684811127906521681276884366587423078050257465167859030099261456196262805084295430921737413310061471171595098910390657241077744681614757825366845133252854809897545136057371127643546098050304097947544134559899138856625294497976569557925618753069226316138092074564660115069867696173257472720755246971778846865826639970362935156134424351801051073919427897521284413670147560740007048302605032213760573822479214062954214027829916608113949042627890674266167048152567838359367139192445218940374750796099428738711290327215819419247639344525824939554724697651544599358835008859749453669881623982253409728476184166839029391102553897879338724262536267557848993477570486236794181077750083516309055889232020495040224329554849656055668284370382604193534323806762506987259010459137748376624882079909237609048815299493424837344111337160806032258571133019444512272354361408508034415819862568499072875542582879699732056758472842764337061102765373456058202894010276694548700522749743243607040322269013286310378602123969419521726471086570372372576400345283328103525599802561089996901605043960104930594898816961225523725496938465261392477753600473497644826448057851748669464807464958996065996517590597956369500964929280561757679199365148791109317512912423392476539549403290934132021811188152720943307806456883878120447690695738024748081818280923200843609936008196619857161862371218719764873122860782920720910471827962550910463104995733968361310424158939584882938699302360965286581517866571375924727295243891570005944357108088194993907954170411354903854807388684445185349848290758289227263113551269898738388335218460330683495230468637721202121667491584108314894527509532169682978073885350154451697744473541305195987062166920479870163416215420477434654015772944396297291039817905044066529340763944544772783833812316919136550560082574967292568426209859137646765697551571158084640538506131022690611147480906857027529410920736181237922263948347100469670626549529015074301028715578364215697687691151610481856139579111708316926084136605563906541728563790664797552563897518268595994137986665140380944822000079151196939805367203421333541463508755135457969840611038246797468224995664599913236783477942953969964508420769045276231821749352710063434785372935111967317784792580597069605084797812957564808912906302205088586221659712591956312387535763013102361585201137031700073031094594717667930521954983155586078666884080929349733360771921821959123842364759434606614737515456036198721132543055307701394337191394084200665968438795189561566954998835712320969098793552708163313450294100417093166877023982684325547709884710561397744619254443288284332210298424519115183932033069754655669198397271741247726847187631183076469490649504073390073534253482338889631608241514277164850750371719952889434268431755053166015097278741591478609733871903424459898670590916289997833414455653613095010847421425658937890448445504390125966949066450947932712459920520553078465100656183529785968902133857969843748349465736139532558062585716333694816159820109066232441821441322771929647653763810011746121041069182211288005760002011571031485610830795129415071724154844975061448562701373062026670445299014990384356873542561978628376922041501613111542238930425558711832500433508490595712791247103487012452149927674145331996350654219620989959359326528532396109892093117587055877005471089389852174191786791269667124516940607062422646575199146020145016180428111555625748543264623149422485604494375477987144216855073430257079183274671144801802488350450441893564903737888790172456597020864046069945738629091383116494639876363322650473440098000304779737519068368832304748419583025629128519049540373373310162962259804070698843692167312989555989673416214880393789062075396420622122168963646771076289391463529634399873162538481630570362161272478004962534226079561707516231549535832924486128485059280394371158782834814164902939708748356091555507206292162848102951739691933559631195330770883165374778087003179203911741267413828492355691037607424664561126511999962744653530119033189025918200683964373961960976665519742938710286765684151921773182563008712223924102992163139385162706113918888899527400758467634363130506785156301588749357811026687139594413264873032851623396143423528920746703627321899683840315562281654632069495050746789152115979576040584922895726670566746693621481505284615104908117983845582568782032327644436692040239400999016315797696118536496362172376807071312808879516163389079795008808534616318227779457227921602952389593775100282689686354088105953941350145036824583642197935365238852919021521002841173569426921084981471771524131099023298236536774761324724630902381841384756913803791342911863814081624081689634706559817484414386190788385698501514128987041306115923729818267953539520165655157406219697522226460260928592710040877116213584324514496554057333406849356984538896134290877640947399641961969240161783424875889787112698264242162507303837454153350300881334143062835539292404882650146147103943765358417487873385373509197413605694936335939363035197672074488487740950672549266516256684754258675242315902215806523865116764802150561832550668831773753801594999184740796747240700151335671635581084490915190712632979607637569772242148930717491456863074237733975546673351503913305175126661260818869919283587356718671048701451236376586906767843045078534157126797370978539340238337087916948175536615747532216628931560481176668676686585824734041148176943997176727026296860507284535660390952151337156020896279091450967184865613066414826390950097321226586342444463360810021189501060980515442229239946198901127442035309096354065178448015322079708935765863797929506919973459212079895909532858328586528300677461187238757446866380752698954680635980550936457958297436395941391707041784391823464841990185246332450778535936042067545939613724735167150593220964495632628363735157528394960823095277440800481676129469698501364752585679588684239266994133175719933145760280365092736377938863766505876095231567375981166216811730298302402516970248538703096608223786394623866520278247343227462614204219949489510387083405266345480666163268497524087800379718980843635215178992620268732365232399753185036149231163304450468923921732597659385000213400799466350932583033563476813278919171078660462176160153840467353696419787729767585422186722945366504353737529655533540246222545065133779625879321081986661946249484979843860507738897116407588849174946472674677912591096707973084967346795099152366332096595875317278573880821956299561422480229101325977503920979688451524042298045015881593277578760603803395791250159191558400103555914894906543579012109830218420166187114139268824364992363448281401642030389177347153336145671397700679295487283699080930758653899734687790191401467276742382662543078644848113056925211261385298859469717021311147447983627416542345308650559574817057549524117724247235595719578596228448652752226098046176772031428920681941012683793753052204787820370851300714875471369752730346604263622892826261487529484403841481233609971380641086944617869999722545449061457947443957988088328810288951037303787554230208823381027600820377662149501465881201058455425537494839915486636587284103448248664183278703104454543595360790377234969138405840218195720937570287488326312755256254137368806466234437815955976874628447975855282175532066664597611356432925051145436777752648643728667101351910646544890860011747674599739713051970972150456151035644161580062636537920470785834559847754615874018632007579758490863124014161120209799081436570262772348719679002973615052042043429844976890107533043946843633388571463922060205390967559297495407964211334245951750689225196032324654064785616476363575088930478690849218836851019611803481294254291987075485406647722542943544071871468790305621022362553935002106784832219699647620338538867085937207955657919356703342390993476374121307407131684354494312980817825156860886132123560556955280579721579682286656237692970410408972646389285351080657051872133923269607205592536244782081267190987028903801718828052572793622250404702526296136777243908331344891786993511684647620403912347286280749215527051810309793352909300474298544456647861301805615554740370174848164226178663394941351582563183930269141052191184869483174080100328973217331744431421985474336402663747799231406005125868999984372323715774256922817194907592603867971339062541973267470367611481115269096011626158223639811028324167655331160890868324970157195545968293333767925002740836267258849781205812402594167398155196547896485327835233823201246266013053037607925722505450731774117730768411840337160677009595040520542610765501294025253970830508324573945856000812582806549402368201049463420078054262620171302602820831440612073608806808637002849488033758814674758975029338776272956197701376186776110029298243797013679458086321322084294423929056902062712761562054448721851173824789433885897226275786275044392624098248161373037329102697973912234198665464788551101667619465011538785155293612676135531340383292120551519166614133656459237738607892563792586799218237777141308005163681442125944462400407358563743339955029959377179714826292425439566860937102344055124347935224668804460324431845758808867274161135417080251734095786605717943100905122848767800731779498165676511622496706827898182471433068845704440885957118352421084753283972430225286264130910950465999479050676843289772102026682775849579032569418565533137837275767035044518031440323104290532526432944199009779935921977810199358868626590943219160629480477804937350927029504000587626465070428149085704707174660700638263348456942206048872528825133605261952338497509592129672440358067575979737945506272256946043806052756611440819319079758857252242858216550825294880795189916613538244374147091514218241488875333415568407701804466062675731712838855106420925387518258187354563413915771677448099287373932130644656886045053793035661637513540920588281091981763069838665084797914862424855724365301156915529686521174160447819421742971989269298018038369200781640385570693754828290244203430596698814020624226133577011486209281885988548587445174243445458597127759203891094684102357619649908766983140495789913015093497280989646330709465217201590904740900898877559944839881368492638767365411735384410999553850755212908161595514381395933433751488127700747432632688662382581282377002986315275732605328222967085912857045364417462281083898214940305830725837907115846040135905249614554063128164221801223839935445367696264830822688349223505275806275294209329938915349997586908621373105942624546798099570281736754462722941219205880178324961105373136230796337856764724716151280904728692824555362018110181969619738864692120141437843389269318663539506203250927047621640349730142445898569575788119102709194308655537780532770109605845102911056215003859178862492613705987684475355000551582507904576025891473466768552703581724447453988934415418214671435695384087824803980267016820283695045691153243008325908690779772175020283055767387338498164838084030746440731044518597760132941679988354896427420930286740326267546436909006772899604468036039761787738194034088800502394970498959383256492632524679781927337488064354317527654332524473042149966691646727848337046773695291501158024285790397394926817350146564303725602980921844306411489245941797656873978069583424207677073518172368673036332366664787816206260686410310419130193750399673538331029673216782281699566125238667504533282197737042229853513761670281887823688257275242248701881432052784172032286290281410201352353481499930067759346684874954239010209832136682765111581939893597194525368863599586533099940379218854099443447914608834838179697238333799347879080533024469620195063187015622992905391486926793163549192976344983334539778846349439578471708403706756716411143065897902662551268383677213610491692722216142412482120188874784029228387990886516626632312499495244013233320447492489805752718522520217756566652927048280948224295662352471009030899333904370486062867635850000445895470603132420997666435007424338081893346808287131664749947323839911807006139740177982910492082186027480843651816814109032826198899990151916562520895664061764815617808809918151918040284044678048576531249531237563235432978617192744899728601961770357923076007323420981450781612022112473175556864304700687829521676929773751917055317499470193663073984055143356267210137040795050488351383735367165357149156351234390584085942168297067996667712051043237894382026319194352674043730530537964459192940879386690142844899764878652461698271817124994365366430632359968514498818694111680047526128903175314369669614585080132038666851286065109992690057633910297455123924383001460211963768328270638803650963715487897491321130978413824806004014192039406963008321670577382248687875493646288787865930046855719824055558759390560639976346193925578882287004230390166309616143583148885849853899589966109493210998159286844529859616638188972714285091138344197580696418510491764190317340428183682058206630408447686871363969079565832047828399624649216923150088635766296543652218210554520502120629660327068747335465258278822349463687978422324567319341188994978831648997098050002774690067847835344467362272169858759226486584561231588189281791448368476700173034156660336078060309690680391699740179250138626683711115212645969698131603815504459451144178338964759252405789472068822505031168296567786290597181791958789391756469072763664093774925932876796588433911654494915114403163302943652959860048932641985086802648607811731551798143162730071402718465073671377282595741235650294858762797525611121364054052464876742926294706712323291040987834866401634450688077986072686045331883535735894344548150453760900193440324023803385643583566518873015772692325703732869331684424393430758705508160757502027661615768373521589141039885760929118637999345169910310416484156207628841148998285579559529194670804524874518450175288528718312365921504552897276514552391020413575881912457654120320764457605931253581329796665246420967158104453074741887303776647159209272061305965747516564136623408008062101819653254265000232836430498360224744383995701838455848256621904764553075959469316999048718320623455507078070035044249499552285520622075022613152676149642741992515488413588579668801771124422363220691476896215956079199124776392675474059985395538143456560145539946453772476175358742321103053675117111089898292682530423245644259652652792920479551996133106475512014728364313961619385743059231719329668865590508695215546010271068537800644198635309507435204019990626178473766809668875363929818668942134179812747244366270016790805403546416942602352991811083324096371098632767799539742237417489292074132253619765029773146907987696019266502182296098028186566151830673321058388228938256688705701322757272833429209930585146819932403408746616460153468346241156007947175926476480853708718337788657685672221277404917463336442434163892378894317060840221575058586271758884670857851510719798728731707723897888135578423378799293354111379272015888878920455346384689717359524413191071360971056965843140169481312818199743045664479995357103269314969028502556694762870515783483172566153156852883510050850088580786070009515083010133873820105891688156822977809672588837793798177828341544612090945228815516153833086059670176167832146473434442795325111593426604904428379861223116888101617082605156767470787199028369125281659168191745958321502064577387163333730460760888008724663894828573627793330968771164416186636492349262132489245024137012381477503503464771403538511040773529070530411828175770821334118250790230454041260653263103801533809466235216418087193389807142570917321632287063158458169365533866410658584563076906721811541752092978491151547398603797627679293623744795476239278732289129952624938271176994819465732441247017937056767860274911540252612554481180145705375149965798384064658782206313016973159695235418652236356274529435544346358631568355722472003309098761919165127260096864036802226474140248224049326556380626635489368783422389912815828658290594811502253722384736493555761050931022811907514699424211113922702465062288249206885583677289125840902969436419476716546138959706218388131670653732823258805385168745142940905974198042007632311486282859816357129555217202849652699959224974642864831271143059244407812829862312626891366355516233347335419684114228175270862450267031236189633173667902848726168644512798096787774124999808981152300043490677362021181331958870355649491200135887458365628719616934555343873370046932946538878826222400447617091449000821106437881298720469068272815434079649831904460544888008667058056483243532585849087308220914236709162225544022580143437559764964774483448682902184053615570802439220232509013610812834053821755014385562238401629492861481663712686285142311221156292950726267558246662641104262049888184189477300605881724598820894487448179392347585203025689243696851571983216637539098731430074064675729027501950510045942048969008474168792409590642476435427912744024468825087142194925291098192619833069068549149970420592007949687848168921215772731736389134653221246905711984187171495543891185780725910431607311882946692044154825996447305197852982820773502914056491227850551365628380387382380229043806451480420241316067195004136569607642530928575960601782604675996037150093116615306678818556507593098947189369257964658397619502174842239385105068711909591790701761146145301825799735512900912881253149169929844619943108295232848315909357658926745767169903517861730862572306157376330781139420758371886965487076703025088046007423723495876125077511859334903837701274783526594949130762311988951055968764057708932748689537663165925391393475650166514984146012497053536953295855664085654124961627489679981650823362395080496825218919256757555112592015017687719762689652809961724827338230823677398652997063627547952526303322367597057224273243511541110758942264129096147525218685534978275298777168488270409822038485441696550216019659436164089298245149605843073792059703568231362529195922191252314513653306807192766324505921804729838898823187052801535036379928215195174078811883625053334862225881013775318660783669776264632569439706168390734633354553070927834711381487386200522094895050192310835344085801313913981702207918227442254058021105417526833070474367824301765346181531617910878109104384847946544700459888247082872506847823916547336306626787797948366184441620928530275436599495894277774589433373282175440989486237375600840716324061770052243826124644107712045021066592260323607969926416699687615965544517368337396413284135087021366829808838519227018493595912473236054082462916666306548543113141253651886238507813457362698883609374215811025733248422061976613477584853580192467134836147967242125299080429940033724722685175227073517369460826312996865743603692953032849175761453638103430942984319875480348941334523941810977646605617585385353171467184913913786445587382990069263477550711474817937360576301103862081860817983902163259596193465823046515529749043623368130970564543082183002293304423744589722239754284837667673197236595411903153371118325575413226782883920315263972283094362783642783345478567725701437689367038730738196421052905777262757463634341634216031682297776131417404803897103808677617236438154020018868538203494393038142617865109496050330271624122653642266768180442049827072014479203492780887777533292520912176595174171100984548879450206714868451373950528004875559805821061570934427071486948320335499348142904898020503902513085104415251404798983007495691403919354646078791070111444402208240600147933603714562633291431786259199175973998417636336597064812244774172093490647146042927986029647089393307272344609456990671983559198065549422315174194771198686715179545444941263542804603257449943639438962371656080725787492630451714632591202554239974028081680033475302298921415187592825624752799289148829882183470465869580523308338632650985434679393112048277849395451112574055018580282015016504459277445896565012081874977747752583096026548384106469949574406366898684559968390090486165171921109207947775660474347671413497815848760195247444094329942666961150358977057275590618495451087149567513064673535682322197280511996654034828996988609338864232892344781269892269839143857228789481725840490488774308720341444814321711507441644974296674157441347354146829815238883538908290582901334323669709300271317331469904176436289118887497170224731148968294065053150909482424397261474878140259941616972161858557688896547016832135752008662505877169518275719782087281769346446470709761535978598220125766463205474418786154959378124297026963034101285176828153595502641463837800896757840127355385931078966155448964795664263541545587939626511782403322842155901288594957092379416231017752908852870863879973568565521978115855428557953674954296959357546516578714234835047299747142770857204729108695684730093387101363896503061082731415578575356547052708033026907169513124144407375876846909108000114237513452135996886639869623175687253765623214259924140087458630835419841596805601355421161528057717975488111344625934977167559101408846877914374188424665756154472918698316356915789314610126090624587087409269432646608140570437011441120298312178290438445648877344203985256454621934990826804250829015934266734683527268399135226531571957953375115533217715595441450291910334836959918281521352532627325653213364241219120573281776230504780887853859521640220988156436655225306792980399982779701359702398669157505495335962490238934523335482660498101098768782676514664125651858648996866714657035417778258428979901086907560671675340004479694865659840403352542690673259779425742240194482263056763051434148970197323492190073109821902834010302862832386524067298712991723242373564290929076906738724503680264848101565974550076664082870060235188695759639572553057244545285045160185736021392448370264153014938188347919229072756826248419906810078226200850668283779779971958792584884989441189993598211662079231961261113324430281147268361039397000768719969033453654407804842747366704980255434356618318444671019818226757887090486803144868680264389110156426865321491398965618457566838699116750405295811420058639697363621597668714152395496519191773368751353888865146793959225143393694458108688978714851696159180908713126461175579928755238721565665166327205502444466352080517513515873187757125383619135553136397975497000878201068153196893090937770961244351174415252896062113113618467962349021010962837572584513699985627467069520820550041210084946968724305591331035777535663467608968247105902300442107088570608894062948241626955080733590345577443267592888817266218304202194916793431781477041464180165952982150193447863523992332328163344299037373295050183218768697217661291048930026360124385462544325354704012981195316197580549795751326974361371005257454793200437870965915736588981758860706913369709079840463753280002566634945668751501324987911582707114625395193086127061795263240146541157234259930297079954215584252231224784996946263179558064724319075186638362372519750670883195808824158838277212029482070608996556837561958009590727586960909936978822340511980733749040228141328711165562485814879019749639749433706085070583528450114963132839930907570304388979130451976594154706510738724711703026368693746531582372009469738962167470874431559354368457769152540708866219051233350362990265466036483882128849225343132071863243304675665307848768318577272751448081738286657135142487504106063334282604640763759744257257405000043652186843984311321835294202443961597678322314913521267026740218720615606807032202740155853791477512057042296664215491181376489218978969315545451706871014809855815999940935136781084073756374007451390312518063735992103949405934673522496631400253814269960986831886741048135116538413204053008769781211617183564842033693099815134823226668036453022136797648327176869179734015761808144585349795001085361343489974529495875204154672112449894738349652107763413426485815917326391764347535953768227251171026561565129706646675361319309835485538964546291707156735528725128749349195031147766589185625663034208333133447478147582725249189738863044898620564211291744084962296354306099981556513982066543172573873657004295107357615370961576994906395836323452500979187958734469858734515697747072172874016940906639415122885090599748601260607178204282681673344687363270993125420957603606236361283179707307636547918845356630485193877487752182273377701107294723382950432568824409074891541689331291751714207908336861829077160133671338908272416671131261925000943674867358009273393873457145354719215421783832209116731455364716829003966558327195774773951645278363851717569761012953293264483092117300942199285738432105325492868344499359944414900556352212644294670379432853452226972850947578950269060899811657725137200293880616283223070526350680012464945529383670710984980284220194421994796494420974055814137752014487691492813348456235590636245251342370550043456706401557175960748657098259733271100696937110394647452675388208430009153689931161236630340872013319440141576826241744475341624719419040921811574335458500912435036489909078977223204321962008403450558188688562103319688511172965075347068883775149119544663987444294959902917098892083027349982568459106988319024286654250046137923691441347582252716546116366142546196547863615200030627711811586872330600589880344660862820515631628955815528824246743983895852986466641183887062099415316900308527402479944882865682336160622186388800616582030497021633414716842717480599318384354771374104520315651881139341095525337363474929165822833844927081813630751782041880168735485244823302079395600568813504737806133050222176474613141519153017383019082429784826051980370013210161275085226060964589857054504150642907101718497316419473516602001566515794233076019208687251106633943974180048349945141797621586224616175972945907310122902470785537472538633253110592483861427858582599231455692512020307596517204963201825267465498358573625442658220852353757013211425617304336644976335465972483271672165773932747659968355123842200160467461410055900635111109092109815862104316616488860614675208327087112648608564453689881156279482197915291414141234118782895127761011495235954838151802659473137460055210986950425108370072663571120362484387025652984946066238191646891805902417233026932808178213147812330430202775653898195340798778778035846210928802651579447326447553373775907167500251332988538385580485533076238327490677691527306346918975546165522875923198379350072476953368979581454082823994299438333885047262351124998826644471248443465332837344351051780904214914465972444862723107559533576905185707572852952746979240316303491529242351466113983326242179984017047367690305586610522918085304734931810046677021032565709702303403220527980563665669148197188676225950496854915038672469252286706696768799538030039385018628974100467290225336639062174326695991932485746029439804690532067331671613050987147536631908353537167938768662497922263863939135729851769404113326676430565757372941855410903156717216253814031123118991515119863179380681765219161960178052417622684324537322588970679493673032653882754096469526274742367689281268389340767711733459451763595270351513621983013171202110023802612999216841924061153450514687140647136097110179316881015706916664541324518311437129418477173957882808710102775126897553653837077267602933794243183879160162544392943614782392722777261930728560618646072422024305738665812551307469255482970055785642227255846488204854517779008121292928351209980081241866481639875592921810398337508879436372254222098678036948885205640388248490530755170807218533800836536828532637363449669602449874699730432579024201716710306342438104256367968561696351285428733486734304576948541229036467602784871406530629472957576930083533894258759561707563233095149979146596821483477236061253071717141318558353273846064530314137771021188270776268030376683938007721919661135681153823833673383416910109731149943556516841385192138316664862357240900097632447492469252569665053278062259072807783661295894494805828879831299666059268806017427724768832800857346369450525978583662134101769516151684419180878369284158753558764460684575665889675833807885713301531047467564466914080017106501188750919343477403571472818989636438230000887565630897446325309626884160892292606217521837149675970278298655012095421328459098152235685207490004316230733790736491081832197316171138673189344935201448657676161452846108319287642684995041281567683313820616541311706031988697917888983700982382342840404275453003493209495285439939924014994091343756476745331076816865657227167040513059065383684348021864012200592751013859834774692905705938306415675379797360419632639102304775565860085595717781262160918169601504540331066555010610587309220530939720789061801796538640000526926674685021563772576715491783279056592649450347575236890679938090181993528923681612101994052280761990382829264816855773124620028817771817169034200050766826226346696756571804515339172543334476901892154465993876293653411555189734227669940471981719899293690949730647774109279697533070412725855223448011415566735205459336008769961617914695090433953165778998776513555215933597085365253900748095331138254453647779342961998730367207460556508009785278521743348869252146661628391558372145991645066830221660260435235037231116741469344837613816083114237577795010675673794487991096188383654881531069013601499960138326102183045199856522593284991081322663497647925638076379871719962394773617553378023741077981484881891611136869810255888830331463298723967101835177214925600687904192269961714455141949745523462124012359322360451161454861409810826038884359941166757322065526794137680022391836309059265997620007648335024221475177295204417696958032386216303625333355363850908823412584868064377701552527966792659712831479848363436827541833078864594701748462137743116275499262193731036228897555136561056182853228959317169044328442338872727911104162469350463804123161776240442321178519471954779397082045748277668496514191918983477343496175494641798930471658677949994870018328194153738148977504827266314481248378794281076890909127206383387844165250190970087733256359091141863648198083931938772853645589306271131787569410728550917605977376055269785407843364187807769435816844164391036209751507903654548508804800159069564311706126253847167458819923347396231294995717961339301746286232757059810388735865634689154918083253261955550590947102558251516292551067370300618706286544560345631970482023836308802563471235697485515039063576434966495534024471025694531610910369786805739906868052327846582388733175357906871445476078062375443233776784540487013821124396091110865827918850510109990104055237598488842613371408894166118761262074181503967353314755859758029445401689530511085657653734825429802594565132771869510016004295036637039689928418421468457750672547826472509340435538609556745728025773728942075444834815050602907330401301290845136842898255478915816257974651394214000787878976399982935288538430598819416043191223367326188855376527051616991823412051510760736960012180248743195259750389367451300199884625396598824167489989867267050364266246127926821293093149025481962309619228182357124120563104455475024851384197171069213123317918467038022707093655623342533340929886603304416568126379630576239217816878030051364505333203537693852471178409347365195994323616339048922108803499231955740516661503044781498958447560550294738491917651290534094427703177864270144153589822843800853718344503294820950395284905281705385648032484195575836535379453215930021755452029183542652844397220427224813681077916632225594736023099884713303442835208433905777838549624509418079744994577804582615115908131444968069756247211089708973373185730567895073692756401108912913020285330986198870127573584516941586032754323336962866287127640194694503335304480270478339867570439262247780487505815235161472550838201842326487409398475323734980118742357185929824000300571729629246592816927592665496299627065754455165045263677974649553192099179937469251831726521729240181555616741732808973314904981773759963966639502692587960797566311612906535087686061942881516710271222535514542062187841622445950194297849225280778112533282382749368177419947228933140089326659873638479293282772257291437269226314575103325781980845515356671639053756613040879348651137561559407684557662077945130266279860281457908869510249331981582641450360342588273378521079592385963414393182401020041399242398630226548987282621652795131997034825174977537200326514991400080070735214485839259311595898834604038773603950573355151922545714813031651069150588709553567926579718300856063645826975528187916646172772416981851265460489475322219023489048439991114043820820871455574617387261661734387409592324619567846545837072898034755809515276312840000594333512866285773995481819448127054020704837415155719325134474439496236942220598041742915964048519424456805182616891903907170382997977837176034942757195524605533729989836704533739149081052770028832270333582733856492110569026791670200120319900926954839599251602475216365527155872054467287876638013978106969771678957149864736632139708302184747401961016488307174007809401593666072819353558050436895387762686407815360315675299258982965415768771556565575144676476286438079333441924612381470191365770792041281001136962662611010789550277251598425345698404621478479340920615436706297006383808976763275566146859268870402226506553851288022088116659754120470626308463882316966212851539621818017339341972747970240483403585794659944351406714345036686434587315347571828130454575814521521202219663256798454981990506809918471226885658660740942301603085218381674683235348647395356329812966505918683743125157759547302393015602472308576753085500721852036164969450206566540858870857553076596031653972842833505254489116394322171524753283083992391805318803234822010715895421212107530252661568315181991554288007453951890041645997153683720902769481889358539724840965152077349738962656453996790765216837098106545244715672898735070640891279090427609012879503356340633430529720531916686875189373401625731921964389915118627955436891533989207681349934851173049323250902592246705618249280072237004793335771680770516508514350962085941611042499303702602637661623294402570594542542462703212838595693011753115988763627114583414787030543581807278047318528482151237093747146617622990502879488010069918137069422113586829164468956601420177620445099806105795935167779251257935560302908389125253292578010970868983139998556587379711104003188564578142702289458094520841450521083633076000385704374390446976482523921307703934223383084306222104768402484739453363936968126015181974114698188058615623335096066178756741436855998918603529421661738473769667257703099347903037389640331828837547245052712954801410919791079435704783372088264275785369968378664793187170566081460187448605742846881979590415125856418263309448831142845682032434198001944075500117125083480847336665672440688689743241752792971037368902073709423638578808937487840950200105163654201638829159284883793847483840395282120079673443849864972357581527800189057406415942307656141829658043519113957075328474760431895390863221241579820001889096952377072086865286440563686503058485071468707740495823401949767719499884520416576329313830899362685446988799927875995933533421719443894213628837554224375061013668384995060749469513185486763139826732543574615299216330214407471300066054762782150420953163013947724840022518581354823171842903137413466148802485347954364245259958088795510223885003136795350579337675301124896355856003585842881150788169422467727550702837706440540366959512697583910158986869064649099892409926668512366391075656442139685140595943494298560097948993174326595361437412708018328178492936116741695709057884441310695863528453585367740646684060885858894282839210213949616214200556359892915651372832107590038754978836426550821728493035548180095633998353840338441821456634937591991711000266042786146528348516206478163965256054551554187803204979161536514911157264257881051960702984939388061704967599632698469787098453590165791142617868715852989199208088872381895701768405674770018650565457767637997194496985691694730940789796976296059143410546513741843781453456380777028841893825770947501173239298882133842133302195426675521997656620706880446757724411159516059281386815280506521303640322708464761276972094227795959153725856275017190930054179522020981932671540428198198609203057368080335719046326643968894895746758465999654239217102991766915075599823879935957660225436926038877264757229379661497083726705957424720715150631246810998199633901342324721811593231046187776123244174390114548969446295503929447717213887743189715738852556204084827744603333928263303212090252121702952841691738051238754081542645966276707069195584994596093402644978797157111022416623420491055730602129597206515283157239415531325223709265316489444312687292770413443043898212675078350578386772307192124383804634908838514056898970097976703741435921006201649647300152034817228885756011210464584587136461637994032541447516627116366396633571599060257954156405645143861637653630369835406312038155145286592973275924053508844837406326603379185547004843979118166034532935327906314979263602289040997925754559753247268873662305151195349596209009068652128581078742358865078205611088952599029492609165112368627400948545662482124349396940262265235702491576582236360137340161010009659298585403851307288978962855496371546708554951884836970954091177664487364627796311456303590130697952406537104109308911183116443120920699354266796678128222697273042956230954386474903757427386218496293038252493313768501843106697359320324499324318553810921885708486543768894891609862761873515669850178748099931360837837860754351062613000942701736513827510835820426333653482976602212540904958987640285923443990737784675134523565823929145084524563492950339204063567736391841168412839715034865306036680678414544417336925976136006495227817306226125138198613691470743559914016116894604355158269964996512507282502617919738896002850456346990104540967663855433310657073984378683273582405181548947806265291515164886906150919071828495706574983670821301549604748975933053137336824322874816910131701371252607459706665830866069985218725410329174501743164834826382859235671834857446026668816793951225358152373536702659269596170121615753537003107541732025828550033269102849843553059052986002765784690984114007357764075952575797082444898842453637020195754141273796312970703571768343339357088692345466787441062402202966516971864452191833269690326385004540902429111001845850967429513031304151019787586333191436012923296274876902503449464161660303238395271691764366430820626205132929717213574080744415094629537327719368064404246312665162055876709787684715359301944015440164434125984967943153011429988987761209728585710136614389865616805261904730498144349576925914792193298254767352667060543237727487830424822202787317030220740381175710295228864070787977394188094464667545010473010003947806425613575176336786780066804784981727618696299878319277963467112779370869435010029748632215425412762534819672485155764358720588153655673515841082496893400302555881421709256226786311116348157353888428254778620632440337654709811038611971199970087636216204745786887721425919277230508559455623819577129911931521766261713526942922676583026767534802742446848754389018429519228233308538880277472816293457727525510646747739109390175445494349427139070866964241802483206825674064249010027343923618820348369693295139616440376287584796743112008647063651362720359903153837498724571506592188607091971748406358602082197411342422762490393703066145697575864776505791938317899192249606436941899229776694583194698193285618211068650548728686397619411703154944678896121861582799608071869641308773559428093021496690431409812714837531040223792089065085390720444492044251597200261130312946509540851147980782236947850429617317093887579163728148872400462953942897291456854006944043713296029608942056827747637981767610662828266132616489807314259518648980719384840808344090555072250893828875688311657052410508534918952690441575286251917097796869403337661234704045266631711569549707533752773109144942910959117485728204445869112975786656387799665327878042590518834209654772725309099576323840902892363473884005971971029632908822886391945257395491382350022757831500673166991968293553467007050643916856641033169871239362871664147953534007230105413591741269430141512248223700392792424835066398729028402522961229530699688713888862102022896583453017953718512284308878220743171862401056973738247208123285479407141757874085605647023200808314878419767501158868662573886656330629433986970546340367611965472339514122813880123534274855475539081358596838217164508694750568802659779767056100010607527974748859211896130125052945824016930546354425122286666458167559247333177422980675006263846834092987165880261780317640811963024127304358153859564210415838792496581587840307771120799868945737398102667380120294067588901909700597861524067522957847158350877456957147622465960225877070199098415543481530609273318681464537354387521428946324616675690766618706614117587925029668534667190138206331938774299357172726645403174660066536095818372233426451033777587315258416792146275471229294155766027899681043324882128730736273010661711139964740381338238409611761673068500600186922351571321323267151928178035365804368821974315411052030729379307985324066223459893100712733840319181858192770683809601222302496529999130189030267042327385944919792674232062725392987130049936923916665640659607568527509704650048358382470848892024727455894251043261292903075420073570101036774424537306793140839943217933848829746429258733148764742335799226032839862440232070158886270327055966782542929465530890799164932518246814850813562126706983935011330457123701485132542438143910630771794585178215987077170519861223537526511060910003798448655864435003441504745754151795135975449830621001958886061532888343263978073770334370820764376642939289153882690589885040651759161184695104588440194025219207214618991900334572112481241260580306235892237882728305836107968522823137663910529818661037042890394926183678815743821877288356050652318317968291024506959319820975450246002338021032177934749835128072416801290863659136611861340957452074483253015829763951684314366085572326576010877600651182030722698209149634749816174147131935264849162355346868524154998958485060425945281920952636965990842615786042404535904161517467269191604361631492725351198621235519245763367432929079146077557433634632042790509499125620513439835904482752469404334476957783406791038297208029281997706616866711510799843977404881691464416072863375000835964350495980725111186433937070170619285585383297836931356502168382960683215316920886672052402180323918828439340090503517256446148089037369645053929686474046884432365773116669405146322027095190998321553057204980033027972956142117516645527613000415112218842498860813521844888283211366362172171960497409116112992071025901778187079883756468716060225829965320133546782449075066931673672645084581460075256640541529827684415574780574664796057711239230406062831729677162600504603975666958871447694798253592030747756736242451825757639056004840485967071125477661898843315016798012538428157880977113577004853631872316585499047268693199752599752651332134232149480889302937977191924106798873792711041564875220250259154793241502791245185657038893534622854647295817472576588007340950535265066369579177569663316620996495323144190211515664171979101083326900160905042105462184965179797495399603255108846241257517866108447486297056660331861571385717643683286771530510774951363410416964286687620410013083726806870530834501323565347156824628632635356257666472373989297736420464741317672204055161311290405632665449109058201439073608815139607703306219660528016358847513144127759593708329789354355269554746771077990245864130089049019402275295297949499841050857248877002708709519213321361058958609683261915774710914832181410657645105926270928734841806596255965647155914279119513976411589269430820199214685081858390088679889572714814995530602103605819202202870136596567422482989113424414399982673280570755599215102638843334371798467026858768174585372988970051956128162143652128340527062424200538523970196427897426242432528217196380150719031266103979553745875433335370161496014609226473895333710056869411802702011285708657771768517180398405376584795512080529979354367251200676726335751504484528765140957731684533628466772370789158747070527685369781538167390391657262265244646658261125026602189212029433088580300198779472752099589553021288611094014148224534605874928937583498926077798410751655035367343312200968492670381916977539231257747404526276006000980789294427635027992522467587556775813598027904257744858252560835792207009494088417276475356829128047372451669362736349677549858486781443996083491621415194693421923789618065655119504822651270885177116234766950054259903265602799104958138157669547419120389954234640687406603095703497535572544526224927083776134300711898200446460391492953533482611192654056281086131017978492583157035578355532466943111751553910789455184711044113283459197812010009566517458740723397073158055987837957653257324975339570240871632499158283027479794471067497833581087508181032806258431178558634607037460637337972849564075583658434167562171172527111416578095666010636917153755101138606113279555614229965645294259601448179186249263004457069192225255202218107957404327889160437866075958307513402652808980359373917589899768355331792556918120259803560683958781282827413194302002897943233747193946973306733997075312048524751936881263677346584802018542769167393530581828137813807242761017354725871901214337594592878471156309935528011987644304825425308643317863487850333934750066430810764970894661142505343810239841162663667589707407056982114394888822261485946309381280543170258001199660540037223570384759732037264211428978061988445719277447654916145874889081485936005134758950699095588779887674836658752447083500925283254465536385910630900741929210955026413592491122947794735347891725497016836451409592771616943194194149358257263383998645163362683458070990639443326202909656983661571069075107112784060803243358170794555023997286012736604490691769476737660146017713320400471325459236630322331861252569909630323599302424348195360757578485390308874827172955889208905924774936124724070239607014128049155005922765223664163202042687537166387633234590209605214950847592875969626827434094669204421415840449493084605270402542229782039514830954214979686171668960913523054260838334976373497376621862569124135294124945351065805453675240352861082700277430453305701814476800364418146705262088999779467988982647336137575064273374598139348660940565530453972915141466347961373428829260648930363562071193992906792541016902267816294540727863714465668258655687175026522275737120105052009991188702968337458436137869992083526293234541085986401006831426610236932239967100241739180097738444819398672362432470621402614330877192062789589444301468105622647057771391281432732328417885456697496151731822933139529769198757082294696416759177172665300217777414259334941579057829172454499703868296054051025168409237093970094497711299521711529681964717759509678427471699879285254075373728871340987196479277899474900609233541787885510927824982353816902568091483208542798451459330788587919551332445801257661986847281243857928066170662379330184084298275504299433211572579061492061579383168774000698005986576502507270295101634783371278721900361276170732003176212472210298194780686501964089863597181889123903385999160864672549343847302840443654906149621633567326820589648770353637590861184105279535679970085059994265829458954476048091035525223606609580982985990769228800313474692960288908292074709192560746827545584218315600684522294976522275937192388238857870173284751955618000363315586841448766238137874885422799413090942323306085278188085096815454215548253192635011942164137545204450495792111122454983087823405141195584276274685468278369295914532814955792731833930459548845727037891599656818085258599662030349484009892897710488586720445876687224547632413272275509803723645549739609506297446705357881331498528034892769775418569896586527419910749861542785247517489213920337778748393865409759053253633193382348788185901963710787918862291523890852799452678049034389722524586778167774173958518177089761307894869333558663931700319896791755838833327981220622175439207722552022900635193375317913450539445690878165795836475420474312985936795315177408533431265006289835387619549352906688868726469374669160586951680684022976172837385172314073524099193483749163315377380990861406850101763751430241799519458719873928980732057348772206459474317120038799660001644192070862090979286350634335674339328036540386282205256994183909365679184363595626615835612732986633678992657427642124954050944547816290903822662023480486718144289620783266435827654761743693995842513356408893240884066633703662086535231736777859228304851547960553683287058101912129264055895949762417877502637150264207874494691387982256810365190413278283879258641222342342801611713689381786058789481542722228275570309444440766330250191507365590826080416174913115400091316514095507472942662986238742931987369421444873232214054521655883088241104817220075378548270733708471919997065952804724766516040711868766137712106366872710132270340772979096933527100610254893845644972264598070491324189004308117597201298672136668854307448205960825883331716760254251242778881339913769051758679995507174816582006684684453894825037828913075910486507091235544157152002056258533923972070328184073055735812930038094768149213141360591146002375449093557803593421896303033652574230935116219560227339008735509007945990742035155194154590607308400389285874475726409314682688148493396887980315208406119425787358557315530115924293749982387110656825284888267441175761385054534717986618122713999793631704060816911866507505113170150108345455323163454911265899247098578777526938453501247558529127366982909071199179636809819568590519174859142371315376026803036742550063822970874690126181288298739879429016955578706086914889625292095054494050282979703365723915149532884838593942502316477784536062746669675442828108740340313803881887660905795586983542506428953719268130933991012531281434954916859985208079771897605063839377424235562301206147120038449459955952866443787184040172726780910506472051730596706756397239792037684562549458943929048291945905728881750659600084678327694045911083014738930801662338308279405646623442018750465437586788223080834936346326072274944636974984617008525280346095678117286812078956435870179063143359409795070921610602153242795808151242480157663778570890396105906461706458886663727118756018898183561646762104553885807170327852779387089546310263177357975994258220406669521763353821341656445750460825260473169977609776427550424659214095411411040009801943622107435253670341870538807114634541911190681077320134049888421250790749298793060384085817924907710219804906987651916971613889434662093457115228453607760945665269331537854199713913269463008851284033723275992789672541574791407830691502636994818671969706215133097073700202974407273569233331489657885187291266271024021100758096342747731350687507151369999677237581777478080404203464671699725488368460166979633390717067176552206696077558091194137342452629592715016786599134809629512655438752192660266561961763574450875992348667222636791341501384363993027023677345398709295839946179184281115770940892185820562745478840167560903219210950122333800992013543498946831922230005050309586707465692547041180079924786522945370692458946084970205026537544211375061684345431255391862468346447514434736330220226597722544181824861324300061068099139757775560207009080617107399816715646427403419423920380880881787502197807359120401923751624580096291706619970526641942847577178434809510797845372449587285086428720843783712474498307523447025051841321633242195207653541263473306884861079553299641945919763138745514366018457385644382731925875679593891259202923554333078568463000174119530230692193008682754341942261850684218269973130133723110926638842514408088147117366011707710089124495963119834048039514750369519925539905986034849722847653356100384994627142773376440592686368505727751551155013585797530138262111449972583570982246542460186067335441833949015722447211244140201560637163482520773800312068457219016854157536757818783402794540749365679415170603614859078319912931046730950899116262923240438167620205697273130656463889949254914666808188752002673567016908864666290813555991079607313410681011774979368777975415357797266375735400244583746062605355953173313608618738970790963409558621737050688406224700873359990928217564036043168440212112490102865548236234936348317124522251984943694675863826244079280981626436786823580087082256101052611004145763828250882522765129149644540124205788576045104173618348521608681468325495599662032598133717064855145987410164419769144444497626640427637877575008133103793780350975629544488893869133738125950072065368596116383669576022605856922835290143520874386367227988912370480601619668595682647178582190758628879883529572709457027246666093110820059154394003689791513043983076570048651286788629884220970129081419620790515348158952772454912325233730241712596618759981424525538139233611421948062172975501798254742668038158298042192562931199572763610201321110550291725699555622233687721353700419084106350676464880198756509592832362660520117991604097709532516576135353048633660421797391119733796745743563182105258312161835892874365469413069402945427752791073682841979638763381603507066191209768185496778012217092542758048779295085106013772378624609099603351663308460491095929160963336930749738785898358471218314337354764177399797238874708383918486427396843412450654931038300773032192391552953041807613663099234379143746970724969278851669132953261888697318987511561127444252386504085529130204593930655272376388176758941185343815074307063343996694937062813801626643493265837642447870117201938459713034526618031728493361750182546189648140983648700673698096263687808776131568204837740007480379480973837914330758650260533313697531946435758847104058054609709776251790328398827782390389788917535382663172195823651433050553631155436237380774140199257306693394998070587849126780410715004220052468727930561787843592274228664662124710206311397215777480389558309819190705224539268942150762705900417416924131175637815391520262703076516986873166094461311857675457758149988903980032212574536584224291365814829992860961213708442415335473385455879689742136108400924798558616855791108815269682027147449195651740274218159507421062374257575141563678361400954074558825716588842661993248901260209461676814792172746699202822301799699150783418155539575359701842980320755283274684033585710958865653475604899802407927705667719660572629698089355056243262346805659801012575923660138945001097346335782775902194773002410284983987480463109435873023046251771998458196368048105067463536426068500789836254681920261489148941820905466150130774929474925618982248598631015191913485204915022110817372912099977301230574687720403659644094962198005310567367144706413648791054461414236649435506650195032235360251306097347470855281790264240290554808281447226759588107906883549040170714839471440566605283060197203361334040842789488931503935502331270883667505410770643709462626178320229725675934992622924122884940779469830141278483593541411192682271550262923901208358522403849722197634023550141952310799620964004216187829885142718545776735040663458628558901954620597244920425267718326349575027358450619109160628737730062563735271972201114321465011116451465524924812032707526211602687806342089481728228440335741397101549517039367959395047950974949058926437708380884717794417931431370981459982504035438503717187663760109467930183935249958300353825893889448383034739946440505374733944217922785874328561607146350385917206250887711753936371630880158862731653813311818060269751816763482934459781580396745652450611451100882464832182201276755323773100297771631939355421645530989630552449137592345393108546895752263852161990491471680970437103241669817699131411437408154182608455402492307782054985775117766593378846709519584492417706164253782404493482879170974326700251400644506330956524190153957451225067482601628658986921440192932781444943632501073122114209365397462380396860987121249616511394106568863933964928331999550494813486361617344612428576617016023994952395684433111057207205036163594383289264955076484203632538452644377211877243213909395948100707427149733496078048701603501728268535703898869395910091179495996125316781739103784119124614805886987277907497409418922254671594936376994233320798822035482465804742209376716361822771405426106330489734274930850099686653508066683563408617996221399661902283891011583598585908812575644710397434585121321702008840065034183959818797241348037359684310454107541724462812528340308723300855774670741252983516717938523443901523178584972608274649776213692861110540002010726086375087740192530431925691583916281721215610631595522848000581813508117804365226716378393571015428161882616485442225993212052956914543812256762566580466027828767777151645130383629952627072532047070595710306164248040713909804195827028088880691781052037382749547212868974683188737338610904108863733201948547852637764614310544002827301451198928855549454267756437468105148034684843339162970417847497891119574083352392660481568777423784047177658351501297190472931784270525150263228618149114903514735943356372322796372904339622127677911810500247492932082891930128170456579300785601581346521625959544113605223248479106307692074077142502060352220759200088778101118491985829371334981107101779209719195982376812752601312759632714536776102542274405849732504139508840305210254646044370950991314410423046089219953438206668731219917845537500783561236010740038729310558812760958083842274186553363888153952594109443470357957641485586722725424886284033510154819291740105434095874658993465535688336905884775697960073257935345526847395079635614204404785278571311550422657508898073467329915993139459387429600004793088869404296748013277998781432404571170984000507265384566152701325313079745083775274719103161823218121806385602053362225999461371319820562737806657438597890122400107060186676477084915750497266639470347153699524755122380734785776292907493286756088141922727798127370223753974029254121638691332294227155968100756350465215810904660365564402094125388455586864825789980469108061033562553958120799007014861048729957796002089179203792816031093365285647812788614110139843037325121638012461077501750837897043167809323760533128519255883080807851698525806315637076072579871069386455864813256961952148413517965828680953304379165162010774023868363953229841410124569515599252194280940216596482088522622377311148529865738061706638167759014449746423689399080255254315948175036825328578396849493990435816099600564209912116154768675236106610335997036375839230439289173276655164963766929684502013671308012907135941910016004009087888660677899646941907890780707097035221330500445620030442343746993248676645200494353080315480905378061473958667372090726183213607429845616203439742726273576442908629405832589340764121238672538347150798652261172813416677783504940880276945940287752842339253060551683881574063409454435480787050942229350111808863372822286800981338718607620894816891178184040798879511395033129673970452210715055869560146939831587168409827197803666191413418180371320521210940170032247529779359950146389854175548409000604385262008719946259132821820906631220835143338823802524393010959453659524483222639212749825135917304318651172578473462681813884847961798087935539417310913722090846480572858043544199600276071677669508142400662866059801158698819557996494572819390760990830896174923153993735300934997693887690062352209632767923279341611952288017009443998946697873510303976162638363239720399115528232007508131037197642739481154988789298793337164333669681709783198239312549057462691621015223191718539189879403340747032174943738177424387553770925838364010159440411413938467874046286810698323565171698177373308097588984945379291433845964877961726627853986357424434847068500295408944215354239405815935985282967842557241707301727902479293497537110123535235272868955565383916280794781443666962457515845160917764396412490495238708634323107877316402159505750776988391035132901041586078387078583207801018402877085472247552328071324948069651377125899993392471713344871097056070904386416836088497852376988854191485355136312946251527741900417172943612142367547252937169142258889100411405337830642625887380852582641990980722682142261856113531126479537876824098547665172310076968921293369580706221337598778486634691035741604038583760118461754981538129189476385163495572363666361840091982500097053219362020239600984778513260908049455337390081406325449634883334090220457257511838792249655625120697268813903280482194107129766751807039589280768076539351571771335262241188558631154521270024473435467372417250560197539332056532855286494875813447387618806852237513503736251950147434341157559610866359903081330373040337607940095758531105025121731882998700038282890532181851839382712954588498865515470821335438894258538091980931322688317170249469773360896955374449558025910181280367150364030559698892056668036919187705237720268700937426899200088749232663274750819354426369226155127533014882999353186147671976257785151293434143916621297971656506563801270267168154517626548340720455208626973933522748303498528455459070178663070428213841841854902196246352272943305807932337920182179508651055977324073017352284270084527112677212418626213947652660325789279945846400488667194073453314699897165974296435322618684074040829850680476602744165873910426453461141818301634287689026932211174448474702465981422783443845092265774447485959762451389701006189469226419276828966215532686819047742078184474765943328313184601196952472622620323616842333790054819416257030704388410959773766370781597679372760993165844350287393704344842087201205746814104523811829419891647004348804290207236650222368531395297948268904794285373322691779330711724737013411867197512878582939816553891208861581468001903407637235701522455668538318070306157640820180784287158133583402655570938474385886230260870891868877783721333766835225357600729034953220316355185647887729291264178732176020232546772928469201397482089335050239104078424204090525354936771917291054942095500551747526383868757121278159806578291830133701749354901788071718676179018673410293974365856379669418258376208959294868858172475051171544411215439930045400819953853278851265125749067096392447004801526384729546586751080519426771956728497590174014233405333961208796281312332079716344534482200258429557888744545092260267894006631227664039668002376250711760160325141554617579229549490691867613497139819539983367692983414961965264284149051483153814813930397707579220205289441004983773479374349166064759396942914022967424240735244124602720579429816351366903290787920735777441803281930000358388746098719712699509215879338019455662424244216666272991722815012568506132294851361430473899933897442453788501414887852750914928095292544264245908418676099518695576219151609507188530944388580660986239667053267143581385512156252248327481658580485240883592833901654270116238200744523754497597262122881653196296334522583205229994765942732669584631489879105941490065956091393003110053971230678305064531310187486499455116473793747400645322684102858124027183590157907937566812125047907503012382866364981240594097346419692884416113795722642288462439585364620170832962650142902077941129312765600327368635841383742497953908934689334563004064689311074881540844587127770723848991153053485669629011195275225729932127621896847969288612376266084448586567086585281745517752778535218829543599403175693551774117808405860254895375954005687218035073599958255493556879761907822781168020344422983200353764647076243526050768573906237934309886147891011132962108243127109733809948824863166192955795049801227493348199083676223800050254746842396421152259102395899520023413626362502374015332586314574680461452540003247143304222588105052408715605701789071009011242264847928242200812331148979558754529190795905496401463859003151179005134659281523939271888756710803299295103286571611999457695806860039162579359106345482417068937243083750487949392797239856651731937399087072682075160192426513386176751645312397518933931296801040577063884917351615911616713404400433959512801421674359767449339232549466333608658086189205582876734934280796449809248566744958259605376003962144569204423866138598676798663133911666694857811343694849878210888445652202701991736176217833005316833287606211423770160293379660093277635642328964499074661663424119621320160939430819741570319215243263560722401874726701856936198237077782772570583542802353212086203598584467006569645931222798564650844556939626057458208791998623308516030920938891794307309851828286181903563159981352821569904226811719569628667148368670898802197731349214741619082887230419625343204237403209277660997789837660772723448306089040305161290538065973907563203379719596055564714689662657901670516145236859003738818631202872611071902451493443111427106284338898128861817028383454627577692518221602666586277403284171322126022609172921400097571270690914801117772037201130513909422511225197534747385403483622303338145357414816047285089143897663266122349947587530798978703046340140754499657959426857433498454549758345059019736092315978229946946553741810355819147625623664433284988333248534586605746611381105901005318405587668977080492164980974643827441455972452150567723839583340843991322225972128662018583114638291765113603134469693724583963147182580006389974410154744425320524425669034311369799364842856424171396047323970184919801044548739145420580040626646002772872215260769104343721278824468058629662363287320439924813640553068028500696777041505994471096467085678813370694738341139778828175876631755978038257161707667663428271877917828662652213901625557153718935373515556636476574433730355025030271540956683627296598120964255263306486081247450512201496019149601804315364809313753723856223668333131826763048568677916102789173636127862065627800021217769419743361826463855283578106870373228082311099232477824898075752523604024182718090961620139285504055745038940892720037277053223990191392956808613346160538505424354936429765098556855378548246770374598675918385483366137293637736245888951489589674559291861018423794020828862142117853100432341017836315203325716595823072485566876859003372242917112827924058154701226846683746924568899336470526979197764765756869838155968168836644765090818191810115184142196565485121658701393843727965762048755015947022626878153456141116162488680500015538858580873473869713551873830839168891726350945206216796508001729084210984287650411809126140515640745523656116072637638498041571188124776650228873879929205613891230906799765801747543549756011664668103124810360679807095091772025676205174748255027592508469948202447489538046865441570281886846800150066706935955839490492400770887854373301126081829077682787124072102650841335724991193399251859588528457754161118841189807959446881386296036597581798419199373510967992873788324090558272367450242561055544283246421945259505807795284708640552107538642160663212618483734540041647329775758018985286502193277440216310066089383405155166266570455839934555618952925431812502455175972106285683796702081693873416158518021405637345627247148490024324389031558823391647066097752163303371974779442175710372734674880935636706052294134496913945882359392504481500577619266828228561299091992651575301069042122707550092620263151070010029148000548054948997723175643008340280097992412606671929353031319519554802758925081379400231357567508015705182098029059188259233140259114746167629829092329883034157073207778365479687495703296961645004192284823875821142205773831679287985516229132776981417484867002545803559975908203938384873781370412021870109115643071519946858028411139874761230669992932906685347608466921256683725438286342328042977810186775815392019227966686550926781548240117984818156572979155037191494914503402884355674860803151703061380893486836517020548870123504248467910926066753713282612544774974261185748087988015516467888251687015454478850601817451387599752539886581452912563197057784594138266191965749300422611631254884367045263807050450485668684802795686848401047124737008262183334437937338664677858252254609332499335076865269234705777466006957974846211063078818134718211976509556817774096261658660893655934276799847204872154749584779004427518199289356969862409369465786447424404108717536010357426456662781170972783643595588409740226539116635206434501463608596424315453123093901194373243713203321436140044402258698358585549914585013531653097923168823023014309216907700830365735024572116413399729250205717084116035166304100074418415430015924855134444392119283101872973570423415424354607913700178744087930549616721630964905815199472096641031590236181448184006737519391503024715566463244080439758247883377099901281135291048181874345685885681171561329058697973257497536938374124602018961486435346042999040001486854405001956022473580802391180421053676659294863316154432415332227890406504906782101118271198836642151628261974792456461193578404235705308258905153912749345358566851364545769594544814516380408196312414838313924376624266638291398657609362826385727317593133653988207731497747612047654965871332136783877626529731060348364189195645412332206874339789257120024154253925638338793959241430790736559516038815150855538085882593835554473112392137161032380723069387044643308382522731807021744712710767553118434724231486310670738188504962172867225462581136316155668478246175261655878662231216509808082132578978774310676797857899731454762023139300617084467468581042929662849777406216747718370938708982635065878406662020820994723203645670636878975727119457676720202455243063730601059496492288380897575759012965901896442939515717675307156542149301827138538278440227165193285555490137739269909315616343968098698786827803705199876808225141391943648979483248456956329984967350683618709207330891004389478777554507046564390821143470955984342947058775863578990026495147742529309672271938827561215186493624446799452516809940894631279540061192839968176132025051841202385685225665707210917663755894632194677907753103486104781471790651009790956073921183917955624046250023258381771604417342882481789756161692178345322617039504285448143881522318509092553210877918732001817329502606693509260811808410770043022461979788757713452813698391230447578207698368054466896429293772987624566630213009484840313489068426577985491377900822846227770884237132025889619658900638465646039024570575287334754525157922958960548274589066957329610086016538227753917559343775661393641411036107128285505727371783007554109380072483871537299880514042265192178213519429228402747316634369866126583256489625743599884500532782666299172862532863947654224580778040458877385920879198574653970490642181167168451946442764522124382580137743107352027527109459197065957786404970282124012287553904186217782050121864009247634215871725873361087776802766020527974587019664674573783497412514285110243970998482263054199286506367688568841934369324347292398063101951913476491386952986176834952116751430220554499862653733340200310771445219661620649021576159853446474866097233481245705335171248957800795487171852198443992462762922169567334578781221240223495857907981653569154660860312607940445601797815400892105046276887235821042617830423306246268259844400124394536816072067654553990381691439800298194295192257826925220357033774137503833398237324562757648247770927632110590548222253751724201312383563197228066422487644405961669849118911002325071314481063922923194001158808728896806952535385889977931606009615851176422177237512301570898353286987632231859523433501929647435044642437118076497322030965525228164678953862311334686290286894442458422037471763237004029262202962115297646530067632887737617334533220695920726355196202868912347318581782317991177122946923854302801022143160580561163037041964216181105836590285323093466248306929387140594338171693951986689900938947961823223774944634871205312540023161191164998674799416628552438410998972423743691582652788605754919777190974500340800325264153489543514431205716528286152833377374537362755372535108613779613261159968702423981587684043245602601239320316180624686305304541123924297732654611452153812712614648522034239179855351308994984927147206597782927892923711561491702298428179611427058695186292601852882432277209195272281223332769700738710738989128132878883278583624946540479054499248387569644279017944239002451579343787518227799941250152249193296781247698451825482843108343843599413547008109965330765244277102445966059851751539765941295989128928849129406487158341107164418727300603169197438961931272295138751427903237983053309247642801225976914682100985157429254333992748067229313658691442958057322270392208710366352760307915624493250569900721321628819991811466131302216649772795958471594647570400276056149322806447401827620292492816408789109454777396694665278351391044601676317797476512926270462932831602598658911573636065957592742263845917457082816941681490477116646354373960733818924936637393922001655224613620971313333098633002053663740155159013877991631263792087020919369715083436976823348162775277338173677556997068608906058133938443945263389102196289462295619366250527468615063991965040033180261317473757235742261994774350628183534171983568172671754612858843711255597596607505924471768437436813593402947402245500698748749847788264727120610918317659386632613926145554526759388612839848440212739206745298484986034206633073378105463462832352398186355349827579195309612733857374955289625096797450156023683563250557435043375034714163735352857122261127387615349877452251450879103052970023788090141016618860522950587361515160460720078362650228475899168410686910412249808872679498303405265235601130462611223518570786369067110245024075848490198595654297672648443791318417063879240806520821130708331801743551655246797216659647464824826321834415805464566729653378451774708171027781667129327555745257035127621125962926268978649270041563179839817257206957325175092651481613315272559532782317955636725698400299852294219089313284629209695978197114257054283121027708659363706634262356744994764279868999965075313830453740130654900567556621944450897523016700515039493603040344789088978589371194222201768680293125280597347395444092500962959734829913083025379353059717525788340476277485290921862444362349018086644572005973481471711765409332476345222808422711660947853901291400915454136411173222340987187745124092093107062523412181335215391992588274808500887001505377185698959597133982517544482832805184986871654134747877861394198347474268631113504029310708481630541237739369425245044223968077384445680880038589269548436545974586388340374562515952061661509802649988357153284440434518398373419347727884813521010979310728034545095534113292241132822244711396860035306708463320559100186592982928303001993447569774048860061689754938789828505354517480408880220605955947986640592931486183822929215823096706362033968472127694738049945177017537874015508554306456190773044501321029138038573382078533082018843899801371780858100671328777878572086265109621737147046155321086311727425979218057021148021957955145733789641630841829102380177859425983881304923029964578258381775562512181350845063290788678046773830611781851562057469037799203839595619741149508596282865191427858538300584037216815672529414828919337154294755782850353554408166217157488442351470283784200163246570689421058629494193278610251291728444689013656882544239679218943296869800769427834174565724528924084911843168637258566192428961667529849489529732981791564785081722375654202504851021139972021882220979444378553883117971106759948478205832250455831881672670294046840299560054088009597631844932699577399342776214792892208691177648968293007083420596245094415305495952680878966786968913521902145157469203111811164397979640256172566355244686118094480511646993291072284431256155419315716421292034568213090831441855594464149561382776524811345796460834129293556664227288230221274248349456622373874832454730964030256997148043099872961379251389864192354391770997308301577525970278738567082866518660818511251508801010638644437949045704320092278876248547139595734837980086336759178708043594930626717458647403777956539898885868941071427316313211497660502913443797849451701075589780474307691980113512092325898479439173327545914715273385803726471610824247782573718632365970853955827463116657510030447981864550935714085067189958445796296039500836254424118406254962081251792287821289314624563661108918465071367745400436453301365897968805025457386357869069001159587341665169912167160546043667135646025486730080691469364283361426414304127205085639568091029906134413137857668001478570284274796394153303565776168144087957190460478934898779716485637625001937281629026218955520693833834022052330356766919483983646991271828249449277116039719880711048725993754676497923656431458894392571016044620837669310054710640230288303615434274509365571879607853201989503192159481416079561427594868096941351380385054992631952028517822860895129136201899318347620584523092924943874551929386677958397213930474665852273542333596502769760609922969668286872407248835782795513559898407451345440136521203886073434855309751939624922644111446695367144958924543626831506101474411434886224973740600760929301970981028996793989035942009534486089582001153058478302594907294355034756099967707660565620680745710414242111449078385627655099627924144811201516547951564966527239660286592355038767932497087100635600926178800423473532655178081753092197157504119799375140416839156949040252481250649234774223606861527178738280345927271952451999408225012769381974652151325756013506792351084741015554883735126524827279554968904285527634313748844011444708280379091263464360845957740754121988887562026422734457017424138414473432206009457970162406995122176463834207320192183442274469723208411007596091084631335665551797416513878108723472066549584478468479674487813960958658947860959892182425305124585517835630619154498318164596961561608969010013807848147452286908014147562238545539768865266094919614257603135432398340063874083865167235900696979592724799215670616305842686402972289223415279745232509253426226165867273917428676995753751584556171422535883235396531874930767848305233666892321115932221350440506532436875056634613167879463459645597901113548513796623010339031434497276192152606558278907058716044512583193950976560338499883096851749177399418900392014495597158460902529274257646600274849938844399261575852472507532990644181381473478429476835109711282085086216282666652139320689946215400311480824514422958249146146998003658594413959219526387885364886615167488655333739268265538459758277317087714081373554935092890735990764311980023722466144106985847616269422838506600059455697064421698633304676715318210189129413944038050174245545821952442922267060573090584625171642917909409801651583076683940690411411951953408178871904193821235312966145204830944045821848653046370698698819406448205515388515512479351803316083515735598889071260862576172175712901760914853795101655757284488989378155923197810312208741519119763179843131397336735779293254325035054177761746888295285521433062050921017166946290824581917059793455627983900476422555491026745153867167068836689630875183533693854838435959247672254428340329912434196909567784993572258450483566591993957458395808689797963586594156278492568561112402857755780531121107880349464706919407478458340135555467835727236912528458297495200151302219934172294001744289367177353457648153950321699119233220009653338412808148081348444343915506210135575006223619731092710301876787201744841745460851555968870319825259523183896752765842278586111753857302616935842360660436665658773444550183310505212081021241520172521377502447642482298473662690443807447581200106763477700476544869082117312578870105562815839389436080900253386350529384727581521274373745275057498443697946085497364206443540807813790855318567308572105035567565314976050542302697009660636344549757988722016469353426614306551349496375178636427845382781574334261394062434515405750579145429424077393107089367462158015667484201409503238946972186292876261964012836046875490960401264099056358454614900970805436002641403753974640055852833160765647480213916708436813538498809839749846392864292837928200913350535725973555962747339481790351668460623949658319396993620945543126985579493139826732226215241853274374492059723071618158857733077410767637413044375876902857502870856006845312937962918467687945396653332643023824059608282492475311739521338150136058511305289759738267990488187337441086853287848471603424947427617694328375404317638029183929157951623777732863097538813581909475699627275341148297462194125615066448910627872666695883926397705662587787047545390956081902221716184927718151682431111734036265182990625831417311204374782903928141427557213736535379337820909650339113653853516050168173269599995653918662125089507158631956603791597094140657137698679414785874301354610375420619420365727848938420107234474556370689464584710349563729924053736239909414118832430260224945386391791173552474568293688132813646934557871134051139150378836404690953768684358184265836482628948088665952532884866368611143683846536153528143575214205554576131162890418467001432958027179768737110959180185638593370571535026923773984831040736315895059798030011132272907191593438172605390920520392354587657564063957218338963943955084669458802197388543144961436212231037819429977545382561444207564731148475237683384167953421863549971800896107205668725637407547111565707879258337830983332946507500427488505621386757438122134491388748787047081004295380672279365448366026551795233310452265501509660965216299164223632033052133272788251455377501824597955590765049896348177819634196525994089318187925616605135827697248596376144189358401646349754659127030053533518789871887136188939363881821428137479847626821487415970539376449330482456052386379227674871871907824642232726266463480450095804622406194204364922081736526080615372306772857042891295373615025702998141167868952613149223947595119220992787969201908651147182630558058970772617257594334208278599909954280576878426048860373492819801592064237632025903458024832025607435928689563393964896845094549801789527871601688318327893371994255204694972312970113410070621121449991569484691484578012215651934516376798843907315080925248067155248339275217693707524607546816425963351142571466579952063202196664781562367872786635926924480687736323185468670783712486689334943865602598762120629872981582189439350457164011878590222008069292929379199905406201454359190260531476758897890913635677850388863999097126459051751595694359369952524028707639721677843468580946127871699531374860944541578533049525990847538620912641453264878144725808314896893373076360473225992111597763803909091643179340568470668377826876728814795885430139301092377494241286407247348303624406628417933383560124418918676970031597440387001826323891823547298315924845764304511618466976521348158442328358852851093517836748867950667480729535549564685357920903462008611245242736051753120044532058033456784831062620796074496931301643773570870207445134913468571040079963040661452731192921380982858618189310013715674489010515508171079255910049300094841196522086960330289015370674317141845790306876539437418803261120147808340420865083395264567190359081835601453948857419974851572033399543744201900523994704283420322774397048379487159776498323656693535046505221576451772397963334181105003470183252355327163254964056778598551201469186938809283355230210397616838998801497834343134027405178697411350175715044720796082915247699759905096976684437441344674994253984555128319633588738614872596780538019362556408041296250255768779141645542819194380402024067393378158660640007243607519298185913762113126685778867820723270557589157436068149007163768296834711153578024255757300171892072571628111116760162141959526725473252023692987945031765977554259712178498919072920306212598449336978110491940510904773453976738236265876581000914913638986082931210705553767205605451459114343602956414087715271886946964017494734194587814135955602657216329225721031687583802546488906961129331502401832642480628696419793716081592874988261960002757084577787175432142524830296716244027976007136989586596743864874951528565763212094139278057769697436239941598859032990752151876661301041025371844186325608195133644171079617376215648610602212870228375303743058483091047838675042637101332262056215441029281524660647371485597479417945169289435566909542686175960159319026681095993519018912680851403434110606959075702369856589054985214301013486260638088461386783006533922073217550634994279705500957895698700308114711489972711756301885902368700752538031362321983879039089908896547898505636819823957622676178241947953909439451567417815462924836727804152867475118937228836572481806543269963712834025021783584823352275742166229388535556430442661758259991508553756075989906668195266281118999233273850386183613304137859566735615374312270071743319879979647677890626598435043307658142718055004998710009623010308300876701964419118084801981047988131883381710535813790644821796014486164937052439606313601125523827944394084797300104951721565051289463148713443356437295598209599540748292938473888811903487003114942024928930741104435989564475182927058491988153435099507894682022573482912099269931016650945328158216337781324525265056934675771611091083431915333755229132590378658483133255145741806948348843546428884610299134190754530805378157410514632466580529301911885056242153382742787968556656532534341715471407120412621008721975661293132459439019698222990805797634404319631385563305007389837939743523098573871500601739247911144801372477607818221450887092674166766138591003569960888326903522527497680174925371559141698462521389121658658930314743012577309387032737559891056853216316429754024196758072017701718148321756493155717464285705406135719279883256617424490216338917656115212270010078871799186306541977639703584669181714373450790115853913440328891947415579986904718595034716695849061294807305032858013577820994901343877712146882101240196596059712596997655594085049010129520624307640200519191637963844074451551120915532177350356558945912232688420470297296172317800063318958928534722952242658584684830765612034462539595015050380554977994337498298102997268159406958863165303027667256318378468915034672987128803125829161714734124681846193306516383156323202507747096828031938126206156941118457272496552106002008600874762540594575378322890141625940253474074913658881070055684519592701014627630119719472341584608409915030237940999810781303880868351883427525774936392628901101674151676600398292457416048948678313182801017516664906321239235838981393015031587468841107650458847668291845522632470965740234005835748190303158122717035221150431110150923804490552687240160740542286808820397340664719320395648981808156453157271611150850729711259412341669662996281920704297295047331214209548076112300221135753348796593140133168549368344762529069900011114560473922094915285957711680772759934760627320064456029777835828096895897295026947135853500987473888208963583557293899191412719450619000554497662934605024829866630917228971107073718819108144637313116893418821916033693653148124225794279773126080283790799708408445841083383829567344993620332653983753765587013422693609275171527630831333288913419786433616169852701799753835649416988303751281347410014376120315956246188122801294475916425540882234343750499724784549067646045589508360997620913769751013329729845394009479568114390939455308335899461881622895242068622276355316420229739517391372160789130316504215018433289902087165212399224403691460516235481828560633944896882403125568966988449490052917658931364081492772855046007277616893810370695844426830200395737049815052881165518762957803805322282589175413666165458571193655321907982714970834635747194247150258797536958959997404910779421636075263295658008172845025581745406340715034743139992927311242763369540156309033784853641557829723383472932426701742683475600143233972227241023539129675801113535554518266973368821061482957671248707607867127710918964565953228839385555289102453023062797049030531836934610706308092455890636639123911457137452829616374281924559220929937837483431190751771819116661047905978894262009444283707594770995355455838952877187280938207293603018857283334492133753361419946697472822519142248026572142003041702511642828579396849952949077833371358048221670494017780227224491457104486919570386663915819735044942948149299342332813333409524004239181989181821360278655670307865740193012905543810350278088735667457806468577246493953258056917702375557244169178983705182877165473383641859825146507661667278136129926147465575138403630151261194805239586949527697248705243328062612013290616638169365828334608276912188855056253049288250052378490253914311414862496960466352184291011821524862033604611945628528575935471953212658008848465022716256726994802057889165792830620907311447729982918317420625017746410698969030588071836478066989972677527008810552639118343356192024466004703095037899346608124712736780810774890932547683077636283427401922970276728585294795793458976934522703170158072376314929456290180861120004908842572819878821095323274161317279591627618798601777526449533029149539567143024341263317500630965336255822037802803408390206355403202797490809854330312071824633648811065701617750263504699378501590500509127468062046946701919455379222655043598181488098822855432248314247318876274233670967056571963682137806634802386910700827002850396273206997065515282029143982142651934440289297903890278822180036839359184118267143805876463329191033609191075705558104781519053870957361738735300383133717028825580211813866785176680982047805535911438119060189290080139209520551000449914283742137513924909699269104659531438657993459119698927884204426991148730213499790255365628322853659097435215590971966027152909825870065430511612540099688371777186095355218329649825979475082166103388355969791723355341520733008547736852034756594560913782502695319523143596077123156399394388164546812610408473814121415294752370695878238223129684993759977980133237383543194940570208539903017846027300495616676076542689557544488513877370345403416153951902473167311140061423234270301090794407601934782162060470218233895544584522594265732784630897537017967484278842542456498121606352480047147318586653768021369983473357113344271321596286612044428029136002059391521885976615484883120861881555368836267526881592054741446989353785256439300221302099075511730503716363477543016337192951973498962008528403599665160788093159871701618477440925190578284959198026649730378426877640365876505827686890688543503039673256746163160441638210172685053283200924842439471318283604124234064889676333024556372959157266718336440014459201411728494367891659760502952039599774893415828170719255366479896660676086967587618802525630328909831225054464326346655328933629971502950676462115890932332131307753275617250561899359481136577204745381906005678359483402161924566390428956708546615948338758234247095037272129544253041668826942401808246370678292267125746595983421384228570742693710880050590485764935173852501967270579473633223166556837042237821474905860716743937914112211938591211631176372920261200626125120456094143631040693184577434439398050172223827168226759819151956127667707360244590179055968383022267037859975542955845997438126936717251795058519491160822412470473035895331504516823869403941762725125132813510861882742616012324087734883332803218362479983493953333351525030967232998834538776946226653259573188246839655379477008742946625981713346016572081971139046156651468850098263181048763199016979136171934480806556116084869910683415222763127214781672566127553075851810499357773766337064985293075530804557935604999994043247035001612601008726360886090487035644507790613101743777008575521967908578155784625712606095521354088928328648839448474369263676875866202604278169708844052195095888020802281409061586809362076940497353641375500471326849537620006854856189761860079782673321932863918793971754954486253677075296680619121218561962562884766982898334526144537911757288440529138224925432497623941281726241290503059932389895280967387554842753366889347124132329338103132847507135355820139018534035421480486266956936480903499344799416395234542331155482670610493460547924921806645175623734395407068973933614764131062003507598853079000210075084897667127938148458411672223734919118061835300278623837953877474371866880878250173644512365597861867297468437419590567857243745945487785159108462757161416863394536241674804073565478683518369641231035235372084247616572211316551616856160512146072677820613887998570831858304897753489032230126034344190119358907606610402880645879595913631864029869999845449303586965507632972197937579636709923657105345951796239653068381654926957114095038880135086105260207482206812889571738860705526137275880575043696986647428106484449023033860572252453205136999079652353627844530452319616355352485391552279397578057691371942796622503849636746196860198183151015187734712596745929993055665919156882455778486932645900154866995565972624183259217496410101596715770776494257817914307342190543727514544153424206752350073773504706174452767075838904711287662691151867967758355535799750878633827984994720089996063311235512842159071449257551985761296436409934990120404563003951580827389902714339822726311450080420965861269449822243523704228806085265472432877512272834869486535341738033043944023108966546214777989891650065159681312705070673197752648732030321434199251580755070875451892255932617091364244550098092738323029712769911446362870425431792252390210369004840610341629515700081546185700405115247872566556401183470272110721437176987341275176628574009355579511101988213876007060159909942568621721254192378810548348510427466126963166736919305335595377342415249619877666323496895323057573123812969505276709381901536108908243696856045573165044476885346421797148345512765933304022465651982726628332615285770343969821866788527056941870946015179768955574110208792382286125654401882324369112074701398313795242894414423945791398401290976186825873283984496368216520949736279536251762507587773081628230390373726502721013533214083082950473419441085837350897202004909826596985702735588641793854197500889202673572680237938952755249661203725262782633915732692904483560288675621829637918297285914994251101363578459806482871105439832422467645709065408942324166311185252848123485376018933845375513026116345526201724384087920581859905259662403687001484342996243733186606943055958336926608535051660009890090820782805891300878086716743112874782651662494579820803526863998281020340415116502773360291691269773797196101430772813901275504693945036498676948249086873944465163787994443334401158140649548803153127616604232445537517103094986642516495052790346451729573585363844000507685946152001099774130550217691532390393929511368797983084408752626835165020807129551172172356410781407973673276792136280803416509304162762495894159493814726497928632506334382301054780054501006808383482059044298095199014270805856415722338935398330656013980956708471831769495009362416532992785958792549184254188758177004264668169925010796866238957122540015355377829522767297052652870078247645784424678775930058881866764856883751193467311944585019270176072956565980995778357904117911749621770960809760737215911446916050765629419509417528398771873395555581621862118130603735119978798519166906437079499234179274297616219917256441130325774189259253660550661534416732611681460230612101323160956489930495165056852425507557632628174061058054132063018454811928701382376905339165296268210344274858498341134083331253067660230924060111212040203307835260212239324520295339346124553877590276033642723864461043751657477265252903298874897639081802235147390326127817248149838675810937391851305973469824863915673212321329484026082123612376586213516880824085221681422044769141663483941128125256893882296691389181785388862558410200282932510421967931672921213297045471843067735519305517328073557602692062359524001695279319775475287027273823088319967437322979584132402441500326915137311043781415389940355602738619868427446195955671440623179119998470406079682144002900091787406243184426005277618576664138380450178529986083402987939541526961355298708310869938403408742097536543792166327207580545824924749927676580190551543107970634917044159030673225740319790837404494782057692489396404423379174945596170611272193191560358079307769435330980902710436661771763111834827016358490200520297609809959860800253666519862733738562632616728210635649080604595398652374769091534701804660611649625546113588771882212159722974518939079193531259245106581777140653541997462621960170529108354859463086029018288144392954453614184323478719031030140186078933124596182826137048389629686158167453386996184009012828907669299419227537055436406272493418656117144649777367520930451963715125618766642812996224943202890220524179408280098847737821495518139319297478635102618894493819911835618695373609213860013133086182960225910274402418249796354822602530123707244616381661630764263453475445458971248810110356448195659663098764639043007203766775483379683654140328542794730667464751421156696050008236622988054439491990281301015491490792714076114415449640202789781146567810070033163403404036320980717964171266570489417965445620241648731866093476359072264332810522062294310142178825615219766217804756757226814454379622168519593467567991330114376676441878676190538880836290885367739659411997952482828241896842071605835587005165733113590221041756200745709674692280035644315812873225107774768624224129676460246262521306060644182868706966970032625463105561298046890021249660685041134076628832809754082739840368343565231625441729825419790355811117959189365281346997936041030722774587337998602414513672966634899657159232734412022322765333461223519618286385757142924940867852280899383819973651896544397062822887780114462647963660167211119650608924208614082522286737566701719965391992864970675073459886145567478557074765229150100941463508871569958998472814652514213813192391682434764703929567533524646315587933130529394564333949341534403705615641768358465646073937906937466540985049172119353227077197097519668787010409332843272525171071526880943097258850175640029919655431949759580335714492608313038481125535671021482609774764933545473367598561671046839497851905556375364468010960632302918873567097339045468852156921101393305248461891031315258429324854846901592719029128519759975472423963667806212264165487483344484684123115719831539443408227637096955731146605065296466583783667689767204116635338697808239176151741729092856557670538205874901069584553328042990708911784300313246859331265802169932463826202254046615079186845123956178559589600263382697228484128319929482832157924683639734788370335781253174452371862838457268842031366885483677849233310183155685898619671526229218227609078939078245426914533423621509070210657522903906870808935085635051360723694954637482605712018819863306747720352769849502058666375676774270103499558609550147863645302880502292855823798524271491459538508087505136727627134388611915718197943604318508812275306742675062081747373155788945056364780857650863248003097701137986202069250670567126216488902942453691502136290955812739089017619330994023899567031091835236956388350370828060235163655724437726795711554697966619834844940007488879654910873162514022493376065568038360693282338200533618390852636672955708702985478630914423336566975214022147996939966841608561817642642912839141476666997179191350361536876139176890446992584761117610151566712032499500525040022125083819617305308462586952677823623136996507935494216331364442995763077930524199805511513176593020533156002413842495143527075976172999300223240918225628064675530588428545574472037308909043154622981267618700926806303225686759574810557961175632020932916020652082667788411927586875433232448339799803171652320712753439094793257637154207569048833417915789800360219844217613125498027479166744564555138253751954780663276729168171976752586114373955708482180021460177835775490783630212358323431372377530589862828526796333569669579962662905599060457819179802882803709470023642807603842544246541925048135099250946633304279678183474119312875362480041894548963241005144452555513910073050133412438552025723540887148294544412853616181262924421018469623961200704057906282635135122952506848011754595825833301228499466136689456493164927532304043913204269855882154227870897835145952662117970600998101947807380919697441983293901416539239597473235717628164067702118377966715349969900930571149515693024281194961811791214580054753381563261925527090268691314680116521117965900797947583784737227287394791885574837956077664423066985452205838332570825775214248062220781487366778965460127603322681150791385964645494773848125588074564071868457594352858958430749182336494184264124966810398090146870551211556758470085000154048012828364234220364045254909384073809396986686754660166205334559949412778220625426025313366395733820109537875370311136009180123456239972700390524703086451197421229077674235584377013335357025152234685523653388884031308169034762031992128321622286040487519147922671290100729069945992823137314659905611318493684659354142537927545321299568935632831667739949226455739605479110541259550624642804741589002020525023552571673940754435100921916636567739088137708954314203878123695509251236505561746191184355488437521169519903285198326699071591215726775973284380645567398237617828650098902020824683531091652065051332675336644144077754352981353271407026371054981731528610856314975603623782996149899006380516863995522664770083262555118268250668215687819718865279626525805044275710850489028766584289282388780568056429800521105814099756209427408054376856144182265856192722435541501526904637883075439411292957081316033218192151856319048827481753290013451136182958666516352793872502482278528451767116281699909030549468348327072930829587561443736488622094288654507928819709153603513786303330586105107808974466136231473426354921614623060413463095521488706283693464335765730786548731183293925304202970294344177845174420900183700194657679868556003840127077838361357481382006407407448339178914041479659781218465957068486206577560660561681916932671042529716101880853568090405011288276346866924407845834489041232901438094284766491098813612160392732038939935282406399355712830161836336207348508801727484373156610338329527935659555803709945670491257837702584400021229965040766835181666840648915455437320252603447804821140306510492988824331562883566950843060405978545654684492106806299198951306499666277819746185258523827197461393994691747162238427970104073444675425874621418891314003117242904465519464464536787467499626214539789079776886389125616417773586519145170586180910947252803917783870043357790792629997810871705341524482049274561443979222401409007418926123664146455437976071519183001464797802186589537141480026739888066919507084260271821712662669843377106382281610721588752569497783502073414162438278108673794122997406459059985799476695909746096654623618429548069257168719296481540214316476452654043848540136218230121105758646801826759290410458132556880052442639707053297981628500027609507746729139882815687920458255519260278704906248839396652236389542221916207454926386797034211090200499939350068703370102089751269391310115578410499663500359753335203843349107272592641958771664334361364202885733111660331555011105154417964198892498524201610094935560541500318427381459933792115865323929927125166285717249965281026211517588432667157527293723462723058314294162188998774487906435850626919447535526907638392531728889047391798406610857321846239382755782761699916440289224695815054872921840204111492753230991729435141775151436466670212821654172414262430281108571970522101482601188274435452302712472805084166677617561364656944218266062811852573263685376429020393418086380938793533561487899734907392371611686542009366559702590466959509085215730336367141104517225843128225014555623867795545745139870908630650042123153758513703964236108828225552685990337530942445218016016603752402692600214462343407431101309259292958661701330683538603737915851594207070171066551475517987531921030111765435791061931690278784966536709314701026051502153887896698040563325454929514471383597601573361442870656938469980951536324622720617342688333884124723707780262280569780389067447895599620014467207958046604528099607878008998426728555562543876981298379916752344616178460621198724936599713306924665230211153925836872362840905943580264084117881430671751055343194239297425610169340245296173251907313412831347962179704640004341232476990336438821784271017489435945005937425397484115333561552985975525043636587119296472930803282219009783993524996796179600233781442621726785027189163502364291905692436831366939541189248696495799217322258604855682233249582683716056697610610916952751322362333485254241925354631772327650694389037791059168192143183391041057369100070044101010101089007565536134463326102175288869525439451640766601031884956482399289518802838489812442575806622611225413702406411358645001575549983093700657687758574469836769631977876067035742193522612636695821076962574937338231195782941280297037736820898359754061304844080218501618136832608135036832155181616626075586405948159289800625369269230209948805043962112594312532823575778557914343166604265794057491792835727785770402618890639907734937638814474160246234914881182957634821763678446342562975556128760739322864531836996570932590093015684744296085207957911249089615362345143636384335794648530734058040973015421574816154792559157272173318719657449617175305611314990287677916649222376298732798097543958020419131982785242631933522570854477439004862614509550598036284366217143765617454282038824698634145724406732290456652501805249630080940821520962896017831080639560653191414679634801751827130640959280313060399569700799487858755366673757528372748184939466747516613028495355018290629821366895289040180840988115934361127957139940443997008926862216899259413511633704124581060669509104019527362481897879600402062345230206724139350155552835002478003681649129296536860374558195560699235775058676720597363167613168666222859939100150203526418268196337726504124716669392257325414102976697662852141845245219812385789326863420677520621866337655564551428278030883441122396027567898509408906661712431606668128670662804821609811983660671074549936971780087500629660305796335405238446459407890463580221060754595635354136234252099531683204206117938142069599929825389176591608276945636672730250700604924274215272207863171760044859558792946282295474259730703929047459607778096325720594496342310815001705403459009244553784342323032250552958712531802655676249896103549917159776805654662816825525757597396332980647336124422493632251309802026388791005500518223603948048117904807242616298312973423181418143810956205831956110660406726909043845104939475329667122204604427409564241715731375745643097853406349708773212503841794632666728116527177663704237197924033700843415579748695908902460308425516012192405641564172863569167512933753416306543311113561325724902721483978978190545836866333447744470052730348784041944921299369556965062054372040632703142713058628039600779388267164826280986253602696501481982799109612779205456861148026243235214073496839308378863127216919278068549893936432997884144828214567924136848898372464259401875206343382024522310880659477764428407979322230964254402275536751986290867089493131768975221926440197897315227843411994483362137250380204547288659468207801182892855779336739483914362950552378713697751554545788282173662642164579415982008122436864913634300855780637620588630443197176395271885820543900898254247119079251732238304694185858319821400804880686763868800944928774995236451088586635427799904051619725474421227876509453795162113117507624954876448541653048076409845082909037347492691977399292079544287809582192732549480546072517220770518038195403177041338598584668303476944181575775039297122393084298478876938249723160063825586947436090086743613262055796221987549086976214472755023824810647816743607937529163284897914037319041040974686165002712458719025166804479255939880170013046884630880784484457725886676328815892435994639223238286779712823385559236641279041394913909118416441561126752481899493849164221874080039377860858632631609472933813018458602553850013814093173494266147149234523633940673128142537765894542531216910062907473709265981717581404782436176877028838981968746760954627784430074171630932309798050633535781067776744200307070717370238437221579481362378041281609652491244523849142749350549729537355904758024315961661468567919353610599972183713784492509741183115986703451654237080593450693716013710463704168046161922598055100947253702072988084018905671963772863157957545190335771178848682704457196245306937917483148886407769296230204714189743400618266395765002812793858532062227483685315413396313421696148866347549389180259190020881964547844859225594678891483397724898859236591077271614826907091936608408966176621360154063834827449371448612273389373642045545739002334040195277999680860767558902136212679517967210365983927231141867281880462434681869934873667549110588102296244211111035852567225164930428488195446329699776922884887350261435215044987183355951248303828653780861649653726473485388030755077054576305930983377598086498696547648892336015809406691352222194533191691880931414013496421714101348534593153813312762568711752916575797063147686051294575812717213856567560228981917552296768357712812092579794339657914053367046148701832649841238171092434778531832709902001009997485926779628308334134068275990827560461985092913472644998813482010476289398417215243330376154618543307152572246784011724159552131995397750771612627963539279412022035276780643723831714496653472029743468432237213419616899005646186869873882870733047029795374863970583115208083120992626428445666687769151278423976361227670322491261432378628302537175623896767484112754600001161365264821607386539533876513472884109612462553593798464363302777464417242479385312853940620280055780572661448256217938120553380153839004178158564788727864893986867463795196086048173971657561835381432312736381460350034239770114148034359489138546185944552826207212233057914653887014368467893087343483030391791581032942017614595078093919644435485488274582881613499723727637144930596795631387303091524397732919926577822269670465138159927557827593844338431787846616177918400902263569161434371929122210502477248298403223242311374304165321733520446861204737278547773350772545558590734109216561598995129717867836692580379583273700498140788730550880407728240669878878832741024777946663205960999595287393459435087027036630645095032393533764884149883827992003565374457777914731839280172572371397720958613962820859109568686079343874072933834604998761241977129412785581107635286134347361983156616307443058981438085421610489654714596700544019145606125550375472147910534648354147092152471914293020226773618615148334683445285746975327593484241576804853653025640277392187774229903483780282709922781403450508339772046797634067874272919646611022630751213134117248115746133189721330490901491381764337998708308272264999324341103981409427678464721717899563200733132582020983426331358747249995407560379224130911007927105725429572607433359956685116958750129542200245539299383434416873368675173161926062630342081359775157245623487267659405198366059273467516614018361681857613855494062633970065778774274682082167527321906045580784831735078136575911121261267522038454300820880323139076505165321513338278295262523733104672704045740513139664190964399410366967838986043918665624326948363840397987027335516266625067505292083511449884786779096929348360757623653805174897208379026660193770698619974100443740051255461690253315574145902686217198851036834923987848418230138774502551803639373698998426944583866415492771216259148687461779061462864491694974798469631489583400967248471496139810244519445036378924609492438977678798753232163368741038991997035441098728026388113639227601965479266347976780829153878269050268822240803630753590418740220147236243779199150310427599074604475424379951824922452620259333409577675532140007193055780286210221472702426973474683908942384630592579327319322657894181995524981808876635256700915615639489681597275269867430106153946574275919336426736291705050043003127524315506912857025839995573318531621112009070045111630373078009329575277397192322462051446158597627262986758958106294602670324329385022910950505959681832449991386432920836966476833081296609585846560418002417259898397012454086744014986101312782408616676107266094223393996689668414100056938252384636070462416141707499750495150017929281390898704521770361795103184178617249222195704638282832831432443192723914362603971743130593214721237609738928369239270355612981984265330165386349128385373064203749008374741667534833474100050154955244234841975494780232815477772467263740727443733608296077212482461999507992067432931107239778184032107872616507437729333969138732341437590615991632255908050951021952256624981589782738812168901758732185073350812645510238470898642483083169831374059681700196446059542864848202988984431324870832380375398585266883535820645065740216395870670771375368622138127497448695918577588979376211470380603168048729232034188343953744510158493988967678998046733206370259612422992681549950783133389400453845714874388630607962990008138916037162799993503829182503449952830618413144406641701605647020030757151671991507549618201391170082551502421554422119913686748972326352017041961638994718116621935491213068898400389774444382619630847232922162182720736758205043143951582927049634748376046878432754867597502330292896673597005783991005512130020243210595685889251026435192941250962133797969823143558832130252698723291931925268903053525309968285175256381573764098349851972910293409069356437404045820099237256308802577758300062015645232987272393109895344605894080249187194986573452573474351197741357594264894639963428296890288316271347429051879001974822170581602929059687320162602628454807240896596105076281251756827736064560152967029907467611507797465662190227314919029465345490564164336950832920312281177001242126732344206880771608626519782050762276144052057543836418845156788193185300112384133827509537086306427142502177974488061365135903977984665868340223670877762217930510157281508466425075452978750258869340154389267731048412443755125498256839672924050265672487071127484210018001012756173729039828954775246470648499767370088248748079190601516992748604376129503371215753417916093570247871891969136914806791587360380882669407397418288855506698911966098984424833894028717659712220536153838663783584890393902860363296124463369110522895029575771271012142641776822566510135174588928158358231473636305059131664429602415628034480435552874520673922363932225056851721350174244211463043165768706650900170898810328596272609685553137914806451905582486125174620423539788479173172992753964744524290628475771311125987258891589051057037256935785270557536012391999730407535935855455624330510363012687729706650881392284364226572882209585348577766156755305789454386788042951220756278734859381590662744185298462534070664431016756756469582941473463396616617814452974046198793689476368780437881832380310184779142408390308255554881732936288522097450251798660721753917876432127990059271155345811209667366715455815098735355980793298865015678991228460784827176242186273939154733528724837407988494510071670231431270987661767911970155000741041994205308862633408163237104209779437497708610795127996810416152076317401232886834413216638242244505888238357258532521553054551163226431522473903656640213153427212959172187407991243144956268422040162913760252561813647993945490442389433634864212799392591415679579303099291052938621298696456232805317053533042801691862723714129514992658792204214814577981968624783811177795163448656776518146885235072251486206047922964638840474535260733385617755592825112088594625367548239683390225325072191164936245562068560164058990752182184606176105008577585450385204009536838640761037224912071069221677469075592026251037160644476465241944165137958133411241034997996221195799788990119445921304275277832030263248439786025695514337047855497926298912180246827768264675140727533954030303036751911760904286766098207673155815147025503045666089718535151067837064742983609149720040485572651644905877343946605852789004311545083273310474948265562267996759297493260572122572228644330478272462053855057704592771911348169077403814561369607416397900957248309454108850894186711504573403413049951007268865833046699016853240960841475763142465264720055856319138224920025133365483934416809511984414739937387785299591800127369943337207858671533425783383797526086252746863034176158642970450879283522398214660862265828831502819083208492362443415544064959131217358584090701355883567889252908745219161898858930458165673255881354766714489294448070794559221086977767983012665277221902659339024600750738491551187530438150935732740964843065684693114440459817075354419125804839022017913546502570466319323796677445804583468501956983781980961367107624704221367571046919904592842441864999224857748024432003328884750249126016528038850940111856532008873980761861017488583611028415931003218570693545528731469227998645685800656106222296746505990409318562222469020451909197887295006217058472906667572021110550641408314766576737889014205238951657868237627997370437221123490933044353681556190698946499938895504296884063347972112995719972879645022399970908263419455603711851071314033940628056619691590003818727160225477810352834978097140142728797631408725294291209484998743192256067927903414178368972870338236778474827067639668780241130528462015349055338677836749820752129635373162926240466741856811969732169012799765365615945269620478989217929567609481540003034485803157866643567375628767154316763864381838968553737571896006858090214237867968058822077117408990618028242928815144721757030091918691060500068280108940595047302778097507836856446355810496732251742177065695449816474216471420467077431995779015488504307034349738487779182165071121365303291704072434527376915395547898812325359518709370355476918956416461710312736932795069740823171864187326945109411336848179196705775489216318490568312655415275544795599259084566665908293785152477319621906786251991966880202903958403914585891494345463472957151166054815134312068641508672766872034043306050633887149191991337781951574723258022502588260003525685577902624413154439562966649466673812236705950637270777537183466696114839450013854283673121382287440908540804756121352027440823578896229999928271638795059910681759489523195933149129768186607722113131960629724511325938815291015898999653007812435632285703016819139730967910748935973762219058361746110926522336968318252615436239073559273329365662504853563740765078563664248111367008594243500370659484513370947817942904391160579263943798364315332071977422454354489170684082665702574238968828161161983440182781265199746056687961578780318256684923544194034117583802175617954656956700744252682358355751707746290384739518163236791474457833847051222242276095720240379480436834774415676370375814057431495227164396360467840048868347124788356596192691639827062874627569873529521038590844084863291469987778129165074891315120020001409676223436751957963063965295568730704574308371656170690009016905279889171841581906749674024135843496481002603891869990509398191735726742896119188727009442125204160232171137563438009796704156721924251849711288698478274220010518513087989354011750577726358055051880889183746309738969678754063046620465438966961737093707461942147015982281501199696624938173278544903357186047512202691172022149659895012385294145167801711052363646504875579248833580526443010230350818259772366260912476489987050905167571252413790581912340045557232980684908814620494905989624056325766308993437284781407102740471112401757183496205507962837024053456527643563027852500583479029251396953725011079097672984956737191876244929120357585708655154139015580795881112386652580569882277936908604322979589636182940811178727532316748258137024886701468625086188441565394599554888270894766125418690970870826060753699178389626597975419090307122662078618855803252179428817294946101891809573940341196971974346131247512335946739639106752484356699625583767274050249528207138031717783802843178327185686273167789350787245383404096052249574993631583152260449923912925597067549245045135727476681642331943984437560948653175783589095329676103076307930692097700472630063096076219302168709232157149908196958430126212213155415785241434521675503796272381321423246048973343525694283181103096872117883123615416658606947698428439294119739577555256406973541945436517437860020728859338908066541142950402595392910038282736718689818728773472622573344871980161775692438292101336167019996364837353496295224672028893978352773593290932783580508222291063880202239609904873807408751845922627455050393454594111082222914387840461318279918722141467820837177214593145955116218906939590524714214447826821148547756626182362528223434123902819401634716814623487156216014061758004449292822768208360742858923900671827785874957491994239498555526020618386281893031409527447000118613749186025964142955107856131170712356040596999078185673047309892093218103039218995993642535345248830258857534738286196055222703911375954741958792952785160069624277371309145817588860589998131601879187753345134917856802682155997802193422043327619660004367789951068053250057009281705025869701764492246067563438210217259083556918375379377411289641535123599860694637561287585988554994631613861497295538318971776315664195993912534503082702189231287298319996095759239687372617726398810914292685385551607468769408739433251137349441293612777338117016748298343917405546735972636330206064447666227135342801356033691957084497870566366632176126915508548013906335899613464498457742674575747621887756724451089152575542318331481426282597419847888884755714039416264165336777592142717943244428209261636105744530589182659274734500905194659620671192603110559537673833052471190433107232873970756109394093235916620943716217427591144638743064840713156751874934260864331404615979691533483730319492178347127835216345291353263209767043402895658729321519977866774565246115581238520807791925979306225148060785565535739807472399541262354612930113793300143363287370996194804794416946401353939276175965764694654711833176762369713567881397426159104549261292265579850823576852596233478302408790205560627193052124881196248212380016069816341404051970372470458007564138960547529533925146677834725624191054979437183749097463138544888981301172364928049137744163543989274142992479000872118945051768606767325989284174912195483383660724639481004973033126901208055166421197597327382905967756029372048344430485446810887197115495431262072143506967234886497987379602691719472248428174753551147039896712782975071405957404119433272556234046325196116185907320998393421596329954982340256047490738846167017864684961535696630032078617535311730857545696424846841205565736474426228427105098976401694258843042541289873102765947913195866044247485490388350942303546393952429841936537034746001883940041536388608234213508661737325851609827699643680536758380340904904070985399693383737411793082776942725608406135883905484851607757389757536562956923456630440861236523354328268180442034282180265195698332022369659564062515670114597641659018856734075263212721413972071263504547183943777513672139620537430644182327200896412323424100873770171016256189775525597989909391762664628256067544418622546192277826160502152064959612780736943865042795524449404245803199317615419999943229222162986936281701285513914818196834342475661805382607065689915302190636392251574544757823726481949230163888141738428043119506366792635368439992107685981107545744200946346893581444971798260986215977131691715404481290996180642387369803629811887863606376419680362248872445625536051025853436621377724471394038047046366267195819152262155584659530039634375405067306437624278556447066945853005749244454835007445076829236555003458472867223808008366021416766377344552327756617660619958899663988243708153529059361927978616472937619583439461070751036376418598705826019778263518325703709257345453909439584891344980376550177390436440717606857628350359815607666656110759996414718589746985342567820133554174066011509350286150418506096677133135655478209335668011107980049585280475573274407283871723256666620476614147050371106737122644569324809084783756854080150175584424592501377509913756637916895347048539289654500103236789327421654038356108807891850156568077638260936067164146727099572201689612649642968902906885010662382081545123732615714470482502995963144786218584989002966119614696432239768626219186775111139479214191523895150462883978306432031508056274639382831718199935206102648871364398259766160047893599016047881558957177908987191560412940033285596131597852972436733814541739775746854542965030299056904415338153122310484387982544078388106592294779579679650797995738825080645500450468646200642611019420923878044278214144388257154153283634194657873945419655535437602198281204652085721294591361321892991723193320340576126510453416564146685520678552284904401914042522771397936609109834736373260137366779582643840351784839848967399571291000484173091996086532149264249436064187634334881009488783602999563610930352902472576531072091839651605934936126484766750431179558183981898200416810319104415548643989480734423988767833958574764158996089800476910625020882142518584549593116289444889430253939884513415754640392859595565338294997306401277536425783924280842770685758406079514037928952672342260948220785766785630537444455888689686589583729712743527764282439908335495446109051477997817090689930112640137639138361642915139701797166470165692395278158612364418005044074567818480551131283969488865930932718151683511129646688964932888214798155662879279984893939038407761381083349202855163428804095892845829353929564692470959891806144274962924239809364904243422577761188856056459109043283189840481940678172128861468395131349591327145176916367779739404132551209908910659964154407900798866761335935420210384148369363092191083443495009758877497779144770947550364278686252390170717758487619704574858858701941968411535730959682678909833911522144406091999243716415372847628487140430628174438710574469048164856376458213612564112871964340771765301056299757897929892859703185215150449932432903343827705073383553820850949326744352036877753951740162292672940514693309980658435127772256370965594795999184862394540615834165317802435417455481846561970989685022582558604060115151342391003645532155751751325683130839889901273059227984252714388629039717460365858562788368575356778102902174448965553422848625934873126978345513005574748970816619124904963303819930389157098538191262870375764362274503778580364784398829621727897077839037458341591563972670625948619526729696360765655716982603345434740192039938377201379340564123645824674179432833877427873310790955631229044102222162304177549898250946856592808799148401882118851255231377703887823964918508987511973584105969083815534468904120408421919645422509998127502460456460333701278031654552190208286773584250231516632608028626039604346553981877377188595419591369794400925969797916803197403477909332612406557604405094058062688690615646888115805130830023179538548570024042525524886593440817784347395828332841028524322163038506813972843779648671228937797586457678310727598621041317671576912866481199677683257802110226455337720837568299663322477092303326425952146596200864934003968987429889432193517102020927007643495805281853964148178306414200215645113068766845750805747154096228947547814995038146823647860226583842617450111975263802454590927575904827103148880041915602494451100621326667269057356510278815824593665385376080525215834384328023473501929888362053175395205154532065322595793502004526898333659593784207660552380850236474417538207516940522434865732078899728476964292203020188085157631493981910743101144848492564924487206490426773583503507115021874768818028252156464284364551780546444391490783049851755051971946720987782810269676762737616765218890341824851510681205918385467385638398374658119736345318886054520117635532759809481400176050587326368035650568608426380880872278849733632012729436976770874648663882899605176492993524606348257963268618144452296943533371033279819043576640452736230071796123645171231963419274236475301242903718696391068354393686237282044126434421466410951275707320240854082642244277007851777690135108037989159876637370037537603123660536231120351532174477475976253734056911874430240604042243245551764613205012861648028102530500469757171834292678565282903761190659117180971872320450339979608130513789224433324682815458968506630301311290558741163620931574621429632361673943729420207467228394022558589672916920928748486702292509629503036267340890623304881822856812842111941527948939125515531515395378766167811337518775239605453286593466373908595195804294954757472362363099899906716032422340873214890665883566175554329487995444155419677369836507542853252261061507621687276493956659166384134549832326358050103007810483667341566392016271397239006189130664673206197869422093459469476703937958636201018181802849588391387374075960885993528036623720337106507234153150643672836556019655450396706519854715320970300731283569217580706875753895433995452225966343808897596351201139576172964966727163739847828638218764462613629609339236785827169483879464212378203392071850971562750785631148930477425389634607982916074728435449950724976466561425865213862442785880224897781060902471777109431575005070644503227636118008721088473585960876572630304385033766673675858408252921936388047562009185266380151372270640930231521969620375013944122403450155766455598643273112213489480773258002207102509994206839772742876416865630079201944249171484583776129662758783015449163087529532334618089762368302819082827424299879635249025821569572730826444733490684866874672081178996272558163244110623808693860074502490492912686643750716184960424073341474849679906299921762834907869992936468974135975078014713300153046227651914821821326064470327693580357313434028411914759859603791558152129170782563907554882753055425229820580570916128169583310482485164493435632296146731208461344886945762992145400648039618473051930539147096335835764527315184198247106498749926161796632923564812960741804143984737615347685748768004380488465458269616275215509794214189932064604224065770578922953486534551013531615028888964727738384413903648565271655636642466572113104996612413839292211967873974773945323183732963485449099574635404871872783900487754794278256314540300405469965909858513346595807128709035729846863030610168073281890634928754651603136895147886791556021871996393559254416472840933127267287638088675628198318821842214435253564520782433547417342667909147618060252620725656569863777846674273783829384298759112708711332983253690150544612375615029307622054468081496713062553140030956009018902888725123686803661886625102076394618386980556357361164748736734609765513102539433732497663278777879380352511207554485661656795400512605510362370290296559731338743278472271240206304780808209099592223075776950758515017997477653111343985854930824455921011967123445671778748421895938072349694342452714211511631315178082073811999316701518240724577920432661379378749446986125059632803257705951647140393163621246529911922585225673212212724914847329576003309906579379044306424165761495263282867070086659071737306509678812294246465245991407183925800388090212795131946289141416635460407638759591664088249510043198203649428944790560115758501771707454980437351783977310552375547658828103703676637256268237288051470210114431462026928135683059739876571062481471833391010482927268396234159301200574277940737712543778490741617586212311718133560213425225175385917289350881387786928124672030196651221694217387238158481086748563643200904594270992453389187724683164182590334651926078577405139696811523975712308834982383099545244811189175534774114130725036741173009306335984175333030943738031101656732669901379211516062298588452289350751322841867154850933382886275955802027867412331965416968154479427868277252921800875141063754967104822891759800615120868966777112440803192823714126047631066915050189637473285157178657287608844753668594450381794866805456417639071817898194964614010589280190656966891673267227618347349699759327243155124364670814600201859569532902952149303720145695699660115703382199908378142049858552133907687322227092515329940952914343070580663926670078482497562066857789036474671495372460982093893998305469596420196342652798452615406280409009858622369786460469519326161275101796946644365071361835589863523416127244449234189797453369639649371448871692759278672766099308521294762657954877487337355201619441502078226314219230004484619397648022819218720810189569649742750728487099676392388488915799476516181092210248401201394714143896109643814106207319071504501802776678280089228037833455680524700401351179212782308329976480656315307303889266883261682171273971869508779217772860682089954964875002698213884129278013994693222954703258113261782339811855929972953564865289856875064499498967911698377635792542195948464227916116600972187329445743217002595754402321955487653068780026558339534464284364672455479480460532620324024242885291706855817549314812608605642543957564603273162785229238141797301684067764851916722379032457414297000463800839737098264598713097565010001623187184563207133358664723293629033975683909898668659179191238527669486429938312038929553116349669033592262720075637164851715410429559385824575211265803423801264671104892200012382640677478192080285738985819400394210279605405445575945358823234688184366546609855387526448382425221558986884739969276317324150596176405444342185345568886615433410169118337281866488569465244565381516784682571152510155395358660557025939428643004302578021318984852269410113615341287211328974260336128549032993347458187955280275746796607414517309147668127514707335921837016888809506125268032119315630496820065992089784582772575931025086221714992807833562998387446327264535762279259784185612680739515066331564949791216338129867159878661582795937753767561624205054290225846769849295072006828858901466210594825424060698661821142708985814021366148277027621471502197251075563743560403309569226163337781936496960422668744822148779908445119664248362638741741679878530918620510660386645925516399370371910967544743552445456467692701551260914773958797529367804921831719252378182027179756343322072980989588429962500245692248214778539374082421643836199704134717014065693059893399506634806363967336296696657126829351289018370671820699777351531531380479376121560944400383696087843766898038085983150595570820220006592103188512577072633066448991851406637105852277137391074157802424470605452881940899622253942335892448876291460423872622285786758295206764157248634566411245401952751926907269242455443316156688237370972333233707314097885001796793635769310104202641411992773665461493712420097758421306388475894628432923945665561172765374525580061292938836344910760529382370621948649852890105825290778144237586576693717030431191682731232137445538763708723514678861384957050093519763268302555836080069574801607170428216014987188215607974901225908631012925321650197119127294970034230967506074902591344808031744166837730480975588200426566341392409774810724771792008391487646290935942888211457487387571214881624125608238816504669163005132693716104487936569859126401133161897787426205402960778264671507731891664772201891096447489179146154402310878848937431502574141523845364996046187275207678708578976541998026363912746853779652863558342465046172507428376792713770199377878623315493070629573575849100985810578269216378020322032118053592818113638907083334733732772572321070574789686352342535752861903823607731159669867122315026141742138080119672886222608535980455632371054288518013281515366159964702555690780928213167377879444561072103378813949381982633232096846611242770258159579358398168680702288237752091459727131471542915819405584158140113885254707186182848010816600457894108919233584245620553016728047902499555789080632071131394872802376901626886040721225513409627760915754529574268938424713115900077998000778138088523529015031564781306226981894494088587560040674253723743896453175347746044491220845836722461371057930468605241655052980965592107750134662051187274997540631656449256244868155270717171446670620104178266211454082358563956764096083120805477188376002899592900912884390080564985646349590249464330693547118948034703980102293193930199769303430209740256571653163634488792211323333927915803149394083073966109801468348896936822494182211445518127909460482939614963498974565961140935419690778135276434541293866113906361539215731166887401849599037783628504883449774128798791614664713241420147709390637584127248457972000628710380215479081328460101575412919446421161877496511523540479093360566298959187899990334760269242765511656147297254862648352151896576933977534961659312482281126889159237552911859712279810503926538391903932600412826685477222431910670483093704681897978985702107733550007457935105358246440654100769374110233028604213681065182493083823801884939585444404037959488823310480843223009600671240243066248526965427016241023155937225699077114904735289517163149823558294026930178489286658477525251847275880389081539732431919329084515402212246864168691151386867514276978096441314324901317742004801648716686553296034929622120860341478812335734941720346806414382375542597230109346091257865862480779335187513166092737186733892214183948885723321519649143422786684514592597443861622448381866229313661640996141639247881171727856712646283973982521479565239900506940191588472370565311059865177250272228881859776658517704766624986450435328705019440658656839988254055034508368494288311055900592344322241382712663984981321456552551732866237059896035892205066597058064008836304816652206933731366386809056837058273244350408025019792744698218603246012897688639950265770726717607183459888035392332538281154806937405943364440197326146806487451468418081722320490027782989782713138626259933286066055201774369373098191271920438867184128350158168252964864243196191157176004531427572264936732140923510708833075165159163182678847809169933142346471916230467440617402561462791799125481692614854325530057791657280140033153068936205384442266565792890798757485603122381467080081922436258527575944244573704302399956928499954847518316010175783771187841008213516678177761837613551799839370459269021609501158339661082514926815129712810537548654577972332796907119333345819078923638345228536254254230142732002831208980507910506376584374932202696885812970747850505837773398547747491215250850562232447135997024824924814261850720847592716297027338855398804093518366291365346792425155478971611457769178548993806400604153415136986010539007115153036751666595528802325803671504389142211989251152454422827679373217930613394753215263739973481537386905863635800901171124299270120117595503734628582425567030778485198201278918484003041890314007176210203506566685678096183622525449307832204690140587703029872881177398978101436256734179344149858473944250074694066022200506377407216214171929259474044615579949107216342592248518600977857648412750031642088177912404663966411147449075859977385936593040533426611032265251792469912282414101589463182156223996319927203363983779773445629190069969324937519872687868813576088763291888831491246723160614331356451794639339646734036680201845809000139277589021761919417022815991689536473002255133572955805868877355271289506423605012282090035240389075300991573269799576815039448298586530390371698570693524714218438944162420244657788450681604739224783551786999743257803711577767198963934100392202832537532360892698107690373416567386454148729315032546382153231407977102941885177607728073511110511964828579048827740531260001678203838608766884661780531135748166842074673387071691458221082214476681135802275471261760253383476572883195926686695537989975916804455291514023779029304632807537477866014602159876156139096547783449814219252259496621200651671343282204573078446251991209992951898125745673535065419275380940757500141936907431581588795903541302570225024263849472003683526899304696118642208290100726393984832733216840752577571504592401027607286660508664264587041979069182044184390937695976141292133809421250074044667791630192757992109396428664977046098276046965832751871311778502351249590734040572366516336005402386018208228807513948298462896506815872335783985380063191730382791376073005674881099981633367659457971813489298685115557079545584129935742450670555024870694620139095416772787426669381864880138161280017534041466409854441655765909541546537590835028100449899718416715653454801040884962283393332600466068433410360205874418562220965478050255052249938520279692286962221040553575342343854183733208089183721055479165242719087570223835234074068542909194961265150582678476718128337276301163192057732354287740428522579370688742165920403991976767953292357263553141957917748763424939907264707402390618228377784747615507361574435273341091515952209562479215055055345729635206180893653240898300544740976764235249878094123695249711796551280403834576010487954820139087971118982739944049686675436217587780847323567225007933106526736457885683812121237484512477942897930283313234277851428773597791812442498522884549787583724507259816796140348602287697629437740232119840169358718697555337799238058658135273861891254995592053771864845154528673055963063552907792677097404704219458432512459058600860720850403427256919777470812407103478906568893939711309847099399747006660847747087384706491999862675161775988179655469088912691904579713180618289233739473358612575806867801749779621112353625637905977892098840041286576570358736040386629514660295699682631308625728091585240860633598635410286248411833706113689872316994961761443014273936568558432693302652287463300577034853223150837423485604918761002232039406535468623296982629399319455298074145059937374850151741327541094982609380772007960647006758411337355452215327766497854822377238348310746061356566651151348734352042278016425538437310215165880352221294260539711195733191013671985154576247400417246150851690057949617342308789041735771050200641152989033503784144667050334515416091700458300296135250268771275983259241671627135328843469933524099835323822079832114141578072873113673295336562758392277813238882567368054185578900006581690372300729503100628495023212190049912824483125795263812742726430872198959158697965834279077071728043180011550712472988919083704500948409360324080578195880048839813708016189789129300354854714058734794396879369722609624122270778156902564868878926749331412262221503537681921995291906900038161757023893370382127837843355311750012982512951210894753300077246098594825882488534039780314405137111097334933117093505202763153407709013157732021277038402400881970826325643756852348300285295868745966861198443008129635194760964688053042206206222750914370870340447328150359951494823147011717024920856126888888817306582487477268957216556601046640799098623843511613160466714200094278229998181054780687410813988578603381505055279166504122015084780534593974292131244202318658425354093196225265722974716154284060822340565834401213115975806536569947349365427999632360769402937451787097187971594131474106418723530448592527211473361867272500490315408748598568924361303956603804117601555560457224179120022244176864050385108135853995029173479173459453063373103329364931379372091427946347504872788422541292552684853172005818516680830104306569047436543573488266937295707546833467908449981501656557954449970563641332826591203674841237238325442129593431757272780785902667226878605127596181642302513668795612072432364309381792932020403332920024028770892206657406461538502738488438104921128443602289079212725762305634220578510005495461595590537167396550341262342556966194631021854207862387806101447785636249464668076066144665206227391933563149317995898684783116145498448562832160267913995118481734609859037681639618172192969559942736197362304181342078010826848084486932690977928152685224451364996470346543783952621098367068261592903718856012090060319885339899269631297752693105408609476235634958563767417720821545786144701095415257412142710273822693612017897869103541623922656390668657924233626523871089421972959660525988917287974707820962641561310242504307114361779613869668681060346167071313854622260928751225307585740728157695298908000334852562984947073707395379164659469000126833354424842909790329916046095402373638071552383797713717188045533580028813039823147599348841959688101005235802061224067000260884049301067621208922472153102180164205552502320121503123760112036817195807169564980526241711213650544446886049126253111348355071749007770480079731322819633040182514378564154859714969764805408844605415747998591783739502704443548781959469692958408714613124550021538172880909557200649784750423085988622404783903723404231944979725699258276132659158517361144970782370449835721836739095315906837693455125401377631478101435785613762416159819138628783055722229909635796448233891525529360997582634649021091222954397079573936536778064901174098774352756546473451401075426632012039941576971888849697111605764387935718179692746042568003002384785324895571939129518244484698492959301464552208666794850240481874452301541542577107487664653279642534646275779589237632919896093232780710129966746873148093741278043942213308185235075813648291743517448606819401939135951077485406632564917474911007747563180128698390287077881768873701197365134696846183550415013749311168416941989579235346734788032984755839912254351811933678097960283400815348020260992707047902434519234547741285071778925765539009806293610580134733219974136811106793609899756077103059455065771144590714855761685253143366424174881543416922351674693261785551109785822907826560412276299218056088570542072553847781836255484194082475778016832035017692710974880606970413143714641757997064288711021225294541591717279960532117474019393656288565378919524559533571326518523282773937244347981182226671945888908977788991520392417260973783725385576906839938121630544841394733412616429074649446822332482883108145848616679383901151237864389238251170947303808923178422361380269954281999962673807553865267142274558146526039421701194426215180699207383570756058856141944617882878605007318568821026410987953167226833342955644684523790796046331085827025478384630766963075850892721555020341902138459601444601601824088193274192395226950027608496918615054972888071834327369078780959252974694801360052229971194571318472542924926107378526211769936443261469305207256446534864340000529990815635116764752934874847936967024148101977466949984510993119161958523108402848293092279255607677471594269560043118624253689606882512327153899044864297692424611340618218880978807829904174275036594190469698993901227567365964677307654769466200461796309437905586761515563758466961751352445786604349510041642403243996364682273525820928922017864075028976358105507427197041335286523598352586488312530943237189955631139101095047174275766894991426795864667613772349751671261063702992270015218844037344127020362624420902827519781641134444488539908286733677491686981099870429991081307817699725874012316200043848375090796130080912448697428301673030726865046034047643335046679174817365322316602294812326478616995694006823587718002441565534133450919028051444714419083308801003612191697188572975224462557145033071732949643587695903119127392022760990042691048342888683534037907999187059948937389480548525692662355889585552712373758102087869869157170462480329394721291698352480158128985784970909093438661349323072994647430620823950935978316624732340687466643120065481467182024883403593806962556015453142968088411636212150706728199809238543219339024460329322806203010815785649040461243952548418253096596280622458583071798981310402590102235679766968506944928038429292258512364957669186354054187421273426335150698766678329429327942981418082003986539126470989018504605125428219065779571951233262441459294889683780981007907801280456303428317079309295102222742880861273937932974349631135054167029616720859510858632395717830421367918277342148395862219645975988260228900127274051042575972756690336705187538788640559509174859815863897690325225809329825702060513224770572390848746982465507246147657415332641503575718510791701210108663065727082848947532367939801535332174497235050175943191167554897345929188949905180705845213152507927711340242622329892219669394270079832079999118044209261084089070143668940528500737933734115582408490947909516521160092702492486580910165488774435392769957028347928484119857651667334385865205465929531120494250898131587573832257146366515055868345375754592286439297725689916179592420402812257286070110196165210218063436498279254258204749161089318650125516925811238510534564221093825902985833578986850171905150367919045148978031942805053516734098837239836795247308807377457564416544266763723734398707707306853731681542756336975911338338762463743561146260560363301604260212938160264542441235437683735970303068227285328459235233563391111028883829066644437244477112741400164375145485680365854361773721465956587300677639117108195949421015262369321045294477229487636947023227366018104554552734225102155055239662870150398058581850555754423495743480770671333573294211685374832547795475937948307193802992782915997072743318626422039622448021991491426751410176136216517467259719662346269874249408853401408030558137127862820975773510158309648599321649622047472816519749762309640390904792733909655191780050465510855579879539280207308559797901540368174638165878719707339164729598861528930345977113017322902495698363346467682939458890266334270198190632278960776094976384887165989094979774776938812720129629595706814279675737922502717689294740351929691479836797543834298191763452228242600222800884720284937980312470820983582703917954038537617620619906283976805062890560388558567235994763315257340352112681879686990184036371663365138955134629725148633862022716977876956776395496557494649426787548645505873819660304603213830292567338645959215162594692672422900178888875138702502820807607082482416026147389693840989122912221492225306849434162858560120580801855157129065791621332828292733608236993549408130991876827609593802211754168892963693204333398153519758775245747240795070028236623757241631564518797393596801807304128395180324348867911846894161027972295347354838941882037285361598407441023298063811970992905321322086910789333424246801301234478357940601491506372115528811187040697594802841645412573525332782812714950740082400279206684889596809952431475237663130538377107335751934246146228055250594354326334182711950656486571439060136207627068516913468459034165500323350830104835898183939870602232251924392835117475240935652603131208260795994384924495539890140683708544204931667520137325017585576236959239607396604191998030955455202953341676773786422089824197213167284766608341194255135048010569978878643319841001922461639140833704128318223774614341792454483825822164147135941146992749597297033039730530439165049406739305157102989595490501345147204426932723778272754512543239621521514485735844713355573806547403869818492129794867623110260745649393587966083147132031829498747523620683225191273944308695256249035270083342106030991402446930747590372756528971982242712754642231730849993844647763784602551576539407348789264675230302576391975710266285905824951191365017456506154408238322028191081663121577489472893711846573878855690827130269485270696910530202741553839658860893448929303011797211890445750787681343739713172141093461138581777615980866155014785297828033886396798216233913451303362548236775374217414761593572598967250378660433810580059487872578709279902136860030417266522340532028242799695147394404532918872333624206829956915854505276439421878742111033796575503659794923953647655026217608133076138615880193410571120709449083123105149983130210571426044383464838140309297825144280343089313320180338362759907546999680435535804750555934143792073484040476622370424388435677801002314709740780204178187804639497152636665141621130027147291731667247560148054126860108167152496579280443336004546250264757921842082799540554609562229966828614074993631129616540383262106664413660459005388084432714354227016336427698285306052422127707993501367114682165361494409060347444438787674534320000416109756255368904857517938418606761204642164262589167935777417658209833073432998960054762249677154884629972904090632297409724506579943495547072977744441599920670153886424757058574320421326590337364485237362469727703355762262557020526104406989678159197228191182970237988125706398086081451429512481287253196991245880457215818667333485389525709835632676082459808858386273670677480981389685588979394467966400218222049414229306410018743704676158287378600633484147001933002950337032147690344578437092957272935698720237518972513521220959876258152306756245906740857680836468656844871471426665040229347091504020113036734085793106962423019254314661754389981635396050389801060204860519789501886088902988320183131837901844913573253628091084402099614071508916642382220381069790031774056469601380617077083719722924946557601722729076113752247496952586178377612994438428713124139977294245034202831992861933339034478558097814394627059286346876003246879461127467797150294730441094694887956073333593688656032425470355841553320020611184433975448770679537741607078578737126697844763046486565976163591038621036197268510746870355168731224685770685908064242315044381611125701547254471792538731066759068917536198181931989214914389547685176177162303438359422227959052119630471945522241886433524953942450426275141960320611281778856881122490707152909067537823206563903304082969810717791934915744926191793636123868990049810242828091632635941763835630461953054083765171633169263517011046279221393900189814083214088437999070911180771203818607847419974120973024761315382452163995483098687960716175542756705229489158515114474174165439258590572784414156310694371515829256768321516977833084363498340108867126090071352268863079283272637561681372444846387810732479844446444495731033619552844230155687316000110596508778099843537618838680160173644521129095903512021725922857301936125920739796891894071958947109524765342660197493441507125458452934014099319825041506374799715873807743671851672359797373519649439745138706272684568722202185614870096159461215112693876909689774286676833467802311307779758783075656500447413892595565996459194932164873770136574781060322942260122913144724938862282371141363000969859388566197518306322039349475228274217450866153652494491590373999553771450640938600527516208488289398294762878667688748870363827827892157401419524877808066067363729221555136410384455806579952701705998938704112969782391088443215789151843554050670361158670093460452116712659828259952147921631977270377912179071612102655665883913806665378801680284779002166662732260323813243114176168889588725840952258679431553690469314158683788239054669278375319873027038634795394475489404509145351021236739440046270445029190699682813504633368728785360557645203052653870216651471827762030643074258010290475742852947444942545862862019665395108002209181798051569825698709635043221769548901614447787477465323770541740299326922474660891430582531816027190562252931369982971120802295532822271101888512417792499792352762656325273242475423451199615923087193471417953563621845346910380715778795662103953766931092070182555562233048037472458642173495269080834434124998360220120258215440731425457656806640638656371265325739674928121084091544210555689249261673081603696864213527235649724429041561389928963759481199772708876026472508759777153631967199309817740843953949025226901057837710339982138088481224437333872016352862736861424870252446195005913471157687855502058405459300397234268067750026206339916375718632829589702310798441917926560095622233900760476335869898535717076227663280890136863384931570280081559261401493037512329637681175390697082245955601315923514368327992299076939382709333645187086662039760182332091918563875208580121600972700615482596456974664220913732563643470389327938685373134389392130620676710694143681957306216229394965367969042144347231427374545031884169917399157513209871494959233861840018689142684400121432509190788987667331781292045449997376553268811845053873071561698930002503457077815004639834068615005043024325233106406663740993784596540223107727113173019414737599117119359849187311983451418811161019187014689829059610220853842036820703429244738329257403583761256297684679525656096669402322557323879899870555243097584201414171028728196186745208093242702905778369231447828621102371104272112246664962172251678776399683027797354982454226620042586823580840679541785942845651469959372270437001733941327348568231049825060166928454013849203604523281937817778919391465543463511546102434995898314218877150936065518562545406215221674435649962776288146802105304336324181440918980562499048973711568069326137768399796363584490986231121198979602901497684203223474165243255072905981737913231682549491001655622404968199878013214854902377011205451537208339926659040920009610286444971724341500859191331189473184546238741007645995420436475791111387666310725460150683078761664568273936873431449416947017414972149780479168948014802660125288275202160583668425352122437723947869378132944703446263838287330752112787124847491314813868437067029128817540939048889397312222890655614401720394389288412448149446203381186665299456426966079163462807246947518329361572246701122411306815497951401000941068535135314737436640433177230579211545920496950444131909193854399182593104358023942697439033541255067332375374488235419208620796164286509013179450561054924260983470136888349841432120175017497274034092900232442725577545846042781000061061538249363501649172200385022340486951209835967191017240892597972767715581603248621265574382701914149230152715269628156516734695279731469227642832351432636390487133074394833700007005257104309553942084184001874180128697147788086403245765351485010908223329560269183211385709269368436913302779290145474160637183045935869752120379097046229556307795316825296637864565480539873466218468588818929690371981823320192207231285188366492720560624067623851559912787763190806113800153267818169222510377836323915813236278239719555772218949842628036598251289073173449825798937127159230854892991996641534634433391956488717830486221767181284168558985287498068326183761478550578132080278992034459006121261783210123205652652453171790074685837992914343337919097425900166459519118702648821105718677955850115542543806800916406510851041691823393185474104365734490930064174794178686876061583530968982529371027292978590250212166935424473900075745399242440018776709833149121561995468789939956996282086334303074433415901190353558939272650715702839180701796743948712612653887632794941910010356214724438495535830461530214480428925215283887734056003207028386100166860331894166198300104770622059982804407491678980255056560361063554026136148417237126981263284433281260591161905139002931045019699522347522629432265352194966033783192113933172689984021149104345794085875455142669750538583585269110698293838526709815587657032726622568718971668395106983056384927554822034883780081937584898929945654738375339757170013284008400680580773825329940711995765308999286326346451015642758176438485532320479195390060485044949894680776404206444425933006800412469725903359615508541207035169676938169852260247545252910331049812268441122203652083359649960600531342647979152889171182609516945985016533313019685156499724449529292526956056781561363881403392484910642983132082539918184204372386526200096485300897781905140808112941053284884180060096023876215166200919879855416859010851260759501030876844787256137812672114914401349509885706283513039907931297419292661008472627580758958344612293563862738079430162820571189350754572599936474260460843585481512372418303392122996728045410503943774741838271144686561551446873367901448560948251390332494612862476162215320812139224345829486746999198891021874207970771113372567312141967950747831839050680817566930551437030007460391519378069760687918151972055587146762156100797695860859213280797580645580678240025834610819374277300091475885526424527826810029710923364946392598290973552670888046559090682549461014288101394798757487154206728906359672147672702124044350175327720486106629239852542431445701732308431782287649777623675344071708346335453772856633218864465634380593291315343099520560684916648680845652093707047321173310179829260956790497306868363973207609480197706413262166456311790661801291304233256307912693384419353788496120721938420321318118217524077531041506938078260062901030787916684086573277887095276473841034050111755874000037376571424923325348855616478665518092307039245249438950560621364540670294879170231457441504841853222421124795549188532103776719166711362809620169523499474220116137680639533307548024884362936048556160137338389309138469065263313274247222217904852800021025870800051072297889306337859179860966802586657570964472108542771985323938361976871632217454539945017598622744121543048657344010881011500766502156541028508498575186597955379488358441339385899146144930736265417475470439735829800292891567981244248737141399811402336644253377841696984549218135410476842784848124315923646550007576310142271219685276299563839963449546835098930797153401068702683259442580870124884040494733057749306518797914316996748443956293253176966354746144550550141113025117887438260635960208658768610739836755530254739509181850310101747418193519002881520308551524657034583643481540885237334688099709275930629979772429208554820048270179316936860083098771859946933059959535290032661224074191698085416752394747220379793729677519690339845717261874856714629600478216680581956279842838016122021478545870262620014102848901076271044536796088534999178501394075307017479374586667267381094535589996525852073328323002453629211903699862331488017407777168236883345121741979388264924490185856522822018563968460588827260915993240505429248138879367331424622489639314299996462732285858423303832466445164365564049148462536431024941282253889423361956043610474353862942009117925663963153530514224379714467702568144039888590406056374236119804669255457262031351708832737326493978075467463254465754885785205462748847510206845691173310089431601557113767141329573009176105307019453582321480637449281692496034756845305811198041929217728151775914242164110579842955500661095925880840502817776179406870897267952067325889340258336091955104050745730373717460388274465808946770109553352901118769111018145342479858696895493435886684794497988724028913109188414470226210161855673777337294963835685843764983884774635683170148516370489942564662582257226655509969259686617208591528294546180096005156631674465630470762329797903170525357908902362412812069746880100759490509836404965125198370013855193672950948356525295661851077860939597130081226629409901405261703207219207107261264240692580072998934314336433850412000946709356251122090088565358176837876676058386112188457717391117623149692046017755984929943219779703507376648191175017637086316603199391459905459847213963039430031389737307617769232988742181111897864517214517750129985366488740469620006527628357269017555392435991982593663062709607195247696410434968293646401523240254322264143897403789719087426785623233782871661574939814858002790699671322052615494182843037364225659785124386433192212107516742109692173501988665070224815553742384018152544219937566909691530782969458091321921408294033507792096259808665404535098630454356327272385951082036733560718103716608410156869471573316099784656156406043946704429235583408264493516963323288217548412151891926892266904112923887869043932938164286426329685403573485778144073964719558067630203864824201246650495238043681138334130542616840342838707358230662612702667975905652512883020256990417087727918057088741463774673890005615301767404369024927455384704038859749212074268176119951327147789810842584962289471780879909891258201205578732225371845984309325242695748777392055950100027489283671350530685601678859187597191587361677843865557750034939148704563579318861742421273125853530521658930457344647180411854823690573559069393615186077920713027065838922711021534994971919560383060884785739370766017096552619815334717550201442277496054224012108891824494720530806555231338085424221885056513989348523103483865659247488985335168804629929598935021951398134987433775708511386640339554127576492454961275950834545076745794507237466504214959749068570737351476256204194189699703384188477468696365621008056356856132720011452347579620253201640362406329547116303937646957143372507219361438134759324110392038845305661788540213968064608178237870550436234629586600673907114588663127432700449956315718439814709103504697314511917069500169261755117712074724131100298106023774910301899760048246661259927472900405198298175642875863684950485940082904471677261552952792595927809494767683525398960171457118376623955165479616848015549118723518478777870291261294345988259264113439222959832079149707472570867196218152362960723702117916826583341092664569435849698208715172374387924366008775122161853669146783410929527518286419050916684087595330257607290769220498089548992650621550873427145484833914260045856705577607466214274817659980591967892634045441556167440268376388851261308297226159902146124913619606777354737649158400213994295808489313841501688575119565065734394430485050039483559548801474496009220762228293317828309233094976861749538501225737700525191140981043290025608782249036116664924770491525078682184766004850242784538642980250558742724439543437438804307756451043502910364629150254671476000835855359521879254939495340437086453051226444620130265505333027992374633243478504307652880305898829342735083026829336823485927979809232202860061801300508356846039720204225391504781692235505121080404209173812618340564122299740550608680840983492257367159862565404951543586316034791907527988404510391288405502481220671609547587536333022858899339034004375464492432503304344649788365990071475065495306014603985171878551063374683412145305738231215411103666330818715584490900472298657322864597032340939334616929447943922401852556105979394740371083342130607862264702250849323445327579777669509374184863925846092607068395304221299816547976423429161588714552896943411453713747013121434514831693988053694392920226875397526079905604198621628322616532814698236096388719583775907187192395435602616428497072641503628948357245855847279688269522512887167173200368877358575724424952962121318599760339208246273373460922122621015571630532286145852406519055245339853137198450315979190032865343097884908250562280266972293931420910005079384527548098936608808867917814045397567394556534787095895793624270100432696934668136433722535721060600355703776179311750923294638161059341715725034455032520335748086797554403184036773413683884298868798565307022720332807517074023988008227028552148675359685233637115153166721663714028605753922148127523547298117749557368715754778324432359419533589148083427186922553914619103670798252729862939399744635550800031095924374742870364590959390913485264923799059742334783488246641040546655777988750455457461579530550563110913636915691704213830305515205041270206004698072175133900486546782049518158982898068965171455842668188543038957823656907356611602085767603782220903605971306789785347100276076064940543107493318195674044577387381014218955364721186459567973250038407768387610732504534523780269540713737527785459718928413467306276795947535522194739062589223219729249751538578002223172185979677955888076374492832248038628715247220993568773869635148003771513434707206823947755935168748197222016649036739244032188323672732036766285274033151473178282590333701209230520425670432144636611329066455902760530369654543067869024689184315223972692017709774448613477173708877548358173053328073016651692577858882156290971210652503743270698337249267036056036923940375644823519926814632477885634429451099775136690488832769446386274215377556367553646191417476308296477211390608557481893127411144247152649339947791475862415427551788795501219399868596730476730749254421222477126759184050629983054172028443042666824449295867268724023208768326360246469883854432935721946033123353319780372860500248206613571936933041676553630875348245644915444850821929207589962853040929025851863169835720803315506340130077579088163354418745445124511746025492470466871413193305227621401894524654645927131009024351935130894842669228474191848080717848233273074829849354286513236030866055884840144274518819469681403251110297993967270259309004142433007684115588719067643380981627036398409430568100477029370394485804705932135416562664243858313739352497294168352508880823409624731489726043136076858646291747908685410557186867353372553895678424367618779538000934107569710286599560910733975458968976134569246483263874407162534598266752152129980310860617157567414316341569968851635526775952313505165095856788490455949519569915853903284300857780075381442479024907979642306997752947532086051957465899028581077759267083043092751841156644414201678447863832656062032251348525127667396370492371370195868054552790700756298598179645954607760125435493515079208847517357966789485031098758037334201306146160924764181389913243933368020600417800008141027013023623009513111420053212049357180646724192154442086928515909130677632700314774960095970377088125408337745042436838587822443976469620147325395409939289476408626174248754158248287939328171434790956601794209173745289243249654440219890033893279817465080919354923444889682034526347944425407888334219582851196497738693346196600725251198348070303144981145055218142045260223141621194783793797289401435882966544449744620126948722247063274624014684465989282757175979858500890149347941063524850608817625914278450948933619269073804935841473384800818618511889260598553907087169820230984577563360916643207508634706871514063664358841545099375761715492089064353143478689713399084523668018577894241900484038021579844781700570519032427409545742969176600434189076834811068084378342555811511294835506334744911147961526320824703699469118677055745618925702177678115705006562214430167369520039628221804715777328359521351409774006469674704316429681037912070842742104789956531330902610256005008166625381113587600063094934313718570301690026709093386802597008104799891131074662127112877967806471758653989010556513100772261972257323209841608391509567665199262488055489241926126154475215507950895533892633760518722505767803015437961148310586804100745529605341158222536809712902181409785649091797705702905342266567870970188994501725721946635935548163940646066507909854245082531109556393830205479314727834521734884555275204656314625944930604549571555314804845355643001691877027784703689348345206925224492575600450292624801854700322299563482484808758001287396006989676217031804633155105947471194023800831920247743794931580145480585545210270268944622916751246513718405705021019115338002553366934680495453405371072914670743696792772495976385246961997731575250288417692491468924420173124797296784370613258228214871448020709886953462999147512781462443361847053325441592575233407942775484019681082156862849065252362244520612372856296756825177807495587843162419280858850578155661717226143771707383228020426434388642713974930788552120015351521344912415038526970230872807865678779921077983420085056088529962270843937127656511646766567478469471704437734966373108441937662090871501632881500708112897499225988157633449712393206475475615578997601607525410463775824722052529088348512671129184571171172584856550795662780501274959121387818619232345368527071088376898917480368703934578831252301336640367714900521159393795921084171685902335909962789509309019755532611976669922438107153676157521046509915675182688726983358845094199744412811041165709311647295911572497123350320814282594856062347057891617812619005130417668287066001627860378468677011668867456048113367643327092354910614129884778836384023102052043602116832949439362992007096772395053938247231240171808370058805803785103086063225670813135150248131418246184183007621529797186794578926792885157696724374590042802870692608917471922706948135811223105465742219863718255540969467009622105952718083074291286142067031031825357193838083076314594398550830791423295142462468227920215191534251090528581588371986032041220757445268756687457431509564372825488321599611336007139860828143831893465778327263134419084933315837147973721599343185678938507057911649749937328443589105024649168026913046022571033466254264434184183777570636367129312095896432961099645049197064268319267553412776633070835054022681950386168545112955627520876042797807043076694427458916997021643587363899441820153973746754341440652060199407532038013399254877084007648031928061134412609892530010016115012276454460481482386376634735356699494300689792852396899098023458455211518538301348413235512907187548622183834843102562649813382023061591300826593987839883331747950054803925393648484282046523794861541120786197933302209930514601362875343075639618239159926441201180735019446770127691060698471772454896509788633816960883536724802253154687944258037306020363793781379180373672688431454135083679396356056703727806742444974661587406624277411150446873702337967247635306170399305259162641577988242289508903445804915905612891277830488503604447259250834132792102099112182932823261222937194664117149738020762756501609739455544460389483707863960457421357391065382257190222304173307601598306253479808084772957013816440771120519474224695803267986418630726583595652308368828556548453252632348129628870228652224197158354501733406676174569117032207405667231215840205690400214935244096939736257016446469836912023421189930368549684498365316118256734337817431495662112073334559444736321617913826455757731488486959634850230470347749853424555705816016595489989205466617911041638377017755632821407810373478539385876667019409828743822514288966914341129735488931816020276939347468549802948226728286869233660974444193130077296551906166006177825828427187081570968298518658841890776116847736077160288529588616991754788242056382431804857723227779036150156980424187282611364557131645975603352826547813551187879674766404269765373484058745160861752139132062935886322460520984548030870649057832133125330707403077574898539822797933570890969308267225497887907788702660732587187150794901135366076255066771516879476062986894258081253116040066377535760611810814233193201483773904333748204251930241410038642763372592517646697027550927870837784633669430950071615806295165281179735545105095656545229516042795676957949014726317017704706608402928948242030417558533152402447818531332768037572793583026652206506611829530351307596145950814954596619105966579263599328585612337944906275230221403639055350248670259837324659333527738561208083469568140451393749151930199654413951769181345941528403952445013970404337632741419975924106492887415323345109103573011018439478223787319490974686586189432143894698022965090629086020242308840814348437361358132142803145772929983811138905716686756275551058311419345623220495539454518674098284469823759807619250823564726532512741719786828403210208372330910734075881136663513279200007645767240947679211972052225575247180255837204098590228167792770878131441480207806284861503177059656283623657120276896854938435000328764776491411840938809426413237630326107676858379214575550602750173053258569045408069817148601117746002252211845251887418172961289398977691992431672783330403547285753847109549169182220116887175203968911877901543257556681068078059410737662502199359679283399341167451358880940687651740670885089302991734592929097223834957159843743422650025968319143323390531443736534420368595320545116893184476709417014023013107221423155751937538306309579236955159902817073628009703265767766098709594750713253577942542472793148711650140362020811083649280579754520995930270728070988658632958597058169216798869596306194532057780535276731973111013585112902719996022979113329657893503414554940353077405691959435520943720013434732261283717597164756124310949715787923708919407262180486304051457331200263306418015953202594487169581684461378381593685031105733630764465967788599343718412076096341653124731772964796217770112899855223450611698767459369566484560306931134491867921665157349482169170752944834782973421857554087807513956052959669898303680627033480959574087727248496280447556675834434774942330274885369845992303442677021266058904181885732224061634934346575977292122576263214696087521800223288246941229155251496648333321149022700952686872840691843966327107765364043431907214339055898794593205420574515747679757313664373018030220920847854104929362799756054530607490139016534332211224293778892938689464293857744319081712983882891164902674205694833311427900629457802263013443264067699377933026138873747915091404853153290358588666090360679160305406433014160218726662200919514618426394310694107754822072539303289743961710539134181293565870966840272207450299536123278346626879144212375822279054640101784367644206293204770099127171587337856729836209865111451903206017991238088542665353082898320831644898171941800282946917579916104124360769454120482055443647529249468509612427225329534065423786691903969200383493893697060978303089962998688953001964796687571831819716660110522675637382858957735401983087415306010698365106915652932902023421936105781296434375346937053567243771179421107089853588429489736093045411288451015298425199081063580465653934107539246574488934405786658355597541439197058405904660029996281428681940635078981357544380366799805187442349935283003970235605673281974612497574820546430123325316611636687088526979194775640742638659066549919894174094022497592870778412725765601263710435762518329434639544235081623523447928363021892691579129425134213645933664797735634914169946381326292602986074054231035846776485453106687456931652215718788706584060588482379384208375667230268965810901754317717851544240670212825110539772013326328025063140574535114614865808260777264053612443092986531928376147977596050249437914792141130306364300973058825353051869699682189057004147441376171565337553695712485839929650844471994832527406019394517542588384451649798308273828287138034527605772805681218936765394860139216211945669845677208972159544540291438225184374718595842149225834315251184643695293999453660865908862531020455588428711262364815800893439445638694223155740313195422828993253525261108103107356527752147566478277750152166301772996316170385617910450127008182590295706930190107343676847571549899274434634432186921948040067694644452598520100815552493776894092450810107755831116651310896249604917791152648934179906725166328385008024621903167524084467341301777838889899844697347587914023910843642957424028178608869308822439362700571906863302095819735507421772505451436790587281865002704232526800651773368809850317598865090810843707626828512668957417059036134954166412299362965091852647844612693635563171418707077016841634908271584108188811683530505021626791075965804508648024144744377005066808620479668232810829000872428470600711399786959962592220946727310603500635816879554606690718509516566784257623210614281972684663232983916418574811986802753709403913711589284017417348027437194736701223081773725512483962162780115516918230403631448116693719153199357435933891436930024545745020509545367630327903978527802101830791930828923483421901806509181533930182390940151528679662121102991047832108824368242082663263219506535334887953972427387263785418867016209684479049576603314467679488327687138196246959948804993153135634916766735612763678116676736933583176988384175448687649739250473240494377363726238271642255474462745831909905182936438384569557141106775960116536290879839701290146581799547359319563309103261074947335483650354057391233572958553687892444154514616091547792177485548939772511656908265504340826891189491813877057373748613767705084488587928554628149336068382415438504291716985876900137879939596009906316825348543598975094723091139667727352110245082072340539648875390808521059034741334730646390772031468636738417630033764649421410987142046445649598193578742516592691667598382428060545224523609982134275286238058544380882961573088302199061967780405900551464650867529732487708709464003738163647131446963122217183695149826628670448340482062736534643320809190408506201908623851277081443742537259903796138402797900647947575226860235237612640472355714771483627998092015021728714954662891803697889203471326598242461910138172785621842521889964833620160034274970525882026961276150742015180591964990537228125167239347759349261380824802450599216655958978279844267865790510205649979546221151901778800031333026605721569211893832423534892744498357732986159150888069027546465276763973385014488261877518858810116456507367277775967407108047725200562558196585127649665265555095221807497658255764546667315392035582083628315950514809964692476710753772880218438884521274286836190619166528501099307691422200308635649836136948092739612125334545101634697790369814319651048497934854144267017548648599024832227720267301963850938900748410588448766884541657816683125867580327429688662983008183000789493320707536099200471514521432192218975930304000786039782808699713357579794082956682235494110087174290352151955987257776570167145756557980011794582125520903873877921122590609875236773753053172420408237343538213829299152700918751963277077778092384782275069830741235502058681030851172241669482833517808199589814833080459963398794233932704400760536829276192271287595725069717664416821382130491400428779735201033764837834048982835452440611976091173548046184413281234414672569774370422773532176427099205899700790842743377455005101313918496283165468666363333089143011137293429412406413024790301759605204025022719781277144735046124278311112648453974735367321668367214691602988168241685991354444503629493523250772889055134811293116163859874150882639206625813254837579383587508279317224995378056997806842382182027264887533153273854383029327250493824178519162996675994831053746875358218840782122345794977275907597457381780295259557926596717440682181306532458969792914338142093505230109432787515173348881820733191781566922878409846486292066887115629773670941633607985472305910648214125164840632217382135112188082613236293709430660646824276079468485706517132420452388633052107789985263517809176545170171067402336597095293809425675200643037460367736544395721862048843667213954814045966076595938356917844144236663116255576756059454083003723309993016825776824789914713124107425868619354217939400085559887888038036036220135437364132073338982362208856323347474497095409503350222304025050431247119462327769863333252915299837575097618121908748880245887849746486702510756942294690148678133787757740419546754895972017333978363075386132781672604420493618090855422494307634825328005907051182240792391774335930010648330044649154661709777905267349969149843773745552517504507394357884805608224765659310876895666887983321877325802131695592990902984848443771872410429578063739670751273364176950422017357954280074252882508677628641900140862965594008659329661953648483430274355022234681839704248557724223022499578692481499588105835325666493292259169878385606288569981418702633611023705717902040248897189763598982993362000761160526267019455074205161009012881841657520411786680457811714548414483385819674904911828062283435861131895112711188145518856143605253056680484021586751303578636734003689555800183528041807245236431694153487279197351600621871893803241419720544118146592885961619690952093640911815029060683704985620129941543583223701099850463155594948907680694249985440422989788334874773323631148067921891096412216908924504045599838945924948569883186499559987803618890937805667928412953805770190858532352811766319740206537225779266295510703086127534003780654900707911237216948542298304775115859482136664672527192132672844402291664623758253740156401683467812771870029509647144949421359694948880904903026415223069960833305810731512451586994187417244350886245232932862367988877527735369875292915636921033624325269985260017422835574265408418125923434480397328248548850973839023008577387224815332543656721630129737543920020307394464710450550427593734904158987101812092949974277317522496906831240942313572726328074748506607132963011856152975183056125643418552589345157109519523245398463675049986062321366059972820929728817709535529047890627337195726093033113497710444628494967873347021289217368201248362745665848108307252062974358556891558974844293405678797026641634834931959428550497136601740203495173099239173396350795714173812564522501328625022250657226045361073054734228984803558652879144325795137177978028155840579398497876359817152054490597963160116981843740975680504958968656036583933964843285715744926955295300780881609287569467761269268950036059954811273812084028205455378207938341720806820995773093713487423531780018713254011821027023430951616322509967953327555479645728638861624271317115568460823530881559280313201726714209296652848120635239503209120911164237068113317232816903872947391792515779124969755749126544151556278786994189898748142716631548300851469821339875357994990719464493673651588904985130260420938669521378901893710717570880195889896596270003403008783126844256692797934297941796393273847556840404745553109234056633140144603720040412213521222602394870308147188401108559930989324553297231249511359250161718029513008489382271256352848316211225715808982991695105481719859906139528762415008904017682039748143595089599145071350779792081529877203502035655499531604072426011201868370710154522852774155891866771842632662216268016767617631245243616665986746225122388016060509053997967720104783628289626100115687816397079685869331811423727680185942082856962491399468127851715696526153434468992348287492169006813370918766196740803154685643818485138981006644427405081534555572817977324997265449269028841417989139144134904428528650047765543092510914948484204992986498859993831645578196551975386177309835028568197277246254504182111015523985182382631723004381520835690877403244716171335488005346671930331430411977464029449769539702399082177164525075434423700842803025692787436311927035230646342231143401573300325543962480879733252955447106578146550893725559729528796367229594596993678695037913307869296639893840122602779565845202369550486361862042028640421394787456011263987394630914213766269973214150905799535783009705950438085355862149374185092851111179068216357591799334716712375688051125355251295976891779716187936992547330203596563357146238280971198657710254011213938437075510017781899344629739239435768355380461610734600491235699193777319456412821852326695428991931364972424048092519507530246575152869590744345308894679029718928128630399994077471636915078379735950214500103641462518726182538378749741410049525115655769916168101699941903397213479701389561228965370610112514770774782441659046183198267927019029192731480898943259802328361054816996829276260822548726217115510512980591380942246782429959822631635612570668457918346443221650783781363686126482891557138214857023319721305009103577955377308332732080207260157094197696556240918172807985893733841408440277949242330718674289428053640282481403515795052179497222305795348009271071751896641257788212670435218672317874499601860767730804503856358938439660122900678346052970473872067223663016937088569924755424449447475909890048253064588072275143414701327377789703775772092593356081473837939141228981666301334378458331898055665834758800978734243296312925322943927746309313161731154074736097773723256420973554061993054486443972574564591864863288878888653972322716627439438551397678675136643361709088235227644673495840276206854166324919576840500382373591711238048043642814617360401632451158220473030662864798443614441163309339977951459942897571370948450726116084642807198690999413531631633039418179242223954724781382617357486698275518814794754138099696926124163514723778081826677553435757545791142860634666361306506615460214310254370840590467640584305563721749069394371034301205833630739743213101696038640924281709913964074156961285786841242002176884432563035775494194257825358131951190442452967287448722282599346778648657876281142846950476621943949192566073168973447540694969658929391275828313264618382841541594761458743224036410496654018527848153913559315304604771508326476923420385175292704690951032661102721247076829137975764618921691373108193898807355844830157574523125837023734729028782679162966812687444206216604825555450845993085434216947021977550870466256519919762296308454906956557805298216443087012602534077718458428688615404403218714641860077127736823251417527017815659097890118232274575170051333907134483071913628142981178542400550388154587035303607804331405917006388632552527433439556305484579771255990223489615609684279726101945092162313598009863711178049116368832903007347002473262018352153538354327079234532634995744603068194483648405151984937242569710565170489939154737089236177276612011683134283156736773468329122229219941061932544972575189900604100592017153508135616736134885773303530089211493022044663790342334162692373353131526364357924669517734690698920534568368947352696100905014851751961552585814620892575328148356667749826208149701121118316226768576792006570634687836914630010237809786378305751979880587580193814288822417996680347460794004151266631469634972232823947899581963296748803854797005348605026694442313609789054086783950340552930190137792321213705770779955297908737945338440273327728367339613854466140093200567732949439290747544872591162192743301167611721600970995686949693392410057587260281834966457433235440420569602829717330203636540780582984129062795380001448849257463293325525239684141210600308585277460726814503070043996521744469929521087837636100105390175364562043189273066956364045789222012430444289299890729478399208005550426633041314154785461758046863009663563532367414496874068551738056227605135251265033943850410711623656289008394146366660989643439132931522468920635581995173012617359464990687528061849637763809334590848048367843995235919462479408956867215333626046408431072295246400756413186239770432654917394110450140797904219614982579612507454690797147990996439615722654784396079544708451936432182971883860685547859920725547670983308487365784130892896068321331933278598359769518554706520441914670813569529965581297714044186083789493206535042179849278486004598080882913639456080300844674571614501421327175206628495008884690509077261684910800199532688402507075362585907616805131677808289906326640787188728668760762244242301615465135856928116738246431352732233775912753203817544549619362219304001758705049394271981656732301483800697738388005863093697353254379307770234527936636825059370704121066915854743897985488841668502509583249300770279282018146215129332981025009598110343853293353168458696523711956556464612742124498405763744660546762215407714493107862753571323965355690577295116920602185798943772335198377947897151812645443469503417182585564404467473139484281051885812002306570707427925536901728214329837108175669040014825027594321302210669853909251068931589243546443402601055525290874394880765629368881033680829819484897266916172974663146651578479237367032787448087833004692406883511848610312875767845377011202460987356960041985341098130439986648393274596081603215447592044449722068091802393620146068343582148936524433433894207241032350624675675985070926215103941736179383985676317607552743635560722602743890426231951783767746724720574348180938037154931852448563435939770965534755006329608564294663907163444017199213164691354061984434721425296572376557493343186014108884448376410106575077305675788516061407637451792500495135398968530130167822441825022299454361803430169839984429484635144259512661723684276599804100388446216128644378081206447112513311666946282764562173043957708099295074375375670128389885214874862384005982007626472883876147337522010423067101891158164677819624062642019754692714014048292400208148044607938761098423660920641841290075302878124165636340831832160814706482508453780374824671284921635096710194668646590233855798303897842727785038351859367945283822944655945230609899058395827973341747525309365411837254815996466168579003602625522887336873356154464369006752636228142522607680297015878546491863673678622618100238976722589700529722743457079688837235793636316272346361827154673420200735470792701769453360717231962390432317959219461657325413190496348845089530574362939681538339244145745284856932554431337571465877447295438329634770455602779492619011924879898400643850278108653560782650422607185178059162413928936674895549967768648790709071383039028225302780140772029048671248614855177194745702254349731688254850324302311466862765432686094324322878796768792019273855345130525335266998521865729235723171671051098287165475827538439668661387599741632205041752224000572205320095026415142664634609162831637551340918845547150709846368458382346877659327110973473746679288883843529128043883752102160837073003727002765062753036506775010147541731517827432682892019147489342025647639438167450919539096931064765719855679733679276301153936951827889836502623646730079011166750300357720771205040255977680105997191503519247994634597166120900505433659696154623376717355429489692420176026844813141638473517322676309201399942248773113869418716201345131773640133134545681843431585846645174523704776773637741114893175785239933339157799171240092342925728560770297659893917576958687093499652805798116817221780959268966947112874826555354202742192082504748530682133276925837178630976411578501646965744119772687668843592064579497679572906919932764142198535498660720826879361582629068832087325022287638351400228814200640927713731627744646559148131548397348558138280143214400717853201883001899661513548652101916221663386346745122474290542981932822844837075111300595156675316738679838109699822245707053736723408489256974994377798991260029846835092539277783745408695727215460599654306430827066589106230820840174104241692880754755357039476675320564982182252479120696944944927153092600531511446818524920331599838906595230355821207710844823267501449984086525884919967953996989338768048085444986771664284161760081046105644535192055086962391142100465748490720906791410627182652656446737859191425227744596565978274395002866888162629082178582528818669482237441939812205819723909304506813414213437463050671021605244792525594475374323495404060982048554043974190911255623239499656325987240829762063600632128696236641276896647816688875367597317714947806256567925738654998725433347741390513537578540730309948581609460963670403372133825645070847167895823277537189718500448561398649929373581825060648668953835015020956657269683533275723321604881859783677427263141074166580137560689922299274357689691674445891300933246585381478118735808096623699996665214890097065479227548456496682201609783670641027402586754528951483052220953484347233725245924683441836759641886724385889407763339583708742971345090679297017130798361407478715716774925820902858941980655536176284075258199575931919232198566720524383686551530730565087110935963747631395245728176928907026373523730723830670084832916122878215752381384094358536509963866627765669466485821175827606911397830449899140863389177652707974464220764138890889968334300466706148470269763744427923394365285683813457413684182255340770205855303822465652984114911544665621451890077010735832120011706692030323643731059200256523144824337496110418009544934486230632738302924963449229005081297175993554487756002474234360636118623122753687582822335237812741391331804084601433225660885139845586465716608930537361500828555733543026567227073197861901905953555832106642171059649285701036292193929917691995533804860491420137552039015728622994312160669700452580977832246979669269270311974927579381102461945933824470482511842296213219173369506057480351407151996762201597975235244691206922641316663191965120003245132242375538994381405499845727985978635751964020397429872974090169125430318005939129078944455792758914927666139987594330087780458219218138719864992937654628800629950893118892564873242072641955831918812415664785856398892440692950184786764218129233148385000025403835156929854283260438728011786991226585191106061796652988751958691746116111734134957732545735686406944789773583598538757776588195738309494231546912110323313557589838473984802858957035407201116453707554301996434829604150625542106617806565597875034931034938119263376313376567860435448310956283926073217955893869066794037108909877261810896524990155884364044110852861833985619003986220417258072428066000305666094024381585751915127941934068678869655882049882713180607308653035147016143609951737952788956639851233297706197582366706135613815638926058883867947849354472449615113330018656245755076396364105830007158696991166700026125967580914665508182985666187021503482133558523338403869200304440913072676106420018777452736001671878172273656231250387107040111053809853951191947417156389926944050123552774036541323767335755543650842240498132998467918210388903035691983998327020601408436517867437171767113132024271286018889384901366702265419994179785308817641005264256756577906988259650260028059124717687477057338376685370738550957032493519356965649496251123700298914144280392068615771735356588515469647023274009571489616817096391550064891988304316034003931403684826031705470031183020052114479818726722158881548231300125781174817460179996680711694507936215744492293154527288351291805514930173309518819396087476544010379556282926558054705768044990214196472584185336367290743606897168681832257385763218187238683627703355216482785749029628920069094792803360040707601692033654658093917689180540844566477960875692621869519750549601318897770647307306330110800583785466738812350282899793375455482906418653131868983955014096400132369619242101080021793383880227875296331634968312720046167355863053218700310676038086703156275600638464933884562218943170844179079278060672579455204322867480967647169531930439899920603187675436422762146511475914592499863907897816441478391555717924059248017157056630935375866630117335545039986879221487730730739971925790525576887302091961098775082381304064928909140811967999593070018782302687280289139288559793690023815239873414749237726649582012972632024589786443879540042640491553674738155624644249161331291421671196432702910813070316127104922217315029702821237243719204128572528944283263835426609679464807471502423729419558027409483205192853040292520731798582605945269452354964783509001977077756940533394937533130579687268006613988822439318176166056437462997638938272969107707437512060157954772745893539775028990279244217679450125871333403565003576274605450082786841446161050431720669484463214429795775090554083460346998800819114608002566942040090488183779453822789253371143529890042541210820692949934291391996157414906711145160967729628237542915728104399195135938144140788171741034155688541886508010151133796577486958113759444522876141695261963907913404143331972732006471742448089816211198860031034238829083333301920607712139879441037632441989054137078362434456105362374451801080568930170607477083029160491914342975511014350940159403365328500611153822462502667450112061630833377218915441832720428176956142401043486582261022895428119922679780281036341190247388208814649051830189812347574911519031461979830458808302051080949684326584748582093430468414606538488712762639894649713821087572722565301530971985062422170365628962027116194277767405369685261442295608121580643823389452773592980151669520510434122589629691802992738637468118656317322505420711501057614612917533010705077728362362788562623053293814951373599515183224979347396264421751981635296458308028874730419830450820748559300329635132257438924193051131862094557291258396239572598297196442015236446540657924533154410647825275654109974193750491226447751606000279749801859341899021763375258496765202246651131542588806369628692305058409935298957376691074319439335832530977983559352400222857953041072694059630575709978105029449685679498589526761128281496888884219951411286295324189916125236676136634448542190058830170068627573676605610131519058122370205929292206945221583950118488976866039623932715737722544985280026823629878785416130421654548828074644044086421204824855288758253907135235698989804196412291919433236141638084667456887722017432788525472849069246757724308389696950119270944519964796503766776381226926289244273796249063791900833932441353247705338922164814734005327241368608238608192368192912161754664337552772606399724033020093560454653316702000950256801606156373148189988635467963343743333851111040970801005041205335206925876060085170568441009180779431364259575440188895139553238524884410700609163804505886332913980481277130411761127058834577119293721295986931635023455684130000101007868615768760683481613891231330140478829530724968813782598520804217090701100958134755072508510598913236022209444731664862662305766487374378929132817950719801773288925203618634578884780592661019971936011794232285301843641864124433655063047645608878882969416323831803850398141911201038669730020706208016678993663071867697382926782755093201486466067046278405011624571091032359034104768657946614533216475822160528568841479589612329323167041098275313036635129162476180613472194768391650182815684199062769377708286110859590636646110934054803047495440310389741416560585794054717555499000017034320814669563203423365155001015719542240333638374790574715780364428680950605189042575550349313611683831932168823479496202622205775212682057164565429936462356572461689652152073617070990493147422253143259671610536978004565532174969569093967080460961968607391242483995665555123395791384277617304899692580594490752610771277324302265214356273635614450439923975514199886342088295309474120973042201700504320403202764289233155051345325336339834453780236655807621262461993479956639261694330973924376068911053356232908027781604171115766602568140025792751457173132776935541272489701413309244081870887921338730040487033246619532275976456138334156391396799688873630712835273875099846739167121875039770930942843416311609851910204504709843056940285687654247281736306396380601236475796013698536571617514669632996104111882655565801341533318400687347039462843206507288171901373511293946737830483043500419946444028247828927995231867019753411877175174545818556652514315407077886830644654826946766000272911754036098273671735577786002483269680951211802643436195669357257680022930822021186202360681111676150472729954867955103580178034301405850325693791183579654504032411471149478798309905416580881486338483783470497104692138801037031747051089764770264688975577196261909657705450512395288857877163143878160328687294325217953651132885424048578949210788799036200984967853681664791043657775762828998595597414559713423702481258726128308393371970645260119846221806178617331338039894976345374991584936084123695780381944421582135399621520470430790250941219435202067117630107722414784213053311518665663640526006303600132684781483730160442267558691934993750630799500236455170426871312207322383385839885635116847881934511638004383820905104308601231619378523254017460566410889491583992845153378753554711912087296752340268500456404152559069997841683290590021668617022142175684475527759259198887177204331211331212230635439483327352174096201175152224249167585432830231892616653775772450748062667747071778802671476256761543608021947200287875744502111494951873691435138375467304661343006792699646579201272468066321002618046492716332457281059752540464887330633570013698892876738474520117769287073999817984486062690256404483921407832798465719573103067143662761705777479423975399495564464940920252273776715010994066942496392424832476306039020033656596120602967282935845282093376838007706215002452939654381112919322183265143064858286932987324772873453281752430464984367672282394284535882508961378481772324425996685657273408206447261880696878415509885976398509692160541656252868534086379789884150158863248721862587107683808843475392940204226355167532021574394444526783432540037804784799686767864734479187578440158954215404103322386259598745065327475344247510029378266754957026743423726201792066792468643315500781514781506811352612723653491119961768746452699781412925943073389624724988394302381979923241586372816679976476741896672680962917949442826198980009325818929389033004610116454792957115858393410741607567102907728525506992762900342144526635207860476073614796832125967778911408401688222699454382816116077392629153701531026367756926316648000206174925201961085174511232247547629153105288447925548405283726108164014242242556828234472298270586658081862859305603283592511204554248003382738789232264788190928957550775776277569031074696496037472655843849802837641595321466952730258322487512518116353882381232822581528282474005266007392979987186823955180876478180449636902689182930214447505536341635025422611104522109712163335129519113682721496708511161023497629176447457445191787576265077071498502956353164953266035346511875994407441481447371278436253525027614242060808792574362386216297850258313336979723865106946779427724940212958355973773487231911038063279835260683647709722304552965677854193360167048012837126209331334932924623252643921921542096730469016306619000924128015830765413702550300453646647641214388343019431443683402874243043729993790484431829055993937069191208697634246530860043467894519326759175337617360525622223220203569670865081677840033334342806104565804003789609277562081414747788543941302091381446908088463135255795474279520354444512649018371557516137732851533193533984438722038765617151809445069709795883625254473362753313064421054282420791498460478992026673768172770286738423091225548334424275657548769960924115197915177835300080146880265696341173085049913808248771592983229091129591842415401306106405924090960778698173920858681687972095600839020883539183858733516856164396696524416070800230253741084893115710149454201085496280939685014359958830444484311438091397924942585144073792534010660606077453275475648889859081326971226973487918417932843985929194951625768495317343711299968721095138506906985197337407692962575630450564723855887947320225867855225657142495117919616302583990562111667713513378936391763794846342220135670089229102032192265851795240186600977473073234853462355678137707717674385011168291002389288533896941787650494279581611236485971026014719291508084889716009057968961600117591393815235401114634484375375590870311920493198192350877027122604575328696787500377876298991872373320719747374927983242653221788846651866653095692497509580405129049520712950171586608168817984505334933742971678852415104833770487776725689204430711910032471442993084985492991768668878810684142241349808547339149519091357613486818246114215783365387421287603278255620592633197687347539356030761037894736436063691558720886306250940533714285963522037147673748274703972863832528646310407460918478234407281531174276461328225501438889411584560960144283068330654644771183207573290544428938627665355737246423571058326584749560406675447158108608877646229527810617813015681677345862892062306380668493171243583115037321277794038748787672108366111624824178843198635413702898253477851175972067845544191191212003992846121788166666472849213324336838262268109924423812304478564503179773335714505576828106551479768696634479160215848039738931075451166356471518444350187831254938892917480559939257499970445915626255013677642155331752280339911988537082774982162606107382336183196029698278746142088421515890639932781091483456305841317033132284614334314012274324685600887667260027977293513397595675361964630038474659698462746757001948505876395256562088404772013474775330420550301794130656073118632738752240861631511702370752965275588652676896245403431897511058307177289444086381397840323176414746848599135102730107984114323267333564043664046038560915217717035300466087788314987302590801770080195935526944435859090525757557282106526883157234834113975196931461569876096884545480287435036323563120492692798612338988785093746853494843214211839045801807456486750607361264932496450796207618836380773506437532226574751343542530173997872539090026564507463586305217029478917265419406232591120787958499799683435156703898613523616514333456707826593441034862632650972350533631677066338409214100749879791468975001353735144294627232634623681600227651010097286829076904999594440289614910903652836585923462079488264523240129951593625576942043366292363207982486350579914552896830703324152731591899282165256596492160111145413052445906860935906836035980717186767022487072942364780819637925032543108430336671763956753978199044865718222086041084030508322530402814353426447357162509781750752488508767876882992808706295655879311648017916377029069032147690429018625896985977101824529734699167760265717257844176710279173710272079895168993028023962225550100036922460620082472929496572636709729599343813699583726100005779940754507082519734991924745425566978087209387462622395874562237671904753664871169997205013929240501363122317272345545419615097294233532661947569590552093525932225644001664894106764677050701356465033362943133518680866824051020025860413491784904712347376282486887190111633660099173248922826942090493189102588891405783976045883322818046284003995194441138607137625943727250696964921227039082076361523103081555118046434899917483318779814115271286584106538356063060026260242309228967807175194072858683861578493008435076481362706823015417941781927121657076868010202938540838079965446879387959972062579556203659907011863343455466326592925241928558830593119783004540135011160819118285539715027896269930490033777959209965186812132773511565556610961123635428025290110782832858918498414846279913582043326546077582972500575275154013824277236568934025232190076245631222668193605076338005748005385454224464496417992585711609203866673326346591902935400259092806573662513992472833968193004102312458039622222634714818708403718932041358253158631927873943491602067038369587103912389847145033046460838395915393606830446259426607262119346584562510398873291265516450528007664707424440390006962484164604444479222109941261621094917438464528990390221341264387990545286863121394059643266073850364487298208106581556826882254888373934514990546450699664712984574265582397721874610621596236036894014325447617369237007745966664124269015821657358722906641734150570635211785645159035605382068180310730739198995527725170999108155981152510915640102647123931507344400394429797141466203623420569873480142779298707393702191054106016965535314257561203497248897386337213938679386852268824336451683228321827257790219478543666862965013533153671640734395315619898147256324278890818720002068047811038447571967448429064192509723770671156307279081480520017784629082233746036892147866562563593695761973225958574029961961339647362042772750048962187852857076440832278575199934102415560933724103907387116494186933919716567436692993469893195192917792606780974412012980782661533600503301960518691173863694906012505374440985243937547047010158905112287921348100493355169646982915571412645896734493435741739765369695860634304098877612724162479015848333336138381081302589409622522211816660660500694763972008548537354633536813339566577731250104523316588460555929307076693602701067126157167305414408287155670203784542158911776207137739333641664758344410901079894244245467370184942805926304307098603514428135908402083431417900318634716728645275315836590594719099485160941049268362704875527943999889497313420795955256172271391169356560430307682424148158332383693179547301313769417914609061553575066805449520042866217133214853592889177624133977550109727549985786037487159914635951735661105506679728813039027113765491491001544898236179602815778347248703624258410099992326037437365701983039133384417000723882230894970507459363677325021244097827787602171257054685427773333182778329949057919226931459675814950089253681145408634492805919640474327765665617930698562139150704179339423553714638219793494713072975036657212475446515001832610257904473320428909710399194182128072623480679935930997877180563870256333344107187780143120086438522189699403337105893141293285874557788017392338271131086045172644507185036241937008628622711640943649130687926272438419055157899597556297770988216262729628581511915003425706953402524407684439419890994782247954733795811981725151429457640759286992700923822407183137464004761133775475087480686928410712910739497853391960235209963270774317274114261527526738910305174683046385805929892741384159639285620364772740901373627082200504346283347348340937440315494321358047137367902908908922340424693179334819597006173649003933458696799062015433912504988945701037009329487343889371983963292472810180221362097688209337793795763014651391253797558782785941478024429710258739331082186131042628750435770372121506521368581043156176468617336180440581521629788573235780748211420911905708522739065804592635790201229624444925808886137181654178697236389988029966974952468139933819488305338871996546474375312834174922916237737367806463322039185272052914942630372960202896262661092920345560659957548551261860904461667296326260248599697102335243920337572642040462985055470038958377417115551583556765149952828603464085603209227180365211014026743688289188395153417748758755405327957484546863140489459626425793526659517236689513395244726739051697661967147889062649892534586167029720067173496716130832698249549275315814131062817897432024841733408149720875951557709006567087168818259873350140371809282164950176592952165036425961806678068618699244381097491844182341616457472027068126035724499163034402919695906974209375381046574506534884459830247966059201129589494545127580858054825677918974065022332844284180649236994671025568501215504764483324141629805373698445433652813670613831758620838416685874599145304786141510590172201840855332312502981058839849363315149230892363178838163527799509663902732342492811825084688311836075981504638826232470392401124890371831778959745930251828561722225280552987620326782688284448505205422445419109504082026424050108507748182274979714446634665182648738958538394173458751435631818542136647814080438826098137802128487143063709224453911274649739071469135945110467389585947095569699599424617342057625795165066357666296869896424747299406173472605675440315311146424753862889073240351515274432961688868352389161878090375583597133161737996060830708383180634229892122369515331138195250457924122735456643271629451749842716407894226383758255541270810303717064759003072606576835462885003658439708047472841659575026211640308390868973848008872792255558945680098178303216055066904613092050758630562273324913146518776596390773528806448846975892159164857539326875302301113399732430873667886393625102173918273038184182946305104022418431256219567965224903073510044912859639270487778680744006007187885340820976493385425834620628957063376956906818170842965840003719678231576523120255864487130636837226378725214640991731552597048812068464148543174195839666619151421452950881165672620874435678402625233701421542855541556392775712023353400279741874044363937990787249757497846663656098493156262073330775167990601139747548762231940163788185520205374515161105979004350372002424826619322098277121656343220350609300827237241075641089442534593536362673656614955424312968957597123697518474298781788468151564322993813940399734292013253671552567553075764404954709354619335466865469837702976565696414702001305188852787416055960683843478606924836588584640086732753600148576057885855423081014861672871051790376365731787545694432375405881910280782810804463149750641995237230129583291274315201533872524135013049439797622157561252684769172825087476500977767021048741418291862650390886787176044187495765271620591846331422322566591539380050102553183381686644816382828106518442719148428674404050560561192139369996048103704942629859974661475210521927263819629121398755370295673295164740394197775706176550406679294346506383754615049181473628765080519968500320859293847826091051498455027548857716162142109461325355496114163207449402260141452488262264171563776772318960312273626802972351458856157981793499981006107790105858152711427315666888805934799244988915495859386106670602788179920358207407827134171172730108115834067477754383643467938721947620972711447029127845961299617737668676203257649862460573516953949951953950694654846496247146464447922602861908411298062308868613812998041474404820050048433085701764277667130939180065876626130214225694105261375030114413111465627527447137047678244188624735562923891145138561366076980624353389378658634986957659868540825893073112918928321886765454534043935858057804412519402520217800299026841382024382028364073519605676666030401910587933479605268587002955822154745445372284149178560360518996980597175578554323948188954111029744792256664189649106143155307262500963556651134793688106179994012899605684453410120592064211324149127214614200007649568312670008124174724180573844928836209720332679953984895536764220147149873052146591929002435239144063839235113558265939533769740672968154867852784272720351375171202676229407643021268471805984802782753684143601339861218853702640163700063525644954440065450671984376738050818351075047332427389963567733391590594088861002899453484030277547137469549145448981169376906111840881812166807703902173850907690632760629938001705020472821683787697334973359690910706665113908534706887649656669160265923658589760077393430531363559637713413212667687201982127987294991528705626737585377619980721537455004861578354514762928505544211256841054430602847147176061181526192956726044712475391596392845237985342555798240475428322391591676058281069724898102368539774354395981237340286692392665892593422545714625226411269875381359492829455123200525912274857964925154933782957837234403487716885987123469990134435906389403833081103723742264129017741311349908180787103362771750549736001209309706690132567007104854359437841487616936210912707190774540573676821966078677628845984898581055932710625699456106775125288713613241192592968002430867223383284493606807135317873728047175248138296877293416667362576245641502742060450549845023670944589908571277586155409125853237019804570557741990173939810540332954975860304851242040193979487825384202613077989974127686613315920227210045894992481843213834451557984553873606964148403222755625824696488281519904261484222770729480100214845131393929374935844860890867889685453497096996012785460344098322088966496521037990310594981915204420557730988677110225942236463541832415318608638505247158329977980553504964723091597231003019861735293117069481008616424229687000624488708908326899921176422145082260388473857445022101213289476003768619513923755756414585292326552395318073791635482652185038238395247883742757012549075681922316529408336740407062535510534360191207182705036203652390421899323935875748861748814935651522390370875001562406513769500508070289072307526143232955746242931312825201862673764452590351029140314404711374320252321604101339262359824820048050669708331036515339897575816411549239855234578224149319655482455893245459307560910248363242132482710641884040668241081482665477421499208768119768649834962254003553212173213221468092630804000408642772971664049864305079456837374952374000915668718147467631578832666866955366596192861944280385114013181731282518899916045704594013562567224443213897065403849617146840101937617903549062293819624025505985432455113507550736683218621201651561616482432306899400214312792709879697186609336481521196067863010659876115267331123468777237131282023255436341709062943042526220443572602939350534033922035000442284045951375445694443716899891505092008552775077710540092499470170827470364785821686458345308729437357452366031921581162923648492568901810137807152271550783252009094978033543606794116206739660248526980900207315803959939347477017528632208201302518793293578366926573995464948375567622869995419114948096294895619851601828847603459558527514374036529039252091894262599705337435068968780803448692959690405469799256174099825450272026552361401055265011963676667583967812145987994835881374095898920339034521771152915877776742809920003400271975727410082949861122485755440905495839871241169525898012923222025270134158405758886871283826968435509492734854894867127623272341144201800008122723409063860241245297672103937637200111290157380406310571431443578151190275785634738735975537398828148745051227030420870503121623080186215027636808857362794298722131749330052137965116318954911625450426325577847879620002865210029643315418444157910550369978996525042193285095946644402084614227900735733934065708772066091514222023394069735494000993693078490737193821601778151694744371727334408479421993392231073765881872231348122512081320502176243505463824944301970309644524295116570887942033868117703010834031618238692786819625339639618332783831538359453875086926748281284366534462173929166401223391211782690110137041950896044416206479678101832528662011790772401801259432335679559139290331244729233037650903207030438495551093761406124925887412008098953880910842860378396372777999438690939562328300110670883807395573974651527944117911687500620644172434976917529292292836562591611765010827980102393257478966372262315345413693220141853870123647304081604427597082294320149311874080094279493378211310389613439664458681403545343498234501007481948093681851133908656186100816810323796725409653281605512271172850512990286947378288869512541959780911120802952718998501988991878801074211738924494706946764425018109987165435899237820891762797152713148506032172618972728517951738648023352891160835395699651666305759795084759260850082628801233026233132418391456849348542097731226329140981595153183723765854902743295551070328836316773409899192021975485078431400037786697738462717742410297295164695540152792827096133891221464932538194672700664916086350093544884880616172319280991204711612701642924348280356919491284146676193701269841925198230300361047757826913082915605169581838199863570982108120076904991226153911095057887280971112339788674793228556156051718330406501646611518611398142963622966603708151375085230492797205065808640216712410140701851477611051900149775222743965126603182146504791851952487761841679678628608401804477494150206562784397552458714590334967353864822219242173447640110575612285424626122793853509949142712496170424180527830664966068597570097422199823529049235342608866158396702680639657049004139262461803189420613513200110656160867100121993153664405644640327538056923228981779902442988069259374584767080334814770711591598448359200112120672418198943750955769532571502426504795147605479405153410885694952449426707686726261996669403011431622732637574619236154058593517653304387027722559827412431514318178054570145850245734801510375288732197242311657833043275769924490975799749746614249814217512477391979965824414185691510530044224799435492852431787165972496817046313491158558082434463455191937353645736209551424226959957878020255308629163014122101081365836025586445886196744868410848070598612112072348177894747710868138995715678935410930789139964911703893539293040640017196824746155661503921489185366564493785239220439660726334766632418899356013880526769294259854508849453019222391595857736305751290901512472011806717354341896598497211635051415669084474558444981957257967765500451552877380776801449379318645536450878678396594529131543701660274277977339333134787958802578786599039448529036544700691351134932438481034236449060294128579737461016248039435831370776529127090625802615745159679363941021108151058542145907683713591946648475138128590488821567074229535981661041292788392707089897093351859438637697914611530367627375226959393797376473316414834228486048985548739180991165051132335817989736935540073679590059642288715514857019094107531267738533026797637425271436153591832903397780462144750929435787354662461841533910212762604135422283023841248715563417001882401463489110735095141790191348818262078632251696057330541858222250858156661614695976523885782060296158141670072402962436619681396306899096428843627224359947403874750105327966859133660933910332259629568959155666236553678568025586739853814352960333441400250403689642034083615046910913640085687402395072336043398084437822432757964972362064824918691898691950397701581919684295471071655981236733423640480290780664898414203057723775978891481595280743204883754362288565172226086463368382103271952034473468124622578285134760188372735470531928075874545937403944955506787528406020682633525641186722376996232162566275926491285265241011132791302080535168404055191785399419804604469048927939001187815054963617672586996504420605443426696357567064833157510574638690681148912132127518133359706685277754883471431329756781186947468842756846262892564858250871829161502608384038467971893979992520308924166143542198493577671313962803354317216909351533234130434793183210489428972413132586961073059097942793164709632344772550366762518181493740266806747754318000332643069192335226080875325170888914437299026239984118384150514267471687684823492578161450131320059419939238482046204423183250591039633450181513785589030879703592662729207502541483984786266052818010712405305018797687426062711045370001635595752045518388227298597698327851523995656445022405653872546312602753797873514981281088954655348058055259559823307656313310231187597609520133457250888401178750209182048339677951219171924342271701931879822503906452109962522385332150415548691455796595082268028202692661023262044712828188735228678858429827884022318064968782931314567823403352931637981720630438184897969621406883542567116121597242039164943535483268626261953897519000711270570204147832013203774005805456192747753288449054780355306467007671435239177049325477431023422590958579399993597244636344820467037102460694867698118189495291005979158189177916023418798204097753498767798905110591616906231779045200247659305211016307209841104888894347520994984547970965366827667915057776636917777241729887138791171163130390470630602614253261884614813131950800453702394160065472778784793456807565163472943167979459528247666532992665733583408700159704160705985066291469425112655131460361703660885750790839846172687864137932232367735634748139615461765780698465018408477825873250078441437055891437214624568977746948760190744396497232819216556676502776338544313654306330788005655942457002337876291351749779686992022387590575663877266500581987771440733428615184023130831258638334935655624627468576485524420492131003303529790797519510707824181479141677449737187226410196934210677953210985725273504858158263534370306701935133117784667393196306939686336789920313510953333808619152943933405813615166084452803256523367187187303693864929403143948722553059625526544711603839949405259726684128779132727048922836966484724547048277681183002658108107347875471687296289359017078579818204378250241562042858183196467749127866129939828111313331919528199387656895193506826326686553659216001855777547842914269277433524090259430246203891128534636426046580774219894182188378807559972278851146762974756169603757653003319352891034682530601367525256967811731356948964018001091342430785350368119503135820988608034052561340921859061306929617781888090249697146662268908752682371600430075438030725721212637416935928625197697843533408996288339626604939872870826934508054945462403870399174282227207588119296000221051994668161797826195762735199863855653360886217020243885735053684558668231051169791254441745623063979873719553928942354074678779860462792775617070020495622953113345180717838815155421775641724166570049524192590036284105293962695491263092069936261669382615902499563567271683762545414546605217568126297512946644945887928091118097508928912928684542624792000632380775688753995339915593412458340108441888916909133756058454265014056098361856505917391817941003011164911098562099297826491458077979729133423244159028554004782501528006961071334179747647695969757594795493071425603371432866900094032134085740107253570013322371012232560553229967551192553460447100656378103130695252134282018856671645879503989882798752245666512368376827595390939215304694461148232834021988183039220571938463077539686025444467645998573455044024132654995960626683978119509745792295248773025233642812960057724230718464635416126393147824319501551607298053634895223406198210179937518982248721366754678285665347284337443580076068774455631567760683007633599891690258163149095835012280374179095452060218002987845905074759854437451302318674121386771588366955952302286887001307495924900556916306806307213982205900230435385943943041334469723598934753177414942558131340949984884330331371947953937182501683467721916751969221712386773983967888254435239847370652778935798647924513736228640473108277955476180031888849218950395015462109547738682521173763299478222200789662014310367417571931815742222750665864118070468945989949649974008410838483896810701182364326143568598018915510155485000610011661080978325136837683362294978901904271339845538378980815491679040264916534863211093480316283192856365785476503792443379362919588776983576648651335754462063239303211723659815807729065912252576003575554941081448543033418377627076392907323892792623882609529366688787051907254075400423249719698949784076351797583508698134510650989172109415259457733550930990347888849673915432799664880485852640844482989377895920023567358300820992251998279363563491390524538851004319417315035737361873090069244029721280137051675312541514177434466157364426578426889919643794085919442334076985424690900544488788571103632091973466145603591552768190127496267287698132219867986993396684578479379643503959851171857884363322628553276007955529899251149325639067081647738447479573196592638164790012309862832031396935008447072615991074540590764388492922578020481860975630134214820110004016230532450265290440644578360714530034275938373758042665921193665996172789068961586143432285216057021567453670452318305314621152520206348967502304928813287491661471355065859393239623884642877071189746020361717967303935805028758143731055737606411098789537411857362429013366326221138140865427447139681259439275868184126485351240870827483752373762951829791630422617990832454323580019460132204975329381272115221096212255510029227794566651747362579374994197728090592832151621542004137559437848268396498442510354488722254442500378626568508805229647259642946649008914502402024781065309217999441589022006674248598805030216095775497092492027513314659268413132661966515626668908355181457943160472898406698424046484129402170721775755714143905288590225214656803528621746366502820584496055448846650914961887543008240493643755688024485522134037713257186058314920756135326279226851699864714673945146546265919868591707711520950448125881401545607961065362907482792076089738970043237299210223820640536125780175370855983225700077863107287129269289238670626060907787849993761162659919570936200935494173392271579468472207138933637951332790793944603438731381858545740085706029096627513571745518089846931233861081662507130138015253131975702084397781624775134617869896472591671512755101795307567942237177411816641672405950265868450850681812046375764651105102487084737478187081258189938402943864256591954717033912585153745824607591775779347597875028442183550623865462940549640893991406733888248642840799903097679740480454319371197126298103204680605527283737080220757110435596369458500523081999834582578975022516175652299807847590345883129531681043535572214067141862660490332950211087473616415388188481599129913725147303304853231590744424695159600082496733616424270507687591631464685308097522087476272704135708981143193653229689471905926328132415678128982643350874748802932891374099084977703280172059081035398035170800743508186934611549919946403447902969841492355839027726187970816608588094560787820484071795552008031781555253985241881589534480707936607990947390635639542319845997701149248744611643165689435334758277380175664043064815343071934565075859163335689735466480600046120097132092239119322240404682614760339982640945557501143780616566266864335074815175323936233384317980087933757952829421468027576426954078230486678175970714893388574375436184219812987079383140573938770251937510806578480811605478741313968880840320508773075527899354078883928407795412334428513140556691823911879799366238919507014783438981733120132287520376697206289806347659138742262701174891645761302369660597312039574230099386198938266285158079834746880244223577178537616770961404018974540946843166595173839855594516776761624613154752912391981029779855253870907474370945004101591502823277590845911307339864608536540410626144277849520832120175191069720598077230272308101296221615791612102167740138102182571499523950016405661005653062921200081162781437834968958314469891789418616594613476414566989674726516757246749654196095539243649594369294468985329986238397831231125359319777891921659224168865799188953898705068031003164307832860906357212433503627819498836737422609743471542737118755445236185890151690850840676424659233595639836058146762715753256058351760685631203951170599699578140760117546432878845178684226392069806918054485836259458706607935373612260955809529261362643150784403053698658250007808902822599010285045688425606744678786497232673281137168691895895879491769329057370532315725796608539209653312503080674899993230610944563675869733912320264962875639019822028417782031059189620744176055588422719373055997062430611204437767390590613605001947084325821274228392857034242634735903566981367407350659161593143565166363423797956746268353066350395192731966257539914922053042449898724917274214297918043223223021641245975079349835955485140884842084805338507620439784220075184007097491810984402640931329016237122811741599800737131992400529014521259736724718431195909699274728705892797809498736551804754913680496646955491407903063416898529572257552619605382185055511761941192256095440034922257002892633860093360303828168909752222910492653206696820338381399694495087727920317977337944579583184629945906444922349781980425843284740293426500721258892690857990262431430349644710572967313843869548153582136852132016528556000803889755329640958968504948635979158972406552443926941161767866218570491812208819639671302740858107703543316096048518993379902901235820986786738014364461486071421077394749568403860362136892742732402533442324393159633901801270162680299009631554263913028408425817736350813231753923152295993228354189862498107051901750675250598977892982146220747454544389822124532501522548223270870538195836004813157358108423744319943193793020969005503285884052668637200589369795285222940657574013521436017515490375716777240333529903788830867262936898479331690975642612632663230911179865201178262273262062667454827817977510293784350605493522085789781330462019379164794944133919916172996924655068534706542712361970203871338904882110921746223749139286768215815850752916966687844819956634249429079217098742458873233811163392287681058335056200181851872543694742220816726123336962837909342762721099031955500207392745085946069676912592071769670905176893692338101852815609296684774964073181839376545291516901101196884885641354551892228716849555178807699104612052940379298966973517610514385186653501316753488448647205685702097994914620481024746254857101808721923261498040177930953611810274210162714996241829663878978239822304415929850070995744208374153496763984429730087741841202969173748391928095650324676775029667966505156843243583304138524063156704325925320866567723972764433222247560909103246441912028069160226487856609319524272337887795102844630346724863788644625733218883488462302922421403539763151544689042819136501753340078638946183421801590580995411796299423366457037752646375678131602890784453024547876699122851995098781925439437749661230086988231944543868673757456602096194133657610463477777598217587009459785131517231172048520472343437368917157028204446589831655167431300551598003055776650006135362384045821301110904970728046099294296112947092157883237897894285772715686966929833071221926778384396387235500346856665113557803335811751340680913356334308090405922088279942420266567303433354869855319028903432949655543688874346153698908447777977955380769668386896017836981574730553757181967639206189293042654233823738210487796061238840111574064170776703905857746548564300256396363487647484238824797165103071698621661215993656960334811457746048797621531161116824125920894457642264558284990947298337157271392620472935338780405913015129185169187658253618051265618017938298849189142758087354799889940028647576298203241210005643326712565414800961707696616078276968210507405629877345037709184584101310672823099624478502460688381840021424687538613541903889165065357242495411319875579254148704700849454141649407753579696438432494150317537957066162197330723959617558972955392399585317439761101390462023004465592228342815678824582405239877132366380630988090448525388968421690252479535517704532944506038664980919793778598925863379120364176125162826567825669178106781664968017121194107977584316733758282371636154726762417191919484008039023104852580071002653748194079525348647502195782056376927872939656411361085901214876236385484734074256336516290715736053649199180002951573896494850798755563061279628456565593828546065949352041467013430366198514027187031272630172498923619949932153693614037703718604499571536781965602548568131987586757897657641278852164024497428957655175383496035526033257314792144983695191803346689314026112405312122434407796776991035283023283741546616395687045214132941818564719064527198986896904638852012983368533549869091204539236873521483029607040892353284716080423828290528502648134435695781255150780519910780788007751457292076865420513803477757259582778452390267464145446746135067140676962979358767029699002583835862494372707587708875779898312137857590119733265112055230835893576374431662147823838602155770985256040092804637131240945793801676262233892003493591194592835117200292427105923577889817569165024781834035000405628930837422202993911296597535174460904287771809696300577681249937560426325369871498149942267413503492625029810886702590129160631271747725507152897567952348452383916166346499284911428213032680925517828621767956502168695755266548393131948890663952645362024697970168583575087425436807321950850955446191754908262488113431253805537456178273195431914670078326532112752021581026346585349388697316460600494796707852850295160526138021810697096440833127579958222875105557717386857645459059747703383707766470422536702689299294519751215801799479804123034552221689035703394505471733721647753735498887514789247702873844186717361638440929662164589279494721073781289162738422810778736487416410903866907896933277466047279667130685105729587196047659881639948486031857644872258625635775303868928268529715099263488037436505718473725820850828102350796178304835698138680997640711336581607375834481253106231670472987499570298756542963969634494210043329164340518002421094439997858319192342442062342909494152499169965973979954462459997680524794607022108408976661654056579459608913351110482468543298066957877224479041848304142592700938357288857287753530082585718342695928153500174508732011323823001327581291470597956720789505781725645024083315131771024067224305046100903985706100707725497058180258879693474020368532476069397520328078653508235693354437624824476193288981768848075733991902953109287564302378572601655919277583373395089208625437251070841429265349448811217028021583651993918068770388153503245188029430258555103780549162907712735089758077021930110353385475982934326928394569694398207376013654340713304443170779321141556828827898926751696208074538230691762646804137429189368647819706306210203617548246996336658478157393175133489285030035517036733146960159759094087747128985837962094420272643626865003317177940354963565893487530695403071922935412820744684108055222563788486634464958475458596813591702581654462531569525403539263843330175354282470307415634590816692198039034216874580260300080849988268052761386057234246828544251552035889103180310272158807188088670244418639734889729254807362804679786311846829102156654991172127924080724959880112887667739816282083484402726920729851722917887244463065578454559517869350961415003320261716907854720737921570014926895315732326877376437288272373984593309894986573307429464864232807837434493405892152220976315971580637316302665631984170607887701327243346616248258281218237700907828317021755232464059995404938275708170811671154692207218180655369318375766988991170284534652993634626232990385618157295982055449513897211463061302513201004587381005373211285037522569786479070298853614061193262398994974250189257915469169598199607027189484208815990451681330499863502337120097700868983744468512639193767617023902265893867442864517940823415389854655257019908192500812962174223700827980869654183444077453466351713803570686651636133287753791113956953492600793522892001784857531196647684866688752776449705936991189298801636568797687128470952066893426987066170207047151645659744346458272669557411096557576847349476866027952159061025641890441982704678178256815314523753367125791143642448791901926484161455821774999790265952396229630182591841467797431012013538816711511364421812930085175890228931149386219962517067535041074857075689804745043935578394679574981809099763473276353956243216914784879407236594087369220321588321834439997947067530955840948277329491679209159810367172054233829938019455079504849632041743497509815295012661760731508673931708471393029116504071465349326112050876859414274914460090518279005630497890188233622819016923862045652972325558250824731592918376433474518025635053417488586707476625646301088234070419999761085854420334498574126532539280614293707010313441124662776729981959541785596829213081267611870323060282501647759313191058825169893302346130678514163764364094563360571104470749196035988417895752431562834125133222608904220320802195120286174148065582284799594223671257010182325980803619898463755302852082849378061637801977482156933444440103531549597780392233833348053920092929896127988230486965288197108113511781847719474963442977923237393808702321184223313602719793347644163412319244591671306218918707010680989805944881634618411667297820066390817759804486626543463395142094575062400677824500555042102587026767746350082894505669593797067789823253711706140663261961610861070246222939399125006576307140981339018091223330021706032462909937945382261464528128235300711330222504822016247544274186308921043130201696921556810166164157043571795249268895582254979917937537304621074369058043949414571893892670259568011802423725981093931465573446832499946732411130634324579681558607819722220514213462386628652416665554380803007734467697149513504623578953095466465040215915025044589523828695200390587167714688809554557811846396516082781737726737509026312805447862832285437547778534060322570136827686988451552913664050772266612787702717585051914890013952547663634475725400941815823588972886036614707325128724284811602356416157108510446330472354751496704578098499060382714308620791198338490145333877600494391285884301692938748005989834455072457012276935331647611547572101099615416348605203893221549521086087160760108183246332930421514192886460276988819814177361382697524782638905019973263096702576966287284492846841476961078020701495295813406498493605934293293523667909257547136404599494515301679925472307746772260351206940179172346367588148919322211963863118948192158612829626769529929789406636300260049506239736437929719071919084845180443626260989523002390358926948386400383900499791854270316219353080805003131485356159074050805643657405303979021863109758033077209989058977097018132462870950326472437394313634029192348245423344503220541135584978626850342176538483782089063305774517592657749258999390279432864269442062788233222286551108955202057768932919731881955601484553067391763931720417897595678704672396845528228646715515902155505503253114030663091706709287566250774077350884327163789811493787180014905244301362120020776330548943054381014519922058371955136672344402247477805627488855083524866824265795414397660852262588712233045406427775380972653138518929390799978672109313488145478704224293971771735181083739107444951408646367465180852769193367968595251894589918773128305194149021926500580997657258341726430607156544564558201600832206990002894042422873669827590274053814715028550175564010128760322989135349922976199967093529514084939453686597719831770611606332708687767204550149969761730818115596102833308701903324515291860726732502951642821813212341041986957320423722837687571697049188494665533815216134184973049903231973386415810648309412550601017013929803629972442174439268858691406802046610985557435873955533243604873303948226921747176483571810231847974783243065854329059572602857868096825652809362843868696019932413166598071087147051553540899131960033666543473045481911391211050897194978951028501232867675027460462769779316943181601814555441694975791372068906436572550879848515787506847474637866171985395278673766748407630723631853734992607305912976488679084652762922164962893544457197732419413354126228794809014806525847630496705013612170661989968125901038303654541217503942307204527945507398043538435742292160613243099586096769414156756977574185329942852471004112562470444218930374694325253580209558160562827202456732579765817882341173916712716382845798071337648531264279302088178178919809724059165061011676992596808739027287368766972496310849271542723290775829698263109060127242359011878159677336421995899148296860464586422826708798421831866097621951729061066681404558927147572609605188314859489857366709957570057521990081401629557072572849214386531342924929657965865657799740504191233867367325856598441219832489613266220499719094195438121118549935470992026717600699022408270104270349731118563354630931421239965959467797282632840572723764482148479592930703459077678760515551307285358326652874486744367947614871790762226353120470468011361946579172994485956770322667791677257711328323362645111960390107562938279746545127166969448777505450604005281805287424792239756622865920736519128535457804051740150798212677166204497694961969921993799156707445158877353346510183655506452071876274754792431716623718934811521738263934543806891384991467725777031920559457979361265275747377678858573771859507602955630547527803792561918892667039747209199513742634255909431433442721604547360851535578241352314725326619423728687639847960237019691480171551173739649600131536566538819669020238499114624565771609205417486742255655041995475369185257553822198012940609108240272492565479723562282349338649733606219566633037309084056685366827616456998117836689247252492873658651800189365346437357982457248022876414410708549396040690567013127949664139573897661433883081000070157198457789870946938601305648480838818408279876440431698222317132803491688391418976675366487377371435607084891361606895995758140121432959225499894196406889684783522764923836314181642675565528438595163183987925493216311469350066082810617908784312391024216802278762757570269957234522145475749857252119220224189476511075154106310213866397180978823290614964479483919961388318917420912900893789392412198748760029217306234793408951661030256452312330296871564842326128964944110648327648172067568064228752259742296870230869962872788270667578886638952529682553822506833821176299265011234887695557432998864678983528924583315437016393263923717437306561885361984759021492752403505626537887230275383304875440861636116958409728724646591744409715554302249580457070968937672480742857193394133906524648333046954634913875451950078499917211466103993097861167504129017056894005091172549365494637245800352548267938522361449637940971194087104011170655768471236970937759026528600532056745766650547064652549705211240989039311097342495966581908277015109059943189133733215976888493435803839352510879396642889286105567565410742036790218385722806739738844712858343744458385384828982572014869014315617770015195189879667990302537607759761724194735188011517281214495022593978510018008638293175524739407304757499742115143664108956709501856747872167339020407406470845445798815850084707684930885024919595282357374631019514678935707864417507314197902409044490709455289428010789125534053728954846831424567416215170076012513833070559747014757954562495595203825610852690360556837355257411621821684811463327647729075559171816166654965040143307747568391167538732840670980809305663585772091937448051564881347034110887629506046247456577223187126884262395614960341260022828791700280753251228218189342919250167410923040775738764373848196006801941203381679502213573410959676379048959951686741691008231033549901082912841193651856806376609580026152451591375555530199313088681460027748843303235755683938367257170190960616114159562573253270259881082289515520178657777019898117587205587001530747378504836076165388537853992061409985493795612823060286405422159985911528460463021819455607024582354518802962402919129789472833781558600463380137291535753960179450191195349910140556815275387937062622580431594930729328005520721757802676717283375646580500224154123286771000933076702346623118005966135704934054109681442397191454774358722072575707311746925923231920709993290441526775306116207046192731627719367177772034469146532073712140511713381933508789933454419897749318679432540352271450356481752975129702778527803393761194653119165318828029495394407972302584794425708693031661538203171604996592631386602700334694108718300773564638598755231359079884693698119494281849576965219479367774152451927985007996494549267897514347321604108931835914367217367072458224549702374091176675715231640557962129085273979857930745740392290182341939311701510841548865375793892231067424032542521309194017932783204630452402117045459129663330797848024431075773011777912420983665722310726461939561938667445662716371590510223980775875313846890686075752042848547167569448769307858085148250807912056997924653848957107289565370593593785382801929401919568121181328428421365841260884603024865496844419387606700347659709147878767041952972224712617710221149842282289602926337052960291554649261209610278610621753361773770617992360589085663381690222562505872520395650257793913031291336346824400123172764446986266068539263023592252086298690956083343775250854885822820578160442638692527526115708630172574069394204869955033476480934479663586974427185302260217656631723582485622238127691182442653108309751215312652803366788602769857051158644483978876589977182414562877724364278677619809390275064393981559949525266539106571983445657899834809917806868595986087260567167802854741943984637414408686085130466227009268255144107283253319864913345254103298777840442722007113051660880919762118846710914147589235916821387399895340072788151164790058365727580367346310496501311504923263301756610722073479028346547200887802174331397044408169199717729981498645029227265649767943651536797072815340673816397885040867892006417366288710453188215232759796076669514533323654246073063046498603741375675524946090821660962148668795152304672513928378473112505797467764679309776288730378888085152634233053670929926957843455094031218477682471419676177291759714877477677436608969969828319686419146781413804726860947240918446328734115865788277075933284095266542249843212185268270053738286329651790493497973071622383169565261823738190618308030657604694597092622147284551449544088512977781003784389807109840737199305273271267959332082138917445173401351847494128425916719412647665100237857992962269917663137282233440832600372270362605642799249578482761894228739719972760374783303506889752115198460689921469507417720473716972377706221814970033608347579874390323490454657060920606976709133548135948719102317944712942648187070957794516512996045402336715951236224723667726685322515549766616728543919268281764463554951705456831597001925523865500833233454207568157765302201640017785111069992067152018823774924712403948155597999475782172122914588100914625250875051590770066896448462719383565810927586837246716923183876698382948438461658469479641550253717069278183499484476502165989110110062365827902930144876149816367878303865534248854763187417406797768691406080568530532343232240566530060322561024571453300970727931543931932400095670125496067882479705641970360802949425465672926775008411884525446834722658264308340838279636526668567526116984267007290500311486294264296794031217100773950112026994973354913307649151066599169100598830393106194740295970354935221019834033382186064452008850536273608773234798850782071734156566718253365363508623560660924780923163656041437465235014851724834323893998922601222094492705813030700428339445089220769555007859402834030987246859435604270717203997179375583067555063262855745368574466532077619916233137945112429262499309252179910565121779212964235841756628986588139412568511938283436744951526657495306271171874102241162998564644340926708410928387856926557142955852000539677980031697777283963319945830121111324211220285721749343942421612176838033046677918440987640083022596965078928686988224856931301864408061896838789523080595396761367924691339201407261880910456186656838163775678809608549046461472680898897895811098247111436629828612861296416047246224504292626827913332360946491908902045030543005820454687362066256720655772202968390338740279513529087160947037232317995004759238064498034486968001180631925963555542473026009001582491804243522262263599464553475071109274627563545748592409154434470524164333975451266317722280072038343472677182522194867301926832022695968473776641174085282748463862161466947699350969514167184415749582545417331971783653317462548360302417876749607781345454702731014862756341856500007016159690836515103218828496122020835168233827809992127054365519997537323681628320930829520621533975829144293817162559198170627786492066966480871450526157492235240113335303359624358804652944046925440288463641378985405560565293866716228955344214733906508524924727072058519844805362048131258164955495892132158410113575676611359087041797369550319938873753702693469486727202919733568517757545045754794666224290001676841065548215491489932800045300164564656488921330737386061446829537563647626598135582361883091575445433489443503615212312817282184458469043455110504562096886626954512960469430886009674778831665852671806046045050033761099861214119637500577010914127296731805716217100234631283463737478549920745641643183506569431572037907952540449900786293682307105711948539620213641304029059307195479697862977460607866771874934711118850047612750532793392116076990364742180648060092099311018331126666191949051499982033679022555596184479237189372984738788559731031704243961230570031215812326539386154964866289020745623786014064343067349172698219838317192186079913417937552763048058381317293501165600302925186063818460367513798002197872998453663355813767902670167467682188215158970014419825935496765346782297209650682430558982540771460385554058813074370027883056809234144323107644941088552920685765365368423467619052643545091904537180027157458001098774223234915291995972180846412734057167086251138983835467533252607854091207329892401980860098334965212356149911469240478791329888138846112955772070524628973657252891303985243456792556103420013828365515197903348904984842618722660489696126105056320335695532516159414445198551413347820334418214664432331031810270819081391008462038155205865998194806279871741181569549335272091634497052829503331750240350504799806736855241530910267080118869291726628879618763111435111777900829082545643033052054178944463222525707594695604148194974418597449104571492550891837753327826519371656660667586949547092320355003928823339954213888156376037210327680403653394745344377801858101839211045236555709232418992537734327249981450176066565677938688284598830045252655562237159435964932258684864857945335080995993733519392858455929104811092384063688182009365024658668097666439373446964439579575565049858611162907452334013647475567967453670708999934462733877874865140917567955193558836519718327714994467867426675540115915727919585644396372733330793499103402679041939374628803892158523141033232054561512777628698497255129455430722373931947808841391733245107159647778808229899201829822805306708239142386000204715445361615867649493230414836080613524900408899321346574083792390132061124556650111503910437706421845977702118950476471977320983487298690020149522080358950256220415983922076148630378694605224963800612985407277513385139316201375777261521315131970919693498077063996845854517553678321222196525676400865653568795105119294959356157966632366022559276720860284774516707098733067202334130710341976775461222119279302397020253165798644595373066187114562985099718859966413325773738717895428381106723771223326130186133208969734442163675084211145610066795360921991389944870034395060645741150367169218714663013656974597591677136093672088470161749573195411876064758045748698346364685523755134765467228709330711255112718504308032975061459988582330890138789980034809767552526279242076954682124645705134237781125311918441442179925369528697409542905045242556969539119322077683365275764332514743211987985095755018647016280794375496940233875479617568138454932110330843787670201490822489140560610713817591180343782324505956619091245165049868306065168857670358599805076966003196296253881513966326479683295251750683507420489383307532712968628938095121206073028465094666857936719152666235784351155625592271574093869424216022385569366496042458889285296018191979660140189423303947070548089178345496701709338864176018571086575022855404496715529101684515877077230118395659462335825290080091103203227265721557127983999644011607978349716797542942785344209838993571517366074115347908592715036096246500958902041182762277470498294303669854848315209286676443103798620264445686058556069692727038184775659562113734283075664946030756362699555259261579872001928548029495870282312594692460343540360723701618120307808614082360797116154418873044031383294821821527142561227192916224718802993351853273647122523263447277404503482104860116874563218249752419543241203974472152440352617634052841129785231209307060151289583194788429575546835499103605112211354311370148419608362103362516948003667281210530265165233642285561359635944561117734732970097246914335509615278629749264283991001310128470187453609962899781950077415121294607661219444361081856136003216014436515887400804616428962464757637713579614637697530541453541538288015264904452480020955806991618797252143265294738562308136647356987613048345336369539897792515164515407813562592432431373968136344461961106263415642342747805525558686050673097212792858890819927707817495471211257098186341333292444989389044237360962592226384402318430937656891913730132297596710425767827550629272037590552152123429503532351438759083454054463816137153686591943537216719135001492912693320365480463506088996745019647926989959652469617221314855774799511879784383093398120874252173165061548367256121021394399271822237989253575074518072983889935403620782610955976796640885059015953149428390691843576180623792626230650494560606151205244110991263584038066488250593755206678386440910417330777167393614701703815965427953724060346124826382054529140451215848521729086211160518534365779713064734745789277035012367967796343503216570132477785284299262913380470519044428115383995572504189852188009879107240057877093048402860737680758071453357371810428289793107325160489632854313984891900748580370451107480879730224971482367577909704397954345359529955037624693426376792128105869147160603711998111280065046710149407023492849965053918795405289512305095068099390850857039901763735269150179242381514177935033521401910793508061590037740123702022930750900807037415422526323335642964413247904987140279731373170784287895421071390580133985954927927179012521615186030518124891224904540054375664963196813633393904859063613334260727220004091931731129755326638069249786407381926943836386066244848602470637331974081749234954305192735169179813544608930979245199909364747927353900144776080553092142349598550099360918842695469026221649862097923929581923297774018391850962348372654983584320539601565151403434468535531891543603390845045949182516564133444929771853263108392078307941627915026344231127151806841468187555086831074975172494101046643264658034806944532707906810418996348307367164098793799438368250097659792865835036913216585286787246276714725332295092032796049428631349318645972899103533926990795631047077405712314313763646494473182086197166533541103796311497933332986079091616000799301761051568451117927181404238049952008449455319701807424272254199396610700415828475774295210530562569096258584444008440751528145557634500900537799155388320585919768653605575648889819847275056974109154313998596497566701531692786382947073229614379506028461387976618072933537208660946399623977654699824665282782491587262826692016054128268732701510694839563483609570380781312473645865217925233421068661902995102209753934630006079835989720325762263012668934248977441200696267357017239280565942323147068489475764937320147723139782735248823472148849532676599001535576671238071515934292512755247140842276810583522425358741134492807397936706959275771253734375916067441017164809736824271331631611183557949095361811800908739589456164943176946141720592101803133566036167898339296899022751305293332705926436810900633344705674876954551494694903176901694495470055842619350477408264331870696089834280569718482416052134440493554778013503639007319918325839717972186012694360274256203012146759754998648270086104558937975725909174632324475676713514099396516254533531514841421468245197262517117799680436771711315682454721607458473468349793117784869009038583937501081547179767057281052867075917612895368756475568290967749782451775126705404394314308500856485360934748556260527291921458995836165797230194010753452700606085209170144279270349987397591965680245713315469963551966719021772983016617189268080212949113990567673754089355705655000928686240170220795390790811502102981352074283207825779414187652005356108057508972103178697016085547802669324919261357265485450144651928202431448534020033725364748834037176258281764718927981940173342682582472623124195646421465284291712025699784354276878695976492021266768570317326645689983409286858411573775144448144834212459525806342026116751686089017478795743993202643385492853201943974477911141073788852864126083961452411854355423841581728002158873884946020906684540658112572002197117400678068979221721534962951841428518523604872855477285669491858381255805265310304806705517334722385356892572165244561112315036911617449899634975940487697565910058134679980201074097499104938872954031965437834592238890202261572452369267362788762500665618774926039532155440595990995432096918149480985670041836024407422737340954156405135841879252488275607871730951350569839124942510199675700618906782236075327981761502670385221416596533718164186102513080651738259544789077023906728086270910720085148034592480257048724320564852426325489158872184387517089236896385519783127071917696779751280758545924510397472474646004185203766277602005090571114200135578468315368633709484289737874758120803425830655459088256338062303924715631899831361395392335624697530005020170693926005704801269560077218497098315181477853627220030717401312987760960676166080073314167794813558686180600135076938706519816645645467295379084200407092850914656514028727286822643495112151737710579302820665670110644794090516020210091477381836340004426455270609350294484480940618662859474024319130703077082637829084399874696913575983787189038587402508054817917417822115361075962079705153767496050573245571144383592395542476231075814511465424230535825099344782675441287883519451816592521339680383132645686128424745407708754915074143640916166521439024992397770147885229661136331953796119322581002618379865794570617948919841701367042266186467171548739153164289220401639033329877184967911466082296881744952711453800318083681070710457997284500539738283185441092519589214380609923732750039264950145670606984914218241324121797620168109429721143773200929722113013107920020041801836639450418514272829584176616799603403022182327748055841443924377921280986577804937630098368324469456025068691213574742899880218972212810320581280954780217877237098117599450172306638801403162142731064719446059442984278257546755011622323108371582950630711054795804260204951276367893821576415053222086592364932662452134228415958992520990939528645542755734467687212555322457210806309180113716823971448825916455537098681653841224253639803644127741838089630018461322999187209584925312786145078474623776547313981490621320896560276721661374457752753442814989697026403746234380976106282915720168274989254344762880166053481166493885281264945078408965740425534828065532605095684316106829729807390735262078264947729701747483755342848275314132464740187957276389492556016442136008828120939474850585692324649028656734030472187454204498325316239111259646793730629923078091434591743856286960409461203573148758300484009493580077326306206093771030832596429396964467275112712747345123822085032009079092440770500742456980465365088024857804812750946991990145315093047238736811975524731711404134441207898087434210338139467653621542830787073630909989113355309702419969545657890207623808638845787420259802630478773902971337547688932882434145452526991172532480187866641211602010699445673975619141207682940686914235157286842223623406665425069642783254924480747368014308731248644250460640437866962791737247449917490983899743399370531527006411273677997803956186653762655405220363320352857156938506000917503055619258167436736724708737603445437798631927989677876435491662942571531045481750619061580882319494788036957738955861218950843810864016982568048466416438281404328253967532508853625975433811035697517827538720418555156032748650403458825439785446958974067198703140528748202133190615458081444461367173205130456444159610694780840656141174948979984152315456745401769795822310674487485828725522687660707004070363405983688003373856847915650228664649620151119836571655557790052532462193041069755074991957537365302530663717191911740315676883733176685847736592821904105458987739130048973553951309886351419386139600194128335446643082625015846555087720201884357008150860318038406266102240417365447023781401866137976800745726548925646669518397895905766707292765244695290323711913690493391591319990807279706254007302804469376799556951460814071368631677298472545224287854821489594316692002215113231876957856697759334675043341582862807723218704756725243640692836745381870036171775542800250647142821030558289574268452589317408963705580128547197849555153570689565126210441689178349183665040159898203955262585031593303865152675932802536393433511252155001414463765736308333878727565267701266278906266370813386903552440247911522084039434713512635186624580952692391515732882865539780684098398394337484260040825721359288013994893968550419052523467003368592435608765328952526038493311449676980792152054214497408989424696008240336687836565835598941794275666255928825340679769794247094828630320033831682620722264825812714350581410812050677367525292777028442063017315757869488950821083664542322745252910498980487961800668774265164985741331079065755187346222917499203997439758121447909984092856281274190029335301090330380129582944191025529338568984139864068583127038860658157414693031872191939318027987897931958478120865795893502412589596401470196244320513274965024269574017115614452750554212863187594427910516104664490188148052509850018064216976381182288372548801578113699976720868146823054313204615063288946646003743568341970427508802447667251795256756881173832342943436050391860905961116254639024921775712649529211345159531522014282177373274017641923016607414903394834460291266028291374619378021530519259057063187300367265983110858296477267416612508380083280735677989461483955461446605632148926346951577701400520497281993046840202033167446648324780136240360820082319991395306867496405893871475792028604219208575828469531508562094845718398389066529672974069198265633188279179810097083255049765736259941650391112619452161210026283505202334982034526057206567301579609811448355965160561116858240293485704243046706417693132080836958860773685704641732748403262264096232860714882430968724285276858850105128234429369484893200651808351770164761279666584464782922977157885454175071179340535747514180725234988371914212087198296773426049140727220264272913944939129413241357543464527474688731526485118929077123598142691332783217414794027491364462734391783219048401521263664542689689696903238571371906202629511328269647138626577113107616294768668706936922230579806348931902679238392072793231760862473137776941765222578452470417962733184530247492297779654895360549791619319334313607284732655321382532263293004683643965122361566548206151799654448345915777268392484377585806405303420790482365697167547803723691619355377974200941238994903543495582573835773080832203344126051354267737985884152199196748013240905885984616903782729553667747334931021130004173395128190128887985500619820543339047428220752486745982368007659587954747567690161118620460962962320720063521596128591075438153618499691511171845309776619926878835597498932863311305874084452557734435236160474953007819528738739552729640628549131100583928894922199002832229261720473585544164108678299855242448013797576026127419835351728130320467098726550622219681977348654305910227397327901637677915462704400353702742683548853098509585578451985778318880347086336184691320943506238440046509015147441026223505584472019407309557577164134384117125616344095305489960231480509142861345537423971156248088583283443568521788732919895965415592744092305941510327942909349144538788860783633946997045295555581560129867144869955043488781382467411502201413500514058690470090658005147386331755087970745037655031113328379759434237506378164574627877045980270818917479222345815370088686795594743568962999794783474882566211414635594272226497685042074012350874324968719459206365126135087666822938412128406382518111488062020333983885596146026308630464240163789675406686918496089436243619602383556667512235576351811027155809249342985296227726954469107250585628449013343262775527692637675825835660439379743651739053925758861693246810173952122140104470244347753338489716813253452347891653155391439022180339444451356493394247124528963076716888018899614546343152451814990804873981951159025727882688760093456867952948963607367576368466061928081930304810568134906494603151149096542034559531953004106115304753597846587726911549838531606767870959432144720311196710395321581315449148977064936465342438652887219537973114121744666618642034457296933097458703389573780329386243252390880800193836023067501446261024122564022907615139474967822643735215393033945900470070125040512816815019495914414726577311306699211219122241269470472198310971070569988316954031453477699603399736001065815202614629061008527235597792787849119540544962861655104622144264047890398130642370190751066196058765960587231326688548821477107529573151982029402362304657002899403232727060901513907484510396886096268410126020541600082429313502272765912397574576938568478366311923470244761024526347707790057287379063332968105816618642627228464708700140028068998366883735524218037160744159758619612190292204596215598922460916528445478029242911042694261924118314182761949642778243550204893777968611590076744850633865380083794596747995610401783487013404967114880370935897638410422884626506795297799906675830482501227806899399654723557273939374252415582908047810771668843783751491956146562450899192570738655140170311588852561399271324146273198592672929500881918890714451351911246319902492481989395430255813238235610863850325169083042952894405282374556909711601148564802858854441850894030049459642094946645044659926450687122953587755499155258935420146779028985068286337486306475490584446241396220773520648916458855074268047240399851763143633582958225840821254902414068012513438458557556281080266324548010588746504414574300487553395177910315086112502454983896426282916509186748660733019251403079937402297339332835924271107342618886064563616051003202962974470861123395976450422825442579897672877652290764578429143761891167947409157562760575058434428915650957383830966107449540563042449111059104282170097546160981135136985338573518023509271611595256045237507458925041579649471901694273664475289743161734261832132999544595208480559465461891792134092162083920623824345260666453369669831754393775520356309621179458052947615761276759024357494155420540439501638245865055955941410262582126258132030767273882752364803856329611826645000713470497743653781417947576321865019237786424868219183535189826371297978916682843421241571127424194086941885194043289647518992032682894383775195067621464612799364659473413630876203342614254589809754597406060581508329293544015094856471707342554339332343182371490690529081518368091742427655101484950955210395335160523223568979409323558636380670267964489476471287563204213348398756668014532310068566455301117957478444342444208936512980470488921404740884006320386747205808489878958215330542329776713169540835850821542265055710224427401981715619594022709104096551133895422817477774979163820263592313403012436366291508786536321476047925848571081112361127115863707415639535858118197855755283369323756355284913804492278953431151426881729986102132948583681940720028964119178611455149918614352965467940736283828978433974370960796810499219719531188856197291939121593583040297712345281173283341095197178157184848966189434010476648037668382914218773966837706187968416607031277902789944888778710307435181468630774009221152062282834330777442493711308334791451900804734975297745073979598849079442013716395696102172234288829491355134638531561946035037965291970406850170742292462085191376696006388411013217201641686723319028366333699373661434660513663477160619189770717156649294936369919890424246534259020928281028010353273555097419529908178717151581137690868648942789824735559874245201468377530984249987452977617865076002750610594818724586396151408424085284378055674454300773393244142476606171263321684620663512168503196055334344378507972314898098594517072551850584012771977896852372591076849153804868530183852853505696483850255937487719397400965745878791916384958552228669401453658203652527346348844891251192821746528360255712383334755027327013807526339094840771407138076878625293665409292917439074575157537837010483435215431181979123351545249355405343993812723626739746102852707112342353824898559781468833851414922595373210529619134727440494499974866691840576087005914516150597047987206531667268477623194817615747748259181748821660879853423030475386253362543430699886541386912216373215000680643548115141611972948109070300901738476122908591863989190107648585541216385985720289323962506288771765322269457962618014820878823568559755312060233365511569419579248208233055766774546870020735757361547231065577197772132623918942609722417610135750657409693100725830726888064548660981027039163913002679993160255847559888123220187248446546735751413779143577998482928853445713085455797463352751653401662536519162556200172043417936660688759035600181942803157187223733065073910990193481278332269553019628433239432659099347699390192622117224436830050603930509356721418725640809236915736874010417895457574985950633893132537076907746826806772244721650026475453679328274130927687135069122922554785860992897858507535568359381101505785529156840278359638494177079458694469091984007950855602546174890256725688419570522864235218811690580999768221261567110829791765828262686096347172891393407376802816561381970415925841278587793513363860879573137374497232943812269526460960759685362520774536884436432375110329214094225117294211116245074236864746864357651185116797316490942579437796688929716116616556492907617255027322003257146482350503208993125400648997881928204297461002723900844865357870171271136521787161258041058956584488183652775292343964975992592811288149642061932701726145473775074638938884252254881919026684182822266032708770815233172867405173120772261512168682912325584456194771320108950197213895629371035089945784531853369265090570489160692413560201914919839941590123195697500306871800696334370263156380679617489837178004403162331012427802064895097015432102882917644050646800727029866531153743540797588757443212971587932140583514040014806596814010672439721955269925541155464430265023226179753051575469243898756361924521443278395487918802921757906639332587526275050576405152642187038729018317885931826182584051749930022258168305011533220081780515188185579860397160891186563369315630781002712548690060450124011736997039217101457902053619975802281688949576398298555819148056097485920379221522948506193229570742647979280391728751634843752973593732399392622293002659454856698771278678715198453132084895130662543347424561620552822414471877294610153345146354791071992920295356734725480707862064725014451813731086031828103038238489687290740928031952090330720955850946262434974375959036785655962488180333189215298170093052917935259848877615123423773262399090632174914347035215089392054806322873112187866453440757798045676507715257893029358005325715719782476892470100809212469402818889825882564689871457584220927019579932794321479081295246818278634421168671821377177205257393557699840899960410096833442127667944282798041119267350665255369556131552056725347016439511291681835266499489970207261777255220437090004799023427884259945734543613176246653835484573363211583512102757990050928969669591375185301867447818546410456411228985138557578096349377064248080963476644227095278535453167397030167105612600213932713974338174654914979750055327686999209344607494580016922257530300695103968104599100407833988818414521626354791708495359012228915936682218169251816867589298398006744108875500833180861389029941353139345492250599403095082680549452355596659178749002299004606748765299573727046671085778647981404033974209482605986728224451701273695396226935997384551999607257262991000522490331717031877017245603500502290188637905931916806382462647008344068885147561272234749465053236996189124654297355456463361538984946248389807265469711456198977151775479503086478767339274471961924134813349109619942893113646877728142403764769919134849396162585165963936954104406008351159792599500079177717224250124251520006524961588504888344112195053235206894865849508460717342577363315961427911137560921653059136667967473272722330687374833684615155201406814138733799933294562700415042414751117841830805523118708902237381658647833555037211819904354370752115631108139890567945275491661009948477993036857268956590039821160268270402758743649852584124505950797714052368323029730737609906934826942668000383190445555239216642370321655990082489388246942055104353728344353554519808697936915377245761033155696762629233675008074314064065262205355777123383969494707945914000124222213186558200412620179013326601695810466688442851687259305879438456744020052741325361474507786905677105304928095704194289814748578660687055040300163916087700193807958271313245307313356177724759570346199725481851540507374317213066333798287054169702369692133661704393124495875002317734757591092908758873839950986861759542777228072421076725946819829789177221742449210468674495793037671171060540907848191147412996222510212804745954142750645865482301282796413545728116350841378889776264509099046015964092611968122961377444064446810688429767087004322871728730941852197457053131588549629516081568101027088863420160818022765264375253922864695208602624837686964668150827865999842416587406587597184958560300952451791362788845868590393727044403813132788284873223412609037807816204041005837767235715524567332526086272067267162643516261507623097780812020277152831199349728196259212556079894833646988002082597745908677713355305168993629408819086918589640084606280368407891678212159729208659953829437808076534359737060593868919754330684281669684258403900184409500477575448828846435615689654432791046257264892146862873807429573776049527179440533562697798854031876115244510549329579971201782257404294907834065641623060159943552611373759307930479382595323668125550324519414454360673331957278194251872226640491831588408949534803750625994265817714130141255973570058405990415779367847137788473032638958569389770311387970679832315317682729870840260994624272995951622254066435524938398714343486738188760373381521151666104449559702515873882748885661691194141833338160315275390046525715676591755410081834980509902459846813615935384123172560669084540951837853642255990719132657593548725944112813770654139638770715046269466368203774827906501388408891897662080092879202295640919584078581776565168795789688722604608146501676321400104735776639852777452991840207277035475529228487194772489053390997218990858398932858022966591290664178414422763425078006592197164284664302163719462556228780024642256277820136882966685424666521085869742608522859191761284342319014681885891233613375939633617730240707569625368013532478745817430729373241462576809665054897068710153242166695440636758082552043714192027904800159914597308295916528775795119288710550981399247076945115017153591366833615058529792204790489708060544040028694860613362401875874084730639778926733234329656596479754011533916030345951206473944220102015512270768917516651440392964156009306454440485212119782639568696170141371768762912689008142937727555500018520239752720073110412460167546536107770149004741095490069789997361389579321641598195906839227753361783542880667181749667094336966195969451231943048025664518900940619866414059298767150065269390325829963595015455079866249106902219567623132840222063839798428652704622089696469089259621936650072307083844285460482138050502314104496085831676845353744989362686660322131852699389838528636240125249211120208703125312495401111923138285369858757350686637577711984820812821101260173119822365289684421905383554306054215353114555115414377835337682876973709935792734399073364828243321063927266281892217052142681042301319862985636743701174764965151003188951391578553985920980953225614247923693174721296198031318762145214039760125768498502464075582628670097532265117211658951676990492650096807487960332284990152875093082191507149238949082319619357543792631354032064450725208461433995796287271744465682491998077952741702301040253554167839368046117230888206918283649782395873526801034833874706855220006731461535839326957787063212682104585298018038740614544375628864639347861015926824886746326508900525969232308533839241523761035529909603524117267946026699067264779323105736900072984848080611598569567535924580321713448080599168676808463001111751392161073733846302302861495889705345733976716309328461657613826660903661842539829084258539244570632617967826353530976250413655426157908171564051271728005139886007589364133600656535361719107310880222993626555238524329833200565449335846400746672510475070520588425095041347478463592600691390308450039711373866488621658165118835592815939438706807553086925898088232638812355982247543926460721816280689158032652191760637590249641044770570110796642500077990245604084626601283349909850985899824411759619468890116230300470661192013142619186559346714167456565868564818086775014563148039246481696660876340313940543129826106199309710354610227296774519490830948136309905420391038912489586165402299812214526596606781218123664182082433933412414722296399540798198035809215227176521516686616788684517419191833074502166901265240382756429748587294193392807744157748655819332703141014874082808069541370046417164387072806822225869262262925107709091145759967087602726961699425876278406146235877682496462944635158333467863382053177941884611910658656173936656859789752534696742597215150178143353939126554433972945659025450018656540929003181066659963979650422470680084599869827939990002037100441053248926642918300474221172898626535389510521345059998266509383941416698462063117061979358399228475507435354193183211456585604739872330745045387198181691860035743640294568142504552354903250372205892851188985481602945463706448119462929685309217652594966344626029880846973378251364676812103290009852931095514084413229066617480467500928884777387142180153787533900838036139769032673690904736882053869822278754799635631715634778027982843322144705791195692224387792912514068238232113407836785564394804309596876672681629605505510479316977085967209801681370074014712089468944321914528465479606121035670435471752071288341414960340514169969034529873363587156783880884363602205853188501717191795725670202332784213172380823191907444048586984573382903043061348199042857156163080491717914737108779350538261031229087694813723504031969548355102162417776616760904679882608419634119988840128673401272475985681492653895854126079772911277815159760973963065588953204598393352905815768333092225599155099133888772560915845202837617220593112348941663635273961721995084420337251959235856955890615943970628525163183755986189349907965812340236775775816598675856744159655984377390799719654853136459079609915496487500868456394048977060100024271945619921631991762388634851742613436673485201817275555638416429843375745654580392689934931525659772482186742649358754235152511996655829013105378509367288211693837978846634591424187181559010566657942175062499567909525031647637194842096420242717632829845658730168715251955839776391356180697263225624995530766767916026777342393720822372043737890338955394450415264523463039454615293102400573791375652843731496011649673373853699852984593108219381996609218851914470217215136917436866365444591758639823812946845393869461746827507361153600338070771550950537595086050374976140384747645608694613214468984163857834975700476913202760285771891411463184409608125526532800686052374172807477134723766760058683585021931545653789347179522496402411663216797990517222478707828203091266608733874785835985640839139030287860185054732702803146240917298311731058614377929837476997992683379269572617321075732975738858197834809185948173404940088013794560179327209882655612361301657566350671856049265192040458107479226056771811257225359722442909162165986721418243468995562004889106864270222678631819366994792502335581196407063275089355896310418913759931194215767193510241442243658855797958763278886267451935610500962193327784219140968045085936430225728915327364917685481670187238742666266434971381887956317039682994549818643613940922841383082060702158115461157185597018197424765718987724381096178122774847574173650359436953503407393532843739814147382335046720642656571787748179301204128023892624822125107737000024320121590358045435291555547950345103800822611616859740669679818509707725780556471579819859398472430664979455052410114040915520154062322527695542733478404722463404581363912636782961227186173513367236014099848191808723156109331800504935466187756061963870056579715801551308920333101148404138846723293499159736524208176621067287143562652450112034264176199271517300090148166916276920981384413531030798567437851487382212703699521154263855363690119477160067883366235913149213402995234266272836264490602176872790419610565730074007687987643353890360064143468865986437815774584919276075823381986940776985680556601579727338430619106295017962986400342484687119646063238401164246940173047258930861538857796985092351554949563788888915366704992943025935285853497906548564346467685807731672141777488652366114354635804280949795972801910063589242335747277004136995433165611561570143245457024319006017437696211311164914059531108123949366936435541070827551846843634480801665388182710008118178144885202087529289422689200218810409265907133566474881364626008204867540969637774550621449870895459098014894491623379797809152765445301618826730216880383141958780035165964143595179594465008806438365790274580156661239411652000332588694132485971981064366950892057586753249293341608575022080688562327356354172478304037790788415032848708184350683294913237667099046194021153161924189026682709311351423442391011206413889067778265028315138929301914509839521416025041057545967208183198889542309173648316873935485671636154691018547103930540054010763123417760600797057657911540167028729778322322682761497603716901464933013241399460857589316513063745197618376402327612392577592466301996530229254671784614887251370673283705499620336178428180039357192712874890210630298054872738311171490150444476692165023737505936778068188243419103868966174362112759708249780044047591950749381277015043929839485798713810276347491851495068607631681037456279226284138830845685831446420640668026744869510108284260278216683365509825179018304925379243956764499667126210861258943361084963756642192385961980044079552831566954621372098034438420324276820489082636532264065069025427305417567548795585633014830098702518711820793604105762780628547501328883211822871785258926647713966658305757429986229775129103126815747084721431874895329377572451189057105423781284654521079643942129934039808630029752555814973120001443643030352082044983582944761158459159776007315973041917392447197501949871248300560740808572495022060894806014544607656912895460147620363055113009017937786128412459663129217775675113368969199396911150817109391449949937164232418912074274974200902581323625572629204284067580447625945146344377648504574264993554833244341807250533855695078680574473098382399836288873100720265537264685677244028939376718305306663645468791288468665299904910986366916035517186371132653049735085480118022794373668205806584157698649963337450193665316412598087087362668435119249278351733727907910416991945531054562244605570189035475903482462554709641385713694405346069020431635525294167197879587830227536073678740701772381762433608286048142317443817390206729082007383256958322748530628145193439934211765371644953521867444035785486391600940613822070705450830857375095853484498388648059724578397620213838539463222724249013281691705483476547951369113381078687695857665333880786639644109477059289526968480640775562201310724187245165837519713229604936964814908686258630963994671576502299404840021721908807985977939883179421752730089249009091991789694622510563866311835554449604884144903581311923116418623785804069618901657175200105031390403919171640078384532084065229032094006543624274792371062061090261168650916606057997137430142933337078603054292087367187376007531522372787364364286383848167408487302242431340937230243362324789927550637254026418650173087414084790871337095676980276449778726002331129298304286928703225740481304578549323519051963671694129565266721156089360704334398399290885056185045578949546312386615005034375892855663391416489909323920011997239833963997793673345092959665484327665445003050097782529555753769741044845955007082826631205456005663875034991221402824266768172893076091618677687238937384894242521609654910925472690440425576126418490289372402665560017213072313763286651299184723671581617814223504937377103601590156784374518036146777426400254761481106231333021462936019591832030942198913011858312687930059978314969753431553238646149330846142340489120253573647226354366023536328253107023252057788311045394975765190342663807759351166573861591761711666201712891223732562958240550156242529623897791310351002429223299232112217379094526079800804999554267569549294111361576375685981570350960411959964019575754029601608125095460946906826825582232266733571518351096880124205634911172232775584982947888749665639397478273671109899673465661608276918156499537245732437101188439854624965349882972776180142252756526321496330264967303766793206100378305210640170251595299457305754721598385763429560821658827017407807405794070478770348823497727145751429912384165233962841557191714612305747238914118819215000498355201794796683736571113039931800970153058837680554245201682451574882110873741172266932121938490697936848952565383152137874293269144413142450924150334421872868796049694307337951460744252075550166603928561826280208754606482937822667584004428112495919398766224559831606941163218424592063772706875960939333873135714415303718273221829571646049272731798641863792926221635067204665886506347091761742647697185523249143894360152634522873870654559170506387004929537239185113782307201268971207063069447796505298396065652852097170630464863964022190611399734419531640962041796868104448022678743413736664297236104926482146446823297351429185325751869163091557898460749889138129486306698214996936202451072778653641289095607496004279137125559052381963800383458809592534234869209286311526136650553901811746550971354275305487004262950905931452066967058291806393848799971998238718104570751867933792978247771765517346394180857020477832081456260829970209854482425152279048814087531878726735185746835396816740782674883339932954085040705372761188542698464477977795533568317144460896969864189711700725246108438326974672941879434480400604353531775138964326144614507288312006061901112805395583995086499263384275665113063145444987707133223389921804993537724948849383134975503471180914982661578617721171290100524577864663967857388919931034475519177108913374737735349881581349120981084903362914299363376370901198246995562181462102925457256828319716570994347503621800640304211038558598217117724821616156889865736269218781207312219028771233139348411837001353075605022126822492451531460070314547104673295675975472401956570105784612837937646595418492387319312954566591056180013527230654270321536931540310667549358223716885621781576184868833435020694510172367424753591438095560660598785764437992857943990675725936125039318825450644622014707315245489134045387901367988962364326565668392955172911604136114784398871034669233293720641510848846328854818334783807572598843094402489048448156401833375995397309430185794320264031899893677132150335867237930182064181236209322871497639728834765520303749746003577128373369699343652330705699280562446824456571814952916584945604506613575596644920377833425079375534197389739041854181305576488256207296875526083027960630946504147648395793898690666033784236438511808929982416477887235370412018766305750932889344307200328500701482898579686937546964244231967649260407086100866756751187879701626672397179325143486027845518702693480162702491350303575858060294799746309705574988958055122705068574613776222679156005330702791086785514155612410652874146037224428310546892179176940302840741561846991157519304386908660234875676460608197976976418806919441981957466146385173451205942985834592353399965311465607462799654982636921292294814872431839906430137371219229783161731215493229486546500717621211919968576866811390508264047286834320482944959808421180947962650380710138239337118898820025145555584421589484675864374708400576444979125541486309473516639605484108757855149086831133964256413180756718008688826731636234428806176144217104674066534368268116796559184364326455166751748631437655543618182905784595783094683947540779844528051893519523350905972011701651003794254514845349456524037867938731240138464246722985095909363570634489418062209797479633461133902529754739317377841387406286304940518497415049205944541543775926622425142181602694684925794539778738479740411361428419261958010332216945612850012594852692028872667156972700807833766377642505553341558613682271849919323149128131498901391577394983646936599685981803991086433588107007800141073242580732435768399604144391765931692932847148242207560342327439260041815753211586383190060176653283685233442184886413023769882181943747606377498071453341546102711399947215182117945257035381340905889127964295785018062337126023257879391168768975673982713657878965986133565773691707936797965001665109468964220210294588805729526986053469119154577907060808097150775395361797460021977337778218415367697372119176316100969228903435783061878277319854738847942834270579511139436757217379509755979665769915621641581091539264725788747779162064403322967625252858028114533741219064037291480628368056601910775168203751088385311013094285877490145309553614090114967494533519413952051610322151169639769442003420761102568266093494637652298606352287063248152092344998023174573192950473201100767314242632677535456896161009048592090586619935434645401847300679012237772065096241758905265358873312907046525484771822657636809055376628353014358753871011079561717073766704153268882627830986837916073315344185055135614122592240620516362925604920014213979350017812452810388181571562397480194538583357566753632090108059807000819947121926891161968593396035223283057532457287895024303101671280352323267110824991703816208174329455311757885238990796402094574277789324247334308485750377837957304869710192995160753683998145057240930919559873545626666829263578243701199474059201453985415122110055970387828796792084396302365907262389599680410340159121285836454483621538517741420767605588071857703843066463603554750336717725739599051652466424075429006908331832206388187852638836174302979340340959083002230045416501150925629519303602566255761077098764715951186078178085850282576149837603067007395024700094526510519377934430495665246114963330784842086640229058894976141098675095042133371906133680573218494550150271953230253391818490739961483856095423567598169798951334127116789306603807735587674215831662314428114385276601260484008540101895723358982230746385511957261373071049782173010600872282961433805250693601484778026483622141803430827130498177432196212146916908736221601671316365465916580434559779464912296331121532415808750019393901294024942101010774369840372936020339243644216417703863279386762797114723124271076746001205950717405791592069985429055556774801127531429131180695728720270649590184593903986689749508495730527934471187158685135309782334087088579756804904029128466641673984725247747710994726296032439651584296677766827718792482465437527273580623479852960685829777464533492563579644089458140276055745852203914532524175648898907989007868624356371919004305238886466976466766345369009231011082581382945752052316759280724787366725286400877091652174129644391967022460736328813212560967011907172268420968158206870030577145618332877776452715918913823671013293619587852549799729805454776942035926287229931107742737219714357159854044611990559023391743629676396730087833044851471307222394698357533734009036410574279068501312051125016592312855440941098896848547697239672992256674595092888149357374241892114312045239179512654181445705908840048636944907317071569174031165058539757829188888113804398408791694206749608258321126269058890140291640537067943079522356603733063951859562935926407744769244335438004118299891165931845477062228456022440494753668403302522208196422914897033758001382039360977204697287800140745641480776151058018946707310721080179130176535767261949713165982857366369550266168391270355862231735219795681429615944274115710571301191790703989335002495760224052186117727198290136097635975304258928739928672992270652008174061470989479115795450864760368238140324055055353191727990624028425801388691046762059431299691614907256598940396915359203408059416100427236282023393770140220040285707090093647122638933396321471269929077868162450265293323490599750158040342384508420212931475626470779594318444143306533488051356663714458724539521561637658065399663103066390883294100041103861190926401531779537870576740888064394629526652554769660321380026942459707267935276501404479952069267190266785549980470448163490376886191354157799936198267682139152017599787372698091984276955953600822704801244691005851588028468295778872176724927259133448184862625692816940314370896933798190469241234962229631103764002224258743730784074927621230997931323923968649629509633234298813079844549601622772341907547651645136056362908376565399424810329459748835043986511820623134293640894847838566818135973688900071899337078313780274000698965577449561449794335229846520437541195506637078491946067137318574539415323515492863139824041409617435597812544127888026295553056093606017790688706015410040760803189541891506076727795411147475840481754558145386415111151788627077081351637153382132953551065152776855978839420361121932583164100307154724310995484821995175934072245238205993410222402190199132709474365775500871179205177215159687722835621338831536972254924847279912292497688379401598618768900647349561771215717635211241202417310951903876523906318879304664792664187646029816341956134982354172561886606104186133956446133812580580698395535034171350446001686078820580611310103226637958871961418734820581823069410107311415666174933956919083869606543043302507899696546067015164083941737220563947693876203934077347937233080489620681556293838172195471926819897243361369139437435623929388751649097648812813597184431695961020514322388167982394095483693702263382509244647324662969026067861042283271286059678909436386092943251137919486861135039321037935600178418260872776146931397432857939076974987777925714135989839493181147257137055023771440777850559053208994887607989077168111385809937486044192428696951960106364122556235087858564776341071604351955700458857578409332261387102689415831292625363728051675503013024828201884466943949351176320839722919263883956776909944701192195193905972570066201618563933252546652103023585261079910695459207844265973192574800642018209026514319080405142340402839748677853564908278418264916849747574973906334700063425349883988692199454658338819535547892565658227142362273146932808631940309708602979949574968672611096906030811441390274095946548364255255895936246555194176904297105773584805277807184722171682222095558247879571356950614866588635467524739419270532735983405956201855909540797156431916869597578002938400451670149083329860258163960841650130956714507634278938034244278133713631651658422009276180533906255436185649625130902076152977348013152144215475219151172026743881198177688077558368640505352989163199493736553108026203688974146366176241673786717341267600478088985655599203375277955414944014980187553247361036622670406936578344327609657376378337197348654414347742264302116610223411603479291387731084475335099529563564269018068781520423647729375161791269383416487589076662897510781051867000523164250669225557728636498619892691395859142932791884339784729860033091389558181966400801579878025184326344713455844791594143730335785762375980039769584870368566946681247872547549819162095781472311558792437208516006252900724214979060464704290642094820570062563882001349108796874719428048632613272683362847604026490916430224187816334930692096605141623813965654607374047165804525384589993501929890643958318317887138794280156707000851222289936098568656886650729313806674604644537168007891220962292917431057725827774892488229047320540461103568921575021863700668371545155736683821409217466146789705403153084196540530753287705776925904138134579083909458944945713725214904562137226219659747554268811574748843905412479172087010147507867993038395377313440351062469224705969479405622006265894135591827945260798516791720268534267109083830069063768144467319936921029998638345189341633471734896957966625649656845313526670035829915882701147587722676986853707419044473445615907333292196123490275223565814719228412461878447914624626687231438681416014267748303688601486408736514305756960627268776382236036611452679916495397483719616729792474799772478460557098108363622391893374210852406104883937672668232117670018844576299894023743349701598138086131627539663669870678065950539561452309904460706414749782385028073394687855144766029265679333141583337377919437094796829913129633611151020104113632411832594732107950785998428063419740799807363394758587978492088353417918748496194269142492493825876845860580858234279167618933657830106693949866304757985696019785544266263575277072620029226416318761357982939795878320854140185571972918863434275434727277536773254903349664459609505058716206317022831027210064534769764930739873622372343170108274773662157721076494201264332657268731118931571150689450503435058150414942909475335384515321235474148854211728074764920012453008524766208100258455883380074377028361549841014548759664126377625178520836520060003492389881452678219971013589599626133162378431539966593436967044571106412962447659335242966744450575964295820359722891428362619789902637138205138887167600663203636562636905097180499447548610802499718127227870840475419915524495921673577773667999027977044000142168213003340712808985552833615358084483960440530473215963544805743477576248506058299303098455048839971892574384803483937444837695345701835219067837056324631658942943075183087362522470614792148397024372880038721090496514481679645050342153151206504457439964840838977206199775780493603394186634801170533902473487182227508406421181500548819856958979099021175618981652567068392723457669869819212948063232171631835882130299783592517879434558137099529007949564200913182641325756795967769607597874736568069464230078071596210187333737808919941486485031056755271844029086763690861490384576821989868690151515487999877417190072297683284323402754455906908400614458598096440321898042401104142260539665309378627945470464315314186173051435386788383958542768495277219709894149073749511361574252885948864579393269724631543707738676193455191636621269650522492648849893707225059478536781921636252896377518227496483580996419204316963370262845302342528332058027590845117404234537097960703519100858408668714142750041380980632061520892754656726822803272148061797742864245903722891816630139075810991486600899031545362672222579670878610964063678491936294557730659423869590486609625364362597363491472739424395961700233025707543400929308846013064995451579154439147868530177347260709590688043128168552458567544352360521775422917900483674273009125893310683809786187664511459560933268811442570610958179244363622477664928914070370670676566745609383554571949217209820989305542844684986125925352693094646577403749628078062798561668124135813817988520269367605667310238326609993293528628423088825640697779236399124473561662441757342371681575511814746730253228740561734421073287763011027092443665151433213686568688551130883060534497062261565313486602457376345832017148474774183489508771076958873171240306107069537087559492996815294825463093960819180519733579897882448004975039499648160472418353946315264559252893418442641082360477934990828281185752931678259671389075297088365762062634282639767073909456979574844246382525557513358357149369815172330618014988207369902572410250725523061571478079310063755832640764987540061438527321315832843093293664554517557385544658565725103698983699101262169026352357394056739372060279387553925101592272649797499586177017573558392300655435614207037308759541424481836938573254354210462457932000907245812364230471744009083878926480107751260372121058307039319569265216570545495181179267253246062534326449932781714720767394095884353546596918679575073140279576033786846604463930352519662800757992868525957309813666519298466363456012575073967453054264492981769662465760822906812917063720882263854935634618465131319704956231931292381474845953447133255263815445684965550272797262705975257954124336747684071296115556992829016769749676368466228426026804085584505005121289893207291134908687937176914194998217759226788021465819540237544331812597941634401240529269042941073201442263041183250670661563532706088730432085609760798743922513129414264197602322759309486527825807541957838769631904976942425421215979140897297306270806253292554329387072811327362625695329895129806753063157645240817532175555005218578799658979292858517188887669231470930588239024490681538306678606712754785897616227459913655320628702227727325552745464364043868881460657005079949570694173094477680721087393893652509838063648193494005975646565312314920797815354384771663723890628385863090958949843224078532062915028903964713665845135309872017996251744243290052511649832507713143824489779996607764867383202373019212254808221133834821195719758601204628103970920614961395734755762724696516770925182739269698978016884031970719664645490937804052513828631708845422478060952388197927463396229367588832280357882876848625157901403467026261527871677289022889011600488285607654403556205736530079878505688138161881415285983570183631979283512074287611152465209860181063358845098629985389768825212499910372383998842966082807388071617881675378315683040509414637107595500432659275485154039060272372102147239612235372336291708437946495618797805268851624545641726475282341956895717856063214803144322110463611123082280951606646324995873040420386150472139479997029522060118892638762256396190885606966547622812238481043817573130542997201190357714603107138434992845274664712027333935139301039924515398514061682734464421798259815684221093353150980957302849713402119826194099001496199298703322319492738347836671268718278338326897854853641299857667001480357950529468427817693611759418588532817210356194250969466180322175786978397852680284172992283920934391224140249848182294220492941789450309157956766557963709671239682304400565460580260881302449368958482140906838415326224336409032944107755840946313167799430244324086759326064166993260402056943492136692039086685560968537897234907114682800466076012114326960131291657699260105357094298262783059897201114302251093779779645666004171235763698682639100451433986272682113178669605240938516467160626574662921165777254926605540255376978341048304779600894683611026755483398829395833970731060453813208044608816496773922128218952939709897673803767721612518951342270255718046217621065332092757989771762140249321587083611427055912520260741113865810504890347453132695566256639076422110919761609308579779971606162501515189534697377732028335835979880410140385362309024466806554496899394859820147774284723404651233525552866128003087130611736071253507908241931352573788189125333112874797045023088985326320870980421614985898534265203306608921849143511711824879578296661812199804101268767769162758725295760061298414019990245299582107392240716268224432791996227551039290715716651414548346528497013084711661643351702301556147472451592670124855198646433353982749435733133975046587752931332244629412682610314376909493285002014354886847476080852402537586292735261073753476744028147364854482774752308166879837713418164130765362262008719577665290949278876679394625141376853815944441158853577940178148564232332327622381090799532743588910494472048378142237528314417244863964549124946849711921455279509302499194636164371808705106830703472741807017780985773510523295126087552357461489425631254722352473800324113064240720137177487719661303824485981133703396462428446803310718199902449357028597099761406107778340865418296593919244454884431929041895183047608353440919174265863066826008248843029027425109557328115392302386329460225186604806032724475380976876065479121238149011788872405553956847306108335172177556019267987500855342536466601537632943383728034178642194022399917905181674212952061475922739830836188210537739739530146663536891003493766749566826565811341939030454032165177846626215387633424123130716535333614533868170291857577263472768546609005897505975006638594108971461519039475795891015934523091865292095285992674825955098073512887338897407078848672889102227976730794654060183023528224196218212855027690168757596251720872988447456298250321782185529989931960650886015333417461778803041701791721561188838185634302080232155890654425236797527070086881184692891900071946804847974470945821772437970614273139138189866575372982537095297745160502142396744458314829752781288154753296606229402516551973749557836444214655726535760148264070362856595542761899346072444648344681475670807233623535059895245516153672747962724821337941008827328095585603331508375985577964669384140991839525969264947293372936705035503823897282329960017677338713842151048913793457080820313175789989266562644491949542470502311054233844462425543749396873181362298828377264629341230308506871503162972848952325357167567684516982193703302011217526925196624264613188468668601934288921688373322671286698044362133680866996923794529478919033432575618979121847406680785440349915037815030452514609111987232860063586431746200192024806243594514205804372743780461134905502154413035142845220892233817329024597436892792551917389233564003194390611967558848535490120117278256785864361631786527564500868183996667517919227547832466304767520363980301571892137757879084604386497935254307373356607206388108711556600643800590150453606510198224638436530171598849069136589922918359208027721094716669392400791398646387219548272684191891724924401955894415108792337957629901114359443840143950488531871751207926525402556091689288046643903859944284975024922948117036268383718911520986032807768514141941678927278005386494420368738003609900328866338940641939072117884592160186547920077479207705336127124203990450977299881854042918940146733122214864592025355689856457533892768246060321434654612254963345568655031113916879718068743275832840287663701019112020437720600789827769916795652161366106649851199850700265464326330223938418591372656325958135018078483183038561763764828170302997535875441025865077825006229856067787928676785548864621721054073793969284333904583738062117303173872070157719600449436928769460890859343987703650750736866125284698980332283179021153375859503595217749675010042641170784228245645067464145964979299400235056169693676229291621865031076311759254394501936205385763195110922660248181319374638704222407010132394844432416500947177840720560872694537520856907510795942812775448398778809533812312826259226439658426991329541552145253505190184199194318235213180056037744792708616219316764376192438485232894096426932401375299089620293392418052276093525032242345174413073759815846662059546417719988241028049408013788464875582157514583222437958737094252835731081587722756354226352699138267938842879279904642451995679084766562709650554056378040819305153704783810127837977434368767661940589933960265968916534735657102793491132947853280313043240525892977375202032851432046450833162094679205038077117586990165467461776768638387244076615322639693569149189430617985478922134077037447382185137489840565015724287642630493560088218854094716692446381770022055388987233126668060575879428245260980521562572119037377280510432089517793864759956668078756061588736768749652937005205505531291549335646975706738827535225009406366449751504386654695210328185187104687918171058963307539706690634166973108995641627325592937740364912061030063110639496310720434163833281114309868600372398072127512134820065280975389123204769873058537404686993191803389073771062552521950457537804889232604810387904745997665745618658699768835071158961504293540719113375174978074262334293631921908044243940013673991136582179030059572416817223007638655691842855519128671415337318812625913902172333011780438363111025190993681242548784759968219892822847820027746821396608739938488637461035761175093352992920685159957700319237582105240849532617446421993355976106343404804576921449928743514142761069859120931643373293693674491363763790066022879939519239963934647031868898525090679591394532239778077698101654231293802601195453613660184975199856526857843672976926840170044803096703907022824913200564080600754920389788393978496447675967178641499725719386712551615239748879797923687405312301316970996136240502622948653385681536063231190057347759863402946184635475876190762224219406209536382278507756653443165194679558422804368579030565961477122255921487385512206359001051954879003674860593504282159698030966680715969661671316251297230560154744965586497106804145088422823016105668914411234078500720032930658652074850651217092794883248464943058880409388924069220833709198714280084294093371607752443739598840079592128992775390912747850034716411333906048611864930102074035329453547433189047906862492449664995112048040118133579448414864092020374730207137861482938607919760798260543544017190673371231578769144796974207479865508295002238144139115053182640453222486722894923757181602275305128380713088052532071451310276258031979159192041407014223290810810507318300136056172096459809700081749005077347186213377898469118459273488713775561959736219107283355278330753606462021909499936972731223642392706406132127043945641709664017546933839230478282650197514137550803032867859716737130932956635658853856369535970073169855246920668623498552440456997702916645075684554899231220127926624401806093637566112953244623723402798306573151756108508345040355749662357062655666330081919303370974448240452196396824535887468673523764958503841983635922729901990968569686154872585642146842540767832943975173305117995341453680228740956291642627551407146365609615024699485288547458244853380469077544723189894908659533127367448421493451808922035833813400953780108673478401519083296217491911824148689169445754703867034916620061234990027860525211022597306469337517145729872234330871482334813663200327253740282713143989348688510345387483687459709239579392472062962894973126777977252488692124140975204578822033737821641273391280835872993766327984912394137114541527634530569112123651488775663527744723817305291511801752260387343194884223981527399036638632870719103600800544352089831914892027821023912689944724099002857302669242898466743461429853873989108448689874140059857810691883153921653869360493986592376014250718021440096298972334855659449124489084874321074111450187094711041821883306528948936304441659441231294244396705182987849787374689138058233486482528590181888432588586287427063348118660065213834064262824510954972728981742748551715257779792236540686301339524143007173963894230708665938366143929877648635338356879847467555855309533387865260810419510637813838504834752734579206059442780866753991956003215332958773564395279928302596198556686677105626844420954014701113023326019252357245557407194078195274346241378400525209602821106828960227230136739477868703361923358282796984198640852864216651989917570170234458100914142843444935708760292271705944181503340810342722194630357551069721532864523572436321613212198437785948212407974859791368433475145309705741123102350001124477972054114207741152404354681092444029880190381606016061982680892969037142070113066944048805279150282709445009983493192072832825088646078206480100682036634040927067882685987981942056390650153837239052346186615769173414216132143016844769253943478387514746513569407641110344745208789836890862565445882451348492512271169832833387897814731071182629357682991464194341832490260841522756910212592208611708465010197989006143057413018882498425368327892257039811560624881037868324165837462311539680889333634607764421654820459468425627724110768735475149779710647522865987727068192839585423233902489968758768882574861204056014447292847846447631283212969677407326943071494695838082258541255177390064737205696394748921601505283759599623649505190476383468405740716811657366962732205506385703609442885327008800609837436236408080165705714471577423708524950785436804467876064592260008258980652465380214596692017020942978628558339864840102199356895179502146531916633236665374299449317321111907628968421636196755029910200569268420143144929249812599478865328219319703948716991170820010375424253072168418282916310913785348569520673344227658093051592013015824192998970924115853723630008437312477185837466668498503480384807943259908999149946275833532633116371536308319349139993640844408366516148660826093778058989468464375995933339149490045339526752374367374348637016142324800950415484107898797448755429409147196847436915697487535733983724242869813606920209278534216578362965498603272666781497761481705163802275170366954798335658673190850705821267385358288978411369365368098931633014969360442008527337593902597610293810821618097890814000103756222585365331755908894688752848734458618546033562755208407569413593694839921561452598001995589164108120956978963604565419430840206391252582628887342107657345442626865409369459797317544143319595230754704473879331687965622722983996340898924714833923416379640392064990201115965921232689863700626744662488105014619099068353408514456917205257290995763153633369153075066907535906458890351588194215743302517576594407449816768911810587139883734399183638590903930372928199391700381688111191744068154243600455899153778505582654859380342192534858732138024052702007297243295952453467529955287174002373436941924715564148179835518140539287265717437988016525774201917999617676569373019888265648542337583903325947110219176267016651677226581272889760652870869904345071092298760059624215599528418003759749894398011019298313540290889804980272917119034027615310924304498204193622078566724344260111176834916298602708752234355152243855676631947717529497884997760634889251613691513195708715773447762787298359923563772463620392030356374587036289640117258826037289507866366320005826861375793080136074623524956539669425551742796898654600851078189482163643998063942006337771164206611079298506594905289602177210671326947690498001863428653960152719739213192575353455446281883577553636117137806291286606124803305117566568776877463470853487999161673477825298195242828411477833397671271428736007795303251922027205416786361167039657562247621843666662825848692071449023124658582973130534080080352430305134570935253406798948998179826723754780229922831154434419884561187246167925287601626289518222965803344852191888433705289134930568301384759099455051477223223791365777576723763844333363985223971125105298186743034350927236743246836851461453311210318873503413426053842093735588412014400541435697826851174532653435459143905357154233413860378510124931263557848151888861745293178891425169094696478364197226279603720053129178984029694072631251864412295028956921061581128609587749899977533737567720364061985201311518195882068350936984499259241004803309074130629494449311124389171874110082985544698319242596605933479138259024526326364946963426883697103614728100957318987004645014693343300869188808432825193768413096353513699895813571512526746369419957304118155353486753080020524016115926403579042162857222510163908910323589366217974034710245344043240380716035586045659354784160268414349467240180053323833754132805023556820022658035002224204952851059848782324717555048951590658249238390800817167249193882078562717448313256608052497092291699164893167064687379139059143514269026770714405357811739159439984177469344114828588603361630279965507941985253678098029547570376400964494445184063794160731207103493129945730920445398475121527733669303240137509521358062451154858928029818713149398079592156537920575549773840609986659399259093910486764614175485924084378180506427191620108646818958193838384504795206307831854616300197161357413696184787844399280908969725584897341927827771058368225667711697614698979423103933496695216814045243618736432539445874503831269201070743972878902735897100800775095827970198020387509564920687141345729193696769195025100876897765547626574244659236315862906035111220409361183620826219920849948551853365871572899178310822404740761536758752255265039774937018319267477388470913499354427608284877639100922805960537540714899029571468784183381018422424428791217617831670182317768370474853401171036443355615913285042417230404804113558385039510584574565097099337598509929307363895719960169225908228811252258130703950137356633585047622514825124842437017358881878792376269028908774741807598780432307544501440782231279629777121222012049588153470410764796253164709963100913921868209623493358128258375529463302341821785582267990002269046483319199277833268626930230310364841649090546287889168741906323386289220044294502933544646268297375683945964644622662005479362944875530168707554223978091785348838945808454152134342271482934276025461434743959510553965538600577384861691771338353267097226064420891854774550150993487923734184200324445432398012158405809934092621835418403152076003166030922043741033555034056823343830985427336804986123842129345084843730848030875909989233480846672813874747876820110586129240486009942513235551812070363848024490257002998515319289225656915475295998773057618123614511595668994238904010394589720267108017819789880380559662343900336203121790211016912783709092571179841179141440201757322944718370260473389834091061446030956543066265974106985793796716543727312584385490174102497312075988841744837644340066404955645772370975384993070595283930384358385473406274438322662630922360189004090801416385381056236696573493613495160677622707857418848136728927954616561305598758491371303064733571158231225857794823326439957329959239170965491284382569723460586050448605775438927561448593870374954178744732743931990900397820601694543981111962388342839183241670114814432380263337065806278486196816870430249167290101581368793119882566135894623546956000564882749728130378460750364749414669183817391729568921255222532899866670054259950887840694700064566429697271078356065017116562036458777319784381031292153794488544498248760384290696377244146452398243176459095150917292103789415483882202948579443420314205025121428669388994266868216194429544859283096908158766905159559563875486692715233853820201200784450730858995658333762279336821508174471260455569254741647264850249313151035318145080475897427814538568468757962154987124890859059110505940332952086213037312377753108011816522032440350933210660088690208623481316039366331102416960868488140342779624427519646639775262349708346604555987324026341773258407246051392860041149946662686322855678088295903088631781866372143330493768109421524733381539336238212266768783207131812214469730400036994417148699104065838583327857238851309522888033843871130131560859589370066536923440486585230867759061368637616432989326774438908337657278760349920817053855876016943653048034954403760215567355689020058097462397227547355094594695366166684184840125752998058626849655124201150763433850316487388033000189878924001255347920929541858855906527038301636784837371650809776233156451361873313868193154643475434829815445074687340218549553825910803390612506802772534298597274230607721650263038600959226129223981606315830183020563048674907579188885948680032286115842450716768239299972464624181434956841356497479337231390144090042504742332632523678110351777605970513105581316141320875051698779735331763713440418130832178000655816247107037378106215793628683313563245635623497489043174196511746382438552197746705844787417756540636332591736265147522626176030432113631100570893058329542927863788187361265771256352713216246662988340638575751517064173584167328252502499293789374706760013963469351045433469444086081105642572237225872241550454449871168370025014042010580785509866506659232006810522659615330309827616297259153232439888955646349285434897827716659677350218068901108758089909392152022483930973058584064734536853836421419178421049882385091419281210470665309238055756371368580029117342359771308500103867418234310225278907219946191969951926109926651790378128120810882762346936502588089989982215758651650510753436438496389432440810145124468379089580760998436081972211139025795973385810877092564357670058489230300062754017215459688549149161421661878082534899134496334607102145810045037547194760755103610110301505400648104584729184009034267397469337648323752015921014209170298702988192540217575549088465397251060966536391524985606920322116627738629312415680957151155085086430057250760592872968923840209606643811885084275370105215368970739982556700065227591217146505881274419652928096784492242299219725886087677927587800068704184975236705556079765940687664505585809771866322519500324597536453043545424925855117148507684925779144822349356382244015337623339138414913428981959608012234091800995386744911110958935699562743877238897509772329113123404046523196855696196762328530476339081094655678106249032607491371126736514597998639843782456526343507578734498324693306524391949707718036121883193536371588060253793647873313640690099652669627323562666735732206736407004664617886502957420285921085042242659225839632957097626868163678408936103132089691273542766839270993412137960797925205671833147566245689237574145657483639485735013599575246824881427088804031329307063111089675833826755242157516160813174886278307972219957957754461263206129624702360746587134096635946099451582931897146665290724798420109654199447382294249405658021140575928543955540435340289291088408342417776555866372505991706881790918665560043617359184430315228810787568129898860919877630481810354860086176144709057253972783514697372389832600297497928642014518075680112046366989533928308335867246712235095335661012987515842705005878318787222829929990462385166048162306369418379763697193967365152660613711382142949055589963974705662052942898857290052506774623449589004745751907396731581221088190746340545564531079342633337065376801932828061444011698922426868240843000511834584807110809141454854752687971111201150259268114667025916733250559370361778310486207505269615532227069821080162520990374333009363135962247801334853476023896373643297646109355058682881488146041390052572882526450851519978093930627024423779930130604826672894260710680372582116637409627308992109351046715236881049943804815008323443323700261064384459050226133528434678982851833847277391081795797344047412541742973083451753824830869615416232979346663601605452778268089644399087348748901296799346908025160700273138467289548966071647284901629617306473029232088724732845834811558010028771582631275909026169365110254287093898769957009376436134373690965352760920635772537163156723422770655685922195024691889056673051961637327426081616676339795742360425901285573186774187529273579724432114136303544231415443022650412438202719225914374474964917233265312876907842378415961890346727036055926921236555886769329451516549112963939152500223001233418396276281351925711222767559849080922491543759173611981419282285359041305694898788335402621460731241268107187155399656883299956086716631834224843476353977220042714732033352247113272427205859617922070004187806164038465529850696891084871123313955484565657036017913765485741901603127813799827135639340357203295399051117093694744793221073349382849898335715561296931877201287472214641163221427989526094109735050658273446762861500482484480354541970279252778290489982198567838179924250887332938787553947652214565485933021071001256319875828984820212682285309969696183569223098096804746654633710124580150147701949719507558685689093796838680636310965347080325042278760563085575624988652472229009444449085393676873916448724771116545089836828311413937152157095899379867316106711825834380863534331678788780107220483792419737871780281131637489853629906602107959131452194193216495205358725861030609162813358786038166473779042899373642604150936019484153467238713872077875570958902254929592593306857836055015800199324998759858347477633407919145613572602704132903937905931259307753027965852737273857713957062345711466089238992756199195316456523717080570249511594410847440131054666978508918937475833770933087908034242942658115912038438744482930292505904477198080323829774228570247762627643874990476116854389026003915822677199241454688117246370946957366579103103206346979492368323977150614701394985504116329188744591657414697085090504546618481495368396676126522090034536199581254977652910975693368845581994012455229866547297332824901198089940675416741373027088819940968122729171801150167721884703244877828322967550196449195405192424684949041517018893334964318349623020563994836020133755657502428336387555403683765021160240505786015521208705705849718170099647987756436836770943204572833781742006832921582418422035191009402254867760399288318014367337156893240576789492428179592538557241897731818175094141137403821541481783621123390132064291264697318055754353506445502160346439085721103740929779412261365069918252354837788479738126680520017767542636824817174649897997556343519784048098198508506070965983713107407794580333544523661321779885050903221537053275392088113178991153767309239483084209555013414839648774377154911295992967515258983269181232790071748417060404214943913676492932684336169647173323648949977124304426894811607051637431417093061284298555549513972021933971995181595699512328591657053417127974017190017224060700563883783296504820296627359787348389510753745898965477892947664360119853170344719358275080678927275741306482486414840345552539282941907569488710774692861113680113035024648054983549458297196595483260680422617508149198055695907882793555184197214223510071877499713070529385882063576584192036766253138928556343840985864734524728214596604836244125450589480218856115635801972607629956108639913557504599104379519570163269930834994516774848609338458543775184763400720728407569234214437184878913478687627876175096325191541001715603620652648114730030104503725009541031177196026511763472317886739323936271736993942487801916847816198562298900991643082988851318511616135446453221597120957151182524169789424954915917325752688390197944165373875894379453405797013019634260520078333583412444247813472541695494006476336414305487658054403461155831504977336415435456802526056682333467974465518099152259462488881181996297161331284744851102094877556026678345838101772254872528231369770201531884694011448572938220341028704195849221348467610687168257035510183000226116513358668647702239648589707171482309924984756845335739428404434135768420080767888383579909173098818028760220372181888190090306576981782552147119339482255933206625654159024719732520766415910189922221502221681827022022184844741686344469070813849305036158818126445383397141932333600838495120383662000103808851134058359942787881176695032633151597515564840833022640402883458852095816827163647661550304039770183409201996245422625806773809754217813926458172784471408639331623512119935838854357545986429386080239545634121152983693016236130906060209508737189658013699570225914555179764913354826158384493376252496492820448237866856443757858809683827843233352091408553969807300394857689398081237012067720643605664225848549749125215786808727115658580002302429681200890294995811082404529271549625929807195991663762149739983675463769779326078092983729082184437464451718649109401096598961892894564814946144414960438521761786270252407585296610544454368802682412755986428257834766344931341971798337980387818895444917026016251854832257018169864691884287688455343732845455157869308803578738849688578991123194636108403210164232030550042719165126317280370001770998381536765124708815176730251411012258995102551111025110364982078428909511841176826225128139395923754855715759134221995853923927668452744797881253682614657246000423092207767542115912486919497928429250182663993051501230759975854682149416100597126487592942998070673783424712482250116623567932423647871091725575667415137666037282493673201014264783422716442691652761215162278405703735048616101702551836654216520430029982223176490902421672340961715699228264094625709098642216658635683632499512466956757551394445477263464666047879831756747440338294804095591637927710153878002230625713352408232932420107326996575716110365638785390732695553016052085516106808047305158055408060745160743640174962433810019568403256260674674377519524067190475911728261563553689382667452134161961165057703405037533452892513285866554283088207718397332044714580524577058918773111597053909809516334758729041882487578429274765155933278182926627867321536484360661061549985535853502549478772615350825458482177440121253284808550661091217001727251628556184280266107751594780529209091885829761538217891480059504671780511330900846713778296074257975388505772937414974202451327434770773063330099777919960893943690559803627437482110792648989704605216306363772760020654345950471221325625080247926000067327136839568233800858410019712265439252175075402718722880752128743880377332103346459436848863903364973660451633533267340517397914966779852045651932830604467666531024498445449133882839331065104785726028402121065836741716727610069276173397317668345676956937419104757683986392755812432005627661722670254763548556965144903617977546528869845290649817654118567452776258624718926318566528745892047896218531408090860601692748830909136841314381054887023359046026498497412282745811368474591963208068107975399588774333387860726356887639684201344185504625961441352882744299437517810107308328215815468032508177589352735875605497342027606144447263203677177852730978552908165933242301292382805996284735382299635719635954465936527427705387358404516707770336933022403675296367330318976817175748887957816349550481731575421959647852341166202921850097074680302029226027016976034502197011244058122246790436990788719182795250449181938921738822175336797479370282398190771688948151598985105510279904583527412928316651316518262107783031019203732870644953587462061221336931584722606898980892204492072510123699352578530293503253801514968361333401542746744993995464652129819904839610649057025072975459173511998491294489636366086912737466688834502830590838511096245266416145943024027867276722344095814302884461513835910708420604660749384771154067834296193473085423734107002459523501920716945271215007753024188211300904573964757110197672318504181612783832516390048194920850526505671105103526038326586395192845256280013852845339684753614547035219419121739623491417131312445223774059040709100338216053460424183100522147765907368482724356717293220921376334739962660239934617718088609589986807470897276512241403446724913703443178508223520520279105209639744979990250801172166522166497326964343623132971357550054887150939094864229636910371535237282121756442361510656914687286999041164244902384426728964990722740089254882752820960910117936022035133031875602471481765239060285003001357322528312871973421040830167186791680973180814846261131233848620375909418688628499432072665337726601743539528099424334787869968186823211573696494212908471834732043828877378118923558867412639592082894964616541757416951790898883283499047355045790741777192827874511204247401773624327184257485401415723144968685702524229514839401433913569640347281373800978966627631711710226968637630446260428639189254245349467864007054063856225452291894147040277234356806747527413925594992158653135791485371691542007157917738435050136319240160569166931385580226039385134607553884936562860690418829376958005684972911426451596407644539095008158193556881498000664274655206749521922509690108248883484150252007529342420153485387818237656474419574247341634787707358967935492066434578934829150576525262759278796214401759351710699182280992705302713770032983231056332872537494742792576514132250695134251250068169702287909091350310954148221362864680449952742401681188631826289474333490333247294095497540937705327385146939789930037793280660639149439137825538989934863897237498838167356179162632341247590751610909775764846690384683969146770070628102668475977670204537210656301018194217209761925434845396768063545396697565051655782636881732834320318842289686736728961121507680463968447163566325971668250999055942070065860330171086159993227819346975482035680859750902832506941034233758526538671609793393602643387158849844904948754939797709274133143321291104342216927798797043032290656750719481875453801739187631850669577098112065658091260970924696856448017093340379751078234755939571557544042326698449374592608757791040175263306409918299557111276949529951526662582220298005040395242934103996454741343544401024524204562033437419333841151220687315684438708520870187841270084322748980603762113755951548048757921738784877452596245538588529589839545494459138583542404595984697386752199539814475602055104441756786971770647109177974253276416685206964234303657229995403067377306546565285171799026516589130920258641687305010523802602057240356395072383456075836205357379976135046787030884836102753865143809625295852468812730258294692605069219271898011133518136443907527425942499668871490578565697450634648135648352317084147495032053134795040399968915312745303040713205355830614169114656315104581800995328493567163448161971319811829331875537474410974256424534441386988636823687682759118825153741957867693712415095948638436255320494690936909650585402712820778956212633508981444359407517419997051387432676192029176467139101197623633632991135488510513964288944732418080961536206872456823698777169479825236478410103088156692226867010512818345367081111517778883346158466287498983622180153161149537800611656592428054336954372724773577469289493593758052216682949370720534103767332812532939684688691804805117744116886561289744976416684097960204511916141193961211940868126366473730594587550324009148430535788402401167602068180949628549009022708598787531462984404799975593953557657314299658968619114820270596383262022706104295551486641499920581960745752032908384295632921564369842817438766820670975005498093199524547926066817976175446087093096849454325313179980565976745413157615966279544788004088834580666969225548361964480480527476119652961174884480110546656661183265461374204840006187466714912827828744857837919185394669252291642075248889061069462327200064515568331388946170956771635009680125825202775947597988297554808792838819537856065298555198488835947994033145883242275111845173036796628261813661367125026295683664935284989981234320521396951404814787874089444079694955767160122571939486062861650985729872893145951646858348852983458349819381859792483869318355932671444685788467410647598865096241934293058975716316395193505470258994623004629081981518632674542432342356862785845544752416021959081471389572969729983761052505201533257960886378008860990917365319496296997440108112751206937745030849308940717841183474982624561296735961756295967705597808825987182967569543282473455611891333356654076099905524517630718224620967095366449762076636336490823678225649351622549115854340756103996024732715073833782788327610052408354571078003526397093565325438003418242439344916704344581399657756641852404697593558852352296449748090026604366225705129673249681673766286656194860155536189385171530547648312207501013011820452838366009990480083177301514178604441117507071664557542219390433873923131160898086509504199399251873554705979066472770550667211768423156245865902737052327448408412900138075766932721639776721212443177544097929964939141430697021026003749218946878657417284343810234845818678515218404319228697293318898696009701640190849455351424728057687334608403654137014845568725261303792304017032023561866313551013477119750593877773813439237046689231365384830501255105365579147931492294576056227298025799618635487304011078572684550849857991586773548009156300378608448275423200038669931523609962307336271722775137051599793316502417824166894040422100499286828477107180133658122574303922817371890339290742425176060231119036062272461281890469977120795499834456230909927594612540511149044987993403162184886341340711074426480034519605449185415075460921154371771885653021134422054351079101296081817738298152752034905370269891124894642614912502980536771964223452282560776538696110941950821667756534731269959269835124462766574734395353422995180983039980874148835097326813463075592551928597193145600503933476608435682410430867458102672306943946110538483378243262246143346365008183548120649428571255708136469582170841644212057052353325026947244346375150742571416725738204468935977379298427306789560138146063974891311176190546517642197211645905911682012528115290768565799496383348588288937844008451996584509213567833807094021924741451681199123863133626075514441277667141008470941718675499885935028666793071878203125557394946306944198428744279765213700862593431984405698338821158262219554820848511195401655640477432365185077013301049695424726021152942273068706933633396287119874986338592000410413586740733138044786778415710341921121801966225946864403312951629031428979801324396823930804545563864993638994482524865998961240074856515419361729336291005191912243632472951863008961106390367082266871088051328665161152021643227490134041492555530300034141695394408577229129430899199653272375152816563818308048326635710275028549284713660038282301058700243769852607074600409759264458513545097732338616245684766404341564643979216547848299515013499275466591262540198667774853931081466847384350096626168831893304697588170279225781014128798033236311288490524423956169120751281392230172345847587033452823899769276975489371928918317739831063541863709503494761351039564693461058500154160988349758028582398542062861460501470365442608662716466757169916838114004136086310215875585306348910369835173767945085941821493498166128028157060011017096396788612380814960102150361083687176939188360177553939331138325110443233264922804378483390904544866425397421925622048238516450048726545026314399615884355962931114537864570758872631291370188893062133909872462925349877531235564838231367169415508340458056854956783492321438793114809345398948178328842022298444296330846363675866790201332919809844970047516733377574570255246767255430474831394495208026192677828935813214734465800211323353938406808173971561435636488281029648205387871163782772293547552195745212537930500254715986734166104828426147454006760096604909277561071178529057887621413018658219545911706586516861879064557326311957830417068833309227866698201339380115575179307878998178131144721971368943290786166764332313858988002333723925073679501767905557095991822815426907337599821677739990607750343954623560335823909517583650230455899001242972715836257018777925089047512092563968615447492762904407329658705019807562069735527458321408142605638122570884327788018015758466334426330151442013021070990578261193692671737871107506860861084020541612535864557480753886724529000752054489290183577783216333821665795262963211531198981377527317184015602317120093182252807356505234381247627202204111414943330403474251700950262890319637564563490598911271205287235473359205669624199898625117260242551681818203186823483461817440882622680932896096857902652516280074495583381702987026283713795080900343152505575179617731369298903992096944613215900021824912198692481859766812584045193104443782248714327708280542005636840288700112462525833206156026839930754220319757884163989900877222091724537934848057004317752714363605224951265840125997479531648111417169066848705254575653341944420189653611402688428629230577083566631435621665086003848319369721260127843983180815497145717645600775956719512626672378945403973297429927960636989031432975564736711020600597203012623753077917632075435438494741190446410669287818297815461252543218513326880077319985010103691143728190776113568330111745097610832424938341433550591311985228685649637687831693177644436068619000239452643525352038836305542486455047770661730495982569160343237492285977375491976696633005060588085038092093251276518856259405316392396578300682906160125589927497671752213424689899724836431819426232273837400205261113373727753027843488766256115195937245541482904346787188950267675406744270094270211144167766090161836166956148032385681161288012675235339386681786167550511008890407277218186486045093209547094822829611475536534545272285033041062852113834433360685933730362788527862323367706152365994867285700196665242826568533093528930433138827730403707317855146219351413701991135632914919150554388658757264962439511966493909771605039387181034618661495017744787875878705145977423863493098393623112821589103303115226929509571946570400448111585276745784124145641440908912741258331494702295042412786080208298293114481828883142590591783533692635042860141362840604571755765575902107534349752422508031869044946158816418819098183345950160521544315332298223063093473771702662995340511877274273365678828223083921558007649214965157064897105832040094341295715494917696007172506960920757106155142644471366024128258291477862625556010455788532220719643389457868566032665423285339829621325721258221053086142445647694429494499518224550903448890739864827785638843657752011448068976538145094694011601850104446821100922945103345449049426311358624054777893440061319376669495229111846308745200726430516198259607764563730617849547993507610889435570125616480178193587315519362174038868798901223045023949302890168371472833665560183421689105047364271204778381484519522528307088549965702788042539942337890253330616189714327822759394373133655721151322134758014285823505431622845101465820119008456969655279581697042504619132292738200815439313139212394735154046358051549599100075361092313960279371972842020310302064018065995322253195302872787601807660493142630564461702843942182670046869837402813200264799688386916883542739790853778775144830107208202283984481842679808164721275511937078832842690195778071083342485750862609821943845303501457784139299701810726731933139310020777372043390985888025536092965411362201304682787943222519780059554672142596031965379959987238408182625314478399338870732871756617245070567850514419844326016124307258013511349177072554436990100153720825539809393593584738869383888975600359063558052036135409584130064253001862393257769704199884073998724632996623360259591491909609667432983784617481080075046636849586650318035638562381929375265389162559738970073915380923239659628755770452695532811376797595675643082994836713389142885952428008518446404112197213167377858004629898096857874041565236497475759278692210362759204286515808846306295658312012745030207459980100056609164258527313802448784337997843851683381978544689810657600602438927480416519428770902896009280976308916486734278919878367713010177137296654584987093119957003765750893695406538041112253317690970366551296074615039325286663763081516136017754962331589903822070501671783483467738155204687732475855065677742986964612078102303302280737289833914822397059978240384330939826283073844145274176468852693234965156769004940302730534214828153198179809686598732638373339305839353742883805838225541819749292200134180712990574587766470241591290193431783910818954140532291739771659125397847149011137606860593768802679232361215109725464866958302215103301366601236560173382645331865853844533377629910698738209285966099326537810055253710637724223465198438564500657587818878770243188535527990511093722104831323481352243130579665454503384485285480391279533565733072746717480917134085158706615714134765527629372917122082654903302303546815027593913727243682689923923211284257336323425167185431133448774029802109176718171214841859916779029168181845079936790448340303820408068345412959745504705498364159804862235777001816831296652166659135498744557501934653685230353762469818360315556228469668381162098793675231539554968265096830374064443840067906441124722407178930897611748338887228621225134593080741959390705683360494072928496374954897614850007130074900988482525373421127547412744164502314460444476847477800320052491832541808001465237771728305721668837297208359361810856340395911806558314944603394026925134748997426400735536396720276613165372280276162017329766725667832068365647369165257583783588168669380867367572235105262616993592749509985680374701713098472391567947884942312134347398098628721953530651044039191049497916764577447529053281238821815175136724295027353098718562795564199721335345704946119702223599452880604589616356217805584854081300385685577280407676224256955600939208665552200915743066451220536790827653002562423237501469324684511833673248542728529643236020583442751317475900651285776769913783407496480029079609351834007251916871354125561148608326391569776690668350893570306583921472094185321956151590095659094048227546372141029699327259586155382205207972837773529725496002364884502729343421951160665133593386415998624751318050676226180664447735521614630398540892992797176996068396324693799550802582726883530672285474298485566043840643578530557768448969677838611610500603462132350881726242593148612853328432797600042002854483040678598007739703409753438815391304168983611479069864528004592697899297029540161310208844113234384464182297936575892986522741454805720542547099938514311231069727087537400870718451271058897792460720703768060488917384796903723180432007257026593745719072743426867349348340700812445318976822330635828477244816344842556570326691825929455381150394812891328524167674307592051671402988982967194873844643592408297848990460353816580939700731444474166332511636326701243684803493465864372601113312178517279021042435882338233635115771952107302300010160190700316806120917512244926301372315576865568297515619276176604826429337948790390547361806182417417068224563650706204168933886650733089741141753108694569543587227888726300897999822337253220675555944318966066990602551144262449804428100682379857286156220727535956682054973737249875362919565796367864296528782613546566279248929927696938417272707714421743841514779704838770457500154868923324237594565427546195768372289092316975553446023057729921604540178315046383315553891596226737783529659587773700116478985101978305082735864164423518190796228102636808671993106405016505016770077616585657715529508913945174899290611142628207332279506683101082038612890139970921345953337512507872560691467088067883248408963992480746067320328751260258338232462213742426297568863811017066604730523998416307162309486526801915290348759668588807227107532729677850210873310713748062439889242748885825640451174351463654291607465662559298564013138205575639779507174389635581900151697205018869840336890427482187563205963960437168588913735756202098530841229346549535255432718405309349794794471873803556997388672236979905087480849264307743212916020303446850477949515956147777908153337149601305955958328009661245188978071244252441806954520476141172868640810417520022194688277791167500285829497004302432127884389179776042989218602056911354291635746853941287755037363186698603736109423567620300439254716444857890778824964071405101127998466452390303370465758245540640810601745159938137593722798008400368754489567975935311752496599325679817181916917106210550677121649078517251615395175848691359415535503454967309691302242592521595834394259944344403670836394307866862869943197479178562125023164147877280979511901098475783983251956301594333252662520323710818200322383677125656275195000959920588077041046403690902374871682862178078665976051397392051517809596911238082098938552154269695800063675238637074447601869742332791363618785696638832304371617394586082716394825674158141349088560232446412280538778680933983621577737482670730516348931301374969908824194878772344777483124873354121404861131939618054540294175733077307989730855719041600677783623779171960569026302906497944875592328685359920353065414282091681511636866722834446305313523185251254687385801255100670890383668700501039090025314289314422208867789187506005570061479338907428772689956956574289516476604048291682363132216451308044149095428520421545632103656629312398256581312947154466236187420232397140634749209550794190760691712218204517935356403701092710472502199893762679654414869050902128267548827620491996816975201543089423780165980880929353740613748074052742632140201165932025778136628946489703888776011596171821420553289415572553352461041085213100193509114185038640956145244751355793330861521928218044220419330784382034509651113677793214975322341279675202784812921734765785672904695265905138597700294570344794821068185011839294777091881367346925530542860060168789297893015513197205733470965961568122244572652426668057976373445593050037147570836161750119363168593019000146108124861506746751171559858681792213164244289522983341598977916955112896618391892056171182028709105402247193503299692643845308545996079542381140838047030963813137754470111950871356641082527557009054576285062458316657917216757408034630121761523344880340082714165207478752836216862647281869746624283574877390329408146000716079460898706032839644717612393306756991711938276931495740835720720110154979221067598369665416579123220637481023864216096092387954644326938573938551012042447201812062246200695709948400931737197547654620378181764586793247221203964233457719128541548473776321634783763091274956164493022338431453153789248337213164883518996154057914649343709207831351036947589892400408636632712399471818564053618676791561285238396243146151281100066288139113351881519318449491406627604437916745516339056578018537272703957625653862268990432715697242215556027596497575369681884661272299915759778590257681938446067813558685917773693206785490669522681026377789435606740794922151797029695684329214431533648911945969247399407158554074269962383638647526842205552542699547225864027269619714220773879785773069288369428638077792566164193858316653541760307310466999209171731362513507099723392792450016412146748808423802474437247802935726402385112998289959639607099345299714894873333788041972027926377674328175451870804544336511499873177831507342784488174674998314293861739489484589187750457825172886601500775994232326611751726917547558946486798374406379940653382177252518184334343587389969443218787924011200538677758553159326841571435400150086454971091518917206434339971425659364749134405100347569554154692911472512637573538328660205749730374741556027802513989040862196524498502112431832248077560215805767979308965971274403640074569145985349847959451095987611479075497078784495823577377105855707092799776215338938662855505895515252973437355688549704340135442425448389381023457301223010220508062129715602058296031468508719458868027140273107263314279450075754292984010791899823454673626976867358189214037974712605679147165329333495022789476358570651938061609180419027976033813466440903489793201000084709481503231603163469756443258473104846894752546893596067332206430898411795324882842670123254668244311886196092998326021971681244361214624298243828329181976574202843433917576521056437011208362307888224267626800428947278258047055645289168177096929691304150329725581996126849673829858340369559750908554318306907505828038115291768323978754445038626832972468473902870171040727970258889314161957432886451136152969078163770117100399883274350794742946364389815958405709016702426278802612484769092507403956283689833131619036679431593497265620479787699366961180739351655510994767476326585475314923915749423275201635676069164455479113706946457102813835942986049196961014065809203058883437025923982924940093808202898511260794944287935456816378396105564600231059062921407108839256629261440470006241914702165859841247207194456570803621775448723196432044996613577831468247947459715875691837588362741053344026944563090827294212669307569325111883138625531960982875581304700947476619763924808692801597220819182942608228277590407965322355860535099923445947282677987201881910913634619196459695635539832385326313161326371594177369278200892094905329149468428550798018574993973113522961721309290425210956482696285802211117126562639597163030956052517566262586571497608829410853501761168461791302633649021237827959293545009442645348139450122199455005067411345022812489338376748095355826611615742165831570355268764362245178592582451039859108448941597383470410760582191551815565900748178225096350684065021759809146354935191137048080732751787936870805454791839511015129027389416196789643437038272873540977262998076864808731411964956458578275852980605828614173138461381984969327015914923322067347300830416210738755566872910590576360202918616545486176289969636615179304332224512700477502135378044741092571632997293402406544596956540657988434388500153193684687268763993436044263930876252498727825593132619764066661368825190390211371490550360330222061703114078108305955300677905567128543665310058541517942083810635589266344048479592499270468195730894853761916298834647425621468029309392338380157847876722596909790672113228969376456415941400866049930764984947980801690966496518046716336178142512480819373774208430887446702213400972175191599955298230354325882269160570491521505928985362665506169870333589534772759839113416711646342175484692398050485171464808449717166819983421207712783742237132822521189216382013758368460234729097280608601590189270548208220125822923439540833688712508439066477415699287262088691082812593618725449504231674726227545364576892443031666036601099383857330527821958095813434400750160345423413894249396390858243195437061793436992643550366913523723347124840901967616632072369864718633581057154086328027550206875091727625668353847158474993009228635311456891309007934175203119296668243464036864696672653063865254736757131367281361163263432162169067915962412647466040059801295295478134466067785179464415144294744351343854476178082472464765498605237971703912316207754885293573039263939781539970240793610857967330598032097237752367770029365308736878371083838487139215840376953054084422194008405701534269299258075541128484148813362797046540602992579794892276368967291404474076779338569551913440174092313982830502535743428012841126906757634359552323098479400490814591027705338434100545720987322098290167608527262642612677787314866724346713168637652083451572733478056963493127728898188720748258343390082257777835664841793504256368313859919860968366495448118998903828389549164110947167480662805317417548848799172659191232791366172026004903218997849493626864631160810583443179218807823736326494990657378484623672711584063160854521252155653627877056091210205369950694625951010896798066500545979557657320256791586913047275189921713872827080164948673870905820052480556540430733564137189216533247074925740797869006341621030694319854083606816398370061682026920224055385349640584430658793211743456355748450666751772131846382544598090771818191201993975713423091788892748697489398137844881286345431999400992978861404445144995415793846409975241911338187284216164782646034917972890077029574034012115072674771499407749531212205011597839703238505427531220527714783875698659012245902981819597921443021986954658127715416560815634179263320152529916953381604612950483821594325141052036972073573988265463337111151148612224748410629089098567152690277029353371801013239710774066384806040696595723488420645689441602198252246309926161192561665623368405043943637176633402050329225245932852695922582561490940823440829548038669519265671475709189519862779389768594095574950486023213858924332447495774171997336924450067111911103746680793448248061381634092608595225421468210781539456529313391617062634639759620141689565264859687782743806924300806956000293186791740196884367317718719738712899078657768073050097779317958049959637298851519378444170509311945069357215335180000246712700207120133026468458700280476971386817480517385031635939970923349509041085514040363415040540063145631912116666904045077020866770809488325289482229388130599696798483681995946268106526136041189195915568334491573809814843110849894409497019115782280706812438188113272034189858524510173143962243026028247250986493058592033460477928562632304480380816543865901505261379758804157238436804443803470913303629734336637105286061463058611516682389543724908451916631699046704557522324687793478711827651469942627286120467651087733086810988142113853474610130315978912044691363795509542524099679366271858745993285565335867402974598972524604486676118443676159822169954984422881149090881583836001170628516375480378822274881506491062525747444475908049537240711849767623902141690348513009468697132713308291948929049347859529788781730567160786928156232302510714374014988032017895931049844618195936299263668802182969457949580679366069981957201605739825339937152825310499129651813682918238076777143223562651000936018195077090071039740154854980142483221844967421257115458189766588830981471532407795423673130180117233477589996925292029907092768322875217591652285367742427702587798097811347030416817431878826857058958306418247735751984922761968607614481151711535675240728339262615305499834908831185997271081373798334344098083687600033991145013064941507842506729623697704222096102655088075075767169117469846797523898530180337350306429645816758066691617828706514569810386666750068501210674222431530648149864897819695758878190124475925105935320802062492556639171043539992399262876958416862042652186533027218706695521662998924383055618455145553992865712809020320864971608890091762450426354367212926373767301760617153825088769623108523016981971740753151988133077031005560096642992053542112932602834140183767716117036295645832306545481900741339461119859598366525623364605999603864689068867467993537223138393030573508856511588302667814579657273586149118542979430289183613039640550449778317534099341478462042990354550935866541642517577955966719235965355470801532140264149186997109101738758526790090263654617247422871045780268907778763760979857442406623989351290718260484077712629557017746048926435309202931973957463423158212801401886006938158296196905455686047338324979183398889938192344119139632111907188551820323200833271310175602841494343228897858809304559031536739584493919995244967790421533407768938668171325051905639309230569815230907132443760642909219582744428366802810108926462648264510034273093097353126305071020630996588431670370029986168660574314443555579397341577815938478990486424484615560393913838139974188174377460273088162344022485557223438117939348936768020849909616611004956270448470884367298597982756361127882921828430866946972416125532760166825169907515846629202362604486355788331440897642196503185966983112683327018235754596406566830794447963085992450866742592466635663082218811012078688227442101143545400441192122604429728906905572985240053156013899535744240419656281008546520981763924767281236059043006616229587719576045354294574962538185962490165209721943871574538613292396890053104711539479346321939925920653898971991945925915865354982731832367895494845954175637320018238294648455936480631329131617491639898494239966800461769431872180606894181487158997772977617083501562430748361579954922494784560148093039700322016409793583175138063692278924874943492174456401497456802597939960492914870680598269591187434221844552477012952221475846500382502562021158860189189696263444707473997660055552198716033066449750718078305183468905634841187855965381143423468519037249494555130817300357393139881171742285188968119534795857763165414783855906739792082038235295350264321163789984929840578060102926109068970988838301967232463413529458108194749623496724320987873680555257952774534004434934475329701629627201287562079672514783651598493413637445673318414116716452533771300682615341171576260953758818356152494897429703042946850043449254813322978568905264106232081483355229651511823501755247514677792627429421953697965106409320590400333092592029341515347037465379353539896987429888094346832272885025176766734020064426944928551066378925191731084531269585887634760100219115596560081772551717053500965658444520955986716863509307641435263438941808393150155653526404201783871043447158176250543766343576919971778639095720515535128285057623602094696502976453262104255555937570243940867853709219112365481726289021632376284024670709952799454123404952520872746973427842319082365343985161399933378743332022670417660544476532882276855047968091806046873384621429595387697720458184617261146416560196118449337484963427784264336461551402533314269571144675378168237145061284200345816286934756447530366503301402619399841813219607537414629029283700923539793510416616625377709344442650810924952803174394693257446422253965336460402374044077160448903094915292991124546398155228496066581246505339864776604735304519451553705502455639928478614373986656025214097823173748402989914488242872208117032170754697830084807074917646427731021293453967173167235932702623754455554327735378105115161538301302823273646655847972406056425837375449098212080827104315721484879493543981786029950221597302451035791333793612824555223956942523552558371494193712847154182708364596706901620849997033218813037667249632422094724351009633469243318611340087867689181835039292348763968301017546775228832267588049608283035473021905587688449384517073142148958124579513268688016492568658855312484563572291570597732625018587246956039076698063682959515154446077896040299376387785727016430434758058237607136643575081716860391989129958827837175657853971735787023339682817790502185102512729698762888282761405795324469895943504297634159487710601218816789565189071767676842336507997859100957969721254058800355037446022135019712606991620670583440481523992325562550228696420681691211661306188681721943304650398602351254798941386369775205653687194303704227766752575568932584150530941379379782405957084585871346551096649525534934761367788835093797932505587508923309640694518543447495552119357307049311000506826985800750636835309360896302798412710520583757567305159178705051742996111753871228225264620155483534247619711688353045783468977766102981702012006773653673206249260152559047197069179329995643584911661524767361001934103614608129483866918860052145241145859540810990207325342933855579610164347076600246709601194368154995763592126719653222343581374371121843232911647756091969997830179567662495317702156362727091156355830467808756441791348392505135320285697693391070857496777812654275186473943580237062308156830486942801137817523496808999801931223820515548476985964944893043811255505674580974976949222225741702496664853351937766856982561853312954565202229201733758496889415212559746382482601189973885282290952001504044828286796103160596393623709782289499481125432304589192384269823356279105261570192137660837418131447146401115955774652620655676522670076091411339549703221576762563569302819900997907385159833989509344189127758781163724593069589860965441168473840588542230968398970635058654304284928025193058259214061796848944595114656573360732192164807567198033660788963300387942699935145185406950338935652920123216015389686364806600252417667534560250646703505114878785157759420200611473655522327912717215451979273834262015937246940785988783039299351536126690386728278210569814471192870605674070480740369734554716313321358527866618383035877047591398627787759918408836074113084097545895452148843354073372307166213857937991420287536935934581472938394303719004603680988259276025149672826604670058192839191287549592445471467490868312274523446423509312432973967282409457893262131807153088562963002986141723784459143916059873840699738734211693992011218179272242301961159473362160560548500611116329561385151534250125917405015765294743264819467798393639185457948718157560383250664582695523808692371469414526050630544665515035615761298261316207511848439418327951256365902359014651001851935429651575535419408874735722825146826016668492313070509586250716573934724857284530845801481036944940438071483764962528864918192165413947925468382793610483286073651896735744244286570390560199445162055835507027569482529389698887390106974635755262679806215827154911278059280443932094402350296162432238946941014837403820548835648392351626874794989055467640994648707574777616619888069598599206072264345094839570785056616873873079525603830621062513120623285321514688608454839962831982495076157686576315186672993733504914998015791804455836382618859574063206378987195980976721870653630961755932937559701620021622856635884307585162453605209082616455499878856178491639747743363757522962530815676538788812225571797520081714362668373452556469466214183930392793184587201486602736160839913304126257410391142256298008280114243132250907400577971596005698823901707957866407014554166452717071033164055716465131633835426341569444408429444983294020172509381326825193810930182581130948638844930627795886628801261884782514512662097210734635406847313316025595740506524707627987210217503171201671337241725299981359908473765856205742799459806007322111019768830154401083188132086008030680953816200148278401369318505902608800117806396014399096848121137622056263861942884454203991620780947092451081915343080312350385221675926523404942336043653467172962651553155102154403126663093591554412662159054724557224026518980484945777201448134440599943626123845177924618430083999628233371226541367007719709625923960406903108756219676636085065718966107384985129966874483131922587484104416256457697863318509151913704318326347172285002417964089067928880019449204050177785041317096851341537646845967503789445957795919631395209057418203561075248543692769373432475581904783234161979853550238118330013836537521414780639602903526213439374843760212868259571281323905229812220023165050296584914777998223301525397852557452723430064631541676031958956793213431259272441647239387873429958116256579125992503244696422384262838383251212480194970175187474645920853339884832103776250408156486433036214873923205787292816922508155697830405465619265045835036998131928724375835542243603882809009201079360034732395989123025323606039865279966441283081592993920827748568000325533666846230301994912332931626407694087564760260832930440538917475597190623034950712276647942437322679090193333754829971059676055049455721569980688364596144226207996605948841151230241581114710576502433912238249296429962699408168922685109335033198019437520222880387883046816327723977727472352116241040170558909986508966321518641185615116808794907634626188827525661263031488783475357630139702886386632210866263538144083038616785190896610968885543554569707758324104432139219064344617501282475485619848392083394114498073003680341993672347684208812938738966008508890497224052156698959000148897711433608281948126734635092663848506392854180379603503833923631952269436828868397956997109425984658478037407031401708781514385551397004869634315295431593210855273528951710452004678894190926564720884566906816825161050770595175043592617993541792727936472520560164883893931938065172762298878691402563381412305633923845763379901253324728284576897755088797235166331058409134404084295691564745637843049040408528136658518629650408225449038488007036185082985204333613342927980137538765341453005282118676025763982291542046289358719372147220084019415275867165468398605253654584306872594202646491488799960128242413906964710008937268331223231808769588878758315575338041947792770542642765377257282544569247833342724238375742558340574896219051258646485900833631104607254211633412672866801857732855767809430185344260313543761212147030108050364583279186832888776219431782440218704335963158867572067764132830901380452618165362735893517968947458756527020846462714363152920937743277047472386831236594405920333249684532910946559200175615340065964974047462054563444496994662325829382781264102587229262580694194498004504229740968338376798748453987236339406052332070731878906780456971978314494014743314902394119107008407656953535213998170340178244304886031845527572121756025617817632995974797794660657847310474152422190107640672612808066696397572204852975769090534107480305016794410378466525652321543174994620253669871986478210869686794263177936763888956853999682776057013675866526704580972299081293829039285562015557359046184345271353255101440942399241415084302853575814833230069287557273584210065056097051365321380783189329270280477940564535515490230551906572084846163053045457817017413025920358038561896909813044620022076568515663167685374269026810647559181953886202071901119403008180974528579223100418345403697858727350665879135675432333410974081898276544559264964060885927422749769063876505269408533555776146887360705650012897394429572379599932679503271053946178928949049254460262982991321028780954081454520908071971784367812778829422331964774554906093170673285319557486634030837378953267794593445336525874133213647351545536855429336797584219303015203850845605825239714889391115548581073084883886107614707977430373044978072438047279188252440000398386393361175401401429511922730480381507713824650065693742744439145207658788038937880834835633711888616186920590517353222594166367979844324641901982729618683682176280595742778282909867649378243133506206072591367587754456752777020250351330190521364937607856136409883095019385085992236977062424238158146443842315049583486678379330685945479577894986240435342422367342582692992520775153542778848215928022622987518602366013320992543984774810303421230563798636463600965342398403227213758608237227067652286954233049947354009539467777605756660129698921965886782456269720201338341674746159687719034376058169410136041786725827239389511933068245776337500442738819295103073231409349384779691517276451897749133740285023831084345107566220540303616626712474707101707301312325565474964608360103667648065246791606055626325976830103377431338404729700622096154674729381029387793938579938174704399106123610458156083082298613054776490630455121940181022726503986424188763014416744935029699797915351419739096035265618392434355020109705502605739182044982308531767382415772133784843157232143997175712527874919812510046970136978386786084825585005037415441073440953716262721933577257631116545847941527122287307829491954750200653652413640546938388824534487732625605240223560594705179706200071770206130153159264109700914821637215189051386351141298206635048073571374848743023400643566320434238891012918018142161394209034852471175928524905420817274119421805899814664537326350966598476986733631323941876776585685667376329573758158812061860126925148592326998547794458726318267823333954881424167882226637359277180106817185636826387799960794499388292913430331282517508313291342272792067739389463794577667247897460495899698307173322702455307834341905002853266523428090090977144023079400389656019156822634435200755613283609245319718540728363791457337452987459144536819004003828178147958971391585313396152712494721994577868303190450950253079125294191272748667858316492652643148414479745622427574145981544735603062665116655022215546021209331830587012205978790536889767515848811855898371986832474021567330114497130855028103026060749259521673895730324239396094178116420568670261928813664456318836251102379196853502462077407434770779324806483435143719591609443821946897387714152918909893906617502481390937250863217922631675942039645323451190426573076587147627101159251679704158532515654298462244151637006421930719258931925871188872140140858404281333766440538000923075772189996110367350809468410575970818040917748291623873422629614878763000339656965605045446822596205725359280466151145687402583397435031346708745296786978989768601147916977778264957989372627147602751618433939730710888427477526188001284983851603682352228822037743813871669450881814158682795667851344858052707349458522480944868228873257643298862973423023312560044429810312000351235169000219062211698791303324925519753817870008315388480349463737371773346714002337634470977842681373249971361668455524086648728591268934376981845847814804332828880981513061297998748761161731800323386995187014923579333595799556212649620292227826802923437307583065206398998802872641781902350295442179449339246164749486642921096076439633002775807269680418120582251133918513696216077656549597910765869632068756338551480108108056830995541115388182923175822474064901625625276579368801013602945177091851760464619981412106346147132033641852834651741278641519485506204113657786402922341169032502958159191385969118900078321289707632298096782489594264188967568599458498890229145966034658804304167677993723676137550431252894728754089160038259687795071848273855873315790213872912267721948224452249552775229682960124297756451597642733923004713263955666770072922112601304929735716277164543978428780993716919932248956399062663937216722830256697017048328912763539585436636360609429104620609657614661455184823660377554403990179750981773348960229968669786408340644139168939915427760378345769325436409511100286454168796170473199436974932451265384310251460617556764247006807057252929736663076090565178460005779644269444496693579970156928661837893712686324191355401936598786340405845904185927704824984901003684302416543867441267303837998831398178466474727361119257462453577945377584419517468812289341802441102886668408805622509924735690953824949045181730934440701492737896256187221269831480398519885797688621896265520392651076741784337283996898935180168195704804178649616006642453951867120782568343033378863249313125166977006157331809096065392930288722086960974483235441619129259477126736254147102389526777691535360339418045500004734852459597680753357149458743319951035786192156667193164036261545482253421656579977705791458464598915731233695034226317734275124728621148949537962796008275053269435368526662784586655517657206887755027505715864987168795007643850956018622069705068443963854430379412253777820867552567019516020321584956820381415498140338489645008367401683022746717309050571933832807697511266855890178256748995615341908428897111274094813676610129621824227564448133961218720316183193572305799565340026498439915274775274142138270154953346743800993112179780335500479220534402028982953908933514880102892501866561375288316465473397530324782895291251438119665853692594421095580365006724310416493307860045787163071331660692997376977967925823991085158846686520086775502940241208823742315277368195093755255931396194922682206444736434001857363012147480852341019127458569714262374793923278658802818447680504613405881650626617341207483276637905823531864230084644749676143926215390572758694678461637446924188074568673657688146036636667653558984731915909026131261677809508030554781880009026353748162540606704343636999905477003160661883904276457921266295927149675047256212675866827107714692794221416576915826471697678530742703653998454258164223664233642856240234602027485884791919728280162044778856994812758379277090486477805316160346247791762723091104683106434605493556930453488876702265202663231304701957483551798629987944729365701731467888660202972184436179081909997480371852990195176055178782207027339750161068289147332468854322941369917562867806835121017140373449194940228821917958509020858551613624936495917157101982916884857407594706084538040895627688555559829954109080647992278172766740474729715795319441203905828442611048370534381673956072196919616806874405196214484585885967127730899580231672090167941661555992254179726511362402309335517957428468646661441184723473110320574119386925249883759777996149206695625450191119368160941879891454106640683433179880039760932475390173749152797694813078635469362211787633650886197005388551873762051452081769018073616396512765261776268347414127490461445844369480211105397513850973109545152215002039772487227792684409138961501884640238724845394783890956619385147646116178837850889019006851677633819444344511795071366847790787962312388821125497568667439547464488878461574723543609231405195813649542479414447234418073635144806638333014559118984585495677592968689563187565771389102746498868755731438161921638503903176082586481478073143354664904198125164788011909328578169212966781539687183363370797235940626638686678266439014794228968960431244748787657877322101362721782135224957359042723247208395134433037878429302199433292671884203685791256834188205668934016108439159018550154896453193153979202825734599327929644833936306210949198995103362006529923266152460117913560772123655852895013037291096662956003632474619156315877147320209067541078307391856298817914740116259427041647475922262871341272986364892174972699970302127534195417886865887194030054135879899340933595972718265712195559868149380751224734004111536985024722579213164150025710011064158012814242671686127699230223821474913814622397416805525938953957760949042304800222218948582086691761129559270482119043990021690427699646566781805149410013312474650950539726591790340921039113227358501729576539807084414334672069194601030860772853744660129434965242660761358638055772256887879653635796771328621275440349440628001034707510176015696357334441019279446948620604990569737539190703802812989038677022141084962611398239282261369342438565663465990540627502888953934770144097558775987816115006747556611625821399050904990761545970340398550406266426109627045511366818438931631452095810632424431025029381059035613695530386501792974218905499150111599013668336264053554269866195744255919279553053489723667046296332155447276758677248972732592525844001042081870168403480978612632108842567114212271665096333615924392086021629547833575956932957268592195057602246830459036366283673772041223331630630997475900361615911121979157495863111923215582833242017569347748005396992224361984917507827908714970792395944683600721458717997567278339478862056682537493859869720680746567895841294621784358573234727385264067941931687901490648235384144781391979191974338087653644775834968571048291883417574659821706509559046077107859638533195195950782747346864845590632070210252843784238960209651818408861209040116762529934275923160133195691289863104378257382391616628062617348764581546096642449233735046620589301129244490536802734570689543332305792894012439596110657856311100379433437071341978473557164446355035988791110805114050752305187414118222153499483248787079295708642899075709863898927825012719918414746122222418075053798593200976064546470852971767883924553953034876329634007953273908497874872433333159533521007319683993131071007611085847174435108268055070484603446334020558804217366404342793616025584766632858251317732854964454374080156186589342189305135300975673089281883238725436526270211385952414176606109923507554005566915509060624462849552387289069855945244659373037102353804314064975361184056709124233393365047079075553804754808086719174867326354653463728050826951492659972140704588886505386856226596986964671840738736262003772563483752738603530316300534341544677586570290231775689236793940586413586684142037233625435878340234291337228272134199246572887456864287072647426156875977547947547257816813478954355296577526895822107103580238268265964871045090693639617652829252080145278982549212939483764801765580232535943526522527737586610219289093310480727609009389939084418487779085765961122584708378260173709374710355504849602772916314713000178997750434164872429510412085822425719011832273772100436304083315436774241996732977737391063453248922713203728076759487304471692187355193875654894796687495368469517002997447931068479804406482057004465110650381739807831818000448650942961743383055659347928360318023002407024372397326937961034278895302419270836528309976439862794336574010350599395583935715670612239277700191429086558596574425447951829386360728864717845328962714605448855509559360033829977190103003756432699258935092163865312389358846169611822602937342959724733621420323050089814280804691952039637057923916949828816948250913088532076730764904814802795891454881579496659783182807427192298745148341810733389202417628847642704217480343400734895292808735407644323770768056681499034707096219793492950005604646143715283067483193181303774380543085505129806662511243599454975256433247530641663466047611610810978975354536819031725633078282705095999636834258258942079883088805121048942200359437275636860954981016875344358920147043367558229844522539959833671401919670265000562798718232593986675134837627252356183032991293883430411869527496012948885908253494922940240055296589242134289691014237367398143518625402106541626744596236532496032936662670629256766279518987858767522721785775274831789489654847613604358036329436567380256119661527392531401834617259307302236055163150180693879077186096454454950714577270741064140476318120535445966527743145604244915902578459886882418473698615528589140097048951071051556099887981613331864330098874996990270610562938480969893362628505192503399318173358597072127094976984798063640836774205621800583656728829317652438544566807834684009272705846359443677719282064099910069461006974129911646252601434485876403357641915923036559920688860595240217038675958715778019664049183739586143044208119023958344965669616508731906465484881564806547882887823288807134198200055075903476453940290691468088096048630585439945377037400416106983612327465174310193649120230949533634661556108035501403199980879619910502349888962390302908167144592652621108676194724707651444098005657353336480704262943912098708313267185696944659829396553715294094378117551926291728603516035970048353149460286180924856443681463098386038331791809952555304903309428247683911656869662413386230822983581730385729356493858871450297207068709884544980606293358252783326220035561320950089200729294764225875903099439968752921765553136032917499325944345462910203499018536256738097704846404665192886768032319764228810024123697716349896342281428397920103724311824962515572894414538377115189553919101794361978949523972336303685070618235729192711991462109355485941919082960300739500406336804939821281166804782754969009664699772391912428437588860297682870459112869431392425955223336688149059323352048775764287234980386981794019400462273790085088391484837270781155681630785978499533092056106509346854715690660025375062035330825602531076103210303513706077169580192545468859118610096177643033059742808970140535294930919070427043204383444920969719436647895816375041700647205019537316136832678881165360911045265424586070319113665906287180495368903853473278712514034553164848529932913704402647891921243708868886364854464638595411037372257485208199168984588099776477171715057597066065466425229434517257089726885887733776510904034470987320448134008275319457954797315156254327305300383760100321931520405527925359776343776780453222377643130320316536834006673832671144483895802982186275534264996817240386201721222353124639967909955687835262894061439621299364800946522982904148750518116681784660509055822141452473114143984093373178712126295156552899002735989488175265432718338386831365953383011511773582108843541087381971922721969713061924157480844980182302794729516349512371571119144277582372749805298536651944584525905719135717853551359818674583481079646216513082405909855186422897966751752168752632102737598542343139920844104456898367398934080282996325031370178194077990305805703704328900166088591966239845800490183524712044378292709157265448401597237907755823038245368414474934683580765760514411684960906552860386428219578260786823998843434517354847296645243333674996264247417011075718239819133676696376594480994729975739712945445731642243595056278908578792342040368167909587974930145083865174452703401778224677858246260111571766240725691626336712811381802135601786465706557284793294928069967452960395050558036581885288288090973910693051369844111501569953747987883587120102836635046451265904518188893015221247674084220124124142273049456859978958188125644499111756557732646807712594104742457092253784239757283398059563683512829589949465463885786863033513509265252300802235908265319820478905556984857618906994903296712405265483697305394564984724905863287217183337887031971816351881162457719092693328721869287985026081206070785068081000388522653431851614960809547777991613767820625859204232900609536505926120720446764072698973947091373228479586121804304175876618056545003958456449708297596927670730971969717340384361238243256887395880754954493524417550178769806481546039714410868199171461939801604408691311255475577764252270160392698616298200309974055163987087074421896633489741100556247936411198420127715638312322481709391197555876832042116043304829736327313629261724066024991126793518048829539372831406987296299037122406396566345056644753322450553891058797102118321980766475642188466385864320379460921636951337048124804523927310082119588019893097697515681685144865076436269923766714823324533034452256260476187987391356959827975915037282797315602835718162029492652705131192727511401771833181435661868754159576873692899108305179251286834545224777300385990958908849967880023956793111071320597539903737592928455004385207924642648475169185002171353976970820592106445489242172487415368682062496240668795299632745325368719676588059634487506759080275723883264685160649496970889326210091531308360272108233740334352384907463571760375888240062272597806250500692749823128315693125009307252211644773751160222762493809951692669018836539677246341027340113764337135018708627059223857229246233441724401306990297842873163269553185096486233201399239930604749394147748300451483274177137851882217400451076133248033793662450514394719902095546478379342789144485082694570767656356710727907522959717015912777928893196018984381921557958125679943764032556234361864997883965522817751470529704923487407121554373531762900395147368939882458796315851507218609085099799392215063420239202893762568622612724724611179138705934779851979612310661679811739298909319079462397256892801392102199692276095715761885872695906572326877535066620941932793555103923318662455237143331881559857308954094466100698302953673266921315394600334860811657903914672198474537970781860529789949862333835309017317477989451773661105301905546127296997565606799519223458832632736700456055632184657982730359383588573736193906314403755299393356823422566342773639247789409076961582470428052098133030751252887791871396745676337040528394270451510349293935955045004716663531521190618557658993232598443434186156057405647597722370508676994524353173167312949834877646113797875518509368978614004693113294780958482908937158774180285761046956307420451702363785381726847010058327126029676257460015204081972292299215046882652807667930586468868075710660357752576727911820741854046066753436944180155354674680613342695852734208427657699658080089154327471616748820031579087366734033678881905680080448200180059790102613117426467051784559604422777304250554890566464032567633405205239873354747297312695893821164921474610540588178033503034254096254465314482410674475645862317028818403933925046771044536349354007313143235686601038085783424271893954948700607020541830433322129996084211830722804377665090577278188788815298311433814202507596010237654877463312151674883570134752519728564541422941820730937350476075369139920817138451962612595754496009028729764410372996943436826211641405337253435039543514029940158360833232670180562235937840225048026992101518881016339104515531280076900135621785623989704559299584417749857963059671548467598299157326798097406585920026567486816995098065789709466739815871865651617132162525262924850006698805838747129976327720589544401584138240526321948630851864877311431536299491072843511146579692372233764599869166157087858794203924093426179580433821339009876708598855294634833421296574788994181178562747872667348364138735395396841446258740923896899948057604409960542936386113973952338246707073926383947597464234653062820606402011671574704061181911907142514704934620258378980602350062933816401635746703269987782708897570391773484628598283361271052187355024582976611721590039850085742260016781781208542163352782508101646549928241416391487784408880955507507806434293776422650640132904941664312005737248122262404620961450537211595264396054725706756535850198434309155817982472643292100569166821945633695803596657164426819838646986729593689550293440373777744048360070482045485847496145402259925713677810852909124837009889664142747735018975894774700797441615356137782472695846199835930194703857975008528218450221378119919918211985272423604980452505224031932287701596065690188487168999904253326260847466829818015826332940672834407953344434115976151670282017046198973090082601365650664959828303321687236345408991660261978944616866944189266289840119296275864221810992395486129959191997690826490797649811678639656629401543395847992617337942599800081550275056011589156145220271967370870923151015360221450441854397296324577621429448179453557670834730312730327698449419074256834527452215137885987685607086298111795728833822870505787812573739818984718060122038890255222901183612986504478102083561332150832394960016472865022212305001729944960579906804894060065886327238862700182249991040185555403483551788159396260609759307520446070323958465291100823135897724321002709746903945328308446948985946190040412223480714911364506614321596742480609890532747113685726323623248668038355448900243330303631466600065985973833486039407071564008891649839941736632989929977945923839298803104083719602901959008135893866275030600074599549170945734522014130315508726417696531004413351504062981198898414840378958838691308529308162157337833593531282683260294645042233593110822595045029068914916622481527556873390264139492953957046241043300535765089123337630513408712383690935044734652773115692919471024597117564588237746264082443976048321880283621828546100397411335531309017072111151316822045796458952697023631527725251283434191471490877138072920142723910489135809614910062471473854869130683014141150221094397211062639435121533403264638786451078004096731327928068580186567986899086947561624985499887665507950183576591927191516057838820658950193858409235152090180496672740640929084701461144391537107075980786932001879317352151662857565448704122851175513108834397542014059796328198871202439338461692785033060922364676588299556475198967140663230261866491980111389492390514741791400104937094505678684375498341026709770246881262140738994947499865533912285564974944596147331762484728622739639859981279084462770168212696045343022974234537055374855036916031445689029385074322531136086326735945053108724876837448199364151124140425621244324786134448564797768376028664806062889844403373104416533148371788022407478255940219817231666427084393068221394163208290049542023015367626279483111377373149772227451419354644585105748023926214734910333337859582321855653242915622641311112936031613890568347384529697396940943004701325031847881548190005507493074058881097436711695130816254465074304963774555356704065341714632948568441023052255432798577150284801757151392190583454057259757178021352786612729816778888917101308454727876892302947648894061651444920408592512361771923983231282752169596266961136017144661408442938025338106912421555106817084489683839311332446817387300329686851006354809990088275248490329184651238466897865685474372495718292954293829326587746662555929828454569764492668563429560049645930936901812305576975433290133610660558701372086256687733316686230765961659612022197824546332642665262745112530076141425881426136743308265344173998110718289165175493945886998138324194253047590929912696470156287540428732125415855298812899684885069864556652124173019594480228109091301194262389560220586413260669061447783421596829361488782988749180565511606532568837370573051357117684876013207666398542976619436791019510407985045343937052833112672982627853431666364754995668215342989251840511815384292157740902400747699249564481631965139123848684894210533604119123478117850726039535300454083863693231857144943250279188534490194100960939073801088742764546612195519258607937709594874807928972204452662639383337499019132398197119374216462264047415170808209209553110684129660692208413135736365785584358895794451293522458086749224450895775099575454762715365464808427930005870554888599521222262211728506729317410962864491898676390287974857462904867310249773056393484663095092979663319145510955792236714197406400373350353560269542567582068709957500199369095339268289611598506380473697488745692913976432499927838891993886031332651520447245807623187518979635710516808278039431213445020852193262231281573908891872289843587309026558077049669468581925736430969805513795760629868234200329491066662817320744858890189133897823064511977977353378354165541165466495496012856237774730670349064325370233797080930071789222783157132805792994888410259623913707239292135241893585068478769002102996537788861006382656221370381451427781649233121181457143208575626831413838358191612938350676789493881918095473450456734706080187970883346756551897277626003196487812868451909035459140897183106294082603092426861920720652324368894660199117839625548935200618046289364322960299913401043986514923373559982658867995498374951942582969181347699571076022015278694616228112969743115616112773678514105029520904212735770426604445751784821126369497759822262891632198610973184500230615370567274065798965443940230505684806671484639903153805806669631787579377744264852002689238914085964595388669337824756017630004095021518864971459789098308164642831430683988423522352412193981838862288497318481223781055734911768327842627609262389951106285564976366035598865840858668849456482648572821907343081909629229360421985597147958237274078840477210840194108807975721094787608599314271279580604075299934189606913938223750330924127753482743564957078451061556660411785654479463580141821212570242869042982636966464110868511885923404140558735909630349768089881697196812378340474061260297706381573675244824857272293476131739549054436316653132119504975282386285265002266071309152654805427517471987107098930999173509666558927798129453080942262746000674487150279586684171094937470701694064420356515727120029754371510234787070860234788502363864172512180850375435548763667885923492747021789894127378441095494524163638616994601665237060786153259794211087528677587486946766083753897328606781125471206459178927475055164734196986171230959263862638385233976006979376534625365956717437328601158535750601344952913957925802277499953903214548914784374362022920510942584948906715047875824300109620660185813012679271604491670304913832092608222795660347969122582101641309843971640694538718097053010120876184123817039071383497552128692767508825519205289739461489708666175979835283015367561994525432238688972957053383804288677495163541772494551094569413042111796940053738853202920873268074360382631637029099800558782850848702264291833716416206667200729084037216395873637295948301127883502373350546354423820482830531514116535256198549012546061051981178176951661687412271257790538928612005121063426924411803417237471609901044735692287204105031815170554956177053454015900369133671601425564317270469286538322755889716946008019247312365501830158640908938449932034784375091996802750088722552837320890102781261042388529302303161281708019013768416013454610396560428363777847099180491430051289487081010878916038754971553930713414821687793208116509021601907371475474107076044874600025013117356929975630480019412272498818744656779384264515022746219680694548938166374765332425482162745761776479642438178244251096295763219780262962504668817286739774761630690960974513608927384097343322878225911443944171204135399620956624968541598178139056991276359708963534392866937627573902131264039711222156346766842979813944414720910048319892742584467584033832801416963223006903842950827092615882670852274253870830907362137316407579494037347443717070602033506451477211856295359399634957957199254492229461177507828934759918194731687690816915969021579741241997775034478107540828825163060289263328452354439179852767063068051869825096469936628186495886989160763361363193689128691402510293681752658869366895042919046826557128791435565749213900494084102963886746869750853129233493865689337689034367570871139146631095711716116472365467135436362305440897672551225546051168889735945242751087176959536182448066532297023103194082734355279228148998536451110108842982115639231855423890114305850280672825010653599726394669245338994797469164307501947125456948163950885716819255994364211055672928414171202080926595797790231526236916258993962840870969764348309053992817532057956683760307359107789131763992514032794906970055827809651887417253057879087156733592948645004606440927601701275167875740728548971911958207054458373097317683386909462466738923546073539856756101187266323176215088238133947030332123962007930662232915187024567142179631950105986409228838408182582259362492503575511666895835956081742141051102708056646969447095418952944438982808626673901393216954020481932845676319436700631062777578617085810119470850890934510801378914366907743812340163689615955571143024759311341894288760802811536351703833120935140804268871516624274513952750662090103179499444997226347748951807113958500885793751152727109668590632874696649492158762634873846912527720097283517555339971769794905880818970339339881619595817992442599638799605383213919933526757525420772181437662565278013066813992151027479287819079961743700648495446140809911958496117461848418616486459848856478692686981788955274400940008554998016076088098329888380106967270814090106815250911539899275789250946675608610688044089489950948737660327749851958059810424348315162332839589701173817131537012724927324999777992422764833323264321130385626676394274272600130541811013564814443180907763247086958065652374689583803436245671093979578786271847357009572981699903989982385703873538033949997848841627417104081918538833491151110537777363712806709434654745855678012153367428587855645865621432809621999485060555207609717619370260402894639207691907771219424810939412687781252185744248292222867553330767637093430768680615383125172450715627664172639084129565750508958466268583406745633678656196996865044275145150034798444909319558903085183294347883625598851568914479311923948153594384385500217097326498596167301952142403665689516999303200207092721490531605645369668581546706676094374286175754055563997642164949092598185748480192644454356063375236177659913541577504789273819490159874102414275600499008246975418463344518410389358238993176562716800265427921378952502607604088872721460175140919437865969987031780267647867209204296678185658428588505414221532826630266354795774823599941223420596631873879581668721011307162680214150939549226352916563929515480940858402866234105074351090127248073082174586867954076753548721792499339277032422760833331183475715365951711588602398327828413422935914996862310732395752302685857301669467418797063108827525348061824971261182974397288214564940487709236668232043624403698976456394306165255303598870823579320266550764025479019201529523713351560295583020920334673026686444333262150307880176644554313552992626359548299800135258362310707248843604940327075100025548882251622858155423228387189106789159469735180375549640421221397450871920359485967205649831770589157756640214383538125415294683639517412827010591019229369854835456454470261823723794751259740095893342556502547185707658904363162685865030746785255383535302574565823281202440258045875530101170612756206767567137010414874874252735748650962683565736430591601422370626629367266349698227454198006939106450794101777949380772533111259137246245376351287185130201100768801184599980234995047727615433150711299010676025005926819505333913062404951766948490676402405600424805398302658334478974809466268288203568486403076697084224232646019146445732174034675899501474356681873814851264607039095209632402347084704333656534272934935100060580080105087840981193977184602604690506930028479123152705040108126574997866106372807005081748660630561064564870112655533971658609192253147686399402029167410180423294235430059763814823736355054442377002629884122259603047283623632747595434835771475638470402255776565088547956425189763035367244128687110731537923765994010468534770081042426709774988364752445240635025262257078062007465908719615696864353018018902163483271330391531024290589482656573687516545029630156523809185504168805219187554267103439682982140350448324020654532625988712092930001427408739828180093426676155780829125036341798617464464069770473568224934123798591907714693901920821003588486411744966039061244906600817385224952599000056501910833408170355787165578576671475306931032057123692265918468555720672956250002492612780040630602777601391506124592141370737082878729568326590116827944148901579919407824922575441232072138908360235019656672349978292397799827192108784326660341804219723451782774216079155141799844420180386482575436994495612896347443996702725189576529317678046334986691748354504489419291959234497649777717637313508431454998511648148570904424256014405605267855587895271213346898380983913864581502239188346160964716890370163615970405064645708843965090977449917952764122245215918538850343886761347759934195668707475885709478031542001982198076231230694639091749157550992424399628094473624930899025846454335028792391571095160830317920841285115298618738877325123736546441902999854461883221592760959379291014727491194310185122135529420726340500641249829428645090501438354982995826199005103195492522770598844013541891782565837617217526587636132012017325177357879170527074500784950793049014594650256306048444378492241680419633355853399101555938547690951891778901242859885123114024133743153851394763381054927060095372195460184360337869636625439953616750602559353333380479412788629377689067832691513636067415078254655711393895269335331631746872507038873213563541395075590701809926986032455666122785612103753487497995089801756471904285828943092915486381359906033621916364279992216996592976755458396413593705118626416110412742541486101317649672211285299848866215522133706043736215209213065008472732563612183614364237959090209551552635842703893341828939157099340895510325831214060420059308381422993531486157245715912949471113517160258321122865966873810979991965214674686832490422461571785932857696762115452588723569706869732218448813746062107538952113404339522983582112113120883399432988380950641268201303514005053635003758742829270637285816148831242977135600065303592891893503312787771631809281779247967546756997536646270948610906751796585531242823554457687863379243774715714611303373272781746741133998734297357379828130443022708789891253990490263060840590567562841229035333348513156357090909587294629789164310222802301881993675735887272880140340722528639459111368962550593778174386052544603783588206543240255412792482201313781471222562140860244770697664885860971850467827015042896351924866252668972796616883467253716641710758886629140298293493879431148315824564856443563814490969419660509989708388657902844294664956287987869599923304130240560976988397209062940533568017123959314216330637546821820448634720097369314135164551822686121293522740012024035526830133352478242872504545483105045387163573570004713495040493496490429932002479310028244583017589217639804395814626082924210075582602613620561890765826011173938041331380106905798885862314627752739113842139165773588793467915841750273631040097304133068393733836362109261543680681712832645016545198675394311838779045988835362589157664604701098642142072487344726174092339850645836072414286435221752902019420936394772007090576696008187064256172067371485458620048805289650675097923609126526021867465499917390589756018828176602372581492168397170560241578266531250307227758003011419509740525164283165868841632590504477986035230116606855992900269003927515191995073341156646021403952194121753948340295130750198997431490574990856308053330964840040581915755359556520576409194832580930370111419462951129737355655794745359457935403044978444733580649070022616564522401372513794337186574548499588927734436907100445970255766650143623256293084296467789070242515062379025499819047724603104712160811526630106104551408189131249371419000003929548844571788917298066381141134378477021254513403519972353520458121170236366933184133949172608504943818204474984977717172363854099938097945883522163368028219914421862801439038077145395659860910277448812556081349173754782376542616352531487767625638956586791765996816024355797819970449194069535496348975824674583252883572657869620466960961664831424868038777292888281617178842563275986477709209714269886398455235704959288686397874764556486780536566970917183546955791488720301544597494937767368926408096250700179448164932294702931209632839687174242917839597329447102839922404677403248942388664018302488958585642817982301883084711913993879427491333439414973857577727622730868200985607290553289904930679028755191917358543551068675179292267769280769519935159582054949156285205380133545499741499104063562258305133458822553664357750541872878050480174264894607767372435920813617321625438954702202969285580958951606912250516591529568384183142103559297541786733892260218496274422987281042408171565983603091944546069785905002205554925072146544314337222972516976417047956484786018255169692799832048618230365788607805911128706377169676418172348050528499628988381287580945158488174239531520029243440332066095971420962431571941558076530946250078985826364310261958317085878578658699022158579154089299441821808816532230839581119679368143748019605095799993041546477795838346110035233333145783979749721849269250887343349345710479520642970147487020749716576489909700778901133041545363634378529251812861975106019859328037180672912918338391024672405838459720937928790469618178328361275119031452957286517753801889398121311571488137167785031406728492307635545508964562236519021950452771824382210158273239315833062419943332165696317959066796381468917187350219698220425257060841210467605257174450178080594926555033391967276927379767483220774375682017349107926010337412876790129431526833830615027990172639752224934270415397642183088008483629373072189837810294262551812821959605352243519086015922730997513790675221756721996581446132027305352659029993756984242011289305116459837206229634709700769356450722753655810027522309919155935698077236548587846943765922208809469788617495568224919083512557446283152801591566868430380687060604372732211247138034205910757625532462082353197115620077313179770192248968620207599419880672413038915010424350514391873991748534513314920958458164018536643453108210945560698116944222822976904688054676631856987475173392265623501622880802486313737206922042298437354417842439791700101371076596308373177520666298178883251163651393774471206522035678879091829084756626340361417123130941231108138527761968383608096757140516062818022079180665174332736217307110990489064822619661822481569622330684387348574914552378878796643975349364475800722970050458953055712883975530588994864834150377310215316475574863438687676269429717284039204812346365615035926008169052327215903312814550481601873375867330270244512517661484369358273173001960667638254543410387315805196963045693912082031450942890342352232617527460893135123172488000361434264930902009045050473547972601902883996350677670182200234447277902616254710689196641643605240716029925001897442851570104649822944078728830753132496549371433208345692710865434012115948297293643231667367155609843910374543877441494179547318951319117232963773016791018746566030503529506252559562474733522280091455026902153533287137892176163359779323787009912125271269274311729181407803793667147471892596101255686071112392941993624517526676951934778352197258571473371817317064009514440314514323115455402142894985724691082330016679266935833439337269982688472788427640589349169464410543038914924147134458900784983672586057879651183092071905528888391773446391560232149174238234266989859247644527649860949156709878468390570695604437768551786449814023616487487611320722665508891571938333112591639024604480621687684446870814137226402490474389874622191712550466575695846713571267625288537959053233135334820498178122409435783611838920868781203868202051385327927959114785433431429929205301132286741409515203213230673684761179102046270183516210510525718623016348920709744707193120490869435613988712703368739524102708443842606804750146536833072264729772205172939439778000752015429895048614379110914794499738472653806210442690343766631556311144022371626395284854875110107268182104717654391776630650361022216761147317829644593856632939305925049467476110532791212924397413314159332279235766069946133273880705788793481999028253013228891795557212489639676058791157178190099793300662532016586571445841116256353097867008040708347565747067668549817168951799599720383559520335892686599115015611426800204429391009444224366646075618981422166551842119952320685244458080290380899478815331694633665376216547402490711978940939325522460817499678028955577376924313974183007791292360452234817169866478526864122508730263324646074237242173335533561008502370115186889202189027397409347377960493536288564166214680311700363273559982092895211858830001803960189341578383576822794725527881072332110730546273598685966641754921697100826175617311635875731449375850883842186387647397623217388611366642671917016802140192715561139646048533323231349176082282757473183013141626477170729680124979282538529134847265595364344999554546206279800395751835658925878104482503758018521784126745457445398182172241622016123288609279780175041888819967682138545300140181631974228258540233104130772916008816655942227760646409528477514889137488469914497841279034710749817646645938252793421295763716967186169685936932813394784521191169327971700858584001874073701321028609925794625514671014899740082184537493600842556565672119925912205099284136158077648644462814063847504049978991563223697358300956970181794209666730394710149873104230222051030444558379196197056731267452508355092041997793814159801298751359448406977650880186830097394257601631981666734749090865815777992886591566408049283304612233529905473941706316906885809026500446478276445446681222996789660158363795616941336283235249282689264072802332674534333077282352741698119899620855029390711467778532026011915473059835716768532438599720587291802375867446439030382017637132806943464178515648715155087099556930247637548069205571072798653299501348327648868225857016334242961795524892403383104421527083358638319002471770131793076512615063438921818872035411512125143417261665106853273397185382289236559888624591337493598563806925709053842388827976628873704054311665756181760068127626437862225863149187573849224252049533528964231494698425312826822495145686770006280862254307326132656568189518109847434162074527527814645295074311784699639870875760477258711924859950369561207286073023904868380054320288137010223064292983450147564794822335254776976699274414609469425192104710667198608960630000751500841594409137953531063567315028472365605831322691281599485263056825109687304327742306715590440555223849769565926536500532240757086287364442180687301313721713743796541371062855164381379461235625440704474409847696130616434043248335171431511292631083684801689776281918681674033252637847933432280161927417254148964714119447962311482337497357386414881085410400401481211634470245552128267189550094290610307842283111367020858938625977752047778266162166390648587037689307292404539145169610748975030592866170113896168913445097170476401953475305544572446936632549796037700271250438313563926818557713204518313867621930018490301772347635866860473295189791315822586492665851653587187135622378947094352495899195348947047504024332941695434572712671286885956486591866408600551695594266556626443603698492441038081654543405143775885767507789336179509002383691675871474494403407138534081406578554304169004222031061902479914054338000001095237957510977374194485494153277276356592244833028404050819152569066926770573733170207664589090458065218439504887267956797137327322671399510530555034194927639595679634423194529513338496810764072548235540444059568231250180022219135229649938197398619415871514885412930301394501284791876770544967092115924314842597099267428327071256140188666471644838953977118991774796026980350090112324903656651094502441513606384035936207778526673927886784751953507520975735128121201028243178722976733557872321920772923584572099818791805187170685557130260531659100455787808866081797264504318743714706231487866153259726172497527659643859967047478968262907526340016142096349141966900571883886128703400044250669689119402797950861926873692654375235108631894906297891174648221031566926132106092575751837995630630266866488903014138826418441917240588544947537921509639780275103553154901691498324830707589872650746850379051247399056362202837012513959851880017544975475154225276049919429816935351376446436380870656162450293103971593657466151174490355159196809593777657238324057551445265888289967143349852205852431922657157326247024719419508476733392136217878710858303169076926221104763459883864060363505320256543870109138314344987941331359600561334636125805289624286220618573932925758320858234036907169050655381376781288988322245106443786946101034081251974002880448017661419857340166876697470764854727779435348536698833658314440956292291626247542079272193163586654361067124291294136053040537602883891307344326325253899288966497025905959656303222993757320705460656929765992701388423981528715410777395062202387808641550814363064932284592722089517872559905570044662423370986728214088083728156835174440646034865830290449676263299734071572115192517208852390403428828886370750797705354975559477228227921361217709630573794488888765401442094201852731684921730651688676793251309877219673211961014371728059591020038165268069180821194219896914111032440688749569476438580851857010751073751494974027299470783073372411502191902559508642252721278906781294594073994429280759614301875438701111274607689722995266290712331437246786655363342695709112744350828880857785522255082223902794368729846504769863839726993819717952401680670031582533040911022563547717065970393391655370978930533888684209546677372296271920067950276120037451418004633996957641473825905696863302230123804229000432410323591931815238289923792892859128128571379942769047958710266972515176930482311310681885204328978807312847732920230835206803613313091592144226911176050797206780026453348706491186081137461366134199478658100776202129964635785538434248132205932906685810358661058004100549860541731931442567063228716925128232713949765140219818993362408547875798673830984420768839897567984185444420168421812683187672654366004398655400831328143626601372272070349358660375228326544974846774889402976544142924542068901191039677642143183350202756335149792499213406548348587624064234347346811225129466376764585596958201582819222125858292712556410027645320390384264119401868036109823151124008256853897439170592835955270594776098637833013780002734247769274336005078656583946131272181011689620372400481350910965760069865074139408198868592447408391823946951539979701532364743246044755325558342053890560085759776276462269366886526220624537384661849636228299171290031274964038434306075241212438811263091821274363578048988166347942345968596410749854027367656835467015181595551360746154396699565441995612299218340637866241558677520627352122911976710051420282324491087236982539645152575214722225427055462857358940557917263928961921306010915408809339435183253354100411101105328724248498213598797311067190488384330933158277885377989404140774374411335266872044561096126970611268773798044998138913610964656495057766707053443502121993275821565443305147767304775851610538296615668210300411672409046964638398776022160417282416260541463759510657453912638939118160129773774699465830620289666370252454584301339486487392127121399729176337614610117102397975035677194058340660227970437229556145574398217743111227193583709387012488401249408105893872202829171850461437664821190773569934879160520216703284107514246122402339816284458935176461255506554895565931466734005314306275151860976437030024941502425207649502313378221076246163604073936092688104975979746434382789187488589340662984744645329735854160905156390300887607602827101065038942005770504712612221609351362080070077566058027273487715480132351289688323256595186982324112129246691099206156473342863208652698444106073450708290537427876804375398863825434650866223295040366758066651351493570224734577356791543113009820939997841230995550401591406292293950930671020812623932473436435242531789324113450355924467819956651349558065778080650928525298793220909860247838102433795274689165335477561061215472597399508603786064135024821734016600009464747216363480163939431736720723887373258936287363409895292852519471304419843530213300679751487413945930616566458637053587726847727287084424004263005278637464558497219672709350929830279952616154602987082115185460702696953969629603060461823799155349296512289059412058619107654377863464764804915097695790866862625570208562407156512507227663268907471833981245874785498729644551880005694767524426954209749012172885017077610048757779158257604010877767567457035147547563806519588608719436628762339821638893799327453925042759372498618735361457714276627914333153484533189597503449634132066369485212393913601284349186811421531413567700021766183012834272819322396583928172743152814778937428893891337636821120890620160470698806563530292778970698600467288454856887036380506194401486272287679628156654736488806312710530177539364701832859660331661192570110254334344841560813756983528944900005138306754318506787211100179087429963283488138660043455763671044660589925859508532008506398876591498608355352303789125866992183968642641297593795266254860099126662216174665983943032784374040327770065144175498108288716106107050647345984272505812866097080791928069978257797677664312564318417759837375521278588707416118550720720671650347941146278363287064416335652122637764013440678766424651249220891897665149118173353827407026027744614137541368602515373599673865265704728603309959153712063228402298645010977097000912874268609187760019424950320299775520022612001087405373483160334066605742881112531968028416581044493290400314604727146814064512410962922444767659229427818734511301064222989088346746471796697990410440580639960559720263628547515891085573173976206343791785436672100459446488999574012123646187536560428788787522672533197407527919812208390105579012513890321774131121428583305436108999688620295228670057980771093494340549845621201862382292564905800738631224906215722573215860643966053858234268045409385092059942774796430646239494797097847419550665204285083605504230547604214050243671209483966645099925403510152206967619593344905502235139133529355543107904359734467004260240233662567334050224395514957377718793831776077870911712867305260407241547718789224236747669001084962158747808235593832948133423778270823878702196268844106659094269790392144156177963746893993117813186638709210385043546937882026448531606568562548141652439374253253580045761018014324896168741742874116919737945512442885506968219521101868032805185976740130333212568864017375842557430280379742605918942124498302778601698202225193689420797130995485430852302921266364780794733943106120053653431150653110565590708696439738756512774495095249047836985865530919200696070494012869083514333050669888573791808732453296527482158813833942169643081141632929130807688261223976111733022012154631348317270996350221498536685918290529379265664861615268630293028652076552808004551981277817208985889186131269519617465929074031092976164566583123605176458629554795453037734474853850536890172261410161614015187114464861790954180665623207454864475755713740261948578945414812820297100988377827165832092541461140004697224292083055071860374539735246093430984017896357826416932621445440391286633927707489974417474000445448780229571357235631397681550942584215539952652752454108175826519847035478781963505766648059782173748445166283163824323965042822027290777586400398073887792500729278157371870930144105856580231778555461100492610178858640039455735947210563222859610533971679476314288437521552714904632178024850252225816363099634617907404140169895299937106190726835350983199866301737273080093691143426415538890711275148839947374652753784870008434646407381152703430559740368514706305972456061735986492837036203694749844226055444898375399472612178189718516027829635866302231234819603003702975855725415754482799697780594135825678261124307870642654346047305514505979873228467307707916232007062634785654301587764647041312824386203239745251220810470342948477269696628332090405635647126378759185835338786189941903270331333530721752554941769693110983262363335754236971050504809857574418517705359555377298359332978751909433348853101689852267057669365262588684335053439625551275874857626668740914846421228683079155923578595448443808820734654984549603866176440748290406708936235006720489534210923377625566889293819675773608170941819698039654410217871806596622187418155550547604168186454732346171373587591661376012609018027984905067362672470225583303058030194851970074119893314688838175183451353644348090842867534426119048522857606059136220679452018910164046447524902636076387028514241316053210831019360399506639570183168022289115640878830014160137628270714032958352551176143331507428151538382579449839697567780520832728640189213419360648185317783916912881350845918130467444908511743364631492836205819696749648637679172345373392193711422921909352710111796871315458552716217658758180175054751785146352155830360511034291538770078898969765179660493347445121811333539002819836478844718281277748700413892182515816025936307521026801633079062166295792126747922696498165065239389816061240057541182245370950036556325114672828653617795686088124813641178944276062281265574901689481227523605160632897682861561801917255466612444204386404372723656705277305644372972339489333435947546675261526558142417500945028438291488104552861367812774949674690791078327507680986762782317662941188175303723028788647762567952553982329869616170701991072892926278571861137642951649422774624248818981097630540846672055181004270404994569897699631343690156936766034099323147228209393441699997136608465447385254846309213670893066873373048153187431882158914640420355927412205961781650506188978222966690075833633868931608303660213241294247852928354238366725468882467566893986879944683442960212776181472950291712194423106447228050046561667409978906746042937231865830452508570020259445476187349541491105800030610094378241286318791408304104086119957053030103261529792197591328318169621424573132515405586017935502520282381711289358883068208456948543755835542386430908934417468188406290687693961915872770566206570228975154979556226476942438767506458397200834061656750838207558889950075134912298414288763219492058681149873487343006895862360305744310602527914598455695460842929827822797354600646303338554470605485503551052918078074785812964191512016807763373424271379244899538218643018180280204133772512147549989098062147352364569467098266937780319144381012068835724643896851898673537376163154442577113159791147003950166383179494654541844271279680127566496072272398496362935805549897396713609792521402598430856433737470373311756738591664994522308112557608096694263050843705917508041799758062574732651313322523130117581923155253268720825082330037843486296303059407309242612335053976671738389794178290933865685608444725775989916828625444682127645101187737549978834050267093909959394752538784330515822460594374244169278479555652411217871720402253746210826677164887311942787158284771326545327183361167386520203512823663883962024079121345158538590708387913937159940945595958208359120897264519273709463714568902095276862847605134768009684773327957129067432682574613150924696196933420311381684363674930363106810254344148784266392576658144520815736247894163812510577386912927514975994212245421858371201948017200515813286030479547292359486632939100196151597489117110118121521471371228778553962277773691455505038823082279102237978732586166993708488210046432617466787121549761881670103488432687001123032702483223552519951998141826450383184252599961502457950638261961033323801996592479872674760446678482176361851518036170077354308679167312664678941879080883878763114507876737180092994782696322369262594786364860196464288355711126983909186474260479724047488908877855021838393688171507611805904953538659240332432087184749073187355067430141191775635325932660056929579013722554581603040775634312006030643613580577744921654450909081720623269614932794841780965314089785052868516371682681299971519527245483413736508233606421316004812119913135841886063428782403747562190982425709887230817964682204656091308228428441556596150209300084047345554026856164985042465175116226444826135846394589224588573089118799063660114025532416906633048257698345464693988613932042121421288013178542026606600066764305777463988954877524722276355293000185479381208472837563966762857907683248869565021532492018712192708590045197008626011184673050673164805811410286434414736327237666935509959728169491417920716042505774112239141251171520638515278259061485680789049000055639720212013381429483409789042894226360980992788254333999879236776367387063236967674918534859055813064599091311522257866784359274712800755010448247284612285541895485549817830956967415190420576013296966745574607876368948320334669605337080975262922935440897949012211551233341623762002731272277000274038296830604934509299322744961117891219896908444896712640310175905797039263052965665839645936632803577356942007299698200508815701659957174524619405439203971103880691409643646582105910241339376544023997497828917868086733126076364057246035367075181458597375538555521099399912881294613320654470482320112920462575206634884505167233529463294840933309597848201271211835170808996833653032171057544373123863377667748343507293227075571106711634626102081845143653675127671045533973367478181251115200616970379373481483643012104587502501549319425180468605411260029813115463248331853170980173875132513606497169296935476170687465198353783123645971436071732805421053409797180969983744781962425875938644883507154153521313443953515858884570098776188413747561997699651044809736121735850374439895976350361628297611370417794739673505835613084936015210233904214687445241303112388821580701576107820443943214050909274782789273189939270696177478925309199511093596453809506779081035578087263683726721579968196522327342898986193499997328422175909095171933489030312941053165235361776882757175369032602987985500658081115565362152072546122465258145745604136075738705220507972163814031548077312224561429472575556634473324115647693413116725007522079413047158558922261369709433171071016744487158649450289744513958362655933871618344013250025785924318666721075574718981104032615305574128021853037888790142252454361638398761914141659675764474680109576957011975342897070159379332748975512840583019280946787455477873177160776914232603882916275441557885847068895638892684657824132775259454874451983674502243248916042817818943800466895704087595412546107694683709073170658146678812306659965505931321270592152350178393010684120453395695426749407085787367944498316090184168211121269349425646840410177912513275486898390704224089496655044090483323669899584585533817365749084926921539957050694899050923597583025939061632819745094622338217251346539380223160315930324717665081707922164405589029400843460250524571113681903970616508014858876029577468478722148320045524024311276904757433751759004199644412354634348350236130229253176067165116206607701910144965648785267265566617135037591820543572978545029928504787670848622709714616286330944563676122746180947455556882491210574740567499680240360953570601795393489099350819993076457469668802923066339557372186861399774772128527154668502924309435200397830053456069334204315777131914181096335697545134670333935977295077830905681853221279453842579907574194779091913429761091229628935136795519241838075725628748603291178795167272844356840279091327247835501758337894674709503178988325395618550065010648186747667329044229580581821676389695182008559126439876827193683215466970149758343466470375784398871495970638813048110329428318087226353829137594366511303878632415934803994241396894884241706793384685168801480941659789450860932850795589009516004661934432275751194640657686935719781002868704262939052389689456929206274095397661417541071696200215078274773908281568081933640162666901325296187380548350121668600712637759689435610551875648356302870967877774157028840668194514528767495626717762365296640500043071939053972008505649529860407023261614025586279656340393842530109448192395899672465560207110153575539624077821013553085706363694018874637604887339893454247090827076204762425629584283425574750396512562539364622490909776398193529219809698883342467559928822426515218091742541289561655125841640596876467569440892066498301004746652829798445869051790043128300199283858455277212836337302365901605232537812209511527509825190089154212729353702957641880990849411308425354292005187304461012773830580290290693784357640050429424517290251439701772551198271119619772679699950988109744147919284519236528242263640170342747626457075618202003885095629915221699643359359063190222276331347879769928759161911778206715027735874454821058689249337306397375915378480405156797474993787166577411466018759899798880445906758480563679182327497665543053795406596664619854181440727138557614703946607779322442074420725573764170079314919927623327073476685456444595079514674726966378883609510839488143639554979762893630401876179205682458061265437837082365824374201897900823463686976587428445551447873759405742136019419353740610419933491553125480395644095634948004025140528539641488045127340023121926167430293503751394726659077550439024364795924055541422855807230968096421904716210216910428982725540768672223010129921425642783714744207262825034594051710490611083853313180676416115176726603335722742461217538735984989629636572267965458509035237067305879147488085284090582142003205243563223961219655922800462587677259730683729211145371560330438016334505524690606578835133397089550720345882289797859839658815719269847695998340133375304517739307471963153008911819394525820955238324802440500502451380650010521961625810505545259935451951163571722395642060299103121639577737791885481877210588139782056761788416613192656056336020555793694785352079639022483042343470590302255215559927089081113790523235625470844910936109069394910148951935663031368011428884731476419262033734336062774454267806535900193347721842861363324109369569630457071935471287810608697028713026139267108990544609788104041687549674724690590658929249769245912479891225681710805830585220260236914176229326619291402630080027386344661008491967334155077290690143953453179866250018146557653042115805245645735381022936913791726747870688216062576039029893280959166847839447378601419756801519572923583395836506082387434322989512468979907063130281334935982621144687799413427689651487280059517143398376953502089146009232861186580625427936367147715178639595357131483219632393263890225435125693319020240002185722219179994435278721314719860936373003047486147178925116195810130560402621790100299205099187363660662172339650361429874813770437856127612014239899065710582060233831125359263726926447318956011574854408288640564913272562337260558360514097573794812349393413090636461910745010169056346887289717901035903441231135466283190929059716592087137246918160594458203836763057564274480024357656189925915350589477162663577224528640326250908460729283181724792346135789532805828780631473395065837779286862909498734058922972764146897266092294179151100461771310742928002562362893432811418277467252032281310062520030652861657588588316002309517386858578426292194183694416217033044379782626066479165576490018142569904573718952417484229455956504919588485784742376187504740326882754295490924815985591691245340302177118763573619402893810801904603677116198706353286169017475486746503694203663652074511664581932375081809839408854758509375788055130555509759925102814329710495749771060332443813912510149775554746353021989201490704916609209331781751009502073394875962206605848096582111433913695426635742083191708042367819212735369360482648017026376749112469292633597432612784247734976472679282936281628489661888331072718298674226794888187299292740880344555347520908331298511509976889176451886432163808695963174209275313008875138060856659603528209386248646521519903718409725721160882014095783407876861182843045046756650560738806808616402063588818353960876031722913966837058347747744349964460050049921354460816844363777919763253951136999171921688943732349975488482454075679604857099707652188658199876023365518647972522890677887830025016532713747402551076431190332741870030402316784295157037113138312845365055976054132534488379449812139380368961505924599056915530767243965247565647627789695504050183063699777203769428985608447126738468264038752394878534703958848880849593965096983744124554286405443674051299945445270142813071442738024062701715429357279827142064089525443391265956041961354807561248821353626338571740019879507636869573767236992661166751849803485493369958088167256788860433604026014150190336707207196720007825508718861180395594144808001522821589693944781638871154494367506632326168971166639765320213741347478976237818639524945531580279140714835458473261989136186248482953646925436047224051040179967030580677684273729118014832410898498102455314890164715527743863254842389453422677879555300636107874722526412343195981978747077064794565925808649898216199551705719153535529709105315102447883449770599045016916810404360170351642563703638747695752315970046979323982587910197757285540888091676396095769650939712229866004564456134764351991021942408917029099134541951323017959098277838636250793009860442255271413738498288169531338589304338396366953583459782513446670684630581856461961322059585085593203746894840820717942877226799503651300180444861105844381518978121918777871038411249680182768091975995312651171441364184661075315923928383378700570415733757108462204929338531168065074317560631018414477337469935708051415022700858208051871391386281376468741582009098915302408717624576602150572201638707121240287956540186940785559683959325145464470624417920253054651446108886833320095513235468681968752163941759325640016873706930495201332432873741795521945953883284134290461546611984441427521767175453796617307885598683016145739830747542181384245787571215626566386180190505327234328506580204271682410964905070155597883540487623821479597286334002157574556316956522268284887308242418841635583764449264761529384906524943591103857004508970360383537256928535263933027690801656960025058447857745220003372660537078152271662340642623178740614278899619565779716290263696425817531708067116881469171176246966399998003005142940012415319883763611335984616094936879090231394622525730326942191335676085705607081395517187681237108943495831304576613319412287317269838396329419739482985248830814648904818646116712198323075557314402691955806128742374750546272159608868330580036462998770657576405072847150168352418710599391465776439270937534623269375388876258923123476497678013071583861698772331144961192297451864928697385126291059590267436700193201185197565770380019746554238246211499087126252104452272930236513958671541038960774503207946960832673973481038269630385563491808012606073507286666737550858332982109948804378998542300482010430390581693825346629968429304156695388933025626503170737691013281897414069777931038518762722533664621613527850337289786526959509226458485376015808917079489928553400732447192530384841683643972185925708447286142325702257453309023347626963436325927197960657803378069954792269663460779942168710547944904385484608345658407978689843043419919055211607026566045005874531640518133390062217730719769607672032340330303759662890981289858855799613650813990619128312941983439529724842097663369740203515926626692575399501134499405853055993833861764916634168606501209360660474805096337197952911521989768238266590163183154477325640720833807085857132642257211888309218064883999498624032370368693530639983244012355392383843563796764858097643460620546859849183006216607350244826633154232720909817337396581141852942716073768069262732892411576449453778093934880839538265535745719811125991472797362950308584168609866105160823994126746570162126301917486459749602358617422189505600621234119153616983375718469275474023465806252393033076435168596313662758661380280618981154723607062563615366801914433727336265668526848537337544937123748057152068345359413509306788727487216215264489826520967271183122866136846823012109823603297652092948148669449017588753633291570755528898922064246953223255826004572418920264352762301277008677462633021694355169140055266570690744829012370450075149936780552044282812289568326911077624367724932780340171012539794984046335326814498624166673303379919301785422856148652331583508745582206883385102560920518019264484411680890294276224399313725970129267265813091267591766714371617539150213469879496745651400540829252585327390871040793527516232563090656691309681471069169487439900107044434065114077226460282959958078415497040977450105667207516029761760792127657166013026439408487801269655515290370407039223915659071639853616640151921207566805786285219604126536216209465303492953106805592430408325079294092228047296156450040663714466018430866304931706125308271682821223837506109143373628218198537401112107312988532985377506933416332951805665661366273693942479397006151362093660206376687014752508504230082007092841737532686809981603109480870498016587801710114060186092861971619099809351589847007172729970972445154182980795091843167053373374366423222979072071702961806271643157593848100751555842684452137075358668117861371215747039954861783633059286808440024755339970216180323518613694870045120356019131131933129129343261250570457950611961685842030117236879721871533708021168057139348561555198364617232165934591740381719328806521204854898766985903077666723544880312134739335571978386883173514740334951798552622988835362566822776118807537159445446048555764113236065807215510944047300114805446872384937651535885122608367913154337063250088967276943381772421151589814510132297521543769853462171842949982509204418562078000910647525991079875658611021429490547655849964177204933749862788098577868390514978566263005983669025590694483345508342584143616768343228001808557578503259812320095359042274178682891581308630808893812738614180824860523648616288569867003818433209183396503205833171444517752156225725574618578322961903161849622205853519242368752218201886427770153017710193718264278005217200161551511258916046099058653382327116585700747275595388950457035613059764859819285784336046858425979230833275831616078914290670068195219980664835727500616971494659859555231629824306890373259474958241953335552850556582991360796375301286618000082222668697657201309948229414630500183264949030024291302216634396993268320415091145361589952838431139139403434408050586412080929398957622850859343829999056687294113291722158504092715993892245689623676530119427190230837007985539564685667850224802527558289765391606727469363456141135756981925412119133993713109398137821644923436873938543607746684598021955778101821178402054470057284845154715745629330482682871342683266262382336454762291381915726671973535316674086414393035538171650334295488741000648303878127978654776223235281791406656224124277367273617837412106188640019775985513815520286779156290706423083922399019391702061690100861148975739995459110014455758275009028538633653242757129143168145225611098924110274867290095509944057539402537120804539483872747258585216915856066941448859697791525978162369188751837585591864254732097176811858168492451081002026540869604468197736011328907096248743192908453245580559172902823218888187061585363106126948985052613214608406857294774246946832314285626944764771667955243610521532653569155786729947221775427322664106256045829065331841741459754266348455824404442377602980562367778031722775111314147654909436776690550502672464331680870822215408953830921543258580723815257197796926271654392600923665653387131083186171782125469793259092547771805660718317845551977833002477917864994203538375268485607859397580440117080533713224885414549318692141910708869193239398045517512327603251679059866709507623836784316447641905438053021565862128855053224887016114389689276168597261933935943250581639612696446739937706064711199262789659306606052481404245798038223536829764378601543650742472786586993164785051241121427393095186307271552281916700652447342657225700719502634901058278816514986230984966863946020866494604997229728340760418844713323935497641135522062933789800276906253139314242677428737794115749254351728108220223780485535794832597657542393230970897086789209077814979931957037986655075351045327880876136532374425453950864238179495908444355364773975203080524070531733096816801963540209391660158218486309880049524627246275004205845199478801462702640616333772634066783855242505276021882359479011334960819600467656666819159831915258345897377755961835345477951252954940573733546198919907131147042176286743791367169380392116555437676070077890335379100476623879246894186311706003968106933929960319359694888104218494313249588643107706090752963197411561911614965354249614306509895594122196668400282692591645769173236978388908680641996405536963089537613607906189257418554205124203806983786027565007735401865887422424379635534635754572438524142883329946713748380730296367330221756613796136332036193369020660434113253198388289782554637236213983807148683574580524313349961822731683892562719244608776499489321441116419962006211692692770068460435633598535547478662294439147489811055826753415549713959932527011301045736572380370707569066062451381861079323611503375313341863255927978137839732426468738282060151023274815643181416870508417710818966523956627004300097658537944461940573068328592828339906709229465847307661918675081002617622821342749342880184589136165400641725095684642364503030436073773275326254068141090798132344457778472684138457527924771312555107641418127747798369640393589691662947470651952582990826764999165473249230650937075032141473140624602266144455487575858666682555219989965082068003567111000237306503070940845915838465924968855868385774696716756943215736450989925930574615567342732145502109199162446559710165750568780783416895635442099680324833118600213474011036953509668383703333413341092947787049194805494560023059261152506546598549816723445160024761158089454056224086596720240466346982772535759510590391981173069323141963609630573183566400084908515262685359497782422655490099086399798416294078448791189605352418134146452789311005248587164846094127679093391892193392930715072132249483428681295093265369770732516315467484544880920173179325719108964574736376285373393297787192650623885842000505298525429664101797814509685555225270847582667780187975261624778097458345654902849097982968268981858086687030234413545551352204475782374431818529085783631680989067028618611010434018680063240755629159251271673941485294058396136519355150497637022732929498849456068715899555605638895317055298912969816767246963304695093426175323064349438365229726947463113904223423074978579072344901467039779453416642407269236795373997142757895450949247749862396448221000652063386128618280986914293838633755291013544348816626455989273536328500970853282209604262144920242386203629570744187886019723128233559684082967283541054820715519457301095140493811543109257096501339718430105097444014612146762053935702852292860537003393217738632610141958260407776819958646815581054167060279464268220076282881263640414668204700553436137628898777942794196106298086810528755591984666431494597707344780328937556465175521982056228146063783132997441563242406890882298999030363712194007173295242872789784399245634939454548893247446792194440796496267264573461032907241293511919343191607615995991276792300749216197045308449938979468910968326041023163799918510553414302173028178604406120820065409605617340752811801853984941070505887098767243585593724231179253567779199902922149104669942249834421792493216628902438680117446055052214488752079852832682580865289467340939797731159440065775308108648222526315140851600448613593199539269325551198773854333334914144054575051939443405239940679234753218130185264536308592913763886919200391799863985382843768362174624123386383806410409590001162748240922985453669556726370389880079359632583456457830208471958053353214847429140496997324760587390509946336126222556442564213763132608491926825401641539152017471603333934507960072354663603746947306577606191876331039247916850182607228757187962721466163210808719300437454466308713587823519739448276997972862164898967683249187550048396543907756666562099275869365494387881162755296282284843199694999573565502202629440845076760302868251251554102987911860370072130664070839615120896086155094593535865377088518604458008342024956880517768440806235205300463036587954529273766527158448140878285455040069822940569338556673356655377861558556137899023725236213737829154103349337559506304000335468361376895171870398212118756515410392071460233283338559638884743206886393612917547151296027109354235035428378185220253098665215688548452236732430956866006393587149383409264063858299917040016996543053317291676530105787171361648941617616164137882625682365274927874349460892555313019488270248538697526850868166867031641022222633796526661895562505808928344520015126786491983908526892349494236872965354962471628146311724409290054315229014981025150253531026545002933380901052362025822007194668709184652302971718339286684476231539958564665560727062188499234552224091640540791858545607305372049999344475668230412804520534210844439124026975379078996352550611845289956149387768814958625723599648158171171409902214263151932279827897179125516895980984913261981180988936971043742060823248545831264184667962012727400887470087930699236315475193677368606468703224256246444973608623663248964940269465993221793557863607694459613691610533948043867538064549886896485904526037885474995779896228737376713631451143033390567347287224850058078697005868476782366540637439391712419123150703117997471588992976480025343244828856318457702134814151703996252109681555262986067787380052813130663195247989937537187685881109885706252994697142442398656164932667357721602495913430887314112502240673490882068365683929709094801161550917934560621689466721168802709588352132064251829368227047258084901013220722258822003621827894843793599651268004774317931314597471927575793851632179144579626893505067280678155515157345307858747376647152997184863698352940998113033464442230720242805019186815361341826148668843662291000511092595854843468628419552943814459291853914225060158255468613805135781008151358022005204420414326329826961222504559099762784771905884001992725629432440292547847997623274715328099176897744323908755923909236680372264037891058252942625019778156955065698977877246884491519963167803659261676810645422079897140184304861009114090699644287764363739217648359174318326997397453505754837277340351119484357996852445190301572421760277703065758668075961763238647273575671372996404302565595344978711337158137033680194430401379973162304834922192396393332570795990950954486971845077890323441028159756682306231756280375954134472810621471196524578798656591791979324511391556414347498891642752261600190710116087870141596938743056699819708640483098254771657035072541454846616337753558662242388247661040266766881218532532088904014582760560527479447136044348077689607224572591836842709850217452044729190170345260162213448674632882723405069698367157004766390199942581243820840259000457421544638142609065840899353141379397919779418205070941738438928552988914005083819291445929241827599259137834709469523184551086091376864954018386459492533659553028137362431903241934861208987152381795777382427092128029089603672758388172125780853701101504526871777147465094482219502554452088099016436058231711052984008662821728458580558368712806800362345408256609640371834693292739179522427741341337556262136344330913508897672930731452456345680959581780681056216808084916454896228846937391637435067844114492836288423831805425469161639476453991869015676335204743267285119376457307633369464421316872274840722477973226012588600490996901489302231660372987122859717591872358420048192436507278033721440559187084384689300011665588686420869635405847616923261429832936520688468751067438482245739417367449025795635834167522678524201644321838287872359243374462564754580549451079937344241093534507914102381480489401163318756130722831679082199251770141395640970563369040970029627460183065903837285630350105360911118863837840045333289913430544139308301267478810557185054345410700563386000017989942107305890920699279511949227933187219960883137816593240441093382298700749713498038326092647431900139450460648725108528844581069770293177110705701181338046057908746277767966425745439107729343914373494907136741233977952041769331681822871041273627932387465689559282590140153818982283683705966882771505414684376130937690260879800562798529716276821711581745067747500217450276609795540892344721993644039120414744407141580711899259756899793137501574308902313565044384964641607869075406639317873084387441589934712827896213694064425542187827481830348659293462153452996766599921065220939137376209291007681380634257895566208071931300543463047845361590740514007540801476963302737997167136006667588084160961198661604930952783758721401158902249957338686644189580921421850815526905965979503458293121355003475721910837746279190377179118446755624326495962242994383152733199179820689448033107046220854915253854856027621954056412012546721106268429424430734189426816338724772409305881178339352530924689035537449658795225145297487476666210307752902917754711822878296877092836327189285552509697574691403416040095623441425289701643449603454785050073393871240572610704568317554071199580011335879881424846552735148626061454614301284614410565757546579608017597050441938406693041062419923655935036163512340990306419122079123874783827894321961470618160141520055817306451235442791877358042576042845221891401433336789061144319223384548671603622064302441734325797066472290627954508600870969978848474566019954570581714176636020918839483410402042610842477694141187729285278826329514643256271807814939265554127566144176788290678639696415558414198367884160625324221477124655724171850999135283323702879245553172591004518367365939030524841011808263126321387395369966554401829034354686916314659889975748140543582313972223466606590025206544389048367051731299307806966782094615733819090091991259079952609252792444547836154291362771051605715690591521653405160508663039842005148853263939484239187078944049691861684860838066578892182653905776932074104609812817468452096326952414087345223603996248577925169240411676130955601317838216119953187228240221517257682424012374586738659851613054393524186377501407110396998559053992793838287195295503840331211692344701630802288735426762963635768386324333237470360947326609265476875194240328399000860554845424588425730264611702039786480099417871782596485882903503183313385346212827138202939339663473912395570996197280386929247344534165755050869624700088519980079522113563590461472024923101226620741642130465546334103250082575917705256079211214911635987283050388576982625609509743111824414938450711994254733501233005342888633862822203251334771854231687138964766544744642657640315198221171786034341161949106102526087402450506247555839517468777880568768082930054993012395705910131928418857467575275334349998089773584202819601955553151762203364780314372132204246471314686106676958364584385439428369710181719855332805262323965874155648997862221636205251164951701326250105243063549948892350549961853021605445182265229113812489608717318321077125750825089605827253636594750139484214572495028065480701274267092086473130992692875439307163287734858106056503422077084038327194768481415860083115849601033191585603596997197373622492078506831850756599907482815032428849855984607049798553136475217156252582559016928541767501505179097679927437074699665278734407910621502861590544981378342151089608068989707430932203255613054524414453652487018770239437526757841568750210072942473844971202499751098054777176007582957768204013796680498679457340238998427336204678324288065402004288807905840907745795065914928237488557540350496440538441493695286764401048916681632987509580002176933149346089595106188094899500706272443202594457193289535315264890373763682354687914714811248946329244436225145845235087024698579340137259853250600711326806242518474156803352681038951269434520128815461567993626991824872148219594510800204262302031875173067267111261792495788785028266833283480392251596945569156535987410375964552900055602589262747963754424442061661687445734019954815751983792118060652769912178184721878779594510884099679736228948915295091956538831431058240604547210196575141051531577946467845130685978841705498967699274773568757212496222318541328309666251346784229732507882979189763647772958317710102577050179796690605243304192715452149598112071848002517812549684528985895382007373337079205316025680399903164854278825008174200901075691857301684745451897328841452005303802743037106072010120347274089131894087694844604973506187896796181966963192692578828639781404889483259438575138484536793868379423735575957844119493743506320162615806965871097146248812077910263935389948903233779624108384782557601805486187719770641346507806056217560167128912908064710981195553680984034476479080763321639361040535205861147776111178418648309317736957508958868841670059245199299228584565947448885020212016202674807960638044037504987871414186034141233959483414364660795696518452636223604524512355348045644258849246529804050717648836861249246112108107547332683056057182559435936018763423471290998965654148980838809097713052069782386583671802496245014147534016101902670870599841630518668522680791848755100174568951099829488640279839185938400629440958677858258825172936575354133720522422844824078971208326808491745604096069824666529606284412674999688996002621295522719395520368361883397669317649993311278739969919470137317359916883132793635799853987256493516610255283660715416303872132270086351632571216801661261914090311466701242314239153408882911641151223222714074304720580621534569528678194528967566579334468318248003923895404747830687830194817113910728602032682750484542588013179707235205537403685075977695636357641228036313188567395019071822424401526399812108693888354191995096290368842150496169083324569148294692484014556998683177366468636166570137843975768083513856343953002125821237828705365455955754005217392167983616952363559222849203262319317818787140568586889538805323888256042602450721682205347324670044160793907111033332852425912555994526071933407413134939797627033277448895787186653436103608717952617332778970568831813246224331643270237845866333111286626959803689961041955267540371534091307585591759471583576463709996743066760756868885851496555605464377018134084941294311104717673707750404589443739915011931058287333513379653977967963128076463177244006634615790859624632866372162495266737227067844938645214210947584335610579203056987664593984180123011853466502978878600925575304414328103680196172441867478560638083415682877667317564827185142135303471419079514574247570318293059208292040099375195036732906177134697302471070499205661660261478042102104457732956295251843433842524352237399081803086400120861204092937681774984889246829952061740918314681599339032417501246923120787622934288830813726261652009081053119219391849640495729213369008584598844131639796099260495001928354916498147829594067956456989605735396004987061311823790912085619927788014440734672900868631304138004209519629346490694761266104145393074133147943665960927031668490585677252633393606349812741777631697656186403115463372886939144134419583399556626473295107945295837733759760845220845003953159129883408075595116765413869002074778273416813275975078374639185467104923683156645746684393135785194384040854774188804125886372798146358667014995897003474128939363846637096789506943628815083889847118192640816290888477603424736409608769297073392089400833376466454115196217955966189182849822618864108152803203675498934629439713484462851627368150167251400673640546551214821447162091446282037892260320906424169953904272809779508229645787186432780631650090689105081978331829744366901546511329700837785319344204164162957958435586724713725797168192572975235221007841173363934873967509306953160243468662294639112209802434987204027141099166765512677452116091286676420794651252888995785463547533366363453576789447942234319280108360876608986842854708048502252082924662276160220367629653756779405765218048182230798275565672643754038651706941638860819615764498885928134076942612825262571807414636676250377736893593731172688696538664369350624701835621293888358287890045458544330013539404484291056503833928571284281059245508668255619746595554959618231583201211493291037194385484661007458468103228668441987828278818497606424474016038896996902759317217627245708665421743655835006260941159335592391015625695401336050870648591868025705663037340841893288907228695470479417274204071265259194417748289264387547815976410402057945289888214228489926683713801421370974426278955238436327312730178937881938748532190067742826869373206482224688174668920672182115239058013847258502735697008560526269577481283404559575210644491945492452994951339839372662862389108722501124651246935603720093431251867118044168782212557417899035682463564935478965677960951279850351974624756838349155320561530174716681875317235542352868125929557696496812216805805857226255351850523423951625133687566948523965029948321636455821173399045389369273932108703748605885361705284629897050792772515057863988846031206175630407601333759308925105138526497436464951893510613930789230413698123504548755724152921769252944598888718600507622125841639094680655550512129701664744065000282424063727346016584499521321834654978883286954741839961452289456801144598129149375320593966470968804788477999887415222991396536130142303475142951941801470479638935490793733663900292682240743653246581042658943770064691775949001029792250200781450869117405373432522242309834122020156320605614952207157505132548051044126160582665387399248977978121242082132899666691048879996871442320907144444509081321301310293786230333114770041779449247484409190298384450197372112767580945562699118480106209139676939179176666574643079533395243342104430926961423685912679818310531108888350152860600847092596368684949851498639389712872182472949167537239792307453560172654232108405478611096160003236630170141798784570571094109206536294280396225829182485163022452827892736060022111038115108652653072381087341566428629373660253370874488890436913319129279215740984087745792523857608558016411088176443981040246061752927853126572508566061687672438483395501210791494485012287225755202697187962574860286029099579434320242927941714873873686046748068243106526859944988167651178556689001441990554363987549849590529227240617179155502878036639683084382922393164470774264028462467874290059870598811302507300201428389236962077832529460938526993115379020392152111450081733200265195263874088968458350728896478059421335437855399808219571835796907689551898195634002784480578514230255841922374224821903162303709781101193601182680249245959196708587612917200622964160494574902169368880060118698135585517457221310385282509884102297177579066577892170566919032948575773448319967874645199077754209017050403651624242243264991904420010408074836524786288689240111784746213529335740910074373115755584119770643122804160965393960630039907897014929646201145879674053307576773882112386009264655584977635677532909336603793936658488762806594503995549115165854653735474992463765920710889792897568765568317261691908167549724538873870704927342056851049796304170282168827915626839266844275622512091340627881915431957513846711084809015510912300484455409522936899129501208854387100347702599701833349793211892215110292296150044855399532810163120681256834024064528531872180453327065545687346524650229749043996932283032584674315561478577761134748941134493731938831765783336205109212755489447569559831527960992863834980690415926478668883987559289110546980125987524745862781791883011651945036825517271582540933825242261209071314337597634770704341841140640399496135575414952650612440321431388498418261191770831861122497226891238609624011966580302294439220565501972349906567817989387034611228803775113926215080680037721002004546742656448801801480199664735264929765157900148768367666793463855417262619265181548794508998429681472662282692207758082771903158068980246250281931745759518289700504763228581602628894527926588397795033277934402388615804029615870545565604670520444564070977909488823416980087425244236348629971680732388881068246478631030151067000168134105216097197236503462093520831356590791160945893663248127887826441364721007261620930129881646846228499365158842578684761093191398881937147605941435725176530176576315279351930264123388556907249448306278646087306792016682964288241332699511896125059031633152133602421892734851573331586425276319312248827762674369791189846317557634560740466144446740587499286335663734775460258951400220416741208418329181451688812509091828478709097701290879259904568641377632484862203030562637899250526033352853918556895029924659637770490166142907002120819009950114707982816942484505682229221324991370913810736510883880845254113585153744263698213228681945969244889868894335697816956947818346060225555424254031325803448651985090453518158973167454332851732754463859917210490597928709669820652440303771271308796110511515594594850344588915354545410827215070870093408024538977904246184356328234156730763486903568444721429547326338752692276640931187863706239948860928255167491946374565508124574607468854457337152950009121072257984516861320483012046697747317633013065956115577827837955159968676746656771077764319324615729108066646294293096821929047978990670027672798258870761941835452999749463383530662499560340312837127188541193754617640708883698787027922763565774949132719382807854207349406724678672073249538737073565255714346103052367953445076435578426489379631535156823596635218401261258354838717757132170379715691175360627069662637231143588959751330675701707485569652082588664640578204340195170796585273766438849279948441596326199867713818469005041592313021917059151606076911617304098275733093476479310685198331920364210905500791304517777930436386153890237870416573792218543949821438816589380721037217652992181507057690393459180886396076679579945235293270267201602913295086592778015596401006678067673887667038405548558556442416176980177295416126835942400026272317020538720845770553361124227940452845898252584235068333888220511740836480671576320582737162883654419217117705561813331275135254261512944055569229234442851219534621160377543666135712020983191251010059723765291094670659711786754012879955240528986631173466568484834977158111353497711691302529713647018571841806379528431792163798991497568684271856712928525541237875238510810871080776869513192760652805273211278164915328627100537293294091362657623711274125337979367664981656512745823712671947737844328037948314499395703939271401473768959957071367160122411089415888568467104122002835665568905842294350332199569841922285592781047171735552619919988902344035249215763303316947619434422469611557596339015110498572876027710271647864023252012828383989477904997109382569509819856711528441935709083543956317258035178476264263372176112685230793633839106492807467577893796212234792363914870766209571559825256621880366565127485717748586287119798777760785829906446031627500914859684778704719722023952799948118558940905742309989171849548473121007810547659367039262951300670940288778545015166897919577330729598985360264023175083206970058825943236431514456525273290707507361095081465885873126174178614076744584309726700313645894258984121063575653886723220429505086861966663649912890945140906577263513712140473180599992039780911157222388815033480419028460886995559848232226261559999073608798510047637248248486798138348014040401572698278516840224990236358514056084018566794831849400358025648335887064235912281241173824971253168466000700790962864182142608307915301011426275809989599424598045996569482463701662266824810710771771509327281131786051465757045155495281167203464390875551396714036875898377661528761132141746376579603224893803906617042740588908510722995014472188132425253321053556083093441677771431945971469564124739031265180934487810469874640725687438113798014576304357752485147912460365159345469842780030897283696672801481331391525648230485930642832338829140561114831294393803774540467171313134910299828919002092196775149899167485440847022167071597280655450877853436873481641166359023425382605737097658005505662044374182391465210412521509875776929563297624192803861305490194321011329752453183845933305100664434944875253368056974598277364744781885561905429525451518295103897782329422497107423001721185614477236081161645699891933472271179931401153765775724592967100397530085324251301477137050085400510467568535819327700121274948721764951211952387886620335857011837188744551959847119619123082647494917262176670053749118943189499001403517160809726947371597082244873704669498568509110746817830592215525184529826300233928665828785661477301746689260284275162506208337645705157706036294120661558054247655562078317619098472894982965152205190380450780562539994936745627937195039485757084666937374781197213097445318457940453481239928000310999291504902076373367939727052214195771760220782493933730158359130113794663475893418282007054463741044546661653496063306791416806640211574034338707590838870932204333425844136942045789678585834131477997608248738998371328193252574660686035616336399260786322398271790794638102003325749166441347464014278446402482775002447017086631617585524024861378930801519624363982657548346394099095970516808230521428697115753099819374289786229029220970003242033028330232333052805133139204747851272715252637990417189790158763814590024927936401424850393866625389022259895808398296643311394185753089323471755273546369329443626937442654846455710500691381900749327855651745109760122677347040749865623014064795627944014611096767806514922547325886105532298563955158976208352609492060808332326400093038627433926246554928030269770524608478539184171357683523472724441332554673442699251151424410865127023793309086876304342943789279510064010318823238582784181249970865401946025075445467913491350068074199548850971335178179087551645071963777586395543450689781746691001929136635019530270561773087363233965840011248884292363550211682030815779773884717599207891105481184339359958614498759850540515763113930909450301878992324933266794068855633936328686154799323446292763682940490249800150646189491519248170839648901214686559109467784217470570780030122658367913187298773565482376125165904441737679902240531068528393152693878022065556612764589719380341867001747929371082674291093662946768128525694151771718821616657739181397366926624687202091497604737992451968659396902796116872850744112354169784099940123114428208065256053560304485508056233577439747188092284934284962229123134137471093078040483040670323930076558425860313961602971508558297914066488503893243131438913658523894373551546596380151401797232242660260355768258174367575185084869055589684191459994894462804193261320120248114972951529144151866664278848755100610719207020097530819036581136939703793345407527129228518251672951345039354269620059298862891439445665725196385411247881113277282695883932947586908073447059622440839505202314732626006538279695268250383300731197827434574774676695352002424394631911096013576413725052730647376666865468976709949601829171247224972865423493119863894995497985816921943570474786460806322371530039682593506155990070292515055359842660828426352496373668125443128796488676305956544703720119110663964484974431537386946682495420994560155446064039615411266014804295553704450006491084348115392583454365771829455104067384568651283038563610143702681559609407665903549750456088608835928420755270180576504798279298940991915662978258151755333680736419506534682656566678445657383438685681886878980767471931648137114454054933022373608268373997036780450910230405587938314196363895199241130156265636823456116876789859169900438316606700552934357151354280876148111638203741371553065154918223052922954966898824288070298726317705490705204569996174204603608001182077731452714670035716085179914787861171835620159702250896542219324310020292400522435636784181388231153941529015691190957447488828270826991308522234558243744997979294095411145329857301521776640222275601712180150898659193767238423753170591904294108738997590629690846590532785539483606646303987531504487490907262996593295471592040440103812409254977181341477672877387622315389932332208454709114288972553188621671607475709189106911942650292748135343103673358197184905889298242097223439501924513915279670572737210501582724903920540736309566022389428033858851085081607544667373541660362615068697326268148042571993131095008236491977544309948389837169021161188486919244747058555953205375327782188800675188772746876509882802215811596863240776904271018957003433514339701758532309785573008556517756468252890100731313585782647369242830132374012481159362160820402763054405121716931773146479157930026739188252857344902459793320876950829356758503895844472273814778570636067484225012362398494559977508480337331834630597056556265543359748782247014374733681968599193986555227345691936306905212039079862008417939594886080801347466806622146248989934972875504586938456167277740631702298786651432482637389350574576177879304208260781084358161586464653347058752302118886437968431775874939544906804171606914938480357848178376143873578390321439093448464176234129834860270037351189698869434601211718057424869076847748082538566687022975022738566250838133812160508428019774999735347744676071997988411011510439582575315125756798033934535372120414221860945355788005218765691891658159906405534954208377622516092662275541925118430282087967969645269164591202120088465893871179416447044532059944166356859367237092052963749694744153034994935002023462440083884677155654371964271688046759763078123539712964227120819538952014430618411050307500782143646372636285717357261850355241584999476646906832565735319012410253596105567290697051858869378017994167128505056005491781500022312422948308782641908495853585514613714581082052243424208037424691497991452145692361072651853402496855910679090298106132815802497035205292348429723939344229516888641915783178541116684085882453272202311670021836224399056037999558186939103565937973845400000731033795331980684175239212462769702255459212686121164216824755326107375149480220502115251301897516104769107846162485749854653518199390481212799288521827872573788993889494067964191564262875253371849224246446439584151976679753892575583169767458845402422970344515353518572497931413325230627474874892618706412732813866004267525137718783355308841018270957135230712600713724736560730122917814889021223874773986839277922821075387779918736572345731251510498519341199964734585420170911007093664869627454852642290732628691993641309650497733101017116272388985916028000537293927370539574176309188831650810275715078233785966495391481576622026961298135020122806841525086301213906594849502654034130159192162076324882771651299158303632201670325270407830063919016022648006986817982675634719091913613169594613109956650694131505135327458433890508716407806756682492611982353224031244989391475235561285816265256111322028591949726688885270204450546245228319687698275846883193876712215670580855251266222639808137282024928938985051961168423748247782454503866007227246378255115730570625316487381069418323668827528061135335199549704771282761272720203037608233406127494467380106142533400319138011860587022826285834675674072057025642990930074579194103992480773633353137529001057667023981781372931398213106060249816908324193988057635010156157089953306837107873765662121773436347619110439999631305689182475643261004108612554308074484406242515335161598605874695205386956792757541899364168728093591721218158521432190643846835618451511599612412125687843141315872265930717407628505174251745953755654217048868983259435057416024493837709845513221454361142425117692078730280500177000787276902525815352007460127499233321437063808524081985997943827403773621650559654643484877024369577914715242891233234952422986920157488275326726486645164044394815074246751200193279019877960458860439362122584330527048033447522172541556820500222845121253597619660070099841966818975273628137728420331583161842263444061228689250908342317238530390153310567852742277379018803404380126753783245737277553606069617607070711053555716307610126830885888104330734820517677610125411241508018300652570987529445237635763027555806901382367842658264076307348639198540468542572578869505837589050486918651848130148898629232185167691184251303580988382889087684229872902558473762904212342202239421134169276346360596382817912281537072492660537162161337792778753501728027929376893187209470365114994487963135112343537526084888195975905521752307843410894588183262666647597975213710580895115188146665710895741633840372918751718513243667738578609508212342750255362900233656205879695003701882033785567224636498382830676982643262304946896262194796128958101957878081342175292535929867160524163172638470727373246656643135006073903887155667267752533390044794678619576952171692273489535974650227019590536141448450399867723270343136330183779688760922860238895454291684164829145883306553763581192042124168205354056989415485736997376444265326791657365928542612143582656187521658298878552924084004703729042440594688989151124343402690982900596265514759617882307322514478284170720389711599366216433376381914054170265671626195604142215259967137731781673404167587342248404368806905807814577524090354435497730509244533563111752502057805355915398401336330814238946568387132410751753083361495184497426197979527524656162612709109153018284453040853109883716993258782112876079929882451896565424642405261770365256676012865302709063719395282739689577572911014514646136596188559624157261192652512328440728424035461594731233811009837549812368568874314726349762638717472235834026629644148904630601253382798387062438846154546797812283219748943954875684736964868436138148963790605103662305541917269939045550484652298495330808521239492837884602017069259328606580940082033234611770723954413648952434560392043606714111082634157841973978826940513304517455332530675621999365191866942553727188518265157541719457058693322590365349551385114815560186718923540331301443785821868939316785469046406854983693385793718104287513011691375368377167241194271587229473821107487731675227086350617413797603202205208792079124123487828792225173409230650884802413637538508119255950402907050264768259994878111980963519590536969699593332677302208228053710573774524813168864177555435940373273529018200684240162381971298703746678173337884520905529254012071972971324020535052778300950430915843748586484691134258983998794489738423301864600335059176504347600076039837722943460212572713899662819768438214137134623411630332273002064111133731551898162382170157046830193399857486827060606629079600287177093795607221860962551698381829950877850474012482230402300043368839258839902698750264882478346778856387147379664983011587485417882942107579740001763660786050974365161628804366691000789533590108833909962748473240498824157545455620674330040695206226564298426172131980756337150369095560514268792569009763687723369558805326673142799346610606877288863316651305692691472963113406275644798039189798958005681043515092694547554526324127250098150865641964650987873683804872890592654736956114413858658658338916906053910628573807059281894584287902672044362291549322710918786431418844467771487674824540546651330906142255769447037429748183013753753751076760306615759455945336673605958904031417883171112992723009587634505069370696406289368124261326019836400568858075926924652022101884351794437294217576990963411429198116977448685022461629034246132547833631677530278573334713853410749309758130321307021580998927746940100715044384456913036747139950189737257479294435832488829074252006828421711820412862035987684636664452905178844562041831515163439085151992013357103099509987407352400023370609449698086218983853466518301771666233557181579275079767772285503513622188796256217246970070878005572759114831415457826354212846944129591457906665024083581919246042850072899269934415967499445938998803004912071007846106818515766785342705129374510629511693432506630183275754983120818135571749091961008588958495091113392383100292483386291069102845451437144642852428391516558004542750605336787433863735418381407155266136283338083467834226797087246191159063713841837440693156392605275754970093387570003020400886735314310488392816883336693968461250641663649393499736009699246450799494337076345022371328294330506885467790622249281626322643075987501523099390740833025068342085973856690508707640765825332332760005869440438227925237173396669611786283039313133554462134955131486371015961894733259015530036817593432834305809998975443888739859746606129876178193095388798634607722744194065441048243608271457344065150330894567399747655735938656392156434510654526651058070177800627149753190282460518912005082185950566795669945159483538658925816847325018255102164542974429705127248724679104996602040951982141047852137457539058961949312358241672619537374899462286160652942275264069925671500216778596913172664824019746141126899473951591547535320473115426213332561462671967933503538450494616911680704701097494433046891304652469253636836255028989842117446475316409417418458249928086909036856014190800777943344999965427276430639816663538709004070160466679921737391983063588908142538997494106397758510923806542519283470500650444725307808830535522844994243367677522614142421866472309202074065620983772785222297729912993170121015780487407391360835857403013361790994630385089202704389119280243298157485682258430377443286607865154599775948414132783595095164842726341328887062690393002059807882801950855765080249317366111173786603051525503017459668197520115528104440779835644385789940598065791954116240850805571461439739768078971795257873846819395561791640865864051081435015577648017623728192821891885054426963501820161248534841106866308709440933502018412001949724635484566724211337869678297248716204755597375994684696348183238255924273618347166655354096195919094952598853567550656752567075895417066451822113185630175146302224681863889994852056936176243424865190185997186904586445565912863279905470874463122040511214570293364693254133283490973180283714772295093486377468908141246049692864453167647280747886434543409397702892963797380928577454707297159587084047969639637838281472850645695470545045173418285160232710157476915136225441115115741683356610756533915769213082996294736800127255825015335411070562628873972013143191098443671604961447313793166361901701060900792520698719763266770656080740255621813851709972404299461346396846226438340171783764258176388601312560043291902798821878272057886029304218143838987813698890480057950096959588453789053495160926120200933587008674911045904250512167220220856554396840672698998023331292053718531196974382303936451091380980724762710791114810753571370292378995207961732201091298413012252445402984349524550158763911919324706960484978683533218758134045309200406511307636154913297215452933248848639387176138471253046500879457720251253724296276681872994673900476360404556819962385893362578055901284917660653698314027453110466174573625530717988564040426540906117441689727704491838736724247940776662683574390446133729230801191938720661209205916997073736778243280240441974387027225259657790680034792857684482732490123501677673952747130711436968771504977362207652630196786311357492929123182711794489385991060391543622849710295436203829189727469794847711306870964777094636175722025736630253873427658804800745218141979925714705432856948278856983876218899618346275780617224026190412230267548551301067310937157397255080218155007947535510489700685343945676567544660591910045509532112061850488730343242891902245887105270399933031819733848751000490015421136127189733567608345531205299679300986999400996187796084516934702371593974331791281039842568647659235534982414634552037503972895446196704059297628588432627349366592044269143016718253771255843086681462168527288342421008697670137970848254113948357829976446081630167963677558567004912155503607695381425818863831207367063446091587598005468646432872606682838605651106802615591606597035322722806924493381560057027019170923543414205532355293268866011978616517087635219203129626182700621768160930044012634639015682418386989867943413155941773456591135865135084061559785503586064189543427389293338229851454640638433028823453073487776169533489029954771927770928608187186198177702050871898691465184457384083583646913469484318154928776121401006107010430141678841066941768817265286093307121235520435131124285896624946512402117795891457629182798361984836710930544532900633218229568248869427373074684218236494054620293045440860115227177723693364134403878801103275313316171813058943652433984009249768422749927262118960397927486527204790608030675991357633380257517470895501296409304910714249265008474868249979263151803247336590296312854567973874466037147330621693956816668717809031597472063992633678142643541355198758889748271677385578131594452607167573151655609843958318850658689092723360805773619035810397078318227421488104609758253601752560350096375939302505037117720675301628486955400781110108808186558159763302846082335891021428222993894166854763113881272792836954805458645938176322699404213140143415549202117830395843470121911398601812485893264250703722926339196061654790718436396459540005957937017007994241740508997805560179238331800211339540815447066922552769152033478851184014017837064386494007056293525788562009737343107008369130689334142348916608416395502796339840530502218829900472415950677890426740081706466105738258611025466825322766560157782636050044116150996288474415991946313425416374392048893345156044415790269163453698995689896026035423668291552052461976569681230435192085731366609274870960192758560084097035203235279043255185517844985549196663766675076049796092292232605430558702836173856034785344106157283497241325187019007928835917916171361868497307210552685112813864344159503231861797401827892921350761463979237416897879273386242533595864042298275952554692781566460922074670612720956227162555428741651291170879312966125597924711473182025429124379345653988774392688598842541571520219159859106438571329528843514397393829600191992954291113775200841423641720827534186650095218843402848254930648615360996908761110704694793301367503780749981960251718020989531023838487773101090890599853010653692161331846923131951342822914287513779103052736519404329454755303942236626376843776647227158153442767058586242900489584333679753288280654412856559719940681794098761215740571862471254320647878115642181542431001933493779557845894786334465651199950106174833847911487177499130209551596581399052181153409269786233404416533056459594547344295018504177690092507199647551286320496109054988928180918080756919692042652796233025731743996620333743972039902912877850060859975371248452632162257926013265378239957705308935461723182656209928183331420645012206457603022535145766300493871358119688947579173764200295322587050707833704615906272781619230389848911375266247007697965215741047742577538449334896598403205595687199043194946794655396429746433294691422812264579666698550697226778437739159230316253362160392489545700651542575622888747649760474715757413416449945677861000536622670556173572131979807598176184389738486162679029928091587483350773655178626285379293063547005994303395546682717710048790378632269532465475979889561460582322370494712302878546968012563584199895805287414397381294910247021743114468201191517998505258435534800171831637047303583009270492180559508496831384457139100614030890968926726764673793383474028802189378636346727539432091086832248376509035692354735685112591129274987741797763397842289822405308422756537298974709799231544415492010689809308244055917061475387321545802819920772678705071532026445398304280101372967868693626238101810140851066826461464279157725167723232402956424659869513847021453844808581981678237141375967824325701462975483896037053081597826621843546456658132611724696360867640356901096952968155417774559460213988569381424354351302694615733824292968383238458158181870657668969836340921102732992646667858730538159771806323828171907168406543695828828506975062481851481418815165835683222891400392258087397244835070629757574792403017722190020048716730070508964927477868446187634090667319764809463030097100066125435506165128856448818886901566113244226626657657823875010642365435726762274252511786178289951833002332160043338819626172394252905827696890439755077056903930340516039443204311605783776111225349647682920871032837026001967143604070182797790359650048789096862351819449179466872372063910097984483528169501703930309050441135428894738725521133417326977787941229529973257800185504235350100281337029446002869982603604089866249113860050450523636222569325950533534435849881995895484389086734189693548533381236455807743220567931658608757041609708656494833427831291783226938891249658890707036879076112972374487549705592264344109065256114120205206496351067716774734676392591183019095547506980629296682936249784913400622444236559456962511491717151994988873626422270408794793445179679261980322193082252309899328899366259401807199987250315150524818860807945034365276026518850413348807193222074841665552318244354333340114003038842173694979264050001010681484677765630633499393515475898757762847770750876875512674699351337538711687099368042681836680128760991800026841249798244166365958199098917437077749111322094773666152156543763538269729958756505909267049410047363433517981921494892968724872523972061718551676777250943314138149005439472587541877076074921158479476198509203025986925323711524153743679459495927620603718330735454839859869057881813133467432316279118658717526057831546326344220503966948206291976868194884241213754609445342182340877652948349278459766988483008586453902476868276326116872214381088498269712264238069433478608965293101892358782482037365124660998953914112699568693060469293877947964724047103378776740733762214904920249940263639508370238897591814777667243298825359130123961364161303667164738395225455987442259634153453552552615476191242550288104589804486127856569626331627590193641814283623261439287849529665744834111739064832715179159645778752994687463320694922708930886626380807839621760981366028302482408216094272572447364552118247555525143163174897307811653751956138476778956944291822593277446024408407000961927676339709607292756116311771569423169265259395542061291779605399467710988535556568877234127247784657162147639455312516067614784059822857216594540679269535779757733180148327762836039161929548140623141938357064418760042978576920711215507808231159909906086684849971427441281263555512137378468554839660964394655062799946850762921696222471887320377345655475814623935820443034741216785308464397027315299678247715662514978269291795163912143069447248466090875252098260008281247814036753278175814331076796186872474305032265400978569162115619002435766065455970978356343812143848536405863750782312187976408627470416926856595329341102896166317124438739368621946683848289369767727662651786188559444363373094537001093168169934884828869331391721433127595468022266038946138020142044418261419912440925220043805072178381655544773395403241806103098669905778242501288737707032985051074654112272917174110957544803098483162551907322055399439676516652837629284843994989574796597559971266604656689966192325853166853852875633118020984139064882345601773872317740182656574330234078511598364780478395266142028795331014819877072712707553430928471149799385223647989867033916034114797914991918297175614668932284068383813949231141980123772961341846544391825654270023464858725892533686106564745770600276659692543244690845532399311070829012595543348035234240237660566497818601060996107623361956998864584058291783254771804704955579059027797567910903594252499983087964696339145894890424193536023690601442964946870425197087764658214709502004208909956704352495380823038192981894113329764460300642296341420406661834795439551361573303955806511315173801602761191590137656530978757315666192056514021673552281603428291570371002961207167539638031237640646699303014834511935427741335862660789339893282848918038215632930164161747495770310777070468109789772337547494408689303020569692084144402888693359152405913439757534592190714190703298039215798939772426016729584080169482338626036396742971336606323430536044589105653444298911028089767597728483547409466174575901150053842831907510770314151575956218609207435875531674927780332232581137993900318344664651995911029127567195756519283366912985312850112408407224842418319233238633872525869598918576778009915821785533376543352819277033959706058613036520585255133774050715872920757984869233912455339666376570853473151655033910614614330379489651023653723613666998987555666963815246359932861428422044525380119771113698417848156891853167191179379050550269196269491626954198955925437144978022093198016792982786101213585547368503232523808661176510136604296009549864583714162834045161601665235103161703673892885288404669332879638009057342391066433886167172645313595178537843806514162419355285296223636304680258437305773811463170183309263201595420715310316741490324601759673636561176333740778433693109143454200751258528989342361931882450993647124640236701412187453916276968383293087178458454691242370344125884255869012816591584375350334374666768336872729673327091626107366210142238805342706804239000987477502706914856827877860858134651593501693334313591165246462890484938545405370149314587654719623885411514723873681675327372798129437016899202831277581785449991902791081760884876563600807284639434628909478889759761160569267100170447285999775356516760953136379941352998673988723250260657278452622091148264640770794732169759527956149013910278271427805089121471554859522519128681121916497296664147542427403910253082611496571745246805092668789534963214383107943530990602797180071130539662521616279943227587493190167932241979623339070169472685004250604905067720483921906608055117076728094732184656492000687377402969670304705766488152322516761942655543716172456756700571991841806769352622734087091724357917918128755027155230313172842902340762950082797293704475687903738428867800010297096300979113630169882998384987662801852638386451550981890012711101160403147025420231581804893406839999481365557006619850021380231461250016093251761314343318954887836213625892430089614886648552494664994068907852554719220471032064752938509395178059070342065488608251538894625405777072989731235852542343777389536435103911081972527429253815619955980924154722048327975277364187668656396979765277876381594294480343520484922175437987453948162820410035110059431614259190303693011265755747131070766213867255621357252569271296696726404694691154543416201535286034589729775633132813341384141476379147086444011487629218598228212793384455407524309526623525303561142668884718573906496445282438763336650110000060493380964771291776497215578625698731914943169773678452969745766529351396807990965990532108737262588203989222605505532970563171948399036065409276932287420808917800625343671595532414088576101488890620320879299832552876587706856228724609004948409114522856072321469039702925612843417026082157024868634961097007268104097811743600346207959428982948577280549166601601044026992341566353732014042924113446754535024601830728888597063853303932949961890884948419436254644838386271911590856134894280587568668533712714543789454126027081976086538881436401557167654803230691778196016415384270186268310949375435466687478527770145383834830241223333235120687606540958800798767524842976872521631327124056039098860115874039047599839526421712379091133285285885864248945532786555844558238769006840906391760982171567546818954562753110582462909759395373131054341830171666064290396648137064901432776174558752477704431079289412336596798340675200810730761782394390094509772143027308707656506354844661932277239077872007990583278670468527993903048678959562598785871436793229910285926602592281476183056790104614558472733750964483856143574371808366132347965051136624369594550514566312158371717828089010617418039670510492351368287129345575277038462512644356201640541589263575543713172724970796188972787078366975123674588946596169587109020064569595779603196311109229740489352605308553817230998432406080955096194353210884186675990334333494556659011658073518178981144278577743110773270056146247361313449530682692095220615210450004189547230773912144873940685568104219422965471516341418703327808077635235995896073278388014321523781482689277394028327896732853172376768554807711169375255099641373788827304966960362748849437012071031812688492665056068789360106688386442250015645224063531407949055788359914024956330082320069430372828033480902679437750521179041674739676968021942610268005898625335507865650261693787534658027691281406906925396174673635923725790805534558100673157429840298189394492943518847043483717170563390152893092956907223078023147032508571419219617917940414653139076156942515080849850642729431999921811599656925736140331868201172947918090357253068524310993993108821588699858785097654738237156610752362285340888347992313422870241693930149520708260649497595109394429120565210128642099420486315494482467324395148971913767724944358300165433071967152370842097936148401561592134441236565601881123792948100571784499474436681048201746592982273586781611894981875670341538151660185213471675374117639937114003822897012955629972064245019536890579521673449450958620727048742768126451448679782913518114836384645458110784395689158190304450696659463656227991252099337239290299475244824552057721862137706362661625494259027427147304578050951235666574438981506852827083234489676365671812072872975302617011556766147819639217244489034140074383076876617624873830325604625640983960310613895490851851261723727342434631001883297921736014277296037447498009860427098861135636662591406536277179732197003211488142877901491250917416367994151518900988308479122340593562088050949695088846431619749284562363883408794519377273803184933660488315872471397832783909441533669299523786545298578341713951925605849841072238976684506299688356621720819132181778937687465015878800987459206418110980390621265617607550413980906844035790822571053061953297489336635424444518077236195612116610814574728888558437872305478865657081456239904740576243152801115581691148188357812594023801604764447886775875756601239533722952489030848046301368719775011061495754433294718620359654486827870782221849286946532417009928559750716370909430858134295681830027365812122479800394538796538961790769530444048878385707442940214081651553725167694355591941973105047497878311316878053597809706025309382703776381281479912579089273551940905388442590991969540494381219231884689776298257368823992723955061773550758402101129718273174935068274680048224668507127637176296031223225869622472055932141827373258746986617136675445790455785291254481974824216433553394543221025328479950543293623602145150320316053238186999950070465021892324486708971208741439513785529500705649717762143354588859046800830651224009307087282552233066188518256447100866616626188447994712566848076828384624571378840969741295344951640708584421507010423935237368655735601412852994316404382391818610574116976432776768028726144575489814044417414920647422463090263796583044162286305422361177275569849551314151847672460079764005325038979199678479415584153349600977990574539866452398098643700412163904611348236119633619675211583437413859034628735155963792489289431884257115729747988030826277868420305511607793226247021833423194688658458252714219744435468258365147036806857250946388917696491794604885648790559178014489980977402312502154172575561273938749585540565649623077024162951385755805866096446758716461029031213043326943414603648963216241539034878164406730380757515706906338168751734581073164662840176956020184741765435566314139760473588814261757014841989351036288032590350833570918645157295298198967405930617951141296121853371940265255252777491579518283989651153663240811260865178630350545769717395226781031956395999317087100201823958642620168256523669240673517594615841646231970358783688683850399652290956020937003362197946161033971291183695826710181051744354969322198916784956490357066581669934751420105871256268516006331859007903074024534174398258717872497173295530588425379690926224533844229489171711103288378819726377238815079915987279456588808355342879610015947519944507012410257715930395679029805175867168904838649170935016735073451453390137262179742512963763682907805207006922292523801213833824809603331511008833343024720183675437948296106876398433333034307839596590885192391768231237221001998830589713483055605329528674568007302137803205601392253879447116988377935789204460394088315961737931506231922485888000693864859275072652661596610074586363812632161194607096286646007757988859486074362940588200708368021044687477064233574194453752678552875519792124411581854750294563598640065814245213442053440827391618509285573213292889771271339522032102134371737479005106846757460361591782796021513258582105433252746602623464734556976022980871526847484680783553223295955838571995272531417846506155315280105792751257500376024366830718646298316939327895207142979446067342510869021474563152249047936744144725532794848945258780123844256524823170520553245226284213098956164793509523687912729030333975905989224600962043453976043614375547404925855024523364926961076603573976735861677313612726611157143282421805557599057157588859594961499182812310150621616304950535234664033478621963608861137270236995799535716027879334737617088587880468485801686694530628468155453452140241744787746336643776164896303416751161913719058642514327513008063723685963391791532438136047289499807823704509610867430873593437388993633578855456482792827924696207299838529656719985475076695301197541641716103168592499117026160605979160529041468008008099645109406994024838069339135240013943577875505542133748929773139927090563790127168922378394618457355369468599694307954765775202025502036805527512522130610164748826363058033299729880953121841817567471096830456723519301298985485604971531615141704172416340845592790677394064319687927892235489886626712714041618166062954667718263241435138678499644905683575791269822760610816122516560964760249406534223483467253320280673166810090939380442325501628120674430794582160367360814026344498465404316207926854210238240057968817458208063176239221486300966536574027673572351106518089568973209888682333744431783200802978565665368082269589384944002638984001088228565466335990542844727438573761406665121522349386891156358728675398746153786403654002281343547891386024361748573516572274130806489805098003703443544967565403443073546939271022537338125837691998646325278773292148622216180697611050018104810006830215961208562702058395256776576230438275397797730775365404814215695851206660492166792202119483835720866402001007101269523652600523721614219728778029328757788912198818602943868986533998485069536262755572144973395592749645258816161284878443987487775510767196630177924140408479580988657551609861099783885139671278951019886383494428668738452630925354566970890869617722542006156086292086613264098185253416481649048514457732088510841637458334114593064255638632539029368090157311930369871668248893005121728316837376473100509033302553735252186671428097532200444422015500502886587651066510703387228741349410472364142478260450839589782368828601166492520375161344135124511330341801062221219359432497688841827074625745110356266559696455726123031976826515369216813452884897299978468222977207298599016044341351097175660980865491554813125102955645799248660862211335182781328914105853211513186827899932113820292455932855179732402612105672662217751378304183323574229929656486737877542782133319918864747266771841995947579224306998342273188686466435303192978061735444510354621146887098582176338228583042561253940778101386252016258129678708036997650585157863701866331433209661387212932088961300835427178330871287026635097665403653312533742279942906233587036975363125700369258930086936239399129235142265027086320223032085873398976281297873051646971574967224133167670545773423787112984618239299474699452142695673136556493437612116750492175514952611198131815987238653687848415050297878372075820008420781887798665853517612937929599363546868539561904941275840422308210850834111342553398802521691562749763648567208529430983843348041619825864103594565676808740574159268581655992375905631706286651085802028089884370852813225445037234364370630313063991137816519718792357537110984206202139324190019090987048257423109708599540424705354542172395749067883783197551972638602102068892013817618457301071370694077192058186542062879474013313493088469069947852068724227629924736838087545053597576963024044711245942785441062660714804556274187180239389541118904968159236908842761849268471985035411145154807044293979466390230934203918978647434783446559211273580835972058200824923679182753364916277820081652727780543323902099043608001247013991590583664463519182683864641641419297277807299969138217928583552940082627124622627194883033874695465305170687911207273903740081701524456837545272738193697863016434959309914711889379631664097460586223179045607792590751435011161425080365110538707206453875334001515606936327536682313178838752100701563827021301504136321822516476325269915307205481748524284598887322247908501054342004779662752951346378626745214426852775203165354104930904183300590922067644458286331289446149220978167291093680490276459696972100168562176295079555127507705036006333234482048207588455654360524952961839552909550096323323924660170722571146280823403420012484268630054573266207494879004175105063488923261028451758263743460717954544393121761392870536783625786780245912022928281251459976302564020609948444582183750895274476597986112329606710432563962077640895473038650220210298143273229533369700227021409540616949138678664008273788426352912031802753156788398664436816145084234954701986433228955365874363384993643926768971083466285196879457828065939799838046201731950912129252652108191117741569916978109846568541547012450986762139337059674049914963783706251617676218498423220529481934184587759067100973129352399167781416155317502139782099726603116887262465402644677325477050712713838299785528750150224373492267129761122277457596493944561269733589697295404725528968698649484471988079461096674843858799356834398389471203090617454386563337105528835678699887219644496485676532678787416266507773021827582830538627525524792898311416631754956853305253719396529126869524472109318086773631757539198843349867182687118365046212972586816865687963722707349677531508380159768892986055592238404992646005763027777542833309825243283265278357021117569194593341573276544895018083419842424591799426941767688746257824276697937691652400016283360803861333441130759830534824432226405599122824151272554941258330731194720050842637334891835524149354662294642469726412273489688908584981961215469346068506498919986888150796579386563180388597221059626943064452913156376962445129302330168338358340108137414305635030647690392695415366359642688076965468182862932316036602914706441865193222649185152643841092873773477182173218500572236658298863369658117984414271839697993863917543179444435166586118458107983508912844270263633536049904085397122974470250742520300548366230933955547227782426905298337511528214671338744366899672504362928497005735633677606918076911990549580187138705317402949283032986908960958331101870080295873428217434503494183879341788716223165854973495060710789950460763588211055768719261826523398271473324480387042180706700669680617045437801488885570693697547718671268149967572149046213841509867439694150396396336706207910675721920195085612971332617729487669556935418430609837673708156614603018941628992736074129872516118964838326071828447082767017040695247082500316731202149891080537793391721131608385836715170616514196361473941391934559956491290786553470000335580403060874658082499335563890032102228728738345050486330995176368431986797181591090001241129850156551826291605988019526502654720938301041713051367378898053345740484883018185893051675937285980304060301742511723589117554833356102969336477227676440526100211908930011588299252381101487689698846818999979492425109192565721633559165275352765693392288027530496820670388912415479913602678567537384255608168145338880885925151194747660306381643011583593480417664500565004665362996992233918364462900114190936143978838940428504210682519286593434317794955887580241730178328697563231569715551933525744141061782873508740008680152694574483134458426279134444600168622842711292812437562922197705586406231643508469657139568726168191349145517399064813268208515883667687325917332506497631927538968563901252653359533212363629733355149948907345023335047915125149109088692610024617520372423701393057451426112299331708440153480623802879181225728352770943113043103847722824914794641946395839229495352772152481496729279972248728974989782007032713471599644720725657653491475574325886254091908993473715428508764258291327068508792394229452948669082449929259272435130511407376236897100122329108460044896243500956938893127229733985843666242472693095466165771743383256610936807307559913076458147022836140905149910341491201050615542923011978311413484475471766447020427452002590533525992833554078853048488440464535376793139256905076499620296222571763255406239299352817790419944824847729415103246491903238599173252081069823690740471657296006676489538241165073406280767827892997607713452022896185093115427299493758866949451673363586579919583708370869863237608570762591096362722169404526221162994286194626011542560393876088824613023840765120066666176588182444770330606680591926512406932094073742731035942263507140070749049714819484897226601936467252909563055850811032037797838111397986140081067458147940668903410648367312246464193622982453513023235267951554969396900600575377735659389931578438193553946697907307615068036951385427728737906821917264401936984207067643329523667919936363877846292662286229424260077968849166345578367989109030494966567927115291417319965292331681967369563071480207395071104975711747198491796141645670476560196208049641444332624954216321991954965658837807161965253060869481880030361495534276100285835925958506319731786475313584336529791736707460685353664468557697219904007408639907439000285123365065302212992447729698872239231161526893155462537854892276348112502960937849172146604394836414843082109860724855609523060335418005962863299235359685616640653685602950524023307966789606282036009256372294133296166843235028750642534760611397401545393795919772712924485774872813137832746514808879852098328722214190984945330933298224650281710970951493659218875534579435212859379499510161272589252562843223304647524470145525798989795054502257723635183187491804941883294610231065800888758030062057312737872053779059983546032305936392752611214935452484945564603733183022321534560835808114189707260972428489444371795286385130079933183713525546057556116808663216575212143624084497227762460096125715027652313277525787783414693425055646711330639705261955138858865882669259480006983509531342504443851668228843588796390255651916894020279794546876972424906218316197928130456877410942807000889492278092260033309475452984909368998199476646221592859707549895402956724566859738900582654703343959871390329817440039808721959182248890410915955186626699117876094992119306726594936077085982175481753060924465385007431645445476765451242495070342110710263094688524993494766727546804725108298880303266469507760401383745153361373611256562073394418549794152014020084895654664541897249867136132003275907662466165326889916682527795199294618734316776324556895737113380330803682851854416367752970545983820135068863715413228981302752754484764012001616226517522565873638290062595296377568277870717955109009673377337390278235961850255813815414790618957087078798808904315956104104759970005786427409941865427293875347986751783482215803672370095761958573682008304167373257371484350327013645313283922369011490037118640181025367014410264391195553326808155717202378153764057321741297069463338263186211207404653038477943826791758936244190345243788504081473745244161780363842005124820055446965775160613381215679713880967776637466572304120845372766407758083331628055478558160800191953162026838411564637421787741868499766549488462255897655699376085461069351326022299415029242260323786506898062583512962700409070766248072207561791007584368088929251578672254971350207713875263852553101679400282452422878321067712106010146263603470657329812607435886697113820574096112814888976125250564196448521390918145420663785860421805285898499374407864600734931004461032081564001106784876457031085676326336203764740211500810821670527426849034727956649895416395110908947068726087629002511464682064254023743528612947428830100862155576661083765978752331373614640041984652663940515652011597761816428014267366549329180527728100358617930778201324058920526269958290823378523623137176953011636050525026422092490669231966352060682138372486710601718574406074344566654787751198341338145834543819861839772002240162215903368601617028452241547516592890632357081031052720586133392833462350678689886808992075299680565815050654062374888526400734504176795422957191969513541612139334733267226371880411404415791144883372065362474331410010088829104428224847207312924952256467851717702402640368778772951137201771158924867740456369539323826681361926154917631241951840853483411474917483529443291366059426772667567474188850257334772957848327598192742533049876444491172542300440797133067842361162544367855304408503041083085174076187865464041652943436417338992992093993471507945569607874318716074703290842815645765392282770972673335766088207478012338196196023483130068783468260060215097185528291829356836723138994997560099071505264568239485178439013862277359245098197775594088185487197726140658932565382985692748126957830881745585857443002698817366260469547169659584567912876616282279542876402815211156820671480195329332558919766610700897819194646153494950284425615148111177197294542050642141986564036230346410734359060386437394790896695591785058406800839293231680073190119007593465767277693928668136339559674698071928213479834377612790233204780743701551030688651329531598202988953408273546084627591814975768475992830016807988267693150849261292539768395527776890212211231967492492371371636854877965270671538823316802184245140871393683299352637492399980343957207947750535814135548854625897643456705872427281854690692246374593001602723767656069625030958005522478253546502406014006805521519709345885823409687080232424311133006537152698172082031726729704170769758460549260072389568967991248002141493986301740863096693181372915632027994142731733198888724969265108201694071861743186099514716746074313993094585721178690744201582182417816973018717517110874589369430610337990308180087248270506639303238239637052217202173537325013134764363924866873125161049465424165043507148226410855019233269910169369813301341354932478310891429168472320029151903983112722638652030852990976581631273545463809991428625658980512734481173734659345911535762439686551756988061408607979199049068038816669216147155206964472277779743083248672718049134972962631916349580148281515838162235478157919333509919911032640490561585225158242832213589236922887411050755695286668760995824363340911454798729720268584291496197683667996602547142114912179019484869165029927700210898402602320539623322784112529700509435372388886826829490042332130307644789116355617642168022078155288420045596083597481409488853446370759008258817638269219273030922129420123450903291707836350450945852511088466842227594296803856645994489831489220310414081580444712955110501308527878461047873475184450844870627709022456264638357377763827565391432644999370109624395224701518999433040990888059378656781387096613310802616099521259030833735506317929871939918591639123567590264867893497679154412559066992460178256639137947291512693372769653812806295730782226824103619166327848433326921300065572676003343548918579333788529403349919111444855472940369107977262235039239078132302807326509125524950117473349325252242507236475599438387649969157026913965047683594288201282900224786212527130417677409633907221854518652292890254935081993047390104598389053493489878046860419484625611347383272336655233539661941158930361919133307939291375247271418920052179109171853005784005759389543729962804763005772504138402238274538596863135207798467032630775082365038571446693779995162280742269303627835824480078141693639455982485273625217871268472016447916657028847861422002629336746927746470914898697781006376266083042363749873372783784503739594333278160503106959165998359246122088370179169555122852925908161574903553800585795960089499151084143931868432792475175803748908400522452343752439867869916272740980862666750858575820609522317333748220485521764969364390024430913879888360168239020435487883628758000142983832257898972221079497581249347358877040673762275692836255932824697296533304055198433110921911986905820379758733156781319914702368384932088799260011572344883765820806680763383036763067010547485355596346006367138161145760387833804708075750326022015376296189416043457706292903761128430509260977700134269576782322705493306081671614947618036732267462683912586550003224633555064985235074335398899459668715330426165910743454790548071397182554750713343616253806162161275796392292606245514857899166923228714870087182572561874182423930330590035766338907618709233667685667587234619357274948632500795050220668925312934948160512712051511221441408912742565591781944413012134695390361532916679588253427362780740002623064139742852384976933959681515887901839767349005391615599685835555102768545602542738341494010855119057954321879383496650629783840953459746044360775280699012984168906270558502574838583633053064085646328322437158476089970661251186807290955476159682915604946420504345826809499676416106136051737825382122984145003363161610636238412317913061348848416474878040709241738438145620236970333501011557931473713289111047531781194715774490352039467687991222726365093846216934456893004158332086516072768592233957516269011736544055770554849057490697536862238239092688565251734784289581993253917119769905159138652213956915484998530720577798940908546794831835690385007122678006294645403395081531519229225057548664673924506966396650949049361711011094793118196665595383346839527221166057265918541197686872851290762413940050294461976589483752010481092226449124891773219116145434863987047129995123726903565010756571301514375689428033311752690650636861516911121030141266264235936077107041872982143893514902346243256799284979301007878978719588828018681577764526260551802433584420568097938972412196191815359384092279783933534464161242618516932497833573434844597517025621047445088326563452000936760524829403299302596470683011042996319291036702318869755253942108563265162310514522236715261093297623041978330740525707978702116507100466649851116646883401323315353471261747068441334246608581101156465387118309444709681936846279420206655730298549007790547429382379529345787196364204769301305525225880789764114783431976350688161708884656528920849486494172139697825446244138707183448292898815057329358374128282924745462720600393056171143654865140878673242004508277500643563993076919919425466602376118388904126991061681734753300846821639104171523410738885826327684061753161990137298064784863707328599450566010618162840123407852597617855443587031202567046673376822138535890232792434768678519516431899733825576467568703171349267481690365079474000327664366427254379025558244302419889447611517616828140497994585995487544824486261403773836323738398762444253185384775050948486369994390729036055076355714329264961255420394262198618062440747711711115183868424775053814547525776246869311086729476376937806879930641028343249466708814978703546967152282819545466286908646568270920542653296078626495491296147457216351144571434607658423174318712384029883896131725525924890545090388326935848437526287853889253410704634769214434529001987506096302885216808750055848529817525727897860652077776855802718911792102250811848032151574113463262376932018851454638452890919690438956830098720937359667799273380744839709959283788998883133415852653155378118314146472031342827636746400964295713806858722554814703485762231947625419997377715476935525164079937715661560199326322957915608456996922524754680553764653304496891194050982770238629991126321456873436087927134580584819395304726416394020443150762336289529029578216057943706957269568735801441944764253324347133182037509049719813687754272555288817264879781580525001445768384959018182815230260387942887434652222918252361778395176832054638429344251185940502278087411535218247395453501240671666171764760948995034045785778738574800447885719394563407452779518804891194755222262849496441685558921355610576086025636470474127430175815958659022188766857355289775112844059639908894150392255762792489667251799339474642001728610380465123892531157090150172426368323489857269710278043491544766249458109394224838661548591494755912068014107968316565787162158612878548273177353879921765888022194081177992061197747872358266501100105035726763041490224871517708000383184646734821296707378071485281649733836442190519122931986748643323568130337511819303914734961063746713840551691247154407270758659951245441224304349948438947514763196050262115778991474381614692913553907127964683173375215512547103727829578107262514005840812670838301570707177802053539150055538633279311954274198193468929393207764900340788340134493756053106296051667547745198525873427828917906995761927183415510834218124793913008637143310852962688725731566020724407851179010473012076843223995833994378140371885770007401756955859691344337500176607999919705566604201256871462024813695496771745839712306164990292374799436007795305445857205233131165513877093134418330723332370420738335411672829243747843995230380300840959847458426676211081787519657650281525686815352673298061727807256191187777249511791680829870978917710074337422676248288286296180390135643729764475627988948777915003084851580824759813180547444435892193044802854957493693277001882165040605766001157300374430713581440859612326791794797008107069019928820770482042732874191375316564681362018929301614805002086873751117922402049560941266762212492392025341461239621841900498954315399789964585334162654269658017913933967665698265605407812655887198625019650802180776554072431404696313123127188057587302022210297317050524691363641438306270268210112821999075113928469824885849818761528060365654314891101483600613794739256383828671168523501078937948458228930708816810606453593750294653003883268838911524540281812169342602554891835667079863779999383272016134975857873390822735479171141479740498764159322032088829663872714989064308061873285089245774545403607885193167072792633246032005710136876656897069488150505096383477806811748719496684944285172533565578716352924644319751911064741500819031811836306529436009469535048685792969991341236582935634036562792569312450632061761681550208981321464953824097102666962290008878920079008485681973815722344032204701581895783561065562239300707813497107305206652411601554698981063419158283781098404849610312827481898956475472125197223424934948772371069552227875734975693580921632804868950416064595069558441249791824083647520912271633227418742290406782472055538902342675591156978151289046753821476145565056935096859473248905332061702858909505731744648385874203439538483672169888965117744429262535893743615914391244254117350088764582789965138944364887959462392667227885897743833819651448419970444137157088385052997411356956647885508201037081174196006378852539857377697960118451751795882301357573978255297366139630584737440177656060159030219256468695755569986795811727836160320266446487159226926943200310579123012620910117826902017481687865291088782632311607691448322477812657097274259624356020840972613738630419848221582531324824728497205809354908936900078355702612887460214430637162486683895449152234002010029261617109702488702957613708977679043790264638654055207279613058238378088811599613591813501072172020470844907106597251208920307120668718224222973809966811670992657628725448094346970063319152603142334873805632137503451655190587360711718184064994896800479807606678728418177105350128299321156912822679065559968516438504272683416250727442800380995340033539162308042411699907426528185385478145625209517223446546508903067453982685047131508478399697036081615816612109257223238054899669527420756458977592609369822994028588770567517324274815310823028414461543111846539168187415905464176639829998246683514922424411436831834305461545233157416148622548573530215794243541500448389651593587620211184256962656577387114183961005987307661303864479301365722705726311316965490593694063307933633818477070530481941314626583434233635958534747994966573209631862246237547423563813294186775757224989152073341802143224679831822764103631384067556717050186015177519284624222689447490741067599160812582855992854256682739465926700014639868171471448428161995116378555405536123756382604120887534244994868226270981020288197023088376978558289891371374315874047524574860042330199839544802918108788123515498936694492845402170413375374232881880647240842916862849753584893815657582737060923116000798285015657139020106148384052722895168310798779989122195259927972078239025083847387986971801546458250124589115715992860416668113688933363577175309877504394317389533839928045493818422109013485217012560715438842862155901324195606711261052939388430944936828808991078618755919573301564543703996942963102278485073987423975490059796253627050504237719103896126821431517301791144438226465736858738190299359064230523889527646150149332131654243097151811170315858958040958638497482558641437107156122781087439115250676287509146045158513657314701959820513381083102567818420987474005677139567801743021979818614540435162937436734883640185859521370308121740391393109641546353445740874865328298579002084057508079814948565102483589251661758571166781531132687536443627554681770759665756081753563559926734102938768885323599693028849609658373683900508499618441827491534457720180838405260183207029573339904191507357876935501147581126520895787257642396561405265126430101366514075314549901212087983884798884117566586373110778135602213662076356489419595585744284020038998725389416091442577888111540944234083765476380906796567585569225976985910578062416933345930659541291596906225856071388594122445109659423945766896381653305799953595157777532653087375025431868993434695110508737441149154171411415579901897619117127470520532390610330210210415417005412365081369014971026741064806670640446676183636718410304923037483934152040559550671495089709318497866289489589115679159584178349718356662372657401309945131845139822378249303454982583699139292624086513957907123762282920831804150315127271996539451658887975299298212975421173380730744989000429445862880071931661434262448474612461158041118705410798543895003226459755906614140022491963254583416665741884983725990322942947259654388624489899565235026203784680877178734462910306061963604003645741765824713745428707489134930139866394159335821232434249513517411702096984667360361609958300800930450329350778100094023244617482641063754612370257477319160028883483570418049650038011551252935918324789768893064718398497451242174928791158176120068082723980718037350115056912852229655724262898416759232143240439405378811272609365572428695090353245360117752393773136028656649143457387518687053758226278882302519061487173960359714655756297211873047304558088335520164408829097026240297301289039757080193583617295065287258288881647691062175640826671206290876225025029678544815744793194133224834603567658828757063762990445175340207151743433657003712231049329873591358362952308428924120447475556522296514439038004140221925509583003387257160172213845324224759328308602613380965415375918369902430890247233625394173857058954234586034377563404523006431672879522170600089741302822966369422443689011419767767785088101699804520407453689663081401733545199488948143840953044855052679302633596671716254489943269729094901119245047571308236934929750439570273676145391521973234548459808975562101039506240448132333469154179053427424981551759076073852958425938072561118394321040932181853384077163027768286247869160486468727186525474480900841505857456426177878259200093054129952054513466449252638636338168026915375843478251373557091605491726313387219638514187987341450933198229236844437868088108928158737459935843078191025379352155798571070763484179772077284454891905300224838558272329039763084696332866660152062518096169812786594480478902228531046869874765708224222438375563604124672031132860180720325265874812526362344395393322709738026945319998654984775179632210911715806630732158144402998725100712527325604591712688540318160550258422679158664665659497835507480468659437655452446497334283162226436194442161434537371749414592227337771186930540780438409681516148179474991316076102200362031015121207391846276632535198477456030947087383234085876678876418036802527352424006081030923001775557602247783565516912344872494511712292282985282626870140326006930713217939449562311017714397001786462233601935142998906750481988581681382384188066027385788133545439817229431297210085823687663622823915847004976081633084962619120298139158908853578160168126722090901141218097701865798699049907881594885514382366496937398429203169501083676320358967641025638191217682840906503100169165009734197751956483518346239732311682908854574531017654485073959246077375078420685861765772575702004007553693239336046639296462324143457792489596087735484466106397828907959450038306964308881836308976875176999738134613908584188544850548538212767794793203036749941860965278394128207228139536813613209358567064872353044470969330231836703027386674395056176688261396491162095673148999920120269266083406064481349873438436864135287146942981191117359341082757647905857782976872447969848815607581560446439204117526704357752246476904097841795557113700089828681410784390226981416896058850931025026723972195792687072498525208623617706664808792186427797440336770928248699486235680763352302582831108831520170522094275321263556642530530364475783911598607179213798425096931093436083469845395219705803717896766597122882594956953375174486981488525725199933975909584120187920128826493200279224513873593145609819874225132970652110624052192520792413908556865169504014635688268375768889631411509846444639853753685331023071976750369755377854373887907974686516264479226793524913902998591722988595150911616927333465925238901314907016708877576796697404424384836239994638920983561987307414304760141766901093729198038643025230753916849252134655290998830205288764573441992746565499620234745947097786900269594830998417050350443632085840701171209380439516570962150796234378492932270403664615712389190119384239224360664201438487305895518550896940787576037216772340010976325240233414877718909241612083607437592918026599099197123211825125212046696712382897800036782163874991269286107006170519461890365456645125540078946527975618076094875911299841067333514044097965236031988454748444304854715307819403840709769459291241149355039642997342616381046589586054209395110910970526349914889524007911829047596872554903144858135644167019334114695716406955844543581768761945554308879076804962267235014503202822710566922292498569366537566727843950000806164088606727244442481485428789106240625797757510865365593618213197749039841772562232285239695452941893608184903335175613245146379458460120862194097613153457065544646463195086761761788093486466540423107236312791701664149021754861251529897541386221559158659149696805143986098405803884455404965360094465372343318133853692688829852222395540866790265585170247133659662503016702331140613954280792674692842943766541387415249180942865376134510102754690836894507155334415239416035574647161689483372585225907261402266103097822724458106313352767161236586880811584973987137001482994577525363469703758211183255827625430708363389701915152476280687536156250302717406408373816099579057429854669968998748452438188386543282690036480564511515063847216359445136907383265404366702636982433540464155031492326640447323313441070369382062234633602093726976973593734229517998125819843619146308921058914189761609623977284356338333749056079913663966470855377238975956459284526416898838079205866717725757654844150997967146558311066442043142955318566497974888756085647165259057611113810078128941142938878848548722268373368407036385729844952561080238167177913068842992748275152646675409014315844783402503761436023505526544983451802301992442053659436149509078218099357449125545287485356951859692029520355784343864655154483554271371367939285109681641795674792698907797396507760256592805947108688013750198551491415585314322322832799933086574821189687552287070606832331006919167574763995509637220543695936444635497658888754813431623474252614922687813172505711540568705015044490935922417409706005459894364619002070685958458000130774395425617108759146323077445638845665051904842282761783688748424113247732978942429669213800436866119373006852761102533928279570206440007706198158064596332604669993697952426607743669129929510748901707896831075770346101988607340648726853575450016306747253249043991581793143243141215689021066697659801707454175888528424845791308817439041817502230762414209929755999633200576092922702232713659142999664399305491284631060019820218826700858010377162213167424101256012558455233943127773020860877967419334838280570897158829132676928555773723957934254216774133701503826354239260795885864892482245767974436222880999598717857221406942937262622981824078740409613982074427823386613908929295610829605925757434319820871120525441506019418328404757936332435720779916826426007892034409200356512087629001834187192411004364931267420507621247530309233591913788250566233116812605806741771846463860990882220941607657451790716939481626384646485012907110393411608537676768862500064140883407499640200687348469299489697115911307785705895644143517424733384551324592329122186125663651214450113730685676092051494393054974150603607752048678790023105263131590162815986096994401164511459834301029578460405434648775072650943952915093735381940579955404806728345091100594758162780748883233172040992520488968270305720389823038900062882945196951525259009028701773950271065538605393663216113631687826677441795029603315449582362802259157196501917515451317028913592233572342147364015211273882171213364507679034122256066499452859520054908621351517133563756909500230598857906915359276607436850367564507500537209110917416082342085668032166627375063247945085437254130619194602159083602984815213937440637217002492882363667810044269910679879256307795863140850725905496732424033400093436928609167957604367053405666923570940768906304526109068614272794884222284818557819702765570612561326350452239487728937062766888717478112439299264334507286521586756426973945072672484728972140809526058114837302119842432384325580355983509272243457635415969561784791400303466131505753383131913082320379170804978866816001130206874004907048550414652036304151590416609765940054916317423664881999097087695274392596486222925516806516228716139509108758197570883699982161701062647322363208373742713949887958019163170203413840835282394675195863371772955153941535278025846111849052632574326512181360303341639479366806344711343958697601686207876457223827598562575474035997867266261081734784225618996312222991218974684859531300794084670433179547751695439010867574913601920913117325686656079405709383594984062791089460719767524976721626684947528319739005607434009709251906536923817598229265138752948814725034904918652679365196716729026318016595149723854155581679419934939531012641490150957233796685725927074192449626431003179483230790857566763916161995466751874000647919019888421061103458749805989274949934941176935976804513183919519596813389555673984345934309975082941573662890639063963558162026220759239644486345250339262352070456755421348948525210853414383221623317977785034200833101947752865659805469999416523198060200550418035192324348505040032159721019151901470104862261200270976006064784133457405559195101748719040647130135672762610988440156338298770409855439855545327923365056356652781216355277968560606685279042811310138353568457645742133597811576729369577145689700780917693913044898594660523920171803928421693366264250514104864274140299972509899207601479437348273819763552797281719746358632922335092994037873262594691438494345948502631209629629181133755857883506314467686366063263323304108881449427492030045825219415716681978587270126842505927501412328617864364340069974980232671920655545570004440103500956729417169469764192468233545146687097845078332421030816474119240537274842996406665099250420018326435566516251583763727067983234213967184244349863983982628320649576330812711317965722278194310621864521329486528673808683123259328407085741063918108364365379733044476196543422960757933942747103357193800020886429227902077424143862991879978068909659548590450208261314025937130640787385093885057073047233233082881603319636228795805334900601572184500570535391547145788464631420032025655870543177174934703425565522146941963516115653686286152740660900819178472537666919721446956985280733895522613880113631850069779901508967151852938530528323291434636354065173941515887886960456023129088968126897451314115669080140567761879466937552851238746826178752992438820471877086856064956971578216798682964216726919564732394805386807210217015060125644676157419664559951133693879334677487790306856966696494651486803791624660705449674288281177954033572156862715847397156873201059537189208461170769423663486727932196463439860450788616332099361596655328293777958876779944228960617885063541709975052715410308373907361974050737551183317179385582043344540107097811877795703497886746368879549861853481491320714354174939513674086634361529818222911233193199451094568698143920915585014075793808395060293089268593317219145824203205414629201060135351472619199051387654084247959024578490329083226774104469662742097213592677752642777639742243260373975137250569018790281491747898523454027641745635981415286703222658338575778828534280527568797142899860940475543080887633255469173483561477519642930226215916354334946406199495549367027394680306460131396724027719672133530086714938921647320212707028772057383981279084564420599322556454082643338778005134808689557320035855997434976440911039345308567896927089235231633595183468106084489299592873906282251554603627925126206080726933925711413811130620061806134771984196837189570897206688423473432684039685878350920574979634097082031777899205824588688281514650295874194191447266598653605591067467566306242964806213934374255455310589180223012917820760578408541012875620084781453018815718790875875674553041185035340544310425589965966317034215796806335782358131586859195337033329437010160598766191535118012272454699884544075678653782588646279094037451181994420159784445720721981370283700139164559244547545522507981457860241233768963229728888888744721945213823912770071037374813504349845901101109607653313888321229544237626197684753459357043712537912427405517777917211917406905794838633967473308814795904676340143078418235859003301368538395111389519109681253546356945420146296219329434552395244414126327116858655257653995707427861967840801793199036514347478072726547388639215546057212280659030678617203956903723555167673549550711579506189775744750659833322893798734761331183061845532965179499626345068915560612672110789036021352260719847887949753031533560496151407874340398494800532740755483644110735070324314781693156183837942782816988111090271446068959023779197031552228446474009514529633697506372270629346387465859410328125478988700088334437216353264857447892235732155344214126450270119028753301979936367230545427581486536702487541541958472775922935209717829623748997805395463764411219440697297410800259246741417190961985954373619883372792809221967985317052629623417050467689710433062043038156255703089927110473642648853133757121909198072574080283964361581699537583184394870821198620210521191536091392881818617019997758663319064068737121901500889693194763728360515863373095216281698681323065204822800453336515205702010355103630941844946883760194797894834362534222265631696468753109864310213062078944537595997010393742916180260029232911720672953805611228225805738433591175305049381155534432583771759927846431252903552156062833180313138620344326291325722557046982324404815413918691779933645219402002358629957651832506859832566974807435205503762787981645797175925768209977689310849206067381790248130438186909274507098926335296120833595252249555033685800347151518914819937893570766803686567203199243568195058500627155289683806309039895281322120822089975130764649921187660075923736416688333719055526403850968303787292046965358533692042211514786939546192885840629052823483216031112171379747662476472073714658090094197978610837637588085277777125206037407663280668748311884822056405908549477422048386854878807516126533113018462700157714334161911549171608375778750744054684666735526570366249436918265560426695989683325999387583883289539808129676846629942645910762728687218126734379575116739027256886321484741085886734915029971317591394241980388042250264084246756606071650032815450178024474582994086207536977383785185703561621485681534915546248841818270280380388090410997018258060241036670897119709364480978157851976936528361109459481284964920386837281508175977729956854953326947801854213472404568564145495054194661987294921944330185239574039133062735218086277864969074663752111138186680491621161876955090916047432979880280087430675806018339979814821418473097807043591109222162257373358574496583192577681374778069679874480424717008895895625947624376220260189163766578031587081938868353793552063805574909060297280874310537263123357258307240372826799556124153853476698083927825691930072935055489156585283821443719656780084934849106365298155484544087962601230333693518905120199810650427795185812575849151196075916039617413070534594067950363365040294983279688723817823281266788975656688883453723821876387364327617601520990739152534070116429199576906777369111416382421224902579572169591677998461837851850884700310473570976205414524455299531534291009140223811589419372932226600971040421360024576045462367876233206137566379280479678115799502667707358026150734151636813075979809457257341509583406727705801533428141483499207769012185080375662930383116397079697319751168399117583472684160152188307705823180069868188838518335164462052479702500460266429919062039466627871828227268609397184976685595369301070116216210181696163898930355472937976188442828004878894363952469729209303491970760901092519001707712830464346399619242332616676602495335592613327844720880083975258747326464465607777951457190828557496236056876247594630105857549394167126606908865390598081839329469426299085217908180510930233812106898919505585186740581062315916393683519048786087886685344950996180185926979053903730738414726068227919331512737508855738661560042647699442499275537296992812927910599652046173760911624652770508485088792452399855212858606386138040881319230181353387915696438902482317877046455109750859776115759118219173259434388236404204496271830952353003741829224936655430713371657145750313051239319460094215545384048186619391092227098599008812586866127682957547014067490221470329594131333802857787086143345003600800569781209495997018885500520658433878917419082233099969322381860297137385041247223584559401180213954154318742615669048592559929400061251021829802269655941018778154324011983866941385093071239552079910301292333575293962814517907988546520093449586357484184754049754224217011427595796067200413143985674395018510338145440764665461797444582271369101685898746254084742488256079499464183802116248223075891133859818807512856914647227734769919605036202477904755526503638330050729979170296800818476649581304476055020788805282174703962070538177368249185666231353653627912593686479729689149155302426084300805912767065346724171396340348624609544796217222004970874772485353074999858047025594501457325049131322499543850066393546079357360933937744568754383718864352192415642661139115030215680487502880662604589879210065543278541588570641942086167879767815675117327671871123189347384926159000743379162579977782203823460070007376314904920068360643953904784422806272548467712456746685412875532908411717664365354354178596092936512346542219636446510409025343672474545992030327916629504784023734459196808173015996153690812734317476359938327915258992313588543853086357375507698905262381881714608878908262465090507967819219696347960241143115618754430964506221642486318379013304521367800932965572693849265303274315752950062169544233942782845066788304916275771558141681804227184223357300934588683310322715086767363956348164979218008670895164445694969805216719100587710032026448274409509046057038471291861112954519034615422974750991298914923696125846665193345643918592840632836072410208719301707197193068824278705470300124918479328638003469741148222733589861392833530983160397271763201867034059170973077578202500458176633485081006091805811049235041218071364927698717726865261946166464765941347724847581875147329489272781241330720185475443101149798916729386023713959716109624161577804186168170043621354808442796645127201200797692316102117381785933039708682063993883634468748605818384337539682801398447153837896913048100840289041843711114319352533976523651836134297659657283826922407549425083750308821119041002699815018036302686199240087925295885308156559666730414439690233879588076478463912704100613551099827982079405827792791645394435283790501608218001122630558749781615928321699290691277343197039552625193354962311673634870604779904072385772833075637860856311164818941769155155290172575012315800638277536075413699491453916652874789304263307992076307276484983196891456677426951187345720474889522037716372957135543151003115044899151275486295029667440120617634940594602195784662755096543756687639674506210478617112598714089240622129244467755523243852475985901205670320647240184444905045753396861428435229658404360371785254344216791549315948353960225181265823342497175264067014445594820366824431235661665270560896669298385788765695106147974685427150979702137085939697571878466283103749383311031197757625305580376665399985194722843926384355289223879974801267973474242706976426376865902934611377268991632215408265735666800418124539892629482655112377871487617213627573661726703245457936594399445761276067149325167084540737041253888189263950936336479881247425392252603773059592315587289614645660350420164485569414992561104169226348530958317467035823074279172517486428465635426761929618304630477218119863650989152299197559276784528663768883168602134311501887523093255877560121026612417740174196522609557831262324367285958536589783588432258080532896646057543653940980240622534603683059472047338924866289802797985112986934763133458292632485477387341123291778178472737756440002192722443196088813065201704081721510397351028266296807339498273659600176361112745370554376235275871053621984532908656404067833564983530431947449766826000661450390315124835453334259620487725912033714038559931363088061699221014426214884918471193907756227715784072602779475189776086417150836834076712991450354327526985172648168856580513724772249327305952541482810683569423437234597580579219200753147797539272037709067378945427947939076780340989581332651573715566303210672660055332753463674297949584884079924012126145342259921793563381950437774283717667146481401082056636584775028258775485832624828715374784676658476183584319359566815238120890778479170636215717641479067257254030458777099534047010942930315423992605794242812552386651781006040226965909264241966868519547974697389552043486050308466655989412218459847493211165849823944676482244555816983141189406025781673328297188944526815582743396770214389479154004759064627331012167468531470842506466871894841412203800913299197973141649954970034355338398503586782132074487952076372184091159614358315366120548423899962292375497181335241040728576346375337720542584637028898307219912997524124978768385756280773691635584014793876606845407933696531367636194076363629059985991126861746067632715163763505328087830678056053694814851226311719250895335216437578534273765279457394123692292289041876516961024881560330878636607033637337001555272723890820109057512591251372085610212468569667976461075284078871287750005117373843267262555347354965154115265687097014242102189567815180340711294055662051045331267378805947624245324207704932760788858839286838724301379466112957126152756797823411305027232019881395217846682753862948327411183829619402231261970975531614077076263486935092203460966581892551819673020020614996775192019083803465604550067729721023014426888386400761902541518937796417607217738576305247751776439180011067746195096027217703982543896826828037739844889223670257552862146603918497162433722195086666887244591243360687299930165400566990577062983054654697812787973466984863960260013518704443567733703240185935004669441388043498311569500334038919906948249693651945786517559572273661388355695794637731015664223233880360547858750912819867374590019558696683383872992959938108022887096164844939614556308106808668817297459282017048133700482166477293619912283762260700668732866812126118754159272968111022231498820683829956139168293763029391372310871472840277491168294148151447580558874008593671774692380390041943908918824728759430598832840713065675960527379154361953905409714784719334175783569597157660641325159237722891915909622360105983476999206521134728734815796289037695406361261521433732098073205238944500780721985805275970879638902587542483798505016139456235117240204549448913119144853405164865208003861225659044369906928014525436049225789498319467994942216923890410094988686520159876879698987845830471973617744554036385628435880175732528676643359108182041334106012058645031834045661582150398912422213020638266654243297983195325742949825073071089502503229857909098978486981418603647317404255235384055683993332325097792537719120509503864250276975910843947422772249792436225248704691718120288891305726113595053184867090278292965680889461142077206723095618870922598960256131138049844018221743501583468737222539558784769855054651626819012359703080104294448156892074174792303833494186802700894165501041254844362665483583357586561267562655654570669921692887826742759926354110205552628032252575883111783336739257812484023657042023650793311095873316330903178187346927800148093729614950134998822237622441333494034630082960329553374012410992443309221527058534864489499463685028799500153507476164290399587810367013682668199919870408097832031185434845606415660416444114739714231714006794170378004507829118050394145199857401482357583190139269992935727324270828324938816025261470335805851520427329256178047819999044615794945439493697010349818718773936720954792847200207399404010599311034971907131935155103284123833947848704092540174598196630024113866810419742456995838628333607920725723335471423124951781500036715466265209602595845307773438189012421026726037411374524570549183561921034954864094067085706145861329438195648438103892003020603210472611466671383504033233699903079485979143882304784545803673931730979107940262024595891752334289437034560688195934705907123929873579740144675922542986555065340900157855293767995797654294165980244389245563054000934646085379196529768833077169677482628983613280263656007447753885651167854075451735733443371551459141021674650718649827165347799240591816955241642940342177842397030267996795828574244684232021914237401428161811141647288135551619426824743458244127235228215440136544323107320073091300728338874072487321483478727286833192169560404114661309302418977542433241401554253647122243917924372397416201678575079941520755934552466363675459766992581027997102990079734373954929399931271193685906111309612150383297936349333597448366997174622438849713285710999248991731290011158585430601383221764767944392365330663823819193705220265844605549588844648374159907713154149890713144246148574008953570114303336399364926614249712061279977874369275119059484858708359645315597279682744803494989983700725023222235974058614666753317740160635397656451542841411338240713869697937886473749027312901398317077099851305779197528521758807609131576708541217500759309588786344726843066520476107560226654601484716001983400454751066381676061439671936078526029427408587160532758125928369120740534065367539883833410256868214370841370383632232191628173163701181192683295587869396713115226466755683245408553506081574335560552883589766102551683990178001645752171084152433450906003535583785431731709733812083282478624584735651808727621536658266854619900137472743893608800734038307401009550910824048381044426806000854234967056656841778815045488705035536720073751085659379484134826028587074549145973492776666128207204113967684240152823252499839953314312319019760239273275717563440730411870793238115537049025847102842408040286169696313526162193283050971107482426021674288680478485542061372100776743105371188457958591777884360936325462398157507228169981499101415028703255862545319672496443533767500902084469114261078245379390733056352325205034495345318167146463547550954220392422591956957454355717604956847675361552756846219465486279871733340414300964304002333993837633279170671256079970438739251853182239300988125898532962692399630744439392447432728249838099056642123860547301205134879824903918187170713189439904043587722126465897131217034168924909375607006742925797957228963941330414321855458769042399456319799997022455084088558452971209111883691625888000116178964604781430863223200619996275275987565310576154797026388138706446518075298399619869451952966958905181200043675470517430873573310937084070660764045480954435221321282487888433280708726119359703229237764445689725773969317167431751754906629301422642284200741366805344011550466497562190589200460010754360105827418569799419078772357076447970457955569209619297994777338437022237153985611524337890573756274407800706872596445825134349439651185044610756193192532674735988586262098179737713921922950424839527317310660885739065499508648271423764407654735361080165238177394730321965954883769935354419606203013784969725593430308808683576943436274206867840659921025328182266278419236836319451821795514619048398727075006651532580080890173224583871742239960761861654205957857738475766216622273060381002014169546476527869638705067738878646780161715130880048062969547920318448691336754878092517340210617005222757282297068566825897060099824169144924646011698370785956804052162723638261090760730432931388118880035484803352309075281320526433002579609200663861661352751578149321707904279613460264221372400126041126169126636483950323962475325037068362218380660020124115846131202260677635309416149125241909860376130163133131234998603733918150479803375010834847433674818567780277396157266833266527967638419503432240890790818371651011579665298667655609787180879964171481939886751755512493856588597389251086776633664601867780298553906244753810031283907749847618548973718210382145371977833952598551416702214074134605751864886932303500803598861330603084858517214160601641947120776794600991859082147956751415991086212518294635445869903971944305883581908303028919137860414665569282787156296429639082166076589577298518279183836290622378489126704539921816590634369249761717124273777323059685683923493867619096978096721126574038402792870009204187051961243772554716254396721157089316028164294324242675942624243588381609324385377024565074321733549307956028626816534825195358476237115919525881649418255916602568245467848840946515846630578577081278516847032371025111624163810257998720019158377012539977886990492629746505844297574728890636025637901722395083230164453783124626647048967147624041764669143907094733515469292853916586309671857252384134009600320836951079463528502486348234065797730299531686858169548847868724386233050176820874962911786175845533607861310854762993177431129676106880019583679055583543714685055132864487154708260810736683174490450158322818199046536828055063566881721788381374389735585399151012237263324243271751812021282944756123519283345297769497614276459967697506636465990422081170532971020996693756377078058466322670066119330226597850856141850518519271012273449845801738838555334906170758811790731338232006255977822248565428714769899060123566020393816459279511175534433646569188668803712751928936151048418872949556545496171666082506110415067334326382504832627277778526090733853604006343705138442216808311388769552632507165294810009544155800468440993612972705259770228662050655170766450274879970365662102005707753817229629107105539292893054594995798907205848203748818836137584472943721458311876944307862914322556755733788776839993342170953845004874040545071541449465105611994349761980864928821413151592454846291974561158076365623785616849902325482567280699107288941480228487401202802220581752512425168272057708455153777862537212455423787370905527560489553361829279601633082428964219779572262413268322637758388593310937104870426202527000687083545696548278059057639863527951586907764400568444680467240897694588602500884420075492495993607937569232452830658879361167153861292762244959199093166159585095225689871267609063510742752799680095882888974260238704150891221232180689499577875612349487524465850943756433555248424008247248789896945756382690020755360697438401337852677150690999733351836835486151580968663699891620516075356555748142835571948086399030285813479835223948422220934147083259634520152420961225361986347901211066840518461065909959880379486600156519245511327759349255785551321650501564438285122331996826950222246427778590307869528753934084515622081417043790126220602166511570467625626250638442914668089168602785284613504966791687616279368133296132779685314287758233796994266675525610982214588752517668624921188941818520171238897879673307680450226177045350639207951642158481583547313000031633811534064372079875701081750450685445460901570022870621831175163389887756403120594639247185781250823131246249927769620274858456853277742804140358968310315437400324851946355149719862607680532131398042637882649693140232432799292239676134993584589511843999322911228179802758846194676719435280738522690157953222964720114397107652526015100974272808114307510207570311832891756961694241901206945086856573210694335378903100228725031578146463810958904866731449725474712553174167541422184703009111659348294641650917506885836464091061361775663240605710248065564288866283395004035756091302918035827157121296341045423769892841184156384563385489439664558639731724791327467615942587873219180116237516505299038399701725425040666199737864729744517515048537247055973527985404845135285987393670125714802890766169195433263558525671018622382961676824702833754260960318348369833455599561140306693948780581510773984021520738153464926855153268521437785990196927181014855125094654728090365265689856728378785646813418653126112815998651879932891186081107366013370933009117799027746950892010656950538851686623319346867266166518138068992275049406512456091852523296319404170146318338272273828217583443250816342945714891791613268641823108164833271762990601227557984480150169366031052066668473086668047966442534849582029840427029255618572475080802055720364228164082039607751728402816239374616591117334765106069823651060278967958235426494894979798456710040090362362820317017542276301422112563711190170989592855033424780837419586704438424485785280259669032969789213628639338020823208107190541211424376250752982074570629742514882021166224542690577957386823513790564871007098694314207873489530996735332654147129786861427937008735841337037468238266254909167261257903937290002608260690217948837213852532898877330990626370820748066273752642662294450247758108303737847968331931597530938187020810916147881590962784243887055353316631139318205792929953060205696001039304200582058088117072586012980608681074117968428274942688995069701462096662968395010620471840212910997159756421274285883646983331559339332037351452276641376274801002964977826934034018779989615519246004811270814227445684381641595950635380037135041687489082243609775679723562021721082063286891451655812159117761614888683440505458206894935110614400994559233179513228392588033074454692049155472968806998360316588934573638736466547907737301432605656822676255316630393059475912640499684886326759947287728744054574243986708831643421348963356302657225314372631735174226252370557683017540091424020584808277260466873744482368288716913005216687072588530878650983367107209719260492297961705849129612848448915480799215564760112679426009790315358686174453253491699024470169066596239226675288991660358196836808080549277701682916948968972938739294955834160068967100048415532003498615109976121831655308804392235353656353881431917580903231001968796527128307306308521587696599779324782645027928754410619618749498631935508746016451030981007468123614453263033175400654150940683417838837123986961856914380573133516388144069005120966713136377108985863411350470450463785825304233149036217833542597775705861586008850247529648665486898019868050623742042231328603968860579532453539742147279273285929387255369824953247978590608088625784030685209709237260984140686788881744949164250390422475971194487290334052552831173754888897107895687006835572522803536021610143760635666268717618705673806940082914881177957419502747997328050532894714591883098549035256046516429664674517084895808220882218782461219158567495457630596639269708259579548749342680901602212825545225019198129855002661741973900255940108182390438716650386718364039379428364002082467756057111796494233601955262851682503080654898584707463814662091449345797502687285164934733640858459582627669476253626570409815392008960679340706179361784481009759010036778261608676238478493587633372376170416265344828430782492490412690756753613862227727672077872489334764532952524787645597622302683603874134712993118724605324297720966221564523470309955100217185151832969094354582539410187703871521915806374103331525099285775942680422635295407453587040222907082349093943451304287223660837935809951041903122307869907305880614809375993797277936037035031384623791379984071647333110533909724082713143169852246775766937552897550057413506307799507342206791942030248361503619207869847956115426119634686552331263124514239353028916625422820648621316493869379084506261947489809225811779768166909633797592992040627268963330656739514854765485217283933342554666363523612336568677286930134350460530810048775430532644673467747782468817902939972784516092615353818536248496988684453825446337542972815941707645924498463285423732415406825827238282464073547434504165063340973369434247359850289823054637693029120378965539186280994458908229268111327838659081837776344683936418706193521148695472516970032145453431683379545440965051771769829932154573447975546066902496064197938969599826068913905670787531339238392695781101428708622312943462440520785800562067442699028723809022643427224327452741813967562736969884834659859444552970005514248079327605477758920959076527296203170356527248396516701753011594591655789742705329477015986962691151160338679189762056354520821253064828676763433764138653675761983338469229578375791707939895114848874833492740121483716767642962996684287899411687424348039923336676655195959848526362921732881234736999189045894391323477565906021768996274597467750187476026079506546610778861972497169102171342196427764449275456399941114500686809095082568219503216188675252246609276270476078640483977823391526253346888961785524954508991837853190301331112265598821483083503226356254348336635960373664581567754686742319584840563424262466027683652598672274832667471091848467535772892846720197056835844787088291192309463327437651161618863629205006895535054054326761810705474464717092767190807657495846150141517942824348290367240890019008986674572905508260780701909692740657610986454114096603769610210933332354102205647465119879954041082305682195429944756534700125325752885930140334340645906322228465813664883397177764953276600588555413023988812607476833473662344989313607543726662703701987530623221043880252717707460594653126888117115275866524949703265264121914464081957659987339364172465465030200854639355798588301699256564059020310877731873590698464907552950891050340114657854553100289495309239100672480100782673352200877412929206718130891007197057226957899703935449968382128947738868312421347351621945717617244918444434487477502213285574257891856704255205263033979077260695690321226942280734667077861510714852372549282002329011523590605366099524583871866392656728708919134837772610063475512993055881891731143669398544050424286253980175257250732373821662054597384022401322477341045232363945681924030630146883402559111257288124140478695784862588417203179707746644457013390241155951293689821274924058631593747888749315865827166470688537158771047096540607660572979572423951757404371551152707006496914361414523778657208590813389530421940656733749135133150319448498150035811203576284169988448889557114010547133140869862655393298763410596512610749086306916244153023247416702270232744846341333148167135522385353965547093072465019907283677750842318999612580951616437120549268466400952155342827073697900592084717267055465378394167887782264810445145598584894084861176215757618823206583283161422147621490913101816299009182674601358073044744351911308017187489169498610164216183970251172980205546647121346311305260464684852769159239112036900099384881204038584701504834102495502640248598934718199996999294968751788050937161214276918623062581977206598191610553681309158501064951763212260105029573673797687901735889288297379948124271612385811166907258956566852679942653409839694415783559423450323575009030468619165388085628621780319138819487990458148217182649383868885256666390175523365664911239150457070319582988157305757424117808320008098090610658598709782482642122615812612617935809935542416939979992676013337820256798334588171853564556760764130285719046439711495695417772433843200026366279303432196072389863520719303417605900596842010847682366159824318794982524160979694722854169056219603050869726326994366561076502655823427643980777773144302148418315180137734638590783087716086952910950072563082815864077382005353811570570467432015848370248730003187322688886914199176259405918119769254796420236473122621203726725870779213933565420977857392385314129182252865235036894746262019191908608975997153993521773991311571489105975650009784376663439047889227112653864947183992576628962918738525180777375353263685065114554479932838394320681625860069877548465641901879748090691085972171808162161386067307021041799977581230228669107996016724222864074154870540827954569579281344582124072980413082389980942387540055121813145957350779134026631004559355701056940591479114902377752962106674988534343495508062391929679221205232826211313885480910995926316370698024418616829951282254288490949898597468581219408402528613312248733951306442195222455784371473103202475809642361977509425512792549762235254553203495249140526681967900672717681904239039635520773431530191487519258195961141492414216046372172594216830379729961377010104251874843416234724938737877762471317636907181674289430425682186210490789261331214001898413592428120676241743392090829515894119615386764438405515593442164096161916239693341194890687776816629253476464710674129109261263793912592067518377109019015777914246309915032417313514611245370972467877079581289223191119479203674720722596058094340654781418171160362365799024318542195297694684479445781416889239051440723296354307152671768991543641419243207962439792513130115177540394145147797237480167382378383946439957281715670102064665064265296119297252940673055887124332135892378776729622395030242217006645658996002613598171080627049581060008919382014302729339488288359078130024211220505175785296693613476761896633005395005343023686248740649177575349461963575349379069982405684660001916555765143936063561768739770439462695711065259129958426806285131743678562502153289538890211155890317989898367894976690904977600002670275413531709032143819146725808910078637669695697465968244615709648372671770793506851389322581096707417712246111816875287611211229326298460698755940488069088992014924171457101073355332578410928066673324066584353634282184651680636388207835004864750288681899537169562642958315792858263075182185150662441046871282243141486269475982872209454803711397470102375679992495707862697138458189160759158963632577896194909315560820389133931010774958954002813468441650174508001932582408443878451330142963990206876557332286996897656299062507719751319923867285630949848394418053128087971298837795486941696607111049927444596516175415275495604050952316855404527437834597205103812911427276075593880880868771491434940961676441781318267350506634305959819347037903992893901683572489307561022904916276658727532576695186479801906689204158113018273037020218372426417013979445341362819826804127779113717415629395907916139928527495297063415293788113392904905247919092000775227804760078400256221829440675769924403369340048983596001273055895868707703392504824713173200291780030253944309546344097822015983320608691995497396304126619694772710252374750315677484212248204330862856054233256991682196759073212739320807941493535709187685736545324476531644778400671727371086823497421284514554783950368468187667376067338659644149322935079296890712619435431617474444740176036473310048675205002850146030395046335031283395578141928170550806372987259367514392540052094447248325867814649533160300977893732860869531236393193428455589931748180353077276536293602862891883885526598798106535901410289819670974626003392559068402806963342750883956236075455875165924275083569779680084784174985883738761225744890736388993822835963136375596192319921639318840741183065301759433454439999371193912364488807903769139468598534758026410487959992543594407131779405645195600312744265639924401004575384198796177402198352303826928188338919414297493759628297501041979385123904124215932655104162225094271599095003756875951988781852602290523344626740886461159717817204036668730277735656311986260012937719531465285643781577211606538007740456916699148800025473949740222997092314917605927196688955060028534946246114268970435467423097755204178256974408277629658699712737202810328263777126619970069372681792882576168990785681125628812403361465259273039546403146225254889853269513563259787579384182677025305234641211560524641674448715536334562676064362153357619882395699769548810049866191371622434358876621677153402533711726089436694839757768573749124863729088173135028713569219434629610050157715654194181627730546109504151175852473242891528159940046362835608382195431257564815154007144986043943126336059643643938464668997278443471493067883969475864272678066629891676746683054761037446116435568120345585661340887864067988876656586050171869778323324267574433492573701247138868717078413862664938265019791417430604510645767005229757561999716125082198401479598532104549140070623961370519753689322793744478134508104806685325891551706549066262390834924277431712609667372208507152760631299873893577665598809846656325827543284454136765913402885149713567486548424226579244452917856554963511367201307278674500087872688371891499985684997421890989939283242430729075797434757702934502391082167064496351898592430904761395130623737113618581027316522499071107819709398696012225858446735409113293470665611967361412933313393034495867505104146633750700586965425930110846221070395572077785804560917395528672031717936891618866842613076202862003877392129629445065642048464782798507935131382115190662264477931264563186978180514813478418726473198203325366536705549475980812467729315704732120693913028855196636962625435516125245605351706235688973849986456489421938934129472064671675765733980140661112323780641519477466797820006186655152442527702344415297362192398071854003721599593385732341496773910494058362790980374942775114322505351035068046292476190925724714146531552121189133210036095099322473693027961367703653295188973968486135688380659762083369902244574194953996007070234814396250203746798449252460905661739652315203765719642313821515284112319924272315954960829809306384391671579323507591246493405450087422227514999184619494589811826869571697077441841011343871589530132904581164995727812846655802310497129321192817617904162135686697416851622149584773588969153838062195879593910343759786357437591445348675777543421291320274007737699951292273081712766860281673898934253314119754006409899801538425127519590264487383240755280800164764427668190968989920674711602056636383336041750853579859214246909552934525197987042069532427797835013023446420741235447700184997515325369782173715709016223483910232641550204073062250907100743774546871754319710363383690849490935489299663008235478281033322237437658821444972724466479401201787883050714715466607178899547177454440964971523384076722447081452058311188877563204150044429875307935511496563948787711665447525392769552701629047550016704343809141010490520943495345493227551682348116562103790668454477489666130745488332985690619358669762957478122679302325115860840038530957694460256280148658386372970315701999892261327456704746593431582316029791363278070678815878117771200021392122313841778284659097746236553617783709011131926371019643511443970340310283220425217709043492006945204748910832399159595264636418550429186450547287403784238990478152532532346477531623021829716755088384037201598401308970326392049072993712099698683204740781488288480376118359814334190643696421464169489971151496416033510126526919263639037828322257857709772244115063001339955334442279591112701104684627401668921025877834806523082712777407005621980615160824955335578309740183360339176817483610351656909625312104454599508837587350362169794483347198077928077787651648855273759163289806047965712667466604025317678337719973620032465473722199907788608094000463405009188592534647129095170576328626187806263521527500341980373670060693902021307573684966180850062039733226755659734546618024615233192038308396309416052573111737263493562350582170944528024210715583163531476819317380054703713119918085895288933850480488962361570506475896194797288423273908066259251443184583203668161022753286695737394942717355484281150456563258750142470262428761579964687796545351267065027974195289929643456210085413163646871866588630645821428571194246929175717490740882991855896894178321722868667602418270006804228819545234885885554797604665835426722081316277873390616829675240615967825666124596368966004511820698519614828730190181944324153439820248757256810062782564656474261672634642450431315675659421870148561309576668982658576924601986938450142978091792342324920295821496032937577849730333103072793469639944870375032601495692219426121578103920132121746553354912512632928243404337040791284510389437444707986639372667460944443266799561489905984187261023044565291386015479908791702727826058248264871295387114960326552340897593209718788055362698639327731879681901764377118116537553628779722607675138086244958426979672433994653651204459492152203079576109839993851096559112938184674116653272094487196857931837463927882232705073202423938383660817134225544203526745557103300125741835431936109424594123979608731505982802684962217050605349754613914923315266288248441198965100514855199618699770767455037002398365931857997632059913328959223070354746487696286334840953791108744437547529714896832346185762201008562859646459614567049704452061104188985025075722465329308790546666592142879336638335955623876795936722994116602754465305955855620534294101697060642497340328864819206198996090222383035641209735543232071184010533046063754888414189688392635298932619999025485142826226545149612399809030813970094269522076185145904433869091541616923926259901694412544890174831539398128550861157537519596974563330822941347577079714457001830209963129799877700726664838103473373316090188971402233540245693020686182429820375581900035287713426675414353332345397467281576596084718789187317482600463102500544093830556411575017838635985997042715178767113632671372742421865693637353441238238207210982762760971067585296817778217484546511933037789343982771780857947456982137287325407809879479122565455951173563498244483214180532368319181831511553863926443316902915543990246102987060217999207363609148908802223525039913395024154979229613690923063633722508959234724871172023929782666623538801143460112548919724765207079235113132228221878871600475442059368809089489503041631934336996766707736443275595970750823628965048134829426213963951447390251639392140849895492396907065037778962509956605171937964329746973500498358446466604385267990716775907638814045195277092321539026090388983512900864281632402919364407412747375317639019314222514997614155824744431054914382049780102880745994561099669880088214940169724798997054241646658637819248791534354021974453361259156374534728429362125284632737748563846352399102204463519126893274859064369541953271666279745256514369375582494416741837615241365486253707471269077526329431120196150048998146288603407037441528604791198807959673527358914860888514544950773173957428526243817008939237465470616930072126017591920617571672206592763665454849070151090464610627560787385433763447028829502007265553150236660964597258683234209500482584831314525553905821761424468772203781419099645336239456982648929761463018293035448953413584542143238630909669633424427993303318752324618039730104508865166645262087464737873353508357219189892954462801296430652899609033400251004804118213747450143052198483348796551713232586831786839204851126362766828182134869697634007710023541118579581630638791229775970562632228038415127902914782715785646494549131882568313078074151217235334708290971396795992547148820350494919820028339418043040554542961814363141205840159816602945267368566612063834991985243577659215450586455760990942036956316053748858396513216591229298017152521165175823239262726553018848740879427415117852903562713786983850232911084812861886643551829764278131651028302994914518858185237904319917326617524615468868044596611245897922108666610502540406158559665589668822791232850278598030923755216728226387214297632362365367385307164741573656809739042451778607722299765083328005852356679084927409155104522280574436146275140925548763510317396651135453462135341611482819650286794465439835536333651036498508344060676484049400622441697806534319158184923232726756396185192100499667911066214582214601510605504978089228562048791579903719400052959341755348250624416353677516953872344751193197356453525375042139228589297842442294207822949942179349891560419415318386598153060087322780520827001543251178539616860032907510556403204285269546643479196196316950083882239547477880415496904554161177019360026863874174622827986115265893972136957188800199210504683820750854682728855427912860532602043482815538165446111341793479710502918667218406994291583934202202907229263717833461744081682204298978470420000939896833639557738783394006924612013736889882980139937332534375898402468383725578496320004615773262843832796533113191535288275994811767065227489645739870204545685375592768953540940327154071014624929255668130770763572138184424209794502739472568226322507240962848922806971764985507452700905012038825461401603789980815748773512902826418360871216498246950625721973592301199392784511881021279673590800903044260088572176535568171974675155631822759532297346665065395574796836677573212779449704875042876571322129828547121981837199088128760449856910580904868492631003177051605261320948604310636339820493038130076753455269775276481817806723093936849711965123389497035419999888650122492120130011400564635225138947294440161718150632872179806253709216109642199356383684301171791458113100160826393669250662094199953704760513586648070376523407760460988523635755113303715207588457890935250676177098210315541205106833572848395837298812589708163925174307226649890332979675903098069028111181221197795852714954021247433928403404122283518337297342234743986977893340088126852586191255090289310513414215639732072596316022669038107044793935488108691305465075885921647003078371322697250627570010958454652550992695072422281636475606855107126311333541633656355160430041849380647766801572478684440553184906503986729275924129553349556858995119724656515271582889595277317422065831664926791432597844567926876934736289497597073014430513783337499975206537663560976260310684534904095215014369139219124618515808220392721382892368827429406640607306996146852991493518920652110370704427226090914832854230374844632551119657593065642578890948283831747824197227615460226253652239469942031247875925285808302834139651048968665050507025997599491827756297608610374279452107771116106796603201229137069015017201610684923025441498709830549774168280527743882304361981858316644553560761004100827968711868177510340361387026610161367557073517948027629904253947958223576976972701698317683547780466206463442784200735004940881193959764945411915548951329378577470564160081278477460914271590565853715340522576314002297060288281785493559680908455869513805691877821850448062848277798960691890759826072321910520627802761745502698788306991483251279119999677170707931719660194882124296600843152593340697341142761192222330899112751324289874107822101781696898667162752692436259927648342239342822381782468833548193357926610993060558740090239374875975019570740888532446398747320837451776763560386891979206237033788144501585186052583172386646053551043310138870685622655073261801818588267618654840569437765895129775529833151680370016072337613239582906733314288695398371809864398678266986227590443367710693139420489710740838159713716738461787674943651061908103965606870539463141834042809889963638809102769811780824483813860563338645672186542854825146704570619970135326362344056105742107762396058158966321623183756317127641424645045457359381849718909354414484311560207527846969311145105492860180922102256750661866382989672062995107515107630584899046342049601688282128780537610156106838990685358566981051457853024878384986859572712011626284672349649528654649033673728451466640796096616675546409417082605685108849618089497550431673151349245352576981344409742581895513152649767499972233856391335993278204263270065008352212935352736691021404058972576834174725739782139145199305667478371381869593122489381687915668063625598113311902389867759357526119083582439838817752050759254047935582977712242594373297202315789893605941559469018743953206634089826451304163430591971733953292104544008572491131616776813845888798670567155727713974744959231361724325811158787648069421604904827240752815094853448322536991070562039790616124202934792889586165936918745147439669113762293280294561304135937085381812121699539601843033573751315280419992829066820068925326861900367558770338874586498884792955628934484663929114169167069727676107528835777986005344858249772506004876840584191785772635788801128741325120114247178067797901748210328644829290324894218000299333601652163118562928023456679986062859103868518130709243044075214156113279576044043050284679241272844943429585982100582246157336244986016038437901937550513548350118599797638925577419520256926803016550480388098167030214752741583004162701892209158500358117949491352445100853766425033393222677564984058725540989649477708773842563393297223583202220557064053219643278769671661543773282755246786979996215948850976204056041513677189900307910276639307751284196987818075876239818998276555725738481891731267108174813259648580021605317364383040673386126527553542530691769519500776902585349312355532072183425151163544643436410798663835388579078542169324504994326222681053284549986641474283685784992117392230915632833732875816713928148819131769997870253081425455182266139311979476942374517282719849785870549957808079472081505744103146656104894995958621981120167458000951356930306826830614580383491287756781219783509320367284636289914495966652893461669193917694540575178024550565831205266905823879178414996145375282776059923614172918909628190970849885827801205594371592477091748149565933969267720790816293242277082157392699662183490901105374759572242278137339688925235857930792649639975638417336385040424236255718004197660863156228455541726348325461647727326725136835582023276410215815494525797157141168452587340548515214970886405489672967691343129190492147180030056390422356910708608509783540707113874302978861090588562523782739803890976412999139782300115603032888823792940480638700217262701347641381016674957291402590446684143337315885112218843041206396028985174494903013481364844675504528154132935714554844704394733610760026720389339280720426911277113918062341548480151880748157515615551576852269911112594363715654263806224855271298603687720740500538198735587784970936351272038069549793440350087672030636881643162100908408805435464930679508978936243229156548935188371751122631102424148789846536493691552414566979176407830114273864709391174257384061463259490153596680232067774405937587335604142649119447708893538246416424325491485293907650019492355843332488190305288537397546038520916864238729909250622949479782485097123668449696648077255919793783168630602340229643211809152395555728960216027818734354568948562273633337698900611093615870626994595691068143785302994230462200322899377064557978448806847139044419769817406870362012323869062685909113578024957075958317552441970716351400031525460861957076782403987185606476410586950129052508636679082614351197291615944701218108609510402141883798819040654405978626043132285602507788071677498459595922462728951491628489530929609232325235496995945082063291049361111333723848158048684619402384162449775728913336752894604620381020654251984079008666594511293825530728904550303658855954358286624803685370249803043505878582400713847863873190700541288355211648648558517678134696180230889994698300055065813244368040190376847761752521807636703448033474264697699699084681584909545113831835379206581429950496593947706087537059148104850765137045777877842221655672760800962506138124100011854446774016174764674878256187647000492354053258841428855112811658735335976493679540059031338313056738407980472859861409441020203511257523148964946549524702591967859577899441256504521301015820618141295321899481851103516178511401481647499232622354690945465469150652264790194398748020685909603678805154693739097947210957425462493915817037582398546667989687877202418627867418975772582492585723991614687780846665208865766998975793955222089959853678342877372368333460576526738285085828824322231371288015332697998095795619366744676472075279344051487678031705179554244547722917076267131382171455858673111488756933971178649493902999288125227410168399383087115614240715078570258585260428382765814207149827740129822715084615991554069407972129368132993844208964607775316841522668327416378551554993369517322464842600011142091401432381910174494737603329464576581533146789028366804982714712285980049499278640252177998633279516584137729395445163605723781089056383681470997232679304883917441179536752039816499239551684432061061879256354270050618192292038836347627774303103725141899519596013650042496019219688667292129070310351945132127082466921228988358835452801217464912907682704585691807058478005919501574788406543580031630839447114131001758620424144974280705228922499656430059955351462473858420378675830273026541463087180458650717489025526057340813080633103340276119193853396089499567955288899503513673200281745127907669752267104622610285368832149194801638745890490623548202340807363388355406032047868035537812920747452554763723207732848010608115250982152064388113740789751112926004383601848389152246258417512322883076611525004808306424158544493286186079115784162406755680825759517964348326680003028993651129088106640531654634087059931699484256088566631154435349474488870882480647643900587383570586762785678554158170637630519093529239174012880848298509429423762641170476498225550031403443749581291366104622869722688805213290392455858893055654029175312270562425165634982769058792689717090197133383655929317362008637965207871309248080090696606961250453109128074191211689389688322698712798316558211008172030287142954190692312865820273533946783979445637385367576796801920894552865472151643542367712005268132913038964345477993766497177249648337617023396544758954423050889855891978615667341662056182799135405917977534901298870453463358286500373996797895893817968776903999717261395738880628811239627569380015183124688474419782033894238892783489296565340868600124935204856304703494995636116429286603879993266157713432322894602816137345322851140767112787057466268271604774226131526197820398212583757054590272959456342241439660899081345237653079532262020295137686758675672387828915249782043333962367434925888648301940040580780447305723152756164205596672890772932417006325205603812029026744842916505795565949270443441487785674324301967703258550730089654662770006204113753161522967948228871741494251266921325730307641140756517033292030647042600162932919310120754311715764320983609169169089880008482998373522846093743621129558164288607994498451072496512284928610508236638167622425283640156289351109422333168632348703364848986207181729004779500298466771441131832135377269904010067933044590577350668298098504396329751789709685246813486636440201360376694218768079881646715216901807205575168018533982165007325701583249075729695923778883790071228910533620328039090658621729401379409267790956671182273405662383236865358784639170385316019063593269332308673261634402997294398063715428231181422755266941659195879333903661080442897618423098072864227025033928684912466167431508988861164695436844575854791343771407086335806214019656409770989895286569043374298593921290721069406143294892324052663117238571549423470043017595897820371684323348373182707517011309828497812910217371036046245112259749422844947627024893946195106885953791814471594067450250196456753551448896421139588420477043071859629538018806375385486123085835733984468898738029514894349135433804130700536725674719652501100327154767594261824591167518127560042251752558077745512500072245101856892075939654894137288252738122848937157981688859229203031243117208795985504185581185931127032122918106072710276251795752538696817355737711582010654177034322705232329447025252976263358878759470121490457325520261342339786578047449702570734455689647863645703318032030866082625813849839355691303222391093993328262142269589827376651401070853545974827709386309636761856269187773399663790485534946630771391088804508304096055947556155049593403244962015230375007791646702749967177125696461373737108744525967408986654152012428203282004611791406133775658591996938737720310914483378078113746429216066339732555425278293317518605062045849696768264402242365274315376145071906455476659448455413384594980718841861775965559933793755050088871052218090767420041826648254044514016264857883072635123452838898274715305309144651785081125230468498708953298839794332889823709659871886601594634711968400946752294162690886749023395119709340508274957171344411254154923313725348909778042186941100904974079107381047825147138641961989893736798076953240100674787264589626391999279969221351309317232193921353533236208021823995182273881964030947446976480664938080862184734621846375548708634822619781556144290841603976748120435622530271049321604562693990103330859482988316736582205895449155616487177299145579529962240985337167236291310676699678606545532551930240434873470328017506216009403073434978506403936727975148300493504513649694622351065025107580043944801221797956181915367821981257734714789493196975934481249291195265517908702587927562521287796418719226726487125979125819789949757023518951204399418267551776337005273192685583313294585973667342110612753419095534517439113261512018879953880159579745687108846996922578408129870205081791446379395208374337905539744108332167783013580240080478392572158918787304353296923714964046511284617174146327812471828432608314158853844851138951031734800164484175904678677468312123499828751909963652107204966768274010195104024208005231214958531414751312676471980784475741197366443022291424224747774088189614630424041504932049064878248791523183606214064378567269626733351925513068168805194943710199161782960455069237317923853068456001562950829137852628600326754699092418519213120566656203709227244370755002486694958502601868362786904578956690498908223426788310750276655634962117700075758979179399797748853966915116590112631481737311792253682352000418019879297505171700527948606658301319746149021378763251545495703998049917116774171790760436809805153148438997161844685871345945203557609193459227413684449462936892533345005522539208469446030226219349688357209162273623624973916450595320176833871713760055656432957992402286203502839679862408381931667624022993628867289799917733632836116180216841716385895109224914982646423226837771424864765150139401834542305087140631174957101455739614168706781914673991617360970563661108110877016064652628950093887400327633164133640647032516678591681914237104836990233511092480416490947956455554608875166040058477638917194121827376460008341865562301148442194794205789262304749623627957202333668744916101555782752959523924132984931374004580314976525331234680902930417384482738790750720679098968769548239726274226515957663782870847281873485827918567862649971009643629318187193412088856919990323842776287776522349698617766226610867124132562371564198933219407767441090414138659940655733106014365685149227691720308578264752375103133812953485898218612708486310778264502107341665593938986075665905261500078804283339083547762680241046666277763180257947713948102756158155565916178729212972053047529365345889280062284789725528418726329060146404934762167416224736488500316260636863781391506669622911947676443797073098284806313923575975182303708344801665615698390217123673925637081236347074406813697488897534834860614946089362678007680213042254736188973559612053569437323976445839974286018642191781686401652769864070507472928613799990424005782656210030067327417039695376802497707246884762742715621263635289219938797997670286908812599190854746124604557794870742234475175484928965000509989699224953013591142275906802951826178166477835115119446791287560419891819632618161023116232723436102636969840927754175686428373815522730073780137852373412670517334677815170737033904386238819032346850966889059866759573415190189810786819442514560474309729346775196628863377435432431107880138252561016539966042319092947693825827708368086610421506362533389227042183216042633904786176486763167412607352621408049802614302069667640851553433699503726364271495697828540440086326953664102094564780994330276229900874233252812887559468610090134013354616293613858289037007034179410955002394983556729917786134506593418360436495598653842868349639489364818710531450902619381339912205181378763531750004095938283308454731828309019204048458979135255913291285217669715316574227258749241782506976289103226296133043266952602341074903269785428017773701768608109717110977509907206559276291327099135602469591474739027737925975580339781174473857436092125676317568458732180646939630696859075965304561641054691049722297899964047273813363686532467845126381543173056206210760959215723088501170474457351432823907627146529259907375435837351470019667363650080835075478885943037661867352218170030712469463550990126019758464491180761877493834873711041483470302548936947891038354409889546396784958848600021201054197457435767558499368579272159929117374228177336106603473080617994259879441289611135006988589020303001833621813052341539461672252535105391930534842814122161635909291168572810461642765636076492137913875174885558758235423382352425099049434729874743733598405492357803597611625990745870560007388155715878217713340456360371888521379622454686403069225385800604616211619689533790553203270761562117371198394332275007624491091259629505331552677583231206258480777239767058144492249872754812277441381598874910757300424615890011186166195504575675599425041572679169536707804726113559857068790998226353769368653190911710049790616456600995092563833948528762270201786562498070619673988717144389141761280465694590768588576244085256010005555148946991778908134920491372982695728412870797316095429101741890711774923021271673339441839925888443708468579947212531388352898090061023299189408197386186697846733142291807916110972388545497389000167213415139423393488581787609248301724817387572053687965289237272567019562030685444353816374746166102774851558453557111704612401132314233610112287315363788692099301949897092436445857390209150012668539380779325209523051875486051660152436422647745169904962544050147604616205878181237304452031493468785837607095635982761550816344175316145684327367118181819152576704348562894504518915432460412552659293212103229509174340038868268447488513838643257890567259892443027583639867885898479167215785197365265378307218480883897655648630358463493602037173745806773624656495505917738697540163347263835265001310517150745282574202171245744366359874518188126133221119666841572056006233573846831804615860739785054098372424738900753542670931528083954149201133081761467689199082722488606683214789169208112423356451272179232981226510325399460900360460029768938684749691792125526563963226937188453405792695899965516267924322071397428811987501854897598352259377317576913913405143148184009360699609539687571256955801726058093511600234523410131879820059480534374886349403863378496271241206846140248261892052676052400896795335168692362924481378522928407568238985054126290403539249574489207429080425765934761624026634222706360643989416032339652890776582967504046106659372925280537103060281266028455181319878826700437187359408534715039301261148751659881765240946379841211929298982063929128106369074719238475745682842150674460733376837407864601385569132296237483568508033163268304656907019114675282040255919778578835179680279531082957941227233697229103464274392564018053394301096292313190296445223730214615495552992227521533002906749295793879229149323371322336953145505763937097996250916774238784571635570992584952649386621007934754885382880934050533825784681863967556948239169296726435878604178191373958765937136469148207959254766399105211210134683148869689963721857461454853783318398363785818781195123887594494695345337609928763387307586505596993077429717521032953923556740079432234470889634848791497348082175890226251213455355530720643023455641083722723918936012200950920011979451294208579090337375233323657142587504477266777747530963440313989645775353807659037405462566712708157659586527746470635094882903634711242550630306318218535725822171833796540576741378794091344463122711616767848037130296132628463622339109177840392832194974790011220294026948891749984186079027711374461327160111538762918893068666261537150192590331529773723595009756813594906878590076413357897527940074126581681932027962298945147943757830137709412855922425635478653959495395490350874266535505459735509441102456536925584682470605564789315640043101822160895340657972981737697405741906277658903913337201240288717807216629518292327241536946111113265947900592267374380834178256304456579983556151868099104882644201981554726644414919875934253788926555302406020839439297456664192354879083858549337454470193491607455175454253893620428409593047763441705605981568837830254094651531575295200911549495455448682057372596463937643915272614330724243601898358351559981462446591488869715607078850148787463759599815916823353280967109654160200169199040147387832537874795263829435916254356304927240896155310878119478266717754269940840819560716749940573919863003032922049714095196054815634869187484538940220685061596483247360507735886257976229631806451484139980604408395702884406769206244872111031406562248446973813990009407831686915409824591043147841107375706837412277495952074796139132813911594857221040088540641570226497331453557145412096503079473954521666040856222294896855047398411045895262891428463460060567990002079991483211672919542795929515602487504608188084028494538005114588579078971027833227690807660297226528720950001522135120938018804696186438487811496345724248135469412726113559926932884933539219984691563770741956690112755874636761680083701787336658074414809922201923023845966392971743815017567652865819441302919726615046833221494122179867115962297364208177023095471980508613287481212308093773578395682933076258335547863027254330383251691812416433729065414343302271582469734569442265076545759950514183434962748917370879564093071926929399829974502063223425727423197679265413663858456509833735158931882671438749295966333320416392731392296360282966381494369071349950278014521862483423735683045950427070270398576946823841501874256979569818745829042248181298353615585521218781900057167367636372166742883966824802319359536014933267829760334051660605307397458769828692688418074056055607639180939522310077360322836046601523625246026767504858615345465332906223408506747490812071999987191221665605347362461680844092820070317687726420683010901082205361851345618400282397910712862998965042915058726372489195249999358835292985332245831939833524939284291552132488738469101022986248028712905346388379547578789966884165946677704365405347879554917142223212598835986369809131971430796637573867132356358900576984706425831313223886243809778988668341074160198163339164427149359647739848328943347578893590296701759942789141109371624127239852059736364995507327034960497531592033934766871689634726887756455357525140006005116093072129196401811519771608990623633820089484184951466808884413780180738619874314936125620785113847552468007195019808125264338717777268481720987711814593744095773001129017280402606862128223894568483896275956071838187702793710521581867517543803085666753951138171527849560128780981288198660555341021438798602023587284180707919271682834568368690370314682123044358018221648747561802107319613828480130889111214382809854181816482603076491599791526897610805442175137700286302482389623176674370108864550641124819932883252832321989770000980185894031804571015915604632864092270932688035533921867573563348956872916041644556256551349314862468543242044797519912768275772861243144410949613466839661243931206553229846058825326070983963714579582996555868326058739269592150756190130218687432807532317730527939414842612222837280188468004195095213078841929700703367373902239126465924308879750514580684189401535656633174575377393011395785474608835764726362823387503254925631287860261919089851730596833660394380873993386569347124253965766997501557762611199556696952505665064251907968035692972656969855507249554925337496761310814385204025266044244177510276948114546424232158569184874761471715186318326547520696201008809419546989650934229405242824835609359213209212606617500365613637826046322666005397906150601298419921675716999709214169489988676093276980268836756929774365608741977251209902917608783686730913896040188334538278807655909418942722875706427811315772176964780989137715709124685785803430635157493905007281631707056022018895797333954196346860938078867156267368517644318488865746823992682025489170738105277306635538556366913219161988122024436951722769190090188151552474953467383711552158027726161184135344906619401433048665367675131849644894302995618338555442175248798514932227439295714730739834008560971095094613080624400832389779579980937731179568280381006410473117512801189677046308253247982196724996971933697994820156373809893754622155730302089329790064016903815868770796178848478594533402553810951060980678533916555174494004380659720011339383810102239878806598539834378294611676993080613137979302099481489088568144268435042008402794123392222554913594812364550692511844098340820618427855376734601183674063056568499115017275490987744167826290448342269355699354825133872701823067868320401359478523633850590700748287087831921563070208878096036214248727652686005883698120857573513915066546149269653985354347229973434763551574726409454001404995801558542047286759657602745366194531559133388789059383478311041478814041633741803951237423124580350367486080191626658297441787353168187943534912092294766281844932102042060702469587539971431216093289242744315690425263786354173475335163229243859917409366598327332058591141945277739815268260422886302545377736374835850225952207892966704378637634697366966361126261112922609136947591325098588672853391769857568210730103632874604136858498661209608832187142036969855665934667078970310707154573010942396988125846984935974917302306622750372458334337573129689872201852521880008114720912275779178367770883868475662973972187513329161458084925606512080146338462638161013912299105727059826309496522518875269537568801365041990446505629214249761814571738274974388773888819892118845442707501985703481932614072674409329986495821337907579607759089700868945479898896919592429982925673185674565474206974417882909872436825487389630784377936815840852441658937461816332729917107932101179936072444453399882851432061239634951999790574801461218515132475989923633188496948028864278536962943962769176548168373478828496567749760467004761954200380637927312283771779401080356251257736146850399835287187980345865199735802774556321822784723046190271849091662703548106102593532495054764250058596922536031195096142017349969305764676103214665585721362926863937077500968878170335018425951841542750536012387425974497801598518512933609252867155864591154304854116675672565906559448228685368698932174901286940884952229143998158822725902195086952449007192848021233659200777516696456409069801466613889011127218160407725238157391774836178001443268072059529850746709914481397401737134532523958647173887969540146483712324947662302746462614953228161220893786287417310104533468908356396579785922131497067617404644568189887953974411758479791493340489712857409360559567874380317689405315095660882756977959027859399744775872751608358494467047482012954724353874265689561853410317002546279936114756074387118354461737362029083434089426160881495869763548622234472719694269397983985516529580920563960872486077900781947821296240942110173089645376320035522817957713314658471574507915187130631496343567136977304001358257716286765582189488601012171603669222459757712366711470455749758317221601349262448430116928299126054864329398626420303574326659238259870811538366211747050114028888123490617180480060950473926028460449248540440666283251806638453178478481767396729192251145249098861431004719550668323341740520775758457919637988057431211970934323157650070350910827427444856699668334636714551912222267387761079290865375444715547648580345424418155729953813746136575594100153652162800287531864348917650866281474892548808869931923020625034601980610559877266327837971043376587625677751345795567539985807023936800662707017430024269455395117161176790983871315472037375766366209751581665528142390873282079662701326654155418372884158165072570178007241831427511880929897752362471429048111114289123674659774262629607498625654767185655871981167463149171293361523918552262047688313690686774652926301399836617188793093812514977083910548463108452811526555521589406828511028149132478966033058689764718636058853244888013763990964233259598609528889794236477690316717632060545145036949858024896675043940591874984141708636749941937118879711434442334133288694972296207577611063261359559918906882574105242774172765405064878329645754540102104522728405808453393751155881865477054826659217547960806526656912741495660458754892025051477974758758981539337783835525322198254024281551524924766394491506471445772876031597241077686294689425837430348238183449280194356550699227581660701882052059929790008414566904543315366976883321833075564052023052537292599625050136186279882761642890061390024462949894835609419831481851917851416240988255097455851003990645175310773724042646841387183100158760219551336386576325450169664360772975761967882696766802682964373525134764178203443199919802193492277662762228954744885739719094452998065760952912075837978956828078020538961278839900321254646914445270767170346110551536251934700134176008451385410171354318219396028453536233874142792072438447281808525169281149226184265856791171862858586210123569306519657792516510817348178136610169911551454090666909694564572637743656260559881399293251945250002648609934104362002934412950335358053517156293433522002034115056369947875116774937456913541191329474300874222176014448224309718916192405016644356974583569024585703666248327002029408376912865779412476868219523847764050067781580802641351826434254383467014786368341137153695758542488888536889204573954897971051763476401269978251058295185010007117061806594658823565685275717037129783554716115421100108146636428418276641183655883720848719962834740334339788432890398305411906796303210696047364948329517044139100547978238262276188969399084155235977137218227331861022769328142792353884888743010875260471469906931881202273756502066953046028586588028831370663504361174389926043398006229203147352860728874111199872055283454202160635006252046196411138509555338752288430186079842953820627494704684722667046123473649779436282363285664556865511997357143336118905485377722559175118057748720734229893199361916725767818899987166385323240214417600687653966503862908858236572574013914062937222316446126757697735698767324709690008671952107309284416552540986366175338799973748243322509165893363708970593443794526595884705006345709843678380115429167853726742562464993325802743398057738319014485178465254035692884778515948972934520237152659154046149063849434043054006918090165343521865964690362508079841539026353866408117924570319426954543478971451674560911272703881501417449229881772935550255728097555238370502541945232132860891298159264434942165495320680135734876920246696809055605080010974523452438363181917345829117024777958594690454921289530510641400012102047352101979279863415573138237009811088619722567319319060170075915619226470685278332299632420177028315388952335075269897320363478477260224443374951504492653852763450624750039771834025667769408218098144225441210361107944139468256409451067123582539541581621717723397283513724799505601014278003700434122313309374404862878595488601599567839887925883452896977852083920244762609327216016980844760882730466565663580919026678382980598044496234886701795089980302854559395566667994736425845504404351624539580351119527686956800338366022608889402243590595477648275866413214341753363822562961247580012329578939313320430308806278006482555162935247607450311380373401018353517442096141757773367604561744823378168918770557527167576369779885999043756059616005082747361550019083107738613739235907409114625229220972303757829346852707661122491437862668447087492935442587974484076915151805539545299657496143856422594352010089241365016300860488235325071200826459233059369971761368557079203823645763079736440244904001566624154725935148347051863230241155697311341012993690721415231080317959500629375869164496222804393917729348070906486555637501494059437052797560358733290067028071271516457818748215084348646876956684106242893683848074652440624493945320808068121402680535870107108227448489705755184937319708205820107464784872163990164958318319614968529669604792254722998767932640666687111881978994355268792310055824358305712714042751910094825668823209951005293785346621243376499271092867630865376301933685048389734299351726426751687971454405325281483537513673892628467477791478147210107678716726914458537582212378317570392907202728658252267724752640046475609068867102556930836640512933048849423294506354810881189382525475138880805771650761689689644521548601329172256664258336773957892979746933976871881453824268484662533353997454468167109252257456105375520005960887852380496402699413544005798148788731170635708096755377226844914881132439486629697755259308259538354425571382485491115639027248281319255081351744142198983289236409238651377751517257412881658736958177510934275948753162006973133432839206314230956090251410464073597139288332215453531295549914187876104972878915684111003960583523879812306611111909124616209621833606176704099086662383106324534693324317474671170020580744265118370813966807857245769517070729411298058464194332588406320083937552843076791333130385030587433234713220920351479862221464522444752307461959350430160213674162700464144642697484894827967310461553453048771320673577347042017116698988713776480293292060618913954860149306510642072584426020475125726104719020302529009491290143705270777726634145855837769352781511148163624866106167643670246117331341527751938769484489286576511709147229016190903134372405531846950089999104881425369813542471229245822190354187155404511621230528862027292032818992342530748346851004144435226206639869811362878259441251508151308586651812276016335535853729654763693480804108017375738288460473002013075128449917152504771657594414107913169786723592107152653200057160995192146056828991419821390003768857882205762008017902391431423510013183716616885628649399079730973399950419862658570180121309612810652262027567183093130376175371745195228107775841008222544498916952367681691269658157330689660247857325303659281234495851902405976295526902549674188079361845919745783149322340260143396241378220611454052291988891004003967021746022384185202753074901060920050156503140696668273053158824447530124912618873462560270823682451877054945737642728099023686220371278112542676620557181037839842617552800468788094226183211497267138986659826973427000470743981572167195719999428465027857939108776132486689223997187619591416988236997257972269860478423050518911020828440749288294720033031437365298184334403834839036400842397025885094569432690469708901557906205213382429688719214785536614340957994723093660895536566135891371862070073768175510358737585421393245047333142842430387438881770296878167443067613895186781690090746828843126560827823816972197421071783187284258145871932587581068091754908079154870400243825955725878126514590764242324298156829194261484297452113695697431660963565512537641173931843801463745691859675269489154816451728889610668747942786950859673506084394075184709702876257424262011837468197004698515577200264402787403870218702201629155827469992107390311403873164118203992867648890368232836369351238210948507151279177678060956774146177668974469457990318076545390830689739768323902557494534240987367298855513037242405907880670642852928029662585086551389443605088802394212128628486203133671299521329908957934517885689560095079997275042067921372635911999710251643137870138861523918332776701336413026189276999332422668565687713864168045030961478447052906050137231712007113218607785202914106103068685820195843217398795137853632112506728819164676838585087871164986948081793878026635219048947538558507686885485152764377827075235680066248307142366077290964927282818542585828125511117435002535195281588643314005668303030960918536937757991115185084089992745718762881317207426079671958470753985518905301129349042360647702588473912710460413610029605392710666545701568279696675207425520484327159273326340227379901855995038087420484153020205899429658843471368450861932838115271263023437324321741438672739465537617814391051158662763314499690198465589728978505071313562445997150888456447642286772236079951470684626058806175241823462631841935904536080355259614328966385951630634087436150862331925899165362337883455241190170931953438750407231946407756171455644154563461505510182486677500281098060795139670397982729719524743965257607412607816918764695886854062287228932338311700738590060780958511250827467629188822267831868006998728426172697423708867746764536820867397540525643221705709077112742885287141647204119632630148242352591614441065992270893449769629209713515241249763273028418879733772672995362294189684283881672155956067930416297033521050955684846747054932770793213994150269846469859428192705057228150229446801154134439125986822254364656987342751952667996649619129355750898916147265628185915118851394024993806701670376071545459314480275543136041647289111743438508895832805910002165153746435092239922080327082244106687604365809936863952116421843890153100278334882002292311083336784932339975014546877470225498377584467824071585229903353794600210694264194174676336555243889090625171020798992641324074371361324946098815163897982207059896907008257976556533095625782222025888917140847579659226969665457080084712613706506078773488165172707932690284233798859463449422834218551343069691773371447762673220816237650528059434744801240525522685548365364295052891428000393242881149557830274840216807313883154853663143949032659826228342195246563780313766975346709398251664610050229755685471072944174247961198639772473802295915476406671991927666362879108045822021844591665538890580681313446628140176618008412146097475025733878117319022342756721877085923307635934021259741310844481508337435036496594427863493332575511809152881623988876209873078272845399994535388874540781847113551004521075716357844379351458233696527080934380650315563924235589420435504729317768027893327271445532362726304507786211761026859885774268472550014710792454270816612123159244405998672379619526447408326969551746180145881370471620986278782532299718524182604773811319442963753618544529216873119341260033637747275173626401821691286817242694262686933326571742421271939715867975980139949528244777538627824846685021211541595665091046522329413786927438747904783409713720601653687292238934431399490468216131098023584113885994629189895150899247508001734486841439522790189971978027224968396337737277131210158091369147305653682880204526339615956988600745654778634772096917860234525121252129845102291549628556363420895688608338674087644840610509568198422955084525758606150476703808271615020176101421712911951837127899262294627073215279016763672152291192777041471396673726311992670800733149946975712800068262208426497159065852076991418741947182809508040167410153772051444107678257295014881424391509792087529806579410870032169996648404737920748389441821278425628369702957787705554587483774097148800797050233001407193219375136968473572982559035306711631847270323183145665343295147871747946883321633020189068055249336642606596739433541529936600249823226354508427918880520185609594946901717077049160011830135138546551851111353463768260821465710837146028432484647872283103941473674870767664238312313001046334289257512729104392421031210549273868317190645031309930058687464688538306953070439637690840875801410389772074062061196121783469748949310815268755394921292262312914750145138966412752721582859802960543916400377571098342013846336200600421775489571670289124296321298562212329444996550688243115120179698330617353223403793018897971422072457006683311121881122033807991908084070465616977141837530912538211337056826016451993375093284348679713918962023718798845575003512631330247490670952750614592642330304843687588529148319880383178466228550269425990326851218095016099416987628141068994923715035400035132666746787012448807539500000341594844750275441087527558037435933631751806302792229127255702805098684877369117018703536941596545238719785126586807571046036739731689030837146100330608873679383969056494298902025217223236888168705845834995686785142338583458032199433275750629628864643608299196601189577267529179152105750578941576467408702744645535753385764022999059408763209392964593928622957716953515676338964142894252557845788230099778808040344141921904232758380917211073687147229794901788157630731713759432617158323298212586605224374542823286744600206433215854175585454146817694793175050624188319280744403921571252770360830134011814253657954677528369237232004200559352687227749521107401410392834095060738944440622406271811357780281669367650994678847168494160709314424424938134731294590683499355345742555382020755078841843968058939863135109775100530659167240574148250597443491061322743253126413752985246847448376874171336091192868816631710020643763349634380165116374296951252286136330311017617397614397621215993562844922433106587714629829552210921992372838581205692491402325938826895683664003143576833496116965596168593401340999536373279724292031123395547234599431214884566363566794906997830359138548619443532805303355936912836767361760239649967233157136219982048499529715877656287285715447760729451462585267754061066103938291162775811132644675783383666496833009264458870164897119105428974059656087786857408867420741460826028588553548440927081872640952753972940847230541325873661214271553415170938549303465166797298147918906946074384651600122892966165645031731532979062894170116694401027845778083505811332392668968938468874571010618784435650940884439441259558196744651786937185760168763260156976039441825222314321105871328960692974665939658139977564045878416563834775700691542217101656189592677338282579265618768473837766023559352693092442307838933281206946597919810627886944766794813917081170478444620515674647575587375152429527367238203313729756755112134240294266950199882511559580530849434768784209757407188295960602002440511644345779078675018271006357167709357912153899253277059445176520255553650920209925008710395631963870049645584186658844947949737070566487073555951538691947966615181983975274822936229061115779579617526868452525876067219856470801545389148182439382423398306019283639128370348074015023822434646445827304613164064414307514646649715204081686477044580098935681833117571870942388824214099252125062548035139023601093852033330111823834975552211327465070642736818566501512188298921524112819728817088321005949613709927941113082526978299364468293171658459699756624889489724864369623933635830807794110149843381352020331857264885328576276024121626519219535387283371540049554221355238101557320844172559412729166743564430302721669165211707522277296710760264135207178765054891522966010167321964301281541939313554307038847876684223962248532065491379165258605019710431643668030818089801068236308434652766928452753106050590499382339279109763414378264698372722669225177849231465647509428816784445428383169413533201950766563977985960376717394584239744359034899132279361964983340936309824003875651658052098464941911280082722177000010843106219341461442444272609137069957155928509163886727457092557727950936373415940760312510009487241538967677612922516616787270372125353438092484510147284560224694780857343777820042864979581071180545218651755538694055080829122202091165607605050190771729615842406009011024121986569148829513563930887759077307321661027648801524368765494012636189299897666318844532840639266338196132900714403707906798390316322850327412452398682540127854274039804924792820892702249171657211068171776706046256914084069266703488141550514606592766947447656147464310869631719474972703696339375926656672205727880070941541751279416938542961440421851261841729808334133671756415135725112898056352051693502625044558228653850814352720737010540711718127081222585007853278746706880678850238395611866167660521515845818331023158979412009754024814736194974615629885913740943531232092605664955165360587087196970493210176121951094113655968094221395898254067098717197548667772708310730573462704454012193217283987881854575193155490854538773366004439409203454481839991170448288424177829343527474988023645680194025877009853251343165971259044061356035404787725445140673289593603927062505424173581272574894750996043626489207556158573575487640217220916539884332782262212049896399368786434824448677700937110033664700871991484003756151207106295587720388304299014088972205686606980992798591679536309260749929590935968721537372603592889775130734576447541720347882508288458768357160411385203864503350765344075076465572588110079418446217746575934957365747365272603461670994239388689983673546923320311921604350510836076690741096766160450429463684082720907480085518245487451046612570002189997087106918923152725424015288188828791927281676318139464025969368000272569367865315217302866212566610004346430643659976559207552889976492755453334825491700548263824395332651952834637846228283804619513853412346991333299087404599879858477024898179049565953250381457012276631932723523838205762243008153637281839789027552910033562030090829736549247369731981064593855815698479249256991840823455776257937019883783551474135714194040985272478944390725159803013358120424429117931716462832914851171825460467059037688017276871962720978393354364584486986961123773827600560549377305801912699820173425091317307708503362332325443796333136881237931013843733931564766048009335032626996919814599616068233148564165736188861475445776893577185957928491281161771641925247063098265390020471291696931675051205271446226458523541023677512433699013475681700737012760342827802666582715405936955033100563851488566939717120479594458820498070328221047935008481009153149093396216579846821424430261369504921336265624150851627412932188665295147229748193457067265694566011082244545673788537119154533458895881280715614972192869436184081912782626824342612219268590974323873522943796113179082185023518180409982333799558238395890765504047889093368546629002653193836319927776217800075499056047634587092308987913589789877685418965417862353284613796279175467082606490581233064098386492785414019233042784843986318607025146357747330553447894217311293777268057079834431008342254162872924999832806778265947034170048393407286265274316714364409583765587744620440105184588186343085505253159418149508731954308188981072435089580206180433957636671050067396207909100257920195833372453497553298216478800629715816999616192490896893055366530448978232200396453395342150206559433885560537479637443871873770994115569948465171575558639011495289706768112280450010594567493968233109955012042029838555806729752417347434448192441790663406397710286783465803550206600818752414606408444636256995154180136477839675537785977189011689917446121484850446593919983991705828486863675622380399753305801393922822298429312073361351926639352692836122935186334071184719896284696763984171614118572299107274079758359723922461134445746672502607108072786711860442208696780959747346821197786467863344873732953217626662888910056819656971175707231848476270887208432270368820659870815020717560992819331169671637051313448787358231294316731754304987538689034523243244896350202302192670081926862018103590593487790200395515494373749682716524785066521608092289419899042029888912328820155258247221319991563777486696331182440618578696663246902343756249754451992835960918620476453396298230182651534599786246360133469706658003878476317302587627919003622374783780782078850285759396126145938674336453213047606010399484780035410107918864919738481563687278026143483078050990690969336970558251623842683617847581092611010037557735486309765246116513221664689521898016437766155189926580079895842684898919776605006014700778362168730549874182094691791617961884450202580093237673488360105706349334404119844948593513578550910990725228687840422019134825976694123897098178279480823999437136345374435473145640818742749927277086928709676170596922485467801819662290080365678804973565656862149919012461195280776939085083979834358628225517497604952237000810303045306339222857190218536263585284101342572293988141447004970913141361102778859496300337400655775396804278557600207609294873828606269573507655571151494898433555282953132241728716861472878640557797504539992159246936208230236685608305392582626972354444230641656096072450693354235841874664814307560556169872963634039076068827144574612491368903768397301347169748126122631830229721821357092137150535124718864794178094803817400407588500331560256490682134501086981771819103301862661609335619409698094690147183782502125479667579509931946647687610683921206350536936000624201289055902663045672745012960309174407856329715054805918047116583333925846566385496596990505527060841391118089771468894964092996218497104043417853545764078696075523215312869894802611350976378529735795946184148264620343261763896899632237675735092370281268324328682110071621316347026937547329381313347642083302992041439820006377551028581858626826355626167166866290450627733647207783476779172741984502634773258175639910169228109137735793187676062086394610111157006979645663722766166758075857830823990034917957851584486355784765595925173419087180233812099222902476200481963637217433071277514437681353977946079326488542876525749085081186379700144002419121811270764686788359719098118679845902496273675468515111625770446627018132687109471368220067401795607736881503460837329084312208992119793318230857855417867226632360125947675708904920666424613992289144937638443539421246607606650349839769947018691301218729482794827200402465793556806677984049935642835657270398989570763421424807071981724064123712769139755710251454302853697879802628383639251536613810869417199557458511332416477767380103638861461152559379552641852122670245724281908688019137785741671763889474112447953525439703968125101104783569791297787569934119373239367498294522876877162865575149411487025861724715315102587342145508042858165480354660362296979684309987389135944678668093655757703129741213149576764011975336253639457394949725115386713008342626908518284237356628584391110812202503689384561216564606284715444104740396742244578953937775505709396843568401196228600591166257527358469192593882249158104437541726410676131945713392996104039522104673286701895767220839930289665451911420293136962755618701021110624757173673398394722804773631706209559849921182300871442192670280292891989660428747371087776172706634108796125227334679872463439857406691137968579384242713201586598623156432852389809058633371169158724627310051293606781708999182543613433918413373223871088607582667449724401355168817231085693790928115642352893447279180262744379289897507058395599482612975169486640174752190295397712094864192359258987325678839811366328648269863568751894392344331863549191056434640878752789315006774975388099335444162123989410912413351993001901326348861441741728742840113283090608427819841408006778966441022649003285194867797547537333532922874815826299780485210628527403191988685223774060721603731148460546088211284479466053925043361829448702021323841204028607882118265109617494646319618803026624084117237336915450588642556107883557437017292936693746316282019742439071208263935448031511219539472076082980399839751456599619715053478033196737924401021341941696520149529929999186155388960835004359700585693120503123164898436822279935801658780087119865392186123317436916299908422824959518654051286746498809207232285647930129925191427288557355027924728865561633685198036473719998505299518729091699572240526463323845089100651971119030502810044478364553436902478421591818744021936816968499584858931943752540191505960219979346928632754290331405260139732240846341144803360001896997961554214568929004509573509035965987319181495385817151167250853726081803915314876946730173075193215401515713898094807277466366254145583969364027963288010097861701122462816695453367341161527465189168363892955070613959820320098937145000755958600218623278320278213804263311331171196290767025210244315334506413902301054657381964464002151318346942083141306674773735419710050053759272962044854908235305419766305345143621616555115984329827777950338592710811293825280586636578619170415722821291978910021471578443776772807489214431373398755127370488164832345883886600044962628534283588742011029467391701309589605208528987983282496718391081638637377317310933448014592231049508674015377918897071010832966186929238545311724194293709794041256344181586973594061648010028611208598737739013429335571058423382103713936040337015216345931973496708053438555675235344534363112872245726803807569753451910732479287968165137866479396233727365343011681140243918882396093880227698607171146348619909986527247191814484835357973278321436282220992721904627577812777105908577562563041586180922812823333594016960067956816858320297517362034489212237670949402845319114908194500993372947400757908002538317230785782714671185754546615304934473258125879532892458177267381081421856214137174925415943183042991571083046167894921271457780027157359548464049830137721137126090652973902287475976099884491888293515242543485856395110914022137063792403623037700436193990812177011026216436407746889848504090776414910882414115531626191325050546083519835956789148230097984714726925179179550673233724348795593384642418186733668424190216239445973194109229295810003884966905390638863647235604134868321949913946052698686538669348683907033106814110285986789628931282958677700627199790660155248571087299893915689374866770298635912658209067628233356745447296414717731413063644988669885829706257557152697931346600335538208414983805923598751099208658599764640356175621159905160938135682833378577519657981216089499102094262410576275581722041964044016463032201461847742834537752929084455224189633889069666300684545426522131461406644110465021770855791943022837285855655041539620663678892651306676030156662055756341439520774767989821513117939828587412005728554363678884575181739801576229697110595295281113847142873878887695934393024213597989819355612146246162709548570051924623726601200036053344367905429070883434836905230214556122972826325713779705018778266246607467614469666429561109016284038458776443066524315776428731062571555333537885573406936165915584855344919729177856504943655406127707078317851477843515549715222529240476842024290128355801692538282324767746395210941703029100583233621777115763693145378177132316227939998352747019929861458502010532077434607148330589072214480282552557179221393836918386177242969146264464016885884241254517406634061318988079667847322195855449651720435860404625961663097730548750304843480139612434032891448518167748710757308792323544329283167625879851473999664697394275329279184040139603474970911834633006961256026383302855401377293432807186010999530313974193910868939561388253590084797898364339877100561275050592586802450784163056353969823986544461240603417554753521104931489434369408185435755817219470872776141640165214915829627096158272530151226016672406531455373567366288972724020636905370554505617778594417856661020481079778765830361634810119870248377086585329043029079077881533365085570001127510070475475376548157323553322777211571091166061235570225289737896895301648325579821167573054004279697608324054124727987154986969207898855091576585735650961111595560943781082921193064095765273135454566723475718963167891868528394931291551818284427029489206043127958560870982655798070164859525420947506104106488367165354940705286443324015450149046639681040937056363309161251742314081783355797688770996165657879493904707805683046290666886838911833626591813198651383227718127421244480823384376035019591187928369912276614977410405275447417794535514507312185914999357599405461311730579202367645825290697804808142321621834852874669922032739406655555205297601702351866395419290038033010754116049444083629815655381450426730152503793227621677175812968610793009243512860382957541888020571708406503024804337410016519374157682494867081274077783397606617490516661923494168753601624227020390475170486693798975851781306862400885448284837760124725682158823114560953995885595096192689508653000031435794164584786632408298073835117583037288058095817742174805941530688159099152890701887463230033788599413823344144338525651875701772356597351457768279728568454167087151733049009031563009715989607915723543246479919469629431230724558606322626615270873000918442440840775800374537468172131810352490996413961573502517800746299194008779514810100163441281251490203024324967437946038255827536780926132872779413197327468056927873250441800044347944653387702143708806222136884827122450650881685932031558822194524790256268794648327944027591301937117643196152690143143561506087375618611335649077964485012181029926048559435085092700580417394376715307074501362669967860903537994531580932218575370672710336186826232924296772655536842461110289241987372898414108920325502391460770489640433509000061492442606867714458120578601524083179317985957063691268089013842703700749220049623778114066537920086976800391154794623517207709328350635032135255411489008711207612784521519425517975739272044765276792419511747491483874978885456440113996189289309847626287927801186916480505317583798086476568058986911999773419735160878135880567447364782965526156748018776042535008200732460297085811934728642842885256839778744288609814962327937533014154145785100026614840230923027784681664215081579751651884103097274988475791634389454151711963128300447518989314560224808464192705146836821584033361796707874452495136109312894350429891853472470763550727791000154609107131468974220699834997681894559182855470965900640783402491464613989345647651078033242454598604238940425904830711393153284427370552740137904205952108971295053144360038231390587468884732575749796428436425545107916055287586914526873625933448577754977536838064049588455812101903913610545166829846187727270751561234934736461088745769840788333836516633393301517641327628274433147235925980580723004562599305600440083482751286911849478602667724711928209905001374659427203377684574462682167718505904029424243162529561473983443077701965339793579314502682611096040101516455269209082453609476613611467909894916091887917331002801287571644569489630616519388215454402479283043622644926859080169014734480021752150358118317722676310503893431888497380650769812908166368488810218361990219965166746208292237138656530171011366774193057785335569105540096696700944217027039234928729789228687773268453269959694879617026047655871907167815261856256305959945604858634925323298161747559586296517504772378199258294115002061348872542803018990935648701979918107894866305037016383344504128170934665733348410219032920162857932083325759738756232494857287509744783611632895156636210013412332813583861002133608192712216325431171612100131368408490127183501633996322546155231884233858262220399471163208589041018162348559183033841500844526884887699100046746401538154749333465299382182908853062027633214535982919842918387677275614832358637666518257867988657660300286543778790486284317658019330492635017864656547528678735559048582573674338160339200715216700668072253944785660359548728529932510494023502382666368746727801325569874599898603682022801226337365240023413397428518917516289944101418072838196824396975342269583579455706318598730774391769881158611340440256318683056751829332425504374052238708265415742576052937212248873653777364779452304802996055011898818418229655980813454857795722634029667791504812165412810768950750217221802190017468574344346264690655104560359321404818604297621961445269268554525170163513834953778558006817905901272737410072286401744132741265836126194246129163486681726584321861947063952832358038347942411276512245033765392468926032906764248922127198395575740831225278343031921313957346015085696876444874969010870706057398099864136702235174475677619501657960122185028960979500455479634117260343173054929574253439209789946537961065432970513095585220244959327124238331768396709278116084248222259369867902691148760333972095627689859120274967432538304202246228445752935168640575268752798781193414009374146989124384043774087111182637564433052262089447203423351506771586919847695721229675921197952542043186996002647050167243582640890602260111626863283899446326317614294107139302487052848246327963873810412167032464599104119387292372267595506091139754742732595100272427503512459985388525988782885329323828289317314200221224773139123494270678878055040568759905407909391353207790958117140260821225371387259368438514759667151381387192727636523357127397560285840788985014512401777614683935524571286207314954434373859917292386277325831990205904032000535148722913232211721236811611070272296668209212648651396456823853267177782467489806584333393061261979312344067331867980413419026672973636407755241120939584094288016551553737676766791052201263003413680173185335340586671355613931395651467194768550349475089318375437257019384846844801885663914566258204860946225326908049036712555023952603901737451732863206085663193252112222437240596982720500662072050295993959706523557029759368052458152431736202275518883927630611338983885652038505655532121080150971933395224337054315376121024132476014961110359730330033249907661921648396736340545354168221345380466223588796289960680251346144334162765205646066959818327070248325134879819074422869107797784093412363779071283679868676255980364545365079857206742710822435664101405135210342025637328001942461589820110350505295207887610870455761209542002772404080567163013783985235420992765977282707216769162559751120192518659712728214977021991015082095626330859252893015961048529474890618146809034447897363795102560892284561846444693984702251038589549580728215586320222268838869775597222927453606184153931510420591679587985139480980285131148264914087956781746660614130117783426594151954588002299372264307685829237095569270923151123129679345451656545379387498438870514094856368418505170849656280524811338659275298790320991524773139815040323956438796930200226160809422484367647925801996321738588711231934310889015161488116032533740870321822761732915773291446065383996051537656416662340937065574969402752500538943628442965004498991601231920030606555640820186939158333320631532408629478420516943314788910261905726799248651582105239176297822616510378857153994033298486591323749438948178976896667994566292881763569155235295700298860730936834895522169405310441936797856395577792983154316785381137029233052690500794997744616128118019240454535192397436759116853890113957236596058646292512370749321424156795576607816437132017345197719782199616206941071352117498842241835972290350892226649839657479532239472190154286534203659887278020730868758334484326639513889750345699747050929884630573723030439153635075085495191357429108840979181368371777601821846765982752436613967130415037752491423487383517482268677950725909653331696387645717669134932208652438095316809969470551119504259740520245347501018354086510315586803288967466249774180476580878203782014606126547782494681291350801663112999118331790790287694403703390167805108717851743635190882225162605845675065775119435848947441299911135644595927031096357686368631638598035313340926577448503428102774581938325389225625798278913878629677744704172260719040936752282116248348367988792904803914289805551815954291988902722405836622862993241055225554149033273457833260877020150724233083415670364294521732377945134627054431636946056297441510703902507908900567492320858576243319302172800465742412155697637661543776633436073626196452786480951688878625810659743141644112726424031634395204009749622014108034421471164517964318684340796859965673293922594796598593489935830040364905224451363044206692134255475173685817829647988327723327907622534143779355077217880717224333635218927886821509018349278967573190021466199772444287906873350140103806627893563172855271895231795122512684375660868759250555610241974935366438164854649911358408217098818029942285471809944170456704831018158060527019289378039548005830156732534980643935177052493900968851886895939426365196722674996983076940051466207852457520062418227923739939133721887669794004430331434509845636563542252700132009384067126047030328372293562220787648931405991323932229556311829151951008868157762195735731905825904792452911271406557463536772550600248353923580303742388443779422988363385447680063338455508056441063903920313294969615746230895242840720831188416944523855090061810838624578872590941975456700700111841691152559017973536017494169853573228900742525030344670778986072593702401117836753974113256057153198441302968140858651229114122691718161144083707567526353735083236375791866537499956505245903787113505699926325187565388194334490744199889821408611459475863022399872365049646526487372512222142233744206936972530469531755351773614572534748798722381906402058470667579215012075093544168127527510375072274816225836019306295480845412515475157794600997791335933419547603702077398466065287638858109312345381968757322667203971180562711245151384989494183184858971703531096277694650001710001270538184129591517749718261631343033924112467073974850818420254751054625857791151527848892094051237617438400241641788250200385318899605943162775687980991878149594010035245301274774345441921338598061241102039059491536973339847834258494303759152041766088788051203018816112499667140516865338906476201610373917574039470809247177788487301854223125574434117083616271453953986299303690106998169197502572820353861761381243242095618348409520002633563057363816171903912226589160215236189054677813139449938704092156667868756680687441828800991165252548678454795001118252028310105484107024022942308508293371675849455829016081604415995654639027774517915267338904913258302653718936178160720236412027623182482113792576614970770321137686207089809834094424925560732527531929882206613239993930491350435526948193259899416845998002256720294330231877373653300048876083063207810555042405802931593433801031195186867237063575310598546993227277993949017019556599912305141084181772090751980907285577219188546000359347838638934258680330534283189557813813275913665198971520551408098114378013387131000019276910548802283091743281969408951592728230084042952968194226271507918247304688840332925360728361283672887036775162744242677503025251273342158715715209725191251456581082986022698173879921880486266338601392140844137471465612637949717362538522582779743406835135140014939672735426981374354586279903007202689511499841692920874376599290764274305018994672611326234993803992681814585108691020025839612912020412693338115349322847528311088255651252290042399800613114707500919073981798009142607775962429813571653078051360869705374748665852978836570485126229985716604146448581469076479453160206517556594314944862946524104957809800062348733099843387743379844803733480656277695057731379983389987236092092848587044989235678840350275948385550280038808500733228147402047418208594761517161218538842929287055530015742110132675781752873957216084954275665344482874939938916548465691929022208148796806260797555458815272045224635659974845250878500003023397313085911062370481587833038800544401836729529779094555013079414323610916251638064075240876401639818737822541053299187094569882832433802313569309157983074579664995210779306165373412359766438869010120123181407826563875527585119399800796855723947705657925866888151126448219219591910797440778227212073050017203731020562638995363684904085648050931712271059266900629376018527172927605180313387045360971196880807206291998716956778180986426653901202158821914543929179529883278993854398479969923297518216519678425519274002833947672341123715112042158332456248872780948626295914408251184666237683088330060530867899898644546428474958287151501728422590417286129143049092564292526384256147552213586560093229922155648377514111392905393586443313596549665372197569493589987424181756312915650853799998945895316610472911058843549462417053193149486952777895738191301241631800208405157447569442880767421725562942010734591543405214551988767353085242870222535715474387252580636636435180671603256195432279567630646454732773208810273811541314500517458522999493879787593368223436172852874820525609546115210512599009570607773324761513069432472754118522249085594939209349636550268214553058546824773960191339235364248220135942918776660003591463527525962757848679244245117610652311514982024023664197924421625172240370224950823565441878324199768994903545036822150406464296446448509673291597796686197518412450568370290612132893214505568639174239649456889043942804576084313250504537234934061508287517284107205441710990904420220097081676906026247906798601074707729289947070869253968664841666118207152394999271927588271102148364380273053567165242030864356877564401841875728261059252144487065006102580240108951130280759934752728317594640510247477462633748600347163076582145079616294153043808653232950066999027366468454569345598484774742981741268964118898399891336850563147989601776201338612785208489639528932129880223290777475994742347143919774836369584479736409438591899555544370485503249565293726944659356869045590109511195834910923499558341506327747399754748280083900167278681490001363846068694459445657630771181577845799074159730943775467905324131457600224639311285062111256212324190392418058433254552258374236870694319429148521505132190654214822788090913464457643618901221428695860768480590623507795653788713389881851018162481278209772661692229882154993441629062570032554193852107945401901601297740829402209506161608665414582944326088887323901232523524771637651534602287221059424815407077242861222270032296068103708895962670974544095401476329897075887086955586413981630714523142992362319141444903783495138740930203502796948022428466452994299073316306823101611888035363643761641723428645738099782301011492764736116329742618446695724317802366517597974777113713745938247823676047694679012307775910462137908131592595282241573080448550252548637692921356444138226949762245988550059069544503280647396648599883003019665216753186895890617072439742950582362858695290257325075358531651176804409877539042259485681448216468394563286712796849231882134733108928373474703620381498416621661028709823486291535236627314895464006576772545658203899988349991479107675075553164430235430469517953248117221884997405495617899623141164384116004823765335629386874748466235694929360729565243188905240744282877065413828005203641901327685599494837235722873045226418599680982723695127187321454897503872157153583290311349981239484238452762305450576304248804699969424080606824663121203007393453213295640934183935639637791139928027358958459550462351719528394009038954555164178347703243803951103040642120536856133158832853077865842103908671856995391072103346264660384475480987077542360650255938363260847324966425255139072301187290758878260996786018837538288600875066386429292033692079412140138451676341607004668201407979067536027803221883032079465759392916791581458489556256987231865912442860667464904735084771389534351742545136755610816696255770766079485108072561221879788820609615603171756981399042845543629164737251078765452881041594479600514151116470342153842819768640986340736140099462613503893857258838428365632911241628304513170987275789693921710083340018881826411304488035003922075922892453482026245710923326378377911127403779424616566150549304676936386077585297210121902742608817553248932768139680075097460479086466648765519914807715358058154303257127576023302946169097557710398579855348822240153110764035170507903571701720371530867451293005522941239994192282869513991915216327488085018284310344772741676041088443863496336953427225963298210464936882036232213858947564455161546578521310515631867273257548870471057052142811437823603020564165670458375655511615105592378210748566903794086371967034610311141201591681240824821537971042848644595130895335087696792428459404406036481599140417223098896554777722388941400924305845310676701785007698117767820402217129839183734622994667084085370680466233906148022542799103303134121502175277623981429820124404310202302076371937620518831812259014571292080336071509996644225227614447726228622628564414305011764275063771224010538699579431403638717550443869128258950690825115941322083055784258942582402065629416988602027150354336316355384848025462882267670436996006271462319234046755808908389209120159609258742555731422532449426645383839710315320963349028230444700221297543149884078355648238606683635394265199325481497622189853193384401003071203978641479983288134856965301546061043165495841872857106279956109141358993524004383435384052324262743556438703225912685246787783776848863115412788606617764112619515016032641365432044367832956554832808715942855112980882133882547262048674215412254900765176139359773244335267698667895767640976922622400171858748806536012258412395745741449671192525031185859726407461803856551542848507366985563456737607633252536426188681398120202272636592350661116216133681031413828356327802930595634432311467268880491532380406391262668189358784497537399149439786477306537945838501595541779613024370724504053269992279688455764362669392185211309508077928969990343514148824929075234593993393071460859447179348617808195227675299661762954599627163857450336549002773442626868686143727497869832615328301426737319544188143506981817650848356361687075970980939969741294973152742501991835856351307352611715329693797149537879352385680556307085464835864915424756641534653419717207910470210792899870547740854397183246479127468204279962929726202987030896448056850088119893696167776265956617241301057145535953236695383179483091685504035636408896337441852282292319202394341326050639264659448599704820614798502855889049915467706714943867602303533404146622404372780171380377427106041350748992976386669806246630933704883284270146550868035810318269339898365645378836465518951473182968825677166153879077086457450268047715801030743459196367451935409658926362447826333039493482212830996825921283245455043329224709653874605544678258532118220011414275014738545985629634642712835236773714069347443987805830289411332182024975371910389588176505315371541640628991685947835975927872881346372915794711313006628119852138185297221877511984354337422978637653136722784269842872509564884084794106882941938197622455915152760265702162122395461168623696578363561255646124268368079765846360870288176442423587073408600867435913573733804136624048994163735887419571624220864443542853132755663780917088824333903601373230883232962535413080780126943778561240995282822060848513625484251347464985043135943879746828264015114759720413239440791909695734880599618954665323580387351313378917955821787940532775999310695381022408054963570567618119027346098454478726161989289876611922451810975721843146445954209100514857711877199964946465475448878342117623934343233036572944492824247119481052513965419775258032531790783112888063218293965900699594086603197112982786090563007310903235914476577314038346069583943132655417449233240299737512701220279652440533426413463252244426300871944001323356167859067366721070665897769096059247248668328059466843384062182497517883121548716499789061506336373224690234429371266903466494356140130069528348434723021998866073418018489039826159283961114112699855170061979064155218657696408287005379544892132416059129394244632317160814762434604772580382669928146055528373583531127030275019884413322754436326229057168250028883854921373965808365065682505576235836106830236404132745968723297823302862870666701156233975394923627986737903318515540060344503736705177746581578100387689669780307183303904516704212713115853235100341998612150047584949764330686495050278002865184965103432780661338778388116957009315756865196465602644754765834439235868040287429879727950465829923206522590937196714546311100127887867261308005492236955592100248603207316834756225537902179126806250726211478111063586307269373931524673252179892789820770307887794230217901941504373302347767629395644833474310902354855352616105977312907085779321469054939736035585001656592059582153998144587252654499120807802570866046354831342281606408945475979953939319444985324669491803051237537783444620762365158744584653820213135588429820611090122668497291653230445545220699292114305564498854091531548745667840241381356805125122243733292670779014718351171418540179327376621642381316471875083626890013776430356393225874550191793638200983991715417043358386617733507180480425563118560709253040391684283507555506560749944935489497269280076583145904686440794703617493535472184898086883457952367765188316817715031540288958939974029470022187673251037647523753977982631793635714381749442427201701182458513529995714918648615891136475532684148729350957250806031386450457146035342988447522115870220536368439732888950774372456791352802177849602009245179248306065318585161769554040793470549769049292946266625164745015111681368164883139396628010592743414452433737193942155120127981453093604103699645425934632798522802747012499144039538765464006872667678232599476284195018155366471172340610589647361169940179861549992980751201800357041895692701055104669607657714482836652950340485627473962749599137915892742403900509843379982781180357072108300546504861954252944797423941842203162264046261643925974198092099758355032416640873574441570646208662026442727127992233041753798803586436766630196281406097078872711315038449945036429245655272670292927664171406753696618736134391914612661193544771291292693679253986467058029396853110928214090556338686121348552993951453646872568257238832891550930744884994920717561243681078249603295411881847436160798893360566023002603191557668536692946118157211816023278837576092971055587734861083664549874589545587524085661408029463968210502545045743311511111694872168753866548821620302298324781167938107827134569390078406518709003347750165762567622871499031444456922049711039017771797649909586219292153265838990573961532090745827005595908492405068330240767745966675019567271429409047038232994300186960257033846266870570487036461624629611484868913197617794542467247976115813695098241848223867640442543079644336525043334398558470244591542628201086881928735743613074702487819641360566220559381108615019058987043602257714194773787153407417129418885052270022755567945738867768108727764105697901934346593748727006499594358951081970013557774218451864653924271572256420916811933098298259384783181632161103924225538533618202965562521474092502357391302066529270927570843361074635324209924721907077736899853033321951082814538472230343969746782323884659695038546159215680282491003803342362467746917790637582177562507350054907278631242385275229917572430714922274036716501764365142976974458641752755176884273539841506303374968023740322224654711617674350392337937649508120475586352764250704063220333440120741565508439284116955921041533128471291956908284738400913807664748291620035163715125296220280276980734717611995085608683312093889996405065454902931271874465695222385629452288239010362272350152281307221046059313292740718289343188067989750418544516590528726533774664069578482453011179778415945514035381209518969944658580086992416128120672622463426696511477512646204927192237375246660217913594079461478564571459341739375395667953615542907356135057548125484090984525091204018951211843834240168613547422823514079646584673621665238854709435838276120408667594388232390978258945372802850292851373131946478324467125366388725490425076888087459288645199501864713517835614636624187786983834851777991765997954608498154403725838445098441208802155212037664797402937447785707250986515213054300622975088824370640136486138536150688245462258247486945193051369582727801157084642577718322755073177722874522012281302576434087959681950860640012310707675792274582224874016133082632337577749748836944146020194655915040656480236456855670771794747877307479517066461610107686543861295707467424718560310642448487449014431921468062629445124764898070129315176659277018278898930578672272365362837562785117042259813109101671608576610526356597583831250706919521733559590216364500866987595518605799705060519090343871337787957465606343378225709137297759405340816437203273894021296106453162567513820243575792436577981566620407446720691236514541091645474160633005926935899646458556878632762499147996576628891709830346394288424629981401074814478435279684975106864908897926676056268651006877858551433556076688365558430057358846712683956701578574485588994547316783279616152076609792720828712848828981880665423405107128023843836101875837449596259987068329959787855069054607633938547820956731974789857951949600439485066401057770946859979105502992664579741219338695416056777905015374214063848796143251132261738221552467438544220302824429256502839441268775148992336038857329200162053393713434288135556338111059067851666589163761621183446822397809612981286218441535501744607172305661312526501095238025456769799463262513619534821070382778311635972279917672038641264388438819367779893002860021992587917455818679315836480890429051869244513367069870878850717465717026949100891323364360964169146724177398410751045396890891345773554714222875478968464169857900760917935218816049046639950626525993769207418933370246676797213870718786926037652725656633609469501940835679524391204723861847049946500335479074644411934241241607524667044652710007044618040190034098168085404468389121657503819141521500436985175766115746647742192990973919965809959339352680120623179164075205889839283643186011520170178643433299916402738789139592810912841792838981718805685321764899722263939802022831809037505058754759417154526824268623302718744102900884903061512087018355269967808086952500716458588184073924825797483338123122908652347273939752626155300317410011048566450242497489957477930978258764204443057741021493095080295535880021407263794716509582843461946970354341218322078564029725266778990546831896733578015342743439019740812706424640072725459878257595488932374375609958984633428144794692123882214167129550627521437944533780682107959046091707116072472581951070107281755784652007719863836459224382980493627421955237273093602080717485711585814092625763569216071514585203191887079072471428114066900683624217507502062654495439509423581118394261534053942598983041376848096668650943105716008984138675586939490476777979513202027525541549858971511290364048266616689531594617129426255974947944107841356224204045402346676957623681914588642557475321022220523554226190961353138614524826719645128297530588768731448335063807624301457545352100363717759505192298416143793919341451097650687525313948090146099669611803436028303355476467100864170076226481798317308728667024775703821755637994188987245110523301895461058338001357225939640428063853511608941453548544567532048788394394798916258978305327557554556385625127965381139571358060945163245725117124096534680968749658389210633431976827528395344878578978224131555533632099965098823741577221648521129491789797009653337184564650458693307672367185767152486602118974289980510971918683239380614447141646231850062155983708510122322967620751150969567729525276417003622855159841612261444359382635054865168844035532252880698437691495972367856320389712962842068081678441529294313700814336423325482187173391012081348505597235551888626090865921043579027195146077461486290581313381224997969970786834875279122796187280555034587211737700433021838205761224814278811212695210085810750800501268355828856063574600153004663616411984651746311305557176259665956205766207419793362703649832449347978798389260206684960719872891732448364498609032277201370166635215672309012167823331427595611451114653962520311772779303028462736053551726217264962316684788495995441229893238515204236335543594281939247989598859879262985151850590485256407485921597356348226642439491536585908678880353118926122372797637194283823875639599892001764403280208387792251579261954050214470495420047874899454457005548087653440001759308108192230341948329778650389058625962113238602811294236651686529514774932926674703441187994711486603336789780016850973203614226573778792711116369944607182714765016272931181078561600714901887843289747583734858607097134534961025808231447615631147125523091740281928148304802464054031741578141232220234689143139360082283885531980496399462627714189345650154949631084602265538807964617113688877491554068102315909212375901762038594756754261495787185803532220165480987968302318994080938717172546985336294716292664303347727853059991824607024445448227902862485440980373448524647173082465780261719915344338996036009589639502885397815752323719261334237924378830222124029231142757111080564753282191885130882348586927925883886974036635079664481328651164459540651439438898376639536966470801721207974666435871475823740657319574236269485030992250943765052259555128190892843462002097071795291515314842713455170699322751786107211600074042838873945879970719512394442656050883543549000361405010472966858974514569947956694970731840507231814432388874467921164216158279483804262214326239096178292774103195666423047363717653192811768774595748383841445198341202934988165874508545636808285175163598016419416848694928207257972171765873504873787233394992536573987550034247059680811767009420356006979540464732506674729757214336563318621384443220590405018105729465991789701804422392726169206597134153992456916484226971040214499185933793913692135398765820199091380255094717388345073446878241965478032557712276548215602906591318349703790028825389826600415484821639527419725634272645263917795065149319417197577226619003924592550132572698790140572210577787869954264455803819163007065874023622414916071984683583902098666466651415440370871371973087505199963224360895320339609958634209425408717070244488460471980082123217144775077693168725678677899881904598896667473356531388394091076979002809477893323417879112965881903799378922337069201985992201397949377501809824350108949964868839040650598904810586295816169917692315151212046603315755656186337272941209265186164161288784424867822651345114562082769284997476925228195752917270803935185545495410996475503840411524802316556841494978873847269731998050681457104770085421813278971486553076010356822640269226828109012591940902162508307976440780724584688447771534517203487230389120191383186820560321248371583597288514257710972590255154438087809265836410521972827706124762382743630415882490460109592432638709192768464410392128639299515032185395449638494889123845044713685243605654383993171724997150519403154879081700895046157950558397652190248123936885971481005166838700522706872923732455923489798371904337337914858710302558087832747036325334861125383616606791151956777523947152023022684172505549394415202083057677566765819884660709042128584013305414219779572470539344279112073759606155316450170321452610340207981966665054989728615430102060725569846172618640889173624903715127607380001642096567391334988419156757817095129608843472863063130607270106025911680169276314629902419523739071231675840315743504020640542390903891120845861642299916324245981179139119041004605344936881696813417694259625228761170745699783188149944636066968002191144547330265796580481399144811409069380587334353185566107617255068673997265683445997379317470180469067890136708000699148620001533873033870359774831863258266669920979590659669490743471449664352095868416963890894789218427254686498289321756442541602881549585534052047876182394619577758590254153753201661261296273249154484617898883895243479074271432784755102922863163304272425245431420002583319331356931561118976646859438958404722473562381672122109123692072900637622830642268991178942171000405420656150726588971302072885008717071526701147763016479361037168322293005473753044471986053458489265166348841265037286713677888410889305008025991487967987728560877443862927885586166529457312464777284390078846666150452665215909240745882449170181782497515125909997696288269315305546137337430036131158573819009096283585070857404090698321909801848254631182626052934841724431041836674275287693400620921713717457492148416224463186928286590991951238804800847936041465917126807505286256088875683691507695140291487287445219514204202436397391719714014262970142660450154170380675258122478399759314964401691790320701642325685879380788329539408405914669745109416603326610192533380752756968543950311806389527246439168176671224675385691511261132444167120588691147896224418897630746446548067780801655031852781572749405224420753125237548330710832909579622997099870798629195863481762739829812359489838250993444721022667054288142864469672079933670364872727518178524155598227188877441141387032860085878483238688137657014748222061623513032407712012028367608547308280655999529923635772674367423292941146472839661773699747841463228368756237066432533413795387397299878373411826251914539672414823454940390634204336859713610310060347662607304780107471311264685169059586118330417122354337966974155118092875742654670785611841387488354851158465360061649943983310380738789766587752866059968854234257828224758919731429946376815985791594256446764212144680513491842915514884858262792412411201046033516454254150266268012927176371645083877932939775902188690679228227908939802018112437487768336441105891352346896462552818343987711610556132166205979585013181861407422971714404364101464876208199009343140948120853175216828132692843782241178538643158265345921791369501891165008418511053526523483122798242613718354997313536788304172169667302102704977607638734272342886540978284800590422145644598054190405882025672603255960617152539844195023166470773379518802304331375086569160471599668149033509708150581463636461650611203236071685563810806706693055155557780550342244320463889740669232270871943604045054789336697780558243895374363407263936890549005263434236689722680691548945886004713421638802321411417838338786294865912625942124896138930436558029739290314073578499439635804795020705410875158910499452855206627397797388875834001120269178592293835499961703555260387544575285668796801645789784442139525151615330232613579881895780153838643845965442385430397947260184816389650058819450923427913647781778079767195672371415180046044670868430698879511399613433631169597804220718155898542773060972603219388392427008178809443373672764703751422476706101001829434592727847693118159724679336580597759885945840440146694351788883594551297319776016393054332461407741682137767649923547825566583404370933823494817511338308141037479132144338860906528240615246281056965104345591199412549198220592093490820111315870598814697880258931143301514432387473732699055565363993371352948404077200577943835478134043970806181257932675460809830539153956475774387246727401634974529840035364134995033092345172219628720887097957137452305318588473215501687467438902409706741401605602359946631947156870150745966807647287313511735246677349305762952970806527176945399804895102215313639267120209111328278368654696884683980314310372653360577953031346147121998795651601019597465072213473796085728956293871887870445501314211275197770132655174023059106886092785593761162117605622936549766740026468364900154110735791698944747273751203334368007309020373953438671749224322681052290622891577977492369845457580866773693781379241282976371197925460371699303998476478076901937296713798443899153960119403815258859166564917338946282825541541750977951347689624868938269716440780480448597369151686988367566301194288758401413536063039806778663415610236733501344472954215863319301939668979483649695013614284469027470408037029119505406013079579765915069003286861539572174365425632092994075757279362047243889227630228761518493910899188025282706071489122712725125273404358166264077761791200869946342857376181320089609457116923839046178951090613177300018881278273612930601156568046619890482795659093087027616286657229480656305664290403530937798185205058154493811908938642080127719383723414776337231276524769114399172394976979788786134521378216408334888401127781016602238508369444089694669283531645322602220943747348347901992940480933869548121875953839972271705096142626544345354102473711729191493406608147732854064462483287527661935256682764842836773848897319831215807714169331765537278111756042732580131870132656290786240854468164623936836220998893307228231147730617919295234619712053021070665033120829007358824706693746512068926632697223830504569886551068351180123597666111259137824768333926602351256323945675804217672985937052187290542212478854661232131560299158675918562893279633037759155724654663077812657064634368716794629948297657136405915000213075756837864156410025483354463242331417313038619598057257599796207604391546043574284144937149721702019825744768751648343294420485742795815340944878176896623857530364846693708097764141383404068496139192601068612007070745531410537085815873935340708295104488243365620436886645186797138925074961081386230210012994766040659577100051920120326167333735288520716816252059752563199940761933806364322335951999456722242116781764546214929476400125135154889975387014676206461239173060230496525375666982702962212864970354571764568609143993228864686902271620197003069901632763099978138588153078112808744397225235106389373574504473264067080414513426174815920594855802727676968586524399015205215916055463132057496009614493198071724712783932518843417572218940248350076794189131752932969351169372180235207553201845845456236068702445417739930043718624763889004308074992397724976854524266185668140714739220844061864417344335189700866490991475571891067197829225686972633550542822976964269094555777284308729476790424978799316104287749625834163015999042927185559041941708377409640606200138439779912288395140523142558088850413914958403256500856681779402900858842135497159225035035633155579280148487766167973953954074311495585662279122292399380120059442873659518699869199271158250971082078823793542431010964552422513274764629226597566453397807412705150251166496534936449648507145962098650530960681924960690217385062007287228590461995219256151178569494443157277505436672084776803052969459379340945019759708113035160454138591594803465945692071883223549292816150743561646254783366537595870814396267154850031467828499633735096648345869622146740798601196533035105324206023773847416383766679054501920527604425039357417373224487701983797089133112256138893463651511672741200186138972260461139254745266613595291610475268842690940038846833689298199329916854389760549952618433796243882718250082546139626294160146982940108156787403597095867985548344511336613778569643941222659082354977211527137734096461977552799215952067301435110318626644344193525709812282983144571223137664466551548060048544688974995795662849213956713360571470884461900466961510025447745264193990229150752148540438712327037911599653984930052825821474822419740178633889675629400114545221545126156459889371286233987825584015793221939292417360600525733548925122165201957952926201856347019712710372987474605307825273003692815045809578842343639340712360628719385492585275326987448689457599700069419065696459428782244909843520352479201346670134473769921958891644545166294615057003782653868305694378772360080298541305921201548601299646957137405240238156176221404980524822782241392826568294966480316841826826834973825617869925048602343860362802242635165770011923206022509902672859899426349785011797240366016218075260918303725386663995391654735409732131661983778867235919644047007189021601452328855881703133629777216940737706651010411357921789150009917963919261082158188955742147405282056114283813202131074537308322432570472411076941505045834380739871044773761401225616417711794906384889939840182617579881932039431131935280818646452595238182666544540035380052225052728193813077117757304394772153828763581718393806092624530589316025134318681253091258770563046834008490599283573941359325047828872317597264504054779247263192817407264801561358891478391638002951497827050842650019572667285457548698609460423698037885945639384286115212130892394816609058230315974052564020370161072531251502156307450522838108729428318462246028479845087797842932529534202139373007499439304925894958622314598808023491543639267013424297460986649388860338582606941752238062375906682779847839170110914419063621723856840845289752659028719381079332026009530350310160457765605892830151927866418823414418292773026553585519920921463674813712230398356913796738131714386587757154634849347940888636064517676208819941944376689477720669746824783266673677120367885872582153865160409058905958687638956363003612184470475077066899773679835445196830854355603781528257146756553495686278072740271381078889978693341541521250253232752751269915805011271781569080611023599351213348993221836376117947178680771491524013327527018498458684636275893786065170488559152981774937357812886873463932528905062639906297912020287506752407051115625881163777907581825601224124501048236319355854967772783628933260553825321002622639616798872411619510355924881067035475130842676686120370793125960812414960190244908397313875540866492116691328786391098815568699332146304389802801409320032036262618725317809932800315134573931844392222017769558786286350915475760898853934398604697018528402179185295062811150557713070430170951666026994978818870862467871073423145211773030953293799589249023314349037664565085601160894023207400327806016712236404329093771075665800724007405184875178452833587734713216407191043089178361348014814890215216563758616015428053655742870581686951998275458909566844239422747112521858211158135516968604943541686669806100400092912041466891435198617394135757681512522543328811353616200565168796753563035901502848830348325486468574522843624472792900686390906813322024988659815234079244414439106867226475844346373640044262535708206830604161840213339008944652936887837894782457308818928696287061356439305496677522537558405178777167254341482591664126278065569363132581143521155266365372267477374999454049964332430383786372611156340340509144853857911353158587211401374045979484397134036426343342823435718875315782522379263056105014710246955800926210910368700383201077078281493654089015043557285558926562605277533776868790699347241456818412719795857498621730001404657497958973229243666094868098955487790263242339383108271985569671690473676238562871937924640066555225869857933640991941490992168439969220194351164245560806157869613006667133366013999098229574080784023905402019918994485946012699106566577978692181162416878717341033434017895010773176703207093584676388514402092871002894183128203071051456494910427619296652480193286707019300304355125791886584344947335733721571672158491895880384800365683757266289385062906860957324497670130346952280206431824329371856080639509425755286854814611312935829497175429246314867993198061346509694687327526609810444491352170563387668113532945508281325244195379808715065597075621988867250792792272281470660497782098941562170045573817082150837861208556587789379713047112600694040199329504817061216532019134609135473457923690573468213558896366745224220388335373591471256014016957204073976265652658572597639012803769826388784387785110196627213716238805442895802396871472252959057725879431671283622339251960545628007868845087526937885288947866585917806452375027927370350110489205006113627665309665047511311003714843865533733815050299749427132012714941507732527397931244661774337496383331227979399628882367146179197550851444007208093539353235754631236387961270384947982854794541328897732613575926544505900166783197859744645733455511677580407186350971066403876880044350662161011642708206189116329088353395589659538819771076634454026340397151817111133519941571873279165405385084652074009909764390895620718579503225851306067666397759070805885241646239661592978356520212958480237652445240239604955663816078546685180454116931793118750775111659682009387954820524410392816646840537737127784880259521351430869747614283835000605167310917597002859715222858612476912336485688260133876079683478736465802215437514810128347819596663069495144852220056632030316296834501519478595189960544639305822888129988786208791989262084166465588321151892620085047256647699755793424100211537182090712456560773618312194075495836802408153294692090558928988681503209544787102929104273799601341139345773724769011633901476786766083688197955969120860690866488861883595802373441699448917181773632086652285591833460621373452845704757626330653608344826871791193657196728927549051681051749455369200497473299617537301226912607290664865318667268174772162042634253715445259077812563987337839219140965751364783166707262409920017269078372519784023091791072845966096433575636369710153491436767208668027574926461689418254776781892324348017225029591753210505327427947867659424893200734608009686448341725339810111568229876459931249987750724897616741532940230393818728821195971320807211337770023115573943919647998321299444267434859642139621619948515510836387002848366181788274318558777337212668015636198276487320776368810176071200647324726902355464817045732583008491224183709322548717410997236947621572119594835491206286725386149502221191221212504153159034733748439870530662276549211501670184362094952171632016028936517074930137307434660184271785709524271930161612046052953871847720616564416643585016014049745685154777558259081944859564118217742512228426134008674293954924003758313575917606741268091920869047267871135819752689609978079247061944018246824296770408745615159389116009458117229329082347750463997378208143353648322814193194761613835829320279871301300337470769954476091651014122848996307653601125759198436112926201827131910558897329571907406220509843019902839637351602330413077019764971073244587965212604610408610640831132244835195463006252215017811912158390847476708890409302234744703061288221576439434883322113606764500930822948190487519604792750683804449897073689666668892893659191774915848809236168781480576274078539568631081795682136134773823869816012837760032590013118238332769833257535472328961739463106851723614481943891793076188287393401880704822674473459742753170670776306134591007498760120838294959722534578544439516887671378087526103083733847089575535724406419521012242197221360421282321456402693507143624563375905177778286091743176784104510823346591988816187519932426489515226623324819073499544935043923209208343450591445586567066970260739915967050454755369313394367352184645637834137300005482758046005509051682462439811914030395795762912585136717043175523713256811447169871026567462485758908046193500225502676158342120940478979898535692272170193927614524286390348832508469997694517249267208780489337348706668320351467812076051307677554849030733473707543319830741770063806857517027200133773286820447506038845174672699061295824862726465019759155971016421676638575241865646270053267925949522959105504182071802595665308037650559069440044043036370944189286684312006031732961510351170594223383313535462702259580877267993549609448563759890470819236032540325937559189989189614570341518716858638871931638039130089363775385750899586923766483215253371296555585182144219568074944199510715757976834994109470967254540584526190791219827223176366480149801108309013636431539242816180077667666871255296565073038042283517008818093381451448702140350432400050246329110937402703186198804347876180795628026558117462876340042337248286883290125567729206227631892875401278446383103874779706943055747331707545175117746783288327921251984741259988509697737730251899992860520456691425399809937810339506846548538242507840473327225172291801214905109828049189241870921746817163055181309872983310547852950562059369568760497346934026132923302528748686370779109086364228186422942433255721056441716796129831112801047542111773147284227961698946530959503125959580323519212708652054109862169230971192559544876551208761838620427676279970387101274785761962235411251920802295716231793862863012862116159404509455297368570769622334040351751020014888255126796904699663866903470614534227993866397460044599162051033273169722056706048855862689973614134912744555508366497397319922615049944635743841367928838766088054368857158187351156583163604243704062536389580406796195897767351419755442214055997378461181414956090497735374716720101677853036951869271898180944013395656782600247662422013555140712092976234822675074954777274232131154753520732492173652273023131089215171898476963509369721605189277441041069552525853828439150378864846747670519903571488699129713949817533540592918919669812229835252967213858295463282964480164547797252497173797404127973764867480326920400287182843682572929525638299961891760811847200406390792359130384825104729495736316028320707309650255624479132537841635958780573433458653546805077545004956588908852093455924600890960265083027159849161268106782045782596462376136355020338201783513425809798736236866851698325936534470772483297542595369385555935404727808450791353239680624865217593287422644342467928452716715414475743740972562567593161879966384267201798808647698649527754096022296087208886424424984877584240860596158905608550694314167319101277963434795383805319508484655778484162025942924181745934158837989775022887440233086544163919698208350120170880558032396229539572738618886899850037965635732565066807637692991345087231941262800548834170072859260809731199889501532717212861434322055512543625101658370803227808989006641561783037684927465455312989916965314629388746510776677546894072863124010705395966379248967351857111949613427843700433742861670527913260020145831701319722976826897604950889722089768221855395586349163905869703869750442176141400029417325375222068084279050507150107694651839108204453760044619017077843125969583810648981170214943368431415140325800612691807779428727141129052918427360456575896077121656452213695193740011320199491787117781487837434074829571883059866690867632252180708596565775025076755441171846418533320858782589842161837063409570556213659633886843823203177142434339370478954359478137322525261816862244326168659512149478014981833608083621938000909280847913969392791760764930542113616120385697756105568626031316252074006268221253093079428301541622132009177690015413167081782484197166300335254671902024035934126801065762001445507901689143836026586304274691361051058491788012310236569181435620700103307528398051174560227541000570894680435218960621364642927213160390065417318469095874896200233396753527138627060674835198711370600263224180403350317414103325782978120109316201999465235447101754375120132786674352635768631030607513033527235070191340708585033305223946501350295685070590284404325414860664962725383712440900397128346708634060323277016036530610058243538512680460429620539422417812480498479232208282668514165159724584083159151985557537998095603923703384555880364714002032436481208726288750000906501369385373420504623895566667608003547793536776345507081731204974181670548054175586376134052637669855058327231388202568548479677708258008011217140625219034693195947448532232759178082677750779911736190218423796732949316851053969592833297200513790542246256227880878706809722542753859689925893607199659965350611526326414632824575859255518644843014091082388033245016734241960497751289557161824109783714905430718138958552393183133684401044201389917025257660925714636087522801493392449956161789655357924334212085103236678111804964062663816397535001056029495671651919814176310289604196777213526811427983330885075441016216747455936402607753447650053441803178079221886983288048720740702147282304268108176871315609905412489236190773272138697489936661558617529216033259070888291722352875918768131905727276426752434889092637489351285093745037317870792359385963825316807219313356462047560675165677105016288114870399283259336624989689590417585744368988993318254709685031105273530123225010694630127954769444917814800026828718754044678097007838571036562623784347665445527095492380641302772063428133174788685794503044957708556597347155576092206426399834917444868285181348693679549341954876095475482601907581670970376680849578779754507458804557938444920281705780025084946090058187488224056856988654421999268457586265018054499130359239732598110991500659402930141277507832983356733209908473934679272163361977922692749088791302431011098562119028794155001948072407915880907322182579790705142029685070131468116807903540888826337660670087103778741028838011904603635824731432592847140649502987953173803828280440348889591285352562746502151387716010017389896484351783548764737789844570485356988804925838020807625216410818629638635818242042799225906403879405519632343703933572382031959958707496275238137131286136007693921329601644460967609873909732883076547191319830614344159696957336564432882283225749337386695600218926681558629151307867771637877487137990451926265019966277684547031033886799157648399218255874107108193429063114892122368574937744193181284342515221620426722495486052483808295116309222506638213091651854126981675834824244352686995924671312906903798169197942599112152238022435864548698029533410777445439852550040624885130889803681653889940142982276138865081553916552222909481262933983183236638484811300816953819958803981531162257366706856178847040019396426210981600771008562562731039078138703079897311246745055953992001275105087802728558135435391367142806589350942728650144355205775389910079128198862250864719068526848454306507699621721773941511864927391566348125131924115385169788882495660676041160285986266488827325235084266974068771743487298739144300829661534328164741536060451252788012208270994681490660672894418787233698578395770238130859892905949271765242653894575790161043505659710218497056332139851505742428957978873355606792179793341570951159387626262382352189178196747373771836240975006383027588207651016038991356865545688039537442145753928297561048328259097319730337740798131830640585425528829747411135240572024003019225950265679416696337777741519562652778454108096180140730526066624661189012572920786308372067541999202430933769943898455623641204901495891593937750804214615014895553692120091704033841470845172427318863495916754774006568173791566198248148295986063504554945703974172470344500812544068045998219791154470592787666183019274716498980498444576345977495064768014194827266472667954789180894607098586789275657179802430037769194085987199218845193479958777264785546241094540559913394855942444172447279835379448048740343393843076534838948119501924875815369156195598763306167687358529256181108506444863536314054106057502589536277100767897995549882158742225472931078615129329561002325951924024914261125202604406912310821795375246838013116890080054796793276963622833837201240957593457332203019995242829167789151312061980894504823331046386324414510598414601289842700191734571996968734832903458559894465140107238396060756546691923504281688995003592082231656716609682555260730203929513069075053266807457238145411456674388393302386278906842661622777137794391390589100359430728619590493545888976168175161727105866037490716715863288184205788171087410432461374191488250301046797906697739213579916751852781577626383298859592043788230818868692488087839244766977414341006346979931492770524531336730738148271903917683614506206609588462671278879784134274677963587524154894194405009774163602019657633620633782591749596641954299505561563219987325605345810479181041211292412466733120415817486930841343549477593271889721630512315350603926666343155308092665446948502896363101221720373285109630276702416921170379120706056577635491413298320419936673520891213277523516577867535756774694264378933782831101302137686560360345796976649275533431353595739780837654329869091564635180809801813793518755421143427365312807852150928570133636080662271616898600015631087777732424561990078984376933230598078824996510135672928404586773806869065655264660063501339158716485100325502028389360013352280383940293092204644693737973730010463919862362372283897668498171310350567009912158975601759017021950219825455815281155823173262103384093255385604179584585761351368156582698318330120685392838250169279148925310236503707652623243751372536741418914067173031485667656045396489868401332011599314631589143156914398812756036766462031784957818697205293123267094139525692326625757224031062901097713622835271057351119528095413324284271339641891675598316935676037070271319558209534450716452775519257967007650416017439660740090920600424584561863379415398766424295363919932994249595903793762110681189281632897354024841609172242796639430956780548355243808651485921979724582125146422885127939642418712294650642815754664639771857542478359134843769781169117827577935093781972438101065618864745482118168135534886394411330819257076387073271550038260397044000695958158449638219347422908901978520091559934217677086566668060686911039895769124251050387117178484347778862856282377565008474148823412897962411121886765714858567285628502457198461980865006787857242410858489051669586321713103180570133459279458711009192444510964048582601094646478426319696046563795712479172575496801929831185001809327150413218708298379579341453524548908950451743442696181120858539956547767252301105372660842547563110519316487217707874098064978545224393192110080071622808433004096225897963594063220637849654970817178445769797357020167492587815003716813704647582460708486007065892773604486803256823616259073766600015322484411023046918918805755365263995713260665223605098871294382633920020334274326262819123065802762593143516587488666487361763984207392663569144699938986829382268376549722746208395550366060799172400348580971904531471796924268955656052971842712893200846909279791445457925592530925588223443912800567265104046746221018456257520358388444470479730708346201796375150091208428366946363529725357664215121901361849831333070334208057247851925094896913031193419472496508816330753449579908806083171224565983983451319921935210311313659118381282844814569579898192796007245014111315405973814777253172220932258064971110524810126150319691058245947873844011265035513590380032737447316911388765209235590991956588924888646774730548041071794499585390389685666360311585913348302305703662339655591079123034540446264235242798406064951996639863405605447392866770703379937812981020433582986326343933039533191786663895549378662153395796780635426937824180555827403656822427144387296602261993526791718135073122682772949059227960787795538938481351801149193911375489642814581534642473944028788651412302344904110959059654995378320033829750049742148824038986135719269035256063707257815593687733827292002128380875311770225446374840968890025438422549216506303122911624354764249260158188115989713661730931725147419886770436673225065400397880984045332512222674925649039685109238220355848033484500151814508043690942127598411548631969980083636658674588912116068539054637211141637830564297803974899182731209797885559260128850143199458665348110213029366307330666354354183014036580027570178801693843611834274668184555004007266522343285949623410527811292725461577441657022448335455974998584615620230434873260896563695814447747865362655717642833693780657457121335012650037220087104364104402708023070727152478522583586938009370841183761138766356947172426599604480730778475570387577433890740309212506151161297465626095472818110364979683568872327851737007204989315869239721924948463764999525459932396135670780256209665291534542242595970084401584519524474299855812664604175570176253544912972280021963334649721893991058352000831991474733657357254408267048022593627809989231660969887159095682671307948455464720472317464247718792150980893706347673473003366328592936054048627985008972799856027102745169175206146558609358501833245880292750439310672899367309916653164243309483543983077726621854451149319813830382504914079602410571408601839380226508299416207289331890396947855322282799689558078875509852552599226989667471533525630866683421338049003275587782234862352994315025490622186234710246850029275762481379865970267896204182819312522541990940064483991418691800586567404900611459117337717984990903714338498756340352499100388331054364210531815634757157002183794621983600520531292123431984310483144188327344067195400963914181268104717139814754651719268589868515489516726420865176985095588790879540392091176568404436241316702317000256965184829256989562195985267663148270798978778339478599118491362462680333667476180674927929347954583184967443786409188108921458953392357878950741387484462314291865724846554578137183206870804779266979785802587931732020473086495187277640274540760478973954476963312431161543691775244019209255449917660561570427254680009811921275848323784880357595088481864261781674411415102514338087168641199698093815209764572469862128817164028944149822077645742731547480029325782132718623179257590413930591379585039101953736449176775394859272627287257779594480607284839982814332206568137724937940018860571759172862298786834809253410778926333281431460454208901496767514624713092835443361524715522806704632786040046432596971151821377872842488027745608337154075272126152220650748166363170423175669465989284098785969028391679997125722017785894223357833115758302024313118574830810431676312765761127027293543244142671379269559940758609574235092954035034532575661832341035294416438838876109724574153739059314712895675446444495782288108450283778423190143304879833753800114570294930564409382860002811432626316683857628145092708689239781302176014514729624651231809714296009389387676468624773271772270369003515069838383267114706232603891821301812003801817658890767406024808214923007651359725405096441282498693746785449972608106498657489393691769006846454986240624263427115646572954322588546703297599289223936038225390990060892479366471490667857691010287052331440800183272405451724741532848971126784604732031325688204943725970461221529538500692960739414211975981558082940127817589980545955480505900534674707948658019983384353358887677258018199690158643730529729991150998038691384109296678793190217467786098963522130497960241708708068511156382940799971953358333506146028267027205861638031562171244041252031963676264193210165582072198449015290838087264807031334024341363382764582732526129128458219968640995807835696602982420001675195369124142954269029639627890860152229459721277185817272949782072455029811427938704725288153627076979134078456624445305662151262154285720830899450653987461064568930236395418384813612822675333487233300474570324417768807113380734885237201917225827652565523097967702547982343186638040800788866474285661110651185685423862638392257592922899806914711503351750060841514759001552412063804591311003776103046717968356559257665412510574664580767147503157569974981986359301359508098566867844363359698228072332766422669934683548464519383707277178509354056831362660113262040151116138180721219806483804606452444911088405560905143453398004259156428877434808760462283136920603221189408545253166045545158071887774048042580479037780192680540239142152398710022155774767275543186631485109816978079098804319419987714798233411869146555657211012727923492312856061358653796512218654827617042218990910094066425831577054169308131255456518486739718291114527957521769202664127766337802147337635893822297980226563566477572942650519484739824118835313054919483906770885640963060549365588481263530773357090224542641889660670974122243555611585097765053633806536392250823630559356866480483217039164756735222678331297154048703505041701510146902422441720843254503496912027108253172830498133142206521520457652302145011162994112445220687533896507172707743976712828665539024367921304035716407454767944821415379109304205115421174246525056528232195621551372144990554828006993405017470316485209797325752092947704834998450453269467545733731415543770398876877266678463272411040855577370475580487109048753334549837330304918070786107760935632662204450935170080460110926467718128241692024544777332559986632871828211466890783310635339769025055249730601552250290023337818669223332993229430906833227841911807268790987675674531105700694548255215209993204603162890712698479347665097683264567253328176772315114627212938876890005572342547255214310060902972073235498676097846597543518779805939573256215084581615815118308495087431814618217490233833230131052452975403119926745363342717859874301602765037473857218573007218816395196110114088611994816262476831962923975508865088577906943274203558333153351607876232647276915660565263574268368704204042102897009497232482115145879788975559284629096399875736578164787016810193256209402280183228412938109652543786558967198474309125518642768990492906350317516580772678614008313945806130060094291385596248050835779871620558996391933319112151664755786062170458419425735605865839300997703126465006556083255205891105685837345596436396196305121138849184130694532085378087438341224681353067177446443510760576524805610671883966792529207344751157575599932166383224423340312370949223511995219125890689372173490080538666854474531017962190016858407619318774634039774272872822335215413604901373971008107894713837741373162643302272946757698687411075366678233378782848095965704740634160366594510026017703283167777776604343053591898051945139367851273917455148339291059470366990876077651956428836688085722347771191679747732156497497145011828422267431470017637849788577847348907639994633851822660958549660152599932945371552114044940579736631494342275893351769325788329237139772384765706475212569827861037368590775597183556129488405696549754869894967363911210938691082907149993017720822209877820749775832215304086453611608938872135962702319462189532041738030905646031110748220667835710780737771437548799440866430565627453410401945424861259421140088693108014763533016856980567338771568015019357193482929388154011479263905806383774803736224018748368988979210757239901836468030619171017974178544919857717210554841025795261947101329196652491662768737529697234342414552735146193556275736962366093408390132843554640061706566319228230550544509817199561485050583589973972523667040720916973245874338151517725892940631708435255496092033514787109855691937447085266593416662611283008551540141666432294107219412828773014877171633257269654292269469239154294110445791157232721924873905456552469758238276075634308738400527620082394646992039417373931261086621330999759795428675457334641230865236362789179925557950301511066283680261255156259777197292739787434418184493912465169454058405395793431594936850507270196607566326495225520577703749017775442084681626625928446440888820871432592123149311432946558198120383686272663788499116680868663126301812203714802795104100698054901748201014280437854621592614729852241458912099639888830875394566743773413373984594754201724845167678677985068540174351860963553935526451806872340426659986469902214554868154532385271297021291019856570639472111144139077937994393998639952546100603223775648020106413701116160997494919160237347886943467418722840499395556898313642558419746198955354615484443450564936133926360404060497445687097426390998937379093083558249094036749582443507180634941465493224652347269468317525773852350620604810755302609451870848795233113070022795019844375970876084275604975750635123497771421531947571504503229504531626977268934576868217627099848080946231012316641886514161331831825085886021901954588239329772624919742383405488586870588259214099677837500054482237754130447081163631164252831616353761359313245910658610001362483761699682874291983994028083020070631287095081580865211120080535190110663904211584061138468280083735394824116946874666747758554515275654542409700027904733485725979399500262079736567172894051598938233467126797572721703925317473819025533069043658503160149271732393654143113811374248581643990101788881040622670347166778339747199355181767040675465798296269896370675822995282513492894213795866226539830994654754828413120101527986696746315945203019942000097780554319759834626709758411910472351247744877576351851413267833296092790532351863085800374389691907306243706528664703702205161775979208090407064265853552722245784907800751475217721511810788476161012037319253210836202458101374208520976117759286586807059632545022903417868160154205024687496486718666469748995081564439561097917109991704696713704930044073498608536615084957629369014867342446958729811160058657156712706088743171313525129430196493597256990989863419100478459124461810354411359193791632981991118962062477296294173936420819004937478450677759427081697977219779024276458787602795489756918873803248021086891258411531356794847511690329832793961486276143624419642780602386318113303467073473636307667014528458902873228791862299851008734417604151272712206074098666280443624696049092698381919161388821698993527025831026299703352027119640787456189201103881769546528737197004539972935447160064532941214231806143589292765368553734205981943219425151444854177771954128398402533181304935329619632253685663081817216576362469332298393849982625397577652541138869275395527355318182433978414652985217475098285543609629060885178549769297850211827333883364694662403184575871302430031761805802015343312485286139878973380230440669455211542074989036064328843476681770354835048304031968099536738506422500523406288925061367268044644945566628942811655529893692956127366673885167172193768454719900663674205405982847045720064851014782089026920731843124338341590260007311543277574629944343953745923483225029907254218534544324476754851172128716862145825291450056488432898406432956114937126566726644421815477267507773155476688165152955898221594535711065681682013416135072516009995697950051062353742733738695260531603963728800286957415884385376058894890154554429130746730451562515794657732367865627431396814039920220951513309237618464527007178903322699404738524970589657104964546213866263184438472753620778115667409228798394226110368346872772815857692046214135176167963884996301906048357934416799167608915428259619091667387403032363081406039624036262205311997014962611829370905600671247582517644140583415998907660376404499413142008147099371337724362778918099667427723631468384321693975044570517130615334958949668501367349009440363908528537263550990755011652773757860841453334691523962092930769685465959316009770066465084336158695042590767310089908129247394546823184202317695498560147915507184602863304310742997373261553541526936918494956949760272510340439374618200634091602997612981617456073759554609529012643099734142346320112660286767424411548248180403749060475967569970261902060568063880485400765426985143034376939475382785206436497866473375738535579477019803359627500783615487184650989117885367147100656159359677568233818059420852898059432602934879460543121754602463620687933004416419253389583129925092436865663373535759279092230929808106014393885964774319493447503777696152256379225013861295726882486955756669836976216117984232517535454075468157913101526498711776801102262187088932071076740415470124953098559365519229858897529613313678579921816715405475682012206092565297629816625154954985962959182373101191806213762864004831768624096741998414465430717087990496602817027853207587499409360025960532439793656066626136286706252295205162881000539758990830195558820633301722835441001791094602904074455348719847850929362655786550871984606617237241885740671965898115964515726795561706146413106962319834397501476143049588920864296435465992744428802121136706069655935897469636999481990270797366056719024557992464898089556280037219504249809467587123961158129058478954288502431703992234891924851083970196017424121163939672454739242377533692056893281355082602304794630434074940763378699716703194352807958245271294429755950813040943485823249550170170831080442539319272759107745915638381009555757319971864362789153436568852542633412809855460288939029464593741270977406557780162902567763910395007441446087793550266143057368125716303579564834221908384084365186206910963772319628295423340427934960730167815015829029581432667557967609777802918820801289392979144212871648128977085379339963722539109581821966417469152743542769359468277657852302240723855782800909121828403240199411691110981354603689768583840492243524269876758942703534392970044219096349510565685707612726167858189712928211367588910552157917195900596820480919275725980149123066258390186846494885215037898899940736680272696971801642852230095517751750665773605462646941417531438332957347107460103930802436352533923454453075765631936779797377562508110794761013138576750234509597824350949509779812306205344304349162347239672634362114372035418736446331621999672443062552081444714293860610887858719216026395646924340607433394452381863203436572496205941893450089942302590494004168362517793328339608051426458707542146058673674596744053341467410690291186210745314339325464330443149540127878198434356773330637993347577459623898728616805870953254971587361322640683731307190140985091270101610580908880333826708061333495123831231936866368212398199817569843169021161769464171535665214340125365473835522409369017834090033357185804009238948436578695129560092826355248818330353873582269173618820049400018694146443919749446359755821520742554029891856042515809649757015265860895802527353938898593855511030133317233570065228436785522759608515865438180158068107484212076512944602928549133139319537978687492001115296916043752835166796300696660321947944621209890984071525171385371562672190689827370217390109619176208373803895922255213350064956974221769121787039612059471560430568083211431102686020301560421760762582762708237453135872890880290304302511607010482936965726475641337971231729917868749665384148541526306232975869851917605128743118711686550719476130827141576482937654506830780105026950026449652533345168654829544899917942777297070372804829539103231015799023379985272998714282793885810648068445787939037049668757500094690859949343788879208063042859606402047960527828805973905020114068628431488081460269611701270033233468631461840863736822615607202079684592488918351346812788913434550402172991222221758868539854674813564460654495858908406161763108565715789914605209777377860681480726328185483621144379073836646944399784243051284720700690081478646446641818821451716733600184528439489648816307669651421906505644689696889116268889702370004647606148160828999940542129720194139616303370480513924131663655987296035665691053205901472413856710863918715626869022007089959738924584410819677572371130643444385772939710155635995360585469791543218664118962741213069720065737337688543546764260936453584501908701981896521306789484282202900081965336098933837238098666235007793369539941967384053062333058920833609502824052948614195493046599460584983043879367164088244786931301910927043417620124357759873958892536528964315348781142573174584117651956182599293872150028354985201525223707063378920258954362691319419427979771287408463375236665793512413718761311373028281109476351664482724918346603319036103779335186981165534367445181398318102499716182508271451849819972243973601079299724759338914113282521191867095134390033693674508986641788482708535186326127348252879142578635419973076947856798252341614141887134844497530136027707990617234061188555909122020569329275521988780399735797796860541112171504875798643803181168799132023485689848623678438259292708017716238287211489997703328019266456514973639680673066185207094071120548691772465582952710635431716514424338816118395883308665744515994018244541941316102981017332871776960950532818784857827965679877896453101420802460383479472291905590575775618869719673386837026513309658313522446813123914835840221024796301238272291187902773641655813940265165546145573379172894386701973853181152020025545666081299009152492542617652034911578806075517559819065135706687703924863946609093825465884752100149215568908582759820517022043403361338858620143229902345274821785992734647292566424703713436119783734105614650134736877492282336638638832600390975584811166798214998360603881508850973405897063682702741175703999386166077368922389696448491564617249156087163671180583780135582330855645131449382124852987678848383563122769251911574559403094382198688550125756838535158820138402385947621163235099870017256596234505241906383395404114396281775257001842260142598234728060112504654186155537271035138307927517523929627892997412559405080507106932212477624168554292605809012620161981626397403888508962769615389705741622287197430903170824420967774507944987828613293218246051867467033356838424845873507928551891525186213115611958964362320458558129897489056261987112446050432156683215859010702256840783716715795055581661605811446279518399037855290848135970550794951564607190175826105496370281249686635316036981814775198994182398831472893551617979232707246933587395985563070904310215212729518018046690825608940578494059081501558012402227901706791672262700457718172445709364893570849236806402185548154597031566319637996908570138191352005350599287611376292401483727243516853115737316788390115067208650291000289677940149154890208584401752144011306759696308360489032359610593734071073597902718930602911739613302061034936510964701141114575578261588642854967779279072011248316180349747721142463771258357872545539827578567408519694605979795609214815203833815869259387659342877946146062638922584371532771801263488252263488344889494406032297954084833333724882226332993137481994439109306263180536040717933226937987663252979269787169023103420384175218194053877306955589824356963505428967330394383912525026401078502464372830787514432231145566942085800685200378277231190703951159668856211340221332330882015098803779535019648558792714450196418345332476242103903233725527857123492949650047136524080740513173171410828200527747901005242585991218993121809010873331211452852573330343908811339165875263617826446469432133520496858716549170704416455018109235889339412165872647740220959506301518074213506810347043799433615468766374224844028211975147898954719335147407665582843094169313690242552848041882600486988424641970113203504833482248841347564895695269830553623216861426921708203651407346385345095332183847633508704080468091581160799825246262556682115825762734079531829438091987403794375164096230049258003704583319896735157491487697596791036324693285826208248116185037202639971363871023590380462339902991921172886263362839087063005563613267284610606091500818771620087752621108383074411947261458496495148897454596562253390040755222326650842696973120157314214448442322917816220947526792636353425737162361384163701798631622128738310842873447898892049663524871966125519236841931712457537603436660523130579002367058466842742593890117618075561086220224030872883313731468523668461397907958395842193921368987182828983063926167074861224362228085950974023683387440876380357694772840205136287036681661618562583318752419567743998333530757052408777773724092802643428678888576237757642070351231314676772857920043686962284961000361628263153980779676354401310801685879992838051250625490636598883204481536816024536870280646215797175738845549619018899724379944119620876045949448730622576633294741038743988733999453884047166974604885600209914416960030608450916690243803729016495387868012872096091282088795720440759290423369038255709575607760825905161887750022675036305794222177290503834404212322904298941622730056421366656372584245708929577107558539322954879847636621966207605348138054953855092288255706188385918332454664971780797895609035196354723021083316125715600858174726960021926023932913863844096177367168796577559902750170813787350012481351057051694274834689040898475829616106890917654147334511735561060541413763137166101195537004472077125958033729692004968608589575776006673611149845314857591422563179671806884396312985393571812120962988240914691558146724208213743491417714708957963355392790111773053848299907800839201678219412372352303349551958758626179956289194973649922673922909976354948888183995266680977193069867941801789231357035378172505430562843774550573012387622651223495075696701376470375735292737435389427909480484519082812787866247983509100913531373529858004878472257896591065978561479729780081097326011584434045162720905453633244830448777224298013969850708017099791535009107154298542482955883683449762490036737778206884252668599668452185932649212244563563445542421080452581415245185605526398331313231877423073482377515073813066827031574120795996046690338295970971575785913711795447611599565285376581373662605832536246316833034268605563120550354355076246475221477061188290528561016682852242140947791271809310139424358482229029534600980425461186698502595944003565477301423958389201975973565102678915896360119993765347485086602575185749728950937230086018283360709721934794086200999922580004532968291767047856318412210330961613306054412180511709489672318376407635903606426109785478911733612419250637450510806142073458861667241060653445485832811936386317436509692982334059873082111897788083251083854967900590240763113130918354082171347155355994943269369871049919650642707214286320154398039504287627950642898635408948280646236795209992520280800728500189795189697624576842370926980227659764489524413196169254571201164483138172502998244221456615655625796591527169788029928972357256781729250344588472843455433869668489544022952272298770270014022598093589599999589701195805079433181693013382320762127225888889249699668595882439537982407058762645438414501808238575961438849575289285806959539656690793231358343136238400048045736982126383319653420356080526107579062093921441232759332872041449250907137239608576559593956017840721819216835191255644933416592762938582464207071848567410598961862282990042055860531306987791027939170559000335773034650672390151740338347508375860659636113148880167159835499209957891893449868639652203596626314240502381871032604151778988445043189126747316164872309984230690521084477630555616423446888515821439288061815061578635547866946965258990371738593280478239463455535561909941773698188112192631048790834651111342958078379342112236872032767782416205532733326012872622831332674397511426503828962892815235661257776577505123539079166450073229308387148576732659440283646668301926547184780585706326990685272309914907001656661997817604601001514018486073508546668426990277185378052822023308114380743328652154893450007343884755332560891393846447710673672947536434010691761297143772285954224203428156082492790293643088650821172154953349721601378916460810576315853526720135903606103175363871404682384865058664628656314483438695954922137256936973649631727151723212058373043259389118002150988810403679619226639165583590568732276292136324363092051402028332820335237212476445740785269826248319644621922042180628113136262765331424714730467088591411441220463683956208166586291958490301326297180589055182207870435615462486687679986596859401857674467966882153082800384335171934432944484754016149800718561194397747918600786058749595084646309150972228484410776415704996684818120887145264785057427897793392443555162866935477222477143258525836814387236639944586441458264953126449837223025881947928794923829331841545281498486878132293823624547945972488965599086573847008074322885048501113326529407875210029982043937785622508640583635298268997558788360827106847949534481948030471679138539180452120582546281907077758521917114787287182880281767895791359250185964452245820049902757268666307932002546961828602215919759991255321499842421564579130968953393440857745672893061707781271637263753073148129865453853037741398028121762721090738111281131110958189776407629660649325792150945144054265882267212384548450492605405541557456795029558276315190975230832219732635684694552039013270034966716312783316035968175556710564230467249470054014797646125884889115701113889654165432381764310722639216788702920144712369663485568060953494130646780127923209757292292590533986104478279669010473605753473365808722549491014452751794404220440229508929380850465083052694371742020934444713272549724395723818131540797927289553438581686041450511275290216786661301281884101183728098853836502821972273544234644250761172085082490293465198358572021323372362252583556375495753529803540214443250743293392564561044482958335975267453631533731116271760656031688807651473770036002953652647129429905563518071994502644233336727933643437600696204698440869521558674575155659762203961311652275089889970245731547992067312429603428330959336141555131979815130574646241969939992783418939144156376814567769076908292997562888617406753840161234052404895518965845017713922646658186038684110328294447058996911077036652528043480299070546709108285395964949820286925320465215224908350848632369655600319318573563066444480753292272985379695159078765547193912032243360131240853861618466072543020709685941076392924000426001857295294435695556671157407798839006894962908980049672313041519960684082641873858199542599238754052146336725558895522250555989174035983275161850795955741373046982661839419710843508117357874367808603696603033072728660554876714255908615814010970912990753299532858306345492725204285144720105061579934121436533178260563032509072561969903267693451167336353269996432639490465704206576464696307767400808991621212975882871635450669952081037339305042363731158596004539445114628726168018934147668615054014025080506462400451686139309795209128713542269408541124463695292169775060032717760691965003079602583413580399404220338030967827717805849907452631054430882413039430651828620983355531906971449939195781979891891436695274962660682755746948819785746567061653630498126922050974196611100767302200267801596650555765243096052217837665071293869930428763848618767012471879740302033740262499466908182684279666801917095283788241012868996342678470259319897561885406159653159352537967190785895869004871038980597027967951428661151220896799901390406630633706719033353435768287026446244068112094598520960687570351390981447753283841277726019574782762397965877076447588829855557181290685619649312697216558618887687371454392222583695218368064348508986245350859373666745435340403758465630690723683924569222334492950562325487151366304184453567890486937953361126740249875322282215158216717242515373905998055215667679648300588583811863510621921663790198945712433964981473370503880500886770412271394107310480595817196016288503497507282930788773129554012372806542870620363864119127174035730158783963403435585719132028017768138859156550983544543814536474632614892891871771345696085461737411425816164287425763295065994880777727715137767525562767360541746588729409280852923424561780695641151998918106538598721459596262461041641437980335000961130606233501047058584994299283102554200430629642659919924618583299274536168290089173751087216891826639769365209462253592315464410717338543381791117208913366825508883158758247153950237048827053616203742846035661727368297940980164033590461671817703403066734167738508119166797534341593629630232194988974397927489747917529026263786313972952108918616163797013016458398214186654556465534968074071896227324298879113098017567656698993943859931600240184954545130128244707865105879803168099915586817405380976949100443133684970869537956723368337888995684933685270387655483273262012436821381274538464410963119622198174458724355307196772880107026658235277446411642193276991449579088896879406289809544800905269091641465073548991926817360327624573995044947919697970553493816564371259867418052126202144533400484727246982239103896672086343992405129583529661776309336617043548085802644573502669500500627046386258617720901393710990945205273259364337405288751074094600216530115332644735729867955075084624009180604001821462899951125649833348466003771021939404770854922929062293991951697491427625741524505504413902678101999051814948927472537834509545449476746405963313023568084738661594303839946694662880501340356231530094205461476589246486335037449035779983120713573203422766912375160147153707893033902883423734801141420609029555880913501500903439568627648009786269352358235777717758518698997109086428231797505632309476895611856127023257615621192117709482002961590433583690921650970691492685054190250337126293256055567302718003069589261061580543722046520388141164280176332942124178395543407587999110575575122969747851362676300528684959537759135411257348621766872423192961883415054326754854264371155800384859663971917181043484211262911129801718070716489902437960205950487054531692396850957559779241421802991777823302839902694330332381543639059805973968844809319863402505337259277116235598156387438291301635328247691282235535279244777850280159284353014737702707766922132305144218061594771130581301423111043489237438389579322436425871313319318628037837273106028999541017301099264662852503345115127622713946752142232392141574856812771038218986615507248053565793208199252877064137104573498729231004354702854101615564454268229705734779331311959808087247916952248078076808663813451760595469720178080305543817204858236182702060963764199552080888653977772952128069767694281790980733775679147290598547431195772187731384209290622504482920212483993673608786236658833670347781973620777632050795818024635498631945079741614296249058118539044904109060948857169574023611763401454630519903188197875038089667206568022999898833593980749435555152181431908706634274618060101904857047640404423551955248603659274206434205783913220579626701952355098870643160680613355210662995175600335338068396681539789310282324225671919985502772749892847554137387996487828600040523686438200888104858169852975481640144835163196620128278012873577339196397080079401881447435139635402287861890344444060699375273051319356263611397880584536576741268111750401034508752559423350895656527114302913838341503200731388823601951050853145080346138700132249686247137189453902147405813712872394453470450783930795412071166463886043299702537562427405700746907394505880946180281052407473268205603169695832602074684691966191417768980624730507559120173695358024259742921222631614727001200366736480970279874001976921764010246809640651785962718787426535829538363959006792914474809951323632324222577990573324605631710185764212902024381573644095469265123979528479007423093867162108368174457234222315273073516941929463049473280491207851815876091818538403628290265060334141254689897437287370571740917306231714333243314249923940525748541961682481344754274748317197271416815620972598875752831652933297566932754848448453444345528245465716393632221043912249768706066593286031132190597434448791954348661970614357702140167869048854056707785327574663998076579809001346963609634834666400853202238638512359866840956667803294987909844067855671452546940954616130211198837912829547601915732736146944014237489797059635894031672610808896859301053659092232327431355873491171081128370963919201863507211444210486664880949861671027039088914183888241681536549894390722407867452333941870815464056358873155878718974868382634796569293430197199827332529189612940510700185783846821966934536565604610049914871965756448851676317451045584369165843707111069563519444383909212065981210944686623549818666142247144109850938406753175994074334801438633727595061287488036486728951659963089508516986637307674180288745960560469591245095872510173276041676762291165087165326316920880705509387227313370893543957504585435644727696821044403439017693288356405121116841818272832551375269022486170248868303041043750470411906666706375087169112939858834528619171357859652866643504637809799957906046257751456265222680583088143661930169304353674680293645257081636472280745774842791815585969398759582676365272847556793687913106322323672840140699692663395763829802568163219062755253724337461554359587378203956533538183017642460728379698661667019274963852908081029525700711297257471843108437559585247292576669617734541238355556029505170608664606998302333654566246272618405208397796758581893059122571460112333127084012095240201209342767946741398046529790198723990721233073277753660928728249273621830613267415343314828065647793017893039354746746556693155202512536398626042924782075744365973649843046435487211125354973496375846682611548982869104016206924136719699349862001912907440425152896038759447553161804576429925276383377009239991673575337103981298586751126399953128039654722604310201929367222297197275058652310703481275527462064365204560361316325732922241365843950199950412728506282094974055727900454849836933957663643223277805395440002771216774875944988946950798242600553344868886406965758476457109050450306322009515180199149053011287625306731238127261083355972077187106426269337930165651197790941486274555014075233984074063346392846768813635164885331971899759372629053626185397475633872513550443779416948476244971648091999678452095561805629372149520690682387855362330937442875540307126957319184359046599544445811086763929932194685686293586164958862170048547471347759321472541465520252326823584608465785259316435147842277825832701211929639764818639299935584712164400294567687103232808167160745608900113069719195595000406564149197888512070682852288783607291488112271065133662213686723114010504236989730180932575364314606335142802797659202545842954028224621873813932526889031002749700639840587182154032263486363546642944234726110309130958717110025955813076122968549578712331197970100154822171354041380417104425228120816709597647009984588294848729127927597134938977893700493818233418529014486593685847217570016327091508192583781595328353855038355039729409582708922600539847188318400268548243862542155678246361058544256872375384018282698784932107423010905804364376591308371033086789453115731681013548658631251771502046864055538797547997347264001467794794171493560418937704946391480374048627341537592773345669357467254895450548659370081000395579729924009003253962251379975389880687528429657218151531276996998080645198871157100754632174486800526449415647339278581249657359228872987809073252139209178157049009196495475558665131336842726002353509340636038915372504349156992202378718657372658966223399524529194476623910455010413297413433509425596490969052171170370928628851514072554526237469315413933846674474909383573584826397595166404250831781927704443590921645951396947227297889811986995593246958612639417809002946966134935938599252338630039465581679887398888282891040519128185099699722806566400142389219499658100750417436096864506202200475514830034825759274515754462443100657946827403558352639018599916237315064709724633637399457741420482847594654152169473891026517556850543241387601087793697402337083886123484767804167888889275535447142328327090753315468285381274109756803367156244753052415708020551151145152328376435787451268366611478938851309993862850473453413863121361080631013503207632115173689257736166354704370703757869975268588946259866330761945590358850223185027577316896470314385273019574191951164827063624399533095398969882493274455483914621405149625849998768671578716964857137840143351499630292979642323515584358374806770521432475620535901119679534577216250111737159991095625783987274741336764931387347685603149137434993671474923430540690688093916122421085219778454639525428290989040492401535080203495970389790466676478832215364998222451949171396146688433573885340884277738935537173070736625484354207310198286543555048278744170541534864996683119198782615726895331733573361087842615540433757520433313023187589801375465977655928470434281123401612223536828799753837677771283401557870956903695342610644856105500420234171528737891777255907694050027635265042280969236409484859805945327937622731356238257678347992931867899137715671072091404744835010348645762757052771226589641221529784099199727569252618547624039127099324057883937199455113578015181143489478028759649363817556935404469753049314393033307726568955142879489261008632343678504071855981880665639585055241236009217515479686123125082008881696128330316898865107748680114780405102658760757826055147083397784162675703653576489090281060073567177174530136035786801862695273855075320400218456762979368972316289672045687163155139044498543609862498159546091836692467623876453804477118767691393840051919557926395458603149624446845246684825872454495596991744820347301012765988538621136662829463702960283434240576444671761814787226341279453903612692673718327131110981176162436154644692829576938685285623768018609354423566459157896867685058939607463472689162787733071143873606068554425597914773527917465507005421589632853299199882327000510581577734110011015801692377945555290314848807688699255824555787572022665219855364520811954976087611908771019204676788311240006780549159259328330935363790184358811797881502212564272142913619449582389203032219093027060796403972357052705965398590494160911038303138546355797901222729004890861693677958715703985794096278892362857422845792530427994570295450727481876120455192427223062247239133740195418282808714714766105043612717517324573602448264051288073604520871604533222439821996771377040334755340894044112144955363759877932206736109625267688709919369067689718341705651805634974753659900114875234123956920658016336298252155429981070852665358908593896695061143271605610663662395263891633799923648345581021340190121447779117227246246851776031733189647194234803628594936704478851571555494159607835729111724387306995685908018437378720052118063875940675810487871587561729313458907610979837550764659864620846608352111996523826997102806765605191122493319312122542598898574925401802353736616405474075073015898702015879052097228244414325172577964930178714261641891736787028732544024206523510569121866104870366952732779716830480192352567618757085685651420657678340499801368325079500737193690794595492796038746662037800516624437220391128040257341988228160981657165756216943531136461012652344427965468382128600057380411404779687494796546849784813104337492069749107876501526865137269011726637134268249161482673861769123278366956977956523262981861626153748861365390694812760961954860416000626588366789747968594022660067996565083863906436048262221931511771435994368711238304862806842285998242625802838724234558104283933943314831961301063780946082080252278178748357004464887487746943441656229688926447338952283011645992613450181405449443522364607369890247997427263849695599321420080435743859217389773073425529718762677290940966555248920689144712105165752091121808424358860891712460376055645501314756153591847617784062179962045351464951134952363229226962182104178396727646739176450106116387839570825987904483059985117353233241889153260815498818340454232871355596541024286319683918192938608900640706478997003632541163646458324412911490514743532785814121697566719488198083264554664814178775857286016490087349773743515092572721886218161523979996067643505301142538575585292168377350396331111302549461000486810886469512855640602856458905425634553749636302880897351693971429062743067897236883990038442521028735153682433126204860503344251578264160049646945584651136251800234622439644581858382443831396977555529602098187042567542927960180827918418250155648762401770620737191049120605893638333078376514482881859367929237005603819816490691967496137457449456200009235777244092648887989565906866093065785443889535950653184658272637829404555786943117287177561538125405677502368138853558994300711749039670573234987964576399489803212250137414833110637469917850584506638652463245236980973174264288506307712223593267752316052973416061334936160486595651837549243310241332864979941600189970999252868046694501582842958614831053114158172398112879609799434940165164467769082229090902210195533634426619370472751371047153854996480734567908759847824918828867461114810347770986657783282663752891859341008640513392535375590991189273823899400812242274341936114467920202999212738144569365337821542141032413990002234805458166372626283648884099933689716212582140017018106771825946737885407709101010282576838480853318767788965793774640033731400996610703367187948577091004003041467291776203004244234421557399749312378328590218779467542754850491362943799692288358371404073671325897446608651674042917709633265007506032474356007017794670348903027634075658329009894187704017238759577063292417640224547445161299514780456409419972503280801813605740568903536959249804534789489720236043829272241017295387526029960885638905727068919880741675404664855852584911639830111599833195638170881589199090517285497363869152380516553768662932896421898438625741984814534422115585653319988852124368234291826531377190055407093421071175315116007510199229116500172583108425121135014590692646841333048444872525235204206691151334386410921637744362713951757374020104203723332908466841641579704737488683309650246905348422646940098148517034955289305936071767525637362677424424592526596854903301004297780336873959077520025787131562871288999522766988264872897689966270072624945944881751879567559394280749882310410169340078148411872523470443391107954823038396502376007702532103360582077432381657316806147112821977226840749207025890008459240184528868745421886608310902128844393667431147300341515727238787041578428020249228301219017430015820692948024040657638395288111249358910328048710263772573227795509089840330800735554264950572940773442658424825617114240705219233943835357276808927344902176789487378965033529425151283655925957296638315562531206555356839728943488650623362312135984094651669644706623790243914716002752049991918029691539882191478009963224559566743548311491417465883032509715029251440206501794168016812120049580607383018511702703309704425059376338231386873752821510152235174621466307087208666349263552153606919247819836097070941602725390030208668996540885117624997888264620428562702058227685503702607231240233100983829875917933041525683316384853090047984728326558404446669377145194946071323114058932325848097597655910207317096937547565426386737050450836163229263692059399987778858977859554368966925591412917960331382104509790966487444397982789367490256377202542654549913253009733965602418624846945891222177567667840830700477956617488117088288580561750209063081881565716207236847271115543466089762333055214602702011081763669544496289543615601024385116696370882132779901564877446577301007587515546047610947208273163353575122941543553932491715710428940059264179480742524663198989681549399970113567346093210885354927672168393389392603632669214278335636895615792095760434539995190781898489178090997525071622913698230244691289382286915703348924721374655337742229066838276687657415165118689174525717177660299235661632674973551808500771671569947806210569554944285767947585014339640018102579356847192181819771698625381835876010412579060159996456248912790322039203414879100195042344053022954949719234106813646889240649648612223849901556252416767418269265907918304520943650903922535170939784012440625107555184975249387938667627302565278707672276156560497899424564856695156453339752796487074466339448677626371811499884502481162224530282243705520351164222923876968895400151461006483464192989473053673087512866938604584062562234536657219550765811793634105290645836680357362184815650103346420802606280816844656651792230744460761282364351043844697829119507256982075659040129059971625386148062676979178625421694487598139178524169391238403989613983142522198176159925967971356616402653217375020737391708642033641189079345536854488410969881663805197011818919178475287630728614067403986762709293497924183812960985460403014632144338124216794122741886836999513739235029876845721927701655878279352025552042282446156597344223724752599934464503841108099520288710933771109742825002704508082574334699960916718587839015621537180399728973621319489478819070725790413291594930550026283726563767621405063766981831333592195855857920032491491183664680425902715096585381016127799302454927868956166100345276284523960563159995298185042676561881055110370609184155941380563606215748753435544511992093860891490932569991844090353090534546809050527535176972657798730520284018641454604697937460041694263703832360261001611736373403439514845161370614764929504220193353632358832669853313549419766622241435408976188617451716024630601038037129483614589605396176491909172082709842798918978439134228535531159830559123474804804839467438406349391639869678951925191854997682040444565652368172204539404216339643587135113018190565455354997277873151621999660461117073099995481321862969130599108016431433705056992017423760126473238149573371492910534361419624895759160873335897861734685424710370025911877331961798202982591500175867162288863627496179671469946050281656982117310348963227999635523679334054259921781504472245198345121763337496611035071820099942129480558546690522852517036015617635575371129226310674716610989387094332059251554956910040569848065948380337104132809661072015499991164233557603646793961267810624021766351671829277516751857264316889051346217598601943617246278869961148587218250891199998805694572141185910310421261160837173086802873523583973817735394440216036321405737248931191668596743669517469885888569982225602816137785508953831288810292808715884288896202190343626281168258808264541929028089838154201802606130820146091837226883792745447370283269737551311277214019169471827582981403650337354497021491400819462327595168164527454335861917775537335428340255250237259707115799852051432502063120925460615336039949307793237647859596742898752248959141531000810895996784752542277650786509207580003407526292333258032894727045518983594018839519469935659092115909938453273408511544582109065057659808567271076127525059533887284988445394730903737262340882563992702913379718725035467322624541623991591903981843577606282195152214716815642780187599884921377818821959276208506039761195557747612934354906416368052174642581624378953629856585078747536442461452044689902909377218885504394017792199824212140787091526165644291498879867319512665434550321673476950840425175693896764787475772646684932321744710096656989467827636166951780112571934811541686946754758127418286703926099360555755615105026189707450087235964701888545291432453092625137665212343321261452215366942182607983069020662481442088834077106138117142407315644720925789599073683349099275011169274335470625408874136695634283200990789697296237753316428436577917206907856825194539262895348029999340304170419437468534095331273394286125483304583797707889277849242286388961818390240591320511810346793061328859187726949494212824535147020877885675184098748654986967599211776146071618623593329369236274960169680240128874765135622933361533038490965270724922717467076029411263578921807742507444213392887656267014786600954847914901655707497602217425619628439438836400942507750400894409005117909549230759788222976076497932874452052448853845721670474502140812173438789921742394365963664214174439514580009548180576750656567021818393405180209188091227187852561359367043404277789742248154638187506489589631827617410414090512969048903129026724276613806068447447417945349003308834272543973454165086752957532859101893537424416339604637710682973521419209345573033924928998889615683259029976771401402308651399646868762137443530479480444423708612573542898896302698524925860570332933077498114484079723061873013919181618820326224163702219026114907026023664431074552386916608623533636413243803624869038473222614531856067881453547786643076475588351109373438640420444883373704411091635725179045810185954472554211318311549913669310581330708363500421676405282226231846398125480889518817374669478880230688147295148196012295166951212841285953363157293425767979204024432389711346493081220999620521419857710801549793361653306532842762769994824673650965066607566440690162696220611903525944587223052308506937324091260666150178369506452656303972723987380915427327538813177764357567181158822120137549950055799760872828068067958084079232959850526548585954437943924865811168281093294152530379579618893372133271382658386835475643123705570838901591834844704934399677691378188032591270549657091231959243617457040314669209247983015118124858791904611845868431052497531604426298427747250640526249469049549334131140514323858548107271189260275151572598891274569884507004264621140642989983334256743943917164804389954168196315403655551765448602915687821387113443090308161803471082907368284592164901109716589144017883749562896598676894492887424463364568595867800929185109539355884093635166357852122402618460198237998558875142263221900767335761787017130449626837294285314566255132430534770730931185337140933551202025822587423365417270957879824834811670883921393900231245637108635870905533090903646146700760363782726595807747698333397310657026046089544434075920540202820682109223362454154136156150027050243546915159695551406143201027408377415495362231432155066799188624734199849990826730046787003490524267922611363726220584555412441797058316235622939534320225587832550379235583448489887583351256308124510271298745218661791330082536446068111097796453745738687972518077740086519971784286319804971163097966239411262426660594399671982468643991102594251458718937720099355046711401373847485167787891122032149822468537791568524594102703538521509660510697605471959315633255712869316705246636245319039769660743776708926485149163653227528957844465746235607507152014887301327020587449512585963458953458553605268546686622645613913821000594507241885298647422619208940740708636743587015203654051618361713629676579446604600236602774891822820104928352902857890014662060443634447177256123280872549416087493523822903506570182791522870347155959475984110715323064522964966459134723908476727081467550633062309730424017453755897641646698528334863925821683978713671686269331897547671287120395823046394451718264197482384402506892751245762159679380311980633446570734492893758120572731561048620992206757254351159556998015839461085470991348664681011917147830858811045140496095629025854529811591990925400680571598870274902301820757530787352797040333720291953286817097619059573927714889029877405300370766783083930238274125001286790389942337137067668011841790813556180160919932888942026444275503222756640181852573120618959726770111192727845646258164594479019878128089706483123155871931935328683756963400786557773093207667172375141972567332507938510958567224310765983439151905342172195760890766814791440495500014163228448246695595777918729217251683629507774867446773325764552159330723655197562237412025217944907164445583366862467239980255597913001908004279507336689295682686038034243779949889922221746287369626287266376878661490653970496622063261216904773286878435672566557337306698991384223600114936524621131594355845249872350157007647086524671185805821461576701164528317100700762791439393623199897274040007356344514357302658336235044079351181829108376158193611009091092799536753633049151916392026219816706234549983242909052127391957442607528271653083899852040927944693905532829616600058438728860836776552984323231708476365042841468151506891716575926418429198648112267388881267643434487678403157328899976844968869590413284636877969316988929060344379210701897190385682802383864710328071002163511373602342903524445204976726847711859288189431411932285122934756919879310116707535818407099970195527033822098019966050536491477910268588536522295412093136698045409330924489238416736437892676692857095533591400078353721487792143259959521749085880661409250409664136306257303459252093694772161228812778620494135165137533422198876333980413830734923091748885748964387487966020086964775160194552612428715836682521727810610211505159039363717066754571855986179215348519913184767299394733036008756405090515392827730686304791677125911763631579234187085509053985113456401242869763028467074740670722959446797640431689876766789922527335114517476622254106586636920330740729323955676806320132015681260378135850583539641748001868762943301129204729906073256116347741367265465776249800493891680234037212071030667557506895868601647680381626795413622689886189494144376669899265856541862075192798892275014603699132147760118027288028792887719426678785568427501990456715333049001112523808634247549293056108807224314493806787933195030719690503707662208527203412840348439974664942188362062952051203857199008470364645605254753275408213033398126557507873413901813335909758040995255033637675045705959442674015856756683539036897980190294219616433555504915273805764407541111062789989977572437991541039000981044134834377285186134627138625933752083266806016388690750904307056912098290876529324510835996171834441917923006834228587794154699519901840701759021331844010743299015954790638443428108104539281448173116803492287189567256691396246489705770357295936236608375795178896601559458298068847930665577318358037325026958128589231925957318448868433677378620166289817602150281622143428085577152973080594365361610642774553551262795830058800747339143288932528648282410552298815900661156873589466127411139440483573694683631684037088789808297405995265304627930212927879602111348769950248533359926922592561988575352694090114233626454033597111494153577597303724132473423834930658086358975503386246901953713322667943363279115451082121243458084007969829874714410024891708767663441959392090213587384499382852332909706045516283690504302659652755340215543943975080773054856771970920757640707770281420836762808556771021813709460135512627609415062029444604050289619605682074686134998100877054416163021126854548581445537626011883724044240561233318087996432692257263514165120755168252727355540050418036941242099177176436036499079619917315386781119720469186491016858767214505527744078274555613162078484967030409812703232072997359062358413835293074414231279228134160447709363815209484155855961114992966186893406936336807794099254840891432432179856915680665954686815435530678369366553023643979719022791138048991211171383483729761025116337407652338930169848541296889341896261536338269315151285573066412298667763337364711998870563627504379596479580225950804438343907169959146343868841783568630827746156363180856472738767648158331141949488584417874233730623229508997569034764600347678991804844671960731565672250973374937561405251588893895249796209340720043462473207514864996450881894987600944063566090016417705864278036182648830089205643584886428691605464928115411043040457869894354826399248316484043440166470833828450189621795774663930525467085153465981144346020013622631027544156432162428026899081634413903943043861451530755884433752837524821445033925707019566219345416534248482015890771365686435630940142563667707006650684488170356534232503798936534641427805624993064276122017966666678654238194172751924297746241054044247396588718598301280580895108002357357437758793818447709573452265362934122528207342261420214779915585444794357407695225567841567343474939976401024622819937212749871643920132757590280071939089866608187116682720446444890538977188074517137523141075028482741489668596797743211141133512032217154541470943570882682257398439738292662594145850901301938555079902290973336811264888413027025452933660260194647755034725847374945996893066707730005435699210723585004105939683976025560083451848511292241669345861785982443389201583964967180295103693150241880367040895515692954387343065631865380230067168933075845533326332291848005979970728919174997353036016230513916204955646832742741632341569803750604629223786727940960837962105119607023162149335116159398132723747613763735920634251297724457870555789961048087197461916349125764860802545460609757230291542123870778339632138918426600841446831293852642471095247609502709621836375112069591675739967573282211570216716631841132480297415177130037539362081379243896058066443622031327069401292115373811132115297643408007849381922140026036769759733696113848628045427117758720584625952352005095423138508110108277519228231721783108407173697472128151888779688758035985477803425908098337365583319387112997895655063299536614272601606742265727868905889837628024892535331397478724712140701510602692312265883913800351750518568867633502101721491462167893754369534416763082887220052194478063400755834386771336834836653116991522257659684889481648469013937433117147352895503638019537802497925108249880956388284702387275640852247246483173569818459013194902875772701707743586346408188469065521962605508298679664523941981007836205344411555307391049063227317128258817487078759725513016626717579843465481206738800049919414481918018260447447617897256281883040715702537404871826893595620795504330965643662516811091916583246991741972611738850673204272608352070587185211313337988982773882025761147006450084086914861204968524509616826410918370870732219666610966655746232406310937049112001890749862269614404927490963857528463827463651507064762271581180681515959253370692467641839512263793977210665866078537948891767868899042584096483563344935716154824093992777074493567444985707028114649315552909927487261590748788043332676893927249586773433407303160592733256757519194475218826589442635500328991868598582490456037880125088132902673000854248079729216088568784624866644194268512672175634691205921332380664056089605494377860396047996948493123012202019369897308292132046981231438840018271186806649105148765658812825432676158567811913114229571171728059861530863727605642098246552363538057493468430506001908622717649626509981531865929993321414357170765493857181778116284424450406417063575409617567581041184555845475191621851776433968395105729555790932520445387136423226891218923302983034267457512247711391941329615668349418355002029697595124488248157443065034268266648150941345994084261787941363690133476943299913205362640527102947029233173204069226000601219779666064940752139553521568671051999012077548497333742370089193070640677103960490412401812050354082204535260824697927257232007697339744687328922200738533519655188428214050571045162698033717628581667453711309464737279908725192114793787026638016328864448606799835763585233278846814437376275290053404297812141401279797617126902238844582135294129095139251869855203757807187349990352202415929826580584454738428922249478780517512673618783540954746879812273459014247131829011760053906647654413602763327674246741861279687455688697481073097036459770643419193861495193355962050687602184113170970248774402408824809313431584487745560610745616717597374271745789354119403892845765498679537473884663402395820203184096612167131710485799289535108771849137341167861158096981567891315555273139638452658874567339903539043880430329580871245424886628089435821697437649105840240936386813042395909702586120787567981980883954551376130133434254345164541892030554965883053199542923820497215671155487101276922338616003402315271334016254750198474278624036006960062474585274736694449372909861042629676463371971743588793054462926274956520830186263992859291589978149673083486620356357825189758460717556875251027949261235559773918875859962112140182189146233930842221011514554379265963946775261545511152928682316277162802311508630751194950016678166634703074598202477075007145257154032322861012449326841333454940973562493982366399689674218897875688696029333432179111361061928591460370398794996073014059348042453032783784512695160863376085239437147722333775491378749815513554476149061252103177938589002264791269071450798490634992611673308475678855180943550991908221336829497626667697466838255706388334365598732071119386353259670197338707936572309998762863065748885354553833199086623483812445601245758274321453443063445837724971106268234993468530031998886756677543983188361755390681523855002200153765832351736471158910282809355036436613833601158107316316998810793198950059817138781912519309142900674450227590347346685593976135558796048374505924935045080419173724106495711849965296015751496860508440552313003709776159005107415607506118044982871214813788455159062751259553738081257068842635537258940321017211757116428194387878396844645434933149001599657141014463999770805854127965968171927034986846090972083792325998978603099607097008517849916141821474900797171944854511567927212867080844558793884500374359668182900234525202331998680630193085857126298100509178230910604623435416840630929670863315042048212294671699092737808491138434349843207440378510972151809418299337071805498422829382350600705064763568806188925049511831168812524466248396182946682451297772834444005264160774927084599769225988420871843852405929777988697651380938699403440945604972763665827290356544213580343366422760032020508053046444240274792767156851377419233228739023881841967784735275987596453223572645119398189939009984717606696905424506562098616046603287091107321441497676154270778409530317071757740731060521561403849381122776670787473938263270862132782414798280442026836743739285406011003410713795171769438162561265720885991658195884390667847091555227681294400008261453383265873995954778868520375990027859988585076662976311913644290387963414008763524009577411987343293262403569960779893881959524963962204416192628590039295422156429450344755995835653811827204394847593745633182490174048783420382082209542449680819827603109889833576869798816625097479319735819005716509252706029286461823844434198149166017832839318410620418027335623989450019983601910336246550929695831185052496915062709426968848069957327964198115555275954940363583574032512225875936232077736820563083811341486247636843969527744432945295319538244704030254396660319825138124464003178048637158463693613871022090071590877659430694615332977313301614737399030167829745789279720360231131456503528035627238345249163015420275998703816821363858222791937987977647904237050169610842792408025863804249137257855237237968204196629246256884454317006982231986151147054911151653126034207557705159934100849572409816240294828594006845905140683694492312082485152560816405390304482924859936522976000227182141453229813698557644649096294826826248538706357699022464499837262975770407229185962695666292624943685411278596698229314742650949569381155915519058656898328313215893074257165415840269259502064046542436308625923953172262660745696079438496151145677588891425189323220240567495090352379741337259333854115205438187533082139471168916631805494011887604235320177437730250691973662311999190172462309392523625323188266524236439435643088541745334383159846866569077405859516077536090134511559636524765206827633254963676245968670347800592143542138377328297224002591808408100915550807578695056199329908289279454455407497624686556884928778302415242691557688676355695347258294816812429832304271503899275007026642078443583575244330791354691397567518159162232200635162179755488172558057089842487270520581173338826118623232992469500529295492123958564216008535016637351507851616917728797559548817588916396822150468238475071899006518075113588624569476590404016313265151580750456671580486189137166621002256252478329791394061003421076168913027142984454100879725302055833648658925257761984669865550257513056486139567797804704203270758270629949272217268494649316441247823868459411134636377766492587725034565269255303432721568696109117702392856089620884954636001350239169938933955013037796834291460581022023817028251477468155880046606341257529108687235861525684544746718122884577950448776358570575209387605175280091237801681656531518939169126266610517076861913571620939895042356744632436066092215469232927653861131553354667025219768993672908908169839100063808345079259786894277362750325782512073925751859472440596445891052918116348606417151079503395200386154401734424669832949771227866467971826268718935237875603218265105115782979112016100421258414865930103742599325287609345398347631105169540593906266695542926061337346880562183494443938795336468255971760988455133278098230567533570570176026003424882857129534487578142246254356707630859850624979727266694970265862654448809631526453946826574119827652705255738030372117856973822410688224221389428145249251005921685597512926658005792341818080731614477497874469978055608022004578286544777224764028289228390942341603493425842360675611063838686736562746024668426555720223059848548071287505731189730671677491398265721831345501315706043302945532248407557220452064238560581807289257343671346404854119359899020802028124830612861282787053543780405704804377045178190516578400316720061723022842962020119150858676370019897777145561058527201199819310906775832815586730446068829500173436812322941535141939617914279449923180718548975902799887345121370611428129869744271114092134855456832047220793867290300469105674532371895538304881015028667782157975718794483051769346862139179231573263804069190565947994189070067750653938016057252080722629282473121100851505668595887004431026683829674914350023743058567520709344957208374083742954098061566819924209645644509295955633542855496435946314311289944500833784758592795159577751003273720136559544907999760729884125244901552901778047638674638868939408807133700740156344029751958459113609805664416075800457510780144106248655950013661443496534387107755879635801372446434213165221235837524723180331482673105829115542796205998755770338124371924962797297396711374545178795976690689124641126774219491719297144848104621380305586263325207249168440686299601319306108204434969449707967920408435966378953287427139522796629800554456980113468097614536477633227810473932418946927176933914736477273034093444259802285616320810937552583254518400888011234774624896032716142866513588314339593386095572131008939690872550601410037053806808611764841903501151750783969871654608047622187402960910792211925214137623679204550200363094587800563389102956558679095636116899407296571364661051172402967064017263690265230999944838646422298071739952824991802890492874280427928899842787842700863261903377805799381418424945735257116099971080355615922862249451262788045455938942392803044715686756131983756256370504188046200805944954175168543236386779712952182573189499047919234189087589762370722075323118234012043648460447279917664876599104703417455994504365707527114112975161595124881837106551640230965392774727261933994689724921539970164373121284452422294003989488410907973647116636505362561917393060816324793823867824148773231475860425954629262794511194339115775080442583450157126272195496618294613315492987860420463119539355998721391586734647106756742049864561358936027852850022358425201453041464040542238070957947068228911433942383434428238207594002199871151315376527193475084462153038200592715112737382478547086265443898979308420357303918582072383008949004149431444602062288944106028761613779580061595311354855114111650801438897329842569439163799313553473587323519519531373884949136148573609240306740627363716748832897759128639960900811021390772160209345586883322490427876864995136736480874994678362921246773414333920020904871211466546561657489874665860909864787151916587926738279155234617812891079085939996437201265818878008783063977129754418985944998081049585494766153915931859189712787716697689432035383285409725134676340332728000802418738294635961205523573835325893711908547949072379207382574063851873183712252452135916177762543111328966083989562946208456474792823682725724969619924417119025299945882660273193581068854961330149339915990047426711810562769409299852547088493396745087902693410008636286119089235460506119572461482689305485985437021569021220632059853282238546837078723209220073535643848992985804697172672988212901643934958320060145791213764424018677531953004816924866906706093253152987574881574046757971050840502195677158821177073701690825018669510620529326547351481607527942077737637765343415212878330367321176673127121897762987120820826625424023644777790140346005909712961659550971573347610054502522202285405484235359621476334478107098482517255417330311520835259016889924576581085126730056464547814301869149035043598601176040686178174543701133276095321688842925167596755340643315263149791976841843991745238307224727738069728244884239157529844134084684450945797615173046664986405376424506972530056906336718925575802883631119612425465831079615631027680780812118764166439247289636222628732160107603022596358153760965967609406587236782988509754637369553133879993575997500147753321729805352533576746208478908276236748728991670699839683022645732172011486129689382306157393365622621867187330202784845690865438237675199625373472622549905192049183455838210472364166883492263271386526773886875080654233734499309301100839907916816602149109863414600325396707960792222759275385341871731413637139726395604852966464456605569699321568748435883111296861802910927287239614792960222167254180817845916592434515398995575386897333936248291693896927093218390114157348776757736945985972765581764960586250507130468321396465341260340199314265645695619401457106172835161790005758973488310456948242557704775550428110611888767148139845452793483623401525484792237621080557834439974472989702112603605235923055539355875964315290673914376165612282901970304260152837866169571920477151398311371477555751560109614108944744759109753188537417242819197676359036966793377814149094632601359815777247197007426287962987571576707685922686389403371848889074897222865207831298986953073267621809055727093917226193672939819393086005481371869951818119993281320980199502160208033610735286397690015581924506862296883552558998065945065099820488646490800370961470498208235038141642002251099878987293889917761613476006477862537390510063577686747413921703609847390367403015946107193165520790158450664999961515123023081978078747630709813266556844572110742877705915825376254556735033349323957312255054548190871262734634805285613686006635714598583706689615818872903180961840216211968437540100134042351143688825035791134439314814992688427103973198757394379792758677903512750001968061884973744816907896396707476794619613046169616978460891014410627917603833200272215393657492611858885875370804927949136166501539500838701620296352478376956530293875121747870335979465653587407970239412399829864718687927764165440787879104026050029618756748670676268500169366439811730129616531573665209697934151233425224347750955681376252066858036482840062730235597093565067253840860545263824670594003291764989798732734396911552765588575965014716181053262924430420435100664021718795605330424100185985203930089496896141133198707884616262948538294995681811411995231538379720548949486500570377359340392480213210880210239114784216113945216750335229590544981440780044601706311071130723704071574661338434719757339569061789701154895152891713394889784424517692103773352327738273128945078613769677886472685315359601616191756815743723664970516909061334902577592780594073333892423372109895666635177765602516016438614587550905126989769818663623415978897062812406056558560046193001173323656872709556957106939940475728673547926081370071134150079000758775690987642001559159788440588105828668042562367687236643458298910030963606708757669248811691778206333655874316610323166878038873633666218117702640248355063678577587401548405758991389957514069172841792818210820426046373553188555331069780774842574990098745174105254316937622968111280836717120798866050823629768899805101677602195320154793905115406860307300097309010912852916426093506213245408709161821783368734287540367179669975101992260926722125098555853469217979865568692764468976981047953360907769127393756500741550222530681671336640470482397232085662370897362983692261895808743035049692125935491085603002012465511612299659779190862324800266781984861552948647932487212045277158268598259859734900997867296605833809347855722205539348308232189865547636587600810207110889278647330576466454230120432749427471813204916121855031155119727183405426038878019577432252535630995214649597157197679271272277016139324810086413564662473715797984373536185545305735531761115583691549445065916675654235051021695897649640813963541907292215582810571175938179436934635667997967447202095877448689491845990905866868261142052401464305373211780977184098685254786084434936938089564367448546702431474446628436842101794599496521470341042348101782873190731698522259595417193815565422472129292327208603272551532369912718303369391816733647041498661700175765170088654080747704278222945722309337838392373220762522125873672128165560475601822808966068899539757095056078015625937171234914999503186133239791423862503845285295718544341292900791328044092780055929879239376673396738864404527487060255005982982349796721622251614266364585596500611232978873900309243433117580067693254512439421450647529039753791143547803820712189629767510062339539359871693286438060765585668120653043484233337396307579199072864807170599215773995288959496355574901870635656205089017807327223110411137862775166898268509667903058044627664472403534781624337113358353676920298244276961421648694206002876894952082291410840291701152261115050301638354247800083033303070515110987058908708198494832635028413254885151942393624371285980596073618107425436218197255078621513041744964323732655353717597382096400202379546235879701180199500765628575147908741922453576558269622471908461206535166113123622879092898896508462701887302566038105567495663490674786559279413335718706664420736705780133704807328361922921875244278334258598520923822420276387716502320220546439008893078393085066637006881958886207108929923792584846090272694570558947894603633313062895662283787660134637869844715840797077560997367169267705643987690063396300815387249071613455942929478051732842929489063266530163157809947233280128713377295410923868117678129560993835233888792683942405074025437145677938184368059694549019037283260918184607644106216335402237817152515453142915459995780327553569695814302594975929334297733856880309772748918421359142127990365806007649848732608486695122719676814780840934255716619043759096973793350898561495824534974656208816982813440939019994868809922220459442114177706992642944632478871845146202624691293858386162916564587282454659345055794901875211796133012853243765136063630381554755318495559205476921129545374034665363578186889725317391693698058214041660865314902941263446476134581247541566221854962754328560053969122089677903263042092385743109383104428143073008254036991774356699906464272239759731756601634713166492540116328810203075109227147073353403460498131017927801454821347505630748621378324986552397594184201772867681964690252215358378837902989225845996320157815270323529997394910231788365258147115031044620796414297056055532518291830024835478448780092855381201596414630015144114672410112076741524695973054583773287986451246387814904060699920126080532506288320235292098401987760691017228201627299117998458000386916746282441268743135640135227194408148032607260650684944059593123639517620614512114166387825509102529842874502481483637629141594677039872564018668161123134536501008306444277926944139482822766204446291023436299819748636100621335194687886054772225936012274558712359465640657652297975341080343975675223296126589801562028048505881117045073924435224499299868144884802115010518416041056135559395678529400578010809937407541462025327044426801683342665400893893729039044216435382111222940805326776353084070231415725078793951799949471021402496744384923692536681372466659437179466761465938505227704207646372302547974308899973736893838011714087171310720640919336435525182640200678530033678520227785489632406810062234229402611079995159719178862774507884739438569556520014915710778353153688609807112423302726864412611212946163956084815060312867118633697108326019229747715292309028893339260745778020275516332719493027847374896585586086320946178705342465936854113703031463006300609005630177310102711067110029598821870950959135807093154040115814992502522499360303035530203896351147268473692111355727456732282797854328821421822652785838386817255369651721008023275800890304324421844228595729321847348699154516295204981793812879219547653982894843651663759678033598192836645955986930181609903863188842936452911157945567925031087131626278006507195092175483990568808192338850880829953558870909667797685346468175745571819539790260826273654836004001207896619639532073978685852059326740033509591606912715133550811074814533847741981060557805626299345278291986349993933657833748304352630111573237520217464909521800120302588975332067188160594155566832564196574155059343111057792288026523003349142304650542070199439794373906543438956315117207616265792531465695378401771060808436523638958754361534510626183343824633052727869099568508651978179604841394003512849204602196865075260068525800048310278975514134626197137622309287438342277473824188877461957091340648015667469192453000347221739123743025448537952500861708075596702891015401895270600678149352911881709570337910986126540527665212436673189474677734563928459008271753427275703824801034136624200412803685372137462573810747827134724635802412727021105609593819871647454180663833904364047104645298340062673901921048785624978572419010627244173908180872579586025198355660001593758157028794001798934867126602213141234744165157501734892964352720131651363552970349951353682746045101083389326224423670965611426263969762620092087630549830581529946946900512306965055532310846354053192499886975192583539636464438331653564485633223231053419755573199956481573713935792454996471452775427574061018146637841928541082095487735774259465016983956375397881677870162572773292114635587356386575295613382773771588515294657462672751978623640247462763916679423002196721283626635096212948934266978491966625299382502091201563436070273527162227921209711540762834111550146467527538838239817716361963081769755602449557457317849581778824536703859611995058292489571947414971903528518905659251413233438800341519570438634159837010786778301071451379912459960905868320271769812570956856555279838990698802450306013266553961456815091653531589913405246922516820410384296276942135978686416166769708172100849798185201550162937017233641451506250613123572241897769095026671242763249452334383814603723840687855716817134181192812231848358022436247179572991725962287283040952162773065385509970708811365053052078192916958326210179280486676470021618841324044348938276543093609724694787484311116865827756165181143185443411860498389386886105830089590486613269154680080775948808268527373466338838850121413475135696734852821127919303053447645462195827254154403325856029655904046204296372679534876466193762947508856867194635046554043133873192877096364839040476980209893817366003200364459717855942716588096027115008394795142437076108836945844325395721945395789269809162222910218286529008093887890469992462624317479641319350965408862681519401877960358545080050214554634565353714372786327353443900379956610939954000686213334096905174349407339441354186129677688622502273711909179418558951581353788532991678202096318328730659716240963462733979505774470476697670831618498120969670262712473313874210612834389863996429703497893156940649033852242432219504874798233915074364060677269242054263560254369644601663005771219721711195894032558368029111440185680413293452134802342583381711439594239653282695117486712472014527091078839056551634384016445714629312509801395452027043233701376791243219677402598885668165725678053208709320784285448380161751372849881850561334020746127434974702873497226496116148850759549123637556126659811513961819493589331945012405503909504297028070403994042735658778546804017898834378049419498894942095283173591673133856684389395305244657575925685101714253711981425735915275501851211608216530657839104327775597868924272536263301965761269672224106300206762359128887692614445512127207613692087116625155996184690830308271744842818737762786942159619534930337685430533705093133316861404694552647507863793360766336388609958452130936686053933729260924468045100938880884186620936827019754700694381405669724309141015396987593875492803672538248188747149401847174098611822517757763017526018632935426712415290016800500584430923682996215860150765399693535292597603290616007320275621452209075855064654126863131215392545847829374369407088984632828395793820555614272248456228612099757011864544257642867727820459453105726889268767758038368768376786293818462005341893513817018879731367521425455127437300443663313036650221295534922562195046525023300648983757934918226182934633965939154168780754688196181977598741230416856821351008673748953224911808771920321887756851738679008437839275809829914845436186350902664919999484753355755402620281822158055137962143327171504708368833913956096242880374577567909444294588062175705565835306597868991357101570498005476291052472142347662082808920356796795234205903230798158192356994552757162452516187222251795889682485389378912821230679166327721041003981217355644295524080231359453335742023838273877357392964279679499866171392404134858058627325431155292301575668394823652687279557764545762947626979673554065924344939207344088208307931938457458266755485686475234090810073405953135504553713106991934826671047836070994812546994163419459818250985486085827825957737077020069691861274653671366293549827082812636016833968968568948501882818093113281937600569937038630584964648123907493359534508971253049220956990166064259121689121065014665816738233797562817630110563426375859613080543118535677327454533814996102947395955993765967045721636217229237922203869530160482348899462331367993125388733464108687175248591093984324244990112929501180490380220512323870496496287177633751337183290534116442511050355117956874399720848392631464735445998493539900064092720343104763330141033098457309640144927047954997812868138364600978487650347273419306746950259557587054664295575027334210863321860893863483908284007784303535383433502998770917644990798815862660503783549282633012915028584249870298112475715903407669515512866524863183585531641920550244539573696810672365748281572626208367073506152628849431316358468211818764930314471932550248062584280018975504830961347478763205096254597342665025739945857042702922565235627551676600222373921914162707970817708816560659436223868085189139630084972758040529742643224475798118201627072657446517433037709620091234831643292396945105572502245824056339661726354243925779249306136483854545157427560246493238825608752697853746907376487922506406802116620298004117889111663806004338683468226489454662931069769979327335509278127497637859260790942739112859381571161395594097157965259699485639961196141297885764448998325479209161439686182363282505237733701755613841165793513798087208706788564608546484044567490072937054424559307862258628227729603543437235588244613725259453656380197216261562474043620450398240510801296542334431897367812055025288411656425718822985234964097825683881951756072150633782772962594437482320610777030530769667764470629739816382478848598411530427931873538873641948547045778763707052043346043130246392333560460304612309700177557322192689175981471154276365287184751875465753752477372496762510226824637914361998133734255951238647655192887868595237659537479254204391482202752008733993669260713802786841386789022225899863379976857798022407756010456824148768298633848540908301448005986114177695889128376006185085514387751786226180511306919142464880300921779297500462262702189022768407671779621414400380400727507152459521625041700776028676655840734407477773455186786452091615598862218247064505608119827995297774747034633002025697333627871446176828862218447927104310877600974488961697224496558236904061336658197715963074787856721700140701802921403915305942499173151547436579451055292218262328477026042923481109242828853133099658346316803142272379627686640947928934462751826847213439980463758032017905568260038185188878396052204519750887140409928872905886354539688628105083277919077772690233830324314680860847578612069742996262476482025810551659525050499141592563603808817263156764800799943533749769612241729711366636726521047740822011810004926472439693171000479606767349579409278500785818798952988874087688638334086496712207739560750297916818192946269769866987407130613004697929026568744776247622677917140984709285746319923856609144174613760382342135545176245212632340597551004150448183622000916050357543434812998574187876083609621249303868694614011607105745150943011122078154085649853063206175207024238140064919438200368480164789807645472374320273179371843247746629426018823932734864879509611363235220750377591811707900305445652521182863949020616466386639762086521033695428911829959788488764872693549041993165446177139492179384614826039212137368212526911220118596395452455892755846828688160840071540587506984105457821444686875871512566820347323080791369710188297429107981285464459506290919047548613252092169554335673654856065283521394613006330706926438737613498942511504549991851599801320217207255652309439729336503647856811987838013016354702241103637302094664239476659973888953804197874280847261293329434277381957331084022813597053145821589780922414221333156626508401954662795581972422688159748358107480783843067692608060828157389770875026235782677494531825118536763782284463208366606580253419573190518236918549213779316000767002457456391258705210695205905172228445693652147765748901478608140764712491994634545179214771085890007329435015804892488278305030680370120169380896112720190721782234529809677827896557378788397990392381856922340218841953883218085154697510168159309961834148082704133766992834171194488091641469709167616361922518280368739016866520098332279246891355997111539052577511469476698753074165607281987230614841424037926536840588990605221850902979050380587867826520066743244906178347129946582026881342759172905694906630963000600541041187484026867728530531748648513175713180541503047935901179658891572487167775370906224374425725844739246729488283903391739862064866140754838240061608657347914016230435829712380034210286874329876548333263011953233332299382522238412294695738994207456533116219857139137004246539944003847326277690284536800922945869482132590085499829918225027410085913697053260293771437992797603321956827130233805574549787074410840516587454170680164066329196076276239432848102827870397085115756147726964589985546510691056031363157286246475956242771737118135413839094225803964772038304559758066284281903397055068337944087864305408283229301108798330743807044336358433936998487421884207815894538351977762472432867719370621859337478622975819022803858581503956354095004005862914821463954768117352401773273625085421512890566820651426883664173121905266426991940712547893077311218890039626707206602490346019953738438179844366323510419768304145096589509392974097511834061673160926747246399975261855967233422687159458380250543712150425434420431748521284706727848453973391416271843994248065119834989082930518592104556611413164876761962329839106819865944987682135439409906391037884330011638928789140418008790672877142460943365415040641220836249022341270127703719201269011579521414190909783005958856631796381834764088209146005203185270407332623134105111490798328930293649289842008136549692502154736475191311495926081757760243751872443670914061930368270865926922001794361754261742453045059437946621702367247996952933552686714737098650577213797178074929431260763194246741248149392937487497584865788877620497901907314984387847550367540381112861037880234676336239045108711855334194142723613624182606900642059772440930357274502188772286639183140221853669377961216729981771487647882277249297003569134427981665304821814766878075482963505243102599841706647250506468092858904555951997839960569342873658593048388980907724630898547945903144281899615658911310036620883641985411948805683757307382355286758762000596955765462840886106074376095563506251834741183864975648650096402017923699782890223994012356232524249511029022637203130936196021314255716679742886091889800490882795477809875054972746371732948974844116027499375813042657567033318299969302124913224246790157038164371096388484439309291486154035596120600293467740617451100332996978754043587749138046782282085204145162334337442860920923465683230122716944687657873116274008060141820277576776900067590009203151779759071338459530557672691291434951273377790891929767994712383927673723245460599165886427056656799691927952329446206235816123730997392934200993923653151823083903624334536934589324901637720144193426553693847851521878939148439430205167171900253803035865316894349554544408835993675309585365653251692408300677658819303108686053535606349155451457557638765124845600131752232972793180856160213491005118303907105533168796174095818677809047262588982092610970898042050727752601160279910381746438138130159127741561567110102439051416297019194925682174578935018080123602583037285462993185429858648561200691447427504551543936856302947105267156139573270366657020086789716356647762311961377011910394339753376457038126599959364719064781908768663293342849703601555510732171435287281162653710350917946280526398232749920390085282950674857810505609135388283003904159646925143606373358564094598944372003942212574859228693017149379025161915220552302717113918961738640341990803147962638147814796317769416810163266791264543097051014179126574186322499747593950264060402232495938399322456753586875537448322003626840594894808230910304595004663643457598238567662578061576455616406746066709913500420858833616101515405916116662338141607334582425713045576347208837291455822516847347010161708682712008834736590197979965183407201447980376683792234173118737725093845107448926739955174948599236458372949069692329330749949475173844066662373453442820550453786583399680054523627250076069316009935057604284544470917750459882458234504774271425976526247894212433362129077984201944478176559543906477957306733963734384823064726162157823716855620564096214882982077179576712630202106520747845497820602041318765001551427854604134347599049393943505250817524048223241033079426436023619581690378161909785977808468298366262441995621475944988135797741726931228476339817421078063312760803362567156847256362815393765573321443887032385460771230808922932095504168361451783699043027421775207216645439860478179461495975941940033471938210835666835778151972630868809867561297868669246502272408818903417015224327840814326716161339094569798725679488606099346206358468679540469954454683733551093067412480111739692440127160107085164040253738038998843521311634563892606941270574514037622789573468469782254699262838425877242250457871556734389588294366459326525956158664889040795315287444048832684150040822348995785251760012490455211555556271889238743759344958343297032593384474335179170720381673727897992236549143393896720048819197248596452983778004490994219659296957937910385543508503495292324322129361975596141844680937207676009595191475868437738311686816587162207601954084100098777915212880715360026824954881489478667102134951264583361608231056778512371825924314522266163893545838606930186528991528107044846264534594098782141881282851871351804381083794011019476834812620625091115894147195674903877554862679520595224692718560487209756464998626860787463590828337826255863268758481668055964276302103652121043062190551615035293946387504392625294523542559164196518133357093482253178047045032619910236450238808931861989525649205897823161912712691745401001640848513744452463920881638408934861450891916125175748813665936058717896405405978771315566774017682506568870983365288941029720970728653728978322278051335223878007824318706126872505914245955450475643306969585865289908785698517633454074518983535298164757469377161646375939515913542245528052846149620397309749690369025352325581025912398174438152001635730322397769720637979031754531172133095689849378414193033124760878758432936510646655364784184616338822505266848449690302312080082010163785522544329339244863934462304838505577320172961032142080252345090052263206535808503872956013463892755609161004029636196465498845514017098933536699224466433758188178209149505209051044631405568669765222901324170270747664269865357875196307927822191256174342370492103668496748056546906872221310518082739186571385853021307188231495009637220116252869655404008011431904452437114977889727102609549961433578743003826693352263307993846192535390561225447893647272523425957995234786424397656681272516287550040980090343961200113153123401848777707069582612349191262398150828714069122637818504714440998804567366476453266891289954445394549750711574815854648965196425538023952092887498287132496418331079046149826193845530779959949793890413565003733528501877779014105344501979447639356493132960274801042726515870224685142905980947835766545239740066329965930786293975146880103276751775764112892555429842055169649433195083632585616828540224754927695723331463361570977437490052363163629715484001905775714511252580129517270138906605818155205793037618920729323220202610309680800970642017192390311627945016777329341435610246202432086797906583735582768609062090496474533803615753873312524329942183748334393333254171996467069558265806749778873822258442338604744607796651215907874564374357885612177269052616809807723985305396535654695267133756420953220457572744502032828599886976123195284065435175491436210412895313452949440798486357445328301000036422022679403365006028156150367038281092901795795514508206354722412034107571565597406202202411011028463046616260107991034179880892966439266157202799960203715300727964395194785269368874222774364369247327468162831176652590575523342717535249491384058817914179824781135729795346527275601678453695001820437680624369951245697453589565340342409686886085583062709366308246264785106410455298708974703799521397067527193692259178089134256887047809434464629885312708808038092166052598728948672291555806643636699900948778391180327080054617617291639351972506472794091940725971530532183241091822436334889356508228445180092395630426865329882071890291857916314350011055302165429169608642365562753668087017144007095219713311210399503179389954956217049972250525402670618619690416594026992674642607929411984048009707589727721079787777125215959342462592404684717731184478733534184610270379890466133932860822452962512863510703876473082419181086443977382465568085068044036293846916194257595110132539826643708899160362819844845275322877721197278740685114557232986909165780315088585067077583613815162347164053555202857113744188393462566950243255300969490907751957436948975583362122493816439567241960989071563507457706829225464013076310446423667887069991420358055873410430070920039523213357487439736113804771017657075613030042550504334534881756620958009709788704095004592407727254946647797230042479278333404500029576461725064000891118391799108112940867945226441021675943190555138394001530021209295220306331879006182546540531239791697631374358710650872830633506896990017202916355585265498154798296530631918676136005352814923737472006369088311736687963819899728085609778673368699702772529589995760280392858102274572080629140011425200866362348255113802490653772348676090427645142865731649817471419897717498365927613491876979228039351250826415075947379178952017607920197213272794665056515013737631795104770535036716845713941928656275047757748924237797612674351106617722658787792821619665820078914299146504793717669555063794200752904033431818953985910455942904819874892559591159884517018701757813380731756000618846328867819482988605591400353552837810191334970346327770997379076791581922152073343550139787108732740760369466914937934273151596109043394473696332210934113049360461261002801258485841667594078435397578482254191932239304269118140774552993429589484339167296702948441148747256837088819724583071653482441216217574251829916416458314599731499866571991009301465658029199987942946172709574309112322398397437337608799546415660136141358929315401182135179940748759132460581835365472351221980699328984694237459647525017894085192045032099126325079080197788344037448490680678702539532549249223396598995881762439318442921684979868648136764035538277777224948864216007620707305859634750926011223720608522522063765024937770454833760889918893811909801397690019148578939268644016405348348599133867518315106658980140895185292450424424716567409596645461625487272881900142029996243205557613139870724159496689578052102958030853882482551515447403006029300945331207348030966455006287321956651773157959601675352373772470310479088997823416895379637379806202494988281402981343560633074065651995915095502538613269479407109685270179832112236529933033572580125039854030533197322389950572582865801502635707768959129763366365335543357675606243606395158922796569264493325556804994571527708691527793515047766613858113025464308043422892349754673297787237075320831347813082079647288453190156805665672132806937309474791148869703837891991634985130689592238314957526701551060287109104297707376699307441724847863795239031283710928271691180121981292142302183267705573455757495292528096764909071318377307474988224055914147957353546298733310548516279791530168227902112384811483790660878769570331113824187585644671775074230249032837527342425995367975166361163590176955982018845559902972736400515322354137364543832076339227859355893340885961566320007138774618051699540424230046691707635786500822596214549554800729688151101618002429864311380551028755773822320574117141663449217471443921859014506966976750708066195222101850422997573692287031159684807319181936101825434528691903539081258029615941570863502169718585146992770169703890831719059524372479457887343512067824845778967139759655092590109663576243346376045275032386541818762738441996757773665437297892821186788228539414516932349088272201875734367003815300539696792210883865256861124746805780046373577225946688975117279916062204822930868893196445309032492854703319511499722893308976462838676711760650270926594766038896586785284270757579756467808156749689942227066342292448099212457783915018294380512428686852831079108678995685276212822809269879583676345609440759652594741302298675741709794200005469748065239715019891668626027984046458289219600479799145023307015305440580216040600755792593222341145230858652583279039006914578328275844419175588329138622227712348756233049825356426228045949709941177151842576733613388007943959616631872773338683854883292130588650787906930238964805218332185087507448903334012485869893975680631054072516183647227959180033098790804283094882984773774050394039740618169215032994501825431278172306485969459884955872822242186278422610132114613581746440369207102568714572500686383666063859882013280015147541454376775570245058177201117588910857720980578353319243212066276611487254105535809531122559540897336547745291477998862180306366778569671471063754160451313573983637041434671914640380808008422440081483047020415386279813530294384403839394757623860350843576253703607351418384784794217907158033972386144281661851021208578901400534860979578185347802405540155906388864776592496180661209570200193229156422590955907163035986803815384190203676890512427786245727436100455934206640414396294106117606046810412215268126111491074752792469156422551183310917686084354506540286042847544594601730923996394926021113555244327845297956408160338332919586197154039036920892570953644024722590182979364656649212715036988267948520704696976913925250433226195797632844746694363837564052991777688722967736143878647131600244630208577479988839887930269829615426774605840972970560597302153639561099739151509499587257391479992013339744673819077658240754490652826073107927928194825935667624993447165298225739706997186330650012768206305397087008090844736629427569655146997749442138894143280660596840786272351645080101996895346861704639908834305339894608982074998513069418314375461166704225741622663655072809252827244754374893845065014900364825763720057202516109394031095106032698955329789056060755471881275234580363465436923036424427768483177892447795802589316783992951498812578860624912087547120123414208160253311370340546658616737333037669364376295672703493280787216013576761242002779307673335607818201164821337613489981197941683729751221848913255786904349184812985968413110684679974373712184514311566255752849234264678302519346794022259769190139485973861806136411697788929433933770546503165416743820655291919396697488298542605162770914916512592990944350070758854494496263444857598634189338504917001470840957741491956905823212172608309396890944887256532182725194637244894920123712512923113323877359004752131572598638136514917915733232712304685434773606376773214098810299354462729441183918927865898071662775761505557704146929369851617877057975344297995217915884697847017321288354460228878195970522487010803708557296352425747637101145956047465541595202955064568566636904168077581853307394175643635108000874330352835698544408366216571258597025825710727623790005364443566900353631148358804091665359879218021956551353659373583169631435177026312580602295983550343232532993883627464673736847431530224610912761678475934548881472419560477358061235653842297603093712719437227751882264620532355209508933013278941771583308287110479899880005401462395521253667795105104614033490206936428706468901832467922569600592456905212236317365556607694777152601869176617189992810966809194249191958924631520181977603346694333538377493469904746829097170059262190099606865212748408395074925000006188845683266377029856957943103375125688488366957275798018783983260323371098611093664001055065908048795186036789683030745433541887349078762829626550849213099139438146851125543804083473396901873486816032399186790311179124738730939015129820423533915391159367504006416565856520811955114894331324857732725324540346299571509947792485647171273571432958642446680893298190729511808043666283945557190352176283193252170451851537722415147964260273012286265981658717679272902430209055944675864007756238492337922300533438715135043774147020295850008384704892714364369738067776678211965126568784874213638409716518952751661891673414161035659195650535943251521627809144089129304875177844740748565016280822566700434316269400900021232694767878747386846144757386886738531360499237156650004366960605723722474636758721866810310377884991690817501711898129120576906448419715845411787914214528881610717371604059731879142229173288942939172617623094821124215624191464527116392260089419928989199096770866886416734315684368534838271387111803526755776277240174262621014926363708959410547728926809958734967646241963369603785952631916373237253253807754840988395806364283378145172597585696330307696612842434386755384302041471308186942971138379455269337102345191881401020689574941955115293973235509931354971953676130978204672552901354488607415992531883175483191902882777639625379469318399392425329259183386788748790071744668872272098638819622038916385184196828604946533643511097845780201460087127035063548355173515719370566842230268626899841533676639690009122295772947563462594826648528698706438673768007358737031272837857860898302030990484314821164463204621070888980557521272501278268395907684673625116298091646409338345743988090313776184762742227279471908806235184581725059701414958922317565594586642513580242697015068500049868232776422957101378609617993677411553941850270327596935784916139690827640012023515415406768202887988731466942820255129162163837658011589845876858290468329236265788220605267995140257527843638151600026678766746370404650180736469520687818724757356959617066344464502980614525013884804567529361459028197899201047784790345006098112916707589052070763408735525311905032126921698632087782649344801869710142162052927805571721122531314561080586059825684029831113141580324843411807115335468730007994853404787807684776917674546315700079488391787169242773971176037031289992419210982891621388531830272699927402089573878122354666133083050898150073016586563447274684960224730697681845648431564772491293037757734105788830128816741361137279405243838913835520165908001512076824757628656465065251111626048012917543234473666538470038708809584646848442110918318382759688056485071388637257029159410510517189842474609061154553587334375152589867130706040813280426754753136753496030056528964456135227799776775464355001235435997804449549958433387300545084403588697504898809704839756068297345129888488602414949778753344063838912482240208782842080285595129313587096393522318122415230318730558801308472553948943670376949857941809558616626879179926092399920571534295354456744334093602569619417314801107971238974656720204631783161458305099577468373883807594729271346166570959403365150756350959224985250324477459926303450114984028245105170079112571797342608802061577721603433627114140774666278084610758357469042084272001174998256813055017460370036828989323261098373114323110458902758272805253199113663225555844942818399809053564156038136686363389350048992580885675718679569852110406353721169975457949676761341943404126216774078665650379125760110185870078335590103498878036002511600533959575151658173424180776738114658322766396339538960596245067810792217619798047541282460550363818692084104115314866447622458507680757849503995222087187923871342915678281307031189932929830210925878357802791340206825670226146142491671497726863687761405637745483008355459797194546542093998829322473159020881079109947648623887949167475529261851368268121822635246362709614294331153537348421031490952305547537638855003313539598507378184749906518475120986793277945167119166910508936037942587022480356897571333699200644228274065067391911436990269425871069539215967131206857136676280195240760095877832332889294376372688577254879079694198581817232380600261216749087605275422180331179644061004177078399128565188368123218469461001699984785565878419297907825467840067805319755199587233720458106416020962720786857998475504664711210011217106007248982219265996631568237365435831223163610071208419980423024772868384014567670051648004335204097708550724699201903000534106097210444432567001140509710805313963941139007820667367357179859560299971701207963498677415369815087507442248692176271573547103538502965985223604844043610003695521690287199603160030950422967827956325132798633571338825419227023967522028289425144406032974309622274811181517924783448210556919913871297655289245254120144031572170615779789400772263742772642876344751002189907275873283342279053140096779727596850908490306222284821438913597634996975596426488954709600575121358874353480870363879424578252692658682721094154876348472805333271894294954577811982101427074289273895315556637577647773292290202100341223156921143680046814805089480408672865976589313367459545780807297002031537228912372743464246012815426194328007885061667483020678995788790897229739018283192019790184012162612782555835607322427159988049264049579895112548165347296228806758525031415081946241563528670180886115507380141476896805350612264970268851666493674021893626736173078985659811459855609920068802755434668052785233209521481293795153474582334606935159468546308728544164113499541993882880475951565372592709095372885085894535662296146925603628591792669153472664138538009102285494825386435376355286035691730180775738224007607356234340793082296431447588899990783328317279922153929102778890364742228668651035557246146178682097760786732425403967691478716746994042750367169125517293435341952802183732925626120599696885962542151255434244048570544621334828541692005459875609901625884557780467910146036732987805307174387446839970942276824151026334834549388741336905218515434947785251142396916693803941254833470512239463768567193091724110916661455271807792156626147839415819098538520330253836561250315820815877477823381174902255197656627378926248102186957420156603835611955127597635427001835238728933431496851001944777161352158204412793740400093914442078077960851286071378597551714978974916939123994557344284430718830161464372289949791198241664174454493168538317467387034766024805792187163829516746233931580332934613097577220623615002696890567806415855764838368402362855223116091835655999218957698824468808196562830197279799959610923349533122960799367387536715795107717831518197617533026360331033002317787404157503197189552820175589438778559198982273512667292926944581339487664037133471602403553029913130916960275749907775117669910913006590195747709922934802696527227197885558278366106781010895487496697752024909717526393654756450129587071094197984814946368042507536177102859108117564411707879736048188231163351842745971412064148182130489052440017511969375103279720290367063499159779688596094866337849646322240906210866268754670281804026796982363346706279398254418195290853856585582394727590370514832509684228818315636624200289022479118055944483898444885714449693491050122931179231921255200578997034647215535742844301366000502305333892347394249766917301207739307553944570486776196226053215899131150930388720980882393982695849713028002217567500573262959978253510161734479234659486570470928549401518568528222772081222709619340942868245048294902099176456960391425645893105193525717774031605752821384179258754147388269537766148433253150281097638510090501389609097377508763117745093701591630965238110160720708540170254391079850503194538912547390230693879970885998601019457361962400607720023072002846670741939814499922242308018920597305511748338551272210522144105142459149312205789950325322668695452728774186020144338594311082936237599498273798026201118412136225784326222025134403373939386831784846931573984716181402295578086121395716142983817877695122846551279005187135830572020495471696314338583141086672872477868737868105224929429591170384789704860487629026887924096534567495974181513170866371033349401899313669873121410600731790754331050962395529443774212815480643266273337505000485376118285709269655191690387702210815915487974657510682457369759222918069522806873420340748919040933475061034760025237561329138609552135806160299355567656781889293252164526941737597805620259826576514527402927154771237945682341192346469272559269976350496654887475133563646327132032371170825779589660282400151817182026128444134590935696652219763803855933490968060081308829290578607104033563565141963917916244311239205662222713429571756304403448564308820763948207612676111049360323298110876113193158684577985996445049194651425553319554220773042638284889015085880753443593470249925279329418026979351754558459829289774024219544007083412443831678126614985065001203589622486593450874902951528688956972386463465369081032555205115730580730329435159970677764789584166441980620545234701673487642129962174026038740781868689945848834503603594014712545861882636739703538939980105005026139303125351909143689393861629900996886249202885274445250318715330117575669835991988158903652787855213673590206945849136449389994909227255756309618971108562491667278697294430458426971045260229495154204016439926769054422093647070139090098110743034287677484523251521142154242689470470476992488317445545426473690392761509012356964569643722786874586890159151403446514834174497632919398271741212144291076450420013627323226919473374411055466574909099339617294349173683915671015765340175868483696759995178848742972720396244461510836300411844373699603159972722158705748497839917322655818586260530126961446393702001907177961566178522887917354319248773744375872016978355790762373811160142052452126815367239516403307612292609619926542599014939733369632085684228636769807016016713498267037289916941411173455699525105366304006393534947234316800413399674652054894310206136814324819135637861389363141148858215881414764932150692380133603733061998772892633585989622570917531099230638582879063750310386896609397658899539490648908873645874006829443152642667846069442497558894721472029629954534455588657673600302539792905775363044150226426259738534833331456756614603868857328214555870248985607447628407952690681928296934854626049860725825533460997456674854214699610328923573507761593696676217069667127343093066743950130454077882262083621707761845606030589949055095030289287807011120332027854745452680348571056311562042320600575921218227532751331040775553888616864377895847162802962793940322767399041650186862803724928511569283512617484665841437637660924709841485555574047462497860483141100251388850921532311901800869652862615815237584429259940583872008826775146952568545930166736672694502726778342810236322624133148262378923891345924801263167620483707674720557443417649157368391964429630303236574650676367642084002115317771647989920196516759072792263135942307371687370523309755691999816638182190335205776119186376252788885891832973672874909392815853942430143460774340919572807762240047242094473546347872759886045583306010421957842619618275900890853999901161952535593955107365242161078484351475570148600841640269827795574935428584456678619445111160393799214600858589115320102636432845367262474925864223380389064026250376278910052203564126952252251858476668112589176067046735049375412192036383824539950286692892878760643429022921866621140481230383109547638451206039287368721991593039626349359594356794284969669835517343186504446365112453613751570902698975482153056865502818213437464919326450835188195622884862961129297614333813377710903596865045512852539891780582515017507447327552120091315020068175136908459126570318776177505570484446566852951259911241023904006390550552420097612108208032659151102172591959706831551515777982792740789489404781784618760121356343985015483854301131642854528030125643583205713675270296762127375366635509190935101679409706046159330234125951869551296086565983495590248936729839359768513700408194851160383855625263627469844373783617832349249286344827637940582591460703765204100367402664142959636018560071902453335963272251188398958314817668135757006683501310607401143714857157305133509784928094817194916362927107476511893406071278930232495715368622811206868922533048757474215540076947789472360915971923752112943118394269190957533736179115710064272488214935050843639342493468007153751550163964828618467831060589944867106231988399923771354420178284344126223856134229713753511842367707074890528778597678774840776696411200304417391129176008902148187166406720095574174072241676719616126481299553665454526735250213681902243973673968369363532030712199393773427060617671614011549950758764434498400721025553033333973990105075105277635741902139165762322359582879063912693104902704997643146544088064084967655461803471521385278877923163231429249261819852328730767319343816979581618468868890986925354990301542482782403073662637601020721372839917339076773274774340212755680127641071201241040331997467829534139635901575514425330934004877960495211018242584395759066885734058627300142400452728197113369710470100184690510889639915332243770319829863537165720642869729105328550864309731840723084659045241592937905160170311219687745141935849527676972316379884330918972719093835677405051241277993711431640440623388015814656402368355545853547883451973133020478618763107690860356156759078494764538263463490100282058267802003387964461836124894529208213812314241248121530747145415867778548786403124235396952169198527414960330532467962328867218956344270529629402612468792157202567948617180318671528757048600854968290660867249590197771343640742899750220303918273172562618077248150757807218935806535969413631310836263300501361917071358775338131156356179318943299730851681189976072345801883521346691071062554353051935991140989205709076368794381852697366899612764353832527101189535496222903591768668973631348570507900276076315860498451838141110421320851266273445407825774304184395470200850735825681901867360726641710318375833396676413788284575053069336120409059480848990375123000357019417516399000964974724621237057676632749926935912642233388839072485193423540715645841404371043204290135235317268009240629924988793166053107432829924474456164924247973310733360513625837556857933924931778044918444309502587142810694301397480564803464521630156799791592627977804449380970859668402870046728669964607665907317292232415670799091564687606269849522552207667294732722494804798322255966345262588514727050118224366482842287094467622731180202189199938712370720369343183612737177792833765936010877980447939586258722513708579457008428457081392418129927844784109474171815408905718357242936500965170701683559179360754853647291882841785136298758029895145331337002534652276173355795722840959425861929358034045783752267449207828064805890834654092319165141677347020179653644883030091815698843323429232675364861327430970842571468647851125401198528116702355259068880609291220996136738212445039693179043135918083022169512476061062751830861614606049904345031252758813126786307344368966666275851331589774237473860825154847021160248081538921631399427878199605248888301790349953846132010056641279593086016705611424525765007068743025714558278006836733889679317946342037796020726837471255788002742889286220609183924328578198563722252357854661448223154058542650340714482833179900853159473393981359388149505550153787486110231312823788690553323277701007151300725021995429358121328571006979918225056604967921552849065752600150379867167078291329666039417247491395387872764621016635882828751756865237385113418516717871456303853238046652128313944749027796042886825857085467082382992796180989969359038900904044917136513358455141401757389641164990697863771670782850170273426449240009736941189299579804237008073706733109408490536270750536681221291756251418510013136730543924557625475130005157853994513136183755506432516979779571454451006546478590105891997373120385750406602289380512654121076887626767001799196151481402209666883011580937604997994847912584093910599706209614136504333389873072798199679044208942374170033353387563452502032905038324484677481966588216518065587057214754955493394429579217916380068463688925505771020130419873055068018378131970788445840601320434789701009884745498102049650407240834606425557941879600105940190663881262932683178296034806191920879604162102456293911107948350714338290999530576644850979312187387312116482856320979144079112490508112567024754368208731397672649402706363098803322341768587183537193816500820558118545851267238914466015697012179675237739064076125750363195730224907373871812366809327974627111442934828643066611260156289637774078613100421824446005492945577672492706608272610034919128761931424409709240697696388022559209092710944916974362069525379164087962239867162203556481627284171301455190306542808216370289146917072506071400018100292099735437733968096902436279866541821537234787513117008683653284031967103683734970202742764548575500391048717613946602835521143101233092582922847148674323134411499201695988029710543257761743886126041848589112977189137776866731037627274033733779325388501408303027781788225100104034567351926348723391750214391081422622379384593735983971347243284107280698291012538052417254829109350252356330080029378599919115283014442186036612077294241710453888782064945207039014151394242933821385846730416445995521736723490460438001281089564961189601757378992527942851448300679581212991783675980466992859541806664597557146978655850698031093140742208608273397781145797559689368823467922673490865998990800281919798145181596851978653167315401376402236206727108508215692518564679072554776751254995096155834846319971266641035561253791175558333800100248171160734513725841821739399938473649649675514196388673774496482211284009382295120154662660711891878770157785550626140643830035841788854443001748313284416674640694795721346312257284671291633797486223660456240326148130239087470034570147197998083640032473693738407047704758446163782333076586955679630067739563400563767349492062232910458137498876661612004150917786846186945064006384115347479015056948779491104407506770746987554788279045063301816157524918773851619295352600697681477379922486842731778682355916153153369225989670506845749816468559117620573488904316477806550335974007167029328658719928099795215049741067568677246438618832201369797711637999142794055562990942121033171471368231456482208171769910340209545045991922859285806891584900043968142875251757491267173930865435023963138005845906864493452128883852377379885706526656875074467509994437465827934581076502615415005005551928260369875175106630634436473281852223014997268204234466998844581426490202807826048452156173821127092522916166095202785172897927957442976650745788881390313130649165606148712263145557292118775231768440481285098365415786653343492893881799722364798739995529140036567034403524710069547101742309153238296242291157218458692372429532937628603557740985694461392471497538332812962934290942014334171123825588001785242420973492804139358987689394304449268057933054611414715728863739853947752570213953915927235389817749231362377155028643919924003144741745558637805310064954152143774745935643420889429236146540667226109472173701113107256915065203471263297767819520291752652917675546847539944300642387947243695549942588771420784542184616380219908741425414941729194142779113884056456730504321360480494897123994360479451969066647513493993081326614303473786205852269521910455894183020642364899248250096621262775074040831944856380902232551191054288293645552107841191009759878363175168692837432678183006189997967108925380919064596883284965979147956832237645690701637276559354410628133095341469593293785165146346985345452282272188059769525645602383216455014473008911482651210747095113260514936538657507218077683407681070926695385766216636836359679449942919723671641943642774225788753985073086792068688291267511510082438635528387871728387370893231059978766528308287214966286352335856230685128624131184901297635757539659223246734826363504960452480063159037715226914933584583485933505648135053063422814935962293381484570235487957915261854424617610851752413189779108892094413410346736741623511357362788777608222699203875579319756634849979237088472745123498226418697061772760485142673158063530484726377181182218447140807739986698819067885590331703418763662315548159515831479955426861514734966848343144346445812993058546736264118549945042901624475316240004845666711237671584454430735044246135034736415043576286110213872768073397338088057233149677417882028988376588208540985294804347661253266473756562442915025573312766798996919165815131621267535398844692866821093484449498095850635183311172292501504341238683780576895548891873585486363735706088321735163973089456278578807904669060743189957079698964793702687891866751577636675942494701777537914283010729333820558029843824636648326683060436431993899867409887554963670762838368751608640962067086161401957157565516869345571473004599560645830809039798179206252776615712443347005275418955125357899173268748146882791561460696903147213467748075056011839561385011542410934148091167313014235463062202600066000669093941853290384535723300588738662927605784491201257066000231525176259573373857371112178777611182849957636815789357945131865939422146961319357855748226616659722318523786294965577723542583613226610365155715095394257962373209725921733610449007401989154283817042852745704463241920371831210242830374987324719164359137054523744057140949957086443726145746944341268535001716012584205396685022057376119499216632136311141689458203476499259528265893663253202041344779105139976191520076298769240688752858731203980010257320398197881428051291768952858783036444258576984901045621587284220290183834614868580881968996042850067854929232740982895680350027213712745793051143320152694675199769017340850051215578142076925995633339204526370605041660773942824391775192461856766612816484531777998699322499771548118809551165340405725116216901290063411204252576643073914468874534234277163913196119766312503986511729462448947253831688708249547822847445408823130671353120608370894679442002244183176907004123765595934234266317989489775558154114266036138372551447371921991931131098731569945842701125528199611487243441014867416824639086330545517959167422236796644415151110404955276211375479966475537501386665876288412885587503214274447303009769959484629965350598965344009231350063847674647819544508494626606613383352877026135738740196622393899190548578468770618939177545493965419164672734869634102644485787096315411518796830969846406123779137658790875541439890467833740369064448827578513182667216960667734431059739026760346053452784112080792191718113331531298295667065279509967783955478408192394584292816388775943755281373280050560349943963536901651814877067475259335388401563539460810636485096186697355054555315649184273385631045445663094666912958977436519570557848170625715026214930399570668338750880795422481618515634865954628228383873219778192482772126558117461517169624964158948746928434813421631757450880699311461977917905045668726363479086150134789921890568595188853664512924818639480041996670118409525907625520082286090399218842259944475390570818600329938690844112575982413934254052555885793627054557762883232117813640846599549760697949645897399171835663297080905582886226949523118458622153285056855125274128082587877782293927969768243331521521679781119436883438636961977356054784576560941139912579996498789585946857003110754509169984521507596602286086942655721500915442334089781799908694561305547078308933184284585113958670237686765752640838393622381622838346762979530025373749713160562501190137227464131899646996085278774117867688202103166514246745125151799550442901014706433057393641510784102538277928374835419301837844863557296154786079535156217988163206622859948737541441665699371930239002468118835839830656511710683835622758662026246016504864540558573991722896326934468683636219258175476380101253918196614728579434517594157585281795936628913880885026732000398910435350335482874191714914431362149667077781065822208867277923927246454309124533766394459517982623770230333619996803782505679809097649581131366520737474243726129012860051513586476076833687686836629204380958757499289996366035144807278143672434602738396775143038043174135007638909017274755340694990467169649851399086855090241115333116746855388352376269488796399180929195975073794862511136726599416739017144128384155992793361924991338195344732708791215409573003973954566504722284213857476161441378249392135543242127530478128532790524473272537605578087346442015630077414910503487143452248445330934423787724330823760534181754371835757120107606398857784299523226366096988139178428024904331042800349265260087365089999900987073169772436125264671789896566906835921386867143791805436012452685751655112321759437692806993736875206047125780426794054047838206474687153112937806447792784695761848625593971319435875864770695583934566394391201235499229746182155893251691047437971021414681093312852506561277934692835934912630117300617121052593186332677227317662347146044319967537897532167602649253992928540671976977207729983383894643243574352257737393409069482537948939049891297359342754555207494504789920761654446789208637022069963623935379177076537363977666926277351217602290169021142960506636923836331105265344184990930160723701765802001752954254510755168008904393483027898445534810862521938448729514478132202063391081194036776142542465092707948901622015101450855844387268033238199478451976647915672356519832462491142738295402319281813054427996091594842851133841936889874843210560736354827623533581969958579297333082039138006927026248248093246681644224814755814199066399712907483574470651301548261290190939986093057844371436670910614727080105645113078799899661568916860700529626696287448044824020299046814103446727770590765017158440117793027026517692188479284904342113084819834690675224948893309716542767388359900458787371219594846992237477768698058963834772208796234611026182295684311684080017118469334413937969161350284196412240513068654802274127834444559935751813933750533964054524484214786528880520863567892838368188506442728148065265391688705469352447715745047854454300736009662610113743790226013086070330536297860976705260913205129834844814191705041930044169623905973195221276867787780046760677580216965907942425741734395769005062614510956734877443759513760430493807421125717766912397918125855262451573449342662343500455273044331956979701202886220660996142243556694401688890811189109146653016242044032160758787740179952479542896705154334718299160646141077002853061920723618233904469623412130597347536075862898524110401064419569990362089669762976500280588941135580347606721892476091824159335853106381346017538084301550309881325604564038122177181188774889273831205872530806314083674605160593974191341204193770852224540863387036411374646812699453387428719871604528693722884959515289657034220060396930122340145284345709204623142180166707027592304726035048249955259305608818854794370540106549747950773598846763406621723921156985538700099433634226484652509949682063988607742067147917651925849100028403621320904739949782114931226028692834981446650048305081354762449232788636570246954594360599126198569826796313581383249038150078275693954312454578073616225314581829380912853425751085973528442891578800775384209640905285451833651234726702521363204468958985753640339188231337504587740482687087119308799324402576990244336503070973171286799161433993852227387841140839356829257076920167327090808327126674486578784622785785672021727031768996099052786536995121790973242480273752342817004138604383152093871817444746125145274210209353378276722190930562545023589616513608554843892953577920655589220788433951658060049131136825938727389275428997353117136812002060487439239486093767253442158096214413058681679328585961769323302835884139521382242544645316694163002827633099187954828512014809835350580749415114669017253966925580056613123944221125199943573955014559937628261552427832761804290559794648313220119793312155408264731971466298817018560978797073378229607488451838536568718840381596858083555335583558431967062244556553582243062875724506132475894019437052825302513018251813046044462696844570866726859910314798123973064840155148348702607762221124682081146278449825245226676683440838600108824906260294516112677048721386749925649990874905336375137123204088810184390962529026083208189191855136564365902404064423572946964856768143993228209897790309538627335023318745969084399463667977187183870020481061834548360471925421831069648603793809016169035831619940039942736171646750772138456964384354000934925364726313439789459750638221089356893904152039853722420403811172671183995253726580877232768548739557896058434232694984271988482126081230480534219080644419133240862285351316353466546594936459167243462702075604561537185722332261983891813977005781369417953243751602596576481151641095961962395438486503579899263915242839976238432786620050507256243412451982158078173170561260358573470664631503721025511666127441984972451329015298044682778513338035085080185540415788619975439498412184875398531894345075306521515010981454708161860875509197492764626881665696785975817787063243831082413253269799791231066775098764828596524955338030847105968274486562595503574468938683832635554012475407833994253843709025843961262844717461783710767161115163929776791328446482974579176443155579487831499671257232904128828716330270415223331540942514980034880107930214582017359228776481818686205684117399423482596907018000176604211895409036518081140838801803980375794704547339017629822968132570972184015715713782853915534002360160336524661534042101963735086394649750448959854743777787093639245642372349735101648960946606397021301215240457276215666575521307395102307198357657837197255648795340069664749598055791771993372849805171090245164238548741009267324990473007831119288082497083399017705358976330056888783040227481746549856967791305338325340778210904631385944967586685406901551057351040408042364644259874676868404664828193689413477324322448735292216380775521604041050122328230310306449881807477137820335515070593560303982738363692516751720457534245580264783864211676217871871263850178788224754780741394549750768460685042452821350321985130268197689550068970761052761040596634748663314014138162136049784514317839768433559701403757411461155649127365329894007468547959428764563577160328671353920999986200796125828557694351600653227384012412657895465491807682167229338174397617095649732349077163331110978024070185116469517583346582440281563067418187494884068913237261529167449597895514738428491337974934835849802289832318551919422802859367497868765626162955923163092575555541702050430549578837088492961667725449629665195819201410275918708643860098299084277030567273371778989828354547272845468180476719505457066235484704523072051471376848881249197270345697843292675158750986282040421385034138090789081311551356261840521113267630945042552845571154276425360945827659521974566991547163181001021784145335041522163868377357518040075463108613730552061147677042870479220761020912718081328202416757229236643690176390430745118789090711728232324989531091254281526445299983755351358128868880239070899789592901487594750603321670068500671966647128234600737040693332204588620734855870517902988609482404697458945554715849094175136374613155625066219878678624685636662717053718238641307083341667804669412706801935208938373796866910027910922479126854208836901198585933829706523085785909307118139387029958625716293932043262877978416986477448285837880097308407274205698558803582204231286116524035122547629402169987825582000335451659436707895647780270877772277483999321942406133659958721251216442714791500873361362751302182978031921844426138995220790855986905073789209369680002503364720442536356394668495740184809814222256592806065728010884830544649793101410212884029547151401885472042160582896321839579231495384667141050221250865251926841762250775287567707861603644946502435670805472256253696519519652294207276065352394384262552545125539417122226987637014554482945798005111525261064299420876893649566567740596265406084832468845285992168002423020843295198700290851938401580447892372908486689695302488711578241145744129625213177984400534812054750219096097327011448788097206215721971563258447252073246516290534083506937422225875795754700386576096757875836885931330479202853167808801858498921661214610762067669427348281654954278112653455706781971474368881453628204359048565272823350940027322488355379334423326562783124571314337001123175957912345032588085859480008447933714226100976811922837086496592398183995770391528907449702715790744948623214435633392338543384116417380228945016311079421390891055089779741610939407637956828206209981452864198380224103942122421486548321122987738246096595381263821113738676618542120467581683628356373388425688903167442917975614930530932555697267319497118657094947274786542019579358039018103240257284533281877806489654056478436040650629258185856975721736234098219062202281863887671749901075372909113156817017665680967128385161635575823569337092945038117228006203099723171765210750627304605526810483931650402462165289162043163445927063267839822671746670428925785117090312774947137663267717725903637704795593871461411062697646278384571542420606432081306751380949181463331595356859925062032363630386842109969388007192923987028315116643705294684734934253974673501102926382171398354397736415955354973205113613380634920325418700784207967533793018092927498424104713012994458138052688392599486503881418418805603960368738278002221058236572557537586662529808297823009226445034462418080147563963193749695524592370603073249919474458929724876105445378137261784810096596376839965462493453827835224611773647030382358893226161197648195188162756701505418697309133808447046589533781234857571216712439757359485314175634804491731742682898623751411489364173251980480824607976266921123578676447299568729746964588528818883817949652702389145079890641010894828353461882486479461802923645752307650829200947716732149735213949380594419185303215737891203249191261850216697721831354058540752827866734942071432487403698434406136234171416230359545944595817209722101391288777830954808665595281964489792305757656057995230578025208165045128476667579703475791617924923297936306835834567569546748314739287871238674793018861017464982519622061578516081038074562089179160195287054972780855327967173347890028330963356470987013617384867043122474230688727775603969874715137985389737181607229254900346090457687868572355254206175874218039422151435902103365915647241550154433866866049038112594773213227743068111482523529381575603360885163533197200117356557039495078221535311949444268309694404424356936471954312892328521348364528807479530073147867621341523060438244300281271021766843538178905817532220747194738903855094937552301701562958040925913867809694685910626213240837644134217310376298959625053687841576532525588802376495994742780073898414607610173411825750123833561265690925434056149847412925029887585651091915211297789360102861010970692924662011624515964837606631957073755528261059732231185634127722463289345820521576219581134655038039247307903775271005613065071929658041681148103377708418989562508092430415854302330166904819673378996171660048520801059371871594054879740919851997970645031941917684717886987591030902493897545979256948956220637560469705394987461409301749226626779137174306136435161467223191243670692362698921399359829745990322349862016320812793758959869164086051287761536848258218796608565879808877198827065625702425333367947407906614810023447754835452464202297561796945583087005335890131743033651173972309850461061368011713831936960414473025928453474946386571973175779087604406243101264952768230827883520490253218538389854686546183666470547059069255148233258051959223332274782453330242690869170994752267801434384330419196706727036475992878943403247818939593095101282001974757977468910820327274744191783833664122266479720933813229161280028093213197254064777700952718414111077049081121502514828595370580094556660035645969051019197772552742139095679838481135106524507207981022892452014951864938892091157734181814344858705631488917989274323840893863477703446212265651564390401938436566132382051247657949184126085967748088314736218055334352209522084031170366165699241607964615086223974878024588573714161718421021295336042618780619458572164178860440626122713111091268776884922927038359525918096200078564296255998496604674705382990590378699023382269078192703509335789084950229771672996943877934161458413209712676066078983153821762981526794868630975097231418581928614862537649348854148304608545690973330657785630428888870979801535709946381084249604276312219966005549237390596562440485454455213686041566377326192614018982693002367437829042131206797354569408116963464385893130991081576638957511891522142336741179670077658879634223127975972463186175892278977664616964471753797199872558631114006707968860303952174527081714815538009515977595629013403435446470383788327127842301023624141459238027962538894624510159995263088220329120987229552104698766306133544970699937395371061577379234562613555061504896910304532277135913197814535834421678014177914285094002785623837119898893098118570290471199677909640091916161222057871912550147344030305704216046317824340004325944556077739539682890945399206047905281373967050649514538142916435719427855482607495264760150641368914529364375033337863684104068354560910173200316874546405124415786143545462392453655672261413495563938616493561737116876795312704591311140787984947360685931894454414553311726142352624704076417528155537751612605362211756413711867891888552255011166639642406463737455482013475067707623737698264047470556636722722199727804993182790249339392898043431223933967243336541391702203386104200462752934829316624290366955203124982926650253653979264466683338482113847486345310602928986532648817289991087918439052569296055300041528078193289038679716204561630106123800124767245207781126585829100515645697875257978665715829617722822245502827349203005358672735183782197126774841939870142241183535622302562985391274332874137216821919374034699363147547447366973481261227401900869493317709654130300789922834966104641948006605226185853322992095991835280635434767621929053718463028070467050774474166747321418539775716637858995117160040802414106264201842581127186717942784072374483307743103925814716157432249524004585603732291138537796538176294179360354041670237060839459273909692382832009248266878099390984302816814916666072857527877173424041976743754175712887464136252449682250155315197215134013813211512928034152161691091671551276289495160883091577986368123410312313461930961884939492828426950627229527555832949378293556486367534370946247030880063113294047304008913128172559484008910323680286354669155912348365272203754684703851157708765269577387939696728514276935429957457345768011729398691039291469131799637701301654408906883298684272203035010274668585947979481843137016556559890226297188315706624053914743115714620820403050501911856911217753724717327187679429894724853887791783194343088756131635598092336929338633436999299669372959005651216283925299615506212325591425635534556256478032197340598427642072880661645133740837694116137526429603553216341980185829978607362493817501417590955191779412001539997277626778193417977544384127677416510605656320179669209273927523980659093235166045689235520879281063651760227958799106396589413514592896643570410391495493476979637927255087692383652420906255357947511854901927450268161022579877757184650110432010960839804486486083419088180276465120898133650060627970305951730728248816134793469553068323051504088230062016683512715034174698162259315538643432046765026424427467924068783555498362485137596411933174679046526111541664552911159116464015577172756394083830138785179668514716707377606351201520937845070000456283821944932580201661921750794882051754582664029062624673653930959983186648687442008548000849074492386738706376254269303921002862582593961606573664958355043657841313617897087296936252349379622446377705883588911777751274306509965141634501637554508603842850382114344212758798655136848298866847970111651547551791901367967728069853467143585541234575690037822360032961063893246557385255808951537696732157172375371985983647755015837389447531835245226910622561555141792617738316523000899089676745361501401543806044127873364508494039300758521344115011513539940178213756658815113976176945223896842651017581706836577058001022564091083539008549200170498210658174986483039928910330169369911186493596838702398750159484817969500321224254078410820518358343169788256226219675151330922390105538090950112732435725264227609789019506891315911645337853697130680518067037747585589296987472918157164926962709265938641728394208873365491410783347873573857475893942136364760014788044407911073474225408473898276598912511180179032525766985879696192384109306461862562161664714732471795616771531567320871454914097978650956318156827494021393682614286110204017299447778973663961311680374874392826033914479279519225001306538841121398225677136069684768537378904072555745661453848102890763393694574811731183743660300527978464125462604800109167784102898644030662327579452775337988686008203349662569469235953913726954382084120934321343322503187156700780591271831673671808313634602524336790034486492929419876017016591511980086759063575794170341956602791673517536489383439179522215867813471619126804478187091276886368541081241426207846885472958463083759644030136380311302761543502282848050425628662122253201352269628813814110808150436685890302770246869157369325031282819245328265467258623447556362658355295668836276089220117343416307600094930735405467684245690101677100114275663446691772402359020199368805556308481875887652817793503806691910933081261002070190064845531780033941263608054208980527823840115541199451410884405732478710646427773647388795752318375378918928856154472258713217524402800813685137397980558875224629483072885126655827529076827694056500964136141660488460997267778744170628135116495327177330129149551298045195310723550934332013812312684979955479180885937396882133266125286405674764809122047657311564245056193357788988659245702030884370223702997856699323113534259346127705070157149365617640267729064001485352723399535074781284087330893850621452067580687493102125154094509895686327920601759609038301128203305142885942423360712273421742472123819586968032817220676590576769730350021082806793297996065623555852150462476710741619345161616204953922208011361557475503250728904511092199409217368059384884710319898053508303066867635213012704245526989242092164965337521349804669749160305744353586972699168447080880701655421227114812233496302454507987663669765349889103379704381797830683603609376659470424309440137211122795398035730864640693978588656812174221877515025969005750067086079848749807731960066687180955819596952774211695134053834445530965423818310485882969442403074230958908740550113416008594321766872790936905484784571028243566349291149246237183341474442494838679538044742023845551197948757697606146778968941695353513141410421769971903248561006632861774312909587933610848975005023717562754545952150554972845769178499671274477837697097254479902512531861260482158566065863622072773348139177048194068771477691351175643519910267741745121107954318688843260750700448080712142093546314466166568644794308379663857172522421800336909034658600597372562088218164773797228339829380945210318723798894531398988936288775723335116544014182573442005460364839801566110674510912858952886589449015006046676780767588810946327946053228668206095905610239301377079817970664088743019089797613978540211295158755164580382474039258149709180588121455744216536423615373563467031953238490958443689129892453657675449632004688427290219610473393660811571814964317309213909131961397523782405822507139585576108253343949389258823877982929115182814772306646459555354048832726880965289984338777266691871898920392114524567566568916132454657022516149305345091669759143422582294124960957719459404922975341269830607717586874024466036237073025022396017188823576319597762021608755170177036030696803917389676268934584787997503967451208624254740810014656082912469512887446718722089007104527382777534133243919598663746259381800007065681457799137705013561220480898189728677301664599051490231626646534231288163082660359308637922614496045189539435796036269607897703446360316687189246982003644088632113265516871392518423765916015425389823568409710608861233476160074961348823174558710336938382734563529511223081324580905032317104368998520392367781575125995346116958620242423858666808899061018629188992480734072504156263227400642365283465039046932765220928739952796767770266202616483449628161121610462818117765378394352210479525031061298947216696536752129710233024102951929118869796701838159833443857024924683684445532428218505721527199355357726714430349748607722147398204955912597102544419686036322541024952948746970290399845222366205570267438826346110919672016072890115773777834397431803652285414556911193889260071804745426053370405447383941598332514124148375094548231587515005563694511608877272700399815064174342735348331377371949460238649681819476853450689310176516313801048025921160514312358983757321859054254823237805222715550531601979276175279003420937370725374412698459921907412231737409363577710564155522565266502837385140260971214908705411440911925329369658946703698380319525165701250861516423061783525307767560268704882632843985097097508291696618902880832220844754678970161829137071946304454542743067400468466680126226582212732751369051841779274538376567853602950652383295657504218264407156817423312085167258186115453309936572166726599719503547555983675622943797834609558900750773054199692876691795259498212430076104315563747174016497675486964840482463808387902724279038422487484188336317711486020092482105006885105236038775473449183472091412793821293458570363840842462894912578652646466854141888798260265493316439175296448315759200260761371377137182062366557474714765209436560368084561263579499460978489766515537241117467747237487225142439252718874728259679172035048612204236769357784588309623478000679813394138907111219961923517462287894942138626889033794981412100495352507779236346714294878479885127980128564520179839542409449519890567845090730635794205450368379798150491584139060605998729123630148876087208296309835894492016800059673776428243521007195084267687510125908781735689905061231709703172386471543541743833751585926563502208671327777738706349651698851267574620656992646682167681662238907716041219757816216213511571772685976836357698928641018674359279286136829814488460607537508453370238596505000446342309286529380952974025781246122670353329251148822644086937477912905200377273779023060246494764512864092736602614848740009851094811663783780087209566678781792027478697524731237982102393075773852243915400334687722920445020308688962529259167240934223472329012726582911768283271528178242080102038999436656022897672533909158280942048867861085446512925959036248644815702309370170789147923893238925434444934349876267381276023553572719730770825111171217605713892731209635335412774962190653683055634142403085758300145024142115965452903796106232856160172204994322270438835373192923090391618380015704485206242109248018433923209291852972517160786427821964233365658425838835253954736180953556356640847577302920125554173420367349814102398384135037546373219824658837271113900740506771276065142394997093047829507976458998988688321746985634937583834963562695271970869661441481683943909795834128521760464984517810776481557331224324495471264138254637265976580674165889300026700540040780665515144456599162287235236663094462488857989589799330543986024486109613723726769918631996139820881796136850251682093708778209226031191997305380207542416032612244413544922024880020810057161005156618277452763977386527760760961934200229248271831208982104242066970300638083877438541061527732088981465059192517353141281471712185091365040676817062058740439587539718663454204362479288957658758994717522689293319368706510872617269426388475313746933101640232983775517814685529237126991445617405414189857900738567538839131246186373074505803468258498164471759563065686764887422561632664960148774996646571268653086149926262053137756597927170230037482962049074245131110825780330080328655797568143491849928400400743108406022406520633484399181987630086062462683129148863629848244566664683566601626340806132261402090417844964152408124554369248421060080342199368699078297193653156409280554272838106801017566735322573847245282953241813108348340225493451977843334875115456018237906243404947789625357453972298269371068578639392413305810713175219980436465062111191439393859281220590571397349825992414612697589428734406011438953827168754147778897945307508418091834002672852139048131582633225602194987270092804722181305793633279946400503719451343966731106733427329912100412715309015389940487631567870494767836507517903286278427642709565327030317541991773897685683946441745350954613523995117600262066379984819670895973199338636566912108815008898893732477758270091637994990503864387764848569814698550394624593720419097081241511318469065987533762201535284573109405889107874709839560841760916109803176155259191215431974447465289196966148323382948426491624433986924691468063068347092123636196166131996359993406633561782149421326016967885123181647656548447465192097791922884278218005096474226710053187102341791845059346374399453257943161557488228697057994079271043276784779971946479917525223730205266068553622981855683136251255366568582292768155820686130809559600012547671570408679058794866759624063933530203619029210782344696617233014578346365195378386467719129306769075562886700451092621688901828801616404415761048254870110215216819858788280860109259286364605026494645518884221768399289262957158860356188689242826277676359305405266622093874102821308795926143480384499347593366031067513225601818702738343503050265182554142176211492938805724345412451657810165046529274684594569487083452188695520891898120116113917595023929507922711389936300647823142459908787074351480532892599322966670886764336258255750904558609347013325940897259696586732186931173770573041446286811871130916569471874048605006604043714529878799311142988735919922686045223834064065658503407353786934570299793100265343254242498752978774874128353865385502371867252077417904760121973859070825470506847144438017115538104263138048533329212338965855346469336232098218409377264894650288078352725368612466229530264092899484461801418324114570415637666708101991306084256803139981832814411070498447964078945693916313901186147180690878473884722088998129074796608195772024452746904195307772179809791735265019789025987094022704218790971460762904616619348129596904995709241784412045124296455883800835983275187568516530427949412877557259423953229603508160191653234139039345803379876235820424231462832232305468077098312141378957313768567075005736023393192015643517249619267730667947684403851938005894933022651298124705213144920404154706124566723438800735378515664413317180996496341307859267488640799450770952189017845725808851685846236042840646211485560047791793542771248370648953807835728748171057309698577502474533052238206038015025030162003616493594166207480130566812472324439958987055047067107453908767967510209221803546819274619033935272394689321703668964818083784862176743672672976854819539195158294384809262303795874135769493961438831454218651706343387635585129496246250639896746985183844806467796295820177449678751938628952199964527970352505394467653962001529632078592712398579781344761819845859438312993430813635655419553412212222926770925693020575903478496436983032234907559104023121077576439547593830070002150915939914512737344469078034303475452653080718002830320844043586328941490546937088430164959624530522269436490170330887512798428063130329300576543478162779122119571686512247363217227959402810598683429137511547748041649468270593498441545443406243626006392108053671682044149612534829310650274127335765710368722845953061830661380467832400814131629429524101260348443464189787778230513926650677016516774291151859420804839729646308999425668015667437888339738582370142749151705192333011382661547397716155160829025474286616145834511702434867174508695192922577692936479373352362755000276904944798178805440691303712360855824571268765920581906895958023281334193087339552754094724852045200039179585716635273658834062170160169688134576830919721559732343834101859836014164638372056416223092837727570064765524442931197046821955718419477475191041255662114903180894525274236788787964462482655831010515601741976330242016064403898614203113610142017551209632278726248540635589625028207080633039062067453538335736482109759677097113386384774806684098224777098869654704046030896091126551386357243467674622176954168694650534510221844568400466008206185075418820157410203274506509021400507034002095385460349232043578041113283034344820187983361229834257495743329892238717023882109485136633925477617006989919588416654325161860816649733662705822631856943331182174284938310815106204479740492098538002613602137605327471807355478507692422518754647747506168728018701735782786459242660437879103224203891329055797822437312425540004986154940382645901215668843069049054797830254146987352931677752338889011689364681327599678120317708078820604185376276699706323547687029354291542572917684901839755420552947508033609745399082943827976634334417652438033147809936832033377358328129401698273058171575573853703672607354068242414652322550427606012014384506260093516224018693139063921328071994631477259546919479817432697840731159238163888657975100029110249411509511361684291754425527185224741381535942196820874323535410195251009857379117269858500432720306205593796230846719096993817061627525583825219276187368894830420307461031439921250091125892604201025538522479172206309526615449459439803160677177871011107475509724173066063066221041224580042712981760862128098581998555881860835728645807778250013155022406974187981337275677981021604048477090540960382579170355671460121487904817556980340379775051940863895006677849227231727325853983665847081978509827051871860803610499155953693274080284936605173743590459533251794999492026223237523127251756067377270734173045791452039569639280718237515920266674529253769543462708394164088687277126497514447322332643696366030637963727438298026209225940042742780855559538402262676664231567464504958905105381726988703880346798655211944298379011443779641183010868410407312179571178504605864025094180792851373166156523672398347820645417462712593589812112746220335912635618999705143079487845369051767722694441237698228019504119300455024412843077439421479558334957954547064817936745731343429572706437128543618377883462434937787596417127873396911905559925960031134711759374197036334128091352725957162543137893435842927926372578366838258270809582539655425771276884249436835756808689733702614276152125935290836915831497883489693825333605892905791074314887419434603441807999649369835340016876021555964279959564570382777055887951935634730432796551043591600070718163790969810894501066689092606380342288747894301521009433925843440294445190627138745002686617424884264449085315835202746402932083902461529723610349123015176668421669270747439936800334695412429167477823401006730329845467552239231302904153688450054608955405725871264579795859187785401916285960748626133190258870969720414710495889743795031179039827874393975750126809950322660006025896599753435156520020983153269943941782071789726855641766904535076906753466919476645492456271126892881804517288564946107923763842496312177078450695502328692908146228768667781673793154505676942095431462253948732169931229012100585194778075994611265424050236949292969393378082708332705754975002446998812618732687274266343438686096137779229733107667782515684623499916013502046324449503322401244302265770885054349122801801801727002082752785556728748532647734934101859860085073485428931539657442719775602620374104741952797287781444323096987491912864671767404311327183049222312354189002920955970568401720004217405537319461628923550282807067996283156379484760368627120941268878143859580208216499465799432410426599646230548351840338687881116350116863506173745135238955782901265937057387160535707732693470713187242563140629363220661448151683397379780232693409118140380891662142156317055831296076044120674436515608518748787488075407505781308458412885358372018004558747573407404144287712689725013373793476786273872389430526550546962572892457658421395352840481324418650619849024086934093723247317753934887714627947706279971298945585545755639845440299575837487594602715032388657775959792858626212910858763294834567747845101886023347066813003844769720355507130498976283170559370075473717947991558656468729334799604530711167307895877207099671203793245862084535858322595524816904014630532085107895134741030544741157451799245388116287652372746884546042604672215842714661705471317805797091689575719198516170153658075379259289142877461513029534171860293189415502806476403507711358797914459652650250379215752399429738518250284195885204922170538677341204852629553724111445497655085601836180257702972252415370477105064907139390515134408072830495077360171302208958650617133448363333488799390973247204539508115795796986341210092081936171695407627766302351726655864643924197801192380488911459445620913611777027846111333232598088082596728706510193977615914911358048869747439004613414354650756677355487415491417170575890369674958368963129274123458603510146401375915379300459192543176923207420369627971447648576890178173047932784136257118542310732786820124156321478793971680765727730799790556365655020489155207947606007536139430007042433672345393342863993033978260735197416306068242577716618556530174148947168915735161330570744909935634414518227882277385068461466942795680169001740608950875109482124599530223632736845089506002477697713864873208422565091018229827408112720324433090939533814463112561647037723288978033700542900962323458886672961754796478946792392312014848157907307289621050697695221501781713659614659914103884456626125648425639668767783204281770927768250362873291083547866560732561453219949806811760000273870548719262997834013232703992316466613356236451963999560734677758532606636669174031832119028596866034032848135696649226897908957387479429450359277267793513908260729369287963631977074037770028200516360279774071179657947190329425367399363303157479994091544209940729873559146369504927300351225554075430471377798267661738168526750641934820261075290988458973846708443010102686143685087029567626084546775001781072901240983643012487559879039243299250685271076059687330688498934686469890131786695606498315683420705344170709659602260952043869848474741806509285252647340040844085841695413063584689862582848074795060370579651471039948972413434866239492203596443667416285253079273960548091808700192162565685423844025673718028283200537668563066054376131336554723418069819952859930838687027965630829605243661723041248052880953573737766731503961029085779933740990579431993247539770424505951570086474029317477466374297116484030312395557226872097074903145092034013518350115187609575489761951644845149577980978478434842951802730615173181640469994235864561851139824425914255730009031150156788311757684232939504200533800008093293968607035070484890240676751040663729660774718465929755183208073681907633149918552056738693424616631056618640445230980531841112376109336360360951373658288028626980728380138429016094492713873292491147818897659984703119843521352014250098444924351341141975663113065751470883345590415032646501007394465389011395087679054528231257800966748337069365791927913441526982845612788622919992211349296093654475082274046859113301711649241521286390122208912435787548201464234385907093613139061420655619602779340637392568747007926796833682300415120046710497128539480241502359211953419634529390163937867073109656067307237246080962637698408369318373836556849330304993555942628580321470095282885557083143284359423432135245557304200618738538878643038900169146003271367834517614255747737581162987097061216119312977143139777917875046712578570104648436508868282101619774820656361282710008861630507485050601451402632889214860536990680874589332488088900811405489490747228118303427345132458068520588251466984431426909396292662588161828357667488394096757073116387653283242488974048033849694859632573822098527311109908279921115968971143253792052262380843043982199860193911204709088627503786942070343296297993058861047635092376063147471940545692842690062954825644858268947102906813972634222410495907521396649042343273543351630203669428712399866307651035316453451156037861658455910767050267203719756615770835104094530567013549301860493084761629403800767541934890294472921264332563548744606207294261950649622083372277598052164610651322282827035572971727335332348287807523017710626535745212061129339252982057968752283365726681974769787867131092520175525312760151875683039869584516740200347786037315741539765990036268372366693843510767204020574208047475995344705325728983351057946170462326430127139990995756594302479689952253898679100812225878755801175197945596336915521793780290688454469722547595854986116588578219191715239884792734352258690168079303031244120733022969915095725305744710978878033336167308620860584189715032232833460143191426195597823375023862732098625949833629211291206581455179116346790134592965741755118449146728466323125762510891260354485368092276192335837391265840187819627894868002183738583757066311090307770609215711953212805645374253453384712033132253247701281505515958768163273287119919425825706018998143448254990828332328333523206046637103841413095989195248599584471421243294867425077381273778481561894756917092287869124717548088337451459510272636880909302188669894897611637828539000238594888477603158568665216882761369586683481243797715621425733279680869718983307900190140283796099004007000043421845072902091071209579133607144793779060319530201091944003898423556947733178494382507548923593826883162451674789593459115394091495054998435400586854192386636395364893924071564557720584042018973615392731512729170713115510794311621456963668240357464621858697841515378470889407532778258138614516764572316003747792082221258707701742100522076853630014190042449500091664691588369371568770775691312168043189785994150721824392335120422147373391344343271699035952356411190035228197331550044538347887645501909755785345757779760888233508014440480736941646198747319527644991498198417132935655247400964075426444070472198545373608309894716958677856110829431484220618756998723200866287374476801397101353833800482985740980097758772707088299787696250675589285740419521767185752685352602872823718084349165282574749069207079806154323741614184383736775186041341694146948622327164883311889581106173062131363185617290794027424916516400765742538800387988967464029912540443778596136057527282673336533514779371394394290660355667378394987090001367113254327302306086315976207648701200161602921039944697816625932180331751733488724712631896002964747097641185287742718376704734315625406139103049300573967556757602782620454725545833221874712187603317670430837983926570254705234525737307634784606265780349723885489312702909715143386168405574245140799716096285725199542743884544524998587817245710915252554944534803651522313879874149041925798728142488828802939974170122349293890247132154274349313701812500956965948858291809269201737947164452262966932417443975059457959077458244914544180060867361949523804338279909686360785392284041540234718922663269799185857532025971673019479461865079490717868961272324990993811312676044706943576340479188582958741822481153968449584953769170471280217583106946287271716939521712623372591085359613809630112579287077897325192295418860069999162629708761030556412701423766156709159867462690011285559763201826967236642920198233564156299410402939294562286225901811029345077598158499848761610015757777211078315515990109768903993701448998099556449555616620635589545521071843183431185012452382222593387747627859413102751962897612176889541661257104383050336590843762157740865384149099157682215675276500678248748232842045597227489277263203752897300526019748220580984544876915122069042936715180312851270748242347891532073065178101943212343319864196606500500677213723911806703767302313723213040174278655944263369830061550022178443410427035422384190925566129473482988576715726867311160615833136612418606235050995422287138652195282864345234525454478774079801491725635096351023574533717432002622318179807992655788800599345166063895552322918249080980035946174239807655865753660202404641280014247835328751099643926098698396711698463310471386122315744670701344963168965901178602098110675663395172790643111936200698153757246365573305466541163538804572391459886609046576787277025394713108647929579731639818321382485181143662796075081262090851653474511794344320821020177498144353059080255771959055525759317964131236933419609690387399031501353608199316702547321253847072887884232275681370169201216831768528675937860163948297409984706718048288457204382651729524007116918079723166135525710399094913732356527940914319390596352490040113141063897948225023003746385857287259644164319355661478010540579968025974714034615160104249337958195077995112126617248249908216406693973308549761082410781736545513935229382231068703260702650601391039637886697162848464533413939128942376338757742605109146255789024425897494603441026507407323584702472500248410328485359107367856709956996447122800440653821119497924718010735792049699106129690226193031437299327166723256111377252035280346234113026600179743243451560039444695887780576661934673512336207219960900682683124822229882807873296021749230139464352711751515173608510935280608169178532030136265308192267558676097186419495382685939047820813255778194622877716489266036982781127505510651952453021536419621455894568007930052483174973086080025910860303971313776618478671672631574756318061487967160963817525553515740743318980372645753443939603893847410853760249213827236614117436646154937963694909268541611081237147172936420120650332854769044134465601536629503752184805112551454692981831482652712779175420796447301460948887651278890066137644104547311551253293674225527173785728787660889012113441415421682862632364337923089225354513563082364909102531511329277012533325651937594546829085052307996211888665995089086634933965853422157153563657669904253216108791509895611713236350010987558706328650797656325921534480571088784073031543778063540585757179757704379789169638593217198583364188957204328360449388016205812878521008828659877813476703710829332043380358423038981482595629458044471764938898266013424068805689704581326225319451793812193574663891206403156456770570371720800334937688930852255753709442041858391592393443603038284327595872079780982147074175496162018308261307784736097763071907024483194673507336356790371271347813768566058128787722133165549217425356301216308822834992302676836568705471118820413207266884288232434088760154508708761690245095181263443982796716356256851564859936942589875894455776978903959345765922231428236106178465477037714778285375664554974645603048963747296295554829358984312935049381915055831220895619340549138759578840979934583550728475890664305837908309732204723029165116126879718520042850019699364298115293801656846916153305605371137303908617010861097395019546257229849380347979948532683619146072271003031736900897968429950833851842834444261896953616214988927814496207466976963892618449766955371511192835512197057341460677721665859563407533992747577408252105675561705259788100621697933102395059657091870546136662363469590480920446164874133292344007488308217711262869639461832392924408073079658954404546757196915212438481437835062974361296931907327309350456238307453345304953176411196362821052002796693585017669577223464931575402517525733574442279640072632365098088449436669799742574201691621982468853763390077449542360313171283077216729989204594268047354223669366460642209159057299039399361798516392565134438665777388556936925718623565250812143281379699747554901100892696478683526508059216559846885184298197786566809051670319914842178119433236861910426599978709438955016749924970180534663409013815792626900019917747937879710603140039986157640028758803436412448587582871882739690596484261522842986254503126256280259420894576379676843455922247494015223524722599700756056644748896643351792313670956150593319573539116186056472728515574074130241478721802107769325480977804949845778172261217654317525427790255129744256295998854243946202222690497502952071054742170976517252994943213839052918666439151085172621074795096432962778225562245104547329926945480588143922401965195853110568021778299529185369984049286375360336962782079089334308994476719015360226123081444001237206403944646874407843284070999967954589040774899454574769596280890532589650103860395318146227516066762849532198828355358862245298541452127571749861186968930661485500065317797196562842359666445435982159002049990614539647380767942767958186034259256885703788657486084201426150292048684605340030111015602824335803384092918976577637961273884723567006675332961377839415697660633428541185579615146116465324917023358122583073916528909688568934687040208775962542494715705781233565017068696953959331745643944790397758114630945740145959811484665732635318031940539757902569151476374262831244727739135870303691924218432034278013497913748442815959923852361608530391117531368752669730159495142732856953522111960400052739833593433891644932688622881378125297464366650856383860833998600735611098159347895659255008436948171657418690729916773636232102082612247000715697679726050698616414003025465063457197722655922210341139231085961201851771758046107038241170474161041825254064679143342776999981212785089789626807439623982268105407338884078079837621622054345034354864801143588015529430427117605438753682166105973780320518765605463736257673423248489720798499396776091285906507061626057013971022729293254926756652542164764709948475419355956314437509294103089419138516843407112516020211138852565015513545448745292997252034522416463665126311034905069562745157145575249404293202544687054238621148573175573868938930951457362686531788745034446893453638147648241038490458824209558283869166762862060648021330849026750570650314816541706402959259199675284795388105019498126297114703268619767464527122094792821757347559975299910105543924269473505534619225475911093598341937515576758615506191047322815067670277889121819969305544722326046902609445152541821407328287547867150856335685895159504097304282966228561271499076963548549504500170214919338187555501153935060179033116929787339559425076134605672977592932511715110180088860207173590353188649343625683523648397793028414588596096333385545985489975789802580931650670305832378443416135082544003276886224542865817097691216127243662342258989922516838499080147668162258132230980428459799661627459766244980665227914533117090726069789586006708670537388375778623598887572195947421926896141109002564368712691946201856779639457334238491198707633942580105457727051463938419919222654324469123810520391251105923497171751135656220470525098891649716413977029462072920607731827165721833672199780539495651132508337200775902665076755484812964289140016754027951776011291876931753871600039116902447027233144501558355664342087752583935222672405097898432524897487382292106577563107692457762012069782191535967758744348307681285886269928304566626874955583833920339391379864560420640531679950952731276022681022001010156371234387724081302609274797166089359842121661341359307474048830405239891341742446668302220951903985605614730303057598567922452129963991863009080678872501680524594141189513043088560740438570008620184560555624200946184125977802978560079676682442253940603811805964570541121086076409443397741636123973313599721286747533345061874515106456790120527256767952084337802400198144351371423560670611111222522281315762115935579900212407313484510190065391836585118096933813850545628435174064090326083564128622516201081873760541931360342068674322506921941318088279822214101299967821394124570477688389784825144805919613791304221915284041842892252412993632046837001595638610009121652395794402226338940610048298653656738141976097753299056480965019882764467153747561350341401376405922286426626006254024142772144452781688557273949155791663344205157081687464785094617312170343301761064637215186198989095515969463553663292717168833952061106385929355596733249142744601983442951122313560250359203853949003726931940814661127424662859539346885071717387008599942383091608255650507315637079683197670034757451891799059256585695834000389586388171501625513273553310596547015861286384005350232136035421108262984893000716121937415031180137375578127237580007295013976416484079662214349934353660020455821131434172845533073237652526419952055579234262905473824363489692160567969909010412664122457258856742205870052905503448084055977102660308039836026384273714203943818023922778356924247483769432074624562017988388215057480221320483296347030948190789980425653708702586609180152383028753809275360126338434271318560339457165904714511017058588700812935886318572441073861226835816746638521459936078008257863593791430709431505520362462683870425605002463979476500837079575052518060146958702646302655187471568089936336283302144039529395190482153741917031907515399095264441818196234635941694972438556796232081439007788964280344617101447716851791349592490604227830834950367770611103514760526316647039004234590979722466131087345871341372298534073559309510314269402736916341097849216972854596379966571443716709481055580093365779508515448913444573771978611209117379825226263194203924558643069965374822444755540027484763685595108741436412554891795215089311343216460603217052021179939349497959577252033137203954018867808740834077095863245548819985306579497824233900484625199351814411413119001947211922127615562422345197416324448537039128903109396048801028186347144747690438767712441284678525772224699333845295903505776940649010397461143945674778316444345926054974052929820213827119357389935212691787415345228265985281650425109871099936208340044676101068623545449027238378307962973808379646205888365913770332399776420619633783848343776886050260182453683631083000123621331005796814557788575133663805580930188934869924477904135404236746561779446980232211653295435580178055561843056229399997054397477431222158123721339398531581071373630953591469901309898136551076161653120118080590334379660144601448577221901677265179366359941406985010670452930743335941013651171934507357429531043124733919590272657244241954050377142034582606924863434871293009485430159722526209843416605934376786575305262630137018549209076201144455785369577252904630171775269058929564050083863836054778477938677467121056832270250972139214952063437663651040761703333966134832479301549581656140238003616219467956457171371445008380314140476094307543438333671356519920078671114829576423363825847917866851101631323176174912179822108313564971422099456559582667933727896488241405703470625687683624539323048878800106392753612541957848043954545977534836136431967898276676474921838798902222944357031865939517006950168883085447812924845904274824143898599408633395150507970924711269610297059315903881149865614702034070945666239626963845106292431122833299599140658738243186071259998997938206563397861188962704243081725873206625247602904284797829308685292013036874249264388887685841288556601397860868229075637389352718905818047126579068975854997921734850072304254052487715174903188651927184513709880296388803955350913350990015493062774361329496382833575237109997870661890460003459331272506099273269083784968462230303799394243860967822588322843645923972470070151189612057940030882239949370005202137693651379113159426513372104259181060290950348291874621927314433139633119863709317307941848019080623674634354937185087026679998549702354523369297611405490657752126301662203348578618565428386059108566219316784533070900532030404676085357821087311805255417924966856347333394045825375678184779589347031319436027995055822940725416400062714429424132183512310024734526585907249046426094958630538763921671780161401215138248549887040733949660889812178500244640593727149844590068050866132826537459305767831112774619337301548269295932533597159924575352405660340823500811788427866269060740867101785822222541790184168294817244541360848598862160426921553655497028567229520729105056510980687307381039774246460295987720492674686123013752272362379982581640816104074773659626109320329720168322931491085945835912972161723613070439066029086047578815457140543319899574554618424984813896016635033897232987185546223753879993016816438971794798335069911239435952550955211021997356360486657364345633620543704551827574538175752043704537997792300908416627182188349712315267669319570101048741504250144582836959870998743411618397385514241142210706844736941531514744713552609666975455879744191434567386037300172090720647650320200227526065949370785541694582054974235157694907819160553566951001032638528764275035445845213032739949660963422931129589910899937537333989854682761718919532466736990502050549381486576989050183251124168535195535433883324286068710121276922221561018908930751359542253902447263305732010780647461068080684506250524895337436573175575343044462104227026777227252389751601014386288140148189560523989942237061631680432115421976401107007693616650355074564669401720849385653533254260564122812454098705881328030664998875331170621854902485085613116412378748719137551558074543861193478838687859137072325858986293001435928983533858604490339917640360222104491146586059713406327245073861220411422687137105761316377942230769587839978024792028814205001090483309530089713770481612410236014652214078728583116919928330925780645937852276233497043616213576046520849651026201244944398530510139984950343006326697754601132816204922090766502484140565759395229873491578470275611430700798686625991545040029168764783572990651978967894725814457675909967077586321339047954259882481517671989554307833042101099077382057746346728319328602608702639588597139254198722384531642743723633245720028050927048694253763179481746647484606259782826735357630079761209915704802935240447844976204445186634177896298214713911649192766158102558257053456466424310824253900607298764985304919246386728165680525608797856447209378697556651308922055138460927790154682094528274321574004700422026549840843247568885413917803774731214282404466912789989178849299558109175762816680447014859180141579323878710720419264901121440914958387927559178757150255318126691850945798446941013955272967673902225527134997828845214896235368169260505713856102095874992650126717768486365154618363920599251651968156004491744497282203098621732591723858579175914835057680771821921022715884334189339478974650696040166780030074232364051404639914458217300834668073503351049698442963071278512143839478819483601757310825823987982296629601756121562673079345422940799580969402985111259305684512367770848873104587469886648982249722523914711285414782720710437675640286979773176333784105806999468955566793823316501414287790296432932151554068048885535049874300760027484488803680237028880311898771427125646027669889961189881093802417593083714628211979326776626902244693303109110794636616118578594553368234144963428639573122415273849555538803422982008946803232472071679363127264851177827523502801274870741463052211621819255362680466371304656299708567915049671500858255525261163062929453540889471618574551185237625355079639358018894088348123839675017702891929171377813966139243408767195674687208850515473350128339011290290657847326650904502046170688434370198791509287628243351316059017733942137575318297530870282153212836730934379049658542477758361330766323613372224341719924911222069341326265401773308525020921797110295538055266217598621824070616781568846999445754356666623940786749589879928331039587440183184587103554817771885966545777022290311168436786364452444810577916463538359978840151095718353321476723855744644513473676616302794684328701783096101332420962577990356495258627375260647468364975558761857527178778559344388236073266379013475848597089922909219182638485839801445585547821106007032220183547934173004481057957254678305510239275428002660591278304284243766013408996371871747461800391472063726986278867853955247956976007093360594634818049490801028459635279409616441753694887538088947421127956308774377505927846997481381694046661116806421680586067931975241805149251634280209234636626463874221487142421567418835835348455125394733787631103061092869281474720882555561374742358800757109792247368405873472520128562000381270862517501232485839328844874303200201768887675936206246996976887318301246772616480217488318340377622635713419178081727856671267694302075767403455601602432750125685659729468323578785775697991447848916249883113195837428958145535395897387925193195911925932490074411813502495272480572857128634995774889794620901170920653027020718926378896282711263729825594554255207523138647281986436242053484462475656908355411937543531435599911525746675898673707875424357764508762550425724637333143433843318547008843835540796329220282655239118212313856265580699244388660808989741185043206089494236402597932027724260909125209078551245997048162867462980381528758089373263845217138013176683792483945217453930414411935171449860392085443136850844776040938935977379858812905469456134605279526376242951173605482660494356682657949693794932833865915330395534984135907101211231872999460421084240066662889775366836415116827031825002264170237110727162043571296581074474483597647310797611822099995424191151217429855954648731331082085374587823947933293242043853267925699885638072514197386603724819658164186747179039895147008417557223806554712398393204414932139033394718667824554592640907984168891585404920832801330975107994956908728891844740750918433951946248701116578707867224266060915404415232235362021039839129158724423778685741892386830658482095125986559063437360461225526820697790702104913942998015148382345414180809645937808736427982884108593716380517132340402848406279511996421004821457735626980561280994246901872297989253831346484410005474548186886537575632067140224164105027247775994265787525055503361198305300710961712147432588309674490460318753669144735088773673289645488074945154932806667666109831276215387666619525065103967614645081787808011635998278938675573861607870726801197945350752916127560653462120530317498073841381086820353570238624232162044975157515269937174732323434676150579207111034280164699981970953869987286382206896626641298997585232623270414929348805536971577036064699012778923327208754883496411767444257949083140503112630365897453571710026073964702061741844498516954671473543284507855722202528309149772400644530120205709184072652832656822591126982621722408744756632115096288484782935877977563458582007593836089644658231956444483161643130564029044726056128758242009094359849291860279167542324950811529409506902110397297450795262286563915913862369089901552232375536662722582580181367227614944522259877162951436836450860605552731441923398115489522988589500995404967942101912534929648310383084841011042957302425968410088174412295279783393551875580201633448545779871151540269153891145215411605990139126090488990151131839281414280138488326534808356849551094178487179684608987103532387914517190050498147113142147103632722173056393446618894412477535221824637317206919172537187744645891667814086559535552898212145228877801068546746130906907110665716277109393807068313005798894434553917952543087461778490475152891051878170964012063656248695702004352404925317453628611966581978975681570156505296492083354345471071075685184467613696176988107007867299472101044947344295706112234438076062045813583669661669013216170313234462225710103480656207490441428877035575585503631790179376879439302756082023810091955272299227571630347163438348987430316498612608668666898435412010144741142359988658693569337775203910593991474328356368585358722383225905057944426466798202632320389327627698072899524605558305643154690069178013269852006650541471881982942717137885017726427992272081613784885627454178397982665526646432092235965842141211994061535974307944049868184598951123307488509975174377637249028924767733954354710519000994157264208642435283158176827065645815965536392233240516428938558576082407069448647025191603662432426821183141466828223850242661860996423145111222704183779543346717756483567554000603780824691213982441676717741048113885370425140392148522415902139465566375081342584077699312733547292645869912565712880152931993901370654026987380714093317156238462369947392027917285046805901980726309915457972647888268555288692944535621047213485900355789088915114543068983307891401390459105953104800119484626432527966549747273595903837887107327732612736416831654513337554981855048051562635220830290042222980246279165349214531592695325720653624596720497805174101063409578341072857064435336704535343719628879884253620196650765652410002966427217950313519888351573806245769671071036756255114022301249849925087958601305681896416602356608569712027323122306261567056431488616148350866933517611175521465562304773145705035934634193008409600946794330651029094280645697891256829690415631003713503613883120933490408811960019712508090739001447262146290844896197126012743721481061868553542008406508374163449172703434517407005580503851773164508655745302036301805854931108439694243734106673284019402592068925255891844150882954220293943427136728204845270033462374234698793024864553555035760232017598227668339582976226193858767675528768211349044421168760833279393913211223328025702557838427053174138549598762708272431546853630978737212864511715913848377286234991735603782457132442676143393636724368336761856294228024587403320509129861556796851837203645143129577990367536451208078589968530194567021169564381473523709460332752155644523281098331819745784701674477850862255924367233928831926536211769470224575347977318368276748162576598369580679726824608483540123582739590856680932962566915090382756207624334237825014416298796979091669443936000671098200927129172856070594288056698151847909801271732225994279357372976470430060909566511650542245530749942875455069870738641026738960917941380877814592026613095566460952061605709432559159237226934923081213459398689499901873656680952335555553437655292674654095931448248253802429996308274362093425667820701913436829239454509009385098328292594479013910491885418369823919048600752239829632241728746065282716360005920774723052251128008622184124401745907583570223733771824818807790065808396043626838589848580113329537457614415308355294402645685538614009474066474006626056831629819432535654186577762553360574861498720971869726055724455015784131862707754001305329831820818179727856982124001002602067213162933050566520773693882416749665278353060235458697893670510619139711082469615197238033757847411204976044969916433986918757795163409727538353146813112296863176642913878370343046972134725986474107252738211161692783339330557166483441206649081665531177804114087965654834618317278421653598044891033639374520363856803578390452737035315886616244680185166765016350713690164472026129651567687373470405941989083429544458692556493073548972118791135316786317555087097097747472904514978629559463480596790430487837672240579575318956398970554524246409939065564663012603268788966751354144794188977722488895595460395308524079227407584042348408192625921847047970225987540258363064591916422769108473704549369152207194051363771793272025092781801245853132561815090468413051167151986169393888645265942280035899048182008317063990251305609282442961167200016491063397474617522729261571624382121204981715098578653771277275454970924411464471733261471751332051225026740980334358152922142812228921505474743982966790353812347196527195416565769571305971814628977567957128801208453431821823990789035466010240596074029007677392075164398668472021771591787085115994077297286768836011236927093629116582557016619406776284037607277046546572986958043076916262063454887052822593741322613190390553248964606573975893818035604988985748650566367801008102789784545635519339982341230283050635779253293363722488267685731173538933974196129810203511573157304555508700722517574104335917450409640801194404615982193270347328922210728498487743365066653139932157476196266755133827747889736865826830357598391145507115087326675559709552960324444605797447175322465218286790976880739165363643018481929267184755576964595838270457548041750694089545289215327928327035774292064753152386157381969967981860317276259152552277279687093512769037099417657969026693860783191933375229342069872554714872009934398226297535755152406546274599217725201273772774529545869646543751005115243441506335967571244495557931242505464303775990935748222198137066762460953889677950211528557992543225471273693726903299132591683541090344055634977754174227924894678250542235163224151078309692227741043241021301799220529406366852998747493232204269261790715998958226795158954138295137675716504551279285293846716141563186712999862518416226656064924828419733061271522531462820147154590319629154945123002942275113117279303511836194855492102014497113275835319620573861294645941333362780365838468295117124077760965325089047421653601711710289689635799059784742169848248097530013240730507581018606927627109061481658755037004420121821074019496705633255762795517223787809624734424116674037965626820877426306642288292520022312079273985541742675584992949178578850051433778390742771144385844187102148457199848137238381937632259798767644329946709306620761654215001741488636222077804475613645428267670504028043990504645462977388863928671112297791378017397604253185571450153972462715509094456869857755212937998972762983319070048520379829157858573073089504315102919702229096282493786189268309644941374877692608029251415016507401833079655824148428790582922139820931500172155666554305705933967329710745923645880047687039126687277948773235979791596487234001197258129438746281099470601103083108114253861988550572828687100971729845920561319774568590924612578590467429563886153077572184424172639398786525601767776809575772243155232897693078231343521119736031648595104751184393608560043603335679585633707043986991609841439991623987440852168330275216310166231013281279806037000552729050262985593393336986643611202790775918160863534333200135144641601653778462378834670329746472886978978702886171836582489439331970705014409413461139142764926581851035223318444225310991511171833859094904416565993458246414890507645546425954524651304855557166971672634624073638328229172228575985923215466708245860017926394197497053196235538638892576590349950464471805632360610668713950759251689332177320370118264764022980079830927373898271017966648089522175656687872729870679540235486129888556168315552515001167316677162723105347212272544475285128053267674625262179834731955983233752264020381037602949611971147684702264617220244839237004486200307699359095548452963019201666906294026810323209399398740220184626262733339459846040315446505730508390183815806250054943127711958368222855780396549471122001719767856112487242590722065486145156320909196128741864146011980147294366748334581740011604246976854952673869376008357950940893333254356629396880479385292727933711154051828500507304150599463646856715995276579912850067565933657954388208316208216179376230614144704976932072239515283587730222039962804907247747160668480061343383422770393302397179766816109935262156507450781586804222167048533144973723962701629952128428648394048705271066575159912650427171983622924753642864633751064623650718506886535848094236340751954340877706588573057270283875692916731384184909963891988227055380813495914091206245198853207171666365271698226563231996049307872504151762278691768271703479272302025365207854269873424417390494779257881489815997918131442812249920095748241453750120598540813687176975864836521947208766255739341848302233238998280211201389862707911893537983928335988446239830027689345466822618325410896677762925620040582578147252553545763625299444653985779108744037082575160476112846017447772215682080825335121607026494414169075859273536011759765973043178582652493148329926830220633759150933387019560506034863349157523832654790400154507586208514076604375590746026324406225852826501999604959992053005336684149014066052808952422971291480738063412406717013262122278557709227557751899030622263073734242188583823091158989155635057231689696700291652350038127677216413778286565385441801145101955155445209465485702952868449095813236803332792360500883213081038490753870354710660888558283422117977754951178484018176873932831099898090866084741955965420337556109131658731460124856197350081912969684112266159216213898762677985638231178571025925571624691390469234464635370791726392579441242681864661958411077437820987947054121284214074193689856814740767786920855831212069135328338694593943579240885382374337591072955253709983482584940798973318018897860137134597197343018525979079042165926987662188537757978542283615773638392115149947945795835303979470631198090432646061477722148415731057851613022299241875449458721277531344144853518495538514689593031012836591302852080749261106375220317419481014297240251420686310176519959908459156022172229428460824039736137731261790005471615573397898838010961028440070958149385875437535865348497906811420407490493598320758320158863946658834471791450499744236284323683529192695081979263183846781488032479023701233940493786190206082024937902513702066317643852676448717145740768743287817550592046458076755932339851593151173600305878434958899629961372880871988770701725713464579118240643827471880386823928194801607973475548113687566352737620245893138484270532524311383878892375162243471635684340983939592805356149477023247792130168298148639146214584412514057606176162693665060040848258282395947164848564930607067523889077096609563512956978007368004551333917609412908439938518797498524287029728212578338349733009116695825212364596607575187908284320304170616818713670484949479695413150503083161067010783903871575955841252541408801601239941407501436091594263551594657257882148751753972524703978663963198423426322716783972055292518568354513801534150145267060544925112215406462463621887125491628067256176301761563630835158314628535190624339337513901455785414989025134172248386701505758821218826947186440114097094053930897211192043805901333598996314514261569943140026830982504176203703701343224847679033019485283983506241564314634411403614905597279009372180473300419980090489817595097298448049126060109814768591196256649414309027453442440390101161360380650689155304243097634249798916438601438450114967744686737175370279841224052385369402793030539050068450931204870430595403673149714336284213030628770250970098504371261111577628845975309407800963072804212080927969367905176063842040882085596314482378523638100138111418920165511976423185329244782587001889121181881051741601653326480455948970441197264030768344946451149957415457143971278813991115075976221618705210758458478574224911994644332305343756000776091064249282171305373804205049502460559648651757166788190354635858561159918312656228041303190526065908147318946272075914868301879787449544386411073122937552278950166304034968139033141812914855105572909855544207413951943673027095888961263843606455893102081930984669170508588388347656891835078440888079313343467025589385214264639749164481645625609792627038531548153739443204975217345217363412972372321999586024662968964043202120497785999270623577572533041302605405945342277078234226554203707485369340141479471344399489220229226146228409585425193103394215101808281794620339203060665006463510901287180878901347602541077626043374649019181875306555706640790639926821348828647322387629022580605503871438441185559713809917178578043047378729274792099339179469047086675152792511743822921769898251294555639246266932457599670377518725171972728383739926595694197413215141977732169044466907505724023192740452262040361268341067877930639387738654543470203714001733966196180082394073048058756878257346462461324385928240715251048556209429388005835766851676328035668510345410656754466235192421135910009920237553335666167763701543125817483153202288598227115743764027427590758516465786146985076696191590290642448844997391185810838078456460057183077697469193188084716485950528118849918866572467188901818564323197640714452717491109411600425558211661196747047326138736611124205865540570223795460307528527001251807998935716485524983258221221636407239131674685258410378801853116828106139892787452443958676847237890087639603783006507019521893850113141616314103740356835023091752770836238501946656259668556682294397168609274056183915193257962511939217327931815865439918808817737814582664978863704453377154170009045037451476319312984674740488459304763051873378881732577496067942529843102511575819247926444959646297508079888578107803179156177772963392785096898559867146836276584148013018992613555579518919850273179450086043498478116236773628294691388928113520169111043810238597187490379959158122534389574796578054967194145661646232768421488808307875014828175772975299358201487371850429338983583810049047264492755410593337811887349077762494300204111670847667584684797064397016707459319615087259343128387297799714781412164726178055655112060408019906265297321477316325005325703006783185413884967127208385675373209640880360918523838011608816186096731151443517448823794536007693791734700591999879432655689482586301673349297041410586021331997250473496418321155436387953672285194967852820176030278267122546049517350031763945731281001256155712841459592555669177931256790794470322140477806019697587813804037916982003790608153922038792091674985047656094684136380314929036727167277006132136909390667936214646382101607386764411625455708833299150226149821587884825044529107225535299403346862503919254057856940246374289425415205004842881045698740589251985811339083334672715952662381300142539591297845837132421645558598135113950237493083090509610509758840464606448741715358931168293125046464214913634717215185996814543528381173243545720653610743206762218747277463218927307773074342626686499266518664534228670173704833448008889966132674443174250142297069746584765696326780260249501780832218886417566443227307123579489290194058761132603716155330641423270042089063719533889440397676941497925429592990722606074396322503977258912876030073061009998470492162656608847343786631430958718203660141891072241784147897236795081150413181380140297786713709789126532054839547021201966984106587565061257173050442718756937858139116196597808845973969028557857984509647731942712898126579626684620821029874984578974638876078524757818080408618085013720546593538727338263461610982092148897031664139395370791149826648598603988972469618770656829721479426497312160667923432134382118746891701631567070819862191144217794316253996901813188704794093035276491920837065703607115351905740027667506854853063067354322444110318213191680841093758002958469784887900109737266969453820701492105424704369605897421540452422720370201923307899656390153335453856155226784503728765565957688272828953916764208105674346922400243513655275286558055291160502736742588481878431604309870264619652285698495183213362115459469402015043292923345512627242592497993441155660257955270456868947398225012732370891165632907362308154738532050130106364155060609161287687792728752575506146679677037715876281190488971139002262628197557394438343515653020506510358963260946915353682448124353274464174617622514360518275607348891453336751171988962455994271721450730064202954662360784488321407984206052720813808781400869868476283901854146601388930408565151052201522224612282069009112645993243146869335568570599860276140774518744840330131242565445228841320409889953263184572120175848301657278202005309929068299306302899797219650795948323020970464700404240903499207827669332445650523233162531652146515952681089505061323183750639307192658815296280841473599011790610954483515358052518942152179425230933661481505579512868292272944803758424959113334162009190280494543710056008988148848432923160459191119621705053401719691709150260633480096640426942969876303806654227671710196401796961186001530085481307462892524632294025813111377828913008552445965187435369168361290428782740203676298840975999079546724596170463277339377508382347771907196981512998444190510707259591308341627625013815597872964754472230613499400817161447289627597987648796666359769404631617314525195356076888489415446710294256904488877501098431615403677534157478031290102832895450194668716562229615352481066045034667356010263322491900885142665956410716059589778358695464952610427827201080788075967124751763122045295154671977104764500195571504727785089065880590307545868596510095253263532532745027668030970320220468314948962980750154465712119690068990023349587931332867984958658566688550503388632782814266779541756821789863399956987878199138801594974577503482622735734386541438430922364637930913868351320514015472738691573389670790639702839051776578414400366602503743582760984843268352562464953735373558802628651241417532089594633624958117408107505840652572169632926952011919560370021004917444840900514726946008123032207183526663640342787828163556846993448097188152011092273965143018481479698852948836779222112458381996209126048407742897172498888764191196682787703786062430386510124811199386752871580633022936252091291913309411249434705466545975060166892153790696072928152903207753494378994777268889728954421815248917136184965186394160612575577869631185822959476076607853969345485439177871901882167714000736734038182080690676571215451758692931364364312070004018656603708839432448933753260750938682256265702693330700418272327533509241073408775950519347769004789696395018602410186041821165311541628059928930507670877278582148473697547444057499290640387649711123845998364884553055291134159865515652111184903045720055476197927369931500817534721112324872532328519084035913956795215796086323962428587081939867954781600974057601146623926520556014429501066139717415723292565691327452848157558299754833050948153252657325022602582863677547041641634368352303180122873585285093134308443625843980745909996445400541163855391995189511339968778721377478375189894437315289735249773026467990038352409800780014680929043893229317070078737573902517173577573181578798523067540539306028963304043120999130719266393441026599008912137911844647314286324921894845626699765031593996574182904418037196107716259540776110340335533412247260288418792205059075516641864682587930875797099099382140274074237184049132227159804554665899094226334588812029710889270134260569177454668294326682919093454016977716169159461260821618042206515171662990549854781526502053960783956086738958189459496356800374045205685258152560136779013322697026855446736001260330211034333987009675226194782975199626486214960372347452938662673064835941586244740989703374294177357228114850282295683086848411601798745783726766002865431179940929999773413307381450345397411948673020613656706677640081095279854773623783913531048580155192940924318757959554997417981616635706624703560359139385181203268885638846891107868555738132226493581899944939229899375704143535524662144002536228617639746701179402736558199458186370542272399811132827570944871360285030365463194243237695462779012510271561753657128362618449372076482849475301564798756098357529737217870973149778685964334740278427346496372129896528325547649597351356625878863146681348832674506477646761732726669270381005609779457958572222316638521675740736948849158593658599119155222860687200421823656960670094886436741957925877356098198464770554748081421452273413744088160137975297541176899372955937585620161048915487004877474776682160110779013070182999534061970254486416460398033966233904839620160987174542521910817957586970500266849724646302917570819717820663023667972102651692895417984681770032820204483917491206843317433992822173711021723071257474486416308015193854262850265065949092904535940095383779107553596474185179782041642273685719823724397642308763724005923390286347283724189194255993739465984896112088184335070117507491491753234442031305530959945913497468305266845892596985331892406394137082491163170393611413565907835866819993579724462525202171604331684404292463119240505008080314397819496500103154860419039841416686292160658807367568565447727659501585088888838695271863319347373005375774759839483236750665372062462377240944410261517552192778236940616744163535946763055074287233651397463131507354820782614191100074205855443324516681224793407518349709782181129611764972012068406241108292785744537976358364463852432632553676355641162862350559662811116740555839852565977678456615293744899748468557221067216589896786102647874665265188581999527480243343492352060272972666181588265562112661291374320989264109325671401129520794689731477068594296004633322594431551046793845365519333685915268712458031060035819240538836891206526691396289232886726375762414717267714593222077876629765112589656419223808292180464897310659478675904572843866294542600456443884371603730018946157065867185848130817210389275606075902200358833198334076265730803840656263927270838574737045079265062080191450461460804822688418638926864854047985788955265200219393778186365618816619649468644476396865122673664364625170586414706035441670305414104880525570792805007659363919566507436277505473328249266829632351823181115246905626771296300886849683636208828288193795784021562267879820588023125961276648734660724581576386346376597288851591702112379117066285768727813655832012069066642097578106277832281255945972364273684765328181875673804494388782320247201822969673905353707489422964414529787017248948317920173276850422901995711830304628387002016118075534290964793875387361791161004628993378815622542675338491382470094541046636596968431439797013278249303350231504679593560759623699557943022340366060473467362635016113562728765253508223564539664592451897822849872114780976939415452224191585206027993966147771570028377602523158897553911653869838785829941604082207447532966926416932572557462643807763297955295759170044742106589931185855361711302192636503985929389601293891668909201545508325636053528069151082405484644311605529539780446946566030000241626687171619643959007736203509817222044065234898332974024005660303334325914676059079920520621651377901392340574889540160769138835872318061730879031090538885388467649204453699296959703168527402728458766385497336563168737827276499490247816281920250623303578366255413691214751473924223593521803474409081692212475669073016417780661496823519758117458894392869653844570876693281197566478311259832579585642707565064096458641263175395420162751173185276080539014171902617040419283942532316174896018425594969332311113634616089501202517855649175814903204459776264122225250388677783621524839778981269364034788534190302906082798974947490045022712416724074850635504044117111398066631576466171795600708152933198995832865126813811283856595310229057571880342009533282540101579458734880569710447394800446716608240031494359581037116348362221133551556919233400824749744664629253471761982551332200742516809870137956852500779310212380687859100241244444806196684033176186135507914057136215283555409795113897616582827413969325383078620426663288359000588477833357411811176662794506848327136925180016838132416908139387976427801351028976941093164769956342290455528256665724617422165388245218343879466734175813699653545163858533820087984854442081959380278622212877984798549951320397247121577787592119252911679104809687042557880506141591905759817106777164926594316128677014839945428602261485441992747760798201778651088750817673035092585046893047275249324174643696184497911961150363442319199295939426420474333290279235014108278188886830688969438715534613241396186472600020904174523863437820895292896633109479679003442238988702289696937251180247154949548315572255050800350955957428732931105251893464589887848713355818707505760348051503090332686239328485349081343108598616297624209165719487273252639658763489809078661829522796835077942896776276505932285150612513981627332843210702289753349760837610640425447889339103767067434471007263932822476442035131500232403797169920296847800663156621323590127993997929587868920840989681296991093243253692664615554664800518751385738036314753956170404800708610999581524027996273251787224120221224039922656134792668574612764252064329893511150973518359891716807701094423014387194256766981232927155083115428201151710684174026254456544486340671626453507712443662507346595942640038734413667753635535953126666204603448880087278302123609715680586116184542779839871374292337014378887305215895909483472504946057388409918875332458196510760740105315698203938334679679471588522318017546126789831353626056525060840261370399680502449445398455297827364412249020903349694299775183442813698910087469548344651427325879003344756736223642702048261954098090621415284611103799625301688468187586005627928318831869792886230786158169387560983963751753392847303919391348407621040702898443860407302487466247500222012108054442832152599601956341064111976213048687301718172962051716024699243979300844614858624172512881806536145655386940052048910107043831668533285532160252014356526650337310665762731082748887763738974024237984989698675531371174180805205996145821032038033781438753947469694938233200479604688250164859120183355030053523223039858978128497299514245141438418858233425129505444618570808045141141161315087710112961112681872356381890151603230059820097294671005485811148520278773960148201371746224569277044853892214196945831234959134467467608469622226363455403999667019070801614324670759132250435283253890254359043747047791264766419785403818263081777165905663654540685028301793002456834403530879016722774478887416398796747198856090787446679312538514206428529347058511628051470190260351646512698767541497304633275626882779081232526216354173698802667522225476611175286016724235934973320679908206113763974994336650975962087437748366737400737122507771820707290980478049630973511454138034761737989076744826804188399649929026550173967666690078260092900270443479584904069222889270246457430382696303820070378293500196354570684287602697904229846159588682239775830021683428342682562571346296848816176817470136663527139459070038526747356871198994376756072857373444119158178859156075198373078969861337324634546507085228852013339375308089327998404202280385345435486510711103672066814427300034910261640720980563457823891810760716936199758129331293613471821222605256711596353455110303443049742788378972569855167942588852007796290137375910257423503273762753657247061500411964352081155128049249147904885659932558496014924016374864042506068590574820632229916252398593448605063310402069901800493487845867343386381249855252247379727578729258770196510668480561163303657950714294495324261848037377919660032339527285777179802580595410722174714653859963316997409766134156692525742304560131726537456735871666308017944431834793213945933319147193015458685625057882699533933042565317019041175752844534799665756394790745491259892775634080301642250880345520303155131052742694441460843103852773600638922765773248804472709394137660358996786234772173980685766882876606424156180451155410335147755917630050271977480985686209853755669715138696201806192081844658930841501698536725942403652945883804686248773202756183063167054806589461547406656052881624926280820012660596993975677227805044638487582621112614142509576722012702715108451931827728755628747354261763796112021972128108705740021592188377279989978435289362213867597525299043786837753523596293290676056911758295856664367533317346184219167582834428042729228945369841203380232561784117940406017673250345526609323618170724127596739063412785736727608250047693578011870710095557326461488957347043702888812962829270192453079681784182154786540979905195510905620954854297394736138243177923079581142580329524695609604110385947330956980030733880635827314303832620165038207710864898163957179889536609332762918712381628660865725548008812309970243264068951735384873896002291741976055659570212244513225965797031210414054717713612595986886758696229749153312970218099850482123784031052217159240679275366735734840372208567554848957008976838931963509782556081300775966788592367898644480048276791280862412813349367400571157039832816670558446091226910727096468548928169997260549606423942981032582840155256787396874607140784503047033147936719136091885877029494779221498636756401838428404790198502647336126221210610196985198057814529275082087904277792942079686568443318702273775193399284627986086848108435869238187556770477143690977515413371847604005027755003095995276623295284551720499155909619566704530956332169802183306470436746354248688518486609895242176793840934719001217238899024789476850047006927227169586852652493349036388211125693774173218310508106880638276900408501105864561739508352194819851282499525915335603685739407348226527734035908075996379999436673853487452364733283685010968033967460945198441990800697201246278368351857501271191518669436675751528511065474290937482802770795095401748191106239014251076971205861319174037785261360461119720596459630531943633901473444382701401081616017911896984039610951612761276299488516004146274397229965156047597044287405678815844523647072230780808038226614686343418926865780691990445225862262359286669467476245612337421577149974245977818157044648828379182662657659246775434579943716597872789192350183562888942110012120674660082838977693449604677865745728318119732794762628175738754433525001676245864946464625456562069301722834611753106471170208205528784417069874378715914818805486492578765578069085968774292870617565884066395705905805252459406000684601983079576887428409840394562654406718798375687559874439037662761277626923674920646468290436671317040179133755600717702714199257615656609962791071973947645952508746254132690739230266595736341204784860217787809085951506598605434211322610902664390779808431150791715818913860906582790038074049765362011139289157103497139507748382874143379523597113110134381519264959577239169278444338028732358853568667558987394342354946589313614851040301761892778649887950849183067664340789689773961888510101772913380808405223426260649235000514399776327041816754149507907086855526730274863533165900181768241557202730748223455369679570251606555717359786333800659057373587440569040439606767647554036529894988966721825201338963297943785962977234471938190497730191762626283495381638155898908579245252237486195630455165882819056813117045265127287772229082395261205079472283246591310949604455158567050514662041214206654392065946991864880926819109326674281303316650084485013696889932795503585575802436258573858693273029201393785314508591113345280103525617958692467392851019800633378306391218646814626865590622307575944423558479642447291304637963041150697020044748199689835375404575291259302347358180050312582141278419056385971590617766513240865276746239862659455865613954579257364927179745674933197103614078288886281274324438413657435885670546867177491476925780027998380640753827427390362759551197153383415049410192591876542751092178134889048764608484688134920143722851469286122868875711718352824801695893430759973217476570557995574008037539814491123448758747678926904069438801463713577439586311431361069192090418912279468788047345089786443632668018482721401179180347986111911960536196535826623426662011025675862443421931406671344378220605813682150934366313697987955838435013634923199919653694709755088943805165492863910722144126236530127227969333759543013280644226581743720719895510925191919581077636890901681227879378215387847337990344069208431382814486868342882121680805909308489536845247812470397340424363537681917545820028837398679652057126191188954292232918543117228324928361577571219891957164576991746004427731309191025935997751364199899068803769284692152834123664977248015618227909876690226527609082802325821152409486333368918461655154175358772380737788221189707772391700266829665155400166470780640942601300184737195535988158302493375156453823084365388283051823445094965111519805236133090007512143005976560871197870371893986302533228431976750445582138675370885572162223429005148539698666264274486005736670098961931701829955472775161709360389479491790355857627430304578985484606461375643281374368423058913131442725539586281599087215010606926178162872240161003260266991695572081939023191477053651249069749149690774340023416489589768927204361516861720166088523068937578373607987890784747084026397202843545824715898645636471425733850018481065594148412961189360803240379521093419781953230237462624008321213140333017197803454442234743323423510373064447989045464933023097678880247738737685025467525562298079552477401858773756820434623075863257338395594095173621020283013989154373993037208533041612356495072305163741060541779314740821932679573467070526345012930409596258937389871028017249671728621571979473001694185986504185204224303453096972481452096688948556647907735605373267467497586213530827402935260587203994901827628147760721762632710600263511117567953244774349017779018464997274465699468210199596714102926620614487142505112392779326938248497706579007885807018328363978401374502976353453095493241171308196905278521299802088307804516918206063122469044511802096089121123927270244846483245708198544287292719248649595388952972733198387912575474737263624786901069906219467138392448168851377779178761056919913135555472741760561845349000263699980564185621405883622789313190328454716109260352725673419035522725794856312530514258190466363909054847934962954198271826965706713882944197003143798862538553771286011649482233961854889195121949372820878002427245566610570306657033646941648474451387895743455856953150689553347016330225992824118152675987978299976688212375894797832104485464935763135609324663222893828174206530699036716826248857922057579774992604212285124787435711177458933376511654382520203849235897435211294614880967953718730793092674686256025763413846188834546074644737897920969125688439660977910754067907940520404234403815964916023668479034894573456838181841369217190522999231275891501484049889117706625231140837343255773214106667964945663362662648147081075876287587422059942046923532892095513934165753480297398806733416589483038932094732066265845323981292092990330830820356340054551641447520440048033441254128875746382107112186270249826111910872411707002968911827261574674842525594591090753051892890466869963559608546088057426562304078311362114672266971282397559916124861246873776668164505521713270412554103188205134270391794804981384194842379338567397587651147660440154810316499434747733678756463644036617462360058890849068280613062154597094465946758918980156061542888012832099514882343212337393186130539249801470134109534321628663764440957661933512092954123586505761514037700923313859554523152982784412636886760277593125787523672716904800128866785485036668661605820924325867300402854318187183707911718276836484579891379536917674063059430890087881085500353246906427219798169230258779611756788881665713123753298483047153120327570652494941077577081606374285930476423310957643424743052866758065018996327171835062955807626923620529935783406538829050398222483129546281424420901533029891736773648055095077746497199984396808642808253855274813062028980463575249726032900326446574174110358693955895993711139311669335732891487179816998446955222576137239445016051745905341777552418234027131034533817513856381258100251254481911676426118597732161914905388962297609201977448977077213948052543431954258045041119102166967043112010435140058989034483958814365347799228507828126596682971615614618449559797904272092030015553583705502407094244581315179760702639965731874953557436007037586468604476652782199895236921758138339154126167799196711300563945210283338884096702001753990307823570057757291202221804745002472676285044688130274592723039908920071258847494449582714501117762915308850451470931394305973797132271949291841706069689103113506037441807177978026986134507539457385839318724873685246157692266854633428921960563674235369777137480432170752357534436827398559850658835867671933534685470737847891226364463135991250647694338389019475065216379436628445213994572561157197161477058129960835664856724239764300222201626723474389282554272969408896139624802824512734502832705369979706981211100988896939723406705752153139336090588482985078161851289990118367528013164531500057041219118722901223097594857405743721546931576239735982091272779112191551362074597510410093765537859924321578880790772595750638832049860374063460518262715075430266514929576202968824281565964601835229929742342009353503396904632166777941518286641434017685593430789704195465860840325214519293933912446068176256775611147065642738751439535443102562751154227780522058035899602456616779294119836070038548174402087614562579998405390847957704739965022716281899619545417797500904691576163397623597399944970516405166433317837339535264043099823452956232714014776673936708172267491267994610285424802820088946194426135544796478295811648970854722848808576471136147107990720357669375290351183767201960016258912144583921419599559825667466003902584026084910575323083864858386814275427777101131078828299663640472392467978088707317221382572178769268633523447043025294657233017322502571894377565435881400797355938997415056985603742901482707391453477017304707653089750590737127975990303342805858159884190047563324408713540243601195476786761745858393188308023226269417215747952210565050395349215359747678454126404686858058468691774635169417853562535676109084762571833907350488516273505890882494772686123421954348901955410005632715722879998310033054301908495094677186087290989088986428448520400262687186980472472292756799760745214845568955875075753247552921770309826527215290995689898706271389107765000596278846813227729050095013348165045594304785664279748248270040159809717681587662504772602123117321841613274473617840813643324842457671218169822590479024585250653443673174986389153542705812449891102540092788673897715543488985333957969162211571312980474914268693203222499114017338460344892429366795922601613966101022127303689190112111395529614282473546080642818000247610590431371732882355983289435376764375182755413513872739962595598100607399648846719882341295529046365194074902721625591021164118535864487825748007992879608393891695245064553169144042475309155355707233649743130077325337579785780553625503582026183007321045472368283751279703255244200689307893820996419934392499661074336575120156799206653625571261796467586206870175286704141705257856911098504458488558306908185574995143167774113602894193362624063692722780266408318839683889692832672538455053478199394654557846314948153640945723760834389322580195122267018389705028422677333196499087847564208826869533339297604938795792221622568693169220709169514570051809957264893926068040648885361408183316675965448817284512590247391068684431294212358995835134643405967671107117512360891350196978133175739804859171930714368889691351344462993670240215484512359020917289838124278535326859823505104056147016228529779728545920534617026354724672902915899621610200689965210252908807575198782287166330929964459569495813965030062385351423207153018961088554645262786039890715476801637809664878482792336594581713697599517170421935734769699989354131959523947223428071199586219419221640297817820932680706527130556093080151449954186798767677888488935482334821742170706275754143050443631251099026794781404928798565682095610990139945774519791667150108642550038482014618631212976857788436158500888390532268549979823424793521909447093441073348177527696913088721896074817926531959161281948395201741812407426249513116012328655437256240402965297813292416957205261111998468590364271272558701887722476728002223716468005246509307962353063598633997022938612885340828522825082978014737282815332781367998859851800929627393379325293983935465670125171030868176208089267319011084301310862342334095133331711492781687122725634879910737245693947344882797123751464283987296276470629511901548567538559272092169195243578586287689409540186435329517022691706705793639088015924887166738366386791707585606491388849350478063787880259784757566091103109251394394971435565120561825790139584986806436781974003383609914598929384628525592050679701371387914189843524525328991142129619771074010574054698205612431356547419017417891324085259210994151524949495460782963130989979957544764147613999776004193850007552453625613437678225223452170108933843732186564600275683390357107771133066045625624410804057650063313740137366707087406584370977448056926743252074941957256842732132416925912390790519388481197632420229222324476662695689103894926358049632135059566974544902769383081906244217813466297867868033678228835211277908124508222985976459875440896819338276267630446021506791285953933941665019392141370904446377423568921526694667364914921743186217833995175061447311793504495932326458656423183644046864525517067137064519254553069978578225379690786434785379439530252726208591029286798301027266433750231572516293423153162789737455069251640681180033266417616634159097448488722740692353613930713821606511923521144079947444621054421211244274342681510663184829556190971507520309515137913913854164245978767260928639907071986156626693223649664638311208391279653478819831281441146005335199663106176646971014090296950753365387869702462783608027816634422452595605034298410920833265997833681439644895215312838033157097800659303704370784664448398531505382766253591448051932664410423877306360869299177340098470641498140882166325390540975398777363307888466160177366323180031160994895144192188003468274903306462035800702503863658550572047441561393908459178083896630831842771017534880708750596142968577373410388941317121933120539942139728718787797719512130358314370946422434869075623920070671772792215450238209090028943744182595852453459727162322837665829009417341966421758184892578382371735780880799287066438634054764307157281697341177415710690725679090771664040395033105041308627507731582677119736963366449218862917688000207892011499080293293572852637078428780128413386999063621877448127136570550986043669081166767169947242967079975242468205510542480428939906452646430849516860601413757704875812508163817191518157753405043848537333957125921467936897316135475898147832157316734472935118656859038951899387979076464575702313369950657672107923613337269734792537831000154017856679226454288659951979196012123478307348320315335598037772817840616147126197643419856918838598620413091666898347806906854745620497948314579341314540506109953230811239078455151565233769838833736982867697465631482732043841655217247551821817945818134547713178157632689701479270573677526274418811672992478579683139004678964503551526995452205703227319531809846195077402765376893360755935962028168779997528614045585167866224130407707484272358026880796066399025391816972014573857795953671857298474783243765650869940451098941334554607529287212185225296361250517889623773026563472832874075618290350997114832556225117399456229633220382712611743155770237161950666399519426671346841604140228886827065220212497282186594676114610385802286895801694038596031211255826039305502184690261405627378056653129652840913246513888505261650942913440308504442973237249468297577917457331970193048705977673782700819049290964369918888423216413150099300280138045449122973458353608277567993722256904894830461730952278260130460156017048820495439364444144903045697213224378813051917982504265001117821318824243678642635256922459897233138851630906879060455297785539723702155978706812789685495399215421679738135208678106047632559034241201585019348533623905825311104103632467724670986760185992197455603275469850918337871897366878923702052876993162178298745067797199578831977931296853934084718021017058206775281054189726706937287014573029847217900970792827253834449550481248580022944468721068129858918344908503504833424661846200008699669312471660019060427016472311821427365999434265019548904460800184294749814893494552276001728916393041291682657002612398102323181705403053226061118525816982108770858378266863919457076969662189767103891794810056679844178130606196760256401032648880266671341454946367498211531189035843507888363353598528448190189501003372386687012749733384655190099976920567576067345083703414569621723988798930911714066069878809764120248910737970857785730357630659626057451421702393562313816631212493203499197080329926110692839590577446876592083298208262435223109035517740586380138532804038529869949885869050625953410874997909890799754199795606239932303355939402975222898483525703648701188905521508598920443597568036649264224722152553732850405584286798438033816721397797471542167889518644701457606662268888586480014256425272083026474888629377389709266380591902567777623857349303461420751043936653628276603614426186300814393980915634191018767151308466036323406191123833630841776841668852932428292389992098872710347352460454179426880678656290780426154639807283728745047083933847084288815933578315884872988958587712414092092219461300749026152588357098457520566937631862459560885790803778833761446588009590660840079777256134081541766823166103245871224047453155059050355943188834511142129115311723951190630579559239235768515577717920384635043184775722523834233286622829324395923041923404410693967915837656457262849815179562267187098940760402780680323475490173403106429425339462133105729860448579422708029167106949899745286625951292259667266382160217769695965733997980595223825508422713950680772080327411489011510059869907597328887885772477637921108313685424035022999946751261050770018233242907062036039136524308262566127502351319812371018723123043689748690021383932071689764593701560253752157705645065054344864031966629566298174652776771078605947004000150370869822032105447192424598730877302722696548776315254795334308931676080127983823341067008129073888520660102641331995996136070241698735189333301765147969585619046644942851541082747533554499257254418957822911798361809475539316696630404575294301908405388882362258273395682628645999632951413197534516923056812312086904169087645800013869706609116857352810714004988240041753758160047096662692252229429932075143625096695254435749707398577746669847760985224500401269240930311789071509661614857825357188501404674944950983733158483911638130405766793451787446180106003957964407084479219801604202177212346969374054805365429748253639358523823544561203998970533978950681193334575878337649688343350437170981828480343295563708949091658572182829465579431122763954689819349421641066451600227699725463605521147789554001792154866569857094455130979741114538936743751923043682666961986806028854920013025551842657539077149919009196218427583230369959405344817810820704526677639239688233936639545333968608221532895487751797679462608981682453117225881273536342582525522518455997243439075733617934721922003364432822423554084195429373373463326914505691396922507154627141877909551358003919661244385796996836623769132073403474728597620152774682648709377577654717132384954160621812453519696502794337932983591766628659018201847222489868182607715038788972970257626106992883229515065012383616297563803791274064711289455346205397067071115033002794982443444131391795654876356768933113508778398140015974410611605996640011003132875086743371638521033457333796626929812972031808098158761013672209336091510499611661862342108884816292148339237226535482588201816026810963259417689346276712542997212880276162245319725797476975591546226622455750077013074544115050756350455656173059562975878634033114222273900986928632242803331632285018682292999582710143016586975923600750786479017464546105478610075663060436841058036751546701765297945832528978699969872765895888946898658006209326300370112615357352232137411924002378546468118867864688560580664207892686826295693454471351015038784955440443938306606670886899333185139092015866488138803010912713109739503622258395379667335673227696981049028240496861669895265502308611745031396784303931299457548006736509427680867468323482332719814326200298478699947954595547994474010913861247912284669614926144944263279536004030007856854220393862262794697315720312609440753894186753169177601413751275980096844334196394523808021133960777081671685941198454314308609946672152298633717042846058931484088506924542069179132708670011590684358715712611235302634443901563893912945114566170220267335207254437947398104773814336378612715189651422983354390055720340105848713811451722001396723099004607604229694379188282011105156167436764102629955211728929969797895256883950020016882423382179170030452330318892730275535196235439478711372995924840014352885962893534005114309397819820639067090542192260006849122750628989476248768994298287945000585497891826392394809046919046981814518834310054532162479704698571492893521049989285060557880519077171095614605237290496896853968735924289657417376332093836293932261036326909375097278078909149541892731281661805518009893344150786862490909554162753308914517972573833926043552991692486429173747318729925620738972647781337419135909265305481931831887709489520652437386363210992839353020801499303258409115000250639278103922081515005609115920812259092429920620739749045940827808237425485048767496850997848428373144296955550284327884162067613523558292969500099919799207275974176207383458871237577616106977653755950050053271539096868346709870935079121545456036549259371166073055483924606883247888731270082803268593078610365545217340586220111138456378142553886726214562248206167951161322106663008587018185597160441751157573435065981439459555531780345283620781805737147375400644232453875725734167094254158699241571683067315515327514444178110835158789862246889480673591708673346376166054310630721018341443739539211160043288792055156452791258525963648751402043853426921476614160483272244501594365855227997244876100735254809219955146070916403021177150204973546616492900102309262372928420352625155119139574229670605443168079563069067897608906694077541826839473575514071826137327882564042187416984789754227658557486043699031938209191830251638595409063678726608138009273506855954337282177051837907727599087212253125631806875399488986479741393851720869904339964291351593847964938471531824188599732386108271110564252664705640693891587598223311445919266316546863099528616585093884987306767369560062576978575476041674706003464230989252986788060553221191222729716782212874795692651889784367967797878863864819070110783233879662420275501124418795121592008112062880131608700531381379581514623199446007733890797138658541337069074820548267248176560575222109915069470219881259592303667422775549543110547318134126457722259555211021503180225166248118822420634593333941670496952044183930356783466157335619655978193489278463185258464099766219304856871496976766603746742075647451014076003065196386085934738816329277288391120351154839492080604799131537468849197813138984842766245101818533774465361864048420595314954695481727299081761029019200265371701072746784732787082381666853443456376477599786068510184480589016677621257061835069499767360934707679931669086403838946418774584245240092717290739384852802648138230841168196443043798808218611816204683845044801024090397402109877788363109494064319407529257676270449421474189378158833085941924245091085837420901169833492184152019011670586770570431621282308115158281992508987050333961868255434725156512247904694823922982476396784431784601233787694831741627550333336005099417991523980262482431218236771678027769220142631378502190018260675199674639744540678967127812758077251511235031539529131619747525254925118491863132527603065119377919099094712600949515692786808567008527101849747771743155614367801610474357867257027428898983316934844953207390269633399556068044680838631570681258524578776193779244962044501915905387956607406260526540960734122125005919353948211368787083793635288194675899044163065063169738730627211944320497253657922410137659001858914426115382496130085265795089114506294177513946734165666056318128390061898237199831502463310471734145233886928676251773585867493853667212839513668017544338544914296844758069751869041075512339753882076820318462412465579967585639195794903277372556260357055505760123326149836099585641780319171132724926474442653709901204659274233889779216614852785134267119391478731184810712913392385359693348267049348140295553647754890231571220847196790011159425027844327204640782195982251246871924282758114093970834465843674773400115269884175415545517741711070488800302516512067352133165230484167452683101879344035329460795597852486302112337633906115111974871775329927277727381654026407115900547791691373170667922436554378114939428856111806777331338278704147156526700730460780011667385103295133414813853763941152849377946090339133727295712385806315764818941376542691777574451277792870270004737753459291635625141027995538323224035770345198535600425419311502937002372605622908711486128786529448991093775919256301472187536062437648937799164118682574061589442825202019127310872129317036073459773152651211054180906383945830296410731652728217280081231754485266304356987137469978216583212102148501902064729269171176735443110643592530664070207524016245678417972408544385883923766419345863085075630290936152114002913808304015459822453694978823214685696367243977017157501404538379945985393458869007779474340435877889788083852214363309168591689076982111033312410057736590654154178059876113094108403970858586101367188083070614996103236878941000306662404959181858105011740532867336181053392590471251734168838794991999402458132292589043982446261860737748520962479631711416876606022529034130117494120492362160667773853635187498870974161181614835360605124293294876283358021242572633608839105807241730213767697027947327637415973920751363835079466849612697054283271322614714994971949151708416727499071832580491947413331607103883331066737025244178559532396561962610946852117508866307903866282944946180620388018398484411931336254979886698908903052429223211020439504218438741939163517750362489295012426724851841222051882625329738031640394694060314520529462973675831265449704239149250632327050097536937251030044587697779068196643615837165959544283719689280040355922294335768381936634290294262703514806540819147963122139495045807317676022383055692573383959522001464458674352875101251618691788602591793025409157211969135994366193447143071061126058958060881964104562689662741985484174198073635086237808322603605486240729999729357500885934258197761756763755575092641969711809530684448062592635353180769663145726505294011195632685275722705675789880312887585851377588015398371527847819064593746939729242402413670732839836033140440534462990157364084446836579175315274928138486222188847554211071061911436372681291430400678927649310509229760772151371557333745771069443289750321182177113953815062560200226935889825530836440245287710965989917966702158272725780059073804190273755122739256903109730691727215801136169881927497539405691976661826543085944017845970110400392134756072577284271380388680007926169397230946719282694433231155766014808271193733969367405380130676196984870227913894600895842700202282351136425694690643223743132691952345630631358666789891751901622219916896066849527223911803274502271223900606516078014477374966528751801413233398565520467043497916807357942491191236154303726574220979702156218615763255816913334651903038641911700846345264964084462614825534157528741158118587127697282973060243182724490310118502569595183731417063902212963509941009357952055248738657997767114860794548221588448010280579434501325731037724032666519627340554477284750317983658716698511535065264951035491341501435993448083853544496625471445814775707097450071883084833666384531786627201137524898430249697369770683793010502425153973250174591609368927918484014451083130917453225128186459232346184966414810407895826849493887693961244278816590370681745239022838053438629220915431086629244300107896652754348437490358452441927996850523094338114751450242418428383384219520747829639547549323990729908787015598526189025276003808684220326058812717057927319957325403553459713193755037183746495600005679442362383008794768205091816646932688351240774059930161389417452759215803458916412087803654647033122805298486165931905502330559227964810176374419878731288072741814811963889960579772524131859111307690380269405357783332212498476875102542581472465561376085536312707293250786760346469642005231330552862966022472290956637145407612761887187941618504306152607640838384539702459294172498580736555036266502867391954153302643717976312099092606886285106053178134105138337598276548197817770450318680363267386045185145340518158100123316888373542568174433270515894776677551385667081845966602713079995587911607968290650588228489678453829473832381950927040359439141833987031612084012569189724650465709000881424162299313342617357624952989297614634096943464448847196775583880630915346564315711844445486338265475331641509108111930916822774981066208183851071181126281378069799386169417831624872702570443569143332697574414800021947128343734060394862799251046603812171194385487590182458765365267892615126152795901396674915741373142280809141048043842074174781500029131063295002101523411410648020141632196721813944161080089451324786965760589532292972846005890860847924817602794584443527976739271747183797199239230178078220234357487720723099856544284078672661507954468781905118959512411658861286897150579243610685298994120439740285439769271556295385543639402693946636129972732040945361539612909682094759239438031535545500780444323060589909249122401112568568189411684149961647978741644148388449967057937542989793667919112094566547462839455239734466462048099263456451565281359089611661211604006577452732514387293506403696841017046116409110797459438831959268928984802798821998991640842494453940959654487419017189049238149997386692561693100598875057115831813719103906656962891715061130648353344969199764142961824272245781414399084629343774797488017484941070106351381400092713416203050292503007930986052029781205127893975116703059415555097843908565837925665569170462535806224926828939350684055145702187635133290338555625035779515912190144102498298360125945436900505750728572321400473738779108039318612645658461857088255679472792570411269380754603771176425711260027059986026525882372548594774511560383221278186180089221610766898375899788005679743878578695546788306478770173957490290104733611170381409157803391452277133066635655966151230883147567009268604623657930309037872206491315730998771790306774264617145017305334468978980856690177247099867595423889124845483065602854033217654015155397481356297117388727299524704690568910435962455788958701851104378805816533258253236981202914822426874947064737684886952827913174954962587109135893507632799526270456454146483744786779325575121802689584212564997771043541210125212756151018781883072615327022667060659769309480587366727394229309902526922033517496070926311213185128551031755118603961949173040425739597591410984578919732821444019400436683590162719229767108908534745031206752668839924327255680062845677278428215318802090031978634578346717394381067432720199652753252328002246021057270856751374972593717302952485316444452505244449238700197818961508931885702458823852793608081724079343886701296943497785274737785867492703207901257778839203664928831043733473790118860160010766761742582830841717663081072291155624496971205531235672056557646956819590777763634751098888651397562194793450758680851664014821066888126994044668460072629952083566143605207720358061703085539478665424371621407645562898712728010174282460768560668546062424557483365746022280779931783765055472205617829837515375728753572736507752794066028953436169343504114103239931406975148982379457457066141824338905322629611539064847091565371370380136795753716520073340275767763057763104899611256161827331697312433587831831712813129705235978474695692721993236330842250544227083234459821721918973968836478469286021566141107019661516233820315811031916388698681410803606695046485110345105826581987418381750315434235599438050988000836457992920291391938174576900778666655660247728922400601076197728500839419347055366828920258031814813599484902074753881966099572320688482309920672474143371334453701447385964341564558324848605479906789189379753084384908866664237464054183705584591387529085555501735506823075201807869585572884418325201902695956137244105810385336955041699640628991358431982138920304200916656858089392288264561092525287729789248365188995560615309743440866476988524272011389700204607590581215811599023805035445900438270445640368437702624996307554605283438628589113300358591581104451642700248132896522626373566402541551489076929718209017018141009002499085732131571143420711731861835441516277937673625269346492167409106098558323930829076730955255726433405421281947329603597363446802025136803884867392122791042797519113462037383597906150339832721425459031570483221042519964408355568940618191925628726889714736171144991480856538154179075628383771926859726150068939943413996947901844717944346363852039467652039070893960607684468593597112005714651208622058108993998238116231008217587807365970356177455959355767420291625746611844155020134619882568319133229445233130101524287138079615472006274715408768543603571114216542412333028401041462025049302998559198915690843650335052237183385068848879706739717267967900888563790168077879518716296729789812642366827947271251877829965522935946335503120560974763952251840545588418810939487708046663318792150435900859420210054996751726406207999977635672126347053592455360337638948866458251366940875845854584380282892287766136522674712537588903872061549824807545248551818622533469911840895323170411872707152402365153467015351018110544916559080488001417982733735844338798247991520891678322756068085836107497382592197461121237840593801408663396056203076019754180707073840483269741025831906547030760911012248381247424877880371763871765605858382406416134525375075013787168336881160834184701287501428252965265676132042855625500752959322075112874535663068893251227155642882680524871187181641608546348461401617720295723650837832088820133072148406785086244976023140176125021936347601252658110871895925903163011826024234602580924895348664194929448735270312905591132412942108935249943377341816004862726028145326261973070287224142662116745538920722037930924283137732389600112713034090071746041401476994232753240324069461671462571766953797844432673418259684096297855465073153301499819616667847118418117793131916085789308176580797994468956495336664520221378602588385820217622438912530721720025389146491302659959978071961965000304890570873770430547935052649164715857206161588297608234206862959694693362392847846413916790124516104167332590558073924408040064208320002580686510692567046707025734477053305575038995143544732972220668420767763290989017780974118360025064638678597717379017169963119765070926951590048939958948648340255613419492393214707227940478318601661218413305671683300596437325959186181347442431133121396704931779051974685301299086978677618676796426540973224990458731567210248092192083256402463057310631461129860202531994061361675412135322202159080111487029331768621370820375790623784697999094685864209723369587347196535180830730756345571894902996571730520638858612390950099929108003882338347722407863540678299909076283892597845536040622881095475585176649714453953455726840352456105321473825453807303263455073999909284581394898033896380776770326544484438680466860903550555639237850622062126503137845087355325238310420524012354402928809919168486276295524928119330441597765178845647143491681892111547855897543427119333480500141571952915431916426861787238161923738651291216144774599287774589255611638110816308414512263373234228480459593233108950179489758851728152318066608874398458153680017748810223523159335644037977582164586848625999605619129373742835266850201570900958457868020080315246360405721680897184351600169565266062065699786224371840304134146699067949463709629758064127260250233477232104543432716506200861759523406418599393268080521057776021745319954302624877514046114241448117897621064404443090428766077574485206716762643774212750362583746463268763850008591499560663604580091168337802551009993501858107901124567004461122337344235248590314430666307667172364322715888417262263003213126392235417846602627310230413248223976794621316059005209035054600269314998018891932171046759113595830632398966663165707905525542816763523102514287526214148439686477812635712860964376529980068730155864125196914361027458035595176721407117386785963444836835825769127783752769028725132248817418362149888935040862545588660704631754703281280253722817078449423090332200191448809742626486990587851537577612761740531969323758345138674627950826700111923106484267995260963042005970743701682880050040445137163462438344076781021014494603197890557400539303177419107513500292306525745860207151616654233769871401002196234367482715151987289626017480066674880135335289817286349147789886286599463822720667166113379495272718725321214311315220242866832070088602029108771084194832510315066053945975466066440381143418764433467709947044154392104915152233240625533701950617114155677416062815410168401966744626405482532234965253720019797030647173230755422111223461200460858162707690421920455683917466316521660280698345568611538877058522661576082301267420793935510887039969125579689129082253308312356669247315812627225309772728567598083582677036898782549611284531280562464344555435610168458855069408916806556794402995948436305837475657058880130229620541026726567895456027931089333070356124552121231583846261611275737148628665756874406427231122934228543798254561668335223908419793049999501031384517556553016153811601155862882807698046812175017632107453119979137104478698807981793299316695873500061317562500355112695009182962162942093550359782329800317927262678906436073907713462985594363348449030876499224382161492031518934195729631770392566432409402010375549288650488684816621252422191845941080154243628207146222330557601631350927304012766082620551155339185256972552542549976860853393252989447379264339476834962746135558647918927079012022702044543027136544640654921445370376742165377316567586735371073981053005858346256886050928466319065017304070977388137712030858651026767331600947675667523088518903521357063060068858778121022360779490304919143080266335591689200851534154940788586264412502809894677426614127841130797011641462442993326232500124373700160054133254169856655255488050933362102825459900505904763747681182971733992525319193141972327776214255367114141307793423046096249616280241937187490634395543930309435217426424587567221145826286748331964780119992203142772200046090140763565714956077386223244647401984673594258017665729071301453090351538536324252757210681701967133898890020068525072020592571332258721963003598648480297693058648510389488156367702330974161327997764662276937181705453412761477094156279199107657370249253940617085774970664442383009919146809181156109640340351993537739545668593180118795960637070308315578886728094475293146308143498237061560967532230684559981616138682227770369263628595144891768625449475050553172509719817417916789689908033087728791886380698188691883012936286658476479677144550696039092196678179192045976830687266403583131781181431108438902970919541298103056187746495179376084744604075912706573865892756175650598907656175195141393891926279448673370738120244502405458491024534291496883275268551637867333405237315445764659384121909030215740390211916717104366091370188938234500348748266914678764822609504428304965483094208571697434096084266405621499639302185995898536267265042755003753620072843604701362018279580390459318658723665591101703360807725081166705746888728192256639694573316012458715753333893370775624965490528364934733492047684141377536377666440232103482238619092715703871233025794786381129683823342360211211480100465449126543111586269396707447847228408127510987651790711355142530499491146314076410956855917608089509469268839396109054854103420501693653775368114986665453436947349886618739590923649800983059790611459283779129816430084310276832233719580729395172414434636788584578387322293386583037992216196188350853524836774320493198175467550208837159970867370352081908983218223850901777641128629645282429762962889778962908715047233375687242601985335999312484403310769611178325681167110529320016741660150427623647243456805806905957548922823588001387586702703812294501489714908875725512740503504510194283441205565529191134457301549659302727301307963861316228993853360472806630126452209016828437206276639540027562455992670028446004102898090077955599220051046597195727849107482885317664150331913267100266450443491735911113224867567450467542064371811024312869381170474338019411805730094388571077810242227349271477733561878402581407502636431563776785621583317964111260784388083174709571684397601365839183492183015082436313309548174883307812062277062815889994657474075090602482917993547020536645471676352274278696328753932203973970452744598217625209075828698255303534382755383482458926057794544221412609454791988641862272107598669271310886915067827020012652452342083813698266109283946921902005157345682236902147615020093788650135199363856659393695417379722351740161961269795664893958166927552684377270382117375473908782636882378705553094321312769831105444146986253093111392393922700252295453812984886857586834036630429239268263469576360443141255583858959709672657065503601128193213644199761267996810547506464932698304273361895955421778137025156305021210542815156862814886755104090273283991913065883992848244195366944275499296129825634153988036917531598046474584283378217365964071792140644220738447284357201223212842060992874358310694023855164513781137231885769614150331839464988927753510342634278622143303922651930750870011237476625109926682611594845873767803362030470878902431781633868345693434772340894661573532021395893345481311028045897383855959483356209378270075646518836078814356407637097891291063742674374035039902560994577505128030910675784464602878105444369678483559748565155652439120803943850128512813973556838221916550946106136450184668439157932612546537226077930779511624754137394200884833224421834934789594712193258036403615964256577912359201400206348118324115581617899717494576175212086670941862650975335597377346109104720773323586800293981270785844225218095386660736977921568572092918995917163242419131204715215949569128070401809773425913193954819514261359060183271679634733005589469295187586190077864622348572428519399754277745474291425975257553792401426517706617224728639645408669845892575420599620803521826893335331940759094405163431625926144064732312829665395064104626601997276665110649434300181127409085410623594187862858241691262553824011581791910296329764566886129792077157258848757646882990990477435551012736157922672595031509965263397959500453515186597584761846188741553952142095263524434431722148330961275732861575120434788544984079532128403443028427848779600434583030386099074383116990128096030998297037739055033684664241602650299075423928205355418957041656913259537021753583624480059838691667440206515788728623910314828506115364439195718593193365738856200630361975331036168044316089782364073777396979599454497047873904157982666426397794356400142513229713572978057370530510583358523520266074223726705855879464097575541582096264893664525410968818609673381319525906968642639164749538688450926247745006415604238394009914659522812536542694390009102668544518102898365212347980369625019653744310290523559368578944121943284394501774189608161412891435627215236674937799542299174888117180324589052622612760886643505632879549492285850691486276107032005634777634106591465140149002883935653850303012221506922286702093840770281246905090527842323363812132646589868682611676285157581735530406863546820006738924106452225429194777306639446663098700433477919204784902518233321110922703607223493487715740891465116207575990017900720490334915937245381050112917035413116941494991014827596233853163781393206822098908816244939063667019376709818872558849659091199570803982269155675135878462316228471712699114495355335197606534337503457743719581675037351788084615581557717600642683951513862918782176888561075164495592318614688495395287815972674371661493496931718156876653766824784695909426391157642213471006297085422231898644460656921649114085335832022779986921676224637785054451957376802522998600743768862071599887587541026588426378659726777895144787767095166697445180316396466332933470450229356482479587084206286585002796191263219306942739359254952343299109683779487307620868006229023638318243567982043754777884323266099752479080346381909477035071118142843895381553312613903852473543610946555870682918874792617202522726370569469773941090088682448516468554891554995360939523410769273367117561529835444174468950680223989838929246736582612260138251398027387472488956146465464114219366875212967277848212066029455152927331943274432753936792690900950766570073865342338236895238710315397499702443693252593791072907822789925328319219234219744055484354564534663069745081759459023021028765303707247516310004547881363998382483705814323747348603369348994960270584957165290453500816559090153046318778823509163799878842350899369911405551368175074920825145513728635221053932654938351712009221589589713195691820310362951693114254205653415403261728792611593496031098622441876195408868778777090042601036173991084423481503450650405727591451727785685886871734954080870323143495342179292891770665346917124261627629265803606729651545805002912491366223469274526329156266880166226212305320752642836461148670200905948271575359256886867478038510908574351216957968064380082358373925554506578251413803369764249691944781195150350268718062907660815854651094122235905565676140598418906894154885888954849012445721382402216651949074426666943705102538248445371398061812547976324240898639566856919825479204038921367420637630245202677248517033304098220523686167939083169240337439225016827350098034358754696088161766997409228333748292997969230136508281058093836393528205052992156621246714405402689737393484601360358207732395491368387961969280070793201645423020159999825269900363724687239159873987468795314505344777190471818906422167005698939328544506665869788228652566659912794334826049653234296254484346496689893372102504071577869738224666811513580039754782675826718140750830781797282202079035197706625655918868669917293075252967670405211080392133745228832897847545287153528770382364054928833189059423696323193456778581362841123251745283824210411721658741811084711574000508892338859250915714728141612381408241371436621305431553141998636286873530411500243967261184055245847296139622653943345556797779471835772160276683425319334148435376340328751843910125159632394185001670718146217353086217852462034037864852194669282119123502976754027440638264625373654053765898913975818165827352625463465684504156529960982472950048793858113330571947492406525330508200919083215773541972136099150883523005422970862975407072469521533078469979656947238770283886106849050994884449131446571089394212133515531932897293941989491070998030024812667504550714552137298194502921291262231278106599805464323305078276119903547159376209626177466511488982032955744764836500699323360264312975523377656215695918662234573602388781331044868745969707165361202668724552148517351450173512627357238567774280801627881315629686101595120547869757079102713653440902265893651750051806515265808827267681962691147648821244829992967446909616579871880288851236654388814906810830353003027503564449409082872360801368215590294857752395551279060643920135706549949703448277418384091551787333469823713333456610477295436552083381417287601956283699066900959360972922436241037525739620333726155934005688207829196852888684934815177575279447214415449582501070337417576231102225352156559571326630563449004903341568681195874788321608916900433658034519737794240670686079739856193392302153009584058984617994189805544902069998940456599983403945924358794708394034657791936070617713042038000275659349843066349871292932827982053864216009220974177128889334310724999227728683281197314179896618141403348344891228133758624124812163120325095204094410428293272647524373101310544598415217203796810279723655467366482345508853828153640922329258030592804387085273718258129419883988913948183151030403307276064533038049598747233571893887615099976741681150122738685326102393577463034494414255794600302268855367502426006409521384706153548261836745218517173038689986662067064691197582267477599549470224817443417775723889506197517453083374403744092478592882876632137829099816450366276934585709834363134575693609736704841713317820217410697917976287243169199250014411649864651696303260530498111782265705124601629927784618003766500646450572365670452494491050230391825069340134908130690223333041010339414092299703950665828815971120466180198580714828117619487850435394254320552079325917357453269606231502639215019399042761980213285702996776158693389425798436580946397345598909823610728976841861474373757029612173296293535262610889720228922494986972928154178784550248946362500502501943284557763954103997809127906726441820452259957026126243647317720557219789795824741874922945472515681540868202343232604069759140945232859525100029896925307775863115581496301447483401759224877876311201187971384140272655237230261361486210358216569588160265215505963936166393236631808521429201880922637546665723044273672907753931614044476497356390337709800583204207610657633761253801562040696497282930749496763622035430017591330113380101069241770291997574833962105188123478866075908366884101208248503057963424052259991294565311851764588103477182094253417992034290695827231181175519523272592525954754923851072932145420731565853131033633451323973200096061080330100233393959515152840164685043766619877199312247264019015822672920168876832834377136990390103054681659600618936142892509051198947465810165570611765626588441088285029716452344488107280948736117092262707723661455333253117673895864049017656405094268121923197652940526503879409336215682381507231219117531511046222386344863464383081536206288425101945639177995332222691814002156135374227190234944953865356449146814398189199365952727418319262066131467858311202337083374635159949389601893162380154176418643299784168416236399947678150328270695128836097697138648055328560692322192904063323539086293084625063440702413880946845280699574528847675000993896313542269338366200316275362593122925850979464654768960136774718058131097089305305823142937343879667039244204550035338069693430303872559474592518438580718753718236897916041686950247796814846311035048658696697199598195972636915814803329848677615171422924656658654303981018066912425314183990693717117548100001247448580120806225319130706302129398623609840435083376166152739981259398404432095863572375705364393408149040745312615157810451106073041671394972801470907132991296662306077751036781231345703287103616879725372667365016624304543834409640480933134380765685788458204631799278586814228087509628369720787148157019152065236086724824154574837574807965047632319388082933500926357686042685155887840078292901936971872219637069845468089504333251498100382126199505542617546449169421783201949289332696435871602655310145420321265657250239906508823857100149575710653276926744969520017998786546557083979684329239940539683032961471804214846713909594297878265649289036950216874052769076230616688113967209092958989282631766794712732086485596851999466763605206673833883056426100421829923128479869761237734166639274640964420433677187250080787629301558502235149508008369759285742240487249013556331777959695326626737993930203949112602502985277772229073182260733390625835455221067026122275407667740540344126059488632687077691433076282774945276133990057623114414689382633023581112069246171377464541553781820608156955245002270410457190816297184321370177760825876435643900249103999620562508550534101218116259949375910001302623602507319549568259210797378831237494925089850735083731520424289819734258417980827577733682144584707971736939026547972241810942126607305869000019422691716883625895260424544551743481259731887384091188712469332116022262385127392288061693294256387964318102095898142005794723709880607369688987344683382711942605942542551716113673282334997581911083068246086351901375421930966995791867128865916907631761163121979521055707182796341461342301412783827571782215466353227768079708785006448250545768292388395631047829927359089293673591039344225728840690049553205677426118590493870485684827125715859965740077476479111470604329407498279951032446337543684824981106799373715574406382036346651611420361920778947600345935882319034926557440700891273874991916886337721089651583292089405037957301941700744690014546988917352310855700511052230400061632404081849846759530927751188911809698680740566598837902374051145786977039514861266275077802681327901468779164169956835144916521311577032358831950868786704609264107594208000167922317305887452838188473509641231391589295823559424965095170304048927060540388115331760739346225910163289994108731248119450908561402537814768138642718235804373287180878609343892925551398663117807661537664374673521561218159067235548711476615787846942896593508097109770053319731774730909025542921823733344452109520681430534349327515122030693104794406864758119115533888738928601930389694188751067502377411860108833703103066803537783966161662177618911796600758527017792004734373747077422742113170945557032404925063940464307041498042453222179815891391822389234563150912954318173177723755903298980596216517966795281610194027120328090245650904746830802336452248060130524475970585175796585873887283134038970732855071949532550936787392256106709313523837527765380871967883968523335448313193688488695090006749906411988601492876824084655387794569163582297659362612776957325369589115601924699808156347881189947553684340854931385154278316402095236184101532159642659853613719944482473325937217570172278776389906581952189765286342189931443554448289416204102980306787578115522479918398911044823876696095094646659759998649849100996363814979712197373987574475116707788855223642928033719538638668990029998398592065541536355564610184718747611003396273877748941547043967435460424472007459340202806039426094184053591598973076492093584593685467210823489102123455019078487906020378514759075271305291944132493142805783104904604665164963288827591420554199376967893405341291720463327157883248666277867227876046864916155758808969979162293900921360775574565657336161259994405190515533959574961568782207266980423292567529305919337522193407429563632752392462599517363290376539436905924084930019402291256681800080956360760150299807717568080953748568867734911292381987281399267539239025609384847626890567947127063902993733927899745446522565410074643883779327917163415284038150076225234613842846888643057413718120874526331894909460374195534505449348053481786833567844938171674721549279693687353427899575044558423320552639417449248377859459608840739712038501313874541213876117612108234221125132638580175837979443346436589352618921588203950618136917457101974751613253192579622159874582531929450187940651923453918169207661081376773112869398442465307909828978672587998853859049277956213704716747154727803042988324398907601633772257501496933006200660755897479404267835249698929693456828347320107280104464056077999729247629584024441415896298761016755929468350639545948687105319112629457980215072848205887250452138374062918500276847523714716856817585506421058035012515304660783843531910419282607176658287404392655031695644396818012643612533734788002168790407043864045694616316843008234878498192089301636188476359336718853999923551388723170547951361189976731450232819841324750550882781350644557338919076491610538774700287692902220207939223837587027952327969580977261137943594071725840292035492564360661685859875661250326412315836521140052963195267683628638976749028818597915975365702044771964048153245720128562339670538795884071828198251646571439675838417181074398228397075139899805299017406998985565919641805271026933322974867262544950731370856698842142630562741835685855860899640409779784195428604418491900018510841160460975934004161004250939581594948567890051683566549009454273069652382233001631693664059071698556760224587608181217982638963288195849172075119132157505671592952347980352994968320308788254243538741050271061875338249884249252808310709622783346727391897961086463207293481226874698699052788560455861033561507842034068453804360961807335955032093380976411513777430600260119110462939356886870730783429361757165445162868845316031048593363962871564577410895055096382259362734765426958454924927338282780763923953322025307194750024474322052882161958757933394238667047962428303116781612323702906528006845443897210592108704965135896454662377422700559786179947797090579099487970954307757718015571762775309108307203914209814361068498813035835250824727749322129073072189376821673453163744730971944250261653935072242621201161612493822481255187640571918870338956449312256314567455226669725080663920105389410292655482996553712270838630013568613306176959522181308573525495351635603599224535225067151730602073260267585009909008396493047863704416520824850262456623696799771781559951373297534046334621562859941091489905250510387101348713497525910657298260161077651659318202887469624325694079853871168839020183915256979683087613845283736670634213511155394176034342377188528569742460790666659570561745267086071298101883743464784076962615779361813913793827199145988118749762174360212976204241771686843700698219043621741527641822971472512328170498918754602534797744083703172094338063090454207537723329668041038839255023295440026591041599788692093717579371858139567466682730857585248424882046954984655532432318214999935779442108324129122561153324114970700413594750767809199844759140304969903199260519966340927303819115588178226739034797960527695544655929688840155318860555067774405378795144876329082649215496506231752061438265866754700314224175865703225277987233976099196999748348879144639440411722799497844696667754878112706136436882972714716379262610457511162539379648750608154972672363017849444288298773915748936180583352941434248756978152449057544513994247871779334628351581322836078972407717055892010040035462046112628526475415067820496837995509361382677928910631764161079480340297945537058203472445541108832366238799475481758570075524841958642716800636796462238362753833985280549725645292474456647735985582387600718594225837837492721900645469784277355640434522019917612335346955211746124463622505293266088487723525640215538459290455723202450733899170980509003271968509495879249240514310286162194120067525680596492748698937680170333473109830805113220291077618660730880760761389646390268770145022979169513503552363949981578334382374604191857080510200697586088448432198604294040343355790691006515923814324135379620884107086661875671307013173777380736205865190981597953303026902143883622532969912676957583305350084968723626394884414861956695686990809349168305539660471967084685894836494729167595525081170321924355547531499579114407285656858676034938538520704415177789367036349934084810789021565286044722738271480243897475864044370801646620323672004060512446777252229145756464481836978380444268707724869123974166660541408478684990921793050766144441101826826594816574108851002721904777849265330193242606042293633403544998764153765496438607124499772644891810891220992042765692654460575515323997813551242137857055250765337596309911597326497187672166195488638976641251729900780963124417467168615298115598487803601074025846956076794070271059248558138462953168286374838315764113975425247988958947149748871759976481032971488073181963532205667368369032694493375165298929072199963145298222210569872868968241346655292920336945597948718172887678330632116809226176760210021741014009559468052916323820265872858033208017348696621808116676504813456972319765389726282855224882787350726518742705017782646899952696385226254721605827172581685730871838939845591249853869551936462794917604025843494154581706428161248192074482123123436402944584054713720593960049083043688775005437989588764078627244153948928679633030700309232991425568741028723944515815541460387804513339781825624488294880494313939949374411668528426256989583344157602983591466335307577338838093972387418257917787103815911171677867900501022007187002831234660348735334109415593941236857215885513029505431663881071408333326411027039542649223536783980472590794513926572098103743505058960193432463349442047789097655219246439671249824283091390590320040273798048576653480939324332245666906113300111675277105750034151691046206611753410138609110470671886116972550984281738446103898431525130992808184305034177331335871311910839136037319444089547904577318470974090633440283903668692108169132189437965736039885886317677420367742264773465139068173326697407103830770213375566397217357394210655147556776675547756571575811596090506648544436764588870393222423237804421409419407889492686788727285707808155425971677342011635133961219519874944369734268506396678860111759734071871537841914602942197771060720717348386133967213147666817374018595656532997593472937022744648388508469837996505720519098397552941090602539386921109828635242580057521221373391211058148539155358333637333846311160583122445064505752913710572122314306391750582102095080626851085008354647091083848608811841316064048520007759911426534042824529879624101121766775102210707459286280256431683081332530975955567171269968030979151414388627455580814186801967263155625681345384966379154052346132295950028126110517652848845360467464636413921909121099442824655415738924909167386477828829723771022900996923203876793161462082595185764741148724429604118643021543383411937925776118976109351838844099092930174507793983161843809007999668896806166259479168893550621057236756891749435626612318016900660452178498186150736798236981582591120328768949588356892891687372928771268302100077594573417614037160344755747595674861138058935740217972311929515875317737823212878000111012236870031216391558029363319498049549187915610465657582060364247632774200245236563297201922054381305541114823828108626323231642650995933754456121204714021679275300195220033635465252398676781347512856542511261441835652839289552219400721110193875456413151931422952841090226406125864460009398826421725865537838759644611936960945146747484599647247821111544239820604481050821286268615598484322226680121686481577849961558785373284424934460883840252812437127512874850056123100744013373492421507661995070896180428648307857732018716208677138279982128478540957396787075614130745466090446315870893812415362729937191306738209362892780112373905670109225421518924987690758975370105157649799335965984740716394775833855977467667828292716212164703552794611186325265587506855778441520595366898355205873175029545279949798176358848208102010631955486590988799052719436905149112654307815688367549115048820573336857771958714645863534531084485197793130411997801118302789927376771874505193979069832266669678781493568002315177890198845734351415521649330172472688082459275823231083828205280190322240364539996081733172233477758788184184248192088025915596201326595104774151737565985117424402053539634100440666024893219866822851391080889044195937887558933365206362091618493957508643284637177450230648885248494013447916552716967143513117333937831775004256565159437010643848141134402138169115413420587056400716227476476827045432630694941881489590130780843531572139181157488817816212523289362740971789800589247823538020694952585704963253535871407136905928979764552779920019503195636919105340689557042925344850766176870835905388854795281765544807928507886674200229933514324552198224719123827316443820081967987550637492544157578793045413303726602292041370629923998475475270764470254081204586178020296872514962386101736990758409439304927746283141760689416858110514127889986809613637002811382248254823081567215132080438048479076143179885180161122543893435462354031314453307703267426458381917515115495644348459936728829792952649346249421262177817740529449099477112381197322134963060882417140934900086042608532788411889564622819258316029742823906179738793760923363392619139389838758621232546928826582759398344209000092937534889976755131712048117568413259230664794172065123579506713877444437140148125322272320678587713931133361326982054269886506767325649075630977223873470235749798759161206823487875564683961718712155803740635302583351122253504256926417927234497568130259078753143402991918082965025990796963069283245984738012079035791392035474624443393258047654791792720994417437346924024824371261158408352930228343378799768708449944411202380831931663628350895697051319751453803189533555795687749392766937711601043512308402407296664015830201799847925746574197955241496517288899175263865037752938135323442275636514607244647132601205241458946595383874874509926034228040762022144389858218910561397100886354573119257644264447309213487100503995371357810755057559078290128238132161287061018729021367024909561935035133198242974324325347700008718818306192146379432680290168504920554790000725138134923523296889859797577689436245154391681373681206430860378915307598391165487041873278331483577065924276668209577631126435210776758087004661896636227390892488757870651842079353972006784720770821113575099251874495461479639021791369007409586214805893336198373713422718988084518414930537092691047728288439824090376173555847886763448115202727849946322353764846625926031077020557867468134289601099930036799121033247320138693810275997563709707549165138079602277954801470498951907287281137785600728665725958666296681752109104255656860141599608669266533393926099487413910851613637732671141812402040754855862949493262795856668038793749553057898724874158128970076436019201373439943970259725976871806486070493692262450336002040005905194613875356286160579150546452727600065274098578686469279394948456719101943334086559522732082945044252104652185563522429800355504699031204493815078795247804921385369068250410480207203567013957467261171933818964263043001673547827866125969986423766100921719613499347657868226203168589357259132271170826215112328757907232578886541880796584249754819282461580128586359595433792128576592574655645756947090035818459385186064002371422198681385199729675826956725309973628933697988901863350949061316116213078808659447707733563323339179696447546936009124276669567497507266564799920172919686538234343501057967392797416902967786572718739976605453441545829596767088867038822994224994259984480493180601987290676838635248276655150356607349096853876947303459673572707024768751326267407930893323602452218221037696977873037874469414281307883124097120777658374606292017424636746004092544544426492864289301034653307494624569193551431059940950021903863257943335924691920057006066320196305350063613540915536708369707582348349634671910046653725552537129165906095716172302293281827745137018895767565144176633848681095194554940243731557903284500033904068214360853778284380120459667696372489634347732400109009356492645021357784150277121380541750486054777977473051306022892505683513397378437756500771308445073712756633545807568646553534877540447645240268295880446585057409687436302316696818017644331176446300132828064488349022117546205061913239813384182848171347069836159384597574688949388531440432276239871561482459842004773807684991260934073861038840035746011480443926895387153925216481264831426674125461491878076859699890364937941005744982215808905985115876759955363573315640424841673804360795793347804515759023809966103373186419543759620363174616616808777184118300343656740578138065024871460365848065487298052440795691716374845792178435726011936928824803914510401222037411665392119805305452316743768224920265040854339238440063924329604299548309911043310028830807052850568064865483501406594794725735780334243677678691424673612243520676089472267853660730824000449972842691235909916593246676522330554726424439888815727578738343589150230381241713836155988798498891837501662646439782085393662607622619687942621992731605397744380847381041287202784684091435670998862342894702900713920508911669836478300381426080867403421650402447875646322960832928372028821257527781711223569642911380363356613983098598175368086655726547968699361255977430031777224026405745172043781237558969033655166735256515156264620535456706293115929505335146108086999494590039096901786642679476535842202178534290772815900903798528391761182179434351781750276072858163207500686127136315954638425474634209771838880218681284549361897213470909677317270272162261488042904578178406747106321656497949087478372282772683744328035962459054835923382147333548477984756613366370139600380590103038985023738944829232578870122138960144775532498404936927469580291379840322891077677242311832327748137350615302336202330623229788438460228326916192366920322464702598020140636360235382310661089142268464907815911041471962437803938131905273070864254787774747866696451836815774194870732813227529120741555529456369732837897171124560773951815357892834233053126831179195152454872885748955469658347565718452969010904608145078840897116260051775868041346837375102828457492502526322222383030215799233830633603538774538824432027383563561998006585083528297886875780374048177467611598887624033975035860163758725121540490141942821644698842755110126784523177895095290431780091036187086640575294145153372591592807630420432930473846220330612356189138541814589312528066771572582851389755036387571564577530328074949298029869619364788398180887576318702873941475721777707995708236204840515223581999451013269986715373492360852572087405782087117426242305144821104693949572426086995230656036243429260570818369044106504817495599151550172554563006366364565760554957483106645035659796241227780229056589981982562485564032118138648621184623102496750566876421661473898184814356673940457221112669246430422669979050399059482371652183559767960593916210939303856494227033746728987995272128073727958700626390119260204907520562392372970967742473311290957529661331583281782109281638235332640529933126514707178037375008227475792188589663829686761539411816305571734834256885135850824427922437889479074373645807225092678341074469007727395624982232374611472559161044303257787507637418430192615329240716406886571129364667334363220297900339941478104016683902438782624863050878150458481532150763761920112727537373991847676881056426728566272710890626221363030474987614949601655491320868951463061088951473254069662931493933448313362329217349257773112395898473898196873229322389288017745690348618132118344073717334396966881946177206259493197156270800859246338946110879644801882270667816175194776124797156095772875876036274593007656897190477532200935531092609984278307347776085399314259399000543317028468240664736313856984740915744339501728401347554892786095831238511133202521498761945164206361853832737273006232826180160650140556800476880560506327391330797529208115220076481051756225537701193523372511971132747941668694764701861400765686717039283287135151139934672317323073011016501898537009097382534830324134315216388714527594680210547944027755068347407053590023228182719856938277602224485349897367907384198303584586377372798160578196141699490892292140205975560537955545980292200519276216927533174305053642286435887131790766791372536966265347511855525606638195276094384001763953279532636883910801520381073200755622166947344638056275566026883033681945473521469183556014165794288768227756571739637282380488828246496633320624237723493325473704417346751915879192420224081895464836308896767656403714406652264866260393808535763834511841407626779028327881695147564761867183119790985886994951138085951310902189160220276839151997926912512681246948376298610276365811373077803296672877128807651383078790346702675961609721747346281145492104527336903990334990081805850547741364900553126313342934951344370236754558243189685988993052254182780692519999364554016708904531878134216849805977836418748841059453392223958237026523584836009775099761118470106265568296084818952287952384050110223400457735331775971167870001671311931121553483766422855745771206398019785724053288563970738193562567637655160236797106399600313911318013269065913561072662559718743403028791357809804042175134984458670504051116732994883386720114595996777996925067562116273332093807452598712790015032438691735730789651194780739654270574093360434784203782345907291917736819403237141449914202245920335228799829504048548463203539693319887669890303111212412287333382430122916167813134307740870474048606842139120908750588300306571026647050236183814391388829221534306597353048786079770918591413158027124272803107287203530309945239048316408704283646663683776363401774852092474048954951103959747760284040790023118921394678142330312028860143112913020417945460033461020330892765485673761489978421856369634290135583494429611730312412494835681261365805403240139049677011174393558706947769850485801902926802072224536581198745534873348545371384296519446415040316636350997407968736470096021834187541781456685142135811027915862071987402678272583565487384731929906452749767276337509843252323385479669628575451387026795541136881127340115292601837198294728208916847097869637505922161036713936819313132574067529686461165299637714547481270729478178203834725518443582279540596217463804067688824842988114374486194760162836827337096833056547337323895666619439101776535661108729271818306538648089743656438287977686536362674269056986049889609742706781682657735045734757750148400337049586150887599284768901114094589931965494581042394510104866705164767493618672701594044190885905536039679916126713640297058627459015043801834639650017754359421710089650243450079123083031811085230803382986668318409498013332389459290608126194254881060514532559229972805074544491537870360054644712433896549666977779511986083051295401717781934493137195397795339003357476852762048229396314577224880340121754569043773082326621293239431006287673402581460512223357092455657740144171301263622381615370080022710017551565841953707182049836362095382214762343909471539260421526237641753219634368429530170773591845125549073282257865332514908459499073636427503974473976835120248346907382007990441091868388021513474049721283580280377639868107119561287196942900511705570175923830869346549530476367482404815207326422312536411661416890712397482005671989156263602947230086098397768774436439537252198679177763163647975620440537211214221647390176181495099741698167814673029603234383192186150801324518861106839275568238194097925882177732280653720315014260074132561396665123006226196960071427029047827602621519067406250888753388862974093023657574758766217938189331786477123012602343737578148933810498094215557728139058413166933952695082008801728350855793656108162009185568358809357250448076846496139857974824686946524363174164806038827873741893273481938540339785256133849758630685150583422358721679563636030832426405859528617306096406881538921278338508422580688675302971808757443674450492703166370514730244648489824826009777725416884432209767915826274367597101234159061704343958955321850093024750280972703123300955518752464829955375611537247060896917006326319298724665617502189164724784399388536580441372871129784092194767142589831764291460200865430582836144481648578754665670197934111646702225223091153895912033760124982714106546647652381328298407118998715522681514375533700444352771450624888404661746206325703256962675583150213447995041699928768528854981031115419029668139621410190741707603677525815594556190533345751835004658315008883128620570398929960603744173011407248999315077107181883713269273152874206358441223375598442483146238746865724954725876933667411698691256213818123211683410190111237829236880417492362855120382258685447105249181495225268759750394105468587479074564160611337483071817681749775993645744654979768136389902128689482589206357560996067571782116654416118958030835366849867874989322672681584716869983251258519033592129254566032371830911983227039050135935735181482431192584586683155085705480872493373032871838540866691180795466646312611475669923035460285996684231510224798042748884000380858696546325860581764814365775634121825815155750526541344869421113236501189771286748488648241330619372239526181576191007969614214148617767964528455097149107148149761102451750195839362222373954570375333442647275252030345051929186150947326804867005514293110240066771269009404187327075296457228723328410866799420766212964763786681670841121704358978320124464091906348027264133646206522330569475431856551529430304202804369086180925023917522643166816703092428893350531353666204020917286738138759164893453464806469287442550824765175842988399329071129486915917077844928907847769316197008662402827345620673201822943697234694542032113865076202485287422009415751526409550959699814213587569646123775238353512621362972627714973306843615314533765434107406819989863947156684261567758534193840867514642575637348994662529424889833849416720926321086315374296628602918118452236324746856313460109891997098259237221712892366991501726601405318799863384527841394429887324525642559908626801727551660424077604987504226946755015830984812872267721663404095952451385891177937884814757599474781787754111345976071113741815182672167972872157554772612011613819936162448942356587376297303182125848541659125100727585613439829460294838736020720788424415714050841757968594499012016240355600830437713602063643631339034400585731726704507496215933821265087501402573285878456187373117033501017621663484824033809539084412993695640413656048151459802317440924831447108930921573160974720460714080948079409272559290500269684432580554716276760569983804559406462928262487449000581260298624959502019215475904640197255384988729429593787889983915064449699475458615274260162805165274803688919540513964420262962666184730917590626537427290291994314754546745864733809239759707182564476998076475359850086053065725359796470282140643942007269046737163353502794343589693443010328111356828554913272635947946947648941743732363872357248861139638961933464509618129552303933921490627619754836252844837742934677323348413135039550999595368943262534475624948588924136085745410993437657096895155683177112623178705220726578179308542230844173480794745671941650354972372164678115624817114874518649451702188641437886747252951948175756483284716291921816866108894072638543119852207372985601651938894005852295538177345862978315035257421997192981389145611269570065013385482243883669185878412349694565208548465461585378308484838908750387957999208254334725131695830825842891334823878276279457763124147410516359381596328789886284945224968026409212315487518500362381302508591974431050318489509553476277552732789482733718423944263983591980231327749855083870864994110040086851952884196108581330667172994213807422141871595763561512084563308788019384368129307459678960158909136495981000562517688788706366349881015654149233157266017856476498149275712358178679277127802615291230158989154641020269606549643761192227693274480653230345065281923174886256640818436307706595239246880785637220756207273071030692887677476882997335003361016684229190186669544591472836985424271424035836245131041997963397620472833353779728281105468819858431317731773899744874082521478884026219836909021235445745451243761979695148802017572537551190264521792546528701724525458335239114356373090717874599818127967565021849257786773983612913421069874565244616680717412164803909661584903390737095058388842235365055165490869330625627727547756262738645231007235516079447948888027340761331241725825700241931266361361076543785890501231139541828099472430691296425373475454637222968002677401998506832383117073771508423329404390072527262545608465921941765364146603671003600936308535830258043424878800921998368692177722548182178889575241802047141777430835390875354853097413821082419784552493968497137013266111321916998864446752342254290346245221146239362678918452611458352195353523505937611123908527109031986298752777784504413557995987173879773085953498892522242637634684432884163415775478428345923393213362195093458375947915371637827849338581396636568637258149560124700254401774152545248157995132313671934846108434740268244728171034666802060173017512982655073103319377750045014908761627293681751084076532846048161048720361832702084980506260117233340061753722306517610497831177150117766526241778537569814124603476417158796130361553002198116144982493947417021086595690863992935538486067778335112782588135873784242250564218904430588847111796525663305782202682478710345071172529238873807700104471869460943694605962955447808521063436518442359244549808004192310097947163209579735500234120999028894229843674968241875306173261821228283258630033270348830615975156561156639351497790142718964593349066095633098507588902371710913480040851006038354677494416368705489403555436313507678442495404692359475288439706493597772441645098646964304696757978382828032593411008854381899760126364012973825665126002549922644941852131155751871640456616333271809579624702123727786963726645302340366480618972719819639844623725166463073903010526464074045241427438466609824657165692254259257042103157456023057107706622915993730937052966075703770814923621073504223700404153845241008034757020170904071489862335279791560073260086868669778583583673298970845114188942880094063440489662583476097135441989451222223464371629758419886058971934721462615663649671154768542670040491535735663277926489158844337921432095397429561354123280816132213156700603827410958058346354553445011746051263855289784876081019455788903688123106134318449352965698704771282794741018162125009662174876239209695308798325798799248581031795678318141848265813304528947067501282963033207034420848060497220397894079562690324335922158753594760813336495235237410331715069714594152914572800721813103935723531441515320506761325793742933672774505991713147281813072488850967012621792763354162027392503049289997324454917338472610097792261455730887511723083989826131704805260167305842426905805337530901705151093022531645372581425931609591018994559299447635865722831878810352880476881453022438004708881036099085421086342445846902661230549235091532510415017416242646628408730041200171088962720446047000168070844845852604083230622699454093337710114376749513160393560432546995375748470170162087018890948120219730875313236667003898974573835976782417697634196240697494422045809408338590933865318903096022226398435753319376595447868811331501114867670111150631512617196748717300099445769494809775671418319709515174715034475690903890191000616096330241475287145773612988373624403495137753486848240998385670645491526408592210467306592359824069473300827659805444214953799447193485840970776244387796146093232998453252483895692650427069924055743598386372195344942154539444586591953864001205348449984351226511158654667747985066087092443519342986432372048371302511107281289384507420882383863098486336911118164279497110966008021677473296397214185907880646895598472520618678120204554607471926192521130764259699963402453728270010470088510821493014463614756984750477017094179365301534504361336477353129832949149757919760487604216970132990951799156783638033556845075495103052982746418748720409301836771418002167567708041284344166418073224711509265226388242523361080017887356998075391355529980291855528869783530296331085274722940429004936151644251476541438615529396018026057234422696443703328814022110893569467500045262183402623036154880214938357761788094501228004772248928027962660008031981603223446491180756253228849875315048353335118734985220911847816972310250086651830953270291587919949867094639254858689068295992390404118318385210405974895585438200438279683141483371455279977791123634642525560823509677464586667005692683160813591138928282095302583925038385889367258003037237250808053290529371755631261149518507681257010527079195712795795612889002773813554376065984757314590232911041480186387805877694514768632794875525036448924288508399858691889570374665642097473526018194378340488823358674119971397041021004221005576116730238494710022837809794858671637089439308625455103844596944435252433725590121648795297308388121214816039187725704819317781197019278591529859165077101179177559455367974990833863597408560166180810407328228954246908929921308293744256349314171399051557211117071319275789274931950507480355105279422975020288725687066609935194718677399214305881868303906860789464310328944988927333928278098845481172622244620311894816967311823387779007601115632790032129694499601642018672834752298846150604714747354080573061087973452655390196461233965644473060270190120653590270206380392750087394092247998076032084117452367347705262715447581686509034153954985374961245741532332061625349756929947376567156512411261515261146502287493728500644745404819722695344942903776345138360988253811638890147538711178422993313931968131345141977787096228743646438871593580618619928987472900047945842737242410218336888594008965568362775408380381188983726978392593638647666266641541141144810799965013438185943457004742484818125113636003687955058583295540741522760444682141425316927887366783139902511141267572331429494864435770837752266328127705807381889245854952618162247111274279157388979657459614997973369134170483620023112179253041833434582091533864514186945272369640049239035495790063151672519958368027635104480769650588190977917224586537900097736141566243009931814339898721608012794339462219938695511511759037076174114308840524109013717233947679297192455478319509610815372262418416858896505193149054506226342594833889209799911509852396567883193816522163973603104764151940945948856630283956555174051462997768630684374512760433898661287381112012990308565493747215653004367095127593279198916659752847377538673796772004369700183981054564769153421513974996797321968120284031474312139374006497708004457905360592737594648958494480442362261328472269320011532232669659258430962286513914916943824444596692966350557078868444911144616690547033242817007106884551924707881675409797253319960529269841379638171340725213774052444771139347915929407186386140810942088981069340311293858432619844168188148039608748751228402647826403718631292688998658147591992725126847840262521008362928504280259518005660290982710441057644411366060823945616079534505305134116535722918818404637308403501366519674500632360407886971856463748735226507924852216802234003023761106263719640288664822629678035086236637090277446073315618789359905231379431066109244325084201824942257755151241084403683709482021705348383851098489462701122281026453919473115813442544508920741209420953246659707296532267850920813935062418950808425044347035723618414836317407616898393745515647334826861625758614241832119285021995633283201615797420723215711617357170871505406531415445333385837255710990309454680118970054660986424886481039034915393956959711319993185668833069434534569636066497368416365465392902315824138965442317665952581167104124567751527220707222230522572847197825651281187092080570779487008631251081743576129469838341648943525917762228243381752538068312068415148065999668653151343179442905177111265711117920730333305020693002812937230423660539336485352523801771645628826719211529372365527552291821433986266730280085648629792434798033328064763976657741914115849248566523048272474328265874876844073820164295160207919641549116960967613461792543038413173753928731704743789343516895567292737851545439974188583782175192311884058398203434005155399080181231965618433476881736986156028812045635546257402258777167615231279886424302262589740781347504653363939652798231584217650007526533039426902151657031825488976863542120178888848749011670070593043365667289164447527808782189697779924506651481683487748430752443030410504285464553362147569596472859383055778131771972191421590956485429201626859471962340138100546407114902339190646613160596849089881121309483927261853488682257533232425989025684777176046573293669078774361328361907014283875998566079908504973572452498012281010933815328564989475664127294585603934402318026139757881513639726443192338394725007272636674534294672982800602503353021854883818121075679382380731504011506219756596890004038697716004658164195109750771203652580135794754005161399699361791839439358671206343319876255364944383838328879578262830748513088272080404662790447254347198138236194049608218453571830719708882885495958779124700581211868201975494608126543283923538617791697880019982041945718581250491791096193508242577039691711955518143286961340860611478862041343936766776183113767808514605667237132861372286922137628113441708438273873430766860759895304806352532580400053494677407127107694535914694094897761647942240164066595280035803007408947047845000946515868380743907044263182897984720825624446648486867321779398473365729412485152937893203279633099633765518315288217782314849816060744563364144365046020850246129556341648747085289758071699597152369359844818090041761957167614950848558957217814843833440182240928371195071148488312058873945739603921114913542971564163132666503264038959155779265070163788063391714884103324623687765991391590945538330057540032897413545025858351745987825607992294218537873072170137265174401411557013835118735301775640279193405087171419319652046746507817628698742157849248987906151142206020053833108050997396717640814892280996032876492898037256915842107051409610528816886125367882525433399794820052587048590590625689493380951071800535133254878674725417084392190345736341126398967847264434468898813086947548674641667764156131803838688175345295011255898244239936221499569283450210061128961106219409574900527546954318761995954053579669538575188444772642278118584165169837596717991558487517577961095454240537201229828436732860998180776721399035726444981383435783988468419869197868003185026135258985367942325897284591164818193882736711070440762271672640870611386281257602552702754060730678665775135978430960147830655676852803168795898642994601607394237499557741733222732725336306561975618405670474243315438794814124338017370411348876778089852278887620227954613678958411129397798315392718208500496805710764901465874953035297582850738948339040814405161466955924732097785635657833463417520525764993265681462643573426432200573770702077137235363873371136412471504199401193429582456133724937333863668238672141618649823573525422389998122690181219185878456569900364233176043806973050756564414129115971394529794745328494206966794308980052876370589002231201203526397228297587349034280764717978724691995885651837582211465672413659147595320295511268124302764836262114348724327485342207246817765982945833903188735121267196399510442992088468697924503739472571392702461799905026183728449731399114225507089744626264614825952993948463695764042137943947228488756841091057834449401545841629339363419811238664374109343951337668910571545171198439343444692216644672100106421406671875272569182062227218353983486498474286757740956760678094478924701330542409049318443739409107582252336948985796525766117500357560500257222070682889973222551303172326964615703885893751395124423496006960355169315928869084683397658141970236011546766945482636090338344406739746091802744315529184350807798103724872598663149554189035879712060109286480514392713260945435524463375549334671366505005093911903899515036927977452688488912058300258914942390529691054504020216569742217758579605092582402757951340682550955841741832104476299403867066978873324554407593557712900033677899006483439681837791381034266201785136971523248624689627264959485560172088248497048548460334448700969418341147755867921081622774338878420340677245153119075092697442608250791900216017854309730572506058760804390516335322037239478837270131588475177052992278365174575694245282819595190632089981570149133916091658129914114222068576494490765720498671598899828030215336104998864177526980130737754825311215281994989702591603543302002332524992415909004891845435576418843217940688929570991187277895221633679664668767451216506867747644998889645220884545731042083945988108497972542357938877000833865656529253420136938470547230157029701083467257340147448562441971476699593918791038351677798057621811596882038536206685260237238557678293588097242168221996737999167008387378012667896340340056851754444747684082611856976872196436853128152413070762264773362652733545821961338845873270075660245761655000929127892815900286075080562311915108109488032836220273141803203991001214654563807586713963976444541018902834175684132871433351912625781343831968094625273167375014968773651277750817956070744738455588836009382945830070879993448138728625034667554197035449277982410367069250614193544594454138292134184850312059399820517751465741618648158681956590348691118368921255917974438028547944340326374808473446878295870298699887047730442699921264529421650960563616147545759319965354925635101009758986687022494082106941304086293478810408202693252976695450060728680950433240105486733245174445673725818041927927643978525096281065307761143979516789888270211445075681927079899115776119333696159181570652858535647849083399401800763045176489037110522535743104670504626003172492310065532276481244861000460292579733013915098101381034428993052194233321275563419386565448506135885574301711107170888211694399766062224414247941567962219060346310667726680895480135946311219415308339030412362804973076693629241921759613080877416188576060859768226459421756306833232466558923418600706428947597360020837919288452201371170366592412825387018133961904098320643737029673236965976018436899133427768747723242302478826433148393991750263970716019736478895847459878183780827243423145354666394603418885822431995922607340837570106798743890228095693329011274376819551351021526696158813486903578697143111154651101577231984540381240806644201897516652189925663737554889759955893816465301992633633665734217605721953373194854155770843466961600637669786379525733864099607643969138917107432478900919057009885453503793485891581377927392835380530411397532960242145482531234849304884162861916948784654496840114460746385957671535412017142983629289979361531467671787172201416113379381717356581738215832609228977284465102083104290833812350431024290257560723070576614750753383606436904102414369740351112266194119332709034253664346822165731860589487164590506513810628241114366856612010218280504213761814180540370023572847004303891080887323890630159299050217085305731276949162331152093105096470460180873967363022724404779640876208799239669953663458473237664338565271482357939201432324820251720326654753493590746827489044914236976834176881154538034968044665123967081983168939578912121378646739699648370235794143643477910178056534519904809020859944493757002288528101884362859247261437812963934636403005218877783973415830748305673322754952699994534031158345710595281115937891677714956275339259847822332484193930589902727924374835289629171539107599063544199024953684439681256506616036684060525509579400614846902991732680733115130066916169924200337000178374269284549045558528791521902102344264439880729510924611693037830721235268633037691973913099565796694269724201232303364123457113543173849816463149948443996153040387258333706708587260175220979623022429525519975260753686667922417704823636982536133238284060051804787361982409167841405913462419906031540850354980194247648820107370372495797877513700099894182437238386937901709435278917043853622070974663814540835764366287949454994434266148442535810416230256879623669899557645119779836981111837676780178392391396210052223926475213713313999945611695000513511830200457512728099497896221158156046278528390278541380805994711596245583186767407944863027522804440853320453606010352326957748612884026863379488170962961351544126016624179798317337891271433909416303577797188702624511481070866365992196316528804915241077798134309401124346374672951758002645444069504466784093668620709265182743920803059567188662049124347392523988832879729553204355785078449995071444415583799382930776872778745959380106760203422260707419579223476150435843234135724518747111013011563222828717357812611886741569154418758969919119622458873623695150729962316728217067596342596391118015340288057157717186993758116424100095085346488494714870915806138837378318982717179682490411997361448004100573278948595461807852542251954381670077609214861503329205402596541384720607161905478693058187089554205611890936452086817296246884445790672720896870532411403226241210087444801514520831541940294247319272613467991062212133435383254593023620523066288809067519883983858729309372676335559032529253911064791704181146998925828670297021339116830618895483498378337331823450514270934964379557703877394515804786629517942768530968140040049072778011988398274746745568983334384158282355256583679868575430505986500363402992433153055765348833246448574446188120742595848052386787958812847185690089352601338231986911075949828785760856061794841635822956232940997844304859709997344341844512662003740495325949594204182674950760250632826194407854897996938439639810508724873663826299551164352201305154392715655156049530352141416171623972533533431764918425124877492679814929338663787201934864839926728000975776761527533447653854330660589491065819838820934060568360472142516645692211308806514102138150409180722030914621812755478757312006429305742367184782368665173364303032858820905986032037212955667199509755373439226425502901689489589317307026779057582187939716848847339626728762782863182348629763353961872240595774855113909339460911813883274252105053594726758958379878791228883541952335442208300401180455097939829602441458287487042339883384693453561571570279480536637927116240787362797228823021904061207696817680785276055967957451360376247711277962479769412829106038174739979777324704566545128124276625279260860745273288141690041138516579070145095902352217275312318844289854555436137690578201088026721036560769263962178190760801631808334935681967298089006241488378381465331350546434053402330618594465283783741563264758132679576776454884456593285520607236455981426131169010215834685396036876942540188872718239835908276769534399349335329559323083323294912704812475312800137842385579380807895821849370654661249753205923736982486965674393502253480230790435263255485538856056629537754742485788060817634534514396162388423077494224136326503528480209599195736737316794283179933233285550724163505369552647333803020182030778341630094666190981036632140872793880754039218461680972641530918759843854733553399261252556752887148466532062508320344762046493563471823569342176690538636861674196380968670019449688833613914670330573784062497748163646093004319199620148577182854380809849720225987051445776783098223318441586923507798470432390023684427904118147151131601408945562925403789189589096282241656577780833797024244739592665825430250246438404157235122978235035616077255133276026263412505891538845065970227296263695433425967988706343091746774358041551539667862009352760701888044172603292362627997549401943841111970940463770267967419815232363626335098223072818043354274492964854566688829873715523381199785069669111559322413366766826734038549049273189616764899153665258087729901034409605345103533165435832547042812502632860629961315640031145265094413557262937310669998731035427526660817964068790546906695222528402244820367572744619419403211810219632597582959423454683034283423680782730359002904091165651248759622348576932095514798286712416105771920761662267892073673110560513739004638659220608933431079759296542105038074153588211250503125704964993765484727048185739571878693105386793262630902082515442914021538703959762391597816954134388224986893617870479907057562539800158127311490387717333683020349117823305913441125926260413945848300498278823315832247204412273084461154990851122277281824513402369227346343367841497578014285048047203911920693485891175869076314162854373085417436732184249115592154782031606085765547804767419950939349193751503319557054201011923599619539461857979732129141335781070486739310417217685309550645026595302373450363728501815613182817291314635828039661788689883877524894161154354507032578058114213742573719059326294855844396685987361077413769061243580956964244044384557012621593501302208469303193891896637198282273213934335316101502802582480754100101620629848654383562163577164637253528914417412863594718046833147816275672314626610446851203725380045629661308344093639020535821796045868005242973730109043493180106232553292563801855457399459121485447571918960820156413127064385066303406593681616220566342293995403766475698285227656533582195869517560069982166960751534222282733734791627641648917116047174522471617599173707280746224040489618883728198555347110404760297930859644738993938496729913811332948075830403927805758850517378573889416345724971027165061998783589133436234909795544598083604685900729564712901169752630510106520662177652880252155950648330563783993972124975662424328217108567982536297835340189937490741591851714851807595996403358709929086625449076341011219095263254457136798132276433177838833653011451377810319763167607862305579475378383356352065216184803533726376387220536413991857357061397997838649029856654732448019339423968436276989599992829844660151122080055518835231130013761819853754446119523438740967878411532170477136366746159914981553539109557813885405176495425844679924599943549522208326663894481652213933075189809745967984399926341169665179396405266554527902881854529873234361240982632975608254422261563864081828930416981486536901610537347784058050907530456131960104595200504342536428297824711141122410143199518435269763440576470353577346093803517271733235495793488966688034596146488593460652588996128683253827116778389705023250055490661977043204545395095005203348428375208798480591594992111131825468921886771252122974695828381161065672942841271281882971344230325778943724940456017513712803145877143467380500871807448778221589817487267395418036893016810682639264434988976356347068534346931636902249876442755730185089742541452602911736379619391981877514679956905979425453589844166742733775939351882486444320011880579813677772101143426632445182846154172014660840472747726732859341792921370742657189070543401597409442209575599092930602976811462099106479392125261554897771953209461059475149617219336323499858788386766426726554469935682097112778170759322744460741444818905580284363720170423230733761817553502067330354287291798957343830575141613479880454004265650837657249613189915246800215790997254370413654357026390493193051180060121108705396566636984266758640475649958792830715036526599323987544777389418328162747338121104512536844481826670066823909794152719785849498124568505518283852497694680370610334573467524743334769177345141071964686703383701744431309331150540816992111117008844174794679749711184879212178283028716698345268568211789355485688187213098603551724661355938966342104345982976352466593672763181317839914253289339478691951413821851559272108368458506798209650215585563810051490978345163452077331223133907624108955204665864470524117927364922583128919037574154827642640696657754195859194601938914480634980233962018946231108130367567232922139980015421052583475426138516225440355898254858827548191245218233406909725690257374635088131426406952464625182243940930350198713344566794172407703738690001653269601027068635646293131568838908705995371037301968663081316413418418024045401370014885842426606180774996732474699290012293241609441462056033966009113899335059927593059472398461748719379040768932644558087314807084754233791401052529447867270342487411429207110961169598465822664473580442852888447355686962907546550949137700764492282525932379294493592699112443495573154592633429604486960265136964848896875864898646960363310626601569105515250503184679918589994293558707662232628472022162180693385093698482152337032258971024254792606515236376586288214414303759275248354999323701951768581396490598894332078444964728646303426989393622911823692085781355227721281239376453228917354376567522745612119140509942890118027674135201393293921553939552366606372288335445847597779517474837212182898905844603276129167510466665503654852291158909469433892350549504848908208647585019918426150074674855333105974835896382666439108404598605453789726695550887055901371861743103263179400837136327381123855513563821780015689817849549718179372552343688373694723433411149852287261568582218819603513320183890870092103711075995626855325660411369505866154580298972452710213381974855828695749674343279149368706710037976325663090450799536157477929118406727414473548641426879415887867086762478920003429110942634094738214259098229634798524800203378765182477389012483662755579119896434253952164937662107062638535632091609402715240500692484410174975955050707649219153492402227214205073027883295764808357316653522879669553623303044941877788592430820315249264558679748354059702637750338232271367040087816727128712686093969190623292822214061577279641267685894249843484127926444449257427945809667393649921600438669003818847167065968749879571320145482124221320529665234236814450946552862824110125073760940713416071238605077891188471626505493147994149731266842787351133775611159716950249928903194568572260171543470210414987243327859092829963905076458838737991316165479593975142870591102769834561341925687225754085358863421637370072924325946952556927877816492647243677256526098598376957791780505592741436741372250674127838643632251085665669183375277797455406695572639385246125521736254697348145063881152553879939706176100591287664481909616454259443602707513196998987645812649461995446016028647663522849069538693712662544518897235972259528236442176714384064233325064352111137299655074317444314025464548720059109878729522922403267515222826986506649194007641298237872104926975957546544392560702532212352340357600344444015499960925828311533020002459442269939359422418983198766286579411036255057863122860821494525794394675784973631987702724231474779873342532139583389935521150710267937885746267871217880281430874812239470374813102455253828773576141973036057293903072944238025556313019012756958473538150181950446277647636941057182997232610723856576961788868635637825553290965565655268849705073448894566420421470468606281296203826464030353391850410230916956905064643429971008804660752604166759042119168266875098949243589874492514223346884064075978284200488836972981617348091150215697644525883543211589094928800103655067560860876394418567027268745777055124496602104907388946626775747013514001061779186624604453139455052556931832804079984759391312702319784823139721688146351403328653793570986860113533584331486540484239500574179955172066498468360298776189409712293015140500629642043252080210684393701919230637810449573996914344184906384954117887125966898514139496025026710852632643499076606791198735666151799161820407803110595461137638140880402386584229392578028022780478143872051059305298780048695585930937392017478144061688201069651136454200480334225571702592989683078517500080949401239555884398289806183214235519071237403848981245243081824926378850679326276998769441052612358671254093973897648124940234303607193455905116322161030536410973868912544739890957403472747585281577063657988350412080532530550643628084732096837873443630713739528068391849822030111532746166597102549335357384103248089926100047904115329259194753450547532726212812183437478496189341186995173185759976599595554566086153014730496055387499029175882097178529289495988145939358480000604335369478949083300217698535543677534498748672641535952279604349355465654631565168489314733335699411030026823873136706056030021340067226843663277736248752285276895744980095664904151719389936497477164925846968417233946967492159093610896758005480473191818317483429068599624893107808511137334215521575613233414300926229720757636740507220412146607125632261054080832068916593264500254891597223905772934625082233653284882718151912502985169337363552171550579924896275036463921646933553184735271732689264702162479395812621351179608061486861112778348666653274326955516825181191340345946270518956327464874630827814415610731492082443647946258027524743827131846595161161019660945243722073469465565136810172856969765713016745853566128466041624163758308387485159952362793846163989044332431408824262886934928103590338230414762598273360411544044798932473360222176363537851466757394755328564159546534745261712600974447483454030432197447503926137469379941269918987446542105347064300154836214649459355587226749875983298356699406452812251673492138162949884155245078846846405719617291444941827922828143160514893143608118554261938772055876190010160161820518832143235502816953765540576702606263176611533373494339274685519771314054932239156060796515062121607893012595395278248872032167615063156885747607983136764433352596056163224014294165246879396481011804218386837058498165869028956523453634756362915273357436248697139151508980075990495877223153725830801318758752914534491494473392426874915843511082731978156145656944262834417231647858294158795341572322766903409198943427619537202313139011057767380643472141882094699236109869595962039488773039227794033201835433177162272404101528039968631830807812707963979892851539146006173582726367355874798889107605820395641435400463601327222754185487003262810106590295678070034497662783015359359814482518017435910097085917501736688901807457611223640942841872682934862923041681091318591231885783692995033075298563043074573547757494806662811496606267155775707901730413155643934021063980218039081696173063500439036555359493099616681024707716699517267659578546982524653283683168045096831955034781589545510227309324640647440915002280258181734931701218165604608497480802881676852128254192367530235794095752086225594935624771832530579388761790925158234083961851691147169800326178542971339748062313004767493256845425141487551393798786830404700699900820030441492011197092586723297483585650899159426338221768806373525660262996783233007307932215067690207384632045777640739287630699007946197687000200430211455507290511884459959757320735145586573845716163091309246098595978744013081169061212039336746912292980801867175349293617213404015327982205151574313710918417856771415341827296036983708747065530628916976054763339584594525161814514313723770241403251898905215421866875076695856240451208470367754118456054384753920053922341295191592655513732616747744966437853414527300035858047401311202942892553927574217628983848460625409397072205784626188902822457598551719700235355644515051433926975890104447082599994694611886267832242971999588350499575788432514134706388534357694070569344576604808898364799018747576195353313847018044687443684532224251650995379591206321269765300058431677997036448505982748957335561416928717883200369727316146020278854468954189545915113288930993650280809645449919578951211005967911580898675316261245486197913293662922705009579188380731800235365028781716196655721540943126424534920150928189445318649535709600322781126159893250183776220880255533127282999575337034783730620725733995140947473202013209215649960593138681424980726478504892465074230911663240467051856905791839124394209066417514516075803818018690061601337555412876988068266988254882345626819376969585469418958633574540380461275553205957494967014493347148093192450505527863436264388080659514239831535124073492685725852267719734733572204430469322012545173368749963118881326166143910075498768396906979341487744442347887666511819192003727178782983616208107590368333283637812945045481106829712429065946316439445676194832157399022550707469542767992460589689252906477924455606883099490418233804494287976558287800361457548840576902082677869835141930446919464736228069081810124954712904802975409550088024347240484562364331293110467175776279363327383745017907698087509070262503812314099425941139850554651803001404610550326721490233830506502431990022418209252542177809138880536884283699423669564210568996350017740138872040016417364348147373197440010317210239294676538370483377844421394525476536216130712156888544730714362487438881599457344629960634682598449366034057303531660126854391135248459554153146442656521371902536615359011130730361487042087727636848251607325967142143840362502991854965443827755355248531493149317103866129179975111948127017607154743077560984964905965513803343207921831781579740831843945863750148974080275120768417614986350632524971146969552536144621866913288983976828384496298538068370771445831560182437721228270346739354513285711666557584868723758376528155195549620164855842266284026774619654514391381879544203167803721335402582942747095600070970205903258821727365890755055784510516693582328856669585786738858183717767714285233957555407108351473098694441140021360114447427274338718557176692769980769858182837952218907298538251128142166422610404448846731480549463719374599775031451215362354931362754870947709261069224918856254532753345282697603650951176449429797708148549543836203888783929933951893410723573886481577145489533400612501770102612902660282136543952538611575050432633954529497278470054040803034196682272991349997459267058858788075227370564598066257436317852205668055007956437547852377343249525472973454340838292286878151840966951661798915786562114799148614352478103328675670586586126849235433828007142829611369978861943896862112841946543648173425048340917120668440598882787572960284387113905566482606255590956573484218793415564471554092134515595893721417014724548344730856959962986614352794784699205408833005316692229652740111915731612765633062393267958057974940196024464212245569729727886904276085421654862702479217270468552667885128546510753227576827388473831482801577317204629276219074298473477884768353009516089317118958217551164665340346613751430842416695326912878401056690044982665353632289551397170391496025626664715477390755396940807586411438498284453580044130022193955145449565306332938976098686380753373750783839473531730866164655510241797754711111245446787143643004951381869566181461342775140327893224674058468420929394579127008090265031138235553878054862425382077039348270429259396207485452889011020293419160665368076066564920905449117583891605221599943111741761867479398892559678615896443574173139185355935753608941735837628201694249264926399656565300296093619160704832178361414766426892420790066431525180571800021748753013123183358558970782442050648686981837577909798236334302268138073451537465108040163330110094274810822176504039386854810848781277289539154558942336317149217276084399449493891172559318139924080391210252800375627966605136794106759126035471421304255066185607631399767989563546007208282367830837577678184924140981538370554212918558593068994787374400521055358775944511262721038967145424281817050121602225318480766573400820257413685346301482941920085556461960787125648390468111848034724795077280258628389580273967533587296483804573916163018928823667438122802391497975254284844058170374245471641461860477129733632073096705651172974917070855194455846765916478034208746200364248640861223844916388170454421115080808664251127672172636961691902437123375566200086524399093697181954091342632932039335321467587475741398136582331372740224163997445934669039499823737252074718342960457152721932605835493014605241794046540542658330144358967372880233561278077485140283712772127454077893186838792726483284048163367397342745881286626511325264027694045805242251138803110152672784160051563711339743340480820082828805379030988858459605238116406073474532429430881405745534691087119889786712469549266716093645808495042567794176687769223928119307281942478810644631268964156727454505494016765642007608050763290065808083194411334573382431020540741957845123019749674428568135038215691477918299991413888313903941630616794084122845654057883751391387822628113218514196600266337396050370756385331111891748687063554320855344760540466438828331860747764276440304720635510264997401945583294991990560799424808658112706102081206227990557091218592878374571317416504774205503934749475057648299120143094413638746952316910666098021010411658651248828822370056830609420759051649159389868646469067771852701576200619278777967860231489207307818460050973088634757305876694527536033596913670123660830220085172841543664698552858168600323663469721720356064425361951818686287374158137543412735914087634786285016369078951411297961969688789549726057664731388505449736750410974405293732584804241773387854123293274442177965942512041972766470703046595680888531808178610713371021848953477018713589345446695921607575949227226290680513433144028207980956630562404048448889154538413976183879948121158558292853726266704369125047462755928480589878517207043257610485996414758962045111583770603019683725864321764842076136875412830449665998739935257858382669965783999860259758530217701162047669331550063130686762582233237710404424173302602279917706453676582309770935228532621534216282036345432410564779031153731709508396401442277062165935867873509175827447530844374291914612603837264877534486729309712532492893613340330492950283000959988369008995577284167835445253221595120463580735013214259332510475052014193414141952758201402059268992579004779648811051092338130508052537168570947967492562024531653326535815718720137508093765578868175038146989455239650624813491024585047821631086591532270619344564285181994241451199941965767719998554296099796760257072155561977580796967720279654759714597456763283987394547770392555236086299897496627562412095204851283744230394650135388466062295967347903892348844586279244703984762928588018560220755206417482498110286705206484996660911301884133690038024623636694927888922115060339202474383743512843871367151207672268413127655071742583672626501234545529236708400692394646238932056644919798425594424161229316249170965701206116394646940222891642105141498812547086965895060238299819003983058042793297412147012728276202570030559396915379012012575623734004536841225098662860986195540136634184933117693989578026048947476764382201380327345875826571013024389477188946199187053362629605339987515573547413868808934157557367991091501084284992509955392721610959200453299613215102226165051752077168003781786296757834370632315801586555135360979215430989137048116716221720251627037636053611011598314304642694251513893214666764187403864683133749899831960029820462452531676641936750659797383275150948244693729535757863651408070455945743190984721409686480354018837363062449764838727679530278131808007755556413397267546405153756048637214399214564738243048916145101121739574505232415131445367083253204367026707765197679487878897442859764496770355060328097292516162360706003580897386192658805946243449677625722807781727193334630863376179124818929025652032549660875839538042098046724468375422726913346814618814857729330442686501514660394002588852269912756051544738032425093427252061217958218867062973904144780237063091637175877562862752897079575721047139304799885719993002177597675136012462639938313074188544496596892528799581201352965237711910388756262812361128009728251470467389816956456258071490760521225326047571724388785026353040666635808310631202418710855061024951242782287636986024655304558754947923227755107159978421578408738531168409029743081520765254526099749508656129997836245310720672747590646597221646517964899689005982369131686975732417003141364545915042432887780843055193983138766266239438368795889073437901622627764339038735445646112951068864332370226077362724834017264279330434662557873700971800871352460052120427365945491638069048252376968609023862961333208840822392154127490545823410465463302962534072318922336895868154923791215632581844281745677882087902317761353165986899131475467156353219743102422418845498913293243976611424496179948826236952157538747693876551946825163984374270652259255037557633709352300860569268543894986426707060756866467153086398809360926836895428319398610646515347111810070028504073868494549028555881667207084489125333681569132324081675760160450738065682426374073037026666552987196307611961623128905789565190999289081294946661661374568118093857069256765767243724018422760265872358690961519151236724681608840725608040844633238437329277592277673882305629717414786233906794030132427424313624945772911306637592360569691777730449786372493048697721705847793211435680695250867808969950982904533908280924421598078672871962090149407782200445602606458761437048535462403814922161030509422445893486105106353072677871725122320405906854843285585355737987070088398090001286804565114175454328915443733794833437982709329869066824175239213707438675577584546632458101046730119714937999591957486183685370960173852837730583898293718929288644145933482054139238599938962284140484521150083131171481055998868759466633194391482793478955578165606637425665375464181998520473695278075519581655794562762875916325289507350596644244678344436393312081551109992926373218150633774136393720704428960501683733438608666966246510856538091068311088901360458992449378822273276566635725429832758883008211041125688503110668100358580145062975997706548304800882684406912042576065769634469235735303418896009092988711025727317425343646496992065339681175697419077030151615092410217936493058350431881050120795063344701835886125271623125382796155425731372248647764885330988029546910229690842506958047405564006898757845564267764128047791258490526177425390514354487247211416436333996974997448066092946041471654057361046814997674788954416964237840754481056730558368450354547224867429680085744183812152825029528832020174650771860768735012097223639733015347721177317795280272301151057510073412023952549720940534293809211391795659742300574144430790040813176457009272497101086399248582643051741392700070072279463520460331255331351105162193785135513588655064885209861635663838666732878498601895006577269168484936037979000002870126485385275820413101865996321839386306562127857254371416680181728705542588698227070971969888054769341540028964256893504556341244858883685460161292675126120104244961062251768799460062613181304595602723784706063886290948206146901313927450703164888434077320194832925110210035380295102971134653386694649597911614582085333448413896860824511290898338557714273302979323717051466972585804776426820630167642966470328063486497602430666859683652819296287565851430313182869614639236787294522275601071624913758723350013577744430562362404934397981358969450055714975509332494976874727252700565477921616245223975245084203507772208119852857816529859670541246957245767657697355984845668345828502426308837243844802982515984248907910743615900007952828818055225791260216395096782724787380255661630511077712975306061616614718115210957243592841374839654587521531295367315098623405900123145812986043594795089500082409233162666604756932229786215120478735175984564840653716697241707404314564335534919950510925904522701414871660466788515455522285981669674135827825719277358121829523314704862919935073923087237518705836494789319980847437496168834120262319746086820581945392612479198946109007616839569932936921535057326130565098215370295142168274952144545154174774234936851360907957789531877113418451905545320584229667382127181509375407260951041585361826063379743608540787332222551630321134883487536897439886799200716533336385331078352130589429263091899376746652056201547523207479432787188022783828164507640181724481804822690103114064316639768547342871865988574015448958882706214246557367308728789215648655460915186912718120639784758545784830241228050741871922859425672667320792200537322988309728219551266253167100929275458691377290271381854338944497247838103159315430498185218311528272054005566516991117794183412043685544845205070132289285395319041721752645075155886295608124923831542533622490805834871313434646423468325883213812386520180386549200561451303807121399774001800993634383694187028521093609979300749570747738590055342212206637229664866612840184351141604327566775953301283273780827849941457484316882417607513654191059802816427488275975394191988660213882454837401934785775748943196277437603944199379645514290640823462687676837770212931084419459315336194060570354772833981114912617431904590471590784736973365659844268271119939299927795604999097907524551894189061845284098858382748752603876302488982336806410036039725643161033668102654592001669400320408254884619054786772408908810371696619986676146136598484522052006140741828830938472346865982665510093321997414509904512145072908192258740304716180753034907737299450687232839337392339092554523836571004943771519021814114862840141626649445757927674643989450217088386070744671467986757546330283433187567618517153118660824922348522911787983833281439406968246082711908391951358458048012890640093514503017285477351384200974742542238229054850488839854508417104827444126350506037992767512424376625673988588797667073073872928910504516559176457357497193387029203971054416751303569792416812578771990999781519060013897926908902719205681684461233865043199130414702607437100654588340404511396336598892705566649862337471305701067496376905436657678444574194113189986619361624811526959407631509305582176564678320077666101964832498051011170879326708563934465973631118345990224749178151202439269067559612353437880669463184172561358770614924148891637005056493594507569406280718070520170615792780707473156858473216176136633259579559858225829158174266254282176531650727099662579765343361966458506814353045010180119833988486446334347262626830544501199659264939407766818592984786196635878500389583196624571276578430256344716049895791246209715814292341646105405363791768966705474377848083127625712250028227476396544754450082882043686366702281184143167153985814005267113515306382135919283822220997737187116604889717563248385745747321247000829767464788673179160982733894201685013935673916405212401682744200953001896560844439960142798345193900634476727448941350449405217150786376332568762161127219896427354985704705839819047839823833192173435931821809564464516854781594317099061807238359636807902988688550342626944355151684006712195298609812403014564792332690537642394014706165987893816083678655513904520364903636043994047764085106113120643403712169907950825626396651873122225181128062567191717053580543745236361333179904917599078812584250450553071850798043398275471278830293893460946325335195874047589101913818460960681422221827174883985019767844859065900666414526911670379131092570254365571990061105855682425403949587667198174753264344849350696391986595968193336054918569784127144756778613713472792694069287526000129129135096745195985995965180668870568885894045661797762559490058800726331996930639315361854529778410423769387068138399293386222262071575205420574345069769970077811439402074606895085756179347322763426639405975380035740684931605580745506379216858007131748577209385349233037650898392531829051499162686198153904673667607461152303381851159317601540782203539374751686271632437190804436159124548549354796501343761101679772987322060802705543433464435590582866030806579956351594816553630874939517157032780277780672908901572868143601850941199027341036741283581044075140909676933533459177941847147451020322903778800574400251776392620431993402771637918228994506674008293352452239919460477253384455059540357301360300713928627431477197677662290428677714772248968935358304228859990915828730941846077749719326343693183053524875542648189052218802196459429474789515659540535873666768898436747241373913789109334801234295604615062160563459802129577822230494225703950392100858422310223944796029599357337385532010704875517721707796956525570964164858087704552021518641097457297840754875047642892752260812680285578726232084520215364660774543503097139982723971401820987375729428836535039054446829939588407494245156400837688400818888262084396510183801442023470541497460133294175497857984129375130268444838696402510912197043295296929997645007169421341902541423888369027153954778654090270453637782576358575302402958896742003307682542854474253544297938504461546842250828550188328605808116174785328974667897652842702806385355737664064357199984452930687248029251429367086719697306699328901275187163857688649202488592362415139413648906642455178979970358149032517216829717170664297978776049615990110427141306362261332010694143463896668997137458398545819593676875975400326604946789668155265288807341564580357700866985441368005443801272180419070885519361802543040940644184351607274823411300164468523374121228761713659262053612714420506811295199041256219460288689490612894569581399701193932757335505548639622984730130249489789836537612335509139806469820483944095741436451072376397603070501797147917897438789616995679923310136490393646491569546795920431798617745168412771256690570645952145289887978017685262771118083601017205878457615841134592570639983025285037011112636572974659896082457600185703703452487078247168792587037207540379592267849555120983030088015278467004692741170719277347413982935363368998135650965465398738654168357821227730753208488837736812775582416862293626782091800934113798369346222169532537984920398476912706939101411876372032721113622962771374255624672724147386579252637879034103427347598016198681319444407696347964975495011374845317679535880545817922627125736336783593387982057622144719956547126030004693193257525704948872371627934944134141951551557824062066773781802753818743011256481984739214779448758806302670510643355541410488133187069568348017712785867003551071572248030053207833072878724317362437543653324477806237534953114638075326714317179532884316865098157300632376541145883176621550539794880865608395304185425116751562844943598355557372354305916440662114500043686996664050630505516889679989993424746806139756714899288098954577655943184938136225311123226396482457547683728821082509106195365286495865406568578261898130411030738928399656829277202044398133197071076822024438419385341812795303069383117522158479452786050537051257031868425308995164766898976210221626913233720818469550473163762832850895758957695645186503379765093312745996622751268219652900854602711466638803338065253871037008424611356753292581779697183563463539717908125714161269327301857545766209748107191401445576343463398482880637307235993569628049438631767663342939167412259847450364617668990555638266541265408408794382694544070485388318341520401645837094506841827933853468739215832485681052478851507245560338010411769672710566480211309076278880749539256071977359231162792658105490137590305437409744940088685418895939041881176598504815713459417063515118651123522079083392106032343603920908319814263560658742514332008399935338115983431039515106155350771983762345247873892321625382485563517761163574226698513546584122594394952851849045915825032892951706208585467080533531855877250020202733474361851312001980993163789947863878294200355426271255691476690677995152801120415224469412304629399714023964900267402740457595722777793048971803736314180614493356551945003209366399287261933493634812135266084275973351185131690698818824924563473127830374356733347703348626841238010616214354844412298626454726857376976051950855966407918166551199307730501304165027473233467363989425736476882331805313704783282032107953461462921249360709620540754958866816992264750863816439625546756401112472691587964280468133074642787697221214258055927077724453735090723720345825810927766412930508147245271769292528690623009862175607457916024988751659027781477203842639772743795515457859937287753701122557683161654845960207886051467855888898623396519654742527733845258481303918090789682376876834431909868768032766796519487727168462646311929699598487869381516804049645983735611970475703372029942288010755388731419668828473591880881087061143545329643432565618957329481931409808302459351736579077749087335349959345580665035034009894833372934056568687491137738536630355544948502364239389996704455276987832418502916494421749124451748150496601288497862466386031773257675090089850353118572362110272341636679985186466847578336786887451892769289064008880124995962293006566611098401878044509677744736251823198635722681967537294564232931456874058813204398284875975970651187266359735829540361049842305855499862369774101471254754520794178461447927014800093441583165616229159712438802241113481272787519031139934129523627503829280204333030848264466550638665656712148375483192152984915354978350719709921606321611480391479025128900977911611761027581636407554806795723395262503633331115976626865863082992590089252978489829850299502289666514620575258866444124385743961783253324196327706238917553161729203622591980018349774221787570292850788744075645323732118395523721276916911029852973633576824508572972126925586002210767211018302703704198501527554541366778987626701660485932391044962843485963082869599015768699937024726414404876633657023152923000468797878052948409304925370408835647689065669943669934343904800929888074883761874461589600273899494683374608611845210024677031439585781444637042446722724718353075053572442033829644932431280049280057731908685248621904330985539911739511474715247492948981139095378494885949593182311529130385722164326435706693273452005639346720078069010161558642145842597863948301116032304586827481379094826858806178825090731604900549714797357492677484008600001631184875410627945990726796766595338989830087134238668599202245940994418235507384358988886870928344661795469648081748066562300574926924343551021182279012171867355975847120097855102050339572939001091893546604510207113754721436870203886087118478389405941356328169199306517257499853579572417301052239938957873478209881845221996325641941394479484672812137556453733477193367744478136837080251051576655810777441137142785459094216258110628974064424826526766899925327690235938280062042820041680626086530320453185281836179419041973994419460493498668355604545599148750451357637827822151460317358355458756739212960045801922297782857885198669303642219868840133888207680095835338366311020149601486372877431655797773678379841140804105852252523888357615830483934568940136219660415928599913975374414186948519249351181791214204992349362458158334813283412948467466505684977108127973567361155305983212590008198681574509184157579451418311405673405540416308138694991525863638151538810760139835035545702055178772135969771602480447124009864364804798306427258946963610342779504307358875427697724318918056410540127240853938851452442647725487631655208535179490407373833727624058810983300510772057237162685067126650323913475306702017342484925469868195702171846167406362697268324380330146094942885868999626387560709354418070412390399558840429655460262938870375012073642212518573165463414738474673213309039594931134813884738686521098869046959001244506907980710746017479809039992575061135626555120369463094283998875737656233624230458274129703078817304956332583364825175243020953715567255077447516758727180946960250239720892476406682934891538141693793792875964865443943247128970907341392829130853820730301636334729812744138246589286192981513425423595130693452373546945647712187113523557735069129129655051873689753839820086918291853249531960337565872510272955870431846615596461913442378786897759505953341722476234858706648361061060289104918953558438398835406430820944904071724033601875139293228096209600109998244488641933028454016082540608988847170548520235854723748015207652854563570320047718705769327555334771692833019464476655027574989359236698425385182427215800323812892664926645763316262792725211837803873491669787471087597516528506484138152685133141629525314895375313117383001752254624566885006102611941463820641753878951811731498559299906868004689242102406378336751941811093213419398886555446329155043219454473926767675626904758866306582975801943597842021478471460161295603069919088236566839863040549440959777561879567723173278803350296641249503782307748611098276261273024980606609143093424798906710844427596569183959831613376504004774018626615046378098725508184524849968645932027308031631380636992066872181793283968286806342290846323303358704889464751507223430894078971220694625517010273613816282167117211337492950750448711519536414401641118782213097601054423418543887428673020388223239043866726543134487704226914404709979456579130104146004708723364106598153873593868486188882375827629785228301391746357250065500043281050633593649034726397325935110616216711126316064923061979039992000466919740543477556599605205421023825320011611190796542347652670482353886557286086781873243277801408086309963043371371308263289866871190733801500448571374494317215392889469406762222958781959591755648160894906151459242880718971025093077716628539898142173371245244764133025291669991052448519110216390032494923250129380564364692507446652297732641499423170559738944454875637342612333670840714790640044831287877313585130502085141431192493071351915541042358909105028251371169092700054144549885738722788712450462239457328720112993851013987322096482539390533586036963350511546195795540598868193432669413497524183489877650994068300402391919707095794521458971901156135552675006851010727530687500579901936495073959220563341468725644186243734225402024772455174277388493384181548456279778338567092170188746214852164115557134077886171833008703736631237413991972221585694430748383123504731815876466346331700150585016801011163756229664236300514740933783935811448540226975962017541600725698780993219789889625561232578473719967622688060301064994989019016924649640853006742276591905866055076390527702363610409728844603624596867044098337768578292363623997544857895835793228208216841344268134421050104828553086914467741232377191152485022371575859916339305566030058956855268854704736282476510695899831690403666303043715211796350531452862534628383719839646646227306878214939371558070393004914309810763981166650642247607345585848431586193511801456201244528243202607544780274038646806366430687355057769018314455519683517578801338798613323795761087337969978197850697300952551632909851169314082973907335266262163743585765285688796463617759669296234798685279421001079341404601024470455736891801156762174252231801704942338116899800463486189151388427026101007597400360142332411087113987987753779689063698536635354980215491677687462580267516144902149694546580846752737535640170379918019820522812005988172076007662206423016245505604408658984495399242756750352887652802013554534709610906781669501009036801881158573202651654660580764562945221688670507333217954644267806535420749164137210089975899592308563303475837504032095615184482549497969715323872718459982801227886896509741587334946362393510319019536625728412876370087036513411570563528248625161780781808647921737567921000366306147622227421720960900696574869468268947125795847034890057964009020492586319204450785194738344887429015944323247501013122120343287764176871491485347405808810128485702096093075711738936352464513725555734479398224320734971911493777194054822539471392378933188951702949386776877995424270534911548206281216863807975890529493769760398009808596537109355733949714521794426145575207928277757527631610459041960091654705601070912177115137469563806091923179981768526451210902428203498978510511178935252160471779141572629120759492793870534273739855913318277165204277767997976684840758859920945198789418314944582822953117893834331303796902886322725867844894798937900756144433461189413054594374912120340508885209141258150256862902111513683696425005695880802861886712074298603909085022657726717030766208623990957356621030568878809638043976575308989135020145165140022558118501973087903143838074396195251643212902000723490230045890301040038234273545661087653709079101022467392653244420259690066193574630015735568938696432849431770041355868273439044746229646969784117902481258639465128279905591609180454700009969716032243443716443514378034966066947714186034235188538973866937124169422435492536245976924903709402358999757365919534544338680070788978964639842072233109114611237007886049581501713997811616465918503650543479115245465836369832723670358992909723250163011301607012955266306847377771266395605291149361860380695740254716485230856304935150458670283967733871309275409206444607407474228834951297904459856875421203460315117691326014990074244714215186333294984795723489516707552290963713037925189068860278666357564215953263288173583870430240867190914140147996081657566410760603085081764579321783777688557501527439905662200672985373609317122391512232760251223354229458411161015979037654738810829352582550921986333076159543782182524057742187643132662092816487220848106142179312374398505374969252438876641189489207562634451981531700015063717405160519402325522686998657953664320530654831756324096042857838832419040121810274375328541468102815940553199309799189821204585276932127652027266658727501117099435015447355454910743167915028606515788697867572301309962005114956858758392801158351548555499852423884506206506578760362760585160242729332188559446280209071843129273404317600624986898778669837716375883602641190459235448583777428216913010674949164791640510140628514225259297547361462152070987504969686583608277745834893587424113348566821463658815633471569225777901972870696976220948056747831687972190730668384007558364830206982425093141162675996114696864471423052047742538996948004746693998249936097362180570029136439550972380446584072457432524157937444879556365210045619458697590878235372074819125473792230340673650212397165812762143501961006048011216156776007365189575300999344917053848127168179196755241832593955162620496456643750850484263491598327787922469107656721300818311211386729434320591155465206018600495640162689426414219286111469331504650172010121340149020390459603942877800108110070038564321815166870531191144391148916400855368341387541598265034596766538857905944408961118926709606162024564749362097235010469067678625955581018331894904065221203945782808859834107690656906842767172934766245777519930851442026954647943811320539811662730807055019106363904150727557181113944599898541009336230779209194317519442167152739113718232663742018841703597143432351705116417000182422813195305075003524297705782026819120963587079126229096984557809995219959121636513710320277022775367524881109617012670051504757057795730990153117517980899949291621726321294746846643278885879043341999888056503968357385477797522548207214040868457979409461692977997380922494226139664671766952076148127704853635224641303189852691654457376593375165217194941773858079246980741268407667641376758491827009848017354848638962620938544440616610190496672312104898342849150937666733477304811597430270885709155005697733224567007213223613525752285166854591493845962359798755512608958359628343036458983219403736298186682305260507891017806745656942937479623679674343294292993624072683517636806964439976566901938905002517738343932935988899705333953966589390687988484718366316920120846276948844890366640555057905574166196018047398857186452893092981274117623106320321800872480103561884134234292165963638346411647215861630496061516999500516495000083975438474993671879503654556138628314179897292705960789148412770594961572323229559064207488808217661764874812302417117201492337518079073137563813883521327483864428154475906257963976677913361428642150478816948636704169043342602805484206696714312596145444643955728131275443288546671490390279225214193247461638149704614646347955875246962102172871039220304684724784536990544093611608212854936209050824423420818898544801972665136665950100452823623417556100372497730075448342257595871359462450082382267268533238578251717810162578197476170016194684747737706348929634238540377207263118397192289595402067371521033632484220255203002954128848322056866267196554741508203219656328066640677443888468869569055703409774891471463760326657288263862385865687798167930934279278739681385405493301582885242482043643637080007749145425687004238470744222893128545487614637659851231294807404265365969840451640311987350585874100380101072768091413799688803373328530130542682653663679155808039311787080561825287097960899463189182544566616815251797291828036335343159362711986489722005482826479076700817398506946848823463209009165110958779326336357501061523310935778212107999453021466933933438674721018066372575903653200961704803412814412364889043438313666945192177105629025679991543738175118567285286185944957468625073825190612941737717498989008653549121557142366360707140632604120884221735280773509288449322966765842218713016670361035048266639433930105028558915368489108078420899695860479516873819842483155246444601900009089854610979706778488108280102550445451216362935630173969723015352515917273026437294217387006334616494602562773517470370376863434257438680173544828223108549993973743277119331541229840895956616725061325997235583925743199150527529735919913200523899980610022599137652508486322141718249850413200095181830645231041328747262984230166799246506794921077198511617690661208449001256356184411295383581159414343478039703446997702882085743614348576605771337894751703148986563427615007234408893678803553637254313336865446108702005976937280198889408410448523007684847142271326949319991107371420232461963512559594403293474158023642060733210092416061469713724428734458831387957674230024525760743170666628442430256279768191779078039444500281354642650265526776945915342262243522322650302616812056307540204064969290238392727515162975255326564461658402880204644910285833200545001431180419846135103426505659838734812635720532747916770934730324329502752855774132339394887895984906731760396757884887242197852142242199934874481322629555503266586083843236401093488781441858806214755247700152522066140783891512039554370500547118827387417136854314264101447764415880306979370480071406861074856590977410788960921685288610701668875127704379825301940385310385551524094273071844267814982255855513887144338291263001509550864314632391438526898088595272527617316380032074066614271682695254115306995252977367861649357449939857358375899206080890369731656594661218242788877556254970859703051250227117070162153589071980058705501677260032940142868855894655012226998021236365109340834573382919017229408191945216271772679846307041154594607313373531679304894169068881296969448386960820548356460314189475176988237035117585241579548684782761563908599467579525485359575798926892417300338120981195455868662429472155046500771321349607589381487920706394205192164625169367460157404060522398537341217170566162221627545683440816913904081291947428942069427880863341909136427179830987415756639295634358541613289862707007247456072764920212506947491624632130410665849149129473915902355218089259374958078718875823523785663404779394659878712066978633225126622061929818306201173038026264751633763317594099798992804696734488219577186372035367181986576081936811843243927402113595024821516701856586891497623517335809473837181901916948446428317502908199687285341575673121062138242227776309166930640642360236017544268784760951014908008360604705721602778305798644092206815333038675721309513525348147213115651178059857983333230119722714917595228796061617002394441319858154396851579343133992709269575967898100738704258479898113401943874997292382819373331242114021356379124223025233856820127135663214462908909304688700018934301015342295907017752315036070516554400449587615394736255755467210954870497445721272773082619295129163948649347467077800561145576293230335235362300767797828033770299423938560969378092727905204238594337089360286073961392354845550266117524997921830662669424942748849702252825404858435337868056904323095635559598142000120918297262193588311331540545035280780528889493836451341460914259972717708815248854822094357378917192728539131911523285605668757090451939339578314830374492530812114357476237732734705438458966977605270970260349799755333815940954429744867555642777864054750635335199399946862101421192538244505030731577399877155772700658246750164624321774210192874670982492752417124860749197822452522124218379427448943404259114809746965917608307482914044719929506745246881600395404475054098046679885909114942180033220102127224066544843425327154062318890906597381269969524125680693986806731220385282501750875362148631296973607843427094160822974255117878102094462245444503624214830506375361265770323551814740899558657462184629443434833393924631203705706772698817106259422448682736348510559100951570956638159749724830771471647566446053772258648977685745865941840147450386405882242934169595615386088731448145431045317214021310802055005131208099858589067865406424055437427952857144598991147840656006900239097375775548339663238830143590188889797692027134795780128000496546206324005524092808158102245880960613041991018080705254235308791133902828391243057069659139259362044762802427876988868529778719145735787417184597700375563400943577257971423426622638401283669970224265731497529046284260807728425720622185951945600315874396402997379470419188998479403798150816301928364189203194650111196483321134030926521699683834386295655949993220721805191290262189196925187492375524722220337016211848471780691580212586700108944172769375909008013366774085986784734389699126867011263449277271966395206510673562137038832858831839078302568294683975681964333282615844736977583577715118954178867653523989870148888174511168190104193188419348458327779411638090274750418793894743246726988070380986836774975102331260231613832993417416776347406532208177711451935400709599506933474994455053517025279206351598317501642050989383272113139493346757638863199821362346439660343359074883974118049276639154536110184188771149880281256734696915453257462600637946640185181950813027590182369598269393378932498796491048172543358395603493582905331905186653476277807314179979263361785799744139039893273936691080075139667979655589471476931647016664620741305974684887596242952208290870195440675824393358172432058375123857537803938639547243350143628255652725396002917592032809993767851645360501381611128782653394801238398522369122122723456344092290358875968130873986973703275272854896448338695452121955507991576557404401404243803970060851994503395369947051231049295366961742600621784981072526005331014608247942914461488479005218852705792688176935424842859443580490013834708733028402993531056099667288113322520200097049799567058905020143019597924524864715332316295309897726165865099115658350194310189364185451468138717386497592035811960197645606412604686535455258822881398055401721969295369711368270364783249156827353688091242854109218171085764613265707860148403350133541487506338616087806055039704131712292671214963926615417230504704674571451384462154552301697407268507334955277159185684517883108435751981608129495782354187773345748756316144916610726569637206854046225177950385805064095164432214757060810510873028805131041722010027175644927419812860693152991480777526593792359902768488023991086494809719155282025844121601402073033578117510330951528434519228476590176564125305297767516845249962869028584222462384641749749678856745639150720896013362924722036941185746743167825184406066578963390842963493455852333952367391662873176323130596552001652300920660824181539769334691234106659831227920669135846395659189432549881737143423801502552939465736484501163354852975735388727237772993977876277174314280245917246215927749976377459332255974988554579919043614194872847065261770550031942283801489944802651561971849727671325397841653820775274339029663917508850505429817944106070093460098926653648273921519090378593235420196449217449948795523975820173456175712500157452045218213138097967900177839161681776951943922802415084875541442036828352576683421460282306367458877316275707258295441814653834853160216601232172412377772930544851822295358186166294037936098815536320089836939334972470882807500379228812047126213700254388657311907076685931181623675558518613968609136113019268522185298439326044537579626723657842948039141520774324499388823275531287767061387055306508536149126235117544726926137333303556721014762447182416835723558501372952479497216609657558949893458176217071358010963526760991470812951918167204473480092929135827368096768496453945632296178927527509640779106446092891743408002325868541956145181041906460182486494851257056229137033084076575156021625381040031245631190616214619897245437124197517927633310212361896340563246978892027302795594443159841271456427787378148828298032915303584941636742400150421801314020692481075016632741594972193140356455164524963654817903489636407704931745196972920557261394471501082285094371831072489728956844595597771443778795848603121552568873700105550621241890116169389426218698175563371039162606063453995955212680084888363370172565364549550959477934195459991734003160792003913471933387389592279659010163908913020355781338157105030039662816727144224116257815995524075122075047672091182958630179534082627695324612567513305093642938867712500711453466890309794012451893544294433396474746893142179215610388488947031800533516122501535309800298659062940966119574830180782836769447368100060883471069395107735953544420847451073130676844829964995062049433238801023380992314506179377835208936717130926911665078915298942083354757639328039533448706831764753370294832100611257107533051332269893893092752487966665516985874178308767142345502028998140691905992396835199902434783519879666821538543460004058973647978246260581844702569870519129837795550823208498828943061449126286285325647127318816112166403125917832595303992420835135582996908492654392206298827784102013842008162494368008140876942171027483591855964483916057539252736615213855791256445975298843848999514122927352933595335562998626484366325361306121293950289421559969639683498617610880736377317968321688414940625791542417282710355703075230848143960279548223929523152403041454199349576647341378579184399762365200027186709470145198241380506913912845498805432001028551782848240743916865995096505545614541743413136049679770476884144937868559219618958789868117186873573306642860969599081349693236309613216255389937167503244936911996197537197793797112878819512410046840001129849222622940223991038856273381054706727084048517988540378522303735668044263829887790048627805426052552770550500106903077901706507448172815007251212963998664247451594678817453887740321688081331301214781566161177323477667121627085935656418026489948277655598303048918794076974710488030237830881844873232745961125010956882929005439606544514969538882798537545542825329367155220760609811219624909398216661382240567672305018935660967947430000468274155407992903143841998165076759158741749451341280868661271943504156016460329247494231950992220922055422249798290879952034301601562060822407157907595638867578451020890770844098797391965954279586453222081981610343781667034079594667577279262757507766883680705791964866533160941875721193699032172744555304538222833800507586178353129761196801079707683162784985682280417369203815201792505172100488252480135263535718719848610473206543882756157477555355242165802069913714056172920522193745477722883611609585466337831916635642545720136963595188180440192091499638987177237062455222883021923487045095740590228752304138056425568277968917476375624870928393651201660496555410737972470036978571325596430976533619732502421508793230371288555628505503599741917035195092822160867919598449964742919593472525069854758470811744220561758409565247136210555471658384794689644036585341770173924014961765923175955048878019244393469577314533742288572955162123048802238751521229530575604779981291018806161402297459487853919895106301313354391142837327490262755319954603309272375773812825320717954837617442304778135875796165536434496417009411686767778496419692356777967156775624060392501067517637257212993774332843015465653325716997381548658459823181762791206374316272494551683238086981854664955288321195985233323025872854287656595625314495028144230990786775664387185515907892120110527246654131546597270469846173502479548027799374796967515527943749234220481639316858735628328234676961495114728913892390887431277885840348657506478982513893253862130720214133723134964367204668186997350976894766557288116905782314312947657993867409107034028730528803794102017686761720725124115148040338598929437141496409415049291075863213634297394106000290566674878176113411067631457972930168291812456145054823651780029177855353175731027932064152891809411870373483866040697816117221926877941819457089940211148921864277211428038647307394344585866295568259065020360170397945217695385140390264679435909130456258347904885926045995143789953241327048553632609397371650801328433341530304221822232986414580620128216401100695488127800622884678073085589808179088657524011426563902103018466739836096410613351934419414261992270799884579467172250051963720403564928505800878811422145562881840389049080253378572146746376516862416187096134562654815579998166737578904139564684738388009543076196235417514441745039027151534811609734174477410690607522323144837767250954268679205757658237547191933096244504815748152441878418748486096653383609344666315801205323037291323223246773919584422454086327260736696719622454972053597344651582470898074585675818322514784050090475022975967309020205309575016773379169673726257290103264533552415424587897703065969322901760349530041980366784851353730251947370803630491323030048998074817973977040319807988358256874063648834649803237600720583427782808129827372970308420119442482632764956173369818630774643217164891332689450381276051562202479100658843137664892449605624769082848395690695895932882977476922358570074117576940343053360854486576002365053656898441630243806320337072153100418850115252908137150772274561718724337614500300737520734621082236663307243266210567729210171420483086737758959913326570314233296153506107110236869106372323936446250409190358746173781783293395823792971028654335266149115402113289261394707893698793911368235211295282656594813264014669355761686235604393723649630402767388948352043310086018489790857905930435979310342301248552061649440849739210504910892301298001506249546561353816232909828952436871644776781233370706749034166201430315858102712000771317985228464515764833671241794501476609348219941320154782212761451938894720223480831768568129763899418549017596465041366933437907747792939479638695820318113064646305438370546312385484893249707261553533554491769711431490711890716320430821284936163789725607624877053435027260161884439361209792366247929069262242596380966990850699500579320526812120785090911578903395701081465157559624582844826611824521042755432906339066055027491734242638632011377381111738383825195475769785459708190446218697928400976842723364473513852820848225449197084434068174693674387665504143803882819339184906160991244238282400545212349604365902876124031318181197464803100772382139041537506238522129378328824953875832296376202650717536652564889061666035479938113622894140365372771981123774570703545722524402260181734833136800975235961757977226783658066570170729156494481318473076045481324432991168737642745612926339047834969533425890261455289922897845874286886871208005786698621032861311729559509623797671887721302154500744954718968807422772874200986673692195649340479778267145474423691278096021668737358545839742180439826180350331151323754165685955337905698846630469347943050329608704588132717225476585152840782638588156156865584222548540440738879504152719272301733201616365303235777886761672272313921071119262737899955819240775498798292222879919217968020575185068229770555899469609093993134966456490129495222895568273668784500044917904045442520021574758010158406258439703529075031170860756945209154801757076466871478462375124393516429481265177316233761074075144226015962333511675474741519048917603495321030933318763878480233884344633927282133150852943165197151962795053255992512444246804182282907640284426117298159646780043969895661678743319619992431936000734732720631092997041911526948818754453584496560435860588129355602763308285643879083897911271850841603751044273317231437240195102033667908367707128931632627949622395392400166771475706083473376910227554315791707171171170736347286084937164827934337525950224824038167089714914256858411380986213062156222075658643754909886273568713751280422549849744475898991699668020592738749889843011078760223312333059112693816622814482543238845673604010462129852377465724688259811623427956930361681459537908873977633054683563918094290349785174732838466810304545186107011300159975816750599952461155179788560903124950745607704757149351367548854161958413499368772914329851122424483367747719594607897984566533908661403003294949322809283069969313475569829056624339138989360666897843567329271085462893082735548105292204705732883799846478909733578850850784340994786592685733739447560103354715998465153720811681184557960865952437713781429052697015931478920074569264924665405358422047861223277805612136308499930993921287888094383271229134662647315307006677930089326542807584855378417718417294650647046950864997179876569751007558523077439800035306515623449850761827741062079088678432859910454764041649291853834369985605816453624679312945751469255214882850475097929240134371907396547747704454585394298959701724299373071091963711021039371927840388807274033541858198540270669535347947585935621562755152847651778156790807172195152792928655663443353233913260140314941634961747864881708446660609750804059643653410700806161462830594733163814114691098530992785237631301563587996225719450895279312025318985472674782430749488270639147473605721724994864301083238896181084637069878093101510331603291338259175134152337419735348140725096131915003042110968024248833631583132465287663047967920240427852084491924092723148503590354262204615850286661395375719124584409064928011174043200329741459448573203489652138765226880179087862811849327422969356448387753029327131354874315818927107646231321075626024328958708359251107233395121413191190372946027498409600034212494337102170324626050368684133772166341101994743374632880372976635160932896772599667194152847351329348638891880116684226505252447683891847634842488171742491058304162883037412929973397191499119301544442454461311682889873347359228226488715707006054885551090402712560056677823254572378836350828302153206378305782235436242752497952968099883812558536826249475977779790087343346923838553186567557454629073092134148063815180707979477477599310984946744672004957439019579300901657530063833224200513549133493786299054171488499512330204201240019241189264466066716319287795759472445924872703214853330280825279981910140003174621321166970820533383900104648619940036267007954742422326106025192898318849244790581214713133014104378348328660126659953405220163040045115551639852694219963096413130944024450414407235611400582734844500123178473480659598668156590173196804211055331990123143194704615759227176653958829278025825837813715249488851420007444860853263417185310254895401145709396181311354326976851978441915122344460718334080198873270738286345884967350346898687866942312354179278861626183593594540158953678327907405838728889606786757313788453075684747498864683627842737671377259206207709394191583729892488999736696434855916285979258110271218836895582171167200573941136467194194624722953285918809891072570557221839809283389305598068764376963685865036049478598785799407686978416784942145931045624568895703572159270354510154900646127287204983768861098759110664003712864606362381156168843015840038457510082730793182245994012078722033607425307872268762686025871600948260718436927876471149842138508876215332971397902582975208988239120881493095429720544878512274389467914397444528961608463969408855537738912431295455190209349419791884219496553962490648068639160268812728318966966327253999023021930771139459868094831836815478760816656728653870092607653361341835384962490276271539617094381420430938660173702762642653815673154073848531131126070565150100923629556409926314038280160614569421040575640224831727669440121519604860860670372280578184340227875458176197251782454133169060247977881296418320332529963278529686398540141176728986756918260380736106156793751969147945327942241137053980812286105795901163112002361147029092620806314914529907082348151969261695677882074630785526203922048702807096370649762042276630924549207593466124177769015100103040809404278385720931714492476863925230842413857302075489908394489402612722663983422461598101655551675297410018507811264136440128624677671973675900135353375438951634571988278337515393737196577086689738363395123252080856881537433990203179027346216002387821083787399879690036039910649359638490203898114218152135852158371490440152130802679107627495396760135074772905453271963560275273227225722217323486146998152827677451394871219660438592183076554161142874590300525570473815647348727640663744921834080824932741278246746035327478903308876714068908392402552966288707405924110041104569796012291766085459899698038776832790586212522546222231919328525094777607925566187803996101530656388614714389817959835973187180517531295103676031996653130268840456518126996189084599177894056990044507349463440873225651489878890960757359709376419394743720106361486959153247392429612528470737804929390001183880862362148856971332149732482741221917410950179872147657639603421176171540702738298364860225312402640650437597709045883274242850390225524182223676230719967528245547665469106314910014230971240907338966997381091384071680195948267860330083793943131073967074453431968040383727306276641614413185652772239539660077155380056170445850538657987027731662916865734132955749646874426119881319271313296587171130070094529523627831760124175659083152614793164879629769020673416304143247830059102376734926103310430841361315585958077849616730164004077390638017393052394632194845014086085250009634971774932683843714933265789804731720620640766313952141868105696194220242355194524704420728417709406970857056658754044347630954459137665471256612243697791092888090017660712610052155248992461471992199259841680975350067992285438453579483438776463014711401946954143242711048149929964041745527195328599321130457605757380330969693425373817156874316020890618355830417956675801916418282746298702417590951073941507698286208441356683714784973619409004143864952076160800807294623734011528414223410358383937869189881020120059090420411542937576086409976581437036443933555277222587620230301117691230703487181800139240019621075712392639186566541644532056987101151542080409135409516266004756185880455478525928495147138400014166786151005333367694525306423221924473638715272304481411200036476453659088144074027923994661817331414568476671293269537097420867186750744786430265273805103315587458675218259802867524904469343342264669780768829442245753622540598222146672266332058049500101945509715412061565795005545561648110611128361608604346543323056112173147014497137937974098225185087128989479984247216727244714557632564405750520873716929305840993160667667097801111357152217288316076508267376268853873285900986546228866576477241840827615131153154828070832945892155479928526424756269233077344706382563455695055616574722190302426635656152182758116729073052205263238741552411309332797054866583106722495116355018166334180305706634494102013583224826346263957642395612569749319562499120592537127464599783432741519360236540293855362322365259029347969444203201862060138091722257394003578744031763371552802345943631677566145734215183706329353502278799447827313105879373594301807306783631058001843156624088953324299117057305234672882036236793410823648047887851480322793656506941832276225578871661110646837678981599654093597774176572762109101049539194288584103358568614358365839450125681175025899381630456093506578513441085111640654308533577184367255769286197765472437012008652316743587566339470207814299629156872631678886705632968418921566040546178503967832094400904651273962259510954184036932767325829800664330821925228730626857824990769412772598910079785021086976543100154646736200823994261855274326839160283717176328581982234572915874149534595239492111629652001117401531180118051115900996646879724325955019769780997154621153307591442512547936327841221204130151729004428426686752770435836534879341365551121336859501469724013913540492477726098851986914215845928501202518893445424596638623253250149699979467659729311538823748436968399545002426356959742268621631376663301499716772414406660722994541431848054587336727224256626933516250541186432969526195612312275537046836989381594557052752884210102548638275182955143347173974914874644586091216103114036795319483362669369717270250955771141879343666487794619546841527410292654954072283988115965218689583522440037630656056368680767783070290077156066272891815714155394680580429068525031418662699373325180876122778560083892637577485986410471563444306224947703399777902310997212782956595610897574188672440663659796042769007576115505540707276189979754293314729715984263899015515354762403101655489488605404193108481588608037592565733221014101030675481455029418270149384483855266569702642690532623638179820949868323345250170961114796948058155172405805269426044451271601265429717085040136857064784572031098533573697244006467803451746654548724904055334597689339890817257911884602109634655920666845331962266603140730229646938941176205067077120277967927102916092051366326263636271059590130789930789317344544351280478381390978760690666459907487349408263515247831986041147648588719158935757158052426098478922746196879524991935290913323746608425947614868364215242604025515734440983408728454449368824738124814314650110256455582821223640855064472741603009945567337652140850620577890286562081825875571095158402319420263251073314268036479181103035439437582578985888779606745940094793845842914990430544951106930694235437243478525989026263200598908866713892774974858809427507502101880809515047051621626893569311662267431419118936243898977105877627090054303046991494939571109384357938043799230773389563679632159065131951570737788558326258227567658659349596426996479543797289493822912109128900140480167993416250008395406548499849001397261558257991354523456687161537185541159887233718560155354785997051002493518704182992145506762714478382279743827497315248556920796806276279035285607120401404991315138051954227249447782694436226838565149724050065406307655822982942843742840936804424593077274567669868478499576232873483760556468503516112164577573273524573089281146190083005755713131232615248872924701597459414460407918980534444722876504682435826509136721193062860644648023758308684505187233905049842749934157717043962458841003334515874184829266720943468973222299404798362553555314694461747895348143081237979696476587322494562634567734274655348454692464454928569949078806928656100443488004107343756758827942656375126028686327893113030184741956317592888235903165276886350126541182238365640869284188305599593558304212350811913627406159407197089652818045292599530315309208880782354317083465889702826984643576580144135219695403526042713363885049483955109412883203865303346430426204865900598469160026906094326521340331097613650184093650922858417013426405674107341807937635550912795202419163440836126890417954957260103005888611590900041325497922688643116759436291198378425968772825013959720493639374033483633244941988250687560245589499584910131783637689367984796277417065710796417624874257314739774523603821238533454438966927362489290511288920772771363951278151632801499888004299961935788463225119999025308347133666473704294782977276056225698540286157321659535842708028921130908133192448627143667744427803952089338753859812768022193919212721626732241175755089158668976230432739326156820996973532898107802856542701276296655367061917664862503023155352632281979197839777632855404001059319195561838078209024181895349379671876952040028376890397358091256175236056481532817955049348914786574974721116985808196844977270856560394736775548838456429763642150272060901270397826584923558900661207958604300242394575969638095032196694770074182022960598348362958581518091416477658017708769403403301212579674850949367862460152562080013849325462007351904801157763488743553782920324254847862736806324221308220661104235926116672615425793780826818482774341797687754455164212727992626949634713163384115465681181586047822210846648842467658145077981524038520038869101565624205937948175548324604711843418067092349312263553706267386572809195872708660162182692712416522694761445222730529198191560152758255209629343127568737726410345775001613525692362619010595495336875777726472882661720330678683270037245808188224694883626736535880638719455050573251212059108785122928616657137670962556169081671251503022458349334582920711041260121965723862755233508065174797404870512187653710015160965248608318915159091364873417434526877981770310414813033645193327547305713203549956666867689547521303052500035172975144454287445386369589768617556368410813189235957295541790527990135980733205396213928435858018685779975616664338178864130049107106626139618809414525460358135918481697642808622030894763970732508857008287865730301100092971458379594459464731473933330410601082016729807000185748370367054966425495302884951972630381091689454821906807548139096660373023703612816220695858742165028438644820732494656604431174098827481936449131451214051738510287438636538717444058382402939331535449271005274331808319089426764028041064395380321675205252438909924067321214007679041085394411571627737106568783083722508982362464247870328640656891865557796075640082911316385161583401717949514663988120964979360420799145186925395332443418844086168364691000518336322587960032970851900054815266685992312817449943412862338344746851882586464311333839297965882764701636550419230514745813032175771251322392572336960862467006375294796796920079913505209515467604983886186988516301448256881556609787751776570936229034556998563299246074557813996801688082303995804599584547191255838019705632581692600992219406914169448748600549311044669788883954087307592430964063128800297260705945890397472302168154680439683698667979756039788576592216551589308706455908400163686381669384630110318779362702113069577741352233088239110399852182966843704179770567891801240121989387222280325117715114812645737168768300365146009215006068310009762072746237964764247240007197279081582885038406662562114842080379183554891520291215396856920217772900558097948251912853270073003399068904662227682720032589277360274857401155690442731345314810880664204047843167189807172897135161178747337305845836162072851560092604507704382163162665061837287851329615747584666705190358541138124241873894890284130635845985055538870574051776320308315311196815713175233922173496561151038656702248251221265037564381349967973827581286569773467171194561226939558877420530015431342832951699494331397620102062533576784193467612375923593817105274719942869468084886645257528541350663868379856424463288416161355036805123526085757517867256143441644870768908507896616344685178312611532350836387639171888091608910823539916316050671763128240748942506955137506968075110887197524154942905355259826648004939843288747219500731488003777080459398303820611752087691751848799269729061641884087631564812889545503346413715969840115239692235598144422841120790181123713246519832523644589024708040352071704714252649424446927262469851937884183770307944405606497992812056490452365845644333309972304703151231098066956654333842705113798574993021709575209194174779949602787046914885680437061840552740977257489767480021610493525780563525216833072937096017869819594224449422009419384918085196359008922208877858648740950345775551805435581150412755382949679956817664815434030466181224398544161246337732249996307168785241517770172508669271297579959634098918767191771508929693064262681068221937933459656093609691569385046958482752653415543789784504395891264468978030120696686155055422065508468511457067784378577014795067638735061185379186866439915242369249616176726375563034058270054667698090699073213595227905799162606293844986037574502947924670760161687356084395901080184017162485085632836535314275914427788625134428212967988967725683793964224795990157476043102529021602369282060444488578438215951919422200641971096667751795504121160028718065023895527860313108836829604083067735920472455514071676935828961741100173341022870440368387724928681083914086107179343505968770491651977950922371036776200094460244446233935737496932558907672719844080681074225491918713354884948921767887401756884077159439701816184003742820928646472039255469635172905400890767475228496600727489083402825271881338578459659128148489344126646604630937515851022971280926639551988724015549356119893018929915507287616856419959626291942305974774038721313778221037798256079061699309072527625692530229851627187306781893048548525277740859521132825529290476717429210568712162759589303368488313737387819549382618730112158506902218170477075730619309599658249085699952647323990208759619469508342975472327325795451207788224517660944696143712405760330435490842701728163858771777768528629398917008772689776533663634971431584724679538361048148930295425342343101730112365544194026967573200419451280927059963504138830813315706075358960544762229710400922864770373049820257655563837681829496797764739236215045171005544557850246676783231746593400900276779067498957560601946953915610447903362951693006038171302590789191058979197507592522665746997854231468053686669021137034756355758230177425194393830619599541796258776720465277999668563126752586958226098572701428059309038082986504992831383250613238995748764847892358187953413127620834537835048895140854387704229730600645701114715916045200150999179239332602908623732951379477329537832629222661714530270389889349556622336034225988757685855659979636353496636620720234690327922688114404901747962105529235543390827448956752774011711291125677640259847571175213128657012713921057277604880622340476559996637716811506728322955228056933921121085282279466175877447423665192197940062132847616525287091046227317133350336579603245767207268518583184803421202478370535417085423313259495576864831793791718518543103596451271261853879098993433450908395563510449730911485384460670222452898037382519467735426466610732628871692369565220141088584310067321589571341348173447171151573557974829077344455640366769297854441361674575851184256178378395357006240104869548795622267829534294479159796890941933794644526147284768702610164144612872084813342243895163778853095492915980026371011866304555732590233122935524753028753830644374610603604009300757787482991904070531938620796658620674879615203069426219086045246144871073795995364998478493338851361836754461415104266990156773930900103295079271327204293161649471937494533071782189997374570021238711596937512839936028212181127223792444910981288874734537169199937313918712797143008239553041960010984611550190822836945147977876272253768648646757339263598684949839305253455823545897495033533266998461603965582988052606385452423564734610718817706636102159512542387271642248837752357779709374599566778419289085935686051122239815931115806777392891459873679827611222516407641024110615159282136531183192939828358094154746646713863353742496269877014390010129214403587748788047416051379942477030003671958598440178289591195328099139013873426580163398095896925071321680278172776616574874146221086589131355212060287200701484470572118198978154954874481565066920489781952443901553589708371556410924811524626952322532074245598337285653702972589449513009756058078018596765667224266474105040144005006702591338786545871056713104314878806545390071689890211081056532856783094444114057651124952575140818139890936123779669484464983421878392672114390094210667185845352245291106969448553286438799150609481655043888358171280099473739411365758710030515088898581244450664094854727016897193668574451589180061735056587813879191421901308470194594769301165102081749865413343199606233995588092921013641168733513929748497753178084839532277896625724865671680721079938202479276887176491703023485355047753744231748563352402130679359986870190598297947517954281235461289840321521265573571025860498880332160040845935486412061371031521659554540273412453460115900736530384870702849222673047557419156725865265384961714376370184901460197098317857776820615916509820763595708054576247872930092466701597707590591196756982483308894999700423370022229851938825590197337199648851473756082758035585327283950551533513439693185704259887681475120541199042648798913192432396896930702583552531618349033558676812269955955677421770916151890621086741051471667715746966487148197765383005544874791710976042036628450332469880240656615314473584560525336902482037687265761090531886810074917361059117135182524095128569280367378589012331419900784621371258663173305343467285373291704586520332430075941157873008147407975344567582880220518202553489174502532579741901051063143891141611579377389214869257501329049824702154548182408290995073465829736882222015812492586206265073219646769814363762152524278333861782196980547657306673788488072230132343780089508785217704687204078149899577796666814361558820558794154615166742570316555656317686372261457450980267080661928212514103479537025278813796424950675529798622604004434592161894553901305681650358179626435945197868181575073388580184828823467671583225842812335701836587880998732978145990533944376589366654621380661543014936187825240155046943399801094417160561070208080350184509836755085839933262510725214635031514851969711181944068714913436388262777585900091701028640636103500849311216730726704342819010299231935660806097372276376729894602674250379109040637913844191903288620361633413491734981865382419890095839835724577790108472715499380482510439256921495987910853312532870204112120026415355419705465155410891708629566954978616044468786566925567446152208038562996256847034131221638440390655704809755456902659668472640163952876003430117545047475159581810921165735660790250144635325227356574032826117316104123202832783330949920637729789110280391051615443777350920872284921082450755461201576328310623164509612104005392322757846274821232630522124527339985584824535985857304817332304133335886943431095858527815475279461626625361879634666135301295731289399080469107532346969603667598427141043421498436486845858742307441695499842429407772397273204397490305716566513357985353082791715207157415980661131685740062037240813658107611630533331927655768067773747210003816456913425458417209648651559525294703367179258645010836019142680612365155929927898744614680811617780084938097911710478401346587185840309109816353814195032630925250325133139345514763988809828962709380947326404460032772211362195403692084485994344432461116906571666739424667487700258530291122921365670152993510793493970288124670621225809960181985519934197807015243217276947776532821323378134744518919983624429152441971588994931291628651661848363446465993903976499824272508987110542589713740300767764267132530136403759827490321957875031562310057006353466955034207744880857306298080964123687563106847840043567460205425034195846375647094509359228792535299534285547790059877208293719378825092111470332321705171343925223684540841578829860798874257648246182934967748400406807431646607053781546706082294941499238513177267615631532016729638077576896326083216125454871881332368347043073764225440640345409887159818067505507074581048817811370796250370536030790631183665757588354983458935104285141810364479188641877673006642254172746287350159454763292504417939990125088687053886991746140190819510297546415472853988086747805266654402184498119862419361900514112687963485374934521002200145381205080579912306605227000495265495371492485087294986480908648587755343595082877245004963136392137058823826964675734994435255947251173918844515675492089933458481436350111957196017603169626052830102993623013894214493218310632282300893413916967191526022750936506596775822879321687418503308908368161006687904461279962958696865065484013198817788895390557736861556340275204038076221211355526518391885557187753312737763281477059873011886149134227292179135474860507623055225794528741658788015382496286034739881987887840796843396394059227551576613053698351796458628350625083097768954796829178458747767011634231413922630480653289042380747509853610923094411713458816344932661886970321033925607111669233372083892431845491778341627786735229350489981654791004684544417655829559214118882943939907967205198209815383132807903107447453233573784351033705247217424390207700747015642196951675149396659995504328180835049241857986578179265898049216899938779288532352637358010903031272929785639631430642561648575848826695686534267144680306684790774540456009838041321240130742419961732280365455097715120417332011048762015238800117680364963066088492469828862248684430683818301174205399340506911263998299862918435362853207698286283940626737585936652173516131062443852053346422123015692622532224303004256116637554814450644495157227634920591670050776392638336758817126626056146984826578340381636006890448994335096455188751506490367863450253098906425178788620580309833656085365532525684293568318607867176236385508439516904378865019366238669835141447032086410233360265829504223770863804534012780465087799272542799994959253210169472964444986274566500300931674889288686725082367715531041556783702013993894055554329616495558713887062977268386322001156728136251817347945858545684225909364541911519681291506808709491505425195666028556013467328860316884060964751371885639713342078203457488854933969290217821099188124902236865037745333305714163051601850997252289242171909291259168818407943527693487283947311882453858530676078933102994739190252319822311981677431993049427631617270089312822949452931019789560804874669522294917357093790648203964565630710960281199402835368942212739626543965045047114467314810822156994784049394667298965229650168522622461018238768554907819674544045189573495943267951408002664345920973447737236988170770354557035063345510105898818417376306654486854958079355922912728572557794792217619094069757860504791575756061503421135736792155905687546380780232777487682729144799960350282649282422888337700840424550739351620658131084624181013294096110872483826515449474206939814451004146524194012116329933246196996886563302867904706150222060752235014825237797649658887746764484663983791767510799723681510307167428069545675957918269013585587881971092735244996290226460592009068060583562888604684174709843670406712267532834044719827927963311006689592791698150099151728545135297960739582581274906855682462376010148611358430751863212472574113946088404111791310293493566021805306287006806898096387996923792483943580612740542679458027348468553697555356053336476234088413926788879852211698512698220496498286657200825493716868095373566107125505281555869717474653038864844902677661004568567857046620305723577398217016039678238175896137577060746985189017815877553180815669551999883123861899972460208227919611292496298454158244521281441476239502409281860409608848847071130462306972133688521989304145833128702865670966296249215927141994698368835090722423749455592820758265554441320841056832633516643967586896958991873123641585078303387961026202055078349637289808497616224969781896897983870371431884318862433689225129673021516790957801629784779318242542668171262658772486693544826869796965132775206382292858115487481004848319983738891655842095380689169869073785038396703405330653848594605279843285911674402366418002787182630434564334238836873934505972932748803491553840200053256701501529080453388246971927365613249919657911646170006968886953013843990879672300181748017650919195249555716930390047596284838694332481719845730014937950989546589192732919365777346895468111702226791037721662572901595563470745590645061895931310431513045382162965489047899237384114666736448013724997865844575436883692556100756888751055438319375519351323736873636412799694550811045152744971939221638367658625023516603503391428747244243590797460186296396110400305474545003592645737168008073431551857067220153920351881277257934031480871829197781471755430550125090287926630783320552477959674584877955363042712835685294641805426069393841525617093981614502262047449625935901870188677364439926148845297046775376993610144923882859083558034160414929182978099086038083933763895517755601190717928965763682896970288289921995793054113690779837181277563215320303523319384554903316764031407882120991538149090012337188007632099546827792890311210591800181987117177057582291239603814785722038820261025878230913437969734269250548048957403802774614409240875689172890571348023013291973917434640722096867673321741008327790036675703449797792714087592478591486488695705732866715007295908608679448083804930868510677735479199141900748689136069586282653816010240914002692848973120230527351061916828061621541750499126306826957957698232780513685761981745057107139326368464735977749079567658554111025396536633373136286028919941546854248729076343932156479038439532806913747767490163546762141434077042542861614843525398694944700528548223642556964379772989575619743928980411557157365470541437890046625138350176093025903417477787249988397693936039567575218837343790782700327954123522782135029503768885438881282606989716377304123533869559191743736577150135471486771342187181909465264530122991003661843107203007136550364169990784276209506677096215108081320638154207437946577929863044193731267051840290685487623603020023648595549532314263329780712654897756854769781811341020696259669751757484998079797937711610132797889322713973509214570499729599382767039182802348591075155858439860576523606948372717714211968917456233841109853598904811006597169192750659231823612512247008210461376402927979659534630114742562955514776307008024052884802823093011412742954425560202075944714880248434502893098499961089949490480193210914627363551039771656136330790860319223694885133430312240252662059516633221852885632023219951269365007820785683932469369700834029352269363372184346078600544051390965263129516895127942831858041336187908659692541674238500098739579809286985938263447148158713398352738700812468419571211626849633145473994773307520693262302593722931994728094992639711608207432639869438038593697097108841262583448928069576868426886205050068207415154136035236917829794166052940029584798517174317246469659581809526182665155881984656937775193198521649645505853494354392511593793986791778741026335390195186147220366647551429372076685313120319066236465327998512976223311467858852777368229497979111437230130031747148299211933415051356125573186197804105275780873735959693661108917343175028942704097010964755828058801418174843010614982481121126539698936874243257990416817547767741346513576448293192186722941107070516516408408232946621514184674188754703336240101189222180593746590757407449247962260796061797834057707698435403530203413570450197586029671530609122510763104011014030871476376057905891896645678633763914219751862253431656649862299576119479281435438562378026261461047307766506617026140975003112050657912070563108989084066583422137744676139876456392070500865260336098465201371399251961986033732253147483312484982853631281962488557275559716979076182954137779615875451746461613032558294369579677583703529537355478183397729271768667607363282753759127825929326192532298905604116061252758030365448848468187365232057572766988714754086916613202905479374396941467300817048115390189297997538534430378654596381272251758982199960949492657696253999213692453306606148283973013843305279322332362633517409256182487578534282820532043819948579517642261707591627042119128139942714415729758628915477937306195752968548044679393271442364917842780845805214175306615910700598138429315312863582436932813142063270290880638251374124610645752195025980396584805950022222839728106679225090040416724771119585271963005505139053337944303794963607585080711323809223408039467032128638469805661076104964713141999209864135306007601499298623807257132621818035034932665423488644424173903546364341360302474548867281224353563950237310113383003275896476974158574434960520186726653869213997661047404198309550097561609107120359851525984076048643757041546788358198106613967350890896321705652811256187759753832556874610048703317994934082664070281923355708351987230087234854130455579561685666804398431064812407828128826454481699217816673920433236175372540991807736200726414131927001989134912559485573297872606966875155214264389783176708813614623910325845423897389650728815117203939115332096700383259858817557840524285696148884985225226857621516037074846844192877810825332560847026360893677983900195195694641711079479379370411816921450584206804135308995614864392223121795859274582541716069452489827672561252440042715566243605442112405294475696347701865381674679420895443169011942968072218739770937461903387135660477911333201988216166782986476422977221612415976945186982933071875906777212241643149457831057457830430600787748742601305342195720067983699380944672422706076587172857649628267847738453989265421625933681210565591065571172709684197622158538869189084468877253342669344344860192548720252473240023019204379980755444905684929163694253168071863806301923877504217025038898014095381479679164372256307562037864503987074066063944908427288528857402822322773947112479052036313399227909051438109372772820809563854681426640558852247632370471888976801540877497879631173771598164469601133903565034556701218028953451138799541326208867103211713941847975438571513785473992051648394231568512472123200157855030904826907779611294320423120319564031278054153858131941655849470764156811585850143503429937118962518081499570714941057995031641738099577417158023912791547251645091539006927005017599720927395646696651648660320970042101500550909604741841868908289614175970986624221568438107680770482972490487726615033873560981189179562493325730057296833487572004822426750541788787643660176194686808903096701953439695979010744179236207365726919871990058621621051740216158298504758042774437839103775323424449707565095204088897833211413009728380657048973412328885835292066969134081940154755392082399137313895672186189090843667298176497251375778604325561486761851759247665603680020632662308945587388804766117142804925587767150327495492655276531862900740556210921251089572573777377018426985596317569137155545221975681332895431728553942136982861489127469195627994996119767676484826827413764170068192753569721842318780704548045189586957326718553879359197363015221390098025665787909363837800827058917256004325080951777037568660336008285700812858928617316786707820515892653535577104144717499216821068942378234014966627609428520170303347785378195622095114509577754093867857926017113570717885721463696217891669987273074365769556137776941029880515864389209652291217291063389110384499964866297774021810234552523981666801440174214686445400764098016438739474142405682785227836875753851118025840184188252737271392738311753369617402159304011327103744203613183482308423569882502969309782661517761672049359089909841209042321611479258824794784424842079861439592134337429911981819444981240950342586977074634785859995296383847702098364925597911059637166575221832830377803984922788028761764671289241731770421396085029273391726123577274905966603534325287587779820938268771645601352385971029523916435911335198265779330265101549613031093848100023331319434445057045307645791661177984467503136069875149653905229849034992641709002639890457510003832786372087422211748821979224809406570683754394590173114893842487796292002075059372782327498691403695689548819619591971001351960795384655396729997294956093479230541271222612948421785281435413703051510910556938544747553006597665697993637871285982214888720657801471766487330815945647755602272033571320372733322971327840157805921841220185245591448833948481864617001812943983572380797521845602724051235972593385271913276197817052903435518521659052642059256495188904465666977214803750974899263478648839004540556828163160579849065851329458812217140507781149998467475292322290689552523100537667856020310834261700246932512699586994383194228792735858932343063873160477704453115035819862943611720701965764837306571204652380784968703251965186832607836685678129111697158240092104784457422086545536375766739058250501616871036458335921592046262528948569187853166560408857144261172202358678057946513633071847102488960016085337011027193669047489099952333421947329514471144121917318885167342366532723039397553044162440024127560871908445881744560690125527304473858078702506805086884001064482612818922334216020854084415888076722078421006284599477358015817935083420412319706499624363656519827652758964708562165846787596973918933255151401622051596206558727496828841194430318427405785636064617093380389778875836995806937691432668692113333381528438820899823567639237409000373629958181749477740674525945942199390890474595235258487043196773878247976664531914490047679590771123562459757158802774825719236797787308663238103890302049345447258052420580260926068315609356538472227818798205965047575165329339476644236558437907849554929154991729574404588831952846027820015714154392713450838410991477203949059093810025098124412422214433409060738959354658119352409162163592423504285930244742795239692934927715028455940538797600781420019007114580839333095688471095207735977055453989384467210368732721115738128656789102080516190150149542957617622210973493428408821698019621434179352607224034025322241401959436441437717825069692597401350123110649806935707648307840764092335444253252467441178096081207984793119858707332911629432870336134178885793375559694054383597008316826049672134081954579002549331529317009978162714195880114445432464470013718812600828278507882679931805607194901715618883463750326655972573052100293797276870506208853634267565414773092737168757175284659299451663167741824415955448921910208267816747488156994127014840973543263130725126207222770017154575036008110703898903969433292875108097812762277343941317867770857737473709625382577085290654454498888940152190042606515292976225472090487658445591801868907229405685950142249949305366205884521891125888718945337877335490015088715326525395896456112741647083193359779223460364199721071100403198350263025305978058513139683246460457451885547725469205502612130829091930759497147238014902124483380616514306773509324564796560634391623638868628181589696558825339619689133526751074650833128902070491807259371823511107870646308822014769327915984088091347716177489711062803280436471515546473239378235028686525881406817692709236911493882509826814604321344365468351614432170341458469322339769596499382657497289593292679837261492067973305376966075514882027030791424556174660842846172415760446851892621676293665740975384603573389629514889282263924658686204308234118119391222667406734271866834500368370912697712161332773855106233257333830681388284795675221865264988054668441618340535839368906937802538076044365904527149711286785249159750964706753600904768921111201219719879390121798557751719087775296349914946493833340997235573875662943414975868531994340605618428506349348846247011233007725973621078536129021253834651832166921980419953623040835139893720324930706828777104250564765806509546481780109025180770652120693920470323069733715471416954272036977853133431404799057907559285236774017281934083776222035643917913903422723131496680303176961519033892093801686757679702781345223578367626601726744933940823125306762509216685511739229798606382509288567221238612452976569234668541001618228816354312767355099816686355406414911885058369543093643743017803926253186011202419559761047321778532075215136298966102526650359811981756489064449995061498785477751912163879244559716026272858308353649956578184713551168756117513176398912368136117013981631630577775200659520874767015779854908830710627044917346105906537317828059021525479015969158199350421083079112518961613348814350067646969825418234637791167053432411144582793897706569166274168930871782029670279957566295793270354610160905394013120256065508870289117180969429606859765100365273992159116226476467446421851243286102308125016297058194878129955554441141990462209264598567568973733066642206997528675521352580435212021796485710751517760919574299040004910989180932928608293107761109972632285161706219021023113733660334171174397086207374996625826976855791540195861151679480082786209042987092290116562647258192272550674732803673682784052652896372774269722849720082680810500509049230478813629286626112770628539186807161393168829712535199593039461484805850207948306902187739823950773719443371476003074521821925461684103973118099604252918226998705574170795965961304453517980623844167600185895411183627871208093851299075618112936459877346621436757093504979169114698869459313869905168677473307169552558156607778477686151949548331695211160650824845322265706619126752140657286373010020475786216820885855205740715701939150027603078319984710113045360016748159290659727908694336402432221950794949214652997125220712752834215749158937272948558116039599672815907916972018675214500992765771815427148351767405923619707077529876276525395665117494742982942767952119786341293476501145754078263367967975582371094991023673856775579552830306788168820451134674342291481805376554701807654476131525043229951279087733693651826234238137870658393040850243183761777840549306871162318187406570439115994244921766451989075775239270233600664289302869853509399310987702797930974652758070988579475843531953982183325013268152148912826426183278793971437492918523326031414771748631520983769951638858191531582493431485451677885567535600934529097433374830835402461336775688369720953543330326439518537508034772412332072549718269784455374148356109652069872212225455993512262147201024468147754758099313913701142660005988300713221749273508437970944972425442756181701185835383645459784030309061243230434155771194556780489767365375971097883038955149073740588857923969595143007325666150761447207858190777364002755283708011806617531157393021621044460304707695829664750392238528615510025752517078309222473769973321253762322844829977965521561744360842476547292557076920739723296162696859592020677598332385176796511584152958272793564245883465111695599262178281975362414017078187439064567924127694454813839905066406184068928262993560232066971847121555539365740397809491551592442162628611789865392639027422595592429503304395997438572179667634546163699383421541735181436190910714613126260131983530556318972701892478823082428019362638120304315524887888543319050668582855499195526891776684215982342202350083024486863287502905281190361839789154973320575675621719923674637876945034710921115141604107381345156227969499883987647314240487949790485415173163362170429364498036870078979955787529555242167224789713292036352177243921772928638750175759857939171476304837837874192626723067573825675784820906968071518353867828802234924884926271809724491883928138178986601605449071838979462936685930621381551738220224002949488062982302946922347097548890416395005177871138552592700640252318527767843435919793167283855397811519606347814466397224341053319725594804486854530014481771530475339568699111071872946623133031043456476372636736829489155094198245152151969705932248431000317093317317691370067953180995776445145903833951133566735717364031123943052331578182385482729579405055454689485801878771160481802232684673151444908713306031868694463526981165625440659654936903362092354372225497609676939828010301678177767441438503175450950635746369037588742959661624394747969659373737355084504434764815309935631936081502165310387754233141370141924616511601560968455413948563271886436009293719845600206617977433456152501654140999935191151614312867553202043418053569028645162610494219623777121047242330360831990628533616151274742268327569335428185718195670939154350685788930844229095730475770347201812949208722174169118414455280736114322410295815190433842578345358320902420784615265773766549128665224652802129049172663708672994824424051384908714716360375945784912821112660141756953630699794823957213646640857454041552084707093041208550939737749709317017318732217351829294427991748907770406025865707217660762533691607526545330165524211332761878264037140601788772663417122003511181264321659648766125833700080034196934535902396493171311556350173249788689822852480599194104060579941081504770007238568851156911057686045590330341720690947345714127661676665115237411506735831599505727658621699157020722475903896862135194469580617783186631087317745381464218300141928641898955848877553960544765205040506772368880742249774883180964455636776297338036881869168592831055435045925932395250842781989388847502214365102281291820294332214459977145897052268731062303368725189878070505794082061778682670181421715045615676592261949069596885897451367847991717866286230077564493992248898867163377527184191117033595597952628950763944762870526619805550738931786800968621484266750205461297931068151087344674961879591008992914629874745571486938753988556744094810107473350406832657663768485436647512889077287615217507280249824220020454780742609302407357351437123270912445053149656206461243011125390270816776996893534737767842381103569969730211880332568250725543545921878593401405894772691299980114152745732683394708825128290826873592977254401630089655916025777708672072979657998072254392891046086271260997730350697162435885245127642271570408567901306982249937554832739372685012679842356817476962476675588828018169164773055349137850628586026874472200358283736155843981289234068716835356208666568641657830348624653746864134467021331883473999805987665815120388527247755844123909784437879615752972525419185880289148846280147170018233614978046485085735049703187311423897208930607846121808508877608192812150275151618452061916133727904355365633010649515028013463503840844470742352880703421757540612629654661470284698629045271496870027274357464549276985504412906817057097589281929367990316928310353482628303524846008843737620395855663223744086385702973086093671424885217195358575088677810179006028631615132939497800036568399445653105272406887297031570358414024248146954332217485203006440054236958355103982560942472946426360416297150342993377530392853875467694463987654976543077405732935679427506939849695369623570277731685338391707891611147495176154258834684515398137745489135822327893308847528638530004341750891881728246203914709831591410025814290285962208216772461126755997807441313784486047851800419898244059940079473341147399708552737516060349169633747330785082974020816035315315926636804780483137231604285712794587538920142349380259011011531280702403791435782466967457984238084447340503794460860130739861803433276594048128691807068441968832959064639438622321436641214200941019370610238650077386638368861156579627312492012250588453848859819859002088639882478449494433852439106885278848718738634527788769362787212927664507917928719511315412461927073940103652530695857124167101062973583479083739077960133328514334300192044670525836144070793207792109769115878146534363880251642573833295101307455712397485279946586814986450139319110672218174520504539766461404833902925206523468199398757094089568797857010753670329318340273431806919732276817318685741135888602109895891781017156815750577115626589522107278048802860553893034803497346949686961310686619908753219707587421514596065702600166030974262577301053981087651633234457423686905880685492949468027800814053493425418196453906613494069941648622586414976039299925713968475376317326631728488317440029464380869644782605074030064712332916584716446345851521776942330377694307476134286395978599947546017296436594004426713825930572491156452751768926657913922147050352307121731534533448977677747350492880034539920322631744459789273892104459542771973172589043580960238099429969423717753616200638932186106736637108609722208310593436388245500721217590173575277292522442777202574963379321658691168182723671000686208989385567431508026176867676075191105558898914234720781686284604796503693829787292630478224329815542306237832425616448071543045987692681111902230752924241855695700921488773463411717587631423822732644803680740928840296825351928266051323233515434146826034997770220653582578032986174045796537264191156457356114274783378960261880899075910042260388251334478253692428873300859188511049744111704495836584760614711492747407705239574715118667458830638406136005213677935198637898912766336708389792495238824537015297474626326733891746437517294029801617958038665636950655345103055744580543538564874981765161779537391091238666977520285347781311959609473588004279690012117746404288367344063051360319728034175403412182606594126300662594360454474501478905945296460971183067750898068321954078705401337200648812109091063647148328520911999457325882211187054728151197865313005693507520637193944293705755858351566524185055799028258012960335998190551749854012848048372073319209171433862414783025177073854190976978199391339944729022556387517237556237683707625331734947982542922999420761497556534137514114091582732200280116140051481590741481788965903726300388732844210207072665700816553324808929049740770499586169950325397596245684642665963261316468440366218328401669402036614086108398420754279083654438540514280360565868802553624684280287553393089164307430159682758263492190382031043396054661785912234076024418557958673911608131038981939479482941740752023904488527613586316624409476839392903907603269047573613822555956055617865703823828623431233282970821646916843896537551761966359677908637412464782669966407606576794648326209714766951491391368565479271647057408507394811161222256941937381049609833178164373139578887605752474709863216783749652878873810131860346487118454495796073475157636638312891019646540815902160252370653334688790458444209284186031852024557372638264636800799425407323752533995606817599229794739248681626293679343344931240538370231644981210085286452430623482186131682212528968069022250732411689750639344796426781936080300963235547086931746565275683577949097294670661916281313406950963208661631502704086876354477157299575446634942833820310492563475568960248327515588753210466105994098278592309028754112727977275867367853981487763446443804151574326874865351460491117668305272742455455637154571920481609272587690916903283843595257452181373363283431098509650825847525507937562568649970925281044819454120352789568052101131282382378320270882523980272431729454680622257933167387579260967542389696655928401733551126219449509987376616817742368419918561803585539548331289654486105625571925631487809239137189159299550591723596905023082631354781225955319888919398483736384974854407716748523515363481822748179634224333096696114962201436586831865195710509430294550344274576840919656703603700044529365997187082322309554017064234985430996349692740810275675674660247372868525035781347922620569041790409952228768896545296410841777344170997378573447640281437200553595075343309729110678231017371664460479643232120329879947944835817810647255396836361890953339488780800417942826377757643282912023363609618165182688938652428017637238528346451560480889134472428575230899627419806209132444050116120973306603773995904493377698550891919488046148762730825993517306760263780638755496637701545474427341039633933800368890029844120509658582563708194979854002308370891698644467668961410630451996254123792600515354717751791373260298879109956580345410654821013442571930426727786176149192005723188598909052999186141993001689872861328155319380148881839426479262443693101155351743681160203013820796024468234203183018006974861024128895120932482890083343834450375015680292748700510400369809041630737138776931630042482383043881805796943663433909915499582907539529063415899162842858330523815989716936758897305490887380112553883116156900184146522966166638239064950627248119550906765265679493896939303271139954098644158940461680258926617771208056984799424911851964814208792941079100967624398000343336608755033750347166727309709669980674332159426811973456088857586906081475643091070437660877988050070125823416472580743633020849653802344094992454138866935619000797612570975251218093018549332273169735544061174018414914885187765396629069731701755738614550801587870934704971150395562654654219291556174626562120850194247831855420907119208368904902093421627312246407161227161071483269097134943554744974456880935888487492829409257902802031042940787154142954449901334639220225683365125815635132995681447636107526314447971476423873831065799681435871618063175701028133858479426125955485852576884409009877282924015660468036932613061159039605421029858250013184523298479368860243437326231381584125305715678897208598021019939350487986451489078262706004544251122138877954298860125707063175758400950971320077738354190374060875068730386729921764263077621029085476101371878438426459045667999545252969987725616388889606683734488171962779929414301917953384823932026650749155930647453069333355834060405910751751298386917357599743068059841132539950936476192694749102679598293681894130076108709893297829923999587911983467776725988920852617020046857246972732998707349116467758492699448852430443937676323636203031591580138307902529738806830383121739312862182103272753326832995741427963667724344089285886287124643511475401305439054654600484393315349629825917152032727408423023804713466479300055272877087608958683942720773643493931967499931130750821730039571252846718737522794637676191363290249023537324909217195715315551700952815438147524771792054791967655812417788501331007859311116758416746436630647853581339673637703954363626465476539482941055682289101590349684354747903415229201352073368237540530718401456885110855086585128747689595793608173153514054923659545380091574765994954959050584585593757673826749625177294912579094744381982188372359565851402561591349504440340848568719851260819605591074039232315393441282361512220750114925980248345098088487104883744794800904377050194066808891879319977799377311029045893633620011746765264865983190887183112652998926492394179851404712999054302838829090166334317964027068072129902192122685542454972401442983513277334427688230758131800845269483229230978065053466558035888587870647633660977210434942945439471758387048155956616880454252865816635829776393661594857097873567939292510868596479115306653043670862501572096651818995654931751647207905789313966763762199024551190518791939731934418778435129299175070037545802757603889775462717772870209328443732689612566587693047802225037394640589575869113664878746228562844570675435123546206207998301926516441680740179318787159671251172031973421183121424116925776768143494160000970278511012854236348131153271221270968678779271331673892493011241088156865195379292815659153508817849867642092504845045585336616303475919706268932423069415822320709530169323635570224577257883569614095171647207631323034804204636073878627123788779849169041009883448503582888559187975546783449641419318321365812094764692913930050226904308603724516764592587857214862491418452847191970376513150749749152133117732185234472473955781519041740033424104419280806796800377831424647765517711288262235423736190944026448231247620396978766069957998943810754894135351518331900223179602837654456994271897266933395478580550848523134758302308159862031239788171175534589352666058489312035094001323750314152631280353573579386707214734995008047438030199219837590835635647719852731265441864071579526132513872242917541907829677181458918339853626012263679019540062962666815277918920618545874717451111758149452213946742227309026283354122621555226661421607393205352454472051355982390345612603645223567547981140196630641389752709654762209384881724794194865935477738661618155605604027697867462091117313969429123372638557179035079535548995555133254918281887755609657141525449213871791466538781615479517452289808230042636695556891606924770496710070270396530376821415093420418856007931841334779077659097299836336685722045827176883807547515084316023928132041031782463574084891794525677025027999254069633777478298120298253977032047692303244812665153392114058223229090924068772311314429363396901376860203504468935297340362854795322595135382752001265078571721036399897138449205637295188640244622578665201467386025106396893651229317900108180027668682980951891074583130411694840125604310335543511125048661969161223564154914200123810571702716120964556819863643801742588119297051671730590847200289268750061314214716267038178080272949047241646133977623295833584951783670970988970487416695486744972279202548138926580598725677433858251109254988678829675967421282656547597374724025602651830051791149899355678905670675694632671936883998127529494704322477201664752624633771502769906386081882773001441601278567812411035429098710602780307003829454837518631382697268237273698448721678011498633543410959757758298690890737494095184500007592899386714325466700202773536920982988622692166647732493849424719832449078569505791464029347944230015821551645256677024386514526358609179543350871470703012945551668374253414510104345233917441615334674941415266713052354125736108625068472060852142497109958729207800114502781354455391848831661727509708314875281310767446660874506345674022565414963732657919106943190613184323688755750527988678172747821976620778847154033490382311033284735110416848012786935283311739133872705208394060242656881856916698998962012254736561085256919655271403527889386679239784220317728397116856451543936603580321500004218666990914635158121404298178526273756559294858869962015223136472717559833378219959078746869473858787027725883255395670094782409447258686433279088115905373853757763216020719348772273128560668284223029787471888551752542495426890859345575693360028251112932308665339714516382394979232301505439664178454728982536618953471495850630451178096547562094869150886947696293672366135064840576481435306963963779806688815499129403684391617342529035236654872815284568095238819909214461856416084756082966568836024206722905140762009363528306630278461340135194954054955191712658116752501739981081316551554146221770960076816433574829763081142785198159262545732073277574483375224004306112600325260035200403736644170755117320789034983791627053319267524486633293095397844419461625016107304801195011898384854471873591819607638012112276331621498416958043979923206448948204343177132931057531866444219211893894129225953457026471648561450915578722883001220674508137902901042426227958100201108185347946021931959367917660130341659676469119549057092026304375942898234769652096306659307957650318428723115765300082550651948324688993901460688526521746017865946103550524845094344915947764798243850600883827154241606245026331551288126278263540338412634306734254700324823759600298269800676961558773360685096020925462080591084362017380161835334900100997599800982567127082727041882763548208009158797214189130256464569496314614425054050431860418453565331084333870317164064829785586012881434491871096812042322762348387241039400783274309152105650587968531769767191762547753541695235440914900730940227811410055206512291973589722033968881479144108185617057578936952952202185915908792530385686742814282163439712997514386614416485145469763520652833607277496084190208427589315826664526794288446556297932746671066170697603941219752903535132021342561470845839310487555221078906118871655038625402546079252239303615083583787708692333254475876232802661985049934668086731745227823049731619647265832335342714300235957131605442057278784475666739775285161078782954262375721428090937450005079806029878243351081110243256192930520897401754643798900597644109753857640601966880385025920502475659325507958571643529835412674490749869259226823022949763414205943479038160006611393278549017993159562083432561747552566141514092968786694465331773882392000844759348851322308722761644553119832233209972718718082106477837256462421898776205646040836926844306249641737432346791216721365544009679922769993588477602880002060660873340704245951814960525886964102123877545661275098450403877632297376610351122715813127335859143999357075600883838006130719350103324820810952375513878227491657999365016921524403122194679762523453431322048838370175215240963368648561833558672026162106040035793282767734843095010766155496602004166947147564925716913938169228538358240003257153327495898590845430531471346507334689271271527736394080577807258303629952576002665669653157339665001817798311794475401248854894789787598395789443793516535038346794270655840520547052749103254176969121005232787636827633199378293659534588047221990192209611581115162238104867859042545770649069286458732810042827198718411506309103879361304034053097624904604482742963687612614450116597491347609458339716352548511952623477038388625467227034853287366994230469930008606949170812582069038574559780289352259759463489120479888977947042029830747440049322879696450112498610606590357288662225557249318298067791634544710273000118078596918870289267604483144953640982488825310273573120869102944743065986048898616316416145298278794125403072478968779735925032842985669971624596069526550081939772791611781556287551950023582314885072851289783689723883241080679199752946548368793962147432667982528325149971342567216614745545607587882843103542323832406224215791284765934686429429328274682268860474095354775276821328028425757828720472126339804120632235794133341083758422626867321452180228592893184716725957081009746894475720284750737701703751919002962059743008679317883206947696326958093761785302127397842686518946838809480355598135347716365328282044583307653395763277305979708898918564122101662853111591957468816744933101810959473388829660436801225983388184964360902944868465361743476920084662225645363921196516513909782439613035738787742390746791576416663805553301104019762415067448436753050630502937076091884412048455417807029024056766410940979608871071596669863215027331271203376892475650888900611154266103324495789849095663560122714498620910357670576379073410541935979523523326022528162023676566088163180449112990001235075819023088431342480688486376728117703197589014237563643076276405992634348553278983017584175416669098581084145361303611239990862720373789423981734508272129309847939399442576362733729129591350725865694147755119692453964686211567311530532204751568425789824176360180489670659862923516635442827000489657157984967844982971290131884503490665122087215196008335862221282023528953873591498961739241575628235735594300193855049354399541935982666955840745851692018327210370979051656636576798464555811386206373218474837797643795618720650133218282790942437698426805991543854358392009307970894505113874673283278186890923339206694093216051968424698871597563869472785618067556115669515474946325337358950082157820899748700601326007415673302793730809545218608128478027480817405516876198264294346666978537122951175190183611280001494455611540527878727122265966141254384719787256150810004115787447386546257505700097139609899841356540094561192178090723363523431227599810445774427456392185568821343504242118568975727289615589118433978361691659212620402625495694681487394628904954243498863755119683924267319684098006427598676257022109626158502511252827313427771573104711868180806701514815866055058356128136891382862855880326794086388338402096895162511424305477826866727952435692546659788748618616790689138337938758765576903129973300463359038100644589756356535195004877056047092730538622790348317503641688660901805865355914293899976176010092518934033195073121538012728465347758436904148399749595543105446213516047238242097391683900556969950454640254799444937296465277874165829450916274513351967550721248256028332436269122513533183016460601233547779588341908453482732674844521492016806758104807727358514249618078429699067531002586178446784953025959993474506979547348601865660214901441419712230520923571612700494385939224267121078879520084824739166843564682374419452616421291953127748648054359116332351377255957863759786753603397086498585778347021426543094076876588315986892524288157491683420910362959839808888864927863217722492006805148731401101764798145980715596358872110646281231860147425265263893944544193898795254599326574662067118653056687675777592302183683909606229408260149904187022720969961299435075813515533400407872102425095916786073355479092677150831878818582312970218761075449954845015147599850400463016190479052065635952352604341925939651136324381801533112322675952556232246636145617233090653652224482810474754361410013274707121843853678483604308036222176717168792039200881924642459575002864005172419637121862548883071710550141338709452134067577626810436920650179116915510078842888755246922287050669086202695038410588177093768668915230471586258877823280994252006668093535630854097855962812579566620441311465507052982489121189446445905939683911273770249146877513282002578365311619075850493106145714378339456246661924331734249388783355090120603624911733198949773743408923336853766203721564166874383877270300112406816634746599377340434121105543080435840437802863078830289812488979311568006366912760530206725793999419323800335600341307197129603562440181082069557237619038917733181986527961309678357957497890364045778528008735058378001077861738734891657574228384314738890132680263834996739576848113402218444274054437312433672457849455935512411585632539260331758508338124995804139622220200983268592164147631325057490962087535586151136380251700911732348353197922486721707967720281430286230355165097883752008547505081846211269283684803854996564615067788052727744604893003185798343517753987828637164175414872960554923850453618460540236239266272064853828013675636700947670868630723171830487818678574180456523380117689755006066648350725248198812576175647221404392762914997028551139708603017867389144959786991386326142447754930242533256867394893866594849847668819903785289865066492730953992874910916412029496815281547291189876725858864366633802206293396870317137962237179867979006670128949310860082619258096473517035890997486999181023284525229544367338025978333519367203548929370715128293252140832404783383990555206527944817056866284276171292835070294663609675334475495059209584322748545316425991905136779291921743329496865708541694108746318329464590607521288815734339216870426734568339654978744479527496419557632342278114356019751227514060335329886850566451233821513368202919664766638071237903459967295079134155587839535805422289671522685110917312881263636534900500047803912067580947633692389596290870393883557668934143826065636323816207905119373035155175563163269350617738909666451966033463848973114916977702501468311117237348277947362320801026738120043522084949282516111627401515695933530939122448784929027103599256036408412640128053615552724657509762918651390909320273738186134354461774673845186050294530563512061023112071782940483431699053460066050580213640695601130920515679422144746526337298578303886254369581420130136808164535040013110375229038352418995594095120753897324394966453906965179044743326938190152912542002300305548362507454386103355066097169857770412662128667012476388125910071436825388880667582378488934385493165545965226643544258546690816866492742464516874674500931975308576680248183088677204296994454281553731384764520988534800988739535407335548114971321569816734262518943998249419042982211696925720171833033189639816452919367912317044170420274853791052528419729331572890949287020390037472666923088797185459602087633366852800217443459759103703529455019136608859755254518709283560906136809024359880041756902006723191181082131099979247585805241093371853319131158067061166448570893138385623267463592404674900825638317821381172179292721869865727421486360943755690685912735971747539821532606977181242006912117150839681184283872227762333147984822495498932164836175026909827112716616443669130812449719859499169731820987561819444583903514798345854551931533183119866214049947263341434283041674522196443337757364296450515880663480858478829121425071690592729015249736899168442665796746623630958790799360460921307670219184250595909995607011005458654831602857144831738185718821153755180783892597490725871847605912711656053965289473422870754697051710730166689318267526715719759406136186320665777727442332933941355487029713590041558963292629020876951223481941629457642570501887012290533896282405621608533825589179001933136658054811623558995182178954738373726529515488148277245266943244437171600419841327151428942899337750833840535593943598075051426797339767462382650467104198145591034103309150315061261676046172228293585381222494810003619055963072997040812623986607790066934483191135750843421527975915005545900540177364629469358647135114892146665762771946833528716064723247827379905173582251516074345898718817900512057409144504532363625692908498344423624553180250295769613992754064262731957321744118021862273953537992572472885352796215011153515257326177445876419411286194064320555025192019908121199797767339367724329914363480798228353119784639152836596529404257295740891213659909418242791851169639755000540937877600795084884994112307673178545781411706377635020434821085984509524785755676122852715296827983768814796497279466818949494710428655613583384090274285083192461685579540816777291169891287947416367901337720484050201868440188119598217171988492491964259903997149004921887519348680020238414333851817891130819810926838966069000474915620658702669481907224651846056456851277406779861557710402245238863175930420030462756707409646198532572395790802487689128646357670315889820160559161259315343675885449697575430958932375492203447725878727336663553955458725503924728119833418332697603966953564298927278845453465486444836214008439589276159515129386928850439436832729214022981265159632375532710061546815784305667880897911340517667338313507709018262637700886474641454819731782291349637235026402826777284570234804892262915141453713686635278790569581143965131926445181504026113299790046800209245646745240122952914695960774027940609097487362895349760967810111097796447042108188898538200325916193621185421033568255971797382711235433562938530625615535680402315419436967750941944476085334592572203771574266203838858562789772134923374370436054725585174582767013883396423793568077142317759139380878124059106248228960079983781542322930510869621661349633802944160423640085069682204480438112273399090729770606412966769542844315984732962248286210317750161925853649741108320404143304033237542297633278551491744065805954121802445261246277109176061117034165047271013297074973629363985957048590702142745832526085102043396509235007577208401187698320274183519347370699243691833335846889413285137435174842887372788722752703879934131246669347752355184771471325503353967514646464110569392703841479068707774880942141796193412740750837686360461433263678641533158557185158649505812744022253918795405448860616132803918024096699960026578064062086103455209825671750799787756700677085071015368086301939618918099006247818203577141306763720138529024877522516190387154835567466458340419483315785800196359795741604085582002835289986707355584110445449463665445137843730609610831371049748231367293983320379327998550479663699240832781267849309442795166749575917971905879473396984956894618802050218678903411866639609644631425452785861472721525051903814399248158426704561952400216127665372991162192371014226454980271069111464436516284301592779964883974426745017546488267772549196504941986268169175620003941171589333298276106640022259002911092941897578630157953947820334494618184376899924358633822452647978803634442650871828050137600301799720958960867655560940868800791839515250658267389450583878441237783577357815649250809608295490895078547603259594487624620489704112814452641859478218124680527838263112770199247193200249619160623856299023847395147525962343993637546457510935234977527131794369919741960361005234045374160146378068021219019816603226933642282916383391153384649735135148652995924443927463502460387787131809559056868634684130402321377421029275925287969974226523350286353437473726764435327164675897123418558802515693888566008803923677961416230194346924985815638941474923404256963052344074506173799527105446323867204129133835445202861413431290549426508582724658174391449092929433405130198885002172526846263304995824146218524077715821128959943015755870009798584771689257873818749523706911341855297187535087921457435489520565988119295290872581775004321976078488646021435211302296818448328744734126959103080783186275693765892904858383423756645719626933980577362553830754913702562597305616657607328309903599391885179158380921766956584859160978102164888385999627994268808298961872968688966535870432535657783790781937698482673744187742238990281728081489943254487551565679675143377813104276826321687508486340810403306120166590499638704272776858729015254436614864428270582383502985620559251241641572282392601626462686755282285132146167060039529751730729869772135207429591545646196085035734616585682523986551597770090300078505870640209363883987733726576864559107143686803527664849311207065913257410694531933347031433145055225620955174518595010168974287338564510363145753735333385911111770469803554548890051606935703316406422458634225983362700164567679181450026644248150462659000472839128780234297279420168306550293453470983015653688226309012790299550442931350791219265161090605148400044984576863585896578249521174812096411196065085661934330022697059814620148610422431310384753806325673740457365284794546833188779936908628632685018089441824451395496253508212454374710756961958128168985388606891172607004865164096537745367653054310792538579498693431149505227559146513488114980510295739594837501893977003885606993609285529136432397994535047402730970609469059139014453189831452874634354117802120864916837789262396371753138001642764609109046186125072560600248042098103432824363810418558448536719831923427214325739687445359204240498988893805789131334827291604238489385957711042499886095067909623220179380493261373221231886371314607959140904951521504716647878390600025042758388999930576044705683531885597802247314544865241607561816955706049593436347833352238726492021028709324286605133273749601635216814997474291902340707482554297393744485251219343601597978137327506914095640378481489816536333148107266824765255922234445833862741147585773229059941975971176737553530474331491902721698020775552064422087541103017984010065449702024569179210898301862298552891652593527920283812447402744503689976083759908323532544847916614415919784516523618001550159678492018018289777205112256349685547490091100122807506133480549004209775188763278233897233821561696622388984569706451609495719670900466798893908221502892124657216355034308882751561922408275393860269083532665098394849673859162016026856725533190459987844493203110834046724247233510284415469262977041948088528071338297665005276537758933384728295614571898011342775949520952616389114200263674393731092650612007780491188928900598393714988548276793848278665666131859013758592838142946636254581887254649703073017840176714322915789964725428819568533571654286671335867826885470226706479475143396886974349369735221227361607965110056910476640365183636611084612253916818181214395772484408254405541876107347042079596642609973452871308417655788913490256576064275900251557483407455190599786867450543501162175193100964117295642879751486384094860042395027199230956191157333925827679668492337489290857178288865436363367972166480925552901687279154470567410488880670423548876982146895661337103154947081418303623903509850794806736837906459228783824291300501290657279049600955387256321569428607567477641651886276077150149717860018925697838508708451107847188663140312149958513475996968159031218689275107034291302020624895283395656489466164206598070467109799586170539686313172587209513894312696152908578502701696052394179205344664682699077308064598240015634354638884173420382955970826788773195291385403755731203728340504462739647060477190383761122019118358528153979541869984921144658986887470255527175601191962362910009650029886086404512535259607910758037463157913164773885151115484940874781953928962174103601560371431570467471807587022467100701457051025111498814213254370745560238453713595276647000320613335668286170724480968918937827805211073796354399753268689899799399449575487804033382392450864280126446016861552102226252493309083839168133052342195140575250188637700300492665561582846642448593171147882591592242787772078442041591962659561978448439025526966766045777218372614325639620601363011956877498009294611877855344742238733681981914452236232127404269415746613221852212331329567963277146691848874469452300514186867038712508957709898100351677720533513645662696139551145200617910246043231128270902152671497925814952745508852328959185480679530149733004249220606281989770637383354960670151756028240878234773244189883137248026679914051483030660133779427759793174747135862775908415036295128980844134246256143705742796692850910952334651470948068431330131952094545116784120525635355473253010516249679862579477364259935246718924971107122785943858364028920813310669152187929526921498871548942023935112847792416584091789241110102375212697363586143899366688240396043363488941547148207141909620804753036345736647650951003143425976870992706411755389545441001846995077523744237043106535700104307685126724115534519958268296985126143703611309656078137879988582185155068317025998927814813946102470313067170841445897234358172916461249665621359537053833575376295755680228404209634362768203009119142102332085210127674062855323785732605750060187555957969294135591823630099968631519652137785701772531562256360108952148900200110050873711279422321146964394492712788770242845330684431735789607739077911264123495030291536181213482453547454779770187977668792673044400968037590556162984110707042479775851038972532582257999921888373162827420334481749218141805566006302809753089526401304311147040004523149451469266094293823612604462061474486837247690545412994130852956265064121344496257119985763180423977095249624298454022747589279557240951925380817436524880471459650518859390205659710591881643834806000758465526706554797626431694469909765347668284603922393264809578118712152215336828723443185870823894561781472871200647948735485909752226447208105857132600966641532464460789844955370156034095131443884061665138548594377573625412801416581666327666255430024043713697477471337347093409355629089125975213252560200152111506762295218389458277351455036899920508854102354445487754153604638941421720519961991699631439733369269402732026742820440641413297231934036493940889288437554548195392729166100117967796529909596479707645886380620006837576566107646553543655252886491364619008523121625939569276550878156529157329550942494595839396405842451327731450937804278511746912994708342170114779556214886660052589167093600937049398089459990528401514314449198448007946589303090186133473723051688982677326781594021106166461739869133037986796961993489097321054815424416568819282958947013758688205109746237239553107541114519610285532127118422656418110822548036994812018014493904631433066608043745793604341856969744628334562955676124309560372471280011996848584480918953675350496741055429487225693683913678943646573315889523286101954250167957116487382385165655203203830435735199480956660840332019987694056824159367306865887583827865824085069302886131942537929909130605528460509785069762178667711038034235193642995409077693462850199244180318188492950145506637165356407705485608488515494190528982025346422539751885619684682099974901586866087006768803413967695017370894509789120589637915990158207229329198853378057480501936930782649814814055071619536947477503925027174569769854983340736769587880986406538556045012035132295173946934791863723825883945097352458406788702280161200071067887071106526063807840617004864075706913555886311102829640031375491670660424415575441154038716004827432809251177733106916810727521462075919034571615246701739432068473306566069813376246809991908642180252321491401428306440067935616225627126848113334181867435409190192471190757544041938203123545508893887774017913515336273461033033500581950971791584786688352516768734932696534809018988532319684702825444193474455669445835719120676898039480126573597911045491320640108821730440777683643827815265101163049318186658091543653639472148290465444638157187333912667871537716523247731332415861526746574682803950546336224425936398427959199519721853353151656807003501381661064753791054047604075732114043377807860146006946728353889724457959310337346938200678859385915770503187490042445264947431218180846792385269592814825691832830841784798124743472547873190152805340975242081106115754830586639691612464050445704536936450995179959820463039088898954028838205021024164432249878239319931089794825977067941933446109998659283532642189584452262800491460103747721049363681014374042272882547070132274228514793813526279380223279276096172055062731367898724010127004321863468806818402396462192271367475221277942329057525499153155307436429216207445232488268090226804861012308580899564989160814585314859051240770862177236619974160254794968003668901536345451752987978648216307665722416437628795419757809423819379425425383263205074422191910355180808521177834395759846314175395652890600259051894914769344403583556662601108625795213060185072917714972793610416737547175421292511128202187125671508264549879746320078456771317016418549211553905799293664426765104115003234239733911446540633679527056097571406629108406623574549117380632437807866440241800548773247148573677340540150470004503549091924325525290073819081835128351208113323696787839412442332045608306962303251236039225071171521176262183508913936750817766066835530077769509963301272463414582250914048824658395156502570695527267331124958965716400020716851792735054446188633071636134840135739903372045060272263308654286886169133259992758686967365923795502562670665732307908436098613156955280100689616909595198215017114789167338647610885078058780506400318302849543781477443318367508954824919743085080522376967284347988273438057720689526582894787615696341756757650765726577875903981435102979369547645573760090000908116019863243286565379680753723557613815099974984118127504002418199945305900021212607522123125648008805998749548561980269130382237296461653840775325893284405673386433187957654209794894924964104830669691103602846959977426574775815008711092016677938628265815829963748120415462730759182806011642545728259307289658967817410108503612546784031379633787487977348364625642916482605522225929464039405411943691601745273222379707698179379196144725554617003958871698671055722409457706957428071136513143134131526020368167727680044442755259089131077344606472434545701582248761064629115874500304577621163679708698817484514978465081357829324943169631330321412962861674176989988639284494447025316496775300184990487411473826365261773686243854214140030615135710244593637152404779812857020937907102749666728541704798923148238465822582586254158157161464451527473679154335971638417393782868614061249963750461534801988940545403241766171704890648939794030059044066686796471369654808178831814251396034833993180875187237681045777485989787655097277502354707847584628060473401440165853545822285429550218837478132959345727287935523767098342735725561874335971261366877307154701002060769084391138708311179926970473942644578837939057629854334901172255527129443841705678939340188372976189086509075592994100537465110460811485872045613191896871977711845894895342799544949000336944212725799824264529650972454860591528569635951557417539841087065899670205197910491074577221345278909270866898948070775735785283851194465405780108615043766910336194648195858740698060681534450413248212268001465553723862060091273866778110140019964227084151231511557229467354652154776051510295023311598755206400414766164568484960248923986631954392865175752238068108623238244348567585039506414039016186257587133337221827482240090971444801474819294520478163461601467645888220133760149178789266090486585477109094806141884901035614102465424686196939106108450374516576070873172795689782337350520146216036367815109022867178894554930111771255854619593101654238376961319599625884655572742375535369198518689118942456221311810049738558568817343596829035626903632427320478379998728469361122320516155810218154659195744011674516652278581196202450510967415585607643113389088105844968003895139233708076211228673732780515500748010495205656904624162747909655541978337465667492346858844596473240506787058999848594681852890029373036567310651947191424093558845158726992341589085746108741230055956194557515530778405717702629673356078733389596445695550426027844228677677964699547248014603577859414504695566217416165759102639623033442501152839220484315101104276040403232180076561290926409918993735925356251097161685209426175736275160118756372664181506696090743337066225156323806341602252324800580089041702387737796122666576873467907744347473407248848153700122143810121867453631994715867139995994082599621742299968522808508039984085439988842283200617729198863155865557562713418162454788440099086862480254387508427841994665967235902899468930687082663492351432857844510518500566052040532094805502044832920432756545990979486268567095347175103104624051119435050293649137473659544296579204072853571543485993192905927884560377068652325994819238653062979670935348571863988793097761526420771456251597228396129422231079103614874894650344405009386443133087987845873660666622499056470892370579476986386624179502938250418016907206879547360281542937098675729615080454731853931744109027534245467850940324878500752427077290725062593610467976481964450685823497806400185851465903847122879126723881127646455001513179791181298566323481159195814867988685771001096270725596229742507554790288497304101516237018593041162887774919667249681775651112117578512535158412811966360830612818681032263375478384638239725016797742462066012270885151965977516568555419846998512478140686222861511198595338981243486437383228791692480776012172698346911842895592275662653622529780717440264215001372561072820620370222836479161780474753181354584575453732986511406517548528058426470156343681780925227037513013077345755213395647624915202836501663296862849682810845465320200775258125161261076751798096035156257124730918246209165066794278121326783595000290770465453804245048137127757078146547160445696798207085258208923638078301865770528624609967343736106224059521738663043061318770903882740338077355958544228832810060270087462207076619475385268890920974729228400664539566752012943516505626281354954938727557921035337470091999098611152472301012739006380347890890080840232693429071162011615599254001381692716774107779978844502991090803318716712035475100659622370307629759231293671363765525156944543864371719217586381601617500774090907966940598945517810020531821882359168341538910085218380858739732671421814139349549319619419810990222917345433803100467014209002282983615805799947228252698427359124855256995679759796587898219994179985700694954484587552005506178500399095047401509011728668001111189227700119578489746449920309838677454891817297737889577065433975768411684633437374456799624355115070399860670134546053398562973449284831679648129267144644740960577153426000785972232778829680988940701194625919775246885650307859546693003453715434238878155811467980107823354557416007852238833320872696380296916041923159442130355083265683370701100738732863926404557693241283236318849331978835544199683901262107290825494814049144851802960754111246484895316890180634610303175659673903481766855661846043713476847904701797125400443004223024659632405647645624681768290370199575934915246866410935386674152591141105093149634310067399997506704560925456371678612990442056308694851901527497131094794793413857810384413753532667124367963895814827427832729650533401661466118439019241577489661129416136975992379237926708510217967144908269589197694211160141495058769987758635393731766291664152525669391270619948539315996920401189030239364373494176603737096375059815890511377035032117959895897255589898312126418459700508981160523449041394690652745545150704408911732219316228155370640345909205313604185766839969597419024981791138954952125625684693136739176326616788735584895483556629980778610580650049077875392471020511318050142606887001204635749604421136627340728401861340421547250893500353339272763941589661632568292077604340956819184952217850608573880140074649503122332469157578035539489808055188606960306732486201408081820068531291308780822538176530394166161184931131255859611707667917389088750308222060430597438246031448348474250817789111498371542449569826280621995103737297153050666881191531113193733430866518465121883132626948109052793378412957726278257152168069658029822999820343798184927482660457470733159181847250681297295914563140415317232135302051673153737676254324642614701331533142015120953748137605552518654083380805158231044846371244351722008234183445076591337755699066429816877014709651993352810072636068212729986213882868822795046811800713912868151497544647440274671989615457444011035220534816408635289702477528133062512994828746015601963585904207243573885146800973583202896398473403204784464365207848720761469315086895067826626796320301257585246685457509710350332865473054174329934347473068989568897330999272808226134519607455225894280169643243778202419197477060605027042825071580745957809621694983869411550235124766003642092470345168970454310982556284577243496529603036950861173146317740281920937066381500338364248941763716435275222445539213397991505180211036806387468977651293902607935110792611322366430106155200412937625598783324997066306622780355520545167332230022882676882054990128477587052915773855797279871133836891949712987209692433568142766733573938802233216637067661493854984870744552420219321656507572763080065036960961490630514882549422045528703279685239616906628770635709729369003307538437638685822542396850989326890402963071715309849240847110089797701450987629255468700436140285772939311083211990992353435945284553382571836181882813802207457927954840025383935390477223549125447911287537429042920725203121451742065094461653010723373832325804439806900331050714005106095892993001445352949867203722075176357944631838658634437537232900678877346383904328961889848260770505389082020979835039537651675386283571334104610936436932357895673825803195318106529040630079872280453415891058216628563387622200140085414519462326698191809259212012274183983768194123474794783912854432528142125227097625883658084643907752007900542215200114240923035012544285863773034568511913894428535702293595645505132964092475587338947391279033342138336999293744502002256983835939304913210987451259639247613384931039329395251373251765664451881931570943741339139593723847037138884597819892467367392353479764233473400225884247836518045156949519367678950362877018320077528990007998797850226210522401764933777452922726268301266166634888987712500564085257964873410889199231394982821789643848254501919684458828044967790689486413366774814472040093623394906425183957786379641096687773595314226626043332923145904706625554430759755280157585484964618469119353783286780493456163882398162072186067121342563756896216429703860691238588493944810970746364707867042839060790589200072538885775340305899346804376621114987412250986415576994838506046335815408546086339409643197175787763603571494623371036657195091745525198853450350053346797421924220846233233810427057523020013113745608654799593136530394191175157618001856704415764939464312651359737886849134426623067881692857292400029971536514664799077464055146491623519752275747983065674659120600565628836641840823392291093968008567854555908043787131711139702356492291817780916913205180929547868669217148583170807471245137042456910074492353113472683927576515327098613543567068242375203716197576043135252156427231254327690971496830160775932908234311628583700221462917325349126007464316313687360185374248221472625462646674201659970576332390201303893385163803369069052375413226833181812702857735803220680267224135538197673843727026409773377857921161408313913396458359892597395691399903696379927725761659856634179446736215468519556370933599375813771129195233977431545694545758217392149101765495533349382561280290482317146366280052684511231109308605714942565121521736115350099730954544414974900280548529824483032494119088145377073937000530606001110257704140967696414144778045819006482616086056926964120521864318620426870497654847767683964651437529467638204437222590072452706210032720414492390097339286755038751237177926155556268773831075024928671078473082182569079000534062244338801252319891852520209208443446815587483571339987800861902756948122071905244046214948354187671983552869112724179652609794653426174152455419867929191330586590702155547332914802941547558532310750864506227538961114985090456987339985618668880889293682419765178581284839117131911734506805221983776256906290787053001169955884943656153937530740590335801322849394283086943280583176505360396176185115423326083925029701045111762248471785783162410201992801246395848395103757749309029652741691110950006931025392341483668278506167014961776830833743796754867327975535544131289361147233392609874247588711589870983497093806349175152310834892482694758156790551913305627984696705595418201812191176352611091810441288073412435504720962439370094109621197235946861974438102860037655970790771825650404585660703405480195970530453291706806487413445970894637733898194360338483710956376307970243916754340786934292821541203616449858266586937516163246197553986080640728208316415713756651344080446824045950756119745893028056246883253748089481830585881862353931565071769538658898364194980512900082893329981995891011717350161003155940956574694990413379448007674771058474241287470787354706205451961880636782114123359026924052943290974098002000402801101379635423320167955645876036103466108710467142841102842261417608901135000305692703231453885226647789679478118411249211429025644095744937499334194776658053627033866267176182831976764111431239616113411232181996690433572303775968044992330661649638047306564554760173655797209888405951182969199914977964974710952843063255351352844065776068420485349479503040515326439966617028370077527661514013246839160296572670711265553466902024313031152499055102353323334870019544472143869240895811970555263418031227449051572071493318922628759950660631967180049622062039840409341314138415150867639828888960913246322085944684963273517988871903057467027783799328280351705191947690369106105049313515171573304210081085154081764873022031060888888296737945258113457866120128784079115930785051331756568655422411706079882953624590290634772096235757492307564200569702038618309087175402508207417518109948674547959573565260203540899823992583806430849209777108664931983810973611400839848809909996348912810346016445271559312127672326321986892684232326816726971258990707502247688997634465058250770164920398931564354639234589137164277659469517701728438899031600176466581586612366727421208217978517262086392830588677229762507397013144464678924848468069113983262257537618204382751923652708097882102463177806209444226566959543159252991081971048186399180079419742870815367329560693114026474798672901646419265928905802226041309297097319299445503818223529544049802930941376781911049588816647988430004999978335089143438161109983135149806811973327481547153466157150160605750389234172620173151336635555342830817052149285703168214277388453887891625098938139890530028758663611477798408066523874479392332405281884661764482971370460334211262778260435539228360323477650735729429980323310272078763677599506626676397207286692265442758912377936144740338663409179336724808104135111709262675751572553942463889804845706995028749827596934821320621333873591793911612526839829502521610592523511705108471143567646099376673036671443358519061480913515243530837403043673717082594420032947690945703636973969817475485286721992112991274767295662016485839114556293082066327156847204968574828265927165471476268494073090982406503443647097316062785758190905425125783336743120456042317352614184649345799312734214139879317673318731649781155940937998509163337103626308604460772335910138643462451540000531886899809494427315739275824907508683802929852712005114484127282978250797926559802429489241301581595623799002542237266636049343011375075004125582341056971315033649999345261998395274240542795390967143473813096975736227803070010190356811571108079655720141521220762314904504659443396425052000837883225427286132849314371770663566094005995374008000668711334362873953103000567111390908179108671869692029450432905183449202195517368515338637541681774192261292613548267698350201071806663659879906304234556983709019329248826331955702400327348939525638511652915257551253833679257361229992609051873854130413589008114190074995370482787373378017901689634818824096619674426682014697987236909898004785152938327407776501861913071466682651943647448052727306914885411793909169667157516396141108749677948266870646528958162883235780211564610691469717621237042423054643719040327616597166767765452019158982697019249519620111562217537288908094397991643653582240368210021247937800589226918650686850714044463498570811551455179090602614981078556190513097862515005513815062406819648627803730926837197100149551031743866825902031096538000978688991709998623624519009696912533040485511711689931383670665556584749334142978318225111192357821995748395162224256335769449260691015580651758717518771624290178526562041808058904331939936366531527134190344055479346397125955272607643006304858616256018245063394099398813102277795728333984493721622486601681427268636915996293717026258520794679886724520996535971012571568322962205093887227286897093939522869380314952015553112635285635105785704592542176421389637346936660315112968781395659376517994009098205971794197174120141060565722356370475156113437341249677127661834625493494705383600603357259504075110207709160223609304386386654415077451152139184218812039407772140908787058076042821620394187633417281598138984347247670892490039269432252355514067505392983760290760557841924320972258437420047088326792741288641397832120205854378624142140624192660870899027817965016251417125825865068593611484436521305454418494244365330074516751138788822015377404901669717986888895845916180022087203166642817830904960513593196646829662073639695762102324048421018793299545595839432326167639621666959497542353040467609085240313661496547299507090040818784524383576000956663227038887416965432009516596416717272615669359172502058736894302492233694123589432866894430531324007529477359255060660590069236500282264895414214538667375528941276027336597142817478215407582476398625985003001868942649464661704744675619281567666706820534114981620116433537417432592630604455480835057555301804064422657171593010577437545069751779849368184095990861742063950495896495987054885466026903575642992136505118624316757486389302395706260703712133614591376470172307854345672295006537102565512995955199927049931790364061369465084817916632212283636375186771865404937901791191794065559133865112410685300418497709432746820556095879710465736886644701506331272210268960191814658964025830088120333242409575945578439999792010583347764597276949560706632838864636484960835778742917511253566609680055621714302200219080567421734301509051806752934396130109851641578620658599258523909301203052994821661355699431017018999627411698143393292434025085396883244804526002259026266035289109122512171991161585638564123096964628129551079760577769727177066000731555047134079661242083887240720377743115617454200069684599206229987297095328853341927877497318798329677544965643301713613058160474905569683406513765616551264174215749532728632305748536582085332458323833072517152222757039323397609587501818753195024519955904042983214181816613094059672671086909630609969148275664066786699076330196728037746140487284718376205112200334802321980362569865734133009464432661753784159709797526110353693166087239135688101876177792056612507792930041931884171126066048738303824586644007959246465540538233785093074301070047401171144057302048648762567841511577100124809974458909360548040469780592576350434507188217414426686002772525946820897988064537759668793744461083800306207228324913278370004648877715331069179606397014767293015125913504584294899352618646740112166902660625839561018547322375229555881785537724176656767934754624452178917680803190090895033486754510745416711936032584487856465270005943772781985790403340802526408026113981069258735741646418955961531004850701877492539137357207797961801239322839393666430535204216778006493585660358793689335821658087486783575005577413520250783410880960209367432789421188138582577050048981262706625706360173725818643322973072760408999407314533861841871690425625640054211960738076037374016293348503202846958652366493266744303043932082611998889756203970359906590710449264355067964968325579567794949063022654219294237552964795722175560235567376396534433298314816276125793781487183319180674503590602649388463187956932991684546182918299295552944934770542749000429307521675442158096516141423927248313404594236431326168002724304775239809626788302932560195454013137995758673868049895987777423104947001690622059389530754968820099023783492154871984587756231442181306413238185377198572797298309307530768879065686332632363469199645292506678155045853998538733119142981661191640676822134120032250953100418764496556906287976413955160932174669710542260553099009022275906535234535181941315843761868096423244945302559837303519249123082393318886170408130466273707443432004063830214195217511970565852313210139641254946846484611098472202995694844760533127681105336145186994963930236224434433804419646345893566433279297795514584902595449441191862956138765145243975396082605733771409672872590955517379459191589118073544291542168572689573444506886398361540795110461668002879604185122009959815847614903946050923477160886512431130591029181463478711606260694232104740937618846443345696962540739050607782039929315040905698155803284836761502532026390685310711614619983125067475167036445103281447723568409672233304615059578777032737113040759077544099942765254628621239972686456266216523752888273312339271502336559510649728160450576532870191399429470093367378696368157946112517666636394975362337383237986456588269132444687163614863721988497903423296117091065329704752821536720677294507208363248668249814330911018114170800290160190478262901141188383571332663056975323229523128459349821107425838809616472799776781652528695972977671027378488929605329480684446855520155395358033164223206663622903621748509429288744438541155284252010200223149683374339967694630050093791997743034797564801906436155794956929209166374478728232032551014143816748923813352143152321602284762161961351704325611677307595360249528552691511043631621567817513309385098391668089354017450491304959127278316399210255235911093147039476506788361667994754102993720973395382105399876559879254518013384234738604390348503864210365068499337662606362231984134617820801045977852256254469163238268199816522357027410552494347302014079741472426869458509053828547449048255724123756962137284608682067023335973312125118694512397296327829892171243466812637220215996998941048976358905701965747650694744200254119691277448050873926718887969464685743453954005052322011908135686420944563039103622573238810631251793947518983308420796378608577024541389084352720437488652451868111591688562494370797216412663608678082724054584290433678228936843414949451893515936711167794496477837433308985223401876397258841377443578365794907002403148138799539013286958454043395719905523269004090821891489323185552361863839386559153768867209658520284488721857241799071457738935081418766132080729530479445243559134591367221328822128188910332245293483577110924583648543048071273829324045035151664244194804749981774731562938078456179957376909028661440795860930402238472482117908151157816347002365106920033664431029755251188244981738843647781253211902789992078202683608919341157932186505768652780165592052425483746129747421972542368510092783181996204384084066940660541741044476705877355463575757712595362152356228268556342904383187510186915582664061438118463271442693557484441109154636144364664231551636397324731018932798192082200441640914644041240456240361867294782673021442145766940139634868038188216328949925063120915849585680112320250082826603284356155486657238472816629021790658303073705521184546243117997491574751014052263099240567355401695571661366593815938649613911785423915571634334953027010473607916963544966027079765045548886320413261260745058877484918255984479820288816227613710570175901427746383346873982126432098136412671313729790262760284410747554024116145775523155226430549693958602741191567016416080227751961246566858938202681244863366914276976985440150851419630783410511049335665784315274071944551126249801888156899866095909187627932872475645957227491250856187490923513126688102628814735587239236007656390144734602717175704075657007371613352177631746888081360781508209065921226193750029127204810881174064681374044195669419150742825755690691773255857808705792337491878420051190637170733917889212555186654589434566560777297746997532851879760203991644079609936400494355918914871404892978162316879216383591818547955974539337073289473676096243433458145678930856262390598330544817427417323555840919555244865117103098673798446239813352740823851546934578960501159723122970304409694003112790802754849644269953334767666600060918686235131157337493445566534474506291399746488406978340282940606776177663756740329445957244501496564611653325894510940545808999346049103020152710373447769886984143652029155447138728591672443036824826614882912140216927136790914075757679522262884034218209870959757273197695622031345610589948029555842452533039016822002429348175229510024540740064674981708181560306990730088098627617952094283964825628870841799596279501685633800732373994610883717418657750963136730392068618245464335486727890182423687089623619971729188658271023052513324100449300819785294271411383989669643509364997692359253654620233950800409648604359797338704511581875766461162789115143721330131110756376139666083932562466972540714327933727734679215163233691396733662550355422103744402181269267879278777404534273090647405029767080939216485878800934621241889331819010998057454532176894857314697778623863733331862447352335321524594521871895934719016573716609411226304705858174554384334570406939912983167580701374434825793753928488363783928388161610364200292108162317084194362931327389833070795199638735613288157816087007418451553199315242201023676812113581766159078415266261191740617769061970692826041932482972331214332599578539401867344212776486798874831469293219388281988534193719733667624113009324099256108032801987125182066616794866839390593189629921517946617230181699438856039598360155481136159055838256094432187306973413411191556889481075470120641464744671038029580002574565495309656676019450124311462641599760175169459520239762436157861028335220657376281004915185527354158126746978268834285744573879243905906837115684491708810792020188154285879153471483448314788052755618328417140584998800891374733614273051657646772744591085005294690548535674259774381582619458794739736127379625872035807993305984189208300202953038794240287591608472608787856391566369358708913730266774444803556800131549420363333235143837175550812964466901595126888949583646586504943756027434731850513118783054672358659844895312058132441540603964992523651173017305757858412245766351779807842740115348739757528562872386753781562030766749711725548046314194515293017255633070037540010846514005680674945336489733598493086850303606236277857215322038626817711138659284937007764331610865010289448570130088355538960492467844683883044208676494762438570806074030220546414447294641150880820374804900660040961266537486910880586585733577906092026989183110841918426507161739417024055698367688113861287628278422618606524536793915861548952958856523630791453219900050141317465524664201597030009339927175449341181628022025492029944644526126413726769657936351510802776395827128390905586100854027512477422645799083821961546194863104377698876249354764424301266659262932623429151363713255531717307277469619425242133592350489286220217881786332146973823765524190066009709064982038637344351734230184613383781931404427923915849412592888340659619104502635445612388715121831605319696908086890797371722495182902904972234304646429134290191111192814636066299630747100081473583226067862328098974057691866672456887889180240808046525000159929382786320839780237980068195898083910029229114428310503752765905804052470534017248977784080841315862335531715668312000626009066329994861730848453045719429562242550951890645718234668606635383436218807351078196682668366357999347579794878464006643623884763959219541610568844065752375344276113246343192724658075091188724000184988774455128073077921007670289497376015714734130720479809834261776810563630846422166516640070554580643732474942844826204791491423601431597140462118715323290829076985868140904557612239132409918758763275303194678819915491533037789046652925233940001567437622563650985554876689525815528075849689611426590768580460289956688010704140747897969680965584103585172451373831887471254105839405797752150965291255423978820650708063928718707420971149472748909545795174039814230500078614099997761697129604801595458078119929922281208923942139906455654163526459049355937908777135669571271312357689613647174900935797545940672414015042691515219387667305031610728959293570668799926994061089434669044182945824742170636050627118664496324788330023587288467953800787873360731690687480785766130734979444599945955171653428322499804964562085583251942393193448298891176160525728155182862979890165340410132737200501132486759360036787588972199493542728380165700454064914896911231953430730580214261318950605458062006661884007509547684117574975873853273267804296095057248775838903503661816731178264777230640665513236070764257731381290076586158567378765487363725090422744358650264050166054052488870704138799321380493028491498711543066442947742753071795492060045762825823500799580550321832731612698082807782477868390092349237864984049790164516238538370706767026504271854713420923801987993632889055512092525712744696636102014704730092958976770111044515075571354256996579079923688921773294504744890214365400010370355571808972219904271762483953055981981373331674045775769029738529007594547853174212339322688782229886004605429239699931921301147743442204412307117303427804980551659235665530914076977353503612440516175428983943821217351869346647581565849636855487724458413256255064572232157741487644043198377030188540015210791839496829519935687960994490414122238779318250151055490950503449183836575234988363595493603483603104538086159207659155600551723596677926706101848613650035105309320373236298991848545364069539279281203211198497174471438553719245424938820987430200150371387366508398204972887050402137718631404041555944165325185073685407154538462167065393067293179490192081490100252453085293907036394611914901859176824896240373001335659498494739443742472641157535422961050129393458000644248727653785376245393741910941766444903706107988597110949399297621663408532286833950786241959874686403124720257330320514509287610731259549776466181779349695080719813314837595578068630100159074735982348289971725169451583078171790835417665539889199292990534119741742233052706209235515621646872825115090068548503616470101000760902618256519953374964234546788643909416676438489796732935876257052714231486171099962306462142769136150722296474920183109017419398917854936334356134481613023334062171356264336531430862816581710431424123726193322126257711189294127442394914040641080013764245788665594641612882314333538629402423862463426822407900906346210883304768237173448864299554052202925259384818845490681450653446690254329833577432745601949790854839339873151171906774946858247003053688254192945562455075137992724677201304777921573072661376714512194104742409396750240748604561114011456558199528887905494980684988259829388729818407958013994838298389657383464279090910333884277661115273043732097464198603780228905279435385935528716060320769733945739720566676488651417636170830903812567055297446460891930369466315322300839362713490409706844555590297761646809893211881463088003271991300197377122841461246845853299890683435268448230515462954736845631881990770045719340169480124667597679007815512040552837136571469347586058647444942937637241752156039380253048780377344567721888846541626730094912466342215054717580391314036547685555894010575429484314673993322356437550168129003191042027823000173863295713219786056355868157066330493067679623596546505004316260153323741458218356256962876441472492816086141954608959876505019793314912516583133884028742663348782886385851213390771254767430831671162753556413249170078404918678741404066645992650227887086410322864886956776462478253483175488127238938346358276820912167659750925326766620192110869605560468555032016362014129671061020569339414007079660834407520564842449765145242331980580490013281867993591556234659807509533929755453979709603432818325998096809524548363007228497613495835601052630744095651229693137326658904953477754763210348125577707399564059898415709645295653379425295631781405765581640322813912809359621932629760059028866667838176811218601897085371664054073509172142251872723424773180141637675117506722436803727181153562522079077202287856844146195794224534184368425022382779013592659152382021229072947887945207179257455606268204037183098104707038741610433519898677552492144534362589124157634687329561049973932448785289314182287247572014529319439763813753954832105246507965876740937637983563467917112233861033738693732145935349302840794475236751670625466859146475277102337989071924632255436020576805343867688087864915405920934652800974826249035317498866389261685667434712825770916407461051305886903011470862017732472039543012372064185538335268927392949775758613129022108715418308516741295419619608161938801747087444834471796952306844928185629991956240790754900102789256671738760408313216990733100450087812281932719709991972825451370304937135781714315454478200706310300949153323571896522856708583365878367171826500230084749465068423106069227373652262632279889194081557570970180867904460764196150326968454147937012646163048549865528820753266111000655963349123858073790730133823966994202654586018337791103787358370823447256861482443764471477314576179008327535991121008839854702309252752698922663739225544555749083221988204427200088720476898925017481688660397605480362029503255729770116400362908420867588201893564829107678717512403714199283869363246035677571944426405282477724082399386198236261054894674943607695117038832224852225084856468693023160877666842436936477968443092998731638313568238562868388181714323730853759015192253425272597674059618709168073811837031846742123526128651674071087306064170447062851066150680612691842909831309059244859084953212619292293435445144536487191655412895362709370956423815078735518505954977514782706067891174772061009123498679043304284867691179094777166033680722096315997839093447803765271612907327269904099331249434178532713153103669923644176021700079476789457773717572125174452700907706623529667624568346636167539246970863482044985325885226125538883913278147215348832804139363134550187615605474191503784393862897798381587109221796134444713146293244563449905947342354855573936787794168728166634276644830362729643038899135037292702767214706344501289360590175643152591157949896693348536911778042392879815790624906611309335857458227372311910944612867999200731270632762779118082031708706528601287484110737542763527037643226600761449242819110749672768676941216143024969041763546775834832515269661223981133497741785635295873025160087464553237663543793315660840432458418330820279641810497026361675564582075918200510247986117572845335221476520397481212414441734117938086974096275663428768627865932858318457677565367492031648946559091668252834690761847593000975242105489104756671503295508549160583060836131758988147166957803191575261263570939943611004978129795690470194905410652919321009103813052210804324518069007025037710781268477148040968166772865784410079727149005965891660707188110561078363189205047461431320351789902530897000286235778143749716831209871602228259623883579214523428903528776584839140637268007561456336975990466893468961851239434512370850347880065480365345560401975536905528734253404702851029460741600429951345494926042820151205623703379445837045950586863035900129195253326433994715984082754517458590837327548064617069885985072314599771433063595886990304730641540350207404580487339153495440069273589532739594833397189226165764153977119452174632587210435038111761296482739730423271495344294602448034885515652917711019338439933012387200393392464251225878217509251641681794522569949049323752097495592282360635625277462782405028326462810165122183327467404749251980845308198181967405842580254284022090193342137618940513942206897230596755464403193456595623370092524451515402481360957316396801063801340098478455302244711522132774397220950496383406162912934899415914032236644547404452544040131770776800223453235934164727837474558509344575728430853413219240160065112723684493578032742386879984640021557272293935055641914126754494300670264202566555193544861058064280073067288170989855899002310019016646379922727702877731646536680434449402183280638778881179865739752508876356697592434013876994834048138575693505593005366146120283195803751399489047232233334151027087288361595216569879041183240143359031117061243423438205437297590366053894159737687063850112603630994390565131414574528215251664712271116318809045371999279551906190915200090229862575196036224114299352673859808024962904865416556025524117084680783342486896349460314082620790039000346570244249452208026254072452114598098680989282098642192628791035579226832230042390976356032955848691013525933819045107009922294741731061013275272064396973775046681208994717223234132714182739120894328227846699849533114738319730527256862859782988941628979650833953988568957188708564913450615903212289549006415921010713485931433088772303796407806180233619454970244801238064419140544810042565790897277847635839995162391672739194845586637529826431893650243725176175356700239831563252518298073763520808732740980101164879032843968573086418536562032280117258216365378208608153713391597979043093578334363013101273843469644871977197246483418101856689116110382349794815629731951981510731827042270173686641409007562069457501298894848866671215110924090115784768183609415663488530722759819645968387134890251301027493900266230499118878540375156087330852009434968889784087579740358844878880249596563479264893601179352887655478088008827373613310734724794487235418361168627882454822848409215510826115636116046894374483433420427454951443417641739915908048260630613054244522582421999318051711113278112801396588693867930006517327074860485346999496299710849572201917561434478936890872562244641782217567648313857459187063591750519693332279303572510200260712426146096925005187524647391543265727681687866545546846466540910349138061279093571070913159877200435933706680530941606151378205784649337560027384869424040430185638622943072555362427847593983267860298144537420071177071999631087420416909688579166163308842463282886322042129308535539805049555408702752341139683653406952214007804232251692482979376200416093009254004833047665718035698127034288274352696410113530788142389300604120287723654257487940644426619282888577447957870836751908115672453452788903878137892671416630514265395260133661852400557160076691313641644073439144950185919221903440120010714445620619177222931180198818374901305147198313983223223060294331172542072779833374614820354909098027290470276736467893859109348831224061770442029976491095568630055683675664939602315749135814770604731146369156729583331395707850430652542684214106964458976296025473556170659223316367186604178324231459441220126783705752993308188026172384402139395503462685522600665777768386745553405135195037687295203766995776941373278991891422053221577012922831164644110571390431664466354437811575877313398231529486545988597164264879573722648036378287986140264202232821399768390652087178771543739127001377356157942660956712085904211239723113212591185407679549854285854710940541068833029099805825960791590784046583723716877504692416852601715029853001368923128373226149636915256539314390391156055444855990162924484103954930712188616902021839336635354532179012165272975483361822782179513114744628156374281374807633882570665152301096612650023977918598499918152670490609958115705365356587289970479064797460234125322936232761987390052201024089036239144309551533018616657124527305548519069347226271916606918546522121292936353612928579440866692790726609577208148530401453736787774617667824851025512997694967458988983063159304054638962368352952226475440629120785443916111882897725359243394863997799126104198889388623355267395049268050728367478662593349142544960177458827356177009703339542496684549475749746140418382725254642918927945904839384176720650528780029085562808913428817235793272208758132740067665812908303381332429661284660300883588675547327808934180457360885186818710705471195073981256135584363364905659905220628401173674108362197742065180627860036989591890529692380611180031808339192569282133628768930389725124022941687040304952562777840905041550576940590625605583171179572309172130523439094870948727594002652992741180560671989678047735621138990647272363071838519423846212698173268182470905721510639930815928425416628949442989501879202410209655373584167906584297530296975045901520373133639660320372528829526114328665552633750025062036371149728137084786637203209054224651152670119856476114875902309802960813339106824010498203111179668194848048926831307383132271483455333582310857280829376207812889498085595632204371331109184081603274760912295929818978852713731689990630465600484730416987120796110102152193930245919588842060591806332783353522411062458533548595445679261827142248231571448612586137729890865366674446836866418546622813420378799965261529907244310555656365634798791406274324491993662272992421945483927225903824851909101248248851423910877731688550559489998362544352274304048377781026717256347051625488099339637297407680513268369440460712275343888889394926834470992853379801337429330665471819796866337095986235779672219463343067930035268542670437805894856760494145830895829336212039296177308062756956381887743381452638057363020803637690144138338085882151256132787433224744602436904234485623403230717702395024884716466697145924123416070454969709235374426481600629099590934733588505202065644160362360436533456891985616130438839604603447633529195300856336491727641673576681376910828316237990685417415525166273353648583487053694265428969734993133448376302131475454202771367621137082822416593710588399538377156694839242280900160947298313927316722663327501833571687015920791453126359963186441736165176328995641907357800333737537995985404740794127231279490026685272131770895532240234467168362804787327603121139257315659638336071179699380502784626804245596078263796745885001898434424492760509680815146791582609934452620210117120368272755993447994365104733285606912530548785950034755197711057894665560875992990878696841373146702765712033760735842597063128917993242795350338280724731040975355721694539627595730097264745714133718308188250105086945300040020266565237266062561634486517649607564590638593936427249044943712375547305038232858958936038602834666824539124720401938080942447335201767466160781431001006307443769834099499533982935531382266555376623825665115378541638994379168189407651168505956198528343138891117767642820618072581542890286485245040166827967875797447757190241560841030343028849668200324606674273374219083042554465364139714506957071587984848580266379053611053111924626844801544211276013730753828048612088255656237150016110389730134380411148943600408392201593701666764872789400973845873445408171095183068031335626383617047519081168462896990989180851135387864706341248776558344560881230069357874056552906715750901045876796710794633066672227589340261419570754017259728510986243041440661272865211342336748137401884167100978617462928275337747768086277064638785894552986964335447124196504572574874061515908958663132670228906603559345411392184419365083350985590951103926415649139066818646479555154274861430636385519970797296505337764749947572331953189023820430013322922197030119965699379179129951912124646571130495740619109516121826013173502598273349031081609227174849370954068129932623580123525638802918631478018472191563949086626906011430314532153765193158346732401266780158334027204684816031890000549046472402028157775474525508966306715633466551588502295527949732874652406750141674284483181860974924719777770798427166423333918398668569464131434988627382105759230164111536477660140233460586923093972363901854509501534561401720399680779931916548204983417328324910415496849939230924393805128132899326616845777399996926316831922879442871041978590237549537753800858702723794097066940067236106234783006389751271115673305712111201729655399938068706136660545450000138287873471325418956453422254393235792394276810457378770296307367947739445720255846374172662139167754014953785932780480486287189809896613485340693171124985734613907841264280566913001614540107195834003919467865822814282326418591751524300112962864536761042089404905351191586087464020734140882284749143597480666891636912612739121278770593726118439888845661253954290336486803778082128806580022012124022494372457868658787771259820008500862047428807603586690727640001405064833075584326131491441814936906034394492203689201427244827136275429319449692619415048388407201232738183078252448632383773800585892134657415204296552092103766432340047025499473021048941866393572669874921408582858039547224632682226847764700985648720687980235481441788606619192158998745479481178257586215941775389056098742750385118762354017200461316900981585872170696687956901367040841717317486522930676935521039738018259893726928694467320079736206687045970301453164057264164643364146059240777959434625514884434537465294298101617559657413246575522674249809360347407125048279032614530784950004396389111452067098320120763721740468475485933790694917712728275617847628045891157686484947363804942243135066814357114346504371641248596145112996725666183092340383676684368160896309078720619202223038077857397164850673244063330774488783096448017692814815172108478498136023695551294380823196315924601692450600938016699325292595570077446489021405143401442722688614115514680315767732867652875859295532015192895576849086833993743845384195551190124998560184230334316882577363776721870165310836406783746519225027498667103152265614357090056091366118566682889999783846078531912882686307374951778556990091281497123029661679194389966545093795324772864498681896709247256185150128867888009649673715100786580446541558732048551260544523293572805139660406822846170988189060768595285573808700852115158644940353671147595456771266258374416070555368627954368493102097623237531550455943550303551285796342819225635553828326420539825547389856597218322565657431993715794217577237454026521781684850468099669306830332345954587648775226998543215767531415946976662409969166033724391478259512868582964014008754741571941302182832359859166128078785140001869386072154975774346612214045572751258030467586678579686646063046241119033995662782812326923643029233565291143301895313678578419016803970642394768410037147080853666838569083257881513343446314484306153248928413515506312588049867544566375823101382684692086994875296795414715656916454552740753220045009658101204427122423373091197439326358362545529754203104698125896667480384725859222289188787164865388884366088908471474427681438053174294793865793819617200145015237524534289415575271486341937898156857609017916976702842239853911225717196577179516458246522354161372249859627593532684866517638082197840926633011213617509830506185187073561058296655170529850948832467665665624145679513352962801978197590790391537387826781502545901680351766973779205424606551253748934794750658041096338057952701343607680046428180452679958653176148458133659695049106991838157630256799898354480125164763614237066162815029113007721368685329710351709245723884635452073963904138573076034663029147886341634110559316179526301680336499289155788650905859775952948021598190584279131394615669570780582391280463381381544494430850563381022135636552284848228267442379183773025462539137386253409125869218597016187046561714848256109132576724991348760822053006174812096671586332334056961897737379367223570171003637257435869282320473203335896869384040300497968862012796901669847166838177185431030817595057510541793599531808266109656267600413380244595116797467570439196415549333103413526694008776554702307977418256349494552781969100708892763838522746835060861091118483331009588245533773129526156801866290894926665807208932150361779706499675783438722808701849241894674342202412874336133322688461705992395129173059798825618438804357116881949849895945018447998644596185694850172468184398993259576155953014231803314265063509101361021816849752946048779914411219357889845281224101199533997807376560478316018618206771504915740936069042491669468870848113833397468891934535351136199695802752445721550857761285881456148096537470186833026391547083608492557200350578651226446492417897297796436848078258409628829564385735462579040259371416690351185868966042662163109381842692009264074228997986786374776646856066470275374230172638362695539832302080402318400702451541038888461208666642930617760331409209868205113674163779663740976265647793346800599119911521746397983181132526934090318655152178428545197824863993221115635916835607690647580913102551663587390709197168893529016761306008744518358311350435514674712500537407176676695440357103137488937909132457348861779362813877440822494211718440837956368058557215782942289713170689855179250908905564917903978022394480813290449972333800508047566929281564381862817321986922866795789214400194620368545367301018704107688446223049739836130565478898971134975635972101229067175779853261851407589770209925824287997900594049563816053018818199600777153375767130833640252808113706979927804683731739093092706084862758771348802669251706501018921419791355416290951329149349402055454612530251032058431803942030463471723755603655782684400223555059220325273240632970696682768299849331491734372869017444446722635644134889671521388801101790332533575212978185889118278065117599272882576698320393224896080847101582184829122715605491468113873541942136228490165844368876094844122899554474597701470999876863604102240421734803841212795879511734096559804411101006870533876601950710215132573193075942879166667177921777627521019662801077658490658131246987543051773357714535275064785352653325699728681717932200404379488730838270325369345270775539747472417808601612541230242393837273553098639521734707524361153544724953192505809190785854289120854574688606365940020195294452112586734307227434385683915539436192427619657169649766038694155358044755763070773540086071787399885612372177562224614014759264726485793249416219818067383687985946005020444517115867710807160267674831624046324934293864583923104350318434510650351504399200164865527607198627555282563733475264344929806983479531448467983846848179064558694940447538549826930394417620738396932127537235144867562503033683458404900993128315328607658922122886658498967946007426988368436147353066677505261352773275729868064379332229904144829363614656111649048196433324530443916660102982990447365418239842611690191508694679981578645760018671342569285977652206945222863932552871176706053766342671897402059496439121975248293873713252367677953533064530369061610263072730711352003780022065031397345202881295613607741709723559210353302960321854005997862675432759623468199144546573422817774713420561173980946559490156926366170292246042069918926361299189204825334881386905799499355496047009049840608653525296621536949980365598934291354865394506448746855622881149410891015128433450463452402186988380186165771785312003858063349416844248013963503614367815863056284177193157422691757650723658348834486973082247225778916670378090855370533616613165090339485620016345877331352327044258966117725766799895156541279044712182172953408194501736703135385428193382838159970773046274244901700790619016245904596302398011863195052127250946124282555488998296438623119077267935657162324726393159593361463596653337379966733099588236580506535921744732699039455289447749055075339629792068429285996404632154372847732433482719736170987015308823626929964590021587247557431124946787299185372916912172045538184400997515666307034431537483824556326007411175992383810756492634768545397082171469130208519159103862697660360167435856205411147610804974540122207563426555866390004036305503562149420577086741143779848608465147676581054991282105517561803337151647071453454121664717961569361142871987520854873183043397599467860757148642376148228994993158106139162493310732050394535682551685897926381670360938871888720850745031320789360481013226011462597991463021970727564363276537078432128966216188240045262190272212777778414368932004826798082947945937093617360716053256985542434963641960949510682250252444908636532713007717249593989738726047747024516886309795275299199014862349456672809506912035363392216386107570229947103301710639293541239308871730334806118013362780736593638101895314825440956014409071689747528103749074172606141013613896054833769975628239578957989844798445382373570404817827404071121251278337351023755772316305602428690251359145462842246127731944493080482134208250063866779753335837354129620295280600651337663163263306745176262024692615198685576439918471229738277956535744868368697803450971040200889234055177882129671881973285938236321189959745082656121994953960089062690338305931477442709689685902756859115948545292275892167610329640361418752463412147073090544009674902629147690171086827674056807886117334214926721159701550509774066394044685375680867604263458488514984927082008316321372110364629148667219547116922419906226815116602988442172310058916277170917103691745643611588230831623638923159008599464418653743832202476359683691048057322988248411545472701688975634155624943865290858246901166172886487316156415144328521906138861150270758545197494778562329363918084811676184336559734749140545110698112775989392411275069914160989441963032261840988480468470325282354741262788920471306296444231074955948484139145688941958654242262919656255367449143145062928235754144475747650858779910951400468938784695871179144733725202651660942267604311852571275530060434529228837762871170682603213691043212175741649292440409907195159501118182948510481373171767254168539792629928759950087099847836110208025933854969392675583037464871017871440207807320269094263437444420011219870291277934588706859241648144531740270961191634099584984921670061154627623424420056915895800593890285021486915083735632981857141654831696025265350894030594949277431887869912928923802564113119925659223990011745080720484474736568430686727609365291591840468046757889770814827535388974170994120032450486451360213738414246197845945977071952335046360532169773881716722876220957456258656470771883363374904745982431567326176584404756195877583679650952215763297815319360307010248236231846079224087648423333398732468768732199783600959197726607267028736736891250267797292070824102497174299377941072044254466393772880803238809865680519747768566447044852172977386023150269317218793945087808540967229697496381875621817562339510126835059287785983363183951982535087078160945026658960050078047946190563958352996764422707434059787550330519456378846658769437191696387997820348462103684521435130892538912670332078017800773822763886811382287948529926001880846154303183363514232653699370162307487828527543709405099455567251263767256134099504706345088032436435835509486098347293108821787469610392767458204224267537627547295653810291255933545219167143689030085981461454619819692263220784442615224829124725648732045063372661064375883318577456912037858607118443205086275188948215247353506128049803419365375750022830831775583207235901053031328893931534391991346713887568886852938472271735415128713575263436027649749695708933941433764329622617996207083339835597094866975173398130279685527664168295010459212729274156962738823330989840407080774621610296006114295002839443937310649656722763499056005363931032707532969256344892622974585939441511847744941286294513879259692510437142325357129305868601084424949658008509795310210909093571821146668701713281870206208461952932027349112458521460752124747849071938740047083070400775547016305294784410089904803314067929614805086776435081652113137316284538650351994727282423639191728571824870048764431683042691500223936967820017986258451983119172035860072902793057941887178382462436232739178066976888206769029389756170436530222322551620096415705923824526579669681108277245248762522392112887999561204254262725584712413266182032364067743206990677811832737231315358360481394740811945040862578552632839440549559459032407326391358909036930464536988690466500242443840235606618362167126134699744891205186093345878039700823749569053690935409891810660968162512283126744920508902193767981769706290847594209240761375882043288680173031054169116650361558658905063269279869727210551700001598184941180210716709994745299785323782850149720946592382625997512118472409314127192546910424629450683855952395157808396981540928258276539215550788391903677380760826505355712957152813649820360548371533870845368134492908903987480463907577700336682290627374933398332652573668589312429920482239257185444136805231774853345494673837482341160438540463673393829340455329369130145503922528781172995485776970638398777817498306083439295364698468333801455544005583054697839312541808323492976960239813583468712810083026098193049153498331379046690718734693416779934623434377151697402675220646716414026944671837428436974448818728957299650200503669116775098040610700655053174520144492698438277263777733215281275231525197512141925508196159298162016539080028937751599975711324360869714736701239790837515987844375370711549250075556004046998417329904712232080760715528833655304010339913551880739323734404947396069938146829209707744874890447824430592829909542817733151176249470291644171331755287383315651087787633442646832518750653260698721656602167801003173100917840076996227979751514884598784068724624103014181205425135213835970406618984839104757268749111039082120670761187898923108843326326951733110920127027336795891680815120294947976994983324827543033912007383160354155874102075779162226659709976289493757583517573498384039428620925940594300774150069813863399002779487601060375450152611559625679484609577424914974893357464316584140566136793010430488386848364712493406215715549400491815557068447995748645563890876920804844327978980369540771399457354517708265849217419232069922905620287000336718982745897295139821398356311332121986110010645696489156914302464684367386170605207311044805271970788058151621424510616109946035038520716135010433606671266095314375763078946512808344671673319354939668979987521260325620767987491177032891503509243586232259907298903102904128788887096319776710862380365163813698073181972519961455270671212960736813578853896458659899064840412238977650397036490017639989637502649036397062467479657458426016059220138336465883764055337196977575590294423192869664635119005222709769679616130104772582182237425611502626634605949278780974615974771863522199681807512379481505420926486248619251230442699817958111334001313435614432503359530198649792058823281336297506034209374268696829810789306647695099720718671001393236715272532839463191954783211737040323900972968987892629465568387836831069934258292198040620951225828778115080812490918911261889595646240115722299987758867481332425359910271364677566749349752065276472962879538448815195755963702441639671074785848636056486548719430835369392618563628467776026944201664094046797201144203456040516400936711858545733808068312790494491799911579628641571476506230677588768365311044946705829310219369304173681397468496571504559753883131083766507173365194301395641111672054548892166478164722742416844670136197485805783424356930616865120642556826494759283073719114869181172162336317405776147269543149692977670937097303834195656225440106623078671726324195296100035452182898354434292514785024440060696238453215022963350922409434342521661088464061939691206182498656752927081018499373808280843615979032834060366941154700779933049421290063346769601027291708734175645211136256373338821143879033426929055515686126020010667439442953949302510685369792233841075078356305572859657453665709908701274543467758785936727811823300811392478965870397664062342836537658861336526377684705594769587362372678857246362530509741189373454269647851675706737528644642139678411696334472852581013238795043021402301018689868548539551466682533278151780553190470660042677508199455987382952419616695623452853736272110545367968373732489619316115758076509160591506747680451110871071291909425811519502677322823246552448877511854982206202078978223594699174716566994972794801495421348375931300598219818749591638609329418016623873820234559995455627743570938738154102129849028101446594133039011748235900099601356273824853499687465143504832421734382748715345518032298561268740911311727640217444148745878228188874224751678000427689103682524306051944467129280133885339587774808261865825972436643470056275091443234949972821553733848978468459575064445340325485586961995548102317068662863509531589994831781550355161484912989073892683592554117749533495990049691267653342822486881330089222869286611362031638945316825660429436890619888384806440289626891032406019129343006369552655174718241697540785512868299582962214949676016383344758364808576677915574759800913733734685031141129739261423814190292470476146585843680005499039701383579120496115326220553322155012596843855919364048509232662198571791482720556857353419442317560254921835314481647347582765552277359791669880448432955254851033645941755104446233441266918692973308726998846582640570361707642819053132200576767481482340414415522874909819776192988665214388795509384406887933382236449592202865181684115808972876758412203643953035299206732096086686472153177273315244757979308501076044419885610563276513001257093911262868179787308212666006191749700710159707534019770358851508509242646212571772463118206191938814512831990791297119804254104999700444462386128975505160851923183698764043452026140295673298538741159871334610871668393022049787755410650091833589694924356000808145586106721398082248394141016752458412540588990366887918578133907261308186431073665044834864780316819406352059238453923043651752577714845834801674316915605033545156633335634171647829061625353377666405659351686798547909608282650989556710755748508012615396569046129091153690354935280709438757297685473827888436370786343844309495922792737774835005846944144724541445384634514730230995010234578380483919996739133485969035306060781543016715372810208645842548037841663572023087022153320049760159547273583948627895836575733798378692679752119786375720166041234234546261432681264413207504697604666824649699195971186897483268035594640411731649468299833499867968479052597958798485121858699035264371513275497088771303411109561779981342671800227323228394435113396753699338552366243344861857687641447123096615961993096074012821663281317241385831889640310031657397680824920820470378452838531918487577084891108952117875935197024579401520007656791277470779543236121991117352988216514970914527982444682866590919811927741316575544945188086766466207666564714422926347853335247701796312979172241051065514067442069473734581794097271745821633341204817104321292667536886549644579001364438772863615300946852604434859449971866086351891314721145996964389333597484657648441330815459657756450153108582300653258225317437457853796194254682384251126917908389882859403586239787513235860883422594959736819171490889734062467100717324960630123884416827316341725824823924182096049290367772938451831638854506482261256327783606954441269739775607554678488804275712374995016336986565411134998778940348325100767169167734640161714456438777176151613492495527464651661014515063678403862302303505204668075823277049984337414931671204252393499005044506345533165332390818823778336048068601877528826608001423321894263858502900652536095035749278106426790434299288842370463771932337309806516954344579089939279856432291202973423484464007556975996947604999495115793408678845947686566798711749038434825292997321839266817804157740487252178929868662725714204397401527093229647466160265764388365758663895992026179500253996005897685174682072821006424287572945415376130631763800833401984306715175867896164883462451618091530345148929843773059357587343016444470213502257619485272708026631593275577777664080135016163945924813984990258877563546525966903103756475377108644249797664496618055665738900989313724392379662259822013060577789694879129201979881024532116537125980931763951860263266862707295722785110962950216376117544344735096119912331786131755590314225977887927528274287388725747136795745598309491288898503617434959784566124445765634899210650752835843886039964303014785208650507465904297012379449529747629109903116135676589880707331312948893855540272897705620182237614938305710369690052610731796519907249216543989528526127204165866505346742205100252330820240986185633175210675269880410142766863646875598742332918593021716580489943392166224024533614220005940742760733689740997045539095116969648834922290019560450444406164443152193063006458370806057024517532974374504666078443123354744888274339455908917403835068723551877371817338186690691742280861459727524244519827749931271998101282478895405838942594696666362031028758755318595778975762875450377565595335938206104804791673160857189779373554975789141010317623316222850180233635484176101450226430887496868515295819044671125606499026816085558572405949724388086623892242245442956313210304238240703463434955804812575059927494643873315689731236355255376973357579054429270640569767404293232566501513593594719668644669633751837638011127651451182938000577825267651049385440141245865516620580704042267899463998029007195055416162321126590645106919838028680288546433692742536181685915079134163047117526241994960773886761554516974115941016533299444183371801997183749502687795533917966066517575405760917672014677086940631478745460344325023025044678344657566149235110076977537915185181625973342238280148038217969164956098382672542575990641860383896732836857773532003128528160182917556062015121877439830039353508157013115175413254175498042102933564822963042614186377699335161874794614034075377611232089512788279595403856716270432170017556991079810718494055886835472130665215532010716099711781042947691261628915362800807925602998363234806521934063390446150001544041731131325558278545918842866462254096607245632005084080484998688580632119164620569315531134369848358348781299482992362666212490025418446017015902637621028520932125939493116725549527721781912576482970765959958934380634824392760933503439283552438725515187108224046870343427396404090461106984474174191425599016892274902083478866419005145274912940951893198195728248317909763556537719358797504706062393615444567507139406853779389455212591397368231808098419557642319392680083979845663236576954953642836586191471320317461966283545083793768886463995751077102892822726789333603502941451617842860296708351300142569898639279713265667685043782851902286587059649402609288268595163284653249068487027546259922970877354726068391551142651435827577168181204312717585824682074847740028380786186641881252515698456697974040425589937765726938880075268487896352511270832129402109052055540521013726382492602185715055268253519327838121711186698390182265942549267090314831866760209291591523801087985393018855893197053445002427511057860897882413808053643062463792439327861107091991215154097757585050384907256129050820353757510450362446976000435225514420254967498642065473795433147124178333763293285625504884707840068832447693235557922713643683917253079134540413319798867599358849235019125144512146450777532480921326652936336000156448649576111172230098334217354376216549619883778018169790591765681286026558851303803454616053354213165084174065015743728398461965793282796283640391055014971289722500086612570536160478777552704654958630319814969039744743248196886582162834237790464101936278756148861097325063655796355669349360166407195192396410302248746237100563814554438255020611182077757547406943305856042850886544953763441983698694328366354153780948578094899505163555922406469004508305760869593986132661395092931185351289651337044556692904998533222157011357284882542817905352442637917939586008383036965307326192495206911417573286244456309736179120694504147301086430472939125501451753329170766539826532064751923637209825362775237379088358841798013198153567115624629102664230771938192503642506548569902204717671090324599876910804270780236311728455487668823903261350379816163979439619740090417244458814619021876506307381389719142022679054697304282736366628757340841928732416671293346410961907291995173932462337669826121034243742187579185948963864458333006306621041811625258488799961134829181724307083461757312788719286782274240738660506368121682027510222671232828879395516321872870582147701668444635193467132053703745885642534429495805495345154697168384658543281055240313317055833100040932423773642306422514778201701388657472263501118054757282070290829892284965874986218071711113610945926706526141092762400079259276179376721121981895290292776009592467538990130800149294685746368108213278246742546955306537662457281973727763276958264641201553967287635291878462174980581902777199257059136604678237302288717139256373913300632887738789021929715271638529582474503572119892439550163646343064834906053794493788043235973997870139256155123289699472099220738445802899366369958463271092664873823736155969736445914370807012837195048080822933527039945856890797578561554556357892351230345992563336513269631962057044389091643742757418385794056398723835479167922327375618283748323569074933892296398158962484524216961968021480783009908018025923970611444572657433822208306323892353540520000257918217098794285337192609260222410942911585529314772272837236423082024179988811579282400861413081058740069647064680923294250122213158592009856748698892838383212540596913380506435009850683432652586434697476544001042623555730821685753867809001226212293248494874469398797333148917873842960207980609669163680730397004644096039802408560236713175758062352157329362384677359827499800643531552009018686093204335389342446166157773361433368531489168322542418657492219810407804612117081487079390592597739944249004174994105855248189936401818427874484693965731235817197786708970911509565318884584716900352368489222433649916661657247749725039192324306077708476212763023575412765525339867047738107475598906542849625245548048364529384204314122749155989001381813695278985291880790988261476145037337349823965918284901066098929382781050521001589226631102240803082087361774145159608663899328848493032007559619720810437319853563425675494256858196454082582101476470582926158566009820371920882148378050911353592974015019658751775976508300295294338449573184129937564962522513258624852934879435400293407687310366990877104839945679437477267117257572495882687322207498662197894610642666368625538396669772677601002887767559639000355695583694601415008690741823189242452064533240381825416393660546934123536403944092511576690615810420242087227136015029684794662687300786791017158820612985791678358620581330010513180522601095165537272573200523400163706165783482392513385448654327889691249509640291102570968785294748758717475915910627531540170215833276721343407193366907032580779402695948428865659780833767914678002079543239680383832776924634828827517993874208008006566165123259176142157766512153573187320402410839064730289342944248075595596341663370821658360259526605890478652086136336441411854551981126849037788087316271627309363528432149640578077253803980989600853050281134653910365213331614331811871700028474716685663737736644393891328304119598280866803173605300187813594701380562691004520811001182471891164566484317577568826134892772458547659980448889793719618871054650367452752861255559307274351504993796061574944818569660684978804647091246578721045988425280900208053251947220652502807106405059172840011157583922024680243050217024112844772217188077079395468255472353081374249292830243204622673713151519058871234898135495511233652580454990981946232579980962261457827712094809413972004628180492332059389882815321716845905800960296432953633730106118667715807421233409632026890835617828831020146580745589155804740335245513498837256036936934996606288340593439146615711094052648027905072512465260848051547323708449444189691416098777626894379605046555187621237476270601006627839494113160719839817719627562268439067874869994036307222104112701390880912468750978105023541698168210209141709032824873864053347489264281433857887543154986754683617926771336087898131593729485992122678127517981211250122148344787808415585722144404048113778218908491909008418460593668650409121184946117510579098038606017139868562617496229747529566466218275326628789740585814630515706931587255316636008966855417139141824826001498547178161193218785272323205917591810923811611259092230828795975501452524252234940076810269564070379490576982350877197079881006638919908567126258626874954739443645433197143940670678409063341179198950467730126990129534574502809820408949492245994778686069714913223220730131903175463350010452374234161485230499356970321215881899103600123571916464044910005671223548847570501903615019494650337388763294108027283478694030041681907295595350905212764830667413107771091925820943352978589426473552026394352780588157707028678160993348266827347885415236702190579115625619852100859227623261756293521095806996840621735330780140153428570268628675997908434749579242202787843303399513352040897962297145673957592604484746869222360199836764028364893673287159805439860576031798344314796376944430260069265317637962103775278793204344902267194958654725833842764704664797213094153710961672861848867165763410831546311854280312692507928586549646871035606765343392716681062372944942840557626613738520448833606392892266534337755946599694578216477733040466144986971723572255735937330687837784019674826469005077049538813980250852675809566865424148200368633019150659701594354365422418174951230662300852332879279127533187584577538453893464558385100696543524032580234106544226353629811357153021358146239195360524322682555092699301898894442997335879912869116612321243460266215443065765187926740049590491571235928234732794005408123658920128531137129261208884400413877447940468228701740646989690207012694501408177731788050357444208346489763200060259817995175712681647556451764560439463956083033012312567691323390954625685192795683948419131788350947193751110129633634417907326646667323979398370305729677336852966396385225768120695251042493842710083105266338530345863129172705038768153220858175723226362323984077151559316759707162819275632760870237904384196182941953239549889756915647890870392327523293164951159749366198010146512758869010136952110897542481624639411080409800216030643103901854974286836661957588735344632791228816843005333142766063826163859366718078067723697951317238549788624550205244166579130846958887279709237776184100649100053991345471290820135556054278491888735331049364149374483982101194021859814373177327402291290974506236672615660506002220171756210675407796098934994144846370196224116923597901262742111453491684513806913586839045985698627153975009934917262171201528952868457671885256902767358861394995002231180631207289313120283962377449184167644702111209421361184692755743724289188774380196999737931423856559970024739259802469068529173480671240797280285802438963293327201689857624902195288120511207376239461374678047380218055950164362008887968461299359168406805059819101432003785773229909536434299889418152521715715771422497758313335595482022416313844749701462424945081655715191814453061692445072781373866590078272965103393986215740515923379692994686335669999227834773908272800824366839076110871183974253270824996190982773508628449111436380435611741290561469619077172320513979113344741708306530704639555427779483320292963402854414799398700869967698331922178662530240507591508025624824801698903514393169769321258422952797611376633170988858266641283639417011976476138917233314728513909568867679359290895807896353665040046984067650268633336490996412015819336349306367097628637696362225595049276069343802491451795301627181735320603544525311862835217686923123066272600976771951207066175555126692509641255690512596955224712420978950340501789480441113014419021221175960859196927027127630577583846558635485361153305929302007599084337389040029610114052409258268168797665018558900950071439395464734676781110596866035185958350023754395950540858050719406501712611344746964581475690494687742943888080501098224595725769973755501966213025794402435624942102392110678077913369309556710941071325093658821346505487272768443100881102426445174878284100020615981092086302502412333178833810395328098196437725644556480299237501199516833764096969379762063427853242261661053117481085003411287603161760182638395476997840349064658043303112057965423446994728623776345004586760291321213928293022230464632881239011861580947287990722310329524942977925907753093250095956108040786030232971905706840678455021597058471654101364404093930045711649475068026536020955687070648360715848830480990026513726331099050873818617739937809271492945393930241034976868320622713080152099900251186798236751038364950648031323869414677462802185653824180874616789557795639202419455634076325057774297571407750571285688194309589748851701775549492769430984090082841640608703567492361499669337362001237731218868415160287279344055073543295306469564826376612874348020775796958858064045811404934939319548569355174376309350730188287278312125403767478151207886425099726799558775619854014640432662178904126870237252996471147566940555562179208438583101710819448139053256643307493828583740024930734396066657498819470351569117393925051678410196214371350138995056705569067576276347267643243492683230366597499963619447018963199334008467775386335643843446463438259508752131120052824313464028490337976621858894543069513341981828629167930834256799019838468120110451573142498181630444636706639816397751547688138323764173223693472347479830725105634129010809355008926464715362454217414283782100350349652034758825545828766043522507667099489954316349148600120909199663998079443449479204204965994375832466572984868514536674451721020595540412399741186308228388679250253838318681033280748972810503495721439808160948778670674856112835416840231332719374583957782796923333712361437613424381479908409976128453243127404081164170753082291857033932786052487707194492509003273262115387322664074715814248498783004946070059807574435635721775956567284674921509802768305281438031540256202422285827155031122381422660377052894888190911339305240194162386773187836565312546163448210830419249290030537354195844683776279249267454722980188665444001812479827358886933327772549820929597694639170469642817532834351888012127782917340876588607552648886369292320911120055339481373169205319479562175557968286526494154783117268396938384734544372272331315323809812750915065474833333653510743643639178555144732702093128802251502302232602874234357350405538484237360149726935746726103494204430999441817602476136714774531584064030565725314976921604770427812012394320128093504688527978332654726453712626628211589647064143104035530697444609152895731335381755131631921844230255106128824592842643671103363031133614730948802845029716622824981356663483899980147548371729606622794499900478897419887922302190039771859965280364444367078767124626558644775091623476757300506726118177838422804728555264895564953202103440454083487075306059950562791767511931645763754858352819676329704628395995868823897521377767488592088844122904508603215563605127538141799206384584725705658091603804204132115894352470569019387537734047177702118387916061998548681564110093048602423890300869992993837175002974447065150584763936682397355207360098015587414596065343076048727081022886107659589935999933103519555975060257367961486261738780905779335962104936147596452863216764875209919825060689509022407774167485372226845150817896702529489178284097067341768198279437067849364092162123778585798438787630864927920876100638922176208009786888773621704517513539049318564906446180666848405762282845908676954495940734635096580335147186411508183746056352606021908161506934400826502055600478306841879419022300807592624691167594894298110775143781317689296281924365598420235329294192147718069621738408847638122604776503486822105158924636709853234340009353821523463125256330797587236446594777391313251446970969402892794991140499724044328378346491489436138086113611317783266377873269710211678529256609419750899283898505844305460042958205279119700966918913398656933928139967171686496346539773677812278872430603889805788195579488584692796383664526874197933499496785993617715941836824609843492862950199858783375771284921089999742436980086516605517633942721582183080927176955838072023273440773306941642151142957843485711841299097033767901175139533857391749448872880498652673505711594945371415875484847521907908883634067646815561124448300757858412948638346185474080415966285706885032272426742525323011873912165021255480601303925973489499558032139403439473855668664165970934768958844378539265746886152936927940892722455213233667477300272765289525989980262304752470787845306761934401303983599144790689916678929768527347324525996671174405920505372046895601281232506684683233384007381595317657397883340983239336299402919153423360745378820253798527582649104132603821184401648433466507439073549583895814197943687020676530669864628175271233711484282143836186936578300457666492673765474221034251848093865589590652402915553511502163438982103012542403019230583481819107024116476259882867216615777271812041630079324457379744803107332155517566172303561494065104301996614196236618293339570987404950085985181645094537117451191539241415990866518479167557330199083836272893159517336121904262512774910275594402600821267905494147449872458668260081491332308938503380782575203308691038103771274266481170146497427281573160796649647669168757001964012441473628381520735595921375824094503531310846340578982621705399152218331408496262152313479664028800611152287804849456761721007300618070221176375406982023255805297511649919047040392602779497156457141039590435929953015714136751809590829232452208952232273864223338581585688365872942479476601846238689735957200309307401956760037955185226822547464076216886337630439244786124358613811087432784910837719890700058413032947852248576846787495585081063549778904003254169403666172471468799847893663214692914649229843876065951329251327631375223963430068666985945759172828819355895150128735534419012792502014357960412764163736178635074958621210328073697779347135823755467247527806026277407851882754043106104374556408234895950343367800628670557424378388674361839588995432091539030939942061558582149467783571652592804020553616606746405507638148900991940452993836062915571720612115857211371521061663963417705690541238962782700877326183335990526190693600897433686885571772270501699788891700300626572698123203728260971783565109552993110204768113380915498910400992493727168201343136511969384737192422415984675851391433704788110788802355783219585638868576822191705837859201523912863061780590547827584780970761239865427171633221694098451268756116317322706292127251457183706220709751327438503256607982565616260660421158860383512545629800354496775594390472389930951016938232081272761745295149073728179911347445299607249866782543461979134772802377924471544101880603488680232267651153567944337286157581416960643820282199919093158653378689154462079496010404430483572236914122633296484174537816221846130106196719970666267278212708719172665805990713858089097377442356946514767851493803009835927608330315151053651921749890677478962358092495380438717122058963079704782090173027989423933379774571968401612194123473448670392197923050594795163276419335987434447877933505744917116103029134414419662575642719246914585016988618066448105545684345425742162535599448964388014265013454291104103288802324103603875434951406864310520822387589983920433139854521487342970046316852265186760003025046248175986171289159050835284555397647652398073416417789189446666224809066651002039103994480478305079994087748345349219494930571551610962629552836419575689870933047924539104342825540776763617936667543145324359403994896710242758242356643684731875902923759922380294750417222191209070906138492884882746062785919537866526269527907576533880943823483774198813058792868830282746815346697612045548822850608580244547800596838224967679544007866607716012750993310622546700298199960111360564513708834745904035268186823646209292873025514954941331555818527735630082568418083369627046472763554942344775370147672874393539122494207693086852597872049700773736919798860234465198672331533960881959960106656706282499237489239972804079502422056315721948645066919353242065121863950768384296541960734925069480911564081196992705382675277039649864831692360514495477065006578209663325790387947622191748458732863075230353622892924774725990963014081415653574523915288438157829415279094749184929818399408866638869947002515539121961138951256543574127852641496846458592686392028407154002950313520314453761511138596023382582144267719574067417469494562172990575441667913043372061774418704984215413713752836049973906554302776071403899984313893724287352656295950413519047755175306887873693257542645629055609052242888550299334095993537218845465268443321298241740340670862215278888012878076922670013508489461976662377718481286955215307896577318827643270629019781009023874674713814754577849621961984375423809171678811650528243458119907268839050757644936797948875123040746950141252068841375558223593698540808381619300269201274741219426682895412733785212967881033813730423160491203156409125824072592403376810484247213855269991687285344179642247655474363001594768194615588890387621128433821257524721177563261070344908269026766725265484966095373605077174431784521727859552905324679504058171274687965767105152533969953821214001923935740205644192925000161264806161313006387662005068773707644888169729861920382365448609359789668887196299335991492858891930670747548051071270024256809885795953368835088934260236918832620287845059644029195564757690779895627319033127363058378562954272658465628664798673906072206567817152539106611995399839604036989755200385655435002782213903609038726994414048770072326432817765240958652842389532140801671829887356652172170746494807601276871529308801208476248799724109452014157853740263775952446529824549479635967892076848316805193122128695393597077624094931479570469549400372972107031576844821852825969411008518761548343553383182345453813731808914134242826826635536697916728743656189983535820379637011446030220263247323664797315073835498511338058401692825321520070028992005377880206016218977265629675744530990264424507613668723662900740724486236664022165608130929763441865307807720060174212264413360095511831428451368763659219956922755765093691812621677921857080599579455473467686343889301203127458278312260473083141520806632545863206431902002489815178482283237367338143409837910376666526698726421982800960003241771177369778073510085433692544596392701824231611818077040520113776371348471409042178044329392514884593455084247882841327326990125266700800105582356445034074928717867952170997495802709731115279627606930173414424496866159512879405221583911934477480785880253862346611420734836661795861242137451598825706554990818426371822504025817597887881485722586540325722585411752029197371255358978305957089328513412006715099234039971195879338589527656931724001230316426935534160055771720320254241470500624914768658810546782979506692080623868607230332956383456417363690973380705464464797165325874959434313773916063078621408906449140216998842854067944239389523263240659303697358374658136027536998691558901150225978750219158192145741207116486152467763826807697363668762471910399375797841258379566782917832121392048869068033767535877483199825089407689136406515497663684128698036262110810921677846800465761793352360113834224228760434349187377486186508663081506304494114303318661295789935457572711635576540461039673397556055107812587090033033979444305298417848446409476405504482195359303308169819288862399604859006917883072768748046271771549317366479744110855908332952051151105852307166861980657435589640032465723635160193241500601703499315739758676424346144987708206376549435604685058328285290955332854424440853316956032138883740977373171247521736000724560391994455185521599008803179947837927165520721738614457260543289320319288991549228056081451495051300392909171517855226179107549948472725365838738823750946733602525154076103052582324417512016639469939992399660053141872950652718713281542902090509251767451225244967709546812522373032304624232928130831966406827554039194074649007377981469186531824518784614445337042420827946846070348420593301075830275374562375692263830922719268130192214109525800679140776151336041596133168592663698557114583821980152368787616113445534618762197621353146384518527072779492205276195945900730130165200607770822693648383394395516389992540327587963716669974791917057970213363112278108462430588486243380759250997410413981751924808180690417341192695984474873707705199087895402075057311234841738439389303724603887135927685253136961142431810255922258135288555456542936335861874683991496034196574250803777325650575250115865424004435311980144564428817838760277335021983696418346403383454212024916238243923279730697576932279069496269680294586970640185125460432064245754759586878657157636460926815304946736905882939937705534189383255434041360483558346408820793871994176509847266453704736434421454551584245022891843568632303053207637049279067096841600066370854335570080572344565351567742296183089553109897694883412327111022703117613879325609086493364035106857953482602828570078475645456968322398602968393265776064261853797040135943279964019365370378773785762877997218858646138412885957304160067750727480529634046310167922415044799321065753032611163878401134477203883189945583338956383892692115730477042674912061156971634963334848292876547138904900748302102418476502772261992952791623226069146143059344060769808076749281254482926658955836687030385518381449965456477959878227670684834910761189710769334743146809118724845045192544762274553652081155601920214744084358553064220299252262003334654891690402673177303539454458278968986105654712224756588314466524358618864628805883280993847962888932522386254484033112238856830194406814922397436361369371745692616832006313494835488609329772606657374015561057380578443627178821626607906132739301647618885438992423581758686134366415338508486955802146968022150356845658773818252638686133894072157363504628463438328421147463808247543384695709012178287279796397274510598089212004784537389630042580517424070270310163854805281779407679779166563224612641799343881726459115195175189041364359897040022181759736033165965545970075717536740777953247329275297475446491683432251711140589469471696279402476303935962856430831510437646313667231185687473319766277554449145259678993273574916205635634295533521246984690195982345450614783933469675808893098883665587205669522133784687102655365347177221211344554975138679870861410850046600471258424497628216084046877774842303367337171854229645350883722481232443240882303990773637809052883039336472823367916663509834357116977770756566505531329725953330159680449935962349851836604685093735069085584713848496229820742004418895711235571286380413841114868585627164130585442636553433382962836111199072700532507623251616055552347726978096452635217685961308842237981999639961610477208879597224199474840376427507706414600037016913258949074863655797133482914294199386351127539429896864687169197893360937573031359660081116417859901878279615478739766692488037965043532950884591303886614548212419673666062243812070493590567202317815702144255697048331521017999588881417016184914925169209206431629792233349240741976693892611143511024150526525877302371183635231988449293626784479311437114316510720531748321126357205995482885628454310784977901678436190086391166956498383506100264922306172203379924170576018376035065241928183683081824300220277151092616272499106302573320041044277324800717542878967715712813730797020292799768834431931007389730165587811785474215315591043069131886540380008862078590021848911387684379024040500962528637354772659571294620562209717337234580047281923975864535778709370880945664291744847886031149178598803464755048862308236962694828406853059176363798224516870341503158116913061953659488591660342033872486718474489346736840394048354121156859166326385669624475122249494667325194344223089129303916184605875945368177487863142236038572839126178751239104224806948774150913293813577967472122013169680387611473324433151523679555138385600641022003414424445869957119285171748450611734531604999345161583612061430347271766880742637873372242946226970322443607375310649754900799851136626175985094983527105902862746312907640530867020934984741167092097555290252733801968249810778543045635958725478138406592314188517133670253868485558227924620958990704506925978393476711064901083788626780518187683817889339629361922330405605328147525747052536388373130881312206149567789716133697162054074496721387536257464669559069494181461897588541617760914059577154621543790742923099525215236977891160600383451082661538109982107072497272114050946424491189640625266767699400158092255020904276528814818093296561277297285692906220048927663265014736820563808216270879734291187488452107779332493712823714390344874264600044458288456256168407118940008457870730912318645181888706630552896133408421108860949096759338546527403116484318572167322805391765475134937567063378057925401462970047116343836785558446570990266755322400537168315508877176202751858347522756828223817401941384341612645451539806039551907941775280110448397661117300750739293712540251392167782612672434861702226432667897718998625223524115093855490372831240669084702212495638276448247606516161835315144746350308836077093785182558465062429459913444762498638195070069352501111583119014878348547298885767920528226662026251903076014947363681469565906010793063566367293220503906842835777714865159456166631835038268813022791358903944942324109679672760467477730831813973594528477737140132023360700801015300722640783274974331066806264536428973275600647427870535421367758017590871050532897771285838547965156363219941282832784648624280870159591454766825208252568651260827726625917022167054255500958995047476977566567401985753567167066104997214963300254402652943553726682483296159487853230383856196179407408121502517718214531189501981001396874512491367843853578813120335831319261543453344909062143000251303964434478754980277164133128133087146645989382072207449690820071797524034531833523075474924543490846629343588714497090284332075610768528510570394984504514777947758794500379222418810787331738433472289385519210545709984995256697369287341443882685158715842211533277807922447085316257851240757550644407351730520480028883943612346246634944270679813862495369797282320525811000700951017708745513454200302084201293807379464828484523355428104869230859589746867085592565033236073044777191941426980316181072976718431242907394962920415942851705161480827897916837562811827529967769036760401230880043307088513088106849824674958798340424906127597769898649183877469398859235742381004038280122465057240426415695227769780644350111863777991025892074338575645722351931621262986450881303865698071133482491287551108068526413241431551571005364077411686016484427458246855007244607215577059096591641611420321842792755830151332938497885844746362993138522760865960106699580431094536929858562505967649449451740172086642896574947779203231578336083102019123921929682700594752326154376680102568819395094839846646103837256608799317547938528366007385332666857102230650247896572884431655671657758574615819862452195656532947672113630207845710008338363141436282549966824339548675022436192086014275216075057772975622018016849213796771426835224994455950821465952000411959906045475537716056597840488435054144950811267808908065722978938017581601366539026430960602584852246841486550910827315198380285820669142099253974742804803156610974435124958948374970956345388715051519023269627873338417656108107994887067848678516613728414385584799007275960395096282995845623770408692432717252052644905175608060046122510904350184178940051510254818129476250297826560942450248415640443710557536958902700179945215933270308642539664299059112027996348865546386800099154041614755396082986165549395632745569937256715832166917822416899438000891014255454498283619090299590056480282938427360936895844026897519138253203631242045108689333217823144779325205234984578056066926369221649353551751755256506274459573604138125295427876439224671973466202276603423869562498417852095018539245335007375494536103294176891715703198117473374035243711166282042960963285421215055651350864727531590141397592816121947611038432852272107006996524452816484130202391855414260896767454885800013230191695439114327984053672680022320502666522650993441169361301823270093507806962809830421216837521192832986983602837047071654545939543739922534570606776925439763086553383410063848486179660554041025920831669933822748181934331516018746639607648541240981239781904215293896486419763998144048653833977215593636369566491037245672685159858774736693222903348752968115282114430226438724733326017728180560385685752503689153410640766675452889900199868004269619038618803545926447435538497096178608116364904579371976080391956893420435160949245360655760653762288385385611232665309918926950589369294718306871262456699730626900963384955971817110195374467209082543548985387635119985780765441157680740698477995055512327029489543334280163074383160968850686807005265339853891948165633732354284578679990134098803713038643724114996678312092293398163391637287460338070308823834583842522443116510465681937173358891601180581886461587313554770255907973579496696950504135805435398914877185081608836165338752555070014367750057476151396482439690789814725046136916068542766069927193187982369773640557951017874111909436121415330420595771294722094244400257407596305824842096636028747473362533754849384906571653042760411054844839225273951154672891559062225580372219777991694980019940827371388409116212044237631734990366988443747062356852389840483800087550517032943830084745901807846051083688889738052471195493044927081069400776181888117616013297798377039637121531479630274633500082542575160951998895243116115769592988089164294504579055156958316069584212468642044394023127009405861052121726462345623932693243463263060298041950557928767760744569253335280735105926590335928282090254411567775257602832722766335911112351207642063762392903686088793083102539265199488495604243148934793952421098703753172117659858348465163933559886975398104615975367030574274709388978477235206996462461750640385184666113139198426093615023413922139214929428535023817132920389293810967292969492809589967031445151786224438336280447492154895461275319694925849008990951104928644286420802570397939484389744783371679630395569405080718766172341655500125608079442053642603787929759200705656686723483220364242231081447216805516325285252246288051961637992662070077234885269349863617816293810826214635632228079293481276752513210122948918203992428875782173451968711553037048424576771988193091871545319017714941868878815691604023073838060777818977835974184405788484558534665454143079064050507963486455677926636962761987180691754887994150688514291912632178386171983391549727831960586287303228163004346372857634450581088762846527760123335243863654038251372743833444245257753301708487354893088234011451630262399956310008483199316684409193173039096630431575202992155206363484870045925001829801172785076038527205554143922410555300212919091367639727052943612852496443090044114563869171949502757879987202792706633929660319656922316813029836578618292504878721995342891750304120485033697642911815863730984475614759839887838621560547228780627753408601038025575498003499601349244387796313648163123491427377405075859346131158772489121603096083162196216449278605365719222920722217944540125039813518659091109747089297457579070413663434444317603575999048426871105963696393366605681895035378312554660338313992794982375748662690464637454613935915220412996323205113208575791066720227366058232113572915394513020747848567525728715001995333075642611705594169958103875424036232487904505503878944947048612918050564829934331492692237140689199992172963694649863715207726009731596722018013147836395310311505210796374283837283719619498094283898947804507403910881534809015773001881842730609942366395441486871028331191312475245454853019417452185552266592922930285310467130654742061355746125162963641797141463930475117290272840404607263478348932928470758128099909638534848999142114644908822580843772295039713018619513750501687100171092600087334042379461336423717727743929044783748580412128451034230033545617402118769444281530795721721572899890004679703347108018575675647232553449084075084981369273456443787510355234300876564310601493592284233041813868449110685660690362412315689100409549399030742729429439626041683143025604071787027468842993709183681957001370027058983372454040439425632563410541985123788645806868887068553264119089227681885804974431490797446005981712296955790464407490933112844879910348886729363816652526921493370045950702273538015035201996934693307409226314886220473409975176777223436898486354666411657946582848333366776626474621078232449973374146148222391067712832816403018712870868299880741883103592619563275234530148655935468297910594835335208134541722416563823396727972069417901364097649230009369338927897557225267578014443301183403934713622011647624371747023551298262968361946852095339446548773185033411041967857581542294691881140761637649990504645429925023976155171573373361127285662670824400745650988995759052412507219571902000182017396771007830007591731491012930851362161458001368087459224201862029742091454584898870993790406101972800244144566292157895185432928028755821727821572555126209768050861838260482711494750260247878409563176743408894231267061525946610102390913096196373368083593322823876723576206446885048215062909882002574076947772079731856319973106549221573908650554372442253967282990055402931194358534010703628604107027352415162720372025693538183439783531150731920111022307365432112970240988072361982914141181022809647123664533402218069057062400391876834936606104672307851955447806331494257065918135589232294503595333740748582388893953982632674964211768671253356619290855619390756005552825200158853692991595767922990567431874750953340256050898280479116102963383143086047094593176691789348449334377751899739158646176496390534814459407627556059600729536807558169298235826546569101229552306745875128890845463131325441812598072738134169819160917726403244522909552524682145331484313857898514205829089470240474008408615076607210934886842094616897539733036458670172005632383871055247446333516060393088611119270731085282489851334572459026404478302680124726858518474309517338653015572345275614147898644693159308514843036172820280922119630528442449639875870634664760875872338852733075611138162872620999093890922390716656560457171589754796969314826667880985157178236429617211007790338576871475441394014128016143661698425827589199723279959231664672485813486630507588353687349829484622452453025565538404542976124940338369152744613095852034997507210918800370909134133093004937068631971382440308210720800334641822772210679685746622756904808900039426108243923681911225752276195550199322161978524815105246476150585237586558556742598556099204676097864707118378977812200829398806612567610637822414096191919521967522180539967778410833801105385549761038356211531310918422010142633230472271626642876925447382505229651601849069872642122327962740876957457272808454568912009421335067139903405047522225760185368447677456354426229082870650176191329730968556114993112434664779151330316559635877465793411682001044024667941515587231163792866652335758228278346597631486901334215929277549712338615040389024439183224666368799832482681967946086209235019069265125300884618351491260633276488992396142192263428847782921774931615220814849692501243948664503118269798842155445744504737391785448071511550420404903756472852104499476424550598128403444314829475904833701625722271873631263790704334497710368945172942842382690041856381503711660718251712026943733095648786681151638911061873443132387610259114057813379359818005818397213092422175079902477453555126727950586093163464598338881018882631994749616164460184025943776861852047598405722967737772386673215096734975707393945373851172730615452092961642876942135824089048527748230901490178919636441895424806909984817793537282712171651924898593737522015993429589313311168696568337192032664821095652897657308421048925817892667568371328749464532354326893306696107390441495634186993098554158357889011027188403772608275397703065197253525272183221058481716403871911406004272027052281043278495233417380576895873779047612519381814070081493684318869144281542381117716774559511574013464039145932109536086557816101777938719715691311939158058839921826405883302327288264255408226028367196126861452115418282637908734229358831140560971947520820197140816475103598330890393088049364713246364446580947542547459768176108564512782382646066334628051492027063412710474140663841873431121559372094970405273514061826080570491491965981645868629298165585530141149095013215360161605102377181190112286831031374591847774941713493687872919249985912972722669076901718320740494464642757209325984879104094506787992141567642049105578895837643848201427831962361960419769959734690797388454625151283939269142635811144327380074172679409488699523512412312869927911955063741757075826381600816324365676470540075913950551284299408569927219051573025618865062100358680970525577817187687645802706823559519241709580921274858583613777429097103947687829599080067395961562674630641707571681847922619577589770925183977333659444334530689247960640444939293775497404931588464223512431573357913901023171533494581261486915314186093368250946570654123498403003967868186091146583973791287947581296026825543927729060706147522728499995691148541751395802310862205150593035283455082891220244340186419646574565740327680087631737715601328007827325495151061302286459536131680562365555131705452121175676686640151637776050394466637115582516948153030946048825113792855113417648757323028081919343907477079430429900654614462225925709647383310134215323305529305984617966948580141436163888494510081145780299473942047003137220572767609612507417903536452378420565269519990081799292241248193862304140283047475409295857644584818460116990354798197966621952063186603005043813179831954023581600860812913963637959188834272869781189060179929790831385177240131644036423643983611117714055201508404173097751071624606998815310546614223067734071380775130039341290259364579796120028681179599516023510802225487988526311638386227939093956868300795896479270663206603952507265911168381114783895975048515020992453685395186810755032194427508553249866429903095444604928345097017914706845177911924366064721107068240908519575174591612084974735829307468568363632080730494653695023423756863234225238142068523349001534079055188274055887777105203358299133029813244283964836954870723286530218566604094129965128733722403030547019514947034106904636935954153198650839552142826581727387952327735382536215625766162771787303436734249747603996649533110432356401287571225333488398050051226600791025406067441661882800184828366912065317633199631918761400576172170985184335168821664849666604914243570584813653573252813285219581232194347681963006853563798539226157836311716436830335596061007387576285165150468690888036335739452509501582474320720968447655024356481650840211906996036923163566743586915853913139676126956642248887155940480171493164056705146593871512184203228407811336287801738667794594631274827017315267699281911599955925944780823819594728521694107246723075532267332313328895900687095783126429844443135281863522157642408790564703232298261343466044936539757809720241111154208822861395190446003200520621447972761099838656848421456727033795502504445843759271513312765617874265264100112272705918669981511595263492432561347719563607000782961845528816542429958563785636412002206028426836134127583144596495046014936563934894288820489587436050278430242419137437975604506772377229126068860831189951929227532313697084901282208096580241564592678580697078929481625090483791203771840508648779533590218293366073935391813476673687945914469337048454154579811912200103485027280569361840992774025631903646966744768137973996057831227899055003198000065606428847565501234862233859566345026417452061026519721374145498567233480097738659281241805969518212882658727896282401202016525050948295658954913066341591983442048349874072909437599097723027030185895835279491605460069187827394068001211460383977590878304889591287538892692115475290510496126664866799475943574782057977609754442225138702466893577110231528172378949682907467471249830724579557716554249858651642934940665683753213794323369052718855240904181540197723392702176259989578230496740623467934585843560396784884564348608694546305388894080360842826015683144873814256574679655845401040173822092274065181181327063424437958164711598721104013025204648740412454682184077359302566532275803903588477723570539996261308456663495663853614360064818322382584505487195517577892554610700745101459625683073830088507834890791447318898016842157098903450318391028170085501326596147688890744038416548091135571078000282634124120347649993071768514127636543636715053799308870203051870147484451153914550319621877072251796702955533956646730020035784174839250670764891902277799437833050352470034326696619428805820079629010442732868497025455212595476769507726037171511627939640901296412455316898035352667151695799225203205798641190393810574745801678908228036514256448016090164163795308151077788225215462719232152844467584451345217094952176681547382255218110660083112016603995115551822486093915773462331637833862522371323609860034550339279350224621279775600073188563904474939575740960641386135583928825258156146981880052198194224645076070827189248921874859193942062895888003658923423803080957803854724102621657886570576246946638445536083886827461244373726646595813541388711833490106249391938636573379870475095509708558330006758827652788684429373241491880596566913324491846217552872693159417821003635719414155728305032491363656213601502531107356058880960981494029010416604571166041106407338184630558268636174154934125677739528657149224102364436454408205189541201678813512585972720760368207227634195956845502660490332958127455072151533377684312984638901204068831054488746833057188231824023393862336623252375776185947838714521210413096443374094471316498954433431857629386981750035672509177215130432121801249015218790867476629658015216505513579596666932265353432204354723097045559274534299396772943783841068512210985045586533079053323448090615184607611636369310503777998029435642530018176336328917878715534487128065407449319488311263829871204741122422335068738220613153705627757687838129304602323511793125230204264596074161451589960900859279509448503768314391498940542917579272252401351057835398175910819902552411576440126243249791663363161135273174778068515686470789771834391454481435022642429676384339622934777079575923776161163921593800020183880492768373763756494097845674576209248787384000895301735126544228809546573540804700639147821520379571885947227442749956954157485883314782807346810371650592623237684139885093582479401502841199376854666634654137981124814482866587070715299586719372945956228882792136525428816218826621886765705587821889398776085505794209185747774190566774437204934895122375361006410328001620198353863553714018014821222317412378694794514632601461791391462909117830858331237200491337341233137808924512536678809997594474037191339888793181333197287399853658889221886572457826147457495181096874328265317303450608237815513207205827487805556105292116317320760378574265591461505116487537611478849149273609710987953651878506823852050104907376668847235320855081191057831131689099440538791933361767780612515281907443874762783191716025648457506137988408134873850513839183939809063068894253905957551236636585173469157688859248499203469565420154603467205316352804901838598139232849299049486731279856212278303905252098504221496190369114357779950391463855946747661620223577836605667203348306680467488577345860120958988311947749325352530768459505139862423845734722687537156812123469180082107296496551029116113005927791408770421182963085627174195533996315961507232338481786855040691132364542128414530050556813502235715638216288969332693936786447292027845166584899589905245387990840875090993086554102350718465335935447636966783456751543316815307403932175761138160445480388958755358955289921533638799532079163259252305589334275171642996795644589521358965820326917021969185569824115352263238350737881075041286855992228198307036702672930877140826827029329869965194755811295135010117588724249250480260499594643645241830304251693975640192287214376479502720800186916649851874385611060899725501565629310650391826433960118234049782870344601938795103813452228236898062368379615598716247569180321379155287109558215867907014176342314336265064062874467701512293449543357139868917375314246597927502664913322682963615538802345749935466207405959775984830625894456973545900350188767806461947382476344347751209726074351391681345609142713270507827002374487225940074943456959187673337603203311294732782205268537555942273733546541927204970691480703630497109860518589809105648260803396147530286024098605765905882880744702627902047828935100948963306951154730859472618544640417868456853226267794581433874429104445301490136645902676129983978821785669884675798906678187292989659788459271960666185481713534255148003779995456419065220186837136092658540729735932588913925277214570676080877939111886862713991216607173095122328423903203660169434579092116594369534948499753699367654620092354105799146764318100402161675086364638205106539344040944812971877217725610355210705776003900346558407231924396144742244787799381512995971395796234978060559578880125351828833586506931629854944791102781904849534237996167304323920354115379143740280426726262939457431309423467846140358267983612811247598566571013423293737249597268298984423378732448765788277497037038323156858792408481957864574835014724743792262548685795162015596860277426245620741943271732821992150957694190427162159937051806631944912498826339255080609932476364585636403836803318222535658841604300936935323101377322719623526075063907687712281866863426382073096816134782062855045441247693295469087402107275975163132072164479772783833650524781296441150873826039072007910855001935725134842242871311285197705052601653090011541189796575311695068657980196100821667871946255585689655449154797690844724827601717933026802825849302843699483616562099621214332109676455273020068300854053844634203816844501501665686462805647100651521398721697689677670477330366621125842146272538137724563785245779538956279977865382952674248459295801809327930598494028708748902195184641904115389212160644678670462607803000645943551858527094127145680002319097226923049866919407148538977309752279974178765050268203989220870547195799535361551002411724726304642502276487496662669317404885433864444578302272084091379515169291863893761751349893853514084411582414460397229163441450929212686130800292397592332499092749815177742971041763601352443973534564318577062656865609562189228351577634696593200353543101553075519440036071141123412921689868332757013028218320566689938618179121475090341082371244047559324359977814126811362165951891091944053567945699539895938460297375296735459702079711977395107351998501247193150359882012534356883789039080839505142782755415126743753941815335601857113246382403366689182173012232085859596476712640168227699665464111498093720884784592514267770299286433588764244872366135478511293419554579133915695552452669783019613691380093284103008107719206315219678938080093471155335947223404506922855779556210572500188696639422465276674004591818125681144623569319223782626140062108626216094144892563301172953153668600028645040867431338874952588962700162426225267582459508697664512915648216109830951791289564149221421932817781549605074564896581472412470818668815636340914011827825514922270266342223136599041542961870704168325997299057167550928814778475786152023155323788184789605753490575584671232550085528465345618078323625414543446884343249656169823610560461810823292816569415260102555229070103827484934412472768610278502449602521057724612574892156815034159457432176736683735179622482770291401881559334168046962917409517417805653371283405331965797545256880717267663590037253781141291777879133884757122087774737824017550377179975823048720504645225421752443419768705161948513569334959197939515463481833689495582252405395700354601372707157520709964512729100801076977408425577677816171446077589291075839561126708496852571300070633537406802259301353967677421036705405911837891724093948667245250201295318296282528961690663809592687079301804745205790472391466588365858680252149541154624319153542924000802089087944628836851849921161739055300651626287935790116255796642866913748595662942655295580924814664215666157318058798117746118430796385984798514333734546973791770188581993876221689840751055823582099856140715743168131360011424057586491062082874389647772127135294404953070392918874180468474314159734620598407040320008400166608170367112118343751778681409813185511852200719475765332071623420705693480517317048084750409843368018642087505007494619952665019600899176601904163739386723596958415718864618384302473662253749876216814506406950189377750754632470564934219984851718539722587032218317498008177112850530375525068698872306861872245871658734155446821069322696956607246953368646185793979596126257046918532218931029254837847637585581535083446857103267077037818920333971362474207339143405453237128152268023867072801589485311435910713904498475318963340074514687703657665421983101178042934976355984600499587308864661284752014767569126833779225853868441104095682617925742923823363041481508433082194811269941511043408709023194615174312557125524018841352445415572615013269983040568247791221772566105738414088719252627121982676796008022830387614388686457012613219208155754191603937347338911384017698017119655664621999651185328214369547792047788167257127134851383021673659764604484459487550224766271556814388484987186409769198176274920826410035207875149267232625194428237317225174597318237508628774148732486497766248351142450667118078595022629275905001273450220172441348053614728698966628836195984651386206437794648424507072360856902893595339398961857892858942467377787200037233394245138922537752281245520589198458077767701545608761570210754112359019819949584360655403081284360478125735728185584390069560560021541261307719495129050446085458142631134552668204310316741313425147998410392905854288627446234274806591511999324543454886914861977767126861198323948486283517657280313536157534559394302791922223559137259166063025152769107840107258884700179797859381757084672405473904787631478897275246017964331037015039462312737323770108576836847686742743524117926602487558698476967100341122214738090845611620772215800640765136368846318149605359507962483110585766412542659476154739360659827717184742944063588427073272074406700327508526153189488576643796313958054540696549273563757733380968506296668622948669053608241294898335094049890929546625433178043137432493492120605103217311660739622235014331147663742088610426075590192479775804904957657741054185540765093927089403547551019743049454800919600802263946334190499151897317879956628858813305317162113054310320104019190318343248351295074551666684770350410573216840979425540285659867598403482049861154102254504471587062827402511781920761147196419433428961335137034586838991938419840388352696917767919475130695992105782074913708553815314790767141525634899218130658500724931594394491479093098440925417997504887238347731254184798831825728789949151450034820782221261465419146273618026317154362002200172465151920503336836074939942629796115545885245787382972055243750854249061540985820662593168798734281906002970465824551003619979656950185194595237959355520760090819838671225264811259298523556126720588238939421683878460181650285372494324975989665452460201071158481928243096694094705394798878853193880461892099884895380624989903679254633548965909449576243274710285044778396644879296064714063827502244900384190879557696066194417650250403326813230945954402505111286569188840861965172813139666321596110068139860101546143078624623714604324372216350869897572941089120009606297363253244622363964672078929878000726694664111718975366816339062771268303313109160257852443761110310415735031833231181148618099241673158023423174803860041486233280623371241274618877670889913500011561624243175360004593646705025069909896255935226040094003197995129430479459368817998845439214433052542887024352000001669989418594770375675416066720550698404333521272307485499819843946809620774132760296755515771947884625323627236059339801795466147625064194392397133363855257417472004452710760864556260922832043081604672658381909151508785413409581884421144933132574801554214929779113411519531741063478160394510740641747924065816616083869145280931489383521630625207722878678267148420264906437557987606579358362593719082071669049870769722224330733800588899873419628168851196588695749159533258703715531519733785222026557088138882723453408957978840943812211510382893422260309071495902632047563628831449791855330876425214344086411887592109749518586166449710038879166988228762094721000797419648588208038345674455654155672535401031339978747352872116794311306401148513264643811431649553600060459587979246968144659483770321347946090303332620562619894775500894507100397543203596894307113081203438829003873027334262608116946019249468583142741797336109363305567336404575396590846044281043025786983375053385667733061556617274272905675214529667607303945641654986924699803828317849955422557741302917436567146132146497020741448344144759459443515143684689307708942192153411865885116278690278378417614762599873235943096672113449291076783387108736608677935995739728570482681655191146945000979165070990163983747696555195103552472878842616836788698744327219637686253506213000910964905763214942451770053358772065303429813364545922387418308688176323267829602952793462829135967550641070297222188861148284025017520928679393228875467130236984641467210838655698392754063804163342107850341178880385516224464421833751402406996753212330147827959844116715597487805133152993889926849350534276158248860355849625557680102724860506098302773050620142160795370302939376264241934313881767668857587451776054641165172936277194992318731573669552073674024590279555380566349763970767749520832563425285002522385508924829437661686708814772345085662812806152263935038373131406261058510709042901524309258363966349789362053810009247516389126594308321080969629364463058416187509823460460803353730409203346523445349923897224230978937907625262347823945715844953911498436880316523156374496051619658507936958942501558860061787387220024265762884136245060865740166512917823276701505335391284025507152482330969608125226923643886735051848524238907549475240457019529568864286926373220953028559436620531553424427727867780853372477782416266983988894715220397946282408423160511865626850690823978658953119941873556939509860175260494669769199593238858624529797703505538291493259846702629567690817380957998689852025824221578520189360332335332536784354444676546563375961130745079333771017544012129589323510812358895007347444390891310957840706237249340168545425483107109491502209127309342476108238756665751469682976596617246566539287897262012954078926657600281102071158380270945974032264006649266221782007260345053967761711234879546202798770246224307226223423003732442905360774990057926191303077050443319138157972504320468968813716108777268157075489901482380609681254148592895089661400060256830690480570849877034269352587807155567257057150017682953292302855926178562284521948679251218066573200663113389937822200054938788267680465804674394646728207543079107342432890035498046290111039327594748747843381042657570955250586151386766255920331352516813416373266768419650353019589677510633529628708205778491902895499532234302673023638150117681472591420287129489279006833357448433640830155499491919928473942402228394892754745772295487816112939546007564523431232462535260626598020414377993655143730233984077991524652938513886613500212428261730742936133538459845264828375885757487629920087742404380599463527603752781729441745673672563527330105452827318105993545773174942398895364384765350495429755963820978000786387862223140533786100980045592854993335663737865029627977757410564716608876931957439295706726903288165106034968588009978873492258673186974811095128239907025248770047406852693434627027032539138091114835686150335513406591292441259277041848429012757857082803029484304482580496727408029285214998739329125468138275813943229990533101119362821309983363090026009531355774916442395367256948820626047411076273814739223625641588079709024172533292705080108157551455649686926540896223650571893249721931706781244374068418525090946735434973460429061269430285983144141124733186924442374270180569215841030865709174618977496197300890282548800431557418135208883548091757084353118975521473278272180082664347786371269210685817592197520691694511326447614682682878042480375903844180227853628684161387102730315974665061290704120161658130135884208582376766368737655952578953028942529767296584384447681609333628612545703194779949338797888543555314735782089482697205440771372464007249764677946186245356407046639193902253195393904667636762865755726749356596860998282565797361149313563544035606180481165976294268782194541599111611672683569794237680550132870202981382124196805579669597155474245283721729019386699970896716934511342241504527111028660542512853154203886216430422494864072540917868702916853385628694247133234857744110086526841052142881524862779351731282316106353842101223304425797441219889804021807528090525203402426340982048847007562376614959817012324381366171199215744047643257465413366599384685538333719622402499183238100663275678755189747983488434426511374486560201476847929972736646588708021609596482976359476580386242134393569086231887794230238323379736288366439076180682355206210269871507821725663693990598076110145633625145753351774750372126045571942638564679214050883424046482892495891890810466465130925129939056052191553991904762189296561966607607499580176407929058174467382025144339793112872111534625300276341194701888671082563148839432734452635922638053988899905276657866203364330807789026430483574688395578724766147844906867190165575461495221899719172426809070446448504228266666761059331291403056183851308695698134521457601164721079525039470820404473943863284472932709422205172191058208539102172917121195804418207492283600477172569131841321505327009517511264348991161592278869937541765614117205319120007400024504165590722527535834526866979630646007798759637818433763165632287040048077623141783654052820699647699994506688676894794115095938857129690057571897304171875302465442801238241817055268060151779588436692127405622294481791133401917963333789798920163602033870941130597944184580003065132412543369973853321777942859265422769973590678033127479944483000637078051510782192775520045456007946500970960919588312878496064933464338741076278851079897810512109699372018628617208425593557994372900098138503609315093205187026118532752318449888221215008874648052235591424912652842401853205551750545908559715897825307290544055284049402348623053879343241473008605134729203295516388778931147402249022745638525592739360873325864843680059867294882413105272834453620491904512890989842579500942497796714366601314894456415092873077168587209166234215101980710383878823168858169861072107401753409375419620764521457632292290220849742602322223469638622745958802887703118405567475771985521361183184258403668253813365939122141902864776960705588642027358831279764797166476298016926078919094744302025754290930067433182323678382478495504241545833425462027686923611318667804932822885980665686423708083068367098123419971853010186007103530332014479435577824170633072286733113887516908526023139664414544197552554499365869602722852926392577557443831928601602820826333759212778089927585012019522480536203722369341627203728837777290017584354236902641029589475383498838039122787706753029917213386214651803803076416047204896876565051362560966414244701240212598296592666734284505170823480205504180538798960560578928812758107651496131871846150822836059323699371624318465962613233553147519645111441529062639847093701618377071897331749277276618101065976935314639488645125652499383591531006632588329220361767240106136078282794988172214092812891274328607342376834406675824428769077708936588470570068582335391197667241029847423848554678297230884541835793618288845969700091564579470937879858234978489055727497280230768441340979448388447733365363188893522148710041217746239457632006303045446487873877765097161239015971045862260864000383599268699796466003570112308851000963621021583829684205771895818971104922838756397668689174847555343206593928473665713369359714186758427481429843064259209219117521271068401089604330004334859437551833212002200327656410726178898577141905820993344979167980784919798236876631895768744168936094983610998243326039304995216017714329285529883397568976010392275964274714479075601643735722550412559381209608128195639915683403012741384211766120925994342826503363925019012831207350552209706355192387495303974225163334985686661337900601634713165714048490455655544529035929316572414548060975326289259556013912535129224299302737545890907501838848018268992251662429146943127331020774603861853402405092871718322068079870265027209737818668897737394860702333625089842220949217241124331173405333103328635877208937593816912863043261883043646520613629322598586560206003763596954900202950610948537783825189136157966286094983205808122598434435268828726865044607392225915059435851986366487398143239428237647551355279451152805417343738361792068520241522973640458314952081042270301413568509147632048424129766112113159053151377006930857800464422898346634973803364876133005236503387984485473172770246812892375241159753008194685759077502616642385654038985078204511119929714420627753888002553709022737601979460413293659703074527248311195035336569196637545220027817621273263060756560648552226465458486728762592190329427732369769831111237150374008118686101640847655973518130380604745132916518823179261879684786470456552948956676252965884475284167516876824680535495995778606071048014173179653356055978477904364168150880806626491682542876043204758024489081381244806484880377088615726661319355379769743814610501162153441505951324290662852808490181255759787274741047804697141027971330533929435175342373021982842934207204883587190720314043325640490680086918124147981331070861728561703317893113394560181901339976389645600352404617432304439975715196568725507891442542866502289085767192466466272327506376087093916046478789205925606402681704758420408166341385512683124109073564847634889161778453881273591853652059797671554648153448221658430172297669045488127075858645429548821545505953237426019231813907194889927568158782169562811294181598182896145736395753752285778715248177315920606669516975977736968461143255756500827847620724205645227637575027297568586576904120888089195311967484640395531335388426990964728863855962882047256183692741923975507051118910762611375917162934454473924826867846697966776530435544692501497862571576733297483601388185948195087959837137939608687916657106991647623024057303812492913063243909336048809733444436491336766319394081537083745242193046489779868038750259309265087540311652287869478654023233100216018988275594212488239484790724655660520995486157245462460439475494064066710571279865725101991788460412730752490292915352746001056250421773997761724667928986420185127888984927692738952827892475369745696731838184346367370230296093829764288372607954058631630752933736224221033301271258620710500305716495791301440947267170882277101887980623504291811588096582203677806126915172596174129352081107255421738660905562851156830737215999903158729298723155173936452010894576594312877001504327491699324467162797649519969144608106835541679455917622808575818583708978891388851332508886357106362591770538602624283391539459714930908336456669622990146255204033891515010382096192122660989293546588386725471024053599561220342913324599282297536465420582832805894788358214722367019331509038904202623050913567075610239087592394343746153175787805094822534349966474393546438622181463119435879268557495336432342006890608875148167986284618240816086916229413743895522949140830488634335271167112902851495442967291824122005838239947998449125358695473470787785018896879124397665452676270106726232738431103697391121732752103074001916246598359399648451226142999086907256562563306113117148612111362031565497871392789807410205528157337056540273145053106272993286550593958837634910166230470185861061978326321317455670885235211524098235318291945190156233608942806220100475694490092688995308160478499528842144094154647381241574817590816250313468949728612567987060450587642073349236878516463674307956510453075175931680052970339989359817961801287829886872854320963902754739356646510690631039127345207188803667141413851762576532809321001608044728574647358961320878718027122946177203862626209166164231353342629391215231216239194187848021381197664453446230450419992235669964150230143810617469205910459262725056472980067197283170035154209480115259440450412620149298473466207449865069759951561303207633375437721645495423083818026755887421522426766514235340465029247982064201555151583514891035371682805925853613490231894734612936303113784728418920562508063451598900060184648162583451245303672696494826565889208998486306189569329112901015120259568422838339127582174191784509143277881794833235750908877038541166604275524181374752961255971438160321106076065753533989783122358208145195293168020811440834718351753624626560429551983741742916277814007793610693825166760324807258392833262008395696986715135250133061775732298338991093699244934791216148515544138754351462905712648647017952113485150109465812718065845543826251751328848071477809325268430479376728598441543364102230963565194743640676575545149812854539199819465061836488979065562456121606070591554319610749683113014656800398639348150401282495675673357413936647609543566454477127810318171611102802061262786140543972716790388338214681464700635072380789075241866737519813350848976776858452755326349004985890100660135141304125979822619153335384634765085882588311511313042929913285901151890643843443553198993207490323077350631790463863223742771562539374604315395251512461301022099889377549717746274740349103336754910984160410557184818350576216992206933825400237084223458361568879705282920273006500209070743229643869042043650408412532218783632914513529206085862098185577371919540361307359427805264137533382061837647691215628129468101787150437509045950922758744649821698830653544235000969239608778831124175348692474433893060736544956847944187750844114290642793904235129806149669212183514319231381263446587749771056975995601038728539147739621333923301696588828187533477554718120660069398614175898244402367993620183672734772284130770302468430316714438945428078215462823214955561152241049804557811631214176431569496703577792428291462634715689096284244771801314225536647660382567787224074698809200697750218854914165070299663630363262492055472903760297573884480189311030556680285729381253029563009053832658948863106562186765988513148003596748391055513732156130049659238849800189840398489880568753296432648893381159371881800849185886247013628866244661132013931786346682363862638039205871327039163591124681400946535864317773161885559260613977911199902998426580915427299644717714322327171291902970532334013973259994696050155276195767073343643064575594005893101864792958127924622183734054963687748214428197717867609517956852825474023901063520708147356753900924463502191753927421663595064089131192825689739397713325686948048719778860062424898368752592880252443909221317105086575514580924799974178754295055960863794634795327702736595951934326775334037016317424927214255637380436735653623771074537854989514561396064240080543305355878348804917532603132231831304675500897228208680402967634675290214604166950486441851008604815975975941974451190565802968043817050235444973086581705164628459830427231947658315281230648969050051080342848923692959090141729278491258609326321851406684393844466877557604536974187404527509525311928371479911772797140859589304123756114177628961265616882859355419999576376472489761564542479078804809630512591620227516442080137223189978891858371789002345696015653077729908972410744128943727320478568931859823014073434480714992808022476738623983324410174125682959344319957736004513702804440184153877799132627886065150433774610237310457725518423210306205014826699810110670383589561478460176377740932162990658494935266990256559199153029683283939702776772902850481828492370542180219291314949402840529195815530501170523360203972925893367966040993419557054123007762662425238365146270095413981124834193142542235312512642575251041739103343965510651553422098747193220376760605738060741182667098832387480416787130881543323378556088743956196159354852516319308216535466757892042242951734465230872343884967586503882569122147944573423927044949795958235801512709242239844709900007107128162491888621153525862994715875740331280129407788038331815064668191966087041166885884420302874183076550742230002845098529241496575879422607585412899820519242747792549303829254449095444732441959963762479751072362065170275990641459781369900860516592385414679001766690346783020942195356537207709821563913637971398775032375732685581769580128321654488379063817812967769464201458250677692776231406718292064930741806448295148218801771935777277945846942237018079399825169945275461717628541160307463775218180459605918492051894676381473482272680051294529827465907892943646734353661316551537289330136460128749325930440092184842001253592087004129112516251915146137318457617293945747032869909906296196499657149894236192107269825916419991450690071015599666329765233588461411416159486108105143268278733884676675608427417566213481505274431204880368696118375599591254826899520335512693522497078974191155897117899407963179058302428224623718071344416922124878947488964306527976436987868668243686873081298869303876933606654798913657799787483553701087597336975688947262465367312224632245009084773494461700775867398107950117790959168017574908563175360399899825780906366337221244411170661049349923118464850723494238339884009631163790130069267909236616363718332483985325281690036013983444963029170494266976743938310612762671481152508918953325800997672162567875735388664467716679093112408552468202748887994941744443562288539031086287168844203889105374358214594805223205399420227872684669408770702457949820946139570283562019612231357506557899571044597921537708521116875187558787740073851592638413302393592564416890647873391530451365076416068901049018183018681670882296737857739627692483211662159909424614036265987965869530026343764045705797829322605476055662558474912674191213918775901631000156436623938387584095398955582639026944643561023798577022976899993795087373305468213944390892176514706083751863087622934013764562882308153365266894984648164985797033602575729004599994592349631419963064413922061177924258756677093663573971243498255459894591869635678265068352491574997508613153022379936222451136069920982436353663840165599866677577238928598657480957414838873055396783734329511596950567060626053475130824227854966194586613216111897311075009427892928248115024812191297629886130374329383541764035393069581418401895646640502045044232084988243981429860398293823287204446477456274928537947599616099717343393749056712965727219125935648963608554737720276133000758496562249746973346952549188775931960713195561760166325517805519250523532080059757650987084700317531210594009560264348861770833001650001080425746283133093850513585577502780495679935482024033624745849672619108068025583978006891825583063026409884906003290259374846042044557506152527685954979672945285508870310267516462781518177475296241434785008902688362034796728302452926410255021805455625030835083193222751088583628302778811176343057037259210992377947048667219646085372240624967246464850427758735381125850627933140856927266640061931296448576467804390395072311397913347684222881523380537993434008159364539801846957126685490535266606558603571103748053573237810481296635360584285431462477599968645009530605052416107455731236863501793387727290333981056772999772847314264515189876517126866085218460328470053406166126973242453721146273253198363292558026271566748446509689200839003873503989476536720311802719109122343469490956732692485702269909479710681239524450618623125607064974045018918182952496007760368149811281623591954357591122675260659586867540628655723282729807023409412509026081044688204965141592895184002369093409640804261380167286613074730331740279305141092075239510495146430030997092104460664115419305924242268251415577215472775587949284151482516308933244490783881848043304517978706202681463452523876109118926321576135008542059459140190652701024995764787991085214757038695891107366750644803446239928494272874187987899244352648615043849697838633449712043166028964954882517461278444170258141617415700355944232352225406213601226792939304642183704342830145218221881702720118919156749906148985849071650730796036397718823062447430206662761760929732706631946298426654613789321573744695928892512081237891857072081760153780130238082329166797812940311714208554702857982787409373796767700677167475757800443691642873296730377929798446245776292615322612424840903056572550740676871737707950652484072578314140223479052741848944187182685042538940579371743129666416133461598336508145811728837977340897817224992404099869801472320972310036221715544997068013160550878046548112558547371403156095947345133308585895122326654524058839199031086688343005155178955685998426819497988657762285619514724797303618439677099675899370970795197234611068944700722947935762339295196028649348453006636260362889499893459967574961772684170354432110028893196439894375976548535135225408972240608127051214392785574654278220620211627443894537524923345972529934715746149378014475523825723306996988092198567588614032756489943649173273377631842386030048066994052225983281468307807005614136549833703217276222670850317125702566124773257863491168971137539709422349154184765061941899582331759304069509836377710428919855904085328393123206910725385357037031006915658698616855766134921310057124404302881014681816742269528489506825057231931767473984094596476929572011451721872376761391331243777661876235599359013577627610724751198820185432530349546169327932145254890228851471542660810841657050815191216878237232975454162864277491642780716153951699008585889682756638912333835966229577801555425137835082316476932922423823289097289384209113960890746746108927463603660777752999893600082158541826681182313826539673627702836243985544419607318330152660744489044798286018984361627171315573966132928815352648197389309349290176138218868615598616317431131899188515504810337276621333772938442650350398821697404134531064178267273245122849550982784222180958764613872594987833211949334074214509207681469525710408384548753175741619845527283224472195509482180741350457627094145046009477908156282443324955576661936525622889299159339670837880620313822417038940359332422078172897581316903341470260771849825758109804480206150022126011537848931825840827634878652724592669350514009720510420368208893616945815853115474520692464861514057053606885261738379032345429902277852221211552240208709317541487791824926076198551064984120976909005233161462281267607549918062471808732327619327829677698899968192218316704994223329329777341736526145543210832863984578682843937860391620134957062574799336852864808282538074793753460758825236627135336272783484583974745534755808816769104162606547033669149377689898930431132182765544112536686511205961596272326678197152924987662545585604451006220801028474562826229974504565217318293219554753717244448223563264304336346605502303837627180373212589236869668516073289957901357384130471999702556233927183121603821631394094926257402281891091765970125055970491386881700188706521501658816106387280210912869053695746331337778508392228941200060795524966409058315125101843229613875370867708731748584371610961963857252824503934846540835026203137777098105504766498798238719586518947556969934792038931039244349823769041359515524587485249947092034908646264440321463971114844470962749069008743474425936758127203813789124984498212130050931713881262292714616348416189989854048685503894039371980958069016117973259528025077265582671045270382002696048587190574452249379202878695867449804020739549546725727818433285610490167968311802873778087377429063931657130970714464367504659029723524453896497206119785137919368916138244719952108603322311531976506333126571186231341108029895607668105647603022364998810480271541508063122470665407183572401842627597009571025003707308300632637806656862736212162008005476804259841783194827268241073860402022107676512058774321446175003733063176654842010448046554064062974819449650833850327838947227270712817294831465222839538435052911245486794659576092141868035107670537584272251840549831388018794034788002701168814498067430121414589550386435946448593233187245179503748822087489412473255771834118536019464651170690618638825073511409157964743716181652851977598704448943190336261278540076174753066980566254447608237002917584287820555982087630324719180484916831861627718289473452470209345639064059793529679537834241572554831958873377453617322469638754843235575920286648648592494827728591460031827809477557644798278187808032295269597066429131496150872450761052494461760208640904368626936138254235006912855287839433569405375717087876440190031264013516651594375132900369005131793661306361876896714070270172447855871182592724956992247346160942005812148273227868269142157206673762517238221105348171140722051727446753433693461628928018689858420480331855841204218186325861182844163202563444693952183989196316567683169981875537451402580200872934041508623251077808282898281751472197872829740073978838440004090546484594285568282991657630611148145356298780292509406599837119245674345335322680248042122274171242840192298107435472749230357905402569994936586730467968496441388374545870412681608256647218219939525265354977305810636186159128657434058048399562509650349314301642897400001189814449978380133916723104735517568254978786139661401508884108521330605628924658392886281645268564616827280342462079925185707974948772517662690993120296300732881246670188241055813889524446839792601111958220981108990122635979308134776949942686818059769160320901567130010605547338796592936601684928434997984122498992330364300543477528577474058967955637253522198323004835311302473076044391403796863783354287010578271887814720450183450931453093271528009758546407100003301996748265029531762003149551751371127585384067353290787103249899589166827037705205655243191966646455654114953805233858997857013146788416962381475778265401536842223155390717910544662709327531740467655672678347638354609573506166156739195985715005443735112984679357489523500055822901368246933232769822397179130399508781256364707415398279398846997453056408736271930743297116813010316061001842072783373700334920363829143762919107452510006137843775997604263746499728801560118959808308702259280411889410864206181877995940785912403435811135123652860271852098392241524304421128106205886270853432990320740191859441599990797250275739496002805100075458998867580265518352078031833951608928992143353054564351777221763734356256408798178013931257317599922173823367223793396520578994229671485156169074379579985444735804077593333578475727713813181266274616552988641795963544720228294776181272818826840048737347189283323069515361750722834272419156656476847693306637369236628166115066303873628375829568153828601239220092916290337815609530178312598804433695954087677699002944235105531846830020402773649171379619063539439214565464144701829347778527932656569098332633414714552674538128908744971901924765086246892011632601191936605786116577114624472719566479975179730097946142983676679651848103682236839116263827877555829733807622391017862299893775519620043509667527820471003381646397314315227460601861174867944711305412634625788903925736442113248911716445248539350795198112510903531837784125480220663137822667471321688140340112454219215512620605066605072261784151225458181734087253387777955512629287752710659647018324419245088459421602489854215193996405829025498795034473520687625535297509076412419840987635998380037932197455242171676819880794392419630298440975557984973888724510344878654564870577490446796081629868218417617626258118179102081454512663596035369292709435244069780751592785421120629733735698873695838283540275446731758828414318108956342832347626121774191787452189392768505108591933883433252788722733339551543429920436271734525853839662917298277289331041676674615975060527891162614572281570272463714916281142322292687687797296146500981102581173444145131761639415419566725256894333104270871669558223725791029306952603642745804931452174720865077644439082079499183549097379833862285893877613523288433784097308008874819470865234123635705363117389904435545734742296069112100668850346953985416309337427520725163149826868505030285339748250733671087386495013195250882339861601808950974447109534426399324825110722599975539442884699064411290983706595708966304230911693123685476363147712223356059954931547404624091405194247396703163938335798606439969651325966006472239271653610804752387178871199519456592592238314797186298725631861842441996455259091074139869640964028896296224951855672333802309337038983293954574631781818626748957884369189084450781589344528084578765148345528052562253316104612548785013159684923632379891281914080479626861239685001122266754686833240655479639735962622372802445393803923195053177063369244605268251327913882618659256429333827412850706652928903509514313894269644050962492143650392402343803451808736207179350874711944566819625473601343976090348532769484464696231874403776464347853321955961242536683288444546018316474491295474719222389904644013682930081859233928311186459521874222307967566560342309118298690075519389267075956703900804646906645953203060293570291754997727291711454206541041894906321468505406886825248928437151496058166543344492615163296335697905418035906188414102639496045488641644389104086901719777561772763361100810867655636735995368492286510396510948525682800813793430565250094821529651977495751858546693751454433123072487397063875619281094281058338666529861259777372050750160359733808212935668789699293781287289790437136693694008982178674879701250162773903051245802482807707695669955557968780743781695727273060615129914903330735114746887812522271363375066398407723738241969841699244715408822114224888510501600828874763128266737242254520663162656603387563105185815903618925418162006782427968092773114957538222294914575510809668020289649317298356188382388955111127801036362257406313450883016249591108358636103799900405866019952720803711468636182363063286693605799223697559020542912351704339912190724154522653191514134082366688218573033052350201626579162151501752649682803139994287797372843316691440698187679277026006796995813816422589192266912404470576207290919918434919359654868214634376121237284317642004824885321382391339229362308700257810321171324535833359385711637327898949524905908802507518666959249131451998565648171134943415173405143832313067348303480791011991572474586792439542275334206067579870597521734335883861750617765455383591116464692882312469437254584979983975512071896280666904553722378813092295932067276772110407124142128904582652011185174521343983167429371971662680548916547949441713462430290346184301173478609325557270601048352541707368250269099260882963780096327428207280182052878212219479860220317478684670900245838569297965482731153029497614412987766544412096949200303060812478437109651916765981493452534550907341103784222443127614790551606176452965741488647616971865766127295465075800723115591144489331975930918357304003809025495732871976664744586066285885917209057367671086780782132300742976114922930070219108797108208783007675567128328136118775904880972931075124449595179751734282634348009311129065234879723681667754247641644167050790599247659758230148716807657337701619739671275251026223740141850511287338509767616265440177647993147587398924930362606632612270878484300048999319100048319326678400268134230843896824996098360724402082839563476500977728426369122129696606623692985777050120071135437236837486507701397838589430684642213647576628035242108652507101192945807591204326197174787101277282321106124089862804333924611929429233974641414653524147564328197908895843606372211768306190975147631247081013295139059011650533246682869524352469090549346251387808845567259859073462917999943314002521780088768635374207287396226376926484428289027171888053261310677089573267753954390133336822410866112331293716063497363695541037489062612532000403398291575320852013797139533595644236065628031919605812235910834221127482704727132195812358347493141413300092610514011330830223651662415149442090995555789297649432928215136352252028181970290448170845281155759147195024492922994304218559310090233701834908849510936522695044574670756892024761777526359646136478411567579831111002101754579066653332884735968454851934869429378154783753808558073283994135381523164817722852181277773318032155509817917873934646573594092496087389769917044967308342605455276968952559226731490855252665082060114244076521750687166976308585081567452786098081062397960712971822707032264201396160751123830760837403973185513113291325143290958000312383848385754897102849123209619718999584561783785064026011054914422296601822760796965971817744430233301241235347667125333310097910373186568930137772748853506051683776479931306067365547392860144287682824320157281801998602484586249887813174987440582222769900116757390629402200500344907049335468494243291076538861637832360369783909662570933547077602005972631741460258806187495882639842638994636213399572880810219320666361586249279699442093615697912692608007956113588982545558914257514396711462916488676443873032238403853818975825097127516832249545966010451955063236587080224372509711637726664768971152688256055981509882705601436948444758731691495166878842379478730233080707519987457542514208093579996105870542787546940277678578687926321630043849952309567494617000730947939964600158770136751087231542695538004458030703344420747253554952468811462630184086250736422984814458854828328113801111895199027110948975425431113189974536079857412278897096587381496388588528185958097490045790133451580729471774879840696882768750689511468130813151334847999179056140852404344876074492921579087728211633645921278637513936900270348384243219205386170564621872018415691800101370039943972497018527801973328730230669537093827790848029510299722436748224628682939087603032530787985920284740201988795829091701347333642452646228264870976197277169862972985556752190469307328411670588595611040527792335285413989620673158509450181340247646091029638596518184968451771150046234963276143436215155214942866752020309810574966924318849187003382370712855308335581679991738569346432829179888993288225989014025278020823067655330080910536046980763859106889275552051738425580558398779349056063918234335102468386279353354960663498854256926353894717634122015901344696760881104033367436778178091183232904979485231270369794782340858193521303051331523961967102455201438507781348089189176533176289784250019698491138422290116309728699839096239837549269060139712048338860344340499176041620451966549211796677462992209465910159031802706831436028783952482735978630606340821033795755933188176080450551362675491880580281298712407598123240676000451784112731606985051353178392142297696135023856595502115851247819571569577014040091903225340296399609739475154251216261396066175489361974649418927422888347067898095076937243834699705472704134690524555121074536067592164699719413510044034747749890376449961036442699338393016586209048241598877542356286452118568297254956614141142889194149793502907319150402386335056075114765995232970356633101404423113067372859277653242558460905275298174929726492728011681052009949901787334493189578531164918982104095279970502616066120455365685473986803479997531233052061839431774507341959824559044577688125090475545590936432242503840488342227747997864984624602519869079349518717039551455634577104259192235780668415151986775617600615591280594500754642665380760965464044950704212784866007803469467852127071900710164964033166892307981456553298010865534452406548496028062949587468689357572946473859798863102751545720687264785351979686890763387721254431637568695522596304690472542096147561601344671846894626064020967740915794850575916781015009761770646681645313747624912486237563626864477578636690359475804125832991089026112944858069869575303430853620172344827880085349355064003859630109149137123229088637389341129002666267748692467974819266750822297229018336571010739560909570481406871092232393713862961585091669680106771890239371147010236867583123844398867199429978021374444152032246338893572525022060283433429519168994935081472805056307395394378158311171910641716671675910936831517869248683552378186305011880576404758684978787419436966629137676602492341897263898944274531321957952917146032452241269625611293425925660431294997521863420920156242847590346059613945277003505358002839359144697745334634642356096113766221611922645204308004782916665582553636040762613962394600102511879553789333213603966244167935497818470456781391676351092415004094814176101036576877271330315837632413010383802570291456171753008098864393586404973225767046835558537823660292543578230025553181700028418494563593464538616363742772056740368481451717796889080222203649582127206835278548691317920789895268532397707491973186008591781552665227989798772878260946594015655373150738772369137027803014344190410903453701262641032656046415569268079049247642325412702490432391822706281117030644297590129924891214408740194671601379202114185043389023641623588668607669170355113468483572669514590276624439120468191588116440005425502421140104598625252469542460884541357142715320611190240895183058246884525224884416916453424304395780858354635259172555115972485798678166881768511703159753918928202212242552140207304739806911473403265386351477001481678018429889077506657084640644449802678802444965435951046362919279988460191710587228690526256065103532801393413817291802918794717546608620322111442316004610283993673958278699539411986342739951298552201974542161769018399478187386474047735009781760788060179725852651759929217525242508370898060898074127185554454529365447895593859732672591502470179853085820821535208955473816539409518785969849459657321226886344735915442849258740103993009544672028867189045766681686701929143230346285754081391489282557868951965321517820511085050992409093004468438027231835752724001130189958459202911687964887769439808346408007755779192658929404135077914479306560156530353965413789427211264688853983598812464184212310299936709100106423738550303397309817938202545777143487317670526650592633245811870689420857107412660176349049528564791573535926456480270220450033304666143808569822250050989133969492224190794875126691605069146931959938689399199894654826925546466121768161636623309122914716596088772768889136380087784953169064657214118580123698707112314818082735176203751761949534362581668322435886224589942956773998638074814262986054513913055726931371807869990848716810278395193601117258417577281846458331342711664554049960855513292122436471370051338776210708228313648426325332134469391318557601069793571629402455859998107587770079964519087183498254976571400452749885912525019543100197428390313695837232193489195409798760432296173904802560919912277830492867789162365982912648597137844037936344723446066110640658735362880634790833272285670624032424694303739223063197095069002843002766405041067312780845001065475433715462991775115440496169432538751158434534062335495925728512688438303211019254725675533952141690039729527310481732942503451049784923678134808681049229669631976406722166641205362894018951897573129480902033197406011560922979054709122944153217768257898895965103394819384402174691894277318016049818908004874545757611916731156110623433350083499543089712878988843504994647180150698660363137853502226247854093146304310565904181503311480631808865218071239266287794012711096209552457602028606317362549724967285188657347985627493121742383393168371715038250296039057075471702017245972633814927147395827784298896119359108031450656687061348842124839482072100132215580473346667806550592773352986521113999007530170993966397444260672624206104756621708309360664587998185610501630866692022939614181096584018182104635423055760677461704673573304213431553134746692078449420607248929950222968070451230477792857693338897552819763322025850891728046190282007170394795409881051930427870732639340819498053015193397578346396960498865829137763035081746887279112796592132804265204652782157859786182946028433425919295203287819339188168111997433155022771545219402973763623237642000756338767825896441299601939471029624720547517601028642897994689916194441388720215886969912406754774700634339075017340680101452897974809677395467252659303884996374734326044973916600566978831429618770496987962946132815938825245973192994675091583236161810387044001672150648303340654465052825500842893084899939067685851885734149598799666699682508406006668249303739049446254502094710781710131230180774276752548382884003299916434184928889794639143148226874860922694028950652524900106707653635170931709275012570013449216904203427766893548565213433262593147167205488155981741939424946865077912587979777676246071143147374614220017637045772224911844235714741853823171855511502101485162938974983958597229270416906159284412064449955758512581858895583017880622484389014359049425460506753154960707487830877938500710047126627192476205482899776767186329521961879571756781020120447411339313541535260207827914838410570662904533422157342327937714817341352270699382476355180079462543562319101486324893492954455459206664668196345068725388704108469471587258190695312068817437013365182347086155111994693206347020571804912520975911738807251154187387146340235335890988109953556791243532390743619836427156006300707225349913717880137347391460124881455648082635305799714082488674672459511448916723768730678078404623876841751073317330005626230140185999621863167086433082330942568652151260525680253950223602890923438346811083420260336171559785844661074452523798403207987670277667647750462247359652357365586829956393489786479463128781769885253193963922155021870685832442767434932867332510365576014088567183257787062518811402152350986630590410435391147962809515125846408966894622819466802094218388573105853031770159730751056558957706357468918747397920399734837107935988387159492883727675351450215028423268016594839003585657724357108095824237950588334694526384051056110439706709588373709027687843112831461734234203590516151637683464485761029572335060327165976216651192286607126733851228632594862073210367502363212136093335792330448259502194367234227325751986948359110695464184128519460111095793155076633025979617398360189935000251837520830064626896523475564725781050191909214717652829023235483016218250722243425421081392057046338402920766935950582917081544290302333306721261977635852448270238376481152276441964642771454316535245441050058505224741347673384736311023693248573599748013927499403912995275690692894006380343371096232070069510455742039142344586575729425527087631676105927386280702360835855466081870626249446541514027812055594154501423331936443263664133469960885603509596937156155474951618075316047577224410745744676324020507767934021194505914386952076255803566570998639124304650798845614231429507073404445387649275509308012427542181078706324502896768703289854763640039116265796175386675561065126738476315794335376581709219478227730486294070181826328089397778299880303613878674596993740143080948549895586108505983783368628262847573561867189353287839163936553946746238183503241440792054470294752571324638470366581132431019954841190430921564406811084399724480711005735740553547486554548405673967844380043128011451075315290896053076418124751784954858772056957550275333772755643043227926876374325197754795088613820066725009771788738415919257965763775121629516689673470177947664636361223103223067612274760916789320930912069903353911435208620779778641399998090057986426145676564672525129992039804565091242176543443345823256942333234204009264993250747607282218718373031164638232440903091981803117143752328426078192677999523284953254603234929138570703758892352065930525003095744125884016946799842879744166433766152523386619560546306191251493269372762766316826652976926450689907878392857030637179448824537502512203835075081142783178206756612988073561906339912794502030103358671465044089527054438746828471695082874026057874368636467074518336413001304341520203952257963618847547590684290260812286691978600961774537562246301370016119370158997711440350489151917598626056239242298691683830087680062890398839496345536350424562024422614240725481897401969653104989872589489955198405346153498661380369340618261113001751345744816164289810399520378996530308924880433955309085318010508606643952303363610107773495692775302509977234163386380373820543300451641904627457479163957928775597994840476725935748998493332713429689586025840183032727793674092990332027133491740094998094843208746385381804549357380139110711353856104193424934446662293493344805453668493225338884576103663318236288086287254025636066137273731628508937533970234231035716157319999206765632220952251693109386859755106160144962842681732196004051843785704314950217043947267073801084525268507020997526683009163310272611461809657777137403913842680892410119408836609603901998731054900425707635999089352457495575765630688467255676576957872133375807896572060809963782874886496283365765428892544692871404554927522674942857313653948356816487525532386860253584671461477875890672176968223540850820369909151361920306646722283570699318182399492991641244827566263426430136714167606840460203888339585086821086158484725839656021029399007990167977490528542324191109918349543498241409715480899599536390201475369455413049083509555634682626302275657152422031430700230012569391461704117796731650590992783209147832756077932552067780107604102197878079004305544555209258772936583603645270732948018085348971149984726077646175313605197136182675000568294924935894038126460846245324854249199150490153481757510916950002696716285553583160565119025781288254094213292253993132256507429633752163298402611134010377970342323421348859685406041766098853858051765168252873641884177879388060272511416085077744623447932302040537100437419549931632285692390017103334206222886951505882126791201578660328692668803594634790959100591310452559251776386613066978918611278713446832466890822181111989599189726265983978800783229297873487159855461403647484197715849411795076712987914623822863565705170126605606474785547463904607084140798423404888804260144481636371789817653711356739812599931038945271384697949897624545424951557546804699060268893976883248001773359813584771200525135235800354762793062444256666763541818678202754394491453392767092763116652917395073609346657673409318179887956256045776879537777955004002371469754301097552890826116470331006885648162214333651180298143540439725059782468775562614835639051589875455394965735021255513482132321727693578114536021308213269898624763359859768660239976663229372531188349888846268941832076377410303149546676591444029514404368509774642145059240226094677051020120702459883770254253040052208846037633419498154357126639817109449156161307629846300282631014797748804797766924602800706729683183598517925057193444532317563107390966874209269993866000817518745583617000067899437946105848972624534865270633428829138790151828448434371997410162938331183832006962662461792080447450412020214037732511876279006364784192354116867071265018437603497305265321372352210500915811966941090633406967012182433678258086907377351386368453453302779305407344880795374490071973759632227610530472434541334535444329945952530974059008396700767384902950892524328107771781709916987336114085915461713140637805266163383792040792095369809160545663244910517652416824731597315486676787373952817821394487130916735761173638979249812633885487489379737116931756924637840379542607302069302218949845623165336173204022419314266842602691354015424877442900461789278211341953304503947131307516360459687398563482705115745428491107634911390641294205645401374804776555461134849812900331371954686171462099757460544683987636077156887333203265775817558367731100611574762612993510484737780537047208467234842122984645343837097936614778277703532063519204516153738525261612339428691494064138330388074541026148656888300737238597501848104916459326289687635616544520083744143490550280453876389249057341357763839503490711010842775418605094584368836231038584642299753792139628553702735371999491261187812515234544335891567259224175917210649028522369366872351631952965008803024305162569576596818435590755287635299337229411703100639487753042504868932210971065280182471375238919907539114899482278436221163883209197263161429133360636568819049635028478129953146956479553862032594861063499870740707155604357368383499226192093412296560631079359547382387804137562780220335789051386220969429978585620885772433623453634875112518086109035688785898685406449081267056308445224820152888278938507113989276514403180522564045881800593045183472848193635721196353784734859029067253768996728644587239025109378147250772911158637230802862780342703260070258571514484327372840855926372388353434757766022345859711493699209243014180589190882234868347976146554171606032462234275760388355776405327916179157856816415726070505272881668046242457380886296308937772519700400599575511840614630726941398138193042932872172044065925239859358532896319678358742532702429608563733599643630220604907133235189832718696604807689452927166457926002628269389335208085366700901395574295100976751057572251456670120234541374675086914203244324732541733580682159216396213922275160273404361120808339769507260442838974847665753785499700940632042529099635745377107179311341631783323192190442582687265602449685119711390979017716020896405852867298586928524995834688705355557763657846904546563087830515290562632996601854616038009873575528864961203741376927380500854465066653962902700826896800441021831238384371016584768075606532318522999256239003844631790528663528747058586756067285560714013948903077955547016345979458101154185541991849796347743848468632086390872123309715467215909843448141791656073630961438217213250519639617507173526202305986507390084814813685095813174857088000445751009028628723884760238092495358152140228399686757346360851666401804623908583048444086070036277701878178079785411009188993890074801821645652025582289429057391073190922685769232816881994485343616641978297871615110249855676838356932756290411218501793535194625351393903861014644454842437046883724161953953447878323938655437607386029133319639079963021400917169936961848112087713232971484572478954640010107589281330615921089195556670104952461965319202777404360520764699759962309641062123326886054599477660708354485562156735942232916965978412722799759202632156091727864234480343965913774522372507334832722735662023916210879447026448287863983955734484318032721079817750844171642961100687892571705064430655366548528686523253676084804041898298208934782769577396075206151851351370276965066076804842727614562105759057820993820796632237780832552504392746201796404211600030526970886514195445445487119048692864411044587822511127809740303923866280083998129949195226115686157512484305166352641058768207533226278150890382889478494606826872023333883660095806786994821900664163418698294505745749202935541730712629793850784891292566888821770868160433545995813708157116662474584682502781482727361065124988064729830982053996603923437391066768066438990369933651761336631908714191062971107620089270186592156196899308062520731865201349326912602128292703741275451837389286338486434332913398016776015530648631036387789277411382486797400566073027217654999358664349388558811120255735685629948314288732908231887088921085407538507068619836280351225378344738090034730545721344196255649332103229853189629997784313688844246562158431628623702334889058248887633313234016061739702935124846919941452975644735254666386677426954863646364480224608836639522249024913773699834782614919392188378466446576474148746222123320238148728389487595434069882475575131471298767486923091018152893505134429917837838465329842189617722414797956482708569932257313272036463816768516990924228102919498356050096402873008718843655113904733827635919632528707814017016742839017641903753893156203709911558839399416006938394244487608210581530798032477506673889361273687006547803606177599632024551131176151597566593257498393140478067736572733543654262807902920318844573519971041952695410056099651850243758417863345657551677079343763286381370692747140729987794860688335709680598180518174385849376719859103595381526284004608731848163153852671471146818325215414348800390971053132267029251190158655730888056509193376400041736990143442929921260572551279910120115427090916263746540031526027132780556609793781802745764559458209426519060877439393703231083802886477441302126196669772853833773988518488166054635075188179159135080098577390590498381109692913583950581542390318286848218343120312033823211968382511792846641444676682546194748544102312617304862682824697941900468108231200223841759012759662030567934994798556567092934791901507723805638676312365825151605478148695656040187642233959778352113679913620962844120492066600502581126635904330810241056817258940512416721659875951985039971939616995567484238601700200004408198619323765409116893747374996376052275147945324111978406027781437270609091059128890680828795368675711783181026436628606786922861608355109023896351609779299818901797420102846442339329286574153112866312615214259387953677370800674829048789820993509846634543412059913662056604902666494399661647511056191330779242345327751489867627276424120054373544328313295899160235744449928077838981814150287139157714104426610868079028974523984194758451727914824099780996040333904947564119686306441789578793658748474115676770817754581172166937028095407944370195099194325725955919853718271470064232108795647668178590061293722489363533868236592587796501926867235267547194447169762585472271030674306458576299624813962901838926229061315729084122060747339942534862816112218033233813225797520557908683561030764661918209820304355364346767845572551217702328726252875261802416972330558866116731781809258418220921467460540467208503817765418160130641782527393923714114952967834046780914177010275736253055513098087331437199173476457481394223164308535129625517944037864264134597823254493899880885523632981297413820155595767911255549149973757934138645749889873318599809426794630816783105461108378023774760949387346870026934935358743007972817496407361093507935949576954565041155880605983215659247226251694057281776093732082068983446298414947153848407169620271800054504699510067234332904697847226078660247509783020713363155387152347767752241339711891068603445774204999489631223866176527375890342056390293304901172912841784404136422381059350663099393159028050830296504595479733846154008729438297764409339210436980775587015420484135484247240989902041306440497792297538208515153391040179702077889146031817470463793746400443095282852718782406523970782901771066384705026541015397906412786178749916479171202784765202006071880780177153343409904469087813123448992741826280234418712084245775076445694834097797382027172154327287863624158033399566463383156800067921609405112582636384885873748438205506735074576082007006843176930817870369700851156982994978835915981496484309960031755112583799283415914800224545448515842596528383650052701584363439365686650538362574395997417359129779836406438917553447436081838564425540690892990515246275163768474211150661968957159951381506969199545980484600492269748760890553315344113585528204140330213651079344769893020760805011240266871956866793770402348777560139529202939480596595894496382784894005336007004862950283892185384411309593947772238602094568830413026194246109317756305567745856159079640379248881595044166890827267659831796464697035727657305681648229720158503308328116030957674025298411099067849706644970882685379834954335420533644536706900732222210100967138398739608259273793661589603684546964543884414230807129006389523207804706334622117346786648268610238576865515818610944852166846575297410598430061389261185621124447368011852512775410181715596480443870823673386137584324098805944816794112954271531020728298351546117697340333203211063417569735155259229018843808162908003241795622773462282512301929630750113504378934025705312022584030305237737717406188785244080456208800912948807918582164332705387530338527151350453485634194079060359930766529199312246006417920166524957700331289145981268719906380244080928685474048247677122367714795209231791555515841947520618975668355065095304904930828002061329704340156590279914816638594538998560765169832580325174240308009934470351641034582216360313490453226826615393108622138899662264179677929645645379838419097057839365922095374153645845476281313131855913041005216875887863468524755416143404441144213163988465471002765562806180821994607897558765413093313687657624500959890074587525789746563102700970848113172993314148690890750227909499647726373016934380602500866511257866052183123448908655457117994025355141335207907312539567009196619308427331243767525598327678135093686245019458418083279607600991012392934771441305913191785803475144417110809283477672824094123798079868052887815896710641014517202792817338416239777428974569764993033875028222132864121244310167499549481513565163830265529711711308107426063485823728545411501379284795104323510326787931480186140923518535980026524432821138149276541310144912048341182998758292183237199319105282072529094992233781887892757633899878176187595315320748144290902951372561654935842211748873310369766178122741573205014849656607756874391210434330221782261328207694953198759615909402315716554443312141430862090583040228783921929688220773629697351506008902226614441986368747007377969455286733693444193342114620057514283567081308519501306799733530424619742994393585655278111941805815266526988767233065836136857180413132310265304685287133124847449470905937105651376473101475515066100211955849434075958149878841991884588378813936495499381175122305460685576790142308585899895655453660236665676642348352642182495142868440034983459772966133078419070462508558777285546526643048132568350291007422877668040824568783037852898685465821541797562505151625215608353781503293578402454001819566409952067087246235230979448028396787393826734916236743856474485105799759137965702330481047070514872455657016741703479157105755072617687033637444853610654306468411526159383593362295029940261969568168857036217999481978318943124796942006367384276295298039849665509105408262374379851857515256035471144182253376258371903018786636711054288419884385224791002601890928751646172388312332658421868184570154230797682738060160682415412237381957194290388696638354581839840367729230238046770703410590702575753830079795516489196941810183628294108478113396569129142515801044908226168673808684963032293633198077106172257824692852340424123469526986580268621090325574498411601839377367911316348276708840484774837277394818106936907701550641396643208399714946153099326205049630949747347857360025570394596692180767743907238615521458909413828110799583934806410827195001226713361299727170561137051145470204273958391963058669545342421666031040280115924765105478509930666883378036006592880017276696097004153828379123339899372414687640024858852689631658429583808695149135344925568860062343799923468090341413488077776304041290346762371583933699689461732700711610212040660905588378186574995039433549077683901132298312503160103449098168596764461972348316012981485684670085924807850536135330116931238097498816152550382850261002027369272608236654268206542276996219853762038443941532270919997614097404145093690441623144420294155560093746289065751079328382919405394222803966208187712923092639059735644430559502128120239774209664703692360865241673479280176398036943759931289566188662451180490487560859400982172287503592681427049643827078424108101085853027899600487915179771283589706845905246023390721646911142916604126670484565774018259193598721538994166277084331832182937638742164300849758872285636833660240828676488108797399205271573024762184590177667439265499706970758753914740502273062093815922514467212698030804426085316815726285736547884863181716265716791639737972419523353867336254493196949360765963093611921852667099310977285090419978257101436413464271092152917081571455223036058054129465389639874200904130198833420142313968975458140361504917521493642083364394902502768266209800166004977955282417898050060216147896217473617432640826256438236045723301486862623902765187791000537730846916040890181736146442333491503711917984227248522584612216973134903465258314668335942215291898586465375704072063395660634193531129588115434910682213216616705167461357047041707944150230763436476559202300625830990043639876512083203659579492736830072969986561837160518314340050693827187316360363143604790610970646197624872059131576953335846443019950722789302426113952876867733325684586029096654331076351731809592098607220580600065141459944381381449843541083427141749838159062177273608335623598890364926519644582162881375695020474474186665244857703015621976401649434382318236260663905099625701981393197917313409737026353894000389971040623408023290832690039537313755557100086749302151037304713472823845253330427828724910665440126880785037130404341788650927534561470255650764456517368643877262741819986618299031155264738106504939826437871725888102925112814360526014574592238211209786663225429146652361864419565268858619316543638900238493097387158621980562097858375862129480592216576463905585518248072992323491906607719045416491863472206181956640453268706582376989437196225239601952633139601888246942776521265066034960526009934632564731216225951384161679828682540645216241466926816031513047201444484076828124055205021538853025266809274484770893423365360415771900059216764039201590426553842219750036587556887900705496248426265048550635958748857143392017384680873721791589200408549172228671819669120044068453665166597719076664681955387896663227864788156993274665012602409456927083895096950928944561858021275912190711966572007132806228283441268249886970501227084775280761628773051877972942290932539568984640332972347820612118905156108475238754976993854659485813700383026234485705851603909588499188609589700076608351274639987545438118171394966797414452221902632213280258992427387259228030013591458358192804766831332258995826929142138641768763445956448137463568583500088665235035612451241595243062094544767685567683642918946826866597035306550892034028187470058848946812108816986621407898058028607343614945794474848125946288395779185502325624633443750911719494449405781803947265839139903231145976557406436926063923751419053331610087307102989180930023700388784025044018220332975251292933349963642814872255186055014318001348396563857188635546270840380100544223344585686461702816248255289660825564541800473833832471196057661486015351353140431855096642684904498795652428645865894158633427466560007468412755443518306055497158660988063349800809896122637615646047785754267147087354573717018045616680726015450130821784063895904443833195721811861318703580883750338262649714717653364275914769540354525372332531617926038322363482422813223094371354553325062651269099667512165976934654172985084459771814316332661839010258682524498260847647060844250146294301524277169062068443176735531973376519547206055869916594876370734139372075081283903412377040198214500604592462353783263601437167547583013517686344110677724020540154373903529722182159210822823744582049757284469335264668429021828529866044590551817229253700513271400985018220259430481734638406842595074915092509403482779630265821045626533849905259450211021682373243393452528134732691350818792970408745390015553596923159374330822605873636730302282488837928044679672652582719563510509304957276184396922717741682392939034711684617139836883785552741938796735748420435373001632549042552784609509960389986956760326003545608766724680747552876702734592812207811542524087696199722408370584104795818413285736633078645867133417256666102594554711069310007364973280219841901784011622003623120643287070525639944049432296053864227972803002821633195414840101346003393552814106248060020526065278422061525423742330960637924185993397746347323214013626050396571136740372973544698376418255450117623480923939212156066963331986380966846458377990432311328044513707283355663288430420380881717517764655488654327502230751978081589101903414696161967559653688251229575049622479089191258331570886440464958013682444215253594690274950759832754670674995496705183263401126728538143885648176637028844208042619608540988274311283944537696653330612571699714744611567351110832842561616123116889809437028317319886766014618837248854922945490453435558681245354198269121339418819354434037065538750422866867241943179699556124777540170730121272502491426407497936880022168066671871633907976890520250543252293119755023372601091318758948849800811968642599090314041600360735828139998172007582608603143055318705373231311267333305847633717018370927254990318042011198144690955561548536943217805482026680914795301960789309851260570564248374399139034717514659348875738882359073731153876183820898447534389758051383759258846660893186763736239338808533927177709980640227603589982455330933229186893084077534102782532153711682439519489835050529073046654157114138967300525243106715749169870309891423179837919050454350520149134444393244360160757002907023939968322788052670031419313946223564463418767374508068332663565308133729933586083821947330641814813702572377595051095031206195078702550923318142066690498567257634412159365639204121899904486329962841113139267851313579472132459574323092458341490100814439219919003924801720112076934903089600267888367418868455071547010224159234609465700783240806985014642728621715577885113418550025252314978832480085266027370105832101995606947410112742681452317645581746589452003151424438438059028342498029139860768559877067799997828604853321447077006577992328064393173019207237422194773286204127433151704617463144774359622876436280430248598645313678353481974584441674816666081340793025186276272326387776056517109377084068181884175819611439927016834644773105200844684559846467608830735904322913274576521978261362007188577693152991126165819163266097018442424687272138789935249072438958940074293227249060974696424827462876324137801691308812875264012353764572234231897630373037625897322904166680831479992469066719339716427424927326866227707115368642729515171247946929712270658512704175042803514915240596265128234642838288457135580211442109815803483938673845293069777392631516802643736213984131491058877021803823197511792800337488942795839488265369702721826211619224711521473481584245740370157317414719573565494376817852931537928944967526613179909604822719760149473873448592701458501046015720979584871822039401807348054954074155314374200429481375407979367418186228803216070867619531660946221744624674025509432285510578663393337351809749890448372894752548973743552575833403699521983357051264871934020827220521587927064409620313216305939549534588237105756174120049534528462698259181893083257820436933532368450914951155337161509066831827556064042677264505965046696782830840240588288399848002570151714300674710080244932424470364177344028139077207556853850521974906577772106794165863457112864275498585573308802706570909810499816354525092991491407183278332714967851032283611920963624059321553071328767550765308026402590096104723873832259547878258574789243783710366642516203919442054701042128904443977700321422157378948457026958567983522809603818674988999644843175883331715651525043630544616922732727872446446486898351637146320948465041617426036074062294636936013953194876982997812240073783259030451252061415199765600310218060052806169781719538100666598524617168835201527324662098906474047185581548531016101178162360150802608004514167276098084415935642255839860150766446375169177585236510818299715571556303648104767386649390341074756942935225333488537663448359900421800376937703469360804859929261027050932853759309890250248809001973839077287429092584753208370120360918110786581306794373924773575205694831091799589283164448267502452101761812444501743981458040020200585134333325322502809728596177702747339384556168451841574704461630140379518289429357464472837628097629613648716567413152857800554895739133137674026613894560247925940030232088451847065039910441113298765352982241104888515116390071716236733457611835222333683535455316589813275220577713822118410676523934823775602872320932436826490710765259082573695572079091318741481637639912622309974490159019671615333499448019618604472482525954744525508734661540242977179546053314665816605831089386727470772530593839098283859903542329444687916283911051421083792126561588575573530435541162548369997881455943402510475944811898103334193944026453275831544857573890300060839471296638724839439861876273819041061474708679755892492222682580475162269391489721963875735535519836696399191294639566931626490722407270327178895116671965220221631253376967529714019337334088352946022884072717363113186095522914788514502525171327474681464359853515856886668674398044363303723625375562611894108710998023106155837316823707192497201266257156750418902999972488021929890056371715221394516269578474124329349976520051235507066043998318865139193628591457204038000928218544049197483570534140424162881381333377382599938969390983821385808352446133545795267007960271141689677644560122990217560535064474319225545999175868030546436575264828202105762152928835710045240923954855262442273976090414818773548686845798729877786887838109994231108676457543261389797431570150044788794037074424069252530320970703140537915749308102128300610284025681780744862281527682443716039846778412683322171771192853047383396157421147798486301086837280054332646696136509650340942397398256031349075141085007079528520714857607667605439626435456452076266250066957437965757229517507459494064971256547122782963043839169567244919935799240139523272483474428048663455364981464688601984117553763022821190367089038886185375712277948257141790153576040449354438980447274337188691061834301913406695081650267064456473193385783001025234175247650818440007748878092397455666134257811898842801960554422398396300221553083939975479810113396067519013769997758748065655599180558279433888530049880492364867701217274299706264022402799326901709976899471723383303792925983217257440413984451345547407879920597273595411587857881072631629904806582438820751626381486865907415789255905215418269948982997199316744803219549282425958063430378852450800471526666130206347930244001970496901344402855035506530836182311146135953435907995568401282209999982807031740767134063849142569663920220587399469220812704514082241739887319986417453027637735052713023091421032673086752197996391453759339012025016622806019435884019979534706787761343896502741549052918837389284700610636384873795705088043035518415142641376401080782279818165101694218368517428323593895530718142137447059089944623491421366815692646284931707391541810479353697210496423842803622747568855266859568593963676653731120284684045257635965532431751107003837550636868688699940372794213097058502298645084570117187934323429887229861315083938972436468304584443045035084633745294604329594633438243937257113033626530463181882194171968148236440441070377833445032534490719003704813776749330468988597421073554741037859943793962059495772664991334648083290159527586866658082874871446186514441716707829411782278395477784812439089885409854627433523261108698612504332689030990044751245327684824994313716398255579317811205500361872209858156098947663532679957601911677107189014700296099325747378037796082149088009236143942937502333747525664748056050073559007879784938643133203043728057769915520909447803204820437918594124552269598602341504377242382010795649592634997667580073047605748423952177357318523334028231201743135581897002799375634412355937556720075566635430518126699592644742321077131195749747994333547488646385162820025326617621744581415958158894697211856321369258014223348730444916754789626624752645215669077867723441788420514902530374294054616667873711590498275458191622921738806142542126053727695106478628655134840950564183030786308173540262874902917560650096240304704810944333787588234636412705419900675296319703107709409426815301454664589628550593736480266907388631263055054463367275111557759718389272677605509425651141474495453749694420706911372217003017402258713213860168475355512800644167202745173711443249540003280235213471713326514632990109761178551689798017675296423708467515238590267412087120058417573359839370984205247468448126807391066422348723082499685666594202156076857340673625831027260207903241430564054640852724738276035021522707062240637977352853694822888333442524461276577096620647150659775474019659244968649015200701491736040542437865325942985022036416666261479966087409617712339373537927297244854517302488356732131436277652823321973196919868993445279274047116164969683322380073666236514688773395749863704184418928749953603711662803766325462592863754773112612876135903910762946035742034833016295073191615841165939766295026123043958872120143876518843910031707782618821446280070983476315988301559903134855293204056261186648661563090091747147200751822318663443108632049768899805060385191932515250800376286603064968368946249240871932141777622000568796395626778164313410618556625900273273279552440395577483046891490105481311383774686628582203067485342152029727696938085198876330144575708861269935636709811833944745473307155206833552273687307852367542186607143147923576881674863348825722405705453312241005784469767400831809209721638962617383898303578015896173121817550812320390810909679022697223481260624424183258695021997479377050536258324340726205204837269180009583962714230768620064149056677033455168793661053468255047287428835446726456981659128977759540083318750334884683132850800445570849219743994631538884068331300496422548484253618418433671524373317347521841693653316111275443136728357626300038681539527510196302280812031279084366258287046985997972725782737818281233483602398831755378603142275346913135365421941503807726830836082347765774157202274203320409633390353635949485371840019480438776661929802919938185196937306343126703794063277552920829158191530567171548131443768202821663237674283473713167447430723075109699214093653586855446477796964366064684644682472267930289828396787406401120125501513011163897631909679414987550517511440891952650825255019460628732452068892963482257334693186408115471339195439460022883770016761212324506290210243240554637091810032384387195799474814642339162968741535783340389199830986037863022448972223934411507077101473512673928514111120554397352297416510274596997320852337658210048833743695469021161821989440819659039516053768008392023860556886580890801147411756839067758123071902971272954477700116751820992959094050172440946171219442844293595582552658398654034823147737509028272317200778206416657529951751723618992613290623623061919002805755031614374798610655267401936433367435606878367831181489136640420347661439523964033347714621052520724181031916631903855241423233472382107424719562263729563882406512263523852310819630176756216869597491808291820333999445970410793219549990883511374830736949857018888880303262802385757038348190432768561234205301140313899894073743404422339748600428656694272331085858987269555548825855467758770917696159388020201526828891731635017748237234477656246071728121714096072131515712940449942086991650360402469785772710261421114766188947395237349505956965348900582772706426978282025806780136934418582149457717600998075840899000134579052627602621937957490517648727579565112529231647205004604539355552944804413152349861247506843580884753735199624636520712769074027880057509772423216389447794469125503821577651613919235157670087876721708576885028413361473409528323015602425219453043925556973524911426100615571397461926945546360229612438750008451256059241651935893153842516335999016968331071281892921071538428214236200523459653637992316392939040378264517477125241925976520954091709031082391709063087371726857871728803645111784950637550413375541870808133824478865045715650927683597118619567337589114602703384201680888229174868185940030181296140207896788343098420329077038142960725401989887863100292320989290174193932958922373656778108816606280262952527260211977400089605361914539876686914989806921314233935963984800807591153348245499494601286239111073448260156232351872936719424587783432719415236180671223652498147711419472440805217230769138863411019821327307146825287874314212760352252196022033376719825717141104874829909013065794861974794643337506746002491474297654320631817486687914628981931577595991858689084240950951499459111433649540645329280955176952399614861685696939157496102679394742490231914893931063904568955833938648913527908997613902589857854287994638160698588714240747412970425536758312629136400465231820884740698069082885748823202662623250116684306286113187628417465816311626462022423004961905561640110761743800484701073259895034698634874319403233873736390793023455050833774163000979560911649840988650536313914578315681997319170634290847918204729955383181176112148067045054231495660731070563969019924005834895621313576182150228620725709108429665008492919246374014265005098767733677086631691215265077833317590638807288826196845617510831475844985568559598573536704958434871208747777425379030261651334839063278914862719755650380889274631011407136917189738672841085881581061733331644610432148117695139825199148068877015258228178279069513400993331222785720810663620073609774361474508142130040271113368412517492414295515939594383285348328452723104878659513260592634869572888363152900841035876743857576150707332769078363444131846941779612246663995817889699502574008267032183340784004096947712622162107710021466219831496856436635087588283161631171030557346787876453602829393852955173064178141953993562449942430556101870797937491647702535185624240812031359659424987013204578740471800420338745697803183511467586245938705800049382121077612334451194612630137841470428436410860712165387500519593559426306327268608431423400557394606253844593515236985478861497079081889763329208127536266680863777121533097699601297301074975765734735212365255626348735200643236648663323459297798497669617171719927359574379536530930337650083310550804878941501155156477805594261282078932956915416154102541912838564436030104000909749515155060594045144594237253359914956264408624423192868239273739388746381290631946949181569108497290066254091154200003695728454987076225804607041687087880050742622385371764198715677695240327497169823751644969608613780242906322567092398885888630096745493858451477405389067496759765597801313385178509107901517642219381603861252903606642563472035469680709218159005232832817549736545546949514809530429590639011975073187364605517558994361418450426714179346070235359355522206640412706916701868989415725945443159773420953532132607008353556305092663653126625118384683750148759571006225388339386341802859501508537197140619453612122392936682877700906090731510859996114834478726025433071816186190137098057492560574778383383905854579042496600384872939347279484124118780695286300192601047112299652859321148120943132546613144314885481997026166580825258876625194411932322411515530872512373535772396015144066604606050120086753934539584997546670179616891537656529822776908379918064658973293771329629830903890059596834533340489193402025403025437140658047262805378779393004948253301527871961793150288730037373275251867010661965401139752830681880945572971358272257745853967373356794650407305335163224924640485401192827803701965677158137951993987604866409807996497970822273548680798444407332176002732150161296940024491236136220864797294187207585222741723445806636320124848938759160807299791996388136875468463788260329739049386038271379026433749676461679230877002469461390309232685125641609057266831882597683980913748961854694779397098987607996116490020267317465547189538553489635092795728447351537083646799921069730436511147778001209670560090499811676449764204834500091497783174644073957721527922729265763768865390613999629269507943545872451595727176352292493417664032582400182314412216931031165764192255952171267023913690316213813830176800095428925432899200899101340292487896341022804257526056418511094372135270566530724560250908699446938670513067332095555067977475000963239003118677707080910341625547651245730219196822500092837763915561820196437358672426747839961905920586698893308568145778861977426084713007649429670921443238664363532519158448405430544747984245581820974737521576364190630579949418995927123638934943138812070405414169123146429990740561158489005940395245175809166665924628945280898840956725084635797129816616234016584856865084831753107400572580484087281097750034808709353880397022936083928073480320609027188220291864449410128165052520899489417094324557255800243125008924052425677104466123125124343982071932081462524776928495125877336446464137643802668297466901645991333960867337657923441933370163714705304859501950411520701720602857876683477655274346398124039672870126564924550774104625009081750097229838560232294424309038459240128327654247845250558663184928596304522957507380441525601379843292556275360678277294440014535706346711909236543746468823093067133346399223949790342549704883487361545787142995586060777995975900023203134744747389524040512324624738705386956385949525213835687754892123374067285186521159596110404348467579918577521021874119322984609393320183400683292583895652448688867109382764862528967048777112155376532985455893664737142896676382595453928717990706060661269752861038564946049685245309921659114903576889722275799979950496901867028551108681369176288694469845274055429486082722845060132874582937189514603593948847024339173094345677167963170059835362366405329575288300267418793452745198074997861371492205693553174710598163973381927367518860577974486681287769710295842721882712163583256231030600816280955438705591104445185823650058752260843123742278861727477606705633672401058024168911323039147746202035812244307924704998921272718202651534272104415180062081766167472255052430026516333737606295751178600539357715743410626808442404848185011014339958529817538408298226873978820646013148035456773619841706806369155090766119948017192767325286281679836169786973312958879609887497318355521431982897190058167590905502124514551315635038582880755248919033553910550332037018111239495078372241750714713151737583397061772326947746351393282799851793115794735055246494514816659418943085507438039455415703297992926241237124874262675636670189001629972115432644039119160826516216818343359628614530994490071003507510296796931164726168990387514601021778195904997505045144968388179282981662307597558323642287612168142027197395287232715264022727199963219142062032437542757491803883815031415205108428951769742956371774692999844212016553698752927752626018746516415845068010349624869561923226525729978600219429325898636970369542882713241859105056270216771605117521592360733887069637799444222372210596485595625900474879978530441990133555121794873118420360605878543112767941031762284873925505095988997835997754538510352676724269440337159303186413507046906351395639973401166951516012499425336728346624232269983895243864549415231263140557222517484510895968321195442751265768060668399550154525052078880071914787222811181128120632161768434587930213262221895572467404178556590051122015059240113030152981257393284106658282412938007595012685824054006747071179050249851344547360531580268748268720761528984428724980647401199308856033823536797829723956486835395872379132017866014951746893041893409468130699914398934819961557994052792857506451309359562545182766003166044658407356426464470459441862065456892647944191201259404797587451405482805664610756988176851061100375398272121566843158216170439924248097186672671929606408447458510627070442730309613231116810841574368672248229297879654433962092493680567231241776944173631922594412550627498749542966353168294414929635331015459824026624358332233228781772547900163217105076153466744737044968643435681281860146800477240155268809481790998493841940463836178771193017892969124537286833096327676131508709020364182113792306628693937737546762352049127077003455083521574390288916206397239191461850945955577752223398971321150828000371511666344924807836811528421025111799388207669587337617515317781640149980213845730375167805876442519606572238850912395526479450095928303307993769622013292217376496389240139335246143706156633810987270971540658133027497776813829586409410932215339742977669111686447631728784567558808972688068593570873285736177681700542150197855762004142961311695078473382321632980451991116422457624123433291838544363586661642592292034181221233424875593767885248921634666502508655664435095512839120091282180323388691464969194661829187891076670418883802305951327834411916315555954122945710408673190354160904087696466782315789410479284201269852830258765904771278275631833267301676890681929668951255572758157245237042989180122380767931361044960471048658512224843579914653018537700310551265365571563883916045028424986109362804345965043223995394522993642570893411111979192703858020424816924278301547144687834822925091861881230755111587793075909917536493335407201729747060842477824690686960368253527054062820171948272641606068149818343379163043577640326063839638095600153737479900099310716244578515430130285799872009314597621441961761470170884199424800986308510069003219726248118317948858253873338543537399874671703100346073880984273725400113444164634553613658292630796285315978767668652104673339626593227183995243654734410258534119410381255830469230175533892536747096129248549973850005509372546282616819481902372688335238699253084659971847465557829337620440287403960985601401192575783290990030030875551510809475856910606540926889743406521224275580785504295955900799071685572752917883748529811874013392754794029238897200547520522289662091142812487335906826937672059607045710425887403446054755233564974961658347370876587146574368517193959483907898993927401303453505631409599836576737219772052652397761324478688917173946442759627983180541216718314121805282690788891512820168255787193595119266987855027859342883360413108969132177551247706618131805603648310458052593425646829694813077561687458822291588217202194033820141093633475131149058798974697396952894730709466434456425436122478018879840048285803733192933573557671372586709328109238224954688049217021137143430178542055015236749095241864704202829381873158231535272469978257529538275992519701271812918264515290736352832546437364448025637329988178699170699411328663102758071170209113872703956536818507762530499567829375760677933489912380912185138099781864123526350260029750601385110035010293952255704219410700935631803331959568611861075028740518740820584053328540100074604077916343707087694625006396094484101260342664039339985847156568505204647399169149202735580282441966410238120936492627796182300848554141560345577142637196016862151608515702181481629112156907742485890366223695195845520222317041320278450297811897947214098107106950244254486167138741863870107789192380065902110092932834949379191901369218666660578783474997983306063666806840276712095168210379004250664126702962452675719364943273973160206017284203248022534504768083864061805670860003059770388336644550187586515429430477784654257893256503999701989735826850956690635126925796869096820294470016890453835739661840894513081270620683739929118918795166855355268263243717073311942986721523407964028725133793557270276570375921424470399466307820733273903836724616809969991364757995521793976098175505603101095606463267189054622227476712832134793513358942650164242203992021221741963513231300547494891593194489557674296811454310393545744437621752068614661995961965318777328238616248899929458279436858159208305404947417370451644240758315153927674010477343646183079569579828702198888466942023471854849136589584546356289465633252142371823012606921060368507109762957119688589816510797656310824337237394818349695142769179461924889793613256681394837624597280458017655349863294704807920511718122474054469318565347927517177251279285980321056639902745531363590756974869316519629528798119168657992537935797785175668184790884416171987352263149289802698497104989867647792171045528348734135710273390390098264452898821328316528953521829865564605040215451358189030077637131125685735627892622437692739056195383864113395175775433571349774921409391258617232545748588840295403954397071448505719194087125999672058413888955957942107977859393962293765633710143939553852941613659084857053884030928565616176540321722491356488369670465340512230820144481528479358055032934851850419379674560171250062034517119692274104000915947440483225326460321985510318696572448301155093213130765261621058579459573993040619687644964736872387293321442908739622170943163727418991925363014488791552193347808983218099751297381742024231159574612721489742609592255221237511571704483525720741007748201201794528341302870426190116928166751274304574090929555476177483157760993167651289369988556029975603825528502693379836678312199448703648206526710843650660706441178494673864149950697196475783732052560767675823334929561075495090720259469141028241805049776224718139685986283403552070202558993270025053465210271679652191337792085113501710135105647838497385317916766212189225761565343947690476847070601251197141744328994947504642575539270934780549084629972701558395635168877187870048967234466785834788573208392548597566638874427760412994484205457681507655107975509845541385637329857709471195277050120261008104532214943713226689142805436702356527207484310803843381265799711350729215899193627436202139688456833473838854615562939396250483797757573764341393209299519084333805220786353452803712896314027994857443735447121400299351272677657589583270016068002227935105299054536480617501232218501891870820701449872680847355338039676705558515874456538189793636987924993686715539304880881540071808645704533401241702813783105229377608531772876157930643807742663877826144251951214999666373115320218392859518473362926690806871570024320223160791072904442693825120104565521784453158443564265107789895840810451114001020320601556268904107829742415236840897003115383141802466898463602590745459886467316836815926045182131384335502649636380797393166685837564097558855571298785114627208505290177577109344559203306659703509629292923098032444625637745306896647853911213201330400265408543190292542540826279720772307580692331376713646224391812658032370253544056421379915348888674623363487632941226548506162525810617866616231785188248437248681217175091943736642014115852207669072197382508459760604532803828810614263363020722119505786114939106821777651601953381085094572348506608661811828739822795413347520825352192739578607016931160305893198543898502941708867489396762283151726925514252135845019652139631197837012327495872975904569719497736661634811082888110947022049102196497871394504409322877975451572884031892108906911849674907387232308581048927887610355897424146490506284492532672868205133505208798498535149854940883553504719205565939155081067643426076451072723775783727487899739255405775175833003335695286539783739166886435224374889304637835660460290613049526484750060146324935300814057105382203693746900904680063485928760321263437223572532087496605445138918856333408542910945875789605767460818677817411956811802896497331863884358178515041027935279547834526640592433023365136047915214276400418978867929610798359002613350849804657668740827028947098989175264921322596011411657836997905777715397728326918588394722798178143941265433919147034956158118286717413311725710217674609642765392470268525463030496094849029924647086511917398672522575875107958121790992851488513197725043614958974628939878239983281203328503779100724277251546344345292797577415463643642948101629930634061392958206473516021473278006232512197545736686919790704356220094326802830277877327753580493332678829891660921530269125047188798033472876653900502527862804159751873505649740633269209857057832687421419217447167890388238295129659921427711796773159146424531001130800314338308550562423675154917333864216682718494965299517917044366303455508559138530069719619702700488346767320513049766102205475339304671597300722540052260954795568566260063157695437099790078757501537117598034399060663730042056988080582460257375818407173499289926485019295280216292421893857078444272670595204254564259352389277047476595714482446096841762728403694270206483327642350909153092544105828368897555697014661134445459126691189976427694588374895166425577989298226468879591568747421957093254653647060510908655136471722775936357444746806241573801723728861026996444983158684444527283225105531058435411878612230069380491030266992442775507112852916676721615416170126672489191134472686367367007124258193156526543554558222599690292028797219395741871889971699232612214405194123443400647873192952721547250417063283506332802364813666996862621070856432740020551310670584979197773182947079609823449111994624084521315232082026700037375100573670334306061009124894154586364521572883483011763190315652268556046575400214444847274180436371786205119708376852302422541925251871868164059996597622344571307576461655452729415058419404433473864559061513111428582432988297615493003281599799362525693027476428041708855146393007702468765741982053876148077573983096815942653280904608549106964980864785747306671215417907190963956480945083650327939844538767778354798158530369550188393573209348561881985235181291226817715891653584904134498264183253372963406166584234648124803365111230295465064191442244934000634906428457099608742455019838188497689107331551639350194829519963255960970441153581008850394208495405532237214682149026554352680944658244888293521485660527495613891372630836566315006019436139873059705871295082811890599756459363844983209149502486813993852742084919173715710438845370842143505501055239446652123923539271446757988737153641365252567127727319254445099036299226768071621704039211594385705545064411637878409613127398250278512797630819584343609364617697356784950036136836839698240156505978008298045674387074621609707666609020835520376845727560961802954167492772013284927718579800030818145885421160450138299917773502076601181866421717316569217425856824093233720233302487308801716732231305818388829234679319195387452372894996695049841305350902036302385244221291896341923930903176036392400437756452189586756032239230505643889032064632804535415831974234426409093372465511698101406954074173480419202958171993188244604679707397543079833618197627726925176741662299203364840365312581102327669751222718004001147409191268787492439361455585521430124731493430294682860162138652774747612231132195956571861433671208220011878862027159073161374962917895186807868415028574329911226837326533836282558421887427662499329387809580897603356946853341523230049991489977153785126460009128644936734162348873467486748515780996472282796973264472415881996966254624364285813327696517654306605613639674535242293891794378795312110880608769875708968135455079987359159590182320482165930359412368992851884598535840096322486573010069495825487218666762880234647694700368254249192823897216863766424009475824396425361805739815637030142548707093098292815921792090870437802165334233113172092362616072210107324754943147699817149832421860294528581018508740118630405617770048099849276018635180743672463868614847286600432454396947893043879844854042685834305218751895954712109016633122475562547714745661439885281101089053966357814995953378593759830264399514313972457541622056627625516661715484292656865294716770515596359577840047403410164350525426416308398291095008248431359726055566772555468406529760989990733798239198268194568863187917622687390088697876458415383819524467267161186613961068610453260882682078304613348473842492969715532853585924772077597526202947231597699342818057927379031632847172775907955237431798809181180587530347317725141644385243978026089373817124247177284655861846764596222232056523246424957099530123945416939381141651042712250808069069414146402147744779069976286546868490144799659800760324426331743019984054937068888918484524399734537064367664451823908896012433423234730760765008775797981741808302743117466758523010399954605796605866678120827017806565378231115989762893619387568649217122855538901511226967483407823405620304366534342386884246046081098377744444100535427622995040021222740724608793935436510111207979909223140131048293879778005179182131939162228407435814658785720280953443307814984525237400443918168191885245683710352768297121078658104049375929615166952784311140222253709968405145338642216131787538331198343907153145561056160397487474427137968833819765738640912937368519577962094383544167473666834304373336360954221981825033887810649548126560545515784431275694233073875353064903379220660474440344366918212390654245980922452058895123646258713235849663071569100659085942154597505275291790421945265605122293922223840717179218687972197679409045906656741718760325696526200349247753877604293245099765825159460226149575169750689936928601860301874599826225276968493246056392835574306401738031486849108295926868072778363361894830675119239080795357947820258946150461946958369482003140860753515605267653095202706801859373361883225781401746632190643432669967992825488435125505774589754365231150841572775669478488306251134182301505286759544944035481552104528913254584162927578392333524625350033481633483706652099635075910702546440042598998491294518791815203870648055847711400860424467638904971110261736115419877478541165209638623686323680751493235508336002543748094121431280015701325979732023576985974546892614164117415959140030465142158227180189153970713016446650940226808716455155851232303423977425212407158197830185282557372524962418849290751698208706050992611313652531012137671501045710192310495670261772615795110702070706249319449310277872841083909701214220330073791678972842698063268790409106113522933736095778150159234005629601292358000458839490800521215707584386277815666502750573480944597410234107882235738942491559561064169481053626509943214248404079756423839290210578524010676802176069373850822524754484549728227337336182535505012124580727018675836310588096733080520091541996725879738660686348718195782026943784752706999964518298116114208421063783732311042442292010756902141251481861082319113488157719896876539323484112823157658426819389046705380285749473105337367228407648837879444161603058231025950562102198924919496120100138885744631492140595331464574782787054718190660378400028162241705188126568713143504105281177487051816206615390111613445872406998398391774109569493971832607276245525371257484373125200359577586938295092342468383128827289424718780418205354405281803286174333585400183455811674223889149873650841382819383267125000034352264248182688191808366831192377401742221710502757220650772376492085141081528593381470506869547914186840219937545294326507856878817386882710511684281838342900068851190867420174696371916351616436890931502293692987715968958896419070146078843379298851451001190363251968994153127535545318173856878383264176856070244231898555989857048831756022925569480540523478646181233544351639774707146403365509622502985804938530912661869351042330407797407760412632477843149522796560177345745437074390047625603776804553961175683227070061244338354303137536235139336300899158416708031052418124921559142558074227657364778599503268751370399154180150990309104832593886863234241298287389799260069005407690839817402851401851323872534868071237274696397918379382564941465409198500712236876778172342553978326014868778131596439664677683890930062783226850270008145003337182606984260499911689844436753443420247486307789794713582865031880025521168915979280905520053722797353336972307652568872882507716661902090851334343589615122044336027903125279197910866141389953974555278652891154562609190065592282763887823453038322497093032356348669024787194299216752326524740291320568388677239649344651538200445562466072603947291298896640501719492429604494630916674996030768110678385682372158244041975989160344016416124612641463436720566911546208514625962170181553030621625334161191527120842534699934626310485852306231320576711066335771315306478983022060631718166527215924537578308247753774059416740486924322137108046528537282361324588360400063718551063102860452830103804709304261896676835732744348549105106851648417760888559176295226622718493640687701772831080349526049420699254326694377823137911758015814457239109282341930962937860722027888935199570030065051109270378243924421886247600554818094139816258685192357977409302882359942718730043361991811646381499624253728412720353835710674067043248163059086801741084359996072480565041820010377087304012689771445460680163288007318229821818233723073475818762523753057041709042302067723399527832509828347049068825218940174150869491120135776154808178240419067079164467983344457441007716549972317097305029839685296957784749350309071248683349799959364415281244872398752029140992335825413275308543839344827448291812008405454147268829357776716341878577091362941912271385200381941576925532984125834339683403251220254490892012471639029770142944973065613400890939503712282680049818314823739611628215456054784903795566194377252463465774559489757091371596679783567694456288625710642588302935156651829873573705710958480753450936548990047975951576582716018836297916953600493669471838083936299609752536789738638308223322955329703988999598766818011724759518913256842462373418263728905600592017428693594487100692641073008238038223751034052377564372792816524780649502154507401945703263401855835977704181388015221140805151615649206165095571981658444816092301203898922796618044791621170259304487111669097710819379462891137792840956711149239833637896472083750159365829253387668094760204509447921099653028878425733852646167388169356929463546497766978194713576467003987498219312470863749900554057833988088257559559392847772315088627045088015441922043481656856534116888733814954951373111817151502801222581092432223107288531279229495571174723444184006472075446476945253019418328869126347125402122079059833281888500815555552706258208342722933677944026980250848617007267396687652504618697974875403638753380770998860688620051184529021376982178996922816119075287727574905865574298619481631914453158091637294520479945733931138001134355936092965569176988949833729952095709113243802357250611173754347630294634889341123019621467461911090081426501421952271915875086505169829917257387238358808459541994457741680011762938586938505680721461595739714583626653584329897380750843163578521385704713947883963796243216479708361374704852817743229521764612095854108209932943223712893242851763011939997763083724678758337796253501050070127054427229515812183234767624895179884380558208845740974704027830106644685682424881285971009923252073441799562352175689777628684395029371648322064977756299705785409983038169523250882477857946363573040081601678515646841654051644124337684461264789172423967490876679074944252802566411307581640070625720309368163196134221978065244421204394495677288897829778450370437527488798387369049111592653523849001263967392463399032767567864981472978305945267220975481254113595256537362595594380786468388194134845197066179668935685965659001120249604917435007129714494455238324446175434928668034949313706818965557059474766926986100577481189296385639595193902778607434170079272072913423444339471150588725747338520921913562373459026697872901867869888328401842512241874322336645822832490944795914210424672452626959031645211259683199405141012577310174342566655499764082565087430452117738634740374256529865678321917049511865242324609968256656147771234002906115289766387814341192550151311465926840895109313138767209366904123973438270984683621973537710466895467411807429604255610771998384626765244042671178605875397394938097409293462800567841426864536752665559380563613081730547167284317752768773099844755641145619117547518049111633034823987738466951417690470032458158133857539191722036972530419234643797608579689899919934602904260921393232849020339328490128448421243702382928014322856174058946847521435015272569175433518310289708551177981435048575341332206774451716682983698844731653528182488108856080380075315560174892355093111743050883102715566678554285550844499501697696871496295273177307215663481384617839415041143697430834278908579401338925513993462031746841112604002999438863584925121155006738004991753247930114154586670601025540574599721207545181643968956769318816151477823251752049028677714177160640485704192146066925642978509358634383101642175040918924916596752611147649110486284601252096946234944589171776993285738684468777780905198186665145703336491741646097449630619347616334147600735776255476948687995928928314301316882130322987429348647265977974519760399815144382578693864489617980696872439984287844421205352599312387452859862015451377530633297295400309493658025215912012230278519274766481940397241955052175053154430947295798676195075317945309113645109790326902928582575558500860493890487991544221547086276588657361489869889955652385894157718033495272026510499516870572409124005404767685000785607062686527172136877072028591524195877486992647421472163064666907645390644545806693971850591980145725220374640011694694702032258057047389571166455231637396720158339295801524859545021668454787165643551073572719634734953828803164758558020412325548593888471560736724215673686645472930814407776529738818537818602195140976549221642136772076665613885886670817746880109123843599906031218079047367883946987139973597741676336786637088967882210790078490188797225908391846471135655634047012987962794593740109404455386361575211035383020630965881451760921886511180518378476017187175311141707375658402578710525978770222811831067554500608070372551161704311075190955788320793973150791812250110121533505375049169663384027538641115480697935068136759883825677758502835001059215868176239068164210678017480018037968947897338258144388284203864049015847549183859928607328484207963522452294099660283961617910063787086905071448065264251801461248411113228020799804579521028519567075756819424009216409999285231997981093788191015643019706703280971701349014528293524229872948692786819326728288468438847371854404341948047206841560320251372588782665127695811211605855613470671981455677361635638159902016369084634475688967001941886717924504039781955169906018425015833810487174459419056806514161335139709034902566827793170521012541074663459228992403181326408334919906175610296185190985757737147341222693016312975822789228837378106914469561696289411019967545589939560094705862727713321235302037083582670816282837644927667333512839467263795155811731982740116927358514967284868693750580152425505318511202225054684812042882493186454753324283456743275903788244336078238797311002956868158136750685161168457223983666033860779533991969118484706841211133108133489651997870532225556618191640223844250413006695660699855976839447112633896116781079103195287787488452308481852075289625634269536642858203495591388958033289864944828774620463537141017903592213528772585467519519919367965028013894798224200528121796863726168997154725553835393759486322550310917334711160951923636167509038298775981284287156462497354010269455787358117427212737537905769067588259702192870664676734141415297487725287557439533391018456958655553019714570856499628554666554769135589885581284865010599806729786524753956740984587031757848790029980984323102004528967246945018683788255705894189466012946926391987261876631177494104954154163938989409139419765562558610158910554891267373094122199358090737553646021792884741543486273449333418272572472434569176333807677680387479561235517244289576610213453132617353765406961995140880742524094700423529593014014302946473201527494841460435163357752189971151964848784261268504591254131756673589915407109344196507731546580334101197987705009493322653599668534141708805436060902058307478611874275699202504696537386265348605644402639649943726369244936892835284929406894364264252904094612054892244274447255921238549083631712237265013712061787894656532474283766503115252509094973668733275386204913017568353802208667862608088557744074005346925931727011158338408790456995790175734452960240894613279711529918326430158652617426101217070933296162368298479176494705548054055730504149823871633950793995554450275857017939824596169260716396518989337211497054486811049561623201559126753853011862493236569220431629754416660649925505410960684524679961579805835649391027140945162107556126767573597443977462258033954209750094683340117699683355340230352423347890728516681470882395947215311750531139890474253723438721351180048920938181848139181978834701766217334609403540022496422112169538176479885944510948703171544012272317339688725490601844866016703156273281539532050267842528600226111823380959681694858298848692438664539192961740130966893094070274391294184503415175938307489401807873731688102345191377506633217569353998583507086587533887177129337894478087044688615229038784609736234684842828184969799991929825511270005008747145345107283250040697212529856423858158877275056586468542278919306808646068948977192022765679557194161215505288122128239290131245685615569063033611663472798436170029774478672310182187477646103220701647496193269824218466453839881919416640581264144630865939058647495460755511467315965331002992414744132991062351428222789344912975532035903475569569469086454933911279579198643698024990794730341172351487601666517563560017168242185249474587216312840593394630762169579264477318714875653175150376990841621210137709453039532024116838562171656978943531743565770036506192736564870453034636025576920843205135081181481533432274840062196705423701132251907581362168215873099536356378118719360716183304637730257152276803762201845903242941904901341979121624452074013412424317606084643380602862853356222166430917804607037659246423529056469807598548194665837887695373622168385530018247158059923857907221685952269901646176459910865713133658302045113910822635911856222842911567771169975801354761138216778880490157950806808958285858666285384688269782235234452248931207779258938914285096503309246757347814659787112153816798340439673997240304676736535876424055634243840649341108116194252395043161805372459488914374069942153101831378924877975508011551167969673097444436440316473498708288999184832148080072458080669288314555043602407860623572804915316307826055827724136609359706680175445728697652191253872912985037926630777154086327005199497250387764890204542553177977469797221708457016084858898341724170886156065295745835138405027882243811809304326403736976396157631546635084484860816565850309108104562044709756748158714110266379517274434019164916064564399111175249480773170462788038463452714409463886693459642528494422466304719459139696268386010524191678696958675785136328692649942353216521014194714105934258168470356522359923630168996104883820814260577226475665897361806716773731189043869777883574776560056806416456551048624103046050779159114359186933337883352794360676398734106648495998278661181980258286897359180641811435773941936947608438169683829456887195666288234617677896039091806245041337195811365312666586998046747561532849670917678866966079822693925224119974171328030779804016560614326693133051444511281764030456811655493686272125464524161512809701357553610930695087771613978278804181068605139054712632756165579177035881820750272464246724986878839985597025917988950847365919031785628881266468512688392326313813853152561534804653633751043624944061968884341218518427574489368601903452213752362932882731297920433134211980385604693171494922920082952323621177692588726027059695862642917763891867156688065062824104851958835678025643039791188815805688551476716824287698539929847950531645948613924061330932790338529790825561057139794064011846454943315668197304255763593593567106745392840397779835373470041091070277937753664401415415353558821473831600991090168155118275481527369435023677944645884702433793667179111453060946176596989284490630487586799592062636890569668793615484781103731231416750639812731213871266805844977958665290600231053147827224735694673928947647283479178138570607695861094503476161040860439449514123980630476890470811975832285905526273372930496380071066406003776721067293431141878997074431634727840117197314485869270122861010860917260170240902248764939982104070932973725429956885189411851707523209101624269275154248546495275438928957427123070325714019239883060940671613146971628944844732900960313841774075831188683294247639715225096366441739605726413194133368794639541606128930353745438058307730149517848141704928288230124898915650512943712844850003376458106825317887014259466801498227405037666839507626796615737917192614611833127388247447425272577792971422444397703609696667422929293653057617955752935602158018842252280435555998487003616526146995567897020144654950011715221716998340532976693157247432583319854342051433684199693087149767476030009018552518165101444417088046044855993764778436589707766950488799372298972094235514520777043336761764402150802147369054424483344842202400776851013429509597110766052497284170028595857246035605138862877819836649823606684077974765719400724328253751182272239356580568157500354673059688103071573999228631219105869977102971512362000065860329852501297069757206161409464603788413456023235420511918326694043549073216959242921596166255010998255091332068591971091325308307080339770977173477948550226470119999509867111961894099699382146411260713787739420004332114658630937668201121281298008384169886854912067243983032666629406873306367877818766001059083680293532304387324844145737435091435150386140926064241304416958034140346518601643972554364421300643207989475922432754389879882696787704443252677385805725825919155810186778989491085696624761487194158851056336839602660415077182305089914128427343381356155657836180774260614544388819625283937085054640322180591048912780706650558279053523982885360150959050830723453839703507335325375441716340079858699045144343059427445989920828055278404850856245671487735243497703987247685998279724054860653276024326665630944762579673374162466547069821744032178221123777670142202606161810018822945359644288780806216805501306006881325279399285148551673246312711914710204855980458076535318588550174993088478472613650946703017957149537335662777116544316854775128304766525697079811670751908544727136276187483394490609053539175541356651948046106588663731397157671935722964611469532962180411216448939215105377310640241023976165023223733850231424810045898532988366145408527210225699110249889174944481262710092985701132660058035166110323881991791520919780417344873564705170359731846980893882095889986721767415527479837324338290637715205035004294585026059831140910328266769371540599112843065640421696294948739772086752616798617310619704836238272877243779059340701182937501847456855997216894046812956112604634492500286791559060216829539543193320970851598735407613329128102160252859488516752966169376268462150584602683275178248103828585404035577137223769843329318490339051321584242759407409772284663197666233223058680350222226668306915185068960477715836060226126115624320893481692162379325264651856747252210774065708473019320458863958318678356791501754821375950424080400416716532167723207650938877080420980037242285594880237476167937796307134998423348752307626999411825806071416992825549318222875924350859676295932200078349916398677121927772104010934457935475991670385533170400897849880573356610925117339523702400167940458102396285157407823976663979756842393059697834463096079437152189847141817049284728697700099520672416507898780651027763462900614413591880770074599904346070946941741481461961388738473499139321645218973501083117510290461247207806243694004294561356479733543238318661229784652457109097781496982607339851969062414832946466800547990705890832346141537748654807431733005640372536820020760967020945724234973937152014797924802968052614945336605336680549112596211103468074392901180071087872522886888378615195166008806626842244660888519883750355741699062283632124270922712149945939586738089178921115357613604847425651946950349629052795594681230388055940325794397660046308616973659816132797327104552676698916513671990047387724348988195416571691123749924572799259623220934082748837875329605805861202086070901037850047781443186120805018763146525574168357504037139919609680099719108054389197402308233858851895554063767469034477650587867869841510250693078771176361667894596110467013578471520981155378426979714192931665796063444018692483361631766922174183562445063652648051144911381207419010874694253536535412345578422473703622416339659496736960458049164796438528927167031147053137611010929106583348491287835949208893716262858774551830966352982866141315256254450357450182962161707698414205535675501447917160664356139520527558751361488259699357927212325649964549287766351500543926517641492777482623663218843213570341459193129990267119891604210674207887093450068586917881187394563875912112745968031307199160003185053084707794889787063151516023727843773691165456667498595144415160010504152410912196833839831155107148386408324141150191379371278485716312675515951817662605369549288755000754361192628519290280574127237812498263471483288641420432958645079016428929352295759277324180239758041307054110982352592277296280050861417496077878038279688924582269654564411977259968885040636304651870752115976416848121195507241566672911636298836337197549250118408056308070780092952066124430911938061218222583726333127762127578159138818253000278643322579279062470859982444903463237740229043929556139553298843061733213365120922385262489920486776233889123536113361018330246139517591801439805002348264375429735146500627961344897444745322665394717809740196380924708663946371261907238816747493329924189463022959166255959285586183624309149539633899941584099978813810236006667968912890365568401542215942315542406497830762469114385792766820816393066775638046010343347216174140805931604998250335767925424115889758700827637159558257662767821664491001162884421889087585039141687631313449171542584519290803581357298600401575282664179367742679707077990409149106941951770104091864609874672294528043073973622862657448964844966279913342575468537201133459692487213844802432407307604041716344175842669254776332900968675467238572633278736549620675820249274640309798386309949960402869168729560377684775327726070653750677879686989315410398791067825752767079541250351521797372926207417954594462188536474310534212506287851735075705412927825121208874445839755667877519746711065863602828836697819621219922228871561922384648917750571946527886949512844352863175639821232260317403051972428167761556790557263336649240260615599575594918685258706752882434015572426446459660177086522627961891976584680013074055087256757939460571125447358408535888302151648948272225175080815208738510475877240113849396732431518843350498683704788366205043012292862086768197425573311332689053460768330025791419748187814087878335220881996776514246904965852698903842848119537310512517167181568765518067830318204106201647836751111114414379051624615922733371889387309639262658183241056034888005624047295825009274794607754129984516204930718876694132944574480492059809872621145343320771491405554793829838188795389389200365676217335175067757811035384812715713518205164176032289501618130288397755738644238843470964167518092008566021066946700500741709700266808007382708117522580848929849457554780859427112784955475516036259150900580598693455719278404941099395269778053307355658274738961435705536914446089838029233679599112376181106356447799172700649061783751176394030474934644170660927655122168014538271349818898156744865806851268623902271810375367747121968770960904172641060325532564287681365716023420589338562071175580404625754948720353353270561804235888693311564607544406593200766933820588401211767547096211225531249468073400731824152304414943639106248016483096860975685341705693466707931316459092749234856413136106471988689410162487611588771309729786723830845907171872467363128191076997739177730844012007369232609550188864460005898760085538531149597204561875368603484304322831087226145882650728045002114049360732368642038216234555973465172987434330287083859823143904286438463248010610465349790090446172343163365285814406468057819982037546809641197284914144551819142419749416758378168795728068468893719955042404490247140514369754670348031207014290120668245288592245969482747204593530913276041286307897509474715424085707128503878999645129638855719230125372820877762713806421761343351433290665232478450898555801402576464565002549864659088657628945008725111153978626638259094316656592571403802104460044775898141114110098094128240487258179711834699574267176846016144630937935821680892821016603497224084225887855668030600191215023554313883664485643501589989599739862426026523913136761374094071128546175604502236496148584685124929812845036979410486536165903444758303571562531931079412341461144505853634212739345654919375482342920288326027556980240193172735188307686601404393646714485072217334944304489558080913143003511913028917655940494226353785566744046241235578617994736809959279386667738479710782439626974200342231788533990078705390847113035318014294712980425537768746705487144176177219565028437421278579857907293128444632623195256606639508395751457512541501181686780016353304661432058217465544961962295195291488366479036178283961810291464097768099584521744922793881103645985167198085697240498428638917616735555281871053826758369604336041045681194158010023277597795939441143105745560908353441208775678947485644078718990192151956805465365129916268526155948928325887920196900032925074939589080361767028105822591661637369273826684794643705389578228701533311178594401658359899484013373241869626324896461868299196368410677936425439148366004600141614714116930882597117199626847184781619962680852452128381604316835201586139842804843798593458206210080657201970194668742937949154418637758297886947438712589185234412438837455123299116360016844366156408297866291943850206686245249960662908590347871782079907639266016689080365328134372725700449845346635953496738089006777589722745160528407161655797369830031443005760433436708268745284771159256188663617681102782563578771447877547298463798858093526597372477591512652522044792668721689304879379893096521423912867897549430270775805520419893544542162857719311476777422825996688941805242729199127303957385458440439656755227143823667446759295677012371811444770277501852201958908805212814005675084812842529629055819813878254577594551689554553068493328504169862607157080084659354275855335529492877709935719727457247720087856846135737307553123445267878736839041283490894463177074870864105820120673588622260237823265660096602608464088092055805995470782769228826694043533071993177263335939142046016770058974804769085102930222597998620147927711111598786294065383009139308823611078657107134465750327782813813750032082122806291874833249039448370898169498509055064784112927642453122603717431797374780212503507836806663109886931804305633470012655997898055207292716449725167161855246294841134928966622704277374326764342535256652634432393249602175501862040334532741008983916801534771342293968205952580113576889980276784524182253131385360317389962530388880538159544923095386746052151485654986343246798122124876423728470170116776227041709792337783061908799849464661379774578466103345152611808772803602301836542748452364605444835925958785513699790523451379877125038151276667364138799479191601813823853526741379223885451352340595338169630285400315869236598152460405115327615657559426735284644533297217658014943528028050280296932419336510654815434786621375516728400773644559709949392307782595159021753728113004602133139936705874699074122774803930897520543595784550403003482585251890286427239063479563746011922945613448235794820627243175812175491628539917242259117258985153658846541200753241541265726777951563363913425688742708064752941772320836857753337544243917434343792318233859426112310980016762535612385699636217404330629836018679167890637271011830654954050139026577754491840839887590021649401803893464698415163283963214127750112000986069584797811425687925399992570788813031410728798558898472379004330604173073574423671919620031364177089733154863539813186342955213098670933392181376095554368920652140899578235164780699597834224982327781628281159481387845264656700185073385800402554071433133738654219221659488002344129403761421384733302126714601103833886327847363590919536822184367901408165518968922713978397662854637299524382582085729986394556972795349292615841285634743488098527656456422804746855199439617909151346245467160389388122058657623907129755882045126386999352742338670354819256745998408335472063247650908025013533458008787860113314914743165931300611416187768373844089422035805952648742530273262714425678679803225971909031910969239055043794206912031818529504117010417797063351099703569127468184933210870794990976356269803760463552899948263473961419843050003782160331938600364544884643679338796420680329839181876656529852890566052356663054730187672377453536573703848367800897407277378732850809553448973623509221859838083585038232537041788070993122975876866866003507803680550116125358236279727647699375354704575832231625998339698574852451564022754494820870739004029514853909104027478879282614119889689504968968443089805853410677241200552907457912179862060130288435435462404670223512820239307588083321588222280710147631798876161128219866900930389272532684443189285007986116504274072811989499408357703572023376488168619299630258435589801874190781659638158131376890852658213156192067548012760304163755680809177644673773322627218116256826688786363224501524383339178849778091086431682310745804794193032593663428076784705429901040946069491813273698300463681937321514041501633376810708558191394406720579300891881759629635709878133189602543991882720055487605329770090590973189879996519259022733364980284303460013463347552345836529955953911666987886645130614942206210474661262205115873387709226870106170916725246763304163486087317000426698102393047310625863391610907289929976445473257755223538540432188280296196585328951061602532968661984284099224890524221056098762621467027524348722442835920901889856015100182362555104672928855861394554232108268330551732255439741419306513704158177284640345024670320239210031107228989234909525316526669381338007609612132564957089536600909378165117224459474696204929054599573048962829687488211973711170911776107873231451919537438470420947542374883444231504445507243746357220197648744999012197432476819908743763835821673633106408691890628210995893517853622818292610718567664963876278439195788728641257099403312195053101229103023706528017594811489665360888008747274514265945238225913803503465003031993095863877407428305420501102098762876944353945763086645647059896223426764795702545216014528932032511541133508359364752590963011533333983789132532295220931829181542575155721494847445587094349300141862077501087596558465387417296054912227220767046982163285228072021269774405586376627728701316211204628614439541158657157831453530829006049866427810129869296631466343707692522240357564637286587315513189787858512388291224353683266372910459921025108075135516841025289249482601617932252115065930647296198687724082929653368814358045816117803826578871768025754192751745285775484029091027184303200836224272882032221632306682821914015540761060074285408299307592351833707768412078798394997300411331711951981496498644706730240492308266450452878683134784724301550935105503021477217593234968286165817844884036250383423160303572347604434736744927626409288537298124905495992516833094824655981855068451407907758298745398033426410617718816980071738407105624872053487370879973554611977387050544657903666976512394731275615623379236549937142788660190306424045186744836909004601043174092004468813811475630038562931704736181010139242204549809432463425659234981511762075193347094877832370661990813672496701072392142915219662105711111604590171771399009724761949757777435791790017725839106530172640939190446805825417070968786797615852389810913044464869904963842133419958094572398025040974015852092126439267557311100371535951854941685927191128930780570404380888737478659828818833536227614141882712345321304745971115535869722663167360114271385202772843687288584689274404224325099975012215738041800878466282811200241234338301696591779102613406651880199627310120481512490527378294727598614401306129708221625516468808404588794616383790717877824241322168106557159994021716396655261628908388764894229292319851261842042542552329390333035227951298585719704644489853076615540302642212087681067332119947813974405823369041064624757185329965408845534983751290565027363813117245713409178721223600673104519076940403830455786283573251084228747386030076529978549715821115431898554245253671813845351550787053305635100854438457997303218082618180301856276875654728184132062766415067131960973117749822806136696465895571206406573822252275088622517984009960410587051929475855588945999028812694361859461384003119650260805737857213995984325903429217780322923035266724040219926171361639498217090565246846615206338537067313703742298852979759908200291555443078022134452545863384709598683077643517497638114038560698762812591752547467871113766734066461617273187598181072838206781082094030855014874229885255469002047747330679887746983168445425519503583313662925953484313572383865994541021017397071115236817400793931519606362898147927903412972928306950242691990508342618591168308179483763337211535060966197603107889134147813901910987197213136498194902482368776242033344565904983077971370176305431525230661393342331081458242928877615745172389123643840780978839423931786139858271929379502520848905620687325194915947761715350791614443350469994151431041938038956982235136509589376645378904976759340402495135368535688366297207486576474335100250173757527337937919209809118044533951154273663910802933419952028367017110645889497756697806261005563329463381551054499653795365593395748138168789258323945526129705986377834270446675641040310709748033341243588821105331841854489226212406339156684862452043723692305939350581060936087543577733032985543152939415983487464558157747001624970290805778805450004003591113625572227924905786315861788513363798907808167341699598608592345529045772579946586520417594186840729023074807400388006523046334701109233937843863496095576678253362427784236865472099262611500572591201498383809755961976768294187359880720047384506954162227006154351292038339956412751064850382582371474069969386057218198419264696940247975843643282289588824842026111215876393752384557566133106517371184475058613482808466051244496328261541463440995914905161648129241199546447963606313044100157553893267113493555263009972137529516724154060484598199286266098543394239941015555221785444914964719856586231144048659040771917047233731502641647475339066655350467055998148941207237834741615955270623836866913239207268970362070956223626436106699070002070612084739606078626919329438314098760959190023632063342194573530906702909702083361301103854981779340903697594462043913644182188610020024010244719374545427992866207916672098397658804581600941362810980836611920473460237231880899515153083312524243162077767401822505851067556735584884083632325665280166340704226502316896683536187734408747961075066556280971255655580152699308534517515406507150923955688391341851701722260508425436081555459156679494326047377822548961116213604608971285663566130148576721491254962790576896630489426412442945217997718170876555524347581794769093633438474998021813653159427384938554376637670285501337997828990042744407926830061221856542997154317876138052934299210864947397227997238999749870765155912642410760028335412257564755869995335460545099555320755993912648891943895007165438888044468444781598338646201364342459132169086744985783338019649253899654857908573464614820027792606343432807274392821012153065659631521629577667537716319737630223201707511059130209174799706174262672641090141962371230926457649675432493675815102553186058872414709621288690081692609369948223288819938235387509811739125093618605400243478592159595876950387839322955959535497253052379723525620914664620261822863054327737253827819915965051766033581551435992000342149959522560591046742687103375895749976795991910657415599223729444627680233124328772897103442279510181986576284052587674041537015203300452752195855936123624647453759995770035189962399104094043911704955904253425043723797571173894976279844583406159356622916591619704979760082260985895116238670816448666490675724572335171983696140788866004033350509880311071965724386235614065026742274188765316364495409526660301082599568802626205790260801196406158448525227377478758360988817728283168659212548397151498326399087363555232394740114561096606868690871423836439460017707111099837226687210921207732607747560084333925018465254845494763452133381393106835744339946442506463456279799270948842580250767199814936013056040835508688172797773148883895229963224554799753597699912393011859916065079208220096427405269128603763204500710933036754757865779651890164280591889743815934445200994937803160628177699385033989308675085661730202038572438659977313084361428105189816846422426954311986539220823584763823247050436489782701850705665474437060941821877522545815762803746408701384560149973354258350016713541359269880225511387390913180117262188755581791610577864080759707505153105414852500111958116073608236770289159149674014276128487334273702397530407513134458392583128067564581116765027984894770776432917578304303562143419142345397568872269660201866607098384894767809447744079252575466120392257131853700597213090883084064225200370774028014927827817681576191435038690912278353739439448612237423989464924437396026555172644340726135975587679197313305771247901158551267474196222015777594584121858878774120701083197294079724441287845714318652958914999399265595073871678674721912481279671803471733314246159341609762504810841348864986663322060263661839904243051525599579995367640702170404750914741394825896076528499329501279959561972076725195153028603846342477932999618128039306581272771247912379783975968656147302431941087293736068020623579095314389587263010616791271728335775407870080406710062561109068050583272159527939395314762552840728373257126656681159791867990966807335317249378405073023241863782241467710981365238970057714986583098250257537915442683980517292408661069729045025764712401028807916887887516116074693006261512007747764490408367305286489612765383838181312225429439271127207739588121726146601535537797998887647419293585202171731022425017860006661569980785861512216481547772946212732190861180381436150854122255368927835448808059607898542523936895250081274095444743485836919124017784516045042714292420670845879354591167365536894444676912461022057842179972673855129506639673693618494278152122532457749633053383369263746237856463216822103737874073509346552942007865736083922849538612843513340658445725569069183132994996470771336129259398907423214704437286955514826513229082208567609735862223436720987813511738168457840475913790889404964182097381154903942620477955696899851378147989901047617566774083815213575214081503767731186113482198999360057285052489206613598743251149816074465556942899695663939938187199999438440715376629636747583436149505618684605631469592457584236543180159901106597656536329819656905457749432409482304510916219719156823953148931872048961042757019055820106936282771690385855871659600013740816830027800147750763172201459192535945142781280089370541590530937133984165827085572347426676135685771111130779627741457117981852752711795786865412853134426351411274805085671285004508842455300552057481468840192947431975257613514399029583349436067466802354336509267882217409462948941321933643289196431372563189579968817126995680638792060164422599427310781957611049331577490141529505232330924718927057141020010078988342285122822813996054209377896414170879457092581062034090040708487107935351391022142346526524952664758284231926200187405790903502042099488150700185509350065870751841334161443968696543628942785532156944178688674211937626512383262836129750758580453775187413199945650225110063396996015119416755091695030009333608618954604240901937841093015579586860395561092297439518180751062149683797227107563339363040100113734650540411225924036218219996929748778013470214303134325803588366393802510581982543279221472325679269129301246756513106591647337150557132641286712654516684458265046557586543194687731766941285160507543569058374412742790006629111207805976576033920617182510141934089267210125300704972159075732748048658120686170312619563504005989606346860888698791500147203266827050566488798353225645099176581435125164430749102321307188807714734451351427421205273630227368555555745963285220012021130070664724685042532772402424600919804634893539670499063470486666955273169794304914464460957504665900057781140068199686141181268177673222540446907751095553225863318807862129241798930707281151691130578321842816783317923510615119811101920607347169553093200224543615515469613903255838157759291848368577586260189678652817363138066173363620734112494591828421484466555218848937933758334395533854999391716794263747050092749380061516339175955525091323024297446033364798151757882757745532689739533232441916901155840886441419138240039180798600210264805119800790019498324155446388238545331140316107775119421472955281065297386553580333342584484807021212392860780912743190326816027988243173320852056190653254609523548718167421473931426447495183048219864143334394663650751587791797054827989195644107364624942448563542005106721246150365602609828338238544470356929602461490179255565105513111704905678328876649068779889206980528160024044813843251577036604578174443045355205311688736616772521638884255722898602244460364514033860006608721022148442319693540397644170532336696838038724564672738400263413305159162062177555557262720542344876867120349414673336631394830834170789192367342434931244406590545739568380020546116944178089671204249478665264643103238834597944380736416690657263018992480493458148860746347848226476233174387135597874293686402766012772792759714317126060004041095336153733002348430352123704662673127750302459371044495666811908950667466413230733412087807430066472130654274146404036870965745945846030489873897418596366919286449525040233936927635178364237694853137813590466858507719112631389223400446545395803491964904332469475561083922693552563176816924916648725495453342720832314914745581757517264293617488366674440099170081025043396059358613076644366591498144467071101499205331584771763682151252636814685001957689758274652605494532100957105880214441963542787532387703820692990439641872059680604581673478669631849177085425076112094067828316621536489057703877111832157908900321855826706957193431373279567960843310891594458998599523095935183433997871680730016702148986264809265567569536476959141353575673286026887160440262782794879628331561194261131655933909314693659118787117238812702703830633762792883528419091979870615927027685940514723317778443702131097516318094607930259328151754905952246231906599540713299811927338863784657412483883857171097072871533648855597263524240915516826040075858542564095762928092257877723393651169863885645569155961763734756073076829768703333357803552370724173081889939031012634417028048333415052679789471420016087128707991559687480424033138283602483478505690401943627814622547943394652795484443733488820626780438731099046986765099394326942317846814679442001320578196089071615762000685622028058183304266509377895149545757540549049597732080830383764417196852118642925280920795923069583770975856470311070141692748968707502367970563408531658145296875178222069250040392905558456348085699126623950680133926264707357724957365801467795788213714981474756037616371312595648876377580000298490188488820897485705312414089855362672433528454133055731757345833617377355796359581809995768936506883737943761708649220671782389880325496049533698822080343251565390234870063851560659035867839293551034823095154621677602033557046490419796245106286898271284400189275254150225574496373331281663383987738691522295650280985536752760926929622378200243316199697241883255327183044021313525413359120680030951103794956747653550656466453877641316184578873202279135267129515223147119854277393407978977942163377209491393213303223276495890262280034116529883224934524860704242426441305785962116017357662271596970006325746384150779041628794174124048183614440394681411714960591764909275680747296492398305387309585431977088782983789340418830153144937402559252717872477759077916967436529604399492088796452748803053523107162433910201158277821874524817883833621133572433032595307679570568634800144249793713704137132949999603828239691821082388896300932362648233131368864270701457876451535994120023027776605460609771413511597508496272158897623217272646309249140108152409586990397139853810653660703613532699259334739157550394220910920685644276482470899164023988771537117915383535535309094935661015434303667689401084360547799948012671753002204323837553169829134805590301326187275340013347055809564929207806371384506888699025325552045610957431405491059940957058056587361927159946689014266855659520754593314940039135112267128372912855591476329309493277957972964126937846378879929368784569297964712265380855589937009508727894396745915946490331014337744371768206774663532851672645899214971529134883689373165105322355796290277274931047746793786548754567225607916285565367641739387220191506982865282290297874363318248470343855625443523640762923456226928497772597578676230342674331095956519727278203642058273358829110460622763721670109546454684605668795525822230406731713462555213208336746304098182573260191773460192689675617875848919180732318235476993509556552608766086233587455255685595522421570838623502360546873182408991050232896539216182736281646691842967571387043763839163010889083535995334292881048542794153772732900933522896443650279328710694136664095260262443127792103825238683624797157424162237909723904916677179254714177341245778880589742485840252402229319291448887345145113762870087546082469248107349622393723073997991099668866544001933937952328431532033606217254046753172521486459489461922106224408085366172136263490561681042372155993560471857965489621821943989877442454848987275922250109883142635335359115482324592881055656494465674980744336608359976260474581637805123591848982226084861551955812459621587254804020359644946425852423927107088458686109781626468729214133017414675172916400571008158479547529131524166904914690239916861965090120576942510523007927173810785649705336241141095584642332678877687322609181106752058625676335248862660712441589296630802438686135707841953009004344718825744700206153044782926208223807686588988987318416686359713205882080184560341098435654903613042527762584945012121599140463769111714044661322554968200248634561544690338089987899667685444013387580420277191537784424086746722542549722012040689705895368374619807276897616138902371410777162029576877280777580736001936282258815609380038813449022401539965118197194832389029313771036591134429711823676139293975638900569802440020180263811369468907086423859285860986864928654667974954652883243625225646425532377418762052668818619344315355891657564338584911877934850668735061421309664493658205401320209372021289585336750512048966706419088065990530242292849385088648445079182331218225597005603594269837325057643364765250388725479846513065835108650174236529024763394056591359511127099676689079233214674332177794614446768256516615426656712603962130049582560030002046394944533230732530864911037797433324859950980996366775102337661718853618281530602376593988959141350714883219969903192428025556128761074411813006855020351698371142437174765920466620168975250769778507457365577322268007811360003700760351680582429344199754949483984808688812254630930302385701180081540038481454980832361846825333726555574084275870089828355245587910482346851227735795101298211357637510723400674478157261500658832308010510798372088253659484667523715865861095156131882841838727117372499389851817837740777700390802882537668497170614089286432436062968592377542328912064429206286646904176958869369146771840313059275053303615707979102897869823689993052931223540328020258991011461012836450861987926430143295141385453519415933055065121755999252028070679217605799017577873617596827571155375647413633196353130099581960007481669453535092612928603584757866377560069398033282500283399584961934352484708285698853509746913566271140579774609774535467922955403248224316832024273948699011298644761836331467631729839369257964871315731988083878270305173531874335574221251723417357555384715516854009255111591497384053844404890436955514621072384393076168995409348679850051698540577391828688655483223501572525321765737644332673038669125874545441954612723688747005003876407907938153310697661352545517091457913381302596117101249748455479772234829519798124240976638044775808298887764732533892843853523307363165180157077908155090759871423152084882678564624885636729100476576290823872804628152620378095644711240960496483080396925221822855101536937505017459623428758704146241348781098170519974483698289302849184539829158774902113033531383953140138763380724520968000052597635465672592171835693943500088006310347647240734174396571709832793202744976252332894792373863517012482172909521470348269386631963833118186392246855606128674626254466819682693793736812423223004541933862716509126457961157644239175072991086931863016977775894117306925788100623605823498500835270004409896276923926413372286511235006471823012620094052651031375855108561604287958483042767925180634017894651232214690219608311833705545952081437616703367516192970269202545851497022989889671585264303151145944486074558271151929805311888811726322334752529072963298637510978803235632879368624511790675568805390741729667382192982838584913464793042118493474849324292562280214409298888456389249396522879232772078488334404591967697573113113620824521247159940466052066574169372536552414910278069708491420392978146794964863082721274061285109232608251731651134137676381628279811814812383823960781476786700907287463613499559503573137358495162114690735911781753553448637781787074662246104917170178982795764273596961355942289603775036100472215414959709067471212157775642365079151424179631187189774457928030449831222941310292235123030026367526870516690218947143042226454811235759350239025149964394645014144878104740515450315519387888729251881196912757131898976384905604361253004238111320067748646117603972919060260564353254414504619872224559405087617601069210481427171967637119393905735080475794682809230744935006556157769571585611305401581139816986844056806574271035324937369590859639029613600873823168727796892852308439753609917501156040292007491073110006683010991846695074600763346701596580929938259456041814026222418057935209623530054134765916708364806538345492970642787983419296661843064212702596465781118697369705865695714828001076990144278130276969480419043460954589624555402611816673809044486089268400529086781539368946813121899723333155222800033974679606395388922546474950840977960038168657324145612590240781799512065700867694315687306575293275880444123306350599351336910677690138663950603121773483960121697882041105732023174000995864882884589461628150922272135674687848720066137986783445626347643995362195631545172663221072475841242375857689255217605713583793322744622882666191032319533300858315851262807353259726583662502998550892397730146453835514281595922437899907349480935912480764431855065705395503597691699883533356015696255478024767255618561290679845940168023502829284329886129815216250887475389861356733132127170334762661463174958424288259706819273965258502282195917810122727830152546037329639930325093116798443762575984992983825215613300369904894321415398890672994581127877921908808076682410405774056066125817093593519134660641006749574630635125550086919196244820540413865501278392852913547846088274127233130947444860306068402003591566900838676243594269407498993519420054786211412859106326117023346845145142487481846009255355006047753669936859346732362509007840199380836987523718113152353859145612116044671289402425382130462031097750948432908414712692625817874674360794299874065156243956875869748506062566270893395065971175411295055076672980774680196512769985999150588196934476558551290264330472653579250545792942223222099670513851332335460533389552939077050056070073606804936180085562306391827831447122125903352888431337577663947691956508303412581473897089113330402198704759182064574221500303733193256468681108386470932784274885189929109748441320192998145566165944465249793631468338900387586839992439529860161706108576556776969542017096210081697951309475466428559153908162023893112725205360956818166110624106810350768991697989542151111425485194390936319698215673923360371953533762441974926849362552902019908391286277153805225950479873066976350421876411614122438499791750782059586559470658111960542561483935121545799476774315072996806876229060448589077562781586329930772075135572308618622851377649668078871549253514644280291758389366593000230732722710367630000422514130207418309596922600781191928234184804387321291752139400206021108227539435292989884604234697540760869850038784381766665285736917992595975179025589318542456742453365481328943715583271153185285149781747575989794652654361396480666765235438432067658602107744675632016013098619380540995524262796278913360026252030309965383802482511753405440228889543506235301326490040449432434096470370038720866043550874395391057501921627961553529721272742359005415048602785754671118433703339966405434595038619212235186523891420482001905973353598459362994754217695591740758988634659846413326337031139748915099017431210493425212354100913649997985336283623829636675985099346453186585955366623112263583574989890243506162046894328707999777051597337397866859404466482041094121235292075006365917446753038094255145266006817822222035548856599434566208413614285067861658855004837995377192561301349403705791243723262924106598652935938223519959079917078814876298279324223037295619036778454730357478886418962255622048168379919062158855329890487952942076463833043516850447412224952398067285395324020119693002573390484039816059012150961335498453223317106986900306596334045883535667714233061628601042027487069411326419418935686390141299549026504698641281353629054590001086518823682312419863778152135322673399691422318578350931358800052627597634021913731771289688832168967637460793782006814342916078384540775120002355566186342197006031597539638692033281540394573496364825765295275719764040155372288301866237044399982816710696626998514503451167105441968931166333874300420005612875999288267878447540494741533417216930621963122851658169076718488569984262412315823257679703002972741921903637723359325726262307319616467368124103754896945565758950081264621629556465429461437254022130696231130028807921524644464158206494519757294852459244263044601640189936301319078115500954629755270495742763016396920923209673555594805663902583592642007614602686681006984461100677734848817919941338534140289676251316825465362602707556443409698087230008517082386536280535277771599811609942463908891199117778465398701335741667074336266950720952779472226289287253454760462056580240366590641391408846304117416469313943256263427097273358307751985128017934093772498838095783773187549414191004705958540359948555525461932007985630799715301495796216456687284345400193030126625745458937689931132713812464722615975766146908362079615965093370585486544181971730240183889441450576414229400784672107136032209822698276135250803255435515112877255622845870704485279351564118780407822566532214399404748792860721600658617502117377183201627496726447163881341157702787379686589703845496692980558102985975864695103715121469152739608425166947392706230828637030714777064457500517275506384371148107751543552245997761565850937197676809994208834010935944562141066038897790962122124256913346189273430909551805346483984428185776102460437087194968003602684362657735992648229907662121387413756449039893775756646326470685871038026941481109777467683982781008036169581998268405185797508789111518767016932869974414540993693556047521907732554424353382574965495768786054877288431708720459404278406057657462083375741232271591342153243226237527706392009870630034749780105393451576660184168784984254527769210015311737369264656974456895850671910935351651909853074693629966064367678104559544505489140428352389573860389013624013272026653441369328366257411163555812102412815840385164131719294043676119585531325770922610674407034807871662150573050932442854819418499371182427506727579804083838481306023326263029169231775489844252288170541458772376927792672586686582351031471262336167733427595174283963729770057744563576530733291061795325286685564989558049172561056278999311160639827313515147744024201897571665769833285690364385744101075546353949339955058389581702799602107470853169824244075025029199483989206023296283167241381913799187672799316585954212564093658357344049879086876522351766238283116419767050238544388915794737576811529396405082149758421130529053771907179164228832567033265226514465123875675191706539308075846024803321777876105337272516340252212773917380570427426129247996373649467073879262552235225106308646469345783934609662330788324743107450420409349995724979174517560829853128063467775224669809868656669393026696622185019589227306265389102730156467141263322434232231842701755909124434354740510072578840249558543356459847606754325704932049060871864973208058298423031201851997070339287652895712121757817103006709830836351689462429395251877510371093872341633046734249924699372512914416255793546944606454919284644320919211099597253378732748928927968795807508210107029822847158770608987383167871384848498369637928802257950169631544987969171331084745924302610458610175773320933955252964316379541224294574854471162515992448728295141598058123869714890182839981889922126621886506669927575654209307030304646145000076745583877275324755051510557773355831175447079125675692993586923034939451495916236286756355862075944088194513953043406782463440095768616270799210339521100948137147661495470021253603453240098513308184497587653934848139037483683996706551324873983776739239360912075654646521200338259658232220058371520729208197099740888482109247506846204221793840586473796721576868597907854618099384016166447444613405977796946822154930497719935309466052618775526189248130601446978718592079952132626689068044912999999122076087859429006765151285494437268566995476849420782016598696803537713731788967609151548434456219928002530227908498845362623043176146009596456891250985368177645027073725654314047080311141497436345816717053449458181879743939181662040277436506881182931912613423035975956028849803987369758555933382611164518016165495170876512376222163603103855794650915943031583402737183980602425419231870387420190357138877766919267170705204713671779277520917227932936130505562308772878447405933211645308594393582258287733797478127311660362719301883793495797553972567517281355326119577094114901126433359684539901566441908618651888664016533286085596417925313204323045901026746630188315936298077077026439634935503865667472327525465054458977577820783596324398847876429775132644117629730915207066094181746892219807721739022169174952002360255839176727768319109693207015444843915542608553305030372366516069140167827918972303576930345859629686866535869581094145610371532388866006031016788095469461192620595347309197757006244716024224070844791015789457947984428228705309006538927514429446925657455003719165224324974358950915497712111543052485493963474282840870574314750608550837319535396321736576628327794907889771436182303966300220150278445055616935605675874688290445233181212784314428921941826778278430635676519487658215839537136847683931564086398258536878305248142912509933619052228529897941187341933299429264319772504376533632528655289580932364698890253888193447952308878935945404957072921443459910745234892860620773737226186812116220107940708955311948195002881321046336376960457659607374160620939489118839821239691792180239332732370352914720263147776209490765024954712730476878787637906693247663038270022411423581305667519296257898607763888818542931074366437002199794657972218709874571956368745096884779565511573968035210380237173680529807597871095702041241500259665279698520314640044138980920210495163890309139991643803235417311079021950078830056314868625911956264681252412909201285172289502765876565245367098572861436988998000986640587422314427131933588534185257425612344595569584070264954490457701086917724169301999326230013703973835159833845115125042178310266799922406811691836529464146433273117584550517614321386505066809623026816497788078604185197755468112550931553827622179355171490125378470957090164808340013295559968859848906126478296085853903613610451667040219213648260681357942555584766596081229957886609525807940281082511255866715469217531906250083421451173667079105042398786395957152242455519753683951838549949901008279383465489604531063127830926899671900462133409964232300612126101158444925168773977763468513985281890854458471084113601567634689091113147259054374234125752199249159768576274026165669720647743293861378612559752066033024123154038607085968535341954442720789130128030083416826705097108060200661991108505496514116386767742588688810992961012381918857035334235545629305464946372841140000036767571396790087630429333393714264598857480072827542713368430666906385447597533444902512031997339024172243814157555610257785926523174738587160353362173576194648829787329857583542222834955621010708019671245897975995089908531841650529786837484174703316604463148305488124123164752334510190080844745004434649001393287055239989222752247222792104357957182158214616757846469482815286553344554189108549916199807029225095877706240313779600478470499036982613636336175669653793989003834309292836752764334514352495561923582880061123176234808243054403157069172489335855773793120312896638313616726980625499172351698246664456058398149697125891080146388347635886142563947454983791383730912114174416808345724289105205634606752984430438253524363657305234959132266286800665596337912281493297282708896750674154386320995747516468208535062171947078075009040229482309893666793772160839247966178007953255597807915244888690299614011140937267595114056008269622548109086418778097800459272288124635367898896606518431796746987217111048724994699735201134993782708188043731002534911806270815528026253854233208057746331335923806768552951698026214602004560977960532216800357447749101450212167493325955080746786107986894139581422882958334593570117735773111229531681780004346780649943061764107715457640371916601615074063050414532001759130143417167449972090327755333438482910813457028485910664485751756864258811128651485824111436825816012989002307315685776224868491820849222420093568948457742430094385453962884711767928992319425474367435504471462345335024309322072639637358207208066977497810191099689485598184820609317639186698872816661364772572534845789511819276112297823010840613174580101488686522919529239690146575791915408802784632432354259832873170989672682585624053240632465888116038805958202308035826602253367732648094427853072246531154294629859417757445418868971018888124720972636638931574802833505571117131735365288561422905578184540930044340552866712895082614266271608517747579546938975417823049655541199475105118463574000669392165487217401534722809621748353952946902178598650159232573806568760339483397844514887360541865787925082146405277162750802630555015987282665072613458565626459977167134802401506113856879338324534409723129573571274725165023824239512536520698458719659248582025320548083573873899128291024006183932833532099409989558537069616331284834133354979743593994730052661469028680835365018147881633661083762799847364417312948475294840534687458232925141849748007506025399922552155740504998104082625128143335214258918893097776422399275976368474322090004258437091611047141466124852010530883438621993604167303333217781214702269656847789839683975858741014857072858583901632579997189380412279320156917630228646582296890022779083219984356186909474640623767672462256226285127532309069969688777422613575171969887076636814057631942724786523512029869115309830246858599333074235799221671056901359468073881609865158970872871064986060309373800783557729564564580487982219777137332992796826424239167213591910622655010205226321406312724959630389864236138057246185550208696804074188876916128938233431181067626159561180666726172585807345735445886776180032528370459769255677723082162819756924297994994275785607594811147752245621613662897642622251137043091192348822736071113050863973786028551468154219481585675150669699385565742710662159162029355582158997811609454068045243253416663429286041900803027947053240140269699758080403052426208531149029404169688777163405109330389281860177799093388939343461384690289497991510258763633035053943733651175470450731436633427924945205621948268058448008823560832103234961478054821697383527052726337801073761361738413821123823431602500483166243919024249291175092638745487075710073574258306933350905586540075077370010013848495822095663977868323333468633584127490333826671434893613837670564825156793386274160754116455200584523555124158531787703526137928196462763820730753667072120513476265225688815423345942263627256422657728530388624930215828447654125503493497254196873990525353555180810424831929240943075908950418542003741460095782435366393858055950384888285667174190428115174535833885466216441127496908116350930192561593361534284549691940116096646956098146706503235431916238521652099456935797699685681218563089766686315059601600690956423675906260089287446416008555745285301025167416700940329759366327162483757663845058164972080647557429093365673765033097663577289875895642713662050812221997373473984243211365001991343918215891128925510285226484295571829178186444224212101643342531235526398705472949569225544482634478882702847688755027283368426327179259143349040658022430392481947046586489785816890852983471609677986408803726184020410524366514764124000109967771180202450164750376647411602387554830869989255202912854044278916790492325683191934686261491034826460409642358620645675958767180445101343082053990801236297192285406709173745728772324442419212408516005545710138364442941548316116192172423687861709343334005552000168820178785611774858469985765166050681633939097300924617608095192912211943568437602830775858671776925707609785851072363115059604023656056491888365905121644200669733089561826550239734699156813703294612041627520724154546745022396770150076832701411912300624219182884287586755312867734158992403346285055612488123456584399269230037532453278434000141651222679460412496122871288209162442936081899957803774266822550776056410652335588819906093786278674177406093842046743984452954638353044769683078114792705631657744701593492161653311382716740903241732627288481352874802268244776844326249045819505472093467350672762526294259813938794673504422306268554977676800868986403402106619677333420736139499782125709542271261219636888611238353077413950652620771843131677744855895448765918641442311698830909990605488547807857872912669863655271634906764296763462476488794430072006450647881429723228329130478653585087729418473016526626131714150978214617185597939493580293247537288656884100598356642637988220126402716499246089801575747883149780842226784441643885141353489690698910872698347862317814249261488381125929264072561698660206849986680386820774875636182868437739659135217243567740605938579938120702297127765970811484872367515264349503073874603678954724739159802511279268166122767825808176888108754656058599001981482532205415336494549554039483280497682718308195725519413988743517500686573569621304433410595146887443510247826910229506519431303142386096041501277063058183810153146669437672574636209245842328735552296997412233154443952722105593180001180453219895568233989032311491001385813764311216890411723405085006957512923671324263352864537546144640247688305881728887031770284217446667184929141106179600457663842105444370665558117382306690352211053636802132371866982542833047388500526257576252751265255604130669592512344611321295843548806332512955492367616194013223622321837893550092977200024877059005557946574063280012492279745328360269559445884785309409888043115793109772608239856397960593882111376489949365130903188875139142664573300812517572578991424097927702546507533034154226903941510577630154226637944302327259710444213357957669412608688444204637052368263896413899585938570086265576327185487102652428592972884431647801833257832085345433850211149581391574780331436204142808690865407065141684963659214648129380689912618067279487050203800308780908721024908620222037268020506032799272942230544231061885372599919073991070670616753681777192978696551962278878172049834611025125265179423685325693579372134272590763483932776008874058245247860693105173285231176876555001206036666372776349836517419785285530871292589505077109171808406024791765188933637331191744628860209617391401808300031536950388465846696513202900913100269522949258775400644010128108471309435402571854030266464325370455451231871587745953587971693433023855312931388320531108383977969386714622392157808439710923971684405280357837802086739513356965474406103607945930742484936980672197039000039441659710764636084530044385268660544930676294190260870385260387149387560164939749459775688723432998067069067550029975891455451954405253125274565531873799110299620553636576831079662662507290455417841706550294955125747869348898150850079793218499179242223793001196098421142267264273834732541152444732224227802338111412846476189396740505576953022292377110589535764405724369650504293830615587792964245825581107484469124257158049892398221943383379886653612047691380242375627960662221551925511502595128342655250485839369613630127514056980135832785387625312305322825662809683599053433767541777370065350672381225970518267989833455956243638035519474066113590584160072671292428833613389571378197236683122863662016737909927586789685487164898604318041115846424961321597908678342319884504100614778202575036292833958001400121040250333272102679274342872309473333899291874686360379711463043535122012363031717779448492931023412241657125868776029828379551893481942191150253807808111340029294113390972678274026690802577783844974119269194230714690512943567978156188134204803720020366215318537146782120040353655017559099460657928303318517333014584993920212201096975927586052515309719543608227344798215178607064508779876090283394084889310794933524039548826968473065522448410052830794238145153919010547353713156383125154847977282120934788885018151949567807108842872349062494791263515586007939777158118742335435653235250264609336837899066506278533754428217480181050315698297433528515334147180108574291268431521575197733985949620247998407780018554476070518955751261497007858427541939801184709314826986446560241191715434964269780494114242844526835480414328083482487192305952984477257326193074517906914956280324342430830531705026763426918500368674385551918032656881288315149554548224414313705587415322013937850923400893240347678192040733035510508652455619370050262514295407846529453707092968496306406326216140908783011320949223354573990748830037064916371545919807871323801146107621419256129610408452696157865212453126938399857216877460506744808547116884786032999474567787493704843347362221006125554083916781051392671185835514150139689589789789723075324789957474022965952944103935811271650637807068761803241360782755927408575122466740598131028594725414405800752748730270296809412132780901933722309195441906964725729622321582985739999590907194293998582366189773881622435315451027116835071110609329198744885859518648834917977348263084204997921593389994214611913760492690958448991930634010099565745844926859797337002036781390949489178714317149088684977818760152057451684036726309010447651665333522002800877055612166282587604599157720096104791515276116136719463757766232028667299776523803364006842828372996520795245905633719885957554950135566479620303457545086712145541030972280633568235234463748619126852273406061977317719790335879350926647174151559771426598678346564749125313560272847099328601819404271599602310497076445549524525882269662153358824996345419787737363469277386169441410509428421649879970565861237194181873360929826473021004893977216891702679512969084612475463271249804334830658976523273403934305521122903667260424529464995602030303126977431128597516298334612164984619536970616355386546888794124814972683119766466127462354769447990162842921680348392692686455454209286821220128233158759390840238880594152599268304739645805112131836983061198068037179198053944963029494498505276184637503715468613954145125827288431524007547670857036682256038303352138103332524787992308559294978987875110641176500508596126081674776689603332103096412748301076082622178338452880548442906578269567773698986137082305584308276922530604700455561647241955467103903264215947659924891405412747104641234610127458591731918981960049822372740461267465642538946912628844382929738455348783132674109746957935880497024282375224966840006119503408393884101281584757727165123243220204594345669007256059017844373899269376011319488539990290714911731449970212216722274161826561522616939395233160822887322647868832612717501933540084595823384620573142711965051672761875017751878428160262782121780783039664311546326107767338166496539112944043483724121250323053061907304255594056284827673625219461317637293427212004429914714398553663150961620827645628738451594902965700813826431150615631690519523552450003625820210207540074388103585822632000451861566357080513316658221882197447232882464040550287865987617749495706433425124083793012206391943267763497266672437541854859452276183167755796358860119219238408333004407769170506866095912839379117380605337203007497997490681063036681350975163197353967650849882236091780722896940124483272563564401411523729331715117712680501437669757878952819125601315370868033299093958119870816493187414317212286465484920060216021942834675423349167732611849845493288912930503919463086188677993368922150319739134432069133074925706000438165556119479844336432480355677620513660970219977518285288912495879690463367764411977272188121387655726811998009788004086349397332245041912028434777189446785840798381309718612125753908698338248915880240789727150957529674387978734476401935757444634932048543026768598595501818033666052983505748348598138555654819480304861153505402146848353511993831770038189720985839792478986364148003425360715454445470358070691719383227159675923744857816072654838946486668427198525847610281728560889568362790675387371901458978362685293793332183448963304255348311860829487505179610509968421473208121521281411864971916443721084871401474407141092723519911716562660601498446886151289254134717572623003576805885689790004981533082380607393210959419977748192303810630304304823289307492193264965239677030720030316750786134173388155811911069502937482836966324271066314603748702254104205990700748236626427613614019438419500831229508622322252626164916118612299291784228721673123360246695128519226866579295093295669147893883452461812224643484715072661297563441767835338537645021122217800846002775831846812605255204338084575616081042863555664960753708547668223154989235509164625012152349189487743745334961483453255959321901065857432103620632364137972893601784793156793104954435069433163529109548199277062822698898490876847732866506881367563444728235132915823022926281084130390246569524279824347664684497196585962580151402059662972370010619209286837763253256601867249374031068257463604789180625328060183443097152622896296731323416848484121658368842376145352414042467878292532312312810132046653100680107969534425302814824968773904167707007777987439103342184537729164598130841583989450070907753835778889015438238634604415605501720217160583148957553103338359971746229182924953783416427681368546446765539315053871066063687075806360654702056304652942963426413193231549167304731029803236227866433794426592787270590610080863022669974881406918786308368165717981229788882984870426334642680714670223228979756602253235651527635623009880067125801388846084343283724955849387620207020035087807305952206972904074118870248976978599602849763031249075507454687851294248854414278824901308205402459126506518940513403546241964774867417692974480726160871432805925138171179313863655141591326883578365030965659083712395667110817580022977388679822562677159839259448791026795087497645308646847950588471138196248311294077269412350114961383101165343993703119820842243076794042388549282623131281775606555042704165300204358470794229691957512035095813315234631126825183701548123904685651918195387492273052723904218658895802249337527632158036508846144286728049214294875211229307834781852233084409283227349360080183895082263530491860201234581390983412231966690510167941065450529618493271185892552889725652217739583937249017267997717535201479589154957838401395278238825889697210282266041246132413180992543454461392295116413084660419158645931214857357588590096445131465684720495236343440522416671423515265243323800801250811308497938496731101083571450948386526625251408305353823927674196603781978071072642239433336830092876164657067012127124867912797335511398304886523705170892562399762481687782269846960427576122939049424718864364904304357211837818943838139028159798238875786879322544874507883016258657075979605480578309781353416402469467169167762295912920215847644995119798173816124875791215675907019826019502744209964747787408828145276543174875745199734726587991839961776322378692215730765327452331924849615687565203000930791127780863284180163649015655267895695711127951859263415251002476386763624536273088818542994419393675112375375628381154384465740057763359666861289518107598637343670629972293720488115133993312143181807253541702667518021206838600299791423213264109609586096754817598366319211547792813252756864663264281072690986641612391798005610555600339937006807223694864507379790840792346725876176608258125728758513033170648167183954781343917458365504348052455083713619261484881981134117947197806069522901238279867791530138190754175036931832078245571812621461839296277939425752707817238088051973010065700328090400876614966487045148149740099615324569361371345538279203047600863221006843977755438412564792902774051551276575831758091491600215915487210486431734784697022246730924885531041552936275114657014652857174810709050709647148204553396660725921251387678680023684435169934508694419645830455070586866979987532291982455275691571498536860901869573033134554687700065860651979571537845915966361274304457253180372791146933957762491065115573614284968828960853789862490233246176384146548359872590301120162798056261556377699643889953457085597936796752800237091947903551682274214153540570937404918147274150036123768559662290200595766473059682500194846343073701088350482213250881323825569030074372666531501988945021778916476074670039318330922869228972949258964635571001119551815386203310593089598040589259273773549049006031141611179558173948043635957163864428145700534894972535254492988092967142446657518040913461145584148416562099658966929371428773166813227859789631335619973762306739760958854653871260066460258359738619155663285008450638679395289009980053098649816157472899519617992828625068769223365386526799001079863402009641769500897965838185705257608911179272408772703200273289800277935589568265007569721386317773490834799284806541581873487957565354695053942826917832267537991762930596158491188513135557377178238922694735642672608619098662728753892714638484520851195480765505319374249358985389630598946028347200922069162590763903744969193019095308964136741974518410059928669975186449067381027513258087145745553148438720483354541581902962805240163606887778024322640720093463741596604234718743858584566585716792825120227825425288488382869691426678364003162914293098446943311153678666786668687689496356985757815200709342746738582788268062532094961518101363585988956779271773209556208012103232939935214314712642929685724436207358502738126796494008795672064759645615609232962439988743878569719726319331404859496121271892268080808878321272660221529496501843887700498390675269731940791606086747828991294087634924245347030399717166866722529107524341382156233486998632253684735482883854204197873595518471521997786379491416626402046246473407640644586610769682603561015395747770933063358638844097542918779832063595995496503809044402018133282546216776443728880225998739751157372511086446888476445192830617442753716663204560695501660363676118620576511901696313577661957745432192467591873450419818504190182695680170854878968860899548029821034102649780806965997779250272452677823901161561723394093785055756713800659664119375999712024388432970007694749230575522405992935454258081656135138606865332211060698216251926699809009514491244216226935561606777685907510365383637868653569150351968086735941691978449848235800913161193796934325243800623900486493954244091138285112144635475989705610477931759359617700254588568938298782732555330988638586563362140562757256861429749438584538106515903680630429951812603149139098530335472879872596702220585819798875401814379571020410381568636617519404248717017704834744270355214982513420979304684914893071861165157256789317685942312436558254619322601540051158075648806195731892403742298235736891908592103431629129392503843317024684914717628531888931708824736031146539943860454545400508766586291742380729665273932863792609703459820361125430706355328293382852617217290142239444539401367339560335802546665295542477153746724607057668743790211433837036166024795239246504981911919984537871951660016785210562336125114615561080893317381946025058223973181959306944928312997289104300557196561759190140298398645963191033117499296701191461631549072968616083188967271871064772075431587725937968255085532827509454538277158195981510377758491603085486718776372377637219318307290120411049781358254664990566776819766705281843200960654103322419116870519765010935189935916550572690323379721178609973920248043113120991681863869012511806827540097423921457495031918231387382206092233885065583026036149848646605967627693251569770834405515858389159376405559004004409167826262484987268998670501062706220597409388332032626145015441974418435815755320504236701088138195099577342221055932753723269686724135688070712052340524707658381036371593318738749357181615533797219467961180528065359405995168868110530505739290810183000130595875725861403485988448535872011952005737722098589430110834629696067943269299789871327629919395126159120860514736540610280908393201652539567532385334470377463500685119244822050997342655957607565142524322114650016316322470678739843040925089371861666681712367628898359325418391608131121231350535462392710801762736738198508736484481223920527148407574400718343323511299804626033995293722701288145936301537089557957928774183022448724440315160089085813225205942353228909568378650870698465074447599743331365596057575094451370358830442730495160498351031122889149930025331231321162130880967284191551441047748607806099299911597960008135829629072486448406064110227140326734493241368824620770506917286369700461489691066039376812420696660363157475199142897784908059206724785013786701928455777083491427026256683395461257411965083643788801662276949432452996784678621263567751159396606898888777648961045542617642590126985393892904952566559920578156645494610288715527846483217717608233105797132888301220486083267959523105331101141892940660769376919199973629039068489827758201422145219789262392624581222979285522337745068266196901484030409043622782947761237870756516313491640483572046238152338543518261745497991542752109205509763810569576293036049690905820995987677924336873433986219095291675676745051575991612490560334541289617553415583083499291044912859156463039400289518845560400778305395064157539069150020548885782774294047414751989925085961357529722403680055062834873523899716772806022790668994681323562911606725943916740049866819738728601672822930614793127559033357105515807979849690092836311656918477383426704598745419314773871306726315880141439546803403764472792611363742782061814824499885210612821717684046935508627581953626598889646883637735994520029250665776386159134542326939192656271937036937128653414933416521543300027511667110017410315043847883573966971542662901726381429457777989292118115528179098785187053474071913526533383149829411422036844479631860798469988621850884732748445817923389114721303209298597249233658895976664630855675715625610819999797262882915485444288341889244506022135841900742157260242312529956841256983829646299097780123015737324906815321985864554890990231406809605379842818478125069772290940549364501022723268125185051943368924982106869783512487188740053179624364708014122277521505242633792134429320154393722503437536883405606176447362466867172212385160185903868864448906212771287958706174212483470847607791507883596767090832444680773320711738254561503994843819387545794022730556458021803489279524806264719428112933981367861707232068709888187515822593437131874504020755898806107119292246502738460809083943740423886182505831967521372663073644811874609814231873172463770246794532496809055372744784491166022501371957038761835675771840242606760108364956749150038614719085395531795764382691675326657128204598712400429673921791925307941916330416934964892372938444838362594623647520632848312106132580442859174038246297701492449416581941676458839048302010270564065324898192711509834680607229656645910549868154873721928013488063530001680335706893632210025922966804923181350612896361838022328457211399689519897962127974496194420577071160697484529723036723335563063432699154231292175678814998687336111946759305131740147742267827890909303023567553062339514583444989629205110862079514628563714302819064839472347174969567290268231379572245773507967623334092943141433623385651865917625193009155176652358279440174169306487649230152839611404496706880683033116610152299521926832418407849153815206163341764369192024140953523608604209400114788629105864166207853143263947027172139025604677846463443484128840359326992419620336857488408130443628906957208003624637897252824456912289204546422788462370345358127936748138170188570408970659036417208666510415461947010225578345791485654725064895056363793075645240274967816429421812186870482120517149991408182056161438106095626908993208829036483338083157519952004463278787045349220901609789454608670629153097512250781289521592659263155416353671993746702273182320310405111910561705258910852103115370958405003934649795334707997173609559060594823881994066026609114282807142780627393416008233093513316045249770147810906790995026131425237467302927564774748343143814074702154170667806754122378714203200016258061803417470276689312542924855006872449924544116026750693642147332058446581904050904686132780084239113657469930667714190268117288173368988964835340007624500734760038289521499747445952861469001129088790480639576932400721741252346252392373687484967854359648038952979787782791244997531113158308733263695206225614686129687908720838454706278798979669757860505151968543850720581069527095788472588384880506420294859854664720989209653942087476994631789174477599586480154193946941770131712042544432768485047937746480012215132385672662968745589289681583895732368193760287462341044846894586560625359961932122774752284071713906475066718173389689577870492147652312628391757522794831812987734920953573738066105717294078057229849997877088506684109321334523890666311029892065626370021429803501285969006409450563560712587081331116931182175579993226325714723160953538945912777693095180065504829445987145215151750879042285561568817666826198829162087077304950009912832083664882747317203739917067543231308591873498915943929277358545209184814860067107371560773593807339841731503203806823879604358636660448487868303461998150793688105514905966440864256301379246003667410061823164211274737883723582400527349310575120226647668405720655532532608286778294688922608027364461650845875667887220085796243067920102854876049730884430379344130252061306068286850344501471842131481811347715933262975571834380704949082260380406499453509794499843215109205228007158292143538891946839807181004809654176581951817143680549584999662398211277225068583179604488978752090127048193575076633199151983897335254316791934225159014477618864775894310561467094770252028858209255724455062942344599998237257698777721055673982623173443083356031573059130714168041514423314245326358888275608802417903023329371080460231436262757038512312672580240233797556905781615523117456306011635491768348215213936037464322590249055342552328082962076974376857900676599757752965917277733275489514403518346984411250749318269672478429085175482472874253909298618302394010661365713985392434273110126429179926714531517984776726828852049359211540277093166054737422398058847077796945234932161195292382661872322493337456274672716891797028014020030605502326129472498134193035415042435722736447518286161215923657647855265595988325832499598110298309619635109223492320896810141468456883437456900812572418064992565198285869696045426598749133192849040926223718274958567032702809371865627382791869164773720705439620716156955941608518852548504352648685107964404010282631322734824387399224759974720461547976599431318085613270239009230191868797382743607304962350933053922296404574527108508435675158878897285116663834862273363418040502471963386358786095091486852846393862494056740572679973918602293335292630236518783531985557407929686068937409977472134677998326225930278403288361193468651955976225288334110528036109709842186101893474658347397966767187915802320381204457139861963995180522315961459433685365867600983773111169733200038424280392313660407639646596697257110275705831636134638709813177540318508084028712738861611703890846868828746593098728007551672107503982924511444451194201966394028410474785747391066690948025552158785003047648834935351963201198498790793810822935651982354713066753703292006454724437766491124063937463315026796535036991172714466122105946650996462725697729040238199271061185606745313801217708806029768569490776305999917487065132438132695869367670444857793443693178772340147963593644955561865186419247890405890830394720495316216011424415401559721651458073972061033881918285982251906532035234086541909237440332163415506045147791582438508942173634574316497078767544965880893859487102599315806679319213200113258716427128998842507653670240338900358900962363536524763145627357941653103924819084504092765327583704461123898447108380376021007130341123146714364175876194098086639738994523259608410811402392498566012780411975029810847445517257212787203300753516363139290016419211493199952912419214466738728751204173189253670296428467688067008144133286181622846369914060052061835980622254886056833556425636167766426389618309547428731601756021201869785332143404089289645480262608943744042431639034607905086456641648603307932911335007263778351301098939842925577219056550525924882255323507821763025472581251735158469710329301862860803661486354028443130799165274119650226969362478769212522625174661334112938393008884797036525922431253094159792055977655267626769620786798113313180063664729123903253622805938295513029287604954255610357739818056326718336435437524536355261937656445490702442859956401720058806355606028999983294286285490613964522765384472149308727053559603231326821798234895119483311638195500237089218981134038875927842174844043439553821498997716308320059150114084351493399573046707188604426603936697785023165783201967880880678826841503809922801345461872671335227249397125690974180155589143465045061390013614173298287716080544643242163671413941057230389388010862224796493009096705442155019038463942117633785703503500528115806789122492109380330358504400941951837961445542609263880078512513526447122740615111555389257156569608398413112404739614561908601526821593317046941511803583947975089788051515503677199197623117695808773486401068031423012185283112721950285726622156250287036291992799708352148225817155980948736034954686383348097857936546778357546776141675006861655539745548445187821519307078154379726391656452978011402756744202494893482773022239729418435610557709585090065239100580966737853103974085713882943460489555652882328081920037083429462381981772674086609488517059788690335048370519136027611288530122467768481980705035144100583874060251651981190885206557036579429020261404651718230481197421899593349675653572080672777499144364893338097436548055293105860623321122754900993932387748687974597631634791015875423222538060698467039398051513744818531421915890179743746990879675242321750204675930783948082941589084920462412027810100622906938703987810157843100811498515819745987459752178653451449240180415950368953588802406840115928711688152705392162402454696518954407260014336717504409701394682633956436174004575091167197379348249044821654912511576409935621189717513926144732720509885246696497630445767004529726764221692523745584877275073849682861095915131782847874750860260070263443018138945760604463445190609071234869638611202027631219034510855009849074479278216665299336360181668058510517384802309439530457001784847282877767541337735115706401838511229394921665076311788320650490568720198522292088334961829430084358754523178808320161353488754438139364621238384079933570461542005989230431209014410101698615566219179352872842575816729367050068085463018356855976774526281419799348196411837560183447701383158360591889889878317078854806047418648695702090199809336330991674981108776791606710717088993907384901012796161414409652987420235210763934220009367625695053586554992630656389324709841556821610267807461446758811252382423123744088831623537847110361211454153418997755769246999616067894522241501565840120651066865180761051885877269431451925429187013997882477347408231558698714499760738645066726692198769721650521936797672293548018446981024463254374725530720436056947172500944793196007035172025446371447621179775620948284743034119770408679085357311107644102011275217966137631574305623253039985898781167994775630630717046434725576276611953235018360008817624780034917667791193235678337397037298045893004583251627096429445250276629828654600780714899695726443662842678083528851134141733263630010205508872908287473258335895544015504272755388106575129876091266462400293232387883979612438199054534204133823231484741059018177289641728648643442697750384578920811133362988974600118888902254911954812975059114159710653869479109291212785712799203510346185175299540168084309498218510275953185243981944861784790416906113607152798177385103082546941612394153746213625037485675242673782957820141706984868579829302189503193884129902801505160548895386607660165882282651046020511302029822763667835847035380964740474734917104698211700204044334414382300706872226128955342163950168550108411127683006677752405395211358994578491902827383161447579745578190637792013938818932186592857584664530276402346111220304608468053272368759320636208491304602851234961950542132436631572834326332963594908022012659348763651689395148081027910005911922545500156309624028348153618273051083318727334233173947439375484256895475576687644033907348150671470805061270138647072378603975497376567658903914702527745882807320395244520284542833704605134339425846309091366920705035549047382475826197915286760073269663502702270143167061126289842891893372726414801124719494397774792735946496608880715157463447083812491786756324854932920661918519985244306789510369823246517554467402223887673928485783928145079361717953965280127506910294746458936285817048229544265944979399428243004733676409640047203717410407297429021010320032249692154879678607094785393504516616111607393133360591584561317289545399990537672832744220037117398616741865158459924914726988697462382169176043054581643920101396514293971865489295422941386400931315972460711963856700052626983955358952644837110582368333076551306248963388773848312866462824555895030961576575085091690910484550859155493256674201487158207415315048612176042038961732985572965073756632511593811846368835795904016918962046233814994013231962043144423706490817353983266659319845966637827270281359250737432121462616448126707256647567358794365508247066717294917329428793663630480119974078122522124904453432531006957862460540291678148832667260193469178994753918032045568044105524382003832892616113609049726883506180335302309649807741002537275100533238505018943210432247493736680294707132386981366430745007387489865018966825401001191636568370079064718841205440583583873756549718282229607049402568558150065640429192250112417558285029639997992996014579711822847336079629502005837732467410111459701690458095185561654085016195211577481096751888090554131928697125858709923058058595485140562791666601993053982467619697939619059998696734297517420247174090635689312758048006769075944394742328503913808439472952802959035232500889093368201119191400517228917866174530751261821454927638012436112368521531503101939953360963583677067553115107447126758689013397765307313845325927272299377315949072178078168274109653427804257849161496150517683482496697646694550563269444556670227314803908665708600265950835071902579621060333897518656215958483080674817749969311617264418888038152753667905470687470623545032518510492861164235218357393005038858510232922970706916300851252078933731929503094836828013880800240453900062917486825499314136094328200779120083970061001510173680524385168818002132575743851036388518929564930081426006756242637595142318376472978628995344424171457901044929491128979262628979451571352530468708824291700715430150609857236118801280021364120274423852021052212272961550302492395144534603386940258535115683776885588332817384393261617742195112661241908177986230115704643124910943423076905296559954090794882523833859643863308159018264123094328214109443648834112560358747033279798491325314784662183582018975566537319593188521960280385604805416954533195458579431730657536300837967777725263872383870431442032139811211171949700426296285854992241650167013465955433393787076243866559699022179561271587064595585875620544222924765498176413510178578389924798596499311340275620252480683855729907425525409291855438100279583243743292682553621378362441911710979036026562774222882178040198246173991420793807717353243911498088863430846524298062651448318434269546354449579137047602468734926113077955277522235865975441143558192123883090364685144013719049153246762437746574789090081177479535281579012655113306946211988634583992413075903734157390714895743641958874399459307594874402546203621246581834994421669836893396949214631038965936763027420834412784168546931903451690021590565921157492027612356077739715495889154865845375268290402968077998818373585075872312220574494578793374796032169001976175375437208495891178687813877816399267726298049313424057749745100432830609934883274479295322962908745585416480172884839478532198201750501255701779510072465578771730199805902045571253248261576901053115095891587438588207552803317625797049963170780073895990949580803626847331854964860882557379360253922321559379299282527395950602905347969490150551474864858371644208401681703709250821555161705990358841789946955106005280942199227890710291671118446508815660382272769617669774643884639263865521416073513877522108604095901668710446801948038308508358180933209618738200350206905172280546748744969741156697076946202137751474194889576450542123902805484621972463172383950321789296188874743179124458032655228139066617054030448131378115488883202848594189090235179485899419434913108215665270496279132705445148870511089281392701147210079508303572178042136052303292192502538688114936791533530990972943848478914342610367724310997426333561814547649966218370187330955425936718455700127282841877196576242993266613943506126541159703052377619813188358266693163051684457190043084105013357846349049332121229242612050654296946476463755923783825304655433033733509531625260780713515967724037829181067082157157996582532574960530858654968480099250584604148662471412571259588027829843573640627678930179331882349766078939446761288803654545048698280747179170462528631797681767252165075348307485415852558533556447018956727576392985699483426602614793786283345910329450962660368046027389551403646310954224897677534674092321883347866331880763997452694927772676345896442499467319642033281701156957059507601841605897723848229730989829920719752418945476089225035525819839699484319844129199906464051741413311200410917845046520826175700731717276926979064274266331952059295018932343265143994439949057886610640005392798449154459982758898519821714730605912834824861573303249763591661312621864248394417703972181124393003673483377714101115711183904134122876978866239493991474271218836798964239439859899189412531089032044436846532105892955054330915509334537457161753257432833230617531292408175916343363114622235284878519779131975034865307450825338492214695009524864237886628488131083543863963128706751445203303826733970462892979446213551697975419299682510240737756828270467033818527950570379005086947347061979125385396696265130346513545618303804088063800428875880295837954841947459264506386833772902025154382726579351240371281511929440363318497280491893299662052361979886467351251899497138040180730995170161495147474487560614917722442784014364296304000029385927501166620089291617072437583115404849667339968429843582176462364820154322554941946769064829904329493089615810870779412728979606681913529444338345711723704455803807364860156054871563916092901162550838430921733094597605224367916226598803031669485604252163638550528485247049657277944446446937728285972797957201563706262511208082660678489538907753203331668099158796564763037765906615454860970721726427299199131307409208069728159709774336744730370710609771689908119745551537866362065190598320971280748564853966013514632602509445276975340499559922296297561428594884638854531741284017044433051436356996841291323307387058630392970152248468384864332746437917276622021225013557444197499276800151419102174645913145383524861147066365602673047256072810775803239611301907437559916383629569390899870728012924177202069983987845816595522205581641466178598189571547084719988513290142859832139812323449341234817208062498720270162967631433133711016760579113497554966205155648586156333929853174850486323209198786843638806167716421224593689855900825524709436071121511934938820549365638297261230690557588402000107544274470748272239692126840891421193491179145702289977356266885269999903941599888916338987188250573210614552969294079687838003662835577327093875037642953143044907864739545433041986463041949345246535520291921721596765573725907785744012935754482188713777890982541410469379882439845077220738936015747967188426542004224629399648590675217397656496824835155014007286578356955888339053232204907860372977866118996445933598007838165344880324262453928011033047000454293248787523809042468678402937243490326833783091684661022847181373435204825445650157563824007306026882306513975419662905699718831554182416480251077877405319449697046422505903595848789299657018479732061277650119341267219379762069272455780790643397494051854273747298372207594158665534515759934962008772756413261848905035681695552485144818152167887462984126035688170327518392471038655202166665672476717660883693914761923942468553905501249752580271698846853261261368207095145198110698679790403610131483842746083142313028903239498950315647030916003018660906323895899090906606578617259906953135390784833623309094071273900297413888886240918101774685705822396319694995794926125268539101834818155531701555654931570752143426631615534388719727302274132366774782885832527941136710612010842234783739984968452120119884024928360161125383076976506354694381943603200231188526785768442590878836365330912169521456013718327767670764397591875257273901224559776666322255398799746464047777331504892978683171849073255225496198094968163526990947063170985980934236919133806614192234254610964709895257098181010597570149933898837191544736926570640176070623960775047795335426649211211736624768349612657008292079676006764224185130782389020126524132690587152427175465885554114963166718432697410340465619827588703744442125838380087651981398412249365945908764379039413564153168739487368549031635027501266926145163676169394512031382597806184586906785917834526366176054748209432562843987698329144003847755672034405468291168311471945731155384531896035582060277419438257727480668485857268535501392985406080111088211472329709421159840122756267701820671073672498906615710257609808638987924321589471944096449096280049452530044593100661358738387786223200199166881774766666585077501251461422192579000004138804133090900008923451138366698515669009637554177116701426127119663969449317657395773619013189073699021289648486325924711235639409868497663354037558271437468219836334978189959432654845093701401080452342263082160304919102473037397757247261528981405930336520755732391495748006714914258416522105390496250460851781427637957829567823465983507473394365590357657436000810002381093765186058893475404715148254841648093095307987506284642060656195953794942681820050040634721883991437244872921386068155233784644836590632974012115670800247979922327927522529651377586933498763870144668861995805436969475099672946119479009522036000210165985993318329715957161412299338124084255396528581751002031825536468733486745630185049990014204872874769029133846617923245321626057727838420636896761923932585102026142668541185490813939780398972444165400622175485529548854883727832046210945916344538464112542684099429551013483886045478233251433332819003321881501677085188341313753926833507333292381876259382858574725673690595361414518788533128910084799429563209683382113147021916758612230314827925133180238695846390366455288750782068405680763227669229884999346991003773231912034316843030728995625274548810676773670541922016355188651799543710300408251203936747083410971033656413234527026927611477572649627109051844914234664014134477104746778452743415873502159549285346749397561070277812237406079809578608270730685701979429920320139534459323341538834325781885382506876583597240842343931726872335583101705729587231529536266834578042558180591917129484905408608431830165589807669817879016625568116866546271654871172280987400770228573453229650093672728399232773899030027089611235502676876039599761210518124573016137186062194310215225394588453978019997919249224905932842637635358853121656433680187990428783472980046451869121833056423939750992378703793494982146232866355029670187905114223791980529081714035159135412071100345089416001247851632852652989300306353539193093804938041183100004249017181341125850022421257770282453036012044883000705414104211933144681931277755784833740912633835639075835780624984224800714107967170213575589507955627911101164175257656715410023983457491726963627665952953884423670427630394431434103567233221387679287356324755764159427578847613701085094693743229830775847996228390445661626486723851434643812459147396852328432585609531563662085284868767550238299451713358165611374879679717394231523663018951719243618826828437005198249947769961743577723678607453083497144489041655933017803359446169534111794983770656102038372863155016503977726332532410047287059328422638260636628795007432161967730326778062493025792629633910728325191262046864025782735358993884994080603651134902775537403872723452411632357844388971219964478660697559307753510361901213199543487618485689328292257191678179724150350114370833948301897162477083381691516344221528568416371659577530805220619137265518210110004908153724067930912461062367318848990925095832735261917249197219433949578173169677744326794050588881758143236990496435776264725516930845791909824346703121845431624376093879694234194025810713168591812405282133152805580961054169714036286191554291780835597072663269514519915130664070340668574759213149519752986297804188705968403745525115578196946116827209436626949656483952705902702451182345878827733611967152179434835040829066237406988514398281766888470907769590782011859863205716840341999153376442474775916546698727888796785396544217767052025342792555321688733422921323122605664337350278441381600898960597071616331887382673600781740237842826932252733436551763741830907737144986145682121930433038837288375930402772970245222520806775229769561878437645747600529720169917375444095848858063426961731899977372208682091240934082307565534687417451900884527303525441587029984530718062398030797783211234282897459988544073638703011910265027360379913551595414170224245703950618665772516587513994983211471800627191149420494466355126163335362241250188972538967557757487258571106645449417912746844612782059378732630040738967767355315158749186815369785317512300605491534921756361170968564118137827092531188207166837051339718273872027570995327320957792165645126001085593162134130304199305333529803948596736348579418535923842450392691470796214897765091166364316343322530562186518203850481041960698721810600832848351892251476224902714507838889217836285737180291213041935062239541738447588699182775377153091490269520396487171909311677668261673974924921886418628357234325238371445866669650799194633031832020912213520409667813495508511285947469145332486530769321398252110290902956200577477967750363972109377899265862075011889079782125495596602489805292153874727852059337936478818023276587412276914108342500953810531492093858895601117175534497400570805026107002093835103305607074080948964454834692172209980166441347101388659954028947454606319498568145768865458541119479943460574608492267590941255409022175793353538223608822214431837905290483721252623038556629616212975896484308636007188599373302706210195782820417422101258799107837228426776847113397901152665889765505501495836181349173171457624141648602498538392071713714981930212594047009679778788330215190906563505014438964293052629946267001815246020609327602194546070386648266930658090869032571677433713013230098067796628660455046262853751333578494887575671247629169161398246124388504925039727857010719578533285019416427083975217362389719767922893472566667384513336808647108743767206447355297416775254382844512988053227138098052772668098927190497313396806620502376173573612186641970052033758542463568884731418144116780469881469924648870931809383695271056162303485571634430940879073952562098817911867659224872424301882525550753089938577199174832687618068776832157662448215923740585976479371433815299021790287635068416040150507809339895913327881293741800231891176578596819810875244032989756750124697005801135172369506940667689325872317730683576215836807784443772106779071474434487144547051939490682934288608246726122051889289893667176434568666430646537065086739534746921143999802636242781612845982180614540284544199345569598680810882451360006833746279072658973444437508285899720580535847560113142489911401465104740705861368804539606212736494493603027136267828760475833176595686310013791953654811419743626317330679019743808926599909121110836584090114256212112152661635109741204746985279741377609657640648847886916915456225050043662716238015437043934448291325911491737859209909555768390729129591232101708847608266676828236645650122136743100281310043733284831602825164098205559299671374984091800230984897430736080042155517482281690857573542689141810193223572077926451804530077585142119874655611099773743340036325223291976909439398399512977321914337289554922781419339155230290233810779393811558200381960226304529898472136536865262586406397006424054787768458978619247460542969938807243511475154405399520200670755075783164205438352677409293342456785014882728544743283077253825357933534882394514663051865120291760949023681607208785015205941826553544117912212975057871363236412836348907431575992996863968969561666787410653471340753462423396127229439494076173682011532812946047346457629566703578065562417702683641530111585700010809131629025151289273858418978797889559098863039746639281458002667926564256319308824547701589506218459576577350117076307170640617657567165680437545111601582529655415601079588417113715395483868643828187275736769306950597317547453421288804392877671660210318091216132533463051880926561763742477820945475861891048436456343538672688907642979683329896410511035868426949148090649158996539234767598573148812317487878615626127485342197549172485793006895937429220561293125962171439039988002054815359186806042156421280647773939677574380347681593751267443477122129512486218784130477349024039062391457518244071655516905613428108849839078251317551674906184177665084847818717544537795198484962336002380842968129766641905135076218303351454793825239547984918871807320644968559260551123647485047352961615306629740413574630767203516967923706368942162179694513610583561523567685503568505197825000511228776136048248368582193542286196156203587169101840787437155511590431832285419310963927877175140816536612492073815152017795597360348397063167153906860898148795028400865959569409557661005063337274114747157074477697581643657384225503001256018015670727579907751469330942712213838794210002698302812086929371729316040594296456732137093272588077310577499639687969115685270176957199993140623866425603907144572788735741838244697267051420335967434955295931942349531087355718455210902964790190909034883953583823067512447871125526407849820697801617282330158665467750606910522692517240376818600579462404313450013127763976044317039380586063408788127724889942762384148416515644229434564049597101084088476905941984197314644940006088787083312347004969757943312988823572484237261124899032808341671793737980843887972834425236857995579276853153346312575908009608714030296100863143325461100039584344666928191227933457882569789071799417134747874129236370974676267844278321166769118481501895707375335767234343684196505931758862572773615013366768217163166466238481981903347816667831420185705610936272523959334983192819232294659857752483671623491030338959487216818047239951307199247310874273678824165340248437011047463684439253291760762251048724726682990878220352522340119218965665982174228596816701785832394282244892071150840542106975298800224098869270159700639121890976889961904550762708528799356953634370651612019572000389128766447113995115734287664345282154317783278183836812035060130875141466856068843794909019386286626596152631834694289925689796373008392202292481016009578460058633291484898487149575974305837324200188445372039440278273661940422978905170526581175523018356009243310577688312546318206862913181009351237745794162668937158333038796675044132925421090396432363121186665694528442262287547424280867154676385548845579625945848128677033891040244956802294621554880158275651254404791528066399176602446368074725734322682678672253342522425611324740725659103207528882251007435936231196856629390554980873611080720433782256781763264452525135687422758355263908808733939685552995292460853002289140773646890856211717229454095545733571275537348486373100417818923571240367984309509083125732590801838508366946530677860861920124380894995021634076111061993825730787521753013409356272937253900473316779867033683343601039045066780168259960237775878421965054764636501204795497886230075380445504881192093918323045874300660561631666994030833207239455662055265330558179074688322552773750587789993114473199820144580477048249015646604495619715051903387350107665339136029491232141945855087740930294239334759096257507147961629725153628473651724651659714125703752062789041604706100695874882843654159592416655618141318593543329012900901637934299115201058009041786541183238394240197723298904866359411095885672798460726642687093312217905991100809593067910527650646884199418524899802070748610675265951582249499078342103663262468200606478670099647869086889055211574096240256314929185828566906194352547229661341765250987220941534689445346363709393440695942977140995911001803901517906602597804215745712466475529288867807169664327351565475272281902967379182613301871278444760488961256493299072149573840213494024630590600208938017870946604956761411163303525345997068856651499581610748088342756179785412375217414157667006902605318811221421831072554234867374915015721749985405960277929930640585380026243951331949346797687193818809060919502953066312811433957473817094899222048350567694594715080331665105965198821454855086852853221122524136740541634917595199953100803515304238990368059100168522296096518852346827563471767992782775830511557466626635550238240079925652018665691034280227674255654215166060180487076307299240733712329546664004011764186422584314516000461164305576856841318643603949069176973014756776658994184271765223304762375957153297589647407318561349173802828303441604359087521097892964729839972401409820623671456499804425242485491131337978366075969180948927863324979730530384952579323728826237437171651161173428399166789935412312374586332906200579281794108097787353318131615844486590866959886827356452779940106375127051710393241778467750709595400767961358684863443128605654582365542106436113391730070602195425586693331883349785635956575142510582986203882707223956659285684900474708130657208545881468397097503876963380262623265950868059370293740573684368953024807151009739920197601042733424814813610680660000632721513150719958760818765082084061282990504469617793841545331046850047836043371539545921315166910585622080656605094500596178756554117810127209631700059189745808849131667571555136834323638432299432998642236767410718543095596519302674923001348169132227191107842298029692287334108880462929133144644304918748806847583620826647481553973681922218335642079891153269896731593092167108138062020204787558640561501177048365254686177484091822397832077100438025206043960843921238799157928793135525213465889587278477098262822964843804913532484608026789086712536295809598427168767538745636451503277020927017896806253845448767643841566523781782550959986674894393948255255372744862624477124505676761869201060931801319490695820725940661492848615599814242163240637313509401663122761615051397778372422792729515676802611679902936925374540269555831618947578214461124715731772457406901518525683345008470791574676550902647640733700349164715667495835594232023534798405327995571728003959351026808878043456622625468242591884154664867924906515943202752728248505703205139890567633595025866397237114312625308119944296989185436602060947326957438642488100176366641034663974320759962622193892336107815582840500252169862058714698173116322261945862011272335401004520884548493958064267383139933606494846876377448737760759096156530545544399981768590111752765757415545431318366691389832175443267796568920299563075808517235224932663500928147980245942026884916096557046390838232300629961442730454927869501794468719310616476401926364264888841206503232269157693253780989249424287010524358893523586924457511882109670028657490528166605985465369147408390195762197332082940728854732522412964395113493683685077100198119857730725864777056843791124317665397397671826233962057957902152183674424476203869062575184268059141312171936300379753402016248210688248994868260721714496507187462683762264289071420016604893135643385156596637811001743094844657383182507746619010364645555351082416930060872899902690643668646021122140998846279596117671644113908247287269523484286699156901070758754431227176005732759163135509766344998493885436113508822195237308579098937595550945727122162511775867202713456741897718732895051804046036349382792716902366118960196498031612384184630557891094602589115875956661738103578779130734507871195430221800173416955422271810843472996184852565728480948267926297880409853560769104916129221429891328873943718186964882870536359090040924648443900678706470455867478302153645558882868305041398978106764413445984535156405008002380309562031703567581915453290846653339811373167064600192994315495683718635353605834253908785880054883700692258945966988665360674143672578051602628442082703810377234661585341402573535223887456349845352983963884022863196134074994290303757973410627311956352594301969271521910399831481888615389420571547949438468761153765050478755376547249854271268435649371457678870893153577944701027393480948721556596233261655785915742474641906121427617568524455412478897326417140198570213128331512569149168986588206529357895676681377085188371343540743540945089446903752700900143824769068142618467392513375098100963671232230378174788873753501135150452284009113208080614153420268940807191602177707989496971368742368418603645519303012062035693882425792333367691738602148129597849977526865547874751739991418111184742759166725150811804108090673496661755838320371749479046807828709828470045316893086217658293614251183052611756406943683770870350295094478154597240623305425037862358856464399277639256317263778882671750990634027342323096648648861444313656800700673073908219002642068503133494216269994518068084768242179193502917818671565870674970049627781794586996978394960303551470953099370801431781043481415347770150257444881592277638064485989824675499392545084167826926285312207335935117423279321381954576170506976317192577928772093698423080483782157930458638383859881266720042869354758357057939344306138553066102271783652975405696268779476700263351228336579557137456363644905970197845557381263504801575493800747660337923133594019570046083649334246016747959454972743700702582356108785998500133284286777178744356811612686811903458667836478229876476824811284406505130292653297089723214316411366565353100800312159924660882079843703144913107361313123965089885601876130339688914247556848432240651194788540084052164038347887907757739150379054680428040812808170553751361184175409819680872753412945527280544535358531365832668918105904099765128563866113315186377556391331703786049081490147975428611865389514770614873676656647937216503632951704599411491168000733628039830968687725288744793074566842368619548276984690698159531135340172357371299683717298602860738293187280404251645868692241798323684646036760407030871038696177669578292288341353089982437757661675310281131093596879429345791345464120650677773960081914142722228505326216382657227284953445833951823742113848218160226043526118719502588431650306424535840216169174224228434412993811872379243729279146318489826388219917987133246697796166686338846107267224558782512552797698050870287178547724266504759305806705217663700860705300318048948739009007839618891043193297734404805771069507021582738341629598966662163700153372790582494935193934701344928010525136778857760527465819103110887469074151541093200214629936340585008439730995976172858385146494662815590158398750252337320952262100608173199304036994103024209162179565721253642144896914538777649472794095544058391311918977733586225912268904336897898263357261982721758077743163741663280914710760237870719037714158980653771825843136898541350625799203756608000985032097364107819319897674299818765967449155550523273928744678750675387224867131869785662441849690341360080368045598150611828806522610670994773584298963426827911320459284427553868378265382142360278084996347708822474733932461331263385385913877953295845575647612136845907884778334621064830440120265129876603174793186247561183933436169253095000218252683021122093884068663188810596557403983542097102969850179953017808968756866463287174052586935596116124547325631708238269691740471106289419185420520184276378755745221054648177478863362069542464683241386073236136426173977467354097170670045962114640466176924448116410227636763408702964776414619516975053810427050355686041168311030335704579228875929596917142208009632878290541533743828315395046689092302120674077055436407161482949244728582253848219225362812133383823429464845726291694730041116146750432050297707210067017933565880802887428194106288449644648233138549528658090749089719405227558150940425627714980355084341758623321242751085980967225547556795790088657626287503864353029494690216506055232973293577914611607338047836736210394297187745746052390309180820707480750352206257439825681217881600624843878243944852984363408348517685223884211172084802087062958059984025255925437047085653531625733930395993251174008925717337357659316478055361535958087782828745108568527540824160888621216980805184340430633531323040145751830018193714844562981232769876462937686644522461704104510203310911966790003219092219838547074871162080758535297046125093811999708795353515532338949265856039775515234123220606927250441428233865136398705519214831748017666077632029288148775186658201561760244156910179198174111226153595254308269765464987210686408075243786001512097119895749244093051148945682920082591250047366706725713120718060931179476132247095824961195962694093823264753596784444739823045979840288215577645038432772348089637425209352981646998325826509989417276991623321699387532179930906750830639409936271767947618206279247449180604069173398341771919372861100153379093095498519373240883883845362564684963468469798720387536051173251102464556857482620069900929881927670951985856789286716063572355250669559828154797893057145907424100496255630218959716644868443709060866341989064694389251752531598109826597854625316526193808910534870517150400467358203549902265536057363411067980581015702366211992499252446638433297875577686709860747770828188815539915703805409297457509978888700987580103913661090262281572669972314884182608584864537068635039402063469146682371045510764242670972196924864784678342610219387375217167935750143307717176982250414010627320868798372725225576684419620047882997027143411555131969655904134855107405492707023095296725246929959889899681902418251915321567451925633594801305634611681364894336112425159704136528558763964061228483931317950220100658765542383072915891845330907234605349942095635383029090107288668053263071614523262824401253316446350849947409328250061924035829754592662976146210314263981484802958331514224731460174973218078606167709779060635192870639653437109184338041078449033821017921878652698025857526834369555790733180469257322534465744217976710034855330585336482979496407043145260449025253958643049026576524206380556233462874725346560403552765708819578732451339669921321093518857583463144401041459359911914178356688153003376464665343247249692218090478454902700189312957378200460032072238346297457753747266446677185722644296155114092876531045728420236302031306951091551439883292529699306956240634120025189130141484312510268503590751757355007576197525937945779042936979896235406865055998548259463042759556009556527384782279963410648692576585773567559954237239214012622574466016645213062109026745770781261018462308064070580184267325877609411628403069764202125382348212748526076016908531590562653065520291221963223890113749890848436897425225452150570501450870135021208366650264120963617935835614964165517176468942238463206978352250377976899172510071301540378152165332855171430939590790263792403261576349576039616287308225128934922197953708589461144016966344840168820990321015557135651166564328972107861113247012752949657829135330730305470794858079036486390749847400056963786993548715294859663483654872848564078230261948833609308258042485312461703062059304674192174189579189535630248623469486365220556521089504132229263661224402179089565384460532647558810265216727290038401969996856104073473317249937298760010256088215982173829170152346148664366158692157988828911378353468404674138572512123842059103461679515151346977639084180809217586341543914568722496902091064910601185442386187217605049108983900819364460764284299133074297272283596642062521136541394431671946763829313871068490585274756650107879502498405150090311758467639677159890233124448576579535739606448072792525735453235169308788628637530947732147871690570459316968050390674481685376254972834136988220489548411789895427377856380357250674373138924179444723129334215272502593269205538992696772491512262763150639323393604508125524483866696408945892357919751282747967287813721346024355323753614043424775852961118558469411924827921870980199900075416696781624802973288886557869962969121628344542828293041011211696838754069132872275735454267842736904897494110411735637121508128620670049118974350641999752335068100801131595778225316612450576718174253475166168722549050620397634807659686302257184052850419055485654182635681582577010334965701006524198555024215194277478148478943996926513374509844447631542971998650774403958399626136601990137074210096157048231341761997114021290846121467084728447962459013552086544662584955894639064188107728617400001853208948148788948767743246334065579379539333525412402978265398159075079497316160057468714892712016240774710994800484987485437469959892708349911912226173821821712358105209395824767233638488757319091361199962806625361264204190849764883171043802865095641782633301234174293104392066306528523641729617492689053818446803474332475063248983641503928213719617039993474598703172013607440921453038206151586257472520934826670142457508107840667297099948207847905264421594382792365658702047204281037519620223520326045830974089825298089539976407357168353673558629599139247612226300639131272588854792970426335865195103869602131856853253950047141347878038705027704700749000118687120044101250801608716903109438370440108415087653425503235380454589625703586516240424226355906204635542197186904037205390882201040176917610798600714173201140239164887550991334856394730760555537746273796058147724582468530655444449764304031904425082824259456127890432692624070527606851042360086445798489975491015322800452350062954008213480651452439418187055371318972177133029467633896075855901469052972681819575788703790747277175402080086225364381590082554973398032772987031129467842506132518812203785154818889511098896002503523742565011918774610328199735915506731922422036735606641135121998682507032486566041146574915106831306138399136187782443850667134189375513075962058455020595537085585385620422825188393552387416051482624366770767011885894628885099134285221718582773467059615855378166867536129678491400123197241683731040145240174593352430437375056032554175481574360330729892838232930803235476766411764500207293569661452189944331259678478542183508079926807958340084836554881142854839308972804611554978793997616008807202662833562425935827600971279927609727151044833427864072405631500372759021084682344725440696009640472926036603741022477496172656894887472652739913918472999716385171845761076677875718405483161183089358848580878998730262874022620023367058295629356041613501191046599995041144900554025271714772859760405374332785992909662657576073393270651679683531692578869071632053775380290033535107448481345161738840493677492538712088261084782713131619677872837394650380353685368394552240076182647735559096752944368934717676577269863313543874578014482367048544507616970871257617343023532701315486639851187744759628919048577753925506301193358440122445069614404120604042960802046030572139632674601511280211655276829553766553727116090641735473960257316519360688384768359282304092249810620942547916967700036806482147419225983056073577906225796070809700919122827201451948065489151288746896560918247245661168172800700644760636013638620050439281182871034239342662983218238349438014610053293901945002349965756504075169255829484029108014384155617041782245995373499031422756309097722374674993579684169051922092364196225248295474351621826916668944202456191108252019905869362661098631477988849629631550128261443534369484327693565148006954558941681683269050667541719446452093962466712852531944622242368592669549662577608010604343726248551956994632934273560296593038292775147682932539257624052728765163498846926639460986531014329486951547784447119569789241500137866602162088101614063349992004986442607012257130389693552413296542129667773713779051192837970848444829990012574679309431217843326847776941616907563415478414945738173613383192995551330536049125406260140180613628479106182741229395037042423538639228807193375182113747088468475621717723450909979041665131807948704592090942375786519542303769973332323142646606276192280081891001806519444058024135962806604203645304809910173657134348176953088350677431654620792803443884059230061949284828342940524694891615986951908065323303289855623149922595580445409686254230675997057845695469454268088019121864749888054986999734956752001446553315336216335819970971498703759847469246129302156582132618370951251834779561257642928140058977008575870391330949535566839692142592621993250074159320959146578220595045877171708998656219810249939270100742196097590030506755689810797784231107917666926496625493479109432399551305917112642112169757635946045378507833075252452969071680476334437975421356598533745387892997327061945775134854723877535491005870141006420941032144716240333614521783989509244548324936452855766699148494066538439435957448896596821006159377774344167519146096465378645968193063089212714727749193357377829780031476539214604761125972658849151742523312209742352321312115904456832233220433801577161206669373663276241528190080817956052605832986405777627671672691526710519503979760993941584925756924717917644458915665545902611110853709777138185900203321742383922940414544355131547117244203210672387879969639062170262879421064358548303483542183016400047766946724418487141011464609062566277445015627541110402158950365034530511140972037159089866608041183625893790321202653624575378930081127813854841900374235539086295699680949147806872108826244586439179032750420114712185063364443206644664877383037833121986836290395775940666344153062323764817238532928249135170173300272405318190006652100941782984350650687387788072721407347160103564063368912145862741390420317996394610268317001703275657051733569765954008563381525588333048293564300189323194678759294825155405886720601224878411755279376900087759595801233602487632955633839100270292760079970621437691185691416207392972139014024365781163702119914672651435788721701668745999218451929697242946210628805841605747318726985833617848666706183521576681346851345536340225662380887020645539580923416333754779908745942202372693906543099141943627063376682905680079562212212003181914830864771300643147900904564981706928386618573967270131848678373221755202348775792765126802791031999182870353876689822579480181973610107963034111199908016521383907565403041820443705660306903987678539306093905250055376759324057052922199110476876138622411400894083436037286519619806720409827962374582236936528702907893028617959316579031473833561912214628567264341606892334381328021639436818432852792355743549978633373150431738749778546814280791432628240420572120556014218427059667964599358874361454860235736256827897039336121086400466439865050131191166960351870741131377376960841681805560415728862713209471311963230958795781130737333836277861473691694571371347594001011901234887366934443185735580103350587396562227039391240968880473739697033243795078253693721691141874053737828981270759446400870522110771812754482714986688997196682769533822640784099602287890224511340673478591390360879878062082698565051271245226029771384345247647739735496268898595830547142285119010783612462141130342509085140449760631892971879624091110366283700008139535918678835127598509939122603755473169113214144740592721786286428341091981140272030170297424813014466290399889874425898918127937188273304188163482262428558315864354117182936616188878727354717515813575179954732461037251193944050338462696735885889441248131924216371306584080780349090186777834304609394671233899083943950855247158481108469444495542630982220601912470345651975474435159754615434062837394764842360377430435701824027105470143100720208007436620050512368405476781755947384969265800295433675766174887282572773733492464948372798942056916695287366212976633593767739123480970863525256971880014655355062669340904829478493010986815665151794356621477804339623497300236583183882106925075619673296487441911258807052325148760265890358805064772448691430177051868228865086450509282003629014372923183778725572054134440000887887536679938960878917459498662703965029457791647569243323600091604435169399722927270441355435818991849003823818942607733544183564161141375513933325624587881724890764299625093231236062941149808803056707468697518035729205145788276177908248347318727424236425464032568400685132641057732058547274330598916892874529709181218097731639110961689292321385698767687361098710929287764685376594814070531158344378148018452351656231567101927913283190550892604052093380916035365524644636879568208497659007074130163059706462746441341702875909569834570412927883614537418648682984050479120932713574050721319192669575458736214643766275113506020824794213721148131494287124424094552512855582792871930290196363986353726394861620767006645357938291420529950150275130820800859100463196093696408818479113617938775657713482181078664098164016119575971420379619475607800128181233654284371048031774708750640294284512577493216770178593325685236275674453460760558518491181858062572286938585120295785857028815782552423746682360831012601710369185307963290607818083620874400108295879304233832554138002918778205723376820724456154020527886257138999135026513085803090832322779705384625919599566593327077908054824709848662080193304304206792051653833909284301652207464905471355550720285806106430909776772133063958682599144637957274918645622214528743472082616855247568018480427767813695926759022320894211828036167511942868989299275393702284854949195709204335562281188661598943655016671839849878675422841900111003873869255296053445317815953326191785040550982605428234503013750259753983866439944824750541916255018437730063211682981671055735602577578526631211436770203594418363917604345842171247101956679780316899115319928125996107775985564279027431866439187454611868827903579992081649414155022042191280461455008092322843176766409918255562074617217191680713645606397137885107463161484457606743384521685245645755138025764083232195845732552214456347506077315722269009116295221488712600200225803205684655767940616875655889459235580089771830046343458830492222866502458530167074886395316934940919452896646900435861657373792585638854652528387730906004483699125016799240741205716210179835146871766793888292141814610346480911698395867442518527462337205255301854908917452923609314288299222198273681456942954797187214918831276188740794119601756877871429751999801011827849171560914957015175870861318717852214497766293253130169007045654578466355857584012928361432139513075534609519970739409443524986018443262052921135725882221290775687721420090786369956430774349644405440061546116499033573228921870845225310760041053058793209070325415254761050184394837739978268358138357866311252171451034706014493803359812224726736607578604106830631600473974735973064995454547422577219523741991306288926263626965921967196681376187473045212885955562941699594340199037198653796531366248719028002460316043268845050339854641141934106211859785521330231357362425846287273475417175156976075066461168647123343704774586597428152869994787230031363321470654306613104575127963529858652693513448288619457694554759485647974874701864691657383791714269889049791156230793839656391893449859103310884007021635856373023841272848696140976759445505014629966484657068948146764172920878333316899950258927439050686725357313908998031412477963300954781076068661858055220765925222571799164185962031648726941391943890173101633812681010695668707120759839722072388307236566781923534455595795868518551406819717048494733605720402380489994220977296016064197005131742482225190942078558001281940610957383337629324248818985664074156855762738652075097784515183954278593747577647730287928099622517916393722601686873828789846079892786074795009903930608832601091182643557119058753291259378968340853238332618452531249755744042656483821312875002957838794041394615002799972783806996679479242870713182297371130231593699215733835634395757505879727885445195228576274963863696516801702567865488541551364882752926281840857633668828238929344713064453332168560484966243663749980195922329177960866700322818025000568485502656335941611020910259299135390543754511544295577367890288512799810145243361563695488284527180741599899965008449436592418976344690674316991016999778004947590228071255872741537252670814655234848945890769685294899470215178336586849022085978875945546018963703652786836705571645121090919213931410328109468595919271779933394053176065630551452505942101291424539742861084048371186014057468588191087877558217390606444298017988976633770308485721965537732737408219130798997477399852582123471960757490972556301770118418028678180030022592805001719379141880024701902961808623699759847990811715240434307457293217108938403744533996912706071241591160095095131190342814574657618352793514855225730496335335075417920464790747675366575041242519967392047456838436838518933595128764028438927871925424740004978192671633841141397762290785372417320370788685790780990906916228602540508947082787993154325590552039989414322044317132989240880726116849381856384649565074779105573443600012757473802008263754485211040828155825918474921971825419029569360578746467089916539370486307487765545962976218259894940358184716748032449349793820115843614804775857980332336470784986930819839849786521675540235234152797940410760466354628362370086916334967677574291132213977589662709702408053317153732931745176247769522614275561046552229213033422429116298625038240200507455138919924916566730261593777971534779491559733334551121904588523537105357866476276819364445047603766344325909812744217382828627487640600688783090481483516894397223094054893028325632014852224055067889888923816151351702452146215126421340004161554783300224244009916946377604359331881031316472692689028233920197819075895881529803074626171796643617108161510322101100323416787187331802404166653397815985306455807432982838119349088022521711013148384236976049134912952689943615605036307096891911494430458051995203106334549590556087198995070561255898018673430892265359992601481650260359976146689592640874977272166684684223109012215032848901444452011802423803130760712213762796246204482816772535814391441441509678666510622952575264893209526647634027856779301279778258533302159894259406146877830295641518214848656331948743732033565437346721159094048109845220444067581716754863126686202023341648634357582408469850262854419554420016312771865131266251758415060084367700980336304252923777703637118876077063014473216432485372850006442960240144766593995631233306657630087283112866615450001113079481323316457990044708499813642549175516323577683551588654623197913116948123168545550163959845012067820059743729364558640988760196639547881662107215549068189795132319218636531700538999293359571180145741002615477623525986885985577449058624715370983738761786547611088203249118999257650939479118830189539881869021488713176992030540572407104484527700696042160166622093782210803375546252353346097926358583746435302256839487752731601199668427627039162431999184669204477257150989635709470457620972835108784559997561734526912043502861850307347755009645126318510242206027161886113544523908893642287935487532003803102053178875577407269280672135619383709302433424537602765259728839427441548539689419191238073641713956533598001095607579958353094132027864392724876186017587482418138165371704034859870129937133300620065385996336364691836531331032627017343407542596850164352286692748721345205812745477684696217158446213264303072213010862654604733866586914417188875153001987654996006486103480622766933992028021777833305219961734587820077690871330265205502777613553749508235673557806556519169185928401407435172215348876209959687410160198822287541027809222131888938443054867882577511699712552133620937353228820262205497787255925887959347636356017032224361833166330415341107406410046771831738596389050581479048224839509929986063649044283707420767465060509574846167688902988997983846151457094312356983300035970780675084636301401540750307735580735862980803632422058149283125571795588448110205870809424062863437975827320788425634053830687642398232297182195157579093928931102092614408214236706299126741961276406277215923906351321885139880194211184778109201206822916777683214396562444636770249218511888186053355279708858832991375202571724157385245672052882205549258425589449394696954899863518273982753077462347549450395392382220354749819782073358091313090666372280406246323208028877346954207834114860471541052705129161789837512464588028691995052164554920908263257902172506021804947346543622908596542172152590622022501780124804852328632489588016658163091301878076855363963805671994344657338969666146507934294814657933923644556461262911482093770808927556227892383011520822626322262183082077472696482990966209569841530394503367109924364234793600161545698661949626348492828334073475183818097029876407301511822447812507010449110679028190892232365521938663737352877343041396740181503344430042132763501184888629858238167991509402934877488232474358919945295011105016868381825729619349373737568409639050681068067038542104587620494661182323849666348226057401271349027403279803669518991731084964291990063623827985955973388671759937933238237465634523706711086806968672548535989063611440406208312577171897509543189634132559144992879286222042795309852394245793299851812633179510022715537602849735981692354752191016283513342607124605575188783589660896450714319286546075311069601109963099381402249346325240539254582485515686423224818834400378310773626745068219886625198246219032046986793775309099506997402308787468645853097684068592899011909195157222652858592105438830544670641216566221824282759422717790056697460141587189305500432411726421070836171266369607656612661678610386039258582131293632457323407411779234881390393333249091522109510883392754407436777503554111638069277563731372756359054011311921301994460149100509984359877049217796355922354106797164423830370672434902531222071173177811322819529737439099248784438372060842327381932128592755658674035151422294760232952111965362719563671238884172911664110052817018559081076857447531741873783086328736715310990997750196255511756085406862371922507906407697023091400758632633973666228195000288050415017272142105566755632294497804741762552211792875729059141944786747750251498835638772793446747646861336134904167766271137880847103286645522435408353559884019473140091326973675100719087378588260664000952655005311733317549840980709914158814266819432641101993704630417633160544160322713882079016877169545875778571172047769190513586549720729686053338350064578908317524056787820961989617881258935768950498252926508027226339378215507401442616881990323364986778179582020141929343276334411259405623838567366052080137691458219057196833864489482558183570458992658077256818540352564636660332313283445552877153852458464794440539326948332265770414093292711174029805062722715769790735833412282045220324995397953542940674088676346370626208943654039063378123933923744695380999808596418804181337701014998284874274794837534108037675493517170995931995148701540046859403266717354308235204218746085940386732696167517790412170355008767096943275106230762382597870014531036715216672821065881010384473113181858299703457770009823575505610129275802419356995802094456963955477578153566570351026552163770162764696423996529512078808990411385734834411368762633496304996663295949673913997954229999972307784335893889850500911127590966780862946625819778274731474121770223598304018782338199674949225270792281456879625475263934652802768706585059472285283870989312214692565982072613978978202339868494163199773302013364979562058148919565395563111656464287216277609330642944283149356300903967853714517202336148356352709627871866043473272050029055732567052550290694056357552553521692794434502175908926689090372791578894547844396833613614845501825188340040270570540990151698500085171266015822988319419985367355748110016335024629625158515281808619461677105675104343428417350721735449891396431040568405426230810373858183781453026169207154279366518389542001939846456168172405922474625601892145288318843992341079373499593327302817152381515153610383100617951533037025053268241655300859278175290188942070837508543604546145136827557024324331146904303102809525446912881997342654286538866569012296429334751067692799226023289744456049483748227995810203619341051963872856437796780732255918260345255021376269515402659094065423885321685465196566256423746343055385016885540953196279487809669750685604809416507122765594625484192446731048207268457975908668878103181927969499506389183273295374771300936645714482589595845467946118658384915490498654207869278610016650070141188763367139705528847653604708106200020930688095499522793236553051488206691511790500724125151162456127737229426071875346228972665710694170500864568261743518343231741074707244369776332501572235426142853271204770198900674745831419873384533643292749014459313744771317382516439970037914740065774622867928417559141266212061395860559001433537140522975206852441323430653253617989907950547212617126845032225618218024256278670076908786062116632552436875530929705826690961446596120091745570651565168648438047043464613439673590665361518122274600652326782026676271209470182896576459224464216982019055401866945866288800104889439472352440659174818655757984422654455284556075977662459790154324544358734333670662191088741096874111387734996662026401111073959112878278888290733156246956554887039703352502239856775215084135492311498169109399997321242900234201703788510830921783027916753852192163253270257141626047121036467919014218122711056039990909444785807973062090825567050926169084834023546191467767833069457024613985344293473833427714429153961122210028156168078097529370713188187580090755299682154067594320451133139051324206601050484422727798647052369847107662040532737390361009526282781860354005700713203080186403981681414795113688538017589438184120511131123571195804536151742041365988578871813437541250465204464162409422322716744938350332589523552841633145375117567277677289648250934505134427472069342907757717686538102919225926309900574780832895678480759673835827134958703767942231264423384995271366183270725470275082949448238407395963923186578510195121077971962489785558607076608680518038772975858712682873343092354101534015129352080353859791226770779734337314993316749628167163616115454049473644128111328151750270961321545376458492919163792734403800249558008578709706721525089197116781415303881659443231750593246533854729077395675727529389354432471152309948862537961440500635508895981607325465636755502640963812290396389337652357058222318362668454897040054575706236174522776502283821716720506758110495801150078414139214875226578706168821742760732523202195006311626400599076970869895796394031553534982424058256536993326941942317476255256071745286491635267310061295876546595880110388431808917124277370360315921023678973482722621284677620988462138130200740667115544957240163574125740881381963595848603100076775865590684728854907788233789423593215823187180152741569441455457432857990282953068977438074791704076965248873859202660111454712338289884534983982368862503630250811229606490453175493825773079544227388622532723910053626325044959167229873060853360823616474879802954369970490030829114615086866216844430119187501896885280803148479441009033972574731295027757039420312338897755955361128222681189153248388696021890672100304133041349631176060025307956632876415342079800836737665668954458203489602084099083720984744752702166675656270645962918577872101085196796402014220607306882276246940689443062896519198026161416082776179715472557050399603361303218351139243892610768125400946539861288718338167871771924987634952288279558015845072427576259840342509443423054431099153163732678272945676362763573028367269215185218665047614477058738558942164156795380910641240959767012591488712155686153181637337989783346320474132266185301049500242028925628908917498693074306310768386233572426130566827372754956594849849982894855239920383977836222289036653371851040471837469366556995986835963739879208597684572148537450081298218828804263937150611783344460093240231262575878186440749855561897991318818916626617757044121273379207007832234477930767836141817306673261182674298219104820970190384512206528747699627209585544027563618444027703550760904681898085154436976704082197564534652282770446295994330450150851027399005285031417132690879895854635780174545676255832453832679475750242093165417298347162496569930890081977631099735401245186013025408131392035899189802633327122882249838607500337414327366663063532946833763874227467599095403297206218741602723945955572844561813724008220638852191794107207758734981570283383708921812838990824480016477843331931489520473196925777804159533859703904557519106067262515111789135119421130142140399089460331122101654280279650155579558539242215604144852884396878855586623833208743858350914046757813781785480368652364507645713878261397634816445287876778911160579035517770056160595368540367953469448069759379734159875483340084305477701771234375709146950175192577241887567876380181152682744350985555998508099031562027984428062930465965165592096139676760229158731265904849454361327141577726258203445932088641610293091956657300526865171357412781454233840505079913303583425853223436098180187748733767544352803132905730270418822640726369688628197533187584615948161007418660496784488220034405340442874931691482626319809819704910234343697238543417736138511474526700297083981799185610640267451258457324077805478837161489200553391487838551292687078881026065926455798679722999663349527228098299996883239892715149537485891842530371400977658336725975879226416518510786435251766538832110852864162889411701247637145336200863393498706480838789998702576087118111240027469214687034450349103841308423928834481454126506054745668581071323890308499872967644543867727397807317998941850229528973830366279221680808223069341925938662335183148582333788587037109878439261445791219456114741024236853734293185492006791187963555420962228195220409946752821026688821378990794034851372978432798024996146377148104414293016321478647612402388466973330727826964167162707397304903563396227659435835608053637843811816859102617688953895528819176690523256825378286926037602316280965463216644463542998572590445262773270775327322908911828527995446106534886596404448900731463656095811729551241600477327282208416793062490840108571945116789340355669443523693482776902284818608836932247067843220163705201871646287063564853995612446293138363661047357810634980629526400303048453582248179191648287047212175829549999610137150683646644400347727617166760125045212074502001004773844406646010744776425656023152329631176705042192128681314178341069462135054871865331790170717079384521245646041306230697992060930430960858411712214625612273593980909676611362902720177397954451542445933826078596569968647337827225381353839330265938113812182999368621266189322606047986389018471568238501846818827126573427440709487944737271845508482414450912643527959620326696988340567350759300680835489360578896144588239638654596592209034959036851075154148350467084076766628116688256896969406632981270372668594675574668944046358556494259840444434833269480434964076562041784413111546261498521970696333055796972288978940905570654152315154050908018242393312258322982990305863324221491528011739564257126432337492549739417277154362949753436866232083954315117912307511583891828945806882112315417271814255495143969782832436196092046028210778298547159003719936538961196360088021399418620460015247479312840569141384948550462149681716251767826544072848920088415011590787879886112655030562184611922908063804477341220094075034731664410147370289240801725462981533035861304004714332453048621916226402461367668531656034636495863533869891944965606577118321473978636962420536850079823272788700440096352602159070243235862745205854414824999405543610087335129510452755020430080658644329955402387324221447304810377401502295712274763752830670875024028796197975843193288053726660843340409598168090128585541285169530488806440662368987723703553862725237755194581744232160237373819487205737852719596691509778267405280312594728109404312356352689901700778243282594047680086904948731607970137285047272821895707920836532430173535863554493238722877179216595398720458388806070836439592833601520346090968611350033643119542063502200809132914591445670687219939816632529060093079839920217117600960282157963481240007770618880982835429769529907662504760602372239795295548315398344377632367156830512372215361191375998624948140411378455424526603855910515106425638334287234574705790217460164434521687473731756240624562540343031635553954070518471952153558338815908761274883146362000989541197946911811720420077618577888645253580378729763552120240493942067717158725112644372209324308497197191554011636955599444763447809684018405723834341979385245619068059494725988246593795094228241875671645336386333928193551061978943267516250736817876534218344477697991410693058938811086404035593438815771121659996587022212566223017768917834655900930390100584733656239593612278599577986433372053507940759591453858669347780323388349687969345188987624183870637914962236156308817819533205392612986420935553003792150312370704785050438648660249784677245374682563339527432516870631110120284829021298045827190019443243675077609409597040457762170316089240572056471833104175696497257861722291344803751198149025757179710667675766670117886960664762400858093300710903310938993310092588935692013680603072905933041045746388093796629575643514097382503120489936908906460219049904105065898742563559792168475043466902212297312151527505535125187558050266780112079872467139784510418519700217261542462661270595257943370743482806814903565691749174215254650044345128034268289695799809921487663511764943321879978507480370552277792027033606188766892581197508412016059599166161068909919948042577686048950094305665107270732474442181969171768268504642519621760363495185488683550126355125129918839378546424172202092337471448647013290031250780545409314149439297793723553089608278297091916315483141316956987429768960818951371148337624970872770478262550510379903553828891766587289965690154288451784242232999297082364848454938630610011583334122126219860873287883934812649856856236748787792095252104023847030742643593618131371152006944936256382026013631282609140675251107263552405390074958593621359130980289248273953980069007218789937400611165844794964094912719584499707672163236283013191450857126574227782169764427090986240235248885628500415680949132023795683863964550914682443159284989880238062960107272178190926495070672036289837726760174760619765723584180954258814793514196801335292726424547612643051743375155914504975907859017041765319801525433302134748425857468412680669473935748673319113050200713546797676615849704923492730054352858835515154110856573925294801059869392620630008674715453241405578032576265249579543399966398948150200008269137207905913418356542097459243411376949012766619302286216089877253137998275347714800906055828508382470726935319458951827343628176207746817624163166753301267998130426358429304280091337878104470299744525649319308786100946466298998250370346115857963603802586916632103784942082595338639124658006045887732472703809368119146394276831977953511167851910628650079136695322133189720545832645163723867474358097538802633865913178921549359136287596333319166696710265122018937662712457147576657120277528537461598132549974178667106842479150386267270501644403642477366979407922708087048614660184985798405171623375347147589162476352809373646510923047369455036498294214175577265058721497067791972423811503890072746659291200482283814445130551227162282663734834630710011097096770787297941832785481764093390642828217199330430564725163691611018851618160114519925300620527997651594052795718695140854426238863048819633099526400008489847230938277518198673420194353953537276458215191064359233329416954751327619276384916260926709557956806427030932713589184926876871163949030836954347161784708173968451579954373702063157429252025058464847484783495773022173676205451527477507413161370948010545315444344246044902379509889043017497596155214995257294701910660950594722006947760551326599545179919088946302583131463158187435811107210922637816473985268313628994429520380659643441123407804319029946129100003718203988669051371530184533800888436510494218885073933030338204687291612141375594459776804526185420497197124708428209800478850926469761986115705878743316353518669537033689769360696441346445580828068823138140155742713861937169591992416273973124989622377297271928881027610865922334916439000259702683507571686410240018935120848103396331320316527848789089332495910352403636628542945508395932120807619834580314685310993679097071299574192035667233101359169200747385540223267924999485589179486837951758964648280354832756456711686567448122978055909496881477577990674803698577239469400459994539151097183128016262031268960044881132431703300219335489923876461764570752446561319941255549961905061357907739491312948817313922922131824542471131225966645047284398745647113585295328908455941091817706637161554411873862856309719097278166184265898314419512385736074489464940427397307995330646252206193698088493652145369843066863707780692309838907544840303242347347796174589945806355925958104800004294626371949359484852202844811080140348218644892271419407571627574625609126607238863221611153839602137037692074764195342246996886247407335729522375122810193524179684245860917668580923383139751220623259972233626455253428183245764731557724137649682222772795858870520496260589785153135012911257861162491527757997373366360729854680879764038602822343107175220084248006739544281428894609628139970399360988108824327675718222242834456813502809785253964120941994624058651781518204700477850206233019827430754240995623706049531150345918889715868611955596464479830330648492689071354609043194841801647376250334105553083095031197236631844513494477835823165504371963018639377269889239449912908764628407258981213070262299149756097220173543430199522643098839357733656464051874725635932201744458952683348400206492930018503501485682443460535543375216374321420797991588131350670125157889598517668024988441324011487348337311857696044345610553929773869175025409748322457881805076818419771944546083403114565125447465138334063591466874506638685362372273957666846239954242073706814437845869605242830941936174867559939253419217870504433237263704405969981021874817821467262889664647346914223062436492874028674881274382548196295180852082771743981705217975028737860572866611212276538842915405806690553041544784209709790344955322370929653611399249372801477648169401756242907392842356233079863666543791224972190987963358917631938792589812193880811403829038593156725927225294895888066368049808055503823482849369827367878075006689723979909776712155563490811804319308028229009840014941384630917749621963802126508062613625045520176746534532255764132042976142967615419679043229856304342736054224096505114029163322642379337331866026110385695951440099728085567693620821184947956954385487395835053053373501511145953727296779798601242360097153773292320945304100751594179427329701930205760424347897942949195463694423735287611172953244937397784972379776050695386288020317491028984960516234931277412503149320612547221867135497464112025869463313290680494481831240744755309824169864357171703632766849044854073606873959045643695519866924071198111680622497637259084858872553398675588310699238598758810578291271982209286699323417319987466863021951546708197996198581491629685746561920966634438321429281431112661257612336280348277660513642539004022977639705666546794670711143444284132428397948719080243633063972570932680594184729078505027980799803914761241449109607327246482460345133191606527073884496528965357649810627151880418235219801168543209630047709610601828913014608418458520716968817439560710399708180646476035751946973890542065056160349871130919451555699312779628558378055765669296653257429946403235017266061896400814854904282564680566266949720848325832270988599576240359972642179285814729153806097952051928281505131525890742192423405889459242895677070603958506603374562558246341892600925372535721195737768097424422294035044435623902673724690904118528908522363122099778720311627776629157949190622296350404129698386541698621279972796918168762111138498632945029161173106965786342335580148210482100376778153119602929734633824346041583891336697964801112487390863811151502931311988039493756165755707796646334056589777073145127044799498784451963840531277226024204204737816450609619862845380845938908838238845346891888410541143304050855791726026789402302406148173789403574882870908788090597525077476318024312569766237165629059059338530954373831246848727920733202210316601122691366359983087596871288582872707632584302944012729894501324634038130309545252555097061123102736921798247626528158556345658386482382502589044050825037998366320154382894549612435005109783516875952679023387106700134406070370700191336354556488036342234166136036108847118371833560235856140495039823980599639791268369363922881833543900348079033304966184928769136395365006797092821088086675041641305974042844203451213124871423105035052694559100510550602479701845354281834241927643114680076237708141091153334499039064071613201778121419981105974747124230662952315543923288736650051087328620727730681651698263475531393470518298179784726164769560546949121361639498041420181608158032260344791415563694962589640245570682490323558721447987774675596766928405950581743654508446387926318987520604763230552621834960269098536917854608774454909795973769553095877521915584248421884451125342168247144408997421731608839822127323626289677229364941031989647772921997695998165110573215670728867774237974055829040362184793340757089639825651932271422747576459307721479187184580716083566856351104808742638567582782192855782229956489675038421683801880035370335544658742892924038393302649932011814387012820158800933524304993944693095538380723842049879450486648136437787046679164113072467134799541454299471264830995399504096618499887404005853701642946191458842310375669403113141790844420652904910044485712576837462248136204555306330380294477915970457864967517150944932312128700137858798789608214039433972689586902755389706461406676341814499807094088331527613812785058295720909654368915083331294771923359824891205959539235755552079565312426462066605372971033035476617346082748988035321677550602835645995679472888270405692107492410125281759963012419624333899623559310045875283827512901184027615173127866233247166879106666703019026390634220654765669359111744157061141543680653968452485300246699815564002734659783552317928370500904092889420891369768597604800924527091682288525169599266844938687117403470040590341343149551884579170360872583979533368680409222411552083563150239840685892667329222095058520519056033506969834685769268025282262560174341919824143091111232134104395725734986347032236157374431138992888168325546277706407589457639743453852783251968973976039146589727075016483773879763678526697955492905159971307912029620993325178453542080849213242110689010888415240256967436286886169723377209278808503511907012495971538964625899347919966544985215235872672083357322913207197495146678608854934265259527498962168660962017770653833363690087949059764516154804131225236691049537714021353745299005731403080977027167052481208986940213004149628058301435830962869034548694665667144657483648683545034297132756899825538951256445499504217095341964728746560661677496163585141856254003752908529282340870845149723576748003651497252286052872057740241656269394290464580072767528041818995017032604011161390636469325458144406463516919248563401051199065381483333834029066306448674792782468836526729748348489082173678996808212088808858642875382945798417915141439010755888540927250111454918634944725629880754185745694941320322845582255883897179365685043461742763005698478809071280168247334016624102311224116419713259046737317526752318372782130231575125452435926843500738352596161349413959136807356368587962770151577241639294962019265899581126564667315005139923978666309900306082011740569124739112740440223052263162342448399308598971150209269925286136762509223636533201713362463191341519957223261031722980594729396176722958552187784031862465589458518790235674343162982971587525255947672862731702827571632893353673859675541938971106613250613347059208981879013074496646779004367336767119549348448875374253020997112263969369408642752156567624721935814574235202908627532942260338000485312620083655509370541080249617401284033585981652108523134473608863643871070110823218273001596054497241386242855217765650464375500854240056841571684054192738803037566480951056936475654343591870760706370948758416824898207489552783277938972432575363097262566294363833912309303913405795739041919584404691956330702894449336042023529713382030662599113407403850483263619811005290785597290034616088653585404575176415301750897588695694703504290679145060241821376317580664059215621985199504449354166716694805044138406019939340398128294339790277516529996213631743484925658590513412216025021419480531808644961347034933831128985824377595908343957827699301151497174677952237931769678024354749715499343476411305918957754558275103601743943422970901174137802454379589671615717520754144638292257125297101984547985877617507714105229958923199157884598572609798872122507926636208422143041464672918124903679764838725711919478580601396538181398303758600578514796166077035615183566054347099334739879765134622218597098062871947773061322296712276719970470882117210543346530445427004350449962032499893588068483616794541509874026895961479674838742255334867031010267632500448634111798166966943593087321080395689940598427587706748847162921438682163267232858852645142283700760773468180267219094244550122566547230966989459582087977238751602734842114493240065211060613459795194828918542247179863914213072750297308256910853647502151960346465202296278990207111337204221805992441718758745760914859616156423604430288929726401018612860398227295935194823785090922325248360246756254294359533623574309509562784793753685939315463254380556684753884307932931699463428097345246342515644414702174274174640389296014540154198598071377539176807693845712941804856062839819089935413306453050756618816373524960880991256291086365579389564218516878236466490528164984896070751882902228250397560340942431654486656065590816739223048624116223595655606916074704200256192328178593943694534464505949327584959108989885568142847001403528605961590710120666200998919469763098551073438196145577278151950748460806075630095973127178877910892723701243836343304784442605056460634359346179005193713829480657739757879902153808357704442539079084171381176446907270162505563125409676338767648740021106685764197269010983708920528580733225130331417791547688523403002298569564659949083584232733037792366793216850787483065572791539629130865207858986340054385509181095911965799690856839192975713573412175550352960347489503534439652351998505970790954588062742919983208647226836804395065507787132590890884302633752365036758032597236026169301786872221893662663106402393640481169207921979258616087774744007678974420510493295188131028604954312223400196587711116471365205176900243092418634406793820046821935186780283173251188390031482849452326710891594863422293523029584182367847707726312986720761947206612410646891454323559194367998596619027739395664653408536378553691954202656652568176455144597601698105222898461369901636403334087454873876904113410196978722804625236440039655220576718665023948272365407805686326130068413427499376628145541615524160597214983794999138549723267265939021511234857798283617630572313863539689153811944247399167343216727531566838944765061492793408475972789585332255757232354512902069884155140626865827697121498019220874493084104023778359969717516304976284264448309812482604776453031011059538330045151078222950832379139641179020693116965524260575305298294348967102080181785370840395807869750864466591450518232271545803595402240343186761741799164931300852294863183665193441517058801306061184094336248422468197612534728457068401482970506530716686775752711430407391831415126755880325032921342073593628667830992696875434475667653035746148473515981109278879750881463634915415145392483455145429343540515595719318120850988186535004513074745133781767212994451254811444384968752904622988138453345498642003115751220882581579470435071526342723716704565511945643295171254816828157025823942661776068875901988352794135966211100932911738276873550196124589911333307036108316186201425726760487630834753590518703572129293168893429848897743897297291647616005034563625938840255333579986635242370528083694315040894995395925183382853386540322993532553892713623499718978453016614967864870013397537175863555552468893758551517685294292870627135590040124688825172253793666957272763913129514143549469364581231882074039556129401692850174495411535961988739763297346739414233943330617477026223548157346447065432220609760964534928175454384278335814691636857835481082761329049004602652995603108031123441925592330674455714068686992952144633194734405839958457975225417148355571876079014198039994689667155353054417768186739493644301937661318256448596371532267705924787871895513518265053206811941246389152299775877385904874347165392104262475636758979840131909241869630708112960718830710572745197029637723330309439796489168011926116816719359904333554196421194760414229469885511557874941617667718309456997226085635945718570945489202036153641830599851128061821041948682119659387311118484720708924374160609172171410364797719711500245741179170445392756686993905632116355686375989295391587906286914903877032046658762853838626698061438032359066401613390749674858008100836610905898736610572128459724738240825692832915614148883742158653595277421052305875608815048505946598648597915891596057052267714380006562290020972379027758676067853757133145894409121100776341623685398332252369899517443627339439043512237200908174852741238151615124618909494788113793102629968208908587809036876685290176813429219650259481907433178614448648574995712178022232847726349300378406610228302873641332972639671593145514426192612528093596397650135275716320781426236396123917430180164304862630154648715538505044056258676355971943801198151426630787517929523634853317230531912389886169987513934069852866748513080868168267692068650184660742024365990436985933755573872082571974971719944528633439296139176952070095532408638923444142670189683210845920257578225135491358899895219044063561570278713400533551459955116734478952479978596919010943636489203015596856640553589819407260340810334958126762479074126597080049405744050406205365747694047190840460906058651925548900076528316164341419979714143475014852451921590602211061164339637379670171526767519603168217512810488708710912569170448388572343071292124997135551345517313514742626883210887399982839687937450215748061845520712242169728823630678718434580115932343027016603025875678570114884355065977138410964145100567937087466840862853986043617573629692061019135212726209867931697850804758028030932847403683029162332663511886942284651789368067281534250347414458742444016163493024114162798783870806123413030078172921718739530127813372301210748380814698783693597045259897309658685364381578769849503188775585498607532677857407984544168709872794957996389870539563972509441222082018528219213468443517082725694792918413252102843066078986168110521207509419332317246859253847077044955446698760256702628664149793492616766667491031568003467001492658902435737294880870067854950785153136017443409591659243888724543382813284519365018553675421586391471058114818582495590201003056614307344975846309637497576374455708785859735474633822811426688383331857205620764691123675699188835497132813800107859638107592540568461656674833551556128122809704344467872350536997419423496826419001376694103631446686465454387530290639875771959523449540917651577308796655174252428440601833316930606018102753526708462269944164313307539147687538754083086021906015295906224899064248867224511023492557439264290028689342066343752833319901141904797493548818828035203641695796917054621122199717590687835215660786103185732280132663985836214282891990257355480541485749640458853944384668709430705794764693501875288658656343018840395670422463036045572938681777425120414348047616364695568292823043514734135079799474593116041604631691352791079204851483231057069262338626396413537469537523268735862289248781222055504772225830387754457464133121397197927037683715345649490106450340758058379511179169141471668973905239029232813050103632468697663707420178544589654762503649319089895531810845741033256586337928703745616067316123394550215202140551137875945897860889333188727755276169291941517523559485201507300463690241947579956026517429568623061883435298677985746923032019511797302551780806095756197466688712896090780939203498473080498715182642306607966603645360719870687557764703313380538111680805913617294151275989533130452517638123971332102466170666973076953552157147495282257069035842676234626245059550687803456109277617225392087310215442306587838075845230440731425436381771355800001107569701535638834435723718326505338318364598397159969178232250826818257283150541273560627982272793211272507791953965276499217831655581460396658985845325439387070037441808035220680573077592553712830532989849958146235714578879928540454661592930785681928912038495782709247791608943228523898133666578662680574654221381370897179014760483877437749511252404345761445035325931521453437885320027367013426303976320745007694680797850975254037882140672194667447286819918185754654815680165040914496205366122900259661676956697736054233433627614991761919227783411684721141314816869368971256664683494749560554156067891032396039557310645563145311703189709392995057562358999691821919532916933064123008778625507839127048438863510002267784822191980604826042649023638239738551143199034188585100997761275819672441051780476339332237243905210121663822084162503544364643580676250657734014025039905603943008296882900177804390617490064772515324398931797313670357498071146727423136214465603937722929176244320672568681304992764155444404858145988527265187597994788964174751476864235483760414606074428177624635757988692440589122811612640604242564140154745635091764935427877924297053514130344299661218816651353010021855779592480279464307043320415102086715331639182720623761544732523400433654535668378174922080455746902836383345156826534564249577096135768082763724955271228769508420207235153769519675736243993574817959838333557240654596224934840316051211640020765746719441230738612671767618983967435201961254871200707587272941362029109458726851448193583947113484166354696245820033394664130965408293290265820754654962577366039404349045202866728804163120688071849423941819985400209757810840825341002077646400815323874972487732385880185907113792971612943671537156496378144293352478912357157055227275307526148185656599892757277783802792424861255245638254997996496488437035089204603113906551493445755182496869882171134936897928039157749102487731852607136437353495208988616106376787213506551518985635631502453724441574369523763453588838013732058330109557648090913664170311338788522616077877052927117520256251205480146497224771306158984676290898622640178933598530454834303481727816950614068641411418915071682559738119536759598531532341532378155807026399284907582758297942357441675580288186107387248202673028497617828234878943697529720849648286399698384707726628154605649500340564436253951741084958019562602112648730950680809883567883959487709767100774243318794364791081075760914023168966767446349931433651247651115461380172003906563934240674000398728325484279343967832989770852530847850974456025836965439522057735555608364142625653833007963080091176751674981844150286762921687741994433011229250405405868066168395739734727803798356569749449116086247447076256458951061463970656868745371174591767736234033284024007650228162354645624699049229018386916320294070229629830587292457085099202548464396096348052849285743915862978366132036406651210647060146373972376371344917086011743159097107939236532937650564757478392040679400375412974344939738247564859133041055440719135222585347322304532612479682343319893674531475081713388459426167226156912289380356705248985649955390306009836275613684129952294794015814430511082619791818871432965411280399057579136610304977846457284045973375503919870676277809417713328269692397460320859647780063075905085589458925286580311454874896131460497758520600222859159929100869991213129285759551220468788443059471080646214118396564275935969112608226568976713079470343412787612442143652512675494719918499179385866575545160048383468883842304632081639656050259179090097813390325446920429490247919455488342686685187272204330833718070796871340898683173859658261100365449594250882654454365777374354624547448182993253882312056304352193948307350816874756191457926844728178397406365952645091335123492220825208682469980318297401651410537243268908646859656956240530764401129487228421744241133422226549473982132996293861176324217971398582598813630137421635659268356971847630846254915684497190196603684683503899103266098156047913372501472641636634149882174436983671545532773481099056548416746649683839518468107539293243084259479941834626234392676109830870626880693783647644575311860220236563664558048009863293586107100394461704818813009190442523242586402945583281697764282996220393504607108267461033462918004959011256013838970288668022628234578744751117747160220631870503633570454655852961921082043386920816798599101997422203834525564112329836396962836483052688023019856995730087507916326988778210683829093410243013726085621084190070952879359683748818884797192499686265496280414755286045738554828685399189544873173349807439703840564924371342803077187163411234039120148456350960165403319310025613116782579098662449473353710460816244556975756246410066850369454676605915782290045935710868911666500170343436163606355724524642992492792084426628796201714179646392288207555406442101048784698842935172401703611778803344890244268231522395263526803600721913307331308102339346287181640363663939412127052690606938547815233478722520789824424479089067302511846878680208471979445582058053747983226351799585716712958279293730039451094132323987491692889299188747837185119581263659928807727656729267606057889896317417971477035259059414544575188050742156429320615130331465440050104108452600826334488759310169179019011523074540288128904991214894820176986460133269141356689975201738442092298210237030334585587429056760779482419420747169453793500706406440071616225148124049299754693528193920683897842708139190389622698915466137325865585249523008312772504433245039288906940637556497529950436013772712887880392758095183932290900711630335285513040081353421243507512037018366191678060261477937223130166638622270809956206255186259579976896518911341598062538117687053588282787197304840125085643368389798958024413961336934242346463439679490558888739364759644138211172886275803985690856226990217596027304346510353154524640466808608706128892881603885651982640174673978608651531481606790129939950308748583372335454485596976401801186028250877577147144428648675116250760241570558557902321152933505228845497552800482409695288262056432018951659719810032063186140257247767114047749614493908463560481239710619240795672257119869367046897113273483275036601109920959856611769981813904701147063463926334647655503272455475361262000686947374754696021083095986974553053395460908327289422007791788178766711576765975940167466691532381123035060545266620391468689791976032535567152767873680181330380961648970757736573255977038890469348124488985495924424895558990886945115453624850425177945169785311691232400241450971207264498418663480616943153007828192285596509379733121180087530886218211045094519855427686851013424318737862717972379103187671138428756828657206411585981588842783622836070705899513119651158585000779847204936906859034744814593557792562323700855629041381214098496012362418156014659197827614441281472152698404114365888109361591071000562408491627679071757237584752691570395414003860588734789624902319902961917193227137883016847161640919031283647424556095430654074888318676798367391964382585231131859742155628357048404133016222309354815138304814320157970434438532752884430293914240638038012114702612173764318347365958516620706344152562531374234118572459891898807759070037018968576283967245474868064879560138578738204571344484982656346043034492504310667265624082983600888211691473022781320513322197518143330448768876898202092014527831651909211626798026285864187066637986416947844808509497540200095085772044443220847725668274490547745467590657949063671147578908075878117040751659378276257730009056083656221181736694718644796787863618267995952673374202036373890778482021373260326472858771998526328908169627177375395954468776628709550586255614441283815866995983424816958556942735999673311811790351336278064788033150032462258829065874966377472582632877740936035705602121928971168105365792352090680367634038164937696851412541875514509481321924262547278665877216560531397337170705207710505572399368342326601755931613395932221454457944710170355278215551335275966287739486001967198313552972268567034649140440498826689555128686083215855144884792227573984996419150759270653544235412189912957574816135675814552546244319924304123498885166310971231275757658437489107761546532906110441460262394376578609667768217235135952258511492062132956549213271142970675491680788467439934062344894980976205242592951132780862295385058840294961051140202579191674425295788115996675006826638938161527166447806598415358378298295465566197626898283896415989310533987267638172860474083370998087275741933673791034407760496289891522644523618188305863305366661619917344664105327373617484457395429089595914820155011909497234933432187568205104492527681187633200345894130477984412883886492631939227810283633639490636188962077292088109908975499663870993592379078717314520661086577840397702465121148463175755740059284512280486494818406363901402235820270745404875078799512935655255723451138955134605049290226638271045565943288511228817393414919198421712571088528217098196318315928056724504901421717797268979196379836469695193396187045775564715124963470453261872476519372392850747664623093211151291844303493337737899998142085127565103773857861096530982274438988939743016594386220531206455914563312772869504502652215948007211219199032237021609552014608581647711115835630734475968206323509992477315485309546539316602445242525555198335536275030216754437543694585723504462146052202881011886426613526804093237420269469283779308650851992557444813270309525242132077357314424942780775248777822585442300766140377594112980780132389968301990610518587766392635632217956178280217977031713986650303112052763891587502724374846678423394671102674604839971441129594889520723869123649354232976202805333874467104833691544289298100166856277115969442096025547907277250320300098040268461969319397306832955232655949371626859020771590961925319788893096035818784672490151604627483651389728487195635483148186716229498508677338873260113001208592594701879718881233412173014991356962844852738288899005891419132327651174804959907827627993430625188379799037327409150128012921599101743166566960586538718777144373240506410111990640376559348159725009105796388494132647883058116938819782794034442080720133833803595684926651658396294760955991603300748871793684439068431916482333050700762789475508597743887267500076200729665198425409845870120776524080512498901817265896254906355164496999868688745686600655314438430115991640110243959230907447213961561145330840514378146559660032879744784043612510313664593927102900969443264246325547492553361028791193819018699385388800102602622631013065851538739318524125618622166803556426948893399043657983477848944051196562315215741528749933204395988323269480248756112976292369025347916436449769252155012359962169345126276308820937132556331714997600181671371257282933877214601699486897719872935563965774526734318987969279545547401833715949960828543385787133285797840155433639892660479977927283047316536112753051899435033723747953464795962983627376639769604192113626442041751609135475100780850166894672003425144028618637642205438489746244265395841060063312947988900018003156647210468896787042984160259186787761631817071944857131257201679903511006986969285389883403305498088756846416644030922381502072634779037651150407162642054518523683899304389259784164272182137669237787090257363200309040520580747979159177520828007352841969491670822075905308990315767771633069953260625991632083842402780890800586478982263667862342827979505003143311667768727226409007643866701099480218582720633129938509335529109144156130774799053128647840559471020937028869650935407303741164219833871878495645995226811656875190617189575954070704678515836269496186240608785483840217491541751116918064245402026825553666616110390994647023097803935270437452174830671583137241523779190052979133130990433457010531621957074203566089987853590570005296076599058481046284939956268049092606093739929726223586918928406252297926353551085646144800647521536149607622575013392221380219335320152709841511413913276222546928548175062323867224548457304371553150207187321827727422982001850260442616273506483554726647964095587600963230531394276119642814537501528971560150433138419149209600412860775360937647059527781131250068609753709875768421611140127503659015425399347521334238152320412477364591424769966455091594463062364038883054147011026181109602652178925942277244346471959655560313930642525930284914067477453748654679413333779445802557319477905164584856126622232872582876523126508273521559544752019845081927689048680974997895479417877988839179784225692235319053968183960389943792544370666711186419618409744623523150206575403946321199656786047466692381345902651096986712044760982123073498234714842337260322697677499403385692636281462252268675620906267919033527173073199012552846010072171961584012165225651336984720885695485506836877246436460490499754800938856429295200833458653549983589697127638138145117210522170675986609353049305748740425297137701274448796733738357622464909289523493307656547632454040715172384298357471869811852792137573804798050876990599221866435951159272222238133302685407506175173935177875753949216007437735242742550021485895898172176088661763056646773958824397816459167106644848001947768678271568914504839264266717624171659134556348624459558403874680378005845516183093356225852888088380547832374799975575944589336433351915162634636728684083064070776697086847965057707304668515042057428864580552038927371330445707834594716995933643336244537961823275158314012577938924534584923285438562707528785029606093994762627636038746476059503038373097171764232589565119443602564542334997884358912438913742666318324221973014329905294851007343345032475023383407029716477711435614498014366593926067984999800076245582651593891674846256488945871107028874505057970048414955541241536197275205860838807239193436377960145096362307053676144618859571189924228508018310523749735344173340667708708169700876633237785429451277701310193817178053307019451753882805788301882526930023572724918708479563161752469961818462291595588368430889429528915122906040584271650493297094354638648010823318321693403446735676365800311401886747415320605752113229665529022963104726467083635395986616020980606991093939673547612445229093932766953072985861218386139089167148211516315724427251948583776079213206487004078459115084387838402158673402631619236027811662085376511073672997522029093055205035338170168842996549597841221237883709177347241413587415285933551769393997147786494344482545497696184730587798772296112372258302395764113859400421226352506405975730718692792050310871426411056590596633840545764671959844658960651465212750327611533063443006935020885996147192773094786353107791596547694500840230535111198102775720451203112544317951815857626258113021829358903907863664067868377983005176944025008117320082342686790350641719779986023839384706794293188400319245355924772295536728056331968300315460047132735060645890802407184410142347686395174499059088734143674441746490431400745756227966777004621684988600716531264657879733240990421659937989168468677105799045695731598400261342787493259678085584174661880719002812240029916900977064062756056075855693354293719470506333307338552491477331054622601739513914095940703449688129077011419058221288044418810379434121266291896672063077436033444928224542271497998432044578131892123235012162224926093458732635615243850787683326775564313281613371398041699528496814789166117553587992736319395366304517126350027548920145016101767703111992693994556685420755614762604158014333892817407345488885077456635028400077853545180239697611608835694737843356598523275764435887807828261460531650692970108274476101777930049202682473304367283161462074722819065043795189435081894751851725430322166086100282736463894721662122148971104727872657710066057808141230952118334885109219690077705308499522633677903475888648967286367613696525862130807148273530392592894846748764293232374239950809922878883104421854020479787743440118183068596594602650760483024777590856377684388193893117770464779958772598302839512580220744707998388924234033752342499804471358462694965006891157373038291750222356643552345321721172626528053663729785691593806567816545488429906113149676115749912556374760639400588213592947416309108518663165870195938906575132099914884013465512893925375911268037793895758626783239998859916791032746105405890244814154618935125843469743297408925317997770303725841270124970181215260579667872075350099313190894743664506080022584812830245976281142730037424669862765390691650510802237649564640070377479841399664598047197434980230117872107265655416989839686035685099756139769920776435219728250056607047017334376407882835633705125194001603778032590848768506204161791361940919369140944019615912773353759345672982645390081352975540379405632039635808966587804849455558675924234003962271194688047546299599776105852273050098876058539516978698400023803733384956910164058542417222259959145491557723379737821120916291841194112990528851062860874543439304709503803865705929526072386670041028056250737554588011579270035807612366952767743241049449355876458935230775110851156351643839083970411597694697621214209916716605580079455557971597904452923271533720724517250651334331473647390513781417541222234794014704131422708988534544498995319412093391396764316226799712323002777182107059524736217475464888411173948865615382368043565555039030943127447164202523371713832923848694067399360922153603525665216855724387474738736559803390932900351180814661109644097578319399621239046185151304530754907272116679204187043726740034171286061761841441807192535759328885908277543055421048271550413133300282427954283442838943724438842154584096256486491727185797043323307108752028074222092974711134881584203393224086113967518047632617205923879275576726921841122579145725391403650139627819369701961442218740812026569299828530827486847863461787356257499422208116800159953744540321574668151713354139198748616691113290763011851645319743316038334719198074490385080998508518238639068716399835968492228311969692544547898439400912606242127947198187786418878647111958282695380787576216499670416264634279671873486121580802379316705049053965186859468782919994772536939605639269295921849113042706550657495010972525760839537688845322664778907209637455803678200654802760768034191321785213135019399840791405142392480597299159532995751458574043791656753568471768313641319892625426046918998775686879072521388357489310746267376774029591102101882343500916760265787005732313715851416463324177644330660073478548254063867534880850941032972678702047043633915511713472578711575346935039796368750014697850099381676333189667613114253108607972700761152892891061862763710955879743666130761543686737487381357010962805881409306350428102119994131135442352181873291983467896374663745705897854822616723151941985922282637950283289184412281173264040599829394816159309279990339037375336041985061510790393182904997951608095195879842996213477350752493759078028628961855155214543342478773920067672840600723016782232353285935220902824954681489242449569901103041773030660590804363507315375471418412985063768639101098263878462809396907951755101678370440728715066492305699048575062361777864560736877439366633252194310099717060791526091821528012546100642722318736660197696543201304129784378615888236652226227842076141807202753632338851914028115893446376786525089094657050854451406622055172854751822562657836569391396595546023281050827532381865917762489821116091987554423304361161127739165156104186797668291425735089059007434559280175303581115682957976147872206621724068390314831459048244963383484287327134727623257831574672093950885965331164851781203866580128574574355799036028405980377929132045389939391285208007287084930156804391889599972435819087758707646835292968495436723978182518432958205337883236403246394734938538614946682831862663968360850253008927279637784294429009267166987110244460170126117382964592222765595300688517256101669405900039646355340127683205673258174991561959850701429859511965452847212477116384306473503678545799036026353517175064990478204020556548838749019251653224292176183628418710719059234856213898751687950486824094350684615041776580693513187412457210065841159646123527328576825640861443508321140273940759886392313702927687255158040550559991244035292152213580682261456437506806697779281729957140890818304693596519501049654005577225629470834192783559767089737208377355518128229868900602476576579026764204783413139678802045972704296154332054712040608406143677610647921875914946551571130514391634652726404106191318320035828174612118200201112692078826468322458919463931723419735910778435150634059601645356664844897027445645321318715685664204249572571731082780194542193857638161092746928478908998795760464078895795029791926149626486126988033759801519120094817529673375300314668155981237771358497557558208119793445517032992320216592616614035000553442458777655917592571744265207106494421582626328240524596514063346228427842994954281989192516711819124632264461742787594867091900926539296400870906516464943360595762494221191612365374327103479387561094006023582342271148374258452111872252074838821107730801310666750879705946654957504691892261002989903669799025982046622025878376171444473613695848397879319977692694051354016555500058543715238092430692792982391274452434246277477292066973895801352636682970446815906426006357349877091953150833923817881504642205624811155502456821458879086544954999360202522771092800880952102434819570914474148898673234756240529001770278138052135058997039064765000311252193705392183600599421729921050419261446894068004180169646588742898361452057507695661863860274480904715035749147348502856947357618919314671334560963932711845010672296628394631373903161665083563163667001717910535466865495279230613291898487700569344509420412108051244059869487396717419771169454326774097693771863180948369892475675872440731698466804139226612830816376706929675881842059613333567264504001440832784788543666466664762751832742234054338736492888003863293838908100718777416779856310524358035280004147827128574790722505367382775767865018158058296218504417981039570204282461308329295354866522604569227855307986024230092456217959134954929751580388569010655386043492186640919383613256064255578923232899333759768001111990725307685336764489524557940904909160860406752740737056720139228129635727486255222516862621962378324894909372641672046392449321608469031944997175628376946704856221348021999216970227524110545381404328380255955604761702709415918673655894499591142092076438060352058002260376016913242838501758274224778754514413289427623549091235055017358573288694774218463047257969032560393592884392318679358109523824058970139855501760355289952678264685159726543157970752700090852010345152521589190104155339528718328246250636088812661190206458096031944353338290357762704940603393080647911476311192189886344041731793295460990828061398425195750243372320350178239481387537124094730249492652753193479484200667793627627055344349641952974239776125145642655737378210145262463928833058048365689860379014794360812152125614976134122777349049742489914549673923827063191130768391165522386406092933762865901965165742687853302773532706094438742986479899224806394488228242319794277200748358669454694991658264350146884374419106182546699716399398420079821675700041495287058437065240013019293895301310776075924922555842563019428864090525729665161271807565897029754788050913479042747184894965054129921293419518246994398244663836003976664990898341605486444566002909594580616507510152517291760277148919968137534770336676255686812378585562663603339301648095014094031215842579703574275628109577335062987978076436503304812019834941829782622672311950206915571452578514942173007559467914848411628400216801342926661656096698084512845211227793738287403435040288816811175446483439573610868059045929898925322628116869087944688445362755769070147966275157309438235979931843544314513469476917391764722526372544195364454669140821801908697175988439027737503939302513231072372991024609804517083308923578271885103426797153740021877103826711316526713328437554305073136075855575446182778664312859122651456249942257752766372362003849258839798299118178962590360100576896093883974483997101449248077591162327958862334053450713556725387755903080698998370231348877239983033296430633484395704425419897334510242426037054408236410772541595202110376879732732434658349230126609686155946945584946951801946509718317225590095472877837604627919627684919509262280037327537445413133551587778096139097196347411792391569023002641259055518071266647084169628565855684216531945599791384953105512458844811696073470724212219586120155393667141419573867104129906109534965870364181774343889446824221989209067763183693807747482890952463586107891304687832821539884191929049005582803274867376783297033289352602159806760603983577349571377427688391396911624982990726281787684030003031341035073547875366944388517994787115915674774941994084260701782416047977773033829193963070224104781496361795607733273371080259828933717389008899925479999753965312596762182758403505532059836083326930897805374135232047915597575737430081643547880230887073040466702876405432867921511011743442886323731964266026056975059258413619465611857404481294501813767921263727310195800120958833239657823339268980054340106740142204426289707493708331534278883561090431201741822589599382830770688769008069371525980599322660080271213695048222476950404070053730916239030746268289053049483693947375108674408990278926598430465981722800973131248357953912019885587635600414439956879617359883353139941412512739548902789723965171214163344681445341491914466584836538512892616419143790189396956791408624254661389498553987067454450933764346907970706851190677369868463770084908439023684515809464300557548658302166868135488182963414227997154132756266332920497594727445400538120758557137052081686971274269748476181989295166953909100812233702668523814632233178146617724247152069121637015432644063358464697628048327810410155604713213459919253675520820423888037567679465655084865832730227493288632795350956056050249809493340745950881160496427572733072081055214570001100900489921618645572001305108453704169979611491883391506742664571502478092420497587144115135247186217806474007685672338851662260751874961833264409098326736352543485843691479494733448499093407860821774921116311398924049586027947733733518431417103537711424335020396794437786035166068475099293051632812742439957590843721450843363445078218005836644029740055749458320045245754843467446721790274814414350484912017430401426206485481377335550946096797183467597124725210412950587244627441452947970404289695017527394297535266835306830545885575558020419582394506350771926363053119699818290012512226343023661797433306813072732181611758649667634021666763440496250036973638154035317766774604526935283071036683232679872968248326150811940902368061283295891399016058953406168202617652101103398303157095211855980329451096673808402003920074490052487737881486946740539294631779293110134968974398218387533149013925763952962259970633998518706236348506840843836171086816364808691571054768550955399420272314848902734258074070507158873936701843466791836121706870746756991929383352899651693981208496717485150187039520837698961119668847905752827612449249426030917943560059089651907414645459463624629544892604973078554393316841516232299879041266086442848301945644476558399582388635840025680666618992489075147490512747359803001576471706941321493756749587123776994221374027491716184243267950099168294388736067210357722691055611150946703397935807351862598770727109385253507168071178818886891787549557090583892191456636051363975520090189408837552732505640045962748545372577631344012434062937819439303469062420709638397945997912240164780455025164452804870623004635097580640684039446946205570455662224573874119033369872313051328392392665860357326699523940058163983497571243010243169193542309420099390711042476028997475599339259157933911519565468444959196075749583054876444128048787762458778771578184156260577784997711239780585910842838783815340202084488067308815346832596685371992860237323867427806683833768160861973521217604105506948404853272818424695917886984585243335521051489868371212173572796143338463336244719952337538361380452301099873221510192096160014943804582561823671365477914341526426094210381308538515235299623902767897735847424274864514748457468360728705381971130772156963209023694397844128207245011291731373232524696386905533120493174457078614390348475913816535798046548416488170742070132513886753044374594790282127411717062387872473351565119714445076943517877177389767294214592361576577199924085371156985829868315675370109931085019201343445185695181350398428812758922321439516730109634556691061381509806803374036429087686905742630505341859964876206820933654858836674457775902254256132802839514005716951258387182179248966332365843914127580151117019510169755429042112599078807323179796747184608880529097887602244440147761225735620535265863147133270668720060378093905433751807850911409146166212552090074667088986325684047192666063852731564019418313598537578629340885214345579797493875023122911833376419203393922920978979839105598039869298755663044584433546180692769385336254565406792163901694196335842392175254245959779379991638223768274426390482730987953798616662348185414851578181171037958142298681292546993152336931533962408338355898421272751025580416263501481446085284442567916866722274302110661860560005212401675857764240675744182394412910949541130775530761329753026479202110942303859167063029001465592134832000676639451826994791043154893760659784738937732095354994022908739050415052336044371728706829225436945522798481719782217204270541712347533013743065479272076819287051794793208340309798169208574881377238082310114653883621003906989123513551757316932131956255624182893046593526243341618308791656419275190877641404251341156771823710906503745357903851019155559775759298866176946082676222045244896154838810493656014862868013410005984805744192418892886093322414589504428084573366653491570794402145250872471343331822862926831559712420731638520619715651753325471789295627273875303576303218774198121340956868944850547187190521606724963730873263961249452281731927554262122798564720352177520975233161586438483200408602871533657422039508257740003634556151509801178875354339491970730569999648610848060360903042426338348077811071420745927853900345671403027068992620629765522897282215829919673422375402468293532444862358592368501300791425479288423021673077094742347020450013591907176277405346599947311989390321750974725265498152259606881612820249595003116731525410418411378316996272355698579065596394408970953315593913442926284613674426577474203816876195349201852076925334260079464977430170607850254041235634922495210986462390944813808367818394883330541517858991406381019316315369868695276853128817889995539919427624599161062910857653432726181551048786399876770640507105699672866432036487675614055529771429699327639387032431683326793213538717239328338991894182237441951958045005825009807312315139061440249355741954458732772137752571302956296256412899521904450405385494595047460194226138950272093618870545193914424751962670682555836654335519397576757689665504812182007747769826629046423303518455086360377540550579888690438094720560319827690457562261177392569877813728043082714614551339603914044028907992246939025867685843289931028281745345099027667485642678424217302271716958760032389667247656392713455961506239057035499472033238962370786634278449417578581775518470872466598040201734247874256039185045044400262649521180932019560770700106670177696811131874621898388004936564003295035617157147431605788186937289568774575618326541627457400565012785471284692254286573123440800827931831006978057102004952783120259286198328276728834842730258270565718327769086092630598803593480673110571588360674299993206651236674358789404493347935980564509369303916210247218906734844070252672742984704402926333632022259928409662009594527742660719028145032137032922260298106599265264342927265583382029682028275960512451826041650669580646009810532395816299718628484622213098190496035173220021532208134162008951657067755299384228324902658724693434841606169058473334108041845431774353765013097424565071732641102021758079124844832107187710695559162641979524244745604298386023771476366060952413036439170897914229234798856391596078505338988372846665178935036437546813212556227913646913996751333412512542566342945603580242240814742524646665868905792804961169833637795270156362833633256991495937568267772212192860905093743971885005239518222137000527140200539329590138449118033383457772804323569212593887229802439827195973042384932340320541985167817209195388376620005555952659022022863227805623586726695900821401852250873064786731741533143811738403968189656779649279952043611973631449352551158344840617392097855013636979838223465400573850262346393480768965342125695342228738983321529991913672600361465669371704080314146683391972303359469881837408239831335595048978937144103884922500537439995544594778376087332214917975602608745054108690596125843710853402876718371427504708292437332218281474275712553616680362314646466093885772320980602688680070143735887377545914617962952025681996890050680381241307740032646824009768836096417878755915230477707879841578448750974572911297103316807621702598207193818078220800247078518162993349142472774183634903673085266945901117995695787509483108689598473735540646919722326696347546053875134239278040996100568635258807152395623651701973080045326389362315734686584395624772172098959193368926352930026280609232190888835218468296033311776918811307702845262303535291999302225021634570471486989794913425560313611897059922267819757789140416549980849542370984227193409581789792693090916104877890203797001911474514384052775989705894566324291094629693770539320815358741418705532002122116688702492736134739640051381307542345457526310864857250407927286720338399526666084875890561205458942586841070890037744828267668307516943003020584600746727152295467337354203023967219960506609802351753098265907578685764266454797974294750339390105630559669334508787159728822079806429828672699292388533251865158895596318473062637490134142803598369292287770357994573524645409930718654807896725521347534505848970497323467206407868972999393799077357062274483901102451030710537046598397412516098180035619571502524176249840576177224587540904324764177452332409176916907644185890239244306654323971349969729946855325212538921190047662407334935738431585017003812845580499460399721538338175621809353147975739593200833965668014189445471996941623957940701668732637449088053814959058864005644676918675249202707040618270494821693045257975731195534332231173636487272318187399225066160656543942897111087623152792285013968116425230395325534262106971900703928864212981629927909085169999079367303034633045279383564636436886127727142819694163105298404372272556435477225162285913746007711735354931376595006550556030117731675848490001713933986731455175577710678909084284641316282924734410467530346818092703405141025102831110286570784126244912261911147005542018070092335190463039240255022840946477900727035394886240928493094657219781490764687662336655946758704595970364010672287676059842553396521277771120372091938598034393256828569816840087366333415515038815622790863209981373212834946307949639656664408533661115289801265819212945361786025292372001746364228178626289411939607482123373179319002724800534925072231828996453695545712024724638712555236333199084732720151216941635407948353755195753135852781707491014245592920139026617338737884272885066015231974016885986365175074269982202302746763820181587291771267264296513754291502237906087805828097365444815122425041212065969596227456992110122067509427940735638580184663862971122535583389409071564039847463232297952753528342826517930493416876385932572685360388462909745831934964505523076405100391837211561312713198873093554772509987982730428424633754861898832365302623798173195257574337879781913880908865528799019959427120162452171230084320698383404348920860428366562312837312385246733494182083576564468182068728888173285669662246891232862084413728851199930489592415218918225497833670243232165086232873048713029244932119063961800528855136572344748631185481094171855059211563115318072098500813460424365807320537826469690798851834543660561120446848606159236099987116732866121022153376913553257152788388415168488975990504088028284945270234009422208692805726771583434701540757423778528887818719662019782739437899600848995786765176010216520257273747777094508650113567796502074810139750978561180372851969724329932267494850646119666849616926721482302694495543752628163364861238144162078988437279212189791388798838301116476465169547284121999174184882560843488438568353357930133306672860601495299190201527426800528684552143626440986666333222153675790019317930034580756523015776137529826529280289729701008944673900140523315405326702004030983651842899798753964447881508056135312268735348062670424528602010500064396937596631402452697656078822422340076649599510425978177924870669441945866340236100590347078977265144949331292255062186075599890938732123446843760960355631929764529073994762087429849538557909937644240636474524604436096971783579236341804144807565493819922248384476795570121782312988223835819691891860974956300227361551512135080909067338638606502606247343176076829563387251944309143944842053020367219603444253995665041143226930482705382788995064170870902373073553182348393225105451143604559750837807426865935821976919222939874967770898170985067122080059734904043826130590769372206501756220210165032170182410740942815725411889493658680597024908834927147965556822289049345997127975637821379754472530137480282402427137839866706144563267775824488130409577415029751637436501697157821289867104059422477830443220322386666678935807905296166023214069892962908855858237692570547306970881639573895240582561540460135103156826483939941295977312863871181871510015151949150559781132963987153751256690963864862802644517985676837892329148980659759838346411364668907237753777832518004660177107772712461993613851059641839921937098095183423613740623041880979302321826679718465905409663875263484284066824492766832357108019731405498490441635206048951090611521848443003377135639926518674221280301492868360528146349948158808580026724853642073787163859048039370636917829916136505841637558315191681261184582490068610318798070378791375168981494650587735747654022891646165832514217002733985243538305369525236963404626625074149177958742309410169358972728225071335944524232500342653479064848830720377183451754220858947181767097519637337206445531109080662269649536923854255952362831642722596928521641543308584602004023233727357326284731598924177940621558422194727324754660955938798768271876315490237072944185822790871033718301923667878296700865280188970436371344778271219742334413420890566412088653655755511082434154883373762639661886668556593669217049877660958326875705255983798855463201173997265371190916034951388485570648805409227622542402623168977745573780749598787044000844740806032534409234483389926945606808548620598016933011278869561659607178386671886033245147842336097010878718017553889577843734465461899917454875853038781310942211271450671487633397027233732050153304963402197885798786341880420945284667538492612240390746644706776429866667480809365103146994722009368202006866521909847677122511019786540247046494301578316508811270889860359500484407408554091474946323542747224797933946675952891668722267559861456631786671562924481044257566852060385989281175414622752867048119648843803063492135499256967315429670009243560782325034064124561384249918137202367558894699523351916133035863877776488438956238335751571868226051109033813250112752457454900838034544303859078265037087401335171790511693971758707929172680101366776473550996764495425909144898148043488185589578558980900377283156546698711178404494796704985789367842687090375904820716191082864458864173027830815414351272304997450554418926220259837108701092740933790634532857750243489861492403822424137172785461145999002342268783571843630430637090439142935213593171833080115659725778230738730504112780936508678677176628223332347720110894687453497040286090605869852734503230238673761885381118144229740072862797604918375765783466795554206134652802619143305033722475868722882863795109983379796040095492208902128934556493361735734875131006035601616699069487962443255605763840363952244524260352843521286534094637252687918747919771225654861800751142857450447337211228286963662774147121027462425223317455853854546857999345511397753814331255202588761399865374771119627265637218331033051405643172042885304502497069676955600635405530285160529510514674585756202844916033065720770587674305336718251035643411044118041376539438941611270336597792636910597404593875066948181660863597104287017415170075548053981421344013276534239589814149458467133782443779946810865366669582114440653682169198310792930124958660744105318398727472917658933621099270699015803026807091302077260667909133378625335029492775684284973195053695626270446003103898592603975238847791514531886810737499063756575181885124651871411180421585603334573061469367039971996902996557568753478576506830159737597731540992891907345687509360688756203284691368896110360789425667476185423480597466333073833741896695825268424587625687437270715002405353273201358263447991703209700031034336672808546472397545780083893719534442547533166421330212286653138740881690047404179785854338497236225353288000014485515743488432236730482379244245736658032732401192443342934353222413869274596292350243643951694202222514869449800479935077792157172759433895665231949469697680398534661081167457992125208883802971460329863097494498141245119491927562035812267721855685949009861720793148606255517286428308515909418561298752036150419816177164242256578381161589937485004286965418567099125853293021965546784542081189728021202846092162278138109122155295868244257450571371449040829721307445111798148156248069008369194293492326819820201522775019106655782874270876538187390775475791675470486612470780560338800675945421595674973788524905817642392764048355130164633672453322449467760693465640576156661312935360202252700764387990174000035690429722842270887132206723770647379131073232298399824780350526295114030693582961826844573373069659897446503295850762772113403359994198550736401290632160794497064895405358894811555311000067324666155583313959378902478616454544819171851018074336783010885501118982873180104614923938178332205481508365669675278497188984212485694976687613316319114315824501125112619004587432382154958496054275552359766182099078528238261946824172153322597065912522569857164371498036416236781098202007431759143610546020809998693410050593956909915795689948118468314588702949149879507261389786167453449609070198545115656826385445898045054540737411114647769517229035160426080102912880476924864541501270085216089869056071647887395987198774483219252279233939593457661363290589869710740738624544078103580716224911265725656301417702941265877642812682152483504451980031552939393167387119054242027274314932667364239422066792605352574947941773591558773833487520666295272105694599905210727291894132452115614267422488444713728373098348420523424246507129440139427183773636331645002874486313772007154990583588878861274950905264505969299887456284526602232882374347068225015271397163781093229541689432932502184744698457357314020337776848869930339294076692919807149160334750326296695353679898777924503955248271666419734824004306612215690551029644198992043099231279169232247401767450576576261833403137380362627602508939628915386209553422306009291158143191479644107775309132311810600823624075692924205714193336680523616522911982135250891883315668111967654440860054200152711418595255044570143496944185563734748742988798620628646947392508825589031104559634076773802227450375036651137187101405526221275723064659518234700733570760116120037887520380169263500442485902136502687602715849501255481940965763040175903357227884585963271266225273296076889021323204940885218291263746993081006473450589815745885537833521681959498338459500394975589430564192334873735328830795339897627886988935158626991883921566984492717877708298959148348547420807545178397364523295581452377214449917089179415398676453270905673124044832454078651908932961032352138861797157369620881278516069500219488247759715071242675553438426226430318444701752721277410299293190735360835386034324191218364130043037361672936587313208501159782622246291324176916519248497161473318694481406635900377388057529592760665083471638444917436990974161097139528221250926966959216723489807699352324268731426835038404017987873014469245439247418583144104927583391827087090236533460597419048688276166972065161452837618048217401528882812848521606276436905478234106699788699357707983867191040273297471454304834802174079286974455740672939755754833570381617214197851965009776701972851948806468820709285749324544015294646861003568473830905479973281991784301393211839010201741784025950250257119209922271942680006329547364799588163304000559884814986052347471452040893116693192829784457703290842213892591049635996187430729573967517760320109827425136225415260626635286369220550166863717195819409552960805981189053208395238953963118100646165993609628240482027764497349827474955247469391378379050929822988713370793078157424947972636107321648914404424847751882179275469045689448914797592383265426403065289969786465840520582265052638012847569945584783684316544550917544379682250184462631922995046905097773554330160524718586044525413018832868766555834815818161668160827173287645142716507231125803954225227796423121891327598481865657480022421347786435653069721267397504755065688110007089563570944591581104181857961410467663741277139135941122244600117550782630738578587611591021099688418374263006674059457482988975415658233222821929465409607678413376677062023337153205529949227350113950195433199741171962866382885268019017478844269741371455992090891551816468859216172429916405081395745314312878315039682794640001814592757081577344750266750889393166958484995763944796186967159900086416331769786286682849576869074842634707948409604110487931732167223285765054479091144571443279144772009943971176209673587102859553464704388451808822033847098087934265525737684752684351845061991821639984486914887074419536529263097555381588165006603498069384500232309249187223209054399867192624252755803876395401948281548436554850353078449642166929703534617692054421195482639305810005610034914694402158829574283079430691889511122265050358801991279213315955140576851741257337925249579576630879481765144412861488285268312355955951534266709205860319912625534550339287930230999834052594060763255583662819080214275789092093765599310441833670377169499492638635978139453353584645739013372399900063348640366360070920902856522131857509789542937959981073863271596479827703474749755261544286559761369401128855459078266787689099510478556421425356613993049788169519791489818411089558747633796835302242224400590604494955698656846613578390592876264902407351844608833343554632595753696165977552739512867679275423288440249692708840722078586103180203083770199473017240710877961136440764612938393427156978379416281273867330940124741337138882961021609693997414625247865361659661555953501250725041459302163307204629415906273942566397379117616174011449478871435609882447810805849438824764652777162637230250746871396525716691886990475215023722192716721754862297792951869000494349266992517780774683843686277662437295278218962074029814561888623746712335936286938160028614194556364122662278602051833793454210867929404930046255816513950798186452050417056270873321656217466593599458156339913085422064098031310476301515034632092354258331335387286831531333350824234669573331797836883826140771294067219559417312718184773302167099351649843790978517152299281512726052305134587611512146214348134832765115205515710066057670289271862366751536027283541198755211822839176050539342263725380005199111636661999347778061593208907772071114975350951754600061767274612268420749685551904617146946300086196927746414363353682615018475857350106419822632375502846367565313775987960106151589660655146903622980110129805848475369510475088200903466067928744705138624784569047063457041438526608800413663287645978647714405006389759857992706582843560266277332674030377763019088687273038729241235594851915328041072373881858628842462999467542013686128862738479991485191752527979242586053925024448729077433958560204333875097487474162567848600786063754505982305394389164984120892159711031723625934466295015674312847109949670957742736018948830242074592791130701176953329550753181578904682546981130933040773920689174926306736189619742189039384923024777618047273159954846241877014854017201732888614634935249393939862404494562466584667896708031647229250337324264971368504343902345108483306448169242173180781944234315901002369510540456300179571202010193200733897553547758928448793912050860866247636472370494022406229983362019179424394563705936602938207966685403401805854257504464338534814619412932264019298373889890939657166070777722342465745685028765661499067342446502277952190633965101016752141048721810071002900027968489303274904885961667561582601391016358205761404432063073496427211596757255974008447950022035209716974467096789032729036266149176337831685246904065182726009191272475362228501986328390959833581546970091570915970182633077681839535877290395165411490853684575613635620928009523580835159230142748976702764490966373538683792430223471915345751724881596050980071934414530660083193950829888771561892085533327071533823269016676745710075770314350264092795699678855620596892356292368633398699437223790693449070212963140203609461102185860549553340640293516815850590074230513297196795380794730035720555435187111465697217439417825769343726158715991617892451464601472163952436738960160844967917327224353627395779309613326334034989928814762024601088469089336405846331721478253200524991683492666477445123721090336420527920875784351281718298871430012243177629416979685591127788010991577924558275816220890859347326319271752066645328588808029806967460739218980048551259993381024888785724109863679974525401153067169076675387164475455979312821242126693091446285662611832997400897548930574789116972553479135220849078021966984934762162830530626474113059702056398242867665833768073844768720223057417970990074023582657541991289775301285705533206184340086954883167805605237372368725351353095405219263806240879252795385754317145922796428388665270529583553960659961174063995653917452814544093611182542249868159597345560335595096472308507455305655975031832497160654297596979962277859074556451033228174431770156079371410199275930824264118033010526771660403076915337819846089736754548894601783496217639438489625168179865950010837017566287837453624814887386767189038125826900143960714505226265985166398375349214542848921443530121682624274676203850698854319732383947991308566951698331664869517028283674006301025545631033738488652045359883266540863535030262804295982680610121656653486895943321809855288226942371123343619239221105606539752294941500073552572466411894829644365901628278583100466547863624781414277290228159963610177174895684936182328898538925260218008691078520562251132985649307425945877242173945529653455456546114871797060080380771429898811577711630562496728006173072568153187588900695809604125970392297785744716851394295433770015015118400735252045758639550491028791715414409313507448012921911446732694635536497710791054347305702488289420089755571457912081635088954857696778682952192156433342159291235903260894151927961380991864388175110488384728766992046867916327437623549354130381657949256378457081564898273409672328346345112600543721401370470960492306916399486413289388338931744321852801197765210096278428177186819585968531035293236977402631520710626490969951112811029667023269805043976810232084493922663434829787205069955466855228884368570307690349264394456188887468054079664195954971345654376070024513383553970336096892225455090522210349594755650797002223388646290201751177775634619499754107173766258830830114215397743598497389749442530070900500377244615174626026211301483400457382798686163444421298228369644552805395464946577160981383665157362863905887197611790616588879511619539683031436828713887827711501660943447443616003634135885692253176927228853713156795986118959936501324497565884373893184848471741436908817578722071157194909118382743144952289339490935403214306808421557944557615022538626605167241948625700117582062194002915623310433338739845459335279930625016046337029406349807196233960607172606678006214460068193764878880859219949146934810682863960483537489016188206605041636557098039264738720678667429615573271715516750896459020162248707776895186460437464856808066288990812230906749056217334473698949555781234796067311228302876489707442943932384740325350021911859790723978092911096136537222095719377119081501279666608795927116658645665818957359504377994395991105199922817156020338956267850070204240008159911507206904043220800228869044325308458419147330074790095735155979202860401620348051775158626614312448699396562013509580622059819045397684199298574365315132181248096181119751040765150888231452349279450528619244726600429415342291909096593650652694312167130228051035353011357308296060007995180934845235156202688838995625742656148552591502773255397034091076785354791724594920754212338391452136421337054449845458508216937717953922070009771170511751370821481040656979708425504337234593610573877609461310684173736436808523746540619319530989858086941231912928382712825790695827165692055497932915566931190205300755240242040047429495251205980726712162422319564005171621309300757769767040899662014085528990932603271418748555182737412278766132819714657769281429053775361456892381541584546066389625130007720815101717846193586597793000688653533635482984876398378230422006830142630788131938422707149256589735952190931735987436699029406462716739714324702227513269401204021075981282655602318653167160032921613770068817413871634696389400181604899257734460817692184381864435679861695741865577685903827390880534899923910442943563496867015862958107828949520336280236114453249603692981556260256863488474712198578925534234312753190259477158722373652890270076959153056447626663414332862456714388537633278076735735038319824763198989451954266908256574182009558653065686329216118058442200515444830529261368805446010836017324473691898393559802612848930928811547351320582806189581554601424526418294750207361782549946603527089015947311518871176895279645127376556501979453755757595064367156878498189506631430440090590937535913723534608234591427770221843301622592344317331788182527847816827177769236041106906629914956921919385395245026876573423902436107364481599679444498039399558624221610901042276711720794519271723294209193722478849005994136744018856177679850935947595205334937209873345211441951334635300319382589778626926667752875119465008586498037061815721255192935767442575709899850320985816850374396913164914630643298920364358298583291107317290600406474869541019672574245659775426514050892290320609804499033371738602610595493247119234779808197050850175673789816713410149055018735363499792878122692056460805178748240004912490861404660866394823284218356877276432602159903585362051905566577680016956399598906246947968251041978646114704949241914749132359693516813942205657050549873527464688255643370063514867460369011089947080284750835307230386742595406534224097070417286423785842149470767440443416426115332258999017932956019115800329128889231210637857004556278646796783382888763661415306033478283326588353868422241563687266227455962727288058524198114400372946780113720116834596361086982293786795109067749271059413507542049479272727540239213700832915404947538962655068378263564532226004594353932666970734513203328445041480598765303485591894262902288931537672947806463723623635235993323877220454173139622183266205303519687536902960169794275313049822982395648144074062787778746024416402893552828822020852951701371109510479654845140167146174544740833171042551667541594360577266127460040178844265884179068237848832251345917513723563415326278280738120489895083420278871633020049926192744109716596641226326617596749075339075211995179981205639420772832414400670400730040824072403247924946622085336929142154305178734772850421369441283716062466090040449805583977205070761192607244032525418627766338903565434771541913351999464908024374994425104744061899632758321138990555910419053852058908665946733880678405920521691153319298795023130971132607926753529308401879740038960872888412820774205289584615532772728073232100933485885549673879224386837137087488073282790375351321354961395998231497251007685411218691171416360473047383610907081040390537269977080407424571433737014846087110519246848631887810826532085533251585654797504489162572903250093207826717468088965240699854157464407228551537507768181201605206831886557308603464007989085472087395799410590551716286263513161000457456149904554596851295545232433530163450643365711725640175738503016206456614623309263941986046046767982306486979306324332433973170039067556406620692194320867489906507037645737876783393496497467178876269750146961681979193962776257873083515368550187895146551330617653565857707008168530418422719222300512806407622451148694667503721376434602885168881831311848221388993312052928129806770494674490659868527301616072084393417806109544051736455232559197131342243312980841737816348961371297813248387510452275091895750369165942253209440615759814696998222188138798867776438741183134920186120069457251361290479285723837439499096197551233296401885645967888225077062641406200026899908195448900294713046562982351303690365023875045891473901099708446122663989647938561818558957990472095561567237632155612715868278353718095643134299061068409448660721682704862303114465298558667459290560342714761933200192852713515170227240620614517821202730123053801373844798533472605376671264380848494282100797878224386927675114028760713875367763828440000118100644386284337584877453805707097942130054209071874140702835647473959995042719593031536980684943903431620363022830939013806270145379631705685144240668494128104168527506562977865190415506054142744488821411810522091688220383758389705690400166548348364810643963730457390468162537797965461959212533799577142032911004915046723932321474852962465937663371892409431190224735055464153162013822720717594356556180954058564053359958923099139692107728222911348934934506726144596320753659727485445397169493366274264122937765634123533518116950363495486614534617695292519806752953390566155887961140302962944466994209001751557275754230649538574928742500397043101227796930016191569235754687374965699007129041177993115957885142165239432383204422459863702795861160022568644085852545118780932242544018294208850335516221178129806596227154472753575399048351733264197110404055463657493198182975886521862375287395373010402209928731466019293572144021184436589053598290918661379753891817884223896553394124554522746516366966486143231583959354605473422091633893284972363212564046140012295343276736152198809110162207760359866893282123316853714406483678638118761356881131139011199811380531591062677098561150441809440073220411298283668593839265282652315291065856609257669671979761031635105218377596902420932748217499876976385744443624032210456488157235999712707305406534623155391782358328747498355146965430108020976659566948994203280384954139489091273195731302967756234481838309152812305280256931068191468598433747942626406004978667302544214374331167802462791081614952598794309168285259020377453769069306780633532846181394766946759062824678126937561866856611012615340582555050270324124399130333579071370136427009107729562243444416284903851282599681709738345183833427239103020501169571057606878452284254789217265903947144904614003144630857489451798244909891140699930354526980391443912055212914450292455829000704525185163217357926484358222678486149937362973689180724225709093292383123456703790291247402342668913340894520569601764643766759567863419796234665297680472253830636539657149619473027994906443959610149154396726106211535180615395145038645780714396383507286242500810568019126146476243352603349867696891835542625233070755819133026774374360363789696217088926466620161704881644244662164537641649603791295775068400170927224065571835848925761270975116601412729620164250463329375438557803823597918549174649754806258422047142567410732317829156354740051488885394507142840159680795272212048112869715680715065780004892872810211608544103332061035809929576383543933786291508870939948658171356572364407355268711459135632064743748010391419614408903400286257127275622872386703342214830600792788181725582803933833372047534998747553417365770186889710958362400239519824475213461046264442689677474159893054808316529660455685869162548008116392372750430612434386185295555291106310678943758004711637046316433270773062203456778286069347746838440116495930788917892761405566046249004992983150011326100331254197050236736557148888201296384599279541445895052702282345253433704182526438365155449073894466192849377904930014887611724925634060294369680741989162430395402709843393777743112412064217996415752931587823925155463672499377326107427961689085661659212075984250364345707121423052712999964699544546814728758858719880645405139261940949541952960557412356123905839950374168242059647842828157775322066673963751031187238874150687801217967319250069000672312268150406024843554713792573493649682890141510018758626855851613570081296078935619407885482127548919609506375209958917537881794380290311494180307848277374977338166985090931531826736067299350903652458505771710158872945685259395535528492147294158930559022854405805806894413350260521465605402212803619087490724703888130051429306619981785545375386379080787916185414650513286850209804100042631505985404628619728929049124485584832323775931352764057328879956042996853255062083985650212918150075469862845614588906082552012064095332283415038166600971535426295509963245481750607944534674595823231901493522645249941284823429293523456264459079558703703073473551358867362130836627971844070610563569350775501154283628781071503983711071893290516416567849531633880371949769049971867128119933296087818768373515540744386810089469746289427939710589043875421627318133722522106438443134817540320947320909712989059424878593703141759233831549688735821963203114512110599973771563186867159454711606585747955096004873123545301684679075192772015834038124522670601303179146874231190449509346900034672369772624696700986203902331217297664206110606036051387241607199493323444923992678897412646811230397475033541916742545811328710110547807234403419821853253755117292919638494075469892084315838550653549400288405554509024294966038517943689863068590545495738887232753953260453636416206650689354099712121189969454400373716015774799500900435553712100128459489984886592460670384380698802566473972596017461391047731687443997454910950298434333443973458492402833248271167575075782550055852939951374901566920563177768242868198271009926047539836650811841436939161118312521806853202299613326289603461284967028326597623361176353971710613244794008385770628248207171750327840309584845374729266166410174548944183076798296515718353633806799488312698094607324221705631928259415588124345339447997423773273574575308612960227830168724718171266213960730512122163456743572931176422479533188454620919533925120178599812819927750500046267941951758433425456825862468317919144838043084883484501960085718352938084276118154819109614583754872695390175566816823610934660353173970759918703775044245064680008331878512328334920154944606292390056262288882864839726940391382679729262481040155805361731818856726953340473417428166463723047642435488977230110427825805810540070800280578963421175012259386514576576548703937655190311222440510297304794894096669619247925648856681680077479841314083536077980191908811209633292538774984776279591231591441794477226370357441992420252283625724404100373805847820894841644537901296709713787802149268814151524098343741839746140122201740322521326532415821927366858948687866030887514388088769993088212384185204520015907282432642991924350320964068590173049600457796550558925026167295266546894580869735231127582215009039573436061183633818209885484908134292608299043452596065306443062108808463698620532821058209321990188833380142226054007130080989351875030640714137527757440185452777936718420382626123992485676905365835091938368070162777839511758390436864130100540174677061442281407276899648760343099152666146961283687294969523337660651762673804472193608762772256873592338112295029026343332144516826419389090593520167002349600264292382070207698108613793655952804972785653510266573183323434391966668850925263157566608474360939527914405183611499544271489961105594452034009231280034450699055734743147822270191360113603647526079214484029884676477501080808760573294618611790610940139650582564353010114253498246383002772314750955288248482924834762756503189240427680649451172128764867717430131666054763573960984267634850741028149499363881522182886668575556671203132053548207449225413134574641521855832357752571871484706881795229997775204454629156043453914920775863872338858476604290379408877602544117707956103530336229449856358289714754925608605335076484247035803886586077034731915349354810433324757756539149598742458210188639862282693243823766965453860172153204508702460255291002087338912480399414490937540432387500161139954431203909877960822657153277439799664789854596633077527751290068478149298412909382011366380730137283444680350805167363083247331325867617629565172301126136357305074039153077925563086535655127897892495308946316641623341240064530120446171020382915922883658495082378044701930501908097288377103873294346616392037010418502199467042578327567429428491070830362124031886223017858416745034944221433259014678547514146889800921196907514775170718415005373907127436864809275669562879297954796256683198731583775137596894769499789928863801105623215747264997334147983707242498390916500679075956451782135202368253614926081044057488332399108665082305320285170427296950193769561489862380409330903028930700547021488078540015748532287911065238425824407862776024081477350476053684561702061514879906881281402548019493072157420305058741860817385285637529877083431485955915675887840446032611286982105489287486487768994062184428901605556775467951282394999558709072111568104318077497326800548921379155175707511412877904762989384628446930656984371358242280418778628137862744212592991445663746535950335953033677651799850923905295037418851990520291828793551084754949023704217236540233787689929253678600469279484342906511394847334836463072812479556506798662939674777623781687076193606203252641608228747680249069988031215524916378283490479918906451175553700234042931634602448553135544920381556486717626492335812741198069277560979188862339006557141367057380587484762798762560491271843398287354291731179534905994898700635916978861315315359517034805281452840136331034654306358502783519050789170458589857051431888318070918603363784053766518741200493650239171302572667087495229658054610791322643491039093007431087143024378896030733344351733185025068612846922016880034570608687863772585178647600045772135720940427256186626402825933025291706240998299643073020780440821361077530444171742964307178294199497784180841135654505323835736951428612812005423553374369561306940555608463871261296944337207624287631868255193221316241067373535061981123118921903569915542293795148955502701451843846686992032809358273316787108098275304798170783898886756929602933860124307190663086418536517683591851208811455438337879930275620551910781415596259269699326413064410128176888080345831473133066869832496576062091626542043423557352149195538644863661727572052054377655096741605665674501101915961232112926112356582150698791841336509462834895830725279618921680663792846403528155731895471404281126439503121121774067393572608060120419168620965672381721278244559628674750995809821615014624971597670859896548317361090681943929016616182350626392724639041215364503630131706101560536899074482375357855209322116341331754216662899351363729110848341025593122617513926488795126385327688242138003620246659902849609149116675120374747678314863195832239717042874254500758224887841797389135676120760008743896385252577123649881221498556242093453342881570625600643625506949629870440370579843124560394415657267051574703708619491629573813049845477739452670040124474001585568824074047687429191188718208930780333992516542278859450692103299668146308518773035921936194430166307653683214605802652264402313277920859044375224649990371368759069338298917928529247961507270265977534067176628545002760558177482994797959343527438290601950926702563948116473156410692929416058839195220139908926226155699121239084358577273054057925118548561570746881312475096701406985065770887310264883957370219702489389536755063575707198658566517165205420438349613842030149518568186915079513185807682522663283940637592667611884810773748579527345059170278766556241962188533333408770710704098096018296596082891988559962601850992496338729401378324080422308784537583256186849224920726192995988054048185001771352036925633969518288623523634061584780649162930271138690047574161312592562618384407355801778603219936053971018166355490387322531411842263130865828711281253058601628317033699755263198774193705877336273135384663652920987296172956658747966631212481125389021567733372723615723672896217470856836182091872124881537694907759204545566493846952285743122887042190508886031423157530385622439896355705841791759084123408322793615206295912347862325919621896410381224792243711612877392260124220534208590894623271698184228736408183715115654938899083413880082193721122639944447471610105914314243297854918906082411642634638280765087074250665239205496720272904669237673743833210566035240873931353212469706541605899406772785723867805573843233360203287634219928361558385794640327184016864522226374754699322617854070454125301600686028542859295833058679732833507575833747564795846517634851236022964108302563552535523035747164053128392777523815270050802341811940183203544564706791696691960012722875090116054588317315516471412014190972948403980559315715759170106606232131257045703226129070682947312120484862996383408534393628476755982047804782765963884786732724580330522715236880177568324754119661357525021931850087711245348976096333306250135879107512532074472021126356981646761220250681763258011047284017118819222933301751222890981484424771749531757745260667717458304000252865179446983897883043706452547396822640068729556598916617945659558902559637030536561979349946944336151112403939134995243098278061870268146779673962719850444501852421457762937856247933706609230548678066194254463222977566052773875778605623181565235949862817997942288936276444901499274953833654018626885733196401222020717192191058035933352312581784209628417181479161000541705309938229586642639125625073147667786047935749394957482372769936246281846952129105499033413720033729915158812533035022976595328641856062975582804600255317003281192455777528571146933949223637917634846281662879348705690608403337617790518419871509943173786722503004336415017317661014544469083356327674296700259804676381018569418829420196835592924699610729951364748351272380255868544560218459516125137802753724893984868704366279823277883041368378628800837908385075648324386026381204414581837990445347059710733411218155524072374653106372445720302611384928441651608430167574513514728380072768544581710754917192376674903753435869520034206888229471343817323782807697790471851264219925220888299151206999364899571265545892815351892298145738613798661370673117716983899603243687383846094692554412147260405184518579433937761464482010143091868612499987249666428385858426741644548800030688715178442505471582264298186759730753952751944164438008369053107364505860500385367971433351694485840155061828810679871448048947253838302831060144643301598672569499847371868362171608692232104861519613855580845330423245195858415295599827511834045788302845310705003675732785470740339028352896912814832931407754620454671053309893161111126775938034179483299497684125228835212125894232581154721378490526668231531362008350058558025496541274421303985472992208209444073957493890020191939529863799753271907222760386943129371968623081327206049924599837692414412302820426383924305595023907168746724830145936226139754643564537895714057133829675912702816737903967344223618182581217264501154293325323215415843071775932391359675221873619669820780775269137171815267531289548047512618640399084157785214158133921699897578628567963585640581994055763035787868350253926120077562560429214891016077420801516564717583526407800870610428715459618401517187775101055752174535551198223701787144356240586736964257821342647862289825373763936316702874878437370875180912676030776490951520722089940938913667827807873270801051320414413647214892855629492086841273948627000789499471488947118269253533306716793699600870253711331872089977739500177927536081785340237256750088855771915837417626189074891052958464193526473954038344203120349094699227498144421971356888578898042212821997515774897054048308978351583191046905710105867664264378205066850557466607529300520777192938110100019317944895341962343209688584563738460381927811586571972115281693875368744240610832275385344542759008585208865800870840292237988675029018261444146533583142458419854211656780090914045724291052322935145517532786728192481872395768691120819753863969433195949511277243748246264146638495161527654282596992367895668619752209758869233760706415508486231327835709822151491795210202497981013436926608754829925392000962260511238250678328530307842273891785886871047403155132272183313935088024373666393651697642308523225704690998461611924858207520954793204574360966344416742973560543363716391202193273508414618109101808718968841205242832852152529184256138401247751833526607934325428875406289313344503760032746448799288587316994976229850864454521923631619410699143297696996640402795854498156128696761689320874029005537280692919201444615962552247617869293383447674716267653126703688270910333347990434776398182390748709613984855724909681237480311592468117812022962907904458127778796023571489238079692429902851939587301677471414296870668501760501622533740774568345827462668562821719282252799795789401905887370834088005927470871029520244268401879799210803399062205457156207063345434011989712150413978420403527775745730871732137182214599645544632183274500874326103257319696241222480738161875641024481887083529647635816194887073281317377416667984323497506106882028271202898341284136784275443569071901770866488818143762271060613132330750631048529309999240137584325543530847089515572263562075534177842234172913156320026297307453919720301315463867582993074806441911486408589148312201390650356301960859924567956197245425027386224402924705724476932975548706322834993315082583339033008937558791764830766760911183314215132881547461110237256677562679387788097523434759078700567405903256120975645324912522869219004270961887994773186704266887477403093333741735579862361188899370109914702257131402719233472063001675815652480855170632014585119167125533744235570776343782237762026854935600922150889399833594449630555276182534890065756584679553647055072662267538487473005371107108544550756368426132431471910011747647991809762727196355433859186513799526022091560811348371869564084394983786295827287830658810284290883692115176200589519288310565895677681570012139825456494411799357959777721561336782053939788906389282708980086857802689352521469690861772283721541012940375234568399952231141751541381025288321507987171976436377029690074201764484218219723017745074535513705704102025551191331320786982774118024452270260899660077779507922818528506090052543627893020767717188141144006387459116118445749490457380013267230747048948742361496255519538471718244196578216820479129462085766671484876287648315617558770002571197613147848402668485558966841054674272010615641808567262007122812700131533150821644267259956452659533568975537797490059527910382316662405411812394401310332998588611966596285172147179951116235482625423750920864741906656554974372182053444139848410672687820424760696309923353374320102229294188900850824630572880140036909408080207745699872563114370596882385149422757292911310043401108120856670562673878316432938086382101040702913611072132585072521022654307764893001238771368068533271402242133562133030254847000656587236676176134366602969038077193750264895467472353080030724113811476236004383334934914460962997663427952965010139868300753044356547557691437483750047782926681748981785918191967875640341733374132507623621803839379496031150297285889054748320712605557526599262272608951760407492974183377375912909941736064541740969445652358187233507334080418095620952195498472421114360971738800635021505348571838913199351818355898447650049191141081636066575740965651474612915359180189601712406724900637389841869486936362949610923572533326074033503798934347034696363317971517407214084706177202993559597936918595461259645135456060907080481092319934995324952403353654831598478061354616157138743815912001848872113625862373107768574449085641440375198039821921524696298231336971404512736174466488273625370143825870183687585704831132284551510750743221218585667806884635496256717330422176270059851193186079560437943949982908987607565178090659158593580119532069960715164660482018422108084254811522696461664991987666994525861798280546673534834868956069399250660096076932148848639118646036831928596367153434548386436994235728693837407493727281857779222083948127460392688736116257347268652752808660965811868734163275446164957352035588490531076627371093572182230158484276652345984431350067319660136866190897897213376139196672963423835811705813952366636520231345785949684553176273245473958871231534009480942630828024508606458408620805694678090788111749471074531277638790757614481612570307318160650262037662002101288892962417814810610204993949530855733459186990807011481041517518149357867141450044655039677057934118503203551099201490017461461192854222956364328594744527557636271455601963267716359267176448046950041515640797527357473625311623584003890041628322491615038701460293209823235747501337389991104896554154575070744806633520455346984070344307609510289609966400831839778780971895199721647702694459485395821670896390303322839025749892866400771826615655888219048550208010809334441365343892724252294082651086926642627785729910865103662425326861332296718464621621800734202451329598941439542048087522137495450774680171008014068534197746151470451605126041611595863879010740948071055155656397042870032259888571652419103161467442977004570565568407361866646660170194646164070192249495746692989687839053826263880914835132221195719175662917375947925807723978912498785223561784346284404571786489398650654645992382411095003321130490910431825141063604618346362245224592859745672379536136560995583333715698662072986051652982035814870430834114257836875454133212350261309395250818494479828294087139425501169855701721247720376330738345980958454183815278189876994199905069886774065170289031143862624082590842734086103141433146844119893108217521606745329611810780462813602859898381074825903631003371001906953025378615288862406369458122843900376669392704878603208818791601814875968443724233140081625777162989718522819611304227221986806265115947055148980638044650200015029874017571708243706043498114451736612916581407927434702418397856207908503431938999708663235096072241616963911748920326640980962388550119558531133991788588316685281349232725835537015377126283506172380479692257330489908364391964110451385178517106886386863993889738707192904146427412262791170547554317725786116291560524038562368494580386456214280712172078685824296024451018972723432534600979164456669697961348110066568498508927415947717932303563492640396399617064265230819384513987777871281216129438192892207713671523632267238893724223230724808582729064206698610965957938546347432781552619492826820709546531949270721792966504429717848927441415377229547426427276293398481143499999767786969344565548241312974838712516592646540725788376269346131207474494923491094198367370656953219596514720675032789642898932814637029651692378934259020301377795630656906688017205926868761637616388716523231026654914270823519983728060100413631365084630913197968106057314324739248288856235919377507826049694285753364170977368405793940953959678526564987071746871315013919818063362649419028793552440074554583797918935129197223548441733343481865565617127731039751180174912543263619108368222878668901555195788988435794375403104362543302385620570729794763541703858244976688594614984548106819170651703269894893572643622786832116610286769125334634227549428437103800380754486257748928968133727909983490110346867150236689649136330853963565106486727104759346439095560808788566320136352477391732688405817313298250569746887524424805981726413974912119495762616676991100635104719016029576967592125371484991808783089943494719608996113439130872028150937727417979763523309448413155347389928217828351826629171820153722723758522659765009946377784475500876426714530640456098289017783631359175580157208715231877192564014830913606674776412401240402803328383547433419830198623556123145503963315975043044993556421418371356400835623245890006977500406827134696561764699501117732280685437616464022286469174426933330238031239421755302473895429584441958746383241851722886639554610515014079735861826664373795151824546173248042246282655365895131281297124649292645377386285083972497241250907000046290322108176617723615456710382596651317272651638735798912188841765059171855283436052884364407485369055053412712543919613718067600461425757235170251752371799982433819108383102304704035868222777255723612907261312803839387428018887147488107811080060250235142326606920365856827190019980111023027903348945078626198132320061281174555653927576474113828474449093078707600034313100371352556652350292063591156755648509213843169823023847568441336735554476761318247847504097282191848043616719666135011745043994750686769765499354638037400668029515296439296257229897155943270730984936589819023171522661849203097838535834689419240524803602729270513489478132350108058314582565677729694113255580203414758626076490929760398353476665711734888957657664988539892707533546608030733614377958605752918808490559279612276046241464857804535895522022575525034909479508856637790099945986935853964881520346915220065241355536722822967685227172365344038324237610527099922381059281887636746030469312439996633593175723054486882662468031128693678817086686703134822040434429923732802198180842105413039720322820528961518087215068490373630831186091386847950075584846624338717705155691548760065076575876843933120020141809387159719918368067411547558396658997415334729577168626331275062813982762336793562200401922108648257823007406275626947737455844591484892005295032001921957546644153187578347845837072032536269467598352734194339487501176531651238137794201232037670356008250599722427347542324153354290164420948169225085790014065518738352577921077771941154318291242783369655955579937581011523219359477904719282886752355709223534783485184976993681081932835586726951686826502849789289291471732511871223904551155706595899925868235788095481246659263215215868638069836833488236121822443121420988105056496978042751668071398212094923390273702910245390969828172570998789665854963392996090645965824653464396450780743599344776791241871288868319730240652453406715711803912057965025727504511974840564409730211327355149418819547533394693977268842132135044875812534403507295380006245647396536757719378953224262308770228503290874258073624684726836144499311360313994328003851506054640229679516534991812950685270649280760952750833758173968304606737075223542539539867833304876287048102029523320844689717425119730492487271930492018697054424761255273805698715538539026366697966303232633054203208600511608971537261449635550798952875721474476898012179433601361332247117057212414005809537531745495897052536861128568353569031284815113369239777223316158983235246872549801808358276347836002485166318786988781850239202747153233851700541641397190431947786286785111713621948123792561654035664755416520884068879107005718641346733816607245175908408926630746414573573000814269156849407286545453431220072433901710714354377478481155225922538656090389209108549203704810113139137788332466172804541783596979437170808083441548107361712821008010452084747888960002256639720430386968244806916302721644474924912327468835596031619735481689913595896050699871810918925081588301291644019969591330791989415836875020755313906124956872825166927129714348475494524877657426064174932590336723590076604646769725771332438467033557120824171938707807732858160130355961214774114033095424174236356952130321730724754455029640849060749413432619286772836612958062214662748979490730620580057419372800634908799998096433398651707251693493368064501264244896378235674026217477684784652211525791158537641887180913331479053417492049585177651498942617819154503960756894282320797632087680137156717361480614970890577593338060030517316174151389473720531799237565156951732363355626376070920352030668642076799413344415528819643064434193892258676416826829296704436870727605229572051866381092683094524890165506914388778202160665808112125566630262324450016015648632330352441215294667112039848470734393037951830289013820614459471963685805156952590965786127335191086645695451637023645450210056402562011019111798279638291061684373732143125286039773502125429145804059482169601904818166086417212370583750447819074542965162771526970447316051431845671211705437429047215498281969848713617703429551180917836827042283830116591939278537639718116665310127940543588762787343899422414307104861177496012521852567729071202254959001645133393400952027694137181394507626871350402752034749002369245506163150510701303138518573437572589772656228998107001164498542958746942959321033402413854088436473331550318576566191767165248392344254523285516669645370776580613977387023947521044671336328619388676525290295791790085936488677475030557154022368126622026766515160906647471531766613778041397417447877823157049525805489107141481523735104072904505521201218941763207044008380126306090634006191407212253413751455209431453707819032384354252548999739559463803785802249838318632017823108586749358760770710505230814172576287453336310253147342701811601485364370304420420862957460410382465060116575297272397805210835993699437144951278587682352122922449206306012007951181614591634084904730952653353104068549107800479690128067613005931067669021720607021676239407575584151300546931794425020200162530614917533401353991383835760434088285753930248633007458431458679217584532107648245824685815449410541117757173342856747361626742664382077663411531510711840930866887222130473786798596424066423402262538257354170354870476535604256060791539207820190008875740168561594864868437405637147913684547465216551456010107443727452453435030718640894848398141793367814273005620525236038776719883518144279847529989826472078345801948694880738008654122704064145637409700809262095916276330321114910972924306565294247117055167821251374735332647719176227446749950139792847937285831749194533195771206176053009388603114515513052970538212210335264806893217154503098785334678340401967767918682135072202072103386035673083537247096294233559354156106079224792325481244461711476042955562534978217999094540329098090325377756232593504111616866302726476638776763631756934258130569478205805228582249492756658068139597268325194135784972098400774705643993785703038380692504507181780419419936431535022178966931442915683158778081651823687564492626646519894105643053223965514177666516758267279291225631424645619350928869064981663706346686922947105076059585459156219836785736913126861498329337651979796651265090374074817021410987350463826986614766851546544369736371320616752377528550048070689236714110092329157251556115150524883796589588956135276956415597745795217116666189680723389825384088684693279844602663043023935013346548820773355260337298383193755628012330993070601403556107689589008430311153969650979636631515067307769303874689754970079719011640695886554029083796138592565177998528161413733725009383593043934358468449241269524186064790606939776460902088144736016046406629420490105241635108253317619663325478966028589662757757767074637512646541960333988464508063925987722288604085677057293925499176091613838858616446470398397346306663293044674635485688534300535844653371129476728294948656341421973218935415659468225952440315333764206439340671723324162655146639446083337299519449853875641317456950221798888526471065530426594706952275388868909386242263602905702564345475966895259591464804940942553662832853608773520767750015632661015429175401484449532440775210633988802634075591322138561515901481665732070810418546660181876636860588415204266714133598052366909256055969820814959271728172291036637439568856150021237025274523919818499558850773087563459165945862747229227666015691314637901613614894785779225125423568195458375174458838662108011392017848018336021106979202706926104654701162960978915388222046305137061422673200750490671170193338899384686044622768912288928520803218308217325076846688944069505936190782374930574691228206726481044131338295783492586631944707884908954333094855427672318950941890421274258282081508548963910688013634102825795829787326260775035367453753207974685962733090376126225560570399224352378541894397740136992900788035498587945578666610325202611976163374217708533399643123718662927574069813091650396417050494251241397239254890731404580791712723442730414555041922212260942411484235381565456586037550756449082548694506351043534338560970473979430481448943691485787781549482180684906594146581919222467677345581872193568643626035541417536505262840566704035012824495470210586432275080279979721683127872990704891533416990339780886370541418335992556033031529791924124666464631326782221423051542520555916781478315846981634532542436121124931652494731539674729723057058738853624385961265445743581971247542896544101017396088183586124650231487884202216517832320789176139949425084033096570002858298642846670854341541419154776274014966056174895248819309107438598025862525861395217506817904504211266144875703227480563531950390456847760603988470610552825504580925250537919424168763692959324026506324500628238293335218625481879548575275785109218158788630642684272094168848760985044273832103504873615268148547047300045745368467184032144685640936560592932675211273647065643846476404960463132109181281331270008005326679674926742321698298418820422658971358638702681622237027791639980971606525603876288094975202442815579686212604502785681128852476850334102239611829974852921739997066801656275480967563164964521213888626610742017459506458657094351308665831834237413065453486097556789735774245940375125762065533764353867587522852044543191308480232557659482437125232681190862584405721561941194815680838523369094133064007242581680239217347077868129968632979364785918576619179000030134886810539200289428760078131726576940026261003804589206045266569169536758043055652926327179810126214029919716195533222767454364999862448131066244627104803821102771654981912452146381683993983472160230591827684078537134385820027356697914830951328378750064082098804642833128237670631104091749372756514822648309681804811555053627282809362169161711295244215403688490240765447201957284898417057179712193808040531743451268553764285868443873936343398932649615921611692013348459570117212481923213254423507548034429034136391121946266718488813339232506878792119714934419221666565637471066499549083205245252819031905205480821073801440673635505228156793659401678377942500387587186573550732721524987862981010593744099791778551610770235060894222907233944853431530925882234809728881802577116278405813463005143485250302299537655412019047212567632254965365430333063606744528484991519189000847622920581720810953766632378810892631171200281309296450263739227193286810061315241614597367568338409007149108744054186161520596263869408875371246081918921189071490008151611412130171705410425393215527013771000067408320117631221380870247980495937664173357101009866203784740091142568086670658582291742930993924818282536662918971148557651003628360705424143958269923269791564859785553310009600290129802113006099713895700415658059950157658950421717195499550610093859926446352071949878435629322115644999285907423249469153321301847797530267090019911239901226523445104653517704757323154267464908773433308982471316912530983236961246393756322320825957686992332097404637164732185004641664236709297254247780304334473111107673611665969307829730442954652386413270340617421064344293103627420322710328349920056710581522344780838489359948823252877296962352274431691647002397623254972339662724444611967210731531031785876509299492471559890276762186804637233482028748203326762617168324325875810702477860753855781522299706407149582118178897391310275222300367921869580064218644334059212066689703364549115970103813683958208945719270998484678698758994835482841298292602562125456394306112238037393577136407479008552705704098040346187320445082528494874911559338811876193587338776981902169556865486315209513866078641531206883929245627293424723000239946799858920925539307199929691197845972861004493810018246256613270129713420219450089024469940855870607755136375687061135254206519476283771757753643936282334307255703776360157586071903969459235953159056252156327966679679760250441787903039846947776049968050126270696453194050214473211580084607378747995423751131970321350293463299081733619653321425836440469964689294505860832634913056262130682199716466940267383871765850946375082470534122976740599846117694471759665467740791429189263982135134039542306540169111131168469787566019716200389984213927147866723218525586883714867890439980628941995575378242885246090141651947449262035752028580924395819189426055414581972618325251989081933163142176723379875435706424629196955867958073380601788553428005334383497419766152032173994247530293371415895685011447736469531308927475448807037478261979298254823325659881943578629434635307463388581269253279007171919999178474852850794482072539736494440987863960467555109325509758611426765758324005452723600227365813326675407402306498836825940707737095769489869878386193873186685963046121270980887032328965203318143204627750145509508194838577117696272247549714057731184700212240834187854869503160770737283372650212716368955189570427025262013008176526883322593081438169068776902684315688470976844592325267676191944158650335806489538951762109074159756947039013368908849748435401608441439968643037895539704064614965100911427211251654235558307538523242049181095883355826502810120640859610886302551986601486255505560726938042364127830442585277606597473151054103611308697491496394325603527981321350877792413511335014617647584123422569413414463713028696635139482252684697188880534192427132702973937529233682396248749560920378490210091194998045246845705214830009446924518792430248046147125826544332184489368945554475205008526069858737049113377099275088629217205655813584754873177845503182074238404176753892964163550430805651578317712991215427614578431510424152679303461620037646317536203035477161672961513827352114908231711736486486219743140498512087302783106898813281497724980879781364244371080003836717948487324750285772152298680296912820902374689177643262890321138659187277620838126622426527823893491306111168016134327165181859258321926396783774158515197213553265242746607937969147757549871978555061410735023714667672361789225118149574669567738505451490579219256805938731353309984682348720835635163072080895425798728108909146905412509176522325773273285123889378890264587498020529625342972695636669477666461789015328986000073535853358923566883921507492896714324586691076904486937199991499956364323658893006309785191976750912021016797796781283642364422001126748428587346498484451274936999160550154452512755913174350194975841970660942449639917296784214419371470019256618863628410459325548454452326766146253270949194268677184559220850603897338773215865686701086993901593047886243269015663767079726520082311112008795668863908673649137543187412767555955073644525993469473181217159422461468164753638072099337015621524433371963440749075459270756812030002412761032950678330642080813826892880005231590516603398071025937059225572072478934921972066294040946753205877609273117249327260105961668909714732642880806949757197065367646528259379656779174701748233956276270994351358520687445766300459267738539529557158287432653665439763790970330524642876755670373801955707570642379881692342313814450951251188969901483431653836115402111872366369283546165723470161451078047984655980735062788009879285667163605529112851585997965766209657512621696244112084280494447813338072889849131974348654953500288565760476432179263438173805405919973737468864885196091676793824701644355960411914369490826454643990841337638764781165942825455699826874861291772840477156044697985264514136535751590537115549949834759307439863187068985507934813824888149187917781567968669713769064670858406676655738199956653963828195361009280996151429296585304466972812964359978582237263133053551630124236709980287707296258897944323554578952823750828655067771406932593665676092380404843497975316877813012145966582517551963965244354716041118959511048552763156658537581794950294531744118936276616734051767062376059417107908073735417211594293703698585922020457789785296293254524449727148219141661616083973012023052310481066866476728954645223096397250594809167558365506371534274073757471457982467717541382751089621639960003664845629926143807420556290744213994653746445051220184378676947082217958825020390958156035737006343968202669029668978199687703066147098611474407905294702944612859433203455666393305209740485851825096961687246798696527903875228257574448737260772437388857769233717465916087939359112008735405071876969219776967406996545211995234900521932146476810024378480459146110217177966149153620025649466135281211313456974430077947464733942044110531063280215304528086156928040240431454221547935142909457803695412282788315185935957575631031649141775437151564564513665585397722329945389317803094405127388933319088051904600547039948929551214695997416475479746158830912894335320942748815448352881362467323259274941541523575108133701329517730080260878345885074777873253075326318737849556554426048883990493291294293937464698764549466657925902019729523590793278939516703682471812331136053829356358244918363770193632132204660578667127685814382387691673734252167898209278866076655150377191800411056933803502581149441875372885445086997924066496683376810209370593848246297833565218863806423196241143086988223548421853495233112769717488809606679215856600605928475200544457111226270641840184661142529749343923092865705169778264185812830073437319736700600196984937847835318496434194462226900842738793789837804555819016615874861079486223419004996063469353134236289618860273563478501951722393583886731340759130870275862434171272440663212224210901387654435335463306042446483898894268635702896878713400103072357161493219394279912993826186604614472855022782163358985857378783881215982802614476112681601583671476559378505195154979564885714376477347424617094129268572946239095127580143190489361121060527025256772979040345042802475219334117400774873111134489862506966845371698978551393855558860553808181136732362015531465571391373133925999063141064261242663204546984745199385838259822046174814040014820835391934930081241193648455879265698180892380687139813659617256398363793516823085733029550537801787746818672716735668348738763380431938094147038025728855723507339022550920949862894184369764643367197688078301224681201771190243652646239680804032276146769295904433338415084050325214809379380990841166262281868536600414404527458029232314738011079663970327919422753284988972803909556565999030166688649985988713382005266627451561717020365494274213108106068859748615697842731016142722863265446903319514516477139361552686138658353478133271507775033688822999395970248785160630155736766830853160540028183933205556334487156559148590667300701598993515603147550883411513379987749689774445609481306874775499408783332314061918084905855580337695522074323893663808196493921340115207349357717415179959763569172003311222625843915810094158203853987617559706687566099745013900524699275033557700528884352907701168316302758316954433730438648035464068063966781873264402697747570280897159622781737279343123179367406418802829646011100574608921498130908293911078523871911253004006971028083853050273835177210806787985528868775481231661434149331350484509321029572263286103110513536723397960867321786712460802712999244794068319392872543469323805969659928950867771557588491638313959836101373069962384473001967242140452941190968030815590126122832209349118854949717989573832145391725091930310106805274887557494429584610351418341712441806455649349926619819707248894115640276064002488471884613541061773658624214562624213047988326696101621773400142183388998191529899604338321732796134842685655047496730443138622980732302033345921248280912677593649960831568209020150239251150618865691862989772126438114392346786604237520488841385124814709245005875012342835101352396194690875048952416893564969526278922100353149833134579970961236575115762476433842917354556792769028165813895996692896695611975582077930531815602011469553313586626001966489828287636880767123169430296276724404545155133067287706624497385006652716708923304528526726561032717718291646430059315896018753189218749154938911921609690266017912925930927447352213944809077683897526412552212422558578834272515024295469157617738510980313343445320356946438305377665385605743766025373253966473504447958242550613906880776253009103405814765922509621342405344191707700887595089227044099967207039687150497904423301755267472631113564808243585330088711012945363802748617260091832395160928259435379937238302391843406534026843418977192450326109306806165702959007922353105819538669550456230652736285124275438390926940478196397654599646109847190189451337761779834367509589514349556430877784760669885529419523481469575195043430356269385568326763800099245571242514750532881245170739659652665473993585312618673098778494167250810336290019033311183318448416314298393918790983594027896517309505915038015242605829676005279909420233652281370857453112580754356999914273216032990252840526625093238299857638604390340682439579657680034433951345600096695263981010513486591391476551802156115599423882627798217306638520743334399203067835848767814305868136458373211478112565485189345159896460383622108906160766978889720560170733493853704687151953844186693695810129629197631523815791865706363644760808928515395256249947340269490770499977173409636220503341473413701608469673094059818208437926958637991360695058035302719145148547687126801448739745496765760980113631245007366161066182412528972598794566724914275210806494492617184445703708531635373221420981886550919819505045904355292248550044490907606204600390325291126316775213197323765045871809864938275706501144595891484078923441863761413315754877995320960449261664284947768045366642550797227869601758366038069832957585686933238819842664041998320858350334180349851889340179853587308981698131815544693201659208285838923812742142679950508379869572481057402049144680155580818337589383860004954102535201800797936904435480766683244912248031854875356934220858409290710706461667495851763035585376491749376095419282158275675458302256838699151360950311344048639526208737358779998661053771408469687832110393563040801164014974550936627278268587912636716432139368942813760280946818507200636002399022114847023842810419614668899612083196170017791508236601738571771499279687360734762681625963351122681843744592427845961898048763735255614419691452728414750619186149374464152965628580395836327793431471860096232272735028575617917221073541828167658445501528289853549521062284941844383593072312035837465711878034850067172034833735048398744392697445713774233068137800578861266013112665380538331206035446848374790006990044264673443791625491740827083511404546814297297125861301721221453855034678298225055211293782625207759764018311603873151856023162650347173042881966348418268867011563591446063069934031161551225206473855862130323589589705856192061249595004619013401332726064298817513123707395113785537768690296643815673261193016212604097808562442665478567731221063711990547229720706618995771328715185924883388998354808584729466273135060755564485055723827303189797214222897168015969708461833540602264873162497320974233113868765106882567930296494581625378388499366191954167886877031814174598642306299938002258627910527213444947914379110077234871346394690216653699442971005994539133481334002834712524878449007959351849994665728197931191365308719428130986413324732715731710573231485895162176715191765521068637756571291784917319841316714148895816807096472305541095939588184394449007588224401795228993533023799732920228341587003783679980175938992121980078831127015430022216195530616495467089982698128204687417046596965999354223802167485264773793460247460985057884129228033396122563385671829504804728591264951056838174350508158462477995918211305013158661977513779361260346841019997435163788065279702203260382243721758556933917706867704626291575585877438519740165812111720358816239715286398181971310788344297278119325975253514256953786688726324263086619224186205279564278592837485474632917961970418849275516948643394736380913201597225436664860720833594539091285458114699946816822634937463789485286045975942888831747449621989330047624220078099760290975737193237647250115799641681297054842215347616593371873983323333266804874649377551176103792168892039556238770651431848768937454716759812768899628142930643453541554388383820091612156474115014785191318844257043290065253254724237325628256203693873704501622528317964119377154992210432307368121664664245333363576381753708067375809601356669895128483084835498257326000147235885942076892298833916925652529286948307251614836393959176993996897219811443681133041260909826225997191127621225636004083083825982127250536710560508674739005963433563376786766550993516363951368423808719002547653759340048539036100528108149855908803307381232024353886059173353948828287471555040142841916160510678944692271852873374382454691608369152412693065637145293634323665961414273818666337458026134460784681056435904381045305026882558285086769540785657397838453862665547487387046893277624520026310260150108836690128125837083075180516165288094914189347887394967953484700307972121961115720148583230168847976862706755303259207553766241920598907911438543073425575693961478712471876805027146673188323406254658087367267166356427149914233630601872534861865077641525904195253563046399000300620311523442685729552769301605858457024992325438032801817918079429063810282437458472010770378161390467565752481151718432881020456507925590490637677916643872320341348653853924415286672996343967818970684186958209734258938432870096602890164434861589371995774474237338717774052579865707814823623054862556602287005432150528523478078034199823960881068139922229693375100565528665926628804968304814470499551959964736264974406580638791404527512424121605067271713036599767983477504566171891638631030468866230166808002509247638416147575171859054902987684029548389577288786502525473896410053158352631864239755766371024701318771900509486947406618661468345353881739005521283117974657332961453895471033872185614354503204596573846018424960893638395305387526717302067039994531929317302006333163899336016515105666746943315628416432553960771998758122640268870489055691111642250677012886453299088953699495709468976744624637803082666966099267007305949822333735383518416999684569995803161582801359735662148808819482467941604299003747049354803798836963431759350252468096656788390523895540064623410816125898308691967037852098367665543260470273247659699714527607625982163448655240159334877257289971466008322756994987487638678570343806144059494251439593572787741618356733856567522953344509876853535566214682286079335132201687087170700262414806655883500744109858941944131819809408370197751679567207645480183518503649598727011390738174936977618961820729877154773487029312515037834755137611130526208006036142385235233055982691269641167991529217538986993621949863889677159122809005350926895602605093454031081505638364187722823765912591182566867429287776540015726862640884583002880294166825716941267276215342914174531991058592813344933155178208744248606440843248461232179572221531458329810808346073465122510650120069320084588271318657577019611913345764364020923456846741557231864013253154982804098913120755011559243841011883610312965886761729606766580599478022145497164973752367789583941981581506328420723038398257770753852537459827728376707132078704283261831468516339316188891630855139537017173262776842118307915594500238089867578227965654919135726722848329063271015648236775958302018857037633527593016012840046667780533331788504761175682997278010190635560530347945519138485938342790107644606603878808517745269849402276518596306352627886459235224136003485657404401896586741234832503511618578934317904962052353001668647945836864289480741303467866158613236615889797757825939074359638454671549233899834553170286714236542981301541791753888559625870629811710157210267499395529760667698030669207704299611442743255815707545491392122152107862047659335852498196138861284922382918214200295998470260504889808369155487436281732662803518156306069505701350489460138827958492133489386530721156629363058797876268327225032947843183734505118271483031709834389949637944179553843465246457380796624005260585607923308571145277683163893967131958156425578224962728923018053001478861825940166477601563714946945515211016163837374871380975794797879528555986338901952374421138593093119848570625773009660118740740856448949973270827431554961998738375573361173846448025475508870081852124290808203510673703996788228870806659705961351507158440075259797793685375081192987855106177970028653458986096636857246896765482731597231073046349616994967998405359480544492719663342827968864897361670403374522320910477376147906734143938563361879056665813668421756231417174831901506193749752384550119157520033166691238775552393863851225163404776778399915853011628743239996769510343109480961975481108940008491063892355892302379333436549594858915464694416954453417871450057249030780136942753261869142573308198299106744073732171963096380864763771786895658029917111363851663822206605781301931294854788672079618585400376747818579510930053727245653933459252188486615528906177510380993885736372626013178160364953014061935509437460450023965465417756060855352511437333563898360190946098789094652844472102364931037159527196557476954871844441605568428451368467461432907303780693500543491874788829203687051338279668312143530291953180683124806242951638426232701279849086196032024340345709198468412646744152325637428576155604232052559689693466143259237052067744470791774991473885472460091125877003037091211808212358813779765968153847342375378420687306653618361026537224492760338145240474351948655639410910362443089135921491212435460557938257013289935753979859049855975107101679362319036241200477351506473462606617494733822091153876999180269916190988458745820336017456436467573289749448025565966390379700968330267116443286286141819639161962817359422882256496854360939785345398635973789232317612850072092848141564109919485916093491464187977900974824110967051624403367424427209686729031232772872321194680362200360231977982888154038370823529069480987192679785414819405356083754204638614425447994528074331478503050990106848397099730454309090845020982145040581006985552555844705112063798878217830732511370131522458828246324205944939589790298884431945935502465926694186153653207615876562359832028356332644434062104312828725801478327800747576947619572270716228872590096305338499320757540174732199657835466302361675433154599676099547963904072639077326805682393902023305236231915025168905715190896223066846646702736266030677870924570562297548084987538736654682796900996441988386351455617199626138237103817548188365444186399292422866370059079524371184312212070998891927293931710520292791184751043262449806701239374279618368062368183476767862656564499106928123646923871876043512014453065250061811810228670725666636154293071090029860312183978264265881262033182410911475726977001124466263936423953709302505536558449434152916297625755769193074257020888874947438002807146392453986051174867416428861227143432537946555837396198922905311130882616496628585897309552414531361717830546074763042988099242465107198867396609689863772233879005159495808868662338130371610941533201996537690784405001007867644105110447985583675431056696001532921117510915871287791325672426781493706379175336162386366956483614340270292350162933541967847716440764187875434778566694112688994533472624304615369747373789537890781268429742768935957541540001134319848091832467164238725977150427433364798747843971080910601892719047197533351140873988239634950645074766998526864920626489892587626179008394825197871192406845581410060083776554124049550680512986338934402300001989160326058193887957098376796826487373538586669805726088561118856765105316267762518630293774892545418522787983926340981132125225121622333307940617082700139213770640551604858023042760249558312052731525998017893355863827471351839060388471044730138769564284199500550596311572129567809649657822125602292124309810711667271203265184363205694851828087434067839600686456056427578185086126599713262497121368085288532542645117567780425593606261589250202499650623924801154680534101421474805462829742980045150160271151950483309321761389874926542343437134319698296373564659639964832474253969736073143659494906530260564643714666590943164008270564420304515682185258941638202709076047896578581327173481947313607051821911189438436439520236026945918580800930573200537720563191554844714239659284754956597204433703375746260035007002993986287949044690242072093324264364228369285142603012939539086111362541058100803842962679233392503546234098412453250092673093874815286769760501107926021077274813930368123264515987930910797731649368187262721566458079282647357597146917835259162894787787736423401403034299962105215390860437711062126380283025697543651354861686192411994219911565062293394108744938844967279637178294093919714264046196504609129387244925063518928524874682850190686856601307458137050243826762848270821194053701954620365031036037439317751615063894338517551906582722281973644249571856160365345796109376931552923253982463733078514527250822718965034019834605120086274127991129858088752788172687207462855460964908215418879889397665931036792904300202315571988836627324647671110305984612342547431909544257839311984352115709160409328451486932731765953981348878210071214799134235471293005597895382002872134379405744599735446480293619416153735038116917293602755139423807433455936001049097395759322289187033818106099729249439441608743148033821009675579846129581060385377763955151201367239813143344864025819393832160990269241494735538612051592364797796178947952825045492730722874553722728138621839002179341061411310895411469290475397868663144547976413795671942171067908062364631081552622972883676947295126366657664761343306539862928001495297677922171164618865879731973775222193086609769059441748403588719475177111792780024343549848353046443389888785433755464103672406554679374383519338667939925047454842949199812759918068582723541408067898232316892116602685730927399036027483231175481104576032771883828819546094545763882985559549005503491969465944264526765508129069147864633551892567799030416551694823028224173224033573562453585225736966749490224681958167219645275865988596518768224675485346791159700663118816005074286217647191224659370085800539208368036891797442298022260170863289660451381425888523220850984211429344124948668316829451309645842682266351333755528344475087204807400192294775749819537715932654260563907206595148663448861371648889488377008994298053839213046471275423388804369941798645771938604727797875118770616054390284959764875871717688169479322088738414844166357525846137052374581304735321941184732407045491199123685690299230808283760490414209908633815987795557232925637751068327344489826686288106419597959584152984147930050103209983089087394928250031702842838059988454396162861313057923236674846164031943678932327924804720094939719210572863318004258685409155597145442635807361422572091661818448801057751071604487355833365086590181505109332031347642530290461733338399479828022912909138349071669112238969029808848060649898876229144218705530592786412904166237129689796289894787927963651670060384230912589923821570559140696281487266955882344045515508269368824828925103352158863988456166572811491225125064540629337710365968681322543094164730413858935931736526946168165460207279563874566676834372180357561219005608244217101178431937404478880739156945412346576014161506467483536438185310001714858124756678723025577412906201278977078956126711737609798511668314828960230729736550864986955585906412066307724373396384000487406472986502136139774621861683949759187102930593233795434108632555997899834369035324541754271800510864225669760523676465381789095673762602367095195628629929275579723029569076054128587875707377622425661732492649767494849837812659276755758892362040261757149582628782320898693593333934377137851151272496316706979964988505263737758715129079181507723107454457574267578191573828355853970332851519082846812346278919717473714147140395811169585035457920568261266796857398582034738236258741096550473922242193964693388569030918788232948230509080770715071927169018003231579214224287862268307705585056994606091773645333778410608791211768066314827181179461471321215678331830262645777781377014887347472232804465543927607747882114709461447186489853820888605578619131013881575995437233652586756971055660268059921539362365707089629698842255256459759908647418127984576536177034177636319473241103925168215459322609481782815504987256118600444484436371453462907395757749510260376076752122624725951077340446084822311507948773071571371321180949890800386580230419791476992131755518356475295370728844545892083031886922096171476091963918020009075865696957509399915987078496382308372339111065636174843070803213640320188911856881472225148950845485398493711469858419043880079734500166313110804364927425933371956958351519541537792929601400750013366480192479031594440755743540987449638177834254857314375371509576998425805134578149441536088717414688224125590492110054681903078316725435239566550385213573631758092231955316293010855857385172880706971634054639696658215691329339515849043536185624178902192329213451431677027663399574391086385717388315494835703475129755489160911742790109011866236540558352782014934109263622484404674536973068285842057012756437472724695836560316773004658938478210558126279461398758114245407005599863121119881533914785881360806595550550981559813571661462525297058508312944643365488733832726122119051212338243118272278292429965923045054192073469536216989501612742031155361127614913590170321620821404946378857434830447487627283981777764121790850222596048683066663508069631643535578397980285660075277065147287321879200548252259725703484932219850527260247904063771262569375177545513019233961933928797885132133113792077050186917926328876926958820731884951601570559474058192079824312082672069825536894932964398839258525332372233933339059142385898872394880356979990141232906332463694106113145674659961022716417097812093600358459430655872173148209670554235564943790666486620695798502614581624137737220509122379164884682934212307794234351587726228715224228236514243532568049575043188607194246426752052947433095889408591764822890881998512508308043963851398121532167474176452774706461679174478369805079843434629979731004954646479452246944190335992640925382379854008576442339765646538576153874236111136910205144483924507203936779860340889568461419497494808516867990346525187514576409670332507674752856459792442687593771493209748690643244841851823415443478514265712920421968453100085871154158728213033693775064502243782295980785385739183581487192425456326337879970851145737028278183453765007312703060455139278240802901068342698655071145051862159726502050409566204042170441481492126276584989857293221498651705528732667483554881797840460652970712573656924994502554706506111386399365154236165791561960996309753033096983248467128989944907903034131330427462208350964717907223372082186659657533184681887140120829670444442184490579408290482515245311605884873282096926804735866444049669563217650147945353871518729222345631904887430590534926218418130582477327883635864932418277769773202026805183235248477406167367039300830756059644353105084516229397781176796431114275547525215338481336023276937972407485468454311540744340070285059451512263289921530063674693131114069644340637617222965212787100870673622213105758929915577104191764282012440669626891152425650008951290889724955802477992744551969912782331744167091479071275297686267632524864266793844030703291312670881800159587735147484393018676080956191836400800183306648384084832527704359455759174204517649399710229038940451427286744394106100406409209536439566899683535049610553714384726270735862682771565450583127810484456302871457558754340027133605451027290125539911324509130156586240185206083694792056014265398243555406838737941493587222331744845644577160531994407142016032267894504741554581152973457935454108723362959959428451729427785912237471522405702202666822963644515019574958485391972024091035970479431545572191416588947211124616733590470188729385505019358839783819881116039932344409055080981174966693509516583353658865232417905395571232912359691897663432122138218612031743906088077207847420860840037587450200877324848558376602320718582943745990829984831564497078659696599291630716023440609034441435264840248344420802631858451335601717024518827951305971505232407365077249168681353420297107286072854770469772199374361326062671637185304638574914057047796557529536601273762872875717184480035096392443018051903856512670121921527710418387532622228330459636360087256431432375257057357730431993465429994877412102545564574984125446927766998433943770213384128226037333011100686019649075947889842238132493132035126619698037871884425982172458247869845025726947916778877322232690022659221495123300529460415045988879116590095932144680549647384241230016448032101917195154551276486842711135522204714222287689836414971471054452004158364848744549301951758711431810428177002041075421343019136587797142801092086854169677264242298851433701058324937793324882524930208751512467008832377822100633770429805727573828730894252724021177098222178496261044286006847344848820752196876300092911663728565145874379562771869054065949399986547304431159283708244568893258051295078878751860998550791429023794916658830187548828475527824796730086265049916834916134005694744827242696141943172419480985574674486000872365147057372090621807548991407311532390840829984538883301944213528797732301369922306146737663729176981285008754962309108147658287017057583642512289883784493430184989727460333559884323170129910580997552219689365894031625658570670730929998237989956331990387437659145330196134944878191974914384837904866231803272306525826978217213558389501755336705665819781631890939049775536829762760922248210048085038558741636288769277452379901771254773855304243281151818133104678669483278128760634197187415583757266065963896594983221640055993653711297560226891209223394513701638648703627725888001266314845918765648316622195732629620959927202618659795587745885466304384931764927911410116817651546901548333353678760001460210735154815968449170685432429918088362722389120338504938776829180524183329493044387933182013892765247051532754897667648013692734834013456055790114646220266166722880398965609782692981923040015845205899563322987951155176735565665536422061318697143856499789361949499300180629496972254051309664405689338191220202418917340926831330666468738561673236801644126897401279447782059099728831053205599876532839270179725032317870809535255946791176253024403443634508673568879180385139521163957333636593812184444225841212861406536447366576084552078399769487315666646600205736438321468267249413467040936404887778625901298943933108491049286250131265999965820314209422896582005036790304752534045504471782015906461486960565291663641268977899930960780421746780596118046037422137392875367775004185961752300161441493634406178201958234553375382869429346684910465709283378365476821349607424722741103958290396809580769273232890636758577266864788386336207677181798535473060837523508236723199268889297225945149415860555779079821859097326678333889290716410500646234313352628438381973086893601009185898868232632639321701351129215598278676315583527778842965920945259146355850640254238114899409817326606337526185293398688640489572081125903207074602665543202236978147987008664299322667491557841235541432063644010413929050037861454610880917901174369878614842702222823730520805745697562562226188028305070353350567370138666752336950431105360174241422855601349362497623588604472155642769973956096281602174903224223114631815378253213536038916750026109424419136651416174256453495275871472886190984345344601713948637561722193428439383880523741523394171459825128592683484663724137532087410036747557142942580885880701213071895839983737426680982718231586902819947476618124006507853365841186379076658499824703442152789370263211495656813389803267838800593660197492605852487829025662645227925146083911179912126906459264427765877426965380788598695135051861492638499253468050797309667685875971277902644829046460423042290560404374782124927944462270099836487750014647224772289013800567226645804746812833385152949052645684049668996202866003998338522910810616292880644132885002127340585784464940687982409778470253156979243214561227683976037125779011767082909104467759238668665935409187377739751716383253098881369399963915317503587000037189229456141307640267757351365990823042792359051804957282593445982002232592704394956520299923373487462260081968601877366677041527653772923140968344964800287905904527987430766545635196845200815237560278138888329211989957945273019509210767499691090230632264005593320527166919911832969831203950756567339928969477585529489631261781294210990995012261143779003049363837274969398208231031108800270176443105936748033362711528596545864759464582333503029303656122528076678301718592948580498836953061504015327977155390716096532450941241891635757742883304267129918170103452741632306754520827550038492872104744669615598593682586890681337176767568053516418120512020612960127371748435274476336141693329889341139104101620515704393416851447402099199194875255057397091600041800274002111893558879026090048534222307371332699728809045537013614543181064131323248232703450900714107343359963019786830796351858840331098724452088056547521455698279122292135280930925759893765152730924212428091761703759508728181846561454729256740611171811591697120283709505642713653984543255448283224767963631155333403828554593280305107296777878002342002605316048308409804650899506474108684772630732414061306505617571473937474323789306961254243915737491312098327637984001761299965545972160877204972101433006773355999092368054465799970083603430546105224704931516461390054999358928597282291931032345463886329632257664549780518762364733333790897472347806080423035939862470571705589250896635308894969275111660010492416651397001329441092211538866205938250621129505773389858008720671956882528429309955723953836290811052225179820316161979594549255681340927716033914505730550696050598110255997155661729163954407034748651388251276760156055230678733391800672833073336844006742048057683967426536361210072878927657083266557721218024018747205781179768549122252465446285460052726090291219563761529848309684991952325115801108701881545030120277600785467302950483211988062177723061210785001194943028512758313415617680055471513617695955777425478728563771615764317657330318100702704884091701908232679413129015080968564640371855963848027380485251684419997621210274316457604649012177789570506799309609616670635567629820258857505403376301306414227396197558598222348503996808998046485777596414062829065656990961136081699161106992309318834830747710696502467831996642211316580035477370508777798221777665676593508065878700954823009813302492121214771362632431419496852805072692807187611673776847977701504969066815604809369419517237679319847387342199244297492070358998103017172145250700170647409515786903560840574927532060428116886802740890778397738913993608539278836951667921175383362374216341793891229154358983294779368575539242996982701273432334841370033469500286349959041370756422637876640779008501566244469956428432600874715428990833645870469027847142724516835029458874485631632244046904177492664708496830170266796675048714771652780643826635455843156922036232449467380726346898977178978624644526574234675795873152963166223321673054921150259471599552205766085013043106680495271218102457810775987414630880537322313614480458072761201397935892709823627402342813640554606167927229169577659150511805557828164196741043453345834079780853938407091790230836845052756992849482643516003811013169926065168714385302822808316638423423342961323942198003264769577757947423530011135100824910795993089546936996795446242657763488687077199204740777989219118379354422517068775767577748726453282716779266398816008654153668489510459988136636119220232450831705880640750450747172530055344882222621852671592093413398149246461439143642439566872426458747947983443667095858554249854289328743957107592542474629903727702726134261548852791085812508220873004856189576116602609679711449255781315774348539665464456701658117376232589285645530105134371967138993254554651850384819627148317133075164010154295061666006009591389721013188912050580312264123528020803291356190783918950243483595146260916516075693625451810760110726459427826691882330194329789651798911911890090269135579334819024431361765647856271440860954290236567329974477922603663989946168679219440009709929395860251790326698810931889658704198204996540030584178250084023691724003024267688445278610814916969668627941819256393691627744641817627449214922780027003288790022004380437776060598915379551725107056904977928923678558535800097891176448197178142195443389989090253481605843732628752029064539376919981571514267003580291220976701855033640929791237522380837705126417425441443859584257776572737157915849620895836601004020886360456707926491078156206199678536755261636250178148987672830356475915910587087899204836611664368675658204088788440442904324695024715809562422556385056949272648004894260667134442676921547749460839072569592894949464468941056609927658773917295812565887189984863140712517652462466040527825193876413905067303837170058722447448169716279952728440598109195055050377683855988216808305405830142790439436437288009173240331803238073130115409339468122072872785066860328033351034177849701436226540384629098139967229263819551442811840868650541179269377498224641629472363329339706719136861293664413060415390742351195590516216710918986948819048886350213530254120266929272014380471436448978384986875546198101305990564827305981335047991803997431219622823504699415799303642400353430986796984848452605656273470902858402574274824805813648083709579882397242279542834389952023460935422878439550801080772831626143009599518101293787187796854775807479309413543178983090639394180207256214996572484340429317106868469802282423554073903955492135053373804213183003202088642489189852868837328160060444435085021643730276284241761541788354697613573087650811341095889910586894384529819786559557523929009512589557501553302825204480260327606170607551068393120165958487258477738156775402135244425958753295390920984033376917327817693688685093745905554966782700265549971196298613398541117704504023182660275118753179598001898936917554868751777525136838041645819253503246928296027206730591999958638235731310503899011549058016997572138984771998244353335572199713005745830170086463991696945878988467140514497956697859562980326698864423228593421341626016745167737743674323239276669856514702109959051466949148009440254836747419257759697051306949543347630422364467664908550356928429022611823072942297125730892841494431849758646238000704574950478918200455432694099863133964000184183125143983336527438415533713409939923499184720997011326239625824850103408087313011558745687727399409423920480668248004623529646590193350631081730619083009587350544016954601884594631501519089787228642728731637495976571032690320166044653992356445805587199153193848770254565271985619869432966340570044004036292035761181644251334917232393018441349510687792845046750644387223002938523680283029824086225621836735803897114642154300283688152934970450129525839397229588079093950970931600321952825416092979404212671536634090504302821558580496740698286343912213878792612664369004452259350231160428093221375862561915585681443242583064771922591684201756122831711324517077941995641136444459013618678217637345834417271811359522617241991804890249339848706961368050232814138569518108518010190721756956346019133484098135209676325937838956020420246999312074609742007961036159069814670553742903432069711843674881177551722339385456026896845926510328229963200699313981764696011977638164371823780628822161843876637621664252717014519207169132327820228645896926896330784745939838424914182638847179636279202374386776728150126836403440159939261111107876365961640112854085045706147123761928389899872897222818442383836383011101644463886170687678087562832515253128354881003618721208417004126547700957735863627246478961554456881040990055046720380446862850773523130422847120329181882865810354752325832676915370412393844714361132703491260813020344983912354935813228695516882511900893153053887679150610083346783251750589997466696392240101833932890664259201474341577716715018522611321165187046372809541487237888694909273959399655797585001972244272130055401562494369965775558137469387152736232605592802449243849373323037097923493128114378826865911972625126294119194959961637672667700146292643294290573502437210870445928089551418283590012579715093915650832543238049796416005151388502234497265582716844931585310688444790283603300388228631636019734630740798992810881905563888521315579046154347812507966379818799905860286364321246818013093081309769244494760652839711798260308774888831978900058474915220309625154116684097559419964607487592099648279231547265700846844478471684140568019101167772667703441356702487335786666795827960071572521929644446354814242041742420984452926254244151273361374391802209766015732051301528383634202601867449865921501934014571330976631797300104874648638984612787438389594502323828083475387729095280531190564694589923846771785849498903770398880014819138693037496304369240170725779020542977038207780734912992901744215240225563288570502837643164705648494402104453514077641633246032222786031057822824251983783802892927629196223432674540273064871912984852157736356313476609766312758313268089422330050949096654766575248198079967254153985144169347814702129893268083023909908666333605363448541003768170458756986660263422729802092300563309055388956063626187742364241171010175247594593555242449613838131409475150050748643774432671626813251374651897062883159285807564825832644791155532411267971170804031819165309617884518911947784331423928413633190322521240375478212736115695773373237462140031111575875956714063500029805880063708261785255815640246272307139624703440092948669817884154579205783168896643712018951669417499181228960115130176760537596694213197613348442127851892128429062522372560861214045185768986060112705463819315941708579005411405669588779872719833732310577286215503875856122013096874615661743113385559098540567183995083672840230578975889605474385118456855257628975500002427111077255001485046056066112938802120058635499424950802126911716990965550640011930850419660093953070325161796495791485581009014211577247289733101211677423049462444681287222500311911335452151350452227566077195757160031343096913464539951271056426776317546852238063633944174162723094292544888097558159811704203116384194927127451851598993109496704922334941716001594564578602932473494272647989946365104977470239040055092367264469912980929624727335534818020713746593509188635924636768697399520739033468527130093444914643589988591314814289885701761398402562745840117171641476397997762149397481222150150265833863313905394498860780142385013136516093377442491988868716414441775170611153837806831246034844124163003023920539422750643779958840566910915868847979922021364391612533939802638372107375417269090687513344931613606253619384092684535620941722656022813953939727149519962897337190659466145810049918050683378101101121145128334090475637573745610704002705176094146970001286825585100465308327502990579497157738130489043450953239897814034108025936566981090012475780652430622011520182191462260674803075501148330915246550588909626572801292523731600992552472333009664381453691069156977571682877078668295995539726558006682493060166171078607558278926983466571389344296674239650658033779068783970902732830388314704309010652582741440050602222707983695629447708797842935745464447912844993325944938453042000364291235454938322152283536840850346852451308531503543147244242093486449894162954930084860530395857348903695735647337518479498272313427014283068392482657537626202323425957269024213434413533106742650653904183043610890795877879998452331160888145938343776909015638689665342100777876907563373562832942492140890530300863306536380780986624169873845295408720578933445959772812211600928245123292773333059372941278255053363055824715204808011496474743176641631016864156080222516068461208048091485060415229201876017631788866726030654391885072424203902590854872347257065376614354348804328181196529574449009627305490088257644482441717225560522511076178456392446885536414304754447205440251706854523047492009736757246086106974894335345968816952584079791395975502130219522865690603927466046825007416570309309400161373093131872639738984435417287493188704417145577711245370324086429460872216500678654180512464456419242042783073744058278529080331326513907395888480547564967140421736764326340505867320921994141037391493310412859410049064835041837545097876005869658202053470521924147726718563515253472938182592543809362820631787527659932743830222823531511603063041755946896678472044798625008438720709636062240114661321679004838853481617213320334541471499020359505972589550804085198604984516698174703514829945529418671471175392069348364549699847543608749725782858370891021429885955075492802498666975704620511171943928818680890017256975979715522110715946808410160902479026623395977522730642431253097684767210303128498659037290017275623563296500880870701092215079087553574015829514853875776283105141052761291618037994143475952415377088193849388904513698880180110684394207996546545465315224694505239085285368699448493352890730024277735366278908978915276424597075136537209445866575683816681564481729342272803456076121059883563090722457216345087141304047198792574761211323149006785108053935704828084706238108697807306002423737338860223476095025806459913748800815816517944820082346852571251906874004163816783365457342063865967534702618971104426851415607670453434671393656264324241480577792059629100194108551451612550755009114840749391554303636662735621343085154385196671387230582326154983180417569989640669377080537560228013006205088920656377942548347568553815064892416632887402217445202818690895423224068013455384484258664569390755963976328424384091633632518462359809639772971954983598391603253819492866521235155213855477549065250356278285909044811290768221981578163277827598289554012880450710503109268444633260289053332531979593772783317203068007769279845655435992482911599497599076224193281258844653725155459225737837896298194403477238295214010917826012824501052022793374014462824434206869918049017184943699688734298823865132202165758768251360938505462378480674433622018426229279729852332439819561144424692267689287350877847213956844060597088915060320785575783801172755548933028470277150589003209057398003054339945165312761973976060317713267226110038746112943346214364397128848279240072038315977821294621825153085666429426650710183964336092251732204935922302642960932182521614606077505968336812969823677674216795050468074380636139891167748312365194208866414060844929115747169150874307973031732424732736080163002905923453709842390818441443718790559266148461772733257186584255431501780713355192921128859670902634524282488490355555356309818137065711019500578237511445301891292336846298238299884869189782962767209215428100457873215419446419495607487888733876065127903624954396828278901675457619247868709432788522135815141693802761953930704216692884873851650493760063398987335488988318667034377850317964449530414715909660933481423807785088680345599866056554343771549258403527714883858041274636318088158165081615532261882198539658542103172290975993723688273572210026088231165380491083448001819591690265633532635874917280699203877706156902798899989579639136410724943634016000262155735477452619790192228532776262591666801656940167956969452488819832759309455113979594796538206331563687014400738701343290586864022069592457639636567163125859679440043206024588053021490493349205535607842601908602687819340601614907525151230013359736810477698325369690707823439222303123810009814086023001497052175207247872012576720767202558361742024179111192946419229912602206938648732267275552232796890111297180463675641890522912572802812064638929648769630607005475630573472278784693567044449501787555224521834653890218303806420320847163085272692074585754090073157318279119912209040490215345021098957806044617005742743635965015429489310836893303981140630217392522414634393826980435206597248298730606249285465660874893613775194736935907802537962106230799365863117228535880152825978551573884318640982732229017981194125498835582670732248045613922848179318766371896870956700936140609211605596485089510006799016430732838942952520211179890011284865761946330781218097771873694816718163528211950271379243373329497502586672503782620948781375571653874088622304926860360948256499291560361164664136981026323361829362245977829791664107716245417816286725313180623508140030647671225669542566660711399211471664685118273329911463543640103031984833490698390491106519642374183989126205241262735046553515993470414550371338603763144202459099752836725153461774826042845103890442618924113616863119917503594124918709105326678622220923143167626347165324823586863442420644731237746174165846333089177353391635362822627896947144985957549906597579610296105009253434880415049933482079658713742684708602962069048589438466002185031472066975687381957316952547110613275427723589527652207400896563669627435628670238505185818274688791507221005850339690633694856082074992740099466233578784493325727342261775099751889106648688107436897043412714958288745003211309603863598527371941397814234656355787938667361199792969864379375378541122034920350578220825971765208645253499376628944124297795680071855415411973685819500738691593162859380587664198005840843414279887710400758021707737800245421239857608983564012099438461415077652555120579226595668987652702113418656586654036936888033046417625698379279791257961241511688312562363188550578885374247420624841436959474692851042720966950451830995326918558907335138206052482591624465972979750649245311126053858749775620900782673693933304508552137231454010168501319643127541155537122981545726778686259353652932779716762861619080389495840033935473806149712796167922673881315140535626579572394755041704641338694352449207430788859479372169223586627855223421383543347901800841637004087189156611349839571440778350881459120045579236319021648761381285815712789062351580706834117841086831932444565525790162285887256931754190322230798660110590710298822319120888561971005321138993003487985015069687440414604599394183988841143797096930431473026822094235041535962018281176120276631485438590226150460564496883265494295351545336820466260067846314940871878976684162070928751193284408083754165160196122514557971279882153740972397342631005275338401823294034155176041445436393908564957607044423333074533987234075809906016316509038846269190069473537915376673039391580900148787315117768420310650108563824291193004370875094088630867119885290678873868198564086112836857822933803155580994329569973012664806099500468407369340268275326896935856223825391860607844656257425174291963943380366546809893645139837811018800022913480348976781073236263074037436973353701516479050092693855238514144057020324788643398440284998131369574358711681280705635638393712286084094531130339929622844714068545418009090288812145922693012585886645433376608281399659991865188588935653471821112662217031067580691262944040953788130333301903055829353402834236240065519380179527463346729685888243138859011864741491115988012489550089700596701461475298592864564166621345284265772449690197087682662282918486843933089800080067037422295738525169640242576275322242224096631149945436671574087698889549990164605588408362804392839271044671549287580719798880469883616472431918347781406072543285593808900546129827865969333648019705636950927014309967869430590604682680084236943097839729190540885402820904341296373407464346908784048968419533520863095699048087899003163717130831592857473658640796849936696533522283738447844934468372457485786263881917490464392316978919642481116601953790954228664987733527368776685963216943144861293401499361984830537675521982896651047022647980854806021611087783665445096699576383134804748215156900583185884178965223595906019125643104644869402393262727429158405271017602466915162327845454664297375593602265205605867003967043891620277220556295755110281398306288372453258541886506044013520162387684503563756980392741385568773692095060438272800102030774557647335768630614395622676553255469813528924732580195383271114127822476005148933602768024129518547139926855559505958119475725698301619648928894785023903639525883817625447579902143909153785486293870540274297171981262398247267152058253783436069110860656296694282325760176621577298842428091105850045694326896440890821100500406763653076106484196656808240857813457351319365265423326934690762390377331537250858866078634723205539141992484111978277316154423856515752032517534865776280021343174157037791441114011324377216410684737294730093001696481628363624000917674016817939372970258279544864623747928871720761616795721029718447869629789289749988414877708349262075331031338879371510452373674921874400229577434211220020397133592216067391306099711195433557177887885901659807889990352872080151583342451356848135748256122690323946048438803135560646278048860704923127495126864276857230714612551343734415327289566126661088000822988378796306056602418412287969262671939099979881475763467279957699566477387548798876699455408248645256151348940131619977490698259395997895004611755237883080349567875829985871112015357571659176366261966331327668511905769192673965073769127624641099837691869818183901270185655092176576036120433895052497193252667595768671332739820473251841642219564838897352206534853334791051017251779611364541604030908489948583989473429019900379087337203390440991794995209153473150085832098182947740402851167809141112420461578634663117888640181055601298462341363819678036134922396298455135391499074331575995727942633985884065404348580687347841677799900295520706196751019897046943302465710467155092015260020082588561278328133707737961649125402610675908382579800064739445399103081297824849808234851499351099713128244985617350480090962129216390309276970207991165347697580990046421666355188068174775615522039896835185331118964258453832188222425176319717340323247289573073002699161803152505603701237219125034569557341886025797804295009814269588097481607742003374420391604362624053940175113723178994386089366338868982792395066888842279650147829683887011461684759008179627411589441633474454755172548447618106527366830435888891806827286091089131984053969288806131401724256424301694194834837638559935584380943534827067467462612677168715415126017120495740194651639026226391149409812771310028958469275767581406209094251590385716584579772395681233929508753559409500661936888271049992553142197841327014139733031735814802769371988258953210556578547424964604976308392816798868193569646618690731848274460387823514493920301326660395026353802360408336816923551847303172583833664993318570395874183092259568413932770409703392980508861517778305281618121783392322041710153318810478260222987453655163834828844723076661711361407902365672413742002486529891697895422211353161811714600633108582335149056487754669980659742347653202380322993712914431473724054222963527526936362244425759638642835061373777733042392471353711325395896900617087151454367494539860077242161821372767876193420207235300960095343914464373457044146023230930831763456469881903121610848882183744324827085948561764914900558268467498715305802373109342829967673961101246881840718022832361006245505325084516974890933220230530455025396778847057392967911408758204337799454069280613842795885698285423658833112454519189929126399774855813760024012568500406218098291472229438781318872171170465983114525376133830615882223042074550749293028548114901492101570918572021954953393082972098154839236366152008309822559744391868707713245053282096542490134222822986673901798888541561598167448545295406300712372383295435401338925429351387417147519922986806991825968446512654803449438568548463277139797302574898287766736341343458369255601247758400659825986284884630718968952698480075210450663374138150812454359873078664772143006431218703182873555949958961886657656476684557336707733681278482752483184986629406932102374577137130002151396248224299291011742427884215852489238230372338148617583794733875195330152134787962577502224837809160079348366451444232368710545987409824264090126096080601795896594649981504169475951204718354346398612569819689687038084867722705190480742493282223030358869159349834074128295802326532808764379102422047298629447987939160937523984388478966463643746462254694759621440339935428620014777024723486168772476244389046258092935721848680814691445091690885866898969610514441700562615894215768981657865271553815272677328606763086909515442800464793346068647130461931322004740533783402423664164028830617057081604622452793237581929184116805096173122678655893492026621359533859064748334508704411658871546240548043446709824457671967514414111505052931974384669721266663910667138828782810468986046538485739717736306715875274515870419093130672117941032637611411460419047970548117398284615253057061049860615622948881845728833241636594403880333289191451559356173395882861925441636006605166260037033784371328891117445351667626852133437403712647052495175057066010899848529172905559025974902034525259283714393654016858650723738625534485262767747852148674752510024054127400264967319771103925989629877370895847858651459828744595642477797589164303404073852864062086920029954883091161321666240493590168486423840912686614805725225027463074496620563444481453337573760786208616459951136681576293251900564985079902187429554209808224743174426628493673989203577751760812050426140886789787431433976005940440400392132048794847342563273496928300363269133349026523947681867283229949064349961356767212955122875906870231223228646559951837651997185518063601319945595561672832823052634091963664207394161077198969078573925317765025231645829263174214680851480300335718183729993205037502665643218352017277568403618677058375359713078901988210483201388862937771519933968959536849135040677689192208569767138433801348565545805735663685030844689431775945570754565239401297812904914546475636852498047076285112125836784993900058600838259327925870608786397518915517978337506477156360768268295497883979466275705941096810915263860303029359879068686096508361177940148118943240661565090866102127868114188679050977383218339067687461666771046038798997433317271870691634531052161589085585718798597839575931822020113865036036626874756899980672535538839458634959538727069663475790522893523334217583922846580203552133608799390442295077863621188951362664552854620288429997978104408539778418857220257773039896671287303547344528318062587077375855591425515191446701742866334859391725362642956753974112841662625273722231733385767654688853783445749201277636592398237329555073872112354670093595257665160438626648550217849674201431011107328751393010108758477613563634275952637319185070501731251308405240845335576823169872756368671017227067479898412390958629879219914787373839898959867696851115848465834292221328739381331216602447388307432987498246540329898457659369644964312175580573371758066262717416512326920419645962201333600979253802148677928633401234812959065721110165022203975998180659458013303379927941230388119914097174098799127430663520236600247820093788582241652294716924620570031176399294831344327162116529594756509806660965970610814230850157412559802548417658766770569705013558511997671600128668906554539518561374747613081363200963519728918309285392460195387594573163203158089702174579922705017794588650227434217332623013762074829279267367503810957468549895715845712931718501857163550835488239187005008915772885725748359156726660712743083619264289748137676944408762440556441551431134142898647153743826774489608349546604774367047110366038687533591551093609366649298140986920982387336017978088858776675966344104165292347195427609684201623096064870947449091665007590269742398190794510839376950665650676966801895284822974908628334194468063792776285026382195846248686474920518639987032238136333378570789563782230819690879506462519629528432747755109453478094359576321322089857705113968812214676375855973843774157209035022769935072606200422246278591115063100638320317196248661921605933688906763527660837716926602151301063379180208560913637319294137873334545031937987282334943821907485483930755937463761980620126426272937204588428038642104816933831632340109128240657087057480438409271575615876392482478136419141078157756710160354370648097271731156344398317927018592910111476626459338403775790266717619729279952119400849652016610039851642461714375511261249710587264461458585487303095848295244057122892924979492069171783116166118391341004950271368784660197396717579740036367289228975272097420541109063651875498947052148713351525285613792602060763162373355391489925064597657775122854477817084272106298924080080130606600377926767844549219754208404400015034060396245255089695017520728775136355464246957934548007549408427490980451086427003234586439024184783329544101476090122607508478410590313104492743182533528275585172898391655710718938610701369491574488587042278104567514236499894340120524552865875094703402042454614914441762912258215926363703227891865603124152383691741313433819339507605330054427100641156981979475917195664834287427850759822760301421858921385973516584786432602627350372105820927265158084636426264728320536024458697638946957478319406974235871942583209771922926635526589966944753311328305296698954176553257298585287854724620952126997929621035103735600629351242672127258102220948981200562353668188811075886741621817271993313687908321835398617455778018237345047539484553822324034252818311655054873282068666713115203354182709538902398178048312655730004067379867499756897065784108415782672973505995119161537747374385526422867040285868083953112105115340034102783366459036259082263850299706566025138966424542861466699632469251604137509896085939844638553093524973044383096246198573180620002489811107792715404873371468231269485559683248921821875395631901890846302288640143628057782282300332539276553288050304929822890183108270802244281304319617877195723195686142358261540492650767649264740526742998369586093621394226855636760576503232659941761582396309397774265928528866110805006639033788859886599631067940326007004616748808730554981794242558873446857715100364219407830185092771750934296133206877350077967316639760045933661587546114407540158951845178475520846574862434570507253845954395901901266956328804841378753390795721651770302881206088067323458561562268161059464951197199981693844034902091692028744135345433757270353066773034927621120381943526944415940804083829877052373668773859307627919078712538774812977201818675214308848624897356927235230018789454511411739993686315894659440497652856980093938498388483858565349104773417577753473309429055416226800175014784135351487246029820834351219089977574912346847420288099366776204990642735654284154621148771456671633876011492755910294285790753445460419329318914717988224242072324870693328556880021105798026182237460585431783743987522534946401145319360160313208631007653649704913981957498121202612457409264769811957694741518640307250734292684467315397915220926801882973392586797269793315528985737618772152964415625154013511325026245373843232044406495588294614873828680607627217543369163455128775851906827730991139631074218039331867826335692849777095370045910884094293188125682176422798833242172318330972818701596475030963960958788820561467157222849052408334910012965187098220575621361780119868926040553650668593358055803014240402340901266925837900174563093153356835552388441000327163432515499502863856726104062207929040951907272985327789027835069468853585538457495464741738775645714538541533459696586916645319339925186811986496691773808479167035976676115233235863108338936130220525738145394572843303213503431031685433604225579863166778480359821042402259886962854016402074999495722878286402463573027148163563727427305002709573353060221178351309811902028907685098192272055842512139764236562254159866964003190648234725769947428362701923755561402364028476554181688162077099153224061848333120491267071365039602058451178860480963503652223419895463574095976301319256131002755158595855932930448052109679778375061822116698884708558282526195087502848806250696256841047833513720332557224630587469956633545743380756825493808176674394025813125652044983874609220799252795773480383615815192048415739861962960582957987034068223806302984684176397376184884313822612276012277412194367445596951970664497825577279082375252496171455693808841740369821877647844228190910338529306998768652431600471652540484155472785098257201458763167868142784599835846480048738868000032342810649147431047732696132754348327603630891686024236512132176765206100101031110527465759069087756103785714382936036852947571315869112296468101880160193442443779556892336407851980680550490211388613666168453656664387620548752685924082024125163815367131646375182958431530576140328981325709921853745048110904594439379413778828712021190508927894991212786422114359227710520454688764590600045935585209943544498965548802700061720300304417178766863708276139204909886288216693284871492271956201380704034148058705664171922414384344550515469000594487235154890965819805870257508169291219915226641746794091201980508833421906580864687511601884763774425418688100196333536621639738936274554644167170020004505963683742911295489263961611790488125203639922530773522990767436891470641229169870101344001429739924046823005243303188633843850950234222955100553885559971783500996211944827403837963986500371939825680049744224844713922803153230823126766547897719432422898369665082617325516481880642835883840313926866014914068659898723012017044672484253732558104009949637233514914225004884090341354807449200552896663108218108806334231871761433775129158648015564062730858396821676158898811267147267399341906670897640032509244164662525683986903334477753662218551674558701760049953415898332436121473537421932163157562604416296415964719563094216994038231116109904786490301169230259528603944670577653401820641192781170205061843150177685669470070235581329461528213201893595441354808383262801846181089493015372078044970025267010884533733691814785553111583450898739846205812091453328611830309740470762783698232553082047154289108667756915266594072390019633943958408289497140713074537175805141800569671359708739983895796332890484795979362334203168770462744955772511101530080572132800905522222561180392623832053478299620566265443511679256348305512768718117695773530502859592047385463652647151636931183816748742702326956517323515392225573042364886618916104687065363644180158313038166873787951826429717243885186852759449284315980478408119379017930905575131114485856648839516888962744412000899009920516960969837353603150509298817654486696544979103899733052946672785651268585327266251614904450085842171874632988487263255722430121503493119144046121581603623317240713022074574772214804871367035880857880468711127607717196034134766932534724588713464559802537495955055355914800413786106327248301347765161017318846082474317396416854877593077538604984440036435972969252098426062805981143015452377990365993754068042284513273846049963567385331749657252655270209347687304352143474786250007755008425337961116453859041794924385692432029594941241679878379337700165142169672278131866714500808001294018114863139163047873704493811930480826654822534317146012717509380886040770286996070766501797209928976589368122141706107715767909455816025841832306657678250711125049385249099681084010779708945219163085165577015716145438880050285180023950755903237477619394759407021419038017116151743273563674545992609209452326404817670969411799112134846119563979841736135323977591967097595315046054113368866473745630517764781059558625233652863503077237093051337065829817323480982692225213428524732086940496460689986569526649410674418562259177902035615491535746998140580579536550576445898551616480191996314536340971072091628233796207098658137239348604633456512288728519664015963977674097045748128296023576619366160155288427686134440759873618240998943562148027430865066688243389532747542906358582616064588946760349195029072340980673511888601130348118192867119890548122855618712301218656529183131910270501936838218451933636620647253574143397250772899966008377094163328304028348856707804366090506791503106928095210293629530773577528506273615390173555691380989720308670116975940821830069705324829845718991185563660388557048843891848591747331059174302793546616113524375043786232562325506287534766653894178688914979049383771239783126227678957314192859410916039773597280637333722668362415333569855204281052205092042592491367053801936437712807407784254079220528532675283413460536089794150013655750605370844269272321148986884835332787796589880198981796669815745995658820659754312973925950166174794943473036410777683293290410083564434535225791245175431691920637403980856905450750309236025179237591866030701963960129188742211973160547057672092038580493896429646505900672901844336260802346138963446703211416654741159157753116569000157490758654680739911793617939397212992029119606908022591366801959580677385284526000432288085155312539974015161576566870154950764825308805530387196553788548944039958361739416620050507652475311782248180512984643177553740227639473238843280778444697353757081906799488002185088048696100730296946153785148419996140738886518806252214715331628665035349930946391365279885266723279530386808275982387504441566818135604927722448659194808095843952024591698086315366535901813080744183851859613755890474224616243555556401552981287119206032864906742438514551349113437127870218519400214309671997323915903451154686104972224533986309648466506143416756339823236450656421735995736265832838147651559837097635760332048853584768979304097545966398844729247648095380614957943854054120402844378567698158482321794180086132377216300456525548053364366781133788426231261915135041986840245098964192305810307182845553450205366261455758075903327676421849150025198950103426859988165112567692973191288280121690190422313367953951199100788679904376130852742972642300652512013731420526073643091051567449772623599253709873071276219250629519770325934428135666091627658044542001479485056335475229633115042212199167681642585040678522774150731879892575979885631257236518575737150589545687115019207855300232352534868983256617025991014585710690716886085655573004176484165198404822597685124914501218761402087065591011602454238254692182632712528832448701677415247874091426545387933690699940817114148451393503444619569283960262203557027338006600079855633476006555584377912238224707905604402996469578339242737547118586925700591702940980228690462472936440936692067492292532801651711439263953534796562280352088992325259473745182601104080682926755263066354861066877527690559286842375272829766524204877721944245086919660986745460117624151521952603867261738730367504723847017274909014596041503943297459027497248739845839532394882279281348916129570891552972255729828524613724459068573788736852502284587795431123554602180557804895384055899380445785670241248649314355660584638181624617642767115627131746441976517853028792264585078129201770248429236960861122235650658314244855964408877831738950261743957330994303718420722835158998889590666569001748364995448146467768747041396224572878385196295419315200358887967108825520984750082662342756218536894752046145947913903404487540071664503707362540454780685231547433694982079260008232906907926279760361935284987447558757280622250895431856833845641484851931722731765695993965704943068520515173400324386524427613550914441537972293995063154585927249811619299852202916584995076492158452334347336901626742832524204212090157143168700583828212232062341978110819340819366593375689049961127729858419579148743891072330658317789383889666617376889779536559604891286064767926045501719177393244253056730945533765906793890192237036621603157856225679314707440730563205636682665002384449969735715181483200684735169772537419869611458375430341752754953760629002508621572819642553569330192626882783741290796887050114285401278698004849706700510464170345830930401324148076036112125295942035390995515277229871127845349242832100958852211644817655167142090178560467658860493507953717729526625357177934624857628753163218427354822756375211601108961881427864574991916170623265159881663663536502565552648099807025103661375454284525860722241045439197525117993919859697487941891716997033041373957690920309087977114681293571493716852313909492278717029613828580816130647376247635106517349755653124293117506225529260946769260894981716134812477276706961738004083471376619143586938841743510625809622003972094607078936030752010991420093592985006123984163015485304755107727070111024868020800918294317025121834867371339448864919818558935784812468395946824712186928095828436837814187145073091677970865905134014982375632306112604253523589545867290811662021711431992628063748434160508687190460711086046379969382120216522274403096748736901790336970601917493433032646109096392675077679143201956963773815209963037871905302697249605863838314041295453745252714900123796054666135062035703195720779936844445461713768838126855299901160391739556683370762331698918687282643363945800286560055393799285823849004127718462758866066780579759783126933528324455649448051612525495088345235075427752832617226168356570072234459703444401001494843698179505571646444981828636067217718690112527664413932850436795258934564208917143155143232160048285273753158273278627247194988593574715562463888676881007910352771046114522693076355266846846199662705267370536370848048383035086963004829681722160621399825833716010508312931668188781948343158267215830260724243997982608894335857605403396294436135090566707005380344886308880254048724537157407587896973213347414821674409093724182469612964630091365192318498881318191736171745732504491162860876506550288456425663863859491689113454209853256555914480530360266202365667687075648286195877045379993256715684451883178396083953042998473241028892501650965040846571675581220752512724374773748851628715977300279182534128414702041401858114034732531328818773396113320648302330684122770865639217119910899235189289582063706527703434277692067696006560854048121003349638540325743406465919057893391271536904737675965933154263802956846737919748053359601150469021845175448860354959550457769414689813510907336797473452235623899737538125644855553232675097213737499892290252175574479619825636205160813686212806360530213606474094908017624796601082599908760330229149396375084108661497097002035076924992461567155496216846429012581172879815895288478971868388213927522624192517959726141136059564595188765420944218275752124291380956128775603423671605862232464193083131965377517708748595225969585861334723273615206255337150778526431737127504889230651812110357274639700806561879505355158652825360486451604298169191197040487880360850517147095525363621664596633126093485572101472430682635231862687878686697827005520722415123244675880792131824195958026317891761518234074856241486305721583942621298468833234554133441112363217663316949286928958684363517696297784633248783529524366439796679957742969604344371824534906073293514129196753819136117408943999337937966408020896129793880199373948143949250992598473638407245831365057285582126237319723442754779610722890226420145092798652498780712924622007073433125698331251376400845606889891005525720457134872256073005433439812344388930812679406497091614761934010283088816858259018342731388921260511623576343884267717382140445250385286220423547758869677547973112427896691776388001247474469410299725674092955025754401115093677987606552230290493285746864267246378316798793184736527434268406034199965581301916599821539563744232481831077131909134560119436501720152576010407412230719047151984310957062814575012838212706168260667229174392802523946154071582504515907922591593366048469340741246604702034221168617225795068756379156512539926860620370190535067091208155978217575241292984225583758794518402792077524916003953682345288784837754422582212307810717604303320741529189600302119425179214222046280128145456845266310423629937527979154952397480429427330533269690770124899723241705929943810275978584420548485497226599394326057192256981899118153971704128801455543941562291715780732232456181396536988074872413734872926190924600666784449214369600339703058586010456866352470923997436881737193449316790757326860255701685103098499829870288482128563244725971139769091416660240412786048027198159421640730076123300051091013908349514184001953326476905708441053565659607337732384183136185603941500225966282782461951882217674491402491151106159430572487721530301936436446784333980818273128867227085055898828724469405433831664523356563796832730127761133037315698586836781867762836171711903078605172950859393434693598621157695425729903543476550133104010914807235910656221873818459852773368571381087132705691100641452285940150420027797031525929759945826682395654208667907323682937236097486077561854471781649016570899598417137659660201414660576310321159851081332402024290493543714708345886821794104723061548320776877949019120300342780723254889324650198232581605061809637886428166296206550343004110899039303467416751501982462999872857991512764661118036262660823934356547377325260753026744161804040020602493523274867772141888220893059238619171101795613214955143309354084663020193425432181295577063722730944503486645144792960674911981450871134731473419390763466517713284564948502577794201970106939463174964469921965682706752182367293890367552511967636529970955278836509418445327153509775572843720109348635976317026958213746969873379956777947490274921819795940269205889893925932465570369450371789867965807501630767007544368798866906961056724693940408921729560621366224184860773765771331226348877602400640912782975712926549975424464188354317499664668617600195328238749824157157019189184529408565284050519518984185808965485755641355775632337182159835683418768290428331715077243085895976935753036925465394184563044695885487842933953514096876592518327239474645214964920148584736337347755618115078795848629718530982570159101945943080088782819964448000741308014357404703952337136265969323627618457978740788074605145921136654322104627409380816575336096596745761353826584414091195223624906783313286597606651266219753231940248746710035838815886446118348484348441150469171767386442750091386566161925203519386465343471382093407508055773749356260722821385784681061058120616705659295451372152817409563922117128943573692872032896307477843471419815151425614520442492400687968572864504227442528683503687209855420190861424182346309594450394566985534427299198403594332472517000230298397223181562205278746899310438982114008536914105097547440166488161945624374683442330971441270859823768701453586462478462067930917409147997497148261655412452739464061943923156564794923969823526965931734698116208645474595863378698632782497422927715006303966948247496856839567761091549495102304290283374423252283998088332174036809637879204591897685543246686875217585119282913817838207773023510853419260452011652028005275988985000841870825813482172150582039392241178344914194855362619099377758207376875434852775780419969582476807016300837391402859338733898952658536435855326402495520531701749596199514636537309962044021780028928265353254143908549516999562496780394706956226396091824251123391301982682011214004582661285210112856760439316050317494941964253932036201226254870734814971231216750196944123526430137050398536329984405597963434026750596795334122060448940747441181888096986568902001868529162762580839892408090841701078798405761890638159424198210512538875575638759664922406447949338385618643584047380097518467433155021164428737824140424971788782999275996393430085868120386491181795828886485626330868071568371904108258241569973817299278390569445704059455075731333660431299759417366982765927405141383940760098609510987013307659556641078329889265831156378890238604328824665579200770783515651324342539825247831837380866907034878156779195683280128086667880065804858247037860669030530438396859341257188700954187747754349482075972204909971751374456088096331438559291240600398038340144522387992941237565775579716802061097566955710934118770891916221189280000701032983889632602065554315670197619127181525373598026121774942783875587819711003996143458575163926502062955567866702055307433929666919343789700555917774516875743866880432714397426810654602612568471885072892377372308473643021978344785277917006846422863381261669694183160613542522911147392571310321673214234490560861409680315203458025948275058816171350968205014014466037792644626971578101010223649224388496440138240004783975975541220138024664458801756793977700884780781157862749719870142146615477089106819281941950542615614852023559440909623581709688595724972020981288587347912973240888317091837766577983117929035626810682810906697620130743601651275431712869560964979875597489832565522058791106966266507425886424451548086146287596329934709083280843470671759757275170156023557872270126103699003210845870970867317930381383557881546352139908033582881677410396643700971736979489174694878773850049247785259308972588464157895036928686931470911570696263267931234223394928864361040637003020361310620421229661033627388046693339915285173286551432599454610814264064526408277445722112958226554697531513671196159889825490047663074975898059227370514207969911333627893119216962832931169885392584186072872835862706725455402004047098285119615837863374213713220504015372344847752591301170325149135450166174779011623195817719180203025529217219214877295764157050235739456938892858725050135041483940920054805686420429081091616755989174344902007152579229261489107902831034862570231564752990264879371749421068141783374378332463626171809315597890413421085178674693773466145944181589575232883168507471963431927737215809481565365177253399856363310229167910268939198576411922295349129559351972701295174405609203493056990013525287260661936814892486072393874640805524853009200994434767444351545509068912035084527109488453814620675041823389843804141303435250784233453012067394575567723410277220786263505032527639552990518833477428381303986938892287002755550784643340611986331075423874265199677440724427379768829120096872457653105993329783237991551288368603511054226321040031388671353036555935421980280805345707442119754500615721550533584203434925386617908904353516149800230100997225698149590088931602897809123365420335906340247098927964608535785756321928660586834319640872667801899979226203245103214023732293082243038245812640726519025247025421909057647034511293707558023642174850284022331650153426247063433183479350162558670720936010532499657805502402150322425170258146346120488367784438640469227270411265043641486361290737723294357145309404682877599444488267546647841295803760811848585874941143819976651374716437861142148540470408695359823905448233544464310774432841302773194279094624031922952910835682554672932591467875676036835020347295454798591798550975905933851351974630067467017710927501356283474172843243801866978026026343538124601003898408300477233917096688258271054612411903647068770343612268747390845915032905445858004066782889972133341355854315987571789263125411286182845084544254567518826305247078343221343725866751229663575684380043212297490152868232358516655150892939374418699072261159967656955049256173626503553210431079559329403439488438410959758759754100239366980170395154945882726832663636553177084199356535050480958762549504984774246594321107070050312047230683812312562900927360107378168784056757465400047777053401052288884304018417956063595574072145108055108529262195635467060228733169132415430029407170268388088224260348366066598609301852619532963903963190088125141838842259368455487875118491500518882699956084917274397392092993987428809320045181360273068855434400265369072655780064663780570780772067563252725033110800844270776675272403965047946041671916526895305010235778076499946799742135553520578127620742431510543388789636948419543339830323330660755698373391439728225408649370226010144847906021534245579498018877352588052817975774058045041925782919846596821852912010578842996694218978173114224393117474376935534399456047282488621277321731192986684876531973145941028462553655282889613291681774467301228065337132404091352351366444340318487522770831078277433958148188087932724040310700717862978493104992481917657430956116725071477753267187753016875047057936747313071097478925910926249160399637466367027023100793027844027741007526405190801000696002909005248869466357190238873911828806970695977560522743656315486116636660750284450332629116251594114030481782462279257646480011796762531384965815912214476234131056938688201193720798749131490898082055132260214308097201800703418450794521555300910127095401919659299571754471171510138339907174476365241908572956009241349318884108136944795802402752975356707282190803829281654322488686817095984068505343491682813970818297117954914122367992090518565500853903852588402547274709873705047705822021344557749848864004748161300855364589213149928768616482759702985119217408382887224677452786649390550947089106576052376301605377016950886194163019400665540916269558698013274256895219247463530704412997364828573194977401059733122820955425610332422764102070405773496421952428517487000338784807712483602748526869330573072075658555169284361893048117124167411225724547082817458698991113539539570776570798484792661742411770277465793779997914137265304806603036031173010020468929695041076305852352010534334171495981829377501711244598051837460349096418455436974141800321493746750133207737663890315207091989847889517628221783427405741850832959171211731516661193979406149067021282182920912197726711238837356536887311077004418085142064191045947166601472247205504540549838544095618984842201757418510935049821514794702584205114569336471123643713048222457820846386537775982427249017761492081734859805400993755998566518879888496763732233096358615188818834497300975725743937843992878770747665281186651539420856336787893421124239550105544599006966603490075692357416952814098439661378526377259530461128039076510956895187466981587187354944793212033753011254129153855717482700701489923041750394468787020802454497301661949026406904318070106906762916303745916262926565342934877516250831449332614908664429908676031570332096406234602007205336308069377236557581579873568435166724772279543857873958226365429278892520539398915523514651771451351099626301520229518961337313528526297504293078236290655498098168302239752720948555160998850063866241923391315377056446489149545411278067721757443375636672297312728559712831841166945577477869060101323890364109982814059524448659000193774900872614857230692723471789931766875831599082665011488966250273501474511652631910189646994990676110602838662766283251263040204631934389570174428589431832112545471280559011309288549936781471168153595158573709231361339149078059634111718160383926167200297655051322773563592301071756776950792690452756953370612061195621820821475211126338867414294297896686448736947667527773168819045787235030525600105354519431676644545477462766287139617790585531114398669437191615487626551910117585463912127683294961390497077719766308581794480962572334551715897127664238486512621536761024798160884102117178288217136513979721134803625637290792373365681112168947395069909411440070871555377125322819461144198452039867299668079921357072834797699491478046177214846024735515651497060788511762036122993209537849632693093813681811484345461773217875492956111478123822698892260611810237501736277098331254521190306278045828319683510584585879651764191097942390155288957755865819905271163380547768536249274813693706308726645812658778889639339856759706950228646064136723360201496090262696109410896667507119634074175647626088484490396879425268790331225626083806025718148882210393579048552567590392220548327570540689479331050131741445678146845526143359578368290051056669423049656760409913128620725184538910012154323731091803169027416685313487965808398470566085297989756333928674101638199700962877760778574049603251341358666681700455190856295203854599229543215206202595373684604605717096896771408902111937939880903720290501508563041385637541794844555612157366862678569254043881225299263108416281717356653593258198475761827835783882529200158769913419649018988684407407519226916597714471694582886298875552667935843458281092888677915248184165651525332406245011084943370735620762157731191318715438456851324344245881210422220184808274294080334212199512288927158432727777289432779913508815016329184318842847723353666968849422902263744386091683827843390998802630016543568446312588914853933695973757221207514719890006417494263246032595667057559021259554539011194929499452253880022602229320492743779727311710600100099697307939334929567540793855756939166383336136871203062093613837959484421270428293639682549695450766895968980535701802281226571287075793883280380916225349357592316816425130099765504159375671376281913939736062134217311778865491056176943360786287539179633386897958664777956261581302973639399789325666466123512377395537780632712083050616361921999147236527648617200944202807768500343048595654463656129844927986881340121425053101098887079290581846341563384852550572013821428375065580240849825955520128484308582175825252701333840325075488468964697890967880510162212965079002615847357642276301834887592729540910891595028650412874197625541336754169430029342311576061266691689409742865099363044361667176391897483309266839944037503608553291854497782629817565681045418426971370957441977346016582407147027723617753141300645986773967110556087918697126060874572174596614905410319614368526643157016364434573612289245448606083639555927553349538068982460315360223775150663927490279117866742569955090630518197951282540199855977108743665763782137724338472820493889348920979899361103197655903909743384813210591535332372120126223177023714753498758267160522252217356591809370947874372189281241728716815625770023351562949881331583024405673840670819697739028981509271653373464312026127133672529067686048639603593440697842561155870021912490334577397917482583903418183040615316272362521753668725608743810148961317988098357890336268183712823429523524971959170708382369596742138677942496410768293788235679783939096271358026844789000599636296260420397947343137228572560207420864322260406481962168098876193298790022626180214994514670223219470765323547463893984025264039895595512848949062072181151493463574636738580781017082953111179812026450231436659395785449329431520535293894136564063790276847054390939674744286085811983921165582778751913691402460128863259864730305675471661448576970246169396041855474498998471015422422071615497487388079011608738180360313882723631933241997281047132314190476942760412951933222091687148587930252688375691739185957936074749731253565582196279417109731321880172299496189419813078620685291964408366697737226582480791364387725801829848807921213003527294803951763938008830765131160575051198278463223757238256695655953637585463636042186830305294131804767686635573650179732475617010476128641727538675649102643860284225882821033544522495788010922585425534968994972291636959237152939561384046185352809196464841505366633639626634073427729506262925433309143202661164374909058766052973706922088663997739002122536089613360638855807794507390374892131231334405459576254637713946805574000309521610161949337749153661760724036474656950279092025067007796727465194197374433215281675686888857418063676702697436101786524299478913907327706610625672194095464371543046432443562520612403075764468529322141518784549749824154682350115362057625013563257851939656412071560241386774175801187140922730220431316018639798800449364106721509589087254852557033933199335665975921380494541327294206005405184607551667171432501225579007048280790372098034517891162308825829035085958618689742542815976549379806868289739211741801990143260536078226091849981746336639613989293789481001929319341277192671279213767278566657987583494948650888185427418556967321644645835028124584482582674066563849585913288167227641369598825252154093793721437426940247716699749095649722861164329172632487206427297559787464546918783684554429250577585472839527574740749766670356460729724731493993760973431888711877099382275176266458782260196539083807205844728150932635510923413057018804379140022091197591815338586595961073319410132918462484284806515832225621545172072795419355325800584773965000135728422713689900181728390911986264193079609319645418775536491968739786038941330606538749107127837851372508117303546831937180336197221802698112393502584893887539580028970024447883816269882819231077069511784260171251418305633536720229957637362571257378047481965770186625890133449045863767783595486073833953484826081362811476515037054453134193107154969247172478262367171596395071104128327293338715135078518531424148165636886240435134040182585945550595268207109696552582508663962820812727890929004659171641930632850467305759331391086001695285613241764818372697357633490869130563774617716632087390976623881331929373089512329931222791735145852131281101675224817727073052302135765382685222758643410645882830160099431407276616131302116988596454159045198552171351941892946082771357478119541185605369986338425191646115968158347188372014509418101484409650647772552099843492516794381046741423276070976564509798379674906296895460785642443699406870751621204567393442219193451278090674017057671506682418816257626498926246243146240325945242282504630837072633327817170217916881046371177720381703873395978979996817948730962442939477119818300815456485227546275693292052616994157806567168079606351918215971836090447362448449131994245946261960996344585054507589059951606200152646298236742161115791345938917095006282230941917054698942554549726586981140407513543512024325279005203789545118417029236930730256755571888268424534770138106938251186141146435697604143982522988999338864301523467656166810115126544253458715904599779238376788504054926776918897401731612100982473284352660697774033149814542455253590500599908548700284496969763105951181092485436907978688877020959800098036256791962943259878948086010960345879945905336753114734637932980399606642630125830192749370366191325190517556962385571226182534043174026541143175069558657743094308021745733350390496179855527928959547293815134338723718654625931586822581964104152417465779944789987421325280256205338295192897768649916734770823014178236654144414909391214068906329784841742067154806577275468960183950342212622431700502543076832953023354742882905374708170682447936872598104016914086226442279131505646161462273104826819990671686831332042889582766903894776276252923578285597370056396852795164778783147847399568074269112722219208288500861643506958454972579732648249972301175593308444076141014916720619422323874780942524712422442663985462563985425850473727951531077390388544915661685303160860157951115792895178074884960854515531363625360645012988030831381281376008530597714666564706906078681567575385098352641932832893057959527689766819188612767286119980878044005546823775694299255946547101802275774747511072241515554306216086476991375121551767801350575212670805364615537297168077824346582263525074933612984179671813475783289185559787043357275624912169572483936152756323315178242427419976406085250824946194835741061225703118556072567731056526524340041323397211470702501557852558425084629648394350195196817816887706670514837118558188226334063078298889850027890917952265293843222949395675872659742329068952804911019086242338571261580951571508957831033054819619669812710200572307444566779434953115979537635851394533091952857442626126947806664610135654828436471799308560898157286644738051853034782177288047123292626148087846072828234281362940947143394537635290204713569634409226745648005113011113580123566832563308424637853184195718120148734903583759907478503452571874397527146859647782254878872962582320974114383046745398795706469978777199037380059712478994629089412923991833958525408435035933090346047338047471645690207404027780741776678937985988870304857676772894265634878132016045274684672047294124987027727132699997738709879657944247308760226013640084094560759051583518288164634460814991322666184081108085040085403627044196183899315867971926696209133375613081379387397286477574448983416395099615127865492149792866230224074629656708928885602551251517052408941586370914095493382187040295648554199059973968661843934739776434647135033701775868756572182233077530564357466204682552789830410218661483986569335880280025851454497750766859825206377529765872672056750575894793258023843290874295510380337929741060023066869300712718456486535483898360197844359215504156224913363481072329901520066301187592427362991750650618273857111033667394636546567777983850133216578442590557577652081879700411957035619265445237638614329763255898379509568445059505763145553540542745079699039240854621059638777861925180417858453939954584045088269692267079688640094209784231998985322901713776492103910480180836656382671093813796191892979273895512075309949426109703172824082397220311674292500523139018016327456263714344192940892763582013291069108870284032348593498268079161116325331047115407719947305775858037971082018280745364235589154654370995148991190843191381370013601378827716915267238885236449063556968686052690304340936949601819972726877624720672654803191330572368848251760151136098730370755955373979818591212911617523878044117039445012868290937512551999806175470515128715378943403755684089494787477214125767222783636912773059568826397100289118671722616952806565310196827550537773739939697571663753168339424566866833918753004466839082777486835214864846718081317441812012339548652070316028155375367264523078864952770358852355454347692100099148310062754307049338833104978689923887922021531243726963657778326449720787158029597669945189980010344056521714030988763960136849335701680178261942604433888942475470599259310290573090230700957646379195456455769159462335787725808290559963688418157797017552582546003359840362021681600803010641409285371505482358237879639664390777134039898084191919939124359495671235137809898389660642434205537772306141581756271186683636467180643675735861030163254797496939467401411049865199960679769191177059401118883796275725987956064863430961154354558494112744611559293156899589254555321252753526403301856386106022580131470905193053391624232566403106177453449904515615432153281361230330535585973595644893465087987187873421744351582732918810106736025652331065262559287703248189201863048534950584960399157488963865916648756786347208076724481306405439561683624668415191584455119346312100041171736472563568818480667260043343320356989368100497090216851995773098015944174813708628251303829707365244222344985191764181799674822947743638580626989294509804083686594828543921811704191037284186648141790739348006869512837816389185930119612754034159961136030578527897387502979562926657881705149184486889110211959112255232811634922139537409379575802852896363067299698763017141108057108495412418969794965000418728616316464828685919093759823232965303979904549259786942351103810554724295659703810449321726051190734186378450011892014619333700498300282591775456433761330910369338260318697091302932208032455514433522729308017113156007537480762864607540688916487241397420507815237485020809038979262703597840681579504099465455347610252837122552301668559014511470514931670910237037592853427678951810446538119340776864576419471826477917764040937364169998715014059518119296190559877460890751908849325378544677327029562180822019834850995037945253636071650292101609189875464452542063919459189202659055548893703125079225078909948270215465598060022676200492616580508870413604846826091453034400314029380135266901046026318215497435666116692560011906628486686530600640150461035383369083987916142020256801525943465690831252777569554050041756890926537120147948826436144111333428350586032124497260771111369005752013502170638911816268493623327572341318167724288702200972015569075338344281691483958198948864669103575819336004596290595683079543618763893749241944522843542818296176552750408544041433019700270616959826818281517791573984421200658257153438574916842728076873567315827581970924631124140185757189443474705217085109357374344343750274627101956802634697108766882433924647114149683543267751854388722931601112633959914501482445370292464045631628977398173025613161731795976324109488498267160351441184908846070387644580840318720358546976111728862640882125585310439388876610323217415192454197127359712134252855905278735904158462963531029246669546607166229849760767596735857212976362719833004912697507034973595683637990448113799714102527730918942692930772949322080834142651226621637786355848351185248882410849697515651762205963242577877159060858167607401654448573405179237178019179736446846736885088257218153771546483254402656659899706332400092494115088560685226011246217936214969360948367009874976423585299347137408817924716365141240076721556620162203131485720171070880219119949941902069742413037956921783730655401989192978868451263644582749247850846344071680721141251957011589745073942592735061979992825056135620049470828756900472483120406937410689332489619826222818242738438316834853232481283015455030691863582774909921861899562267183568923936772677248225665543152406198811193378883223465062958709018158221450356883801934429054604027575702464870485819580923110389871134652278060223859298098126000330741225609695591544950202494581896479981981280078864454448884692965687653870792743437251620247317573578744340650211027516009771568736146249899185513006151483561840035252475373649212959011524677786975200503195598521249328854008917571306369897730292172012684395881708822086106271888621226810076950094260784960861270170427987846501420713202319778791341606017833670528396769816235066955974062798934469150017801970131316703815340465334485154147911120116127285586773971389943831971075213234428556248963637420625407592420553147411809560631203400222514387922825906538511398201668493970949358708188542389498195834886603365845376536952348420217107776008514200155971898134689897819276432277121167504797737386752141266937442808631180684385748854596317239117969605030863216021812067161193433830762147016858884032929039857037406834756117391535879935742322341372704999822871122433608278070800316789379384031644160177450303052659456444915361580654353497439953560153928776407733987893248193801185328477609759570841822639152854781818143928571169636275276397155639599983617552392868213586116237185261922354082897734495876265418243334342364855420194319446864115610530475904275349280962421251648280956000729643449316426143539362496283977851581118196596212882080919997041743779729895160860990898297300989767413060999241265236908695118480978128757891367364455546861978806292044709480570638550504722377397721997638517324474376769204662852726270990550780173090861401629857485759833059108781521151683567929951471461222796911636750840775558830737472203223364428735637607202922686340332012475471441980752663585721924633439938793457706787720982322638763476420035164398942944245954647077631273861899360174503977652113778403188918776922528478611439095087044608238478763131348401441893100773140478166589814272056778693036494345354091725681895322694272009257911268816202169471395961344751911439547829428783828669511938043711292515230553484935097264803300185458342111200812677310414350136376627806770509924356326478255688817951417338397674213121378895500476659889390610523268971667813147109658224410370389350031985030213888782305665211360599736155310910033036800749054704579590319372735683875009391739244823586681246468139155087426790594366631700309736160067380624115901557700977477953213652917467703892028980036776095701578329962987586355769632286847636348731406251614703010802613382812544779363263913344620155241894770364844701631378691620982867077000542032758304857787145908622921492573688262296774652421079523173292754612651361394807138103558182048992490172555967926175575473118334397606280967263112893424565651908487329707840065833181411059180262227264171586539550886315491773452179496644620744934391833718626427363270906010099277485807896181543321314248255077304630158738261030877216716543010845893693569070768204191200536024917386622918958014146938720827268235084172438843630620181887241945152300473713177891651750463302321122058912580993731631394921933503800901496295604446525606933766785444216138092254756432842523323840147365873693946123485047912821320425496416145232094024539604955141160364750858662725212855173705654241442260635844538342380782583844222392655470650831750314823027475312395970513205113791255077593754865217599968969380079542064654844985373882737672520429880977958961978587833081871205792262660697677282473244121911945197547098498068248447012928725112717057492969861423694109275184457202919771725560897612453759202095530624935924109197429975300815584639069714820603849465286311416746164375577537245428543616551993347048128660572661666837793986389276454740748626848394135775348577514032946528260476104358486028151302976048304156807221421457875701800698681692969484835976791418091612153137327924623171247296008929151890540574200854064522614001075906601436197620607076614178065910367835005959182056085320121228338697023961637419427072057421175778977090771485696826344378241326047811736287372962725342444936900694007522416634458977818126805059072691834623101958697054082546869304679057861020218766110957944986346394252673121179417538110162007633673269408188447475178098162068510960005629670837546301592093783025692475194581567926973410790183068774625376190484560373524518024069793544396393099922296498373073838223052052692395074548649804313899029143282176688180867086239299593233690363041660963808922901309862158841270558687495950347578855940259230723742883328155712494599664666451873700390379564711847623546398130890150537537503053962581405975424979545783773642301246462616248449743663504902966333326991790384961619921122551182886812594149826914588858832786104829572615575359696889560474658923474924311962352474203093362834577994678027722739945434140629894507230274588756691495535859359930990147472831121049990890173562784354560936579916107859833130667796458833168084402180447083745040749496714783035673128977226360292990649230285038447043202674235204093424427697987082175538151673728024797592419890809661914016813817170955598697874736394528981623281036589068822247856532360754895927808034891210005582916410643058676944924654109345200221771304154115795028434146178731533254867203053519779701507358815186102288552065894529851645569824929304848975781232003055900181338466978861546319737251900271367010431053913702573644732110222056482757472405824401448099510829259618007386418217142954127395149912837235209662283927813954584897188467891322814288741344911702620429086976900814668416121737204501033166014503917710823044857134997105631574277257750171952289766162916449575611548514917794806493164476983930934486952398742638059106563962263142365252828921390461791069103079481243133769975947833668621538399241844838719646716481228967011403577678270324054106813544612233960326086106087688799360556771822803182733808731371046300140329396815868209360852167114931625323367981671089560141208965480806406960788954491110757180871321839393635433777729181736711898037523308449166085615610134826072518406848703515764938678791914982414079909538076401719326296371488402131054258502648836299770939881569466504175784021881929307980148820127897109910895550147351757723900782945143334971340769537641762532399266491407831567021602540879770840019096172210939185802343675442927717473506253589544670880190676550457014057846212427395162851153509882568269472120933389146230141901312876628580996018781858376446051984093253542659153368040034086299530975863084503615983496520480673317321140740340791377337470303890761590991855740787550970029567302892245371020478209379702084914054374667821827804122250596450940570024642172794897389263551408263036216450991574626641540496356716886242581752135748350910894735242119944452395543057830275109323985624663721649612531838093840565648483702550594602025125624675446617317888725209318669380097539456655124356441715223266691302594221568881935530239600015598070847928569054460399043327832422334381089365346955700279496290328171991581813550419126766672794381816794582414076204038673069033122379879048392503692423630168479823150756441702864492279288706508268420911917155055725803029747216331773213613210507514574605724779096766624177232610176793831883515954077886722835810725970830242316944890214353553748870522853531083397222480086846119315341764015829288611631368390026511571136864448882141052635561779120856700535197029907770650512075109722056126146242449548089580913248283559913581435719099168407089383481194744331969858071408965594555610495998465911216645214633405600523362610728189004536582170407139936807283701759343311831748019336213344069606486145953083564038729313334970502197935145306181118398878345272203757849316431459628892130032258019102299721067506452389725123101840285290032537185564479959314233705956656857682340854217110019863691892568225008149628807756380181135794343615168113015329431192811526956357614388103488662331852051883754907937256921180251895938216500636091329103807931960192770205062792113698939540657759963273553342914278273301696188131526211084997377939916359744322096756201812583832519884667370338710112621898897194073823482778224716105848703482357445218486745582518944771382348857564813584776454260267196781281779062653416032160503066789003724745958402798344258145088891568894152276172635381157977987711315195538746251824591446125135941456262171802466726515883833277198061076352616063324203516214593181697684296645652795562078879508024104422945112617261304046111217248870664293809012686563635607483309801650824379227625992413840928543796902040930338803466508651826468079010866629306299226726613656937273473161113528877826475988473541357846808627755352117523155223061701452904738752951809878520652119199199989130361054307744135324144923128477837870028768621002991053236159490068689356420083010307356143620491132192787656159762952895493572666933707074253815633380240076924053930796886883776801647325066996190519406676342366074988862546137427891968742316686963101394143825964531712547364395647035610089494975383006860185446164724929859146583591839479842857459846153356345007364070355487798599171277171436098487208254080630226140672555508741780092403036905492107563345322628472097145304007185947318149128200922329254197346276338381102486968026523881468288110069596213234039311491536127674915689391667306525761742676920747273924036592189138081217102512237126437135335189257555600377114254267875701580218122076368003403663814934016939723598270276918383821083815945179496028642576252755629940340233866670322975528919175129487907909413763408417281999793663057722295273158538324923350697236959536397903763439753399140760530551547437421055706192797449404534770092353500942205663689094276035545923827507894059169227151098431410145044837046422833038223218580837022548492289322547493350729682249764361893064990459168440615994116466420811601398905793418494163568053307591132121806073034852726809057391527689046046017675417530487257771172529746818924570734760586634166369545926122052958299271040081940263977997789898576736764768281240693258810540143553054359433354802891239472827475263143072857684017275741370239023067401032329123806220427622389945999778722398622651042000389206834290036952815628956526793023133992225967341873066166647870628031521133770928307537101684923337944021796252743390424304605049037225584550537845465885206318298355047575928628120608460747928810848427963747986606399836943584466222429068352864962868677682754476089259218107297824788159923582798408938431536864809407853916761173505022428454500804705107272083588590490431461878380567545131591148825600232352443329065961622925716059970466159465629157159730896620609727855258584198857695057172861550888092327457220354737501708584461365051312560972454731008267827949505241711466615026309682143129510280793736980273605760377119874396822310969220237718344585159192795045356124887235734758786609204221366551760342350696883823014844881802629413212189507098065997509386456766022879701351068614042720993536365075188616459278919356481845185180811103433395552255806619918251105816237753010868117139399233618932624231222326868047473733143861783242497618187862825288567734742971008043672078466721381778734968188029423867468529000201906128000000423084278934686981217081343879081555299626021786867728852304124052074741579756040813709159339880771612738101706676682421833161684500806696294096491996100077246453596391185983975466443727482969254172912715985685788531601656797418366909112637072554203917239895399800675364341156218343621564874645385017773320590950948346099390010210061957253356146936653065408715498499026306603656000628985631110427901603547792027231926900564863809004835066139174642279170465162200895614457593047533058386684834764121098885980071958386689610956227464330253968963648135114735946109715445543489452934360700205254526478712921830366952914650104070981062219654127696294780421196549330266124377710459615170211009970397944047549067930806903889879310270634980733978848795587309989918264860217995159294047194383787195765264503622876012695444776315300685158637209325259095519664155961548494964221890426115647384417955452298325190899512846897389494801076421519787686428225318066311569377852230465106952667229837362052915617544207888038458393787785584548206519389159031299526456325927765906644827276257629717664499013762140156650465105039222543143416854178193615370623235098511127770672695845781479157345413040873412475216993510669293074887055532322244314676613491472546203434722939806309332768654962549149684693889213759520322526683663761354760245610632275921182452989916608616012796698242672685081662990981971966352961372423354958528395145504206918343936021480994320215158084722677952514668574139909774363520404380052451758669330748494243628694356092775460333820880596126147563391997635179958194116794220883159117832804848707765188193004861356074380663693483315430672217184318665820157501690950460087090429636900462492247794862937160072489598515869325588174882416836672570966174930394915863755386147657113161670513946595882983574999366548731594218323760721484875642485602355653274049016189684049233634129677603638096266013323580482208369874542802051224911037128986480721068453782475310261580568859088118047298040017594222727490649654196515328156195806550758232413888430720304182781426022421130571200316954040797313715803379081466440563835519461276310893937260216783785528967557356460341024149706904676230421529567952442173824205869666053171181191688458303757781861926656846966642194763292600848864178286135019947095844249326905355554940723302482556355702594491563695103986753724261396007522627338970425215507473638213548202059146496914681781744304934312105561934900986429801623473173104062800195231601875757304584594273597087427611719248737544196765803816289671146707582016419619727269816479199009019093682238221731740939256433709865316862220994489631322263900803132959435356660209196639076989163226372525606494492227358085006353284989890308116997838395839874160385450392680806521891173944735451764585522321828032057348898547101120682589854391423135248998983772605340615397795862631148135390753926098936116365903878049916777639370628918388396145909972061543040266015938610450623214497934455369455348672658638651766057523902180685865374746459427852280814498805046138984574431709943319719879230085630226409991914015402425137267589001513584592299447214591483782236311064900952587212974452662183532240351861457558447086018013810315639070820220898818272820233082693893825494770642999686337585419591952145784996198439364701432442575864807392308019144286938068802321117307026985084023139516567498286176755520638581045361945471295898755658248895454084942710774317361679592170760596111807861748435178501573915418402706521505773844050773349284845220186420792575053735962902625208363643487863021572562700572269048665691556155603801749636153671757620795619581598881084044420987937673666685597405341863795602108448942966798306749470880262014298624263052705003067386747245449795945682494393295168180775699732868439210753447258278341962317385434223304796202047901069350925681556375824811767305114327104508291768757022792094159358880322509658853103214874506719325450581110413777774889960166257117393363222655421350453091048686107445025636056312570023684005169724856495316499057774749371969126850348495892567236800336979658386592976195517040083545622798896937050143271626510581332403300321203047963250206227041301109469006546247816807262362535770971248484202860623475628703195008684937082899201306538969471670384711203588098557047827751210401406725240178358545424092235312007531020737577979734924801511568063215196180565858457934084541262172194967207449704076913550902775974716245172864990896531422961282869770549170608443599827560773101846873608307177765416920683989018305135684269954441547448870471458603224258419062521717296033027696302180354319720113337634605734507646145905509924219016935967574931353529549218368807955329377348135025832267922395305702841029061997894394941273623206338942539855170732914245397705525682134581412320176202043203073888537138458801135175474031788029926755342424484814483622051439308261181147914501939993655391674585350913831145533825128532987089716318999923718284690699047837958295909326132613312473872766073761239385381397533514062889144016221711671045632246526928715855646506311291079026053813610020818369677672383861235203669330526286469784122870902627774994602575498844754655381244817372383661915472238679300806498937712937138326092963503213069612814715135344385810693488753379703800108781620104253885571548114520307195978344338908992646189228292896046771041500630369883019095795201494953468353903705155901437299201848127329284579715352437075127271827673863327384230841441053760052355341073617778702449454576112883203189540361089652988558568177751394459620698803711759980051868149416435918503266204358603940749571619177710336527281403657274123428659614285971210910250966707913640402771599091602518311550299604163005352901590339816816882957946194972088414788591785497250209849618370158459749970217357294038504228190655330466492115698859465030329525922799850805166933086011903327572612811303050294666206441377143749500025862535001259684676684175038385394281481575944750936583482186801619107298755797647369287417207417476619659717687213455525849943320983343547639282416886122762695910241655727886541748033049805402809421800755171205316798602492337774049686688793248025719257343427931942058449753902662826949829378527461832803770925505019250698697212124366452974802540474116921808149552684260422878060327974094562389340863137567620767300398404296167455888349569067556353344125782549707237375106824632607070201301404140185143973007674983830776530212533951939228162829691875050719316528936558421331215467482740662853564622554251781643863382383979527247366237840157751365268878336675120534078767264280795683963110556506554560864366633938612581149297530521295391248782734348127691531592875094210470439645714292427213352006478724167870747466547370432801789576570366546683455888632940162525801340140726885967442987604125483913791423582681537974432713182192104183707341935216317915258940726200017585943172102055076647059242308851896824872395140596868787360365991886401843908062536714978295441078323589375474208214465997815982167680672909666777826536516420829233976969379911281212085719949752988190164786233194815860540613453688164951148991750468217622962833191427935177242889953007123253620589653125089252501742345491907718872096893775292113407948387284041859313031192222085596248593389386579497719160794010709383736146203659101566808144827984948904268578904205617895917674763945354210923063994001639686052786398532074264614830483152137656804638778588132920742391805541866733575896934960746766315704887101142521409382761602407642592554921993752323680986936209543018018580770711118113805936749231240651858417909273283234473428267270707169451112415762702820429595309350377913738998031312476193547050103497148582527618793712648874554975475041934653146100238976836576283086628409855979921717255804433606680815429634043484903599870477383557776851234055143233496297498803754801550876564742260586028093709474942139517210688531334090349879726060842357282352073792896823228982929423941870216319115903619828472681287736605621599901721028452861999574189204149792269096024747419919216268303034006580489032318671541254365427932057896675837920959879791865579348764160504188736746664253659561631039431356521324524113280832440544761057733217649642424809535502996628870063433101135603850931101561885284643922645223255575546065508796040283247635824280120431311527763293307690159073124668739555374546651159442543760276520735951832648042602092690779047861526556379617835322690455971557033051883939463780124777568213699549911841765029425696398609830448737682208208058864527877911105400924252368172109062789254776501610844307620601660329547623693862959845056705400434567709568441305302740205466009677662169358741253886781926968125284358945341197243507540949729904482423991136826052028249336403432868627162453964543253360001485846996098405807790977019763504468233350985026337175700928282895952424266426893923797343870499858823765528900511925382729217116899383185487186978695401228223802773270292847238842077981501927773017281697108432263408827871979034036290410143241298220638515310835895642577639270452747978455606910404979186734166172641661644463508001948593652317598641604297185056264853537984654465584291572682248695023868368029266384678894240650727220298543152094893347730132162594445640758668645813844261873595268720453483800744130020823934855611900522970826523438573416699172071962457044027312261173672532735093357304116319706602826124534489732840318215551299740349721674459067125707267582100850213325216497056288036284048513529708911402157793573265611914072109460513189766120164701261336459115898529117914098989049382619204625191447616623459848864465059322186160582599631393150476550375072895099676734021157639799939091782413813515460652634878960500930795933814249925402292434172573087764804321823571889444784120506852890497543888365642708243546522351585220774801924040578927283186448138918047550824536058528118503321151891622904491507090126314427751185656730714466902253118483086845059412419874128609386198434517951141041576726548650491148423709516889571221911121002956538998040945232438101761342900775949034084393066776160816280425061631802411926817521530114971400286421242283488844698763966086379442815727935373563543351900553022675176034716989969684840809686006904602578528231903582949057693751554517293285172137901503567211487852624574260515071202333566446505640990853528027549079253498541811406478971835398547853084955305828586767613421885656619336537936392406079023173297137709253583181905238739472986308963889412811932935291996421555396297946360921152272230576726013814812335997688476965008828390090638607031001143126709610065802867896634262546687125542593585082508250957273898509986633461314906881352659520599499774406355815259271651886699187565434334534875909573966980559603701576711184821129134373876238487945640564120782398101403361611627410007462732117203458548237436811118091947798274445199948495453811889070415026832184335681065398681900767184556528354941858130896684994646016213809227666938693587092980333939729145288003833088313419242250653992245682643309574535918865218959224153813121470552832934583436356967145926446840620285661564572910686983092158123370470977994380503418899796053859211173090772531193542030487951788102480237447134883790361642331661146903150872925027932184714952673314079705135698331163475904823169840776967777675548650322237762650677044205130382151841460545707675292281472218980426302763598097866469741198760111069482268143701306564243786148197124500822389621044133720125893876344514953617239626289676937189287471859715448921395490456788356795465387379652186070201210995529547979162083358964763844145580104203518083413763708078503881586248630374924441198512972374383729310194742377385560946372273507374707532816866432907502721576481182810474187713916429079647039967341380292131625732909667844556792986719449027743257777203966900398523700301066262895706856890429482507489522520595050141176254040199056453281515048158390803111359880767006953907098169748076809590414875962821151659975257272450964275383370717283528434449157987056023229695194096439087490635507567108011333093162629126309325577970569854514759144998627890843380039798920382917081810834233190798412730385150838440515718739400601293639190389896377060853982287744217132426886557919709673906213359787405661335008837668244328183722906585979861243537800334991808209492382805916189575308735360832083714357377469491966729465643477810261465510231294513118747966656750308043535211606417607531274908954318956754038321610499986017859620765022889360459525631412415155781576088874525592160976707868123269632603582476345130270413809887010205962826955411849476957004744978311598340342056522110808631736910530841496643438345655191852446859942135791603375827478828700021807591995620967924975389152598884997259197310810948303217930878318267388292374900595299141990969382295657100013541475332212810882055519672129232969008907663861769487650817122862750032121578125528104526124421238937606581355781705428374978334303050554507585205677308723266365862470430141633723185905069198620277680117755648547066967199173944512744915891099829023465574352053556837624229964961658752790371392259179302249915893764770064523114713710682921020628306524734211803835771247710090163345078647410178929999770204678665124845573019330319703759078028503553472251852861664295491451528865857780149879903201021138490188442088625564009207228091217284939050190855949704499945705724985985444990985255040457240687650575058853622328774783019584113976953226877132834360644004668804895395231448342902642522403143058756726280243609965437646863044060756294105962195785574662114362164336160049404146173574442668071132944325227909832474670691488232666528934583497356045428278901091734426720845845056071733308528961242216893250765691965638965625521536433337938242802964936493442552609442757439117834125625345584289073941687411641123968032583256745836253288448193226140012248882209721376802647261748376083407338970153757205221602423255056482607248286548303971009948310273412844618829672686755687958290899867561354449186814267303641517923292971690641456279680577970051924820330269651624623973815980719107273543275589739206198995097651835000407599969352906549730219939862145194219521872982524271334919443627828659885187345752716394578166227067421719712440921380005576495317818482616233378027534227826060055493080914340050626834179954919850776552159305179686621508699169631359028860461955106736819741466473419992770888449718225751276304956309148704065210456508576390077138777130936337438633673568624931766278254861386687609599279693975655547904683939223248600803411731144238069786426397205423737513471905516428880874002068104265238873804956456683822300812040105533247680463174552707222447763273600851034094251992038334279033060827958156054894096671174030518502997280304809371073488372027468153834361357558253768501594273273878520697273233878124175020680445859811368899535520051337224646619803326298459668798294496700239857469532905036778479952777699904191335442663330490244763401671277562304849642970115587256891544944335859009842104116161822348642866659587362365278193042297710575640777773497701384507639681462743817988096134520096589853716447637909416845510610524479804551877142311582760504109821854958910351293423262668320404299717192486625518911146801875537123678017940819938447535409450023329836759621809182871200132939772699897183756368924084910142717644475221684221413726981149520793361359580033331811335745714209003870583653729651974804012633430626527672505580798403401507695548100498126501004943611053076072605110112312476694082451109877933675955421334735121355121531798247530723977078458522320344900724387846935350713885285680215750027993187438813918143004262535955416569461048919560304158334138169505529619971289730119894365601596491951867018292492087197480448528039418790838760170223768247510568776761185427123066034636458340365179700785771337539723279926522940516317090582713071069082699305410774366138115907660012193011286363312635731929026371897421933588409483531628850685992813238136885110017243844988705273629125135690373925596519020437367643097388297907742955125395698974455151500320079581406367095216623305253532125897310429363003794473334873420698006475321640688651824492744153506446510911766211403364625557612819528084981557697070382922340866386603825992528676343976606298749230378212835114318046463120466052592525423238355792356568256409986788946514980740742885826187912985630201240424889251234487346829798960315251578187465123668242911820487672922880890127317025139394623075231445073056951112314613551302424560034961644104002269492878745241141988718372774328349491056477802017449903932248026492601787672980808620169958367107056611807417625382261474532808668448255602416089672448660533321856398230281027282611418030955134462031452913526931028981629415136840985453167794020130095521105126412242076917492419584483565605290195062363296283485080662460002205876698928130008136087334223173355245850597084228560976361347001586082321137006533465956599908797450749506711955199798156760338843290606037867630711011336306977055266714544109076187390747626199766660149928138108979995278324422275610195796869815079532082256129090495766277042046987899554843090470541513221329908708313244851961929166236589592084028623551261297169043038092858003078937459733657391781164531134578951513147178152359196707518162435577236984258063892717286787176982685009565713657876671340555324057452076911575453245948788642065555771708350589131858237478523098275420814913436962807817496009888863394224677714647058668069486958231746366744810842326375327630231885630699604078349619348407476022276567459355215438765516315823790885004191751884434994888188178472032663285565931730268916825560984441399003730078114038533963189459872150554793582564345320239666215644932728162036468490507759058373804398868684655385928425361914316852757407867892276424315856589987544071043952240066500325596924730823130106536478789382727089657092407952537475957216497938643348659293418798813244047158708108195496038684885704360181559103327093460645700859867042070741085785397996144532909399000905094657019067488049212641182795958128682157864774140590288557249565512023056776225794449632725217352462772807723785560168972461261643757803071180697811979862219680183290077439955053255594738235038808363052759242979461162787732458250660096189041457737834761496538282038259984966245923162875267257832690399030897518153764549366435661401226605961090694085233726193625038481818741078702201657443253854405824084165029094867799594016642960381433541499376275468859351726360066265421840726512015843214187883483111698875652275968542323100338614179649275101511469303928337921608953724695608624688605949840514513571669072221623481710782720960056432478130623356267288753046389701505535785681729285442918796658492275275552814117180028628508298448248467480045697510516613079083683652370603371701910801579192497841310907011079385084348865085854672762725285038320184152723646030150355543730277855375834733830412486536465350425287325389796544176925294936144529708571071213741793069322381212815375625419357598283116467291813239872096712026651062506393155461557526199895764233951090266642295448185617772761605971847278166761442712020647507808866931695357343799067108130983768371118851980087703553525729258836674799349024104895790960524189058476703044263398156204024666465912924053171445657295132373364409333529986646163307569917843559919451473353057846042081322893922121297149558909302611572213091215466108199328899435985776990077285388363441155266677470666425583856974933995353864755197906956091866260992925901048681297570444382619699323612558074482367110084412180658547942302429240181339626964048529317944551901364059008920088883585001708012265652979351039674145026725333466960625654137222242546208106999673850353633570013558569207307991385233337814288948114577389266085592484093238390549198120279134296556539893747850577378894000637644688515253444929104786000695531702702172896334629198508044398025315625898988762633943027295303226163118358071604124646241382331085766238781988753302134036117045938833661971038575323067950600122294244954941597572827859428535025319541535512586849850643615108286045901826649394924382302248262666103315122756897613655373310705503471316302597910244300870753627738925697931122830143200136355979118055381191315373272077602209384837044106091388241227717426037218863577242599686776225592322557605473567121020278766034087405746589416024669357833121709486422886675045126687684842347861292270789636857729580831869657447616775545880795672530961214692740849147963250216275720359322006585753642792180893380792411697309522099678189272763101019434703089456067705631931978517375769247069332882879663935912958593293079388627106252973410567127239101263348551749620195154035360941524331278918664431236837147214619724271501343185658524655290717079533878101502030179553057264197752835868543422820085545455386770577728662479777126402071316817103501541060372152879182637949270690768078046179855520376082678321328941945754900481870977595826229361214965416477171427883076932706998870499417620798532518341451125095584730372790140201317432859874055685270405165739453043606828256665485389588932102522126943501407908006387548270529652338891744375186132687575847360009822435822090577826849023285704617410295758412421599163191627330469017559971821033055047983905109315480521378395800998931827778129836033051562945073359457979731582378446009870815541530984597658751459773642232353941525875229563050400214308211670339439223300977303080059836409360813311852326627045140488420775477567538488892271907290430020912595153115135990783420844337040084957136553763285019967643395507939171348274581584288673122365713737307240047161307897219887550909999520751679936000381441515257599747982382680039674628971488246680700197406349318514364765598689237152465314761462675250355441440562562696098784043251928261559980662817675388596793942261406302673192815025279803023808122092404876750399772407719977020884790196471005579465474046460812413825020813060849795815669714065303810944956053227367454498775680826922011292848371692789584226263222083136563141121105992185669852945884126841612849167810731888305647005290593888068389581891331033376682995822666593022513539463982213375312162923647158222745344044507331326841085972236372849359354526610947901552202046635639326992527169176667377616943496415802322185128714565295683608605092263612638107186852981393782593586416609775753948809120349248993758949328110636684746632069239196455652126553745131461276416598456019644777239477764702028165398334911691032640328216533309361462245702063313648069772807825807412209856053969132064846413356050720376872157060987020920630382503768638907043985488108511157561601071077635267560457271468854069925137075261823949334073099350868921836063219932925722294749257272122630316662904891531286392119151421293521674437372250726240323860063066624069901406865325287684055965283321507692910028565081491354159747191421625831996326014544425451603240896743383585263336849593507020915055280569333488497810725270659034080425301907933594638299751695822974516899429152819005496898931897993831171399168946935294496097702782249772944140580883363205226835374140539516166754417748719045555872909047579063861458540012942316922796420839856154717665090011651610857715892287897628208947907172716627389013477650847323165750491167852421188087507418249822069865533488329210850701308990982345496831820413570295172292145484557356055600327765527088191012669565675720607115807833010896036360115722968831112855530420794956090545377864154798828399356717802822212873546381902392466470935592463465050380299640756190674870530561575987389142728411706158135341921054446422412116494002116942812997848289182445090778302255202866348641774433066806527472513918758300904818868679171744749354162085562128552573507467196155799291942494506669508993907631774458394659956982397453934521022119216386181346873190235948975314592690782323720100881472279618742648272877380989987227078163416760426398452678168822522025466556114324471905930497369152785106105417470948334168851404718099145590894766233512244803574048187725659270438457974384927606824930753684308934518246297865650901391460017894047049896854619454050524754686184430098027202695354707041261115010683312107592436228102638709584658313396349378143312455421623071883218300406338711610266670494963338070156345802481605987563933829148741250192783071438519638567472942389865316620170873390941777553119318292449952552275121817173191726567477907550343610447280049667870705407685203212338402878602330235300073698140109495474103575586870276772574743917342718587782167992578743565105964338016332698937588794415585608742925308747888389589086937025138403041098789487310118669233603081283498739771811948223921320416254118842339180759670928439356100222483988062488973745965036364996978500210033244822442924645371593919051490827995939328971020612094971937777321707996800519645007355959130050592769992133066773077218526760322618206601477215488173702109381396153339911171815858877995153601161001907424256190323705190928212893854751031204839670876300035222436045542726008286923081535018788790841837738580503475273619689715335108646121068720914732004414974200354172305102708177987935886781878759432661240809322356386058421694726085414015413209493471825370243327721377088625736066997399360282140771546406291636444376349515004757701361293245279078027928606744628699842613292561180474457169150996485232807863427953373269584597526269692304779201232658133879224646138123736581011985356812567139045194309827987842552766226541326340191159541529089326112819958025998892895108385693018997510718784034978799853691336600033620562778828228438924383514500802397958926291113999894269125275998289921719216140265201479010995842259934870942434876433091327593138715500092118140668616904999631634120172540861461770299502538821114092880199497742476684672922141614344960907026024680192099603576943511196699119755647165763328642012695955362261459850245486895661818912435624812525157667808016470097499275227257725268545810878790592670511235996356766669149193536798563069673627526254467803150984006731247026063811952638060428731489900474177991204845994740907563060780381762098694874973374009339154228071887661372604417656166946426670102670883457882210723977278592470366931189263075350848287559606610553904894676452458014306992954704949427418540057325791960528655981399948323167971832271525132508357497613301478611507581503359772010132624895683961243418077952350792902384941384417166597457823449656978816402903543511481130596033429115058410905026062901471411595147308907429151537666037118241448100383063984673459591184898477994886736688717938635024480137385025240277544881072775802521792180885088877602090413355224231564783233376861384866908031142272863508487036387148089004754719185376146262137788279461196009775064891862819345488530339983390645726921602435254468880477794648226303605575763373760339776177585407529187210709294708416001976344286569539713223162220824034560956045030600984809566313970100419876614615741646008545281203288758096191996944472087429573087850299228811939340270226237080928144179960790219493000456603135661429473714848511117447277798532593161654493181168707289456669607458211725736815381943436656628345445257751369567829834600476409252813967930821418074086932106493737077496166487084321085841555323010098836265361585180949201318938090091244253522550859399877653869918590217841628610550521964623937820342776945684587479909489479357992924181210795028682727493017640404563683089018378186541252468435841267686082088199733380963978050020603282648389909931376705825487858690506809900546015150032576974125267215655984344131770160036754214199314969676943429737704408669677157588622564771533964930843101694139518745502956143652815110966117460307445570869716790975314325922535956273361210736681052423220282010018067008345805913478235577080509726251696734117844916242507224883586115145280453411900150333448606684402529138160294503212767646661319089983721703722492352261874818129274464946952670027722190050886247440291317786102208746312195589023421749235447921964851436166664074070171620684508509575419984232725026576122031491976989988629112057022110997820746113138301594650543839395691107412140956342743361649598925339618590274123052491743483222079246418547909804334759226702682583936078078915594056108992435855365000161121535527773507183670495540408778336568852096533702671056876922256636532010607096949065247469851697884772250799987921425353391153305223338002631896355647917769924310723126549071497794580492096263144138933103746924482304677243615474768494729156516561137779164914757203725533559814918516174882755034182849224478617503906371599692597153703335495728331180755081244639678828435792688708566917630821991562954557466284904623876679485238010057729849560835139804584981679107667872112000131096854702558400313303696471517835449303286123409308641681546699527296461242872696646431494551865079035732950563431362056189807414707246172062911064153276115552106804038079782231146954302767406494958553151933339412187922083930251820615164926189618569029088419123229148241270236342835750726061820466950466680544965736447569573856149540165842014262398535103024514966691921743717236885084049095964121989439773570985066081323288133325927830479550100917786544044641555136995266518508154208606963994798313595946268270636497215640101238384964545752980626274660902792684146370614178636098143874720187109602887813798848840595651509186577980490388030367676900593142661659443972384561695451546839236677213889577443378934597981500246011009180667844966707728517830960886869545509479071918793909995463655118298011622604215441954447503641964047292758192248431915177770298370230699594463772936492324936895095015022986947301461647045941638700756931353819657842073904576034123890583827317419681343100486367686736495765304367721646909492322664352615395620681558996022644209010093123597406539180468955627179606684023627786345152119732332699437495526216931486223103965186397104537362603188584651284952151523038941215377606223995242870091664523117712394290471552084973862601341790060278303973906957485172171793271769060538574480735052288773142238400820495279664621016459376170623231919911811364632370757608624502773140309326780289675942013685929161993522837038553418335145598972702388389298243493853197178124406259792310415243555746847672655948811992521108554748365259521174319382857316911067213110237470528823088286288453751777356119523921966399680293991831527908310239673940900175292875446993335878658917488906921208620512766163703082949025880756896619850910637720417843964390601222831159873457849681636849980969359335919964906441307198498710210136416701811222896123171944017403007132901266787219155837724040803359003028673754124527989131681130709366759865211016997171331408229559259003330564283094751120683715903748775960414700103105408345939087574905321698147655347529789240260922204955260496698980779252513289128728969161068935805856780433130134485259859727344290673026046304977491376271386668434720889359700662019290714960241593758054119081506826739649699903719844769163014790129264340099924603127674696714093927852569726119951159412051013324476210664717571561771749365039412459385819112266543439630740407145370845824935257454882152015622657481283676584679105800960573968241993437704825593987716016201744307998087525320230839671405126194589609631891228692624197893651064823639677714677852156681655464302000954712683084310998043610637359922740406858761263122063253151823812032207153555129711419617028088816671098253680430501434627830376327071712213716067132881548948050893345686305320924833087400775271416859782299310133241560408985884517515975858695291330243595083499183241718875957981024295255865991869716251762032535158525384794076059504415799911571206962009123828029566502758021791713946351857894910687444201522949227858304973484673641112419963342035363698053180388818806018272254798725464627878671216566556024987867520158807163436830435033636012980840146771789532407569853578212149811951705049312176504268699968395362342503545786342918074825641043111219791276104069052535521241659827833050195349628641494445319765266205528806157012189817919509427782250274429835192515720828127374937608374790793715847212099547444521635787292590616012072732434881557754817714471837857712493274869315417699442456195900398792917043564630232873151887650007851711586791828697101492626900947402183916010107928035375337310852221839967718944269784577758951841917169923542812066056567903001004009025693704334414850680883494288370885821951519963734764072214579783314476953516234238324535028153464913498659978021978173833347675897603015951285250237570663413448738321070795535115623701042107233726473850877831331998271040745829448576866989252471179485814045029508896797386568443103050486587868343322531034328292893486297998674449099901771284261879299886777339725688507763142217262192667779076817841821238171797902260139729489685216630259017836105691923929266592419659595328120668257970127589047168928085788339709958079544211081024783405620687540715340128942405179810021389986679639264107400954594802017949823638435577799364759678919136444902259807255834790380505507695753931140239377568811411993286468878126988475732824887771223431079066722103492924411158073937567611826886145431316766982680462856790929656006089277052690929864896912243660819649097579195394956589601990706776184602754006707065715840813120086672737281501549442476466189545598336930293215485758162089249960926423703457388251570242309442191101765424393155755453795350472187879309537721447653792434569079969575782705162885453556522936776882165489569461089757895249062296035958073488192807566339177563832883677526436171748860752317036118771474197170825817100169607484438090629445613573967926659266805238025165852139833506435385291804437225863975364927405935487135266514059812370463488039514850650027340250934692881468499252632513734610445171622896511937719028925206586310239921288117856814799758455648902642578544396281946665332992186234024647429685895612677073863128261101270860893539012364224356208014491336716304009358379215405887528524535597332739657003797285340285061790191128727092710496372329377333344477101404918877460296203023163482654250950617070873445050020232928595048644102694809122139676208644453386478779502676471387269330888430384079786905969980342950685751341197740477532197034159121419304253211123834317041506504493303943546182804382498026497841766093109856486569399358281257768716778551311972769144401489595739226393412569837147143572469822203983994600468435323127022341351462515174091649416250247877836911025939306950768002587493857742305005312738485701578860689863143494430229640693077966808735453689809642662861523950344721812499852002418068546812863890727973818009214994588953837887661467683740928806145720645283623693352466544216743309327179717919278251245552731066537353237878096897629242028896578068975211233731977658384624898754588679158688900413679417595092195827204711055930302782257369700331008243496401345113371085297121960959676158976054496592107036462601126123317354385104733762698387930851332072322148501018815688502917149820915985162554871033976821585184664048155152319989582712541113251560184101058352533143180686235549209133791990321386480843010033831716958430825142547850710491016985967661689198994251632049742442590683509742078023970273055905837720973012505856031383530612283193243757031415567022089890053047002477666374578801504236271522691151114809065930816238478530666508947811485552646111611326412201094608387251222929870796206666595145819477989732567952186297724604062728057772415476559157718320190832212035954630329053846020249791949383807642732767219994471886866400087234356212847310281565872719505566149650071948312318366684275385442159893666456026531373484022984805017545778554200064974238672585211849768101032157058843790681914569944904232425433745542551435881656302099915366815791088956465641111165896139727023355030851681892714927835610099633493493924192867381033254422402592858524548579999672905178382366702952388677853020148531938238597758118544741021552967671483403982575918238918053178410010387606540063698360109602799595501588211988457460271532682406321716795717237437890257167603810131436694395986833706609391554111660515016267374556823931125852514452709123182821826610730087273595536559952388696149466468222718596771093408733463793860330068987134396281828972752385028299635414910010957403564213749935006873877036094913815902098991124201391039052051398194726782723693238165278811975999975091362037373361735651610000295104150751894765726400982974597843697309592691005491379129836277434332210703662756084372069863296171275131191578972427233341694771136567754585726577512184302321602314517579434036021676190707591826045025224685559801312249232567305175607145643644591158698391597922456116780876935484623731404556355636032423379198496055832177892547169463375405696019570080808358355085017351301371733640752728345848812144516362177604557348873345507440753697362641933764637653439938540490179173156123766502314569197285194447734580641012294148490650068597728004419735884737285098742983972109168122454534319731875580227800256780570960048534375543869873351920845905173106687218428706878366496129285132424762368924012245845298321913970309864403553945242495199436869367707156937268686843477088483984765232407789440205842328282306483856581321575097197161776432475993952565820021270032955888396462368322621301899426066850514965809507697381840048676127746924781466363637094717967923999414936496546415700349641340873089172060170788945391139995091128848570038512230610521152986922913091227704981530864702639434117969807754051655346345700068571772733935485074784170117715657311618075351036328531209778419043305540105176430054082450387186916474603658945620969102358078332583923856268306597555818531462260974919224400180427206372107753766407677690050812810212999798445175283968141549170869019907551602570034629057023486474476720160877602641383631780103590346922689341570331310287020186157191480875690602829162385123935095271832730210322855098620045287634734721921978366613273024545645697316387535246807393031617288953161052685231756845620835363103570144252947708558025944474026013644207400423175230238127870911155210013366830114124156583011007282765211649449514397944639543726266108789244586127559700713746522172480439044433942294589580033654405214894698481588711354714775275028922088133706199454247894013089927055582218198376545016944909504596026199559251113433322507920511721695738614961281785190258587925780875273883631237615012578010631700506127153088371479347678210965053625036888520681706725382939821037350846055151896904593740443515840909735544631136013389010593567085332720904237709007117089160747879900988144355161649321447062301857277430174717322550519117035577169469275941059099618426725105704840338536283256249268609890431793183222949668913645806851340159108305753647631711960275506800390953103075419981665163482969100639914430127257162360631503815550379158392366647984673743318710684058430956131122221884326872826604737798021350127940345444515362329275096326492256142310360575734049684250304673327139517719623657048235193329478347663989280083694823903358636415599300666680846239436139531933954232935710625221310216657717304637292953912919964249288291935158648560069429301581206006190866452558610133792978148588597149961488123662642759812519799264072919770281901588629235184939162442035393714942490695843451862650804123620925955733795912262723864796983301694875735681719692236351844872874302171618101181540287253977238347161027301549126058654014039337047031102601180885723744555833904421824833569481624633994135662690570655105919433706236839032533555860191787231375269771663806217937990382513512700583631294172771267292609534421911873562768861079450275926028942122244066056460870330183753869486264289196529111069925978871746468243422570140274120039738165549636959640139165921400125184816461116679271829494073523690803866981471397965411709601874970235882652015683274172805670906828996248658077449168317318710692805260020306335296635364883914981730898072947494381804674583203465735464129207282383537230852877135313834302980910252642745808027293762576138212285137983077172911844693228090581015252758007513660861098664126043160789555254983882316738903025836514673591780774262454969370974981772163980434460541049829180557788904758176766521762130869329762467111095478172829413315966948474021236459490603393474796287198361995050850531573708377075513834305018725857593236314954767492422826445600108429557117064115341382899110553984890528705600372716254494131124784226706152099866163870843030266077535350489088734111478450847322516258696779383607427766074816341967433127908842055688989035717090220920435607612167081502377522110585546649933243992277078901855815914199480679901327204798025613697672689464286244236382365567424642726616622747137953657130936027787254530358931123654165723057823529169058297933144649245946445104387742738668835033563310431665795472275930025561200108444623158444319305338563807569652146225016109229989851700932551731929353529531869549637958539940770375611117314293432325043930283850195413149298452302298878007790642968062860508990422255585968967613791073542270984827778612643858933282966226572263881507179922486959417094127358279636522804284433374746675521293069747210119737190664766698631982535238146583684619855756459107100231425100626541504609008052435458829808294497350594454863754929934060617155152806437527857814051294039298623601106815313414827072139609671296364546805336672321766879011093333497805200892044585895138745173926970045658761554456920886355216930038141174764586356575790209877826698490408778090772741370534138251886987977311176035415204996048399249680851337217555629032083109987372403784917372268239730548653833360425749061155363621657530363813139935515826715481922337306458521512427996873570031755605353058658100683794741280201020162573136996826228623152660643795800827876721614717059988796712419961299933313142498088627928350202619718373577881372004748050614387208399231609510428446089158192480978263267366084865997699828366564633640456971738946815370023538546650527816524332569909631362911726713062862687389763717191883664443557757168765746273796216002125962816657525478551860751653486020754720303548915291520775662775267442098724082213401963691025322682777206561917038731612031966900845523608012725669354533336875608972160517324804456143873203472339277667879562512267586565434340583290873210310822781925091900128094999710593975524509043952650653204161208906880657815454213100506966086917309121049580016537931099421564872273468316854883971969626965430662827758403763984841842637778955711695275830281256590280531521390992542769270310914236533297709978863075300180750062520272852387929465150304430952231773614497990903881773107494407473807972506041807407785305404154408305152217555412209568182847397937238634594181748634217592758822003495454658262932244376829260300328713021641101211250133977619650932303498685331350744506018352460344107179319097485512656291350628748270547957852395289655181413666240685570707265000884534819771752975446328708448972393974628643723638177848161742778487925474250203251287876542006328409641073048401266301531263043361773397916914989162972925879908019022515522811770144693733690412026859475758583231272534990405607939121821956768415012041818295695053677100401878628669294365093694737860913933625554515128783106519794852906955891782424657936180192283379523209536939818638203145938473971224839463271459142799435113275441859424938558187976377727061005239595662364015029339993099859271834025126113683311819210094875736150426650226662736625320855906688287955487932962607173768001487434963735988030196119642220384862034376024146436296827056049781760139669631875195780058438954342207634562279195448236163002941853584913127502533115381832999531001876326750017487757072211989124608966743303932276079027051447942514492804243188040522993145986517100489052451854364818556025836540688492851335178296047191105794235984547269423884476379949930721615201316501385756756421463762570383329397970552495396912461411802584287155137216555654661080797045550967801250329609320218619899828949116677567557801764445649340022411684172278348749490916483199599465309500447277745162292040435596591206639423485067786447447427572477412055708322541678792933438308818328251238314632035229498796334807639577899645356950918082816093672631730039131615284740766586643952939602822918497404156883347619078090619908163875850221717310998254571263723325015570410037405557556283267789450274625155081168208290097581056603882371416358394631441185144908269150716624339659573454184165332503243461216841775745828202612473896672179171187042055045533358545513649984623556629790281986663568575806935897850758580607630262698486687381340452218374718899363054118082668607312666495613649058815799850436243976189474319670916491312723374258691345414065276762186494070901526656899587042891910813687075765067830147125594170235122547422226226166289007806792040243369100440718852550031725034551816021166351285019323734075211179764791906090051237863775119059921820273303467502508287887349169581842106498616588866368482718538602692855529961683700090893572073967942176761035230127419608473456642567211875870766936501270694438602516040703211683502268883377667003111332385651359339050596719209826807322945793843648478783528608245754389474508949637353127513315147556258531038153300610890131461725316684917087852097215632310587140735583579290344852543844753817334560593390697313039629405968596432039119148536044832834206262788432001045244616322455020821781565598040500551592130082719027027386628496808144427293126505763630949962922834491130265943011779506693107051575448341744838399378840215133826736951816137421595314556772913390845690298223280679990296919816043405247588298320019713444002989252142061821754654913898656948601571058671050827574154329501207987389318652233636420742669680628474386693737818762047296848953683168960745184377042154173138126574997593937524389209452942465452690686047192708857805983588787934641135920284895876659135767847966007121639899536556355838823668922363521424647168010306026384630945386543447805116343792458341012532894524589483819679015938586437148289962681262383493954149449406920874005666481606612974448513035493566635469646266834121402262859222966098064525947478341842353806853306253822097899504741095324444825403684477265505735735062494010526698857481260372732457036334546545678781601588748239742140691410011442381574425213037603015964137868311726008073983203876525599179017332715703212226472278722679430410173509392649925571017663149759911697745601712130869407376159545705362424317226815765188767390389577625303513209518285203606784466370660157046253411588300684423201984285205303351846087772194084189922840936954887411265997640478510017374766718043537089142157500564037606960981144401514656008152677891594705677896958770790934440892938746669983507959083941772710699654876557531164309705822382029961727621789252723129291286073616602166672469656218644740103035040571643716027030381744396781416431251167308402272261809303344906152523014181717552108154189000698537016906813765351412343785377853572003342371060286492141628849751021852080666642568270286521354385225439755390188238699286540586992370228990674070045166905072036045644221380371061957333923062847270376323281581711208974720864543920729491560762491691628597636073003814208429851026459656063118206847192742206970495586787579399941812092458923275391259043005615294736048486905532988776052763794843838342851411916651439017185842260778102251864922881787629077668075021229005948001468283831748471516562942399259574101412975455901772560302479644368304878395256691470996390291540911817536780348867189318398063405956070976071798232423806493357104881948301472493645964912631491548347609162645255716872252371634586525917866166195655586090082311805315673898592840531626686987396695786195887938698297071302248746233020139592594842392380605543358425149921938420643130092459451152330768831942104694632815670602966293383464898999377601006310647294348311049230087898459925033763159212378644836735488698850173788760853738860845629323362787223369095346933666667277384458309278378224464681000081136395044112192111135691256985290975110844230649374696010303638071792601705089375784751204059921681270600423643223892271579379623223380271720613197734991098659530812419041392435792523736757161424249744333268895394345011103022364901654447654829989763684215965363423114074923370075657401883934594924906304465202492936294549933163041370805032476248215643932327168625769662906199036804403674584773835070432375922405955909499220523605430052557223283107902154783425603742429154591137344386392327667102873032530019218254314138744518392609646343333083644901985150220745678413231205806111539018697292964712158225755140661208427435251774892242160142128273927016705550312296586359145170670225178643547641446772668346403066450023862940268123995855799909669061715909358510394052422069739370640861926441418075441836388294788524965459341406404109912963566635136542708099445384649366047296437665265458376895736608971655570347512862757276922797120766671676796449802245705934884970489084810249710633509647076897683791459467367331402804841936808447154912410710706809219606157595570122549347302236813171756131881871115194318990360561125536854003366413694399412653583783168805596283545172162473662267128683118057465256814192287408068161977011086171328977037422368288709691252641310961163245504586060677153106712076106770405968698008648274343294066931180936955725191174024355486781653459486676308800860521730240074627265874852267723001232587265664083394664593743290581970354215140377100582723533317123361043228851899995796105006716710585032019565712339205604166515692492198954466541243831136131257401106118809804308421157885762112293060052140944628267518889192431894463084997426260527897870783975450064631121747242846087615945616375613276630633832609867473543152964674509964287524246460728577397632091332352913456134369143073814529537666504682652089416987792858590926775949756243764001691826211285624873218634379836376668697796477057381167415736067055890033053939246734377924033094935198704637861029752238054187391655441483934531064565022696404454804158254464137343746167163664373676631412886083207753461959777214689087538337332791469972919641487062192820037091650490076050431481179090730605041348652476247746998892923852363512330798200513401963839401353028682574633292667073549475657610930249726005536259138125833391123058569544176565764173441741519991775133589402183479315257536870070167247960483739966342641894111624218380981898482724934176816771015767539705563467469007079084440089049580109602175371280248749024940237103721100595309856326473627817506379880977828482998758180787371317730523750173034781772768207821559387342124524272267450114816309022441981156395372772429839100125505392285750533169704412225922977634012451437338158640118196723901005082521123629131703932029007711538994876062377911177958655226611691175759058623945362686585396795624620606106019189103495880766614460127229603026373206561449101310333132491881504105891614447478821961070206119221967740193525584661973386999413306001112146076928894789043035847477664897148861635574151123027952454798959714225842580762158469555525775530521657360890023678348390306894314265490774612987188822248349196585986321341270983284373058058782355212274167912619493279798748808894284007093798105288055888673283365156060175582617135953398495595449065700953379101863735408629392623142990219896174172930037715154606608783708649306762931447087118321558604905025472424104839463490956709004374545973674508114980878416552562891665247054374610131694625910614898143752049802531736643393454789595643077508998514719686654797768892629565951248047312342319012321441183701721761333272482277578251211415952883722016949964997480971188530601853336943117947539249647773207828163164968641580649786396852387682526483938084250068942891543180343878287405194430889443524135262890996916677761297365238205233563894338206796882776804777958558958230021615340945910750253696053595211831729621535962862423884432115179729902616480428647037581119785172237995030886802781003924288382213306545587874825381139461182341864132049368342334650057137459107292246114271197050708904244844058989744481608454716837312745490572616300884931780317027096801226225763026955455482814628065622095809990672515546160668600505731553649344749831150170923849087571634472169943559202383761943629430870933404835605685490556688309748949638738526552418664316799738114004675539033360260988911405410393365594491306566048218947347828608682055433937258077466194134494161142812077323404241130553939147564867709787237367378409833853133411257886390613024053879091787926879050968872161557466432798089513006511936665138344021058832957534682545944203589555987197441042126771035900309718984776051559549761183847720527903316080087038708440317996817345433594378041985016354234783556043784578049833038052030511514683775575887587482251595225512927550429168466516851594313213648005426447466796758842965674313613699110502017655321739749800482597687319175839760509289051323009439284497998820173648476509577668083979447859635203710493096908008514022356534986291272734429811790332669073277211655531875803502043943027192935578451331642829077575141131280320403753289526229035099652428881842416152270806272792073829247006236571188944980346643002501092941532735028173754232974995738118059862557154815378108242907813763761047393712440510992481528204325714568857886530915631898971035494479599114645446389382573988002868149449120787099481046671309744749331016201907460947976661246024654507980179574351818870788084069682187168795362057565664296415980178289277978138254117872229383657875693020309749468931922469159924133744836684644523814831943316823406595535073506812806463794649651945645797597500737573252331450355140185019696935657627214721136961054030788961481336668852431172672040502964798838707823654651790020971546400036561340379782623008130083236534311954812410007616665013768067622437884291604885059235266554445732589440513649203604646936774208364632859202565778460375755263579490489169500684143413622994114447037016153876855877296228442823196121146700855819481559006908932707765916850239759912649106783594352247283647575897936869336914363958680997932803121404448298026094931160756987228262740481572998276923437482706610306813925338655879052382169528588596157431670900563086720140816039404178948174523387418713403651712685503772243869241721644534352521666637993633410812606394755759034860274442632092290413524468656577856660380863494114533089990203773500512074701807766110395764013793846601312561829664323061138861396197722866494251655449718329037463026466790765957373253381202986480950856724587580055635006999776763109359941826439473342454240741020270348797024710868026046497578177460740922880602406088980417060773275555689717893746439990100060323485569976159844860415680059676216007180641271568926910779988955461467802615041689167540522494826361216318875858961164965924761438538007340174742452934476780558456118954804007692018470663938226739270924791030409081697065681111226952502415620325296922040975917146622142484427911622525314061847398736884139092818570643963128910702896433372240354258993915291479724023041309707098171644138634677419118760461541192385771289961388126373312160207912706708399097890467072542327262771505816431045806991292175076891999681828853407694811240712667397740326028654052568504489410931921902346123956204091233882554181994899120096549900056620164308188523678389715158733253203072615442697753946325559902038123968291688365567091074798809218277739086819819632593314675571509341153424960047737479690778680825741443556132941438654243869700862021300494858953031971025967755002531338707684019671800086649727031147033774637064796751298258649790008897746665976740385619081902533163866736825392370510247016319145488468949443182821676614540557238674461417712989006939886631898340962547642960656630921880330960402233208815187913669567629769264981993026245160870116639362918101402640270992605517734315311440268302180096101639455320666606030633637651661713139045085127029751050032797120578038658879685188430812308747460078864136264917000559799525283086725797478486125111345651580224683972609883362758167773882224412986210976048553955639487981070286273345191313971096199042098774441198750748930277420297547086883882495914227085711464709504590296516879135444672973789563177551186335631191733486711461782370035124581049879026855116666987646127597893603118282857995990453543952847598181898293637025461340484359050848372506554503721910751333544406171943043882320516323431732233540150694099453198941129327633394070647754456349242814715176702076925783295537140838156987822470283208817517821171442937776325373716298078952451862891381904099843646886748968527922543515073719744221251834222988318397194913580869733418481315247245103338712227223763942187765024308989898533469748759817035265670777600361360503320744480654406493813576979904322297206895420208626757396319979610096991108776667000015078367254715177090030476741648004268988524029487489948274238313050502214503103645778347237417093487688547890918715399708294395978822055093012018010891796763169216443047130371218956872009349256910191806518606757725914658220568343357388837687142556373509798329136767013316607548393793885496738066243583923118513821198423703465409035157625618359739483274427094891451805210076297357264505607124304942658187892031347610170952808065261574992170527181387191984469437180099218644379544974588381417011375945220348832403896415763444692348929391812114781153868549502183050837966994959757810597090663673388888916534928131724839238246915811111617485032157745571874638653314670003142988493136460567770672161476770076011803176057314844706980150445436115215520716685874008222375561009129208952628263715145308257979978595232686669204845315027224143550846667085824309260841490965744120945076106659659417404448857205654112716814205186486281489089488075676349139967600564361082698993127950415984383797142203832982403985617246661746767882342362569359395486190229178512480669783012482792702282196817526858649320173098873151235882622633516940293558993138015240942514192548318111127792938874038765825398919783627028479466012084815848875901444796160817336040590476916115218093549618301479425314784985166684571985021776927609228468147865872980554638645963653840247474141506999614043299762324058667577807400106495173097642126706751802169665697943885078427503033634421006354131500222800529990681198982401380280876460671945940627729628462632812978734109654301113381887492658189724704919347558163647364693126141227569386658830364715593836413165073711404933779921815934661157223819634487050413448129974558556002363182422240663341645318753331460589736695110732985784313838179205759938508887023951665927172194374154056169365910562801597001027405435959749831335222274470149571044730710023022938861742787356489409839651181957571026329195302261947144112360531774399031973039689581630937242901207215691565015922208629059820721601389298909862733694467834222189811624749955142113285405394328846182555890718952797013644359309873531063822190786210380559074364971639399578995357698289051072294588450988345414602283260979039053174333398266664150605825367697181021120895724256783916406360796408964679967630766199296476997478676411583911045738661669495476823127612303725324739312628877862170533350415734973559315341754335373686519286456232780891384852530239689041276953596293520119646536504909430143014447498029607086115156362959295156153801202504919494541099514726571135774843972264359953377185635674622571105427985174657688984335383921296470755461836733320646056325842537893623470623043983643181864879437818632454931277434018061518879713412678814624206105942940393877891718650719182054907897684572110777011924421275550840908968539558839895104688587093544800860657678853587868597464093876105807296037372442882993398464700646166075372849981604799859914361001181454352774739613867297381133100113910008501407379336273621269654067629037592300855254682833436328781271005464623230982891472433411689135635312030381109316191265346860643382287468360867536039888039780896703157348592401736600304535325105743922461295222536105729440927670742969353034527987222864217628219240276346749637340299471178512473727222711987578172743335135667832152859337722594904496315140526950444212907003410851865249827109503777382489017563502574887284654887487036968440044291010773942599788011416491573353205718381909045520244991066749110343846684049928582563068062673707781245567120108709443941189163394826008161741796442889309593425189807064306921696886312313398233378448194623923822754528304112103736276179244148028305479405969245417458419795496482363305850623653571146743790354856965507729872383820523147657861120731649951902358214130830944430826539626918195316120409558684377565759546030221139934928421890841424106434016812994443882951848964872719281705379417886361186656061689171406483737054716119283485425542586539958866820872371891488111874790456447618676398685614951414745216909288860360750477421780546892327743100201048923439912137385573950314000239039020942472732952224179805579160115271125693425093083899872741024213541444351099191849474116052004832160175938009830544327702503227164314281799334834542575177896713209348664088037239367731041020312708052508539327996350584257157090162697808948879923061176493247719746726859637486343047402404036298179424646325631381963806690688123832309679976984737603813169986299178225975579186285426577265781100143489713096475758792912665931710340119620268803775855820328882776386388797853931107213252683183492397836377380585883101758162962413378241913123832085694642572510934906552414009417630114813312781463318266711041040162527813723031892174788393209166968774318289014521479505917317854019054384630861403756562264739338080200085994969403474377157891122964896028300233899519799331583958194760371907332231971061467685590169886646551803849304537343725497402104122637601771492104599370015158884851970431100854785735418107624595434019600939176727625340875945212717752047339394288458549019349216439465565050924840918239484915755558004900618957202893247173401996472637794906091493662648752891916372165397283310615492496021245729293650585773522423277259669978803320371332908149018561933380586593096402668633658982373655403849449568320396400101071493996459552617895928099441661302317318644654055595338607354635977623318107273888722716373639094848346903580018903101352150290069328504384997882941238463752764753591554527020075229853533862134749278492828214690387911020624680380824743409573804716576769174145798673179824740365239919049669248240837792062518612952013170694796708120401755736692824804474150088949723206137548760789675671028479742177244082867871840635007328957113920919466824800652868259555633877147917219727667326726144256437761030921361054087499651847254659012854774565532521968927951871391631729136843240521167056349327114226357091786780438076970369306935804683498762633788002906901088001274388833478681622695649922708708525124529233356828223899537925164858351890433222085144022103276440846316033359907529442934018856017101111523215398310748413438771442277315347999066605620024972848231664397384689718793908866325258288749156524809385125727638619657619524361889617785735921257696569031762484091103557851847798648212334878024114302128418658137734643679175126176376067888872942391294872909899998755963953701808186396989405997826421864998709464453603352255626347796467773463250000000311819625788012017138978367925594821874329265321647706978558477366010206390101440272126928522478867661691103527961318879125271690865348657519810575084815041753650709204209222079704329709582171494984731402590858781626984370882301335679182344384843723186706790745055221519604715095341000821853937499645737690595007309760253475999141359240477947754458152105619913936105352609791380331767223103385805960418500034379414445337696260966010820004125506270588084892032484834642014940934695417655169951874160315450701488868458788904320933950212492033965225651175703469573200636014743257732715437541381634724712554548067992234471434072789739757485087001722405157430006914896198084468851112833154649942012539323170459711251161795111060001040740976996546797530646828297127954341986324685805684768064544869472337826663533799238311634427759474235833000124623289147409613116748011263996116580610444044466189494890429190157991379584577969431063139877259776386136546372310480204018120564708431464638142770497127413283851660767725984336015384160694245505113874688267758802243828902050679328896658140574573472821377496219825651167122981459726093857308101147546772280959907823946088694516783234362089334213627929423132954923366383114350283636972173443820413363326829785258683918956538962914991255633842356611995205379600233382881140346839924049152311076150013867649088162375750819399846847509199421849224568158942277594641380156222985315317612954031239929346124140938086661804422744986773127370246188897108021706264406786608745631325468200426211659337303738356810132897178426167915763526579942677443010886353546383498793833637204342669783110710128376689288783889315917947263748575436591785113118323575165017041748727288672388294529305744237603258048289028906428937091887954076778666632635866414687987349917547558648555001368293980100933344299257728438330711610395438237801785148773470085853911783732008949700823883671845110225040848851551864725449205946088849804682145828913907829817294308935508415478448619457368458391757913697804634347554277175415667552069884454337806561201457604394200616294421257028415025411365321705704851026725709161473060919780759268001338751152086816747493346261461343948240823654475133563407950441082658005109838729754668849203607194283152395202419788372915517627315229669257843981778734399730935383347807711951301775766560256007881686818740371889792504872462853451014659366146188745021907392099069002977873293419566951553296060502329401087570258604973661606695908102656557127867898494920161867115365159610102482580268526110731981728576145906936534933582814052033406398777259154039461849939235976370400623644344002631466246642244873801481982314195083566606910000871925851420724378058306203225589948584060106966834548909783563635280159058977799748536973179355109910761336557131524165973371094823779748872167771990566561564101637172477552471509052207690761263926729092653562774063995070948344479675187161380615668696503228065248937959026067676089968409814432532600894026292683199190822061225228883766436483300790504253297461195433649102013212604866113902735739288670874967760209985266167642368030739384463313270206240128840634590196545516248095692461027591312749438986453794379066846628532969423759731846732949982044572415640244832738734322683498735491143352730150680632963313395151809267745640121359762753302699461248737551340716960823690086021208012928993847842281466635764339247605125304154051019034728718886856756514236847838335481492471207511006376259320553084991263538184470949915451942335711442062617563981728824443153836222581666579640865404991028638026386403650563550334985314976898323183798444692438585482513159596027269773612608882735940623260618212657930156830199001785148180576932866221702927820519846525892068319444890102746980517189314975531514995799482707905840558702955730271749631666664688557173299820230078523689133725605193124411247654929176397424791280257236128509685664679656894122095488991090446782943940031483223750568370089188903880989525977484167448282975727713961363726740989657983296584558556555046631890684087863803827501354622948324983728255865374144202078818290244823441930267926469146690672013876977994521401050264238961994001125461015768523343977041044325450302919706100376731173500053328622340465844836971239257806268316172252818842001861611277763991809989694448737612726999253250695864056821955221687349187437231750123691581389443153528454303971537277994349826951395910341830054008313008032377657140659287468484706409391662501749401326380707369369661377222918742353836886253781811887400371589793080443701487580729096978669806731374129703823364004828951148120571855103293266053089940355272080158294715012427291204300280019658003367531647082318806443384368352175535545469822504206530651249048054009898158520990985039551273032117215100996813765495734597563287165673707192568411109235461938473965688110339129210212566954807583177853065233772769589023099387731525273567874070677111396281414098693028189068607273772495464434571594552728346111225134758277445351531715040377432524072925774600892721773076101159838639113484709177742933616704279546860248724017178939480773625991823481647304752570310344992572048736264280588660741711360107171332605518953668639402344459045970488933844541391229896324572169492171874994511010413122775879521922061709475681113482779761875368027819898949869057690555700043729399841754067516746484950501311992326498191237815038175276411553042992022079924634571749320042015835607228595725121313315825756121838856211517207371448778492875609462755637618713621639177573168375787640507368215157789267308236456486264248955439438033720299646556285653899360482962578504296968569076586817808061318615944632224539888393504735298233426579071992141436610520212181789370026615791717412857847128509749493468312179097215786071745590709218200593582312194092644619455598253192840516202537810008020238765736505138878417260107788290782008477267106645284789660012021138437769046342996431376352928058189325004223803529109019138355973886576367166184683040520146593225628003364449730038814464536787572737157846991873214011496623569597963966009050702110884060613932720204859502122272865965090802191404831208355521676876064026093637043181251673565246727770107939624962129327828986912988161510580429503499518224390438764005225145280945582439978972858715844014373250306807500022572931125700136804106133323167125206765831845713626245884062495626746644649280922843950986124913395332011328380429120889449781422247569303063131072995871121295226851912242445040434614454817171159723874984586092745926845506011738392923874030053366856850150451479416757619434014633410035213660839168450470495967307051300928244052462748077403176095497175159514907787294179392520931848504889399687604021724556418932292158455606966982656321994737588934866493387295697940543974803102584907157555283362928053202811633355466050568884522132779929010016227429991207399246271673194276317095646501579831688362495144232132621517765277353122408770693646398610682473832293002470834605169789479491072516962725020736276399841284652029661676998159587705701061530744226621958072706447550109622350775513983968453809192000326127192174299127291013951157891842928200313884797542367583965889873014912341198146295491121160523795917918080764909348180080389068955887037980740360800758869195710705265182333152135302366898763070361396453681160951922388363383031025568606519943175131379129324964129067009275435625879402930824186813612138425670574774251176983772017992858718882864410039382141904506196703254044615098585484040322040556920536183325547543892651627657024088652686675404024984201853529101420422420716946519565475394892907115434366135716063892806345468129244502783299008884075277282024810756922584985978096540500817070094651648534432900561492830790805792227251600203493804215046368732456549911665321952223617212919168934594841281523229441120166364732476234973687363065027198147472006455279378908306391845135765830079944733721445157460475939401666472193399295009059071943639630270804172321249548241309833476788042013577403272465746168703973572732277172542192488268939968559350859010568529518004173657822142926465257605278816290944354300867581774310357601896017624826831723222970758973857288955188358359320165712010062102639463326290500618431676158531016448480801309738283071363565443220478488766127346410416152583089257113740296470551461777146124383842015834571044471927726088028560086556915175110327668581625245472946375703039553392355578145138882898606884248430628054925642034121216811784614851970603003801758043264735969438180781191234731409740964267104350541928744686606390933496819149899968069822733423616547923786912454331943358223167954974781013834445475151988756714296990949661882114748103817892457931208482314033195426202878000359430232401754190960691436290353874581049417116762229181376964318402662263400907103743153546311223855275722809960637143033844168818827529998630871064179768771517551704969086539532059171795535977085457346692655904412852300481365104134626350028965631606085354117430803866329473597550472177722498673401154510775799510797723321155379905220997829091660508321183569511473563666947636860483869017024385127833996049664184430568129288942927501521383482583117529216816569492817385742129863505500875971015478927036894208641562061436881055265413868174070909772613588698231262717527613872550139124578699065650428811700423427620955663832333604144681518842309760644067302153267844021390508072654423601329806943266912894793223012949021518097655756142073410486741936604238801690128612879730671525294209871856397827537589816354741089936861862156515430539821841169295256544291088308282936672939834626510773546802834118904938227866754921625225946633652729382707014413593022622151757457623592795487893619583535244578617424558691903467669623028591717921301938984973103275833891886306746264518928128441959950086551486452464311766387365118261861089799632488910857154141021152190541875402603227468162506744925431793404386101884254904747249215790283927801098404355601892296121638704976147948295671747358182290495665556290284975178657145576621496734493152325228054579990124508287308968238894201605712026478040427286118341284664309338713863061069263598045043600754724105698717392396570348247837529579378588159004160836232814375477605200978056033469133980969784785588376294572540245639408635300149882393176328989635733847258998171796843059045321476790947924081523139706043978151650739035840071701545061865880303705987333452327411708725936884025751778293375895828941930702861893618464631346463970683349645811228431818111591612995290155815777936688010647863353085132096122582537476417095388476487281300139987781660636821602192269059191634383598348631488277547133680143463755323180762908543709444877167407254141397921697462020512024614507253716199885324707976043301628332005673593371375854880042254245107587179009614694493316725780138512592621739503274533752045435929592837742949168116502932984672508668858043762384533278162319654415947501418693511844322336483870074464131638050885780384425574647735454186646672876991878054241118551855834611995147638548225341663987272915359056691809356869278722566658320319075147796747738455708871112425352403846059911002829154635625267365289664721938769578894426802933046350170665173081266433992996388781293742804015441128399853807881761793373972686517336083717643814641345424419679041816014005672393801526798646826543901395256353666809588890748337475508987180686072632452745185121224902422413012863995219021174497695699031698494157327083759674629581075085254876818184022061373208110342535095387313713391027637258883973671405490881314827556783717585466690840353406148058743920091835017796683312067291203657415482324609128912127896133995326788590110988995526418658404183454036745063892746295111156626397289716718355799326529943246836591396342323124207637863959773493127642957498754565279373926344036319228506373769208558127250439819686154764865237997689079039458603106665282399077816907040192544157133060428746668221194436229806696878791899929549600720985381375850751412227986877050727445227871175350235039052697132603167137297270591985260765982230757635636121446184477604768145536400935371631775294549583950851891770336184893021699489351236568074649316950923976080636467383589790651081890624247603934481032662031457126180322359431294845347265044079496315127941354997288988006524208897147332355820559339028624632968507880648908374823535528984934484613921312976490991916067079371686669471600953589472458148255527047531187528365276283880541110784768499897265466278319437838960667227520959163359401136548098833929839909470211655370298603938820758046166007784222647940159992474081751766395648212862892560616207373333502961475586797928916966209019145720788273707862826405969052692400021530255303856087725624053362788471484815312338441004105677104804768338958057999692615379790050215761151638730637407787794646726573378429439101107852807512630530069399103981605986063282317213782356108452620959430998450026783391934558009620677632032348035919193842658394389825242669629267785506232768631503998032304073406858521722927916725853434708906366553109672564632505172643930718184428708402833246011853863476965035820401544222413122192037853782977768620263415127523868960307012580260954697368765219863721706140426458289274543421291914962016224905757217835531526833724735828845107883377682232156492173922391043836279270137916334396671082761494321936998895919826293949249791582162560196952551114695703912739919500634705494037832515504383985334169915739930098039751840271134175785954873642786202739944366873822453564384835042466765247320542446485832593654647111387570752687876836106052662482350803681956456220671421550412537836380320157273837538480897385554244774539401640517980797245347759097987090325042279623673750726896767370373591995281937006130633410566479739780797896013109001200505341395473577566595834530421542253769584145359222896952816693407427846477229521039764517127630575105195428662305057717557027234856874700609588750202494686449555794900988348260897062250525242694329811660013713992065287484654052455219555010573458678694025920666274583047582711391537884064630044512532574462904758996659522203060018165685158339787890720747471492546509313133058283780881022353417758868929735698257136259726872274959099587656830750272830034488323569835844674370435562117854253294852198852904599912989432750174721873621370749914572116565161651691356233813763904609386645027388648174500490684294593108378029562909178325492374252275841148911862869916536998299586676533522898680624589230595945719459172738288694356944908213158862067714108918437737012610447411133105427038650263693877373404602004600980962990764183642944607955808667753379250480067390423060633135857324867159067768598734091990574758375100103398121568083318392144606608395428378491873879632557531229215984102116238690239036444497209077421741997512073407453442435266803986389073880516877344151048185966934744927340525387638523624197278326175571780531184287761329193077059588073765485814308428149351020241624902730964394896001219164996608374752175464052233638978567990649065934400928346792183772697445110774549353532383576634487054229892946579399017427045036427420866188567206213771212786187566950009554036243983931169422068215842587413792445521481689732603611552030456286970955935434293071379215034700880600716038250524780267759594520927085407131834646868344650381932026303722848431373978881252181639212525065762915647405523240915706408544337742570328669343322077096229477982483508925059856213622512197421392006917774812689278298360218898483054409275742778771973450991124283437802085055854150380205502589603401253540209700232112406783351781517508294484390628191886892529203678603865459179251785808379599958362905870069989730099549916064772323672361716951208563571522206592357206426236048604589145070980696960159162373523029233158640072319529029974425933956825895801844491633176924497789338554409107795296017724978572711628741380326061796328867443579075483267685937007147011791305336109479062001913304026310632085158809142184017806598778650158073296654981215296552724052985836281382342518430881561141805329334811057763304938007121264389297615128624015425222003755560736917201960127294030495864026169962776844411032182658737981149428913615644976237109000773664756267102742902569975065144714758122857090984398036095086139404011917972031630985082776312556264083799353031548311904230447367407670759935285927813885600721410325050571874301181302878694572164931357599271056702492489650327073037970394933186517911259228545302468437133771105388820130179717674294508859663629341390216054338827466244596261563738164136701005707579270674597550415235293580691055715171973582263057338635089432932925658713498295382312759101634080340726679142296798218462214771943322481438398512501635238304874855351291230598372833516911393741887949187862960443602216077294052857376930414879261559211393774017053394473829029579599324013664415804441190371207429976877522045253609885795772828806433641259659996917306258197294847452674713839361899486026395782201201542253957269044763663906830844655664955181334585292620829344443273046058172364621210477847744899750463246878293155380109320641857620504170222848360650189415395703864818035490956034569048744366718417851188599611605593239876851882919550269098562453247089331708282721513268138760216277333062333514464988911913673243573796643451514022193356907311250312948547530428323190041701913100024558665105769715498016350354621439726091550322110519663234470607779056656945370868509992219677554130795694898996134084856794212960850944771090667677004562477657000020217186416943003491373379818196128493345103968781074205864550409855525242139872361373445139525552694569636724248016149922936374116146623507761257491685303065624257287242115246030100827443602769500171016368050607012572745274203483520394228606577571124075017264599543145442944681538762444048903621923304151468226757060752569792303088895351878177884408953731194944640259941585143722160264045016015119129936350871275795139382764975691433430583820376471156711358959553712557751923032470547316950026417008578358084592632089137820931416233984262886362468331993559566809006919922098325917155898189533643021655603871878941642835579638326104181151066979712951111819192075679592554686037960219991247500237215666377702903824648878669935396277963073976211723181096454105879237975873987559200719276802472802086446852883737294665431054496287226346571977492784554338281345448400175316505336028025671641192032055424932958085735128216178788865998100951997684888598803601836463026851182720587462392602840003426700414916167371261517683285057427823055226862199788114232860795452219332224048389065912265571301455374916065009956430634131162023551010785793736509903894347458220309904237550555421827592441502894126139599536875467007833344153549455946568597759439721850449528300588288282134256261369388593033780078350125118265784751225022006343746729845005247580328774664669067523816180624251163056317429486621282898603489670520407126999000440388325206063601359312108274651716790941381179266563139214292539656499127693362266531133386065029770142641466551898272345527735695863305722770622709669975544088052803450653841344417504131325519547527593893666074552279190942311462280306717193251515143823112100825171623248096413338669160381732875047665678379234183079232199183926491014254975422851708634869256703154542396259857967995241741682943926536617227806440502289962787571171000832999203507122866529426752103804184967312275428189935987130186069590502653685762281787191236610493000786440351714348847209272321902311229736653273115960976431887634871905995059501207205247060059624287643167068663789028368504351071325062843124995883368689547351432340174475966492949646978023484716046266740511323773057163465155134206776493402534949919394791811298051753932053916955438847458041132275354305233744640644797053159300257531064859994277493902711614590624903269822376493846096329468841227329109839355814522706065664057387903008091149684648507230337764112466658078918532099978628771820317505709328656180540354599728484242588150491203837259817775544797662387928973078462324044489782741070054509480164277230434218943806970496768287832609249894901075112123651341669304315649843772274631278335361922857052510998491524532578351284234907888931740488090085688182139500133002231859287209066335988072828276149407379359222306765728025128522327057570838562432818375121315169869981651738091515064249551601276971155441255978694050890010685872633993448772901825677985871770634313533858312891847038912452035184046452673102895309670592703929150738554430612749865712067877913996918279387438717785140464085868775728403631882417081586348389481012867710908647208378413049511590063643857948887125811380740598327548148498719555085246558030487665482085908364954286285011620685299377695181428073071728121551567477700319933069391383370641720946380658460749556724910491371572964640485488237023510209815060327954857824787759834743356201437479823767964153922497739747832444027122561618567688313902840730191805757058236686148056136340028852218787588409228993697936139957458029381199947748953723205921929731865102485552205489708908939541925916511521217669178244902842800434667653941773987307198933750788802586317135150502765431472530856955965064731388277928421346648442511140359805275401819253716926053749474357167804776594486478137812903477787852273904189732681682932995347616874419384766681870365635988406865138095118773357818947075247522428780899539895510162069358792413440581618620675496108842740091481892870374047892907859871332826246433471267557961106075858299796677939947029757149759614301216483930401814125733122767467937851824869567372196568190374713735727413729069898436523621131148859520949402258740514750766246631959087645793974276955012127045274693850839011260133842810177959899222781782305617991830559602350384421933341847360317670547326653877185840774108972837620307723259418239879939707188096834778463556086929222012407321269583881744329486291263162890399588934007295736827906593841504104582774198908832567211334475073254332262582036167239614421952584132787818669101593793862035733697537565787222898316115902345909452016099124101737177566791213942307126280628077787951316563838512276963467835867064637421724022012992549739459231309101542991665433828525759260442579945606659566166269367976872150275240202365720256175533064286677474604541061489397446725052942434960505495944961508334650557043722488352287013470656913804585813684979070763583007920048695669383317020521351756254238227362250533522519607446511093041729613494343731368016908122594116052171985113677813791148743272412303982056437005937979369410881457949004850883226875677886659053602542665821617441068194889322875525437406436827167830907739344828600850827223379445521220888619871587841350426409928372522315069463125757225468871080848852131735186395768869296045603023029241798725016138427673419241394797482075032741217750293701039864571790050549845442994690565867903052902798623061262336870962446179781286524801728422829738928062883509456218305633863046880382475053022390686068965621434189159703055810064955811083604252235756119093860901733289259854303254623774925022579382880515372364331367622153978073563948909077527004754400762191046598208769632598285309723927214760832153243164143736437475708923120139931536638380833008035864133506111858470636324857758630769642697558515694041166178566140497049048484784371362089040069876782621512403907389683195273271243538322794259034181677415572120251024708785218784600394689763742122827271841925319536285968101295195544096885375984388213050243317366241397554539795975354244399842603374012838490492618215098116049743927076822216369223251886995419867145796973990985065354775988839487848158301660962848744904484929909166128235147941289015825938406155115982609406233924816898176260459861141284056475320218408913720284833200736110870181062711187478623689382617545409516521444960022763067862668926987330311380206904308764507373638486102834930527124776382667458084325515507767738268625200399786950136990584556827097283369978351593078098304144265231227025821891376031970775096455524281984013809167001336939658261247782270853583317760422151242778465955619827521024074725462381023429775276411684342228446886087100416092679763006432761830846122296076545722982887608729109451242354415570746094295089303555109881061284566678693583670499853258654462446824896103150973145421523670412065627148062402798277207185704749124464491677979052975908884980767679583235015856397596523274370686634966542502316825696741584367738988891876704237979413084002458565674166086785030509530409786788137491571410232235562217490907098939175031793257495036887803951510103388661641600437293725852727952998615386238305524144590685299027704304553781932396643388319627403586220046316216418507134972963747084067359618403773463163946671618128735846078132448160023621832273136082486863841200698182339692680044805075949589741879142599917556810859672807641560873517382139405212892241261824515890954903512640217312534886720500046961882025745605287896967059021804858219374316732031863111565879056526061894288051481036981132520304041578673965453198915962023379536095938807662113451423999477020142709568952161171775571850048327036553436634075282680656393492484208639542751537679754443489519161121348202384686941350962228099886082746507688479916690021605207276853536961334596749546592383413691332900557713323009338165612626438227470083343679746961898050282632195823612874680529796198863432798295488564699088556720470162544216141653924413318084818392019639854997000843622830879190083707905840281044636137143023340485225704860327394251844661590648066517444988505515209199995835895316895757721164945757423205986476297877023678514377246567436279551684520573047574391705641910348868759138531501911542466195089567470133752700659106437934334089963709488250689699790436321822557219152618936924273147336817417351959429006111624985958120055962811594186822922395697601492036057112959843138046050264924711061403193610686155745593538770378800664634256398272769996262553849275126387517939101108183263677701740836288364909193406364587832029030939278645381772463738740820392433805172680677971322635744827304454973671047351720158205849781431367401772694868660382425498139365163700014246498671073197625611829761894846940294131151783081192054346011945149493036923990015810925948249404708074320268785763364679837108766537605906820830496405589321292047782412921847437247702611895480633748009119584359619161284468788977183015522550023787834900005207811774481077439702920816598454107727769534953911993496949346457277989202735031077548863826538340332773061810452359619652460492114270777565263828291122225184486357562329754133916914816213419490737405066143449614234599830851543365480045259133476706780939677139286150873639884163807518947084806133645058010253754634117098170276278132602496113702904250430890147313455035230862737790951110295150520946119079613194674762954983551119363941235859579902397848907222275696619105860598020821193715931431117051133555747089875625526080307271939915372093657658032866439025127014854267196199844860330096280564827306222131465325651520694686634795843406601639619017075478766147997811249072508704650434181070926410333190313570579493151732136060849704413608541731248573781711307606876628619261064694232088579497000553645468018880607839943788665892232788580696413006576831124671785980100910556976457993559895585943487714721964742173483822369996518765017609916201015947867305524160602876680273329644957228227287198822882784574288081065041919216448033989840471233303811679921089718253038295624752548963475212557376313422760375009273674952779988934905565705571567402880655614386283098801656560211728301118795590705757278550015450354495042406116437500343298905786297202031073088041662824152902866137959034067390106546319549203421204832219162615201458392942362678381804464028619720263096351240964175753154963687508455371406327829471402839827282365338601645994233181403415663543496479164540561895224736268938969098550680665392806738519133174862257537031577900014896796148674546225244848225506043326357243036308157774456890297660052881567124917135886708821776601244756289717215073085004846384761351170268312943079058642616967393091689939280466068372539347472491811256431922523059624744464979063273131290799798389483228819784594632930525882835346915377754395604982297148564054506767680262088120103766622060860032520534201549838416000141044579518245570309639553642622891287449334465805872858811210464034699916114909634138497945295127425101333902003943512567617424086610486076035346049889204657565027725537724511015819636829328135312215521915848280306163763005138034357030482909822766827779540465489076293139993451527871355670396129420920648586150848668452988100304753339972439131128162740471468557228313907257760369184373860669493797801059904980314175934017999224255946901142196471290800290362497269912223532500275966590851866323385061477324611318093410123668733380066385084778992365720012430357774848704600018444286744920303313962034108718952724216081703821852797191529044479311259393630259387382844730682464702103864860738261874493631296280675326379668415191392218686741503563499840725195194304390918828668140842854087877356447457998085276299858031452960198070953303823609718215668352900394689625085045072381862392941567675736853813879081449878634527652723022454918599156454342615725457957472586342551796934343601581490976820031241812797882087788447844868601773609866533343478689141825178887175000512437582961204256686492815577678225507699660834871026938513180529269416206335181913340825179777223623531182265975599915249960837104886228165529124599667936887477715316965138179817798072524878728553179936777919845158614576413490190426075161578844651672108137941815145561178063214082251843956394771551436734445310660833404869376480376032942248238586060121390361047627045537645751467958108652140427889923306816810301204832176558423901333424712093984332027121531258092453690791313499161134536650742874550312105283234011359212672178295558784675703194886086365414804721591465370156228593956843294089629096000003527585293697480357843318223669280790924695340078347969564854180738104800889107135977007200821260777103042788403066357039016030406015847176743068587342447255592869695759510370807407531233349280625569910235148247458140136870834646008323483829056689197545605056880659960659916971372818773754041891500583226044587210485983555055473804175197284065398078427609548569541098562149375589057483979948215081312618918901562918819421158020933859423593119846017597300574750489107341178516171163827741040873986739616250583761446695974815269931663376246963014520204674538217131335324014176222351495837712133351263908595139709835661027808234077577642970574643868353922962286686721920275058068177485342937804270667627720914402470113555110927152636087531642106345256159003201033538481550374152412154219067603461928714552611518907651472590558125131438379526401548834395856487702390285838998882027579650365627636603565454740407580092239796704233872421953221585019330775573534888608768704849516709179235243701885844355347705682021047839669964977254036756742081361144424332858434016883172606878572128193644432741962212304532826369470032958173316724594598693031069067059353294866069121287120409510763219731717164947775951906115929013950409901081147192321059088181548757043039220556050985022477045295335318727497417012130387598526463034703391265113405321971277951122124306579168535080663248087265650907965751543359298412233569571494624053748884151658233924086366023233371949230158583961318463542233753395353016444652413086449837734365835181225657788090054029991249387365180799845113183011869343678164210500571765229869120038621950349199993618497865735323585196864714978676530138065945082476671021363932562020206994185945515756567752952985506925842793766844421383405112417351106827145834256363499902410142971730657351594477185013245915910900830906226227668508380086427007395320445677527537167818192070785771349933508124542811872389448565275035717440424323742328969061539866129398178899140637416504575645477152224602781471463895790397378605960509601865998439256965415652646409951571522706910392721695141338243636166696165665509226984315512009581347897999510019335097411042589214852791053814853772446915784099362365096422987598944521677531986284247393051671646528287061936885537709614360260980932709104025090818721694546866207283283019841205349733086363264913734504223906057951604418270029770162725184513825321160109717083274110064331154364814229245302581557949783218190371619405655126277399625046428739768573128801206100781694564762381711161568975069784023294681631860988391853185175651875772889874849576974560331812352665271869952476730758768129394576351775984052759671983031056495499395532933743673251222862177885884991674367265029792084329301490352097392074781111311360467162894745889727990925548888502646329142709482131229708919157362499394319694129250824432393143100240707627231444873655794861460821938366872796027213161234344453297798185348296562509664232337135743188598253386610670568089758508077018951573528917210265789956506219540873856074184691324141312831594104933698151474147335764114329152273282519315383219528453339963841276161276834747898318865321910652718187111396924527850960050683222569343775065592457438355453257237732469057216212597547265754429266058839441490134005358687115169882314700188823047308612829138896254939298876655517774220070383922259033809892074494992190656717374852893871966093033686507774904942474488647392658690101205820761997298043436454037440233761673223761167176971184448411649901624941667470872168594593417499993686343061322893489259078578806615967347425425718833607487183053213874021941558935491016952015356434513859573829011920784296481752774424530554544473449042054869906407611035021194892766779263493011134069441021332882855822455482504247135237317163180289482245658677691789156038482430348577153919517353386153209083818501936097765351970465096917248743683233100247801898290873068094895456752831691009764831332225430180316036196815206727486871337253830300917625156350931448110297039803653439266641919920080181965671742884777531589204293586762244763616930107744487735328113430122674755113556515281885062500472307027995273416377699848305666079904456330064559594491076111963407003172062634766625494283460338124557585743165646004134714216953384956776157789445289360403250974647558054364370810208081403022969817879373931445400317004357182260369654780280630524203994729677575533298744564360879072427242216631201995494601340259218385225745024087001545562290054138818731594749213094502388268060125404665320949502847422994092579684933786393055034285278976165877848021384874301643126305489611628581862023578458054990045726980620526372332411136263756204181878309889206064135890359466562303693117638131802830114979706826670122946372347908187789591230266226093321002268561290623507597325294406891366299049807724092125289569075019222081413262995893385926019515185555670035847627736625822756364594966766923986464713084940659318220039432188518708067875785148685893437977103536866918855309739126560270407118001351850090986933451173257785975375586747265507722632271073980208513677411617164808816107707886403558170753173112925182393055327087309325980492274717508420885572121487493121862647692494128442044695423298283207379772397533055065200579636266116345928065665921915599286339078887543717788618897992644381949411933286039287648456478350320265566985210846186367572233559376704086572855582591432142309426616725048922805223553162803794709700811056858246541026195483921811959599336289613020756503712856708385258007444925205275433854006058062200019477908618370835782597585297778888224184025585343967271783815632888163952942655833338736808274547489805654746867207452980626236149474869630416612086361346955700051442322413353724104186004127034239292263839729931923932866571082278637364715745691182799212007653796406630103230999584920646713385302144255215138723629023997937135074046237723454842313818416940446883485999746385566565042472992095356965501610386701202040391741083295226929218941383623671383477084129269511272964422231929653239535735052722185309502498637017109135185814647429636842674183560282288711247794163141130834992665313156375206156475608066505008664005505131763449940442564018599892911999860358778572804566867670952966722636125850369775219577381269731275477090110354812087144388937546169958056606296328198817117320775705155348114355311873687349313306934813683247835349292147531717810605874379555180405866377532601404000807896764114760514165542199653043251031578558901565309269630684708101410418190554103591052280139818296748467500070609973655162117129619833456299708953066097362458705218817599705718246873338568381072619334957582279436433481344654328107372186867304653980272092621989203901202873844249641216849691344874046269155900530365894377239532614421808026399396261493405516350684941141311626434892879081595866604015020513048702417613307794022606727744573192061240612552634098765885694215929253983095091746152707338096405338814061113603213440681347583283248469335319087529567996540160932234686573945416503686876960605722868831849790827344450149686675371134819032187987611559443417117155056181585078366488386460491952619827016166781519464814184379678908664152007043958568920747303284285111136740633815021701519252880670029464753973554021355582408434902055735108373273288632458775397725235836079338605752266608197599660555580072004618937576995205577002700432307750438851216505073431011969009835680834914567550376567494252610114570445599236764746709878509351690613929160499891704420432089844561903170561764764729484208680524784586386101852301840483794785239378131338249395859990307350063631298977292498610973534932090546608419503391083534080122849963565103500659110239545215181681635027783112504511069345846600922178153983026948066956975146714982816733254007074943394077049657502665722120303787758362330889459981356219982924435502629767002681167997768456428518989017050116223473758964491656708978271207127068849079264680298836112311961480690427672774207742220767308464834634233934137251405580989153460046097704525308600639864188221138320050654898091739451699560402846923303495810659343900789209173046981936454489299233783161556111967935388707975325992221073585453757360878408191922346205527386071854517748004293168452896187517267503172069597386790733762257882761474741697046925491496569723383220987742220431160084884088082904583056890125989603274707662318851999900552302161389853324890276754296150594121985167647249164183980081018679974627039861619074270688851891975832368348684548859771464402943370621331884313091020799675954995189830895349665767344296383212936967258368034974831446380106024128054361620418286854760699942942083421139666026583622889642213621082229855453808002135447710243223819621766716053534473227301143887188371256118170544381214054259126656328313633819610805110031252059983308599315461706587720099006267073346990138188580351951965230473939990355336311256491918096480812136541456744503955781249908629407809642111022553021500838297684553240928942722759002332739760707488293956287434949487936281691886341624968821653172001661215748174294904120093189918702847992954151081849903778425255498504883212393663009622704440817177445961096888956635482092600549162405371122917348135770525875242333523976598946937826558916298412381580570464150747783005971053333447375056850450269604252702351705648484705471346685750310631462908043737195183337266759139083795322965570195392854105421521454424990659386733360823784099447318593992916726390111525498758779025981624697241833712622738329691417518681830460158707571336705547228569732065543496056592763687571871113039624064738870067323588509873856852765135091971616847255940240317858325196536426626300500285878394857596350932283925967688275859264684157705835821539364649521232868757955010931535886639791807583276429852084070992102915873555621089610747489422773132424944473601633334675480101233722647428971512888100086289213174758405337236524333285061795287446170049195235073679867917514443353173075331901283940771806770516609499779048749675824177689944234787573913084157732827273485947619898051000230473340623407321909141450211610299915106687101538271549441846529999533859685460961650157698156439452069694827447588110354277237211322223157557289504938687453720704850273065673973486963842873101073687042789038181431952432726483374938626281815036005428027070269518603315037723946240709665600656039806734317132039079780362709476262850489595627285899507535172060042669109048007083460912918511141355579362941178328721241521761156830702030803986686105368647696955609549920288231181203218275911817934009318741195284207727841007945861644587523791756759511310686496595269363070232401047083123783547825270644070733002086084478844502353271147904901948901326718644152614868741132854771525130930664599485773401286327912971373824675756350894635304321779122075079717294838056046428026239040878550422387474927385598268375134660550471125261132508332565610208095700329223237882073142345162539276195401025447470195844465396963057291805516901936444768548748723471842489564934902549853388491110557989366128540977165327365256427574422626267392658260705222693110248803352399414905002654823265674267560556850319823609457962642760640770825292000447680903219301969514469020079203315820213582177033397232219462088538351822193796365731328579779392648689129380747752627075548041576020332173306512784782431499901936450489844667545404529644136250635387116663111406652080180856841024731442588885570217589021005340651534512078986367641073698328722258822907397418118294719308560230461765481095290118527948776081903039293650311242015302616110151157877832042277162556676719295537290210347551426553756649167327257207617722786825354894154636235826228216635715045858397528513773875873199553601656479694720070971163607749245007661550154180136106615408043472703237791519658511495015557614165174311149826638054552743925313117574970179134992779911482218022006651713804396417193388521550535140168644665840455624961822957961184654167966041707743257254025089082242160322989731535853268772378292134527755951095045587406746208432385012350772871403478182644855184047370045290906358780927202860715045007503479663707317320313919084079522808765372661011003150274404355920670293857867318020972986626477285363225027049918356021022420033339903534222378314734160154742838494279996838363053715135396669781629450484188852155119446306211646285580529649712302805802349012044834819370239186586992498118915588611099533099669360928348382145720942126495946314870940224975831825109543545884433942523269865982682512797361461456848460515338010110607513614010738576365832076233390004181527276729509678349704010123807160814509459141256451812687905002403848291872630301869682994272423526699019138411192327951869047240987063806151990256675660579782200545526203479877085218398982504324987535672866286794251487789388139854370194996123288317412913928541771149767786104211388114672037502375426655429847377132699339846667166465888132674806369798018775033772788375334696839236490353045562960842035192162103876547983274046485058030033615418664024316585760380645104791934686403603445972993583615240638363937466427018639558785152481184468603666517170060590021649416765184662226264930935429942822606694958325837681852504313569018149223207817741502248442492530931248998009265896782458496466509731961128227714249441702579519841157831072723638771317173535908186932354061318244846498580535977813363374489005940479436927528273346719940447973001907456542182101687443666488182984945056551258421189205733611133284962913554851556496764392939038691044968367814392564541371344162081710193750519013613521738777248523481985306456748978520798445055148596695609267836783333218280112904124221423982796070108670185006082729240604479256458439756815826830528463885855272752266223955297589580006877501874783692279660768074509495796832636812384124233300550289018164217465640357321638663245669869303795747034507329626818731724925043981116571643978003160960067260725244685653395857626778970857507603537889359447002401365817429707722201172012747602329934415097647561449845508908533619075590106122746452091039164587832728923891271573516284294581103356465945102786977792140472727079359172472112503706233783251351659149734759280705550375389929965513594614121930180250585743127077531248436855633797156419870845531058165806354257801378527270825778168519877804801306560935267255608522849108898146385336390619110554805663150732072818632753693685561732963904579908108200176159999227101583938568763113787207303085378231149935208545405929335544954916977035111235148689579865499858240648596552351971157198276153247402644087477129534543429767706141934270036203983978281160583923640060434077783352610018868076682855257705887471232181494278895135792926107804722113754423234810827960725921475589447854907936704738081885149060556372432414152739985156929553182617981157574689415103184286043974188612927493606435411089103444777582374041578529334360560354110747775313955999828181056648757768848349334035846028987585884107228311509264947597550534882660760856972670007999498262875690446902777250987315238147742658041615697811497587610290316184418304650544016017726181649350944199633261052429062531295393503896775557010619077217550299198242946447499224890689173234891392908241987346787312783447975453370361425314022003440673826058394900288030007960063006320578367775188728134257888796298406917018128198092493524896539383726762502510864016675817681973167767014588663013916335089567955044742398319407259707854896432151043610092692145933679238168400180945497075285027713863752434300352217523055297059706311870626807296835218272210858190488662914772281793142636980180984214429479999695480625075438745966852285465619144000545848240011015836895637872855209950356824038918383190542066859702181038314225015805575954320056251949637530391848438985201154811164722916081220871929931790790915170915378125240577720003929950600507568814792120518976703535368449151309232140647500613894343694107437342016284328493771179915966774962723710266861474311273608908719985013266542043618190490111770062018869545008477020061691431483347290672992057634149009787647049408311192643206492462597240791208989714594491971969258565518826122276855715928343781740003357643935691264749618063264411554459380264573618220709231465380492613909342789272474511619643597188994187019795027607388001058755353366511387126491186459672802469230477048486471955412092559642770851504687214014837112289442314307809540005576635508585233971073417007664238653959710465817476319410912476311494986116856602278438630353307317711839080849359771250325989502604464151446568931680573287713816937421406439887978452862241221984982528976760110147058723726440275995492254582363837933304479737821802353812124616655630025261872114799400720876010592438828689292519954479914778216038010696724140670637651618619447768928909921707234383676460053579771379695378519801279971815654490126024121116193893381933901374227962802932768599032212106550566303659640204914173936681720170738215935346823243551269837470984920129897319594582496152766680263659053158543476512523616341251083576556247429838240120580906035480957629098842271062440613697559649570211690352589302009822005536684170608578083153277630109452870152651797832512063919924559841145608679141392753871772025411576734328805972870031808478908681464234263186013691021187066695861743507660126907153674263167327019118054816310466018101838029597802110119759377021009825124937774244562270202549021165546377763582174245756878358399357266800547464720299630291048042140771088620640178276599218675282889926709903580819608380977063732220504220739215706440638537223214519011488983888234714489881373935356282354134034175076503740306229200823914657898981929484011077573401473113531761638816508683354428401496438663642456782139915431145911976841163471568840639911620875156196724678432203152064417216726664449689313118778343609650592744118805542500973098696709247782817082741403664663272901904127553231254839816507236500581653123467213466179645844451175184664981749485594558494410202538052435464935125936996971862250386011170790057188481113664281396933416295803498290349498131411541282089887641288386973335506817783702050802775683665802500498505546153180303845922989878547688047881885561130806610112790633808220285172787220419175032175157854685401416959122848833410689944505187219902603993833823523073406978280750725078264005022740463763396648717200295360355594557022564211675024558408398005870590208612338927777136088629562547867236447238295327311252528713463942231222275792319832073719227897625192156445875541554608453954156797313553135450699854712341917469634987120132839521651842764324383167768129141330242819387418934958993581067023751528576143223728423187242830035076782103599604535386659183958187365779052574341638172755394515505951696380942034081636427171355589103138785563270601034063335800026938460300212742053433103087276005082148072113623547132219005027643342636205607201101848179494267207189005465217408379141279848950458579829050380413132483965483464248287385907591412351982241955303770668170973691611993778660675653848901515226393852274877404494911210068797712640991809555457233845191470597513229168796038939256972199904649912355298813785577552411946676339945176647824489085368670937058146582462889527526504153570619128797396066531332828997452374249891487962231415179330487325102484498066979974423843675854436797909188352184644605482541349499918371429383077907690268159181794007961621933866293316632046266306349621907845679545823491407690479400015650462980131129724185625864973741373899313974878880097067000534429522194349664359878162418508712628967398320853807418637210081444778736160084247824563116229231806082440408118425569367982444159521067875560948033091892379848387822853006623504941793854991735826362169508557908381273611028977487513264923790442325987456600514540256986667345581780252419406115333040352208426562031972458195785453798493036129619865686923562005861270153878133057724352413307232201981825242641293041805193097422753269707945457866876996827678150108852557710429321742357919832168173324277088307326893900851026419807076359742469240080824780206496427653919924790124915234097580746006215895891234026389280673336412143647326761023690771250585124488238960140201662582783265624846782435658312922824914213525753871047360601163445728540979878447104218203128511620360932634862740710089965455270531913261323910152844371230433185966860645373503323069942728059240748708245018420103251492132766021614211483022306120223493692323686107223559598077488095598932848363604543183824198749548764808756989870389403534320102424384955546430365512765525161406007370741961013458686896837517334569455821704027349656301477314063533171172463509725872661274746482373078918678933352237039820174478563847853544476289234057925946236143543635794924427135999117821559669649315348115380240469162163703023724163649476833403835422886367632743350343766062597104431640200807350089092166146236958259645840092775236439811980174216684438200779472014133275800514274551820243984504241680989912950881608189178890291598832479977991632216321458651352686050579779197169339668646682706541705231681887166382930989545740698690255129859260664852907003436835869645681659591235058134458708670930365195649798920596866201205492694745313096554522493977075491349212301596240348069764676266151189119707430055651951365702542229575895191189116232444008584884187549592782992227340113523591348787380929006069547493889724787631403396969504626779097632982561588612103281319472375922528640310555806654228599241413258206815001846565965945766602876781533875965421270388111719205379119607896882945923573884840247820681175294971771221098154260623170485916494315303510912440289843227611073640708776465390622175474894350365681696095720373277200341410067051753298434446819299501764835654382364266280196010340228896462775025643563982836760319000124061184761623378190800675219872815027883516335151498739329612733918211428985165191318322936759381081435951603422727457123454159506251696726597979261536577959515589391332697149547379975263828017491772157894251572173726770178995085991313968843281119118633702864977644481214700429775006875706022970805116753450023722478494507015888270278330962084513046915723675670751812066000565334581772524102379719261082741192988249214353077035547411856662680996906501864293655139608596328781526652429162840629578880746270581810017705033494546608505514105873800388938541458285593923940382673806387450349961700092014590162851707250048799579059190211234707393829972702209128590541624692987014250571343009202528568560083377487592206182781316905509276527841130400714954968889228017557946343733358895523285429631463579281657562195804583890255347384197182018175720487986039900220641569555981729071338066751996047562725646906346653064095865237266891301811312029329846662197273360148833067643732675018772628292060571432012459000624780805493721493197634827175406486583417780333385808756988339796512520137937454436690581733833079764901307163921782348100301458073258651749861219583404646430858129748648211339835513708678493578941708684905027849198054982042481669026569262791598121508252052674414463075308510858175679580050011568450610634178770172211391324363135664682040501059042549577680187632589086615245141265818304060996143450396641462631590000898412067980423051961196094416779373415052552207156364429404115328632741196358522799125252799970641929699809797795588738460681891160122191898634639186927869339733657004845906925368858972218274717849186777654304130053441632914153006896464133283544557221975210710384727598167773643530999105156125327636215254468496626928527026779343313147360607171552736425643680611206683715647301207119561477855203180013276256510537944768906408291676210815396693302284274210333269097274206311105086956750105695261043600191838254526870329222289660683454192006131127726779764593029827818306391428919508498137869330656254673243528005395609771275579038020768685244104773587460530822148631979624600541435290957859218789148448977891447990711726180937197299223567436646401045120241826841843224492605458585886290838430253398750795593740530876574715178848344783189952381971236383263828271620161242368579707189252185623250113951323234635900777289915084524145033523107864088181784002654239176359933330164328228310040163952571885979548209450381057620392434403531488652455619872845982115980105449719871076407093894405611796634609932288159738726981861236637957925183375525067533128597451056067446585504654992223670592496839536538201753274799239327948313266460325332495536730009191175281086980777353244109578155147460255753868957389318530988598964860217211199492863140058484515467593533697841789377743863870803872209576888808231735307548568794326112219795304884219817385794717955587192701086801406031289812811903200631709739795840900035903808762560364164077732458321198579457021555126009483003618512890637079087851159476244043520968786826887498918952920229071089619140131461694437083206873728373782293091770096672571233796009345155168493820604897933036343359330811068415250804305856369944416649710311331522668629534712008967010493417633098861090049484275258711533782358728714117539432590488288357346435502340890561664158245477519487998336564204958872923800920445003917329413330678829225983104215738899599903190531626257905030083323850948946902998193404398838053511576020627715444570753308284152735082140554389046637081823604452992202415328946915533017798692427700491595540283796111778991807530989003892101443783190695853667950428875740790330642083986966280473231680150843600916383125174162956435211147404524496619408690464736739710106377570296311831908136857224957367319211394903253554887469630206378690021246771012362008399152887098305568540861963181783622066318595252866469235957049347484624276507298966632893009870404562300414907877011520474383922479034351302072172966467092646057895323628455149569870081115628349113410615763613850519481061993182661137455975091824744795115619710630939677517516095613732083329476234027234330190037721627636546043460063849580976569132185192056655417723658123754189921535032792593590332583563444339991501829738635803946917440390738336859978623462485126881420116441135423236459271562338529832636269266608962147372264375567648801990944795416962355537654020932551619546735112480105994686747061887441541949574747379245671842640002440904219381690546924788157805613904969850100105160893740101449411622761999698200347830103860795877243378687586193869419745796225399310124678741694508177630986142426629207119050987174465406729458537480588069324257416241537825268313303112052210254090861508143394988315406520345006260073809204033977291422620705946727913232191727762281573474793497469760095736597564166427922351657448113475140790168039811934872831329760666524644004910047037481903054014056383189022671141595543070043833271136410706621421570324192306660510356028384666874042877309842682897741039516878898745124532714161910309674268373153781437336391584713343946641428961296467179727249787738746809772288510711936648975653161699165998961161675285117358108362527044476031718910584997305966257702963344826761327327785954003708058220510508804054737078343699762807539266372505083088258852361594286281692404885360371531414706417017048718915939449660961233424973117604622268532432948706956451240928191468632930531560157413232716509955249226020630071982661552388003270527007429331163803849074851980709870406722644942542443816127287607164626242809311622049697732216567346916206588883534911218749887293981000831166883700081368763638129634046627342645362366969985227035891529441083382238982355727800652058282295984122539067027466987646236454246762582622666096095133356871313591278157665353683772986068112430420617022343253570317140570782861329561647859467917192147350054481244672526323298390128977621396257948565426806733539440811516454209459443351400518636949629690622301489270345810198286886413262924662603267436854420886926928180125179063628798520362425261559139054122006758139889833856637784826396212021882585880884491297006596408998569711948144514603495360373448908264348646245898971709451434806705308716451199605442771057020127561292137771776285203595357815546194004091920955188215118070856090676656648965712701652344914438141272675464212107100616523557517954230725455162085468162883788098108882062531827783763438660737889418935687290125883546329957385625367685342809437480017779103665416749344824189053861899702199141753941816720483140479517167003563105311337033975564749940828384709031075222094779694063817499472652801412341232057698915656332079830624827478584945061802856250307938840191992938234995298040810495102152750256003300353211675921977099612037063383997644589983868191394945879127071749683452141896513203830254907194715364901874461926502078724991742151365731312524357970550320674899688839578618117978973781256271967408557879697076149665464385805019395594090328364569941844653614755560474923298277102608184427535419129354133690439714819941117396506908189396614678369594555029506021325582459515244091457460979196012341896638229196070936565942468237442289464164827381907136707237312532719250148088027844156143742286720950707932059210042784707622413755094870232101975260841041172530513725398350186714105589360896645071508295130738406763497525156248673616358415183226161250469172316527956722190499901144549479374288696761368303559452433843207434534558658443863944286890852214554829920796514968566199095822348891987211771435412482283323279333609759230158925114150215324773760979583317397302257771610867817935496184153414855305706173464773022588507544968451276613293577486501871143903126430165287618952277311213969759104207023094561626668347316012719582391770046176399738717107019328831534953787132938367124016603681186736233309773390411938151940598771399870800070697931738780756042088562788481080725445961192614819603252550933578780084140040848771105044421519004068230204783641915189063636229043320407753276137197991169328249106727578217487850081056240803390026772017035649748486440002591321516800367825376538848125568777357219183569471850250403924952582738551782187560028420590647962764984355338433316210496111089471012841377862318903001110514139170377847180285652617192917459702413499069275192154068941274475145990036387552563806311325275992971019747035342462731638754333811057190837372318603662036062001264092162543047452650091501034470160731265538844092798604410478859922762321103438782264996619080394775233676630581180807706820536232912013033359789843023712500336357698351892695610134760313370471674730207276826726473076879944417982342492656065961467154253536484870186649940988855206295318536138722623729989846115983410795556750635571618473299742974782839657176186607367516795062002957940691976351970697251520868314587982564536371718966082845682844343556553731205732274054658562855261930950780137869143665909051887727729777926305923952400581929919402472571684550201945806551315474503972158913389931326545779809939412815963674942720246592057580186901055396025712136453767866927359528518972768676430566097798956846334625923228320002012085712626275564470564966628483864450295574325001494688005625134998877470476704737805192116978533275094953182970103564084923361842649700630756463862962844146388467060827818590570023375164975720796599997324211316133802480917052856091501355932582197614534682466016136832586661100766622683960437591460733829196863433835211618230942042026946131179373031065747521624286233690193030841802361736703692042609938513215960724939424021324432361657383297783992505870974976773790321945868275765127660917529585863703347215082921932614472123770468009914131640582532381256633571928795202035288323800125136738729802695415030573242956128172573804678296670886178104701681768477928242389001563561361905486130356188742734312731260462533455234773326409813157756273435557912389010112502875068795708031595963671093993237309473272351720636704357939652722100324182256777709380273006072405816521489898201716266250853691248448577049207232417267802738126742898130385783446150577598418036789000160620599075479390069900770458176457641636134438091102792995828527216764957826321236843772621578350734958556596196243353296728761009223522881598990696418943856912785026365652641157086974742928228205558060244343807465710339228438395142713470359004321710614855400531531330393189926903497772465548546644869533509790056536276103723849533650525300301248699648973653106949585375747238948365871325452476470628470912314694568196047699983376472620673773786255251394289917355133800095533547988044424189333513444354498849426366789117620567040994883117703394192128759188311238896188440702429262700046511042367896556712661065948303894204838972160765299982752963729287300061783450833138191516715245961120994624597179120580308201857519538065985203071333661684464077316635358643178094832584894694335501326431229392108035913421670588473017015560110804427176517218216909541200841620893590758791327370625112190407633501030028501808110455202949128003041879602788868947262460845189008776307122766832464742488382630063348418642311704264247044682710136287862527911792151799819784748986005887081642244481921490201939804923341154372355643256124178637576463132857937456340482804743978137423150283250770775547698754414784066463699977680242885522928323941651442948500184445446753619560038981419969099045772080601253595586711542788006121350637751222690734584711624893812621166302967876687589190701461472645636152621420821042186881719741303717791894618053752176732823021728679548217193112625167328728326167087156912556171311065396103431317589626833912626352635151366885612197505267796272674864393568550956410903210448294827450050011400789128627483895497119120986339794806892621084486749431389798425584673066949310094333369296363725092349811047603955403274178473743577737133489136851817587409529435201209947174383060310903942259321615713566067266881853325937098106197226950468515027645034343283714324644336146756650814591139515480398308385146756858024509498789799274287632302823070420167974307966538388730774707260340035756195201979979702584504588398717163428438313257152909481001522787400612182432243758850263075845162231517773156676447604682059925918849280429725781962911870965009995160474062796020302231153921722904303617600268268962681418190142107365906249759164974537317419344425386857563094643789328142974299901841923153986120102481567242498891400197138491917322919877565981133430590236778710280264970216181343607518782118628790731602476340866475018385945439668651379557667821385237153045702412014882294511801404715169641516779027063405161637973361813306739268263672185196169401149028472013364236353022353441296725399046727764173013701672300262632996058422223921435208969795204534251142576052319404099985247903607861319548231797566994197177903937097256082017555068297338046479608876422340992493666042500830271739843999356209661943794196808279088646365845826503740468010363174152635190193006349226071853661214123152425642375432386774163576328116423732128929106821266574972336090688730096507388048489739989048026261356687234999267753598889444823319834529301089496800903192154412187676144528195811227549090771853647464997103640217103227957763373905979825358229435773001483169908666507011332416381502829627936474114807489253030421738029087565191605199259291780493207200451115771127185504893838956750629948152514398900919073015225233377872286222988193460832677766291150105214993011268316670426884130568891904931488515461645918438317634144052822553454316554218605003984697505144534332324595591137293943091277657999925258074835254815560619732142059057217831447836195538611635542795336848405539056653232921891336637814785844213848223092629869206891181225196262692341590408412040363914281266495832806429944500961218012508875512718698858980675785912723703519346225022442087514191026536065439073711014352326027484310881413658171664476442583301688808186710901166939848922682326917708396418086679876124897806928216413823576332885343337902194402517197649462827037302953697916241521534266911569384110021262879472873832328422169438145964812677361944239576841229475519152894381151964042228809818094661003432812555591560863036488963976917291429800968649661866064060128777636300439869159649393592017059683928606580407828834410578190486321618736647490559720805426026061786348559694030702032519282992560436767522809128956459942911307980735121261216222084904362753094182471275567047749226652660711505058654299152641107232648760504926854986463111655205488882448954618784209317566515919105234577471061212204583724719804035203018613728370205726270858528639016817428467506820333943274439723077804846646077535488319644317630344549159120816778192677118161360094577423592228648679981801737225058677368411911898376713855254604230598690082443864787567676733220746465287247703996785016613543257989411980202066936144810677279797901940359681539808264447621651389912686632801068568650819203401593493563288991391579474001045435150719949621986962746355990764228089375967445975159458453553396861033718900348303698165867649646576287699034828078359634733186464864195991693607254897496848901703492278291041376813527666359478928370212055064492804666789971076462026769723647470182880101606400088801922341894963845077284570343464218716397952107128113969530428091144263117772650547082231743350493335836672830327596493923138047659218729424514172019331435440657051570314116032228924186187296912747203403529303247092796126245674001788842420083504417276808139370823493917705712755539872049113429727342743641636988849864332660647345824055692686262526320844529179490412892368891672128337514233172048676210578331176576612248859581864223821336861592749955681904784880167212733027776870050062180060709607530183375857228886494326777946895255348112261874386867224290776808033618204521636294241426508887856352733158471813092321455459763827433786823542696118276844930634088664227942997160686612532142483498565661460598866633743996686783170700262095841871733824936806832785507033116673019160556309230015458037188753350630454069184561074582819256221444000791879426791817111690820104479024468846228856986764920755383585430486818516777289740328153203341579356536467433647778295631050296173875566811088413790587426000022230669342395737114147583337654103231304421087835799793105482101564945642602537924843185875163080123438344078743512111525901819485691018326879945749043792782434878569790200193202731393505247275705266958831334958860347077668466157647361705832951274167439446839026838316280249584503911404212013165971226151022639134201141544919892904473084581238789638674006860362794046449532557561265507551873862872659427790804402012389382619121139009384369757379369411696061246486654854184463317907074669477077334764475378426084608399541817081244758277822686536898941168788621422994786254087476164126906877246563804415974395735581647150740968160031130040278758019926784854850027774150455341820255962647597610519545139429633189283742416326853455413233131589026110538705789487487872523950748833772774321492327510599429920807936331529669005351278074053145094390304223904420817412617947745552510985725013319899527519027558653163269339247213797534432959769216434827400278654534806555929708032230879714167314157675106465198297690054903656380736317905220480389762071507066722036804724826345704770078107634590707031266951814150587563861041407831959202798510765617214488778623358181843389474050292867656784673188884521169283035771578177581259148916019801225684795538285549166742077591045933072348871936360980595776104477106046637767123909585361055672930650057393965402674093451883444087076667464324276821744905437022988005932767720018111451540928288154761488499357959454481864251244226707903018181905654521393887490667263181552808527626289001768920275701261735120419010644008564846739254777344512240739889860735861460185251128988556231299670437440360588787100448223109170902690907951540990203175043564943805379948958871947197194988931912331319960230632115218156342709203790465590606659217957876989419804472914763586803073606641120830154191867429305740211466184978156173457451085452123150584500745602544256778513438090738275109700561099805201656293841479558915149820704678632417911643481031257742446895574508868637088871295594236028472767123818671358716913795876915148223375174022968208302917082254434432293153686572277582567451476547676451070050599925427932291662433195961229712308377977118914216195931185468621529312230348436962548555213324596923089913206556867727709647560105801534982015255806579140365988157488950094629594172325924282571865986546769788947996800314621244784941602509936892713460028747448743448039027921139081377079744987902560349985629323166473960906149598701441648628209986459111664385846754235600937924458297731922489455480386344679644751875764593299348077920341754156989519306336203261624251936201863089580553632589954271625879581674008093806573868200250630645047916070550858253231880038658806149943302080849482998161312615327716205142513898788482349951704645746467105087602034064749583638193168013493043815874516978502943167090910007460921103422329379268976463947938442244180067724581068995575760181887274760789039568205776266667459124964954238210602052950564384040792562557381286669933148078381170756637459081711700519725867819334110177134655882129752709171573150206041545283928237380809868913979873463617031871070359144097266523310594566691521562838194270687447382317617199982097076947531287562363410230303050994019438105951269245411524768045678663013975258199100404086480316233731087691772239354148062782680738879851873180147115992334713436553881430042724609816655969318082151025441600421342625091872592228234472588384362692288213606031151551562108265456160248209551472163895073109729353354733177032022676314187384180038531767680970440043268987794680827435547255995572832185161968972560237392866807181438002818918470045705000364009614645549723748117172463428678855403946667158159739478643398700932312220709330868788371077830123129976215079421781913360422463717218123380758250895965070754520824234197337351141305104760981910014919703850273416225471524515731016189158202219416859832856487182425351406672923245606707896216399088875162454898835788778276690901633147986577624106004966050468496889299952308068759874439993388516998450576026829503327353737325970177637188422706831656441517057030041300519545194056752256845074902707193726704808487146588759155435821709154569148923489895926920853773909967581162908046500884501997250149615000884514107610407811341758213619700106908779503642265564808941110164112806683323054593133542427725167853400558007010197288642162937529055130332183862088992582925045937556539936747803734947458663665697529952329624876068030897271461846402397682775697654913858967040596680067314460253580486675617072401812678515891753754065712612460383287435298523903580329454500477502246820291171501958297233710486077514612005744372989722825391767183060349985263018381147827044019773130000096302962247023151255840567278244112638025734205601576575274606103162726848668967152237834850301804648936046410673297285660780900473590148375232103882469544793682161228011875287705997528645538163075763013224496781355066311969310120434001728764424917984408585572034917398925485213721417125481146488608779759659632530656429770861390606285366014202805233873056849219178085809838167965405600608445059362825203592972990295309809184385237972726986900903335657694155196172573936031815419276874628342840354388895442249045398085780574133733683323893593798957361019535799399829928257044516422564990548483939756785222626408520275517208717049028894678055107767098011160230693783240575492547530283433832278781199515028939491952351367243940958782306213934598229898702289253627632940768877374818962671199469797585216221316320055397678352530947348689466520543144543139301930944874269088806998109101225701215033467944560420526179931381376282577490190962390162795702025830192999189806340327842896293516140045676365129066430500172795780149480761653430650695950697980573740055187624004752086146376842495158454338326011300300601130417351650427599367389798828119982754603468360104167173243561421175892659603125710350881584524484117028239586986504220032654089550460932646928691667482157867171422016227912942287555983806208761304409030695376415377595513269200705283765545381987891226480215632289450386421822709299736811535431605921004908876305026518252522614225226274748100609506669987241202156990175553950200353892678267759775917755138898905338315392518914239410631260043964124542417865276924807888360087870972059172904051532464997188340552321040962297140679410245359707090960798117797743667337768533336682018782151409117881495297929849419973525085389964365129323530452781450684792263670276604056890259248572118522575990556672315739406823976666424414200494805313951181648351768006774262019254813231509241929224130726001053214804975828264862973658893831628862013907749879037289245061105318202841314459634642825146087627125691873824334622533777358312629496623628079438155297708320748504707293190594002922915770280590573834044982846390317952682700891526170867349010388631195960326142943709028160121878280688929362859025448670880180403814321550912743326591714010252728168533481303824734496643528934690537290003838553024200042847528508784507248437601594483616890116766169468008750944313733881213253290318082865937979480721941144327972131854441500962829815626564628617762267446979315229591647773539936197273763839449948793888991395815280771191416204699436974805155851439971842413283266111907340201546139649955570084752781059112722027810165185109777469393994790270114883893253125670999486246695663146484348954842333875731633926744386305897756266301543497011428309526353089576485831562156105047082569830454772949872801903878573101205100387819377688545356174374744136636910088023417699811557926790605744086064903867801350410692783575989119993901645514324587038405130615569649023293812504625245201232743330253587127861108647902530327240874375542050554983094283905629826432020732258318787175262177277444627352480954925581125848225584665689164494137128099069918768883430402478644717168013617816570409735997004832192735762438941260703393488029745542724875547003334869451881185372671814614210635357822685377605502148245646568990973777725570123690642704694220271739070181096255350145932589934386203507214313075398341804840302814114251664080982278608429381612432882234745329605411809741095234641743546116379726267977033943523753856154689987339168446706680631128941675370257397357037520845021895139453162344456785412929539650454144110468140486041661939141201845707632500172537728565058154456397375828063204553081187691051505587146783742256644013557657583339669729557113927298244152016758128614081976040257211337171320917292437914481538570091427652099734676459584087694137815887067555805751954042981342761120812055651482511031263976472619855931525727710179477367910171737390171481593496268558868469182951918735443688299237916582776483355829103959752319378401028591027731163755512626724496185507994000919566584457815098940845373118736887729929109414796377263565491945077596075314088705032156719896641717045012023743785898677882236269190739553151954384427198473395113035192910293381407093876529892124921160139430046980980349332506111631697034402875479357468408970381361173616024697243915163473647525383845140315724696368317063020239253250310427959511598040617182453072520347582267108801977780239483112685077648628221343158489565155041853988770809367873639974232309231454668687555197206947866537901160096275364718765326509284111762190741786282059654870260833672336184335827503690442357497657638436998727979355137951694064547990653041769139740726931193966695020609676624650587387450006691896079659362748954363570604980070024053762145858248391594290206598948314294347892768209896424069450402432841668755409056875282545756602287593653545384127841866726026566919779420812677286820350827851651665409968718484881173310790855143109650281143437258687562456515861412232959088506526388666825763704580638468874709366720855061442221564557476791383003399762418816139898380306886982494661627833025403900608852195451287982586023446029778266299077672005568508978174540962875049886200558922127656975946319238742326558910119588971755960902484333340318196923156682447427856177454139433308285938034058077757571653235469311824313745512503924478475110892112708043136432140872975936687842423341485327996896290306648929081949417989384499731707191727504976803145604415942063110448988695998564646256032548472304395231337674838985473151217965314640795002167395164040514454003490022133334400827891421080774471665959574487615652703981550830704953456067343017895540308313094763319576019643675912807270095042851406892343873585430610155361657865394896022511219706907511378732354661023291027866198398370157863316012200389716600580594817755147231876930587683248785739677457848726902201710808660990299704216514651188202277783895915458315814273139986614211806189498507167056670473952570388701446309793856666593480367540722214807744672015964583971377811373935425085687702162708169761485572809530802244176788870016176299952707110888843136914874501535226377585104507103928318962501395426912193896736344999851636049477491785948862289491738568711740042426355685344962733956418968852272021934377305569092150234010127035407828923246280323848000081835897661048864220871436592973898663830620877817057296303594405438119912839860754448979116381597580059228080206648095142286986986422477664019958655285304736893934121621274903849006027597917327603142972244090284646080383560445557953968731456381481213881685791022896336037979682761791500913244330206199784386574296293092425495370369877421896374064024875203421299692946747722621778282467473438148813195874144523375863291509991725935093403916028954211100803823681375814903561050152169894887319305837174618808694499137999610413401929228274638591402622943268264735984724829704536866911161530721736148968014224937171863138097127856594104784223206212030207988978452630586495038651226055284087548922851880169616019942762801601289557474230083849304929729293977739226431168806731040987683180017047104689378677677337440259744573352065975564094063727845545703358437685546310325279910340542941209947849410594956061980666803412583335007008132292556999655524067447354226283363073081393519293646984872643705611713162531222898126772993519943638003302494846156458046575449112963234450873339939676085891835629790330702484360578512194380288485740458128856018692657131452066105773375590668479627843971891868736719474026430054189280999958348904684533117525980369576010877372394022560849036980657412989135009030481382571912048915887398846318572832417136226278952329400253638657536104852406337942748660831392783779294384716390099565140535451656940204151593104923030732928112054972793976853900944677883414787160070727497984224873387442947100095914827969688223560517783296379375156035648290589297013059052986292629237149657879580212671285184220464450945954483080591088684436321268317821382451832936554784357873025252887230993651505054715904702777624911964203006095573383994390872130573690988421997640994537256032614017506203214693201261887363042793111559501365765390514429105758857363754867335222833867800979976250239630684086073162268460913743098795838249551169792138426271948836095962618679364075775082765991365692557379114340007695685255662981799232687574542932356802916396862169681171191661613664427082439827051207311118424052667997759113147839062129579756545291912738772797552288974100101682341219813797841940314930291642326321640536366144071276273575592893660958079237694248158945954999710165763530702742051179840980008383452232487388142687142051368599250118316789913006781777232270972156647514822333644242958398358189697303948566627942216575311254288625818951215873882414364324266852492511561004958317410100803491863190260225849915539859569022570843502055734479930810779917110189525308078007622026469489309282104374277601588846664915910703868971049417966984934657293258349087640837592220078040039620703638715432541644735047098805194066346922476851732117514466008909566677218437774863424280712397104226355296759160095580724421777498945660406416135777271592478096850306646805438650006293260192451263215990721402592177957845836627368334025170258570648308558839482314726987637128240714237389004304450319230197766459200745347005413490217854185435599861887211415502325251543969169912004140998912596297955962452116118065353826740272657830903795264328946779941727001791550825742962910921425592263945108672525804777528436516907822947805379554851107096494709032235482164040005368905647850603359188467304938710953365878249115842699232417474758784308911065982355419498547313980564366050496950929093680833614314150139547346399723278012444697952846993957213964820562098633912370624237061935675807139802144612677737737674763426889051890740765252483571245111988867524497754705040071167947307602054425683661424731744116931988435011596251622410457890563837862000377445132008275579054271803379165819393016629012158368724865255643931505015288357206554791841427917690330760552827903966593455844754008666788038912389939647639845381586860274489194432815318113385341000889081864146616189503648844507910164125968114662354695750785287198922223068971492754059314045517345528877994053890301024976978419058620687124083724679682881397287577864646141513093257330897451493766189254942480492630191897145463219996652918461200197116630338944402784253085424850488257506102424247902480688250131770865037050949940425232278136365415461647507627056881175481386412555702943546315007130695489062397555399975287897336625356737404312818685049245513416679857869880161097208595854128614339063727069277252183478337213057107030696519899939929701982301323043310087257615965003825391475022153500550375779890884535983610921917829877631435066036100237831217832323727875827553529739275211349839885560196219817602832263056746780895688575085207084513914359345732320696202140148449596440373385152943227705061359615924270105439765801298699553402045073007115344940206442109206233638831967776551898973593590886192798854981146299229802098466260466477505668227626082518440307903858618291281473933724192049258668027545080291878688799933301006465432019290557137363666457069938360510344693205822752165788289793462611734097134394407996904605971395111910394881060149624112122239474615642413402031350474637135734442287677660243186878611198640425027821372541978980847059272115327522853239595898332739742025391799208797700566157293150165765213048950213589100377000949293913077817676994426379615841247970669460779106084614422872117238827259319738554302578170011556952972493758279199483207387978462422830775143886070980632332289411533582107391713876786488403895913559328073718502446021519590336872147892795524824824346531863646398416950028779697447019402742832554468158076060261792535960857993553676763819995437344822212768781705645840764789204940637020212532713447674792988242586154127357831391802769895169415927262548416280563900712911745532524175985632313225271326746899330397446126026523504578608127547464245468083233910417658518962891396944580852490967775722584851820923845033995305303515993354021567293034724032981332199928001419607509409822040813351478495105975005188447970873794854719683838508144166996595262197833599039526436218519118326064969410404101147685968267401662379710358209913640665560584441101583740811958222715939771542398012177152145927347885626887978782234907550496403324041464826921850487195191656922441716364931864568923515521182186574303064942917562935673148987179174881893401244740491176800683528785657501351667295370090566175382234966315767863975064241287357830951926864837544344103839888014520106758922704197503350576025735640003695685851914085304897119958261822283556781915951499293933565056711221117013579110415444780413947321472558727425860530425952710656149717518942060434584425870086900852329895699694280320437009876695459288393264885603533073434948348308269235560105624636031749885344245588324415928005450659875888818072881484112861846454025329300040665511760705995684028609624187425202761741168907888985365234347042246344292953715624419887598896508767178448913016161036913209866403886813878228736552974135786998311967174822421162511931426192467382082620872490548398972993193522113661868308959189639001237097319926566298574382212732735110576475787996811192051119266070909667042020778265522937067386090599184027256241778568168573473499365547985924070534749292177994507792436956817558093351080359476686301059761423722564565325697006735387301030816263700030617274009949671904863265711931255297779657408033605024705499913677139972005407180155528939563806524584375474256285726658890491312368609956076617779709235872803687761301738023391843327750428586338728606809607380688384270478207729647030511413996708141841069780226664860552293645916625036245334074308898182932125528054125421927851709953726048844423077622700642566622169063765920581296282842398310179348660149605338725484600310264265085891616647293148776595870189129426825406786421670107534149712873049733847989483361398229468655143445659464845919099727476901484030809302616125037285233190729989257614199903811608303560575301770931916621668875626529744559520329064915130043420185578813110729973273608597680180942468095197498708606384188406173317297345185557548296121527009095343954011397957901148568792572845732023680627796101964515981062531357308602556901025421711813433651063896888375625555390311380547763964638799757252493876644837415511434228169733219287963241756606355712103663236864585861141232822546306348639224244951727006650018253910480308412301377478170810844237303075082498588023570596572620573329232356769948204535576915720646217012680110809943759751416792112186020773455536689850882108176728421399033093922031868331230808398494130145294922325825123314817984292035052950754965674793516969382095920011831192572233228503676770163393881251332214772984660120699329949228198433919733553226627595485919669004754358808141132470766176464437712936358139358208719053021975216770741186324325309235034438361037725097359310401791409562326921701984406240543674192412790092156567964407075583741088451092334683734653493203611515268831121075820236227858327313824787869349322101190782518142083855995771594501688565775591674439832431514766887964448050157682217542160404265571619609890721164741232284454024947105219272688518006672464015567961148382157878618339473951235609305444123024140393543061207327764537336061761969059059809925323682209933440205410605673376751625121201459358535205281384579282123820702505672899751196573593925685541534302488686320898987264686379022839715687458033124758575471682513003159361457286976860660264703316376251502827301959693817679840642674504842185363305773884792264304648826430530743439058404804648129254982468482947014906117755394770919548454377980322707940262115734223566154909046743066467838851190616322631939025376216023991882365573344838959248451524624140653927927470164520441626122427791007541062301035774043384592975848169010635706251365193934536214161187329063711588352964026775225466438895537305327007332290231875429658325522638806700623310395814298230557799435136372531809960893992499336550008907205108072273043042033015057512317202426991844767256715674326583320656954531630217983556617417200478951493190232770015405184804806986961111670203289762640924423928628293908467299804182570911464583812376878013181054121418764273117884929468527338100734565330579957414249680122542020273720509215508623735694482469821854050573344767914724862239795174152382182982802848898221375146505928312364365895949099541380318731235082786053120033522008395260872906075072718598596824331524958625091525283077855708969452411439758569324300044595655847373007038626515425484373816769022142862138816014376291633451559486260241630812550603343711208400223861704785451033434053308034276357577596863715102860648895529448388473855088780658944285127436253565629584001060465492072248101499308579281890329598770186184913450469731769183190087388293707887396608693080015189221775245641559412096063111598667964471198101585224116249546088208688001429261649456915466033931776203499991519349149582390115067912384242258723233877070925467682844566040092101504560663544486763540335675997428399876891297479390818124153028223054616149723145283426910292248833767821554532490514698902053014992998138845361745007512708643373411398612551639387995133782879428238515205227320760698362346942632440834894770702728169356170198341228636465968005598137047890081870598379268948298145439490995846353085388501254925695834351012990343562092714662028457045110435753539723096536637053928651754828090742137827795930416475435412242037043403817420568787844389966115421919972037931846740281992031863785577044094918958731746571073586095060713835216675743700200272780589637170406380430257804777773463808403190386856554832470935923353742507287587697675516641358073135366711034382363585909404817201957850217610131621609540111989636052945497160731658020730697223024640451851314637911856332306044419308791368807822701312082774358782276954014010993528759122858598466727073536992068152314545327358221741353638234841865085715241206638689021616813149517696219316345432100143309916622359462555498310039236131524530823473662745421352206089786072838877221131681756346122970040222694477018654555854227361879360378067643586703936645957768367620980846508944495698149125204119235890479577806215422031227750859551416440401931516412444063472876788423323415852692307372492728636170168077355942937206938738806036578087600627054217534638324037310220881164821994532273483698583478105736638557787237552423361940578685894151610345604730054200628303108769687356032740840680541918045987325582431885740184052127267714709453011713670744915728930767176763001411652807066469822805325708282911500118852828687712582507467067300327829119311113541528371353520304879282333699955862985415856703967410863986001111244071524899867179455348067035137148325503242695334180843902386233108763855393710361060659350848228092577123529300429956215361106946357898831240068403873558300976227274207640327375909389354125714208738372003532869996468518723644968911793248080300290288892039469377264455323574831758554617288031651934631697440530137820766338663261794408088852606978023679591857254824358887006221469422481236123558241937634252505693528595325043740314329191650200591268263027085537489435178180191890418244707547822284741713932940531328772551409554921509319108356029734852198210948098437154984497914673369184842830509579558113374604881937942733908375545854872025941127463229071089267823709068700295475845504214993025390845271870479392732401444097485345907187375238294797680878191702700879469583758080342773091627894685487226972911182825080659011371456843655035263542755932989215299595009587155539308077331497862423236064190349177037443309997387669752071851891244986442194530143370037007692566488785603365876432251539415970242953035064137861862142577966187555470516841508503365951587361656078604110150995871708916644881664527032061438773614390574696627106501697760334952292453173354133496259725796110346870582383781113412167671760245082534906566594744365756598307816654673359014121163043598226344147572114419016055066306947701741685946636682206233050630545439175930906172070813958956978059519354132287342595915226249375983481560854716711332558840215126170103536208778825173018028483487240112109085341937045841383388814619347605932227445380084614242754357177984963958432242171365562968750253346292120407327468833552598377784801595666885192297293129008836188076662188391912209795935587550444820257023869385429186806740749531954735089514840851997392716021354725502961104145003080208193146613304467269217046546394695459642520001922372648425227474940790431835080799332368539219106803240142579802595997025573479658517654873396247225131673173425363571075506213211466230586288836356981267410064689210899514813784485472598590616017131045444557830110775655275097768285724454988537789854198537781227706906630914565904304505332771944363679808171120909770614833476952308065917485009712248237224203165640101390202446297453285743289424354130287205865251279626057240876038397765142596947353008588013947440510028543570794400649099487552549138601669863415069858215280193180027320095817824387065091016184118673521711165112638477721588094771142140466029549783987856644035509956498936450799926426765542106976018515676425133947897537928130845215757704916829887444331774874507170450864616160093108333242567863810351152092767107325491090295687170821732150614632596873805435891791162583758143660697878162047295933029777310660942457872942507385441871206096881553994474303749058647218466879224781044447311218886511312375180531761889467426164060528359916600313110399041698602579167985583784369133074896920140087444605947251526710840993516847660073183249402349803579625568494140974589747093629326509972064206798774444857966707809897371248278941155740735888256749640978646407372580971766949289358984434918894972040974178963068124821416000439664116945907538239163799206662311726779855515094799399587627208159564133843911717471909937749053444474849524693492857087873962060667832695700732672851125074037074718194839668150463844677058320169978031295000837115551172114983792132170310849400176475222512966299650478401547592079009900967035696860552093326436191328610009164733185819098985754701182992830451819736501984723420761933399736888903945429157166758538118601868866514367969326117733370954538025638603357050662137718527280298619628651009143988310127506894833052302841478034565477253675913982644217224610401363426701512520344426319322098539784593736077362350930169908206197037750985575666955391188181792145467202202314375846781572582282318331249774907986293458491048694883189554139883157059533927750168694745637195683816156286608030881052962914932463437627201202319105305991027423103507022094194495316233485050145331567597341593788435444235866781042546237931601081245635668171176750562030329421799058491956933925390073324715138586512037197401210111792268702365542361350801376957503682072895138164383415680441355957841184186895492146318749355786360390314070220907594337389161084492670390422925892461979438834716830862898764110476262360092080576619018174748694716220117761012771972353478072726695891652084054303126262974253260222466834406956004011396095609094179758425802413040439778929965957070726670512699015256904712292323606970146541694649539326408082513810100299711237044182811270657611966974692630926008538295720667135705757260984308533630039521929103586226536253907246240157464733350939462019821292121891197447104487778617253604237077915461879483609721052206588099985877897914474722656892266820703214645649998550557620699270187041970910553758099719384309478808108458109208660603300450440750033288709109509171312683495721096525560839583890475867979606410356048580899065395369510466239422621194321315094932918895590703208958001575851808145709969301284338069664335476272754316920521184770602259357238927716189595357043882792860266174189654877632508187468683426964017987546844309029138248761921129232722550363033848200899363964990207794160006567239326325410138370001491009879025059314691156013357002780126868411608380293113459767536250703781683393501103561269089038822406795791332664695760146371217459523794042935525223642153410594035369493866155788121757903123130209607304897962239493736084731731921240628638743498295876640399453845075268873085275682614741074846454334769555978700853840983336802841198457786479954163362549592373346501875482049501567994577078816461164994999054680378937516170822029981329298193256357164438744643079030790097073348019625294094705298990687979239528088809424998192794664930646678891172672128044475440285974099698177957262368035456949475164450365867711643637864183968913561761747793144331521543144162847363385031247829840052538487325436917808825927968318102218383285516321075155122978113366364622599429523437028453495958992901803057057216636749055007832185581401695127487154866435506839191003644734732369413571769027461997883364236781073997311242839466711798669693289772129096052463700179577323515490854673874407993331368328632272665319235360046890360433995851696031736908214624126502589313784156012743736843344375207348679152783382506621069117750355095547666961481636584844369992673703592393654127841108586165905159707832239615840763558010338173448201553063474597495596559143164786586113456415726832312178369299749353392598732219675941946914245077520159246135879010152680385337061748412455633887619417773354748607592100550304670998772614917593645386075798799391382254711375990646307125482709193596411826219842834695970580824821954152579664921652851176686763165528192013812006437491021137594495773378283385427911622975746678816617594463221688398410298425118827101184658730150926259458583208544876017906514507093597474410963026518006387079316793980164798939791953595143533124148418676528294729581844177124019228916470279243234241531421438329964163260023266633521478905031344139656624325657014002644121850960646367969826734411553522122736716201186531100776281547377561101216720457988218321943361887732381478533501851683013073192805967459504330561667117443041748188441204221355744264101383253496582413167565143319242843709760805539293766253979648886310684933439555925281735697533878874628145629626989591915616801638770673813767004783572066446369844953023536509825732624676733294185600754602994857307376459234922366645565567631113499269496556046610879030293412976913441584865119216142330764043542813014110342428840270491791939742486997177498119391269099548780030442727415683068559055974062486178863850346211180078617787569067222243090882424973197465926586710609625822773256464320905206155250423353332210679394792999230649315239773596234138508779251347280729704691549755181950517580947534307382000863031435140726131424954404701038404646526469982702036052419876148206344910330151376712584968896138793854861192208897544251454877567542335781234775408052499865576756835519727886115148435221125370906156805498065816796641848802977341965690047039140141127466653015061559448829634797851796952098098887133706650187137245770265656365298853993569377906687836338458357360597619346067058193315557888134313389281350432055509230586542450025127881513125868703274487126291170172433811650418010500631787796990493595987371624441441605993188770342223982971059908511626490009339988742116119775878883958969138475863309167249200534268169859806923107074116505411595772881331961056865318554782112558868347267714823326781694771609999865450251964736830024227080548027808545349508482698035848317408590938937220483202747353141967684538983094608995215784287197412710008474871719268224376460881298833776499468966059963145799281330872601035510226500874143282719098330649866475869144548905103389375157404756503417080785011480613342800100407957842330418398390755155383556948069837410190000703217361471839700648507223210108136546155159164312484193160042503684747786517176488131729650293444742581312144494733361685968271129076608317906106296044994089478602203650845528439679957797182107898246700717261220292403082549311295913598941042829793872347672164265792548994981268051717671367227707455480402683760658905199829924361628189770835422444932822175601455313279417258723909067111539897480378656604809113874143036612714779678709422713973215456723605914270379193496239880837161603104388426320072601653906804152403631543311949075218292055014999644939845346890604124510789894751154109322796203558087446561338423764504817097143530781623652285859402357951580162477226276719266899005968014827481012448849081405629107927283632447584020764818588413017975963698888252945491091420299129467978885262901093648587619460217994073893547324054861654400885248420971979130663937186973500003138744407591953750667005154186683423723376751457878426458996268130068323525164638086880381548200345482682060852975742316130008401704692755746830652630770133508623447194001793343656119955930691921472158267281075646190551703203594574396556336115770946233041197790648497895758804116717084421676048396030202794224612190295723433767034584756637322916995305322241557677891280141578644863293532107247776723846370563320726232661355155448047295495900189816893501243999752127746149203807626058599389532153225705857673539631351423861576794412621675248572951726979745763972088604767274439828039920082169675182768511875516726569443762853075417002723772066195880013185497626408560759935902891057383692251420565642129067343607827779516659639280609781622504292708922716872909836709587813328316425441183259129198273807797656279844364935275380967456534885463593263271853810836089057875648954569292540072205251441591424454394150240270673446046716696139568309295820111467588855276086108670973118067271410492977553595982578243246778570493712788764157793150784049917228177227959693145051086800560294812038389074833420774818217499715153125326000669033471413108739082747584938490838042008042463404587568712321852706429379669537467267672720409954728545571730883969339661650169505687246119315261391421000674156713210770742330654041991695550688866365978423170442889905490440803726402472505002251803522412680878973449036381765783091526854216047437564553650373007719615004168556568374290792285832443963616568488355477229819207071999019760633158221141500903552318285088893080297326002773608384624142213829258750451863855663701617514103280766788419694248315114476411677898872890377464587502400209335252040304922911875315819549342877968180845546450746572372245862198905428479141928738684233878202396042309954731397250330447933872572404613432095250727966315709831857846839300570094767249565112916256670111558749516644208071933230600784250999455651217540639350231794982963953393857071830464901120173735401028636290467404444730612177096801719834069568589366282694500394373173652859367047028934316529873859031372581478684640870133248609415579516095156677358074110535759231557485691783829564099503269289666232697975334220667382271657016348568810477249400225885626244598314506925825382992467713872994970695185494954881390100658334599875162795680899566846223352113850350775242587014934486327275848230260347194282573071787243281921419185301430915728484043541192306449528120280886016603791096556614394061058170287956371241922567935547513576437653910257442174679912722137791273176292512877401887243421431149343140846981324700097834917654879862967234142136838817750039441675834061964170690755635955860923459674869753478806112110573709243659015870102384530614172175374156949825851090598638216697496652037358109365715901628773195508503453433712212641673668107731479120659181794955908817801119008664556952840415576658448253986502683149057384721567833302728313282845049651127790065847058657897390738338993697031260935778142436539928646747882228749687171054417581801398020097332364370676269852751725063452493971920390901564326907777545036461790672162028232347180766520267120474307311722207581411982521005979525876893404457671195243949640511243961324610448715704512474729633738890371398383191992597299388543763180547845979118634877284217833718572527213341080688817436997441248083797731195009739598388606700169214939776539009186699583932442016953044342508504697351970902945427977160109599956900365003334958386436875857301407184216181821395573202827795894523078095563590831592899864317729531407774904930982329386693569939546837410877149052590295341981090687544507617115689314080176610973254682589038427564558472888285154219050141246109626386901240473050854212057064576086484839118921104183512128545070148731877939405904424231390521297403778265080104769678497071971343431271586039366997870805870240634829407524609213426960181871529297846377012179475234857818952692743240883267810092930154929896009195152783546356427562641709873464068031900264916525082760406967819006158728136276559694797928782432351507885268197435074395952098720362439072718117511988463119356824980029220665065663475908086088181713911507463116806091333201156337323458393265208010363796497844126750508524570284383578287175472147436546864568957491224428927438502440886247800681807785819322976083914422895618852849494145328248407922954370585978146064824874605152072529900517978181391946797860480111147045207570650372014073827024164565981628011143757844328839102711755815251844179797873224599555550850207847933037572468353481697678198327876863605437209591497507762242110819317621584980681517858516487174376032129470127923126375950336694065782646618370082288361010661304303124142485785428330245546260998034688549208304088316416089538003397052148938113261018768361101894036024636347750507701717490870977634488473450508762938392865592772378699297224450082987482870917704006006356217840233276826570934631267535552831758970426068919371972172402832170008704342643789047268398176621206026991854917037391856996757472519928559295040690382850194321149746727651089129836801953590212154126147698770893958422624488284224552148770156959428683130492754660897319473054597420482494265932118525940741778565210463519032534208304704015402666726804421245010917153851504467029598560498839084615515128302653607528866035560547228202070106738418856801475825191056480214301796898925685926874830986737962083936505904284560219019255035379691490013787825902786642302330804809149513685343827325849368897166868551115802768274080637815692828116101844802418872623231705956992203667782848050189824896548037023745892442361098778370986113521140927681474334150791571773156408681434908283091912806968288369821818793725682138063437035629011404086145838279031087085062588732336547454787095521918093125552979458249682521251380002241383646332891612669453724988398835334145961303174442196945875164510724932424995524135187665608774074027213061630913895198473050919578452550771212766976368732194085493203100126254563837856984779950243962064332947635312501743723025123900191294343283543559882569197688313058795133141668863060312025264724913456674152751916869462913492092102497545407601416797073301577389775130940359424115543034720762497313751861054936782507679037255955630950003751989370475200213589865787837643414885723209593323361993458332785683262232049337904909629323008803823800092316971495493394729469217761881466861838373941593555745719674316612099764920543497609833456135762088818340321586352070244346834408072250642287887438053675456853424363422344524182894896492632071899623676747485163895432063140037659407130873777063233449744849807264671404183712435520712525716674358496086120335876651269292347094464194310868675129338477563266441515358662073650467704022698165430742295057482774532068955901120822997782048399383953731997113287939457384623482096350649101822939227316914066193849338733186722607708582626091580836511167866176489704112845996547583861474015977240253096196488534541576626315712647679848161224300167675452259597200950062266545183385971786648930834261649250275701643584652057309740730464682186548694103596426492987581426385477108205911069394848933805921306901673262222529087089414596496547167446706265516927833552093674169517159731520161658843594342330198376916341537402973411268053852910106524061515312440319904232259851778307201907940370525430073467137520472657789668067353795019105069819814039108952387360234599980046779428303469774690212072476328512186135310354590417508393140697646233036936556541210866093328884868784835186162566631984209199003524047138978004531446191867324791031862065558716183974139115534773022584284800645883600912590888559119421046675430004750537104852411870921320374302744331908666795888998003388847390440312546489330563588445156639537155579190976534775932555100633395652986812551546287409561071135673459751263400049643165634796690876487702951923800112006935022263965177673702057398086199535937275120168888942992473548507511155184238281354785011064565519440537444897955792185019737048703607937126749980081003579775364857581566299927170274307935860267357910249906709562247686720400073018564681961824385439559294868337130384088367889350827337525159437733510854964390507727700093990981007813877477739909433637712009155166585971515655513178071110303220627002642739326717019471879015036619711579325823180412496856008095026199675202396345792979845816403559844555175613330257462264022131788599199683307168228274709104971700235803602165009192965311553657732729565237636913751411384342188735160217386752344115527813834142496771221975986547300378586840469313620935513389084658982236507920437857873574812134491066181732128651808439507932969567077261714860480385725484212173846964148498988053305793218342089238117775926131817791813638513989714062069180743153196812193866968467140019413651835260346307986294004274548910491957274336909625245450498753471487271458112812380942133786223322652242221489895049960865969651046972832715524223092133957459696883276888252195818249951022992141625306254255604374771915664778406831129258576989834879289884085306944152664747408294298362452713384236337311313842420231256035553259591143226596052415060753846920574324711772137085839010754253906330495755137450707394582367475498389327868155129498495624698098291979229345129621978781233681391592611616658338552135138522100940747279989552350642129150681494365139928378685286727512191572067287562294490187741938965884076438633856211394775794951716213641661334344985923511218802903427110653548653002447796335096046305630374798171446557760712746160094008440238219147790706311076292237437048987498689709119167791235880841499299638376202392838387662152892553385168238658691480367057744121918012072342492659422289218148732806763320524068258430860825864760365514568240240246604309660447753533295810372946193055003988353702240806285735185242255127014922807337474343538602152516484329065422241722783358754660530889727033810525980820914863064383459568146160049344261339319658107569633539792369680323184493086004059826888696980195934803021057254358381144684037819613870116410491889297406874569916086800761186294169975817118430938026697225356761895794866002394801250147933746891225765715788647210857314843000751243199151242188475434337749457974417200583244204736510505871033530027647563937550651602615075459962876850867519432317196542823310410885528628710723792521590894544667026424095327629597566443269362090312994102746725977285792233180729080889222060111717407478079064097012286428510785408327679664883057461318493134756635870257547278565675156625902577506664061826117203657960463433424682165979405146208995985356045516377901106699006981942357594052224114621245952901682443153097558915352766250108261201139629867681281785483249875381310126599948763502550637298249477111337255338972599377972786002792702396374146458828451175856771304405588919229842028495176729200830651345178998044782105226698948311336661789767018650604576277209601510683585198145866764160573110901058720502640714991697315591678238518382183934575165721225079701287858953150598635618143762777896357350424953834506515985380202773066483102806372065414978822186588737366845799822286414517397739983865783428012840470587605631150464157746150498564139819432601154177195931650089799271065289265086816267767704595215547115570779201218150829876126227433440811393678748623493947496105317888737226922680071211689383451929447359439065042070396711478961772099262610710615947339589360105821511573903185370088273308041428089994830880949720608113517061271981549136949428963213752084963990146710645875308397526461011660867481487747932781048167055088332722315023571627836851878348752548050579162322837481784129154545213312151166835718448854060249393955067139758870341247334489488069864769431111718874489917296745257110362484200122555640849888929162014723448213742745775689118076482338176738654133679751191033174514104724205408457191233863989620597705445607155246747483194621244278339646412893661958061952023493116735381999252322699336863525053319169045295250654261423593301449096963003187944091951130761491060925901593950398350193044711164494231959338770297335875955684993220483380327329631976653216665496826910265753079174337653484152556191614257276770117016925171252846582094752020836714532990062641414662440268558313096782491222194698772180545942237563670471809261175895975446986861756830560709556127675889095416338343778842147482494616768093974220367539555874238090626960553525020538839071805262111878863264677722369448191625080988048802332608807977970428817060938047328324619034361132813269840173662000634091195606058893161904938241695404376377429478007134377506627592374676299138418719894423514592350998885681449513467995487840501807416417045471328979785542008803690318236932757743367491684471013743820760621525207452078617594753476667092233522408934726832324933978762399038387494573455711882838027428089119837029111122766008372449790942443331495164212206583767339579637539516408199104219394744105334998512437021365143521017612307619178034083529558061905102350986335683220939199354209600660742471147853572006382959937414898244446720003614782608879969160962985154829019069418647607714135874585770909623429430831120284033209856688963494622136184976299846501084877540852210590646336903409259441996180695161666540211872358267774642315117668284458962954063882770367095781532319264243800487779626527145013947355244618592007169501643558798126065829386445135578187419216684458359295955878041171542995886420657607124227988551942401190868097858242682815814799320850380941729842828826795344579761017752563005478972271586699998645206255303129620013007004562694775697847293297698727870651847768463713335458089473107907473109120012965404899240030816536380825976830344920456335700748835055068914715368143047959068882529568844298425817822319012991356178726188196236430939117914536511847922722482263158369599575548811430075224118082141178795455752650996166375121123382922388171474497038402115185762012990282358532845180106251691863911092517931429708096047110689490950504901798604457284732942331031362441843163158922548903934024087234799539594426453798105801740405849207325454265949000408160143743350949841921256906039456135318098168033675704724661028379966181609179170110747421094550992905066068910245454962683145755745132535688506870485289673740329286554172050792891695550122096100885606819055566226809051843964560754465700786367447389751561894331369908336130383720514839011209526165205910392968718508993401778557679067729633813637150362555532026589799380553811229114237194435053276444663273688151285254747152698453442582334453705952061935101301174360827202660696253651583095662765047205140519651941553579245160709795876897880405589930972292684739013666525963685546599307078067848325962500923645245955906239068926312246849239524691880815474872634247115728330681236703950796520494081634972518985955357356091733742086860214484328549951051828241262616334118943551839308005928363213240974215779442022436240509891154512252005831734446527128629143924120154878691784557686879832823353039923842323548861602817135878047935256309099643253362740912580119685752665945230721044818909033703579519669878068224773445691111971497803909828246337203108993487178678309953738563370914094364796810864520095720149615070055295151223172845524045429205427913697363166936889522411502814612774172541278378161094600694423998476724897820743552300994616163450837595214293129784759453279427290852744488674053100689116167176572923791553018439611977591767922627190867472904665339685072239105805384709137303367678113488654641527786419190048914976578864978213673565703717832721142335186390852420401620057512945992147684761856850079853524967509495580316253929889112499209939077424565843296403099599350060427105922781512612693038255182180195421523157942745977573028601451479262594177179001765443086349026659010069786307278976072183073453339841166986492225702252026971702491966454285235101522609620902639747648535761014857186544985215804313811015703838502151162074146069131663173856103315144404576748492928652191588436803006014420154347379501957213536109670630658193058421564372120199037193288952485741721399892532064513443599481667422450930028261058210029336598789792757321011534542456799495670932829490140388386921205297590932243921779539619362296445578374236136503408950963472805827322833118753272246669379515132511266309271252701438764584175362238762894662807756381464327839568543495973285463150001218645338535395804842311287112639405624076226607192180443516511608283604108845493932128153820522219546346452084779842475114322210547802141010172278141096173820868380536396825751687065860890562913010392884092188442079711062478537151227010956119792048020720208336786642211427345049321235070384359973107043406294325671454604794327555948412092923461005204290606773930920006119570354803762758748505263438286669489527865385125110158500099850432536780979238408948906084784595967181191449542059885145670310638996025253192960532537643799684323040619750678190363327012651770098738261014283437117372478472819253835176887766837435725518431959464566767105124494948147345897593044634616104807463050630687120842339763431203673489409564689942714110066649857181701234712741532325349026164866947342122090084613659708080396339963645680657060896858545570732399124428123470907985495902255884287089868474491854869161316830449305291770240384042762150385338267737344270307142753004106426030208816016638318384200951869690107813461858449383221411940929203809160733761950773678970532789562694313483065188717836272036475548562770323359290567118113988186584257413037825016918701629659519951331582858884621418401367371479091922567906597252424545166195065076873370753096109936899019804651858751224280618080905821800392752605877425830332203439673062578793959656873143080873470582406749752885709076270946544382511898930487640494593365195408380987886958233994032020339633545426854641111846177655033704689457288157114277301533704203220130251650849251587892796023028226652973567751190837670788444673330495342529736780764928381770721696662316120990092643194499122612034918719780845043900159657147877140332094979381555581570501928541207148011490300521956920774371293717018257924663549248621791614454427429259378868547299617435389200883689646837585865546032826995017995506228314635931721625714008206752348974266763853257519332975767932259584022512791584384623045188989618390495646943552542169942063385919687267909466504576552475373263254199482502106000246666148750652797022917044697017298182139644801390362526395291010935485418449781899561441454356870676350668432088736769967758135826870533821898965210585274681605578444854663620622742782828900424147498469573247565560179057304115226115883826686189796452973081011280879526513632988668349989076965973169040058830279208868502087690247355677633128350051306391823957016120884427086779244608974470985106717171399199759780617427498452039152558101937916931320438082742133450721555180218580089024350050826503935976308770546504613030041356666868969598873417993826441408581205930879610154694325176067045928859786551195412679341884241980182411769744647504131809398566831870708628090545183920443050203829261385766853805371993633016545758478523377595617167484870921022661734741467853074250236125919108650732932876998715120919264009021166640640701339304865372419877152822572436703803607058838983674839544996450664585997388429639855290880598944842244641700618999311960322506468496084056238242686058607696359219096476752532617904991960587146991192841084656914219956942411618222830595878985517524996890210589969320117701562576427917946239726469130122954034106246329626314821899075185829357286192713831200881370217890071817953127185485242007190075050642176963222894135654130670599677276402901309547482031233817645592650256084792151604971367880378512745817536350462682510119415925184901807337034965459648593157354911188301012433964850488756240194157752857686650807551648466386438209344578107839592868747088838491824887701605264623803708535013505164927033529743914377244413286977954812621063212400168334444806541799411310047737427900461173016496817333616394241035707325337354086317668832098110993050953763070655294830519708103904328208257698966368702941083508164539477352636016954009438878052958078217228325643325771766826332303449900478079213109117006122366203958803097882820350158795392365170645017920195141089703852737181124370363465920420889363311606649702902975656652657907961354410049689651408760577429927727112451866087034631556729936680399594855925735625307982475300361198914316200424409432036374789110950383538327823819209450388106842188846425472459628856573851415941127248568012185944982863022072312401532708652021420364805677806245640545398576176173771419781945936088245387821333238379435463961346758709583490068992893910105242249062826563171292289527205321696661321212809298953260111919056048942767663085619213190121712271384312451729266584755420319803197428948391818781787685428129537475050948327295138318626943792257914704102242257975312970835764467672324445673843247849048152968890493217632086167619534057207801455716123627289440568952816322171678443910454109202405590725095702431358830938074681456013652463381277176295606412903952467724589683391427199887386573416944416076075998409644021185477242876122001681454644292773642525156550775231300594769472500914997115224595578537603710819271074238503680489041043205173185529488292189150811046584687019470122425085240904474705846518895772200706353663275717042833960912632809220431797614594582165523929925435320566720129891991370303944954083989917400920613047367680106233829145518750865055478821401112296237009736615969255682554896052372903721532737857531916644462183203068234523179257589540260247455451672107393293395639371322067618474113771821907645417378618610943700016505997766830379205444851746614987569576489341048474177938570500680618663960325878123464389730297673742714615865859587670788448992063010637147108491998915755068297577168927126784472637406974960046459880074349462149845615789689459800924122747696799831550770688926282462502522111311949431946776692165423806236761722167662390629443069840143229153650772744819181203559584218863372282717200095679904648999289718725432750338322375685374810951937648950635518322020624381896212032979783044665062990826903117214343115908736652221642288298482630918682400470166657980632699931562347489727903924037736786194296395611220542832307881253758765261410105343164719515038947917475781434741079938821659509726626549276866096945887389046265691007492161278333392805592984205686825977844028694711639516272550014929031142947034621786194020147495936629882644333939543875459374620347855223866516394773395746125223750568138061047989061415790723401460391260530319218579918329096715564481276772142416963251144891973936094965275415147481896403564445801107902288553283750794433376742181050995396897621432586847947955499758123435409412028547246224486725053907444703602887272199615659783297622962725988044164169969289387710407810786098496740699732811586110107350750006256315124026418555153996493675092367710176170131320027998286622914947770999668234474478794535587773927577633751340569063066153600922476365385030845732264349285021750211165037426785435232365356719600938056381471837503639317179036075378082723662696169426302184711565257903393555495665382465120519214687463079318645221752174732522384692930849763422104388030574574028023820344736981140823061858134564158491591516426001112841753984571651167822350689232023722147801159317124469850923288088794495198866655092873369950573118107242196667719656553251271174091193115764896217016630287491822487250673865052411417499914041406313474765930144073912345515324492908379067074745621564827067978051800002181467836826803579840610702711377828466141759262053609895574084574322516292693608038017799098421618430728674448997149441482425536980311196334857223404853267211132092606657809142663164468267421161830337898584024480251389290989403240221915313565942713874182700304891116837999416363695387667739495401512518557533014732753609607580706468498730475991486414539478858268606502580574285579170452314754563448935238940908751275702023167517237917445108159506964964660475823575932575125821277395727446914015691051974497687129858000534758213705750169899112503657231665309953026526794511383757883896057466515407577854130658344522265004355173841851114172447532068911072960202731848397929137945040869837876373782032245573694451397112263999214810404200270344404937476989852169179267388833651254035330305998352680185819657911654955737389642643482566274487499249572859388331987479863100981655876598248654041442109372482651523671331158215737182630196654475244028963876730505379752000478598229577568577533185608362238753680954703646775097204866078453004977605469650565236697520433192469839140687718895322416914826579855261103258209343391851930702167762333986005113505753234327429715948645587368484864741681897989987980997225671825472902801640685761726040737040423010548136570381234989460909588215707860607266434102144579275264196266716487659232230230276709640581402726825013583738109377722059942654576525717106009556113986160460964180062412695901912822584864656600256202009310928185961154300005582238544134402924553139777875931487133486219839496574495723920795863092778135607201187604556900247542592986108836770404298470018836687642333599607835493524154772223348229211167672562326707552964821167671709349640998741610742122084453884246041795731253585463723215123335083389488690534113106105466135241219076043743207150748986518538861845554728752521752984144189855227354937558904949820471490455048083119211383729921652182872677027326115135944242400184694030355609088212823092292925504544577693894605427205083307410487330979341578202824167979492677551769011138659180119028385658130343729830994073141453424006576689086688079655907224465421820953291074164789314295734576640388839127650909754352149160476860943518910296889944436785402011368595236072247313574652024996900448135335426145964562235327365613093337700191942758373378844905386523608049265305988466061697039279467784109986982428119707061176496060324741087656441897961896812953320875148219862543050618338222999641226063557568515209826511102934145497081788387344519585395057027972604150918510927173325346580231409908559695638232681329760080199620584721614487308229339752067294978518347367725054823105961339512249914462883815459703356254262691222247354724589388486199674472680644059744224274628946484791163259773318510778986393047225888528231839504489871935825429380761727490835103519115808420347810345870332607527039687272561543147631933196916325973067048153469901715018202477302527407781814419738819721154827030522933060914327240586566026969501294252971951541796265680892132407315873794867988901157881662933882006037449001920342029866968836774222563850187241428679452530921629893730403051241578228491695968666519842848551246878620084834701644842106074783560219103985877629451676838321661468571539322764337755331349818068319398014348981588123413091092870930767523817705531843852301878075329313077949444769961153531443776627135466948335042428419901359251685578074111285015494104005000222995789402834882038777281283085710602334611024196876338156005729078857491713276317942276859893419021861520871916161970237557800686229649131136373753045466571265284523322204049219260280654515886151803305993555920156104071496016090478079082503542789324615121651720781345662954847615398865540774367078070541195164259014854197286871559678129959885145461126907535476581239323522870385577964979216091669868944066632607147260796579745639508925276059136074523165846029701543135595508249759759465001555477391955293299476210861923453942706565507858149826993188949023333974107369708345620066254697532623134365491998455467586627102004475084602197258111227450486846925983581446779596691504995497946230219716211023103314768072765208047410430684951955271323651893351244477709687801818826448884836108143903030255766539991112776667515887219447207386869725076889174151841567945876692018333997033529069841477149602947624973261179474048377580165653671301085237840697713772108534205297430258606891780777126720880616420768919827238048986726984672101033703792167292627100126684626235215210096362336360057988908365474671298584606745738565431755918875176148075153610564663384308232861331397842037294249436739925418363271879733135152939304830059159409886573293201056921862992067756978292521053982527969270193775776723979166672606890264641750259457919326734295946329739579153525838635931459309352913010915088380006360712444283659727863106467544515948545513490686391167361498959660124326480728125473196854301528515699769142555379328849870584681291513770608066182021779231199661454349970897922599349359542597939470798824908218737463173029907120042218513695875213455925918523069274277689953021180914509728614595188054694200688634548763604477009687315621928182634587969969645930796881974439327304720734718650796829726914716106251829392777851240261376206982028232413647842167203630583614102075297488770862776523472150914199579205741093017732853805437128775207037166953656438205017432891532731951668958286219120259159312744548143632417497848856260844637617305347820985581995275984957008862656668097817658255923941036893003694921397517421394494890811520578027468532971886945232431772579460526984057098918957671910618003957344596766201409940505066188736779406774631664735907607604092554901531776591182286746332609709159397387995696522683302452372775472196722684194429189914329390372750561810626394521159153959404717643457830264312573087333760682354423866529474565865041341322716424776049163547188821902587345865859837732574485433987390805081772680818398936358096443512119142997001331343910996492567835979049903202511228020837452466072987189018298660263384753286511432574788762819782093610404713212397230390737223951127491341609803652185533495457616608184022798596679447903388448681070412490152380564209982912583543577358518137242801793606403009218892617798642061165531330173872564380690907387400817141328097191283683997616988618764336141612930533049670952918575242483680953321731787381741236682467637519392285329125620788909341256229403139797684114666750067482929707152132368809490010655523679775086007554922278582420985092578773178455454619496111186244430813994250473033449353700912009907255789903259206705153409367572823107582545785877610961839250374880574660785303752340402097912523595512646463963704898539679622376707910266048110712335574454151340365880299113267125660327019571921258994413427758723228317798543858255758246119659075572412506456036768517180302907616748912396745588451204159176621576025135765795570216037171512521993984561829919863967087672979471780937563579815329399532117027757264571767166329816541523075262365450795789166776688346721518132279187203776919766542359060015119314305925560320032904200943299654572779149301151353068461079596661611445881518595745953533855601152625173942833197054908555882901002938315617449982727739830742272915576272749329991341567507181156334379979145849759758914110922390288865032136905845739775754589775463135343795239189826339333906858870062798856059948457558119077270167716962836738566178306372950249696095088540920842753016345170566016677138181693811998863796379434306988505427958747436758685064391850110001160846846451457229019033893809039403982473615007782990157738135410024033676574915831739337689250888559478778386993523469063738949385489189316479331472012935332820321052277054696361809092617553397157977211511970306696879347752443003007284842738602413607964083589944930981398105702029824557424140416570580387279312490541318982668014380792238985549920082039589017644556106576002384185259170557026624795524130200834381033894044031032646327689150651242175770457297651448610534831886740292462214862566507195745776141603596158446001075093963799310704527790864442669744616335246697296603266591574720153335141257564631149012979729334986116298378311338704401470808453495010457791322480244936935031497995316768684277366814471673884190145053418610411971343339687874932484236542158028254068402838882294101051756966837131710958586836501974218743955399147160900833259109026155666552780226654815736717151093785975563741886436198397169616527346894712665142201607091663167296490251609229304823407587716845432728313540269530866292188725726636899674580910458577722058893318909336334785920434282701853384787800779292172987995660033205139374590324366719839405778008634735525162872089640343634397231557483565032438405406768362947118377708711223107259057722093337146840827556055186142124282126564257376950756587974916712027954025864651299928089807364376035480076761515559645997647936124745914612142573378093804493926810766029162500050208112920754838820841058205926106072874667611654328887800926261955492855505392695508185546468031033264767443564075809901516272488297498650163142418321343811717074601928912573353145555454680627714031725919242548240987106075465007294091247680465067400249428412910121337300966735471901073783909444779209915483953759686329321577543384492148264682467327850409525253626782119095096156834135368643334104984886570544827840738541556952182029438851399994456473166829863362174640789129278693928588069144378872271664100636528332644142538325583787936015521385857818574651912678771589555621896621062092536066771253545009829212398665803576506759226606006405787539133686411769500483189161821925132826269296958423771400933462692636980909624235358502996381108471089767208758366476131381654452371514087723117333376873734370249962384830072538313450321151339725832303331432166588506514471204698918571694287292673151103048957094943950460898685300263443497663513828447327555673093583847256555038786588359345234161958489602113735525505923023965913908982850988399910843317356207977427060511809914324283077739612471675666026122626210553166649756528398688923321029692331144659449218680673228746659106010043692085697836143755838621912781698584170995098549807296388869294792717953021948030106450938309805994072593553617736933417170285417921866393963531797236262903897099257498014399879907606273868064512906641392349037695647894223127615218281507221212257759756766837271625193884945439268444841680310528608693180498362703991679083996874231619284646262561388673387727769613796573102973607451286453732079842879341103613563143111141531901336999257545347984806193683619594360361006824647540467908468635753840311231264562631817198106909206679783167312227472717547396257511172816368290635420562440392939909797959137512772026553515573590062095559575730905902767085675205546847465687708226744245862751057256180568800150262554764351667729044251917876099414706445867706523546777461829238887788726002840683616368062941641731886413102559717308830176458168421539234936443523997114357269376816882242575636920314016463131839613995317833365514998643184607349938330227157855605700860504126303001777263979153747245938402434621573278083208257394630287909719777286413960135968092766628536157639523563821442499960187689565640628817345150963954491753897389221537266047933742600843849623240625575549006597331509737361027197492574135434433577087912702220443086453846541269469905271214072183327087009759714770689583630667851637928951353469206057569035064779966791348713869322687641058312215124131020632570473351633647878381211876544282388546273602539459257555154140922814105845099269167347753622668289685757238728791628740017852264788881740096507096227244408411027820092903604078019584277809118123902029037775776359625595745195609080713560120637273029964508220288347602618210822602082649721765593771455544091466631820398864500660814504803055410881973672527506955116587908519959917185566816869938675201789423412718748159150337685017167738939844907727291878358326516793776426327852618678390551600253386404465833048259103586080802368716897665905135100734059092869015999402211225339772805132474788454812074019048838529168142666321511337809086708575410088163702714566284338241662317570067737626191648431491072850341349659648047415117201176217465344522462331833531821813493700869734463661246541477492007443794257763147809458325579877963235778661061956795860706406600105759849345104210206424381716258194781798647106978346460067318867113420889400021243817949716757717568126923692369829689185280982968338673875593632502765926963665447872313481341765905501251106887842634010006101925931146481759352280976402517867118743062883664866692316379350935681864996976050827053811730930036614272857293063198760151556096384219682186477237173647175950107493425857146480061043035174979926804519654066569099790375954679285413436770340455028316654347116211347665510381144993394182420663582820581083670288372634820117040651949858791660437273122816569385117873498313557679747424542689276796772419238264617035348121201563090597928432790902581980512293183883301272762367822535654707165657192044426723232184757931732634089417332708464135830398229577764874651550263135913333847851136012021663526462516136435628152264233853362206044528888113733186340175249042000740000305773430532064315275261824652588806639225367932195719252722197710888249227420829500229236609784515437443872608125964700900287846293365484118387968173803676789903338191944820045474349141587467000954572288257712116141979573532556044063021107182940726418117881920905369371028095175764262261774161332042263496228067343520819324279122306965924940416766645290941436072668065343973003102753682858580357377116939199179437821423816687753640765394627924954903028373314579587338445113522773599375219235861675517364293136893244142327755777656231299382330978029723157799951018201208833145624910505805601691191173703086340397319254496640573648524491894088557552752081208306689248863984083811782450403312617758856436915466065882080817719549083197765541754847199960679734531584523078284065073381249998813454409577488232711356444527170044296063206635840148109154886956408708886240642071093154805233136513143675114517508329020291441898733204714634266904799437326748109347083232168403320751233553771937327611265823263709936550313629101816033461965691827819880931502909561413964244345581666474927132173947828608770531449617020907258883158126549824421462673922722996787822180665148572618226988493320891938005565184165001449163593648677908768362618745826764653994511084683424794981325100372255942076538841594489383083601440302246959412531040679231361453689207147817307616762341730036781805379603190975001017212383626953485721758839727134514399681599565277560153536408015736063466527569994023397917911402515210797933789504038571668063392089323096941191824295916729085557255428784527431583293172305451847321805052808617110406537438810700407023780655423072740877709730446450341947740841171897470688464372338980911473484789251556296036623422241858192858680535119516424324543526707172106598909198785417623872159974912383572972555435385446573181452785910468465316275504815179326143594057425709546829754639926272083857000633244079152573844519870317955093847652045630627900883835021061352554524067274562555848720613888148636236677353835047850272245449469854179398095122947428411897741491929645339740743228335435903567271029903131044884624967342633618324228050363731203657108635622923477857904924227655071927642841915241424538583548786708393059319105265755895053602555522353273299385555921956969916479753782765245835600468965261493050569325063177134049605991862160164665074562580658927634652238056726576187014925525426891639252236016917720678665427256714747502757693233309253307639518999649973572010519811497045859549168157119436661686524587943868460624878037898679039592904721141459926008659992548607519009450007272965823937349208063450226566093708951170674581515215736602221648751536573787926517882561350742177783444727457281581119140946688747382128297835643104812214290186350872879362004328749029619417507775748207160052647370527926374084158433658949904664771178528127930457849305375440470487177475638317070723141723522783169138077696258912904281186991772840087777024779801137843080543229301815755013397866516019630186394741818843562351121612718276197406035315485638823564183016809667350019125735279006177946529032920949934154542205563103813069927300644465423813455203510856509074655335905698399269748973029979364986223221254357103306418074333047715143742751395462593769841268418248988152336593705594550834056670694719722662281024491524966493202842375676373388279053273439793993539410364372598109449579412504278233652026329954835770487846133901404362324407596316381250918916792128648857880787978392811713794381733556650745134844862522263368366820055605957316995118836163090488746415209299222148103054526019240908026712940910910356276447753902720210981814803880457618393475159189136546749679666625469728989958326573741370850212702001215496934165966420221693208625673637424156606715332372072425453234288870676719727312622463791958286404160573841588834517455482304735107081820527601359033806640913625471229265921394188528256689777316530214173011923882986881402652338210887262596882993352859558946328654967156662160211584834602078283990981309614885994615375675591213175938653405346797353670416045967128238672840492786475111465038999809768854498883787154788257098340622514208812177734043797950886647420540251090575273141075444518236301778944356670603280600149112042499718317368950199663886459350288374899904800369660669894795971836828125590039474925898400733476410778255827333966129629039470325265160891804818099153710568279195098925548180113468099673307352790557507134157538318182993367544577509331752145496788399882775791314153397860182225459076574447526179145199868318602048535738784221087109720880561663269795199714093863085536878770946182621384944155505692834175138070360055381778081424949351563582817140579945375275573137272363893335167647845381937356244305042318526022722038130477046800263444278660478575027991504895495805189895365427158579460463239124079734297095103949952717197218264085711619415981707847628883133723486639632990612479751761018917503474199106879418473864759971396971300336062029280384000901118651767424827710407006155634582948522245185234721986820806543473960365275222656745018969855237735141315721252672954877004382023937945792971766150876824915952044813966983321632376259137609737203797745952539725206623653681549182457325551267274489884792711225597907712361217466876546924671739202674084311403215785588149411199273949604802081860414330343543789927105885009817919581065174906683040151579386103612505345330280046626472728638463482953051919110500154134158773609930904320087575018113279475248127363212846584963992073217927169662297867482895881391378653660895458893092398882754055184429586371770745144887106038932858206640407719690007701532060697246834076214379208606098857637517860910666869991469338626363746457068814239359183543042833015632818532416711755698672642337507067737236061972437546670287721684426416751943431125645121092737047314204585830073156126270939420383820826520364205598358480569373820967517142438486116043681410786383969349420408471045694255421570000072598921851659433652587689466895540195675755224709764443850446926814234792893783769110775741633306084218528257133101635085106517190269480700139836275708344744722849093213418185317412644462333353601560175477688037296082616362839314762654759672857130220055228607783907458639292076058993215647530478854920598482877688003261145073530480342224703609251734316757625046663773962390173913867505610088521575773396420267852800936640676668955127878021612390847043670865465248152083459747714821723586653025702521988833183107697206382848323896120657398223573523647995678239577723170581783990732499425974580040756227324988551889523409184480897509176544836535068964538295169064330469059385395576667937222648404210199794295393640203699904594342394606850311047439651383973904866929078098171005104881718615856750214804212462483558061078541796251519063919554061337115029012553234462295594848912468470946070693057572432614557267125204415390059493378787612903766227944207770819516742302110193306694089840392234611901908368968756237116020657443799857933769800687333011454669215114965648518181335541120650536499753274188028366127380623174299571876242025382313411011417691296115683519386439159846289066451424435086643683967069967956047874314062966178185739943335782194188422837985665144001054530109151882177924263231755458052693615019781856567966130809253802832702507371497207375841328482235898346925283059208313306726558964689338992993348087759340890137283820323689750047787709207973570270115758000273350874112039684884007656837977064447095345186713418750076981650077612120602576641933982919085219693155028243816888875492211040331011409737022251044953741076476236594163451060745891974007693135199368312212811052017864429033588466454965929765802005850582533702620975184392211922323202761566584966296353582735482922789621716367837484017278163743203470328248204480701195237275243537248963104759857257464554940632046308815103013887222918071682491358301769705672224513810884719949882003295879592572696743788934214931018482718954201351251175969793209923991217198757817422048156071491732931414514966713032773841981676384795462537141194817588431958916822598535603017820208773667837459954557962905441379238858002862181376601682838647970208367395420087693643451818488789156410144535175564066155890203452107071587025607543379528524098961939635304065608687093256703749166754854308298407730063925871173392805275700425924668718777325067493451385065536370722054629221279837123640660804968423777240370113977564596637711446252362387726571069586651939891485550033823189311607613179763937983693139992288642699402452718763910322301642925863325890230750637785133185771439483194059817460452456668811149785304783491518325247501268414326844090980594702203376958793972039184948162424325516839472975593692790403543095963909726359004185728923008766541941996231437235577954408715495235313262235233689062628397786494965591803372851553320976343313994698941118443389907436175515753985319181641653744306707904023301350163178354746938113113735706776004559121540226661038551400901706172660807418531930812772694464090120293497831495381140699850618115588413363892902173708211438801591339494130170198611665041124350184479072752946440791742203034110234487126735240839764048963084465528023465310393956440085449452602339001706017432822255992637495563479049458257569364202140766175310415607075264811115872542002237209018731516276053990456265466919089661300570679375926298912256254069138888356736580171417269379318545050414979630263490896677492074943768001118940938483051344264347142236929386511224276582031605233967911825638598630404237466626203481365049322164753517565297294538019844761742317988649318408084487619290367991216658539061189754927261661884720115882817410299950439515234838908784645540222334984291271726285177702780460986276136179161907697075748028483317022487014073357545413544621435799502811044479917950518630447691687928634468886267947493902465810613587450449994725757235570084260897739230829146694537991681295102099961696446222741367313507168947157693444971459189028050536910449168379968558951098511583912937222323856776383267755413440970516941833126225197837039636194218777967035642368744748450985527140308839602245998315684863268142729790901398045898466975654385551279510509935175436462840086608179794178796584879625203494852799776959862778570451829317794182152989761398674961568004687933659797704187511240028053527329838257313720496180223091158995852991343548633873377227241456741164029415333561882795359549814858398105960411001872698020365294246825494303344850158666279268168175415603172000008527527713799138009828417667105118150780924353884254164886989380291059704218821512861163728470372980592335690375821683817989067227466482864343482532093973544810206680613213684331636322742148249035518317269727787041955962674268053929350349746478748510886418315800889051109113909052122083613249887753173309225846313880451974919143491942648890524913007584304718571499817608377238141029950248900537628658416542608592468130933150360490085227481636592713921873553436695699872644357700247305075251633373406528528659444935410988099234516368129125700691468080523673094592845561077280142762755187920655108031782708867939165064321367530473465964186050480871805471949816151154986082712417325868192694821736124860920950023995559923217033775266118417626090636970267522389711088464411140388023618981693338683726411954625852646035819883479992512150814313303136058432315098509191244624440922883379781228792835422613622366146846989254770464398017007454466892171022882815990788703856285774282145568232809709851417440296146695877562000151908449593806103561094661877628773188183609180654682442660886964921516016892945788290032362457193457814355545407460756496464280268581894110148510996678200085818021355050666848857152104927037202450565463152877867356431057300240358264917806032963523449085031109535754398381010197773674992712216484477096222948365962009930902742305266100245920979981395971582509652060801822547585575626202286249515592778792756726586243270346733052365545962024209936564378322301414413576548544614445808314075899787300864411001876885612319616354573551828409181969037447731125955109252204738037309307048795447438865747512272803973964393916823648427104442806344942764917205442318617340816497424026374667321249100353782906158206127324151021293515073213865136506693581817042569741383094399735182409096774159609239472611868182991426998037605411244179307731878492949303918833778558342341460650706733474244823729365705944292160918004755014508717081289532502971464242307103609871019060777630659792524945049989470766146633495104114540104889874304201035615187004450672636935868723271195463608781057055145005438405647585654025625159880318422436483840115811709668375186562981187337912516263432798330570104469553934874351395164742111369005038321254272721261697868934191842467175066873001907720539794680733863042435087124054265561304532768453347078079931588174638596757773505997328256349663554835787450810214130804684614242428253847408297213279587483304562896880468578510696346816710950445906367496187400845049071137688226746774715115825114634841955284842639037628839738062555658397805124373450502418113306674960418550692394754599971983370956138405396543491003788257506620361044803023706586849982693350387589049971206593592967256662414025326838170906264177297581030913813433788090901947700018452704907598783153423083942139460067685903880356738835099749092510038514046730963296049327130824906837252400383502170803479776056838899519698358976819409109663308152317922343393965404487653536865405471115361588302956779441242656566279428784136867582089787445676176590569946727879351117751782869662375324391734120925135241810471102942601203549403473620207059878738676767533886402495514182041461301080402345065540551275699008770959608931156712287737087788343779639969546287303415977808498431876454927338596653345726826836723564318440721395957527020450197329032786183006992989702303439402783215906010171741293556736110658235733818085026979324459014634349763193739005120811670629225899646636705566967052155163896249147826298066883185616793046704253763084242728200546337982446105411752326790076081754080668182221133141192672698046468884299460458825235539138727733773817933331163160399031273217065574491545065844506002680690673728645213693523217931557837318123221373339643555891686412439053300995175649120537208237378771676925213260018463137076624394115052246243814293300473654535910061721193217759136048534307725011683097026330845716548518984706253847108909615190113682102437301169630152963461771503054545397245142189440097313793352479700575653050915188507570849975252062631234763241038904856088464414169271172554963369239831482724447481807835391693766442006840684180118940581950065185513858177131644743038725168270007006515002902644382088121270779282339028733083762163236010261925548823459045014014460367223090462852831829636095899505416851023292176163941216486904184962006914256981954831846716512347091192019367457617196460977081445435245564543060806057350587839840763636925415493949229318926279616419778841521522866052391165815073187739883746799370362655049735303219104299342077713077804346084117075245193471119036692853114898865176720413925421371819239016710989283396771752866298910657006055154268832297933557801762217648608906690812078248551186291358571151416818525464889904828935831986718617548908891077585041935323043271855686129527973136551018944928002636851601787189765168766789908436377715516162831073961369081927174730521348659401137005569839348244836299015898344403215454498461346438045115361832226582900299439249817718695243857556515135049704081805377604571866002342528678152986626331318599499447359354739417254983304103852789284838491143575907894504783603111429718263364253516371160831572394983838749014302444733484967172555513077357477700989975143606863485452382376545177309107273136726404687331558114640233009017181601597557345158580416130840479794546768122549676326229312752751925745847860312694528281712763646161577400148045272800627961237666175263485059227631921973678190818504239045020559075926725187409428492037241956061861068843347377974606346345838187535641442061419019210129327669352589792501353278167956923026485676209187113736378370979699280882769400569189871056561673343982158178011441317583535831282419358551365283061973151909112363100754855476481672523585638242793882753180409463701762469526402859049650432132738615253155169232809849708549766901379122449678839278508006526759959118156319717700954696326615654341875223135559007961930321017594636208474946043908732232593695206546824886274279431652335239628765229134279426068832677628885017036625720661575324752236767973425838481429885419246993169435580208219985630918950289617843014149817093887195693976730716447036763191503143333627427899554653739802421575078429019958705792725478810907988329717703700634800868313016719783220310777097656229425165790041965213063282449449488833249919658458405370521734742554142978283290817346488630925105675599126063611175838293806836997993992637751950369201901413871425419682209992167931978796284951376656490876717296106388186352665112597209430380454219180460171783091535838118062634559229851598622058524984618058150923049952438513815442874123012421111890201383913239198938847235759598658223113958022928435593460682534767556472011297314639669748145355666650695299712080945153359298402619004580914220154741603571570167454348023888370193418052233796800315898513002592843854568186679022142947953481853311080594167160974174921508948751388417922275734698804169241937690254701610598705282944680526862114281835783865661361999843134274779713322970241451823771913937623201487865533367650041698100505643731427189235656394454105743047709660230131550802727070447597259897031887851669482328361987526930022709497213876564078492810365155212283342975050971479863560367324538657102233289293268956263567383307796848723818869947688343500871714477468379271318536740978364938536721378293194537255637524194059584220678954421477284250190295394955909703190305080602528025434814925701311252959876891630405694696434461429624938147202941799396691694499429697693556983500149971866253496580736003692418574140347378764816111395652259488812837298166699271733833097017327194993581430792140040507137812057193409230497924878222259243018368408782498455880795389543567388632402403829540060479922382370252637907260413380600217043892665130273565488000804754254717682150988531467492592886775022316092086846485057653592257820223523547878640854825096703428065139172705321112767030260262514570134132975802159886404468229482628052000943786211809439078845266627273635265660867440930508057894081602379627374501417298559956922631170018272259869192689090029438046638989443854751251545480326060089161232714199637503509564248802060832014117155808974264969222367418632436172346330836428627525027483689662937056537084248287115829651355904030197182615621001045273292558182343888047197206205083158694733372554741132826375962560049197290049845453348001817458554496417795413176971731440481020146755565658630935373374011590449775987542385916061834554200618198318206490396055852209474928040223361142349149079232273745323122757307526322018303717610536413734810765020203020687981332052288621278702563618908842061479243141469655176747430158146227157881387168405649872299542494671809113999208718099508081789178787621103242370938176501798548625604696587168789230522920196442362531830918655473741639536370054592117037735928519246468043419273814032646079818801332479724748606872088249396693980517268583139914675357471200109789736774122399183332694521199153749152184141540719769397476997296405184108611774200053565900075617250997415605973603217365907115010716495447805036176881497858103079124864912594864500126630242971392694036535082887426024990749062962141626300780149335625807884974743301411020715628308983611910734697130837087681764919635805362030603758577507327979421128871699660393672027196155220253449616877649435849917377599612839197724600725862761594870518864447112838326341766062942815499225257712237872480077145824202684045322237054109442796805644072846124004783706119207079856015023205492781576461219568178488811592779433748296745506793829710645903469597883834637438141103472498482689622882468452101008478631039062332428281755932536547439176356448419646364905028435466601148973772615042499881554622393900503882766024480998845924096765476065254284268978773186038102915249831107455900083105477228004085716494426043374231782385719538036072180330119914734499659178627777103368029200388957266198253085359615696241229919754020328594608698942884586698854951713522734485931537587763186945718372855986665641829713058749727299265204539288967164196757357304904406893907071853379828862354386907110198897310979961492629597009631272346539146966463137825617480877892636138581012812014795593774571796524232737959278120659669483098385000314520675464347820775001828751310872868241879316639240188125764772359505893704413163029331434767794481243825126149367827588954464110147882903373816769731138129116472651788380681277751016722210876955316109347697704352898559436344396447617311591303449633107994607151015910619926620754494148656114515521761291502518313455487675943099533055775692153616728444574495998534504231897473665168407595556534212725004360028759121733216557894830230563097158479666753343444931521364061218685354259566142572703486757450654341864882762077644988030518129241619781387494682027496220985798339991913076557657312972326279237030384323514456397389125955893474379815077715056493695252210113817174939601189292059661314454149856317878132960571301422913185709053691269180500569047059230459819132431292666917432917935084284745831311639105575899263898087174985881023966924535211584267148704932599195873870037916660957186491860748878837601031434125233120331298122941275718708398290797468018430585752340824077726869999862970408138663711514723202932809163433895387955297841339268219772451567773362692541152624700552167946257831343081566647070823979482949221623454424182159593135553708984966693484118715434488827853959980411301575569758115163228721084590161898918814891413412168887526463733982596707798192508647427073138748532900854793441676858769168709030128374386934198586462615451388721675093008139491030741928441778432861828390242722022054902322670344262531243159813373093174300354829784503065082288288615039687428799007434565777393087385991132761575478610264767696793350988261872113876603086709934317945834809243958946718652166348100469767402677534440036997147238905434061903167820627067998606713245369097175676940954024496711386980499144624226051137332137535383253431526287379768777556646345116879715547337780322813392862910820068073392004221929417995054519842782842533982652217921898444475240671233973092023924854823671901964756606114757869818687068431494383682054149562513917333427386074097351738990186927834079312667533626974025943848526613202821197941108552420382880271846239615668728789233816671533849033262175609105540664089480129906891411279581005223449157399578954310933399679143323572990014536611976452003788888289500505249155849745898790109886537407557529462174899177446492122709479374619584183932858293274148913306124931574166610639127676421776619159281941709688705050455488454355651052433392526152105909913312574617657117678898419077238321859283507318916862374841860384980321303577516603776145193660583250670599136610107448968719155114095139558150000957470920152884841876714230247899283624916374666144511738583311369123001967509464391685879861672595044696185843979002553849844634974482219272078082569776651007081553858425151841760447736796515994830668143940576841470030279332346336050901034781239523395098353638834829055906664450232230284372161322893040300227905754818146873453512270815347407208865846643188538366122520050431964387426429000536573086188974311475747188805329801405411358725439709031923468982676424858971069852947761836386114457436424880790520524625425970552087842591644629718786695800069539105226365749440579338549161554471315986837874190893089873470177204461612167024777286947502280528554755174520399482623012838140114577634703109609229426794649682634244657630933962788455465677675693850142895518107953380711550652013012949884931251421949244887894753473188428708281716932784055287122144661622969846499200818657409572510952014113650165640529682195131515488412039262513964619287733378702544783605220611974026576275149790237186171183303555864689512743309880037610580159806132763569739757510868074508814322128672804895814550953632427041167149563958358371241732549440520092882114193778855087659891693070267269665199996132919353349561429059438379352067112281993158550504197886011386106595881347593591910448942789830855419350103141806840712138554454370083224050710130703548111243792158555068816801033208119505616156300490437189814451975787198691078664911002806585172556927562610625410149812114961165021674846139231300758164567905795672898106312340877380368075339272102276897137965612193537393465074313817702444871311137783052993335321039522486954969576049330577810444379567995308546236138608204263677469102983517992517742728157610198646802227018697560051904518170568171927944424595669663332647032704094288934399600955801106287399552526269042554567229343877873825225032520265347290199151946303447800321482415206443457496854285141297306778028005922595681940916612110782408723007685232048695256712759950188244589978319845901990907009951443138957935178017527788451264444504836660894354534530799246315353235355493641309919795649180520922154064028490340562334787759967569926867030362254209560102509307439268753215985612660472444272036216528725375777679403381325388457760805936366654501569025865713806694835155422791694420360050767618184518740658687325932896668943745597930422414502789252393967521993849232224786823508628108671135339429927972018172540642061336517540534399972547707495445266043328006875550304374960524393965549628706784836746137163019276699264757617338010763716034622126031882480484059204798375510617344221368164795223766586567827311678453577458208179525412757864294814017195575432717877242738283545445170661052397837844209425971810786948632317845012098146686622317165162044523540113785523901462239791777595082033804482191257478268340666852090442972923734683340336016630218810447826325905615662687277631130429057592633322051847343219710208152216403374599040713207878359933658332102915721324137960314569091491734510823386206487452739594821375409074027876558654093292913690304119738216380650900267299867736540671934397327850958574382982267381214833276768918152343790243583838150631527913970853915013069785021656195827984948833838115668423072948736548203665534688496118175973025550240337364109391473107506828766912417559236404598777517639131832142955416552095694753199062075058687721548225854227502493323063936424413877826841446900710803235736934508429575470059500439909737520296940290533537163306872955312776143989319812632432517694840678524516167618133486036827206057645400250218019670378687000176384290151719316649016936087360313991106020312526500391834746587036889913623489083817099154323212670293475933336369569659684098959141275143474711266664237966807389736488374375817629170957870035920803543709138259814590543787145067535391364082557637612060434242170846157192946700690885459428498172590865008172942872854066036772464254933781952422132153239883733525324249972003721346057898584764437316088003261099296364838518284739150674254010114830894379902721447789623573799241097195133087675425832442774286704617371257809428203984502843652913299303168189038798025151487804573743289949884266638749512545318411954466848048298438566143915535768371477888509385453531250539744390355484505745226661436412895343169595033980769344782628458365084899029081130206874875689375322073043847462003326855553710955539990807880266336047972323983025287044041828772207331877792882889329901712072449411920281450934155196635995581204380490418208614711817160930179809583294058994884637323069938417372713634824236831522846559673672561447091516918523219239045174553806695234613584044445114726541407874690440392178056549610262560703360492362267586090077277035981373157167090406661807794314700324807728886567180990471998786651796546191833503786275650741693555720190199741792239361743693346869923143209946400455443765089855020265078295376007134999039253134377847285445113389746045012696856482691991861769779029976345644825604179655086757241414209064030397443568280080630050434213873793795643809620119941115675190414818795884986892136180878348470213659017572168784956567811600989569782893815211694312103404147113237026139318810704263814212630822772778151995175118009510510891395375695514264023455349762685453867265382335289071347364334165828506244642743318126602334281528601058260403260735932993016345492293947438764672788894254681633684509506624667212299259798818716664772576348117035582674008527931590943285467017404894975462072311241025562874087910702635914728147466365462221417962045198583066916080534030047561671822860225918207162252851591992412927342952121516649557946251999369299917022834656770509489374885487600975284300650669745521381927278003207885826329839368857241703119524992036872880551066476785459858365248815644524593340944068791068794066055997956621350708161329244216154422340658743983872422736266979140137845410160403517406690806519654333054935124043057599501963287568940993428473793842600799708079962287803247359953158444266463755347240488773256949535043022401758857807056880065899534815998384139271138042247669266734138248003982015930758418587783407745087518257720065680761205135399928957257636639461684441274648734747458357822569386611747146084053464015772111736561547258756077713586071129727548110086126906830941083149552330619929798557060044010692175665565026815204427452446212670922296034801143700569431512198947483621566588035590744429521845827261892776857229850345852199269822605040102032018518322240250301941574938890492190907420399117568584054153658998040091112468076749941972581728847391163070359580557051738957603848012579746331162898254369992868321759129998906337742977351043687686733256745839122253454524164275682470093099886699718398430201759029020822580834389673423086391614012921169638960686036738097998384928682762602667632400889206314156155888314431841626164344347809446436306369593576833493866653167486084701232533165489344869662246190505456478834602200742675813326798851753753888975571666500211756637202471380670159987911886020851986211950843291360039135394518298744599099939410485819681954674349214894675020396522869297687932633030583250681301454207060328987204055755716742882854308798090252466868802287139936002274977699352862240811814499262343651235373959092671774142329184420385758931967703556232973725129353717153882208879224499901704555698362060286009064223204567654820060366664893647705265238061938787041181363668335305857109047756180538142085744925525354376149875018752439264184794640827670005218530036672497902589192467083667625103794351015316667702238565651034259162251699991770789286109056766262224120214354309495600327438569652264368907106735766262461828413719850510356866509791478875853692572422205550940839068500120906314894970204868218647328051239704465339963850984632669966965737797283700410704639855675137506235747779079797618414273500898673749499192474560089937815661227139751803633390456767867463963297885593576166945581797398118041693072959880216679217570657433428900651198442957975565376505871783566606743218887340894673426237602365354973213008823583170227345108788970044984519984904445134704593394832800678435394605571670926576746561997179836520572981446011276643648996811974070521048708670056647718466317213836325577827122748992908536552686762250800510138361920759619957833111816632784996051790686841419037978135846369066743733544164173965622461284453638931402360095944217941416380553887722298277152301276771156603913344763210776897553215065561233812606791231440382660754812717855950501940045873467660341883742640024629155713961370326221822023868623950341806482429476151813218041504201448911731639527405321542319668410191026949630451938769297612011783203967961059026979808376454206575134995011892863885497922257559001886221998560365713227665155016752890978779154841213210280559975358191563814290697139927133602030767160516155435222324056084635604100426260535510648405968622280065119165091082054295593978315546932635345943364541963410313562135476663144149682763118815476052195589695424203164125023524835083269850084894460341265392349912480871489482565505857377426378527553515393136997355195622992530342747288240850246881085297784952651682336942463727409128373474592271025303935822357182033186037453969692596951190598564762544571154818230658679367065367415608551151953507216027101380116803523726464767598872877815983658403226360652643154835920340923173826759825305147638409683187636202686110845775823661149303070227297411391283691993256066997440307497635764386738930322243870807445578464050188449023947495452938677594624431357685903294409548693511517686767311584606649419425868961779247183526184026943254422117110371022913272766091948691685330384705651162827538204610438188891313656855794703119281295573995390807868824081404464944954337058743908056395907832872517597705220957811259114255266308527049626198475899310201406217094186442129023526654013802563506520392041721002098908855446052561703686787123434476242953315461637784617073398313877989493221885964413825484832552265788952496198941111436701814512324448739292974565250754580412323365156600568296248640329189779540675766989557015997181939355777141532506151424840614206702856737095135132110358141650000896021168247778613989559130948853239218748073850603497750785870830886489917194608913183878100580559847810705698261230136406068040733923732380161383059973777030840508588499167978183381392872460928842527185468304349265383836302763963704758228987725412926181987078927158725447082315038939395702362344506568355056821000273386460040711394024374340588410391942389769869406842721391815767674602148789116481399429494733242870804871704997342648314256277291563354200154787653516157165415253080099821888911342532961753577312562012459494295989196119757476068461207244431845705301654995967376978317731575446647096704201129213849619442994247422065638855123705703586517232809639513174025517056677699684699515270788511383321701235816180845121489739437201616142169604059980175638265457864428345577208860387861047445714243581089226526822799683882711722508651633876317014836698231805858688047237954605585897420959098308505661471924975997602410029111908938815272829882953949277403053216506023631332829861713427822311449898145154655513664879982851158018964793145825717636993343663484519221561127945895025868417341140150384379783239832411927358902476915207115203839273692349102131348049004366799248992952002142809387063487458866929383165939395439245188334299286149056054497070998111999025168414761109427437570032737291578295796356278724981338455521482228169202127906242119397819252204229033297322153099139758032932620575422252903304309927775254307406762338433937546256062220610511727270526449028583002772010980866558896402915104444382105686116855203929815463701011134398883908508341622974659355363654891386029753705279151572506958146822362375210405859631766166703435950146122215813906217181628388803347557967235971538926852366368252925335881818136161724567693453960271591499909837817142946180195753450267951022299162647573565942656668607090697062695844313046459863816123403853148813509943532977019723798875967828338289312237748504046938879391992042632815699332548612708173436560123469262423780133912491465169841987612159543800247241128034340807008412956650974169321963930701850328812727155395851323282703974920325629091870326826093359433212445993656014012051437269569407516696727358213868557150120967440186128572028766200913547828544315226212571757254625206600201152779630687502927478082858001794721354418750811452213037271436673490331490005522704767466635205883487242249841191760280269856371951846773779412578180420013521154503833452988900460559285030554401065669137386255510410945681028553684997348644329971842757474690319661775594734934985142141479161445332764228179753677978759657497498417610944963518672565766209320231605391217203032557850937968792932215350901026574503171071931827586896684751244973655148789095556901083932325452768880863896361587554638163804667042548783115697908400580683113502242449894213588834008981535502187834976978122334256119789640338570057105155740205832102889967343245512675864073024221243265355418380016913461436251595512607253272277302333232892881703737840773017615134429577856664050380403949100228436506193739472256362211344107842925429935672330196933918539767523430524404364789440158527924739323339016975700168900731169369170348469341143685238409017789352946960832465412928229193161005647700067462170332975850579254220807311154494438698129950818357968744002615937993379243450878325743514860201106978320249580341818338407307645726952905649083560348373435104412655501431673794943891537619679917457881126359425329006414910927930212970751555391959785550887986792147413961019359583778670828562182359426798007868139970007219534124299563016883338227920389918820547570032958707865419568463433284622417192529235646367300781611848468176805578780704667415715391770234321216106916085016021319408525954910998918639436926104647212956825486661346937393906808808226728690464072760310104617306083601183657796052798124488907756592002925171747134414686091495609201049701874183655308570771536875123914079074912202782914998066175900386170570411875091490814845524477521147176214544753460473963911458025515697779489494140674097279657544932104493310988091688595488727510666755096704546048553670580005223878774369375385762294995288654761894659006962131397393621331873506569217691394381967632013670769528444480233267580692999760455984714254364741797144497221791963002793951848534339575628994642464705834363750009756065361232684531135989907964772806019759638106845450057563243440041379552382371362270101732189162115792354999733441419634117948109640615025195729610128930503134607950625768659783556053588433312201376308846065471048608890173459489714461779627750037214081353160107429353614147875472182593037497787177166504344800836601530314035239509210404794965012014077801202810700223419020527884747084413531384686961990480155582478812319175226357113587277458147691130536001734635137173196713610165740266476057039727124679580441559289796820818865497866905197625325438138407800949190871027963733786516545239807949343142462771088936893691968993082548055610093290078227808471509221053537193908446605217226871750383975628535263660176956883056530346222897538662911090082736128089325613491503120354771423453588288074899643943349893688392863132340468475141213077503091340930917297653581522877074113531443354678396451008415326581390647087107086580297201937189390803632162604191848291200298963902089558956562513506084431940263930523935340169584326925579832376606644501769205051198768129725765590282301969096327418116922168710296560907253205998199563656683404768061673294376594974475332097943889032253039037971721072737244222768290025298060003863253239145641474234652424409956154045323284676727408890512265994860454554141428800742730469012283829241746249886890726469995905951869721791834053531986086480359304344679940036574894244616932294627619477094873662653298109368312542646824745876996249212492900057962896827659525681986959123165541735046996300596861426103276371731305567142944649232733939852646959921442644885103790976992760322375069176038024911861928611542552984504567607834334872626976335359509254242196450939679360919170999967748148881682726295939714848596939274876916528483274992852190089976747517836642047347043961606126395613867230263609313692778433230138992768200776528727015665197603981303683376681881751451558317373459356803803094090776730085391200269773005350001478569779167979805272457137048760287191391485159204543587724406903026446209629566475601800446432297404708595530464511205950258685246419388472423800062945222634762934752312521336924168297121719822316378194957819588268741767116731224993572726156748563081729161268116127297560976011593459314790482213052155829847940572715962196812860845488013894185047337592966471912508173098875091300885845169607524205720509043481914567812236461605270498061489984162907989545858624942063535783907030008922474782273948705488571095625744861734000704515029289606748981371429020979338394221351838029115757071272686549192062773014991939950860441567933580978616278836185380320885576419960742730106642767363982165460008818612450580474065388874767231467078136259051185773257742346511305887675556849683592310554056356735881353316719489656523565470601043284919802794699469401754523129216117254995536612176365789775561051317269224251783260632900797006969222867810231166529350280723947226519714609377341295944289367336310187718151480358042072181939189097748119695669653263081994404522228940294199169429889915924832982786932461842702865535836623988654223886623582779267112113713851034871368147488530843830059350538953237000284813384299330710207834084851044427462033991468319131628749865615375870363281147449854932255967223419630475811849900279160039828714613317436253201386129415963389441738518613168328531746913966485099192408089417046051143156455103819307849698681530067360237078142617793140943708927418279833581254292075487061973187831531692315253312511123623091783276876388903859836749750307193971279461150708765899815830898245247423857403133169199780160569261207592539046058144839764663175089837545762118975827597152266609598373369532129492844273099142228923261080762327828699523156684553883942841289041797486678226988996657866398290875368604287339740826240554310108717164868447331236791293572580998343354845567345936117198674144269515018911085635019923970376102609588680960113426353020594885324378187204904687258232503038573539947132951493800456431136932023033692969919640146799159974181022758818757727554602293876263756020760340388360925666371830224352167382619776127747594745290601572085681031520857058833424702406310314441718715028868714285932617154977161527693817927223312835213396650550442653081615052840846899370705927452313171561516583453859916359024904810884617766744392562312917437251324164756711972461504570453507402788597358344992917825643105709596523806959067628967045350394540239510025674272831484679574362784376869025651553779020138105884598452856649971922202953531618121896865201926536042239856981926343430676060353632098721809633156184630417959261884540239180416409478479146854756731572275887369616781874148910543409945986846598344770543353082500692305863181074253774569093865318880092577572556564079889038609297403071157523311669258583892889609243323417514367603332830395512951386915868509349755319072666944556388504208198805263240174714926060493640867466916393318515192932834789392940255870576906424284350866731417941029301615035375654687100585574828171569669972541764310640158988552327589287236151683346955637815073124140535853657577534479516834992736371302995433228304239305554793667049618119530778774687706894848819611903802456991774463960096598652210982877116419490866292553577559478708245936092091946217681875116802060309383443306078519538904470582075366893576098182946291714054314080728667037524385633408020214388015180381931386983241269705484320332608151816878872041596995859605819401171982868951541908248617969773401730698280322175847084383945834672354966596660203940564773347431332791100961672428677002716497996933723002136578571202744244228377611341031162627340997591292849656613289936974124512893360466254054586195953191782177405022660122170530783242763513830369394944811772091297371285210873356027740615951699568265647298153939708029156331735792051431248964655385735571916228485711036864663282456385832750346273030488632156861021582863675559060415576877261117795323418432107239384384733087929138965458442842399416205708023113822393764925541500910036653037850296775149423915200371803949571711501355256602434170464200209978111433205988325521801358025289806413093389840041320800352361504631922461669680897171651826013160610987821775435398746463011799890499905519310753415298874371368317528228730805764877156994877387339443457516247023427320495542263932693716915869053605608353077820616707240023237678633609655717615495528491580375401406473443272232686076048712351279110510231784100706489981605222144669302659415012265024787698096038024262763311626975211981223773887105878168012789030923517667629523001013492362524987796473521496995983972764678783429453951050798968520199695306623397430584542084762349440282180091299882612703763963865023305287008857871675827669748506846218885796061839105087474631997471017525184668663377506573004530570989292079743365795567378847370451332972541515124223272242254788805272813232147589965756732297068313603856815035021048064512797496219841640001321381922496479470158400909842858508413321160137906660097222047100296303271934878826817939308203005266672229396234517788836629356576999434619571935636252647371855720750992008161249207369364225650506301895844073679623007913947821588121363983373075889965302580002719124250445340492496770534741303483805121588594796345937634005632749906002595780876029717668039886875027677691381592758531284793858603974787191937816004648915721402740837625524632533790658769641248254552512972857282383754737607142470304452732372429216505651905744286519767474311059048917252983266975280322438032215585874071554004500884660895791062526135225346199156416960288924071251362868292270660423531377597179542078405415158162971762938306632510629950774015728181516285441554585077438351641270626352550520458020086346160695225806751923808943859598683955592862287217856927836352513719293313774433833766972853877690886996872096076540219048722784837898362001146792787650322135158427832938968037295560194664848368071451654538234469088899246318557354630271212445981636073503099724272420996062756741823727018240408305998738000754446135729415782118686068979196040256130052181689679128560517706586139716295558230905319706893034032125348712537725729474302429732242963023381980396614012122484689518396764116493961269935924653373716892124486838084483327749431890563983836428338753584137992522493035630864384451060588521276628185426113530415698254882050357781653561614122640098426352076541061908444260091153017232604860678049002024007514239293757684094196679133017705866629558168812152656266058495131121637965551969013227286486442372097080902789554835463101460989102272533197914444321778002579348389267727025254479365202739286349334440901950971411009790834943149103965538151310537765789536100089984946802476689864714086422901297938329452575128243394821725896809558564268591663201446424572025944704011105498632687613703963899133491571385355634858130613406171764318613708001704960935702547196588950268922635350157339356109442598155842877404420520086920483590971118822262929324170128888959825935015752842028053632289619079569292946594766777651282521518988713049374175640723030998700327987402040738731141399755605416770982965288101848240070408818549895545734562288328375521935311646612108723908596121678689685280323587415845899075981003331299446974067122059606387634272411577489084106292775017492473580817372057590486413117398099627852441585084761693611635427796238531093208753665094246215509663819330289942312420819454972160105575624028747117099963304338329396900632980515582010011243654201954919638359831932036853994759426499234690933704652544918552479867303494655951866341478981919104783923605474622771217336458479583273914781703315622324244733451224352399196959015297187800494219916561804896394953564272638199165931408502000160920069666785200460918959070802343510827879811977266356541846922375752550336486362986809025996242205168008294918015121435655225228952485482537672317541603486324088068068261470259024390220165471915264952831393159451476892916994573006353186492340027964833228948755283110461293704914812902951201269881074837426272480782353369123018750637866415336034661395580244044227629598382288726792587587916671397466820610746242116993215658764991322465297451307837204556919606623702939009305157864375605696042180768337839971173885868709453960689098177175515138235623261449756481445798555376630924117987891244397526515891491909747798438194295396995454075657585208363690857409231926944977268769748953164621344574774795306529465690732520840140672049004557498850918889805205008658901289453289033633460997360390078682020502162587064458063540035285428633042144661644836384342729921313705307742525063418406428538602060867713383366144293446290282379231875726061014287877937907917360990723969061834414781671834736207751735004840144514376357171744293836869582538732009479057404535661323126652008105706205146984882871945449475011138713941260516395134529695514957089935854100718997488055276900893638911044125939193134729464169320525010671110231608238566882185610699501812264422617543033518713756363808205771199072163295671992353409146905501889915754297731037384646033673240545290936147308143988546481060292409892132952455207779345382114969427884889512531511967234843829340909683043914484362281162039318463396131740060117269114157706394908420104081993283063852245162463230254418720563807969090683919123077638916165904380644142861864565215696520971836745387738430723060001044675933960653792716957894396002010865092452317958569450496552945748217738353637884595037781308900028270804829345101011063412460827861280117685080514669580822021827280209238406793919516023583491962418766467805655325780480960461595134019950411816805922523335971028396890859614273368206779596764775241767409440098620329396841750804090145658367900330435953459723578036216221785751867341469976427265627353680543762019459303694178651083594742331037343858469131954234885058127443990060827915075408407325889176301905309685158192894936415836106593773626777693463307933865557485190697732935916595662933564692784703886946039839316843578650952194898747092938789013135770882049726383138078309010539689509701535161290062380468108712753712568137946384717501702339225455543016964722767774136251798953242764397501263562238293061384124009225934741593023694501668556041925742061599685378140468734541702760025671373566398059537285549311168911088465776936437368823805741533513794952983390411975519450128105720422559454279734900774541373831434116776411682309104334659842759779949703519215910982414029765482017208807445386589456123737380939425558988726117556120222785409054519942151904480787978715736452500769285200592024194012823781920301522494765096377020321923043739166062222322172870609458899377337241409538308140509401782280712513024125112459182240916229553084883500801135693609418010278800464051456056583354009857802925026583640506124431728436293523288200100190416901817283366599536294410063573811657603451388403055865190628690592892665570159271124553293028869950471212830347621076583498536440184370037710066456244737052583012819659558841101440004927059066725818518789958827620402606890990945223560275764215511084162939838866490100597010181422294716298116813492465648949342847983351953351149022197142986828443939725459802616234746997802670337574690774385693456848030250801296490249045519836327606800844911842137793837270396519938339897040242627599223905565289265445434545109801543812682500339745876737837140118002142480568321068564401423206767324212034573487487791833996825192080230379700262647759715009338723346301520980851687976298754106563366050032962249092006356201790252349362145370062361126590984543776600020429832719028962912399641291564435754749145271007128099365082963499015610257845385544337498971110139685559110708682165107753917141016982308364873782583345158882915323016736584040790210597842670534746145545591940893828174065929215921657257066166461517322353478948870409001423905608492196090360597700599740469763406618460621283074005440903649764801369989794722458896075567212641942145478760615604290438803089160620183990834432219965614813179250506544916672372286113935597163718879546896090576944693323857870562433285944655512183037581250931595358943412877396888232863558191727913847535679879455923434291924256612498625985433184818382411008110908131568078616752391852272063121189102972704579178675956273434533146630936976326665111031379001299919791384514684225093053706083837087011170008950579282141810415093381236693493923220958816786295405406484103630618085843516331189851957987468823511551228046798658736080412088307710275472186123667576986733862656044519575647051285207053698323294300384598101251731080826573149408296381795920202657457887145614188886018058597370037505142552851849230893112549643124717324525155085081686621617028513581947861579158059126821412583711543955823818273135042578460664954773487507175984883515711686494814564205129765731470169487758425526474452351088495002376077926538278881029417727855838728882815570461005250639004019294803408741287651865436494674661036406343216783500700274925671102905117784837309994258278675398624001949290482637653952260307038889541137625094483003527965412261949524159253639945227906285161004834832204187700971494016694710754239390349475422846093309801149078674326958853510390581715190425478686533686313196917156862694705687791849786431583436094611659269125763120020549288098829954328476655699896777627548670577277452549771978338667177919902886086222062175983892808288991128440008874969904908746300807084718582165799709974585717463277163681297679087020829718925573070783821562734386155603000573364081991918832394513584658352010378430346724554019279361810543004421293374265407424980424568135369648222296502242247050861613544655588378896303231710085423112740334204103903210269475744904558027437328248520037445545166762787346936742827398122592370302961306603831567508545404450829194252580590213779292720531845576912958513989658012922517207020223258508275036314060815039707241786160705082966044965454255795518650413183222287158393141468500611274193793163960063412496842864223595128177302307115588194178699833115553103815137272975696069618565152196132830348722218747850286434131124142501305622896270053415803957776245176541057491791476164485191126846899065823175817653150098880243268232157030486226123602463947758713834122407057337769477457474914297359394512173214876825738772694155656594684061734669933304160954408378664448237637848006156783611181924892794797159395570378703778853423200531317417162581219875515190888919129985958538600446463909167374881208943897351546526887945477596478733360034583616433220525456896555868698992698818110979599921265324727788258878547085256557786134271145125377357173827156262396737297311335484696491193987298113706983429071735749705375616270094670890876144381705281725058286582710910643307655665749977920567192502742248291588256489925007200936064385370048523612691795298823646395898842937932729344220176709030225837212529140160543044411912837705594878644902237176542971589679266091221704110026673667087798470800101497222391967735381755739831229351564409726202549251527928831777778314636134040207632759766443095498462337380528360943228857920646987823232886735559970755159479018554806754832921951308220077035838364849196225755696933855700018702765064301741941349674588478762013591250502928628000060120504192879290866404785445040972825353722633596128334154618762372170458420457639008644819209826941101985360499359299283173213128766741947972590322093326874707554227672626096785852922276868652859606505354088004797156624466439255084071318842596477333984277367473284114917386454629375612878543154711648459889441181622303402028616477225755277615752387644203325922061343517724506990692503301912295058213142706721971970957481487981744266673842451304683038001803867535334375082910968030245815928903347583220459030758766135247152984479241935624320319394333500268890485795147890498632219080251623565354975461885795553250720233836681519701661292061603283660542623617893766768773726185361675599906991592517739413084474310001708696785789120739400089951851504076729251802356268477325735605128480153656412685152923026921719421062055201566965772057886278699751530706971129849961480939006084889078156624638756364303507000613966622105554635509179223902866465913287878459058490175615793659499511289276135675982176074873245630639041620849120412304033434943025414797528366785270641943792000800670344570529479129944532458279474438918851375611219275273148988183713218060034699781749128314311427163929174321657688749974108788858153984140851388897078125237768010454411257854047508718137795582274805826699370340920900011308265403218613464809250789004208933492246641507680970043845015613981440329198569235588072199010630213845817225008429474834883683393091622953559434101523521975972260431240490956767063298808061516703634522591215108285916218779603269812472826204873498087136231769182803199395090234782770711625473593318233054702069468538958618922268938030426393966056301917699810218688560235609580334639464785553212337020028853891544686197691187159192769555726589860975840577694837831640448114671439726465895426885285322743070288939305204182797246917400598968671915730290003451105965870274396731658250480311799830618551706926973578838506725827311368486577225186780100723063889045768345755530074951540121950348051112539123659974590576812238019716396498390121358794780483381092552855738057526541038099534481573408137179502953710576739951435584840207453143013147669101356936158654463607596226087896765816952890147030174589132708411372953694701787482682949562170144970662567116400766382484928234188690988239846591038234614935420595795273657253378761338771709774107696271509634289217355831741105841260093862367444502818760409586558096904645138151930036703908517088758321753508225813508822471294671477796095665940380562099730546004625853287592736460629437958719054299821815953675976992533472958433529146696009367861974242235330050339235629865401848908757719511986039887830564476814767996340568027682842967624240786949724618827051235094535868607765741979124310558271716637003321453058766842473932517200823701810248622460379552968529524212810967743042464348536980923260097820673685100009532242244608399421517594609357694858407145971842893605764069127294865556138655323618036199644018255109499321434373509237233976370913254015534621209786891166755505828813430664986082811957108872553038853418737303513597729522708136625239992624694915757383899089291160360694207489066493230841066486936009089646089274456033864421474205989619856938592082035841658655737160901534524886127629288810563617594129843677415361793536089207762588036555186666529377563592147938637023157764127955088721088423210839244239418784431078315281871367979519422189017222786807227859872703062103983304262382466491490801737451389606242053475872037531560100012555085667904730976858373081691229774014688311626620521717684021646831507277423585762348004231583934404366753702776323209372239540866027148574554571269469371506446082080774019241153977534005587125007296920028136108578026157986920268808379017593989123228089677817374041221644628097196760332794608878243238974603512887540864680481885177267961702000358495573559755492300018025065847208020341359152372686545203075830497099094316122284320668666230997423040913802941404932416619018100843657448885999018168942712803741241536312642430132828976757385113083705709343497909274003990344593994685955067119125142679626078922303411089671519387788419327539919147068825484922203418215651092760224291522085560805274574695226231043084764606173447140768712027461321704263742045321832620417823105269443963754655781064263595729562636116485194797727681906932536603916559402790436416246408473879827053334487091580444667538786651226671842573645247290778689357319117868118931690394062283685209493157564675357182243450568127223340900907378821368802254848975309529871466564913946203116323727422931943771107626798172856254995761164426822674188476401767210357393072582726670962029597897168925665066097203328740937281794851124060598130948192284034263443972804799152431257142630799600249354686317560015149271910764894280751587674716005535901162013405538747050826580793869977759391477048309754244932151204124597487669949919183000007982636577877427302028105646314585743575952892885646579373822077802879359205193322170184974081576836024849394963010785662171440671861137548347371677858258063149055742554757309840642254994320022854682111956015013964024365824201832933873093783133258159020914258076435415693775722192644896307500943626352301020068221438473641133131534642127034398237098802719064150137413235969986600846645568451088360931797349998348855962646697377947510461802940193674533329643157500008507638421206886570912924829099127464914572685725702279927684349818853025865172868258069502576579581910927476064640609560555693414015318438024686994254851520275594660526849199296963643875664077283797335243086583873373439884059770816870925589621432989251113867609817911468214024575208228264125342850018716870242130672034261329455431422549951118534047383084474846222672159351689979000354673939249836281090286183405846681288521552988728029021338403404250884396215344532109409231568380217645085730690226783888864528125284056652641666684470355084687058964071645520761125670773132303053586723832896179008320756035976884332450459618337306154893762773044805566475706579020397614072014965411331073152050764733231920247332514067308853123974368914036223408125926129537367322529013551754334885930320925250942830923600370446728833341953950258674394302990805525520684289583411158460730258967703407773971253690693077365289146317127063871097676004595220152349753761354846444887931544865903930302252272726450651381876670866571876191602982235606035156408525233883394220834163858810979810318969112244103929221612414296105770638493727965363019964466778659546822023587318709258346443611076172276656279053557329348859163604899287592767727640514833305206117999970595667635420114161238936635122305295305925399242362788892700935752881411002570441231403674046378289259952718920675015591277985383791883268994644700015883260045843540758042166548511712386335626982139606874566815033273281904097185082707036317982926457343312959434259754464209411851934408776338138326949990590155855108867984106487340795785192551825937075838962613036948181512955964387163976857493467216289596586591691504195987095151138245073389543870243170525666928079324555747980784465789848066065907865684317253181742585449637810873939158588119904433607330874826094428066915329478576814908090216971103247177403662713960345936210471708014162821518563510489627061406245208351037079591155793718160968307638796073142335730939857089947355618569937092562003825488539559536714674955250834340149750994608189417487021757405969092024421927140180230476021393643036276863900440196443897098753691713701924953196807602177049997421089010819996162571792394333101413070424346378076269662509752023832837180358888511343658549258036059565884357877011688410423021455135352641954358858130680259818330983709119805703064728973363655918520066427786854049914892167990631860975639377756049599115470091449316790436315945621154556656107961513553244838856197826462958798102434212166138033376591459758624456110103122486417157517093445092983920524598507927121293026684118897236462482818812057561787156226630582362278014882814085533290064406243325314137781851124414740532201148905122408333896555785433127834702263647496014783908593688207663360350234334442076910854163637558930286446526898154613058520061274163764568405831065601749815069786902300249050936482059887032756132013796476866447873037537085797844288776951088790434974518651946531083531749791410335081283639313385889366486077782460375874070880065370071890358000466610891844361357396552389811373916308202500887063576236151218323676019359056335844009985307531545708947082862150434568877135138046321767874188357246778322111448840946430453819674612338515998112131867480405387690943918720915756615020511173504947141033525916669561777382884841738955308798840092028631764266921994881766778721055882095670713660973516278599621379713102871580214473737943974845777216698707655770145594779860813971409441869131928011992678227392997437549372466642995794027118193827992004296883155291887675253357180880652011761459435298104521879921988068779527753047219031587609602781092171336710463845602014281020137478131796973598026449910086824798820224901870916478211563408385312552651597046603969169138641061214025441624936258535854476958790348484252598059684833091931692260549657957153810806107733519876058310870598454830017121851291979365177435185111715020231716586213552861586365976837095032662030104339436240892563857713934063694535611558252710618739541904203219559502488595051908406500828466054377702700053855553576115941264123529662873175100201785885664339954410683099661822616668395822714661594343193248289475298374628304006928746721018941348034015973255063724010488383945715512195432405527195370576723415844957600321298600228100620028895213363813751255122166472980474543458918243177510231597870531707475148467603900941781752442201877715153809542545125057350695870899705143704925122544844289891004431272185045615688229737876147956424158478703180341001091158463002244231136758739836637296580642194628692161291695198658604712409332576390782238395827677366051964680087609222612579286581189360017131452090481741282050231138324081689088423691369144252743571618854396396355231094746477960934683169782096871107324083327933629883806192883998749753771089209006099304615699929275425995981781724326996439721192025057037048778888006173720078991671299127970523309133072421612512508177373464474032224648606789167205347605172226826490511110839619692500308822579930449459758953206144304917995676366906537564137877013752834829908545300105220782691388659279868091550620323472959996047894251432475811503607191152536431167178075794177518046924150365283602948288038965350307009229700182285811322378609855520024525200719255413384055710918937229678027052926669149456901283001018446918528018667413814042611241516747627380412454608947600212913136493484837449755281765056458382503645484974883530559373220923439090761578204268610260680036742600187776097227454307203224620370988841503321963616465031157579740614977922726899259921424017033756611321965113635158113226949343796741049921524432624149867174628078091151824738926300533541281458361769906692189443879540101806380314425794289518581988528092083677433769965180850311727758330140054456610169063539530391524996756481742361470546362067794676577501333141187563245966129989957910479078321524835985706738974767851412347974844324487284584661206186207029205865463168501136944989496483666768468361013614991985348951726129269778550289529391824022012717701078575654212875696724252657420550579706697686224874385947187673688895256312681118459949317378318292605045439866841141998004332703442813341156586543711868219694464388722004494987771441429477612372169403244348404222216935726855226105920673751977488491429763443717058009604230591372397528454739360511955444537208895650964168064698833255486473368094624245403931704301576862940396199189055152125702744146232756812618220717743419003180626549874357409807896129778277156847167155789200457977801367170050849827629557513176508331486544021519367528531498526303853888103246302999914518214327838446094005070933580528024189144203847195428030282756358470874820634653828497303332654306810302108567377176744892495856921026963054884753308224018155406916800368009409781994820799393445571812525189530503041629247006881994547771228838914488599315777367723464644380044434257112818830395129280667654123892449270158804798863259607389750918409992812073412326266095665476929374703924308108452775643967600562582344484777843873264010694567453400602740948374481163340209523228850931558361756602748146391166788831052080693091200624902805728570688883414540007605991113332204859636743539496924444767814868383457414693079500686301039596423345420118855865747336625373686560198250498983918615400869955744588884875016192039144199929640879396904806540358421958313856881099562404379448295300453739442134252483297238975176746001633358270759553468913856436104366271824951795308889193173317938960512071672932385560710664447004018267739962629454713299138916453158407956772281106384831184155485478300958014717585236777524859727284458177841457447812732757774598451663065315139966359315211487831686066338984968897787761651409291213026015026912674144395362800529907100892393335566517451921566886613106375952349136176906578259081471379791894389511747266888932549681907818309700081011247390495355138463746028653544632374549011590635461364586838618445081127780883847796606956656487054698537046022568473637184791679419735904977241836960218911017810613336975954655184885132337005777878215167468179531741821942704798164591498649857134026496221563974346630373464123620542560575394665280854501474645385435923123255796427391083305470503542080037855557660240587571432730805608666357165089154088728147912467239159330844335867976050345507065056124523043434527138394291145707884190544445472426731327571138722388554466729372711850379597195190149779312439477329882715837348195340617543035635274902915956228697502955868076744661966647005195293637357963104024856973762642176154978107247720399982882383076907762113448861857376832370412060470210916243018736519131525183416531091098923562643027683113104537139267524265308813819298984898392713374342194301814249334942366592766637204397393801705169711915191197752328688458550336275236027242522689247514258428078964669893347727811221649884410311134202563670743368377243160539357489599393738366128435701788576839714873273724273033022088002928007286616874254453790282047289892359758285677863295488680406211402130634779361765514678306084242477770787111663943983426168566719316904313297293852320207036135238568897455633346384528035447577202611847611327347808375575666503650213839829051293780083225345732471653316184570572752407066268832860333996563306296066433070612580511953973217566249577802393304886577734757089455235824317712975307579226227589914358413211805654489660812699870618006480498426434465854830075190147792023258945020547218107314527874948872308001474822677836367618594755681475186992114998434586905767918723382549232708637535474226562871121911268315450990068094857876852397511534649158254973678590763292834291424330320755946517771320772117123494362417575985939357592962203426521209382069226624853177065340082335395411042918310406021956463038014664063608296070273795350891647368127139460199107969436353667396880165186264050007797595684942182981882557115724888642644715780100797879210478799644945640654689951222814482768771931535560389120658336406808716083246131288724011474479265886205478130922448381004327253761815297301330030805341619574960402171772465038980057529191924197527093226771523489237838462625683491376332383582111581176837907419746441755984163827296692981990781119033300528731126585701115053249144080045162923648045120098814046580892268123514558717553676415053450330507837404387554626531898417933922208449537006211213201864078578222453193632820686726234578732769074608877264146658580508838755385549629387594727582649918589587875695607666019202703490288538281483370948019350368365635462522074157171541420875494552918332988404217862686285798224922969598392552316801597758811801234629084695069686030736195553635487689341511435042943030664309217033527744721193627445883991594942403325437313288753050644371499767606525409007934328603472521337650537770470878274974155741200641907711683769862589192681084202159134116294003700516766773461254072760041526571921149665650882354050565916380803255128410987588914859234873733125251813244871028762400850664618542774837026561147343788998952508804458610632379829531549843492698451027570750317804652051687063546623919403500995267894818981312080548889452988463950628120320434073379915886173928063999600292533171843608697888667468802408363051138910114533330718653000881925549898552272617724510053710311958572955923048708245918498525042912324213491718337536485763079240337967678288066976735572893138767289548170710505534174111749770691227082128405093584900798555786513131333019475428702759791137781051119621934541214797622186116570807462864801383771682564459298289280208980705419457373374740045320049850172712691787818843191922622512304412993369737518495137716850126551326813622680805713664553717874061576769324664320387098113283681002740551227134989990447054311479890229372789501982823557384926418497583986410014305802085092276886179020885464984159753350841960304663459638979710807003831892383070077595124656524463541364259044036904706458618918722145839355798715008403188121888075945609660849403418989053559587398915769529394117951378994145895217280263358871836549776597182263928437403387222322731471856736901439719824938803328389233892854662225747537266543423860840187559204170056995129982557229279765800862700184462128584496149435793897173043161465410938560492079943265178293643957992544982684917403861440464485608243482977511912709283540355083474218578503518159612963859308594032692224871905281940718845297326857882619505674119279747831182978705755554932454360177389169768477338248831874532834225812767561636513280150995355854394813889188414279805838330050419459549261667601808385849862948505345558426356535538711799429397215387848022681675336807133905345111901274286703386383885607873699125009130930782205215909156244896162216830713699222750338261694253927779548554309251915802960147306124635992492489396104882532365085802189732874029060117403154779710866549511810599843197266507876450424018361045962150240146320296688304264097582650119437909980394317583253384664148749720708140629296057799018425284995058323912700997687047918970679740638339275497698618591377836404233633859026204272802547510945565906392583390842931603748737242396191187838273010435903338579715786897377964598744042944056608350005446163673713938343728303041478176879518634545204654756826309240264065032307872260100599843144373902427650632372345279726962078818226069445062838698946549693778499021982618752546199692619390729482818134769678712155504496259531457897801210914937386910160164882487336689047661427477017855882531042833938574003189638588300556680365378988567854852804284968062928875321539622003804737184361684882090236431397826123493882436644068945851669773505529983367689814141635055238081402246984089461979419638060885407799819075500465614246927413647927454999917988580865049586336368851950786426659875439232883049869541623024254161726700444154845205487964430306000426456575908229075373610384621566943472816545690678233416084163440544444637533926349128783478036518785181642061128195192210767418221920728910116342726901470841595518124964146074392066775971968260234509174968680443974114228363334559424136133298629253756456670972220040222637120520594791574906132390407954744680749435527267714354878801473738081300252502746681443187353479838713332298742285681777608660928071369535861009307339830313193888877355825822099916073368898278114840582595544433943402865826162234616117768654703416156529480641676459638666853765354576945278608841823299475975476606864850120754159743023276487709495310225191131282952879125771070075033532374701715048080028884907764823508942234424270297462078490048044076323605989155336295624064498899341872606605410622368009760653235862677972780604224986813039808932306208172872145268269222960712743895724227461576259032202946657689343597775577438874639727858635343236753190208032852899246329573278633802566113907260773248952359875690333751050725212869688398990748550063848556268092833525144685706185066845128919261934035922113442520570400264074493066887779878292914347253514878855515439044019419942647346443307733670792873147147238626631116720973542769367293677447000449776629524308540558232583352780697518448860663862107170965931513451674262748915653271773142537064244102623587190225380472265035979883268440609737068833972737855726326587190885078893508798381639908119662733310322629947378321334199717373500785780154621593888713145119884521470695963691431124198133572275973946106468039890424866903838185426680673649848272211377775954940300295630248131227069803664010245953160622126135126116636745442974752274712192789467838624608255326286905240063219160239959575332686701688341415613054991525372792287233261643572106876976368372190351134218647185284464571728903264899926164587302414192711910403309518670228903146157947616121560548846896584420323499617077567703894768522713608320949181968724484528835392391891243008495031706627964310267312890670185020534113344653371756324764564348632158452051907033200736195153008495859632978625813279848170689378386540577761682383618759553576653978062047393729887758476353370001045767918046662063014654162682253461211345880570222248728192547854045653169107779344013054479667776759538831187150041199659560369596770273995439579816690629011657007173478316959122041564020561319461787600441597326644471053369861351014074821948999983712602369354773165284006379323271499151914731868494999765134719803863316327854223075803308941969970097467264409255947001751097166941257873000328570427701114592616927731009635871136497598033361527607291130391784498286425801670260391781261071536748487579117971924259954862526635557335297670667864841025395247996302692490190987219097200107023175663084837198551087009763454635310829671676530752931061792221500540808188432427928621591204038189854523078671458175592557189406999966691690783879912582343516778466246918861032587314876087689184603659658052842883931010177214178174420935996370603959767176179670132574215948314948777596576978412790085128358685593650791754398348596427387785653598626713260611165033098435179023156725816990413415742954458333420631685514347564342529045332251457540568540088510425528937885570117454635250159240338445854420738123218337708612730402805385086114460597761206529208043189738584591969056284731739308738787510673472327554052410095310226528301160379633442560744633333768060700133310394704469221466537735799512072579175340917463902267298545996319030787829618899286945158439843536989137669983276227030253837949911054597663421120544868184208070474334476420234315446600838809670887307697984498613906702682425265076615706433213447682938647261825023863105075123508094219626102221169153866288221171946456498883129065615079973350342944583015405176528832110214144059613745412902076773066546022374573203391536650362704774686061868762118835835580254140299693688834742380198637144560851828646474484640635353641475145030161281538472059167831709067523252120882579751380580593021299284424393636514843154407863481662951773116375439249118958873045069331221665514017805876828189976370676349109085317018302108017943332235424618133213364457210909891233508886345411497750270983458445571761943759707230441573242134237953838255470530649764026158528039869147280357500505246817865916290107593085227557101702986067019449994845542936780629132655227660646526432399844799328952482047788081641748587723140341772774749601244788115189381417045449952996781587339766495647578454686619024629780924006225472026034930741153329754029172739734308241438004615380013119453943792543343684347640901761678898407105351779821822188556248764264142365917533787782457523397717857196157462845813559654077098532894968930122685569400444452119738929102474727103789153822187815089645670383319257123371203813986237953600432094568421516692502082900493001002977609719728120536945976697414552630843984661211508109252038778502162638387060681353640183259074261360886314858390544364154865932979497302233136077020799094003843184322649980533537096071192039931559288162691485180001656290541585306599041665643013414780176879595904508602390374391934842929255020690209075024841250683451290301409154559626250914246842796745138097953543156536750750874749322703873430344040645372749885847001160091802485152833368486487818853044729079468633569516606839699187726878862048600220288743998959060106099222235534882799786487841316135409578997005957349723625023252455523990640876955309371658959423618708281402832689723208962286981348665746092339476467323449375316658840794340218254269419436319882341239954993821412358182257343367660352725534008475983274016327238618415300736824653446857697277186919172988645335012504779561216688864714857036529342149534720057329748159848894211608932151409127712663344478717447953993707367967262794638822767113142010504035324087911586662366585048112173074395952526165226415447046105304674242728944923057867356441548074597648481433231240474771353611032461272110685104822847128875221672798198720446086764717438887689866703819447616039945456466605517774573394699790633681893237031779419314452384692581463775685605561279547247558031255438230417880371972148608899379230357284557774063378073096199614683145352925909543165828539708647824819391239840745622528472075028182361788180857527519660809560969273644846309986709761377087695237609405060503156918224266095894581028377763170287331952370988445584097794645614387948122581027916582919959801755323059152704595871707999153736356340901045521539318764661853300563787689024223787258894415075838321359828332996900841015153326229593323677553703518021563388243185086952111460248796379344312340120798945582300295843189722352153425042832668804912379507122283143861541476900084195119944408073886593037374880726488807483512732478136118757769759909517733191492683436193461109348458913042061007632471015208875808958999003746353150314189532786328130714270908625130541161272769513658916230246567016060049727247157704221771420054278625005678463355147736127690279355402284727230353991890970272110922670993080137355312069375199512702858225500005456193500214910200337534546432581579103037295854694795301920168530075046461988546030353790679233163420988660811215348202422059910198314869222283528121672966845682838425441249631102486486081752219169482801794254093111836617530674635443324081668659749726091153294376159399246760022204940554485605282770534983992010871237871945788997383769732049951227803742314833563146969109406145973992365893400794013556685574189835783932390879707175317733082533615906082500559496471091621501614049599145565305169205736820052270841974312615806874593837093258018644559524809357591235883789041277750071431031024617135723423002127191035734984844329589970940055307721624284132066140519676404881438500800046061071937622719737783006530559938104566746086812663313521672821887846402166579159265784411833477073965444785157121012150873712405508001399386650915099509570443550170033793996875467562301365919870094318401552977646432872650867532188627671677297786412276050859406290353500417391305615655944710989923308281728434234221975554606267098329057356162103058580037942976098833364872940073022579378654817100006544071797685991201087150717172961773387138493513248625403293932929450800970338802533107454540470363023450942405294136531721846179348010704253316534732457749220680097148523173815346262773769032774207733765499431230175643657330875882322820241311866842179566647412160711127843927032105301073135372728523888570131084193418611412657356168911214207985991629955944601399502332131718134092512076400452066684311379344835271587423169944987879004409222649838690218515224261117707054681295080328124069971870359398866125597655871100084779386209489594453154024089208823500390027916449657727194248852357265848676301759841994207385802977880139053707792631838498710908125002828496337561954343903630713649996229683341457356249648259569660559411639137599628903610377772855828940635954444051391647740020921656293310058085822363728627078404411361692757468392401951287240788752289752668669277755091702553628607035127055495956317881739413548164295718193715146206720472077138150199277777520850860582923119834663599552236413765260078857381951341814538504939881485783421382725797180035289032231486728969035011285204610484545961532299638685327334660526443447112917390282872580765052388282374118308385709328863178816144317800739501321044682957077596327407495911683315947299755190076635342400328656363570424208718817556771974987131133738568369044214417048404963580013448201537187945320010173808992230991541408475465097444601000256200443138570625073229863279318455438833447659294518093466243113300844657377136032467685248499459103455156935752868234169255381495939515869832126260107004547287176973719757661769597587495807184425969707542661334921156003282429727065914386556448190650315687102410321030773756634176420385622324109983972011070897902501251464040384758224277476758636852545789705554493367628690625544816055330897453487451711761078389156476416435023501224381833850321532190270080366955790280034080499261884287148684000526159264936683333058869954403674659092701536523591931575725775567504602600801605600132536529095305660356580441330030065704059860214233609788164620987111164446700820385232339102693908284999583585960113934956433912285515967778707980314842057976946441770013366877533466494290548857436423393010631057495711067146209296190520217555388758145081574426151251654399159037950468725716572944980993651083058614954671924727195274735112678938335148509738145563946840584373557842964771864855774476748669392124922901290043836579191361361462855012226881579018776724705469292919574619853517875006820899586886724665239656773082443475556515074018812682197929623231100051875885344520885570076016962703023794298290532021210582859879378695812185809181140799240204117546130228997587197999796761202662982995177826776135801955953963376163304001705691994476422344235276004726427833145562200959362369109931574149466033916080377795423762584262089375482662154133524667580962726357449581172916627067182421956441351962072817369853912729882671390471245270270885664896050701570509972462139943214314506089581658729662577169881239740704382111758593813487175707273593717140504691770243937409987111001831833952094458237394882194411041234313408203058887719160125149465631413796781767581668485903125117880018720636790404155334602023511636544972454281183662696277736851841700277475568310348367155997344897194179890519016244222546983263626906603067660580288527910380004899852032637742896443671730650645513121478935688333953240906705774299371225640335583916209114709299085396841825670980299357022390713420955890562270318865368985084128318819100903580543260386664078436925423251135233578774007982202131534931951793601158801743797435512456990804316117934381863642204151302385130936940386188989204922439107709712642035998243750046495491706583844270180041900989547866072039187719709742587838802310617707484695737779348537350609636772178993031881566585478442922282917911729103342569132050834490834114596626639355872166156593136974577097448620353389182014488742267122536374050121212983646846708281670555294355049161673230142226343593146098759875152181211678137910493303582873100342202379329379363511970431505368025034231663994103165263726340701502836087855102648565408058845594540904799057651167160152693278864570103607202180735142463107529162149855641229483735592881126498900278612579309758474858929244219631850467559284756272034626944943495060835285981145717183908188055310207942073542920736399969117082849214737736724967368802250018761258020230022859650262371879998185800006004712540292196591733568461623115006838919446553582289142514811158917161419092057811904227648015738843911322514928785669785670231573929975388236863159650544485919820378925702230738349685441053089307002927209339164645729837394188221258791073837604842754041101911434367893325099599201626451240236677090784220893010184906838026220555052471254879514578797998831221614716299305695923687878397518655851069016003482608758843530396162318421628815992475839589086779539705138180133800678972050870777506443039532713987721997478671909488051957017674805132379519945877032932440640006178772670090414681295357323938899982244664295568097513002851321938042592827680394923839906830444066592066505540887142743416192160513076506986357342965477584627694048030957445156306136913000066114085574042427840558737328763054829064322131520421176646468869682157016202733588393347019579465208999059128492025490119854727698660244258547924926597145939788009422845321037905520219087998492095878495461544885895569192919373372943733867654178198082497151637547881445995168649397958333695538220803573455889704094256927650004825946922802562171300592748891452751723118865441965729703577348733694346126429790955386127662799562085072096373309596882261714144875895980233035436194889274360354826331609390540716058791594852029884179249519043135268146473574564097384925409655539132418806624798508604905662452548188928041955936251075610258203974093826958944066204605696773287137964665554788339721386112756529425580204813610043963235501377637134724774951568781236911347868224782799010689407202231859376818285313826070512994399202969828298627415589733249006774280592802115220105195113374568483694275785711843483322782382348386159948420254216707558433102741063463909486481893287042823821183940437117469070258286299016614806467381108689036810801844247351560058535772653420368184350546834352525312346220091319220117642236669767753574787132050163372333404766260841707248643301977123272042691983550105459199286117882977588745980420148145163747973822730175435578872556859121890868186598424679645753778162269643632804199106717428589857850188549417992152211238685667207549093178905807973540181717274196012774242416806626452858610234958411652649760913730326917908007868362821430270371368351018173223136704900820208402895767453804198884687786872089999075514739284162817402082894658308314415798419881037566443518461551969155599992964670256097309020126549860769548376028718661647353172059692191944245616454976702484520399827764980818471001679428704803860131801663144636325313552276454314559861459194570474656249719726494155259377033122649363330827610983036564555093505162801709419013467737860848901133186954681841658504832351887778447183598095960946817321020244462770221714108557771448639289995044324426569498634411115039884485911527659302152885112561063337401769842851810404310640235790236079986355021139426182658381808943172988976981446754013680886656893807071159075964904055791858260057714178643865603018815714789893219744254148908362796892668263822595576811287315851833260907038174605288879282933017250827195761466098243454571254165803072159529120232472324271381649952363938566694802898868454627078746378804586324705039771400598748159412849578901533478662552351437457387964196081974467708239320908203581009941925078005642414918421217446020729019118726946790595001130502178772546031308024232850831220049534498761581281923210616869168031504970093494490040717305358649806314498219251184690715899981619858785307126675831327376300151936931608352969017283493963377780141196353897163049461807319607573674399235253365474058869384019857838346907219221518231932560420304627889996949941652838930828158275603137862710694997562786594624297048995909220620088503730487535204328322094671512667826290603011957085330208475611621403369743510922149696944423646706815489425951439940174726988565197041977309383255415234836389778405250023142605981560189814265139774999580807143103908639417476133012937746226633526793619526192859591371572945851576639678974209331407058719115830291139532258679739359474113039987726872937607007920212400371717043405649234279704080344842743378770761356811863825879124698961096954156671316443131760527710303018169311422205077373144395349904199194476853614067830835453957711433881348759187569663765351593054777327567236456142522377807293453831844300433434030641463897624165072068695317114371381698604997050004631821207040651080838693872887679571862686560291699944739161441263315383080553637460088606695272356166142232907664445613670614585699649580827078760358392604982106061605413440132980873435372654369040238589081893087982629773199409401807416230437329717278397836408058951494861558413248922890576639047457305202856555344740915509495790766246377697639112213049413725688937909742399737679447151386969394462836047094329542289282748164872661095736070160801439324171456279174542502251809306959316351816945932616461196350932858076951098870860281107629367523419248744423265042881862995613491906900610032684912069110386507161590920930940970223797137813834015139964072511008132806414430604831144752275217819411845981265414592070589725068063992354613765675519158879767113872607614968479114169576897705916185181933053908206719778106535887019733834808011109049255846607422031292557654635374659498536626098396551478617432489397343137733812952116011063493288698912864048135511089275027844227907427275360845546636785862266751058480353279545671125853784868306546088109581116756500974730370876121918951938965397738031462434875267898403530651022058748603890970527781910452614960364051100460595884151022373115068812828039871024103817656507751541408356485708654817677167303861637383888096166647763331769706121839896813136323518580978795691686679550428866215733611243720446295637686393095785760094120321108051937203879409396088278316250968276514271979589858158795612527649311186537086017670178627190571991231704537642786516724559368766940626936751692244706558268262514736307982934511350522255326788120033186212054450149729148879205853750003431075924041346381682725898174305143343182049821953735284775046919953807418267073506602143290196593884921625379905899559479249556347181683036123791515657325693236988129879959834583159989293454939666038965386700978710612704431222351481056688504688532029455450794178156402732473634219566021492286933058066397241078560802662008460290873442295010616101777503889885048378094359340902867909080087711249419957005571172286376939424446701945973837339324349548814844285817079286821175607253520457649574540054513608582384492778263457275444883436729606099907936525347003395463522245262905317879382503855693232062938040764561469745232915509432941533292927348749914031668775036633294918710011543965083313375311428779874499435694057747779207091549040120695850988124772056017796758486673193705740080558691404366570957825452189135910296750706591890081866446978934454866114188069747312736559174432004481117780824760940686552277654621956641377424816286082032268870195572015968888517451678343455715376458855117432783968765361062092084710932680179501330977819020204134100336219670327354839579110906858541752754065431893636800313226956865088878218765394638820773853746626740584165768580924584513946422381651472703422696443017953910274895814220380072586640219543659923782407906805284885126217031554801268902934623490226852748073310016790991226166894023607166814917156174202395956568311396986302774713445167631645409097622034959627246666448076606075813114953958565103122461775836661135014327077915282426694236364170842931072840841530572630231698911054208990912818362508279322932493756272476797639629683314359540248765009570055207327532598609068622614382754393282901573055780728549754627003395908115592907729174515101326188289153617736217917792659005939906896433984964749563238544682578035503108174861425950316795958063031037630169286217538936811425302511311521115843939826262634055216202534751867555371850518164643774728701195206053043903459670874991855101775552576991693952315194284390578052681831484193164213736817820265744137867313130275290174590678221452316495610184676765558445875823601718592977452591209584035724640688463635799247204252598859915086583726065018355918094833897899232315401233784116856940673057785523526162438475445169284668387832437884354157550630722574515706828122912278716723808573875627307333402229844236467306564155437243863830319257418809812302881455997880231928621710257748541147301357306812169837401850094302987631706787847100019479050053217780994217457498081457918178651335733681671604983169114186485611678789555909961516436188987086197501422420922962192944944480114616368080262731562774573651414362200902928260404666780597577950501893637246027118617938808766210544624607897135683793170723587917604809707224925501120952713108157122496317496745881175599752806250950092019130821898216258797992866508277928543571334069773716244682254599391078400265476982610877923063616881220666984725303313366718598651708509119028306031747319888899611925704017061180619219392440567331720964719122585058548046614702734698107294585157711317464330249798944770074860936273722252970906283145070627540574015426458771577898449196461248848251580155858763105052143532563981084573352064670848526237179346598401304843692140518483815430489394213070645248698923830977325147840468685224475603141007395188566356714257202809656710082700801203956568288936456640353376878159010778904921468297521447629354326187748662497173146124106773969055618124791820148998708304449147269827653167289463790991460751263600976031259657989023749438513664905084937845318127536661949623936495539671552173796531658637257728761238666020770674585660715976415866477275035512592654154778060358198439922221247439358460605201721516655468361630946485970802682246956618301236921312562876595979198735953591761232980648635790221457852174860455431662314275362161406039061726261708242700871778538600042626811361477114999964583161933544710262935997696949141882485422574379498010118269631561005818624070542903367996209820085713785725819987305153679845597510131445118658835771043112971486690123755547190304287557047962587597457624727944556175762658832460634101455509519299743070717999119268500345877496220380059464883907604378163637121354176694965481321233205356419174768123308862344905920061435083123587834652217069632332678495922481759265145891500500232151132701609202817289959621856880099075338550477993359589905306607461129141863675169820231371869422493057726247885784488522369725880464581704307245565861005462024933981404271716808180819639366082819687564523313276921158877034053368893926859255972279970742276047511153845653419667558862773674804119884820156201490836005601703490716337019586891136998888800415166563160451064299564606291166336044064406860689486725448535266768465828789678878652923036703776659345999698112602807236449529128348040644982508605994317035021367619094477267965756182544413502081158453081242324922006585816412124503308666029217191839775673043576358756099248057912708972107222109578481711247141330209213436931675297893985364779163201420011312361064367965268976104456164630810571000547782048263285162841019078934165313611827838983073661682393771704404451684290129904713400928414247249949193654051784936865253921083879901457416823930691462491916935175870159744271313313053619574495130354255297914354776719234519528046621724446908987940748979949070152676302091068010348807620940770395265158171870498492712832497733134039943206776418225376161771255143693525722679683184441614398845908976145769437974236753965277880846343512785320068020977800655279513671508371503889512698526718463232983026982657883453612818246724581043772775349675815985143222502451200330646917839512406521188656173974789033458137864433434202849055721829540848289720632069557622724208689782211095781759705958992409816533811875722296288151695586325132671002470274428237482842040871705915253982926948299729749988097819237009790834486123967759455738225093157001057446504530901120209392964041984185269132102172886409112101712167814678731755448687547472250588004242433727466451194514933661973295713948427968224643428679663080998559954700479391170410217429317955496976197854753374808121911640093839272602111076008364944814674165672924145437166000894341283271129647982777216232558188291176249735764806251134621920274044515439204271618476879698131186056799047675349736601289938938261282524043818252356271981380636640713938327640379036784915661360960858078674481808641394666290190165142967053722286989153571759161677624635534553602165280060790419754955908004085900052504781355594047004470974781844608069632270581953622483589092668138023827570093696768182450544147947888538428539330242138508847250445294597066296102621301145188078437042143224195564220436812130239004622586897766548700527513183689233686744711794678252424819487121974899815540708159222709966756636765838767560946768064665923244399176964811500466527602717921810103388243765407529927125203383483907259044400678283947084889200730963593980456018446529965327319880904371514073849952336184659216855856393954969567178074779869876561552925377488872623726178642533320040648261033959989822885288258006062129820193593961907348010311402599716402454534004364936049653079451964661358021625194184226535058037562639250843357056735117959811001534409204445435794926378565233428772129236253888808095571527122495480967942124023858067623423651404076244980020101386861798889578108300879709526105159879192738970425117210515741285201391755214272136619228366344319422339446705921497724534278168941982117445680623840884751973118593156924429935886306408607637427782716160085165292997560712642860542245882774962242095705253648777854457845199613936109675559258222727575216463074373731367554120049515463073146264036990770365507708171736063391329964335882176348567585936882218290069950958719426999759152121344064719155026502572180742119652840288653858425970780068124343824880285670363692831708681350206771301617470305741166241631302191682165126278785129751727873070563061464622036155468259187846158432345471504816529753423289249559078347192838897498694641172856805195829677407558051224853675330534179353299654294219118729271658756486864646393466632835387537280368898057212662207122454473964199657075522193790260805372889790387628256198769285204788802849713214457793272146796201455554117951993593410820686469148590512914696692907122065906051274223301197817566620291419621954926615969985794955613820562653197148675896145188080607101631909573834482798720922697030524826097615757344225999871643802583136850085943378614648749995434929641818116947543593251929297048455275204825770365621860827238064419772401838436166143704250174381349484227638826829280686678259417527536613722095437138541016536518763765572450148403054466041597800943625893062143217642201299828083392708141147718589582624671850371610619236289859401089400953041839141930111223659399712552831015695340051422133923392336745857318337898921521947131242762570235165549083065412636957310611399057799426899934013795665761999100840079593918224613005263053674435075394501587304797522525945091288082885681782777798438063020248118901039580464788686168780814951951639484721140374824103876085055151652778416500800367181273954423680016026986461447612597776574171368483758642662001830186360623382691741614622443679533868326617509533660958534751282049991539786902634140332573635561039321812861119688073910047043152505774522346323259503927420670621402913540547553356105422819755563583469046249220265400916811730699724881908686851546596264966808081821136632415015241540991966830270775267752919026735946888730982681455438756896231636723816188054404862113933186564849338074878941053699917412300796266403241907749819402137486659618487000961929164465083881304316934366208050807126504293253880524649756678876278464825984462507994552471119786806497855111639884164924070200477866912620224823702776354626912113889278394883630192508634914629384247912032655004432089525784334918878872038089784280039288257530195501833696963992945389321983027747553402390841000922271503317368620118417076202102072692918207232925721353863803893872315859951907127237884184786499222010590916446808328570567770007767071694166205996026809504288547947707613353836783621041658315564343241047492373870013625483101812521426416323789075720522372417788015283324485310527097216800053819490870109488628340406004291398977857055332161612226475600634600041257458431923805697911134029173599277978641131050947540067355875537128411086020935277848469434018627624051839186779294191095951916318462091207143894410663261500358344014030520224416988955658192868172094727799806485045216982616548661080973672929816796366871186125126354494748861083909735213552837393039253194529893583730454810363325320417596481084528741059432466230615381679906588809387948481026465975046406118561282460169355059773558542846540985998550004118239707798626146241771909618362872667304269786808484945838017154789098288622598437104314856267089884512948807155485279205057362761320511286432249269178944644758704441416103336629031908739717213884350255503595493205227243374011225803534606820755735215484532943259650779267188643043990015971138509670665734205917611256957381685070854238420276828574712776827309997596378649740756547960009664888170938444253019269613471081152946846143319083611716496127691554539610019921085356895097347052979792947903049614752452086767055764892693544344810181740691994052045726705352762188768989198811637278839820170334654423299184104145607858165897690240954049739302674840364956890454113421797652253819760983689145718554217292555744788080439280711930665597066472603170619005938512929424432327273546272037387248007048901056430830191516229748099626918569369140122944163625516956063200066767435822003845553334900552968203039336690725075835561828501341767404573348359442564223799566053198840618266894687570819023467782637860986257747683695288207583887221501994877552799834096009488137463081829272602667347143374806780604691449868062443023303317029376672474423671215355709906269860871691373677247234979372155526929779806212741303656988722584616864740364441926385493276713876952799601747278644823546714325645592105421052809650089166132252638197089695240441057892650124543893573221403028025860488641979368172322716921564874055837370531573778043012852489275271379780216139449275507710094375767091134980844131608291334664602759725640980973997677171431192093275298938590347787087816704864089362267080731193808660660994127356195422215464752844907857961648647468923747429650913254100705413601300347014618505476258050501156761272469450157404079931650831875818749462875919894524311771628782819706489004647824900968409951214482753063657074109850925111376354699988704823864621776410024793136924994078892903057537824505549445531068069971402742804533278548089394631412802063140917689517909164419725865302409698021763872527215878482375338271702248017271263722013230236958858474020234974276534059090457427225380279230622214019169248900484204075842175668292237770700815722515767245418551345549960421079293331386236940616918053938423097697354977204884949454562484557184991689840356582963027882703251079676174084731896551518985688254855952282059419063999461565662925684783615307637203670042848119130067434026373908186676711357920856861788939495847650854740571312652905495321870145477131859123105266361613910888717906421703903438761049061475471075795379196334845321498704573176293397050391842034698971347441578030440397771406467276124358650825853794593287455983048217733718736634515332826097479705295589958424991432602929442419711976937346454777011182521713475587111863081654716309168408675338615705761024118868523578752232705664676840760498718214996752543592441156973179485778578122122416004894325476681446600761755232746583196031473044804801284073835513956060860164005921394648553614199925009815494057935938298661321595009226728991324252982644145838256763302293265051533260691786583901907154465097375024623645177370055081190421938304567037170838874480689213659553915097463062884138656922808091598976067543505491035938085770486178099735431695132515113894084309933568836845453503496826852593704225511428751686324935510401013443571366443065917770222100607867785525481606134209859256357253777734276546378956083553280375552017872605078437657703142070069436631211874070343957387341440236338681036922606872502434949796728135005449460955582777154718660979974700540821165878968441821933388882250790792404889938203309030633405460093282987929087408423798598839993718093949161874640543364483053674797451686015860962317165682504649724205204280491011670782993993829632541196605392965085854462596643071242999338275491517801129397595600312025007770753894263996963064724416107382445304212223130396765133803048144419846453739233379328410897460100393778268559340304325498239513755687081120852522941727041932478810603405954100201200516336245280798731057540859677989976231701383374612925155785318168633091259314778548035729189614972097070725491473968306231220372580607171635264227189848818648645922356564230282410624905308728466772010142348062373202739516837827364083462190496466530542387405918444027508798858655839127787282003921581291272691431104081093429513805609140813292103032881699410602053568553473737832887101856006230808619733702299930803439478682857827814897512466384566230439808076653781213953868553225856719695338081712041072598983287239866822518799892269499611158350130394978260009410680896792926887083830895646260803136247990069343417023219866620981862635936265440405741186197736598567850495475946000207727355885966750646620318923501016217906279629428756481730340574940644416852672881699333869617347545360992313909686336643502177034631509847111556024307313678664057012304289568705045954220629521930729710699626896264350178848060439849995374275298183318937240027498154750343006868883876691450826655430951030846091838007169720206037777156503369401923440790464016878058397154551476150100451220628426459335361480457317474809278188002366648702503352220861280692486668560177429078619123893283915014266066103721505102121049837422235887629011713786063659756586033285496507390938312744168298202540148557804512140871756317632581242191731418891244141016812370073974117587801474583828225106454180658041088389700670215165407064400481425975598473896918386318427632957221517426934778919612349158289970447005057006144195651601258435901282185154268610675343184984908755242059297913757500655703861315594078424207460212664997370222574927896798142744986478352428157812961328566808129741505553749242153020542320890736992430196286909302945316064909906313047630961014561383138871622165432424802323044535217168369077420533496842604034058956925691775461692036890757469984998486221723205764817993954722369505522540834889221835551480146357403326316359237558589741120582923827710546925357212777881309587817016253059151852372968193375564533288311125975606374094321712824511084590828714540469640158142286179592487423326360608485802669956948341464874918924012833533499832393595565636104416434770937370711995344955148411721066613948139063137503247773950525451419289858455922166884142048399362318486384399480264089599208903515537746129797481704995381214036262668007882972543607935761900600826034757383303978518376353714213092310161104620510472925329415470202408982046984808534794505583240048722034588379032898734109523424371905750182882675184732892958811919110266302940754475785773960551182959537076991064158803450631601940616064355598721686386614094464856460316570663786429779757708063160546059674466313467940368116144430644247149067565703158128281605538457819758886115624342383466184317284933112743632866780747117267166013591106783462832516880894032688678380506660171741098734630168960603262865895041621240515927144530950783332520140390102232824260067139145713347716848571587550801659010340042067134459535353370585309706944080911780182346132810997706103437273784106813510370002953829808525776199466592980005995294710293948292123219519310275035487798733720670318271573645708543151725300484020207746273507697292433418363784755012945876133627326431831723774055413112769436139601362448322993476241158522832811929836633143780795085813353650445192519282837940227408370594058823587985712915846987042721318964244741152853019477554783357023792101876346732617902571236139077539473459117217999703265209038942596822252944110358518511696257024906380617157862849845890418041388316647124779788139291879305294874151695723627443578959159149088073151717973223996801938609626980124665045736316795911313382327390648485895295200906562034090845126129417118593667231583540197033763843595903002263444044995370779686424249642538505882694687525684997258886922054017774194758797773273878985070251920275603954165383928367030279648296243937675459122630303994983855639209936059344094859490990410609730833087861101846400898840467102115492793038451791857004181979750219755441631584408610753705640193415539098639935264741665683554531870528015671097978150989512718685558120936375300007910486663828824879136557152684557945074065334959957680013995549832589398862906256899387018079412612457274837807468192142657665059457983582356223369789997421822979732216231633992840108893090302027977127297754961160575523675630963201065158193049389073999323136661100460982623068396299466241068839417630020158291916580699593220673074844848922483761960187565394664876310034804435282122777360352004738905450761214356356233220952528903652130946308021982563671020815407255469825153753887389025520414294483930465104215460253658965115415955318962228578240390119275233024590387914103384371792987329568047484681568760035901057012545627932112854662655667205142285211437658055234999878453686422165596729698161970962609530672262946881462811875236635545235249613476981239194681768154165153691859113846365813059701332674197081648231283935999724874898957926509065933731297132364232507117255526484902177825840805238140645827554865963495449463032783923946557204284202698196741687798328413112219334585331829474783258055376306379881545406279273417922604648941005077888887108844649836577029273627590957706915679019742774678805640848238036013862412718467665220501328290189292288220790734814880409387212979805383371515511163120636785638043689166588751615819809493524267199516964815134791062705053762497242799350219436308693784056384500234193548043673151049016620506971027689824899277208392758490125549520909228110284950536154812475609061300442893614023011982851803763041588131023359160747290503289549493515420092839839864060552561184873971107485287766102873953096026548109407911202674875748751678427419052916510339125421896907111403223867892811315685494666061828896448563274265818911038203441814383158603573662255480116889705128993922374602746138685917719342134716476967403530688118491163361645936549513955340213469670620673638787231956601461112216015175434219403173192198233146561560408232690267640173335554320734832402480990246397324106130508853308162160945332558012978451487441226955812756683806245613980676237922206727266466550850748111954018646783296690993829285452114848998462478870976797548204483075290403879328225278909295634642702143005416458463321811785345149375143356259864643949979026057529139127279364470357307456658147042265856934064169241521468573166097941725427191350319771902103892609620035436546421083399214554135187184751735590799077594553963237470844772428500192953258274551508689922651797787000900744017910890985125636956541711953358321684820868083736583983106488694264992694637099151448328209353720856261664160167593052899877728553691621793323481559575508125166744617297178714374096844863895500987416904275115951242377219264129924772411377858096605403979675962020458000904989672724385206949890682126648041528063250740347659386093113372779400920880124252624088243944767632483292355543161726910113001433532857249734145925575987567641454689184408786099519398219270469412305447832274786825792439082218617364520476891757241732831473961365147371531807876892620768532297076742695715223327441939431166353493920804135435048297672880459307168505395633418144190549417340490562652552333419360350834290923771164784646362751414985801492500930703435463879799092256118468674147331267883033233397837392676269193539165844853027850122542184545290728842261712983657320679813274051892399750611193139118603491229389358725259431695239882690522612931089723650828894228965122239869078741261925647942169313848145652796905741642022970449033514597231251171381781818224677310327802363328237973901471033575199757932697040666867623151589503802323954953690398420732984179705126204503304268536829921266052992080637707761944807641132158313093442350114340439909265317752050883805333214739812686731149183231247695292707641901136426832451026919919309571181770752909939815879551166529687408817686841293491647958495957804280568235334772740499297063488755894061558198810522363898066129855930980922136260711117006890000163414384696362677429374391615633747890615820364409295555448103130963763281917757387704936363594598028635301444686313800737868174752105386977104171736858413768327234603354014919474422572966514834223132249069281205368597693377749587411762720070266449426907691715788104590193927417913847677078020533508119615777211105634683791469084263198615443182928723861208316828334839386271209664824995401026233077780520360611838870575764321063165841460695426967348035289293300223121293477447221863845125564791197762233048958340168213279328559363211451985919213165608539178450817888798284873635278284999638740171064474753223270652281795678770107903707867457118482528564537617697072877711521450995887093369540774945714352381388762325118082776599834271490629569351892388301928270743758744550162375325395606010438379707920173504652598771550345355006053430988131361172680086097138677584702837363663023636670024346606530155542725723771754373316894859297845306416363628058858419212120741511450901767996926666905892544245722351031289387246353554924330591744534002059547022233198503840378986954317119721755469405254644949142299422260910863975042870317426914274164008536710554813173560241735844445533049431667161372802187828256853672723990780894757812114856016340068091647999533480936402737994113243730462140385266560339833701959095635671486731732977355881226584035224188981091166602061449819634059345231632612609950235629259339613369695604048979775925090137089917800509797198794534321480509475551724224525600658871800981894077684455701773964925543123294162051010896898645033114057414964856934000745916373625272277982134965744566524043683635346799522130503254339192795482343355976126399577299481630091670060240610954943802323944612639228485603823274816279246358038067133005409873498410340901615847234795823193452775344018686605203184382215659527726863434927149954951929843980190194351473696112304387430361516566182984691123861693315408138745380317202258032866261903131831280784223731020168080169696757666411413974491650034561985524506908844482083687489949663040342255626210062435725712737144797801281596636337233003977862011495701332382544946429533166206156821551340607933311238400672219889422282953745159942179336406968371037598270661623699450653828057998828720866516176164012463021159594709989327615778728337642224835441718587896703066781027756265809234984583139112373757746127575297872899562749923441024239072980022386634900078804305439996864891287232909821375909278112854686188077118863844404260338025650862050008318076866129946038699026203944693948041774877504230576011805282274009840370454386548618224077516570962948754055989370510855503719002481891143949348309239604263759414178723654344924273853740776903026368968241546443713805158463069393675068090302216672266474424045324715568016378878409598946761840068380520150988170242257936870583180502804682629592496346865567824992231728268174127473126415856699057417387173713166335846760548090209689256594335673465085191193088724734323894530079704395672422729947111481439715226002736034751795597147797013439050769402802933800836634481040254339624116539812021181804825546680990040914140209344523404786986522962952469806787657832160641658474951814485512398564441005074974203527949835443732896223726287998732488011172397606970098430788743868841162107019502313010359828475614678580951793194096483309976457901376323164945347149995390750126135169800877357266107193471524407430168833735140023276196017474566234464231810923993127970644944610755614040544829426971756503749837468182289051512857106844081355040087169713829311138054118374146623466456236978601574895267848764023426454239742683114940857031275495773717917825356480275057110907558235209180497289356740008686042159549863580419675439538905002713916808720546448634913349974430523632896111654999665328441519154784662614118844024292906654269064687665357547423729459180101028510777433366315579457940490080339489348271153057022349376075332821172915133755531538633038693656347532396367448930907525619562905498248476251189036873437045301104590825714763198611208187862931139163893569341930891572088264978418285624061161631201936468761364302517699876705696645271859198609451153731841313698487290073979717939364453285500680382289863788818433670135642182816583961186729253346201615145404692832642485972504607085487838688855975084113949688030334088485731059367619611182766769216868105751290361066119576879466675258884280526858218595767753493062021076091454452903146499150066255252836841028837733831667563706851728359064836594416530453722951131679830206622797534552764889508028601640349047440653373416482700963662254262130262378075575723674922205784528998483619381593681268646358100140064204607271978703611771620042902409928928140747250479954440735902194852864484075777269930580741431314105354287661810515305159338664295483012390955101937229486099811043278660586882547799695415539091041639578487724599698780512156693303884428929623065924828695381729471123734626120539416384434802887637664718803405662274160501337447940450743133083715355484783175455930928848111153594028638412440948963569722142602308723113509645962288939643140364815815818470050458053044314882721961651067112912015146900132324566199710435374135596359147995683142575415632364696430332429800697271442469372659849336469302700808243017051351776069624217263141439598580145999575165650968472921214509310191451343173765036165828478689203522193966103788237771361281714095539735033918994467185560472353842562880072042285728333356260249296758776747688967946023324994971388203429047242417859274180150787775966940481649080256488591038081519473464537754566429222244502727117982216717707484659069089569179319845031559085914703531176365443898977024403138483769645073635134640792235406131493000286376481967747091059454703982789932481345263573162169610487159970580030889238123918997712168359382109932247370273489102795637197700422256159451160929495874264890206909470887883809466091667929737609210186200207779174495260557510712830298273185424845310919805165950193058325440803203142501292979743111451840836342935063658572043587546047646719167198973538293666401805812388557551091066021171955326292326635248518124757780427368576755501075891935996990339331240960002558835222816135355399104446816011418395300096442728779911167149706490634622701531582931232191378072250704712806785969051885522232721414531734644197496806192595828857991595649945335136050548266043309937099069595630977245542222894193054703809574790138405769550289869370045235288818858439833820438611604366130879418712355403607302960938222510627755300755599954752413148214004168937668186342397466422689696460870675102258544659217475039176966579352140326925047102817631050701245186003211980757089110296320765747414316826717546522144983330846033705638298701110488247792834019858107020357110911613523050640306882662037550082132746565287486465276290894847460190394144374916705320958880412832550898246401081414353498568049137708555785354753739073529939938887486542811041242612501631266857268143387241791143381181004042338504508792122721866032681077801361518197756350044696679895259124431321600394155808658524381003877499213525058002399711548233273524389748813221826375523956419300522767940750489292889718900220474315942264845844343896753239869028699144327033059088776822630840102949481304206127632264438347830815084312529730372395700161134661530739792083464577252721447222585407302360331327693560103852494263563249239563001166750502570762194420688268836723218843954621606665291733021698846805284608787282948324340755237206850936757321377277385963803951115992114512822120300111497443833181538732945995908468548366447263256837304475249868361649053113404612729368706558573017385225041542822911663138130965455954373891357083891441539040901974972513169795384157278659604053829326936276863708041921878670027562354368549427388584776695282425877064083929390394442804548140994420394179148981527756828498735023609960383734527740845866463047674812972475945574052804851477090012064274771466054090734043704663115393566618138667156618779705748957163794995770092133269643112867338156195981049414409419430349596377312945788830954069928109682752777679626388145910831177646568570705649850072376551222269168975538052721689597812987541154252576324670022431674119521913213194224472794578509623438274946428559291715985361833704238403448857770537332297740812029947460691099566060319045413068577153268512637379908035373831695998601534538166576526924552692073684589399506801797868738697927554828357811175243307815606940719401126808222374234577474070578264632536283468069297658626637473477738043887015120194402157486159662760494248679350840015595954571229433245190989387728625055646424994673739059294597430094278669778426802943057285581997620139909777343263043320738634917934856397654189587411360025631635763191831396401855763714221643764979550407756141031380929471457817671254419840513841406774553327527098348149445513055661660338030734365375916627136979546865325701516920291456578899904924965900197428026049486587457513853213771889798732474819792715689990023826931102888665584215108037107297007884467850011764291329856565109717912172706121958685501692997811518791190327324968796880123447627004936049108444324625127335399304117509066474820944548942582263803055213242043949460220945418563114307047810357023386109238863695459252680986561724191942581757010600782239164282722742912330453751015116430548225792130445853181576396965598917690922928408858576347716784693189720799920395166686739501449314158438863187529223278947215398685312345193039346658734781976707623435352212360359244668138193920387063187672254557708394534968195375313708507436561935237718895409940279639177658561996981114678385519099306468492706795498315016678099716978890889301295069852360542285931784012204441841383165439612401637457144988639568285339175365887128178572718055910088919419933014335646912330312494154459440081550055759969947682856075164926771404793443029466619633116358529992604116125747735398491498013575110974774823687597098107663672582090830195654725140807333954194230854820596099008622626198840929243449166528649477732408952068517388428788623086761703630366423299565920181257189180413584021008880672063466272913879254388465640672854528089662044406155114194034280710191984474051718120373695618836010249190337476578031661105728317464212114846602776338789688751933407734289815064314403678748716770219090170502255089613172841156955093112830790958540935595198807249678736144810235004628345358800795953444421744126221893816550222887066803825398221140702439060713045838583681966314223488547336139837897063551545397731057840565250735541420038897814658137629978328067734455536291728206078118194318859644377312356669813465429983935561540266443823028750251114590779543074998266352886816451972312686774093987836643481872968893497204171490107308231919406970699059961147985698007051258035987492306426711436642325799096499646232251806430156656867228802448404658652238673330576090988280551802016011504148483300143423810590164817596256420523196814219351864707110734934559449478912296605765271461315413332583679143992656768866662539785430085035645008306286896892794738044767382615292604817086205302090393015686719147615015244653361826056189145465185909070002017447947059295980639924329880685753982913230601907670372776699677402466610471836794551608669218341945315735056577898431948655476526440398788779695803528896242353051926446748755755281577755307756660314173229886570723493164600687714233721225249325173910274509121799577791393965712408560319035827687250251616604667889085201569925183409382587968699156348602315839343790578210784047262220111912926055263595126237898043826140990325387372392935119482239834437300316358690228326533243851597890292350784744560472634537805890661816407405984222046719790377593381471164479842248220934524798928716522171739267838645550612773087290315744572528755307656935434273617715205605372068678338005026810125038157375733992162776901308454203016771736542048498555612067810259068398144668000432944660651217097616123893127087768972892254429844906163789772105810316196339356773346069659794734158749503921417860134994754874286713993636433333598851350834461290001958882506605528210157129674323345324194351143279796914129148384767845409847811767354648239461017241760282443345065020884842654857476219510474563002847356457815851927767043331993714084080195441396405519248973065558915314906571576484807245985621470927444501842012738170248390337487964680113050752986539257415536263354750430373587779029457001366531214175344681959075337476352707223950556939073598642506433459256954711030517236784290071795165299011333419988853092705196208673754428061697681306018349148768401752394476624082327361550396561343879415642497487757289909237966403321824350061764717225423547570985946622823500508325291244043531083830882682137287743531596174662899247193047178033904206290008921756185501616498164292158407502798227808555308669017765194057711235341994072314560401855840868039977261083928753638389439458488892622637297313415704682367405197198167640749889599635024773152486350191188012007202848750875539976559821377482758752516993092045942325232689655678226482588463567674635933541582179155623354536134279079431766281568546386004730143613317219386583083482470661441532170031755776260022359511128242431553348129305599046180397389668465096866918884124059223623512701920026151350164665565782949871335201027482212689054992500527326296858972697271691519066404895871893275083787219641500520677189833644168743635161972827229646140344497101880210046104132759759460184437133364494947144309268156271816655818095796684318330155304746120178418269658957269481760417837685822259927326591261081229007892141571358741250447325923891381344077386286752126020233420235938445074472787138984815828017567686726438368672244144927642390180932679785516333164515026750550142160544316174378103529998740024933092628853812572763980936674696460411479302805084136141012983036949481449112303654450763700454195068927812685920309969162349295193878537576900342717861784904490257243716561701701374484967790727172179935246116606255627095017581693505096375641286405778823738620236332664022838415548163723731171694469433046675323519980942091206642023553757721032230510232048003365522403839368738606466006547984056180532756525653974442551586848151742539988482205858060712463952027758980379036190341249272650970545544472520921839406462805119250099063655696591145528587361389450208295620320720487388203333727614025138760686409347792867130864342137967047606138683601922500182046750933313596134750508828912500181058117331048403573937536583464386776864314955297111893167073299871891701941993401000946557276246476325995895889007633792528814177887670158598729212897186437259704637690610554367131073891073985147118387530352693127381098351851388024346433934785748002171801966252676776227937174059953253556569202904431501956059900848096455447814620107243426515851014136965501547614678817660966370821135623422165966244101868873872223660285602917991275242644709051266581992030759329670107363009720233279760681027308581891033220407986226000008983955013277274209417892120224439219908718985592296996290138812497927480512140858102720324383869134687857781131532902621602241938250663144290900929459836290424016423202935531024476360913567929161895604019946169246418997969041685238438811309126850168967266191966822234193062537458156078039738291472841799605231636616606566283652284426733758551968772725595104598116653651792281712944489222636789482277255576852314714205750334584090675795248182008999285834773861601490888365455554500682242431502675401260419854588652706817256505581789139145658790382793607987252404434962434391797420716074268760569801706084895810776986634201181040212562495264084018124620089906741494229681712951021192697351533918944856832254344737013067326354284448708281232921772830702456442120912190068380254521661716664445666881579879352295939815414548137188570766854651267254443744562917877976444724702748489925608348137958599126971715500142358908008415608620486320758079382400350461998713132633261678469798024549995622021226825135661118494747486502030818870298719492324952509503140801935755351722230638900123651610799024447487896905534322768625079889250661941875349913313559579257251622133185906596896014546949837558290476862007613921991726357820862884945997345391841044923890811928654786003781768815759080595289482271739518505488481742982296330232854548229101105606789153051658741283893668483201863225744309844151856755995735032131353943730013814217832606480748572997729715202544597482452000556539583108791592369292680447338173654517879581490131824382236666364637427423426531781546141701964637680799330480287418744999305981709258135562934794090465740173480225428846701876505158584125440841375507289660883148582002543967053464516199762395384354521779720044343732745293186671613410303252251147365983397453801403643324182128782882354744111339639363080889061722696966628730204719045002725802159403603963922462429004935395171963147549950480493325356534005072510592877795531650342274189772788449264158106654725042237915071194438243101891508530339295532142883125387275845977913089155135093934649769704278335528403585476572210114656754543189926013734734680543047292431084598285297321144813980827233945542459134951787724728927999281521864373059578574989646489578386300821621111718517378029537384297555328097293977524953281819476273959554863879611082482317972288799263851632100488794851078546332020330208656333541313655423523240978462840561577835361824980825807370703055522604000354185567860245716158396672915625197783646241400955283357838572571717062258235344409672332644232611186232368989965569083191756328702550699735931544124845598855133804042768912671686326813230073826617048482210190221077512099324774905936853689833984841793550446891158113347367465096835745480339421822171675275338301147610700321400536649437174832496463556861466641403915649697020853187581817640611604960247452713985213110185854167751582097977094145932720858672335467015260755030232516337954328886195788562567233470854644021652081160267634014211293917983733702888029502459112650618958215375656057559199850819192583614203307996757370898176038407440752502888648775201052384829732555065293155732789055631063327063730557760342521394331306931108167051937161595253357101033228772680905122628994195382417738644766263725869126369575325657137247175585972874254604436572470924890509996152087797169030652319350735050098085255615251989408964961780566153958820479736634829079285417617410224168058822070894660674007584388380246552267114817449477230271327184589727386482238059449232323365032092435544152446346787713331633957799983136016906869071435982361524384287924571912052422930750501773145302520704123287230177493398915132099273519030787549552419396752010931056958898503602871180823907613882300505590663512817012020336321039103828161224207513235670420147703741953932872200939701967069403032369995065670620817075435363697152004896868513470819372403330424941248956774337266929477765300912508022763352595371914966150374299632673227053429451990165320981030772719563378160669425917259693221969142610814006037262536816742816450436092250804692427095620362268839192894537825499129759203683481711627380212213871502238936173405860858172600305490987406819464181801575306516898931073107091935826586607019555378988020430822787666979192226076960640978877284185272754983117002487519087090866354671610598187326557855322341352144101688076116619411341442009645832841591475621311449547843127747905289813552840026580976834050922734060515200392657153601140695007129099118036280376533403939397163105063345986430127274420265272913167232074957319877373719934285724941622275167788377218378363380315263168893818323031824266371593963000367820334190602328216924698539638008356672748424917891102539012005025607715233120059509997568158545424808309681093023998899909778355456082515917230078470706924033146129156583951183424225810389349833896313150619240857130099604902566169450915149197139718541450713230858767161377460728365860107454824137568661616822049783495506317233030724089627963274932253411884800740976179621996840928948374150142756331465710861876656013086908505252303341798015018283222902873402118574367851700412348078863179801563114405474140940790125283424747192858587405037439475436877499627004238500235272201656301066022838404802614459754885307330192136036455460948733173542396531183707572089442823309120400895093277895408147523260309390706721051044707413442869988731314890272044242628776191526212290462185985766256269741112314837460487900078993403097619595683102465480075382454082090707590238746378826798447570893973812911746399595431481779986114901271469028237534499117661650056488719676338271281990857338514074091057962024943731231319398653528871063702948188715486357699931957426795998503380339347075496910137693458955551306942400484848722001463741838116511688873793822222009370458192229457201019267919585766644569385298406366397873995393299436298442730482255704118045357436345388160371060318826873449454247075057752627056351645521455575825897170186681356438199663164286845448233641597543428929275301763254249647666991085646756008169539176000924022403116648259162702154241568532538912680047328547826346511985960317089054934048426193696229102416700702404743298731025898507923602660497929676747434000066727716570195372776290451934065676813543533570704242725029418951008100187263767545477311008027161224490581255466624129361066487367821951110590264289939080386577724780838820457444041254529370383151539608370038882968933799150555077312217063397785324016840179008664117393313687570231596686629394810348147398763683970647929465214748553613130107273671051051385968418191284486830935633413556852508358652184250485623736552282110213675862487474356611812756579142396145013096083476251642322841783474230637759135411209169699812957020872708858303757133886607093444706174752858728376742467509631217839311553559479776091932089519602336235382596884540286147364501348502877361855878712503331245028423151860659241751137695766547114909301518717448067854579277803527409523968328535506951667214056663066314612421161662690581038641566191725969496595728122316899209545313594852230313047974985669192420775709993072596085159505042553540100050087337225637609228662693178336704811286362216411061153076490687571238243199473771236443160789248384878355634982728561921055794522364005875076271799140701191610192802105608559628470897019950206277172957413792148269276339323165374798317717592953202842591192077673221553635172571216759203324066707601588813848116773075362895717938759680358733557836603080877692772016365824268013668516346139783994692238921083196829729029425965113786349572660104663982292513145396254745419451594672032200406269860925532398715145729056194840204585382658780452603601737777276066577757667191328497067013688347127951337418183314233247486562176951506260217119928830146826528909564276541861542561661016185577291550865104305600388151103395098884962305709471103218627816804875974436405935221344113793209817585956533059181935350799649442157611705797396081082597334526849824571384471140777143456492514627700002614049704481332585686929168800301286552044123800843598264735204513145801018255901152870019328330831582733914560350153525603743800506729636788098185328949364515099554019993867089037975779055791235575792538120744768191715160065379505975280870799759066402768277088730175749474083547595003730022164734110504952562051594136525455949473860868400107216961581591356192179049903891538009306734467905617628326445271239215061879886784087768945560853083719787738838682700486246832144224460635334810222751553562306018903389163725182133056698469348952472546845994383751278583822497184597057450016294701368693484056406811492282971095213373393326071049484075194012584857697158032418976305627332898197481796132763055172783111068192984104142227311084577907540397456222035730885574158770971822155758092797566738362533104776330201393006892741130840547895683798697181815209617959195378115199208700889306432346084200459826048752849522605657827337491790973405474830276379736407590585253243011265760613253290000981135139798470003007120117796588337288631590408937054038374366049766391010355159275160620746637569309956923186924503205358128362615506256967127466297984157979153946288838653015554010393623800216744301881323381855974470539995767827965065940701385961339057795469418887332715535381560799442147792579850567232107438865634070816109066927472503484942193808350564025587128213481163054557344499328812029335654488300803848615914504800040281728573031271276963164657904919899458835848679672432713278039796145991618146789897681581920553856676064960347374777596818867136398543976545255954237537079692828360009396338037299708725638107755474843532396660952525728672827690569026462300997473509090433642736385221589872872150919549011557755028868948036565686913605407034495844769103074741413452959721570774349428515992484864086364738851487941732668150158105443468271359081968640583447934065055312393149203297367244410451024328715854151101712221169119044914559905633295457671408343286183183306343287011788718752361272471424815822001362827083571741936636092078510312751204230704761829001354097391686067691467188755446552975771353585778188744376876576692059962578930042170892024946985001824493338788081686065115034412921411187595425965258356447950383215995411909126504296660675316510050180428231737491507173549787440957059834504541592865806037047485088441006368731792293346389872887380434137322107648421922977597901479935172145636349396506653959852905176279061537876787116200945466960677622886787624731354999402941424586306515069384257161281742761564453127555816993022327350610125784981973926427769091433099880883843753887987788967406534700159849532004775656421437531985108083455856747443770263902554498613592819541282856020976466409645192173101767220014587214827280608427012494941619031328112284759635220122210214653001419691010491373765501801097359612017515662721185963710821404540485147737647268927180020654790923398968242636223773391152587506725589752399205712041536388342515348295613382000759986504119980352230095591978661337624801438340960906290744244068635200228756510306246798036390237073549110971472436003123595822942626834874288238756673192299899814180145932782305402260361631948013901389886944640936780275692521225460091524490436749288387346930485245795867554262614263878442765663638911237160783334055409756705169059723056243535924541384532953998543319287772873024297590429656928351980737895907261836152325718324593203850174454868647895465495694233247219161953125148375177266639005689039993715742559915012255195671182439580620518921468902681166310368344268571927833224579623639687423926728526403000224508553312157758345917752896576193622567184732201337097848523212558272723895689659324016427932447335371086342997233690708585341584633051580750450128499714859844686379283338711061663273015909651675897612081499587579046046378278212551288208797611338735795549323825855538176300735906426943309173495293616453478395456332902397306982389378789945689855819683121083817396084590326161918392279859338980820941961803303075128414370581169048966754409121107336411700237495344883627841641607128568197673604408926842258006413914263600821981090968883433839171742849973989127441879621984448793097948405832702688990140542466654643941922055537884855046813504594312555369227644839039537065129370275759714926120797854167740833974850440454618891730058450431589383257472375843291941340121309530215617563228714699623770331739170376627623129826507182722269971398868085789289332364460099967508681647664228935349731450020355228583038633289434596836374442782275490144058121455230676837102182851049788124418173064479489474044690756008626273123311561228972020315665458928792034897577122947237432022440471822514951441297817835487462631151115517154484350756619929680775519258225918675344969209084447628235123006562393383589125133865177702477948963693719567702929594178661144048457211125666924491232864365387158561557946861813190211826614257623648406254051976319454406628403586478459872469554942046753256802854138453419875458766356564560222720025535475392736767738603593780733011782705477032919519252139269809425029161929294594133196490735327902280521039152160718887283725947285814433024717674837527237630385561066012954366327473420173768842816728008547621010202150386289569457869316805398115750081421835899489292285506347134755586367139395607033519093295033917971679961095337473792030575590752198943791526870791860467866014422708422101882320445249667081321062015753461302612693770671238033230228565616771055480457257840183663502563227192374441895540948937893386502673152691604031345050297149517568244906532695131436002576083538533146967689832435508715682891772745424450754589980224594527714802251683187501560846600359846990893046260695596459638541917367223273117350545692740894439909007624590731168117875448922743932802162609739749970085121349626826589523911791662792536443137869794687920437043866517127203110327645170662152349634591927340624915146225637246445662402322532049675907217898861444007670470088285163167522561861590359447411095459902142363414131640881699993653357925845452521035157557388754407363726053415856149327280703944407157122304562080097948029537892438449357417817318478235444530236354160781830112089753710572526997228566990003825213882014664914941074800577161678977209511340634514588472275078492294810418804124246930539149051368079775951936123304078123257951666466317075189503187803829798611672519471993268258200020822210322711390821373767686827108059065603300419898794854567102993638159688870938297013329906016045326407817438519301582890623919048251573301288020801119535723812362992511802464187085349590028253309357537748141923997473853056047158665242050093304064031786430581107970267255959579593247922777028570787690479354326446389198017462581693431980021796142666016294894969294509769105978114703090616208553063971783039012575805383446284709551077187377123870943867998463921964189794160296357355136930184533592423798090757451489242259900589870890423665847317754678837608007927187998547310140595274009698012408408040175044017793427723006362756169938750273386963026417603647003441524793282169188649014470215062948634503601290273688852475045778254351583707664884452617302778397138823255188116311192147246256461703521388536002704180500030157680595691753078489054687351947758771794132802086125766079167849555314072005658500508648898478527746487646784998288971280873235848392575394472611935338617583033176851971847055708041809605491405751762799685396696094828848656845403638918886462423966023857876472594874749242842743975695551622588866218373637724064411070965078432360036150378693975762019088023644170747027238422881488570481937128769600463473546927188820757485251039635175903980459772356245431898833184650366393638205759888687818132987925175811679194219656621746088285077723156196623297776288367706329768326210408373785590712043270253177366821746720082570098760865897463881804108293130822355865163069276633823446654412463744807763557152524372860379189222619072919682551498190622533393526508668664747060378987738254816000164983908302915710383907576710193909508411248101550705921896698316851319802199529020768277513530415790985493220930421633487153726398960755084959974596556111350992342444603900198557166129624144643990425262131516112557974852670112751794067671719907163465522898505748212135564006222708061590102313823612488537318739669838250121929987652875518560143289368028699248213076530863456450388141976759852713751689305822287666200259905976672921098901758947375714846290661826147392624675514543931076546828386931957537210940956792312290292407107946954606760990583380881484245191516705314023351072547458044652059326536943830355326958057451522940453469502613359925444997906271165118772238528319452802957778439469394371339181819368042068407758685505970081114693298618721585519995795734280447548742170249635085272437143924809541545892798006976890705297615407875229512314978804616337018107128510037477192550464915919060059260561908272916685804467593520711081017682329619641035071618805328586569338562203420574083377030222000799743317178744276405002834470899696002213740223394875619642582509053573492549024613813279993134596398248693932265437654635332508104936570142477449775259883272975476153500909665410141937429838396803454318385893969742127979535676067519460058498251779601117235935986803017611686095558611130916301930807233155979108413875536885892354211502327017717431263990728509690681302794592901960444355062413114139709114350044728785264257147108999117699273959808891618921734155430123873069688435360091390051589602889129187269796609073693683009802420308327150461736283278170157730345064060916354300818582598396119436535196248346239284645393965813528117372110451364825119751726444130506203466234954940116504019650533119535483855679495392001929465772633134011059465629471318850375535470970081799925402666077558015137820723864968207433961757559381402549804574155240360238393356035916853792187757269953661228633651342960633968193232308569144772193233580357947834575931078980997077936016229729396145337585969880715671728477323937665380253160010597957612214795793739874596272651865529230140837770644792077729328946866194033339867919990452436362093439978946471826849378704704253819914799203117916258861470991958964444036325742067264555881545312477616252849322219280370990421705883081564580445213414872889072242539845805382430931859659106190837801461136472265360164635832956294125563789582779842733674068832791280980705178262838847258206403805923199197086010115020822101652470208763532925734672865418010198077573363647933502342489733865404404086334520021445877516167063299559213583439397662719331322726189915281336032214556048163008582723129867017997502330526334065951826074838237702663371501300196017491043406200651156122835031611601984665736039043108998048365268962162233226715288431674195489632252080973864231034106537499969716097230570344301169133221330836168394063535571285069919026855251978289410979322751837195664338501762767549442949761570950812793834585626304741346251984712264267227067635033149454926619121094326616521745551946791259598113209341805576652204629535284772547949332307257505110927016099043131047083691618137590294626662196125704139678688853422221273950346520418126642392230934720280533637820649806391198059332999619267868816031436449037567404431018162267473235718029950714802192391383903317555088157435065119612158626112763782485398172886204862614741593881620702894748569249375881940575378083261243404809617365135389476999025757425763046612400235593574721633218857657549485863354299576989130972209815821930692561113087966740202536177491309472619123078318500602950471632108977547134160347559975273918023745722104628813913462103857925038763391707798963327349437374679372007713780961117287262376147637857360556197096418300700483782004942851208921449951419082364258546384068981284033014002259232995763463053135550545638697396423785227702605660106745553811802412117391068125164711669044791800752593152013438863419706930038157548097230367281966781284517969555788265249916799756867213484207847910289048201752337780765269927741503306132111304915267254019693192662206673236701089150988295865982606473701206242881521242133231780899375808612819591854888849068804640972136841570139674704028578784748258709794101869237301644488508737969032109920782162255598802402217850149682815424115895218677079816021137971837177870195545850992105554923680480549775164775661712878559405845541348235489667445083773810286498080821363852144974411169015778306471355623465486264469387190431296099418200623827306280062971061964243992871224405902644331258921101648130139891734237780532391935687007718345735260982389480030663626497521050368181424134069067220244490890725880823170582856664173320241355967247552531394864948120983467510292527919615332977110119203166978565920121296318560326851502057197606691505303472408572732272981981524371118485590318673019998362192202600216037036083722294068155050717615596858360561689705196034681176817648910769254131685734619140572107969302236786523979376553654710591462208567731940310811593540443808289830545346871659337143347528491644306622773294060623054361836473108897414108892754744232617919758454376020564503884351426820773652500188348656927510014861833157077966863253649570451820888889626658081243263650404918886493570651834756206049501653556677656825182732898745978185138028440401712948101541693687546231031935866586564390358646234719213247919766102710346328598131976062496838044327732631274297448247680726914672588001025140353199802646627377707096287450762593784635070942129451815693952260968769767835398812723745681813267961105389357357467498572822062247021750374752885873547889703853351106305313369759334917669215487624893904542763823010129752826227214292842677295156829047854232240176886290665536636102494291201983393254257539344528906820378716895468082207912034307853972562527249253882323631366911509879150296760594757460700163324398392555777835858873911338233793190593767459850216065480723669990882111891087989140589239022573825951494267797429799699071402760732798684782675633761850175745592459454426789660234767529349463449869617465580258212207484058721936449267750987210180543322460106194351641507208123998621951238081868727479839043226354232931907814449763320075923445543036847936164409594776262622816975791432435774252954692122112428675103396752234098023062093957998310140341879515615792592556488560972829723736617300380694343152160384012588545932432656900576941978618825717539345466070695388980808242145347730247192028147981167766874530954217503345124785861018473172603611996895990665446181168318295940342123387104926931671687544155057625840945617285768999083447643879839018672524303128257319484137315899662841700083065334951309859751884006910979918593940577663065484529219845146416118992452027090395406794705373611639490026786525235475032772692603904368417687446166655165961501966664401013982294314124486327665875087340824426499278984406239307040568018755490190364480281452227943848941808106468880140883908734018053821243681201102820567095019526936246975664437223028129766066386704168734650614706076185428091398965490348927662491632079609678127578459590143417977379981723780196941940074668947459141850175898671281244023920414106870850767956263030674589451649572515254417731313507711870004967465068996594524752858279157321776153511808767230274975034664228369456585707517658680459540472329700859840164318457199622808073372496338718921120870960057999726841883970090011995564409054014252854736775338567687637027192720534919689606101855224393280411118157978413874688677447666751120445349170381303025439946443460806777058386028889301168234211156503229533742355177985158750494833298964707007318560308896581991385380200367071001847217792202847933058312429516814799464194694602464001777179678698970965484011381048924719694946995212635685166016862626653641322481685810602692601577417632060140691770245428998727669250236350544219597548889384797893612234287648930660602056701262029973311899721144266794861398180227361061205639828564426201521988751861032348538501699914734891590999026751345321471030713081717926300695924927804699745038677871583537194577552777310615130189209623370511356387388268297206297417373622695784460216250009896722249756769848070755052721510942224863911310282108077264040001754593364719390206353163087801294749387296699635600629975847101312459197773538832905054594577004411726104247979908078262647633767287349618570964220712316620663534250229603197908193169895258204342487944000089718908191840085941920715831630278462808037535988616788473392032170105103310011051136954414306572135507434531192739848092754542717961581497907106304402657377980576125740283100293655754387775453587952610092851330445961197208319314857594128502550677237904728042257946540422724170121806164005494578708580983008419772425300954676259059663777949181941832862470439941018698133042048156145345099580537455541394250341322372598676582699866441625623890918164069440070548868944902287026561245554565543046386058749457760162244998404131370965807238102637854954114258935465180408247250099423227265044848601132213415834849348638994323558174977308241583881603050306032302446998112479448115013540534653752449992446900584281309471771415576201043095468144946585055512872002042199569834195502836462642780458083129288768346236242304220899230720046671433756976379566373659013564124348044314826643297575037190535880958934589325300514939791363491973364858654380729067624744761313819727105018020357131550551651565397174678637595305695565347951289649182963568246046614139119950940278668587640972213313106242124121233371424836543303838413452221753022248511961366456406183214790493748380769128128389011703793754072863415893938147551633044306717899887841251741868691023953645316212304240164090996104878069218803935516362982815633234934031552454761422303667087070965598378456153366939526632799748203170964350561148710683809135127809561572362332784945090443710748099782497533843666555873959538543311034451001369932631371121044252920254097164446185785171188601500169025945378377382482168296507022876975156469245038090948031858310180321845536581779056895572192472199370767051954615075555940428364392974686656527580122041204590077891625940842629276423705858298575360201127416766537504747029249992691970838899097793176061565328728811413886429565444704316665890008646242322737400870776303624323316503249768359744403879510606153682301314713472618594074545700989053785982291816419766868104646132287825657808321817371605041102344883530326498885534740470900959393309159768179101606793881214318368068932977170410744440477058672451385895834520537620623395323006131757421760362744391538019913057092896650252565678339582584641859807908662759623476557235630005108799155465171005845810853962637715969556557057858980712724747020895878975581833766946889848902557615898028610627204567412105743405619541020611509549801069784076771622472177226356174240701406083842895020055649940964060363485448135184199058937929858388617207590803008525892836054166687916760305456012207050737261944875962854978591824998149643032749681310728033298792945300619461050302876386592276515532593385609781845805249579239180234689734099249006155660877569024421968287228237694822778604094748344675130048578591472236419754052092891074119332596202632009327006135401605636587465682311963584717551460263573546808838310860382325616512896155156264633455232262076604644744082419102943643303119511192031786272708192252802739819394209289200937952795429992622478065587624674209055798771357450757694467689754888355846801384019356442872344311198636442953756136576931232083451707860880311327566453726501270198570848775402619266570823690192387010649206962657711014178740240361894447466256033505727479834342919318073099259444478060431951255799984350675617308621797733061927679754186948825841224314969134844488559875930285164970248197075968617069716995325472196535345860388473757117926072672854157596680351608716046462637592219421822254928898427848735529108524997735006113242670625887542458384572272032858979723099833279167600420564934857793754404018573352678985103098552755104027159454434356494881634283777043406359741111164146453513282763952041322852195614330710819500694334738430563667700821395847174672805196062759112145338284741077211358463358021065989047379459677182752440656815195363916713032399380406216616791634533707537927146365163971191917058027991867547312744519720446549735239796641398298232104645414721479114913385815919849850766504035567918441176307130327887061986735775497303186622235660775804832023532349194906397728131172250994764718954688013006519815976517058705149968077828148571298489464861317186669370014050429935875499923154776007409691444444094267124853397982406781414418008025427454272557297016544647979932319835674787065277283526978884429067100114814750701638251705791856820692233246287690709426462056954568612582359981682902477364849169662201689544967262755994842114715240825488064349621801008710205069350805424792508202339090584704760279550439246238533586919960214772588150831960782196031034884767084377349955860315674683916959153887374030740907850170058731893794735662977864282169045796192383392942820734544919064692924201550342333072326528232884356076548966566678888902047063085728780989586606954343312680951071686883513351877111560728053712556818803614523745148414112232799300246622179746710809409668084704917406199715795136325114330310583795941606303246444015979657372099524350898292407188454599300987046170678116047038713018698805677200277455799412981750924865134712684454433392309424419052307434550607394653156733301521352933975882739849224817626157870031816851248851083014289773355841336902055511666712469357933233445965053254731730545270390696147138951220031053874376689151001669868149555933537329845056513148489344080282873102241344002727708867024673504002714633164697918351140145826880205612831223047388975807732209723320705001487186838631560425617522799146134576086440257593795856454627249776757694154371081651264237340489605854290346306270589055619923904590547926744074037251349479828947013899335920875232615432587577588145505898340618150984922707758927716543397304624568909795922138061708576203093707383634889566528125350614654609382068789227217112266165829856279433407908793386789085912087953941106124343989054469993348896156771617559984456149113096326882169250254054688245541796523282400690444811868757196249883983500228997307232766887370930678537984682325333009418530956215222253172511996327843368909757215275246133074630056468950438515388345190860210434322028769155360298830882380316135206333773604039476427654204623833443556762606960918082617577384677438974782551538819536568810304316105367262163252449952355104359627243789244575491262750199254028201735617685478318427248560985286323875853845017173042373674915318494558141421402108156305381223082661311805581851690464241408962599131361057423515901953248694789868875506371885858785174831294226282836130730705585416002503398162882630778210931007695269978045060368273469683534765813709147527734159982492901101050999742766162774505385913225221432121026032691001516012708368678468475681708116195869116237743298767845547200698654347722906973460761709293907841511752157868361040669928627169821763346136352174285063748652817515319288319469286882667683923549135875728017429729361944451348185601180208976215748216262541420370308179724047624467779891215704934507948398239476700112101462069151596460426325411378675200258292752195742821162065676681463705966508938631864480274456969599684649826817144668374001091184575823073630189467552176072688448026575390057577978583255332903062852753581310642938315937071150384116519310929512814708076782816529872034763237040415026448625842721650434489543044202461613434905330580041304333020314081609272264193232996384045227560158059972975077628509632368609957590485334268337375805391362367302060453558892639145681288724737963321000453273315557436587963329104116883706112088500061165165193161967802758536694881250840738370618351934109703921049701059001596729605514135306616646701700094732116866352421271948257243971477716437516092732359756549766025536298703866235585966178459994232401439491249139901530348711050684340524293635512980151908845626776363254455395828745288568707870647372287716798981635284133213454293126406203972040466754119076249339236255052074691678075323737727363415055561462601492209894879860507118925860100863153159690246051399829549832901075397035062301257550700844902274845456785519642194026193332479493228344170553830707781735970955171190730393373546863188544859527055805424107869504016846955516378408402805594309309473082158166515257465693021260477377577141770219644060129369649004116352315928889990830827928381852702486892905588473903624848173901261797852861739862406036170269168770181761858814119732808290850641071028810064951089126810544628055475674836919983361967045887650307034394953474769064535495739180821901501323698557113008896013038224432927894628962694395102679411264561457503105523863595957856328529309117718468315618777243316106828569670498887890600488253605601480277188653135914768116166438089908040328654151024142892684674584193467011045263485373795633185671998845187010514030729048999978224442634439013123930372446474428776756275979630841407961101037860845603222644193695789562666766904137278541536801785585330032916355036889486509681334076302300339105554936742333900449994024975653143502722402742501113497415572033723153319235113462538347344227580472776658094009001318791500814738727727025167740886634232556971860494216568694550276734130639617409049352069990301685121368727037390500362527676322643768397377775485748710427315344267760632211087867702153399602423221327054570218862449073622570517381884949541799527438305120820819865503594573071975698469042789393585067132558467985885104924930988667367828261079579243683539316504265329641899245430584773275866883124961358487435916612515858765459331941696213085258677922486207564496784341922777105677425449601761140531404366474670187862555255586335872009166363807341529590462785886411175951435755066706387690051003236428331938428455217225499063161884219120717695843692360941730347657201060130209214477607702250853910937356570315388440548035455243943243886391767520086374736374729788498821235979804997828382924490689387225437064415117686847981627708232020572675530338744009662633432482501215210575239089407611153227663508920401276826997067873587708765050221874929662105998408788525604146701299780703868132531296453307639608955844276480479109514389895595322990028867024480551791340616846958405031964252993671750001617537000490635024635810792868571605393138815037961726470578483950540271042011112435041403446735601631158032319115994166753882628650335826675940618968106030637819688529028329671053003721130350301485103802787972860630797466531662566801095766048951701734466159907194477076144008953243648321638576331062724521411101327836678221273075645571069586200281757271606220738919123203125099439553969415549831537911888803349479170057962982774811013777681526706730309228157333101128513199865681728420908859677916706939900621463415287755311511069042408618809580764653512178463628968488729570401886989036650026036199941461413825555984583281392626034443841301792346367821531825439751483335205202971413553060907371652239582041960800985931583394579431669138813685091469929575031539364213478049278127919305418972338974587382052812610174193350590010185367011351349984624807977918188122527337963915840251625754496667860365987465761596196854346291490932743609452265204718451699982569792780064403684022633639823422077431755198235615992794106968864360425723535052750451039552807296293999856833874598664521573970296956205657919754441336279218558991941634103554613645091103978602185781562045242564802092935640438749855931396553149214133233797834112065477900129237593479637778949344074294374178471140636370229192837643596720796554069743374424547072659307704422767595289583384161796452539239710555379959817761401711520347619965696765936021200838205980939808888264469005223716997147895396818824237867984108007565068664096507326898081956977189470967410554886495737225488143507755527549586644047204965564448373754659076395706498829395706697326754204867959060607487605669881800596951745519798997040388188632210748924723086748137328643856022761687344189544629479647625034181982737879351827509474186663317309599842895129667480351290083235901209819785076923233525034553340424648862543731523107334716243208125233769799002813601157652631412694153848535774645578988737132941844620819370856229327781532572626466897968071762091102688221582551256166805378452572227776803615059152908479452109053188056384363767356132551590442375585680714183719494162867351250169401385687401882476491914125659706396827652709220544443287454957270627820801949471730274530757880817682929227603660883844665903894900163874290221910404438494379907864713592228686113981241591736133493568950106258790075915215515141366811130892776350921156325494219145472848743201052535982317821886210151611303337473049068779737549694629072764410524549161987030915275211153358183775180571306376517323631533781209664269314197450729433015160592599852851460299145283476995069309321608779553369435416083379654810192902189727075007492067247859687661920706046647341414542432607150155236193068110062424928689183331725029222745944793832118213442332290287296069073365167937661622679844541723510559473189651931689955099866476397421669440994782715538549975648687688834974446317953842566063575763191676806912449314560501812948519711757919646660815934515049891078145922599928911800834265296569487905255164106999425187396526358188921665031825516419680588557591025245243323828504794633801347170789372548132496752030754249751339522436649159265700564592246031483314036417086399997761135076733542468294526353974526280237653183961329430338332720614555434035747668250156774463668560501674482421730304450469956999896739880820100806621226662169304994133631260697625868828345351719064286693594253458515175649580048515068139067986104998390568896722571872213940119043731971171284058970082529016766327233246353566651551207109559584366643489063244929166394308115775069296785663341442774000071706812978470434708051370758259914985710617144381913317381745332088035236934597957742551255682507482008963678427605930364164049111315394546592524424541365267762650430101534036693839991347377818409855088604521327571757131271406241138844537887613711012071161464546270125027817724688976827756793863325504578786794767746466035236884652379043177125415484638290377371033162364783749712327242862547360918409029928515676716211064688729047903023766738523457316620911930153058084230212625868412768020722795802879681778264543530945433672543827055462616532486985313000406857081763780644651506852084308616921782161932342868603408952977160306715110878560337260585502132199300701565465275315236472625541485628925507707375005174395942502187338121907449304647311496737558767054721224237186787835776244870946157032862523347845735524101290201811056575812338742008920142287962702918279322795046197448989081741138159897340384289482320047090024781120678711750565585792140879728423081233935889487734459287802064387639929133344602576935282105867669003667942515074239886857897262202468432963696282719023786152902309175797871617218138185061551654611839344149010397168498924161212352947625010775893298755743121060875928192597872102636141114622835435111617144538531217954114956317489747616788156510857799434174228490824104884418931103022632245591470632503894511976186549168676687706570615882943365152142895287644464134325730022454143274915297538934144107926730740264790494533504164659241231129260302035528783854134465230364569529989008363502295696504208795918943492971975272951250318344613423766923262027246459014782364065548501000966336503625503155540232108223676449523469829558466906009614913192419163398977640085834203605333984061416240103994053309959576838208054711202931800063086459745543456975017706653474177124397128425305379610536275763257914636720410580760643586821110084300495805919757077974573304908024870052873283774417973611503852875999221490502847662208552985626622569187652729825835830669092902935905941596061861712970673856567685013103956615125899995602467844503996319601000257482544509096969857068625238269464761473118285584919442339743992918387046382877763926567639099241414752700329941079761223884533658930547375875252542717119929799577986398614135130804102130509597983931437631490656924715607714798032628890309024104242467500841919735948606136551222430462789234975933721001074368533721733564369657783506374928860655774001371715243355035260603861413894403735231958537811394758063440274813008323843803945556713840116786799262800295889331278390820242852283248504193564950253318391802435502121570979173470316037473036262344300605854583366818918179483228654447273292284108403027005232636286929400083568961694309606128418213659029115155142497725079496419778946050084335386907536751711066891303640263806996972767209288980105686875910294615600709168608996885037284034981013588540598774060772314867729263841799364506142073738249950482016752858140489585535285371802350556292559210457188392243864310643022513181871824220020267674485051725098017244588331814465440911938886407617490415487663093637999141140717416998214921591351642099982081330162625650490131589820209032475818577359532848068487011100724837486901966870724634319663625762777104458921089674023988458355088325917356834923054341613749313427655238649934855036757800249601373445095756957266252789748900412757217493206869288648779105037506683568713590552837963908543249435980774492896200947216966614431370118843361253128584104342689781325043638799419611377166995286812021781787026473986441830763251701867102762736843260314016222696525306881725355569011252678978109021159827726719396135223445908178525460100967488076462230355789851629509901929261364645983761046812140938968955736463876109504276579769712015393675261798847100725470920714251578331454968314181323159281057151635208312949255713246347518695566269451439946585972748120747396904126157741314978296810634631065618707452430550427780988652026885082345984534255724900190579158670676334217087444018441835773084326710503869837475553945682179933020311295439919086917193324322689073933716060017124256807952609624896846989421465102980389884622722145060930948290706522609181971435866738196624974601869798869869689471449188072320982321661120965042913897670720250538337156578431023202919608661864619486030301549038387949525795487626533774021939854030100218380242433664262989620175708406751312082218872613301367451134157284007238022885223856404611252972606342421853777028082699583359689843950344496994205314045298669039294898469502234857166804462095440492964113430619307179655595972919666887832769833024954897827064650652279031145488035497145422698297123804692761459118279712509496329932763425171968773470242076351846685803120104158248022410708836997578699394888956290319423312297498833581115514865025313515674601985337454931760588531228507643494714435644089476840875964624850653376610172208381992083647060195175955447929008757730466950047615612895833259360978940079115154973731299934639392274834931678963227265435850125019742214405914537759886438793932225185723882764753069408536336500262935279343569221323480108366820623600104560739656153190741888481551709411425817948980301209824651739493772748251946050675491496902087747451644683675512049815261498094308420084137421045080340681570483065864262014774420584420104295217405241812116921310738391607223888407149416560097881151993806870170941844821891656081252586989398156142118534709259353538607179674084254153861862646898475419374547405033970825867042854665048643630952376176985500278741110774022334824303691493984758062659790328887145924390517653782506687039821703438683206249171800770277893862851869798099668048235566629089958239615985365833649757286797464455610111378389737511152839494822103864340159702311800503540231262090499547049956315292587287840444182457925668196185743873635253706634505912628433003976633463745851317907555371973824389216595734197338742487087235544379810944306406646781586850911300947404592517250938327379175542400481310345161625976545844022510903679863769137832665059261361817665190176241522994949730758567809789065305213822948526017379037816458612142853204059803706301361641163538366830368203886453055200448678083334963192351178092564588983081551017865485009422462999745853856039332114845335740701472235779241665945488218676919147333421921463596993461767917780775683060094432089808368586489971511324325404799881494200414369224980097653503128657029206276031512482241067675234440955459002179897552262766925930780277786202901521647422272996284336977652094945810679874980751951511772519819892902658185513716802172190913470222291236074515106321600091389006846792180397184897590620639371370311835555513973986607333844715116738137386365314336109316739381942956774726864842418835808063246004617009133901485076907472461971768814566370597549120871782247589675885367558540834364270216722014169424312346846689537878554950912119184661935485396678314973959795124412293212079844025971440623871435163477310113767673373026083423918837828000812045687903854702793832468154240650723452369143024407563768946718223233669487948168945019816138318161975978833919586382007783962810492744328852508621605729176143008817484020681662065115710758897201792585057358238475253774113051713173655355881596932609453897963955261571534839677145551474360397103283808833135125771947761625169681780834013994000743898045425021708819472693731858339682672088084280643993826868017310278598366236433850550490478771894551522311674840644323283662292310219572715664199035117642889091300654745994784284589391780251423034581871674398272827047510424340030985750953897377253472674261025776159470809616330017657313645558385477408567055439959289496750660104474740677548582939302714063455092446295074750073717524194227568050114008449320430132298324206998023715328636469633028400227269122720209338066404462472301437174224972246824740873964373138503763432430667520048587714710286389860728881052313054677506084925716998032703305608458735592181153780028206410110497548638957036904270170021516015319261956513930260804881643994182045890488823355548969111032051718747702617306707857059509179065395896429233711573286783739794666400906743370285035105904322985155991048889178035799814944911017888410546033994424397244915164724811659268311876261605296603351900436813896287903483309506577242911384502640442971547032717912664532042301474178179124288506931795581283372519085161032896110268894342616745027913837538422926546042370527575698202465548674687945554563872777177849503617653506523655144593421963405033571201863301404652919866579843198063586013251161272758561509286129102138469380427821576776544345023546473002222741280062321257847441687155056693252071912984119398123870139675112958059199651881388324474314766340141051768185091388733454826701538017611144192293191203026371500340134879120217513205562729714296183894453521432801691916946362387778221053657107924677062433745672330529401341968587652256149564039786021389710858657253237452176820305804662271433650702082306565849344231090670871507382219896206554364754898003842596594160754474234846484702577536906597071356027799817135983191558364332460770395068838760765011502102034589069848860559826285572463602640225548436244478878079023263280754551482837120025298460017355193024625285256929669925335484275192445680745282019232550314237191257646374341063391089890991299842793955813181227670616060026391007318151863005959182080238618269373361425459483219185955042774652227284316876824864244893212010607322202538639798132902557066403616172739750708792853482070690880447373470905013047359865852027872905742067467380579542589548145759876904453795922611264903122660721425854083023121077855576077644450628049512593316962717782824401289121442514964493069000340984909910007598149030332630468278778678626663939727824194210878688642710059428985827598076359486299517333070455897431370098794127754526173519157276556248144306167263654720007981289300730578406469960524441024525268239653692281528250165949797659630922745656810762481967596578709792701351072211529010951628086360333120006488095727858004724490540751439045374411983833862353394656544050999829805936012315627615746811911305785881417306390657570244408284438951059421634725109553672973134443179142939780470892267488182707478150008007330802003847378188079208520490753575307975822535778412379223523094532035025408028677100575644756735678592353645187689206588531821695455131228925107098037569356024274410908541342003958197940939375140447813253889565077760489296728783463609771918664426314390472284484029282831032404207353861817307142579380591283895126805437053601596352095739902263105668874753594691514191208700288216526707823185033307129465421561342804968675473552279293725895130929275456971208394237207588610078952631977368643937726016221988585779473488981097144651596597964190223964625798169701168566904689629876906601864404246817132217280831894045341952080872891764222420778353636334506721300321788102263860698614196005889177863924721412254983107356495011196699335727217752956199994691995522396863222454947853309521452175136937926216695507613127051182159850388931988728083475153997078277061472239874312883308905037906141335075532244877564527320193376935649001566237737423177956150778819096536007806073624829970065955378573218046729739151415512836206481766166163897636645480665970627644481078752130301746481182730903575508535750963312486507147203457673722502898534700599603457708181890640040296551813836157706305431053228880671326807868374416433726930267094161217099047643755894159723718829568993626797824398490891172832289232399567298145282236995610267814227149978277299016995655972775852989929286973095555878169835085270129151815638059717586365397662701175128207753630199177356345987404658200866783777806004017929317474521616214124852965235017573029486971231530488418562384398072776433858034905484498765900731844451058653175663109622667155705196701906162740741836705821136991398300158267130322225239733153243007613448788659428199398756173151383719095605284404909976091907850651156819958855950631691245096979605270222194413907009132854142800527871570414669817065240772439663382534150653662420155177053133237896429549100664115780766303684728611725808447820669054566703558315089557301262524796259735964361778847758947230026325514347674987226888962385940319474593680212622302623844204527236410465938231773950262646017271379714328308456172209012248433830024676910203156240591656908979206920656089148991446744048334410738267634410404257058279547340226141680254933589426576184620636629518038960206241864649783966927578970047408254167295302473128244462951267276318806594344374218228763117625551735059910359271829970966396634485293006872920154272115711794182776184213830410504262691722283263180204621644823681485665642136662881753914026214302037158567070025937886284874373242168879330451255272370337190973443184725406311268160165816363011236450491073314922565157150870598995216137547705786481583454535425710896296678233751910434796806792450119361969519918992814351270635038547166536932942989236996870578213916968073654460702398925937110546563662661125887627392902302099303075466113334159189810112458221034813458270334116081051795796278939826570875002173143019885665549461935820725288753509271699873597737336247928684222044061010063577911208555074205145062883706302356409610880432770989454856243843263141808009003426554527170338978113744621732218833791116999108599458855764079210391636067961603646623730275274979938845079922818184323582197181050320414162759118182045972493645231063409921213760395896690150332345177195848359021253892201479246589793372921397403028446182946933042542847898141403004550481961159180565804110738313538826443551068283654150479945861237471250128388523265949931141864979534092966058350167109832550837289888343942134876728629777150153214826325169655113155951225000426799465330924498274661199311278456317856381157941011394987807757445686686078229507362711066101522088703433690039086981529585250037705701432408685794247872517179216953621545092073687698928384911294047010685943018714285103263962752893589061046292390958690178497961751045459019519483223649865171958751270386538956007731581706591230138777184932533566647311841911143047686545411726988730583751530648976653536488065175149532306293766999670071412638469294447671795356867000532999504562504013733681465462613009215415980097042087767894679193431655757387291983532835909368199212703778175728632459523785176021790704243251958087794474064650866961476628419190496262889372051303896154526797690908658641967218985218642775751675607266354713243358230300396748586475274177781862380919268221380897701292969304107557526214318838586847570069950471330345346125130243458937307366428961972542777732913349183364683011947234908556477320742911965442623085683750173720716150307361867634785473241663914164197176274547256321832335394099470356695782995975981196443083884973524118907013359242607183823039321883649653155391967022596777602813459577116838560548742990759914417269512196795353865736706581767141452540373241293727287464917600178354214465784240317440161391265949785122220309113403035121405577543497530259058871281354511435447575985112190835713532764259940271861622456602321220052430826010384504813865766322921248726343278473895830334495414741421311740357330637779303446349936420299850169983473244061222187303537499247010456529006197126678623686397220841692483038691541571452634635412655900445424326334733889284785263930424899647927161902412297375757289738452545362359182831008722461561848164231285992733162318118916058082475560934029108650316936606304773324015164059507127148840124003685393711106694925748910226195503132977010383074598307110924858554428311152013640491663967117176107269035343216730547039223349063372173637809236012336626417863824859621665899734143028914077465441415337947061669770829169091306017508524015721589301310078965451200240236272054343179766196574099134450232423071173684988129257943548736541500216631668183102378692333251728507749882977514168776884585901181361139635406223976658033769373615638759519754906910754454960493127859437956012742258728059951258371092794538603163058926706899759509902878110109615749132912057608614455658269710711872461539017318210264263192676500798988020877736401054086020375268052097422643952739963547444495035964522807843284042836964921777329701380067934701832684529497469461158283679990829087279486352811322257216588753525971838578234813203807895476030674463421210018277877463576050925634977614022142451335397404401543121315288137416069468392302131735193751129943541329611571359753774017104143172778233783672014905253594341736655916748898090056388251732351320861550359035086335848227291660530023550361302127363538107756355371934355186801577113238866888121359600599535136759724031632807173871339169555567429289972674847872044578589429236606087871425602059889129317451906675690306837678545929338242964762547780727376437857777904219828677095334728209160952709028384214382626443567133424009041204614989428940838923746775218716090503381247675559748643988723423027817317614853519790305645786822213300250632902969168637770457274090642673358254867980086183321493696971327635574282116855378042912123480618636439584698625994978286017892450354588509136944949376979938354742730273792752953894238826461673159374272187307829740043187736667144412613984357741497576572877039812380243631527325992961401002432934120379684316559532852436976800384518211202482297155461219516415397859844144487705702529417778117013017336356386202748770545197568686261987818399149733862533628255701464888579774261491906161392040387879661114866413689557044307272898884530658286468504929643263474545318269482404190664539095672159526209963066986106766432460394634878090431341320110783758862692480301194078112949234601977169738792277801805588192176881701463910187488385306671355036992743850438225201392592139071790508654958208120862312588470955167199170468558904126462059326327235793940782104707498315284456277181191228592898025743162255036127651428461132401038500344040883875620197718632393598879032335292777875362539741164938752562771948843317301358878029424609640671782362603801943407635512245760842012823724255764031048937933060336464565533950057635033451911564460543627758929681296897123887132412713650216038273466489590746282663685125665272168025482512037333880559335343560430191990010104283203447907002115956256678927508027486171688780215892498976840756003053276309872492576276687893951109627743696851533140929021888181664942807218724331281305011336804461607417289066768228472835441794317515886017199917069297493130365940620133823379089215985300703789275340221330501491146441740296580112240356632164390928937290690713763677597682536821230693851402493446462434343359318524843584869895035745608762593437297486717625207032998023783020223848608209417777539374004511697182321863144784710281207712933763662271942652122116853657123250450381346141557493032509014822872990326273628222909818105057188300564869133657306118867739691343875442019658323222026477015904010428293533049119014447132249727310071326604752634619143940229132276718831054933007958073786907162301555273639747700182690552395985735085276482264171114987520688098736141399156634773684455223298833553251591957843646468777537159258723559598089280160278700878729082852322481799909002984155242022310901228583290667996743608716409640001042042910077876888748330123888018032893855131060779183027034099589819846660432404468541070356524636935209169703267703114556898968857579232218988323705281296993606500145384432840214540268496105857276172753341717880423674405495088977381297661424638627355857958247606384264194076041342163366544837475473792276754312584122832434652685854048399629280441723424629064438668392000711399833473014206492982619650232003406639199022414551954785876246204466934250147729485480544581468088143224206784950467912286141216466038974446340231230787823677643929339880547613691841458799553977490857748379473353522513177406373041712678235784642867141498643812428175164553900010962768086650292475464195438319006488890829219884002695930962747103016091055827558271098336291552154906700946701276554470338285640463221459944956106274062156766708151116831271820454297934160597055036217370567181302643200397617498982774784199629807839916327639857645372594949677164248950975539429976817212153171716459561950016161207432838333677005065582066928436729014063369240302925604167541730059518243985273002646053855680127919990761538798445160146794416107830285148703758608399783577717879987627673011476787567427372018292985299884357272026656749134150545181844409703061131690210174637603864330031764498161537755464001889707626782478639972990900313222499207520670101757959765646624626484550212104664892309054021746719344799720693568176620124703958510820762623254926414251020341609570171143153280838057738937678808840914274867483090697856975269465599490938673112564421276512017582690858735846840554131521848697455390827598932149548541951640320994770444846973531293040876811593102877885299756557955935001876006162997222248303366317116100993193613142420364174524891829744271587617819089498180459589775100206442318200296234639717684483883569202738213131000183352132382604495312449542474260838499654653934169403065958558953036055609026687061846669404676833239065604482881780567975359909285978281275849714007650158031663690497692827565777031568768367150564218488428758559802663397583317926661857478082337139580716649229608901996412585977194762637579763580883123817934493984513578546149110752141949402986036200572681814901217344406907054217104907513799509416314491480571120096578682049163332952805924956694470470273065762331048444679913278286317251690046155448711898505442787325757891135729073175039182697293807883673915905095834766411998145280358440076763825682105953188473615794856693750129967552573149101104752873027397958012566883800549091376247495001697048361169119585874423139780904371266027512040635821462034576708227878714579060727416965967423365052648051143623860205936213043864182813707097128369071552701188780437413678032875869156031811117007564184924687727480017992629267456490055303031085172839678452495969665762041757280531482155290973018259849977118175803116548548061370384108473803801442942815063131394703976301292084438153178117282789571833877859908606581596332906643395074747663484589491321390284068731304538410745959580282427106212096582090951454595693339849970030200007367586760031719519574065630883960384153958753554477109912291349819826371815444250067790195723316714932211386684042736047060146060545608688031348668838698995784844084388792874389788682538138576842178625621466890690082586780008828098837248919030061046229145515633418838540914283281769291856673381941004701106056461703610327118255605108241162821319418429588378798088457799265625628754521835027535864000850309060355033464159136072451469629265869916965754293756740693379874153977854532520614670045763173225808866900760609288637911017429872795448875982595363248259006414475744352976529478413594570157179067661228345843844660927706814294625703582713381367050905918231584226778769009903409146327702283833044484373114882865440654603907794596598047065227569455178380777612332415241944836713469445066185216600315041961775621256147170719241972885306440901728688289672194762884099180344424774446702903780900043529688503922595309008646308694198815200754136829959387961685851720044625518639775300476999909944297166168291285961377729006979248480773610428212392290420940173558491997960911185758125297568326672717698574983971537982751169780034275719818200425233794524342189250290909861815935328687840492682079768479579761769051855882550147698541715508927408174590247849523483197843906414788902349805841955202309760122012023452201824469101301313141976921489298973244319547354616620108366814411949201926425429278150147157271486008483252954331332080506654896926973512288815358277973495587283504540332142487745963494685146837142447261936077760702052566375225925670551462499745647145435426320630281332304785137888230193534505336360549933358427088018094302412305446479692474185007827075615922900045791923808538715763626608676936155450884795431264485828265330582912059406313885029404978734013470516877955599351539932678371027275547494063268083509266327798312202836760697303118436350383862504641954192689127563086644099006115639966948518954706879997079665930362891423654301212982918404036138621218062868742363947033290216005690573571797443983015931703840308641554942729927780443312712089886970087633499095681315048827838328495568523397888650536246825540943270194650631405901424138895446278155795325443839437879206951687844519610590892741174946686105809373742577141530599063034487584811190860496413002946190362403521912463386725717383525787960585165035416553985904952728405971671982714282559976029824670687533516292593650380764676361418352544562395796605272264979284494710092758599375960199686923331276637776764720885437840086287628488923403193837179874316709269314597551586649678022249865620110337036214393689958626576595999559217297646759081634760736495898724942079843905434220640282853570708354723643479222652865726283479293495643432611458417238900982894716096945180122024624737229711147913765656315453345978712379595209971137839801833373777740668293762932034345170848043516734543383697039018233359987713613663817478582001093708178164030945409107597919821822572824111724091971053569595117644320182079061851600612391258650839284158006412819865607029835381571835415656168431702285757191949148042986399084583530810142831490632181617795823650144877318825525450644290399678058210679953823153079937357406022717485164388754955263634232702881060671003405327657583584479748304276517487902325601512293619054457866951853212088822663007189735961980186415757063841864564174000598659768105186059864832574722304382589155042319203546097089169259906151150765100738311523319646989552692512644787400770654900026663268580098113527592309840805429110874993626926414520717439770017616324143279986358659030684628581951001161077556652493018046079996210980571369631384376194034154443052690246394096820938045848273940592250981269886641685970397623548431573797037121246654893138704081981024387526787949964877133012338737328326264998430034739916697113648707499057827509765281281533014294696805433973586816428392785676936854791702474500036837280422808063451947026416532747544679987738407125427892567667556238024085581773999949028783259797809862584608597112187757786814255208303268744086167234257042546460654590397103648329957587646995161739428668588639802140595089255110387074552257188449884946000242702007601146293681721778904321008808159487151315641410380920606341951776776922113252105249926260647016077908015484732920935261235162719269650510374774416265868449301687613653752199713018447026917979355541118259865315394241411080902619547947686779135800152978546783307165919217413890482402180672976001354245571692193883658716018701325767505056573989303249548004781746652236252325972631031985393637607834111930009970813648433080649125907882595980978705811629713893376382192102842435744108326574029408326450601411736042921329589833680946222457105002428190194738810281979817371470312149153729324164472792186372779516976406735108838185924134805117362944594239983877398901453868749494866536118299110568364447288032042858858716527830378865630416930723703602078949802373141165673559402626702790313174639697757589452656389600871768614209054594000495672831214900491104639469157661324350962055748540258635098750937049886798812782006835573264873630658147273918309801987680409256772174459813968887314832885578722465841150386297566205167173438759191544139032025006815615140906151628381193119926348853583170827719999382363171966729733830918006265952437356008047804819483162272557234186322589213228476098590125711461670296633579544306158413094162569621725640022812239842706255863431914968294874129095020756384509299791432289037982432756274805847234734680838565920164947248917177464433108124351000280682721617527271564712321321786315283526337817671330386812409826218671584298117228314613793133205391211268989042264110623181989844901553575296371379122920608270868039612566546861391630850237753460049119209602950011952559741652791804535622413038727878386599474563685518291981016205951943081971267023108967819563524471869571381959027023413827046721213842860003749369030460935135012835347391360222551821586657947202593810377863855303878017285890380375077108372119187276408684071643611784605439524227817242585254239703168181010552607807855898303484717243808186940727352487679464019263593090705884593465807303669260198470052342209714061698981886161349853491546143756082913186036456341013425757892002219747682689957448182984353993345097285126165241906406419405211442303266448325083882642947572129062942425724537737928024338727576151803098777912532641501971616085901828118542030892612914647610366980761102297441028167893094432579182161100712579051531740300440617676954179950599512242208738867634943284631226711837769431783950605745219594347579201015337651245789677609508259334692299271186551500845715981914746615710186371291606270200119022506648663955834405461997037669130842035442643799060997261953580209656565845137618536078594988288792808658682912306706508643936886989399814579370198701083488245842878621400348103872144176555765971565064723353378856125339751935419787434913059118646330307735182558266573077099825002957462968851744896731420183407573779507826370432913362508493806492285335684018172645164669156915193711023270255836405003788988712348067653622462156475717540641412945698359932652069249913173391449876776314982356060254948972111450972140028234245734317193319648102997077614792841217725486784158891795191972121688441270560868411835369238558284681103084416789287296294776186731704503819535304144114264813457077712726007304087112047198952338086130207973271874809426939469126391634772213143260644814020135160160366146946355711844860203894445758353602734671353069113125356294504250334247219708795360506028452930348955601428813245819022856237733919074007347117764312095344459237253976880210559499544870902250072029963168844096358429143242714580339346916812287889840799259829627629783683775741157893410079647659227753852180437405265863314180631222016722204992608424749474401613909108555019889119276370358798568000410447407076358134016649721835684013602977442537215165496974603911493976457044569673250558943559323703723981408222614887930271619225015825294101429457691229613430591258977830767696923013425833764607383029318993473543422326926318220279363324706781493112468035455783955003620329332996397283724519815186480893886690584396525118471488656694497210145054937213137002694874983776929974621189750262420598840461361295621038886546058655573862762865367625718251788783926676456771561034182320229519312248915256304309615204109332974743169175760214598376116177983676821428283894299172008770092446149207178955142982597313408616541746363962544989744157677588046380553593261670984533743846859958745404093654646320063937100911724397821949186387597092405552728230952947643887725608378680578666509156880122246094539650344679451830360509409797729112401440573174085782100309368094867878808321545472979861944697964841893878278489897531491867167772250930341608767569239700616119817963204990590104532984435257775551273404139543169370977708385877214485738456153186490420935540596635227488957985405775013365053548141199408324584379929306807257672726719712174341866320282141093838891659006104573579295924037667124234398697879794205682035431584439487372594430027136989571223602470641834967252243630439197965488294769315065537666422969893194069179724460361910147763252399500564366553998386649604771233978857955183496536931350623193326266770137096030360557773811142557963073275043656885781910718730090643496481117780946194698748957133294781046063735622368754338067542806761172082016421479547706188963492001201462827507001277042363419127544311895014461704384404047541788231399010318841766564054318009914538469965189933827125023006787895306217974840055686534561320418232761047444999018220962827490206031922265008172215149303641268580335581093739046311577799101300869800200760875400289430623033297197274033065045828437609881212194484906819601913801861606976638034336446829146117056911491240155197476557267936422059289461725554373652549833457139067989223390427102674877295125968223448302081210187381468056218495312664556618010420600972067411965863452211260646001488347217201438789826306400424117164136712773058987786859426324652883186195870961385479590335137122294892139661556585210618580224739584110962088804376968322587822081859646805542274200345434779706618969687481301222595411850083251564413847761600752385590229900658525789854282280672719359811561718912783581241322599785555900641866672586090517904072871716764162919314836089460464423507520135100190144913253377306408309384738870641274129383326155703141482164672324310238847122246373469780925112217810785724526556024425582224302106394174746584489927737204315846175823452510892680060129842702346219103063504450511358021403954015060832586083280473104314847358746462543583342708411767323404063329443528926126326352627226498823697555872029577518550563263113143806721133724425378719858294399838484277986093278864262769031027652115254096876711033961242094111282499953283486931286900729740242006262637218234389016896668017247081465087912353584430986636602736156372373523453181087107479617813229823597427424571933086640471832172520052316369432266170366567933667945741221288650197676301518827675625502882558121243902167927085328673799652198424163461736259484050305738756214343911962851027579470525293171636899736635135830031346468221341419640298413585673827052035274504377693404114532709975147007191506518386862986943781352544893141593730011460302513881575818515541145055990728127117654117222720268411744900281979611932095503338492203840904748003129449043770423086866573092966399994286439495317246681363074858197402664761584072488252247662714032384040298998394448377919665441692119156623619459666657757316952809202150575566255826637963013739134857739081432473412485482479757072592850902999425793709493189061278023563785229764560885899813532453255263579271474906493327458616872027764309222459890587221544448327665541950037898914551360901679025862121589139674365999699319436879507800529166391135892933976528581559206539926329288987036375121231571800819422834010837789355194853150379404455355649918247258555215167149495812463591190572388686573431399972591767292107467641061425240930150838340801836249594976193452100668678918396540975437517804046145083043565456453068219983939216600914727908495837474959403899891895673301200690869452860724238433467493547117146265342962107443939187303937355954781570228319840991437276088658200054367765930452613462602851280680874382536798283854646396576731248418569403610143990740793291968927069380430917294595310219926370342226093264235171337699438893427715051152938842859963944098187935210771357968000668561570710974079132103093726352672609720237549540157439871769713225636226375054746616900713496031524533297405352132208761732363396056281026788080440528903919595353812917163422937528957036995971101135575560594496636847545937232492112902032244711404471254288371199378111470352667547653833081291389181095484921545518568852539688882348830919332228044076502130169508044229087525609463666171846355996259339639255824836813954907642294169980890105328739310868503177353153621502344496534747199049620694160307063133027582042485446121669815132684872996434229363601458364326591389545450552329431154074607421062503594468172076102107515158830455058187145674540086301175932726637610451950056809423836825989967577691583864203650336356003413963913527396601291387724931959500876561786208173653003530059785144253845505531130679446409040107769415411432829134980036816228176588239874544528191925757209233421651019895609289890054357677126464886107823879343421616639663073722556213701691928770292954658854517507973534685839545955153741645562865055300617674729226854286898745640593281614169008095095678624648423876578050908964183639773131736856187032688275375514281160234405739235162539089931788200532423755743599175156284019704156597352435718087029802875189270665693113424335703309734186506015977084672942634838821130819700526518388446477920808193422483635495801289187749801462055051363853136956483828251550237694761218269069085459026285729277121751491762899134877588528246409739986592864330031258904706725397534362337582804207841176587574158692565235043860580699734976607921776688416036925689084531773183461022539254668539307722514774184058399222530863867468506508874478371245312313697224929874310052338979988875309185755504790755294587322073589683779573381233557437606328171118913591297571065827200293971978456184478232423609950684689723559129708647754689671123370735520422953892131178747010348965115829874619997899311086568707093009981609233409336677631089534792274809826842673541495861849879897664616768461863823153372149053923753236125180010174704250702006103071762128534079081161090882206642029455835853073707479684903491006344296444576610088747448974219608121433917137675917535115495734652174406664234384531757384302470527398561372399225757240814125710347699325316342940352869529934407103795325729259892840958173842957276931419922701398324294251641918559886709775075697513163490915913224463986955025555075082489985006543482700426723161867803117564042564321259526968392209406657592209243486446261391365814448772747096594591981935064263331644475864537859875381581411389943349619734190930914359032112695139346263983294164826033004105020691706237677021194496861126719849069777238796396070248701656859793172777212407565907035010374646769320646915307467094133949575042458606571044248390933920103261981298973832964002363564733728617630064525961417413367582097377263989713832041514124394709728461768586231541870264677344347691452962047256686168173432106419887118531867663744648088804739846150895506108202104932206796255870623660766591585477663828318462050885407960650945942151879474686013573003371881167819098723497829320875893004467739825031758125106343535037598724546930975339570228704085092319186136938382207363821192686244826186542593237334914590042802673872752562988595636043940727038371505884658369634858088244090430845252568432346018875473767852568578713107737783422949943528970386647877977113019302315451927418452732141603965663174723628489537414036407312064259632645522507184152044542918905580743240257224988679191138891425814592100613108373173794379209665849498391640805777744909663819548554448577449397281118649717817034029884708013218182789229043932508843254396755560191821966504024252374660961880245545880695424341115364149128926391597055379575820120463379257859296629873177717633814406131797265670479250542529993183835642245729091434378220969437890322559245649387035821345766084406530372724846817169524754582927645445602858265252684132488876286759977761912330904236713776769367177103699312343963671995249730390047249228987956705305953238514557037081179046279089200353797716030398055045106785435169067410793615177919883081536820942129402694829917193354899009930251455856070943481085691225142101748735750454516092846839402500003213603208716267910180006317249240159457466910305446699876447437587147273441537468109839646151386774523759535468192853591163722314021262029895398006820056102576525403421181039395219455515459193998487765910489862593073936952826364315874204789729757881619378748866885944558865875371235661169439936977822003517668362139315987139507115580910637012965991719261853393175071581695891868144557488675458523137259523806841451457405866790502758291338190196074985381205932867560434674353839597060092655646543224325245841991884949765012783894477409885265363601396501189017620386131631488786270421778304085122331476920907824001214008578665392662801838597837291086579872108967625749137035965246634533678942277716756100999329320416269962260945515895716516674753247565430855062870419124713763210104043389467803983055327243280687777997790838193829776569375854507194352306600044282207548527603552304038202226018189866945241390093864314573955156640594503782168625184199452679227691480209783054849268372975123047940409832004367843863091499696957353788505576985760453648936541564417873321108196277811822879563563134299352862359967250444241021973216844221814224456339523326316967273489449528430863578584799046266948940583083432241467531560687111724630842246793455595894993908178873599787210328374420646019612880616197521436878710387539898394238034868376398955243969933209503278584580422509841214368554847549683194695630561132498426761665561823231851763417875168535096621522458624109275635457592363479041821690013769159035989017666982952723838178816869439840646880278168056131022912713838149814298946373593594359639302907411445412798146033829853074817195008525625396025981055737149124398654752607660243029773773774642004442196415819925875530162560711771516157038558095999402549647019807390366392374018368176973595059180265209639412287867817791369127283139178154135130704721747591199991543600402480244150467102734796046834148428540742068087828964994391312895209822377491897893046778625138987035390481603204040423622706093560076561223540723238857869735052239192114087942228356887145684989894179994211378021036402698502373100082785985745871433959070324759652969277909489129867714849943717974090522195347729079124632485121021516931809798741499624256911589072275806716272353253634388888145228473979590785344232105126539453409768633857401787092779458909140553541838074332839996581854359073473687589043233835742301113487694636492692600705324377022074785777798791515550939667346471419151627360612571451357346420845543726809107395052283159752890592068630637332338515802324191205653450532336935482558476244603138673629587156892011682442684038698175117092936505291604499836496182670788437127619152437798057112843375296339018354624205091464740311558311721394901405806601692647182761770952146901272101812677124912238004380848644997664126125790595626510010680511181852877793234804418042373538711478245998588202448790968637571578928106405702227944790927001487999036708341077406492376764471255174128426408195926149511503441966109681877865871602697450072941766421798804362167374529742387625925204382851392623435986937340596746092095304965874472381728510213557600011244538063032407875829967671208627104237548839970335324737629469844968192467317700278929680649149210972105172752950787175142500246240056089064686404115140565243281182243446555463169688092618066119987616814422916355386165757797920077723368250114244168390974636605362471376820423457331657858747518845902263246609637082737675801486985108176774560232739558376594415550187533011433921154008922574449731889730910585586696190171679929292901234359390742488088143594747011579154159814714227945795462413034405282218061293081371827217099896332304465344067754045823643205886677539615412153468239818110104131578949501962155756545350775903029888628551735884287257585017982149502872300186026030015640724808775991804435474915828608765286675389938344005217156644921879854374034284324870322285047749096706966208484185991255744619107200554165182040828404287650939690226744718920615042042687278043631238935572659437375481508452612896434502023963769192208381507244718129047832140378906499804027078350801133424994674354183075282494606860578859316226583762516135830816203205073031045692279672170121790099297541233461804938215000809860309474807053418954996200926316132105710385587708576450920171831565678201943038103363633119935205503524438557584434650878234391816144843220610487984999939391480804200917921622132793094945212971619054477379970073393432091919628225057331197921786086138914426878449515738399489341097228516189998655524738626118798556880655332084913447833405409243370102002226589886991352478144046921543245397852823978109851799544217339397380738086000134117926772435907934887105736197459660849454802196453708392800581164212254866784402838078962273901892046578337448403747763923346476903688928989349627640139805200784000803202502985430601958834025888466573896709956406835315296964241163393741421478683814234688037717920010802366443530348475244665385165705966576328963622448037306319011679570826961633868052233495441208467444064256839450314767316443573115609733590261320072032438247987944180211897071745502479354496139173463927186141268791503378260418211088955978529602238756907922372250662233949851572382303354446173107283806879237414142148336272217604664423549236451449166551308544342719667666278055878418170678718771816881253277274805940644614956499912912741621546222590390977502389531227568358327195867537316074167469275602803259653313440529469566166171303155035501536064175870386281880940453603251311083479794493680918095933523093826035953544011128640090515183141781256355435878341013195772659316647164567102744035721408783800056164755265730188810105350901199880681919737263203682535855695191667651864519046113107638936547095267705333673255411429323077937088236943839831571755193102363311008600295645997834849138747222339122863408583383410491162114755619448767502964113783196412773152953500144911312335331939901144922379384370457819540773022914424588661543171046087376051715920468994205656087601725241241291639564733145449074926000502849272222806420008119121919277532217987410728986161742764886731519837709893650817575531421291744084393404482861069867865800516182673657517544167781819303139532305840123821694579919683113751967084676768031881892364616344878516140067823552503362564907624431061205997129980236389133502570695654923206251700682571767439904481196197095234317305526235823130427663655109753935565480171298322531241835239976526908834546063570715326225082887487929578344872188221159311944414639960611150282863649258929437207346749950073092326148687130385150856552060971980908720849672589736936138214475860632518070031732229067710556262484475578706301554709935648801399536882499752577012930933777682272812094556308336516381799629590081023569624100966737582719671737820730591910488268756310185765771308842776682448475332397145162800606998917056997422687037550073920451226948351744750842310744442347157852368318694069640947117219640607499609415887190657814064775347512779478767988433965850167645131196629377834123813939971575295389366584716542622678252432764963702356904155771657672818849515992887638552195449537243571725345906604842732925838387943242380212511584990047960031368282872266899666560095425059206912295381091652372535551095246033779699345870161816631000414550590483872259912688631170953228389657296866693156165904456582783270836879619456686648639098072482344248817784718328047721804777066885038288740950991220641623912989942121892071297660577272983186122210918886227196540874522246680429828974915487968007000604390664378112155330445053276268675904361515835975384972601731676126036766926240150963704409199000408450604542883927785150993844701259995497780002676290358534041331451733405068070689326613923367452794340656145594549537007512161362740102895438472295200130907153400393494502916499142145252842419010589401541711472021050914145231199242092547115132512601200443608607641226953729374694687916528937549308512025569315140925365070341495936631628743555708285090622125088880629725121563263505936052868321274206659579610347235853758128551960311273644185983226833097775984998203377540889080740240566458563772273835458470205542737010825835943396097574453844444320781773655333140709315157603420532170262445392700241601917664594774737601277220320757440755169577339717776422771628363402889989782444340441588360673962564684671375408267591717107752003348976007894491713981540258108019177342095856918215185925140489886542603822931137004638870361582410650460542958415482451250197818143243101748321291950263416444808465187648123605204590888233272686964902511281408722482860491137731376717915421159127611068581158712621232618777716275649044473245253399466144208089182855664504808220105578189149508858993324732201773857470073091848750516835000647903566623649689635165661823622837643605679172974973995687415419538398241796528960640157179045904082346882752173914126893479668343575969287247732457840793398479685523207301339058939038650324820032604993980174962179471169807466938929517191425318202559159119563159458057078676869354401534104537630566950281329354987500335407204936599212338553845255158835071734454870409470396394182548648387166369320061043704756342322217836460509443193131827789639017848881443481490925115509643707380693758458258315918143047000026101109999560356021696200502302210789674589286747950838969627044871968473563340339857474580997627083963868188232827160820713672027522964439486029364799105202322932930620674999647656545270862898214909741352525557895833609467826087264732966414834754510798439087142552779876670569428564472338191495455996347374539709499658346512088300179925152988641884003230415817780130641650083313141121359152205499468476130288699320049513930587264873452367380180205791865319450096496554494117207095806438933041267624190750339155289471100557763759600901141831698236048952947094064987387594194496409872303306249047282924895674111723166712131077391313524799585261301938211679713151514489650228704240412197995871203059325528364245953595381904576043268826285093932979739311373014381676524497582655373186797791851606718269343955687457343691519601852663539495107704170863978208054382435671152800855491127506487206319865684398659706254667866444343246439373378404244582269922042976320772632238551087077953178902605306218018419124435661901794245548341966743458690670286936861383870951283695099480268138538955839160198315901146530252861508102011689857294472143847652980518574294634902935521461648801863691241646514115387539947244325701319399422208335519342424268392629102644100384090704752548582045962780244313610135997051468496654113811504647657405123053262023136730808771783455063018972117126049072484595675325182470673756781850363413777535095572607357570019038021340458280680977025301035918916839213398801511300277085551529730499223145276139029318687001257734160346129990863930859680104386430370954969343236034386634139916243821882413512048564247678630528698535419593495005362511127896301271289811496639074303133407078737978152429841623820114996706780322125882526024258643723828875343785571647639927587750267049101412407502914805312074293366382575707007209292694899809784299927876415677416530236753181878189512803890245281338748786730292233699012924893666722496296089444455855375965781014530665354563302189620952020624127803319811167443841119233097889908204007363864431205550866428879536939395199989214836181647987395091909153828784501528391198014388683942534466104194977789501405277150547287039739772563474162790149275577736160329147922261710390705003449559964726944198612325264211746137055902204647782926434124971789998809370842432021912733761955827331461350106905801227045973723966793933869790701961031048437022294389137663001624158771077081924810987860960210562055232337165348237131575100256288785533101908686193499758114082811203991265662430534498028083341354215617042276302596114024470189044006127070675050956994242426299751828224854887136973972929584744798336656679143553646121264090734258786992761229313078673023742306056496792361733557158562453791366943340682017978692429991445373629670567363604071445167423807955129152034740720867017767885864100781686332252022142045220258723370270218053193254416898250944965113595444174164044291679164305147195466651617100398272932064497166008330470872516986735371663041552036012904908435287531258346800070134965160569555627182013985514535883637036079165981966424462699801296209616848017904421219470681227633956735390265373308210614927498693357965659928609204579179530608782507256204354226884485613052112010208778252911006971207560091274702989018214767404051581719620883932035742723776511186944769877236138716470401825009792536710973280645716018411867125146323271758829890119359896042469510012166079063945451910075673882072329516579086442308046433342045409547863985707314280753176132211881651826249383735151682324184120215760909980327049779789245174102767827507913010278032794167889782540251552811491922124530900704711942014256625743376042660982525540190102098468018737696120969852517762970598545500290170928737153858725440698739854787617045453818364076718653375439891754060216570345057072384879710841479091631222836503821322020136722903544452633122979242742895714257645400138678322124154051702660993230382808107904756078099608944666387773329285574674898316428077734529506011990220115449852488129234053590987272648224457412734777556115328435853951644617683414522966510189748195927502098336611197908322761271993410212819449080322416325354105246142510120614491565753364423124781436404135172006818795234573755892031104203027366497012584037799464979148031377672097305301974960811467507538093924344933197818007549194271667260181602769033326339903898356953921293582242702145390803677376929632521975639972295839189975497901676448473294478619688138958866255065747249753079794650262701464954158605295255521971892040528482900566439877840023585460188197842555538693689648344546093339323840940145197209805776040780886169979363528556180082545172932881495878828906867753771808151286334784019608998441042842797699097863469920667922632590682908985928368381468889288406064149979331955666267809785323769373351412850537594767290380111198199247627313346930272711769905609644280936181102208086338877094054084793629750635887567743435207018299682598872086155443709873934631237298039393385341736330135036362238709669281913698932348909409755823403575015467309917668343693077014331621825208332705096004821743299317638829748551743824398039748594183618922620393733008824368198883737291904924194946996595798403199285400306366106370546386307512535397650763495063778926143674459193325378283272301670123630888121385064652081701303147632461589041079689821142535066996399403562393878596815272339828108152266307023095603891697007929160089837126990816625951538411858014772102012894126027088203797565896291336557163090589204801103508592428373961965135210694505817927580882094576964807733510680816991728694537119685640166663850431108365341049186425570217618632299445293371150005463064599471530431496102890317995598556165857552719809578067294565268454332031679373691631875630845084957896768369668392643018113085247424516262212095381579710796182880336902315926357117739934521191417689974454464273721194930324221515452932312425242713349192698552093029301860032016001813628422248973665988007452205584225432398133137520390785801973691489266734286684016060769500422166227620736998901715951784988635177378920133242014285930375018416010714164363416958806893079411829808047724165746865508802902594885205412036800424380640921142739377243217215048458908657458430254589611442070181551229112618204815792507941661078755591381413879503298523696005557084729734791565926030608227087765063264778879575548106224017206427273691120198589251211287898979935648272032078671049874246142304505470668159289983558998277576338496837500492737789066124076784762372690512368778259018945851876841991701055720623194622482563496369302652789088818916264004608248191522633560758149882315361297946418764526339688659878522664804523688094854821172301682641821313310373581062838003940289182634349333876779252895774290297622656867782130126683416163926855696982956492618149843709003522522339440395886467225818393980714335438535787493322937823139290572111430248013824258952436367995663025431296942459936621454727063995855361665870160333323851827672889937043087738901289684664889889774608231435520530747269124049364696316957134602183879423228122442902150071172764537438729812488543855683166491832744091347188994069566744350228727470545859491339158396723283686752643565292838304709953557868396111392284867087646819766294419358779691856707504812718592578448889788842900009235912889679051832967823822358030849723710183920315986760294422538286202439288994125163939261649510608522028198931174479800152089141641697420782151213499475454096882385890221717730313072126130803546612721716113901213246051333505326146108295129735255020177450367285248944997944800646818125332344035283757448573042074660322234772948980966752437072414205750928373031375907839192302094042537892645560754613843380587430474042210817732143644497565709998816359728777258738204836358917344587629593077794230604064385191082208942676897420914661518174421687818139328792155562975294222742146659324815586782089479835482493137808816209979251671006483039639828633089066542983971582807181950186770007242690821035310755391405334197805433737681931980909879847389577387843492359284301939481621843610188946219232132504485260061072208202035963920203319389564792976234582940802540682966187211644681682236043512577928048683103082899702456113932716969581778252512558207753512007651264585688681666176230332999631408853341507515864721052861366440782509015795148808132961885951155963478569184602469482637987863650086095053672247668230046811547026726788991722990443122415700425692546859891674149089353334861710809637953252578712199348012098429785970962923581915192561771867372510191861539173927414186683795160514058502843794833877394798455679189847546650522153926770481903742896362530293519882607736367508128700661633342770164358133910772054920352028571488521900040312721450099725951495303934238318243541319750434152486846082549821991502922554918292947720393933056731657376742889137727092141822227030168211424435816449619742355577857161727709460388698896894332717818479136595898459468784977809693911864744950711634972083436733090843243170165037395817038475163048326517878255699476260568742425621593578421043974851847439408663675985054060368936555606101361218896957727702941901541252045904956115208788445668662536193628398047049974990256790943634138995704840991152890819597218617794962416906723957292409488275830997610031232091903507839400802737087905164090455637976910639867915865457710827421503532775501667656757868578684523503966883871303948058468527419950074532646167648393842908602023715784436128649507467833303654458631747364370861828806377528447737345814442505954401955852287400943708325984336888093951350955967147499286630477027471227634229089446707639239108900322130158364218855015366777710902536908670552624189411691010059499567648759114961585807304972863097747554200203537728267129934739321007071539866455302768499361012970888347165260106455720634055677811207148907465886512930307200660943666908243959806789596899511877058908874851588022026395619855288295740035793931801123963455006032311287140348886565713650973212166020448435981356151375759944261040224972026934341813940560458640515088189245109221212971033606483009637355469238950125883645099383896328182102772963082475377529133235918268250746066476476597666468295802103746214167891754835797877374777439899946004445663393990768467119363116257715695621545222531417071273595930344242376793855855744813241249361616102803190329190349746962913939123114706801641757150592313351314175741710577487858867919002302273262169189658996112481950505948396155320196290442167472207633341194231037151680046381587521046711822465088268699048547247351173411453650173199880750523722684899207409211997184519202641170709976311152352341620147698937352578479940935183810154793897451635803654463247251521572275253544176771929971837715876702200094252086462373759702575311808276904508239931323763358016368354767055913488852415453009213729614508226519995879815408829534259802751206950426780882810612839658453854565604786500662005490657936453672349788172424806983361414068839917736571588851708789543740771995784425176880457106281041260143822583732382925777961387986170431662270707041916456911956269248838941610284521455930243646399350806790163244279297773203999046216750025315269848575840184533191527601256533959640555586521352370795002693686461730653091459656600044268173238433936688126089483275240568523524269068486990912798869118965152450457302034089519225925089436207604380620008264602942527047365519401776251855245785042313353399810086285942288091695541492135009206100424349770728678912456683687534903835473160194931914822994125487529242780935303776430269161709583371338581597143555153365252533336965679795420962087817668443049751269884643346490591431708381016039715921826714033602102229065762316622511925057719575516395995205015007580426107315730664141130186455594031227212619349182418101301180309932291084374024500385442436154685950834028532589972556140182662029141898971462664176187190154084130637650007837275235295494583137932492910644526796616452172698138453346341380345671014107876494970738532785900775753876746052364278975503315793154351015914454592851282352091535310906871980556024290175022623500884742489233944344018924647339448445314337890875156732073273778740140397234772114080280826159913228193343575934386631767882919694731692816934093209699840104854673589493759672361102578095183936465557197437837107850568539496166631065818246324552623268263922892268535530408175665271278396963417705559908367141335787713011342202923393067042870213756229984094941590655925274127125961428516015464406845414869725185621274906922635208886078001919362908625880887407367552443721026819841180236235093963042503968718278105736069542714936275436507030960245469032811504219571462889030006949738244384079052536437674402588585975485401973716767822162224066719885657630290049789676503589219708851191360842132556321020123002407625293669496737361950911616932151450107504302976681121592324496241073657798711493965556303895865830791522514815131554473155324464699615875066518207197585707099670464284512922219512279238782543190155447548652375377200569242867847038772910331658557882835527720403172908799521964788754740769123293537746574268541380706984326377475893953112236747156433505545461895067307368316985453916227272037428990786218828925262582486703247054610536313709812470994691547548745077163631606640569495172906155004992674230490338465603070424753453140738724448777437093804952393240090147051183160628068917669352342748533866697503181668182802007290588163770932640266652261560110576329877142388159374467470870801281784971450384699322556389885788879152825583871931319187315131251231781389749450140405584770892067931427581263199442914254674622963209962453082873193964366850742352416283366039404345521875909667297019200615355175015676123442799755789886969224072535693645259089614748697490976707643387980074238779808959714350019244818803856404475810440736935029440237908731216910656436535819370698502265240188383280541641584592133954785315867598681986513852504445935395516717368128538540082683255323947713282474816475305677789166241541229190890771704376063954002029802349709178598433891046241566045057537719334282698289219489496557023509749195881390603975448158631758569839150864981922570073144293345222417919775260266604425873433597039271649106753632288843424003895372013514777946818986273593249964429488422619000821895337087782953201736602617662558422380369808510233369127670890958680222161104762243909300248811041539317147007745199538232908442796939602143413705427145593021861777492098064024947237074036501875930154891124038793603604600023463417860422705200027657028029709913383514212369855527766491429957782310141450713248283298141651412636766860588951697083508706391622767606907560541401287916020804602078313761949379832171889968458154351863353499701312212525963307833003773559517575956983027797767897247722681546890801032300691692739627174260657125588017689569894369115843552384718789318232022228832312271194066126918332754093722048485560801874329481532975250425653660893415396096136586339686499383099162866732851845074398956043027209852210038578007705184673595558818304945301090295114014221099163260416394748482833141625917781435006165153137379724630972073075185824159907595686263736783308708748757040280807915382434786950818329969576384594640209945625016313421682908632990271527518048127283025096381078314315479442017623685126500862705992078706071249444423545365616631328053511560219156538450147746957636557609584155183239419742042866811924079319295031604271251326789004182724456034461803289116670796085985765884597365820833754984712882589493631894617251975193456814614180642766225119121238892053786628170836704921758401001086630966029295461169816266355365303756416129636922923151598703629975567581778773050610745976755963459024723245753335432036921536455108042285166793418808268528467571808735944292511572765075687936456929720433974336109866341733266894023468339538087475593654459662554416147675341740109078810351469040508562986256298733581010351120412294543945992091543566405591981154989700238184616635757400561369643445857955002665682733322900550569243279353104383454526502053565993715921035733123809321735485206220775658545353698303500072768025982934759744437721976886224266451617685005521672073312890951873007703902504673903990314736124217754568923510599588232522605712981589115540690259466475964972377894720290520791456449275341495545267277316191976735324986579182914759770006492764150442474029877526104463733120574431592715881298034185342018972959869497267951569536552382553286408559160930054703675875091727736910686222389825673447300120620590289593193623527901469685654398927937122448834167815237183232325233634843275998546699205888153088025812394696436448422996371762572773435999476202201227165221638355308237164733799851233746765302067395124865936729013556687364563068523462974176955821136179126454970352393426052227970429807842698766072266282902701231946567122452229688872491064148262680147315247277363238763457052483617967196900240973840190225539975615953038679672891148988057949941314345846102155964019516032383289824178773665309646022016361013363521475440518079221788084568583273055567660374921635637617788880717425588539294024750332761834378148477273216143327270641331540267910170382843352147290256456371159006965915695858414522058789632521305708197999395161527446947605038050499459206259950517675768927740160303789222759883529739003265405715488545001888120415056841475092191115730752197945297578104445445771979284094681246092456661015783202434156476144699488947589271342803690197218807865427893948005011559821728073691381063371009297934268544036078057695748276910313598676990824241828351099447330489458815205677243188556186404422566719727942211853459271808349737657558514047488913992865729854320298974020089216334607380510538052630280719815024574298809998022120563202383255248641081305862138776212420837633963522953670180089291044405361516311749795762361814938681576300040227341931746547988193086003018838087101709505683453640154629475348216261837949098729073410928209853590031503975860928901188353859684075566541236184295471887259901025819566599947817109658719749138176031498634211025250621997333722106129056457447562114930308583897646659830053329550090269027282561595957846541989274475765884443603130280516384546352249888982230141006706029630626002167851596426438691278126310960106761689399128309530480957039884573065970476638364344325595997351364936243429243930626413689135740458195183654641172813797016495132334863324557263237723376058373465581739677400754627626912303808900333576922583954333676776902222929099354237112773232617616235702151779958739992624721949118826135635951185504647257917938158865198311189611200512842528785334947923629530364691321025633851076155018835172543020704215541550960194446744782831998311388399173519801936399463467915815039019438433698349269880308115191673030087503581139066727054957394618300546591459667572993567212129653559927883800321369760089571143759889332203036525019446516342497046780285937800995867186663396993785513894892611332550130117197406454587996500066093149834524985564786057053208580850819094980636443440045435390457634032061951267326315172837162758078090555999366430552148209631687662043123127148799503993363446716550341931662253982118808573832684512212267710906477200060810625064325232606694703731483295927569732311748089136849500526166304926080316929475636173582045648713990478945460827204905832760012887207913742220059550361493355410128528027862137584873532307028246488980455753069796748047894338253108515247790485314209317836136833762126421905498270510564221237292921878430446678256625627150074717091190716295520011078595035889704974772888213720824371045672403294443427601983819539202820163638970282764299343069605377375887864222763884438253693207772282786361668614671335353902818667023000016041367682784126971121119453225938857578675929335010644127297433849045931006763567242373797537791835032042007066433639870223584223771974747751866767594940944508909582270360797550355478780511915446502282840480368333126358395671670242076103033774520695554783473263204398689143437865542385147438474440044250779402296448245470476899164086451404663023989602813822039883076720106677064505669683681849075750399692495375851999767426490807418279154642176664184844793511680748213811844505725744554692182916482990626266236401257463190102759459298324844617022140302397817631918036979068496164154511161234975015061412974237969036420357301545321499868189688950647573703192266323331088020445765565459430244695027384808714540862719129841569198726418446167317875404395135689978966776184328545094749424823757285751868258981877003431632445489210718564177636580468838129140510934356696638739539483201076304422736426246702001855595965761682708963706373043017213240934209129655380647655987582665598322791636701647153367867342520369700557260828709854217397175988875324571065647863881737420342668534709620648365394625421980529506622851568190607736553997917191276457831358445334838041787520257780643645240064886426120030974588955978054341385603717636866813229010586709794891248403568716468270197411181129544465584263205819359668466089093047475302942240828043170987889301768302844270431014154209695232311337092958753361463538013149511564502572063948869011695250282792163167064485673076964295742692364357619084363783907059825205476594259701257907218343504726668148549211379523076088268480431570029413255572126647862921163950151127162668153449335306744374501679810110094331335769595606003260226096774225696927911465614267363770908154790168554042144466211838555151521584980311480765180496082108364404948405126115364980201279727373420939570098764309216850059175102597793404017790790934870247908524515504514475778102708721074199438721161846878894913883478038171941534501114467307661139736230001274717287281613499647645214040733408197778570713189407176686790257650709802525555922536841663788642294099738991367932492914006521706541661632926530435815844440640219946991765724485603036431666727735652341127200736018320549084618813244606860061174386466693269349590611415312944585910265664556033645698342221317104118589668144823221070793690828191214653785395543466503805305188617853228962381017914989325075368666712938160149473441993450664238913390773125093375417209350518208874080173865773045406875752361490620410760924102986535316291545826296838805910868110987607587856524345722787805311244878760781799288181129534290240244162316835919182650163625702920216581508475839306483572948393836746197277956094844272275936426588691145322059162025046954326144723697566650425724341481249372730952975324497789890360980145957804548710174973924444989289949218682119824980427743111818397586282717047528674091019583450581984476601907824839184027393467976785537932387895787838990340066734207147519164353178943940772336867962102996124504807638159249862847890148553890021296959453147789359540740508500997512638764912578090430038923370017571445145506645592562547403303608785480417211772681108477702238117794277725808537282075149119309015566867306368554136012530218163422464537271386473516613908453864366469968023340263365059585338846321824784778185931636437965064172015157875622140897141576761649901747617432499055143741284643623655471704539933722519483039749675078378894591684094456266311050876409581902216058901698575958299562738968832312210711419881428426317119299369767857600977979743837865659533675869782464074305171051489549437640125341180045866195516286819590403172726328844662269219583186031778195546415717024164929101040310449875673320491077663370028533918413457672634578483176399451005498558594970082092809021827013760073722832840578990344522803915740455373829667868623673521195051546884542487749920480890672615683515414410035816197471174449155856445794557118607881391060533074220195674060192271684843794737522311655633569508418008780016092544880537861414035308806502950854830099397940941713549871204300674256238920622454246347146208662771361956489584189268797284244048767239472852762944624968794493432084746679601699116647884104717993087315300796046959225939251548604829843946649805469216193212235161479384876466352526500150637327530465402155454387275015710647560511999272634183307115325923555144724587314160121831199915209611078370620697089621944277694679036795994847825741118242868340416226059428580436539619542181005344603287342359045899667493337251329795185724638535050888498179634916901273126087077202484048311760983634948893499461809064706947007086574896302137840495557632221025917050361509635580463003042787721242795586478801217059549701595877170669016262825475215811908822864125326121174464127731896079906789482046891263371057669312776132924237021209573822616172948119239741916033955891907318745241028391164259811682975737415722581042471772662068949644869968901380925044137900690057112334633974641051953168781944283570984267305560779851811278404303820425386768065422782345923569183033375335815878412994042791377940545614864618501598863607621906015135656255704873301965939969129846839879845056476337240197881291566527844265044732978863100326860384772926430643446431489731806830478135908077793258748798846672292827840573802947398610503096929651074894331139938624942220492444252222524921839103864357171700414577391119722289534745092403756028942940804258780813334057307601433766164862211793064826551786762395023136332998055709626429803431019736284766336916214545897918843913709200406943496016315721377532770641001104345588988864997285141045225747781374390129754313093071005694196963198479306722367489322267755422483962571130539237003121591058957237273957673651764547526871861527309024544226802020589020780270020119538860667212043763426495717235717659712457645242183647243844860847315110856213344310883445928127307864481990669525766833518509401741659147235147960881932130451337258476167519447112830919708169090010136312205143429590512491332983442309872275749727367392730812373110170570008329460207661872990213064458689637865252450316319722282902844623230067030449832114527125397092557023996235063523472366530946870286486901481017344830188453191520421431012286211638506682170040307928295867453766900406182270893725197137480300492728320595433398411048578659226993478358888076824398503959507582378526276246051943905595020963369571249948517143312582052059906043383521189685500487694247403706154746250583432178263629797861231159325813273183561231155967447580277634997368042211485008751712128742223369363400138717631955666696373662250678904921640303730481398287102519254559226853248399743970570899713828477835550838069380219747856665376714173378294015754944037797585586101975546041171795301994822399811756349599101189928241682881178996839128023353501774091493240597538639255525782023413574315651799216168011725368096669343030174997085399127073923152680083681650708127059751293963608389127461702949804866904124557412721338203306433212402211585210214779181739199436773079672265275874179046392134883660370834515902483410355343502770557470440390958481356178441870410581820012353940359320383148328435167511546918706891949268194370629759605633460058416537986866214697706417806802394095403694274917883827914744227377516286151526798524235158042762300516561177056434959225436955905314266286818305658713419023212354197336029469432613785218841286226213293995488715542980434654790977964802691778241430628518862858935065157821040242615588677148943749035152958462174281829419408474737122998424403174642141579963267213617316296501153220125599029672997330114919661958655582043362341809996053175090603846726785205556063305451348131152253605178850669311224046265457199405823275752768000668526072675638142338710400032058933149343121298131419559405134044968253537178595142563449502077054770035660934849621611865686333566789395484015159018502781397804528797655256704026246111694717827389699758765337538531725156217943815332477977256743553758198070952873703192033946725389144699924379789859698147263260529657728324769257748844985372309420880822537286354198224893579991060512854079086462735730792037009764487811980298942261831814139977630442689998881800064005007773636165040029723420428833078763162944936534952845529493095043426267070214880002106140579204614140326651387374246355668339617172901169211194544826724814832307638361791085654096884712815546044797419557230205820875752953328374074897428711048161007169947380357327821458027340432915655638832025835565322960608122358521938990357861266976327411422319311368354787212181572640608317811116260883470009594343933512485543989007862805406286053994376801657258729215853147474402105490320518955338302057605723947601427554207409376985476575877298470514402594666802429530707311307905120054580455193892472852615776926035969035525801708668007198503231130855056695491792371444498846390893311504710865758935660653064272979591626530316665281692388492528688187907959203842380784178365395730844336947072995190871732308759733281752248718648736241583878906932779208685251721895419748202635735568230793888265681703620043688696817718693904719161846994659966875488485143680999799645417534914184283686161615040424415098446401919779696295724418432915879643722322845822951276082369225513109095467531035072810173829339788315164258159254726542925562380481545113417525764810486244358241771353471172982442455812671694823680438507140460067038642964499884387608024956456047617319889159299571104220659655086987178100761540630361778034020942806728186418875269534680607569343713362632400247125834353186582798508995781659373442590336329125145738848652196776372386334749116456156262129010351572708586175904451334165753047108003927977488027405849435540947715210113759199710665881997103552080578606949085521765555136012690078701246508497984999178684958125746858487996766938451531230141755338965763932536114548189929210320940977149644510387910692001729444883332493900959206241406091459286452477938681623968127066021929015463570994381020509131037905270038818832072077449424397843844440916281985542538748617776240831207587678736154667903121603874092813644683518983461172825938467845384414699326827661887578941077931581283224289055426800235835208982579717994395298008795779123314489128231921489580222925677499208558028867076071102622310923311204403935760732369501923587328032913049513140202365658955337710596144959957746725297523464724385162043221889745303876505248920578274017567621307298255934955941242789889130212022764557007999164221247544243988714090856583085850164206642232190735836010401352697977366057257159676444835855611778759644155920094530800103084614194950436220734549514044121919243434982828865340941423882632634506575957629859812833728129550754379655271938757487666373545055033464299609129726399248196323796243941533435452841425841740740646160753189646991565397100947242238705923456317633578113138245455173816280334075206648230383564481732845774228855889683830795976038124495852782983557817461209768415445234602145066197944349658056530387327287555293762257116348732088501488815601337308642840753097068593973522188141793635486806299857892588635203712725170991561218343342278901638157302892213950396482831310783884604083077346250482144883732037096048840734692450708670327692594160607100469952705158927528709165907635469090711386031977875480163154291616682499982942245845253191824770381067386739960015748231941470310125691327956556888515892959636062788909514524522184539958311914428146286522567848346848664389087202467333122211901031620340140434272733662958416997289592765708700711131109864304185450008513996188056274752516026785726035131923803694451145351490565913705894419662840787817521092611892272207869055213816732507554244472114981669537398417892911963243545377171110582004910879268754390975936551513827464292016574627125719403424442542419001761502647037872681164303139890241739027492462755563840389633515966928050716759362229199584293970559073055184754281199435119307773886196023888477087501022716521655774119619349039418615909241274933909797431053433045083674993378425747822621235266243022840379404221069674295819822455618072014105255417456464369023205539890007147664220355030510650097638098543220315182508837647943978890531383822107650313653890686182009102105859999319140254323941178521653027450013430272672376888538776190310289561963399593105679811982571756353253235231691943904238379615630421271703152545338176761201316931734497817567368972060554716594142557166863491025637759566055057281662641417041097220424153133605050005996980301870901546806089014709045701466390284930355444556191458028356096872282477972645542513021242048585177659274585813972116749010433683896945336547723494819713831980042980303570066737797070245095962607365690492474384493895533782724511089189272150988923835594651205409914586687754236417002697732975063425373155885497338413380202083261467288794747040447758401885584958880554595790410880987296484405853631954731948584430336841245100956364039625398095748658409922555503106321693018941774536715344180724924862534381089514205484666318192310016160004783171128900694918164180202457443881605035292301719073685092215041026503820801987426796655737588481885313632763996866708521389904585078458859444801490637994200985905267785386751959278165337720421812809500607778039747374030283624414584487556765471743839844489803522152600363157539427092089250525652840200100029135695015474667994143539738242041874692881467626385750987393988393240155158989892747841656334564271113368035560195286443812903498807492209919214847337619675140406027877001733568423662661398841630381945412036487504695243412306980323640399295677517559751352173093605378639569326273926001150614895523098384022475118360062389478879600126930258349168117314555367826606627274194857547674273098177997275713499484247476330973296409716942204570878545824623856176938937063838215250941855830183550664307173774401850309621645006233364066941805932833947968180019743720084805501358995168337547756556242702096503607761393112172434730732520178173053731840903466839160014601991202343422464580147625921040146152983864854261564843375501224871959637793099414607093533023882863443652970207798228756275121526648545710958775516294440016981156231132409183285793799074607548650518677472918595218274487390352017965210956973879171058702074903225036312764476919165645687206689596384191790300433644234616852699764603384692493041184716696258055910596303173776472284918502870985363263424577374507008925347243259677169545917059716739850588988351319807899068906597178921418270448457765885599929520295409022477051639387433247431993052944116180851133056270850110804058080306126390736170680297521472703986723312200614314471133165236596527492461812867781443808336871381064855539455316833610947021002287885262530487457622684233321430422487955112501185350412807036587365316266777907365457985129086803217170064199997852029936531141192310225834918640528201332555371695984149555189835181664011140642511625885247740922959313397113199175722651784280576149776948115198552967893028864854840260834583094926806489848395092198899056562850630013766096368846696437582689891004682517888848015206186962568788365676986321321459780866195879684280154880799470402602091630038301885866485412955737220128466277733339365704660040880019558678223644272473654570708309784240547547326961601359062759663363495709950505271070473116557709147221443099933565191793926830662177685449371445964942399465827229942588535618381436883411464968660489208389846616454154608423027319447043502677765863670472733861065377224070284410093440461073278994265157069334626204866664425300129239999519654196385290644563536129834698454398451706531574790089077850311875605800866603530229023201339324804917389603722967720409239829669485003253272607439852353023390222273714335868488397053116316747201918284885318745882077448122708201074180165893701896399452671649083252694015052841547973629715597994060331569013557817552758787155929708922792059460261303641468282985230531159902586269058533159801670192295818403713075787401378981412295880457238366247765451199187050396236766024349088746213184362761396534346890579673214105393355996095327798750872078105222903329772162878322197099673237919510265714116976264560681961002444119820131655009533957537007264961562700266769977400759222837079524528632542418253974756673907406338118292745464315633001857176376933015977028054321680005844511713145892906971735483363975994127469172330946578954108302794635728270617644188531279580334858704839285453970300700827078965079956361069951494417490158799577011202656729521304617652503265586010741720803139860964851531758824302975049767396650345264023058170508436405661757258461071049325687914921519917499307999183232620842685996710369604719212004393936663425871549960910314973928771584977738443034524290124714518528128420951860485365492032458153116174464360792080870054786556767438529773291506698373991196378764630249007199748975162627039108299863480361592189114589902768313441270628579676993400107384739607153352510780013381849939099073683164493824458056848739389335172794975444740071984701738938549506358737444742974850776805712013023439858921856033196765385475240963617055102222484158535080959477411834526371623145668304955364182774925786185348779302289850314138770964280763181604583374787201632088640531531655071042874405966908225194600931141429396249057986653348149289875002177500116651736418964930564369697651973382676895427672636867442324558522331348129017824060541169418452387090639075292181982004274920823671847805833331661713346508191558463615277682665837691484293322456245262807415650880817940093491489114922676468341009787356728788688237363462458080068616691962295678941080694712726947378344557871461524480577168470299457224085755574764152587072275320993076192957921579293506170078364209099451648565028604746023119325272377260657213792740912843198479707965046033192294790835807847533506789607496789959083535860295764701789897072458090593810800086670930461517716731919264321485478937921661543192071407184753299533307925426409014738793151291931254645607735112551387299497385005108044573527685733007769568455508877631328552340054487128879199703856756853771333931041110731101891653579068148389242765942613831077105706174413115624053471878817560023215358161180450317181303579683935624413009093611917812613098071315737910650397991633485173036883608160595620276187857085517275675783328048120412843117659378521662695281530081424916524818041783965460280567953267294315534546596024984526794571376297322861967231201520169195395662481249769065457963447506667699797246383929493961393996785854815273761293748839516182237969092843783178360746039502608462939899620457500768689686702499846989186935541329766641433875133891165375159290973051144125300096488464325743359990566762076410854885060855643510266401722202261691111398695806107963749698778362682447406601454162244888599099934582397560176403839258748712605634902794966372308989426518050525165764222616299694738740838023653712820650333343795574459375467660543453512371419339371367963750006258286799738814601248764042851957867927345554170757915133648037632158088446330082486720723199432716098534581519798798897531745545144074037598060446490826759302271308673775939067020211454935085927309856696430888370623389481355570031365689441442354920386388634777905553208140164546105454319212081392173390299592323890739109303818934122410276784549193500403247058597984919458146332615314719292707011916431625013009125944417906696039490245170658871803951519931359583137477986483018032050042212027787389030740495343168118934870321736902433927302626912192190669756186381116060396922623211265633171541877203592047452360435627769022227177032499445017308005669959061549832252513408507320716526735595327327715116421286165267126802583746673700308393907044131428404404404617284187945740500872319657517973810768497118383740969895787014096738616129268451885689343268598718799792199915222732254026402771360713421672895207128047992258342721118368328102500042209145595056343627907311044964408467364334362559863776165694258220526860949040355393843251005870642627482654314494979168814362597664515973476822914478790447130941434654294116601343117823196127345987479325646918847304268435844570988153936699866286835595484009073858460376233060701314413645507237438804732070258085844656234070285178289387114202779572084958045496979243140693670729485416594778331352589510970667827318959476712521359582968940727992658839988959978077315107703939775946294496794768728649366711316819639270951020343377927184994535259114341509054468123489536962357422955953425758140822069796402728652145268781160944623438293223007572967517047565446255428118059467501120052283365774947617468926936503230192644195627633499134847385325818688228262147662246301539132476496364690063549325945205784549568883663284344766085508823931505540756472859539555182363966094255744856182632360708279580229723748228360231354144971124547453306569975643527306391324125861694133398376484292212717194765218899195432706098584549660343828828568405169566833701764967323422456437570784681957173926341212963950933582790082119296897111282340021693944773141646625002384037397474035548916972366255844157501333749023629426998131328010586695639110711123374795147763029071948620790832082701154096644548387273093481076164094069831677732351846663438021937452158387679758543303304877477239436519702322066438630354797137074223124567540912140132908607920290796994492649027537340905615316459647114994978553183806796441338497608948941725408587124190297757272548798304025949905222521172690101554346022140227594820155890012392058713809018468654208277487637290668810149564586632539948166686592960774224803248134076683957443078198486539040133842685652855752224503845648483589767496743318377286074500239067809661551483124250676498062049674608545255927625268461874331400820438650022847261579915517674800311433121141747492306460795406247642631953720398118299559353263007964333415495764810737641327171040837605354919153104199306455392341885152496730048183005599597114136571918989414676171680796377221266539718637681884527406529243597470996727410054963400347711554295026129649679861932806395075052735947313151878619961255356628579438239615768235691184498460977622479712702544109770864788963606967815431019036031202298728458151071043392071931178974471921576029629699871005611559621565291010288397265388538700527643535544704801535385017520442466878562627309679158846948954504463131255782635802367883317448010574376691304991204841603692259283202911325212238182640091814966329430211588600695095213969859803466485157312337270699961868012073353469583929680732691874501727084227502277861681072241310313540373785400004526896641160211498112262871875241474752509079573927818121812035102723590909407893530533883584987930973679699435558242387555844464249950144187525796565140865193574485261220707990586470323786549254248425287915983559160652119005571355621507333279001255723852667384818208074793740331915919913600560963460266112984150391270045648344463589594795615570715978644621197930908608858377533808241420418445057561319710098893504487375575165347702593646119209197649471981565766773675428863780293700051403201883662416372221852329316441388000479390078508516491508316078174406271286020602792409600823596273468241692049983210715818016280313653785490716406960197990359552163915704796640963503257443593327846586339393733836615625893396597758156598007766100721607804871754084976320120884225440560879891889159752659771177189785463883954177822843737202148355020507746886662534565934828332756575845193111262813256744188332818616389573837347022470834622845532080218665212865505643598232682090783424058207935755497622500996506127009049786781262262274331194973085027476396673095558888994678250053150802495968827703515485775122353177936882422813888166620740898780116572599267853265559546674470262160073809367817374091022241724453440055514227318901970013143064259060799025184753682130747706800011733035896927464105138481370559627671516915781080114295977136625023790088390305240680721167561616237832474917408109894962860869767498419440743318645652064260284501004417559355944855062944793995758514445647497861267697140795490732838839761093578068040281706655275535183686289157816557053573895727144640033467778472277416328313512312821413865792685449551124497138799330952095309422857218099369848683097766611250451193239253784527057170042055030985918448948632266982161224398226855533639388705653739844860494637375529195223875970175604563066017690786407064378863923364487222721693277999363123776542557154331902231856285360467574133447759284415881009757523247431661396990042051923799270362600624801996907257348136729573285073205244943169013323095253195252844133616580095747485237204911435835762081980387431975708883473006923046011096118746624674762144978783353181289528728366300210357159086942730676157050587621300763464330924418648075488286460528505656061863768573092246059930476917589816612452845762220211755308606497852832548832147773738375311942948240879493804226470043293236467826416326591503241890516866450916873200800599979659006206223269619941903818615852950674551874415125284276518294118212506816229150557049708595040927124197377894291930364859798710067792814510440949760238236191959736126352581431486674829524317104318753864561839382334271822541567793999738661130451960018125921138975703028874646935211532819590430802472228989950918527627809690713395171789522252401755268876000213011307420631184548677602458034581697837766134021320855308706911495784764703611799578496804597165272817384732913178545639868375629738161204468782717972069090730387340240981024313447856618201261531939935610951169230679341787938746489093995935248088737299447573147280418931129205314719692567175052194505805550073817660157466549628801867443424769760384250691565353255209932812245168377415843107330596191160891512909772200628187211077117302959815698933432165113602219764326061128044676836174855180227423111562901571715372594780285414861961066498961905180405277543820234835885229473818112448604815321603242592394445708346138656706418874352990875500680293447082134779617306544094530083345151908536569726661085818889073608532961310596640650434360565193677340440502344986355595461775970825117372431585191283490578229843863350066912805065745008599123234708784199400706145679847878567955743330845028300775667220796375089398390455273998319926021611595003679431099406727892798048141379519943626204579613571219279128649087366105319579759648017049895347501548087711931657931884594383678637766776384493004490058573088515860233733378441905949671088756346351110723949991035791613182751125257812935068731957650451199750111561413283263994624578174180598697712081493236406598426834057186271667628868014084758801534214105869104644069011792090331310963033444279765134830388650657046454056040749251857142266857273320693573803770528563975450382434137655820197566741323285382110051712579715622861350180153583968706451964558207009047320527948769120409925647975475114712789785357535074124453016938586687540116619915724812488154384407327834610569656353327941810018422434984348303712902758820263484642331335885146100137128380444566811633794876830176824216663793471423498016854148640155041566859642305034367050022926488626416979123735278437632658931629185331029263213007776759166366373370338706186255796442050386626033724490521279287676182528295186377572120397149165889155490661960530610331655795505786506525129676216787156315729808736382204450996815984397569871962571869686768978233030115862916824180785022416520624885991074050889513659516434091025217330417485782640206924406901799836784049069244684651595900304003858918153381489036218924440393777473615837002993844217277428133402108013504365962192235726635358576635908489414436793371112412076711170499701247502154985770518053677382778702121163404269039066103082000196768738775416200720629979256410663967195829921782160125524905169166164639555655017358783319220286483564707366400243492899062123910038448847211757326948861861912388031478284344089697609530069078405908955710494224778193522053970525868292717703027412188512077216933873665172370868005128032995496338885701950337613796050074461449980873054375023751773508817441948608446814032282800276914167090439649417124418011387418300933095476915233734438500287696322131469481939539639131611647792654487770487944774756073671222935477012521527272539490107124691501432688241394683533196669794592634528519087185665711992699211595103197267904347016450336299218869357578852450417768015932263504462164113611222175623096211942733619316078141538100367390223980179107253479929283887515975377509154024766240913453708288649028192998807888359002307095199293950158655554918885782220708623496017462486976473468642657955374819196406478941043610936322089957583125416607041013315577026620388215010807380014957532187065124594012477364494960464071559436955865200170554656034176216403849505473146438279983031329735889515814347392725108236932403979715523151599710105785894469976350308694865438629115312091658621194900251878102904711043931639855579261278239127351951089677627165290042595299437987330272651772029393618957201002839442744411811090464545169536328899869341307123369843772695873199859594576033541666543661278170542851626468736921961908930434512159175055919410481056211910317343593679853233076934246070668998836017337810732301841397932968031438205823172634711195683087415320541693151955709493782915681957067471749529486861499392740108813132673147976209971736356597999643863414452228696146377130282929691873596708112259384322057340975251175622864498356125150448302538533283359827256236677440330298796146193528670333987568374625444284392820471837472905382982660176127961037550235243344887398817689733910963451051523361266601679012116234053412616338931856328277812214979052041070484116915216567569875665031618115267772687088561497690517351116815169500332218672242793465981153841701577518375222781276108859319597740260054354887939977612744495931263651863911537194303569078659295183850524322515579854347219957205401535216976174200788301566429892077365303485576465121285557683204031781789254397045565673549799108548464418332285876038379672189397517909355772838513779195119372908788839069287946636957105931808429931374290273596852041318250699115327603791664853105427659871098431055228588248772949367918449503168937092594172369955842836197568147043004506110180773783414150301928481201384569090289917685191994501038806057540641731045069482584956792347401730221643631325311406319524643332555826641318719375370002231225264442661620076220285368677018952281275848681532726565828355029079093498294258298516116511041076242483857259956898915692985546895310088411627595459616298993926280650762185555123751664871771504645809776556491179163630449497749577326915747931597462380175647531025613224817774742188503888463439505040554308718872845296789502499606147091796009914562558981121390161382230550204599799883834341649471515950865556990332263841733058752718513463172890999720128643605701684294866064240036401632394202881066765611171998166155448333786241576376338442955329013055592841526531385522802030963970759465133776222121357758830972453666778100324012224557314011398944072572502540752930815508727867135960928910187442308794026207599049354225270917148325274340178455922218065254725839735733511195233235616932398945592330892346615271298989556154966150680576254808572639906703040040199050082104787861887482423107509821454259216693577743576926025683430106790729294580837240402638950425463714892851623533703239203373045769564135972580500211046657363620022629648926169340711940731234422178668512660015695254140796561088136402422947178616399343832139431754862767206745007733565901717672250858201840624070551828024886426294204263968641549707537179597012141115232888482044521606036384554906302278821423871518085634215749108027732990311099570447877482377195408171632720526498190614034902426711398999154581199494604268449048416805391832083889368634035555431696213340197029696186058552878963002960431730447555465900336307113340552212849297268237863336672808313525473825869117112434424546525663937246932373950091356356450135928076053916052684881758589029352938480769307638871538000195006067225791053932681379232857402739678814782800474899485403160037944855593867079183786684567854499928837825717093855972368575912694934118009059053550162696203849745089566107511058315447436549781749316925515112476970658387441084238214795422972495366836479642070468597309130614044677724017709339543399940660996863178587277622020505605321826096484215950613419787507290052260458963358359545526484387895246484664795928644022777196761615844710777776092894165899956598269591882016322847388325048000871723521310227553409247235671734046055563279608983470163460810986324533899109278180056092276991794815301232002730957832761057561526421303623601604974180104693845560618344306680684059559326046448222195765434743728876078002677573976957338802036006293452020918049776784217763997211765114934186686543321792927158460264285318361881065437683918818720951633669558643218797480906296951355899594324991513734322327319313795898871568498393849003986043541002939776908511063182853196742663905621280387564235077514774034200037758763164570276738335904109897702738453739222472955236335279840637995423191949802818196574012390281792100822459018157727016797233752729889102051153582552403396782069483933702837852809254572019097888429551135865843180477437471465613142317806180683582875085896628133010393822731120775546915216600779833194135302721571032103680811470507183473738927279846842753178033466649820343484606477093110772088777381734430080540082698132105095764130176323406047223802091311818765001957907579133334582574109428895414736704208903390189068207204372872104545444946556379539875666507417788009729143340030305887624837420877963174824528022717793118454273265384088111250618391295540076893471467008817190200413670968269769017499684007553879415299594200714781489765345749027483187315575261158506204438340368616171349361421129684370822425636761002117181700197442404948560831159334951723488721110437898012059884285122433057509730116197171033430735410772465699042594514377617318619419246079580017098501951365063949609880247128528242620988115152982997273035341184136763881702037939009518505972722782662799954557543564060258415097193544858469962903896068847626798992589573144096320379030796896999950550605594342297902989819578701080883466816874550524394958792783994448753071628600939569439120959598583396221002984500919226083777916405488957102788703201452862127018314970237046547383039576391566673529122924587756661314674846743632837847306626461984437106892997647530866275219289673642255116764150317504829342645880301267537404123571462020237041414660758501997735994903744321737075321515477641543460561618961811128895955958345609029592258091601435791550483994173005849234537884809742964649920709678650015312247792538414523733800631262249137715154647368823226632602869838676255416021222608269643170747510105590631973094821587437654660624817857385379853766318495743536122757553395855444037421581296924642759317350631047627119899861141742265016295387092593900491380894244445986140525073760647824119870662726910813119394263158601925025628910438423129381778203529145430163500003241675016088836276505197449250376960106364851609744803888110640669094039554883836266680232701144223136403090333560994814347239761352800580633374070335614147100387454434593970599421690733794541336407974863175901000997834852815297455122860000695060458480420088138805790537439390601515371978984065143125328067109750979350112228927009990525976752633087119996486832919900800130368708532561725416647791877147087355912094169728244198040508872667795212610168931011571723221463416254486257884129185565348092317191375636960807777286317437126983890690254668008657621497749006674592346607899242977126478015021839051633056321352877678699517219850560239437011666078432064451244265394746846112119042210936152508136448824816103539853374010920965921127138073584764635691195410753388291715524433872088947380298640601968791236102365553313964751895759234246729195722986002436549463563703113945440967795640537975576603569781314902263514751306225461311567932161262580679734735553610153290232645943884416763238290679232770094258105880413158304160454214293320972130203445294170931238300448118333797080090380764586891137765898609712342846868996879173684762899491707525893954727257607770054113771822383485193608403206834905092499835361668791823938925045832486431211136273518152444425311696295439090875880983914823278820484719841945608187909530433207926927743363044442192546778366515565733726788301252074548515865539841507522496736238764439804166712437905969141219009172168356988157410871391698922760641329666543991705363617766619694411932678364425384205442526753099137960957813708783785817479088973417503348458245276878171744438699796523454562387576981617381821066580675314983397656897028420189133687466367048110332759625771474499054807074549783556994083830597096846553004653348252393236804654760875839480635791371920387687828627605326305750875424651968785425195605562680855953818608077059984978916678863677751118560884702378859537637971910593699435193175838430775543171195036948368886335553428366585185009989682891021759487328564142378812257392416618703374054401831343368997676303829381801610076789924189702280418394457900312810630578871269354962502043715748456486441749968376486813747965819384130166758034123751706887776463533042208060477254845418159924923882168464044878079313710994609653683653550346087978418803558198034695983356420461017715762590140327540915180044740662037024653766216552117060077910095245457614048404298923498843775629381791018030478432653097031172170556135465900156835277245674109988944578584889812467133630251986826426782816337151504110196262778030248664795440260969439124169905924236886761116358271555815814169311044784096869151602014014890879871985250302534552291627864250762065954699194732768437901979333511516920564162279824432338497604138115739872281979001766902275250227772857260722417260006487336525821836332655924938792573206507830484876601715950276076063437408818473886612492750569979539233087450267625743920590633387834126854455770643217988012857908577005868880390903878487648952590604038709474165731923141251301907141027137393152123688036067299498501388286043902880595715994428494744639097049318793722250901657384061174352082607319495235778435461167624508615752699062553619250514455908160052605219137151503124941709596562928228002191797863313862349322419942390661290878785951351847348019829303219431492846157950164999909479292792746466632522763005037159095825131556234332323497913374004371862298128522631867694540238280173395713402309117541827053090033850176802610417911792205122277093402271294257147735728836268827426761865179370847236416863941668140250109536690158407435968051220629472147609609852633806764257425543627735899506637244440112388473343232695175718765587262706949591335124059533941048209273040749514040067091281898553772395771077872596499777489881461665854775758350253630032706856917089127158839173118851166819489591297675946963657740208410027879703688038925387717875594668721327611552455872792493508427769676504580979918836437945166119033154041707273291197232819534299961946795952102281212048250487674581420554882503269726862588553857188315049662768586355829980120474299005548290921515654669696741726709407614952910000672072056076073983935259946381024332516221725113040196803217834500212535198237540388300435650281723649823627197446408047623884146974718516611373197807957655720219060567606108034813475778336064967890645866558676252359468526005391935445848092007288724500351252358456565405966273261622513573762521207063702395033959684184794186591419730238486817526640119512735471382762769838047300532284782509606609126311465071060010677255825066409300989000352346677102801264728562814711887674086816205268986505008730095724072531470335446886784673102844514351792223653039614567674745116051740849345269389710494001831928201023746772100575498797800019423291214245460062462346963515096632487771965794512491133563039411070433259400896653117610343628331354132072974563173366312319631098232780174487003153956586046277652584318932003003312305040526897577778377121566041532684119883147302422142208896692936065874780407921004051267773240133827393113484121999591504485641266960413354081665357757287728810361747237025287646853390037634215732613597300135385188399107140719589100306298761629337771026865605009660429724709088406764633693724473114287942423876250577466184530728675876778868940783351192440304078900143670636241718307122618136272019885383136274266654690040684887617895137753698918468098358655721385931523198741901566439203899422678510951013587595539510151035170009408714553884368684896649877664131464010656932618011502894519418189233744156756568654486579233663315445490907571267879296639727275792630814948301260335811081259825227784243480775725963861265803157129283626077937546428654194751194062196590447687692489300792383038483881182355797528357046626962158677995534728420470376782499791101275884717078171073775226446828820031323370118478663719390518725519945337742521668941588306791198658729788456564307065849906617728754637500573229792639111111129448300807653767595502388430632605299561865331812697568313553106377771427283854455004284771319847730493594111967083896044176893011339219121291662855901533185613126776741870270932196071037418081689818010007077356714857031672215635365347068700770167034370852296492325905360623126070800944422300468777159135229833042750812137052310485051097111342234778780515452675788229301610230636281633769091795325543007110904479134182868325568156336011923072830871995605237670711832398366203434904873480833680123840331314248113996708898922829950241236202473945054259955802801601094791372553208536680310699545288293923646233858492192506280038924373206538872441006473108360718041349458412644482441888156058594577165910563928067918175399192415573098456805028288830106454467568515317712231846737386800924277043969728499853514204915190457939185081377984441632324619354849176570111309989830646412228966946780542924837437367297997886711562545513062791987448574508106638814493695568035293954935138271989595873384555687536805899831762217715472140728238760724487469058059796264081020600416848739583566739753594023023743950154317010059732804176603710284351384716545031801507093315082384566784558288798795662651321482652775979686202343160976043930126472575445183752565456942199485537515577240873558546372228636856505869209962276126521352084719411251493393549569417845885651050908673328469990771242566709251400333767062085573533119393882472937572420120405795394518289317924274152314454233711888531143134120356562655319067874660128704517258919539413596937641326655210964246010225324164292994233097629062403159401039011615028654574540978892279840271013042580837848822312339756534938948338261736524013536130820244913714370345737708933799038321203100484851724476644808228079330826190102983756354182633622971052308194745342297561720076715803385761660019917933148908041715112473749010410119037012633987897760973949836980141246331367862126142777784490120097290021010143653440128071717006913950015063164726763626872456705078334871151245403235887622674080711417616683477505937753195225694987410882274150981272251078066991408372504702816432025187900045971018373498192343187714255166987096340335987262440035914527342912914100018180899800688254222782799375982225759479121257370648966707501485343265289717906182687044815968247280867993415179718751564282383666773454221227941735383909926229426496134899219822420770051476590419233810893044666350873802378590115534239081818566479063531233002858171963776831688303716887407529699191783367899778250700755794077262781330709251871683118564228385603957655375565393328751113486680674621780238001593758382222256999604090143156261712048480261690599873015626458889495780327735344456845886603562765164564015890824102592904555330179283680544748078832733160532661877322969491414157180223749590367055398504728299610265687339333736942534295000506949590576210509179218224777862527182509428485767752536131246112636086836529099735333166748198580370978419429709908474407582755315768709374809199889320515447068101561771386738741422304550570690862243221684304043921680790546220274502160715666374508876009409567591971051828271427289393978750704447363672042536197958719518893660441704973040695110445315483249977696445922396738257853261829348345047675441234305994172686278595384654703449113716727602049152914948633359053357331388244269460207759247688830916627207072650515185954963437919173977411844813678832643481084978219517548051715529741263798102337902121384287171136154378977387894152463801242125135098225029700642541787990324061118607299159627391109469636880965068780633448335866237640247890000934334161313404312691059054514869416190812291750359445669798787239747462335645969344316555370735170163437772266937565544934563385712524122901475496286996614085527299750444518751692812105363618773793094520051381252739404174776114356553955761925059299928577588847038456105876133923745236698913217109470070635149136870848442191703901807515362833846266453912016310112292277863057839280263519381124049314241491084560634239833878501812869030730500127154839814293210629412900306124861738185847908810305707355453849610751831994464784904284283056889860647625094392467425191767895686364076598091256555631009803206560326813615803560207981312435548162299951889360890645912111571227399126249238597467066568291704564773340488618251764140136227238273725834548261111819331353072326681260273122031653407244876829234963236087847015733617672321087959038831332051999314723834735653137391088986193432503356694015476783203042617503826390440697735923606856199185939246487465750467392636028558239061969168806984309009802056401399259822761928367418888672788284780724960726446302979814598663691220949115785868483365889478329164858603466113867404945894663457768044177672810486000834227185650904785600899188159616008834759622474567262846068198982013569029656437657427857379204968211712072285664493283141639137157889756973765845281114232988856130879247127397394710416724868788114524493030853514651033193607192710530916936922246624400131673726146172995509100759211417799590526034679863669905702200917187258349834068077526894647574195955258067508377919997387238487106425483198958117469456792136215097326645011904126884510225810721764643245215406037540377458477156790591550422631880620561963730566767509108730897212130289282564501408355891118405077436378381715833414189246372427082740083988629715943217837583679232452771442013461905963727510609903862591523996936597650714290908041836683004582822755345787850041001925555960839960425192186582028671325012165461493474492016694715590486899162848646291660841880387397517940310311850679477047535003764045509909594385018948794624100884647525241988564467495161754466845615013142290312614208063794522261951099478500783270120896873522447468534379354431004698952511541270853055611450642805413828797471265176923295792992998377122715810892925806641489471670787524501542457288681815268674412234227063063567310860226619532642575659665562308963025421014663842697418353515459518775617696546958542767373124443919478162123558377774755483338379115162316582319741297528189973632820354541302019802593392722658955563548840982788213711895757774996718488041277851137671831932990150306945887963822764005699281807756357247043937132169848947660090317407043588444542732978459696077269923396639715352889016907083723402449355934900276005578578466262154336726285304430299708832458490162203724745037036558126457112309540506170995200215549032539829840217096225007302422151719485576011129187967191045626927110375393399003867935229048300511846753716726926105316337397842214305487935697284987040789565291641210534075522373849455935448407992429163271946100519166886742322939988903992158445598400369882131606967489632145815362967650626039115642589591459738592519798045996260229370086633837527212945747636672235273403126334869323376202783459226406200660142217079832202976485278808707010806596512323649309559641170160474236131072861939084503753960500750513863602388697046318695123872796046155366735463044966757788723604355393503886964773913538806195206979617524613689935960733567890375102637869663372189343376134670809032181572240014594597939386214052597326896344144464206535357014958851189305476039574483027791413834942577355532553938736973976139804967461214541113397997572555459574922783232461757173620753163789449433306541589584709484299352998420904512422791830313339608014496664209989874169429010411914847466235193726335960315886901897379912311952360813064349557383756923696338919100722202137025434566927607546692239481127850155942394328990243506531483251845542480089244014919209951897878250626568200163349681810463450990138560720830072806278497974634266669822069839699643045787234960964134418434139063377683308044307214800201331566699835898938174692963309794681060359866041055095378167364604320117872088554028884451629548172835760423732654362661868850338722439495100420531517988160864098953126800446226987921528296722783013610280777886419322984882787913322521447412253343694437694370912863572287035577342822608306592562118418885974382045871967455292368512680030794780725651287800769993588597232413529816684402267960540888076212268651097319126563785948217901660098726123369668779941816790839458349789645295451249990294682365031361539976672515391108607341288284335427262273463349549458534736899124038250425750430615196133367758896779949386384174959558188437299170076709086063455562076602558521448740524235991865402330747157435255989263622199736526047094157085922870785233738678848497657293082842995701440246327975606409231598827588961101983535136601924827754812435107173443933158988195158152141727340761394259899438601193496790928387633927902422610826203988722161049244516631899950986815034180249770653931900661058777697375636629734340296606185744738309317445654855599168389933118750170245349441984437042702768487364335453081232554871890190991374153116705620801701192854285236836852963830584364465258516707092604544127526441507330495808617039502680368863656356683587732889112227800148723314768665737499668338423209176021059827357300305312131698344285935948952486919702823054485598831077609316723906796226216928121585826808213823794609875354148170985713005866998785755591735539314526450006314890462281991351370216057072869066281066337210586261800328926188824564315006357020680025561250864951523294518415384676951944409327498578511738496299588056924658086192582310607245055704387903017245692205921755267961781772552574431789152428414430223169969337992579470207191466052747799130354381424388249756703815010077184049892333869196435365821722136358576847111465805796087150980397644547675439325462853068500079929376151760662807937245085540218527019663180551277971945105281084882412265122770905681604216189215209846887327218074576947915534013079229277762029832963657402185115268262215390221519450844538918437084386702680935975059556568785849134173078253650154715500685400603112740332005519970980256929831279015511141802244285269471651847711655093175927072976833774547469946738642380006056564287599285065083351485618085653442380228212755179442050180024817622949128701733343215618870892984737128339624820708714755298495018806293732484762305117767348447559981004154096432461093144369351245100266804345145389972349212190204139422557320868981939576968759991039976198014885305628417545594604252186459144649014669366180499156868077989913626078495062505120065880717671679030787096295825421962511381096044715917956645898936647314853840766898652720685732827952518927148054672932260813127898245036578706502823474778811648530330557472530174794377678979830614371442258447416202169980510183799528905411513533713129813746773111458569969455513672023313825823510993666809286454661728471547255778338708863619838570649497586441527973458411635893122446635214242320946600837101197204469640453861853315521214690475255730761909108875069134678168126681341792552158033784506609626924151300056350475588711168297939932245900644858444658610398568543590683785582505114606992707327196537633382866585375311041644736919076268492115120055443333100912594202331327520395706837376028288319313416700691781112253596280534293521935496100863691936482909145960529415974118102457834404093377428862320875256788587906555651082405394426761563407733213513119369265214140780903531728144735839809915810391271718340651757779146929982042277980515805431822685614705472266138657430480010445761315524990160346720614216077883025337193547095091296601464605989181157675273331776894255716403541326109353561379021416574177149266021304860429391021726071422677838554700340990946257465226732895248734343581658544365743412640998851589955437721689014359007650018983295175147956474016983885585066822043919089609332853526733083281563263508748802726881299346154905712307882081088061650485777866011970991209107804308698021857236569289483648652426742467962137184688381623732158554314777612384885456398253752915400670326004839194930242738065726588486591954958516292949826824427533084968011959618370715479042170999865686727508641896240145741558557763875622002792584081318118423403077690702624487523020930391461661697750784222624656753486508062025538987439792204620589088763961149607679504050246646920438141127805836540372646328849012441457454077301095364600007741801481294144317334844377125859009358738817476707640922262265579127585499947534081194580975401255226107518490061432645459065415251187166724762588973065468954799620618569940281752377520989522704013909736096742447032863511020884073775146466869230389171864528301870077008323951544595382828846549752990456940972943769004850416226764518286052872966184100421522144253056433269907814639009045116591164619547619855554528152231840395602424166874775400766039974698946711212924645422106462123612363714191218146780553772025787715908404957246502117850533795606841658529517476683576137277321834103749927753792167922656779691845520468864519366890513102709102381214049249984889085517167207876552804690551355557296324195623658398497935445019279032307140090811929269316793614771118720481806912697534848501904933083569975450037549323912370841325538453380632452961179119289485166392653274245215392610329101015392552830155579682149616178223838291267066259845685184545153292392837109109943803784186537440210040766178894781708759756664015909109303289969825682043846962292309659291401227492100521842284248141118430128654619033428983147197523296066166936475615311738984588491525872777076268591152930430209234348081875900522792392235645267615304840506139943469961597662140660837848196013646437657925997767180517674671743887742378621922756876827543230213692654847675800569991634912922001231392335728809847701733487282175727443563439071988931530408864804301877480591098419971180737400805049946570644224495281151058245242428989721664096897551312482223877707857402193708155950149848426314915861787345742459440164964119993572084138453526701705744321420866343062476944232773447959709142848166621210042733409709228585417436995621331926018711868206010559554388209615091749853653763907839857326014593012557792619406546395437273482234092531053641341365954129477250288597471138082873545100122847183306872966631410038989054352603016741574676468609798884330960427668708643081745374870284438163031155460697707075948387453729246715348095441291894403780303255075060866922648044811221738675999543039206864416890638100238859386772270123590948822837759382554675572916625523423189384304324596331777625246733384609307514558665306378578258851714258466446914436939461837485080952404962280775058077452274291177271327037957649106018977865973139126781229233282739145561546704209433544885703047349211022995920516974533315609549998854383299595395721183263541347674797738182236974760190232926722710537696158242633605555238910172626126733540112937882232710610754148756948807805323923823367008406041670710688211524322997326347605613760323902086654597584627393958084777897670204082007234870657549852207857700450141920448639191997107161973415761378440091940591265497717528528745614189505307719000791281300796007902781536953357929001591868320032224702418902590683906575194752787276282810626706769742376839638987151360678683263143143090843423215712839701855138467140408307629433283848048390314595370899165688954581956412326441031260361997281958435986768808189695407202311702624766607780825763779560478293567382343571706636435303651157665452206526123827149368586908395870936594396437238243166222082568581214375333110865748781798309231617442532045744625289755509580235930008645947556950410265191184981633599019968903831044372174668546311560047628305021402075845827882816804200729175394322518278986680316717023161769762051877191627788213131438621496049751625908998659485888810649965794723625568998879056375139806623823241758211741368533895643646992574892988398270665776024549353693566430782598354345536013086384109154255220208800300341260147247075193694297716698588207744132760306619617972512588520238873512261987785324173645569142782021748040282789634682908997200346217742467417921865611255035778392921644764744061583973116593055327959660239314247483010612879347353368180433359467192598874276864473057364466947317040836549734529208849247304349275999226424260677865328321833741304712957863093692394904755852469285627616652595044076567408845420662957029609858738253073290860237904955260874917161089883457613860612768690676016664836337185653483785498591537374887055558420336321707720149570965764143862777794456367393620310750884055448029149428410114573784550289414918000792808154172460602444445793704249756473647223885595085820922999932571870653161201655622844776422096659596819762262517278971775358902996834737993931104513839627490705965506780533201991173318007299419386017940094010442858326934526803031713125323649209086553604524970678107024152632606458243254415862459579629535549754614492987347547082173033781935733835843104542743030244678060027779893105582384544321473407203578930903011636038241750879071651627259527396986750712818418136754381438367788410985778558165170646718190558091724148240171417412330363682181830983759109913671945504568196329428805921089143405626170249913451055031610903956726717409286569035818344427700637318988708932457129273042629308132492277490597601935039651014729986984738423005402184526816428495350611014399480965990169094900713363637377492363998763853986539400934990882699065751879674067014223229983816283362852254287419391054342910343068910902999492705862383056031062827970525935948867989595455859218581270409664588856969719102367659646591791412544247371263059693955966851676762315558849119812721066827633026198325166585215074756374961046491935304091784265788168784483032669360850107792090295806293521073311552560235337265132979409666399927380257291168699443145954445438658844556929580409697057042927000826963232337528971259373416218148694224542472685928356953911654505424509992405984494265110970599695869943432424686843230957737470743051620563914935122118050826611642232713937250662901063394753012160043957885172504531743318279351972029298165534272981129314107874593345070297992547470346755912840147995093529514068003121937035871226359106186034267159103321007355168548909663017826432179377328469648789612945138106263029082229532658068358296990262149495142349328290475558532533741141770454447011143530936004668413520219894976456837110656863829070523214900864894708365949148319138998985827908916631503325969321410682962369860224242939637558756396256326029641624440316928701950792716450554787941692899727266061155435092150271601301449932605680310077390847218118856980791424929344286319860928564639400898214612330883268810851507411585965348446890544307146489260020835022092020252689216760451749260590948745659866705276341135409920534551952224458331639160364124403810998630113062153856743261975907068779412522698923301221395226708427577036970609187985231826032212293342704919070374207073011144683851779493892435409132104543633473885656779676093103566690538522125798334704170752046530446719614816791966926672417704854910426849020766372438503759177068125497065773030457334456078683690657187208266482898636640585815480838000469320331391121717834098738832794715405605142459003262699602915147785406376707878994273698856752857053380005447350960585671961549737777317383001716277088459703204656265448856300512428465415311594130819028332886033130155613129308930551812667695018380841068450895983071040942200429555984842414057392775419180261657228193586462179696691809443018610842448285592165452679009539298928303374476998057921113670792185747712846106044364964350630266200261835766233539447619582381665017683107489209350497999889913704929471405646022122945375109005240444319896287763333119281786210598122960106126569589542049472034724085937781708796027648301340962692982302229513423557693227462778964915154739555995386567064736007814608085614779009231921450793574029683910795053250524351160094186982911803450345637929035481266681063694197868212508219766087768177009414456145876256936866808771804828038719375149731569886253042456762015477359115692902056619456594818358399685800391248325636759046916925946999372180588531191746337251235791066872923810704238302927963657788894730718430935997213826721362453833923818565027633005682476825249650575443753243856690976986384934179285598380264818804089671269446608202568159990961523461094213979960270255728369048491967356115078885726230748105165067238502129472981855363441019678991453916892012525507840433172506783725017384312774103420062277697204093610279128494888439702765676084211734630993488627185330827689829127819299836151872987829662702315633861548065619792020496203643578057898538098829732306801486875677290970057163258513183262219316988870094052302308006922887118613003800125945826556580165718943426080000308492859596638586937964200998636906349478048594918884193162748861241489374976670602465807837122382952936446640364804132249900044325684878815337637585938984953775290747034348404491610968167381275361199031166751424263482141504883191439154501654913611704477720305853087668656075774408581320813042106652018448036389919014141067814870912027093167348692406911959749178066896334103527676995503663966075992746524275054222402982730309254914757834568305447560617204965963252033298254166174284780593691633140977887369388637213749720119056958861701582405412192275740853090810112632871415350278922043193479769188465088613477495599640457029135228815408121004214695330527735122265427909448833308322628080181689633734373998021135632104906424128248605956230059586103428445056082386717965198820367330470146543222646682515163537986848039195219307965769108653616615804216981839200045472037415143008088820954243010905270908798760275764360411517272489340519311571206688334571063576301843578337647521470970295126467885860219259064186293351006836410979230127815010602559422199724522858622203302627678143731430835306929089305066247864814031705922218493754575679579016221387819254871066719206916986204916465323887186668695536912709924064503228966753347453291235620893061515744177546350680043413956639865909087956827638588106040916082796080372417381807574022244447031369945995926026677938871208173697568146479116446150284157622276575850089596385196206680353155580796188222059906508915759397436679629497464928753129200165050501835938547574080300594556585720689749539629933591949695025626367186128353424789179729521484449529434319182591755968177081565748525077758779465745620734973629336888041614897234798410020539606793389565765332889997180634659424069664362041990646531453808219904048924567096009638987524901124578640515115882288820456359428428698409612624324968181480634870323921508563682907389965300590625140687200265582785515870653398602708748418679121058037145203806625235525497956380445887596762892688910673061919766647722188512014446373498866818721325982494381155638374443365443922323927497061901785754690878114453232274044633301732402574624987980060049226677873651196209677961390367391931455032612503428588466723723007674937268112742702725967647466755481490270816641330373707757373426513874662186609389077613067692014647619437511899715849882284007857979563061804154994378488199781807432498226026820025479754653607547626409376894230191373247180093269270059616861351337207242583773920066248968389334315015437253114374010025505598696582952765962862865121303655851413571372135668203435373112660942381251135464687310709555869264545311288144048179381270991910842770047255936235044020833064500915448159949349905079473501122187215561495259770183059793785523352789444108194785742720712848406134997587184343232739376407295227600879576708001273659936775657697753399400565807733998129851123879319109549361113965289785550325958443707932607660456351179713659016118261055261080404748185891308475614126277052337241836350051816318191017411357512309711430068400211964779044264017729890023365741566389492076027594215822217348336923410316977123449908501442160488829185069563213833074345248845207671362682361217065215931209010178498721056933643795818612244813444476799215498587864383232028378311881985390748162220153242680508079045160708359228410191974569268233112195199692230598113035188407725385366837443876992082024963159378135919594486087027557462824834656323347843983199146550202505499936162067154598220537907825395279275114049327554521997846217036924984593276443836309512789908368684998783856667800692417908274468058027669861733377786508887686596100872745501212579443439872746200083397265834204594244158827131340622877728846689814097626730674905752141437696490344290927705481976416599258970331556743588990828755481446722831766057409187994799339494095460422197777607391927969131165236495103428859565978539507051883916408832662097391121049780308438559631044791656212777894758634582602197202660050353602773394369134439216511267065293591485533743102842827862152046608653090586106389095841409350948664144804593517540011058506102499272820597916109367620180558489037659864496606164085277437635993180152340711482657782464602062552672778745496819432637332238278254182064942427204553850819292473128868992776791391460952306480950554774807780169960372861626774170857947014905853386858416174387663054800412255534077300993330156247665481345135114790104846672935816375848608439119779965815223828665421281395196788895239613627934474122065151701525044536932984299687467324159195662528095792737165509707401522584965715313761187365059730747380018155422005479285492221844341003250927555832506615810043991157005803077451359857710174161762294604392121100152022011759822732505850818860327533871920369705830241923110293005242739441679684148238880881451522953726990654895089525547275326950432918190155548568018664883618095453413973558375874571486743080474502988282879005791895678912967633403577451054382701988281737300973356478993578222207570707654855294075437864899728872265278032066873240506194262450230362465327847378520563528142657263337228361185025748232095843973957789622110756877427973803363754522388188696707695004956744058073984568319393881730123825380633520723350660459358622118620350137692216464239596428706158574419380323057395750178034014744778995166876559140203237648220689580019364759930038679049172076452240973907047435670327675916509419852914870547394983262972039877171787688254160902262502806283657566517852161963498126958282526662026956328194015893374941475364599379860671908630031799539797521823465703367437691835003893291691718478375431052911901685959370273314325924415361527645058716769102810659845163938319602154774759185733663364973485402158681031042742610420125366731858917896463889793649418072176917276831154972463292782067642474147137690227300023170734500131155176828406613373224016339533268861912992836320099784537636894382356933842460539807034757075424458016754290452796128706137775634086001595721416354646185368599427249552748057339828535750271583044809649429686789447986716484885143107953794591381802779067310380436062579598693662734887488358166976976304703533008131829586474694645078074911440226250013004834181167068423315402572323076777690549516205070793394283330569170098573278069612198711692703563770595519033975733810061439508137218375773020311476951584649267230583995900023362488099619300612561397498368942042221769184997758050107424542699717084552748801775352234877113475097566090215151753992972699115273960627199017940668759099532572969251045070826180159400390459154870724324430011077662874238957717815696709854982194773266225016383067319801910244926101826703554600537757260609086728800926742214436704101402625593573860914286863733761363232368830746510724791986644604632922059709002519927919536983961460666856752090367968641307913652513375034898360395016127933601692661869833646599705663723529498952682109848150749928009712227378362350106878094374606399847314403749475977631132239864103323170911566002171049461464289882067176113279077370197473058695965561387206774643437038277508952818512405354756406479562712187529178912217297913792763574178914433079426080012696229397871685848770581911571641401433673546641512149279777298535247712616256524571327384426998091406361953381930141304258695525261440242034075587985729424956566580323512590534293774265707613094235847858738629627354519935904325250369315259696199855804270657004611413986240830916510417298996910813954074892651931035942117654447487187290230239654760474461873160639262122073780498339893875009518466056911453747242311781985315344979054558379496811584471028401479251273844292114330946723503544432310874650113431328754162941352764335811387139935495028846909760236635121307859037786940073975114764507558822915664456575295189789128802605943252995267920568740838150916646014232499529491295488966736056435231874673160211178343192382943630761889929787659961992632587680696852019960574494349839655009520654980106487059860278872217094710719448506676759437074671232081936594503642463230949471825338351799548257838655577149984191530417364652161986942799813752882932199989273937896995169907405570853392900029471285416088018971735290039485386839431409628920886136095560035151246620268836088579909551779940220064472301712300589628144335073523664221291194829775838282320940440929746541973778141562592217747230729808197247941951136592564738558739213822980643221630330103567483147485242505987937248289548247870193000399281517315370584349795621737449421120918441839723051957231838825410925950669741010733723180843156202976308150200057253569986302515357025155894191190101406294840531268881278125175194695048152788424076879734939503260657723586782786433827539177185551491554341979577201196201547922294584348757038358810915789766322632522047091461900484280153704997572519582599869095400594009648854492380590497239106923804214881353616315342870586952258447386726847961640100470394317706767954426386268897832066312662055181646571163583106024982841862280707925398095636463636473208807098348039635508893442785436533141976024818734939072232364196305779826248957065099759059297595538646030081232500650617410336342742719487061636831111896214267138010076971288653232034876926466400331146078076273710554563666163627263446534571430745638287121004048314480353670296807678750211054003873341348060542470386188599795928534011458490984889895881518378101432436290433081189780210625547261099368826674571445667827639470852964797543745880277359471333081896684223260243205789300598158494380863791946708876221749938041294515736211751352159988817834525936580418146096591908303693607127954171102927942302941910710446469890154593279843704336342764331624757623209860963771354549797086851748127327845490481953801288439078484256643480303156489825475628784310747403819463472997760218976802871095063235290070981533007876271983261432507593559270479029945553055585901927683901019109649261520999330387213451308914114693523684976888068671184281425948719965969392114112470826585191225051584170301149416075444893615787131536787462488557429945247675116724968095775036024125307465435098065577980186747302053529324048986941197746063836002679873077293739202548673092109255634850939054826860951122970252517682985394145468959190433866864496499337463917898739386018133206003433157898150965113754105936752209664382354464353327798111416463450187317556378698569561772351362262073466028993176665643309661813066554302018569125997537032026417934818624417574965089307973686212916597329110182133340169979843081039648322861198580820329826579355973831647174950428735796197683466011700541251292695044005010664650267470546317858485247995176150910636435053680916202877104391727103736610757575634462318130479803267167831955557402065449192954205643682374344216413801356794449293544513372877752095809011735479479339926241185058817771563331589125576792399773463764533215244095461966855814630182791119971507196474755021784454646625101157171288387491977021161182300267696620543939954677778786872419467467435110795357220739479061450112179795316576019453121853034554975668034186208993338052268398144916562110988803534988769485839956507847610539360424121252159630805396349352521402565627716274335487575039103761197335086257610354957517956444014479745316057712059232951182859334752523227527284813418929474781988572593623205962973474680021658017970535219843123007929075857339918434622869323910914818925135099230015492541804368762481036572147590164561737547112335789430056835870354472826071068025320411257067110381434206926714067510718274915853608068634814341725306670747840948537309589562140378280395574008010585173047346309339683259726710304186932252977360147520457847936909337616518386835301042623036547919152106067583250275661315949590166509478996136325035818102486220399087728825049003991137313327021678501320684018113049767355322127574844421027903571442657874205234943698775980653527417399491693525913800151581365604576143138679089238159261153819093473740751577473090287433245182555466134395117460642972316475966930549413787346020884941404871828804089355960950062751871060206307698071775397844192848978703691671861493927015767117546744085264938176034204636573600238418961848478237574852682531651305531306284745951243868278885170773253571335582493826106829257243938035433145954019176121362316050404472034271784228627266917875943033309209725206877216271678018004305004400319962631316594195297243105031626705069200111186737635210855411415087002884391572067909035200885983172307445431436916850537402269071941178856205086812684452313332428866177511649728277066997177830333466402320884470317856441452334617095203786856332401323282777149314371588509982277322325411894966242080446619516418604146985080573708320245091945354981914945284768293859530377628838948484251881342049669768890202067404966166927817750490186753776309900938488890981309638902471997771082938211336163788230201518118763032728372491388705655787551000786594264493329956028281303657280477183920157788508102330079019034582135884920422236913531645996991158763290760963133597800316816106848036202033448794024409790310898979796584880329529101869438015408230713999838605449390297607585367999681366533084153737181567295364079675832202869538023282807161975742705446330223884914016889381797914007618527572650163467782161900800694062684658451051641124895045983044551669073985445776524050815309036095350304867980076197206535667225488889907910748953414868150354338937906969336428124587424755722014254350352117091395596379169245755808976199146144094391169254646827303199920347344411635457784211288956912276359861871087573772097299536804611282092278271785695376106896296505627287770572087081501597100934493380828086183623025097362483633707719210953058089195629965358921977768274834465711505540307530642006742186764757454408502607381279561455944607125646204921023579739940757232351302190692797580520404604243850352820941958559332231311986205970985288039614050287448734508571554085371892606446659617646677240289751580590563965008254076969622679369441449673331751108259750631774904229680177205752279117449075714089221167461030265799325407323109773917585314720558272984266057612402984915917723874998756591213253589308060160035183247497761250263071696090197677290675661946612519418209052697636982068936299718415428484289123060707299397177501946400673269441478100760525261174271194136529236759962838181737226260870482146577035081911174640284567980276061382366795678854507980038277669577696042049802717249782214731998235856686421226403450643355514604870136912323402872017310446821020392186528415238484691281393344044753672414331267162679158672072166314622530869547006070484105647016576817088267369660397709502460586661840367386954881700307127587123510130148953274414925986640462568467341619329050245686820144986133297211442243793100481089152049200920987377082689505937788934436795119321130087878882431881478149382248535361068924706519751965412210337031393461718470468849979222051103620407108374482933606707969924675466985540282489799532307384985743968098908671769337236111893542830961327904013382854390166213749132052312862458773533386938235882797099905963525542182405237513367893486048196294055550248516261379518182725414818172637380885087179650294185407889937555043139069413299943537097608277624104563273026166885802661560112847189246693121600877517295077922504073374045939543752078479419421544050929977059633831642050929616663078988121578992881961879798359005786931759305856458501255296528278488814909374809734024567902173553234544186813676831158446152322188450568356023191917204777058503396191605024371427551075061467564491441698165765308487547072591320158706471402141094333277660145326825979309323718563003611217987039782097839893828018378028345473989990443619489589704947605180947984535088454774302355675152081877927808554791157863152683914127829072102196966999541861249112964463756209665197128664064572773718390379370614933484768128743615952217273592614520023076850295663664351857874002941493909784015670658335929382601437134395602322265266160739870117492989095783649173501579676886907625969028952096148235971048401868299588367222617263681699581506943416535726345426305964343759223993353281433302038471852136976936545709640902477359312545958033541332270228406459965675014524100609717800804611506510269821991014339546361309434116630659721448039021734834659022651810098469362743506384022076196626279841548077756348035158993082389237751457520284479559173838499079275694457304536050889048274355168409143208428195844981651147093959932015203329337221607496182683350731709780110053110116593818937227536773257063591025618202236127931072035393067427151226728543340234052624115424875152604332460336773022033423705940411911860682348579766826741222863557780165875597515150677534243346683851657286400819227511208736069505852439976604235762911236721302961900774000247254597351819034590980618726107359646069107284895578167735320026794570040314968394499198764316842374367544333560609211663932225322715634174335597172444487207865316927191850485227053247331857721549871387291367791108411838542239001962678182770074484537207790088408732139390550122828352920992323304559836093111808140369394868206380715150508391254939848827667549528432538309118688240742126084949874657543981045443732638182518436872212378770614635801602407353330210091294766542226345455731906707895545468722421522962045875891389464379715044775801743919684420864075933306448035619162430926788852959026542529759490129452402321401385874880312396273736444671062797236586591035309441409647502244762953128065330139593322618921034824763927109578747736542675739932367165268358234181024382457133086357940578433489168636105816989279894017626609811287029924816154660356770562388045446832829341173070860839602704007104419648217363550169781637328766678818802062956863986097947936953994710109497879664242542153182264476531249276513846884225491217679400344748711179282467800286016018626410450324918907115857858031857065270772119253946566613718406234206884803471160917448560144999306866042225233590765640436328770470689622266974421757570523130341578352118106978070715144834253346837945728569606509883806061454921398764224028084260962881374567843124215497654356626645110711608918025587196506215012407617713200229688127314718688677133562848726412148874886920755679778887857062246301557553525446242893123611652504891329514075537787321110400392779960566466719084293219898775556025047083852423689115174863529816784996868086690725504962891705665760199131463589671491309269969332637303378698668262472007257317576320644710020761782425603387655307801803926407832456277197832160427271193082918794352279606428075279623428369184274805681910861248224128379914971821342596494781241983645871788504640660375465998315538182850131818620037635897312181813019127415576611521689063989820418441777116071011760637851641605376362448164646440322913395760504677351444300075337521224540361386161822616018274526137987645916917528053018387263879728024440897893938011100752448739707452082339246138317763556972587507239291453299184810516428347363886002484117150409619432810752357726436270754767341373901427197274865001753400367650792020481164818289903380885318666611797768244580461256793835871933109812700267396013206112612335682106373823948054740322620078908599908598807639116591842273358652066307421398255028151244647917376146520838321193736618416732208848803290902702545521525952869409953318923921406952853194119706972534388375715225124695714261037033050590487667098554592293712637434538913729044401434955929939803241492416287317379720019012594783944720417126874670620438809494923137823172335716744180110432200223156389050896259605474059576169224378013160287625960779422844953403456476524751249408658729371414242133483887471000664538993571335951997157405509497578158218040846602551033997273734153762478927226438611419412937513282280348554014957782356137304239550733911839860928282799549728553377564152800816974954878759555408336163566042643556610848533215882013617673170187038580092938206116021822987522815617068169041234564438054904863745674325094614892697861335312038489632401024188846291244178781998484053888990998252368811089285865720090247682841618702531767378960504037542061441671521653184602060878777474918705100180076734888798679008292169502606086512314018553201174516615928143903658373558705080793715271936969321603340632156894710512001760463108457325921043452911365181558490683253757077298006992777577912104260706338828326290096172705781034178650235644660021047020387649224209544754485997762563093010353812066462795123309221308863304051595026421698147671686140412833095403483725823217407236818956197569214982115595623564415993466128067021304408238605573803750512587067193140692573385636063306992621953457182448416111220733562397469277002527411452296935720216987225184320716266725454199840053796745873058363435629303988881848373023441534115671398312196398837955983193483979025776588548953727556923878566900131366206469796279868025625600386601236834009025425119975135532467554276589087789413306019321006253276377099527508125799427266814207143784643344138814628991050025621148316391024016442012388296089692973361562785976392630232930232906724638218302485067714869376906333359567994264386367576763388931086896626728655536755968028232950059102363201495123285402248564262120745072966144341515679042352129181704336076053839646460026922436097101544051671394377422552159805411430092547774297591911574083407764812029253238238444284295258654394750210485711674944273391119648953963375714337938301186947875572512812547348605919830885984227153645218023904722638915801471840827757036443365540085309773108501939522967353918165832680940429355808685892259887193791631767344039189168035552396245159985170614741428183255051917723249912322648345116935133643018209639216209998697301178477057225521298716471925612040753337239147848865076952425506473819289327167688144360963223506464045967683489701918970531893083922075439269622002127089198634673236408360725537635831251666325814966211659645029361291136518648757471804325038630552424303931681751871284008144943184487621177238912592285663482916790387252159498493609657023130426269191674569878004370296713046411423468886343361542937634480035215731205100578961971756319554128479840557753829441109722116400702135379504080771312110308981999754770198784983627266421153850798747468876087157653167394736296899800494031300479878781251425184160005270373290158276845719820629315455898041601900688374624005830993235294709687339149720914472489169646702274928960383589251392446320568887609222805821181397106941877431092212849854339471097734770112677702290797809316279635232961942424537893615763563753112112979481301805216028644525137851893643371292253212520336816439722072089548628030033572379329158639237382982803035990774357576285749253123904761447444802194102556128319405481278603330580595741261814182091919452321806179553715514693203699511944690800654580936697196742972205381081206084261439450926870111010254129809650357273092595097718335166822265223138645266867931860929565457100477379310689021054146334467878780607983223962730323682337122603480303011621442473978417460487779439351147156092111752497474222076039314420205313588242015981847554867686598479136142857462089708999240036418247207320772279435073898426386331689192894575531603816351767780982524419937122513066657855032886689645527516273348189677442629758902528544962014926010405889171169923050258841292408799360240510839888940819301148741080701834364221958635459700763853588074426198309040491745480729899799309093692756428621021518403844699766761550644413744371915202566572790708994779502837505956771487124574772767705755056621375453062399705873959453880255332427872784721506351919920761913834162584591679956798659944830694575891913080284973787256560689805816635598321956235486891880516978082845530891115588353407772664601739850560053328745066056629753169454955618879465774498600975063538198294631389704568726444777475613734515010458876407526952253980608913421495673112543282586388868546807467976315377211305034396363736605661098630163981356223588229981122007204312648452216247075473768181329970162387049626510027254443884430990785509634751177820085150088723345576602804251534694083876941703109356208130042085709363807829304633680584485866867554401630994298415625026217151439969309841063372619417481016950417600951946787066968839812175688874727418943359951664960663921994000042141938123377847808149713929409911274189351707348725431287355707800708690017001290012422924447210456166945534616328238264126712213745730964052605017065845517641351234737569995890258669816680253903550091643947851297205899165146890264844041878791921952890972066223063821959354966214853344495957190984481602267324341778710061664503127257155539538103129850929481061309840670835242336524756293372730063922758890602192606449193568988424595071365515800500462943840475061511301658558159792409550885532086573752295921691053594629776142258832543388114491327082183338085348300221646670958257137569361716106574080793920481809836518740232788995109146504812128125269614376185202240672571705936711151906806317631767769036137819081533217539577258832600925925795677427756054810145018953010882728647471529284809177304667395018972808887143049316409601631855896666274026111138692300128591087454372372500222547130809465016581922977920533140315407612802577086438470121145496063383642642764798605288794756189627395442155622982035308210290787287494639557293348572532591102965470384621722135005879821321667601634468659729143270353406495038599212496253191940653597330622554264999233197041458623010047631415202519854926500859207576196226794246790280025976664932289725013806487012076241091669259631540095780458688999842042153937260782468518038118535213117506943991530956890094953437106115560519981810030855651839260977647557489774303263749153869863880895745327212281241217660825297777000204049674094827916214072939777756874689002875185223381535127238130209587793936086312524335580410046579933982496343417649525143293599753418011690975779454329467145883494481076074838409722398668666274747176896870082369738741903114040338046123562928707908156913085106398377641105701613884139404833276065357123429613747825712884734909707036372717661367358113571596938187645717633520803727684872567627014788664844190578783413167737222750190009240358698698214117024873718474218247200334841512950093748353029570271939740256904809986969352247244387723041455188150522095652691794920065659821013863553210248872409045184618161759590199733857375917658347332749074424300347796734758757557108983354543971031454610500283942390752167521375391460334416269489969894707428507949249032212878249932361917842733465880969661279572287464519532694664493795128767814506905149854917636047358661646075440220055979188022590385673975023844410142597912145951599522014110189465557222332673242104872859395384485033640761614483142017142126177908381494745475686628599560290752563977673511815886101508547400668806322661530001800138783606767556242232387960989388611578449567950605719968404838628294983329590546469082893765182339489706320958955678443534319666882014490800312781766606024320903310404720515567144798268359136737133115780117672965754120273604915072723688640219692277507744464083219306160898114784438522505898381204260143556471737619691546471485582819874480447681461683654597694886437648282311728143874054356724626324305247199909766292660918389881771228713299826745654622023575630291618556585234748513808844811988514007408283382156971473117047153555733357627914984770144706087407504721960452919646083801278719205325865546726302342266465274290660061381209482174199935270618873347715070714893765532116502506629950867678931971621246012342969583554835933349723224696111291401453066248866358762900891185187321625860070693762008609652969215334083088574506007585542156782540678678838456911988208894048144478667485618266708384504992027673909239676533754029223377152842087730579750603318671706644510175195216627828839397203567509665795784213631219366671720551786611623823762387257655012423329274309159988216944051581749306565961135187469792678190471970795868915002104382340751112468136271047644937804924486872608188566094948286457318072479028646451513280937456148344687616355242297103472791876104545665880285252854994699933389191361581872846351542517672476124663110988727994831545938842692019393898122517711529814565549618291814993088790006519024844268389246085741334060942770756382652553670848585967989936695672642849120840776469851576991784377455948339912491574275204888665896756659324330690384907123102560509650731718272869823469233717272272874636105581939491832275515558088176366769436673395788361448052658580379857809010662603047817425823490021754250629857069187292089150466701182182474310569743236513614507124885214300716328512886640059141921792900977698358476105118412695362027534406450896300406978762829690768673490964117096038016996985838608226425389911926500260198545743367937728645682809826313585971635849820306439614595779389433238392578687047361726603353533658553813710074470618767265527205624101871365270240258449704599302283071141767461628517360071196161200448765050270656307991128910205644108102531929971576048077173302059241261983353759961976363057396745292058247005301606367823110978931639817836329549318702682639941791504676326785884975530725420799992154273085880672782694786075276199901759616964619790245991311618692638955120249569068144002740736602395901349152205639379074866675775123169198194940811292618612600575762769216890687622587325462728890729009729440843264837798525097259251184901505005349986338436829587992082911022350822918714245274998587674083318935775179615907458202635977092443270350489414735940562991714973937442242890697160343384916056372875483071443849913582022132482812207396015487002138660712249908724556564510665222415761417089715324594672854999469358307988052046443356014576916728589047894972516468662183932974079614318683088860769779968769810050729318495863732815106418441960994823584018786892009159212439885283222942012782243715781211230271600100746791672005650383604820757704055397096095754624828036598495363686362657691289080865353550409845750430992716365249595309763252057255010826487490780655453286413549837772532608462726209236901160684967364965338663007615832364555680037379414236467988364463036250670985615396946489975873596016575709156144108254599407597425564856123089576509584958019597796192071950433606897699481742021075166016001908717427228104604347423837955615504722620333092717351868979141734738910935734782387321104459789070782845600163151088906350487502846222119296906825415401320227360026559890172153186760542522947335118878650637321637653201523543033451159934824207064039852957473213463410203870631314149438601517568783022509217064327639717840149572835813208700887823408056180372696136431286870866312037415942695386191846327783483850366259621390222022852793065380253260037537395911647517872271401819581921345693690065343204382995990004580831131390990585788757972313134083521751317249019393223584635323677857958429968236143803506101000638356317727711494878039388538950707064282670697095019560689231471536691290001894579444933553204108254073772320149213526740331853488534404303677639920768549977570385357070583915912337928690260617965005677830862764320823035020022320810703737139949404932161514139760256068293730573847053609181053726713707865460193459667770433531109420703280170093956447724841415896147688062938369434982966931440106077320077787655252874390339118108112923555075748233941661891572791598017990799767786132079720779510689392276220081311338269221824584935705844359334519901482772288438072175156075057939430037970238701539703624586924643111583311335819429510313845266128789030526242815512876070853337691935708690693268839517813463553119772886653311681247988249298145500730641555237721910311831311480608745404787482732149676861251982786610914073804957862550571470627977583868073244060250647753509211152717577332402467744952315721358445615725848718939045820326391519701364691924681764796763923073808966468323745451329571514343158327888586176795114364125102095586714491151141292939187799394345391349298803648213936426161860199685369913946221531381641417704143404705012857169157718511891807941018596571460267330069337898091133566253355075995376577052595941287354822664794255242960813829430243335945727511431972415844672105023291776174170890805167644098032937722046999794943346348250404670965135624341504647086018755529434166405805455890765811870610492557989558542265633777464041570827283385538445808370062222903393262436873982095602839786331592816709159559692020788843064064866107970694253711843848556019875211208131597660981775113413079750989332190810872866228897998540979162982701470185233989482362624749209806274059197201704225030075047834386564011572751448978519197721768666289257659849962988805242261904466600903596193476253366504195913425518243945874478311759577763136451640165205720537676627270906180338976951390445466278702905412728972761254902856933051344766110641060825310318150773320251086452940524003576136061523377690358062149518731385178112228244381858708821567961098303995988497126671136645883048310788817570949822215291021017826736988332171760404549867963098467492274946863109446300751134944585767120577359829268042724701908710560490772162716607040634439103821085447927137636569822806985992758393057193841885827442103000205420729651237570554658034409052754523568551951610824029312913286644837199232387500186526776930514483057885802396518833185623321525237338072410299367303174909163505165366315760058301035106863285106587207153406001872100315396619600721517267547477391742731148131778448385446545889718564568764930278373238088479472768515296935350943862405052010586315216729951237440791278865938641404051740186243237839947201555823279348866566432612857158517581039532416336681044666908580264730782671795338320500713837308289886477636795175114488642022484306478128841260920811956180623794539887940928899422849528158989783319938709243613771010275540061339588043852553247044968402808737593294147194160922603395067979665342658035366819479256579121390624405665768180946897600578023908445403377004254287486297691958778469973550084404234972494200971025722519972420904954853530348650552455743350207059619900631513206200662093408465573834237360117315189469502258790938550102875380029634374494605647518218400212463673015245007491197068188825422373787376465379433638586680337224458056616043136948234783026525169222320303343304670888884975336414131720516635741643156917153131656160368985832178424519609226173899047853368016394449209446586228258016604470779719130212929667525534132652834983948471647773470538352131250185380566159589934797643650772462516147522784003579594196210396867486117794053786457915856010011867293392868559212121558547252115865047046351653768365074968078592009092950589045081625129080190505163879314121366505192396081554673216187456160909001805498568205000283820096796253912771387520659148183773395058744757287144549151171419064586276442469291416257789052237728594680432051550402112379835816122295270495293982892397600339472182664926296131351521905285410433773657809469640562066423342756846585936656395178072279844475329769883006624986879028265010054037194611668694437652384385195645451775437316955352986252944995543597913394029615713551109473224620221184745973541137844663801550445869877840192438103434024614382773711368783862725387370315846811947454787770171985942461616479021202466388105927906433219211820310662258604541274392050932050843770822183028433732985111762091687702977073517112434578762338708853084226094091676720099424680126798554426362600377929253395571450505922601388898566031950050076462576462970771628601091702308966751454087230055635887583085784328140050915623853629153272817208852993188967946479932647872287960979286124569273994005899606458319586075535927016093229074270583722953928512068049618137833314113466859565102523527847456640042583455476630986175284743796212576506312030812393137153247245701341060455897521547206887443011896083562397961437215258431337496910226631033203380511143933581998443573974895421361647434085368713299530890874116628576206266737710153884701982616394951897219991704318957277579679466331262285641917942246059869859142024877305406529091270948628885712923013650578250501180429482036962165798584077074666037817799185720046134502954148835446669261975844172108893343033382901080352844430925700594505279217896304359205462877263757753317342442202526073803113563937363339682480105249263505277333241487659590807041376319690463436333819154142684108225293560721384992534244242427572134746682152881787421707031207538589175526073388917174000174729958937574571728006331877138597118267046796647533509593212943619468237974157258208781198240966829825664099580802403993190831564683320199082765695552835172327318821393410249012451391813197703440849497635759287769734117366802012059256313525736202699415275431490789856960062535608529146310570397453832712352306669613440853404379238006661154434087216382583367714345755705108907218794435263856472779350333309909043700758827620450578305842398126118671382034224821393180738547865953454541105413383160649886501921606985965775939169299714718240681096217132648464925048815944216477570863707410317979825239770132559658456705785895692914229195219366970611730196683597422300897815187502131419506270057170515845656874095134635783958761026859387370687109163336119580410086725640702935051389731568550300542196749806323690727748092237515646125044562847932246713825359442039251810872192658091827692422027502479889249777287039370888603976606460719416674845876596479778517168760903735537795797067157414137314024828542783474234185271736461235718582616011543442639950916876540165183599723327101398813992225079445466838163537329791607339002913526788051031662937701082139888582018869181444957207950079907212076004927499156776967294248353554066589052468884966472879785225132089637527690794294670084126173052883511827014907570318465202977449521436067794133165763827069565695361819306850647735589395218138805621309901364657049945406787716507949997662011143519645598859591385978481995621367587514202609715004124650216266265063099946001082955462956849750849556510288552314162547681999209768311836644635674438859400016185723370392113146332708429574731957848904165152316056903207795862329912105566941339593450206613520251150825769622746597364307705437469128948667692282442596456162852761233281503619630623716919224368594745399428740961871518008580805720784410072309222694404155653808579105066217529790215687407535198044193831722811822097655461970613262485534346165791951004072716983197244318694169972152650010061085892918325602938562026751529286324655972420860743323134180981792023603422992029829411190424631986734234820318784395038553282934832223414576806464663667207045027941411064170601440514301482138738065690974755967844697973770380834741976126450684384176638363240807948961491442769193503694472441677782499666724336512270230001884775595350361072039272092037191783690251068967956328601872867293794935201400988522872568669365618179481985877354144401486261883215905331061986998803211095225058705603473337016906614037448870612290227064798417083290904300676197653667009424931281346511467065592093089852092993644072475145042522241509399239370938721331380063959624605929389876599988544494954614039600874123398249599539822321118327660120660371450560130801342867067636783252287990917755247065229225631569793206365499048853269969117136732247083216349992688011133187184285154259218859797344180911607329349724542695669582809777887150171152650649926568151274745517704081090219966923425438548770655057396997917437873601695109501372983815419866636556324095899591521444618540585692030660169078136756653634498527758346205223751880736370200578751345246959184420547122063791387799148812926354367081037801593620681681384700435542825957364474644369745668690483358073837646202350393065436452203869535990236752281704139335075673123358872888690966522688146137395224668265250636513413923561935730551479736110457913067289004199049468162455204575199667581464912823467362624887560647758247718887381590607989521561291255492199534124277472537598626311820617902642671938055575568558332377187628630562828880408661346028662896597792597716560346173868031495482717112461857921306747275370691221865419502177081439330351464665178080775521238030631180229241946250461813887962306156945330264407480538464912735280476521689822484699723589751261692236212443484568594857742994110314346987091567641105452427568393420510623714610846201264741693205938964526439252707796938508671486870433487433957948574596272819715784044956247796437077742509548460813908268280046301845923177028644047494581947766855705022638005724182851973423741521342865980100973091150692947046288472259434014239918622517341735735296619412281158601972691398008496157703239953570641906918107556045319803914647990853497697973923787202678559424599394068710721552548382157645147777506980553977721494410668108540713584231421607359063429435195180260666165206470059170358410882823208179374565375448496890909957655057112119334674944279375189469157556237437821691311965169931106779194107196065868441738868755626810015344795759618257438425807617499308653127935250416477901811548947755084157091323800365859357760562747784031563452212484536502987470170778446742125141607761914752730749130246856727697795555263007796666625220863764862325265612617688009412408090007355599954147563836469257535768434356977204407021255413171361834618226478802802443333742005936748926174953775572948238419557765545207011392355281631667384411002926530030103232500256479383237834843641168099034394759584354420448763986362065584304245385521313423659207399237965074204202648416980425314292241395223685427358125744271060473947933306414795260556036801041358612032972775633190801463995139043846545662327798446015203861958481269652237565966167960991801751115244127572093627697863772730947113013248193411670560594498651056599580199364401803835529630665114391325571836093773670897011664627975960650962639585758189452561017102305126253888572194492654481779412105689599912797040495055354762836659380168026323287143740822182660016422375934912026193656865872514483161301429946741568664140591896603208540805634370342185327916525756602153767761928493534138702368355580750549464817488564939711023916212293853011994966958240739619356250037383590237089068953067854479404471562392322602292385005455470503000459108225570958143981479775850951167954427563216570906068441031549401088248183552485472068542471585470376588486777246144193816742563456784770148701539884069321291815401651004844734807845802859711745781792119648457790681523913276238766566384386656484056981836676103258548281273679140106427945034389948998896970362291669021423342186845373509978917710721996102584229753708898207032908402707615510650286189042577967591737191383661641578889154230635317803542893384468170827497938865844118325187997261054733856862547224062540219816867731471279126210325475811089091700366764027056504275608580454571936492020296555931455791102718013860414550970759285002562669518654664944334108642298886389356625974668461543673030188973747029053495184828615799727983761831450743767749537723739276190584137112898045999884709691246289080778927872525310111828144289972479344100298965904622519828928853902416177100686129616062022550823625778575408611388114456735829391275224515796312978097356684355518988424759350043342999164738489867773898722774491928735441154851700720903988045378748290721817894626732970568606768635986212988661123434641871827541679503950286229125205916240338930991410728720770416814121329464129901618301504225150898368515037182008011538710796045503419365530848228114402567597277295505387423569854781476351101336835225330139537388421756525738799483332334251371181685322349959783899408401240339613710601436598270429233620801454252130893026411208056152522262369009892693264471597335828764606447146093586102682614283815890339793477535178422328533797535907577038004758687992860886904352910838851821786687589793345706728125737256194305432918911214724151328452466117879498874849998382299007337485037313632543839421572003405605451641363983487978442905320391413247829389035484624210054730827697495158398384139423896979967428939548434485147377179382612349953923626758285014890561914982630574701188886872492700121016750432950150186914213943326924375439741211305359773806197297487282127510529308203206741895717402585238427669810543107462011675615735283807030369238421321405897112839961203375480011179735657626768122489335542952731489331274137871865533138836233968788073603089633675717815818319967781837675060518693770269637640617083345235387414436986894938706923373817573731181955527785379579129747536486143428674817748107664424108178573392101711053051574595639780997188386517978181266497220475885510312461788280481873243728286495570603508514335635680622390538537611288486495031403071522909395132507129165858008268142500616618652481372018110495347136991592136608488498131121829368688515594307317718473837718461906160797624217879112671189423404698241951581389709836971900104832741337056975962637692037465905801915701328958820894074363797273444838019580875195802068032348635213199827999197600719387176464001413810033699563845294299395543665270754786055838748331730269918556831212377539254162472994125732786835501067893067191857297936056000618937809088615440408977736179537874345794187730931498438624646512874690726545894246312520249755117745038241851969173141113754193219577821127602055873897459733559762536819045248282195275987769273668122346240448396866666666643939078363237097981740627765217941097223224238710464427908195029273626272554074852777573460550109165141963673323114256297943561845895925410369840275310049984240059042090383108769431646945834187711868925858604502542420731374454630279161514998745947283999082350925379446263810420089298968971157228384588962736847479313710865481104415558997432285036718312045486556214034548621264131584756917082473418886990452968644480458861939073746602103966742874481629070185973765932265194707348359198225303395275555654361561578608670578223281723443367769481830983717910195152126585832257938660982577520023459587479032710967029568204937239159995589757779643990056326182935859790119911192913178458061669251087975459796553716289356742521984206410598249183840441315699747746830029083253619011597036496439639668448382657262240229214352513015489591518563768864909182991309287179793688849817390852303508693477355489594997149257487863359465719241199025327121282932097344196874129935571198800752194332937890289712051125296983972795931624101006583580855389857112398499589848451203044513031528841381347891795363329848047227954157696494398728234835728879959181966972150257936709939325193311695330111502518436584933764185207301696850430457028183844423887380029977970762580886241512512945627712516377863228103934612364516738045062233945774123052119399456302994943739365054744933249058365721916657776506768185608822634505395496838338182973697074882465987486104865024229138683134202972293765296493441745043749298620991135303102251083943885299474288048634470722545882416610237768059586260374804920981795641205076824662762047370037337916309731085424753469841979477356381399757901063650456498124638523591476706453053623255488329032966482200380682944165318619095062657315591691440065905618392238966294649657825881994155568819481227392385071574490728431674437282584186693903049938819583299663467228674963443755132883508261575512355888158115049988632992147759266305503748472136192467129173543573799272246250630888668864252216985914744337163397353619880842375090758312085010463745077105354597107775410591747453780251200633803897891510740277278696004567953582010778252385788280562083254909615633129140997091973149253930553680365649877293794768869766366896315417866490471899565957448197069388862298511094014432339671247881330551447710670250961439861739925839333740454397457009173751782214203863702170722478365629444562512256672273638391064959838830581388998146304984200135371504020981683419451253481303154291853729581866007883191212963906942524636567520844929253343368845699423528518124557566245050336812851556105796870187393922667570350057828062239611185469465439260333872416456967681413296504544834370829251550901261861371348808346606218977829059893502247593140769698423803448699584893371773137671031928078063490893198303176536373086358915638667119596676475327374192751237821994104898285097629380281995924553050470658608023404477585206045349176783777218152947966295339403841055375393685926753842972421214053986357994697713303711027152350603838470610952781896692998685369937888159739686526722493991512854133469178863692196114664231496095227672664598930171978204033758346014328395389050983078501994350310450993933132363044108080875670943334111279292713466410228664937190261914040283149186191447370490186590398491142705116283103479990910076513715675026645869918236291792156658736140213866145234709829319568552093912064490644942336238918839304956364634309563892722758682581708949170186745174650245924665370154313626172818561850086626040258318921596222115930022315030165031147607121147734968762721084568829480091599323670289573369641757591918237369548271384705333807302554739882290657417450725124455766170116715696125942054271356501494694437173456343753268739872835382428928412860815893721939066280607614523766311600110756565025286940981480322739911048129933259932521682856576954770937929530350723145295406521377302556230858424469923237720173720815562627729912111826803482079920084576526185711019766444352869562267994106723981299474195230209267205877858128087061358928869012103836811769484588968306822350489957902560172236141731805843961734148998577455606351906041035379057015998174847427294274794436941631729553238719231044339671905180661609385388310540512343027114027516574072628082715405130109568699069726259337700554494740561185435377686144339677821299054486340347224160388297534029387518099851692257208787005649446634392744337709912334452025149160968250240734667480201588473354077692581739276973104059519459101066447906583296065809255779088536374527532688263429771048564463576687327270360610890178252998410413343276573343862002716469090409981107740191375321361038071634715233238143646423520382515657619008287572262119032070508653833933208815563731459608560816920859636833084829309021157522036013154536339411854585017214215721991193312823199858395545610699662272181643476196764451551133398225216267442049622077493543765718984352855839177938535337688194340337425244824715923825510052567587498734304262995379610128362568773733170070702062169139452860535495219867639952354720375075937185969070662214393196263208661672266391248342150229290857015825747104590300860718467215673218955838614456045171182713191572628148816996764861397883735043912055932556230682130125909412152521155870812796584565703494391009333334339043216856810853205929735113862653619670997082337907404368760765214909461178868454811472904518836050198048837156546082120180801001280398081905487412572673368652671666502678313667443923442691116265139392703163127327623519945856203341905722684841938098612103885507494913538878731000481338792327387160407548255189572543068836546116202645557884934983045394920176949130637958134270101854343519463131303569659478215987181191774083406336568587306906815994841710129885028999022351088135455350966798112064420880180385732104600733104066877338530162866719224625573514201177269654838196968788066739395959789023185556632864128315195468913069728355854986913044305060176711179055533729146519656943215297546047485360610735518470660445155739718904875293159835841898961586821284763832684224522172257266424796271584809738485801677172529017661128968214187332434932324451688852899774720595049890695277708290141725165354705397796119653039703897221182496475509841384577687619394486593920158545843453153345671108713580560621923226045134615371552157621754589552195238453060897008919798988025938356374992193042371412298448277126234601867031303257518335908238266165723653131685273384144150999797583380556900263367919772244078414052800995853621119695178561664880050966881766984157410108237279467202496311007211836545731175154213786220936937934311382052782300112472798610913442023999444028197156758427479592481670265252076487092744546057561270604187083728642798781912134223338498903633447143340347448504344884042433540516549554374952072897031245091882778979259933409546733753286183677077395275408728444452358176139124150580955576897573131794724843269439257559053948778926292013712744657857459254179028803624190370972833595851689999887147245556599157511283100456910602734456989193717472696650804447472839755484576958233290725625024921028669604745566702236765687160303803248359027718563577959819766329514977605242405265247924953252082584828619072330859276628989997824514446385944488713204182970425122463904032397798297192416942224028733275132628346269910507408240405793908668538080900638903441799772272729726408904620338741362334453305969503934938459677148865296419952567135628160975563477433023033542646659785707358268137271115011730505912534836102004929993141603943133950997536241858671408648570151439526125589661014178163626658014600236640751500054073357785063692829750914444326621874644367602793732849569797074978958613684802270359232369204587759125774812130810577702944683204276067965446694385077692521059417164833869624380061210690019745643118969979822064969493886428483641892283691119764911335581243780381725815051590820019131422604002696233281786884634585361097990031842490823706890635102563878823123668723289416546537263161159723135914809936240267708472672097269306910312916071689741172719615351373025001653612442427696646552223404863687225098820276847834012076709178776376032430969004605758123475927254127937334855392464308084668365664806427497349046927096934472135487950559468175504686876929845296626595359315595317159898738202883369375118737607757168208255155601627007302268702310937297077564697444224588252685067594687647602687958528103473279671820539345953441309544333366963309253454747938202837798309967789819641316787597182166716745152609841118754622564089458555628264099966805277775081125257686634084254800648911727768126823568932269857874745763602212227437888301841299756418409404415078573271527765424369963596586421255881781369293408189852125984277890877687618297551832144084418528484916388220970383332530527794846845011167935824894030958006855787052881186144055895607612810550588263680410304412982219066151769037512770713390073045955269180359358088548880615830409648357680146344611415755885163891260900123351562624721084246964650905902274630175308122109839985414540967171740796382438851944831595138460994829120125875008869720892750243485804460863292316755114530863668435451852466546017898350280035534308600993031740646741782451876107544001657687901182426121130526613645445007500454928760296891415162516909612037512614296172957460237082710494687722595504750927632992430446265543962394413162825940753449364978225216502909732862806557632839505428816714808408811995171560089170648702468427048899839468511987091678479920861459327668609467532439534871239047438704359667928140927398080084165091896922468937743311247403247580415892318303052995062592930034169466664093808901994326108108871456779170694415956549908425177845859209050935699408316373625560170366058468119870652794640297306279114756542473353211372468966105762067440642221338760832208627108177094525515463868646301091030227190145914484411613748481668894014023193078216757610902838327789581304101434624828896744824674562970819652768349718761709682836126502980517783633159703141636029622011612116436064905485367128732696390921352447419210952571823775535874174549726337562876422441586345788484537816707889007275305103201512839511177664813396702306145682655485040351200329114001799907799102165365950284451350191766912434093806181008577127027033762947167941325834192374823592408366954708280468107088785283671438201348633914237737157244802532899746344978556498663459265035769019885371434516577413826989565834056597066083255156596266709124809985344945658095807994276796216562575811438327776209749516325026777471931883811683156609050390639060446104350932035274070047382126576424116753525348893515608552454699706390290971002094889442560648319633307869804500577444971338431930833051559278067442422532796028556372744349594833127309606730757747857080873112980582899491029837822792097282721175843613215034294955297558582578585369087221735111216326421148681764937732481045890601870404707718611169135861589768680083252010514518247762538794980064206757759726639583442429172359351976739550956613206706695077363765957708517863593725421901409076609563129637401995504789639393112556875525975488129659185093306642936803620618907711535898503862655132882951706065669408898050342384479791067167858342408978519113653115933877123016889992124799591745437522221988236598546555191898190159192473573681642601560042388804389698260891839057758061099048001342917378780782254418782921531388314386494203636509603956203290343936935918016938348293513954745186392631341901015861412141050904054359153920052820653766421029592613882980639367207518331902710304046173191234245726101833649351371067271443778614164966409004025506070757173059090958120553127280127710159129050919019158431742181716222808491258862681881171101019712834154708049654137250054495545913206948965839597640117855073233966325212307777557861482728545409161948271337106855167201489525385462952147354050563241699255186289966457474804079552258899565533271114824808549269529800269239742752599283559903741170878624842660341278148895367189326281934888492777715476050634999079148827258383135934274354322521530992357138553068490926170592697281232855377116525332359237911725591908045446656092526898873068342146909806379227141101972255057521040900070141124010933356097267236866694940624891234174345177165324770733877513553371711714777515213703273476557284515500713045550852242128620098571108477785958314218565444039932881586613779937153803122559071959210568058649549363297119203046352983546566069141029957007118704284696570585619652358566765278508619841527651709875985998124950598102205089684620740850511725906705661800943651834254266852989731966431875677953012178195681755260922510144353131340523349399347162607717033192233477409614811268409915526924009194003519956140678586736432328922174653718024109331932056854592085212697982136416936992116148560521630982708677670599067903626874128780834342342369752990674951706502619104448911951160440485460290345684793260623215596922452773598216995939014411701821236781366344376913291433779150139506895220843617861175679358492350887077004397885208719455657562402797625378553152910360184746553855671806302328326714203870674917529911493190951752448148429089889490404285637185131197979791889959866186040248666942275080938039262180608225367090665444558153604332865532305623133952350266930052695359158915186228052331717381654061800287302014629071500142176295805024590756306655029801142119014507680562174155214910735802973356212176153317617260202997691933266262821519945702501540208956666070295902125070957728259985892588564266123492727560448233495924930781124803712978052820773864323268188358628255155008205260225086466106228459020396312429427463011034083066217782301479390873643283077583622736308138498763026210731111546138973222362675322748797338325559742519020905279357636035451475051716571563778254546587003417846902608365386544310918554748866753889141246850437020678789016048128148319417474186190191112452655335294233929524386644848483230655064164439317657555482129210654034394684189035379689297755068152007814065199142159399253812694228695043738407115891353062530192586484804070646909743980529977473027344408441873108054329032724030319258206205358060502914343822325950311449354890880845279336798088177353928576692806684532236752788921605368777187322089744427396694556274278763784600018442760009510452655846307219572342878838180383592467484557917205931511260258099662004599573346202706311405615065909119293976627681416880981626187088738474429169474165009932095885495885468656080912657991014147792108202832428540717707058778444991376724702228387970467852094509702667502568603786953532682977038634338001368848012167102587867870069524175931875125304922254309362743193163149043439340586266931614516856489036141660133849171559543680243315497058911472904139489075139173551701260144203462586133695348846724242029993618521459024991254003836584064544126566037158912968736289219883618969274988203290700968078995118277550759669953111292952559949761030153578027763392878507001875130458958453181657744253604766663128516388948048004072227759985402027933425311858419895236195334413545754885323919509369332602064938096560875731341420964006292431507335630756088102734510208379290102348958517736615730711868610700495682566832449152375344580314173295066768067708687522347877892438633449455284595161141902098686791255613708831708415822962250796893774974862577891741505154056551986411139238672652996217959067006440324744277225497028511726078092482350234271640394772105108427274034244152896694680310437748665062072850096960722870763377413970892952869162659799853020651814432489516147510402603574711747780217278731876985710530389589945286722977720058930470231531486212337891149347703099293700928885312408713666747254475384552570081809208542025670148202694357053185594137372983145380571141834750600925973215066993918003969700297534057688377959634409806652654774310272242142776134091197411736501841393661830952883751167590843075197673789670865297786131953837004496481381522196107654339105649654201921358531605794979926099140253237744584274545770926485727431232389355633734403322596467973781051431363292931026810652412204473501495258733662340945802259052116446614905850196135630861477556791745032144914631719126657903564725558829572074160569148866554811282051023580719253859875071074498229660179759315044708120398608707296757356954614971448507972215776568540214838656023418026287611853739021294607091530344239620146229362231284729596896385316862162766239841657801465808411699420778862581020508967320113246077368068042000463797956261146589177702052806400579000975575702105359540869505648050538694589683209468061014575510099137913388481255572467664554270444733514643582582301333114330973455167010239999315807215442305304320716491786741462497851198814723930720825518137364190913566151106664508901633824725421893368193380438608151189585120079509776339562078263127483455215254181484946798704720388756622625725356535603444673857333180346251680561049206123518921412366504917512432600752301323448954808995834062649943511780901988984517586778538039109522315676555133792267053810355337686157843542795102557483812498928494238497186458237303931346126620884650598780279438208724171769306284167081538529892963968371820748321096280651158299646154352005523183774362340635469704562117003204755047015785393304039456536876249745944666983696083083730908702207652377941697869515752262490897234050990137682817322528023497778895522817504832299522616232076204235742917766053341277856936160912345150966290149569536420403521497079024359511387036972651100082165257304983513731396026359960182474794472789183827919963839044784546639804197372171034434551895958638119752054059897780296520973751416957588157345776482087499926492833275739735566622099100105792694550913969816276657858489106395388205273354176970853832551177365157863701313253768281258519606598688484066154110524774323662376195680815774712327557290621488338853468413799930615175745690463303956308180308716014072031448680312768931284655485049704810934544950917558789472851388256163704012551655569228033339734123303689512357172735591715886951449084703619005741695469848125463084936867620678321861287518866574898682557348775288387631068163390488821709170417751155894148879840129904514672756547977623496553606043034681943911931201285415175781863481847170261980028265897966920811676557960499462128274773856821615677853086136805304832493681761490465056197306513207464350029156873460875716618563215480216471767704506465552359499644620913405324340300208257010950653931113061140946271799930338631632767163303073607968037823475189661859626561393241237874168058802755560362596812743654757279364471618019624885877801503757832159040954035841828486483557648932708080920916652569006972366606718332200301094581676901037373074142591047419758590000872120104824469758703199360937963122310147662983643009230463245318364657519930628782180341966758935404133406154905132792111634303359985135698129683207614154997833116162974436146305431497581465102949497708801605821824260516995368748717897437534548497509836315050799875384430814622105671710641835530998885036582702176050321358700984836232822133370459144817704605743308450861545770342548231647919118783796414425820824666387774540977169072719717037558944780847829911993290189657848546606324140962232745595459291735161836436289094997739947867750107826153663841915943616032014602839851532942687983910259313417414886008634395610520109294181512000350927461778171103998209846149866018921599987931603394577510371917345727930976513352206279139048042955950688210169943851538515395959095956992232376970649499166084897365270719181957931466458880971963470336900884966576292342118858550365090999738682486337972392362088908951594263229650939468059781378570803122417888215494721470328837686186781055245118884752525478777204641576947222062574345956522398716579841936568222374415973563719508476132370579698225831919612982535752958483879118363200825268172054755458504700545197645731458199949648905654707789426393189231875685509869717520477929558406000065010965948953778211558389141654795176515216559773005191658212595430506967524170497017633491122077915531312200898556386461953448379985466058107424524841162990764785028269077621408294937243602787111612956458515266628271550721741975127586481723055185099332380673286179817331324072349839028374661624347436499417257858316072565377265446654883737218006146647504582487946462633699730020538558306557586040041747746689536588196139524945964594871924267442659015765606429355787078559971638017490088267783358830393966829502512126565007108991330356519652117332954372385563488156842826018871430190656749809696842867872913885928774175024958482362396972300061984371351560724165888582324585738741996495294851047127826112858530338008488206454210410731720617456323729101914904730844094769623178817666781574850190588043638141242393636935985091837147073218313763004093176151076974460352165409088250064576603993352112677320369942604522954217454838105835301361123008210895846039279586201718249500528963705201472542842888143279326329831424090700429230883445115871127753637097493706582757311993551990472560089379492544967663984946506167803104456319573913982655320294292185104086659156571327842540310260369017383584150889905248879331607707585484858498525970913728132982542620914923382543299817287509190279639850052192625449856214294070814874725562848599811923836292533810084900020794668400766097530375053525476380761154069491028831475488160194446794299927538636111866369129914809929058087976825047742509593170851952165253205369311184232666720802711539851145747018015404766385138898359024385616424186677023532935943663989849306402795609054625309315017124417451337821483636589957243985518419649352953070067047992410463140881946477926562933770308965198516372793593837310099342207979880533242560375340165769141694348892225932836798857776547422744421420038089076328020468377634053540733870641689878712298446333490132419416219624936672319266314366511188973069473670550462560072764501341522626935137064159034073885310642302885752821321336264927956244238012110516788735740503001960345420595395725557505956485845284530056457858885494527333177195907681816799134494188698124984659608188977606613899878832377610263712248337947009523366444590535890732683106720368278055034039859719554598774575094810570477444824428166672474283118343432956417416796616601753278052850901493412358681910689203032580059753478597267119045646110057601749563282899371925135846137530793870251685310639935199688508433104992678609059483106546816798294868657053944952812250747019656531398938732084954073014385659037486158737259899271838756480946140998022288650561046839997574632012418223888885587278661803782743817046458944502608735346399698735192021588427890170167405287672610678014306517283411549094668700634193869256949649098037617385168710875176779939701974515730277794794947602924881178396885238477500313838003245252164934461914610756202124948081886564213217277723565187608789456350770367373053002058862414201760180157516368307542649502393642644469682494823457675862697562987253464132098758043298535320541038432661130886742995795312872757365699858126814440707993917063387247247003328393252453412479798452801776837219048191223678862599586569823514840899791128031763079328783853753445913678523241741136910787775394637953707755494815821397286515220557881671468805241758538077431907119723086240612238226371346615259041241874084869914105708217386578880218965659681611131101224915506259772630192802745589007175534581351277724151029254130863665601846145322264866240175947331351949795353722087749149543104491339702054110274654445011880638221639942371324281770170414710725479214923399674744503727609501552764599743251809911433952251534703188610027432712075398283248893048815573764428828252676658699185370472323186584241576126172146819237675070948977938965180299026114204179130240249888931216180083892325288144985110111186990012865505576307511097035176162259749948540842236446916421792356031412418933541227241173591105139274053423545498736860436460328508699133925697193506683419606912865870182613962853633494532203492358755916905479127117071453589103032370418489543988549965965911050216906415978973262465482216566923505679813481439260297109040854227415673077970904466144147206736959878774954158264312717431935280713716639507215369945842880707106638756501578880520066689355137118193838142798273581520042506717479461588673593319283292880957779682211893748113381898765868359708413266605378764992213538616478482026792071670951994004561036570300323749113806395067509284396491440531732334014031411395504916056581105599890309736930952577914909380623546017772592515095761901127328671155456469085111081336487716145047593415664755839856761337169915450563166805929068192391211557358570753393388036596918065964719662389378632746097748047959524211104880994746207624586648029397880219768310676972440521965614182521256375784780789618171286747054077676413584255132131279216259664971048816167094619317936154257290920279579658160172567627427591387143011486660811273769310042797913604260224149042062068453398086757538619107006996024620816827900328539536552377434090597895296977023564372366445417744911313067474099702830672412355015711630239285343755302451446953317469078269654310216479162094050044984200871087483613635632878429400833175209974627925164410956330843850471510224803883535837173118448863387943958480929233828112016850250916379618885162147431611319240900103788105284150108808343967341215832390349172239935421686061645026695596549149979590134823772424832246035549175492404529002257612979221318945257049423273918798890122143221751432062824328436797743968334521139322145250989943087493029986812085629532102694698672685450705004160438289633707883265557492290508602216230446594530723425185548073229572728588808705037157327489370167114459333118325000131654412373165566466686115445850469477587395761148644974243051607275628413827773690942372283576510495236304050264995321966032682352038595275869544783814163689087973568179595259423738379650064117570513535627300543850291051600022773852282052255713576923909748511527964679402874234624916694476282199759874366568260140197238920969754632471750522481230280292170333997457171947546676894271388007973386164830485390979570257187180563071553930290746571468611584508781753885906585710340200520623908770861974665910633030145194977470869465558007968980143772448906977224291263944792226733052561562926234096705846162602611376955354870203465032231990636556643176891658786699077265548728645667528318504364668975593722804942408044745546050419969038960088205133660461062804395613855146889217491526385960816651025652208382933435471748254902438871785137592179150335169079586047884536530272515238128166568311782315966554580264624438065706167610995096725725304614758242308686853875998793945482492515623170238104636189520246795498229061607960454702727901619548615474571045209723998774741372307500876561538468693410377558891753031546704857653168767796659470669237996699275853575969874436678555829814111558459328073651455151356894346881776188920896143070260584082405771417564973761884430540010803723899164285662996445022944221370165335951935323813697019200884057203820296328464784890778423709189881459220992859108353326928357819907525832512170690005842393264207182859386177625713400403658692489303266939897417011280585597892373347326211509953481905393149008309699186624757121925540050278408681328092015218092311620146436891176554966562343706380727616016669286159066684806349848268706167544502582991981707933564474726786619335964704012479660205722526375313012564482332271576209788421539125580853024070345431542132531602780828439480214189603684801728233481838504392947653459331379225632565015933375084956704185194502294202417719716595031295654385030709229938624208060478710644245375149808207562023237924661878885998664040043463281609896365270855931506399629442328205402925603734345441254947999597539371836690822650507268101368588130091456528190237200734241051691522443701682092084290282417925304505090387887272890558469156011219706023636916836153698998314443504607030061519226968534919717978730024372270203453886494149779246382075090931264435203868688827277470596971261599106844822491707456924103126805627791708089917107371189917214441275364795774833629644067589246285093491625557308693664404541991431035203356604352827391025367000680672811677050250363718924975618632206217666908380821529199024769294183066932513869027799755322905349402444683942440589573567144766391466184126377498363525189165508248389035834525285948851834947332620694492958269968120509414008334362427863481346704587272410040483360418227283738217499278970667617981245369596635549530768431618008945696561894489006147506748847366146871902248707516923503611386358680057296990501622386135287539522001161525545299094187415450575271059242779898698790878600059225971165146093998789009765320169045727669402188523943486373467113149626207096433216407285729437520012894199553467254532346940228619812769031873023134059733641294320243721260084830910395804759621554722864456988897832094801667712213687994166130127496993894500170393298757542085634343206392127416622897832415869552038198904513612902113484319883872133740555421274182801424844313648108526478033267315876996702888313822924200113011380830375128991617855389451336712078007369516771655035320725656616399460991069015487204143180512754894720928525381452534089839432031639938846038482397377585147461804930501586883791431780951824915421392342927287198041376342939272246803010403387439927471894975945091299808319223781711348195924027876112279852429352918644137279117738335847705761977943354551044755101320710428739295906769744340750509996711279608352650801711877472788748642073931948604520147431670290646506352912016220385831474001436632124302948394943878131114704185399674369056027335455328000280489887377205321019005957638994286929152057921281566494012725471686728387684868397874412834879273258565072778630994565092726245548293963462141577629544356755273214746468375380899920071757238183027705527483289809386460441586739916444563032912733016060392584915332636432424485915418992705809760881576317785158399810292677943399229613268318398584544781190606434428269785258414061589240716035631737013937108733343599630758590576446236085949074289498014568831664613428412999879257403090290135578217555401275142676604770214084715090655787415281243453255363005112003743132764655160006153793722937990856677859370341403371064052165110592937078669149194920675007300647338370099936267033991910977433221992906537576507482006683449206611622434198274660507566320087525923262111334560789339958556659833125039454434360369251340338902059592589335626177561537428433319774126565305372400112398561135943512266723126603014283216831145379766669042562645829397136952780118774963154196620016092367220382158704420816512550635241924548710609015721125125731297632934642039896273090665767151482517097372418791252049203297368027971809512667292798302135799899409930857381802848859014888548686991106401096727799324740595107909449781206359586909327530715788982088126691045217406182283539226363083342073317182826966186996474743694968900370324917483100785641733810898211869633585751978910479875566562110073092751305913536341025702912220112837908839222642413503323973147674484372636756318981119029488312108291560474028088145236712282214859477069772043841006927547739196688581505812082852049596985671292199647508989357514286900227197374402598733939887750043478998439292997248852706972294625175255698755958129208967394564557035570628257513209692883821258773537710836090830854332269862868624311227230667108411660011105718878669078861825312472314931771161103000247757202679304064412569424953190362445731081558751558126147901661343667493422313820651043635418705219733616359187532457715142180573092366344567239702495721328774810228983641498955597827103637941317876150078534351400962444126794837053615023091063265851026199878472972497219732001195600275126929973182032070206696849333995332565042721323818546007685676825387725022812766246162497869380205135390229438040529322718752802061930643082518233424607067089263129595108035137056702119300358340507105074295237811572221748354129943427102643913242438703192164850025181888169851785918782646013254005727473010702934434823573956093556170053966725525942176534605290991961356813024925009400751887681477518494014867319730940368379785555488057052632868699586594352322725033546340882209512600891850689075597689130734003906016777180102187365157883066440427447764366067218378225558339817213849616243966197635598141021436944299256092622297573335787452314373120177352078017006578393774736772156119429468178323258830584541832358865486466801699547491674019012971549049453891059640807072259822024771293615612210939939837537137230138535245783645911581655968643861752996466624315430049521083604277371011540816935775345940250012725423624210966635820018726828005696231324549077031328018790831176528023627617828711344394496955029806272457541083702709270291835609668679138053577951390699140216043573670027693670887596581736512397909977256701401455056515411808622377417721358761802299617834958054459354222127982416249154334152075691610080873048563676643468802989313956548202511005694547553939286728388092635295055765450038858497257021588269145191051823694750116332432406883810351993075867181589752375904473596885631420277623543355575350005908781690452756718020226921831124636139285448576043866957745367098575957497667137154188622492361660965474167565121748833169582134884211508008339035262721388976328016289341956148602222706005101827529624671301636676712270440656316273269305340880183544533091468652277623431230891555657673056173073889790764468879770227557193441440686617489266141533154147888208059760096468058266872747642683961277365305001245262887052515547568991436755078030356213308447353695486195825199472920632475944578804937973671466437258056916757581666539017426970327347366273931911143025272652067080960756547229993950744008181631854476707995244887559317181176960790703469057596953266772144279519567581540177919174457368745631566896630001647730206359651301444959522658995603173591415808139577927397818955966290785368241449687101365494620673923223787990730936101573789836828875536383724209173558280385911880534118891452480382321377840882095091162571224531551478207093878977395444161633382665288705045850597745301794151857938336916931690533969247807066255605412244606144068043004593144519964354609730892961495687260323401524293717294748409921010519454434564045373518436924544866494386264034918310992229144720620425868507698158329619698810716554974901786864795194129096215515638501460199299070682388187520659388071525055033653403757430676879022739524480048312823003423205768411637779340234726757261326740827139736282404930839575160389765598397648715329185525669196080530665746509016452820714512471801471907258121387469783454339463701701550724247143447531597990824822059388883337545106700913852617040623194834679402416859870735503382269407190109977182883540730558440641763412992119030457135773841491819712603467259937381099401040582466534848177269451742609858315399816019949275398220308853850094436489750345238287864412500108003367384312880617919642900206680441312593827091479272009878227750910564930433266022238281581997650647529086679387719343438656572712231632818738075803520742474396994616910322578618232717559286949312529200541944671063780151200512865729350830465281216176730815048795426992757482969840906205455889921980069979819527700074375288867248584291082542478094618880196701422524554546101396552416416383195894753520952198196387411526293934597845303740540366813091449004796310930421445984596976869779618570249669394058910881129816376907964914216619673992626399462222813483834517885002857843851844374553598994085384118665014118886538039220427261945065244894830290357237734148402994866046298900439050653262247545872535186590142083998893360343832435984095134654219872066261139445998502174561906153174264276801441646030618341798703320838751562786738798328025794053661760466334214529247414159769353159486188256234423410492582403949347994956559424016689306933433137158784185978678940999824524362598251258595355285560091953499523999013098912511178718609386716115998536307970401390238149502735702853835622267893009629955004559069410408087607147982466060917756518508340369315299048986327868424951438703865890401839062360658446943773537591944788041553261108013482489640260449426348171842331182249454628206376904868007445592697201720917185316799477811122990281692531820799193166105675467066302421742103060062371068032626897221271874009224321128480248272248816465536131811015030277129039111302756876150437075408953330778179984347116529665158358915907339101354137218974050635312161143171631617681223895118406359143452431677476113203542199419259458779120593565348107327759868905117220430618130478094757978528624619044463289661553522991184880130023486649090112761824486894334123374695120753839678437433973332214404633513782544092278446622726480009735363940804744730289988291657726308594335454285307185053512355948213422224367617856858314562956607198369197496710902647057345336967471876156945920547921638747285383115527484446344387368035861885245446646440445878572626193859415649575043380167592404207983804327307508900920784328421049155517678941447639577150577224439543317826278661809451586050686406254598009732623858538635734829640069077321695763340896686258076752733018395985208839842289786733574330509268240138555828330629412045301679717039110677801962908698117913775440683889918624263832812135515912893149032173783636969282904021434774825381628284540000078795866474467996190088659556247236174784872181307624003133383141459001350228067479914671519414827259428893778925930436775250896873909119313263705055011192430329625547514537745023091745315034535371270056366554259279997612995525899633075940179015237199881353853214835759892146138916124442970800407521019863450641600643629458745180393265900720652265261991461844739615552576594247219667020167002233734881046350511923544201836406688783804541176549713609014165213182404963089829043122854629460994254143120182029067732422457759116997166839324605617542087189929794132012093210911069343292654916912624074586670364625185729176396529483115801769270008227988250992514846961059751276891627310312979304296779960460119844793079867897621064313087736325430962259648885481218680875755141798176231047319821974329397092232841381514027583549934322501887512071094078202271944153938932227879662255999314229207533509096840835638613752891160556469662555010957039063184714088632685981486772967224848600146465552841277277607535930720962529453786752395851015545675320661006990650115795157912942571340735072995536488206084699811509061918094960719343971466496328980667147790188448310998640194091930838890629476774924252088831712758052092204374302796408112919119154496550515782016338248809254376046491315188525013458042732766512616837141752983257938070748663541641411494154986363740772504604779514788920926544735029111471396567665638035030289500929588871308798619858209294615246660274724631887493544384592112898046428607979299975584743747179946852520254983463652964540322374157034361193955042208326514287924261424532038733674434194810023089263268074438035911799118259966749971827070502604931703220431067362401929126585276909368129995624905552002722795636973464927226900669580038273775685181616734434116249556846649149196913610497353262143369919204634575749353261459441421890434237695643687901020279408874794456446023735064725252542278861613942020080375790707217683800914068164710467295614600861697466188516288537878193284221814800472419149133917038727587461763945364820476756964463615650198687879518212799883643916472246026358621302960415321551027457496785542395752083796280947991854817425290655798040281755355258424724015822202607892848464061752596428627928858699462565636132728067404039247393963748412565334929950819482601537123542484626281090565742281950750742356716844181560428384171976155961411370881078480895543693405178336710530694121149001863240261893374032160031999061150126486819711943070318958861640224821606339532529377641232383889093529418615885201802622015471951419763869576898858238423588545509128797408433063277984578366270198958411819303695340000731062218713414884484110990502977216472508956739843408743028467978825206062329463490708154456868561025155211687370281756813315571706365083625775999555656076412446266621016070413032772515807726059219657690632972029624591505423326726192911053346475129218401822787739128810938327332694616992963806062065208456228602385248600881313159958586506360432845125223536407326351353268927337430279708065620361530634430641125607297752256778503027284045724472687771413382406153929277477005481127219810920268964452922446108336342460095261481635539466861729474189904571676074197644782863009292205624114775958573211423368095004570343620738671526885026023086272948442590257531973482874326080687605939093772450837349720296318961032617070645899249654679189293286963883789060368546312536907672306074498473501284865481559979507137484910929908186733643332481051759557889310284075843249551085743652216172908126138086148938987531104234887859500223867019195501484494624165196070943557973172684063401071583639169451384886287758497370470764730127870901082100099172385180728419566463048873903345716253198891266310236972043753744288826741602134756140552743441314931328214747348979576084596217706207065091624493925161057092339937787380022823783701795512579965744027044083185757654551805444543098754954901581433110649215148921999419944591776502294999195998233719028960581283369673721722232645973079560579572965551445563758134691555106565025546320539332374603112092023765261054024996676893964176415524910735064035931283713091790974296622482754715733008995443478629714904121963857508159843227111600919927178213304647736396643975606737666250143342909098689626725377406371119146765575269433100197965789312914897084372154567117496707526449608698146643751226214060476908957330632980620984006191085215314935342359408462750698877977667706587381266281653956463942373401260404510398506001426778759939612192376451127183228938762977605349378080220879247928974873951138430028093393189241346349948745995713105918613424822313368474963558088745358409033299640681414792873195445900181086444195279124535263966669098189144661159688401831284996782706193031299189169020180254389920173866675903440245594459648874612200582700989823557777918670042121189190342337841999161045692836532909930730878198207367271912575198423187204582056355591570420599967370576710938958376737618972791622124928444145973635274209948044715793385158294533982722810963739609330348842626415350702151634690044176577714321299836478442019026104772042911311873997845991497250450120365068753911534918116757984578517716680312519875381112288802332187186238301551489633307447650189806770795549331292300737616346915151661485374342254779369444097814859168766019065144961826240974417256316969005476300886538367944544240109878315776260307228710984015399442614698267719086405382088819781387426175423022032178186925941870264747687390274000654445940581624704074149283321269865373732389848646567658725196542827915830863427939856615670491438274759431490485938715628756524398631145080779804025111727128139360669609169671714185187914050874157444833375681631955716826974843865496207897953287000173926880000807806205432874686924390070990296742062431821669433410198971912538507330415916671202869052762265515055414450849305400702504387772596315970602469724929364371752537783315573605684996492475113390097417505147459618451078857853434972732259741824346485973663545913215270925574596926888508939026461716702495339895501379314594706533570020124146616187299903961401055227388774839619063429726816347582374324727118543681220905818484104656470960900053897631762382596420697617423059455010516571525323989031540462020197517928398483122683955692794558808404331344940078714507638818842410175762592995642140969721851932891780096567703930906282301925679971469598407084958768545757332990260894933013594636083693932416287536132691298844390280443042294213488445743229933642961822792854991759251950995143679742326489317375560176524874995615579394915884325782552927187035453421842695599709700728255292136987825694239282602182710995233336324861414571567064336552138441209595313708102977901998117104457209683628205267769164063836885263727271407022120542692400945367999601431504157546852572642655245842540869620177759041018390883047259447481771606233721736809425938008078041609057638260042342377961428497738143354194396713136432300818810663803770677578005062692948962571395265964990906190222489336799891930850506908604155680872985249256160586455659952215421319598712302850471793589006956273192023675633257306588206373134988773922101275550849628905070506278533965904544126887946459870595328543531115988578125109331261580060948272618369905975900757479341321108021264533822048262335671371104329777168244730264049580550734638699680501453405993797006919612641679300644116692627514227609711757063051507459644900967328182514490512155601582362805362711921146308425822158173055913343965253265681352492889968004535851561547699458856807673610582050597956796836799804994673253190683782617502892596188215974713483471793905283608640151095029040241805160125764774788982172808710710084214200689435717863274563918372451740072086702147283114023235375318891244431058391276182416615992522258133497618313970071540093587553800635113901116996346116435001714373574880434736138096755581840455270832564835262785173933750541683985408899819392321465531552593790884876794838878692243025912970606350472856661282827939290994620376634936844275811343634374254284001547313579136096927250964916839171470577474490453483449581869899612729222456022519716979908265589145164255631987089867868339178840080930156299872402848073866774739894361811736153047172347768932311449495354577147237696181587314785158892000801697779445186377608627121738893495709106941144613998718041472654550846078017200891679550727356443522789657343767161142523045730474278889432655396462661171714354494849882879307614489485466086899335163873723249840366700226562176829143659074990847026737255923536009161761240326837121408377132848194720566494145777815999967949012768463664641369600831745250053038239654093524923766732904696063012476656823694620972131445737405128677039186058421449198234774089838077459528239319988554537849312838105947637639948788423065424870068555748186436482822184867932349054152177058444793225026991091671170079631135662974798451798478154423140007085389267804665166854115147791427501666619815193597099008599696904595604196244690601841477944596351516672599537029914912559519002741783703816327682497047137155773276789089633563013273491317332609442785388580362702955170812104544405036499535258499471040515489791192547253757183305138932072423008665412831438329344961119960465436156671637293576930400602193694731802261839606583926431753247413085155141323488376358796149003368592092571355889136131049362540560499399031147169018749144375462719662203185644456045944112464492694018439631635610232174250079677404841282462331624361154049121761035864915112924556063997744133887008558841000127577679216857949302182310269404002246472413706788146047063293736879884013134214656051184769457749591138063960887804479137945801441141225836760995028973191143872210148144733870472820755657265444433179770535105013909091279278701153060115358709243368736299056347546654645072282934021694748674948499943432069096317898634218716038340449744666408771070792331123879060634704936614196250173872333046595991284589018981065176286320751616958983816334923086092701321377425450193332763197175625800367744076476088074549365939539643841424799887563541112435637556475626124614053526978924472732057684948145444259277338438740008299508692549516269707498141339124595136734644918185440386271163191415465146506655015057488098496005918438338489680035159603173429529386675060404605406500557736898202027016825622509563045937901528237021437106075226840398239747003613438194628345338324828266554378967325866688036869652238644198818725228895985189373171625765990871433769377906730316391089429248423140174037335673792162427511103713905736630266479737896367416655332445589110019968933518138122188020918187458218579917570356503853884916361011278769720029312839578965761526351671581474573259426640968157024288834452427877343263152215126963268647928369382238335967196383697300210747428689986844158506894706715733440674228843421380263747511896685460919629236568163436630756624848103832825413510150783670861252579984095970409690978401093249511482832069933628309425188326958875280279581170516159856485469947057868683762723999298803683547742158400842534584593514123014605677554011377392549170083220431084744664809376689982137205756186440285429703540092862318969237489893563518344308431746604329678176290140582202230824779895259645521403161997891715206763496831000412032654828216226506392481349097443807046087439577957236833116017757312532233161951880085864570492147836351600619986175567283146479065233933299169840303429901285700979479568229072783212351145823289668017297821247451570355884977015837025140728248938650846290650662561032548622285038729811503566325002248111098896805151294739559784002019345154531179050442593922528735572603793304040888773313682105712899059735826457355071772611294844432436350475124064833740044544043466368177172476011996606669330695689228048953835252806632100077573381082281764716761806177185117306981488242765193475819775387942498273632794394811927055228110646332717602625100719737174117792263571406020161395540334669922568013618709220103168942048422456633545910823294818627691954428346704833363664714877909608272662118829708869439050574939413741445792962040600366981839979399071120380682620233381828222420148021955151785673762640799251920761982746448901736001627300590825541556009252263326589131061926420601124875480531203913451505893472977226709671993786099369953811286100208832149189442299900402391788789473036111758816834539336925775156651114156057416242928385340315622829897052385700780303719830576489590529709714862244453870251486538989926689655602334520593980348595355790649522073317396577459327828276905288244834069686724184935505344296474403024184444422436976914896168388791698756216299045477846885956926182097310738039383892324919017997778477144301229428558244243789115161975032563416498489177582862882734153228651594655754098559556102637934550837746977086762207465865942316219637485637684341615697467438298702776235307326227606362423008118803948277312529779430922802741605724422872138970022366701623810966340090591132271957309334823651600407112235477826900985531015406418762314900343747194219579034302154113318735780466337930311669640643331892001296209868152779909443136107540590298993726809378855570051965232083461275260928527836601943477222011953397841179553846313789300300109912189789561391018804044921920251464585189126002296845752444156639580827672101063710345111744265313490364885315165540407496172741573415000738641781874938336678364451928762551345477154470820031019619698669449440113045569160513002891156599369994379592594999002936241311819212843078074346338537398054036562614237123027696088082263442682113961718042261007374145022963515962673999085001783553314551111007119691166627257790952980514458901290384120947271866632651777054745708933529507499142621247992741097344262043817536081709065522962774210240450477783369474189921281358091828937808540930261835087176319969627848334950539806673944703129820469089417566117529855086472615889585861112697752790641993139007888976257026835171231435014069418371648449297251146667920669309447681775300728038912553817180281499785310999441934394775842098127824241038788085953997422371441347011257397745297008911318267967834357115925522566079744418433706330595458541332331297624208754762790748707827945303834757720375666386532004895880575881972806431471334174055121335163820738070262306860638478685892701182711803055389348522246696203947413753172522127048690048180199103866919463721726100006262115103029359030341587471194316532029370904224132998370513128317991188260921014502091969933768749610022190039818556230750882286967185471909975126538910357020542335247492243953990314741676400539044988614378600587718940587546380558315535562985658420502161924666669402752282783591638011015256355344771466886907684955418079471797648591698912866779548170909458680838697286049544226228605565028809795149015079963262197322254126890928908770991087654805928961492761951294333999658063001855165071752459229786240043641450489247942567901562824134073356536198169104662220279529954775893145401863027430959342869953783659829573301708320408673867332510519604276533091820856406227989140253455902212683927533651805709376420205375676154460512878796656118967679929162617728621274899454439189659478923921501240458778508966761590157755097754832530859705807611338606749742269331866129424737625289361659410489540050123866872545056364052314198468151687531190563186175470299665562914328777235751597821962084248372598047893856334785653419933877481391245384311493733395776792820822268546089930031375035768859373604779927599146098834929962014254746789654577250529994302150634648198856719121405302839771070945348312455887975914803764951466327747843367171412459467704166162314780527530210272424079332044143822163422985252957246582884116889587493368633896809518219317764288793754142301852222055329383091909377485454050629254470462666644143936999214382035252682065284605719918637667323408913709119984296810296634767881253488140089152445996092242384715768108774184739939851240940842908993544716250738684360194737707916729672225849128240858699410679088275187307902973642843012284334914416022394276813443535864506027098046569082519339814771394839605133331273799887115241949403413633592131486086459202052665416408041067032367536001452006584142558432201942225515460342178965892380677073214026843642830351233258279504984542960041352258630936025825476713195711961805399964405595957059611456980458421134028034151424937542965655169382892243355761009158491664779024857163796306928699247380007239612149382204402908299308410312159889046742650782042314021562143011624195206896235234623743694173978157935633851102727107871158056376179034287265438412563995150875551025138382217708261907273134533669769127815636649797122170751687518587451111247007488030129782148805740485726317848808587201250540550294790899956929907594059806614033178563895004274507683660437156825797162963614608173997495757380491960624188032320325850062426760361369818069052980535169558341351120897012799044602042921141639951385344676730886097121327928390438299481009365287522544416621677261774215946140327107633079596901776161255420269149662375292214893250666132019498070818447426538220126228763660848033496725138225856651029622313820706313169717444062066277532631901877814001636927980741320573244450457455742678206662133960956131363192241670434298312436402737475181121446723297838278296250314673156226011545080641195477849522728744219075483375430148939482814921615216334535073838531763535234238998561994592297512681784145473673916710649583221839877565441652197881415305218553886357266080998250485728894740479997421728125662703535830141074307172656649429026554239573508134503262711941996836116835568900599633433102822926183177724136781312167325230206095367771942384494716552453226786946251920184505680015721365003679881044003823643230943431623456202551404219027096848198893240838401956251380050384961088704158093488346348902708617620387579073007365967665974909161802846822009858962306232816804466502461778033521454157348346093843343495722694425116026558149491015157290410323847895658106450329218189936227107032322224337180482500786333120356849199425503243197961315435054787476570506078373348603984309748075560321412415518229210730766888319549833509204286495572904239383989822603891374046589631636768016537849343074189320863849186409817523511632618643617978227229427451017683945588594797610667490681815243898887235593827024597288750566262055547007957536613197324380499527926596768644652565533320723348731612837922344500575554942808742624473352454970071916051775198395481324582630909707221994236699914685743121555984412466783870674648540720550695833583781956333338368480398918534747691667501095146727295899403673412234025569255302053977238317544733909470403300703345807361910841864615463748257273706841835905967299139168469235096034898688483678907829027444199196235173717991618469887037907875760660131683720788961597557526007763766225504087498036454177630173029548812236603559227263424100971837889833051457326289831704709194197617617400604084683950942426005217657956661164419859727886454490271974708111529641034456623479562160272719522031971868692378909298474232544307212728433488019113617692600316257065326872614270749508230681326766972283251465820132502152753551004619351972199633640916296250728141052748720600839932899901608856212876797469017710272288542722569633117321215030166907536268412198922195748268929650564634703415874612530806796670056500597243593112386599284161050879088125541939451327760802348054290695897423481903854990867584731120260203774040467525103013235173234951487618479793479492880676532699364658131464327892208970576381497673364784863166217476705878071737190216947597750604334294288528266067989944410853885187663236888200138708515580310204814851178501705756014715061392539957430766874089768898847220412751475140375272018722859679697202750804106816485266729585480808543838251914451784746165102223150033183574235487490039706334433432413781969788576145223637623422635705692439958899152856451576891727650835394444511385632449146394862518950188730606676448831491258047097271533654246486883032475811892487656898492538567372987222663161830874662084182340502943850561960619027415600767103279608674566752906272523685544403918865662887826753665831610610989226539298362745021463028911306925458603164295022043585911422700685983750418423824180796409036888215042271951783172891164753451469207160971260648328265300753525846004930842627337467034295306068818581174858882384745286243434436255646250346839286268339474684759376617915096164925419079959385216091405511211150926881806489844627345550641580045475732331025632022957788435322102145691228417268645016686215560147701845369531435789546874641187671062369195672119876756184857657336735795864654374825181487395073813235903332676284121977545251753774580632952169555520199469717896081464912081790299630919092536411298128071268863894070618198043175178498285307506029162936199177994030681230427822747204889962609024782004023185587866428546436084813370888482168064765112315623326489798039488000759305180436243261933003964807129781252516824644892754048941854440205406445038372511682824978193885673160542296418670778724259426299795147449737290691661730054687384562186085282473265155650428272461573849898707759350393657022829533996404942133474633326436397035680531514428462858891013775526570902908764404672587401289019083352225043987831099456869134321210644853598853530198301023829584407478886716150801440970031472617550428842565832841265362704183306628931432450595117811924791112428349928666641562825634150422955217566530209894305061487489398578210875275256147583854459145418081650664889777421234504820967455446172473138929153799919536239811448327467106918793292349343784025259085607505638548073387300751453216211980385712457139429652535027801230607261115336950439164268958979142701486925993729102901128345791759620131512132539262027821384508301913797926846023818344056049304251246758481935384530297347898290639820556639673462461356989393207065133696926837410785144289583740168786698012150544595607343810878597083541038985457724870000398532464355057713859399284631564992371832621675776026978435529568236190270470311962155964198296715945940943077715527083790614445486403736954157769394147312278751626831768872513873366213751027550911171625342191882426378651817620670276275254215909259989826753560823743999761941532420929941009487368130594367346152907282109635400998476749158534882406231097341221972554703455527414511933551522962347444469134362026543131069293248660957008238537608401830439281649643864943134336227358223197927838872622366444809866129649521767897666778324342541099424023192422098142468855573367478670654334935238599464619424924978766428415360805033507523974453873364324265161514034567444776197223333790894812715685099971143222740863841673916800976441205549088662129323356964292102327317530131229361414915113953858595479757401028207527493903866088571622993170436448381097756222482134205167817151744032556323151123330962075757938610547199443462288538102351265791281540818418815922913550209149979766206047569495477300028510566207175698933894289933794579718393678733394313546269201090253102257736718035358743988605204170744047493468905501436383704870605114038393044986391784630196100549693548222412477136622686884628957840537103823517843140241387063432355451311380924279517497742465141099619708074568302982954193666022012424695419105791173659461671631645414654077317748141377375350122790751179129360523662572736806748141465645099611359088366737731915702761638731342081433053595144365631993683298688007275191158414817494239133714036572778958498268154772668731073781879718956442986715707716351689531312726430658998537769579196989331479186801651918472167325213985057605065413455670692629703937511732924559091071902768656017834974108775889249270705773853425441826817619962720255231729691899619573295475030438047774924342346424903751733042403558938985655011950275599824221795668990278356228456487860979260097219637561242357001280814273969693721584420171459229601117950145233900294508824827519067878637680950639261779335411750506998918956074333197929232449992787639646951289152084981130078209188787321817676460745872423759101159501404816039017588307888669735588751413498721630228613845165580490269763830847167499109565524854544769436975671175914238936969465550365865085027476266067689307325661924192262746828233695586152330642726226655807734320761128791902084919365906085252258368748355703213707182091380672867580316213267951077414432951213766667209562679090193761553774209715399613552601951500486488563621091304376277167065488432897320574570831523573748092007648485888888640089644966986974920519428870788715869084188537593436343151234820058053064543540895730892711172075737314188643319938343055912392504326263983113857617696391850000337196681910202772576477520507605131185339538851002435781806467016907457046967429788312781742258811791984445537367194476653258744091311646787639341683162783699991629128742995053089381151227045211576041267094251612856936568996824489814034079762921794888343421394625361087240673826351770022352331379866135705379038100784300935055385048632484516758034970497711754540554850698965346316089485247263641531411071335208149826074861705537780987285556947028779023369253683659956898879443870816368994149745502821354321046065881914409421971516013963663022177274762441465533450573014617335468885596630833181407753690826834076415706664994325991263903853723621440785992150853891291321712777225275510587781908628060281270280806519166689322656210973637516668540832863588017905435127617179126075699707674931614692862610492123387125975741588124273315261794178669723901275837603533459810276813982424726217056835411267950302306255154521753408398353221937820805703450377184771098485016660494527152292737680774577794695095527674361284213799307061013625886375734995265406176514252908638075723511810390485366680846736247403685320225259731240763645392972104225113353682835472221378383682158334930512985086205330697156687525331118617791823429954348855182613125454055415614389010114847851992244771617253266578716431333509599590977728802157963458684683030638272523891124757658150949372000421286741022328558057607635725109354296638477269683387959032499384410367166431633578914767148506113089654987122453990034255295283561360260148995285175120499966266036650370130789928956642990662057844098561478778349969868908785607447681958363281908598262901177026688217797488419257194210021236584568658989527362609062269317171827496092551247238351387339137442380047547941279153259090207731736925808062488177632557098561498082533543657242165449182506910364411196100441104105419392453409898138737285205154382416849111164680022630674368178266319159210437663544977989792130714949505538621581658080014287555377616237070892063043335076783635850310112548005066399781226710552442192290479433573495157498941010357346162902178903917888281215129765329924678559574302022721839267365820610204028753645104954664709665502595330636605402619949740452916107097351750804766377220152216495220890146538048994761039987758695597432249611956466069052142958429891560932559596793335464776473811198475896122685367594952805312440265481164358790274250443827400019161084841219791567557604747298646925223101105400118617673247641299694267886606750998339304053263569265065904286162257015534923735801226650243713218725657404021076088074213499187962184641698854417504111106137123128396500416303580654724290856759496899357338853102150474690771499783763930676873341909318772114173255676788622287945596002908667230598793174500294877265093795118994600448957401261299483183551426736179995610003481330339777856140207638103319597791621388984655376287966955754362683451519830359383098958907082803992605886977836873575193401899837095514235534123964033356940517091279758761806666892928925603796341801814853372302124401460818598938235794327602382495505201166844562279250825891630782958252884353337624409066469713958671957083213351972914049954996259224809357191333321758373030732608683722622511140554811607118857788396334706140980223426530291012196149884267216989704582412156770650090487536211169052101028205933348551575887330501446806816871579451315780790281550196034060005913342792788004135040637597047757900881514385243224650115640841474804657225574309462214739066685863702869916614162215295022397529166567892278309761996673766217831383604154343565795510072057824186517061544459440719663114083728526982409352741102362654672208996566197653004362565186274571935580578786476004403189179365446156212769703096651603100329957257515127608756903998493874587546376619764939841301055336306889584292823279982225488750998644937591180812110522186554413306964701407033844102652291253943660493060796393760713528425774251800488532831375804751081516253690605396435343269818608122204539309041271154780273841834760215658091361403794506012865848148893311547441809703463809736864265862084604940691969226571051442998261637510042044153915125743466198140156704498757349369781292199989349236933818067572901297961131713803455932154735668460918115674948020481452243149229814952369693776169423071255765631990926397713697526836020592365796109253509477395016665792785214799852902374605430687660832742075451721930758944740095393368405691785846875283994114135793994805718959442100133730243899523285356778552903205855516925228637164145502372904137655805261609292344294061802072304299762718661576709480387464706950552873892834136104974406684936132929495214425469469492043938522549299842029371796504835418120538259755358356814706544072941323799828692347008566287273222841135414648838956323177049977775955192304877937629165345270619245015591687301980048958569744128490304546975159883174832386509324653380055588449040904344804882141600229703004127542139428226994658818469748399085028790901145217968993401911778054525182292499440656966456218377327338321994162280701512263655954642206871015664669809054766187046438557382817415552287281887430248739917820053833980924953029095069451384894458715738873499647881578323331874787046492272077097527980567476289500578327036312512011992129665969251285656696459538341845860427461521208849423771337308740888647135902079639360477211213200263364710478952883344381547027414530384273332774430608425257013393354873655909989480615414333269855267365466805454851874321536925212316295776867277182411404371863522890749852013150177181743770239839912108709188817368165938971590207836962125348579368250506764902209907275894489662132755201008475866842683498557089375486768022664091433508478108208662456822548131678786702759698828283688208949924733684296558554727796603375089962874430829410693015769779489833057470891158276836585241731749114279781289307720849096356426693405453463415502919700639792297198765996310620840271703389077918657135696308320930655456656737014642607434138543146783148130672503946391294493941267678880860678960782529815376334241755107363336620100826571143090903224862158471251890397534636249169453757976073048733435554257196961354306381372440395597561739767727318758646158969302380836018933701487593423549754124236666261375671010357476095026737748303668312149565463049337967545216260029616255139515609154119980576760423206614726748346389606361513973750855764977039022645098807821003730563537998197244456021019156543443576255932261467018298670863040462199952112709111377882418939825530420468128580113562691630762154379764369205031461044155671456937577887087085834938020701867826844192604459802226777217819950668931411783613308227436077576732090390114184325056611438070444482991074194643217482403055099353400229996664779238233730263122249909481199609256323936204024112645547493545378305033872590620714706125537374850375587780239875188254774231869483616322623294232204886242417536914977479882145459001574629480533933565464887554400983433517548619473223566994318994066900727769865713290793218404145874986450032121334549237459747107528181842311845373683926223354900758603860611955012224180752614606913097020747236949068837276393425325653711231767353904348252768560955447723124272485050724482231740204627619516669914291957309630970074585360041356921924560602927366950652595289058620077090926677385389026408616759633074470622688411931640406553862814599897310400135524753026530093947386747368170612207038640245676288166828278865716675118891743456211881767123035142330957115038840540237841383771570290853692766302758117448198514769721182526845239838733019589032640381804469976588508178776721568768632199773302709743678482050767177583559263591265552888709214514751187525079613767554379480934117191259185841405670351661138708956251981457997984555757597892660487274781854405370408696784934173637276669928008657510949547872396842133488635472725048226121347109753013481557102261197130055056554676074696562516611989708427312254731002820326070790576327435239138393095586047269760116475736771130842795377788811695681529229711082181953319244457832959336387558819114635871488580400273878822413794477948399938439196723324069921099413178676502697338203891455140622906588735930150240774957300164696060596828949587615847302772555535357516352658841833196866552677276414714806809990193723147469577605364562815952313691736667611231843629039881978438033932320214277289226035220798545554314282987458418760145441021200754864325614191854825506452286131134178712927824801220010977012378098108613577294627254030561829501869273295218504248592133428744982921123362061883444246325878294797143561499931064820689286331074485915777170134719480964509375077776730302157291300754489828940834159883538168659945603262902310856614262254536089811334436921854163231898198698175181100909625194853277571968337444623558789753854955057905601221060300774620368081151249522579173222090142969621848146122017396641760549423452091339057727149117020690924704105479618822420635397405792142445760853698780497265362659004987627923703754676921170349803893871082208480260670599658252616894874856391577129854847060584270428925673640952779921891448518036256014513256483479962373269354820854001304798843824151289437763969816088847283033340038794691504205849473140711907351490410437569587241026417174685780399843181820166390511562343208079343929867810582117965898303326116745971303206938279854187571605210288953170440679881096234790757726420846887002679182944493732855528686891127372736479964849320697133277717288477430380216222244925938210801530113388957625654206300559637222850682417817724658372524516558620976025061699785477359006792398846141646838003663090673356700667996457344722554657124048930788974411835574168833208120899348847765444691603742839459228367521736281159757374608343114475749922635832930944996891999319066949183038934916166735339175946571275767553712366026469046295907812627588277199500660791815310143781159022726435648297086770290782031614060483213121875651106448381173331448369649360438592064083091213098193691729353294556864983938652738761547769043003966935220618363887620097359533343248759537984095196420320876169466624179020584502163936078237513891941121436578458271912577581195119402158136341200827947846103695835211765255153558828823533886050504941872905032405287632742868872897983796585354693901868466453666325122996391403833490512598603726966175377983993786974376018316547766659980372455084725043569166356386216950539630043117753935750493166246999911600047604104043943009920517515928229520926849386197467980856044890504827645096378514143023092455471565402458291350204746043908888432432788135271028682560612343432838822332449768658041048598341142903008315098268803896653882311023119219153465496361252388512165601142214204462069939991381923985464101909042091774703584242899218127882241740311171425410263107069932487580676969062862000008505207451563676359661641313872053802868502352130728411639892679557617622456823421509581041120124942150311783311599032839736844371693454359311515754359753054850126747476041953476766359894995096045520896597872910035220419022655034199711101651068372020422997142043240127253495050006017723714674190248808931281598305221811803791114901168634859562608583588596712618399111333597629258986069198078544206302019377974905883203692956594322545684670649081155655681386406385019899865792387516672359680419544330390250358921182890976796265998580618173714741901841672421882836085658865870668869530314331113221300158583862104423666539230029318478297086921777490186582700448640283901170717279164144639824798954324360125873338983701291318390074775985916889781695152449884729487775485420542354769871221223183932800771186815102533152997850505153040325385116116773651489474966011566906514468174647482567580623823020607996964540420177357564470307494609248909504206945562823073525189349544229396954151160962319856908113458188822726424260528973570345920982194074617643371667571898978280040645167799181985504939246640220983690933056435329793678256875489700748645496520123162493750454521542709413965523719647632554824099974891262703351049027328966930817102470387411031351225383919826440265298755116431591477279176116360612192803813722270669085122459986519254595126547965663175457780078221899228910832018405072104896942434656745022082007983807820835728649554567553910860477840799302435025149045928884369552192413322525403660871315410721710323887787979945025083621102972016389253696863055813231046429915626545934945023423770423405412169447415617450006586773425683096889888778079332913435637981340554608502542769646703908614859501274414120746614408713736015249265328592054305319076670184025341416954070099187215977545935067248796908762729233723814640197803202482527713097713534543256624332515338797174364665460617907229054913161921442396021469099938822637935826423861356053270880433296694186169400379846398731638394590340566031082476377349723544197848321980733435786793117876029301357897718902314787713460019034531539048447369445737145913581627461601524356395103003545559684817762984555823303571550299966757908465200403749398490033199797926064578633820244026867980587279952312050696458972311043367357186081302329630550781428174119373897975586820654412773526935124953389737907547640749912311017254297467715404865275772337511095087765233145691456272304608826483721185204014984843284411118540001638209286942177665169846465426689213643284764644856768178035866396598216044277625739919758467643497927847094064027397291900999729327864292425235514819500458834494468144359108564236753431054639879414095938605079951435060059044428100557596250086425407181529658125946703912210655684221327510124502214237327981874688714510729291062244761284248440889955701884644330423645420939097186169971329045078604136548326440321272184205821934423168955136643081859732166945149093698368459941245259241600428382359165108175116307919374413248529228973259360300967886715091548481022824304290096614624123173202060404748305224795692675840271560675199869373242866536679108968637065859286068685984342947439242797245537964441922946134259276197750561576694976255851953744934616437606879622710432314996922924754670799841117076861210823121520907117140118531508636596110336484344262300008003376636305788765435214826798652303948917117936154483434151103528958840364413932341755920598963062395365461537950683892263310014063416998897567028984552160708521813435965563891666442774221078533039072381483276733969699917615117565245286640101141415092366021274964095987566442755205111925625447787396725513443487073449292439240627847484612795536290711477635383628376302827093437885679108875173410833685641956754921468076328516600103664901165411976635281768652536418925459039018398022346531666842003433073202820007247532637216145317327223554140449886736408780923676318961327891718955282569484561015911139934421668244132939857134915045035716406391037215347379089445893756033493383103586898124374044561169749553046491532414094032396254871344887576589238944855225900327602435557752576273071393339360032309411940917292568385995365363950980264258548569179893384644558838200877266412082899664138343826371326902755728984595948325287388300232574777572742137385452686823359192638947580962394956689570766592849420843642938065653998343233034330804273058427927196502699497352774247350335063203587901819088538538663778833028532670637897006464230560009296243786346931154843013938482283272412564715436349956948373516339034696806988141421003851815989495113226060348841465026411237717147957177616230785170481222613470401257647772732055898950183770904584708366004520920863332619625807391930749216929870586519873582291892987014484902062545961175555572418973219897154783079493451941352075507508001970813218042085521830419263249778898834721006841727870415582892181729306317343010781257602610795001501366250312569823205721805649852705875133234455351278353738855233828919744356403883451750473433214529706975731122758250263661161265392420526774065890914339553837385682096197093877552944600357313488854015753687262334032858221672188017302328284070992112962051294056298276445529052922609305771456226225801271111736740029143789015546668971287997527884854042599051382424334799472947157657050596364439640732043733580752272691278863938594635646593687037508383432375347443334293533305111674302126158389130053292938530823745437663362134684572457955401114589979598316209370090384518312902542042087228357247872887726103006717028897284266658950815959365310488951496147687502303332390810768893294241047404611006735537357610490252567807144228674327050813971649729823587450962149285892415464207391665848186029712604149021871295779035517747467674547998528613222706488931453452494415374673622141773960089647070942241077763823562856167742498489586516450532383442816008622309642538130949400071525145936687054213812406383064944614299548792022048086931519823750338333268879615121338541479585294702365214956141986576055412414481619885769657365327048230141431322482996140627497995813331082280615812184006660412484438506278240267839428445375161035287038584558165201632935570695035141598182884079623814894106559332604265797587953976581092430093618154442259542579178231512802205585324552966120282174822410050316405947283914961056075501748917536909314965440318330095835936973570898671201805117985492257751982999934860413091458751110471075769269601540225204245658975560323825111477688469930305540736884724469472051255646650980591861642997777783764876912116107666524194179892490547709581110081794135872602074661950470389011295946292891076500340446903062587428414503012550243106503038180279480010737670561435933193831658457470520412129824280356160450268036937194036031647047129492903118392391345921355180491321022961405114054299156144840292884539508576251640431182495182460369074417910882407370207374939294341242377168821828946181115766330093163857995564938869984189059196518740969607419595255406475221738621848815827971310134739098437675905191388836125621603534118427884167078890406459240921465955656566470247754418100564172020652540970920095893524851788083478004591254254815423413175555197246218061686403332610435219620353384979636920062494243717850218296912843461651610236767691647758536103055338417877474335008459564394181027516174480792545750195946642437806216293840075420345754239823615742092176047498646951532522574642508976294057804621776091212309114668414461977079317845559246788664394874380701377314407748343206609404063153369217784250239610745369279708964769173836331307802750446717326205659962869760488997580456249335742560357030974925702738333961532983758503535344058593153039610956232703905651370345923774096001608562491407040068933739618140958852002781021957892036872352848651708617905719439918964578253314883855317428893950465054659231802306761291287957606419109257919029739540389934034815879538026532261987346721630532172198387353253600414818916980739736974142234899527524459407345668717570365728507042141967651737681563850157908219327550806109118004633702947616366409586291857404185846395453286532376666866943625162982181435078647113946391427252266116424773601204490425522133993202420223552036576912743083919740750863410494087756087869705157821321086346383765473427229390165344101467896112504024822141516198070459300123421467843817187525250409276280432100488202594924451698840631449021113139609292748004185857144893935640540240069777853269168260642389510999220901286775451332911533305911297158210550630533250398403270689531792567229305547159617601741127009525844826483076678793936402212470083252699045607545288704215456503224103604345216218977477117843807894242261438543685758764051755036275654221570251797744646156864936165880491869015619078844617046876143656526683974825126499081351569700844030396018698601118625673101792617439524954494405030488555286934118407436163122056363959378723898911185564549053305686227163760279988191097011189992808662551299442107630728845429854733236400928946364912753069253985799229493287241013966148474858067832028716310877984398222452388616708234331017478259429636708825958776973985237336008848926946766565684361265315023825349140987854390020110608671086782073369980915118008942368379460495167131134969855983939615065001700566233090446147351656303078536353129441969878627126279900053573577485936891588982018465265921225895824519128246404733202324152122962623783192086377576497660741034744786165351666222270955278564496293371941017064351449507124405330894603592604432509259962415740317519155036239233148721783546998792338316224052576830131358403330779901475912102437702346340542030334943755848818768521736905700232872396800058025407284470959020388579923300088906762599026748320999218335731345967632153784705812153977249508741564621500781946840149896869033789278433499197241773376921077438867682924986331190767467910673728412616142542230014231778922548876804875454049419610578865437301890836875719093101369884183664577595538329053346686985910694301425331678142356427554241993133238383224441150147876620419539782310810954365672581496250557375963176783902749736482493957859135495604578044547434531550404155097387710587260537003271533544056529105893505562756016781660516662938622585717990888565479523154318919925524830712769650243536293815094204101648135233858876270122221209333697187783397631734430234016515005690980888179179474398305593976112293318416775452393897590867341797748832711360330499186600566559427184159376766810539737931122639001525009762282024313255212590316846434689884975906326328315255168930352920632971428820777931020906658873497833905095750466328633562827956770934060912581983599214105914888643353938746182733130508637153772357702261545000525699374637389405251374772885751468148429871366095718363516623961056412788184623638124239855354740437781400064278556569348258067237598657096842742922727638380802507376490208691584633326397896546205237841699660186887418337739912092432440897342934407476514913363207465363686373279404124361166258580182236966967214160012691770119048290203209808599403663303245938064317861639978034146880171800146804754722517179326807588706426640320407027073056794710998277108465536441646591297929943046074127109618081459416179161496243285029543316156562807318748448081706624521878198581648218446235688434896288009381003640486471282130774098878736163153320065134368276595120300329051951975657587784883562687897830764942581345441799542211676770655197075280593143980034679987181387093144903641968620823689982143250698610595607775092289166120807851133097611633873360439207029814627598648587905130509442060892980784087747668655672184499845055816359819955708088631426537309385171538250394092681292408026511910156952220440268132773138214657779217338028065896616367493011519251675844808269192385313561529698756652283608740515896183463521094749686588937328741946413290738740490776546156240482281599657891218647898337629479494691763690896347065709320823450193877649403495965973190885857940651696657790412065676399174596718413566653077578674944512378206811202506117458291571447573694961428021397171014414485138749818150028441163467084684847763961447720203875756848328853168288800243342970208662570721428531239152219500932552573067162494621421542003398215945859113223035142653399745476309582066836294712294077567146511758061645353368683081570736423833145762553576758616936067601459385145473152587375672786330687606278471689123254238128823685709516396048043075209580332128450155983102120094471744446336210146091593430897062163223688424648337962105276475036529012258560561701738469437365464152750692028160921957337365357361617917229351461993640004966764048257819053708007028478263737639704051765512468994970058906833103590402254282569122597637803781282418606571345285797095415053387402138599531676441445026608110897954146397985723187117734821631132384016658978922847688715104748643473157032482634888692149426507745568475301973136324628392466532290293350855486233859164446424753389525687246675100213366428558715556073898731111787867345635796815848183815274390172212713586416285652122160842731118906040796687625312688673826842429478462025681243451519094807067484025018701540544408657439181913625936571214984432044069182701576708786900810682475155575609030533723868041884147565878322017339118477282386951351891518498572210199821580020015693550374848722211261386409291452263295967889999319747760699147818380622166654243064804310455779439566788573489483211389618615775228594439085862881840517442607897852202798242768295909561778310022558542730142642483677966291960000855240691815111060529565356854168467438365158086627711947854864481516888470451776361054159503408609104551388612962723916630427779964805263991584415337960505867293972133479648649475003265701377833143248702132100680900110977712656266621205104502986794526031054202690729046589584525142710039615258883457934517175488836685438202773904850105136997242979616872900749967226885711972044541290028489610404536830320072900740706992477253628132155554296333042109255271989052580583686876097872211876999174519948990363171087844265952900955286449442874855758275040706362511444658714260368233024922269110340091501507291075895947263606095475409235799552577565008308073131544134882863291360708201869380634512517900302813308369263434225239375985294188268366168624680240563186329990531542267847822414586200342898822717465005826107332107333984208959526503140700896830137258422395546574624695372059563659612993856037500369307181124066642627014846064284827815981200732211343559728287737502972625157430774000319519050583335944838612528561107379445239559233021497514545825662435012037266252644386562757538066707597598997758943630677776341465227018210939836762548065166891738113326870464620322208236620403616036677780398322356356515178543492516266494101608898354569549314687697631494559862017324498569471000173019612973299547783173434422527466926128035770285474522767305992164212694681142099498770735456598272283565780747086892268250887316462233851193893921651443231860355595078210627296025458861746956190658190218766686294468987614447699013891433105257934230373065581821870202566009178924655765341751912826503902826618274535492471783390052227090185073086115607650895152609992128302296339359164717308402043972382007557636514987276042679263139907902886756985639645452814718180963181006628815049469349102350995526144483897236011413506772620676888473132383057418292621389053996337892250505363451183824940147944844240134864074191446973583431796097391534030267505281429496141305135464830154360255879015220413092065342758471717834194156751202437265683132844183252017214772206976145955838741366675540559348990158279126816659702706302735121814310335575797379836537672852483972153331510373304049960921153533686925494661742017198409308823837018121022998531749755734164755263112382837092003675234951770584126821000189798022788565427567475557746718826397596028608355112152496759959336090292633760732231804867067656052794121333803208227362649609002301108606461632529230069917713771101009145923286777174606634825240523097696473610917431218545785560930319369563610083049203922798462147476052574594646364553768489847764260509670366055287241372397055486704447234505679646244307436807988953910865260616076433933344356464970972872454000595858793469554479444798047808450804027007535306130990411157849677159270622685198553420270812485345636897972413669254678319787835476338383390633810236481933295655448211062984772639380211566294718032344333036405500057032689636819222606783217062268322943502147823138106958040091398726958580248864842497579761404804666990439495187658277573715062412862345713212500703137933486549084267240466449628444871657620632796162423298676248078142153005579455160236389401223525352447299151202074921954703623334667254141646222830397471556984316963898703802234874710792524863687442951465507156589389662081993935611528847457097847804454367528313527931233165759585429144961753626532572237562121292704173659304017644424055816933929625886570403637280834906845315821382875643017266315715076389638694013501176910390270809727645449383783646357814072478107871766503884245339077638123834143860822261980820304483005674223905042134078010815403758745209710887688234956879315317346178696422341857138886320010881168939061735411900719177023180948384677163343005739557584479465523055138616386295555291019070266020404842406954719630351724232268421204233158051151420274047487632720619175452883858121863766212555640001778934381360661502578189883648763867334507078923609697502965394169688778860446767640493839916722528449230906497692440538255834574973782226352636529722777121917312065588772947918975950619192735413665511964984961593123454758983465979051459110145477805559361096429144582048813132507484025408773211068781040657990919226892865767498347062022987460173101261895303045553627567845993348980913879511443335693645925714890276189459940146883930962605899788957111818679153497476453540383134278671690781153990054228430115902393920545528205818085397727350373003490081621766057881760542629224632986649867166843077164582433125356077771045843735458630546134419956919538517286786285248619946781984156359424996442140902350046167100161527675019804553740390158157087343329439303707506158123327659547178387600092152719655823331046938905140135784545948843906227464871979348928299914489355453558742962842902446938854533062653014645301791002729079307501604383991970825849569513226953726686988267715202393844070373173753641498163302364779356971381004461531557759402979357214916764323379815854585483391709639272960471910677087185466313396136883252912127590042868943664259459847482596362964946687275871266166729447973019371241786621399746976654294904062969353109863686605333311444066266532715089086459479008123111485192972376475276136254744790347967280849590407068025953119983456520075042496690483394598362923319009679787714351832219863625822896126709649915811422543112586677108537095834327906362708364375744765685343847007898762949080219732888388993636913021175395697127522168588194954955977167853921346051910027401967710622774525552835177772642509775758020555031551680589921177664716690402045323919409708510387085946488913221182810151296274765792609133609293085841868320514761953566253304662080103853159825810196094251334174942334785761120067329983872133161236109231642154796924628364609523252443159716719622048091952834860044287081257620124690950014585932224176939269724369285510800676058390778364858655740967265552491830662856900455937329639761859114664179670582941604702601822858214858333788603648724018517731604576922115436093123245587898895842517669790252027178808130614505550576404761719539404997188092021796224461860436282644349008048260113882103572654967142525534692424241131818707763303228930751781395848215082948103581975477599740817220909238056041754436863149032284129463319402115068860159912890694490505117665747748547815127356005874165338051246632938470654956714924170195713979939763202315846047528487502469220729869828356434231936885094606876129156316108657619713697130754739720560376767267608505929740686599274604760545369651191478359277236917313735519208991811740078810511091546087274831705117772045121171601377903355772873667673979146859299510193820913083433744698410960882384448173247638029842071005469812146044123730870406573497694248960861318863070907566953952636447596989250860735469537198637078251946548918804917046243073415056882992391408622796327576521503436366043924618327171546872927435365188173197595662795321451241884510860803661461318432681139452413142006386432018317192649231034288777887934967153893463570436109303778510563947624888972407028178911097488965023755159844396877238033896324386594943669945926028392309849896166609782573605849969277396868995206238299621912673425968551538726977306068071584903681111358090345242045323414665806176891968892355817113401827041710818219692403645781508361394339596470272009029320861310878593554729584460136302596388327688635010835865769570322003513240371722921605818939492273571112854045118413104617194028157373931491249189401975628638919818354752033627159726693905250676091608155728540392099194629589777707046542117779260824941059534000983904185353256988060036168308040752052547773257804490926832592024922774838179062792370881239847449222948371872473251820664062648900078468148468139840962745228990026782810115521391228082965845198008281647500785002373151559293866049973951184615298549552281160133352468967799504344658798532469911449190995869677374630359854633999026965202960581534068437502887005540458778519348171045595386867408133168094124260772873237027564764614770996210943210599345579417957975252468885609754466044787205495381961964480359999316696315858361598772179273904591345463230428022172214982220042507113861027414036062828023831474881410467453797314979575849412028240097618926441454646416612738445318749904038607389265400244906764620027070542768709771792400611585049924119265125403864862972509469609781384973324877577184618296822039153295731611075143194985956444354002738810909123603190359752251608379359747892342244433444586478651732104130040480087527834761429115333723772691061745377809482460036445310567312988626959696795885465562726513811365920532915771872528998997745561375007949543685287229619079480225020914853092932462792940048667609824213413653271107610386818528031187728771594573382564296710332002743877989203593169037834484012902728598732730996851100270615808917225031398780739957817867863583116576463583722927200370254962948368840089400571263115365207168155327710138760506768383999767453406166219394471652924926999198163234696120577674288637012806976190868710915232895171611895241410902266754231244722358949688259124094367981489628167594695320688605571275360361541569028863423053819439984664384508818327308209021735023592108811746035067120369296152579960274918747154834318464957217194130523895757170634468288020995872061744072565262809981259308680655055465240013165307081906369887656040961598969157587054249050660556645854184751624944720083315079515151331375994132417198397414965612149891447166912199160916884157351028762964517661412634437256665599130461616834185835681882347596753362133124603372285546079261586470338831046102038094598605750150977138645370835171758335185356359006309921256420461454559926719566095985643025553766840578228015959018629491773528750512994605248403180022327317152299012774583856763207065836362122340098629092943773945877380839158188826987748250919747378204521553791990950248303796948203106758147820284242522339837620238579859252976831782368590950883733838353370091820427613625371139996846767974461861650261730166874631455455471448088748098059675758765887777198733286128589757729598623956322848855139063563993985584574399196127082500083346915269740064936033407736599981006332964657471038426851461913999039235541621204986866747124950981466197715328576073747589413110441626477890538720937820586331358234067609265987565615704022787939651548807523881889974699529923821458070027826119257873296487734676802114384351246235339040283627796864317684587102736729927551913300358203030118829338404688782624870111390795658821563179202527949609372326710277555939774781737638889309748317231483486403045964354793904302149003057468889272586127328903849929432791648021353977989434054389790144023638533103890413231052293220988418258699896910709613196159316877112195907417405841055474780550952554404500281330946866841847597550202437987566182931258207020811254031665402697354345573303775104285894259983222258048469803415910650883543596798909180965891920276026797783469095153770229564813754277426790879019117665669541142650888885679266202881029983131078380204818558185570545144066979087094855392878789326144921464707489496466737473802620929819725783211573624715773280539364980833513077707853743004692423226092450947811774392163720886802159789281326778140474040410487278187859515409566678183902183790563360914395727304242651111950056897281906590052746401497816565713041535390741500641783121715008425352640197234820791592585128861054035985131860646565501559864021453820311655707260029966775068321787623865939091118897079385793377330297998602951947102117856500829068412488117877721012880775870277573988824484000696069046990393172967038369416551452029349624339707033189921087994286524512037039122796122197635878773338799119706106329251207454193541364995794972962522146421950903669279395317102120999085899296131373098515105743825643068192712802951818999720198691240751129577792343247394358583775073293068916618194198664732046130926626285971821479267678943921157441077044458682797582147564895734516738410793394498912371238039769051085021054169378605741901828119056706034363945252329996824523960749414324611882257201122005251254628526127060833974392466901736698983488507101950698855681149270105230389724575904329541781875169914050165227581643405693353759439562385717331293473333219943753507489721550427539883661036760285455169909062785038427354302129755560603849007729050510492764556712280184680262353901500297828475893549186988695034786562570878336674263118421586201179612061498219845881327783407791787416842745172164486902624183572990111672686355133990778120728966361831352965734650821709003566621814873776867205476899095238028226700723243731395355133656951790852292966596011856953634193955675435614435091822009434698010808880311832724909514150792342220064010191335722141243448523368391315308223978493054615657541646674881098707098317342330910337487698805851774234494637620263296141146252476304368063539789883607323207266827285634983685237763350081276908847857065801321173682499004810993270702843504942980485108201344837438252525028321694114862324501128885192862296305706710392455945660560442478583051931779224063704793108149964019868878647250945581681825527803168103882531407534585646035154405802137378373913529357258702932122927016044078713337142850945942766527308145863581797733732269940990336099437958261278284161559189637989314983814110388595750055004844485073108972298326856314943537591918806672329654484885229122459592674843794598569080377990220604487089470315266524898024539280552952665813308903876751579029045609633549491803591053681619722575137242472237497666424111704471852998489077236702227389209657716811620477503756318364418698234918392064872733055440821724261850216085090078659072995334070775052700035159759711545195182862063001616364503752929251690462019491332986963459798921879422903628290176667538953827137731965068038141935501151583549514299133801516241240712770593119463399146702135801135189590152288204121428256757855680103855956730005696511547691634546360540469310226422207248954394396283087825996140631048038241065690586475950725635503118287984428895478027338462914905311468387520022252022525747963581519180440688345102485479525427171298368778780482739257807124415370564964614079819410452654347470034725615147874372251590777993498374022330642626901708867721392306789328444299066174432981307182283479640060718954672180246917469850786621759176921365096989529127943193266202518351945610400273644777581616453460219985678602030917783489329712731137261960712409790830376416008386299809068344570529477551407220563231071674044982422810951005289251952851494535537652910446236956110114896050873658372703973858189910748682110447344908349824484965133669410825743819541283414421353785445237698321042268260733641253548660083833368967192647968030482574266036243289954853475087242402620557020753182448999169933416353172385214192514148369348637216369260985316340183814357838550562023490207025174070748117298174334403320579153308659806551117490739027528114999934189460553226921512641341051142584711565084723874152099181297937631024323220252655422149614561326613555391357359741215176117052836988521555659624353000587864835797611570387066767825079340681932108671034990070402341528309688441570005832610512144662287694072144732555385410538697813897303602954401499869529431720239755700052631895901647754223631980447044288376638786159381368209057578624354936752843791472650838849657181478020041852902629860060347784732743149749858777491008144108145986005122998192403214164530180395088230429628098233484434548326847635986971591729035252787133480641465744968424883977852782025181122381590903079385073479641128078894620757666624270565868105986635766596462055838103396051915243162597461761340227057184725511972029442716986450508297444388856334322153157219600027529120121360357162532191925898310402786440917108647950493280944387670325154182341421228142808702124109085874477431498330828054178985347527231092222082905751025239607144622153119963889340071529413211892011394128028301778283544349949045598039212354050849662239432361399551375050755732943357098064127010428009157833467829899693127972831128942785341753971803403958054547629871421464063342180822919735076483463801225936401354912969553645497106255478934621541725840747676399016295169740051297078084232788182249749395415834825188248967304591123963513776288611914222916898931473782223384759171449380093963641627790365220867462938647848634046574139713724536826822618139851263557695678702065754278022872280029514727959926623533048836352373549018404151761319398879704723204036829566300274792758123422521484736012327181632220018677834079807032421756028169202701710143741206940948480699260664919291982411153220008010919669347602845126817195173007862309122448233230478476886414358323507200230105193450402915290595165244291093057480348691194341944004408154858232283104553004285059784166198632203032967770664782897582489946558594814386492064387594975757984662099112666827538597758156612816106249566819855669467669013363762328667905898595976093968730312725932457598743956876173063258590621247145344678907738700533076322046765328720225592441953824215524530213956027228798919006818978852874787067855923192143448554624717020355671050123232113140409092273754389513272615491480513220208023626013595783021145169009875042259537979968383352250015205171169844190665344483998744539479851322079303607659483804052474150502218563332110759109263553454469647510505137665294484735587624490839547950893954016647776745206218260225055373049390775204912405483035109821887936251987921370062961293483376349951284344801306854198295236938680215895588949069997772856732219028128276714330132192746239430447035918913249609615822981367155316484825434001591687184153329291894333620236842541711480219662757437371803959222200084490077556731804241495956754778597340130481931608381575813506382353289513751979055179047124002403093383948028804209832307796279083141369654887182718380890102815848605570069709534292900352815728317170574649314249394659127693084770971419293824904642006596030961115517390041260911942748644094390972240050771018648618751228038866122767223442710466758226917300144551156870249606582728447742017700884665931068064845984812137375484261160690761769626307228840203688515916936550641921031620390725937660243225854636396499405945425431573271934505489021833566914396967036267335130354258599734388474628744434342162874534145843548976271837847745461864923528099485957690958638308562697891051614186206880873483435152236276601663539275210476370920172834367825250989526923025206790288017685189521784974227087272711272653541922679138769862079026157802711960018710704191252217085987045821126276208634660483361192149119553096918777823054351771428325492189389007790972661472590128040798323087977006885836950804138016823426073629961171420570342657650597678052406601238120719531475398967822506460816396873676141571128749967277718627245293327566836159224701221926584865453896027354683338176120334333902364368631796443842424499094343691394894208224055954932291172194696513805863464596349671680756474837074758256925650436206300492125524856157701916884997182326113119705613215623658186341596416279887377832120560202978513406130345252591831917295551255832988347653618909482303766895959287469551019918394358258504174962391591621112733867635753540879997283992786575544030470330986469409673097401681728662833978763987255298106099859003113868189140188647793985160050312282214362316021061919578683213952030661597164546890614947646314628264520870266276276345877702984708396465816608084164345902403802371592471650241411787671124993546509456050872890044191728900850757242092199511654234574497141870353343204939278968971049274522338500479069841050171897780680293561187702703889234841047097528369289659181803560772759297817429051684600897897051854979584991426557941730223117546051224363479268001669207923250075585573890933425533507226028150895513120681338297696419190985449146849978237016142480511808232322343108145245301876824992773061761245390691723731302169711158119640040768320861894832024832949467140077769291459930806525472963779762393900370631722092019057205434006679674673759896395860717679113752723720912610680544745619732577159080650677427512251400047885217905490387197916101652754660781052202202479780567989868292211297137984209611273790076188162220939952682354400416015500698490930909024869111993818681695953416816764946559619451201755308843045383734365553584981779396294602563026556344293165663794102339915101619942282884249713791523136357662871657986693958641796917041228475286478825560388542403140858987741464726939721915891745683333391709176233420607068593879283481381771635542870581638454166021265208493415946730801647744330412280041496480640949398600536201581850897375666466224597143815987079667292327029069979242600583179429524535751360834316638609379156104561015560646825009923676518692042712148220293069784901705162002519679939092267000621943810656305595965257895479130351353335654613504693169744306175738303543742520177680133369227008502154701280542873497159900250284428545345917467687838279793845392601942049804426573560466834190123128586734922592807366423439032732007829990272862636179621303500176454521022245564993714020684646442233454981533372580011173971650575505081921959719257304295979023812072722275311606513549831054875708735328369675869062546354548496844196978697738914159102386365308764969594872093966556744592695094972690982870861222295958402930951879058132736141601695084951959560520913151604280461744118388178933547035821230757794356306664677409811426744783850651147288485693544828521139587333626554299638272508290689785129883008458784859694724616147626464818999913239440256887871047737435488444814952697143041625647075672174666985427581025149571637118430040183602332264758345086190041090991680507232762264861515775890078483445789381991934601289371881963957301823367717808719811836799376443313308150483417288111859052665283597077408703775590520140358268419465272697814451945223925319249243047278374504304898526812630575019617226002567957968289318178194036892537557006362620092490692180027434126886313512628911635284176739699820989058402058476898439893365848208687701530456217722529669942516807465479568590687976803273992377945166581970756437431259840255093939352943657340005624747540644831239675616454576388176597607408539224882089191635599697770394671472130922856943541514697941075246994490623167242357331489594048376278408504722265595125526579945571175676600987074184696009319244822808661192415595021316534559617527559143239114627379909025587673711594883730331507408493639003364108524117767542470306363924799937806884268825983815625305875266636338589536619961616091003513460248159565847890176831599159623515607290290674701026831986238886515989366209726872366688340469274399981701230642641198947161317291784966580037051788179069330747752482298185992771537688099569029094956680343742403795044572275340311362806370087803549078623180633435607662602923223376437321833527635022968585263508991970734462103319863085017046886309804244340515121787560775616706144509844683522393603698224364714483794309320962455858276546357066439956333541098738869001403963183678664539836815842393525646577015402490954638861204860252067614276908298267872229447678924401610694266097878656417589568396004806836946668788838414755117153415717625264434028846466196453250939606460472175975116593769758040890159769582787754535485918219839469390175997665707273094168977137026351944928224438928413078860356970224154911617913656234610709858952119447894641203496051753513450928710491467978617581844135351840890632878348349168169755936276912818759041153924476077738813205271909395892535593288291655194157452143401288134200765686641072940801444724523468947127623705776384810496815711315688937889159581440625244291195063512129532361206400187230634457371796099258874436453114745203468304355412959894083524566756804396033287343834766288285147681251342547861525238533206037178453380014944363751301737456897432622943124977370832702519241020012234844008153200984466729086226947104598127495889270578009205664103878068997074497117584425592693822849918469123416665702136935386824004795309488740147514213002505732866044575231366936612167184762934445226047024108166553526485701167024037436671658512555908670940823543611048627456819229180083661994899908261800325582853205854049378162701481318262155646506768825903188676116861972314248161398149847897146157478357970047885667671587659212841257682484012397787264035105166799032350724250967635467734792616118725096150802035113894394923356139176405923810709855386122667459346955264469233983684020709354971341876644950557258406888055945434832067730802771601288781195689536462533187972621390656980265903676241930444618107662085330721448668815214443000119854236388053373081583644888523012931073538456704862961495861114914130744375940137288718367466279246244273328831409170389488599163075764939022384436451739149035442629884207962932239075222520496519998379279457330056995702018794747994106043371228251725255758497208119598539468367832174257100279085585147328907579885650192201941393548708276275085601558871188680341792420674982241945484152524419825190237703098055599699280991263634908841593131614933567827261167383483111490377548287852850540097616432039427862281584750780064528972964288996891022344397384041729348371514497139196475935862388843363116902018036948614460001692229727367183128982057067306833122037655754769541958994689174250225902430572646535861766268855357495649187623739502649339498388620488746095472873299017048267209296289227468169820606105246154008087344917023528477447406288266504499658147541345430028337263845752726298670604094468563768747854492315438307792052982222955783018430602802078288053101504273933230768102706810345991536904398918362166376798060904384051655098141965566551989341447077408378736893194278113859270036663904135618128070909462273362633652828865806638198445356056757613618940886302237542027213191380168576270538258101644564852725793468614392777796836393854215943178529664613436799865878227614237038358445738750608537853988290124686554598937231684487393439961386861121302253217600911349196233611813284884929966772356812498031506537736837193776152255260087636982874407866486528718188869722333593419713514449869536458112781223633487036231770035242443431509407348676460295075407599432538127590092757203347340076099135004507822307246934233816728182586123060724526379920407019689987474850667716981411537854150972158550244461799775160935165275402058795851092408008881976396624278953469402235292009352256587547399969323179370582925645757376522100478172223399495483272999848407117815778767122932876694414887310694774909893227301408600441354773056963551659030798674122625491354305443903762531398372346912614454972430731778226409588193766687933687846889985552702044164609682237190508578880921056005000287299154877072902944423521233923429654610318542246914239752155498090557401512511222861005930856931665399673608347610881080163992561578222783993850307372938544949363174548522988694219127836634421045844808545798059696419529979645503082780555937433791928960076598097903046022531278537043226278501383272288179077848077568451773777710941248400186657696206788894941908930175489079606083470024481635726229429896872711249590851719462346614467241474320787782938008917131806983459896522342380007021737741562896536818697269228692258236753472308335304851064892884231401627642017177894846090498830620343931496780500353222787757168026410922344132774973499443907765054143038868880362026400756433796573417329089133526597500735784386852305206474287044585480649600955324125969903066644457472035973385198062243748506963792086581478525776202487505896454893675746198705481362874192016478305983723875280753012636030601743372718537770585083279647084641971734290649206334663468966598177116632943039929403479693680123487552958738829046005260432140532803987930523350078388194705013283498250196041974986715812551712437802119335172324063029333082573935566579777059111986432691061803350919518950477461014555265596459304245846919214737776469043897342149148484797567277792048250985115905228195630831657160160959879540720338130229918710845666686584329198738531457710237446986755125484103314635502199911135724519917842781602457346939881048799296866871881390141657248973511874437711578647150453778307303774775787837441592853613575358005139209648700239174717378835925979105934524612262304408828491727027233334691374503078048526709460107620631778820075893381260655473809364082706639800546916795838574514742935351239618984353911070079713735677663413139435073826769026255302603536607876939949201917067277502773381106523124124530372914184713295572186779917171615789528512525006173194597475513584095177586180569143123026996854504281689630324925767843967253821712378069039309614026206904839976718930935448146772945573128048761372910001075052848156363125935866344896321923544198013576516843132243689884043829026250146901973734591640190640920884156891337373295372504060988586369965893471571880408311995772559232837913435230526416763335287483776909063966647981853771280954025956196539734051098978935241720048885077237029993265530053171038122857396481125701444670695375802325110424743891764993571572983749007241273622809749597579620312609830279831067150088405609720340262735260146336605158174452399473383136832338388526707069940674402031851080276338644845498291404377362908470854951301788556489170303366127529633222712330608230157866877780759979778612431640405417793933566219021508764785067979012290990774295165212857771911243658295524162910146991538428473188882820763669547043409790409165954538020658098251154824361326735900856168295125327368119156057754900044561564087923803883834917340106508926765829517614487439951391194558147764036035223967357948426000993813431243257067710454383798151298327993355530165304318708467047721030195060183769510758952232029579904624436957668117340991256162456207480639513356915930994546614885947455232440664210569065687748545877551051136576761836206367382555971102313385241832013105457644609516212420455900552915114712342035615676475269908763238827166461322637389843466409035176539939238529643966059103544790609995841375849883323163300097191759515095385745459142303855215634596919412828256873650721937696336545177521883603572274251798736426860396010136806944594665125411286717902329334367062445034865387147160580314796525323302349712453025726031514450429774967970480764065700603487646223329746892873769825974340495462338530812224597850195342302957952817656524390437296910372505453687391544598669629372549368629690327204446619731407800602762363213201518038189055834387541979856883631403363253409525682053937595472011358064886545857046579152737530956509505449132904982553567738694983257243015670375747048615720105349570039633724733987434526060092522397939312642844048341505399956405158595944371974245977497034026764995015256923661920641492826302230720628347443823096550228613700691014317623362809559411781744029960436380807847676382568095916687733619884214619788662352601189366616260757066084644853663333218299070035991935623720472806363599466177788264893095400401613369542549921215254375044463224125014408686469106389297752048381238252589407144057633615281999653902751667469882099005082011296448198839824266962197257359510939320319163018379502155257649910801853232076658318228648991482677399157569904049584389173218990034032149179310583326621183791811615015951865470801094589715716897883811847133647574072849322070804677706331626390445512357554963494630714785019301005882591555976803836062956815735673395768371126816456332536110238795768749132306824373839108662346075867371431013972613032803640343289265680864142153632858029704462300429205094158880410011883760985377888553182120938776221604669175617080108522257137281593263651331523185904383921391491062287672645864229874524937713600152068081482443702530997533107328521957104952372850172460356046912371267548678180917834233471054966221834786306199162075429832274332577086592925484801636733220711064678235104324501910173305990277079517195846635456340949106106297823255641654953247177114755405375135510559730574277844761420188813215007736473884436242209901599190409782111363679001726404251636178956661246085881742721528030298951667794594301513366931128150137817976826677616488312125470610437876658281169584379694415613279135110017652531264317539209968795463954973997472175838667060335842171094852471430229150655635628590239448977263728473877929835040554698875636144571140860546889954771743724723123922714409462715833130893542188843530809098093080158511409925803495919691262167251938075912861288161214830204753082890004880396168263844777141225186555688530344953940424949110045948884000168802275326540998310270086799071261922768956618749131121942831915395311030729309908186901859418897204324834732762989436588794691866909895586871773516095899482031162667585695739747311337902234115645812728117370804222463385782160603650337732636168784503332938717896231797924824563139387540839582679726172309783869740739558202569817789085076958596821559536120109938776169287869962178973332374547664578333515081626513281254979666864505544093472030616136386978884826467371880255988904330742050133934457694605280471871201785427680886242952029686224899627884892652494869963495732376734483602717120133179717487739357821747244401349997688280629959706939762305749677551537214301878409855182010144974472801485417432252773507209662694988137783358576776706019546737919111428090206177214921811485221399709619253681713324287766258198748322417188120790589451104779299705650660718803853572865257024464725607504213712041666791550495751731660973923484096986708365572103602631130581426325426264954729017585270195869351466844671193459993944797710556564690881561705310672746356816961714764830846894066084928087390063107625147130967765078218233569042498589498010038900699216692085729748461945261194786701633743999806728323458326158263444316618484971657337830385672928690683616369707056609773464739710266800376440949704736105254198777265632679886430731544733649363812953657678231515362134472170161358784536480005798351270000218413820779631820627062548326574143436016001659831346374831681967685810157331620482040849328458293854946633470867019944684525049635913024361877091906511916581055603691981794925390827620148879134578731517371335882606139399102235922900353576955647984282849487315386158956443041336985008424121555677079966047605176979431710349072808091065879405308297699568014279205694573993179252681559824897608301371872453258722195023311194922894058655761005977637514799746904603521010504051900811539464044218095647372706161794070391836372024331952101616647245649263671331197185707309002904464935233684612912919625070362852648259126350084924065907919557123193719522987323805332451839620350638451843091986286541884685302199490704025759511462298153365474952999288634894290108869659665126646663745253114384793131137804351751778223778850776510143463458012323945577435879939324696068740793906885667298487385262163623051057066724810359210270446969553867957207268408640482962319188124974710021127866426918174476618118798320451632042454524736062545120109546116611894288975370741512234847735220742344624887013264821177470543913356798280862061708141714108713718335653343405014345950683627589393689900829938329999455572089041130219075040506639596615368000997009037818355247581279831876639104393153995132866990225296655450531234951687853594545353357263346128949459206828828963601770884954527987857461356852860480975830095511691175345274914946033171366553985357175287432833576099105906090876475181464310356232872164235395874216755437790870263515549404759684155269816979100618920516879623639605522369874440098776194025494474743504817126490840537325033290226883387243267442206785615022594393109652865675526717490809092580201614521042844146108961374574763267025793297047390743784750885512789888113717323236521688038351098847523183059785928634248277746657553890157515109562868154928714459421697836368991028982246702233448475309939712365150322304441672122170796019712652962823913231052575034288039485127989936831708366330181622030074444692665556929836732603770089684692935648095747952256894037620620073181841167897230825727408678000342668149412041585376289785454321721717708090327557904712766053155326036860326652418517690357713097113324704142057532282983327518834577762171814429696819245756955982274857870768643795819802314453701830329815637949661030762168409288292569042165824686415019165140426486292599125986322669538880987887434175730230077092999770995665324808091936778803312538158360959172061099740207530904347712708671843171137901325508318370144135653686643498223225882956838667756726536148509203094154229210696283358159062647311802957097109066476778447414450023451609518443682007736416213043811795627072436170069479916811526621294661324528283428976488001825017382664494019708148722698773700719504476825442982900691577151299960861669740661882688691384002581836338771703251087466939954202773075558259263776303384329151934730853169329082591763606174564420486829583653049584191956633638471856351696651348135946447823559586558028460072602951052513660196870627653896051506452657857333868103288908877777941479323824134096052187803480291529165997601402733452735537004871908464699362466231483678899665536704994219130602302110360274786418486938139245384184575072987192420368960942350076108037435487382647893242117700827835028815733820636525264466328571948727674584940306811806320422884351711278893701095038707592409793448992793767650346862392922803688109769600655290128681982984782415494845790845975918333854219663804872886849965509805945549713642066589618174274558212416554645853653275298897307406459540118363487791256893759267397533713880007612388456492195941117944196300917903348833934355713433832724468355129908866768636228399733377467817860743375466283203257613167635795375177872300867485053995035801481272417806177059917749323532818200610911323719794865006289612268425723819217488652071941908808244845507263717556674041487604017540061053373337702846871200368378909719146952049062992045138351646409707404267305720138979857424074109477858159611804034073294481830947450742206754271284078280479747133715075737110056889684983008702912468272794189401660214867953938464880797423187873781547027015554395967646161543152065551135621622052957401568790613172810547094871685299244593347061564936925815562944126881604691833665950366022098080440352792283295387010171982850929742924032248648836009287923214926979181646852378794696036625134067254031458572697077317900134515816954125385591197153859401249596933188836572043919889192732019064817021378894629548730002828726428097302672172388119412881752819909926541519409100075851699903495789016093940531330281616265016293943622437178103846638242089339827208742125583145994723179960863454039021335099265436915821102756727836219163571023510011047410990237817841939509485193429283208218296220929306854142023460710571461424809749149326406738212397268388837543648909210160115003263025752940751167771297677285881988035130456739760638880283923266915362381275621896674608329630362674133144545490367527967206075008131671214201316870477902638319549416894131348870879215377272143060036811423848262005044544050965388934459363922031509229590141461479959140843738444378623826980224635352734248308509385954059328967007801295601570774776437911747467242266770233025923457295131933524193317167838952900400506669630852991366631140937945602042290172862511358991836350523490599847212688321787715959685016354313486682903575486851337865864767730724576415437837708006474606495253373945829961603774416931664667039656649937287060227165804183394204212480599070320047315540152304207723559504712415537505011623596942076160401902496122229020013720069736469991817385170835714882805004218607584666073275951303749873152289733637460910054207166788138453018849713160493705149947547570817567788864613932480906807306371650655306793095959719166129797603407815251082288648540169447062889998208527696726673421835955477181559272039689982507421172041478683476432729415094686774181424722964201751265560696278239768605882683954367991341325483927501386254049654012472836458824841004207942192352658899730418547179506697839850098768430538913587086728774855188984675837016471010700015714456191346814211778001497267304004067082470701728854038599072651469604083917042199443281620017922682675059582983708322124379444864068633114581683683447054054078362593872547583670558468985996947453037990538761543165958927921657166190032951250436228659079807377906328673369678179127300916496227961830940652331420542446467676797640728451422328012111583744404270151477849287056941821376442237952518724333556193875014074153127348708592167042079528258126062441823553142785841818878425396759240420367855152667055311143262072549858604456851415583515396331505311165122681333760410545195080577487016637385280759718215388352043537967004448441236521116294070986604048565858089283949286268987158859765666800571881744349943445440508317614499279362392590519337742765394044229708003295750147589447459696709614562886959208725472933913808840713070904495454220739675721631976380103297224138464818417265871722801008257760735008334885595948638768451589671110983722755564023883620225854631236571848046970904066106835254245446991601593003121364615698553503762247411371381292673720758942170337939249961381445054919918219366806338839566516991229223831026625506291581281077700293149759571604405882491209455687981951183773457068769823680978971042693713865348774494608592796996557484850517115668673797783811809826838755452192835627876447598118374062725735362153717241946000812969712070916427622589829974685984710214084777292279470618729397869491178688121258063865450653386515521569928355751790162844830054567466421137730262575687760927323424649716576778373395952438157768835532534390053332918602755013551144247505314793434285993577008322303921514166386443430574386108796052492481940792128143075590328504448645759294336849142989009311755032875892460398486495460984302923493192020513093282369242142964075449830559073082055886953532576504301876164274079531311369199628668511674285249833963724153487147282579881621113647223544776515504447122519053092938648472718885632840423719080016756252041346741097337843994445984964344984322186376929782513462936169461718368346571814027055446194285039568351196417797458269229865342055104889839458849478955188901849590463829750335418946667329889145204112194423062741211609214348924639344459064297699290224914803234471308994228099875149546226874433957868877339514989392765825294191347689575694852361323423052708367571154904540453794480611417096453673733390841591203077130930845251988980849780075173675152342224844991646404420954401566985137290704041517993712077887450521503530653092612076192453736277365433384856948130263221781933124811357552244296766565132036802268179360661711291824221912239375210274688139293711405745617666393103442199608816705935288197345355814378722211964730366369948136093040105675239311184663041085768941557583635707040785851479549019275526870322476941447585846093576631977621448316541218521327080650015135754629299772675667105448253555035627960539911963962701491289440037078737780231147493211231036058012136143167180547918295123066814644967336594013838504823267563551272236193154800640550573576953286988931426767980506840066723018333289496426754555863289679929035209252440177068751275266781453288040738738514398101651139711807660187616650532007818373280108816345988985537699548743624275223047105252470109409498501461320674102150554089415356930157712068653279662193410067583768461559502981120501728101067914871613840571691802172784678809891836483743784760473238331240661226626750157952975165246281838232060798899287382485981606219026239028482974544432208210282440693086497272933516481476605389089288213819101396575986329559712236235322143870877797141678906738992544379368075835139601317828171606740861086369719610857553981489924417248443957998831660728419772384909824262655256064585852749954232490188087792465854001764088726365267847403124779785650580544938405934011981326618838746087353842557463264432911426689633357876385247793252530215246242150298498431385784437703353345861688936814668449947402720713850429112063610263027267569865727319303689924364556959075388185747730310878553714368981939666592199740392061469163355736914594426951198117478065158370739769855418806591888889962731682880390568439599781606461259871174097450660906762404535346816459037308346435982098441536344696164347134867065918707005739536573108014170138243623388456983291929396844686683236364476383235805545535977433420307589726809867640873786705749200522491954235592418622421101458618195113464844386329692756072739295125299231238862963827463371583303820682902480862749258794809100368635580962655711165313508997477060683124050755541866218588250955047978315487723408762012041158902607644999865168214132195307643945538215751037658788862339866677028549629030761639823382214070302075445295500200487315261455159712223890415243166089532552921668817010602609903341621490288361569737668683177977888958483409769882484516031395656286802211420209282219064431423816442168464697142203010392384790637438874951236152252708937447285992950263769327202547475808971869577374979312347732553505982096495415976621766014000759503829635587941568515503623307181850863883894432784197730161944937470712687328130093603394560507859281257301059402626208714685155617323213851336379194079704208992356360026661596459280902543361917836660107300725409279923597218945313937083821444692263964161014167694282081728845426557887335200656418904335680582295700942869343786207610965834022135304252582786360833336481743660384410453018558708219810835838564096414912823207778488304710951499996150352006190995864715345016219674554954486128509696349757895871964405743981345317028225838885819025038950403770118588552201324277841246776324855772315390096542176803761394449006356190264657624925856781111371398293281646176969139873444566723124776659731983337892658925490428424549855827332883562276114970467274622047142511504518325234674311921560936616164743900170686695441156991453437027350918919727096557437541372200745878549691159385821538928035892048040583448518714603223886679178567581499428011977678171439466622079061001304668481506330831166420037422184689047348431967880577945516372658347590294457687754854635151525546971992975829767911753326427430117744599010443614407417963269569768332819434613273009785672801004733530223267704069105589440519980467376151352779081433253622862490372705086935970478232458631948280036492009285524658235390067555175102067875695239483946768966834283194083350776604712290270725876027275162129188859697441203792701536694946878462753659805762923680119390978463248695059731839714473800027119266498605468928662173106190423121057708201939825533819033452831003946710042095470544506883564827021272355688500402781180041090487117495503672695782254989570341345737923619069295564792931782289818131057326559929888435837895019184318068861600507355929343640955126680605381525459061358398916913710600253944814032608226185089118086146987281578949526203401581826084449566863063399706584356540085627691662100975747153802307608970904928518202301433986042804720960665552302971604232623860910139182020791107048574696990972632810526489731407378553421770628863498864618236714288639306376835325896156074955430196335643383928238903763862279510651534369376864179271039145928908362060226320394425098128657637360136759054651025618846063815951879893393580265575044061901012910905528167480036187312874622681472244180996972030532327173886638206013934191304790019465701646492679458030805797461195682945791660357725287477546162989479716739582542776318296974604889941715910969596174732382951129925035305181915039575807099870858632653341472935315782840632194954676658249733294801656944265799614852820585859176463619978750194462449321043029172368792068908179865510855768714465338974358453032009534461200405673003607401718188525102065290617080578474891294375922311145841161855276708976541362366878498647270554615940745578077905218535483093529251412100330657025243077098452043198457190178398153190397577454414785895429235133605924721245704443265231171903165423650611901110438034881176638144936853116943578287801681384887709130038494899410132716686920791705297813583651168838095431301706108398088759004717793442895557731556897313354579845631212354074000648574008671677995570212376406214414087805804108160113889156633494729942279313140815303586281221724212211487840804540713030377151680779958417444366083373103061078256700251429510309534359538900096163511838935959830071950310428538625996327802355276849814908328720751234229590754477044897841687828647323010138058414404149461546592515042143850996151268717827180665148664082480736626916115247109545819957798482308934099336477510639643222797951072447390918218788709908556418890789176248401795836642891225807158555602645796678031185821917893440127661777868502860410373662648448499070094229929083656037720772593889737604307811386909172399340324420760464045189826171343944743527002627991657518479862642749958861857572296501395696885506280241083455346357256150049718421088147070970579767445311264342223044210698323255304652154978494465139749149913905468229394117640422529216049331409202414124392043682910587148951473869639533640624102927468718190418743556554378987289831117055423897765514285543478546326377208867615733980895627458218366030593981205958052963560986562757615427164627658935831624837678777435865556317210900441827263858562864280172518313102896210505920285406898886593943654291901563451521897364590954045240207548000349200982847750067998596522642733046984419569802141971532351710266963747633008560803689261548628719876883138003017947077714238582154568907840954691507113571390771350136295790245098946161049609660607241736592494154850075844334940450128900816963570436913259551757181104795061369125866106111148765782297368573296960430914913809758299802148046071643628543923390458693453331003233465995566015950370953553704152169418196707883898660630997822201662908107805771729726969408448778417725854347538660882954723857193418648935663812562833478678635812143560897644930847969877820075508346910906512927097672629101062181292103587313621300433598681281061524766231434650054433357796408789632484647493829379693001383567524228078674332722528851381255670208757367436666260030321974869925423381059970066927827494887742453344667781329933728040638701218896889299803159258172313595351274421690536128878184967027984925824064239079895145671343066461377802332168487307769540583290038530649779922918198114278015928039514468445128487406079404243799040526570288276533711810240824250883458538316599002902426301839596276383053974007543823551904632874469738259111929640075219874336211579256624483420948523233721794040410054197760327817710236081978167515362744920734279422488232451217357633901949621963917168612817396444517159907392051567297440789855138401073344057842611576668378601849846456770880405773200358379786856323594567267870645188831417179904599672028035645628464200447757907511157984938888968344695077554151255007111742072967624924874267579889404017001014531140588971008862527338812198889705340982109745211432182817689246055885041650384397279061021329307671932526627855514077633521116923505445263568134852355308505030141623472761996991106923584249818548957666326783904406120202789517144414620829412025822173672547068546192299209334326004238154524974226527543612184531982671230006806122355664249124560182045498406176896609962605068572538493941714156598645888698306161959167102889994386553199779496191965081792739373729655597430317396889716933218392021150456928101547935336023929891631695290363140827957967600319306508540476396554108532361767572637529906483139159899372230962724196467053030668814866607354563892401316592131679058419895028587749436864720649973104237977665679467625691961395716824675249349480549145325915440109409047341050570017130915815491809174568255050860262892379259907724027419615737805025044243423513204863520809723950769582832371174422701663224799402283547338829477550780010185691987183257971816735104099140085558734792795436917543238087203529725038629968944732154716591052763331762177160583511822564798308030566010128968374213534172043566611925690135273401264097884972009911172000575585833660209353024232212711300016759491735379620964329928856450442787957488030196209680974218437446597156316045113953739503719188437601578029645069474616190759230679161485329354256613877041442923723182038761478473301137612458158234543107204041108588791108782893060236474060980555662715827625437020872494866700964986032108968087826589178470463562226091120642844335276184573413936094398402288493410275459194118518605556766026885509909402716074502181616716730048878604851958798271895969755290159541527387483143582736213741956421296413693586754726246654665184017128473416631815943253770444944638364364161278910650368354478274649243655210295666001031077334742443046001891510166431578192239451629732620995831357396798538891320212291023258842897090396828195303001492695587633840387545915455912399343801589112468551417512365211731392416038370368969543343997929696496323245971515746210716784905856892437006293293610573305033421743282142701908386677864645723506889377648305434722055208855595218214392624449512294850598330420737970026460696031736464298066430596956374455686533738236835985590073823842981077266191732905776399164312729586954331978050984745882292972237711430394790074831971131011589776770310955394304456140984387931859720725686962225588047622610656941307533362103573265992612916429593199502396049768691563656866963450153424784582620275970542634201239722642975327299763666808533226257486042646218144036367402759021434235184760542135810771291783976139827608768173423247139339495207731063488263940365489077885779436638147084287171232074270250680477196619319733523904097206465991831768884310991534553571421440100219014008732738364180209391404179068337539587133076587745354733639495596231951125102901296328136061675448197630274744054208872190099676110927177539133405524368644781035169199369721902280045135864375402237696310696520932268466650272290181435622295924531203821209176253933019732601343268171557031071274980102492084037148342210338355314283445555917143147184984073433849273960161128088965096231346640256521153860459618963815013987863037199617914912539810653733223182542264819456690895918796258960293761792672345507775457304363552843735515330911090247372587449242473427764526598170839753799462903778189963909702291901875704859245410481163022737575243276578819184224632624673358700213213180708708614562350284259463119132618819996968808171714775852544529609357683600364354038956486987212849399473256876854360820351364135799708642172941044411993931945344001163149955420853991772018637041885630818743339948821873757656492548576643980746615558935398925089476195891033291047542060696325430394437322404564724323137932096603727188243593855647886972123931932410532911009319803886029011507222616203209284066334813340718555681338563699932373148089925089517717973025877263940080439708549196821184798182513565496830128116394202389556249288059009931946969101315916755944596138343081528953247410430673299367730547791736121463828334854145365908158839123529827730393769029115899463031854122054011901024371744319670155470793103619618714126050191030909214248407256247837995017318093661349494355977120415406862635058450435357862749288053622305689993514142701976487133660831099902874043354232671325208452557487179311073143895904117150309387318845027509568744954537694947156952902358650963932169762623958394469417171409646937474095986360456673727080041950068330243043084682000142561043297513513506652909639464388334851205833546242807287450366199393129527860291663182765157742483386817281058126939425846417295983329912344839927502635183385516786690625802141683162186402944420386562527071297861611838756878024016661574339030457042737413411199920845322589323523097937614023018609377374773250515162219554825283235807810761143888166133987616692300616021855669065107333295790577166595296014879744078128027587419866073145493461741829158024492514430261879924322147718800823374495414472487557193327318192282097728973838425263227024671428494960174668298784452544021648833275002831094445770408892495917463528910237865597178519911952578710202378184326582353714991700749074115935640518122963091199091781332691800362255213817116534512457309011460887985503672142374771747231429919029785528167553987114059773561616763250187791616470893950196641183381470338338489108958365197632180039082042727522277052986108176748332196392727915375313581661750371579152934603105763254033328206394453602962043038617509820784625117789533884323087088392035291641886342852026746737387815392463003154188214465841013045229110704321966734130075394200230777568844131800348143329272832882060108035279516055029367191959407308002282311365584586400799796046828778045853645152317853362834901676676242611681677321061330941643675793915793506895065813626012172722601966995629256118131409351459116239332540852377101721747110368717153425025011718327028902610192755428544093811207139651524246901619817151705454305973041317668447190925166288076494427067481687109048587084129260185212224588685562131192017225685276597767219329652541867796785252177967868197032009577325580394603664901064474125259739220511985529383052020856996607551939286577966814276034836815194929572907369806687038511795669416442597742314636773341891747409101462187342751734563363151174182626731665598703095555213698082307930604810651686629012692102696017862938426470743130461715964608366608871653832811922791614406479200277208425425123516303221341447541173880240340353024381096413735787659430051020130791437328528805473085285310360003820161693559587180995529677084570844007003617790579127259685111044268801184860957767254760497557453478057655505572485091408490116490752483742784096194874067915035526669761063561386068359668029439533489821347955770917354612746955223947150078132308100963253398596894537578741644696715182038546419699548758236356022422756333483180335160240614341325830183277992122722916856547820418835444598429507127601427592849752113958552214366851918644150241288596792491868907739541970640094727057808627377723995546565425601640119608782634457862124589432518282425488223953057917833409907940096697391360818217654680752128066058962529878767930324650237548415564740164929286069243943841035610935673141527587909911361230253177584457121563771453972139751138890699856721731719572435721174633047743801972818001522487541649719455306264696667751259508345031777559552303442377756664346209155097870868143358389413931425968282431705221869487841564635006917371744773382706955929358093505667003716090498530531278521261743113650623181594166387222861807058390205960038334734613568446697267804139765974429892826819912413205893762020429917684419224266535678889982296018792147055959043638602518960729045309774084358183897049029614976337553492095143709942285620721010649506154846094896810563241736400960496554001810670060552500835315212603658191368547930440277408908000145973741494604095702832956089261524738196100138347816043040197116500763156787872354486005943654840215099125327228755494540968148509795864902109388179933944573610686795623330447802499105700315385653303265375101146836704050691478478924365212025630113969440494512177923915898885842009573013902990476981280326731013304983537493949885653629042245778292249097315035165471990168531286579668508410596852866700087306598863561262667585422868405335001048431125580666415385843732089666622577934337170866343181621417831158682340119809003475593322108017897206581941893739928915964627681906734163031197550261465298449502559171169221629403206264456130718065189772741138828900190129855513974000687613153863780908990824057317428291798286542664017039461639281456456658072198943962704390290616606665374707076478034655124243251222786854014306118743192100321768642350805371873333327408125378778357599178856823882928713660675683243201768568699007631502787434127935917557962761535424060683885458174869466479660880628768869900901995894760655029117844583392521771298573902627420758511218617172798528090082096761068597549456668421449475294128016602760777628426881712004091535495948189786373497573139065152482861180152933596763741964443560509474817895726438626861993734453641090068076088807251540839310699111288348727444864956649627394272480825573460168353845675060572699441076040873952571165920831230731718534891746606034956633794770426689617699608666066097168114635219665202677385420629678787368065719265099533992650843291736343034014203494532498444285160748053616945213709299796309739510690435630976350209462820032875195443779794677380602306327799563844300663613477996451557978600493633545659709510859673212679412723237083788918470697076967114622173258848433705202355137541169047506663241497770636697920303326493470607680523963249755176612954071581330865233979001756517067475336897350844616889888009258871210434051806961761190939995204794481830166508149549243593342548794507687253341673587464772881970771239599686283678068289719299618748983310466554741776826244537538690988059295901904272552449206260778507372462990392018178899923103631252433220436493236818502082740809573374446683593272253631290853472896946856343308062514358413648420652302066572847949284868797095958720354280740539722867962986936356915799849033928892923079693601822251606666214838275819615348359206711771176328383082303390479118500909904070824821247356414501551347791358687163202530161302405870683430156000426254047838680756179617821392415791241312735687837241913755855175471885614229289029975571544249090003075766608890477925248550563075184861752988661768865194318511843118155272094395142449341973307317269972931999349970187721194556084727411468962709198770402218835374307649660064787112850554817917444922455361795772419580988685351638123797740086080661452523120242860264791681983962369771460902169292932830794382364771521179697160433071136185406922026220661413907957405665067898855241439038683301643707709416474184627043978218658115528570034960171775583457903673681268765692799160188863310072480069774286442793397530035199482346784625315536514298018173658216402234076726943683849476757385569550076171362362001345730970174680837260401734742281472146194659908571762852495494713760132163351296671283879774307981661516938414555169103437106393691817154006389587868363567524871867280516006124928428140427407557279740492436942693305985696953666660651957921888182047839933224536382538328663899976562047153629772498361365626633524775110057772875383594078900819989701907502832972315475511782698078456953836148106219809429661606310026742708835923921691769139115506540151144600523515401369655618107241349463174245340290637713887541848355714087241706230819999297304876420673955830084981444802900256962213317732381069062634281207323680214592798200745599701617411299353294565400168605980488853116849587874728980862395983492666042310796861513929867609604935291477594628600663997479932152822099911334694244002798289699982737046046602408569909586463332886880864682823252297605277357771714783294290933712982352594769478311091920368547995212166964907553099174532486646505477516067587542928741218236548075333149712075610329362497169868281204754274690017248225052227861738195449667688185222876475489719099430584703109480615138989317435411970493812521692378432071068597833725951048843682430940896847784009525625891212080600244515007684143700353590956847247953744629729823547200314640319854879001186372514420725819178681386745422748713178096333078295212260361735845426344017504788531475866233914902337517806111265226573682849590562064859990914287920168902119645856474026644504696127276629419131548143789155506740826225682998205681424701941070282115042394828000721155711370004289310899607721415809167926695189246284090088144124997326617528950599771283314885290750638503135403354736770267556145309835859362478779995359034257281905470455477485169607133034639877203138157845360796206609556721005061366914831530188302493772755658495291671815552220557813370670762657491847416266212622296996072396881462895548193368728547753080122640934120947529332440959381069550027396130253313294444238456543134109182564252000147005874477831005376420131937901392478031054222042440082703425432054003767449112397612426854582914884414571447783035727122726894256960587796728445968167782219660195745339346198802813644748200566552315157541641353450077977245966006659658279643254872283458399720505005743862891613946154249830734660674729693312121489586172028381276565018568147896713986571445673310516741493038978474474795440939114528752737216514874533620213010644407502666449029986150941593184852921864192995576164357315599328796135638002834722004736296135724763581467582335308676902250670220974383089192627784539159723414672489207989471596445790292312497213266169689678337968330324960634729736387039530527794901357545215569152188969836559692096326485969572158067121815250718119663880643877537026163993685885400424235174730653362653672977713536834517017179756369157240348468074925784827917481183210515319597365281900403555177636571717491145873054654049350465865098698391797681674580719566656972409217215454449964270751249809927843335435355814211910195538034166454647663470820223549880229534195081666351797529589441465990982529557183939574111356098866133049274902339092930028424854796333864314665079718048134357703834200287398629038706674571953500690382900144394981395753296277811582582923527037164851315382483961950778048566986409697091735993673680426104178706928303006332240287243870839365760815322818994645338789370206193248934131647143717042465511389207253872833378576154029375355602010134899097181727877136214046111195169137702700028164433651312123131426573493972049383589126298588233985973500605871476260249073452419477583501080032115301590995809917856943565014022091918294177343094570362802568041634286626759013645371131338432754732342997512062840304167571900797654437091765276855904352918590441922516039484273165984387973387150487001424682810070811362844833654055698986790935660972771225653504311649310156979899877762949778879161998729408230512895191617977513756417312808783869795288365113146209657823880420481572609934422036863867927635980565616067905833488732700060713991274544194291127784125628370673798623378372842939133719250843185667099318767759778965368265863980654564985471624713428923403450029763535516554047096857176020065907593538775927094160018271656532453960683522255454619587259618755759409193456651008780621864770486991380742407927846949131821771915272013374140081430647693462693415117840889227666258582313192809118003274461689020744086802964989861974983099479461270806609603208133514030594384690999075699025012262811150532232516946262702124455325056715638694540639808573569563182995262928578340697860310481915381974931931869872841780057164582470976748615057510616122275032734693513989594709154096176218282110869773392742195642876401003295931998109467002399477742245088407765800354483873422290306505264341637535034206719378285310257603772045681132469283709488823618628968935234633656018826663239640937399509501507924930542565696387629149709651140798345570414254157142336902099734480205341260280164317210969706890266565468033167946964912189773529709303027417260774266506643464372461883770241742215641536272900748291087277218325995546577320205506337772936590199155073423052069441272067435375314033960328013266880212884764486442210358221855856723366759652859917322004465138600996877041035974857731941266355931210150014614971439609997539765774498933031351682090848926162676252825207198736083374083716067369364603263438312836769812801886280626022755625526841203506449816587768526569992503941965305556253993869592393866078253669019184317259442660644809456869993412788732402119128875311924990891631668528653537289465549855125210854508822384246343448260494524569121542791720526787924489831298292614056459887945090533058065448802420767584210023211670813710017669718451939964427943132439426848288275259642459988777981061955122856952318804404289538382083437014157896127269043532949178487338589392538916141497806323924813743055446829507751795886535547985074229105829830624751221513874469099084196939126201887453593208177491727633559845296454669997090647670097491765789190459921691531685776274313361698474923445825650004349848752179457046767397706992436130934721621120424317145199998957222517172558918616792712151736538286360083787538186544990806324774786398154230232028423031657954171961887446670469271453562923273088652332104081912178801531686344404873637814021284102753530497060465843346493624427869573649274054981567854035585667780749355567244911677497416422783472303412073846569715134547475182261388412407702984148851938023063396747840114469119222258987779026392591449351950709125112944586367904243058495136780022572306174440000207187398789918528450286980520755919407339625112703144790210056599639570508087770878736245980956224967648617963853347043778715938446263903308538057500191117979382588810062606508130397009537714956005481462696324197110641688971290330820263794632079061601135521902432257897008291596731996263778245269997096999945517430821591286704373847083991410023278847001167703917516032374753078637428904457439304636728143728395262975288303645609637387322903653096190424016206008348541030755073668011638533582492197262029405495793099300145131528361432362406686287174772640806423402438037277880380408346982640871112252525891033757562321282475057103122149439979373550091575134081890767290635415034128138982322279162389343551579782255154244921435817505464298213006022047951938774156570002125911032838839855487673816346265276719804298793564281815512610142702221987027109161421624654155592463680986253725108858947753459025604411554513285787382400158527335242260429259647467335200743365742188251534076892845477558752418776518991649720585643210124161864062490258760457192674054811488469140587920730510900902371129585026729262575629460533993394326900489979000745083132407376070298823963841855712351033378907934794913355495396071205314369269795694223039040462204328666242072947672307608818967630995983428771831020046706360619003495641142755253849136296066719535250119616804299302591690836653525874304260810867153786638856283243469076604653762550928550172367062471738641689072914657294395812419947641090114340404986471227444345413228910008453804050283970503409679913538717967673465175615018544042769067508309018107951741005650456059803221039601513825272916192251103438559313749874924647309535382020487826412671314501118511126985919882906808749531529501539459707723243872648049836157718632614771899812732559927832471832219640435639296064999282594369374690467940612272146820041930471274714401139196819566260560259760646486977647506101538521716834247640747048245249386057573457303012085269738045084297686488390103759267537129071825514923632478770432173747648186774136733335448630641867175020557690168834825731523844417433201519645801565486870431742756908256543291372569732641982399619771072994599598487343449012792677215949440336908783613789396426364057577711027646325489916348514223404258784160271609592988892888470475160728683011811277090292774302455670883193343709074737475740685243013885318074318959680967442246495071889651145170672897426324538197404695671363138634287188339805795936456410037020366145753450177565297476925832539515575653988052980343426817027604821144868017371417830159775701766024855639710790159302157963268849859260801176564733578626007209305226478107686904507203381575651926731456311078577214245351995014280289822357589325157737335661962362891228373971907433700839571651923507961546417302212498819684054239411956418297587352251181245261445823076106498593046524323462820306690859330998741233216654788583417114321154053951976045875345953392112135635742857746808233953660120988613704763154289122666530165992061780418884860799231363969400792425333959750147027004444227136078557146510940901095336282611117345463010337286563149112774834316671686038932685118257983567947915670393321492107918166588532743124037906673532860381314304673383073519045073318517643902635183764241627801382079181101728398117021309337058384878828538622190421348964095577524462104643790507761547750767304594382599231207348479800039116812934033641327242931419689170631935770407505744941649707020746759133127895716070357543539354774142927794870881388574180574795468489017965010163826361995825248980209414945571126755299615851113268798535315385806965219113408307931023668419429820026835541270869422851998419062009066941016343975896160363084133239174611752585308576591993393644431126905837980013729323728773310105832908034263749439175088953362817286441482082836766985626277217481221173980678619432323644209117349412329742179218196101626309821922253448459039806458959452846935809017100631569041451725666664410791945436843934444339405346229103036774217373678707193049669283067460312295014754171428434222596365231527433261749324119152372989059534026836903739241528014418758778353471247409626361128865490982901000245198749849421420015250506328043502553003372298854007490244782761418877691340393812265792587020604041340889082959958628289749252817474373984265639793759237009776311605384686853001017612993696009733240025209170986461166003484482668234934704956569595977063033815189659056853157898611494349799989164855005231077163526541706991397872210928292837594210418572334280060661330224262323912035771472155579423542549697368696052445783826283460715495516238913026181596694094940560207717462177621897375592595103282688519092806687932100926922971684843112570177067449658716846988122713745110812313068515902219945068769833220455151201541637994199643264890761412825741702569104212981816771729148898366491928726301544504203323724838432903292980394931663955977155840447126675322761602654363842776851615921874831893903743068615685057595951163503317143816054931589804459313456765583861579670972262378997241691005804846794493219582606998076017457288803674984092658425168949218334593015785003946060134484070521330122812610254351896276182650827539728793602334679884364038173120927672459289673590534362529511156075350576293118271725286002379884277764656726251552947072295126865825932017831916127271627167484522892337720841463280040374309453408354364667322649280657910448976316191387000504416376869313920601286567183773286347523855358031433131722166022838502427319774264025692153770664772890619285995311212352557655398588804481446895937486327527185285898644867316923303241061949425830543368241143775298353588735801677476212821162462766164013462584448222214967826839288944419454823364489459481293641280105694528956421557520670473931625979622321137962996886181087221594152423080216288835008041101788894447715886046727306402758894953583455489651833006119189422191155854589681655596370312521633708357355784663376103547684793717985961645035116993864818448623482622273359929295620335613568064243456751176754760363879269776290746179253094853373543104234968442689097535598803470228559913100017202293043136826393541922941772532978357673995304629703392085654119904440970576917566631974156240030027089284791263080090211992995473316188309296994552720012678478633855389877976116502438896142441541552608436231723131739574273059639586161922705042293965032547887461959716823991544661158075561953404536466675300633544004852235520864862285883939421795100366278861346572262212377783560823770632130246782979081264412993309516414570301968798348571431419273019238249352047111512156182270125285687906727210784081870709300142799332282008365495829937654131587607970632769640784235181041139876843425281948111528540775554098326167463433479181086227170427765849209871812035202533076359334995112597247321302829047903213204560406554742747037201311211518098732335459378267836425502529165357684952804697110168952669789019192810131566453084221952194428567985755557067633411098589815888315374299793388136106116565447189332144090902415938043122158364471690524012448649761441045459147113971098966205317524339948185900408141929769934084460816349446500217680123949807298853296175045810657704568415634650943008163370276492770439421858650262797112623475867792490565478153816675426727885294675486791717222117719842355398595287310539893779864538198110287434887889312687002882355993218809637951609231726582503654574412217534587815949106471371776611826397667290261959870467819189228212229646940071018249641246206490065411354161919064651978252569073472577315413806238145652799697011696747268583189561737982156572704994249019037326859785331076711207050939386228744443172189380959335800751249721555554532311377860445608276317905227940482439637084711108133026933576676435934584268437774981298617530827854725075258073148289075820521799571402147943880431492669507541903243799749481347298681245128450443158389452321377693271002561321050046372371346991728911176574938977754301095990263985547550822605077195490537027222430319498458678620493454219689682877529030311401124173648722597774106691397663602328821488126200948248480805209835065639057852087166623948071529272717962613498338938570859780524225979214706039532073632089537930302352861885722126461982736304976883865327921100198729647421115913754168988950441020907228593157285184156946748738743266818037733749355911125219468058515048291977600073907291509732579152282906177631529674603612249290695932159497498750460684690783579531840631851829157797685579727431311064162271900020314214022887025536687588045094615938585066358728976155503910989099652319873148792023166463236358041991620785276417138662514250767674347736102829002889611917103857844142324332424171280753954066898686928323889846230937007246487230217267378675495077901582352855976887312210108619231336193406175435795013610890410220159620484498950770292925968558449345239242909072123343334881362307121666419620428218933265990259504913300371473617399177346240553458099561235109960478318292873406495590276657548765194300659104667503273554643504467025393420824158676445738342333761328083127319486982067681434004428197542907893070829073140130188370660890999328708973854392502972413987935115176255560889897092817907668939087876335689007573769877526952501525811302940328979980593210002127296285611995878454577198653364197218040796553084994175900654070720906953902642451622932843351103741478327975557263540039748424695549624001870143523733641332573165249447226331592199390273843721088141851711162907904251863303619751795331027984332760480775166227121781627291749761234382473507064470987946266888587846327920469316883233709649445335781908353727311910862177687973442390459887097315564751224290006926853086469729693556085898453566193449582200901596116215480615184654409310613071341290749169387250503150706167412072736255833663081953214576947222074338956726942155522675778652502174537616081991191468511397254246058908657823586614336981610767659937541507266783362829356735044282408274791289298948409854248413308659541903356672846231092848082627738247402457533439989698479488500347955607627339359002209668360888249211561727047986559899999475916417343863617472558018743876571508582564478375745502552767030851413682659525908391806584100061414937085368857585890242265944363686496537672660896062178210915835005997579907071530213061214995640928106771425392796516582328641162787903612043887321755683594993148924471415629069400636193736797366808349544491505990450212560628099123642181764602797923498433241243706371223254726635373234375286118868952063320727747739879345093086914397510122338652485622096453207016164031503635780050862671417857028701479162706134279284503853997851947242684945460822392088899563477645348543723186776868059096207426891966734565704270642193331941465262360246830679843632093568411926917471915417728760321213884618852633365271875194550181462467893059194473916188582861173923728516089946629111661651749393154498141741853082733449049675673883011045687932093216624346589917059103896792374548427740676816971248062997433871646233791316006226427246462362960177883220626058271055921732144596001536463234000271052315669376148507508351580180388951163075865547555276442362304752205239390892177787861375209086070511787936218376323803702522107060460997155036301747360476173734709356482259334444961845043080218254823937050547714865881422663367921287177017959447447664133601651428120455221624572896334433230382880133118963488834413850839560128456816088663891333047904502302566617329134923956535760483241562683444920103940273046078468810289033881976677904104720026277639830975445368520484460207166774627681508251402271080526457099899230892362313224079671011707595599680396751132729244314798297373262368554573655371777456827645171298017319495328602999797111003728336416171229556777804433594192551723440304252245945346603188009756062376005633610772455045291626951176148895587454344077270603802300091705085940534630903548546138037186421592477543566050272659582215629692933576443269836613458901963950747655786805556930099879973446049701706392664599604228647281022770866762394052037756419344928351639067943139956116633281278392733581376666796247030966218276314949565197680942303948673158275577305459606188325704976429783877813585817925453957882894919560763895285870769330176041866430175439515067183396853567494452598692967227057670807378500419268273883986403159687256817109060768823753261324098343813051410050316507541668757106037024417191197811250089982669755071370384711439648128604713851753547214893010391547357119313449371615919728961149526153947713040948793363007739284384634716050032723301306719094051794067753519326366158324313476671354263139655536540289441814073819469156508166590837403421636125398124350564076959963142078495432138482277923206372339364784091084211427108685818513231351514035954033487780389885687047319860685966960174367211534803076045665547776894285184457444150223192946922298659845703187750318840901094970415666375619528928326486857342699828499610900384686388576878371758622482203621369030574249215251197908308884591582382604913354564866290789287432950462933088982040688086403218743830458986160337891528697654079567123037036632929530200828740588684462617354476439885847393402741116566510611010145585171401619870304855810535789601976284713537005318960149549055137277338524374166679514336042234995102811147364685392306348951312824051747371895688490140142669733033573293855568631396949252127051337088200186310664138871687844685206575198135831887287753858698080610736734572089197222370880172680759703324704522892439497427415421738199500053354843503298601965792822024372037645075275445165336500853442180260544876271409364538936450577519272347942778273047166433065880721215001187373295110708896444536923594675454452779120519806506627838035174459297438505650357306640528290693125778078487580062281273449402436856227290209110180467141216091362936539816213302519824087752341330951712748764016481967538628707173231938178618010547042034902003236285305228318075778305559356883042212828258966877513774435592109166893613676604370153084546426730723937929528954733879727459864593955196405922682583571948487622282780925649634410049354843990733832612604802348884767453200803483965531595211449407660780725143572097262169849346276556086001013948200777398637083016121885047310854220511870259490076925987730108642299652728764941455410523707456420493984904038575009749740434665478902571534780476738485211115841491867005595874067188501236017546609427316194501025620098008989517383970239896446087152353154750625322849122736888938983911372856656400331148706722036060997010136417189612742822851481323281350797786550495805467593497715802290114052778593898841361207895062408519052936788254403118097797247606172460899949678964200041559248063419810063447959155875962009812552257498038315863487045464334153973231878689022075355752557857142831710669639302510875727624761327804678000981183956113099871053810925989537604255477996315393107450221576383166390426224345853308307271334394836369697978895913715642713062352559514710356806930155225739798098089798251794083338502919378070974343751993898553679162122794555893591037830552884606447391453827955149570735933041090191141083980566199425985307574575893469367050756677785091391828059044853230493270240045695218294405534227551482558187253514267638372806616870877330091964709187609098249878633161720682872638783278863721381759507639594908040148248870785983498779145189136092113070793520240758014331861741618836302783512204231748761900388457188836193551798836095727097349906650683682977996188249481136380157531393593841759534429445598115880271334588078154726215137330179915628156774778298491417755162298290738121621840267336569819333253376653728004636428270825808334193514951284721873586995101229979625696476565213902517832464845554187773573897033528949753319722881204664728221482875726759921633618349038572618676195012725120917971809756526023678079338613255288743024733054355757942029864434141436881362687730642264635342408987972734685167927002719981886772190608335982083578980384387944935423847193350936115836214916249499015767584296837722045381755258260705857597229154323551806910471198937873771802745199425449462778915060504277941973285016815569641451843392136104111452049605527660417820576527230424770907411424505045248728924317813307106318947661727718520785841797771097468055560042415689233052957220029745040444261748213465934985309221529247070105576557224657116645132545714122755932656780862880562216851559739447806347959559111695986160103212976392554443645893121693650799320637198583663143819243359508765747453166179445627014781857916001080776607641457159485114371476334024072736982086748454622045141028105761057735224877580480908953220885641771694631233607414222941304670731014038870301240320591556005521122194793466371203226902807874816943954467613915209814453143547216548196212877162555252495143495125991077423977918739090026335628891392822172485112078051087250566574265895429423693347293035734928349645899670830060007992299150555167878878697233564730079747209016470726981435021441048148002144564241482136721424035619305615755318798053281940097952887679576622420827346921602080287920721813644283293854177919988331556186009305002730749176715342482872730172162982149482794877332701664524480718700093308577610612910225207266889353197394781968264953532011845935055851476214739863265007780309131722895309346688696104031772940827320637962378047213779037799062868039145113732295757499789615497711786850554032306324134942140929466192977243617274707281395678057368406856757188177170192613876745378484711048052556706581537776891427307305333493809901318115307136554359631841770358415272244969471755652689053561267986977859661906622274793030263265906116175687036148780383507655129369097310200887789516399799055322183227157431742833042500436469782453399247617941329170310544168046926090543426076027961060683836498756984315488073105052322974667808524167515936863211560294674752175639379717854567845999685718738668299112791275236364716883569288342047475136504183130996477789392794760024063066188053231986742984714288589733876504943496640813657159692802299507502156429007086379261060495284000127813297836436264820596027195729761839768909031468179085026220140245909544888805402045457184622642858056520216201125213541546630945129437421091870846413294857337556901685790297432908415250876793991961075567427748577235329724331133330712663720092842870364969641651668669424582039569421411067895920108809824263343541445802933657351824474063549447112589077763500823937962923950019685256539228311715620242849647250577567827820110580868860473041799430035368923222658284977481890965634814529914642061621535771405786830856942371112325417962688612133857975526440679598595913806352798932417645549644871106727009206144822509793321661914617420747004643641651647215700872786690964178409301589907464970181715275641432439784287433668685591016482294308188395804606985278295462284023313423170423151021110516622657484989390960083759785544770313923245112841142720058688747151776309822339225384318023763216482753762310287574472673220798962440869063504429484032950790562450587804041443538141303178282997483003111761338478151481938971674576309121703236624524777145851520248524277505948148589884631358548355362370589751449184934056479325304504447924081491528714229103070734429277072421527261238161522692275573572253348572139927795117757601250375714615089303183802951042100880816255693172221565224946256687007277794811836860117104652145987564327125251241269646538000473956151863020192385386906377316312040485206717025721993177679970137391677958598452888871333820600821347440097046252313327855307790244751225818039205328189797567688371344445877366222015402872245197017218626773642809950824045603912739697652392666927064227297936602962016427808301703950396714943056800183214989264193078324359809687680414836028145000047348081285731668414384249536866047921016369859850610244390359923810594845366415570231024642677041084000601699623483652407681431251278498072716432674211232083962206039978576243186267288587524366209699569347460378414686637829803731459986678557272510620055474205882851024283886955234309044225715144163335695586124974558883746224068859612874932099785599541420677820428104956764778606762269726081289096820268918110077137678912360946556718067359623828858442223830091534849998113310411640690557398219850432056772948074312398286709080520264253380948904139505358702134318481438422305617432568598537192816138208970775327073898442282198680671345666487712513236323569302282873816865598484280505063523260753301103245966862128442053830329316709432134203516654665556553245522293220509545435621415051690335568274126943904145985899627380315050055771361445906089355247031804910146185135556155860400749708765846260942453606496480284879128266427684740151250366074180737792287658130439633298763531692761732950847162221133939901208427931862191556431709349052190102806068380276625016622559824256137436542592305674832902876417189049898491087969752603549497966354976525092070912195209953008208151535589531007513256320320033471311689852873143106461127694125011917390864271838612905740233664291707707682616872623576608265175687339844841583607365865902669071042539348705826508040221955690250700928822843873009490780465581162673742947888518182826201327111592385150058494185352207840602644320840057484403871372691565408090936985181668659536282962446806823237517397589910908593850945764422558818531202055551406092305524954101209798600835120499603856475999484213071367753052395238176960612306642124104110269356969211422084331619587607279849789393366498479769638479119854059990941914143004175520092068187516158001503774457552913115504366597952312573807236795880979478935375880202457620189750871754905392202450500679764522368102544912359229968095075137261280231586102514447784264699363701587139343862359694702261503313142890665707771596830629230477030324504543632612500732902940492383398155589689534588839538078967440092278445864311238881651749755971574678230656452573611846037169529648099626928251913594110801136484015284793028227683042725296264347472380775038721408794880243726763383031659789511044070887522775510354476694075001437952163989778879118694625527469080281091047761352893374293901035420163966056483265027637036976827820331072770396405169229894654837431562657575895116639729931206424165678382929858004364237334154332238810158024783111982894864898591832859143109915653905089530313972695926518912208419932629330549532457551209287985774513608511029118321253112293364695715238205542181638726804792902390609572883268427422481478572319715885225999576445873420070185492196452225102255929285405724935529572908786808748211151398755135945794248473276505511394852151822783267323489919275371460972438950442179309344061242071936999747257565582749580852550475079540156190601849528903330039363497292813724319647310322679390619846816068713555125879161062033657349887538230300963714835008632255387747822572048826736574387812916096544716842151537379073904198930891589544422842670125068011783719083960001519546907307769862144093464997574079022974047294776277464061837347933088799706148955030415778166502256427458512102674613535082283410669589358425947980348795029227668771134335149866010758948859356671764652667599069623544430551218048911622903396848756151112516269780868516597167430339604093443325668416420510155801370978744053296876475501545963799245430451235574435271805687650795580243225407636730377561173177708860300724235131136325775260526418636721605284961210871931316666584648340678548696952564346148171649545950963912880239762921503503270017789438425077784584138326415180224355725320162978005914449633109747633449390693506554405981775694863283265974572244694701288754650393700816340356810796081990185246960381327501620434160144178845901411541856184790482978301977780350723888327394762296744539063836940417360819417265906162103481622472103967107036821963525915070667126715889974230099692610671884689661010411685599805689266701444082089863453261694961946567285357956262600235023255983825064478406964386797051809834477974065831582795451126973354296059822430825696624738343700844479530312544059636265010737483483473140185627134561588709502269336455350487509418841146119148340351781742326491553095489892682677521977356898109062747397147809016877665078833122726376845052152586475273228704263573023796009228314105045933514529941455861375886189079593305614619822095821426581486744484572589720468941670118182912175196556799381618799050591588903077906804745122448382372964968415155443898111930476957956747944126102131516614424250709901720037535764422761133343061070803255940918159756193920156171905595825727239865908886504655113895811511740065147594302780228941463615459736478000020006817716621407604239710752293006087512470063523685108631834237243801097304050785225629097685816202222083394138994423716301451155197405572043767769326944305605164453292489368348233196373820553765779501720922442811733192933282017851565726412545603644421315431850769592506576973307717610704385492325134546156847961115086842627262723665955447307570615347296508600412025728061595279598207811139732135274681921703279334047620927769992603198224080377556704803926417551134105415713570312963853328456833005060558357157898754313967510172954174839976514865500994042476781452465239096665337163212053544858473284906775801258552983187744732658585808859844132175890700940500298168262450176710397852879441519272077716051425080522628191499781021075912855320380114051358546095394586946750999211010245037605934996336124198063059914857074285002959057707091087022387035658378286797056918984338343021529784015713056866662234026467724371795957198420334302567638564203686766977452817358082395503016806975866962278777532430851379261349973289357744692101689749177515759895277995480812926535538071252006726278188923614163546556567727743319036795024997429315121402384115420767423341007943377313778185347143677123973449802158023108812068672043329084334605370594851902719495923433219599931590214265702502834897808447494076608897706060895268781669681334800785687590274288024127714423287229900077704517254385590981686162909950336413287238092011688709674751486617319586056185942365266780893558288585056535254255710758415801864472261081938362848498494149558730674988678586623328986117098310374736452250292065541826850395821041093747581664054958575386411402234611099517042719090781316062458542122253605444680821529698100626502572754010070176119951083300656909944222851209576102249886288605318007268235208076667045203931195346413619985907628389398822173265823357287124361284808108739897774854330157784088713286363034900361424773736803105540658269825811649866953450602748180464771725195160106842598499778741243233547440472847377807206867257245078701452620228822905548510111771834240237847262608837614107108815255283699677466063372534190349695524185891779869170493068248418680573347744471782821083287763345446785676733813317840941521960450550192733765792170148746553902148188779541921053991106204365680208178386192519768699565723139614978067557733346012744226133907991799294118431760209526462658585262747476700348455826297536602133891858691476442937883274190030689945969839710660548661166294213868772778014823233008457676619620634682960928416148636225862974685762838728136956425451703790879872246788184033961786708618865412223242214505541543500267381713312614479615705473104947083181563250441145747211733259558408996567236623684368388530596734426482099871611319217061801972366529735942237411664745973981250817453418853154289669832222905002187592729921669316817151767048775168645411716323719422128908309503447358379096021807138409358428367825265289124649643644959851542452142075976669835823852969629851166954149752313193039532146831904907904963098916178293295313333753985794197023963279891658979999659739014364194464318267063125427446648292976118314271902609047701129385194039487878596639983724865937449794890346374837507512454364861660446401491111262128704668278932538997354979124179551719529532205824216476004003073560341480513024917294177987441688223950118590031719220526523664131526075655605592325110381947415436216797122550053909622755816949388238800559439207798527394212485665513585439129107766597307545138217637991291394882360574383199271124542504501698135244156387507213088452345372119919034462627275737332271466894486496391306518114347876436595477940589396597666737068481294777637752445313002002429282265531679975260081170876281674969401978274482232611037391892991709134056344772568489842875760688110421061485332481612587272181130488810470263672136041243061459716916527849992827306698975475640154697155344012755927155598789427655768390995035188413621949361221056864297797894598906740756599804846959944105371048544604785506132071111272710589051689489090915294417388554506976929884421690893869747894872255169736931665496165672608499031262886683238812234105121696523589494148344255786968384725678058335374601821006114023109228221798296352377889122530633933548847946539711100531897950405277170554263435080753459017916683995226982725448651744149174874689402973908564638580938178408948415860086967410661080021039948527051252084470085854367812339697057152936524732586483684420419941543822345792688147250481011792761054631284756834177607889855582192143188408446669462958492630040410507298419437792301338310463636671070620185719492548422360199972859270992022412500962850102323943978730438291370086530945795240870604583932564496613747516522603053823879658755879819372604170455587192454837781154646226245673003586341330872237153478611946701612320688385828725693795770768620996012036272092195585155573355802297903924193522480392596839524155181294861699773671582094506202908866934610768980307151706995099179768080580130306501286896088240005073305540385632461859322555058747094353540271225158703522710400640632725161929104750279716830415314552088056838676227152590180889677735196817757827115188931165981470222170586107053350548200862435183772708515134369314642542189675794816330199358079007896242600699733970346036666475913612120958404289633509516150102124260899045193580934650268222578315900885634131782815165212066175623781483530929992351681422913294115761106813507155441251419323651214452404455885170969651685358881498497448312355525304973830431331914431087898715194111178199108540813745202534591305115122384582029125351913686259522205638269646570039908334721264964593075826205172277653991812293695559670823611575062504723167883031796741686532390223983294339843917495279097094497682147208744243649694520519882129912657745081281106143254696478727605824331603313291537161135299463566790065632696098483806619932798492892609229456547148831239292257198580485917952313504972967701412474772038294439108378903555489556178971272869951203281469075971889674274606775231314957684340025744080024482899902841638911051620383195602324941716004091542099633883055154660871305753878383944222682425533646072084318503584254170141984226885112652750400240773393733791096232038611378039511442873328904634827147420177031171583389313060137079417138559542488406339341359251359726575864956487318041699283518967454494455453535776850655524338732901361314365954379976214154327178373746485227281755548959961424020794423672931332516716581740236473270877694137634856872033635030578803573002858863053393171822376980756884647905956723901673040492929495478574932085878371629796292001947784450531616178192920221076344347429412668381388257680009449653530582829021030805797368290272386476948329620813213932080144504831245478913852215330360055195006214464188712436377678749362543707861305294682526083373434933247792741317336108950494735203968467701834879592832350954696195142248936388549551723460811817500347482358602019172249334151784628318805185476837781369630022540833315762024891738998141150255518087442992922535892404293376881038564565973562750067754501236762298122760311658154258631663735499320511707312609934430076860109001945565238247358021475008349139880404522055871619735336662928150986925745433355949883062191279962818163325436116745947842862136610788143240857824875165262966145646590562763473157506186940997582373041544221633282147636046434234368442211933996746770414614727931678166602517488050514531634807592574296336481784574303845356956007565181673397995556019107524040968136369719559299089491851682441526160169632040272721130462776510884210222654064677771001026143614997724153231783382527464874865044234980865817116608847717753952283726005105642891360805238306706574175806632326245341118369031305953681187972697279944032733307926135592439275905712843456514931954665834961658490613580151165554766015447583154855618564294469918576001969981738812001723959919688574850788466042683313952257775305492416268934794768789794319821483221969626547305283064330074329430289139106549213104674137826383415435770759050313946651736143324001238779401298864202614181490976106006002643629572965423779422887215038911041321233795281312171242711945587050483959146932267953984788001143023040924493178153429485582016737118632276029612747437545437680061323411490042386971718412161283773138081994968677956092380630940425397861419458139146238044477550699606459540451798027263179037409884556821365123092162368210824978835791240161220833395630826141233272849616366743544539907961336613854925959902218974389727984008814525156945135408136312078916752374547960984440443746910517405920827905996073684972187963158428477483793410851744720617241161611840220989183662486159948707161104491893174531760770094843415589476134352641135234916478817425278061984446924896666009422875793223446533644745536622460782600118823596380712129187650091271161444533584414440220652933360640596272316000882565505167136672089003281146642586455172373845367575832858071059736917190223149924058981481770104536640311108192991455304922230328333330420005072710958597417907330347593492090352950474518655123564704349200941547487138046546613164131742529741366237110162910619128118518921916181645513863797170933193377236738807351671328962603606912461741952757657610088985344104559159039417921113006121094878879030995957368328381379440956291759487567429612095754843932789330519709227776122665362519796098097306819876867775515493728858380104349736280647321535348206854203078009868401480137003882523373956885334635430298624665147613533383006120389723546529533581241282152021655650425073134621939931531213225343413426495885937001305910683601719045360204969023567091390884881035664393472329899266489372044084721034955246253814582538644028854799317374415528939504801808214315349233442844367143964561285604589645072031918130266247842100983621820135918193450075155632628844894246122726865629616387851817175251136825500927807478927890042334624238650161034601330286497605813625142696045813577568449962730145535033903842038000672472321661566087793982213147005712976620381728168592210489749305356752136092250729439607995599504447535284456959432133495827471870955077908446830598030658342663013491065317488913736946247514352613438749087987854620754187172029767109878529441449224868023433407164303757921204159368493211947119460969730250452248794207343725444572885179426494848226390456930703604626649132677572116772997452590956570612733651833798602056038048929882688633805525981808429174991801672614547205200596837380278422937325915354532059887137070624023332120930155983466439455260373493762022412798157340500371632382898158979883562634228233279526713183866188931411862694582600817098715388144209673949513840863240650509986161305453586566874517852977512008917949709494431267089143649337093362045821706585430486834078350905343911771563317564798740152132723034034178974555757590298734723490489571491882734710115913031326490645445306008865391228147096155415483400072500422249660324754050209130495674811617994295809759938340957667854852670932426450133420229781692420151910324594417284176711103407522264566198897975042688193624729746589833918396278743768917416217659519558149445674530881484174771860047386892919523960978288647076986314354212002600024029094197831529606089561900843628438505623957605716574620104975314868788745458647330307005319485820969771812504339982003317264703315136772557788032181607245384949887065762138313893767313162660605058523923162176302023180177043449949741728796599722177399426676620771954215621341475494694534241066134438059274720879423854257187776824905132446688989308673926197281953540128941225529626654967584248905904722370359254376439308143562839924614775294722105206799033209240792770076155373388478583062072082155520134628954010534791524865119570801374850419855687369012440883573804158777928587419404090624492228148593487848689860127408739318415471649618474837906006230702341534438297520800858422797355822977350958724594987810435858747263692706751290658503034918553152804445482137678993695201899072121989724953899590470680530764619645599258393280071302041604161874367016394019501955839975223568874412491119207633536188942762162385958278387501597151221142527080870880121893691976078260091982938779866295055686650198630263175360483845703181882616691897375234358426481155959188619202802629437731406781636243349630374719136069106750871428215286406037790965175218438872439348982884281173171587028587374050504392606434288716162909912840284016164680036365168267872007163811363499028979672773109248263535553224941649981980467916824839503855593820146968861260570033036402815752632095199224127486427955128488316919650134778442939571155658164588771196575051401827481245189637508141786228330628315561290404922535705657098600317218219163430294467860855500303423473022472609474898130893981283263908128176724356879683373529536217855810374997440121281641669618161329006131566516222391660786332807206063025295866999505328354965751857017817814058419104387218822451558037259857056091987525679898007569119111576917807494311224800809070729230529131882579376629650270892022736184503611679393405504977355319041158227229695024065984628638203658848597392786138519927072896652425056330179901238620831385432263656453534035131391082319004317176324134491063105038025437892964107295592676561318174050252990971976391068429674039429154717567820183051104907517204107834724841081457230915959905489298445305894448912962394727660455323198267082789511151771535781842962529013443159068793002150683883327817417018145729099762002620913046246344925658833341646557978560480999489260896058168904322967156546705408440330260880030893127345112114582674825037099896759269154083105726591576670346483004872282664711088709875799395891906198484910287115734167354446308692667957899905154635510660353244327143318224516676551426054667067782394636613368004365552407887750506707327932380008065078149602008076262050707668244954005478204656761860193648926257668598536547242744912808600253599686867225799435896969776476602227575357546573798637410600002290879355172499752539406959402420534498117390808551058200704123897160674561123716771914769049302586793421953862764615274080301289320245342451472487509192047050088999397799312119870600919078882234557025206897117639858413397425177827704322571659332957671371823213708080009871846325687928315371566504443339981147732295063897533010561423257692687094384358528714685544485794537230499081317411123768846682061515790504917225866940310082638567709485340454146040567071647588951960363878086586394381643815503216268651984557240152614452862103969995731728506323593719204088722438059999112099318333195215372712132757213807995688481867596091551554055451358074456476595802112521489747690871083995624983246209099940655362830201731477848160138392529413975014903683879950427543740672112447625251368590123273186044733361841393374328772244897161747977946893127863294995302788081752456625943474664393104685692758492049616920437508993982060093549890429119073754676372345282118673942969281890057464739820576052183439175277139908492287675699198847643392094758345511894384215674828478713727972146144793490148618811004995577057384623203349674759936083170669601319307253838734134115552413434553693843525287756867327021526654677752963231121823530563514242722715591544510247961990447122944684631527671231439689979232087136582752921116797954087272508203601557997969964797087831028030868087490669261877243897534543565301088743713997249718017506257604664285836457436538227619682090355665891628876964767966232650016728561644564267152948763457263224850359286207648410207224314795364393896365644009904886608176121086517695157248647837475326980372980235363509179234919911454039267052317907370404146931527923001032848314805992533039678125637126172309915136297817131249950170196596050812811022319451319943822994150711825228674800872235162833878665464163315914978410442836491004470299020239849058012420018202126372170431351669651960079238312884007913092199992078370442948610224430079976811146337455955426651770062307347108674671095187901556728017338610428517298385725192311291014944568329555154274337184133771596569455206972466324378127458715282055595704610938321220295869845338932742086074479903161701272402824000690571246426610483635772197326775399884307521290765402699325167475309685033790201091357708558596218043316834542269687539808248060713262620357895383516957822707178085691826553627979316336596878012656111368781924003427014176515304268269127589121321095764567475362260432426909437647768988716299416730916494795332225912145523918565412191776931984747310320129489580718177694623780965014008289719347834192964238757550805474119783646866250227567394904614783066266822794822474233275399656259718224195152769330080293871700684107743895089502331331493453630626406754628232591258497042509317534255050638460929158764663096739103550374047792946045706820065557649207825501729925652296223803746023112002148753391504459108198042493914273316818671555205362766368776573081142274331204688271183838846148306007193200683883014189457050559078591553374517328078663361781223091956702096454676313514059072291124862298329515382876310755826564165997285342571351326379171724287115795852472979524228734673753388986000335518960508299672843195058511034181119691200462148826731462379697607359707603622930917734199040761426024137526141087518133731012572705690898835594960088766613734213927054688821605072281158492585189713552586908989918412914705185195261271586502526667374829309426616925856136280242284431899755264730418192696190637309923691008970198361611091421374882894602386597743764424163635601014920187324471481647133893635996462186082916581449660098212812747512467187317260672692213513968311727452376644435194928289856230226253935124919209364625056034312078316894825679281969187195830709984154363982171488077612855925335972562379975255427064713020872340814514289903148521134145286186308083774522300108340664433865942306171193854357998069374030483061812263785287516429778716665747402458380930249798583181157084372454012058179982885769524496747782177551842557860862037002951156996707193463322187983843630378489529084640855216199210789745785833226660502896534338547348133522143532419592647938610796701425821822081484811368986790762428807417320175656488266335696041083702554590720204737748853131575136031305410884189640785599665501223197190759513462348808797779185180894620405400718417352717071120784785204826463153785486608469167432484200671166477444363833206912851590663868954394410131724306065552828563038518211197279911420457668281835549279249708572953928374823638759238202399375053824246600448699351465181824518106472460337901241295812425990950613399038770144256065466365003412647210546431782438117437971690337335610578787666603381229859602388498015329585202651872137684307331860772529035252863470887082283147662587108413765141448871552129664809676222343493365276284129300694329589518770723522141778516228643640652651154196173392493446785572156559572204853145492061412973028095797766049476197790429698771952902095021423987606299551608367396427359197021447565389696151863087062194413556343633157419139217746839256794059278921144718172610162608584437271808574718820834488232029199820884557448355083389353134626099968514886607152571201829267633229347330265999998510819461396973376536546704666205483404749009481571352441240428636638492230004560918542000108483432186209746257793957946351833760285587922385135019622196585792222383398139549740334485096591770231988742499360225043226385007735649055784233158058332078179017001673153024537066980607941152897255169778716850673122551131882425897561392200286338702819475705756600822333294094234885458399416925275534469607062768116813768640009358109504494518085445025152975793410032656343199315154428033883018927040951347901400337617864536267236628636597803328221135565613444599805959679233318933416626937070553638090613685836807265826263652163490869237479337926956668731654645935934135778069682706080950034906630853970020792834611499793729142929312190883737166305216491032891246036443536114212720740925270539871877739030884748719134312431173887114836286845376535227605410084051957653078466214836939448689412350095168515615188229833183091424043203499050874961928863273706738257186096228760720884664804092001908635615412378190210314162793539364050196288351511716813477921245228169137051613064963169676333500342263811067483446972806518661340866764176556360537602833535829781728030877094087892324745701459265720899012555974261773994867177640344308289749156787982842841162958467123990993045290491773588829088606101999430328228832589134298522815471971309580044712930169470963344729973694844732908741541123429553869134174512333827358936026343786715849634444803352300527253272980047574066593518897928944312132291177684069795894502197479485286932903010556225007090506496968352334809677118832739242166880725215723241755564657281007212132897547747063987933804174941029686629221609902370970342040767669814953827111382116132390862932208106599629019255567913516447412149427511738563853398822532471950828206698415236187615499453995291789633441220453776128437574448378299029003770292830101620595500951410226210797343355669778910355325690106374684256451451757388863434628912083545277465163092533079994984731488568111474315299800138506734894255355936689765173691709647314502182443635145940761026305636791378702455085549019999486981161067658426996504584974868751018144796189088233107150300618323920460548332666480802967415852185205978324759010223388497969472542681688834745699885595350427977692315453949614034440791496768355287162055311594112272652728697453297692686471963955577296580941939354736848085877860288825712351061815394805257223404513507814293012290209493187291129182650608437645163600849406287131892871758449807180102506000195802235966426494768404901392112067015733698696247300203077015120704836254828136666560051914712884073041038308721075810312063084169321717418581376188513513232780011349734066327991455242644281417150268216111674600999746404020083726398649746844533236795361771982465815769579026865416369588138676506816807436634405447558680313022451153294956015067608180498913099998932358765208751437155340469965920119565685025825451273794144577590413142447338256903625400020509231035004458845265532531602561541931720110447594378805770283270084521015736549689442657010266073552982319321637309251444843678834988644543952965618395091827931622281494886297035473323442649959764354529270204163324347460210200294281486458316961423059974234135138330630657548741540993302069370326668751164163747496079736393677800866520893513576187387258957665781940496774019235767016419412507723493129196781039257924854945349102921394599487235567169306560566608152799102693489818167489879954406153399173532183474138111985633427026549060729987680981272499377768320144599599527326141540562229879938785533718665773781109977321679234969702494727973254753170750982370862121399786374770779693636476370120579564410606923112523049882858417128350611420737054919743716760495485855349445351109076379290451770328727402199102594252881493756149202490583514536516038534760217682541767343553434755238416115218210061947444130025772785903920618099089329749754206415505904686337941717821540827675301971530918768769785742961105527399665188719837094732979244991457602915847798065229295821583603774175367564766854302135131041609153273514340978058774628359138351099971022623818937548931755113217363329854654960029611357431661657587303871883075380063831324887974858256632709426167841171537456472737426423637298302855542313943628918480343522445488638712762723214794750216975535333722356473254342902075398951934896574865037644095996593115083030925375766602037121513959784532543075942903718572442269451332908430892644560918509985960596626230971943685876245068653005079603656679481992447400557387449719249986341624315158875211390785737523957640489436079784382831557704026138488758965742792844031528139026089715763900129289226996022352613727551596534175106174961175109916857911556830991944869480225991416443799768825073487105294259205301142068686429817512073876550923247152879963653471386651239337958526289546517270339688565552146993667081168946752193618979703416438358394359284339970365387610083416362183878571909458489484655241074341471734915238493699499622445021435635041845411339574001631787446412367401131797426115413287440567328043568557752577187943660045892070748148097076503080382318143134340500210855788220785249014267861160864938041597833417232921904808173541771489094102404709561145184249155691397909080645755624933591792892339556299453743152785951602355885491854086618545744911701847651274189490495423355818882656805342627360934116961274986089798572678313159813017242259415646763969196195258470816979160196322792786309061629477505984451947845277853790054259509371484467757324248407315336352249295340644463530791669352717341858890403471438516802792220465673892855569369570063232320855383483760751058948496999264696729200974168713404323719445839136867465958203123584341372606565783690833940400652984855295741533777441510994107060571836511529060784898771301806670911702234437174363492046060028754479172865420534784191883217832935405188698563545970728675138586164418481528799676654302889008788103408417102073872596127043520284337877753655753558125207838417367465356833425231098104974051074792046998623173814517117007453154424380478421426124215341362175350227225806620517074335744114504746543274272412659470767029260138733430472760031747424400640474238798970617057364020040593623105960559777451583533874474717820555923430871321435771801796234717675444070348875562090996698631748580186714044117357170307496904953607035945560274802258380845671769885165719291771039202754076028489793879029556370798694145237307528461157114875449664325882323494737998755174093340444348603500986511133923084239923071967519110920716974404711492576164005708276315370127095839682983111494464934048542259374761597390821183651132886643617828059570719156968845534445050431982242933558204741720086541031956304879938533338791301939462020190963643965142098693751591735201662044513232855151275646257001783287759454237403672422108607935778444725431256633117704810033959265702426859423313725078841502460242721014257268206352314462017644718581141230102893857115855355232926073742259707572182511193524137600094939319751352440439024971727781917203031138223004536211043692587854010845009036352672811143971336223076975886328847520036971708165234272680006269040962978084077416139247866276364279507064155371385557578581266615986515619079117616025744664028837471865199071298927352353293717689116703098953923421886573669052061503950955580945033328555660301813076281911688116622672599905526939349696488577856056903076006727797695810250520155445984885460646607132636899468383744054106431745035915994885287408855820253788540900664916275439497759402183380636836446717477491405166950585087604039731306723374337278769993473152467253951441346408689920347531931371532225406902100720720958004932322300549155551662888819264390180784222682247607419361836716317300766901723120547665714441293087252345664295793639804761664348298000665660685543496526309234618729396660692887503187527295926217802923916691376888098589465453642756370967158497305216218539280329500891004455151105591983087201820942380080417746353226352250885573575671062815012134762341439789835038281796324276513421664073814112418748287377303165104518918237346576941758706918488288719019047777673627198605133640344319324839913377356197680103222004385412616698530724083774917111407211284636577475129215499036726041089662943489873875688412752825494634271251156344575143791504068843959574454991136447491173693840992797961340180100634983192997935687987703849775926151605517507824410980741628632051323159636084070499312235504635512453305849391254728431436068804980569702680143104984077952599728667056197526023395313061992190126143928585646781746513391056592453648217437355165675433368349291867035304098624892644742226298238046677723678903592537433974305420887552899813988936536697909056425579052381955238722012473126728243482561056043320171822978814791111502042869731944178692957335968878326631422338425089052670157956191211744104081275871296443999248257671440069648226604658838784019131611418502930454035362752603219321722292990035618204360441111959931185576614014619994227021184744039699178161691686589428361688625662192235172973873477654759454525122330855231175829905660709904543242846426353691869154004951377624123192388859785818720879558696569844784752471989989450212875054824453938767213781667289354635875373455970353670724951256794691811920909332247922684969426616177064556569525425079883651208534852002497691995416226546472126397318726163015630746410226532819831477536679461152301948355458604678752325306350247787766205463301749668621418726638855964005193210682482482650231149068633750490623824782676974370819725127820260869561552373833023009431695163741673378467544382277275026079991393424708597079077623891583338811652739646201342372440399515768988684389848403381746596930227289037938517228001412473564000706342824913424310512444889751982836875948732618372944657890664270172727543757488884652276857505885800510857258572067575270024482129678442343340218675765856013424933858805626369384451370833016678655900834971531229791021472217713898704887373846223644240265374545785394690378871711621918079722159474433990747066595945642395524334867266259590292953709067950626248881837688893435722859926621768702122927147000901843991891595448693549870103521340083698986910136424419781538878789604559366429909100349137733984888718037822805771962000586496455781347597492225258771135442998066299518829202117556607403342029822857952187776497152213212032065134038519669363351801964706450850404651397385003021415427883510623633663936288365542271410073189007897760185555070072108453331117835047972680450263483116989525428727520451674358874788024154754720581378402591770312945324714889487913405186247197836908067856181012921128142328183018496725968783478993904804998426184806067988062874166005497006761713529501343282981745372957822753679470814302042793374935003741879079987122251357602548664513636362002394076018017621687319197455036961072937342108514706875439116704903586649415517223295724074337198881843920633507447831988931524678951472744715407243602639296061709421732970115105356329946120873601481341018137926837225978633558421830987914185967733975030669261297588357497733545310632967039188538882671243897390283910316455731233498506581270994060035118822870341558967942371604330231719551109676804486389129001385420703668554617602314340774904069430730270309955669800757106574736264703072243379205841010422457347319388675059283566952826212691563638720300003251459944220964205882361376901476811095307106444021030041149357604964654394938615998246515510632599383710805636575687091252781177672167044607834746350155310740885313970059246285516466013828588301872364994086690219151244754303714093973835137840086093042152413301380879296614496616734345302933060060238254270867284326507106435848757362763388186024167613401163862598384802768420574047486675019424996312453374213950364109275336287898672482799931036076009414193239113191585875997650411115713059023406076105055600228163329412094741880637576787542596342549156956445727589983083956750003338611819145617653436056328321641104894030303927767464418405486713288204109104551518696964530942923656909779898759519707493356284332861144829475656506049524408608435098856008535593597310313132807818166142331058605778725284043513929235058914933153748929219233179187692117493732104264617693952249057559221838334698214072197428319569492716125375568376608580685117528829079341071212708953426503646970434698393408296787878671833204938569771233863555357690556578187754820845265116382033308933290708465588526728599044591296603036465046799117993975032646544444916267856387089780765267837278361905791028374417543532945759242779505298618449382523687863183335634975085299954734752701094063588082994420780138539302360627922610968685254702487415141655553870670451313370711949456773785399958099282581798553246249355259946383270036976113793692332546239462455674953113394828203036101780093885466816728182419840778372889657459070285577703077632334035632232501900957195910884658963422798042903710096526602261755489045212754965284160268634016358721261521115220951182833395988643996913644313305497194822532442796963120378730107593148017774887583092438811123837501714658422013796732028706606169058133893810490546299469123305046130374179814227727984607157798222181865899098908581928619257013400424799340212239898533608830934946124162966910276965973292976504232233786463406953947583729669747846091895095493878842996851801441738647773712211041935053725795685612208440370277900217463719938960174132337284052599120589581658165884191388004709112319023835695979633025494698123556089450993648921712011469146769754864225716103925221420711795606466716805460564672861936014273717713833623845311696499757434149916234855742319286153817288550924429152005413062838057182451819116081739510736158853586391003216939976728450798740246730119512799101305963399647039581049494621073599093910225817984082884115488929011839934317776465167650998711268443134567918794257607139749986224659178287333111463764934738102027361926351463649508612770415005729285286837580671040947049695290135775761337747233805039391381626975242815476628974809130785293170923650527930133559464024900900471370238214968524406758325006912746329261011833104955794034366785893554513799500395958629245266057296623246781792008697013605120324886192725452961616086631413451210977815901953869142033771363006931329864754127820196804067195533749461012731784228765012159339203678372773306568117356414289227735839406282467099592731110137667769087299568524956184566543393564175155352927543700735114013600047366086865885138206907836092543076126761152501479356853375848335725061187219029733776153132337735873516780298249450708990790947850473907821051676606108603368334081614133524415341077342446810161482102506395092915269719583200482316711161346312147670513520785038964772290138435803183379429232437356388185971541090869567099980504327021597728210267506719443127008124393937899316242069482270477085734699628549635938485130464678023287618894788473096640821079357287510088932428886420614615595021601796558913276390038480920340347626601247115844337664326504226717107544848331744346499455701072868328114982950768340230140529755248975791870754410512795043199934903928735932112393720820902424554575741818052441837714215966674893154236424096008467263903916514062215637785693976110724822235393127934692929175714689945565148842452614768254950968794787509986144362088014228292759758729831523351129900239516679509715601476237486389390863688083535845968923235881020396965659622052926340553267744976420146073322117790287672822899358618283075034105341207982397454648974207488985295393705743303700784805786036274852470678803208448885619961654064763545827306910162200214993802939011978340005669385744651340840167313108899392530833880427042230264166838461652859360730591829297597340148425642942278459386748121703795809912349643630984377816013237914526443852089680699250960898922649674582392500266057180054046092477183911391754694359784726069385279191855637945492758993705956200382421328780059445225860360526044515445525576979117524585802990838156619176121429116334004523966487821111349017503602747431635848111768964517372123062276864299098936291883575321535808429838235525711471544480329358745032306867701006255856773362193248147599475085587436848640436511512462407170728235655407445522622887422264422765702582452036392835871522755409622767907011387059515680508204471645411090689478134228888281279008045945211271018594248476214538845682934830798971723848970496743216964427847616367754521096181187871920354271645301159086978222043795937260014584171404570621320030125768441083193713798374216015245826921847480997452449907755593443970424356224025577152577854245018123919456152743236834835592968903245538395692874198250825825231706728881955855351720399956187847301454650677097824409041621795032618240164753761442017254440345107252674770019064521638531916474275406131004423392490354803086104825341169790350880084181196091320768861042696673575925736579017354120384448602987530291721211974104254832917920213907542273292980665086194845161010018436004901878643707360010398544083571627321317752887188750751347828733892212038082832993441028531135014665948164323426534125911792873898512992963626656352495628801213406010826215059753861968787965930821393950672221812518960253082043311974654343975476823455189871191327807566563167455648528008356303636081248971778222984544827380223036618695796009064265813563952396063197669735789149172250586388576832093006075121198806028263863140080269199457119569504741015559113336063792351901139381712241144604491414341739974133839299970485235680961123417618461414642524796976997583165258400039006519807616128942646061623911530144288151335386158397553032406581005414724157419581037705770798944537295788829181695726189587158632973711752956777705303991968808473041929489827617459728522587675370288913386366148556708918174141688350648220726460601835390706888474686530327782743122534665254765944033685742160986719981334399776337405002633367753208034480874805275437277636662850136624747215728633700793092550309781609729524812935185732879415670574346208380146353077185230074497812846573444274961625253241037670660729386596163644367413179510956749274919945005646566530119355541700314571802628012879866750875759229017865418079411710947358701535573207617102742153784714054989029136135904540559281151895846401436862873990114229559357844827381482976791346536060210311199703057241804188215741990822738306734938186309536190588734625736863026579710536260155203604624163822696946911739047029159729588981477965291740549672450145152262353762136846446319266488950854292267205664689022987371477163328903133091664727403961508466620860772074327548119358847592049927838119925080374437622059237341755586697507925652575463463928988746656496179819948863859385491152596390486626125952397758575018358341777227681184321563536201287743083961758875886083640082363886267581820024008559321324934019171907503292603515289823335384910123791791798383742978527018451408556662933553563321401412743682117238745959812564559477792959479516242818008211852990138419836828836542390604945056656583595437218209976116136050307885149649758065317578213671710925321798208393002896554333316787330017043852957502066923977000056731856030967824831129907791412677684655256870502039576337779422011521275910136212633387148014755841897163940389229322930640822557505215179517292015551935213857626564568690871477157316291346915424672147633889668007899596247372161652467106977390034281464472099787114093838263715746994432146487491502908651362458832994491461616616248913777544487177734452358242780089975047231091381577694505331071698935212483702043926615975859046108974620329720341458478181007845525128318465517305971963888384010771925341618469206058487153833044997977055207263933015120210527142126443860780821818350093439520391245974157925189562324937711585144750860225862387077725104618253258677459479164575904349552995504234368100552792916954738669436707550737780209793096341898433207192349524510268536856849654980687852543979141765106459385226039766880210833127404173557279512099148397714852025951995307592385792237505660913182891931065637052182763245367126671747575947502634458101247181732216464238170870208122349730777899861997716789554728505033835441799215604809616981738472911750958245159223163382873435108812856319207710939717795488773708642017329326666268741169928544047534335307267618863996922280672988549968215421569640381980776911027918154052309985952916769622754616408289533878689771567641902020214499526147583957069233880546520130072525815047125750413478515728881868690412428756854033545857399649562213420865160616002652494996553043112902144106202678073331077655680604139009556153348737590460415560779051005072392813689574575849892882682996174005269089785148800490049018120232697564727937279335700526134118813906742216483711771939148260080300642122554835950816666460498648183116223164125570299620323234624148297498323653616493944241686995128878540551314314886013455563529674060310287974792292690402295829147914992822092371397901031618536678559029381028381984983735504818288011757785065115123254541625090277760936368991155036522432395175413943136036569529808134025109720054039044854023755651020734989290425598604640823725236616614217890525010948921302069608878314186742521510987578086272854983332818076100091889077442452677909056191972838938087422719801570697656381825018662835582902877140899089653219979475258924681100164211071359576429918950701672480432904079820533328491854145723991099607166745427285707532655242346713647120823312092045289794844668452215821496998182182133865728095788711228631887199577081391076915249990360876223083407363980854201053358396100307308399462544743019939693175476563096697391159734241406700962298965324501619510644182283991750045015380809897743350062950089762535179100389638199650786109667031946960180394177575003872301328665599078646582754893438812288562290761601948831361246787467173378900355225287038617105458701638891667921064778033368824120520362755826210216055060421970999679819216461303576170484054632487559574915061211775680139188243753919685186651571416203675923517509363612366726699163691437412254953768425823633544017473996944060061046518793424082005356923203784799419153428397499377704329183571771513536267578128328910376985926856928578257635793784782400245991544852894206433798274019019322832422829281846135614080122133157103724637577754238440460938305543078218815112574344191893363967936479172417735409509518282191230807722916604217227721230703910707937619867124865103859874322499806277668831400808362147182470916639157743928225516888952609850021526375254335870796252873841899175098901572957038149481615841457710726692395386316264593952578229255819903707086995823452866453221445441394198103575842473541577668776505001122047774973379729238030475015642702886860951001692457460337286442239987252624456052339685410594630837635443293650274180420625502888537942634218133005545612517364696710234879929297470623575199313264552634065420248485236286755379241757840030112315191756857399034022831724316940723078953336120245013893305635625600719383914528184408896366333574836245202619139206031425582517422513042141446355054210585961307895291624869432908975356905847696101057716790533348976990805742022591861817034403168122547546393941614185009561949775981459647672089576728841993425649441171664661270771137725133311227615240703925903148808431463428155164428667313810793796539491440987269041179396161153332465042143655309468488390372904452491785035640657867272104851168810019535105565863695720259568411798662676365957188625706167257830693861843309696129481885595255116154959477075982150900383721932253600312974996242076673088333653650170048352388839640579430240927856405231350480115830076038628808222844254043458993205976439591292091481035564006646666600014248708267918569616552726100102142352393144706890000820968646593294058687325764298103183519781426614346910084632549599510562816469015922406103138400622245828453804155173566439539236528960537705218374309103528429290072539203249098079653762323539796653314533398913498966280764676669768063950176940495990765882824024481964200347613245860791243612878393487201536490208527113193499113274136300213520715622948487971868988244078084097157819264150452895058080268660643215938319082214181847424908772021314243667075015124175655849383470218732100762441628672616893081106104703071370654370390453515065636434254795939409715682771601597676681740297088511603694400112232827190287940644172344945879796991248662681491750627793450552167098402620808412867054120652205198036847584038214010661417755912088719678406106519953079261711326294893457706500601291596207110848728126872360389413023877619309880306155437643549065039954694317921311681021893121718354293044557964180333619278181719108984389412852371999768520938063961982423602084174673650224428557351719099745872076831149362577312929553626215728694421968809629811476146215892178192625461916979051553581767509031740106897523197606046985764157466420490609170137577620396699623983508897147876020716403551676881166514405638222354017894192302078676053426035677549080936407806710903677254498309111182144471568813383893101842559226855901357820684820587905573159465133426632224568542664699453498656315642098442677628143042471981602031643004715076113361558881096850099775160126430706680286902763526596994089928533195984680736702497180159548565713073830854831551442394737655225380054117386972589658276269199038413491058880775392711744186178478879238505194698560926685865499873408841074016359758683940607882713685884398998446550985290587027110547137157835276305724866902928376724660249109194782663668435514951952276991995238204450279131784654989312898600089209150082042618823396487102909743538268640302369203018154898634018457925377350559921926622139740783633767393563750848630985432901835649982001596492119466903342364643309055795751777207693756041121657450786738050270208723752454953082617087093744525426909375832890354817209633845139617189638266975818951353240856399701810590275392870852234578114526338456516366434417199521308157881865047416651528274642628708644643032104597614415433187483430513192975649497755898004793594351510896180011562468794333682060289373409570322903202929195757839280410819175504667424157987935129719692088953618264275666261737395346863370100050213045141990597731296813361699625272520736391332800306355587590880800350792281684210566224333386540627790223192921157003247933280126507872364412149036766092644349337885718968592233463509816186607966113612881050207351914920599482601559005401209352994038032755987448588099181479934077205368448429046507763478984535698578480536865558724149086231545415786985178087248303689865042245419514348875199464275802828809937762859533116738202224869973546792524326376324047050893121168957731684986390439811293175075043974732220447596260057212108988713991976118564301167815023289147409678825488806338877443110360936981063211964736380874499538783131417734160987933053820000103356325862557418462094291896698762319195536291825831830652383428058372555763565466457782779564541464541881233822027748482033541516424625610456245160846435443213010258845875761218915044560567316828909212882453775275116162457915158151590258030063465964053045979435300580275873505947682745616708430548006903065315181938932308344299752766914934615581474318202901819543027209767858571194807832692196067307951120627705339368170070324319523305833503444383057430175545394994806205197216710935937450616732008233513086756924223360932372579499045099673524456134155005269459124296069620103350206771432703808801793133367325950168065290046200113012532194769954698619507972519981601070198737320003813731705964902430699467781322026354385212189061684403843891918601114207367945256785868056271850324518924165790942262382148145306218203357250149672770998850117570209882508384552906948885628891020230748776818768653991608742624729072352412949192904659505028156236226439623581785433903734151353539376214412794403880102654722915529538411418102695062638431414625545887807672053979458049954451705008957679707924374713630703040779073619212582515765088878436524062911821159717809033218632830883139776680858907965884490563658150264137459343032632760421995720367373743816448658895918102385771575955502501118343800076363564927268262561353208667147354948825378747244498144607169788123114544578207864729312998752064073233130388773629629117394588040919489907040377395974272720894224783483891775607048602590034528947546842399047965246821094668127943231190580501000991704429573490132988001924457310733304745551976514872273391584220208350429623860237692118494187407565315552285165401095646266731334564434870683065419127056005509579471694874758889019888350356123044489903091629350707931945942542023613695362953712204734167590094129339483523946473316383099106351645770534448629702607842948322648135891420342506793293801796006837699041832148942338621078111753852375661260870089700866916486769137191279926510756041726170844172874366067013292112753597390347571358190462772565264554817187579573301757740035969185533360312042011796099391008977603797059216503339471750105801821981801810586573576165896206013709240271525639053834459664144263724616366203671550591202959887973759834025140669627771096508598517840546635906400140970189697438153168128726440731371348304572306885171961654369684837202761331096011000091594663206221263607251327027063486743031098325233882386839398246453852021947061515808623628097498648208844255259862428833643102748482707619372387954950744788888469985582643984921723927086096148153509582934961545662897595880106777308079956975048487920251771336014979959506456601050952421978673312157878004284421806689455715953707921048022326902137114538950823704200873295401468375672767799914082779758502087954678748355514018951925540494918913150239663802126526213593838699447335123227322018765876183312497548835879535475789107310749807040296418691622245074650745613552228246301821676603368188193692468840936197028319093742789688197712983639859158019202862227749704405098969651773400487194141850421810317037948455230482686255880772515844747702144096581600124870037301335988751205968467246417351223970531926431399250715302871221336769797988948265287371246710936828564099746265577110246282499834377276115616151474586112500963080947438468955447881707833186778279846872852438553895693610465636054176941008722139537267837380959453319993641319745809502175079257479296714001759830093013486384085662601554721659198766351624266450626811904536951872038993865093660472835172829028810350786107503732377958570751752976819943209776395388627639047285072171303660366492456825078059933910703603044435002429170136237823401218197357369439791494629192291761323016987763084877863551324113413564005761027260490109354418498153799544853572259766093042607046417326476101629997244290919680038775168064312304182839380094848730155182036251637763186467670773182320243265258980139012899223403648926060433108141337824571965905534840408670692865599846439625932538353121633469082135306227338884149072551273879984262957502598705028654707573376849901245496261891483304203848086526983153608392785954762981148807935504510100895080637773529697280530420005903885773141223389938297311182089255037279791435975195365988946877240757190738098961981898485679625138690196541001144979219706443150958133048105025829352390011362750366685765493980188997779889313912079245612095237610858582366470875309310687188547729556500040499484033489391940168383052933308044163627720424090394995922760931598342300362909279599777642144136757397009473895966708882335829376490159561233503608220027230204668217911234886227591901077019432063510659003075204058842257000844525952949126233441384057304996185900062820024766029088862262218361330486277607061268041074583238988586674103638949516316084821526005833211542696854092039507149299194039032936648039672215312174613666965071672176732916724690479151726598912516606635179777020197555191791522883084644793444538391632744507256444922736331717492880336892131594551110648374985498459826865014052432249126352064373399884848166618092625844338366554215202880460530421526163890977460583173252305321653432869632791522985710247454952062646854004448189772257509229567301808303493870172294813835021014094610864188692950900086409102565227191487547245158463888135564191401405943505239066439790940163424493266854029245415643989493067816671262958676186488539806880378198111555442369604273215537651428559418510019617769989592097409327516388230160984198102258648100101462374339802869537095523000061353056691365811793746131430891928734927062580952714988747445969610184988911680301615548733377028104304516326689577301538079018209691155273233367574415178492152536813487159937766026824728270981640440857821911077636260300144883030496180636876950762117584052748917342090657598357731981056573514345756306951568791877015565427453288624713651880164546107623882350615229696193957252498975101998095795038372264841643319587992053307337907244064049316513129140714802809205029812178248677426323557793587320035763565316336588778337756339097421610005583315027197977250600651297417909776301536794948213927353723834267967334681655476798985803334887984679560201970908697053181821774879374066137566367278074205905241325481203066848558300800838400710796993037672790610581530443410737354178156823525994190904037238305033035355725665973417933050648724345624986949539045687931029248663172050268164544622047287217513283931283209189974297880716106585794073568686910447429184061962024798167915761910892202499722647587697049208117688631642319002341308985624543104279545625716251136647652247768868348915112849439052677563149618250898876789569357848658160126020820015979288695399482538578220491920539334968307083482343311966425631420784749416244069075085763692567869682056632085639739284448451170305885958749214822558821711630884066773297565626319895272320580492463707108451348641414939635292010546046127794691757377262260146385456898830312687196239413128779236460818132338702163315285042130329698802595629148751840741830975616385466847646116497532260095664859866120972507058704366579833590314015604328630728592998816890346768370444354723506853086918544739403673296983044466771006422436495066398619360936340049859109252268488662840451777116114306667209647457003356295477306965717503259797997643591345107963135879196597975468889316890637854434153288089197604225742201008453657600750824178234771306733840098472842011945095975593381607920104208275326059922716111373396854079656390736899806949366141249596702167176709492329465676249716960179235321479942126416443087047274293185299912628765870763009859715166956401597940073414507972105384632765563942421744425837025809391799720425202012727222276899494133534795422779880306847365617161376520451630003491193052711948124750416081945921500555380496705707513525725899250750705862062692885051340216735753696945080199780801598196729879475946992832920918360749575797786116711127905655658925919749739550311735059295360426417703258093160283405777072183622139021184504913027353982141380803464782447645876316170720035524211460733960580233564836285934457651217489390501961194195736473956109920215270896157957193374014460477582606120705192443292664167880459642884873235732044464596219002281454263675315317709142020021703947691686523555363701722470609014249024529584480816980145869669558807555737942236879975194528589090218858359020225203287480983359129026820675776004478339868802139533847310461119368347983204391141488491974973219041817717760067055604799416859170066343775861001238128581182749348879249801157541954804950449123625650880568133983168128702927237068988681193753992163478448345008235697916655025936434609098136946249662441754380826702126329599232903706602610722786917137709378534845110787311064329262481262932805227150531063465147398555015689283145464739658213127770203513509507602031349102706905986988532775953132566995400320107439348558806228050946630382089392206075534892475701434052127551282943983377940206738297749392013287774644775888138972997604966117494107770608503560473834540905579883673956796769675330535424907194703917067904332241212918356139622915496524519965357755172347270074804326518936903269485785253341504082115279241721569492561453931560943616824548451507669549595103551238778400101518990541859857759490158934799939161340416252302059118967033133228746497711356705781365584674980153648325115207749992185157408211414065907736465061230267983456342736494459139060631820496943618774977979521174370284174891273771981520555766606721083922155470656283610087416386205069638157644919331555973625014443457642727169612285007880552529907319678208278769850159183301056202102253237281665008208261438094058266254505320966602596413027489968630060217219795359683548547735271815124882027899888742405116915533506928115776915779090277731274498753257401605988992776348450185344974020939242751856985548464181945264427861748638728095398424088422915774758136437823683053285514325163964059954330262953158046894928787519017309525133912887314263133266971337831056708230701726131850417079200351085321485515877548135926451149487989091691181725330812165215332737851414375152124562476964672506832202990304190892665091243751391633342760211125055023671873085765406287245597852803998863918834892777187448555791375003529988768913096510945499494666320923681531438171006113395267406756861641076384157566318361807884732087154083887241395185474275066338820091741285554407958939191612174945990603231529826666650797100212935173309178008765490241294031518123822355112513077451900188158948236449501178569241696312034060053731134653682143033019426194287411288557167852169419199102890105586545188097133673988696777303850830574294669265568793983099501459391970722561465244530575467040962149419812045837515433313222486784556994346344489706373766167113761652298532722258885836714850386961231834608763137246798314465914046945589612373206104549885601520228193941214668022924416829539038315252822682470347362455781565665514788581176743733644173346685224551845340548887576340495502796669313941169134862468448924553852350979994796478863652936748006994917444718424370047106724238054227785620332844648544156706652630300886200196535157846361365857054486418043609002423031994386879376814966016762084066618499892598820915527107376743438095621764919020044057231859226762293232272923906021687375580257493413819403820423569628256477456847842105852168650074986173374543920367476153014168002388077324982240328809239410759133818214499858495102340609255368222334167162178360911248720111183895667817037869000099833792586730282020469216198393277505548602158286169253866273723931075283525912401010944470059086498247184309497164841667620733852419386682186078652262385822336385273518948034619329572552996502583632662074917133667401519150437835379129663438468000516232283240851365211929644338617003349614062610172493953698513919257139296307618376504774399406218888148577046702642699091157402439326279358663258970510724288484348535349066881837113065234112219696290891789314542850765518555617265737942124100730513442131516363169196696718346346003648012687737433486317854802704923779168988838644905734322696522363252631640023369971840934640891813902181054720688553535164236499687140487292441027268638978449851712085819048468583303375886057715815203884736998218688696608989754867724651070526281236983935221538585722092952090249921200621040610003856179590454513957364813873955967659787136971604023349658146508935452229247602578063234551098659948789060757311013595620197764219650401899462631727361462065602748818480040182205465790564685994114812193507538688296097998247665475830448804459788115260095534971903186277191656777215811426415730545154733618642968995318769561917879573514725105092004676629978799265466132064673805029266362629754919605926172382000490614006069491918224210914725101495969347851572111229262017087612389755373754236276803921566058451569141576303159019513098820702728870152423668466612596461146917337880747652157741655263969524978909965906030669497116441775594218599346981694606013403626572182462246334303598038123920904366713381511378525114794457758990852595266452623043297086415692981897634218723964275544130067754853324897435720608781849592467567577445623833766493017981731525654565814438856407610154643070219708944433086754908527938734178890816299321634187429265100786194134712580856879212105535355016153216691991799615627146679825219064419834420932846640906182183171157927833401926876039091280035698000005282082256068687577947275916258210346761153387775327919683151495781732569544450542109191506042321351867355486233878598358628335516364998807876906787419388148478010477512338006882925346780311502867506386552205341936128299065763883070494803403864718325978686363885167321921673838665545757652002206705919406943946725351539380754731903758977609451767392861977597083342449815944422592137891613081201026922618111077246691458239553076221383768478513215717053139476290748972319708148775121393734661451764949107067760268984880544363424571967873214082699094937746321838523822087076042868365262949715390864724629718844586025744482411057352648901614797029518792094144549116766168570562005568967108317178100615545209187569331484649943505816157618744959488510269581162434283648317143005939153452901723247553699670263043138156736535511702704878453346729176750010173815755741980636586554945411769499801496181890482223817507066224289143840766594806039608555584624619679485227004423194376707757293992098454127967890330874835061465214501732261854616513269014694148958493022954699596921557965032849100767599420746754231231865228266380727589881931516576395332445935648982172307546473662161254598834309379722711383694370144332381670214825150726146188517543450736727440804735806381783524702358603012931453383978145652097332282572536029983301321261050346446059576560922847311182801557336484915339836977636392766959523129829775932418234227020803309301516133667901539383609050191026931280787060725922078490082919722157653707706205968760996572655395278690474650223706083608575200168105833322575575582803253892117749663768301486604043547226748749759017623110587576405107998178907836021585977806647622907358256778541087033706557712073736797158092018901847309960354286385980964877227352321844519293385588240566393655918970684863296644876387127626799211413733243384573435596988995581926967567302030205804733027060959086576614311991653972573423996640125034206356460139001171109977285296100553749344666131297342957848559002054944619806190340201861988943887700150010480792588466169561493618803927366935058007586351436385904883587143015671464197508950543653267178124400132012965023153369976518808778061329593286075826507741161660986122442404771540502055880026527932733991367645217825397630325552659425459143783960991483447855003650887979445462976324416060241190246609240672415471498914399877469404762975119131194597345146604176522584806944418872883596677051511476514160353707492739883078043776393009282570722369486073977703718524843091799243575423460484715898381659284675511096908689496704055292168459130354050671550068329992748084203482969313658581511477942620840311342355547743377651529144217213245337821764806425567958513218738370511243676567669331746912447655256949605846258732194519241984161170468473309792986294685333954467243434106985162080755571940979776278367625436090715733015517013862799335619008314251800149875504607257999596183998314130183086197176146356184909043550180543309681742026431685403887439323121551832093714710110315515704326431259272675866444385377065613011274445899387410448128020143727941962406926072526838649158192475839025627309625599438498028125222025960902951317447466418121068671566300634170290407788939913881398641740853595472634571735605892028627124876016996077257176049551443182602914952410439542525619940114447786462997493977431392844571399614665889634178055109786703301691115712726521757251434466449084481190583272556010107924273763236293469487127962335020144311096516999346526205789228282827032360864175724025587012423447213214288578336649255639927036583936734781410728858901284916031820193950997627564337084295858656908182868547835640521139501485253911250486741211843786534436019103805504508799466280106204100333643157496433822877335757215344818297171082158384708149938057749160776235455664491976913453952683264078639407434300286863973108909902958575924980051961232262365936054943451349113306572700510425699284831138516465267659489902879935710599492574707889048812731275223935912565774274881615283624859388485496831445530664680441509086615401415663983693227237467694012001755311333079488756664927192445119207821850494717031985184363768839001381141210973534291832759773030177164921055725620109584268879410519663765113600578587370156810530169015902071738483110245721556644048363429384722595255392645925820470909873376492875389552179932897576030018979843224219636394798507330555950891293075854238280320798869262624215266810023398018878046501835556218792661671232001172728760500340996925230452685373250780638678099282480068883944993989079908816386363957999535384338513477211315340254302579799738753450327860685414997432171845730598994697578987910257665560978677871200247533580438476429208315741530199693598134404358423437271834178968527922331985336187153774427727063911104513846907490244460144674054494228845002913734503682974878792952946625325061789256195911856678666645121952305352472096554331561345913783411705404980053593274592072977216006820712325757128361568671928329116160126675652196953897503905387708695799356453440428109230184658059269574523748485557839045529333898338577064837816924612579522109363918668053932928577003461182757479385110503101135646958323449999818281381620453128851729564188080134143513781667456142365967211907304754450092489032857388865152922800732854032983017608545796052403937247680205948648829072957658814580574029595803246933890729356985672461369034787052466393215068153736605422335960312167356785705519445651188429979378308580670994345607371051618280132707069672924605353895738339552222909102860791619437912504607519539448798934832197763053693314664255127139233692018066848304013123490876856451329490276323152611374768909192715994897830831327535119917352333799159531719310950495609399182725079668276002950518214346315028598436256831726486965468124512510698235465774198829079126397538555146845151294581653287529749883015879736343542317979110248691459746616126692183668433218876150000291669338433389777630515413673229399683244080802168690783464751433264972533859213073407301733253608382004723686177310837199381206377092764521691256120406477311036183221652175346722355609128045998554355709921597736674686270912226775281718052971625741712803447290779410171114826735497401793865723457058436782898328921707345086815331756007531270224571513287073791297151313692570298956896822230733801909381712978241244816664272088460108766701590192862755739561617656565256025507319655038494828343000191912152655327864152560305180084651331010024643378108661195470845296355678117414437233991014650113678258255173512528885989261886045088710425813139873006173597191934125020577807141544881537941455254093348336019359587822381798865050702134449795429338087290354370947151317946918349575091261483896882619472993837678078623509059446221141017546353001916013661661095095163934674884049307632871472405584183542269848866084128218377876449219877017437203501578672455420824030779843073787139076885234285178270732351092530945901920380854572709898504699649764192667234983799149196686233734022440037197790748698850571931575810931109533823902959007520356327670039123059153852938385505021072002517220835433382765020702181128609738241355919198510837866215184029470727180272236495917500429695072607264205823150770925424712929112518176663117449796436345987738509832746563661750631707612221154710695243904525407533121627531067795937152375863105307301467548835356962383719259238532900480346316003416699529026029085258697519200494024816523430275305291456251755202356185600980817588021620071940271522802351286394976633313419936893622881184617211292425975411932864273717495319073184995585681566937459126151690307535007915032588498243637956920866224235122980888886657880087298242497468783232616498703674681919885070177003805386812402818960704475865198721825321930141953484543927606224132724347791513116190678873138151555568556394899503990451946450668895504278213993410857474360826204744123799464741110724643059854109442277489912062911150374081182983507948345297639576349514172933592457598894139721645674078067751057163492253613419219778327771919117343593515116556824361855745372679233525304280464724854226528099929451499710694924545776478293652892412012028562895335885413803311173887982396056178640874945771425399898454161406276151498871279515834262807930137761411306709383514821364054105949372336602482892993081324571205643000922065226945976253718041500122588120993014844829100964145698610295577473056863542580433190011630836894779642449718602054615852215208127416584973377185404012629461851687218305021952784177295800756625207679517482757216146893921664913157352422420539354451674569735074075032211518280907481509913313423391290403239502779411139249625762581576597684289241164447060476589406072478757395922252940502827705840387530503119131532462373350191827189318135945773020013439296569024047500314253278932129888273758793654490702555059901170438574759429362233977372633327992878730067099279491853391954946235620475014502590935783286315205840852876020198808416470527784077604764514238552413788260220363929693104399474494777758802885121089630272467238605611518283125376541399228034290539499099148637426579131743629654155662921184656363987536934016710858811120882173598674673090999363990708063114139942195231359848836489006662732849154238486616910044216291167280654304113083082931653556747281172424260482807007748247029810717141341685117270396426720725226960512454043763594242939659736248399087523375768200727399653830733522678910833838423137982512891867227393723355283149291944446858185673704751490321662386373071829946267628542581871960356738684031109207388918887776633130897125680790613476211263295231472259329623565512004914971723717157270989528771622317042627567306725149445254518279236211598105200155701555130885761727802702843565761210852549974583921373570427444421572115898060175452248661689849852687816678820529354529667724460489704414392589076281880163284318973280525214090150153603595026628812390363729655446209521139596887520768289178340411079224751236057739858937222221451161180622179516864886021830322925085663752366051527871548256014033138071463032393360152519782917975868697242523721465739425880724662147083299302084210591085283952298514238955508338417868775869140927845222924055179103455880389438685320547572685119456143274998236536945119020000496868281766332655270252683112546858789248587907217561475139123094363959319400777730111978116792073364793873758896327267893053816092819366810537813377837720990014321123521208881316636535025400137853862004328128723225881160050898645626623491471776578967852841071560405865230098163809347958112763745795761878136783595938448873957935516414582258369411882781356838815475991219614811442703107422208129522174176312973621281015735399720666585177572850179361634321823128716355393817741103135490984134705352702213063976397215717036750760563960539263211854872965667284619273620382728337610149899600384423094747311903014110108003872963490573359044659680422026573638041612949308245724798145045191350207914529714848469469535180657833867688489215735273386828880042834948121609588197981174645818568890146820475086602325692373435704701311342048324062973632038070476419367079443519035346095119487396357335833731957399514952693373098862098650664712323690400737147739603501194410820226060824314044774253756241907304729098610023393309752304733251510770245563763072194463381077241971423879709555715743278705748468483108911364897525321041954965460150940383132286216775514991757263241663403368823267018397957412108752924110937660917779074783563432134634366252699559032631601046121435276034905618825547253525930532874084856128341186768695680753814415317790815873457965597879909022055738050952642467836278865704680208484151438515097328556031761314160465334581310500547937782175826597780945523284111741729014240833231143142886782767567144941320815636947136160078277650145121237327977224552435083208775629535068584543200918502935101608808933501200299758519060389434162521986554799407993656946353071872747232698050212985085259550221735433843546004656187773643818506194544713797555471647082780601566541937281421258934076126375698581646739514139384150185767599703480343749811906465730067129320652066812561032381683431155870339772185935654852877548444249077793133334811011966606207955957329015405599333839438631556078775678436212615303315213063744982840235156779297549528485517159711194383485633272444056229535619898658260647331168997435463983448037433130269408749627262544935332244873938782293104148148622779759969096259365314179583579120825765880347291087627241804794612677225918998153076182852336363345767550756734000561895792044260943561785047453672041032208579151672794212077311534539924476969798318212508697098637669930868142941446455674000313440783580396550677453132160438400914497056324765861521979027592776193269243696427057774735223927057973300163844710318830563858877042177499770161028673897382746241212698542709404461992690194412136862815680827215667436547281279450230402249532723409044246762502447794947629162633502954274667175001056547811639746080344817960566512136595777814011369490740039120861617802167986688174812981147946313699694697819069769174161920545081678419275260846109827327111810206669176592809801683214524936932002524596616818439675615039524716795583637146053352578315535583595662676461668164787344788284606086819383927217154419085800672180842361605031733167130625756252528626359461449048482798153888238978824472826051846408212646977175446450338764401527252418147012514946202437227583313366434215727521052559267825042098995031982683496873597063297690156067221903136625505944163290757271408628391661541752429927077399468186703794086019339655502748970677352323602767300046278440685839814317468407325299890593711281940257840625277497889179942572014493246893034229460209755089897478305966334417762757597402634683626126066534663973416620840232371921276021274324681338515527041142223033992781758998845469934123451673634251219160345912588463917255545289179100351572506177245197026528740209011116630161981332604471395231805984009862423961640438797841224678061432915473916487548780081807072623105889588250017671923839235919874908994445310242656307560371692015880378422233755378785322927671280146421566200703190504714198754527773357654521997238208567692740431449071860997461689232346910438283717909145442144636675286312689730303680071793936521948461172974270530748687218309591900803182365277406391236620757163958326168735125456671158704901472674636301702704962570752652864932990873867296547641976672239179760358895164526017679162714893448460525836982921770540243124513652039462789873642485365374637314777470199492277948622458987154638640753303358177745175922634733943875165009785084467192864721017580604860381589374900480785593119149527764748014351351201492693211890761129537375421306705000803733274623228184829800442601937767594352540731483076145469137047945488078392417828050013616168476021797498265974369617532061452325147862397707486639795883892464422643374454720456901098716908900435866251297808039056866218623947075334815785545025148678917011790274655395899506041272127324634527335892754479735641373343893934482667394655478062882620457915500302074616213635804680480777819300115698187268331392917715486912378582550824529902170942523025323641607863418988758151606049802468221052740857864356515616865005490085675809793851028059651963616072597174461778911110412031752843376770284830103421395000786220666505916736860865974865181769684497802463842101206531959897545118815333602397842878725860142851646342830725538081719177456603994144142571800153558672141774501553269370738037954868029851564954884968487283457081688396755904300521689133025499123771352624910664301504735229974771201426577841201125701498495149785285654386914437954411163132224512911267938034083559615354788318723279433952295016034062257012379053482888608705571053365363190024706903316237030747994142947751912297767764828939005632043163366501209534119213514273906583321503286157952624755058939596563610218653333827577527976261693673374390735311504657262553195732423990966699153392978122145780155322338174742593312150517974210940507636956933702625552136740781490164756561015061879898097622903831534760427262819482323974538252131997854410320515874060956855106085198831258717178528798457341672656103368082492050185428454588456280282310655507276131678676693588092951525619819201285367804767359937256327606134661181199164002472406886578278321630055491023199334285360344564269031054618626627187585795141093052508728244264645205287244291637619015952383638419388602791511774032772928216182390100346923167521499332492848383237849400742954384067208056051192621079184696117685175542213325144103532334395356850681359383963979826752695362567111220615485488855600464203116866138073214705781425670317675357200564193091191234709549384052462492942808738010179376230593627254984597598087993742773811256491149242625869739884375907200435273405490590155393967971036025782747564822233436013622186985884480559842475543954869994143371092288918393661261486138626146305570398518191891529125555228642769648717395711022193135199007122383474265943524864010372851160145226267584571078300466362601955780155193551186404912648160643880813640432835642903809768024691671307970089468110397621499594824856941170836877876690060853006707223904386300061252234711542541465215249254675148630788605093262900496366995263725327775144329449461813774254872746144840831798020140618983782301266487506898178767374818672274434104664298827962195432729228306889715524450216274919072323567195111121172744073623395650820401798929170983729790688224759984212145622087943082909618780226771442827875762041951887884116594900455149599066902352755910850090757668184936159397414382480701754348731946524774720571432865583398677378575992453854095900622912315893542475715729570318297483658128142694866329723094640103438560855718413586742226745963129315327825242600870744116413638508080131339033579073405199758751570458781286758523259807379469677791805204344024442888317362756261366980292999726666521457658558461939342629450571080617853239280391021488561521124165156391701965044204371250689734985382206331360921277659024286098102591266455282054866848177626487725958689948863663857089442594044535882060376756364634940302904004784878976960605917858096940356528252914498478034259004470635671730591623335991395963485519669212225036992047278919218752065417344457346384595798743510418820184795249761926583101684750320089203202191218130507762913127215172794811769062117177400355584863859527791679543054318163075715480005456501768170446534783000443083961286117222425098579364981428426536643640330366515529717423845369373256954837440369120962632787086857622951407635936871760189702929452078289476898563306486474982581499857064617282367423191315473399017991987595140263249704570399319465776702734613075685104045836018622404521519908970160701645572037360941061971790206215003139165659447011368890014401024160080763150426632466773835026105237015319648539582713520147833808816159622674969025694743966370167876133659443356607206959176943827192519685444726797736036496578448363615633065858574499364188753488461816518644039671311607431684663193412070954074671945999938539258094324264142574013502664458736743677151548033315925247514188056466735631956332189694997054698941440154745234013767797362202339081983319349476356817927994245900971331856323064235901138176965721629793474772234982656771777613973633147062658183419296356861857934380812047765561150420000099940665173672518046369978585912739265830663653246263144184377215784958760031037640361956586505516611570763534363239433855428277698184927859276908800980425234095585198148864276452111552971543075795870948683522860609099966749034783720814951665561043350904643335304445538148404783368573749706559732067003774329690204302653685668505857032928371995886425730253051516313965430560254692602791043976026403902275112341030794410763880164710835430569566217050772697359652492758630554282417121658657636101596550373008517212681213649981021456718093806232186292620028530343707838170913534458838641778597436070674718637741100710022165562877362922419678569436771083292232492929853958780565498208659919101582889229007877810943282774115358255305412886558928698145345110879604226455570117628752885845337938376809568032370120908935024358619804812876877645035424052422834347521576689228430367141302386872424217949757480866878364421205346714472239416496264140904765682771375423880926023939027701042506450368169816769551349557972110279575901960452201612096544768724520489942596040066855944573048055100476083794682216256547926106056900426006230980992486860824632522904267820810720158296229560524901447083785969723561576038456831869076813985154810431118566936939610155616204079808893870814976848762816302250337573845405936208942127070978177877209616501107350105175438372474457376434380172489027354128572922230767538644109755213031454587797585426545523341527614106682206298238279378935743709298033589557994538567786236220166690527264731788410017768202752436309192678786533423576407381892728908274943211712742815092133585407326824550954098163343020492980175418753490650886960486984369343392781417324076291119450975156637219457919592924522295714848158360806614574858777389980902201438178089232331660847541504365187703268755080458624108202846332009591331580915583456763442036884667494442544103355508432709140786652834961749719121382512389729654921761474245812080817559353276840807795068492317690766859233504397779254153391106779455635793746650972107462619919517150490305822151982625572029524303208202417967900946348803513068622648010290338671123660875206808577427798923380427550717898444956068358971470166061264228508436970391801025995343178887391542180751191514044633946994942473775436036801658843660303461274730620917190208701278212494551353773044677560038129954371206168408673193079010097564035386454458223496940776062594141430421861375351276432901553375951798451898834588872197687329489301101702902107437957539967996487664852880871385486587809599351494452809718516565639383243854846773224762962397537852348737093065031112574490403510973885357924822684800429437195541340250410000986378473955467578531925147142390860086675677612418473162640892495714893259832993680536493773902162922436496622718127910516253589630180394446570401944402095994079210309882768566419951660365904690171956678538746026023302278398718726443590220666431132516036867835705855493172480081285420702142504894306038115132914996223175256285400880528719776434458161731737373044538971334683594450069692414454590420020886586555104008283001501334429792258816131639850974532197696850376486495480154464077137294004967458794266070847952184082437467327130312739649403294671151330304698180863562250052708775634554464397284816182735417505949118266744298094101567180289279327062968975284928526157935410235477317304464063600146623701916977785393349221676214206346662631585251600789099007934578086066169907310515242603834839861141049659694758515712120310147434814454610539761760295703943900981693856136186295350826572830844668745943898914145075465647258458149767645742208869963261964143884955016817427960867691441748052596417010397253000750863734430190261947514746532414870632584540342100072361282348587799760251016639904829431644820887820761442600249519519730641181835525811898346253106689937345206168309851791668834511994049339924747084769764714402684274251089535051513097697949323861164589453003129419304831529487258895257712306753546009818491161294544608286739004795722048275517949151435374308473687952926835886861202553602119007321652988054157883139628339514342008822423629456792943454169073126120817988541371840981444793827425270911586326030475578465705015693828363598874674329958930766110042763723657766052779107347655677511192745822915708066264587965820049917407385997965446517534334822275277288290891961789268996461720312116261786297409543112051168504235330122827316143736647273911173144835320081318137065639125441084823052804796505092687409394192868462766833003937223297911930024486810513145382385141692140592365001239845367032821214603283787793267603666703741593984532309587893880017182255973667470255991494511296450695071393543206616998536496679613268315003437500267771734546552560494524378509066614812228862503742564023303692129051494469708363344314814798038301971605148605501014360909249509501541794085744392482841790940100497265173514196580715901971044885803112259618379494361135502548610024401736695182516447046839492348831516686363576819639206803663874419108906557883898674446280409717663603604496505714831350578894481089700257814263448880863560771928158493143989975147134074513361521576018679873266614893803414784333144676424951925207642717202385717740241495827006274526801688123714800002465213810501441017773075997028463706166241137746426370204498198474334667954114827415711215609911924881028883269904969049289111116153634093795627394430559608675441006672875245379930339619147309692376351024595138008993237132752251374980308072275578188684768971712736891347478483348117440830547000734567083098926284276182342257952420857131180464539789968775589951094040220515569723458481949928120209950261255789639384883787940153621968812188959595530582656947468308829259578135833591334723357099260347362898524368873085985571060623663625995728786147838417042611227266307224378476841951680176564180355365384780313057315766058298100996824066395256490928290966179450758755237052140210851971126479445763991574661203897909993316965576725954969722751423602127005412894901414748809023271533691843977713667668570952576118086549294239651739395019103736519118651366334078186207638216461503627200682541217493280729999177199296890516776915588605457117938471625149645579002704068059310569441162434274003217711001671023905455218469533990335696755850831938765442946686815399411608555679838927189345050851289848439147520142375344608915910531296482260280297313050325587177279319659936066670259184211456189362326625037083511820203083308661123490468874527489379062995500149751328176718486412627809746513460569037847639242099886470252419653340919810887453499614305443375725647809574383306418145508422670836039236703061789412193995738084732982229557189505258696379811843905501684290279013148577070417766698313780175144295390543144855383596837387495235797085357478137421417731041157587020554602030480861552512433691521232493220670456105652079708434816677817470145488321942238138404470619921269378829291548570904830451994224352915638506650815536480161492070716926407524800658094839339334333794422180443076231966537389369463310810720874552190189706490203650417307749833387634287838675047491054980631973564089115775046790759008255766470097483246058420998927044604693989323372745860490598743625797784483142138975351295951311602432093407290389514085837542745235065473181056820258489268299184246093595886709509718433477476225074577171315927189094279879840586065367358962948044475257532498748834984080511437007789782684031417601496010106184364425088508828475465113261442011018038390205192698219155443361042067800897770426865870286089093826479682202718407181845092026748612149588925655928930014858176868137108210636358523906028440307982238967898361302543514172333659039180764863529688968401285616754147094751079976265228536224337021987590394446383680443166926564743022726232870371736850958982733289687034478132633983183604913301821148634258804624180269694727945361422004084604648088056422639992838291148435660717429142310719913588421415417155278372439149651072376435363951702885038607224190595433923823401184749138251978086457497370676965024328937171761680666703290703490509779378262165824226365855639533558232340046938800687491558159164136744544388490116171163560668537082904857072627937770983629312364670467083957631716625633534818433858745483087835781463560136694436910154115836279137174172705884916048911635374988244241544157639726809196979521371840867207564926810571138016918759068195757230492812508351730096418018599257454181920577770246135943969918930957043696157209213487903980636563357522271745095873724541404276809878112035368404033621778063583219937402280417807214770479413201087383718765139084993193400679185386963424319330844953758179985615993905379109797238361435390992067448718133922582087645348451465351253642948295483244008150051867608089084221287495702683139822140448630850107999112499874303045611902119925555069174291472992709129888444821962131395510231117653177763061346382615686251354551772238885283660102764942660997232962525608208182284041348299859579738508111720201412736351357776167571725617560920871301092728808578678118698388684252389712066349408322525672349742399459307459332423964810809473797184051900207452750574686553969860566492873738497757462106348997147159874405692752694222647911244588768380368949894405116673244839166319970905745612391390852636369629065027913371220904772258542931825863268974668816922925817968021530434273033281812270868824568928400158678711877614845799323967533692445587413661577857215471039218000351604715568794723041718069963290815473352542952819832895689246328339856340420398120755257586565013892821184070978988800731356155520749535020437138257872388984416003377924487634419793898226604264438472930810194426819781710989119157263022041159814794452102828152429574771194754003950609087447162636745499181281991266936385816044487948323984283809052071014770445967815000863937373380518873949685021206558626688645440153221185682558883325361138064589021791112254773721222028628912483250178817397177506248320611810453494091247176466008274756762168970898989646909048385837608887010135341931132606681483822924430753786487705018176483665476349919348456392074515197431169218074350561477443695143348221884716657069351527606408217743282301735580079914820469418010375001066680974057929025525904859691904473224857820102299226494198017719977376687560247740181214963672336126143028025116350391555193485701051366913482118943817143289782456151107148592596791252991700750901112318859718149323706164613518372682648739388986946444039830570126873839812437076174858899403300235092057827672421567590685612707360665151759800792666248468470215645570352583457176064130771854505393239130595487910377195073968552725882579753855405501763091857810340785640763592622715009677750824923190349345574564828630351038917861288213751759015243916091434267055984266805197537075612461307310162625469934960081723815512970302350889354756972488138458520390315781870467035116660682567441918505270917539578744930840593605199289496404088064856246580102597935888328765680835398900207809105232066601285440274442269485646651101380536307992449016340779131609213636118587479285029194460926536843698198181816003180797179124302959748984318318952216530203466697685507393409048790134419626553682119490116819718625358399528048345080449296251106075351680631248897799045240719380014080752365308643780524840390708359806894862798175867960321843502298297924893553664746865672136074026719192985437823958649098161955173151041880127534959079379321477896024898117977044002626134334221307899406621213086632379734773505440607013507324174278087331830405149180109532358296858061658420867457401047837573461103140170080299130120901463463726227553617224657251001487154893993592031874146062420697876988516835512045223193136432336740743221117281263628915523573240044426294223002449796960601403799661195488663420696424541263229199299197051728819711082452086160004728418860525868421201147758877544574013811190354073353918398830530299377684730290190081398079689833085430534441084242478902214937083922104018142715742335009615213612771205314353594178704054092541705963792560929770317460170071417837627680266613542239833919704238490151644480241492584976654906431219016851908760997401951828783496238043090107964209479834258636992275818192394266604494719316519543563575992604371298253095654621569010194040220880643606183426222206688589188243897950780215341243865741436559640909362893490321323765746822889872154527000226922378677736276307972882596872386311989923619298902227664896788996380462896745037465678327360891607896858061831591496999991923024084187168147151906418142506574143688954231746938380683709039879049673771579725796565589855341958632725939591671649276098168463260569125862844760220890916009732154829332829927044299344711483368658794677357855299053535697144985773322428389622052403701814435784626333244193040657331934653444397195475862857756210878712957504868385868990602443199540826734913106909960050419272048721064322661544127287839248387174190378240413454010335194967578886672665894561475420221856370431214361968117386350737168934454164083736716783614547870452728825024455003002503073031625480667028367534391639316973728822759759736064244880970735054614218253466575332520659534222680469249277356886584060847152577583561618374944408528532172843097656557044439511815295513931498002483859315341466305762156596264402350581269412582881224376308862144408816511750494922055380938909433941150136170734061068484110329943617026129936994026371228907720980532685603018909817440963301512783832832479572484881194374274856565828519191188509237194235198994266853941441527691603082041923521054945964257770375967507028441082319189282766853371617299301553564141201742225952130770984363875251091363617183929737871116441298522873673130058668016065963790185041405063084399737731856091767717540927311682357932177803369414596193562384106988929519801273526230151986348111052126124560786628401683587846869752314202710270804239294495971140041915535422618105586221988470982768675888431447339202772330798505956741292704799787349382747450358463290353961644203444934856869711984100409680203323064836714459839614356651328719577177301471592914689625626966355760110107379270717458148648757911983185759232472090228449733123907292561246581097564661935487747756392376360858370890167715538868916908973416721580365101296776173245364535450442892525601473617493719654217955680495348956912196531584482052832480791429057446104903936386041361982913649502696096626145156603914960797576521663850464110314215266441201688653132705419668712566642001300980017601031829118187119459687596225535989878930488759143972328988288703462398794296182728657582998509216712838552869919933825745676007339724163250402218693899687146875949493705186395228533557849315180694834548660798492000035426919041160554523432502509600121007937922535924046768451694644982156371254001467431897596570170740193812556188034993559429064224451510247815215902216159705631070511603794835819527327826462186952114018525456047389950126999220067134248552702246523909409357398865364937087268676384935751632827478328163909737865391775823635045123139044148665923104522873017832996932095301062673150713209754698508780962347781584726299299202030297357181906641640569358742078030581586948702099184989094636788782021675728371929390740090873476337174154296363670541793520552101214208375498159350800711127602789582377602915156494568067268822373288019220776530487336730550119025454304871448001013535376444048396067795466558489861085034128813700800814795766966487086420083078205781433930475411187117840291695076143368783805848030593078546560385707483352465923408048188078385265268958867061545575884112576791668743733642860481479813703262337615109975146435524069327915323405926985294985096841695557945628551097076291817746642993906293727485550662495750488638214105307641003283029256002648163934265878092413787906187502026319156157377801708104424204283355321567378125643413459527665270749774407089862934738559777456702522640052356272404684104795020812239306161455902637440340210974899820181398402940473412944335639119905869191564999221331827753695625818583961019931901331646646019688621960286638488072723611023999993073573736638038070076038216503388079048029691521957593669408287167455777390710287176496644445322031203919799587336914506453332561841798152319594216506619447619714717565329134985475400622164414587197437007121916331196386225510548593476226159363297483342993789444700130322467410295785940113600169870826101802537567232079978372328703099198918043969437561222577948708644531935044883521279766942052253555614535058534585759208825386586534725465132196158126797569450485082693586873215638159522718784370804731355588613243086062397309690088429068486231530491012334102783230481705853595601889707528404496529672993192644336738532872475906194347070024363185481422343236831360961065766724112745941621170322937702704604833300472391431054817668584812584351164624143988923690130307251030393355563566398474102449116423600812034192188829480048825361725878499714277597092051914667143859349252323839422799226600673330664997484204950785371501499921693625537271242110229086457798629463590184220599997899182587380159055901581012675557183203210078685545303731822782902652590191103973642495675197744414085668801871921352082380559714880168936257147047402231487474088022507202662527143510004272336120380194573396004461878213180725766992859863852137692525858745392986096469013890144156555496839245326046222007608284397597374536818766528914693568456247285458359450064366020636226175371151716010672340610471383238231916200474230692782151408442595433694379863492536102424352926558932221668759243430973488983603834011761488522272914533980978058350751057829714120243145417113091854313586039240351806667197436955779356242014440066554226677274019576826829056429808493349589147010299698931368602258029691017255218978678007254374686443504959436156049339785668593611958620455698578405454844402355650478687875314588469212355410229613221087048909253725510858355295184528870364009901378044617073400211622082231919128332855561322419363768400459215786953765998405085818990952296265252766255930692916234592261189555792412948603735674578382413464954183807570702193878036847610858075145402687729005521380053691126448351141120354266743226456112263534590592691050108858312828733779711050932837749077564964825865717188201796317240326525497400318128170341858810257989375040355518949304926262138968036981484246841497702415720643741118408705205115266994659250273445865162079706108236309183064686523506738521898688350328531262329540272729484991292702294706822069494004740036943620885236722237209077195103581618915627708445247218481553817957859910711692163791950616343813612324883435431402101518968580887506771666106515583861916712984674797890972653549047486875864883628447701671801971376855374824415481043771841516595374139555252626173699095455151492471529273509914172897548010681731022152962173682211033554588163747184389882297914574604670545676656351776458269484481593751834932881351527031523229153507619417724102743102996398096573132209871442038320865759256511374553847677695813589012824451332986278564176080607060173381558533019853034382370781645079341338185443584363129029983884420612374357813646411229388800767342689699416960311537660264270692211763610168786436081142272745272026818881057103754418997421251431169172609093219137931933777027069727230123286179679740060929676749354075561368657439130983021334290494080348970874504326357975232273297081627694809037423416250250574094671451433219555532624617488359331655611417720894434583416225992988730273349724849768987273274707070767186678679416967007191238098796393635787204825856807161902839486272842940134447341488830170634218227730309912454365324205810805274019361578854558206337778934821582197898084316076637102695245666942385847718871013212127757173077797392659177578957854418607615554374393514658043368325480419140368166085538349633243259545495868337684749736937750989552323690904744041481905688775379663690224852930034621147107264249544907783920502486993891711076520524818306908921350494763226997791036450803663124859606484043567776785461298623521563723872817129534459566143047478065088046581788319838919080737757706241838731161329895455682689725133303400369788703394651271608095041439596773015068166788511896578443010110891664381397100328164448792447637290854985674560872215855554791065730851068150926380203004366546320184777784028063853581627995984815308262240835957009381269926607493414258310339221776577832199481991844530566147599768388835581262438112579279249733010206416155147252619334586340445919128965214225348807341533806073717555147115271737963870464370598564020988445826717179380937365179898205747468177521226102677587548011737002086211757200879080238254897228199679128318916517015529015597569981253178851044124220154555877288998438901722577443812181271484590721030993618957442826602210948602372220875900294902723465216810687142015391582300798255470163355828798046483422578943692544461301760051283544945644446122232568740584743648869575665313755668988062226127949328767244511105275202299733449605195113953186927708342761123531482758481450556845693359188388668870121622556440493761856799878518984438349557263039851482181744313757547801926927554003644263671828367201721827294364885025725223525931212610162147212685896935925493286389966214709251788351345670655086470847397740242893857582336100764995696276111797048643527685034882642596700355624770810923986560846912699746275064347760862599321474921624043400881384523212713255055949916638814087914522263757080565733268728789670875026274293327061545784233691018020834689567070650444659049070593811439217739273051545514425405756182987939450311129584108394402184249853190705436977309272959018867787646956982039131612141744633828222433233757918950323772630107207722070911633019155834426393071734930703859669478350621558649288385470189375075130353833213415806723766453928467740731527761603881431412429487436959902924704934216970420086804045919012286198402226494136839227761565244408275295539275325278272072528398095550303407048579804167857368921064564518670711397399177414173234068554281766488239411095223951712809115773712292924686891290678291376121592941378911617509842878555514839814486590843376672931023743888778355245023735283183440853333140972834098534527638822966666853852686906923533580848766894929313615171634713807639947113473044796645212567877192479889890920601727971626126547756918030198919214759290891808587793039837657118031405124987004762689601315136725685950889718241940235264390510472176893142752826402423847708116945907991122095918961731719189382245353139545276058124567935456879266273705318573761490174483772250933870898436429299538831131136700833222616461698342299303552942011479829293988502164874676944839883511251534144649493049920225412970371333557674427129107103196865132479845298582553541658627074599669223576913623404309571927638500797996120397946213440831131740537167692529690901095235010039362036399752339106897824211752232848690391448695806893180608051037915418195901757211854320880550592799434034087251837156205105246287407307161868880699468115512958368977330887338558770195724161459605642546095115587664525344428645340816083887321126220643307778663685246510641103700655543704652305612626102865688678406563678333322414191671772792688529550497104936146226534190322938293594978066439140734526237476264344757676936002986691830441466874973121104948051667547383705481644319329679933889835918102289304717051995807032267403954433511633213993551329287586238275273800268882322104844576678684084655000552396810055236604507349145172321391062760939345795310844971697193487440154177410734936859267592526009730647263123703464186353476407227805854751434325506334791196601739874974860062284453704631365007396033734564682290229004905660447661357698130176768712845691788192552550184169522839625991270447356150579691194122411646351039476679799036982580301492837004729617529669901353287774995191606402059149859564683798643232015314293612781513928313550071227907218642032172694410602523441794164409869554570868689782522861118115262797331760326725030389767327134552748802468759485333695425226669499067836467760221106279121848690418170583461225844338871507942184273604699125158752847925623879292117803771633298610342072874801133410331320597193876862489444161999910764442430628842622807531174862056981863374203098262525195918351727245518264172902344986421086051680505664920602277764712836086953303187495348565157893542689296003082622942942087973569160893456842025743255840938725674619827930819086836462760964517963205212526327219218460617447728485053246099401931120703350509735397100580883018527406153762673399154159169381624744560739344425372355819789341001697536469910205767471386424547030527209124715913485076297897696103395657832639591964838055689331449655554641940399651225005505507848293294755296307043321547919116061200053863816501214383724517638552097431749417773878860427283601375039053178912106692932773102844844335168966087917882163924089288770789694587197300220645937207501536742592474247920104215969624643931326194322472486011567268488114861441748567003241606848426717729245378583198305986812449233456467069060428820370414923191115240582317445488636604222173933483668784898420047369878119262970855888327356202083854142676803837723948212801388435592594026287904599859545630953793169437757203814282096809367868675851403795733515400984594722241730941002663471953019200759632659263554265446660091122312883857635002341335753444189525955857862620230860379091302340051367403692261855141588390991643781646982004274634210642705966656604014299018256553529093826445535144988653129163165747688868151145352583856885411108973109382277234586275370141077073497889688494268118125032302275826346697891010599215397689124267568112041793378446595592979112711622885536437118593324710316012999191982014337939138736993540588233580204343372301737825032724475495748354785007868968767056388632974074337575567457712690915838921801180307678087784425090950516167708279697192069231053041907710470899906244561871500771334706966391428540946231030101489119315437964141556047922967320339797583695220951779070020529327017752721112217742519277018086749598377148788120265244619275838037197740728722459917844353990036849555518080256727376687628092282061466537172981856939957599851184332179229594823597580990950978616614196203768146942193120043300778702879465424728165118650556832744087605960664093113993756152359548475378952182088626571567401016971838468823947059050792007725633247687690426125819719510105415945544344153327492695382955717568489533245799387685885298839266620535664157731822048600251577344157247996189108590814411907159872813184645506018669646300639796693273592624411739707247390468996515495210449368099637377045291293564241856862603470607125666429415915535087919754897281987095849312793671823184569738798876192324823733897153339920760585743844589560732297598784514863549311292059189432723782320416282853375914952764434480033838086870806657493639011431481675890144315217637703954540380999728523976519473511034215333360327339301119484692662147957474662115003301849197645445275784304147282151165992050292152308159162559358397904330509806537203306436556469964095612257225127388175715356751763882173321285375126225013405488337532291631376642295312285143978643994166339199453202408264487759649631684922066338707719540889107214643312983504638651323787846033916841033748147292368213719276898175444946477879008970764777160015819163690830750086948116374123155191634690893449148134770944167735402793114638286115016144689637064966278685329682450365596270261937854048705606876079574880146488100834698529776048644325957480508304123741474021183985893153329605117054677711640693106546781350033239371808628577860557008965603434254045098003165071793224533132754441681014938034958577711756147032371653969230082379617827606202545577089282400432231512116162248000238359001691380990131213790692239454063644287016348390929573249126470133045164846216022348877595545523030250191511908030585204853734947838679279255111580961358778123368296951933798747096875408902621488668673114854097647152203654720541996454656716322770032895723349711166258791310872511179988749180605006967021075517626715506504374122989619004970254053770339900654557490609804260523163023611653310852282042490729412960954668311594013477821850154287394662050364549445092784020582804378035842641343875211701518280565443035462350534988897138991595466328264524513731345359791729144018796288853462767949544075030589995624092147473826609478417727066671282117419556099164332212027237381435811065572899785517953973579579291180720660907849596779958871258001340809804842742053370001236228283280265429622582211055464594686517192531386095050846804642223706764115876533245906604787095854671440112926941315987610775590005041682464085221397242402646947183572381795856484163825682636898689791938766119977162213434255503019080284764014398176716594524404523219777883386154498954341517716874999700110532757290525517304974599057218275932095046016388246002972003112370989442954124077753397114132032388842576903335643408067831353795220519482082240932155046620224755602293405023832494961812139632363390768514332123504906317112894692103550237331613261750013004050250646155529333550532887005052412442361938067787773950106312072049353013892927453800603442589800282033285231986966121447370155488498920497956616857643590082916245006854074679060038443649775515483423205811212183125158889531102083447057520728936883391159335822430094550513814799681782743025736444671364084533347183215196285500565312688950031435353594892667755893111803174929736535449586406494585389602009778226759470873135415895425550288879829033937416820372463624642628244188109843045358368532370572254781571379379869529457010144168774639036345418597260333004994972200669306224652106965211509389064309645602877276855133602256677070393716993006592135813747010382757553874449684990357256871071884611706704326172559928124046616641393398788369472508929815741359015330581172197979389642301338150150090218866784755397187328533442936228247675986958807788061202521825386178152912556011244030330089863268159189375829161779189145586685693226759252075359112165144564071829007053984148014503252781826182816207027079205119166553655750825150952702348882472187342432196612722938042310214661990921309394932321786559277852043609786657297757734306481649035679318597605440553968435267923214125546797317052100434416231895946050581867151001612646598975826711345226622137201457939728794744146684079083313555593573105422591497891928880233031227116531978665389245534131228873316263258960819896198875006052305372328142518504127145718224026095257757687036536402518793962161482949273907172024756910820989542476147295482296421722145559326033746899919932150614052517646612581043923840909015792437400324302075739456809439988616119544617279097811018144905772540078940648625545385300692756620150170091703168638359668351216431895079282126109877248767368934397319233375874947965621459696344826840900131105815196488111804982983343762477849363412802505807149693278938474409577747890130868532370288765455805366922878751554296001493300512477257777349371910928982104875863392763044402836636393997804369905329936044824121546509934144655026183319966563115755837384512557266513972838316298566306053451882960584478000898882904469752140967291232314806297119246587482609280727177062951658880962287130475491805421786489067743267629534492405391303070583066853596912746476173443531573315955201917286821555737822550504369078696045488538947914044471900323844971112744910806383451534496974033495345767067219544242793616455478092918461820004674489735792908108953882175450475847233653612538957975001335139016417107795444479078603207409211171480082004737567465766647859155142290264794613521675860258604500311314159588448352005856216610358327925169584205107147097556998899015472453584456231954163348697336512367944746090451755331486065437116796904756856794377566202757499278202324521037551749306770886026971302370018948375984207698052275845584192946980468715468493971444737898464355328419871177921271763254212086758658550566685270287351663284206432924192752971145127927307983137211775754048318264527762115090869895686934535880758805382898004221835875169017849638088061751840662301829097710528861464490708413253365155993575413020287924614121582840133296821554854408654313012067931779904584345064203689418098597546067994158950963017540225772662245492019264409279730251266234569349273441023605357563703305272686462994937058044512438610717914860518716274907536774055635323888187108044279895170374246763673710481600411356795429574741761394623035515729534880512557187786497946839141332199338467617226509539490378999297184016629470518540327909542184570666529137556967853089525978738603802139827122134419463343160612690515684989195453005613171597232726594119745550851324685760508059093405493828677020890746451631079431934459040469342323104079860180963704131150145779288759812397290778774437505369934037906315202771549807064275838017797473825201991570773921735725718254075762745265669704991678065763022095533689826338439270571267821753914384809554477475396583126538392287367274360781793892912726236921730653533881583540030455423538524602049241849717707116908745090113508850331793663505943750967737446561943891433582546549897341525636114379725129636906636317893785220238177873531216888330069736652117669967349461618296048424692629012747479449085022789089199977648061234866775091702484882955706382437493045571984491526262202105854316003357068374929118716988782296227226641641809389010264967517329009602185441825382451784475699588321830378704916124505549110285615410623982263134737470779129342991818660578108145884710808900882705718684422758370712836583713568572621247705689164802463126308813336308389312065881683806827635897188242440952213033427963541687737309533057951115067950447290302438639157315376717722294971318978119421022766766368052918396761551737590694285863824141512971740765099742167035139605955574850361179087857967480670376686519155884219011929010146273403074188260782039905841479628125702743315790871617798047903312572258618111825933843926685468666728606659771929276470323644683472838455669447152385005019404893108025950907633384531468554810234797423523448158546428404607572180849327483447764032535623806778259011898379190600089808412628702311112838978304321484647875271681010761457941557409753484296403787071946296999566922900805795878764786784343927200360706362006986273073304673432162067128298128234439000940276521614738947438517238832318994644882289085667842048272247967578637386951682199075710672085202225219393372163186725062600135965175360293050520995903125942646940766144968166084146822633342884979175092057057011006965948139446781065255400424331179667062717335608252873022692454402247061077381541571067148435259919692586983420424906645009943852950740653555105377288885824719315159615186722232254063356571239596200178424001338166748370744145730964980169905618278717748619077799569498442740189541899709568637833060097901187855618950908010163914413515783408734862434889772052301333088114763868861134054168535678181644940682208206361718182489456756827789987181358452737869385900503736189800276532718418684696842413580810485267292519472578323912692081355103601738869621712619168444109306263540158269664843063199715574418444940403227904799692877834298452495659062633461324557775661725732746451739128963718293735860627479613966745112297524419827652304555189372979813465785674062900728039435031080784898583231561146008578685124101480241267330113658546546046809193417061094352397305968268585970196075642931231769285050641470679771775432168931255352407728939192482635526655763284317670842097404542593143948328878625466696339112731417110218090294620109272919665953349679886702311311493661748589342229553048091663820681930350734268038442710398862854304515819117240208813618968648667654495336652566840820906303868188908210517827146434518018692356713654305725727584074346387718997596101735696501777701291978559624727763185617655965744318380306486364847681859987033114631589443922590138573831756657851146588554219014957117575177818993914527771934817645158127010649138892075688885121372125635585872268763858482636407965490803989347838558249737239638668746212986854367204246446739251836521727654247323173638921538374850299014064933757443012697339586322790304473450234262623347820881795049525425964436926626098722755178549266604637743080885564445251788658510798301678446607590973877658193465033279492830398312248002762349906769033378470273154172395767083408716790056384139343274196238366248721788542769293676666215317244984790258943993176265920972725166527801306765398204325558017234480126906029234294767060733691177924637079527521370945266458513640256119224616774720866173721665092834085393852595106395591837331757131599483230719160648843718946534894718007457453876233121152141283975331410016917937190635615058270594452733870629797297493080174873938499213059038934949784410922203019498916217237721093212297764521520940045686366491424695923239472480367575165168932149743279419219697536908785235064965581419542465971199314552168543553775018213071691801230614821847535102874702410681022221716357790581389897764117887874899889694875783899294220975062331188169690475853447626052526978858148113597643049335244881202499958226522448266093470296349572550502312059341390038132016107567242834965228484708895026420028267476543743244118231216862148588022521837264826426265798550557409355646030140435203852390093317457222082960879534980881156186805366543659748931699197267230421642916624850285659228245659297048780386692036119757786907984036803283637219018361895590092038173494694667761815763134441333905356848827013332962056030792894318320589424568782113428403646500086699349245986237024610216622244542681790533824086208844524315370187426279917534525009816049547086905882922076946765854071885258810360768984835508373837495903670491008713803955493070747347325897987997048915530748376991453773721863270988057262324638877688007247002687496136311316064883302585183318816563705278387791103695952481256350483221499386998360417179886318879366138146086673861174090718227515963661127520954229914833277055974108833827806228970262538046312240210095479968892262985670839536121406425436063141582867213054620575950390113613810172840274462230218380417005673261037274324474824950764138825270235192287102731154175328232928022990301469090870439915373326966104508120144446660700054830333937018584123935779137118951029847218740688399018378448861652915700256310806120747711755132543797647908713813317959267955871239420100451505408232355888509618679108969558200651989736312636426627643296454132311241359508131347974165663305502399050493557143333918065804340054004900148003377230191207685425107679676572855031051956927142798575775286858812546774236317920465795025801587452013934022251416201275486017199457655088059703724080847887631953434576137686932353921226448807786348787320716350361301464326019378779286935478854910201607670650133257621077177788496745636577085302877179176455488831364178719721499228203285567701958823337186665953425370057156387547733404166684643046831377846837680307524722356729343044859828290924408500769613721769438316676989766685724632892785166018810678015824979174093663154951608648218039776719935115314094599807221365341781826742969164134306322312527743899192655870725157320917081482935237089214456320696587261551455741774287763897308039723514064233655642686473250938864063187500870737048612921111392207422628217598326549647640576870190856206090405341010379297958011544764877778560532068983047836210866985747355249890648471375462206112331830807720263495475549703468181999641379296121618896221901389200956721356069121642881027109963171592291286009704140257288666573108698708849551237598524488875158317996423837884835836449379209604205520322252872690480478339711025887672755018553826271828558273851673261198642887338153364761634604104494586248638877575050150166537015091139271515179267049915831884363567122064888874575020546752060328212402954661824703625111424431079290671664602309813454414130483939188900372797516623286251726772705984047633908755990704292802718251409551533753424355827685704382353057006542170353933196561003248675366045498328829487226272411258325016363842405918265059376740412737353159161567025859975287848521379658907937515321276845018350607929468619138336785321839085051832892347454878792332970847431574253314123635399575191514624243634205084358383424352246104824656660973130808509077469127053862290744821989330077095648596795898887319255532320195019166946033181735360030528930355209225790339660656371380713978151057208216343505388250279312093772513430242169991942366789243663329385328516697239379741556251583803115084818839595963734444869774439236240095168331656873306369976032888184087552136894579408649115867928843526319624103142214477259779805582216517499836452821956082325303596345477716589400347752080459101008797329381802202686155378557262461208622056671085869790619129822705575355253893169195102870796481656812992975727581287324545156988752009106292194920707529029481096018920272660516609749437175739330892187382165528164374381911821235941544293670381037666493141450553645652056628716896743745289020571982087075248761558120895879725159303220439043268191647979987531047903128140968356434039359692632566512710914673922663213746672282210771049007281322315098377720935660541271149639550774296753948970960714229633835278813621350754409996179314169479889388980191739191106770024457686705109157852737219185340841839870182275177665034865324845168739329677592208619655233325078978937044240038314305490259429760638097382211012742574543828080011550217582036118307791129988411077327630304176636209063004126079208032826645918883940611405368855848641608323451774789356980976591300992874466688974784546558838951251228166182162857617175207959991666387342887935602129365239616258952744381667393695969130298672395093370273892233301706845995467639424697165106886254606604554209576833359417037579462145033723842685416191812444878868209462454691136700949588573967330685672413899700520807271321138657433431177196595935742182007715306645999421887228266326965144229343567610708857830525482206660814836636175305123886204950171230477127430670874612234003861482204014353508923459878336511386004116398773313737807130758722257418459174410800119714645212705533083504707055939898836860388325560234620316956423950955618674028312851805569960101198656046849410236974495872611585162622938032455607652571030733122649698960055110872199127226339286402593823627635807289281470717605059019428324631480234331207514223712645527095467525400200329678357227759013068159572756493339936135674074658485253896454661219175326804018418059688229548745631906185539306634235285566986681800523580324152533993680774485026472112870975544772599548333785080213176043412623329055415449236388313159764639694906154052918019075294772543125386808170733466672318405225700333116188243107598348373799448438430749040523224048531147719603519954796720870483171110502668234650194998289559057890725626047442998048015528074175308258167575679012641780643952467092416946119714113626601785427302166321943089161865901852345653118417537140293436369440016153504039345803047719255849550775620165727686190747836681633785067355057140308997020486287216807758382037879631103481804398066435598232132295895749754740305908517149235939890867503605095094822531700403478479650101754402270487784337583142318548402548641049184858752793666540524351056831588223449829109319089654944437342469104166591519491343736618180157392227634124873432967274887734048555030214812481384783111501316507634368602990672338959903946957970985211196263502378893718433116760969487209308940883459925505782228660981157640278893447042587993795133197124205430868544663410877564938349143942664416264493593298494674803417589154906450291878046133829717394138646827888380370514374861746061829700782376107060307645014346337895683180316984535929093900482837795475561764179163478069215377606782836188104453440398850444259358524684747700788080531777917916424474520729002865637956678974133403071885937748233644476625648870623447580311460282569209566667267122302772168168453059013518563241194152939753248091724187347125392886158478912229976110808647634234443647825416462677633439412908469406569615279772277805255688795247454466725944878509669895980574480380170262250114961669165903331157248387626038568950894141999387377059128481395631855697529718433209023175337152174718694730289788527407146645128339520837407785929507560106087513978933008919766154176525610558412496440440091269720983716557787056226594365814958514040894540273164559727336474366320153636265411128136453120758274498438750736141442271491094897007941474738765304607203896349512950118959263928651054103253075531727321765954764875572342555283321971162902932571790161562380815438654693202201993307074298323430405146453940692208322789998712441755810027669261523060887510278213217830556446711204659773414126235139080253746289574855252020434675185914720834582369108229495826870622527746717103526620100024330069555299514730471317930880423150552785545317897207845335566465508884491116950349847619139100027208911890376496255709859245207735750157245299332302769085179746721020004945745366385124237093038237665692465194904439177270089951812712324524217195413631592606963007995251483060986996327883309941577407625711922541477569577686710349092096922104489036148964737248786619244463142336742242565762370441644466904944677290483219558749605976816794852001838766482197863468434508761226272600129747412004449833198496954019585706439321750001873161258626296629912136366505935783084185080520626816637443542553690953331111337648738693793442342900091852409926003415396493825816292363901714450237328419384286840657413924619342704373475197783924619701332833947149315734114469927382722185648798380794714391335992018992182801604283181869604981885210995730448099764141728328251366932789321050956348883895273100871161771024547272285728754320280872993643052589604886228000486826172755760438207594102156792242354231168213868059867543275120058476634581217421590676491939466794105318233569545560794046177379244576263122192525435626417220077601628846151407025184007981156669523496216332861758586426275892610114199874462566748086155014318833268921941826691818149717034024854948542747813298486042681533536111197739455866420830889931680543195616609936258992251796611370165440810718259308129145453250481969999392531504314549622225350625464209759816860394572302874041541091053432052732530256422287772996679034498617655359697839597723486149323514473189977118566904536588892333004987804662446804758480471302749637392636668378950878850189112105219387356948562466706004840830041305252777710180749100215592145359661068427921342792826360024176644366559661991440691812207896122334990479212547074497523641723708392092814285376079325776499391082375831089185516860929263008612148870162749167374798134880680890391120348979053071106562937975599761081291533861733523351609164441962387839343627082534831494389565303410085046682034329413941467560048508013180384350667916318511628809634454304610835802442425469236220796930914039053957954401389101577425643846384477385126314314172062925545260303387105444810191996391331372553058988576373828413205098484119576457552292831798474329852168695867092713059779815165256383087514218298654751077448630323904120802778557708327077821286004288868769991547538085801536982680010569613659211760897321414538119731069026011502029942084471015614288162828775524516141711887091081877355389651684070578093648120972363396563322643948801266651734775770097545672373144838427600193588049490238929453509573020591644529903233272316422467310216623829705029649081707034101624364659559775196877425926015362213278038387649973502896644861459489673228736405238610776994029529879300720546955447849044116515807133608182847056044864810726016964055287596515643539632115146702042156638780903065385230833491301351291666736667971800595869142702024106695779870581021912733509370247319439699434526383443830977079206142996474922317996900718215260985602312416519861258802205412235477041352182665157251647269823003822164651341878329369456520583948955444507322353630864992214883723801110070667600801361418290361353828102240417630680944907703091286695975847714325039055094046089680018098015557174265656126559712047587940365187626319116196929747507838453235141800879799331426581466078897818092627196915678294008121955534766798508015043043215364305359447713117380434955569361652917154212234068579787607245706925078327703581811693342813363928999372589929419267445732815947139358672092885026702299699562608777045308186839962476717939200472173751265294813884689732605074960987237613978281662272703336090238944828537769404469692078679824058271171114975194795541792104827899048151574931445153815671994340177366032107812462533800518699589875819071154466762957662645775578654611714544404682793962306959777615934456852063268448237056929078592802318861167909752083001777823251815722094059308091306872415885823501581017795068028169527611691575968403168998960408125620041137484305671619728324990093485584399584525185632900816523093785823955803573648394666127600577253899523103274430153527599183448531408254323672653870646227317051018905675602905220643358038475134150776832172482422114758522327036718923339728979090736621004742540410453749819931107546773440541553242980845782207104537031718062956322601643700132601750118412503018923215563081614718852715934976275417808578308722514233010405475367303326343345769120277709699566782881809347073110205631413561501189846769274058856150555126788252970167769692832567917785031340730614312553568154905407816490638899327521754119700831927177282904467562389894287853261771537481263303797575841937490896597944763018918653400159592384428127156297559011701593523505951204218769081994949227118644260603884977693652347410841924702213285536202276454297461266319961382427462586208210785368773350890749418613778374643861723073873955111128236655005421502399253568682532081531648371461892719832305961748085337857948598631839980507071550001776215879850924045829080089689544347088055668574966504719756153428222246845085873899459871283642591664020167730247926581763275791182638759519902716933268333649126706552839790116065383848038011658148626919339796283240006097759531297873727552882712486937770325896742228858433512316907849822086568332897930501443809252723957014581665494743862186623134305653765367137001895254722848759229762506254337421130038488607346888043339481837665752809458575218593443984774699018087128787570327678272065995654024904922875108396263493290190483442081285284497554464549726526929904590642056821705384069694532187081250477883409617451319256909682525821058241209101371029597150006938701837655114865428757726014423778359221750332829349620627607526138619158344547296865464871888903869749759519436416004957860474059477665493736890360066185796982518628532843821812655380383222889397939078381789015281985446705123428614485296732280903678712013927138514178059168668605271991940525846738852239442186790347020908548189578002636796622517850872135569015259873548011820618762728756154233460416421717197581475637440725809545909291872743625169255801120086290213510190158978379436356455548706037553221372146145274782028442596797148255137496883222217604069057726410413082727343713473012637326353724267501054034217813128098218376404046019646739670829736452422413956559160287463825676009269211114787580287655642225423537237871509155736065507108526357226512101588849216077621511300786297627329723262092040221718202254917517238208604697845996061799145401295548279198451560574972474506649795671878746452952116067954905931491959263465216699416587410833124756798387945612529160204622377474263712765766699588764749005258752371589573545121501536264075317781017635707507250192814010616484369340679871846117873678521407099628080386860073538052412053911117874219694243265606261171587224278683283538616539025984825196232158043952119621534144886253877125383415527804437466064252999907086373964757358339730716474371184130880606161455254388234054348798821362907019217925745132751539543402724837517439900091899832222694151550148317502178367837817212399228695852990165404394105199087268917664288958298511069584567688907575017281192929074882333184491294090677369823514454328235108591202952812563403947834062573954510193965093187600301201913026247203164099630830931730656511533594028856693981564741081213363307528918704937193260109571497540557172910737848207939444737199326616341515071100755543189480002410974927717103357967649059315969755152686755578075863011394015996832964033996539940115274623073977652812497519551732688238459843240079860808808892031914573048054029817358066658738500360418251972106290698365865683489254166654375159423388954495148434479823417532780958819116020778339238926176522085688286473427538559329417448422043896657613164447301542320940273543202200382731554384181656477880982714551676119457624857523325577707657149332101232147811394099318607678424775627076838562878465038660832796009155676997416447985809907943363889533811654501831898320998888481820716605037777299150146491020200896165529632754356235285059787045374648137007226702064744192146786511230200563197076672702475357049109475592608360841148256456647764740498838789110178965635793799468808647567871582477498474462154708837682618771473125942840028744235028990137254439206919577377076155310447903447192198910299377146448620162008677809540011665469147723472683387482901992864345976769123817990509345187078945643779725981884639087455121887641964526348877326517548666403029984472047134485371756259638750068908836827332905423933210259955958651642746114825688999193708178845559212965023688971033719718966900976312793457481966615927623442740980653464828137152516659709068088993685951605989452182415286552734021127335567547154707494882850610323235428136321238766681678362430672424453636723675335540747046418931082022430264345496849717769104672114145350724461361593718810179477494403632052026428991270055944317226055241647915530189020680671698563975289891537515578984217593641128155944502813441240934789879796774445504760751362885601533273538563130877134194519187346458868148233797811637066357573118465827610705265546805016217880471977156279424146556938147068882109688545866342708429725125321668299819015066519114308679752564806421254306131475101875938369571390812457441004222713155961616492557623648504186143746289390286056757588226624589465296227624690655272141662517819769678196473643383435850986488381291019843803657220052525622906878348150609066942284797070208928197858523622531610051425636486629736402482016025197212031751271967171677676936530258480009464002335185566265469786037665726496878995790626769300627913622338066738224823568672127739294758195883445780764621203478633273250510275489507701699180448297882022847868300012540807294386097430619696346606748345998002847073940398863152310672956879755042305812292747215996298920183212248263680524884922569417319765863555126923875723712133182645579183649135659186702762812593651190260401739718832417449837668099727795619444702211941145833394081555866089557053857831988640238782965301253254837198604199279217727105240774155500723852702179886320495757721051134492748058588412061547424479399902622961487434897970397865764338185694891432398491501555464415254429090275175798478429583341301294147309690308789957495492763348493571139475408475505614635677046359934618715273316370481660655290506875355290090446044332672895024282661829633607961713840908422910142271243952365740094850508177930648815472120736884373852543933621958468050190946557183353153735351864236568717176914739290943086060809475208868907925207229209742744289362317726168189374410887468286449075598702702859015277559426126093473237291535795350752996327472111766465499113568957044115405288356288729247471575374898604870632222616344701600510163556528180235914618121127482862701692438640739674919356756880819456089261608237399692160837830746655945285962569894361036130811374935497960133451729113215524089889332765833736708542187053847717041965206309002200246880304082977765669054178404212705702894464342594222734618104171008291789206426993399731940167729097474046089720477306330890261362113288522434380879571592083059561833960748731884315050628500429464721899270067687485469165805008420320278404347880213844806677894766955453604363782198015830758078018404008582166833735061526374924535840284660731455576325177441382901554950106367904829597375630821349129752291098175381494732512342790163060850583550174292595974752604864871280926418416210026174312471824027289952085660863399758419698151600488025210684039850407716652019264138368009903661869532073053032768131848674623568044573571474800005638001662075805111987227536810638423346364399135341809367775974639213117837266596969786555354312855960628365156927326148019521918799117736910226575182054119792609440748094183264045111777066637759188671153502716052342573847290341426061402444540248978622047101420337091701671264415735171361005709780528860035920345112756070920497529257785413567993662874369551711942301008112311865702823832262924328390955754089335901202288933585547976040567069042204266022164399068650811946978047316997073818516361081314658789823969916352357364744150422974236105541845887079218356621723641993693328374596775182897810330014480006040332268847254971742835489587285086160363930357609284016402610846350077894728870257507562868284321888961381071217287673383813183272400677497546040778921519558653727226491704258340705836952299915044853373980848942826646787234109741614631331525074716812681617192179605395921317078063662887241537010478064250196612371747774406923949540925496986427356155266505197561386152133294426515523189344679390139108169344410377370486471875814014939669924839807889944466159650186309789030633505220114877480927297396865498061993769586194578406634526904473313740655123858547189278523690062213269951999959826980924819672381882026650216821864501541656763238774446050767527881619483436497790206128642164406567670940769613304803806868567829434856119618731334590984622178037863627417528999697221920706391939637637998936839386506249214825480203147333048988216993945943715389398720270219499954582279119344105737916114034193249386501938801898922098615930542694719129212353129251224931905907235872868754419985028955109482542661601533582124159557017033577386499151159043681311960557638089199789581818389928963708492551179346016079251775829624485436976436058815416378414846836601294244343071169564342127046018864197150173715598369985042137364718244636321127411329147499915276953773001510857625857926280764684633189704993220258202631785979265363417540124771450725793247833617939336685676963900495107180939698273721761717179587426348971508834711688811487685952804332406612979360263462047418361568517085390920172514806340131622834791927106071661891560387646773849383942384293838168024888022177927436708145731721170635296956474887688078464700907340871544435303302830013197607950689762311046856440120590034788983230582643555618108087624883888161148464033566408688022983043888462969156874098458607641178488622825019897527750850585391741329968686311292646077985516866923216439242216050572009492451016621661316952503661305050556840840960482593380898449202737890122440635184463199433218431635116227254379437965299950221728366936231011103412203659532480758063190308861580005689322339926208683188391418644940561827166388848953828594214986485393191146738815839082788735152648642133560504728445234268839580185323990032144035073030131926619795430438160488289522988802526519757600781433649278825531799974501391979018902959212557741214960340077040774669462566998658991815093852691894041126698616081069362691181856368104335079824669056605972290811985546482726712660991543278626980540500054243205238649724655991706650229000786195935999430205507468171321001489672054456434804809313117910226865511781892648510388152800158713320758486304387216442080162476631562216574542745823060066467215926933165016659890497343143122416984249612101483738599833459057276448352993370778515715307554104741354525539028788149918913750135221926256957731646517360780386786334512008683685743846147198367905705889402838634985858234039625120392025003859516877669396630300018071720603743468682603738674499022980900224874758069200621551675419276095088102821688820626487102639710666046337866238328954537125694137209477063769418986642348660092721577508254743069226812299241391121003209096188345618065305915464235111332969190623487494151039832039322058966745771804280910701935590964323340909493135974411099731993236917913457196426177132641528739817237847215565541375008998216278448550789334843860094444588030085651499569535261559196120901332732806703943254494635086154411136332299955926604255347291876787860962090261383350797955942685723838759884058885778402708504396178935619113940010035982211734209580201188619774567029492830004736126675140697644305911244046695076258881280132807658283603872823365586535195427299715694993076352600615928029046624035242462015183111686233299888200817205516615309188455664830521587723326658895991845574053254182077967390136436798305951586998942731190288050637122873380814873822348070471533161688061154040687884432402288368653870655299122882186921226620892769194816336042495605009327239953447525293789165768949235147025569059952567954876755509923948931810428248829943926547248368668752970207061591139764115420804587923683459678496109201736678666789704109138642273271187090289215894188823674390014537638258560391647532378532825887902743947674877685362952689089112365877072409315094878254721369191051847980119311762750131873335089144149080895261816533520013159645971213942932758817309493385154410872397247009289032326825489357114775159796071457687272541524154862722321383365161378497748861955839281042997159147903003914177096483076848333073019853087724314597880997583467752894633820562447851606638799770803879608338606492203284554424671379640535867077063294494662499786827237377419533252962743314709093547000040728887365682235685026584690124691925146757040580970615063882389279228907962207540186755378063497067601499554063774300234159893417638313067820885283898818044937816468381903722034363847445035253012984320831287632761395916782193902356267494828609175007716497651185814745441694169593507250760958215141252836479966840640329223251455356445261709851990753121663064100145565358207406007134877934558797175992526065101812620565170337361947393429422814279221953024012462305147323928041217827452434020129092550807053213433366178602886053540212330026080937422672140472742205064749395600926141384661903464213141876581518888042624925167985536624912396626681839718850510620324103089604829608016975072585315354435688747248937175533230438363017716861203500358108166394279562635841492875499759230800232026281721611059759946776780984011236602583766586179100180335543599233777262369735931191274909394280992670560396677023406661721043973430550525761620852265432678520798389963951468284619238771832083974968023715421274681991253253258871310674637513066575940579714645922849922166905135639852097342721937073811690639552485281369489500522141862537701300789875222635323696726470389833974160306233253677922051621901100781971509846361979559664115921550770316259358147506671841261654369521814659866297395159491953414051118262201577858560858296055582808823853158604749073942699898932379508248483808292530044162707969380173157122595258491300353990970060685285185331350638340505213187891280579487914603236083045316285043240827861170102796146309116984678698711359141511901510812774650900723258110228868883768977785675104066849457921359475804038192456625885168664217384757863078563368772875449446475220870747218959807600021301339251111473205495617530094143068701430482619087622683582267265064043973317241856500265611824897454890049232812667710106489090873035514024450752083960947511323815589604273944872545440658102147729700169857542713014197867689594457158657094383048583266264756545231095639301766775659580107136751085880013602644601138586350217422190624795120470072316918305447982811608267543123615972238893441983479825703925566302231630918830063199442256002197784533754190539117695474771005295769262326456904880542119819046342425340593722443519343796854428468902169053396480972529579279626953505789449030713363306901205602751486388209077363529951395025906897094388901799457414867167599190236057832539425931552057810628749539463461593246869830263727667627585496124015028395222964104796167069646170611082966616425087979565764716018721678622133578819217266221339795247419336026163058902882140229273521913752389325740140704905869049818886935604385590597865188542926961413264478749011835331215591377037928875999893951912499321174691375591994448464889545366841745528688974810843000919551303181626894035065083947595162792372434388936902977385651130613406673817462199621429266232820863681803617426063800793510071067627451527731642393645981826878807595728931473722048945729517176550978931537343481543999126862092444492710730905089110056907257237856293146216410758788438324582999191311798300713887468023845767702293575334890399053541637084236136212977020459600810834543985443365321513570550473120387459303677447663525374507448370005779595384584510549871850829672473875888052951380220033227152661655996386830859042304949295546442793186392457117275911141029467232415217966460050252857183332611372574387839689486559944879380165503808551859853771559555837393659252719569137415387387686754305363729666421249141832006815783443113354338123456243447212625817756062846395796425762480005628208508295132162551421392548050237170717496068932185679210155388596689509799214181641413821999285102700896915097567627014585353833308375236397215208357211782434111349329152273072786175982897599553915368900134168557561234625266824257870384589924923400666367708942740577881610703436118240072560648705146657968752851922665332906966852204714469836660231591909985532966878243289156964974545027230200797401759736383545909642615408572481536376204915942671855049791438966022970789511939942795444619914989429508504384614332479988866169352641036054065050974412541116486877690936181190739407240499613975562708364943021318730229051261122455159356607959313641491975396141383150909445355114412952314058739803577160944013013708909510529979944813758550280123360466975129902393557876281280750171665987128264004131971065656880903284134149052002658435343823968100983865819454571564058976137296437137160634015049657731926870613802196328923176328595853210138486316002775913220560333462488585093720267243508806049353716120109155423575815000445459925801904790124002816670891345199299623670299250808152912956337131890003733142506440734755334355028961150943266368205532129320701415497980567743989949820348794373680959274913739618637524997946885881534469777635573040575094768485128056660987034672303942116184300723214482504667698573963884268655581514245600485720924585066790221434775975621323889095099108635208547770393945381233505217450553234989623461341260198932797280143692285318887054620759896313648902180817106209691004179646234102229098943462720420596960936299887006698424768380327878955223310281070396308259155195491751311872355000085887260030935728898115317514144795047602813736595945415731150486623851086244305138324116699508700509247280703209879019801788543052591037050977298080358442536369917724842816500064930338120843658424518009621557281941634200879540817406237977850326112391198333046379300668727462848892852893256003811901236934601857856977924711843945531124473600343938181627745841323546267572181418940520030534216527602182059620893133273400573107475418727906331804281368740576977682473483389118095208020948927975528661432210490431774608519855704703200410437752211764284034711390629759525508559007118639076485616061733452862414818223471486579643772196920806262805666208294905294240713684012262253852520272658514369233290763234567276571563370580521515802158116057955650910813501144906732436503255233252236949647256432638207669950302681056127092773948484270617000979753227547108119538153110598186606011666584949998931531707339979869040191454019961719841868066607721681120049906436340769082344903798346431226264366824891027194724060744121564630964497123022589352909750795154741939102976745539004357947133373867681484298078423456266909795876049980167560406616021447219780838294341538169635403130257359570836032281775019753601337968171027081992331055165901600475407805752891239293718875933675439369968359696077357192551899583828896205949044157561757639353320044863360185926420491497041480163730238342119097790073057468023187741461920395276333652411178180116586832406484382987017426206230383229078229268005672879357041310746259700929121872298724076937758238085359113116081309264739516878563562784904361380577713654332260456677891098527201621237364776794962443626404505727525186004452358083507333512284449785093186038689386101292272780503743143930179247742010895790618214917118608672234249484546386959079386128297164247794048888006489286700521472564214488876533428340941059482641762589068571641077199657189162295445987014001206177832331439960276063198476402521444145091084411647706868163500573251851338449310819480583717655959673398535048727303586714916813490806333374238336721339185923264835252319228263393054735306054619859196031105905631622252612388561725275698939952456888553191827525496908765139247613495971689515537251545754061045463778846428588221885221634694965505049853276930806123310884319583578923394687881667318146353884239810369131472232202259953779729568889140190080350667025437245218485034131646173136208488825470646794248521472379598337441084855747254785260935664061826845289556024179396610579270524633224234063273530402508336207872307696118402710584718501465756412822279134415314261407791836263888742192009742060825787838097185315517623541447784391138422618095981981609470943572277886151781281988542261059797227581726252878455325421141966508053404123508786133267136654186182837976139681347297013090524068869261543406949814910187360693731667544394879393255244288234636729203966266932642778008098702087437122278946674762170096063927649784336044520855627463369741750138133466826384221106392810155473743230486300784809022679262885766563744844736593792311651072231053966838240346625970976531913090825068181001725091265948951305328290418467425248228255399956530715781403231746310439348458587175484687451389830338293047345785217286546467014683986691244130370696212783719755987820217884785268457258357827831208230341584513305861342730897643772820170111878066434235281739077557082540224441785109237616255883224530021912793448314890306327819297898348636333788501224927390199890073904992209354623941784629146871578592760635281441532970046356460068589316470839749700286068536572567310353475451752746948146489218878199916739369274302198075869940979751348175879808690280449144993082378034421088934488719523417654974501500618893057795854128471956526054319551246024760971980989617650238043197634551731406300413039542500039232766161420773172671952066053591506891534948986234602483380913566598791187945079072060518909195483987927767923787470267571555442434833832157105119645366399974960742780329543109161495675035209567182466828730410164095139212769085548230383848075420053629052953066488349595291399469322588226839375019256912147615852067801431518083645332980566344884942527888954775193634150513389804007994955750604940445562074532335005023278509435008002765328854076735955823340350033340931464231791081562008696106345822215789215036115652307941060170094518105995037206921376614943678442987931784196403340328933446758544380156549935581968907959202263267634180171748056214940838935036225109033616304134463804483678352023259282562725579222646314781551481290127276141297755384654693935642577582773989216663276116962662370287843213989447792967983298953505896107022854826523274292482173842898762279153572531418931414184825500569112959973973834182968558418846617070513658276113871938326887860907813713136422508158703427933924655189455774160967942224056054009993282297876944758979564058815024521742696143182529199525832154652659953007394631017043999367416171324442279944199984089685970140690545263139710032230742029436493248558688186597964335158473577839959396675708197122957092267429349486487651193663646536538604173242818890832631813154872999552333711974677569871040687971601694087496272856149064115828600732429477807472644780847875556123904248098432226051848623003601174863274546173853418758271011129221242949514919823139045345960011175202464198477463034972268450051710381937097452734542034461128437963966848548167084770816321231706306537419707816632258803632481075989461433743677440839724282093265672805494977965816063514086985512705059347419167868381452383847452069778683156515246924406218584604146304356423660045992733625750649653572483845270405381470691953177866153450861516673570743928481642644709548343834651367146017925514168058362412511782129430729438606255538645441506847442929945789172154328970909306844427323242901173722707454173678307593701539031051003482012883626756429345064803130152401876436006489439005699416196944045772999469800521622215513679175816007467045540819851358154829075896501676049697182816143733553749804117225055592048266398434465208466517605765469571492174510475824598083766433205835202314454692959252436465723898616499943839149603062637648996632258192857451579101458091887733279554729055530157870983649059972606570498335558576168602390616770471175221532457673234213436187484241644858600774651624479598351551464987447687237257636116531957998888669740705943798854437321580785252084409451432020132889406106577047872179442890399798737853876034684969151947759212235517579999152022451184876601632386349968129660633791271698081886566567418925105945747731925890101371859296169098417104593068687501102268829587175795274424477956414893984601746741453611109908103286292537225928773505917388771288698605792275577114047144461644164526558722905196745639763894849025410024452261462174582101416799017160641571051552363304223851412080614698921674171841382494399875424756085725003143422252882904196197789293855827982208389825381010957835828017401905808537271336963420001115222845754554518978720940575095646026339927838237830358296766553978867840227942582646635952521214941308103369575590123136676208697086365832538943319435812565070062364851488671742515567963614091035829365712005231010725523930070315978990152460270081364030560954679992268904814048154575823575606941175902637210824182419567442225869334324050350264683185283613123957101264213390660651294435646401689724938382950847068134150903404033929792908851640366211609732401093734941272596632526644118096179519981751531092252502573802638882254413043931867186812765093260797617363877537930251513889282142486424382253873044433512354755436304264048962551786897192319411043987819213186925637960241576050192295392659761069521485106409042741938627293805979640765377279414134833316444722199050881090599642222564362277077605254928947475845460173052861047300479141500612286801547021464143853515477332215334187285767489921697036607285540518297661295417791665240915581063966156304548492166731565460763810232158422073968277893916008127748711089260383690975547883196836598475359797183197033736254611288073747433533281118749135762922482212188334024513375143317809160170577042117995432875470558348746204350359595992612622755170722165849139730552947089147516443900288899727489157306661813437319446104761871327633361813832241644029742060499584905974687670108964273446712794314269005113592408834747751571550784753002966849564533197290710643889129038004289207822761167710939675235688215069802795384236785772742355019906525500938868108611180462415636328171432237181987891573687674900594817507533449386381443884958108999210356598658995043558723644768929187786307174701132336619467101701369646208054104839908003760019897402582657320044037355654531955810300910019831269626904134790977339604155622750846825460399891055274621690666456039825883989252956215161459349060348775602666024777254994673194393517671960612916219544065176537847307010170326506054785126947229352304706838304859248473289217565270509743157284733106443084988909024934076513058697376011740250089869665209427106558600692683148753587632884125242141465292362563909814133868286800813454357492630583046244526927953041206885914048840134723866710022801577859906583413953925800304768604173404618437204079367700672418474307537544282187452183618809102632957296338997624213681005849463865604162049699480405966906190463850220070254548135238226306853590087406912882546396777985259033161816960807626059377001488805072329552364217245894055035169795678253640228775199312433675315295433986805500531043277038786641394719530019563040624029859315780465511224168726966526427068891988597317025875310092683751671320388916565319524341883248683655922485288725090137270005295636809382422757738870592831395847307777093672618347768234944788645097102581304624463801504368269062647089199458256916967593299322840475877239275933706567661834519997810310310582786694600689315660288734815561739174171685284695135983545021886594105015327939020700141817685728745804276130389841233099687118459166905412380939317167206489568233652710193303719405641112189599350352789233941551794347983025440624509461657062095406223924214559647022442661989944199149589435383428462717520824442740491934406508791930428356407112029833974802334193757739847719088027238274046957098556443531035910416712575165944446748170748748306939633977482477799624797574788721475102623933426972236023125832493509272969216566613532798581402571815726065216898307887512748142033646209462372427229816061980112096708489008081541758894961326931194419425175541735310237204832015115686697951183907985408907141590630561279211684319029060245277744621960318692940003611404231859851987873225878511972172721278918568690658835829403894085455508719541974637917204280292636655863872392991341888538537429839504397024211407631518216934049300087353014168261246507565904863640132363649973208197483728702187691934277742142934709447985052760690325905198583556076771878078457965569779842465098552082551550556727675995153039536050574864088950263405323184030856885057577331404586104561451216795691077898353452536648343581718610823295836045948348267353454245100498288346574418987102410137415701232801588153919973645033347235478977759782352829348905926073814183513669280928566207900688673802967125690646910367296398189881696773078555536498643820438288439047665603280024449287307266709778641757955639357595293013352481149406822209648813721863250385597907963974418757314424213444631585732449956885348412438178080602507043706690662333656478336281427281077373393219794445965054545311565884886764909792299228050603610591734729602194556649212616875996794737387547897513452210980694374084347751791440788503049924510411340353050516160479861884464387537342167874442121661067288623357386819798947748179679516373940506633127171789244946585411014007273848998630446972664112355345213826374984681508450257504313208391563273061029068512150287425751504093854430564660670428438445784866491160174264309373217370240392467701402486127592438475585091945895044815769389133042021909377098725892734784378243946108186834482573285215266806092268881410705443621623714321519810677152059091048283554957477158126920067242375887779565398118592970145566994000841587369252648952750827264890082829850259870381142904958654084801016616394086737445583518522516944395544474706555412228758482386946284476556574370713339171252810347657726276196253283291938614755322687476611881402077090880169278213997526734144200417203469236853244986259693544590989521902724898352269522857634747370825901177895337723043477998884176649878338274353080069478686387524341166732275548740096114118804055604746840870637594769442482371287255613441829239628063339010207061798941046235191185357778021956357143223294322886477671345504751820444858821126377997426564590252308017020532182771890842839027470015052900615691180871709866548446348206458323173412948399733718899294812695115645998764385138711670310466171211471534537271046614790188494731196962741242757637694254992760551722213377783541752234314097863985427288303824275761396728472027681696321578025043110824292064137215974193499527178606988833147733243406298608675339326994428361526798993974016957152083314362539344013321890311096265310278594921400281093008651964875001122836814987212965535148606924320930294657463019332914362937169188423758156030962550714381313631332395922176458881084799422733341034924043771695140482121615651778296392337333340328566650474761567213648272149237699694266605852329965331013820528965461093518712353215800350995158829498708724998141378686967731524058607196101434397810024701125294238991915356457092804936758307257817400181212676334091128692722802484226858532528591475279621900277604048026318603078594501766831819607160192687954526445908713391128016780721316540648483210007426881753997935543493720974281746595127936995452563739506431227528326873991627206872744352529482112533879584638572068410620928278784840806030144251712909656656614753889559797489820773535428712456437189553010786462768181103526763783639489350765817334145317804187219555053524409077711894138778334107595591268125458363273227365928614664275816720917628199545934695996525826419630121518277846753327431515368573910241357486903481042845769868322257083489965250124229242398171153807168909210283761602913022387025974771872693407366106722088523223696175800693494370383451621335369616564177606177598817068056838239249642365503380597386418979238330969402252392942541983293356576859514619384082105505330176333808245600419396358596190083726050939338318923909165295482209312001692844188082442481598422235349521600961801277268700825564988754081634306726838896677729593202418781494871112619344560275553284069838224422857381722853056651059356725762299625472307507829219379494759016198905703716788682609877726430989139136469747875977557462558008740089121485540654408079225862028938508395157095916736520615545281034615876275383922626108941794414355948676141492780093604083694098193284602472791168084573817234833435077250015285161018168419023018997622681346218526796286078678831983760851194240062811756524412770077907535469685097829235713937157740979382905845208740139020988827727916744198372935651931658241815060992358400434800144101936508189817295268166708150822634009531726208697475629891250975675686168924983965910212452013216425536055485453433337528820157657239136904296909120992823819499930661974229781418678782320850436449033727819981468733854075092543145780979783036807679540458760458722632064474296895592547200064046488494465253192599246066630933384184431686097472036865243512488292070999045456028323672628114769425571883896974711690960815898918947070314345498787898430500981762840400603809816812099056855528176843341283026220407277040995319550769073057918766500417222997131986536316434342713072453167585022942740356396513829278880896876110689671031305231557720737018182997521835974360149819942337047830655417283738930152351727094402301429787737352905672228001000813534236537035842119442537877295111416229040310125456401440237220680958653880021644302753469924833059696456832976960869727254425243048466869229826115466830364519839022276004944153603014628409097140437244590592485721337195181772758161987173966449763687108872232255156193582571946773568885973120846393334272397721245777532200769713911619811257722865500063337076370473274130091288341227484265843955730870441146699341938736751413966781523889260159108996508980812189878072938403674136966456187128575648147457124330102425206957150605037452772710109430079019497353636190299456798780032338445233616085455519997724951010009964242513830048260071247529395376390160956051488641738243621779330153754428526024221518671676055396123682992313209202844059589186238164741478183167550647449520851158739517102944832629645252819286450350572807553932524548539615817944550716990446472474156095803263298348724290931183276155254172791327293016412373337158252104348080604521515266530498606292647089179722777812819127099810531578085015146730903585301898093800927314257839580129454757857446675676212232349961015291472645531685763395721053733136290524395258052711343842283487486887545118441110991830112020530043102862274544224107894286152299001458804813241366644234829826159680151281676334337289219917531270769200912392951436397709566914871794087047441167358224538478762343417309498892557347197825491060557211897265545975814503566595780135852801693768064591381887851758205838211698017274605417766660441383139719150168800281553498588914645264201415949296376537726579994389976915416260562755607844161774659327889919482242178394708767907996584459857897962536933890683057515687487581553861729834104449992176600866993942402064174666525240480683468002374661624934198089221968308729356845060670846129167994329229257771005093010187568681737824411081490171484456287846139446074013294796216049990226825110000484688176432401889618413588117026479262407257466489220263390590152842894924855821718858397638260672042841079108686847273935977635180282177033181807655017647199286578573001096283929858471760468206781023175058781996277698907849216247035559649018759004845780046379220522200409622738308784649495434719883741677790127691456671667072016674547136193906492401227479320015296506901850252358129589463616340020359272221651050953420841270512576272595234057910812944693158330708074978694113754414311845128473523368207272106511029653104266592237081983822196325820157340862921740413692591798368794837230835321185026651324080502922541707313258743721112198367350566136548801073117547052095165247144538439310203753499087352168658622829110710459225351362842363301165646890680512912636928413377140688892448071942853972355407223055821437049017856138160971235220222452588807082296809935420380769443646168651660167878914772819769837291194732642623497136603087841612448590853387465220641264538137689884707789874767401304890450419030282810400114401013140697826607720662827445525959558854141126020776586159742355066055682169763768887961495021118016120288481857422731087291049951642511925035720874279112893343007066570084611436399138645096612346424451417919121579433843825379605817819498671337014146551504356406705589973900150558886578193730333082119908360773295275857592610441876375542558606202679661192998231458737253607705829530754276374365977888447977700499490520705551663077414465501700668788844568204653006579314726591264903418058202450628050185981768047682120179302253872514989167166837313511579649778702191165011672278002429434783952048545953815291145824962502018033493653754438440985555487782934831999374598183509587742851260461774726587063729832100083406545748917632495125739090136053538484843285856430157341436761892195238589562591740329569537273989112307195437911436278046760510956689424405384680373589314998851391672410995360272605261988900317299001632765722092275909087038093432220606812500269830800491455441074481590236865801748169470296158474045504801794904059731098534445614420037642110312600694668775912151326503771609669912528475451678133273269298610873654093125157842224211439386927047649355322890599010058217603193731129743450860352120770332526588561609570585021558109013963080020721116438017684740082809425758896028050700332220556950087271007862068527721885936320167603074015155787333033827600026616740980641858251738642506323250245292764564911107149939814059953667486923587966999753502267864048064610293971070915933276359131160706775058709852509728377372006442570176270780819548133525238540186161871760014312104258776952011313569059875366468041064632953780038907713697753773078793781572520543454376601890001571957689657376797021565338492042399536935982911816398143551831835146403048080968360772900738104341265049685726270417138331970070595457187241676550590069275994585756446691526869263392999745590619258212652195823230663644220198705819646075271832292969881386846350997951582325160129122075575945701149512661680735504145793860038524755830147081740860842930534782314868926165422771350005371486844706645530401810509394691715913746984710394188451193991809871696953477597081485350250512162715876693394129863974225930044264311424427332081540056472968926129533560552195551893715729616115960314935245433823748045138448732740535849155421547881093702199628449616315785974763836139820332049700368457951896886666616995284254926977860964443290120108739032207561694997223129266825087902518625498549771217513893558377341034013399384913098197179357554858888081425315108495121514136398039734735613666155597200584926535136858097402053072150996307113547242896317612313682644977877565361786220702165738063330538080995546132325715443655410149721241539649727004140426190135496919992650408232059807387330904413585388982998313399133512503404971298411155727887936004105920450872511611799424293563463853106017104310235138680451158914812181569196657281710593969053558099444233139846079208529437329190383336741078534801697072068458916309321220422766395518430904345314341903636840465102765652782809750076581677241139334745542464498026801813898291111876414998746527872680495934044716047156480598914041503030383033504896786886060188409832528592011675310352975852468648824474302314357514588404762353045964801822882333606155310457023119171297119466421404259474948511037617057277673233588052942223831283536816466049583472889648974871005074226087243424813446906646762872077995408885322914927272216984164681417894904628458662078841284728696999218027308791662812154005517531131630704262875184427344089828544029406970945085196039291306666508524240747707896073022659673892214322281888450056157302605603655661303819575140080142070364693255895174482718858933136907633307066307516241587700932916441986707216594407890571075000354491791685065147742824957778015033008871033191011326185492225095844378682022747457541142842042657536322372029439673136303240205704586027547480182033752279336186795947526093464723320981463995798444851692409981256854873634774122418493582559053053881796061388015826075958490087230829545938939495086842856404522410936432294702284544886567822525317576865061576652095804868900393371081021036711191706296612703840596651991184819838121218435431059258566136801721589508300976800653200330556223272836520613120810911015458664084853335570453532194580119138181219688079770406861836048883805948835077409638661495997224749887464767602091379579154869732345950624431498361893139297621368386801619238583575138607385682926958926374695736787327766792715495665458236227652087563415931431380101347489277761002878400285855737861589582345562553958686236650874038999267625730625605611250347987150860361727710378071241994216856869481665263524040644742706403261837087016126411830821880074964250769781445173981367742117943936383281822051980073232355829496247297724733776395393161794067825379455806314015288925304116069367738370845026466092700371469879522783160416104192797750796001218608721507037325347566723867232406843223738820720506250321395051501851373620553988015178316385269677803196146389368736023480941579201133059510626679354670936364803040668106636132685807099545130737230785727098981302137587209207778569973650148280662934910890296376607155376018792522055540028478879142503295158861011271955085916852207669664543539538213654121070022871295244666143147944967181072925864593298199193437288917312063627340087456173534817685134370898082871916905553440617279845127527055146310335871387515095925015437069003128006382410977122740911197047965415655304811089496566380212679996210726656402606628177439801429331000579693022651977374697418374324289878884970000867322987712330056290489768932345925319236251201130754742029055358636298899802620713140243981249880385748579242329800872540324700463935753627964772406607574988376517896638368609395197367635047723377199768134867370920479107400574108962495101827119090828775466557797025165422996772553313115543001524385033300651660735031139092588295657854534411412951968086670124932133117457035277857977624535139621300266718006305888815261937443240401369319992492302027198154846479541381781112723919721537157072270798895637622097370976230744913390577634746110553313537467698088866150210326965010605726548773295577584927231694849534669087648107757061112663781052529380383317075466673523558203877802842395085695706662931714250118043251645878286835711053876887145545343288281860702323360985793194827705230019070261958332312230119130986544303995020383087253118968870795569029228437365439480661698797554278358715275290895310711021765956455579697483815929500355735234281071193911880575745559780307017895664716431342226773869150549907920787031090756296745304984873584546858482942155090607558176538158378642447834442080641333194032213061259474026192204860912022534921261401115387290077239779831645674298390060551483429537952680351139715956917216910650751707304171029198298169685235768678477202672910930330918801582328354400464091483352586690653346497413163214428154280674580169759015799202903474069894250747784916756793651145559564986380011328184333262740845403351877948860647628877749839642654358507773502517955922342177401824316767311667554049624831753841581538367956000974773776688396233233433777323957614662778116933029207073593126378806267080843137017955033208863925059257430661320074932727670216413856524910075504578175412326470105192545891184373677346254798989736158399055410606810404314626776732123229127477789486322360252193144915246788277828865004685194471316350422586004861668388378748308007187823573331261195355603932763726262844823093514959421171601138549183476470300251528730505834407591396680116919326599838048345225347517730068561598613726693134712165931869139555203157368728586521082712502192216125744944858351279087543431178245621517365513134060361073982919602357337694158210338243697054872597036501146728749016961045390814059768655720710205697122420865330482468697566767842524071114480236294684436038584878307946655885805276160490506020479065854105878906330641246470056457736051833523685987307819490406371136818216609757692385210387518195817862304636828072065785660576089930268977345097804620744699899169527085427323271187111546525493248543486821401709581472698965401044939243932880742426172870877797471142970461823528171821697189797550083126301003183951382220133303432352332421303753299465815653406168603577141451713090552277712942025323841940964689323374653336759404926995942476010782747841617796710304079322664705255116845734787685781531371641460881447736225709307150940984679965242282281109698721718618315893444391475086561404943697906897584424606591022920582443490648419025070676160208725383903208880253862954961572213677974512574328872620863441825004188678525284801172493843557564063364469442557556777587433549976668774582449423645385325604053866158066118496357077844122016731590113332886555300075677745504270734427606316654606251242591126854075300666688829968769995235167861375675724772176931079134320080018531707128675002810989576480059110598625247281055151763408632811388241422903394662237476724168032170480954515383488744242992323099116708059130920142690223995976334307115634660600389128919407290311770389032223158423344410754124454567063123497792586264444685064653121066252461855335201193001463583615885623873361632171947280508184359391479018831763652320619254567109598543687327725558485243061621508256565716984119478092113264911228884813045050504246668975035335402931048574999034925891384292669249816608931094478765319201904256838518374425117878184549070050796300058179381043581657971619466823477409058747725496541470075591753321903485930895691846897359921748619217502084754493055311805546096374745672489119067688193219339537959707028154678750479154413160869552559280128481980901127001488088337749223841723742304950741985144335674996150727427049186963837316662740794406850923345477648962104350167129854138542274643685577452086277682920277139791463987997045008052443696176369121040479376989667738427429751419878230622793473724215553873023464270137623972117099647535918837818586985975110817996578182633702801584502524645498288139955633416728155690738498382774417993563117088601987733983161059370937238651514811483539332290622807627760130916101243556078648311220061242832106990447234657123792957943364432218107583081354807168713316855037990744875309959202336415411501793667865218572125676633742007163207119644185220133602030740367184015421379740209263802083738100869444731239902114210670209975277652862656722241827467371232646492230354992714470286560639083277085361171105578822204679451932277773985526071736435845880998062866665707491004690996388895197385146054612248418072591447126769822397025088715861303659120048278160170975903340033051514443761839644356290298416736328414232604956756765084256745799463644241284572623519425687973752595736851750483599278725344634607995883157418545656245282851805705029523792769490988074557641107384674009643408349329777663315335386989461022650484724142641926525647410578542069408532851863739775502889711402048641008201551602413709874649204216399744565721543273990869966730685370760107529709877713629545735313836913887061211506375889302953122776743271354492704501112144575708151458699018394200605746617432717252982391517666970921669151672772471285880718072800556048376767521474035587806964108988138977863424825416978451570753529690303454450051133231400436048506190303115144963411432137369528868172124513298416959045295391230159726320404906673704346500482381416648332941425844678754146955697582838445189285748895930289060079679258929017029681951258349654223540990636729249960541954360810787017931013436456338054987725893617928322134239309369540663037882029088785409095897877077099788021439593126571675517189616837711922460656256055069390830711597164161656550008175810801658019241604338848441393042069306614221331699110502459292193758398526308150788829547258705663031626195408394930206843500242929287981359844053022275655561537059819275300674325132378336091443544770487055368551954353216015688005891077455024363548125014510194294864857792097641506374528707672276223991069311425315555435663564219742302545803033176518379080911662593246588921626161703388268230831320105258039986573301232926276934266016606369850175125404357420607614143375397387057835650011843408494930158483713458773930303357357596486018923679488524937769920839685376832351155801384001699392788484087970541012238250736742622391669954907755172582267755171520567165276689017538477504705999523499788307811995436425996331294403917317268174765021492037856642849952497703279140663524714021033698701027459847609607264191165592141169423332755476046878017103128112014758018364611303816808150155723694780428260955606757800821121762084110304572583872457104901124235259159983529525993853716614732779593712667033338668572299402237555130072589160789297818120527282284047778190320935800974313526884720880473649356427619757720438529689954534850253447749248510441853618059215589441975706862702867754725366827211535470489113792027530692073141094033961781402611930479835548554557879780557235122073426553052044002416676938664997802824282819344163453520675682204552530336898206203812404003192368119716945529827556766147494998199551905179992707794625176040423811391148121638690770744375656368648717572744658288389951509048421057744543768201378740278379261068562608345454555319894318725293407391136631737380771029043835665158234540887586496853025302515563807090632235799753306071314837887688156635775270824520743486131138734497796016158777196240199620100398432120637507567699832879017277094279265401467288605919186948689110130005409893481966143294562756206336349844512386809642041894647713109265671094242532748434257056252223909251832658323463803285398751245097012487909897002896164341394057223445992132289132662436101579584681750754469487432761096092671033803652746585489430868238604416979650605740180573602002335270820071244659459559244046667719554481458774551507910617662449449791555828826687167835934003686912098378919124273633809886557736809308676356152373485992682882022498247371435272031501389562516432302341449164037356059510353243422870250593395206673465148750494543645443030468737267488951314144193428123581675961383997145819922087404992245167996758488239015899561494318255855804093441412302629062214391665127492527025508920586678228950073763684265319167059157154052237216291905988868599808913074951235902151871465556742432284861296371076156514037850287154303957187685164138931778674347934462973281054719395655892755029203051965453806201333014841794638951842796385890634041786451365022910156237469735419150416559882974552988402820392922028884095286404124533138892726820062732038965691580993124045056862896782603361638380836026940654541808680656970276130068457208878497639889460784206708984426948399892730425557208753190124030704851574575591744984512498170926258538414730274316236716664530650606161304557692121732113834750609624405937921714214569353029427938392815796022934071491950031864781754608907599987964104520852013934528216222911034551638763930969599165477658985110373260411865373048570052860463976656907403093754227572666517728799211770727474800349088112445314997316050083061908405399616650560864223437072278769891922286534058681068192862076750924114232763116930581172441442778886516184152239967307199606873214769622445710336406438946769928927160313784694186030269462682568946263294682190267271699034382569108583413436138563181093838200245372946978432259713904539672759435425097350846300577654258480518523380087857208938354515974292876155217186632124082176905463375345241669497765317284573979568068176570283033947150202919407071604443096036866482400338380061728018082894002691610458892126123200878292052640027992750864360813024864407145624137348278694646571170866526717614101053308651773560553742527335612501473710936335861710705595644505043285364548982307733437738000737323059438285872688423186720324107258327790439321353580854184549877261302245480744205526997563141156833641874858424314504809221094391601927155690977107173856706003376493635060163132374845049289232835356085567257630635909430518845737729743555504240045466801019933195131777080766205653997837822736565880034690814544566139973965453774217785161803535393478448768707902493075835757515581493690576041278506132531587838147779990331289034523137952379982490103873993385370819470505697126919656626100975039609383296530764094750028305083890699135516666612667938630657560833462655712512670394053974495879716031679956508254815542997218617542037876714698662136183132722977199819202820941183451531835377475019118527504377951497820094560409588123162869683229971254249395567239185984896852997651778823937058505057425335221520900587246661394803187142343820325308010463803041218069817636819884051943390784345496116327386434377521392347549916641776018384508024509311528743586227512502569688777049641009894978724674523446693990564539543132951465030465300567202448469298106504147580492138854090586313835066854102547562943474777254354995264128842980523199176027327786292690677378323794042837759418909497645903855132336641598777813858260142060866452967895408555432861025095767955961948971996411459016881871805907280942063801318126111699269045239681236355620041415348604568700147428152360494809802197328940586585141223976002919454145713101494915502583552928654765686202918633726909753405541645072655443192968079959452316263595214197944967139882128963809246012229814416838670286886856818823430369905656989909384698447832185510370688708237963482705132957742880505965320488044218076081920436597025091430867337161638327386975841236902845744352829677757493826971863562985892827539621943940967798266827304741439188592946022555417894566550044147879061709690123495543634612587592355509435185029272645651578618606240701947865097444608786769538156661358609315485470019687317603551383407646891292118508208719982436805637515704560626925129781318318227727580651698651983201297295802832453469601196236646351876415254421066831950381069970171545452305260629131437814080730947579692762920376706195757767573610833998286139888448508070945018956008904471718202596949399851258683734137637670921729585996730861234203345506579052616912490542167758334503333342672980336511374703292755443558786656602997468537982103063926772174768360258790791571640282933059244548144324680070291659155524470122228522882822752834080929685554154600674950125738199392447240334383563991400679168161973148075508648708028765854110879616696918545822143698400957547550807439608232796656270137528811828882760560722501668947416322240308936153458698351390507217008301205324733616540476339079808100037051895675505055048785542352291687458450757310572527714276983418551059061937632277080488081666016279095548200445903211702189578437283485718255848003267437881500537077270660843367563230380743201687675720187074764310023469053350598060795162773652700095588145692717066071136162479014145171960300482088981086213989249098980030799112070867942741291811574705581389953381054946833796979037960409530161752296922929856967729007638350876536789113275405131193881033352041128187852188969724547383208789727028933780698600306884666502189607700925106543408903890802602987659053963633549892274059661450661139775541400316313871696144509725055571545699954381737977148498315828171208872758778375702649155242559369469269511637258467667276851707219641827848332147749408213742069318875544124887061223523468781320885817843171537563911889165724561420628160606751230079981510681130446107549757738003314857223451809277446994699414443867097736109841582147658828159754231029713173798687568043936962391266362692636441945978425329967895796061011752438985070990767900198800607538349741212356456831532781396673603527035547730101329898485567156300378356635564490005346999062522565337838187696365158046829066428296024068714703751933059768727870900845165259257151079483389555986334708298941507746820464625579699841284049237184015428004617565233671553312768527247734329805015128589383958344564472469588874088504772330554724070723418514940109901022607758572351455241976836741558783744000111891483146338767513702980817088243745198274976554740674090300606117736590250105104944681563811739996608254381798738979158836008241974631707588278082182052217324361799807995418640237764422862245850744712026098371996787812173085398703277338505620158367794657058745941348711865246811587763365635238646383660174814158524087669738975168810399145779184511981239684672285628165093119268140481244264598993493619560318750154075698670318608029258007810157483005474931277066442733658860516386402440949367972446166685704443150163975351037405348365905182243891473373256900971263600013164040810296333712483659631008387840045629211285950941265675239647648211912733012598507449462301728173135692759831930233196837648715933435983370446537199716490325819973952805580341641165216280853401716370601104383818070527527523758772176267654987623458604197875120693980208999984034136477700947812758356185170498697401770895094644375084294947268158483768496485088122738277938390830007447524409761842883007309532800654027827646264105674602278601266497239835911635431281948834623359285402858616919692112171990424225460476608596249269118134795959322623212906580078570913992075021346042536001653926445315047671369802036098904203954138621327002434308409535713080587427152204204574842391455287144779946222904241443998121486705605995021484542210358679519775350984262227163675310221224115036856226492485628851855762948137434888857306350859815205940822656106010510327218161832690404201088056915807911168150208659227796437116201107131426798415415997300395913545074406878896815351845765557214013322839690343250729684598001699789266213850000716616461684928957502268447939864369823302946696724187070256782600759992980229610342585454032464094997526120653162655139727125440912347970153715980364695431774823876098965355111134784887533307373833630605881947425100280054354541633489036885681858053500427693920485183521101446520527101580114750516131549433724087191709293375101349822973577988479450734474649125447574717167588674709484244690505190452300723463307598968975823867433431883307750900304481241804194148520376317024079010850579140840906185658155955701980974631244474124442342008600803408167552530847499634134842939841154291566020847357495165438999570487670473016673725046591675642185128565894424924329094813275928622713510647787445598108380770249852452178870720571081123026111628614989093748259335611415512944145420900792999270400618460459442171228821834291310267757692304483683129677979651797549667983537783435653192641441998746366490469617419742620626298484510625518281590870297265174006666175278257217662058480794521373971397425084219015909926326634245894664047434442475896317071451542326766647998295376525146508578988523206422695749606847098632618665016768235148455455747456768151305580949640692274025746269399235366587449312384442170704312013400825500365595232711852726927767466767074712348665574574295584597983315813951120506852815965118661927662155085002167755784443788294322280158009184078216455515846292962248704115176679551208563845233248172220563192823187805261788250460706955542202732608307175408067346213487715848312454830269869810285683874873190747526929470972398260965149105212287585697700449301713804493274696648685657576479092239528899083249276395528643633649342557954469090934280236046106263682787182851038432699371873549230610934282835205380135044398620385922634731436194468286068309681332101029388684844948317664801921201289428371363509972890676433589640994519076179558025983467360232975620764912435665554081391491507513514531107053055073441287777364078239000211500572578532745238378389813464301478511023759960580894897715296915062162002780826488560500578025539823087195134368712487568877303399772936905924271136160012544941676021793378254201705688324182383565723765082759477353755113439482750686439976530555946267807648805215515150500600889928129714535551715767147672008392226252309782495676042683801096759575577171224193875690667737351755559874991949927975734324078832657545635175048079976472626660452545675460321334531244741841324306070824067005240631558098030537639996739062645692772816293895067511729451870408288976025178920168319920669017199146013249647287530091561852455937395617687267934527714022943521916049519645293942600458245659626003579974987273792168518723022136043615985385376580617281125365616203116433035351818048310578991397950179389786650252427120373979664786067944885473006570050796573045568792149836940376045693066663427543090135633588795132041730049993321665306000374637156465367033686876133295255267886670978499731247231907908750000633184177916136541885613151148137541999157013523771480982484256576233041981027146422070027522394433035106673817119970423942542315708816315374960889706957511371270049552524452251955750502270614560209086320654802553636612682180643082999123703339235697435217939459976251126135129460107033514828674455889577463274882952081818907071037375965537292765139520914324156806638490079547263264713794301544335262747591953317331319552398983829954189372663030880370136118906345181295916924774599420670353522208287583452144193748267661548820945188698276125196895024302387509511387546800755604066740564024103433655477672809998604657090130757311166216645990400821907310436751462329090440728307695362233695955892945109957567401949206768746157970904890123192789788771008261240274893433997138304995249952072607523520235491131896842430814454084313762134881322298831466382313613259785993123206166296202213144190717586759715618601024188158382072303673690234625660015919363895426617146065963972022102105826023470876033573495807002770295066142167213552164749998215412933823718175747302521550828915772866537864475859332256912223547166721829163420787931602382621487854292680989169320971648834933717429361022374703999824373783015420192377082013215807521590180486472792351196464257082254667129501400056130373905085875100012575139512511434289030914848075615986443304644665396234712891303158170681964540381179985878120209127915203155444379194281443898263002389711211497141425362887153907029340880430928524448525648447164622695626196729545451105232425075646990809125018813140566610104870665299987640151492242299854565810172222240303362556021593130400271809014552667076365996580668124003183897632183686754094417614286694019100012502734013537190175193633596416687496371365125510586496730151496315891879580848355195528581782890821607563212106176856381186976762746466065470163504737907601193877398485832601955010450573217729633049563636619593039854532686016107345131517762459286881792890686631400012801519073900612868819698441159277693862772981253415654395599144880682338454210247871664849801470550983582056365002993665728218922961327334239810816023892726293928648617915107791299658934807139080729628750968314562729925752607958992820249018079017206681236211833216615672729105166931809212666230597843837636671455156077100604436552306472872328712115050406335614410845213247535886958992973097186763944061811578370043805308350960788907314501139178204006981009906245647257336540080168426592828727849083833799543088348744143011259904197457020944471131828128361827747520704332826112845134733362059278609261677442020753847790251544238811329729054189613158429940109840899192407425246119522532949470339048121810281161774478906254673338068059948397517966342941485122017239851070674179003198810325545335189981376973525090636387044665259057253066823953197012266354996655961682210366490944554522000369933177289529484026787176358368946899334702331255705969478584991592103476270064121261054218596940273339228628604372522983842391713609403515240831036043060660665410622993810442553881265022482317426633135362609227746101929232945998705025636549453233872044083865203885888721499226872364647257970283637438573038327794671198143787627621768793743769833402881838031505019224643305673118984767958758725307736215746406635011553520943961816341992450683434998752796116548261758055381346147102190521053646302794202923261873344203467282158540302359309336678907636868009343672306875673526250926244368794827068431919685147152126913394870004607672786079664335067497621032053708363427266527417495987493737810195612946190429634509885473497065173706428092828054378382283804072882096272972574015371525379709835194525124139196620301474788270861969744458457262147956088773201236063075134730240482887973961746121980196089223015228461598219140442854399360555997175606457753702575091515378415099759865751002786390676613475584525998463127875060962592153936380579922024080597683837561543843120546080356389417486425166438252233370726812354051694928568750874530646887954611393939294537671824976531642867673040956013196761549827475327639632233671423461326077737928118631334286796716445052899505131144578656432775076651091928628819556273085136604461167585523566672532182892157729360119258762873077237679598498516608254617817227594009703990622787523007578811966473189137825422916738984988578891464384582173541183180226831589456684074596921511626526569869688102225530587102670945695819163330923323976271224063542225711501627433980768907623905521590776954997831892078588678215907626846739781031549797290088217540398916703150615116547624184568433156156431862243910904441188465723632028718328983231661760887091489274947623321642805713499929959543049169942584091199978029937445869490738425600750631275493044974892667248067177152303299828168616126309342316881167167957859012313990127706544823829191908854689376756196821201488433347683284316469858790467068158101997328506316717125505363616322319335206372989818661817182177380268478951618947882661864689731141705537200395104100381895862647064331507808485781297417483127081910384830650437148119057982615901266653544879011600465945389914292548569557019637210247499812561701680707842884419394030065881716447617163075002658931771657290636440446654499787109720732588086115910003614792819621132094693563781775780300387662669014049024813140572512141406639221826416089645922277472295744893555318155670391519725862297833612257550855580313256544153853550049196569579263336174286850193578537643842318734175971030556650359701556984874722636043859191083680999179295987966261037760936206855012831235137442671965784494571022007551006748461343431515440738586353542355456389607418579391951304881151019797538822964274857505555411311821396274943505532684429883862684067398078189135727152230159986283505346742597050083143372228978229032258317598447528570077402605415299886581379442378180393569966420679734236436658486615058242593261098816724799825992912145468556821848476122227180452415692772334603901312147410236996809476908197916353883986823662848020672627654300626267557468277730558321078274811826768277745881394423502972113090601606848511876980969921243029090306315505767980523865670724156803850937612731629086248530033961512913769667996083362930875369880296306283013565114870832714308524357084649351008682395578998347497356014879442215100731841034221584143887825963160229361786001331320453660032806051505265636540909612567048936244692531110276984038438728874860933398045395696214319887668811521281243238003580897317078402017431187847461020822209113314833604257815511430159499076051105166170833738297579911297382230931346537778913084755282948264208282801163589039796849890214085098043463728672214988791306249997827939857779150500526042269640792587455316182313555952050305621008060135802903770614547453114503896074573214118463420285110071002379394935133424979329029975250090447867771388234878214878340190844927827579293998563068131904696956292627853811678429196540455458893445627506744598797409859056560014517806937746087233197966679684178108431516264936121779849351784270773771136029269656670168970806140605858691193110487067885738458797076478365940951174629166003704613150078979565587790621347584904235046890936053274540637077563325148549849832082465436872254393645139006115107256340110192418891171588975992059557576192105460128899618184426460784470082660712046452409472303198649356152447736191358465775573357430560552844063126977347356842756558122089845271604049017863363822670880966383828579106666156231174499967681643223889438368650484851068999625882533509531825801682200248113263654822655510300978221291265474350854416759574243727795582341841234568665560238830478896514160895091460999417401251803115309532961873233282847522776481267937255606432001108125807309952074895516726693161970407730089374017957975608866455530479357338416018531716498443972544800191318115726740178002970900788827576917061466369416000036883126555568417615323173816550926690874062338639120091658966637690912852456160900656319597793133519311281879994276412538382254499115800717441530821831085191745304849634448898652991881348183680496848746365392780896880899171843998245357139013694759743740110403688340136277001478729230374424560903199818872907122540542691671872105895723326344321460486688640259280801275841782379758578574202129679539497278420614819825614395921041361706596910847871114912786707579839254332412989796893254909524404594408596241411510784682720374637130533342562975148251754416137832029832181271373528687513607183991850220629233043359875251775116839264420507342475963671505575667338184584640206476171853089847026746137595035767605578931570833010653651225119285435222388062383353185862619144370483538701103047715718608865726319478707591773779188527341453003539428061227922390268822681013463823170790055886638130392758893756981578079380599554570965387216776261518905590997773318658685691023415487987554553123957673628525538630503679125211426487884061071723427842605838491017238747108142462872396259011719371352855301671953954189526414068944517993644075437891872690452192465827368791824570457148713852586737124849346816439977361219874280084697236219584606571244715057245022062014524907060767431818793945578606991923974429842047608829987186736931802905120183608169336880171344160372245815593788398440197642940135225702769318165638041712034401058871291946825669309452501341678498952012839602562728554927352213155813039628914022031470681181479545568910693653398460870642998783349729074362217901331861631389641465090184383714359262231038305041007020619182104214953531609606083348107892683557857278319893708690255275042250158759328377816584980513645863780212070129369919597940533800695369239364447040551826334756243434512735421057346213191927061850272319212100065937311981468337599582240364009300871146331299897141377200013820840178856232098687558694540193813256957423459142739289905862138420599087672903671880833526638669684746044489036014654066310474333007997016592207292555544729212133550483785063113584916567779271478090567694299016570426152167515912815391550370432505993981249493630676941661554237470189583458591026221480778772320683885366298627682105508638370912792841572825434244415857897715300340346281761889128916855160352258092040059638244177364239467566234262933518934678233352616909386495512935541765388319448161061915272727756737610214136351387753812614516351610652539355764991452410527398721315061641916786507347510175428396785031514967826430743623324765030205701640065309610322139727649196459013000888580687251657008352133666816702913423198564527832985181053023254644061370859989076718068912790533570103367763735581867744984327478277955043279989780751820154519879004334169013079011014763005615650229621156346246375431552414825624262101170371596065071014341168570132986769036882113975874279101659498193885165951048914497054200851283406479546717681748532608161503061743083288751391481015390274425304288916597736508983047419034471778530245109779191976866066009091813403597713519109133365736312336312988216093662145240597703625432830954744702815664414229404608049029136360571857832692868923364704558112923457675392022384561015087648016914113863787937731000707509532498492453581566325415197151676619482899714828768242492658127039084250292806647371184350172282263423507050039683477713252692534702898081508502035475698675114320548045564785178529903603018796115761832861954490004288463500225792406957891490332539394916162394625575313289167700304178275284142427425295609831201471014686738937025857796738240122764686975188053391271864383454632232436928836634572823797697935228673498082616008292952895862759156340691184228366540844591471230997078909463879963671379082684799187427242849581978481018207227803153893948530596134650982253737033941342025846561841307686799439924565014505057368791416990070059223962050125190853753013076773630510076251625584036684680231717160560735464912275975157189698804401460904883661682934912442102936247433143777954526307231783383745839341501413108187302653819838671311856862729988311560981446749942213854536140409484286271499659084105906232417952831717053364065082619091585501193769430643637810712831939033438970579713659631779008799217575928239365894561029442161069949465842751115557118671876587457160895711748393439272895550084043510438568483721115939711043878554673528932101120049127527756488956635435871782842970547144344224369574318548448476803737810393168626558557763550520039672693741252775508314411852919921645839042854980602830036533715557320767476876976923593884769811192474434254303504434491719307883698124027612473319165517005644348591729517583350492432218611670287955351189742632879223480315492814825403664335961623563324741165743594495992428917339769475190916381869892925219923489500357655891279549333513167737123463981213068211105005492319838775785367018882868359226543170729640566305368813501908369235103337602174306380752305119694022242616309486521691822898051333737549918450129731094467772157429647973421083877526275475101844907760390798117397337970416625217718463327940584687472037954389578934583999186640232591992732307873159434098978218404858929483015077245318548664147048724972229725350607552635302500229780956420274484231654803046132482452883805738529065151039226234000880188535325546128272524785922012888266205916779446234910813670920368414644837751470763887137035670341697242448616817055447936908801798399571431486308054929309309181099593931227017692997298206115258096451376389809171676159651900902610336453048239070028557147094866007680253249442727877459010631341937974078712265700102045373395647350298135600179833435610563826558905469794079497252667348663129292758333238821622720043265362224530668284419011946570206699448321912436109680750204222289928103095014737107029944498611075303332182103043107724088442406840703157219494521328714997723913418254321743425725480902456408796536661013110525254755295932658862142784317221584428892434545285938174821944188680087115066548983683116100938728887035947357225478438593483929464152569008142301481182945318831155480547251249682414989997549972194192712295405064450994351970111805872136926990049537269230212006377980565596410734246291334883243304380732918586146912004442892496715318722498964045167033511220140033901568396717290975024370392610865447924171507546934571008248846738331784046095916902953478641915472646933957209657853480743934461210912826667806710686399390834295521460547307316420828917945914484667102289701550420038205645245549989261433667416876806045196371339832770780283650105281915004607614494177410543513983746979660310403539038583165423558347119452502895816287891975814207278044124112816930056998489946677117862370280752119270172998377265322038095293626849484832183471833663565778797309530015255159650623795869785273466373639235370480331365174266493235263410603890113321336860694761431365448473641792317623933789502939855729240081457713518561614972804322490377110630517234438609667841173319961156832887625607927967145696528635152011126713424337155001352133581126039138275655302393912034444908224796390987505453031579967074124087699073686091098308221447607702922921752152847058132369942111659086496001833542495354473844961630431127312967013453385373265616749386631151807773163108304360351149033112218938128211100854979369057377912656265539097043215178632494485927260811435278602996384611016335582425345556261058861666608231610158876959209286268987184940849680172858534852000577528767011369021441383537588521260708247333214823766935155071147118257757255818694039336527803125257826629055885249733972379319420491794611646460111171917803855857708357692756747852885084905808828632737310792182700959704354210603177478110666168477770319387317661431564051457057648987512400425104455689439464802307716230293280393672001478911428605730765814194516155220464382098362748014869786088057455856547379407224598105864642157613732574713915587583715165064705229526556882262962878026861578800602912274473960088558133932847665401445539037944836248543799030907714822824849477514601245151008095992960378205080693356855082973733122936697304590511059639457949455115893290505723652282380177176332521685903051559943056673261855094226995487013708167541331948500978364411101068885277728462178409780303413883347825011451526649996549428834788077822826105375723349352542525516094978731956189354732493086594477902879602510981610561500658000541092035395614159087083915564516895725499013540365274945796377761625064449489796755293768475224787014716538077051621734993654808283956659093145941056335976963222013152201294402710833267150422177798052146793971407965186809770603222176958158877672616366651112595450075365879700575956792424238109364409676791235569676225345652026506635729806407890712799727014279202451902560263817158230285773863101776630782979553746458544351724839097333711853329011903506800041877187363703241354095215444098590116416564929389900658545195558013718937036325039278153979118074098073485719848282011061653105747103278100372772055570833864451099125194489285342438799228860483787336901692949725798754847301244052703515412931436308784541278067178106739800546758196907404252607642872283936109441162652878000984627200962619813584283917446740631405957427651498394187984383017861814332373117284273528174670186883526102296509902886578193805166106806821080706663947116305433555403589945565939585412623724236409015848066270524397616787660417043397099626333793279964199540093295728743231460528156612004225859427709035120957205030202293040430306910475363661728689202571058582914032973806049560313909293289153911803645539532807107001944294319478097852575234692688619126536160692944944270633764133429816566711293972028960062963116028266081817355240720144992265055440544180509042632540797249570591976778418532717603766960388723464130142620009052244949193729636797062324485788644046460842529543026159787823416472237598686880178638277728034498615748781171212661524648743661649509947970353669234977690537406439289844400562863708400971888106174268593775262514039700548379754766627901783284248251821003093996031103828669578268417837074969437704970632125672824750998317424476181676379741827049543637508098365515455374230805113483994871873360597433401887112212345409461048867878580360762346388066796203569256864333661825257766760094204520600952540007217451048884827246793893986063549139817934795969887977537713001383165620511110266618406398999759721290098168975979162207784311659570059935065324033063279439125574150647069625060868518845093196377474924587978237602145336009013575052205946417385858701243630615963747886927396437169907752858070609186104785453570996936255472186950761734257812183642900972940857303899535005815452373707674943976165661101342871621182449231564546092977195611034105813304049952797531364563715320335765543251081860311927779378736534628553326068259719869421074801282171760112454214827667160763075385551171392211035527457544570857913357439819412734459890606030715936849381003618031001329428725958274837103410820765479266964787847531209688883897736373947086681337795496848895647841380271827706327081442477892330906373618896066942614233620654967094127725523481962547546214275348545665570938791099893229472319774328383798394376722487452366924324752785541100469850775541279832119297464709501225422177054265551015709051867742365896981536631276214348488702009767499411668174091558307428804848280666412733659087860197286109951189709341191420981712493530395587454909280821263836667519763538716242541781365193819996255928792909782058271194733139590858573677575841859179270767832587045639720467742530579592223369256169569396169330056733553263203589764365966665997620708537684392025165202869919029278788090311775355489581070912441382183088520645228381208555606479238414490993252715084574990228616495722435639983419296003268374367803543195100484008022872192561123006393117153432677388936202650565586696824230412458331889451008880620321815574563432894122818302505005171070532107199890399149888759515914814237749248576768902853786021929822582485016643215026963344708698611364202553918094326104346268779924036270087529407330213041564404069002245044382762893798354232969436139417446390639655479023386350095162665752876125313060688774579920481734777880525088726335114278539616410659789544947111768832021185413909764943944679039705034585270024187827601228887817306375787164613575989756439759429987536635583520400988434974159798759272113324309375587414587103800842115074709011563790138037357274815716078210976642332478050918425336723574987454616483663429152405473606824826430337227580364544813698500875579616524982063738903258587955992327484653147491644224261846483236343493975854592188781389265527728796992428608271369231003594541078340011803925094986183070721945819428835908096362674781431304237524790886304989199659576061993621612795997957038605659241812084491095956546094290180165155472982353226579330461717923718993440481544473454898252239199348756678888681707000834002809831168048261454583642683975768499353827825665952091882375164101514999951076459280151173043581770112026835494499299291528798010086421201852853483897107735930658462789468474815832782374384203239726182739412914383332231373760811903084603063041621099780796534906844935299773504568363917103302725972380440857852014467966100763298227875163093597119145294302321590581279423042049182287272909985490648978793067506323701845760652251677239270938591239465623464454723930744794683472242695564868396362927901612426951988444578644315858079147187416340781011636353429370158090693121397069601699238978510382466587635313383167953286298114269704588715720565155395322785408556018217168208564663027125819519935163569036137309934425529384649267001366129056340556245840669411277744182534281734187502515027760956369554833846611131449898224210572525812330898973621148045472388234072158752610085904265645222168016219113202625868558029018745297790283018666871899461163966161138497574644144636316409797569405474789858785386916945950374765949088601418220970319654991449196867120621816218503358843872532239187681202456371380503741462889371983090354632107182293472200248831321250222241690733876521299310036002595480276670205549838182246020366059993500019430645352716647898959329262158433570171757251060520705338449076028515795681473977830820521882436168955633799503934740422292022445829281773142959876098320167386343410161797354253134337083741825435427710751701905528787099539542235817645475257350882111807305135737104912520377285832359314261569868065182011021271437317203451700801550356937010798423601301175350698178607986746886790373948819526809222296001053224201570732031342568536997287453379683637792343630763976778851349655335028100911116106264762660227228856116979837881671006508529774418480301037994550762610321947897965897086339707370951246956719974647160024156940878495714266150676019654073298029698011000118155710231417931159614777867541232732939932976768482930621365288123267927413337603775944722726376515707168959846515222407773453673818287829368242486182535935254478864671616022542030458526748125588525432309994281433424886096526413008668645900628713457089146599573754099206549488176752626252722765778028012130163075951717340736612813136450676103537060796923152492641698036123991199334699739198882186171448064766959637095557583553412053962357074919083128807648267609319551651967673278956206713257378758288357359748929653863797972201351665504564808097198049678566208451044624004216577156891878690757886602260680938474948561624152740652967503427098621956146580939689594188973113560283746898468031545493280549191948168544524917233982497638854900823183304936042482238987398173880064172553586853084954427275965827524729254385641465292420443593140561908874198216588272715603424859590259132553327073560264452456451102443211590218338733868313031120218569507746821943594312807150629628503965122395288165438824734174245548927062480715937432548471838935997358942428729539451220726870651342308429871771464365531135034443701567974924754108627293782617706971388269314220472234430929981754466378372196225851890898306216393333569660693715298271286824363840637962212358145328033200476140814404837044367499610104919500289413300833511560944760065475557697714645570076428790526401919785332290923569169453434070015129633455622339763121821721068567238468244280702195137288300516317242345621558333337759688194085752260157873094621194225996795106645899131645814212944958602995945502376492970417982533408766815670084577514230776914302907503016171723143925785656087429288157701799944209001234115687579778458918834483649300554416655285107597404534533587283416009249091481855558675242350537743614171499407394144268324884990793696047291795179230012675851698572006584208700871556601567212744946486631928152226412638620601996379142092908274248500858957682967230645075669539275649970779367116987689206938053104047856660915773956869021089361673105966082994520069234614724065727071959198109356552646548435956683356815677029605868643643184078976874415936904781103598694485307380748224788678965885714648520108355155007584612341826503736674658591080330082323604052813660478028542925575988797157395841986827505535903771107570288927437295616543519534964068816180918610831445818328049708036302876520992655096139062178475656187434866418506950931077305718921337911199431398882007539145763734737690318231065889701821001979728625701001227143991938846510427522745309826726626738293664870831635981630003058511677997137004521827349562144039271664621664557539455671378406312797039061139886693624744130964728813946852978994076429491732392613708748239022778840044670923471893365459174965640286360167964327069167316072754079753046695386250247566275373880367887112516262344985133337213833842792743157601132026867298998195825398723734250626016780978910001615719666745154921169953441566620829058709910851694976658343983633765031995727619831098283737730679910790662886605371418892856159045997510690776649689049389299888511739447363379122026135035776981059929675119000390798429271328401722781974988193687130829811863796872286022636263810616709527439064775453059986207429721855338438532900332019603709273383941497378325141269449184959736985729384151949900158158049236823095912308138962713647669439712226922257795585968455026925774148641352085328401233720744737387620400839352855857018871157611586449338293426976607709437172367246688981131340256523684205668659747086890439951175040794163345678279436085121564481219011706055374724185386837388720153254589746621944164641771583141930565861544282258513770986720060815254019357164874481278671919080387758267225539184478847204929012773691023230083911938195615483613568811335432621946615259770086416819712826986440035129077728831745963449496876102020690260741571197273440457270181091557679737928765280633889216111595572546540268595847279454769831167657286015692275987844743970377227400898434439299126289007517695547863063920419482187464262738982599738236290311866310417713815508917585451406799157932989100519891945508115844408156032442620844427340728159291858326287974873840077118363389878485774875085834731710948813914213068604819940734277776002936362330117975623394420557582755540812532642146707835984462749529262827896165608868680063528334773442446964274136948505199459472049495433786640359052124911116674840801811179446765743865133069624083314780981600511283675496103110745097507239058187186211403657827709143982818598795337870731949377207667560878673113877776681036612943859664428420392525126912209064466224894839978266273794646869608883666578380914936351452103965538498226349478602161803507588996130967006716235896112357214726018883326770297982323681341043957924572553844668849018935138919022128218996030942533105753591371006952208934014158933471607820187519253298788320073782907456428948737856704623294306324380177985090264574417378403267918888603786056225632881033343129280753015527457166320105026702900947183797598974784461332136870799965604904929590697329795727696455326423519068363853589092012332831581407556372839852241351425176133302430180627660757314547986818752834337558732120246964308281684892163635842752232003343560468070520551323755991434615801144499271687748186186148678147021909015194102559615461505542633970489072392937299596020358593305486325109935342584405149801889435050011357229454608405290869117413818246041054179326184353947530458997918485095922977234402778352304985154600839119177903451275381824146154672448026873595510805082087988184218052903766854369891629161591940825140231974797536564914507843231827017521663157112571992424481954722290247416400516540859557902415891280994619405581441407718854308705932625139457456245704176870435765805967627164087192551375053275028501400257734644164373902563729294898437362280040026183153987307686404454247708577449656198054516946014854474120219647547956020884625838211289435378872437632731202215392029872289213082589904267158661964091147859951706906024734472437218696337248472952208871426748233125842607552463521454421959621895655050282826721706376341915697478057964782691717585345703357560276703221443077181983551716862597609321786673368808913448820447238435963732550015118395747600651291076865806151101867376521824781968344957340115177582481454570930447333810338881174217266288079100043089394799466255009322660205036053085177657808409546044913789798051616090723234799539645229583709334804949913292330484977766894821124673110884050934022328030664394773151404645798341983900514443501821626949436928485152647760377628012229097204841357777163490037792856853527794570135163131803588647925742148931189586685777791374146630493708547190643656620577240658489916718898040231653172601297697010487089034960770952751365566878482432057912072685482517091618090519330824580481062432942873936330233955784822645123399008169419171236083087302944307331632134047731138728799812509503423825974319391090095379960879997608684633608695576494360302166546048728812333531590391428175899340787750807352414309727843159197314438996401579040388613901548613159932672366898431617567950113238410113762270466566968502304546015856051764685843405131142138088267801325627634168278220011476303282384593183424311245782741340819201217440476176354738846482599908189304425506323314337655655483380443094525241474273025136572165609049762633734035985225595752160938450934851613382811498356742271413344033257581836860353342487994756622450564531658521308330014868458264206515091702232517228028983700599217235788286578766333069942599778877097497315490541724717276800066155173480054842929747272670313851382821544358315464711912929635009772515495486657608789920195038272193819348571106910065116916488857197833925518388365217979744338282274536447111410603911249838299257513574732502169488048770208337547097055794082679026569779905687333029270335499255632271525195856250000012025296289702885894589558234385935029882016242406490036669867104108950745982664636156927699734941450564089214093679598521897585898888586430694377126615523322920029214453076151277446150266311376721011888335649553811723523432483864778047763456932501401431867449702223113330634753032696978353271585253342529379098924914858596833429786923412246663014034837309549667690685505850771579925848685774204681914372569150533622690592664795985079634176188988051924702120857011379731488255907842804306328185623060701263717520480024963086326184819585526266554314670314163944764101072117404744740394235731433776674448863920667800244014245769364264116337131763592494892229322372537543752520038445032604075520500728672109172485867634957740115587796849289650014811438736887002127750560978101356497273073315587903343539357839230621178389181349737068774382120284128236016476391224256387452125018443834009917831704300039082154613549281310735536054291188214166184085767762387722751756261433616420715016640075400875831804080269246704005024234677908273115962139569378703289121775722523396933672162619578005649531157412464334837052711859863242381224930750758954974100963521027654606691777093826008811950408697393824169257069184871335247074936007436677757763177993371759624731562716010499240201627165546130191763750123908365581554444100203456079728238345796147306294030143026910314525402224294981061191899511985010834635264897513353648940061438733164686564460932390216710836070434538425110819665589969211142612222242743966543542523953859657318675575201303940117177419346774629651549611527948354511832727090298820059198232232135066491058655413022508003166632968112342529729389614407724067175747049574740952369270897634035881401228071964301874582238802417093673768664023964711595132166056508561031760925562565432893012665183313764718172878351087125752659910436401029122043974817037384663279918172947327045868313838664799072313435363778277485766680279353392604048715949560832530881201078455127949306116539371210197561182019551287840800831059400232362735925402191479494681997976377413961066568831410710097725365877169563667777057616532627234004944227354192334284532712089556289820577052074224146059595699614544022010371722940640694496448012788792017461482522558756924949090516363552896967779472562785523924248894472302606535488272468831703821360457509339003331664991068741866010446388625647035879964062062687453175500411685789298737255255062257685461035803999034880615280306931979099907772299711535472899198337047321739507096371419800945110807550300458361993969029703230025488736475552758026901806695627750880287090741741187354869269425161795524436108871845287536168420530165934895075238968270024953552842148161550484257524833770354848429699650150529983296074889985317051555065555947869777638214028644823023266520906741799090674090805880472631705432567899834135602991818154701042731489703985295709949718803758336239667897929066303504824786195527396034048117369430201737544511659947823251601194330230652739757493625135051264516552541338472726297941361853529268199609872101961714637094943553109091950605170811142444385843452167042449606825169373983938180355784372998437779561966658828045836229456033393375568784811201106230671600397926587271185300701550770179713597047725692748836887675460707228284288490552871310454075084027800933024743620116401040713483078171996056053625085525573655895795234932564389900720925895702882075757675519545948764241102270540720060186173047868862897405691643676701141888213244229007359933652081246543526889052397433842371427171833280785186434757067365440087693828417248066073516779092959092608669121699669119725957867047893700030654775879877725298192634897941870576764973578547319027015857879962831677903194766002245231853290446525639851990298096327206124880277685938906237029566266912568736171576729587420883196908533526478020066181291854161166862309933372986953574626899314547480725559617619477019632259440482477147148195169474145179008269672087968190068784314902669010932459444138327579010498553703175423914443258586983445765028284977267084131499967474964136797082538405728890380622274239514477313252212871591704206274210524053123908549893257244151772689220953488388346162160310347112619592967951893405943771038074325467740782813279304612588429741391695945881504909460699116225676715547109073487264482977198965847583962933835139579101621632599982080961929429144853407000899722798800744438216825647980523574770807154269005447067751186365343314157844705316163255448314859459716306526878957600997385028201658742988544462501901266245271286542298156341286037640554608055303034182507593563689843481991397206846615758182003514479847180774183482297175173818882106350917094848077206180890623126426409808320774984517589060680608910694044174141498230950022007132551204896648476147025866112128263247440454307263968369634820985232585924087861801359176327161132067974582277380233523722177278990671787473424219316548377861992132233186610547995981068083522230308862133683956975325143247677526020557875538889652489825219897804273268837563815936726617240224080646467982065061079429278415987294724954011700705879639362461978891533009844956367013397029661309349395564272167211586444544655664492304738877493627890109658331576792231739926101605356213711465570953312301552741726466271899242415379504564919231816947254485290013618185288756987818616740858789173000970813954059027926622595965564081606394634488362469736306439681878687373112810186066563892110297328459986731749400926762716285456062307003898631495820259822004380175935060432381401478424807282416847892662121781476897056470130708482370345694895374822153761131969493530673382338526193269007668769016275134776964603278469815572726436270690418603574426308009602462892915536515914189995863266859028490670165725835664337680192348799753333498300387416704948056904944856667425574858025763572969209983485278237740791465114215669345005925394398115884152208128444603638371969245035372073516705850683851879236266489121037458070936671453649751086824642366452055485219018783809743846083132250161132243729020163524312294358141203060887238045622531561701530482403602161946495579605745986162571177469722620181107553044677073048204711329281384750045780579653982824424715157831349516651903136519202750412750676374592310372943288401581710828598980623306249827384495680952033710319538294929890458878624588489036482515597756762057944097806404229883082313971552089353995181490579707844025904327618735720145944769065777802760627832004618110268059313703774272252170443113762078248480762158652286818746337799479643997919455689646741154841533306627963235306482559500951077269751080108799831265388774967475088139511090997590982887009153180297923996457090211065549969501946536098158149043506473314170382031094798900000456576838715306393578193043410668301519562184719029598820614555006872670363622712195728346644146847115576449776940608152356855967842485376276110679603649198888277451238640185939752537060655954462992289431530792127709622950757038891049330964502430561112929459925951014995094008350773897277389296602201441907205573952769185059083066666309105230219754934927930476375003943241563204881571426569373781665526935918617978920128636981550196006818092856908520193817764236596535331995925222769290786588490748030902112046583977841209634189206759713217403323969734204039440067107872248591104788835978420106531605700801220358992128908952981024091541906017089287767931899961572309741391449429177600355735805058458197581449627602914395026077093128446958242131422696685356190182825013558616453631784149454897159423007518936955689997040602826473309232829135206066860457943106856201247232006338443563330789685736232536603593476796511511344414207761147954185918620090798275471053895038287766325132529329005337727713348466076180868709401189672820809790614936648958268759768823569334793906263706196127295228941996995128811762020247762627647784178048861347173082056171009039157329452463165015743239874138550250115083148378358404974185565145213247990228080204322179556048810385897502223801196241238764530360031990245878083417806808028519482968140147840537875574659177939822629148002670908747704880826925194079719449776052660583634665881245545561459152528259273264991498979553010362638013945148347156117875746703467863393848546126092791520968331184332410777569342905749934645748137112499238775889129754222727188267114303301814058298854408476446747665064274890640950324875890574649946054227106041661406472438708553139929260679193466429849458687598319657218630414915428843654968428084569615243878070874907987572867894164417285145469243800689723157031314276872746024842235147756845440577120434797540680523067947071184889995203501029776291904399789284908292323538462491256281124423069763058339009437049124283639753541526824169061043912166414553955640677158488610289719107934956877978493907798145855124761882933716230198640079835650535218231865500309212797614828961468290893417084921813000826530414778966718557420160965774855348407375413221708329807783978260934564168640344058621224117118707593465208265285886129331056675308530485869119161017773015360620968216104541493961221669264841705057044220872396682450580480537288218151637052997790424999317273776780513555595177053179850613220166616982917166115778389633275512502943205832898922867042398832708919647618767924612685115907002039239618432641081650405029110452888102796409693264677871249264690416784858361515272134562725887183443308781425934759489054646880909890048823154399493581863107690326867390941069781653467893743571919740563434376677465358310334672010786329847081871597738727543165932136184083068134077552874268099563898088390453284020692223609586857315846651147383604631799127240182258370730657361491382340863973431081450477178582319343533964285601458292966783142288672428891525360437660075661163797574599103907305530840875806335781381944269202404588635734969446214307493164943915230465882962228505691823010285205576094886907237453236324968262681869736289680105410485306719985822435773149422470635616679064592745633595220484198737670914096899424871152713489710266233689954706729743435744152042642583726883516184102676541405553739540294209793771628662343503044127122258971747847317515446124756877592061732387695693882297603452112548794470943174195391663607033508376462451654277647881985134507008044111241384459981041806775759916132541543747153360990490278465730053926739600725621155764894875223824342403687212304727324043152409478799359505965260158373022081491952888987989829139751726375722073597764199292724778827733576284542504695015790297261441437074160336215039252302456428097665642379254082070983781552731531004908061604919739552278591721957070474084505033276220504839575709567550080846593357384781088384098174072571878756203944060340339778168791280379304797626913762909289657222904186029406941598834579797979284857491130295143169920042249342361613458631363822315462406071263963141830518984229952179198782418112379000040483228939229282648750518267581776405854983332069716904444058503286885905863188541246807234829646106613727620589230342354185544476344947918564226536631329865647997726100923552797329834668172659999105198092821192120528343620853021186216650198325291552064618548149978893583673781300908307915559739738434573689934304710027988259487679146202964761903438445682819365849840735330336237294824338618924098372817742529072015831626406865496853990726130250186556159304352309279995132652978222258348787600932569691384290719792206824999219191813990955876244156361306276701015755990502664182293386007192487081792736931065354083185719039228525936039098249130368399060571495831310542307027225774624485141710965060391510102915819457962400362481447551480935072354228264903783687415744754242359447729038562177535034560161579890025796819688523982341731487632298682567039457672288343552251446341237134773367489005476559458241245566544020730425987038195671092250030482411068828101660920493770674784515921052569914617057387522094515864892643128711227829586443686974490012642624577621814328185853390405218047762221840056544761183722468928680326658423450667345302609969145501751763305023426423436128108709470715805027680589361562397684418124916285166361178809315860943234246060209354672223177331603432460487181185608571417062985975381047757800720341171452524223237101258389235886485439021147756777045029826253080635463411364613908017204951268475531879949402861380979287335591081867374795713604467021645222467585048517086716453179693155533990056687958342648040031590527787498687665495528797814626942923984118807183303656748573244851235766614425200862081722345943299501651010878942354289637409718918408257426294225372225620212012306006050198043251757147815191668445349956432662500488581669664784158952343733480562713992952760345872169461962870381168617381186916633339679659120872201439175955125300476867424296772900561586329219494472653942366518114078407667599732858916692277235197028107725244698986752751264998194745973349607930293644514326161954050294071854715160935089720131960783607962658234820489450564714172040685905685944894950903661970644320615800164271804088489720482018586887939555869214604579465101891186150764122934656915301984531888456277122521428821335205526009057825129441703249322538395918493566246111580249467857127663738954229488210352422863189424769384193258427333571670639685108623196882500250101698284604678187828366855283844172026583861837084667813018393269885168123721634127579194235708058799648455573829786244668211269326414932659345514272337326572493399597937918533667613317256954890607855734061582447422995119821516985569687353638737645826026211345934240872458824867359623985218009525235725899139705756973309434591156913186350177315487484603820825287381940795158108576186985946308146097973724170786213483926376028595586014966302247337886950625231634941805491599479696730940218995510455261306249868163616100417918972329343029067316862243839499336991648408571832331637831575937273535579298341727420286882581830883417463886885444732883411367804529722270611881363355208738294873872275298427315848127281457117790623079814973345412534273791037647193682861436393536284028346292179064778667576420596512721117829496596617115538294842044718222504591271098415269953490989464996894495062671612217896209352416025317831134324152374911898646476242615159319938127941893690459838858949912930550598010368259851041183152692625410880584048737813566363542000166915133083989419572948283276773926147561982778552107174320819724222325839067978421524288478091028750990187121614836080620862637523887795423920299966126881893962070570448477773124508205059339585378433401921854154653778177288371532561485663728980989221988374594431348572385130316857495648245905978126064696536364717253457316182148729291765793104069440128713673460956376786272452110548858400997393688459929441226001138814564965696291307307174658909786738318512035332294635991151736243640114355988862689570188081094021908826743356384856425065052995222099546021624196509362801802640702243501355491132183565779083816246437000673253009777849429188601467329356351947349437586273398041164470527217282174357233132658236635041253547705422158546361877487452068718884881400225989412218574839046638966253205642537978107411489256374763823926836556043922400244571309793846226444863746156148883156262806852349387145867422671741291444989757437471965232081944477746506692555156432605703693730845917611642394394616947099302042621189946157223755544082811904087779822491787917829265446295302142781409831524553749839761276714264641852664667927256747849006330204844860739680588389987427949247932391414791918487218228654648383176758188068905565637289984376185193200858112616626208384222258749672827245277875039267821988219969127449664794398883923764520659350781773399736580151382304976867086904806516653743642469064888844817288498224817207192689747581328918011918459602371131033128768397739938012270927571481693934094312228822796142182306414051748389649588919942965727608591532371086735991281660420233244102417651662805646024126785436547457655585904971533340730946621369815190944309693998686080029421764597357838133428328495747699922091803764997110510839387154437892117483460933952678381375001692642736356441780831044752564813684275782319651057335197673962418866970687668012580610097917931994009497694440340774946979951743147571888706503767331447334177099175230730384187814449372238538731401098842349165031822964932484796397158799130246189446754036039283889415711786439116703922627995161212984260238113809916754307582659489964841350440375373050164022649331051531854814348659216533365398059648226263974793070309555590237708945217943230012436991734599478670530091889666782176279020010279967486992638728076933674931678323556586056137659049973941505784768170027819422110214622241373611120763843004072073177686363649475825794124610868183044214728991072083608673511508516916848321850013016089881666233527463073237660101204451075805491478242871001910204063755192669237230855648967021946923950761432889657784212692535554531878905023009459338705395021339979076354452369267752384562408419635924280524742827544594300955026477882216668799453627204605934768670922062237874538297421210918130750631479095635380014173914401006557654168208974916639796861973331800810726307847793127292259215697431986776428479570687207060487248466601042649070489213169185936684595475472879796457199658487381928647024546819712403007247233990825134843562545192025769604324063915650490879163330621606698346889925099717383725073504448554085424700609676374265063199828056920796262268448010565143691912895524916142415907355362467365485320973261553084781281543555881328432782749026186826087176342954008412462266177686222289234493909854393601235970226220898360123174020925816693445685392232422806645347938334592971686012836278025947624991295641658397011131435924662887712895184890616440359481245827073769441561369877463503884415406136643020221667320375449510887420164462828736014863466865567037088860475477433639666258856074630426408091488317231537209168781004985532766591078458047636580654918102563514740608448647789794075256903500166023676545429298774644750000373956123028305592123140540616735720977500482898835430786457682383046528380375968804768528723509201646424479107057281984839678761333368242315265503431469178516946002479840308231607721682618044618280134954167303470915138341805804395419415652313582684803475404541876463897006844499414313437764980130492680315292555871041187827162499943703879363228512667548790107741078893692094123684748250133025849207049600311231810592232329917480152183616095626008205405592864279061616648594298579443632165386366925785439101054951021126500739165791905696782074369703490192112309017314322315236052391626929516834070872147450690742581348784393132933899830510941889300293007171667593853082452289778550674411390722336174054003349820109108328489434329722535940949890762813799190875607551170127490334898072855523179239177665869491166662314774770331375685394198357510076963071385949406859737878153285880766122972908762167936620759196680312299672874083731248649135833103051357881691164715529420180674048345617566126119797448281713996183187303336683653359535345217524379021288738283551391586433311367924124049776089755426656153278706471250950926340404948823296701446366074998884001861094947997690099924331137249602740048522304064875291579722122121439171587838060737610422012293234591147042115745879412112669239911166181828080632222416442863808761278263648049112766293731444577597787543774318118850199826822341697760368276516316000112645205844027494693773581343424265542819573796702099862073962109267875456744601092141295487820889813876437490925172670939432033331563851790462456956868533882035342831388597807295025258388925193699255348919384613018716241971557565232626220977005989462661494170436791779040892221961133609784082863979846312800731174038619800143348604554193423155151384208331827104296725045644627841632604128646572248016849715090578833892567542714800133670251948133299470599509937188922390535430740720135814556512834524695025935798853924430457113828980957401857291059877779674375935080916847077638990423076107556782581246603033800252328433096333769708332840901125296370550451389751935336830365847009471745461030201804485479206085617886888016859147168438654765605852796478066553442240581129555328530709862278205171230092754354056054759914921190961508030456213620413032425590775883463357041852018489131477237668850849482419266617495205933985435372584884446000672071945748178386674917423635675827802842543601633697140383656452281318243626413150155149648566519631865632741233187243975971541875065222417352197314234098319870569703911566279698011689898239487187683584528721821002670714114092348741254876858396333418736468019223789017911997769270428937351485014502946301470001163906033873017189653323741299684591448512162997915898208107217018030975787452121462489020736905610465276959459750032561166340137457728291504218580381150398568942787944072743364063251275888255925858665928997239893889380255012511317412453159879689622814124534526263877576973869139443756863383682003024381951057476932773762731265232058418571561488232640033336805761756443493479516658499620985397281084369639332980026198469717022782331934625899813905307352698969074649076215486803877751671988118454476139298818536044514441877081318902085691400322317452131743685163728552704885354006469987150412362684111037486722008870524258326756037263422407693068302540593650449568424127978323728607377946547632718324230027001539699765356645271649742616569551363641440314300708291206356326497743384490080780124201114639073757695599928319331833341459854586110661912416800648810922790689447880288890375712465207731508023362890257933034371950792288898271647925312059681023274786787744043051476214523091581817333968696869088310999111043166699188227073879879311173026668058293371926135035515993991755278954452508357656208214777152190296642036519227373651645487361953856594775030622939762588149562608314451360870537124546445924831317067201874575919611264629544394875052993586056707212407367759059884086148596485533857119985659975170111997527145649259975411054140684147747772656497342978608705962218098496597380709174062240106344564514789221476753552316091714360085437169272742244717568511096022671619630183594702116669903135397540510844554858815246077011335839165838579614593942311637201605532104610150862733763397587785048574807451118218159047169686389115195589214852749686173003794347308310957722051478532062875433265791940012628245995230233426055089601822151256026905620413696553945487748527225706824327780021286335815859719856474054043119827526820815695789947122493169933730588868547750705906622302932095291526361454278426275811377859367548739547981408247962136420428149455107373581632098552987636999370631466815473861396011711298762552078427035431776457098177822889598996766420606232675403575960298941807837043938017907162914203302402024203860937333964614222870950302330852391472553084327665524663059619726483306622983002405032117264663931968406427667329620470976975613795905821690516025877967792915131329607077867678190608942937307453420788384824630927363670378545032583530939549676634580338826138460537256514354628206045315679199174142440345985244391668769623805075318169615358167409477196776060802845892909211397142936826282780677112486449467049148076040244854268475375640870938621406850197527389526132259686899244356232562362428860441712914424497598932572032835820427714168826219721687543853184412058328523075462499251866068165933821604651541556113580185218793228153424731645121869714621421317728834009597691493802596038051319131839176132252472997068898225653485515110429242346036475281939338007296247850314161955199651218318170339362328009524125400824461366321873507400490857905665093472389459548631619571765052066091258798514057082844456583879243200096950346101746056907955731661592067727024962573850248914318488946669114392275129717839025304393286842441069907015436307866177860708142797602468084316353812190793226278634387466931328594944403116407096799686068868189203408833633845278163873207458204919235066753033114674889206963326516387554471146092057687274365556580812051838314995578403342878408724882252312568792328601610426690635531822835110280025304468353848115322310241250629106944202934123310684913968833040248653503227364409715934387719912762965316415359386509021465928916397448710064909448310627409998184764945675213336336252266003149221255104511534389645413481410338153921870600147431775618386066309299037147403918149840267211200069840011824148551021665354490938857672423049463498818076630302968637858759155603391448346934449962988942131570927169922267607959639816750726082817366390308467654532845067230669567163346276099349977460103334231388001318175391341636133139717580007651401123323653428864779373179456670657450900386191286076052038399878928209758997571187424755626001908749752242105913275655888213477538084996730147918813812480191105086204367970854337569567921025602959149076789410617995493098713319261211928209226974775234176819658145989400470758259693739877121617952138420092546667351786757737721697104713019076912895897978220301880567091814200001245906536221096193011126371548253774443020144284165979487476151292130103879096402719153910235609730947563040951022241363457315781097400365767540262540451633191974562544911968871265677934503250788106231098133901696095215944457077441969024535637480532559681115205206395857388992628945659089212351532309470956898229432121564815636734425474917352515766849603117293071586472552667420490449970663466561849415849533656399946213814737883945437877181121121254666504859465369001255097438916595995726156104934754885815258397486350780873747731364806406464525504320947316681148168044012767782431021642695749898037297407964279645039525857611876330639799356729192541090585480865827853275805533236629334388463748153335082840641275074808818515983005484431951762166781793785795959315211426359533649370846495698977028716726587116778830705667514682262337553207121024985500348487859512140809366626264113247381116412530876910303432098452924469386506688647691412716222116352196523970291637885121258280275968238674026232778653780274141452119516618443619116736818722155244839102563393163006978110930654855494931836545401752305229453204057541171402912521633082596050185220329291377748601402013436711436371594157412509990350314941464368869780605637186139244121666236735301871578765289982728576999388834126962845241102481370948473028075627117307199513970066804912942057469263114285397176177786342589857994471149785491814509060769165349985576027678876691631625308547483504314433103111363577899053947108371246744957564003910847941688755671538323246498218973749842329019941004654915098842757445771098400008988563061095220320682723068752702738769041903665105205780972459335855678619745297414143644097213979940036003120475729666052056276480693081718052533704374382764592444618139603372660996343406305841098428361201922278567394849249918789669166247551287844618049358476377053809703517623496981780923835394801101144734392798922211386729425466330462384330478387290680328002531015117152193082936318872504412783300834795794563683666304618687274627113349015831216466753525357753902936291683094894708578846534998485697995638990369699424629156649527808185762747035659998451407554464399639410211562517386593185950136713020820628297053019381442189870400376568198171648031080816662647567120035526894230796445884705246866664482486696005486796190942339828439799478835893954199188834710063557587633830126902961727575027087932835931663846392410246468080504454053367009850310090504607195113991286843708106458611060554944380493339249266151825028542809758877880616632562482054308376302168885356762856779506180132972369286204789792916868275555980279458229342596589481801840620787705841998261803461333692142552611044259982827506868521912931694799444219145930219913322994360690288419233080695535249891392802575426407402489950560133118020177624063955519617532592044122737318131299954037915962263519790024621342724458654300391112566097230685104679243076367262906240265963976024693824274398716869028373980862129495896444705246189003321376401467805210236544202458368317414275252236230592983795523155249616508858514791337770779753631605304115256036070529708761503141733879164145648407889014357824138934586376250791857172173155850864055570030799156591333119163593189657113166000981506919072984370691835870722909471531101107624861336237908345989508153202887504533795308715803779006841429793272532381586477612221499844977905882081854799079060142932837065819760159074925006542700832899871991956117745960491834577920440351304392872127880690899065261723112851215264452902351843399363978424649517588774685017372984911215750855204201411115724962783282686225193458206983410382497089461370152306658149919265483097907507875572914447314400183934968380530590362837312957693536884287918697437981826682781857276440377556971035000047027058551697694961172913604951617140425240921325521439604702679525206690343503444384546699796465688855958727093466522367568563703152297651540858738743728296546900832423483998696616304713356999209120747655404175116337811550026300642164684125431922465423029248295753925817826760828314286459103518824453927416350486253831732537491398386889889686091146163793424535233547406531136400398423719480443445976404308698759685723328424061758688411998151603366755547019835088915132297021650453438422389967944630794550241547073075002784574002873618497176757099698941905085108335197885627121533152740903093480068528626577905376853698861003558948772707838549828495997138750786433868060455211135063229405990880998662559878307378644317444557427165943466525232231055168851790265016577169689556145661983306695394801790792200602152804810427287765144427716949659625456521520133973231731905939839130415842446475628633853812075219770068963797206837092527587083437753230251554223127503732049081307792435323197301181100547091990102460311659590836233640848843934396704542312329877318374868326765549234011090575164740505138503485794963032229663553752306958996803680234471324400488299152763976258974973083135413924755867410502146588740816146759778654623480711412065102925619395783645540697217349585536038709923907930964181585799386136011894130575450006138540476672276859910923121043375001834746344981512581905115214496332933030670177082905950661101645852453517923265237707544053695307710695147873383976960842952955610625366962933648123904711910426825175462357912055775143435713646098630550139824582566234052125504789470900094990092594741635147614973828168347385062453248561695937881258843475552540873633913386732994719146877119728015041288907201106109660194386372173699495465992652485559072063568547274994730144598936462532452262727577994363819245262959987095881779214491657731963296588130697349880976698567459347472605814765327373553689449189728412748365190389057347113440610749783030219643569268511470076267921463466264267226430847326663561339130402840154098085942779378867200861327295670997469428395349885093403222260326075541114170412282470814061293078062534079905341742629337281852231665224075037188208947218826110075610699119301107289575063696912558005767425060679886360174415761006627175168284963642206040879699775140066363239907928349055007919175675632070837187351930372880588657823026740818170278774321721337906805311933294015780148520553695879400515760441550096204575139875400088832457735076807672230140512142658369260468214463479010395403119484047950755632222664834340389394464702207499233195145986824113399304907893913437738493080991906883132335380110766313698956682097119359000321284945846740011284013840955040758264427125713886486536595805538645839796505278516049195467941776064534121820141983772577133027627270526193715734497908621037610148407998918519451864157568164582155482944425243954132590683917588167281382663368586966132042055208862345971289365291738228995175816308442110882251251832016885651739013116904707544867099279748978344827174086914018426583226148794497022844778200109599054979429871075381425517606598216667649530193024531133940244142401341373396729031267678501633335873753605744211902310717401322803629122724859045874904168975315866074595205592609480719467899878776070225216537368040821067165721263159746808389088514369848465623229328681237560003344989289581987579633178913542384414436110773453023256094536148095592972390716615270283026863951329238025155867434545576134310258818665931763871028986914031536303026267042848451429150575874745242751290486210891485822031189892483380420957914008271678271796178305442047713495615988552311390598758840456578718988518406512322994204700708714851163070858285667757010662200353419367371437274071089900151530723840593842316846966224231324282193256993549020212106419245426126915876939154195153204926008889172198642583378412611330791438595293466256809461838642818335712571187141796170099836422773243009039941051018586779092302135164579542200794900581617282405178062230665888416385634070241116174115856621254153488593653213186312866090965942634603752495226188928444966193302824688891421734455292179688107750474234957423197715075820554377141282510018369925612597054388464434623403612194562408851997938241145731139296239338486086191669863953746563387206574589961218683223927116186277480239309214318506837061970274120518071702690068443076757704564273437756024596317293235340880432916096181536754972696171698653763202548039734718469390882077243095628020578826814935063935151393015606040648742416983762313978985114676987431547246879247679937599999935085069841539954349338937861682857140933567772792437057320630834809573728372766339539212503275519281513569631438265493405657248467004827844211831122117517746757439020421232533718034610996339500106497802572563101765766860364454052036928933002359783661289762136443895983620044903570870497142864421697012821696960470676257115840136898146521546683411660608288331910332638390688015120543180403899171436048816550366369160571520840806997708781082225786463192297018255312183443147812278479785155048634186858651916290937574107467606026122112829769957266028501063762677305119859330022809325791142056634281211108966547368746822452114802409771760198029315342623032741678302370220995757765078591569969636399072961153330117532537222989712396030661764291111806056212743720229747778206609997064131109097957700985722801937473556631105387638171580986018641713996087377205712587505793827043009656744737350552931959752499064340966069587795655849947396860244043998011619262649489206260749899139044037696441754209916379959574015606941695536897397884066115347010326123486724202572010401046560437007064702758199268641524839286461001206443872872895826434258788265045388926741256265385585910576235694103950747566572040621265520565806729217670960997637641575211381046562938238951005299708803833681083171264058957489168211089346476322492619073274841469165431375573465235664957094053609762789128051852897322289151984683423860150281402643245460898696928241735982979827496076484225074821509658658828335097339319071603132523656626084588893580641709656473889795004989272065912498921529233242881823511612157624038185959184997270894023184578921074377277223272951939545599354078580192273666249552581169627163499617804309403706548521784960731972829554464330953624815221172365061874629589604392480084929226267367743478902795378866124911687322567297637726498561214195882516245269407078195247624770804167503939275614269539258964951125269626905828451155224247013923610238201141560281008457599249880948634430087141407270902052807416835046575099342098313714336108746405528301237157488188824616625990069849034750536620557856349733347583068782120783888822718992174660682871182891590874576120380959095189289438005215857396063491470846448052932986943620087713048052208799960284274287207192328756968517163879151606333446154821906063776838486167049195082938755800244903365070419358838502903306151491721263240724704679153184979795207006616444159955651116687692194220268958665345615767981631179208460327462096955587914532061108329216864738901813045724126959398339867213836015245519138138050961065881449537269290086263235579967212897302849288414493387070717329125040113598690004266065852483238966172111887643682119049508020524371133689664973580797586645452580054316126066758014630307215269850904667723594864510324232453704142903469597176345785470783546429398013397837198409044840915359211065500123103960901612428841273747193860829415940096811824375264248399025076446204181899581301443526286897981393984506135396610689791239231856490237314102642074933522322271528778532486285544392361045549578314476770040051901755895829512598977174652874081468876768842769364637936162862940569576208589990966085779441439062403058482098111885023695537724241457630108972929302989314904586221003688639341153500510947310125531338647571128952489363449492646256729581719308562109355729017328697921163245498777625216003247459673226443680461377382073574148185412186844542624794324320389202801363514864169628872346773528774668583310228373646684791560781530958407129960938884596902147999886534828061150340544349243869877620376104285874660119018769928918950542918710190430696071004462349384297167606527394110904009285714463410598178121285805743220574532400429672413482580660632620588890623391559569837737025337381626598974908072314456251667758129908766892629254070436419566200710642612494797143750406850312130559499369962344045508866630123833799477260152053892616572282880937409284742349325252850670480596198291792348556726295965421914524764859135983560483282717055826009551017364384650955933633097382525877911160626768350193646318869271932783589611891736893590285720707110951130423920283981860623102627322022152590461737710379606499327222214717726980823701210479606634810770616569673085524722530154146458602662079462748282954979423132109027388103799843894219869037759476017025131075479904555404271796442570098367839212091105740629032703908740479397376601048284060951987311749068862937325733630707898398014587929284960974907955809845994459399975472286538337727746688114566876241792514687692972773175943030646232699636301981983220381218931169819315828478196627002813410623890317643236874709976234151994031070200971888893404218320382664149001025113094197112867865970694958540397106435277004092749333739839455984995003740234523653822995235617270683283175186782324834106057007344229628079969669056480407940904331483497632661801162517574276376676851277418551015118321867071972547835030259624457143880539135579922992001679589339813020922512563980240625895208759033228913751121504089433519304679908062951266531489247444389514315119610204832807588746156221248017142956755577719561705314730773181163169688793167948830883722323614880529919773803994687739283713757182316279035651966395492199078771600294675823770170665431758528315277198469020856791864972090925778406504771808964709020804364249220513290522713084122910005459946509459081846240081229143678887550250424984432950505475013873385168412359934917708500135143643998903651033396069525715469759578874888738941753935300792259375463362142078360859071993614694628400457226943774740862128791373495613080814605263309672148115744449297396844426274895416412061842261940605802741134210433481555157317681775914059928468641754177366073648834999319228881885212961943965301320212483156024916405896506651753716933080807219164900530824512791104378663284391863400362304218588349498460752343534686036492677979393269143015942405189571834916038010826264780378456398604851421613979761265961904127837644435079745160461818064184182906182202664854169827562120056042670206777950935959665956685557497936577168925936244093307129704802271233073385938775066680658746066471010392178340513848334647985948354751803154730636446864276190149621906503532545727144771712372394009017567299031515748334044323358394087001747815278342651493803097170136439724285801253459951910893069096611465881822752021289701510109427103610973959889034642426625441832741672737151741571554399804039754743748256291092550680046700227422132040531827210179984934191291013896951156279442323600764522963744390488869161812642020018324884912229067167693815221967528515302919876486280404028583570481394743315601706252704665111633063490446524255417622204203444805948427480321651345467139865025129171013762607953743885760972510998291656887635706236934597985228734089191873998928322861309362804243728611603236841136499658402361547768933839363807889692035814346731600940745455939451214678739431040403762224379651520152878521463055597213729293682203932719673796493571212401695903477880813039930242322572687433038350957638138417226773348026714981325241749097711228526324763907929697137841695267984275404101545189535830036346431042648388378510497355742454120527672576948882985377229371891461900742870600115699568086626205277526538328907600182847768961112663374440009799914987498504237191940726042529858826879122273735568468496513958121451626812690536961227864261741829511507300591175946801161129943925170635097177102209319713746542799908955552635622896473468981761237691395037327198679253738724304482309166193092103452664302651351700051378805732470416003354517225160847892724800992671697199956087508609593319759461682403084135088038146513422918364056635793688626231469119819412010447228835437067284471654725097694814497773226484976099402311364544822845732933798019672479011001836105082575004699369602974714307513777156033245356517300038204466547072659955451858486006647963846223726771142336967350664010081298287869489041399622789960350729400464783865504449777966237579345868517084351204018410892520827183860073192097767540034231064046636225101772966027154952564173135545281180903798249408804085776997567902771121325975659751905289882516718824626964969292140332656714858359785083258346165743745292541028096221828474650270477163145574921185478351720620135458777370030435654346407828280206160445560774678379115334371138368770118989417279697261348822152057260777386874832476457649233399074900879394322643500953147942553793350937849046333995893941196785726233659661566086768925779939621562861182055753920783464063870321995234039003061399775692271890229199043919123257209986877668316960817457340700295160374196457037932742514102565101833856694332416445847475713714473876499527872132383625031380155131289750268104063159101860507612386559571042843740162313734411742457654115047199491777263709149978595586526925988058433130880270341490279622380711315592633059229254806709539091890389402853266435812472776435986199956470504415900550638813455261221163855284871216705082903907955684678898038972605590414225709890890469300043948540783816170578106120310025118691147760920435025078517524397461927385523504576662551809192710326375177831840502252005000810128968821125281052907296654007013919171961405610123577096915169268953738142655732406623638505352722587299289913118634826229835320660223119750250052380888356364539691624171604611066008756515165872591329171793380854346600240749714672288422845642748371888336640437418285139425579731990256419821683445739609888897198332491535868055604068466028345285793852861929767703091283813612488333506313239426542212166747352569008259063918632476211783702864575755517075197243928266134790156638995524489858299754472994473351750841387421572417058432803382931864544955790430850293691291994798913264430947350023702364946832119738553374464149449375782545511148007030201627177587041050170981715220168534683022793306892350812539130719977287600362931051682603258893558747973058911102226039115409931558356582161854276942677736699014592513292292967341236605944129418926102715042081248012943409712628400294977806138386344073861586265323410073131304281367020840726472673652218745166856488648524774743917053141438121347407141444163642035739533731768490954671751564596549490882578782521711515042613576509732281643495667538009860961274475080186506464488279852608165505521987638406683145918254553143279933662330721406438089476514413109846653750345094487210731907160308580234974363681857884173784582605797505516422747529366876581864047305005567978366683406203673770438605520566703337595771059798223265579452050424854919835888282962115986020132121198774546682986903334646539471876529730684982689033786377972306588696062334328977478096606592421212110445099497150694493795947631478027987300016676024062196350574934960221039449181750949224654842513512464745546860497561802493954447535208955468376072065632115251757000985518241529465308414753246790294707038736884921823900274288089013118458771729283386842738051810797609234729031549173062961932669808586034115155822078348723300181368338529009989523472956512518182748560106358406054755573198455984144679543429296682183923307884296317847758411283589992627692770036493500370971737896205965870440163479046777851106507623514361044504265241088282956981712880313886295491144871225650941442451132220420866273271091499131332331220383422883834999165840970754913636357651757681573416667039855329342723696823538116252947858860699476962994079219343722492171618562898658436505155391272578189541493047438593666788431265423914833210610812368770181280451561232382531585791244403372111453214493500631690835886399701831108172729779975477326196219623409575810018750125982396416300542570190205536919061997445884774438152876574929156678394421105322247081734032021615810834913787733958341647767493107483534996648186703868656194860950573842418099853238734700167670704633638142437995314304192315406369616326458096826833956287334599614136356087494359643406935246660487997624442580835485664378518678534660014187878734987776714919712302099896571726780783769023760516397483377161844314983663879164338995378617969408381754467644679070481614791685406110516768663186022164447991463149213692252574745884851999594344183663528512788624567660392033282964537383840026396357613821299312507162568450050513358626596637731536095870308633215666447147384033446095326123236187696210367082061065010253546671031328813621708480370519861034477591977519057050085350884273040274787643762444554367489600614854420547077622790029970356110988234240856294543345638691717464561570710874584858147542109163629738853437359838125613977362806958491359195485683482948110255729020315243386328055282399751643284044029496815075143081001065715644782829051110923093672309498587696927806022536660127544096235568739285158505581105345816266647083102041062097602851516589205965506694736266168763968465211700401678278904627581560141893233862513768010971788673963855811991385414932771972095806249403283520519400525471451551164332325591883930758743253305295414222465277886226320802151669229045781975761812747273416496716573442688246511654646281781509361631894005185337939537131906873727421575216218185297974268758866754554065159699191589886766022933963862910390696595391966511064306758495092026700492280610585333020383963423736847397275412913034042914537345902133482206324922708608688224630043798440374164741260431256968650575881817201916235657626186779376441804279087002102443090308861068297548163579271649268345277162773320193961855113272221665964531913631631779026290551732751255803844391773810157926893193892257389694200242306861259943580881965662121204107473048544835347908544018334967651137905237957678135107527000676852697595611404727943132518890799470482128821060617893345324998016380430817175383394530998180653919106200386023868930526692911636525160318683531089172172423663547672719767185114343014845129061226859312732004633495444980626040468261555203638011035531569058789913014832226461892925362401169060764866719597015277780055247565119417099173023561745739793424020381863728966826561804081614148273769944295396283569747328649436101258456296467462833837672305051048728537617191592757831986640760034311801839906074967591929428542134195337522638459645457264349200111783473241025829364593053296887891274761331052756552728809083001298673855149652703110253137956539565574428220477931291920764695280111565661367896554720178439856792108340545795260281820085191925001985947418679058890438629709107277613137188809432601989552017961481990742260704443610337194151937164983215927983615422785480124080741999539839343613500406379797420367600040150382184105610087649350633344823502136723892272283894697302542267864901723967763757452876102403240900561770277800335911766924305218300164481053695290544186975816609401834524837926262725801692816114886232844675227996679532040423802439385661316224418625918330129020155011387022155733750387663877768838677025740167828953572776697064305146215311903734438130993684542043418978013717894490004053063557889783351749404396266821460880290559921871907707758977574158702657251223454079938165822595743306212910900915943285590178507955120499536887152295026370084308419164500388318615868575667597353745242435449704402471461225053701920728966150705670967513499154969906608874479431214378669390300510894757577238319740360573460608678646673625692669382319647015317879174621328836577803466961763350614149897323696427549099416878233969706820893448039697216986015873748028857016608362709315656298330694725147904273306391478840796795200785608511748805727282946910673224530246458881800238139807018648436469971854455795494520243009133875019821087681108366168498580159782092404261755777907333489758070239760465442715761155494751966287844914815150401012455866655622240227007901233649498534916736367081656139960207440087681882980485289816776509447442633924557821516252349007480823075260425569206760441712102559354438723117712575869575677434902819696823131832687383778602542666109198435788412996300606016417690760738311037939168148309190632491250732528202431507761690809188823505505824958128225090858251131490825753769319067401018330389776537991692012765937232597678397199678868885379274438760301004569004715901485623542887798932589667348949684959807361357315622611279679729674628918973288121773753773276153116206985952872449474527354902546765542523721538856371295037636034336055679485679147630862655858765245792610667741755627435680132269434169537892890612488925509750699401427167123408191292667788751459258636397176270287726731141033197399318636839082872700666713734193757984881243848158715815601941043249381159178337536013034269115644452934488750515123504725234903034885350222096097547743103946522858968188546931719733743166063655914109160120854512816542250810248006480763607976617101751730478179695124342093774394333014338268630287911529234127438618281339927851473838528708740364530414063670195495912173276780141161066671780301002685578871885861509765382991508885480921614504396866482927068186092764905095363604685005498742399375294695045985942926248565801823410255914236202236348599934941149439765904465982489095178744098913675324435130504041228008158690872932771993552202137286266694695303210053053709277002275366518224920458833666955199746076753527281134639470852293331912412372829733411124976720408289742063779406985143989602237723214786270278782694129795598222718540935741438347679945096317347186190766753909506431397906206578917764635352023242854408808844183166582991680834871912322533601801764702632351223815935515672965393746092627975001173079908300105281766835404989336795391413804700364370499910975354251264846218714431662353102003351111701754396612195289463599127737797493109738748180079096492176017209791343327888593164144859530203692036397997882168285607850182564550458050896285503354210212913827943769108920826634155976988830407878810438961658178299601048199553502926538718243587604675479531655654037778775653772005917332715684187013117381968943123332308000106230311642300104652087080919894405778114858631280068667371390012668856884621448454856081784546116752593929408078018255376224853793740417777968414350031551855003740827093409742015969678979535298339685926291075754092417820444657263377352222082233729763382388316911025378370800300607297199301817072935670204737044399212686317934972380637617889961839004634772929092651825176352843747127327157241722603440121741188391097518027438782281999583050692517300004725721303971185401487215010643148042604750717376432857172660625865594051562005659899800887698603475217309722388021099336765036624645726968150381085245903351514342236440169545820322154888586957816949115355493878552067619464732948628216272631074612541920112843079714831572934913011663288303169965320656395113582975600578917022242599865336125753274851011511809196435632673652154298351709041250838078370948503633736738673162968668713063426905965198628060772769655758494259391113935730949634694051997186320041360302005853587237224447948142849506515708754717722198494439532329118414365225327601574944907366578443183158700015113011992139459934569076108378244997774522310548283491294834181082824547673159326642136823881946485723377985154692789244869744032976845409498941417384149103598435469678974612660426657228234783518883845183096598451314480249939001747293876021697917521635144619517794994641914757745396311206406270507521498862676533333725705763688449557807566855419679518273737307532158819288352981874675090245852169301002240897612575903349985826060889094185318336660549573333579425955570899927292319089972418051459629196327937191015639337291904407720836347294304926923782835890291243001200365285089219927013216568367053398836136875936204624737983179000111518879411868930959401395100535553368619924602043264504420120820432345719575866505868479165303992888549758871734369711578279936281973565144039147809783873299526723736765543207087559231411937699682221451770795268949709774791086423185457747458300078203231225267535363463583282806466832855367053850296365112323242980529553546152706676286530746701502519631657449811426822597950781262167690566487040911531215706894514653709153555308532137690313132231029348978438372268271417522803068073520961084206696899989035100566279046480775666163324669855336504900358064134227270135913763843335827135550655542387111479350019639952359008903684592290982761865334207441046563510456309187662934745136743739400244332482204439037936099831408934164495910460880352982657269305672254949706479322195754774074492738561170546831744857153570099064574994264675821722083782775431043808597592179327647225360649307025320236352649221299885054439861674882200375215822766966673226897630737081906693604547013336735456900184215765739011058318367860527598869256882514943700734217253965923278948712136293932868041370465079329617894433649865085869074944935836511491514181822538282566173206202675446464540679955669456088203018241749467837386181376494310241750941867899054530159904303946574656258003938763479441904720617394216195053901097550965544124603749254919825221160870655637502965448459533028076298983741231623195740950625183980218837495634093867584850601849716947637335437914444960342834306700001958034155547182758817909329543201646182691468608158378564284064174940877291025501981077410753616762149997755706838985988371747564322122340425093288535018895655819913518460466955157626302004486075366756973934365178988317170842946635739171409237410485871151634705238759165843038923052757301457406691748941594224555259006295491606362568156428676405282549427941349029169014025160452174976643721057139020428277815628067369428203028375204892700354962302924210037915273848269019822502410871777228147419572313992814202975552954739263436765499922318830186869045184493564845194351398113075714404718002818080836366295892433221063531179734717127064517374993967183157194599570076432164073299061458425569138459672769044477400749318553302002275818465968687773426296863180000172416261429898618849962801420933081907286107487775389206701883632299632857166156812324934780285643726674034961953195021317033949729645905979999981025404088953628084402050664664999583642220209393658329048427090395473868763307002261892331505247867076431255709113242079434450400002906927347935827015888275785549521583489929996569002810048390330329561598069813780232846351137042375331651664596625893274501911587720614310914821118666488350553457726205077995117420421008938693194224664921745522240483388548889847422764715343754649060193020330333537701817944493326662513493998388088889955090950389935218661346783645419791455227807182382131261446231637032934530693624115500706639093722909176443717498719474595143004061306797391961796810243643120180810097014496500417201554953526763789974530145642376569603233265366534124212392950133757709084575712090575991218647609857588706198961406267165351651549946874248998071435262389215839461913079712507460753758226805884433500499858086229503475546757551866638780881519007649778337092640475736235271886198095984468643618927626051738117486699303400130500275229389793591724863990809241486967614944030174451196719317880252847963258315035498750601703840358391825516508441954556548537397701594369215934204434531390559686113624231577076588770473954204762235596083585303549741441440731254651699437381868569234927455317454620736028825408911114474434465421928709029166293373728936048147511474557904662050770817285187607899885902028826923932726453901770559541499674080346125162756802557192768821732615340724907839798914060627414811392037563019418897078714247641948568071471664523615042324129057483406189964897717992942230463400906999272767056930504860120208362557352658649333354086193514347075090212830611354534789157201920188339815788345752413512855815866767267908728059136596229638351211720949106770202789654123257601785367898551850583005071574947889081402019250179705355214650204530546625970174875341409497425822985223331689305029922753333400752175653513555307319223339801487200615754859707198547310729821226405093140985544175144726207710777168550866770567375392745556209446834553477396069087015485360883234348282422191473796627639144980369802415489136244755176770830302896472142505149510191844000637466091274985392067159124197549129355424975850554339407974917096142961517259093995965049792880560742261210888837439710275453310755307120927473350500296558294438511382887596767429751838568177582019349174020818449370519653544223235759833212035042100645316940889522099097549322893698370020565013498662560941580698269294048465919068537605364211530863869153116496354864589605395637286708456761265953764093584436912590512870066908712563211424007754160809536718648158488228518555183945414976314476376153865922683236954455427832223306401825527667934216360278578119936844182748672064429365433422917972254244934545114603908272797988631957943574964405016844469505445812312380421479747080741348751746092450208175010863775956182332983573642365868343865749033807558663324708149609829897782270084400536135398956251577079058799500255245216967718336893085905502271101841297328488092935468872467487567855509066845353527772915454570250016945634034648959828180420038527796512890125089228704393307889114037101468090114371599383089894534370292374517769471154902419447532554019275141561680271462506247909541334253017760775840506679950827538751244559649442144294125813322833697162212254342708602498221064038678106848284349527278110896421610313710743557697175987614912447759046284267992012199583619957875747631765338112856240891056159883070268471375594649182394364452134153124481602839196645274207064703267604641549620805922753951845239928393667755567764617759698041403739206771867945209118224561993229421005838691886428866653075622500612338506566066501155136154197058057787287434449359977962923828774565353612118847105277446538912873459321208707863911273744214323451225256609360755132885104958230424772960935559650863432659218152640561776386780919193678670693785553510608448095343200844942726252926543739627817194740013989822116121677172829002639297459277289373908190703357997058756604567937045015593358504152003377021685655074443543456723611770869683229222387387176432024337212439088655434185419557411262825440290434122106474680891440617116232231313498691447487197411338165591798915646540772323330526833765088726655542831864488715385270732516949546493043274863119873354843376913503744916178220551260093790669405355711963012121981827003950418014640093873516492974032091051305767531692474334474474949365895118404885585186498788116858926753041729857850693021113251694961771066735399954743464184288775582963084229549416919104418835821112924297463193775472449555768810719041599467058460653415172974453746684892464564031855849989773677398906801510821934711081720402457347204413638298907497417403313351928238703756362103312500473400678238439862821548230385499133532237072556993991813259332538397359010226077526954953519857128068370326335326238185822723297295247399354374475861612530445969343121585684538801840438202842314217130642006151910504261126569066258038484149894881870219093568047787274575100968560068866246151110393024887656503959291647674524542356669858847422522503955345943230245184786220058671779775247662370925938650335123572752106069549919638286388386482271772776555642365083010163225655913460991819376679276110758492610699718966507132696629307162701906349651929280292394023884469718513332062562345236515089303989055627874701795625152140401854251677569702310625794297251540642613429539911894925827543271096339153069506551813620124009322591851028834311879867455829959773375623617161202994747037608751171425016103659359363917839131319966048217827695420116385947430059855737705233306089634437611403156776447424130713479403303379445039240229698093976188275560051245860296970984735146110427575320461217317437734847363775558131656109130704961342045816221246974508494707161853872417098094164861469875035966249817336193962209924562500934046909871443488821943265857838353755055900598969255522591060824310631293212651357537309012036214089385089046153290455662482212180362394921197760607249427253775386716814774051703156537826418368710427364869393467225057796352795140639598769418342487752923476291015069366358394974102772848231706058081652811604653633691020983476161297160667463733153012405555884416987834970208235275300805851965269308487073553265904182332618516283391723818573095314661644331147766111338375777929512951464547234635670429419529005821942080744706363414059251043008908381859068282089589095280921711592276869063070678600604405862211503158023807841685947634126574101453984013887681672167625957814024645487232037076527115851259245678166357286152307775728922672735797232365337728476325852696427654284609668313871475845452282661849704764638494638706112658468527930857642393827400461887708315592517082695754574287210792220344466668844591699135650651274270593341277446410832582860860459816779084940162429823966539837751911252352785337779368146263128974136837598769771739183238320119410809996528683639030340542194506334952457189552632986704754871742578169559020018860798328589384812023242060818961154276682733496921704460048409370008909487699098521864844197821172375344180809669757630664456355070066849881464949113130034402414722044371234764540857052914676353724009993542002871980127074048561071432633196609091171075867284418690037921391823105779301853162967041388626811195126679807020417531844505465898570182163176442254571804781482830866560552321018896489290663386363471714866749971828158778908293408179862790332666796665530620120169299774190776350243751948459148005816703147181038363705123614315480839818845880152843116312561156577134088205778039134280998724523544581422737229380086333727033803061064482532925800547786546645916983322705029129325144516448856824573512025392219357174456524839105639520863474909242123032489008021585174362174093362646071963100592296199919673789567817264416054195007194767397112982347810630951856944773958039692436660115753159035880016903940881261248942225266958214081398160676627796691587808316466459901781321603693362460094376329334836840752138779627823255988374924069183624668285142355288151540159959484208460995347652445981338577648384220548608822682494486934299969963191150220228640231343891895835160249339989643711081250234255900174339260646606256769572588016408941778846761752295715993257566902686175149938327450113239803691817803793771000557508721490160520919046329727720993004132431378621175457870867070306168157005340080246282770108602370772279446013766599786183264219793099102200738423336946549212546086608420332536750761932741346633327476322029005867683543829784552478812869064157201431095812765044884777029942495138974086785403549666350270640772311148342190934592627990059493889857991338602247310826420294682876699741877415264645555379057382771635396040883794089923442364017565318474163619319839273776654731587611156532178697504163010617024763708288426706827937361135001716150406013027095449632134474561659930827907623965962229548945895403588164238745497955486934646500187581052029592142535766504434618336004316793472647909846119504440651749422580206562174961518263183471937985446909928401852454247088030946929406843736916076148333016151974741121829000964079157358745544402571035404864628337302455930497146111246257035308278114196513235866212979889000144164824283868727712223694021571311114041908284179391266232276649905787442723707249049315443434948389161126958948312530396588076397879935656398655041089388884763174835220312041587934123488726663775360675136891007147557437203743357049718913837332598460845409366641455382523573786796963777104124099715264585653895257995563547615760337128190771233513282418822378431363407738112625680308741646802482570780210160646905793833473245627988344168488948754462056402294239731686262736469189426996252808113361746257316570632297449702893169354093173877152634140407478165823784733253673119214117846818027336577286812066446388151550935549817084444901785610880383656770702174364398002901144527677385859365156914796924571834861848498891446309623979209625475608681902272527338999337513302163937826579631659535783978422969921186400470749742881902096656118359726170782135711142028530660494913031849989475378100205350810928288362501141836372470469809597435125142079815672387282430929736604127478916371976702319607176132793580410882655040616688458057072500054192717011338797586408031998622095930402406215081063748682289801517680124519296988546913890621913194264212728993013132025548463713350383686251083604906121099416159084752710235259848256473654205172611638079059081416814211851935217020789973006786334835590621308027257015852720364049724473065371219192531779527871129305075351154859744034666204209602717704360064744963443502006941893948167759738156680364440369758362773976888297519669122730398187625589015801194887228445156466704703048227698200373787663262178965260491065075243260903862571732017280567324062742708363546204574754860448841162362705350561032093852377349126361169159258546858563699566437844539103856837653696111255077828791991799145654993279333105674646645909619102277832618205114594140959998673005733066815475202593982865423062939184468515363193832159922323226506725821394049659914255007178833771513210522317348845242140659698508869583665768964267678250639532701533468696539650885306013420442621912757865228019637466238884385589717040543099120286373937129686801531248745337221193890215366547973733726935442736868245878995860075866995009525167487688883211773195568578655102448424217990069674153530712093903766290254693549518028712854346489569226769163017337402662371696923815723739733240551349490160473044054603524859017085943954803071034051013946069039883798526331861508904133157008243522969811500291728159751648468208819661643265651980262424725663966313348651397163771326177246124480635661182727773966140810310098732481192721174322050367037928417429280260768894614712593885346441659622400239252432096528810301992392597726527303496188191934757515236149695288494780985590885832369581367176530805271597313927045047518661495647098668194606323098659590770266208542663944402179471887257831039592872342515470759425659405390352865406526468908458158787494071819444409268963714942594921953771773378697453619405100606688969146994458894207949095343358790012943084918826851660746427863974971890371873632629579249544832530528102935305474050480894754431753575122994280742114016189086581212632262027234052326036893176085731785198852877749706957805075066906522127472318966517705051404629082715707199039401858500991602562392132450900222469481835108648346498173667518421302156054926821411519888099535008516793322388966392093993476874256535818290887529371321729129745048006954022499072158775802279304917346819140144761766512541813133473919688632270455138059427743656631478713138547423086212227274271127091804223762360665033742799828570784879741990502630076184439590414910382850098277392967978436704059027479686314293593429103794439749012453033522680773736076320697934655815503817413114381387192207751368217212872874402881250387921863820950348482696213999369081140999381370994376304950318619158323910677800322166415874612083407486528494271647173538431175442645708165340647068470292279791735904239947020537468084301527094074164599178894874043098439490131695137825518420945079748669215797817987150671805595452912885160607161983603127680644965270444024145550399664675407685037438952210977425990819858758534712753072707167633084384756379432960950548843930509765607039319981486437610678489726568934463094677979833251541189949561304551984538470032933487882148334018431728221594869940041927843693012050736053210143766768136409938465834622701479784562463441858949200442881442826824923668568679014554223567524927796747796340486853960324897088116948061527054800906376577078980063601965987500268610542543724475028044815178458096776114302860548343429745464696057462932651276272302970083995151325667668805304428243745865497915724484239605552679778849595361623110222218056151373850116226994063965771577598655997289059829221711723872228570915523837136582263250352672898658777795310272692191191897657789136947297573570767829266970578843479252995781193104153467741327039889891496862108016367755210023467296265622449054280761230339723208501258434259930571899218629726134902886068294784362859194778169712505913178094301127754697512145072479788044488554245286136112802041457056644950093845956068202931520630384353677607992431788236757087211516857303741947894790326520356971889678593927984048033801941434617778427511987478238653009065591784973545340620536353038056958948952374071407254928032585318392886412306606514710816733328142988179639979417417166026113134723231486255542958798194959746611779002132005926939086651526037837621401773503780996865908243323941231187629347228031743307416642664300619329421611725860713884283994492524103654478303357265214722199638646923632772414843700033432212241309889799638025811852333533505084296471975104468078888325172224749749940405301969071647455115632161594117299145214296317602618431920249378822237221787947954760214806600880572135750635795268316751253405320993386899680802924335568289988506287538527839797491219853698834778012194528743125976495398748793683583084006168085886990749138386091423652420476499162149243746403576634278619630111658184750274616364611167390643347751528140340372093189533294427874086881653472156718240250299104811340096453158842579400644294287330082195876528182104206151729133622409645156952756397688843738883640539580120884721905946293083498070743365704909793491647860660758998284343860067441725020330826594580610035530589757145402023012695404175507105268156735847276220585722291915921640227992267309175164562047880571510087796340251497255891639591606802861178279471172225770885164860243087619765977880837027051523279967890386995892844239619967451694706956282428655890352219699289957331518157320421786651390840503123688732098527083391671231897093752210275432417764508675652458499770661317440958754098793585741688931881631856166688937476425393180110256911294310791848910924119870133227126580112889445802254551206541800831474858543492024806439777532611938472330956519827887309738244707435240334431731884824930437660775352581719776351764134129457329265560273515217411076045658863023473028287973963810290181126516584577400150153582956927061783509467240832854237070279579294145545000144613784948223750387247187325574651255273119902253734303234290970497873936272931555576965152175779954522735029902934765601958730038060579272384140772472618016871519838309196374034619214026687208631930326484106381624877769700341818329785613936109806310357363815742609498328507224261658627291967762916196503026737753283733290178753937874371682379244231284207753510156301719140387174997653652362207399264377247200797864311043089390915088739909943186049636033919008387519334560156016157771339555641782264194141705992122876772560025005745244236965248962240516153816821264551023489482251118536354394849996547305528269959142008234508323611296636575686886140127505780891943064618461682881711341425815311023928486712278113046627581913802229641263426504475818409874593400342405674305232511869791605610607945626829813714409559417507203861313620502414969863206307199340290049994767860178938925354492816490761228426558813745966099271761349417876168047259951814172428977804568243692347429580721352790215983669748663584774979284333617378343836743676744947237579525795185800032503878469541498383987343048126613032157450283126441124778204328278709873674112491459065862196958363211735338911399490667740079960796584427316110133906603808274909188416856587661449504311698963267925618795364932029918939401112922906801674085792168268650125375504763311378040802121507061676519345671498271666593563426853043026203792301217282708867943583538118851921228367945912789427203008685874102223440194150321236624098313889814064024172881504032423608053949553759730570118836200539826651064727258712317916382731630135713998692233128164911247991327222391717526317614013352650716086162180551921264258519182743458882409497668572483675037965061276902595353454539270648408691721985127653077983291232001794832833139812054944975101911634088069673391013591981656087398446778948832315706306791559516146407037171899007384999251916602234629329841108956979576587708132710653823377146421941293338755980836427247568797725542153021986449540607186546084760036014577106088090649249347033475796345952991881845448940816508298830577859154307575257700223476149778299001076556958377728503109431965495368809215187572776675144513043943863923525534351302472671124522521251731578715587062257086317207881986609805970623889455071949232439186258810993042596777834872712028023715939218539356025617778533467614274645715813097765146350639348033721458868262743857873053427805035651526493333805889837712342337075191901170707088505899872940570777787996513945918660496525722202361092246082358744162268016428356234986185242826581214065401338706545086782948369436792862136126538788355701654916437071635772017023301574523608729350313784391275268098899491395639419426463124995245190542853397108209280776945473004190762173274778019375521639393169363318626972607041623207476224957555302485668405853606332733030522630297750479701430287215607275120089972651693194515589277974061179513074069615250838688904409454428203468954716499169880651881901020771892416868068430834837749899544867513537923757128752442076066894423079016841326834202647071986605324709301979920915183555779814394454368144639116923631057290090746881443799993344653806130028488850571950148774282793870957736096296356033858282253216692691271532800868131634182197503210159152190097093879166177752819906490520715514029427419903527586662130131217393707839400358056049469274626887159573972594673914129453277787867861751548951027266029126456289869760788916828489885904247378782307950700636046257276338168558349038521350166300852157607470339951401066527730742598081110306352397511016572279817840412606520464862085329391853237031077778527613078365809257819000758423292482218756006108809538268228974254782541289925125351366498687199927730351378918908348316807753678164990609952956142043932219970827522473203163387242853696038283598441100446520420522473754823817615890412867512043462728409607092484482403999725932344509021557384660214706725166481559813213936165872869045251218806676265862617192219016492661337062910735307161116503247834676566486931296238377470428418047289570793310557539148731250962722832997002103456177124141393796135693037504479940606664821318246079756371675638665656916867081427327915673309026907701021534586364976193616767173239292250911631641467147885836557169727465449202963415496981736971602841180234927186696407113679937366483531410368601673715139924009396508791646790077181913871413310374190836181363313606566858503823517759957255076834867500964198144754893629635911493151136169008936596546541458863991544801879821611911627590453382485658942645319305095761417037603959256973079219674330991494227752501808715602860792556104297141202031152952371643887359154253255961248149676226131972206126373497161180790649487717665920958136259258504963555943800865426162558075490016028634461970656967435121525367216225207620894705466548777069910827622413157892096399108633246868746531353336867421438811280979632776052356799617052233166303216372099324638702324145672266236239203548297286189107631875537461668347473393769503883325547892408512228117857984899362543568969813462510115080812205389805103870771365801678687797773382355127428871683314619156638949149417191879000190442847768107194830898041995403940416101776054929913890482662487397902773268640284747114475865646469806691890025270662488285565967688654166708848172926325478036890407424112851748448893147143184424660345726601049749328480886732220785542339378623948319391342987857764340346430532622518339185941675411239557776315965522022336321715778213303046324122604681121447543785028703234881790167717170837532794435332257057420937415942295359086813723948238146420729391758843154676323178211245145520371918977801201342925163008609935618579058003361824752156133574338639872822085267137714245212638476740777197536098182254104418379548839319361709090002916175352657741145647902044343268861120070964502736381569246014880097071604205870564585144063030158589020288608514853656063569248840305897099886067183145704386220456862218125907726493365722087575516740246980452317837023732009598137033756257380485296725671321441705113957146194538073932639353588630697359968608090079770688889474562091069119107492296784522030846564023156487457991869206161956678885248663621861644654384813556875229843895632271484332449387531172279970577760468296279273698717968289957726037805762216598248734449009709151466503122965436182523629732299289514654004900410615615571323967567384130133855598331872848747973242930606153392322701752150072662705624674312791941648587361925997887700677627650736454913901780139074104082408362067774173452253075539995743417347181024754009856935309705442821256805151104255090121433667621233569748883371341359149243384431462664419213835683099582843059078870302849965007035739451546900720476067916885486605391292153016237451157121620805276677942262467979975607396881477632115058978330866547615823950200699907655623987196290972381114343855506651435989190997498716044086575666678757675848640884911147139411066466261502638007318117721364818922054274567296492533568043274716263264733810436453172334509874731449753630794526944034637778119161849895133220623736360289841658629088492369608808567724680399924733925801869145418663904762270665006362833836662076344923414585520631878274978152062305373563728561767872949823997223991046280227766102304747477318552459689012753697942282401490064464325885100434128592260660388582226058011962825415502152741900476217620957249114092151431115302850887547087665091760537134808893292478654734037682836882961601214185388636824358702893492040357534190124134461599710561839028390956772100294392774054626679201185846620366881359728159044948206396108513865879153641322762916605304074387587774513367092553630495671346954632983380100442800996758949738778912550271247710916859764745343321526318837112541111819220536435063163338473891289622702057999127317758769018338725669298080757348759493446845043800200571208160167189710681323166910822963242147128537082430062688633015545013269025990143675882805169306045700362940209681646248624595741709614208487783627179770087145715484382750989531766804139529437663864147544199749805882524517944299328598175710354420026825314134422562338950466512146185967150759519675025349072458483467087756830344795432759233330706888295454361708014191704006370226465271043793394348412514176301057992431477777126647439656909543666838955516045904826496537652903193229958014668875693004820182755900236340148773337469547963696381219062887080251689424728087225758339383365467768307998221735034119276147645261257290254000248805456206503697292998497473029677119867587971702715107674321883413113178846675888067272752190437397877162012577802125967159642539279388660655053757573936286744901219035599827144738950574702891966900102383291797062758021850508438628816368370284974612170576410874954415902925051343808382776764782576617214111097503664470538793941577519781039843360458020997294543012230479328665469804370254866742176445014504949712563196169720302077623868201654684518394428597424026011257403614254935368334336279575197611154127667305488021004993875686078803084622902417945537246626483834340735042415833996330344500142177319612951721361272787467149434221727107632437527941970551663248250438356313492135667996773252208337484221832714513708097387411483421867939052485121947810360322929024098550200319651158788720810204716266674202953551915620174393084910044328522465492031226903091892992723432455404172837053557358575854457118709308544946993431817974291745814286437139351952411016902894388351668949979732614783794994528343432052658648744774893059214110481572542003198984191817393075218044410462363795498744962616367841312384190979298600824134180515295503977374576811831038317543204264145038127691214460878082424204450617344245649246398962316020171509418711652781326474846783680382583494438938224900720137393559683277763972901489271990824349311911376493825408471662630271617175185963075153576745922650897628618536680163025257542121181068537060593385972345955214776860213333787535630464748371061847365001418200369185361767016735929807247372340757490697144532660069266384108573193914305796365847824324819528745980629719836696227219756074518995880450595127993367454569914923776264047006258903585098229307621944390739970493345691753615000753690618240593760867388257544911268906529996859384973300391640097785183010715714657847349294397515084168742020288495941872519270770494467454844336487907103651787783572434159084616851988524364978590377921309453678386175013988824293922583505329289980947143286234883188125107217435061275803081915421704276123985602558272075508347544172945526531194908895949030780576719826609118307207782736968308443753970717239135131177066702412739166448965864628104024585761244561253701392344940185818124152510290463913149487070070438946295003034837095142740980868593761726934396132928118884573071641343255967989742231892808224025969732381472557320889009769020021485620358896839576965330056956368237391111585838328032960833127733981106372843698289320706990436269213918787902337541027674488734551120143941736398888716811014840446475129261237388590880106964337498123682118282082109065856944169740388862049352138756406605510333836495517749810551393053186776012684586120631272944347364093295180820644912397618280902742123344433437323655315503994950870660364189578788849256670959956430752890297773476158975939496061197341536149285407961804668495686663989716852626236898113545302532462710780385095051486007249084328780300914434157688418536715577302382116448798978845689750557141632672943967615887731009138903564156092166374225956141329291516658607880475053359423558487556616423301358845328205458250963100305693598518479430843703728732686457309265527206094751995267304929490599274644406774415907776474277657379390703308063943614813124074367313433099085200413389760693699393572575970844620332729917312139495281112278837703648697919260636564753637082110901382211127404297711467786026206265818813131476654889092036317542428763105021826117634170311331962373494851715650952087710092490615751513996312851289152502999779956944212791786683468223227714194298475765813473782664510844439215731770772863930223742683864344220977748669663409027681653655606592498068655438821148917922391924496449084715710319826960678226697938032616795130335932356727968970551078002118796219430332704544359427032387363093191675921808193753438390798860756097869267193880326763227907975159604762608109817440862127173181003115217319031739759696068641310760444819147372751328149558342328872602055271311472394611567006942966558030749903536692926559471670261091385104533682356345988484658344521024673965278230066979312665582777475430688646222711647941904541534821405051374311098846645649173216251642088750731540929644914004886556547581743558490530777558802383254111780344884759634498903420922338236349849527021666609734828024948502488645692823328781315314635013438476525337712245766576571001597331508045229510057918452971031523735051910380626308395430613451522690722363724003148859975745584443201413142570240072973154925237302099614338656226828870790482718746484604987038614793587181483660420212450973849265881149490933300712525133684988933019768711257241149871196514684340517407682524883780230191583672441337589040286684170001248557251911957499119790387233907621314350711740884513183061533313357368180106346947422580072958066660126958528146672175686566642012293729355920755657431711033360515838652569500519833339843571295647434986919711887439579052011590964547540616332613239038293016995307436915248028080617520659695083165231884267529164613253527785236839740368409187522148905403642327562927620003044165267196363888859232330047931415052784456098357471307507045966282146290497711844156417267437462357496646603618873285063776357690115860054803954094836044047738509317179047965431018824646206580860924760700926189471415744451546753097550257454470249158699612985958522011295091433034202615204424756635164717056976888317265111238123407038824314628787217177964518847794570426939734509500087543002125625985078241954054797845338800948634718664979873172681575986730913525053282042334714707196643380775810856250663441794200244919384750411273828080617618461844692122890121272653205541669250227033872189743639507396041361790043625957385925254706616160006557450502560796144183751114144084533970248561522702130354925346046254059256110501260774233179722199795426712824338792164005655597835255219530054412022804290511090155491422218801981567388273937474943089766389997256771880203459060715681204510261960927301624800493088081174125994905495825068683674589754835661019015078405992750226987456772764120934763000100459582110952765461424314432670439883055149066738289954401355497115771892144636095839706201152849171101235782770447086645486417374338141437167077200290325214999229424537853976093304280222905425586923237046726463361668093248751759208534437578961795873806352139992408073759191882395629823785589683450832831841289918055625643634324034012036872014815339066064227090159224049521406341035433281395014710945229005109900042610450360119786719137636478557599788277567610601684919643186805044714213053193410172769266770320205282204765849177503343646883285586809505187168239253394500495511963931655377635028923504384991237861576245983737760365991411672424560980542067983734977096352465992713418611920856424148207035524080140412793502429452909596617878600844388509780646227511091716652591303456235400802356304215848289281927584495973709961755349627056653154707509942621694547595147007184759964617036478962006130140515118377101942330333557544194716440886618684053193352267788284664887840127312042147075327722221611807894325120778261712893543075572317700545118970050851383642097268435700060126771277553537480930571922261498359973100690243616625101913149148978479945691653788407493401824400041896749411231356031163021433888008893604035886741672085753326405260507284242321797900009956983739354636482703079503571392521914177611138352819491352059097244337357069944486142731174202652931448544883031323430987421938078281771894843713006752954859434383330773900297421523571136470630181691458112074271869537592679197522639853266678823513998787614846740850208527382075619584391567026373335610282585002383240410995461559029774200277202028128684199625838270304341225135092308765581044983220865283528311158598584888222241763403833782578507376597772619769988312202781334952412866115423309601689885379456023896693600582386722859823282736220145268756451823740025216502213550106046143088214203243469377074669491728451617372247844078779319698179546156649657631862169041914572884231290202353752650581406918060942445511657802414009241368306140133862914156196083777343755278932427147747322523650361959993642791962434944321981677859850624682267893070428169533387220930845653103385746794545011245583108288080833741795205154334354594929031192527573350655225067351412828934464059254113916923937565567234004912872927583155704948570205538429212637151031772180082022261624873123086883760382762819323202584933762168139733848363679833385893725263861791084338335692476225165076713349875814341452076166158325669766304142821659750465620140995670982632108641219664752147172136779380620068467243103788647512146321433037813468740193650325984107617871200739657364783986920455712667565437909500952310183577514336807336162785344945675667953619323826653567254464707057472999926994601000307605319420570222102609536576493509289141131713600557443418216441494312333121995279376658848577073382994320942642230955863961882574158815302552748959092461740395810047675435975079880434363154967716156263981680389809023212833274883738650892956307539565096088020529028026584035817347733125664542083678081985337339465617634795198946157303252949205250157306511601670605088040739846085874729222723760825700776527581319808903725129987519159066803334177442099616578118258717501489136898077965028026843046165652831744753378760614844080216382362962220540787325353881275872061794805687718306284690215021000517491918378479853330675320248222786991993838227616957761138751453789961581482726837714471720863013078286905775039212806106467686086839770604059243053768211778517472598477455936129978696014551825043135597180513067794036669545004219413264178013788433319559131421993288754282093382397603847964066412634867243080785381353559195936310875357529559737362168079543191863525399041018033473082540442910946432670843951513000216276467809705844034300313474535441833523082511317688022200582153702706534918503499880142922363960409483109835921350775052391609543614205966108774867227370461283506879035630119859678133634098505599432623572243689634527702497882433611810202298373950679271455873835794669516252072722413058574190835694092223237290795604978490948703197568663227371127126615257957764541247150417132251655926768955435383469741392190555810615224990201167082287985352818875453143097219623792191411277607460654549318691690572344722961169191458662154811257535603434658217283587018860008056871540695300171508050558304959585909498360843481858721558679106900132196127308105043619438892606122783884351915651917349883991287470292405730371809534847430040156954725799269010859000215825872473360675833789790683283310337673238161701586510141349594934099160435672150646282050364105724595629104021403538108316916659657853040050267320352854847537802836893212987504530760894102045488818924076621695844910338110293981973965004648666269542904235644199670271154066552968879850577732422991388785019924391218287524018776797665681219224298113901522709382632710147765826185129205133436225108619518430884915781706397303845888617532756502928898429151797547247879031826388176969252577728902772348590847824085542215526786359079730602647259368084617138829717149141875936982825213007931509118544048987281263258669405914656756344920378487235433333535076658110262980552738579933670470689640746118095986858927095704527590804071156804374661315059166519720365161513048794282928726380804344219013804795566303657119494678602261274556182785621631462637632280340186542655893965863156002766034257150551794877396498024520419127720596063547742677685111366501225042854276699474825524051245879787758649040996714654461957791428635925645487194147006464587663247798332258602799056974214494874082347539675009886650501135848782286256944359873245867937482368566587741123552011166677332475494044443355933067402756227268147400867457832297831384738104293560697935711333767803531035861992056461482509704837912490060588889472221624281262842227318697610821740590294198370303867352562228748892563953235487973962783968945058062163587202715507043813169232040361949043475105649201529658242893184796027534751676116008302041878175032075445282939624224937644603672506414642958679448850247154927889666895839949860264613020655219859902480313513290598844173342714889464075403113542439971089506839539913898083443760513906214681123615409391313542862973133936179322010987097214896453310890514281430755100032021804841729871322360229372396766820191750134000095834345707663316983042735702910738833002255503127915219143283850979632525315582683402247347331263970841362056266488668584516973171715606253137305305276128328699692686793673954718730062114803954617536540974169488263252145214833359720189345028018388266360252765989083999005709119110517373412717523089297850465211258364862611443019835251161530337984553823784260518251541106100972742559279905978903936202296636499319382353757649806867954453356555290756986533728868581842736033758260766379293206161964761603147513747083572018644524260405106091316688762085814739342022484885532547171765906211142675348769639272329836262878652709720575361682726075866420817875720790757901163082016241459814828540896718439791947613907722533111756288447644568271428644405558794463734870347223134321454923732576992461831716967028819607575300002564351703767946466072131851251760742852892183163806057413946718960276475331148109999144509933673780668436858203748541977321341299279532677913678603080224956604520610209862377431842580513137383579102040321952210836561165263939270043011627761666051433714309860608807382262519048623436954311388096727414430128683997372578047183093168170954482730306396738858688780574684571405165221291818494439527228662542895685018905259068240897759918246844041204201875805302695267106172983849174713257723072178528608406801028968695626913700476890734035082644995869489515984912822993471349801647636845858423034477620928507416115722533687393970216871125542598479807307903811170563508552149481503598705556530024765635549201760960524765426984491619663102044215798575846040065522531147147927930571159771198198670568401111386032399728166311598767039713416747363164837879534481377917948011468415110655830608658619664969087549896765502390151783091287617804773055049602074115793573638231144451116753486947843062953551900617777605670652766150676488325032340578465547146129335477862236234939952136948995449235187989639998395118848902037229648028843624044026932071483692096195818381414733977396413928050764845326853494831906868670051951932515030459513493258064955589437051714446003618860572015096242105025074199539241719138039359656404981099099801193347140331339376282753882807581607846160667327056480266537839365737061530177894233664979460882168558506603763273387640457929583168345473614883615722272288253638626964395722129249106302135073540829388412016865915134981231517981325752647999831693491439615426197603395507383331644638004985757075211560932439215891158968105299176300561289737177273651490387516709942057845115137166705451935459668721552703692806990002016445900524402637940453530361971027894261045569108638130523789656850338161609681270021873409752796595319490457330091625559382268659659361118004602533032317748985926342884334560774499322174774357209515073994863410101883308979210767554903038484152598905261068013030908686098384877192402220090370799822168502364391019371309616614362113606909875176146222848060927346867522987108657984880981559849319001078663452653147339062867329910276484791017994735245880949327416625805052085979943186257306044532875310032166216731396099167760968766891547837252699693054025013139129514287594404813707196483335263878982511285614344013176095536296239378273629512300483792727026197391779752863586803589152141424967172554628984498528037063319886456483510710129551668052294314833545975628390491156102456343173040330848679374513629884953234260519371732489656455535868976346920276068670342183117579260710634739521473405078676603023882111024292472747111766946415318352367721378888225531692468177880735322061708369646870250173421444707187716758750171797675352085051961312123691092499870206714302652209174100562546515799331177604801103102033220629963709287428598333017125149874289629572533159983737022953639904816970831073068862769901056180319446842485642633497769190792162803094175560959397683716069884180591894725515252646731404139749873943311944140124575775666745493071698712278095019679934213224544590289058978527978631957177082095282879680595684070639980830470077453953069180206661696010228654925402969676342865147240117505027866418640786738731386212256690440993879956485786440960676705756040728879953688683990990587093287850755812710132356401567809402672508524783232921834807758010188373396744288741371452423357974781864071822303833866888737142211823880137152881793751209796952689090316652566827409721030134024395080354369122453527672640163530927586798251608499149989674058540726863323986843481688837257536355155326199053138420832238685122934402272489807404690275558034174419267212934924662407745971668938311674895308887783888843680984140495972608918762879260507352559749972788248213999870293382964081551953450375628811534595665287286080455781602782107030742016185725898757120630512212045110249658165616926349188254221067109038463089091167684196692713743658163162268979883825821278084763634851347881859604248949987231015827511747679298228757807633067242766196267537340361638902577419837464203295508201779073277143515676114754940342121779792110284957917539402048908757226647423008931938830639218768728432378355869775001345758761294835933901501844134070848590316637800866695624019095656162996756384108650231802513716014099043286400578775638403679748759960902269088643073591829609207091303797757840593447902518418685882506948118837002764785748123001514345492212037727095314080007476659699745223071561165882710433359756561043390046487261979279095385491483280931190445135298346783957705440220395198053918432814827657611193281186404921408104995700593756698277912474925135098146443568717289752624834404232873812227067506242078967025360500435683190007324475717113358130473077205927688351521290103783441881985171435295539483175959421265567954914427911097420644903987257526321212128828014801418522581726568025251146404906800721816735951407535078764188022886365824921301735399232922721018680961218304217717181121508106693318531538592360495006523395102151062889541423270855698436719705924147920044998162584949053260575428633773170059565473353904680219229632976395199899970853863242017092764925503801482687821141070923883511210669877625098926429360200812637866701889031264205269070724736471969049700497871439654639288790930589123363106057926299901937501395327645816987152088196174694603845803239952394955885118989662979501869066436622806869846398211497666366430323841503217547170040618375964595545455902973693711468677840470134076361925770424320935768670753870851017571276637955178321021082386145089772481719471205073202904387433706604321674838114589167573777696963972942467105361715640417340259589235760224950246574684218797909563328796142514056068358972561192983634313465741926229134331192607873708961817957973155042541845955087969712389577121659692013112246917402929523725850059182225235116290530331902848084537787375009840896152830733719522914095433582226759994475826311865464023671597219527384516428345955705077344067429001325400741206279005414845327439350542484394093014418737124572186845675066345723181826347258496270810691060424738946546609433941537540252519487852565616121905954303390912551788960287531399528385759700145563884474477818777260342351654320073362537361504640862618884491757536099625826644504352447085062583814755561218932488132103435343839179918531881898777722822604202274101010821307446212971521071164475669301428233266000160150492203932983441953302264599875078228398930296797058020764268825594759648032495814664667591506265315575739876456462347286189373823453894532891053521287802171673895628923000356366869385469964114282289220955904249179270768526889172051094854816034929231440516937106412333951220781120032303162060573914280015203431777075229055855602692370133451887597432931501938067835252033739354256118228261291594997702970122787562097138885967699602006836934430753090355877547575143582657801931371936115429300125770956341304672235762108836392146212267932278342622758508698237026699920555534914712471569992341950639660318599169360724891917446631796594351523153167225431641204784588521977378071178808959291125532976784527445178639138120416770775489661144566566379841096205538221911216294483749488505081325484391924313985612576830025110879020907676157786111793825671216196271784492324538996675162233009452829135956786813575808192718108993922514910178124725504249148487505403157641214638490880426068057647322969525027157658242577629326367278940943628149802041390787279886414585517249599924936498643321462383894370018483251698690033382375409258957249240575549295396897135247192275129323065942729444251159123780621881671687789676869715283597565591238682436323185812756220468274592906012852182770635361022006517980283114919063421110392811679622571644826353372022283714936774342943713245931420289221648296401746100304624343348761937377027240857671841174159448754765036209286081280094412501783951013884098428137211071063964537704907116340120834887470050514122484702417115950796821414595598685773579353702356329786575368426301805101387830918136212132906084979063221623758524737894406052237723305518973488699316762009039047405916104640211721862895422407371995840858022963467184229341895211521256268740182349840849068907000410817366435329527431940460652159651764567742503464800670807144478858959121171708110397212914976023261143300251933024248740158212063803764026341010854914129943831608889681123490791895407962430817206838069164518500353847639520608123464793418599447656193291893818939359186751706859577191803914228410144306236520378026900257229162319656429564073336955604483168366404676573228472983665339844901748456509032470151227759852911458913944959041443355837938155259286428773859195541357193552577292859175805737479798134007222080832264146694487362841716414181377669431298895578629385744663566779016968397048836528920492240313716343399503214847019393488074568866213003886167976480743214190833432472568092460232544480851474226157963792742420633739836170762371540022705069132626825898436464364579687759983102410680745973443186485860836303670957630505351133731059110297752253622385315948127581169350013036493932063233224996630209965824532103747421590879385020740460710044369280454829908877560795564086686044518195630568390296385794940831689649604889367915749263537775724639788780850884161736489465510067829951321115863137764537548031849516509416890631216646785587001555306031928191306605510624688844574120508908038157851724851024049480901238629558660971588055461201919642741590620610941345568192524447121070476351428369690440654953963204777578313243450532474465070163712633562062496737587240241671755747160594774646666187931859177897286548040698098021109899665818012934369014240319068582393728822787549356802397207841170867351546653229753449465942983394178176730342817755103798147082473954842213872453943162397414865318964559463950872067091290511102194449460074574468126908035101605714078931581541548544913841925733013833151149765017751194890138718289051133195796914917375112920938935728675555809523496862924422134977475111606514205985596585217137918567491917068833501183872102095549413678380596006284396843230193980280992427948717889335979909382634209693528169956845238988904243812299960310721575587188204847174687565161328193599237666608242664032211987914364908266265666066298681127298084756099138249184967774172461071301509816171215409359192713434882820829192677981751843628374665390637560845069982627136202751706877657555108131387904242374075218450512848310400212534388959110608386314213489511203521262244138499274048202023041841130435055198525806880991345258955257665451911182807921988329394546132447270616551684631551469046589904451431112449122610584316452005566683744088136944870693037085878168391196040745164336239181944821035236333527844884825765990216856558322014186949296352506338948555716262546363885439332634018893401235751527582642059324033689374506210904126113158659272458451184515651386468205681238127823993203383954509594704697973664333710706112761088708841183067494899451077270086663119971429893141345508620638741380755500125112227979978946086145046334325770707755914706906331896564816752252389924490461372908248749510782936464567801364716015720907789992483785927689070367876790901598622366305298910109123029939164756857329104972506671337080706069088470379196568797003214228029161670482678997768925845469274995588559648096777127604394433276758289858598113217800486615659504599803728853610393685918035950284589734528282622505668906436260276155505099182566655727347223868440564332104791591515922144241129988052967934071753467277152247037361431036797802776061413411090107194809106254657905019316581054496741125040936180210912632066266613119614936360689440048642346163503537123442502593934356660293679020948045644316371497443296953422682534169167646148357611126751414414871303012000332151246530354161841985135309255086406341101151631718928503689110185810172091452734269217161890004522553824200874492271824455678795133212328553264409298551860397329462973457830794737769786487232900799284309743107758386130464893803578645352311735109449138247084229593520900866588376191947484701771623881243326372097869643972127700412825617685497768635207111250849721334078002927383357423316765857319351899959135330305936487986038184851194810269411479084564969467342791664009110060627995840400033137739688109712085328837704384425042727379869423328004113580476876263346466962346681761148599439241480202086026798850352733282117957847962925464270822545051966292942829441880444113063622953422502853240311002881341811358833059965997480586992621713349411387144382364147853650547627197153660523679467704748685032146366523028153538693169033608196897029068660747691149451913494145920136687137524813441242060067422808338407223936849290094287504812936263646325180044264095876794914504448317376198960854447576714232677856131711135109707107031914838818994314728028396622867493792986324373853489275079249883211804194892144446403260858680978357790891487182520623809927058202756263430946948820011901154448846471665782823815470797652477683367825861790998306616801171947997529491191384790471584580382303115295743883497788171309789318405325485929032799471275284971782500674797080463221701589401881922503424618604371456999700618965778136292251369282180993771103279469396892850603339546130194668001473109277625415045668646602801506467195741812339453412667205118285117642034067159803040499938510780411509187838138865632281683812722808229113531036471761206658902045917210100190726033282524169213047452843567958902336022424832338705882848570766344067818147577174701447466938227188392128518668835202841203464562093439298379122895579325827354889120670929686082522121760440147697560828650044283526927771558098947964446712330224653936887677071011651114941288573188592194340520761283448718798683965466069716416319087119031984076393893869546768638860643534723137710500051573429380377900773713694538595778225445418283767518480559170903894853087122322820126143921494420788591792180017098576655078748224325908581559063375493321365440105772184919791167268745114011440688699320331545100758299278185090834436606305871610589860012779455524318731842376412169644393651851193375328595167522174753235396562521257396539271935866353122554074673356975230405097962280820779262132140918631492278047567561672010605437966844652670118021194713970159939231546321318459902233471487624798992196130900948401602708161797088449415733810424351780246769850929859184340725539756664568782331624593081471837953974817690172345529880351567107135741824087373832716776179194642779059233966722534039533666927018155961459115808198445576162701440048512305342638566875672377691607310757335028673470438235474316905219111091233900265310146019391457266470815697129646509077550165952243603881654611607206168555168560660608356318942816351283489764520474536064161944427657271846898181587510236060963127447225197174044729724242343390826740523619584082181975532826452971172127625541003894388922509800612819853238187840092273571296189752356055749793913893780038687638019874154368097179735585308189160764325636072173129110250179585595595667532094632855736178989564400937539600545690994731191674514296860083048730379653644351315172963674952458060644580700822212868259464489409361539019986258573331481307411208509329013551896273949938820249999808580906406305803791357644573052505166022644791692527279794864874785528401873601072652536655692550874964054416440246277527054527339192929363004651399202232074179757579863902565219231850186276812872603775545106295818556463536182425440433706229380982741169687272913557512763914436539560012457835572056476291133693672875549225629801521519110503675349762114945571510960455676509816584443849640606790909119222846029587562787621405651059435677693552001827731672345533647195286877653315840919077769551010883160935836890058334051635870797765748265205216796521811263411514579887365223361714091817487134185080533835554528334961305467285265929790846466915856658882842715871241056967910503950110173379467910124074593714021868510226209082462185578470686152521033941260556874109484256514857016168855828881626760748669008402310541146572381152147134447190557358460829706621814743481754564968359748910426627491030158336183560565828486610104443636229796784970093702659426748540770693210804030854926001590875200052597883291839053421657132982085857327143738406697107869768787601847641600947791963248308337350897093449275125094428613555439630777707984116440054646862676079479410357499729129117341160390114729232812355586285926406889265986657091259487256575224633548529508192575295555077202836514934502966370709021332730837915370357890616792966637576216348961422691420971081690117054956803229627701902690553766114804357386573411396118654865557142080480065662922230532076580240078304787421048137889231555891620790331815071998038027224067765969944760806265118087964720934111964269353538536778096785191776506637594702510319943120500967681805364479588864795012863024538003742768751925756023693939765513642239335444744343836401846030511833483830608784751292833786634520539657666951847052656166748924051310826791961720332981038183609411234515370690887009237162067675723808119280376800895795182742555645862381569419931811273158888228562569983667206284214660596501948009836833005466974365852546192704100414481262758250524535959569545822184868235080891925499027313105657305296822893135591461185828284309551991088435188870155353974594322393011181815737276376752516776634548861610821671049442774177339399926920221364778881795273874233194972079986829708856646406555577766087968357687198836095248576351562333679075206914029307370830898553703710756487907991244527915523061170200224843377200362738922084873164953430737781922380734908498815182306175789976385172474530098063763133324879040895074687391471925790264525237744615219771234460730660553649306823450772265241338025191172749218051730480233831678111029830261434225079916908171579786022072035576564900458820823456481908267328967752674943509280425504376970532386197984175436643168598633656637513470921654174307529869897464176116421858879225544378557005456039679085866567991830716791725630516764201688607747083659648495486656284398248305230938905171270680923820595793778683916480206361208848592830116180245889469870517065545534135803408869904249154983640003169740494434437031710244315360298847457785050548876165971527343388473419017967084257929169976398994941615884422245818114137408162579943156794978042747444996824751039862281007202847294162458049123170580562152064767171501569346574871279398067351519329528227860779224215393066213810856466616958605260201741213001471651488028745230271563480688743825550656880205141992263907742667455363660719337176926083013937500098331738371722962711716440172514960314169412196052060896355045459527094505791784804283440589883648586803090809146436195161529191944517180584913668772864385287370077003765093864047105592804838190104186923102827403124613867139690060807685350754838845885923756236377427483028476595806010646893792939882042310025853303858060310197663343907722632279998630057558106251554223516069153299048509116610801085085396661451926952875681583088140653281403541470446320553923928409471853611399221430705471491204069431179541961776559877229084697117160631952130271804423011523892391939086474130242755618871148903380265946308141721677378942544999158229761768592875805681511458030037689876083993910201669856826690074158238648387960698615571138897306171395193736280559738297611689703945384227762324439473618370669133309641401240349065154287274690782833576594875230734855221092166823803402828685794143084022843136304997103340998919747242903420227476833047476548587420527557102433043600406520244443372270143951978108716268851436910542753323602843235334386592308714202019556840774897535256499126212794775702986044343388685309143583232536788572126107868309330760695661606652564969225161622700433583085184281641275405686767374213210132143129948387103682139276056705676586781912875928032906546781290514141710594860416388235738919905889960210099420091394075912447349146613538043256762387336017517572608076399783174751222710484826100321194093516066152904626622215028332847313206374971088731827502487947309527478097051410922247552940528310886926007752102657869240094425493784024914695397648674450444731793030528917807694954867485112873627202055189060558825818198663717608318574328515278853797299571015600684109706643474235701005473040828241566908708754118472524877062611515939660124780504603915691771615996522983147469828251175587588307067434181029575258270616391826812391998056646824353019767440962510163260498703916951377641436647977334731045020205566299573362569212230364435318591596869954711149630836459059866218627072668161368593154043720938557618216274945861819011444404601523303666658074784766106281013648443748839520726235422924020525915413487967072896040306137120503356147132166166538964701138016732129902085034592653613631086433088154652004340374648423319253466930950696556395959863328834192498219247867125323013302832752416869985192398388200381221600952021485218923810760560372723991396715900937857992097014491117163259951433105601437205230593067097650838703209821350721934038351496851232326250833735288711151823995256817348264714741740620711215126886369227946231580054791301753734915540945518151419606287800718542432040555811588693013446070564423509865593274147884505691981572849060347771638376022894701288870142847135940715009987852698474478295726378109123377878704400876625542629218298014400108992003402838084328735659937239057756778366236687614520370516803022620604213569565681499640531263957279413828530135958234270956112003570165563812110146282791549753197061167062170665436778985571797779594209466700714263014761212594354266532154749165899683838868795151663866692647274062222605800913873304736125577282621720538077387723742765222681213103948562689259694434099016625245824468787759210347145978398996905042282967369554986487724172447007362013797230205372446980045763909648362199604183140926259501708467110937002070574096174405803466078438173895932936201482312731928521870221646036458267014504766351129128724473019866819757686092927567246276401966526706407155950000555500297402364142946948090315797981333261360864843984575453715443253877343980334074574939051640897900654170120458631117062793287795304372569660611998673489147517237012514971556651090476516017803963353374825429419941862623699668888963090289683033842039548959480254170226663091604794528719761057155588847358739854418855813687391122539287078879834582415469302920471590315167834376690986923610501489756576304965217020170735506848093316757388138587486680233430167504471890111836178163276512670906875184496915234728741770945336940471879838483556545066628050262774178864169330084235327957083011364235392879663355674814518560661763855293347876020217406951905680760950653742765754877398139514008923670878222115912344182218664840142218964432430757585496310671688848141683971782280502627939009180493660196165922433759345849050737186039618494891716501813371760772139815925078988604929833370186092119553426044633811881361245657379112965872018625410878148633134019856154179240599972184041647936138586323784935107873273604515473928020552357889574373371361913088916113351541707277716452279293638030859275624598800808775453783188646688238569696096440689540185416218749066802425038470036521779333598481041576866206199651864810691092697257074354950973012303024647849361717859566869640115001730733651368850356228749260994177147611772103193353993614411760943824175586240355206056841261637687777811495720045547771364029151208645862650263558984442866542486682528538393651721796456048363186063640593801497144468416939064640909397887371027805103032607922809217812733506883251960886718501592603808748749755142133824974518341103365713315758747276217453047691148938037829781290791196475542366709788507794716571653199493547385902699826381898144134655535819378772443164412993777990292407649918198174531690236243624549868978855618245894999923951129930092613499247018777434438224171891772898155031065032891954648762769595558207098157875079913405156674436001860928227918680655083070684263391399320924635118966816879642778471139457445307059897667785295711500911072644568803231988865461471254991166264053190500324554605077869373547871406535902097521026089130410564749013696306910962428670999349459328061551659256654113551441740481490991955219519385449934615642124252571209557685632660602425117184465771599429853712643784046331861926128093333125660628062909832995761594926615996167337189866429119117796708547984036746999775731480213919078001937811396273099330760780869146179258672032100104905553642758795579829654713828454781663430923627666599133624346668439461160519466285081815335502542063923761098459325502855152931782933728107904502597534423404232501993082503018408510524419458715323968249406033144052129684673161470149462212603349134193762814438552346018663292363453845966612333458753321703783575496666570245677365080490225027329860039380252836839307456979459452898700142676910779593224090100236079836592007177388960039449044743363141219693352123260924743191202089841036442249316138229646789769423950403371158468155869653619348803688398444390843468478434740827074149958947775113620006019979387816445862173237076074068466732369194855321873381395587021879784911806831764873910762158400309504137935945041421766161586301996122053361430122755321025748560849435109038279184140342070300262813938984065666395916106654595812041875437245086634275032222708954702009689227580113020052672348695829037890481539259212707445689299972477601053627743829347278366785515058442660115008664216213638953312245437017159862158742528728516527651879327401226188472267751571581745181666536158621610636046300771946614814500721552041660185596713884879737315426776546343035591958512070542811517810584242651467016404579501425902463943384607773577294667652929637446055870285083370934259026654378483106961916401543066660590319758800960918664386532008406992228780232671215389547642779081389237530723986803667583312013035556127336413173453823851929278178840573432305584274462466912639721049458776549329035294964855267570070663954077220393789933066596309191411180787772784829256864008354261338044600539367047523302756016395570400696409635255375919693652280307964268877555963441154132830185378030465012816612571892662646242710331347749605638269825698424232482271208332958730568245625356198962229682591998008142449727720098035443778103365502166183132629392885417917697924092270094307378357856538814229203152482994739161088985425970643900610494900002609811266708083884781487602530905342726956757567912892004230221798993113213498798203276759090599126287881348665603494409191451554636693593793927839367854444200394999638510885704477258360116483315120116092366010335320822551249467618717330731158828436126901299339260199832727613778013178700859140570685855079046616928629933394037436575035984025627248493108053206865502403919645092130761191882288983901358645016993084608043146902730523450324750620273290895802543712174564276601009487907307074806650229620975101665746642995372740939408541989735373642813315936341870914900251337977508081234054230249597831579294240116659210831522305853555326236172443886538974853730884095941542441077445036490025822940430047755012829999523526748353978092767181510160209407569752978175971162331958192716217284275181232064064953249956440501128513800425127704086873957810955327441152873812737837109934244965229517050825330979455954001162100254289397765736927682096450161413237578635477396285972432367608369931937861846357688450240354651789888465293957570178955776229561672116687228845889231517462450698484678850490505098411456465608235531447257932573560353006621713860243068317682676187608192844336657380312194658754163565231731796074949545977014218225670129125408895169511587719561225702672795977226807863536100872303712076073201719248899536273200296821005898825965654485374153708472318297827027774260603018236236451159042361263064746085365085095946124002188376297018459758316883571066065553067110847168414370211102678732842575961363183450976028444677760493480237315690031665895440099447597708488788563396748813328044251549438690392100851202494892586571586731711533684183187047991102849574187214779783811750203739222604936846030205636191522711943127247768713484776599782619061121284323971938139414247429395936054538496567617032967587570473582145407540219345750976435200996472084002138372641070598269957903199509927007253438099515046830811195724738211675299023657137049692120206438994419781917479315252131978551812188973883341873775047497321962818514895807479178871974866314095005050345668423857540227678027454403864152618585127306681337922794421755216349368446444154127847486754690280956882860956683334931891382200533356042934947073814405156582418841954973518207954471291077705494770838053086192092233241695137801038882705852012950590777516811182997895800222973698576800823085623521586518623991171617289894259927329253236450369181838067480794667805809480199289735580419895799785506677484432943165450970228327074985906489070973480918992158252262135276869366790006508178588384927261143438042108113306815403077794596760598407952849752157477456382672006786726135570452681226176840869980722287440914647332981510319450444178904231381369764065080969347719456167460882693443766044522527942471815692993999539819412414243879234995852079021013087855550418545862562832153715624019600924472089400341542290433267171214409186648067608337822596539985151559127059527904554128343369475983892051430672176626560431892128239442410752336785147297789621195704288347196103993850920504333709880136461495436155824570845480997072708202153961141536535780962142386061920251637926483198779364444626005785789291278368645705044093451470386172772104670114614557172427223238846319997850913942377878448391182386631252901220921903648017917267453382154161730708877880681893054972009957767327151243296558094892879830681457122629185461745745699134372249837254165924439867810766268462881382496625939675637892263720253508233550675295937394093089905737322325901436785551509257631838203954510109172445707190426886150669130459929068224492816467920001492750993869372908555352508624891324034490280653230329398940591450226592839837203686238165115169499247216565586400406797301608186429455431042811388740945936049506493235816910444139531406010863674749643840071793355195417549831675943382312406572758529813516407318844640223569527648183356589913473705645791404395913593543895784607730642212273886911893306815046571904568755923715537980360261464264032371540559750458987547400322554282511066142881509163693441943384314404356127063949658675319835569526995023583476686730779665768483675743696420939624818096000920218754091660532166980566240160243753978507654022766338701253619561872813786953629113587600030004982378847264069508371002601587562097248834956491959383639311028964508887413733019840151369097476366800705169272398040689139850640649154991412642273156070930629372245358848952535250333848693147813077394118625587856297402829533937785357197660928684365173132825727653637719421556867295956057578033078771717759075606989485962660143229415384745542841578214871478580219594141104710848364853834573550866321029571954489673773759069109129306254993472001569876961039156395939482004152894408846031601174737693694633398216373608282057272189558617019386643059789451102559031307835410640473460686345446314872605985914103922037822845715183348804425967327223452757516712438720177671595323396785290463439673340779582591203385122370409931149047960246954814413191534730506113230086631593051551893695064167797179958286538540012832511001462867160107116546760409747868111549224982332546592734023719714200188578279809530465385876211847654377537680982091490076287812830580386062251643923219005898840207739026436771884847859617877594302550853899785509669346646336363771225734651576472044678630245454293489907381210427341771732577038948808621501424374766631448227203288660756982350030957293878463669630541161020983090172677619006869423199059841647638888911899990228630139788013955100246009096590653948823291936008252531497670861117415089813957660323897654971837376087846345893019058184357482467219057797770503955986697560696453169365572047249004907021947046114526204714652765715348839855788609062745897758434957209566103779711383050688202893494278155762555540447516250311835746970088213064632629578259588010349081601892552130251627095398903727025782619254980891188498307275773397752198749694541557423650694847689246981929739866365082041143788798207788397336734977287662074482873747196847349504008449028962928033907152593282414035397999631317200428260305474211618991331607037406703759799190797025772936402229331654294514509873419031186076639709517472291083575662102614945267539502832672677050582389441491232083671343701953611494168548289338102645469257848146228430359779424398203167892897203283132503382967806662886844907593287039563700078801196726812618745177019153834910879728708333764427570117277075023880168500508733589849155954674094552775537841600527125213677303351742660279502982651560917347006255444426144196640359182824239329287654963201479445669261824748462502905859511635459177518518965702189638484783959501699541881304691098540370352522571040802584999403513919086054956788597271776921414103676671252420564240336229851489625775933253312315628032864482473465356298658308632053830714628577017731696009268505267076468833782878221239254867559043355040609012732087648109442073717931911819700810584474244283448011811940589417005672805441382928779240235101574236725402728420034359580424872542293623880217708467424549848355450016054989831864540717542336847454249372399021494329314676859720737357837041409281384435619747547766425881697385568691921860135705993641010426764770080367131178062049429862657290802843276725777886808054846505022323605154086564678245367775095745549187920469046175075513079343857783891831245779078882875288108882846481272894323386185130586541736143574636008464933905131885803303654345713906134519797674663815380441999158366069763464773798056366154187709145272450197235735492945173841631115701817702884303417496624093304611224245614716881219255404759089422147436567428457359229280451504087766330113498698897430337327110513206972185270871580350977969682646832563340486884619291144303088768838439053149309827262004736267816633474443392604881829939108530663160419555469898110652787978408464054508498805392026345239883772903971826660003987921610913033302124120600198037251003463096104863812186673725049342871007448664359437187251416246518287814759861984123819735706042589871962425448514086097670621416161273452914860369363869973587101204547954059637960394888245678394593988976558445839323602350067332627896846625510506610648623554851382016590469287860165946651576766733797345056692803038129047550968525482932581549389088937212374247835960500888982747273945237300140617075690452804883907213544767085495802816805296254405358309150317996540825746188313132214303428698860492573542955370111028056270669175362921208096860460832504301425347265833443451728691993371046560341196187329627959665986126787456407676062697565805176692565661022597239229586700428996724399631899691047776961952190382633658881086015771467582127289671059361339199938322697526766522710182172584988749505424833520252959581961093688360810125602433072511534710794037497892770337154541307258528666184844617001446154025233256500077758164933160120355649420506321539347002469689217008936983057957312335439502966637381174655466745837381982360016297290081097656871191103447837752603526132367486337507915389127479325621698499998936644413452061453946812706637112268832071112037309121926888006540454513626362701934444487940915726079508643115598523625587800610274509234711505523754154199106018822216121909421146277272043138610397638311990931711321177453130171612313680569552635601821919978764611786686866492650392397875543994756774078830079214119751550260360663646431184813506679163386839906242990124887959543628049688767986367874211983320079627095455075258657435443662739840435793351982743144224706920327495921917853160317608186005991037123968527769660525961188986087978895105665647589052586592560236045048185841862349259906907606361479516702793660383012898723838192571049387450661448878507954276905920186341538773335446432127360528453871112715429346141657848423692239154916882889152132776042788470555799352168867636132759715991107275041933163026814078286291816105839363226753217145572045659082160364377536830260089313282622070320412141841950844045300147839290422899314938896539870009356454204890279448876773846574352952024639573028339024446895784929018038123065498407722686214227266349181155157976292873657903181529013311873722931692399303713454123292673131818433766484608997401417286189881317347485804722791637313360606192535884479976432721739259723968038181675072659000802493412107555892863834200762282626517049778291688847918335589966342808497635820941333432718413125875463926254513361917858100063465420151530605297928797583650486091707837216699025782200573534882184908151347140743472515212954569109589618830179311316120507593389797307762312324753144677769274095984117518633385583005644982150044332028977267249128219445890042971312605668499665403594401358867421695151999229329677712431124088915910159519203945578391730303356497688520996104262245139576470852138303380552138708618916466477494920530860335721228907908335216955253625577041187847186200556424723029871736689991807454460271219021746232290510279784404937137240913411428356301162440758302144542668398263571146656094062082170947114497875543369182200038770342361303522302176250527923871222918803183378852750032987588424021556313260670435701662405651694214261388285879722473619713154186478211790847147817478984292513345684391351879542985695058847486119592668204304658287643078393901223796554917028476139412052245077228346414914033242332260004481117151734779868980436656317533614994916218724385242204668305281698355577132937395237943303638168757467532902279686885290910601972714113167876350129743356413799642733753044889457686665848921419774181268855732119580133186617034425429452943305779076142469387689049726861354294250882973180483399982968492005198227494385772824394912367764914868744652369846903823728416522830253074591158892028009453648847812315128073003673355402284403595185127581977730703328159594382068484442969922251119274954753386325923956918601694245964631281268737292385900761260765023343041425231527682615194226523865835913684585950878198882756950562709156331349005003645668415018648239269812697409347942054867616488754020631405923853350830011406726674618921799991842507431314544552318177520814176047945632337221813031857836873468128833857439590889401464835442687568278591587648476842802854819636158527645583764009581660147549212160978891965170177408951555213381031940949462624222613182781529502516868438597520483901886720732915792934948835783135343384723685270940091730270431327159755458028057121360030526633261702554595297349134228641092844463110994907704832862994561028049589400302700618771583274749147237454178533847974352769145264752021970139054322313315688730683976001230591220654096880116353730799570331410856003370874533566090855850939854303846054986333554340252330330984235174819779198099296357093508765508278005379307523511254074032359311461247427129489679360752990047059137242603562126617901035577412747114502002301803274382656301754144996365230384234570562447799908791325837944977029862664082613479465302176799004175144964709417201139576901834356124534699299916606003908052923515334742807482619161730578021018172968967350742800888086291083740684394576028147144848861496078696279060146567768448114729046683617829019146254121361059637174388515618786955159587524687099934605895153355520615100227200735146031502657584585656080075112072561355573687147414151966127012330554868561215192588221535569080673317775063880411376488059031453707289420702052738267729469451881709449544136146762217356664567150909275587429772034467999407860573431763649090590342241516054538652570187098804572888802328376238325812107319084384005282754890569058570076881895832339428306280098433420474795830321176388106368288588877041263790398235292615906125517671323906098396358972018348108626137404602833578492761556648685092185202091563610007894474060541557754765387056714493613315223712384718031547791068612200133713202996806327180913434798246998296002218148414621372759713590958386323066696451166415622473421066348449687364809165422065296998616620657685092091518568093702675257308096392457555020685695344320224259471433415082668594980367602403752530813865658288549947144848074358159732717839043729458916139190428316679326465929963133561236460428193692495284534068508645271944992717812639541232260738842524068472363285653113431216641403287919559280580547908603966460713655778435656656619628276615600505891836365202302020801456395489440254290141324955789942702517238976126220634226802888167091103285623254563046476064534724540762860183896170443951813694788151826274644222135462935547628012640047418509768771775981030194729067398957367084179623196149182622860629200293302178085966065701157394292604280217219624656887345921404017671084847105122842924015085998565898499371930071354548480415474146124602065390939740177061104664491760608052653589929318409790881688638727332723207906509251053857304187823310887953834040724668911317944232561356237307028839810200849385097243163210572201265969505872508889628378147921726127307126647569617795944796350792917464171932257022000139481605285810212968024354996341782268053541814483855911455636251928984509009536905688692209050474972409735510731585187018241632818534183670466490646212012347026012666353328984534392309878071716815780658105584159715560463312203610526330965534088558160561577502306304418734552726293742655626335846070039225851485710241016598826642466006877186335673969604588518935430821591927954661462500047276208574213800531483630130271507894213474975510424504197659272546257573854475879745729007769805124160357682978533332333418220635095400414527579934783737871571167664393531113411812376658069539839097200547903838610921752517544242951288019105657174951116549306904005360143256133664151478026436624004975968539039291347421519861769506872342679327198595236925215830099250302696250752217021333379895981500129607684353975879442908553119657671157314709457423212807176012383604957764061930410522829882774331881832880693320500556172836234331792242893477212830373605003555014987248559297996042336875809893690381709678504941328939080958309085189037044964767059253385677775479430255998939625886179675466165248578430060355895333729805688138803432015195816268404847557317880315061841906109203081964564533609768453949672137579841920407600542266056383025899678095351114189737313411147785805665336481335182794852446628282061551905115174690424947205955922355393660931770305258085903028867710782028437070521748456856259355896657699313405924567813666261518753209664442007790950909565467534788999922481584474136651741115013416599111160454299798255239260717007821100415216921566690602024040744005494681641908272085470083726322246418555345296829216486481411828526172084831256226580650369452888348633173851332693839477254031168214207863480455450576923032284082242987714234742068694718045914581614270256941207993776734214959794783682185844129983560286090941373263982073981451862704231614146450060004010627087155270472346980909958531294704852165818946293881593477970925064264424328102635962560212688421514036496287387910401823861023069206215860514257303730943782282536254959031879386633103760065668524480014574540067044011565091961762348874978190143847606303555786415005036475534086632220260768156768744061044999652188488986266394096647668589755209828018097506561321921927636385485833078396552000742051039427938649689239063963028789635209378712528692053627179567855816606756137770585112114820326770624002035911397817501220985759079246109774254962814942281797821829721912545533294161505440146753017345838315777305870648534161980002803545309020053154886564871127683908237924577752661121215514915890119485736874796616021154204983974139568374648847619420489451972490696785019016418175305692112189493333047014505270817836529287470609301761271029036070634048894038720415658836302330229017904975622215281889970527953489063912239305820048605090196677019275793195502364908454311235118796052957585581634160202877504882557191777552440663162804652894022471654187797185987634091202901555277931331313678772419663709886609293250063750490952298203438632727605508607160034379987953627278653574845971549863348116296672019141836852279043812812136618558268030365150819971738675860063890379939729322319353786386480685753036025305197305973851963372911822169323777784478480745554494337501963272601553867750934361813913909776945183261398150046317885152659798944509137990118651452252207798432558448288296495282384771417461899881194534959982599362803338742688934163634742719172261247356288733106463730844418783471444897752928281921932499558661544301518347272143121702057335561248907457366076269567825255559030907525412176468332388826574676983463850956312132653710863759726478364782515917921126909991667751564978538270881341776324286262218074124195319177798079119941179704226172483069627521083098341123098114590581510980889784039527247590503674460458753006022857805697147595068027276346664684653316356539353075491344645751375065735976721224142952850173049987508894752040021879453086004399997095901724282360751817365014731779396477367015544026221226102600500330614622225363191712123377039515247568968832573295712658919429600423575867684050997052017224835498386595994620717925881453847876746167901333867878286656624867235085618266448204532212926799119042268919639213792897930905404750844078706029310013152679785332052656315775568102414828727759738386409235819399995142848149357263115558547964969848177825014686370028344313217179814450082949059726567979607536711955964687288620511320075232909816439605225225721772200214249206016855571659378191057826872898135652295952413441722422329260692210825650264057674058082248371824748890893986704311233042381852871072439293002682684621221545987621316312693092947149102437798278445414188292721273265059985514314676992068087521291302819823104879036811185542338694858289063535147155826751255374342544809423508293222203655989140926753758955463977029576827649453045027300210627369820185153749484821309574592472815108282460158243534082372303568001056474154947995265614654231276822588323840532660572629873889063590681692717025374932228546387946808409573602413112026366773974706584697108575320062875300623877736759309922562433723264307896657908111224792759625247969416327918327628206748697358232172050527305667059183444785160249300335250497886057955126003997473140071988290472567192254381803861146916437924878389790392839082450238943086273056650406204746680579523244615223926308959958360700462600769414818922428578503373829495556240649232998408248057385466399745985138301312011856729588790988895383330764265391442532537576397038349342984059687176632882238233218728759786559452579499693893969128765234158679171962182050811446715190271985573308251069996625101514177510674269284402604067096079829897237366740709843581603309573117541806397524605926709561342247644273155157523980091295232822667771924021569255448546161947432841120823988819391874245633116088359772072934589495364654526304900347159008807136519321751130871451762509260110114514866033895182461852530186172692029702082939204748637216455037259361719198238637568638470952079294067694688153015539572696828389222892620182725819937699109245588110204301621779103279281709158438301679897499230681126383794600971298596005561634838239353630790026995175238637280026537651690180714470704597955636688351796738030053947605468295379531863670277819253336309210052803158173437852097492528259756970191656716462396469689236926486004727774570131636572223642603220897042185263451470942580108398093177647504872323646946742554740238935329345690710036374686935253934983253708130145891122185773649866015458243442337645014171170658500010070002473575602450116311617763233184476193554834573398784467816067415460933675254494807941239460037861261908560487520208765631045084669295677764163775423386392841359849772452503807452210765057035715350761948679076335727844814627430065590722290785898430329531212647715612999346394934544954405442170083083920969495596507360882850014882378484969267842136202486434625024167112547150655110911788186285704356175909267470506022046370402318115120408385025032838767334492147791585647571922514522368271872995433208222170691684737791989727250741563907324760803959985627618039365536165553505717302609024351355861326119319418988386495135361029458951764824091013308114426153528719204857246983631916224929086716474150512231703340577598904896127892360398667657181651367712021313946057738490923218658608092798241513020717706510769135720261202565539985779314236034222891587312310281244277585666538416208861190626886215215828498847740209502093880065871012432632753178518113297212867763038748465311855232703786594224814551747065370667332555006409380936764995968896494673201785599912265834948176674064680871375323337395291563534286081142916703544537681559592998181819784335540994185539417584756926189278437069749096425974216707931740632048248439275575363625139690565133134117090406040644857926898033500377044831417645038754480419489487207705694560793065929430604365855472745417456800517461713091871504577656648608388763751779798579823876300589728998239583059040034586166012745853221287293275029007406490616327311924514507153326432179068324308000040236284853452379122364706546990751171829713023592808518964680953460529308682657480335396879844529906599506251390154628897643768234089385268153545385022790064118944275061322591117467181357290893358669159416525096674440585178526759739138510824192344736904325046116476992403515897170399825285488056805556033467370146602351526011581607777903248407566383753531422880899666974026105943675037148032776268104607587411523469506794079094619895710877805587444507532880503363457962629928846038906595808705132394685778157931664809776282166526080171270180547181347936633522746774296659160547719957991248341971417667944852747148385738535171522926875003798806038397040457793165753351604854698482074460220718614097019832057570866624749431661349968583060602841869011724511945845996716499201746104904095515147100081673614365812534297114043700495929049433553212529886304434236807228204236324977138038962334148138695980338907902345301846900982321890962956429751581323686964933705038123385456871299664854718540038941307147345279416177244062719539767585374155465507707865447093391810825822100134309997416336401409752222965878205544818586218228258864289634317138112055267775673846537465511209745975788552755354964097455223396007744441412082063641839245508755074641895157643576715835138726034837406233957048724484693402618886537026751066525363990042564708865050037281761890419683781360836973394254639028409362853693107180517131502766564721043676385347229648887655325230608348833215509899825461314402960884608229354332407297023015108978707789307276276144029235608329416288378848437133285395316600961275130618375274588489455162158430263504674009028625708673204666481417249067659417350299083677937262736430753488954382430335117040435297003959693859554828085318900793588890196786782086525552837138072904048158877365256428670172169617867087166885713489783755727741567290367965747197708770775961027478481105276549629092542444690638389084925835001261084264760603922139640981999011291091969964534240143040649902029886874057713561892097654893301133931909377289044381268069391456045236468755247007505850573497080782580450373917325108573628154261361047573178129635321805693228824583259047118770431579229105633714839594683235097395691932985419843508779889096096104776216594040101430732214192770491269079499047263127813410878067553514401325115229598853931391561451542475072175368670359549263170755190816572727830831130010418874432182077267823327056973236365468286745212441097604862555240845613321355381022317998210134533610630629055430815929971039368973109842895112824323634229661596217561706414060905539635406602416392949595172476016893023363975886089032401623090718747007543556690417182051578445508849231654046810023901371491911819957941676976416038766717138941375320442528749149371734954797218889494044143011228257081412091181272366109674271981861157596859634871308176314186776563785752458745843278542557943618148060913804198087078292678799982374326585010159077987868636028057248716509832603696444530940075874994145530156636640957291963042866695731721755151578829228929628014276567372356113111616166932763828967808762757063154019169087296051600786226169379722739184277940875126790501387588687391537564367841456751519489730245763677743205103011911108532912055380773178611937116989479271468102867530039176127693057805401938683097675709676007491728427524959752658260527232766499629014442655034225507364769180363363581977047389227126057769557694750205579481307455257033673900333317686011105400250127716544349371585278148392228761749722295831079313717596674666816838671792106392978530573042136675082468631558688854091974130866374557353792649435741092569699672897085773490818784194573313184368394286548527380524863116065598629327198864422834711776204307587440097202935254597821808474847050832691703825338586423179289953606783974204378027934671959424605896752578727233695295404379303898858482060736274699645425500903576920958041335646700264299748811415486780978299162076454168591346827096638651512311895064596426218668784194730042106122902850746643305298232066426687701918560030225513355304402871355443896521305189687221240579753614936595082330712428180302776374256496779821571292505466275135176588967657581743063674431362266641023051578782404461008858672886562720129443141389216291959278249196188755726499503619372078501924945515520734958661846038314732902289569814995870458377330217503645899749842265542886436027557331448055814016610592879863861134487781371194058613617663152833880698238485816687972177452999179728231724737555028171352328332381624817661797671457255624481903656590086385401158957003673091870922558852196603973890131333931842258516101524102882676968878221753636546886685278287857003443318189486488685275916146474239485524338029776283501369444105393680796058839201944522765773570367831124993596850661693565038368384342713962325283376021184868295343874489131634342601116075917738230774771070342118309858163317773953361920540677036651050777445336567447122292982736213238165092106897625389832634312060516088725611139604329517092795143062396224040741191379597190569478143306036779640791962179540409274553498923922555221838703672563991972490043087051164884221975298058511635709161971301781191737553743475188167863211780947121879322054000017328233756952915843827245685202352827998545532054878501408040562456628758750594102497249217048391831935802986150115843155262363393644660013005435683405038579461919449061856320086823881613529324352526667386945281285469929067507890518744598959934102497201675290526148527160905815984024173566966296938222787151460992121501779889123812353507936227389896976289738546793185592692820293709335100921671688526135746616749676013625702528799761388652245547635432873474707833243042697139719612958686338355442413893451823543676551013204048241385307537363697076461149993164096775355101155143400274451481413668783069137628774784021829022160164671286590568771860559771716544895128028082020132391391460145965068720923747999483443655252535479394137435913363662886972427798572536968706089764972682396521280533701083996132541326459272057351967951727330512735854395100804874717511963610034206412426661453370659111899653820135858917993320836184632428875415202980237536908667177540473016325585883606389934369925661351789914872705098690821224946314013023527163256652023542465750891244028718834922449683220988281887124543055828050036166369062290598196986847748448829149826040937106585927579129035843309650333220913419661896596940309110160021430088361113282418083797401060807128068486285134772533004224453331682433562163906551542167922577168102882534638098742130310602744806764625357360031476385027413689484840334382937409460101631511849640292760982022431020056398266331194237050890397639263442837620545132966847828744434214949866286697269669211657448445612752427298394876254381983918400303447326366844401783669018592882953711148200183911600605351243043009834753157594756224223433239710396090394099720051756956799281942949207225573940477455842894014855648167959951318468823518653479149037813635457996725611394420907898278773823718331331715329034257238352557218015464543733182702602768371838756364174686312245427872217692245635670401331802000405351540623791276656801328277728366401010237463862884765374344230851847613118757395871938237827529041883056276234805878018296658461471287422075350783142265082506564841661469036494701335357188731944805421504784034677562822175188031961847188412353019828088812424844888895577097672389491218819796161770399459158431394480949724302382281529806650516813499932433587223333988966572443230497835610501541758907763612038954025867433764468644178272530222656547315227825882392415042589772401911295537721598195303276529081042912070697051942951256576576161055427960537200160406105634065819315931205224088575288154210314528574674516415618820322384658837609661799897573946502188558129093816082918520327754206170567363346841867409331070368407047840395217182055474732708404081230886112357721383468870159200012559184041153906633582187298603825710922372904918780184355019628827899666262729744723909214572521396064383348127283941778694379234957941932331327515408708048554174340352550535483881043510127737525712749389711962455201091921139251156490686792040736880513606372550156514491057267741344970577253681087909969242009711527210251896117092007282076551812324733445682609243071054455722882685532228722256051484956017492702328682175061295886915800022038060672648330663410504370561212663928036247746019036527168489230599481287736696936166823827164742566723445905541746024222755573774952802551700248228617721738623771280181309229684311301863981585089938566299638712832405116050637703227793428672506150335290728722947128688700597233985830031866093406151800787801634688668375779203479399225263679640712925861909182634488187675512883327989192032619337955285373071265424667536101045599069373374429689445203643350748039394547678815529929263322717502486189227721298220088039541456343594364614176150482973644958916466515145780740287424142598004522215970678190853018209970788647502327285054745795795334804446973969702636251669940578563823499006628762593063659889724149677106909130773097119260938362577190152349300050638012616467415123849377093172677599503966075749660175221197557823341685340415966052404678955273017079466203646245259439739257573023181366702056663932645099617711020400623197859437755346659584261796106060751605053815753372769492920623800965976984057363525363384198453993578087974967466471148112971670411729485162225905918632861502991252817265473808485259017608179273551964232892003063671027760943972168994467975230741637389302763243148475389726724473595458857803052428009218164096270790533462017456635037306317795568302084683572896768265670466699837369931344267164185195769923751073953680774087534543544852474687316160405881444422851371428101406730070559048871907988139890779507548907381388223257431232457940571230937523744134670649101230345478857322736314484632279055548792118117358993371995557361457220233531307764318965469438543230975691791037179688911852097432477543481174990583056451299418368981876826996807455505089430146721015600669499850845007278608628964927922412615325832831067283822972900793362089324083315750650512541151616746692807273319339936143137218393880764172182644843971460023576917834148026868472186777123846215110162971559236682211471269151080207414263662342394734506463423583008747722037103857871758000899419197554151775904422858694510873508403314832130376887874958372832896589196573840262472894008170296919963922856503012501048360007623579136053902742833932142021492387084880357579132440063391519252667860427683271181759936414440298088989738930220275728004304074439111328472138007930326227373221404480650782194482285660814528180039168143120369427800359957760078786678806756434887927279075827473481614393569344603115196849713990029866144551520158459913551433359539989320486608226414023111526940504627898655553411421879600257333464517161188056931129384745726549359743640486661431933569470981309999389282572809105756102239052551253004252096555976387118683971904714406214572327672766761998644858382250183551893584537816386266966502469578038966252324144078972001548766042345065019520807049989983025044425864659898008543669510442794933088849573334870309746134766030418801789928871252184911826491529996798354869414525123845195654540229592311721437226840232457363869843740241571377237593095389155141707006983986162591990045846361512062220233556461387803729266030815318614331948502568991014332886884831762434810222124999374389923758534489866757668372763744175415870728566471277919786847020786013798441805438663208944832506905502864525110933223219114673100235955913776089814847719313295137970665037877312070282901873899466558110937976467297215337392528582505025913670397590389231105313305570656973665069490101055553347046216852135219335403232305317513904376058857471345534956000143072261073644321036979632907288893274590221177373143055292040289220703313182913178538935752921623427401257729136132556386985673258085200283004208816153039678972318926995078480978621434246943759201991205735383384274100929896719195093693624859004357989367784386475786841006355921184329527345660509352868009559856480855488200194242855493148777092468185671810438366866577948211677959979892566063701676343760208982203493454867252646048623608584657825453231248714100978938324072801223371431551411280589921540319956542464521675706950712207996194482010363085846760131026592249162953691265768910970612528044924479100356601956689999826185391503563943078826380935131193745297736863240991645061700597360286533489618353621226319314883313443290756072314644455438914328451562810479931327812004718165976834718478927348894132187027035934499401547893211380325641845387202322712129074807452773624416899105024755804062568165316049175685913984857101741546208522698005477138784895604351720911503177060691826830561593979522915843716249829923788481815749308464050882091732983573813328157059936473844874259278483778160174748530792648530908833076973406892678883098889047070679336465194179989955561672716651321026087168153701762356995663426347565813263540325527754117724633917877526100159553089219593665407910248701567884108942469154055286249787874217740461356159559979410917334586611433468315505490267050045617992554685297827825970749705854747768192359584452840309460592377927190503946109995813335398435710455038876397824544396637234087832720250333888691948066970637208472343424438816621589894819108264648603524992320383504078884865298476976280734390924510219299488742925041567030487195738296458468037572603313235851401951484910379294944202137344374122784150992012514285047338292145857949896578846437010644676608112363534176435794083763959954530342469484834372236721023787090542783269341710587423590945782456383637903807748368909921937835568716905237864748614918651879801685996267335140766328302525400603053475429282559932527258386189950472133095420428768421542780269721224231190517941009690792729442007876245882695768239134687220351415991582578626192902483000068778440323620840616734288439940279217321298595989521884266355798806616887447967995466369810519333417029829028280551665001630824470976829815085174961519644228751557675173934083731039702885009140930633726416263688057889236819732853124430411886616624260471055147663298969064843355182225272384434571558312018668422188756915044580168486885739353123487578887771879352806952562676351309228903885649215068045892089167063390736248076032993427016130257848963657052447462043130735525845411833318723724002393338584543148382789562241518311440069826333573632782833249073136863797822381157965615334929991258263629879187224949895522664357719038811093546075956589917200409686613275641213962091666797164848607128779216638575346540039333096413016081137976541148878928681584063379753784393061679986418756935934769919493321462869244542665785777154904657996975003086464241021439268529961457585425579615122652450376658716844021118717483264090803707243263025093374501994552287586131143426265222595113670453587031617319010483268653478209387287527337042818551917246790655183044229445160826017479470328087782501647285101827161914043374204642322086959711828258479650894302106076079395774068086590403813268418297734612011914575468085996921647659354081730906679818637037400735092828123008619763208537616256224495751570218015464150889707928656382129192166771444688897589003818546528754036993628103392252704359125935680756929794566739342365176149661695196936936239496048776417476815632689598160163157271966750298114525629538504382891428901642734899374723463740133976685525733718706922583967626021906568694619944119833182550392629494066185238841036115840209770090847560018318687362727835240214967182223444374636275655369541553537045277511386381081786644229114069942067868755475405575549926156699116072921561758680396579938793913642491781751889247192887142066525891660561069650911571143576176427441637831550023503605979321337158257909705289758332568085786634237264482708303051592584528358881641267396920554359851245219726490819064425585896805200969919980519167274991464743766684510265887482745334204345354207541231260738593297810808275661718509277877498784071857654999864656444671907953382752235123911128383828135156882227294031573402243942008578533850192469508530344896937507629068404896484695433223343367492387918060082816138134299703849021671199115584799545839279076536917775104537218274919635975118803423067569468497310566339893845443057596559229342687301352734823659806653277894779754950884749528771874575266802309124488931222184500120676340121392601891157868245791563374717400827852134346284385035498271359747657184562958309351404372736767047202844454235451609256628757568251594571038377962225688598849233743314818949463902261810002383848508764884708030597772267164687059681135615804985763478608187761437772843209890434067779113846529812575037431016040320077313770443937445533602955494881513425486105406242328808216106640013550963762346984741005399368745569333468317473672394096013088886230605544993286240491881319979224958279704584790118927454680503125300200986562722910878582927899529242131145561861150427451680136741389421082879384419630499275161016945905865615049153236724312284738175224509590381967910152170710031775091621357169421626226734140184876681402599193782385325889182760939122365655458078386447743875860431629088529326366125221041369256018925253670033450576117024883366348668601973330927423987554466845100478850079494461069439157362586098342606801589444556785539842404046077948132848633656899829274432951009525218107127942550843588469749666551684886427666231410831790413163427317841299430258074161526158788051292748108274164859533777475437214389568052272973577023015220488667655104664232355326239095558059125891542514658220812209794643612877637073013690564614740421261175319779773688690022474556190144294421772934712299334766977897163124456753636515659817206207535941369919027856328717577608637934432059135249038029996106980429110575642502729292435320242078664332976437767394242899170425994955965252465092401369691847554891803945157466926292012776887575978321325353318570990735045468171933850306092271359895739163051319470596184126666077419744548777109034807110741286676298553886497465552541492450810785123351139803960138318053958680460445120842932264728741364323024049348751829715706040242495159836588494998105977516428132289853533170421560810680264422697804310863601287943762082821418297150350161066919375745333485636301652788298588109466639763213809340793323163320161274720974771602310453857802743236795601908949934680118967892978849997049893677259176486687004505298954588515520136747400744581400834317450432451728073327077473493352209685253950737906823299216143233712061428426033899758631623351898328819629258384299971375339430132856259143150782936749844176323516560694770592744926812096639087180837482083653287873459691842474068686182121218734938103983376105941998138730467124801476587012402182971206214310356945148715606839792826772181547293758657579020084093138106421473377574937799186952740243563579769366821959171276937662113168103452118219081278723812603715744151282205393334365646916619470974528118516521674548791898838550739219719397487892291399241099385089131066621997304302356226366979255343842674423826556986353364849280841806537567010170794414384301491117833925503264014438644357289094013045671814986505169880788546024679692146650396681275442779735954751354455632882771584720066074645065323731910548773169499985498899788446215282768364922173839773943753121486298632032486276310696185241840139658813750335923100341701335270269731796519061101695928724966346979041936106359733133746989061213738411752412537483480860059710237691011004819596750163205929157811946158100855230347579433722147125957981372661117695416052495838740642931600831802163921764822573351117204955977033292665200028010338857712016446728037874385294677871884078810087495572292330047121336313427735615148034166482948072275362334978297143504897621291398088020521851316151659908780331629445245234312871727716834355325150446108308374526833144510354337423700004044677182448418075167360311847140012433187010379042476810588933538116783599920515721760417019284374906789398424428836693935746543938523622911549443385582396239018424062664101485804018174080082412436527543540950654388588951351094722679723881033183386700786973237175801962430574207058945271099737309070814703529557601799510051028597660711395429925041137212988438860261897996683439988267047782800127390930219286154089843492586265509138251291487667272815814107203980598536053701224890322543655585916737334625867336624307611927556123431419742105863583541061087165474066590966777057103407192768831514858023068138226862126711361069243026865763809998750428597769554905167641370108214423084707835937561683843052117315023141288392587903574115091393482136113259828414414100173995368794024280582017844433028225820709021767914356443316902150703833339558525059561771609390347310746647439475064950572755076373015258347785843636433053034077689014713171462620904790612557410983490075338861969543656148720526436520498266598447028714623190056769462157158113658073809802429051344197201377653614399610108371460776334175258221768552574700422732880065050183559750880271065092650622908272677620791891481012165943118704285002441227209261412393173762553766030647083177475429312723689566153404119134681135713742022808656669024277750394694345632629423652932680377635548804008640691858047974494590362124542679002250196855902509545495267030170191016681213945477534286928386217626789165910340458202002582402903809962305744901305662839423680850565267405063713038179720659496071642070048527634625387316623932943382557111980482669017030519006327867849790208316152829135138023710850930313057976183025806552114609526390221191539336054125443667281743757023426316147075168357907984390416160561762313215682523780953962810915182482638276949749734855457811140057065726835392037693796221598789158537358937964470315727157530019957536402429532931593397148385213507252913847580656095708055310283605729162770820039130384587411164820497444454934583823720778477464080277186110716803811944196502686644401582740220297829710326628090618266771665094136787448611529249999090841939019257007617937558062481150190766950910081193383070803132788370323498784814513415949405029052443716850702065264825335523008254580529453732927036285533678457167602406022662443960456997349625504387506331286134882397947221084405080242381812186801984179386519103494664053691985132339208969654905029896126620383605681561455804072657446627571097840948034419337951796909765910345805103893975558761036258767762151198246131328505570261169721684232325736636892591135978019660907746767110003414639123145002135233963170179158553573148829538167825999350720695590953240771456923708981515944661012892455947841436454470108392476797840821621175483643904447908836977907313085540053638272179884423239234054050340260372404139703733192187218637724214664926689221083864434254376994269009512884263662254137084785560663836512798884214993793294553333808536896186887378134154777462931111627039453119069079161614779509011864240684809852295606553187243456112812064043908529506886446224417195735683267388730468207596159062765657336125524090822045622902469851364075260884399429494449636207615510149233119589360567296799108008861728385663990858167181752983405941077828276918773293646936617834612266407068971120463996035516203903823425613111890853368429211281171409358387305661720221322868954638521683237434337211360625740355454897728203623822491354066448315578024650611045867509996154252622399243404828276323996112260377454477128905704136818935901346173301393548917745130885515661292074087435676301838791202534400795168594385029433071279074145901668896516600275524028781279684651338675871578721673761158853687499808534092271184362613056971020176724912712210962308907266709849170282145173439493876022441686157308079742088636972284823504983810595790410854331233143885679125998705758394810638495645627870517653597464554120001889784750196390916846781312695162878396150593339827011061744056587600947395251863525153958666622863466174891612243886444600160433159805778880397632383065461595129850419002858422742390920807133566260062802727473326609778142710974011843935035539630558472771330144703916357261973853904444373871045922350786336980751882492954166209191484900810730105039588484930888540037766265972945441937830208978960805313637384256490593049218287928041029159193547562819848447241667550175184995333342445927793180603487573251873634512403788795228273930035050906772957361011968052324133155199922437707937639650069681634303963551603062660975001939633286351251650941042399465201541150970989295278335282842390776604358977156166658804427013211567745824311207263351441291910840163109630414129972434675415249471279579899990508380481819364389892129852602076440226954440537575178417170731563199987794762347450551631580787976224098631022487007522799944813487245836861956764206908052773760722884856896197984180452025426859536321915359848411738677445130411467258535516976144028587215166913705229485031497280406998798218654891564006384104740316702320843472765060995277064836007968952480816483513586141975240547898380884381276902801878271100337388936679092028019966436256443746413683138150380737083773640126989915412003356108709594485811917794233039674819880517584458408833005207109664201014572956758559026624751504418025720554847628731915101186628093497872888777328008334002333432288832090091970926748580795271661182490682353753090287258864690981913715847224150113510339162961697506852444675800327429145031316113202405631860994991033463792995523172053927624152148409616302023503747580884179455676032112305976140603023696615138032514759323806066392473141819872907787686732835457111782287648365815672754838586834006635478886507795023210752428962122284671333290441499701329404159490460225686071874910126575293838452689070717523439086747959507137395745450510157343501824215399382432535392956570472238895966786520064594072750908679865401611933082657750187635904758838609520544525873642940108721871547948760660828128489802926952887837966746119312584443362594644362875521407701875132322705156828956537195440363659930076556739803367801132224553621471488447216549479821334392411361477200434849407639505495182467071477098740629016043941529679873644808544781420940541710862872852774038488121837358427114651974749033221914594413212661569310880703663760457043717340036156182837594041025704581475212903929432210809235517074489949117166639112189243488766582078739226212752892349164179939915897906686241821257551622318422609489847309227496887964871702351616465771107676046976096209691085684574807275101686365007242998711605415740625059081240482615936896306372433317635303828989489937637749047776384539752988822210410750797151051000376420976967017160522314040619531372202480928344484039317668558846925354894637612054775526075920734541151696453122066352595416684523415871806384452900890787733045861944670888845500875715133934015720592576816787201049842179946785611647489836957283199457195939211986708416021559747348420849686984988208868960190399366255392411559526791660449975617796447654307212411328055533480022038020130988433062039625930090927769860914120116545157249907590889657673103635662065301332174935842979453389780859842466365002423761171698390542633818645433428231437700188159217972877174922658220980015847012454752712333323237226164440291136097255582996843980684786730978233584526323641934666280431975883892658463443693866820325949152285392358778502861890530393162236685884865769344497369623478771012395280822862809311121124635128121346657702172883289782230524941891318366574637028971310146797015805953032165810300685361383072534136877386133916504405254779657663652231360240360495446958657137972376148610426433137071718420145484088691396013251382965602306168248937512632048261064490937165736595720151766059752470711931893811762412154786035489151261635092888968543951398007697612029612504988945258502135950747106876281545262908011518158922253147936240698849473973893001977612125838402136904472961286935546835516146004249097713825857589237705317645051532849704188443567275495745500596609606542501612377546214077719445018370650512844419913809874730118111448741159310852959931635845661541360692134749928563517333127452053076993686193699223013450211359244724339729532773376603119976739778152778346484899834978706557279192925215228476813114999897448031302627080051073900734091546439319847585727930272379198695130590619654099486728219671119340420033213896653525121477329043195420076442541252668245008574694271829818528496446878788531026889093891226338464978640320990988354147743525683899510192484716216455232819068862636510318788820481246696382378073677513496466854872474423789112709755884120409675312576497546568433291951594622605796375028638378239993137047704352875468289933206066985436298949892556962706241224642954709582946909465425113325354159271132129964022828899150608742837728738563668021056187032135517641261401786729559311344991755655608606078493649344123087810737857543047630293067186768822288513555418752824933919613677773874567064423838235466277166824656459355011046897300706158034025566042988618762816285538777804412785522459668056272214150681050920437834235698029433403417234167832081613778900179713867021230075854045601809920120977168577587214227572301859514935288231459037981262245197359001994547926391961312612980012619721529078651753926352941127425164361150442304797796415520310275841401752237655073419822889346375596450559636265068195582020989698508777352911041479571269518976744245124550371358254497528449077656180019022745094760206789438980859829095253498507124619424934073027918836975567655470653430775666569865709657358716942454907113499212944032584997236243208628449866645053289462637686687876282301319493500230683203184014409362128768830391490742318959080251637714837058610930822351235963531451918724575616735288531233057204343266949700869038901800325980470518506854800869805205203517128248588513113292470332752073173862676749807175004685203555776351976411240304550805635648739742066364710923652233799319723664307589216482907926183822712108342006129281744307862243338672532174873373002527976613487685680751552613965732826138275231163072676100995767465906459428784739905123266644152159718982549987568213998833642431664749246630356825638125967908408921527114982778674061043922655569652497838802197606200952673478906081435072475163424268292920038327866137359869674727863169121074448478232938453972298903222295894356672873446100507817990199862709682549213662793884233822300104964037332703827080402337212014290957177524615370419968860719879757239919381746354653904906866055230000750134597822871667000756867958753395026567013589977130292649176272175343536249307652447184704119033308564858786352207442009972589765817127672660856284207956740950855413919849034412720121783623744517803187416490539460764731575386469337665962700560551247154580688655688117734331152026113705037355389234742275886742198117235020400157082056397705549663334413466623989301082340858919216707201344897553720021427747349487468314590626997436932916359791986334641490636679332870989308245927375587456263063775060148309227562721352818237694538562816366616259456017785092770044762956491228177391551918452627720228213003819497856523956454423607892721295101704933119784379009729154753920928439556774874672199163035972716489954980686694815695964614921765813903721773854742030301297137601354667313693680262184298206981551515663845774516754912866091872167624920466865635001059893414713757136711818678444237906732644748074628666017426070274891684559469354446963690352797873720783585790541288268930747850366260478961298625604809768380004020521662524575807094887687430451513046177260578788127984968675356444918778311060036544444779564899425806053463898596864618601653546766253354185495677062068020758236606617395120608616018461005195249860000326864678389319771649248983420535411118083598291338835201806838313142105839731814297553060594080142674403291415920516021537541336058625294299288651655213563939062557290214960027829415669992161277427024167836351202469089115418008808834876484429729389679539442913049413533702246625905952750210797177265916362766210791061261424643050249714256526099936041053272308080454816489675896460232247427086758091083601310467823033951382312724643921112651780650380702705209657488707510913433601957716641995922237718747547848418044192700236444513226524651918563568207338016831608742799457860827831077057290453993002790072788014084628725032796361121915240338103745012462854353349379961955277402465373960652517658226141777051250521149197593701500645435985498880224379670858519933255756506642643126060169763063017472584788271090522700140105359892795544888416778217893375824553228495314733779295576899553352136210195939955170989115175729192680658605943242235584889300411291851993365370941577501715274420648054477236230406980590166013834787144192629012637003663412236276604820190207432463698210809533421597556640863013397169571156577178690226621412942326593821091059381898385373871572472603645287717521485048528666633356006821268123974081795154995609294915933734464645596566848782760489778754407808958645851758261679540458792240266302770299419075465184959731164949773958999802120117393402101374982701763857741470578438627202100308578240056564441460698010854308496434699233524426210071775815025654770914514540445557479583421912413377798537337680902094918775823774429778224835619313325391492298787994490176924862001158883508851007128289290593054329480878120472220935977848207991625820911354374938620032229983019806780721167749841770128040558049447266539432491983112646268540695235540277736649819528960025795452647565227110715330718140034464470094814503874491125042664293907680426694915659803675565894691999075791560353554448651757048097912836900044056854024590550098682213317291335758425609746727851861687681955695090255937050958922550316416410416230726118910176439582782316931569577371559460327953945504368923889148355590730599851821900591471665457357937286410480002133767846703907601455999416176696352530660314769796128991460847615545032522147658861860111935183279022006353064546987258701443320253193342034926133594082421866332322162092846653424558526652622280153347633875748745243246604504776250522957522568980237753854879505476941784366132253441504493047663609171074452776724666799213424702085979535264289399749272853894956931263453905676804089899148904672498728199648554979371770909324502881169566412157858425407883082719841195473732413523399823975090982442161023824326997579344534096623233593130085232457322071296712114799763550259326559510724397848434703323336265077460937142269784111409513092012068351782516126501946700956020615907545713732582426647323705461910186090071398206536123144256184306958328618859082817046041160497181579823258390475578768946139507032758428062192790424749377953847305728108217632250067188496620304722752563843874251539109506486734731977666942059613860656909736232180779953140709567821318330976410858942738864003705535909568837544559032388951909741405763488305972287080626615895096195108584694598709812390843383883585742664074654927354363614667529622088302814124427155828980596419534499232223510968358914869098436842833741536605176539986015608947307795328062421908876801700585125401663646343934770029353051320611134290883115816625799809620709600319189435498798562038989065772958980073580250773137371948889102449910995396745632557723911807570280218602575173938751722080062809059080668008982584660289308189316175178467356023813127735038291266019974971775838509146541528559984577433888248781581859260366697422369451882410483072363892476231206712752381868951467000125488610206472749788926926178487365574435272283807905498877062892734401599409255554883859346767012185971865132214286826283766148673134205914047693765536655432106058754813711403748550066681237002707164038105650597787931469924169786485687786630420306242279056560347145245146499854663345269405407861511211919107124291101121576573843521190631880256151753578090980350466498236844547167784572024132736044259969363616067463068316351069401453193470544220958852443828159326411011673237881603378042616437141218240638228158750236318719643264632238547148667522188665306882489978437798033645166640225932468750002840939617985325146178399959575797742353784281970002069327497057919631224602896697373987649215481433390670388476408976617713450047486119184231062834668289905507321577516567047943666967055371935946743058297117185947110246192340556801849470569268710360456525320134171253371813726054879930857053909651658034220483333696750866320419180144750676189125837939612529894730829484177458446388191501274739908580527237432622064678726073858081803438681911722872292659570169041893974225568227107573751075073542021090892591047400459882555556416692170684940568187520264614913336054236893845367894887271089549582611880418462509223146142380012715564589660381361917127145585238426778892034819123923718807750290180782135810101492319201934127760239900434372211448146073809636965718143491864254422523946842947931882227534371005437594569408517162502905901486425980228764198657908649018654148448460783797029544092321771477110795397360709837377244231959300563088557873265931300641184850401882836547089637043796460302968205128535112852450030902806709747802965443517434365963862005264612526487734415510187240689438798611077347863216201880921076882096259076586789540646196335889514114356470253567876020828170240170661942587294954715978378033699953386130645161631486591702807709231055751661071046827405600912042177911697052859481677950279115276112599521085939142121778421859399309899628429663466191062676463003485133445915814470891479619898346734601037543100896228530111182683872457877756327186175441315093480661314316963335380891141100709597114544940995229465162987592672808609774812287544636094091753913652692350330144807961676848528172667063065733656460132207603034890699935300661998843861765790480036354404055284852518146573330587848932935657045236877009846145504997460666881458586264063750759001862410783437780715811740437182986076623189213359500762564467298254074116012283535562753790973158506180849809295993792966359622603051901372431669001141812847656062154188577649719417934376072418567429141359000724416455408932792107652443612869360705682751792637876512549143103907184174188761495303692329933485460184561114396902855542803738592384624900561115020386630927961969455257732283663394796376840367148644987660083018436200710597657731560137903903443648937629180328940458573722609271649774699586048172940077139449644072315729921201445856996181741719640090380053091436047376730508965975536014415113516561291807959549542465936341605378378137324638227727974567933295619191363796287175398292468057994644610318012663925210084109829278060842722153157963196590747934160539204820206127069168055978643392734688377079849284631323558796640730544420939356602778650431676672942411844767688586406551070142626702153391392160464324925987568065664521239406424200124931032751081852718853016416799625330390693829899607202000018846136331517720901008582742583454908164563758054960898402898597926072623277879887276738509039659613605638488723463535526800744061412197252665235091259285554613726710133896569284434683742486268864988444937439427546311996360092598117406670872813542283008744026487399215689883465733458682682699586011222015324909125094343416041014475068431239783483020473408888044752028866952158016647221361322134545836696855401230167742364196831425088221658013795296186346870570782404302668092940799253900020357392449235985264149073994969256310913630217315387533344098432496189115403585727748018840790733826571977690354318722798908398942357841591855139616324142443962747905372091293891008343104621097464749223393719887603617123326181184293083140656988749468727495190334325267329317369049355777332293513810230912415250779761166323669280934025709630633620667393091878353744830373852257863714995120104343791569025870939441356018421645370003626735556218257988973313864130642074748596042061671093362838136787219223673170974375263853922331901996375968897358840084834642023527863140909531113245027975293852036978055524520234354264498549982702621296006336502564989826968819868947086801602814328773042038903823523683971518710545677814783306349905442500848010373748648039404400932938738827952433514758660669596518719602621652406950330630113819621586996459445998365706332403264347112632205266258415879972862983004614067202213345949297986584938942957724308110706032947887690961942787358929048854416901666918608976955389909548627220398371614068687494628973819255510257325103723244169857491806539749480953354649131842365758221873496715058266320638983058065160553441331086873685629470377464788830487388491077295973370812320058091263278586197540822282130610292064727510159805449847422535917113830143864647856560310394250410765643251722649436864007838895968852167025661867150664302200420740347624878620304353760826344989150024599058654651343921876652663892455583429841718210329705926511215120078320411915321992502927260481774865707453058823454042756884021549673664465598682652196720534590562344222545951339873967041943164924378397689235942824128833738920389922604646318359588773693472608858573669585056298564826044340165710524397671063070223220956406049626641033678934438340647706493815139858014582454649721556134514935292518770137626796427983695717034062292925093745823817777438065055105407077508388062610762884308955753648419773384890290451430785622951127095702748543120148164092543899393261030818682367771860218895137227021376402201249019661637784832878980288290690204895313621786844727213741527842606861636891997619981519768750515905330218041017664196069972268340499195142545918125381216173529974181488672193682301222756425178287270265101839880262352020245607827833307496306753826833528834261728540012641200213761034823988577303719969218148368464763629709665154066904520413992824121444838607550383148819202513523049869707149101051147000161238168805040272936066996301716027159131412338513731463764765937329989491284825873825440744385042303544497872031336137723916440549382490052565586895767048131802057811988184721650437196820315692468407600854397076100789701736916545581305013896017632133316838614147533328956352247912113189994212914206607350777588288845613178436203352625382590718950060661635866949230207024465736525362682828078631560557920431659678610013949930796780014236602291922585710802005286400835962602120111122215388336646641000289555806461155250845239137401107883434197261566203942238993435033420397314548618841968764180159571455864804780353007806903173157061333215322666449565353337047807992408506488849799495296230905246011216691426031358878178630532342593282548940450689790528981767306322775199927870332084659417179305231479426320597066342985515053158886506389061907586150676007202997335768475884352295754390382574543949993527676665941822456240917329358632704218664695884238472017073320599298604762377841995668676322687077102201438314513931773733332980900132557372757823103003005569391598830094271868561146561821683096952590834807415944468535330334318872200417369031703110916927116083686020841858617017496599664358768951336112015561544184726583419720069092327526345842981079690644216283538043602126758985748511721938679341861517574938751215386116939119462075307838698819822591901074417221872200975384390640612440180801040985277923851075649662499591388831819309045697794723733311216974623224899030020168016913816292035118926292461168735546507653909174897791627672188070688853236106057783767646979674984086918082245397150493906821737748247552732883812622646900099881760550967437283558876609432812314199520291550957014827237712651730157402121700567764772302786869474216059396301768704344745952400154451241321294988557134983178102085380041128101605956673772700492982465967560139513832672452113580178992605820684887907968753274474256260020650918801858678890809565838171698495177104992448909433917553227030144217924839352149820766222150177661497319050001716897991577236180580358221072918883997907657751214468445915194124863504583801314304341850415416133337093886449446366122628234049203168683938439906711291303145902961343042635366851604890198973793882256118855945095431584688509498659966785649897339055214671684768314154059607702020682398230699074573159597419966564426189966690720722577623353228507003848109359666363526983705896796262303045696476935656763543305698181778970362226238319336407236096179032017372875925647124399449600397984675657259730325040787938368278617631292662002037693519314154237983155427458736853333197138836970174501302647036047261112960485445212088537635818240536774463376166493566555559727015598478333497835629172241677055738201632768474285652950770213949584482658625224447932262120269188506704144648130188497880805058172536992294196968720809063426027328875267191234415589478009805288289964595286740895057611076265620093360492392535453028385605443608603277184987313278977295832761459983836152725227418810808598049879784564208519517517214431520887316285300008231031456817281148098118670556486006268506256389650851660628282326610691710008352143920868111474566982885755356549456793262677435059683979258976307545700442474720913906162626830276773297227519611203303768719321428780989112838554823449659811926781133833520425095934512181557567910260835341587132814396004217679371762614234583257769214264676479445205307081035599261683454033634661661741108281463710142007393520108431884673742539585229815585709873137934654802951011391991841621107815389670211055050512656303545448659231902647243807558600171714864673377560242520865836895557710057330331541764650593154467525601161313011070592436132285550724749188289734352718401627715291952612485628170014975571984188350711176343454095692207716717668521261122181244318315141613434592521863348045453344437735112993400303970560551384921389948204333518002182392764968025934395168527869761295077063792795127748402091400106469303840646315818213678561577773939841376995039035501095085260457815604973530301738020176003942318152477077719698895690293803602350405560345267659234157291445432816507166693510873448315450173642542322093013354706047531222324117895563086539652735268736104487893295268898785698278663112075375227648068538310743522342698353630647906780907151348557112145792137246098403735644351427332931234418398109380970951184678353617159925243591180738121019954281348813319675542390629482726360515037709887367994399266645671067731174861012602507774304256046969997904024651505522715372115833996365967505992999340420618984137790894924051718083073958781288676704450247256294583330642575872273929408386918951251407000746413306581377107488659804146618276557218712252518265856778275508314811182304373763270490723157295259543323930575667609359047250729877463492982627218429779543585374989461709953036478402817862679614074471563848289757027777998114868208067817106117932024609162097835912103624607288860909699669246409567695719958895631863424127363173694548791630838423583813092859438214664141147128456520442297933181257977219478812179384830602393978004502174215244263177371562539700461953347227109283191065668069430526107103277796199227825343126301226665352707810907139219741887977609204678246407868284406742112469644296010494011861824024085466187703631382876131286608411932432766501555715001877165019937023561245517147095160041575163044643086235150659184002898774386812841382985247680337288592343981341672454660807232742985682440666229119253397726705625966916442761096435062887912329608144593820262401351025079146910814711677911652545162269634754145790486620903535755115237641015135226261974042677459231720377157323863357340583266853808363323412951464891961641332497763391956464598300167310065239721943869420410649626891799779159916453899512806822144537211494900271555279624617013474462354744070097594352976699134646931069606169045478452607912850813923239767538610062853294896374428362469014351372011028589843247332276865803242409513409993783246372301697286632767497966295724127782524895466999573746977050723027676973019804064279777215931745432384788261822834834165099349533116486235721795950914163031148103317177556719530522519120470715766222898675750422875429823343949575324605195009163309142318595706261134619714738737801643058463405577657983305215749083696008557946119208192070644803472224563380038056675852357436926904538144688342937649174218664340392189235170211197617199920430918357824806370617578027582207013370105207892415178602893431236988296941274443415757846070155467894066340872558863657897894229181648445557074808773946501584272404634957242084365055306960310663744951512057695972327392923549495603677459732266424419664942961286833662847250889755468879965184243503870937305066932796718058156626246693342072613576073395541242081617138638431756980357105262012345233897704241164713934421753758058235246186860010796804705682874326196103065485277968851588453356713131045610741655780567107915140645304692160517399136914522612352251257910634776836303664553710081217754596272531877229452052780756386467837063944005228085276643269871100548471754481721099855251643280416863844640057417194499422513229352644212861217305735666794297508019859910115507377955378900921771695484266431058825538951984148762785582733202952055176163862501904774311225900587395870564114995951777665264708406766475782594445840858831923840692846127025093297851956694231835852262740518068320323065267563664347038698575772629192680184660052004174917194242764566108591870049733663099515882903113148229675540207825349124855007125539337222074497231214058043726691991172884435993618920474510595828949437989208154340745692692394493309117975513780683952852134223816411648787162526497195188924778727202392818722751546134144908090248318933708902304468588140052538874239421702165562298391114923239717064300320716022522684856471216988972551560871770533849056950717051562132393356738414970212002632911362443148657316803185403492008443373453868224291508763609389661700906445963902233744749001419848163427392022235626885388007888571507757710985658931373508445850753548063116598277506663504752040585029026233451828884761242675770930509630251044770624631270186170521376274886381424067388743009458973461081021629617865601312947147831078564324916966561086350041664496907472558953829385805918965669814929707613115276877237839470961774631405472135403368234147065755872312048941933371508681458239139273065131090058084827758415704165316422905981448865051197949540111486997166758937467328759039530196567907242129580559649019745779574940360465334432591549831682237730602701580664673305030581426428865838046794482313997851567634287004166634022694773231746833777413690528374580862890794542215280883062140904131723551239524292778168257028817930922091790002344640053695841291406898238513067439623543295114244725497828514048114385185829084176719902103292992521870412766456507194502911151961492948725397508247442122282832446910809280833731642905524339824015833537477728117877794766417780486570061646876880499605926634582765384484876056077839553359307712045436046689405317355084647788454622467674086514590301611053306681623990912944751483722405975301286971814790392150387932355757747343306687628329039033923238637795499444884844023625936837267818544438018627772190020063030829773777474442751376104312043763839620438620474392641887981717767316045633911050778760120760830204880243668464149384763195583192400204972201676204219802271481585097388543254604363327382208334511623225212770947382510966582339278142540077248450386708790011799861049494135384160531391372054997817203744839704138869639843721092997383499960441957384851247829750348701066235394924220173398096660335790959342509280807962388971286399461253547320888844553436799872826497879250853946463238322967282553839351033266367676233615062726092313789885926990787103941828418417519490836666448094529914224189664860429027698111015923663007913703074734635211389870339804596034291651882216092832094337908345715876947398866069965708229549861225314190945299058900605010273960342001121588433765542004317996851382014489862602335362446578657203322652954500997995280043728273197460141314351508293638487254180177198356980081811833348015504468503329289458916029320485629049295887409871361534369245908171411176649965995706427937414589692950199523870992343794612166412713357080045875221103983175321740758220183127766165416653453337881242988877314996056569962001778478811344402867314878515946737016456399300744911424055053828063398820373910924969555786914590347008638056653056124857016229937317921415306053094945072107690528375350307496910304460748420864169251516904953269845988984007420752035059837926385010289710637589324652495848018854706492567879960712975007672626438813053456270759972433971908409172272187048482916336178888056722628459501807998910141524835830370713202698508180141453043944203535496773382378640725019989840494198944964472399241935700380053865949788666253713600186547612423776276345803150011089734697356995595622670763181618098366645295644791123896784864575609698459049796926551211642732014746568030489219158540303723024060557598162160413607774706444421264848222099078110620164413004936394765141234221580149603648623694154686787291695923619640300219799287754652841604624908874670777780435195150272058194131168678958471847040193339738835811085426404063898271502527651988378861528436609856282120689640917108396337523915576982876719381171906773895676636846957788399427151560690627804831751700860374126522999360872960054770347010538689392095734686343693249888600863483306806634168170644519395840436226431147238441071035632294055003743251204614897142455942321174140216581548552399922237881834776361616579500152647449969295468093126065305568660143214441463136463717171071577802670258075036692034558055060562968462072959893606149216717167479294977758158146970158465689435438705343274266324887425592549385905915906352851048877030944023309835621290965204007169475681395449565192017820921645175912061281224325207119507547120765932133101142946840311720548992881617248391068327096499697392430382411862910087289827197817255047986842226601033789974112280414534745528940922161382919575655221697193235392749076365539801707347366727264015621036622149834750072957500519825627734783143416903194453009597270395057394438797938875966612076684477886115020967991516989443186990820122709491276674206244591702825144867433346962551550463561051196061148012623645323122883142720975199571586603560694042455079222977923665388338617254615297304080675266459252424450657745141045113947455755510762041148685274449898771197714015541120037407139013100549892574879081831001047845540350054895090954912918779619946169446860495928899866098889205005303226003053024136036572619361993183755158831399039405876135779377021532001134596498841144003398780378872141330208178251586893187265672331685441589278632076163921959389936222071559347084349775458396578724621711111430968936014914094897303268952477290064091281893848145584292263263999393171303634725991776641412938564856272760862139645653432966557107302727981878872295300416949383302847930557383751443449138892351516807308140830113940767855718639308523148215142285650694469290497176901031779822279134233326435420171467019454266086481316941260122340487726964761064114548361062744453366654166066401803668804638297910383931538127031721848895245952556553419504533636830170848394597920479730944949158103152816308782805647371279404308951439599007007789084977995171097412718060208049123870600899421526561047058306755392012885744527302787812634877758847986212437064600293113462522707951781117291404681317793910559920453867247769796315862399933869917113834156408222368873742027042995193306411318636949610773443530919691226997350969167605194831256477059312055490320956732262402601257468473803578677876527638965166812830868098869001635733800861224206737411626350316950783522276238792059397185147104096283602914092068581335225430911196374613521024891447158901749346515906336151074343128623449155774971947995987041793727466983632193219590994743821116532652657837980308759369855233307649813455834685121453234243544144253962393794533400071304853728689579978866716261084076336822061517858323723015142142978339357300811383908552177399158557754110899632312796315439091696880633205869599997624257961278236384455322440929231912747193013176453183629271326120991273521725605431753020181053925273673268839090858294906076623602151632910262014710139586729855637050224338055271249564288842848798411833700956441314481956711853439455533669929375215757425136487776791787011439048704231582823465486553487320295909328530589613005616579116155165914201181417971506711430217411517215885077972448591084798627267251415273869535394037316210166839377879532353733404257602743436999383670271378094969329098032657248687986362159192657913421211459523151546688003646087149094440579871735538823215452034867549413843173812732205550858219724057286925321424139400673166861554728012327264191644164215598078270202105163769175417078990702660179156980913189273253208329210057145303446658233473674507147422080930612734708806945546932537053004584438496636101681629079730678477797419715803774925644971648071796867277250547449970732189231701097280016166369593350418166924281516015085085440927760621465852868038936731681418852448030669090888023793893210365528136976443411587848426250635134309555742073257558463437077894835785056559988921467656657696172085264039266066376356559841981081974741126860875888044667133395749244671159999446071414362240986254642648040844938993326935455537366661312164230694895487042622620561399973393274514976547913734513898600579149704918422195655138127433659109293536171709326925826338698724202075204549297276270573836964672034763339354336204844378596868223905518654882465638160114370963722871484115179388166666538643369082671679476860240550252594481476624052978917303949123047886859979797395816807582735982184037797442345805426427754213434927670677357195782964692174440898234473285420592869770287325848803950812356114606600255448939631657778299002260028319221314141096412359274475283855391525366880508202898590276604452622381900770458184851967047193222088646010315822086424422921428128878206024587667353524340367698859347964685710475907977607317869520523255996346587061303546050272200703784916159702206749962071734672179539969851209793677877140885243585125183199416921000376413001914352553530708091065042331994019965803785895300368752258405052573008427878754795281573437431078739448125766924014339368070085863822762200824494290890289632344240915546256856514442180353699254039995184045805548739175186728569206782492115242816741009426988217154061101538521927735595451638332011139977768506048170206765468571190639981044156055570237450186489487501331129649087868062304569338996638658381281629285869865876126668856677918934550206497977482457306889666739439150798528318062088210626084414589066898162878414371500530102496982096705213097281577457528961082198566321343724681187146205895344342131602294396660482313706496650748274622373019958840470501793220776959579731632687583976689831724424545097368993533633962585336355726613066959822658688038889717497392848639438295824222866995561217693420456833465132431434158780889732335192811877404191592912481875437378994289650539619760230675048961290597992897365403880453336811415551123351789902586987151394800351725111450197642601634564902945646895806408472206199331939387757889702008403038646352734658124211347189941038896150932370404016063614132268857214420700798332160646223394751859985463530579664654494312486793401742837179490608028591113716563432269201613550061680563023177633691224545193970916486520113093676479710579326328315803310444582094085634296956340035998616262525012050393621755217477932944160444337755143304007449569889492334717551799790487542046145373861745184295361723422945685002501447089852677739042046898180496511008815962901882883680787754167955870129222182958465926097962018156073815745388547099034521222853378470972721115312926914456656247292179709455220770171201773501248238739602397760840711020576822188851262680248968451565794863175973541973728203892655812375627340639361416475196513404620551698698741724297028575769479791986782980818197119881068244000937834366000980849736598566185817087869576541429324459017582302591365669762305559028263384300747622336634848837242723411273974793322377071090159091589012134399480417717264225739134572268290962260370636495500195210124349684594796511927468839602866452689667473441964069672307120152586291484268999049306241406304575654043132887538746431901529297851391139258262416764220394630468679947161926279566123968476733255955220317805920935064014836675619293141308950321395849611920775278365149074008266732352109555097756040645553564164774487051586887467860106807990563194588112944713611457444778195070869736320445846350559857637085517748897134136447142207687041669852463451186673320809750333389287665166353841051640119727266180034690891598162553027306033423904272592784289049215774161203280818962723975910555440454707361406474959324427603438854214222508995438636128955567749239377579389306780790479321348048255539169017589889292879850023710847070496927036216588285750154431914417630748927117610913937479725973875249822673909098747945899339106778131546533051594667152246133008551007262615854658909153559814095105373337405884511601360393132645898664247510277804587556038646520106931296022279349496596569801646925613763961242693866415865197164925328064879157151279901392585611652320295519956129427561621951554185956737270837004283951016705885439366782223251368748440086403840158795810997247399151448395649868230186537647388971022577507823525080632238289591886664064665004431206099047737596708701479360296850526328345810271784675187222092122582670941348347231469679188345923655673730641264076467484033824894966730070457702227544237006452067060967502158791275576813041307514909276025601952787976781734033878124492215846308317439684815233270910294448003481165794262158081889869632971838669059603188391156503879255165757323156979730747496336253058427725863038988633355210344776982505185166105675700622505804912486948778406436643753438607942949414693690074581326144938733609490277888629303397778461168921100103215865748737691305820848367779964057075280390258552500207829864383651680132596331710673784060593166538372705393752800086442817895366042152404281297368313084213212544049501034659373952887649059927816267114875852322829190978768666609806942600241917431781694272111845946723206818197781418334799972367260562570827171209576290519278512077398851539240709038855628106457770119024421219535482264995953442748702651869732346253762823891224798006848313654981871425940290607427904241595450121394183911087115679521244254037428511699263692281320051261826465679625165598867462854448292797131406199991211483872414244025837710343604399480190510221260385365159074269123026086050945026018609928558779296670574036398944225223772673945121643854148415921990060081666657104234962123072174739999706377342636033647859689723855427926594657144952228455838030435499446596331697743816654497350781294691672370522356034293405699372287635607376640971769305669733951060036794915363199422776474360288601902234761169384847591137462358568148593422273700970190525773178730080117067272854936698372088076117643709310120594688203069225581462488134441276252526128031914844240580046334642300009929111567197080201322714281448200877432331383143513338723308022766699307954764715235519759037275191904643007498142326869482178423444142511889838433215872637391338638460586581735744360623742006426498908634710617883943263645354951593558369436007494423122867967934073794872110176457237071464222000660541048280155808274625226070626972902661158837848982433434004273275959189005977022135829137134057464395951596976789583309030633784653442769371469650372328651238388089878289865206422323512683698381499658890398601724013644719204614416245935128060649497399184485503754668098154777614637235442385381290500044411470341721017309134081615517578520447017748834394601951501780299726243661369231333511626410588570811017685965098052048123114977693217699442549070144936511409140354371537278307668939472910497777635249772881510246431287157293322555409578177780349656678667501517587712422278705992738818753205832393132915446723924900819860700077720710187581593773761818728462309378566414882836737143659085616390235866760032022940652404090318488968159182320594833597193026618194938725825275592997879141805453542683278763434910007519991137633539629987966877052774899116292542885357041050702646011685414777550103726670828408024806730944556041831943808290599567777068669996362002288759031947443532518454354627504457647682117371406667954798507681147874480217337964784738079583169787819629408527230725267247637698676390974209308566164908886073582447549544152355535009315210538506982821332060621693178586783660697876781383839261729082406535395148107470022187600625364548315494027621000613695065369313557066693462942872166199075442244886939569814673226422026599097459678868290391678713275709982124916396827990150012407097173988570726256017709813775045484400703681152234979280290368782908479507654041222784752854817860523071967835768596532873670198106302796745589143288687763365638099123612560662248222286424295619441635919218381956287401578503227267126030440840868041790827383109081335865785551117636438934794310220521619940056817214110526676636120994622041852719819338529571535511620738928674874728936813730794617138141777827721893226249038689387557317801563090410393870952946208127707629162585339461880384656559744327984094487444073357528758317364026812025603125499644869230900716027634995859101659423072169801341259654278601548822306011365869347426004013434274870562245834539758690842168886965112944085132383112054006301282618537224467368798644870522293754095957500835044388571446351003697729713661239702981027722573310652899611377121846765685357206664182406715896641272992258221731294698800917405549567651189724369884788809448533342139842048504515768880540289598187674362092917813056955411810061091584875447501549692399572501822514391837431057030845496179001724031400395236903328869691803304426300315020652607915054195607231747870535486016594478300085080777254861184166453316028843053135686762549523993626641690055262083093392739979864221662769403554187075216579310849199167072889230133785902808661029775490001137417860233466778364968010172151557785813503281694126693270573249703226005953515088058689616154494026818597209242026959667108949085302002908440560544978557798943197996466015461743195100372425013413581096878557597684968058295584515615705787575096126446485691305145115613607872978508573065028874184503250446377820065053072163931727765857233652571852548020961124665202261798288596923384894945157848339209154418048872477886383573022031226119064760735656448682681892379063799947805553074052221924563139283235587823330256371373163340585447062730602280645009678044166190101190038247583327801919805082477354831805797217518334621368043899948790896434917203330655380249689457168960061776730516364120634153909470559452306934100922873640855644496785591706602951499104732166663427968160783441346155444273891211291849216043157562675823630836262021266963795521382565922343780610576489210236150425800481155559727076938425698237499451646065128520666806823100318570003756985277057462852970986367759787218993772637184773164749455107393334357088600916212484669018073598410340288735218979200324274183603883377364198537769551379561463310772298854895181717828023878458550103968900358110208309547401535430721010833065520625035678404984447637820380747789794502023799065518080465317899884442300564329828462601699407768474856287527593119557241280178456206616238575130491118631646991145606519256531576791294478418238605268944992157261280890893091991774627893850856917476628443941621594436334568103319017761373070020324215859019736495634683612432659390542135629644997780098149258863760518664310935971178497191631966942351578060621648333239221390351587944858268898783585357705643585996395124560734857844477464361239781803440395192110221858177185550348986398546658722705772781274881845647704557956771420094525012450393186526583892499705921989956814263112505555464006010811873534555919023957381582346293935026342237923793417228254082830513935077261628502606930898573201148095443185552053332691021916853640459936641350349539575456508000651174822336692022465996370871279074724778362848583421654736033236258247165786501736304272278384885716965721838520828640967667574161888135251754383010964002053089804968852614805565192350416220564867213333674092674951549975919367043521263186435765795367955183204511000532557796340791940796496448251898456566511498436426275581877414795893764774774852917012495319036541288647184499917265123027456230856245616837185774107310029870610193067038141753605001402038641976052706915064493523855553784871818838469058260829359773825659031236838513070926155174222582628941968466772549829314104857904932116568020206619298078048148217385090943123088614111024288225610787189034169911817099073268439143575834616644550041416068932479567095738066618258972312493307477909486859065948794157191608338070189508493694912598262969437052718441476880034644773996226502231497730393499418454622268996014349643233018316490716139243934754611633685053940739899471548733841416002843489462248051523659489038748436198642899669259256433717622565901111546532435648300810329914543079982788004039292007295254898306188284447083170682000065985911194202714475526035064793559227949833215027410144353393078733987241323571346003868319324264647814799770969467651178382286273078641813122343445375579709828034443359211602847254339943565753576366576640569908111788314077509271555692483638016441733020647037758304313217294205602610267181841752932096918487313355586604879786132581917605197336594222487794815314927658691536979414605070022809120532763595446588808885890303918219049867733926205443771451884892725975860089896302846270552530934948056514472813384852779707449438033805264598546075281695771388886042921099874792700535303055802699355403234740625516205748601510837857067676435915730320608393400570405932472281132497688560449361061772543837367576213963686584170121835276722869903925752572619087527870265786429235383635921840210665664313475261814966723760304511206998126524749400013880219368369185224645523971024549588175420108504993116902734110654547813803963612581454369225987124185488866929941277445704616863203594162864247316637733611003539720325628988128736740770189922089544323231461114349873245883603653972728055244053557969534515046314480947917103765477032431674017005670509006134138513102867736318380908474456388733481431153877567152006959458622595295082055855614556771421975160426572037146580692820490501519736283955209073572919508312048960448363499414730939063963158828268599977917551351927527786060865299582977816040557180027032289829792144210898551001596356114011012526199820920973051036519816188059389201128775508575929300689074423058530730342349894919447119480761304901127130812895639267794274044889717129263414694697992522230051719618496851107184142060144803671407924520687102595957080490359563419273975587304554815586999594794886352797277103054942904428057993569521422683164364450974589352003335600289648277271165014198685785514450168215466757602545176670639431436756354309131487199475863234352178745423535063056684230186079342780414889518729079186295825416379726802947242914599410497057588908068895473378291928522700186335757350577487682608245423562428142300573452837198368666140717105943110729687554846892295562859232447250449072888599855618188557026721544761597050841444042079352511146962896949093553011833332194043961999437853543252605535109205005615637212132691038695420525109346631476948054835149481546164975116043451599037883791191647345815574228982036726216181926521811734121825050379466080017477420832413466565464614602221948684453279269206198277583567502627567971933748365209976368576510785812119360125889089778457378192184311737161411950408950873227503026078736745096153953204438624212180718051514103937080243913854640696726381267331330090817967965054201009843529109784053253940165723204510791169230195132934518655560678555536695747982750417800604470325766837047004820791563086184363960203944784285959037587833598150275129098847129775275632324299857964166646600367862863847196898782181318697274132336451750070244283791469862299202935636306890679708181880742302924162829155439537196782504570108411695581274423983160747494628458954572918009020017926005312609127053561496384449817713945652846245632972170631601955007497136920420613347156387027455281054134354453498415682970686058619900147091889583690679054990201285232039306141427981499283046923090321802960475949119770347748947808896810631056677016759929431948592980016439065689457651594583377228095721602915819650123190399645403331408745153858322563408931752166172789648452591851369732526084895559229657169088084589892258908370144332413294905764301880474050806613229898361366870044417886076986350458114295551020288410174089228249547815724594747681040803308946297058877681421073496247190454403240934969067659196885080463690646779828554685141361657415774132152443995074990335090475823037353524796711684390561642136435348591880195013375291633982274996131032467028908552430435143173000034985908256278407448270482639325701374902464247071407178203682462610128683221499460265586889651797078448751613259674170473070468719547980186605139993118697841463004319898891025948539194535275639625187435428087300645618593294610447559162509454750461218711748206596154161081465588159761670785074781518253594758637149945190889745388460930648575853951483622918280909118778887609314740092303585180980311292175035976684018420970157574003427977908482253852457032678301818445415395647173917703270835303267523775111242388355009211995576848418401596291980790798570161134845755762630706428411683381754418681107469584271057037816962323154090534385305091504934284350263460638624382592689673562071787047364551566342863977456180167574033413047699224884507544711427335760223786959089688817985918125419039929957792576935456238947255432915158672527524295447254091277719655192862223278985813514528678014783942216003232758221298216761087860251235763067025444023061304232671232688529961502955732134716543205027443998992964835938165271723691181317126082231166647342721686452400605281742849810905841861926530886133628180457817585289486281978077172332612145405564711282517968576457951273033663186426312238265286659745491387843546742785130021864216222475763259314007385792931632259973478342085743585078852857692620898196841930211640443512449373351173105095159158657365402329272549576350262172471083136342615864504797662852177227314572828370596424391884765016928520543623594252402437566227662615387655728657330996874656866620689114656491844895500150364509564299752934327558760959840567850323534117548346287764915048028029115069849174583632013546184716858567195992811667243702929203715882866161629672530548358291307715953361338788747934428831412312071278085110466020606839369103787579495978286215985851737527831088282570664841342775101102618581822270598144703671141014677729446042105450835604314209630476448215414498736442446728623711708580399815867162601329359975905300345721783976247482495428883805277493666935000752653187316646013241838891013096920176875281789891186582740120001554080625326409664819917006087818985104929353288201367739058205848198445268594961199118860039810920679416249300237464932447740099531646910698179361024568698191271171805159909078440446297358934381611123485071969075837517101647187423685810827588223950415324271196677836202830142934587539744923855608331008295559841174342073269120098601286182172457225123608922419228620353655264907542036870928322829734621164688833184443425396963623823543102456953780424640098091842366006310251839627961350427181554543747763099402519288154362857064723440259961085479794201756378349537090900428502155310331926478521868502695472935259446996016104283388325255554105974052323420135024575750289271637000195795340442782217051956635153745585192275806892393240589385610320722492209871962450728072634069175163283201849899442493927189774649944604817687260807529652482563128460544664536853422219141531547072529482555403923192886830653490015380145866150781875623984270387216965218429970071729234938300548568143854438777414849678788097142344925423305062614075770171398137715810269292577410945537861267449784766787769191305492303165213070862919184565957983031115460563917824185623980605162847982437238819923035810619280269151033712684660077204001965135202023050593561544852807638203049445868651568917758680558058602302908915618142456593438258159857824496425465041127988294163226809496914282356207494956204878934764975257156811075338569117370039614057628021951062810182657844333880357128049560743153472833701404262855149535303255019083534467156852582000488250255676867960255316408616665910825593249921459602707007851985429966110113385247910670378384978512664053159427446763825822198375358056663768262857427448181055606540037406219647948635408117581296008763276183958529088604840866928512699572442838501074664384383686630290901133077665057932252972396073919131117227021708200662107587418449197973682822011808104376685931348977820749129691448462868154240895817290789582322089757596528128247268919072675222239357640875571120551360858899188619025702883145837430469125270943854757968318272519006362855746369744417556886350510012262726909295332948471493047399287113813255551737981542838173880663558035083011877319338021119308287919436362765715815758922861187712049740862161520520569017850619622460801671449355582175390764886430272571468700858982909328667626978152144801201376733520673130640272322831409037940382746123733094350930177834068933072801123877946981297851743237083931352496593850031313801870552524648315625211305333382740124744216609596249917199175826666630123471916202332807311641463924313497196273470643061727857361492211056157977546520750521779367855515474309466237521041316272105532357107574686381351870417733941745189847101635169459140405154431808872053925687594548516782781587299809978912051191373974345117172817552918645767508854414419564542725526496369514286611851539937780218221937757562047250605266469476691014143795840370449292524461284263599018704362386127976701832143927786129076150749918276994857930660557232497730742588853590853641715572409597668603589824201000221657258369425603795220989884747959627493328142934187359865953356904776983514711988366702111798470889209919956805076528323110954588322059671539658647597727077543182411681363142830815475409612027101793556213836387231959791210173180154256604900762371934407578174960692857216510666838107198618851011822088046090190274388393465872561860775941269492689611124639719012598407109177023819270262904272230920296925722156927182750363840089173733642599456036217879469515870328410692560123090598449041673737396935950107879735030346710106538479417905656851681513474894817544173829973902924766624104028573324500050005790175122614453526591443493209417760087381028128846956466285363065766808085330941954021692099607539344949314990976520676835218974395494008715565518419637250574084836315025417142521572612529345911443853524026290426137432578213348164820343329520795597883708085085468199180594833578992740169928148768401641619163118379041100734614464404886245967499015857686918373801109002914875788081591276939141256313292059516050830104360533789738803998016962190815246466100061616921886490153678221677558747826518108676800696300023827980388644840602412282427307624204972020708715011420238600185201125106790177879617640964685264204219212934239615315388617975049868992240961188327631983957843281902094153112347793840227990829572795468931268938238042640921766021257250937875652693317644353028148776881812656827746286411969027115609029706621485095598585228362913005587406167887777093126661570564675154426079568703552424734474751452924774331528525011790733072689889026583361737026784602334978872196116813582341851878531207304372900677054119347884188598347123764570879577235722634141739782720094101341414398535114895012602576911543211211600047873284249565975910410578189646903277264253545302414383372892662583347655298990334946675764107747286918840499430936819189516957552669015427934180821842115875561792174386239037718502766106187114215135995417165559942224258946028944850919466698378393789859633050551511128347069878741490075653774322959973896400311441900450427943744803874656316307592240832369598401369234260714365775771721275108933948195724248755619699610200043058624606487411245119487018823173253816752790044745509726013636904874834309181871334251668711789689244097891903876113380014904915627486562020407251815755522767018590741270049446779486868694661537773181556405834273274390170715852767478725971864421967975284306677976789956933425488014911698144786656235116561103639296321469557236020636043126647526294517169034113291725668747887742090960960750816083778430341294296046962843889982777890638552529376433453076761006030666331305192231119425760327913421311201850634802892157021559737453133280696544152349947647841810726552996838223040159642402186691827057946754654759002849448635999895545468012605264281792877034046213249768625563086467950243537920700291887795572520520943212509332909425686122525647377030491050381815858470280013215473259469948138788408171507897801402871575631499301987826426647247854525090941754507826656044778442379347242806242364803191006888821250198408264913104839985491636454703441051971477190206679734088637612265529741981871935807513872070847140095022407637849546311542938263106326759152218887058173110072183727020169538139783861456420081575750479878178606581118492715394351090667082523684482134754346162650270758880298159100441315918578719339211307417833338370165663023539347034966652431364377220228409956570887433429422714701005216303515896010599193121338575082236243662440565094538100183335911020169177525934860970177821818108557553798329869953617976160484872526672056675870806131078810126353926799428073898364894793572689274832081150653062121764907478488859909623744506879403448936675630840562441740487984627515317184850935251370604107249132940645277815687908607677780843584018928498923048670152894335048511397247421041791056977595763762879351595164941255837274293918200536647528196952838597926055001469706916681255826907782164763752734826528190464055420323665101036371392316385582946812090815081315030505022954373719029637623366661492770225098315975828919277764220384028326731381100487579818119678744653050034174369121980988730096628710656980992745153466841062399547731407424431062561990015222842161036822083254756555374762712277080952658485736253743703595640301987500779105548665942272391257739034652129534346047227650995718972019231488180233949380207335188132623869538182550034269598053563541782854321543243583623178536372634498577886611156107411347123183752173169662609232016487109620372937642787862877316894366743824175312253622141653241015206188325491546175340194833341619327970906414534252309387211613714118247017935709966498007016051905878498688129647566801524394571433414568319095976210212848219525788279414649762504868222054859314829665262185566046386150271242088112809958360693287758057800118634403110491316971545400372968699053884133742626162345537667036309934362204230252756482635385781432687743767415649439354448480370780409045424826261143871421638879676966522384827200555736188337348408758055199037079156585685536200843607597630551595904487615159933981637594679225439253641292111603143772666406083380622740484190072229981053304687643709701455829264881056680874393687654905260320456202899723876101462935674865217578712166312519727219159491784493251699630631856472438803920580988866590282102326391652159996957998806164565655439906043776204342412056894539850105436691314625934081262696447512216470605779418402324797523793191626375048314925018346443696896495324312861277522530028167368682493023440725069866073438374876418836749686687733233458343170655505593253961717086655399227835022259833868368422781441062974858318337671810784259530615776572378108954399347210767032833213369310486920682322345772522141279022726865415303781355213197649410171282792660352201977451936510740738553992496356437453624455634429575808871693029388913449642789281313740922762817634717464062063363356612757143778388854250864900096515553652125039712932671720663202953591821286812166398418140332435478494582772827170505853777619519498223445672084136339074259531599052639662653745647100407456903478811386726875248137377640147578760475676463076745288440496435709749685688357512449110204793461727393262885919907311917977644153900082098245293546349989317324602986637941298470371608828491832899397776340392194770631646173637151670618116635575693682039910725325437774532906851087375932157103465230278169999774354912278737916871033768344936485284913365170476817853092745043522554619960658067994636943631477175648058845947270798676371504610409124562674925812642934684061225601237309996572040107240458266876427960285893199818984336844251332486000300444611082892546931841266200834230745592480800009968377870057188107923890559202667486499637198547780285076903625728559622065149741476093092973446422268709215120805341121127941962498810441224559447961858754087988150148579650390264548813653996452277754259642585770051262970033586548006851857535249045596200843918455263584509438483141390447579958696740496109026146382666215373338471459262019225950434918930800009634320746070174706691282158810053443452590198850111943847239535011714335381359132897071622306355111876456702449053094628534476945179547165175324208892538225877709996487609483425459366810068851135026548741076782214020948395320782620598133149892923132166791100415260573864543900360394454879421156850261747645677619857012451716959143403223773407384176613320147851937483009063475796326779450160970649363980427145610704497003626349617381005140026436895705877283726845699399561267658134533567131259983210166643726415408707696845684571075730375593019128979492785339977232613761662511954579206571236478680533414235608925942670338941132228130384140204843327924610178680418950882708766025476944950819418233844817627145527660083225903987889490678921123251208225294798345953842837779461273519343302618658452993486631029878763825467247654286673147451166521269813999913973680313871230449993162290886497462911695458007602539890168227175216126939278229866033081773760531932263271024948505240997487205107364013877917403100848076965082409228849497162616049885298154074235605840253178235870685866214580214326549850080991995492949941512664518849216172252812430895109012969201464184859925234937529965070354297366984422198053459080393236520699887523524140829236797939810106859170551932592430086441501640437092169001541965870244769805663893286829822543436282712934434875271607943461323279457936896023646853404196754450719481575354433447855495623573433787957996957349974516517037684284630858555921889498078566931621650997786083743314152291970889296991425160540777520410989414141302284409561351326431659408079396770966070094236051556586529819557816872163011021784640131438950617134924808123524563782044775435160656327119432575067317231573184696465405660352903854288474966933061751958959879905320494002435814121099589492757242029150513154518997633710542891469360104948206266221921469411338974201761745198435480379808969984834372677702312244226751688348125222305244852150976134168239765068937646972756250747177823171791457280297805088052681609330339695697387151072859734634148042035029336252409849371828597749112449344113418125726281938225116357598575501949007101888555397922125510364953882612439584963036315949887429111294199342289441164490207141628316649713239954274415559856630676181507910041388964686120926336169466961627700212551191100794913388042455272087385668642159755542236085037238874618781284882292418672173390911572879145482491014941669408636280928422609507127515296119745861183000980031257110967531429646351514548911095062379280437635329092351637490073435834943569500499260950024575009731411576540375116461280599083271305451647427575106681742557648649459654881930517390485431159935462109542521557194043689118507581810821883060960314055842332358496325469842697033141479494409195192583123179132564592723278986372903807756251070737966620225796609725266338944952611119470012368171904638013681136724386327428054448574834987195998243035281276230164407684901032238195586631416021836706430524640402927901208865820974000665346805190506510256280050788005591310396920042140795578167326763788145553997060847489026495819343570106066243964352665885685269136726528962062447266864671411513308636330992801348511895049932182644522330310954032350313316232806740831177143614753134430731537839171832221028265689749627374146604884478987877118986824181312845615887207116548109021457401802699188516270882157119962611507526206756793779814342735991380677380446042389404796974136573600976234903360303516403784621424834781470127651176535714421025873799581721533347946462851179868680608065300865750844657365319476899404391279588736158159332453584983451115106946078020704588194161807337804217569705515609654673952490195697886958159376664346866475693724293913335924841708017873369583835763187418338093481979428626686204556657799516043987664098025910784769192399412685783946644204246493703209987315203608923401881396642152474838976208395159485608472515844804108428753332282823747072167276140435840131063845410378082493050488754757385636757879380432810475429156673476786556890018491933787439639702401656790347044727136779672646198462504214252304936186684724157080062971152628859827657757810567255219698332440872524240841568112804369551502019249881845193046057511238719780545719501124899311037563317230058596822310080351733627230026270238223867151523338803643155661667986761173108912513368084530885422009812850398870654200916741938272595850460342876846240919711220541871075569807302368264501400040111913196859100024951008519117858090406665151359296107917047085041904176296332842944736807685385804084013590053519013463463272786921995233187492731854043362470452202924492130951102406901542201611377935515038279827279614355339391849976287361966460492591671341512898837744082631365997863941111961407574496816427717409317441239388819340287248061962221215800929008034161581127508514367038545534738732622564308511183389785349527790223228887981139816303625906262763017258551336256457182276501684373325147220351961115428621056781988116752642375998659673889098604997820429347370031471775427666090720541187053449322080152293935940198921826906334900109906047433024404264140773376269220202788390825737644706297170366418220821864512665482098526059942190453927003062508633509735934268094582167132600478566812133243302067694394080369033445619928832278557102655495730053425004823693184208063940119730413371637746331250461560557133654849731095314745233719322435206605867628104687185813370015521711209955344914188679101277646985724860287619952402570320417291038532904211408275562821660192453088049989354601277013177499738432916136076860724568800234760915200181347511376477791881118189547462843762678010476817384362588257800482321325179032429137239610138413542962579886678604593882844511039048837266159176959715768391216051780627460386741515123412681148598318180358429231819485825778806577113458705289538098993539885353778439352802253157366928714530988008288270929259120377480552034690967651951544890208591909109088401704967387029999938184575049845059394237887448019198175953911499772607048735396100288869323235360922382429001197245861803101265239179029678541096010681410251399167857922359595456318946432415289422092034861856404914123731267648930021193108064736613731584047962660038302412204335427147690491854243215915064750263360218729574167340996100219949891417927604691778177243174354684550432628567852689128566584303705348192933367984433655506034793815746731557892479430395473918154774787239144429393240152527467905859738687974313347135301164910935306101458903621397778033017710007488527399419759742356298132465909510141679735003128817788998072021898814980845540288193642745956177353266739482410453761396221684492883808793114733029512629530208810247124488342198258964213666471314633528534566371771774708198991587589196605959971605058128508517845449699332098409116887372751101226691490267505688013404309530679256363769723822773192253706973113110622068449600220245858980917592216801012771696485139512998465301028686947096000355332417924920833825768877175657702407798180598610563968220591600623407260808459214035746199637321700567414549248803671308336380922011810543238270794037869188972637298349675088963661564820798362470811296807266396958603226224154900015134501331512673735406923232886846926393331464439863145338579332103955642614707297721160786870089916131358300713127170456252143474560420552357802803505201791910743979131347203334392687772083867195833026768194048610352928486441580355083756011461333589750154928037968689444925947440072152942000769932440702475321015751360854957457527065078036026993833098086081390399766012660272012702123566914987759003172314754292191353816626996665337194601973257348783488204159916404206002813254348587890472329473624191471302462527947744935532465309908131491276730099040622995875514797089470119865936680031574889152916257708829077279639071923947734399321624640066127636059914243475362213856418090760917531001946195729299445706954568739593087497038026623984491173983492963272986076069306630485449380878301399359771058998721152938998801183469515740167943410568786797221496823107122998294487372221691798276056439384928684805878164713356585577862287754626613100228535051863083682394928076470870433482080865551205895433838487052828151883093916106059403494137566837218706903073327127729416822745300130332771541312715800928321947376410383925231127060107275085947420416285625438596019686474786152539677481660239122785157560102220637984324312697874464597896902466232169946264018831804745746629725613264528466587353208630682332652668616844491796302623993849878605199587598472473273500568343296268756447695259634450611659621232113290999718854333326596701998939637222827002752416415877448248428455099276090485628332720601997131225440838350982950574046520873610187896535120445153703186549233039829024161822156298379562103187544842196814932071147132251780079922736057988456472973776262286095673961245718546374827351078018883974211421774836272934726643104058811756347008782428843174511185589492067180501458853217813762511450528576415234081068710614771007157384883914935004438721553415085243859278364265214313934726211675448931137099797692178154834065006947509184011332599396655612307123491133862415991044914078137694798345895262769107921356088257809070706337361334426287474566251987778236495260050259604973107843532343216771254013202674714897057704125066990981014421066295808949649596639248434144379166287226075784682015632619762230092308314442141824567286030936179814932515304563645035452015311124272222322575576167560736872145518845360442764039431137641805844750205422969484066634899920389418102238607932512787434586005853818812171277385473918057239591209270109225840094556954617234872235038022877756218815543836820495163108467264508553327328527198855833769954358405701803595988198617525631599689237090395020168541688993406702531811878769554709106028123724937749953713222038128551312360640843096462948291554329039367087540286173007652198120403147895713445829683359322864020598746309541067081511663021537333089927129850943191939092192172056699101061363868369866296004856921572246090759863059983361493932350313204943724224300070528766833553412032460663704206338020448968052997865969065252922027215204968235384200512355944719457483105343043410767839966383870300078667753667696093979069567506554258114387617307852724324633309346851748335449411057007929508729424429908724607179231997662572749146363410674809289430473544051213307655488324094059175992441701223171544010654764003283807477552766108921470510997616442530453144585809946823225890648956473376078392600783409935587368331837219380934532771441308921300701107164446301934941112291226968172048561134684345263798122216963948831173061275775976270006125641913367302605000259689398678154467954485297653285096573089117487612152499545775348572227649565056082783486999382401093313101717747011792653002356825442001355552385095848430580795886811924722735260308124566681210682947016576169417425950228268318092902212925955629779348783983165629890669004429326145102638670960512453106601611123303056336045951937218175288514958084352999659293153213057552872209027437427800766655558894314442771030706626677307471267319965754519692048298340922411838093623087913951450808686290938722940122325724312906000444076043216451184923620472801453664367814945185850422375116209822171322991722427977180839968082416136095420095903406097162863640379861555019280381320032162828458862746785439816345254426751429964953989679114933897790915607928463337887078055426700660966838463523770560429400980195575903864921156676406909054840675048245900323461780076003775004187605027854954456360509887533205826684885016027756319985737119107944345656477470253182868136999703024899992369542636392616561838376789722313328612702931681979963163653825158795874906302836969834762256116785365978909344294613271446888650842976776239673552354840720869195386833699818219610337993410572304230792450352903183832236060781842533488485426789784773126885822887067162246198423136756247132076873715074666647588373849380051115856037634161814980958203107339943889465019715778924890055598476831048227606375801221340395748516049820877433454244819841424990019822101245251032164061998086705052029070153874679953846730051661784455527871377436147578560094709607898638483961517011414884252460882297996356067710529169732640589993183934815625950952759556647103499048213095828848484686009763820224093189054065498160944654417557185676660566960929667739181704917041082568059784942995072452791593197761634680969844457115151099730069818579530849531409456748126689152526571756166907608542142610222560623973421674329090077875207186286920437723617214998966990486439704159241400774028727712499678215538821995470268630266662306308332706798971619209286117725736500075917833885769320616577178991878817474535885394438147064594682117202166851831466554186007396951400591122047765235802370705782497196178568356354805613887273716259879293019729415185756399749837311652734122406187292248044734140249514558188032467445822490283272557799915988271433132122004590113704997724710250255840315695263078981456270713698298915523657115917374600892584609038830486280942608720647108700820172874610038058302422356656890595732213909943656121326345050276925294116190677993547312206796716693002434051010240351722881539535831569335336393817431001329346385719404737485565299836402831269618772273755171611532487935556542441607192544199690524815650506893791875359756038739723892383104843644213565719439118941033201957698034814284692259087204182463295010100751412373741973857130346294379673578183234973219569183273888977293428000882649756121184411736941458155935334095042940847067088115193500638227508977682731353966235284428860495655651011382940498118675172870051742024476741551930039645746781107268939890864828616417024164969519082978375031135466396607691277577828916451830885938530005757883022936333278192803019016563880963873498817488947716687759287796678152136527562992619061438348488680919098021711629157173109794296534886066139945640577513522418292663981951139216715708322110550914377335202971371578223069553040958361642741479986741217875588268918033448441422551360761316907622614775950786665433814215000265126060521595412156921200528068792998937542438123776628823274959600144602671585852665817714603188303689871742689960210454166018710018863387948606148039924379339234977714425971588277865042835521698113582531199786831436888808610228879247716394581982375046332684897700097598308963645193329460765618964874814498162320220402213138118998538542369736644335809533990423469041307111359711791160333184995531267869959859899733555108555057244169467462661150563833819286876133289080788737884589115252683992475399524335479257390224675123234278769292359085066882952707447830207548008519926904453143821840392111851579485787147231060848567998381995475296081516371681968936828032807044270544771925927672931509890208520988314192199726361361464808009347207425991591917572634015927600384565544254502278371480762799195264898901429493118865054851239652976926908574748184294001179533162971115323113649482602822052074857631848320317569656785340431388326987032797870722781368139447184432060915131233247818380340123208367712756056687369663123226150105981759385245718772655857627177177716734666197917260180087045040034364460231365367267133865474648104669196634652639351595023613339873169881332888157503749688632236042373752682758571502468018039897036739308530256659763009542565842819304488356449800155031215345315758969749596057335148954642211844560058031206213858622349404358036378671252407342872045708398670935485278851798835164849979868062780932298248857625416629360493458332175959852367089545419421097832258313245415794492798379455001321592133073381834646879909169783114300617668808870183698530227489746174307858587661213553914693039471074611877947439096068883870658889788645022276844824409600403143678418466738449815472415019759102255797215527439402467609952713111812889451486563719984958990048216301281396353182826297680952742080739315945116876432353611104885006983656349060880286707397322619207586875353926845810090865541295003371696303152974187439683488993502002385285045241157294780886901084603345673769851745431428440741334768770531455256250558016916906639361158540876349324016656582066427225854294312974785076296778547870676507765636122771523756842439031783234885319018796668913833342092850983759746723148669010885207828449782555530021951840583697930108329315571482227116372435056927800588118827156998833962884085523882899672697420515464264560531542831596196048739174312648805101846736302134080760133134137683867930052474649814806455001855699808439186537097012172946245648665465035071128668568589527214996052475824548194092480092272048547947497972835865085664172489037624670726621068372217762525498151590016227591089225279911167396559439865151939510877706217583986515866610987310265084934434922450754775861801644585705190898369311512061364930082545736032281627139466790216034871499078375800941068740971019800857573397239741854040542962482403027477146523097743569639505508199164787582973768883917165413717432673508283998982188256559264094467205216645163531918322898845482026307267624903681805626288882822758628316232582896880753345774644103016196907427640849843690533471320073972979465818660414517428814763783821299136816001501095178113887817716434307914228320589585467658675351171371416398128603253395243590234098654096350563356776685512121554577566553787223647466203175884116924516493133652225626376322625880776271165000958324420694366883913159402532890245486001099828747316793199539125407229625375174719855465724538940982975126207691841767235483284093731519275502149832704995791233611283263391932562245831777237162429800524166300624465914702080536695585015480751054800879605645408194844537513496705066466054176647754399747021062590416325241957820096926157651910089262033967160756594505017244007373731423478605262176421539096137025373242462525796157935964964942544091687519478708661136095090857280298324262619371110998113821699249083780423209650516199770578918643996292609286521230312857081186726492183502943132642296322573008794670155932654430072329068220518767835355309600925671873566380097039964495664175639367583979219643948861224726375006590052579654091810430667964149895516144135493508365654603546924156074645074909964478326334475191631552385111695118778180090230253487258797029011082703842671645846137536301635977320647861153398545245424821013936752797471555806771448857276956284973951484683174897624282423572543397702411054601092807273064939639939169328564167703611382609518830761098931009086304798465596311998488198569833031090485814954321893885655466682012548551411901377824035976817956506755693103134319592017304569470032848616806737788780960693073145110024844832693760564462471436398018782669010987177349402179035759385602704665082304764879359454005340825771450475945845360736303468024742606509447838180130524724372792108527550695817711108352031258610422108494651905822998116154187629999267125972024627204036306188126876610896654530463645435606086266664368830393972127716318574241396496504850369610910731143514342796805525440345893613265500799159157257504963156120463507894411352156250614765020861414555013970702644126537113527427450177596098419647088011103692163215471675895453113483049199144478435634372413919292873296152108632950864144563997979711681687608526333210760590730990997771065866809108652777609972515161054001583093051222263683914157887870845950664163286020986641166037782328670897746099339231229712132480554721860364790219476765423948563927247566855225325901198354057378521221306954699392731500778238135685045440721640131673337517889119698289996834657781074052533354988738125187148457762926662102597034241001057344727366467177721730217138794423462666616366940257163006751800178435785768000970261385650834601829527849960360421938093321307089476890418330656039139144650439262712745819036826369816615800209352194713265632636499490289076666318326713194851446018520454218983617734912473331149833582702659204760975437274546654304332454759706177338380285623725729264444421625181868002369464774864771163369558460751113182228517369536147550462700835807801819777501063585656898984342379553441526925280775758983196999542002140567885975458206271884402155407938252922835434722680411957696066329382352493382312668356268454020784987851084669549216717952502976371597259444440501049954931369684226091645241322390213402736127035706970703645366070087901145776626119688469152953642391967180657518828949297975579827193795358803164600771036342431155620243714572621406423687873230768137044685594027979887556468243560523252330670736800122154684544581483548205194135821621201606564670699689125278433748289546386857058191639794409410370745494323325785154872803577927336921779855012552578928231818912804122074905979584571102469350098467013149164122911621841215924931312342385373802474142771610489940499547071670695921380828908722425418759185912399281737834626301573611302415084091204973385409192122902678380760495212012436893857309726949396413054646322556910070456776032301592866200121429969360796401681272500572178045143547553230771691066535840248615919554746946761810584699084781143011825438202569771130602913132536672516837541411225782951350198935416782263190271050530633800004625140371683586457729176122565801544772925844859095113828114406957822997189499752601609917594566066577922351350141133261305592429188733646420591308551658082006782035518845569586222067283550423072368937463682913406864181420974422383144396253056842860006425110407510431326365242908159758596061052719445947711656782830155132187687270549967225835193936713018848435711098315027173847155297299124677149821716874797847388612002265590019271872494672656806500214369149663200079311409033595387266341025124872228569891915271483269740383794494952126765877970540531816984666470100298398335422063595385286993778818045338889731897125287034318800580977112895723942478049218642734561624808963154942669318427683973758629390258377919589803974324200681047934364394974191134330394400332888112076283897206219025181321577269750889495450736300517066217511312579545849845992491391287449800299806290162801865568389876722339902709981487290609717122096832601170570433026066554800955031558543506919549264779347235643329939400451743908832489954117919276124855371373982708588201402153593014111665653447505586360421319613545515271438834817925446358340732714119218808775083790258500957240526176554869822382180729923032759906454030232927446759221053276312983212556074082646886280042003470314816517134983797154543114372172888208963812574985460132042029613380941983075892782627669594593399345231300731105000765774511637339417623301094634565371464464921755100877164538793006824403125270419478805841942156368745220998760056953885658417166855114272955665828960974341293440304929175561691946356238818726902698581341452589659798093190934385586443713649140127640738728153900469681420277034094680726086816859173744103665052314759368779322908421642467808581285517590924952314761921272351258419070649133829429506162721932282769222689828241125325496123428822280129379417641585760444194034329702464866202557207722627114693193179095852578970556465843296775813940597623903627977370709776247286952696796932213795645736895739233172992044490798823571321243833587823773343917770264693896440965026633351519819310556560533014710536113838648186521664562469467392325819574316445749498849171370683099762002876385154891035105057242790896743862777718573328597097166178878259127633577519929695116928614497854068633528065535167429697859690406507148953147032561648479783373010124046419474705348725062087113160546854853625736394788197389286736358890906538329602658438747449123382338447467293964856483058647441946590800969538707301377438630845180394619626077678472266817685928075760866187747055714885488636803634741100558580796307824638940873826144854128099855489518795818384946076680942624541202667680928759966419240220940909010030913285653259965200754860142110210098924960442143725502311783558947095087588860650663357721767899742331149683225103687215478716258954471220595545648334210251161993711178734787192694836459711241829258817729112942662271231650989718399513610214971136768864530290283650452065190676873793691513396971634651021448249272694790758414301912357824810310067005711012628912331292860025113926733280455355412165246118420717759507635534047687208034992695690381833776994061696150083753637380570534289344906788785236737867061881113134818769654173690572485663167567926992303572851284391124348864258813993508754915669950236844424238950073458395221880424896246062082227799584909197237319584754547264841442077948707213497301713620728893548796825968753907336626429771349621557458200409801366491562549013480415372240203674598465387737494263442884187210302153031027293965751116119337527926906429618653931040685116912485806094857642538901285868151670939289137535944754260519361734212796558066256001413610290181461138233912022098612258536824039398961229990880382539370839398442172138059400239184315949573176520931428516877445179197995067228753969673142092661914756809026886835219372701696796669450386344504298044877004064351671601125007156792929144053025017862070991124621242252880285176609084498760352307732097168341983445721688669558805209308225840133166439020012872144110515767708459367388583440263882897870059654070955520164817912441313157212346457818996413233465967061465764898346500542046217714681318195625631877804812873688767385035818532377772970817023052964729562306851015998080606565400613407045250253138913269741071981308126341716231118704610550132349580475432986157416352024892854188347543261085187545993590406163743587711113818383192997198864206129828360913350351723993293622633822194368492338105571533328005334939067534353700015915868978082030879102383742620665499781750961451121502277867279836539466881592636762684674655047312781220160406930460416812588506070030556387311939193644376121558296169708293502530891631803404373406456038890200999556721553356899939153105696063529357895431461843151767947487987595973941275037710619754400565516368184692649785479966097801232018344649156155937539356991127642565460566312608179119798485625337470030604029836942208196855718131912307821458414563152985032267992134144581459648819010094182941888900110987663984715374129744961549305842274795251973333677476074135617470872422334655525568853160094209928825180423240763701602167845067042209719668224153791133483316453103469544538205706592600619089192456098307467724314642774420438172691495378860708920288159511095174309521510542315987754833485601198263555639364151176103269289345707809676920901380838411007058630153678014304686568152479035639076771616229080653549786598818539020681490207940405547464191092287455298995398961130782476798771588743468119598907717201336998510120350537073440550087943016621604558523704097782317192799160982558360093316837907560494639297917514373369110958602728464501590200662340106040938403172587968259170079500181315846231563453068542474920401509812488529393913499725468698890851428095353732192579191505143410891530666989749964160104372071200442487120833034478050586132042415361649965204815774838216816215185505634173630090426791273205316552245123651269311958632286971954747920286503328218434410128086995265256608599119622170577398124653901199639689589917883302715605772282825846349032913513226917702324750821292746422551289901846685952419863302335681875716828896849770970478342879548092214417456057595306212137814555625017730673622882022851839370114414257996118663554132976035196972863896058341131600097520775736197242338554294116249196080376208793269431592458560803183014040310230403993962858497157561849186325959895082796975760215110962072272009428109322116684307632060128560263843275663772060029861387291586244070257076836664892340539973052271210979358058687240753686221965885695003575254901126813337845936213544559017539007246678696524699016527182856139833170871159261682982891467340942572491260311093324104123246975603529430008035545804540210493491956578202605569823627726463791209587216775916671975233251162191769931971934118816737804305535324782923771849579293218386273205792896804675358794593234017243666763348643933008252921352012644297048578382408040285040533310524759471366664068984702123330934887887397825980571041079547212237459996862940010892119904076110753140720413911942151597868965061121284486712501207695859282023108466860363313937951771546095671893608478445672868078283299099861003155772701549897002388819523938557994436102838956955034303306537593843162631633143590499560755405261558956012404952930746710217321520233800836791621157832091623609163909601152229276276627714410617490980824408519669825867130166804662032574003408203119487775284712556458359795027835909878251518733817716470280036541452279481050884398887438461260183551237408157284125842670009876864404580191181301536972912615747466848398554360129245682700394292440962899148060908370187563661315271492974074203745493212504119550754102707739673465997988310148916804549007530251296225525350648589799740824610385443389803610209985061920006437618087027419975494050331087371622102437919975789944691375361028482683863250524729654940276022986086109562728936023544792376734108282212349205834284487090783970609519118924948306703181536190878519014640590194348174379791333963587766876411611767918809348996745854518608596832180473468036726079445661011836790402777896852727611729240583409164469927943183946317966880001865883779407086558933690404037485178520668042648279203080999799611046999658279726028478398637461864023098518070528859139197013147749552508809767407782000085510297855254606334576792964447644942245071121317045498975385142681832754236214700261095422121757649826742381994020037821245395864623515733099828584160828450399876971984668114679090773553536365205030042994198864435547868680414632186763598607142351912365847623639965735078106073815261247638193648334233111196475558722960507849660430853162481009515445050875560261735714625587883560882750348956928145525341669517864289264705903722255852120727059615627352011990660143323193284039262381447853398154368152402743450302711629230224125370741650524241339316908228489342523672093905320031706308206232225374598952668555456928705702116849838159842716681444033481086302654491847284434772701262591500077211530425310064529033953001312431366506422636683459964030775337038631554039722259946448331338029938084711904621220311450317183536547535764180000943497313019860897910103739237724991122799575905911803993912605763207975756230946917976072540772715870609368883234479784883564038726857220937975515025553847668572267588578684310085812878353090676466983931761564903656409771034850461167390640245011811412467522917782208433634891773236957383261481515450903805201682432304363963337320793713306809925634884174712494275700500439384444120535865219439229473413600949801581255392469464775096771702225882940431914124703269385789003498024851423395170539311252618241482577493945649979644489567181014123861326544538574860120734299442525049204472664933481665719294955581731461171440795025002334988464308514992069962473080497418479892178882475428202377061684143648408259396383285944017726984761440162437965595493961135730950719741613775711514625349981465411156833764816703623866622062852072757178445061780328859348711892549184132639518374532897508728515373943576208814751740453851479934189833650536424729919958339585005537242024222493501092166269483029908682841515252985714735718528769474034064278420750369311886048942497092305093423883481611686091058953365305275904960899773589076340845556133326924955985180325521611206977561459780097869429267069724975653876262642994595497125397393559084817655084227098012014747261760511338898805143077266666943305320893063963146885695397262887347744976937496956061473782258133843626178867422889011784576522883532849602400842192806045932791279198434515539504052860347285752823899174253331469524554996021859111865412808359221528479889810939891732565533333047943920903686368368976048658318159010801671653526833588803496373069654298228272357152919110553309598721030611556137561970015933561301702111346528456135512476532568325866991490880241202849874202746008768104214384018357224839135140372853949826366865492987625172737980140450517894353300976887762621764987599340785484969390461162285700964826656778243357767163630884927558379883286439655081601022871928024544438233139283070491328981132399687186538526179710849712583335845716038346735076748816604399139170815546084759244016535468820735632113281678132454266033930484611525793076123745556084346768627855694367516465213070159834226769896272099227495562609392757236962359088823249528630713861643355488650658747203765270040893108860786190126370480995392248989944104159165709986361934389046231563082729149087729671977006004788482626668565642888420039063223616163965400645610645765692289455170588730488913996675411893142911338365644667682577641101297864992464723896233168676396970868170820375203404631494389733551109765584162539907284818110282218776486877726755450796139338297137796726841679838095617190213521859967583119978181740415262731708634085574612992414357562120951375143671750837628236883467135701653030443891463745463139660226606618109753543015275330263496865647134441896071257717144384393041597108871109566661079379375966704764733401967921005658722019591694535007176462708847157233822161224311419741471976840399997615238454116412413143488912450352813407013827644781614671425188728013876053688106821109277501517529551437835685449465851708742892078976640020155153050915779641846407701973901234824171841186160542048246008970039703103222824350052587191280855420517448863768857023208284574312286629169918669141293286376659633139781727942132170964775991507883382567974780605150498809973367125156397047144441749822423143874803460560967513583532192674413128817447349861235081661308258984750876387153891003194059502955970589107505002687846339415789392545014438106305994638640588394430177962880856993238793598847699285688829263190754708628495902612661414359442087097866770058149350246014763194733224362026485440540035413288587245751088355969503682408997744057454037989282890407043607763027077411900335675248354976831711299725422016389465094583622520854001470766767055959288112522632488074976151055623193169744387570652748822280109810193803032790989469456111674191045571340454040174727002193706455469956444263471318337396005278621207362755722013712303896936093144723713586632933819013868315966885637347599708193458692906072157337351201813037308648319952957560310080600589873512156187075620159776197768910452728726525462427993211203100502358884689099908832041367791185804630994558572230025417648214981402417945394581358854090236730821349450686944547721489337995531379295913119986583060743313114818718270886283702886729275109692524340791089439002236582251803685336674985422711630729370659693807710992068005564163207066345500762892339511225927324711719083241060125943118910133619962415338758847826248583315402773661920702717983073526137361054505419393364240051775177696838658293168183893453690736549507762561830648450623466587461997319740972206695152869891846093047418738337453954376073822379320436472021342126459848475534163631529861016109427127517580900066204237771464116161081725178678770834631662267845590332053936561660525238405518855755984395964400646239557840886152654212868455485299011263282642605260017397640031787572367213023873510227184834201333116896747620299095187863591255628493695825483525489125458639015784362484494210780685458851953140585238323827597852202718185406118140562080374104310695347225200146458584877412005868203855372303262352220741402215090619628271211506909651121352198452808655710524300302500437399271593596880319072862906267064856517585608818997137376135807582743184441910771743168908075196790240536342655274722405794819011233781325689522022905453938719267830446882651035178394967796788803330653568268182062544260984515145699398596447114526146261607168216803914409523599249438600231206272134410693085351614758713136450265951023777037511489587677065257013405153066788365371793866030822542054805006405634886853797449478249568716912497943355341118726037805360180112029015634935022753821063510795597529830149712246598831076250407804790048018191591807343385325618843781469954421063710404390402082587230339562433776567255308387330518526376635011246093624428084474343260521459824231901410697192748980711176575250281607816568729281186111669170054397909321439043934625770316153587439268505480834850026511454046688414595715702566241041705848590589642823442875840975298681481865639925305269725276914074581127446919071191206128154984725983904523596360139577736233423857149363653200301977242541601461849313126894863037608066366035040469341879811847839031657415497258405000380321131431455503018320140331607901578176007240023120412703721748738643459326581141986620694989401886509290881315604432152582542031468576639554988042547257585425884825902003265235742330144317590493939497483022731747261986445897398739049530069584017323579647935027501709153413531605024490466250370980866550263909176422054033880438184525304200075085128557549966002485176549600335590254568973108554188389457293146707964407283882843565770124434010576102537467674066786542359392987697844138971900852529839865788097564829755459481031631998818769333494618846168885349141206965820205790604876009928201647064322872059500367380493852745596021907808797471335429492064381623699890792990995240904986330453420682505191303995543023716445942862469650750740142117284009338871063743337939336440331703470655376272456110978336377081780811198784195392705090380390318719959562040041941515800808821367809584649115389555790117900669061975548080989016786377370404957773276173897417611052735231169943304634512881092024863167465280133792207992462747172539524116144861399530522721082702133395565061947329216680942783599419923621766033109451108968280204581811335810719322184233668670866402676325286653148198965287812155598370921471599877563845982927429882712926583805775034443428236026662497318543983124305980360775479379558579283797477636843470336045831752164275042508241815164507280624370337561880710493358130034840118203436980246116406969458493410693627061345526765385679715798471987190225438079625894414069545078065417430871025572863334616393614561538777072468574387173715001472177800625308468264101990371506190150769765445484410824668298386475362573740009606769155499659071784020349885364829967645865310204775320722368703758884733378679245294800273281954214041272497804844463726827505292658810987874100641999650277727229858274881407344548822806126181490596993149123287582255598658649854997090151654104294202306455805211267433247945101933102389751149093142663412415296007450968694523339630537277769608834074289523068918103478682688789846588283144905684231817748578686991548918567444193691480298162630019678444862884444878594953405349969760158161009799062365616538616007007947290054797244760656799641730690182683492311988505754939494698268711235322728755825082738992186603650024820906763313643529519201393772621064184459797788705192693156890538818423640377315562529034784077253636546336642712596937259097179048403044732739734870626717216174573874970345488392496785605133134767322100965284730509920526195019138339359692878094538578661632839582786407744883746696733879033965828798205965836346762499718750643405110002017684099040842190247276760946147124480279407196190082890883734181322694589699999313675989650826033688747757035545246240349397728647631787169068801183612250821557277040198377733148622609379361401268375583988768361047643061197464008296092894242765939215867656327990263886318219755229817201362551522245566784279159753883612101714570762035254313279813796057770929288148350974510912839880029669433151988644575439955229104597866426270724842950989009140906000578560361736614606910113792921313163150013111288100726780890561787471918531825448653140969164367089174824859141033616606344744178258748959011892812456959107812353902454688397885842365529144677716591068960738657834564078630760151731702553740814112927997908351954961699568032409897691568365165598441144131459186649384261542595465398883679706877026868708211845091130991479681021080823980616677784848912572339546188482472896740297967993758454826254211989519980077503450480701685117873470410863067125771208128379424470637735020151653054919452038335785383023148701675188371204067846089395257518324520954986439133074979503136813328993005385160080236155242465032374147615344107519200987532314771776537507242320121658088455513427446107437540673090775531353729583535436221885853594419464450325944077087885427635335491027668974857089928774330097633495310943825524123443438450495297353297137878539791651996744376213964481892921161264943708136732364794583949841522729023040577265164920672105621717673270945828646802138955489220022657526470882037718103813713026830282239556692184013464223275243369764696756266997632392314805779057263079464854301006950947409105994333660147331017186724932191930929530671583969288381848915308680213405575731691353612656098730959414949162715222879597043425746635024985159207158549099475482067574860174065385330833488251002441413172702597309354902839994861831292574238151430290060445374834308819636539762749527152299321960203896321719884224089770601044189201817401392850912631146087919996969665637122882331871584929175464427580842163043438162670872154101462986463343891811612858532445878000984356432280719570292874726236327127711211788429971292445171828631640062789865227495777508709717602650793273034169997170549461924690070659347367872334755664227439669906946625191169147517152432632060199897607662073328071033618656490063384929712585796708230839535839644643123781856107287345538069562895689874151211745665929867951125956214643279869713348982074015252542438353366478653017696901880706862565999661127068999962354420200407219228036884106586611836321835515652701941263660799659001708313714441783191232441754780795120248459925764374831213579164648716583654530938877143868076607644524736046764950893006475235322835324158520091144271971574952322451717474745277099821638381160657159828453668369294554812389032018966588805098406869473685737754507769105382476838486702129643773015456758199995582243504781236442963711929141062156565733595347567863261783581557367028179340051657113110468491872757589200032273628924969647577619760133394947624748233189421513622271138895698933318762177624183254627572357164238874379385123281304399836726253707488647819882396487870925596076944015178139976623268948189479097290930325210287475827142402958463900542665690571911288001955544316955098469566008902118318745449539039493856852672716438561067542506425748814355719605706163484628837419617418326955980461523347955460277761861267627969601886819534605987318402427163414054229986134407671992551482209778281487166787967007560390511502702854249549306379210874465079484770215802904013714677523530159650738154754381835567117974889110321450268522982450233535444130810156349142697637600686333827972520311484326806931495134591199077411722205458735299965260059395557749328330404919154933544211588712407039089151487896372514473152800405069759450585983200422625803720365601171694433934835581929502067335025061523501672602439503430793562902892276318356302858816204719314716857671664179418944547234695243490827429536920989200379330349267925884103893700196264239279305686308181307621017890338184889856131636775226875656201367899794911638178877986336006670064207781574946169252791298563833671182793556631338633211315302873535613869910226991109889758755881387669043509872902025032117061064469977019425408225454806863559267181564528733728340778026541193115915066319046347230044865719418642533633653343309158171643340169920041771876731185794262091010190538006493584240621515773265384522815912730265124645297312830243567006017925962177273937768897874681916666059508347316780905429894092227078150401186498966069083694191042439124854445169690417726135996702459584716668096763104002432560270520926652393836885365286257151854093589636565258059693442834098086643920945753317141192867485839831233849630762914468344787492248987293377311051939669803734256924767857687965181851760753554506241719657828775211117922122408026723555471503599138160212639497955145664519648209290753849259584747974889174943553141934918756448674726720348499024866551666278342047893183016104986710616588027948454108293294004223116680649636299046693534066345629985932219456344828102578478808917461091128731875158301315402843133423862680271549063041395405713280586448991782001879203922801028647290415519303488392796624519877386046700386651087492205713362248992071439412990510157398429345861114151996842782201233171302165798066275979638204856492269843792404981552660069325479762228110816672396069838050504505621150375612112048277766870942877889628845961804839961392749077509956559088098602901790719070736182399054158169984678315964714804758179326965154832129556248238092265387614374227294908631680461077563849404186181005687838381750972018030155308326406282797733065957124475448256687791412699238771702237978906232727958070935369716403350744867468395574230816643114318334936045648174745852023067844562312811524050119670032919919617526781333068611214945144445969308313012338470794729420005933805509524058797658960064944088925077326786605318677510793404052565901579661044051196306338982425521350736067472975056961001940193072887683011024055463081830428661968278376864472331096114483478806695350117540139888085880988734483962575876190512430290481643675206056678954565609820796147678139712103106069561445485283179407831607240058668948100684141252482562757479791168458228826742371748505013007301452357355867181292574255602362517914413671132749278632698637359403495385125155273281883217814721714871235981765506272311874888266321446786558670698912472614492541639697532397254261435836428094481003170641407604253117536732504567423955572951975655683310615389070919032186758650884529151863438892897934648836408735762736267900412433318936328731674072367913033964197046163877662426059524129364983526729284313028490070991983777474493525816805396756585137697971302271728072482623772839890373273404772486081343345384432542195452165405876528074577122791842566988234795750931342013742660692422956214274283960923243145416357514207158600849117855609056103660170636442285905382120794874943304970898287301105313635593575074653546499273520433231710402448099310237762061867579705686033484546027510387969107656313742240809752373800104532274792951615704470450055672725224783189775413357144259973338646609366604617966031482010822791355715545159640597345972732493279529300411293029973402999919310045071400829478224877402343024061359731404108478226909346267332607864844078166614672757947097552962654211437727534236697701922623229013653262902624195904053147336899027109338335625163312377233341753198359813180232353396046510896807893776368861254824477861381080510186191061661669448874221621022463687727580745647093557716879403466422588816202576080245884618779707512833778853547889635913259296975484391421911041194722187323367344889173350668311499447055423989992028692452180563735998759938941451332280320883484659003712405195474175466967743723838993355359112417361540077848889262894122659948690260163605145938005146165836747260471869172631616554036053973462756128823697448870257021232228805899137965250503860073281679426373497083853023751857157285065170271911456776768428562133635681172672040391064354561867595913692023743068342947428030635576204704055115464884682918181852805867608590849606487027462760606531628871643149783409587810408458090154036759989879647269010777470515317355394859601648041718620083342945953110258422987847311715728319228473166624242956503565046394712311317593400293057482515330398992842791130692883530074473846810115241942464358902318404089003200584035293269336378041349579570367598409918126656517470768309751456528204608132177169416067467353060506167981761485408868576686682492806394694791991920182438253514964395903575413538372266567335333324399022648099269307766286763729230359973433817838410060433619620522215088107499320013646750847578183904667050938805023998608964932758560589617297833876316676884336828387453635455543742533640614634368120135156214619481446918555801324194318820440412346876522258196706715716563253060469516817658649412344283712516865118956906898159679750322297725256843463598456769229120056586303302101378289559999456310105008780417697978676747909604379654664293446990394563644440580458260349645052422169966725531761199015275005815047587210845533914970323567817907691654573584267352435386891323961102839277934065192190880940198139832149367433446532123075831842102736304965350340350357991705300735459531161149203831054212756813086100678754268246584236344704929873983724155972110526932968006064668794768524601531939983860124821465174372477658570561828648897570223569073459641989879364514223179727509040900908068881612565954113068920801499409368598114027834104274924880755323633127464901139292539651290516695914916715706870671628573020397664413980700616297738616444715854118063809514948709335019355545227366425141449085002880840200929498958941439812950900991640491317984523482423266554327199982247430292770396899772950064374915553784651914568365429184439108507051586917847956930245764396440712175246887262555570809168629761394334550632423152422617856038900267182649077789775179051646751216222575692195429265031656824247484865704700897744758705588363592453415802042332302631445638509266821893561548788295551289237442598178275565606985008546033462278964885715080589426490358227664334319799318385599749977524684483456356232384584388786416533839029658800821277825754411439439431533083006515465126822752738738087250004537602022704403015517400259237630060712268171966521533332521501440379040607243722098754587590429118242890890538413891459295443346784967175096755283824508599669246187637503990071584326746213006648639555746529780152344979946147584051270528716189471753513015172057813660117404982028146132717484709664211157765785871093469775961959470909253959396644242432505320953014260804804875873156079779869670259540876428648826561636752807358213999317494709572193360933095221982383710702319310121885282862789288459507628783648555553512326758596704052633515346592518118682515173796393169972927420739766325909319141706876596767070310911429922608869342410710409392585407269360637559353944555988440039248290101855891757507418442089181728036159818772981720036071615586092216034624147409800826790871463100543072201616299128381117974666260272359478479508298553756905091250087694170403981574873871123533523268337872606969239595360700997731971951437928424395996050023725476895840116566084058912096027968939468898959061198109415161387329151719108146169440072609853010014180742792843846737176123094919765502268184050755458298431713822614376553492202140751413304376707776993116575917429291971360969535105982187770898536867194817274714657295301934850512411508685647960310201904777315577605021101424444865316694281356586117687855568719265875864633911875333249977659446512398945345129909562990628858846958764124173676577623254158195033082909631625950800136935072741139807668185417502515201163093005013327452549250305391807658542414899235494852079111226922677132341841702281023883345569601688042959214718631127400889336091124525473458138201310760008747624632630143670563275753876645768011184960147158162291423887963334880028827628817530547840825882702876718400305211825269655505755658190618635616879537150756061605805917278910744158797428273794560580646820761164758102704162382572673919173769702607969060584105525432247737979196052418966964555550649972590314032858756942516902068985780041107380905957962719310659812886794975083174434596935149360201372937115075690995620477120937142830392320409053554864890031485748696290690713758346219838381527034604702290719132724585441742137942708686006119690549541767908436662652327203549359826896451163408530714854949738392626793568977979917575926191795422407655808743700114020670939295561239978310920882294471782235394070954593252206746507757695733840866705933947465570625366850891347858316608416003207438313110071008640674535221766167597276144653490188380585963664122304221688040192628816309442202831286760946228844905941645330765234168202976980656626910953357599733193776460119663962029694844767181940437225903110054919088809348311956793968442825854391699088366902484289801474469684320456669858264583227986628101006747929687166554570585057937638707864303447742390666194270183804519439015893592122909664874777826156653079108606546108080684446942562464556719606821910260077358460603483931037764082898273337240132448243396479091357035585518650855961579229744831691088879695643173031252633064031911593740704850099149731671213089575178573331364173705730459045451745885074063853330141289612286541427052748422683156159594750281729527290305521560413770733796988590464587122388495818079608609548995727601613825004058572912074430446443577295908845559927855966474339230612265504308166228488965968031315970627587153392747961792641136889734137971012563868159033283929483286948901611115006865403554396497288252379755587499627111616034069121537305307377765424777963274744459819859081122308278223482070730685919146555754654891004225917113434156828804657965101990908897341407070691265830122151903780652079898360223384855617594709140144216204973741458344761771476998470687335408915990038926431783118193330768378354004525052449245484531950640613802495073684840870476559853723593396973731305681821552080431234821784776546879508200962827248800592808806249722512273762289407453367511121826367098761154836715091485708693568853393273267856510989124818691641458873124055370818061688195116886110163150252796598846690150010124142868547039675921007721383213161986156367026924001880537898845042273544323048626975339391319735516149528275209824065806074840123256415428229033923733771018290959385374456129184478573334114211939048308284806208284572963476676457233747185274040482157249548592338794551907197619866688682736753542080710330116611500687909010299201507941462988290467424196785612828668789194386639617912641613786079063993809451796262411006819524649235818376194583117689923759714693769699303996196297248002143113183166463354186697413997762805965923563102684314510323062432898334082253253110618615439305280975254687572223838676029631553578097147040933992357967076772393209300202800205324959937711739840403276948121818376544519729754302541321293998512633940500740313012010121589988902837417405293341792412824079240625823123136546670452271865012649336265253284974380651847887603975364847001322053707964718228157197968710170266388093496942916401328487715679986915861390042352553016630475100186457466254341020848127591238398489597543585085234402457633550401660280729825227046275128605207937835907527058105772984604445856287620960338731685356796889662384967624009220296960438746595362675531209370946035493824464145554650363548056025540339535102508725498553343121609359478621636689394263635365407388093005489945507824202388593837515486346729458910472270322305043408941172044544518628112586804022542809534180328318477622722838961556291961691998995491615247405002353367067471801699704587502236835877855377670872707376871054616533142989053251172279206728706186267272003770386811355049275702013641406844194866366245160750092495914087613289765674987076427907215823717955267668275569121678522213925470913796611236919896342148110282180098747730807175652686244765188765502967609732670781072563016132288861703327441402904018259714086169975893900210447629258307893969746840817681856121512194792177156750996020871729751200015588466919347218778411380276258024173448633521511919034140632892041295526573254424684870200004237683689876121087924783317092261070406930219235271336730041602816664070587145800457847921456565724695210165768112163677532814051331854421008829284144957287301364782376676927989539754121238077045186923052387850900067642276551363810902089923158552384110599207386443651544810931626224659613400514545002091561949382223196015752297444589498138578925202566164609321426349640898952191124168688958379414685191496710117591925937638029191021904335823336299960644160454118747087608867208049693487844243747917147726510901607047251380006072124295175553277237405943392737542225436900155775972716489447191887831097229398435653197824219774487111805561823107614960227737076450266396009269278069523216871325184843411250790463239744479433263616600775045221091253015591772181453884081402266986584235600475503468669507152239649603271918348723260954079623931129298671925485231441532476603386224160644800126389162142605890460201547619477640844617463036958645177016557174801004504383560387866306132475659160719213481513542997500816716730374925225890114370486407397068027377509809912742488403544587432391750067919953885883504618233313139858552103029839091930088304489048342933745392793557390995157986454404867111510078658638180887516583622862230360874931194868107613052506763568087398495001685953903366103309844159636188792943197484247225021493003945603595103625806542275546153066032633639296666355453248033892418129135491802713222618474318456243642478842664761302149982854678721360098501092664578005444987916218576510601914790306791367263138724958107812482368446923512446398909423311408616266438780275597137857225553624332304894408356197410840448922568890349470913941874511629337677530302605594499735860867119968736517847611073711589899991661320875502259157440083250206805808883742838649179591221832833952021943970072898302095231303095195021141163407410573824412602277260856282170022911426415311787658264096429595445221337478805873097526316010971477744342078279905572587245430250793591767646633982452548372199179813372368111869709590693564110784988913027315269580153620875302202649100638068122555690670630101014733684833149070720267013167234958019114384884345112661247529030321353375924989059102803076786306996828361315840591597885638070080858204488927523006133400622374342128711299771328596228915261173570905168482961693839167107728354234943271463048682887810875402362473369263690862144610456207786688768577960277110374786394359371351739015440960843368615091102761922553317933217493933235160833806469302591945643011578304127241288664531292739511856952546063586076726982491677024202919983907503377016248554598291713443450204822862892619460922184509427227271950104556853066834637834679288308897658972076796898696279830191121466355090232257787155170059566696576379298774744243303053578937629946000228011141405789430121814671194655960539193251557125338138191832200177551598793742091391664354998646698207800520555919722852730636013723890885647355138559276381260283560356016209395065800585390412275715384042300235736345376573053810984896031328967668003973269196414611789937506636968017869428176172398692341791005001756505171355379548090513414490726031886062551668016579302527312001778483505828971633819184317152140590437272097897230073184460770818126843697392442357697441306908924010616426778639082855719548522192784317155057349494575272689924306747392922389660215744767063705904159768892237226984038640165837994354584980866192912574828081162238282727492356031571075948830553964075188034501297371406230365157708399186718782962184635928076882538135774737319398117865606113424529912268253555869353651776356470757813611228381969776001233775205648047455616288584308774097963192530447868158494861174031732604757242177576526131055645055629297349172223798190880408097552538693161739570654876049317298983595709682547004418113411509220210039769096782730895615734299565801396638611826456762253018297757902176027963081351869362007867627002388738261672236501412855660360038342908230691511659569958241229846239532512764250433216611387452765901772348841287710544705405142662069612978258575649691315190787826076630377078272366271789975080667902101076994936119327164164712062692922002037528218039015459933010581022536373877139222049254109523347404231041494358485503408374050378445705790426581738361721465757061702679938072353369001771048790226489090507813102728709413280694096296561905228209339014696973380953766847205558757187155064809951723696443453980829278070373593211080579675235250150605062628523003723495544818266629552407858690779801492368781879414799143244423494318047161438129686465430355441530634454058316589288057307621806177038936782627612369141326529715202389328661906442545409640474011826700112978157244733640050325816441494004393633372062694467132945565972706697910102987650892353271844321335057357231724497630364632911538097810822332399006769365204673647821402320386856821299517930674504753071560296445983429695239899074577137669325053892307387182320033303899786441977417026241643654238623749249327057494234064599795264282778361859574585714961976562629033722738024343572209537785816889599687722328850874966540334705534707124900791379865978060337760516188207448063886988254108573949417683556768723035630039545115294047045491421422140880032053901502526805863873055233682038849700933843151622075218663004674471369131445085690517536647126375185898729195415467370258747081813644676260835624300413310939184287711593467157377931329387222943043122333392945257296560686330532112189575640721835902182316322583059342972978261227038102032912854252477418598816780011028775051642340749822239300415966397449123481091339064170715464833039751511478444710034957547478882265965686676860924002675166626223526970674247930488596008457438199247968779851424778203148365429506232720376496203332514242546440616473479880848970308456560781839324987672190401513386835819613754597772183449232894309411840834152609597699432825188827462024164473348401341239447742651157060453847744114925214741155513429731063815456767735035630536675288876040553121275448668814331581882529925229684446168795557160221312653289095243537887431632234347601699426432746298570119306292853129356260073777071065472157987512139046801957541019894965214776783986402316218159344071851487126873356052812569834349157769864254517408324901764461440731305024376672388371834618877056231530089036408326419315560288249596880555790501302040520843560889155330426633648284666254047262091940505579708184493122208146305009177600069589993159305037905077506896965435272343242704283103829097217894304732470362552485257644287778699095599151013793747274959263784432791045446467522352713818663591522711796246768205253578151236733465233701369156239704032562693929078139363365758215488346294306025515913373927419423406539874054314162388020723508405143753982254204646626086978951537796589600405651346927115396488385499598046474841127460044019053745126774938254236862207548524307358290210604243798043241692297037688420366700313425991804582955409238709949773455136814788223456479016673845510896954177774998877249872069283450201588538712124305447944175209448361519956554164906095876167273959724682752488552867818682551172471796305180510084047521517805010876738305974842768570638576073952554489190323993259238663912602242502028834579114473331816241073834502867150929009703184124950015241062060262573715765446039336783795938564587900691631875743960917174654386188262556185060957730606645254303904578957726142144975100970718154418058632879560729666277541727731420123037675637106449736034707648338011785435732543918624964854495961654555509937982339365163605478127338565695310082213155637318520581983916785223833914251810501155417939645146720575612160869539493253941581675812644846833607661338041050550766710505703806870796936015440458056761995093883131170818521981631030500767613720549562670861095415586193257402393471004018476837078653470837067900692670739846230827344100895937829986483269022245952558216894388622144311680266929130950697752535814336911227399544225599959646453731839945255152624751643305620972900345645392054809526109619869278618650364038737043203194915948009517695661912196326031254540793274221363406814032539040156038425023897222136129883564696047080134724917332441000323952548884273390908218457708702157853747969952348526855817601630709976039450563161087599046464308739948956002811163823109395331017818895528445517820997162901086844071460830894163523805950113721643845388390191438296284331370839213635242852393594613912005128836394521733704664384002195789909463383972359230819822968711079929991295999931203532754936627334719794802569710138766024814743438066477366951853583463871240013936343723905789164383608123441763052128478821840185895223447834980665751414363517988134739603985908561670208730231467614210190913696884518895718913550055301560447247925805644887718958810503968282148865302338137985107631786696739537326840187573629499524713804376649979463762134952176889850086407962013130861054573989343631179694869335772795762799833136446310117063770003639572558258425055521009579321775017825364434738977560548494645298523086751141631168236506653086908606524524110459113959852016631782040922089918680176142049165776010334442515713358918181559792511590384915787119068646288222197499418769355703964934894355584417622125004271731543883607173943751671051216647270101361831667813280646818014125968654119789846846428583373835129287446012985210066356316757023556691834582153466026183730599967650008564845976405149761916504082046996837556847260495930330092690805688101805086072800328510029191451416228638610494515874222052432704794891107578486075330091090175827941792907661098971983990368642513621822261721974202839025919191002784095757339456155091797892274378039087518699175731953529560290675832324070306318048166072178251077031466513573701023038452266831671627923687545905814033524683926428612949995771727430424190665746646177222521917554429977060498404226063015316393631955158916855366179389790124523785365879923596851671971269206676309096718241887291084620180574877404530516037833713968495247982390636339540172312323288770821414107984187687446712487993017644356773806328062624736769584985370000408837471474288825299927553564955144080485794310287926285976486108539685842268163248603393415993499963941478488315957358571921098239121094094064489651073284958994987670897907589959892719566896990311044552606256144470163581388841702631169871308335044692839002559855930744362076873380522701498151729258856164688007094671326390340421410526583939907523071020604302375964292789449901343129832064730946853225349248218204127335129817325999614499254220218539308670365187386398702276172722415313577814862074116686012458297349161356715403904807392920691711421490587375739878456080531505707941984783358010350065031367949079526128154109841037773569466378768383724703078865677008375220552779568135994510595087107568450666273056915325662608112206519920743292940858931926214949405178621099908025222590982621787650091747440579489308396653629419314148426375129733218237949043183737753906931821734568635556635882547442052518875027541945660326247668448044627724912604789458035768974448089209443024456241510312127887295487705305814734894006088470784312793837929637787948501780176493832447410024698126483720105465482900438609138519982723691653325127300452708215209884764609122975566186134594744321140241376065315095254027861177903263151348019086368917007478808321789840139441562894286451559534337596382270457614020115043588743244457775822523223869990237434917163248912780510309271060972697966127016090583815254776483083682474538377401448701865082285979489316573587083387410445023389235756406818985056512747823886932444893415863459815246179968556064691596006035498981129193515233329242296256597848861496850713099669749078717744546556203475494726565595922462166645849285987618907307678910653435496961480341908411699757950892047792096773788971497327406810591687088608886550982482742125528647254071123155076114865420042940034539321282702885631284499338700023562181326094452169085233606708388277266142158692527883976905276582147229848458742031402914349250743008109739604456574422799764793687650472064931538195855192611168899934437013241890823307686827021546774615022969356043683341824902952614614409862793459986083791409328903866718221931186734661448180956630366995109850724701181351477326779253170892860034973804988169196009113274488838621388953991096438946485057582964543834590830132297414020755271229219544729630448402936141193381037469194699572633608582554542521207911223520193571676345121920292861543720818932506516645861686467075086276475632464604332086133305955241927406227844339172189220477026830092030005410224675320139482687295500123595121814605681847299243763540976894255144604561326256857890059120225883818964935847678603629135090044545156582674014343044050249324754774268821022682486975816703223923673137174948042799811890691169504466674959771666506822996413751065554613670322460432632876766729611080558985459989533995418351821224031607042614034109640656321502770047813710920121760368948325052980234653763981599747062431837154849155516820854847351371896978444967856904387761539733508691573136432871184391728269291106971329089237430898226334592306715784361852384058473029384672427252590850938318332094454360577248399447909737051714749385714502918596703992278995924446399188934673067381320542935606185020183616138793339400620778071993224224933281523457552399555235619074165862538132193740398262664386192275056186168461154317568942350795247622887178698093719720016266312540071289187674391388509432340112307791125494040280225217154866612255022655082097616039583414493190667882646234429456581791595655130530961456558625387784811191169315753970709090190843251768725900067286559950245659765088713704479047170023874575494826334422484810859932134156821659353211668104290734192242891973684175480253628720520066662496399240794845943781960091531932724333963491381238397400887823302509070954936335451137682850435715624538557198018658459473768798732256621991116323195728387584559459215506951816866240321541683706532465492891788082753652357309396502863913040506825352929070192732783864217452828367638219557228676053521340672938735785779225305524223152672782308373536321649937065650389572846410731006940239200472856764415629805440071724894995044935229934266102938394550089759776297738812838730738183023290902315384043869459240539969168422574048336095026596855766015142998749823200411964445275028137513579754909482193348681639220526652482753407043371052278885174919654733204811127579840259205152701026169234766590931395512891758718885820444341504876431538354163781872661466414789886051986486687595765685494567247599912747771342773183421311706680316888891731375412530356548828516325493767643104364435923946546502536317506821247764384525385245800387404363123788426405027049691690226668342812890735222822683430517809159471094175614706144783862440389119071036725038037779073681237672717964704076928119980133912280410355126913601992135237952272577410125105811105260570775293822289168921097416342861652509646016455904985073706254576968386026006514445088965306361581737962526141849302166596929630786830587179038304028004467436752561409924615036117963572006578340351073902226118037207041318428435333023469636995404257947466389666061670559709727552848607134772358370148871913284051489036289878846196739120121485137228661910677884278995449059068163298954400529032090484559713628159241300451550404788743228408644177430808055232253119660944558916991843321677884922233343073526978191199680154531667156849214213136337301908487464605334878884411049836540276393488415978042782963383770694300477810700543815145210693104419800443689157397851026190211846103381024135348899524947761466184884727579692289755359629815380139908404869644902090230041302192865210049885380301474650197623291976431452095885774554366349057482183367844154792065156773414613214859161588334950465283979497712106626461150639990305180909901809101404327512909156404731291716455029990083636012231957425107010673107472550349346680571681866586561139823990282540505788132817208983109112089197902147648117980083751200684559593509765624066619867225919657182639511847348071677394385240954098730709092910409909773108631931172631047002425607069348531639785537623209294960118766434628329347264994829637556887899130627437606138654975925842888365764415146104227249651277907621242821317878423170218621510486644673636864987672425522502803162048304465419887227252672189977470669955602308860807852987153826361493317882431462439220297393420177483668879069032007362200592869303687314502539176073516280246571839069967499508347932559454871484903800494504846941015963850879747666933370304122346191049100869498023123430146107989780101082025091714347327778672995475878413416271822812310562206899190610928539649092880814066844611558717651477165155544159902402361176119727482258334941514691169291947227100153523308097133894126813193088677691845699277253861506966053951961092947001881204117086077843978499316041677701125761574637603174199140354313662036295792430567448132915011132152281033453409737597016015156336932534652762437670986708006228390603095020752605263667329808326383406981626198988354022601624511993240428836571502587291284873268249154182775641672820170254545440510126517892322763505303548948694122215394685195983696512576993158299045582950696092197993124125110657551362780974030119353054547415562725917560346219102471874213378468975157312343076419033813470347036842057330647188527070059349213548119111972863296289862447768747688060401455666096807039850369934187403689739573319213742918015387914072348711794725691734597796168652867127024402542150153833059647945351337321223389582530636783580020870972677828818272114010139448778058022216176829539535274790060355063861917435834715580620616945290642377938388582865013183592255102846008783984525640072078423262337711254006724535626281087735272983173552216701932572841761605385771777937121965424147741150789410320622601336600251920159785903537587090707715101995265688871569356522726497160596557468326524594840092053289268375966740986881118784193239108767181777742194531993888074395606210609030442272704451773715085634460800237294363135931342433298115360998072984616125297151209061084988620776937000277611175392597651978267771913269707750215309685210145345847686075574961817436068081613646254602243951030452691395374608499991010547900608305832365961114004540755561330766941270915553899557592412373598084051537373954526472635660379247565403418916900289501166600383752411350042368839745820664804179328469883340249318193376423768906021008577773455313607378100747086585029893829564570904888937490044804350937799347940995892305660353120850260067660288797911817761625886212331411130633469013951524096372869887795124853480743616477074831767019198471851818222073840779967697000736142270195181486147390322855929665497315254075678391777473302805684981124739936786420247042880268545942619505540109753952286949399942508092605579559240469354392432086327954155081626202101148218354744682543970987075920118182184002433716824142662898970783410075701591307284754594193762865943968950321458451903567042328321340083780357720185471598714171166588051219692228925632435027448698521559709753461639571214776280911726200909639687716376972743434348981788202233267183252385331414503553328239882008422424194720273039856300224422486824719599808229279726189784319451994316857009941534048945065262461099301389105379682249735597568217145720602451790585339730283684816413306304553347859491835291893030894236201962977176816344683087559808115991471707098273389958400973247007784261680923201364659663440158732423671164740656556844722502508502843358262279578575087631976690156376568662522298420326361906267383820106565662233467402152182785249993331297580113318286533237748491504266982592040541794405449087257573110556570672195490351176024783349470408928840995150057411988987309805511499985415917962066508795806809447752575892593511618433168855117158568675404615543230691817017045746316670163768860304188769117562284209154345391953459810131389772047921195222936063223661767603795447889897364968519209019548175867561004557269979476252226508479015488722791576933277559919724952183213673513118734837978740574831875964339226406257000718275485188172679112337630088739115219419065433217622593983372302617205382665793233191096778759730891658534286872112007256196078582722257927732737455666276132129700847907137581533600819002179270910585876246569813404857341569780868310727292240928254256532430116439234132493987796186983973785527257526638734242682239328532036072743973880398756230084215518518344782198604914925530752670647518717131925737056221854303992897563553615993584420424948833564261978190825726560730267717508032368568778359506925617253743178523277075188750516076164367465811464904700892062410507285281600784319656106933192471989806522912876418979224823271768567262262157926923371189871620317258867677386916591607942938987894919666054994084063197966014904098114349590469712463721120257208450214003630788538912994423741025257465859983894546005649567984257729444264772902113931211494143432227159162185492369912289040590066753402184318104773154733096962204687616211723831377827442991534182277701779468287726215614856105404081765548475493824693330026246830829985781196561344348152874624677126123470235575000713917728301315125626480741559328451706515539717771688593708289649475958279402026894406715738687020459752910858221856243607909292389898328500290275718305266576007628402562497372096846803874217462082753936628672362725700100592069403652645986195982888906834026323632808796261171947670117712895630157513668322020073701862795895184483003818716187846618173674869602257103423118464790712905935996493888992148818608739391706322092934567352003574510581449534085151125324970115865949287383160908682821572673534030679200506422958037312763263429203434478766707714378593413597968984690797622896975984001450349386419093489995633521321899748775301214496284597887142804085116770272287834433312056633978751495885372628274429424914547313814659137306132193014981343327286447323425837866016126541520328997801663392881491254523301746686114691795597336416326066531700477817142136356611188723051071483127701521592252736184628767161407375865663321042524056003534736357862556575766973174849849266896031801814059180910683277517867335028779131931942173643581065107089252020563034909881197103890991814139747402280885010800158071092902902924779333189767131708557374202520604939208634015536874399155282423689901096491829630073625481097203540990334523682763568958680287366724837525864674475036877477361446986128701032446431518015518723363293510128942664215527623134641191776871430946814937739996186802061318459160775352832898885796928679410805074824509749967920500376732145400471018389775432456655564315571949676216224490566505843419360185754472650035802031510974807735423009507077488642651668724678400622729430642523923668066247839093970159157583281331506229848296639879640578063740723524763194402487471710574624019228059537458359992159193502182340713369683272719831628092199594619021206145215417996180349631507126711445832415190563496967452037069586671043044078311044799199939068647990053923949972553214075637605455823439366131318281891997995625536179085469501012276227261739855338153722544313909749833788653732836147825304466431873141245024568456489233822484884764398156574815994275694777993045982494883064700435626397109962010256137487913794413670407667210244973074937921589183130565931206160487857082939452392588895182457862715833103447732501431029193867040559041209729955588483501819525787048941018720059448855801349795028778205811481003016141051669141177205375104956879478816933013947316446457746003932694798301995791738588674283010338561464700952312737310924606474363956634013146333236705698843991009794931042837076478280088260101715879821252239385511376338287140493826179203934115026439672974489972927355303525908687923641732623059916043027869093289679617038067956759687535573896213894237306021791159519785989985914530896366704181725207518898711946795615491106192251900763640062606345695249097434729872707772713722555991723932050674948371128431758504789738266945466087052067431635455840700099511455106195290673597650689450812373155322101958775878514863803831582611174396589710838496387631044733434604396908370376340472235488987790035258486490963245399037596026773169130687148709783477346496925117662202100094895585155537500569264204310504295060291268755187630770092783660281538432875460087828956450815561507588457317896314393942317029984327870564463661913501046707815160851215529368080591909616321966606818679703008261932110156131896666343102369912400174152316385057544044151918074792954213211619322700004422697614087746756981529339347044991729546391092262532879635320973966065026827429649638472226215729113983026857172153539458732036618501640125822289941863569092420036003315607798965096379662751715403823787632079057893436171258816592138526909149679903924844350406343330833066446087638281163087366070502539780904802433178782164282585866059256018698618625262061983303312136072555040527932610913619052017985523417954573594518670101087006076601957088219707199386279076138602294142786380300977612738477043709107512544856947718584578310865851408371199733800526827281558639934234996644226223275657819318518830377432249983189893143341645439095885626332567369253447774759417218021834227348124472209046606501278053900623570870224361008993849442835995192476020326176968908484222383699085590434389786785169579321856789569048469550252473570298434949088141294815357687585138844529009933366893454430061889545808250056418807250225149257890630764856933769737842991958956687517318793177643747848905392143190465705198577700170223900290958136461087602239782543714667406655651431423369528377922738611599414897229748918823533554070137419922288666600558962899898898232027937154622840840051483980930986851320155651891223016887181003371417801289287138501407596242649417841134134979268008171996926169145703792706208421232309152375996869294348065964508800676451012775180812755089878352614473939015660540575811361700813020442008658457494403238701626819203523906469126161043041516288593793993985189599551452728401644198983916086840235187921623090245663752084268575627179953665497269036238018803104821602516956090466561656355814407148864936546735028419807348055637750866780113498519942146241914529256477578731622124290928818387529036032399171670291207968471126171338489303774003668624313290925210863009039697886423381625411253031172366903065711385415252435995420961431183170719819875576490813520865600904223442092797525365375970841532429772967470946269919870810724159536198047672900203982746665040596770095429262958190620040989408745460865684399874332348656652511021226002443973719667535690342145990944300342670951552926500452025066062913709111721889807490737147707438561407963703730368675346300911245098704455183641720963424829004220392539031499435077882423104488675953203568270046846218189927830349945498917482091264680062757186811724213682643203615868262209350321632933079258710068845789574489304137801668223426889898251723980222398586886222409762734488907781716094205928353713669558545402151732564549539995115729745719649115127549892764069049866734818411527237777716232712933851741456843376145811863621635352222646205214042649118246247203334883255740222365411710177162600640913977593919673494617371018687281154739668475789480285748597054253606455387357444858733350268410388746384385523977878077594522259873121888616755421021005107723882257272103600881392309962800965753830139731224946899088197158959361080771308563971695053174172708495460885703644522907040432446587809946525457353605531715607225506256601596056974293448832162540165856053710475099493767989385163761074501727875763581812308720120169894734344661911797645351447172617937590242131824590751895300680945555794716760154550133983030354635782215302868546666977189002334787159549471578770563615423953064593452616040044869597444253470201516895274219364877583339531823244434597106055657092074431831742481540249668523894504160873688616205201158431078650756271651690706196863794288359939218602053576231550815848275921310856821735019395398328957714684184925655851488202421463080577995393705795163895862917815185215512884189450272897032528317411305125615103694135179762354834694265630700733595450279609052718512316951305204665961260173918373775643533859308174890932973440612606641454547768405114287639162368707013174957679184223483512071140783800779113604837179537197655737955494873920031280632728878749599960732129949753506878873811971240306765053157367600545422643401671010370753460823346734662472840616565172787274518262353166613900221762553590692307516610669077713655173734086420795461184859143091778566842033426667695008981720305291747003936230928491803151133818142395595258494220396603149161087732022752858559738060211169311427417604387348243718838471140450491039838996361608639633378506406606006400296750513670700940269647497514915962148906279806042680465754223401103017843950119251095847140714854381978143534451303461259443653083325028864489626433161202420029815514573313678433285801904136100813278847809647001062313305230971950069234206710533478800898609968323972946054261603687357664389631289539979834043692636259298909117495037567611715850288221763486446578115530758899064890130809211406599837761418426726303745358247809285911263895429736997830452297234726777608056504018044780777710012489433788131353986995650368318538388703415761849400585095299043143480514582880243528490114781846542764177849642472548701945076312456342181340450389724355996325226848697292679461793178804097886311768071502230895444250212109496718304454598519481007485893002661941254294658037916983890050312792290153306861115630584884155082875854469947481291287134732053173750873664682149162605361190376242746684391154271683996665464305433320706089023841851309987575963876340741257473472036066664432359693592408631302078816096054608145003685665812785868775527887544239092987659769698990360958574579803917021706726158198201040100309367963383347359824148016030861689337803970084848743296028977716607386965314876961987934081267917793943965133922994725788288618532756903613531668793428954140817410445002171659544580774464259154256058832717529247039349756863026663977228453128063338310009194035494555784459680867851866204993523048256145930493597286548560732266374277798112175598645522475648626828471251468799162296393747115213605947121291653491084926377025903768342726289211825761711912675179408818550198001479833640096294308550211864103320501601345759162680531824171118202496378551827029687126233381755838875100021935487388203653483298816096285657877156566865247994482464589288389022281415976250061909921119484592409229696459777448567809188944688597680523304182715089966199366184024599108416937098002083493801794725356469752437507752336752178649483081258204985504677248543193102854342297359255385331557712802323495476228103633466857282720814151025046670510946672395753920414984652980105596178605923723972007369901652630042793368964287576319982287120148269702966554073716640743851542980147799813348168791920252148778616810932611237180725392770253972430373213338280761501899936336032569258741956786428302805784715473722868873124788391491518339439581668461781150616451422517875153115001409873638157262568538234081238178798542077408745271872773173205038727633391723740189691763326047187497920462390394158548413246643128424610573595089512187741174297939509825328766699754949662844420139613270736738182320428137793335682490422416814191890719344943823848280495207441654252318325968182891004835186578782278720288909608675467338533923736608082009065112734392997948930566576455467459361403268909951491529422500379301084227223784319429813799781371544090510356763139247218547004074776014125233442653007518475814551653150120884378729315450077219457109529681770246569793447043741304045243891555720806842733264426439635296423723130460280670061154813302616481627764833848871144840515194049773999058548633308685518579462523423087837011872801445852872982698364611380204208640863962755533254549776776042139191577607022727099981292189277283045482541466315339558559093059220942606348254049288236878975212858915909800090270791826316497976214136619961108463796009105031057657371321614643645484176886615843595816024960736134209440593379769824109713511538398495196728970811518993946648557802888624991340099275182183332522002351421971177521691300878128840379434702195532117653176471871543443548133837483761503638111731227564758578329622094976069004247810097500985319839016343033764059240164581214570293814008441568873286625249438230656932749266184535495701539503022253558197588314928325223254248709447774917734589509084715770093882162385182485311942825062722719924282541286694238237744479268545369762152713288665141049155713892946417017122850839573855768831011758597445013495589407682647263380204006342072163000463495896084681113377573856352551685181853879909425966200200475617574549876593454505663086026277742412868695507110077997709662485693439895217523881345320195051821516274243299355300246097950723081531899755876475982903907966550269089559337173523138723642222009514276167241963570025654594799108522637684359198281126048711456774810667012454055346156671298340458604659548050870576782724107239854514982876068876168480913959648539234078779985166277385408091152713997464107478597256461789540368123100560715658723696040442614396155473177312458471113492721649125560497035990911429316380303403724011140319146412526460557553599063814851452406908919676240373405505966054761684414084676301546673387378885471642522325483183105628870805188221276818598370534556546428482332361661392471205811287254163719750397955379410977272493349357395228365424268259318165543285856796611304380895397120716948814769570460228889751731723543052926374726760980416804780994779024222172641804952434218583555865175235834896136274694146709392055851871138923606193006309536675639968919078747146217238509412235821539176101749837491504807406400187651118260577601774279851706980563107406744861345829042021382610584141439805307797293196791679916045413092511759650398999706834527418999286333918607667395197923881513032216668001079944916092116731687775115978478224782243014346906181488417095269720982963440981904691218326787200214454137187204717901335670945124479392423352934272017990766854350720244803492499404869271797736772796101240640614818855965126112041416898208177135454551182383925520090016501189010228034793581289919656400802778421482467167757220933981827609377480867384314202541887775543266767451751919666581631244123752705936143488478907245492547849808817968622776816801730571833780927789468382425921731873103551530571384483797375173656988367339801663781547465549668676993851415348955998731459571346431134012895740802248857494687136189395611287370215061834227063055711912124268294483548467610247372884287302630687305684786074344454911186777578854725090650183519148847546176592467111104774685570497735737853747503691453214425573970935463344026540507060249285526778855309046710474297919912117720165843346759999180315389305617019542508372132607833743102531016193821559317258771859198432794717210470319661223405678368693623159340754947723231536065870712918627034658483903185626614796820843859979826883331515029599052158114449138430154528646000797506501148478699598638322119727106885983015743959276252908790829728127257931986993231706123630049741120961889399867767281441030495896205909818585025780566262158480132569931805447498637167935550044060004625154276954291708443848010188623672610816198531255191598675408191970051152561323539912669685544060716051650135784564953786686766584253182955527467456703716643322092452695679254092308654834970463614676337995978522619295784473102908719703017418781311585602893016975974515058821901480471762314419319234092851625251404503343322620322655669538510195403285208119564783736440239059101197590111979629421009373339539930389911239959832554798665390860587535490197354143562357612579219059637856080281850009183785563791594222781934557180760944652947480814935385623746371844021115970226745651106175433832737159827685769319463635265112527435460288028349282631772179046268797994861791824709489616327941084117997737484634760701374456395912453446471487939216816368293176881682505005797297956210184310092638428470333794674846436452423522857302600477918958967600395093529240514444669297624748052973317503855752022632588159136816227347874276778691109245969213681964891047826687240211823117056510668923863136751456869148366932756556102493229562669893205059366271093198978266590545297046631353073503627728822806200362881845130224812893174066837052759490362750079599391230228762889150464725170021183657756353181630584062118719215673455642210015293396282773669148062895139042593997268843243656358317339535436825272768318429846102255568607212907284377462481937567896069853642185083030567813837315023248446290143464426487852835096851553154562114207967733153550192269210468406332817308959812691429594448346698934946853925564061256490949210685325335686838523843670927173663915274783370896901662866011508305875188050722363986015486020256142432080565716810214208567781051686246171935844471535461980774973086549152658556638508749150350045351609704486509176951344799983846444701824911229845779066636681059902192904248520662384450425972931796422038767024883101711699787003397673290513061549478140551292109538378495252598572069970576166421815955017267497763234428418512575863366279409268261811905634686536779043097112234870828763077361277468040325561318295629182269428255058129838328044390065721127687987626791492273112116255723984069177710729740041255967483505022780093897486611928204169512699062101501828507730267876450294389869346670027263458491300358127841655720896963784412625924741852069898651333256742178973480054642164357318777743619319971829199598305161551853237697195910897148325687532669610909848667349694913850009944302116057819102837849760346766132509824900300212731966458824238898873098032402263720083083313898573965731168854870252272615017367246182158081896362963961068331045102587822417620458072036695300180985710384769138257999532176459627178454171608329678229565863998105813868376159908663432813960108232699426909817697892225912183463553729905024081277187472832914742642973782242857596939998796835104218614605495980210391742960672275851962063380035901631368032165105560775944122450932221363489938555479110816013015645216669223581591968815871992301006807800343773164775198040628168025283203481603989205127109432923855255119393526991534417764254256474223304787510052807323755034820650114916576838449248250563347058061736954619415199472389312232561588142128004235222895390478884022376255921997691065111228085486197662469256329368532101006597195455764821672010165289526217081443752148776581454974333619244728512201546375446917466946413502797921835264714727061624662953523620928660020845103802532323614715016153483574085337141538888632887488794038501112898589953288769029917648644602724179216289941186944901955731736559094067533062114722060162575412268018588023265191500484994116761938260548434154093122314839113121856160482323726429256110023048403548444895521203542275033338251021801089445251131093180912858721844143603616045042081446570186602745851744218225155778897868298942737141379126895543837414976362951804507407976458072949140948712985910867446847870189970632769004455784227868898130792990340670863372012109714750102239837516999276751269003550788729319597884638073716872539533342947142227509657033055438394948214585250776130334701142068212747269714393972209318761939728808250582999266841788908701241093603768376384731646169753444693497864361976246745312771936964492801039184212886624750268945627812187408533954588837839727718228981089056443206729326333372918044216548213844494106803727089687698241998521807471033284796781826109009519089758583128864126801876152206636605670391067226723862374128359624156968910049944197696045987330818562139754577432291831189130085140383934390684713220456277730729848629611887529860637272716027301515116215357715247654214681702962952915772856594212961457322329124049748533520173697798875620458568267819166045002795585779346450507552315573823411281571585752502256193457124740060757511652052174054009135199508178795154773008394724431031053495220872886539654001198687160242951115222516188815061464585810885050455127259295087413395434273952530634900359964724800775767131929853497343666498507606048608301333852442534676814968966504450933794182887580391663426950274005211948018388974947894920372119758070870410685089832231745366866625686165401067167992949013075444053132438630471068031372326363750883642355776025251495212639892902428519413146395015516335122162978356544992879009498089776377066220429922500798495674270024412188497798992123249792249544988582623560586559704021058674236273367236256219875776390381545700997549220892859517684013168087986018419285267099000988287655230906486391625013164219132602657952989550901309545558336646629388775895232467280561404892312215887878014658042210500603487072861168568518998772313050721875624618437750221695931036218218768387581143397992809459780456864404876227804353613155061760298179780121649933728523420453586956129516630686733362822576504353930092724212464887874146896476501381649533742711875377207208086749705483539379947862530664324570186780663972519186182355225676993925609031240035818830913265152460177040368266035622782851727962969423140117903074697844715462086775336642018767145375138319725179970657682057404591476421742909564884411836477842703906940724480645351990425550723716418689049725306980372938135825488098225400502648755508036066106730558352368358363976886101701292808246622021940899131227258627361592032966116407839592207257304549885313435091660101224911710941829748656474490631320424230970448824804369401330838675695889110649036553421760592750989772251978647532304332514232897379463018978488731961254561001637054784867365458784523694411385498839419502129589492156904809692328869862500014297409831100421905706908676355230936737128492185696648628562651540308933373827588228132207559072678412361331623679304826560141183947631640252244260519144868356065972867025938180658669294943465754550028174322822828363041523382833614956536720995525757789698874927347925324693885257410905263772238744551501536897854838925892918582610015960184116644383451639666457027352204371812252844955043000236080077330891125410033219337878287122724346746017186873920552149970987273164288726217527084627926040887444566722464994173808214374299762722024176590526240134295629167053705954491469868696494488499151457317284942652599076963857351382233755110801680122037887673365588578301912510630042076669452984618175268094875319953507541455455678700387136722485286527544519140333656835941214814469525063282963375817863886799822608810724684741255865335470444325146873800436384331194485004810107920862605345271070929117003766169740616889571345897140083426556431823609398387591186252711957476477451746953475612948135057902639235558384662407619916701819818518338805985678387405592834231864491278861192547320458791382550596017726787904113220789939973374666488581793103586850663396270225372765345422514377438077073916200236156834695890519908748297488686561130120896102014216972840741701065068642305064960619274385858567536332854850516310938765902450126399411269810971337955121464881754607615428849487191929493595413451055586852490765596100574736472520472683096512051339065705970978433274902448230740822876177629254561364412764121972791783929689896655592583544735052736951035887819680601387133810684484698568407950634632894899945619986463945441053014545716459577991202286714645109932537213773599360856594484053061220916977383911087743687619408933030991727922576140140543183594601130322987911568638957322215019554723483449556918759444525871371192126594692873773143184827831260272169841674003239539584227421352449763275339657100714583873248759948263254378437263512268127796658647042326181113408229334249647783871198504763597550764294359095200834020178131483894289447239738477772780913805048471420804930931536400113698559640175048881835548635825941921109428001860079899337237003271064247565901397616104198721874305045334580399234459280314074471244972235486541820506718050830351210963843668911258300025588495529590745667814119696772634889140379556431111957301546940590408084178498810816259540793426463346576821345383701949266150623130202203906867217269430568789519057387173763520990033143576992278619328587893012656426603053448568882016179507992632467577861119114028557978998157754126820212498855560796109699027647519090470994671472802241585719073225604298343209515041981772161898129186295829964361317321484443958553140133385744670505820692856622367550158720976924697829682079915976324720914283044879948814915747905704820511907521724992687631770082182788775515476604710641900063355679747821753286656056491121908357778134145212066367762702790013377664289097415777499862117246143605929035382154156622154699782330799871035758869744821474487175687003909881242354686510589793428150521601197046391799447980441970707314208813088135616019454072269948824884237346719160178402307443754149189911987971274539288016854929714975283528302596933659402254810196538171710133525680229262176034682677989054736328100551205030502917492902617072161326874246710391434328294515800038958233265669632798414830232321005391538620590135890906772211234579403538405451335591640675985329704414211091558682534073202328859739420398503647562524412520787691286024514310237569455565768128329650090366476282912967047004369777799049097879019784095323963108683311844683892951883921998450016344068978583346337101776898023987810737167187177412618892656036722956900678380927121455221498645263094883011478331020700372799804975507873382157198464068862436913272163715123431112965499468484214188855558750550761744825800612115787430474772548654333256742698378687503240508142180461014333813410911153957505375792561813289003656092981967147789092933942567656981687814064007718112937281400686145370730581826124670033544556970336369112251938102636057724037241511717238084971807064301945810034196360756674805880547167229378461253313961817125985732639778895353971566796353430431621618529191085533496028636294203306653428879193525481122968039411400945016669901049895663440120079946348403636505832388098593076264677841039314398887826434455953046353085981543307898869028793459608038928661928458010369803877352157134384416657755364650934163129076222152241491562208598488273018369226439037546941955377112674896380244394344979711798741905904281008645594529029041576304090734915952402246307323197072586962516271927198427979576564790654188926049676852910873488518888296252077192650933736404959347004173037755210722604385731570438611058944775664499915898190198002812053448828530891939481111573776753279766584017615676182978971836005572824220297696309818924073489750198121283916008040548719958495039209958035214164271698393686765182787605760504349457418011804381415742176827521598530125921504066167157719686750156994554471123727221406568755852065283310489254470320810461887199183990559362105029993229608730751493756177209798823694877783817316497313405161873488393937836180670179946052553373993360385122809248106949943018311422470471093312029487345633906458163383970188436065372745348024637281275507524526132781396518729683985701754105065228424018581711631942789448496300228312318210129138028528204995341182116790556062648331882514358920370151395739452395143231522844479575553102101983212230030812973723341857447099264041904971292988985227581018108128596278229520718602852381077072861012642850639245585860310786971510481808069563588474603322490234387946512286509491702871428157520027573691160499550261766692673723850194357040885396121111121478261769843120223231298442000950131658175378955080979745909861480899311848890829171085403363728278022992833923777595501874908039881623754392872662433616566024296446555900673927864134907430429133877812026820396894214139914176944456012747215327339628359314427890505375402716384773669014821071885003197485434879639245141726670652015933176456681810076308293834855115712856995357191145694246195427837511547412853880443591010104437613847035794756054225444447674960292178429274128635624570933160147540746781747020500926213525587943526841051067505287428005201894649623347239413942964460649530903074164397268569257587335720716681759933995806322686180403254250191652757867154191513201212679149823986088020062290530022383659544664208230348591156396607655149643714873236333567846741441680838686618408993029880542983141228785918826667926251281664348437176927591148229505846484144575177398853616703072121492152825019875425317320133798620017804428644410588978226469716122292339880571066776642756083397258546583595965041199120171216021686041421041269624569947432978490599198291286846681061630465200164994375692077163304934331315508585227327350116186472879766925565447490326997728777078729195506710095334974189939798681382935078207334818341753073313160706406033237959944255140105879789819406616666672094924719661239865387073498196731895143623110349339935280262496370997207486025700759229105758111625150434839345654791745436724547898577545672374749029495287639822763927799850117386777086760412068725478474833788445927611851476106738521775180557885979348701347069100964965328126373415265548664014204842648791809738491776226430701059300177714755593923227083172415226171845910610477944233775201473155759144399748462179861902327052639918700758672333264757209758796990647011947464612357674353633734536825751917391726469799741112737906797413525247025297851184097309973063307879197546836508386212371115090446915551775296720843673768053581509956478477698861334013483097530161958169152201142283219276193836993632344258755019040038145326398294419720545620675407137532015707474191536063209633467976294764533205894643931175020891466830220851020702392550633563931446012059774969697013383985748538530397084000238310860435754044016685230680629122494006161178497599956592597628943056218954802025548037675914372151800407502371705858164438898515286099992134587985747613683212714698959729868057492200379110895967260728468863496176308059336023033106141918039543070378892334751095152563533497936819370097668635465905519654240539220118539668199297043069588224304245223199328511867364089312472033335445892425138646383428278479814700104861995031516345242514781800208570580242110585709491176715764674853656985859586624901185281965406148909474957324820087236333251165749281567393260837385418686043218342326114564482740322758501076352037964497313153589356190947997896061497990584806856327724075887998630644888407132749832335129829382178842778823250140026592722712946648109214223306473343646684234783878884287740130050185501099707293467194298222244545481416895935348474811970638550315935534777532476011551711940680996406999614869528590190981944550811995628454157299184375163381309240670136009266371117918720663507579592786969426115397612260787195466728164466877905989972056375961921053896531601852677843649134815925597293993494166657888263426005545892301302710067036460097238913596763382672533401896316688535668032936506251335044617687322541437488311819523826184983894487392269311675228392324366307840340200114257830230701531183767373814437504613703517732057833046360492070517676520183693837828150064848098138960561102514641530331795817189540930449458893554299061818342798288437412883597319870923695559663919356089571728228600274446770964719435068021406925736654938383234909228094442198423611753950356579476444399447233965674519195263801448157681430473075987363766795011399133296332863062210908334528702185782782125831900018231705158429465085343294966348889479632104439903716165654611928781784191735075353679780591615945674443028699837110939426238569330435184066380467305408289570848971473679501883477655744764946186075141186232929021053585966360637888456961133451751650347335376374568107834852757465966198430030954368677080701632701901537305022174752659110282151759054073290436735782928912007710316153876272622373844801689247229138502186467594506964844269959417482268200482063455903887005724833205544988716790667516202492249543194360740922224218924674767137372024555378449237183690754424500257862497614313915502181314099822743835078571752711290983417903248904223604443755534905171769456522833563034121913047062339831721747325571967941251923923315785409222539931922827930684618659974987987121384993514490984696388791157455384717987625540559081076874242799784242551043002426843143187814851965835930074270925823419496552882964822473972837928379657957409605334586911900886901062743991920126831055329781216733411492447373415494820182783065536752165188567590293710347798384232028516900582652141866002856430925533625457908185407158316272758563627075032236277599129742143919278740439466256361943483211075875085576076472634246016019756888162968859065818121803283750716316238536138754648260929001881502161751628190426299372329069745764039893271911499044559794758456712458306051568975846653321547614566355864256581021791451556894820533951242176208845616199478329383107687374782703478116207184524982635030281238457590203861325870576649658519607761427974721783807617387662842007341379054940984585580674028813444215207575401499837690106131507791613001588054366435542292892793762121135437088449179067420528682632050447107504652356218005950974919797575682917422056407475902719728882158035699740029269494928461718930991423499227760949156241592293989333847476581735878641944925831418960372161290807132194274295029409695366789611156161532274553446630081153139226353350790932935004282665268545209254699564096881831727726557115744059222867913925229225394116054877407895571202780389454400475279003703343482967640751618437294299602251615570142396712365961619996645115129758787234721973895972604366423482523499672618126519563403468363019629299985143435831834784439750025738886824167843364064757255468147850408094443285494359854110953177562482207526685985009793335364390992171601541534036455386836652450249422521957755856881201732176932776235430179039176553250898262006269164688561081061138363021630773090792481889529596700917770742691053860761961980983399329042615714394269853511546345831668032472990020049237525279642921312402204331177144822684949662354036795679622695801421391069244730367112832145006343113640502985676626197371998467769362965481854436888413749758358807348429043301187346205687921184928088524828147075395807858636213102371450109536478564381492236932070949856155558035090986327575524159655767723514681910325577715287463659535833650308187246449688584818860632972731248345434638768041450426833537827204044658435461639926810105436699523419180088467567305416109171407717522835325639442375808995075321775023431810444070625893364828768877378251682173473778178142837883632816861460590200789293368036399896942268456366077412086378604474732321051756531294193571142926443808797741847281320995197736021811984057177876150767527890991326034237932336951596766027950872890006246766099043623358560019427563668741781238708183586484691345550913877588206633846539020428512709775087828715846801197927220021621984724787317966798649882587141899507819459314413214849534980202391109280950130046721003676275785738149290873692335387637738133419840445761461482700836871532502903168489032869173130556965221070455610756751714696688265335714276087386074541577455882408460945858942507146026360608137469733848173329606481439700293996079553320012188731004313655245481957127423493582967117892177339422682557807803945403437112939639653226237768355844676794298196454597881323529321984269351975271136491953073921647506244268139010325370483822491512868676848160091207089943216320152099302945182418188188478017785022186210260506165344830900727746067841177998629379040823796148061915913512677425038870071924977062840069914210109413367316829765049155721958120253803244134835683008949399113125138419398818865211448899412636908505424920033992024109324359265913121322788922999844482103047624901714904929508666373477614667793612739113908036138006536849654231259709725398313708814536326482881450746626806701044155581325499860380071663893837131534961745759272766758684529660092868572818466799002370427706805186674498449894159900277329164332491455106240098446145645226556117178940429691926942942368148757576664561149176347947400650199677248647289789426811257564191239872641680426627899808765944132474813626782903873205842222287123913814410172308242473704680725904015516871445932439090092336537716483235046071545082312174444473258643729212679114800504267005538858237897127727796786398789796680557247979087242339636226638376890957394064773831849422074218988637889169113578601502031774615838987052301778705165124780719846090303338297513997993148666421623165141677526502014946516928556077869787226381824689799209920415479756695254545868742542733052043583086250171081870855869927426069566977968350784068236722072304309910356851968296560013476202448387803852112745297638323511650270116092668909689773228857665281693332517983601006985331769627450520031380910205410122539750412333668573262668423431442662342018287459853808784550991643512943470907216815581984522895816279601191499135314647203506835340713067398111338140147413355890198600062504398372717034980636503283193693583393633479561144029178376324964844477093386210014232230530941687602319223862002059285870022016267422150001857663139332802215797911399878172942125338385710051804168554443517594151662003314418966968552283183910139407788720235924809410793654621489314438631607789211304625363422391678340104463718224681930905429374046323208834422770748879266266646084208151362456024004723069647865032691065234829097066418151398001511858468675965219882697582197768394203033049298941034804506796590411920093630203530685035875899961772520095828417314316403546389825546768784114261127879017544134193570741805884595917855823829907364677649626775788751221165497595101274480655926634109697316094832331272242567301840270800597064683328064246973078613189738350165184701544759815875553910316390367482175971381623123773271065997082487745105631025710418318329858813722951338730696065341755575140527970731607170664393533925250113243100432585993105190624721082766974949770405181634373257894785890617551983933151975728785077668699380958952690091787001193598345477868976732063711098518595438797311229698886936205663558723726355431386289343299032279394142108216569921278253737068400981961657103174611093803411067972757493240371607225372524146644253393274133304420883570549519412766644938032195982074995162996155450954390472746830520809156948428801199115313542430618146775360172052148620329203535598927732742387434374044941234716303328400671019195019618061115536604466524383906062917297309304982214364270713273065585015649239995743665565701844346359455496332102379607839781433173125664681170787762560591644819208739772759476003920065028057661618439972130386524414250849121779202942293235007105477265182954672058858061464029891472378664663027836377848363715807051151110978619441214726666982405894441549368746319653852348895646434142013437133994629605576839497832749602852489683487131923226838591054910769710493900808402307152032944132075915843770759333201532097619531720548697560025911465515460339791074654045953986616533047058563526574518545127263752674389679089463881322141199963049902371542983949538458921081617133494956403001820641569436478120313841265733032533525028920141189193812433282110927727938951251120686303775434304431561386317224784693985239038123709107912167127640817811857779026030945897822901870943896598447232361269201950982037578520119183212553469175510893021467560042672668687947510914805833878809075778700349753163052466930733141459211548701092030087510446234611951997879910234503204061796020633899520994313919409632016008144969674762295281852289270762862736541511791163456021854058797055253275542585845850036824038646216532332415939063998132854761472047191534246574303868812573277693450286513478792041003004523920711537363505244326709321346612321810416124850926055706207201145009533275824681545807604479191401855982976171052089742063872863811365574937047764935668376854909432332934699291660829369689492892330736515899709564004061130586825204073481917530102003450039169237245650951532793007548262083637820281318101630275984771840821916418782014981348859287093284892776800766290809575949932032141264162564253131631070426664421005798243893172762970099934140055129084927091492894491974109041228136439789361102259216213378519833738655622267817368801530383520280221587630582464707322159022468971136237524881974444856398190387219111623194272661596003203535549636530953879297799243260881230852579162974088050760100006426213564196122435499935846418403408151063178400084643031651477733101693935151170926532272745395589734470438169268090601512645370731556088680253371287942824280349611570192008835000873821512087708359728226151269795036289264578174438410091403927524111114772219440175495101537945905910665196756932488707615251647020370266498017384122068704283791145298084546819666443067976675514951702800425393419818837326849107236829090514063179662843837402894766471857134100952619526857913322754622428340385511265355031335448618545871008801096495199143285470779599601061759107408317663592538431628302506521647121718308419969328517849084481334280730188137043797050351525038234253183387665305360911319145069680315096203222862547264346013778600085335280345387218103156886676134681449955161673261124709598911086275626290837661223343905116653893592673440766012189061050977672142826616352621183539667223696838983106710914497942943059940445615787674462191402846952215159557204313732307499206317318618457670005306272354767845859524507142314131291347527982311592358543692133170989787834014244073822140790315306261596801544588955248136866217438743997876003126982293328752270528584319205900163322606365669384848128392296139441372271607679594919123932803848340674228742127106966627360142578106950190310730081657436852581520455767321181303655400549679160945755737174154706003785479349371002455393985836744215899664448007478321177972511245972175116308780556099607237559903489321998043263105708089011820179482043648228937325662952169915757363545897479125593311254241527466030028263881524382795013850859814678618691802147480789980794996246624853417461627081606003524446460621577151577804211850709491136119856074496961061122529244094088832317904098319688364520371320328593061024850898936353741707312362170548613952701407964211726642699782742009213698344251912115872064207253807301856105382758083864301067869171861525441294852443917990767747906534333442591742665956559144155043220024024608450062031467922216030000940774989644780902570431998689997708140891671454037930710502637865877135691188107980089548043552651570029722330675711826632205876113203172325954186311639683478972517230111370916433018027638297492324467394609252615751754515773990591193486160082068740542348535761307634444868591478291990534154635841760450746939304015127033557781125720989147970505240048562332063926459168070246666257496325795699275008714340866710201765949225666374124792052053053807863582443892653853639537821475553332129953315374294635673511619492955894302545106271869000305759451388037026721590965359866622650314521428265572197602110997656521321817506309619692931825197736071546394239043425264895912625514623658860636622792030283361598758663401794587888161039320176385868511023090935698734303024186297074393432067682106271093613590565863051743538231437185894650264868798213034479596919603328325510797116916010454522416351796545060251770118891471672837016131082511710931132613539495024890489880366403735047101892768059975277940489870418255935087848341832785044273599244129657818533865545502898025220750403751408049634236031473376686470066007429409835650712386935398675556402678094074572865778536770923219858651893117064734637285687910961763611071365733285856464424098246319061414425486249214250582099720329371622199743189420349185273463720703771096594544795820721103570222652351682667442284263897460748872369880408976604152580621597383203328073912574824937135787395078354185405029563696111138755074988695068458300499692254372317668265814346939312808605505924156691140302206582601663501814650124780320056846244169082908340414550163530665722136428128401924567597009809741367793619461272585915154780620552143509724155501669317530638833358256545894923779390200670560143668875583362154908273658643674347333488985056621810238060327521726130196618181769439431225394348730139390779100979053662013523706110647833334774628064431955854847705784751579004441069017121014106318853582108292129516826540750824621646387772401181619030053090922267017901150894287241000067094380205924035054187940151782969154700493414727044979174439257174510155805728060472980964640912629877194628264826676266938323992657624441967388662874438726287465360906795941665667579926545453152846216703500723117798960326681118662131443789587766584905981011352764524666862868578658197148795673570662605000806934830602172746649965224405088741852223164923582244188504629401145830032059362968982184213127049357757695174843419709554214153029491426747133834416886818004515887872497152544573907244029346997570714747522828505844322531690367455617071789114581125276789815923818722786533135567217543279715670451906601109362867522601174961177678067226837020070114006468011526425274930350759632158400120827718266240344769498955872007218784246953195748691137428069895374950107208773890545027658069513919443904452639511215680803148926269534801131041572624059801171047224575437400895003098060146864272727896979195188150154978005347346190243558312450844193113818663633478841030652053796512158333051729800698789251093484824488493905425264876949416893991236770323294004425952539922792282397685726273281010039434142139200727686824967130875692901050693706583427411483174472138002095909898356559858493041576658715083932870201282270853409870910063731064850210823775808736269518339972060907640410799978722487243072630407824698240485388043973771491735151557690702984465183920865929968569531601053349541654920998293628277658043194196400929455923143118171057241334870160121367594438167718340221922453465617916363282425332546352383547115481655773374016238246348029192258749721528469701538498521513561708675037125186919756370901884826984307727736912733622221797129983195173369822490426817011389863180743907248073630013055433243702625872081651318066098546617886857681169844371653567441350055839332699693538071809507593491401206267495626204018464546484762814426965184147465225434863111533986655187968208613026761742023163818215961804471795422347491577770258306479821361932889709980216604104520439184839258888476709225031903042820481251552166416068083735350923401328892874215600391225889035554526520660085008173125172772027381001425870540937886339303330484901489166077689725129571781752918269795623348384301979012456986307687639135794875606483329327943408466865571052064985607797548405890378713388290704960091242645780571255065795350077730078233885132967296588386985048113430739502247493309657371248488671840570221250969849606734876160332015736205059193769575451129532521043021219797447821700071089646596143799493073303661249508851267922661258260095228394897899838569710822020419255016920439418908948898485105986988260386355631525931934914847739239166863199580675639329274580152771070666069826204119134871179910544392196692602680874798194030939691777022039350919670209581546561485300308617960777840145378892814282181035706923990769407780153652422273362258957859109849305973565643910742847931907163067136002932382690774043388347277250989374882576727399551708393655309200507073117763758071766274712873786464968392534658902445068899446235248924703843087822570168132498675609538318200579938874027386614072672784421185620007592042220336980174521380497151854245762647728811945680486528468973190816752453263155038744741032392417525558986444904143098117677293080513366840405156634546569055223789405663134383867630623051036080362308275612295610594036066679733886464276073820539201465000809842694035337125879271471425091099472009638061286050034467886732943698716366754429988987284799567073495763707376018997273273082010224453078332358456035275012681145787406927155202043192586015737379745425242051278173859082511669121725416850183551215457474672185912336429174589351319697512322616299442324716791496526618894263946520925098012925876279465434591400793124383943957090898236324460533651685558758555636553336189638615537418614127219264261754123904789019302873122696664516580609914779769249973644940173177335664359591349190996971474287329645644288469173355422722366319546275424305585595342291219385969897810182501106497460274027795944208222704002550619214010933257145008155594225394001431556821292487438802234369519312692627049963591510970837042629250557078162638687348546109432057772073380580895047084821993008228332769723586709296367959483396735192442639232921551775692946421017355684873437025997643185763132748362997554128730154426556831939692228473026253137048825515482689301913583657389338335186877211976539212725979248998171128968672309827843238659463008944646014040164216408177325847348916346327459815719681405962276240438903707173514348822179482838422653672857490694557863071835088552181140322059311605063677951057137806957864835849660810805853897212202097275091896679963767121998257974265014426809431759763735731190276884195365343061092821787447965874869243264442189854097075251856622826563511015841858787318956720999354525896535212834030417820716601627201416764306783044629165422811559514371223492810566414478387647087681158114521267972594159211409873999530753103285512288017245694652262169447589136805303210155941527557120490556500433856223429867676025273658248279780990039439017063522892696663043372887555431691122418674384557989153885503235070293631421586831600993955781242457236621121059111827439160832988017388571212293582455114932828300924264895951548182033226716823043853885961557832915436900350618397326879427546824365991560982674255290694859045186853271927757231823173930689085107429850868255497945254252380902088766752226160879994206659787978450470422268047730174513605476461495106197559703775008321860924283355978646129449568203644369042259677053836643787915225053327637425182421254575928410978430124108942474373498442655193619127813667379600334571897249011467287668756509018555777436117494070019168888074196520565231105212119856283269210020095482055865351199219916905557154352503285277864915333679861584291864359070986273895235490490582900754789661792041704859925587047671675027827427506733659755964031959038926934070870254045095981847144687746032910344479538646214775530577021442285941645088372043162236524217749518905373834527251112401655045015145463189905143132059290339017050641938906078129885286249168083089741209460966406630748794642197123401997153963689286226665988821343231681220706313362559612651419050494226672898337203367525090721539985421176543497819565375953138523122825889460604367089916972376780068301353278305870928640773934522119760234334307368766226624537398650011242892726675466548251642818954835524247888496466705333374392665311269194788794329322450213326445944457931581497019535847818627955343268781433527758488461662396918861130587648853808118360931847062653273508435608430124519491894239985175020662530400236677941015565806903037272318639026043564637152572388792964694884151504956015113613832476955046905636580583331783071563373424216941178244566510420837270828355751623938454941754123228814206902138811564583055046828604726242958648288444905787351949432659448097573678018609011480369823842393896391201792025760732629490529835911983891627838930749568128964376515982485147368615281929833500526008678952622765553226523749480767509146428288085077143411061283874787933628965650650675012465701448113039269887693645987645279460426702218515641198146603499540236979604662695375954399534077785820415435673519897226972741996323359252413203173469271713651801786955344399747095631981757585895356318736682820693592627408245029826152049877838989392922987965289822358065688065058372326231685420525558734734703104754571034001859121149427746343321065902248427413704105623474507228964305066362102377057802936184259142372812177155165969586640366591012213917440833655777754350584042357354362180546028083461452372275646119331484230864714493139608745296383641724847175838160956810924634110269295264709067241463139931094099426081659525021822488304946565509083094415131175517878173017808198406868640038565321558143499286843254625591482988644753978439078239553293964629594080212490976977298090399438215399387880047857103834710283987500481653596974078654187754835259162480142492397887018008344533887317166004236338937031502155393345538261168576451672416204928305669060408547016040836294771363076618067554252614196876249027974067192716187350194795941056429833327846038767502370887679399441296866212254054368219660495006315537978288951398630015759768660739183978193563237407965436522819135205742031080341095433072527690821726654107571592667304510645614958493780825444898432280732194745384879556877869830858613660509944313762537220530710464394911046726712745152992135589374459012290690512881713618671915207526133074255534734120807356250272535529882459137737244041681504511494282605152629156364126874068103109950318595374137310086173242611933298502986166089333649510652980372692321828203346130920176822931765063060783280637813799737385271953752822857811180480247876782721116935405972107755753046494440350093478557077470149690243992846158648492139508165568989980073035896060328848283798523162537346353140889315027075434802478382606734613607658228910742134977672169820959155955973724651666006836252410168242743195481555678875320535627172026245074260408724130358099683456372960070475642332047895969722975182981889959966259529732917052386454694237325796190736552460006582210297799340136293305337279442051577444652772157502234658364793104978527038806845667838167939220463409094566314382726456883083133627186482603292515269843441863219410027120221309187709122238653467849877625884968544883244899205402562576038407924866500889122967293784956405687324013810936689206898154883590540807254758940280329474769158764343390583943014254084935492043712702136861541070275289461997257900164364113616252802708325317280335604344543114755552640647245239596937244197441655490635283603219493806589314752725191829908584783104423680991970351301602575959178382148775479058085653217003493683520221509318265570663245153959878800955782290379167337377428061704768346040874588298636142311487380800570141638127800758153500651360337426423281622266183897001112128197460995030359935461889742456680866195720243355456369578478640546646326342237912428990697767541341028119929240409427028510238869252123143405057020240866863520406599052280471801351554813477190029183273669588568285051718783943079930817122113529530738517246301475583030485839047600120050357402683500904454151475047701106709197777833040598632213002680069558215506792566365000353420100831955486745998762058665640161744678743953191378947393706256990696180727822108265928386772859301664207424074646777340766268338059043921764847017618459465294097913819281632181186961490284231254657322167039067167403672364074634770623715933379936204539053304318095183672408667336196378762397568343740055049266961449955654245313593599260805395333320233647701413037380539858361358607092235384788711235817125386540076802931818336833191268209378916525930251298872787863230757190136937133077958127552253614285043438719864763800517290910930858166484305713735654027862359267557256627819886334611602936597262459561348643061768985790078309383462288464732700590861486673841883878786535238302954009558201139604755057669871872201815939510279955863165591009978640039659617395593918058827430490036434693080980774897148916892171021465925910335496014341805031848974986312497453974982279091354821739322107156509958718472130972410628410119245111532345925100859944692702703063982586717758826813755505547242530482835170260071539694415484479719592019355612445503089993053405286391566906580063956581821881780905067370767884176674059017087815328071399820190004534753988865527688345172635386880797222235393102381441097268462363881311509806291149445545881431111286868920311045233053311604389941717599227742504289948260812610388732308941764968231457044999769203474846867186589934621304966362577299090596313679241949755032481881177119955931556497363282846492710222509030176877680914320681473190086534945415341064673264223962388945704210491786689771321234779604686283804173334972412500248910914963642201339494979400615237452041219370621358279974677439902555505108440970420691991872415756182837211301511721134513063799831302940763998890890698003011012344616169025563251216074814043648119969502894063424251524749605514340285862107495827089935073572739192937026110195215393089967229377826490635613834573695059512106489167313158303202074136608720277273922766438641680677879556723979317414888566240802475947144552120430865667728561135617738554761628465316734687206709894770676519928256747647440752673735263769153607658331803607812087237733952449832066305205981584968807236417192093542850180186544230264951820608869567807430789247981333189323354376163437803848636535592771601248396931129680177756372438206146816199683301538461824879460537487902946379908469432207089728328305027737330940111574055303346814942559039929835227177326996730907963487467462420754555233645006896420752445409314079609810005833690482756275473536824674788068687384715178353780515344384502937634340404786827249886536703376269333514742866172266938477772555463489745509658549564784266560046832560045762257505550784893330392645277849048378195282382584770064470604020982199175266545802555116484469742548441618372392255579513364875112175372761764436471652461637426885380560203849063224317188879511382845246287872784024505595324993599789168432105910406216472393682796584283031624681520522169677460051580616275003267565939151543966847886863449594881785519869131638736846932798615292353756356685361396431002194202839892779518591011458871839692318589490436039929229417478504534381937826256727829095904278838902531248729854836084614034087125734227439203194170202333928921849369655219718376614481634753898780674369608217706568251268441118340369385051267119373832596685865914416673702979993451558663905494786345929104253055923838295656092736078220522504061120806429407374682953114899219187204392331844443371535656311728097138560691848531138415853808888917954633228043106980504121241367829761244986576784322051712808267171171851307704807826396520740981263175833700698669840578063182265523687323937168327702827241413961338046863566117637721273693208964859619628960331666802685620397169187643599694308379651924882077623929965941678432607620619852081117353591096336049400108144472168956609043766865145646617440463722752652013893244488684331685487517963680368219991512536804444585174875580314548537806723486662631867908515094590361888598531054645879450009332562332172575921579555643983126511157168998416286554646487501251949554888513440680438732573940449851132714853132781847603622267749423205199760698347014497936802137936988982636264992026946783533599498537593481821012034394097762416081960204757473116815445777981529432649907835610548826359934220252453282665864166360832516756252595173540947213996783632410766202455139739144790624245635287888292507771585075123362772570438342919612142856706523593725274875852295750451059749063233921097579308853124729639019730923761251791314739179399957883457421290992273240406855992140274906736424490879316563946399593909399485429249991381291039997129633173757380850203693535219270655276689519044125323075313801801746350483235824777412271735922863212316417803376607045573783740981410685087277151347781893962461584519984089582771874355216573539118774984722972307513120432735289634425808243622141763334788484620830154582149385356878564711046751255550313987411338512524933871017452721280664784858142259942296991835322065419125853053783514740887782458713063208554860608094497370332268787522071709996755252597041455791684391822094138007892188736080016370838244920238631096751249758088668414685444210782904858637530899727228098815590475526487470887721402463835191555026690746264777999527920813254999659214370638030899884770413141719288386252152805786774872721687395188706232100980486702169082991762781532558635586234364075942625061731267910732926536516144227450278224475037081718752642286575705569381516582991291210932957319906608292378502514838604079631137257684722231219277292312801716932825491131367290663151694536190891750971358800572900091488552184177257932377367078695582340988938495707454397944408943085272602630772199404202121534222568963177874082185600314300155919489984897424544900333566302519940452029060870075706138449430695067519277735171616820985269393288518232329116631000751028396786936338152452110770246395343218804006978698228219626344271815103051804464140403214637053768705586744364650378180647745452929874774134601080794448903696271454206094760518277171329658872460780856998596006426563242114885487216617056361298159226169232120051568440451694629304138397131841212550816557027320187124171755444634416525407774278873056762338321900269167635849984705419976362626746311142652970026990803782918925208769176701666318932251355379278895493308638201136965368183979882777081421016969696797310468049516171480027812844048219227815283537279089646917430597658679393698371602310223659040486016060790432255559713017007293237439075160715407199195754616982872021770717413201272235772040720343962495387412139898634829850179958086611058789970573999599549170301850145438361607182906594179222645111397369712024499618490860399702070460541762620506512351669902048002805734560869212719623196949321402604564429480423631170953488433134141072128260162437481803268244943238425354931510786098349573200211231001539967316388351977102302887784711142485928142914837272384134070906443163137074593474777009645079956364203828428960437168726024626138927476362801197331355919054577094167057517990777945153122278364815786380807973705959756459282068106238162531269621314381221864119320671047333037585459208724885888278542859588941059557205985798247540361559164892984721171384406000618186742061025512810286338815072712423180499318646697823969022154003985573111316452090184198040955052557383073273394019639268399191390264171071560750823291757440032760946218617244346346334736105335747061898210568578389708916658451906922241984276500854257384194003570094061009531301710072807278501135993013305706730981121749695366167766381313882872735741224843098553526766886595876956672983600972530936575026099630255927372521708212954677931069299503940438888928379595284989167739246355817967157574551350689496212471574822411279980286715775049146609654378640443807514116599995855189982659748099144013981643490603861004827225669594681954065699997209219200044013607169139816692958878911218142590044506531427826949552615085025275108275479992201324476017543210958604712540142194574327217369843504428604177497018682725739410076260724576814529314002654021788943262386607458211811470352563041142364582845382776380015110879134666819886044493156083998616649356988133410614364686907045051012161494398369209676897710484340736604302925007770651237050382753323020191141709936916222732247330979545078464178262286350260614997628965355503955811692782416459715592665963306114764226425730751248726952393030132882709365071072590032025036716371839244829144452086086368276443940691373356633824615317273522497917735275851112471903454667291701948156340276359108038192295593567132067440496528384046568933435321351581413678028863416502926458876850357252428871146522465216652117595240832370079867319621497152654849744989879510168520785014666247681566778697774972239066015528267407823619168443036603712762604381807306094224654966738316098278662213797625074339507845167038328667444301729054104980594756471910812540444347735454315649810222981117597285882201314440294252532624175086114905248946911400233061310435473051023012638105507181230654733740487586761685332247974656423511298189158995614014052171258854265946416206665419812473811042711972908583189815729564455890232376058618812327415345617420939351739572396120508443996273091541795893227788412752763911078888450745546862035771498564103982516651805990219107412837134007881198570364662683504605457436118983050017362499183830630625851348577265422697682194853253055877698224784878791062013829798553419179367575549568389259209622758698965629554925087915125753622013142176787076424002245186485997282943388502169698965471514314363001625254712231181571428394557889764827383477099686522828896983342434561473519328514853849689330472200967339691218154856779038181564879295674792535043968981597780715222883542120976543918541147746240215026239174185909852258446124329130120222068787353879889330179906827169402638017924693111331009943185278927614752200355218595050525669770893557511390475208214429679633091000038938507103040438848252860180436960046177802121311016065413927188499925469037281573769641918316616095197436565037447044854890468599183620269526843210005807414548842801898575453198491127111797232420070292158732640871020508091956411278590374546485464179782867848482186185836521228957449559793202189870778940237754513213546560279499276875714369795263579225950769461270248768646397772547071418739441807568962238751403351231870396818002331162547275192971329247448312111218088392227212204167463977117547692994229558669603892300006946765565622767190369855052844181214870919733073186710947072735418589837941362078170034533261009195218481497104029069757249049796876145228532783377200515477046387231236301072986369200195983962168334772283549472701991296715227085652889801919530134018328157696971135486135649304651164476859732255485324141428340384235593704659403158591519930356718466360018149050258087539498235771423251017074646628006525525951485590494544160420769234129199921291119971639920552223745816989027267586306980953422850739405224905697644943974305983370538834667049657064313769565310311452181171881452624662049501650624154316180648732841805037081931988557615457381957109972189829310707073575332723515479399192476464834198677343946286056378801622174061432645440083422892852430136811786724405702691528000890283528108348051988596192413712944496238140445700089074363906317830001057118290610785501513780039454589526254486820337176565835572160627279562795712595784406651283489868181161597337920539764963008898307691610016798261121268838037592232256720680217455612986157563391845340526484678337889172132970899353973765524250033007131037736700150715792106384589265087512162383984652842956791403552110938781300353218441682694460036933226697105505161800922960187647478784170278367112165863775242946781238261869823673006207370504439250829545123659609217526211435509515710694586832503402192318662730043263790527675861698388638390945404113276213508395054455079944234285183926503780070580536211112752347847567966361121398415981558245197110465960193043606061245250051717723252783826251788058054056510651798669458647445705027215472347700717202895814410138141797725135092789933437133089718059737010370111630147838454630953190557560359126543785959236308825713183070832418275024165843854611812057048923902445547661710243707298666346368367407612530401928080367729253341746190169298693569548392357013567345046492467687119073085841435874995268641462043116086262386376492206774825775071037296835215218432031568563358939211169126555410849872964825360984463413154725374679512118942117460876461328901499635344801913545821015654720105126093896785128054109404258536392511266688098701620385622865290512321273764617215080386475147855197478757427528823839682802292980204746529631184404425722296220132222556272145344620932394220586430565191364713659141693318821803893783794137603670513155927308201597749287413722956280425098331721271696696242588575502354850636706053229305174225169016166105646595842369576992255885437632681054908497984275427155301853179727689322136660922732711848917822529537985090830652092352297984794752699879766910154533125506000356886112203364497126027954352969168829193954382034620352535909236905524271217030652104639831386067645738284845376481692648948362938559385059586355497797649369477818392908418382496702063687648693888429752614652314500553299211147319674841824502712888366659468965494976967901523886865521868354706342037685109389606582862045522910141998744797635336381203972756743607162130046072336528164902405691811892790410458999617671242555340235241796433766040109064324944973252207383045736553867764714215122330343114068726571229521180816196530947283321426287550455166110138145493567946436290599027369961280050514023345970305158086088520982314340032413048795407225711808189067066182343382324868549022691567164739462784216717055967760467758805338245722604508434024793739449545538566875942152871237922681506325069352872974203134349168145072624195677997083131603321137779584963467915815837898835184466577477024254522776366572246133589459926857428565553004306815989732998026073318105240775630426874187771679261355868586541879290690085555381215489311649865768013947146423454067324053757558559467622521135309531697247978476139886077352012254184407012759778579600844251336161781120813765056177544303570381088707908712933134278155061922978414113419520375403544201099669121461450577234152847286633061841961446200580047668361374553221595285536576565399880272681872029482472221889749489894181238100047442830215000456715953592470650121335789730913428412188491835405015105431273046387667110189935739660467670373957706345998672053176500064550202230916973429890838806131529654570308739680567137984014499199648620223697539657340939237514412364091523782094381310249278860719646328181535770305084219069155097223519421301993648641432791163425668560442140462352325261254657386866198813192806643767835893617288619465501253401928449290113654391129153123622516991531444646743814334844157763189490487913915816806292733150009848503912498273599507056946660507845678883836148255011872923340448916885549066593857166517961915691729649751670659568910210782434020752556140598191546799455660660214206546118541471094066936825928566195288248557582836616790708526592946533493738762411944166112144258372480471538852271048918245443603664680643910790573554786381966322564770997812149622602779903797011778043534201461279559211789493274478764931669608324457260013499345249272646312696405804844878479318619996520807115948248980879578794892618460506032867430335190181661374142048789604721728344897282563870845528333287835695628240208090645665775687252331600993637969627765800865798013035808283437847350608991017111809859123415190193042111207687012677178012265549593184594332146911265506777679471581013540713354329939359626252790120251748158403748099510228510002159019721794750062321489429254377094127789845088282851847538047719122453935305820877187299018047882632730125926766952637050816449362298365704970519814855174978549365315835348409646015535156594510828952307204790789247807221904432987209256266274975116290110787093670796586360030350839170590286063163795491933977789811646397952271530537964000534354501370618801765857623550506659515472781777067573433266985891755528704190618853779312810411340107698399815333478725579409673829254565404364070416770703395642446236239347476966980113227177835699675032636255329468307219944632439461747503215562208866846174565909178534630943695081040102749927516849208026650250700749932379534950782967688322932958311339821765107219488706387428202854918670604155139486736782580833562378564365703371009882084007266354438945078036053687828088259113208641224356021396342130146415706786309042516206016075319979900224524677506613073678422006143752026958719342442284729457236121731977288097913642244976630582065929029373033290595285458648220517369139044796477026248117822934548472087606522623446068094798387141288920738292591399556016070086788082652224482391915098461939883011160718174792770490019674633712013349256243900490190195252483226831682866169594895921986640183890074479349035923150524344933711903420159587654335064679051075559469821761219378302610918543245043105769706123257428472278383680707611116625787297555627172241135439396960749560846083164365134506953755567020326401724322995979622107349452531758124687519986303262924199137893051430659028912410670750437412196385461873062460969895565494535560908663033451128123809054037264166336228861186448750898676683862868769202169147086105561898499306034905537854828930998460030865435348073486981784203773487161094933547643222457124597077549866531305683907659821828495921207290786156853494986541013222770860317773270282227375872569042057163758767215817785226553145098616410348139473297746263217808100258957043010759888203322500889680024191915137129480262976862933091082398661481276308457270340583238412945145892601391333743985069125417763383869988286690328090569730593925034135617436737838877062145340885372256009639537887469301288451060825293278367643005612178983322419020218139997504623286288998218509134938273366412905770678996374878555764435518342430866620281264115040280378190376244284781041311964477658364815429146404559961643483446500100712385660331645186273980056024216183684113346383931225514016212315207223837019729109293784916039666313396739374182652529751894707717703484507434140854794361444729516748495696584749981758731556091835581006765933333680475641436355601083752868725848836413007828803826613546934971015545163102179550086436476282589195199461082981322293230604306374418066651114566565723703866239524701000469542186869921572244011511588006968572167275500673286731770682447042023926519507099212774021001539846332033216529930812675676621261917746528802845795715616008685416041689784054908294268920025661450302479604643985966965900240889312611555119428110266330467362771824812284083695291357740105437346477615099026404312334638426406246165572902411201790047117613547932851837867736963921764343379902421117123747689560302911867411819700797407629023802200422835331258575963149222099108989163447671341727155217413354971244208009491781512342905435012289245606940706901690481936748573425866958940453322515884389513449196505273093155918347414853660477640989779588028755937101997154151505657424276263193455202550888842200500110683757415140062665090957503855222483080495304372807210956081533598095595731065826559478453453358337820195939484642459623640892736852638934436528202498587668014046731806137817466959769292770010786914333804130159586374923468611504179343630823930092173838141380188082217622344985888757275172206797224980542738507991959021093708822985431890067979422212212144408731511737626109669019242182567089493018000391034169145335656131257436663973245653042298381097415454475280724150553557183541161032787598349225198179972555202455514980682091379032444826602986622823639175991892509072880038232050160651786919907188800922656095789925896858735628705747375085308732712636574006044565599649707943689921197276029488415848270247156189956808003868686396423010377976169681664732836487152291643664458632849861629785354589484806661047789690348484022947524649019866064028360687393110448883534528600984241923988171353816510849703401591350169751303755803511585626269192185279792915833109267397874640693644376231135910700362379216102727653876705508537028583238011348136118716652321940735938206208014779564763043552749181531200120193236612195863076507834570704226535868047395854119957216059908935906739782749723441735353417854696640607881438571059746778183496556818006579097678254550260893196027949858430404361604051598166679711212446196935339547504851248755017204313252943333194649283043864540944253218900146075078966504415751015114992369722092899233844915165863137970742527356700580478368085979822607886455765461703183630046930348888544703982739425266006519919915619291337431170785711596426826870116691810644955453532969655769862042062998639229751607885518290733762196789233485218623701367228321251615512719973152988609936085634851531281397129112128950325823540687876770110575910595251546700780169419073843922546155777285281329744191219031133007587885225388247292050507898404251142372400558271147241437722507817560826041226856510241389553032810417738043948697924781830171898907743175540984754289035554756171346624996845095479748088200610730116845437646738079252167634835390777130355358346955551396195970671764254838877114917465833531760683348904106891883835040753238216959657512754598000733261891224434530621082165582071725572072445994831034316327694729057682531524714926640910782673926727547559960698757535424319844314076017513583558316403086649080611154238719790150828322212498639443645040288681618845997040574858846142986085448465503077775431468949071345676495849997485231494141298036571700640922342278706004943660388024876588294785710372655471458715030275555714844184655668496693463528978247256196246409606118870260625685513623781598118011919423330953054724147670707262568596287983232026394642057637045929163538941578322985031560686568411394218580949846937772875438482255058274367282818693047850979188206155559866878331455045979707257468943956243218370336608110050413445145872877553119826738381383478566081287267321051145482012966277758902898014942866189612541206463723157971665133137498751748359963076639939294443777091552671777232270599949982267114332492937479299945629955466761520470318343371772406257106938161033031687620624628121919151048661740423812795290444233596632837599541624542854929324165415259862880189207163264308374596236304112973421199648024037617591849086591366927553357321991995101973091676652494467501068924123715432019568156498757037962713102880192554539679655134532255956512956777847795570662693304939854697283646127290965085051030526529856846518083640818447652017617985309232605837896232333191789581132755632620075064183487488534001934256073513245362499315117672306557471622880902885710914638003087643633212657640987556772055943953609485158733445658321531498877064645901772113524769901650451906122666526455248838225017591349368396184529493932088300479524361336245964973525345842297397918855300962046437422410090409645631100881796529551799236503451241597277626318264117223466766473804274067351082734960239576948304702542619047702452771227416259488457761479989943631102106808512253897574757976875496205300924984225639449596992537852835615466585266363691252605542030606283367182357730478287431600061024169951106217785313126689013059937322906782707532656879334181988983173444821432719530840280883099460011228370302679476967841587641589758254263112212274098904540864299416916992232048073804709320690448569282410320551662463261034275186199665639707111316127196992909742062814435095608469270215690017316300003866040757919873493148106245292928471510638867688526520165146629012304603099047802711088167964226129763645758543701736783984656768563789290665822500601408146206686962406615869136747859229079043252336730499329674167528952827199532424202809990255882781701342915483788565222288114099413715758459235313223273623454677036643756593968308012971555222279526919516552096401469850653387594888076156069736721232517442304982902416651905401882580818797919474688126821499597467334431613445732569237120169268886039138041761089995278625054963374832587570481732817185269708245341127713526960509474039926227835264696510349354246789807610953330205436534083113438231434378258736723780958596619067755397159788941893535172863013565959365749504643216094385243182050135408494816506950153758042968382561087469761703919377476448814801654102745522377740897751065914781719005475081072969157122008762394830006737733345154660432891633453186958766746113433099236836029582370044657432761695921654560276439575704523451610148001634457373083207363380174669266444640484455558914120579947505622685555123387403580413497624456057961599378829352436669618269117492427071387004229553859309145537050197712311359043165434274940547349270327494264655184599968289983530908782968718075778094233459334098314508695948678570665960674846182740186751868009262249515909278914431626808610818189428807436799907310918498368743933249144373716498751730884293526523627788818918213565638962742630488061236136858213732166341380652827127145578250326782324265503998288785018522268334656705310020486250452045289171309475417256834814769774206710619597070290549963175851889010888138012467379915318054708484369845925975290454755117802204989060222152027850927207871924316603886071005013204183579891094226420458901224961057688497789243612642200429037681396697092208530689950236262166409405457634904675755284592581319810260065527902538054984564122955986856720178743412935003907492654887761997686422952114889804868654930936429179257969765857275694207691660849838592283999890115292864836916096857650077127736974969227826753740091867023051484897204395976904896634754732392106936257905189051812166916383449329343841083247736032460304605950587358811154900718603368297857655891520640800832154873186294635465367142465570562695667807620278462394081672417556057005588392609198874698902468921751960122595225155098312571366018839983727261653659501613089905278058104795590032719207697613135153159978983902193415487705298240039253019266496025428139138567665774276006544252431892821991331523940620321492510700840067427590628274388859865896911518474710881706565794706963432331453968988775293953405892329125881530169353362167145901324385387969998490044522774519565736333885298158533607955248039222665889504226189966540472037880318752170525649012482385580322535625622697788277566245927079591696356268083023509579609430657156642301327361294599488804166836392419891544552680776141667555053603152280663695470204422182199411157687341451413280968763393422083000833931872548473164109899242813572603995679228352649169392352552477398118780172604702300729149225988531299908615689833665092306301160549852585764619787880845634877412445773848840323703940728222023392278578252228869220751969166722728795087625472735871919255875336066780528972830905547726992745262941235638424600207990097752804388933272066661596539186503097545988861176494053831795822420939984868309883039259776938298246915333119241260363305728629349535407620201834433704334168254949694752106235650397284611326166553240900045365342807786762214794745449327637625023244612118807444691066091026563892377646172867906760642560094228053482113875337791812297937177556704649865365018284920694493644973359895688355524221879415612564581543759596628879772657182719321850681617988367348232656690564783113555212467880518687303562341202933213354267840270853274008796626851548369877729679914739696163346387562849603427610430595607302837603763790106929625475877433495175765762820804962477560950271526186441010597347686179887271990231951959662130640931021394018276979247497141503469972343413358037784636894588394186748928696347244510202925281328275649634662203572397701166372293398640374632270155899335933441065531054588335649652172568662955142981211027854619611973488082619567970210810200013958211431736090494961590568545104021123046761183331139435746868359044309977001669474125002032807453170339320029920680862786266353360862922874327642786527574977581689904230061869409307832488720044045547968804524085553788890246195956034676015241270337624447071441548042373985027278896164418828974770727105044299652297066151650370423247518322505555150908070780463363946683715933809217601808503074708259421182703593769823686851971304830231310466833100136407697612567819850333580041324527855822918966729192125463893186368880976014855424369341040984885379362642929311419519523042452627745509501393527521022602609093997555920972941665171782259470672597436804587522348874952145963453459458944693093593904776611471109095548270526376987532679192844826667692915436761300987177748544507863267035169549020288020641407784070235489118750815501342152234689972693398105689718226840280264296773580189159011137646276542600737048996480014860859375099930024914335879645817870291008399907529314782007108794702572606911196361553055381642132522794345287903962382466326455118774267168807773576774692847258932598760016446855386869617380964451488228736102462097421937065257716491922847323593748362373051107726524924250752601743000830895713196625449702464650249887794782062800255567877264971436227026290637641349541602416180898603933742792512543400141120791054301020162605231579621238601623623230438494145036033711303582764892309349493220139913178521997149140505145003687781404783112429140291993434901312632925121479253417765182898217663456903596952225858437967964275247157351739639844644520966669180549313895418964113946632886396463877266854243414060054576891631315700899320463965948450218987732449759263181856529561127459840550279625035188427309092259336876125758959300755747989770077969949409999060739067747819096800605698539226934154220039485493190983769542657353519209633590719586924907623319945039293519689923291374191535750118570116924728147942634589774749324883015979227106333235877885707145303006882570621575297067484156031514063341175762785681234810910468977929535200231348366299687264056161439888843181120389072059678055308443215028948742214645393960711022161399045579250407681902397032295002705703162737793781458379309201418641180256001036190903028455671945839831683143930037900609738512886828150379057610203916185696912848713712218077311972762930270240379899084302815294017590970095464005525986758153326864101657428876308842393717933612897793911315958879694782097645542673345443451266290244885142470437068985375256924647703150133742693399565088975574081126005071285256755633547300546628057985314374403368669256484584369955406227582962744111378998161889870734456134880399408241820570608205435347670663586380054745895236389049354087857973928045085679136980230407717352361818073592606966669182706768564219660308445709955510251302930775054021435942941971938970035830673210928084227505736509941013508560896144122814651773993432742934262713117681631045068812050629959551955803506724335189157157958106354836032650829219623996852192200482986535589995701491200482765567119747789761037281421224652014362048710910179009243977915581511379420976859098237562006282558742894527971115236408684962986273614665038360841838114846131539817232431416880276685246691290341673486455871758004441515789942280798219116765421949857336256120288741171581815021735970162972130638815363772461806993730143907473494895786582241586379549389383937751882104493172064336799812961831975310432569958908668218553497129074859517531285901096236869511060840328004776566204862285343986432869608479278184764057618875048471840582270754557084598271115606932620880813993998269005544155255030713490777830544802883146785939839806764920813808032934501966318692963722693901165142587293988533970120245836711684771460675270704830405630405162899465038992271158444138651532677482380971245046808394176435334313340265241731320069472807813009458557339279870321092912804434681962219836700158563232068064527488739698615629667477969543601267955790232115798913769479072506568670766313788183088953320880533290342717030177729178878982001902710093632888234824754078424805615862614539109021656014126437721345856848045427241186684756120878700534407819718355102120128304414910929468966136316926148689993508306716676437315603624024686111485680410042948389628562892414580071206592008605060634654884692430331331802567219787205037045563755249677013396735886866960378000634930436581345792106317453175750168687749114436707442700976082503977982626388028135413127565866898909856495235055958442674516843198831674022455254089014558098823677438011050621114825201110387207852083616493038890960589466362465826524002200794898116803649203787539607772571893649450080497261206332845433833229367704669119145347818750961669614564490568235235513849940937562378192313604260312073968799925913813103189658473509314542034971561254989941925552048047761790362466244971237275576016506426268182323151890419405915104413304388191973126652177687528023710472429222311687597826672681900155823741436992809843993986948337857728199166638666306438134219514643889017973593565432127345741559428480571969275571103018569473660487849309867755188910813211920250658441974662156709906210088852254340878878664131447324560010706054471429377305935159898507813782943093057642110459325090736592230719012322012509142914172708655679152446947734461298635561300096360081409351371260166111134071678872079660636830551710061178791330962150772241811744199035856214629711632815716198725374699814023895697027158940057019733666787349308440920023862227548461190386435697589260873317242838464244027545054067907677539006732290765833919378625171696136482903554648154295270687200345516519007911722476977690184443547944021293614248542287030986725861162000024594642029191466798450962206015660013403164594753708839929185097354705041791730212991563419659060482652805346125458553757843192909186089285465175687062810880778318034889093962171108373075837686551990676007432542205533512340874391264463103171827700373376159821682376777341651753488810795638251228795817527624807965272032400597036552574302918650857027331980197357760633129168995554739263335192812655989717864244853214181302588211669435099047450364366835803221812013714196115492235015318097986696199218718631782875873148412126221015304058732053491114467043371419077669815629210815288442641618449741312441652276683374230153254454489394006415911624767670634374658112545451159801178034072332491971517389886202871312755792983692569559004956931365661778032189778897336863697533959743262247482953828142348103698259537150885907061716483057554917645831020157023857933515972012735841641758526810649990752037264075077947192519955661124498107895467535353439761718092234221251175616617945296258253364816520079737163937857636164062248801607086432421118926255017640705495047901697603577945384442179872415069396500644660673835614511530016736393971521270455306472988572118523021925058480104133906817748549519136635341190943430418834516474754455480404295708465969997074778956282393388523011570311158381005257955263456969982741570773034566695744510680326860251419174370617541652354737746202320338322286887829223831362195350270706081273115825535041123965812154884412565936918117168335881925745260804937369927210466659056487359456603854504293019990336513160940591324427948351758626085665353291367300840000917537308413921176636758544178686854989838322703119037712731677285795951470259981161811317220750657778377479390970610298692479605648398475038251590571047459586915078378425239709951943799228789406786704151296279684316232473121855983679172807350721487996801221165435126614297922818559530622377093720558789172780064226639395822572985087038172354347747883494277409598597522834598431714006321076570405884621529982961843810542978158940528926231348676969950713487337306255813637593324405426593595703516230891991636139473194043614711947011453861931074441461717230329261542602700323747347727402935031186599197098739213651732176458125666822094255775079318801405968077380225021209375593969533939684474573716854670261137854473540580821184178792965867003372941016574457748591782422555689447988925526638128398514412039040947636813030241759235391096177864497740550073876451840198058600857907353882844541738010993472614178696194790807357680821221028974756314086189125898133622173994739353354608645070107006253270637573252743526962878672219709984881530141802528844180490525288816072113352415585925417877017221623080786317782909044854066896251333144116365573724820472474577560569005479407821402001725994726097352704724268820929047717685262188367014338068296206772037331178097667761838059329679718925034490099889489891861440988782933838612739016592091249783642391294578747426869939684045150512920803000334960893868078765679786040911809602625316688864446309586430125435105288540834533099986805031220978550435554360946104480316866788908695971401541388671149946765727999980496335475657922945435579136482616776297907776996724504224604667948799904872059377994366236053208354709404408203953733842604204721910708281513106228477573408274406057288172213340441410397208170935604312161299780473778057481790021862826512208481120617761533179821422411098923547724608840840849620176678465866265017181167232346393042900767602694894358174468518634260681181937479537019424270145072151655864329419550062615737122369360945219874104176490062629102548641665742907781238045306850158396517020981979252060414647435717448700589690186852396191676191962430701503863137733778793956084848390505757572240437044578415790737181974173814402655077094930252281429090293521886657314256163333749437190797334155612421491299841432851965916444266482269971062025714650849358744645422616049984230884548185901224299865046730446601656423199507630633441633726736219420989887820803714027398189353595215134685625117861348521245001632347540572045596525076614626595699520399979630267896638272357489280614017268852742724721716377363642561932247723789562135271667991060609618392669675354571856080065069733056927678134702720649092135459020847482575357020033380775739418539429663910774222685398886269670363904994470609995218343732865302845457557747855058565284577182031663190338698923008419481328122604350773642156984642409226036099093645312436919564529915141020092757363433793546454184654831485724052060892447273285143375349179742606511974595708665425135810170527130992401008204032889273538395050078944162730752766308651990364365400632305332472886544178849077089502447390997312160790092702708169974196138635895601131042035540811584332460702699360805260023979306558941962643037499408033313421453909549119253153628560325899714631887684997940791215897221212783296340370673566922120676789812496443768002519883054689448135856551356299636501556050434893356487247794240292316604382554997368046790671270527477463023457404497158392812150179785022957051986397904585943857640668454482121076766581978388972448722764610303172354840407256688122497457177714207826193406755845806605919144217787420239323492039036551263725662586983205746152624741808566154673321953325805205840019638959558776435440077914894166207569983017367916280100907829032535394583234817560930621749625837939611927145594732001150301548024110093562312593372206948040020986526086869682876852950109059854888326008702842395979738667411575662472046825395729132971530217593914266818997789578069725816361038530630466849927902182604023811887140824653000613918229211851909891390559993787351441709537770136740005533483569553312514640879399686041731186189144031687740864800903592691596324277375345362775517378411981281912357377368947706255496315660175832586504545784769807373544185665498413919895745949963465986505280008609921179133091844869517395787699435227339334335749618764895404207563962023364770683229810667430924245306416087802058186630422779430507908462365446838259658027884223384746883545010427651249277855208260704268303373893216845781434006703559898022046907773633020818463855113994962042648291957204971281010938872857839459626479233604768041802637801767875219697725216345605955810329891723232647581164058582169921249941372070116547541728978149689265180915177956423780551339008335745324441323498944038124252501398625807770237800859240754485044431802572917773443363866542853825830387997398695168823243496136339572930722548014489582358987949740002487841803019629678209327749797438054817492224199601783707462917622728541069566490153076753248793253328325081040803711309180693152386950811618973027548460024005320302971211787994927542501241367696450922527069988993432827905804146724250201834084384069556280642455044719699070250219744994914873577156202802478825545751162613802790474889681660239097652678625131526185894197685977664256398705404494971665089491112246614727381031245633827152322396719168382533359256228873782011169276740738099475132623880215971435393151945802786883015493545349985147017024130862005885786800171965775744689468628143498377821702453820780088549024692758545224763961158551119063141934617115756213619635535577699585398414205826541556005143809836911341280427361257725953990145551895899549844595647728146545305264465131073069793208770174661202083377693369878931176874753570572839653090569431649927938613684481164522119319245567421124258506840116097605921241901792438276223716962879448059150504466264691616761106127794609932490007662736263022281351381815507318360726320960630705776935613624692773661639796938633339011922105279945178633554259878763783991415358488554042937416359755301429517336297842732609929465488453420034901298733230860004493219409704765970922774430613190986047976771659785929754805352426820951763711843658204496541620677370749395405672779408571612270005892777877438250050424159555437461178102662522594713024643252042598382496605748706516074866843646131213920324042373502570411966937557264828735907914081309429294135739104685215750345837199166043371889393836388172390913139015031143563133457062154280524695083225373560118976627482563324256165650738912976355394464287952841452651675501000712316975506476948263343695149363741531753069511568396460493997511126551241098219272266016662154841676013415705520455887845687782177594761037647826314710218130674271153197441691538571680271566328744194314646351510266043438827294564486535938444633655403543417376363821224507358648083517423515275113960057709282174803512245435848611411004364974618503605349145491656197600362602510080304785597831430634901026603976071669957932206578047523983074035541102375415839956739658384184196788450079893866286596314953992677922521318195960340031910813615551115957800855974328891570902130027982376656790592736148156287785305897240666213546917397647416150013749140532389750793297614653088004814570555458680792614526384920494087863773666466919424671453056138712656161605591434816850304581450478876108667220058312604899832400932875311670363717531022221122109871023805213199034565515512923016647082770799945861879870285632654411592675368124026587673452387579710863701618516235128516627223621371700979884004557216099173844030669965447829299103155283178827852912401692166870236148918203078151464949137418365233018084470615502780610560746348913281606190627236799125351208705858041458556018857496997781412964531526627728506019833757340359910595269270013147720350278420372058063283131523456792726357550176291421623144238406838442160415006958976524175189285866449666826906353813598903189002335408679111575237378751682824108015545739535305797469899645207746518608909200809445656620837969186169021007934855261199976761491229062385950864794570829859663877639108881265941353864997223326717080420973247927089503446259090065044609046485115286250266528062823751218075645418740413633376938840538278758009172618969954888848062661130968794847408507650466448913376318673291509279634553154886826825318332852811340171283720119488343696005692719888643824335210728181531913864519916064291016139258749545847531681334213178101967344136807857769539237165001357511531330421884040675567093249937088687112928705340300279678395914672088208042921411932080027913677877712909786226910978343037697024416735846446971497709278819912103658704790054901418994964892668293721393426545549086790549006413074013601728298208960693529942524555331261713724941977242964816786524910665166157961646984661638181023865085785124075221334867256629289421700546188151389438738638765182770871091995885470239496143776721115606700140782592633623013587603539483713537141352588658479124115593017190408614519756083101925101747405273871457381794156896237977697995851618478234121864008016920418478111633267269175130072206025508845640737906718518429315649179533519323725898868331015802045626459820623872391480800797582788047187339947003786342774677831229043185687213066884923317923273732133157567863426197381013526983290142536241142815815781227620532761791603021602364532513351201859578969136526216270255533798894386407906392278388319047041852617195140373764941040363849352818767850564655889895029000932108747483631723864983777986904468999274642602166782005239873800729314767512063686391685589974683259126480501829067444206384645219608595849668168882501332216789676056225063645813200503846748427871059883042287258473961743947936222765843769965006929863196366235960244147858703724735417506782027225786813298820135476492212122789484334638693369836248261023915321431888011958429850109101078995808885090778499477569899175149850548190107546970992038878509935153683343212492902873593114086562981205014296490873484125098587215814133449855492881811379062626099216553130785346076388836092653377554842960740225097416079658309658236746379620223256281327512010756119572730043438096322202386871777257246486316681231820856948852698283755193634164248256576403735524080426021014367742295921248612702772215238415798758890042558294988579608871753593821501233691024802735353713201404760236238785191202906668626787081716939621894060086532221886493898886261821474410919837182231568994880494298657236917816136479409379472060994396805043673025002390521111353325719247107789274247294744162937837965568362066042352028786019043869622983137416214350074221497692487411470418222032307681509785625730495352224915182245193642759251290818035157312400411411728073189053286163072495908326040013196748968797581763405691354449210040193662824458513509620928955555300332261657637591049333181798784508104632322598488615932288468947571528187061471152474080919828115187458294872945961201704627597365531940552344757238143575234215097703238879519439168782555427259630923046587096945512211739456899805415206362812608418439422374486925173622721790374685448272815908712519450157478843029868657194536138980539427428389215589290531918214734067658392383990580909455572386669961497088937197000872467057673824457298506176500225250635809382147018245086601687855945804972462051368902364458040362782918259374618902654792354141014587503205626793302001604404622033654963511683366446192429209928206109405667630520475001653889486031826708468897800726284022574146210178201928230930999372680749602708374480537036340317267686304678824928354567587849066194750836291344426502580995222370757144314119408343445333035019469769225440885783991187134741590215406465141489524835113601446331978609107147577619675125494190893828543824089043914981485905080202158890021185267976303279841665135257952417039965595752408340178405844761966435740362713472412185021960796262894017831014619750067975781859783730067727743761796992952546644672908761220042814954267409035089685716815913689324426072841627102137577191353558178350556321552448830472228076523976667737603629853807482638228037865493958853524820270367497308504960855485804107122358488542098894316517392114800733299781537003821463697669788471703179436726660562917418699104751439416420214797039010905376874203796835119475372800335662145038551766053497576955992659368855837854641851079243798912377626159681159635657318442640645866158379609210578576692681609380917263068453426758875908960280891350657148994803483727644144131822415008723887260349671373161227841183827317765126391000752482773908446411699585295685333814721480227803028280130968094881536023019781471781737903270251745161876799784579617662999317428638945265529088552548190380041744946076872944475023038653442637385093522428026316323693457914229386710706389147368591253029149583115084220881593840567628173884940773650917365666570626845064683181708328943565664147849228210683600870752988816106415464659857602382991424006450544687276637935013636999613231597920854005923706882440268310822644084196144286742866452468115465278099166605012127961806587995316295074534764122447707030076654776759333873455824317000927014501259205253043603008689987201203676970078915415197060146102435811165536565105257430412310465130103143752680361441355970795064613068967708425358081198214765899264058627682206051287340140014681726014325480851673532554035349171380716692604536662994808443903154058621824564135297831904084535446127616653170827827928992609428708832117191784094762176993392344530545932268984780813187925879740669269649431248638770579253139027178688657922791365666732943207906579261568455001912983209931879202737844483718033649473644150735305610207147034071785035096550604959478865752036886333942492391323202466063606571951439438891911790010268490022116658641955024755834287677997681893804677062709087024768125599192301365505795727466641967794526916880637049674920614678424602002307810494398170459267916269236646929355028675377624287851947934578132130445061642210233623632076357924666579765919255960884344944407615161732842635646669581228501585961212739197681392643341583701169612668248135727740784073538425315150693507595002940711130692428109725209250086914251771967023965142125548559672913178619082811257856879770124829312419305918461654462637587061759878778534006756254661030532178954088949884443493490717154265637107703392485284972529484957357640272711979715006922846687822417000368194340107902136892398287026538085029820116197226740010608429672380600792196357782768135056069480361393852303269410298280650080867322767774413388623420764860738963789315921160409840588527259966333505279505836080088652489823287427075405621342784780548676981201310683390007871459629655298625824351044831882608948970836290639168852367383441083853110381090250620834390063852779107410772651657377863764438105056391735427061689796650466400628281869510975419442849071672225381061725399203354716622212703480580137277304240695260187999727329702763299049882898452337286189784610954875057979539443810557884173167556419653760254793126466209973587770045270049328478072874818898142123564004486964651780954128846833231708750892199589587698899001853438157881830301028414741984112948615048049084449082619687324946844343881316203366288006831492877529803875712801332465386757945280975019131418397919791765184571766054243243935520833409111123560049757893264272781323171733713656913525768869048192536704347994508532423745221049207068296183523035500249377853656907993962481215193424085249636071532852849574224034587028051664366291832865517681574599161224258214757943227269214674507695147832410244021583428432273085140497159828128197495632796490012643885477049222248754565627860225221119811395357217440022290619437348184683527853906040145289735473886853528429585817081507369581077290036679995736613706746628030982924378214135507010776029873744358878922540883189614896075274015751167869508274730026109819778268246943160579443579067620335325687367249238315869158635570180109158710603108805133207609739972480095030310561854853241570106371176175717367805606288696558545510045062023968349353044060132932638612638901657380772809539177027086014703979294874429258799987282480421440286112884654594768052507403344908658764313630347420358229157094759631624300970604569295623025168999346442363701824563887102246733002934218097848440703680559755295740332818251088724101888129673012032535897746584947102683549138686790461474089134478957029636086270519106653716421898571636937401733107241978034324572967168472691516684717824039353027596671444622422131332791738240434774642008436383394376915852221644227446093622976807031048557157049634736647193478178916065921044635047164685687558181931630875005130867834158010259851959628387833179826026307546763593913528148573130702549215029094901336087359922113335410821390333827430676775899836350619110167176211579537757622683889670834656132320863319085809800238247204647971226961918074831315431225492117921839106796111615143747525335298353522959580765371228386633722907369565913148052999855835286909680899917314298512762517233869914729004670754185872338610603254202110255347984331719814294929490770956992444058327540108729382374102035340782510390849278560091553107127981039378533286041645754228223010026764484124269750497024838263617061387553728252277464495626085009025017817463401039036485079015288713532325755642206619690644091907355994490569097476581841283686846020802467901597001618000679888044425863476544138079445248079600049958164383598413073567146113899617448700787351768134017011459631107612715230603082243829232263354691103405697770343564797578186356524134526670889119618955529887488697479882121674248386645650861105954559273134949913474707096495446708879557764966077400932083768187826578416200203458064837193963822218806880669795417350045095055595186067346370835687043955472058675410870902002826977078394634715672152296281488604377352696670694273508135197667226183402938342406457983565666914203501013097249218049103217263687399716868385741088943516941127482406401645206866177542441944086370099652991114267834717565268985738605163495825075307739664692960483206660244994406111021228058803583302469976017196074570913066554606612274236155979370533179609196625941646939616216314251525741473869742965745368235779390774594305818584167701091177163862409091364904681773624320087357826636336150608630484309188866698606282420388045323842274186030894740513582639302840203405903813417395846641708214036254176905519112391936996445585896667150112304406624426410872552570708844334064296676801322612659886862078592530992381097478210051365190158093254786505196002955371800641644758212824956773456692006617379033496140511292840815782166722600750548070230776299753694992763053781521072346385312988472498166973994261668362650030393829033958168826378012617800604500313401564089229039582977240602934864667365078711173781836969870364323480756094899806236151703390296113536734955845304237316667829553278558295674257922553843116296677477692884775206783450755612845786230483820704002894676795456919045796757444957461408923268749350707762246449143223569619436588550139275375964998865454453624417533561796219525660535833008316707564593239393264752266502519291931549082199571405170897595357173235367372474835765217854884836808977025748285375419504956936762837937101982211733279990882906820225909715993041751337718004646043002875045718999121218651546352444005154463627367297443688475562350722689547039755638410620711015744254454266288143328188187661645484136431164628329095926269209368893156174306010261284255725206985829408987330828961588359326506765729782362276886014769507846956243537021317837848577592998442470104892703460452451958426501484756927983981498152499381826122128789903935648746307147733822026124721519347481004155164692045225249952648132580563755366327246629945044281961385238716304824027264318520445430084131843209328095453577054787806853265914508029060071538686937543770727201474446692288040374062601970542775609121471671083226369247210152794063297539862887638196299509441939953762997215023872023242141843416917024837939575794922703332427405065270673807116255496652473244094844340044279521159970167461072560818509182625045665870936905486727638314309412411283900471717814896604479502141546260635100558864771606716680520267096292998347609492684064001620348160538332950403731901206567743257371828218740724728961328985762196342569354820659084437198731209192311882114921715635514811536762555364395250475234288680567987045436664915036033164686447335995291468609770965551469425858220409671546341226494080572573672242931570703262704438028121234915514682507830514668759802751903195528119764797576717001864726712733006619938111363267189996892173811769292867964699093947859561148069357432918176975880796586194889803553345427050534357522744359276866655182828632614663711748180263711610585565513623076845407179602625388175226059518640008656043654778367014979564544947977017090700106194891693040970444120842421639396573781595673929253353610702912807543117515725228146716188412032108848826779307894777482965321788549178567493103700229920811804715140449703256830262131279414623630589608188495668960864878273695811935820350075979111408134799212514403621292859252304985139562935351864225198830448663170730096815369109278888007889195979849579754179034444174057766439612463284583948099340496710844587339596934668554543728578997795868202883237396610166546339131261539577115525845406817966737596476484827662321254973061510331231634949667832265054972458470256107419130079569428606980762627583237813742842852150435355030265000254533267762303144306567237773718313324741399683429389203852766735358943588300567814365565027924281376066499684173173452152715413994831407538252902435797976908557113824722003812961887852993146186968484206264993451958414095416836855451569140063794768020156290237157547575135309982437316740192612143824206290277453927067626699255818744537058865095339316335397011507804611195798430687263657906290670662076392959084439691731066140481019877845310970108138007702268093093681520289547388043430832328542631936028405146395939389078381324095879248220065227934132262011289244886277700542243557611766780590406793389848618713093811397131703545581833076288457323711255384343550085337557517659058988603446372224608583604223710353490960717501464448796324350080351630039522902161407706436550756532964671596592150452283266494684076647781795421610052109034915242549335871446599791542312558169649984133298546371754648058184698217851793436098612216501069596387346314811337056517864742577083798232425093721036025054011220374419225237201741862531818869462760408504357968447984418247825985692281477655157197465828807752943575110702304593683606040544564863745810784830900069734103277179340629248422425897435029316997611973374539052947915217700715151378651605861251821435697482249069020802072382916646425612690844034060272003154330769592344986611078303154185024804168017065072602106283251426052286954289074693857865841101584846593100179146894786446127424501533279327892166113549189439483259721011883116159094698250674841885612313403035388161895660562698525130700766308220716770256475080432274359033331153649818710414150393081080351222792773094663533414055183779864801622979721411565640619909282216295974726906911639167253393602260870657682549268978113672115582432821874843898214231613536319113146950542851353932352662499829530540644698485539860160568465919048301772790459488721450147330527848209368641646650256502547139140531967746086300158498130217886310377212483035272082990027455896033345743790000150198264707609570221043847507035126868807501022326815896139155649847421507793526530186658962027918429178607661321185301558285515183359752079042365410278912873721388416242803214465659532077184302644019530620027778058304766863717377302560227706714837550031303645191413375844459694990178277402243814401357019692803306239648144270582613346113176365183257864838985207270721870226393066557500505070240379612895792297273479947938863933221056019165046690603767381161438803214570443598211885613879724336223040666124775913952460633494939578801583797672767836827060328749093713662092110163423669069034700577736738744447653819823718079313732532737431228748242897171539139472284341490073102725013940823341159100560092005974088349611634645224247165874815171211494616794246761214774390224755557891554866275945162519902299637376266400135737064936169841097401202123817727078717075536294028049896927235255658219918348457439749472695385542978002038951355474684030617229504663907229178263773388630658022888628429159334194374171605257885251874485453831760661201994676857417912618000372201805864163382712381827314018639208550062371605344171550554158277526511571828887879771222053872364343958676970896130153533839356128067810586835939760829831830174483116257734783054103602493587664775868681733052793088192930643983529652690854811805353061883215642952700735743927168663423210741590330201891064805387553064924111772076135162282975323056795921574274654801207472516850845957078753902398931691551529766824223403331612763878535584118360483722245172547576195127708518969759585475838625580106588663562311049080907865430359163960834500338537691649598697260667673568115850125461004278064060411365407404441081537804700933167605542549019815921854804830710261871736555526837467199241175454868261439241085176403532779570112320183065529055136236399494896423591708687573747968379127249439100592958852073416270058907371027196360288135352431136387404980232375747299071094097236199912622848143363034792335179336108402361164889806177645505486403669986594262909347056538244179337758846206096937228927885082646570303145825752184401986213159277973669085405301316034870168629264733649998414808801686649629342474066408325047538908620980638428023250850193793931802572890263561146576901280895102452554452542372935736608166289549668436477660086874412607073670191769772978625069030203179467657013913801327631532343589777335364346595266280979800595559292237745446325017279399115138891275598315260053936095744365772700268634083448765755528284348653185356312582644361123916000205371116846017838120926359168788529504924945567700905467463393031502349252297154591980988464559948844754950220195725961337772073139653300016834803315529386538656737538087557013523170980864592871357017590958088724860917354480000125168693947250160253455142897209343149531406111292952957233087098807925524387372511185299792766839535557407225259760382055140675027250956656193267440425680268130180898436109594465331501256343417868419010601086295900202011110500455737631799891935228977214349018505786750626333240652320976916754671824614946348993667440639806000400397321004349250158738132307115940887074108099979492059372480386093457003088106428100488630966808494415709976981103114452001037710725143065360137548595785320125166470614065983850086499629564961918770945588914965680588178013473486500224177361656973468968849440819523619691777662645270330930412006122489276699815028712291443975439205240466994459696026368408139586479572750802194343056203509943092472474116572925432411399046725827613740918559916719713044555822402413023512566684494211449811567246536590256381375826525958071075521170999543815431419614558940831219177647559032302576255241971394894166456177012941109605688497136186835140114183161557142847227555346500870656171080694295981803018674142810966741406211151895489138882653679096165037557053850067773509929085276380399861789442779389341677360208658213559450323107345953856763534675925741226372387714461230925192938082751743165091672708316225800225889465769882354932848722845228817373947445002509596246167240607537614562245872104109239515199908731477227633187508989812169339954139346954696049341876824898973651878246810219267725573602105404721998693968424414230393797580994313018706844554613055325398922222701855578295953915796169681193973466550969567538571031528549058765039924051431024180984857571684581968477713421155356562842375418086212970889735038928897383404309909049612127826281555336618734081339019297720427375174480694771279519639691631786283162534466934019204217927264243454002262378492219617041374696604971232293433311652354417424107706494963718991817787895825886915060925212777165886318455560294692103332306696271003311027165902988604197859480445669850892508373338559501008107662592925275371483092097974491613217077575522350720052863765882589871003352449345104973422258828164346779648366050063603716689549664147586534172028159881019743071984218400936177334889904497035044671582684119030887115919691672673505746962366972731793243560297789740964145089780927712897236806057153217193625896369193795059185965756248270411013921913585962672657712047933269342879830305243699400398379429751797002962306056526298459385209159058933717152706348434892556072287809603900749333252284277086384968826940460580987023910845550927742377664215832272792771950555357408580570054375368310947432845613267254016467255823396074211599652714034995393164883455732008335171072527501904921850185351863461046590167941167493543860089785209856969503691870165069412209589231256872893638843029827020189043427012828125162043831505302098695677162817076729428704562892453941609793365783500576136016198060673937548077296472262312290543228992036729240661163896990664812336649109424201348751247287190258889343016261061449106360238908195857585100909319541183257568291001887386403438947144850150985589462941408580698835592540341728437319788447195027848875119539502974426942538477396546475024389971376280383249025969003679801494024360974920175311763067788248265834934523096578571725511253233705236388977282598764711060396429115429548168809488987112626165962468036550635637304664726966768748690461299093232291355459778470311140335128896752924396143744364277097547324333339938903896863720486102979565433066686571744174662522619315754304754797882980281148474945425349204230657477844466183701591731497941263372269783516167086323114792344704144042739466923296500175348120595766057217673930695331374384647676532637575915233860371745564012880268083347317808562590082725758280347905864376847867145278262813945826358110410296870942232352156633312977223230410930984859113485868860273505701364734165138345596349909807408686515482589624500793834565885258009600186364718719176573041488556452634492063019010469921657237318008978851543119615533790682856166354718981412509721797941705329638247893555811840271304701254084665356122836556481035093309017414185773929232448063054538349831391752083893714226924457134093965340294069972643117648065268482709463633886836522016138710187502890859351129826660781309571096882755540882544387451030788072099076845386440626618507588082146387225871374121123853634593433220287368714427317522992341035002313095674063308173369738253459073693641009358842787858373673174667482222737914636381398580683270240617991749802799334880732817365537389226280263477298188969940562016604549645899272463615153068690442740635178680811204293085494455575084650275185608368864142881532338765317844281472988902616740846814378225893343397433316417661580076050351894760554703007775554727312784055416380922529935440923674273391333798535556597069616378804281515217348088481088433549890137904376344258280820788090855078341819612168115667018210136713143862737514971803388558862353686570767617926689365627827170823312221166137061161519662986845944797630233776441116608784972578611542968914467811270239214139683532859870166444672598918846487665031758854346054768057752569248111338857445098074714682931754913450763220539559492417846186394523993171315681083805890703828657677930464687337709609233398341666015408169939332498722963862977778641217275405664817889899394439359122682920766841090935696098546120835571018165726755711701171535501180193505328854324004617374734560486902626204062536635197391314368191226006749303615992646086411529327450292218253746226265904995271291371356482238751631718507531080169731899327715688792616507960497471551691467126723508804181852251779680608956983257180644720386992673477152083629621977381711725452349077741493449210334981270544874570057738449970447990303689229344309023760665314224833902813455694258030263436817024765023752542881059602241272404725837601566777326743318647515722708438673089128983631353575369334944198345941608900758290054448153808773828612685535480942498968190341437629033876286643080854588804444705189640854310479153242580040674472685957407501881137721907966114558598458706216778270741803512326945793944387544471537919257360281732554785844381515362866233060238242671092126912449396650696250817295044318580228637710052592682444723758974256506360113654417411555345805598386550543395767107506970382115518939318063794160208814293075771089232047048482922578966138121301575846494858340264639053245421726410747894731502776839026287753453884684379962030454762070973567130879978473396672699345805059519184986712429786673413575956013690669480994269713457487297936445969949743490183513630731434295763281125248217192752725377720898883675807742503820059059789482676223435348900430568492670011685812268773566074960066127289723406950234961078313362963259256551900777652816752458695326147275485049078002319112983132211494704773796371588226807833698225216028460804697465681652688931368156590008087259939665171094216765498832733287278075481367164239420550216680298885294898749156908634196811043091207378045968375792823642732487863244161513658376007679174225510674695736846008866753248699540540911264576339026780804980789536851601467014354121632260972031976211699695416490209960603194153524330824356899344573420791257927925896374684013965551280480225073347129038244105082457677875233871687030896495246846117528870327406313065591309013953225820389106758306653548881859640695056862751411787349903595509137941057870239396178754395689155703594870337576589630999014273476996753939356671717788149904718630880357653426441941044523154267548623735939055338273870466432335415696122034218569573391469978286137847272562374827589045880830782999444722441693081554254027743779758816645725809176428649152516372461205847148265800776288676942451632604399451417407725607300294563165756828972977186606224592803706444838068282478598296107484187788509055486512306026561429361082605847598746898056605593857230551447849164982662362341124530835207775624443741064560974310884676093275853587713404172854964500428975000350876175316596725297350511108718305356058650037727386367909434133502823163513440368136028400761585173807610731796028142735922028403885709465458717696214283099688200523212292919298286030867601690603974572716610793410066029025175681964210027647784944616416934444161249599356234346429206802621580067512880389127668555619109540859382781359578382369261253056786548644320447017692892378108304198569171465308638603943486047551076059351628985152343448447312131362305402039374300386746550534294069261104518341422939675618748744245519000432082446955282871510226769983540743748163632135534278651092763559279973741318760349531118503116159779041261968778883926795841681666856588686920296891008611158138192053572484767741944367903610617713840386904184923252133312596845715805026962270524280316305098069471900439251465649925103178798433378323473429632121992812356292943375543170273832669310402781362060362709612930175894642206311654550684621624348974801294603121597058759087080920753280197228587860248789294038450071973330856151506049625961564982484472036631348367639218028745112670064620346201788763906189642513084846374480485158423764054455578430376037815248846682264980763732928835663061297526571406577908411187864984997868014281130458203585925129767669705901514900626436516121522126900730060089651385214549110765805931897123112608022025230619464850721514702093334275043734543865603239027553725452062976062303229663841643380710676704795985075368566587106104520625248188225555372874305486903075779651480414640414453481886394964508492817720570018128275695078246367356801654140830621813131492775016505988788586666459704007274265468334088318311808272353850716586711630662170680808589551912225957602763060104666185352585040689807278194422250023734118499522657874683205924069072320359926048458954325112263045104824267389175429473963768788336866556429161434671503265299325660032712473199741668106466953575644780575294780360124165415608535495777729033932048816039831911625027125100846130764554737765173768787057406779248334047745797931938651536795087849194325447620470919832337637565450134344714962013617197964283717516238071150534971959193775339711616358048724681903145330459521153641704590999164563499279406313663938809014958661356162626863787327120038830361620015001355701768193565666401647082690827389281840458733425707930271105607441831484532829489867965513621952322947670778974480678265243770853872181001630998585676123649924702218104203696357240264603236754196347562526339289995415455384665334787233257389025038677960447790737718792200899334396045912192652568174499414877301466662495743893295005051954784942589807406535685759431005686886608550541890634152063757506780279693322795219471094035638900388449799287426429973566564769611205377062184891154928224961475915487020198327876845430898114260349940420770539787187566613599207590176031821235828252513031288314333325162785301165639067565358690116538128485644169333777875944096956638265946163572126209257819522215622222635491880791338478880188038618816042708646355414543377963503503517114103843499408049345223562163505307187452446867082278374007430231657030790587154760088097924654869408391160612289173188058538334581347403710574860504670810171868934603846960199826468197855791486486638975027085646847653780638816104937120451100123173634227553007257614676324165409800975903844853735690270922120926200195415612074098988820108790244152472936207876516143883632057677420577058213976892604595121231421696849330616037275316668681603926202900201569541284713123442224798606838290287088022299009006196007572801252280825822954964171692804196784651280314374926946045410776661719221659838715204836931982294743330857249928332266692253911575817302735464020521075078438737425280917305205410264841203347294970017654428406389394211867537823175107176439927193853789412867317911744886240533843011706301372098412245767611959820038526740444396948841850202441550280648106495048310491216295548719067294548108478393375623950918068266369041340338126735125916837756335453995214439936885008837435371492821215710159859188465513182047295910816648588496722561505294163839882898033510261567222081085938476833053200580716397679872919883020177075744098167181467655184110988769744782342032116485840859779496947491305772982049091108225337925234276372250914725395587206502875814438982118856747850870531328957660916887060610973127077014332671799233156721171930308610933512670244685963503505901537353829276747937821663692177360008618491957804958270510336692274562705325495938505650179066219146200673308027723677126957893945989845462030691690249702822670212887856259564033714075276461504593642208035808963347562596681328595231076303557674500446634323227932529731919706156455319989118537985064979974143800878712502185104403317528203545458305802919613058271861288167382094795377423711948836711009425898432009292884270207096385180121693986264239574822773883841361603220547298445331701233785979724974258744485308304298413448991252325947655824474866887472431365598613442937696826977995156986759686418675210582633130191284515661861293570812730117411587387948913892855331202186243413349449476298585347838441957902622436689109743545291290908495289044403734535815971618331555691258863086021924091931757457086871363793106239867146021810886373603163382083367180504862914480876701634661618635837686014589716485337829570241105608853855670564442193928114117961554914318785982131614010445975565714618567901514773864700319955509333468103239763315713833385696255690419645609699211356015058794381573015283930430845464762494223654663086009230675679537158448361741388361180559032575917774029976647753204011157421812275351219339015660948273159055560656392236900385118130920344958595457058203598096850527608309772757575027567788094766780686295062585041273633005192745712798757135060919376707009103707886466023362195077612811780119819845568680833603882460700574103287863853125973784733502085413279009439346294313281923408343541254911835095330167517000122236111674907628233065245968183655666040574200373442294744413391683484191390283372626813586951465455609942533086532791549015481505603913958071752801892824469019711612265062190830613170572005193238649063409708604599057770914948854734648104124096872456369840245483967031389120655557461785985822234100627604643854388150411257046733062114940067737193507557119572562108825831925452021223049090415042006129457927555902655658877743453938239324594314547670519301899278143861772713616771531197654777796626977632091996639833635989527953391269935569106880762479341418649787401698586768295596779001488125521285723824490235657764733605575160971564232363442260704606381919711914296550831048277949731893298463033395760433369518066177886306918590833112601294341965672235561196717426607504762773939027734328381871276328589603309882867873322773556198388948750424281989301729305260099586486506969352563764572580057217521490174560788246760704316253732914867030444270499188072350736523941003545645676901711128357647267045390724582033754188053080268078626053852856883358347579519332388872883045550525124907602721051488280695093431718739815938830453133925681804865292841919472831233417792014769795664578892467442989884711151092282337487289041950007445654207761309597097032071710439779051929536226880971943177009589649340021301965027320930642669131835863008372105718742658892070874874586105830869413717489395001371157263779411970642484185228179800989745180245073928398501631432862314323108816639117927193051946409307163441658441592339958767787799543889355129811392513872323408134527840137952459816597846185518117582580598321512448834223478181239650895886226965824078591746796749657029916821183481823252198002507805220310433722618806408625443939360445715940919158674969861131588009370218617677528382327341001023863881583202427728700297780429598571359315578887310557291482196047510409845356024934959436092150239664930794800651825256719489181030084027824778848379432955775031774872638012696183354795315082342732966816571893104875467537624726424525719315193371346060358435871625775639843364918407834005304268319486009687197303072845637435851439018372990862932599425292185627528082738431654692975729817020363425475703835930736521770871245684981673980801801326855139407349357071145470603571264382048407268455955703575184558772758393108608301255766378093201731364817576777265883228001849284881762606216037635986480350793450767700249292712657371385929321705929523558500789996048272726629722894260282577941284064369328691805866798463895663008148677294101613200629335612208192145841867550608773907197558229670295874335837277827123064362970907729337711049823866942380951483184804185000195515453576658160312750592465234451907590360335727376077519175507581406328956380363967489323345977024101288583327946925340223614317193172186456331341966794550107075689736798132675703324336597074031309678740329142676068265650096235530627615279550685393560278950722642886964105468895038233342455094269693434397797489689702684372065675239981608947676556796270170825197641697782929264974004464209793699360788650809188602888759383229600436271805148869510625063718745541324356235783670299306090379599299107892185378223390710208678258078775647596081289797070785024069228805574176393762929783140684115798152826612762124532314878410669208572828502202579583697373476518370515209457561839294554663952284991866769371871860623602034813091184706355306924056203955548408009868665053019082065347995625768500356736387776129834258166537068057905448472576211200032838396974017464476678645263077083995247969330367107178677464176456404391268587474090958154494226109472612930711785925612303854003080429625604435799641008245103988375864741366523499948207463614401571504959339817318547599678553871159108273691290871048665333958915135058980038593063959061820277745675509099778378305183140719801495098889450531443350319723817589174969708313502461160442243124445059691157740749078821585080657746788936962517161132560711804942790576805558847779956686375746319850913884771490678642990271361131427229672903863220629607874813645370781731098857546214131003608335263309596804631288772407317411763898618852463314035438525337388866569752630822069592606319081738959196839122091719201643597176503316222934938634810438260379632612475459307659349439616314820337117704631608861647646171844085094458757308898942385795460489505233526541634929123656228697998534984017859122119471518536325237627012128670275089722948217600273650566439663976784115149388872434329603676751673572361351985125783406362878751637257663576978991169040373186832832725236154646228531455466314608218139227363233653102936734050356039717069992565610586859272466336160452122381108792491410726789863892480173624743859707323174139725235655553523355382596238622278197706533868795577696382716874359969405657316911727365596185644595170230344810735246286335713992661712106429530360606510715732438986169093625203743962221605047917743236610671017509814278778101563308613980889934196312117144283341997989100984802052774314716515805453157892899913040819773341806744542785530910590242461633660448052247726910199424153113681813689099617763703563773400025933691472112387226080612576921766459749475381260051349537466393765707062458162147640180777252560345049062052002065053626273729903092857637106636408436557884274827132046331986373993906368768045252322718950591666724687059149576874027728926718116805313577486557225891645717889246431172061716958359855745910015093824032855337995227103526585581075219264144341224494155288839964334373383260809015013494384118259901223679004646617131015689175288709295931899724621530222778951974213106957143924427985560891741943123502968728864531421086515181279132472278861850841242499022168351591062862952575023372418473736076517949028476641156524753169302315370310608388595416239832188410562503808646431407111756314894340627524194961523672519491420403489247871906177790375656690701019363261143826614147806032307665724904505939304746536764507868088252394145172592790714116995155946490932824365219112801084264214009834408973683621300729251420590999754072795974844078022635301367008066587630229923381327378578595499368155627317441222019695464205959505883835610831347847908182146960591723822481227612180442363819172692901265298114703220454369520389821771034296812295815353576577786159624890569828751385866644740182392156365571897676248035815005813456073058007127709054095377333347538614433874677830601213955119956034422281832668915078438993381645647284283662391576041310663312643395673987448376616096883633070319697307546927764727880244229246170881564596582610489356891998654177277206665282094492640731622861734870553665408818333792123877799353019063691920962191563622724591690187798888920233652801828619907395424489839929216638854574303253574225532719154097078734553948040485467782611618011689164269478263834354414846037283961603640192348549117806743919217258452323291688578686881880417036748908256674910359520051736417516884579964857890884334041378431986676590318727908100999678088565565884106067629825414092365641539124687331335831451789291402757888252732030943563530485555145323757528050316111385624047308350511559545507077850353467934920599965608982910134917650107531452536683036707055809085054296734794763705988439170988188781974412737810108330752457653652851205099682649403625063374869105378677499037355237101940880876741893332155502187460396868713630933183594813292757006820934379087389671925907406050269390030031124611519186835572908434534665818473068850622714181289081766922303872053618891753974717422137246427548744357945434044231062253108831545136390728734088621819697275657275288403888358215079193347474252359595477973883172338560189318398052554751525216580343516835328496744743864634427249277352049483239130772509470939468499627749395372440917051991884520516405178653121609431620575000564736840336624277987790428089376037176379211707367868969973715190001653019593497011319546528734356711095672368318871615641636114018134563754996991348904014885443369927187953389001192438167040469971936766825582921543279982681454194505497698816780429169399660631427132606901158834283713804265630780710117046911712163518492258119787089301094591839522663275451788750764417635714783012817176551002930079700969991839524673253872337288195894654262522384896125492631091643427848451358284054407027121693755218514076776583589091791164455657690466874265807656763155946620493615482032875190589984538369267075417976465828171183518438820308796071702657410184009319192484378791740623648988462710064797078660790519417292306912560009374998633329775508322182334650145987222079168875939971563062474877380464541092375766338210159186105851074986148055219480589154966970718572076528992260246047355749000483798655897738584114597986576250116482611373703033660149503686116867380072474860558766564047926638483254990218153245428001698888685102812399376877193179544508648907357267571716415727973099076429112785754699954686382119424702933898321669058186559027910523908910168652435006359432983483864308279043460428565350641766678831840928597934449648326271344471503753869882329213009551545465984087207435629624022058666895461047794875549875893449549103155777531476700883880545521187162040514768787407859436271971365981785803480799553811627950677360390398009778695846859395579667088807600745598712526392327202671239989459099725066779963135615348619660698215399916977814960457569290430206267326772026840857439448244294344450245849956253966712329063337538916976187502917310609783028557120949126968927492405533049601263895275467739861188657892479539677564633813891343749578653933884469533460511274488225623594246030052048737158812704646782876512910882683577699665953817115952527196304312248144496459511277152584551059610996505231369548173608981901750093910593480814219607606439126086024702000558953169869779233689236292493067995444957404413026109372084893242213466532169228567295285910664869854494080546817361768584794394726016866418481072624168008795060722739041537271088750429876095706334943431384878554890997376990539988007781674690403461360843017351527991622110373818120775798128933630255600449241085254207578319450339080064346506396304801940136566388520524434910474589752268526817971708817573958241941114886919967329097793283053406290683858973629638917357201770214645029180524511527211832834990958942092619983185715354168268727634673992418394783220902709515714811047879832258264445005965482655959300321012234968318750686301425542675818212102970095704801348922871727056816890576771283013277375817581582824985446294279946468752833882593242450907120856476709569679638187475962752129546201789175910301241452439088252725804891700648517656155567225636499765935090304505584940948925317121470346653506998907944639123162961409798572136461170148094832324525417603785270832998995150303552316511283574527668042158285814429379359166229483534387076404729477395605640170554329920374927650861289031026889223305738620821953349908717968210380501911912761007552584271893340848341737220130245163094210498185178958359979831455084313499566572600396490429240505224042068498315006546791399243935741356401243338435167725443833584506898357423647700383955309913418962835325100188274266578448638664874294896515367076354717389358880920625623051406777363753934232702592395348676779925697194781243326854529634250339841724551267580283123134203077846339007559928653841719405820827444327802051868009739127386906359754467915361286277778036269070596158769302127525642617794712949727701891053312430623306011015026277573092984698259398109652011809231061137217567389477139805740175118727153933567013763932209964744327792658734556253041507125333381203721744149641750456361213814222467130062521612633102222207262252032679923485863244983993539715901379777049270252575931456957821366863722186170399648565568241737485510357503069872042429919493679331794561460898678436639503539760859654852488668611588934462016317869729499491239563603084852001465188809201233740855903493683463207255282947603799846124910229685146807761538784156616714413655494849685151133997246865137619460760780062483209825048747515004113558225762235200435914929676899808898418340047946724510574317667889853852435177480556710915442391318643764039042023401859764499856194458174282920056870634736274330929911440031103819588671948121945713479936597707938509820233208433566633511479827213438258118759921744158925274656998803580700158123828194618767155196261045434752373705514193454029551425064628123759052976576369423110391725987713428412103734337419296435620821723456018194103172687606368618149449273848844479896570128243060317575437070707779997166827155108469043039491515480723669464701552142590608008674061822493656281993060748820086346213691182829606295575017045756856250585487417101683206890320830582978889792533564966579844031031399615535080470543659588673329933353043423369929547142880698513816832533155766630152802580349493551811286464629125496429193650686592977474242525839268848636152227535584369248633317232213011676351258094842534418129233663606740407080338451033411019624880308415727359901999886239860302778259211247060804662486582633604813430114567916114146254692597472054167753775424883213562563020365219620446541748033431026515248667418595592649087462063215656488620289773462744165636412582875432902394343875731108166467976656401027541579086351142569664667157651937642913871952180722046735580875221629428527714471189023730565974212582953719017034099605585644199356535419605439978954167192278303364592596037129096826092645477417651063852600294169448990487369662158320669869329382830989552554940288851749270306442327873843500417224659737889865453559156881072007778085731608616963202463768400044422233953509404812053311288400801390031061121765694730839115101850568028947659883070874181608425603785750497693567303072074867965483564479409739151463488700940541271190755431280709140503352696665495213037206211525001033164083469086386302276426925781845207429806620634500845111238206593327572180077101830701958313161605176159190497351683198202417880741003860747040291134168004539030088683769616865956217229404725034777157149004748839458373481462554998526946120193659509849188106550124568006161631360065533937988920593838973438622899477144220303309028946793642096155762611170867169151754671706345388163514718916217331803938552973634118777328984219321508335885316142259600783085736353047200666280479638423602634610342060149492262246379496180129093535985684669245906709225767456940049605154901037582517597539363353688087511094692542151836732752743747745505253594261294305076395379002947596086915454611946578705693698136579395221448114634827288045466698123401861587440181423341828843407871933445683727134917089500044941868947360065453034691699710113660744942604125965004339449420364330096253396614936999319295221874501084917052827690108237856228843538325157735929404764791711146138986027185603648275729414814481511678098043412801801534515018527822681049003159203660888004783134619575651897899302019801195995868499746317743438077571883058476086058833872313630883759867475990709701652145856697042938842011823241700568742484898436875360974900882617276950554322879906465817992236489870054724139662799921939650891407652141794170402298470875516689676395705433640835149939596827070937217866175320387066775061649308307970109262575110092448576794017536313751793283413389962833744661963646866363001872155414085732776184732381597808380087346931930842219102693666216135940703175546498456370432030699303851681078586477165815591296984069838443231247972827692993039660158975944696737934442356248828583725622391998296900259075756391100539171637284487040277526636975480240454841964825524617031866157638833852866874285077665323194663338180527656452212838275173661841572574986554441528923831445550376275443704481599941621486713003985652035909211576683078764520879626954589187373886412393418219430470421714598206563136799815089316820763644875196197504851370531570026524948814505153786828005403830025271582014472036290593630778995170553972084947755264024066099171415364937305566693851512540805123456928197832217537232868650239916046104767178569157417916782276617242220518049174067793483863233615788540031198341711143400760578763585922312877175162935587744983408190490091213436280008935129571586287771772560322458827843573114154204309648510704471453883604585135514888116798024308083069378015249956698120663836015142918054937623777961519832078493736016515871820515462201630396140917202413298437059840781994269887099081839259950140802852306765063124061633462469368052653088303188582377842946877757129294049186218259394103549960019878806204840014569131341007652333312756868318132543910259468298755768315874477774704424144834157807875279736294217543522390195280895902016753450712191140125500053341407603247945272229740802718187491429969778180016029204205280064275317454753118545785604410109785231799011234834035493614680955543110653713093019743660800643132639867442854744819079711195194805175824783559833616870463700640067486296610806893187113420654201809847432439634919076305110142935176140820597842854868332473863809333561770437613577884473558552100256579960611130368050215019832506602574549915901473857561590271916931378648048415310679847440710293475549467312380652073701545850719664653465654042401063181665421851016078567886773529988477126039685103618237572048867807294977384880840335151616014803818156226631806741814879552678181891808488691366361557481497418393307827319057545951041941307073288128480079685272334901085462245635584264751734582083069366825189079658165141981603174918978996935259840956034050555440378186107131611246515026599420974521978934908973500455071124120303552843594710383049821520826620403606848694325730339888389692460605033905716518048374155094953822489306480495966227638414414666195873528845302766382916445523842805962542286084898026917830396395450290097081162678487140242609339205114481929555730570965956059163343713342803903429974258045958679314261897098824572803025902428558674763802744143421757994912517428882044766848050013983631310685302825837446835429532349617970314306364018026154102097665709252360768030524866093141651146944291162493088548310186935510569407952195910571811644195490954568813431887346501390656768723007749119254557152129914853638923146336280722089226509758137349068712461706784531669786246418597392859491031743060117799019499138647015086171798037086781396114622276060880728289692123998002205542209275750273484011149569432411036681603667401568923009600027851789121223683891466907712153441575890429650790187894575384374307577979335311341162878080781506840486268970454661863935338802529146865644379060979723686206975564169367360328370456111491528567908537419206478602369897461533289577493075207078195912422633796531863016958502729138091100408807186669892717923258139711020319426841197305973023046060749977519760001401203826589688814729017199906777400633324762760768119528412852902665810075700525188468430350961495887880434640322637960747444338884783546042018917589067505662664362002006280555354241687975085093227139783315823621143475566921896477377829704373821543216977909588823045939790230250434581253039230576266313091816982518078555967679653117393972229838933190878178331880825862461151180749701509327499631935397845556214301605381906760388854830073944668379207422265558701133609466227703396399093917605771770659472780072036674853156803641811247438175931927418084768130620399136895955524988593471318702338109412325945452908683362129523111349402850662990929048090861869818874663363498778131462571278750408404348220994804214296506694931322769000571414244455095994739813382962645003451581904739818501989181058253572390740570955664348312422563584934185702157811655187759321397071900815533355061548985576839618447140570928948676884058390645977169428259224913257319401491935913295826621921176050342575568469481086881699973105082886429884796073429703294478720005710896300736822716514702717589431092222588244969183910545280879744326787931567850945864517993961290102500207188108090670513712427232172241419964883191785112622964854168380199411497270609988519024295957221538902883197611811431764576719336647855111831267303961072052391475456966095574910078510690379428559038569793578100352602002224268749187035605604325873126044226169426626298387410916586690900795116102912772420606602324369689164867268275989680286929065669319386027768101306262174029545436743846088922283584012888467235497278106393892463897499023537640199357695061468199020109073815616858732433692141893181405709080015657471393596527861584124772994097949235443313519637888797314437879591855102013874269879626882785307551703790222272789788091295550353392449066632021243116488565234030529514992921518275618337039998796040413765986103494699736905599697269774687365348893886444985264971314809939869647569898119143908229756464919787803476560599180701095743107507563525957455217680270642255760593415990272918051368228812655565652337027151963408457456164906077479135239812338178752181248344127386745443224552350022872703128414807549515510522178263955683517818990767730450284821520193830394649512703831605387114496490402397254870949526855380409855210000930505583713544439424031388287229472683367260327865554482139339380428112808238891142406294924155393058777998261557227988058331617493060543103315319565852101904183958321683612555646891474036786067261422574170508843123208850154621051312574277682916391835805269779007701427551066961429217632622585681218291757679891182894571505825424296524882215310244977153026483240435964381281659438280056952230546750312120832358387143915699858050324925478607798047359388577566334462754597680986701939756728050098695359174788236987763098701289257223239481584565280542164275213062683064487379790123024427528426514450002542874419608997920120393055207049497165364738540667808733019896522929316454386866048440236674409827406200296029977791019570437336884133824879552381241925106066992445681940280610651432072289294996769542441910848760664022288878869008547407074479814569042281690975334932991963788874604438359180682380135354227571543520269031545855268583934255674279622973531755984135053873529636448616081643991404835376667553786863713700780351261548846462898329964235400197232222463170674571382538514674698472138470208332411307269752384891978859366370394296331356702452634762513126582548528730121346461471939802987504689527559850167729947091229890625501103099341735111718263270550486917358794687942612135674808925476645817648772051753969962887830033595546476761613637134256515482994602077818174040453570027778011650832441988745315138636866137351632874861418375885257659754603282807480346241227565336840627053189178340412849270051861931569313080976817451001265502389702209422559262608233918484004573756526793338802127573828683354801945370407274895932399523625247203620446721765881386063762453569423761408653838221507787434944330881291817199288620517035406910018977465338283820870093764906075694348487603843886315056090013952093608969867877954093964336578659132624687750769488984453562629309431870681717690042130976831137165368285096485749938316436552733365413795110492795159566312294499299978743683784162196555376641756583844787845282850549699771219787327124245307950779288862175784182407712509361446584055251113491166176257562316559464883649504040582622814841066786312142502489079302163270404367096400078187326921426420387490472378436472095927266490473163527346859787283260657807780266922914532745676429962613816959184261206388542566150497199147570148971846836784528704869159523262231266536338518701864257145048458851800360233335774491121420083735937804531585800750604105445925831359258748250050992225784223689827128334855005337999650041836528128163290465605085359751719083839332554017196306443273004515685160926820853200287167709297914585782525294006957797105096720745577831371272984382028670111745901898582228341823174228570670167723945522341667323304513064800216364409004641718793705764331535424016074595261787633169098815112476293360618621688126550681239609681525257403679690884132193999877427901371891452894947153677298791476957946265798673888411772959113919030443602140116089639659884529684650231343890516879591522997336525456743150250101143974292766674130434047758250123639906454155000983329056479305522169645592447772699742729429015462077704060094223091982556256358019874609722797064246603360602929565278825139298550942336569308909240033779874968114464851641765994358523241023428650517509524594277824192626742861062818125510232849177521096822244134315458352458186830318286978686285299509752152688605494821591917783673052915838163452411010566939330051441352562339385398421227011506587970011042365724927913401730550875590851025696512514310899835411663586527395020035753797749249626625978838110396518598713614507334443107692157634371423382560893428561618301712769291426522994656193379067097988668850800654789740966887538652926410678970148124420077673121012055121561455595181320487582291232679258255572690013091228123396044932730477587041349997462751585480613014139984063039611227857116137079367361372444655582722031748752830922780386701682516678431517496963337704999796758823940186788889742194215834434595721258662377690224041515796933685278871754991264197251808574126769807733265742182770888781605565684582074510220927994131852123404797101162130684254543408242412571956574391521950687773805927591797354640985930550191270807803251724275114310234516176313626747478928047718340987792296802475290709819314405751964475369113050857268319111379910301672163562469946208913580563946317746999427570217690637890633289651839884782550898558055261598259504919202916420481617731636931260711353798666675347722319214190586093164607808057583616661086129633070001791843308258839870595930810133718841705956150654584938258145998036758857505616879573750699052517710239208006016185679109509578642187709961264889467087320439626274574716888441764869145959947362978392395605789630845077260287398583297026500968245674777724523008651884917537451086256454360903602274649025716214580049122640533144046620448081623546957280019317588844014778817176862407867696352274353809625239066742014528588069404263232549106533903622524718303806326401310405397238636926280121206759549462407153755032556535128344528158549456695240482648173888654617021036012448208975283247695600881669434138524172806837223870847744669166251640279061158560369288942411524301253354924229829307602294430235857166392686933056024596602919129053097858295460533766707209757825740383366415875168658299697125577189894615491337288849133611392775050626861530569025042477652297264248211520662676210433630344746457847511888346502912268412152012222316235723497350853059939329824321714597704795008224178304059298958741477725593378938149270676244318713100022478627432602248805424245192786197632320152844564292524901079303599547497806711770160768564786052816334116196123920665878689495978528004355032167377341445122323931119185411405127525902333059305412024822587040622150627573568901462483002553894235232732337152965724074482036188513281170280007223411176501223942383407079672667559068476438856538727583964551655114046090144393404338570284362466336460871032000600413224031536509624211104795902227548799294235740266637728635260918145545015754370468455459203858935144348292085336020776037957277247234453482888316748122126610593743542158593860468059434840907490905128437334794140065460829364892108742794142559869328296038263352609023477147031024618694252952151188543177534740725933687914889036337499065337286384907822125409945606287775793875069274491663911525066341518265174104235380737689491790256916779603698671119587926108829271736434465181832059725426805879254025511841351112140692211207371751382602193962127161357715813883955613141362806953416817258628236388507197036221904723395472939552319100571241072011474058923960038589591649198226468355467663176880633015587434301479053637390668521447378788855781645295110737917744770460741822978180042224100214739762474096875966160266263537890135023980196898097457864978357006037084799325848411605876464948945652119024528307674902303520986209828787672788219020932113480142057521584328995659818463508381221414725500495127525081615557544941954785839357157702457853228416579040097375767191926245535854687867769589694385241155014179917420398130326654356450703853103338058251460735650425846882588667096249692796383503010792460636092093913577225259149959940683704325765531848111625100250856891375203320361834428084477399946404907568288923409010033510658143710834817965135516223564643469099930946453505471734488184736969601218045442990610525205525946666765371688792912952534154458360836423322819259133271243882617411397172517020292406510317767657433574731518539676756543546928267602334571795941394579747037210238403890083898185036693364738633267901025836733992318833931580850497688217074857844904940106406661588387230910931118887806002346904833683439711138187067475083337887847650142030139440844380154309130890950872560899315894852246341273288646835170101647411744805950442125493341645105706316428157335983543542117873942657735916183830341079923486625031346595728842849422276603621453410638993190475616861123293938478563557553430473395065744595724690137174471412272042129128409016344247521112612834861449672523016619212556473711272059441395752993987977609000394019845936806023366463270076842771560565913576915784522800904044266342570141047988660161594215435939600660447412836137990924622227070541841554589980690277663531335116414229627345845415784025956911527302695931093040116525232420170733888240120933359075434250006052403414951385773963872306948719520999549507246820213535325596399554225361400316806890751207631731275148980021645543740666588466003335400737500908908698505348869090710439238349885699097039510334325530298946884526515862053394473036360818264713923017569233575649627150954621048469595312201972945770729743638468959278214665411511996694292090506770990291543566624320018356005157522233914209313866633018920285499699784111127602732614270327712642658971248359381683228760633198634014566120743466361527930062573464626332941003149948066750087441540119482861970955178091756318980991605755065826495899007985393391943224800537406932129704297559290829851523419851838924042622010640651758333525812831949764319696790422355134347100411182938498194905060635361054172487847558704075686799468823259008198318596602296218920930450298742678267870722531345802839876390382401259762145296239244319370386106005303391736257415430177050150402050184878520066701874842624504752706130415571572023306107674537306277849210094837071596891806167159030349706561854737605155607401427473644292998798263801108194550607881975327422175984734253785527597131544445851942627993633326435509059982013978108177017519807514179075344041384873313116734256634746530475188533600666051168854069075661181818823724126978627306375512467814259163707700912660592193484640661764809837145704070819100806746528334336896681316070943724830127840206349894533664410065645731965432829868270949992135104005997548675403119430854211909196549390794827087453231445178873505340374146313221195399139727054206878622155283512313796125762282125744819756230903350658071809451220007504537192357456980996521088343900400334045203958805775795649946793487079653628039613661119041464489253813261609714428255859252265050062442966337591450327395889932494622158118232969900043127592986305556472697718301625432412742164722847939186497725374444058197469276918388124581753951058396095034021273892317054930841221640956876062962582184818462091618340336785194152293669946243069171717741706857634945598002994240135811917506124265991610928644005979721675809012921995953559586469420102635684703065743897979334688056976854680389821404707593684992018200343459438586858333511117591733755815697067435767444198681786621030255786116233660411164428851898825971988827079878489276421322622489822791578544309132286273467899406049660421365096601132349331484903812131216794753330827822193668734348909442336650650446720805137019308771936459257524359878708660052373669217094866605412556672893236441647418218568177480588424595453274566957733708314868835822648061172055742752982266477943577270024374231540680662217171910128422681885822597014969767368215712454094421445169189561548621782396936476682470961897593068110614345416846651768241004581496356117245555089057199531993495518079175792857930512819173941267127451584659507204510905799231542128515345263410538566379317000005347063085898246131922610123220270623093114512461381382267839132389416119451661101177141947357359501852277180496643267551738896311448993388815519028005163065806399344686038408495246653062758333137216136368564414785958365222214621673902672435691762290608631011551235525565956369558615676058910634552554076657632924309429470380478028030134368587286477989988535824256278394177389944303937873562884233150250096782233076907056473205400187645887009385720438624037219007874719285474589902318829949370300521115393091968952602374842793990136407638550364731765547410691713604052989283972315193152766901426688774069080253748941306271159718926322560328957254986520638818706009862532718354892394672902403321050384753765845581065164878000801130307675240661256104636487397631163214342489491565189732179170617109749611116562843997863385796070759665868650942452572843966529753258039839262900098800665076486295159106317859450771624977292889432854717789182331294641134226948383250255749965618036311996663831152221239755462710026136803163969597458052936447992961114139930500680813607711449205982402715134026363000194355757329517535578518812187971507454709253116695702063324977214666346687502756087327074773502857723671469966698728678464787040735691963498337078556110177524483722203889905871778307072608569012804589217683533863003165115807315811194661641645584846026705157166297741418980226355038680180708657576316023100943886684286799862534755409729718083791275416101609704166724185398089810149860768223417961287376567507449566214964752477451488072336109829911788782408626306787671675134074105642778036223683059155947100193463928349227334202098409454097598961961096481532191350665484252180993140584378249375556725826059630688064456421469115930816116065126148870343701029751986087461988721285018531973714420559230688604333661003597647299032162169116912813500960692306125716104032295528783638922771651672300957562049722118364912620598667456120798032505630299659218581836695755765214509424620382057936277139588202356867511055513636458746177477753098175374945240956491125101262051892890993355682258266921350245703115853383266047521486128056380013091975229293151237068966909356028465730301206613910119720839610007473712914229439623934286752228894340356573990881632792566639865697924604676056456941279610432741373659042859557717160674799617442305373774522959118958136732621730124515987858670843225694834818768798592747323216552867253987689193026663121437486374915761485235528356647195204366597981128730988753507156909676291864812879795794308964775926006333234886409307951356789744739522178157196638535345855740818816005740564909919614714633600279257548661673176464064910363420652659243203124174938806358156483991682184032218310989838628377794537405037604340607498854421570797522554228880736124230221891316088205491541422493396540995867769045078041315258715693675353061832557155287551427894047668036403968793464427154381157737496683199032479753678235624858474268212907583729686342337871910367759257838766354929874520104614242427897477941344244536149226956096496768081903546866472253072993145911900190425951494875261753033516595765350127230360170851857818483239934743959029546055457324374654637893974648441376469433889973480509243420046881745666832435517111381592023191508427271967010921054346942437837474656696108843044423653549066582113892028274101818090024125383022072690414447579762123667431584375846049079726685023950092577909938238695254293461163405112465323394518088072676322250377956440388255681881142185097835445812345012572293713345032193262187503196452057952302592836057249281505041325040158521231591425810666803945566727548852148872711268345510271070594978663932160444229383396655799159280351135550578421817674924967560109776119891267614973541482814429601249508893113685737164369685763048679727646155507609809357958327073561713753419587742160340115562116861284922925976413656410753036410323783195650961467613167946980897391851362999753835314811038229265388405492970406427023606435978143582377355622616511164640419631396222244555293961969239185062578623162569543531811999357985483564021841427374262991808768266754369972948207200022857146729235280262555736432796456871402919116269979556235948138194718021495128538250375892152399486524360220949228444960930837400304164215127235461117005196385810223377792390562035269977546188958540712760041416993456307924746613298993547270692850624985465326791490916921818601734011137542285432817278895616190680553732843838519878058200000843776877170234722430724013248395264968574382908014301011088442876417700642485064506461627434965114626238915945566329972105446849680805920055695582736785553052119654273609200767111517599704847300707005252642959278823185685434371618754371741832830321282931126834395481710817731064903373681511882250065045599681131763970561089411619018261808893986743325560851345272739792452995761453778303144373095306616741963729032616854277840574281636899680262646134540632336705579300507581124378799168080848943937546407768561312091705976098092843204979481780108116770095585166888063282442120374780093560914950178702912175266983162473015498126204967877090819030597198797905881151856923725460541979593204037929139071837958641023824402487329900113420122687576193869791301208226377758966727366552600344866937863211230312021049923678720097036132652372009354594844844419566260950617395264514125764303886118804632839453116685167258361688323951568561535795374831980116648555951747019536284841424531071010416401201881699673174557624576748250380958029086896455427927699655186760110241803821372738077822475917067214390470885782207418796035720832673780049335991940883873772823923470182680720315269666890334414773643776494318860027760517343756116577141123847714626935928728786476913198462671863224810997329815121271569629507735503445842717782703912222244941114084318629347953640190220016969313625187281426633454348118485967659407610525685773888616872434552113646514565604775545094225260461986951171020359396615258105434856044042064850733940268444007542339480748727372367708074350887720137540979130112063350074632108411081159459452690291716862930289956248022028405306654981395611507594998748444742443997197184474885646323362459102972465317557817834810833158225411885359554784646586616105631312788849285722832742303219000362619970657084803496935982410059176107099055032270805473307464685842607261755190273094486512024034022806962823895372356405225549447287508769283311959929086729897465560250949775482852233077482640442218334808482586689122006521843606012859642215864425353004797727853575047915646343638663051672306565747084835397326981534135237799362956028179502572703071407758855026352173985654219408421161608435485746051987529658757722338617272958450963470714320041843606434360775135647114222475386161219967248411149445622831031410861179601943486392932064208096318195670533255988695991515971883604098444037592541658864592361153038142648304583417246268042192657272553174835917486022710242941193289661557812192756343044810595669442918722059100000875799540120857687328412370943468750598084159489655431331765321098010419524075285462794816312004382656580949344851953489689525700454157406262981446212728713319497635114030812633256151191173926919750148456933029462903934199679715377861244484992196706924187572259822978556346759663534827599775257060657335585779130416497691118943287163871634677536803327775756669615212170216032269120904564034227273742971126132254883188851093080503300560260467152073333055538033094156177490914585604041999131848749406047666919987322423650917496842248977573080915553662050857582780220033396484170835627474545951466009763894274066044364676530030142720674860855981318516872656388922723797619045961804880056519079066893853588451054005709340627295980072687002483155403433436884837706836087769713745664217625620414711885865418476768045663338267204924410101597515607112588074964415012828977429753360501788382356326647804810677108275017184897443275767221677882281180237694014066945129917268298604282033287977544227624019096885521333327985374539470493272940309312396705196998966856132320937722476036799317158844473437875117787322652721164555136925180406611433100486366922748650182696330081685748444323066054710856419658530401025465790754919815851446931394252328707866153155990227000850205548137410107117379511637650268645216223674693145730329317432751708044243451471630517747077508948056875932031306379254489873841034317076523358442418977350426408680019276520298956393649892834807843483447249396763971287259942485709843298489076407932476295813708324892444780952718400854883133110196186349348343937785165805444599119910351635923388949678917771019121976788680027569146901521053664436531118538838775809581320889760779323768469010653314596337037341353403664837514243208966678087270865158324185820223591545373284904766747615812031220683849034392610906608943324023041903159900908171172445517479389325980556291625898367183826094068636902039783548688175078052306230397472190233070921304206103822627836351422574287472242702418933250042244338891833136971600065681069356737398962832611138203251297845060655000455156933896722682795079143768961544180812557950455443985495993053707795841062846672169798516806886145267905815728094382429970024755969030782347312767363480356732359115251212621603849388992281333841635649812304560222449037736384237810014211795132029333634217080331277122120448182514561930726386119698242007180038722205229738819948238247789759773265131979396675429511524856040935749280789241882281448796400494052942534755893389421252363492375651249348652224662023665895839198425472517750269033577615257890507283029498373242733551102649350624627588210536695339414129612630789477644914829278901438538293911712398912610562919834170895137369378621174190314721215696985108292294521246368535351332916857246389609374793231054429362167612340688697042063385589535678254493877362191495915966916929601696526868621037346832519490317930966722471864975616286655060977791475737732345238691191720546106481117518954909623088912911325637956935334420589176048904016881721174758333025618838108909558982369001433677428150620806514308896940595225917913207434072087611945495075547545494554364476763173708912771863436357371874127317885901190183751639352765789681468489476180803752650843930498558462822896147778008045305756214297906092754767731779386930180774659374891112342208331372154228295975333327973308958620635781191019979646964256479840534927368304627612413281098044599458583669384072262421153980950377751803954100896735178326282291482667272942272591258708097519277343999289087777607855783157750151580645183876245836279759616092666338348323621771898856855997701694999506937664092040416412242400915231795786665222736934885218888843459474127154565889545964870813359913342753761012311603933546416858397636244010877407828951453550736269043168449400943566311431247277949637359908703214274903822045363884697193366008470836199590983528956528963408763282314237571212959304837215966224070773723643010344695475065556764738719674666953883356639734519386527132737708476320796215784574948437536587109591016282749549822683632005673216790797937182555454517588151059286933100756334125651259760696377641320178547107751733937237612935331775007628798550063969472543453323586391567972441695128564466578447355481674017788819450601659372911501875859801528172548933104628498880450504699087951796034990920292644428053315492517940833156835826095741215101112273860896123377655124044753332727779678811328753559176733764626979529510013401185352502428171545066822948925948735628464277365842805366565267362777505632242031041130042406834381032581393757804762412599401551076826107327884181144207356803355318204943458392365068697543224742617484292480366171927112004722492017982735874973228438023289798090129417649591135120995869131436358607119390798899132115151915307462167537568962446477808763118200997785400971885040751357230635137362237565912663473621369804769337895986669697023976300188006506856587932273592585590274161170699946177075996615889702381416463410966862643059157422591928223874907129169842370627784523187536743602823841294519526504599002972187087508401877611605627575384665406975502153282854544327274500853835590073740430777249265910856784082344693044598092143778553172903320686285418712606412673492946930764247552057413473910638792519836893290096359877551480500163106733434316585200532145518787787807454906755753925030593164216115119150696731221099305117469104687209097344430466465063232774817973664332754434337610689919930815900136281482227274786904064252715408733126019050069430960935846765382143229065125795963194602718937272239202494763830397129350399157164358780090242099259121495127202697986878530737810789256895909543862188522143970365054216050752141242088396069154693277576997488123321718813145461584037424773672132766525365340539656159745295025982876459677455509348832394587916131127145131233385135869736301062449292270242445346390454354596056770306389529475871770430361627915188849386424213731900889839462460338914191209576040153284270061095452489680435731740563530122377486496239782257130823055251260363186759385697467109757275240911399529256344805179166412012318323734598840025394704440044371253079132331393335605285892372870043381350779997638640132834822018001283425508648596285670981212462517685829239335870932530176657671133015465691679061955958662559499290977397761939171289644195737904990947566612134172840414167653004070996715211196522347228333877203060588537388408718919231433107808013903346346272891564249315035960159112082821107663603083588651302515925396945336065246700773615859702840499478515628799298544904403109634772973757142908516526697179654531612049516807854812023381252053766674351733370565234918366311383586150668580518205263129070336442075416304845631932821816826312271376344694453022490157923504384062543566649399285906779339495832407361099406217531633141124586961847272863292472145489217090466998247370086541810713538471919990150072748278654685934883828391406222616977016770034554689242342678609336310329665555246185578648243127757620596263833511022622530488214284724573914856438145008651581875292086418822874224378767160970982147717370888483169476477807537070399585538941751610872551261399275416189355406131558722216115715378499038390145561818999907043477449636760264335507335012765892124975058802383722837026990381405494991753091129147612600462985640462930522527731607703263170926316342072525077066899874668745925409398919935178777614453658797629467185810719193174420952616408769563340245041517141700828906728102134929349441876314390761799036096485964798521491461416496309484660743786298271897192071962046843914784075960081394234838848451404175711074683777385432434874688526047017374104848739328437945011452346316637438771017656713302977114731953100941232715943307393904587767574843946832727772958615346469992801894523098660192169004676788968342765752528894419234152418362230159147043446112565515536726743326115847781360125604825019895984823467014659282559458805182364134126910217827791015923952891806222319079095748226400574307762880484397327336269108727624410054708752361236842047220783090157256018499950535324370175366128906896436251664453168477454982140459766482294532095401929328785140554384549700126831318232852220949288406531073465213045922429014244781527972300558570714343846986497602694279019416562481512667017526458880538994366865929292009924302715526169901426519679716085017779002517381030586170478781439536748364467337728451745722542451885162927195010726256177482658419125361682610401536846975577744524294931733803467066970659698035742695334014475604325723574560432274860547919261880196178770855643504982841536981272269716338201450328200363134114615366205791661978702695994128435168870175873889493182041196026610605919040110992727595845021963474186524070933525144681812135305955757879028629438992321856888046356726087992382144904872174294955028896590976826646673532652236089587336811155584327510636003087585096978764226859160982849000372405797641472409823660202125184162327618686252399288822192881116336611867329291594434031031311035668093404114519874232254589982126989592711012658588247060026730865248221598053004943613087198637002871247252403508858403549383062304041431632302949886806467300036554156198431646574898986728534988877555406947603512590825457800308349553427225621391270695740627149605474498909667584226475598037228779127601874985167897618770365932529826390390665664826119808558669867060026093262651390028411671617098356474247044134163925876830907317609579160165091975890569495117450546751026618221167615019199981684480876302365221660482997598027637176584302694192442980492027621489556654616110174866385052617107398364841685732176837210966508753999495690269263663025565210666247617222461256828305390714720010471338775833669388076450352557271152274659164753986022950954127332752968116013699756508267113066036747764333148307860785419584859348078958960724091784882613531941122367297432640351614739832804778847014663139547443763366996890836983685769603124483089619891673372062057996391466551613965264589708903336764727167226020597138528967148298691841538292706739413513081273775656760280952517973678622999078245417317193770519890367852462570308740731131334490457122309655499837562854168629990463176355020657500979277617814537936195064771346065815728047935224244093664263976397246892071541400924046772995627548584397281243097260127507983363292406383589965131529144080351581985068578431709709208674816128613336783364919795578417719993171151086152568487685330214111443833184783074011739302499366113191894248049557459357846477976567464757112225612203221446188605058753027730439178984306659384263312094265492847743747603011995542571189633490665684709694202791297919010315639932268529132376474071187039229987336343670738469811929012470306328710510978575104730665635032239948861294273649770723912000903383740730757890829850624863191334477891058532456638388100447824725324074420402462818003338267718292727146582789223848360694184860401457956825795258103705467438126741325068860898950644918542562263113963764417904689463561695220964514338565020770515136044369931681058680441642828962534130789898205874616114602616541257565626721314523124316174456302191816575308966951686076682831295974495907366547737583686149487639305820855278344018049144764787847753035396608357853961368608358875972087488222616195635691375997765530639116114657277201031225003833349304285963892253570544560738602369210108356334558874219827704238082988824513663716519923816984557116257648474269868296554402656387702381247001812267058585125059309608818085770685181984118266358632315706046834402888020045369508551069802470584688496261068386257420690820508752400187984092927052962131071572465828031828759724464927610458089734227679860407843028457427542251138875155304335410494805994131366486786628224084573037056400381982578526825247006303346152081572844769204812285490601759914147156049407183506357920156628875138026966229623606222510319189335461892643358320301374448073211869742054658655330060211559942383016847441198077480738790053885680735884785692057021844950741387398584207238117458822998474494090378602597718453813991242459413839354306476554449184202457299291907900229115916255291107539347393488948728945679035875234420738554136953753274396168377424500196710156824240647753588227536892907094747655761475212569268283786620980978601594029739393834059919921311412407784994796358599493040285189840726036333847842224705191617273202225958622719076379298888978747093729464830531015352536399156210744549262830227801119444834464251372001220824304238370844786819729872144504536721099360188200679939791304988502587687852092270858375217675279254390032529484684219159338184624131883777620720539092687886221875454315779459141796372222598063603019582219182210950997424145303672198184932733730699270716667340743594731841710084775916965816423887839580419408882956805562430484027240433592400993989492339431616681002352023084090939936720341282066388624859864928097137032066095379216943807094559102777223324976002631769459626547596907368425927569573917564795692109496453938219322169001939629360135289227821823113705753048658352559676448002316448949364334243542898027543978079534756596735993555838367599185637712343571713207605097633632428248244419500748402630550047360958931674340301798529949123404957537300280462122357062773790812158775863053576639775786045719395908259314049082508139315769008245834174609918415313089650170191880657272969952692291632383915756554931138780999167724832437811132919258231168077695709241415716073449100648286076221072826512215405374545257991849628353137264867964678013334822735426050964301384635287848051228584899816878152249175319034926635618671129536424461913502544329173740189105556119916427847618410798812399287235943598525671544735688070171236978696368144393542139314565727615286848974666820077586473381293326552194895696622830474830729891923933699491483583156965426197935643589998250021434137110051854423396302797392208143582234955736309316887056129158738918634766450606170144215418072791094807790365287695393849446898137669562928766669045964353441000734185357143118224947798325483825937789553092143763196525250630375714554509908423089681035794594133042692415350422842578982949784572801631560941916197679162991090240627170842556599642367414384594407148883175445353693791588208217944112950915118126987692295962398003683066945265772585336782928492262470572459423480806133168784008502647600607618345321559366064115053318796617282669098040085011392866589976697428268778156437279902358881421866698548863765636013381267698989562466044268627004971466098696472508986600537187769865385203352466704393247783983247446630781009574534853948513081667033417993452172445118110975506245346626622482033167605499938463783511629695170927884663897268975597733961611647152996076983357887189096848319775703108444513404857757954323936342773588279229389198510022262429870317263012574542544247266435924781996172401826179809159151934295452125576585997965954467651008443996753518152899366052628188904345734710207212641541898451238107017471125863815785857754885608937660947299772751182257305015896508485535793372371061754875564598164305218845274934632963084242394052894876996315255768713302160792087843505911395632747425700852158869377626788113110081271747921272652339433087789808078129063665686302476495676226005156208301380660032325589961444619159142197491205554521986765943618621096057727453484912286802341867897727701422196522762744136762318564098979697559511550222134378263422876220093252869456985542044270064216758127254358576766113648307839275826594708359536463918138239003088935944367877953507680442869784218384486613031606931242240474313221087359143049461359405025584694051255592584556190022264639174060460682711967878736035533060226195499694240638737623595833068172341107113485828065857278198243851022757809768659663351507491209943476277430694636134216515788416972144903583024670454320632142879720688079296751661589294573159705098383424048435965391927303623001401662269430151164972275500351977976190879112485553109586385567096846292569628903284253328171710320894514860043975102260918871659253977176724351827470573985823771292108986433457948126080464189107797310655223737773606424031725784056799306318706030982912685489577974578417328293212418479245645552381377036299790738000181381053278733176903356580417598063481005259953966833348943923371890987727818991690201706052813415163659715854867069022740491351703118541473388884153597381143913757735828809905544318446330014082003659922639254750397493750357463770621687852381861065860379418539539085110794004794259278148596201756709486684270653424203656195425949025593485281876220793813970102093028846284880505298799747103273915351725042997326433324982631628545554223199433271917020230588558670902279424702159165564875657832622251699366506228237569053470217212864478200127188413672870110035519091526211162760785814816793488501892088930671152080498918840897892238963747961039546627157943998555369663732603033207569331125139254809243761123155031188601030146143866896408500238435998405203522172207354382873121103457441528049843147006024735630122161430395538458672169926375450333794012812993308432624243611724339028390556166597773222919942324429593694911865131085636742859302819931964603327247390534424622793567187002456307634219348296353060962247479753816753335581938259974748327350969489454679127577304591830548873349711750943114064856389990583434643069277977553406475649579698327191454778003418323874669266117453429114292152626830894925385175731492689657698751510016595955285123340793474016128198911579395408401141129737425374688059602953457833378518437593394998080493246553856122010506030812832436991300692197611411971769060759519648941763946779379428507893056834075278271228039224499111876850572838541849175686603904468670878154734373790569064534666299290351608624439026936751023160250459756543909846355063527238821639341085606094107082335060400450838827412241483060335798389192938311308049349385449641804413127220154587234862582214577696610172435311690919124897333060375738425912287102441672716743215743961045342048886008708460953904979053288574958891380386147883084982548976495854036246514764980945697705649702861252115388574408068730869467630972588566812109241233757832151835554451655620678037960125881366718789199889449644158132197610006072447554640363117542537121418133312434627787749553501815226896571547916986315299822326448905494705650866276693834423840592272416054039618370043796463248609866415031033489642832419068456827893838847231929861717212895555038636159970350418062373385583395706486161022279881705182802152226993627179380567724186175763263135475728265607109898963643360765932554225512928949485523852299337851204805034540203101924102137739314364773881938702476491029825165891255437784973791585662240545745564662476245304384771929524249643984788373941335948948394247565698599325967744303789572091662852256555319857965116553565616746262233640018002747421870383931660753549575059071928505028457409264926368363957040404303063025092029522382040751024980127443579280326848408047852040294517112257963110601944661215513370327871098071680932792584122014682703223803058039650567133435893920691306165237160948674956960482360109694834839347043480981883579783049680659202459156024463052409376131929306367286035852607370655240546355438232444621432546123221861238633746318553453259692238348680803799310813482847993449925166536374027995397978275686147445694752506369783148268402965099106662536050710059237485318402619878397271199734286630330247275984414821211111844740132395401562804132629009159870638549587444127515424524942999616240501705393555932238917877186499199316521364297581216166287513050896599830344086719002691821682619164078363817759106778153580268207753665958722729951303665781172727129909395642740589868415161145012627849606748680164872617869109603348192072666809971616635042369596762885338384086586647468200924403355122584665918387162924660725731516018013493674887314070249624836994765984196380807302372273894019197120329375479864326644502703248472892567028361620067556102592738947499074298460112488387096644270918822210095344591165985481754025450173947226044487642072551396206405370791053949882973875873908081458120318342065724950295080773148580601835020059275384622322284247570930324206230689676800575778784514877647314998197439799848484776699719592989416883540153108566421712662672895201054307755072577014957161553461767673467419664879419054978371746561398478377169200581424453834074218997906980021010682049990176422995202374114304859880572552687097742089509602899805151730657877035956594204554225376216110543642085638288203690579152721467966653147992743809655635604787686183004256820577525798836498890678750310274460596547249152353347940769708657210360517379378241847268055262949031008852505612235189689409857617604732122791921828309863570973339624272140782387177160284302522753451743264729894738683760907107686981132241144957745593879552130284080009595074465096973722092957814200739449118792580031090141060593816781631040056813991036052707612506574332486323490350466591859622616431921865354470026347384075700066981412014993036914929936787806035739170826761270517255067145827617963452360993052231148114017921999689127809475764615966774246777880880799669353538167202395239522929143060362395777567322730311026278899527340902698180889286084215462297481533864308203323675497077629407127026795202342461197776451129456680740247754698846527064308729092678310630588167611084211365544938835193899991907136645722181076821645053263352674391351644434936438133638789708418928472650483668875214541283994692271499273265248666946106588366647640182068119662468985037325108856753819454690254742243848589216039756369378947924398720169035881686075178279895276454954224243308305066472510864320996698143550206592829648362206762857655516237977310504459925087195610163979906083791008309481642293648344309231221476266611098737820100161219356247603854342687601185730633682545267003386386667283792118426710247167656730369945576857240732003578862292879473941245694172651565191292389770702434838660402563029150845971286485504388682908755333757054360747061286803747929580643365948206968069392377733354491228158866395083256267529282391527670804748989699846515046794553573671766222038713972746525677713985861494773404280098635424513437417319095903296463753717930557158785354803032142499121472232408344897823842061741622253997644186054911711220180517612037172120652384734539968992908192310984002985210915654955590498634860263332061809298877916168220408491657119000400631792135449437147171422044842230133942394831272885458129065137875988428973614532257664469280145568407053270672101592409483207437452018653175303533391658053939651887291621233781264440540005303937422094041962518666504584491232529393635903391672737941684458309821007829485947657444170656483158499636806075363286790404260259736593396769532651001427420402495988817463653954758302280243627745383574302956631708868980875999839053152626119553003596467621737523593968383991974524453620837183408608372090562213548424656586036409348175784245682652422514863714103422993466281512257838612237764202298190929506645589155746328888596163817093010050300363501684264242408859164538651835360292765210796828084758049479106588630231853502472658494265770380729591327497376738772349800999685507881163150411003421666148751770587753598445981700527870067755874593061641863074527777886669361571761029913952771222886544199811073960112106005973760538178233891720412527431517871259506546585686282664627018466804897304759223820186341553621585600494760201765715392466882084815155181644768391281387180902382175564206058499932563382861929475526787450638227798325848957252762036627694711032187296997285505518092587050664529332295167120697852443374947393192894224257687699302697675426230674484527816792732417779819052379907032395538374635701220609330391637711492023737417172689619982760780170994933002342597356711677653132700335903286550404844824668115493046117422220647937681310210684333588093807754450259226659137234430285343602597812577735720108177280587111306689415667693280793645151466178982287975856360130224557373596595586972019906143958525180690962623675744664672033779600936291830869187023073047566189784108321191944633161287041203845237892841212689093593339762727192376644241681218558719785037528422785508204810212497577606653521280408213916006546547537664046464383127418687284069711379150656931581667363647568892268578057875154994651297106966577389265046249848169404852198675524850044705245426742825730533754336546143883703076669238399188434536136611096426013299264079253037123483356340263647854119835421227777978208921002673050899772697994029111359563885659606272605340740396964588082962164916972171099862659021773674123017594498309402626795990825058283375461854587541125684375957267595330202164237571474054640374150942261979664380475109933973325997914502433263356149431848686167948737724793351693954452327013471992793665764644201008412203028051692059595550688046255903538049295761976377092412397623242971382977229659215528395115792024853827517399549083105124471973422848766069136024379850334969330076961717284730154765362130437244357830404410041923444009386372015515010956930625039966869511074285427398822539830363977257300557276618738876419540687963421287290866522843136920707895243799216845220603959320225793032332315332468893982890655574326410786898789650735543375794940147588451076575460597462559457909728090631957432430202199553483739138520630279610786862188961965557398922365881349309197093402711938863304591614970696641008636883925122379553944768645201521909630019700340507616281988942751821918503085099295626353721126951943481036864084256409088892920287198558408215269911198928805655648390517807574353807441805355972602186730565174750558412357889227592579025815666102986517572165190110816626028879336431149037687519244455510776986698075246926452267505081554678192771375804907001471399343327870333896501101526353492586392242479557812101188740420862403542793199839970342258883090621593925276841095390800121687874865025701202956494636067162783030675372550206510652392804678025205471701175560285508108806329651701139024884387831916624458995019577311050526721047078476370994512749071934856345302555739108409780006016580993827603993057443263768098457589426904887787887436626725772218466342182528298404241514646739068713933009324857890933599878339106307434836870752595424048552893619375565191791371584542110392712131992575124590858965651980441243395108917077158667275280132230295801474057447976022876167422089865890249188223005803554406949853360712498992099634184849443864910330971717630721559133981017066715070510241755906109068585464043986001056743554283337042242162245604543962232950101734720990789685495523060672849520141973014051437759355772146305488765801205672434329848474754618564553063365612465474805276698995791811869247325266729191212959458899266176186231334495981375143285211053852539374896029295280641015936434319168169957590527160226892779091327027982454037041100986193048708500095720184822882725373336462603802001394017913094319888622121471728757545694487897715443638157954135178642449848051206556210810806737066964389453230607999037147022538848237528626470701702055770331006079692342608667576448147457260495863215507060064093768523461661079602740359756891414119211681731134853031727085464616619145360204164376839010189671583025557876306053502549730578080469592389915788064341951860050241897512432500852823548614191552681510580717286344781592748853210787866454705582557403326223496756006074486131270651747687193436712692820532901590439454141366531047152237170395154947495990974572214113784033505265295221494093913023442334275792801049220550040124956205837643364484765650616393912483255885050817853502543194746426304299821341454453018337186587233763339187381727519979455251361459834131759205981188945617656407918655794966145213041107359948368679436310155244695349474925437559972982564477058946997723788703347757660450657259224191467244661867635645325802736082445456501041523760122997456823547577167411249901011600022701933236703903339698363213037483362704221134762573337506033665594091066505878632738370769650242051754507729562024526397870370921951441610771284908563692568319320197389667101775774923834180344567015735332402149198092082452489886271047351546992748082828244824995929065662900840726552557021972026235949514779815519470250134661049777498488556962037059164746518082384442064056971197214678827421206988065219192227322902904694572062386626558481492518256259842417070478556151975264606386384829216749141070565828448185091698887778112528326220226878368956276724756019488712276268837672469238746530940467617129336211970597874212900455344654836476624504524287429865992715955311402610839088596932447395227751420602770906357666986404601859953531138040407671785244800398881108362431645007312657038805182810120372654195148861804650022873071403035144967523751062458967762576877745609577664764537011113323903086747752751150511522616886321159783038330234879247724206553134702894511969328117502683961838790223959051271782361481795330939463019664931213398822089042720346805922974564644664694683574949545296532828917266525777191740219109285505090184647844964959759699367470963375763296547918541305134533006896272126761604234050029586176314940413049868965660667634280412304351467150399480978533945122880247203529819276368520943682596021912334419334165574056372915400372893160628076056318519546553264895141556177830187420438580942903108422701557475281400756946485278638016028566695245459812805591739489838356237584878239983404310106311775744756115107995004991130759268023727801397440818771439132931985576811345085724603709895989946293589232473619455659298756357617336916808980140184223960719106578849789868852391077750779958509762182679635921012327562156793137784051671805643283892175877950412924059299820295563112433371786048740212868380896429115076336815932334935112916881396276283558955171149345450771708320561598085749089739927161812506622280240326587992346318251579948008118180413135069662350485311221834268098471013552842124059691738278357418127085766658140244655647260699043164967445479750778509234046899206299122479978467896820230431209073769589436860614280486167453023106834849282208995338625493532527082297854676142131263108686449105108283606395665422024870735811611573917240110867358144117210509071724218250145100426169320623350190460847750403392249844986706513921988006387717385002914638505511699489382393676202812200060486782287739686087586632050861209639186925668418214421322119735555757698780377778457037684467046609855854329284008779511030331593616458010313490979548297224836079163185466085609489531682476174565773167013749053485637455488928155694264923208781683991606206236440723845821097402263422279639599537570260147971177883163336744511751639139836144098025832957075617024137311337919379872255285884191707849541961083236560332587012041530668232978616649922742043006079862936565627766075883086313711976001651098847945797734168221469424805433688951184163063354943899931969710672862255714677940130738165757624604772113136787502642275584094260924607560651269887296834782244463969082512188298356745523941502694583956941898795467398024488090720060631487933944488564297807956653186126288743217242869317833432102023381635215459903557853060694643808734664466716538178703178083626658604488037500487950441953884904653270668174795773289955897660010470017321852718498251988344424557189823071220536037349613072231544478103322339491669249832910797657015887040657304972878573555868756800464595486453950404079989917610220303944068341758000436236664650729216987439428372499298762618427330408805992349963866384937189535903266222349224514754031649626060932395196148390624806568597834748473335751348063170354306979841276099077055612163912137286024394071241573289951911141344601141696910945040576831628740119539064941793156869131632739456380385700137345680151122833819686266946217366146253113810269381730831969162820142539561365617602699935270851909748572365007911432381782914290415550695319902864393473542071639740129833259220438029150801124578073329181509704810338609572480763878087464999663496570658948546993472684468522792493484046095745180083427356405546951618321352325240670465072973531096667096510269340327529063729830419894633275410005484230397565864746925540994038307202590726867706147839188774876288928513414649796710246901170929303767832711892864944847924864649579395071932720987099077864391927186774314790372569160928990158265517194472025775633225746508216097541840156455726812786707646979439788364051618953476108982602072309637230775886957934253054225644420551382599295989132403314416541056734706809490951364590241976361734054374712205074670541258745389501777844763267241730224978947850762095972805228317764622262373389954560785538882904814663232627086353220058081930632398599329165742212778990705639181355178965158567011082916708767660787686593073910520517070822512031018967975479072451515919314470869076694850227037897658685487884532983671108234782359059879893778469500376096220992148786614089716615776950251733850173149967808802661537233047697639552932751443565716627772479423656775379249005331522956876343259121525995058082177590012527433705331106407559568219214012391522274775637238819810320289128140766573253509129483930376603925783204268113426401877617039991661507535031052791182508890060547551930714626494987988054118341723855269886973445059197575204911243998427371928803768160080956408741198102394062933454220986467997229882584215869471899687683353281999319888516088453036897480206837541356790814309888701846822295773149222340740598179022465742654706896188853654875793381962186285476145919807462909581657167413067185564760961890775979025422838147156586911674693473912740637161006790639523951976546241021667164740559066815114809363845899792499988282538039635234953500063770196139150637298575880546668542607076789335416722321986786792745767160877986612479870357075686616763597069599174770382124347395373809523725736097229032216334311893258950852570499378752421937265218956906918038394309234701181667322375398572296446559678925994208226225174626464390401895740371928869481057228812065377087811550028228308633404530086370410047397132513762908388905649804407295800436042605303479479308177788945741932342893425809042074852446789416586310760956895237273462931037597813944406202807499844674872949618361308291347985331743834190834963665586725712711327462820724943277183750286397180307415089240350527610790974888005214100797859544803343993886558290847510063931462623086433417828794187965065015436780728873063425531727606527688905833483877851308262985880519891970428268259014125529552965990498320617529062947145908591381353129628979690377477810937025444267814669555971301517408938583392265654490503617434188153478585555871171726406444161613416997521029668853831732673162073160734218508203309502512738911854735387559754219677523090129079469897385552440976370978457156879543471405237074299646369115199450143438760559011228730360663094147360775677505508881285348486607515643661811086973963594573599632775630848575150925157812379156388079242208335417745536741318190309299454324670888701485079184271253962915861821082930863223400953465469731497259245851778813923566727123009658661611144790537114295434646118650564689253015075454263094606546405399886514769702547744301968792695171970381641383007057921514074440070133463184084892021024266276414265448697788791195460591110587562276565128478403615010224665765365247178164923221830561193882165460100634610970901332674646200494381406959367651434116771298695509888490970904054074151902819520103877666552334257783435982373916481633650267728427348914736616532940728707991741159367540596391394145554485183799661630567451803525944403246648047939225931181427355568265651728532110737944140357526244122946301698292897414384046343461434183012180632974937092355347012033513096387968785238681085142143640895360543288233994501481575434921431705747249115957210483942097019895030641817249855289915227900690882308821671366145002050542948218488717128701088578648906440054916753968851917679869446637773774983844184125404865099527644842878355482758792267083097444843316435257444815459492730344680782038827587979224139461462952185330516485274156077318338364997088894882212934146804392425211205832859896133035593373149862121201498317707905369793588911253885924234095153044167417676301883184801771449533121974566406666001779033354765900982301467471492761183661839781706632404238060578485907045988267975350562541260559210544092356565666249408399435379946948797639415862678662481318352022401404150656539508316649264934697745778460222609881709385799304703154971665485151250880428728158518027421154409147526668430205956593191720314997729870593793481684745198994039957712394449599387906999647455776711766591572564629640050897986282867590829756280190984165328510528511029063209158949143535961225430948795772398256474135498457687791964533066095203800272581195909024369121223817860553390263444475550227813971019247793774897100561195852532309358146045483748629421451236297909154810650914832729209636066628216943741943907965026999990898534232520243385365418076426765182285979114737565305436504629370578298212842578549080577958207773330031392404502788035363388393875434176307485897237046581773408173541495639787697421488891684210175306937652924882902624219568078239870846142890586544982110630905462829506128945551245218069455121044590722521053170729315783259889704637691760171251989887662645602577957885325455544422510134889529024461697228536489167121096762715534600972406786701682218059385944610470369500881618453837761069242566295865213177318757707746627220463113388619916092812406481189871602578634368986980004286476251746404460520883696937590023962618639640146906104123640027859755541383908409588025872004011466464105841385909412270514262512775041629888906362776189480730344422056211502250455322145423559256226381038174167750661093476087610864270337252888505700164396825329192423935946986246826032071450883812543787202852847981073199155328871108648659845495551710999086186436430474529916321173446051766889003188453348008893038836716514184168406382919641993804016743885393078904008969274035163620544838891730568043941916721740488692073866076160296132968961723151030945402083066259269693572186514374208193139931441855250356057489222970212226151070175597598038471674905020275074541649605013271649207200489181769963021102613926937049374240984012137622753633396534414773886120825469498375494001990148775035506244971290521321675333790201499798859534389081202734732138815530542392730290161704421191850226129223058217459515533926902003156328926926448954592833776809299614477672791228048704888447874737887015982333437423128742535535902471488692762319122511095427946761740094889907285846614830782950475204929867909318650134966936088395448802412581242984517455427428407315262962200223061221492523552771150691955792550203172397716915506965255056792779770819265611886243926068131071901551513846572489239912441805377386884967318709924917354210370593317324620685074836749772583426769881386825779182670227755002399198307234094005382619120227330692263381809650345255802283395516232891411585997646135798089919164058349619728058629679052036709819159534475821598792350232966721138223278132282755907551080104904627759448304106327744717215186589098819965713900266424801232875541905508739205383267786861445098221236264924197124703848325245316540080641486491203547179919567106390811477943280478138635187224967239559730424074114442795740528739375961585512077654707345527451883120197854966909215412160410713733381275487016748869354181096469953285112876192838510520386224867024400670009511221069615937697544689882501322545714647151925263582891622358122019438503781197502386863155667784999467489707208231128960785992540583986195434122421625759964740798813101683888964342922810301114140444259190742154122389777289607497082794246399112617646272981328461425750485279003266945787415791867411695700832226510275202285581641886657313080599181515419077641708636421350128320532008675162347176109912183050831484871838425420654377334097802961448777732309718058013163952450074235374345382354709045088013322342731798259623404064725453024722803397820435909855508185465404873638733555659130904065599836129881661267038289500558451338277044298235765237798661777071286739930495474190659609975757599375310513368326726126456785299592559678720766113368149146606946252022617741755904616715346271777259426529353973763120792331714889828659199561630618433803009569201133582276942078733067466156865630947528227804724251320841669696117150098190641306707972523699540855699980161927832876014443091741066126609889443470427173932927672119912746276386311919259796988917284698577719345323914039137449910963994886884549582867837714051350243659690228638639187835072712200855810477498456903408875335739630914066814017046457153890260387146983319697177060437838714679392324135010978975700500810867703378119093952885190161158728399586637349299430290879820540336011155639519234924147398124937959949796126039608108222403645880213561060449018104523461483863669608015208916263193671127888859740403116426284612763055198612141885721101904952931174470849290849367494338991611993141841977462452380640348407618870703646431504158948221205288646360817006298217686384966430729977040235732473961038263043445590893095641565283737613811461256854950528267955836838163128268383079891724957726825212661293563987771869396868585074834256878658201636423412435264607572782520529147465148737579376091717477153889438028117413981471807440426268983021251733031260677765491808599326210307070101711991398298334209589766357811190767529947025444086959797859645945849944999833085118689825042528142807735625537515736857805255208013610944268640743196036910519566727359380447225675308825823035575681292479849659633968323248389568666363483624000236445352278532141335713930528356718640603200303994599943668496862306831114488639997254342270612549817060206443797473456373477620710962399676696333667562294254981559234921266521642444664639127267784602321276195916909588721738882618326041528526820201200602317178722567975837923752822434310195705178026106370436773890562091969512230035589921165470650528770812389572475960312066083771995844049167492219715771385766633716989026966417232472663181500966900585303361197187415148360547552007711305146562545586535249247178024895425702618565634532010145220937410779400812570361324073997967451703032920815136779912363371814850332429748662980612760883729085101432181934526622040265984411310156846276794308637640288381706917329366949340541613914766972757557865340375357764145009708060959565976455252304028071415757869856535437205807113984376604331389068341601065444114372927352813424289772357314354934138931869882526007702789862958444043527027618410188702027271680602026719423728995721334444290689366703564510372005325225523175835670741194957586952807493108504050478451327179074294909706931243505826531980177269834723039616863910971736352664236276730113137201666913793808053808769657967061120004652661778202374620143834010040069759573607979739362436190449724535427900109720155169029859241900092613862250978865716486289559550682975844051682222859794684718748968239180582199813834403441259575029013989659913328272054488939275933969235291234390080341831974837847420500252552179722720268468632167761429435706609582595053926891684104754216481492827770191205745769391733558517928771753914849371151419623947751109831503971975201122269969845834772408231998045544492358069717122778671725185349660470650328980201957632221092276742645770260320455680081212246884598017615312216276448563826443338408101570688813743124676209452201873317400076959104306255385637031936668998218731565347014050565956193698067757286935729010725548652847152317127575422924588944358596821145592286211089571826409019489639068508018491604852056387713259802102206883791436249767438137120288970866081124119251417483240995464714668552507503346568493306537233235247832259940122509536699844627156292009441607398822601079861201219961304884629447981644068075298383497732911889346970269101960843174763184999429596160249281315241574466380868555201223096716586167743895106275690009187351584436626351596686463301643039889315447056582812168609487180195952526731608351507946945722376824320046109110264302605500209601025292777418739652951050774046956141309887199701958865858135038676996166294624279774308364137165222314919896453644197259641455169829598059955569780165090697051242533422249741138409557464220946677608972994523305875350535084864070012876460575449292518425847421286801704295259478153221880235232635111524661248168105814215258452257235441926175055473787560833502614055938828399158842161822703688435115369030624521038936553255410174903737662541537426878836863563198112162008373584524411323980650457557935068481515132464788769851669731361811253194318903806890628828841935839788532769595673048283114438306396210172861090354915044454813158320932726534093904411891394732933607626389276102413154196782620851436481257999930794197007020029792114611362925323261138117094957715158125967688444468425173962765014682635752779022171136553187577715681541215757891292241030599285758434630981031004042179547739517604508777805224652026700253539811400072367114310265747611485227782725067829484406523836322118132165546055467813097936759704750252674483741983946125000534645684209126302525130409579657705661144185546435454982795698320906206512457737435102103070996401007270550077609315590423537382816047356899203369891778213636521104578634733366792760888671495997977244842183604821055388799748434329798402855179137167339941710870656392544035850736165286812321723096380776067812775778943021814600261801222698091753852714959129789635555478237876735358270068745562570256092724230873136805532825983232219025324771539669130793634821008671677054093885163112288931395535012128674426093868976531468922810189645753936081419569526186619807825594123864996520466828365150022529471776402780327831648029717210167726777888236048034901611085872345052429964224107654876596027427523882742125589302454191466434168470334898409973097387455695529594921561219728239845311495163226725457900579216355562546420735922144850480428157682394016013319066969078860739919384544280870312515845043079765065104467860520602843364062295331596349598390950214496282749725305984877674167892218305858951751311102844510377041168542468984605573067958857172058167195953600585171247393559235428478884257315566943422030690641028996719157115964453578224084976018940746701033279315823895754766971243209449092247327214264284935865385123905623914404854415434364374467279687641178023694709391078752509987825609269284804299211166260978926370243745096407722174783872535458175617452435867022517019692803001808421327324706825153280410885164942689221762472470278370053904136608690026091387403514307252402027873357567988740765027235875949523990425534060465897666753332082963681982659310159031921828541932900003335815303783187107698123878983938177359631650541656363894653296806013145621968224924639508948891474753605839365396854422927221824339644255985902504689370605102204426380193607347293191622211459363665018746896928597497993101846482072869301330789330337283659002207477464950987281473661154682792246613682078360990053822042104454939918337219131162402030038016142201178733844180125688994789482886258665885478723751259005582461188263659307894573923207660029778050412568483811118082947333574071460593938484792292984166678661511414530183895169813207403254249555325704008603708061270106046683533503839563680259799369758250763292783803157221799153424390707443495992679677837340095883829572296040006275412109933560735666967660897369813219827197994016162097791534066160831830225435290254155003033137349419897762504002239553421682161457183513238098270965791197800064080755097801203433325174318516431429021930568311892724624050027522475753934881538689707230128916533134844718020239651849153402453129868211521170857272588890590326713782867082118551232227077861889737722035392827276942719656065258169624385807708561558581351622858420216809061106527277265061812996113239085353927414844351972466946577225296174425421450333047864777857175694012135575736709790052378476159210788251603310108669104535100290288047531035075153908390264575656064712704105793392502262988321664257541153876153451743425614730522551243595264805955171826140631566087497952373995485133752267218253000544012512000387356762036654485059903919957530340742263928620168788070237897629903045814123468293637949375314127512595767550746483304294339554652591976099988644934562543010397154564741790341302673913040881840149850357392655371063817657414660258912279157751460896934996505756588574029326670564943492270583615513405485774011863245087859486735501284019474301166387508352360616807899502728382037387890031284545944238195080646028590904887482263544387599419514347114117674064363000982289690496658094179229925489600650449985418252435109486870411619540421315894698233485278948287523235263395925356294212508599678773432904546742330812801995427305457104687778829113800387188850850305088759988268905899293558720932065124510036723340695693215051854129410771104762517874291898642145632059866628237028384173252816814919143741830121717424897734079269526253149955249006756318458022304909423972344449693841366181803764826067975763121382406798098336553927939863347909732810566195319138446001308295994542108563262293046165344497289699731807165546619089220358289340232844274458560842130631249202798606769148280766786937019144804898986919996698097340145061098414378335256534560250405210979275028813378461306194173117472405142788930859411257023688507194759127806387845548995979522035125404296981924693872740851603169807011284170191318514760747712511901597642839287936630576116943562110751571014164897045239315663191536511299329969965306050428930387677293195455974548645875753203308848734425433212659668642711524578422430078168838549884021541456429543094260814121154029026414803278552131882579043419042819307902549218337959698617832669151087013129019032495942326661207212477349786293813418389618148423221559278307391956645356783436526027098722250931971860366459461462900542269431095724925113395173344896853297248290758727223540863621701734521257139722145254628389725289021211670698280801826075268942121436743262721752838578202156273855106321318350887827494668074097684132896369861798916425293943168058745227629447448225158034141580622377306461563973518759244608360115026535083405411316815730971530635750729406320292068766895993886731432382411113177130566452999151504747960446043411378264838620476505466704817642966433351569025318338172774958320867642049322719672942437366578783034241654334703446799530537850271462095783252816469885883852532510994439647273966948664138927880801236233394091383950517205663981752641718453476519858819643605455089121204234587310779173329358315093827950378241712429193299295008063316275836434905921065990809295636237135637144397939541363402181287021487358335257236503055915475104586907200794726476518743938650607108660981010254977495719775573117345615735498282207933920158233345481595621578132270919674331224937862143069584736836352997134490825678312514585339225874088758770024381533289778644323620669020185257326210437174078451158270652162918694069090602106995899247703356347660466994643751438349627738259427825943424959473532714594430860201579971045945280568103783697697165344133733401578622378430640410619243661182774396836200849824742546566803836895999780135955634634379454124001941843253996660142014237472329586803579303392273025766210503153034487876201159230344445881646186336926689030053636460329103545412711634336960998551257730799404254329704386954840784303894779314120114774839720212607560551856747439823396475351762450445030490384438081934384499704894155935044762930410282667870447087703019589931885471944405686246190236688888623886095811235819440073966675312576232615917188924296991818803922705784758496975362841835541269923343792063946933893283536403119473459031089918219548877556084481671771536338071903484258429381026735783508964672309022902901322849161381695062910625123820933185903539716319413834737568594594229441652678503814968055398866354477726715809153508882191561671511044517423256717251697828214858876910808340591166243901063599774906122710166784952489465116865678826163329147731441910416879523332205923773346024735054892118844198905229852495873826360579977574577797775993270297444559680854793343657998661081463240174466121217020296606001522959200521928392018994614210757584302039388568724477190333721144637432776750783195725880056710118263170979023304902508110992553061661649313987895596459324166839712259969783581372292153962660128993216039787555976513535854622306379146702194516754843746657479650963423994229072845372274783224295202529804816604757394694323314548554178934631992266198042132232581338871541168873638244083965106456079985520263669524439913080830678589943012103696457271233990140027696069823309313989922955591116752788113767115968486148468918426905298223020243068954351858985790172509763150217244813049953426004878648938207115394407956138906573990019095968594607408201780509388087854817201797635150117175397382783185922622346774264469811506523981078746975177483259460787246180903013849815739588056086612291338373377955691504124556551210373527407308908568418000230811504923958212828108519296749222045456107449654145091468700133141105485352317518751989609422695102236845770832802094133108144599924061733273745094017378003686041327473436201467273821928038204715111082852720438931668161971277295031406497390352481094233174027065437627240038848962605459785826415297259198571177952993218501020626978877088310852659995193317109295620138404283364516762793421449321814259196983749553732232077372479217562953880287312145975147655176781608781267509686565541527767177439126811776480512401367734337501288238904254605837335514385439671211859095889758541852585632322206561143711711200188660265214266516283471032584218512595865228498456878004784427475491396937299881035449905800797518487535172025900077982297818645128809937499654687460231172597287024565425991629745687226602573127062458338430616385358974997643840532561822648251378138924630929194052218488164903628012633212873409244129395030081417555784459818043915840541195986337652589635609326810191056985129202926604720038305252136925167104808476416623374815719372483578109099684149353904455766751817594652456478943969939007563948161825359858843938299737732698933174278759753471555428695329033129803760364061229498435072839126506839445425849749435813170252194237584452834664421674881083681727562271160972901821677145403671756030067902486830790383841271272731823212628933321711494173286381186014497317022157201249776599660193927112655964574598392232155980131932086344417157239874230801405269386038231779768581450834107397899020446500081904374056216245708209237736527200667478842596642014776106875048886429879285956476578968935101369826255541324197486831730006556432830242913744289041446110920807066137036167140278595127880863153821342339610269969187664900331166224212321837649653873659117625089799085417868106542587746760485980445169671515844129773146371341624350433206961155603153947904673822631678727128749924033863782723777660664649402410266238887501497296321023117909589865916474929898896865803268351523411661848041126875976282589812366129589699308519049143677307354912650808424083660052434535468575866373404769907821421913716878646984049821611099974024909289099791035343532472699796801873579380297381851542225567350218225456445661932224482751166094355372117239372653171686271445101420199269787060723062291940049097818192450002757476309270948519691573605635821813795156943110732152282879048474333048613333121420496769012677312295487108639078984394619161613718377626373880774074395374006910674785591115638327944447146068924690065699396453202882042739965648451182665348845684893863972161584744902464629970202925075656839960816132340011278404246934157569501852526622313894392793598636057074474104797863311419414813277080211682063788457940528608248006146339051758398030039118491535861593991056869755547656499988055158559568811722663352589012565911385971292463631712714894051975048118746420431666251563156031462795870831891524505742126959620223981508375540676269005643747172473303150749024487238459004787288208671173292825051051532638747174027646489069056489871794760272506808357469507738525679069564974918133227499589555494776443654644915079183421056582122000342375693649776290707931915149684772998578038349740408192557841684972238453598316638147516414660097020840974706744780181879086242092072742176771517573899585407462644473541059172518787363759988785236405390450856457470557563368410872133961224781637351843380710045254326872808760841014134058783469801306528857578314259753691823393320755248103278551761890598353550656277309375448925655764980996103000557611218695236153015693087382746925379444976001620817117708834075637256892465441649537650334664893481053167482684772843687990946707505955962704347319769074181563291693250138764754603623083952018367967521326352071031124481901732520667923889370551017992469494029572979300257643476631598355040552223934412524562083377124504035043820587570146154657037549039738545203398585088368110255230087914652975321203183166557260851078168219353104524936283429394562031599789345734688115367842552405288282464968907413067669257238118363973425241534607035892730762080290161278242151004731273437661146834400064709110126435485128084216735129396894219774088921345968182800632861958716108589101678212570948059122559458285759933519465781336564326628078048859212303082335819222803428438572810431812966950947247585079490545997265689136502755784363838065446218535495075305821112889180918529459434598818036732493164186994720575620585594865713493542484333957577501641351129071843709117803530430535985331337119168216335349390814133465044593601171021302953308638364605259859081847901625107945904014915927944990352844838559441575988108693203105984704584779807712057332465338360107320702582486030593306272794897473139428413295479723646035730794741624466999889204292814075368643339348925157826537144881716132516908849887473202363785984378007888843846706138404246783959268064420936390502122028027277703553016180142731848950629137938037667024656642144265744431371033234224494365338761707599536416847368133722823483487567259313514433318862445064646976581713746298348660943686536374096667184670206558451120900229460371403912139022665481825108518588717031817893188230123865636762876425217233135175189747149917297221890464470712926555461678530478222178888850292141978048751303936559458224817716266852113588362891749752356964284437384815830679856150095192539525091620000638061519020317785187591422323779613865309638210116902311177544709202810792824095017476263847284935235686731157947679602375754518150264167812327007891416925736994600393259505004980551177704448422978715725766670286696289085391917550245390153615145138678402009972648945409955075059620941634443662495157451079488040180232429218368830017188781938241353334444574685917954707173157987495014692373357248774642508723271752831314655259295133352324152167109781879208738339916236249910072366646052699174923066733844641320076652212087336489006079091871330672800605882180927921814828984273196193120811714694765073872020485219079735595883845582710007397643765081514535104309573586117231322445731058026142116850502717174810468360999473970145693566595877738221481098432069946197267023156094949367816381942127055545158504195486291323741044908351621547952563281957416445307236321876318785304497436842811012091288655141531914062942055887209399725415305368226335198812638624849854875653552367082818270573274788153597494473886554976887214895498268246405729202019305206210638974325059032223965947597016912168648473652012510518172429098494662910550919518102395573422852329635843164802329769751142962326540351647817351298233004556264135888741216077678801309888447861774441246085827741616018354487543407173898625774068049316780566985195334426083513892588790912304152116488145835359020505608266529374404955257993454471308341853184736597937104048842833843835893680462925157092711593874059607226394782855754963895864219863479704381328121960919755542940209181781704620525159922166052982389180740423272105594129576312738391325915171725867821055632425886213300177536534453979504747489956006196347951885669643076506324377636827611156496727235943227023690005368901717224852183075894918777474419905979450762288475944912782250554819954828115294538505952899606032701812313206050186502683342468762115713055280997250399538712921927190788719326515889341979026851677834176065809340376201345094500127536772267477069733577850018305306012507191446095317801914249324436115601741020584625823117084537626544719273616632814803977589151464014393727208229291726449623777683421259615568507852680061121314113688563255210538397492920926484710577874143491773154759001924998698618996723722121164941158930236016890601318930936004351623608889196323615741647536996477861716925793525370856582165365770435403008845552550430718850616018816644943967748896953054085575288152786664446293746199303812575356874489661038705326349990254724648378750430568399407204076819266033863503748486200859498985121461715577222590597138863813257966319313126980882386545741333463518257891749990677848591933120254550383171588069576288480104041487160715045617935768425543891291009251868242513726548985602405070467899160207863279758975830716546065328693345260433592811594812624110253814608619881655207812834174930292143738027368033683349128776893892360910815810621039956428770957553656904609244613863137919705233838687196084693153415587455390363459598286040116892800374018920433437970421118679690994231685322048996671679153837088989945124932917744121673019096010553310355827790883012233197810650300961168447926293681718392840092997087722903694709268247787325579904899133865637604460669879528867124635578326369924933602882884905858629529640422577998245444728510780248018335902521758483922468658233884978412643041489944513967116474229185768231597486053370806243968529770325294813210493009578665778421745343057975632727179685147429080224772719307992545027609731385597952588555380674955919164203027914704817109258045985723513185240766981606758543574667291466874354574858991299307339721417377238917749531400369982898155685149569209353438327788690519177948648964225454067144220362272322305922054352827012475547403082799602031065963237398834725280825331622604105311192280134996999240200989087465323934454957364689366408579099346677079724885871000089805676086215172258083201823300596784785763674013841575478905719024016333268804517297155924247579866960240655015807110485853132571368191329562016023746749777030086513662247705082305312125313805078578505425983856702832121651649612925179262426187543670681796714721179479271175313536483606200565210866272577156948394933132154746893430799474431415192982657649701353535956048079441515164687283383729150873761475084923886913275842737053157426106565557335241849190136049313613533655662255801910769344095338304718125679807550553252988558246941566972261360323925715482106746864493000725763469013028672616445955635699923936364777509802275200683411594358452042662220696271158939292266727596261124618151909451210192762922635064647676089502866413157243205234200069423588563819163209149501290984322046214535093470002252113864676675206637014045022083149308904115845327996434781626503169516952321247552527230925258918190492123848772075425126061657232896451704459095871691387870069782280766185824903936211385380218236908048857303632475902052052072346057354469035447186138936287087391184318356575731698708410386373949996080314406940612614445708841800096301835384120184504691281588041693281128723793594112481530840197516843954339910047675468513667978291333606325041669482809730545750211126886829259003288582205671995508666988319873906276674457808559678522596289466575215068774833000431366944262949442387268055448674276731615759649765132333777757466041958560358895571079526293904541789698401160591736732365220131971749679653834985840313050002529083970165703849347550514657130978199895616148910884740007372330451370598659297469709936732774432869938072092284721138723719427516014021785912877859600633417125310590339748064607279609903991863575287854237663686331824680265575441071677599170913549518444127069912575943775156786152294052248588961017175475345843611189012745782752461115083967390436673275364434357250238591048779692866544854792994368989620655817892251135824456535254841429596449232088451017024457239541327965847698294665975888374518423545545901409157299924050273903627433201662294595498490381114411237889019247336300214322740748722136741665245680886857988967400028116343833888521828631362168304374774463017832867493857319889656209139756314142024404183885279125193132915876321219994513184505335523553273205245613600189319011908571515714860632517720249232284147225370175751077153750997896451312419435499545909604418824897642146314306167962235931587313697712508375805881930701533937752749569799742550075915406167389560821582348185989205731480086825519242598296614596721698103758426909838422214395079914409251055945465511735132823725872291170587790823956514455174161224836249781011488780812142615908549207164444831787600096854823946137442593601449599962772775026366967408711866917708265783147320429821377922250165207452349923792880408718084283822152934390168532651337188865653842829160012000870304539209074411609024109176219234676347869327084799768943955481817611439106435440593943068591520161803839551822170377107770620888593425639553158968307896010582525411141319613612556845921225606579971443518557793225001504447176181235611174378037626802636054623009864018275042917183640723885713244593451634763800322782576620627737184829050649367433743011851761006019807494833660385609925921562112063563878926638895818477786935863474392708810081340435597025901269866630194509212301937891739818126055215192872761353116930623526892105452825923899985874523392844624565159633369575979717727825501199818791573943835801873354255330105594576351236158313966863794224156311830353702644534739539795148341631533803950053617322560987953202691417034020846065986401826794328363934896215195254709642015580773513105223490533328844241290688468819710857872991180492813093095730713828089526394282058668777296016712950125074575225224091188868919977260830189900924935746042023256655376460810067463421691810291739241949886478976981953790504863412015717222786409425219827014000942290673425143589696968796429922178863522530077631086337323387238206522654328067108589187728536990430956410764435484524213449687651743327175898862354003579980716687691778677786503854584454969393975772014136841358139588236041589825411898708983634593437490787347718918808090159076717148877382725740636762777979978764920295145910891696227986500859501123186286051788198743359706478790873203456447944860742200275752571998301192475393622634849142791846387995264282843042934240183165781023999792642563665771805717423716662764559850711674497809905500600208954744638798447038951597576346723677553968107710479206003479062668042768949864634721196218730381979685985777022669293775690392760090623475611622990754619199394840884926297363734958137618469328296806990981587040389404525406865821194696522958241809474063665295137717996281678082299563440255428837622590820178450780019141965358173910767824916205946313990726914676773451297033369549059699106300125647887306218578398380606034102526923873906175611191686811478264189757933813250120832836370283680650089616416088721828679124990463003571572510799053871060199059721426859002261202711350476461880573767256549007824933379713704910378033520085186863765767439915706314041966890740658822861575780357189211994973920050107814211220536476325623548582343692345741968057330277850809949198288380216525512738729680649032505345263217801170958751723849772762042986089279471006170930401680722271882213178182035631548887018149495027647500343538538122314683536665874496668411051568098371819652319531146254887062090921446772834146485711248802647487757012498337651308154716610582344191178814471917297049367123375043062809385170017065142041492016687877339635092599124722117425008624536289421930915858406181927825552211653388923928839376444918064721947510580886080266205927654470159182247838365234374475934511307991013729783312047012061890759413660617765741121851248444531805857521553293784193900550938427554784298031599208657108507861687843342000502930687162440014484726709565188567829021681317924190976126685795631701924619891920768560784086333373545354852073965033484127908516020545831819489471816493906430405570506012651360120363899722057491501428300689020732664813711259797152368468981380631791536814648408876715873282946185129312371017105888218686277536045495413706529254049527948057371962883309291610791367398573398149679476820588438897915502056822543450225053979013092752077102829163080831970237177516496409579044996443075272759365759267427707250871342998737459735318646673072047734666339542327301169774973699638973562666693674831653344178422494028664973557326795348099497814018254815879590732451626648708030795218825698350831669319263630943684883506448949097878676775608926455420104077854718992482869942245944312091586105830469138583740468767343509405139764176448038673702355536659762302812001006446730258531555309440422753352014971043989338076077880330528437032716348203558426746112116309145998965443005696335311126424657064428313701001696970056527687344102799377408392642905046926303786389390725811429086158773964293255384595353908991757233448043650873409918109604472145822478360458531196860581384879680612138157094796904023479616256849374981439517091340546780184970032800086740222839184252832994080274157293411904100517955516993224309311716698486082721283733688995607451055405784745805844297702217503731803677046925222543150446362076406484541302507647634331977612532416627155787879565407583089056580901576979978471747455012217022175256082843422664063528872424233329876031437248965058269039720814239486900298843229374012387927429810668077451695773442174381093283926307405904604737364779424279881323993224031982390531305050035140346639617427736512838087344163999917803515342709293977200823700018596072969714139681170881067026917592277006622669878495238011581313449327690098577558488089588440708692839865005039297206597637090374743184220587892385505215804004844349326607025203142214395611172760674584691975511910682906838449308161445673124477756196194366724030948893090058817530055490292844991786031444177976107439495734633110517801176245264994971625759396294375307517657341619075195789128370119483891759807823211689882900413520053623249642779206465440504312318197238572918333720979770260761124500322703246045082309003650494561037803422713522415914703133331740773724567905534597491063870100571139414779143375937175441450477474324418086663719645953672086914404147786404506344323408546272646986326383224115030672445457162154159011339683907532689022354953307509095463921244673437927616597997415966672597769272665168054170802179193151953857698297588571366718401111274704445607273458072778605542054592291873158606499444709067639061969492151434101554452627391515478415410025156403193470044383370578949659404634582789403425964779951591787440913211719639602523563942366043861088525570539767172766797317031378848632533252629790425900614907869722623326209707236666592279489271705069163411661162509808299257392777784928585326288748887162113760369119797465549401386651110433704236291650378115864720475575303299299161081257586376693916648841406897572808061707673159574220341940968804932575798510262111078009624884207031956066874383801145560486626977188036152028669452537588291398959989911589264410543502519366229844005226600730040295371350690553099495517277744841927190049378926763435067156096048065243337855867648509803556435693825965740111935037757694820991373690990400221551734964587332360178756831396680846565792637479199169313023705692867783851358055986607308888169769901642511350595442471009650774410776849139475671593887206755448681222028294642499948300958715050594357749174048585775985279142157870453514460863216652719717669750752708692728460551876933120595283507917984998434396468312992733205026746061195266148213539428349141111981192884213565918671305866642331822185257635583287042139473567571783944443698480901212578862469990609800906840755573624745176112442909239039119328466496198191381242646571791208023500099710413713714241352779619983484560566390040786012672811754022207764346751313019980726198983510141565664613033265654975927857174758729126492652255254151542841837467709000759745987337350916638612456546633644872360170297235229989857206804101351670755253615225344754838130847124826463287140000804092775444933976502972524210485542921543313040633039247632894342659262795007939558470502570762486063890703240221065832125482886494585472937371337195703007827972306516077980505851274493981501894422540690150097410629036062011262334864644806156705169551150143341061490085447096143640133135581125871427195319727004326982846284305170320796776779858868185683304429951284759289640594381080379326640701159691466268891466230120199257697472158277311043383468742197033868263242453392212911889460397287582338234530593194442655491632995976528831282813750402492320488917402583484621019953231704407421142390491082114741845455640966145787916954038111992950613790839653074646979771262265702595520178818898491573373009788199428864186028378518584983250507724410505673522546734334201478772812068931866334250894565303422697048578655788137766049618295843615975507155869841138794909519054351813270228728963239144649662868767672581946845588037169133431089663478511208167843066434768882286389681715762484781581690952097828137698176146059251317293012035090250787663563816175741462709990008291948050754781404314677142324094265213810236801646390725912160099758653497043699220197108896548472351583951909685321437104793835933797478838115293478226606092667822167913045153561781443565029542063682020073542985272977022751534559515526421109820411468002327478958346698499040966956727272694597430527814680208838844517082153937405346035476585350517770788192647587470294485648276318339474378129938667111193088315591650385271387843941564927943947859473968869900892052779164981173964557244222965857490374763149796792136908125889851748726809795785907315198441759862274245451089659168774881064042581840926676779771808174710797531751642352366222659713945123756317570021681272035815177097452331600331160968398770023621168231098478211253666568277890240739264127890706141807681362202775428304389322277366802802408424302103473969079317857852745182175096768841672067815937924401419684163459850332847587833399671798474891504503934096912014137272770437307245390195043739329734950436430915519496742170113443607264844009993169157672703313176764639372726172139463981449927705163183727141434186218278726377646164097798669796709372381085480136499561292206886424541629792803785847952974519950947879630117510552084294275159711030404545368142186278204432042636652869100026954749231564194687945448357418485664989576870545229741725967783952459867726758295132911192545684281139474175994559193335990992017075277114355087240951394021247518514361940231289142806508038432832835822531622421351333908097503662247765708435224649194657824244100889266979708837388654436750224793646861205975353489387734081955586245813169097625615330938485446308125111037916660616566376065641291348819761144391945820586108737538996752439316326829423140271852510437727354905706070848763667283250633931775514395820448561983860599726871707050123643452466026323070870570145262134417864435153640583949407363934123938256710620908855914059656266504924888222911456641256383209527036043468949382105239406355270384956990187564235955158640999021737205902083723088606361887243017630473768701861886700412789682310613898122486383703626093503660460328145786478733113358695459674720053400327212146587838824706652519008942914323030576377824411874645116972515566194435546088360894883537752045248712249298546300836996077621713343668005198192691772540969544176800574530089732631301740657043186052425223252791202816882644687844818804750291998867177653729895554645137308159337110457991059660238878690280256759861693587071350646759991519740548597351273100626831854023999418746851605522111858367277962000785693623027445875733710646904104017685471052520114222936037781374296726656235863332013894473110463423359087671167182177502187311420274202838812782710561649025922533276874916068026987614743605783110629094786854203029230812217036839965418447772769586401776397436674445204159027596666166579778641357086594269237697314273618514568070467243367550554255480703238557482724517029212215516967724284133351700717767593779945308806996772765721015384870099997132446640427132078695201034678591395254713502556301470569921411510376359474950877231246360481180211157388971073597392694856350428027986278989436138350482251985484929448327597595342916858182098669999846616966909568303711779451900874230915316640259902400930819814756307686532170488421350064231634454604022315152617743795601637692610833989633841784669088041432801456433686787642021770080621950446297547251171229576945770827664967960339898839733395614027053550849329532643099574321627481509164778267235249289235747958529893791600987576202526871353464833738764738576334842905412152014213691736417737376582916015472371893501616838523164767879586531313936026681327668327424078227387154532566604421183571526745990707970743108333362869407241326885762600035091450351984989581344519104641754614254182605593078424537274558110669630579787278435874977883667490319089210347781410129980660508257097169438974393322206656020095832830048954722947388600946365341161005593755400189763362333172668857096933942670454300661057651649876674672287681334004176367769497760393600068039794638099133793437692225366279553598996471612528257240274868926396496815391834428609486440989190778563888636883767348872796601708901308876304081793194423007590479740940021320856890212976282290898234777397839359055217066966095515422271936734486274592350609292862250035860013932580489716175021766625508690625173333409533593237710900268052688930685904840748238668861268963132175250510307362318658448167548215080955467807749344505533445169812337403418771674401226252752985280409513735841381200259389430014358588277352702593616972263336329715068312750020888606808325632281184452243657603102080873210916145288014224701401683848387577212394572618524089639584729117510963537841437133018221363062201328969259436615633062738221964162900109186066449416938858972164086556501055434662272620762031307748319901009200331710705597590091210109654582627072462682575807664302951478555905421083472576721266902706995667062846335524740187603796546255701709871199824571834870278658679247137304359251636131107831673646146932091545985657086122358627360746752772256579859702495973642062466239567541770263878925144201620589469202208796231764827063488471492901171013677268979895295391952131438945822441243057058269462559065650308749597030267952332750987306806066727635910357750170007470324043750205814230655113963767097972187745548354071621916671447456894869933345767428044999003576601542934131876224393133302677435370950248449932488486865352587011169434791782399296364858223264013758069357007518579878931152788402199673121517030281276533987862007685324203472750572505594601952107722516178522226750550307068345995560219133651852590009569611568049172798575673881196488180697876548497275682879955912659132153713421102294383901348074214048158562306871434767134624843822461219675746598654823438923734711854114967171608736261547534484137524543092210656976056937150626220258313649423710843305557649683237189693660326298937585168198536040309906159421611342045374545626026958272574383958531093918802472479416423749687208051411654915132612749392758043460843424256407092155266313776527850093604216532166311518456874300620788102745327659309822722501236629070990106896087478461570221701080623666188741641964484937225724601037131550962459455637400045972577445347413742478889111529328801588734080188158006011619457956566445324338857955088540618959563148785795013692703750576554289664514067934290166769432486155453587050983591548819435018776352651730442269654624607377489988893132704940944585882896712323508460151172464170608933754548424682504706311842979902371330062005120917006280768706847143753430182450973165159136925367850585984414359822580276247962333723078992675260823554515550339311861842368533614394149993988454036867225489002294048097513734656743723459174888458957994511639667054345875349106690408718072068743215541950989177860670972945276859507255118112455641375701232049917039194838927994827597085171352696311529543838585805073004982740809600835356854536440589116303387042449320058583862501482755563596400761161615471395597455676895626545680301236258918679942761932672392970228673368932225928207601234627638660243379345672942732696966528039393042851370395363483074568456642663092225617137860881081121625934924160010006146072283379062865619120414439679818803895782134092557381567738091063155616521087331220805180495036529609916064219348403837671598841760769585989558804708980008639882992125300920578267157011956880671584847139799437423434536870161151333563061050462345691949185010511585128020144378523396890126752412636092746648733220439937542002089573429568869845927954679933761334735279707295644774170651609815370930927925315562333604530982235960015487719057694444006311276320414568428290608593314124448241458412634133038353716112058839009388801229901105238486612926434991579415657456726588751059871552756444221268519987556605109766836265152747758238354520077673318834467060615712783349162242789163584468562425692152918067001527203126652701264599606198367377213152517004500155365641602171698226704129681847566021674876644274934825180318718372000129121521087858473069536269200563161851056439732872103051624558609202071008759701239516785934414042398786383710857255669598623119741958685653480221526839010772139854214596910305719008573119165701222467601789051201529719245444784888816230800989325410955004678885200996087678410720304845339016158204474883478065016216103741807448341532432624786115370360926167688575021755987920741285553043780780588637677951906373997886762368675256015548159330993532462679886795646706774836852169299025023089691039464493602907726294565600553528434406129932401530793580284496307462101705083841760898412264049193448139622372528077191690470753639148174060267553464389616727746867285354826410818862115668702128059380288898813704367688740690947924197141705806988097848046207874752417468139760383520734725611659231794312414725576945983576887761742624487982163338210468692119225487455091874524166964714789791011101546189881533202639391235373309179833769688447790219230629032339810232012250842635962176402338564209504169780781068675147465776559302011878704259215870327611270351572182761135218733365806010098814893331336893629022647878321998818790553348141236080700911060152478093397982387179368909252798195766637404017752595070211332799127186309262981938928302820756957218521750870197277754043154384885084575921752222573172447538883186787491714213063491344384722415732444287738044577924144302491566014055003945055050623226701358647839791420796123441672304266290421654334602859517124740954415411885785722187236440877309919503942125764390209428300668210147519271269167342493971503779367508669236265732342452448424437909641153450154377614524798998276211310295540652881218502411268903726409921293171682190870181893436507602036721796679607522780571112175700441900445415749471761264693967388060629432841966607749596905848876394407922331572113230598657060656218104323316182865060182734039001030501948362148188528088149858732336581596118666557076666776879614702950318068373013497863346922763161256199246687035736331501061018808844986358816391591226703476144643614078461889641398588202784358374362354631775847067408734596327806098027700139921944582335308009580126500565880643620283489535148170818538000915628516498614963510301234032327107153545669217617510630140877302944917098678824129311342870644351448827755145676064427534042718261992945553256265363425334941406737974219945404275069380100109103721670013554940808553718110728155726516480694650617713141023984783655112002288932708016157574799793843716906530682789478864855214006688891890343999519452753690804642584537133580363431336326542815307915813454344610356779484106356571868336696405198372380277083479754929648842886835516735766858167324321696520362120156340709390986594400594890505179496304540996420050526825651025127878515470835266477392268802100878696905513491734280895481267228172860149062613066707597239174302734619046557723343896306342549711667993395107691980080011616046020710251670010943055896797990211545643650920128863714957148653248905343343105370941383322726484774013293361204988268431660484152595002894687801381306609105975789511603805984367399508177347185974056380206724327196671407375907805618756754237209888500056902939845225718113347210782564193157372288471201708612734762833382554043116052137005551712190091333743120071652627847082134788737727243023583831763104615426015730757883927969349167471241992516731119008709784424923348788600509863081921153722492543912691223291177495482123949994922141189654571668900200414364515113945998382005905952775617005102292818775732238231596808699780689190312680350292420870643417488425297241543973383545420222632663587088520790310401251676570417891613260455371686258571584263056407886442434173354759653730992323685987041573585827918074502890667886301472585325735617765547388254700616589221338227240252498925514213101490681534510107275317692194983213907940569790678958594536018694950998851860617708282404430780828993186853057216264703078834592961408387712494613412550010010941331280274031509622773295423957536129856517650583202995925590685929830004081819131134980012611509111746424046671157487682407102710626122100131610800896568334898738764299503005388874568917319618591922135360170893918892842365189823838545840599174634767972540319365202855924979272608083060079336110609501703288355995516004488420831071321928457653117251684661932011727391029667213557659163365924988486411380281588423699941006722940417880405654176415053979019237782296104031297170266355625550751156142856512417050199831040273826275997391302530539331458671254589800682979440203728562886867517725753224785448435787674558319496617822178742523354790012087525023922052040281554381836460267958353399308913379798552649565849215474090161657417606554669899115074121495142897860526258241853171738303510152238881631129232904782997920259570937345366674220378010216471789629947527127368964641494858430124204174132273487548835075249763420623295469008300953941372727328049682690087554554668744581814549183791318830987208719986335213183189253415578268865210501051110251134060285089669678271369527843259988255151063269767143889857625989105189796210724411560670690182362126505905315257377006681735949742353690852612857223920570657920619852128557314322768702258553571409820248353002202576711617759858548894891842031653715537908048306551254737754284586850312822635452343426747591321297760908614840661595652638314643510399614815360328903528445076699830018988320867876749804037222782996885589422239519157403022002926909209585270225832635152262298565034664616449569388238388456392924155072875457016869628719662628261671164446818628259932873568272720377625388101467430370639925787736923128934629878582333690292068287685538056146522714614227838639006883338515146378412087586132505352680574697380124415244538046989202662716435946653939446044015495859561180678607663769732927743025705463842526175199311788813598405349200881170853201878418650718542976706445174113226139334841236182474078051092708371426628670571338504959268567407904260249606119393652371040238691383192861238208093984505358143830850827715360683838525579685311889113633319686448221804894072915309081133022582726903336573032823018291810441236850107332771149263981116752712077105357339399972521224542099954536799919146032333456157384137706939695657687165839220090623619791288376792403053235733587699997103077646318605534480885094468795508833322700807336243251328462132926412361624521776780747874924588840683249854609535835653350178426024807071097001926242580786285586787954748476831919570621737418925314958937364739764612442134331330335054664864427622043800515914088002998797796007915964797336092514032664222442469055453076217511633554523787875345581945677726349480726580784656364693472996822008925608979897276158849612993015688910293498990384957533832703957809427837635617987843848228185063633029549783898086330701527093412883452601272045827316138703139408713806732029647691597877688631757454787022688733949717407659325183671345865973111002750031915237345157704734980169180853604448714712283627398907749217604957982575369077852434742975680020626783035942887794308410726872383080909155735271488320049276923452061561528675278369703103689529954361691748939295329405012609036329637167871275947671773521448899327585462342909952798615364617688890690471469404604168271055322636162702210101611336879254600201556009864236994378655954071600412538713261937238169324233007723374137034440610190179056748133871339557395379077417370260889869221021058522962141613817015588834690585484741419113291320613338260010476106223197357725435935751944059061855923750130353897254466479563202458241552203689306075652469737249190213454962089502506406218941190693990708349576780792224601934388844197638398503409633778204022324877762200901539212416958065997923428342974135124848349935005915906538391334593049370253763844770844577940630230558785412398674816880556816796448809563384399397130890960294615743613624906664385129539542117692519737432548936975369881058585166769407798270716743964400183655244173077083906466480398581697294338253641105089022841186060871884871502732442325288857155061510095786973654515937931435253731280088855294086251498182690589686871899642192759848035832708905592120064303382583242936170538016906001250613193136659568613575299233296415791916691469986067238683667211908572337156906141741104604989299880374418135856275557636316497340365637442393072624729001769016610091129250660287764517911786844533532628101158153123561576695596385823837617466690800979752220672639600829937468772201753363019079589503661472093194471363485356111435244809465907548338151769686257427988764812313169912282601646387473555179883400801538639367871806572549816331606630569058044244695922394763181152444792577198835149989539592277415668539377676302331210602829244735460794655589766939544668855634564193288354038286107706807422490359416292191737120325462065696840551183974329411276883351806069067966354729876370096772248823352675588073150897690799090921113827572081016317920867953594491004549958030718758841487571886488194655851218931415360269440962079568939203297575435350411474537193351478372862041562400683473763295445638491579236108603527991077939195722111193833028960938266659434592417080504242403041255622709641489347007997707632700276596482660682133834745690619021818133034159948154786925337027806172231834864075127276411817864209083337016209881073335935227172490320658699579338170906674698879364132540306873903826160103584458848839792902579114594338158715636713544679536650473424095973541746932212799577064846474719750116899079458517076235088467498562338593176837256578341751086331133047484480553834114898901611444715998468622559909674536234216098501257938296640202220077520738941319550674930365938308443048763585156529908873839562173398513621320842171386533116378012125554588111197705298898595371036933413041016910777017757497323281411861808426649060770652794915247457826029337067410730722698396839675830216631645470025233717776730192478843422496064275559052552534380189211098224918841653652020062364688834315191176870293346800417748976876786979258471285790802143800552963547395031241868909035635111877467917062608609446422816118354399941156696311172765714250142844787244841644699702629748386485878597948447661803485338684955126677908384314131095689424416543438192341452516666741575280673771456226817609997892465064407937770751866530447760650999685146234270077006421342981771570055295584071858778644999302678401541303605126355660969775460739084007356341501176411194133309334370361956005800630216523679523124447869896757833166820244584419611432891558783676175371849075788965478681169328331964287092600744061384435006081009808613067816454497473200210041527205739255413086899151357482613597905570228443825498711022046825896938838229919327923771201939579067633853560689229119410689914124827171160616015970447392134562518372582958321494080266990778093137705176450729442429481182022621977314579087349849699021759336064340598135113538022518650377281922832490508463029160235576648131047981337929759609202218989932138807250490666616522928926985914018093567172762500783698621977426854450579524575533571700978274156164870756237126655407946517191568216180959417383067681190428178242687251923536758131430690339890837446714003998407591716063755250369216605355900345446880144681531416385793639550877263447161209760790678074540266100604126168817928331408627921876787183534125268355832321565178441459842227948372525528184636532418241388464761019806991853186124843437405716790599376306369891939951717410391004295744602872327732903665094073343595544866846681608987030514551283069608015161729994987375542298747267032751884206443362086986876079253728127887534177838852177248962559070247740554069279823256153740872832842822233174765364801664292842251973007813304479706354727424896455275832355312558328560065879847803847771561295020283999909462421575766958250319848426937993546423035080608076188203701691674141422167703777951098183001063138351731902063684219816886017250335553301385587130839496263038797216967066451848166817751850447924126481406513205490767471072362336999787499718473851707015963875966839241237447973660744988882218350733725466540880227153296974841970489971888910510055499949239969991713967798283342596997639755056535536132911060417384293700466407412428802667349038872169029718333785205206445129685999055687302733337109130546822579114163204309393127526462144252382400299457291800653642050879594747988844568380712922366660367084984850704697522767260801517835095310346568830327642170698670825333400399415130890965145183612562798359873436962363056212899486531768725278838459693926825466129985648121310260683579116642819913590845906831780995519963106611140250576121441201826770653255086489890409085621424695194042098636829330025831335193337667146318209408918342256625196060096914597119828344783159231024959524211118582753831317615220964932037357816793337979665210059381792211125756201624485943771957691175127787352462870798486853456527979519788833523118996067907461277476147794809472394985484834813076209608103984870841188734357585405717275038352642327195878782327335835686912947111199212370356041454298009481783146952659437573182069063745774932874733701920713066950714607587197580704089094301375012478118229827263548744609140860207755944013790406996996388435620936374990691299449185826812496379484661303245279580915780628822704739888695533943142795129689718083016171378634031721731324526153721519312734769480786875152057528862096846129963641589204437205251547720518034577091405171574976569856243031133877252866710569904952989662261065679610260711313949397767873242745533923051851582010038164830931916944816658521710219873095599991956765862295918289373194624128891013216782590542473875994638380674730770302807688263979205914311105638551544050485872441262001364745889057945208383174494340746936076029753027510000501952242067419177909678585468176533649790410277578716719903660629294361413807402546313604895203250567385242076326926049148171135240545575912916527707760665442334240609970820598651183398228921984292293753440292019572905202843613564837443502606767403938305876150374511273574957675031349044238099434992820696715596219235219963052681223487367663937823236829158153963899152280929118575057239486628227029061856344259537889642923348255733167753081142037214254444884759219706707146733038797762896373923384727438119329518824734343315726743515222324984126913390612138575674717814459291098037676421241177048419461951460139900792759915843409537733930826616220632401789015345289445801833902115091117661752998261838277874432186887789810670719003052617878374232484353450663750554827508985880412613587574159597609419030492373153060776991798196149920576963501922365918250599187728479272090994878414967951856692375643276163057765308697029852874143269980234169739978813280519302632411743829557181796841246286319285892237801622217074353144464616721577084415522134597841136497181734386944135529098983810190762281434918606910763051319986802790745136544021613634778556411039019431576731999607939652820193172390221443224219939252534241644865661408112237527206498875813349133669718210888712901026961226748043907020396111635775957719420602966243748118390143153446369057149750386074870816378579796241716779497665381371193757425785210496330769693171846524490001404023957783407153355288225155794748555582341800898014228169543154156526424441437856965583811912324196565511632971214180497004449055390190889002602026518231312441054996635002634585898987571897366933513975127970136039868783323207696538064092761014438829945393404085724564033820656318363485873340921297551634909163744033902096595260159524890514334791015116987139030060388217908051221629397296362622710565097871391693305008402583330909776152928387795991777428054827042797462005967823779798959342335343696525434314694915678093833553568041604624485580723951957998002303394349612307069009943008118227429964548398370428702664412328268615646228099995445111445728513213637648640626654923123189725834407046957872180752020519631726898387493174146614945792169600432293637056703472621629736632373880859106675421019836837915290680568049245615770282327448072663593980231639173501749719667034493372218859100462787571298400987909875103097009330825680264998500124222137855758657816932685536865037214327099823598920813273467411428895939090189641531123593846403625005384195905644752970786304895170234604552162264402193192887604939791165450314191833833097952460927580305760786151630111920232677752292626810801112907006463577418511870330127843312489301830347907746949965495963544629299580475644065324148559539824663263166055282139891818427877974061430949685609123216592281950138009035913011118414321349600285953699774984814955443852446604843768792602384821139833946223853838060443984937140603243054311474115751140716592138983339343792505901170131330767419336448191460609740536338464339722234989691207322362599272437120878981329241820661983286686050618652563071337897152581099538504857770628357040403775025205936969256253974763385411975088755136220607473200934031136186334423636908129377843423053706416014804159801984197647213270621765893281144985270086117218032101693538400120815130133868889337008941294694220822451752865637709477578229659835522524307951237917401442751985992652021766552231398529731100675187614675642940999480152150000539562400119665723747724629095452235128187485292519388398004491809634260209385317985411659286126957920562154789203855356640421434038499960279762391580792891536515521276712432792036146643674533535277325471898081585561597716839055117040361511013847491871020417479136054526076178945612220893288651903757366328084115580320791464984100530516999040584365606608362685041556620604589217512740556928601210949378719087281902294903709864801278919692732425744504463102096640318839081405534576311040752108323380691324122680140378418057411787896471416577479521992843210782671901988594406308686874178555659130877742200142847562917934678565243065916672797845942671931216324159277702518840067039320974149751067165613121942884510196432028298037070594911588814545062872715277583657034642105847923999459738230192955333248500440833148451151803032078239257600971497980578000356118251863015442927824396467222590513897910672070722204242572992658444592775632805760148981697710305159595374234019289956648604243509735328093097557351814396694175743628565272744480999996455670602143049894379175622606966010707340771000827757493443750307285899861824243252686571403793957074277429930067621122493264728220424445725037696483750459421090961208527908440391819069398925870141350274783036706926702644165458168355671754864395909965376227010323773519446127831996357056801176649738604684830954676656107487350587035737444315567728291223842743685171575973708268160231657378332727266562454050175924886819596001918157332763050135540973148401116917415852851400895292806314501000895006238592942651653387546783129437600775724736099342991881032885764215403496479190071044994665505621663941885109914760120375743741734948850264052150305511279472265080783604924456203335453318447280086443799510731697776870769363041690080427331215333950901897263292071286855756274306665877459766831655678252607197448614472392319500196356432194697320503546991040189758075323623930567647269127730968267090597757921628433987234982091863112398941218720315517092626350199215820055428677458964419021025784633659876333439644148037820186459918985557040044053670443696706414313070574640579222690724522938406382508518996837304360729116083366142821844270518896716826318838491261981453659902205815597570081395791743636485565196214504761474344837266821656220929567646549122055436137640167413775498095861301361970509928340481209368144030026406610443486092015157010451442692310643924920841181374244904713004770108316821813194730693473358904466580846231375456696646812149543461836698299735551899588176817476604164374817778357283665657226435871337838395308183847802781301674110331750333640552090796799458172513513923598874778203453365208127846804601694424266485378257294445914583053881813151293836798472327162052423708061148372522850437208672659556843893551741015421753076576834381904118764120881949307940921896856612355177411042514009659817554101058230279150413372651651952002064376359766884212549946493421586215480003891063169778040251256610744429466701358549456265709228891087723994905554573731140282496155894453219817191806792009285676261795473943572797053686445888273590413778207434938966082561869831376662772681313420186029637957365314844869239087348024468740788446385665210128031311987994862408180865825461480109349152698871305519957485524305624360725563032443081779126306439736046598436485468604255405136919772002887302380193010075885812386106801329867961267748029452205995986006087664796102343490197792529465713662076599181775490344658697014114044713079529164758590877755775699355795999197749387490676066067445406111828378313306511136178787269703422805845985804685007216371719203058698205427796243600249783681744092495628968672368623974288256928294972053314872273930486693679313221296914034857972253754135160002321391219536244036150676077508740553817090941249583328259655821363132186874986699303930808873107327915029466445512300562906455901542241088302025661000016822919435826097974773958508876556691366655689476493779048174835712313757041051316681692419119779216645543669499826994801069946309557810930394762818958836142220224089351161771407587030088699790600847345150145761096934852544543447620564319085957217030724014622070753681513639602021555105152135413721678388231531140019368879885113156949434241232168813317334147294614138523970814640174869677187252536810766054253599129258194300886291516516814384749838771656484006014388292735941914103642051945820039796848050382585950982642375084869184505302472238066563064514034026124651730416782375095129110375623808015132119155405009201964355955296721373665960107615803965015769390827304575550333781192091306659227235010501647740691066791292713826796550341377250185014257271446907545913157560621794400913173030024690994570722795614239187877116266065532714159775165591375390415948942336178188213920391950463802409053498281696871164411891422342936574325495486355214102832767914452220821691537213569957326758140179809407618957324972197067703319116066385640748586105842016392150055415937899321859833677577368726351108074936538676271681021917921937066563753835845138155502280993395599634033678405334474786644616738639066417248006078814153640681823919078579517807251183355380356396940791210907946183545938729398671370448945171813241578447685438159768809832184871922875824220106761868874896005417359042519468255412422473619617686733723414936636072781480792120558418725015952090893554234997897455847063141028490941701415894133412410798712924770920209528721765215372999958972783163943613902430833240253410488613192263690710884419441891737445151773801714810584784819116971398424903726438696778336457379456579215244053175527660696209785881237112656288946928532885799892534040868130853662830560103077141981419365662353804431471742494746700216845793518880793525828023515575830370495045131263626084924329423692997596642306204744626029953340803658532381422983457941435551016664285519559753182213487799881203515307286050456964775179999140743220415247325098508061987754369450649423257156624968104195764474162835065933095026853169326622816870365891854550220109375565410271404609867448499172914397939613147183521924182314103007101833318107664540079445157869875898065611752752271330357246692903948018278521119389369916358703308377384366666717983982405069398099995507494192957320931826707977472343297130188792991292894212642697708483068846711202254568578979811921542762757395860884963755427393338546275496879280874781580163030634463198092146706932721541257498228034352763397675661628285319937485746348929432332230564616413890558720733315569014777798623930438247728613810424164851315933374760909176302154315411430447351485655562024471534020431988863711752041647505628600889982016382322370257787217414707887140603448420989087667427209037222129421869878665225173100852868722046621104035519197813176685408892541624967038196433539190979991535711364905149464462942358513215484404860054698903486302806195213571724190022207184799485987959694972932121120384799995022425926797484205274089017909436833339419573166983050950563873498883195152069083746108819538389009667374609626883654178913360214420682504716814083738337784856429289259870141234595832622611655961887301423622612585620472050757509342577355082549790633775277201434594713007846593825357958548047447438911691156894571839224816427667856490473667209711417372584626020920215904181350869852254787748421606653915196371746099195556156559139944633746158447950418071836805415713514573366601267451598802696497979013935153119736232302560562216554027156073839499527412355180688714375496576856917372062152593129483398054764819547937088262915939301064727840808086276968023734462167672259733863112564107034131861010656301513368485751654779379539316792324152935081017165729814810766860275140449836300445614731998731185540337905754476960415506831969718069563136912213061737386907783861462915805144118648873715430834459357084105993747622835141510900831119335301817305402089742641476582792573533650974466943429666714953072282648670869588967029006714547976888517985457334349783555112361556012144068883362188035452248528490315677639044981519618149695841021566848580541146792459601934150384111036964144796049612743156428874245876305551879652880394359400527805332034559779359511091711177499213785402414234815425403062265615809326418056998413376907858309646697595321990002797468450503568741619637798403596001004160020858898786637981670418970894232919561007957157534127490263168966919333774988228096323349213237377125844764612649355291889108889743685097847215751026426003046880312603815281985322289653435178743275940776597618649968573488488897732463663692931889512558799696762485148721170268091752789478495818068967614931536350163642667188020133302085698321566464786139700595808786225534764984628711464154878236941612616591098455007357308330976877318913651935177495174509526735114731831820029505729085136194260047902050442171729726260650575923402870992072662036098200487496283049011711885704560507055309052928416305175930944813491751239806770486018547006126356094991107896505258294608425947664597103911364014553452229355922751611609146675915726650365190294546546808296683566822427302596817237343326811015703472573512542084443890970918472969746145140689231952339436067728652817289391088017136970284711186533202065963244999461263802653554447296206311170128537231641292668876696302780766569770517441145276781343050478732965544626658123398184763034691515145069722355999764581279708044827292791336072269289512155160706779809308242148546264799026358921961500145520114806285135537424005338420330318601559719147836041571938943938634917538588053937180780056346538558967571258923056396856165813005568338573524105050696691888501731529937848690253139034828434140781985475402354335883327059296323818763726162646206872959645556019059381701057146055807625574184757324931166977322754087701071510340873421280537382026835919683845452470442002127770550483671173452448763179348417536763327901870499803101204155545165683469865227761097425582851751589829075477387990120182549503611052562428826045754665278036323002206892465413722479351723511031103392134854417704595596843952499870833499628411649222232932179991227293219282522963680242439630596296464951210487710794417757848317876395887697821318237953315732781652693058387540030538721314813932663294380867327912203222348687133583036984910676750426949992976853788352128284730178303421122747337395238435904651642397177560671787802072379609004833661280004920159043263788764634094438809025269396973126227687968935691810855604212706009481053734070971845993052715318249460723977263491936112203543603672539140875091654251108550734014600793509709234148412952270062217989783300899165611583319943455799810010511837043938330597743159673262699337962928267242579748672199670503927752586230983016779526777151616129988139352089767381723697293443633414511748134401260359689045073911262541253417114670755785151368876747656419425720348434963529552224706159696724330705942252677803948489855378869314431236965257699296296222455329308826505408823384800243625734068887074809653649438221247011639969986511043055832034069531612896078748081224210465431921350800501738999497243221277319563109914218419672948645163135847943800309534990300124763509777478606922836771443473215022406653151350925606278528700869127643586325786921776840587561082771727945812877771374085673895835929752827321657511862031109533623214782487791176572634593550206456668037634558608696484496479872477682108612377616130329429590663838497387080726220460943049625312363642141970412431395340262078226974636629995706437935102998552669374414684205256775064848956147783097701516391600654197865957737814337153899977548884430513373812916206783980875633216978320835652147808276110668912784660966751058809149880417765235103318791377007217733163799669538947586858886811388949927300407635001718585148051948016457183583834391849595877327085451144207810320638515210464528367057453972412679571324550685937141042467975270936488299759058901857210314816492707084990518601583468297240157877778114939871959722419429242305464489683248069318952377256089132946683180966771992799739511585933403614893355100138049753049300992118580553951891997973952913273215753682213902276441603178165458650982931127596484439392874576857621876110421205201132819080186691550455440341081798005583083200123936740947846701994790110796412708886535905589857862016312131691193280265308128105155905273466141689443322304395474614029355922721182880895613131550970022142259962238397598208144102708623054146191037322528819012935756995532705655954838385228143500099870900552687626347167238662822159995962208730733660873098745226383503456950139079515402912238048601302285431447303466402612444031070885462051155055712133017642422711530078048219050697533846754050753265507418660112105591838983862265181786086552155213825012253532794417315330962709041955925752843870905198789126487460734504709507997418780630935602824933143456909475229892026380118062798075370340171769926828852037640597427915833937503693047810003623523882689338325469064797400185874115954645234642420991506889347240306353816862968299432937969899197577617978996951278512558530857108715255708683830847320890318270830616627824703738326481384840312092639825865067096978707926983169327532508443620796423609860085185346421553155126765386546374331806648582699613303703126481669017915350132798496150403113382998947185198339204190021302909009067364509160350021469220839418556312111135779285273618930598824464370301400840399510131709249753291493451804276011986534726531131284224370338492068660558749205022979797210261222276599994863454338205579278323099231092625379643067327907435767722593940914774559863284533633785297590334588617101591048068279700969245046510703472947058291300760212375977358629462649436206260970847409335995867019282361804254563250470829146138100469162056694391545153866509866279507927121855854705684212479434807614141277628362836781715110975764949858755450647656299765847312590249564064791834517562096817885508148639092551385279751176472815511392089439883495266938831910495733896626498529292563077726329312327715415560209063342271073307813610904533815556734445033714457225862238507925297591369644993151241986220248907681624867452172325531267769164589370205682831747523141765501597455818144615389523311929638940080459976373830712438623457755655482409997160813649163755619024405422786283320368788638326629998086608407218931445611683792228591552666545414949753092370545274319025752235864191735616892686222519991973986439785464303074995849828046085568859118403587342730659234012695828607363910422409386799239965807101961477153880682663067940405142961493466714573500565605302831112184020449754817698504140443965849831395524021489699482440813441972963733473539381637430142906780891582878011755977230110182987079635048606286711673410138592538721187603001546179679678600843526349793704531451117980182684594285732486574455107077408841058531006845699038943530494788923262472634288394703021259324640196004330122288874410340196570321640490306733797535451132656505963000843808864778177383255522715802525066184977239763576680326738323857185102196161292661135267019216325882326500623678208582494853511788195073423125460526788373902492941869238393515712384618931859364839722046281294529608378023957951720652223487079614498634381739994202855674244345595124819693622115587461237587300123048857894824216889792695005770784831110686757627770490197875541651537677339751633346755812307125027885306441001848771869846162098799217209470905619926104793295717743011502296370409574918510733732628689900958415538936722787651032364325437697949034273397596862811384601239380336800854335595515934620983023231642838342712625090965403268167254718464190113776959863797999455514812257998991608400305253105986207269826923280815543375729503946820126671689517631461198434363886078680208153505830201512988987783632209902694710448696797813816256677091174535101205035347805076507939353538641056937393930835916261214626192817235944176111560297476274144811065397943533904327746835425861587518539803818189819354091964285440832497334670929343820663677991462671402534016213000619271047358880518544976461275579490445018467667383773817817009866714732476978848975684559338373453574104812221001309616793962236108837171317364728203041074744032809758081298345550359654036014313401046664413369424729332472558126088102821510883753067513718980860963703882500556484141402621484303771456394129192788435051053758875617741512321999106277131434379172606149849424768005539408395040677908744074571700883937274505385182441527610324774601181122386684614217224632818586551264217331117018370420647784099449402778257276214839685419878492823890730808851981823672705116167221399254609212876877814815354379649519833878856623342079954956625381420773605771779514918539520282258213002202373512921040075041179609117507357781291729919890786788793090175186377744327874543873316342083968987496226523915849072713321854077769557440794129225180743627105317722663585073626891799173416886209670230628853745842834787553314887361547904817559250491194821766150028735807202765131980777499703144778820653259330790226366034810815320638451122537671409377015192863048394794356851161230063089296101668423591778605312051943483996312067633516766065791679776978460798636603147108634035030816665802057008651629791614087404956246934088640265707866855143267754442896493218399187746366681181391248943271899484833943474749271876169351792965936447722708771434266720320248437463295231162351622851103117401393463685349843350825786324340628577321667371828547627824920777903880261396628144105803314697706637102657941542273912147863983426930550811926761525512066210517095769062825956796280624548930044596622256871212655777077237268170364178227760535410382760662368154576662761844239592434476232248998968633691174362830605828995330806350282157720037097130482417232023052530232267549190861711200600247971184861555446602712940033638394700176930300140776191302983064045234393738975341768897843945722073674815349811953743047975684726798312257038381303107548488818707232832078188872137325569160412862437283021644769119169343044928639316896219031131869546461843625198436091325573516829763060117986346676098364429638781851857705888375898944323802451467905495116859911301314729989187887506209657626522714818065908369012184985447641011725443244890772257546080938606530838364177402618158189972234102869836343499738255073143285913311643610153104522051511762470797879971279020557562747589051645940104488574852987148217033084661146685900143658576437916510316647059441002375720207625102489586386441860398089178402665672819270735067034498454177254006898115628312513301564143533705637523858834504300912938812875665329813903188645402786938161797293984442936475005092026768270744376163818279377061430653631938021382586580464279161778315168237664783068073087296856492300947801150192742880481033910981694371132291602763219176270898935223690760599931460682969698519871185150050697567947002763506275640253697287556977202284626032796410392042241902938978115432231111958394203783742197211058690409979096343750374414604703868992293391719855305250899514130609573056612033191765467368425694321446557489506756794104529626456639830837108988532097405826785227192588752407573068798435503016763375555923162677089275238026661611526556131346110510118053551464261793728750713786658266084531042207025502518147105137228603342706194733997430998127791105969570301763875955158463499550897287515362613838925277351110064840347695898786229297484970874649124987620269869215870245028574887672392190819347539561140021937121569017405350872246623385110995308313419131479531080222480380305635357448593519315721244036261968556542691815009831065917742369468231147818693853390579178160008796187069755906472178580678522376448634394891537916330148230371513214735944804900212154935984789363225393550119627566745063903423491234094356770414755673970473596185189667254298411837090731762499158441934934572816373962205723899468651916699374553587380930458928673648340800030953939872426216508351452425701343992110093152519506459086732548367271555457499116681104485338700575454879925333964725964020669372225570842761946034239447615012263624071017672921943453935750942498106022658002929032625906571155145638076609086030749275826990033036414009693264706240032551276048740192875084421715790533196495168700732343483656006952727451159732577670469662254687100930021637437632930054905101760692884275833633737566596151568887087250316733842295408457813300225473502800096577461202189814491353267654004319973341850288381885308916104632399434329863116731554029334397960017703460977118895913233588556653440951066505393893851417327673104117954943741125036443075313648635479253740936564474589654931344449674303987270073362214239311781295570033626751681268185304000201860104460580025489130486683654941636789390754568114054734386952887789312570378813435145741231946751324818305598158996781702764802370951332797698316818109187792668714209504378476422076074014157063327089345864778176137229588932412347823045864377600794035719428287329643885784309313331849709869733274165916919975147755530060280458658674642499180616739299391761844900577199665923836663586042475837321516260130264663585498348603330150623418379811804844777516693200927681872476580789491796098409335288143653547586684498000706577599104585606979050346621351897624181586183352296026346018147580054932854492112987237951031577362814955685561013576839692696139111710682262491918310457576550750832552984392030213011091743430906445233096231136354367941101171626544714170354834236268169940986630249443502685397261997986544501891425243534549794803797361007599324965663717634774715335084247986807477971754165188423201605167402496873425899810006596555104550460662131168436562017532649958316238241878522536033286414044937280099082683932766191527458924887755893055490704916417696482172103447528567150082041982862864594606467085348948518381163786448895758213751254052700597684251864972073962376321636969013431638936186225631927175362504967526499007844664226065854120917878185580416924645315866030746402728543784778833669034162745314635508927861318559369398922093838185755690585555104332552212595084949369583420629363686820521050769405120415735479147179848943320495006474516248561038307057543621553643105495643073520089010734342573641772004504731235169673610805295253858140712581872905914230209332376135030997085478485818570341969742261542952401218793564772237855190094886879101649144133369909048804889860884505637212944425171790296418873628228767910631454535572885933125162905558762988514679619467743816410583291628914567429258718278416028774093067229467150392517771494903591156562288807541090503886363215851278662038747871353305940638079968738389787967417606710749844339490404484510977223344144181645295874400535293196611482126240105905575254141599331242999098976166206956066385805699407136967833515756464297838546523813208116606608191181126357477721300733960472672321642867053766783950876784665435698906468271562754365816942785054414052881496483223622511863373602485090753344577299008058735008423747663604356375027190729630144053251028660142621257056167333086603319111419550800081029247710874789535687931911302162617129746864361210015568396173216516180349260051641377434558299725386461754674181907759604071662045503182493438950614356625046501889441728383758096151181957434467380992384869943813279788171396564952680578300974628129930746573625172482888317371639084527759468593527577313407223860805079141742357757935577729653868681327560450112060254374572020957973206961353790769194040704712421489101115717235412061361213141457702638305890605385141952384722809843558008829301966856484543629414817662571918182204933212053949858502801492695041664061089450547125671173267188858159169796960295243590000914171143881922299079022591765200400983968909900341594869010178906878219370881123117245815613907505885043615670886114054504364466387010116915897962254387134249894786919772839885895809862701736286903676168317719600198958409696257053325263924353328905984522891538221093244146343476661840779411283682524021404836000221641992161400889263883162452155559386121075715251693720206346367480573089220287038286768163279081817086919069062550324609424779103869758396734655144780328455111622508069443320968419130557658876018341809581964716666812105951109792548630464200896412186514218371641724838657042811175444279049728830018649835515808625390690166403208514518726002994075930428814609598508435602719664300504909390650992959706159621930243931556979340165796694935152369853106595648326979268368511706947216725577802804773055688553437155080484269721220173083311392976262412801881837072207757283572059643871138823302742160556005036053844645680039777772575884585537174808056788220738409279696293530071687609814489294829335010349691084393212878310844804995069694635072289566486719806686970691657936024298934999199718358403991566804266671268987627789034150862111496723338706906460300516092265552032225356965429022055434516683051527286171612194984420082136860119901733036194672234939494772785521257936122905337587010212239132727375703856321117094017804996815327562895324331552657206108434719827039200452647534575382202571272444894345427327490778852448571240735789442762255599793713267223439748446555147295269213490347782845519144237930929209993337616843382149096334922451086775605574779525777113781701431872457868521516418015677212026787966490261782940325714944092586319066871190643227047523419518158334032448519219983121947800108138333646561357886252518336193009313404275054092108468693402683540494139784320746255076276769653538986643449541956173586130538797484565166761839269534586632980006240548022402310737867169600731470667299010856684546248257438455863432095846317526963786752847124705419577847504652452016990494217013757709248348604160593337895127861602600951086685321297124693112172557190137440901415368462649099179186012070624740186432091410555851100954760596552756524149501441423630477369318502592352092163434871270873881063218462591462920085164794211412089256410521061938942698912842512306462137910552955147076465649098804076830476710489683716415737316739268139270160315084333857824803134058941933157424756026726735204887571630882624937746583132675175896591939099410545506304762909871031823323194037697297009205361474795460842375193739117240406052145452663728557554044452485325773759589297427081326951909925054624191049630832947500681048490942931268507384355448700092506968721047053399745993621608690555594728983330164125229288731795524411651735254629393298655572610311370089264288381423990136760842735959211584062488772618538050614200435014359222716551416618538887776632014728136782106914785935070473165533863121260483904806868832695951887300530841322734947933962794546836403227085543626694559725066644910267039484081330113519676632993948369395044644972325777664725088485940269989084795715373248799817507171060888710420160226787474011243471138220698150917958135191094693152155645369998899425690787857877982868766800495664001764864846123683366296080111097727429188637028095967700783526342656181351263663448159796911241231893851792347868617543395643528221827870754272249945752012812136160819542141204814974973338413572897307217351730491186390879037916342492160675231065616814615479670279686283570254592854187019900880878473760686099229387117491371300705171702921338533904202177428741957637382923981944524322213347061095581538433899916629422371237615994122296296075156184256277402506771235789818079530494849759194171088916040842458084383816629419129323811563498261753493064357221158986243049688502541607260659590141189683331056051985074777642490732132778381269872085924389053477038035102475950513708960721164281060609296943045934011467444101671817277865102775022476391618348523177781034633800686105211427632057027267115606900901342094928137640605038463589376746638797728660931763431407727001472173169962196879168739712149691012037341420346797683024280516193114268211792123511240408710658321709009683965310460339144201299755762840929631008256042593633205810640610501947700738761389332088521863398036419678667404999022319445784040446238090541959970191150920287769321193218853639742403962298882334231670458261323946396392141005245678505899932321920123008605979391213942265944108987119620408071789797735271992835192755824912985004516506805596707943867372953002837948654557572063766623955633105164302930989040312715897434142784022357113038164474840127695540522263182595448105105400151084942159168953743507511737012167964424479937171601382071497434310506385640417325034098917062332577399566924303449265898196365614902973022131727760814259873954496348323508519513931572167644336475205458950794155647210662480958585748991459853964675440859799945336739792410734061317340916865849268003624066891517686649909610194882747412457270308031927258990749476098787141702342723895408848456308922078193102708760987224264478998919260043505626289026649370609502307033590556467005240269025723189589728504293619389873883491379293121316631491490734792956316454887700574040189777462614755575965439269228136922577882081314386898032285296171243748341041899035971432649496233852277452152411701755207484967825949770187205877449827365434128812536601760027121824708518469470846141147766049188474078280875256414975561519721478042040204316116852173107852312988233593924778138966022400177880632200486874644232641653666814110387981609194753863322896867159261337371148074096240814506943343012048696793820622649339963065687548737737418437601725500024358658580149810581775733981429766140183288195436126439485280508459165519680963928093556453333685484590540387745393585517057442098326000879756703007578896807597209565108672217015072113979797289006205480953190240486429211412169424388012528457232416616749965880256187023833508448337031560725362612414534638220850926950512395782284833782310202713862420038828627486455589782962106746936642446717807977682171210476170880599574843502211231616866462313550558828794525429405842158758361896502371796419687416521466860408079781384885058229453137623036695368163138471842183008782210737478960072289051767263914769200363622213633632393743345431264560432707312086987190273759829125646280797320201038601116635101224862491248804703752932957531449533838236067432603035892423507694415328988728711782645537452817467514804104418950367449488346882934532950747544678940088220391728321118963379057310207267526245238408981981824844985972146150540667979007584926230942209309657104173751563109183754589531188988615451740895568198932430897126326603034174327270417604912860852484926959009825394143643802241955919017566961204059403489486401186509602634568086802873453155947106083248194760198192384469178394420028043014588346100621492409187188959537933064366604565050502647018463262676021239499311267754615392407929530284369296716897912686369231339877718647347818739835982154705452146953782212196794415216990312931396606500069384729258811139372290457949466955598586423696107591221910792824922091940703665852654419952263211106630046810314161882664459877871185290511907390754011566055112822456529636777370635907100686723421713596540826371640015556538437540932279691143927138442287703721404662460556136796233268922896021469109341571495203800927820301741766451776272839727002269115926074895785250156232676382926974463515573854090963674210569580633083661318864564951920158241478709377890105949958833536379151426891859537710153016607537997597226311888883227597095156006879176527635309866814856790815440705075796773676650609803943153079332025199475357290188553208911188122915315008752150703907913859371137304499987427098903449892617592979415275534552448298878649875702317196809881862905334981399606057620439931652048430424911090664233607471602075521179392599702980526951980684311903556840420090215476098997327393888547343765177913982627744152282826300322838815173633093670376062415641487323546743401427083694309512419941467237348311800028631490548519412029075838881800721155489447011579951530290062744392357925371436729073322655331523232167981866313536427900568653587397539007648535070057436642650725985042567323991698627313751352626140217946007327553300318081413270751028667859410112540028663108056023223610455361754785405263815669530563110691242691915554085106777189648824750387808217503277947486348080791163861496014883531604079895745055097970834553661635968582739888529900391934196503462055867082381166150329555015072421975770146424318055512782721423916355291256119325205495128536447737647858378440293335812267936443319537401461672955762786980810754955054614534548611794954974538035844418384329033989914410071787688844765687023622003091818244745310651459645296055836448959153764625888528961579478553586019520050178339210636840365371260530793944428351805528379708284640677231495649163515695959401994788538990814764680405882340208880538471038799338719947848211455853269491377614643418906307791509740141285327050590801682550498507524902688597555722743599557590810781933049291505056017902388269206701262806928811403890324653692532992362170538211744377885738422200124552755548059684314199829669462872798351243993749706269598462939459106418440738420597826785667916399765269438380913283377645793490144062840654996499498144703008240725656384163273370635645776943552960850198207825805300757461641983167296180355244105867021938676670407785249127220049199999194881946922917658558223454137837390181798674705671588904704379247978377316022734771617412877843118502662143176792086850557151244492839469468446170580533329901669150317325724112883663105718355810523051516872332401277218405311371279158667759748729320617073829612734032215111559115913259390989819288171420021070503796406591304418695867593930392301974728309692549207608467039505200502191611371479110625220334720871417612049061741070691027992639316728429832892643742978896177589269791964520010385372265960984317040207267751306583335024875024037026500572312201301381348846024697081358852704877924942531073907228734823226023164206705509804486514848569022977507212528775559801085001951530096447919354880243582588763173081088702030984657739088584804647379278276356602810068326970805870613480967326340992796652265614046853662116519824576398887342489491005646344010762863521088883903351104756258951689423139834028463923025115301724773754488125652294297729494424123918537600716747852903836630174704853890038884275149533799813803551078333208879317017151579491075418817110349696815873308818579563497852186338288436566124385203095397069529539991066777772371998222321290218565917951117098793117385854084885584813234630226426723719241110598705491722269034827865971743086867293296823203569686883080971907376644833607145377030187522233228361262271256057089509546082829193891940535719305335392927529448308532199321943085667304132477448865162791113673900156269699516170189976511397670636297974512706755016588259534541326016510984995695759454907000162811664544764534226262259828197662684488578415465628935191024384549726521380539694928403460742464595527188273993727752234519410681907699527671312173946391477907487465682590085650384451804064977941280028268613672304035428169220753086150961870656405391868392762108281852566479613168718263538468833798932427770128410284739399628834565844164592076124372267367250475364745123494602264658807967364062048105294321966353858976554547262877970812662455864222128909434929603416914200502129779171330298053407428930434559622102386029145945491932651620888173352572871659931528185901362960794135724153936326588920923981987242704984514059841675906372298719120118276633715653752733752976147142000673557076002507744300268228944446062423259291656147810724348513795600628172237184150089440389146113301656984631317523327772048744739843595238173321994562854728882134088541797260822020157624248520852332953856412162888410973914681417840267390732570056116124962357046458895154104127548533209519324027029640583183867119298504402138536221998635329272997655028656143700849048108211552968976355229688232378091922845102053468018518332715350308896798041869240000112107133551941673335119883863676947465617729197142044069395474070172928325661592258409826432474341940632431679662268554462978352125467037796656822327645066498438517423399828920803191669591176705921829334697551303635623496650522709199936064308478056013522857907463943550215966291969808469464724633452067414967082664913509222864033201213253913667452226324955201929042885882478595743063855769229850214951786431846945710247728315503685410269742844515314362795199394950500619952921948320932814021382415799097956442162926964417345849147465025964697761575805013269770578018594227315166691996255458973632928013767873863210808798273370258455160260284347539131783248365245444820107054735677731257506441737984953608733307650613654899673024636691021921738607894471546433159662948481890978672688723810733173352764890424541761654614445768048640408728071237223727469097059695130498723706791816602857437700810672888437439558501239548833339748301788428423130300435036821387919904256718765509680285771796439667236070800447154328853135966575646447118453567594772570525834211418563850792963725815169267164870683211827857212454248179749820112131293870231547296040838081524991843607810611809568611767406348194007485934899511302964533846635627064440565003929129654125067043342711039725081910108734158324972795591520371885595109223547438322982958226545423691492314930321198865967855728094086305310593388809595490353772615833289348665039558225527196072087897661252828752594653274191449747466053672554647563403722225137801227035389723629178160134509892807862617188702930798560780384628900473407670692661002894842730930367708555987256044905976323689277359396182641058570911584535196355966226003703632065573497572859248204438697528744835361648585185262309126837064310576698481320503897739527874231205655373132986778468083876316202375043623146326355382010560257377496579019209321720435471219354985213772593779090408007001431334745665753689951688830116672605050429010862987024178247715575499700144809672714321427343850458805377015489380190714146615873956793130288435323591267489847905432439716377722025821876519839298787660279570840811097604953499791828313461144891473922341862199672338948828990906202939942603940953868731267312928756350622502939288215332311337139712557547717304991371319026003527389230367432013211648403061743811787988863913876732127336198611250839173311296538628203717129703206113966648311417329782067456742889964514650024996703527142295001735523161424911097658380958201038178325372763821877782445039073915365206722735078442767574661109628721050578542477585688503664120288017204108524046183300071220650322635478413658340478133943898990836197220517839988089760335919399338753006465833294857201356474920371846256314564101558317789044171887301007483426666118615183812557299199966983501416584880055129086234612171011865895622651752192928934307454866393888933510360267976385663743885806804985849504008513537247308122961139862496663700287772602392973415439614110154644119167832105220898968458020076640995318003274113596929141583024811896815832209934057811860057814607194853709252783366750319262114304766843603654785181748737826041206957981232092242465609603944394584170454943252920431098856534189877182541570613507498843762238657482113095315038055418896484198125439291252323540170412170056112687442989158907852495253644315396189958346917344302091675648921021620733848108532724598584994500581535965018811635394914653646727117832574585590987253549439011554901394821877268988545069545309551305165869036206399204724753779001349127556646248061594916029520879885190771523928185041921294295298137190025708121492384846187452155847325005180573836437387594804947567344293650763460022835974312367234513438930223718453764499780441615652652670056310312566796340549130775672598079803360692915571512927560614776062125500354789854166624812303458694604003183086579517602350562561695259785533741013552513370823021773034924556635295896968223357649919521583024157845003527164510849834505987045427049596056646210890549344012229317215006661455319193815738074121383835535278417301132786752915760205222843501368193060688691356953532823006230276267054902920183511193012779971428845283751791220777350003130648345188784635247417452855955751280153996355935702978287681889620428277717400997198593712643977999774176722545434274309728807947230039204977068220456389321478637076400415810123345866102624994656250534478097044051956686343854991173938170447212150099749049769488880642987730860469646846566058385348213854892618466949973624070339172773724195097846361464067472659725436560212094876910170229115438487075912436006274526985989040598375506370241324455157689031986478386238781873693929228843000365209021321319935224687826922062815847079737049825027621701270340313175132941810677365757518803519273680198171261775013731683225642957081030318203670279651440560366330355864552889634873303135679534775088383772227406297459208896852294946229690014799585486754162411298348713002666949164360856090790802672933774359675367719756351928431077117491473241992157423361313275174930613407685335413211439261330006563218143088129639501126485031434041041826167054589108320756237515805055618625225843576235029438115232101124726171020311019894105890304896880610913541483384787380875237690783180897855114188974226872680920796057411632864449517968868526927757069481750864955776934343608780487712338644438618001525115848055077448518184503403988115319262707900459297643986074980519791524892544734707305748463254870307324752609313435641302806631727719516372367217132335211993690603512343277049569844066960429682680312237223649555655272325269642813167458457180789475010665522298051167949596058467114666283901319781512744775403160889625287931257588759214171382437751409358964308742709312734512820349554384357455713726045468496472475344659804478428963510884030267963647624418811283970766681644229249475908022215726917724317095496370164252439745082928880077857752522004027142622557324340169085224629157096685570352451817699469648950664423889236265282306630283316379381052064409008275876829237364205429736654549417931980563624563920926257109291185735326128667939997562050198725729238760489304964774043435022691132692583648237923624559904109934810156898525761255557100581130389368554064514900668180250107655994552452998288559090574891650042243460572783530264310376361491789931207138675157986448060565339994270797975504826058663106087455194258366635748887586298943131046114202360766034579217105093525049445381136489404120063223263903111104001483505046136972772636187821106667911869214759630456917823638462880210181478928357972273731012292768049531436888145388243638124848268775733441827883958724256052535035560303728011865549046188091036914422136196382333473641083222029400481184078823335467794828813842292095834340013874450130562292401274961550699873461385681726110380839279348997476471677185543348773752523689941105194222942471283464096414352943432089746469498913138330175917577854719170724377981964095118822765022387362699363839846724989614765094391878447616060423254137630302266999141807542899403007957330621020539268466496143860414209714068285817341402393048447559054199182717636448199426248899295691128253701023671658230273215757806502398346996078010704781217815766053433921290936125649478837975458632390766654782813453771870443749043336637636687316423349477286143076791520514571833610159007713405855856208455006484020080907292369107941947956562169755448025727853910727154555525892754962049594308302232754907043948130625784739908443876378980873429564001327705119177979249026507784290008974289256480782048765314859714059112835015956758680935371691146676997653917288725756462550509679845432979570372422124110494697906369276865829041004871729117861942112246544152807921061014708631161461507180158558698420287209641708223385460365375623218438140462273368791111831648806794536027767420805590987939498586061003891774611733970404118942591098662828568075701484436836548626281792827933579388061146884158838701002506533605407101305981662649172997864467558010503453573113786025013243754832022882675849750079555423379190027858907493081814687764410861384480003609712561740319075909331893142306015422192428334342631195504733867116088598154990391483366417687134132892337527796825717276855863322200915417360812379178648491679909968616617168754364527775536963919303551335700840274417224547124564416441298463820525109072677044637102523364212893268054881420211790242204673487622746790143333126896455262435332734001822724493004275467777268020687135155998268147059094808429957986253895566235348816518340188720169351394175465920907584668174228375270132806475854851534866913681336617023364657644289717238757512612611143654274135148346141631007296168493481799188409293033198039654771658654570306034411709491909264216589011959771354727031751074219519456570228668698089273772234636255734508530907985280454360003568917969790827858882687962088648099237200903056140406806392018426866511518714679356187078808438858929040038322382540377427577268516544458929928329287337036453454028456807098030190992555306155162432231164610642447211475995116385389794983853467667311913090238825609414511978602944331139390170603392933351739769710899773311058860117404738375688250237516648500418974991130812776845567441177814876993660524679561564716889150669368418626107697441727166301920730077842089559509265728239538612276656960823710734139318826744117792360135582477518776843687334044184126783894235803697087801154401226190240140107129900462757091040773480203190760449939000346669178092297390415968059026641908151052577849042373739790885179116015181335941717492257120314977121870458605314465036917834416421933626895229224078926085835584999002125793537561290597994633071373503709963903994883594350650717794122560573115238070808010422692831104965202380775472566227319511563149034530186197081952682400959715380404383607060488425542375895626778505321916363862609014534654803141830994490083418961036765155258717934205419828273562359869231320838503444861557899359309268528492286704964439626815849574558573872919055516471826785345481613546606339191700545709821635811464106425739195985128094260154439313835951700915319265343011783942195775652576119122280328594602346689758382026569463174589682004517735413508710091083074853214132159942039371803167592753116662711230810571789393468305534921233484592092902353468836900226707315843759165999064535534775528699668296992376400139060348278164315419347128697113595767512524539523071933840116227181111449198336511800926402963942768267508931752463557497554293332507266639804802439477778915660129822934054522582670523090040978903444516936034830866258711560254373057256403643603283064448658920357411110326818188039336164358042502885067540043587038171716767733010654261407813997230210099348065916777204895729524751935884111673449682248890489343038151384275973064286869799441687860930476603686191901353045798107242601162699349542249070190486462573531803287568808140442113547010206917054088939813148478018916723004168839888335815190150925634201314084200964173993155452641367578808855184695205391394088791407459098326577635557500476299208670109321812651652442803440029022774758657170655679047793629665288598672064929958849393566234397201456883101841672518121785043420142209019915877223199513257778505011120456745690158789534464895659430441082445249674856430332958019184321502435348339730156591952645739672194288015685745722415268963126616661831195343184266485866973161636286444626291090745945028951119909261346435907406328470122598989103201674543134239951142149357317164316541424656001495688088456922176387891629533134588220024448842312858557330393734042935939882988529637526918344180593075030123013193498610316308644901494539415233972861983495303915664569481113683406355879484705165734263592682300223348861468440638265363906134226686482197044523139357529169911522280985571686305553122922103235580808724834877934126859821474230509569402060452699024432760770047564664523579575603687473282216436584289845060300292827142393343562126223938973260107270462833789138483573451321052944217999927586075597220198400736307605734611011573957130941191908894068794095313155219984144194525383427579588928874150658277212436054022419766077639356423632223162283625001425192692360249750223821197386746883300054655822932156375695604653112365350620908651946862135105700867969042898236848397842138870200112618526227958766917938090596953484577926243660651132235494353947819426094105298344744611378159893814989226861375561919290549814258563095726794944928262012835977751598914921711066019284044379070781694660314334775155623459064979979147010745508237059806978872790169381770563279106849743893014920935963466630412906158703802551394087293100932206020902089634942928462046655313348290899203788036607669345626889148026373964552385392535456310179143394771334682257802593494257187194813730440145454261230676339898128336889502482918628642136096260909034125379972964324258369353884287599436667962121387629797623208937424902025520201055756350624727656969352556063178029529518034533299285016512771828737053408887805147411417156161167003773316624629483008704042848624888986945255231813742658046423160789654998398520923518196392754219656959186156376339408288442535717120774825507444574599054498870416586893048227965416564656235043806361130518449103659987200170988963111420817571823153434684163595688922853155739455138869441506400932255046705822203473619645760330429465781843810489221585027994677568164451458181143747577584188071370792057576036682183899920759647028863196707973901975273354740703115786802433256974533535655404677347366684090646085611346826002431330585453492362087340303476994851946255887384681529251492203695917240758970700068729916446509941139659637264777921463074354053513596688335807265348678246602399450964802990822924478489695605245857584235304449711601022770896186520661051943605064617868612262760215372846321292006167209481745609396813509015422668125222810037437004649826322635218246145751204446568594567092345494825541610705290761984279424523345930291339485794965489759342688616506128054411490141701499792604612250965859188429680020806708579797207674618253627964980419316993792245389420326503990807831974219249886126258313320638673500625229473179645327562540063576444264269279659646566434231170539277266772494196859128832813073689821454484850791756190143435170827580645116992524080979892681285538878373853760871485292162512369377472867129911191475645221787880415914473900010790886662394379033575652575315364644222481825263138880885007304651230192637969078105783782448281778257707998225289241462814511220215538001770029862805915733481078068823879237258439621546058996100688648360696016785611941247221955073014924227585661652857941940984372246390371681099870173609661265040040170570973915663209477401134025225092895714551099634096391251797112507234996701787018014697634021017395316737119606526034460507217012219053874199700511018173694327681931919701605693870362310412086032753363982064600163746781316899569699363065345382619979386837956433014331027432143347151486082959437744038878471603985648819175063464701565240501151612704981896152959242128739806273627208867995873644169339307738035091764443527698214386298692802703583133237429695919960172837083146180124245270576776906943505175363739806252147926941365627584789921004612151575630437956984139751487994416119497276100304985819828271118505297990620833200669920026936193622691244625118529171639009062853706074309382239223021473183360359942483278898079904483946622619380950097590059215539080292053769641800684093813351113171994303008879625915528291098144992802816446147416456940727270253361868770846216572611455087288704195465205432195135093170307672585597243889763781293009773042807625236552430204629784461731167558718468270158187956352270498691407972319479376859375153755841502064701315093653158260697100437157488269382010877149357141368998459496977998673738652506918098728267065900109884736924225392248265813922025133525061115499530305948708032507034397641155988607803578381158557059161725442637147214557968489296795975453909306212891115559093887811370669690453763839328824143599445256275273602603698214710726619572678420951690358903976361076400166213189245067927975870214396385608363300455217851279298296666907016961115594876553116527980897888197395488144599563586537931068807313641827445966442917707686295680680075330989316304383280712037563284970229982748716724849580693264510187148229374229096718813228362057055758995108456701001233539890775998396515378112733097750106053041953758364673533061573099850776482207139493267497289551431285468583977669152339914820360410269357288398905148636089956630941224194132143166906009710981474175367576047865268066100545124151923797476241786044782248652039753197442124280153325505061811434988813126687480538212453807939036816474883910445498795792991793811294428890290974286343236648451363544160854773658731790678475628725000043529793661200200468050897371800656320695582136406007697083296499361626312798516079417160130922377718680171413263298743722736180755961100269249268511473683804861729418776333179718525875669938037601487747196432648046866294049553789081989475576685198814715689942277312337097010739682717500878943340254198443511104948778779509690000440988442872052736019041384813030751021260969982512796688917787746253634050797358517336971790429901474890376752602939161616568667269007800222207472142014862454228702233667425264664285292315581691052291870824519636269870840192995321336224744804450582381025815693254685550636168677873861932778908227487043475048390566765061686267461076228384814067598458616222674915178119678881154952985847548173516796010361704407166143448488856270042684283367379834773101947569725378654192704791203241556837745373140933767871550279533079491557666053283354460500901120215026782356532610611703997225061150850553866964168990424721017080761758551911975058670400835992639710026860831711301720907341332870232426387524700103378463449274054223544637921251412042149376913679106455351171049130044036882682069615429887321971894375323831802568335940845068776754538699069956915172245338802775020302153359513868077073796505763580643817958041959365800716472294328570658219942489965952541282776443968174557440260754276512137498690414347930658097778897433062416911543399036619179921977374771766790767011586457748529262183519910210529295239310350029903522249765545827858627846248558344036980782445772061367432576258640979544512233838520657845599530479364312602752994760187628368009849360413136315602046527369408361574668365024755722080927882220363614032796902577342947926903388248432811861480034846002977952998347747798999334474264762676535933735506551392749179327425920548605267223794932649945796506187484063812221544794738241470076183705341454479838439952337439965492761462783879183050720510988028466985556335080977164955239342043685892552220178426182760915570105779613528958286808011926535279031793856262788092686437050870824310875354506050578563228898367563341403396872416787822002581864680376676664445550672526782733320452012180795575529362053471048073735893255647407657038185514790878218121226397884499876385894436664397706468189016661702631741433780898207530283418531234129270986040960458403708072083054427813723178436020603224755685078205672076514926665840568549535862363855614804797502790460467797378558249421550088061013450994610226297475634194971987295010136299293366747481909552122846800811954555771364748662911956039404160099665848220207578324063462283170926639580246886368847829293172662727309256187996211844256435826312354545149342867964198506088483706440425320553560360897713092725013208834089801566244065382777432856296890832897300823901830194387431351105222120280237479632101655594558280688778896918664522949342512305235901877055450803693040503848034585344362419831996402411601055997482658964206060379965597475815363942799629594473451194774300586392528863119072953459347129037483860695795182616997443250789047443243069739446382174453004956163192703040484730939013573719407636751050363709355366278920474559866553254405695139043776395551187793066393093132176585199197223774093860390573226083152497493175201275779702861200123490025767393697234458479335799484057009335540142862787287476638533402614900745418371851834095503131503690057894944089978381268937098343404476150353786402384879550041525974407741157132266275086362804470539062809616333770693540752965078402419595782893359753952968406156427260540351283219991757974571371222052113697822198560189117996518637337783434667703384308448186224043273794951189984951950321586340492861704880771740542640181840662579791620824820085787842142199094123032686071684223593665275678345860966641278619757084700192780742552704554582570524586993784157579573606070347089937047928582536773421211532750908051995229217393656516503733135112445042841262699168275523616320849317168787988170703066289855202928174603944505417601366008743138395495878907602464622777929180961944003120776750434393126909395186880272980734956964770342684411336189625548519720080694921748264469917992711541563053266675990519226715846803006542692857931119661189620408847452189652540751461831332220954416143585486740116622958419381429814596162848625319347825155261948838821407513411668908487494711438130442562555365119674742212827106432464313676223760474263007438830251443176316638672883062404404621252941695036366855987246290495300568955009015391161644957621242381571796940816574137862784997433421473343355544004371181984789762446909222120877447707848694940108767087090495210411407191353925488817026749860493594413729549896849305458798538376642807639962269828158157810839296652277216792596071989032692568323600425288318940809579113121594251964610945277441155046101701087783072673748569265465096162201567867916410922033354151868851816264886748870892514939485703295837055226131800746444833596345163518581251947389697013209607045184337531067086634805626145370641561247780009946928468645493262059826717342213153377494880229883664145743560959817389610883292439564385440998793450314385003756610118935552352499093640001555541847915563842055448152302439880797521899037709677178642403065077276342392117223546381202387249677658284971785824123551617984644201607208456799176871277765660636046563062576149790573785446948186528779842899787584504868815730061810555531039709270299410976098470492567592183403116572598012449974843724172897311036697691531071865523172419430265740487614504191101290264469692701092277010498259755760147981178562255850004178520135911986021569894021902396073909257932791445828737973503104584335222202659060320755191113762561478494920822037564604220346536250596634880624829390858553981990224311218256933228817487582524140825978440246873718350266392773928945897059357185444623177933702155810520412114992418590244147170987673009169174186582481484273640115028650311639040824987993775305071259989615831035142770115821731104154232761574845115756189908562963568570175337929554001180357078549749360685059848992799930898045287007947294056976890431189061141422867543793454106912885498317926851983316050017962977986178281374441423517508426541355364799118215069105217163641813844992016573084981228698527670753508135436147394947932898257569938195282582460120080589503456022450903971833415057751155964162982454826104764563938426661835665743548696618145989630938910675170551841672468426356614868664181335920985234060901642246270365751844653415695867824027600661343373837173760166933984992320935549133625179143083243494766635666392455583819963455923545246184494986926317047269762100364637414059108009267422416877148288240147161876638726619776230760992634971453048946881224381142691279008621342274035653112038916650296497137988505019525055071824538418754648223431953043793376732646634675779508392962353049151796328124183505437144627462724974105511244027839674829971570668020197763088335441182289572316026356347526406640957472862421951472443961306359667006701260726214213545017202850309224727141869427931329334145627075089326279318599899622451372375439279260805539553591681223884847592277338923039491217150031114700459270237959600287665104654529952925120422065443660497545722187152947960501231539374895088062712420842174675337685512297318007636045231551537697724966736482851866858918606747041738744238410640607348378960925326731053068461226569915516818974538844596087079809201376668043808508367434923000800925750018819155484086731738045387823801285042440453065486470169214889358869462512291520949626877987387056631105600374664941960279167099018046380328488670244971980126041676197239029489111099473376845531188662034977004196005018919618752570412736483614778191849218316278938590171923664103104474436017395531700521017223662324490337299547097380450150027561518572381578811733802607736005954746144951973314020200253095732444575821159778653190136898490112696716879083689925289024724520109466303974237886199285387900721165293500419674747039961855823576501380211154980323948042336129306542512630661461190887015865280183608180413324798922904202880507232462007014693339339668831380307843696587908147710308635568517940259929994605985184654012138265439633709195378824285878857490312517274017086660202113699743469912916268122141114520579081057034753788498044535240058003199367047269680546820658179717772209524401192087820943329480966323310239819025190666838979105575193010907366232028647170028622166071491840823301125145558433887390758578846756827144980453957806815967703963149390229359460098960206403741061176903445305484557988594789266146423157695727294949342954810984764700019084097590147924875307504730828772596782804001104641817336546343668083135214560183353766271026463366801687871886370928968323964994258730841518340395085219654369226023166310157142411004649051601110964782066641752335372455841881543661182419602092127817177276037806584609171525534436217711876762593946198453340781451168027809092444131017886541355619705303479829571725323686294377997440805613665920398472060083293011234698802106264124438524407366912329568872569299159004722446576205513647209337219468741333305361728365264463116462832115791689263206658836302534298634558727262101859880202183841241592472990040188825445523161277618227041389840679708542341861147220443418032904376214500325988675644448804013239442477165290289552174219793814257965606758232374527227565103712216175005215167186423160834950127516172477523785005682083989107554153694908661450601647355604256837813573942731420259011107686197711104506253293220561564576447114973211959581405608513207038924802165445816919164387224070239530127808040331448926601808531573963318057553179106360454073517968770235435227155532961484724288840002383089711718354575932166185941253141973160330022131228459865306472322788975509731729101198239441254245948933865360225510713715674063328628332820130002940506888850702626762248230418950031577870892958794998119780268069110996710416963074082813928167296024692076433840632795450713704124197670981229833452132206044961792500531390044883863236188591701232579691192750411632152717368384860670802061926984104493568732898394078779304778434782711690761178363434190637100981336327927386974447582164203858893431370095924681869291932907044252952170289896112639585816681654741387389907418062498773983392835388249501372145298574678750535064364294812290768798883024533249818936520803058490367872125406050251847852127484869648508716884819419549759695056132587258113914400824168016344722422177972367920659406313554518891662141355840654500447306153165640997556641605726197647802080964133208046921475954402881614496139334984059895024966581059840019298144103582720570616246746340523088055625040522258333450633631229932977049996312807233230268267242893111313894345920043419578030436190298363641789110626464839200483275103768554717305449317088600635756540062703248964563879196980813382313846862579631744241375473174156146234525849313340261589347348093462299933145339357080288785698415906309683653416719493574093942227077956632517584326909364032418251996532109030461203260841691942490540716558961010503295171289985578869951758290770041700455004416164442003516162026008271182213785759647635265599871049691944350767484359602563382237355409867171035317601593645383663220917785118078875014875128263286005690633229569397712789734213535856027015810129737909255438203029236319918923777669026085705662248542514816049111775230776236080052448100882913081291023408300985007308562558626060154467455968112043986055464126983734205475281134948689409610035679790568796035490116324059254748988788763210524192689936757776739129748950826370734191669915390700811893421349353357148703279213447646743051386676232087157375582804006460244153606048774850340288348963644695408842144987238469220363167954763802723307828433030176214752328075664235391980866960284961587529066434850500553527338748669250076050669521803716814400532332523685211330322225769803019555042274042695270442387058527850179669767993162746924094828148469462932972817414154886583292392601466213378570016012737807017689706468600862602206482259004138976645471857534575560452173865317458971541407164974518665417257949996741349019692842232627719321750125161068866273918935213358424147002582871812674486736464854785894727711180550029566358415789418907846560265491139976816161144221166298494875455337022847213059412344039778328317656188644027854015337610137695325439881127087735622005997227947425859238653813887793432916513175171476645874201046233144767542932801226513770995747068264642841834931367248259300316584262529812239345703913923768104527922705756665782422700788981013695299257561052059489305300651651769609491038051332244956186271816611530441371629927927345500402529301706105701241321636276235105550926970803017992526038321140719142911890560061065119267212452787340317590085288398906159674078732664510351077897450200490440726892631962421316891925795085304116953335492532353371529395014514969336932353743766069868795746656143793330663901218714725250333248424815532470685444175260310172022086427911371020647576933202878893386178623848799808918666064171332090276138591995853683375561719584879749867703011036068484030667234218922165720292156812451641264046081397883321762041362907528771361163409917294134578272123518722203185284058593551397703949852977109026333087278494674464871723944719872443706748700678889534140309085966675405788797904538235020935051365935537328902418798423441808755874686687415489309671560849747559689443672416596202689960806924082844101754424860756922052402309309148334510321558814989714605637705259601624308599631427078317945533444154935349612236993877870308831126775592063733457897807700404014615217834618547430408504043158321978403169143036221123972612190407731936319060535183720859821646114836657403299230929572746413192098064495713037429035163093969175105710243027356655597437862001974536061421247812182450396403041108663409875419833083882133816542149492148281546932515532386853929707822027814482157977922501762223904597846026139770956720442257061288385093758727550154424179963701517301440033832082741829264819113146043769709315773396458164159818821911935311703690163039046326992782811677499093120533185657358815237754899361451153503993794487093615424066313082398930030936923700243823473388471698411778993190766299110881481450425095805842220102961172464235076387439557623177263365857475858969862452807220027561023104327703392407965145983315335877470687813045398803914301756868818370384922329902386774101449421795712427105265283454324092982409832456632436047789296014007022650964544268919741698761316248233614396133949984356364912830128000172119538389134750345881189017280057414607270276011691876398479878271786733785152863724591960126492625377264537757809169297263360895557572500062563886101678687719847937027705277728478059219897838417538766622507097808919654315122564144023619080899667943525852499333586051069617891381274239810238696287184326766640378643062963862053189176182001302536009987403347374733697142324287027294700432156648480136290969234646713356624441868589535458105359015207258998945893984053957850682445332213511274057257796410980880510208244025103404992478427377541302539733246004218906231658890544025400313849082562487013676337860381504161140784686464690984772811704212667997225217595894146723432685900834812524647223362426156603495395328761189539756945440576465015251917969169811791292681412528933144717023282719288978145107053194504434818269631439597118872364378842561202264656982299670816582216629589929218577348176129761181111840122048541484288825998715049514698522475971411983896986460717579656520603495787136011010623038801705199235836544872130979328408675469335622278538879009114103246755722873192877652479765474584117517931689534303622185950020323252437961216232846732111864323412505286756628893318972543078500468324967489776162507941675723752225362368177825651708434287803216792517802765500026494131249781379610697346544288423516713607497508213125724065316129214652412227124060576964761249856164199313085111321487638383587840672832430582338434072132286099771654737552739390657042891287027615317248990735351882879056384876386340650788194361359752957485813486558600857674825492007356340264333856116009061289873768130390909068763793721345419043635571979792944031842865952594624208744450527798268187749991713408820964356548379926284694397623270520300866966380550786736095336797670395756252137118674579561387409404884667171453978337975830244741682771265803213383424500273417002742234087557583400778025917986667712998374986345592497482813791178621385957130276123941992944255523299742072899359544247836348095098241444834029913892290608816467987813437746393097426826367851058182607541216498431943376605514096567533581766170143822341857790512092589967654287650568004451975113525195258588651401108179469849534640251100512946067996456728813549500740946055288611965240952974585192037437755478472588508725592449609975534896814077976981699397274634806800244401549659343314229772455968585153586240814533563508241279334200311169644740212924834073159473199837509139536359797858501549419212440103370391087210569731067661900409784914828128178233177891019469620606685660852169047987066111899055227700231665546022933300849976038365527171850253944293329582486410283920023963134906006089145007767959223424582450397451462763509136300881024727271504921597846258845672383346317426444788144000474392064350489658046211420034626224096848304932234751761498602227330509666124685255714897514217352762569948408652214325418930421392171821920915548956333857655631500407396208934510970748278025555542249446887016031979493012442593439254964463316185707694667134919398690022027105393752706248287498336574558286211932173771841611019505033713683701097570149933401046326271350422355183069389743132429523546592738866724886818794157291971574608992723679781024191988551282648413533392003423773803248812782730896878638532254951852573096405834954690903335450731811729185691889006807478700553191226097367945814274969995098219758306519747860467071416046136782464370824611030870831118481138750996347132834178375568794283749773771952656308168765778325633009482636425901729405361309720316848026700849712797799595833989717718078894224435062298517045013637252682702373706321838349329094825952089395600545836882380702447646762648920932803169323426518321524399800353276472423500114649332502696890174621714286868785091038488065729213875751770367383421913410801412853302708217452147466706077177912239799740133785588662117645538112231797697147277769651808345512419367372309686457286772149613929944310348662828647048288556317696352320470638384113521032548345530627468605229088833236276061894503385521297449628763973237707577558567398908051606417244492273377612933566736355350686237656744850050659834989497026258552837427614049027300594473711055080968032894286203685279772761260945044115002186018754711053299587106217429228986017471171015833052115624680597265135787921724305904858055936593967579464118340720658499534129042786547203074073147269514258841890747682032035222027380777475758247853118844270915358170377144600474379699485546906366370778417789311787515839174165130434149877512698040897100026533256147837330082540308978899831147230217986132849841273021174838745636229171815287137501996941391013504318624511180841932253776754823918563738185813989345499901385756580986770003888132572542404653305484489419928467843614757053053215135509823955449348744444451128271867242812783996391015766442797882216848286825247631721562022865508667842530362125004083694783400067200418110104779451058994345459318282988972261501754587491714540947079116252228014543090887631995755443729745730789905619612842954554305611272995621858843452986370778141711049595790105234992135756450299201934294545378282105806696904741501453208544384620668568395595408364747302349969840137755504041631729243855878536020236746459479339092475547693654810197373095064394481635658929463085058025299397075401159371589791506331591638703695434907023582874987157561469830599802000731720933849858551320872211714771759407569209239120142814668997514249312000267021738640812987993143160960088769989404221257733751635494685459768648803260452790109025830279210069630762276749165572756858115418669414046574564005439001316520077628676903747508874933377251246050063671659818078929151836310541144283593631839466525423196660508274439335400089144590691013479867511731054983952022616957778101641043148173159356763950692927341447669141858422582612518288581478575765788666612413143077330371241628515341777254508462975914836790253791107464858108648685748869088840090282202099954187846555655581682021959780620744258160831041585820319307525169582340343305409034937132715871190526181434345655842730334858412185354382081190159144812345985179947103894669035771378310086106631275751432864834334014584357702125242882398629248116266980994923236844422285363140579331672438172674183136648984023360416246634829685785550779648506260026320037366393352226179163068627201820564425244997153044339364730028249937105422420647262532171417220081969041892272376876343111868719912668908980660125561919038190875749947973049920162922618770334257849814466888143551920177846195224208697705814740385517609572530965653402089056704354127202566945262756447319648890519101132004084768504499684831460606459561547145296622747713538143199389444827749659916355608620685355811514855530169238694917345303995377863959981989259004826891337543526395663734918629936334248420675211016802630832057992762076494153146651947688898612664754442830659453930809794601312496301397202889813805866942303544211207514365640406314342195806739489156840846487382082852020063522921365222364157831135795562403307621673226877195323801238195949378843711083456145159313236395151091662000839899539406882678793783741817143477866877625414358441935775364876586146245839644147650139039849862188982699318307841368687889500419597739099454402905326246864186111331399945124092187297939768539510509105657612060976935690479461541571916967766887341109658745170518750184077790218143423486341802520454917286598331308428998296194135338165309945745866555124004082844906910916043172846580634578550037173634516705285529875930243164224913554298340173571644423646201209045408570310312670906266116072591508734199893186532520200172647502700929895700259819041892425159696674119248478710680639214213228872751290636116328791081471003028674619704282228567681760470816277987819744756069073595984951241582764829706397166720768365553359197848240009646026488453068769746894762133548579281353870207032036907143020536943279116534002285984312507833404096701431356159875235376502779449159355860284242790547796558779027543863171719566811588002524441478516029034196415917451035964870280236468862381688014258417315661035665742456577327348110362961338794937377881100928685908778883787236133764737417128254359637562156665948049221660009160377421208393985085827872575670916870752198790269189727021839601102845241698782487403677993589541909663016527612525502597876548225197917525586354867458668225753620744515219048644180939452751103417620897952802318004533486924534889123077506332284582123865888733693315237219531141941363154778442704036248741546207036474840262066400634195998367772230386077292048182611135668035955896731661708628187076371009559232724175746828078570808316584671105017901755430344796789708869956151996224072279629507821217685739968524102647598663361904626585410249260752469485503697490543268093981283880394575309639133020454747614142235253722160406422437559145400968789698456986996268451347907762284915391693124943519562884502038468935376174018236607674956076545531570912456995603158954771242342393072434894589957662020393936316137236505576460487405203690505384239426981392007679587622808926440776447729094205821971501324731812395950945501570519684027124888095225604670074797747048271821562723946629301333263089616165964992175220665739297079639102062114239122613660028356337526215939378942205715225949489319765652712387389363733753494365069806451073741448585869395819965674036971721663015786471217238459338735998084215354020578920976943590606237457109240559772489003441854248302842720408911918346003946203302027770114649902321304352056318189316185769972128406251975389743229578055771005552502769957688689168843500920642059285274829319918394817910046375159619411050059185996072220695335575430263947200598358543064150465015363204872644351575196466145490637894659210073377978038576622142107485122449937249644833026852421389044265979734247219783203796908667133373680439282582016137841844430993926151738986263618816642515469983480703395263251473129191759450296786809214109572958123705043894990056520421348033093004747772236830571938830970976033824202208828278641542588036756910686365316530552278722115367517233389506878840446260685475125480832386499758135458339839431483027315231224589590470972711030263264225242872795700973348233795114930677816616408741547483266126659544041761883984227055746002199802851185188017339780852628006046248249500223773815974922128864631566593430423504176870705678112942143500347547873105019287884966489858854484600783005510202485044408519824901315275464743219948825156318037221966736455957560429938826969799965703940267361259520670969621041409790588799934047605608713155119936434626332200489042552697228088743780747165278564497784252660370227467026252626317803848669882264749609186511971440657602968374284395585804196336982315372423866542057306404493680609315713205049157705905989369287479904291440963627917875658078283653629913088107151125163672187941192811247957403204600579042935503998977200057347112287275617099690975596867854600845406982152494894108413109284052239461933998977772899732224859853119728106454947360259161186536308836897070272326382521103347584048595751819784969258209694474504154082991427382825317332172971420336615231729941195669594338450337445953418272830233885784243999369263226727039371760005571700183872142414110466646567030494276529090931577712736654125145363683135414221445600756649556863142327739283414467522560624565447201110048870932335599198074541835876526012148897961302105398952349684252818218595006582240095173033703738929259571639952081729506803391050316010708069060027874569918911042250500028515156115872008421008017059829746740743887246579944425871725178033167818862058732447753943447873354849681310702480614376025701605209168894076204569664758615668000208833756935682636881105573911597375687245264040648314637913114419468310553632679695743447771772791507897051382786180961852679831872772908605955552302864445000525786328197618070404272915827856899320754817974104333827772148162653300431421058789002588006929494637938030436964634385823992348772582621918194813181730277132008557672370662475090125377189117943508441060058874945893506318829763360497372965127119546849700528921617104734625718940522951839782681210399783054927989806375858562400445454151757018830532229888122622616476041450889827608248760628943746099429588803264604540276559121345006615996430869625893909408306070207411652748101625344132030590011806426564340206534671915699270725332088485427708739312133454778584978302597077949357248202664395223906633306404139095334138154519767573686689274740411687885590769444824175521705560273954977811320462189785700501848970719871242186975986831423580254653599060278908023619422837332348332171122152185932030226851308201379927935430086376763838223774131460700407735968908938841185762035326566263582273343636572026629137295191457614400705292469698704635581246894015912809889497245177666316580391579957873628201841426512602605190403269545449590144649532820902835993197875691037350761390023680788197196301066242632745311553715228616726710041404304297752656398630626602425522904977391373833080383874321783065260222145803519749628306147434637409743602384419970032350844912133329276839300145975439896824157266609998521655761287379920781680926949706216447211967240851076988123746943071919043966857801254418388904075644219227110172614871008510859027209198434053818317694695369379152958003439558282506620506900419301287329614280048643401577069552557445082881796485604202513119955110601486975524325794253178668693613189848241231761274347712876304851165995969917811639311055241622809881761042895848068248951333710782305783493162890390019216990901321512454713087641349996723527505129048329846063135604736957605028017110197818494998244800359426749240902430002337244951480629792800406130608334001849072454485788768803863243793996481892602791589142141590005774960260036127345145975421523459280094869475284816606883460420631794246609256598309626659595499564612599853535960674435256896480720518906770280258228363967933196334194305073684662329793532208570175579377852530176022209553166403890445908050725278877438221957439593269920286563278203696525544241391227874112938828633611759120858983593592508472848960354924886802725924582319255317489891714714455537382994687553875594924504795592945646009298282034307764180194652113998516841804330105709138089796417095957522542606294427601331268356677400409788422521769385104015565445063966709262185836529149505559225985631491223397928385834128217271619499357616204211757029679400402761584819380776751531477851490194603286522950694357160858814683243432446822298393085102562422975937863930640675081539828700895751778401638758413223890378428003894408858546877465798542189437071798828838481916331095099493629997204772609549301782494407993939489130791353566512347500265508470729899986213078318056403002010724755372980375939988069813632203812578434201899525910998837441928960060595721930882671507687916466540104652022763796781421827671989615071850414091395644674695185864739487346942926187289259597679289306674041217072341932855735517698494902489139460013095670401891699953540353311703913563946838817179076683898607962720521375992015758522085045340341151311251917580626855692311790982253542013681575198969417782963503402830047129682283636295448141914384340908450433573093929892203209585322226584736302452117824017813484556526492046067132320277150245614924502818097509914961463855219321641359636206816833407448292831615416510404557608926581537814228287073208028530227794382496543418676021188180730078891348423565847400991053073285009959258803422278936109286439873190357191645022076368218277403169129739301145106229271416027921396103942042597651841721586489106147155774101564920021328638394382194231411459600575780150718017779770850913759316374085643381693101894406918017986702283479154449307444134646919212896369309321347661328159505442780810961673123219323775108488938731986544317655495753184536426770160321503493774059547468866916838189043160834047628864020755489449626181635922881618016684134480643947145338634851183264755594174322548968063779591360402095176005548570574506192804469589897838123472462673382159663904053400504766255534899038433926119021460226548740977780157105245760347976018285196760002480511049798594577870835948470793480666185225336910353327083735366106331147764636590278338142677227638472317657429761004172669420836473948089351494553094148394702184561195893314707644293936155253184973714393978657260680746338706038799870761694962334335376293007041272470650629669349607639617160736263502568522493676580868530410755729687199331378119085894255565704316044438816480929708876796103224031018937429322294879773693370934128404261724885453990632924137483908666694635577739141776884010679528439106775178506339012441064666193596550765689214974130982282604092033821850502767844288314313921977164242026989872487400480145211528321714487665524499463060498492671131602789867835864066156722044572488037709505261611697591792701738929887562279624823676861408909686623255652853345924346287983633426491288444066034187240417054746509171338051016185850108831508450324353928728573144922652333441785371249353663893159319313488850700856745494703113748775828641282685802773145461337039425752848320998671136920710256308437101635630753589327582381955639974777015717087958916272443830605593271565814334413971074123394879877464788033845507136924224508868485884707828394821207080653581859325668177272728534441458444247322260939046894224166264550946366103032662119679888145741106045094906862014667942425337961316688704036059739061881634284309972724795377219134280561599262806842572755552638573971192872220553278348594314321581174740590769729544721012913203102366748217578216178991282842399443781704978572649556716357708556673351756068443929297607444093188229484860202214235130391828754149035329144486940720300426239480260314043278796548376703403324423798199109697495862028000627687281435680455762875572072789134475150215066031958903479632538350770746191057531972082892942873876496013651474540035132100714362742001842842002587214936973844688433903976877825919515399498342712340193084818603981587635975593032694361708445755148892112251188341207353419031507172220972703693695416539198747486342769307681784312390816643840569494761360504234187188445037941614141797495671664827879626832403302478475726195225610366790701520101939334369227306538507130191787827703447359758339118705202361179393240578654999047346991129524723793065755223755372951397746232519761271737061165371751739243655993580680087590451713433460243266263047240049831456066031272803780675679411312693862374599898511106855579515398487514603882047299232088053703169909703917923583936955926525720614936726539966739555025098292946354860107991209921517500910986283774511245761002427385112239111765991052972165422811016012102144316105258697878713621204838483756729244982009868543867847573851446878204498664945724359703958118590725025642676086707299274251873992651477385336426412428373563461164690837903061073682308702054718658963304552873598171693727527250990139151370304541237090365486655707412843342653245136773511741991062885523390127400834966908754703897849744275323994182998850870003653253025094864044209917472840284262324374232017299413507369061255685062281088514401382148519650835284433859973281631548594015643154969782553761043603397936785581776079268893859394180457651287951657930345646607145151575037604495902652520421170315671684276364715027290620900497795523713435444315230763508073808538273803595796210330239566238677861706374141706410247554006617502980104471021902650114822299084553067602535966476890596733351593673787551480456950817657418349430160747602015373073842347317087970222684949415188219564570078224128136467021312620711378336774047502037172426774511368188122399335658825164361668754453403866164442251024856635837236518672641035029740870512720907052279694778187281325547109628631490221176397291794155814193707607197773319475162344053929323542101643734320680516596055566145966406322538260656638275100910128976006529297223145422055219949410758268259523517053800488176868259834447738565772230962199526953584484263310530666458007470614299866713168745338522544868592188386719739944781285962114080526052796164682474786810496748993130084518708432830090527443210124559569835729275900028253186387157718929227478226845187935329621955498692332578985674837774278055169076927034617379596377012798738519721850762850051340547202020042544348852843458805625941263211166267069688856029417872079387830863271857380151584060374866468396972113183695493437575120924360244534272387772348901168643631190454014498938294690899421483763018411869953651900873876680140737256236454028298776390757363966222351600203664337759134218747626494074027376485538422594669616928647731954909987263523187939435299965866194862400913248987463273521246622519221668465118542037230681421825938122627475767745461255482245079676786282087789081185879576984952958162842045021191013080714209252365197005017554340005048591443955623725637080472350601124791606848950872023454097604268278443922153885606824264708595098603384687872224362086145019630082998558829744255543074906976366434182498959119948798547787969214642466663839539351182786837312279482807973275937539200803106938222532774664832701553535948695264332896676871901853466036679485544777349967282058684680873532119852253523773771882772879903396257247795306555000821785905852564870048023638300425376512811969543069411223844199479557405875128314457285271262939543575737781765446182549294406452809554725171576836572273597441822767707080682202856426655788491983230484708898554974357854239489500668417252231113494648726777947080522246569852712344941351244399008283955748768802398802276639739554215630584076538232719376786575540172005580016241582614576240258368310935317407132463333369354881339699193219154802751165960734784524072348191073142611456236471591661716629696074503471578941066680062766774409535739938112990540409068934135873571071882678654549797464339758375203777939216808181177238424688811078143398967581060647753952413171795545061692941189861568950345653725509959979321116798029985061091697057217423973790625873630062411115361735004975311428877354563158302230418379233284559428614102462400313752877352309179605714498929602465220265335170428125912545602441899312848722048930500351257541383453148339013342791664477269811661952751236337610196418042866291030075666101213992628025747305106373060592185905907308649197928348595133679447617142273235413552687555183618715919036837075150379900607660792756795758446618772490985636375305799706761271998924389015919052755779681001126121035789754037202656566670183143410663976172513613446988373296607711484607719931785778148079649990533623120664438202705397938283423282337114551680829670263512587673826509364576599925423551460866879995721246014470051340232919593247395023020208972024150462125812973559774908974621463161206464201841246646639791366143105920920689972905063977375649975517597348163831972998015824482755509962232527492366290298210743845154209445133934609964982479072276713127158969770146910119955279322728988571955839925213793855290573752045126349577239509051373574531985079294029532757479493525498173358327617351647503845013628807707070385516009817548912994322720910810847805619114864786888112563379560967490322903370353775564778920029587921282291404030550684430798261750363808889338350468387970921739422695375034216494435683436954864726859230269659412967870886798346474599884358551191968464777428422717576312249538595755933317144405124087904685022530872582332173336870348185241110508719673211754849530536070795901665700858531851350818101063409749378017283181737297000042547989966312454354013108556224932697159431401067420789791573680817415824797595016824487426392869207430360014125524084060974179941002228324536887995328893139206967700453649278284152124006583106291742167335329676157440790708039838861534107219715483276757175049745222843964315043062042437313843634435899338851140740187926165998058035523027962901910662974201612203278585382180190144289330734481913964881217859616301002269468340006700186459835581602542854258915920359489514130340003338849925199525872404724180206677265590752224790812594500611975396228039357896748966589036723018988622135222844800650204703178471134626789250229877203863329667209981986964800515586354083278816808655387884403147856235537446176881477364029281163234755087614781569665814247326168784702724683056045420577071421889639880681767488397292988425681208599619826372005774692405800038820159643088494717187875119393160931084058653520339653298934805097543970238384025026855633763535883845166445753827095344222289218731789888237281072800196885294572309140257288734657292517694632338787519731251952732355382167794813981395981038769114568696469270882673172589066648722510061730276805360992342596633980250010073039945640626196384553695483377680617235487256477134989970888776593547553929631299177608785009019381089580496350003992706805410461677990082867603411960115487059646288746091280111492530624021782937418894338307614618990130300776678906752444336010524241401951453790389052103161533676829601284450864414242942530114033175771493370610374743220798209416591107562237436617549883915296178151961225622518695275053181942473146431558872717978871390045502574701948617424218113383499747109320642824600578643123049948673220297650626739980966635723806635642232773870626963000061396528887945992844665008113126392947641188886608169857821621588075021777443794087650715057378551361659033514209369440575627738723474193188103543505397383152371778121813904438149693010708918306325053711738377870138513944517738582980746334594356233210646018748228054689661250464045928142008592367937546018213703646732914260963360171270482886989720225848707054005111098079324174470770771348612771717252967358546135240870487740586565168096921215484255914626570226023431921288531159969951924465443420565297312523566280688486088884475738282675475621071593533764795156584723921156928186170319665596556665047733668215183045367349294679865659850382535859762463997310905431426790811505844065732328635504339718023239937788006819093493876879784562363713373100251818094277839637721094746188917405539491624071632796014833012585013726344633500805855193912262757980320840116880704451756480563841903682630623197400210787708677474313980342301595689258560069325164207988400214666111852676990885248496432632258555393370741729154217094342017085228624179154336190961760428926022841586966817797662067837686442017352583384185495843019113450647820042573287693694866978779211451958037475158693818636838744752034323264777234108442183805156919618892370239233916610777071049138132803530031093708358228856639328076546707132167852528152469175930916801003418648978446929750086537149647348845171857610252225050043278867319471105003834301107740363893861091620327133327875163347292276615502593099608133011990540620913669338857010025140494451661440215093960786748238637020723331442508776611125697869077481731963340696364678473779551596452641276418848790088547976228829948012073444831138020063885656149245159249882687369406918265971383749244235962104771594582123046683431408588913059027503791036492658701087072829889899011810214804101334804085357031254031046783034990756503679630515335219507196034836946299386470435068967754584200010186199800435295719563648882415410609581523740692082255982796224240477831669353271092644348276637717808780635579407858967246970798190751985345029070494304895768104924689038582492401935748716632875108032611046377116849773199961240288716145264962499013769012288556751209703708582258191373322246592722170180684651608332703864753719256251804637978171145500337672789467326140766867743813223534495936170656750092706370626396262696785148402354385201540728455136505121532112024304964943177793960619294146263141834545875530140103473349016543322478074963943753324473167451171333208843761874945478070737853688075014944427172253244766907656410418513299789490421393103316050397507707797590931706878128941590142594577385398300079462461074767303210507942029550056128751892396424193560098201615490126243295064413530839637361013212311109834240136761778239885165437259213599120126219951379364801482361572159880760137018874416037074710192507086290983807392578406127224931146441354554839163261944322091575358489666604641919389123112943651076243033011856148761702564803096629825593500817710791466717967730473154426441084389894609948283598383437542155104433550909731567967441794618346786713302231077436969080957223736581931362412455996215370980277296730765966735430328894614065722578370965280769650980443015543329796250677114983335266047779663077796778955053317218817147843578735503408641176282762420689811658769146812002463012242491147376942126805228879571000558640694670917038986890336875164098048427979967763719404601636850640342780662700298474651319702286097335815266779115393469444670747345229812838089753137884728886301956612034353483868416004889979024871016301779210324156111298000642845167191508230283131264043375121314340826012516076823186943829585679170885285154585875381907706994184261884780295716006414512252593922915004367332020497212165193584249076790655093034857719112949132458177955556794437341319431773568298327324897305917465752776103091745663737573971274073894089776405018279765958855126093212395554339923413429605585252021046589329105679697897748573673052246716828011448730681812950236925339514478758209920496785321566170694557451306636784509710989601504895516699063345030886058611782408646857934220654560282802928471189626562441709286835422059768996019923534559385460216210739345788541398731834325001176966199888944122630170785917723201908142369161764874033492943051919841007348909995219414188714856560625079817814790903150488031695878118487419648638513014752988908655995938259675398436049837482846887264733471905531419475112271429396862365835824502571240643794282458574095169611608637908435602155639831609431099637223469572742842673174280461330538164802118083320815539833773330847194205502898014079808272600419459036823641953442721146560100913093915090389715039848257834931492897731340352873390611573243934257089574845561893488724863980387620241956464594036134562370600967745107687184213189704043328066663436278590273172736106579550860191329855487421800440720131451199762531755749980050048179393757590001380070332898741683521106279416396343185344740684108910623884689403661560078900896945802412406460171191010756420340200257321307266812709381017214708091447728747379018642006287380175914090487477300410762171468608212137411872347785517210795188671830153784616571798012128999324313745778579720574296420163463193529359515960924200124574409045289954787990716838287156130005223337338022004130611151242132378501697440424894881984459351007538854975236915852260896854770036346710050672360917882265659866705015959666693684619102719479430670823582093737224317841819990795896693508307975046154656712715061888791331309309172549640620477241412047358268441489606851170173902436971933226215099270134828593764823807294131398735662013313355146275811663838996474395171694811351195789026592831681167604247607452385058932742021096573621107505821932086247164249597337850763263317472682787927602986733566462947927150872089175821273186598127640497887813508457748717718503880607927141353908384794119640991698922080492945674037741751502765370220287869723027207367849370205415762749846697124093498315497097959054749420904249032745271266884832637055605154988382079690903798909537235285479432330528991062831161856256381078109238721209736869212401824365835501464401369717741266165261088012766873294504890218243141935672261459782830529544836376227216704594716238517164568656294424529222764757914033331222102346997623040818841051081340062259801428956763299169481061863236811680413767018639719481229601010643216525906033068938404436648535251524104196463388104535246698859487390885132657074118994965988013511368573057425791981056401184102347416660033258914039859382584355650947157596950174234395553393788617470132743110182017828653557298162375397138387644143671737521635670395730955321046935483503521965526928843282785360849997142577608989898426322439867176379225060369030748757855660493711108127026485106018220132071157211844004041838997866692244087353351872457994389737335755542240062847111195429786608857275780114544377778832798726654218424087364240622048410335689698290510627402646406578927890240291492015709939396141690224161249680423012634829560614839770441673987187439650811756684881894947407723883146329074110321972765571478882571289565826940571493530520147251704101558203627629026487352467025964360082057545166218719298925688577332715387112418046404036748315606118753570496415884539099830807297648692490335310297577081898545467619300592065203332814007788236161132890450353609433039263244706296432538730630472235713742697678692630576508792630470542204190531163593121535389134481381558389605334335972007495278406720719520357522325528275719927212785168008454329238388944935263242740948850241362911338708477953262547936073676186102805400583053131724471123624571216129854305808780620946382863905594290837647448870027073680670820466442024155086219057898288698708528816204391739317020346391720346439302901845643570896486863475453732509630340741486839489874248480675035255281589249699939762450607061885453350752534762215734800360991960952007876413827159073454215973231222976227918553900558246698868044418042564085809608426172551084595344020792496418642830811604747931984954346353456207961933230098426192127755266729660757704132263882765203439603139211348341163845327677613217927486814981506318313537550327659869331871845064661029435600794929405985448121927178131280855746302269784077706193473862796389275885521821808550737568621219215580041018933186462376817297791790471290983179607603671785096308096454151237994017732300637277361170574038222342572114827742384620473507162210892961172300545765653377620301190739097419006349353818120817122162708352156354509859200616034481954851933874544164465328861567158117246420089560800310227670842310489780121332288391925262650829253104620246175693717417416971810063868985739214860450429645773564555266745653699502925758742337620675540140165021684442452990974703509600509627907155465036841758361828329547503298652330628540685147990472329318503432512960617141363683063909636104532999262627318185496895488761684139981503838434443956691642520212593268336870515613598210404186762334293529546629896038727665137165103628178559570826924083394426024596564749795630943019418614393934953023759460077096256508394055048568036811994935668103936783481077602518037719074631037387662659489701806153798404834271614189612968313755263188192692693033796831232859106157109188274690386792198229331251930159358461847560853328295926864766300264766539119902878301970847015321284996226496916026253978621467226077914638955909924908110566176894406865555020048698357409847242162887824532199476435948789969477233790507243534185104979110731206407462013955069493901291092978032389340120217529725101784702475252094214183507088464558860369061762261773445069949284805461182545465594168327919943475676643161154984801030786928442578772814598656981542367738786235342129422276171115410642157910412591864039390389830032453630230644799760724161649028847473239770306529479077897110397566001104111364038377634424382175292302705530619962693764117105852141480862751072325809075042988957330180904862320769096931965817291991191174510645642458359507620201403830967557200253570487772360034179832053189692908386329998841659686889785417180263295395536278158153321947413178376249474971337408963912580910519359073344923583387174306750501801061157233551783056945800816939499854976435876191451520413005752417559974079614251744647290332292656556118846071031715761346056656583278153822844040623704616216723195927687036462627859180043750971109977057607658271112075910817446197416524817990261217631993014819066374162023141371509061277774520720035845915790789667850819008800656440750000840352727575865743526654856346091645024824861717560654554219090461934212554968736838608152804483407767708727748584732596179490652349750099614796174154252670253722761140165173103644161729473176069278930535590501753289084970668326412934660662804791944235981813698618619472370206128441196387240423435687080867301739937935440195110632890469034211733587127811816801303407194297357820523744367916963094022056113079837540310118912346913178156682640036849664837002126272142798253342707799606126752905586232252864651685498668946740924637168592560494212662824813556842401930781947925983388303077220789023269701079535456513817547564595781374997395699010504585724547509759098311255567153609474720846127149619364823553431839162075187009928370775270548453505629313266674852255441654831415448099340970803324436849789305388991234052005446112107602652163450767204437631199715729596765281061979628210678140039753902096894575499416293790691798263457300200267439187285747893021696215881687395457656859022080287026568927685700098213210852345807597734520868241927896030200000865290002460851206731453953173846240289021368674493907601421044566451599189716742821325082495371437666824437102218123083484850385473326628932540202363121402885174615250519906400747329613964520984612830248820808331276276300604790110717028185682718860697561071190022282089931677193486354567235639598997056432181129499756423734172040531367700407962773432875845528223285594620375894023672112437269985491131521431946248919058327600305968342127715026153667798498747819040482370074213457086702941437797501004666762599396747938524146041248544120641487597867538893143869055580532551702000527343194012691912451789006986950317367679724303420775154166556520611045186711335139869231666283194473683719160854249582370623511650798222788824096563277124524076498954035625013162283591868902824568477182545216690906132050060993792412147665657092361545592167806987666199621380598105528263353510919148820110975816171098030880835737384465020511409788468106696599052440119683790182349206588442798618699167766923490044680907570409891968340612299314490069835021998079069622381347645960338105644136595590267507254621014223134003162755205449011771353564217380963630096041599604774355153112490940385818972254182119927689516584348708360599753163159872485739027857605646989580145517970353301273414561470627972454554841792856201744515933582617534188265946954343899611722239197866006817298964147126618396604655953272985269225466245920948794476807918317996024943626005192395651929911623195265987740139599617043949623554470386101458352408177650627368585673108975743350951874187312517830984852671083077055805055277678161609111607802892069671418783022002631459798155524757016056904590200954694592592905246471229428306569476537544866760367798777380215863707636524624279790980342774965051415520980766174664979414739728036595868045481289657813029764159686201234298040991094428858614772848654834328212258841059763923255530523867877803157414798295064182744452775288542562201985189006461582037544922989950253469808582764754083265979334911741270184673806469502852228661598502913579840406428766436711866431007796798221734564404735624506527145410650930706644088723298653940037336794174415243908516829105376073106465414904789829696419146338484317505082546527655121151725879643449318387229523204992889625173429252652776847512775644320628114653935869414636634833765086100257985467685334925745796690097226800325332200724073362721606822095760440168294512035648064613103275711454033657360379672037669095271595956792151635509756365478410169911785206244539861817035122832579516095949461987427452554175161629207528464902904450483462487286275408906088876973015767485772809137082641863834422530888539211414138318474768931087299574346591335723518572073459614844426422325105115933077229744008039679867202893605591359108515544507361907353541553770760295699932661884043927763300930306125412471087320853369962864057882473206199669500552899738700454817100062673388930100057049287321811385415289690441785457347600347981763370259225356244574424794479502257709282857925777510089263574763430568126383065761962296468075918711139241987121741059285428420044543907086632361152602663016238810178245156587537232232625389658435537075674878196310083475315605230482873169039461854389862936972368881565092888353814249259895218259783793805183796315624512517126480757865709765284357415321420485086392583415707466602285807475346052969356244212974416311971505116090559053825983473357967998407304706570112742231861292447648261701381864895524969483749789034110661703503703232287533822115123736149679649826430750980362502631806490012171484491959477722149866584257639691912504671551399080088096949939705914058695180900812166155712090056696644408114729995496653215984446497410390061546869338413902554173960553181363398752194340641043204367828046858766273523677604897063667703746387958041158304752715121322969020903219907840286389426052799241400193217042782909400899958067509113782973564898072354819909650374776076564849072554946245708928862813073304668661504056816728537754416708710726144466336802681309962361456599634401475968976245585040307836120390215234059062306838686744137179495171744630928376771359363429664426505190407027870594714487885297413061602314064508193527212581175549878750973164007431404253647171935501581460892950067770349604119430494512072531261158251043671773962821163389609627715658655429868700403485983544521424174442687588329922484279046473673122799863138675509460176987415580808241294779359585032089122113023236618075482642366179045748645773854458222527025147823962024171072305826673103065216507904343473023541943635618092530867116675141703771340530755499489123722109143154054935736395619571273324171723936235265145439696357269349014116443859810182355753499351796754832148440490637847768214101689236167844790915131178456736284301884039758183482360993455215678464421924382230862241549807724910263386551598670896487901235711188072207863805680737717824930373168790381197669907945272033479170971475530538641218176282342529818207260034828353050004762984443768788269353858784688869348687435130389699742804861122451212672554597487930220815337025163348188350527422225902625787703446566308678521591237993481180554552823709298735049693835833929764024318055290501591266809000738254371293389011678099933968240787162568038817277438908566695510211907966342058786665432642417683241824152232335834128279464319068905946185025753888358719091256533930936285186975468089649127722777616349119717967701686047965871642370539803670928935195435954425277356252332666500882233362687005258526817132312446788508635685561188408942986184281080563854708317156539347038081778045831803293036554870531756807397858017478940506742148070299693055697364604112548175114439016995299984049874754505819797624120741211665349723669026064933410767506127521440179667578706567496639340403334357919501215670450354409072391105005261029247283528607094999482846928544098334065706184057323764767162614919549470006131055658738053571883753569557487040918744129519610940884651495714243366760691117306955310620911569403985739030464481413538631040504948195582399243194058880335022662583964865200653334926763287484524232686231800096840972074643201441256705236470962886005441500786829109039434300525454705958723330007493813166728611914400922166418980345891653794473100700928291775498369348374635128806043868931653358977012741558183421952606405077964622704513247370247058665777496037343594179861578493081210892274868885465885871599220819670308573716990138611480125265701936795839546330725612909656740297197884058722223253465818795529662260298132968236259933439886298814288326837962947040881588748057469303415783589224965602667732788438415769805566807613253113130409560559026957145809210624157152199867676365295977250315051209550376897239647516891297653475833086898912140032413791053690067710185047236744622196617436995284244489679210877237858402643151873394629346689249061222350277302345969785518216532759078971793319120797121026970330252238439541321402783025502673846429330155967657848661000480829166045152151630029839713217007394743575979708910656684816281749043976869955473154661167007972583012036748630044276714386937973344471109228841814528154207847489020482848075692834750928844650567127122913843836410322067320258351189735805971312932616708530006992961672514686041262293550832123985296839163193964061192323170091634244781170584612497752233620547163630531213439196873414148237212478752594390113595263183651803317643949804226034656300690197118777898583693767154908901126899549952012749655069999367309953297167016523825622644566324373320846450308322773142602088939235846845193757705326018632818039392060795609314083496345066694680913867805882333954035609705350565844252556552572758274400636942259545315611107957521074482178761561152311659629272761695991252293333463453647805618409610893251092496856602087675587200083643367444887582326073263812152472879266729770360090937850463699079784653597549131352608352442203861082036607639221019064143597152847388107383021822891575200018617168258141308196902493547478745014375991892398895668187361842437859073107798343244793747853344646749585426554369026245429917130859487691372389608497690652736568125511025251409699135462652190287061197009175248988481240431692743094286939980424416958544533961642898402020811335022000954125392621052926759958334821933167676836239290070942728339121727842346627076446010081841463936482377790028607585736452351442848883231490134744791123542879267632495722615538747058852711732025557782241938848899555248788246666450443265916830977384306586683441054908877511780356466440751843766143535393462635342665614604238767377602620877351842147328104322946843726731046714096839346374060304441184778636451485499865438319290852580905138954092620329394567068426999206646646634918164838130511294961532662522778234738366778988188409009246566929550618922409470766384549414017007468911749428066517868367494999882784555561077067008352999427843588763481373558882281474083177306134873757510724408126860412148628529827703213152964435044414808469292234181503910711742869424096079253099827612593445825229036219259217468500299330147069820295795342196864351672699366296718720950498965536204454165392164970943186586425602236884914291800533291941885006484175074177582198997113505743045908639882580373684200962452437647821542024978223582621029429894610437697779296004164206506989865776156343187492213809167651283319581449412978315756328596081041489419060953152996515488444730619828156162465270295562220263585000984152465754540829220019283083768801154120257554014179493304825477045662351439570846662631389570832804968522763049814054476650295089561397453823633574659777255514246076557747904765369641329825429769557007081018783263279141259865960508034723594015164757857385608346480885645568898685656045030843332892520131331475037181083060177598786653611200940462525958921969322016777384029342312605239638338011933524797743066607303924652821839434773124999639872549152517274491297809450052674909910754311033766046752715270880022021485753078769333391885693554050014002912034466568294590350040885190374710044070626076984356029279116920083680275465486531489231006745934354306102463139231605847325195558355816530240610363136835862190355869689509860194139022017978754960933042671803349167448929216901393704360335150135965710890722888856858490054324862558100768703684650320882746204825599939297863880501456172142516022008691540830536287444633419928263592603643866711224752413881222389889092209543706764469105723040624288647839877600345498559134712254733940969950193429534243131726827656271469050658899656112880794467865374655552483411542484968885368191963371057259847383921814445539127116225431289387019488635181833826035268546719675316529064135162939664019071725019200125734396487122153480795284269976194277259883854635026482254587631211510698010585043843741319730057847117436831512139045076286139672024309036396877850045253376147508398532621559745049373237578186529345939474120679434911993696218582544985407391312717792870816637222589076046826661226950334381450947169609425317533991989319122227032227138317906537739570297909793893582610624388969473233719536875943088395405123635129244055642378687135611539126754365267451637278129390004364399744765817299017242845062628400509226705923884169775993191081294043033582652012260921908206482722995604775260630288624959449651553930197317582986713586692565570808267826201889583705978422034572725436594664088398054216663453354392514983604903458610649464965323217083417112015292686370485677047334320689901555710294504963559847075832030669570413870894940872451735972592938375388507147263576145864391012581240383782722132570826513247421476581654262095052705786196738859207442873851692303963629073732694860286103114563090275017420939437180325956132790575469400769285644942703350982198789209444577719907631659467806908609797002991704550605794535262700002657915840623013190885349581209168271144607639199787104754108466130297750886770059001679706786077347758738656815505789991473710344735713600566327957439127102249266987095559941683592392062267099113390531631589695938238105643467975229224357946652614669504627916007387574477651002790352394035977019053974797946485862037162749013157164986946217926962349488126206731339724357893822750525720308257649921588008682010522568493302124050320452423222441512481420953683695434786015810023967457866242174806218331781529761682843937888852312904841353125131695795952517168465834134661257535996030712720099874083521348950769758664541869718745323183971790072101479614471599031121114751197849665560237389046358898510295398877678963668190298159208480612475509281534048566228930804626275812149643098976548257978594875301236846513545197856598128004114754863164643904119651459019435946820821242387151423871678097743469528614365476217584384199681607054524402787069744869721568129367907298651800457164055655046980571048623098057829599896330806136953855986671328456636401710869211609711699078422770992093393393663622113852796721100615944737078885726964324058989161370244995450152989450168880561684213477589894191341981694684356283796629717186378266817075678508744398448611904096793578722565080636945320734642647457852555994646204441060644163105244701526989583030493694301467000427796132650005889295621772582197981974970659320028809603120629199940235506624905431159996889682433914982170892394612446301822754353004480169051397193826839717577404028961154440095891794730975201155177241019668660427675159863967369275449835162948976488542444936842520463861098682656561078964164940427058939905927364204261619371769394059611542642747266410612188176095368419311655490918746219872073364118401549046369282350871505044307678926216591307159877931785796397496995966536175859192851990247803515591925089922455039690404654448568027392388156408411367058507379363209044051820524835918494112281166578012358775276625503570808205238647433682712565688214743802751840228124555867279966510961813872353313189618120901834939150302407502656300888461669870440664041902185027933058978549522023216027415294817445077808167531069244158939853371852030459652125333545052195081365137069778783804282543634198962508571522613141289440629505513494213170700797077540417256185685446271575149323495944322074722045633925062180522642438514659925976091437369869868596595613058647226497884519557320062579880535504641418275478887298448853425908528127381485039654884442320643908206443523273609091877245292281469912953993890015103926516511494109597414138736270374153273803643761775213128040420327156721474065191395174041385650483797356460849472675367717871124109135830767107831959928779089927901557168741790266191256791153886516219129818128468791455614809795269064474514177870229610575604708512803802722670541967659518959988851734164204187917344196210957763043902095804487292416908550997156985834526885751164186682495377218458095576333716036350077504519442729231133811855018978680517122371373777862943436841761718481372570613601598616794589764873326460304041795657130331804034323768525858952795619200214324652516484742902198238369321024792041356462140795431271883148060640369864411389735068631522832542844868729242875375908965133736442979158429352023347683500526334210784479283008078229746570296540310096294621456303144734191125023344829304156988935271259930975083924351159008389191182069511474274313828349780064069940844862860579816697350521357996603656975804480747658057351818156300964891956720586050830044069972959864482850817118300687110163065785543574717397054649850363691484250340122070413499739627282906954168560229785571860959846219877537988296213709838144615635518156556785553166655698926330394630507662460479105566956556813507024175298926917766675924565985930803182239295360340111277768880461838653490493382198000782108314373825090173254174249333056465528827378131728648323486192187040110407315915358854651310609513828591057279456676296778176746302184515768048106061068489717897090646817739321857961891117233876811656599177341552716018212769589272757892065274816061668258343525327559366434745155096136932113371845510107841214203027241352648674660590280335083289030033092636269190849356542440628832016335182178877357102030593570835285961688538560190122294264459134171439550462537638224665580315254798232427877800318590623926239383349743396196913085882252695121094086013507770828183023304569888189808463837789225814790077374285824081039201282364508352351732438646912591419458934055867387753955487849516732193107002469641256741497257236047697404651837752801055809049076114569754619767497213922348792346184408382896408320799181616656219475625000361688584302139723915116724411766917096193057219771339991656606781301015354885532941650941814150606345622021225443016210834027187479767764806886460354096874854313090975618901109158109749924638138751444242273564195663158284837060342707569500022814105494113368408812128270502086281902812281378284681445439540877852745668815062853796790546395254549729779016915143729545616260544671108182096104493602346815901219555869634030382654929619240239988714044337231953284159463650973375649685785174377825418156466292370339644346021748520400031796794299451509431420589012853761359531250566148335460524016342426131165792532340664169432505349227192835725586186299119545432334209230173089812838779306218741679389206548250160312753361881263202357816811131268464568744398136523423769051975111210112227656062186191806324131779721241594384297842719381136604042239352438946476445821816438260335660584445951538424761471537454927881413001852710693242154914941341280022809929617722789708264410204953333805674723887109855011863878376909102567732050647957018364025987281454615946734045137816577259084818200562679590189807913828961315043742286531192271890128863989617805998134743899817099879354317770129297948033451231908783740003846818812341675845938692248474491052117669818592796356318096032894257770146431722196956400523803452375852225621594433367772308801997072896137551380233274701639494417872477743801765232416815340128954793739678237102818313072915560151736387200966106796566200559537852192669787219464402002903576635602008543775239897002115541885333678380147219164720853433576866718277323860287507893286880657903583864645576236142808614011302364692865928140450507864734864194246703977532804672086434045934397875391068495785628025959982627269826810711071938092877882544571729476571449575235477665446441237996108369808792980511597987178152303680510346301334789762340377838348265561619942705571563249906865198816309821524559105541267943202281836219051702351450021850411345248705081282634535109959940905298081440743693660987228318600901026262670799057278791232468398826912738321962330396651152458188339784964204655490638561077798632968972643263756826901806829784196646592387696750060310991582256951821623088461336838783694367685253261523410643002511499151204826908546541444360058531358236630045706016475683187373086941662224379300581315590810838356733787668477222200817681080649880127947031715256418359293306633812021981755800617802725679550550189149610749520095806279034957348540980026439021945106190841707385437901580879455381348194296652932790707980817355779410228498300929630729398186414394475346194991455380840072035093423394589596026651049515472594270034292835909505531628107354951292635897343976391307442629700704042736741651316413806719889944877405258162507996242537431031128635078988777012337205040710428282484908097105561276299471452415522598366435783526863781744967741421007849911900300920485679667481869007991735068212020966645027124400663128548129148913946292088354227659475844198827284943664128915204669741679854172961580341926618788504025743250629427486027497395374068180504097469058112174580318358768776429800995883370150410232661843226858327148302410489275338406614806125233923272035634191338901875755795070637559095530337315901621856411915383703438878977774438013594517807320469688314684634661024623409728870895656299730360009656590633384172570075036686638235920643802640603717869023257771043790863538535413687712538877209621158456139530335877331740958451940076397349005018030329547168191721577083987574251090350989786215815336909415407952949498727827355989665442402914353926669855391882672393796999932399242292848544681133278463221237071714895390640956264150309133343006061461136039033739949641677139505571749212181002731292484957517300203784143607295048063145921088957152380691425367276437636587020520681561568894548137852505173078350329198556079772054282664066357905293302360412968011409760937613648737455975049445995210046601475507337283691619928092462057416076468909281953320545697120096783377589316732374166691006124801814932691474022901500317044034277812961523363178111875881477217829616566176325448080409799083571039683386431691961076909836990339055062868396256817064573506601350652992116214840207112508482125019207211981271914022743573162191514231026435085331791939900629181762368554864237002837851852873319144054170458168924037310120248780376031640783196594388221372193031613989222305528380460134354859314025304784675314810572245849263221144380654362255761543032760157511527440985743708571339667646314200147846790025133040918693545436312898106571428859173337992880011805858798045347461462710594769722553269827724040582916820219107018321526190450314783851275454340269725695387585012477061278957119488420509217803679575258960364109019843192139345381155808986541937784718916150665265792834526772890087452723810103206191166356475281602852309508266695246247288257248727587617109914583404046513518772141584517748211469027707063310467187752000059335348675340871608191956367957566625688065260934488580671361246229139820066356742033881140845969792580636138034200090483592985853133752071822735785178035722955092679482750946066971218042891776858747792211385312327152185801165051520182584318527772904636330397088135967434581557993411997918563811844607284071266713273079833552227207470570970654863997550400520919187098081917256743499029028973313117554562595517141494382650886190949361180083478179147940008013844423421340869980815032280901248053119154588061474541798225800420360006062841377030475239102460520983463970072679737815632673549356955885409555402357353929621144853504331343844108842325546037937179408045377695540590044161844425851069904614874682397995730728268290227971693431179819183370654742711839291570652964212892054661436880846310273224952065888012080542468599172479907698853402578970824737706166845877043852876754454859750741534530805111269468035629541763453429678420770317055700874738466619713604168171509034730586144895600958537894091610284740908985006600635965468052175458292393905870612678163165214062006490308015861395813142287011077942371370174573115992456115248750018565918130710494952440673779997260233714151474312205411142442994958167913546177824183884949038268532686458884850309846457589533087471480124302895703826910336654242424658909557642391907011492507755335725442119100608721584055883667272629311528543746721912610001955122460102725310787617411818111594594536739516297997794534509857914937762254147977995394643689114233256117677898157551945962669502711223120622423410204303217271452015447016322412509813515910486220352040798030328524815244500149193551702833966629511206876743002044208204282224938229733497939293501860256822109361034634681294323393625890319498896208199562119344586502285374766450992677975464453689796762031915189276859286923110922468589394659905690713416888007095913228785470604965774806298003277345441777672102007391801658200366641726712891430604611192194408759667602694723659639709614999392070497451124001259676270973031718156239753748903547864661507521096535386569830465348703747112339531916738642693712882793862772665331183868025225984842792138049276846849689680361422999353672620753858284566859196536594087993935315034887307296568783952174292057576613239009806229717037992781440620696395440576789792801669587985776310775412045542402403283506495083401468548991194495548140117406678629801087142452672314052469619256119511296589632092217318745432209034970472790497921888938994647140316079533177812902139483412934549809844715802367736792358325412832093626452334595997815275140341948979909277497003043766692878836749230739273801886464503689042286131086861511467301551301480048996842003892901425219823626078250340026873929586881461628706172101712144439520785284584856377681843576310834774580507644292262474475671795233203147614443019021676187058716896720121206804573735075751036849786667998558614611056633553110245982739672958597416962265474187273106807616519788299527733136253606029298668243160166107955706076652092481505939400133939530769054101197779970369192409482795360484535374762522537850642818230786118428263171534964412594554082804899421153218264732061592972917136646541417780055462599397536866842376613415934850333855741724025391995650505096783194448411254285387424642885748083903659421183492546847981137634128069291178624505668637315901657496212236110377757224148489842821892271616818774840556595705999473092916041932015327252865640935477015870703698095908083324574705030682373077868401170490263324742378413285084798232125315768270870361012150156572751735438418718723877175646396244867467908465491010663056492081557657729377100357918751794072962483961520322266321000332219379349215035311368833942399888625717511902169877977438457365463217971176059884834517688573825784847365793410556471965026631898721228780414981510767810894190111091609727806170429398575955899479897456225487278571791753256336118701475620899436778639659767045164027420018965319146391885402841052134555358612351186268666135924587540868294197570122348219561023264410628715658639650004113107909641681336063716075675049654972203404141817937969720714301589255793363214959410311541672162689301692256131017373825954051485683260458951199671432229910038917473706431916960392950292484200329278780858691889248960206736362902117326527466989934996983685498293092961098266605861570161469929193468222810164944914417894609568933172188423281382408440283177368455498298678764170890406269782948638342714737933833022330791207445932017917286280737551291012203447461005086728941537727086148635169120792749961824521221241608399607633053070949677089995798988564965962716626450149751971100280684284640425679951622123516772342837080469126509593008882693663650127716757222915877205354365245124350944069597914621378335470084980575121112592959012640326114664505646679666526002108344450082095027996516018111142772519168448717573065357814214874120597074988948059461885479348355353480652450967362727772786377518609331695172026685457969722646440812073924128778529655835811616100778799077919392584950218864711552397566039575587035228601532286462877427337082135843251452929173426936646427422480795846480939018368962803188293064371509661583232856214724872408440090181134971185540974540025186314058820501213428538888383357620818004674462281455709635093124908715863557347739358055897747939523036213788551165851927935925418441983028502643586136314655412733577995551695049314767826004320155531350994751757300875231871833417253165768352328657567671433299958346806847176108210441625017528677841226755041806747602236317369697526895182327257672833184835011275433873477949987273718597786387648176378139401280735077099725880138257457356093872775846931405195155145827334200546715867070933032474997846927819259127319466906161407338478395832454479367189523608644650087575779429310518424999114519339015607484744752598375189469396629691865865824139603051200927380548587480681929395088750100525414868364635178105525142550858259099478747697111480695756354858320504958633540438858563322702778655304222633031765845230022102508936326451025383522621108035609464697497242032911023418669005866344255695969973740374671847470833593867124356040518935621067631276366980923918850647546504463976044022889600383870223592870633690615148737404916854468519128185561882908821233814659000931242888231349550133841683075323725215327167810843869391996036127642158423877344032504141710495622187856651529833257118887374340220866457225533364059687091230777057071279813323376370960466687219210979709759675686063185638993867322600802624235293562226391907634240885698748552972020239131201113914081401996994351439901284048788868523242480518751235798524729798055773970666502949104703105974485545217383784657378276357014917361888886778315182172102676637222025737165993329772822029666845855477049126735233916028882224300932573892255892446659767550222098303158813359689962930314014208448418896676994341350764058815597189588634477554340781096038202979941015290598168230479046113571103124637762372032985197302473483647056658050323528137219846434388776017977851346178321026402214017249960086982697612854990365633166844119827832461261773895405903944309955079760972587915572692669921665559269130352786181684648717063983807580608532907693390968299631283303627107252097427425794523530206592413833833530701730602633637373364679541399916146055335020995110096676699020753107081936984002486522821650949154176731183312940431384640707116955748785026155275452751478093662332795739625766605405056480737416608557213940380614602504957859874667985797444967602331152849706394976021470452486097218166977722494229863697895468900266048904380970675275026112320363621508390371430063590912303597869034820835703669140800655907179031607583224942821545422664046064179062755570889329416867626382202001712784569600057699727465955130466253664652647182700194094567621855034708785592990589849899030450623019840991150680317465567870186746769912166730996104950783248241875414013174736763856831370201286597342495491100632140183354388239852473523970944221595602926478499443530251609996481447433839023444335073395126254716469149524960843164724129464139675895693661077903276927416755616324328265636916681414725029730108487810989167070332646058941820657791509887508420143113893072988930462175122189341912844677487972391675575953207225669965568030571097964771381310493195868345977731311226030633614498296598919236567252497306263138464480518692447335682112559422484588366976667504945669993861530886462615442469919596307048225645251744976635796257365069050556578102190532845112875123621835723986433364795712654058157380817242829628964611174123783579446797601494185853518770844892455717023433444610270573650750514526826243133409958800003882368899503496554361750908811450612994116572616295524046107711279221366827570954128916620917958985677263679458249903037757098253485431349347353620822861968627862092004342669294071761886544732084768270534236060378341126146754828343849421963972831627724380749745214843273245395411236439796684677150681200699149171599563084492749415268161452464333233226925347124693698212766497084888314676102715346860620030235854132152969508781767778211685944572445719852570754639568687274727848944026615147537438926666062524130144369663166514122943383685293039482076360355434887415363340525023572749684319543751359302848905859510081225857045719999936468085708334844327321466767409975499907641163756071148989159990073797460729070540012800609138606298037295851405708442807178775244243139648790632220102960612457301355782807587223683219120292408705483953314908972828543112248922595033732084066886922964192829175425253444346119323025481489933202132605000309589905027863494298649095684501505026065214968465880622162953895380398459944809091095576975142893321736861262104918284008081892067127884858623571919487001261197998576288987008303951843986850400302785019463959952424046161033053126323463502471979195023993034026838705413998426617492496046090099330263729862364549281662999914306306221195681702333857315995957097503351503738137524573379899784825452065563533549598308171401426889907719209012129429678327162912651814500696413480744499406596060093824662370188964905807787938576596477802111831976387380132407757895025711031512339191555368115618376713251869894961387575588950909662814723258637596219871960889673102766380775190186439680252860499129980187788094870652245459326454518701595129473876061872379166855256565793785938512752632945257066229880911262755492672074789942706020930023556411892125464987435347993629173911114640055761916442756183148475122794779812274167709817179381434000187500060116257076543943689466391971419444544021838931696670075209670551781894988039364241568395105970064358573690781592125919533240871158441366381049694432332974417828387818667629720329533279490654889426227952839688114624004606970535848380540678836834405292966477162141993980861150380370876292925179277815640577878896374977800088444086018202438351226983936949938752387568425898407968866378546356416378227297476178915483024396149242526228320680965810668587633307841054859686005243711759229009722380462403903453459987728637074309825893837899554222802672033032661772828379468047513576840491959162197990636681598185930257630808935216128233659490061456298376440890297920221051400687864304595126837752283671023744114619144764754346913812782564255456627515911083350363231607430586029852251169910321219246051754137440629609518174500290398831975489252645189241722816907735615764033412642099252124614573677225456056213850834610881176156353223830408306845678763809773348051889705045256768967282218598774345053278477097458044438006150025958364256312442901757785854368961564368713027939131314010049338737990935488767911862080734814470107025496463097673561285476287182481955581065658983553488648201199586268968968626742628361464402741421070851828479489552116817069964270228451042156417369612289744959626555729470289031528233166944471702727735838559969211394050623250441829214348801816559480520672486781456506921582155139589150039595443356695008019704386701317115032676502781215868684404787986963245027169400911429039136560995841608522713793690810559125088290440740265146258309913736231675224940122096927685294500267525494032803998335614606008022806904129847006153080292999031497762538394234033226033174498643037478323152762766275274211843455753160171049782846768488250633704334965974288504123487790474035226741925438583622717630897150685964287499970639152403292811223598571137446851486703831601987873593267325061628874054875140939069967904760018544757935857612164041379639815180358877538104115975409190015749195730394051134787680381730941559706111127817939480526299466983645637971821212861765472117797605095487440216075845732982964557668522822233316776900213279023193098137974348460393457490992788494308276614170647897939108482537267045984084915809731810286464037566011049758697271474605908119296915125751914505627632453918314246684090357619789369913006606229139051051441401630420612064125096797910808744009636231828029770450812131333230535669762075819327797167020672404961056620895429486103846754585266640263422863921070114488216914054115246015639665934355804450533755897997330979936310302946984601073946262182199523805886688195120771650482525368843262329258534473774240785659544865946230911519838789712350790693424119205841935207039638424159139847243443885736901543172248218820991574866256982990765664241283303504131192010630038051220955890269068780760095305680034699768305314566752385022662908150089793346113709482425597233549521884977105524521131788905584024363185648692457004227334745784997066711004490019671436646020126870977818997423038046699390336725298737658859292535448186618190301839974549331870269461318359226398278107920044840888326711283516992907455616673371084339770364887388136269768065125264137739442280633361990398000738932558670171631546196463564319373913497300720954248317084554472978310959356543717297543416866097169347538244491825093801605835036000272916723946736967888843945295590122158051670953368106954366934604112140954106148302905818250002483064290323917659413164368982649332420533642569146013157262153845895688909946743124085582139169305001355085928855826852139706201844128374515259691536706971639216981406403220378279890543520621044088348397122709829579527923528065851443530177434052238737405046556733703061204366482461890269759643705451454594966234583884542621564608126737663853981529660794223086010970565198376031788198835907977149401875085068007848292463108791213601053516251899147165370019595763619353429460552407359602609409607027872775378418907556825153201998790408410774682308604708951920728787999807602688365697953154444598392064332635936902941877625088769874890628217899071437413940338655945461380503466871454734453270368727328990766555541978714690806001948159549925347936132766137058816134165930392094493726764636289549454542448017003340408170336900359514600823528494613161602508965612037650244293797206519619176552167150512929785904112177174823970448409980927417146872185792463090664668095565447128436499292655122439288351249388815060312113324012173759399905639928858177493878209556902797716337761368562211988737790981963999584885457472848195682614826159853042990789667523727727960563293377708704598616539275398139441397229069203029020931519656323027548848831227354121921459396573980733616279984937970422322788601210759454473942000162152418245402194810253018815384291240520943750858416547378742395049029515397628351067369543535082433153829959175702623975122473953181032892739662465803148657686258355843071766832926300988486429820764549948429609467908532235269898113196332958223682959119535481473149979503496028589049010698781163128071037680165908702605760700183956853988299593118579499453326187606548196347832656107255961855513908013901159735132377778676410415159337643593676297381774531364672084100991261496900187668169414348801994315365004069576103686742444061084093662217091409255878698337888965816269166894343673099791288624753161432442879602007738321820088004450335771242376322479541526500505402387861590398721061622965548456543998958934292732984257277886738329358308644662005906314890030200886707979017238518607718024417447609268413876902175375053314498209033487482976878829102811141513272964686815416433799463945243426032381514397367030780426129717664369287959019870925010967006544547047599673143841185005366299845777869602284403930657123388241547759519817818894506509293540624686701187377494610827253878893170155663241017809121518930597592612260337527237125392993075779926129887071135988783007595716966647801852730210886768033190928295343214786211804558829788545971506838519151192753672695126956810252836550068186699968876911334754197008796728815072063945651711571544158660078367238251109220565329877064422243055371389063306706933230047927960309272416033214320792288707087510949711240125340975360857527086029387470477460470062077761837097132743256445289432717381106047344248621857071734191167330962288651586027785771312411226456592036400742053697355011435393344917774308883690897483359675547623186975124106566917700016990128746482660129315790871098241131561713894121174264037047892881992768789069420065681891413907414563240743375838933006682742087189730392988801084641380049634427134297625877053523484853161410263622234279483542497602714487619610232496853229070720608555785371511702958392979928480267835148040419525518053305390719565777235868325784317172631243212515835189044395821724578790497404420692446246306489228322668529152877692565622386029275739428127791259406825256917290078239396517962872968594180602411903334700436396640862954395167624553636635259615993064178117703153294862316267793087395135956224197144268009942003731169731073896625095529768965262350618187282926707466993796803485374180217501869517150478192554471027690871707690948094830896043055163911752337863815615274951620133327649988620502696194303046364622720043752716444363280182069682797638454639226406297611195747976039797657611804180427992368676496862523955201269602574862598956583773919783685038283293140822076060656294404430470006620924556211329779857441095214796143216251904446663727055586695191797846099607457886110264374111225835455621977195236198738776377174872094664830901753881067262889369817628356139683497198865431262468315641856264640615776779541608766187290723891467499370956902542474302593219682312377567894593322051443605945478583985926164674878682501804481688556340733930900604637827648308442932058106194375329137999718612800890806787067992825996707538856485378750750382712839892959138030995864939465118115892399753498726365448852246929621498326459359518197688825834289284294689698612124799503601286923605179472956103995283467707372393570268404429614046446459980402059589011507679530819875695217085526767520869650960574598597294566146100098721897756853935298467962871056583261706119086734224715720208019722612037658963223094449153392380993382403447357144209495513886060687710179759676243059283189472797191501386324269099581270295011729499696001192516368145122049346995090127975198617372747596661025005922361748015886299608250825312302214736909732785956530086745415403536041483317735430308713709843381061651419158792511937769112790713373298257494622897844041128117728508873283143433227579578999541298924454260602101294725549648987201783830466333139805387714766228954228968292348541287685797533731051198213177013844046307814207371664051250397462533492289992904552888645874178928947160359694264404476795723355929085897848642332003910963330870636305496051540806501948030616055717879003275797071059597451949145510655696813201348470124343156206766823076735808051770809912155832018630049836607635319719652781721863454629461194074701861385454476853779598444961825895857990198093626794397711760241359152246175056415347991622054950028163972094216310778333570172651219166109257489555324031310565564358566264096550986991801906055379182727600243435466003247257260306061369182934308796319314655526021709668028983249954123939371626760535217819922701360100120319841661433199526370294924576768834128347317995057691040561722541042311107140129615349749995901973858075165468374321328705142099629127324799140462782998884741132257865586526498293972401089901945438281184735552065761221753929387800545273115748927517446999418584570095013278600130906902266064312288620625277555600504081213557793268778096140303192947737419996888395765043690616871660429429561564569521740519559299146545887490790545491096546989598395756505855657984047866172971480315876322146117163580720964034591986583209666350503352318261571570020105933386354092348436706872627721998633022916165943508687479135159948350120204961408301557360867912398366498840299361771953123088253791127620692037348897594637504945944204617373153557939761660960451853128195568061313497671301977160485938623683109888060747621629245952652388941613208408462037108418996019280614828586201773086048433518017415810287170767893205620500381282325830276157199119444035766329172210473038502027708068886854297146823659994824168568976404463949606383998727204599566074937735260472050899051036806996141277303186834717756311128926682315931384607521705737740831098575817758707686874924891763593234459130101916949166648448274711591100856022690460795699184677129940812203029103984811332118230345665140213886658888809583160787158141923880295354319437082692449166877486560321465425744142638621355396574604497548618370316978452063191891309301267608775312577341155628771983691424854849777027516675368072979655201435313311675422881727269325649767121284405791163401580174226287955638864352308509870953849965740957701123362054373126648398730592834197265395877367296576502465423057863301916288506906666877539288609535443937986586512163678345229218635759574476347008268394206052369869085049031572401708561603641584887266539445795010032256816319590334086668331003599024206095325837169844502459238167330346651499922800239857407414806830081870665302194970631787871113245058480933340189880647779571636085021847259406954590087593951848554487246899901423313296703642613090465630686182267380814779782619748927234780362326860438727013920706131719064564572849417423914063250530009907467007358505116770460366570334533143632307060594873962092869939668982140355937208765897530350143472536153140251975387515293094474347048043526254406206804252767661056196061061674191947934316938894482194268653861050782988847065635521652519558679373818898322053297242819019371942875867127033526513521405139927487322725954290794018119603465903521653065085233942937620556130563680436296457665615534021508186058674845231555523313392422198608770268243523075922288901117408270920956300981027157817272526187483594117882215441060238543659442809276221918010542945009926327274528539737869353636402573637767940788184954832146569406638886561785665805529471854692849048673435973247539212392476467986376635631035396247378621224368418846106210587389985251112758316362571942188068137319141886868353028150730853473548379246907851208801094287144936265751889339127209670262306566082793061167470615743023623595822140044537032839929330127495904985724500065968389840083299138036639548899876511536441649315654295708193165054214998440313524683021833468355582199086883695467553164994555862567553705547453382479283575054022839263107707248224161549750087415078614309084439120738141954716635477924827065839072387244663549161919358752403315626305164557019081167171141353561664181299740503666113180841864879041183423798955814432882222705532248486031367837905358770646638862470296693724989712632237903886567756379728301829913766853927667181582229763730811383316091976547756375495268684746060430228968185792842235663090592381607317680176398183861807842514891321749549436606292537668665430195510109902510594305183087017195125612823891859106763593224420691854328510486374659312456476612527604497042034813078535802522347756275397805563495971655854660692483936233803678535618037561454363139879958074903067806382528475872849006440691885675691290113441253160864148865161573694759019436298912432284423381251004232771858107864413872048519722246292313021197644273288043845630350173148283510809947573257213932447096216261430133374528976352740812307007044171371364438116030885650232733601800088522910012502472653029263466778167707209897089007243403636217035616596104594846101540295191991342220213750924465448530987280169688742055831982742985033412439599979287102244971611218783602508680979085832426159067009112029290319832388809793632613096789208469860466649726047904279924496118929798797007564081601943679395473131523796143698387986357125576357645726383220596278114204345608611965815834033318796121437576129949376617708755280476295392704156514230939148018491879264116306122833306307782811455507336321779447362609594077593847833976497631257174698608306203615438526276759513569133020246989486338914458284350961780462801746032844582500386307454841789800041160964735935987580903920523269609405650626021212605831286633508298401370709690411204395378760489225065491656211838620997150585311265087357992174966799146665347120611222738701690995160692707518909830389281976444589056231007997902832927038798892007290950834755664767792120645490691240352906478494978978234287595503768577673402231472152565675446122943745944714022832013792149252860252469792181383404336342201879738060355735289965403380353653707353421074515095563369810728980299171615592638773387750510479350643398933701867602644339167350721468705376712057826127708957132087627199331602402987175119412045658771357297912182169753369225520777261153156672153322986482165664121627842756913968390723144607055971610460064968955012483383376612494367398479808350200276076763427004412858732653055271167012155619464908820101243801144375413914243310744856409134020798938299971113752151053508447858844179025810750383466466481956285129033129694222181389694138066222871532322474637255235514678812745199810146749933442617952645419577410621819708173674440406134285921992884940713939666608808624733373722572622764496018163481079283948811899876186654060312924675877042750577073358132990009584572139610957718673103756123915886654129905185492024565638665147896865669914711158327013320995187701114540444738033411775091263813076873118934175412331654290697182519235686270963217258777291841130151901125666335129200722641527701456021394006689900975659305326030809626367762367334633429871491243407336332777560160590361811758791869471469320032650255415684214245316269579400257594770671819307320587724848629264431098286330965998666696968888521364547227220028358760832214454281068661923941725524668172901725921086146779579689211114666083995311707549219289694470946489452738836945597119592300968170542903181609831689756536032606500316192324012411274454556031076074688194240579476314051149408066132776541175212919360630256716697244629303081516839277753665472745710454223823788641812961267481200246646531503153223424314644577507957209591398480330107845069355020092324306515135653622755163994958964640167696081664591001648073898657992631115756941854027983751993029470250544767288621077854408847311864335049965319403694463303599108485518348308876073603878281338935827390174082233551678602991834842005322773149248778268783579939496320793010128624608861684227925501470457894508928834332714256799278362907650719534318012317157691142307671390997603742978553633270951453479472231365704853430466852886403620184114872541792706468608414937224129930613786410749053011828567907853074322189114638007563389071243003436498252113594650761718080174170701685360968368610587280881711789978970016018463122099042277683553084308077672459431967630096885522208191366928550075956197523527303410883658332521791762951222755798056390724884673416868538881439653290629006782695034074189247993621611329826327854617617303918983866104788137911463922840333906468776592037236062641115017404053219739045906194998230958839297754495649231570285896163115424320350564633240672554112048688605506263158475854985118873497729248002173250358886078180249949764285852218645314429459514987826039019455081363106222681001490176832976940738669618476924195308111023977226806605330186262089069421084818380777659316010179363638690424859003967076443254645029439579226428398780463188217853153122760729602767746677826528338325207554919182025487802491972226257522746829360500451080833431591011980885597986019186528067162394779042477860323420063357867335289183423645945404052043850871383611084025273694088443278688200472569837425167927450315900220795437070463704351483204838421812070442139552975588758344030023995243499593263887263062448911336647861110723983264030704168571736566134727949698413152692728542834120888343553505285997215349629148843678079269500027909476654856193130002784323637843278308193042952165147197796967222720544021735328772476580817348585994470221643960894949208410141908776053401195934163566038353604473257049817868649179837633439062046369015048071445665800116541035396255781881713732589485527183677284383206778564678982382943688086084164074603681991633210745995864040832643340566140698955808187512480553440308771513051677492570128429837399152428819994425818117682981393601224740998013724443529573529735270432720033147741252142964820462449343134321988389231038909816921144306512119597513028305872515395514304845425952073001018782786417019565782237089637599663818173833396833485111736443666222979012555134162899473840181762419474341889869958724342798687979880319969428529541750506751254539889581047258089337255780534957602244830824983149525518684590396409087519397912786227816870787652522955488367878639775286812804731405176572228842929880570992560524708051502350922082625755062782099545660103019583863429559189114013351418655849643395901688583284198968142921226638366854205380899542623500524716682256883260707463512384667627052833570900111190282299885382512565818233819171797332417090645170427875552231473039350136187891116442662848163133521821385027627820921820598321429029792775189188083527248486368892875666337017122587019143877939909131023335792121817420528419188664569260030763644158366083147082016307164406822057724480992630473894702698201294794629838598396156722312267439648478051801803655092426851657340427411855018124358082755322072095586621674439647984357406015717464771304771303424131522760135993065726802061885684362257959245790359822755355005970933527339237515949875373197705683127879451357169628226764347379804854820870914510229737664270900800592646123170587069331749968921716878113527394387605808566307978340710751348104780948974888661629556059251695525101412055323819795419943765233320290304370231724770937321476676245843109803728035867178156096399762253569429951585346910516635342445892031540094404985908313499598775096630332140274878389770112259242331356537228379530475112500151418861123811849032859340083941719537649563454257156792310382593271762352495721751361578505672569638536519397067746578126653611264768644427701084078834830086021201509130199941651228575570878500244187720796385886173083014865888322237012693626642660191648752779921245464080629306922528052368071108430325591039085102718104724076785831010028497069074217994777886980015415374899271767174694160646077436072559213624678355800847399015994203805060957060129483319357567447892817324730044806154944006294520824353310228875460335784492570411340227735547747934753583970236901599154602988693368488293026531220481582508707732238855382560879097247155545595898930880648825890095254283313842167571692086529552006795726749969148441066427112347052323472406770267834342084676730906432385566637631757538277782490386637955538325541937815082080959225306988509191599591977531932000533011323591609761147300999098941910062796054691405293455105254559391134015008117995775893665455984060727449672112805060046604546111143322666653323654465983123571528319373724884839703463936523258669875199150521919679240459165207539483214048750464672825347515110139116013923277005273756271225493872885468866901748073816186402336314665010321714375074911881306988641324222673376316976009643962416382684358136715944172392444199058448474357701967563083041252487733383933939349902749297744820361167837197903849158261847737983559184484719928452918224137963157732694289865760468103801563376427627729379947673188782844463481173665382096915701713403558958755446389601980732699907733838567358780729240576153889775108557991208508325357091838713369438140486545384586855144761945917456109124580050829813760245819201793667951294334985264191792773805094977043534766827103113132067137701233659818167884080967639483722596294433171851464114898361772690580292205781011483437561264485633355389733351066183327922953848033779433020257122789844561640678035243245100699825843489270434547497999928812925823056889463307071389070492387904090934532134514509458672189338218650227883922881946629744370684683410705587295591336599891635010635086163082302299451160614535496679239149332070449246187980742170707639259892007590022392919241291765806759426230447568784313194219625835341235282248252483872253201096980555501112807416576092195568981825971954957477747211703018847856900427740527138807289096968783295278299134011622773958313659947892014835879906049432987857387107106831161249662531495080902815707434793844784170975448076665561945532455290814534150285430850578246440529516178566663175908058851170026647534592345563375564455068748503040151088185162957837498616445020563579721197884276149233645061792950327657263491240926739010439856391587870211410539729269031877386246658238719942564632969367002998737211333725438747515630113678090841301661755895599244400386179832715643625652048933670383981157797964916583535620142534774149219688062184726528724515734748519654529246474006603202862726018277637999537544465126920317009242763602137465741128066277186831350202840863873480882095575187784379342129577517800667663086430725579667434388644169428097047566321838793214658432351804746815322496222054087746001123677121870066845201856157923825112778428221403062033105997217664621096303089015670631932292446162873085455186007715986123574993923622589362128641790411539717179449415211833333301694985209564107559689491077924971709090845872103693475857355283392490386418632644504097485766470220502228845656313321062486595299726077620327871229401723047151200542192782110838266108925220161123893482230028006445539759803769204604069235681666428368160041097945676109944721874249897706948711723139539668343535492835740951114838120377944199864595698366855510891406727900046945513086891098617018042258848786842154090649430796816240532228803928160322837773435905582344326927929743046075918330746075999124198468735919270981279637884790508610139117111007752482631473171903435264255334641640734674855336917437305855286178403582378269570736517660401396436612509836192110360350263399013381761991537159118748823141932488156801999142574262356104188935341149082618352912740470197241155514781671465489544278357957402794787796597153746548583967892170302899434675526786373692144343161946733914416820462474822639860614680678542066187307972830496457756881369516279696691256984699866265007651189958446406942200572804445203698470892738365099196608170977438273672107522800551400640627551706016892885128100322774930244192472082424225708898857499143495418980185523501408230571781142475747755252859981809152656649228415164004334051157043427648366341840324060494393288242640233533425519996687095070385634209578246401035280419036447643060254154283303506350934232139197360382884471395719696117506174732499749457046286675758557816650462787545987772027412258934945521704559096875730183526047050088105239178277657885304139723071807422960173256994734227356294115616993820538576303112512953359014370036986488010729071415334817359752778318023444308759987195115902026292728593612101967158327519805170680952032764516713584539284157173143805607668144028584049221513530326061181810088702294472102887380443305201690244382688402501970172514359276250640946713332627042708624253068419403386272427578314337935220369928502260820394036851609275768260170223300575975577368806524537173479710204746293841540629497896434508824766518973545038692652498987516190342109088590382201550896730687862734241957046160493008569851624143111854361568236699971126180831861536416095022116980353885864320738219032095922083191773352377604942182821402372770941169960701972321565333987134891649961533589161960692469155429144374672790498778356019616080527007315262618037585158477965014518128648839759668084056213980399696902338780524522027052916363253784568810399386408882441962820308851492448223401376638988209547915446708935356866669303114405181945292646851867333449202665884960697233941542421102671679682241629264449839608640185084806774863460405953852453699732170510067660300925329433835926105689165653301091028942429043009413177644651809358824747974691348505674442749963941541072148883991116279656537059555166648905337447400638693828472852191861033497752175548473093519528374100801313520473108918995363505942252175393005930144379700557896093035143114525132190052608768441568972026176387364959779576796478134237992804165339811729942581269483333132214823940817161055797381639949727961064891846205575365781733095814291153845991732713322618633116085249043999946428437451264130198299976877631719023553007539064649538460078425099289908152781981889520726409419787218046773852063018988785124423627985280830537534588469863699475569900492860731842712305564640081457081606954114700592711187536155010708276151501732894848473515115796582915091059847994974907290230633069366511920609890194874298429684639150871900330847256277733462332811434908651848432892709784138059601843758570124184972763014377124144596144154860780135676874495336594124150413926959961855012481914273331417558190955913287527376940957178906041638903902427049602133405143856405658967119515758616120059920610513934971598412471451029054575309735290077897910271736311876161565255671075883416478305105881021203184892762728842974043278674316339931574339211547489972340348079269277527063642461563640762975876427232150625059192702116917219017095920838529933598415379724806948101991183901542689766707484975927416766942044520741008847177623889413234755024221214313960348275999349785624962312669433080461796385346163731803615059367731172660529398137415143422927019056668051134662217627411258696948289966179880864197453944305681257145347732027479186400338987580313912755410174433376427541024078119048293414458495338413940777572981106541037144344435799006431606642753907855118121636891244900033454033722640585113481399294918505482500213342451171377723787470690240246686564569281017972643060510322383056666925739766502501232051630475829487224049306420891977490924535439771043598298542687464025000019292393333130418917826987905812296291698907254057763897713723412323336218785312484894771357021297502760122164479331839272332574915022468550834361905437264724596398642475005290511973426399828874364490702551445820597404788736354032729190860897201295899315543390649314562811169896493973105867918731632473091613383458690138431835183281594908835945239196735715942907005340707592852610254376548033478486575966625445734665609606693615573901441291168035881963125515239469045138268567105050792240257670778597936931601132322421454359906867412714729655586560368442518503634969884081402693295459589859026968887274383962852377033097962948067225241304454382232806902292031378620744496647677660235935460710160622367224802546345372746043772780710871181565379584958112837619216845315737853811135729190526978195154965308606344215476646273673930740905324253691040521628602737235727516093223657835583322544792893312356047606652114696721501646258777045134732954355979451704483402518410914252609880234163753897981422741828578465332370269390861612116761412342550192917087472438252159102566177286130386165773320915741322365172539644038301299828856192178148391881958682240779508891130697604245249838043452246380327575610025819150491022592830623200787120618617165187999433553626648869154796843082981336164139315054185950421345029862185186551611174848836679394559515660620794052850265158127111770227583853458316240747399556719495722188179416483168905635351356489434652381689798204980139129646584771694281010013816212836401612564149060726744464105490694243862109113579910911372840083458905360204063029942293894946380555176074371673867737618983819846452103069767218845872371025319021738006243516858114908945123834128895730180028648969196328850234031589693540609643242615162715353008465637377942921952429762606155772235942014324635014417159836759550793069281836760734278616607245777436418432531098353272866264173165688606278283900654276160889003076371790528063330940049341349503678790253031745104555772950395836487503035238524696625731991734097356194436190322262815669458014520467698066736387300869588852979231417636020870025695025343570050980425060765589450394184104698708159215315639723012382969060541136750162653272238623303479734618091817384843145110452260170204999233395110734141207344653253610940472678983333688253940245135005551064655253595065659926395418171038731959477462024198263315680952362107795088761204397699528269775222704184713112553803296901708697629435232237167351149783087745992189000674138604212682244274272578052231013470099093764301299311001200813442381540443109198507705972772679036520781817167079511210976643564834267451057848403486756731816256941872341725799961444195599515660088003351713450246089949406331684015722969793441202558985263821859409501007431140018547558684682371666443034844326112117522950953704343199113020736111284092734026787955601615855554753596380752800883221697666601214343407440894925538973734243587088750859859205224233066846471547928817160910661231388122077670802642526881589730584444852152946878827624159864318383562629417658025375018303250130614944755095626419119423277318027701259997186538502893210090466892315380849817375840538982143060063812181904214076055782599026178129330007401869463879554833867011036174058724287407361575980750293496394702531711341172122508324220629082405350049071176577691253009170579985056354117931451518772670951235588475549896499621987751844860439088115215103946550885620925228130574628740467968870786401194959784657525018972108139579419396469183523803484118578051978760108202805991736562238981430190614632327090435314980508158395353036884765885629587118667992207636882226836979089423340334440426333676339546375785388755438300451611130690517657313601223630386484821650297464481992953044948196923737683837927933145472734624874916314765368113844528798638639033581390759162007411004538490066279297748711760213820474769781036728770505149793659217683338862123060543316236023859774232760403403831333720861684253186289175266727056108033720866257501463373456996117027066880287130220811598811002375389069723945420200576102738108333443937042568453027251030733752535921569653361729638113066579291148326512041137578650719996673466876110850780742552113167165112980918840770438537375676227714699377428610250839999797950637357578039524722855848747587318747993680318954534660024267006840713769415788816309249888225138912840735152971513729742998671464473369642149811201857528559592424283046572347878905426712711018314072449116165238984233553260516064226871078610603178430549632269644679837430408197171437567862356867203970535484930944539918086231784858739391043408543580019235296932559877649320830750606167739960932837606158480450079189074342696340170815787648163084249383227701530690272034926013168991938543160084370120891954883360826001541101884315897979439853665104682116798797667698105201164704447528190540810159318074120235708164304593970341801529868203282609746840357764371763655123780971034492163598376207654154637340729978397682372629939321810486979722585466242357550097586482983965058178223384590554786700534541847605783356527860221520237481554755874941885290863048772403751877810027095370993454103685487851541534261957965901365099510890208881930351413657867698622721291210328905887234794982415653770760575101455794257697433672545089983547113329645911297465255832253319344701704658429905687884170577340483575025771280784209094108074524160117788832400511365365958873245346291868550072003778672156380846379332708920145599885449771342227662345346902259283614873724231010448106167938970793246492957926271611249952937839725112499049228622002157069752801445146702622280719515038236490854842475571979413834723007582021889666441328922193565939801148161097436827338998138356976986279239128621495908163323856743782065014320372624175252148233988306147602682177189616166962174615273971045740874942362390748760453421422710938530040248119471492019660506323951712765788330936740054350637138748151757221330215659611732051006665699390734306063668909516359348110476368664788962281490426544983555142087722414816897063691585876236745681670907942863445973509592294309824646337845336367960417597286758287568429019472141721827857147771115748005483511488566076387792474796016172881591016058084508083651451797039207239032840544557274613612023929296219176670509967115163259008812981868101750411993913829143888676468578595773152619844716430114035132971643440919921672180032406088202700102138408804336048821543440566363591113257287460353509442593924911341526641536908574777098134912230905708221763540548540393388487373652365401309859135376177327874311319049413093408062325137859071706239627586472351146221407535759623412105653238009200752683363347292055089339038377412223983829692352848905205951331409369297768363607311080699366534248867202990405449779584768474123159883073092378841028886475121074546577766475955911711301487775081577632224578518504750566602440825653367715730870430486178997549686248634450946908214731451813797862896307771983505951641689728676449721457948914049951385906433051074075857190670419229225206752405579167617888079165049839984488953678588408362793301195483834895226515530662136549045969791047533701821451740112641656588001137258066984597329270629796459420078823019068137026898702672227988050200903929035112089454818276853531027340037824790435810702411802716784923548519514987561995521656235009667187946268962383068826802360843785700270897000570327971176753733751661323718811722652741006014936369251010295445209380224690890669577448946248795549115400864029685303703385722669397914922165236902037822361120635467167269869413062422753601598261359974517460817068563642327003494062597927786552145411360222288687735739847395686829467843550944181010913302695812327575815741146811724246157508684707172991735603207748485346415599143713520067021950959612588797874976361706737573148825084289754787321909850147718236599702936550305450679809769481619848253047218953272325026108991797336791577696479345025091251571915263996249755787412303543135940137487321169915992676304998865417274051727335342374853016480407030898238595482739612137704551280880404477182194376092910623549262483159723469970638080024921134995395380563376008546368753083430519572049421533315702621033111758600713647664190666952932168801451440564480466484492056464322219806399316929896768878454588692114146916834290947257973266262995983174168309975301205933028655154216984559384184835152218884790533133453718676607056311192555190915537329688020665505646394368541158621359677432504602648600041273445716922164736822913197018918109235561317074505923382610174931613710098769148314773834650649443514723302286676015306486613745442113289097304139346684971578676246982313595176068513109314058341860540167931152673685480218351656893047775005047160423904031036214951196811165372877657729485733011372726579154108418422768938520142903335469804476515582270585178911721072543768665307498152979483437155531799535349714788153444554484349265386403139640616917094011806498040181093195833821766620661434097081485757947028161321102340785833838660420975568275510450176796180232042387519666675305372512214984237181891579269501516821264167110820037935247241407171804519877468320357693087728247970322404833021429901304369180047229793787511450057571957302528643223810673227097465463773519878787843437157578939554878467232428420266165587590373305469631155525409917479179495672373442585137751536325456354422357328788750562497537104372751344685773634202472067546763973531638691743889918892757606079164919675748566636793411191179009404802438599405024625674755195978878301310219374686360413131553969175087271114257866169259368636974290383219782822836274714043407627947562427175333658975704874015608393032209131331768435475869795805754637331546977201754396907171772740188216585127486496341763822471602797885410947009243888508001648695348170824780551535037032341195264328842776857606939513677812021810548547875595724972326998949780776159925856616988559787531749190789528711004717410655943796353514807945316798362317345249629810490852399048439533190962200999087896854874221349277371021579432132991369482312521850192047600463600437158821191359568076962955083464750151101636331461227252380320569210699940522147062161149466095476450887994873451289900262029026466403575421767766601498137273204506113997817567882007327878196464388819683221901017284117507238935264588898376254672813592202704499100781962683267331361572901955030751438831949156374707234825599122543825982174724667315481855129586697833306109236692110848850009196875338779222534890353305510241326651970489405681729959899660621335851545650116188333329743482456186744329083525430165721833261916502972068036625968227089155081626873274114862486425142418257279151560284477424528788063708352232298733477650719237995190639738238494786863869766587706017350548956017668071296491294154636896545343849968224050516535695058157043371697999312963417260115633862626313385056412803597397678204157912912034650371468857351705177539606456893296185111105762253553757902042176596132689862258109610063570166278466503231434826999092040426606018368873991667967816503362705881142135814303659134579283074934097722147231353460622094838810019977687482197908188882712698232395698177731991094589004406205171623918077064489602207157966245853406124867238563931640841194879033078712881815064399016182159214482960354253961774434611639839996800055870507222973895180956021752800986205321737468333371686178011569930061608062460363582392037614356088245350381165567151036085738266378489218724456934063029631380866451237271004928724847346037208368573042773821008769060466567326173357101424528130797905618684177150173923661050700989302073282854710482591732061269472491936998060388665162613863086422595518753414261957002054155934192994996110172368902999629041267793950371305773407481134636282875650717550878743271059344594838167675152709836921375222250724463939024793082876790123685810748610313972648080731497644126338633616330962177016242634999001854181442366092473552787323208839053621571470755142572827220998737633580383400515531552837025195194970809792506704734532899255705778561329567968643110460699004369653119597241314992067065032975037757045575907662742041171109456694289297823629037384571237550863818285510561621564282299898843142476583243920194458933633597512981718040428766743339447402173110195059619969921003115539356578934733067847449486454297275357819163062214930326015888195378622158223499273757304469628114589450859082638739325594843519763453819050788402396580537283263858301636538024411327461531255620571638711976368141357429870485687374031723408207385449572439235685190456566489414702310796878786528536623825626758958108083741158148654741010567763935474507410500072932615665978014449567496370435518610311881808082202605127284797045167412143863091743642031257584351477725739552133140311714737488926791909479598669323125239143787225454266605064807882811512395654376220121431171233645962862511838280222309550293704022694683379523985654847042090209656974172637934461521155898593465463191558700561514923952459943728748767428969047843260172836171171153363227705449673722198777275515116726116857927358007252332897135428731001032973565659695662972894931499726820149138078805798899175730147413658376428744331890377541690452889563030727234917730070952239106226092673347707426056152556014105696077724387835600552649488200694895043849589556880854227511486901383403995143593977894136498083799938905448537371815641877498612032622257836336880452930750037463847753840602252461627103541255198137858297641153140959093052742772960615665530077223349385754657535766284527334295936599206847625546260876452147991566067604006920923909520982247268377340833477163579714223869244222011526776635619886122413739476028604519085327384226714688826059612282691020754437849598002416217973331348717033107615125167836121599082992524668902145573835819513739860113404388220651923685451542386342218565431095947158849975182923033830044329058869836216123896690889385442701034587411156472289511650497573924948637042235109365075358626921842886710171071637013278259163639807093361767190558027200078333127340185883670857653394772225132175446775683832457568936604829481006045997673100674934249612345598857004769571830661896344835273443460880760516188345555568043134207133834115160744965567388780148902402193382993443623549636147903217736198149145362670794796916661848254490429536318017063766572570153370224793476303831957780675050764891129942024231334948255716907327439055147111489294748842917598633540843279967588736628091551959120536400472768786717507455613117145208136433588735434893017208861243468816166858868046738972271737537356980509325333125225000140410408984643309356246936140673703483425408200159735469416141849626374063164938225559470053678497462020147778030992469319636793288397017992382795885160754990696306963917060176019924938603585365137292821413211084359169001591618760404733296875596808216600381335648622997716412461312940234773854998615497928992116116518073949822339412975859953122913026010306878308273335518031053892671846063905825321922661742196500830532519733006505300328896588000572315215003971378368909608704430521489568367063666751049104158731326483821836495358134712292866268219381172591207418404666932711513557101982999518437252369646450060837056957505072683963513745055689459261229973127513089352665604056111011043483765836343469007289680157131720118752001519285644674034637245529162743337743648168671807506630686346303073358212276013471035266318962708582121068291451762744652693254209678876078920807731819311704879090296067527849860004151322519569990383605311926301973007313662155599043451339493461849597100523951157279384502883185303594264725886209559470466700894180439371879196980148455129554343435864185960156317751572718636130889300398061809628958614291161595870604467567598520060563015119813707243376900081928953249158249906808172879607496407335413489272386588890874370879019634787113633856953450469271183190940398100718697532940850128291309397168150359706043435655207874988271753464497179170047961510723392671080772321597921444150590855202222036035333507030135643930124586869659371165828486272836871288355592547788144374028136075660719433729979987878651508831230637688886194039366126473722582597164741385686947450805734692903743143861579185893409325689238449542817127207761480507613117661928433983892407480843279914359456025076500473259671145329145066633337606679138502873895692358325731199505537081541769881918224355804389330028714012598523329563577491660590905263872641386383004979330634131491065297502232708523195067053284139068603357875658411340867265187417761546656214742306529124459310533418872626956827305769930446449875726850492435833121199797273867891022720934375282305286111137801312668909679943905030059888963478244374689879423791670233957570289400652274946102869039340916141008447696850073106877783165344939199158030836269531779353889144975465585888288917637928066952894227525655241506337437367330184396626638813454193619148782714243850927426494368712305154991490041736309434926574739663830409612408968300056332830669554208249681791428840922826350450767341209518951037674790672175128091070571315398111261774988602976307411804640798843273252819225520562737720046040359321440608308516030319495379113961656045615871533321074041137113923500976413156732560935148613347881608523345832320575915657684607045325035092817825386460374800606923237847766360944734429364942396464533505482357702599301875830612776210538760042790089725401631892830865995602084041317330766581431237754522995075513139143091954397314397998275007835619254265705188899804162396019349885088809896984707194942414422378065566362147475182360571205036984163750839240021780770644872141111922969864304435500528620708149041144966764470559170007632918985259517088470845902987908548947001463008768177653514043565686891190432011767343455639949455829930665655074983980543770000495736720106345024816229695659385516413126356936081293976085201061984549200454624142100637692578784110962230706544726829634480751886627995982509129187239393916640390055951409095123627027538875681535616668001969435745420236796254101050158878359441651042719017702359356299106215245610487231856625396428489763232106206531549637620621166111111310172956805256491324253042581209340055430882973715220880458848961632094814226136308737206476734823883872484151616754058435335787228915663101917165713003188508664926411606453424968190227358107019719415043889708713258958344689987464845789459826944894043115966992117889176444485114353322062896093908097900419974806442941116578426172505491033056433152561048524476829330536477774683541166085503496394895787161390191902738917033383574188891538127271795441345353100402356425255955745976492708227481538885269932543415495029272988017163341945071434131546685019364329786238965501554911649657889707129621688534629686838404763076266262217222724335941653445585176309035082814281564164329703488114743545645065130465479131031343280709081178015481100492986469802221619900474084803926906904795718875955636640171611225346894578503863551346645224329772491261915491364673767174287636001188881550605425907117180092257532311543396404600732850910520277527345186464850651021490167762905786306094271830870441433518901494531851315840402842589567073013753536891697125282637562535536984066654822387810598847636909967903817858887154340382547039878611806787611576675054941669689714564866311217365431621746289007983555743054613582467949747638409245559534801223540314761997634040314319142869252728180206707388979416123366092246705042209524181517236785955670803089830232945830364247766238383275836298251563881615261705861776218025876930970880842410259696669792759174262495036196220311079136391347888125691958949588704451865171722973213075117503591388597190052374836284250668600477467873999462846380143294622787306438085467469242869562572300099387028285021262938522643720326605519100819870970076343933632010332199672402891326163763350990641532991839596083910329229887809984723887252996193556506332028354497587298604098400827074339399824621205958518405375284632102651216266498732304741817843704673467653547734666504066479952589301117413049714748210736656609822572466515580127630607998559550128493374282880749289464660415234470725399742345052935919769511052167577353950361675570276445562467208292082483949313405388094649130463929095219070508574637479005754282928661554599178360216179594427098431605282142592881439478162425988448206976159886767856216722815661024954001763807899684092731262125558262635790041318728554311807511560260454815571256736309239956141615828489992349872728826009514203321591698460383180243140069125959046377534204706935199535829702105488464221792973782368063470501545290465562102434128124685532615373670690141648062543955484622912739127118619485101764395385621504107241738900669816770141106895677341380532577598809648578496913683322551740131613674374773398418181701803740080087610981902685034507401919260552216516792915794898248950688789284898298848353585740426161584515143713189375430127933952231617550860542520579915435740080881917093016182677489806784859012218989823953564672031168453671292733349932388218435789524549836592725311418776742488886120845274444894899039348430393385977206613312679730831984411605385528459076767838246049394066827796411723326725311983931654326072539191022291493473078771440126244584798954805747889341908552198484683820458432056366267128050416611414487371470047721652143915037268547119335902763411304539073751218240676077695479642138132991493379687338118962478342270959335461477950206924944055599342343220364367053855726702245352286663183244289944051390720899587181395686585844948740846292887941587064616993297821838785501479861081805593986156230046443950431862476817318091380896463068133574667290674085941997448595514043538567255303330511893882588534084907528608358996135764747005615174916555459804935008170749319569452180001134051046034644110298504830599485617776581079186097104193115691220208055296985626712421256165834868334894958084562227693820052571566208995280892285130091232720926973687834976777726514081029228959333331794072232634565995643071076113602132704647652269310428794482288091272211809042461955883722430834513193930931107046782791457454442958250542391289224114403799437864367864838018109094675537451446397036425594693134351357779866556081160332889119047019915163214497911150133498283907831983766768463613432196752529272215711399965662223125420688672385006267086091626063841206294593830142349917359551621208494680133174933455097028743257805021807426766942474863074916473649204102474146969024323819714910411756363352734390126406966482394942821429281926144837904650720432357494664996458564666057820021955997761360892539593674415046112605370917468508900839695187089775051652853607314553820509963271426705567676649584698603517344603927605212724648218345263633500867262518252077339107039564036611573343244282353578508156542085613400859820658025384263376283707112794715843285064251042990726814755519844487271332750678102407917283340102788546240201721729198674253556487726830463815902074626188798553383952750722180405080377978883364968218010543412973923027461891412319626336532756335185386063652118221782626670450013964186925126300835185600159374941251562507315121222133081786227217494563038572926232895397938398652695893087221667946619602674013166923272863493381499870718730233861767620838433937456925930295994667655975091996451964521400568127633426672907702135891136131759529385606357934022794097191253926062689382993206360186535769173150591199582318368940533496340006593293679712707441170061914566533578900503714288521024929397679720622439649069104256995338249265759688399013816594923366738698660910016672448897011890737445854629877488602309588102578231801444070511563574723961310622436214969061331289849450321378005279521007104855831805931177215786467464871953056388261668758788433996559427669821645619964652569759390112355666148024599723351879684351427496686033939776035124182618071911520676225353363832595105253871265645177801518021443475513220865051203874084619116886618197827329774341113172168679741755532487866835486856765827381765466256193473451888358762703341725277784565205074596110418064887753827284706564951399279431008463789361730282851086289735561319051059388131774350346750680529407066355200350111334624555891589755963125072657050116224123762454547838426669541103591393155573610733540000050812668289966530153599581535403112325653510816167653499698145980134572159417410971917830084463087370407523762329233019102487213720730184635104793885161257697015028600777501137438416445624419689217747886979632713770538615829267991879678689076316803398353284935692388803232269312613742995231010895721805477565401462636795415462497583133488549730241590987952010929834537508537664553517771793200404553746728782238839923607647984359669967862284038166084289016938600462233115852136578992054122145810715120912415305568872412339502661212780155880254415345426741798311611218966987676466847402880752780087594548104502648218875281168906174969108848919318548914379998771970677579915773283860728154801919688048397552218572701462129620428430325706965593347519097312857782277218312540744114849043826077368169736125136780246262982282382694750479373831928984701866676673735080385981329443336222185745210014475621745531733484935742012679882399857895168072956831227046869187772404706395197494689065292542140348413069401090577283656850097486986162085418164150145898902552181389589837054255619572217298163758628673494793774814332604787080447592669617643446957860545045360122179416924167981615200955626213613438183833038802148309881727845455246028930360142000486148138731796630376731307629739580597212298058938786709898240516572648840534260302238748498749637252732666108101419248842426615912567536838996654001876308933718336004249155741047079452071377559630605449146509072727326567307388364479065634249457491687262780662183427069014113527356370160487503285639416753053636449909777237853978684614145315639982223038235863949383288381525774605578303163535263199042805677397398289459994738180152077540586696120897440041501460637569832836668715328723258075487209959495571880519859694371112731432333788956169604034190789623426726786149464849752741330328566125607682128756739062206973645770596344364885503570340364410757106508554013403721951537461454666129465980061954896942410975442346505411261651049113196217216064220600258342206618994772670266065777005938436853734213648348804646746848433997215758526458470037547120446198705512715319318436249108446637102130671108961728520675092222750962311498095818065194761120079794498581202890963945870858008920306070639113480954961321868060031665781937203414643327175867224635906281090682655814619423712197179157802550204966431133604007250134716559848291453573908141167911571380354573684055922122011611548174497610954150166887353540581279740654002316101714006619765647047339764723829858747591625916537516979314224713675651821441135614103824285336094960722227810830959269222934275441886323120608136056744545716977784285897468078235569493070258905256037169189199401434729029000458710636581562971803118137804014828776062029022758816223290206519053921348447867966104931945204699815647108370304990406366376792210312701379419215547301272405090941234371144512072643174853392282400300894902288712349163808130099579850267183568130110539587753154393938637410477676288190556185114133397400559322786668857696042925739972711463284836057906299927654902851663783753226657813302617178393062416807110024817356074333612444414212892993698212354953506157844516300914920490253046510745077614915576027597803701995116339553269858951775354695816767675032477470985970472293075914742293440214730386243858135172869288493613965265645698279085670266883392937813347608776886320198144264307050020788554289734480656175454428086264892148867251599501345613584639084681295451528456603299240380324158221635652083897870941620331285083860804123713696480677645474015675417763799685322026603029089431581584124727084161869766011212059253624594852793583039898007399962057406955240832371187322761563328039469128128875731303714730287286525431469358307039186184457196051565847542540315537343300558199756514980645486689739091035240546581055331316080888370591217006638969142044984321769306955828835661119625208863624954928580437410861682639301910394578501169048825279871309722985586271722778064424974761923877000512215876895908049203711361152152335304379020204676226535769930202003652537867229531813781287804356430565890930732216161610284792385768033256298536050305541075950880817218870717689684849384859952223251809718796704249830424770744995646611495187139327341218448273466576306977014768039695019646152893102731300932597658044751116254853477144031166508437395562740100235966036114869296873179338037453998413373850428994829662459345031798367733589331144134657308757636997276176341502635077074793257447449541762242565097576125151890721987575733376355151343597669623147436575791875409921883600598244305988953811908983473088442243455766347493486211581911233728492805590202938875761781609882344260396348565785789825983511426078677233908425737784988355045089572371152073914331890489537847084827262533134558656875083401316175115725414986537536700998460483555839867122170557592674705242142258802567527564932846196646356794778346094584752192752444813394964677625739260490130891782814601719399773464752395785341309011619080035187391866023070231914197809033855878291677209422543255328813066207033109458246377664096756906305287763016985429218598769902656252698534887281309943809914849162233016431023173729511751680596986752348600630324956053556671392510309086317218748900399040534191754487276748416247877340406204240840138233931177252790366986278523805801890938067092683336105554162901602836516442630920167791570853500640706672620091309261577375704418232488416706734435255665601142783656466630611853941494677288269515090714568285931232559499591444383107458670587785407600127548239537716381674489241548358749990729400529209836249821315592249983400276171060548411097815895475710362465635269413700538467905140193169059184332467106596827496221483923618936242843778580686066358139209579198343874188232766005724369285248788936486974571589301856854005117443635485327111176341271500936585334346815982220700419186295872770689187561262543787579114097052138469806919090675638935015493315793071746127157739253483310490997606203064273524052657285310729522840650674507890728791501922447955895741969268778921695046463347091983415028215755857332195797865557743254657175894111577914655430193442935943824185654997952792567534756750608908484808642731167084810655481703430301407444830377909548327713303192441897138785155766577615670695923493227541095511460450649871674569020797959055394269453219344639949196420175327149735622660306807235375695154120434273775750289446055524659897992102020842260580189134043127551659239610125321793548576547625682169567697801218008825435686265650269795811523332096338020819899591373247583378491848904429952626609768725453723586870883036242369905761735962275765922777214249528057484854906892255861429809679272513249303216567814132377507066334778618466427243772223611703593016857397002088845082533129784356852123107607884981435635419780586792877467217170746152334965956272462203437480881736340785915265486156937073641752963206324374324532837322246607068810959305454336532812603611465614205363262221810678835905217789905623469745687097019532541953674387249629532639932158311651311981249513327104087428525724365273901233394953159100320459661518279166420013333884666001309027585811148322157624400554270839277334486389537443901535654495908303968362696347317685766752544814556956442524968450498499764682758971248830104621617930250571544064902228436825915504579828076923283229393342886829238259705646742887373303414855521642232536128263166902553341493976629645023549658648650076867148395098725447328184837028240184197743264397142677434258537887311378378907777262627490149712040527840930011815696900770682630100994068252181336283511464299412100127340496647814125510384313328563367052762508641194998479661947960940970465858044384417952641586932880934122019065443983979451830374440940412795420885589445047302589252988071160587769989406744876583813558392564345134715106249351512496910646577334355330905535827311218950860261549104047367489459880413085463934787617677011333461938110408845850542960019773214383189424307138481790288357502510331229354214864835263825543451177338410360177094636845543647988234076051142720681696023241674802537727337094545534750048830737918636842903214918040932347024933491307512483441278717270929306889316508345681556744001146730560661933394045209924495057330238148752628930093762867060186361461453849625141329594114275112631011244629211330361892080653397196521574935251104575234355177877608786337337753747872523091793842781347905539366512439077342517724803968306007957154862363335379123402924794306209626089943837359125703999142153986696768441608297395228923165227785017770811405323581355157435911138714089290479485173800230130237899159555705571511507996544103023360868134850750560904124636252804619329245446661341444766870582427303996520738648562303582770228318554200538648556586887548426405823620168569224988151717915775259641612465215627755658745089594087104130242431941546149490069680798203787724528715560546077173226758684580375228440174347153722367011270071068245919991877235574529143982213057334185699476057687626667946823245220430019043287355799088920318928202721199578566257689459229415985937869944649843042236576049360783851102640681766454605949198253446272407160114617149828816050246152663119788976049357579478547302895090516944153806976654714159695828535938448511552613360870348363641325606038586352420556598468613519712088919042960373814032820004099106399949233705135801904773922935318525407389248570384015272744754835568231251933949171803333540388335007173698788193961434601092998826107099639603668089914186075237816389789788669586635043933950319917479327419636165145407753531343922047964610935366553832392200185959019277038163755961153384679718396247514524643078988689314744109848870460598469298296175538836708539328465805322174277640260035623138309143033220257657198832509810976588817720111957073907655646870885480803365462387852317946630753998551985118108196576483691085651819903919721633593817025594039198628040907683768923344789212463799083676957757504760793428047833288018763948136274232290257657711021290935318228806817126984691274964839856923803640597444124484424359325619034031251432502829241553722484484400952257322983529406015043789285308142931395307000638601518736503293510350240260322882735302114752236145596314044865975634040354132771691041356961030636143286008756991147710952762567449777598262085257859413117943439863532850204810377635541850698686488350526768222567765924855444196869388460440788918843765222266843206702765895144487642809723983181177273381883316779081267500463857363838646142825339312493686301191174999381855359922701719966892979502455893406531056557134301612332542442650514600473192867809244102852216274464115370231107841370014622118126434986468669546227159664398015091991851005074323022398039896700865471459443929777600133093868138316514906844826001158265495132008724530823543020520703237955697476781149172601345437999942980425455063028863046654282935378379936986361485602355524300419405555199697329968140556648133068238584225009411537607919741656335662198810362825882415350473466396598545816957443369796123154731276033087908261230722659755955116764691518969358272952330385621632818790747226122858769736085160439063432609305669167317095836601943442635441153483755408986687057378665175189124552663713669696314030093341049198763857247957343175136855381382794992965428437614655338840355925653191991277817376528367815123614105967556271857826736822999915184620921840098214427689754702965657995118079124154124441562922218498766955829359353994958822745182914176089124171609816936093133833786739675475363914318878296612010533863810047074915012955751253751467357451561437803550981018002149733403036647822843304897216018034971480667143497792281489820420897736642415393766054825826673683059308602507508391910717542370559996109212186943009091508067105419931125396558871227482094697735245591819451835004786716005074850796924779102626780971378139751022890087688885615443978319603138502837248050588175148180097313957842359146529871873449995854512522299839161427674916455602069183085407746665483852066032362709398671524545985817306319518457822093692294956792991157349968726712799799915418446778512797268038439131563022565875955355279275225684750511006290220962797919937239042190602306473837707546215732263979519219666363428491540289809585541328953098644107479361769936435802409685093769864079774293425818852141209249515290197211554181846044106400281422857058266379571941149044684967906642618326577553315561160345240374158441462920742036160906273443872316962422799119105585807187743552211427473107726368992194052321984251909366480733485451846415278147147087249911078791447930808560617203705830083239448285718314318478001577016979552467911484134273148761936782212293547980239060273870000113193397212518250750519653558815357545165911903169138524529748251884845568726804595196786891793928339008760413714855670281945100793187549265238927222261330197658301232213627697392222094118804278063159088195448249378374510269044920738427556603336597870189053384769683631800930136544408078588570404513602892253801383680726464203969077583232272444275869947477026084855525902686671033073461669581143997965907524774690707959214548153515143027298466338755571309258174628427654991619671041605220399394832420238285641048087698970745046358970423873691416804699836683519078698459853222508669004061758348928235180248289052287755526967932397223258833760855862015299614244364586542649859064043528225694749065155738949415980143270806251200420785908760782829039061193865174231984939453678996069771624555169530903792459650977266190705062370942158496285329189112389611025825674115490517354054812332989564939600311698285181977851597805383250353573658244005091734720553637097935298677278032953241559683418825288664801599837431563158053403683177011329669357118407549113479116816967318721782672133218867343838785739715424142865649490355385688247025469330652206901090418607097314347161305257106132234412999918222172647531208715979316477342591380483073542040966180470280210895938889723517056146367947220565054702925186275991629779762802034665947263902329622602501212868491720378743419244372014774204716106588918064524911164373290856139055441142045347429208453484587022350802399040194788111610688730714392952723663318116530456284772854590915645908311760076408254279762215210339012216940682268756578426276507249528309385556323293882817899486057236969887481888946149198272767017004516605686274086623235518878928866684362761327092042913571932473381679152878753597880088418216107773739549856924115521998542798679981468308665906668086096841409233303472255360226575522413307248829952172066546777815940157582849311248753282944081275774380097136244374070690219832616057553888560933665285011886123258171771130314722022464288537122130496624991098894357615543007964367570013816783530876518305062636417470859507299810783074306440868908770558346419965715052990666189976937978995150970812891226551982912491453730611335378634079818919492121580785709029773803021836694386807801694102363807831631532552818746349608280084765334501079482750926763536159386092792554454439758483598110362953653570955477790260156866388743706158390096828176463455024609325220449870340385128559111140794886124702003314853802408394142681078346021828121968939698636157279419456087885081109178992842090682421220146579697002463446102411443139335984881649986157956488371877495535274579437875997869341754310832169264762281489761580382818198000645407906295797690679522226240873931318836076661958421808226610257440822784451383963067606802184453956270677392368674828608844996354102830499366480709222349479998257408897507313842483107614436204842955188457660511902254203530903693713254347909699991864231828023992173820114475499746673263224684103643728762976828762297186286096348136535762684049445204704966701189971935869915893856317813053087753876335604860711924459193808137978022529750877446997159535856232422756482820404654467321467660819145945396248642461084713181544737538039657136748724549591320707641568915367026736346429409253637345764862178050044661323527868012370254182409796320604767694767973620456821947996319170816605805665204638350666643472614462338081048607303270605995775148303812905051398201810335038041803308978300555265057984516490745001616051000683871590951513638015515399348226686761156052500432613618929334396029463647178947588102843876183976755892868598950953985421790622780430702760242244692770431557838633931970014812268936141114666738831266078071550324624673914679268975258342352039033640873826415630233684107993003505406531569884680479722000946610377454119891574018743764120624858489661803399022841392869009315275933295276547235290788115598369857242457359621666472441633884797869415531671260365223481691524916892752006717493553919299770258761945090012727708687118262850243404957579807598515972775927984920172744906576022586123586813798431966493533640439674168006786252476414587502791361459345263532193560435088662291747441792257006925645648499000347433498763656603111331195068282762944780859857157679541982317323620280936727673955259375425220512362692950093693376052586696829229480709509714404226974221676237130797344588966584929334296818153968899706203103414793748917492391475569993323830785095226343319484759465036464545760551411651749513580535295747236929440237959566377418298575769426494790840787444446506220160537893060579526206620355981857876274597035422031428035893871312203356230705331540812700411548918589658447136110559262280034131820368203759604474920424432290431400095416225414895079592150295999758704658673791143352530628786421240686638359973094926605605051835104606769627360351070271353018502986169304845430168686471353379490733572355511721775054612413070867805571797503856428379220678902502499184509918514908902549757043680438884050705196052768432267646043916231777918315405710684269427301797196424824323178632599204279235410779240495794556025210844732915487524705185078533161886821139770878911055727052361710345070090418433004705340303123296530130427152649985898450040912925059516543864395293014786455893413896946515252801988970535103938850894156611749866476177672395982071224930519968297657780519797386655974121149322155664005557663552340401118768599975598703786426573011163089029759750458205753104738317507722407283500888600129964379318331712240028075061204261628524444007360761886705240240002488732009310450846454258893738079703880157588733899139509469042827788281669668613341756527763972209044523138087909099071224689360561736211022075405537419979792334618842837479115382749303656086118949282642302974498034557928249604189566276301768595992317074878623599303092111292717037231214797758128153035194437843553176513030809644804883969570986171214220217005958474576744701419176400894104180578369425290079552750563804150395810804178145935539450005847524957406042098038180356050736776676673110147849251869967543484437608218348245938270695347664956326016019973284225980398386872952443287825424422355300589817777129561256578007800280298354592367607267380641984004553950290251367377667756522872656281413520917844555197794527291932809578781067008955838745723942105424033297122846045198441878255779758189000148219127287233430230447295778962801480065640072613064772980603257640356031244354142554402045420677061162585608427837893284184837879039874403898925532842193190493283511606170597471082634631184027195623928337539534359085825442721958612155549128531081774109968039734776630390049543651347820053496568780189844521812680636796898060369090698771524657348707981404278200447888505298895912849281848875357774204049336351644713416067754886551383962708447405866353282134267172382588377192148257541259528146475186802992768122049992348652426855476941680329194297746145814142323621937780195220836040821799361011781399136039208977217129026166953613375197357770110323000082672325649400580449155969928880478956493948006786571663964287658219892628145477324765865124031597683903661500922129167650094184997008416091982670004888172574229512439274827894894771105184968754930804839141954451814604256862758494411028212718221614253512034860371606137197414047387736232937710136710158079422224006030995818504606222004483734469709056090700920729945952898239901885610626519714581973563471898928069710249404982945525325711089523775302161009899535732887071729428313138884703343853137651376937001962524672461507266641451064839364498763401431833716201481858182687144265358245405983616944211430623922858213985595886659566936523792993605190928292884061447623356139387270463912216982449922765561427203485123761555656437349582123187180277152432648388419212576904398484554068997661872161055098770178626928622456977684458334254715442733342432999599066626932666066470332523332147709124898633204131208661258525271895732159193432356135359488415757912090066912886924414019491649211615292410403730502334839072151932558233320566071529687130384751393065355331334195993261656056467852275163336378477594504622168356268242753290193251612340971154668864251789750228658002043261466077142610087303170543532226380272014365042899532468650759666390048364007380683334838939243489620284251598533633074410088140946850428626513364702470843668536438401928069788800598495445706921181504988469059442357258286575555569078882199011477059245780792343957866960726483148485144074482653078434961919076938444310957805450302369080950891717624737942965505102542002900490963887471023118219774391264890416666033520301455155745800194402331015800647736809253319675065271592850387073325961083876437464676086559494631303752851812977057444861642274135640415132906410719771880549762992104186751708302850469507554116744648911963157919612739063303782165076770435417914616573519713712594890063378521473349356584803389067647143750947382495057338827699869172968322297260395021300227343028342956498453639539691637146093331267059150389281479837149618908710877912404207830012547083395715730364151628944488192222247886675699694910748033868963526242969086721639299565302157135113819825196314343982042185795694907684135224681852778265430710142260598773662821172374967592138997660506416809115483193100730243611150355457566897275142125051280788410437041276397668357591457106758996014443781006553765789068692213755613890778736255061834008086185395123183858984998092027624597299099005981046254393063987356453875509077026701183930732187974305832683664159780086304266803039897123552838416486490550411584744270795889443159870886304500146391244311520797002640649842085647708244297464507069392496663144689780064061712763754076313565082795648268973506440686572573792923774525785321301650053111142496329838692594211917351514514891361248727847982904575699417572911307429453563060133664913965393516906065009461243709884381560968231751673674249372260471354447090626484360647373264864159018266154519357379399191935192093746521597706856101295070586427316556177835600683167263561157513584693266466190346386342683265380115195231306850154996863703965231125353671092895565581490182199827950380979980318903677517311778034239010014081784576386052909620187154480682557929189644239788514591022285645084414992424003498788873314999999382390293599561922312531980898314332287526898906195347021163011820385296781748660443701591981196937351478185203745589953711731351111378604296854172388600223986042440222017369432106676993382634946767184661815539759042644014938251002643083157853497491931504412233508710104135529738710214901524953565887374174173594592439177557293762689861323408603626419019626261881491548655553449559379516993783255246785842840797348972928037908475601638862051128788756344682398397517633278788935951968385098036840117958826879380783295515019726965408775752428806204699372733871271750333066248660464003893077859466563249790451547718516871384081978471052182802621518440270813792983626789318686215423523203370109083890377404768513114758136042031678548605687855628959829962521174966508696982074149373746488996953424065099788087442062182892514401301177540416084537502188425254174060610649074872767126809647239897436240347018975245993650186244368899597303542725966282719640633738568616201323149536906640338114916999353047326926390540314306801403745362976736650533463204692702150020300688254099138717582250839248506001857927249473729355037129699869505851533543731885861857184531332331337345510845775717198189939570588620333922439208634146758605552748542273818589368802706175324653231992244725131438522137979636606172072815329711052819559520498364329265512415167425867720680888476405039785116599883618927461138250889580330655075990048387950763406997363347691539095190315638435954562900010622003019668978138501949825223195813542544633779526838658977215217207665256892825891176629686987020821666869664080050885131713067664221353166379888715573667288608954328566378356367501716126372199531861727360745197517847772146831871568900922563598017565393501074568791922868345073477964436188265704690096854108536914851122007343819243514546169516894684646309624516125891323942266561107015267176261574119042261645482761918376821696678505213479269202433921030183243297026967056386870831053576313449248305108049096206917704697401909109115935291307236468897634883747605167185959189527306298928223278933519896731660800727325935557091704880526204205899279016824875058217681418697516844296610406492593887668448874389894476069007472213078859019178621096932257408770598823038032519261337585248900791959550310885003427894144295748456743834579687477071303971120560986604972775785557166831143750788833380040990667672540469437517762356878248787895465573888593943729578081713991419473738052660427195603395916106840487244880240049599617892901771595855553074843631945819674623243633185600844799900504346133422064224647215284841912449227817081537523893183885080983156172625145580096367697579914456277672368777957547376533156679160718158623547809497953979819055042053039966950460306601777223412189704880092378095923178058408139987745315796755147047947780324981113216566818794306433363600127830382869735342775463247063601719866042607617866232797884420566060369510224030248929950468625378221686660325548290036314501111739470356946104890236451543314933297887252586679019564027194370253310898868599749978594507875499360514861343872406897618263266198383748138276411843714632854255809826909957781944025827691228989469423684197901575030559449169792093966901222802778160753201722818254976336669643967344945016187864409736832304818796442364218671983381858184304258026656004540468975321447799114048274568964576723375640618111620090452234854928000632608283982183025821124616407278801829758065300372397837093392341125003368947380981955314089478552872849737087590524829902106031183538406401436437218728753595246314951797517988101467229281600476165274485433721410866703464587709001944433422411705600360441312290676078523378673261584075000878877434822574332419993276620448593398942671148867371564392613885324776214675583462704763049390279450944230826873022144757358479564723925356564951191663505816870015811113065198541868061773038029700860436925196067537787033838594406513128161281682666480042834768333774721563067922101465941155840661329475108270422597875571433700854453944159473971890022363662444040686421859215480417943180356782800261329323585467242923774880675134526994799563807274366079343568509607739017496112605184477302612218426507307483255354183657319849643805380669217046178654009447378599928267190467370415014363769125668766381826770061458358550412616709765307357358738012177861818842985326808741101083578670945851095735814756229713528834363026418308285717551992546414862894699348933890331311882640758321944833343251499911193227642786265406828428247691837668125725737871231815136164755282278425011817867231969676919282955278949050678628967582037400385718502722541948557999157320806866411597645142340615113029145468621614242626187644417572204966595198746300360263492501114450403860296355399993476933476715199550567648443145121213376736885928855461773775107188285359464316055698518517149469734359062919521912775431372732809678530165078482981930471460226640494853511418213932363880130260887976416121486279456354262202295142785088068279035302720085781076833982941434250881704521994719887032142194383974889066179321912139979577680700559582781049039205711708304231231724572809996184685418772968691586202304233606447890744374175346502124769644957829584508345481995259410771096929860012343409135590460703502073688111801039370254516759259850155227369419662532861143059517970878917357060605325444954055201077847298974239739902220136814459811193822437487450916326776737259465205216489992885948305095839102339052199717855012424809137696304196861823649013990924183492798379988222371379622391096410849942021650546864552017329331945083777002492574376509699233199966522894361120643761448689678601936858257302225764752164356387317645306709422490129685439053699096206593836476159667717082590590536609847877192527093525575886322468547856295741753625629433580044601532449018496775442431560455866492819995486180459893702293243692936802470287493236195712152247030649248769381894371510151265458647118465699232082902644720909307118915485199174862513681719884895292810130542052256503198804672447834139053285113767738327534442087411743785505206129867401594195415611797038166536420378091956731851471419443815095637431428103469107656112933874775881332157432679698156889831915319012393116677378017801704539231563916927915126045798504778140549447056308922335112725398933795610659927108195212236991352916727765835840050589587481544846149436593592429249958689524167718001328462424176249001626687889264491086983900724996289472969322260913371724350145181053971565516987083766684354764226501748443307862520982518580369231221879014411680666866775874133711853299678265827475075816254117777210985190652646260895146313732124276621923764684759532287493525557791821250782370622505522684662735802918941420776919039249424592868547244013657150284465067496964402266778386971683309904874746095524992902098999647814214564538300352472916999022056240438170265767822380893015132177892239990174900906412806910691588806646526423686893475865784959368344808337197482181350816233696575787841986068857742438014440541395221788736570498261297986010039706088631282362863351705619696127981633237922978378475672335623840062281593922799836318399494208139626241313831816415251264172116798142731711067976128007388940411070849795425590302524207389216598557695403045804458164538646455292034439075364847398461268378793766336600566183295256647370033178613966335104238551559515974039978343041891231054309533850021188777566442687611497188836015495950125250902223113535138481283003246550636286881385406931687936428995600333576223212314819729972931785573836547889242713387085692939444671019035000528646453218655714893812075243374674698494067712150667669754334178338817786722204890726767949179418073774338114801432616222837743192133382732768146790514896135745147046438465166738837456760606912007802394361522260418924845590935559940055775459502791381728213524015068192078970602930180696436334070336255544201791505781157152947856154112080694942405309263248793909712627510237263407414486740482955653762461513139785908216347108136148130320609972746057720255822465047587683340081509237829601253140152563738726226525899694099669471730508129362477748809036995485560786129359383031252743204530296589001933523083270561919354245778087951213075244504983751443928148135793247576223585973739615404627382164145849824737738588587041243613992297865212404289228511086101614255280273697149915009537618476632013596045522542489211805904016614296158967255315744671630486563881066121601487118071201485315501389165392139313181082010772527986028866578651830606653478794148822440779318331375195473063207551984276407902651795147967952909723030347480193172337392861260972528847172990260411876993374346991586961969721673461767116645973206800825464819934581386407117728716780227813101210850849817756855937057861025026326479032901099050515776211492412087957671849037200778085210752090053007276776238788835779303241269716502759722090021605789520096718875155667907183408122766104941935158477406706315717572215894051772282303783921300361008319125829343619021570969950057711466807989596900706610656141670298676546244109890799244950659249068460799285442057691345185465676636513724688065741615197803571734549057727428337408882996472739720185294553101468788400074898924019875024685283294420541548942811987793032389731456287034151727599670042731840964346748468588701768997720186543094734388618504629672541827999958954929065688348247156561408934945802058831914792448680536553115472703393224142463837842914666248318951304995709333658551307665579321499840068245666207216883707339433140235133773656465978778276405755334373982842372727947281796547916639352221672943743750047444229382963081640746782936364531119113048897880706597949259740540251365338012424584795526685943115096603572685252877431766484050430841599065317253290859845742465065743779962419760862344510000214020864717651066003924547877634036883292961335339643286283588152611740638336632966178618489428632709835586988574202113355131450888984179109851699291097417777642255216556751777006445895149409148605568197378828445713957763218511862417434791387643408638153466977325404812529066431628588477751651772715100645181785680950342044520226436936108530780944457642054399391022457725906698136269502185698801825077110876637896575052247238465893077033112218902408297279019401762574483008835157913169740592882357434564372972638781498158242213688432832999119964492670139130304992801801788931370601566192377060395070024948290080401278183656727193853108626742556845736355180571120443062807034845442499575233767860269394414854361179557181633489270795066773301294776487119534903747994691683063392349791641828306370308729592717458075349530255719604799800831713611856556075507492326916215880831759143892599049439460212160827339370949798698839692268964395831018509869191493281300981223483344824805513843990563213811546371589117420580455408662672186830863375438961638473151655248481063401059066821571025842423331895069019910952345688665458488493880844876715934327170228313534215962882176523813417893271238053126745123942128576466590994363386731712348008395381481823306538746472084342157663741432224369022949240543298333578914934386245801550112763382299934718200867570074310786063738581519709693579438198095144635462631572830035067443357475591890897829125939345778261935881777416637028370563869601298626770670538408985928353280183814242325554626909028312805397990918288881284116707145595437054490705078851657627559717043889787163798946197766627856061992636161062055198080478475308083337635478400951928071670640674924890877477359215683330762217554477982233737920582013133592550371246026827698135258897681063323743906679925750305457253528756203023204499220184960493461616523327495041029046068609918246415922368725610661622967312814556673655515512140680626787565956406265911346254195117349588707531672413441969481339043983242862514586984109393662377606912575505433268514837046697020451400709248735039277391861469308950406227329789021413313122384034573460603076516138543570842401405962116303685638859767630398266388178155122080970340980962467654006609836248319377443003092476767898340239896723599206779534639672059660701035056051870050931010271919227488052235681329717913973565488450802501826290860460573583837737215956637914182661695930411875067353618542865493505882537569659733335491172428344391313637156934360556394727195917479101186106978780615507466716577898271715023801969847407698166937582658408177072420864125700189159637594029952976663445843433395890862712376084046283030102213395394814704305984648522353912286392849150031314647012432663533900792587218725326429808616692250607702626012757654764196576272279018074859341228938667894333232607918817855017609375768077251417713888776853377750258945525642029281418774601348749043529384127848121468827898177990026468182322676075641438776359820598597567208224126722057845461882008729366758507952954978081735508002197928364957443613288657760728820915099325049891587119835528637570924607860393724031145706149977524002425740279352049297747840151298995056161812607897044055010464561781875462293410131808841698676557936090846857248173070872060982254494149952031917864653100924910597777535448603267836611043127302765177232600109862525944876966985795990636366911549083589794781972509033396118310950709446678151388599268251390244693551091802667464529577683056422400702981884251473119737397485500978147090066678190008878735436448495784665093120874371674871082412511534889854019375961936954547194756487629745112864058555736974812700252363252158315108398313329042852709616676520296938834364353846587810041192830329861808651612944846155747921489700111870671977670707830829421287389693656715790522421346550515317263865048798636363733257873044460037908737915348318907529335803302540171531359658886944973578002105929682682036716436799465349448138613247197412052777113837084625272662089382517771302155517964726352069447255281343613351905471233376488204888578864934936259585082088804476088771054963973510124341048052602057220570518530666667274047633600722899439718543435092777827684667699188278305999132354886849092531095676512303035928960228325354552046635424960713185764699803534745277103125031416762463931624380337248080680521474010583727711248458605984162638055720502239202093980428156624943173818231768852894973498650768604162488541533451851473587205683019614261358303813100946818853578840498519555641036366618852781487756009475389859672844598437845433138011029525084172181552256071917647386556836718473391302716428841309281419205479866706411873110396385898930463116923254324746523549954057107281784900721036492371940492679942110645106291291919943575346968670850918722889650277252599620567864062881760782948171129687492865272778106277481608751233825778802336244832466975396334134937642941421582726493545932642966607992433579100670163532440314486536193232178644652935172662129318661033035393648289271869896299138604076538278302104331527545120921816116898370083707099816237641627981954644075180933783177819765759788533141421216865409915232247646928189289661744365517826143998601880518673556143756723816630895927981682964612168704572750511619004828851011230611086279329838479247121612001240949608748193425917456075968397874555154958326657166893170693709672706954454033792521782361466083663130328225761306955193599902510149859142109267524313978297606720582683694391279201973078164424659440205873473206714639676480365869273838876366495354253407412113153503093928649917299227564773913677666937414811300673303327879095388499923317619220860035840373016238078407406868750361297598986923405348004918790193080982445344978835038771441102993097419345640901745337819984227784276043554900558103320090508243509743389522960932700103302499190134297234144359381409746896167639367560215821602939264755099726942839616749549531454614587694879250432537787063033198870021303176128446667082609202779869936514712736024632911827342560713209098799724576417404039838667678427691860273870526698894534620943576231132370369204419937812092103595663108742764281729250351133873666461614137434357918085122197370252444685444021849957344099643080207325871568135138327167431535460123392210209799969431114366938637598039001483521282995101493557603130046872150314020040056532559884743438647449834094751790143677149597866606625384954271901351706399579592587060907545848796425418108026245676462395466085213228863306228533858801802628546949877425980810309310261161632194433170584530168980961203252352766964347425997637141536429964078677762065860662436060600599855330711287999675013469170219349328943621616236239420542303749357068032443636582604006233088232465972530259990813926179173514078911218940454151186206586051467913149992108965133108329386264184695359189018952378805237890509707861900373348116560459149842461785564727815314318626384361808143496668739755945012466173958398670443095753269690069259618368645150545258081476358820821558607439483695708743863527796427902210288330242234774346921124850740357849349681827948809961320386837791470820520066722810015573149266948159887921326103657958263086840813458087755708196821453958369099723666958733324348069699465051686925195354703080157047390334176565715438657643665838328154608823652147746804267113144014741277762946445530688370902003329959825684748672408372995101741522683493410139898046509640493043808193156801993005749166276311054244890568254080093383096883684715895221091491047175427751589603948962017260266287951852945265025916083890444714013997905600649744526328072435097978503130426273417512633835984231305845739555336495566850122304791353521743549996292137074716387967143066062915394318675538042007825240045086231706502629053010813245515764361303662325925830755560789617436580595211010478649615211978809403906595998329859081954019273933195285653794886896509432437474894760846986716667119694475074777928574927273453766024647394943829363192665124782883078833537676350604336187630962253243239138525753510430819817788504669323624093244650578313404819728363334010311000170559766471344356359357959670520540114217652372885063621099860318683693294677899523431549864261397212546105510541676339649235260169511145579650367840515872002259361262543906850372673243621888024559646595768803098739638769541313559230334033829741962070588146444779120842637352260142119383257252254230667254474761397688683756576789562799831525341847253129905322200612088000520818584505802687387101894441692106533116134879051227653972068939878079124036523725694906763466505192013056305539618741908141883645257271103523395808196639051365844957451749290062225994173240402976461179014320363127840137461327151664496498617930048891752222181189093800944536266714018181899192272176772509685877012823048267572101208413597916194076672136584433898396050882757566700392804857793022851432648907431087336193563932324276322766492825405173125450551153530084931586273423402828291231243744272296905802511798718205903474417606398049202264951006012363898451994812997948505126475401938529670140218158284788423225711450186342898390177855313934302963362853027802606962348876531569600632552102767289277058742786922216370242332936992265247539649475860598538167556181639598013302384829515346335167528633515080949712539293714675785276251634842174371548441199814235775478873039801023006544697295493145247858638114766394481547575219894222113772638321012857645491912624644537395907845060613316570291560308171796954192849352005455338288883637589284234770612355154810037319548223831730734070840366444656489141811941087139255093496648506326237525319892241398182603645356677992337212540282984411854141738506459730032474829061121864351714627250974238635681896000729524045623629681297985786713244241233126420677106745641831855838964933989108519104822041740038523910210947876043882595445776483734565647279284088196317470162852194801861044453256032079823182057970844087760505823189067279266190490317786726701381809516266864744983602480074052235958559901356633617391927765564730074217842724930208924668391071054332345799403491884710556623923172551436723445123944074216364306670016168045256124926727433388394981972851410188788273080161914390925331800426842260136226117592499942256390142690635690542586757502016164367702540413580842037184966643309475416049208358975708139871609937188223072557295488341081111218831834069304823017598632646244616832227745042476144371858803332058822670011120704474012040194478780954629233559968127224660130966488267268942533511433714180035114928017218861550132406322131406484122955885405227544784756337187731826582709091595180656701355251383662412793621130324127199117143153312456580367336814064339422434087477310404303825243155659171640017304582717613676688745989302510007440589263374688009865807000953853485738044843490946229004827810466955748154570103949267317171068074528566948099338833057925322341598016027473692280553441387529997778863153217591842100321655667551403137377561854256728150649689017895969552071723557644629038805835277452528251610464926475907265513641316425602740329345381773124382274470533780489582490404587473050902384039811088977935094386525388021150791009383181051732644558243791163769854360209724893698683076935721826049295611420796832261367478695924281166095273484889586224282349015992206563786057433106193694929330541044866233154297148789241955385347989426066513027151005499973986310608478129739606637080364126599046087637541314212403189019680517397823127411002717875878337482169861496971571105188582958883252073567148605026933966709946366035327190798756885809438214918716632208540297836274802499684816577699887878947250024391911035046080371243959028854723655914049754236938021250348413105583381446649012721907836756784166803917745418970539815963692845495278464305063827625776854782017486418482899005078838386689258664201109775005362001119556030837406832430679428965825262176701858906166310166293268540751092476633127712429630120838513285832838332278065634175318512083897508697521242234020257537975573954194565456005050746559630358645635827341658456429132300164092096116799346652778715730260697866938315601135250211916663518863027683215491156855715166596064034383435765511911657512414529590469916011841748997011980708575774664916127169198546886814294946591427879526295188565957782763912396980059123145565258154244140427081916121375825203833287290809958738006808567478370222513539047070893709451729663825141460295721654875317759065468669347228489891235733182425145806239748372028947567003255155388148989919449870037767516483687116024610048406082734058042479178933916360286512379842901185286920508174681863910577441503082459300069252780325341688410161426368566703493064098388303467290620116237475798546220791142884950960126672638129856800898544089465434237507971148752560772651989460687838019239675995925551371287006298711958298306795119824825855513005487573987591045893000929463651800285576688866908231523289931125402235698387146694309887058328344413378939543434021420821500850478256945587360034792753763291708451331283772838017878546872781007640993636993612566237766840976793594747659994293099057847118456894216509461022967520126037328253566355938088311130302455289924794102459972165616319407629907537200378911067135537540644695906226628705733845955057534185765624621883327951022277834734937430030187857377669985941622953387017176896799392150649526886891953362794559174099952494374716400644615461028204681179808411284013586253284245373952811669110165496314251364241453010326373449641269722698860984684969342485681029420810324572579135479060056706351484745733040164326348853754059074171992048551309768642431765245468231808151969646193485570026069205420088051584759849032320960694439301129679185732284365163112921924092059369789548002246887140107213148567263893011460030022314577800221518652429641041235561316500995626913019427083301909214830719895432514266224097889749180412594421120662487942161843535209263117904304609665042871741831580278701193917505771947642875426105585861520814700255094927801994919392541116927267863326909954017757510627464270748540310847966819555515149692625451878632671918960315410523577442547688940921418673197598365274270142706774523125907689874903347163341039661275587260883548495330296997132224001022712338516694013882512651237332855264422221324900330086245502002718868668713107767790602499426799472915024070931701423693147872943444956393745352408471246022078189826705921164044269230049717043603489944007095960191925211814144844142321836283281491119813120182095266369530843363247323094645541416886365022941017580889556347031527496689000133899598650031121760886122094961211366539484543102435250328269152489265887337292512383761112590834511221874465604292890189223972516166819703598156903217555296442513679304792456953391568932040686992525551090096797880404759987407342397694006752638010098721588612009845266580455327325366611692157888806387183905966858453818964399627798073069926861615169930223834941567445171851797974861335817100589152841494015709038603700521157998646113498686473687202256200896900996509963929677159431561514175443045402508579037852969044114482684423927709375359697031046375988884377417163903169085957288730480726104169325379939371238686903428776511371939424499508465647751349073411888639815025908765776117728656652409342756425602849769174311370187087339758915453315240394540187720852045232807344328574801473225839580441302360062176804771171357635935682936522218142731548760246245666082717115168844071684836680530359591983369588647677520328944123601458889822641321318210424389343399067789185321238302534240772201451919488762072729694443146013858158378706904813083024660154245267171157705569615527558834672035209968924465255327674722747372758133393227165209161880775348188921490190022356546193453735789684703972872464296240625173109334329962365924186993117241378388411349048471521824683981153401766568915828567246285099863686713928619144718931554124430466364650184219108550345686894309846959599034356090785014722553184962515984816681819178937807822643506336050543057533641769326768268025667835028315346407126864222851676445459112715915276014059579377110906359596985367834255636706000211777628531273481486310703073065691982463491061181808447461758901670497072665766705647186202810223088711386079740275957983573783340411486354310316139592570179389228543481829831867347099704980375950503188861090986403933001919481434875876224963397884717634876377402817265669331574541197945554819984597340825890311414198970145303118902703273021303891866784950895916379175791728216006099459953755506538866722517000992676848136422829797858495732991527040659425687914527763692409594901792657487337576081843393842630245927088815698831218882559358293962813803417693779023828725939300954665387210831126401855295399375643289394826918904101191772747168911546083279745147428921734164795951767294378462309523777673154930894862625490119815926611393531189048908818829293101721858735594359879973182726600258300276743951168036732824128095662389631934007399547726774848365052091218534993714827118791072000393185221861274392964612246626895186837725685434391004547346215916469019128620225789475352515289727091050586595948255652131918639404304016751777646622934164478370582767143418425908620020762499530597644731248996277173083831723035035863649019250267368148574079069627596034172368433717751751060457538474882684864078917988934786380122047244763694670014260408170778831022065093142739863605801929287822380675065684562590226327680241633140227584596276549221596595438848437918193614074198430229117565875026757617401730811687056790241791254056059970690115767472022223042068131575217544759665460106871766465523420825357196182866865677875141033917733624600486206825352457824435382163143235958135002570796895577214370357638785758317606472186148405367614783918953233941710909970914298405881933694873883516972190206728319621705801977214886587632807624155056769790602095402100745888863194501221230654032120204937075100017835594818044122650669869398060384050628407890581577628696374491728401294652053008536168703073893391955661285751964587684874853922088003775552732162461402645256473909106178318607365497107948884375180096830192351087907408485580644987059188708985838407047659610154774172349316751809052412024752110294728322952572342624625966310212965751754610007062398392845637022703982241789706348990297253403948474077818448308128190201328801072996421360527370312196757911930284800507325894639752887668263012286744168892148648096626774360272891769831851538833168602774674779563810453444162064160731260908098977389067934214355862209717587493782532468799775770805772724736615866673478467074426629363011741813994791879997250770296625110322020977735422694065141168871894875329349927305439940480487045574308536344464566860369857864617050191605127492908429034671268585583699691332400349911637709941365746573737109208125675822610793534587802896444994899390419464463370237912806375503871502510622406817036723246106249578126600225719851503297318971936065229597396190573216104191584014577317354470640409443385657871672051165221799600585125709453585924271837734493017695567277999832020527787115938131998900514935826969268429134672242006513841884429678188682061333442506280027761366336519969709497355721244449527535260342382905122318236478690563099602777486973910462981383284953984326976068745709385130651454258785518971448139329861017144981485030185401811411461312035316796238586169513221629499212876870495585754640599282305675155462314619763175116780963574989779199616697257437102659923198274577742409903072268775974139169376425289358584335920215916385918020069596410185154794373791300041544739250164769290202161589829389429006295975652983494651785665467625934948763266048827674024673046710404817646614395268508295274985499525314740930893450674397613302371124586794545408325572025433194107963656439046096082135862565136528089439680544490762682918276441349787372774632599847942788724303996249834437560165732952115777325601073223932636880547285461731438125837214721239319342516623137398572041859476754264434376695890186625377238961644416226279922611583580975077128578225660647043677385458676871454594009221200313504609571293788041791416377665339228803863031152065456395623074772690318548517176638250144689858165846697265297339885289626294230638569571867119813727476715772391759594010347296933467800185824393026913625263937044624195968210681309478168323012794858215891854359118476778384385771670228472318451226735719718291911804503981184191010612825745321086621490366453974052397012431200604730005910120051475842151743648229320276930200524869552409242363756478826777621005668242211129547686700346020489099889890814228105438362304333974421452104148235376176642786510659905337652084617055732741315982308064619190368529514895704122201274468283996778342609482143864358506404480238522399647961655324479655033905445023924981622984761101790684857614562615814639009412593057052049787334885679629860648561476929569428841761671556330801976813304304326722864214904550297163771329048476429632383177086672476371668545125243927717264618570819793334854240128327405955107307567428813578734618056039887748134369728904181413007782581599989116211652323379788470361513802196064424438029535563647542132953918200422850185926230005216544032203675802350289559171743865653369739801205838503114916326852327530952539716273697140362983324625534989122907808998447400613096782795932667012883528104873374032573712371424698643214676582157853355650114428983429992727942006902434666379274893464007901183940128179370186439553720852173414605865832530147671764108033936096969073309210914032260415748114947626311957317772929988817162083854751214100172680391874193517857817908020582220267403435020515913172955851566853012924553993853595129737089398452262106541641919828455117822019279286406879662497020346237981802039759779711205207776959272429316568163672270648195156383064787482809912102027220456332141982550382033397510673126250350063821926792311797518466934140728247184602460187933704939046888516221550550423530822738217674836517969549117383151102805071980226187372598070180325818931522216075464823054954017864700889198800651025716707190249267831316145072893544279320342701057199940635043715866265231136745633040011003398417345578746402648937524005369109210775860322103478826452041124850440210604621584436627287178671566860723140461972450636161787517836850285384027935529072310930398704061477639203707457351877459380094110431938148438569784057220205599840232027304219847344509248214552807988907757924052976974119988145011386182063346350769124266614439486903085842983645378480365616621652573262882680533605939411440469855807260836836001559364231672445748995687922024764958813713965999866246603539021146376484262208103674872942780508380079898555483498462522394291025687377341732673667800064879244234033770523787118436544812986019566995534634341839242390867487347257124601958769837817270612819046240102568621010481085591523488255382937429070323505793283286489933292581876779288790691577781155836821016512861928169350064456034906364933277536928732055913081578114368096820487072134990565257952815555590039644974599188375105779250742756253341711467949770586444437639398979377390062650206022171013193895749398623935247091812894622641038787664488537392572631433997137901086903853066270149877273199860297602906503336584327172364276791727858167390326407110036141506736708913600784864698349246006449522961545855547679346382200994046560579837815617758877620390475861686560074591367927655568904275319434469437010429385800359935766635233235379682173676675785189445014065290903155319125051926917403367447735805860723860761161040547763961369254933974929975561373278547657564650561839217515710426409294446092059458271506539543096441014675811959228945817386624154384963343786807927811763446440724493721764673784697185863096377570918886795040110093118207465505835960439167010211958133319058022238172009959075504540652527540175822201020269516133477415106782075060772292160145315914595657640734795833931783864394574506386157331786270581935811920575149712311973047662416896048628639998096153742093317768454054836186775322435482912504663194130275237380920386636415781787382350242650226361594214907702201151124377400224045214844121420144991533560181174503795809130054045278071681175065961634455303427068406492740105217934238908494309547332302441413947071665366537020676903251865957034527835859107704531042705572436577303414297484502372162991417314029425112179051792743826142997390801669165118022601835744395248690058191975889672949377493693230675757934005671947138016807549098559646729049218790686136674329452451511339165408212385498861461076260005248231651027077642219031811264230182473482438033388897716142608599619322760616644581194219634670220492601720316376303307185712753205063120600811111749845776197558199730294654414424431237900796654204498754838085472039773149049296768332687663426984993315814316108870952459628594303880997398892696362633282642917058446250581697561037044298897030174809705871550465551072172308061453098238656813357850767201492015077860453547356253680749456759598319688566330815140813663129898640609478842131365008786454669832485470252772354520131423127324991972602893684443396623541252575671844707106470211925912382285030405230056898974693558662842140421424097044240307029231565578160521342148748024633291151603326506064216680026910395922059799898909265043783230312495122373545518912740823631751493144867019229355692936620450106864834122273459100403928068940117680613050520967739685127191928757339074078514915245642804290904331571991665497475130507079938383656221196374435518622766324573014995383736009796130839484966026516603565121645290832047375855047004515038115274941505946275925194252590057695034480421221915636425970888581427595249291648818973808375901577908598028340631619491834564493431303271029256649923319648137424907051943277569731989067219686981095772786638092281182825683253691986305072063938320604702127745128149546393647994983550257348229513731438015565343341155992621298452269232320050039835342547006249515102900246781091806619978984119972633481109663982129549401331037348217343845248949800760516183529661307518701439960609028114502546661819186061433281284160719710898512739696057879803585246955941831091491905171092122183742722766758486720136800555261925308117889348444513067780839896970287815729534746320133687647288577110963146075905924179075028376436086827352639467322492222594641869760004209203500884567365786267623830743918339227693004148552702608101566965942291824402324782547143619456537645500294552231107839953289953148214455557005634117210814526452593053593277811439685113752820707642448224302381738488434057810759806054848127973855691373286158497751896921935440904092398959994712683318995214550992636943937563423326778022511317034444468276867641562952538178147538363892826487256953121375544976434136452603642444088519818721907588016676810852800168053336900780666991105760786782552008370977434781666626605801175072984318027522693530025463155013068880212784604084453913687420280291334181524087555371628102398058594892616037277373556148072137104529321172893825515248640457301823719877224124480684566751964156383268330818216659381175183184572675119703196806425942369756967887008865013383015636405135680566422188342625615034528636528413706612480746661709581813479500971293927498135823045864460864325977112989176708680094851969580827775075207457312510374710500436603363309352015721826665031237709241395837156961356615722186516027364157521890074438222794088711733150825651647977733070211280647458372667679444295323667803029920080995257774806673277007230946689347238749670969927449099759614520349766994319816736311031044182736213467393685172810459046451064156416827699386795474309661280137559586523387154666649618250478945464576939989417201744145344469916458867739444812434071449892466214393855553355244533523417559635667277213204847410410215245117391655455323992448358145010045488885562189817986698551524394997067689681096790378061539779994470980959708955339616293832950096950971077961544862885731989428344739723836707182202079772045834713382379113621178155031126165773124379496894220991132022683317462061202745096787463260992463177509083085542222628973231777633315706464544770738934850426508214075696925415789138243963430094781214443956151487809210779392717096058999884068692524897359145663479543855942653157749287366051576314430116388883811733889046941787400903797594965148555271135302474327382803924391087872514327374043889353321318009563561646747326944507549015576006164230771572392281815456746673331985244370262589121041055967632884984827776993802735075599900917860507015669014271428273229180546738569623814330345217353172239371975635339515176570842968994511773065271935657213449666544805244588422094174176532690233181249960514834193852871587101177445787345740510260830622875484962903806294103304481324381983142734750637272915561726564651475319814903506976769260582514596594515668720095609980431183344993525210064457369670400283595251113310841276039323706830940952551313337324641388215601609303589418181175232172920232805329662490022009688856252879279126756505615593343566132678759643918181694363265640680934004728272303662274919744474370595929264244494044714044635828097418147706867265509668518598913052507962607070806291810769322701730821817924244499652001576749206090151781662936374604476844060558492963994787881782309531718150427816988304209052847689963331456370428336197600919901056499643628169824203008100383509803932640578483117139053565089270401945758030762447950569704927065378733861270266930690788253668109119975979145357920188539369122050657376090531039685219409709994387783687648596658660426817747802523444445150839993452459010891652977408453021927717721030748235239637832740693608728273779089260057581500727028240752238786265632780866654406362379692678026541950194294313303875506267602452685232283201415030360993661567952328512193462013266590664304901599120038132133476811410183083587834391964592588414757009881470041399425655428939265393077351825760713108574821616750529859291529568412148589504430149946750953754140728598077535478460456799396050224869366004191582318238566948091134212083072046685851884344383954249519914119029154104705364333067279623915631886809567305175177057936902593071589586619527791622451582900644133448188666662398670320068440645299817001614130474262099522995527377671373922687008442368105299752121471252342608557921149524254241429538015034249846852196957545916615587677910631733942713282389038433440331958701924767521725978489846650640109574102318112084970445678203221549266208498609025319001291717170601476190818931958467233016659021664349405031393050171415617890902924941866631920292286792938245435710764973653355993941355235488979836782469181754915859990009033122186179376165022042794271660017420226925165728723892459318202695240379420087687074486526193736071858952503651638304218617357154484973462358070814699768510583691334581566895204468565330694701703586283110142907948564458831415053013306298599409678509693530031648136122073896919729234705821014361741714312254701023511372782469731146098978851372594078240796880722603129161606407296227817808598831796848806061456357153680971696961755835652483020404368212081943242283193206324697789584598798821669047589882922328735144805946113755848517882742165396983044708449236188932556569187338153401947546360337085012978943269724227560057520483509474858714925685347440957209305434643034979694205943460103356078385705281982024616594937351756001615911062297894874146063631693183808647104622944668209150192179098618989185245343642438826884949789502702884767509541808255716785215150260865281106927677639145366671195209081752461097532549315371593342906191449046166741441995807110762228812566525934991724520896382755257656263370935853027085194055862761155393250203808501574119091942223186476553106236065959671943651616053122804712609550568249008269651496347111118074741135740042140984604448984003145074899810263980247671458689024026087274336361751697425103303406951984825729508696325778820985781706225782300003306885538959423349514186867085903609462628862534004060824510557305300703543101731662225938748042143675693083962507695176515568945369469944858045711336799283440673616448230704411780493292682552551153566772950987830208678975379930655604541578976428960197079338416655011658785412036622841768354101102247995141819004358581943790783130544391631416331037534495134094832367214070705791257663159238628236541132791775296989137939746894311627027070209989883333167665839946927925510613923800624496370029284045492559700439009728117778896048680943851711519934080224846440010406436958146102462064581976632237390006217199208760806644233579883990255882232303452971795378271742302590736807242495857459933673228682728991659680098292784648063380016258766593758287573556854929645045998828071178137775674971264593135353873304230808479022756950285136621682676778864598010553198011265678121415006446048686162137970290757211524719809609594001861372825495896688495928931584858311420107940449194069012220725480515863902652213525554836995467065595589019803963539988956732177414958350459725097672317181346625511454025152408581656594225986862919159347951445370244290197151347873057075372760050921031979868690233061232777320442735426812659828103328562084794215275161485438478576702976427815476721012868249403594725357877368941185005790016713963980286115281246115205253158678169665351436013256569736862052174940146747864885595516720178364694850790533912112688537872654930826837107048239541079949417255400577995490714136344742729881729107501957077201795536701027957460729668180316003388784431468051345793991528834746704439609533136401710092876111729366090167400727570475790835901517164242486275212600679417241307842172298405167319276856474547849683601639596477828485030102344654302827718046874841567266029599634502437062545029980588262880889424776885658657100045249567377197204975910474381368320668454524279611652160766938895943831069785737265447609469948994826891227618246578888152898305660868295662759051148041823720136973953151261225524058467726521283808917785731915049141259151453284986187050434021431550114862549107555485473739149720744713220857328227203858108703034735543089152474920140793266346372390470822141824082128294860588171176014311995332242066895313375913283091996596328663188094929687411939771290202539721692364064951050287659399819027069515218063064368713085221603206614252760958180975353282467389093579399199206621714224203458744284113945863198036387440199821408408490907548515744004977996641681571975903259904211273848020489217554137885489888319854599504882754163589825781283974691080832803580130881992488699230034792957593886331941507651989187910627426923565659284961871246326425083618892772876757528011164157813709474859265590576974938068606977846856549464386773301253466894165512485087043762708952795999733780470724745156231407615221724587225508908891427315791209173605780079121677008483125885907285398047598875489113968274378532326108673408411484614669404453534261825674897189330736960226255099128845683715841423404628960824748860697431335845977508061401121125774116866114318788328693361992166396813118476363846656042782758709829107191429378919651571630014226876671889477728620907942339972261298628653963816910018864875661195035833150430131052430818104239829244776591088320550855329987059285696423271831980242814329194725818697844931452710507264338087128445010254146448055489595516607292851947364308412112501902167436769695043032459972191651816976247548689697288365304351069862388086346512020545821515711935341171809575222518058323175502807151188020521626922318715076688276619905953997996953935260507213155187590877605006017109185770742310697255208807449003408955829834274629016683713140866185893145096627325068849123838603161290024635731530968996040349087340209656892717093063966649004022717258897449516601692877510871694561319978128420788767788526567731146218952639528228683139364714243605844591229146321080100367120661572137479411359309491031246842675322389012331039101018106234639620799936153764472259464842310432438093721496486006754875509476394409481551211807831183295784813014383335344388632442640437629114493166914315474441075701187409108314376997526160880821512162807677624121872584349905901906528531484804565399955193018403550234251301681397140964158390877611609123853173211682238945011062204439629780101656448516660529946723735443451147112272885968747367205474834689602472709630381928022160606423227191577502571385141942060534689599011282198117223753391703376016616167522090388095449745223201649999360686518546746900139651971432021752310134359485372056403112123534641949690766654065051444593177883864382846227656960348279604743618063368517197693689540248101946865569329452162082363800189351688038251347481841996874877933427857353042863517496910432325083624581750309723032328255709239606373100063912933397185279759654715411683823771611147266036820544168363643378030697448360423129034030067459864845660669192600482647651000238075151303740306703689441007283126256734656847578738939349935815595037060414279602667077419351837941951336984440836734349164362287693531803005657895998123019237270181499282848446984369910575844341277665894607414953161032180384044121545484231639134989430595945478637700774808460558331181072308986630716113187914439125030576806328479638751566495171179784383780514897314583995820257026370517804204848715510604480892283544326840815542515178163037195599786202272145529613484492821132968190616156571859247994571123312619402778831656471104343072538331367887664706375534390066493212450200924624441955404687207846057651669700289201777573568642702205039004914901959752101160210102252298576185275030142521589875242184942931324983121765127033322144031525628981434696439368163913829768503497005809640040488095572723552144606436318509149001882471484721450217726634506800127287954227259059768974495209257832068692155713656837487834530491420546120464464141298860901567997256507655606158065464691328178266185208381797660952366921465584783453926358494927865280200205280609535156382305930466617942403262500370318541122496820384543432009660207982272512820294881845349280801220860068911669154941844482256538582525736706357393756926179148662826496068021231029065791911896174138673304183749564623065429696508807966419977343004212990814129668798264658388423068813903618180924992677433831382348590555995412760935192592024840491776921197338177628361882944525345601381412511086331967301751728000302143733865936301842767928262381552297429523651701088608638528917647710813076911773647726724061146297608700237596261520161326334869028303988464890509377090252779038087781308794027419695406833782093314111719060780071064089006994441784405166375497571061287187704934656551627908655609075093708775067021906622806283974614047065442497685146574484286192830135976431251491601775966776458014358357623002400464081316737022648739879587198232007219327969584032847896724618008456014190009186318224306860913300383189378997405168871621763351822765823333878331404433731603954876225638541444603820301326818026084478404746844658147136907769603193670241135806333660359386051688517494204290536774277301097132365486414714669177442474527708445688978926768728487044781643117548890976737333517665863559483576732104765034518160080825533515178625667486077336917291340231478104444737845479333447702715363655844217101749268600994189010943999383199937196406178889831955175933403203500770035877657211665235708715005881651758657621358731950282586626199185963126732994094222180001249715314682046817010590587824268111051233836136740671486136168271479860114040776070852671571790711106798157332037414023120359754389734406403611375213614848119445584191248831497434382112857203529818529877753026604259860618485911385477261086865302878015483435202528058060945963824226944206496110409290637722401122353321372663171496265701590168736664228039189520979108333771311718486439778048024028437890444681035669059258599047232910992132438069957605275846104811765663616749324981288745378562163796130666360218975088600359754198512904144683021659058409703934669833461983477308387782458863504557080926911370914215585293961148708363162947772328780172260070063242039116556170965357221572592179917338824482236390982457921558095003103592816208109774714871887816411963733266003209270313065026131039820349599271827906325771718439556851022347501319747014249301577986191514782252352874967567294084781175018435813957724769754918056081376070062279539082465465084702976928756915944441770389925720522816945586001855297614597731436138822007753758467359963426495564660399008886919436295044333350208017308983721512629854895936556885379578488332308475363136565602136449690446072827051752073815659517689981923269050387822468550765377699644651183554350404012893480224127818302811472421124590202525740119217135490591332176640344268561847123174747945732293271624100129583311208697657081957951079604461540755664698663294318995255624166502119922042383745731288383304527794487343460297992963993101068274406663756841944164298586315248861089970558752172965187613555033335825328163887322262593009440184185443858547329463190996293884865717279515863415997641576815003633422498557299235112592452386526042150867161291100281606839377921504741444723704668364326048195261337445357854885035504207861894608403855520495669555985011660655082986151010187840553614405894149191864533345047064442476285246238231459802825192480605347867833099909810689827780469177737072008730699644406503729273116923425324563547636273439640738500743444533545771445932199648697653311280980787534632418956807349448940426475889623481885790356875979429158699572512557254398479624269138418132769854497116022273978433576573939931098742551106013601373908319355133749603611841675960138559086843163740648604599614854729019336750041408948302280033521950772565427385810402516969034048672589013228202937461377820841741675679892117355082755804322009483520880966729876761950878898173480693042270387386980462998234654334324465578985847176371301465113192892324871341872156667960791182623925928347990046045406868771209873318333154083408417116213838916397096818103023899609457217868185307373196264839483789044548602755146117517314803162008187877786169395845559456127444195145046375881074192249960047939328059517643797520051072407123044189573319324243508142447027544948007204256958520182583115167645180511453860539821571166898959998185920455108941342116680090234554952496235111968531579511452640464511175297203899589775137455202439255662065334001037530585491107860127995117082150649309695644917007211449620113957224470329883045306287807274357568731539543814829796191535494113889881538062676126557316932177925433048681071711738410340314406161753802467502046427373732124965094607626402931542215653495463755105676528043174004292098432370919042668857604433969545156452405967185755794216630578243245988876276297998640498534091558921722597858574787298605337714927210969508428480204298630627389716983401024227433122195178852804261625275976272184001921103713395796556971315025697685932788099233249727282446682565976402281058703034581676768825053434372595275742864013852924650045326729363914817804515939556666537509176259106164282234834918244763669489541007811341226871406463142041964726343318180683863214866375237806144099565085024428695026415082603558377548246977109606766201542756359899989171430462446489570062117476996580339132660818162573950237027973147472822856044418539497299206372274770456670578028014034614841264910721260397994990209865555714056593118944450182827006103275821289591963280636088975388480815984925017858003705714142309772198787779123492211391569407968463799846107662602161505653844692321803340375632151120666615318000201658737896794683273247054864316256362789121200823324111981305406439144803877494232962275957923288843667421622848257480090537858938353935116393264248785546121147009416761316127397427295461023868173317719327508099433321609403313510007450233221158171357955212392809416100859242881430851846958498121845224573113896909392323244381922832020156525540296472153146266565333057844648896277126303644692997323228581043428323646201737683603998535913426122565536281794536033305534968261740790755384217464360841829079441763609834480921978252185358580363685782516582202048180890233149879086126201607506562874424160903804998222731356420820946849542689436431461802983438094686700733082884870251685255732222906550771057370388748441785019832002769554300594840001732080402242707379867093689162194563592995013142113689249012713464924656943512486104347027351700742833825472697741565779957805142253430704313186342586911366645500305931549030078311276297294832295102143641960596975053429130620562709369509523192919593630730364350450041845370887585430463274998014182143455313151122702750293927777442358432233962208504560551827641230867802705463191026107303241619009561627184544435045783637964365938368138835201181752526897801167921843596902351803087464303710404757203905014781869221552557325479601970770726074699717170139506462373752149892378230642975072395824309701801398054187667574600853456695262842483694145309482597819567041733673894434038507404840186084043482829430059198253965161528162789191279138905468792919477585410559736538152855736453892243607098172448965362497537648553632981247309032429540976488844234348522762264437542187883101018792673483466765881436507928805784432358905700060728007985999454864817213431585294554610462190840314737720003988087865725005308043550284661551119466172091945842984333896314601473799675730127597455219232247100675659437716604912159477206510992195740445690497065040139289610419237207721554932324357977701933544593455920862775354949077360987017981917331319382783658490547592327582629126326650861606325845102114338329321564075832675278322107911123517894391517135042530791309258346832894286785751892996857613091934309161412954828989394085140222674303815714415602763382457536648271062899767244548055361175294017854700497866325531884915074740799727380751636082684412443613534816023656590320641702485243749564991877254726166322420144696548355129912345480570088378827839835451166386298137530183662523275301695562865598542020289587654083339400008549916117602471292529991457788293211993252930087777566996824540037010012310680846144249801295297207829277869339803987029765177211691817530253361144745683119992763007565577351879965007186551511522827915671911509217661078134673175632197734786280187205732052237372372902851171648168809898550708694082781034342495943469236726885199470224726362573471275072338367501533831670273298985374633011993673438301590495255853361316623722000277398022833007258665344929552116695573655747113722537564551522420065841505995435886070739211564428552283427644820274160783318898280903286935584455674147198691056410069785965491080149317495002704236084174317631523906674560045313083780967036161013912224007371302119316734711980086330788081025636715917572214264484550747573714182877282201119101196956108469177509548478918534648641856457168637876118614974270461883669427144922664339730854088609358954204283416257524176282330286821620205861019241840895625108022654755772020530249048736596921984231149040273692972592280995263341251460031082635385071355787767109178703015208876978029858767285655757513407960103799802548933256495419174359737241884706008650301585492902032547904936539703571215833706315836401131410608338626206998130469157265960804553812823480587518486979089812343042304551999018060027178108682733221350127183630058356029226948456276092910751623056046569451415810669446916041106215096148381363052118488293645480682577258854600238092645335493835341633981477714969909584689194351318124814797039965620278254723017821683378980858296981359985012014628591246263496402297576931594648778763541121099966834241720130605559339194970964494059137017101163357487414287385865666217609099001727290410375105195473584127927000905818088956146346601052961278470754903771056785842115001466978086816971353212572714874953810357204315687682704264326945294207832837307724972537144764319294012959183205011413006044765101173934665192374585226900577804207508624347366756443583148766115367486672986917962205806428472409317033597341200845115805432938444532917296804885452849028941707919253886425394248235037121354563924703263396064157548678816190307979296835647348357215466066478086633240988071679336200776596299700143169909220121085376898626929202540443740912623519801787124191627482273719912455108270120719089509556548048232317952428448246361640211282698341017225501588380492468099148997805280195522356510457759010664439171122774583123889965080355531822044097927414028855876410815099593687638570138668273415577018359179059663863477791283049872999529738589049806704855085747342879032840222901788245309570472713513644088420342183843524751554420766111718242696515309090254318869698743140002763424227019952502127747934407348179141542744918707522226125285974961789820700514840910237708915909219633127419816070442471044791961878662816050480266119956750455725100451792094516203099244719848363440461284767288973850661497486436746662749332581255122090078423146648979443264540514093430947256978017048851243474094446318890607791918543668271545773746313939531574945034601404081236113193920129062835727216343610359707921415258226835981410198789242025179170453968820710662263761614223043381627743490200569216024019570914935002781948927699304014423502144234094227096366234284584410178305510959636770522103474090771889923743538787325727975820314507910880547100007527050442549416635882245195243664666532721335814310577143849911091624556512990705421022394217676123165326355474874086647894678661575090529330269207142871348038051375860302230680496406064161416352106501647188133664712298780767610301167407785998864095109280770161913835079643360736795045136570847570344629597781727846404883642541727782769067833679546443740447280143762123409938568532309585422915228372180259050289702353679037427989330777510081288805457209742110225149913786896068971855226229436720721991382843634271906682383857655175118697097867999688604954768931149955255343436020061684971768994257243896740826338154565266212513426710432254395166100202199136201925448722273200396047839909950335452262940370574724094212691272936510022953081160360905331289529022749002434065804224210615008805795028415926279496149208375286805538848417668099126845145497184476673679285342456028442254449708244854616131494671608581656984039648179705734726777067544196778785684387679350719925439280841868710318903787433326161269200447842289895602897218177442831433156173406188958137423511859534709810116905166787707615486023149762814038178377184946448938484087386785452041944014399858987522878526785823864870681806360028938536062258099883848550357033533829261249013417107507277762209226801254531505371552966892886411469958976077917163535732409432440983230540210960328975902944661756529078580050933426909995852853199217904358580277453629628589838422710287307653995335342498554080598405125210857263416685632233317481292139738235115922230373074350728822565689959575189787512508940822095657630206212455035977326155532254464139650543083978645128012824881128372040742211469587921662728009827318386030818934555984936137346751380183895968053077833307355742830669126372405409515354697958148241122352823351445359909744863247885364457699158046404070339525649782081338751105462921481674920362250378145130282256781576720250378291603335251244425736215848007594791787936146318500159474989975130837185484520289782950785904397531017883186997633125450390308651056923331477998951979562124881199068781922407461534921196624388135103020030401321260406675355155071156554276155285149025478511237173615489976491849531187729140947388301738993533442489787496355295552771925225087262835277502523452266059132835230719549024580341665478705666116222022255009570587880046907663419452325710301680961761308654408959311695250245990695615056313703536425344887039151770969442363680063903409251031390883262272969067284639242273017808265115949983849449210264842759883328654288892063750463576088698478079934740681760276334965077415359669569211810511101366527001877138974239717672346624771179590470229717489848617750953084509278486299150897066483917700215361903848179524989188800065891187735618423462190599058098413505732690412618623832373903067786868016653914901121958501569328706143795013139628323487429467455741860438056570181156904762359148949314904425865727621193499242661214242886068650116747204357846446487952627766912331389595521305665036438915546881996043702424169263544458078790238247553157510330795212571766948538846150743288202131022286492718857548278403114366931655487564617947901808680194633553165490025323458490119083868415481703324029764650979367743406734852590090962319950447894907510670829119569885902846535652368655611326776717721831813390058409432759030358845821499704538595827085754073641744173524303034178716458913110637301730177410122445666295448470972515813418163455075768495222288517403589398145565607867182668943738626911683260910382096871802267109228057311246955229277064358659027375255922371448871445937859227220470837646742826680617731933255615741797269299369075562990793381123620331888833495655094944373594086390470187441545876029195141262868726701094580605619462531340430959280416677744844401967603634137899244873579822791004745128994191087502958854950033264205833775764872413551849451278665550879632176286409236021427261695706466410949187551865048456819360931025912807139567116978167500517684512936175530402232547230846154280783023694584851386587221183648578013729312157220883246018705139850540014563830330041612973490601309339490188390323812686959031880032070780970761536691131167143343886170202630269898367585455563751667131936867009428829256946497938322449425035304245733130975246072757237701562529374703138408256972832122431849490281993590711715182783694639149232042650265565422777549567826683923707478211241069824842451154777463674859505652847817634939627186701379540017036232446513661758823126701884424778166528778232003381534555349009104612991924547869346914718403328394300541230003050543212500500068242944435901768936340576028888408671148300786273845064254106825932284820651942371666836753476531360177495630515468048004433491049301045899269627848083816971327368849936445082413150749251853411056488164979565312743917051547550019728845344558901763240737522206247888799019288789647307962569568540753007412934001131975138132649329581191563515473008328651403865111660900943177234776648660991075824958586954953596113496632746708838240704108991205628970265644429107938068623217689467207257484808713775580767560964851419381333322094347853512384014502526317791720401048767713697634498143609405631316840426729282977757556606909671825968462707764875815843555366383857054792642866189935952200605994607463082634805453851710633150605926581852265428307792090098959898472379280749337528918169348883037793030728276304469772093037292313832167297766939657768257868534748578995063035884843585517653908856640984130490023287411600862987115066855645131945402783756596517892271375840637633540900158093106171353940584181305387996912300799138738373768206961022076233495193103880748530866363923503815764999312917563638038566757435864290621132633441291224622671918699222127388788414447645176702967244274244239623978786352500120134662276441527061680983033679790467842203225950579566879518674584997472510522174648982903449935423762967086213343860715153042616163813059055963887281299321568603685538847161665657905507334803321407297783207456735476443391092728371802521848508526920490817740818790015572960648445807465020880669281117005265994945377197212001803421000217050986490821053592804914797278467358140050358546106506430857533405131749285104175075493758821306989805322416737096943637153710034614660453335400831221862921900752530663139559491744949878159062379721466913254696816040034620532665953530504868642023098268662007188277663958362068815384289491341495722805162021901376858473849270603519711741157591469815051285453395589317195575870313608691335524402411008201917699045522274860683315045834143287436446483926135350027956604901648146252523737895192135574530856288281762607963213284240561942376371998116365146491233417825163327989223156243464636728413817718155343760175089165068443870989451105258502327605745068485158176686953340620748035943171826384405442117229640220590574888040689334144315011277439105220729771893145923554480422002443814476907481198545273527848037010640956155053176998960862245505834940972884868171855902170382078362649582736083961530678562379241821448027207323396354680038943541799060264505069058640264894412491781869946568636628342741733401658003606836745634132642539132180378988242261365634502272780942779143962687179139544721947230747275046997798392763091282546658168968751367866822282403930815557633426011133376902691663982090017559233719764240832762698577951098147667214830731584585977386484846319312998317453965742907107923919464285717580126846954007122347077294003442176964149652347309344840209419089991040727865109404561649583740932979611378166444340038183167763611036469396426784244625135264895573576176680291274260645993804097369080696781776814427164087439984699177498943684349011620067346753800746102424605902863084434577361789440577142271204753334363625653678753523957884314625819013808855987003191538891621318770193491291448072012540305591630907009536599991266864713953085335097418826047898190196493837054106369904593504186685728578270826433488090544504876324366920713042701695276316354487386087729424909737427368828004680009399647533841646694137545741953007208250474808086666030250191230182841966786889755897409434007398101772930928819629319050966678678504766117968897582239542620455391235692805042808926598386550644482486040752526709910903846230961733215085514427707648488511131021950150983104844580468705145852566896671007552255388809979704561070232269448497796379711603645190437059470260797164802091753448326180233225973125742720384787797467936321006626346631353644016910745925637763970765317676697983305813832175006963959664794876031658765101902622481137498884375758274300060919162707506628725014914992027156569615841850047992046816489491214050163247069710499275027449549123550451657458181938849873950502070920395115709468139976300397667147791397431785395379188867120197180510090342918909260142057356936843640644450410281003601212504182220110647457889171235394755692099916698051858009460111319414801438292276007524323478778060017059252550249549560073981172309419939816789022123719173369246907269557776509473804600541740860790545305635994191168135702806040620791052136683910267201053598123708950372411903409512977006572290470952178677976928019935232958064062642054795713403902341245044280731605311027055704030013405785692530658957533535202535181276728711523052955564645113172105742491854723344757154913076697605441261909309430367739213013697548377140224273552301333488779019470448389906808174801696411126198055087936668648898344405714209217785716539560159007010296151158169658289687011701320932851416047554133606090474154717168838047632009260915971772127698680395429670325018473026761553870689257051338860605938567938983394600690383693622108852052744772407031639915910205224039115677842320316808185745229858390057596212718603501692133294017560860916091264999991196487870011983175164223818083996802941648981515339893473912383685928830690362303579095279539469442552118424334878966858215825007832659552285981490415544501863445117320107601779544733470939002779103169376921281558869520916038316225320145662077561170790993492165748908607920818643360270123828763829195140531671577267580809732892660054550615676956438085757024857825781263360258497223096500662679875078384843730755833777164469248577564125495165020296932325562023196923832566740036387444552634538234266542761740189151139455904690549713603864053727134857765268093636789192522970432649969471298252838477591791120044256569375311301250510251556694118916475036799591686899426203829860456034285455200314751835714448458887569971512212406591083856544519970000327441970446426969901851965272247890725328749169648807415305116458005008411115338663492809795563026750332678146338608404279620413039644587527564739671698155421381347224278055242832714484994287262958841917087683736248015875316360059735342346999177631326373528711485657617019468156278237621425422597948975580734379692616161595495671742840015830590386600953959831043429173849077629902970186941318514771280003714822413200769771017504644891656368840766865101106231415703002102407237564068000863422010937059696959399716261736092301404796682495706179821504645109192123309854561265423260043354380703098725960541882177237666853539468070406409874763818544394270670850853533409721210731719966757028827114880486255001359668686288228197971953451324011668268694705089817877778682316695527972859669545301956611256365146939555690658317716899245111302946120751094301237843554967970595122087781155048873058624139084780267314074989858945555807014476492390606808734693838663916260327791280370474172474226694921567610004819919781187744380949027690602810367816203897132133903518278357209104782269758144890122293518648195068040323920163705664894067269465418612720622843963543728699677393595788609935341782432846811190851349981137233710634287767707644589695982746521554651649025625927338264920395557508901389622812616133577335175630314873733987794333586684432911344678556929802808879207169820773245422527840190196124512470022425958488014444029187290765414614684735025450254137523015564081069605952493604143506077624972488515027463647520397754233945040193714298053526575716239644422959976914387457479230913677924256447017346683884207756535997213884920943810489612126754368247608405367039499598017402267671042873075633479168449970782020240881789024244370538948034336329428728220010622836689922746581275433617048281629156717526652679264634563523424242260084121994909265405131314477525091165341155909242816895727319163007278831565095773924718270623869245373795601736612869330822420391311476957010452132663782195482901884927113888441798614724634168584126821276127186418744371415034402271922304859145474138271329858139626511909794841780096221162864584788414689209752842489565349034241711722064360129118821083678959346526800877021955735105031580931597574517862572519352662062490418954728341271487248084189194399791357048331740639627124340680594333032052453583909899153424335462081846276320604393415804733448061150924607008091298671361360502625878927670775559433028640151616362969131510264198820332540843108291784117084771309132692195526318958619453977620539319348850026936621792441914581869545701302435678161772541935400234775853009634884675514012597409657644788397817738608724796956049428808727515934809510321558150009218660216861885363133583458312629053254972320822937825796054118418519732247138943623204186666302110580216999308863437218390307641713766678913759004110665397577898499151199579911983967712486106653913442282952136089454391248954339386036185971370723973120254249951570521532990889384822358317852977983254506598288289112473243778138741306707897996216085046904761578265229217601145071725374800134774619653263824006071581612676846860818809449499324965074495288856782270682523508121067829263937873644266339143593137938109418764127244060183791629001093687368950090507818049603293080860839642585491137565717535292373465299323837951064733111935757660972626768626141798334637508446591347780847164813056841028884949370567549985857620696386209501605264673699169688759098894024937494394294403317941003601715834113829228347772701458498614530412174489955906530406014251751305871196639701173544124941702887858372430823560315012123072114538246727476366855952228800233413253142071181540359080747229686349920307532331269229527589911428694502349138542304250357697321421857692077559835103396117032748643130594995482296051487689124576644242359772336861914949013345495186028023243419550929563145834824618875895921536254488517270723099677657534146756999889526110193955149878811665005153285513931330801464201805528268163097379782325005168307719057493245520624426047109022873818037869694971882499097643706922868884926072998759885495678495385419176478718300121211290714900049681223204780646783225240830088750598273197467405163054840463384368633499355674262471233101425945014816570090248763060680944053648652936488266995987659165760334435910809343007039337013924731913834854299705534514679546601934900643875782190773238382484684765759711604472800561373738682373781552433605570123315944672383790177060008902108845222107224807780831841076176945336463197922824537497208422685774863164917294255233648210258370059374172835514083500358986792469757016017759173605855570330682234327626998955382538114104001266489076601797826387014283886438484935329828276594449094899588909129706147273207418404836260368234604478307496279495384297495265497306804852580280732680682858042440709728936275099124409717836486860081370398431240244537303390907924149404912438135422563675780721143648304782448939892506894769177575870496628298087757511795280272004357125658298044980334635807064968142713010734786561329984247102754942179493406564847342155506578891326501558021558783314419341789156780210593090422378471915066964575517583137583754259475195726648328208613479283400672076954028929848851119161257854242251224397376393269541682354525212881407530706602482197350632636160034174734927807619799539437948519446922903505412447034987132088116321169739189816473422661396566626353214809500781773058191393478711252097436601317356603657680621260353396287246006115978837109396042992100399915268992824917848463468827947222536607684884058584904525494333846138072797910600190202918824270706640903679533272173059709739292967593985745160180618473204646070323209757108578230755883747601147530563518016295741853781505537324961396047103884787317629209815418497888638429967839664066419194588506667237249451860537256633226335660799685357884518171338024381394690816909773959531503020773369955856297516021544948305660423587238500966549439261619187361474403250510572424292376450899968650187412440801206422614008589420136105327744016898750885793967550662077612134050904278974477295906862586709312130774021086113480279269508593552513238862555589952705211504778958279084417823471714525957144353014066802087489038104816757879249246626426325395827944589837040504611231887959333375153791442966740865698459335214813031564455870172181514799062799493328906579330041908065458586048253195139917506273448986608033142881083000553976805603548296619302794119773466443532477014649601594568215193234341777597780148015060315854402821044795832923022845564454303371301182783971388778236768276100412222177914543316600090803204102538835807627563679998720038886744428653002554064053541598437825158312426671648008946397991134225619355176757240297038214465111286370890419381167451270882075032491219376304543556702540851888092584711104474888619960112542905601711996474933093234389377675891670813487807131518881023939388158483503641878230203125501367798342574619363571910677703094920314660414444775376471195165894248179348153665170312123491287420161217673252450214391277737666855445014701578472160536657105818598154526053835372153011463128107982812634979353956207324278552854650696028178747019890320733926593577485098597503389345850446687144978990875003468595965779830663947097943491056926559386545395400396491567527143198774350340848650160150437135315990748581292633343243744543314090273662765554771730864245550438678431580775874567896522887421623437378386795295356852701354565367543468090736357298662613448632908282826856189542400328730332546616504111417873497064904646170994341213223132147206904816593693477523901969658923920126450181005823748717038840187317397256715558332097068797082089569196376276920868599670698305874257297421169181078232902239342596161147014927229426715321050078128740406663460272154734698058031400951234058790755845466058625518533886495728470502870610775603577451088335744851850725784044367414167854001502506243163693183697377418822824203013500518052411062943299121703544558327848154075121918132135293713459479618146040668903568240130633262387297695467383140379941190425489538405817805579495076987067649186707260892496031438223267205410650522895657259854521533615065359295400066467069084455608367272550220698436543228143407196707360392985296808412741377796342511643742616424445490197423518457507773040969525874120695565153417329766126959568977723069628372544918253427811534033569862164766070289316129569719861165202578418522904940700373899146603932564046476714877816346720717540210599068149732545969302828541433233929493753851752348883605292111581679619067027283295404019459741740354076192451735682068705725342679977640555283739927654634546262020193726555860929953506799368319228047462264678467196723310708441752886172542836999386631722834061503808812616424240486478448716489768913847725167730784834281521628696028759409587493679115865886810562769222772597316559611005892257513438825887507041083358021785873050631624675954763001498752153762419494174308195058342069957228343678776312591996547234047828971864090971367706203044550060874524278983880980991212340892655398008995407558837713752983858018112003837489124014059975781677079486709127130171392694209715114266919276875367692383929348933153098644927859697277430218479832445543020806020967735339900639778533566312437677257289367280797822879230461344845043502655205837683276908745947014930813935224029810026095436810347442341218384428489126052181631243682189328006564596463317156117305889836242433666693832470434005978114189630499888855878111459666352660756290307866083320301251865142723105420873735089935978345714049894847281046027347399418457985642984002031766359843271730648450365139763637058997070316427927053508723987951951439260523048771400372236536819517318884335648750060294971241284206884980476585823183064751347137725621899761647548288430951807502670911555081682146810657608269721536879164941609264405457453345170660273999747024620595441960364650961369471285730264895444118917091674473699155928797098957556044533482856155245471370638017799367375736382495380488023326855233941483238194120893832041082921372381462033105726092577924702709694842720875188962910512156690992562489218772496504793377803558899092348565458665855696767149958604979765248539235602880841667390266035848844979156426310242733990233101527167545211971451469120628967293039636180896857387594101357593271376056220942201352229774362404705127917594065597503062782126075728900672907999029814256475320765595831297861656111125672777373560690022713490675870469220095924530524005337513200535569058960561300454108686909319593960544870404263246733082733669337757275308933893486236575333340999401535926277728796582926655176953321996173899478929271917715656596701794329942346915318995947841430500179373664687949098983161540174473563815212738435326483994745099370861539793944002717403424552407921469358096261406947275012884220872697882990100050742984486522089497352450198796338048121695861275417759241729866930844642934625416746959695937880765856018801268134808546381031356277955056422453251296283782499672636411852813953106981765620671455305525428382206352320513763776726431083684366069480211501023778187537480056586788435823792509901260850723428454431551163210488574963423991861650199500104746831687070208025621327866262725193085717288300608398940997909887140502663016975900311646133546487504872399870913223097388706877191871377290242292909417541896512488124733147727428661701490336127270984351291888484298569087374799900508566749688250423642064907411165089668902341119842030157522367678046714793888817493647341691815598341051536906254763111789609004246864517323588476254610738395847729457505809288909533955528501939839100699442530229928528997527415251201376342300564061683186845255793447145074181578394643046273274033022312986238793814797684207935746591819237133691657431217939150227227467372693597041085801859339741880659529485413573109675311901198702721669076964424855984498669057660082488331870601235898196939503191640227512794310014153100942033544845972783209774750055983779426777487600025828581224936143593839841218383148904898421433448310622338612436523647654928265688794732460737402539678314761911278283971178627114366116459522562736431091009056857998396110695084612901543521693382597666340214726239816701713037700568417588568381918823827297180184523428057861948668134687638191364081430146850208173353002387297066728930991177088471276073010725032103868562709950596480796605256689662375232719429904579458001773596448397722773464600381284170227085005853699045956708791079004832544020917902418489008163741439396500509063367775332715677079793581519587559320359947352514207478845287083530729295100079276092710745035138978537209419466567767308644280658891639890272944608565250468400397878388434069783186623902834463699807438599331549818942340732321176092940961546396237345541170524907570438364018803478265456934390673208787365294564760410108350962463830906607260477236272549453815367918249636312355932341780398994096558666834525277635544753546120978906201250847365637149426104948475474103901790763972113484855131423663825620752365709675092329912829077407774578447795486149135218584139203810051554706389441255323731631522347944774609382394005497992028100809561482094938615486188393119576071497916098162433213216137792045792730772912126663269044697124371378381809106103072060970903095028815192047853449998641425649396041174445023197302734694783203861548352307908275747760454632397208003578856809689490980987520384429784649016863041622091452489189423150123510312155721063188301860895020915169151599314022263608140879883644813881154438782829911883520179341168692784944213923935481754190930443210613704106647469153678383658524759656472514647492732284426372298761246130957886131545133181450896385671161485076368147189631692016201223726889772055004694371902248960095298123093595101057759526975572489212736730328561100784667745329075911043965301858902476967379726754308870342283456669037241363790182579676591889631691361589685748864761578937255639127255684299817142476591719947711970163475948235024073366277689908265060167719891276254858631007925960962191222547300121930419585093165553048718158680951655278312733008364084698704218176396394891701491482054420973940514283684307399196223884620390657509413987350011107918311343254530852945309557409302300070096220833290491625886141430606047569160197369540744949823709475159937504444461845874085081934038721363842939754237824132971157886812720751738560298430516853071218590926374666199061493906752323697188106552897382254550139374876080709784725757829695289710044063188459112906620971398286838838305245777945662505932244001638656490384332294216723674618396209271187762691041547092886571224623922533249831143276402471205672330136200620941804055941726153070244838297195729108399080280984677196586544543121473830283996381776883045919130528031067085761247085303739975011532435849926120366927288213399252768998175335113417401673330868580522790968997652507127998121459664031073169613476784616197147782191049387725965904964603747427059933599911742296640683762087286029100900906759358742776237652364564159742467642606407704309056620713703954969960895604614646362280721383129743863287946090751080407839408313381087756546726752587761258918169455196504917520120928640907830943767354967648696073770749435870425227935097216110803130957620625509087162666669332141982263874224352180567728832403843754250145286640957707428036633241713728984730650030331020812960579509259831684060561236340070813692587862416273606410609519670987700715072325020801957742796401243590965110156093718783363937605357152173900803476699561095176724991875641094160577633853387894802778755179781488360818431261112306918842735468232907642667925582481766636670544088586116863173416598596634124104926647710266131033648757185445888808056715429162030137810984843695900521747642644625883369877664471436397469913446578345518090651494591583279078874687114677399153614337749845793674484603030075854611705954831897491928042885974156088599387152165732586182590610351752879533406416506700341392795586899459772482973530204597763382385794664671218874724004193082335044207381828314254363939388875815867801247028970239594132433661676047898670517128459515483176916091774701216266150513243606514594951941516699248433579513178506856112191011315948445457346236458407262267088234562350983740451228308804083364637698764096645094006246491841019189021219903351904620973488344982369855220967951226018546009208678316787377705389762487887372447897453965874520136237689633738502557461158202908394865145238834407772861109535014586330201581641272494029305330819996735279306333244924064213327150846593529041942513122984797835168292443746630801831308972587606272037591381869568968158188247389432988244858230499986509182689216017908926045666169442088053407725079101401044781090619505305090773058487328067284741623318325223418302820330984409762793090353070560459536443631519349808356893607961119383077440375101059328913925398883380001811237686780101539065376609601230269508023674081466318573562928284614450496260970480697681769378116905752297618610891191506966025706027040572846441219338417178198264434949067892499926784632274447487149686403425217574200347376682283477050004867285529831882466988160977876612336985903501712683036820769047284589877736240222444561921335087364408583715637026467797920990108404757902292339680513035998116128260878497559955820806885010165156547772787454350148799102855200629271844693937039171924092994401246154329744793197837286546046436379638350450226510987362472080300330904430526029558127676662497418212996057080577054436596567468241294218023681792503631870985868905228019769593012273937199976117530820775136642754656663276280653416311595357181853647382187348313246924443932947999450109457047790706271663028394685703350095234239667590425410594885018698254280058933251483090219751291543932335497125234321942267818956237910237252357956549090102427495582849876253657369910445383457141461830917975946374347638454488851961387291962536347981630850091274289858179575049934240332987336592361623299219751542831922101053231924754783419523311254081333408920286175348311320554083524546170885722248226114136101950203802421150158852741710926040968604522734552967539175741007596010933906072444372002523983839251562545464405684712724347846370349571803154188444328505457159414424165326583836459228496679728122665811528838470571277715820236078674760592053993246887693154300047953835537256809324216401035475675328254340894030364884813040907928119328731913921375565734661732300250182588068112073877569761210890006863097738113077922504526847137884565949801986733413658560493206287599672249097423954337651626519907951207144207157372879036404129092712997057803448613703687877515456751227925455756685101372485144866966067157881638589257782352791488492117263153207667427917017282935029248966282990826085568065577082070658554919997537234421626856466893630742003008377041128167506478883240229758360359511913323669080369814762557176872823151305790259153660162588681427468889378801592998283810748558507795022942814680577672099688664779851857634456599647524842747209315173052565709892316780041239137681645971329160368448069750098802101506133469110585169371535834839590317879714654828180073136292120448993878656017976627075393195682012172310758470974305364444831708275555982046187515909560114654407020619878084445717305688225171498813682152488372835688531240235263612032486778251764658919509100974511315104000814675654911791112586055493660467873082941994023347367171139383541802562344947905067535703017847705473947101553757691535544197242239703330268519835315109011082418671909412054658413830845198945740983416552433438517220989735562374115710798490750934700466652801670103734998509844328312231309270039952554655972696718821444096657229054820880953113958078784763425486953857694664865223379829043925141010076377556036710927209740065480609962165724678886376702937112449149758467747491145481424641214639708098710538057416700815066663543889864528897696365816904622098829949197749227581471353730623330059944983890706695934695405996867718919739198794392271508613674583534713237915758007058428357062030807669596774429005872412465316945458229853319667227758350205228569882416547654776384410381286398774998604078569695267617942697995907407164652270797265701773471826916552106997851262446285214608890646184145061957058819728278486274867233752741033634047152853925199338540180521696688174812984474172105865164308098655916318480560619341952459172790254200537765840555849169251912968958082609758320361264482998103365245569696827070863906876721866859691045486286230352937717522496248436192978168499356444286419753279434724614097123986083904195563229623936036165020402233716578399218490089754308399192969784038317544057229270796138759157107245199864217778510557425163028013052332727170992771917049924745996851052379994835779486191175609994945996724489985712968651576327919719149402630596654434006276907431924086595946458727820345130057572832952503892702388085764239394683371679917161006375476559974495687173467970763702908678685262330559108016955947933151605685461597902392753844076890762067964530308164593559635800437879314472442515538346102608013768626701306345420249509794689672728424265752863986463640716926309378530996470027950784856483058253508779595642809922845412023770689834286997051523263817179480109306626538217748139172249128468126224940432424625914041034403807813335445361519559233580535739321975574908604613481889542005182104027277201257337996957281732694220553265785467394339214338837724452127177550488504924920407359901359141616284353089721790390942038307888189792050229658873295096427722409204713432832009328792654344502609095493401265859333719911037650881709898356149578333978086732018626849382164117540876766851617449162242205027701762526980553177758335094289391661034680309894124499765211417438053919610521028170386835406439702301507282019535782684849649681116100175491137809092271307122561151269303817933393015801385645051437708072337372956422333912623078339018588756231534387240240308944402814303499657163848711619312280058762237300861696965090849556294602687998600106289613760544206826016820804637196524540885710395161093315518526885451771878418053451389032779810420260676778028257498332767229141030816742607347324919098973499139510659521421158345550004899226456128680316367919346742975977388247415574308333123623291186264815237541662744418630059931163232630715919132077409138018913331686765685788163390193040002175262229756070897472222858077505063221647704297168028848486758631860196690532123017913524332787698898697370198122068418178102263256005722087643562205073477683001655997157858058465600348840548800897726403666316522844105846125151756659996556820858201217652177057964170249673640314018946905106340542571490337566930976521331666369434153477827194106469734681021132568597821937528706844150164837442937373673180017285000319759141257870213078342722599155962020964290645237211498381040051388248113491809570007951302130073903439584854153608039210532523844977423594985702808902751561652309928672294338931418784433310605872090674914444541504290504107229124652046787711434363627092292730376741084856231907463864541052856881261067470175917581716985324558159323231483151811466123389709950163757516292257388827965978907002522451623057359803099397909470592641321065832099766346471576046954956255342035084116670275247891675971150374633744469430097212392423094420688898242792926947629531693994925625749706898020347237880254102117812795552454508180342938296245068833108164564503878287071563865393718370802454237560342422996445208557931911860804785007922798224534222881913267980315790361244937632149086367395086008612093294045754064587065668429322743628527069220876535153648598013417771862206732483657752424046186080610844071286494220453597946659318560175610779845893921155919632582681527304643093591266445458835536568571043534113973492597581633150127307843706320725490538160500638505904688284635826178666032892177309772763337335901619457996086214137864982505030133203702971001365835542747820809627550714202824415312263889868985555310749172645371339569736210877600072125690740223670492608951799730923146777310374919435382889292902105893727482887214201970901456844836301224134305736296785107746598459161761602974951461009738732311610536260843002112639499116781340659513326417305091983419747962011583032836569324594223898994220592863847641831936503656850834253496316633564338750758178080766271360914887320356317199493012676660603707750606426624438025733612529268325688510287234833981565550638607748541058265081555996574459932555763057574762311896175272474454701783544047828885482944962609233641434296050267445279554879106103747470762600901797225371678209424738643095926223707015996988220960671032532056192201975785229986421141259745794728085769397271043039520889320428050539548949814415445363849639983837504239032376266429237646848192810069798822966537198774011588610275052390952885213113178111312815941373802040858302859559099452765470719005757455967731436290530111506213967035167180951234811608334919094382212138973357928297683443161662413441914814981704183524157760045101474152204178300175533057743299693025232233842861575016713555795511348958275417406724359672175017489289423779143520378156343465794389182688754051835660962010932295268541728532635368090499372097123464433581228547691169672145647437230959489300257528435368342348845784681033706290845814615729258746074041341356327677404564498156253101808000059168816798991116373496444728995648621184969978997686716849338383784196596322459757345175613772793810864750577865030901012723664157368481882838209856825260849339202800449576482599101989951450020275862765801238194944654658457298946627169970690081037314451550845982830395265090319776581956951198534130315132849448106610215532854415074866573329894244259820343928099386954247402303365642949786153346260346772189098996167779925568871584746729516709734388043818422856602510243932749097552478900083163266634764704051012080956326966866010525304925341396585340466049308033706495462911780329160267533883458012976822106575892892323649620856488785711631806027618381249722011945614075545558506961674313863425500599081233572997051938666601661186704496691150895407689276815212249529315290603962865715976333729427145962659273675959399110048577453144782500645802081970414653144936400867825623644783533265873222069942334232417209083151080884731655555740229930277450045321172084429084778761556191030824908394745258213305380299300507903494647541655110119331919341906647529667287264973464961736359486783560182811850901408532251492600827855533076696746406722145015636048027176487744805582565798507410899911484607387286345586013928673535159422727858791641171213679836439925793621497993491641907185312312248917510589308538706849770596348996635603113535517129961177296485354356884641874623762152859496514827827795856259464575119921138360899012882554705541550319581550147467420424869868876821883876694074998250919759211712483696535525899298950253307938585881574467140983414639500470831754565106850653086690882579608184518197936596672612408257759337927026637017484032486512843568478396741175723105856395087013426285503860873083808705864894630009230484826897249159061244190002185579067225461089893782252706843726037716057801984060912778102252907211230739667231289281123720475547377210710268237993189427474843670496507139958951709054627757810001803308553429257375371412493515683782250616354272699897540116833210308315326297659805857943030247000178383926300019515076380274038754005353707349779245854651549652299205126237139123082166298879246440026288988321795578588999834507368568026311413357761736247852669614606680867300113795654020845264731760515655760664734221182241515654485883060832794846773100813744681725607864175048169406797324098095199887935818216605069027636467886671789122368068667714799901569433788128054379780855055785102881340366367661948671953536984242098788483825086719015737306939681514819000525998811528921631123638514217529516968472708567544534998868513194594861586648746871989343331753203305772075299861995115151786780530429393655427363345132360721076889458698819603647145096293950801828357849073547484997786334955100900427957322489033063816855385599005466615189925216865858187427159451132067403217965437683633923655027357182500314186294377784893741965092968469732522838922659769454112464127792464679710526624136863892624284572520776733001596489777687808024824847925709910010603802600158065061505228923098491832428226137900706396095284881969894623123803469253876874043696489198824043943386891543764600511235805412166319372749591217790619220222159954230887749920733723681220759623024715356283840870717783742747341228939719784574653443060958203929053920302105356825701551594541441387499091270478811467781099316747819422477632214129686880010179162124870954030453200016999066460370230360996041224064826083918787241339566010777596224743057351891288815748065787762805100806655962165811878390876489288048306009018332375444022468687427997906607044078074338817729383185304841230277196387973472568555462127569935113437917907529812468587510334587639990730858154750096769443631050244938441511658858836351745865865126368445346969004572020033656445945738828537845902517477403147734647306893112622158731048316036814926669931023813453967383074424221553383685716661575274515688723161972105317509268174207571921634013306440841831357045736561212999386608346324266833529389343892526446922441702861319001598055943261108463329873658856982937407006004709703035733376278659801381758316001522237345715025416995903579620753052538326075736465477539326325686841706577978698143212823847709112768522455347936677489552859546801701225963184429880323343200700282425403179810204444188367691377112544166425000108450961672440638851626168428755983391272112658354842761254980789657615024241261570336745643052866648231583683063553384145751615699513717108087102882970293707351931093507830066349362908735218816435192279666692791378570863636408322825244919094698265562911755938071030338082831922974071821708795481996412375043134437843137824141868975175876747975744872353848825148085389047753996729747589102496161039658454113393660803486118325759597695777137091565557361053958404331712868901675636987080046860477596781133566598210557728190836193534273330326025176968810927436566981268173474047700749405079517583404668527668400632288525293803379568852606799797056236208017425163874857266342233983106794201286653519128454830684314434401996775437265693178370788193332110795297889976482542609897352352198054151473048097793228120079535544324958066816980114819751528302705230399559671187329548437720104579131509689316442491841334504706256418954024771393968264066664204798188210849121734992265513292976308625622255463727786395090720517959438259985180330754668934697930925651149021898992418541906359415520270773701766501798899658323076706948893377727053122223691086351927397076193035703739739090170359530415189639636011559396611844478736924215161737302461033231628804233401256264550050830731698432739076611220155595874627569318341684683351415192277344937165305983894969201789340209585469919254128512643257025666064011267705071582564304471383983166105634939868759018604785852687511615032375068746320904142074260052935326197688422024737377208554427107803713583404350877044491369533427855724015135827610597554573659503076739088515927190585285872506237425096511398376261378963100744612994338669902528072556563996345541225990114547337461851385862287045820898102720765275823681520777623431094523459252745272681923584005296780225706367161569323610310764113553069116745673292466890405799473214415908745374264852684306323521311497132222477462742438679486669289788900013981625049782784587965949944025338123571516864775541726049091351128552120191849268382619162761011643863216797678135577676782194021614834254684198524704436509025525279177751835046367792445485549331305780161724515379214020486002093502519104269561186201394607451820086383911021213971118627199363900223058768372664402133433638051696179208847787439680906660411036153490672177393328015668476789947013192612840205852486876760673843287180885224955432341274890699602645643228817598788380070571792201649258522581025754137350791457962824310031002165935758308747918943810257961078580025909849095723385143928011444329128470126378860474149433150637911803778416644715663987549004541245766340950052001058306250484012112745256268366546215209138147194890117895721928093622583720328617168131380532937742360277354896955253564316641082792264183110094955217730899787948297470696566509461664813188326677021774289646584103190976903057013777988617868206333501881781014739841701521387569031985069834464685383755605964192561727619942701866489542596628794399108630983465457485953330468206757667670381807291721294850321969870097050863887758982867724809559358068225723901863159310848715554395805692079866843651080890200626288860740300445258628970215758604296487886835324879859405083483065765129620002878850578619363711784587893087746457772801178316404605117219400958068532219486272512934802393716565422717501783251821319810458023886366215725955318355413534253935621298228752679225117075285098125846443332691593646798867056820423242130360733094716995335173111956386605961224498137090995454945342470935265137261166179249129316640562907242586270738019195357526816806905043486382962615533812474558927129497627664644622634113078486128436961040532918940645001821056127444224104898443326399931288228998479015174152367930171681213616003463787768280015264621240053703687097416093791677258904443940581787961379213666524123783723610066620126613169489513963457396827067771242941605148907911701509551313131209063037649448669127324031317341487661144380062148907029434973147561880701665046665101069590504885040569500105324524472370436727089702407727467929204559487295571673486021479228271457229639231763223900183283448761346036760591539361733755788982008239625180919555764723306491530869773704751933919852671188435398117812033636060701587409608175874856868691143637415817954807762843382513543337085394532005152515934185543158425812450347392813248315312837126102164655613413976511025444012350629626835258485117325472165493430795317797997876711709045357918397785032826059028420875731624319026381963533247886739482065326922834979323045900326959491367492203571831549768133911747153982886891793428326075869739679440804273506086038269295916804446731377517722480953329914635748177075062769022480697032979190977196802229731114301191862768351146975782680214456262831289322105289283232209188194984625528964060532017011757353553718314840326234216483783868968657905059483434579717053330371374279927754457041449342534936051092332542325644441617341034940154179382390402111962354523584352706876810280448432651995423090237014849162448239818412400646269475949137468426938601532517471257694197515117563032735238392820484633272394269667383442571863104001288005207223781022334635634782392591751279302899629346905454037213810336522330972065085125005262336312130678959386091616542558910980381075737469382409681179279799979792817610935988790685891216073197502250842761661267326772657707023267709369963109637201779274990438963680393634121680130016877325399735512085626204118137219548002715151199194813548763786962276441847765069265185985988938493417156123024353184565764289671798406240084469467270422064398586473450473211918531204322847684884032056127655230924950804020854588119865447054739741844762443246954146416518075031267488483324053352721115880971426401475665571460964415521135764857941254179665338345758880592196692505867061840871331940775672973278280311783559405452559062585698101325342302954920616150056028304206499053615513695841447565625688340318862985316277174746984945105561063878867335440706090846513518951865481985205134840633299912424113936996910851030093572310800418438261405889506456438591465164584697338456491334379255035707885833956015306232957843666003539296382354085182187711039086969552496505962336134296181482023341130617480840692157914564894134485386216203734745279737932419923190822094038996933177184084469596130224419222892138561850767713310386700812312094498500009284609761634420393587713314147727921497033699409416319904047456127114371060731504665436024249070999475154154993161055800311677406848018530546074846094354373162881949621048438680766191956081266320705410291941539504754545237135686728904631435815997895958997629689450252757143524586545871266231574994997830861461191679809347384683638108612736793093732634353530760874812561599855047718737303063931091690460445838916814228633879199566400296219604988459420155105089905262346696252891418985953913436939947686416655555097903179201929624268775986895075786872983939436049256019527812019400121439932763827562787336648537903468990686672520787184359398427163282729124659588014126789683450446476422884760657845335109488790928222536929026519379844777765454129631310051948170672311517883045559039598888825191258227922335677526344551826338416364081362513469272044996243296275526259742349065299348315481196157913858635488874460387117634842704570643794884565916095574031241610065682930227753716888928577476005949116516918714996273159891810400052840831790628014838032965531881351352897925111905285720416375828091230459837431009494161181637996750727036182412035985037461674949979362836394816829053363977310374708117412822708038186774427747572232200780082871140696907075880964303374577247996383285468861220640755158100383536171984049753128444822656512064815915264067468086360042993658792187066195229421141835036657832007920817049299752079140872212928488098649079531187133494410141991290102949730096529938571313230386296418599486605727239246382521152668212431782147615928147489117197738320509920490558500938269776445540697287109599004301694972835239538827208017175679632712916806343778697185111302937384566413080685931440780804110117316942907807659995479857376134784881140686017953088758744485976408382794791881753466935900478852028790604745303228560201171256607950300918787584173105921656753398557735959894643379859575354710197229184408950634129314425483755947664682051862452280854871731806130066050852531032853475142905685328631688075223289672382694862672385682761575668425753007782475673727207963878463350100376872705294181766148814677148554513732639646551423245802809534789413668712227000493509503619521847157682471863988870589588280036478026354452225331348117601241314129967066136938825190851051189737169144348554912649376915627747619130773067103367734009443346778518774376450658768828192683542002204934667338021523258575858168738865896810106901774767741680395069842211944591643314263189523365169986770873850409292161555907837020449314561217400050391718863368868454097477176408125314107381468225915166840317968269839892119235316903102178446429197310651140651749211507173888392318429638325567980829682033864488316104841961189651630289402463482084519274175719872399541213148050233744827984394075084119263641510113605251041361859497911614349455503186050406706856788116426981560946992237823068947895056127719350076408257646857672115275766138460170425097029025627483063318725874469144862116648659994284384975907072893709741770641319032047805069997285836870704430189910135159984260279073068227780602146803252698392367674365026473418639294724075783438735898702597781665894415062585813852362053383626712679528593684154483288002232914267547229100928951795611335220016604803932921772391069377559563989630054728874927698559702209923483884983008526224124141469276858920965653743018101062347788402868773321611833272555017519711289178507099141204701261214423005567682511436203224299086382431457402551129698949633076787360982035545127148983153538427283585159250953147734424909493867548396134360083264152304324552019401828272177739065464367658557160756140760596360151325697590117392896715233536195757639617731084938412072076409160850570253061549514781868804439818347702633923333416807866483634533430701820686934748840333460372146134263117945060223925750869594424328766349616761679048603045193015897932442703426069382458672715715059537062753078607771280100988375634471643404874397176269661959614364766486404653274779250479628690971656311789916877812453622482019576794880359317668648055903521782830019468263344084892014803526254455790750945488628669874761123404603879122743288025995761153566345961269887492892107703531847880755171310490047648763997601678854613661504669442267182365193233999772734841682102513948235820428189341678141719953599905809894308141375538030606153183212707240684705903603819870716472384467078951665730513085987801374757980695955343834416575149743857215048169637420221062400490045354152465195009258089819842805974340300604508596681681815515702683740297418379869070325475004979806523692433847242046635348740192445178520192001301614381799448827044436710626125561825942731020477307381467462533770873989561093737046296485209429676193217674635008216752331116957192006739958595147170923924602327943400612465691254630005316896815232009729353090629749385916493981203662370085985609694814116190445230030427739814354678814286642539213029341668941093403014898741206382223477162009281153819465325173164408745925540344017520837052299771135004280455380747718989590316229759924151528157460015165755311805737594619665836022347715100249248236503552444837603931678578155488778836678156093469892038845259247869993444473430253903988375787540375142873148078523062459069859804586857139903877825903916967982759084888835255979819992866477073837913151470052505798183605140483133096787202888210949377006743331779956212991677580303613276491447083979092506421574473117080999481771900935606011903477648574837190713674244308056699545686567685517099014445455351602170614571179253963308220862140409485730902204194404657646975142036630036478783513877453063144331512698192670149954381499981295655884559059139302780112992415860546270000490544305814951713199838309265420081667980236562143649284475537216401624510062859819655496781854307134727889079026592100972359070449860961146162601615323184985725145386525091803539396154846049181058107247141606014489294864363412137434237271939533546877968486206741641562758773028910650953644012096167901444720532681733116406267218573496351883841841120708738365657529240682661458537813320962875111838068792664374319918973413718747649918358519301349789254894642754144334503951461019766540462689446867535674770588515757073076125163507861678057726745757598208828659080633769286810805461125855859953361093529263423460982090037777487528649905331359430967600189648375935623154140509932947764108952080084697391157507147487188093545256118842082505412361760050007452721071150779245509166730776728405208148501917307041924508897498579407299762181958349051788535157903821490697600153412206939606071179370836354872584171897435907223744575283750078271892121512738160013791287842873275042848137315911179128211187738134150847451824091248764514044831306537191790887495883310323956929462450215213299685566980158549933162039159609936246003501532289126308331025118156073422400691412711979366552406034492483440762164861114111500580916012790761202787525728521535188899193503413224658885707137376295952553931492704691911414568188670008716455849088931429098911726124982418922905158320182205645145080749593233170169672498063194293434772894283221483715734242825612599162437271393562563118781027241797577918126093875370830064740351399638511754597394290035363569996492700635334766245917853645196700880823999011284328481188405990580871882742667138846908741164885188289721903842611684875499037851522920199007338001555147340216776610256825434275851264992591381236655243349207008576257779853510440815062489296041094934342792056943925075947885794666764028320119147470837687735474016462869680370273449960302714496015485071624349290227678130018189370844732902185805219741605876931687356186140199231480313324448719874384102782477945374414482142681195481694362570209522311512635491635590833558612551884004609225288900366549376614482691790836743369436601278630065313969420231135771679398546885643797017740295858194353328807774716693699853382788516034353245722369726444519978619421415663027842895349362359988791535579894577383004777560263295737464645911197883742977555588287383601646201243194661306481120823070006558839792572294528294052603467757907656502999464856637261840907911341925544429715947262851468591676110517075541756902925246684441355348799973218430290925572748705371607110830576121770990713392656062429651506038843320680851693983548493800570151938021612437236525534552235554559180396047260543537402842314979395924638858143503280634170833594050107268800536213450403896733204023038849458453148982341369783110849323435990066017919971214691297308461003252841822368315426722228433966271806374084757512918633442262941682364940312086874630136069626129582236030323225353973400500658761843501403532911574183035178030964011804774916452041106482085370387600337785089379800451641624646481539083493553036305782972246860178337527171086266384838718066159466405704499256918920131449313112530855663964978622822945121265938510782520434275367897771526142645055868649462144399996824040710640556255390309653006793219617549108871396305068987690294688971075449033906968628084516204074702777657202190649502424916068679705417715965092799779666975543989489779378182710113301479224070829921380065582084559346738654407840842313027050025732187869432363697490287258407150214263851904228892073365143242987894550064361088183283629813695103978626683220734356637029359833046358342107809097941148405642408960882274900103411713683972726189561501009753850403081726508309182262332878587225953127726692034878435775191594211099317098447302364177362272687723428725136263798162188900582328089868341985904399594469692171108275390399625280788585027946907032534168083259480168767168073880804661577489683524937026924868579391022780956748197299281025191900753039724390692199409208972164588999512707647035608469276696665719895967955527333852571468438400309512195356544861684228063507057473801264901240014127606471735433592965691994870987786936115733334355128264406225628016826507436352069838613481360048032307650059017177723019026709477411956897953085575125708918300265492612983553575917421358950884979853300274880938187377655503322610562616354473396690531378913930840538083919612168846781164028644096697707256389353846397137948428156192365248009881066948272478570667573021221625902179023396878397937958750425039131549253127719584189977374013785098578255066429094706834785547600847969565302730740899684895580840245034784402782377080930565402026054174486012954116445703016434762295630572331402370761826774179772902491561887607751271135055987585970241570838545910473308739648096224555951122222803014859107778172750999940949894003439858017563776894916631042905500649244598290521840722493766847810418608782040699818900353481249780548676284355108213888882492161614886494281072920492291263135652891648462265000875748167405890555163971477782706873715066667667891200743040221493416556007669906594819570327545943597399055268238619743605224503743997895705386050192304346217996129867473733235500266578105091146742553014072502652331548959132972055474361657206909236937658397204568521766612722833551880883548981525766957559397498268919873784283974769571253727683442442414845769314260896134486193093679927592506294676624369632040938456066026964464982761617806881015704408032771089406160742534368663139923491991746761490326211277827420565446199871905727924987714034232207977015241420540179866341617360456158627446976011181075433885271984824238246968349575997829240170096356159757517060988053817161743372009621146410535796054579973862919760318578735199226939887185499186411014660694390430920714798161731428946242306273477412023088702973799823880377905600243393544162443924010171885720700521943929131528425295429021193100745025248662812550401409079965470634986711545427587496883530787879778050818837942984164486044879382037305969218141215559542735847907358147491353280979076744056181236945289465749449001485538173058668265464783660165364137180073118303181241395646240008205224361104973508074688917964006861160291566069607754721771756897233870065721352485462492426938047337273874885537109172102152525811820392600086681632832836374189048380986104494143024505846272829002697628761331818884040000910767447369591666469466771261573251724871056039635231050219301114407658778739048355239437629761106616418627792969872665833721161367617825423686825433546922896451413332843869024282733275695179557944350346526695887846206206175909638327640626257771512101639795156714946595789405444701493696944038637021259105926127699044527790782234708670771373087821932637039409200150139024178996007190788359256483994768551923699789073971880610935358591205210737604142678596281503262227410398536325423802075828901230567002705552081109610588412140488084758418177743060286966539973579729048760142310177993285635954791342667297838172698096591067062579936388538458304626969767854579720863177044139734171288609441329323986083636369228012441974452417317795316684513414080582298219058459095624889113846136362859788704884627186686858171674536020415215631222913954031307292781535891090485660743406730305897007188406580143494684443489380315624119134060367621365254123509986670302402955390405525187159895681335172466441419561432894231351664778722254800211812898580117821177368766811464100921826635684744482450899518446486363838122862146622239756674461307068800562809561983782443606841602226332072996610427334183749548261020010419658761441661631554552969376522101771309679415339329674822297044838361225135566992631745224146087477771729006825608777346032588586248992621856837175039994657391146325338918227810121549679962274672967480549460529779555706271681247126585785445400447241149420277289795868118598090678689628598328165261193871762386862764150718120951842764880922799632549394295280516808964432812352713157861564104756424622530252393951385102939754589583486195487506517088283627841584143315837608422903962611281544718014491297224480066685150608779729590819633354094881848246661690181570571361871077811041200471681657433595247742996120342767940926147783899430869668273330831132000717868422270530848089317497340188388322420238195907736726595096816649463751440340900234185492523027399148224187716350905444809864594106602920670594984056026092270453621422311050798441993600334155291979262935309809714815965096122237842443177739287574051756405642822289901983446256273984404675519119038456049252986933326327215302658782240235649903763813873486739102932131483899650583168724383579659251370387541849251387984280047686785072643133414305489154965788116740323665117052368201741931574897772282110905325717920507081319223155875706134640992134708345347058775870105127844470748407544967093598998932122299566579282878910746136328307034877611024898773540884092440795670273791179018346688020262121299522892627746427481393554366319084347122818891742791198587498421531524560394126773325797267069087793545680350199637476876386033641261804643633873908332694325577422101095837516682921195816283879717149997146126620768310943693689034862922118188842896542994275385816697807699319028874449010644323752578823155213430217942277004507360157764732887106474007052179255967794314090091248249307675352721913081161484663958711415944381184813277230170770890407799393087121029130288624432799324629735383737765408569189246326144324760603739071315643572655018187178171315253360162590623282686851664292495722532374225038817493405034789343656007451751077544620616917423825658662563034604868502984442112347105603946682226738179833028961423719930111976565801777399439360920764882777303055301749161841386699254700935693287670755469693609998979244004844116853974936554441652363592206453116561310536348910429234560750206755513451110883083915321193154168814762937774043002826898791930979765150748309111198333544869108804935034332703726093760979199769512321858460086271679209059771105867986858489373648716037388458134081578231281982370262027372738210213378846981973653305466313799983050720387413964276340632907372321361082844025125361147950335977460906343135282046312111035396187452519805166068170572121965959142100039892455943181190236041708482430389618169114079719189456020071108490085952354152479002119983205967983641015909614247591375158094791083120920365162849265160107911845008210793291083127989539450135507109175415985222108624849693681732635322580198598415124133818175503361396856572571059092479704393099225258023837429717019361178529577832557913040814547380305568061648574097130539767417654307737161117038167198257692796600282794576110772516754203923730779748683923902785762023752961643953250292039829599963958543385897836843576668632264581445734474924444454971183176310602530269863352067754405244812674072708908620578732185081377260548688501880498533127118026469157174605102676433312396309684719160776846886093278955745818094765285222548105123210740968872215850361530568413738377340701181883287363895549899458277793137688517913999286815578457472063909200359081694060002563681915355312197116608343206279281117229482843730898927628983394242419481827545323189737649802845984636109292471221111282985172725753181361970980851904436214282025293088534181358876076207937366319095672977301175824662830812725277680711701893444379438215059774635893661782785501116224065720728288994933526437061837933652302508951248898689958354376378549086656313839565881674572522747941549728270390667956996712940533513666006353922193616304921087906882641313225791112749779449054379753162097425039278189853708227022719286667951704664733406198894584852897672244341860770100756604817182892580528457406645783305236127015929596182558312332236056418298254124653337031666267875519856735423426639211285795440724960291108754906399168757811886817906033915634567340750546867257073236312167270927592716140671695247209107819178875808576794961538923874459015606705887787152807575882370283493583754292841903161017909846553462326344101809083226240744324975377869454801030034704605922044747121410052499708747691302808669651517094507635358620414643175440996409792963537508837601882660124910404885559149679271702513329782630966116225915173564898322927403691315866836716720860214727498450055649317317814203115700199197256844041447222062599785794185585490024731637123383577912313488541123517785944671964300640254285873863877832265359384889589148091320070154722410475454991366588768673577186255867404285910295187105284619186564941480104772917553854948275812263192388147504390764567365031288510473168611354533056793827499684338784543618094289640291828291610810116385066764758838653130609104570413818305240751136298987806761227051520290544935539600076184418974963203407756949427996669598194519230220540843449734582465117205334315203723987297496300241736498177102425618516205916225187665252622600523278245885626361920951583146680881324098162458920402596678024856834016448525950106201218677089671133353803032488297719307352684132259457282023486458410437233650940652825469745417340637921902189666206153340096215102481793209231669686122549338446065165888606047365526961990988267360670815379302809672733175199486358017501933579441829380329375332623127269959134311311187670045608910697640814440593707723840384801492454651354121346833440645995118822444805252140549397711097998274037904061160302726305005312511671638942835438042215791669375716642697418993895989279916374863936080840401813940289849561556621899065889958231466096439232895337411576279209774020075392056119052311548317391634512951697889094100611766844310156429172819797627697301654536837656069250791256000865163134657686689623577470697127440599484039538476501899378690633542348047886662771541846226065972791593791920770995921296215749808909748422480375249797701007979585065017212454229392291680166306593687935395516582144710260366458862611787266879718771655150723881965000822181227376508299199651669782966112738103987491547266768432484168923700174452388087004840365116164719964956988939634762199306221434743136540713085303669909109622319696964992427938498928771267128527223688469880849670724383559952147097463011668457348490186346193619020435006876719100869296978431871529946290292158386392525888064188756463944261866568862106955309252493293559274507447641128185739970881123171688157063861501637634787211861856870947257257289873554983141737697877132162921222211463268738439997471211929156003640472849786595556328907478145867835366423774760812803114361764947755989076567534585035705417081967641602313618216320049060949523728320203366031309206676459667679743513777025153884807869988154975508967446886816496478865814942558626254288644986437101594357066199008389009458006274040691857927751299164334886057168507643506926528067917358325100661897668007657468418936163987696078782396433214927931098167216994216041955532185368525318248086775849680494523249509682906329531394216756748857769311416104530942599476130807688509122263484709211340909054868115601911824055825541643288151101516804558289625822630274839756709393888154273748575913639130454737993712023779394853912025501686682265348342730738872371439657053562070762504336494625696697209210817531952538238032565368731139088403466903622271270019155984847780471370673385733374607442461243562593342118659406534485803700280970976084221443164021110982336778301928423006537574787204288726692863664881261203349103298174670824898740264639446451729579949699667612049884361256450857322922543946748635316982381953874259203096941053811267432239812580458898570641517548777782896135749975077479489580547084051798168330034464581913086802498626481317761206566364111322503661950326818008529491685312045392013346998993878473642227589962510028572271510987766308984103722851320727510367885568829691824868084125525745793858986122519139453018439324377942557113465026471291456077086861099009579692770622401424746276321068418006468661278061235710788870733903965659136853074897318426436209674163948137765102061847833931534703097756376472040462134254434291615153486432527708554050604551558844368804803189995777568766235442054270807100411679032660058395401781984883950173817828866995254956094760736896125847070929545230853668096406488784381174280305105816581600144327939732545528408709251480956791534310148134664831796698016583472632111772490425507836126268398400823557556260856007623640701164707643912947434836522924544648543272714624642363155751884718362504476624145726754153787175603417354614550196173410471980371581041013559216610184335954290121061126128534136143624589039532660599084880358612295488641362118138820433441693710274197057712314100144328439491791382998253310995151263177634659844095115430429817134377287029815299234589291221842884882023287212367979214770478487700026938732433868908123210366649753867012270896020666420702593714695395106854667487007985854642965250957990398602671532841310539836080429164490002335843317121677628316713672492799227857391309976736820309361841289519626786120431248657032160841836738714923536673489932215570566899545320018192776824201779659935232150672309423623583004471489501956779632150257437412009766231869111475906148310177667352337662923111131017761968318342285430173612228721311718068103178877719392519267035945571297546565833218559687607023307455958385358458773059780994315707457190162053244567960172526735223250983223619218324755194731375180536791383539278177568679955859930997955383805472200418602364912196110704820530428754665811635827912184492270302372066800813286409726995987516977654587447716962837339580675679343986734149983899508397485669385116091576830485549795662485813047026597416254670480218075325697673640007356665425816264773585893031940810884939837460171226408249001857200048318197104689430294270478353985863525835626424322054972057472350526914316774628214125895769941747722098404838650867090719009004882125869290542815528635063470995956200108211731016307426198139933015949997600534722530769972880196189830543226361788219086996022307909898155235513198675474928148253361025560433613002661915918727649245031177501664360590629408753460931524499962163919790912528614944566081522582256292907457048649077124944160353156609201716960933698937859555015455310683795915702761677567354389406921513466299699954546868222582706448438395893673660387999695654868473209373675333546811560131350996692851351377790329547551433746852101208733592101836806298855377390178334956311787280216125930605123594986981068695752608298505201248978707941378556405062291138321835327374037144989763600211362585497649373616712810452751111698235671507683096765078863103388465911691981046495811375699708990056309053283470668350776241801126487046396948628881905897465428911907306744835215013232712294193188038236232400088277080480226292073103785427010547941641872625082293827455711212594320211156758289043665598492440208914300633148693049899995863975269620686993978024339102514317878597085506952912377682014450168895724129298594427992933031631162442870991998395589961914367530022446731755431046468359276775980704945033939974204417952863019962782234456509657304427983310435815454018167311251879616435132291324449661424913604337974555690002699547435221646889665937772104935931022054080447206559331276364127546385297023179295393633174894226206640799136420178933281103471779669200738794296819054649915579802804563915607366119099399219553441794208617921183581685047499912045603012023523025417062622710057470025321575836618945748627296265094321454374502619855785198885248234419973198257593436721904438020221868359010774066304305470856542689456812945421175116207727398319269590296623373287614516935202022673476634872869371475146328200026944167174080511475660864384237151551583562062130221032280317701039226065185071035512840033211584105695250608295556734664466784996877371160129008870888888197753585494087070802313638979624799990714364605575347820247485475321042532275039716846666379847096565475940737401258411951118041940483591156543166562240412145804693734866213504133158048109333233624818419289197931395552235501244380987562341141694074848287928625664148833896909173853414495190349991567484536126942756311321472949471944338191441449760874946935769779079953669798722854253267799136754570647414080821632625742762503521674492808150214243013715084143625095473657085221089114833178155559927779382511523511642988281176422145158412638678034961858103279754986684431468385184228254687263871652239266431371711396797225440088882316815829050274089800588126451200088446096434157873071277882173766714432018001898423221207016471572464075650580100889389704457723718784092031225109431568538313221549678945871119723598893851227364344775364187743114076010618756603290413895463060454499570541787598694544661481376432291694419553052794683182633338013871279825196940991394453324332514686500795381366599019794808350282358946912290202903195128536243940008875223548588586421112549155362277457406722711341919466039752257971180480610745967157619705187992283221066433794294659141462631908758855391667106871301224520774244562322656415203309037086502985568932874553410092527914333051941224004712603006561350257023403233194560863983663688320561537004604941738552063752134611153748040026170371090674209835113145806150600017983934396230180337899571851308017938323162515929078294779253698486820943714168294308283773526264234510195797405696377193187222239093369132918805156706465389698316905727593555893105233753663323859588010129423606096391600154416406163746535047546358156176225753550806675527236741190856439457297211044429111709383858406276713766514222691780051890678320335712249438130122671738280692780441147770884247810944713942640079626205775550911769911736796780036059856197342055484522009925672469942696132141238508821360970571448905656657434763909998472423246523450193985834579529977436477187662597376215352277771068894249178773294722521618341597986657821025434105282528555038488746880162002262290101563046359889144941354011727456613266680787458293998211941248541162026550423147746825971667750832470072715739329668504191494991730925182155450343178516231715523435085266685910157520680347167604653822021598701332198214251425550040490735967190540063334171034053511094435179556081788422579222598298046303201897038852343088603573011425834698308159230793650403845127066074426431675247424353858368265057788559998379150907958270270622605867075046208588979669151570917324868971527586569841192833110674961719640677210552962267879410189165252170073578122453710275089788193830822018730703787254588386135515826714344306779306585653805635315915074432999079665081626795433093197801912363172679156323752143995066098653458239780926172948313178933364674613733295356547917760094259824139642502890796777668936230706499325868753622262109269470238172426653411518300957837362244348121554907859937136979727641294453320292268814771814325131987633261076062910367948747337888234947315149671098132206278106370196665016380673001180333624910762361977410367583324790116612326644021044151736607879405364678757308746988087195220590719755012770310626093108839668004411281339657600580870375383009481058251981043748631400906517383147195835016252484339228283940266184882910087590372019218986951420200420486855647456031398904269118711286624972599236986997436143508429523556947605020477825188709135925238885185241161896387230127729766848441817252783427794473816240879596043144328127584410071281073784530596900946927994856162149642825938241738540915195100537486095429564131673199128462823551034293776097018006946403919827341222890785470169047270428571841358740688668826756569719368967153319007293519087661706543586466510059943334518922571941876051488536193471432693660345802560646685593253980140951103944938682148688487474320254728922390289235338884579236429308393333118269675330125250326220500307673598201267680551417976468221288010001219059847724483315131820292071241465715888358657682197363468074579212250764645442829244421975424323104518995446565262628819061258927337786988163178432540779390935275328877577509000806137053082202464740485129173986578465935166219710058058799394490520598628351088442977993451710546459681468201982372877860114812327861357192164947805590753867235337483730528591029045156219493582461964789441202682233215931090645773296807433473750657385282868742564127215413640489160389989602534074271588368605943293260327446105728690607061081737921629101828585985043144700844706819861268074124353696702913724943858232432366058901851184938625721292480996049144644953219524081864847198874531135515769138132343760876282609196371976484348787263520096961713010204230872278095682762679444446020270157591460955178557718935585179496259853757450614519618607400792877365434772344743637574420303051355239655291932406183354154819376121771144761833046456710421753186200839756249895742570287184462876489629334972936307179344676906669734126641958543132376753433245052732519802158742564938720949313494622391216707760559478302229669451261232071067895226644166094299307355884685702873715953315912484577909462103273776686041207862007310777967988550723555949024306209602939154021457148795026308541940360632663612124476839203738544651224885027696525213031805510417520164404818754549622070774020801432620051052206069400833860260719070202500367747038183684772068029458060649409174340594761384698885681244766016250701229288707609188136519323853227969201071989614452876416686599410914976066888610874163687696269671636665148036611424952757946363994630574090198029384069005922883811364141884973620079365280577908097975820572387090087063668627199141139543504554638752247343394605097313231319094467087781987307222810742964038380360854590912909474806004717967516836952586447102987544419862433284399741568987132981527640005536602577279498256871857980663267688064862779471684866223994403791273051899774112117268225158747275461198810790497366173605026852024450712848661609310848231851164797064833807165454767881401964356365081681677611276197860792731357315335752453479611991487722148057803123800251881789635180775977470158005094355244223981182869080710561374583687993632526494365145372269808668831540521738151611485009951876759660650034561678158781278658336923103908444048692083725860046896666249933342578499673261816618226817714580128545730309786008398167255675804000095485959820291544768786712172060748257606176242202576898607070065147613205334275530451507217469897186558009698936807011956407609132439454826621421944930392073345373094554967388563803763629841631194613794659721445752025819154577790629821738571305822683345342114260919601103796404043083373062060207783191276528250457250003191120986300189181068440431635489163151370757538698181503200109103962701067294741262353594672847668052584590930336737765892479652497555233727778623798306048773666222701680976850554125929187612012902490890876957628114353976728004275115138319095106248361347099806246996582441882982958167746914458912309396858710812426051412532625957621350996685122014255054161373413478263225061710692382579364939269337314090676856914946810979261790194254226373897913663199619211597200705884488268257711814123233390841318577137511856608295108470910174913580384566285110850058894424364958349864527316824127498473589109379064165239364690153125415955249579529614372419119520620329091847533187145640330128834386320856327471259106548086077596333212838004920026032868597529556137198356826796381405841756487474425388055036116257691071936846617865686074225927440606153758517732232037156549775764562704899322239096849610095597642566737988516554315115243784884797203119924006006274145859891698490492629557594958154815061009445429520505556447837452794810619596686744583542623591386265652701993643810541687678628598657215227150274406772736112009619216428869205561202030124231204872094872697099439275623756218896055002234201875697724517225977257539634146465116983947188334607446671924317883784508354606179203188368489999928367612573568725317872502004232157885783403367489735471167963474850988631662644757588550974356320877518694514000796711961070666542147964606557928182095579119665635080778498559803559832482354732959302991495711251610609582342334297129667869223203711880658595911754380052210681688141808673403249205910968351201453628051495575110732850932150213034931126041492420358824851831793315106555852508122281149621994051458577624858479129111519885253583379932081879854615678389083038447357300055861671640804650075513765244689555755678955917178923140899561539461939045252200214118967613431379100857697681633899379037218785754406847415778288940797121898679153343815050863088023784604667078112442757821269395550645273372524217612687544710059935454779025613204373973306972506911999531950541493585522826076665375471709245610316914009351057447147543454636481874110111414350037359570692829623345208861948733415082258994018515214212349982310082673997613969390603658183741044178790006938361028801401925996346597853196378584696338730066891858942673265702015743192789605060339144562149591154714266037343741188122494225241583623088917006500869107966484921633714510592712015168583950795696227580790275001689796851038820846003011127841363886844433623308164937190679193601306671431350575878212264293210107463493100495801338522943311845019592492469563733196251306008458485760124825864323154409799872260178443552275128051670202015312561644473736734952159761610368703369169920241336017826678992584831876589687725245887948076739779477801761997368198874090980905879371999518058717204615214692634737171694742683505221764145252658030012453799196389917379571925486705375633634427471471762943338369135518024969942597697442298913267735710825968505081596407443565099703724349983862317201616970645638173745193335749124758913598220758148464152385552145621337762216685622187144051315783131318219798241150447150278074412313674870714395502254696929257938306565711396714471616596985039113044649269523346205299190334142038694783686376715716503791662805792824084592687930971631455995891080928075996889503137505815197351962752919360667441542639150177949453783507557125383190883842490465002839816588666287178496346459875387379958844860367369170743558662055419718113105049303629936189285604302499651607749602805411989076274973472460992692048210113325367456278650916974604948717683198706139857392695488957144014624908264234783345458289044941281799360710172681150601168096577215361614707903896815087148270598225536508191464980529052314451593613502590534719728353515747199325948937146312110720199327455655523404838503067912569736343318654307408992048963030838460500935935947339834803740247111579617721177949485567856952027002479524682368478548356019979990819573359247094260934555657268219981194805565321997749391914573098020659226013371055284266779634073885283191552936283185423389354706912600730217061813039859929160348717022169707626697024608517728491631005545405935898640614767057174344587060655592719938717790475863851519563300862527462889556764613521844536665288794587428187134014851165837565245002136094638679291039949601719507966917086718863718564947358066505867063392766728763219343785169025472493600713880420520497480846977803163925907992406329798200146807946996708408471284812597310526821217805422009187963685235800821371728648813002383690724990553966728376028253387079552448166694030717138815405009152791341828041477777556586047827472079832967412163957181625585608636781157110705004791814604089305917973162571520630196310044461110840959132082351180198723753380116109002926842182250001754012175208853855850136359761772461097107423833150058398014557570250417678686029064278157060363662258927757112433089594636816195897742478019562493525344715012706078130613515651512715397449129602835135516512759455912717956791280135535384626498917614107382366578323967760690531461750624200272872493547449366103398505128911637519938247468183630610366718526135141446053842326700176572791943009424629920122572042047654672734394741452538404979883453288076451204526712732212504503817108970136957994245285445703613381817509054530462479838973828271992608594342854155995320695461303949262953876392319553967594169738709433435422642037875816614249673817411225415430594039243339172556306169113897478160443633616070709969789091516387852617487841746374071585301326281103062513116181995744281627428862369948848609598693596677013528489295482350254955822491919339390826214214774114646016090180598702712580833529267524933726438358216912748560546761836478886726447415902123322113322579808555854704613980621622716555092866830319995333423820874177977940988819791914673195544501653145333127024443411558386303856345229427830245662003788605458961125236913938878034107525128139069038006802451283898887978444171112068956616412022162425792093216475168659786083156270016228046797177336609002218687534623003957536571199066476718878019092911419230980084995976577516927649046778477903035481878402492704996874974055382592176031757673357506986721088550685665482298223665581700247370042774711628181053013546229962656800464759576045722284286994889565028523657493697857174496992644610432641249968365455648178004790206420606491906891493797028488879519271992918684538046803996334582439488340285186545149163167974361639276232121660492835196936588802842238552564554229537809679532182412879318653991341894141001390841335324799379141840405397332624262300110709776961870225496249853522189948076990736245115368507888579640077951805866403991437746531739668924003411884487649604141578217611238462671373708115126240304635704979015172069684915494115954788643816888961169355248743413800420256730691572455023371364947841492691319293857259327920884967163499408376643857391775494055710156997699670395188297239985844211060924178467304156994231943967721923451251302635683201251728104569376685357698609409944244878171477791293353308098613824092289632549421603779898929236465828872343570424644673248394393210577652049225992234274137411641786561570427679907915320285890917351333330056636324918720668639915036872631016568283500037803715139810780286779950440337175829227098074309759107594260227737036518292892002975370675730969476591202194033153334745235917896722629513737952193368094296834868860915070220526109180847972109101251538041049635384677627019350242800883711944255327302692637648302785532176819049195439285538906940442706849399284975636902169649276212213574731975682053828314353288030122070813616805978339537405743212114008154528832557963311450627590077301516718850670231743780378198129611596524898976926260985765324139289312247202977489344866819990290140626268682354925140519328871664026993096480325559407376446816277225433369961044600432408261552722841626085945041715744757182132929936577692001262980312277320241064519824597698894635574697986648764261963001179505425362149646682116425437810286624497227273819958887355131608158940194835678023170024092250604625083393787949576127960615493302056228928700424508075441805678505324952279180162145939406792613720141598802092028232782177370062750183781603258804216375407291663983938165160264584263956604502774532611421173269098262463802946661094572017262452868968757859615859572205368782242956329316115104775709173864669741942970862100519568228903874306630742104065478294542490760086574111515846516430441188530969004941118086140001025146183010930648730197790076738349565091746373668465626137939467481277400308736813587816965441201004442613528324131712704458406625921336758984816887785881960805868479140511048826444985183167565749447696481700061720420265740401170382123350901852169268635760552439824930298911595408111473334019152934209350386585243643578544912064811181195280015076371424651711909340772300190873605188825215715612444738310951737358983950592707990673045389790170390896224438250476453641779528425746192425409677088387006739455252428337880246163102835908839394745887108184655048233771168460905231727498880873317781320297447660724433994262577955942040966193156781400790701635199780039784233059800668920099029157461130305092863471959512020584907405042792745248546278323782257041411615383822556620614299643827337950777266454934389706580580787125797815920158799203918269181477764650775660354467372255105114752467598388934473066168033904847124221846862418403030887995217139245661088813564293059427937213262070657250111151665644439076801703381848594854676046526983264629272104242550541106076904092098644777502744714970897745970703472353109344707759131538016728093511117286623994444242873809991723608354206669642722560869612235729331348750044107467265527606660580659991707322994860976213711054002809330135611466280351020112122231002357524140461649954248634610501478920346234045090280515549071508121602937451135987482138438318825285877413728229140788765709614241656827955332633069387742901434962044094065755825964922525225700214474336513847406017936588999783964987195930644751973182332587150383766136072916575667051010010354454997989027102793874446069275012362038317692031230579515721029985862391850550335982214408446491622515625631688288145444711126149923889279139455539877372258466938879954517300850620004330595442883014734716993044852456627344315374086395125102917893802488263618532626775153627579605015275687948255049866947464004890285890063310167504168118858686129447745816566846124642255616094065193644206380627670437126833483613947242634737257769499638266565902196121986503850170649544409151945927372016355183297739697533759494603848882884337753216630686855301433108397626249409211187674779526678413638134634469401751501468573151333877981832457262956855994850863841810568921552030579044931244926229420670640399755256549817775998308003107213432558817491617118835583967604780018385825698325668593425790284834315037216256928731494442119114044363028394839189625313815386026729269888088872458151272289317871367637759979429924419540147720784763513257924898036283381450852092916474868546593877712902097391593139823170568327121250832662865004976782262464054421974601348753125702732213167020855913306966434849387377177435536308586530661285396278038739733285746959395957693162932704341037374118644943744574708475365449104519301618221323901155287923553615788953175076861461508899697689673507481251783867724910946620014508967164790432660033526130861781061536754653338951347698783859069000035008249068601390936842459918399447935293165916346143973587649686378175694776665665574266693345031907422393247963175286090785444052232808584809216638590307830454378928247657010048568613540848072814082241189629728953286005547839868904272808259793914920811048507606484487793300914986095750357438544876702060614388322833010854793994509888459352918342677429147109866136245991803054349089573800645861852854676455463175113782137819759754650475817561024118476718441141045450048887860355317258026000910371743565533477272938683202566986512291691257138424636077074929276913297321363050476462968761937149991938126764487175273585798600315204392683378359498681551490013523310481894265680484708346849336309646874662726081898741014193991357160559435840845057208590934517581644485744810395966413798049613975827289338260301289196235576585429176557436913470967510121687947982728014022316240057084172663163437003597419066157875548867344338864288477574090686206224550083500963419411354004152249844895450770610230244383120932805573124367252534820592534824606393475024405816772734142814401434206203018376758597054820915553257271640892254158397001062858862943837231540964063282839533694678300111645575028321653330940514587248612340837902330162676596787625974671827504575470545244653136473646598419142969728627540740714252082036225591288122967528689470510933418939770013285755186340327646763763973840174330277304967343959572963201739277798222468862877632403924817923343315187137889678590895701942711897980835840337306817402130736552025722317226239526217078738980332397673414035520361075090101347469360479161587851892989113692888802807970370749219492752544208398595341280846597452432854096234217001037907209491794353738867640781888705134759554366570965192111314171044554172999462298110721064223186416430093476871745406211526773850273952546592280411752484098688750267253412952842039821751220062356661572754412712075980951158629966588778961916708852344965302090189089957287111616147214036544783677661014012128332453447245445883987331275311670943446981092741556302265067596012353250822932648487592779742907745270302867843391561338812509775005128731776362259498834909388844033526736823636707262717470140061338820213373018165721004542740218318517753435784890196734052487061694770887182642987071599934898830013154624239371551105461437000725307687357966541048611146795526542664209317921689150856070908256209069223300276506796553637365930072653687350745845521089012645599164968649873777630475235607443940683491661632424400471401021121203658816286626779257951060927536759091024781960280043054251891745093611871960648114639440364821621126305541144496121033423564634265731652943053574022640771380760481438758647804271759865606349109637734950223862374816518950483752159438768257936582015826475101713333725310457860111321015835498089419665922895927859584484325548532527123782103984208992264684301046832826089259615951471910644091649534762494738531027606544483599802419588704835687849486004052839135693057097859058058063288284687376232890054659974179134898546541740245719092468870681841545655928409221439695912100993835745578008336488527997092329335295866393432505317567117323307618082470327892252117147388009951528610674288228971170519622851915665647241666538071640119033678064206092005705991805383774061612433777505980023298660388485559053311327052645830884163465004789940703109408362433321075714944676926510413181384135158392520180246953765275300839734080362847080290671344262687087634827396152686380652281747689260985525634222545853872254958941596983231573436144770299971191007521406908228211555579754935118987939692522629917814405451220508992227129469939729390111881693718294366406292549074857463782367339147774650579791278056944188211423027779159257523593652063337481302734393019939779556607480332755525689379736184208046147277209742101123614380408584419323761109503697063770827006276499686748367669022769367940301427956747539434964535441258013080758719527622206456587963267723027803983226750667549613698925883521925598917131173540910843717981819203181873644947109849336207297244940787501212671536141905452951512669840490200919439961417583384199410304364939880031920093497948546164046781573982883168362396520220980103013997146402395538380041465369579210978722656762807370856226882607169966660068407344148859143030885036903071616737736346952580195844191919683236333038316808590574492253465702900146568256494235410530794678932833940030637224239155715933462784924797201016960468241912553480689642977883487607015762720482505524356796696953790099724994083249789881653981749777027137619164731517624730627713963735809807683797514155947904748580421868240234908272498221815427402931266268027431872585980601724983828187528847002514705946985808263156774559644513792671453460248890523415815299094502813979093540430577820854721379753980159326229699048739493214768621193045066580399211826633041412811151638844903817399629152939574895658172478634349641234110994274625756680068251709783097355306243826594867988512805293570656034637869016936039418485293568291873946242299006924859683564372317610909321559967674785893017794358763592859727240198436764446838041057968080072473784799224373843828556788854339717702656700012346046395842367258244259171230300372773038380144634503241775789156440824136913447477348657357810235328244987614516990928897361058000148668422365073677240946738802136825871810506041441956315278126563869590211774545560634845414032672733214140516894182975959548761853613358706333986363691387998782409600234009018567311256680444977042420984316311261345016035937967475074660598877546676461586786349409818268805276593559239347194755864894123316757531561213396415539640308673415741203142675551552201800308766825360854452000601758060293007098178893915108843888808181754086698482300607381709246707323303451176561442857706085432068875364587112924837066908793658110407725082474227424362775078971838380209327051907119192238090839100164955577616295685573634246682445368027825311080195163850462508976307889238510986040009583946238240776692369615867309351276007069361783033351670835940097555475143781996811485491774713547602998059212289064720096246091739700863506897517977946261152705889464603700197704872922732451249707782589664388337063915013782073106463778169712420766601038137870915798061802485227237574087142830023721529443864320299378204357116782113535873958575149380534777757781643985147370760021101185672672038901296626364867985736091924711669340781804267896993106373654477981516062753800648354226456487801418222084130816300909915532942493792721726991085828386036432133161502909088402005480754412843406027460850173346108543312635671743759473743866975376275504577406455698713859090763719000389565860277885610378280443459401475048077744881143282028310251028708438939645729877216492531863112389619823642904145871478655945671139990538016125254447716847048631743769592891027572630217003796922831558871953953824318917071984630364437835342791340587978083584323777040857253400153873388394076964258446875798598201800372781491419748449477805034740510058545425018463341059506695644328676940803315329533392680572996130829105385946445793468875219438283152025228765386479939565880102825406615145329176200701636886172559308403098198937430822538424954415109224527546415883752342545819006765756745849444880984523774290502923613451106045166235894371649490998047629728228901763340766490163626743345457714717633175544902442338258718490390136143879081803654989047561913100608948216598856894567888676473663030338732722079377608853628293463668745263473905992675573203686625127911357854742182585155444988106441993789742444177073204682160808221446481547989789826789275969950552879520572592437706824065200287665309567658713624446180822367930985678885751700803764582482464106903643713482869676529414595386138214724140216368956026600584861838658982166774575966442703343672576604438515279200246677401889634079840228111915798251889693655036508646033142603595452450478033978671205374504718422270219119406616099961090729559448064215018776105841305952280300025704557956048344320380555047653828547774431757606719943073137608373127226880399022082043959864757600258808017078566799582298087115628142525848749355103132306914520181789844298327665822317129605818996765901096984137340480381873544437824933389219001923953827018683711517108812737749006429215830161025116793684426665668832126188069901105087037017542420981328198413347414415609158971816118733275505641768965875571024308352274335987447798131402850150801279312395286047920098814265170613228610882497685146941528349542927434697382615905117230918083929933948112853840821223960292901614420364999076146654381544526099986877598508842294822678398998249152802919877947447035395157916800480147195765934085221288159487177134157894713187515512451451798707479285933276488772827899973746450861611500011415488637446575664604965802436669178984457384531345355480394783961600615857233927039788779827469952033115165848474268361147080657666441240963562208528214593822555052681709412192300044984487599510329845127934579928205321014521371418654170214074495260217692054842926107159403913605675488037128980205737761445754929497066619334104673791055601164996346552479208302910610704683487730822703380106871091139987434829698707055044913413978567970990202574589167611984835711764278978163212861385415621023304855273261135524082799053440539929946285385623393509810200603074557341576522033516130319605407112223893561589611422571676627426076909991809250207072360920505617022950230005968632090846098785071336069495202740713189236914700563607293807732936310251929707101199541296878377331990373029016231101216863761211253605317582255392171080052094459157928283064557897355342528511256530988528855832686147623729105387382327708927095839120640881380065895380468725682982793351847517694394979680700418693072555453476757395355393578914290596261905620814405500163170403479228213507819166520421632694953135982850310238862601995363516157232265166817746901220651591024717439005769294300461708416923549557498274490135525405178322982501424196038412049786911957695754758867802890408730591717671636571681908734482019561350655811502443870837543506754729180973129154268361478156554141418017402210987494144274216606630681030768571135179506531530111117346450164464080053092268724005798800440860595437490828258250899682883313282492360336467107378773290774784101275167827565011806241322397159665573788788283644628739589605814541742452526394790000532099702640668539367812797360670714640273483312808014318697505101693526816771716577549410760883850741613103213276645024719727947010949053432790924647044915528184413966088691276047006471480341418927498076612110180660102122565484498047712989833289269682698023662020680215620139117796426067561975843450126540579251118231381556045027770984689398986160651852698811983314130847541301352609945697787889443251290629691545356339950490168271340491065975090314752878221615182037746612948151748064710471833269082234119329789026787053745648229491542887673992973167283876369509103618935598457380398477689933625449416146330028828714258167525447232584808146088566643933210629882856545253664812316093150356021977201605421396227077706934330362901480401090011956676737991581821473681419547686041479432145084503724826842534299122272806090139006031465488700361319381680316685324580089395206865969912902982399296075241793010786827973851617739772913071229859642743862973584730506164008658595987943058937884852809743019469195636460911851436746723384745864495744788713479620029012134975894628925741567269794356704156423772663076244097444426973689731695569828802817984999434981848014709603762881345923281667603222996859216575049833548675141237282417486800616071919308403594873690585973580912841985517147072719255583193848377747462983803696236317577784509898122290268794074062795828894706098031815421201865116303803043186084241245332725575116033615132696504186349526319451251320057223098143636753798093403835788045021012234883916566442082783053350156322753709796168615528771940860935246260861385333002257233841104878079976196514174195277804439395493062115156832181327683928877836325323134603597740119873613380829590422738626173536807615889698067964074645386340105680448610975860533208137365798070211565291064631932742639552585799160244198989496729999588447960351459036896875093509460686681856824715960308434348291560131203054835912000001526613004433583954559308224946115967752150964484207637853063116768089380374079303792200016117063093371705599333139133677648758885914608344512177039973460006850846643506266302666380467258572464784313467546477778039090591624346401481998249908684139588791727226118814784534495809272450067663259041898932447575417312645202580979030434129710386868171801896691398254742473356446358432363234019292374326944454355737202807242520018238166254421042678680382104796897987504615559454560541081024164585439499839072155534389202879559638778008764982051436138380381110269105884845960253842474061581475293019371363532221532926601844831542456926789474133735438958599697028697953839264746666068727303079027650908872096627988956622224729775985944638922617280450577224068311202067408401484475439060163104502687357671222210249907373534928233698583040096897353788624536099929101425902870715103419939974372509860276182271561973721442878122262758138944809057558975073791530284088094052185960315786370374001973329567506325440495362361899468760009103872042238080669464395479027722539133716630043044364502865594534005939850171488929647332509576696667588472544767134096603346307414113347896060116441557198822830575215150745578032806218985273521449000242903214392906616342016951384761240619691467249754473242209881686566789942852188950836569660640564424660043064710527794124822198358875345981668830722835643087044607375229188216404403104760718523779897973945033216697055589513317360923634480299639846642105089961568941536737545852025225067134659572555138674678912492917461600328031887980434115967405709119276720327173077626207740188174021681387996484299620021137971015785034438730334118221089456244330082386322520444490405926613772436454265749680133806822073713369952096388525084979979896559755690721536046549708015631416046985516701298557915737150320918148359520248998460846290884040358832725256849299703054471794919761239935131225540792245130180704819418452000620394900495842141703027575553924131977476373268852444896416775634252998569151028573915122844017979785204154187528444167066310332665720579058794141963392035608819244907591946990530842921662450051773476690270089268786037435070072466977999666444785747397432644076870387696045076393642036322526755317253152775018054243817191055390674580330110213972597265164002905403321521850316080899842780926215456701400921707300922651172521008508306901380877003782476755944301049426398679219672617251752449226246222121309557552528694068126150562007265914883233175643645656327102571781259331444237895790961969292590673610611755826859058297505762612025699039488013624197100427056712785953203336600907201845373325094453729139373167850582554014202141472319565208943367616087759181302732664116924728261647432513742775611979522661249222031371919134223723123480215160447159009828864507143689477382297904274201382680134181034621194265506921236119323010987404912612233523694523241888752296589477315537088578127805066060154869506767483401888041235960117388907818871019348373731944406044966399920786239585837047978562798101611781282993369875897147947504909102569516752528755255075152781301241691763595057615649404136080331353328616318738997596478050152915176650594264683130211698041034647050716303974039426139378285465464243257353980470476590695871616221691368895963489817659160310324365682251987939048206824767534644877115454586435161877355962964301505160507473052595680087672977037259507475075409064942857172655212370286642882199436604734439786568060148188998891930341909214488369655744687939985566596355333523584601175022556100559275871748856446382380848939525582524747125392337000045882398058973337339241468520597039136209734729641716369331453650733333860158555591377722562257248542423587222123804440305764940095375773427814816670035504406885903591632185000331115456941940738238179176047069266966154629828046035349433533389277057865879625659343315709176104041931910173819281660646892229817409414771117382051198626755921725767659690677054053558288467229160992450306948903713581796782861498628511982214923762464211584683379534682918138919179046614627211022008429032452334562142741532326414537876348324447838722509306860325688869444673220494685592551571130025032956913809470365740410030500464638917953615807941909393283522390239543220879716029725209575244019672968123494654607145493011278489332521387188951176225261933695421662428823136886394382624955645559919031492462892654295493079089573713776951286090244573208834945459318740761355806848283223741265110252760288475380272710212645280841434032566878836005873939826518169094448276767359591708646100047511870269431043150804461982143001172872616394844279193555413124733401805282632480303689288959562646547267973426681306050833600371628461093288770666316957721232053955669233735954053895510474063693661455131006722437085620203894806830788674156333061940696009857290651595010252859789383204955134630042877861369211900759396928916553749584967109827254372284849837121515550937017384189690279195480672791201235635513902382231875060116029751555474831325912839362551707133524790476857335580595417991223800111619338828096533759301360990322910068100580579504264998133136797377890409873850289736441298571087405095229877046872165340701557199769199409762126246295516058369595104346624881741335049916772416595749735702687062233223005252986798582923187643770492365327541949476858868256546057500784161273208159224333466603575680403913785931180099696756587395949914546069434205143463283955522881399693281412951982025251751189110496019611315638254248842734397390785410672964747841139583922234602846689431155592861721242350451384636262349355165340793304785627814590039589528726342860311392261457773621940049346036506611894105530467840800736792442915006162909068039575903146328990919035436230280154408024643790033889242756860016487488129392283278607099400828122510066054533836962144077858272716007402637876360589129299314765546453968336957223793596645891754789476104587141717828091867824016867142966562559502994867776242572785131029612444943495376195678762760294589790574976454713181524681007929260318060622938227161689806949835479098527304580075932864353750264123222130145800099034373500656110450558824540764553902371476462065841014072205545483514231010013062937086617665461305774491820084457995063741709258515140736634832082672728126452771914702505780945567607277256299281630741250209037592364752186396811306821192855369144420437005871614273924654936175099714831610525785029328349755025233385096653938330108817592987875855482504085062186478098248407152309183765879144951369601408258959049269337941299030315186950038026226218002321729946981923616881298702434441529586463158916972331208121391565035532139609707105278636802797837856258077664845974979034423182902864500977812888607844108652687821171412884005706522634350263173309871458321363510789849884465881133521995760799010438928536231024841478952006541519835862248657923341209680796754651910545121492668625240460610692463612541834553428724042413451560341878811238929148405846400524470837022665785921173412421629115725268005119146708093536634093939221558267317109116905524546817750732257469294946897484132032039195431357248592522782669070947579150007522310891020980733618205903148631169167176162140739312549229452172122172286142333877185587283017619051626817925731010242207529503989910477140220778269247526763323480137992148935966841841239062778997302828244752432171403329540733573512921586725473245078257540322588853348898008496617610556612623644447939478665064260520965666787579477360233341606850397873066946069022508030334916331091106818089238034388434498410298085986237604698927155081769438265199085515570574641113452094729698188201687631375158414171431972621700851008523521767601336504597993970766290556924687518468099024586861569732906297048848446724677794552091170331305620673134802185984723438407920822307007813303113506981130979437214711948790301744005723513824307489583408814480667610228074726221923859169958072069039602244833741851954343258208649709683751264697793152162822247977801425975543733479004297553770572350903106652016767404763836785433242381107482294217387600677771597824972724715136411721189572139631084893763923658103994361622815790745332330924112218261171055450086642269038519902328926961384959060632376653056264592593270202856118895146193350472033091873299521516698032501185895225045806974705618344587150279584080524124454818322690837710833103794123511550570312594506672990133122029832371294808700431222577136956639861290508700540622257627970425135457104826303875374242222432402751397408304034168809377994169981296660415999439540527350010745447216456300921375434897969787251555777540960067415055709627410293900700177620482667729550769499519457829935351523010765483550862024560718295150870992729106139116690486522539712985441081883848905367413278376839802727205586245135437792575757859170722424269288635644318043498999266004757747833346091933447858848720268703288399080363272486882419972762888238342240782902639478779389139167696140819717595202558874486377519201089075420919675876154662579841574718206976512215741950144778301571011055067681493843528256359961794730410365482384056684561572206256694364207057474304652907736373593770594659596018773605142250226383771283944588928007759689806661533703723599921091341734370270728050736389438501411164626526482118923930181537733031051040201747189952706214907584313635577191937637613265255325342120376957794664768410786246306793945111638610310165459261797625830638304763501730250690829112066740563124030680702488968010775112958004280456240880775597525310756701151945739391493987447458061582202431466982073479966039020424264441050697485130094353506776108201213599722850264007525197250955538445817997693600429947147280321283062546909847511891334960089440886404382203691297240681256980722005477280885864529107882261030737236242995884499340176381096904665133876064753779496867560119045005155729392331138759209010776889953401527093736616028632609466084492230497255069896831758502357069602396054446720496069571311642092279290290541885834250978316143489870143043228732547535487515396686317201688901181347234194899606600394824668880047056663234237152565210419376682939976734222331107208904294277317301511966084372449341579878785329823998735576030719141534200723734538944108801438596670950276076615089162052564078619205956722326278015966331924226623949865913938089243596041194795920297099028431114976928938169913717998744399362651620891516266782180147365072830160806497750157792367474646231907913275950628129465154742522138022145787790239916908286879981052403116959785064840825902647789192311393346585255316157486693934053193236877992665681808667524370643051796921450773791407865004038223131891719624916098787234922753570011725959981688085743822370851041356179699869258688485810806053691395365373421353372622083627423738298570786267865095508078638390170922976115383344458170469575420973053280751072654518467877602035516155684167088049096668822548085625774732955572181504445723839326610143577387135999863874719579657181845561576743159108942447992509450575832454695824319446365613283941251471297643173864588003268061552410345236420035663623014365660886538034857660437932609408800519023598146582858944774807581304996997139123680695831576403534810118156169598816792418420613521193292282872191673706580368469255209806570585556606164309947537239158093252499000408928016745994744284936299812281157770841166453896753464169196655166476246924905799090152045793146604340737506054699061128785409548310068637156557502168998242641842798748810899186769084474085254842891157881942937510843759925037334431174740953709749297010866047292057457351338593065285909368542475799585581703202271367732960304061124438479905706705976440448972755146438996653252662330898216239871808235511859554596959289852678597286592011214771202039314828882733002686442832246791560430764687562782499322694415131696896600735941731984462527223576108766017323328805636512256333111809910880826920301706210571289027739739158607944392202912371499334775261150150157168933679004508362291284965128009074844746698081594788889941064505949793823330988370770195345104194541249822132226397804402151299739884092552926306760505451407282456315696062468425850245353851106667401460286864691965200378222457938455604967913123051337242911993507197062180404930984745708613729191739112705850087549534462607308880742625330705740405533085869021574037844569685596541118578994726982355906239748216554334388177367300923911377220160789790445072353339652720700615387260705418063214480176551848351767625105785574433316561199187118472883643072955679538917360158333096405493800898569374801360638056023194398901501999881694069225811725811707378945592838516312410028651279308363382441684574528030942108055998623788529634032723053547218379459269073869639094026640513303609923599816981089340729943062489397283590745827904625037388475812045772368973032387446785015121393750830959465370391244762925335038322578834462891500421754384148303906562415604663389525680113066872028583218239766500002452261076201705637371799589745061396624345129901370201362751630722680443483719143929562699059714919635715413118419899992816177709342222278269002042770572793545219160119533235257082529144228504125239014044651359324349520446519666917228504910259068062999577922102748647412442759584578495666435592673657483095832566890632148988190259343164914134777722697179129951067737809472664224441591989887042487770821791087486817256703031619071196473166496865660170019736264055634441572203333778660709932705991795745614404645319315453116748267681247951740046984921385780980520042663621628970930868130623933785083106229672162508498905933272393357264858147200067739549085833800222690819512932421731956143468332634505407126814772063457441560539388465894437261403710761856713303042312340706067060233354892923150653383425456078812247958952027905923241167218487381597791929252694426990811246726892170724236378436466972461396791399406590392084570939774333156609933831769285689334625670290754474073498760811054517071738532532849924800244461099520120224613687008871210332122165653843229826902477345798457335171180264684501052359984365272585754242521356410698546644336480005862431350429882268524168606315465034311355726662321928988692704549376201742364645044976614708590443656281142676744484932023108166322968577477982850965953280993605746331487619980371367607572556828356632065912254317148849756311203354006693120950075043851815054076101684116196138708817973354933661215617817926487725442011381769686804923832446389477733320536368073243261924975652440420361881317309814718248335373333737241954772915540041110980915576829356429182694963641690105783633592763365533874086005113286303888261940664161970897597574432492756974428345045081714302942115332348012570123852108699447620697549437183141191453397110185666095381676578366109618832040149720742891416265046312147893894754576938458158264574277661124648358883768327728882008264200465926592648391538396729002307338808046545568602580727909641661425645878848410195021175213246278550015260743225785249179836645081834593061647105602626421725634970581135801317957432168551134765830808716882845400666282627933794316669951025731298872330890110803262988378197189402566214131340096405686210406438944365721568973251838416356635549470955578156558135561553669110054631367659919130880510550213514526259464048895527699758843603224084214844086628284710565041357346286429399663862584347810529795693284225257263153880322980757986933842626183140617149869506565134360843812031827561855489589745542148346047782848470986937479242579748528701957887204912944414921789235192574148724890858000347816641140447390390387770641509115328227938810333834132913707783483441695159211868891686243316737054581741341715275806817858534183312564215155069077934697740300396684829680205089505818405562791850961819717690941771235285042991702364869804853545753689527209646665071941441656303203779943433192959057734377447340217134309258473924326013996469602998963967920642030127837302347721063517235258321062901212204041746372975961640432527050036385882526505662115968798709646372009524489919850457522524446010628026696155844190914400979816840286795106442396938014187753855195408427463853529444307116658583083257956400106929668086085791907916543491406130589809427546317800184589783579540770695959605520979521117390805041681534920249767903489783461349438514301643672699419776438888217391338183546906344072504626522128251124740721704298953062513382626008106533031699504373425758615535307000643008034969400893467294831132264357259012672331772280124905519940209595325210718306074876035381090917375055483582602518771380257631951271560573925325147697031518136855644021579591591783037085579957105608022455149700449591619152975899201233986199016068081395355538510495777944085208418517990355830489972441705972636030504376015825695753879017188555909665414671427544609242061482425341779033601859099033539436963881967699152415132929545009634475125309174711702990963523766824466530454474281815147540301071417699688287419354431652947615089264027949631992162430214047068028969970701927464538955213624002526058870835731558346662399466720281110810954026905934068971495685742262477554436017110089122846985021168996546251820782976339350574449105056587676322445956580499963906516486308195372296601040503391340505464289222188014851465243070196200328116961697210406168490137216917270232857184988536773252722444361014571749611078811300022155625645827695027976683826243356061502694016634018524521804080300348981381993157410079332659398733828949812882975627325205152234685016892736918477509781134952286784955953551414701215343726836962856555815765922392606194211848846967607606485812924142151559431877090517822837795870991669300213194954113796525083849989683418267490786708893881449600026035851880481372458651290012745846859178802382438401597520750764003565617290996204423435273196777103123622104991400353887820485639950287026705035594247932079306433102477678764391771132084457762684646542730170538739475231172351996558487149755609845635905606796028321478622661088883033758461491954708257635058137980054995801941120561447310173507088069069847043109110587302471531807633572370259223987847806063846705399644840514413188932754701792606341725217140375259187586791750989639685917875558943576760546494869070163751971006648555337866480156955680408514179924296866596879696399714228916123588663150466874036223873889390923235994209025675623705602752523454821713490264385293131012541812358679846293079199432849598698539020581292336894717462250942798338148921164275942618156737130065577947702416225325961428259808570637614308450371517985344399826608811472197988849202648656789965746413651434380787618979245469543622860411348457683172817399526500698268483897091145292166451731360322466412280875779786062382949189466064316813695693902589969828696461077590524060203790304222808403228160724665052188199726899780591811171908545037262196606263373064153766673000784189950182280799641940860849101431142111972201120620682136999858035997283900277782498579201948966452102032055793613098459847247195042157706709952136122228382643632199811236044905918864846531144876987933631229570164968503152332190989638266390709066265659046067502834852305647508096951850215123046148099672283492178203492820695053906440631411829862911666518194400987276321856758958116534021959620849277023797714932560034591081729670732517953736512396711141607084903134201622323776908262733045124968517821618082671819953325739968786951494326194002754797971661422163372021156486477497675090942772450701047079721730464686700708708466651543456623406909324311629303474157113932057331623167346837327870729108135872878358852269136952289522024390409560116888803967474859228110594881161387464912339360347583859275741897025221908280098869215464507778412201803161445262949445779246997294613792025755908659913115407999161447295840232091806243413936073010597152389878419699290000264098548928002840352725220639371886272923028250038883236883936806846524790943895029441257611532850357243218492272889605424843561249955094270543533881821229846953054160267829374046490328911924267979997458487044192706930421088044209135571195223722498347562322158148006544738710413813395464610863009978848271062949680498105431512540415993387561775156718728437557155802662528236003767269213483537884699034681369148324286823785942380406658313042195882359272065304303729517934776254681015927700623380342925751808158547459860622786300845040332952571974313647362502105196942627934537311743611750169825763568163406764121278157534594156267267135653607843940748550992066156735399145979366470072039684622152355121919091162335142152985453119714904824596206399171538606091444275190767507311847214075701507170909796012880387602855040264863088092021996353676452961654283058858507005679404341391207979349717994576596814016529216901776100466643674194048526329687676706336385969417558638933332601833077898167130242871137240544308970329272854071399166468131069933261804873414325466726910514784354045832198367262507699197292185535701141027858714838293064108926685180041327010247481916082742996898658795790565216649878742512218255197566504267703607409597207276419336684296607131964412749053393227297170617260281329950304934619292496838223232707459212865086692769289244044403355091266566122635058572780192836272857037522043228219180931694533634613094283483927010091345802894345948581859452283714637934499937974971154121714548672359586284544278186623439014012828472547960760636611232248150437127879802806558493962196306054711948131639042887707542905393961115337440209281558737202483086179640494771482789942492447930608918449457092103975232960850709814053786462351038308584493752373941130418313466294066105627048902388088416658730399601532140084158300554670564471508982651610457462747867758418844736344067755601658873787664775851799855946203060272284296608925129966523954939842470619001225532903718778447120605714211386681907062408071648084820484404971866687045092158653861278680770105769594081683476740323643274569383880758619116584833324390621926145883152898589034699071798974795985243704784104409699131576048240740367317093252746456150102791208589320956916114249335861445337296494565705514589627008243677040533331663222601685037511310687639496711660483113854153553924262646252399543068778541957883185698073103352926358832555743409009343400023071041826305094662330307781151116141562582477817550869577865898414004532771385464815591025766346526188524906316803249243280971023400367427096328276240121277450699476151985815328201299294434925063309402594894703095474910589003633063673402111461221396182911894677124705414639897621919156419735315261454157254092236165569442678695052214758487766294832739167930878393889291569220611534474796320688221898873659909089433186881485439580322679868889802061199693022304967908023092655452947938424492757884707450707164512867951245266456174325554189796329319528101171227398982789040513513273333267997864355119824660289340966309225338606190791249592241305647067406206577633285207157172609491979686820782630688320876815976852683356730721667149551671517431315106196815680477311847273731520043022798453511508745450333760192413550567108212143747506609247643635183339199451056470307162838846334875047061257974478541013892052747100007031880203141823948479945613293088505036987349657544918386306559778682911359690838127856619118431145050229056318089681057300405552482604021553008382975445140231752846437408439471950518036526969603500837178961529061720193798827963384776539424000500703852315398497237754817696063106145013837189352175860866897011739723877894572624635479655947255366222523367944137349779776321044362155235839460187345456906954239104035625178605484529605977435342775334718011345915338845682960417127030135159852185510129828814021568568218706537049485627470297142520006630215494881991392318872319209791695437155148686135724927130647090890103690779571383390554342136680666278826756109040029863688227247639357693950249538444120838316540952085868414743473149114372618180408967427613508587386252631097959529837909825151162958468626714888175590757820602507876015419570338722083702225185211681707171282168377757632125726603054196551839432454381092348464755351258941715742556404266172479222273075828571635863547756293467756088417823909123969291240083561260535828443113787056202762590548648467854223897526648125526471427603106687886857843753585621557334650916620928306257508798180541801202395577620555290031098730121781210721375665740179458179733804286948502790923553348105590143583341676284953271863087979918835059228596058392148378967196163499217111956918522447692918184548747528392082827200770417345058922470536185568875112714810263076341807626330959763217383349051093089893876171452987981203365757415326883561197372751557042131181844971761631304618160998693052531712828967619002787274476995272487160752246976764011150780817621526902882455761988651536559597002730047260215622046616670522664815673806130775195687309752516770162828913482515193980897050656578543733232798430999171894562723664137685565760669625832457457425638987948065821903384962832365570435788749506720405265617026295449786207899072855624723865993745761195677546071707831124623958158159026235051531644482959453403054365868487292537378843663417818988910450529064787448409411865200971107769351558792382033522436562202824963780913085913144098245392633318083616740746659964771959320478487487960541022651402438231218237004526643389114628966509230145501367254013657535755047516692772657775090572145810422901898877057229864315192935941980332807333644383717650554191609597043187805736925421249416673394802560460113169834247250802360350102198897617461340308092568268369884204068027962221928311518901177321061948704701748196454073106522754765133165784705998178045172378762869909009652851616556752585370405652059721114285652368218189817761169542575049983162372556912771378833199843835452210603508827643407759847649744268467590360745362372849703790385675365756172427260764752485138159987623795562862604690578885779049842248819340153862150434402775460864305471498326956020967642671054434674542555566453432583766061644374961594582651178631441147768306768872523852359577784666736147829627093638802236416972772090050564890072528868826966964716787371226056487530666579283617573748296328543390782987393019220574993511087341953359343709751405278317020169628629654854827582851080499214017558154962850339319701999844121381420299455470257999633120682284637922183273788517902145345643413752162715443329230080968811142232077260195966845612528553113504487327024323037910464685271235330239879425670166341875987779469124741912611667001060010612111381475673678425630750125947782849327697040990207924592115694591870355588889826799413870780831142512327271772932665543932684596265616749672897480106582443844278184234154831262041865594054382191980998725452808329898537602172266350546749585208617152916194968668470569592369664753355181035216148349958149169200632292320501780975942190447627332412300334956153245838212217613859450822553725174019659797616121808353242085106359381339019015718617059842898489913230225017870912333536656684590109617956991392709995242601747399722664500600434277714829446463857004742350247220563230449556890502821063488310579222496273562608879811273826703086635108048911986720329780182876459886938257397014378080988934684504811953996027926199056969179105308828416020588210452906192283763823026964897894966061901382550095516320662648195170143000695278501849702359239017661643498918622923050882276898342633857702076802802931697799570675223659811083039878692497858117752165454778421107332193106345432683141358633117191593306079867294845031179580052442240203741254516577284672207605084564512936356245871135646938238123611623519712806646838199806391612141579406205450590263257166154792178029633438747730562384962269726210135837882694807164363872341396571613831537134097037325792784814384437201732526002380656450004091339696009168445439951199292436332035909309522414158980197988450975270779731767548363434652081537349278086270061374114774859422641257504849946874812345075967868363864742863049505788360465679351017211597220058602197436219810749273754121896713690063487743641747288420183029118663455263610228333559290339843648959690959460543231215056153698235608579246482509250914704225710528170165446577015434759179913044888329999253113539627631274440046115266552055782204733993457011752324362094194721720256261157494695398132979929308574140599870383422347254599331576097314583452558838634848215838103293368262537853571964943729627210319643227024977647316113732314053043591699126785074452514911780575526344371969031344656434771692276599470250426505105981836524262551101393508758317473250704239507566054394065328331851263334557374377701286494225335328423791111259509278905247755644957776920575923489396734695678629826287527130799262500938841455187111267437432958054814932605532247338663298628109452829118947071686530673581461733775904597491470492822123894173582987912648123528640549427056187178171958108490797742654100282004990098158761128638660899600404194486494118227846696713100541402530334817683724735436655904588171330563093057712076910347423412512878901987430566926387693034617211815180857516932572611979778366901739947083526811214443095499305894524654137660468580949778533838644768561750436502993304978610032197488829705885320722373017210774758134600218472772221007333550924812332983959797404218557429613177676533709179212357173088717301164927735039011181613285160570358372296022488322559241754589382757993497404652277008487846913188335661979479538772989138672048233180567555369979780255090727250096279675046767656712019875763420069269001441423990886825000861430032259974532855166833039295057143834625316967477879740911001304654148777030450110302426849756435681636176182054425624164447551744362755662663962583963470974839293497203659432113966334798202615460414616195649133826157966940292621835288538306057781598009966928829012529367304048213853906428945069186519854928016734736717625803742952174118936907822634556639580671490141983310454783463014363893690761259152076620571351105109359119063864226206551823237379203926157765203024057347044043215204214443604659195606771218011771247420975240222576858376744987963494239829040449740480107258607015759711385763777257117794724669822217068540146227094862833300663870689443509322396916208441699718379199918066130215011975636228883287905032701045677971857202839697607473646447908852101498008889257563472474510877622514129121157425440096781605037577979334422477839948227113621917225196851919760962474662493787011200572952103754721939733525976971827445925404891247853223753107455540621311197291749914180508231329950020786439664234287084408140351316707804834369283158632727832219214063280368318501999108677909910919404889804577024027193362093565302246109776335633934176779048015903101862915997716366073635444342244213352683691911194020133122725580582447980653814160855000556140134114552895228761606942496575976439623285081721667237642864197709118004153620892869461909363354977771966136830023572210518853943529612804854321875681889389934478945469751538495658331720653971025017860334188825887631832478737982555320324952914576977067285365736308433396071278978410999633575679784546760506277028797734807038221125483367282458347268568622594507411038813479748427054781344729227321806408294637361209955073943889287902329902229560717489270418093610191327632783238481539764526671831385533686909920896878289499399635664005749674351546217504836667003325813426260605239746471413172669569192389406722469589318152320708988870114013920778121155903968471141542388027663092190501265310752762030853378133430970789612013376576660944529123130372151598723007096314399693987995985343487130705412473468941937527135627007652484056177838102595573560902454911506010113793485279063841008960387067586736127399754156140626479865294402680122266954549350353936895488125000213226828851827468592493302511066612886489122945298739600750599833825793555538929762110508030732970719397309107638584874795659829169506636863330660753295802510845257421315262520860758574260905235995326246923839955423025640797701963611285723106479234730316235228834380878344182427842205187163519607640721946308934139684302226575890639175233263506416532994602001926737544293588581972970136677532427642552425259299097797409797680529691264452791611445015835087191390254936160532735775371881633257983064472839110434616552076566017213237855578052650362521018972370446732551713489753341641195345288564467450159744364211743769375331176065120945372178879763062595325286004818428224660294553174720899974352683437416437343070493068224810786445957354003210500582918565666442110335847178321203064609314007815805167951727875102443472496760210292837881633362839634453759719322024651731510210593932738505886027943110163942793986412879112979385339213588181288506941683771101148620455757177878482936839715245815277583566797876053820760088599563613266908782647885153652309295528162498491003517221331969142052827379162435253316419283190748306124803868400268011817785246410527342458846762583424570751019959951315823391921763431038759459286582290237697195520201265819790993588274502782356635234305594997351748584407193750842786783500464037683486675553075119388833939927637139018473443361850035937512884677338288595657188587280358072840138097138881671710645392422880562011441643674191173382063355896308260969805969787935873212504359116034274577714683517288877433088706996404098098400924282998386886263571780603518243616920758455812076100318143372660516839643211517898643182811469764350718923627480497896727386988978423485562909614898520622972707231250288431671095819393551183075839347135493517430828941115938707999488824691103759628893342714882066001610287918281632688227497831214586672333461483958534069583758220372189596725201257890114265661586215435598372219280747793578697429527067992703001944733665953712518862170012102996284927730653147837088237907425902309918947430753997818277984362811104951649045039581660378646936354669412347829554510233186825983260547364731796000752241615692801325980106259513559747352902243731830505644241732191383710934160885445520994969708701171629035404355147039744656334412400212391960386865097460347654828717337424746004477763990188954748183405921617217589596542136371363014662179333489811846819909539522326042172625206783399918509727326135721828282900056003953907754420348701290202743594625701830226108331977665250816573494708909532086833328377009509023350709216728618484687814429861672542958654048513737816093159888954549544565747218620512202989123529450221563093471033602912769068405620474680878295593941430847888796323665962429414888969325848976597103937725041030749795814234455552310879625478673395298682762403754603991608703388697579969296464676637295881833171784826787146417122433446981187115279493165400422768082613957964862622238402012413651474771219817528857609658082514724093281530691288284594365391072321007226587010666041000144221840437038982103549713171555600883018485939580778807683406229763060099452944631113139574715833515957317076958872581547684879620115172833576961822420875006324913834047157532485909399517401052231824889980188414792052255002259224579642332121859326099506888378074109632616542255125244699565489376317749583647020158213930160826561396333744325911030573979674124356757361237965682331723056713755207430047359935685561748211907331431747881665721960663112197850759468414282456616462069075768474651518494750916645039394982635488639196734924295201823256327234774991461880581013713172656106380242412344531791121868619357764153327964688062003062301711310455709200693340028821743456429961537425374740086217315778915186816637759808882393514513203656406704408028669659811017190264571564870135197079755145506523629328887765829478130275501840909312690689842224769835900029708466899108470194666480593906650477723299499372239475721578195362691896605218045681376898628190729073601043462282976261655522351037785271679319858098861223003687116553020636605310635788916472146847445869303422762411083951144617669826458052178172946260771289107668010734667859557573246791195708258177180386294530540078335473864180873268653544910013028492887522259192297502360576620923858156312947312658919477025566460481271287127896681265013787404342998604237177961927835917389787330626691629971490527552838812469059033583090502539793950978349234620276384386654178311228201362006601807481994002214336999278169702733257260915159839995790047040614312291684948177502251035142394575461084568670461205883611463049732424089397463555236302760554749699866470107764911554513569330264248432722891755957508914941634052380702011224102874343802988731593967114122469347837187123238808829750764600758586300861487491358852632159925564985676027839252859340721842179266105902219018440275012937440516967945253448459824879911152953264946043752478558098785034976161304706375887174650515444306365523301607438304842933132957471997697983184138940138962785705852480909840812728118319033774202741783639033296202710657249083918458402805264576884813754432421048426910983989475820254122309624911507605310278120890911222945704370407081977127113698153360075548319932276457149723135458203946744382948730256318279420126704752928337933647744106927113804876360197827087778865058589954894781530067496917662538718932215935000763866160619362723696300293874701648117530926947509570173695986537807394289934163876740952220780768866631609683169776864186012660486792420114464725583123671282279974638738993557121435481041247892900440941526498974280210925305913723224170645500504437951876058397664335503529356950643533276562856875724071627884240441567524995058207044243649107837441941230535571669562902947469939099853364164144433337582452278528853676147574361204434807676864692093461998476929156435996827984809038934254289686786917320881785033542048468415776364858483143514237035177930583631310828498101832903512018742399876500650402250715854358274333741053835641151571485558079243281558949523096062571024154384826706392103291058555996987834970136588212398666652769657212831964307762675685401965436647481072791598473285217289929496758181788293250966847808181336504094176794863281615387472763012549358297848960377606163824964986440908859856466722468384995819785223370546801000448536683940297124067069425484355075356235656499149936544240838604561676387551918112912084783045491766199580871780463272078844012519920960863249728092273043223800472959982291019006026333064206956685324270616948967012014320942580337896587295573685665061553998043971286276715264869511648194639932961456571437442122763506499871704832728686549791666503150746801273430544262158162418871057082433704285287547031582774522608951500020216305801877707543784322750433042310905874079168455803640201161727590083053792753614692753398976955171173612575447779768744861897673932920786488159798046982131716246626370287025271333475267250137533272416771638070616182535477202060121107627772196619180376061188678959159347350942173464494394003007324052993011327237379020767626816053812636250622905042461316037383267611668826882140412521893845020554938168797051521032576338799866225895296606317713535726046342979476213595260344912220053898878496413583325636508525929790838374484640616556479886076488413756191179635652726706856574912118773576994362352535876251314268596128546524852912235927924030339959697317181029416986764663253998587638245410544546744564822292389260269044577740339981764942197355581687439049616698462592596958651572341086958629766689054955332893608487417011064183094090676685871350556732650160667166912922166102051875487677515207703351305755717074845988192368648844057015006621287220663365231233536802146356689045061774072315130414738671781235109039016648263764795998092456335608001879095039679474303732732756690791924991101754179581505699585232781426819969485257890731191086228818310704478394906586555092007535891058460669865906048012364445055312139934468972698586408193465225580577716434697375824217411486762825423948773859711321954591145580759506706226504097750594797221792905152704832898002446321677879920643336484838745979105427103251423710896980183789961933288549157541891335439022532477974529418104355896235746084983480101237756299308418164994374807521165582451528453610668169983931906761014797791162933117945362680850928645482038919097081420363675611971740737096524588922640115489464273238552617628707157064361496650644805428410472620820871765140931970133106439799826867064969485242134793300306677986984138676954864705467796398511811460182220824054858770478173055331851889083936616893575236369474514770266237612320796248348991409812758781036609085647581964919770641563079225323272696701193248378182552209819239662729694024944276636383609983944596036381815143775552579985575723776512324993294527485568564580516743127553339730198042642612880763629441905681276135132725121401780040215416418406372600553255312108523035669962246551303021607704519838342985854443410594625030190147914439054067203058636430124934270380566774454199497419203621753944355520602007309225289649303445371766688085463688598214562169008309020945008470870695785056897415986900161761884858534051599038829566383385090443719922151538960767093509272074292886179484124324340188235214490988235797207050896301763980338758202579910639847509332083026777743483240672951217810187271800130713064236324099446750435362817499179179256197040629597561092285205608047937722431531331797057061135868470547937948703461089952825975651021313505913773118965896811323421179992587689986614892416187649358622810309406092887230735236482626980776056887623864426723697514301102061035814328070033351669556667152367191842661219235620289479647611552402038392577916317084936846453275392758589964196847302083955564210348347392071732215175267530883295810064648131916643932320406117449558901929014494482675235470774240850535825104468733907618431173231602758484454876884715552953490922464701742400155170881784490371301679909109236057220116034010602639894029395343757246594426111810875421727859943685187946342853485195053253613164012954930936744743958421621372103182487283104359258407683797458065463629796891966096312783927080167650247604060403392201306090723421433069597409879996486763524191422033209745658603213139472289190641556661433481202299589437087300822020051896100325975649700136574925239965694074380370881593582628331763491451180292771771117074547616964848617427039448388784373512507080289227966810184203293906353541298341789102290809566354609342303055746495702223187382552321463579487858564921423317814564638199216051864654787081018087560462949787549490580443704621716794372557247126277778158557681137020952930737193390512314323222908632022755955973477360940365095933939201992164403788222389202137227535906564759707127090866519938822174783551386394243822433080054933630504384154120158248395141881834118739337762713164366263471101298821245814630454037820020127443568826791803789442788848645544261303550528879322005313507104915000387616151370176826507033230524997121282036326754082428667374697280613273149471671406672131901010376490372895088602701504104094026634323445701327963695573290647604587138528521745866990907963737656241059441281483559900939173082998833290606202627903759517749081666807503301067182019915851543893506004008815746222903103992408906675528266640818809568526394672309809390030858721829127900027462634037882655532529617816046586385978262670182525791113547517663386232041668392388609840344305016861454015169692847880978920389722856168837288135905616155383545421368895191254263097032653098061298356185325617495278559260918807221205964467483582317512270267510195019860945902743209765787401944837015069299744554467429002592474744750971857628203431783317739755958331036950231707927666926405927349687584466176648236701253221288152372848466030162445739438253196708142972401977983539557815440473817174006377874369751625027987397387160449667212764845427268717806986506641075460403919275234085923782100961067544082349968693633204248410423270255777347657165388629342206242600332418268173063585407764451497080852060106070230463771092669668417358330038557388265546820062198424861451088259037219153723397522012528228965714838162042382102547334560731473994689433629199603385851470750482386043770468411858914312226457008642237735694340588142467042689877651287330004536910250152175917092416952560428072323044266847681113096690157321042496201326371011142233522225494959903218312811896071842759621540090389647957404564747978764747360321257820259656172712737903852529414583327476856511328910978873744569949873517690913175292027427567006996120462992873813457845260233665274497478728437988067830135156441753068468315384422094364165270182320639755061870763903167936981575593889574287510674547247375340059259340441174167930595966217957666701540344878898723937216127921901095840638836381627002717316408012020444594111185716012618897994116252347278178474980248469327823394859066499757878686362804996342655310425016612308435098573324079889451326520480997731856949384218992016281612932019642585914157207444402912615387108533897107914144441693753303705408783430820017557843376270430604727830072076895004997950639622503277505701688500350309798992223985010094863726220808812267629740818019809568813927405619802092444129458745645116881998872193570721597939973213895566966118191497679712697377576224572254217348672606693342222584458270984378345782394833316520701067674156918458704538785812856113393098071396811145805185768597565175360273625243428490859883628969538713192005273722804769094176990952887939996292621638392181553944139641071304649503259607124014923458768694258052147657731222777570195297276394728612896065184403683725653225200173713346366335007144329616437447315889447638100938009272835775140585368442520945370552398121702601681959701287715562206220545642704945852657323808745311283904882471606021142249527717135868308372102288059856482565386551593901019137107196057131494667867547317738008441450228957194697778680123177529729706033797450825489822681324303965152005563822714019685205662426322752931354211981717450495669126546002593832534334714174628122947192971089571032638865271054901109917522610864252398835620305335692151740759087221691906402466934387261301580738949794387992134974308942463773779716810208830347278190903419252249935114577694202137338436678603595222471610957871276533004987826592435655160714166197089233538306815043247286080992639404105870181836458137627785108227142950623009130576730466194203343893012729953934323856733186484367390022430759901147410316694809212055900097659419752126513062194451781372828570679765105272917027109174545449109328924452047412376027650175922782393100559262578143056206585543664524260069573734226640325157573796825530083835247687994439913511923662087366214691863927012874004627062661584664692765284935482222261034646857167301171505913681195925673975227660486904248891103051052445747045353297102846197454218330330071547895097622095940410038826432823798092953361368005302616042273953883869855770785759080599543014611960085631298125731475461997234794059916526367416101569525045928699477632766961037515126835374277709411282728007593505867933563230774450531013023503231449916056408366638470133530565906080298341336508478369480042168588724167854516936929733701189670674885277920954639278357264685135488502283753561694983733334873626903047251229247936642928912610734246631518613842083524398041756970882685704057693065465539889249885314888075378470706142512898142455945936311400578733844883519385087113638014630514737143197778025046947690042718526240150274076551630476048907562969814548104986785616109586916019149523970220103745517654720309827184846542967174107919961201911033733372691353806793284809468920265913410695887201046937988462569654683614238670181341636782783573310549799731552132014590581790444678900414177993650972958810263923856594920710727023235386295313855857992039835373948947999499691087249138733199990937927186979546831612440822670224202325700341388590378723034430059184979856895418653796762334284745758479762481585326633191358707899221727920308389574391881199414012846077534683631392916334150164299850600875474415333392194340283587013120666797578705088074311708242765193287918532755808278617384272331403789121412534311738476032794711262060880332657867118425582756554490612943307692736155338078133153309329771791000117283475572438650071008983602922312592715115447556189371068643924512201519979515004386460481526061691086854792886335821269585290813510322606447675794273591929123864472875585535790835783833088291536683445282129844857994611623025330048585215962136973834916633895766483188032106059152636256499692820644705116201030847143436018541787917794141504355379758763067891081595063992130105464587834791474743235928014612882586612020538394891851337298575575360335302923704424448360385238983989628261811735468095851250252304488556912107434000923709097446638570422490200550989399976769698231092095650653885303340109101668044097146288664755043242456151504874825276412156262872443776910289804946436107965879187373168350779925800355332334477292590423888468766350730266089589647190092836976783205595953542394058733235621802399183345691846118489692167140248510621608223943939114349590089266598466538421461710099953026788768868272612706314229844094723358107257110234404620339350901338581159292922007881714453818259813645003456210621363482792430596366092478283781937290605902259447056648645385624151208950917765003198598932439752394298142690144768044325719473150146154464136364274091597360310791929855684837877689327775024729737594477966908323421763373909230646464865559936953469011705397416858337720730605892020879450765259822478795931115062630263314107082489530673354530249594679280441334290416572501400051627272149545908278759418796978507055184379917618823146921433178237172184289684373374252681717732903431441273744230454229970642072580891069974294787254468888224096012794768963717083520885288265070082458861915808777411964790888379309140314391343227231855556363482852620980157850372365868719249483872019534868969886427026890077625151146326140981263367521899784645519464530328713674993575801546024671052899951061848858096840951697304806211874495670437047326227577950700562039706823467902262664803106582798024067472685625553083525488724574128607183500165218029360474925239056355372065992178971697203304240511863961311814492298407214038528203242330274030166392042479698333038124699855128186475953583152520186338371293490432032019976065438141588245872682532059191886542984903467221154406439343582931172273860688173455390597595005694060242606003626571678393919457225360077059528909417566915873576916062686483929930477931236784650856612330032274580837205915876199022254645060969982085578952783339517072978216543012650672192966897165043488797763850309338229226161816434202870694971618455140663961836937497717536148184271238933422646889092033730899431255512575381984059684542704165913329346814745844540229928628927851778496937435699385445373645355711255653972789213231886967568929881907911191522964871494344271144332366893624195574639908672074604454636974316740464511110404016132601910638553269807860493115816226267899916968840528181757759591182824796804410962352650506656330931780743846546266001319627714516444048755304330417836367743918820781211649269300419576398005295387179128581366626694966335093310302245337823271853419698238438411882324368849199685013798829717383957377504279934076465149132648618320738468045581097169499786298705781150514913654942359213531958943946101623957765480340886485000754830183638758927566005689572604702881197410618630837036755627844212707888274461156001319372491492375841390851947501629820596305224249537375099309751084810413597931838544525796697831654827400506725283374855308009777525190610137412766874467776295254961441472676147349059108184391742343878503440769511409039412272285790634419302687638104971429577062691417665092621284647861857560951419817396629073477682800933439796084474511628435455883417853908653199090304652106272263826444172599760347060025119451725730081044212323292221877886672418624813430151825006618654440410213648913313617323030808179996083474493021778549334387175234274876541522235062865456546153628980786747605269588004181918074901953606285965978151830097696287606041666369911765788699856983249713568827090021774331192793805338751283704985318071906351512551739228588920015484545468791506085592181257872891751203960344212181247766848736444678490557820445512790805004659108600537953432869175055242016916737817105030399000875608061926200084789668930311122368958949761499867070810054179687279556033997307154579547368978887824992017307795900708467718793963794595334097169276329982693402445109848754383072505593565659475547229557954560626680655631020252254284775331404834689522624865379258305106196908790155257518854734457496662304598057367458310395076246907319429499300106525909940969761047745949666314093918613751684443358590742176586166832138218025769462913714195396103981621951079625211600248668991345672298335972721650131598601775930055546834849808770841844463592860808129096232841574250740553235693930072351581136699358688841083996248709123452588423292675168822869351044862014257794495890464109856755030422020666027115774387580965707249709452918451105916496501394903011265191054891870370000653653152366789083925975023446981924172160688246533514614922444347189832378386099610656298508153851167952724144418066219647941389180247615604641728998510568052443337199287596359178435718042827556342014516675904943003519778084496590257648828037103620831459349618966286069138547262596827371631190467154241582972014547705384660051805239529606710054533504930970029771386293909411079177359432848927201629648829846980475236869963104606507608075676184540914631498076620860667703804875726189455348732261673781990366032427356570135775046231522806395926327615024265281850048864578654722077821724068728918000578049520941686985385628930324397918823446417435799983373181446109318629529585604857151722945331598159772105209872653995533659186472148077966549487516618072280509609893290213773613583263069818386161120936203664202264156099141955369344854449671575938529587760754498638241461849344594178646007200670870400385514525117738483156187828448736318596535745042636767286324908718446797612677834182770086741898601572651616274951637970469605066624626774437190609448093390617893304952112335611879191056201569706973213900329384060937189960944484151372458285355991276694088044622207389757962155769241437345277760061619637295024174134392538388535513196845280189655467076865451142434680082433198780055100353634875379711650015294646915176655668690013536363817728696758610009290147239608545511615243493315482550367720321692041379688307139029431423669190901064236832066960103709520810107688759571526557000722745033129784781181848303596722066973388334882434288265743949926546596931580831097545601316822435489011669341165180217029176071445909699399504870231420936329303541380783863396911557460121068585275758417341717045895166110378534482898197238396711768234026373704901997476718016852581208018007207555400378972249810787092167359581638586639869756318733087167848396871159709245104989512251970465875780286687012679038128202841973759414303627886091353248797668691453996891810020017677871534821764034657940028718154639039831976851999610007381744743430638270062113473143850631907284048300429142872353484682627328013865761859973873248423992217984273929658538127442675340489930013131716052990787509322407699174478900345733222074783299792979068985785866208567016925997535517099092109503821764903638360010458564798176436885476320762636753376216244275960280063860200531850833348802776355014368084266293296498979604591980713656044343194682650471955421243260017254638127875003102385467795804637488806195430012180734970420040031417501577016941988663122227315096226040742265527574877625683066978732857671782542297332294174298414743596451219774138948712260628357325156393588495132559264495796005627357193045726148001679318607680624468382532937607293850141344090419728436864310333607329484142155964159064176871651726757137517745720416257211250578388372297295962820379395253426500766695935577912414814582911698537068304444286765392952183852450884417252415490545957747299367495049365122227680866246389356247007849077704000900573967502832819248515137732364114289816686901639594354978406676381039495687709408511890031721800164556464538486542892658206594542720975375714906024566854414047839915455838932654697257449263743666664672898860721050820228785237057260216478341685727504786542431526482790089407342104433225456264972050414781292075526734977580240257033304162795462169561857602297295018616067921561994698760910305059981334692108619436265305882301349740126046728882563356290745915852737666314730046122549474046115865789242478390544959849367314399383225271269072229524686232767007675168059845113358108917532754469796693750957583183467788896457068231196189165754052408586696608723674129061553261433277459065361067711427822770997595670300316606859261820085891675579302021600211133501503198704833932161189532889860144427135172832120152046186550645194602203079980445250564816971944248372302648022742654406568458602811450690599961521967808419675722366188034836660418477115953018046994472729340333158959507772589555497897978691821694534601985463384154113241673670682280568562510980039185180196118782736134871252928312803150345702214420515288013253342138316889684872223285489741620875671740832829757602290842959834870293252635909206725231089504618533121828436966892297292125992866018454268428262522430682971293280148931003449962897899003289813644642279840255259552672634714557772662501864518759731133936568699070771625225887136151659697788299954106200813220319482169890301624189529601499318632137317888815088920448529056413684044622232377085808740952526793105714561817052257941586879503385911224664572471409400824713863800438596850476019140204976898037538035188262401046325116188981266447734517084534258909054464582512145981999928833582695194265849094536820667591281317133234728672837056620579769165972636113741298375279582442989153439925581369155297703214618337553155118854183539102120520187842524571276104560121689795433905854993512927652683519601241564936353841719138775482939195437367403695508418316121481668350974124419138701126633111401832833768534567802415794044566464218163679117923414222560901280907819968519414400885322684349869425513199405202332152121260131686962702918185023703343671075876637103491181737229863171784127887680991000573691571720237420247226749357621666679323182605881846998795499593671267453540442678973005945459649363633616959281377538376679321491755073280349630014508231372147830268897113058570978750723202976646487964589420760631187244768376128982892218294606832676606894978520462469619713576357351942046521955898157292385827808207018858649432619361847838810282486645340148378368308850438090503852704649653279014871419158037518294646882876669751911303638316551139531749973796042290249810634935640829016533451687932216495152510259469023776197470722757145468411253711990492419485171833803824676088022554662110341828033867578899069117537114846326486639808378672762058271301716901297134601770340406574633536335096109995405019220617229263931346848175033982773863758815131797816022461137680229260225859428315441791811861957332918268589687195824541372194127225403241786259041535566118335355663496861881593829893891292372754865287950161653309167339759265197936836231422857304958414279151587265243346237517234763659660212766968174232460753178112186051420307280125411880199673662145449704377021446455800084954053160611321001644626450668923326729242727301015557590019737439727429145123704611779970306146176502858252656991776631106467826342117033249363788614265973793692351343276105908482279654635356187880938558538040023817323191186863535294809031569279902841676162226981025267262140114198565952938886551377037234186179663282879246514086684449181598404262916324989727479505711011897176403077317580833960039050000788919162069503780758975140895010157010867919597930413996276963932199102405327810693023682392352005829814388919663459112059676257220740478486155562011676502325402307359094514875615078957715338458642304247063101789976805814256849384502945822558374391807817640865821442963555084837449274422976151231291205404033073306228321055629283006567806038860727741708274372487516645586258884140577049022925788696450102840520722281320202445180485040220198619950137875443001967291501760279050839549084515230241564874382845285352960045172259114172467629494006105521552092421275375780451411466747277831595227908903391412548903616641984977757493281646074789338870995202923721495171304248885619644456662460622180043767345950334858852828502298832087307714740312508120520783185101131587427088061204707583532314608930591799455216972084749535456932453941139997142615590951900513680928830294019655174925978592735109612775094276295995422742234203825957400354461817885261429665993400928126438928491631395139119734324387611030991845927059849430937981180938098113231085153015437542731137518829104109799595871268148207954968120533686837945424754158177262499308667688488367839339778247485236507270866759715278140068908402211540753356871165302784741137853140499966858106580159548383112258988196219676759795292757693593693950623911628484878902428172986277551740231402683535895051844429048831304434919514011743194167711132488770141540692990420443007631517349609518751971166610519690690722522738299760596078647358975274546540858484952729781777333860028682911423152117266532811988398459639664954162250294310360933767655122660826870912029888533070725080158815389025690088016383871348140690564379722514469554993266063218342366347301210510348905804135207548390758177153677127555530091199980754983516963171614022717284477495818278655086567452940039650228285698696503082662821987034327904604193607326754799172560928454924268409835359180423201252537555916149417038667637379136719104883723452574707733478060108889988580475025271117715661664337568495460819720223282068182624185828627921413079019975622497194375831921907775453397215251124924569766957491823159569932463318332171523761036388754727083469629778997307363374367433732025754829274315253902729851445937733397280050869779211600090473332702499829553165774026788858943005189018659784409564083350048034031980883079194427014762192832464191346370651696746971477545191652274905860001391618608301343791886354930950322937595114340017589154860820959687479552599877548411145050044458216860434318513031806862717698497761262169547264183771973256487277187299804436279751652515971019106336091872879614947620073807748410158662710379914986431668416962270037747025816785303198126912946305760633145633405221385973970683308936149963877608565027984487594999350783256024852898000512396592734857356511387649906530207259368120079486826190812773132264189552189984821377258733271002146995572154358413258126337317204015635159683600126628692392407106687210045250408712940815030726708134551728915949194221776612892345261994511137302994620397112315461598809180190893920792461034834964377447818954227232552414886387281037649915017188941902204783758981855585190803639502595083040876738834051681347016837066730591291590296432550024135003828800977689231050052379072914418700585919523497410746665560823858983242787558269086106411266590036211709851787410341495999691079312380132383378549532459862497297950025890323673277762107542997145019830291612090735600059445652968467329030941203998291382798855703215031411486847540764152721149275296332564583603982256315566741461463005274273488240164258233128018581568609199108177293243650802854466651224189155576432929337059606706342389138910362424100012846454183383786629506355655012281377167148312530967327084433299103715380513747681587083285308961695626613581028055669563101153108592017165861865531657105433883006598051293681287707076701844311437708852591511282700916157405125268720206124828234973358028755059026028689093024936300268681799005933220854956517459835232962484131135162844875992766153669076831281811240548599247760579157198965300790025247247851724550404294283005185997018143934462070828711237178224142060614735219545132536578458216257570608508207884281208545427190291368376057758966979661298470740318351360937138595414008375242683696560710081823841464243830960099175877400995660214503255093244509012364858092929177425742199757748189098724659419208341572799566186468132886333947855301900203995065778630077288092519803348892405863722530166339637855787239685539685546534237239882960387529416106754173750438069611387827345496730972113598216158785667190425778089020093738661419312739647590806325639605194143935043278407891812835989217964506367881726218394119578395803485572138001725748849247249761956548429600661419314831933485566081553648845165313463828470432513458753486292247048273319453542378049567122723471854817523468773335571845927870282841955120128367169698262304308931668845658838629807786273623252016791954930800733670628679436334936610870646097634095057044831118390080921188305075584852248553548527238329971537520889939936593432170140722752798329928071345606022242840485218533410267039386782173100603470275613010503669757685883884186254570410815751919603589226109246885653795682115489421962959963019658098268237404881009142307362450160417011086357644976788493221633001174057144309441579845543009978604714320009161267668557665759220708081679263886623534543590127327857000717072598023489138165126821168553303089049170069137386797970759922997222253998059065258616442397681327614283451615026882294004601737244687918631177322528006043295899820406534342804315784076366797040531377397418114337057901311777381712571799014721901779765393677151980323693610294366170617847408246966408990673485854570094642821519804673101352925822297277232970147509851615523038240313524154417165307472493220344864770341184480074301427763510405339431044276665957362397835282207520829987326676298150215256754223851602831308501885008545952800401585970574269911812437051384895966264320569792169359201019807438239927947878245072340810020375046878873858045034913737113601949740369596341913032784773643112706022262407746969164572921135272319208010641655923587526601898841948042514396945769573777165531958738037392085311922021736048754912705537773675911606844500836492404527250825247967815108278673482958118831138510544052514369195100894433970199651282594795634905262541327990648627712972373502102561250810055133187340534954172191389574290796932042601059218259784402492666602071002572697628924321702064108225082556419040652245120054942065401806445870222099619252859721107553174705140354420332391200207184814274141736718206767167490966539697040317485878633762260101995489924702990905784274694175479777456095357997364512333132460431066319536257291380996418528315376532883794788043648331406876821323224029129229205138682493446235526921438159409481455684493909498479730933112267825772199848911040526646259713037051167602287980884050230059965083002632431807443670564569170004266804866469140833654004953136794033089219022659234591062878103719819222044192307677691540087001149013205288146433902851966786743140159884251697904139424357573552542070425204696538128904365894423454438016530125254628791332026206538409510924379910200533927200987307617861476239781596549722660962677865504513380820824424708782502368324255999132207638445820705516039593992738161675802488006332493396836416736697515706108489476309880023771201809757874087894964524215158440956501715885794293268684629521619687928125698222490955936555891102243759713705651763143392748123310987165055748998960220114859339456167303653800326234314774965577333156843697026097691170794058651029422473436841268111437309391161514513295216518539853195751156633553630733489912208702418510024566784145064981798714795960294825622061512727040450086073019200491083058001842694689035015409649598492629673326447890460305417224568484661158392483162972876702972944341784487094216026951791215015824286924602042939642180533728045125524403076797353805811924137060057552490487860842308176888690024459379255349042143798641515602564195662936710078341534017838596793406269581793422198413650049706475322242516074695176970143649114263020250617633897859430467940398305916647474789285734534913744935258480803359004902308295738024613499095014699144244233507151930253452055828766582779678478208568323836645570143447952129719444203331705528113303114985866894470150955350560058741272155469203020887612745174558765554680405553240433513643255855724747899356391129967270299503455496020213410999360908242801726937722358226754785872211336522659954801123024382236795299595825640785296077904017477577823414137103258655773219627757981679262012742452228196763685778978096239152000040284363873875005746831846038142014930377222253061629410402332258771756378941531934980400171909206147536545639256306366727095927589140447883873943587850296420389437155134286064236455906247773887788002877910387647050550286373833358965105640336934847086507462763008689508757759538323003838187852176496957271855530979804415639387028027483036078616268485078207261030185267373791996667415804259904653175694396740977600979792356308136307221377423482758536227021106620524246094279360799916576334921232042867735977274101413212809543966190907191764631173205518015727454667179980938258603325833846337716148588285967090613467065967409413405459998181124972035956229645539645881150980509062240985751812833740978201754551583654136085889794127839966038718375643089585929396276085745866207207492932155640919861073615323804605348329378601606424706659378791086146992485127389323267279619282134275435503408397751050764270019227354535846504527807865531712393933055069532525219941833507863786145664819766741080396731792056136914213944886548477234165483820932766453896737327793245483351568615795444806825120614546898955351607410838008357867701824436183477585194620184061877371775427721509190864449946910695198333999253861581527400338399069751695190615275299376105325146649248975273717448937029211564349384341315996216455297332399395450530539098672437251757166056759531744336757211704871343190975992540944302229289676681986020085633135246875589652101509559132874764726338058050444655853517680845860411557693395985484689352463928097640890844131794150322883559510405883334744125003529059558618765589781378017195142472852931848043508316017626531373279886238284871482996302737922447258331001095584863584852713069413933812980896946314897828687238926441847297553506256960540190563573930105034587833116469706120144293396542565630149831692721581169356409071503101526589621579615189212322533176315113620103612622357450911621793570538830941381933495815633070395320403384327445252802392279712978065488309041700871845549014454830840234024387637740512517684865888569429072815034280054029065472087488187971415107745933012820018932762932036424906562077670177555165439322899015313391295169474658369515459374006207628949866135748759373590509797908357042867672090275593050869301530091912095380473084110721162199205503527053452551763753285892086226684083223637524846862684241482033656638900554913560265957826062330792070094234728091460212061590989986660731468600617447378213405028935518415392145466063986805890036125208960075384181710928436550669731840881940416027983348538642344738911391839004192566289727959391391178789442592059569476758389420601547926366739860171815015801263084051429060114436296304251909672403628555758099106034526543606969415365961654158385814990199198951955960866571102825617460610515161368674385443962853389014853135218929106056909288129874299708839992003287185391183490775301242114596694316896442740870335569720170188849867710984691982411099674310583817597509619105417509540951431907399330779100622678837328072614501119577190519020965723175735046560835932664922554630662472060148779488996135567294138157548734139260489074694941383241927848723841825220256229144462531027654638199940291034806270029427119732918688199858154721905284534960991861074290115007137392022210730493983632033884699581801456712565821884665949505502440501787600492935247505168577102398368290171557670694471899903842896300970126203548392345555720048384693243158867177971487657975950211474676102881711331738614214037783502880568714534119735140138063888707937899378586670642589893838154464861832476224089455517599320985599914503806387733308608330581233654413589684361957823670009808299371205979854372590445597132390355712442977366384781523612252179815305943710478448595691540224216910278995856421051574997542679220677213443757873632037889148035032418555562252491809974455826111811221634892902212101299659606459640860528096438878109034091731673011702418930894792685859365168564719791821047493637855253975758218481083072894516433285574659160014862395167636060925397066200533010840197723813695090819206920429799881603030650848778436113413511924894568764629210869439094047895605182929368721562201325476796770688023773779584552703264174210197386305455278217095173854407486828381787821717983476172760242630127402218792731636437371223676552145230577934519337438128958075105608684731650467285247114762054002582905335651624955532392501136982924262026292188180323824950432433778009108205006664710508484982759578984142276875592330337024198704875406448094790136986254335311358206135670974944936710744576119048844527328803931935830419624051499099762483434703423647531284819751546194660164185825298399326822844256615433674150618868735259816388155171707028918446044419926831988687797591018077229575982366491699326935465373586349877534707612796205856295795026799710842029892418412070150587899738412673580338489464002756787507133746279213958727301709167814026962814913759503838667133666839476019840981620204645792999977116963539143832452721440610403463246008603751761575069324531444151428914259456622553781092285092333149011453427263128965167898947834679882549983201322660910248252548287257242421687773108971501673452331216419964267838576317183056638765363250788376410321681299607785498125320816074171985781527159668116430668191721304203360919734297078425457394932052227679584520864630389301484960957641375729532421978014282278368921193756374835374167848110413660435167821065878301789457071173627567343318446243138888380443030737869673810028801503354348110253265115896175079055543162533607312611795021744999655194197713186952004436875311239307333722076659398649880850417564370382427155543430136912655706588270461547265098775939468401628333372135244222099626325757267813771176254912054107421124770323703712960828022477593355813585188018065661972924310006972834347592288648944029005301804349965792719436642103294441283432988231939893681020369604926718461242783408177360940773215431123889139143791616288272145488779538590015050425788198086512065803835113193655670452963759634694131909008636871442961043748537871556480437533828148590509136182285383511701751449495898058088167464479841763064213747188742860347431264769893277086024455552597421210050445562290498093321714320030993253553907553166923093435956245618964994928932848736688916637938653517794012087186887571756491654051078563583871261015074505185169260750626840855092703694760809978482657925279411465121738453723540636757809251126190054738667920570849284387746503922829635866048557360265853775818640325868694851088420531227657282405579222591161724076220435134949898331326549756046389574521880372352377814024490367345716809691579114076803199225863567568650008730415040146571947842516734060879844657536864614296192441584211259501320971544911578966969383714823274935416887144284689739864002837900459067533946363775285161142554745123417760627813293326123057977627594358279643087013148959997674426935302175110930124461834014190288654954140117198557885442516171879589399943979538944949209353789680550972351462111141728353687962898780329532405170133732686981269401099251108948796266523838092346619538552072829819665127054836282080854665943497058548378708762550364069643798098063971085576589246539453081275357277934399077085116835550545854157725414097544783856495286053563226492942152472528034391557136226142629715756018968560707353382771709312004651448626900457498693533434475414115280250376210680808524807224438994893250498482695340419196788707217961677776672553330628034219181613143018213870078423102373753924129977709135576395693297999401142448784493917460018136409738020227112985776581668510197418149413271281967882956737568250663545788108787929689014143901286431765514582759739178428887091299436332536776939479157684596174540133765565366484294324865289430720674105236892175648554273493172835753174338286435019565450885417510195322534018536089242295647146138126219731221813796417743626511233937345218769185557304445747094815943273730888270532259041569504023285462804064860675386671817434792013796038310183494372547205233342183410935447254054215107326913052052021976918919702598443665297859111886243637473124932192719123216651635570232545045678867684137461651203687394263066865320557484860609192983387360702882306662431236893644396870799006037909256143679090585020510026743258688419693893214323011874763077233227364810080294409080369667329781629792286373253501495531789053216848339171021367071281854819578141917184930725681440709751403720587332280075060083592908715755170444539822350631768431684484704395249281356157589013028921973951282634289386390835624712231682911056418860991750644109517207622336095224674057512009760134954970175315277708170632164908531188748365818475559582825455784542740925102922829242279959051412981785036888104734519651150132827846916200819961568892570465833083872504181012229600790040567336642307107244557169746780824137542786636836866684180993539347592057588968582292470028370313242428940718765739286803217637482308074671217913913293924329227639023686300409567418999519069767223541902153025980623068601053519110244329139329679121522309193057084717214665667339986654948612854099082033597667290123949377201745468155102521692703952148183000634205631049437947023646529089181062007543229159240611188368728290993804150299359545286337211264615822209224291426809427426551066882111550106326892446155627223099339901124355479979076407498178062694214048433791233782866471061270359151171546987526534670745387347028212218999075720740887588832318961715841866193055886086466407704621759619389047445639367620448837189144837075387704402278828242737788055889618616654869363901412120197552126416627641061891439579419197967702511116739331576006572957480589805083693379247374475551489420112152218088493214628879313518116394889080819768355002782059017465047035729544029126381879166008240010736813318914053146029767728597923566476220073532175334079641459386211092326930792618083598883999689519830935945603949582384836810167335128027543638513663888043207117151260342372384515473155058990922429191374088947671625589656302756114410101790702495302900823762424316945727406603739719664145092400614490244858805281184875250063727230801623039609501356571504263362450702327975880810391918784075050839193677405806820902633220283851206804983193164457049264309818195804282764002919007160382814678466189759925316269658394222610936675078746928910300142929413850910748222227646220370376142578219126895242115361941282283490293250805363693233069918781970645268530543632142000484783274479216622463863469413036632343926710623698463795135738083531710415913105970804248847871755268748225550512806060850163270104534533317620171741868591714808585403515371810384004827938509184822463044874700731741407983161162330471293533508200960251757561717299183429999523210462240547336955072210059396126653108411446833388320966057873854686742725473479211798958543525675667598210346409479920500579996410370482100388099036406660950593794429970173615010784777775285914835775131888305485763972627100160884230780624893846468834527285435033476807565643894094448547146316735295396972187714588113748696694579052482150689177881817004456045172847684800089497276433745740918181111233118132833719420856397803658400132068877918553327531540497188681843642230045509749667624891542065508051746477996213984286297990356251556337481216251803484686683685856556193605451062169751175527104740689288948749230891799326754922636947603035439274731226515616308013158436232228373088825236174413160872258409968347279396628252188352844727140027064202162205408576923610602725526406559811370698340251290726677421696336548881262767877844741533682078059730077459770549917260983380499967399293911419215691840702167421817289764766082648372332883531029816090958046248440716176859310201736543506143844477233199576020122442438563707233338137615902790771551065162539598281617549123725378573079514507652124104140708466307101757117359455123894995326874644834181664006211154667393663023396432265851130499481013528882069024784969967785096733481977055899318335295742953030439470652137453868658407743974915787431513909693679217995844327824034590881545316299252146017393711358151132705664995329581946024518515456396353445416606953872857586276932673540752946359228307455672721142670139375698449163449124645468851373881860091165029906316837779310818754515086321710854847009714799407666900537058112025886079975919455960064456780143637056244404000802561048984645162906874439163298820287738736285391447077086727927398513266711381637219888647472741938758540426755095021496024328102545816585004989019646197634310274099680163304961688111422281590287027721899067620897056100374102274641902303613807752183954490724317497308003117415636995032091929946213824359774532146723179847726704942813349972222521160518554060892612895759153979452055974100106378471821030759945248026206843081124385120937418084783125230724923558561629795711993372449749292216922235590488270526146145150606559932186413918885344807029063769479972448869219923737297406121863516171673380595510642121836304316778316020944986781666955881238903022759009547650757618544793339582986209623388481486802440948884886216179792677695412271672714241462937254264836215905808533569415885732773991250494588603185823860290138127548697895103562552979210968635071160604846475142910230927022459098121764635384695981835312026594336248064430912489455893365407205203365463958893700193859269215217500658525392468548275445229651706941184350813825002448177699947620044561271850802328751227833006565396166846454020308531095825826640237060722583179054600620504173215271223460982096087979570040121311688658618300839963522310178460422993914036042933676396339597206357775469590177619876889060850335881003639352441942732374080087734543798280578792141284071806132042280632349460907088642597855051287824805561285463064095225102193016920352485338278512393377157748883051675776599439251254104775125178977387136731187810579732136015513201118656545608303658826533633943711323020449518619843709091098005606955631584147036189146705638432163845488105619492654732949383528505754459228558660520208447057469977755937590066066117150887882162459713034453087236148105466049939145082603297861914672891964667323038122800559860859801462695616985224567576959032472913822287388670560868984087874502046304569531962914985940907628780982677845881113532634238589558818148528893594367721786996929622434849206291259088970731542487082105241978342260139906245335886468575119772084780938461471920441394646350531170970852749412760601861275010164670502118015826798494067639767056557712905171245262680799315304763862614705826129259154543851246922149323416918537572936930035813589528957006452104018573800334693597157425482605202276120754195362403633295353856896234672331507924868924807027623438018103987547719619120267867042404130452688894587074941696527682987640224683015652406312084495869326563210802518293031060559226458640814743493022175150284105496063831387922943718464970312579295998546356706802744461680307384040290517975780184210886523058663352253172632136332692538307781391025809874218743164592003653772946158850098370052424311424607568410265861628428333365195928821784444944105622767018668375474732621274258570069462863099492091571552409235155428786384338173030403055341412382431253709104217259519666229110712716220144327120546177860832021546058483653521678103042374843009799212218010769062642661175050942402517865722942969705156572966863636766572674028139844786129102216134566306820542592851100845342238497671845072861990411424395650764180508593269126871549884189467111231196312594234354104213615786949476160078590553948818142568499409702807125360398790108397546683073733334834076443142938855599159808087258452972872796402334826195361417876573928632223645894108993582368493897189691636493123650335458701596325394910229266910203851007154539184900406196094677839350690636749658989686301080601707051151135210593533625890809956045195798390367446934067352347771774295052130097470150131219153407378329679050403953555546522202480780917874396479928739062901006067967515940379850993558976962283920437121299002550557946149223004391588847688966733694217063920227151980018017706611398515206025252526860975758757794463263694154281621445035595361278716510049451755189212175528602865610382336675949836071729403160335728658760339637989665265133197559493372238147083614763878968479457863004035637772220627933458539962294556977391062655655336231969941849957168523832451282110900684926329371419077306224678209780308126694165760127014170373090516568021959121550768288332746271519669376396716319113060127516831637382068273152736397565394161301600128905452517411363874479808394636791869383107559175639111081757109755410721887811313157278690700110705424516648871641004740084767805719473943656185296032044710107273253399551042695519894705290742947703065328467579449230547447512716673803761837403192599023987861096030687122102480701416517158381980757575529423844038051855732721449445864198801862912644543573783177862636832418868359778285963704780281357661570190044639945782955969613815387234936720093328342956609340133088931725939841795768615301203822148603724577615693729374026205102943905939430481243023319722460305153013184176300789977415617807642311237605981697102470886817965026890318864789613088484679458217632023328454088668114344534144881913283782350200935402859067402303305551696836424473647490940102392446322818896352225760543711568430883405267516162853174191678506458388193461386126218740246382602986754317907953138716827216706819655539672540411424512444265200969988431213443530160948737092535806689871401444690300034751451264352632636422799897005616517597735581090977911402105044675704228632118913412641531145774059771135043295542474470359574352734764956832918117238763493910161202776520609501180574169144348267904153442272675854833139597082583653062391845286065892854327292221114280636915003525618869299603393964442488717559085325939569852618098637325915816315361340055548753623705523661355395590651062663800395717587672568757664395160524926127999145130140112510259631080318171068872285656453134013609828857448443876043715251685561657817251228565856755094031223977108303534599482878413434649346218494241807272248178102136501019522653554098243562533175505648832796850167767388854619070542550523756835010400593998190584290347536836208611586882220692680957447473048750318587196940702317797177147573953914222655526912381820745997073981619910949468386298730306991492560443377796195422610377943402368686845428822452793499805176855690762137881173370513491239678849007279421808127254794457876476478654961025540523401835840080446959390226012771157257119692252196976913204478138477110525462246910334589092195195483018790392982277348773451030335300804418524796276777472575000344859659053649931336717576217467154156651722374823726747779523664371024388924252748928141980958576225665167426936129714180664575458843540057007479459449815953926468529208786492976578271546628033677058920583587827088731284583882042475292086766877060537713818520367738904025669177825381663906790163898025491522502113044581353864021194638425490512238918134573736788736197048788845554784649301579554923986160822540389221456912055260960737484089956535636013706530341351725775149917057991467147759472509903459498680527773246657221224514714940142696135960624117505796667877894670159823890617452115649602112515512114078257697670159476858221402080780587740606404045613147438066871127836552759656714958755462278987395328710922246137391151525539981190008579249555373029549551167666287317788348823568979592757064374213906933421864590611809309894684233839587473884960372627561101111256650855847946211505974215203270964880835491993904134072416104343026079835868510270775758996794162856845102337771618233245292802064400915450805578159375841141727765298979552745369390242030324491896157029559766823296435026762747427991011976226159904200450164625627792509198801133918121309312227691184250822833730790693683080374905303254777177336980109747159435265287161589389950245633331474525576902674208243596674360798922371315379443500693002134142972080560702427301029438584957629917545002632430049896635996700437752406691447992484270254690339325243646940845734870591089632686150099197645024755701803092527349462158674327605844850282047706554377861809644217402429454652736203707778057328805283535505555733445439500917640807960161358507576287725533273666782052653064736870087385425690432410055537413755600178774145257185789162937129392611344096428203205728314327686690387214036200765825951249803757482455321008901087479181975632606784405150137888568069121290954301031239213060023091429760263928967262981211507625764777542555200472055656467226862990672107737592088599574041908858863719055841707565169132285428356280441258150809428572341695936323052513011263237565066683311718088412552541685625528694569206116005719887041621441334958131016027223642428898508339978944130137453040962564744000377640003353003708850972551477109279971514238969970692494692652313812498606115463183585501855619000643558274628422005809494347611509219600766830208485699186775806574566866537899836762819220853466358780780341308364976090175632442656115158592983644883266374785451340903078667791398006728944680193232390360495170362914369348946772858601100394789883149548479634589163055889160857735678847115381862619245101219352304604796177815967714911046051416679281030192880093884538961842677706924729443539876173754326029685599775896721914765482373562163584421061027210742536806956497725355534581044856971757002725013848292507583594114720371722041782643646964960640203784195951977921196269286032233634889716755710587588103269440563672945898049902454165209917063460538808235025593551943312085732128629242383261464851928991366053915082124027376138561001141805788609216201422919495822477184527033733532659889662009328215783958174533548868804790030770327656851483041660624301749721919961196153568784880107513177793442484535915198303929270487424707634141067782515811646631725135345065432499710375814744685440544477354680925299787576668162607908341406892688463493493284537506631428177187146989642213304158270206954724566641624908606892532344450518026227941795098345316658539430644151731770086488719136423748304820887585641721346848440303747207769812777943723586901612345138281947103672486775217813079177206764355063346690416649401851243667427241827666992351263960662949583255198982130068598823925312648438777060105381073236602436060657892226879920073268582051069837707260155965895913570977083651768215827235550437432923951795617047910980810710074780382282205548189723331344648027616715506259455214110041728243164566453102170280283616164044367388103576310727043699866645320628287028176215899949467488746148633490114925632815012733117083538558207780872261755354424813507285249870990684983038140506223940423549459067815865371079180531654423541962639706887336314990487947504677552336632975317484822540462927662659630876842267831767312413603802492494349160193239266749894806829433765002554825124435843073695839716194728586100447224139862237067390157292020043727739829870009614704080587939646414571878583028054224545348674662426767111289448360242876308760149651200022704632199465684180280249673794356689454593083284787887020084164817082739565253553431901548869474628937421031657343027948539981304202275174628925883240751876611457590398887422387347349035861102283863197890493978582655277119203382888749048835133276219912647317754108402551545699823639396512584531989953186637656036337059453228572561157324596215714767924782016349052263249429108755239465122596817112768786680834537002343870246800007957341344942995056241696633764041017271200357598895499572986870533425662249397830665299379433123642855574864389229800935099931555184439752140772959628164495865294787467645250315242461904220427283191353712700648136026259710408306351591627500717919249190907045464386680656994109985266268084575062830393693869035818824360254225994413736549084539010901837010482377339348737294786618932409956952447265273284921222035223557865343128921266164298102944386612254241506833283532102621976118796718433264822953193456033095952006589154365083863650935903420965102851272746446139789543942970726863715826234691477272159703996958466474149459810215318965443313380529579144808756580565794813851194734140589045329487285853107477695847609744004662953056956452486861515116529614163221650480875424497548215444658494600677033004048501589411683101225979629642913593772647111448045099583670219814447536156466784349230232460954923858487003965096231757804292174497876608070223281149333186879999134401844052598492405444021476912292847980655792172676926515444458903211280437221629567879231713601899379346000185391611208619206825638331352822060413031103524388298039707654439443577671675272261112030300348300105193441333161480523568835848208424192538063592979000990578081817671838762520825184443415997172531468597206022687101970063533022804148029900372155602202686614001377874842249531531428276193950162619713061755399340584271961848695107678338388753294679943427032959759358589961123144993259995452059445932985943872682138694939314922259058432129538339995475834883929325197305616728486056960540931813610977542757170308001370043955415347256231478794646364283617992322715597086477629029182827248333494590401466164618679354884598118128946367745603259022552501569565119136540118900718961091704460116929559682795588130907517843304204760704012338417525328625349146489323653984628774932737595939608340532881870118174241931882279905120084533021365667333627051918786684399176837732361123775480276373820488724162309117465391646128229432660576967578162261336691420071307364549970419269802372164159280965007942459708499877358776521754675204041398928353801001606678038229558651732086148238471217282555054348513210785077459042383080347221738313349614110316734763813060122688508030973376103851038693037518665668903940569149111526877278158423783730688427718204462878592428194564599011216259333148302064233767974588887224014779787463258471053879971727460764153280848643360957564727946276505490115265496393894477183265754264212736198840373572935617659395314247649212975459676165082908044517175595714381234043514726244510805936201963109337969291436937950355528885043283287233104525469082172426322962782972321188618538338174902299549506048186389500642179073068440969417404645512519838202127835270870369740837436615180929748151552610050641655120685630024231095815781445626796110523741018371345134120366775918215235236178890467225565330908175004359716303942130368891189329070670852697480849389852595030192637051727762246696226111168946839906239539245116067672105299671761138640539753958505567706630732596032984289744172171702206825574532738750548570049013167858647989032248586299950648272542330092397935599259492595097903446493832374714201063271872426495618917197949256267188734304107850127695599534311461352502336493519468786731457687786429156653362607311199540115793659565897166036834246205399721384233701163730322248278308673399777244768211997932936325713482983893160078143018492064451997744518142232370609065315066197777025523106521131070758655887243192617787724414154186745908337561155763912560021887662418681530905490248263672931408403946057826889958017544060597148026218286576476474645521956017376575835650923944233002176113692102579801865964142893379080511678761566058893131262860346511040748730203893763833924969053531608631594645209508254238327289208617380269034248732526896807279532307646298693405515093030277196698188217891529914728109902970912459504823012268674043857552939063164292041423433941672924314205843978391696618811865665670696843553363605089393943254796780600223567653293646869250393909199542547127597533323791257538263096231708742683173059138035137850398366602615222551407300855617494024912395736059701087728527733822656555100628805985874125397195304300798381253532005761068761880563466218816843582643938760945922963031554870378433589776997399357577845327701774686797383607680619052544502375862863612737659369598019627757729018354518978134937120581010384151033577222348688274682747405349469302101396450819717513829698873469491402326432098250230887105872358498807821375880856428999971203465651529690150830643426054821620812657285886138285336312867009190251862790619932632815651421840997184035244850081584558601947238659007440875237236437852079337396963652447946521859767488290165403862612993611200283752243462929507175548767184434869852911563376773226187100775452211423552259528857123949755921515632749197366157129713129367734507000653989680240695362765211830052819480514990969773599952358898324745307904521943859334801421972078847893312885837194347843770332636284493294007306920118465781335553456066050947430723703368724431176627120051366083494671374788393269037429037762879897551858245918741488396209716721012027002187059720115514884285500044716110566012892590552375932954403548587725125127446622531560791109079901339908186807902204203621014146854866938540693757378998185124198755693980896226926414685530800047052632151739174882948074948188464440357742860330181298230607048172520225163646467164156081713726901541044744059845797937964547270679268173905840445872818806013480085147608936661439923764894725506313536668868108914694766435177160562342266836720723845149159705207602582643153276562342786190613136888564860370626464751164558201689706817814561970333118564748135187335176893441461658086946422942339016988514374320279131936613795335943924981595200562064705029032957474254933188062270480154781790016405422887600651331314098825404820736833233871741448043096308348427826210700498229054691813908430478541895931723885722277637573217051266647453877729617566830054384371509285877030463168126616385555530595793489862720415290206979368548581226612859483720115230904399592958211328162015998763178165494026846298001632400230248776699706659089871759641589448989834513274933975842680773359012007059071788978401135603106259043029391125762049557463737010747300588859903700080121054557695460865668091052505634712492574734081128506927995442161452655703353776152942456649523780301488837005839904914867053890972563473472727405017187776314433771276495398119779666427410610349234164327231918221186072634841565789709392802299223061453237792399949993294269687692786049980959897537271125395452724522069036827936878976253602826593672157024505858979528932583954798994855392657804122666922897580683877246691475891434731429154764743230651961173093137572673934434828153224617509918441203286219224705618639141469639649166040537703983560603735925436935774854224851753937291403129434494340565714823845810001157113765674892231210215505343384570107167864813783678749259892274205918651406863787119476106563847164857509805105520245643785108140022974694884599744481847198501898673622735715870568377730642967650969851191404459637645883634351765153079071227892612623252319133510394310915486987542445779725489819531908463593481039840071064708635641590471290147966692986766860232112400045869707686685362036712076144696077516247110562180899977075675978988186087280445510287290421745577095462187630825803309332335157176280010842345820383652092989744749620398331602260885547419012696623258466111822432045491582785292821583007630140357909808038321551412999033893113080491372646164723717944994693634383390423420290835381457643824817468974813681019252401788516406775218916213692836577243083611716525077192777369576688026290179551937772135515856985453760698305890256203903012216570021475593722460065048238018066625263787611332506589896315286761758612901851567611878358144012463983812528053782412834555551765978579044053843429719818493882824536318184867301547407200356680707635728959643952272273527149786738059813940481333345970558365822537581419697615521810904747879302962472236270815910888416175237095735092610495164957021989668928731001102013594370690558267975140270695575597664241953225878354545865273510237617435836211052371336433740844290478151188916384974830663922936873064923787404403347992315204947056826982949628174842636932324022928136972081040128776387173596191831779514195695792813551566617813053448883206775739185414881428991915104448379240550982126349315667082105603702712685768958136672003880308068706988142153300144708549666394140209850233355126614596485267015696317267498886398676232977580888838387179606253096953483286070104383328742116055188592921688457645508528480756608914264410009738893828494946671004327024441681955832702817209586199600640453166708695192500967739458091887771541881309461777997761131751028079091674995841543743365818685314584667179289772075676916981737466476794190952155105198072783403496680661989415150294614802317590477540844320751798926448330270841966538273475687337920794309737505365132475951985636263293721478024548516593446429667275051840237597862219311877796382235597844906769439799247842750187228377747160591196716675118945039177846412737041932320251670868135599287621745108894908165700757525724162557719105073320236668690011179561034620252023020920653109039056484019428124292017869545101245722208284649268766074887837607238508448489061392421581190273405866859198874718780271797999315883514762014668451521857895895371608676270764679425794555477294239552297816603802991468373584316878978627859584407578603762172226729747095522156224102122102919981151019710671844967354331278692684088509216928827728998734282075217954352277940611021145738119589547625641551915699450982366885054196539843512299192418094627018197544510347939829177050150434128217649090796228511005061783853569741808589103187548940976621597626107831551469532960462611779312848851871007827728841465195336109025344523913327260634465937722570101589114850292505095698769419456927311192971912971735455168929979573001609304824181908613981875344594234146545401596410715549209166011124609800014410044572275377560689567485891205124906355696656581567717496999080791685184825370525870222100175466238898712882749578106461872165893177795790531964576519011110655402705971835413467603774477391830351286088707303926923843823273218263013690353366614105350103836665019887351607527067954237614890986467954062661154338736518816885002034572501579471745088820365399460944610238713881711570096256317733587930017353698938369393043251356445612091106283324719380480720696681253099864369687797101716200695532951457984793654869933594911373993693840012267778636422354450897431336006938229301600242094833360317309724584482291008164319728669776577412359990932911592995865086733470379299358849804437960423030926151588564355226775196657572805331450067446734749114735435845465599332343235689170335467175493141928082041078694887846048396399763741578320469653896095165104593173539869169636905179581042493196077368292896769913567878821788965543305475946861925728651053881410121228875560979601282592424724193978513937898423520397659219446951846558568673373740802734534917926571258785161150705946257392564140993209826121790255453688695284231536134544712094194570852482170219657736984342569453386859285048953546124401476910429455580453907978399296854189537041413194311780131501956262695488042755073632878442733936323666688491625771921918053596497475139025138231924407529370594483010520724405993766302680897563583821136123610171112026102657061727595250602305602977719894917926264480219101689147009883005196801019300425002391892818085889511431457673487816050056859325229505551434325045762319044380094754837618555346463730442660563683771381675968386248241607101152440750275369567612508902041153171527185322618453549781822466779022392285830081169851784398484991002784681398313861189110254204408436810516622937051230066401398128410655416502670621274752265432463730472323809206424147651485961940770916410906226648717970497304453693553619400996335167155933941927549646147521822482264978240343548289127024817258891450995013048248140843701108325811190091109654640708230874842078685620112346136644534585878271820824637636315005457707651040882595624653098923793143854223961393851501525506292252025505971699630052954119652389036720086911394186277206247247246573693041503188989647915011247150562422440908606920100844541987702427381585108077811958764003940881064153325686953153069723575531523786046068669071295497383262347976247416025070117461838344204404616845007164951686390662349746710740254467695543835345385506479433417622864998853175718576781521704127756385546073764218997854793095461064414991198791390538037425915337894197128231456551244869363605094965275832912734209660784199070061291693097235455206533028950689289333829967542745720355907706647827340871421064916879603484393627450381122327075749798228707920631770284833344668537887707281135775920629018219951037237830635290062597485875482521633578700004915128389670020092602955262581846750983857439058508438955273184687614862069567967819603515070472473314331029035290056203728332697401257015442309891764342136400664656149049004236486121158880702592597965800330202141799081831055895065761988545540566159237882485206904115406684623105821554101820317020907828981806339876245136561071440766163655688914384971858197710142204619008465663243516972302543654174889912458827931210820725488664567334955895000577644921399868508778975968928551572479651793828565047952157217330853911468775192639111263309248632288696526640048159388758181457056731917384730969995325807926546113958865872394868765626192521548217027071938185270727233969276597660943813224369414213244623429448142412673141116996837573252291145190620349014317815510487196920076647615376826995895538838629884375501980422029965496858578827307239202748925114000297726892238017224179796255903678637264831598609510725685620132895584109081852321994999643132297244874199725718798468915354239568657508519990835327083940293645830672252462632121590818875553707952089321655373489441520386188498195405994756531816529063410864752972685839319258856253723193904654192113761222781456816436195150324666401390216781449010823585638954512081385658284499554785752102605220109806444638660552849121903544075600442424924195906510160891347882472455411725296174796477594500913995540457955628716443902402987001713147267308785454888238311660581483172013359814954480969506554450828445459143249878354763889312864798301951049256764018615027633182997917547209067297591792951850151398950371169974527173282692328676793727851351438414367201652298563961062473878971757211291093121291771462661739464067651551164268991324707666543078676867736818543880212913629785949934229831886592829577875220427851412097542782739297569320201966371639365416367374490437957145687875029446585133211684984025956118391413575361825905127725513379179588847608756494581424532386277694367244355667603137772298408494856176101452610976543895900083923999462914112374609814364501502116798299435172585423013901390860927473834417052630424479753480727175341985874819807238126528650205116955183530220307324489458590279334737487965691680824898358002306639507739020064320555378862839391694216239469563339478500648695629866877288424503309055132468609173078574399064944129438600041112737618963062975229855618834190203894217983162996589500550975912093881276307663734856774487515373900925722628130600491852639656974944246592761715458538025224538105045415917860396783152487802317230734275323752887798520600485949070993233740900936316736187832266849510072053610898545753592014120545739808471617233497082642307528263260716232875180016866568535548832475150198607871183735406719955210869750628538812041529543672232039857560914276710440452233759554524438732785104516244655879579750539185969931032831454229059527126996000468266841348173371201824821548960063026363490307764485062741491059708461838626996727346345907087310642941255518359988334564380594003891028014983566693394423290094181700456176146724955984445742193514280217712633963320655056204681266326375930782056674501149949103696752939062391510558922950677158810384186951966422894753518147378657195861300412880234907309412596089933505473989842999365367911416134534016341312489789319393725903590074449321181195906907285255299261259364606483492156435591675119852428070511736885412749508370578125575726606319313188583391424845092590603070350467099433453058957326633705376826842484309098690052220348498584431316146265634000195003020603329937175760042665543673377918063293799584937784291379872081175446458396221586020506341959354111864996380691628858094976452768346754080983672780478669836495074680669117799858439160351890797038525519483218814130351171425366306447576028797936099916865266925601884122754840760139601892203125246806656317970422440797053520254748235830699677739916440302413623476356818589285326070822448395477777273047662242297921246410931155122545683038156727940515534029850159837856039864720362176916451666003438819781457264673895692333817869945931371538793960080188162648574630058112296766091852385551349819088510602792792643074148147507025992161679339729261954550425491121524104411519938101914298731850004456575421841281748357855626929266235585282668584674220472525821294612300138203310265992892302505527464688984803472220347279296943685735235718607953170471996835671357765074764441785642874927576892896866170638313736547541792376501318838142609580219733135848888714413435053738992618568032645148572110177532817005941984293024113824757602350283072147068577674118832004280180779120238465400112436616346455581857850864206208857391043628089743083572453286704666984669437985306384249790890696982153215066213717549279864047363755954323086005775151162889567118748342815875486290051197164661223673342028856932635501488340789284298315771899582532795548681469059484036288886485921810824145400236287801794846504713028390438885887879585183700374628115360378124590167754855144379150441913449738440594957796025915026987176683892187247364033409072175329287670405987381511277250216586974331112694289954752654296644765406229694417762061906616791301453355560738719252159021693294933635315547437353098576042641679192160508724297872825902657333343499088620513384378453105696908300830928389536603757830056592874584633346891345120296561278237382343030444965881006199356580428976042391500402637708114219023613698306870568810752265987446359017198580729572301215140728764662900520607927631405062525030406648473942026962600078389588001645068785146669635043307727095038727254678678127840059805069634915493167221009193011846578682559485051263785170079055955546046513754851776078821590234315464835670558705831678483110218698987339995461191026142750759293954491576942477337006772267989939811146392152362999125309642791776876499219585068543573636897913972353688477315607275290918907505246213482169602834966960166880744095346901201054482321778836931988141916600168552747518673071843572434709394421567996217719650387531563205912180155432337561170731874002817999756281998602078617956326444375793077708048563150854726387266974346423190458997777321877393134615233736842325445708233017749544156213328879611627258571124809481126091589605592792956247025694420097973651052410703170708294300573325458018862289332085057450727158142659885001729483647024565101395326898311333064422124858645670019711714150599267973263291924689679631288074862838370502189200791780103850883069855350000198755195270156893529587647893109715698019006201302832273328775988028408549856903350271816437349352898468954178929804568118690949826180546064020866915455353250804563011384565337173401696718654265905247058898923019979549196191565680108678600000252089697970256548098041428630186675590250989067837728577670161686040277101809564023091767254102392089297758388688520168807385970431130803577618763624958494771896780251657493619058359214586868888184957609715107675634650511477679408666846150523374682916725309184881642914594131753710295008708476930206716798594377765127486913140553102598822719034862224037760156282568470493472229610308049343102562108464882253447366477086140329371837425600393374267553545961022701558527237268257044819746185781379262049953928789916599079365469229931633935114041969430101167825915596929678110955137119732690093985541412095944973464112736410771349865159672316279547127554995043543622404622886860487892614867741048542143575426696435802234311313596564488362153195401015927311196511182137380726514670775808185121384665805057800441315744632444521715427512592723143799623265971377212415688852430620743132906606441361900926415655233920400421339034458453951504738292789145958658407277759324723336730335025678934211467962759874329729268471312033472929608878776028869721874061076606149014204827723115745809920697861290635995541447069514264728970127385244673827420675832953194053284982787438155826815860221569046805593865677086637206273403003735274315670751064229121072782135802417230784155359000457241805678010902692120807262729825084313354150039858979420703104760224674662495041495633141499125709893739716679675830852549835061431306621212621049773205021423726318324059754825517380498483650977345937459147740210999453864443399430484390303433689605227907574319583823484922674708059565654300357511057021806927215777146683545950542384613111505413344587621711758526038717393221105129048992559173119071286085141307923153083243988145674487631349272768268702903338303603079093402930309910710890713028575141197254911497344057495958687354493382672421700105272646636595768498600783025036168990328229008445508721638679204989521402188212335879573709442503666119051047344005408775809917500926163362697387583431349716770243482317782544403881384458087601909051774740893100754954250144741957588166866987793533295121329505117817884415756376605997382289813674239677868024467126012380338541946470026615290019337961941734855885261366114016874129075969170925168419513867304023098330783948172576161304677277538010448213165889284418216174422491342325561282482020184497347470576499035091406541477058943522176649083722740992335831246856256297499039179628262827416345950815652399219350313792104045119901399865674479149189603878401390579636068370186453340067112967435510221540891152534017877730176871621101274917869933952275743351587545380768263272885523601077311902492885442493907677647084564747382941071219524611562052313435422891269335953389250258009768596403568055833430939495266941720629478774989368815569727777074597589250530842042245270761783306201671370113510639713331058683619773633531122175495224570711715676501828317849424142641669891051212264567705860499812468675904525956744351345699610269152652706569821406260483487611676888587778548988200116939474984499349769884016628390127641503176107578986465534063029326200106181376001376106702483171118254872080783623064916132980759894970119798680289391964079814791693958729193977740878791663157256358368106263199791058742366311297201311615456394985891055486015961906873417463177860511163644174328825661427111408212807741969194774504651449640976108626699749162777361580317163145938477176269226257035394185268665762183828144378445283227029497748787269386351792715176234216657596921189897495611843795543659866929479981863515883740750674036249760875133801810364230279558577174623533112077934808291611615809765978304455301306827973009156192545721625944161772789111171463025180287875893120811376454379984782442441642638595794194495937444148740331566272574148151926526964567823231378581169540699127588168497836680334707519477338917744000115457452249017607927799610382324112165350566445247408264269678679351089683469958915444562255909845343032755827124456456582021776782875204732627555036756856419038386255447413741958452022639815133532887480380808581570673351714462739808770289484976258694503479338506715442595497725748733974725271661087983350964784241078208853565851819576630990712692157407895138866702401905937390991490075165580897553795341960786222474521583857267338801892856060446682045124789095525468140329099373105362722551348198765427665551120323224150082847608684878957785707016297089435399973596342045541123794900943046449094216592688121902422879680524308510559822089248872551767778500110191543065990789462325718535535993776200996681721722561893178276823580608552316586832590633841923521275302127262416357962718095901744000023390699906640079138826994324578875738225506792570958500338174386844230121031218453353383536667095453534489575692777167933058389498947527639892736757123347611394656305960535438028129767272735294093832138211363038349212624110359079046435253087648659920844845844745264455254112253175672855734938772975202897068626493844495328266026916164266429193584864747540199844997222339143709372165819958933471608086656765830864730686544602643519305289012663552617424191986537863695451727028788403366057951555693719877029207113083064079988820555018100371331734419489081233036019979625735044569539444075629108585569859252826279765322664555710302219486308638940202345163987556656278229191019988246182926806014219195394510785737666994251960833237717123218928275616725885699320078052929084925836726270466127097737665738148668934658295367820942165877057243632548677787207676775415369845327434449558679078602368847660962371334511499645538332700882932246419101120294987483865600389410070299390695816272569561500158300713518208047573145636998413175090904864583610921787974683731556252258253427035887383475522273056044120648635313875553540348531396433665075464028600103622009229434709454616643783204671521182293007285017972613301162517509875179127861402352357746454240292009032427583663209049430361826179711765149011779146706107581895377883294317416863479691990676532923701628229908029044310597931612458635299633239112365423663352900741171952058007649730585257010347893777213704244571737204363290282523481688755430283714958198815957898344555324527772907287422497063681989505372989025462897786640975521991821577496409302483550957196339669697646710387650230634070397993587008213957809238284613826668527991461584303284077640260285931428937528571369198329045031211610692529129899685410752288430366170439137023979782672819759381958331219940959194316859889154079113485420216919961298656256067326262124477385036321281399952993324576680292299982493060711065941666582006607817334667140570950757865573503101962032964680537764765091828069515382466699805298472939975745582876077926950924749607773765852549417009050633196137528811092895829049487634654799471773903262455980114074879805508759587284722687008108421028837548069775418107197520654940343349010834590034341290067550665868166351037775496929382980918255437684689089768788365352025307158030586338808525410583736714753424875060687318955752911765686870630001414855170871261288134129624237599075906090859509953002033169017230473255679712167395706810770756483929567260146285334664298543619083017216810032162141708797029825667762332293265064315552163262448459004829159223409841367912375247697086023550838142060007995232843323563605427847137513572939827922607752818545588918952841523978897596600331883924293142530889603978194215832349305324877830550486946381334263945707712244048108411857307561611631556585825964559753308630850279303304692133360146057341846658421996081630095284590393777483799972135639025472648151631068812956362313743487073234322876427254245344738589032079736614763910693249440868980430547480054738178405541480856494691791832549928424276869697621204325816902740250073102569347280910334905148377979419822884417715821135954328332992239698559802564566648812767006022733181145458052244116502776419748750429387741938370742666819749370582812706892375217356382991437138289703467531417430778536870508536735175551627794686166594611265418678899968269377570842033808221003252083232011677980075658886809372465054628464281677495114106246940646754908135257304709874206251232418379064014820466715556536102297056798675666195422253142514479190413294536155964099248635653105081325397453541035927455114862854984959775235781580273071490213745388832146119877736666132873531043910724961575311027945422188677763042610226796101232873584209858552223784710208798963195052860384773053927115813232235051425552642011723774506543654636678281493586950339460909151635412423981893645837379808573536076491729561431525501830511201631826538758144029296452126577809057685041146340999671105181284990055871092632597270270969899704762807052435713832427415367033421085851855651061733419112429421604191054700363100943530792700842718590068709096460012436325973447964576359052918256004180290467737284142337780713026059442630702667909528978403682624461309910836966382443492581053844763841861917342825608195884431899210487062271231657709409904801146314049465952503521770954853657596385086632578181154669839739161026948332515859941614867862427939811947436451177178871705497514468254329618485009302137672109606003040514207945694644659598823563406874538454192570929878117508992801504620225866751753909962784728901004279932299721363287460870963467566151944422697613794620473455353932187115019263246285204009285929645888898422526666997074798490740806485622607751439439201192717990269076224576239540543248963636718276772668457926431946319822718856423730466734135195034713858160390288986255436071678491532256301395141701698283679005250366969010056368954453815487713114811304782098710390897731306810702135058923923315747229466380672632485784577097402422878326684716254815202197983898501610734484012249074893515243837518842185008165862811449856686524243518075295413846902216768066974560632079654263608627091083972192732232673405458208540404847049826800446436850119175463187297152953241489217501361725390430926156239945966254375507863648651626995598946265032671113508633219515746970707493977775386565338963109659661024859454780212416534496562771781548500440618079154755707537823208244839855395708813821776915048501255808642986600537778337413295445329501839383176398033745401221902676572926578059968695950535133839070311322528628618529468080393903700252094301987230554513094763886832934574800600452809539932593020486068392555069843197915698230253987516848009943203074171991180449232384848393638592869995111899035255210934902958717674619893718708374368708172203801594402930286470118893136992680432089454727446427780858766848004892165039663003871532466359127952126382734904008730666957873205186530071116304193540730267583428304951458319579175479287926245755057080472322201768602790237005708948608152905206205930356668606002249763175889224974178648531985393181863407564371275151148434582757042263045069400042908792835125798149542538103961771871158987237059552208504867753491500601522742395284633916304046423111503781765785707104686078330170831319873097317380051641442880259485595228323148405864664693293598746426728089866649992349121434410180674192461023261697083320556361337092216030215909087202939401823780295587394212690590570257276525366643642077509175483626508602960814176071134525904614076346290439930580257646131477251277054838866117591467080643139518745402373569131652631930082685028818174286768852934941606310010824841118222474532397447815033677528172481817942046462786623056833848621438827965153906677941516026445356185279986167045039692659305052127795390796058053231698907392264593904689127081319182437047897500647025260692567654076827349711329859708050979722057804542154134217568825372964621170355305123054650870552403056534914909787963846660229350072335167366144925783655872770182068852773640209243591644679728793841328403615261099546269943350237498171706050475470174842700152078305069130166991511163974004169363579815537611893817857241354560851940990643569313862486874589525655267471214393553680655216341616904758942926461939387296145513948404450372963331164768108769280064320542306659005745683026915080788121812147600413518988762703855325973725742033125057731902590788059570865472533632736337703894002417896901688158132051744584000348393572055099608949425672612112032872976648185671607635857733216063049981417585040532021442877946713362795570406422325451081441117565239801439551146069686680535105506571487907013063676857985096861308604627145122732890467305209966549903350196982464432347867119371089670677275940109976097255366650498054365596535660600814742727625419859921434368275347105759415796782677786415745104544910781586112107616246250552266759466250484006270918145543288363515744791933919341034399137049859556375059078596582435974453621947398760119259845068481045738642229051812282953564705644183825266269284974608473620648494162655287187756995665327781282983184208004579782181670779235810769851994036089204210392346126861243138207923272515875279093365649981495825779407544705953702962699608147148418207767483345425365916886192789926261209391702840382078729885158535156320976165606062323978887518070099265870012706751312347979046212199415675593359107542361043440655793007361687637220561177416507034572138404649025841805544015065791277927080125806285123569601655573014876377633682086482291179023214039940758158641430469409867770525877937455889757090054481234848620395236555440340464999841131331767188187873997839054388343702477288516114476616264998545888000265009948377366673174064138092470027464635848759911571121146357194980635703781716800540674414760838994880276450823859381758448736430524854813711976543256878270230811705758853137572638472008488929248483135351126998265342968461659018609211464647992308685094374996063956430877352800349556921491661862498634469750101155444343672506917743175717945111637506838667615858588092496869583938161467965610437108043122018017933468902071702935369404052352321569429723160973561712308883808450353439413291893699566065146271271146357532042985299540788450162060440748507327672753985585894499374519734328987564223227729035264612838662633184930570683035669584251664625439705385155804495337402387695723270745618405020407783452171210783349319002308833226868497752158437802107335371511060900320993617651239085581637157144185977774272999270389918200956838959075093140864021698386591816701633110955273832894865774312100270242668133526823501090262454802262675714151755408661571207376632366832313929753374672058631761448525583430774901621749014249012968225312623463488639860341095953148097372935113973041789201177949611409159771194607823362405928756391480891591864689762987203440198136201963905111913901523938231334095451015592351658365178442548176713912167328535906272064151038396745467429887365838661847540933647869332586529905393206947758632217305593069999322465174457008127509767727579845413499751765082125198644487240605827122123933256432584495623621325685744851150997431670472604847984650407512194847023361863049369310500764729468140735213175025219997750296135414943515547206615850655224919225985453302943357093073639643662899548314656489289471407706145631845299419145100419200213339411890861455101606399903869452895306178306458204321084385958787230125350900262073037933152367301682406423766160015646509243144680586767865348644860764517498185871600096036832578697517870496710254715180387840852568890433351740139084981872788342070282878391323400211609162584172996383279183783484176958517474066224332824886605511847113708858645448237716133303977133723173103649473425309536083094963609765471580798367546101226647515437110962464190458826179069693701193829148298287282184829903783070533887898682341733940804393939704452899512638233471677415121232067103009996869626034427785272394202838158012586373088002126398294073665135804818517857587082022740150801621376228342919565826642087691798254072361536175191873630365150957457451643301171417506624297138287163200488453826772849142775389156477499476360340974465073574479318886441583524051937955336627727626792437593677828853059758710931101052934596565856654817428426572579429221018525874983724852432343811987446034821313774565718629032115287755624396635363206376563584399895974844905445423992059348485829114797219074677633798496145251278693887625764922691285628450577323628617346143988699331580204221864640589237559537373162785488602570415756407917649267364760049019169528275725590100507740145906437934677380152794671018781933025440033010425578849604880850434461483629174509393679114712239841529761843894355278288854970315284658164858553877625550407565690792905839383143075666904256004456495940630718449655219315427716434364275193633638758699757731299243501272545823021177486001934965267188820363322569189768687141231033615464384591541379087282648408429335969687893524840596606699377231376979129189622797334335793511062647138057710548203019226891740033773012284501384305451846101476439401948494794251984486665160511940578204263369258179321589135359582131135503042835852652873038175542923299477256367398291843896219159222718339384441978508357222698127584287641806833801248022198677844450538897918378926994582221848767661339521906066552312080121567171903760474290228305363166199912952213672165996654523003926923561933210183655827340448130928386056708868696676368759755604378195151928927025129428781463528427348435032851485606630020845192051117329154167710718714952070871903741583877427932155801818322957289033101594220337329444617213742137179593516960118610557455409724020989097051357119820580924210370996657076193730345311248043000387419509153616094391781310407306331625006640941268990422150061744572329008197458050521458419663279179341802707934753369154545130062250665396928960851293674276811413121790400420259810973358307604219369910358694985715375469309756650120981822060393114334422133243189481366739206555931650055076884366307728828508539819012668382762095309430696704250906197878886223685831208937594316360460748953969619200651277439153720049076154944736863483084878155170324283339519135290961687087713905314454892135469382371072862873279196869385373279576050100738587872431849239685384294861245849250143078435020952455935768520348177326188941982910884239000983514443483218405811202523575141444273252791913862122842566299902325456534650669827788195180294580970739329455031034844419416937499433635925770435229178458310620649268644428258543489607928464938068361499682179965008115121195647401001938822094478963032864508760024767884108087942812345898398030146737905487024212132369008060007149398899408983997552012590608902451003942823589261057873048931360120421821616439506162613109110268945195881340037902132217781229341412077698811514819757218078638289443256638944891684780211421984914106879626716315836686371917238003920435529412784726218533790021989526361411265340183939500960313283855339250879344256661660096881202424690782335887050387305465133176837571500530586607562747079770709555736241114931712651286401670630066358787032268288015533287696318933422655933897037983191267454710565690919165179171467576604226636193506365798527400201121789894404221569617122043694881092014183920294344090213984303427525331179099668886015312404459734956669306285579830667235797688644729641267171127224689346173627743837875598048677743918326958740574645133969573873090675574581289275017891372356937820318027980788386500273468960769253298574303844332969852069963629754970212832431409625725454277027474714341458042558855774761576150822797136761476347527420273183018165722188768282463872501031856894865157671034862607532398425941138819719332024371394189276123423206730145446344810525127689707439214655661695744514323776926692774640422403699056420542775210857997407336454579998936173408184303710777871131936805037347212984131764608671610065099800885797119186730832246190387449853756121082936198676251833909100264635024386288871617758461015446386973986082323188954148371021612867381617655194219281659997818298599177138277880268314004845707278221096394135108543548353220042544016901695966165872660900428760221617444040083190707434221940714186366827353546933234125137156528612629610967545100390728208842895280662635615447964430211814140036448685769594834667820645760895190686248193048771126971758523804596008293705987102937440993037986370576445562381089115091034279227520146067666735967509755807572119831511656501215245683717304008359452354554495896716682638164693645969350961003894470237194525281174107804819580890259105194019584235216016286349754773426585757169769222030264273931666595550607620707249989023155162908082537769176141682648719270203556921275096447027283559944170536259043766447788719669865274799756168033769486087314521713231626670959436628611997288514119076683714466684763237666582921896703600806765262335577144555648674098467603458920772214799940820083771709094048202268351995549230268902545630683748449572772351288519345471240182166487481672767669532003967207091099084626637070648277424234067331453953119151288748924741260652778260342027665082894927575106456578482054548530429459571956050912156612094531022540336449030645102092784155944915663729365765258964577067579639260980190215061727581111294907124355398842185350171012019073019063446086056856408364200542814462294721724869002195654591667253331710737165207777990334202480593519945411444323598172579104717552208726279242352646400699358067312772381208417660753304694218397263848223685871441402730673703049761108016136801362910816837523105340556123159818640355818007875592095074748256464079338013953535252157720478023269541322259456972582848438770010800919437692788647638516593943698461800275682162668337646107003251844896318625886810420396122830960307517994975047521620672511342886496892062144789932438150099571416112303835390650510807938165149297288368530585580833769423053769316167504198432301304003605439696837234928227884686686041049116032752624110574839310690057009812672330338891132839018634554234676582515522231264794930578586465385576824458079758629891661405316547988946412946589692377321398646367306932721857963943962806116172636114025977094246204567196398224798565945378398638877365957827977560160606448187389803373020288339636703792523108640155244670063101542859529398369833764677362311380642553642120639913409770108101455791194617497866810076830292234874716941413336675624037873404325354930487852946252663383117018929689444860249294037658799633635031001562361068458038500588961197060238868266364780708893202255180256071713000792075200005779355549755218048231907528097645237562676043442027863989635947678707926934231787900408043201967858889267778331558385101183115058967356321174496363995121346405181040903151487955160512682952280088276735620138964636320989741348541404370929473701659026912254455520308346670959393220560631863966743515600109470341715486595753101747158600143339557978650983793536367877279408874882819798545196451152361075250597284533215257652620589980922819102093456960616642472850609389607758024462539660583872815800588067129835350122490311481302670653172120065087915758045444756825783001934742378631939809910353670208707793145799609252890952787949980616549011344611584682086103957992459097090011878123573663427533237266081660682655619373087720293844926741486984096955845582797524034247672234584514713342228913184285143893918701821672446777852239788800582641174800480814480195485901331774151119171101082859943784767063683314389667675981172284672978045876174131986991928109138826418585172491247699697196743453228872892766670076013959803737330552981894749687254474517631201477872066179528115563986507979680371188285859753981793418727762967846793492955289056402904897668766122972463694519014806661015426802974229959848118335293954480964638073240337261940315295038630133133441520439892758091497325999135512823251283259849186572223256731003909586339189300063413339760992029290921428482090002251413290845408063346848379966259461714130419316928207837359713834935603279685295450789114810941821659305127277209939483484632664982529766089006380406947988675438877614006448356613500952498814083955454443947915098806639037345982208724238683670871741302665313359355478167205608987875106568337291642040199336618893519556094686840487196637043898633828025379608336036920574973803135148261431346082327999783600382114536732548908722485530683833613456957620509830859891481624712752657479920235120048536282478119898779029142296069647672341517904778722644864104494776918490534316556503919587730802488960396806670918406221959572126629572714412732264733465736989216010522524985618852646180806825919955358130627844488834055300397355362342214230165784247119007621821836574793109267096095434807264345128414486241028370583331586078795459179838674502155851593964863482268623379862276588087682230462968222089606916953325778073619153231783584114655507771164856684761552466731239275345675291729324975188016266382564474548375595835405719448335758186049787203400247465272608095535536147356211211980424015153542647869830212677035065510752541770762445468789268609164598251716980896440410244135495144399868481257713875425867228539183346520630252937813067219568579559283448360760782156870474850725349990800472182557469490887071515552547253157349533239328110728644719595112346803716625027672276980336183410170119991213986474151853521054667372330261949009029931376270692135753916699342082765679658527600271385899103130262459501767295745617645182503652323511519826833713626398652103277923984515207869989503897076704814342451766176630328288252749268528764562235047708925238428794855087013814992488521985369194794461694823172757531159039836761015755277117724180498128112675727591820956797124637533751668774344618258182704422320702158300920670543097645583387318202582137477420528106352955490681670390568775358960492742475191622849002991575920154364937028752000852254161248302314240380731750645037706525643464378397528929627522862162040352575269862206175658604212677046194654856248587443826446057459866908544532934606080418884532264420820559780094984572022212662861287328439899713879469137971941480566327498358911635791949434361719742909191352079806599587310925097976889347026842310534408332977772162975991369668367440424727641714776789505247089228749258510213525248126293437816009255921416925900385677409874362124050119840002516128205431244976855860618051025487395591819675933724071674899617606212232339668553290222865865865655507738189607814334035120653576173148945480820403553672238676305368695820670188556083951891932448469967093262563392012842339657280047818151086794543750363017216698884098995844110070146097169022353839807501144330478110665939076177125138765042083087809001183238108483383896142226662280178414855513527340154216715092294386436881863541737628502956485767266587905161473230422401880697105521543468967099595531524464250194021071958317362131415815502855742233710391469890570727772206919120119210020722013721152447570606178053342438335033585346852656336551494579611109184446177335844892973495928907052866492272567184835527694602334762334056505970940895570057029441484577379231069430080566716374447150807195911121565066632719844255146652447821672010377468454545992509909868116770329239309250596104640522951930344098250556701238782024244307605028470728023927088082725559277056154603252515665650164641700220261364654206774740876439860125501705180843515357440418483100417049945123049071358294856120886460855207719798262194701216048374673911175533070075491393638887606075136517527949153088617312775270964552564317388443451735532833488652238436152217913450940219836869570716042758317056834077946837586904073293808655783992321433807122628758972152748065045301299026663615680652741164206002290212120033563990950702718656705953036569953155398812857252863625740615234559309444136844259752977301635308213691245227616868352954123918620912935303963942671603235803857828653668683878344761192845228637233291281680617080802828548796532596872958325997279639726272375769834345084283934220167050536822796642401224221122567650425202948236342401322035237146479907715049435948743430809244384068499334656638439674424257419566112982190650669999587384827121006522082084869734051764940403858447463872141076869887822285797236283981441744364220685682129160827400449239198496971450981258432352132617622217978765109292376444522813928799458961903838275656771544391861875706938829173142530033168481685098017090075293355757923488270573455851976848044802677268986964066855614891349321901961120121181696078831571935527387059222641554183131488253061957412596144476689783052058519288109110709316010201557276616992937787677627947959945152458532576964578062489488152708552520159442422179617290468427062176712565254050957279216848339767316499783893968410482247343309922194649940725956435669222133935035905710237824244572589035496615836771937831681650385405841221888711742004539699042827313974347114396619153072493679337765062342956286428535916337588781253560700708111682577612941971030816793403064677735362493518141956102028577542092655685846876652607577251423600102057345555534654792078083909772844030702708372604537832777737428420389410112360323340186204035356540154488716589118982761699285423295462066137250380422582424843028509821117507057676995899530352074773780285331743828533740880492986286906787388568020971959178669166050836935924760100587260238665928576965944378045234733033620695618242912864767295016311525460870099592903511340883680972411546111857234454892183908148397258809311997133816721838802697518343284467993521860621149012131767804668593201647547833412967002219466971573504811151279777806312093971148542622857283301487527529849055857260932732632167452966523076202359992376267343976447568326019599157933380834253628245120866628524911332139596725358375327739140025906301470808998746589472258767502108887405426481137666396491938642914244881894650039294734900902331976172707992147521614085768494827769039402797782357353120151626463144402970827271419684294880099863625705945457526813678881412338704856484108695396411572574819516106601586897025268314082382777572409737726682960419100354062391613550154397231278017855974024425796385357068983915381705743304101198921120115925821356218513949658599748589494821212292818279051654963217925164621925965628278862599745982994618751034970002694046230275434462278506263974568207830319109845016827192058418036272550572678548885062641749664598960480122252359836939064874031380297013497176735611212838285020831008426666566967195649538932375637578649420833166700786881726679362965537906674221790398755179084431740870866365620129392890775691642801918613041224039564749408112372937362770822651414411678530063500045092777643847948351695062667843308439472866855627624429060012336907263062868434505498304044191524075767446365282891161272965487195723338310122055314370286704279093979072325419804576729049868148890573776595575245335804419613090165564683700165323021998856674161726123564804275152270849110752480304064881122121224959625771811292384050233731160830477306020559249064693904272667782820044490887109256587379764959995863267443427592552216616229151247744522075415355813403469048141520369399644338349259696069936506990558818544693332135179425095324560564930700647175545553019375310546125742919069480578865264330688376697571145873715161020075446831923605910017445424023938700790362460527512837188770509413252614356545698231107279417644592774510908297516662854983496126832994263551358934633261138190946028057857479766864444846523267770917820714166006843868035502912331672290892211600730962627001615117393594583669892123293690010109290895469784536872575404445458433678178275742277203251447205882148184584258607910769283675354261109374519294025961638896659433887645407714433507901134989840546672825765061839772955288896156271997290964916330350497079897929564111943132723946082314823219110876270129932655437548243340513606183436150101268324528829604722989284605616153024733322539632629692052509547008938199673709572109943352470086458810838816573222434100744115051408915731345197318596896589814428418609574725324933652277764610210865536300812955003127252147157298145214447284088649516644948961212480342812692483495283469974697753941927702861433637443025217979403321452015850704667679950981580575819670396060653748407941219972882897459908379748091667333631568841767588498393417424051420301885181007255792409404388859280813507390445210005636727425354401253168390232955292142554981932586341608823923629629617018201421011050644400474692766773693675220175180937071022026198463244929790208596846347576044796266435986535389895374611897370016233390891555854142004082506429344746229341450414079590283574558309149914176817639886626366508420700045236519554486605338387173863246640652169934888304099054168872404271503248567471481481111334603489005842190566828025299272792945713544497622628676914664461981257145593234059853304451233426541188333670348465414471060356861862320096728364781700846888853477196064286020536821831164812627821697200488269465210397337902327495578946334872952489364126643765197270758432573883485629254176084524744298569324572328318828905805262800130171024618010906175409656230821033047692604999834629982884342364843424631386838940600686998859053166070568379326380061582107998988826381345293116094209070044704624928710679052862976524227339548391786102888113665116455977556985492938139247021876932473358345180511795405198686720003626135894070834777228993828508459072971931262455551663792860115849017470263233291996417881834443393133196136417743422886485664937547416677257904902978881549394351096743882540576938163962313050514504544254945721233795354805264469336217832150878913093822906827373258734225839032258022633321395441540995157890394252498469122014389198629122547108781784219919230277212407071049058891985742635181889084643915836876440013982361546646733272772872853612466228948943230720578553542795380830709785544326638097489955906400335056605139412281733595550681754087108579922029127856947518773177838349268405291781881895625241003013601891345966328660944856932944387085992572171114466623930645256276481742501899217395024710578242655880347333336808519871312042694931402060460246271853926021478901351907706738456640625151944394664767565817948462131843387634070994489088555902575554315707139970454444578778965838385407504064654603350433731267917295465174971576498334982376393028165527777065623679117433541917447546816631680750496253536959496842351892606223562359936188571413421070387720166829963219469485665728975950875020581180497376396453736504696782429567215998126166306640303794221245534285491034065598353242442965080477859201664842489295835512891901426797026705010869052427208369893804164907844746766620904951466032181302579828943021978616735451708125320401873614453290966788367929903229031610151600317807882754723413325653956813375484248441900093404809569000395851819587245818360433474621781743528337460381295261874299831435761716186709047283934121728126083981868739086996691410707150885676486595976641116823652130608251866761952990190441434472338317068529894597099246795976662337220503147071035624021122976289138646254419964466521773233416588794105367077185453331057689479946390964591121533120498001737257298767197535369272090072170694539436608865741819895381090514080421116377755376244884346986716198432403198935260965721862126846902169666279398241624029336145913987587720115865572160402623141569883913626904118034772372331462297291925709255690014722325010956473415141478725057831873155499181877719928722840766300895213136805647395976585673857880042047589715720064046356120484021914130197860625921205189576314271502654353713181971983786911121427406485160996628589223440395551215315611609689945174885613994890805468288932092468798893606140596542885198269874520539551242678068926161805445286164695304823171772873981485715766540930968657962312701415237871620012026053764591838338517286441074850302592611998595158117535279372176263594893849636788757635225673457563728863027300889577892070725555956686586748343162715819660552729456037879719681382418594385947109162808715086472088464921816495748745975754453999481725904173046218363577923619128067724537828586756177076297290929235363581663654451177559679804403624383182429244000740674929660641745237148501332919780704453570756884909234415126681108114487188899081792357744253908203982748729226979927222831658777467955839637030804390709003628250289252625865832953661288997517702909465278336485768387243602776663341627910766738973219141571735491181809805008230950149697923882805319260068235891613194340506003034000382959452061090607988884173363216122410480426594743521106536897835877065148202997033253711123004486077294298050837556127308918926274700626907015442035066027267367804038124972698323537363641046162651691699310265028926672808785832624079017198344516374056444551812853556594553404261528954692104092318258436053705420053748541247912431699314043732253785272470978049761644660069476816630572444346139945256765650319291076262445097397256347530551978223091970330808960740666917982001201584007259441247275134255643299846731648629250204569782918327083946180681496607148606119480887716098096585948743436666717684915962722254855915922073616081717502976279320989893622035488725647953541069078074679472774680483800018678850600218967229837276478744492776792752043016467345286732852965071667965896093131267964518179920763489948059585520538796667820619290993710070701683441953549896241095326906452890950142172540011630500829472264615777373202509488903459963726215715114857204184425167032659553353851090478250879105957683610095932494799407441914312100522594770771777649876305990664900246809129333924277058418898875422260496283366471794665097281559764132247692675122678788164972281376554869991934418963846620019905679364425423272064847247073731424439862145879665081977999414276487717697154612138988512913351335221560954248820033267269039327942347584228936848197164711308240641062306945774241127379104594784653577382500230136367990509610905633026960772218394518828834640518495146826547863874784971694586108683342124848463694555154674620773249631990913912781218230798178650061787798160137007318643228709835389605158605590340539440209707051438554667822265182950411365397000138190706255321686694927823667492157094697092572349831311962433475070936392842571580814800393099923487318851825403382172388588927279048024982037799031130028031781372645106804820764430644106061601875659809955849846346543784790118150947240693961268618636764868799600165995403441547940266422687105491612172275558589844345840792725488605855567237604657733206444394686515345941737082793114404379437190854487688874530137315165186270545623851682857260711711486975737219704728155522913395795318731331524792384491458086300251133458922982662393264784366062916477879666449745345279477036264347130344488181166820124517830989679054810437412746210105086548921406789609792313531033975527265929233267444520781610781424377575652151433853075604613642338459678891205839465244278464044083826447889362274208473272048597162760223841880059975345366149078288411440346878475076218594244254972400089867811872067682175191157509927009884624673093899695420072336127911883184076917171418671757666155492414612158621906069929644595932578878590938582679069517089918501559242110036815652880237516518734015910888004798004347790684581481093288959237967301059126414043693340083206946352592608579935014847502750211099232570913950669629402124543411503474115056387953981933953450670226214371522000805558386186325984391054926629060940402994863087410161487964488454042478137473185071167002739104506179796349576365348134365529792019995530096966138883523566253681242814207397398233713969700825195189381487029962882436759665879266634110764404382233183610075984954506372909783023389751619273927798371519286828582739434846037722865700922013387370349067891134696304752501863794398087767012511515210896055684748151750871580414997813769586435804789123939299531713389217968759582417971538084205811394591967562354553442558348596361477002336791206118894557482275247230392234568652820012767450037083485011726543481764290760503628899533067591544201103775106857231845747504427036706093694695116316885793428307482742060720962892690849481000881834697644760826709636684449916005402634921355685996097409947819036342004444211955969589215867834393330021332683313805341835927787544263970198255742942054094984057591320200377685073830866786416094746470006326514318690986025803564682050607094034674533690751666280035081811926786160672431341592794858807720783302747762570663759185434284656455180783688110091229207707795845306915413714332682178711117542054043023858331481381231323217384583868241865189639930969045133070398637120789675074885454572535221567514266205025247214565502148442428622142431771954490504875018115333353295254771489262840465776598038600228050876128488874927904805404862646679690039133632441020802433707187976592076350605450174109601605550189251517717509470171061384719063584420212973285082561664757794423366035626997732749569572838370764023870221398315451559064928878059664663422142755778606224270020615948469507706108590375176198661809450284376462576338944860459510060071177499677513775599690604596829992255107754064544384990789147388091791116677502991162563414792899204472968220089267060993019540343655664542294407392023707469708301104198945630186211380398564768685944833073632466309372026129287225856854115328367313423394397311355701278409800444569275468876047064800605638687406017244212920841918809770243547631000393199618265761451907704382661041236776480961791955610170851315586658939321529047945392393704771086843486627356111654883914201457509155176412414231654919272967366163918712619104721332459715345410255565607149026286684365378680143095719801780761377020280041314433590683377391365473401039505081634127829906806678060238381812631591655429392953426619335257708210283661576380696670208853678513705215843254949218524464943967914186810822369266680212167879771611724036116292296133567360808963669644509013557775745773830397841083410665700574403664301983205846992600100259056775704578541127713889417494356929876584455142267602565799010084622070972191468889446111632909048599413108537730045920619420392292754630722525134674056206372906815875450472996502025151515206008726018210625458022332844575395258369233467107097506419410026697397084318902727248417945710285374179253311120268057119509454290939784085889344664623726430773035983572131547536190811171213219367246293622628686121186931734478247938737596028852042226695605632900467586612237243478156633761226623122880320728555825490030798761617139059665584786837669683841906375373576394274233021996310004443832124205230028373530754915050143454224533416784377536652425967481579230261131940999256433443617176541642130489084730388044879097389080266169240655501887538921702696884363524221235220288755608014395882782440734888684543221482371687793371510917612965465818184775313760065996209453870572729153312160388868895708058931578188175233944724494366529262463585504199526514440843123301171721160824597827346669798746857639305567315537485075131915010985316430441729847233592150148189646417943589970266836613996427849612651953986883744871635545594431678799194698535913902879275732427255893177803425592264332736112244281222536746965257910518778514100954114400151344813142639296055790124023362951942487359996705163920215846287468523787363159214621998951907606650008913610142407619613451633549590006752931530346327741468973659193785553526810133929890500490959859377766592834404664461722269073702403787046767286263579752277832888597162949790862513594787170768311982666930592289753533523969889181752575209133532090098018106343745177786109429645389544385010356798299767149273971667034422541058744348973024427883897268971900447567161584138378320337484955198948022785006322099174072318890842279041106356498541108222216809078544480696025273719058940737361700639562134865344210268210421083102145880748525213117529813848841531302457580591621357616184466840203360266520971923777177377273574347430169563674175113360622716226879354530772806790641514071905885575641372906604813649843981491752089094571441349282012048028866964320144380100691301255056539794751221541577561235115320577626002788894023199959880771369519958432394497313939680045413404499302115440101153581902022192081994166284985321385792074048070855198317698649067665415153555069073233636849009170849016979823005677809140411074966182960598876213806862219262625319692635211109137479506467076175211142821397978153903995796928392884569785980598393800947733425939283133309166467806354713523352491490662305542378652431810810157049938731832811243006855066007454915967819329314764835265901717755435790589264246821200827641988906235241647187845975309516671967331132973697648290863730733998298498290509720595558883602649522450561001593085861284281509238257752506568472654248252060456880673728827048931294963516324085491200589399754500413893538308881491729964303209246827346759594973054164889557096465412004656310249293325462101976793873147930053438288065308775468486578378975610410411150185192725433166996376360686285141260456475651785209927790754700379421539498293043484188345503996959641962957772484475022763943143012318469484949731031195117729751344332865045393485934464065646177984223800316910624587633940747779966839485159849090638668911339516680326348298803836580400802744408680087238458298329017144628017286007674795617792163036149297250605932908108098231691501794223906657718155461964695549954509083676037801850453137646418446289577019553350842390255393472342173357421197980631125721827516442045418803739442008125946483864906502570286070368360348267288843456280531797843172763009045635037551598592584540991001820174678437120637597482514640829659108410317684708398089254126848254939146496507062497132226936152654784171423356873225378396846273836536785143093525678166749029797108092486070342606772161071882995462979883690229400545639795904812748300712094263999939295668871685388146937190399253049038425092482423937657853711531451045158974481479332146114800098903936912444139252603072337253324170573646476866163981498037519861053877611176159155766284724400903139706080464857101800211706053411422115186073024980714333520404173239064532190102169251172072917818680897174035473355165907161670293267744046656849144781033772197000504277125077156474404023600969272849258059223162119277299021436686822615690765345901911776910015406899572998354370737269917173015086872929914180824834187698453580350786028374553207121761128167459015737282091531931953591167104351529166338325618207020818560728878043101195940065314229735540581557637846904188592240948929285900160529785249318425702074227032915593065805377553172030617629371367918113827492029378463102903102248772707989151922501583551668873389059404454824124397873866029469102189873133923117067363814472126991243673964436843590960766825881604608793031548236082690415098171214277698200337910438910175996135849936074489582716093196240048421728244254370314087466983122868179606290633544827329340935945890138235916053350822686742509562018840495964130768965044078323851194314898853362746843453102208834968822325270719983967930159267474141514553321379411262075006781226135150916242462453957903318067582676831478099956270750940025468867309351423003979810445003247715245536550738823697595788723644200254850791399716476696073729638573746939932579296916714479749049304016686458159818726114115265319410379361747849647645255753237722769675502973121852384156290038837983290620778381228848889084518361917163722501794000144825479896272381823019743014100827178162486269730925671262927070662853309296693210891595981837913024759159521384509393667525904470289517783462712704517789746377077052811338280520039337422352555437081931949370634235566733104800087636537216928515845532929185338534675287203488632826092233503321270077960318727722817221687424318766360518407253475271639460220440223620682882174525768485219569865348588973313926926589442734057829000485104758164686247050810244754536553282828764462195214154634403014794951791610622565816598946354173551526396550246020284084512843710176035145219184887496481485588921361285069107951247880227541651737253923679401408218775788254580608005048090797126374723188466934446818453980504493348705106089810792612428139862344696018031210781789420394128009036957686561601752159408081614793859035296926500956698940012083509192251526150057639925249023276151629420246680645605811187639825409443002518437868110043706392642714265221148775366934000283673173836654999278894328212864893646010000959215192277668552890821152973811241445678003738239221446747163919517016600801779476685854858009257981599812149303818286524117473732504546601435071824596349756558633565529067115075430850155717529398530324268619576519892402530956290194429116215852697446592767484177036656322372657654556904815280804283874933544488962015157928262628734575346706877142342058209446789088734210630453437574488641750508941139282908991614620340317909255921709987417066022595842734875676607375303077150422350573062242281923888294109809820928869631079654474634094061468083352076587187069332493657343191759569923799432508313349077473608032696351357195756932307274534853301728001789271896588705165448314645701530717514829907781528682596400966665633344883109352966498205463867789633768960637844941243473296056502069776219865236541021249013706321771719211676217045580316567382268268578828814964068136194352638014889436498417930767072901080630693906105584747598005834485686362836754970150764970284795084761366773986258200536766372591022303412856444050862639950160030913052110812978660322805685437948696746020880557429857511521684417794932819584594763309359614421013914319303685532010204864514477737552106681294569954073002725512591395347412790978950418010923343554972295766698514237618352585028162028260645128724826054173755146405729726816946955228609610614813238344196143995533014271549908930962737301446448883431817059655909684195014673006604969826652737620389085105514591203919215740016746815464566932967832798652357065359560718504429070012803426045906323838093054732386851147520155987097065970314051793414740905796977956340010491940428111814261916357648899245824799474343496677466945921961146324377629810050137037090253845623279213452342864812857726571834763543088365556368140487003228681226839513210919056504721540366924228113103738457264163933284282227899224690702597145659676642241287330446647255284609065219097825221903342118315074552889974576026886061497824811768072592169028324338677782850052218697130246074021546061605483439800958132379612734840855411532542665467309232723143856693082675068537934014169403977824344633694049127186750900196571537082918488954545426133713186072780872450080313763645374973574686969316607475250620192161603947765235905603526000048360172427337200617222321252921085737560787444565217274527298065635803168797499139529091423207028121027535715661248137484758764659450538167932313377046221143057114696459739718143899516962874909151580400317370727146624293643971430001217299016086268661264385686665290006175175861933451527164483835370192206297720873646040472516616101537299833923935128412865185091638552942383695149879647981925848736825711860573020633579380514659493575233301246896978825990613219450582180897252516729736383156275688215211005751286026134860270899376024700063739675282717974168260390017675178824557486109252450060963688923193050771756416375829282455546958502629952380074924433951425302381161613731334249278307111419656504402431209208030984203832460269375329570128842568763999565127978616180440901122659585469720243240888568238699373111032098672598210959822927592626561491193467690267155514624361719080049902542373815912001680089899403093324463780740952321321486148667276672217221078685444612502424126896636762411787991859889619692794494945526285847237883251233922796646931157578830294131485000746030956492162408562713153616217407604962678356842764305093039193150400887894849769059802278522579632116291737225022644674944281248777754945538538748103363705715642130291088676274428855914808208434828583931289365885216517971244168768850267752788424357328342850007261218431201952915727067742896119322740352530140134141081847096870637549826689082997427098993492430005340302218981791453863535100167868859732780360871555428281656057659802618698669963567684865731672464272792221769365251444897002265793644647367366127053036167403824200947284756405258375430016166245634470322200394942521503831208055687728476224779572439050821022627446948228983687820434294949811578289793635919301213766704520977133255320385123789588952178369770294123975198678772870421936153051543131040039037484895360597962213115663796217148646676059885934738100255072776095941274921396195584313417604036488142101293372874172280185628353098282033499524898672600950729470919225002123276536031635130411238140688226039709176498001685769902449314917830155818186404105330584088966165907604786072990578531733770685607616160776051398350578075772082433820458969545539243373676877201141857588082742452692814393796998238154109351673496435280278399110498082612259415834068943248239807044672087678299616338007395775453682252384630157586562833163346965293302442456511145986094114494173354064198876571982585285953214659951688212735059602132236095755262627155328113591782257436728644338802708720438106354291112995211916039473097678340231329780540750146436106299691972303686623011996911115206791132016955024985318559294729814411165715207984247284285999494034479957230125982179741858689978974528495333828041596655706852696749302863036452082614091562262171283831348862071274011829142938335790821250632033040781922580293695212747445738747707494995250969747254057239165226698257394037522153493961146378151476305701504119730978273387367493473914170043611877796025467511940821248076878078319923326785496882532737616578128234274190871166374720469024724744385792234446723742954231150975910831012494584192939465334471603310760020332964008672989638894310847580855295236065263575208997067259755592887825227344576727203625303798124690469512469734175371700923752360233878781322434109239105457694760972163448596448505493754459119238900245975701469379535876313526495861049890916322294427623964407903166024103048098438417790997193687978329899442477140113600266294898383917236600317793900914129164173779411887021970150801667180699473715478549817440031935783144666432651462439773347869623215856854501728082731564014596727513530224624765739045470730990990128754044528740253847619779402005178135927461874767732374191300532168149513889997513252641671026028391953603700467522420085023710333562286278648839628094907907757198641142273744703678016369176222147834132638347371110591070531975159247637022996808790848769996553970394833009198423342158647954603309637781070189878002975226058908466374593586473897772318908642418520266400806030328914917226079330289545265251647713477412955530045926352012123947966387434369239854470420521987384560613571843492630205573135067722648948333564054759394541579408534464788862567692905123330827856237108944538221744842352434306424613555696664442397217128192851375761922854695104295434008056538074871310260064475025114888136425661522376792369466611829746417749308876826527234200991454056327070905150182464703772664545677213569333316551014612072083406626102173296990811705303071018710044776450542198767520491354311122895429890989541169479201955010077002428276767797115455068618701898347011444526921534639016390716322158081462356023174851729426926148367531441543218045049309383591094988711284660070992677385686641716263348583657841247302587939009742771244086033538129215997060399015602018008304278990763026761234066714219766233990592193000019823064226727373115642253919056662531255419113836064571809227806522687199212025330885475603283304659249583013666417229932136220836487058349619726889284242714856744443382895370981146950907305914224483401674593680850073721466332815774227062750593098336028094880861800890129228002820314194994273092705699453326332617900433598390184659086473465866087426651451237117535027193641454708565507062240115481552093386791775748401529935392148825563963652634469394724680359734248281695948801224108993399952704865307041959587934285254115081019799680258875034668287689058178930940018144413336417192265899886941726409924918799297184523910373338352784214169697178974559006786241605057819701335587500864730864045716366371568377539113676806684796563772510319526005680841123311534207897380563025658839612687366506901960198863945407287764359446328193374973519997749200384001351800922179028506239710355345726350244379564980266091372594254206066539839359077563145047841049944040806269117921128770990590561982024198775914599340955790667631855913638755514821877094522420285433495379538678531916425036364786062793931409643994321995597606837871835134483629357385933356534108064510419142414468607077409519200067890926558441320279295120724101118028891921083418184903612813282897934023427810572323884173815407324842460454100273212825231682904521478113390967581879497040431983263249944760851585485842588676244394008760922606141324965879543706455174509092581523450752243549812807458993846295034872866704048968731614093693148380048117693919857406456108330893924490338802771219344787297127678939414314802884377672761626539359935133017525593789461645697616722506406156856632224949151236344084375644172564479671815003538944352325299728957745225629308996579377797449762147262806718910856383702598980814688582497668173302358868097016864615335271712934432431061884060493020656022176117669895754434959945727809502238112627019988175555134754263879469363077866595491029597433671431097944042864482239649026982746212854002917620040873137779878424544439515281342933263531139686274910801846386067828123237350415408633288345796709804859499039337972911715109256516956734572435511419773389677174033475631131597766921328485821814704845742860275275176575783165556375189518494028281738201254073989884844014044371019039657408521366617846070157972198542702483540064500203630938660369465809773609608962207626923536428355337413393887375311236139059077342060765622199673749357250203052079162270665101632490600027336052539711001707244241018181689726210202500415156419346346727874046640882958828338808988077765457806565471020246980869237474661704506467538274243358613549018321706351988495731438254012529482248464413470040485584625176169904363475834996514315025525845711958853178971292309757646719382256824903539985687485117955660901011604844482238438009028306293978525923925738009257405092108072212041982316077861948881957221051637270787327975986495929016832366207109892566526589722637948428504075511942349273022150291281448193017974693889608814716087324618737298896634989155722467617597350787891015406772576441684583861066765187870905311095441543731273080096581008012862301799265574289393952467918470788295344406607628994314399630461260992636647405508423843879697774316994050538198343606066136652287952591399213571293730400716709011878575319078660915551292317745915803442749321113031160964817145795427386004874004697723822120205785295775194703429008040275787501563505009861206976512579170936108457179961969656197458670038054796369923123313292363367129242860839461587969396222346870309397367104484241156175519302843413022241137169605963009109073889719210622890992885598356930583126227357585723199225742531171216789547398758092307976768052998471717291750702927053872821367301983149416205623131189267121279679561621947560117342771434707758478517850238747633745816112506313771967031389121977615913192626909036694710547008741135585173175112035655986235199109524838725351485170609443578199094454202275197090768601997416536999809666353134896256649457497654153110180187458744534431137067158800724043874278079782772473028203926907139484651540868319312766979650339231210326470736245404562429585213493694388447557582426104570029313781154060906049808660296896909904595576303585402377817566069370415707789531124648032096169551525726362160051514775476593925473589022033287241367599709917213198409764536515189946445756439124813833503995909559729097185509758790847112284494063757221749323382090431817191059498010943836631314805311293911266413718354747723727311475998437121096662670849000275797917976806028070080351695959682914784339705075915939006590040233715244884243329657402520631961306455999575987156615540569989746653219204056554745054820633969280630505549404493179490891560939828474963236847112163262211496886775306065341930700942590620186657827420467714438960663691841223262593690776925029158246726595642517141454708495015597568107338399458524922918869052704158459156963164776516739607030525219585142693552465860513118769323228059004876404203572872303799872455163986225890162267930861583003007932447468092484062018193450224960395621990156505140641535046583897540949212302621668110017862816254753238285477979894903055363153209823842583497998341967733809971688772238996220421836674487489657734421004172593253067625639896084423122208687647283879827057369588890529338492141976418982549503907631096793345120138485466076425975082153243258621926962015389949936269754173621098969657657354650914098718825137899495675475579711506556213623620685724629719554367235081084822841145173701650343633542352460123445169811719456757285410319992953645922205656908828027453186129431644141789046099938927582441484587171379806864858328831268138450739692627000861636172023742630820027220827893380339545356221423572214207984032406896611557116506734527379296876815842779953751707887341017866721975984465135944844523818882729788526671218090844929693119197041009318635490365690611611352589453582819767677468041486964383942613651290951749266489313514369375674411738514958719719736166991974904298991203440392735682235306207405397913010494504661862610751753781079207950824371004338870478182739978038266273922098672761653341285907842479223114244207417460346144471457326731883816813813311448738275637576149951837732727002052268365434879298628833347253837020846454669867608443606924114613034979239555673433227001019451280537003990272197815255076213151092191248464037935046911227456488273973293466628042554797330644716590349122284116833299392655795500754310552868165247350046678169267141567739693357204368939869572298670219925724572757732548222142186209109658873953097506718952936461192228499113434306302051237402202804856563051112858823300473952992922743932010422578890546442628818422586524530989874636940562309149631316825705312907577885098475261224887168983840506087908299826429453885577537719656452000618880831190920516517943053440300005568216088358134550022415759303884808545955953586640432689116522855332322110563558076489268010886784986640552097692987884889392431127426076545045140344732564989799321959662779412478316552822797703300745971894311253060595369366996029454032570045885353602271591869697676518277311185749296041667786104264536581701735279187786345476580753564812857258534159655341834020685142265255763528095379844998278587306387319162647211921377970186842505783726958958744842590617327249246576102841336413026983829319761813197561209211325314810474577671522619243806640739437497589179906390175488005258771485123121096321201772197001426242503875682935867700787385582265007816971638667084685563654323914612210963310555163031213355024786521135272423679982624585245161339598621990862788746738338880223387507808813033658428363931610987045946665159084538915968120211386001677673377686114493013088999538425059949861935280990227390783161339692286892584256629846224673338177707814520885033382506446507399664799555807049913112972687090609520096125306856616461208792494053452056595454692368549849417258104099514923510600584230324208114503632132561426401803505946282864998528607011419732293603611927144441145994281251633234687529567112079743565054249942672407269705325992338577444504607240081824109996255246989486872369555952374064974588485021320607227474136510410993582513764407353230640823855986672209404839382956438554223755021130769353896510445296571791068876975191192863139524948419739467291536239943456913984861442497108639670235149344724922633061479614711807136031926497436153747057110581722511737520832955232179480190872444380234025628312752788195625373707253244674643812059852576558793513892278758689118465528134406936276489452997526219153739214664207767249120476846123657793578415963300871645164061527735559266856094231938529949251097029662230141110757872435347002412707961737630974626163987151958249326067797171778440776094057690673799604150351885741296299769872685179352862428334686388693566847420437844518931591273219849090110959386128027703256013155499454359258450477172067236363083231271223183503020103536547649202178770167471166962379616736720005855981785236327491871128183447926326368873545203796259695215067192868727318383378423070821745939815551157479733797420025474716394527873695997891969627345392275459441330537451510027790194706841049649125884853926956999816523589869475795013527954866334733472694390998096598057960463724445950176745439223547836204545894281024278508130183855541393210747909870366698178869235444697643471222977753268155310926319460774694375376626808411804350650624298189561586479070058498287839460485413309386007116825677926004422876009195210926204033274967201827836666717195505787892149533198916760760212015012512368534254574593893789788000481217236198861771689816453900875551646258226224911592372033370496270587825521728675718355543871703923540937642098606754818469725648574719658525762605368781288612530789202149438064035920497747727567176446174960225816403922378738250320727151198138771290145600517744100980112973659479258746495283503683901883518145776987993099187322731668661989749562654817985989438877316243898635153877993650232168594599355289199079671799011291179151448820931104990164132424472245157861943867582695933289540313864566469676692438474919067946434785129559224910200028354313860042740919798651012708526420439353755544091214813870456515667108078763026395536262428689842920267300474866368027781436629904989853457716085946145270485447479738628556510203413229926494182043841588250375063655275838542675708074773303237362420353576719002191210261552522358121232276921947504206676993369132319896214724535031197385123487650105897069252079139223970322941173844937114035640616553205438128923090045129271207277818799723910634363964282930093225990026496493018819073796696624342782201557661943236937024419667213192037062429792103788595445530455430143810109791429176382875313936059312786111386083046325789425589033202696722384837977619983384693136644375905980861937657276376627952219333893976826347494272720855879934772270010704534458394071405571539904613546059935143101366646901557229728142399844193880840740435573750272134682944724048262291259175748905382644422715210748606982750687514233398270396343066445891725955389876257298318546246733756940084478868806632088118715119838046074510100736514547114095851235708840641005664745770177316118470437610019691326183642724981480459269596144367506702244616161498443979499321603082476621295135500685432461290588987273816567334566622309679910655226334921726378503519958403908849127430068867055800168701879225015755546597109892355051369589456087618738659996629529555719925469178769025605397799797755137180767994123680848267696653928773150863077747997075709118684239488623153170013744174357122448478608189040326354548188901019562237945836594606058848932150551779197961832311459187125782798735663810694371903907908335723732468351624308891988854829450568490651493684279326531069326368747514363785417092215610175876267648840070655934043744625590525169085225217463468595346746365338891709765000741559962902306093103476380844982703264073393891886801005663673380626575962530235873649169437344591623587297595807630522905002893704535872825298084372598453256235599123073700576070144526976928857988575874738554871350021089136827641850665840409051992986319527878019240419588893274546922427358523348428007522489316828003093362421843979498389299381339900106407681206168140964053395392592183337468156037066792520539294535998199237052424927009726310958358281856115536680017025156765167958484187557020993009278758110379729360191920188030735172829802623347315252247049625488979905526186135710922519962702521784106684959282334205822247178887294609240797154335758855258074584322414682893408203872623536568923958354554088930869094973864994675399122662183395519491395306925574780821129946595342721512255217651231558444424587755953857658306791537672266771360891571952825909299629553463817951927536945455583866492694433123618129778932305721139421555229154057812168272449395432197608991584510506989356594002826485546235700249507289947248741157416726550842693632273853898335619706030793912980256895034763427168992935400982728041110951424793413393189467867868846363177817912726544856343911202668444118921089422957118151809144524436718379909935879914843040608119535057586555407352516191499837605236764199872992404945146221061904784699229217152758927618264183290277938937872182073944729465756167108538285518168908217638347828665867668330567593841040878992045839967955927132436941068691890617890350371533541139789083804913329619481375872173546766249806271846763152748812042840441652711457526307834904767803661261114111882736468307334450821655724745628950693030753981699065240202643473540402219779352152396418797481864584301410069013070545667843732775779313140563652224769359152540039047006760113415764680467013652033787506315301016663017923701013561659700690734398728899443974051381327572334508957515433187681301529954877399679387015758188202383980273084026493978667603229010347351406642619957257892608333554757436520290726373695338926528045587762001656404741951759682217558404728959637109402361929909313634564208201579654087487777250124330225731417805428531139258154147140479965096009851498620484939044877385041764395963472998601829959170946355327447896956636821683584151043116922808694948343024457109606203132475765199963116576398589791909303276920516881887092868429534235421695329035986056442843994818330515730244395706506898107447265783123402525606480000066779376296882191068730334335854819083877717401411848001584310950209745252537144147422500652065221377904978497289778914501717515991251278852486010102452068392574476413685683555645600224584889979246789776171198690706185307606475231635986797827875778154356065778991124384697896531979786199579065330152790261253288417366306150666640324323020792300854315913420791226251138605236131520384724349554443832960128311063850402261299178458854655264137401582987508813179264351193544013464991261513114215831674378013537846959461309947649360404003777660335492884385716317287692979690958513247988420641441958119698060199191200467565494956215881737732022146320955994544312664030270166261703712807166763642157510407403605617714633918729009341864110728447662280649334330038294514545295314637618013157039739501851911661317380151109037644049998953858066449309405331344076959157124520086078707651826359466403059035685044867155767212547842864817780572413712483769319437983859199435130018779054875967423126014139629282665336210599712836366677244257787306452569269892360881093816859291425976107441314948092257016814368302411682601253882329399484961503735779835542725613039515117926604082246345451253557695731687115503206386123736980591398255548103587023434321646319589239025746260606140627180997190303981181033713416981852707258967829228074394225092230843313359515551484686544191292417100567829977844579386145127874093254888464507083856507295627176039436496910486851506552301830086470380342650688310211504428687629167288420141498335289994747679366366996609564279375209998977297212865992815339903018562717253680707631759391972825929935538164092038808448553099350135221542919124403695611775137780963811795874739643573856258122271045082892480483025973568942417985826078905752936449170607891197252955464234125547658752820421568587063784581310406812082646236182175376167810113605079496785849310404419957546720059334597503644326011028362985850128229168940104377983946254608707797872165120250151671873456587592591749591223531915650801341873371117146659781901840407254317016220544933178755783538880276743531847621707006216076902747101467480862388613496632472655896592391518237880906766323233481384975856587134544501248342306947988752521845890385032947712833068427303588488489046524582542445077158566010404690261010597746231684018667812131790959264357295772291143231914091935466551366121673582703430349096842258617855417431285899646804597943235517771452526661584085618730386179803949449112933914017241262263865214816108229497396771500547598463931889233303052667134796973123204738246744077526287630227653170513316201673532138720413707862931818626969167406503700684838111680146021092892358691890761661745318939732414742524688536752976404944741222665579595391053459021293325125117568250673848268866350883801120575568269214706687228407115907959418267576479156389067982046686541857931998764020752599708136253685084227948981290105289673679714844690604416257573375738479383096334223463887673577849446370474223091386586611809612205875460090301007358613097314759360541244100074739805628702214111794818876357890974060099917564383517615157551870105132352401901102001810135269880422582733973404378103313482474329878253561798669449395937031164347141041862919299498727181425758988462968186486269894601353006049305761216692701932487509424319371919127223272407642014948744130190031575549230301690388589015382508074221436287691163618086695478711739402531267154084982728717670374766717689621473341616075713762137352918673511941494727197518020945397737537933800990502905235429463122161476946034696776531007835403378435081290745909009510305336628541267830874043570237200814668286039000149390430278702392445460621720735172966658372438964534431486940241798674664538617452438745381396122719162396303625280271268446873315384361292143131695905672631352280108728219895546133569655977467611500316352457965161877338148704116557675813222169408290355603433754940826132548300995370311490372237886903668875290610781529853490227775968548268246725079399450622827612862223185656548069170327942307711308825090672172215874223625225205715607490166094557928224114694243036270101819934768030719160128795144287821501882885897578250192641458594131754808243814328186581897487995624386920519791260110867439377300996538260440869749671146022664965999118824401992906192756607599273645303526711620173980464783747980999194141345418129916573525977467557632146950312966717892998454345974278941501972760518706380446998643799714735281372714609879741819826257192486468802409317221110752345832276614157469795587726936480881884102136299181268242818529502242781428136833817296496329627953377017923126763755006783586215508883624053925345462602141173883849264247031765852496655857311369992774448511869811489481490539551810658448162882076536320235419847699183905266520261903305605725581828388077364990233700740953971634423749765410913854776944912336396544379550627668887098528547071500038080234265099503747471506882879921921333428794014176995669053473201204611392291742183769767172084983854639157275012247585560805900168569644563619250516382543537097765582777573207942322795022369218033728420532400685426749293590757766429297104336411089262986786919281815051936784501465789757673794347121901960382359932257082077050069798771720259549305591811400652982876273981562506961843242746627897945962202280528175954578782725405559125477268058260628579338677850347511241493330201967368016724053261956789234404696696703280292077116599235921522587936037586938627865563199157898339937401810260624890650008769754300416711520804072330758264199470309381608847598264742983730008571152423705742418655540944236153465999288639043986513114847978376051553228004854029413072258677689885884940873888251902970449449327120737046245006328892905319752844898552794318895826602515161995462155959434451089196425508250890650335301756754585072422344938281390850312974908919132138546914649213887474485396469139582983335437121537280320509772020372329848384315692600811564610548649685666121281989414279584107797979761051978858330177061561878197030550242439711389360063444318019938059990426105404094317807848710369860413858390137546254966887372588648770463124116165361278389980343943625497287594928656545443941766397943380027454235843384662421543306531770798168274041406782753954303550391140085021619805546383261622410409443133152799306519601047359515398551993559156431165896603393667541605282828038586436621294965565240573009630058930485493245154033068253248736163877474811118463435166758497061858545805748310872754631780131623399998848977393891282590347173967119465138349486844771097391378553055868850196402051935918131099885901807518695912447671148024721738439714421463981922441547155034329546930462925036711456785257312866897246780528150043932514069283324649866704271550720594768952129372806383738038166456849471662216475702091179031714540967063181811071863383435731684836819991329616777898501378055322460030664085172447316245594106005888322762703192297391296215508506796626046563004845927936100332432267138192688400697210751443198256980889580921980903372169401458900796761517977005834444796334040206856768758021987037921893714087883251840554918452831067240076426851886344657995021641228461912043124798074074890256407413060241601584142240236285244132597683456880788172019742908831887699929801211061891186783782550166615092441283654879345999642303376904115042140412562009217124741527730385434106882328328263882257257286669206287699808239931514307616285029500585496563670348968707035505406142125427651576617690681801134087008229492469617726698362381076199240227090615618566997549293207358080283959512332158155720056203491498953734184812545660957929260505846517165983062723875997285485824989306645403530521121878713024440279304472698605929008916519523196366094104957458670019135095117200336470426007024430555043321963041533683088041388682553510774371990833484832727825257460545985006234548356430587134162625852904594413046523945389970014061528805389645165818412731130779152858643392887897427542789825481684000067756079483320941804274705110940374295898756399794180457054335022680426275826723939190601207738396219841233305670354376659657508287388519557646037747318232783796687288904902936830813186559822365668998350581041141617006337560126015737992700759459965847176645844457726818784726118381730684125969112784652473345608163323064278655009542059175689958410998282545041515295721999953993445359833691054892879059486144408885148929397374576348975476068440525551975410416453293027702947214442963361388082657742801689455616527565975325102127091205169434371459685195934006481977181881010704448593406556753441300067386552158379714029041751062521410809461470538970899798318332911430451996039596742935887460751724192885824096497168804903056079600991897158765560905353067080512117825668403298496306078144120133661657249635147133097738992657169847126967651767666901334558564597887528405919086267569627793879966671529055653324089078802838777959060430459473755763957823765169805747903100860295510076842299061158828669755880931479344660511781823757466809322951459402063955555726514059634832594421072214691720858561939267863198068174682839918639607972948613871418566426650038705056925551743966618874336349996407302451184576057010065097184463890936302500854337549765785205417652857053142710467833736617869076360551109726798226322662551692862779059332267771999515617883680446713744822658798276342535797704007066202602213341146111892500631235829621430555045932589132928676841999961802147409282921547184911823767525847782066791838737510002912694314596185383194056296012779025543010149061831137506467221396620457507391363650052673513325207120548056823797517973811323155975105699575941482081121285078377867926119012422849256281437229849857540618577128965448391350129267569609687208327161872294085431285146839471598388104399273925248086450507707040172784912832792640148359933719721726436086535844096707825001824624534294104680577072944699837517198070042721420918186139498764036919326733274860161864293036788631498575199114212769587612628123167171497682030576834904732521668446023050163852554006100461898914919507610087774907095254712181349375410258587694014415665193258609724254422574304352266711120833018236546968868908043491876622529923304655351994352897909785070750656348259395522575398824816188476141420761010838280163517237872049573945901703346368688337901375050098366234428076244846495006711296813427990874153876235777432631035999199143926409440017725952411615724949448448742634104924791175459420541779383135807361038541650649830657322861759824914029598590400958824293291499875482974774650384945768686210396605468051810991114419664111671490329427407527787331289159609866842430421483298639339346810046669900269460887980619194110682381906811234671104088378394673500313154882709485365390453222309241434567501184253049569095986830651289503004109538899537308404284094554477443125577020027004695034567864590790278423550782147653386194584772057584685222700010892486774529981071408831283144696936872104178987392323382986659586790689630254731736872266807387466385480645483749589974099587172363093493309534458263395846656434296740699396625049402334820413734191148746449311639031276299156598350333482746321102112009855007862060515139016375237620879033870031867544949953470869695659361527734363172514953924259904885361737648042684159093668185072611583488507056736029361445667892123778364205345421177312407037595218048842509619534593281259116794037608187041213528617008291378693712526645181692217105651063271672301661549583406590106427372294388928910351753750604872226299666387821420733061600615887097934087212761065162079536530999303657928272685279523235377308937392078356667125759821139762875796531573870843370236455619587864817097063204656085154880261092529015964268327968960777755886528992896757757823032466439241634696452484549982567856822496258871912893356518932856615175951239777671914167780659993550950958083339172190735876966004023066880549970163199687334711343434369411147813255084365177793638534255370308510220507543032272937536661395042167977997410378516088382470270011511031739941884619415493488129509044579199071137302638433302935434297573778175419034274273765966742902858279909370413277455960499148203319068666089206641333512009982590655651059157999943345980546389205392248944074549594500556659259177111087258124771396383472660999141605801300874776238755212528375161206871147853100326769442477262004643960193195124946501085046098387894873969602926131188511091359858404162378592486604057550108166032153733830460986578615344576575771959930041736647861527069587183861732866232043254783493742293222350971702825901900495965772838876719066851528885347293439088211542684998308948890737012548263171246516514650014185459195408350287082367885246619717100027379557297175235936745343993937338104874805339886293396904382581118233394708187275781850149150876272393743844851725411815552134055750276087404998648942967369812109862336806594886798114705572616323013124056446372705668931874085799030862043475126420864517729947480354741503459649983820493348653305438818716005314614012913475580229384186065099375523147986477942488512500242496152350623863503408355190449264923996560568541658475680882372423755794585061862067009153100752786966971614143532850351320383501225899271158263069925505411232824611046067692940250269721429589366405808875029978661001661656445652456570390197771228205280651894967365038282385372199597437607812887030964847337733473710784493484279700291879223679452884352897816372311186017358770990086987685368810058441590765948387673751365645929736280950076661475367252958642623011286329301282356855325141036830786702095247425273566230357498869576391416455021884690739160332072091980776282804978853656189774679290652611972577314331507142825219911624151955227243552928162166816764694943553897713077911682041703284455417303751502267939837191748973790522991713765631951220503538344452838869007247549347004657290174229142352539851498374016330348202228220973874628930073470648877402364079358031069134438073232518757682425062375318615448770383174753772712427806001623836946505130124542072519964855686047175103650296360187836163637073852845157546780242144475958831569846767407303427816714889319633661645442082438078270064582567124097160985774466662072461074014410992242351798350841389804307076120751478114347628480168686621121719925142274099937143641908750111669050411243077443258898506543281385678033984823195944808041717940002803952673510780045219851928852189352314779841723431846111583330698142931107574625930999794887510833169414699869202876488003286502769418870880116963193124822747795786617368360151140179685142745754795616670507005361233331364217751679514500274119092451551947242648030808359000136782708751573050014127264478328562883143085384268497076569741652457468527367721370007379906699331383555961204118401455960773462020887596935735283534792789808654245391152424891238487606103984600314835229372884456292568000855921553025628793438294915699078026521145133638094352883471193834038241871140355697408987849085154640796713491959010466627559450936874945766502221177993853490275259393574058925460556294447679282847433703822966839812646243993636009624191370723668510835460749339781735264851543129232147322077680082036093175180091887026981423371130126095629695736883046712431788433791570231654700715626035088034380118997544096265920451742004039460506681092665543469120922731755820290843594484522757332298873559536286253698026044713402279473051645465986499993017257107028734014341459101584560570561072307451645317066650387140304391333958795949436568801696067917727723206775764215574663267713022347092166698076006458741847596183231950189418788931094368908125230680186854122971961083203970067130278536225063979490425215460147998018488773497994971640539502959906895180871787383430762532719608094047269273958785287910348928602738808872846234138951400215841977044618378323768884332999774041781659404109854848337571868003986002908787713912859884092920666868071120261137297635335774061596643876189940823127492200506146892020128244465279275677453404298017298701125267449941324389205061982282133369708634930517263053468418799618565232946246320593149047787665877234208271809743467248586713716581391042626697412137370534576088075995786369521862359822136039339267734956026126248430906495598116079122769536642677100937875728940666510089643480535997993029926247266423152187811848097583240664974162707904368564693753597056701442860975058116298249221431539197006853499976845012417018100754916550700927305059563876785059705705601578164877792343233471038941577159471096732770469998735474744639434689622963635673885481860689365731681070155008067742878211012291421170638537415103185723677947431740717015908928293022042110356007492033020690115771804005552993323868783611453706763826106901777669779238658948526569790723095290588881003876795517814284041296712498443318555401446388136005531995630347549078383476634265669722143940925384840173321402636051945534455106669890679505768818989031532615226703672728122855770798048021161497873900953528924103986694967720824952318454533669112763792086888477222794239556361242976671500880603222274911084011666091455501795861936596277949763162887500250170368322964940392998811528336102412735761090755924096196627811534696681634987906258801408457662063340919367980253976226894933599732880719122298528352227198487061313396037388460282933501601609205435327577725099739585384912258975717068622614503603188927833376068983106782752381953878523664763548329870974918193582237619325248065034437682232917739704008039846056109185061072850385921056883924066886618025535482678953896281857070309243371083548490079475708249489124280556365126554879309681445238613132243638925166595678063152082803489316883468548712317627741940031630138616995383586601588352829747844570863498277655865305548967036266503336763238569001300640033512315039331414687568197801903142587862407906434747060645910349056902039404975185134889481880082739631086200338911239346180046752363465955641617252462646216609981857446420560385784736181291173588039723106642923639725381654157832406824339322356008790577048998920566831673071586788081702872104152192439593314423387150057973817646084506981241622957738552839590758652453492681088844647138618959781392014509609089348799298308781515709621440149310851550368070060143466085441786980522925088439733879728951832079047949267482958109916514245171095323613354397406785279918070786051254542725411322614881794759131947234491425095288559940926922110448947699744333843035851119472519619950102343440675050900651655584980779378603752831844011566592338078222837063661085926039430829949571276047398610879103103060327489987089482397552413180609099277738143962876047545960643969497059871259423552893051209675363866252781309102204059677792122610122848686610998246828136171301533214439315154247489448365338379863905414682224210072540993671465139147703468081761589030872064225228325494110448309751749760438203883728158058769482405776172772384055908542377315061683527425034319889650267815211052234575780614637057523706999196894904194846216719699224675613469406167295815346121528553234087365008749642588195249042625170633372213534468609263955402812566877820047360139533847950687286424388035274543184145189487480454172588013370651517255492993626786221775130448293747151001955464981522620315654578171505050197002201264996890214199792520418758119555561250421830977733546762841055252127186582126746245006657117318047720468874021277668685297439510891304442924872596703394875193746156327497374005041746328197720476236881125735176382680720310028558239235925877831208188616122959420723919102963559995427030759869079649664123721493438591717234462896461703398321528630837107431402370707397958992376077616708098758193035585765665518743090556693937348944119767181471445647623139448836561288266003907541844335196240304964264037622926506068245711050522410972861321013132104048061671047431915379176443242725053031363710584998901371210168963848507628151390448006752489158438204239931978101111119668323668581867038210667091327012518057825875833639432912914586840356043292226905362783937792038200977636507365662433604008642085158417438858470148601897194003118273604000854033048823409874499243349713530789270333691073973146762718990870037179471458124155771895365335853897235603180636724834072190228749684526032897221290903277992942129878952000679908337506499880355395677703822249468887396400236489517500035713593773522304012691536151120307727208387941904715593081615500797689823544639131297230948810927063920038051367543964927267413446207377056018143275845429563688663596106692054492005709283753398786311590016957455995543683110213564705713526754932250861717786016886300916848237976645012080020667055912274203705875133567351979254783595968705920227314276165322135034350575110730945371002688018016846704396839072115891852739237737662027502644717138629745306052960903815287396416637763733765539585461010350985312350787106818481204776938117932518803189995577135143481080556411621771651081429581586468611136689244295215684147665843179175705009617485179422183958582439759635622275703466905459204537532677669917280202831314856845760789150830060954406590009890900268080657636461309278086755541452753115918316100332197282524653100490379902880122454202659499288911869376166556980787546702012373705018675494302540389126263662228713254854670426402692648868775099875890025593844789301580851041106386813225158341541391751856525663259191037562851357553586352049711797999238348993942446991238411540244718586249009581913154936544796469051240501641249974131534960304137069676148924237719533829044178085615673149051577081387087893859719443785259407755183768321236734127707004341419303436436000026513450066568168744322048082654851982983417981974432661579906226915234921854354751275933705665895248206682576315556636366759799845684906437615894606098302744970749283887780719819400625834838257369574997001357725376241446341538945123420589832655674644370049175751194712562221901899582380951975772884140175543236584499102875123112579055682664947377425960294488681114167108663988507657768789763425425406961599208731897521040358038735142373563759898008315002598136025844125253827304743782825052857636262458438053118851121047983468493353619910864117771069275728783301711820990902474915754642719578938569596473201134578554167323318887750888674507424167526207070352100675718220052992705099379828444152332458753795196127186061923997687098237303950798663144423252793353592526660824430208980218490580888065401956522965186286422593644623445587294575555624235715132050422038125716218015527973445170862972687329641540207849891035000250084191228372662623753808214058352539278061298421789278277289054338573707909876050347024595326116624017675776755774639692088416493991289657008441808274293705660893693370698848806229265706277830027749436972222764950404020727856403324826915480230673659683984277595552343391734002540626163355256338828805413283747045924852830416018370511330601660336465983573275793383079960872344508013039883265044071706988415195675117983537069808908494049745317201029927801825860393603989830444059662911506834707351825964140805418286696129169180935097351131448259892121230579961223707049115176127476161292275666030762792109007045954077910610484245006855757692786479785689056913291551835737831205414568718952828766971468875321748328457121238888029150621860314711353707507326045784742145534109043130769269205138482324596975683112658306299361831722472594144195421751747378878232872148349387940501881827119860845123342492229170661202902965682410451204210308076165379711568847959377830446211737650142098603500940562307602446440826407673288520054980602934723802552753886712515606703908795828973665949386500999454082806785165867884016176061034326888638175002193121795926022301852841821175609384585392453889544513224660981926214395159244884278250558441105311338252079458751448652148297379698603077782527235376740475292303438536829707256362067542993042529344905689503578046069525294520214028030672182152930519128765187863086623519337319151904051682141225266237074203547475967310496455265300666512839838884312121211247240214194493124451947873694117920038952674305661388102800885663870691398753448301394304034805185123583895890370707228444256886708033303668316578562070885270367118452467846287485134208626701933369316586269850220303010302709159138281201955582545046798919373811979720905018007061435774885494899909185376288671052058315548630345707917402994040724553078694455534465009046599675676182892055470372344290258610674202520457876007005668869771123919904425914186378441062858185357966559341890737693054312166293425408536241709174022972672680229308414655503584241255764764537691158871499431003090549110354534800476567505159439524073594136711047133243258784354611528094912790664085737040966129136032654667193829503661384481961883417926445690304357245157859537198770182732703653937547374940040218919794646279009789452750521556535573047034386474746271799920344015578086419768482294587215597858659372026515429853155515056253043339374870854244697016055224113078252765840725813904440085526295735550039404357612032271510595156293742927117297364313742288074183085512536674529563991604676606840357924337878776108675474358990699302855715074492519332691015673405684419302152944282065491418562299556999626592282180897603924855672290892996599870457625021445906415215324848727936517788970647266670401910178989819623611958998566058939238868803477496297090981440138858611708934104701784639454221913757985836677426222763767214920122238564001459192267133524866718077295105817226150580617026709805881932684084795658277138107901229033612698890752752746262460406777147128421612656722198678325279552365318333811432061440607375250588486009224942597934726387943823109464655647829154042831219877087753822205300342716556924060550953006017689591608919438304085320528562823660810672179541164039377956384827709838223989988591131859382906921657039020036960649520085000460577042186008405909267639760896644154437622137208321203047175985223439062569962569614170120622916519270100899946500655759581453380753656968371358563105393547918797029356409922221313248818345046375888270982837729628636805209855342107375538550152915554935541818960553518025928420186695515593720198450292327441838893220789646211483771213577647888249218757808973038916890728054810632239922218286844134445717515212841173920981168019932756511755347623220981408080156747250596994106505530685926099045272174502247263166510298269892028898662154689742351982267671942534360834828541238874893357577375871178266807893890997514590266613496826265085197839535099174770614491142151866913265613267689162494029207266761705726179387958820607023143001447370052533599236258981630432563840963943988767264555649807272054844691836161809414359862102799697428042851284318570517028518600507923093069621390808602765958522145160787426750544386605234078622348801906823767690866146984384311360731305429344670985551160474292083903367918497506824148752111650143547203582983576072402430194920953045236530171165050946181073369745698401241033204954733738879806586438126942981496314016745773594768173197867024958191201784297711110213940351095979699609531108483885516636455412854283394597509522282033846513511761457521177502470915984601489545273701396733717935268248837370230814100901176128947487075091550651503643300846847064153466633881261594260319950164796332114201152940675388398318419566662081487609285152433228584448407665312626797342657889027752555917348986616615794429156798091218827826315390485321719257909092989437678591224124702981398483362439759883138477084606120746070925371474955640387395487213653027852678323806917956172522691260684123840609620518765307434788931135995218090195595724253251736081341679792060116961651441694032225335574913205052571788248544633683756453924032345187636959538608022790400258887429026847564025951329800277510014990135165513922158500911305574275383177638554066879939947747505029188418252968845669835622508172717941806819865789388915965500600875719023600169684789222905787619831184656482716896673537991047220490374746807835768051097735681466965523478849421724414642306621840589964070016944630961475314589294734017980778252414353914482405458016186833069405485029625347921535497616830595982380571393622950376970572182572472284437088052082994965190767908826700455343918248741107637179658214512406408132109310415098184108244007079028197529719224934156172773099853903459202986130996260750458047698674567905679395616502076107394547130796605017087757463579170133384652429006270798962662501970034654289762420023549391577651136691568767454789621640819249954659916267424473882197718654731274902568994314206567915998731759853657896091663041446679724667228446571143736493912522481258979283517222633925474147646022105971878826927012298603512720701939824166864247865781224000435666351218422499177868533821296932455575375790090434618281504245737690765228328264389041234918644070865729042814347877658373549106778335708670125585810499017612467739889872575935284387958188731310208221678871377997198910988262279202051638665533368014998577063627767808884948531133958915551373985676380122839001682627367122933093531663390355788505356166194735311954371381841115176367519783193016905172127910854937905205266425463897241325959566494993656171596255490921966259228878983511759381480190719797677854643603629883818118688693089061977095911494558344661185483035404674530102053195731529424713952035707602214120538732691561368595065827199916316452827128546117729968685946153122386040602321741728949150992759889116834350905486458531160550865029716008056980350329424095820507111151717131228106639040315061810173184503386804581944866853775598425679667860260893488689194599993937328693910576082481458897817446704773519269509421219142073851377806351513511240915681912766057732988378073536216968743827340998213268569137108143696441406850293720824407765923422982192699881578263296624057775803787999635348707972427448272544934345884201029657167316022053366727986648015561425851741762217298852773951061974368859349410100312286631229371819627160174648688157511637486148376198874244674063482994741846943044697355792793487701904036383933852663691555316459630428307964867484137089298511987158838273989987734770955039215719194306102832655577442696930445176646004142611254800102191153181034633403238098509579800544042626057693661612595409185777984914418309370475173922692701935732266119861195912877474537834737404992372748524729742258219156161595879061470966155488048096715184592863681814340923177603303958452505092972550021577486726783635120117374275877661487118715627754869424743202480643087530425490783141837776127171699794841445275912049045876395312898851924717187696940804679653213167921961229996756724626809043451133078688562881157600849544722245663852539076634417165306077553155704692226789697225475336027485025692274360790328024257199000210490472638210207090107899501528972997816816104281784579911808537205109325911783004128293973992869839301747363054808262559447975773748655497785161133542796413431640047464432019205788091295667585577777962621008428059016753948644294329247441019249740494756231359880016032026388494187862241014832994306225614132910975852323692481208220366841520414311093344740418589812219173186519998781056805575504698361046063083448482439950904416799010106380750996891009990632402853311141468206955459634665446415358777531126892189017068420027908448781070848205931373736062980144871914944034896914563782052533313550077666894433766001146816840390197483733767225849436654402724084601614631150036662471341039872768087880161696678919791778422836583595926206163826169369080039846926614177762150217921104227241663607880991963670510050677435117293914553193938489544457346959897258872950011726296991622153682566739663323114913340658940274880862348351263656012985355300595015614471164923840557604079877486862548163474492032679798241073251307071111911161433591149017775087588346775789508636730013182626063195236122780174333714567092108784482009004002210373196636905686369919928275253597839568337659228567799781991715494261586572782219150595238428658154941814912384655049822691130030574242002532061274633792417522226383598556326697290218032649911004745950725262351818713744353588101804369250027109398261895589958837996857176737576160679285989738369686290301993192909823568251510400995844414865395926799935181342256211693838095010086754041924295124308799558619742634743775892540741474206867483959349939564610112938850428891909417862772188928438243145774953454517973122377202193301744053683847439952407574414413363389333196949993223844977665606236244160998649108362588009610544269497631302597484150954131560121011961549217078519898296716261979276866785484073659170687149085597503646950060526326978278076049995165394560073014434671652455012592576329678635774687934036834963666255974367980957877954876503178596383589014082460788929612365824549792644366024304192631691544558127249224660322799363402537429199587002952258572265739867210164494933527022035697019056519787509512129026406463951577805072219375756921615612266310164007818868321391494758568261155326438986325433472444607496052088170738205638581418402602717036364555038962144970375133792189061809209950695487040613842336785484361983940911728716121874184224192666331212938045976661833487252757845597760746214416106091848780543887092920419214437290465521181932876636867211923155134494746482579457363776170659772440656961387417393544978388127986527165836123091834854283616129800808771327337451190772397739473934572109448225699437931295298225175119312356793484983116575777614217660897007265271294594281349548899438050453463778807601226308328915300907337548473090712388101450363872469164661800607841223353787109945486829883332738808395083106985372874715480299134259236846353229980175668779938981518931654602478047137125389738488571484842221617919721727917923420516373414214283991154631144625957057570987680374698445618209249508056002413045115474542707925484580376258290528805339666768013905165249208070880347275650636897372826852750765790621721530252806039819500205717923755446251312381752709480909326510119065024289039665995666814865078222652752272583566957623992254398046903588772378021669316512966566884000301826766309972095174705524510236806090504659762951644709755322843464229066219835897987013898232342977192021178754022354813396533076300973448294163924947324124932491412691902891797272648747346078905633480156203886612469724567037658725922052205256926206268590221456261086508486548699040440259853682697718455618196276449274925714515916307023173018088610495734133468174414116864490870145334321701421456743038639720108817170470965000229145886705937515485027833333593028726259315601351353982469333557992954402049250241751918431041649692052858193289217103042620693206572357506787066076229081755578154863495507654284573639818417290956985892640980501864011696560535028452365671825653261839508826539580548645000493940685316433371847332054338017128150633547583141381858922763341870601204590006673872945143239151776222031310439413862617228407962093030047971297913673344226857177216708982317140195946819512891763636082573385602423128125909018928258773130858449544504918768502025452090313728640692668453570716013990480326116915831175972313124407317504875096192662237755997572885842720439728399499257077459003708795318299292999002238757975879556284988075435515619503076427819457129032488065744804332372666348236599151897177083933147040916733168305689222537837240609641844289481680026786908044589160906603416016978960864270017257099295107507446177073237400906647191049385835155552647991501377264297602026246204757188864765495613441996887666635707587325908706967476865360518144552659165932978008773381158081757129508858110942257364212911672428148817208804041682590007932845455405455696383804618207225039517773149013171062204722333068357215890795234840201898058630760298861095630914457489394986375059261078463426063500993258564273382849357165339790348089410871313197096526164644416716769867607176105333264073545905826451783970849722156101521092850050603682343122532346413125740520380654438306705521851762881325597786990116131869231873592626728500719388919227342400132533277480529791815481398857710960382369419642574335705430002244933770593883089021874748718440083384110960419109648638015507952933132486748884736958719426598151839336288125567780082408898607319589830704354275669244321486976318989298881378082966968938733101883117468531277262261590646481963649504488443855189617227347023191266108929028258966610312701071894281708735559975002018404652902608295024643177632738079252219611353432731760485089607595501068613406344921568234435096012521821007071575549657679727006182472013759841423902536712715391423445937170329782367442355557734024773554326128742521389591481124464856368266751182515921449769510938448471549505209888545021999576499435997362663307932301698818655035802269528722876395299582495040976576846219018692345099734815903336162724515742182741441918028084743645918861194731364869068830619515120146735673205163094031452707802209667002075327448272559386360106246101783190432140362372115706013469192275110076292271324773264200420634003609347803345042220748326973186599055278929021938530436653892055012915300513636220819377556828956861438837956943322248477477484712939008169170135566752315376427785338480831818464727929340277810138355011712990031128989022818201852886954385501788512979475954701431041879990938671211728895018195859291413344892698220080111789808641320114852000046652186775035211811688157641918058167080977306195055868767558237507086131084631863460736744209663542983264454030676981171342415453136837630627780527472022432950058439999272985772251704799817494538885463505405013531123119381828555183473300312426610895134062290752184037875405521073233369981756299948201995188503989537427746620376481691967770091464623231238999003088133328979914477309591782510127789787000994868348314073726996809853195272212674660085199917707198748316361821354087226336548963708186669205600208796737644034410767694524494041498736486544841807079324417974913005144654196371883088927335430982626618873232505040009735137249048262177088202836594943283727127381670170703459563599881978059218601355199219775675253134604238641922101050760929453663486823436028275675446449745465413737299223533608941427974377052107104605699331591965895076221436161006719342472689965774513644530058621567043856280301282029125979534426610735630738274819254810463104511291855909177882680270869098647191716815522152406528372515278227823199904436087574255712564006134337745525605398022831514711523581418444533640193692604576629642424889561660927264897835731982295803388175168514273172548693938842595043351178309849793981210406951210346714966280690752431655711926591620790678494266235955811071200080103663031974771243176990368889802681265896440359340752598528513164818656061805013043506084953225197269208275288812354133444412978458137853865922184033617295690570284764701426401067169904343009268971318546595103617625145094876249085466626716597033030090620507215141516363934979109844985774916162927860575487077073239610155426813851793640861929174947236300335182959306684749606690474515765643071988782251566233211349495108939816848892987304703988522733671636122635025587834224590416981326125558775876148771987161385261451085477964211585483885952197755680333138654014054049107605927101651355969926325075019683001666796024947937190514999596788402615706930671471679763645311186089322052838809566715802253695333190876405131921305823483985042227203595949603130527214845583197959000840413835979653391633716337433698028103244371141260217661615075365179617715604172280160517074495952169791896619044674453586893966908896335967999872167757166032674030509089487664684304955660095748051139152804899739437830589145814510871499047463762284331566971540548814862781979493247468586134433420362536861814966406412963289135030783521069366893263427871480043617049261632933485382691319729055675137428584331886978367877957369698196336050050220660516591375731718582660878456686662444683208903310672650847293590516337765058401161241106321829041125925887635129453125530126046396354899225282009919838165276270640011648399663401591541613727935158904813408218805051467042643003824066328820638132926875626438151633187775665064617720786808052931596193912646766157359823667564655722188862538826885684249054258410537028250591260484859667527032043420716733797016642762193460458165987252493826196922762533811140553028482295916368408829776299919465451313164050480436059762701127164450338527325183407067855431804627919154637323337981824122130932079992024746010485259923834253008026390899114795236263758633018988493934856016654197159508079816663141917860295778750029768919124931375090354388394334495001685426948011075706803390103732464233276900094027085703214183908393071674668694985460849842988252642566965721888964023523077622324619524667687612353577343119942969457992004710497674253257365574345912825526004342669784864651079981400434800988484386516705072033131582475648262065673220667474282317681431171230210849915950283839116880981895628834149408518242964967710919604104745639244353292848205087325194399611137277636038120719847805566103492615144000457073736392609299194511536627754130909493711343440199091881586159980481435388894859922111068188409951800313908622676839179001399627587302704195294754044282687950102240930557146650721565419477214705763862392445377732838135637642886137919474581589651507644749375789906752853648035966958131075910852891704628875448763242111598303860499417051303323526363351107292129921612933730448314684257994966513158030873611396392234964656262872121632982195455707775051226048273254216801930763487519192538448633602282525983034641252120633192433212708282705385661550109378985518150899912226476792386075577877757181521789231862872402475436718700031162336297369454895934357791919723170344009930009044640794737835895855354710333620978622045026131188757769376959725706806255568386620604369527929166205751619101656016468395222843829471760343869410162454187253064823375939830662401669688648684937862135830438520541833270451025861888689033069392468349622432177542444183352514757358952593295849127844885801681458157010346143670287859673239868135272855322147278015244942801455181382618298350340902207336337078510404568205431946124182776265648483222958621171204487655452001083943253361058912354563305463030358686429433124936290867403372665561526140163096806578203889813134119759970524836937341868050218666300793988387513569352484596087243704600469630523431393935547420081232003339114810163503984192468038988437570194637132042889119146052770069529006349323846301881828856035280522380697151444859077475716113644329719753061866262346967161902082344465984220906286961952768833423355293204959394504205255395699173139793663501802224607121518110473279506420649541945431460272958844799726264810579420227637682951163836273753551798259930473674257513099029090383510332368609911513297108927633250078411552386955325023844619695861761159689537082556087903215816732248199653871487481231588599866044449601020923087469809655005255228753513000345196024375441789123031792212988520400915344198986201411476005595522747333621323382131676559818082260853248057013931295307928313411473200553499307148692593131276605273110587025701453078382733719973929629696115267243583410171427183440788380134884334622047126849128395963129832727296429627173675466395257010622751437040200391473285580528597289841415801217742474756056111244443558402688426170877748006850764007883285929877886958966407274011195373877800392411850803241524926674977479033442984335135591109833126342632748415833162379803832716239127727078762350233078875498789306973658021266249446781291285459083600223531731077486592544512515286551278672205333239798589840772848650616172601760835329572095113676273211491766246362473809550786083566498298262624078977703145885136622813377814851362973399945731044010215247253391380287854294126441858871122987172894550383115190210690416460955593846716601949855099531574669197941822695458198503270398498981843048829045725450416966315247416311648084873858922814836099675527979701307323400245476702721109349072121584248645268305665383136819475851933100243511061977866104762595538301602200628028707831620229409355187555991061244724651776917612743551921283010122437546879093720495330019987959210680059188315066033643328563129363902468505748322649170599257745546811096617551729303101382078501037563328009290780216377617940654151646515664274638463224955027663540872542990188415393262858558281179848471551497091048065305529323117462343208799548648228549529530740372200114608969837328976749999154706901522036398030766932880309223488658058397665636080312607013154042246216218539673881939112366549834107292617064392491731359626189907732087617906792583309103605932551156501126751501501081460226665664624692780132694030701598456541498158234623254218322631028852875433055278025115266217847878093903504655809639594813110669165757232971081424298822418826342572040926236175501302087171969149617115339804422683914891797199617083633785292557318065048591470061835525242434837447923367797518818473762993054377733548521028758448432444971990436883944434202502951198725952818572536856033283279755013841039917863350077475939664890175027550744084475165249966884063990718527443187795723176880461446215462019001173509607563084187156865876011908584450745762563103354655537169100307865609996444362154840367733939299302740770809835212056136862478125491253547893154467060808068229280106850646044453492813179738872738765185159281312301557772434239827766017497276991110512935253153155529721058382554205764681432802998659046453956099606442693712492272439624381741537281176493940310055356497385375851251374899287663122089437707870215459231725084709737646050318608739251109438789460431129104108261421951964007197203178814802913412445142524693394746220115166931685650528545384042095409983934054701984600942813057904654764434803649217133473785073872125824820614920302525160306464424341078413677471905303283850128623320464264042770184215807535960296899037141219660878262482897796205582957589952732912194759576170403166716575436638770985309215613617709039377951619744804612192769101458599722164937982114047027681690396274231754797863806969535424012800420694375440462736453695869943764449114254493683625860367698610482877888453547307169184376436019100117792081064853681625835973538185884127554209975918225169871365609826328911284743571184122971153761812292778026321042457419682153189523785278158877923542231704213114841187613236324104506258727262619625447779327524055550543424313422993354728898690897410192373079402104762775888527074765164880198259288180785223746130139043493196289279181896289791498347941860675384795729303992495471502710364562111739183372571951939458671758325480887377536181087257530945225974717219892995919602272704804723516456839628095482340705943944901215421302464054265604950493375157843926682122356505694564962678593980075909025391006700552999815386701706445224341752318338036023185853011454551361434129978461173231511830844935492220436678610263411841127200252156807790344913820866121386721496982850042734243161631176510657442703678133888578019995396403297988092735269929109355882921536037323079632528517284838471205259164561977890100972578713076593892349861281549093034693703282714246205901143144509002340034366901018787239677440877908430807419551634621167432543777150154258514033746181371998633506846114721487498187793489884212538063734423109871604997640450797541430578736082433471048957116573506762771378194855239042964531342805857218000878092533432894619884756892815237029794010785079659543353442912028327770458188213864072095712686284649295263816527047378741231260783391948964302132784623352881671893515692757178251347682443037629355122722357016856527466835919909100967602183517699679239693012998854536703058419563914336649318295384554261389387227551146952365307117118231459032913292973949811612730570763756133919378322534097516029359637113291534484459524589863767513954512772708217624858182419506470441753817791795996982878017675018610565826764811248409180988243640722311971048673366230111745068238959149674085975466848806122104205401930610829394163393475582853202216739716183494873032840230340210089418354990828084430726327336565090896555414553467963788718860418876959412263211831278854012265566711151472060205067806562361915661630448392825256800257795018159087331662530587185091526369026422337290001595951264802347641429364647050275832659989570914993032279553927616259772592076023689833614799743282394390267504366427550934661682398312421825034840456612215227169174101287666613088332549925423770953184104912081981441201447534648013561273347099089904618684508598889236514140957945568921202004920954610121054379995820661769634565509386087541822989524442682923703691706165089032840018059573402575155748167280295502295808969801290633687001934122973853879696690381052771349178541515365703550698802372294347365420895067384359964177441895160274562186571059151938890122801472440696859461134540213004765217960071492936308130176836465743183977414041124125648406960224404604504765011052233719642644288322690485278507504059023709005012892403947327789989976300125971345911556485865252773755302865349573811027918724993735930653585447999139706515456401330387118377196677376595620174016762274334261396545857792208144558911638603478386548892818513582427835358932833526394194097831841878762806220686292838754195059001289179909719778902278136888427098665185611017891576322486077884372314741669331378403898959396954301014396009734161965745778478800251821448161615032434148252434730431614960028866786133297124165181120645696607828316355679462602915316005246150188532634595532932264068140125985818665130414676365974673101791456129429657673376586067562934786376893031890268705668389650225148192492165257874001009822155077692528610113246480598958097070605344818523028898204792555530708309092292708351267256915624774324829482804487186958477799197960160274926363941538119705414548039208644154401491862906275610376124552107501958308918312284524238426941787867607611953932431020237173219900697715458984630271675940039711986903617174929936027939014510192717373282398065428449879891402346378728349275787418134795966780392515789688423074931359084896528848780824876357057757130620867533742875049885608544432345930562299789147435085669214062274550982129799468366066190807035839730704345603560407366408064409430479077897882786431940955026192202360136608903260950032003446779523259788324496069167880543787317726818326134146703741509416408669554084820016446609985726048445513763700169455598970732650971928028257057850542735186382273134244364473126266852310248722798342201246295713380211254087133366955183445014565514313472131909622494509348230434872919530812488206823678022937730684394942291125924836250307492334847553804207394127342757413473927909118475948915850324825040340221525260794372824621184371034274611005486207601139644842857900839056805233029180014919945575155877500449813999061043468354349206855704751590888591828139445831546169704728029592697543831693176025275520719229648697774033368066279803250625820165155674973173790875526079056964078764420033935809558860180975015561333909343954428165064465453808834622005550475469678267306945843367232863189985563346108172045626777595825096884575921820405666594209386090636608935765228030693049847806495213552083316964866800671680966249117612286685504539009709505450502635043244088467788631333268606524079281861495625811055963789271394391780800597250261928448428074418966820504900754066514989877658813849356279547146623071816320688573299139090249480634597987409061612114073070044844501254475824977951373591351899205168405477380934911883792287604802233683365754396284822313556312638603123555051344452901546153035874570338276986070421968618928087671264830445968750191368423118961540435711486626079653862091870553496755432289583879142293860818688263825686043668438938791253961206068047691258438558316349154235894502022150080340309133475384314667456068322778874387276767911507922458795436461008655857445541976687045894613520932663868915133925940276096038484165945182204715518647546930532245413373691502187532627114637540492779058633657005846791154988970396719999591860963109865537397947964027920233237708023377026967337999327601214252155127810901801402662727505028213289486052495506961234912034523699619029381089644479494698640362886538734189803283685584589064574942964782860203423773700230160176160439885757356056941152671447746299697255306101688280159279714543371805497668182799127184263747375004988695078707972899185647685973399540327020813250648744654179952795224037191038701474478338211241420670330362011343568357113321607115673598704597408773263761255137145746146822594789081837807681756997416396525575074292232686050505105969560697230837831400885947653858719231349935088067208186274625038221375980332917747391606771941626900022867085182446532880068235458772250369554524045829634988937421232275226306118273959550818920429156667843124780938836571575909768101630666812568094317180331263289778164381167240021003754730525393296987240535081768879339401497764700557410509734137751108447174390381555443973037356450052208258402755816940853083561802434190809447670939462442387145650824255743577390328587246895779353980532044279584651696721841595841677247935706341077307172104072524970831474545977537795878824037276535249414560292349903079085121351144437724026062496084641178804487861859489863649772001353917177967195072062187017501724479582173823985598867081750361857916284807220029098427783145717316145320435816805875114404049647054083441836990570690703781527868197770928612651835865404157471526980473381521036263385998466437727243555982678059432923744518497641796087336104138062078051793567973141740505907129831520060035308253370722372426025516867288406331136977570863928336988818051205503684508402636951618139562483945311451108161700333305506628494288011015943747877779868462533617064131895346000803533456996032485646068090540324100240690103529371567431997986917058036133793737669298204207721528601334053549125011088537331432064890178952231072769788708256544236184225009928175373247506126714769710657075926793669695228824011730197766474075309374807354084794796932304500267246582181828326423824044556922644288321548148446374778902861084810371102081093032540569037322771960018914110224686796852677788821528250005588745845870106456904615297689800565849063010612161913618346128544293543838765084351130119864339911105042324237539303338528106807471423577357843371460689000872107961529153933362450513012910459782623330337054945427768485541393570776110120300036728625250908575434833949655717237623500073748189732980803973157517717704889833701682416843947528561655520696779803910109465698977445044393272255097856179334519562721559811075739575794980423814510606484444817976875522305501536566481420758317280225434928760187353836151662320037908686500767449958143700316041556654946833458624168244743365633833519071643865841859726462086514059082647927200009852695168200179837700125480046542272803813101804321323919526238223440412008077574167700392515657492353440013906188172003753842124837050144648319989556984156437547169290927269075833261432134507074746242792637640753561925894119813800704105586875076185399548973965493798488851957158912121879842431136120269854402320151160225280622562606746831929918647577930138757056583943503262537864390564174213103384087628805607429206144424295826196323394573529124021047985926303566458779338483085984789174658599071972957677367956550226608816457067786839649314489756055553994330764495988008000303881022428474899297644978991893073800347249196764748698814654282654233666102205929932202022072761756981959346721422435357762300505018204347379644204511267085179482504023620632127115786126272838414924977959657162499624709634382583984129261416209398145610041125024811545869620315192861633226379873609727532643106953749538467599308822831122212504090575358583925426857202868470567848917374222594178805420073294712589946249220125218907068841169062748087059587731938443844801166622619718643512313075224069821767632737640081996223289036376106357917182049665373998960646300469968008412248481491947744867664905292445881324103895723176561559083133627037749629645518857581376359914077581147703013781172068735019359655030992079035774353078568388959252608741005090565264230404801782427033261557965009064952113020586357817825710925610819286559388169724418026670143244797193494483384834915092792495413802532793301661563652499069512885924897231311320092463876535350931893547356249756031732921703468269981973320887140454501684921327549322206703476323394169909824680467317957807810760278049775441865594460396327074353869870169839450608258189676567094736896658426556401571406972282828516532054769502661117925786928564273022976635404387557272612775071323464852309129945600799194812221728829938420668478593464653167784994842121404836169841263036392768236887210029280117165655574537516954298188366781574049525564747389399690986843711560624879829881678083777917114249763611584904102271252820499166703387044005190162622065139716242273046595163361783880720135494480423059739757391499321988051923423508038831351912150674918283821817487739925870623010838445172641128717714583288527491757127132656218286784403816573016257719980632397625329698612825112643290735809923447055117444533597910164089731844513692318666776654032953850180061529953483548952371720356519477456893519283686819412263006805206813860181893979820587628492431528685530012327792832750764647497111733867383069027614473846581224250708150879947297880125203442418945073560017845059128553254526293439744153565223178543698866438700203252785374134581560586135601476265493642454849493032893918851326322215865989900662933154209208969092998811904268604902365722547132666640331611956294397707243922037764308649128184784266400628601505926910085753330430966626287915419299870779884399106434386262951123323568310139621018559267566969033619565222800280957129711602094250743316189428797881412916447111330694060374634510842750678331262289568246710780070653546660193610680711154463799194985681686924079958127770964648785530217475491115859478278863672679970698083323229782451787926278119396450580339193306905300533606904829719059784802542089362024781337896762444927269259341970417957640937044718136360347831603460468428475514235485869469253405710237613605741112793686075884371649251222508368314817715938522406010730033601632341886184868035520165373500951054596498659376266044351124638471186823478762970802568860617901147003813284421815118393290510651582236920263648535755861009578269532978164842436965069430973288226933840246365280854113169881495100802875252356317328900136584189141663498399835086777681835550329037653263825793282427890075212843768202916762449172398322448028845005149448332587680566644553359067884933304324197378303564453020376489797842607102377620675885530439645225771235252310912509124768009768019911326636383218839910362229489150206130460079003777727534808085409983597886094355704411502625930466965316015845412065393125803075178193777581900729701416486697920701565663156895715087889073648147143697203478402252508821126353857239216117309130182814875070054860273553410522973785779141213551532826561269446402265574539453080411432769336690199582288959228609663091024774490448704338920878669770328209005841303027422770874904022939461664102503729117563274936098717398812306881537245362553236211125899497202443647425153180533397121456594784851719992655779467787920099874950273464954416136068069239720138936222224722158506327624319447931635307814025547872927570234566776418466143715977664984246907270683953238728550772369341427508643802807536371248839498660840704018836728069584928402391619270424890518117439503404674343228536411732901638024215985843682368587771811486058767857326636030828158658089635953058931249954349030421521705284664416456421642756038486462519928295023772590590083053981447755386303687043535867666060583101070224312483549372752245080642143640826382171502367537227376470695745012227072570364675257949226142621547686167776630960534491467674620132580030406402718416977659785305772557146550085698181677290205016716197477086171871858617937560533271876645396476933924480738729435293105008556508913305052857771221681791794059976953489739277386011177647164559134367902308309654327642502451287155488288522042100805565546664479351716321505088337859917905496042831935085482442176379142773154483316578336491503479636560384995286150354362521680059319671206878512495583692394597232530883795137591476334470084905987288147527392167402870008456638305417587495103699896647214070435808745753391639974601565814434098146957619431021086457620137899542687213571807247793747745934509765854625256235900421140783964333980922499103557215433702370229748615065033150215925920712328574235423107763862579343971516879888611712109891484912472179722537100069531744611875794560749297665359375797318803354363695224520637160686895965321844230109806897995094876352234297689954021152219123648376060470181463710670562289856872261527369156313441547148342031404841915218944033968320834545171893428986164337901549282207038427102822202403087805474405297391221806141123902007407189208486613495540466593604736411823250059368917497826571053351863383407159966068758442524971603979145937960406181398924447564718020749770621717901381026439903547074486418144855258168837057776404287074747474241881867231884712686831281721925831069292992022788876998240509548169832958512980939037899024610882644075063554717260052585885307029181843243655469389884867470008613898192340277876886543080757363732521970082391661732111300732831555122684024435219880783854547473848686113728005122788924158220523935078553604629339198049577864667984809629061768516422242993984918338755108523023995849989766863386928620703444712751104408031236298474589686695513112916261371127462124361827676913067578655778900893652604010313986973131422429363915331634845655980760352426721578287913900924964451777648734041444912329790565329740596992253591597296962430507628505393900062066235352413722061987367689050189590179463383024660728620551896373927770671613244256281396861075702819975010369271719675917329792309383930015713351906937080218661219937087969552511842364059053724622126162663633707301326682437734643698325779652684747364733824463223432261631380346767239864320736244669589536549228232257824388065383898164402198039881794292011229296925918465361288028687251093906813887422223722596353416837777773343635029458048000859265135150124850458735581671304596499988309679504361053696449483035400279414805866029300442945778025212631601283931802373934723573934770075221268895706253976446728113677619052152737840366038452379812684069427106269444899591859587952765550114041813256738806785729388090545666984562325949430167404717592313280875150023981126424726807939024378974986766687410218221912588930699847803157332451881278345044091411299194323015181763615386999298632554600035390489162002174500657179320088325819842549816533440200857712177096735188068010323332838326564290713485460372573135739569892090968458668412317264781330262495382881736369022547903443890067213590652860349681270769703192016823180084037299735369689288930925515577389515797800199568317343381076079819239948375872220085890100402938525279993990618104615866718893651804161537954812624490398940525967121010094598022989365986302071420053444800560047521370542384145246233218458424541154955307916693033060095656227597888113144269143357918292073991811846275521979820889955196129843770444409702991274182038612083463153793159677945495258084672165086589331940806551711765571658355345818610634323557346919117492657576915225606790351373898828745766942939616395597888121711409263980811203087051568669618459265500165762876971228878513585732361197369308081533397946209025328914574433591211110820003224867387763574992342783892384236128361176275776711106592441270777974235277508954831126441296019247080930466721049777284739121081608434845109378209945612472311655915294335479514695429221334873128125266148339553658453768321458239866790018382855386864237113269617988261813602978614475024935672034652809128627402789370509500099750150444711142190404496183901738332465908444193406967615898378183751510392480086905618170472520514643792882371181118759712492340380829786859220681850858973861469858121131411667011723494699219116962030253590806791464668566388877329491206972352406800301963087382165566977381092998226945022405756556695407842314872961346248801466652778875096847314014431716267419317197586147111086791819816620319078701261912042681921058941575560709437950295818066629070968237203391347573995862217933321141152249620383660197141915427378692384112389521905578631971842437976288242479996912393038702058424464120238432830224844324723851591594765436912655054792966623810953371825167749446774101180657584450557901996895242315679290778956111612557922612667287536001403319937830816138492455187415037967355442046850667565017956547349455645861225812698508673548435365469880285758463877416577721004543870032137591648525433862356237345945802800559797591755747716444553422853898651665025962067482934489545286819522990827409751813590201249348066725735082065968528031093783458762691035951441995273208779728120141348087348659491847252376715258517181062080867380874226570356462903604526306891236963738035754362295604590835456201644080802382855175155138681909191011084000765340862541511361555678066262815590478984177161379617204155404727051112227938133489468869765277693857846704476348070081315538891963486615116544025021238420152856448857028514456667642701978133573007493402793486167630533156355693086637996124497873745993584829662350787509613180647816921890699244562356785203736628695835666428875202270204428009704291724958874239033454074350105654557238559750149702836177968984317780564484211885320907640099474887220362485795948936761630751076753567362667947392826510480251706719519857903541893111231269832909334118113247938207966866379883549663357455977064738010617419836478976314988673439491618159806847318231756866754642162636804426707056077202586710067720028614053454253856147332945887200219524572745464786821636334108032847127748018738229539065297487822006472221862560077740461970347396095832513100662862885137871643723133069008698757194510443086881799660867168043149962465008549943990040457852613732668241094414905330091399922501889619407772476685313499111103543661027205181685242146518357458415900908927303301252798297428595050599005554259279810375307561426384573060127350306316241886180430005356506415402000526784547703631222411074355300300474075384432887735854161313516584659042560262322662615985109502095589389569278515521463292325445089610086761589188124030564195156486774375594958387385358620276852674690341135006480980708326148449883769213837281135748128873841326973028768397501060482025324748884427964024478470009862506416660120438534645426800502160634178165782235331534652524273444302085936210139086688714166038948383541786680601271681084326887738392354671162541449752473659547403826571476472720851473003956964291919200321559271939115772810716227633499374722804436267709365931001886709481088420117669544929339060072237255899692490188533662859992174501431071933569241652779384364849621652946104540236410544271371767153150644156653726415147154318840448326569917863349023961898454544730582866361402850446296476989825481380116164959867126006502616025899431930092003565265255476008133730620479139971799974914870956192571391960474039680187492570428939197636928617731676740630660188927944579411900583000043933238350693339748162886381576258260579570424238349759550767208534839889712889037015997388277561260869242268296632834465066250427079191442499594301476298836327513605072132295719057312724874406681642471057175773531339072711338266318931643506662863387583867726075294515208939969786718793090307742085561353293331235298696794151070824326630656046816684160123957436651116874426851705659313141548986603037707813425663934285042798783894823255785187736141480405771124713092003105661803607564639877109812709298651562803590141523001302956521309904799908759600473239382757344364270720726454230605060336743648201769090370649107523934666550647875801035065473355112983189627466529853352209898924994488055191698214316379376710716283295219782645661187980593219969020216507377773790158522979741176162442532693588093054104222697515735795820614826149508940200714504538873068929316847305778880275538957590754123790737052068539422102006139593526739836162218168220947718414238302584535845882110005681229206143381048632500726773776514792600864709546423888356311853921436019902278578950128651447314670295669953986569832632015450294581172328783355828011930701817812102346058669808859750806642698039729428408601458822613582621854309604238470835126056687444832274934549964221059003815235823001301299160999071039465896508559794848638990561135539476301572849335658994838421474062139599199424055910625203856137282552953098566049415557344804342285571993390924586788220781760865348372420300638436745396624571569738415197796451311492710588606217392622874388041597343145337122034341519762082233799221721780977305619496954761123861613171136404345458369241232708896373073930368853715272454905593323883493082671552537589259240129856241871003964038305599561778969934361143808019100120683590293407221391464812642030238535636608132088217642262842588050222075337495703454925931122788997823254276607011990085224805061587898966425126680329908657076769652601878253749926239117638490110783619941296219135233143334972849268464601685847190607085445682379378146251835783245338616174698284593823961997425256360802578188267795009057887033173324601301783262817259663606598303989370548879747089898545424155967824136135340088153404707853247095872825767961254928925204846239941286836087408076002503884750471393339673254944260050211798666927299868420703835644568818133731868026996139842642451883437785576992533763011369670968615333047891163077051696636557635445696287620237538491294638556948431849189522154374091492059223709376386615755362433419744751606213004233503534101443982723509585750392379009510690044721414585881677397143260254167222057488018521349522864025099132418793789238144019227679734801720433319425682488018984931762618767584509592376663374993722375893431011517555993652377251848862488003271752296355193943964525427669136138148078559435106604262353278072517154000858538473397100901969632479333754479738219573118082493019479882093389466843422170731645461325706872228131995406984023418518695941064842117081732108266946343872648052118176892455266640682523770990802740286877182956044845811103426462302793084371575024761621203136631034845562498919496076156519449067932824916356118785776150045367564059996754461708485005372745769068273221992427935121075103131090367121901965530733867901585408062714933613649144786644579495478188862932976892098192878786782423925170182807645959236656628935017009637934086482432865544622710318234084810238136686577832313348966252931925113612346601475056826184205709226503166883005951579431345454342313044818067826519585802007501086985905853829292074549594530400529479022491107954231806718365940978840667261943352132499954928691084877403869343371378165598668751048142041018739750345900779167413933405410022680579246855505254888152456945718299384394177839515285555703446455191252336216647488754676685952384786558998363508595909282376893182854420370370692404173628157945681122680592251929436977584519288818248213242421976220805204292124424934278424310362029249074656748631931128921237173136651212621839256535167021019144374696175474390889064889509204948740200996240370303563113424058204892781928215555668192485929412654933072030957541177471650452457792860093935339795435884791165160761068756932615662622760053107402778046863038505871092223658320251261157080486335822189534292772849770644681843138648294549970975492808076057856171005502802522205484400028858307053369045876783816200388296859503422771435319556184129230516713966872822164192039557020153329119037543677643372153374571529400271060743180601389316789418576969379607856711244877594247960516941589263147291826110841986078590484663121559302281040651549665848547026258348763708650054684814760107955304254670802187695166061123782953121510061976948389531090711353695059759123598866433204905639669985350886442093004520471976188949708382642918650950703039269925050772952624442752389831811975920048329262541408539501433227466116788783200930594270165391148811801406089818085356369998987744697280394751014297955673538966730028110585732902863333406714683734628070348450654611108067458784411106221490377208593464678385264653652516309469258870191119977818707199998586098450379371151395471410520424335061438785432168106787745550904705985581673499113794997208653487178546747537152582493447846714843651339765203713175551297527319094031618075533325628343780577797786429284971739953524582724919858361155156457197511180718292695318596104572306651983977480461813249352991131975900423500672914725385094323553170390585012623846897621480144917738733686243753013192077929031967813435696256495243122921870727551729759912548303876053421071724456171808598850194183660803868690216826935072112141526009711274947713978334169336575527713748823671037074290507564824704922255279734440145080278508308444652430217616023670607358666178184354629170641528446658646194102941816630547776642533852833277575000959661581541159369008295109955379704306197369238959920683394978069059671203514379354225705413952085164837925466216857708429851037355024909417570576388881239326281803975163729418538148661029450436325509452679986256150255883649350289673160269878062866741287646930700133394613700170056122740630547808865086593340734702562457729459541406502006489533968831848871415297095171367042301702376463827991147286255194296778491313610775237155947847906703973007048241397041764000319228849796307665880552029734239315949176313772294974773254090746673818957912126230061828798328074421626508831296558712329384651622473934130677735436715620016505049134697298680911444924169353205118606687852198820739876329616909203540703512893898522891424055280466508169012044891739416374320744011919750225804009156897148021713228911926712578847584470555740847534969551668908111119625729286970101171259938784125222474784346095794513697869769346786177343585125649523657997568164682789491824648578474412211361642330459724244482254802621102388404061796981013931376123069154339125123099079593062797598470294058215427116668692957419183169584748717194598910922045840168610649542007603736241154963944063998944367641731290381097307598164444098874003831519350032474526162193510736373930130836263207754600709663651917585976837125471887109834759831867639817800855560692155125149866934893036802514212592483912380118694124447977438013676708513425038882259113043380643624116127911831951317746795388921051715356042435330154696579678558875773021572667469234344139403202862797442614046442799824208667811301936469199759756220350394699063824041901289547679885931637282864716005970611832541774717055166772968701262499849874555018763300831769938134035742204296511436725122969615564124787665276529165211391405114695094680878407136083884991277278875934853739191346078114099507132816758944436537526026765027324079063895615742403119810721429562155294105915608316496359875793919842407903621857769925553020714950178950552003870103063136522648389290760878833415766094515717770617710360387851493580282246823175278855308938819537446523342595716996206755936213588919291774586091213690397006834590494760733619317042997558417979790576595069271088264704237942829358088953888701106477399772914351356643676727835793002227241030175712239744614539622889467162581246621438621212895478446950790501051613817376593692997180115371080257394910817431173012862102832253014256296832102176249380526453626342009244219673300430431525752512979204306619530260707265484991086637128521059525165044888069305112791035405158121093574100414827324590694818717703282704097799684587976794433929178699731391266493225307490031787933196155447159138001202029162441336994196833088268709549755641064652832607754958009234006251465351247080423978637644702783061773100816135892338697650768984275959220043430281719220818526745401447558004809493157954468268133507570968010643090173325214115983752517174518956180942266527233230091416975939229341495262290949945764566433794063621888732133359884672176362965252007969082853620833020178270534092973057941322916475013818000597511378268806683876110317240619337247668256867152615849323152339579865054869120442187456939641796519919725876671451340249519459468335857193520896682652667736369298338531292493060550345561958480665441225384662113684717768797304567810849647676815600828297666135745601150799922276803530426614004550589944247268214042060421549013598275830424228501554112182047667303813975851945298609519164410063710109244912783154248439049400976647154651605412360506651023122771490447330681272225795930983445591176869385859900452473713813158199115177242499603584626543827209051656771664683562198927784017410552681220389803801482702518286713540164591996273217795243756544786221751272047602348972824410563173743292456542514472717868813727994348549142627186868149342586932850671954753698799972614750508127287039060586289988523599882314635926091464240912753571871258351846794813805537356671469885402287932487525161497522386464340799187363975713526124459852668174764408068520376282040130881709182902306360305624940968547545455792871928236679534782025403591525558249004111357428761302238890083839787996492832186922069902923858030468190349573113919251296625974081665631837943574510305813704889632916147414011834830724742447611618642986144517781264377757984555753093838186429198295098660717600218738446779792651637654697175911576610304446525780877601731400562354457805021137299341687894518893192497161321044605974100630886076402781010078592845293364625555270188678794999585141458862358259997273564479580244759647614565070108136787096185047994797276324447783578138762254345776265095613810875569276632487796301204549071852877862474403935690526755071845591562497925736339766574375826732035602547503154317015612582968918430422112649161354864523861032173306249678630376307507202824748096819255970807612265860922625890591302069972894099872840476503119304610694989313351751969533347047838783674032519325126470678240825591587779014664668428207308970764784932627968965653847571429751301916580680410425528404435654488332616998647504039705981083247461182436820200165944245223760043388503745756584840354484580605432521410952134012626370755251380563510768714982525432550459790658122770240798545670734586639249506841470737095191905258063361488097682920665840423400870627873373922355313842178571500972256268035295375163506907328482615370410803826955459603073715330391436141964136271543741698315788137329653864795791462123363954915010128515102284086501265635438447646234238912659641592230643539103052505063284478949342973710569932075612141152068340872267928163016456837504186797541127721817311478347825795289637657574687850066313577563576378561567695696553640834418965641224565283110787555927040593451310481324884827379563903408635077885624555615586733919644162526798637032050478396266178241992961320320444979330986074921761766872078678595013161908571419172641173929224069127661435938100478631446908182056977377997591581548094523170539593382645262267647184025889471296573328181238730484530579357850519616646479114415279886558518498672710546918547605098281184988545126108997471855720974676107632230566396130440037388234659170252765506844541763970726625877790922043668936948886641511801040256139131847424679231202918222186309622150563203407298621100876879386116677267701745744439331807063113430759278379920047134624152230787487198138813363737851313341824361841629960970516978819345172498385440809953146156988195079364345463887093912820941638426213166650861125785603628143542627427890209434301776350721061725512781428807331286077784007109216829765000120073128594911427743311747015717764858273020471737933294454548937472242892049762618664774925841870865268215689246190428535347624261653111183561736095504147056541609823155749566389848706403939887129782726475769836190678358533709001686913974859933719675535500907280232677129525005745540014095336868637098706373164143558117284968582849980985413403350046130477387098767324082063704388323503996382925921220101662656286528683776444522627036109943254408557385121664517271720785006539154464463319888948611788068136784015402826256085379843237475648215719632474511604070448435372760022178578161224908143257607554126972844211229334334723832082472567590911107769676974880094290148109371188325588977129686303627225951875339054692132948520229070805405429779272586869331060237024799018426271211150633309041727408129414626555568053673008759503701700540823874987770533967033266223350224060065392120590026207053914118879395398214483209242196460880354577839834333245518863403640774437719924920163157838237798540195996998313359310711226172583525891805825524361847956880624911871503667919917397155647066141845864401987946741034559840937042373126549628029333202818145961065535476579807660267079439418629356451924685109295300305093399584756972933336979071115297023120587611180536230745954233226562583557121866967960354127539012889174915846653899729453140036537894834181435315419389804123823439419260144278122827905669497374750811846242138800948633716022582432375630550938414306277776409523749664576435905446876107833317836831345797349834126025850799848226837796565080257313680835352908439054064875241116262136608578986967902439621669274792767075878326484184720426729849934537602270772178048045169384775147206532590919150047292554274343484455301281716270984872386934440392601580412594538314139199853784592967946076847493348383983919394421768469171528250169227482953381272371007818066716951296558206808876290425409811570878582555993319283436948119096812584974479219254113964790056785627014338504204676058901806617429128762572893633803578946153788840259614306198457782128709961694285767599189065683836614917202200724358920606150977041674418710006874771880059543135263249819279113193295097228282247033077932689827478804663023331946685651280410047738003897383871953049596205877186824962740030197511197376250324717521993130035365838790097564161088528328397878769244974748188938769141130405282204904627555362443650598978818139770972265000981619476776015724259303877282612390087912477154644833739416768251020078431820554725770411175656755041775712214715031302524635039963566352182038679888674224262878675332484662766750344810953253322743807668789039339628601489834779918561641221969000894998146407748198339462820406185908154538657110336610453928909059799701303407132039068356166001309398318540385635171689825182187768297428723991346982634252213755475614105230731902127812114574686527151414880502579666570571445581675841168458645293040092378657783815293092988347125315901168471192127355706514055858298122240471014398349827746367561758309630127064237370681293408204586476804682012190267548618953400044008630865540778297710827028018773924875267488124823872195224570471627852872088321808196478148569060506097675011319066754255338926149346940713360614029532522562551510021796408708775442930695032332182930116432768208744724761117256048637986860849775139918371763837069712867374028003484468666586035525354003990798250308820245080007517605937092172035161275122392457756101759770889176816032633763968887514961494189072329443190817789356615312699188618666629536998127989355490508303578126764398488436820427706577025906191315640221114433914443657765459741952824588309679036869682439830579667847277640686690958739023996831700643389190101865715940207269778577044810544622957352035860865895829182281195773642718079919559027519711615965487608205017818540757277907120845879122141692374563391029417836446515454153846044643576773051453871494740815628664582915049500485111803443116643990885695850175302182608720647709261373130215109741024268908712894172305297705197770662258015188369650099778542795055377359031797430501319723938146934559790083353790150368840999476247983611488198982491770804041518391309523362666778391495404023615905466252360891871490914253955299165385219187515438741801001365480974218061221859559829631301031585472674853818959187150218653340035667834922524363095128522449284076730742584893989981888254988524264333908306125995509944783313554176427484385215222724051543369064389161536919549960769665335945405908979553920518716120608122483213497982287432229480111051797895536667096835737158274437744061332116091265609727314803509848463274227299087919115764365990009043993425331086507807942912041348501585726669145738517986534192872577410660896793589162421871144737670402141313094335718391985108409011309159991202544378340861916127469175797349982100786002331451055345967669917689004883999555462844418052718282914522562813403348410311277614821321304968061038947430139470704635420695040888529945783099474612019250119912367658788101305078434694610146345816070474983871322432040657583434952978253904505072339473739795448987329865624545961473258846092732673525881050699294357214774177150521661330797617877856641855699853124631609329960549907730331477228027814561811056405779618441112457736606799971986055453857746196730561535009093299950204869409039606325706168905920410912410493730294830818470577872453150472773602797896453597895943821066515817471460136240579056863683702975166531674996863907621717528700360041028646940820437464740737738868888350148238817948775790478244465572840701907313455478871372047921736486382498784946523217513070302741383302689916646418118877378849268300584301122212220351464260634563546539188657906991899142240785267817934970283886966755403271287289643197322184138015187178381312015920318427622377151433877251905327136692356118034080349093124537139406352522121099923481732167533934256871602278480182295806955549926014921647544668015076334246363119361151272695430046227595901045984400625956602113342984737364746248094054421506135113755538329975163536670148682197250150802447841530189073246228918560412894606275134057412372621487054468411527979012153263826426257894567975510958939253713743753722147759208399388773387400007900452215557555253098967934100194461183705412435295516771763831967389062556437864688899108861218321379108311554269391832853646312979411735030315784060473676861194046592930459495647813250462313274037851529397122008992569647183851156565981542814698803147824719482393448011753580478659780246445330905313819555910082781762089820626699672924781013872063169605271007063525234004396284576959042261902846648180038612525061687003996505469075714938740704591368556173188196947354321636676759672111928319559040519352076151913433072000689794952503767368721687934241741668245493872049252942895913798708324654274154898247282823513074134327694055961027438383882846402119665948587282776391732319770140360760878903789715794933405205577310482477083350186461383627515869520577787268330333297081375153117008476351820824472229358952338483860472598036023524691594376767379614630221413302337640545569319678232222320101379427883545401786073469932328718070392005487502671200599741489945615990128552915709292585787572257551806667930003631282345601061992585844078957539827793118374878830142685534640049843528146724134163355375760113392748975068867271600206156372124702322831410345765584316023654668027907396676711903764096011807935281580715329166426315284813923726756011690176355878873947229023136744206259727859086684081197932199480186722543997489721477365342519302824708524686977497445238552919414119344945992041035969468147565640951487760167284820127971888418439188916339793356381767309493980601461838528841050282587749672853386940411209578412725121741175489966673608830443377255960851157662709058262470498508015347829555526045394026458223289112454361243173670592658605042514250880108409425622001272304336350214284489553692459751262702814061443853095883819127523809778081334992641964095195200462598085913483837035775789384384007585545100399318907082527084695181593844031068211785541245748830185845993423696648879510161620064604961182802178255195854347740146992136399149974286272532363621269467723281381355478728515232299161385448421926940236174017136287555593657006596093966318601527363317560780860991312002462835508338997363709390979305995133133715292924732760541060437746242425534592547639105760351356681789269667251588069742590127846729852935376412958651125748267388966971226040517542475264704070988559309545663695891545425749258861153417494107656820144865705306478265748443939382333528039241673022573028244364779388377377025495201504020769803069642721608117218085720436662053721323401924938054330497334802335728866520617533031633628931441154525513511223326966958491034460337675761914068995576896380961994481443309901916812436491208701608900805372750003692601952901409881632067080642152932667186860768951911482234557733869576317204570416666016493671785964006942592586939030710691556338167005417847265278382828917694106346278374138970956261285004718434215127742215285336546301395533235000147555469911428153520223169967376628326050629087993713813287042991856564928400988691214609824982632611968845180811954696878367944130184024003181956170551402426219610241349740371543009651808828495419806134815237834018153848278340171538016948524630090491833442615662355375601730815019894242914743845660409755173520074735243294945787236954057443534889101234513168849379559911074459277856749000376617496723713567823380542951777360742140927762855464620055889676986464272659473072259077939498776251344046758832444076640606431050615468509883344006122717514466916654829460674695011393023275344642538753118223919484636738986857643359382048729616795335072530021695646903551150446384329926059082116983238626768911994577316627554541784310956624916176456306760870075762115147288119738764164757503691128420169400778531480671696758446203995606190361318336337057212867830709950415271796684927110422796577519542898334487006906299110768480404985071594671774173535777058122602064361726169975530723320699425123816058225626050757652378768491190675516284605447955005522782597063770514345592001636159548504700761734414262546411262262473972210746904004657034121917230623688519554165154410645101708506965034599914988262539581425303449502905239469970649396824246500262075687608906116973935542280333088112972961635636392543921831971567812326232061336985916954528771353464056448115547188566550257972158110288406146758222580737650505595232807339929455940752828747704609469536158969156327628592846069199655030418863045906344341355466514475425353106373699017060592777306039700353249889751180609009456281082879469601923390024968289785842067155785364127304484634763482817202387699005783967390301902556534897424035824094731544256035986179766139841212101906923551096596895755104200506550521987974452568802813555611105169052567938144172616150516513960289870915314901683985358752917701283293180108079021425611755906123735261497861061827181922379919039535134366988316884585804762808230985470895807240443464450366139674733576103164273309794442282116518182456431012061153275671503589015198576416520902006508680025486794175719959365037147582884584878734405550786004857642703778651321697838556621133826732098454131803448701498964874515795587978121029965354044382264289390504542938496846261437607814614486374865454324128309265170962938643276214506764284871447337157467605882296629124380403897315126419013564979494723398875072908730802446169511574663826040977287408273290215390206613470641924282627361561599006785794861530983807999525377690390973163356894096157363069432733338231961095718941907095713059631526331073104956245707780213200197099729239913601541160564161906777376035526614718128726285720446364368475414142335461974616173071707889218410944563915491725118382793520145211810147620627637005280185338892479526385752372848601654030893857867418769156412243549051508658266822023254067173919623779522585087291175200541128508019718404269787225386458144112058080847437820998686146583188493029024876970587940212536106013970759548268570225875356316232391592118586783219575923889792452645541743705013668627482211417959236107428879290134996886312995519052239057070528824775245268330539624629058792357808059451317237289565076984391347446029360326917251669736722767395479176442556312229757208024181995508149572815802151540947049145016604596995577329464961626437410272071573753593282764752239141961303276729372350652500447372712618732469407867349201235089547102594834035823032476636218297513219663136552454073516525265504588507252966458810778909175479044333996941145330363288508602762479776242414383098284869930148848341727808824258328960265793354080259640285740968966030479394159753883065424892703943718790567903626926084917047123444910587853437194247287147492746810015849736878112010764605350633044926819917107912163881076975940542737937648857931822982816387910330034986778843339182315492948859722409720487397878358354016986303142032925999264225165399636810064394436326009180287168015126004909788406824858079558735884539816959874232379242396757814953484999472410460857385016255307801212391692520162559710046395618045013806342769856945301991755361266947928846591413767673350020596997991202871731892813101843352563163098560299575583172861282362160079402749973510905940093087855093964187136149379371036838528441343243190086551917250083143376581325970435759497413945288736398467405516532209673074427514852920757453445800111330230260135102370968055441639539647806137273040565736478228376282010924806957768245342567990238230855743497265572934796173244951528932035942262271578525667039461169535642255449073723036600852985714184022308676469129424745067738031537359232624111273662770265141494173087970870184183908897168116412624508624640000700050060407753630827760426326165624718075089155072821445580580851587712336500182634813580882926650529098573937349279523371435361790978843043830367643759155097560738702022342083667608166594870218709273466719081926874762482002300973116845273925607660035016654706433963236498688585567272100271147252356128778807261260816080760873109861365954749477649681016040065750175079273020024322756650600479872407518949003570465962631647204996507466866803412062383919463096627495737255604394180201953589272832319387823047090472536443117785194793573460438907080144173901544907832970669540360338858566503983585152541774124798571499568204826485164658534891313482733514301780200118852866698527415705259801199008865035387641947683349078720280397116455885489968477263111569001417917066156869528818944030583393307966439072586208004500883531759067322855708606806848524155634788197046433288168268128858590205492342709551785840962351575770724270843721021416593314918197126562562297884632316703908471827788262761332915902885759855960641151752677652322569828152950921245339219822638078126128830624556542703114390882261154002602958924421549732039592700740506032000306890740919156500086535977251651970457301455130579699757938477916097714340318347457731138558877054241785090511594541262292365823087892826850566290390918864155213890666649924617899478673721132834442726868638511464066595629648746784683514423452292816590921605279398977125940162331047240445959757727565961875505927006092878351960020276083137334076888522755150667893856714223925071532303779899544079397230934836146680047918582361881351345570477302352706827425483169961130076971648139967942637297973400076496423285189531740838637219024778524702922551970912016459305178653302892489047592314095734121292623061585929107526538637805325278009443568339058627311211800931498316914735729170851313010753626400309302629878097672511658274862328968575410524171334839638133953713822629888934790471652373627146829033147690819513646501510941756732274618296865166351638486750021839600038276734112606748011867727215043147107673053409883894998452013837597183465617198802997976317418710793619998835775511907770769609466703481131248030368274670280171881147319783809782071063852597397607989073764259637058710726078737760558066099182974419718295239746170510133996804877728944526057631559969837237009007114686500812930841299603167342715400955695282858269796977440652307108320999215613873694345705514194468380539712161384219151195588149017928736890589839500941688538700193804199001873700942919216129408096977837275581206364667533949855907953272906830746555149823948617635111654903538287524867289092323945999538606412003192571095470450496726109627257903268533443127524576180021356945357396348413568779727003587783113756300348576023928207297507675989704080047035660167060069026525361433867094769442424692093512421401864139442852923880884487935260446337241767804799973728885851987076343069689319916126497417617547552885837362043854209438772814063869452736365358080068610103287294467581973234262178271334696808332652144192875287359653472517466677707731497114861588328158686647803004734260259806425554210151808322941182817154432252242392767158958998140304666279526131195885563520420850523590511008496462730669952236702788897826647406309915059551969766132720605431703962238087726879924019926762076247113013330064998090909404173801269301007004258964351415153526602240362797061608596499266285972455862441433052233015452257284584334241639448421369510574195264850450611154067439451468912054193140177875908787927534455979297167145172716392590045488242814922702201872219430362150119949864880779062973499937781694102868394576959199164256633203640423341249688641001984272928375523397811506126305326671073483650288980518315387498050147316448447364308498450735899238116066782899717236683500378692804486872225729824767098653920055928037528815965572014963494401189981913178608775101781196009317519610712315767966321366273134702271505059785006839515636581495448664921948773719667311592095414507549362931237260041997441817763288111880973382499461680383785925589774992602661653973678980027556838304887700955655091110298016223671571541061785321759232835612747470651998413245030145106204965710080365203510845157021009389561174014631455036342441973980165417401423288126414217533258789741414352283888813415334803222225100724688541213089613546150860027150545247216618569877102590040677141172144019063310656330695303232824793732631923895720267988158309570660485202223577524904866918769113165660773686314190864528303576886822316581525123000269900776709648776049272780757212452053642540082079357379174930074489002720707512010051545552410052889870353570396883036476578901391144139214981295139059560489816477547849416188294797727665032959964283513501210102472019485070645801258549916712887893382507868623282810523886475122621751957597052407719405303979833680281891517547761323411249729362313400560594696565488574702538812012457037568337113308972058738895995140223167508401160348624401049675250408738682253949486626183795884195911151359495425137702677000563106931693610113153761878060568137353765656152749803007007297521871198374960583354648985247172274962494188437067010389234038066049555446641192847333644707331034469297275694606687623669235569158220640418811082680842569800781146818290724240017398790938241947164235224931287536227930877482578988589371547337527879402419357863034455914897519558274733184780710164018739789791182211919865868123078011461131222018765725795015536849769567880882847490752001456831145667622570438793399575573988750352792013587235587994841328437378599898236233421777546810217979566156455661018700809349355174546281971729637188576678624851845016334948889426292843485780649036327537451064631242212852819448946152366565072398064318712313700285298627853405442440072648980791216526676318529298062723836157062300303434948115339322506198609340396808012273827057291508765021250871686495598159819716155345195875920429602457028135500687298044749534346529055371218758264864987766307431107684525222773738408783133535275349511448873538811944013811011640552833499840666081004220645499056543620447325756692875161497106396587535318783167505014333440481306622669183889949474601692159747806752868775707117486042062498814941201192148016340399381824054169611305933150022298774734201453756940951321786433571532087871262339919630035774280339770589715389350945295799011773098551016768247717901682581385186805495411492258616144802805136389186702014641947464110684350429108127551571907381776904756848992226935147102176907392844554374429705328990692412357557606054000696661067185010898075801333640658682994179568335150811202334972372658264441185036633965604722322428164951597079036729057519972265736191223299392044193806456496411116326748943143486316713117689904292626955845827048572992778975795978939683160418734605375375654841506339019621505972981640295110956876047406783035892502497916287265598162664580130069801601278901703170291407538802811811024529704742283931460528145677243249298058536769700066462933554787835901287965722634773428197130471953763859641077978697852031953021948251267308816025376466591092464144795599698512729950853774389540408559125165413236537224747514668472361417166235828227110708826541585849596465865176847017274837701746739869839550872525021277349686992961450052256784723710429083974768041787784426822783963400124081432113541071128189595627623415072433133418066211292937295821401364781860119685386152076586489742960562661425263732594382756196840067723774452596643538799675047035737096614674618674236719389858416451932508678205701871973728378558751281833078425310255310541959187372391618395257047892832438336236408725615973128727398148556049854168015971698702628731567515182526849764957124100672650089934514794998905231296362561825641601762529725214002115898021466112099510650468183146658273425351948643357214888749512860329887177835970223073378113744893407531425563316082410808984254277735116278849694260833823235377850642450051183123627731743494368718289506780601349805948322439306237304918856270304397289204300845102517625608396046627400847533099731578673405577827047455340157190880401656099443312943877074230548377884761276534520852922004020099064430431165115272820907591129739207615627965345465817323482466394920789380870803555041674199067095405554203158951255686460495036092386857140148525393181257361194399391500967384023058778261219219145304048354860863068796804969778911947697622974293765573106610068554579495057187549076254573796725481129048160114400520386848197959731856146887765957253824728338457670796003169680946121509859378520929823329896476487284156536712143049031181301201018833756615429764565353511307769946981865715157954210821689096340695185489744235086832228492749425369866188904898896400169397216933103936787409468126313461293709972212278643051485660085845611171221387853227680316057005292815521466396065999682862078446084282849447406772859244161309168428116383717328097671877319129577870073861600220545647358885000234545290637153124310290679072765822051157580112780757323823840664846012117646760524293797770698983115493330638495439273925188876108859387804561881948559043404682479576836836640593308148361911457117784687359906756452246971023550532759991268315350038682784488473216879049103496360905279457537320320310517832670038317470516150563437779746904765876071779785718377227865080699774615377161805109780628889445757056395770202368764050160658460130009732066988404364985372277875944687618366750966956235472353885992240292410309541410123188051454247714456975843680650320612113589154748408042956982731764501890818284311180942815955690402683410126919694346414163837907826735891108469783494416650334561722001672947307300308754645758527472818066734783374403937534328424230864082815772824976120601652602562258358480603068475805926206928529208771451921284884721021827569518844868378455900411246470590799443551480822969501162016588597828302552768900001044096386926113232484986498288049433531913503954378622754178009286516844464464969938107161286651063487333544138895788780609291233331843095633551041759397691695740230439207414819626994757744173084721889704439344104575522630495216609880705649557297021050775863521806783344099573668416206349480057324461084805732048874775172868925056532337410405486184128911596197432375075012776912946420528746584182540573891323452970051140699029994990089367549114284782500459792564263201349198577514584739083204789062319294036190844263217031849427941300859561498759804047185711383228241456312459953474666836736995071401735125140543957848639475485012750196432200780416955794767315506468212601371022964578094577410832899688076457354112524206332804464407176798943451539661466326327225761206647039496532528938496374180159061668928997414438828112867622308479399695918915333525007528807859993245138750540615131320917254358775042920985475988660213393922478010995775097824099504695433871742677495415618731396615421695661628256155626646335043657831529609499641589424898189583240160956865485459198159343201169042511624823708591135340284218958174781907328170615678386102846699496219738661795816096494698892242359487040328976662627937255373730774340852536873244134413847563025190959556450978241711558754168260520852079331703241889921292380149629895606346494840184142604443003446895487384389011367279236299021876465559465325382718751312477286461485457689866305654521326808586010102389504899038977904698551917185809281505355909473618872286940495285876079896936249301187489961540446551541430271861578412294246872137068195197623033019896932398460398559059079352935524314105754527772994975929979669569358488392275238434758185996459964358819436957453936735287508139717276076870780703727181445961196339960903624211882106240311507834326651175543807148124976132751983247779536220883480498870662303759795426488456392938776868963376404715598560110826176214217164654742177507845376580691061174410026749905559086570382827516297708574367522121483695083922452263641635922692734302801867220019721487544323341289025220182639283709933868013187643731399224524768885974151402704105270952638049678965079929182214487331281390120733874650265887365760380925641147047810354448011659350277894404578768977633143852669286785060225718868116818249870980249767434109535430353044234451766902861027738844091321314217986414046763251485589640872957651358209750340444586346255577436051853351828624157802375528691010351311218411419864485398869230429073017704575385079029034832128221251333756939612696920637261998435496012309419825616445131347923542728456817933371911757346071689060961171191922784150052668737700864027398160183279304947977858916568744376445252519206267955222175450627188625409428173012135162861645712409533971644540633657396373716332607574122264723240291376125678052865008245678253967296965175138281884224566531862080742547737136933489030673650990216049203567452224306621512449816352319327236734916825709026258578091682347436319843594296882689088619711497798934932300531514307855490186161391926841834708807747838116955406584321153700617297081540195815204817000525809187381449983089551427182067392156332715259173084131770939348528672706346536471693354780501253406130153356571213891546018935285854052003645569125042213957910172538520568463618032604598565929421752520715266179813480181205431586527553258499878868645197702214581878519685627751888829330533819478418545411402107286634203442538973760090151060453199369522205578011681697049590096605535677295322442846857316853047039613806718190221544461230668356488001925117847118788295891620790308029075790684077053376209036584551967939287610380653556351506304763846029255161686888125811623301671372719803855383847285267439297388019028948269968527433811737139480436501712804390011995436348450409706327945108388825452009639313325022510255384354075739003187515211420700941084147141414049212407908251231147069571981649359236889783140805284246678768746772343630604933307099654188086721503942926880637029256097511807019190932501274959843362544727367170921543657644993654728351750696595494284666049298680849513548325219367976410363086189361073464419193456791929307984063567618620426001957036255912051318719345820465471366817260856368523890093934068820197701704825671356552217393714144308442194889128758449471305034968081071510412748194738690984203096808251516146150710418640165373981926838321837307883072951425535850723849511214976770728966927989193692003959181879959071461516643869192664977425738608368050403408733224907690426291783635963225526563791831855966438667251000590354165245330607399603166412412581844509930985905001801421461897760886750150046560723709804497623156751070939362085384475491541455398764513932151244317277482527997950513856341395136667718670859225075982734875367645917891960813687051709764247335368702275250004346060757342837107175548223358081960910223464640102551093682140967130455907819277390116797769150144129602035807434534203765626511238856882651657366514224030763631467909259549536945083456595344594696816802172752184611986238159940663271254829309635779096033895283223274456783907548387945880998114598196707210442604649604195395266650130947408308581280687749996799886267184826510734048811129833886366277115640165538909162395419246545799010950186821044083743241004212562643119590621669495583748977806863893192237599375891646970072074453016131905829842624960469542109299520718885981533356792147415571123859916125180920483201857182255194201498165760273797312589016935884508772953805705924013392078416785163251185818910386005811376701997700917186531152048844491299663795007641568090408457819869951504633768700370705929727584800701349271614358141440723986867630886170720919046293125366841312528049007741604623819471346988506968229630188758426459647686506725556265067181996023633314982514251328818309283209229180411721428646356167258708548262045114917786877582411639863956692402511474518958788710722485740984775229437551061467547329287604528755532231262533296374248721044570406782121132207675219865182432083910053961189246544711471613953621460856308456607921150486378192113884913791120608496465196294897736924361165804665311444799111163811950751284930894658504008887257335353621770349550411312302790712296700880023617833464185425955305503776352873494993071290223218035109830761850452268354927005610529002472150498478914935508718357102404723018564845546923543339976210870061212844066142807113586052895676340068762041126269682593989888375686942627795009948924319404652332654046234112234219678522242160882303285662772242667622356893210972664648164377537149018879754452416472943677439458650064506381610002951195946335651583332201046685571649933963891476708490245483739945520302525002012188223757745581550244877304256732367253723816383903579875428255320086636123027672462079642228289431371488935816821236320544485849996749672542753788395300376326263541310353847456134167564193596820469301397777012605899008526359063043598337693422020773521379156267949116533446056949845008415199567326782460431612161842694403062470443586286506674734402289817541056716267042621340762388976740524772281452080064203193102661219795444437691299348139440287544207563428715211911375485412927084179432111663390498677871067326798640650399059242116236071188521743556532337342841434826305721861403161999330544096523614599838675903997620325034422738989641959872674759386301067108223150536878714468515362922444818922942326160093804214740197205695076245531789103462857735108307490077327070285551785112721085340160175728408019163763327401420230262216864660645463828071284368570777847586243530369218286968983352623418049164763450778173553512372533996787225081134857360475407725253061065923733308021476272871093012099875852470973092205141733637053961715919635628835933638820691140502712563055427954951224340908998856622680321789850958381584816120431476700233410063933971494334877794908317849231524301958761699930407879852110457352511066805993389791190817342831309996450476426417973560131170522009605640798325881037687355782591068778230424974553805439920821753172464457088267739339141451811631472354315787207836454452206728302609397172024110850342671368345220101636405454406203030977202904391460112043129997857255353979079806542735651579092063194528233497146815328898989583466961164707109996711743159318958354501016716520557407691641397437000537448889355288734276717926505487400256100889392664829650539034238430172619969818168221747807707986075486039373614524485951902097549210342578859970582185974148063770402306401562366287136981676351179289193178243668342902780664045501323839659030635709093172502682189007489463786655378317369708833764183544569743943925965887288899840571228241852000187029129093059779620123842689292287043251385951559968804640619045788444262793457048196664129694318616679014452068327555725106344970531205267993854173046985833517245977450601055067728649417773655427982968953179280667892718573165833870790947411358043695444345497221730727706642736978178183169735389867150612386578860698527546726422608243939269636692720507598619016639727354735071836689179741059114373250567113052616626397421571947058670290488080752793906873521016111881466508848281233990290111963542307140502331360792031998584375684616572671156420266355121134194849596228300444934744343278422938043722965501884229531634569073689760420244156543831540164677384005191805016381216620857791738061500424464272858433627469195544743113998146731026069029776488283062178934862104636190191287166202354687375539274753296366329054631393885651196562500364214821399764087374168487666573285164068266835753379283904398043886666513118506594951478460575153740983815611573648436947839319887335426240133565211314640488709422270182222055356166093550973763211502564552682758475780972321141947698320279914200894050477226715034750321521289241417234850639400940102131129333150219814832996762350138802063228547152573539219326869705155028330127971951427514545531854859374174985259405885545340682505849254115556221130404009606800334478186754166679714648865730271501966587471719437915247352728127071631222648576588072740319039104428115762555359138164449029107319283190912818753032838653933694425563082526135431522166016236291510935274733162643881822039506834619733550324525283045317264663961889858094319245291138478588172039710383274384998224358766717790840240241817575132228296493066648454355785777725405528538901060129291298115913255973144757771150615103951215259162686299114524529667409586387073179885649196487015088460384166513899161159967698030900049015681817006927682189111453174420033650246629078595572613955836932251427516081047566433376689184482407439209517445080343834661539301033443193768438247159788365365394258536008668300466591055586154029702175011065290146741192345048100479535131045553101883219932376487592797211695554500180970573778495054216712608015807821275410720559943598593846368392920746945447314172122236040921945548406673686966152729577210242869013601525364420948500272698106373069805086386580930660706795648144541811113543584351291739790003078408830376815041080686887598263125399306516376883754666397091222302800517769281360778594323441479485706643388485884693731159917789540218740150458996283273873334992084495840891659138114126055290808241401630775335466186940302012111302305434834627883143728708029824363891528060808800514092324585725768745505650798084755510660072135336468979868747875407926478056846007809096295855180922705179519148754257296854854771351086988655827534234080269250351998396021156872763959379194511764218010565026353678357126234898757339344619465261932456864270996068290131848279995371272734390251202680051053341704514150960972040779210990601189992085318990697235503491657247667072557363668678324698634203901181032369189924655643943808877605898239005746500351211892824814057707179935522881448906585582505285519765975379991294908104806553246175892255701947952010145874832349601464493591695312495464670001277151014090579025796838326780462098952438483106675954547633877785486490469378739541213547887167262471433250710755881422813400991484427411753260848281390985203699040433402267980144981042969175862683422360181626195184795553355232574607331032153787975650744618255109878395134889643692101185158759060262625365553777028682528524896725615781508396226889493493796218154320685083986673527136221059579244019603436104683417627932814513470617373125751851275899124151661658912931247492297554213518814396021684603119154889768780412524273284460877294592201213057760115864372397836497019191910920402570352388950909399201019855206258795779760770386027876400212968425830580731207066661934152028453960946429723353619446754643902657930696644660009557655418452879739328579112740262036359506891499938296809801958541961664057989464516577003687175031050769865691772998461915851549699686004888978821445831316165689834730330845961181401051482776896968219967766710374035148276461027785386594870190124848978848568814998809901110309554539162997491475696412185789139724053049644442757260193772480448738558201885307538570605736371900362468743586953661547303148794260092771247793789816518372543558587677700780696515217402917670939526292547336745857114427122972109372223184680234913313360717815222146051947412300077643459896012779411154440403034054674052848727955104200531882716003424320141363176003022964115612208994821928481518046959826833717184838614139692611091994065273740025752385447926135703196920355624976810480058358274138496195767331154799449466716794364598140368168117014016112798706880487837749826702543805830163448924172653613453670037228009559626562285874946951130225047303549509560540094881448429993835776103382257584829877816187279305290434249280347633442402226801354046031986869106820095675806256647677333442291869290825253288283626740274560172218766897142816617732429755406638522518198940990460327630930775466312998945522381884369602662001306107988024611838205150925205423213184566229427342797784361469449637114819336451838643867966857076014262053846456419042456967601696006772727242476704337879739325909190182142942729274612688086529377321593836591308097930140519591439395204703082157737996199021934507958539131439524079131688803914915715290161691306321688717044800024003472123784862409896969005359038180579367526866344926861939551462828010011511081777894558561747213136679865553418282212879363478965193319841576771822529320861025401159960204376187102763884952043154450777190556402391491929520512360809076570413863943906129143524982569442578884066821435383140672292370125279150798357717375239803105213230740634020952332397287348957187861673748527474119665027037042049596467940586862907434523686662371973714500632574238797913533323843710298756417231924852539141328117554842991846490190714439644358708793570712729547895210155232212253639903475907798978952469402629339052767540469377991342161113433032717215783097014235712150239385952080107940136509876955838203834662679291845547138558735043559999628116110491491593853642797569767209772731482142457838779383719655371261400528888965609373087873261912640963607496203684235160491700252492413084518426828409588655049194357325497528081538459572393474496215974520259060182040774436385548522150841732254644534674108214267099691158012843894149671574353420330157381205312671071997426897491035480074078474257748795063822714248254480661475189029529978255314341539339616216965935836943062386998462597794130516861035287951661934111265468760603793876640290169475180384560736551668716678578042744511002591555406028625078047557275245449682187149721566946540792398235688856425776317719880284268579390907826910720748900331574740916177168032664297555061713707798520996656797218614771831561181346767947621424945001183278205867763885852991074260937130233394907011425523910926021743704468508169080491168583407841771856514125337161790412816713741337296505582287684824865678446621592005175386075699314390866731228321459806116513443430255839120148670785020472116919168078431660216302557572321239575222522963904169108607183670923588922595564163506894847200674927420357307475725281805148483554400591689780290037606669939151956640172038317045883199084746395868064979803869027590438344202646678275549214817583658149235871854973771918760811846270780967295064606498878875031963101915134918126284335294878774744948118340177238671337403692270115806464625689872737906466013769385316162946540991406763528009139031669195847341415255850181203813514503945420103281758715987025724697369211468011025100413083069572156369672033003404836244757981642607644471081206308221265580164229435268989775095307163227951459874435664718220340613618390881764940682834986883960946012735982583833443309466037155537962754607210616362520636678721528405094120613702793665688608511436551961626895018651576579531093062405264169922624404010973889246624933823046877905685700183156338131571181580050121323577774624303470536338145163597067646505969795499560553301303638946149642487491724975527754670605915929866522408285160980698889504589025584874418957619213757204068395895558060144948519385526161736126818543253671315202074642035540066857614529650398066866424756488093093229474603820078730065709535611158319935315381003027436646103909477790036761394112430465996212104779760470787601558292015008529541288975342672566097862127159888871736798256661713421150867313901183034070136586327502967303099400984296648402192593157712857039939711029574933820378987488026701137432155612231339831451396196672433577765353151844412622901093547928654655026483287860811236511735973906004003219596166292767816510322816277537873699791522042514224648659702179674918985703447515296178920843320059635815195571104338952139244393091229971490781039332633533359040444613108655042780378535778140848775368426072728804690285977864250112374113935829147946567681937615954506164319188866283621982749310018007471640920233364543095093581845443597911435592548966013060450922741369376065873427826591488624922816104914171578775661586723539786892271822107039674770601771330929015055148843113460171718945517892349396146019403286524186811455231792287436447424118220490482782485120732275001581244862792149585925860974077260446524207466748099843109057324645652005322886643461452931532610625393211560741884116483918077855396050249241341925125257241466436007703898530656157555623223884339701987918845635640459369290090190680250806371067439647148581960371086371042396707438675072528212542255207553097451151793956086790708516229850637320887760966856010324568578647832877876022610481206613787738492064178263449369092062799247033335049450436516166062091204405607872548626599501148836200424022364982165137049682643043825758271721810143701936258422606822617776688489713049480148026202657277851668488595475262914979878268789750870546608280222436972627156717645521648136496718364511946691900869833495197727877918009371716109599762891926984760771826916381429904617766794983043295954371267303006919644246586086053755020310214040447927487254828147022688111627279433981310629047110570958583168862328678946170874308851939056489121579111548733443309320729584924480923860104057874129053225245279370161648717769690046660867774151462855408733965242136211578255362054435245373261641554485061213240726054473613606388908169589478462308754512536660942447988862985030892276869763262268958400389982478554664479297802110111753628052903140566861539767831045379405372662979408856786536262328988683008913362723552394705633137700623666380804635410647921516192378004446381429937159722484055118058148082644222074012175091066979844019400060318036613500329881115804608631220585141739402925560322131945881973253916078409419323916016706976697092432998809512368420375482247317441841297788189847728541231032983474924402954398374125731605685574766431464037367854715672402313295081409573037027555621089932741526983723694967375778988116498591642367140513615046014798609980692706294629850228165735616862516966986657807496735510500465883695323905547100416409974880090950711388145558114020868958044976912589092572930890785860665440591250604643246169317636019061676549345086154619361951661762970317353297078918579035684056629504431714102819553729737837673053092564217536572872431069346268580202867231298892397450600652501512224476109146356246722776967528009133861255147910689489032962942949130368258012937254740682235619763055989748613712170061077920317118342783807975526543147149581677361836660181022500150397806935960347241276545137487820470943536532720149516684334015790157181483044516642261470429221283130891440275608434105468454462292240393313191712085905017136956482956063474248623710549521572103485753057062818214049549241073941511762940863859013366687784711946590202881889642969177454705207412790448325888600380721037260867082899978231347673831277238859752202369939629430842822195325173356169703150826027612883381576996875115080172984530949331689682362818423479354923352654580996453854909352737863347183376653188947317499129969853252005563966686145116623179166815718213495832523439964245956194636353391769962075517684376160259439955011366160355383466383675002514924739613176058093714114985362001747437245951046515116949581522390285378075180428524749062784043312848122605873220228376944487764929776081303189098381183137244271065287841110189068867891525980892880451899090891621957488074367724803211691355958611372431397338013548398689819790480938136142962254765587735003326452941791885739867201815827003482790023787395415209013343315259300824089833033207823603997367084417795475016024800534572840143204728238349350348427914091098152385048200921638632542483339312683379156404077129374965698808365047685671331248662642681420202235362440655198263909896205484463686885453567094111809544876374565601155261355109190795625754147198291987109839632978673972004059871769648723942724735713704860034628283167905529911153234672365735810126728083945650276700837853660535974980485015998846503071223093505655159820893498972751266733517749681019132988987139928182119740003441465533068993271432997352651453532390492588613581105370107877199695801416199266601841445773270654775418254290144042275576076598394003121903307989969248431205238170841655716219885932940941102042702526055635027738844140659553300592455897811469642330485658792700071001024597349541286725860338810735560603104609433362669880677560609148966460263669605395002519484140874457579635928961975888579681913525524799708883912000104820411368113623794884929998322628415226999252066871619399308473588205022800612875745844092270852303855473111785432458641941337358768357295294357966532568888596230144727784320592774456929016080360181827386676448558695594415559105079712048733834166533581335755232680420941547843654220505889196305402620132276616725374271938177390645147132054274826126601353163256382442268401414045068461870683921802600278585325564449294442464215834812741303077029656321991695040714515725211393953717699349262949619361584150836934222767012723631559816956502051468997282421166344407175288911509705880985879060303347711112993557378737049714741643363188680477064153695859748186744442352277163233743562145156727268334632008336944554760473006997380956813798788526422720159476686065734929785271628769047243267468321085453862929831580727158204012590111927337860076209050866172255074298308822508447344590985974620427646600881886239078495625089964045021406084631369818914673427000735474285198847571927753833633517715953984289296435039347395203990763014371765130273385874957822366685671515036481480150461849743779766144139336710770457655910378648681331122211378396511755442629533221674516074938792735204725552303441274864484691650470281086011943398584041457338846128305562679547610563820726776661158874357333909623638903601529034303978795473851403875243625635568079184466953726631733132794362924841131238918554363733564816625138619285905261738418786097663386105517093321460755269012145123269150569635967348675591987427369704435329066731673138593201072571120188189053629583942932115097420142314151047317501825190627564906828775829193133909196987252688419831861553652511033875463329668131699530389687114356531237669470478635033533217537509238885306825314456482593521159098709508353573609021856127295173038659534016105956475714238763163656134980936095672801487668393558766610566209721215582585689841057536803343559529020292166328334208603779343298140233638421296014356770331421071454566823153241867163136050685031422710202749976554480533494774142869160274505421013130855508928162045929685243613363603255685896014043944173014795223524834058899351899726496504349139595315057056066689637673663957738793818151723901713005380953148301665058863036929785499712369964328581645994308990614462049800979870302365333103156357856166595068009888645873895684620322365446959163705741481489668414696768281300438598128477186370328329121364299252553294252641477939612104167616404706486236213140177688323361171736242889767955128406792983375385237614220302114419593146751964598404978537849613687126044947711283157635450596627488371304575725610222187858096984656973823260422215758415593516316490904234555916184227616246348117556564896532426586571811856093509933941149685257297092164614313179669899651863099946932514217611431905378933423823210283029141513984285393114591671652820809637539961794891205112374696055445950908599298856648670534942442952973627107890758993354050468622539766874325565131531796176259902018506269462083586968670788691223713938328058052634141627398713822181578458130361261897563602704712964376643028804373240266096050408387146132005194471831140062898376843455606434686164130758762069948198650836303572545591003747053739665640633763199166954734067351932383565689193840023597874543847987744996786233325403937186802030291965569714194291570417086452478897399257083846669577145596929235022850896405126361643989981314869128518614079734164975105862548677698138321563949043701008051803135530177154174992784798737788864249409694874334189654840343099671785725054614041977761938962134812094823801553996781743363080914494289141897729709191496212361992509860508420105546727921006059803828564654746098246567130104754032684145765725321508884713382207814398138050979705364128944574442510897859306125314374229649589343780481875007990970309848083631581665402272369574451390006033232400751665819473793003422659921865635078935063622695977647190814275981573749775277385548699340152620885356935826989560158379964919803028960102252922457518686661954891633130755521347174279457990712272549280333540027449634887641128401739436611146535653853676923252216175315073023091060463344930765545699525838685415474663426610553689679786017671117632545177752739377130788960971510889896600971419231608726055851430169855385347066621937423020842169379909356824520236787259204368075147915606330396166935837465789974319911116307546122754007497025081621983647627887216485415950710979397546026875797965462182531691104243596384317176677568142577916536382958843321773991223148296455286239087221048790456086121763110580808460483288335520323667957424654541305502589906086311280478490975276547024471668049109004551224900535818173397393829688090883145277005106650280963096287135682144929158244082267494804964471726534147962142184272907813421293579359715795544780614061257364351412332312042786480016705235645901829356693258355642441053177844721509270866902073645386553157859227305203581998020992882606815757002456936417439632701338717737239877217694119271671710264352204231382739163562905597817923484672270642364959878231752461285129688172041294176938047217491795989284610674416950356541821449996271059294749674821731787873744100773061765955563571156295752003114473723606499796520301592266794604990860921579376969576641457455099443751199340112895329908242043479011145628752058917984903392498678951283061694475064776346671992577781145190595308785481800310600093999105035225644465548922035372191556540678833779537702445297253796732458479732737077736411323712853621438171651821591790725753160638235250631825309401114591563676413786077313701803035555276924282251208535922768534682435069965543976007377384999391212022880037293552329766786626758632872959341080600331781180568097032758984779119632011645420009441168672783037652993231728505008212646412411213613074653979764791731955525082379328765667698020189046597424628641333386017269401742795661258246795794109233510112170230388697519597147802796742212899189536788211356975767491310435448039623485034595709035035030134496031639663728183439052487828686509932167562944110738070404545259472005875464901440581218747950303272674703744860041133009756256642965391550804848631811727637823244647104216636009786603757872533551127635534576207917773127555640571938035472768676105871832205453173781662280691489476604890392025583504701950520832123700771631464477211630545570565856950934629826727094744766448359035615695456398089871073764640440711095140019618859258818359173379880540541800129276861405656096129051280930481341053661579397347224831860265371411157439161686469603672930230325786371379840343240448216769024141150838090629110142606871612651684835914003962544400340485484472682976827851393977483820548098426140201706122027698931792278141176627391426449764638783879594987004300151029468905379165918889334144582851525463333462902289916869063832946908855110816991420597871333604214705577703105464580709558976827909103498807472402189302803984148509896547719558333866001754985810996015634704629866605170747219930282626821118285737162314538539142969327571966333401379352212728248201254975548142052241335392849871638378283309617332163262040364580877255826984965859936963108508307514663196528377381149391359379442157154480757996730438094924018999870046111558039165166900735744044369625871084792424282315891136710776574646993199640288592440857568595691575958128295997393756626054821867478214634631128197613477883221248651187943224148242574630089033591999181352974537405210868549126059258962465601370148955256628193220854547682513484403269929755023537666547537957672490817855197995719402649399374527230420518829788246158797102724055959224806557647356340684820984934607617497590924816504969030167155558617720782268302058896132110150861809657868984230374484648639992219522884228180856281198654005466361841902182159724758812536494991465829925372297610285919316647678411065477010085128651208275287520380806211322916266137607274726303892392492922455554212074025964449721226739050287081317090168779433864980607904724697868087147419983719713717141989199049394538239569939389823393607582832745633792414747028629692750605665127284427988057703138685211350314874264068063189048379650134011503898222476963562151735887648630462993381658685418862520649675128938813889286636966684368930413728614457646308463184291926333286239960949640139457381770624919839243460663484665064573999540079387815846674038900814344424386316948121533168573087247611203605523387796591735850760897991767238423620664911704230942806104050157903708640116992391528739183677809738548149545286703145480452605586280045801456048218447568090574906321067625789361159388430447166793211206204872492287828519330202905884857485116172467229670007329307709043959261632716822096389766837996795664234550479202122058392980456594013969027199138074112840057362420293487383706823818073096916782325774842872190675044465618533094934123028617963338731198442724735756743505561955849395607848167343505271632878077007437714445692672787572071700943123950068233120174826462349338412458585862935002209088200371737987594664328379676146676887081939998957271626496729969363556277648396245594995484479386266199851705524502259370068679311387689325376892088660187703206661492177949810866134852553203393721705435260116708207403015077880305667418594688813265948612310001090731721370249042936414977296658951428520570666533937290648436551282448699888679537641166642261723456840312774494007719427241992654731355092102218526006554565833315120490326472144857464559906860620930311413521571913294331836981915319989330743725862237879756769810478987223546245675918429851051355252838202346980846314770513259790214435573550159212220437313779830177397700600417881250775688249345829895939864706558068100051909969544550545507577989637382677759159989858853278204274360102395197611048113245458124121690959741180390770965763834601006499360095578580141899239741866996936641671137494619279191394033692495834032304185173057507841557575984576109899660414276415661324930554074295531619604327440845111854459097594847265974262928044526199400977825303370374870550841197773349942803790895652527453879585649556441722098837580245929457995639833126553036059753641702060595525766107450659967299831730975778079579638760421094328112284351841847321667595884693717553745384729432536837966287057763858732783376877642653565272619329346158211270870465226352077827085575642194369998875495915509839553410361790694361628095190245971530789010601941461591523413466019358743136392608071965821047619396977863030338509487596569015632079568270704219028325951661240505945970140970216546956664861602209236295727802892052962224667838188565123713870438871122058486502110803547240643971554328421160616992057828291479261719043511423307281379774029350498533698212883736408930258209752873058896947546485978671515240493578866775965204433690337107887203893564602766866959779112021305496104353814294330532867349357152540941870518926596120932766226741692177181835687290162995352546640137777293364912469494796492411495969529536688972455494966453746519608329333985616479032184151539465958890423812859365394995316752931080578502581933347142087269301908049520175445057039588099124974560007894866591055052099473267520630734893478950476464917264828110551830053299655198132419063489168112535169756952525524020259996261699051222397252397712635861132488746222365078264608261760801088372195598330919353908402778384511719602467273002519611382295598450904432849058310214606714925053115624763405254483862804375816891543582174448443438459318618772553280079451800449827284234635908915328816617272807545779542474295660021683334445395110591124474072136879028190998474218325913911171472058060983418979232630326468367904588449007307332061463296543119354596456629541634178273596951266685628605983954883912978942984955766746690642598963501082610335751221460798143536689117875116078734390234051985869747356480537499068858056454597730156451868008951916537935364144723167438060594323835885278415708294760027130247065450254608437062943828948633016190481894520484175219427204344838050508519933437158442867869896087441939133413388645864590550198759495613949673155916166292790337136385469994407799467213737947208256356324559010937670554684699211975806854088646115344783426674849470204931696409209053127552552188258954103940578077296474479046655253430844931913328126425758709192120766579103412996935041966260215470459649972241369487004256408067402240809076096749481643460967949852146094167888389859181381162293816088192949318476550598812505396462653214789552893545460395462798830530810613654565227450885826968396515300481470202015476281882443473128455557139785200326457142649896972586202624450873315222840498888449000682470491672526393668085075439171562207022816215800963660231535527065466318967482034446554578655564858857743796589923991206168069748699647123598357531528984613718545276006614913830882217042714542529032614344869638311544987016248437252119844188606694177545561167367817111363115778343836113031855636157520474491881150311903190039168223069323032525860554911659142456725989290329683485850288036210120792182229175603338988366028402464578373158859980053867699137870266657805956345229759819734435149668407513338161242444622742062886715977537749852512174421612523902572197310711263649128960488923481858624769629635889836418353953095105302458469702488754137964060106885365787104466558536005022628023814836971211066651648987523516919932836617990812627386154550156345867332193333173248210708749060328059407719946604070637036732288998916905576580867763301215589830539374482753106312101051619925965338800966171102660353322131639023794495512267082713667728871417305510584112911103796930705346660028802124786156365122717181229616508564378614834263936231818081499673479977411273467639859741939407124586141184560300886153251885664326834767530913822857636408440972675191663263593636797438236662583302257530732193715512521102353061744677158021636168746229583007324193221248302242753663415943345170329222193329781342045674534672906175414955021354643752034354715151417430775794246707039868216460767602067581144008056576294821475221339526636312710350735919777297435539971333896211036668594968518941139723892226376833639950440971334043330985254014403084387686660332527318128053762220444955351657905573536895030366462727831585586261559967468854965268711986406408803019978383469212803317431403553260837373449172824497614637338175954733997849925373112883787064569055856241317995344129184982652028456378141294053412985041951618770985331089148461358146993164314117391264468950441894444201822026731745571294609760008812755914496052854558054136262042545513902293409988403443084357489488821681114115577908688264094249114799024342475724035191074296034797441247291010983210040818618374917450136585936881618429452317217555260172543259273861326029307868600309392302185926761314604502717525514790286401745641056103203456588367623283850146732675821463261393450530289117258852391301276746208240578880794067610666662002942346501887644922274863284730456274052419883905007908599693177861025763458616506270554648845620805236205903627701250878242692839000285908029027891698315588792602363693490014181220213847076115684542898536592729161626319570123098193781909927773995873746995382259445348255726222976648146518245900609363004672427261750840081292330663892571053187189331347876226914242764296505881530551797386389449821525230374338571056878222732211582943287266624478460893107123262975639708396263198651646471608008511379851700015432547254855804316151018068960000719320696955693965191371033360298439094639221953821015760480835878246987199730125867887341417480266035649272442676153956652035196063470112213905168427579632770971376772082273331258051970498949175189803647439400926261118129097842659088929062534194785795930331312400870878841830086281575148084754098360303328022305684504160301326748441634546817324993808676427018012818361644044662918377359721603787655894805486381973326466218303850133774238163341454620496202410186752588208244332283046181415328639094349376547586249725041578435905911540561812743888915847187821313239075765694991741995102473040534288860484254233414139228413898473524377654713163982569714802677551863326397181429630444501624996825362609824555065458413542536714955005275919812448818508336196590892055822032195090568387661087955394761885158485608634357154181139000397282455690020959102451647410901389222565545556978556919950252609384319021070854521076995055004473770123542359104952887286241285617561809900485041891682978629643675331362131992121998286095894180072119141288600198425192485718896626952798980404306570161058236997130874741689474549705615712392866082040008537331984752719335756480473591470836369882776081221208875504142513349132618458933072396511811213514553739458680034945433511473157234362619642801083382774478246165442148370390817818992709156341961992600021609491787434835191300926895830961091234221062499171069394857077139830384289084231049959939543661945897634041945848927390664328526972958291031684370801272152489313721077828483362204013233285523458976705259562623567747366462391452885938674645782974391680541303800985842555744919163610749627944720830111469270506147162586474674573764306819416794629912644743173284377425463305325012174555208463295630714632048489032116287422282758999604555417328811664819632660856393825153010846739928410485782046064072505264370607201094133749417549173943592698352500612589875782396578146326573031961230852835593740910014041843920415256618500549341787877697420200348373455508186347050932907207379639041279060737311439944276660305602385473005759850912833229537882537537159500501300541886263154905635340088452381015553909842446268115441649298896587566188727726640551185775705786862986434696294635246163106925527402293154514522864631321865297955783158364560608704363097027896936901066971837234258644117586647459197115272721696951900644557939372447506370295448075873593710346386204671443272897314089812018390985416232475289899486172896303171553847472450195525742294802518578341248658099951697341573154254488791638120156047725557178688953084190488485746867892549366770962059832344986324819664145266269641342589769844971156884630856600087588736728256969119925956261140140720682404380897967785830395259340877504393654565085470310788327380868064096384169608147436112465559976026459323923705338211678724735326898502862427292488195889042756351736329965268857613847596987668584682398811718802149231643385740526537755572423182024636564869678578141687281629797828134842956340989718989370662876290865130752478892603400201772922356978740258911399713378410049920742161106901805562238682766892831588997606831088829664200361830239621270634459667958048534933298172782949590416205863460832246362684092433441528901517808270893256232696836835078639978781230284838636047814396636819610207150549509819802053233244517463658275728717687740852291006935173374930496427824443820226927606022175289870234762505384339573669811817341261262832455048475586100706674862316334424250045292763858798976941987119831588845743984527678109302271649288318287823582776095705563310954025958286129597843911556950279731324026369815523741390427592120898003102147948321856747973583177535793829890602837994107588769510873224388933076265040581821517948955710924725300503199288039320071296498748206562809944210494878372251255092111729782974296396576556123805400743465579138104043908867494020692780380467789245766728368556246646245080669850420433614215638281383030173847002327350440887648118512707419477724481679486551083980094955525068791078263829503509124176693174946268029190562914304199356411161869909573922131223044163962642916891499994545989832007983241904178178286980066486894711014807352750431343357213580599363289826224951869889567947018813614148784790039282665698186101572078426836959376950487655834499907011388846806711384137267863779349201616987503182209048524239573319465008666351778549166128820999407744081492089409830136198550059020281480386885236062731763217588260819877335847688531764471661285242036193117139711397343200584046411376275971986758064120154374461552873594133926525019441675328824657564738415616435406195895857210731500328807972134382004885379286554983480839138822453428435815473343520372621703115993722695278033545167593568109473864079621470177520714500661069845398798073776372472531172252058670390142832668703491725178690753336838014445544880697335197273785109609247115737129652923627061642613910487763343453409966570646908783669373776922302253144925275946719157780183956037454720950302009245559000083652122095141008557754917272519953841417941240229911942842536255823279480460758091336350905773125214086582566591047622528299937830160434579615466998868388279067281432696533506271508355791819870260635427375875944601058905080718068816099689790810056105476316859217496218539406366808657895492366194036410372049738814925810967712997677271160514851361379607975974818229449054241066295807523442224056491590794620995120465833263733469559399875111916163009905869593026244173215478610542593848818620039211472402936998199884721547806073634236366533359389285480671381400820387113424486053075073095155450741942222796387371865400522489333985955008729106721746419657922965033781135966544370891442492335201893650252524716712553014896316911347249281644428166654320602306297528005541187742437178921368477095839549427319551678489734793537501830547876045385933150026708924311311745978861325910039302130220956710321456184459309511222223540572009266163685875490068310484900159581925527786315939883092997700792679063389095325697532919096491119848737303454088144265081336182472597982972894083436155573305911572201104732782832863297815014743594833167720809270208842048442591274518653192452561159615086673724823314952395329734517941500827513958590250437602894917136505613237481598661914733690670749923860093113494642679780264471693905667202594200935920243235413678545639230417562901037738147510309705765025802254844426637073533975580235224934449156012212162006532264569553781943896491737842334804010249905770033020018198764482112080338483970949030412311329392200587232766975659285651314651861224942308609937970381125692202846174033382508811809167946035063103539227432906249730516771015544931352035634066818771796084607971009668825169750843722530023012526024315184090682155079482645125482612629564202053279295056329902243001351272705375575254116070210423667250050740009870898710071425211524494844763288062938287228900202769892092263714388095734684539131070927074352727319148222080643234123202569666702774079023125221269809092742392630377568775608051876644543581803070792760880140322009510622675898920801007538326966785433830614695838704264671620676593876098062132262790545358280213686259278955960693577447307925955030408318657232819016805556365232378773279660834823874182217310367295491689862991939950075657474693329323502294070066344733413686657977794722879233622189415071127955063693480565008883163792597369227622192289152665452599253998285111071155679695068484309355772105897710739566675931761179446842647222815453118063364905276174228083383271679696259818905071431235153289941833807851140228034939605572409359986562148074824271586594938132284004063821756017304260621033887723091538643041993954781310262595068030614862871142462445065830380318614139117243635056615197071215832292119846689673096082055229621883033286406206989647892382895118708116675205794382560992592492252796981955514094126666536090066213877999259323172651575299081644424933021823691622022220755167509176185600225515743683956982430497375188728426912159024253954246313375602613931591822715377951959909530839582044486513117284405636634709228437118411552777156523098454405499237190138651246617180486797568756907545742740164289158512504764522480116545869490774389606610993932984498817870697524851895221577243342377464969287237523766026833762016127640998364730903553170479645668271360911764284940826977238844626158488345145562920758584340166657150692877779671646235469728735984216768107834906429086613149193058769408986253272984009226795720577547511511318460989055053267204362637699022491683380782211039665132603386734239463785729462637037055389705192690671232129513344546472924967060362365441702319610194450652808055815203225501091080362458818761693604193313184059575444268329069952031020443074130316366438218905935609827301753410687710157261220153712007366664606465287222129944598750032644945560087499214097305386756060058704309647481335601583231880894283839853901770548597354776850270756603823129152623901767910676407185499814891658497010997241716255483948212353829390646486882375076668133711346183190756289435062850546563255009619217852780173055803199667252242968414335216143282990251693072166808577494025051546062432551024748193701929458273910688457630291323023850709442753268698389578498889964461881204999782008738272994420137219238905749752894196359699069633907852100019345159727154125585668676847394127767700593326629127077947139969504938594845827412594204486047183871188330822821016722759484648433459900452380985668382080292785862554042169566459400972028929654852919943573296608783707165483681999590157021938997135734612268886271022722583453795941460001343850418357637945736201324845700993262592585265130758353807673484836965021212326175985696689757922065460454723389556875798790470624342769250894277043069991345214114787716171490901723731523792319504816128069458682712522305666784935775057484088506601650963618367419542843833808756792834229309392236470890700130276788422771276855419674372892132777369468030560514881613213763057332901838313452901376320625936183887674966037290692730083730036702303673776212708361439981852037378329515828332462888219886407155263326080807975246210661455322322717375732188305675908372099512970092668848825066236055529488426736773881192494777720028592218133971826067737845192419219297364344948932156494212890892112325315673990160591971591003127604297451447387498237421094072512887823776907936362440512572976333604380460187112213837353491549912998158362569430589957614181602353560808194214956388715276372183380111770097365184339417672840171020743138157471704335641797158769308098982260373809445333824017483147889492617846267957969253118070387236629786396281409430832784709936749253931552160945087045300765741935879830760296982614365183418900804955132835008884135723766640975065484941924460938356366006393268458371862583201451972961123666509257558366634353834574219478593693247898646598741862506374066040533453268441636036480942223945405163407108377456711671891863571652281287134596505966981675059622860432045361052213609937148190707055051085401955244159148102418381645565780344301369227244986297101419657318218126991462511313292631180007532397836912486111686429278357682050050655919690613830854110579692473187977696842624916612879808619202629541775899082093454626848647722038294965092624085437239099639072395711412474956410651239138391681697734205074861596363562486899950410310658472381007898731121856509996618713741252788592091755471960505331317178053326784527162840980713680813168613309416097204427810874435737818154331483802459301341676542076904602090810790213179090650887622637118042845964768422901428059296818784910713552799233407565102008065028014808455876832977863571591109220920393895613987310942392174510038911457720460705905786644070307083987971203371706641882374459139257315004911327308249674743037726292077838270092335931618769622608142021995165838979534742066772265019606426685306227343260524607374323107397291093733460734050279537312153632550214147122672978472624299641417859584311617750318694648085109235839955019086652372679421932754285037601043898199607513709413640891461657102764916277180815097429082664101569399943370289439928702131494991701985441756715087055516179231800187525025068016149828456983691653384851704569671222951870410230984819528344961353242476968797752945358336245509015013150336064078916273885184641314039935770977716197246555671146693517332296153480058510891363083576582296234056887882217141426948243393129232156902050048217435982367565669077375362469097435176084870904155234856307600233922500866039928483796825450952086732911462170279270098429593996753991746742947370481023225627724614983062521328437783722371474817491382140836049489154678107714863990870394654886091236285556864225204932734160139481374492466065253620400791242212516031028607253946034221291919931892462627482303407356570950334763880667594217394475347772243225029088739891436136698294587581544765009767834359061089535843875287289656920230862408966414236178730074146837692418455301977238629563753140752826298347008133361787539014496391143038065818971025423393447864632642473962922312339775051911793414744672091897406294991505736459362548883360677690548258592636515355465939492134189671829330280955936281565255412723362319563486311488452181406056402036934648490375982260195249497373151172969863723371360193342805778272979260959633843765177406134712159073746180923146690024513172237766616492932860246438637568768070153850027308191170064036983686304898525413082050312868543610560361940458945341163461798589048878467891745146142428173111519737730693965950851005481249530495244854856828609912323644738271531003751397408664958270883367944404917114761178342101370983637966806518590054863676412663495005145216090258568217300815003031771520174257681532787450787536709262440368832293108082842443410565391700118705406473833036916177732328056291402982508966897677606492197843035442821792556477923497136956870756861157991281453933677326822130159437706864519654641919344404444607596134107989419631547170520791890419549884636013813765800717566301630737240292321119207036681942985296156746256823954638748645831781079392798368037332938753031506667218928335347606112767474596801549995809469633945120693383683635085643725705321023963156445606074249755348117279541221734000077071100754992900583996347015083665706920824121639636542589902747154691297756597517266414272115824521777039563706259584092606980751708163701843095449944441240721610603886404386432511403238211700301266529945960195086048208674178909774138158910809180833266106662976096721973043203235809950008760547146004233701337878166375638640905204565173163033413247337189794192708622579174375530734376141046990032641419388474795352533957147175998795050960638333138054195525959773955308861923888085287163879479830978251475958758441829382174941250433962285256584715243253748343460509133811854316976009289115609635964139157333789921944964795611260136280073963113560566999180250395091378371920611870193036401204763996602404336301306043189789801429886750024114113142319644321140726565317534328012446101318614952477834185008535171106218540590900092139948881039012044418721660656833662302351806294853812974750856471236508710296782448176900588887307882018614753050621000237982024673709603285463678938609162185236660166894869605783943064941590160923545210797297836950452939348166409998713247562504102387336657380598240867923951837941995718340284150528804417691857555614704344387592498421541682500121011347602288151809003630517010800622805318018167647845396963167836484946936942785876345019122661339593340135591282640547199394341101522090069391228759328993478312940987430253300599675945212675502765733113565321077454819865383176143146802864212670933333284686117919413672764251899022388628835786563770411928715639713086867418525993134798412197179364752707458940630908477690838877726874451782426285372383816950825575049740245150419239918526745420333753399744917099825405335405188275486678307548904636200610525292974769865629348394240352382670522188764187404480855047266126344560000932747205502841482357207254728422595060577510476431639705268523051123204377304643926860954627032565668736032578633391108446209591087903695004277670448621005030012429701478562711120198788333883759011541025825620738699390972580773423564201390477278590549643040942851336612316256797326352984770973739308072933546794134237491211989833512549854887364064708186820704774854036637503328500421356324314249947879509959780293768627607698729684500908370749613061977720647901140544029548893250008116772116760260370761722189914509372038614647442273080114280150689694416341332717851020385778132891034772126441727348325646513989405089308463815262791354409594745962138798452501599820223925425923717447347814858554518120328468887712565531374169415818707085303122743571602335442456386026842086314830106619960041977406654407628604349221815643285267187779443263770403601578502170695868355749293038892115603697859683444450348605017621066608847593315994329151978297782144826615744808049223388122447464079575469488233009483661789663996722929032578996112322502665807951267669934013262408034270359174954979475938040018264534944577428458354510382497820160989217003613621161579958750071813069566126442792760746236770969696028850481389357342150321024137295279263585662884241889840705735795469256482199570094470416176998229611926788808771106308611122335874699256346709375473296476051708034611644073283944623679523921073901180815539084473770431814042043730075221218957692243609487727939881377743276792917690814809737143058916819839312114354122120569939800174861622355087874627158776656362701045002978246625932244905525645272632170999478941765959130815314921575391005721575562154433665378884306488822484220208895721960364354473613246350952847132623576245515194352814519717485906652008594074303651771920143025892380070698762443776868409218919951471759217880330456292351182579428661160663451500451049185126486207588558915866849245234868878536733440038402753893157274490596604839512135070798816974630827898124717691934758134428078193802793525089665611766204215641095732761170623210049443417553988833553765216892602846168764929313029211765435820107316373359544922614866961496887701648483550190924029544967532400333756645737856045624284891788673308366820847841733907751631158370297352039638695399730983848753251347840400842728730343412701369095447843288479224603370159298133421783829971244599845659912787541775084535648952651840008746949856873734237793351507743141475382979141528620498952991155836915423301069476114148430836528031103276070595685871105702666502365758815100145292930015306647668723931926110537704148981740689081154787084844875816181289149145882007890328899431892415575394805607386095554476536808549644097553633792140187108305949675618095948862600429159159095753747744269781733326129532149301156348561134205320594239035513390010907464224386268186042189924865437284164444132379548575241699367983172870958694324822837784807664021735189389948563598000484483854591091978847085805464872953415137142267012321648089104080549555270889083954990501822589904380854975939344459915078729360795908206889304142177393215190619611242521411891937182815580871222751773752115275416533359766652565634584389037118285948719786995307803627556240090842671428967771876937897564634258802363886270410422455391605295257626248305498466529851897928336829327820719565986816848725622243046566268296524365876498521876209400752337260269971134121854567846717955144544652761413281305524366816447734018609319913782408245688915514884650791570913851306358483734225651859836651054186511973529557469555785470525991702086047181948423190302840804653130575808230448995366370909990482658297716176748955712546494060049108142420114669394570844203049146739622972116425443859246810635954418288268648539662223010028007563505637019428916101305232656752086724994674895241107158870288616651760607309341695276191577457782357028741479771025330578121334631783937762203977220873601669381177434978898405977517722995154308025047205948243697701281058564945992878703696388657626994538707455490389048587302754945115278621656299084537404010428417334200111183178405718018521443153257148696561726586627440901861957712371663356718170976207514206723046594074369082098058267156225545651421275533174688072762182687477627947169338850311511741227001913188976627664102722061277176416276464171017285266885222028475265656608716970285100045089621775562356100773708460435208622143506638195367447523935540791870217119025514839292660045735551440973597675263178876094906124562302756379167824901852518464621085842161330916616420723746990245940605046727995651193546998457607367196547819906540289574299547657507787104685579230926571874835306113626085189140420055058425903017417130598806919418853222948079657755486058058089949689892443412417341700412207561296554303118615375325352134563616221215440195321661319047989355818538887749645666648122943738446516919220257104037056446485997161332063649033116650211568368857138732178171724591125063029476713249598691500662480444080836591567308470757984668445846406660150341482378020830638002651292616301615552804415820107086871958184669874349550496769139895890465258772007598958607928376959209940803039833975070706249986586828680116853706315342486356208743080272230435902668420899272170606730847917997928170802301327778851407356515667777436589839252120137796658783112508512619517755510100740414414686482147332163972775805618517955404728430715596917683732681338230951605644306177879648306271371445302224641566331339805835635436075724444206572575895852076068768609272052031500211224385906663811426662728460471134895317339117605841425499655110169289960835366376297085608838334634535598976638047694816712328053429075006334582447834409859144716150639045639208365797535170682645716598795248822798735846568564654575031281517573573700476820234157417444204400375432843953589853369515658914176732090636599177688199021876466008065107615321030982667884750604183675429080978064491215775643564507994266145894051367841640441984053320004794840624979612295570443889930057817669966784222436245099892474588902101602420905905767925385602934417167979306743299942391034755185749597740613557319687753690827131335105439536402591127011087938541250181303064455932454004081716823991161582445813725176745319792328383006487128404111283480737806913359571093712310543428877453347753118250201029588390278617718292536542433292953784425237566872865632502676417952771104554574095187454718073700724404281263311447750982803001768429566349805732376865737628295642097103338748996043481274004874960914700192667251152087844016312154556981238163577588909801322106313844635000856392149336533753758613848391563072284913618026588516005974005167306502408611210040424962223383182778494401012969066515849240048153849140504747668988841694606478356051139450146987933282958449105650684134038285220332997219528169494569556532655239566276347779917466030243978375520338788231943686977850601937557329686411959472790933440174072851351425483781571477920965252489144089452886867022396619050260816737141879775998974988551843159077450711276711253355831262005378929771659021830456144536109255627782671823027014534054542352091702063887415663717967137839191114555869712086758996656873499190791507216914255906950500394455603750336115567574112037374824538079801649115115424438427754644162798194340646814469535378305987725212778316221343101446603385862182802832223809148687891320062586434013108461915505526883863052157925937517814302762728031398219146725363974562470973684059051668274996304486354369726605179160119114296575890877883768432188246617326989497818204597788900303135323053255820549463907365619379531952603306344312892454815821225989228328229670839946380520995772636762643334439848796990432497108208362922788764909587231669058986429975057913161794165700494905380715040695244930707944911309876953595298829388112176432758365050826988057599125463092039626792090476695602708717955273025379008947012807883990375732263167188330059721787798580076649404651169013226026097513032881687987978670167080776968290316810847781838308074669846608813958661182735926142933358586223909100720224126132199652096790441806585327623952008575487891210677504707150084828506053225250288877632221783489122786024435784118768559263988806644550974139345879735886098959278858718257832453952854886719901396151588766444136451239695266474385846718163174651688422908302358097232545704927664135208660147355462207407604296874791759345839942605790881545527080961788900548198481653486560176836826779353888718736799307139721909051185041751911614055140501486385782363473094167694752742674104020114565873298916410982590686919688297881687335745490158964653847307550308403159175901850656281820609139925381693816207230164273806190517426925100900996373700443533401819390337223355588595139265681331445824295950978879100579564652003621432366579189881897967787573360664187710465798720562177624081630795137286513127803945232397041425959215158540736970559679966577535380439929236495539143312808458771373930954518730620553610585458904239445606551202439959813309841655378602288449474218309549548721382936246328532986190875956975626997476627916950914923979680688315978320836418400231076986353562464498162485286975164305620917572651386278153905716907155473027408025542261587914530223487812187542779597135932077693164652469351497355773556725733370266811424401765482497293300693610182935504536910501546655374856592354171241720512478754913313249903548610996666694042103196900454664006891797375384978048715337219378291154465917625072049730233477125143657415521260350628518419090441872874123391622836839305319590711016552957534055124600728368642332103154885493093965064780588327819090250891367473905158753158450474392437882665989761829051383707331085258487413572155665150368703695805067100464797741465710282239862601047153960654416814341989658668509968269376246712275823098525093399311862361582593433621932615769447697888973511844480145955684840044841782187583749626182855207737633800721904041126678510484391166522759557343799254605125400122868430646367740492124805731089550689305513185697615738539895217048206756085043366045080200669243209457358612126515378588081068945004521175210497151930238194075757046607069313505257234470287448770399917828322586925995667164857839257756752306440150162718081988393511766863112004480925601823165525965489328467975900089346356821704299431438843284865187565271398934421190238056193702651517063691557162598462024724577882572256331146025339213939721706585904686940097469220696987215855839319039130759740129296091315190081608052142924404302770793111425511288012327320113270007157469917251482847416011442517611522587780711945173818277784066026727983071901618506338429297136416680328558210388311159495309830878753618810347144020840853325366851429056109649648490895405309059506994465812048696891262497631857854309353277045039567923668766440618064199241731176158822741172343707019560644832107228967443023258482882028648584667180956388642702819350526261233588774462527107158049995310112789759008911831769598402489764142342559858721390269545017436502655260873578602698706358212908680811909838652618270359306737722366241208894624435211068584625402809450899876751204757082302394508836075812574455001006617809886604097017459001168708378460981980440337829722701499526850635854036973451108451635680183716894136128606999174957742406332271560830895141069340639076427617115708950829478432081092992063058555313059009106130105047685277204532147492457545357637350571818919437549781268775430254255098499643509126533400697549804102694273449733561578944162739408318243019925285817668842177525324285385960222008018540630918230029247890003451265124829657986405409858681496198703247741865218374363664614229272189899139215485304368487406908469391314273450530000804415050200021823177129619912311754892952116638713577751661086704899103423347213070959059975455273406190407911169540840663405371873617878440199823435168463874427823357766791426981443284678396672508159973886225811347484984227493154449791988765935472078951067983006486109042103655597789014658655892853685884557388067231791166732476637457414088803879050916439061353022265717451587983442238356066286199156970228177893166650764212529923383529710474375792504339174351240159084328295048236664318538594043906275293105471527780263914893755151458115865579522547474787629957833400220157115815265563620008881131710213827363154621629305597694430633071189192201458648337854229659608473428876380113557571046629537439467057216563692885659306082578041378512743196697124475807837181598250923788600839298647541941590837382140875678694803497415941731405513039948517219147207350927318578441914101371597046051404180524258964357388176146122660247053370731735229499916370792509136302568128034076861979269062417535103901314944508915171919211430228913022212671652192361530257397380930589026750863509385326138200304720112517950579469023436720484644163455361330691798378295326593728661566298428211990540206578960626536236301795453385465642069313965089087315012155273432326384130572655753672873305149073732305051648828391990942861438180051102870537106200362594568590413973230295264971543589871166046499318908465960687694016590426932141363821001700463271659085139306456498606956631190122619007534376065193673626333048003224725491480668801303386281213290335301893148570327535467177186989530747911233943676842855073176974941093165682818564602492101177448878827202158009225368433820249369908130618268394401366153770870572488746160587468648952451741250447999971887897800970103111125191845711551666917122153022496104713497047978600345937495560929112964070408583677768137025355106321027301537687352946863701760868864900219363439159706308931754102859373604009701622206875528837342538323047834621107145428512690939615672228464246676583249495323107120142142997324446048675010538420233320921989494159082682541740878419916675462272080327568882906263755645567879479383611972689658347923880111555073119955179611511871754458409396716518547463030841362740964755707322536138553997424003404480029634655790960270628683114870641490037666524045950711066609548430715428816761502099276307855945245083237915379533128864750447054638745246765156008428547575658936007379215186715949649360729388136483012893486737922223130900572532805646861068795855161780451684832564517693339149133198730343277616266344121366265460200713734342617030967321243424879547543988420909928926233278679141725827193803700737377275989079936695247465291975889100004159302914887094553161476192694455922172374969341004471413654880556119164192007843815428476022424552540324555693089267080028719927185562447075208589003341073449354426216235631497079450251747722988963069365128826181842669494305484445400824445947003758903677242784047382728280981991180981410645518730728730213112321311998923542472101200487650422088168174334807599656144345761458818809341205390765514597246547078975274153707274672940794750411294116141601095204095897434303271861517431371895275031419824197759197763689071535315807051385817141192537598137032685726759928231246995894097785104121815032219569855524074095192456006714983373349418649791082511130067827186735961255369031399296906100845014824747622144393003437774087188428143296636046593197351608590840112517647071960264193455271131950849889333426350503146362911754416534824713312879926384977495303663134460147756708427913120045244969468112607008854040593949073970018694516424098607995845201957892628144470351111389681757249211849166883555618478481576048565550190968684329558910303589896489120879554264186711730035462396710482651783944527761389947857212114286783041640855001225123808447552354775558599467972931858352185161668048103878189352976699888403932797622079825535874659902302784480409447531195445934751368829043481284979711521524061294336496094915771322151802685244084756752754422836966018623210042571984643219307648123775159083948590792591468273140412267364453837865920269471277488138639840231147167124576959220191406831578157901402413555551498972382940905696543031881600029187542097515766577901344120330516571772756955089249877545703293196551661600594253797936666249025276608887723935220388776052462677189490041448507826865560055762934172437203212376700982790364456790580413709627637037507511708628637326141532919223786157058693574034869051455607760728092119351996436070915330759419573949999699260844437155716184109382966733128287428127319790685011256308280778896767032604021623761978031799518656261782207494437043749085310665316293974365449790246893460384713314748602477579685282191834656572832598004144652903272150239129904032261385445960824319483311393746980844221071912664457170175743016125234230027532496842012985234653570824190255583489110463584447383607812629105039678966844858529395991515594392558272057646135265722955762277748590008144326610106846667355972657158512711948393116601324105657232970968121144576399297989285367596991079558894286531321065238347121066511478524626450276395599975618943591559401752982149731167057529099095090610397722293240520034772092653356728753735211368614127843859158542061438531593516183289604400620093351316428943956321262608522985874466555808762756941728414058100721426429019992626809490328693578452375703491838886488382716015678509395687472012279435137874598079806341705192346952398856564169907319906757783337189638606500920227425893825202277033745099089954663814503095037572434343459568759569053647859977541375442759128151258166661838529047333632039918375388290842136963986838922223061715955112042870788553724313356011459613364145514953006525084185450514368399416521576790524082049108931907707599102667633075735424498417369394352938349758154289478964937380549650159702464703705760240690572640222960956894893204422545333721412485699820640569923086999178117229176381167264229205526546407840263030701349008111699409016269349357433919338536704662967530737049267658958427600235913196996258458038103503520934871770593500709592123133461864200441695210734740893482997216392175332743725720589790568978273296484141631619282394915287269654696051821667967811690093815689579685007473547441822277114490097365669155107063841919628296368070618689198542908066637468485582071921887459711788018454423599272866388056421958151125074298238121946050645029068669445815896597257736928781133009713199105295389490053653333095699220561739536742648947412542073953380485207158656127087416221749795476474521635694449200938024236101508134025641681080780134277658309100453297863208763990295106838780430349303693011809280644784939581063904825684657997480489606065172535750292550566883882411147157186165164685666047260248527626940282231521356756321578443704242218566517311031044051084034561647327349435014763391787198981022461095417152098202669792317516778665441735453723089259126059908258254679864620764773149391754284983084696086483866787103118669717359355108392067440118347700891436808063885536770623497935969157611264866892666284876425867968331755421246662703121209995086673860536876206709079945344869703645595806097585517007622413615924520510799548692824532690951867012258854706392162973685782816880146047956463958670203746612494342944489805559292323015377545374451429186489861054373885744510391114910451355119624165875993274444415779682024772674876622890292476141999702526241474807243886401594811926173136335805565864204287229519159519197223462602887359943574490867293769632004755163348822857385228396899924980686867792440485992690892998642483398087861972678068245123067296226702337741718205622455623012269493625289492194289162601455323439609062825070498822831777524277950843918214607502670208534838960018109317602249036028116572276541719366414795681416427085481529223789434729942204807933260057551959183006351422744343323682121899792952016574533917520825120264814423192392400459055935953227340544398194334589856752333833333981301221869342202637038065366231746672094402948107763567882012222186087962910498034682956998531640587591535587157778322132209766697815347992054735848889284771433372860646955262790826187106249007431336030000003254808158294127687377926971267991686964576796836589857314878350274023565647143041066086388545694976032250934951860043906783114602476267039868279837600225277408575825080630014529202754695846700840677754496651383843153503005928816800176603426452532481897602798054702676256325086518130429970759469648848081912235771418952223167282384825912218842137733127474073464308595309035477107990424962441610331678245314758191159663225384938357378275612135774879324117314643599042949159130613343522696397850397708793231069673180706005188670062142914572479945395015592290381796032845483642538249855054673569813831582961967444208843318707379973342553197720875893482048565253816346980437500193911356402566401363118211929756089222267038737315325723458808540561079689119313404556783221435180298713032871689628455330025250744529694692540651517315123396874669407772217606697998170159049830846622268837736428236817173848399195171146762813095715550340733529954026957189754570767398576969050303463532565433785080350123504983619764404811169372193557834599362086007408579117738916635626392947832200821030576520379905279479581444259861691431645124332171681990672060170153333917540648071422416685325560067130121853944837717836954238268926208556219742065134541372507476703399310452955235165264685524438795543424722755148988949644168499588988459675072623132954202943336426809900315707528484271077055234611811772380762247337383759444544354114575979838455265739442104393565828622811172963132833621463159251340801566432030726927775894732063089026085922633017477474334790914224998484956531005529449419134238872567268625940538755998411351994955601764375969736190004888785064347282705981619671883034170491899324768837429354182760365355567672914652492065053072400438575855153545682186830362610709938771143033775982413374196167371012493031043593274158431538219350826917476336907306193376003516738147936583696847664461886180984734954855188478359432164637126962669008282601675695080708833374447178228670963822577631422975009206761622675233001044013690445850801957276223656813902836147544531322241427332329577981402768238038855190280681014680666349243129687848889775633513084672855279047371586445673405881060315800450012560614379289758720573234822808627394422660362608005629444405658736941718042760387301285936948821398083750224236745785451110551455899466458158714256129973886690432081795305221676808156262580715423101431074237572689132785983813799551910183651628891791329590139786669783511528212312059354580348699807250552269344483380448944355670354467456273931704761576869580382965224750344168471075358698704942212824904916135851930354408435851613520757408218924247562036477719378440851493033825126687620258130617544184369761831821340687939962378780992007830517370067246815728818502437269633147403224348912255118859257127989320860908884063642443490675714860463165072155525168881365250169094247964166268580524859111671938562871500735088184854372812593757453093686611563298925025201826906005203726289696324224051735272813802085865683076134583607448614310176004813407182245508408892472198692364187972520011866799681677587222099505201396222477441973650461091160545233484591226139670031197924568034290183391417259065945115671893659860039849026587912049818277433694090570790931421110568897404153596789432813746498715530939769028229130367801732782942300908542802021140280325885492588353157020955798053535361625832472390956768110833144652046477529395708964562027844555550393689244529049519917855423250363114788819234616209166917477677090780413530059582977591231145566415150184806505557171227453015354280338684337625517103244322433352127640766222405312971561155106242294186637879288873416866959220149711374463785167634314554273150524710781262938536804310957007514572429593672014477944812144104958666708500180615426525034062751188918264508447164485031588670154885297216587209675288435686814802921952109180721194414302955536403154966227945636874675494575200577298930783002844845625456561223358225319254954017701834544325253618179879609677504342434861380695087692447983540967315744049819527087598354697321162845396132564674528001198479211155286670163274350849166118817568942739965043025882509362908020548620879751510414598217913151518254981676923119525636134396648786975126785857421839902446163594459809022709825771741112902742401210716060714883070185758478342935652737365296177102447932611462258474890665294620448533149135944082270523540675613125034706002724690654987100847043717271996848712199586960355881919351188749443197410189521294942882296772533492026508334989764488136950748503334300465060684442956103161165859121416718834330472261145833302833412530402062766100097190766221706179240115698972867406638127628576559206286467052723149433589877873615021796914544327238741991992385393674811748089759945431196182077182920237530590442817462207801000695152664265530529536915315624391131923568378220535842663488315918732051591608120075445104628520303820046185284257989011778133526190300760773320038413264173882515448739249936018686084102517393336082445123689410462255316643887957570110041464481672785086707824416648445533145976095915907327108789591000372887489017921988789666684242594806759283728865921009512267741433327127921758897042041427283325819770973699534980174136795982465576230190525527574105026315093235351117873694500094619366205699627610393609049218141183573614090807824657774750419459545633766944102770251276036907409357595086640848037064648922358716113104309508071449725823973131650086480999239590720669052402680243575757565700432733041615123855940644516010352380919396198844302374517077492447930906750853354481156632575517147489102085037588446450668752149896759107916283691792923605904957981861387560010940917427631515475745016152252882732240825459812307225511535739871778750066305228520851434055094110109877994892501405189539184622803517006082926582877456605915157263585338514488215841089572212301407684714536154233915884256416503538516762143747601442956515213810172289733687197604272915004628476662840173475475265495420280826635239641281322610169968556081748208105295661333094779427424715582262375356667292591373408259993894819208476195479520186890243194833671074722189535188664629690435822099177580383204997863483431234514435694292926898035405435166643697063419068960431999955607965287648116490520005486159591220345253735590477785174900774981297801941342600570735038936310471777991159858115246187071078429519925993125749076740669772812345592647651816734499081232693860022717385886941199082914090298712872922846251210373110631032520800371266743915908942219067740492359686888876251980854100781593459519705175793615569092985639841378518532622231552536490160388619053690168674332123032343579610464793830033731975428271070072190341654280311848093100473035224362895759359767554644708282105446561152174278479576701263650034249073134889474340018617432257322823654835597789859048987141094056721558977903779033345644117417756533402162169260268695435054625893061802988690158767870827880825660562290173084959432062016304746622013221643022219039570145845762659748671116935091816240420786787768658264531706632769025161689634327482999247240782427259164346382788082271696402885409306103282715125643050868419558210835833940913242070857280564366932289304743478845508120388683069768177388263696666152031910991404376968668960968193970911896267426725804300736989293600538342529411940231994896737613158903671873112323955596216334016196293658752982641109423897282549306256149574583410581123644767774779066048494440553760540398550679443634216226085277252740358863287187831430212481991290750840926933262376751427211386179281654632618959171478563473875176001086541066730978185888446241891615311778798827133566949465013677421256954954564553975426653565653045397201327145955450485060037787045531582096306848669866826704132329270379983623815479626008135882562903937688267921451239275882422345375387944632449693787603054231118410701989831809161763714285878575951593652115462306778969978830757252519904503417222255365709616073713503650529202933839655783425686543571325411271280954268435491120031614068167525290193573321446524932288130501724136837570242953412892949065542378880329712578292805107883109528279084518732822582901932780834577306632348115780164971989040350832056062840460240815822299128865740381407098623367143695428704864000352193501179932304750679730453098239967602875793915396746635032607234138258080879545372704773868621075711555635687163936411016606880553590326840398732755741572562719495648496614531334880534984321498681237946038529448608705947417106973699496578897867950763251165310439838207765099077952148548759874486538708505577590004445417262706551626408482833940490213436503642792510612055265673337051774854373803650863104243247397396942463725602549886615901709225583485727127964561446110178891334744374100644752171401067012172179414351487122464977406854122673199028972362314328469089319291131558528665461861962621110285497504649786372926786143675977401132286106818110130252648551345152556753730682935117253778837811650766197219154608477664980103711713773401281508979543092304525378327814764753405740055414550866352038194765448896232698958927376777614048859709987559083771611973955770057737695962720246828522158427064976300523296973735705718200540221488411751438173801344394851206373337143214048356513827844581926970763342345218452816489221293466526336016231850529461938134473258639754540658862478840292704760018584674358734051709486800625143712417601706130288167225365175376716847626391697607836281450125457421550439955767237535548204612446722891257383196578885068658573143259673571667543030205296455541850509873873560513930072845638352088535082153700683073058178035588796092608052014921150230745215163921557048906581931064498418979630742965346792035139091677797952784181542002529165339733974409848975738769355760409879289531999676729220416195158371605885541135494317472520119443507939364392580635344527589225867125951309517008513008703931453953311257960940017839114926313850419223935801957849242851140432500127019406583933817985460519557149195941161687694214075994319350964881553599252639866195749357743893449181300214021739508121702076159249034240680006800674722413456732946148886539902852082116909682887786978117717385693241544264148963516166538382042434375229054138668521195214604153964145804556083817888008271470637363686328378119454120097039888133400708163240477006291150887640085599646215414736635035399641688587691763892273886286754297880409410336311175197259937754800560628206051031256688623366739785673251349955106955686264715695846825982966401328341516244977966076509257168162492264629995521394768752909670715021119184738632221904402773663363029722898340822851581386382075368317907326007202780308867867317552082839075389888468749696051934849706200341706098021884877972438003380499037280607622715821115007114717994130927473845740175722270367553695449637402222627577668636283098629377227299523754474208831572085698082543150423260495857958947199332094486229056481780287655204144542909444678231725075306620096146436109874181082064064427016517787552099644171460461852463622908572166792763144178417448859790639651992760555169124939451453844766331560800923948728437354786923412372423703985503836633292013679971507735567364608651275477868893193048442376761913419414593193578324340916023360084070125512774310938812485234213028870152088299156644999487674238895044446845355734122721580207613180797164601807242114001461611486675368049717226298197423330511953766567762741535149622945140943370354440282011201196327289393793765207055187151797465568407304705786478681860111268984803620049808208976001903663617284671734923864773554553861968037175258566047091771718030632831908831081056886522996531616011609682851147346213217908147031777006290900523401004415002274857231821980533731719859467197769570074608323054253091275188159512609747084466199749898648367264910860283228303435948667043263187740764845291251942169568990133165515541475722302527603798908163453880042063900555400608713892915957131106804856056134481131852897358771433182360491418238123614268036087650021508044207613460282076986299792666121573542172465143594086055421081713888635139994431771392877149758685497673264840994625837323052489455719370506970932407864648223387224104058561684812632218366691256925120683711461841615804480648902360088922508662875954846863666600895634857565126556310285608562120556079319654588424085412772251128620671142895609839589643583372115054684106112275830548087215128434055034372537279508466875977966261587202708210909614261207068478897885597834839871864648738335180333235590678219939836622055160264688265684464034348795190767190935770466894335536030670712564571013989990240266957072133735795475654981440493794144524245646479580202530330023834977867733692291960033092169777200833657592954772708303220409421574852719403863839605462957576765630063080319586929445987276179218781925920579447943507708348442273819138432273822271415166816691238286496335787304788426363631889778257475169669917654656447491342538203098443856013637801405290599451510139727719158151221201932785389888201019246352570490367486607855056394920789212033034144178366106767805267169415395360460340247419882142711240941432805952306995426823735651093136694958653636649210660848889537518543627512558775269752975388604226218677209485648974839247281925200307279842149798975882142165432224384813670699229369917257103722099327213020226955818330134215903040189002342735695642812929752281411373411244587064819762568263182210391859235731513825588739331453685653461411178317395280476925558982206467217187172610226370920584631421044458704402448772205200160771190413607094716135269640682420834549659862536636446252293226307572390260740730763223733644071372191030893777132621382329605773601706790174853918584156383159875407576675082734388457449218542817802042731486705034227629029547605299174120274491814839196294390804359256713615261355146848071919763336033639817676842801993563050483759327791595347957060086672404012192243402393167261740773845857061888298072056844315302715653576950271145298856037640591649501695138128085261750471930548829696666621502156618985711481808185870212463217463597852574409820170475508223461680357832150720050653369470566813657003677432510942788500349476484813852579868465194296088089446021054140968285640402429006170897266766203234924503983109889167299297468825428830119992106486803400856747572708574977630401704577117133290572071846078272111715484615712441804277265355315731296491724593494858743543343026355548253047712325199494990609616464535247562152652718139888694571231202389357621043060287889007519673797059382278841402828708895029697115140264503266396338564204459421487481909295636585080221951212188379273953140227327537382276799040401974834237188248502250756265656128506362689306303146489491109563214746946993927247411256197143347701739242295730391646871221426092685382509071992085171477578262102607972464547324471384526324080265640172768542813392501471547813216986767725563339675533163798285549626918524603494138475426373764466183293447860754633761607341129559481020390924970939052912850142380881994352901399168513462943342039489170481584133594560503406378110659171852219013373330677646960739874790461423480200218031646824109811658351904712270420891721131048513066085496399048213118444989991290052464141717825618457988690836886147884221784981404406512055395118823205310141474616663072928662324579757530612668497035442911678619427700655532993782590454685377965113302591329771907624006968936489413161361872860082934278384890663841194616626725593038563264682826284020979808986769484438951804071435084291847741989190230321875642952821245031721074696295664350127215158203254686503967172748890235914605054816139536446090346139340570599788795655356761500230432856200149758597521988496814669235033943460591174325984600564815224728437878824508616677001974758037064926486120175048797862418606210457536657607816647850375096641702686911990609888474209795583628580940973304021693378934114713478817911924033794098554734457658852605092506043217720070674738265476787169929251163430931782480590235221830664303067436849805904808624004462603470869098688788528536878866461449829676776668014452233502317608258105220519037189221853164005741505517311564725223749836721805321040137511198936579932876584854843865313375736284754790242451324819248829785351988521691327593027491810622393212204285718344213621675611409226500199417840303614053522113871046739392856565969679012620348481000496993755314284463470294580163920869310415496466927396631877564268440339975871012899546859852526359574833438377628111326550733922936474312712599210707172939867061935024119044952339543022727775484135898738532354600871529808625615826731752982978824277905075255388998335617984687478634342815586735659184258220060593976107722630734770447362967747016571231496186193975074405335700498567765641344681641588271033412067514856613144934652175310823458439227762875848058602169880363188113041590351461658847426811206256281666440099382474328117784964507861517289947422340152406560757142038666076750616028671151736324862835913839605163144843004185532204220177176524657936844472406685218205377939308499366247235115045509594866433455453836948787853826287041616322941270429361160747925026513711247501482203939012916504620798243558368279478797385776485042241699394398946128171454247791207092195758331275924985597686406948414010686240879961218153697886377468859761340085665726183368663133151889909883025779485665051493257331758256727221060948812939330163863166121927705189124379301451109507117893234926979975229029065621928889967245978889984085137981469889444286514526438287755925133707476713145422331340556467262466785175913593467240363007755325502306381237030788282134018912078969049887588238076786498018346010221479469893341564303216093068671124465174003239191674861095331759382944413120271342531104640403334491979708939398504119670579606345790410884650640287251802606763109975623488583127991165788924679172250184898245739789729529820571712088433780035785576897822157767035296017698995530578089987708717324101389107765530368346168424278431101111110648715246892813077489246437870823106862834064479110681179763560998651838439802164479214272947667591636757085331125683032821913170196860779614294554235262732850319419449506877077647756099814168469001509520100004114647932915848354768959240269421706652340860651943204500033597632518173107729232149616009662935435542391200671765732263658013313982606861789476109996621268836133062967240227223787897582386915711126496319421411255208610032155373895449972842927645711200197363854857145121109125527277694880540841201986683490776953219071742548979608071608273248723480081935497110330411170160619389548442612176138066706169643665922665154343098858317494318630023759637297271190434666038601486551745171007330558357790266862239477514304907860904369682733448391515036968768686862944025870286547908339758503018351690833179392662711042669994464237662802270688273148818484781795184013405486298917206031093296448728417598121498812765671255585148008620228476279329706415431952752512561530311192840183789869156334512149922287930818699826990712614407804044722211499998552489744395299776114288368723562499407732203836594889408312291726051407739751191488622423877131174230552752987597868636798923441725163990880143461084565932617782341026494102808186267793632943832130282803990651034143117095599698930052884744927215364670318425289641756058827036216094403095059288805150858953028631771013817439637029716525833205381252796586265916543364498750390541776361708787069153443924331659200677615299984135910138677376446438848153627896143370745985571603612683076900174162254849006636630259663807247728912170392006549557393342655332023330730012652268597515053608702045294926186279643700180812270568300961708873851493333288030521980415602405421655643786987295833733920296356593842351163936840064408228955341496574189826770068631361577017656595536595090771885271117567250761661362221129554068545233922878142322008502348676431496419876051468706650603460896144031087349745661090853050109281120580069452929966403984714550639045342582660270326030436881581551273624645367583404034199638656389775468709385479512824811506183541500363027202646736878126495519122897117909066423829816024653485070059385583755952728672248103458397340134462706640606865968595504223805591498043749528120237244698653815930968725765178606946354801265481983523758853671518900587477086980103587281008201292217473190680244010599678648753087984064311595873518595897930346197167849984764400211680774940935672866541666623074578972361032790570632426293253484834389484027874747549795353371599120947198133758956471425663183668583155774291235944607769009497356398406059433956610833580401679392754073258825823724137092937302859788493818398510897537887449904574467516978042905368418461948017460256661451436636968615020782108647644667932940572389414207603985295630053799541641820389908921397058657067862920231773843905732301118904790129582334949730149803591186025728371568286602208486514237023306795258952079291075366790865052784268116831248720232118715894195018213027041489592016332758338119919920763662429992604020344997776363344996225883263094981956726818022033308802240678228657737886365314494169239847755969636411962076669411606056732416205208198056203934244350465555894253861353976072755722717569930686576828591315442478802171859622412861655860744292039867600304328117066903409842275827392687056890754220886420029088716338048289367423700165725543284889996474256692971000672527652575839364168030602740666936873822798066706067191899429104797794339758830074308713736697794668258515933615804949175130775636856432479052283302218814136009934750573519806858889057065733503701125346619041319219812871154292988895727308455778475140845579090096446838885977933797032098542500677348665135707564030839839015394282854731826337451236312218657675243339382434678102803445407667095433296842019142566556575750761036622954901199017982818779610793876490054024417579849261694355343254727096842550337422064354244639949999413160439950741497260283558979554300350376580860128159201812119150310542334119885357473224114190141806866262761363884247131637897752754412219034390084644242058059677773467203372377070089869111769231724540248688747276898055141614025895573051000604287776202541661893633562099340042975725783092686193390516653182189435816760588229009210826474817737200485734345277293137578034253476573326635761649898803635198620035491116800435196339093661880930797207342653998961543132420564783924939519993126629019417025213082158396022499379192230998739985926148197644228196904636242560773960185657959190033839286756539390309231663303307216832819693874398163536166811612697657715018695459021956977217572005504163876747843843488082480934867686961683919591052311762161544530077298480632456373101323416850928231482046028041610493977488273166666431254688463412834994600589696692839149058353842236723957085799622387487902666787193229573356209794700344100899752969620598326502165507209977422891569191376687935440613206263067971633058066377666056952226446983164440283503919840781266927183705653394235850361187697324261179416134618016477081111293743913366449954707133898363045495634402124902258227622253545249894607753879162771376351344908658777726268526415503347042126426746373964005231007234544276691370845483804669650942054374973429254293681987377762425373996085535399822801748585865123423701561400349192543675875873059020609607425064762166787486977221332329938039174495047320016813749148767761933418763866588376472389090841866655121976815483829191424460177449856250230268180493432083979210878176038732030712655777938361757755515870033656603631840694375393235384689765082410044937277397102994101573967561664926991035317826891170568463939124105246615563964666061008163287556994118237718575457869111477870423598701671642486210557001373478341984766529960801303016207421532529024812425486202029778612631025375839608628334278972606728074797593427748193427405698640640076810054130858004971922862640528887187579262550959752178507782413404748285702685674087670045248829098597207478411823166226341157994278149067442177414793597407254665145431044138211649251848448125096188947004163409843148581244750577281560707360959455072855899430064026943631788338660656643039353225015386811300343075569458094782967897598024627220784146453962902751001058455937852574423545532331938436459734392407034779182382824933165125432994266145363927023356294511424051126988887157002293160329469101328759316379001065681020859713357626338889959873324270605824453198393243444029143323607722930788601423249023749190098355197732564621722347998107081761689424988595265026548467200999240571313526907995828860820216371459412429800361917229321804023387784643959526071620104581994225366854322639224887640610580548635661493110878472075309079156446479889859179209994615341468590611390724065861199157740952656895350797582688163861107640352530589424504205372322983543289103121229328738308824725874237592653007169767034442489770940954511955966702832170093423154499902669129962455161376834403749526220034723175899539236526982213861914315740266074816379040054138877941967962875944831188241756188269876832547739729335034055179565217945874986013448119485777731611855556525046955954800654233999878361126033130825526275850973397626178086273497052362291433237811593973481615424880705028603865403779086497673747146515851415190139032185550894180823376242494335306140839221396604662542336102675428457926370368223722194050033450292073315898230959793763260185727656638644425642032580459549915323708221472786003280499958965952428134035165414857488793640860232658843503088968312425181832747486978246997249625492999597419352467251563264577746646886901622242010266131706920934537560880616837343294539575234583552983371580807353181661569647915016202385934082852193841382042589994448328075039873874978091599138353216493676368963661075621852207912606396022148899343154337447353607314612054488463226226051865260370773291476230451372344640332126945035612083493764664974210354306919957866520549438627866420515984631790047411548788485774629499088652940709605075437362260371449506960773418878148696552460727605928199229097274068466528204240044562109395909938714057943765993272966844475844053306829077148023222404110295450688188641095575623584703845947948124154483259992741240951170179464788993022231362340186728721239635421449058407199570473665121597681859423322189448550067797299481073305611270884285856316721524274499882072308462486047626567404350158710002461531923280952726304059355496050170835493844108637011132720980344144981370935739029224227275624402431837164617960617583783487380819779199930091647302406362960316689631985286073458714114585911392775536097259417280336105807443802765961922464636955603799818922318932029238667811445024289679563261515218261485488948595067159159112208335140990714896469991273635734751857842024322398061434636941890167296387922280164578788318608651393519528339005426469935033729093931087983999290578205484029671889266409334827986535713318952785170646168792980875388521352619879085043793886667816135311066353271239385442693984469584826235157899231046919360456819311943207261413767084337202899075688778219859985755400052223079349506228097076226823104578731104167055865487354305894702997229033379081059004911404043448194804685607626770011984639643591789729151861163666888598563682400334290236369408667406946300701214355668853845158095749284198785378720254884075826616654256035530593712491162655070072820899456542641489086283883263138665861056060356375210954907785137870703400783778916244879943739317332285170586022490318088878430720686682770813386591065289226939485145097327724137939354283156230386618571050938011404230848902459437323790082463785659372766179229675445122554809174548987698182037716982577996430426909729266506641721515425752267236714876684334214567891284298636806205479437048572083096458389422422403651775694235881959977749523847777283168989206434913827798397750909112756490387594217352706600786238071785077697108240356123528614342775243280017546287025706719709512288838670667045754329470062165395792618213038797981713796654593934597316349233250574548636612505628628151633616704193116097763133095533468898776143837877013549087852914270137041660288924628061285964969134878614299938781083281607390065790713080598563743305250181552593600913435201655216541318893812944254104317779352533247055355949773921923049300747583864847016074591796349009903226887172581612826386058594548355687124107076915414265470827927955007529926052529262402193155072299955342187721353886703769580952247710736302351381812884195955104750711122001062336387119924232260676622178546128574830241772353349910447970699555724827095116779702925202363634236747476803583191104591797562842775877088247144291078572666128399143222043629031012324439726006436106645746619683009851062072810954047403211282258158043193352858031534365883296556233686738253274523581668330490468873289067751542367368210798701648183706044510658755884852790677724837355830367553200723764495890473812606484882289408208426148691205890374190337075102951572920600489684263950634786041860352696785568422507246672655916912231432613373434361572395399523092744732717130302858799996158385245576345261596066119416160335793779943332854393092514914573673994099379814956009928207183246420600411504274549886803474297258462425102795275583362536115274083773119162966082446011813636888038831978475535108998054535338740440094771838303689014061326251356328101538029375799600613495026411375661135428640246431978666315935607767221525997897270848806089105084603820419897303131254403782100325531420275312653144822901231177554487584208768954512973968625325464231153817582572166624449489993651069133822402331409739576336267748515580282344607396688677229446951436253597153354670759394402997469136193242509739716317340029487422553638073532138801912064752586672719986229952071702212777611979140062473153091691096367399155833410333788683293057453649210545225327276184998941910489874859797313308234614208358606359413021327381046114449092736641580891090058217343349444312963722557321341918751371686694886371944663283444323188083145388868915833164837767347579228680027916970216894191632601105745474602585688838631095299236821305159544252110450904815499039044919318655183282962276096192923474808709874650888330868116422747101656828588590121694928218024837639781340621241007554607403324862877577430419487530047272596731642627443955058338797922896468998590842337922242534302453965004442504388620444261961513613830091265896358953277165161602343806434364562444032015288086815800616389770957056596291729853697183742529719062293342178707526092690617896629381529366775394288827079757611886687311091013568220070120467456780867569433375238527949644985099298421615872414662628755028135438250625555182634064823135868243282051036759002142910001908354193515446460559879974848151542112871917295846668385188278614163660787182739566379790271983894010584981205510249564461063163202798865819068836467009425131712662556440146034276313784691107372536906470031536030709831150674538180388746175140272508574044713918414677506418974845643780785794348061601112334887733338842285827705252989407340322096813147226739096122156683926072349668645109520368096175682184009520193855858103792785128886999846579938730356010615957252096070288333238463081045570541061532983264317540760850291170371059815738028873184738321921507796667155707571899327365947348182818609113197519146399905715829823092776324624459530629790874903624311250389425718974395951973633946135441750083699313696715187949817821447411848021800975908074908109960992091382427269968629272494900914641882756257882620848361654462544587441918432773156735139325747296886438266107121746096296723698185933692165817092486288115362337712258089243917093654760756896129090347704165831242635724336694879974987917838612536241837450756111929881786064121320893074736814731256269198833770971642309875172413266145774385785816892275044453126997151200180272833770054074607252075103074760788290921892062785373495828870613685649546566124831707138420759586075654954781823485819938073301218310673622258523706017024960417944113570043235636862413072578044835370013364637962366841580230998883984839352506401017495557816807519948080469686230547389753192135799972818933227192794089862623655471349683646840996671042730885710447430999903721045668785799268639397622205454650733524100673276028645020717246543299607534311342118993560482661797321093510034777814827672508871426129061342317511917059794341598281463133077716997952499775682702437770035786784195222320655641874111617187383551160415036643220269934294847082414916680564606386135340234045325949191761441705727238935600448875672804963098087540966535546559855251798775403853548095407869132001006223290133714157339444362915057015422106787574338341181020473251684831537279443850745852063752858252495833667751242793978572858193073778220188991315203546572489257045954639207983199563006501081596534860282224261913956176431847359709153585066336653876298277098795933851318880966864269796507057578458367670350503439171742971435492203057224186284432472670056336983655754959839209981867598212712093568947352426525061518016500545748040671529897854707734246609774554253814605003543049598923943544353773811128829651803571472857923935300893659904782067163144055666810289675522367594611157144448981516986770387667883264500404727319434935765770952571839909173335141504504434592903272228348111612053067691206536129203568239011804329404059428538155506439618725538819808679632039242660979916054864867654844188023712821464422707623120480312759287670476553380264955939641125880175707008087385868358120438624579647458778081863373474644310043057228779940694144091468916607108109618513691019320944375812788572976653268727325871227232925199361790554120582042060777826591057021984128589738748116985670729178590637450668695982979890462095981863545118798478278845846752230334567550171647035409989720739612151591760646706597700315748300945829083609705692317512406048012312039391762573102502157192805919926606862841584392506747271214074083675697355912857091610364650692114844171799927004001981765003681473557970618945781026312003791714490441857403387747764802209383591387807770358369676409617948349826012266605883865601736358629156566218864353530663689086958978569393567700492360676702964858144635489630490071042436148510028616610807356901289505006152524563549571464579194163348725689026771298048541774298342660001923009750228696568565424463723805915418934847355643117085319649750299430919105275396148719789064538513244125794459307037534352910237209642853392336561583724618954814391088213675429816975763799000494937478920963908143795591720458082465722007458366867757339884682798220893273431772754694939269334082132153530725778889525664403310188168908070152315686754976273609948111346402280565297775965667615093121018395968915013989116757467983400114337470426559320853494047122121290575275228920191355778102045524321363285550658351526198043897073664818230239166181026225807494517962234793446477315417244122884446950858193179202314372430775555316747252738767346691002066407817312400253833492576910703355677141370914985279148177528757816405778385549212470585332540482987980938458022614240813740731090555190493349533953023566277005732207355721750407863731691903378149391643686700485427552204436506264475937164555210638082936729524781902494218149506498183473027821285000122016320764574856370356384227038235124924889383922850856475862425582662725065994159241634623738783630013324110214870270483823364184949617291887964292166232764712082532131190882745896658458677717862681232216912687812441338922671761318752837758573462663803584683924356575578955463666795477021325296643287642107395036269130656515801761428960168042652879079943742220148855797860089355119038256749681626276975538312433557317281781663737850092499955555731215527095503544885103746051119376117807670614789156372033431903144788037155164272138483125313339587152248590897644516342709759099252776397759812342330754164273553242513271469231387959078956923332467972264268080082117352432400958520629476290452053986812378206400604545040166638340090102088649742269591706811735966973731324041461172060653583968283048383576831906859029076597972229961793512930108474025675996619989688236090082366617036370772852181817003941170504794768840608615485777928703491601661601073328120211357047617931212310159766571876144337704686503149565527303840507338198124814147621004927755800929025556563881539462327330977988669214376987587314439264025792519159278692377682568418395999823942285597356975096904218193665655191852092552952939590778853893043435745659430987323976004318329673474534243920361495648796592393890259399653776949072660672299177522756019050867443068939835783614811289154835200477247970589255114701378184196017488634910057721003139986822195856259446362014023440982503878435042496266159585897038987184866739054838212899289266948647235710191910722749434705139554428153549824072799008333100250050469050124995434731582677241402888520399089596529214730004024991025711700687920500284813627892953297185781252615389826447726426895157366199404737904910022990928718371055511139304761453376935825146861665982966484164611706718971266871912358824581082437584186090649759643033704932067328860578562948200396561759556437411531057568176993122365888348020637000674615708509138431883474402252268352029074956394848365826177005540358754784593069300703295290190774768893697340216281461372198406066553842675372745265204947619992762015425214050609275966308964046708208693487874102561142581491263974500317546803403550642067201376891076202586523174853602690296894818414748075114997581182120759969575297302163397511500050225467803956224306498938809809836049125204699016076815711203720884640932158576584713005449127020249664120390330887782313668827537416650074659974331757963050537936248987328207933476266739642532384113088927091680146920979096858088963372961820076585044388083187849575258898780966315527349273880703128785682693810128830118750210347878658257400402393225414352422032566223882266527519964715773484436137630493510965402824536529208586702079354912728316595341860185544673508187910683378757256707663888109878811166622443044457755668104044170225103416725106715033181186566621333924368864640143542161947390536391376586109840654696106556480379434297696084372252670044962800133212428474748197703345164890975752077312123552260784455224327149981870444594763381212393849026303621820846678635487927397689110989197500242179140212935247268841085448240946006257627916730639908520400787908210745850369975763272564854181116111055344692407114349577726538834266455484517810518770585838960743703474930508086119268060588358601672435652734645764409926122250183633869924846123189291825632021304260443358350159923946752245348730545279776764023876165554069065219427432862401641384106816144148335290467062687209906724886013744870533738582808703406053575992817700241813990621894702757994320677323116309497694689053824106231013975836962723142222147332645957438826760883003571017636190801407667243082827696283262540966874664486597163426307650558578212232855645651113129973170897655334558086331348709681929089559621369647026464832980881408221166315957383287930864691428367777758541909774266949647362749271274154288104945262895454201188400384838358300046205776605428241125952785231873738799615014121453618009926271695855173739587159285416571750877298774913664831845359500298586026587625806685385374286195754959156509135732790529513215206067194124418539749175354604961905176273487326631751405966097668001602504174659389611556562248575576511692094716534262450307072353800129882511836388243190266490228410990276346730153660943742224829066910239499050884948034936600229298062631135185320077948731179298439056317037616378142452661416172942640023075683136542361655657347934733599892022706236488006230092110690449205180555052945227274451690364060561761410327369537335406405909839035434871860718944619110528908411309001097754615907946615004865708726300999548794182010467055585094889631147776756223315821981192093532323227652445489249046048868290941469072526333490983025074580227472774202323152941667457955591603895367874888710236772333582578119950859999054433039710819581413396976493569389871197655990528567342454304737801461925613762958897730243185345309527697227361669355882730760260856778928973799347115162398181671377435896451201625598875882168096631623341979444038781306036288459671978036476489003065778456869129375193595095062920011214285376094491057315610142682076670255930513136814932875664964345627246622646743692427123076652528952335172827857141549524752943478314089463281648274887085321282340749359665333543387524286690183710318911105095483890277466196066818423710823675103581834956018549534503962138761220099174311111390816338227105128182990582180277009401451035951410239254503809020961159658578296565435541312352646538528086358844453289620058107911022132300012492651740163718917544348018267657459710019482889514028346047698003768149698373226148691369679957464673550247829430255304997961235037297905679416936102558991218544534820307194710777058304858091598773665141970582774687190186611482265518310822031563576112495370182249137940069136639462938155932823927626526859440559519081414176846135495069029541620727858363623680567243533613442536428247138809619407235612137007714609958865905786336896944909882053892382665916974706833796626010928245602928463273886635771557102826931855068233611910850844857839157710968517097438316363958757650518319953086476358878291528265465196562299304295175406511430277340058814330879965999225493236026147397780787601703876657364984258926832192285025235780071202993287472534022869517773880145515669848607397221515459375066683639029281981546119807735373378449132287652206872141130079908490046080759589275066898385683174768106028263024697071135884477217548775917779412828295592208549303379559087445601762797349410975738264283885549301860627690144547513925890283525342324713963811201845473535366913629425986815437963783972398967292036886978420188285367020543949897171559401592862772088661884943070870431753076658840177265755300507440031723248884622370647772624873177446913593452747216164006040238842285817160101948858920220368897311815265448046787931081269886037646031975286733032617364626618149684153980438108757577765308152036260515351831934662295093266035892731896559255063901094461037581856529628375790773807201832248052200340808951922246255762503791767852678485053976843926707140586892970369403876871008891199883341468546083091679621595358929340729066955117447138108062841087624948849026579865629261193331575196543582481280895678168473287972833691757982765609453383372829058299372015466431173785238107958987755049189065018672672711872933551107813686363591517156861315075194583996912054072352162349736025199443677642807676007276124004157611679669788207595343766722753515984623685077558723529681254733994480272708726963809835275938559612428654382093860747611666373683778650613340289147612690385846701578173927689903330948779409687936020150170874097888527937179928875781371668732466223934046423764071597551492347465695312791804074358946551877802855184320594215086451368643791359838774097347793021424677260771852786627783234371547668301341197506965952524032866157900094582559156842955640039796490037768992651522447371326570892052530278623234452202917155676741205941835078188732261992202577431543197043914082334473869436396984125505265040985009015580297976482223101345599390890244977320588242230530467487740623111766766450417989256681843032125627083289665771825629150087512935535499573382485620193033452907339700047514331895706851701998735111938147138965151191770790404477408433399166577681421510584650655771989384335963795339528169148749147574170713959773177259279119036851546740993273764563591737901130613933182071521062067532129812590509070256744441760880241795188644416578956404790926368564215745779405150834273347960397357095964427688824466244551132980666126203159080243411142457979098922584241547271416051181715488977068559324167682978750212276624004844591420455317376851561665604850232800408146627823159858689473473561601135165251294823712141661779951407356992975608730478437532376796104791145134759207911503723986932998250776843540559234853381873140839778636951969610229023160723022580290174713946522476865752278575939585966237624905336747839584620187212414843053327601888478842177306529288055178796357641607622308498879335980265733997029374023067222044402346641130909847464507066005378516514624802446383851493543091715040291161430890252555759943252321012419748582245836037080291042830456563386167922754214446266498699888601190477978729770160512534858451354565568551900337630470892090583635806084690170648366080714663379011601420392589832550435496865575335130024431754654541855777013979992234963202367123417722482354251716142547848769303089484397614109956459612447230569620437590947100029575097122018440940536331463693572885783520317108048486896779241691250639604538724263538878693418251576394499864944650658424019439577773208217856673337134819904184024481186652257020209091638872844921378230785477933405872471471721062088585149483140726681323249297830336029247654919635459101783781443046385241705781389692988401613192504121586568630754889613773261709429657373277157254534515871476389238144341697219543526264894801780850886584084253020071778042340497997943204981223059373172147638278924844893068832802470422599300595791330446544237616046171916030900086335965570585709795582313539890385987851925728777276602381605374521454113844793747994255981145184895302063121158550686931034623174581722285997948864576361665859223720792048819668260616324997562039273002899595337029501281498561114410951650050032501876974944323347153607263839252340415310079484795505229477086441289007348354581136992656934963707183700428633300873236291401806036794456666177848374848127370182107755463524148484672706089069006031964225617262737254437759373622062981682360347430656853596654758977260437637820852334781370214424664321767232921726794190016472393049893060505192510772407877604849731866932269953515518159415991321664697912228660245831495916939534528473947630470386546878123562901655931818677459194573160417012682534042359295144680757075741154511125786282341205693129156650604638121276821540326243243303019551016161403968079638220685013395893986102605200135427329299344509260066384569154328341882879046921998060040305145008414708128896195990525180384509042218629903409648030019604378634618572403869415558944917820753455054378095721277307731124411889288011965831043175543571970401192199746720003826971929640965666551818716627194047155061471233443463219307196824931910089184098803816027509151681077023649121725269636988658036335417318138510280976973063323053100710274592910517763983384038078604428695710273433422036914803105538130459146538134186397320285507745457556082352126574179264708891618549640092975754637008793386563154694963556198223992965021105919058165572446972399580111673575648066469816418716539268402521897735915505053136527434906582086146048178991834024448925617606135934494231744072407561810244236625738912879096971336943182399668961312815804137043472427125469671338467215378516375609603890756400588578116766383045923589854729902564525477572389808525118455189026221514011725339926898591676631535279895251956572300673847606455314260558844316690981017502410947458954166787722852726951948670480608888606560880896081874938617761624664496621597487969475668739315960903400097385625533107388002860561997774049953782222994065759055682286417864751815541589849630527572347348023251456214971577007764859545149622722397863243446656977094673921544015675828926675648489768672559891319033435277095960054103463043430531440347004797786397192015203433423001202957919793011620075097254818749757237649020137672428400571597090880263103119783266298243281023073783429906161984850424158540564045698576557022585777281937882567549536025512341217461196472455681117755933850830478668655582699024066116342158325950237803972380380806246839539755209745560989227419702473451310227610650261038667742044595398099981195512253150934429836482068392509321572073216251448768907362245433986823878356028740200862941937197872636655950350585239339406245998879834473619851290847791346750049355752458142447207881228590917055391013789506851115712910357217520065466704251025707050500561790632989464935455266613450886868808402931837211320421102912763405385712465831139215772667932626601676589816277493800273711838981363423152467042143809207936333672478553112938012534862561837319391318543785006973934426952543402995953334740718993235839846531145510952641673714769882001112528905450963157430909595471142734563656636776918869905797947211527603685369412478382684339350712198716685994607447181547080388404617695819331146922791836680181452807830545530586972842419941599343252495396010698800869009789104008741311119054829246211523442518726175442438187466360369731281031847824403492644012386281130093515054908036458716809185455291647760197051351998292686001950639217122215957497943113109573697587960893127468431157370175837394749286068462642661418408903852894676475264180272506941401449901061320757308526070711456515539091308685450294155725240044848730785201624955940003659742123206436434929625707149068764071694001046399103981412588317669549754264699039321005751686920511947181939088978933067820786399492730483268943309471024557082381111929970647958990430039771849466870799707916829053065076087760786453127855679673487449535119397031835588428990236066687634667283189263642744034767355861501496315614986745644479492133423109426177380222181002700701910989421791617040318455502728456344779209627489413217001349481141407773426111830279591775130310839862220385006188312200185559244708518479150233126478577212992019945439348929998552371000068555913975384745766652358440017664464715651395232433808226810553596695216657838917341808508371913270898927321127349800601668982191976512372385161932851765652792861048486436554033368187618699120190530689170510618093948835098169643392541850605462116667426716552089378744265568090000625675420296656078285318245309225678884374190957646441817278288592077474199613264683965164473959714805037560205625605373050034805052026889920985836611108286201767773103522092332913554222280973559105683127072436270421070352009651629362163764471452028921104612545626570259526158444255523819343689081385385541890205385430081613560651276950582388201730217464189917212641808207022182417438282454451559771645704715364361849384808270531671123028809501305187251110851732151086666967515386643239884692807108384032287150601481315319835484307619765494087277319545353650747885028633422896418105966710433598725688595015145445881255458371037841851370824772019731671703467831718909673531326629206567634095308243863351235579703983356151220055077222742883279052919547894598422778456481206817844755745226248385608324470776026223661733950512437423081590024312860819539655120994523230838069758735278008821531882988756107273529786012840850770538248947360273829571920401246675797138479434469574567659169389057665260860013847949437645796090626816540012233274559942215136238157762861084695105377733035835134378294048674872573026209346449286358517472326977729106864915659619158037260255793957321481485308225997407935481420084997888984356960745576122628034904203035464120238330067158058634149625964768003545741422987030815892311275917498453438839363732210621163501442749742339871734995257295109162818976688694647050690499299937096719287648414426784764333581884192056324207988446384306768008676568498892455409998449614998891242104590129010984722126556487713213025429465719571698083411597297043711107163351301501006145955782233081302269690711876151650217100411384475763665458013396340695021849613331009579809378166058420512877399966181855008697121050105847340761823147844666302132112202624520171687549950881693306953206298413276452657867385720159542253249230237636648544651911931244756035719523223320753891171795699309443188971095648326890126834731335325527205505985650727063545822951827763884799273163928799237736946622776007787090385289258190103657904016197905922620018374568860684555026567769542992448968846508563421923107251072090822534812307107772448716359873821422733630927150722199527070999844581125551694842877191132276554492749425769100040420937696389068822963177475838754683734701389441658063471116961326730447470144717253817957668059941433864971306347910761238896294418487753756714676640513534592649890003321854827055755395614482423267862863799257400233586649446434697837442717059552155916808273390986169527585075749298299886486685448007134579463979904172844895053905748355964914724704856133712294864025416004685784695533112179829268373355514830433489951499969091657451447318789740506895515908103606093578379294350796899036800769684558760942627076586631823671239135448969201563027265291955845707634643757438907913334850630173518025901369272481621740453433242798955207820317051882567690131806842053111623787678851965843703885120856846997451379564972508490101000284964176216812404460858633035659803432458986797841962759894518704487270311637841716041146047995671056986996369198433535119226303530356536600887891521964619061915252837785372237618548800826711816353466470160731578705642309875943654438051252488039574402183708990200053383238753238957262402601556369237381611885530883131149924639340567611128363507684950983886631436469444825162912169010961460111802244613891241832984711691500009627381387096891945553254075396453902522111886741135262216369000681668135242564549821884862153158687765008301964869337082614522923685359119188631767124209217307296324933984779432665123829834876059154198789090164174965066604097431193245780250154890405303864423793580842745733918400511339271013049988390806015050204239184513017388520644245688701588698056877152511454658748572059604516973996497735250293834753409811279772185203925816064927889190475862218732820150671211832474456395194556637603065902765015746006654630120235417984206460503142001480793153263400555361089576352393285428461029600433280434935602068117951493568452537161811123288457821655872499869334263799362778372336438965982650085996811895903245499335721004103899711875040315059576377080899689483516339507282047837588720171458817266545291868476733778909054773471260658298008684301707807256786020903347860363315585850168166290973819932495657269561662660622374040133467127347575381667827835303616322124111570715666164438532694785656314536859263367111444013369607311332313520091084484631674668436365045759899814985064999675524726322264912693331447426223160534688779101915566493007343322969782145642702323612692204318095869756685523880873355117906631027581750829618422916323224944857690127159743647231519881658380207985231906571097312701078254275138158246651008683217621181571077502250500771386072363509625582109188168070357851159156473053125576833883513728091817731945239147489810672739608921741821856557774728875350164087974179779892546612935495915591700258627039661632068214181868305012940865498773052281427473384463493850947407457444059965593605705171824827714252416057116905949944129523893139946399885184506064839607991402527052482337681733642840488346176935422675643487638040381063880440044052246482603201028869954504156601879724715439822777689242145427609276909075628683949409136230875555363895679302450696415230427103166633592534691052686215716463937218239562245388473946346100206733548316224722063324355715389014990010718597410353429676185806814533946373102330994606904677754801843416051492430950950288594863522723147613755734229839750820697427748816248524665218117332272927721229953397380676214749562810654078548518711281401921782295488568199937303926667798886184525151465103707928323115467662188782136199486856444502041911800862506132028987772823352537166384882696639448412995163299943255496973216888354386782774860956160868228759336026674495196843328344602193497975082392728353499082390052310329749581176128790335932455377773374875561420626292315977073311581204045519896822994731411188367611890523629603178562303270662785026542568720903752258819021927006036663170220701792626909324899882015737135168008894245218910226520265592140740247288736638672255447578762062317172604813243326469744956825819448130292991716179624201473498993771114067414122775352504887197864243053077704464506893800387948823639385048586015260837334807498835477603402016803334110132740510221938618431396125471955939425947156017346630474614563530621607622128565434680391114972918197787107998493746885187820626904127013553383294860736513966015178981078285910392092872670924107047778691329692979840833057509428118132553601440113641093558516140709310726849901496667324864243580424525697978918053441876843807108220958374136481144997880352707784010607901163541152265921774547112308790685586462902873202527607337996459501372229064266274349252420172897182350603048742474434171154154540408548442501658911299169004826774917691384110418811624522973040371549803052970638463064766809841625475548396906432471588571574121250717360081595315013112471422608783231788079188848508737108882909390553067585505638892806147237921509248310754629676854986394931328032364050651577051205427174243820471045441977634079952553896927982516711144126173710279721263503187604016070717203965265382509553649267412051962991631871862900077750486583903668340148245383823576826801948223221690239619074359497275237288684676387232643816321297605923858101862904286734098080680523910280530728392372773254112434511874869080501171548756223283687165344287043754436171979653968940097575468859001850772722670916515942257251830658124731008936447953701574933260799187224821561588082791285312670482353859390854731408298647381231106154275759221141698613033934804444321144615363849450849013991077923811969295588100805962029166074551800190866379578151791056381831412540597963969314557348257751133447289756472895804111670103119391619699914851065750159122932401825703282873370774106202552964022373179114433498865196934306017137815810407874786853141859692510766895690320142842367269469135819995643702108574634438518013563668068781495145040480531888984142563163062726282336527138855538917423827907271947262678624313057813881789715909115975036661137206570841953009889117008905787895226186996602500527749428003467127367298949850119553756443759162600053037730498824618934972499987003716355385208663959237665729144877692163846910909056274758603136919453670039551656276913429236289353438573656106118187496109847621033342853609631086078986325539633691587797082248010212021780953377120080959223164985954571160171571085856522420316120260882609754686058295153965129949333506078112499037636183592779401061723717144697243561598192818031488127182834129710061510383202626384355089736628133664810230803572743181747365042900338755875369234639743850196476627406654007827268828251459044610194613972005534039640740594796982830685563765868014827740535075458101193324695915687306334086924380721625611877340556272440760970712773280912050242908754386149471139969275416077310514041486460130583160285239433489543640894651356404067063653726333263991351410693562577895552738981573769908657800695423668357508522433070432209503755827603261196613948057733010881022255388306864934028946857565177736970203375310484666594352384502676403598083279353934734202647213706311592295391106003849952149611475901916888131799534050645486802480084379630423626469218993399462317638996243569156662111158454028335516182528322061892797972512459174211129969113402226896320932597000842947231539150869751442141497359936751996836734703973523854969960635262230837059419895431390700226038534680400030177494970865262183351543976898341479544734081130405943191812281909712147032071468529559615873846229684508920136776415972135801407815129015070951933555793088565491564113232821830941042528522911804624121143142205874331652623432848461349971733850721480214334235531561609340063223503415418629556633628269881286242664038213107309754435711112639098937997952515992046969976740360437376040171263985777799048550481795950640972364499388685914946789175222572363793825738673304590728980475430115475792327308415551178335149562558477774282575286958824150191031505135169883204001875870001530436067221665511146712798296752726275570191033918776119519281978511285022352438455878988390025134156376683638419044328853953370447678549322039849726957833034574671140508947170392352513227971997892962098264912716776915612635846148330360343556221584778418301401900187574294247568527262270081191793270308703603175000473791627915067053126119381463767349558163595211511768887401464008795355879610607284303331318330183552019099675475904143448721809886235841000054549851523326087108066283748141179171025107152316115454887397842521215141492452643313333438013038765774443106903368562622638052108796641655191160644867318757687544931667046472516808795150263846677961440169518981600876978778996764946075777388519041819112051785257310960211870230762396945355069191463452288239306158569848927648711137855150435968806449751233136589578043705250577986590349161424093547223500265644621503409539216536847808707333163031347091826077021024665003548413485081230197702608763279430538164048178328270794854203800971554060595213165119773996896630650286762363732209234222851855833838534779637622646609510602839541259291984980686858215053983166965877751978208247265555743714655529970153266031343480795036419181908997601296250577542943991649500217632356644048955763982583540275976445864069639903837421463194471387562246719751698160329093488134456736006162376071476452510202054498602850370149907130688318158514621047203860532718544473671128684003898500138883559423483043315113442752755182360442038708937347211861165567019691034787334429022486867888918153186235952904520765394077064101299355798108581432118465695306597847947257045763760695126656329915712685274056320614815549749726087325914720598307517707887932116340641209698777819664688096534557282727452550608061188783851127599714639543315617669326285368423750181586708915616120648261198098852461830753035977793216815151033243954306852649158610526561043759333136688934004317701448538955293098318037011066181433196004015458524613272518845187033196433122554358959849671264203814167727422459003414494081177633550818266278925415276634314263699329725445741943747521094173612701508853693895089869097231017288251382963492909575213833956666605051904049386034663293791877768647467840499552370420705997132550888128410354523530535612795065410480290179020388858482990048862386558135502189742797264422966917973052932192297825864782442429329041682974959357851213390293802412679202186789091977050833080029893738416172986183562671212490803610306262343549867390464379642964425894419997306843902622790671764531899173548951234034604312307868178392570923377227532124587753980373794684306561866821972105870050605918321309472060940002209566277882633929783338671858393719438508981117188776490446358045954857214919028712576088410509141622280621898278738476403332406371889644297870123133072863983810795221995656563982324546420858991712787501628034533748666442178501057403677227433736971546991033799303848184639370751194554207687404816200122105117144841427777966144136710719063674219360232102447391794781676420162386898613812257874792952702990984154085294516695954203223153648903756202609473508141618119004068769505995509838523522006591198056790069946107097866297121820168138017859881961264235895507319325605000994734287704347473177575240891281082355525535674082592380662557283466652536453915692054059429973901464291498018934191288962098569675053018016384451675752687255349585053760620336995552342233272258402265260239554667314035090894832172601119378896304091043449266690868731821093816367670299416923798732660251505367353531872871964045329962221379862546475107996752970802551592398980047834443196198699980794607615598394122389559745771080871699131384401990991839648557687184164055782474469768973760170744622092500880557589582748096951904449851134577326906017937961409488957443054617725479629129532580728203863955023804042743416643654163566424002211930219433632511223432762524868370819480019190935345065118915276987493256576015274946455976946534693493202900720439654838064385776796739540200355502690853424027763710827177883308379910188399539083510148994984918461805956528107620341143424695560442437651345863600956528283465453501264855863835657380936900206855442903359693704006508320827077798259066918982908202289784335743649780984998968887451094857862236302661837757908628296391927235364283724304368661555430567228750350058883412913234618981447990647819014510604237566695227943981144916542521352711955998932440330634987808088414148071134601002377016990701357063403265207544549046019356340287807179270848853017081883691863594800081134074245661906428460433631469920713772269865241860131318744402135287526068790701362285063430392912149051574340308669551555922697070385649135878683171730604190760793327185336390563545650102473260563663833824537975281449368352191777151726767204832770158843657004611451161959217698338609841586828662055885017678026663527775436294924413622055950831854411369732477452199535562993170826020301571691999209653951210156395622963577427929967777614996892658597565967386185605140882350024023744354905853110922470143661516276161028784054548695844596159175843613646297285897006249102234617728152505403832203761069298804116191955557011733816578341332610291995374636406080164900919272313551034924011594213047401575975203694042975952156536277176216606575184080093597946193702884957812749857667756694496395868959213689535371879449294302808798190773646684247660977331258534619461894050291425392603507655076418283347079875329695689851910165045003677231649026728406003123093522223208237204698941437423758287627785929135765683802248122189803913995254637085543117554782300393977990573368880327637414062326055421423562542130022695371971422714931882336400436244581694088815356611891808921804063009025891098197524274030509087670538831819201750198539640592725175611330347641180427762396197329353722001485468970183047303827828863152855869705712515156691686417035599783950880615373193558460551654810913460298276980775025622304985064687651108201515876858075888043728638172768733829542985393225641509095943086887792752128517750424140540068731822902449332796585582996805263761581683421751051748851408726220067934369663552932682826320379126281432764434840218518550248816002158345644042368759246366288676470783012762260876242761012917747880926489798708350242902119655362290250396438086887947809086266966732136205415175044991255488353338216346904463184611351870644141540365341505921029580425637588102849394623663754980839536645725610197855701921444712350286779077776505499310050096283988331018968391036362755590267690179691628714212953891797421581346757539569897653946077882077539355252258212539113352641244534653994397613194962783953474217115255089048399670156862106379452745801986462324216797580080911911027054328124858110446155042753932572678910540022428205494197592711697158328849650400240538662722022892189416057344428346361523201041471431943042600451027582240667036776093305380794170441740685359076660871903776677073525556135906369065895053673124194766827959421312304678855142629660522746312087143786368977273097152817820425485578350827666085248337195886422318581473868431336181388211008754946343468889835358237434352644646135958520967966156562428288002846563919586359722000669857490038097500640646670668732231601246970452707993926146501391368864500114519140639276910956132154131700164588139192003225576394422392403509356279525886510561134988816500278420257420133550756510322933933109336157325963690834764474748979531116189513620512444595999919664523837199785650403020849477737384601791011998062069150930872114268986421776248082368725364798476145821353588074932826918418949037540893681042409315758794967711858382714723116837840138916684965213676852956153674526525862768133093271884540065190023094117566545168612166140302370276534930662741678354324586206077511019688715724268457523556755573745712493001831888317349737419965055030382148904742065065609819911517909660054201502635346102136285982887716175698077014052718659746985970226607247657325023121106509114359013546886985750557911854119538837262697672753102005839546414133587577470709727002273065924041230749550358354708498433363048168988028098608331882157323039210359109280681985565714636218451856508435310264196931165715444628821341144496973786364602576952902889493088028431250015459333763419830629812160000547093896936367322495306700385326165854474330209112758016257084171333790395088375584159737398328169288867132966275492646652440997391883330712160235220726865339767815164382246443939491970393414397229806265294128221624342124098812198659079109063373695126656292808066158644877006683436014540870958534496342281814946253745534623047737139526872328903878031559656383047499496973095848564337384630533075395904029075254455301198219441943652457260404453392758031580200345149297162215509341286658890902747244793583586646684556574112704349789943929309252669112643498112274160527751292798604804917252876601693433480888170650938397616522858204909276850862671060135285508779847908202424466021076084788148916789913036356080991737183353299327693049308724162167809690485828925440067623659236618402776073984163282681437574230421948355318565773262985331683817094681205837555370519480019744041960640505289414228371891569540061685683525295028044317078047562877890654501873936509403877326368791754449144904536747605980367493456790427558127750820537754604299190412661581107714762360846907851296062653696530094826068284268017544801285852749451632926512573428132459336759511324494305566822751762796366910524434046966949723072623183917932702832945384626026521051743415259064873886523748065444711112679364929120782721774161865797726573660819102236341230192651740513622083755410740836000207225559491188564308906940645984920018391970457230486138795737696226866511738285077484345398818092922829119428768585629415574466110072062728779311778450927151792089061643731955532905032099233699783876951837324792175068650152941849756183950686047088171844742284656107077543454539324969087814463543446679272679922885755955963006382869659275916257118054473398385046428257541123343157503998952775385060166649047355947719402530290490514453228428660766650632444752242789486108167216732418636846946761491152019012044516860081694360801743584161488506282457376241174455418857952452224338362580904634121262541435424625294822587540965433784250875013854074330213546646881098052273357523390574737103262112372628362900004541314470648910963047417876504558889594703338846065435201244996293729425856112522994119931200975549140609622314147022377867518766152885338849549460536224141236128162938610659706234766789693117139709760274731956484232327700452021860504800880907993758465463768258996678255032703233449384630315535587832712052180231190065757880886257824111334583249182923526575864163655203908991088091426607799537832248098921675063039928615076568997374031027400013247372424398240471799771828407711621161291134969991756173667992330349681623602746377073609642707494774276652224639556637656663518494921608030618600793074356410856033968563165980155924081440062713509797527395444421311345267236406768885204522131361492058279867774252859563240591505459812743679075678481395725747027221753355573118753296912333475592236168881285017439031908477807921360380603704451253599919876286217114158334353472958306176300123040933805109059934445311129689017169508386732982858850994564868052786207771157610815211364704705023440284211113299262261018068618339774942497608837618846128477081653425033917053890116483955409636251635049566119162098302914676766810825497456608996661908798328416991342921938326651553923915992625724066220463929480217406636422139018782046094592362774402084261954269098764320209976420318993186226716231312022704363894871040827463457697798300349283580280703395997957040916236004955873751420041306689832708451485909715712409061355415431906017284885092837615444378737187231743342340123537881761128940537209496226272635344441377124881378860641322840981433968015242847684575419010143769025881699234100190747484646199267856368377656074531942100985148030214038635005583425285814184576987606698368198530632341328303319424709843555993079900213643600402467760702761457757442984373093378174465182545334937237635781348343228959568808220878378024125680090491509516002556452887274267809621319685890808031109742671544883290737169075538656981649363416095907635802152255257368391264771577705122425646999793909193679149864538836027455149193629393185528849141866911348350096419210674709562417208308533750883549207537171274211781158731803395623727295796854704949705831569367836119470901135500743464315706760073109526805757127994820681976513781165937730616299145694708307792333861523833597588011398600994410840512665874873632128177116041548988679405539851167248063848674262490705282227004978242601020140873864436606123716705403643168868053217005790042073063261359769268602366457976363275174165122562893819656171256911195726018212393862143406336000657395402338156116795792365472582045745573526436289042853667847483869475623622382983282605499831968833788285900744501270155069517945947294812501624800275247139251286095099737523094286722518666818286046795418733120384256527666692352109756591976816509921266588673026931566977777275987073756211629882791686406435933892717298119501624247741584719593804563227723404548811989854724853665505715641763755535224431830528741459502534561955324432979788545587396845187593448314724307344999179114008510543970699602179261232564934473268008901566332502850856871723151818030442256350147109358751066624278996058846342140847772501293357580553959357024998982409008411654227762003836614728813556339745733019065608184191098049429140430247262034068807401910284881933061681076428316898349906560221146034558138705710355319672897808161217656667837774678739303598723049412788263150769717744750340060166162171550569222737173079103707267164314425687638565427748250218548692908657921952402842518259074134254998390960210823538348075341167680618618695663994445508857924791749259107859233777669387537229849228418460567067738261878950674900846347143931309930075642076739248166916567286295741418795648188273613204020634743879984760188251793193537181441244084471846203713466932857248472396478698991875020870620307331632154369149498288082218805775135160366005321891427766764530151267418658162061401099183337026826290032639961624931445893002595252060098930152436686926207589221279790876414522377667611679844699639903413976919792444436340583193895340599201599175614052011665024978050397320697940140624005790384716373567468112247003905496815594435267222109797096182130576014893196666075025801363511790300219708644461884340811032448858864075790445829407830760583107244060177265422323415466678868079662404531595670418752481620147779354587969353440535118323772614109744535777418950579302525770690308086934084767232669287281208203652291853248247351438459837431128436689908984197895467785301278018092962904388420545962339650309535526338451292216275526790417580460679241198377190445621874112965527950227973879950717618735120597855293377824835423692538282279570995377776359872528875247107791249099234084776952713650101609766592598490974325870635463164582736893893212781355823187415695175735363982996069386497602804247776565760041770326907597152814123134784056338673047568494614389691741313894961884380369436073469909403716881761689634077801510829929949740862039448462512871286922290322400403054647089920083508807180539858907850276255251151583160018313240261903953500188190385756582895210675572376352509918912357449434774162137392654703173277337837240938010811055199469389900584779790963102136292391970683122326027516746239649134350514669069826342278773143886751958365876158357000237578616888582881637171497575819917837888805420030632573603897079254726328920602768349166345164363280063699659877617623788974512221702983725056975282480179345283133221970130139255167006778847889349949111825903136251087273415635900379324776587107429133690342416616089550384786515025715537272046248734050720780205444115630611312750524947616734131100153270373422522102346858815309406830010210525410131982579295132939424745510271441835837094112615189028108291954096391461544547139812126851024984664737151279775637345904020733880176558479243734317710913144253984433561391770506743143595533192899523120345269332455162064387792427199696803380551438808319825752019794702206813922648837910269132685158332704741939421480150574513686268907036023837239907862989308280711400292276357419195456318092598894808905478273046157223337137562261697627539471350354306892466357234848987335382900217905004919459024526150428373915569911714185901769677953911360256631733191256985091974319134689015031015437129900445097989307064977417380016038052479349543721502442102578242139872051929035749816263885273877516245361193197632094608033414520329559426083797908050489618541668302064978944549101774804077970870874323198073479085567288810687183546960507333233370735823582221166933578113090914717873054436583085284479300081790803930529866421614826182200846968465902267697864903512293644164125576318018801704121104363555749252194384680312074780421958161646105098619924620092750211051623388939437810081492576221048314487457074787153828144147584357032326410470033406629956606265496054491743945457142480861469089599904978976918589042893247505089359709486213544678744997489291408905641156254339885949913832476199490987804516809157997785655720145237101600604628515124600916646875709879997931774180053289917799529709288744697918651655651136025008745144579861127217092186036927425409064127517804193433727634316039394051768444795904920781190853212038692792407857575091446812416239978505209193158121991871813268924079312541694137591133300734451244605453524633889254654776645391519543681953963321729666263296529536149520203116105047434336795553159945416020163469609350333467187134026464342686152580385661998871943792083213003932877220142099149231381076551522762484901523561964220010994444388132460227509425360735762614729691032399974248231521116251017140453034913407661622080219966886894018552837764705959037011609216616187709021368207028215527325710612417402874499415699934177769518704987496319118883808381548130610626410093775209970038750678864355033238719475475005045199772447564585570520205144241185921227275407257244006952931237803874037365210521563331223758144141043253940510048671469828227263715416319360142446504206342622293298634846948393404488827275448908083185514030979418915353819851671977178695155781604164043754209194044195037747114210138541260755395963294867806402127313262938541477166901343743886323162144342321909949031769517959989087335287110835487291641376258377392288817973729471489835357503174928656354164303927478254850803058020249713688999438343371115960546839305847200275665279028176342793683388287367117928055079764960394788599006423244491784631288848343086634569233593998989389611344431175469442826632292693343988289998929805044180289671405457577500765514866567757754467319182321033987798488215112645108137573400481974876427298180268817067014408553879759434414971597959443175616001942058018682143791622509433007999970351792830876804451089478201284122931323759704175035276904427730523763751848426244600700557659045607409719498410176551701531080544043633685581116570571074158968467107808529043566366598344323014874353197396307307291673353989415888217386946445840142623023814941562105760076078468251856306562798943858406923066495347567488175396478049921117468387413651844651525515108700845285818164248044663056104475935768140595653622661222175433190540006749950802497837234681911688334195364081557836556108171380019721116068716180749092798754721374521006722222234557484331732422954532700802095232182179501305044439931782717294772524543180533088941022521528870284534698818688005495782665270984528908813723657518596285773943140347384527669747598142520802755436570097189676758250550834226461662794152773709498035299775085009324315664319542707451464663649147865695756447700096176856612573191310985334184203397439545256594751160298824853474786473238874384746824162997825908485726041679543630760125327862306329000325840752316242517637344653903306012350669360533299541809759305560257935714800183287255733630163288216762513571165553459300959273926225172603780692846634088148342587425980994079524732236542207090030981734824033766430171343114092257523351423127040101045087444321188053503381421461411470953210767744763138252210997401994849230890392348392886581436050301483785030231116927023246290859574115201418859344069766653743040017705917451871516404192631733314406536283027152453066602764288106301265574722577596528133591556410990476335635163140366454852735484313326318189653634555310134572272833538286540706165009137674594362550393079763199677836688193918004491311762440724825355994672538281054760639042196982034482287892997071419128222371616520663479179532523612027922425011374062533461364762673942103551220541370127724631415281777906338663099881812593465232824221845686587339687482446400413000829205732290220907557247193252329694774385699970017573727262369820018192277796589624595979504684792205766155825337904999958647484158205685095481093289573698298278956977393823065718802189540583803705898130015049849876455846369431645617346738215788924652899404667332060609143450365788535539995572185276357892574227062789843155610156317385176143513286831673896534453123065365124754911527194956999205138661727953056621031319445144368338453888459065913576487115235964305062302608393252968021761996588393700941718472453908939512393504739782707062735809088290197779572590807611423249530193796279985646246428714969726966700533250512624225891668150881332786789139938407464331800033707369758327793796094490604394914858457627345735958417953899461241164188291085674992951205509635038372329282801409940023682663252402438614839380711570652223400831043812064023599607070015788061332580179297556820869266110395620496841425841742427992960518017006314251690724183072804117655747260477704613202996655955314406634749005476327332316191934287167646881192578488717592502737084072749222684898815794029615330900996880682360131812431057896071800581465182883489441296812829728119795387758674214871951532262334282213629293795847790738054136184265015086146637067211340849829998568184280681912663129390776504035318677590122131091485154816205958191415981067034913037329126842783071869380198075293441218273787586354486692542437772886652022613796358671244404574171648847920265548210473274122731835552149852072075480818986783471560914409310756845874527733884674896687899884732981619671190731448645994859743214109081136439072914601432892374294983879659737691586289282680225609804163544084840657646330689187616776552766448280564190350201225591720789074559508340129921905113554537168523560988086341905996334681556339420942155939709393207481394244156137502063472409135102981115307977631530433768883320646315602765665201347744578565119488841560287303728526781397915711934135001262866240244805409467808890660836632686666771890489026938314515685850709849758099611628270639455040429124299595561210664993056528040576058877229410210727758618971458980488608044662462683394685457630599120446932781591365727836480225978569276049102289521233474100636665544028948409260173047874017054204496419400120864565089907513154443066940848257772216934657840346754852055340169392993034974731158524022059452728860121472420020386083061346128652481330432167638819019538098099148438557230691404058285358426333494311324339288912821537829032053365518307396557820706139281056407184159190844528382713716286810995973266753281371961283910261974613679114869710157998465314054049277021621096501087279801831325864518386385366617632988541434281906210945629623769039021598005458588732261695236227831447575845928673290862951460256998032695174893411383146453780087180719924645962632521628798939809559321921143755692932480943483062204028031781509129375784375343432634715992038663405841061297405673851578157715887612501363672824369801021334412051585219591401149824413308956940677724807907562665817279413625510776126905618376726714630838262457014214023234868977054798202756179403527978940707330261189242913271159955658894458807407657468943564746630251220001328139928732810490750570002996391978043953534932464103513207629850809513316424586227361985801185084694076607272976273432506249385343116659628606910357654866118533773137412928464042587266872580297159489313266531132550387877907893524985405383374684465970866740673853071939614978836658112030102196332124462248625961787546960043710587784582806833320697660011460883640913140957007721774873502830236723594866352338093380565519658428314369353564053349688990370917978070229529335401930566800220767661359768533552580564514108235009348439649973773604606696316384416038642629478819919946732236562175694497548563441714630143902233989632987079144688321173162687643507679426553454246783917621315098914394267109608975201310163721369518988041854801167324794504775548174677777580817985980061086518751808846795975266743780181038944398201999352179910884560366882160952653619800473116491248544921741245819163266356496560103268874105469575074837089202206413217788703311706843260800074773357892188913392696984613611356767531908969480754235629589650824483699241329845917094281524310096242826955955096013070327111265107232623080987364511790327010999484234057726483069612768624984695143607953133096426998905101838305710202016654522895877338119918720856785798013818418380492824813453685636427045696073177593210791725534779061074123550672620032528846776108443564988327252721867516871614275649348375646402942935772115860695930210587806786071877548502900594782746815396958268439266866960329660622173127729532309459606056920447645741511710723018593621247220578229035511273306475085887757330243291460175108280555804742183113398911670750345153956757853242590625521557448734415163169431225310854464277356687149111116626089051448955818698811640378611744954184362221405125243695174610599807966527840989144300108168747929156367513547087170542605741914137581492481327067628914144992716966521907878006893867176665612061925674454676789384460074009667464338676946349082525139327302956934919847785238916839100032051951314459489954593278423229902349551444400440195135104171666712892791343009688629671281726483522795837974681498423375667558916604406088156634512097216696680248564413166453547542715848475040945821809785413127578519681599653107566711191670863238748477943483121591637212919799323746691629444294163779092666398426657384388059773794120593834956579592432527943267427489239922817414287307137715947601772677143983672089955282985000443865509125390531435804164208817826703522469593140815120033839681958117812374958465068192489369455820826407281605346748641661386595260693034468622594553426290746205261974057130049569350670860445312106495893899184631616910124986993748287079686490883006804929546478878699917200004720263829454884411429597569926304386816492479714812039520436278380420219393856886004720548818361485923386046966023313515099831304896079817247080647821875958720264298832309258060560796796847891794026498859084564543875034477876137023672878438801551433712501995418592489788305807787749793604413968709308266964126394548184514489250476985444359577750079474638981740075788899682699713095321629629938787075443315660170877245935469705094770903543119211236216072135655205089128265568362296374715668506087312976255745053023700364114015542251877883966829414955120638917639795037707230484195788126512541566185631603047144405296089103212780292237556360987987753930927297209142944357342483518425696469248657967743173798605122466273879169204671583517548092217486035568162173889049390378529074816220521409790154780533501404010231719026228492603653704956602482116783789584215420439600185394110784886508221344091513118455654723326784229026635831466906835160006609934044902592058856453710014046044312584612139759314194525577605562320006874122970823550558992333685777012888213783578406538668457888889406085199792818227736075464643420917376427349555183074374362526735101153563925986023821366483590075035524153132640688014677219258465947055513432825527268464176375026448661793261587001503714356496670700418887315241499250932906562834534206494361456416584271182781459375853295981233338971044597222627481714995982191209143349917169225963918134479553764781471653508708975438675256011748529893227806046348430453314537729196177569180565771828028056139315316947447985037372276002660847791519803771053202847799482184398863194549771440892258834346457118702519948821258938281813094298685726755529087068081194085479770257832407708185812327883581398009714649689956938327722389253479608481278412806966169176447962404005948964485939759064751514619166654056872679502934961215440586696169696202985438057765531187700061404863882575251117657902457022681241633227377828536240923975725048019709346657128788292455363450952974332531954163265101988212717577238217923947535051032517049065410041191137764835253398852460691850856783599871283271375983540444583354825534528789226927186739409703473674797179171867051646313557799896663081216520720277767375099432635074999059436594580201195256075221827170503034021217768378811947172061449955993042865978117211366541020735375771041782334652141958979650938834475407519181594978208821117426322576379050790239847092847758281142309749811270180352109614569151880988420081579420400697350055686206317284809696328107168388143592374066194924294301885651600727006558954297113755268396262355714967677810650333339428684043284220199756958851685359423387125668239268987204426173834074653064449211225151596300396723525591710499953564991913861523829701601341724676720649171282812443651730337765083344937467966156565206246555478355863208126437688648531594971261461979182855222875867786460519861973078142530423793588846746990468189444101685855444626103818607223921748358110773500554022241355995661815694903628525283486127197717830456998333363432729100439527786617663956726785812223297452491468354549651960980259743664637367430872816635635477582214269570025060479191456168954542687751746143191817651044650194199009316851923792594483419905990325065410493402152904820565702027696409914033265336911430307008206668107996685029155864657913963730238805709351558123955020050113347123383884120480681358837663360245178774263704619845997549867818881248878688082976165882722835162052540866392060795169383326151181646015467913972782549108847765637193364733110233108927736656304466396402617813464312140687122217818018273746326978352961548759280866330162351113349746202059141963188235356076299854323589690611539970937531089976855961398508590535923427688629463943240887233688766042860207328819704103314722826129531405123652798569344933140034178028221240872380928004558037900843412183481981666696071095071793359110011742431341256812497883365806023739842824589484743334080922967538393394541274118026192073969469684081872699162422595006938875708997798420935583482101570805680761376231088092479375578063227641864906270227713289637365091962611884997438837152855612162805957714322758707988593514975593524826503243205702934006870505216568706249759797691042524230083063094114788982774460781539941754524586717088494415000424046544031465769940016683716057667220216961026400625079418824127022705853188335566832310251331302272380755162529879822219950946871896812895702926684225143196464442595190649558051432646863896779410203056504960129219692762766275843206533559257786494774182030335432593699560854680852084620325021576098499662514929834769842827221551016008548343069925488425108077341978317362902284148331417474040381324174935578339156345041573624242955582342742913805604071517173002498581489494745626327832169453505434223402513516222304425331904620741922434183516588122730086135239368228987659819340303734741167423162017568845300746399610402682558154792292012707222194523030044627921892543362529682630106819653356557836656938188321030021102649118042802076940185809813320642531523898104813256249814563962588862039382925503157044883490095538501664969400283665529475511579298112410568525957654095400223850366746972356860781540653424985391439806506108206244509495238152193460254651877308338491698900118891369225902357061880620793597088639341809268245160963685880342866277784756870358673048224105313187679704640215062817875257663206584906163721417885924729121120857791569223750129282171440840890743512718603950654286063308737685805110095660878002121834557887022057505947382118052607272859111606508053335204933864978219273597042348825617319335038245797527346308637658997080904032816796173279083381777880431841453955791824318656193463323111546146668998835110082045022074622120059964789403043157494838532242827552394472362210990465426532212359394084563226056471547597600254906593514143672879107501789673119788815681653080336719901136132922957700581169975864507963595673146731845630036944516417122996932802470162517453414821627528281510037046644309794354426755815957990837627823029423885255378683763682648636251193421122671625031843174553974993251812770517263220318705294229421992936130188132613989558930191967185055591004733612404258482472455496140165268944376858300409038043516012537582249304780460700240999685177124927304125079712335179858387313880900035673621459550003111983220746047749314819286277283417803342600335941709658685695212100585188917055519383991148592116100281732948928441972617979294672700582163281830584510870400027369604074526065973737132608694077747059786022496769196054557462045728523429354146605553280834057387788626342930340022204703075831196016829085778414343162297242929289529131232354110901733760502509533479096599117708133464326178696581650873629407324218496631161669997347709386464023315777686678042670316418471921653407700079860397909284001457868886802291379913806171729743581202692710340883496256319565901539333386194280950687609317415835356031240234354547956378011690939265326341859525410935333202881098362876991662994832274107091356159464765407738897714674039262000005934730190383326162418575640409534141189043349780923947038009170527888193052213694583254585719238510315830203683857209925592498141735575202654023040604696650173770375100885228650293397599716354066948165290193856766069380750780151576861112452159157107523461308352420168217356074155361678811804038895545266757375767043507750504296684685880935810452501074036857651640575186804651511615734160233955089522853975823176530407465928371650052762673025066423269107416476989055479217870278378258925645647609114453619864366584832685966251438667923536230961505183197113274641245278021309462225140231504354316777615535721424726015178167568272776120512556005949967999903578437088405310132542111139591415297397126599309153409572034439915397487489884759234072339257170546856806584296571862786802824077932449156347770194621755997624295283491339723485872552735103113877666458527231560691720686728620508933710577935060917252459761299567128792636172021077116167684417005770061106447990623847203040979751797063204051399066131825729957214441602680059219814305866384062915780878011055079756443125837848612715762541699801596928331345032282179227267827770337489428385774714585478825594768942681867658825459296914158081303003757296323046013769200806214760898891327037619048857309976770057913533725083456930211184949673461994150305708509365137548397640233815120401271641152155284853169747534773071990534774989556502741536960364272248868078418805657233230727765119615214874659523154886829598709096709338944051979057228978307791712783298251487771422029008277924967887869712532350992350002176995064025211250296868962001037717231090255757540320079248698523144694518446027707491768118136009371378192789976756485987448402503323377561558112478263387230236400617090931949121616689383426037759696690878387775791637479147851588343129772845677304201954294084547260068098554093890958052338999628199522945972238600079659866516292331316557973861550197956043124960149471822323551250379764939786029849143779405206540044393701339526189620447031755372532588157081221303785652045237792532134482010345591822239276730595899820391139247084758167761618042771828241465932396929383159051162156674729481551449740386478660401120548378336080906601715709969443901131619807958837089181861555611884733658108685942249071655521692438468727541799517993099368347423785578345717413961460824097070324739881925965298976446929703046298887346786912884172082288390825479318070559304092417145275373440018856176127825627505647712300174577408454913982883215809899324816947592809252922829864722248024435293177670554556031297878449375652594004189880245114368537441696975901021601605572958774303816943089845108768791892613455956587319505174441353216438519668413011464564107374851591194166670460399457557597378280565487264508669585614661866761239215623826604753751607267091072029756633594407162190517918921444939058666626172342560205145859577657988294736888244777952331375937553220513262292148976255996991268318057817446264986170158250035543230103919651402442740828762567366828106087032340640321360179032297702627929104978604423355444719068508406089849824185122112318623325336691260143378258893385579892260124759850063477674314254032432389627201508775917892516492523093936472449181359864871710135084739401136062512497870144954845890544909736080776181193679675180207414436811055048973418788121454397467155165971290231574948622672666536296836419239975924792968504306647721977689338236471873117720928582404552363125806524921568875689758533771339974018974515562380110238322540554434083433241524126459791965657065390826235641414786527256449045282200862663935130825632417252626816669019158765985546875921837432033578726977039092666519796093297328396007662831679272623345901077263456539551870553314440878772715115301775608616876965705125174578530872426296633181371500117764888759983148230534386759267949841569605362424365399738435960909976334104267930931841595892082450003368257942452814600307009351617254529258035438286393238576622309664631274222072794854677327942443030916765657495144152168281946125723544859319593463718086118153148276513424429706839508565672890235241525174173390521987326746420122199447499291447091259647661582887939345102950022232229649884388967394147891586007611471536990808402338696798975817249042994325281040207447388871835627601823642348439826091687348759469765315651971898193494566571779275245397464044857540681181456576945491294182328155521070513441772238203610299244033448992671278968173824254914923206004150332850356374669284986007619356454768488220532838103207206839080520946110579568395850330962220212461945036625129344397167951837561178909406569281955554301343017520659230219248580602340961495103018631213582149744344271003389440720848961662035182486103713341684050273404331570327405773912174609188320556799654704105574257855669412873438032566293934939648998269508134495423097604217208261212872252139722646641155748512399331428226193979892159970164047150853287209051807899649662499110447742503175482928434453323599856384199360471182691616148687495087279923385832961101916703839262878170331846063507278677201408319488936951946083456898161419700968978424826873583542814654445480349411496853668795290409398172731552963032736325138684215010523533771231637434753379624810917573889614176865198439228989490636869795004462121360174307220987353356910663923248307785854125741944548006656928733658197897306838575416912090918060243472484924970624819943374574054692700723943164024244545865036429291081795752117160386997083806652041133790514681984626983280198759443982289568835857046706496842343612145934780407728720809008029551253260818397233401383983748141517950266063712783552967694022565572063817604250089048577289695974287846853088561144170242496913483460687302456893940554090185872451960027917287585030180802255605630389654254320478139549219443741074909369458847363802412763406980165247717143583781181782809546731161396765596483852490853876114207262797500051515691905868685884709837093345649043171581012419316476584206023612036876556859549378549865616226182796327650318723512236129065135668107270762061588031028518392999487958525873987408069340609410101029877123468229949325109295898117833251305350505118407856286373713180427744161522934325745777523431874047976039898723609532163881091703110135421861894564997467832994765649922249652916662523794767136006558316657037323971793278360345004835699246588407411401726536353726413235436091788590488202063729288536046201925998014954629325639045582549539305979398542878099965133551181759293088090246042855992560241362283433420200724264937952545883073279128626693152008678281295548369776967618979198063941871912259581412617044459955038839599445533370905079533876965713957261223948817861414619413813977979338215902459640033865601694121029836356437022182770466534420053786807381965755541337433310888904069125887426495119015318294518807412474157264782802546156366874649641056207116256022443178833875506994336915410491526759307356074430571679599190883948556350705203429664969053168340724591982310915350524927829983388421593304711207815272193491100552759651264060937292042340233642303533087468892574483980598335125216955232421191444988253479342272628778710295180800674593307924559103132306725742356920777460643422240623100814934992268963725886907544854241665079633394482605387690098840367918837085159277861892963379467074241327023683725399202502482932924087823438484157192458424910363851444429819017540435615448299392974989153716936297435774286976231162289077456609166126060666050085995814099608267018548934778644983534125550848631186393946667761132356895701338745492879944162584754933395664331241137383615033891761693612552887942652763182175337260331740890923915311032087501990637015090371041985326600233349946189069226050533433857180429361397771706636883185549632110095458957332989829893559456126536176561966476776902754056759703836643563814603428528868722674202530433190694798322642708077089876033457645119133202533333520011708595175642852791271163468890593439413044539039813348925493309412316199062947712556779039801397353392883214082462618270133515672409282098576384714229769272729895853088035827035618013948102769191833884637883936614731469826823267959271903778282431686556103356237968567188129993620664191314736185556618134927213634973651423773740323680995709164520748247417118697574345649142851860012796207091292869555068289766938247041230350684642962355825426307646334627152325402137327197649357448553687077708586977521916039764098129018358515491688667834285189894089592369381198706285236143255420165026588195062323187864288696816034366601255645233602120175787241506381029695954281237485587717965021938842170644335973571468339245262762626113942006281426237708073046306971516543816596228283635284502775972291048647881591675455396219210154933102362343973480090265786319587301442821272076812939125275386858974720969290748913146741116168047922699410868357918657663052320831804422101548787194318015412519313832193362345277133857114238291149440739750347525016717416988561126031718083637212504118343999729781131419143097135009717788380259671065445122670373975281473157103828931832275040434465911275615014578570235700351363285542625553388585513987008755555534325976439091835546260190984674771174250517202094604083674180139516446241296973574558529889187223089229418028339395257420982148919712697081558554682311415056621381723763172438852010137334530935866398343966871649159124587248781116777794127149336540211118128243217903751378200675390573921282006956253573675118623914999552229640031896090366082507733219170113511476074755332695759185069451272140641930579714010626539175778338373106720768552375730694773165215003728805944385030285587426699139771211788811475443095195233285106823526172487055974332383763002983322593245201189182263017919480846875111205100044519680196534667239636207764685048134469046014971167732068338718610479430804481480991383669216321562566396094506923383585595582611965124014594569134168830655313650711623445250577912047943867101039099567255905303824722768798849070206548128621776705507834443780804365347779625616749442602869219563581806237807621950369092504515286430417353319631970478672600026853470867527530867861405966329555795861544358188543947472106996990369970994294183818984486318633133557562661199497644482813741942450929307682301657316498537347284395160426478880208477985923816945302708659758958006616825517912355961980810119349849681497500750174537449348575282056052296550376861854518643276898602434334356860183242604957501985869611700859373806793764583398214229407918539881217789696909903298376125622362714034821978004150890168247522088256008594423671646463972906507155129947253524476345283824546814766104772191294194627845735930961346420067935549979785295314229935459802073772744351445504547654588145703962521924853550143718708070864101155822796165910170085115215497194661510174918721343433589854429851904657267336549839460716984411799295964649124972478400642887461736254706389967128810713209320996335410947735697968968700990374648308888510995973244174087416297237441111824607878520439111133400189541642290591632141904812382120455825924053964600467482138661629166511776361660875274497570498342750393537284894425932182185500078868181790356893485565559146443973121659738260345345790522932419296896115670603864235212985790655914229328841005392440639113284727738542398675500045063060067803980792766621392251839738013408863922173448672077925452115562992026194910073881684656583256218225226619470930982157708738699427240761374690230670138604318324124026732628218460720655869307298629368356188959521831327872646032789821976022092495404249533919711453339327461614365818935759515925333488333712892416213659564530459268176344097827127921451853354211311128534884104645156210208322452898181759889986132901248392903206239202718834671817036995494980757332600238053632380843738610599642594779567205184856012458095090246687267073828221201871614662446452206796387311124325550176625290824605064255869100914269791905951671998586018549760641100215192574830099701957224743817687684389232997653814236670271275082389056776888509780038847429156289470432235319039773193851851783737460031987587198950375134452108327349220513739641665669503691540836125401497578107740894883488423060644422325503060108825904062165853843002417680912664388263821235015460410495427181856165758387498632667724417445034378753672373707648313663078876361099276519969855200102236157238019516310795143390422968899316290934590519643941340019433698129049963075521159258155470040720739695810838291259960707816034901097571281064043424224534162224155309522389548558921428398717183593795524471405342043773571478761331044953463228075510119991265889590598726021573149978734457596218508366405682231832190834204681551507922817125230299892016696706300281362134304860654451458583949058821003562360864774713195316133464911462634840615507913137817214386540740476738342964918824995152563188646188565479778197196979960058321518463472285323542424029243832013602832020534884801436595579429707082894054452986555872555329565831411774791392885974969322297765064890728100051211780569386520456877104887181380705825457653240563906226462782164751641553421239471813958972821279669001558484777567671141682323202750869685844404842884295957663422056381490251071337802029657911782080211788882826934263108723197968166454684219209006610231669384002477885876702357287434931681367400940345628496351467431477700286605438982583589817850308392446480778485568986739846324305175454297228748384990533545178965857171065678120028779603034691863076119671407516361522839286744779755173173102579297356446889864216094194253999117680187549445011633431895007777799630222339267494080580249739868473560754934746497918618106915986933551356225546009154636108375553065108120832898187582893199852007794961091037459368331500390511667058191260127013624954427948697553007935024830003690189323228527465288587305712791522684714957996146202111957172718261401624969901767942556606825852115362951916625575331688000128249638759425639648892363018841673452740025799578735166356411204594902266550263275317438101570346993160448765298085794534860875210246267005261537958045973730894640662875610195585408333842723086166247824834936031001388293573582019301909934446941418661607523532930514354868922426132549884869053741750828537438117895006267521686860495889227250638739284262080670225172952790844906932461518140841197098581995659613724328941891644618757828760195596546284770774999610816043809007361848199466079724139558584291789825155255125792392575366192372958955746011327618808219459264587617646777842337346526405290394840679907079311654850775939355452110600126615919779690092938088954376259749688605741145838659273251684795135345304385039583829197253758835085441258117384425395919714598173749532673222367356742511679423719732546016754389677277799840054872487162934506721015174408623760673511572451138789601904174993035579309696274991307145437120438933148050369109288770525021804730189760778511587926331828271036817934967407246247609840428637137441391433467323681485389168638952750623764653138384748780083238231369326597863107024143594387387436124554500442022845257377291665796646517131842843092448796205865254009602213645312017758971665023268240075823472309832848413474059089425219513063826009274959269576578273236307444679018405982023680873175215015452359382618259612625494390788136253160224428758244203547534400505666730761505458779897053593988562473493523316622340314048327753144417026292719465881687518638468299096793619437861804755549378704098325943480613597446710558907740685863031879604704373401720505461401455605324616426448277095876580896670026567712469149686672522688907885717855951704258716531242914569420314177657888590204305532083391560965815304368502929320111799904279009872753344163730551073508087581533513049299789670636677652398220621122634240305313910265445894510437778061621976678316914197498431299958158925392208502733447925918704424205361329458292830534948668481129702270101814586269550280002815360316720861173118487939158603717939102190222091981852952735291226141138951687108817820983641586109206349260268547228274381311499024795518673152803847890365098533236633368188160096717973866953912703588470878114414803515975388447856672022532126776025192678220222098808912792123059643159753424031855793682126879428909432224265376303832078523741730038492010117063117078433582000423143637553303397800868122587333826932981098937005556702236498818623145805211961590308282295037376941135272830862543286686976120011168282872570425139865344872321718867545654641354707510584606586550164848167794790574155785700408395242431445429161312687648840762493908138000694191657022168731722431453252373223371820262514571990853309756963892132528391965192920109848196658046167260576954714766663282038399590919783800307712063235643647212764575200728364861311200566566684774039845987354546927833979184920358604943672275774032422829599715823007027482551040973714517671822849444868683629279625385579136769852756526408756174631469949421150408695553506350308970541225083119647292490173951609766093976871521509320158477647259841089175489811435386726156649900971727397572043366433835144280261042377563919296879196938838979264858274985794260176582986724719453803279581785440948508394045371667881736130725738455662154004593777591437520798515979675187849161886194140673477069112688441252819558797679339107867844446971989194077109617388490369686924636294908174029817564361585590244962369055097463360685191604682326607820172484284353811229265540573961110779818148818287668312231205923286737485878848280818850834581825604062223954255876742698110379915536981184040602177570999876257795252909645653384687743481007925328561635511087513156388320053176552804616732293750354891868948237176341067663011633593285011358123588944750203989513384855908002721319861718107860362106292928625367158511953431799654126548691678823155511045039753310400045649475567919541814630789287650514678462383895187113199010468315799015369755998703663983362651184561189803261470731732367711220822602139255298389591283382036328502913952936979693525108557497125425123163720149618135834785371664810404845568108824947861320647093818812779893348063736847700064250608452923619831962799340489407452578980952914216504391409825876473783170295126289934654324240679455759185303505256703500562162484205448191091291134760918081379426437211914628438705392213585820667874697607513181197839854535885165949060062870676128319797943254051807570605070106701057578566254292036364314658646382947496721586604685035992778616888261085121354937246053243374314527162461257225128414142968788707563027970439174011403121886266600187062270920145074763585563919754786519554261958570771817717442751117972821441285359021903136117566543214680429253646746888573235611256301738098510617371335732217824848804864473446161611869229186837821249759720261091091640524482536729094888753754956351722541060097261958342929897975474421337057046629783082822998459205161532380953055566493744557630256062403034234742208134779244579648533171013570413775496808186269643950493524236220045581266295657557740781959043256982335974947662900586762721898265941749515921743623998600349280861150075716044235343796975051969978164221470315778931378552397430741444633808045484226701560732573345548654322988849556050414531064896047405807891554389578672071731454886307458092624695489467971858626608884384274824070132848803237752999721438105960178108156499489569400037939722501630485595527086988074814727149899213476819009547967031286485868164603294667788571738349600936941701522349308174599380169743236170670466083812130108412597676338593446847033550926289001014916327776788943125544156769260256715542499185199119195717245428680257184956455301429323268594882092074459691019143593941476847423416390332939089364001471989755825498098025182052723047823107388910347012457522709553217661589313717669580861690922013598105099613240148196539578323303491766612007807360143722806682053816778910470924176179069296574246123409209567263781970042522467745196612958961514809078086766657634850745336540546858819783366145694955894635952123379078138737318816819129052766844348606714292300765963891480461848238616017522154134455728707377522701361622850538479316180182411367147632765732567499995329021407814811995458627443479386880177823435965742345746469805019714069894105611113200210283197021188128869515947471246572843719778628828313464328794647351929392661169616093915000240338654412162848104439626724340468597511330022618795333589249611871370813124421853182199396668842237137377788092416751579934064675666608620525601380443671645391230845266973377810352249376026429385771633696895518969486203488620664371702391107576895524177151738134238628496957905831974753366041851458100769325864831463529805954955693578793832274069696226833434932300316123635047257865617316042932915583321513861150258406072770772506625021838151058018885954716658791176240462876445893160424487253061636028382595285009782104412809340303225026692202170216140311755459561859453488777869838540535786673539272357643405111369423733176447638656999614866304254324337554039593232951750789194055356961636253623247203396689163016967200847575187572896539798000784740449982395241658864725807882794955449677480028384746555667114293330976015638658337697991454080311437949155808210649131409841504772589492475573270039831521601305123094624873821766659072176356512491338506550362299288785243659602523362296186561708032335904366960811651579122853991100491637519506647050137463791437011643200411745614024867506108021884670975610473740368427295349107885446707211069762357717300320001519347592332442598124605349520379521196993044905033825578487415719754679771285668620565122227073472385124536011938733071279634255570083786237466654843350603060549333445497385513562227998049201224154500974866643261857033520882429628594025848410409545705433402425497692000769642420404563262395382271801791351043205308790792518032841447081369784113510171515393258955114386832482816288017521130893380773614128409798143777875780413039268869812357693219899379162588472835463680459113279816877438322971348332113851118133100796234161268025083646359142667477563113446656091561114113714046966312810847328449791328367096042243625187456378329132508039427384659587761200517770626963533414689383533455895373591189779888795687571148886907715242066115173552281670628488987895724163100459147230747177424283319387764583739171031370687569949366449423218456081260953486974234607877742453608136228140420787959429887396883980896456217936199466547629784078984777701599452054236884791601297254234931969159770270910869779631720522124014915754723853909243073903080961843899810485111743161916115787399198847981128303473087057205481724395951277033966273360759467447741037890945095844261363765420857851092221975476855402346920905413398725406750388753583927999645012967650595708329023845341154624315747596163507875505531004681552269864911390040106672659617293766624682292088058137892030988377477576814623717010743188035260276452366534361456440190639428596261777070444902013787402206727677226224710378018925300861506082201223042008920860633487942362687448092370085823352899342226663942127848673742394419101151662396237128507397647400165627146338729431521987585722219056052720681499806112511143094994079256952177459475278046759352362050093148054449641568148889454518238221393927301328213845151597715070238441804853809164502120237309741622905112297692637250228146796227041954845710134550704668847381904769900274509457381887050845905566147212700631775219547988969881573537447291282397756834664624701610768634332357661517550533371071194173000305716060432235383428504809498859947613812766634116106655023457216030949114242236620501942505028816349367562777904362533750554090153104936013800118380609885568603076204598246741100249038992294602255655498820550270441426491110168534091294204084981523472564752908335095945228530439033836829297747119637061614970978797327503727369603571898739830936709624378667484379762561402594302223536139094333698632828090208304789241303362647665649671344283097092715289679504118217855432256399626211534038496568697706325339979345312909168667308598732049004183093112736884629902313142623430622038068417842627815861531612249743713927791069870530410600082698851031381187048102326639763828977924041684850475414416052103258525327247057595259311660403625275766536739179630058183097190686329609903370484243523801075455838561300704534126965618955174332601871381919183461801693644140284724895075148117087590283350745895871997704892841554125729220218277884762559215582137696873743241005570971493897060891098469173948121011148716723652739018468484606849566726870574663750756795812602695001733316971919349667349254826768661443493005542072226992649788862108216424930483998534269503203720626086344631819548183923871150438881715787487595455666086829538376673349391131794034649872309570776347731563368409122037442352289671361991511585746280160137980098903587904919041945160037709834441939645954756276513775849172794780940306703031554063605755561072865135122713812112408090091601022440960213474585938216376842262111771030496585341229807024535293248464934467785974831819253760732312634090419589460709285856335941113241498626508643179783992052638869284071436908096198291937229143419864476384416590286123422896721350398649684854544656168647903056178567218530578977625091763502180288584776895277221461561418703540674685449102703253774398220052465606199941902459942006742431391475217010578962291816789759613530986695840479564702875418285031689005603510797174875686077194203615762574744080111494582665647999697701886140183856702072312534190158809268558904843216464360447029710775520126192142474498499844986688060499539411484338928573810819111592631145606634315169711813250922230232892722962964803761158569306866372610037082812410316012470745799528724557713130662917431295921330920760030604261888406446332197014000202763442546506531045060416005153230938726565724518534324435907509565338831267184171593930991211399158399259242229896467746601873027716992483723979790788454385661951917134360329585231991861297752424128672332029726884422639905191106880448787936086575779804773016566847707756065734020150358763621948865727408977493431944901684574933877423043767918064491007558506551540218528040079438623870913920321866490786067054442433634573990890158096292985586804339281243976412008268400052478558192132745576362187989127281260127941554841291514858056802644049017155393659070254695159806509914296388124137091006761531906327315343555449772238104279776550114078586482527645780116520685852730999817723127652137797022988363164224611945760293768423558368708380703491070660530311830213316928245779373994141383080743634341855484313729570807928561483409259606034799292826336510685204158498205901712278144479818967680740001021404573447522515765461596901226758320825051872187335071893296446728714892212231222481373201049427369710502846498427979203661573831421157414343563482515752647329215497152030360441419323901170589181353463622924388095776794087634907316177446126560113461705069057282361054341115018079077544193904795701627353060911285943632481162266780640938189592468775971783468161545600022927727951489288213845224390734144998011785892173640075397252871638553026592983960971733698817690307367399656915527505704762730508172392430062170899496174637616831097428754898843451071933318148523655724757195565030508366130473595390658193637761193905503562015025266160359513692397960901887484566124886990962372746362118985707486994568229972828541016038872878624201651160761611591820770116614149391606764553274871926402441738362558926872151549785060327847811141784635360960552648683143929512970874328110097822558060412938190970247606559769001341444180786608509036852523372465674197047473818331873654978455628041902026233040495809428728591299591293744001871161034523894371506104089554705505120402674319435683327816917121187905753737253512543147943047671342579617767877058552773396648698240396628719013082720599511384696993167489277677521649015664507432528605987189827517339848803456794984534574283797320355732015010396870344361051700723403592090489856464175603718460888225949852697146840487737158819105046988404920025192928714209225533095261519522809348530430017540619053000800272841818605926759609140454037641605884644079508480644607117615020066405594182700765869807216761672070867974448041248352966080441547876460856318612248522784602152341332615042102393619163480339335230201450245159202249485319702857998374533034647632795768350092629672674196060120851105287224146731947542806749118675050468282128376519378414489626150516126107625012954534032515580761867976257814773261865412083247923474260292827388841158156162521177600614169251364130900407261601054940545653714553162797202903922445474100915132411313246940533106655869501280081149481557384172136594526816278161730381151380240213384530380939839726053336846590487594822867925802156588279608538665144866518895293116125852527503060725431008576142987710766193526729477175130145816700110586115382072301926859852324911536466391514432412571455804510571441249959772642237994462920625124507809737670369193539166845529186369000794432427551320876172101782386565925901525326554909982485014305174662545251376813662689591640814898451462820510631063811490619524200129550622887000214731206244399172149321947517707896651570665353658356406926639054010243949795646933061619696534001729038235016954643744518282261742270839807655563036158942254536224805779969419198501551667927071637672768002246223992006530521914951088927160305865584057590958125131862560789929631615115231489272400831064262862798750790755665819387852085062518400659117449721837171738776084959911931797850777991123402578906730524310916259288697558059823661999101655085019917252676830487895062234053974574194008628979472206919099118262397371607434940434589323772867211524629765783520224019911778309480855305545737640072760430517593639174423706592509675478201024664789006903167865226973101947013937039042004310205716656164074612407607706866262241959102607845353804075393668889895474881505737257696053458559425316608447618322463616428355488162109054340381023880635163952544889757941549643676014903472370018822575158805951535405009626460632061653987511231697227530607605736394460715423176728381217425527343641138997140824590266254700758227560228564678792504789909626232732457632785803006561272100482788384433227128792644942400268897477853789020398803296643820296213494608875891592476376270920898769692120959979786380333528107579745619242530429507275761937017644772634995214215547040210033215787343836972731262689894529648506563016209255034745880817840948885305721289300000913298708867274248659443795160295772432189492266015250804357105625847841975370149129920815021744374712666424232446474763948121925326797425480473124128563968552883788922439932589524665319657969882762170268578726053503064275406534658961788028731425290728712295671025350470997116343680305763608262753694333226703326177677090985706352706217161776117472928695210221624474302526640550963058876913492864468117123187400095840219736970341573128657402451659103600942456412175342018541123403794222285874820077390920368491124335300374088020921966376291889522921930602623594333163336864663260223371511487303733655855464417637466369723892862814028147563525108812668662125345215828368720141148621405214290560268214481374205703848466174479949003607920529758924238223413895382180117582081211981551367714898620203556986075382072425419862380553081832110262703213895352958848084726118152248080356937083436015158151232018094913785285064765516764207247170577810506833518013445929841410593782132661557515013792783205037671914677018483765222112232933102355822205638679059076806867502366612728221882288520664738616292144575940603149057560682888560668890466140102718481825031740196285569524233506435042675749390063324338608687053441194089877225269660255695686604660735788596261217224979803861816227949293290216443806767429053489744419967986457424522177832385602212994229427220381882331328299716231647059568606755780387983509111106112349682539052350220233773832973934631543094644211763277031604925718263542194661068599547604556254434583153547233141009863698359598970356358167332556148065268378019047648129138581665476686226796870144711151813315585397641663882197510231287111755123691328988067214642290735506226195156866879646180533490630633616970670615190439010607191094852455816980399044850596402243844159498771406960222198724375018000779308921617586442934472650451944507919942125617299352274238858966044881494086154992391952425796539062112052477280694350718596641973329083853016596021347301430413895626179415434547578533399986095444279659574901658253669120389336775007519545766141396931238391724648723826342145124905637965779777168675503249946516324689254144205206541456732059218866351630287662852996229609420587959028554387508221219725559485695609430163458644258676255428192924331649288020112805763668823746152748377024698723799263806306977860913041750809296502062518021049575175375404080732888580856442730023971567535500213560720050173578585878054022687181212209792311564591129254936305948387554714159866402826340324724497543374437120217059565179945628346152592491403016554746616251703214390804626926961505580377303311848741302561586825924857450539743607381249050870762022443436781434779496480776198249059998482945238271655449975487220961566408933263196387259518072187614767903179810667960133004711040724308263784990924526462783990172656899419022169263250170213012589102839394262741612248931123671290362518321331830312770573723514482835359641783444409309090767328235487759966967402165851491199269456140012804641804174199560319792704798717375992340157565915557911350265796026636890741770768993404860368041205842686176091840446461765585476486346772454287927542262712689756807039610102244525498098312506180299127330251574929545948077896117662358174585775095132586600628525239040163036163582145146980342242389460901920989446360696892697116592175350601249095991752392044599115628036728998822159866909027309547376997288751735095967784887386471560566869185100877963794034318744449386760598734750698181639048533329689356484121178786341185526915780400305986242127447656527056644785990117749124153050028568406945205719042403144366559578521230817069124879000090482259135837444452854364936558204827249043155015545743354607937640751458403467094663520468730550911038137187471656927607864054592489779803213424062202603095593410670118822103047715467512662745241221549199345473716685070452174936617442123256070957957995476600483410816606017290477995228245869933454332186382575601667373327133150002547525936262813677574234574690205136534668702815089963978231226569827433534051157607922005540021213883079518958289999899885714987312650099191934510948396497784891842480690173706243527394475512441189068205789812840015831991466825009458030103292807341537328613382508667795503745311211642622943409299012009531722869500970584299085373710561489881807806501052254310289255073139229325916509358130675964067505705223764855843686415041323437469367352748234287971316889144882528557344381505484342236277955258428371439316832932296708637356950994833885485011635326737273125484898169816087596633860381273916656426381165481492079579908711966738563345365444329978900574035417674973460443521336096967205387572104392860288870443667787271779508960709415396085647416682605349037717246368139214026111993901185512156471839908514887597695998189940637735025544627248354861273247414496758081552590104518884702529797876546650040301981439600563785930764542843956946145680212640478896364619952576674233997598619591838556864028080783040431761147275360248312059323417049279995919146993264817317936893931519634384443564336573211704207892407333315873729732046986526443906960448270649843025475631051278986250446150156548694618124621754802788104561406744632966660032666767927550519293554005659803584365933298328583373823747773600633576103090751532752539560484386552623242285199019947835196394211837203453588905699311880526925708673584640179796720621258778554398660659252791097109967072339148726239616811689122314092106210471417262630285347888090359000557651545216400339429867646593511522563006105766985221354425096918182536406782326641009868338930661936071244453583304998061427188297309643626982707535269122584886368633382847134953017377207221286045922843565456026780446028207976081676043195885759008416382794258206209506147660388303284431140935653348513737361590559585840391114302398395544820326714210063312505598189625770447944383608751805826844043249950876133278926162421081962263263547787936166958674345675837184910994751270662451484497668232595567676977681059438561879861060348590909828943767017552439887658644345230677968699372973766129388706333354868450853527056578272215209912508899692728182648514231352687834173871001042449087746783090432365428241384109747015260292305869005168172720289064908893296820761794089114952076969668263687668757498082660313161747366218171941246664136183177786812128997965665772336521842504941344261323722618377500685469179019170106749491537550362047213027568596068297355375291957924879682332854461153380899810539165325676422226540393747994607980715045203921267287447218165564177170019210577424250808815565367421346168408731277666369764183963727608874588405814518370187910792678147246893433263442209254123965830150303307619029267634296884984775634138854463876468395636102692585568107311707665257939821347269787582319133559617135594349459132953453452352721794218006825082184945135799798634463603916822226623550978315387612076333848474671484025942096482136923506424985347065780506929057245007526015997921817493429544926859968542816198132073934795385502349519199043865201210628545126596201775567333170132847309688206092761116152605384934722894061489095529707075627438595291498815282036049411468263601854563856140554931361205693506534239839127016488688664401460425897810164726060163072686736436623566251264644042951181299980686548975134850362769373927505271899734712954862715464137834486344569364318670173341727133700601383833162170889882614949598943049577744302081589584808699093984864242607809953777367690900143174671824711050623119883202402732987963689884334222543442519399339224620459237645495189383814164757475248390715160455400892949462771375384759141995368911252264048439283205420949445749248667385850281560044634417216472247852304930517061926536954285330874098306097515669679170159555472978272769173499981404038326369459206342910718668677226502109787522225967500567914861270771513643670860428216465429235053613955812035928516344888684675722017811286882393342216394692109069775668137683547303484783833243156062324539598968124571653834680307984858770325520699412972413222957639713149641664661341653507639292826160048130419389729079227066590676324481228746219458177727600109383252755311015563733994723873186525209194417577046394542204602835818124871038706978970932860063017745871066846510575608754541065215109666850633052589415275459266922771414850582094869664298746006110119847549118211477958573676466265208639409295602540485970984201621247888985328314216592784486478799100903056561201561491836066400669949794796296555969986025002497709271056129202864945699077207126320901325790255983684731531783598219037559983172995676148038825789119143897224413726749666596558447840981875940685454448152808158887638692731517448996060807712768196604121726927979091623261400125538506353974523778589686210042550118843015527440257277656097161740668886215976604594666795448069229938763843376629205944371397038846554377134303844251207857499843174969581665985164157443232680170067114325382138485606417923087253670196446555862941649397261932795322177865029104444672171098340123932178850432859579421204589438895056922288212847088776826731335526013737226986696226741933355683863600426697645713814137261392092483173136985450802625421943457495260939070992617981201508258508212016005437073110428392995205428874841635652944898238672404753466937851140739781253802444492280368485585263374381602390072339276753783184161762443076827555808701165923933273115090205724190969963341270667934352426226228481688578291132174872994060858266069801550190007583392124771198754190530505870220723130202570683699963193555212818843609825855209874679466518679235143099845359377978897040355649120396188053480372492915275493777319830563432479156885145940047961919122495530541873520503836489079738649177369130790530776724497885728380815246353626218632865437271599018163935083893558220215472550263498682979554178088599077965280390264106348004061146388926817358142274938108942797839472931654006378447129192209195759183697173947731875000533476481376625403314357448164094981455504294946769491342478721189821234988117022611035971874067682166174879808727405321723360548515776212580037445420921077968665314391703757480361091794723136997678894304314564236099496106397158088410976013234796869604284150554146699964843157445469747558889299141277394679462184390042919675318489491445479034489709742973959424595547652638951426003596247101509147267256575328331483889109222307755966877970575383429898621153419465505985446728235475771183043847505771185436408277750298588959178153382262104997649225245592247153612292906459095977055086627046478903495959914819868899108708210576230747424287409157643986709484459291791476297052218242521464399725084254713254679844420324048476320412302310879099429558822893289829415851101362892032256109411132757990555120466354516350155602680825627093749987978034051302270215974575812878814491729812659223630015079551034807339557585512854560020131450173259818939138562297722917747717103365509044909823495242778525172522547456511400429326868291207702405442322240466841871091787216594248743683642652707801313061152102218800625304756391288187678636599106282824763931483378272615958755424715645191670608669008289760726462768005553158118786467277853146864488198904945716879201956070173600935806085574277174457098545503404090971831675823741237084405175666072938334054152706452758265405356132062790637153245988089094065833241750445502937970799079385649862319743111812878987416605605292549972408685797407791310608684525404804774369040782308249399845368048912636757422589546824092222707354865893746520304506854243668155523039666716060122527192799056168578315788363643219559923799855353515017598158407701719035114077522778449334823743785173991802111274822788946743199859461234286625909530090112250022960741224164449862188748531396797107360604987044622119706341692921433298812691578672818714109163879712937744204443975267415639493506094860446515968026894247068489277756334904535675230451542989660796250382754600343539808423240385584673427307875126013977688906470962160370020052281227832171426465805907049877008764913088511174145978927503354494290524028789649575268988763946278401255157566097100769987951961554093091785261773199344579730865876289873054983238681178498494740435380102784192700793793474218943099299163370644841952443089338635701521273218275488761456084190849675312777947257701786457873044035871145598873362804533572326648008770798587040620899637123603856192785051762456538438987337738751729607209438199244630980308987244532670091455093013550738725841834476951099311735344763390600467526213271946041136981454006841416959376342891116241212624195603403714683461474216445432503675564400556069912390985078309818934228461572425479710920898833002188006125959497755116954041114681378095347650619341879676031258672475099361363668046228499444857669447108023670004823523110654789673755943332964362915493702818145307246204582451192408901790690321457420430539221511890463005464051892181201490540531118372559175421659368644136599957684340536571375761164604052178290975555507692900964808225148230915532860887333449194404006161448877068311110643756070817953315568286505719231444839558269085210567303020119532955801136263017851617096731863855128404219990652122650459091887041311688398186661232567320861890471678332553470774538881852590404925515349105260852338515800824017702584003804883636053631435760613496284283898908659515814489746832274690402140009641023431437529683027337948031780137808020890049158280669859021833194351255773543235889256040120861147085979208599276626466149659265417812380861572277854530366109602749713284528294944675620583908769177293305925365247141534513157144454090461831261995919596671432029823360459704550686767231426545949193861415738582891296710235237107686738550470683114325847117825662724590863275759349058062200963159261086201251312252673673759419943827271142918871605264955205514724607727879395064737565965309514310453768068316831885850079495180887957856742899382164711240795826349558767364274113712434154178970865733684424728030821621200975437172542490402171952011394578693003365954224413320778157301013480141620243702321432048598270800736644600984565809714409415275469050106625742442627466354787592096892054378588730870411033176649615830666179386414480465137259608214226122513294622940775398298742668652074995484123328506166268383917614772225816979808941769238107486865636090289022809401310643590179541981106336844136529178621369792050206339505642789336231766288506226493393899536590965360168560184454426591814721734352793277385406031869490959358880768096381878857024996946158143513478095375992429798825989026693194429268700787554292871990253235182807241795019208633531665336393293565782057865208238053937718268638600953447908742631448447041717415831002721384487088969896649729416751924923953341789409311579563087469611954597921124443488077975898607373266820146723684774403206960915773715696790947848011791408653306941205569107069128209808295488701798581037153472687267064970418381842445208886280828348611167232197474355162844426414035157144059745172026571388641400891010874210060290561100136910702080097523699620904630228502639908314581434689717734178537084981749117326759848047577973909009625753085231550375839440959196594982662834761345652241938672854401022090710687312887537874271351553699082768735320443812016698367087730833072068656814523560279561400400650890858329027981686883771976432655413718710973038085269987120355985936917271993710366364981644877597948589153608777070950770560113067084548806799017597679666049881947125949451976494083919429024408960962828574491043532567339255667527306228426198615007154567581004237148447962216462457187970502479388046034195893937123531578712527842139166739471192046678107681798598168659591180872410361588147620735274118218150951551109548810161205729262204084219557701715835907106096031005880045432336301698624313071302048894202313836390588937915120107421802931077809190863152292782408476430201946927854975756488838655340031511527224170475304545330910804927425208529830131032624180753620679040356898154893162834036801386057085784103486940431993794611755758988804042425786053360562523220560550159729730550949863893987658425439178327566477032504544717518451452773155955428868661747449885383320037209795168747542284418392709128339500621240455162952522497299376351479293249727801152848939999071963763832356200252497845040636953472949844590421418182249726792293736537434439088090667354206847248942781979219248454761700045288898120976202302080511012298068983867652771881979295019071097648471273179616744818670587371377611909661032877426131085928897895166208061954625005518127524861070125767407096471247078408477589017555122766032674926486457821034554125095174858345899180877384049057460881758494358886287100376837673639901516443370615654009361016978691854310281430855326743751998755042834302059350676767526638164683556255135465065053640121775725309389906642485495955936670126063723426767513470359988510754638223118957687932289111204232570206459719847118021237925637629993997237354853367315811693836644211684920919417902951299352311992165944944097935458493425918576420728580579563429713939838051472579778298860346734890007865093644630985603477671598455302262792212261174303376441783003512398401110198281626437179022500929081676193559668560114935375464463483603352638586190649417858174123959359311222224747438834699479961245002651868793880078419644475960848564140181104644156452337880990997385726022887855448846056039093480935398115436914757960569373667246845401884430918980317628200432311410027886574407773608862658251917969673369847453851614862999846501601535044998822448771013950999557807702206390184774417522145086882989184737263599412616396025978272395817229480744908021085824480088568123859176305337488475982806305454020011222791897567174463579241605431226586461968212984082819924755916828607891959018175909298544515921551423550696777350342274090062914478460284835601470793386996621889314280846046245975144350404976991420450129270022583756816757065389048143330219677436228713378869728725528458940477594073197521864041504669527665108629941653594827583349121633780424471012497074432614176241526512239022619560570392087013241670253449990483334124736452899752749345814096302956022264248270553063287411695872483691618227587709419928584739143330987063742895305026956023795447845737523909675770278071069217757283475177661809928713747489350369922620829996785150281983130643441231019610650986204745702638308378483725639182062765922239430713992734331568786541988127465853871455909208856361737523914637015112078270065343705895943039031230140443410717985089886522691391783706154779791829376597877500655879913885491697147646217545753569397540277015360581250678552384182717686030467394447310464733179790431173753692043301158652407845002373376090703417324112987180505464692060206901102698578197367826624605462809418073029992584583312359646538285005231458562818015513866326908848307589630110897902509165519252951012150193615752174141565544334749576747095458011849078206824699308373092663065475380291136529555609286109693459573777788321725022472081103398247074590627393698339901925439783131305726447709995348571415467266664111027761405703051932783117262009021782613550881530466048188717769082125120164980978567787423054203104832320817239630879394514441955597110900112902111467461176900017727401859278064434498007937272269069333995393317072668850734369781081775620773570273906771846503451211312477025482170675271650013692940608618807692057058994729386811278221233211120565899477459556776750035772009696267319463597265882965647201985783318517581782358499747154809036194379166294274731294680738620771892102872018483434489310854502799602413384074534268351651420045166778820123869748030871440422311043978993445136731804920214662722470704739783310189559619628983572462346715149107824161179394450134230418176396552606010242809256402502827975149361811370368209060547174713045823980680857597651476618985650964140980166610382596641662411438855050663524806962271681852268663252208716898304621079959256306891475541356049004953451411113477654189006811050222643419793707659678081154343823467632807604427254953259817584691643095944429839099293443603842306287992921952702260719442728728447804041638126119179703511090187367809283710505955787612407400001955823580346099091075827663082256614330305446134517699461687495452275670310908574753276527796080405946971645612922168623632055452557951673019169201046088076445439030664551054952233665876943667766883540969090220651533438013510652358152150686347000614425670614987806941533700500331429955236105616225293527047309990449494186398133179546983141593200545552719964445217956166393986858326254302883126059151682750089651023106415081278672825523373665596490285054833359702977633924310133383009663350147730686270577986127227646443769345470662617301407178520943678210593170169534628248171708350536281312397239691631555803812589879265691150031325214859030548126246238442333359744325504049640583209878651724383466623089401281416133174258699612327899725397649589353522204927021401775201075362751943532873014087378199879007861160715272130876799048969437449128807045135222007052451723669082233862926778808370195079878074837936417424408258519930747242722060264839678796905678861856099048860351901082995905313347682675573901603436068144989196824860490873101464182621555517528536399581111019697696317744947724586661896934034788187535180415709116120604302665871363207300431549750833312582957724962661810875081539211060186225324261734585042811187649416835304048938563320161720409080404705630474860184549219966196020278835571350744136213130098079156218781577393082353471536034086488191196777754842040344236817506621066060303388324958263960717312214845098214909665880579395913652926278794857002465082236724606522140399112424036561508138088427780853231023586500778924729375795124950083201461740571176201208172739874262293013942526760298536253970839837037760284069523898466823410402723839826044107694424489334937190166492150294829719054716547092611525419652761678861446373736180155695491018322324788184289082624472132752796022411650822814825939425531383970700325164435325861530955251042450231407995966350206300890510762339168668904908767488920329707426985893820317531527428422902024146437227876524599087781248337992208679490266304078351593393453078959595568420611958922068122083721757556339440690679930337041451622474801068210028143758460135953728298659758837763805955126193458252012047806058681797261312700592583202311507532966096094933909642360957085932206278380561624048885588935743923029781719041515871818480524787175187713161091469751350042216507156639037085167990227325603821783728708890969297236748712907179172178206742148260410962906220621461787026185785496023718673111406110171385763134705191049854925128137451090739660857939824510121474666298516932548339928170051437975850567131730677558193592636064568676316738097706469287336360064562706325500425070956341911852798823778946971611777021534698652176028726656763686468320228722239088114973798258229890076530785489625974628933171756482273901639047346840681022550003147064584699886382222158122896851145679981608436857602663918360107315597614867876503951879929273413600608734959148968323430017353100598581825707104172819868154531057963752004679074624934872616717171249798807632841858152189290267153423664300790574328392915488623827256879109661970758807404060968348350253242510191952076385464851439106439439635833080280188964692600009403412944728045272242646180173457495296230345324851533966849854420450019414756098276764405624846051971085481172888703335998817266735907160459753707350426243982256615639225977031475831802134492741820728297260138608934156165234570695650911307541907659674210754485923168038715106409152370443624221668740015026869658739678735855200969867737687477681517974770939828952763480517051026107804547392491984264682083201637487902694282735218721701224166398266257510073930469298770805179459201419796440688767969685660673752831618046246443557730416014179262837132188168666572400449154166278545683918369047130276470418031624993592588591908639348885786521817848457681086761740586514788840261611134371491627682972188561893635190797221803332205726500159845778026816125975209497462294285325193697615987568005477809812595044429667608798181435476784044602810177776650088538902126407881615501765611539655147540573285588213936600700130280111424789854812580266805933823872221281933691962300240263574530140979581582706768441297388293711850240968817772910152604285763559528959743747161130587189151545525612254590264605488960207097851026110025201102016759376967079984240394536922717087558953504526061399733046149662953197205155925446817540707517703770233064608827371816239151780289391217657800785256631702524442583118868909628520396831436269631684790037921948660355079115571103848018122345269295659373733764446476052948996652184905174056035254449179665049926894863194942480351793378721042723882615276394533233056950765128306477408185537834018482543577386035633006056165455912878782198444940530619036716929818642324509291765514747924146632721507163719043944170661315203559687298340145090545681860297162412441444572208197747170570938721150488655035520394919394085856102129763675637919273886560046871814469281734465700159980431803695342108099987881819807778022406665376307011274470992339979926702589324487219523527396173405412575983257691662651366278252354670635934122848090297118846239328031877190588627990840571423466628707095463075106239149416297499383235653505434254671764384280493551288624176416246952222157033677847195081362532366668162863097966451231231507972416412044309383455175777529330692634126901240400137377736456309332545224160128366369322105024001622138547528096667964740093876897806573522082193255247413545825524159169940454559316673139069729831672926614863461698737226331186913703971531166924723300902728231094323199971696022011373736801773020114108222099588873787121286667797344109974097176761134970954717756589933905727788028434251102792718571826941962867185325721311163926876627790834958649842859413359144253905452993343378834012929500195771389548867001684034195769093055638109514178115263668799436571178089223969643304870896509933689060498283580537385798898391811813505600258012543604332309977223153811493218929061733131992850899123386062850872515370893829327992672167942899090696337914281072739117342862189352701434032507116859266760209688638392565882066955096198366711874864248890894552992547271524854689277687820186439101385001418331415618976829587448303987614668492017288170660857859977160965930887734168026373776046346015074250059950620522845375072034240456928081410623975793353173004463617357464657960987014762606188631935324603867863034723987806114958596740858201893695394187357004412515078645064991118874717805806066296637201967043600246070604783215349269660360400154208209277790332527811643120973707994183088816592858751114826642552159954761248404630384985852129115265118826814757353642411073464535889970116816779969987677645775789512231206088401180398755500215064823217182463819474033956231254159926153433927391696908352826131797438426395549059422354884349194268667190232668274628376993242929965358478162307232096762374048314411810819891422045626656933272848376344034413017450676200614121085197528956104592163278034317917386726830948678700318842977860359203545225112849914968635720388678996067329810841316690730991070736631643676522934235384533325657972522672530534985630784350975943993204931869875320297841647448911757660182014457593406844149747243143659764350056015206279174425981352550297838413636727647744616583621997344629786214316242011209831775282447187426664012857392750449191541297509541900308175316327004104675026971506772175284830140190183744799103411362304428744521100190816220767362268481521565305903760530912875855099423568470554958005220151789321383257077520221497368934563786225515997781904639442630819869375180536986799719758389319407063294920417881664865896714257746864601290060015624196323773607038457774032282652580663724494122758052059121875276804254540496910284875216820006702832926724190983501620973086658758237295961477055302859830108731223045518328050367373642143498510354469786211565541987469199137411846565905682550190959109708316549128930608292059242593856482959588011198014333360851166735354401219950226819338901321253536903383162831379238225740361277574820440271676093519195583625635058251975336210664324273165613930611183983675360821319957424579228735792101272224422744493106252385487593037232426167908758320537021587760453674791935035295710910403331797732881505185898370361819599734294514864975755022335812768430906047488936960221107410232612281750044785188722221565642109517120918605524918277181064216485780319939780778396538507068304841404842925255430061869140740937294321400322251541279409974244963112219515877159396479793538564272790676820550204867919985170852605138316147012912456693237897340764418561766400654103818047798353318202685772566655406497145558617921077580924971423649740903589615177687950341206452819357319277695787973870258998536092726157677036146596241815152977061150265974405804446361045758588163397472829456492570928322009480739940051917852736810262848064288866890987134897228087418440728935804697645330708707078507907966707895643275558068922043404619323783416850997620579004445553056553849271401576132889059275120487887852703866394517231813813730221519796299195646434332949379326326616352047906166207383616186153915703540006434596184175637340995926680523710310447025719931673310666565807009487495859927868432387526770132140030138679132302583730516806218156125132255634465740919623004912604107002876351691778234912478980922341967562254985614472991661014212436393187206464307543844409874310685401811693558003032689277480273067261651152918951929888533621596034260520814412367535751415990577764990165618382437576822586603170913932848985803229346974264067873854960527911994959042830439832490537012104585178909128559998287391554923979512421370334831565708514029921045332086106201442862796568873646369773971748130974117406471417195431926394313058536150578599239286624183743554610717708744795450111951312740013300542373364322092334626079593674369865835671895268657755192834812394032879925727324744630297182510825579337616046733170544144863572200927684333241171661532163570073612604214747204522537872867068767795627496187842978785209902892757215819363503722395613536275376286001175183411584959468447503142160115313163640968021012280979267926391876821173031038606522292361295255737739573647453949675581511444930337407044808566951325084090368535586549277618156076909568464480462538500979357833772111229114365830309256364140940754039135421520046164294935755300712877977864657206791171412201523235536278036989284594004461002015441972068872128268936023994580305066449117948135004460889727822521466461835544710601608607877795153532692259603811580763650041099742458632317216755146143848302546762521352444956598617759671791792358073774435543462779557098993614860683794997860615531919596804991137430855126756155077447001613780594602064505712753402040346500616974902885659738517194918049453717909956297656775388419955520266447341097349035926961741846344313053040989748723039747129235372031877584687766744930643713006039605678351827310939418841813723703537560933124068093947741158559535960669926521795502855907398546892486333307543572331799425921918698341952932002812230757087078749727789048036442051309751269049815769637921821547945286310228545132350156133593189356505257743748652579091866010819959630726197603325101774465498041628512539545923022869709153341242419002115306098907348217684647518602073540613031171487095880679049058811662432490022582853333336283969363375157840503440898049723121954292246096149610946711338891743501689073497056723815206654397342710615076278564154737391520825136005455560445049642641857557915264857520583742546842704436156424948560784383676204411945262670937233186084749701369471651936183564113739633835686358934574691330497578036360489181664984076511134908912316988248935624146872147640164062373237613547702281492148407628666467663369124442776371340563781277528041370169851624682486589279765119089298746428150456242583356176312756807829936994195991649491060747365345967858919425095972150376792598845476713678697410604477790427470619872127910506857197172492512338247133584141487091742683135735623308428709749658727494433167263155287900693665683585781563209932718443522244693458343113569159661770677217550034691917612547647862738071130386787491374335132757504927151895476629948873182000349946080763239299287687661236744496667852455960917375689037563808205159388919510407658971389275739338389021571910002003340829674457640186850750432390090524334119956751356515339415529865977494845191436921671652212601339156745638155072608628861413563295039167747857352184829915639227584413040308068684374318557653748906862626089968796906475740887455888802392245758336316780216346059543136344016346662140493879775450848602960189566991588616036139760205650345507331139448432707729976710365109138768201310923299268962275789689175836531294219725116911060573751761772367309623101099421913527165131647428515998754822597787341415974989298643121344751607400275220029350128329227882619682703176948170634170503726586094009110938459223265913719676195381181743890227281374179446256464734330303128287726602761988260165877717830134648644438883259878674941856637192610743911248942007239720175233853773608208933812370120470185822271958655857845246454706558042878161343055600992695061470699438126471719954817503846680957000989302318715280684442778050925369746501859024453033027706962279877692974623946388941527586694818363226844784300677969922276860114715874025722894780008969914318730042404136139221872768787650931825595383338050602508591279451074046526399209122790080937512036184833952085209901661257341103930614019369989702811437878957919044854405506570574450119042076722355359593146358350939798598826361433801693208225789159599965731141629952510272290789774227774482369095156319352571975921436505728914146919428211667243206332518442270837516028343771206620736805347897785976319109429288990154066521358246768355495749987648886965666607380499517885991003374683521999768445790938363230839141109039018804439120499130108698431794514454194412980910452279999169765070471366728555084655743237424976217690504623646480195364610368548862266051811228866649913224020035383615459502404891036162918121707620676514448259081274579948191789713406650586270126245732466628275657278902950447907366533440303722377310350146086690312633188616265636898706182148323189353647187687336378330481037872758002609094455133681141551399072023951013194026583036309792432172349340259342109480947872751067496363102851954996343461402071615686318745576941901723912019924531051720122524489859433832066735409386061957510173712620812264619194150366462549855890409457996154495255036778645912631970035785973257805784695651243874463253219615393820711122481303898691304258548292240555717876745817432051456610920981870231148831446767970861454093186432406717170617292313141971369091047148995553603321848558686583603355362663988487554136501050562800217052301419694033473635258027628497190311002773079453680326274132889996443333346653869565619036397466121441661489520880805989873189593166157461081265027168418709223034016608982494748615072879341443482938701527391662559803320712190480406807902874213609813465037509167653407920155132940569078837845898233628745909382105214286489727618446617506709085137583370002820125526692831287179055374638045361751864160676584523489582865010702210592226548071682870909174268156363033377489154141823030519207113278231505098431666781681196670896348088593932548633622655876939508573706348774796038139579550249277122594293264801875529242729320322393825058249472166493728253947718695193431645119532696295879002911415654085028574050047467529069445134912421417605154882608317435979209456310145774905403375189327463671931538188845978699547791603012115497054044514478314518084899383458360432149943594086795014841145471034693242914129344438300330932274343231909655793393365861283464742905212315990410338357660250044360163959852910454788467041898362175759539996916259869267627656546640797408810036746786732312187859544771155088497384839511519906132553488302903802718954085256112286461095108400930016141303672163310086061263924093977149698356482252449307026653003519477260112069204743932166889725723717176276926179164775030511280258147361972578423365498222963673728498436372049169530048645518197686261976236147101222307265970751967401177823487090151500913572662849884622268207351155289119055483723181368362099579184065100933268939035738287537604251634228168955309267100667250007821220725120125632595838498207008076447438522528502583795490439408653226945015153010577723408088318896736079034730399504497797334235537449893375344727584758188589062398373827723268708104711359108138190138167276853840079084440762097064569184773149445786336510114117741678004070293889899433552447532809751562864805779888369110237863835566565998818288037640874106196192102747408352568879554472700296770172363166343950200642665790349401536324671656895227254570410081665165551054633933803642862840498940799181403623452333790023424288645697984458511012114566813675258506488028758979329684662034652179114463419693541251672785126396789453791597311825718226707951269949289033710184526110879161031237495823694809069139486788864875062060114374054177706572206213954800419567481160187754383065345658935979250681338171758728793596714156365017444643798364328877634051873221613629420606188673489727587026401232114357845785798754377934298291898185184887171897719167977709912637548010655104929568252653482664032613916852692474806044749492502422219871856518747459909200479030573314872223393157331879735816570668830103876160438734348397973709053599210344954735083991284823955770974448885526386293077781412862090928900444704992860822951160045989804872287966474895871587893342138230014506893114064901985203714172588415209163224630128428747781696683998879057764318579523081030831046885239057077207330601224887433741372611095582077613019342763147903738135187651503796646777189179059768820496402699057034007936561460312683712178475947739570547946348525391788380733151944239758935252644025791685686598854676507672549395220928709709781942571270277937918863853076166685318570914925929593190894662070336427074635176292792823385458074165261777908974072245865789043408645624189582316255709814182563796238544308875705715480183200586904275583622628304949391144409446684955998209197109394979038384315455941685865597230315989083546313740605211101890093390937789311395556795489077056284625414421477185337593449133490385191957095146060586900443307502163197049092731271265252329549429458381660797527868818414531097922643698050601999431358872301329159321391707675404621207857664404509612217849970999679052145224378946634601175068229193752431894813816364768220241337845429131289810948040396783557065720385531552489423784107012331700842602677021306980321413419475109571868010789004194758426009367853551904012425102254501012629256838350070763806751228530569832238770480916818792058849830015587664089443484144997634748033975973690991073250621292744045089074746034752322525976478103066028526431006787988853324821642719182770446068889742497582087647884969965764695185326408842879077644477836328927949207130712156709600728539511222095940600338338657892721605643637015637363220186461562804483716235143189638783883981380181438194932753919488822120413542161545053104710996116752833826463427506667368643442133873691213468009905796994598114109519850509897497710891123657669427498363641454510058467511333731589612949284324480259797863120538408395390514956344284483880885299941447957312593693811712766430385101087143218101448139961794051038568587311287588478693973907950232011212808933022842991598202885784516691397460126975520638017763563012233240057011026207227228283033095012747677245681947048559559226604908756899194112365080226102802518442168204755846390068501671025138645674081301204562705297466060092338389421831464279658280709733533522141202010786697274180297210498605915680533377044573342324579014531269340976401674840164141890492167553057883873612762936850455329782497031215466811293700820694354540073991541814419334617857594389881355401873176941439388490482214994532555680315768619617929719082761490983031392530454898244503137193068593061898723681032359265828181182664934111206368486554803584595994549040908761976944073880546512822492887978533926649225628218767485062346013087425213181874925657253406694905094432371415073557627007862289324974807544922636944993537302336052516692352659560544207764554272684610384765402317726596063106265252894863397816581373303009793432471719877778693508192339134922323096504652818040323664173062437792968222876545391910234831507511784142403554032178040043085759132611534467069543714960121750188698175763461893645754597757607303271772105023282201523478499840919785471727904007044380747015143375334664869729482193101457987679101318759960037859984649854730079771162522063488669496345121616215040716569699984295193987670173686834422005926436094493714680087513114113076854021303210872000640760567876234152436971240939983912067708463300359756149113649450702895924483612751106947632507959142690641486422270239486024637347646056177811074428419456059184124314945968492727262130347875438756673005928127753082319841123495345196560456200242104889722669815905470533106332854572350926420589820097796080570482458679566579243046557993149528821672377903304358855536103065260730474870910450607887962628083333175960619052667044441977437535021901077276692044933212569717710852474476953348628152630558333779011280796709674965428104315804544140319123754410369135355529661575184030146071492103753410895607166234380076751811408096301658686054636542722813191366516839652596217734425703195865499784399394084236198679840550860754334005237782617048601718921805795473079131209649703057457101749087450985910714128135047036328391430458765538505305010382471702052891267764440029881568446929402002484163707726494497808811452457456165126691473943020887001612291610661724674193884497482311113397957093791723150535506713281483937114265459584900205180015097226804906741515216797248662523697427513961300746273131610479347667682387752907641462828613872366554412416506510514924293853807989337778938552737081407420537064674495922603753696332937595332428864456511639450017891671601011806764793688486220541314267303128656028162920403673721893297577819104671395426750272910803053123744173589766447105125170745588833414854399882237891215620223646485717945820849886703691498093372629365360519197924144215282281277426672499468547141299131860889136080081592720968998032879973840644154978166537516595357562607633300741382374772470984085838163341572043551785071037544579768407912443523590247652112275794928986788484364186486667949682851219169514172312005752824039730637337283649656960772266098549116620353374407216441720973980935164691389555956809990511460989897304654147024556696252114262372683497374767379160926477582943006468617148241394722531483010347593155084353652706784975902064629609841933844051858859229235437683666992560650472402808666059818888589537807901658155127366619501837739705578005587904665548112265487351296536205497053704878818725138894768666788974803090193195664999598171636674318940507680912292370101691034060398005834618392538457361591626400488797720343793345837815133684001869255517369677206976316610050385020038541096175336422032987704554172248647619934992407413567031623615079108990920273355853214488527559569041578217873998538615505779539268633371316857852916523724924891408329591385223823621558694749019353094010796810866733144074752617282623028833604014490540867465796758918848424733612904977474843105479993992341620994749195426841470224735221519890886252348750118538942926290716397832757380438312271656370249434326942937464182013288561131707561022151312272639454963903729251210740201107990870606607343841714834192570820185775068785398598525668545855648690079008434386457630968746360618274991894863042864568808569954130117466330201613620199361613981082404502064692726940534309822905678611997841331787624125391293352592484827815125653486672498890023850568641104014058114102747242119192229427390983786131289783822140698248161668841667796154017642616142865070753664980702483605253999797924349509371554175844595490923254420607039747635492986416234868610275876486193912862604207477253595815681999540666494258862593903978534075525934131046286623933143166423046439257528120828584659055308494491129464998166512386221088876810123190267164982495305382720775061104024953566160611060707117951006166738125768850524176000674134640151278273636460660702977653730843603496076015705701909977432399106470521945916311646083286697891813361178223816719339011547487543727880769547357434490365936833395982075607725612693798332887776076365557940888662699684182214170119599695474900374180270528243018504608911442740865033342965897287132786855670998889230163444809004493436261524871532014230127278477024291635704631217245897583230262218439416010270814641904906957352909802946354297586647800917085071668624758444561902955759019474743463349847382223666410397385502886144893548641799695898467827347243972128344158266426463357695642660087525412106249360790187557044319640344210064752929370056228097980825914008812373919674739968482836658526665983817502853724454868168781189961835578933092838887708264698726206006501537960332392682126532331706581520801269000122483063866333010198933465490443699774746260785557391884993417374395423725681148935355432312321934674874243309613822752463888693793492404122497628815722536846138340134705662408907209533430117164026187904443760909964857998320637268149467252922966792192922896238089317468664564748745859308153073208689003325891722591833074066783902600271828471858966385367326393440302950908969698735157136570451023938780838469420186258769699266761159108613510876459758374915029617563230257252199084814622821289192220435516696605299470474007750145736070858443241739151389332156564899429754090208273471877306972056909547882950934897474911470490709285403350550356347653047444893216233594595303441037268567193039527564535812146313545719155104038110519883150379100801341618532637775058000051760931490150508192764889719411292493303506244390337927513399179622479690606501899189480870511593999108777067936916229750378604964407753030164725147075819900689593679070970657215354519518419232450639879253558131206678615310391643906363299180793241265134188194800194193068414550913050436830832095452854524436663953443836829027056239953975026109731622998312551785518525535213712071653832391969735128551403666266111761697666941946120032828970159046994471197899449442120169188105491282665422594282407774492070652695522840963468350753451963478414107523085826074518439298546059821587391733663803177511157829540668504150295122960622560328169476060109865959792194366656167418851146947186286509058785218785315556428024456378902198040008185047155215689469297253225996343106386654053070986189485826801380383795920330460317779575062322020571173633065238469153837224871162609960410645490130452613942052996924486852781873811797251445821682740653132386570951195551571609720637533378696220230389704728571132994963024583127755180458876481368129241718067388371488201514889165238459781758206480457388975995547406305397744759737005516312602854474114176915464115227574383407203424563427468160957041065231170280943167685569690901968413751298797170254204951457446369606949431383614099693138268469439474096706452621499912660543230215726537514667799817586219275344578323400478926227251729094291763928921249218831332655246843312013518229140862454659844487101837481442044194341044550822203571074806773496352770301047426618011814356567801326114222831481395235241281018957307528213491354453703675650946225170348193718970537856305522271294302680895816351904026407343685871436827739099039179318563345959072774675903841018069964596642191523045039099259859853273030725904198924689236316100981543016650374523795293528346743856409601208563514041074124010427862290040614835188318941801637145644109913572353496431711823120795474759183379456972648229381994413080366166207776146610144060000594969623579231846286619776358167475642392078505041727210925871886753597077020459846266733720825392081504016765823108586976295645582680008918091809846787237160290252399920532837518572037442077575145984535877166860197816024651114314350458811644469550492594042852645045690638801953594395289414015192623619055812276825318742622924696328741093310429733594294469416694849494614462746079002989919570049501316049069125383385711733982131376355107101255401475687415568697828077564522171231791404193630634775294017515415519882399194166713344539058285770638268074116045213942158258434316112268641552535968348885015273499330703210155646175272298830805781670957369515525758848385797902222301305113870175710651981182429132924660908580684264741974521987743087235381264438881293458584720664407466085383101445695929256022324272182294678721577547062545091594952479167899010495857126678966422709804344159995131942939703441825927662233792736814556504555288397183080041530909845012450929060844337029532907772671088499874808238427802144720201102610996297754842076949487669614534041260472118987902505172618898778291314777449789909287888617285535760354349197631621132419840300159303246868287886450089927160959961661845326356638285688363433513147823407204234627601176474818983666410798771498833027897914927179946196805519701282803733192179308945178790097677822033490634807270453998832756851920324749063609340908802750345622067371446928254811053441991194283366223750499840304007412351142235147104949361139942623986164776400203330124429141535401807471959426658471977427285818028158017197349293244100321609861450998563588598110505461613837374068034921224918104651493607490575762423325891580044441390094888966699470935558282409566616153911331408376103100307296615804220618975116825292711496009492696734595510191468125909946598629612276129023937026362328962121249772316934103824529081830805202615855751793489213378258895582446632528795988499810093739624384641637186723751704076293147677735809965062303673814165952564861916092148862112137606130643415947929038285595393442451638837442862248466966078959206907557274049588166659352990481463124340451541907276041929244186243785537019871359471118750343282901002312444909274343967422737838468550447080846636930426740268325492152580037407519734441506525227516365662686788979490484881011723560911211851411178652262829251603183544609533234785106039116512060791252660054800153647683685136793664852084340508084696654199693483563996705732830117487618171192444978138245410655222590311157827272143223470218879657728591142514973494524263446996966110429635631751581760007209521911712268992217549071880642289202934293854993451398532213181058596037716930890089639558831349671963372532138354909895133863656458428316282849381244521327801868784138425477393091909434603997929788280820554606269437842487224726981769784326524031060179603786907896148952247038426431137511307295649017638866767490534361782760065181236713166185788711853238739153162916233299268820475496619384364610046796709029079435358808302074027873982923911089801175825144310765248516311756417430288409992712896361152047420337527371929298001927400959051219646968220581623287822478747640257168246253312861663450117799133171845104417612992527074527395031846201813760288129150939792810818454762051436403126439266453730188531234693551071581008828333408600590405740226015334638220407823154525010710709687255337838648270931230976181220292588701043134116731764404648799539807200528478148856101178097395627744671496955192792190369663490146784209879448935105720562743046651428336160850442833038489979223726622309808220760581954519526187702512836132243962311789867958943846394950156343951969337661528218176028584928226242750898737406694426822458750749592095105826197025407172705714187214827950845014104106402238460103839903104638962023591906517743604529276067875445359855884189524185015676782718267828835798152318437734328462260013065003696669490063421322676536828152008178178662243517997856145811699621298269445804083514919630924381673060715508810718952904161065361621900533406469969493286580395279083634420836625355333119003255988263904980205099543690691048175465922406280431747434847414366962436589872442927960597729800124130238816092239255057549339522170117144412782402576106198628854344674622107171549659017732905775683265814464330482019751770298658367516041296708673790493446912758823904213952175406995352836902826520451496907377156991180378480894537638041733352959740578635776474994747880955963244392274175946788770203523712206457309576841174628442728848913230265274027484888443650279896891277292693019867312915505581440545312379408307511582401924555616334773468040402188950420673985056066119931667668827724797466528352571778949490116547178910950030733906410974923441075696844913472370886199304415466176390190995967666198796985119354140220846950908562719102154378736014780727005487404146537941871406947804715780816671346945450128699154261116993340247187390400479785250443014892205013626020877668989488415600319089626118186875528520651434659441594698401784840330747529844777419173431871263018434465047951155298348358133279920268411036619133307026499589647227610922154968959787046195440985203866400405339186022429066627280699851329958202630246399727273320220052159407026677006206729234200279319999066941348924681472652815660150775602467853181446290107256883993197958889516173279530618802001592329852140065506265276128884755629551110421652932086748784343463636324180563911465655105570951889974897136902176382358559817718404690214601239937738332628644285139328819804793147218538646635157967138641253495797768027708134552164367532444878492208092364050495305046937165795977635827423621866352391587024119391293012703371878812878322596723953227397407081732437550601273782784155436910909789555234758317827904479626873453777553683659987691989208903188367222975199141382172141342872591444138328755579309959563306337687526181892759972890639287454640520623403315480530214031319413110777851582044033580199292529533556526838375130482679720768871281272933829438619389598126019338831477589903551334650023937479073541071852193010952863042850880322909712086027365043742506537756939591695246170606013007249330101462335290477218128548170930556438593342074517922187277123373407312712489164453190767712391974452990952072398629958938932187134581742690113592184316365892894232878483939705596749424983380787984623449561474892292503987732726976373632457624409097286178296272471121549535420153890926666158290707064343696615827924598137364509250597627296897860092034472786634166297110689364647021738073618851027440165236165632050199143665956229297293728450675609297031369832929159619119681541642855448013284919849714111602489158732248181919101423860716568423051795036113000084949347259079140092714997766880779400405533610729445587117853949236187387363115412998453973522102211808747384020087059492303851018799095484932003292884916747107632556618337078423893626952900061331473385710587006594008444191103899778598151572971496707553456032012600801587990270685686922594720661921925401260524900018343879113694318678076928311102524895063545243120524721438850667986348477242033963581579819953527378332428565969792132624737893120056549822612721490953792537448096398797411280941434149042389994424029256907647039153579761678160420868995839665157357994866860892349529812127234971687022452993496594386364210081496208647470225864381790020876923735748404110297486259739124304886311465282495325372240333498047080619533981315005412265729104272103441648058349061986122286555864343647638638222379097096872620521565766695252228566447462236012247536249929889726277195771638458714411785461181742861347772760177527156327235510212160041340643077108258242131981810922715196555916779519943584685091516970668401347066780995494920639327599685240077441131405597773813353826505730960815716805251122993984494983867391052371103090257800856892842088205720633786428525873698075089276629983051674159134453397694368257040181489964370518314199731648030934179052134451275105186576480072035564911873854695547722762734705297546623263857693420793561314597273811799117657020330816098004553597189580376317949873638923756252714826313652402516746379798256449658749810021916604948497389311602285402805328040186497138850087294040184138671326800579480137802932774194231335271847721484371298381076201439179001650930184384781239023998500006101316834940839845226587791512263498575112150458574778615513085047057104364968500897480324708992958038559269563395541875982200279559951140353265435869021015613472657501581892639586029829897311800727711058157283363918451862055283214204152295974239137051701868520322263994326418514723450808702982559994498109689557094731919608272511255609442239163458644674448809994762440836565931737958455454709263759767584561495267896101216225747916943718143016393323846154219514598715124967096474977453699583629768326179907542427796260077618165527936437330509983919372591533105492176176727063857839111289659341127812039863606308533796393142825421454327730599424848426717347793537983982694582307786358473735640485480153057651253904193327823724518937370273551335794324691140164608956849956517876079052295722016162183294555937592492525322327627455709212567622121720955503536736177027061293815041575078511351897844872773307907529853672917070613550791765584646454844606807334228296926617200892877926164653678455389697727693718676125055823403272859366356173148777312575086598148371289267968627730602299507354493233050435781874521092689644930916444693353346100005902747618137505122767238113930918071792832375205494207252952209490339345577918532447173351077665461575669485324466014900167067929876287856110818188604178457257279761418745773045534469264478632163124462819457416426412623023212739986343859820457798630591888999265377623290815863171288123150886544381287465200754523850604483838841914195318007596462486356040841068592578518872597632252853784556558402893225516153264111406511646132900084291678766931102328294340834943449613059754672260205170103315506466009435306051772811251962242588268257266968147140830692206994158465198222932469298103410456382578164124203233550145115658364052000215176138276502856214743018112628139812840381612146611169739331030480984130081053042069285957830869177965945728364777509886129312563700547291427222769502061555781209520554366154739085397136453993839511897881862132752670737718066292473026547266853415516229828335846007444581873196898052896661219307566677988900988515230191499363043341217328139307435048921853539076755237342249438356095861058833096649643823490930106792281244170581909403709476929322868138929900206121282922293236580640652355995640204810103679517849637531666996699023828069865632384370756953504983479581872828408355880011240260173191808879804109493943824258079101282746022116305224770363709783549123615736653742838480786482539704402767868318699423287672185858494743538113147143945535183288754900935400074653556723102448310113907161770421763814934172544216140456483463254470494470686697159022247402971588320412048718045505503058166223352787264362129152062877011468653620023500268944744519411444969923939948860068586185777992525102670767784313833724488917898360928828145459203312378772553536878247575747530393820116113235981674946930228483322647817247674700792881075821908530812177415185412273628730758453719726804273481640957642196001768816603971406011456506807056017910934529382188889189704739463994679836054233699210180228742418110472533164220234332897896740302309837948456546906189384367634385182968986121295712479347697782935303532528530719513470875333211450841596646088062849240887918426381320029405277276919598595647440392729824517917298259303765271608818038445715860955274457214399878334291465441946496905866258799060470937297534081155143346628495406065778963308167393054535251205452157159915038581251414645904700779889790454637438826522331105439867871266051045159882008183218917668786228614527160974024237764966318281328348463086692801526308028933547237346362160212346027540776291635040417481369923250167277427170881074546335316545496319607580869755975133143936336931605965987917579167653961551477340971305041149497043466265297456188211730529061411897603625822147871428802551371778876983030680368160576641563693826801383943557487421585574681717413332572254336926957949342275296965170460900482719092533079927477645088086735980313670310750225478620534437515871627200215297832438727040250203228859012489128340531957112093415405679443484511761309517827961688067913768951780182093324795444220575385076303666880152252369749616605456478490415124939614582264605631507070726821054523122946682109220021861208149836433158144616642641615602689952093106933799859949184051588436934114798364539957529671009508830451896349641626540169805503091768232298058804222582873065080230121732991716464134845748551894574881770719542794132673147580729839212683819063631717127914554919438498684836457763391535587875188668605909048184504344779457248432759419653821592989022306208893987439095245077442506422699998880506897393177381819234159384672440902591889811631519770566179259543732140661698018968295017667950372412767348935668540584199853788268617979273306091691848284770673190685462347805941891189040089748474052511144468862947814286575387562331788535702370551770465853243813773524847971108980905432540193946921312755496425287659962548394602313444207860504583992163309763472706161690168602046360724052189908189466821734441902460095211833955400843957317259573723927604929201357897896621503510334908517936080522865462688861254508245794433728292411561738194591037893999260776844984457745976957911909085626803862703777732951904231135229941903208317520084180863375223050281096153356400380653835236606054277868222637053788040682449192016142485238965433067031481385313269358042536981430403261778489869309151120603660029486028474429140298823950165093970868264052344625418598061820133334378197997639077096879994375920147667756914346425876758483775166654976688125661297587122604329566673391869213803565711079126930082459921028269497888089808118910631842301290404868832429792095233574391576973302944799130783425131715391174411068589434017722102454108354660308653349826619857910819723079939099250493373525568385696409986668061753855954053579097359358819548151866802098660401685099433263355377183157433315878393245048414366758294270433901091909795798804191949473271225894934420019102813214008691593406691623609383096247156869245588242734024592642086348368463337741006188226511686549581079356981825076108814780660757897694031913704511972774264164225950598500583884158785189402282367470153928834036558701273759459508674688291205292440376681783146174206412748889713556572733375923203134490965016581060690088898027252008294697335762354008947167744920957214546986231490645863049926727463829543352590175535001064969496146777080199129431762455057876835482459986505783861857083468266294132565581590950231757412075127280546914752528175424848858341984802355547133294018272800398749815785495427636760898410481296395462700488133391179489032754698156847575120985108701457333321817551055765371897179520469924292955005729553189077226455152125568065146791039579514825746345037593200841402153119095579775614268207019717946055657700814521578014410780438061331208173817996134801469051633183418206481370623989224805918967030471917108576057068499999041306083952859301728165812363286742116575654809341045448834762484401549602678209947207815892268393714170578401438074157519057732313345928042282387822832895036244129321387406067838668440542473592358051006796833488874851608666590245817758189530934402862114138873660088139638149802346297564526337742104809518889483350017896578487421111417394611631188690788731478737997072159611082541615170624399441689331340740307976554805707589941112676051987206201594939244369297615764137336888189673004424337075524006306799839468519507078555362763806472509781403222015067384765216389699665071078755062673354108282159483789030370604545694085103705892795284088248087020756193452505214475372043250694055978566851514242947773297448078513284435814643405080524897346184349695575271520915356189212871008024793575201940048755327104774817874929262300824218968508099138339769287952622825942614679769561547434158269835132383668543809095233466211890394301488868712954198455043174670514092546405584158205582946895193237405866435765992899046777195700722876537247502718024861315783049385561536541060756447209871243010511937471209133512631467830522172985230648317901648394551984523929778763863710719450328958098417288994160442154893000566572597647861128052895617187725077549832461342005826709444387848552579080945549778650409010271207228389220964531052232909527326934051331621654731499957278689294355777816373145772894925296751200911175908084846313168484755804717287303921782292320347316260199513769508359021348475977766163001853504035456157558265553445487743513933730762353912273416515118698391974512852657411405455656062276467365521514776350128094382258619565361885220360711434590135940487723533657886632715093102647914866525296272607238150332086381051596284264841877092332329762537095477829366046624612320364995321729212079022667281531501463558018428046670823405327201755610030288482212747143789585399568749654825564486123570721784748470727285888353258803466368736792829764121633166875771583813509185652464902534001693930023985031403532567349614962453816734203842362369676241622929982369379991014436536028374637356738470595423707103104936415441772808614807329223408847814514442049824083248140212238240351921029452275166421313243166378580163817646130480223378854932316345851037541909516058006805521190644381691192912489470981418883634061696821605871269657471782883931643748807747055905082126804852580967627102923766400192456504354158565665698509225647984464832930245835478083978050231682028155417038607478757924742812711821306666823225217345563490223946173851718150127444686667855562889712233360710410748029568792530515667136220834494853494438160727620779459543847066988050859541884580915934671914063597688765490255096541424069476478949897537963293967754077330392355414070883382950817384572601319638377212889419495871993911392791036854592161735534780912873290176676097150912265797351553804246296752457551207846187177355497791252321448091698490714144308173407936708385358598057781600922278120044208530371879539791401389311558600790336048244968910733408682129792745604112760435571947915464745371232603487775594211699477617802243133976844799708675644639540249551044954356593188852924983209976481511656638242692325752414116287416657733305191072298785654153550087595997175733597559505807485349489484286756842436754647608271591464059786789262287512567079030855421561460178681406094652459273212823330381400663917899518798568082045251354493914737967322130335406230773652708205176989415310407578950447363216145519209541898658676164303129116420010121938023561832639752740814058224211208628067531366580247892258803873572163175233385387035016734520587703413000183810509827961218587530267386846990990973757170834895986556501621520561102206265691619603012241179928112903492893684764392639970481028359254443803893839134404747867305439818946863790689551705451405744629518333279677673733392494295954978383708203415134177404945218841018755431543460607356961795701913896476352604561476798268218423969108194982767298696362394875112688527438768525809791231597068518104288775588892943283482302294295202532459104081813778596149731382780697969092128755617430406663095870300186858000911106176368042007223463031667464870161731510860555407418881998522318491691795527919874296514209519263178875983907545121386518242370197301487054769686634660057897077374893413679741821843542504232869715986269288783594035733886537330451704654322049957527955230722034049800793934431927917799133345047667596062795133791097932595083000625573671849983583532756825792093508876028164886134297277883215843811547162817138353387084206901900273685325812680515219763923039156750726970548417456227864292432525226705873087030203713708477017310103053052805803000821221140942761111957396832157646486855297494543930106081679620069157826791373295566880539079814434232762563941973840635686202279116171291735694566981053421739031777724693680948856435606179128120100412258499205348125364891805925989229098616145098757885679286452147511625972442389167681407077867864308219518422772661130184528023979160884604681633794860679526796696140787462478902974820349386876328892105572516265639153379446800891919795581638644990095027858317717407408424579005993900633183513561616809840930804796902430768068165384873129116952003091553749014657865144979990952193290129316285514241067922705755202844919168527220939984224212176242572765997522719307877026268053880776845645091195945603156604872088903877498924078922270526447344125528804841353132636096786034644830644594782827863319255368802207147509125580192941746281749022548503486052680875891608320758286030122339687057884947876823977041742955398282524399679946838188302538545817349048476795628787808231466899561108171616875384714030939774047916374810954131265282411862704901696119271952616005070280840899598659130020817931458303334712762693907142203017712430671487062835643760226951096962967356975374860285785757556998798101738876924368764875184479585846580493866852826792867646405707459656224677642485186691535731376951372821409216138336579612560538994664993807038735772845940678956083907513423347854027540551183954691863529474169490132938169444827487769343082512300083614445253056400421873264713764501428514924002674651979472000559802755739822637999199561664639191477116231634668889248278958851697534945924446724231777822766346556633160541015271251365270428774747877591169987528907548702320658575054262709360182426232698235315043057186604779436993077910972153470901071633800052714359962938204347396149246650731393106518475259554862463299530781100704201316051400521820593263527597213723278509496820027012778357578038852962854623283617260632379135263761070014985427144318629946145698988571674487102338351127356823675982770350670275019496786926312164455853131049723484577431848027340446340496603474815734563537380549473235763422472903620175360850365614049968921700204454719388269145190637884336521595231565047925992912787902452554659053131337984176904598620052476259750922908782322364312582928605616772940447018379243147338283800661361539192320118029870455789169380326220036179363370133196238289339353284098325352562228217162094320385305495582788752061867098995584237744581869062447667874272559444576550351211587270506083018664526301991349163785367510639895212384724329374198873315762928474771008047475144279589571464850605557409672989564778031307286770570486558548283358957416507664264439713392528057421061771532045131941058209053833413756391511595881889167046539359062458935076911511163104273075475363393634074053276460633410805601796644255566093676767941850806934980510221861061769792830272041138389457921948704821008556759449006316132304941099559375825401637041779484973837534311573264964093298791525055004562076266924535938594742201519454378740985060728232285106764241931699926455846351935816043220371866696834788217479582244933919681151344098486973146395117554519862454591500863070124475480428449727767845449834718224706729784585894420735326446999758229198882940214868540728559213831762907981483340101458975047972649895881479005136766955987868638118678516319046443927725859486257600928481057120526802258631137239137141976289138797243781363701383963757248489892733793707743178176421526061706330025483520102752461404103695159371098961042206871583461100642593720422148453807912789597860100542772576746059861307178169191862220763083454488817970393883668993396633317488705513463455426845725236805939675508236084411771304607267423756980129752397470438920132738606185805179493465445727504422367777221808415189724660407825367301707064783779909539919477334949996402829425122175588544783035693620687423525299252388083276684621422453252432717662157660350467242340995342811159629549039475577155997673472354624192368685701466630113790308151865138891162337103936798121747697078061334387229061865868976879173053801259611668428725242233462516065791314429162188008473253841977951715799022298628109230369514002359010028712654602650331439944981793430939293755034376924712229249102831416995850227215409002448693057927548804203526353745735769460276153615603221425566674674022003129072765845358993422746873431624863693243606881172070256705098113090199093315024118025396989483841834932910849540055123704452219374254990453575313531066271230292436005208856958217018307093354573382497712826030941687985346545291855276194216071512521129729681541554096258285403195348062358275209272836577034786714073182288288927370515348787271743197671677549249091797733352671142062958185984014013734639467395423731546904281632081393833681117281820342988289058831974999065223248566239169403117325613897715782056189996361052514968313780230584164111510580557041734758257386820864901801001354058145033258629750685511134733606954597005766713513202648718311958544458630695604605001375739245453095863237716839771455890618513281911263242174731010418150229703996292364168005180981476702320000962329216624062273726598947586749773185698247847440014137964472992673855915151629020479772920072658872778679847729690134287093746458643280768304987887390810877405869271045696818719006493449424034284144498033233332178876651389516871640579950272432936956228880211242010712359480428507054458814079253693016859120929364799244944202435092641228731276591843358112397057335533099487340083545849758451207106293903782484108555526650931830758460626207858645464606254339287357990278243145884036169629717026920871446638954834101737124696604364888009277461570702770426467860654901160577163359287702459036428283590001684976174993358783778531835908553971755739226065541244710961876371515519030052996997277222250233724421682611378917715004215822046389544179542319873800108816776359266850490192387743668715568508412423066123853851000505289561758861019895964350388162289543827270234918099101436920557108414335116663629641796463145806437161157335518008798189774279634042072282822919619101286563855875349347710709070486050611289253036437801013915802794574300840671379784791805517353449534445557456681127208035863419797086461545305693165544709687707138422608994066978861204668268339612843239561060879037781410093046371276817519368330810837246861742487886162623079358919721498068641193852280975847789051800159599547060137174558156291741340593207732640266265134036039282753232762543729383447781010881629222977337271808336655938318117945107139024428328586005067933939642925127418120000513811742546740091819087947000618967142069304992508767540014187091231390371735188666704430102490974541059378268975560900292382312492713085543538262523119226636685071633214551752545769376373955769754933367755371743810768566402513118906104681389972419867880688614876488548252371072791174098364056499212671587455175534777159182136131526954077550828702639194663872614342435514778243628603518891915389350281240413274977644851672703564531922507675314106636332239861460995055665173291580589018257399583255075592876754358826120497445094946210495902413509539962033051153006947499514124223733348409875384151839963196906064314203385147409321414990241483249932561586172765326846219112595953572892097435205159843639494750604585586335599780088431029333533255891822840787122615601969218941121726013750176738429024119848020690918492306482496854519195451659883938650944054347945634623091301197461168275277917956281642246360313589467270104220136917985441983986491568715400109653581675927611374840304626286690724737874930749752098111876745474002317674658466200228474093697864106287810616893465488174797271241895179261350721305910883191872975090742148155871737650541010488240961599212896996467222692564806025640827660094208467623002184881912374920880242183231578812866255020498226058205069994763994964145250405047772815559355043480775510104894626984701877672980574424370038019925030181219992551662644625332035860111764404969484292680084682125554356457249767705783896239419830703000423935007753507235768570217127938167269977931670872278356637073610312181096560580355628208727312002567061186626166028488998970445442477566649646697108276485920554942502658300317669408171660988062979576307358121541345947621909025685979783811311949702263788214634228466882016787747496373593727443399811503937569945570421525214167926779215036734481334728597902142495853962480396726829819185598311331135169426015753598242753999504643869884553283549378017123047129864875405853316247238863944463117625706070252440605320268715864568402806736282704701982807603171593514964183434728589709397937718637661815926066323671596037473306135381992704290138112391429793451037097025004994956606444962827891529109899812538714518956090697421800741268833682950097568665859779382306076563082966882938151187648162819618564112525181544300842763761434453725242238750188156044909172763602379328105150830727891318907779229086633096652771282941376202771281419383654873124687819892130125488967787471728463989565495982570966558103008055678246170628331205271367213373861281173776514657657549518348822827611900213585001387562906756083631802723521067526708702869982020200658058394441714171160822187007874729269779899171014959088208651966566159489425957954131390804346266229272593751123423043786881558586429713108090647942089364358027865344663684958275226142461784824489765506608555185591613396993788152803792373174703572648330442538882254848017189223644498832316923978889404488463749351122547089183674663420621930208525049368515415564680745172397460432362397602338680941552945045066358922161945274715610609379518710277100975540662927936320648300587211626298383126527090895889770925332717580732780016947562643859254464117092861652793631390744697650346486599731518869512835935633415817663675722363532995210685723578848462897737435702099044176374953866917534528211622795574157251651483765827735154524605307043225654461867185632578100400992353148606393455572562625763904951694222202006928544217073621719940077477966640442960819034909989997515868983816844431431002528779476031414742476920249480705238020169573942689793904947359236952404123638065950741219603970574374646854546107445696944361963881767154068262945048284996626517948888746009188802412453486918019219911969697305074825063919614686339711157418320055373861232093503200532618450131753403893657012866608409899194586755207942108520928261387832184293727562591378843238423639199773349833027096787740884900138214442941817758192732913903367882855685956449423225699380050957055852187203302845207083228565287198533726748881328457199348357521902413045570097572030875194337196763476183940866110497700892709404923348239056216866932407579609723269865627288820615793163983500337803685701741689073808478391576632109962457590568197821486097748874745811521210159713084720195442728347046962749680041755778627701633321715872227670598279678366097962572225990065917438267986300219569913124541810602929200340087588357798265115623912662750500621320650060907850163870233741812079400101465325899215722181793638019303128927017988213572931812893418981971261700741296381666951349193515306714550577874608149036817646715260463419079973439167169072145767720407373591441910626431931454401399408530085510369763430292913496740753171009239833486456373345158278392148816097961442531907465229402609175148603954328698184183977517206938332217854700440836508615277784576685061096230088789478206375297141796328455769318336534732082257348100999502407418597723507831152073663788101422981026037826433859478924908297675613015834481476905454052343680616756611680618069402393566993066370722502305150390205220683332868013147351511599610249233951086571645901940325610137810510830702820459217579868315167425893838121930317877565666859435202166247775106861613798767347503076547982203692370855001384518946112540393331926597064096757582154582222763167629015629303057071464323026700719519965143394061662459488217529678734772163173981670408228059028680395219052529360283967982873955393956717675286522339435137462427866289976312508672454162116935884736011313219622531671185808525363319651656729960951598295243561831098447049213464532867515391279776072915666257214259526781517242592275449672158124552976552023378544837566163560728570592411218203428604622582071570817368828302292594182385783921471129256443721052140723483758264807579975420633895470823562831942634515315520996646878915548816178799216519579027893731950192516396985309117158138356546863625986819949457758547486131107856170409437245236208789073128004092354408908361539559013326738629861384812523085507453240626135555071483429850469534906794483955817939183560863769909789837789556289981156190388610423641479026188438038957464920774307190364749572086046976328195340622913535872076730131892198713710284833162702987179976798935095034093347535729040909120613865379154322789949965694755216741667918870458943133470226702491641204794659509850623210689322841664132455574896006942221419481147643021309982689556717441642620549957040594482312013886534800760162281212616915944729331991719538625671270646982892524954968401870548487282979109208616701353514166421764868964533538074922013873216328344216116206065101645651790765480911481506126056607635939866166772852202290653753134589968489347643735725137343451971678888983250041441185930665330609007482052320218894573710703648073606727718191941051648611913911608906062514639706911392808231257816764628681361454846518733088745322492632993095736437389395805748628619275426094454190792192779907027623886547451748677267774315501072119440521003681400348677028808831242101590521767238643692720681446043213284068777360846547125032540759318421302774475367677159604114515362146224018639286991955778144440329587802045259719132561217869710063087317916999416345332021553760621916708722638434926371323145064329900499832156964718658169277351289510803199678495483087335417047273487753601959181105243602815770265152429904999403065187772896331012325758534610496546507080545785137206542373552142831638169213469949610945219446278682328238357680288313696779940474264198788819547496909296104116713495140516373193184038964689664276209548299766870207521891927804051005721658384461802661051851545440001227759774751574607610561897303561222828644534015036068881686016997604620315551408665956107722003505611332411637159401962974635675938173377242710276223645403095384489414564225072712078630700079290858357455257278121948339855007139411618742384724164666813377170065889432437457631629591330251088546134937452706793905658632207948791260374174007703202510734298144456307424836613635872745554183199973411779419365000561703228478570917826614486491498791567720529099477712877138322699437696181619430309474076206992801239305402744812654759325671873540637432117950301053783734134149271137219201189093050168220331359193295676684329727000907950102753820905922608712389082000165374493481557710797190345202946338666667893503947697202331977123575220659746222780221324590737299316417325650235434602496449899534171146546286789909639261073177382343039810999603717223227863455299646110159708116169505947216757848521796211439112568409310748537877768400429626792336271718145531590127155094066606701551966160342185715701348898389083925218627692945070080157100609353477146631421620687254569924616475439175564540684311267697527363107543921030042211317693854843035561881919079550040273148880723409410239750005395117284067145805455423100975166850218084701886463215522630827469825568775092795759832943618955695139297546053290761854634132745110248238104714963827963947973530671435444536686729241602638133083863766728376291704729137275711881463903995271433136104259203385827404179983991786145149657245827472545168329866717801412841738881086248892817544905179830125100609725271161442835315069189592011609536372116883690724746467402036734412221265302716497566779673925292879253600607639752917765751578869093429697357054724376705787444844610006197986334907284613349051748413801171210401795658143162763667170382565732540656636896481685574856276736312262363765587282379367819848712280852028374773415467888890894351629193874489804734868643370568337896188716105213146844909815577715484611279410902373669886231009616425109896329656992444955072644632200873080180238391297840916358454766602735261665170557391262496945649212853686018127045028014256323689270295614031442237864715558705276541297542114088111720638063787554261176660483429632683110384526825429858587409029188357094645247309394868396626590660962245344726301004282349479653510320799750390484633614011364674125071724710166164625932800312238552236435839522565990767224636066720483861772049449604478536637218307272313309264855241973181096532842999168310908810498845296880163017396527023529691177028383939487891072934351764569327567201424482180656643273778398665965134351912338789621020906467343607950050888123474435110117574318220598792854486233394543442510412987578687513848289073259368595740221058557714870098208816745251373395095952442875260576944221561957056204619845266744179010869341600435294607647933270337584423628795435933412795714446872288986530646937154731715970389745131935977108952880023614162878546925450488232473096726326252574939387972840212469923854220840650445444297781435044653541176018971051170016026432190064290152766567955043869428693521927617367421425310816547736295965700901135952106370249987944617084975838291199354259751951868809714777618942339823418607648572887040509033145462808562788610572481270303061984954850103513986782591413606486825856517591003333725542007234177157319346894084406112278630897265705887476928449949675467981316782556174131157634031914201016755142094218917293404571623778619524191049290093829590566677296045468809384903874915153829100777250083679553828379989729170745399242253505249675708905062434526538609895264998743971308573487911908960258683468717003681863508943978881428320517892104809059647743160370846363166738636732141478433519460304662385188843109226152877610919698373298686948606519653641970828640402519944516446907662977396840875024065654739880255339941605836933518432220666021116374310139736900940916648407697807330186459801439631118246432185906512411653047242507650809207646044281493605860783022172531488756270929474560786941493067712814084942801365854798135979311971580854283401309163227951617600136598230390116608055378251761413656023101707665733101094771276909744812925709419546030696859495403714319227775918256952674670659792438528999310521802418259495896605144207976788377758851641594253306250289759519114161078522139375811402383386194727686351369914669695065035548044958919603339370782160074822228037164767500350461222845781247744985316058683550812427201538396710806613367798191074066713331607434837538284171813723676549840416233350390112053823782182817710402290995952782079799104354493418727600648637942535612597172580532238816179395918298478724832222113296841933866783136899294151060969441029385241933733539178440596382107286268990772310800520078338950398442397466216713888532112950995021652820734688531750094577396181333383674627750242753620289414227268089886944693412329527815740997387004606257434604586715403816188574877497923265976829928419638144317349731245610134477852881490494948507004096752510830198725395421441063379612326402241685388182773224458200563138644903716351350755868859946802469644247098801047530815309477433941253760001771666477035956747663289862896468713044022010600108290427823625775721407759044831655399867391930729336468837564029507742011236429926997444673864007042333599311317858943208511122694838282553829491610664278603405203772819751757654657683565725665528847197775893293548617179336353486274247309514264289509878790968532873629677194494433600904280777031405491969588373243118012320947791026427439536346761098663725041851679970802576777852710367196874552422882386356117727146143090647286132306682428485307086591686560500025940040306380347865708632733971428367912236015581558244286828901071341592264483793239000984971335150520084252009781672211897857033703924007144008320485703538634606376107611984886443450600454965214657260487817096092940575892524917275356404871700007111497246000097092654789435665205346749020655670447281993380894708112579025550301314118191609105873949101962944818132615748518115464303490931943466200600628824241372486387631257749401013380550337751599813395746441896632222421504896087041635587336432604010411149612605914363028150676417946940517309803194603905760683489091192572410167963917089769822415790446206620221978361497333183047254413694658340392564116481389100218034594146275944198901684702342180501432408102327137867213560360779662959842071770988005154249114167437743168081384516770989188745089852339658296805398421040237602277906736664645535886481665430806842890710997114806238929548065345192323791808370927862892221151668238825652371248169935125955237675490700975079869271568688648190451633625067406678106603798121996663390103129327291045461416849982081376489537812699706036613707062971843471431749126994938440534079117669831576436384110887412319925779123945286421190348798349772175288742674207399423042124761486820896597640505927707314005957286039211502749431438180208397563664905291853945590703142850243090284978371804727989676991606852977032477727704380415081249751685522333284561188256765118324700250078066002768834916843740362694728564979766098248491391566047654026482414108182048817838769878118907394856283045598570242302437064252979901834063872786579746157266383047637281922188696735077678793852881232409251990814949181289812090809377630748726833253053748635185164955540664297440664146855560457130693255292988070403761470362902042798210048743522062703763313408363758459042341743281825152348763562638997552225943768020772561462626351653794430277748113258116844436097483997517317589634243427621225772431850106089370527886588099659252723253613911111622177125240204272231595485683904843476021756840865025074096994221071316939121429710002024887642384747528930702272530708109456809491927421295772102076711282473107408908772823975520672966178189435892066808884146496807982902372471179385250176761129502218510278547506904382610876951069892484177755612126291446920541314702567036368540078404455217618108122774149842993718493108430111038447271470066715224774016937930020110827892173034692613303682636235790867209347574022362971742545855440121621794844427093165948666555178907065245671967780508751843298341060697841350827905520970464734730597338881339828073377360176109261160412189173001414094858038444561164194908824112503504857479167886619009469809705834170662943657631169172449393372099337605444267744404937866274897581549901151221561172678471644091292739486979840278554424704685980375384526571377049150874736523929107546189043928706110130691967929616750620388638328863807671242637030519105251330778931043778840287950934228704270164143056740252820506686227678150611924206776934227824805494171519335657286636388853233599176810226485576021847041699029414173488519779857222220854433348723023327359588302752778285852025137355779766154186733549857977739671349340324808157661357159739210651365069479276204168098854551157499638864534472725636579581791221097939926249352723662378963615707805681210767103316238237732038050535038396570215285421973033289592428779696416653825414696105499436387322907673274084172574114282289667019953842772485925126488488650330803066795620445952562877874890499930207936939680852634999721694262073107740482482453071726571049406910332732229905587082745345587846883000175968867841251167296681694698529648487358304994418335442639416862908997937236460598722608784155146028494071787532494394471367249193887626904909168523094819815120176588915064579272050088869683299027314533184737949326849667253247039502148027463519934732599959977617858587240670464650011360925851835577200181653269737726109017622901924537801331370006861762358279745613145819300656370929133324732290561870693078237311975981618162994521345472165673335080895272459470036964899226500295609431854206873313376534504395038951416292517106593921971998420940594259899926761250052113063006173439633883518436085945899814770039997736649144984063900790993763148605442349126863715602414424598544781555135003631841714919224054029530391444638437842127849983483948421546281168421657188215421665078250471577577685145257182293722623744597522523025110199798645849863324354881333538449653538094825192034439243791511565109529826973100643485509831865410585299766529546923029902759613006172743725309699141314563946984100733668197995097407106228499049040593279143457328489290567139358607671075665709642026839158363263586626892390728222301170581393081753432083932879666171712966214443174075249855077049294092392462947566307699159202410279494998252202556105334567489414196909769214532847607316461483789329545161742446328114786849283774228853279374811830750230234555394345097936999727286995926824037784178197735635657979756449650152362604724080824010172755253491760749634270855090479025443639259532397631588932680083456251644449112245497079427381283014608266721872495568784042827863205048672818606177257504754307888374435064095830000191779201264589013017982712381106306320940230971298252001164723344583997390495963329407499315782820084516762863985005536377747072575109382445432345138738476183417145778407466273258374535849780316700145143674936777397201698360471114331615365130475967435694582795149544981079941580953012196120541003467314305706430317042201428849526823867315998703416411477200220878534954956676305987470771544460160882345710593241552065667474762431478828198108244332067984474463772959618348951821488159930175560362744798073073918953676924198351541999023639016345982949430934628568196218071188559245995586976869152551600926186986095789669396555906229867406696394678896892687336558126441324368414813954828882827577951152438047531689107226027252114237380241912712900370215728316388802306294887373337059707051670058410430780334218450423491423781483207010879771370783009182664665443273190345240251916590929969949704135482022599167392684865755161735360204398254804700883427629427314000685735074724226494192558365510068225207838969644215166658451052046082649771204011044371735845649045225877543251034870991199733947653943097904609984379823106074373598314654433067265294187086450786464277512020423105134387458944656451069256899308892848465342850816886050414727435290336399932563783782359443481499804411548197191494151230373016480158761174358619347231464459341843759683195815182930212687594116213404299665171238198316758326186930072501881105719362617264188843400427282413905824953201284456492483267321955019059436161297658042192970686063062534672740190627840514374161111862406860918774572115490656719003597437791939778212632474401880441863822723706472637311298141493439897693145745983991514528952544464763150710271258866412044357481856560295010024141637229348158453958407505778628553875077615247827512437330939097536216988182129544727667808936153060178380316324077359833679467934822893016581898361673159051724665677008447424467361796722052158200071697668872564063076472121409144974679439191460170378336728448258638216692184322714784005438622633735110027185681510054521826313530519683699909831707308151357186777684789481366076433391020176157545387764290297076026333822813586426943278803270045657619995186355257618728206558835274498600760862249781816703806354969404008893183092009795139563047802323899728813070711003450103556429389710840062456809132424131062010751711076386308228419016398742945293790541435804587009824326572408329505361918905063170975811838073123294216992266599022089585956245012482557289197993022453330972585956960855639898839833919933158830250674725462579544952551899640087418812683123958389143720816560431822866801655018295954554039611535762147454548744271157918580369473464019547356189157084174164812502129398499863694982203368615852542906964309893651794982962926466053512959874382896307362594824578665025513315884207237208067170717226000306373338522896392440367698713711989202401632452487787631135818087707524457111376625229922300537492947977554150610244954429408108581759254486218274729075617230349495656188087307478827119739178238014819038912467087306970945989426785955472574029636805521711985964377468824562927894525836300676193618194877842598730054239202703562602043761309697941857850205756413010246284698913818409412100795356068357562701859222882449122845171769368499428091550869291073825491069686365199649356928374028888046103652442307372639561235918918376648047331335758625834430753367905147746097328248189787995131546311391096388094420922540878842268842567181659228951195910659491176401288537897079979445668544454590518915261052648365962194571840408403338148092418869899418745291110727068630530730415397745845933275442439509282833233546661175893185918157083779614250619680182655601274946124813256392611334659819931981385631587394359573093111698147934805626366485595763925186339534693880657132981913350968607374089340284985318242545198732744879944849909372017372042906482298843602669869012831152914571078381053279606129444516130221107052535475601250766330835476837443424192515307969623468206308379938113331805512141605524605556056442996058152687314538639379736560120025175071608542440494329542607572656156623368125331834387102296850946194740654545842152755941753450898191294740753745643540054157313371270369926928709100001217651400003737125054309843031399462356736491694278099497800673136594306307081656589549582348196168504460682437735208950418367757435464399124002688654836486885360414844037902395644144806974643323563695703057820116470022890123143917547232186806202412974520582392967784429450291571776202294573001897358993461640153699278946926911604585387612523468404095594892484382561924515676970066017061591711412278524446536146869458483557884591991386160197597722188013080823714770507513503272827120624594187045142951190040082213911243522795481995462730099187856431986712935301278022283387284986708264995220413778267924172795664978191079270550946863653128529367627559163828145664784222457522980678639268557571091764097195309508734298985468294799973226589713329810065638468958065730474678071310367446754875079256171505550762826433387032554449272083814590383807055516129534692748770357855414331022190968038759928428865206344057905533959715532468825287393060057189415604484778289100131019627391229902994361961587496806662925776505245285565057262106236142758206646444158584128208290616643856206319248031763074974849627695087528230220288625002207989647501505996156242255650421554853703023082066383181433340643245162544827068937986176248926057176787044579106502049959716467833125186661982827782566464410828187830803864120815431761927678619068677237045869832310835874754229966169198258629502777543585816460089579961222090917400808336670495257834548526844309477939112715394460660822077924968786563310585261000185203605047958720609241116491051739719748106299212919140678219219633383380156356609336080259298488884218522526795856690870759022044519962904482620840039676207657915234422637373906195258537448407049299002022744198121159045019799431879274196624505578088498775605505159959806387438200693987612557065285951538389070293487638356551250693862376303952014401647838346312287177616892446219288704212174393733480709345986975353702999541013958251090125425513010948315988176358936042156974703820452869113073486460261719189826932290078110186960993919022266432277276777462746541086081113071630079325029581929583036066831702516067401083451603310922598769561180580123625663629615914098142560233915133835324463022305424706393021107923370742790848273637522095093289675288066599618508240579418239613345805481078533398728551608404345486054249843393478338046994985004877845864434569611212548053766301621595509587144491581635166970591912053609664903851627946533423791109125338289312210654081854583860173821415808139282199135292983037126175987368525397019416519026483908536614456502869119010062114516409517090905629282102484504266009871316323378998314259437641653393673955949163056848815647649777199967543994671862539936205390873949557745267450821626183111004482335207285215685687491318472499970774410019581968690123334812957957362718617766350760047110907528533581788530319750210455096409904868250507381829357872121980659507796602864680463241153679221006519326977527598633809098665432052475611252853418825338383663472335008330526032335883182658842682531370630189442283374836679194110364209366007533906263607401668791874986087734132827196218306637630338529978204625317073278640353647399324920412947803052620193919981525665370428260483348527685911985944698643067387686983099545103609849050508313495076973030556991862518843292676145216130602459313581597713274544268352019046789791733579698188084518640228914599577325500085951464169235431006018826192338787940710165494357996720831879428286223577037538484723133247753604771558607827325561474482824156219775844764924937099264692206155036588516681940868706539428903920925924971464736112921021731526810176350404500210877642655439879819604399186637550454319354577076790487966594714543716807363365473471265954968713279717320326133711933862982502835161336650231780275072739962592618804263406853215263932314063807994983943871343759432732607603216923019887242304265166632836329425200157601615523773885782472747133949436093473901932078483610634398086508942684943764978768536808676311646763827154668905505956879205092882468222280606466242919471554550615531951669391285573978705041043497671669643283331648256731825214349251753022582960904984153486692656420994294300408344909659817926347674584608081573358393566227306591032886756897247787352362893200146074669590092027600138073290987198135465813090282781870504972245307619291782003498044559750710256647545186253962275159032771159477277956376700476995476011595701845385431948275394815982993010699266003496459394092220402265645807494000431353403832974020172040737898992052571364971399229802883331537431465651418636546164527092763843554412905776778027555771398022801888874577504029601825792659627232908179392641183343888371906078627155990296874208394322563656023143920084311705272836794202144054653873769027572403038647863552413951347791732789102053627313453538579115364335990789815495125090146149778573552226115904561195830894267543706296555474934144534090863252937239875207581317040958867937959174945734823645033479762543524304325093417240255874887478550276002263922416978740236305166462507866141434844479566417313865624718914405987904175842449253782683501420658353769504124349045238588163360334791311110233975106709745662124385650210087190128628536392833549667267037241093678214575075061637878091500829547965041036306558908557939084775811551734728048728271703787888000895019565813540208766844937959947876963665402000622854389254352855684569570303819498721201350698140466631704513321476090253403388161879300852926969182811398696434697562299232577023799637907726011291815437539080188682301557341661091774855243730408990084187041893548494868477182108072340139838867655236974016490236153961499282558214740778181074741533324199162520723592429078581800000682769449078026732330093857645858110947148482995503575743897457619877205586227316912524460352732994195770348134271766396909583939780303669043808773831672506222057547642355383674782463642970381059890485490335911455685027824567709618123067795776563495430535346157474367669511896820826551520470186454506955033781076818034509292300850613549650824432143074851164105735313049506120859299663677579523386653685748995052765424958612568461922951775527497789471523390701141845693885530874706659372548888887955659728578781166330483849571890059361255846453602929117877424005699415025916263337460739489954255954057154180540821938005839346415761422447901029578865414372464397096012192573216416204288522263286353570801224331879049390677085863100953548528783711154311461422243941361294533753981539213835146965003905438044872626515469384120694659811782780806377862907500965033581700360765833907258485562185026020931945994629676058426796959130839579738426313822861779896131922505084992219218858894116435705696313483945349566678344361277570063080503985623231445091153339856059126460906017391400968893186963483432810748257325735599935519594018348048736209253106455000623367525683798029233599426633245170428763608548773474844734039136362181627004154926902313977422137293422900493533658885700114247353321698525239678362404051252360827491917471436004832280274582799530845362943198003846441500559976990829404841904040110837639498012948159862448882086394714114735418232476600144094545469770853271846550593714598844422746713795119480946487051402810951852748921411752038640528491065907299665597385013599226394712284612955564835838884489946093590676470621074091073455218426780575450808939466844042716040446292171518954989931769230166270097058580324979380296976621732482484578527103116561041518350309617470250201747788638307530955928000292997065401921428956331710521733278348139028570917960802210486543381943775892760439966138334076152332467648297245682343512216813701131832738739675964675811544892157816174416659966636065363388348956661908484252221557948769856576502543808189095752989352733211899674657113610055952394308619182933823009772094749448380443889343726247458361760283842987031843109860089025379731992518879141269857004780371815020861844065551129570683974635845551149079082006264000832538858945139923481329359527435744602637768440306459449860129909163258312038956054893209798077357550169258872648456135404791569907151087538359574516205334921502515495948635130110824548987114114893019232277975532957874802463699096495579777573793579451452070896892528398801416249684018339619158899570556093983582339239196656295128848915954624713960942003898565313873672811399357795471750951909713728380233710645060565953835814983283848238536288193178990735822124956427339854038381497238092232637189917490166748679737529609009541597615033612331804617943460943055659885079324397132247113627478270396723885731479459625747907720324966528272778547617101248411777408582267692058941166060660160873342793913634304081797490137984246612696494461110043446560443600441682650874691145354572358094779800107195990973123576422516691461136305313992419360666549039099764892612066979126241621842737385755151597933121107640220077131369557596060663903453236051614261693664143184008697543817272204941756583331015266244517720025072261500987150981239029455346948975390991795392504694489954311945313118695486296177099195705856306364222426814544846440519780771866852220489034535929209951039103397980874413323765571204505137096976259996390104416318335707352395438827713131457313057067579454036341774697241763704103036948122789788438534527846207966183113358514241282484524249773659040793950505398903214111939951536365919734908636749887268210294405419252437029229466728947311495237019527658521092571129464489873136116570082712632007331419627971206063059451751404892429928334041346776588305240192050838893069643301323158176350093863779281112731877359329202255631373944601258889539972809032783736002566761382725738065509881542611601864646944736253215951211995085882377341757795212684878165706958321168991517100544644721987030955668600814879354085758135428207413503240182768441575414469757542874977929602186179284643506257545188167321930595302165273301984557898291635718932704973932736071513791087355182058968078161865983281420406877149118347022954897692355686555611156327823187911197642820689098912139182976070423375253640772724686593532518506461839306327272927939821058309861552305704263881329725362698124112846615579226025581752537622407952760262505985329332142528653068680304009013188680448044913437319897578228028552944418078912955355971655410085558515754549132381079863977486605046362321612596890033803371476299749221023531435687340726121888653699178991620652712668063338569440643131324416491314482974387741947845264241160533706293334945030220341418651280785665678247174819980132183308872887101898012309983270247725437609021852125311345467032615686752230544170025025542246259556950210694774659743187240630142553278354633982206493669415037474755024355725811841110124315611204694885171580937322409289032933903880646623089640148491933423329335969308434927153646908586327934948508155019997408199140416838026487999664332849515309115554316510280243821747178351211218187007007767717557657773213191011302170983015705590068573962533857808780020471944133077780653829331853775187410631989373249402496635499968324422845344861032364159702947663339057045333916363596348149357002577492255088550837541950707048330240271353496680856099868919447548170427459468092303678976472349567548305156965963701836908422289896582277241638768067348100462111662058425584813458275735986191115121721849435742602313469327565418603285504584486181904864514460372131030804553117580553135268365021690991354403125569810867366014486598175123740036969536173854968969832261029179849172572075575248230608398440785892459366640880557719176644398035653996085052947950902623715736758871166934145973897493747913195080082025665082025552953295962299512429861423559360953062189212154893648122024672105033664148293208662631504327226358850706016494160765109980568743126060974690989322381837328989959203781993381828396689742851843885371533804378287998098530862730718920407100839793432558561956751764601601635227424564289916732492502968952790753021311866279170953775502775998084381973323244076733967919254637836157933818881615346262421186261308203639091397140268527389268023155203696605042126273792629401809468887869324997012493779404887794479595334245403297029004043970765576846123600229410627531875735327134830861823882064529339682519603840257010039841134390693637374825324421187556771201059135285452189158495214632547115267113419980206269650005979619727293949539424666910473650590075890149038095118001285278161844808350699263514359043395345034829550254562886976541403623401732695048443957864451770601672085725212124463926245038111458033247732924130856452569495046365099226912187446262332943545852104855059227078792068110875537954337502665986762964198778267207675705444834788779320759002773037018004768623546007310379039158610886164529232642279451223202698292474741557770663357826351882734255163418369232611633141603016510862418511311469041195496732421502365186816404592523382125691742173734470724043127270009847978929637793618040908533253871681730968955213574498400361529846676881527080904132119894654780117354793403562979896635493230398881296845070477686418697209149350116798449698387609752026416711935840274712257576783612405642354220394546641364552096459590954706450795273368737980700558756197178158275171805386690941537015858165572977685259709679546843367292957886438486001234181237785348550647102871722566935532326521961174710526331087551182875012019350038398556445220529983625916060292043596503604776757602454499344984487498761369481099608209959188461202093435244427277570091690784802289048630116116830510447705256990280195730044030791388205864921022964466930105710207360186459573139660061854198938391935393830819747646351527678997918829496379973599300119567220888027217817909451617165477051541865614151090605717231304900344054748237323158973852371794653372920437653813427991451105675237609810764189691664909881488361619122598293598789909636728732775677504321181102444609478681447197163493535451875171555994345242340972641898765438182645196592259218029224360877696641126715811053263026920723274717398334097681588090094781169855527164082716161457758911251125150373904591074631557648959257535950897232923887096555447573433148655570895923194434241577726415310623170385220802968946511907714411937853864271551167834093964852929471814541364654024677912391926345258653399388092204913483228503445686701049650464326166284570761507217713081370123555151832963879303835283367257175931620306344803572857119573935579678063857723898634480681237226076838312035587139459266947478529799614408390212674129506395674469459149764246720114716420757810749120435087854717805738218263938824509426633259271676235541008448409633865349799309543796648354750918269660352244641832382130230593328066431690502601484585241781721919294847406019370476393887829030274219519070962642741992793799323048361717565287580193521741821853723372413135756450109116178150534201343037121180843517549425955980711825970983492243804552672336648494383305762995276084709659108269371519708525168997571172284819815738413829974694286825052912725063108041008754590338220962174296507956993931300301350907788208281170400013934176517661573973346497442640530048399919836683284815962320952232812442310145475091117273287092506932237380770333868191576136107294018415324204083394960845659485494156519347912428696683487439080489240201617026822287419350211363751817522587753934644317299557319432107529501814623823533373040053970068654146325243224946004951176177420888812721891588507273552995918475781056282216169590179562476056389036830702399783841718213110046075172025343677214872094046828002397443284924300857087143190870606126008749488536025006962429822610197601176652292949311365006242686355357667661728008058354433185912356931984197830638974989009955541388497812722730488160956624137091181188644739157829970879346896510403934883908125309079057828681163426916374040531064042725606424912771693170801807989079142674074883443869174301060945893901862624083177821799741751429048676850480821327582638090631456103987990515224199099125296128577591429033052746997252886403735099857050585618807133272478002037310781005989789823811434250915002237950304914431117328682799039734964063309460260273654485064704418908423173338514720369492410778090648786066071822449249400030029051473084145102273277662761675330971988306135071162275857918914368247285586527356458748490146752470396133513177589973153467604432614857294243553094593955998071048629382113878833995053329407885067579257160511903658244626861896345660473061103388770267983434021569659944292102009352563803925507332239582115951859062720298429882776679839185644711390667842569733428267592213319798162923892928240406357782145825564166270395760942413531381989782437440839388698757662555312322669288282119004710449290569391398224284737416047696380759716702452999317379035994580425531262284463524137058130198944935869394253093264187423278350366833431305879323371756878061926593728600455951908827880957359608760802043130283077429280403585852510573195977619044091887884516785833554626326945868062373888477388348791416261260998965387094347421172261883096570937380067261839997601739015859352274093476273600085798098782894569587724852919984427839497969177981025830780512682954186800885067838712499033270928090012384051757935117700341703352544137746527598066849802136265115929946631826409510049206770008339635331406234015763533954258061557818509958831039538048482656326412986480845748690522621732036021874736925205003896809500921737671419055885601005925020800184863752865951173182429950200630687478791034176628963629950382564405995862993223503246323449914114790603422716453020519454300474131030609398707807003132836659921951689426751112866853772831803598744562990837253896287547045026202586059096622264966579027727822637583791770752441123739819513138061194769815907151711677099838858119553240443225028409203853941541338529728851932009857415982818051452047271743924193728417148867373366729779723489189735376819430498644787719950883479228950063598892032383624214853667796142097182796921040000227460110473751043874248262032571514589925367874949045959292245890318786637733896942235133745051257607684943837873825510317399234560340151709544707875360101625864057158643270791624177707909648237808534304508336668125595888643385762666357742582984809090228774999897459158679807176625994978817178451038493634106187760377949069044576477025030364888995223294602407266418062975514544310405888676466661682166681745471819770842377184875625356920991647334134869562251902523433626189561037559791598978936997916494748812176313944874340773249381062990383924067497457779602521773620242036457015468276624780824156796887445683712705201525758061028390120683776664150674479994173579365052371814545433120286341488096033392630375068452980668729966748267368870375221183931470471725846516133826803458058548953107246676873814563214304674238151648601759031742465429802294824570398051816025907423454249269269653262307169181543340039571455177856102701301522217997095088557985563754937708616939393429750704762007552433620842308349821467925857819730436520566436201122065178407897564407884532427323135640806822817259978692384583024703581515474392743755224992129341624584836020828536446411905082879511819558292889733141102598156768398405001346731593021973200748757258789124976142876271545157736460044893839301533288741099950764409698982471316941241014308227351331086136707160976741871460532893965493603610832288340125287154761147956252734813820274044915961254234716909720234366810672568099581389379344419443278172995015352358556529255805478761250410624877120360368238566242912801315601614186546813457266742676267492154796286470483694049498621052819658434589470838676460909009708820439067859877140204157306074560217172433085020987517368623561584515442719790087188160536246850815626217071049191499426524974032119330107397807776176843070111060804494446375108065717984535025302793134850759405405510672835812978209573065047756695027468752710620325677146944835291283754412290547148183574552174664973084975243475422704395908477799546649637359293989377103201892446465217295822997184843646878819966508988862269087121948399917684940638684160029520858992289750058372992189376441254104114382096706747218101484460477054717507644709247917069902345001157826566580181234092325280497535275562894931592013950803643617373939105665376979611439451424381398712553538145471287875362002332444247949611928330177769734741824266324752142746455262763165641381761014954380347031453416466036148388034587387821697038997514724139072063198633578857706784254878987333577250347894350424040216942954034412071722981945019593524080850237015729270855411847859581583480988061446999173243469905944247125117014140963082208792400121320053997862616241016555844540699124739374738378707504994768697576816442143065158565442670050744123728898861564357046144314045018974484356414028728401866560237954550182284401978022306786775703634397792018000280937970175766396296880164881789864694614352276638059398926747128214581405890214472941294387797420440139862112241027094737497309709853166920269117576370048547667282793205813130948093728110138087850655859131275081260000769213745891488309536007316692464223373272681866392796021173019589305741182356197873396380173448943408948587343761868957499805716962395988110045452645306223567244234828792176470118118582692346048832562190838107727901061794893584271039534418720491056008511239744465970369399755143922261361643162990838449571412084007272388121683524758842576579883871530664963787912527489271994468323687962948520342136248028704422015142627312681764218861490210263785382389826531105204672400067324215588483514873594373674924458188733978543476893746487739169457343144263222869562038797308921728779828832820713811377175932083805323271277011443240966249454099197669330549221710432170806527853184751235834444458720874174675265356894830800312766833563542805681443602584532190619454830996107073319400260467592210522715803440771278950127405628387697372625062308859518892488315949046982174445399229127022253106515774703703199165311440315343216132807452334348575341074830540468153010942917729605460716008481730767538613369711229014781729328861888053705046602617628184222525451756743364981404537300093011059734083145934452017166605609097825768991017299972558375879452571326132308781273294146475099053234146423690722398865661274488918963139874896313759220414743613975071958473568185543369105958459683148893750516467655880459293313774796413642526589982663466962516779476569329816187243353939085210970378034428370875820032981905595118068709811200731071777067658785432593097535638728005477741507437008469154432680578014413078918392764111902716800746021790891273088353490972570770394796802255745465827114374377835445393399288523287056909526026639666609075219075318414964217781121648859147017623737162788398467708816051995909184339599890913273989793285022780823702533888124725468222298369023889592407262366460002806752811407406904696246746364178763028610462713813630184147628609294115323518317447847743459089813927547750328131470200620322101826844033446213299962474927892067422871838752196949960323272866321354747454115644494768211209088915689830632798839262569274556908395029289181531044664760765862233914086882894687458242545993646309722958804052769153062109692384652070157768442164268754798111713611626594435560474776006776784148087022752970699674439102045464461544883608564542308834537105003517723193581029902717570613587460123186166330289390734585780129302588719111917300515909358113104607850958206326845054507735294725876280154137048201610467611827191819525069882898806444543727698218930633902209542940323111674045603533128457284941825431502289113365312021334749172513292172934544625983183123551166275843738571196039275538877018927531103839828663263540460207403690976914713105488188606099515514695122940739342605806254661749816132254927732627093890153736647718282054751891155623902007639598371820466069588721387011488355585833027453032477489465880929399067126265127788120925205007491268944812030260419820886572523930052962712705216590940569920119508217163664971363456853721082654333384238915671932114400709537528931263966657215838735648894660191436802349159581027890439516186057239565292576311025817860169615630027075752589570309115265059255679839622150431169417154466250455173979333082380294734964851075802524682754036708266397687591445115891404726356214379223212201730724395352784621576646987235905660449688832864871403403536542431397493871344203789020513643713998138388474774139253353886948183376528463865774786287528722159926641760856340962356376427522568806722164253196891957386732177060117293776416050942601186785788081667715687869955886700374098969983974723303069524671607456657441083745965630334908272123210152078846446465421662821012432859977387685062449976831687398554011180933869438616999121595953151603775405186556537199251687057142985078830178416089431224748480607078972528105903767362832021688925365690625029283969431657677890878252994079062493770512011048641350060143949595079183676682419241445208108660808072936910816948743482514007762571478011188130178466937594957670874876087502488370696258858423053475751291534588328242224605942759509114356029972068375748336738674843508774679023260434855769691096180669217270049349586434810321873119612161243367503719872408572568899215407067811531824562074548546520533719716802032083270617446819804070406538637736910698779102199956921406629412176021567028067543173213964364316274117886297513080103112953867104363630002742628023472008090822511286164123956629206079216336032717479424270466124975361415790543456039060431197266687218973387750843391732246139223456049378832654262081201934533822431870613035223812012797827186524474230558434900697972628071435091036650379508901824819381260701581007065792394165133109757142569458496373087651400250818227955619140309139914590626278942159139302988040997934646920931665240429737215716623863929516519113962842789641009814117309156998106911027209395140800684066505391530015298815368969450084949254004812430386082112642538854489998343923583926150812793237781431155859786669124139228857110161049208506310730319303199048015667783768551234650189978064771988994584066213259193115306662899992323026853897474635779895472792483446939549137637279853197745040286487643092649607632532669629114460160213763872564500449970714649062908668798543812093579191188059973477413703008129921611775681775726990806052143894286453932625488757969203016912819465863117807659739479703085092382663244667746980843299431632484929734351239478349962832005594865974872598259021562294654095765698841232368234925567950049556908342041242601858913803957395934843977532093906997944701248068975944117159967481166520093047008663750682673614188075446016003652410048057969064965989890570886351701484031231270152444415506036310890971762873999715520490911486119608564032273256681362790849938642179259786455614173564926163315862700301760040845014749982585382134468003740429913108446662100219682364314857584023088744828405946957463897549797121699604787075823731387127860146952351753507456987668967809054570875838147654894399820041569885042649945534858805634553265818684282909200099686510186693135606810330161478947531208771541690523190862223883866128651451729935636801349602843858718825651801273163229501448516927373469815143554993409275155484205589125089509870177389971389970737896144033638267474120168921578251658237757921297594546907073016355154762962075341597765685675638366354702491542900263566891596141261537516090936897373891949642219089577408004491922787139244706984383454287702703663884141926809888405035346217175568514752433850070148340682051170908918964945289426980027243145294438591840971224023658678573581436710526604827769739954404582578321675862929203244221228419781654276330804558052706518019804322561892932680311932190646329781376929694182516661331418471949145282919057493528409986424303227515519758889372465591797082373622348752803141718792404667721367415952106732550138301565014961097885533727365587300581377490520893714240875351292068837894385090046775822376069099478574513762685425040163373662798215623503358609360602536757138679606906712019302051503537163916020773444813626058184234950738585348981916302358237835948663447133160961720214287725214996229462373211212877473064926937566345560290287476267761203701303952282806973582937675692620398971802395974356917948462398025133953701719142073905305374839191422582968268618507091674075471340557151091928983849906771114235561654717485884092631700900516457212547653321759340290080678584743632407785221333172280820966366592634296425941920865054188960907445994749523435234040191236000451343259036660414817214786376359043467809288278069731280987931119475230778293326100163145035213434343675056942877599436228240645420815197990153772500049892190290407122139785174592129361051208970018009592171661636736935533349192534653615922326825348289476801473326646901079513092480664883915374823521302798094494762966084020347363185408006549664651693473335812550086741288436818083542193941151752242327322493095967840836304752670639924552601540111454951884179724338597733710085820694266514137599659531855141044814390839743733313554456751313313196704842564361936683048644660467984597552459343649820862444896884180038984778077735097862760248193891882224718402231604473665517201586816907936502092992801952356081326168127054942693544629150334056100829970300447537456817361157104652787595091222770073406648218516861658350751785839721051198332195479609890420402231334786790859012367682853483559238528320080894986754517229620433019520755994982364357683287216147557345100409183524397960030096342779669547145182023095423875671303821926652773667997182236432322634116899899942691019128116641693056494270906348156110482933713664001519975089090571340186680813228513342778136392295583754408132104393941910337300604392540551284928718568103021820856436428083608576612235188369454605029883623762965616355165513824279854419134421242005020244706903317425746340114467556127195345708829344201845719314573662394143787038468397819749610895233321426472801903719408733027188515707982431800985749916126219352953918939053408357832735832422608678973601130799154016457859122597540194669356929587815872020335322444536230599196956251413912532972525742336025371503720488926037518833516011309263313158243082628123469231131570100598369325651575665672436802716616087300512265070062685185559149989612349976308744403481398182969093930056716403876734704303018036183410768567089499321925518471601979403066279217413244077002195430164055329248449436312775328094573714974920371898019670445115386490943748513195008719031075004332221879099224287539301075778848687353653902335486117984978387644715380978742837544342283766290909500519425356984672315516303014199685443995350864284848729111032360996443164467232621707186370777708720567363266742049358336238824157672875870956834864732197846121815236415460999516104479986124104977214183462529613081329825532356907373594555600755010181327605414715413481101171919980922862895100530283025172185338279255794611814272255138983734782492683298810697979452583449956558939607537713956073760767084868117655212363675950329602490335957640738643118395535231788174284242074927025901186543150961460415114498747371617739344595813923111312573616569644715175012007070869058570722923955283992542936714602204320290317952989530355575649971325513945437534033982787901385450139209000028231444710068103231368746820635878290422923569770004285459616135820405916262285551300900754780838251767530585295029590398026076564995712780412538199413146997148545016895878179138629191979197096639620998797807228100356198344232316428548648365965619773477988421247652942381573999006125019386945376288243456585829577944284340779850660363918516779535985497468759892797321603434237236137614963721401426727266701151068830437855399463824914294428303706978234315632699677582873461329185983101892454619443145009140730899664375064393293897397394249251615530500848688354151716321650176925339232672894913263159922701403041140658355072303004317553655644898604781997204635818959837010082756092352406313015395944796881398103551091207487578411081512829350421338229669037760333874258274703593039156598562596700980950420978892743869951902732346370677111880025489040150940459308550864138963810829727563282717225890011126455397739367475715773979661475660060710786612431180579548087676205341007193770374467615761047346593464194155132773873157571663774684493769453163361768013416148731159693250074029008136855570334843907592134173622275286577424880946446712016284869596613368838767476102312002137158505166102958263220824442553547840566897885806993342686190991510965813932086321337775813753855089291374831523972360590801335492513567366829923380551472134266503425070167376477025928001502739450066051343076300075745934087436388665112290361226576455633525079616440426878616837794856047461611365271918923349213466556362731131856069764290599301399235704170346778257339511385941582943625750019341060603290105124591387505256025165760320625563574454439499566654697221176553451237330214894157262244138509398836280878087532223303919318291871849987382386610853244040375142851397785109568024067842048968467435580968422834529572008948329740888934001629529368315561801279491293719103060638587347808126651069979871345303473705433272864267692328899679058802441492520900540739553871125497360124936905729270347785925522524593522854183947957493287554800570982030764876412595387723572350637139439663763763281315064315314018358798539276680244714572794339571913363394855880514906978709897136097713101397306348771876363719043532310531673952134509416214309562011605183864041951047908884199294898316640809451699199357439367768132984804070086483518508569757386172139277044657400997430055227813395139052451735692951914429398263440582471711704852588762679943673193650013946065949110608024710410388079535349676167476319056069809330323781195645408129809860614325821307615967103966206146945938715308763721212672283210943146243336201083046359223181081046418874637659400413542341013209924424173474857990687413055844747979637765236481578571979935206942665798655430919055862964751882389049898001451697766510575197814118714913731739677404330277197517596690736634222868449356889088655474976464123682330659744483008110681318953306586115383947290246781422804765336609716317210295790783928637552481647669122905220495596655562830450727102980509541590930529871699975060843100563911871212350344364438196584099067828180634562334276164510020937938299501812090130300134446414306207952006264092640249242550576505940522200299682211167141481638483764535075638864888830575227767616446673812187893953342992204391200686942730786246747820509190946289211200630445498667402617820868685694197431200231779997484926146792926846039694019020418311175410246246656723357139352537472871648426192259557939877301116160804203479526173567668845985654611242490623628617933776138497972022272216695439240548729928638669761379335758029650828632817715818929585531983425898249564621624499957826939287590824738330224041082857329369237325988773428797932362809780890000520353786791016680090124971215895788587613576411223942769920641427054525602253434425984840529458176534659642052936386164482939318012530704949129777720760988143388201960075825705945112212140847090131947494298611699184423838858964134325143924599841380700004865476450816914396783895597587348768473683752324985290440642174436444695394206838656972553267193501637006505865694159108828144204525808166673587422786084082591268777841692698158197257665798926030569841282497111806300660109369088102466375899085292999035125436299155820323458439553266801204107198528311996938293861973788870144469489528176599086790530693654164026730782075052996623556890248131154776166855927842131862607603561543934275298748179868775428430364096151975946414092864755989768304698258248017245492916759280834404220848188462913167875075113484150361208315070849321153115493751055914893466150215861942338137765568321016607070106406404626961094747988328861908144919366210269850893869048403366469644733372983303306924401524034767578141834858464257489933351620874128567077552529884250206161567253381314497030040050680833836856373219592799519382845484090949800535256765737804727202195019618472745509337073211576931157234198549334486685801864973175794126720774485948497550067338249662047920792267081792603717995739278919172560743465630448508861443608498180581454941017661722390679633398471034274949119669342160520435353359980416002461613829453863024371716388411352635525833372202955081776168345624620281234316546597992510209022701586430885224261397778874393830862964306930366292398210750351405550563401012251096314819655769253886710316064063219818459919662761426498485047793049789233748477612415007812574316252141343678833653850895363940946078026146823932449764987347104847729813971459805410266454523223799945109758090333665771473534254348010766104643884194718327105780020778182006262404948199256172903220531043198736697976212804216114067667667512827410968327398658391179624407703761063127172970226003639507620519138971488518462505138121343645790042878757285276350434549327515434201705052665735068338018997632560239128205760700787521067472479050855737415508663309907650941865817188691124919271201896993846404193840594543649796593298738136668595462413102760792829597931097064959889164499002306221902565585215527681992302006431203549491588038794995574125204682108674260720255097724189706587539508801811633400282107874360388841248863202303050506516006930044205778394086898583475371364291617454982440641060895713004018338334536205325727841219573760748596861323323064857633329953705651655956088146666033820215046464157246833100462013292161123726092334157746795584351473031504798100476344182584275619701987472741506316756786018866208468059135652288002648651626913999622233704693194009688056789289120752483428985983809768211358181890559972056358793721419329061705191327111751122617091278783435795417180787762202081307913799828405134533883225926848473200403022298311142807016621496702331352534040437935532664496676759841366062511339615980620793246721593110526893142387944193515811197597934705711501353282590962708868136806727352759475148695157610605735264193366047542336124977001704137532153502225992549204406061918974969829410470579514073219433707014229667280244870303870727296298680310028352669991131539613632369338717570450211020797619363378847753779301383807243917328618038161998330021822169202256309059990504730780905084623635515887864716009340641368639491808852160438551567030942209249296539124895765736525453554193329820657567870884756567974019119636521217737154547056644724340423497167044174572513018845437084593848603470907261981402533277413721040319334593255525805552293226410377201089934000217072135183765886788055761314362721208163204600948360475183550769256023980762459068093869282449658804369702149788330856937821793362315321667310699983542628571604659168451352528137778191321439645544768710082441941318658518384003177099077065408019989391498479598066117300010440591297436041981060262023217282748757358239665347533520767520373335589218867058818748522365704148816325160562954103299662204081766546977297721698603668527198734619230105158371167276272289772410215850800188704290906587224641570943930876731788006039222255281410833748744620884423176518368946788546101278472764080374248051038547372488408713339916002633855584959238403782355810543776872636862560234509025588019593070656317306226455619138062388845985482675353594474784461105689746323446288664700249570501025434458528809979507195550282742354212768335954394403695733340346985228937842183637083578362729297972912326186350031365377922381605806720422683348681398964318304729599582887741469539832517949558733563659906571821377601327660434103989118045876404132970223671947849145085560088539419381646032336255452337489239185583668853261452460771375958707284029806354346937323616706206439913601502533251120622011157446080041608224460570661921469492888726077222768593004427113722587638015191258529794954692895269927657188550656591247877762340822979995724034347192659665686098544621080177645902359075195868613963926747549947802906283926225446705396695593300095161222109217152227993871693888195030815192418029039723917937195715923743781600121103059361442600881708519603795264050748872679112964377022705113171229566249271112882565114330270467481463160394970003249505196903584098580895765593218722718723772514202171933985068120784086794580953201836827680960636591904242907503653323257852978605070716657076947375676137134826095040424309404031256581801691450598270095759722327997232706681750190715267104052497754091107122286896161577287478868144348816952665317324587081094513667769632759454293656046565532938265274365727873302432069381025351490746908068478050141977000859681527213846755151405177909473703846057333819629143901213237226664946880544805556374557807255760792129725354134510799599120883846103263698667111738041376199956229711596638267664759429410577695116198759772034254611440257591484106763678754071437931065898188866137906664997997969229594834705393158428001924809179536303961223620381108513196437883762421898097354968962458989941714723778300338899030490183670763895827809694925428250094815622416499213123543854061814149938083918986859508751939262314596815759226397080471784255547776881622225235581586700687934615324905751212552381990201327894493096918802987073720193115222732858614439209778502589535301391555816714580000956222861156024476650228196486501632844006471041877311530739761378244504870732542196335383858831505576648272874580756402788460101650571985687945764344330304966134002869670097646612613197468818876739415957603815453553222008322191695139859319326773639551499460050706741047223824194657828828178762136873208140096231177195163405887105136108939199272181197748549576351613068621944364180999307229021902986888933269422369380443407694097428589855999893817381408470152535488035610091204548792515540482737416188504817677439186726407755325492960994773938981042155641002371731367513077135459195911574301672396377944787025617482864526075317029867294259362526395769363233429101160704244904082962751678484525396674430732664353876154246557014351112147109883699633716701577833069445113985455992717986362812212841203795132805813208852006889093654239065155534200511832000505972673534197490562557362074949368651899851103550305044364620124363679146470825741024993614315382560143154752259912276274468368759117036751005198200205100997143482006232777194524957595572363497778886789970652385306256832219987970134186089220565815460739997991827256840974351861043413353449452117134543527232168434462817077561469357584381038083896397986308555083377253585409407240275248166044323222871292451643257537331976041765487900855458900559561842005359695505256622091359786916799673406655948543881824124478629726730055988019619383552938391754241253867003557607726745514334546545572603426778944115282716218871611392505699838712914854596538692148518440299034730046245619201829609905013269284800473668429520991333203978572277563789738310192844241504841368536903380485245512508599489911148197486317762108989406682671092114221958256904609768095924329226463445428833967503939584322281857173656864240247920581274380161790708224279571649894184608974865176070984122620181906042944598338908534639223666309171816420973560102640151327414631618116364138385008039134122149884370213802335485829140863727070840247527194640450721946521673528447367024479910326221609513052986681045914334713532573903696070335937040191162601825670425468451409887450582057053680539469535792100498228240919123939005717307868453377583863002031583740835819583876457958100546547216594234812355433732459903627448064572147546927112225410059606562382400096909765349221605080364744361496877630760457214420152961679208031078293610323185918782444796194234290132346145587881771051963327974947529477485642187900421948918213952856795007274182483667219632047284221025487111453906933524329331357856603959962200311825755405612515526431375301213443658500507537192599680615917882863353430612012576373210580209294356709266689740252601875172582083185663850866580207231594105175984402324157340802105678127630563227602603844584655297038887263932218478341164070970071079615564064054436094241975822616811417502276913830000481997965594138091767464329540204989002611484392969895409599549880278404616737382296771569208405904172807499263605728002153160743707705216920951870370547335797554874568221543653978246639835421587868234478229040518664917218688401164996700105591353461189214342524615248224558693407677866007896796546417003727726382735507909917346495946714513371496556220824572305955306093719530832033946741588104747951722298316090587249091571790200080510661206023629118217190913389504015503432086720955052998817561846120382917343940299854340565812570627962315143713822302872385210763781962475657975680660440783778263982327474291265570465847882536575669734570237608425621128879026799220956914601103262838907973323034566744970651346740062328056949694393088409537898862075674522394742435729828038410611096060826714616014583112366026112490580013784134813247262489959719288231545534084095034948864620972939961278545838615236282770031212927035526438604752967330139417379851041826301044386549568445688062913135889548998597707273049514933218157679036749898890808513748247219025223831512843367870904600728041662390207806917677626753522390851529867178342833143803079888186661827212336420253023946909680522519534572776009062940050846401596517914007867004438267839603783071703639836012695758014140609982080864272687957113712148233962900915562684707916843732088853532040297938332941283006587098250192972998137038138201314495376764667159551669713637178746013559027120285901255832474432997042760949139567993862666672541370087164678140259844225328252053666010456304662692818330858789125511912198342524304332985709671929594041241351451459690990304698158876987019848913508810768885404752028091620927940374825931551770562051629164178603452977585261995439972366806667810092906506354696271962309373620635083479682776814827860789549793346509180569288724336807156739741481470822521236050293178886148929527620644612717512462516850689447918060792011026937237658356800136468572695757967937173254031429440861814837752529329428446927363486650018097267384887476153346137931532916634974171662490247571003251522174244382074935685414262831770023356007816590251703689169688874739299524730504995976034130114507942024202534859847722707934706821871800731212440732001466188959478448533025577262191292898002639877891380511470816004097096990990227402302705993858256585728362845483847314190765373536342713205419416626831447861487486310143536034510049770841908890059609237720545644506527773863116144946385606662805615412820498539591722490571111292038536766494686096204024901458225911808337534003663573553856023859167690979918522040070347945413565598238186144557751317868595185915000956176511873931678280170509252835098115546273969620605707930843520278848488264687553271833993854910666403575414094800107885692291138111467546379384968716616584373953310375890664117571268969193825931623974379639123425012797024420741999498837397218290896503704006594864996973369409639457715355422705898436580111957907904290149517528170437016113067418746908740615712135561517352348134964043125128656479656812612426534410965876391070239651836997607080638116746207330075659091977183050874424250520011312635125155331594874378635336821633695669338866381807754378231901279710550385778772852479862654661434181122376541490584575401464030881887488551501881683801345582715214259082572783802328059640171995004927107617983791180155111865302539603012294296347694684666964680044240577897977148835183667817579917532771322506177858003239117898189474864360511894617974539678949612815768262148436265686456280662532145261386193791743317351245627641051607860631241896173743267448033706790278818694035217437179317175625614620439316782398007284000544712288339073440219710705708084497394278865723518015553427766411140886316512529507373621129194317096571371262326237631828264711777873419819520707850303976372121848675695145626710054670304061500870589575384324229899097874526459159142672853904708558476264360530318238302694817106104112994116727689013724225154727673194129516887812240394278861780905528447438087405615492917888748590657963110922510202384290380516750243646913211035704223317426754499549912092209994498699939603204816685811503972036651581500945123075032871007500519809393727180283742003251327897570074251695961553092038067385515357561379299667296988256711070554494754154124623438730212269034383942799077264776749247719091590504521362846927913099413139452659033545001676725261149121912635972040503312196212187270567188174676131209656868196453369234276977801547702452932215066598341432666518250067597958567284546392044331058930823757794307898803024560858603629907012958976295120123436554694327867113065933281746253203697011840558537353512837746969248204716038327498339203235742026667015534431488881803430009243870284404615298733698235671738518844859713930724493008723527537316708587734487494340452194317995497545811956884121331505076330351014472489470879213692128697430623775262576738242539401618111896124049344023840220573373209741232003397405440871285039143734724427468524300766598265412347592987827813674234709270811257090100394819640052574567685233624635249051564392102710397012070651981398457670705806159474602711898706514336054238797250949941785121026593624099924229982038794647986875093570693452248748020284115415136383180656712541872587354131486930640212291780309474593182373281042974159028035524401024325271659255475446180428766113469310959300843926259991811958428727730750938813447148568510874540884927867112637085567671532540841644049659484448069542269388836932564318366822397927115679137802200259370291430325325208956198713871248030530826536448113802025684411933893504545331037461228847080892751649762016060094092648761954636164194024066734069937828354479634203270227297275692879854804574368530242590138218198174940012334966395395058007051940831703790957123265232174663199768806659050489077489650601846146683670587639454116752307161964237314754410368224995295785324412466722274903924156078550748122534792019529690152214900617778132932102775683190434397107623413971689476843454870276446432925318279369530337535129392790739739201167370650343636676685653861584310458846534316729312399259140513791313835152582986518561114913925677800002992592407346731959491605387630247638235266476550437625177926424660039014574606331424529945541741297219743609395031877832676109900133264540182617848420617284483544485192340300881946543071511447462953641284888286975735802395682935216695844702343773833174213194326990014766098800486880471642439170380794325334495854377011649582030202671702493759854021439409127933088129830773760643899754024612712451197448576167353279167743197076257647174661394550926365377527262055432066918075171879952072799570843497238623374732688959483128885680519479293789020363606245588415036986448555534386509164969651137583319372637896435550022257797290731524640886500389754132242580235210030481514723134681403174281878467782101305927218937111966283820867082441844497914846717764866487043062713169631328479830845572174841286047642193153797964273247160910875178199088489553345697352365967530130987932811307622295264838133609575498625533794236810806224924438224474951803178736019919086325693428365316509851429880645321228430524991903378305956520363089493551456862742538709666197373836326244622849288232345591831614887595278786487977103101420523106079824363758476098162721621364971525235256850785858335439953334669603308524447044584013326252860430516500863148124685911040611055468210499284072957038908449512717207855811172624969409319238036812079856201613451753062283171093213047358074333757018875688042401629524146025253617724572531468500681593231505172776745943253935581820521184443886313687656286908340857781181579522036485402884318594138087717644670136222341025487689301722750099530257055447216649937329328053466902705913716404670834616059461200993151585484762092416421326165182903112024791594004657077896461488102862787007313219171682572531658103202360471144373180940038127370762896662350799183625666178009187785323399152469147896540605861982433848325070495519684584905420075177239553188606159661446740506009535571160734807469213477172593090976631720109754885472345431165739756903848551800186877690574671211861752579402825753009366288424717652861447539206213387880171771267294269343795298421129235557543652877352821553063305452068415813208998948746104609582228773227627889167996767793621124542663480456118416255764747112879603250540128880932348140795887840382679041140242025466098438269445255020228960095673297388690542866752831648267903865445005810190109397194187418286255457418312091298054958710615697274803812452523407346996838217729109056828320659829381570996440656954225020725296803784190239658660991775613501391348845561845815240542450933793264765304722980071741945944622101298152073534843265024455275696339347280469284871959762165664257129831004443295585535369654650575888866071487913526943197233257515969399881927488746714190507437416051915973758794795027259292945131174480947066738899051897342393640206610053486663187329245712450420009175798189428058916337848496878367630013534733473393205742377984291704633423962293825913061340643905667004135901514844753755609596149671601900780381931456262315362522973330481921603702105437658576380645335244253135996251319265609134084732688693457949865609131147258510129413774029830565095331412802817002559527913350978948121354565761326766713391395176352193959735945203382828831737607716785771337055841449824586037763157026637911180313697122531179431154918468793868473381084475092428605120798690344881403593938730943174185203756440933224885447212994022132226614306317528901917577766491909945441293098204330294075813505344641294133845542563753102432453258563495123755334138037203726773712338657196631741182540482145876933151731307828876237314723622762672598865796462390631738495736029597970116259181700588370481944674956148898845416973010050207479001862285138356735554177623679066345179652641261326393833974037091357894483021873555770901697778857798506058005989926154199464503435203036952401248279558952002791718144202783898579323547694180983164852152389122296451884516206074292894615293271553543827656500541373467849474477980525467428446348599797037930885236545746395869736696067509771320841267943861361282477282125899287022916130994488386736659688093050941767217225179236837008917760904241533176571756033548595178885249408729395352329770600333521119295340797360867841027351731829320736090300813133923176334873521205086429158916627385710648805710459893942566333848440181997842186851467569756253888461005758746658107173923468985856874326403151081249332377833141520321833804660791726947184606220175583210257160033610569447240084251880181407100127321778305602871861971534762471831803461244718194915843447490800940287596627695376888335173015190392543130680660179890993921707723542773834768504249767017920698140529107179841678899080246927272732819622779847466264552091331970869790213936608734525789632137313450132315801402877236530378493989933146698836105467227058022716939116968216708632370323238774276554210784892408304602779953559341202760135979969556598023398995382237715857400593255275269129421898918965947168274517736650904963936785173667117139678047274198462319498368493326984311370968860015670052668360874990525833252376083496254240650574429733359880720679936045632767391470356510628565646260298232357709150474579647032673881789786406318975452143683878907232194909629435322391917822354003719369319255914598242131718262592036646302588117765615756148876566369500521790698263617178353599636526384721419097803336495407380816752819910031339488549515965546489067176035854968354550162452753634564807682748580428727517720282126528084392810163998347984386005039464884319803293106682101924134375595411732716740616619865511989780245496098891909358972492144413604607244144173751211282376290114425608466168666164380288336801294931014906608649376355636024786313114142732138596862748360029347711498592648149195553213822123362605088938624693171528411466554550864739880727314750187126971139013091377266974808893168160006189679473603893831046195235549830183793608955917909372400298671401172494270041004859123385932855986459524500052564371626339049273892823357570350513984019629917851638459000799407118060435303085562209902018938544456390217584536935882769549064300252036707028911003976273113475409350177072384734077926029986022655341908219426260837182368192262646481093258253651014648262121738663259991978181167403205854472771281465737038121046218061653862248086525861594197111222332836022991070995916677469242388328217399820534546164090333067058094801566175581733551519227550473093995719164945564876709869626623519349666918032823275699780880257832697852038970049728739031081833258657592511092455878700980653781273515649522127569097389634171052620819261504514120027415313220009823565593916169380560614214283833480559145147139756146941796700214205582356312181696839163673094790536362315367384420255310891794372412919944143612433091797698777379256730355767274854048977597029651380040559175364884463493836350820271186141119134951499063018384343088428805469375876623761889152041609981240144065671776119749919420078865360931343477260083739077261535430344505196637892826816757975900309400400084500444684823649672551610379381398769749358389139627637734614908457345809849190115982198395858047041276289913353617601761561322418139155722031953143337644306448066801407607388302103822332190523153048073411949569111093882067124211887542917745063184619897831098678428238997710213969229261658450111701883058153696111088868459914311983011570226721097426342689393375667440460831888831332182031990425711698055403875154013745945367339113449596859463323967273044596254079530485222983212431071345289844245578702568211208530456575942642530867187834096831841431421655876409704188702617522904036741191060428115915754774801650509604158011196260801890481326852231073981251523516437761458972422322841064416262965964040550095457894252443403642924836956101542363479901159573773166495983884097327930661215305763236828382448003153619828838108946663476774183200946872497061141328093405422976702059738893298669251531102630277481297486288776131268993793609811884361563568453878221118833718877748480234622791253168274973795523804681136895460770791988716000404380517569670998242685807242102833644576174907899708211130351237576338631143291230969691423877268262603152494427314844586435971535350591603788339908794414952687376823181908991040428985336288675401836567115891375236542018928399159334480857206361630551766189042949410519058324749885363569901904026117165569991546672493391274888058701905120758468494196273914081771780483899406471792285606849855945798355319160865023199307338168130778426187077926210809758881172747014867400749702060523393363601565672564371585003974524171492316262314167769071706544553604646531701210979185422843091701487543219093946025457502503903040091374642113610781000507439607850649042519582788324252285303021513879160009066766968919192130526528545008202448985859695249681262724827353960082407307792632054879710446807532955126482127617143320162832048763726015999138626649246268448781860369389064138151685149690272363059430971740039109454037642510225298165661855135584690161143045492719655108941706249557205499679992036453943435498106139589352662346382650759967842242121451858494054616157049660264159303951331833230647673431827185998695701829157144629818247693570524275057277641575781259598881063666522477303553002920225103039602648846620586860367455990117138301099499994670296122548056052308880991568487184749504739054401102727332801561072981656328264904024642119608832935114274763797876828683304512952369107640329723769723358457465621288396107115639102135439328462770358069302606157571654867808586002532287878820192088874488281106928180232089530972994729584928860867023171715588256013343867356290730546499357417926515976201148383407204382129700320021995830499125330833956955184362899048006274788576770852523443181928140084862278843536421752262933515609837840427222053049862902026081745746147415284526418300382114213303198806735435254257722360041813576303554793227151349443259486709420774593109271798201189229027951124079888247141921981763663114870756829798535747010605457325019088946101223945874148412020464969675759770429243886828520059026891094861951567145058877458924450851949367367535548432030140339854791336540121614792499721068207169501147092849585512526657659108785252936311609525475770676503851251681384420836722842405560213494930365506952327204581022477208167682373658282194010464803777118467632992395178104715279752280713824374702732029557091219369095582496913191875564046240744367354850494815155829330184757240326117325739955077159740910740199444311879276383990335863423762043337357110166927083726105298388169979495455055827903768461756963844001464712748350534955140934717463501363043736317558565084406326114625036431398505917200212201852187720778983484283664823443635581638668626806179729345834906144475202087522359233730952500960610819969764311156053757066185205651125867698609753631206679259194369456830046276469729780017030030179016112120932359119087523922433707182757769268744717190612102293654351114612866132530505317933682419159734731421539109706762185461808164577364210778608577679145739944257516931493315348114500632367411131947530925894457004157778321648573275889626658097372775159677212238873452687639399353692826345712416115393257663579146892154351339108481431802831779134928044722347378912753717999778468034352190117475803783248700561416920204834915872887936202682732420987263122674464272072855545561918176348751202296213023301302971064565351204479267118681881645976572797173459230115274554134147291098541306677801506687538834290672566867452727654751276912901475343777089951456276239973209067035918391824162465414294743792701357564351881260211432390524525835411300729934716228240218453549867787918920036247330159982995493099757591740876594078882407839021206875890694513897194884113967220504272921530658503939684733254126035555042614385538545644139878353380030246444532074294080067044070503406309916922279486147054228678683261425034393558006727880067119357852474283551476046279526280411735832587690442398116813675243498276620054323408166310121004806546127270042946867765001091265558839772816615579135693272746947582727385179168959682653602348396582718537025667031025185854580713489086241832865772230784581901628397661862500381051406116577850417781814630582445245917755357603321044092629068472558643226561382664408672478534956974938268151588594744453888994019391806753083460042928843409272520768395817726100274370126712383002214049585585972699034277371954604598472559968846049319946576819764244484917224837903168592742902541526137922311160495070854466384973828386348018345264267651183732282932702890030573062354048689455096044059653733428131296134853267718441054917480155906964067418557517049694154242122588363419874854441379747828522083487269863583079133715723921310528232955871137201777598263704750937492213545939778191277937473038900856874569249231397931785866485956850804111062781717568179679455379394208597617555210828253624430493121874005509625290460619042982478978539768190857612225048632596151190930408082175992363462581730783897910666508120464720543640833100085126318142273410428721018792321603854125375130456307354865419948887124430998005673513707640483617708186604675859262338325577399592277528766887965643783858622353430678605816106961718085130242326333055169082498707423464314920478341599809282758931892161341233387853150556055919000385418674720659417022690752226324908116003778581806033432183485895754926929889331012615979443202440551322500076755416114895364634585551983953206583747218474214554777173571289311055595446195731273457656195048313839839737094561592505282873684573667000323995929492467192595322052873442183223369802534365389905324627743206668530140810307738645246736668826240606342372965069331863612608333609819041521480538299983072387732465095989350711500060470231087228562190356693309619094364882629381119510783947209876065319600573177381610967735119959298088251078034915829208775140042944448445413123739380852767150550921895697216090731621474398531727879238381823485000788636728479761186759174106653147149028376327905720600673469918225327952782609950826415885515558863206656337683224893429760987499285894262322678075041711914261095107867007389349865393964455954844616945672250034708305732327596616903572705790932503017665556423489949609105909331804050906525226066090900416975667496323872129648267896806131731747483432692837057045029921004545765059609004285372916014748840786415793726191578908605429078558762593739787599083714169423723139549106860395662057640811054138765751975805792175775355207089313766503468333932579648901932368032915265820864086193995203906170132918508136602965815531916074926526344245025872493241936707950593785781966573709831081668313412201301633082755665398979313686040910983266425014546280399837838643761698975178082019579087305518522991262496924337993165004998993873887432767168079991469296907137371571949306231859705991785075304957220241168143319338239620937792583422411827225202213920793962307545181076774970254716245632281663968237598905942079691501185682637992853463338535989630054626342997436751184199585759242212702765137047487439154895794004505354691261421999667287656189648104086196822986248621616419874110297834276672045152082867660873005032862344658765726116376777270717558838369580676996576877746217456561625861681753999571880117470494820421210355019711044620440466639066990759593179403021188726807214269174169454889296543395259994787705766806447167823671822079118027322026649213955236338020920313184861303613030123715138901300835239752107160160904879850989230627404476092371689199988439970425326324043798604622676187970907763810715627363816917531593628938709508133008049104093302179894922604682627806223685521359390893319445352532657875097435723722169008333512955867712250454410743486710132790136655440956078632359138351379206600920341615063267489566548878948628964759797187989018410397350216694981011385950382160941492209033122262541667813444417648037225807342587194647478673585791504985141142932667980514756257953478084627593657868701350338218272653660918126881725864706527892340152813410574918417812716945649477988321400283497601499193880444827385270698731208142000741480177465255263987486453541932383177509531781317151800363445703942530314180223926443977159536735334684052581667493407455573917871985216440637586455181237456452516194251660491421591720020664467069970676795894789507887551350849201023575603328126441332077294259946366407160241161969292842364646008395476402462157064442832104698026549776053466890805837282851159280089175378879930268243679599437971189141165164795382665381541983032938248077572579276791712142018844822292738474644946589214981474846560152794249988996265441369054995283997437793341724784301353234505172949024148113174739185544334936337549903748587791494322936838625772188773862484263571224049398982379478511830784475852814902029323896741299693123765909240195323730202173741542407891007348727320890155107443010943489428970801264533604906768810920567783668898247254503897886772509066300503056797079521220198923312556846683137957673989657325751962156491235247027011111641647073132423879034927917028615411730022583081275520563531547995497133862904175888069468717437074232356776784803280443037708800231553346562654582070311980270685270566226751365333170758615450052475083498130573925571349319604375977400972806179687220741386150177790534026494225209326788204387766798049089003498376336632113914266087544822496282307631389190979580776680603376043988155574770070019555623874376740321182712394663653518224812259425452016726086112004583045055739031352736375915781307798771119800813574450663199731318858551327181947522127935903791540093363701386038172649210727768329372473625396335553847619867700354885692125066686341818049070548344758450002663737357480935164814969371432155649446278233549975795761645405258882459788662368418263784791599557282491488960609436062324878961096226010530682738133509331847083875140100484636577263048202640819058620765318647338216735626505402656508404614111301271086697684712643864716500156704664454172369161570718031524317409109041952425494830828022312661917978626472570541000860183334788197110732019463895878712463336623286977005931020751023385713667962625164693362394775124463438853815657881848407790347821512429472859501818930867530739539423850960039111339637814251911372501722060077675697217099076142348844568856301541200976187298817849776547346698327518906867058774208141342006590773543906847545685345228058509945329937251769584311982541852138124008320045238397752640522705230339028082073222684784702220715886863267857238692461680401586372675887767494413490128335365979399122774194408240707926603305916031675378749014963873913109432680012070390010173750293301715318795391188664112439526700443311253636747390383804363678926392501558613964358670834581306717696183078808176651005737859279391617169247500446539910102786071230802495163235700242475639410913880418732741347119768628553146846036360025279548955832550680503044212339491641772376031393947960216575368994805070465354001478733692668816128275764691745594568187396199561992492832498849662801135100007343548136136431433053351433136476275734250736180547127755795943712799568306253637434232802250787035250998640203026346020712391430162291009499362930631842553177729590441710115228068569786974858161560678787883869901115487779236905753158089247918018688092171614765237228996536516255479403509574031119069506925689328434203652924119849152404915167362810456505487666658183736390616890573919845240493736253907243125277715634326444309684330613259432854222263957642032398919043598614340473825936072145892795744855999294312328309526088868567165442721458355815923398194239746387063524739787337453609659137264513515921630723789548000786645315601819628247976827658878305672562017596129315702369619241479929991182873933792101546765691187712277441041290484784475530311191586192848757509750360721082241892878128161263310137059837835661478644863248442007825993793419510890447585256068676476127832291924863973486051049508740115594809907370569508036017201591632974340814203088682227944977882319200124277367963648811695498511796222167927062070643487339802714774032265841753714837344316547629764381148047530893221644568636230839687383967913697324172253722681448739820368165382400015192987627269474802253294851399388379666758430817475431703483154929867821672691862811249228946313660172007833988437072846199474657961799945600066903794173071395536090643783244383325739239927715028449447179624541753463660361635559721589250146231507723446744421940033854105267366725477391398902964658561016032067332298291781142479511600184980597932625325873704204608774332446547955105453493095712805591594381729089165906476751086124896468921581019180618058990743539050368530992411563561044396470700054631421837857536918633128275170539130483536217591793950488114249483369424434401618529917102362444757626096542222302005800711012558334227098471445114733163743975600206935940404890825513947272094307157698962622336157870035182564824490247639669013517955213145735972365235333411927737653783636769145052038540016958450669589821467337298889876204249576356985303206085259653562550890754078878101387704896697792762951456118910973122150549003293285740381774838482963021409296663230526847925360398491218334059424959636487594079840731031662672752207791122739417847129909432175031810357916729140719112821568273406546707067077537626209615654331707843129149573659692831022517706483758278124317471641566050945274210750886767452109977741928528091338640158335629356919132056922568992645555251316948605193077294675955879416418495902735320662016103084061451387114098273448236805968151157832754941139090121704320361518808750256023889766317615129086683075167534703702417008921600316505050676666215314063151356888428630473502222192895521824901899599000921552927532921266224417631508916171729909822247945743894436176954034060462476084236731699125066553032339748688732636395632138671891549133842035515766933357433105450201440024787371861810272446858163954888025010216832688132650897731402806181272201033905282986122656336708729042685703694530688886033698033234095525809164374636004366551920077945367000844271962333960856020375809510450629957783684137554917999652124754298072098889675686743059613171522614305835239300581698593880245863208944388131102089484067846767728522179231473082725645537172879417145030275812130408642335956723166963643386327182510669539415761738673724984341888631888370449189465849838240228320856667673116073383250611020532300630427098166795852660602474407310458479049551746452536772958169862156474546709567965412793843633474812689207107068445381563863607332976984036127361489443264968160764717986642202996507297682102567348085482329551837146678590724544078053332182961372010233374600672072121151750220127451943921360075299842980152195871655489905527882322815655306883883127249709768035463827041504856264211004947826629312415219548691355368240993284199838803199901772746675026691805513945531309103083021529564227879767600710201574531204771315138816193029135653053417523145565258346056957064292218067196552456024075977747295745963005259119517306064900541976946056840113906541814361629076968968883618738146113143193017298544313287276878278164284883991519050472072127243052402147071487212867608758614843617690426272763864293238063746577595761517259723614981905136592471543212325051885113854006247013094391505749897399785921067843846072304332462459619990993463457210059010344720493099644547834750006021265597289324265156116303606533994612729703942810009522646566849985714887773822008749503159085420757061769960776242160118127577520642905940879827548142142194880195539796314337821117635270434366534680256246799837632535058090605388169795680667539476790702276451260346155859504032693443627527092925359848572923199151178837723546880661617549749951715558244259720421522904665694604765167427814949089418143087227060527831558896885738047526326855620107456814078859516726886996391874157435654785252240011310975336386444479942631196046087395459043072522490182523647691808585751587860461930835099018599069479008375437668850585122164239823330126132277593205971622347243305207538477755776108004696801914272131200308000928435576936604925070119244962046659374496059016654525474314196717523895875584787122240127180974574624866456784778182419054073328103160245362677309258129638358988568033138213967678930874034018455906526161643674251280506556796179189444281711715102642509786023817746533032695400722928563006696012551265088373803509662696335511892319784388328932229811670425092085919439086693676461642719190790591385222871533859370536851246313960502623402881263972621866175751799345938093185157383302007507423528816332240404693432003122729775274049327249849086891377806753891864297399152229388804958872210590187893732593511961924671036874642015796952937949482069299495569501807436497222135332270575986256489042978800766212874263323988954779503134547600746984657092441776943383370397187501123082327738150667637760202204738760741524290517218308622400661769114959634210090285305161267681167346526146789699226999986489555592613919790525905083829647288637863343378044924906461734728668331590570921848012806072786077143622002866828503000715077380043916542619387567849759438002543633074473536726582837911902654445094235439617815730718401052654002825946945974504229623876934371891799607481104052364011321667392421401305738540610895627334469381651634642357166644816962266415622074957879231004166166058602661054144032354927946047993653432046137602162229117794365711952702775471603834795140256865858471334148305793269930476539238998316347625257233201710897589080388208534940894044102752312341087042164329634931777774960547869885581136788936700011941394517873643558124451121192525144031132447455907523724067998317303666944821315863795624659279894321092215054501202531594424270520614356196391833585828450290229649088619937172007602224672839337624636205304121186854943851321703643581743092929865273355235427844813276626027628154874536016450060330751931225526915070438569019138196409115469231523701585869127787646256127264271159917819608909771560152123002632722600817098094570716664380622422514967471905359811960699187509108242631998282935805742335165734894702290135340166165521167698358187001391518148970771375877755379900097896656151276313314458819150792942199657650437158164693535387625360247620423020686455366785340544972056823610183097152414366173662784675116459555162515736478845262691977597119027098723693237922891743260390511519278889330678058187246291354553647749034866351806794225442996828536735531239473935284722930139727048637711885860365779735216685201481707892268423858087901642387254964102984055518581024470959790991460100313751576278416580862278672015862990069160161224489273236522934972685839892240722338089999628631131119115535518053121676420413338785416182294981326412563857867559680421539485205463299829402995829491522888235034047004201605355932367796435920296853623558580125974189856462097005180630834717874814556600710875808260994867723296785339623527686249661199434230139744231924790576434516789962845663371946660946865247322519552893522411530187346865491019259943987481669369527145360345835264904131380679779148803880154774010093493921347308298874607841478061406709506855768946068743988009528653090254843933835055150953639033895137683760105246100982837257807195257577962415742579974743414278890554846709534044519057849506469149035790310508176777549962344275236750627775529147929998819834554248569859817850459030700068479954326100804228694219629601921017263424106330573995250419088436581774586019557992775098257772514256053857957987643319991472360570975902715627760167722118339704351239148539387282614177478988902867229544195853804014137833150449924396101366695475788682174463426335584101967346150507424847821370497935718222488773687058412023618915703197191414067222787210340399728992417173407923105082758232969555920363273049732200974648808815565661438603276706472010285886976232632170588605072464946355882773196867587791474681247194011493316945266629318042732682630856403352462288285338664318627855365073861247973886928852108267758901731633576736023131793543171430380416545720673700185150758164188061763078252599734185961916160329462343659407170297867940833016324081766502685888050181963250388815045600646675120985577718329937213410987083907221506253283109015068502007142141664607386240780365861276815689386185760785164879218634803247449534843625137477092204744799450284389074422502553004250062568092259008828763637875234179767485668426319181105200518463642911653308585509451157687493175642185884878978993953714259409848344112251829879669818762843808110533405756355154004746627912510935631598143215627178900318054824094199245850733460397150182847952299831570128672866572828659251241395050558239370461305255289071757543586995161202726772017764278532249618536292372663538395781847029500782479234971068194659965496151727358457241714518114324540972239406295288168604868174707225910433550760148290870292032025179807250454125729219092477921030139878229051871726252443964755813352345885542072353248911252695164998918314880658388223877572138936285999367909974968310361352487896514097988244568136221788079468483250451219130007927509307992608456393659869341671592215246957339216588241879377901564659299026582953833248560901482734317166680790315711467083050161539145429932548008461867484393213211161724798816557141030152301625877059818116476919270590575293084286784573070880434444122770215169312065618967835628937845866110530251445276140819744442724222100032913239745629824458663028373929237868396809544400336046488510392922860234859118733629984046976846167477353605533965498425780537447520701994471716830073217713268112551274650411442984976665603891348976615540598176610259881304224875353662200080162843239881286001682500169531037830288761576770471445040950951722248605590649256093024035813743738156718263841211137342497214049433560359291027864115120746485928582156405809001182231622739494252992220830987611701572185646596667998155788589489408947749103409583935734624065404471314160481094328917123480692172921121556780083381730743422108394946069568005027538860534854588453892059984657124977597322246450101054370788765168993754731572098445225391369814839681348289461618979186641776242346832162535710935293647536837793428309918345963843208584475289852137500570185594650711677129737270469134601557596035058298752491521321236737433888283180124171045595005739351591509575017583876347753897580702916394569660098969235856509318529853006966836667930140809590573998566613850316392056553845762600890443071731389956427446696201633594900868441616328291658858292369715576658854852651548838083209754416409256362346290244936340787387534910711563456359724566126640756999685927138391386286576581371265975268584085160360435857465692476338282492074948443865876081653476190004888915831871716875066130506555180359304437935647750726113689674560784585849405292554719364532268594339622075375420004138884214731576052812148679870846915273176027941101316129772588795992527147204716113140458347132758712347555311443983938003069247940974860736635343354170761699866096149178662955939618089961842130741060026953065451206615795501598819762415457855858751368573672221594042926978900731900200417876389120857905882043456378033411449598928040613552088300496601835076788941087401437286525261238244271476140479026200187775510070788767572975635786890250401245609858158596898192951607271919742987095523725924471338975233649268360123678211215739869783989053261841234556814530704424668067776918692511675620192290844478368508949384522712780795814402447260885175113365928279283993296796385203022851836654735629181357438099140083449968939459696668510918264493415659031336484339931055997824869985997593147940445699140882681271228793032491152513975743413658379986204429417690031882792777752014232618393686016319014794632680151959776806195190234808105682023259680574880643635573202168212963252774591271933220941810615745039163850962578247621460064144008024956569953878128368924548450244058635345281367107218208439423906420310928718956068175357420881641335383156086612692066334576567259072865630244592711341703292103186182325220726233928570665432338185939380174801837646403874803507675478243632725793178062816048034892750152647258767047378887612135086701129428187458266199816442575016727552813844096702703429235304606893612531974853956827599075707488832077665079180137488897373950783577693858486646571688585657710365498197373879169075040078047805416187227001178123361803079007132055005126531498391392599866804638723652968624463869391629791828872459432603281062098066925051943738366982936260405716526414936986648869964010522495646237990442336342013130449573487940741101098304220256451788251072746159069242491513404503381572053756811252714733804330010512116760626990522872270981464203779428763103981644054238971438640943778560033883432602766992766823333812236074605260357137382406816413131155533748397417242300025894049008232730742552947227811214442539734790432903585046308738330901352899923990102189914189791087572487003388200954369920302854209721527331354001729877432858176133729184228157268008986760174858188331909557118264241118634941941276731914468024764734275860567768533414404066969581685823699895270458073678798418273013483904620364697241597218588515060006805335153388182749704737471054094837685287810913449045980485594171983019762338032788902631147304222016153669080960479898491496653932594707668403094630578497061693247997332984920068412434164509317599591705329535026035324552853618220513912199235906016848404295666100888553999308311803767445470702370660265870749752719780918010142826337744771568888797498570643925791853795510838998485327378050459525885078793326087149278504086293549529800889612388929648162850590427832641406461854078949770349725152607569244941940162089254908080670202526248727001009083299214777880505886589140404825156861226395427551411860875739897333718023949953667112769878120717531398505386478560469454642799697167577383038740363678769490005236995820248521274240792073389525457891172728905367425268056233115027927760932447973342375993976434350315952178060971205451461371838802505944689597541252127328979732685723730106370112369617678586105235166642863017990259413455708580856290674286561115147642921984065160024028169454838774703244908101083371678859565004011918848412287597227377296191681520044493988966062171841145199349290087975836643457042725704147622065731940029220795001052718050264662744947271837752572531829049762811101733289178379951493050951811134981591282181578889710886285240097835485447068560031014785545038510875012777805664528284604432993377308070051630805438768248199310346296661546133126428262327448186816774493078427516075382320244843093868892820862915141244127961726994018237481420694297410271878910094836830360410215937221704808735654105244552233165759672827632169369958968310688667353519242572331621610858752958836510766180631975848361698541353643256923348532279545316825850811650191712640446183445233884649689948023973634651303382879922652942728222392973967407151840407154011074417357141659021642517730904740798910811853799464775052864376216982834023494374846365721954374551092415297776087748941887126607748596056411283862445682608498302027397039589891927879233161139836482441917820110031037536652305350425479803273952866993989571599389708378678024486139144014329992489913110230968365772504008503668331654793874781864238941777262698275143630879194777553236485003088952800538215531865179398594496651481908866254582904609996718095548582339841324942710192700559826058927457809029533672899479519808005542419912307889240196608322117543224159222801527068663444367689108996694991103524915416010953686185103526127805830783233160966209013932411915467130070028164989112153821242479113001453118534572300573073953055243095656999509507409462862761603813583547250656551557318930068969512981816342532637732631717251747229515330421612871414495157940000225384096567849060668902480563532586502844276786366068614968379066717894042332904295490211732096382402296236789429125575334708085149304519548914188469790875914259151024222843727615434649442321646143031388413526501665906886759534219517702719594585207682705609541480282899451117598779119547792718476843318527423902677268500019058478618244964329181041166124868295720157001640419459866681333697785386119386214662807578293008633512115398304612913715143127752649836529233029548658560872827120877255095957728471451880651804741204858816479014671711313086812668089893053806423639674669943305128718071806808187665937766448721775025543785865961110850591038649112663555672725803171975954236371613484289900467940102399392067886622728024271253592826128419424322710780280885798641714424343463891645541858181811334897933689325440017003888789871165742663919036802070313717680455152708987986845455863684878505644236951820520212394003138981832198896905222946405199497072197905263250980056466108477930046119541014865369542753610976662556060526478218799692845558087618993783372468103218939772174565813827164934911922177069570134047970128623600676114278248393876856067139233021350050151391743318793658266057721274146343949070456180892175539411221705362812698945535671941083145369682990068291630895395024032991781236161503467259777228547901020298740244544083634086765506337853635289016251642130691388163464487559232375589506397732749444576542155971117428109163054622001572965025825396471611835584471271586761329694197115740520448676443146961497269599383122136417161643644560862503786582089541790370967798960587172841798075021450685205981933611134819947795714481178441105962909075664096602531948674318472792985856742151640971423742830036716779907714614913152111497814492951693284084512633868579153987945399645055169191864402490944937534086822006544294946165204526866552184369552891524914476276045802563235002872758552613674580315911691082327872908646824387883094490732582592661320338408679092387053315476656493778094182801634626205703789602354917164189947957442880518564598134501599712860366937010222223986053687376218123711652116355006218551495919150646875302701496290712673490455968902725157034011998265484725680149452154643730582624862673094415672020201484581360330728323592876386815607251157007061442976985171440285878565141285535917909104026112521921122430275400840686652925920488561053918443490742600537411096032378779099390737196706093687836509489414044976629082838624494272166795962655552493678336518040973504666857293368952910675260696469578013541215754538684195512123909257049816371012987706974486563553159301850405621070645888670522682813604779694026514824346827672423104451568801114247771763050134429180804658858241657716959737867239368605225921772635585101186143300611296700635671523733566614641675754743147087894375158368519228187788104450716965425963773061129210088710171985950162986531570412249673309296619106225506099545321176291715683008698421349493590095974458888127036203016849413581239726557130129837936216371096351944809088107363266872506373772903432615778126968546916136375159574008586539885367736286146850625217091864521356374432542621891834666942592290168429662524370894152855888154369198701791263499602305357644375567664403278997588175321057441820231763284564276304550801572599936614162331748388311239594161089422444495596285205535046100280849437346610398752428854648035098270840113793782811001275783521722505294709405209686712113520054336302046071244448757359348658416574814259064898699205160235131646654553455245135179991893374663381073921357183769157450447842571463618124727177570261336564309113023132146301144886383417806712983965269804229760800630616104300557966135780277715526975197441182889199553603531387177640550618892925532857748654654062451417565500605875869988303927851984452249813506892432060851611575047484144900738018012119522265148520957892116032367327116152933892156799483233403971989877030680278241841101576186311185321820041165247778856718260400338865494867736798388540581093475739903128523270518894657476430648549347867249173333775157032655682442615734344812127764533195468638178600792875650810067463573846748625469721899412104066832055240259249192799387354188025487805943808149451676265549993034376685892921815082706043847483533095214851889285910323560788888532803496776478080776169702887421678913476643148932416462916077402360999540752388363144519057608404348780124780169161103206350800802501293793034331913450503604314905188586239249630472738208476288989703711984855827981717349247769738306645605953907904095934713639521049325530433705342106741060348852895657930703977825914596641993470344651914257900780293446540716170850361189772297541920851568315759831217840850494203433999089701111688076389292535227728623758646486058446882031114503663534551263909382249942891433085016156047328340212906295989212747947810243240929804659685825535939110486075888441095519911786963887292522473151955475215965512898069851812612309483662328960023388650563821641994710698617427103877393970861353007742273980493094410047921486604053487798050709592544391438357676269710998451785382521538611692782009004788007072271133808093506620517269977396691309482160294303620372012281446334808831404004245446603456996607247458559941165134717198625523008449997617951124803322018005935412665860347982952638201848572877789321147648705719653160494679952964876947532006662221773398648189655445844073619627086023202850312667632148479390702163777323643092578117995946608418408680867117687561699741710499957557665926070410964995234490170268620351107926803691399160168193751701362251071135621055070625020723635986527953523564185301220657148805684980019093364200975539085979545744919772748265058847847975076910298272255468698511020315434259414226811627414696548063758412629416270607491227277504761400794725608926607956127383189238271001268217404967315695209587158380798527074738557026606069653456358061893582929032330568659932770643766331028398592481750268141843361590972816216338923916837650023664502201844917278844523985266184630908307030272512255933446135786827490294695100313438708648403049823698084141631181155492070478029497104552496443176029138778954775740663154416235599011679384821426912087037704215391604536678177652936814728027341454899647650717614248201170134578678515053320365784243640880682738411895150616626217832880074444950243940848292775766299667062186890072585262652155532503125504098859325015961481687755922728534905929824074159198427209047657881638197088495087228260741439696218744500562685426504573735856123978407918504898864932684659499704533186498620246350829949455835217752048302771055160813873975422499525247198864936730556779955448626449066444480374104980067837942865874194877547809851583498983599903247621785055018908791860145722678046386039098899571654733100554412369884122702751569150408147865095286383011760884957090564284088974538770821036387637331169548250691072202847982257270958717339600906933290082326173226875770463114082537608638180922804188705955120768483375954782923336873125910707800344864412179194476505511543046253085668032034248185501227845927038108913166683661445746484196453798115502485002409348307576150856157197547527240887935039158742855977890957478410787750171031543823939470214367353372257600576192232851385922783354963537191713109563973026846865274121477643250539109107984060768482602722542624147228325354865740779454318385695714548051542171379305243874316792576106908366391869598760407996928009046730870409381006858099713121834687510731143953751857798624915716913367175964837954735594369983208695342652586853858256064127264540913831066407584327656879525059749246990687852110539648002091126128826121508951098011319885741887285278502976890416846550163673949579996097947645562052687075279073844201668500814775673452442030433777275058986023145411721104588053269921363129644139240920088397076776849767628159514440505335087299703306627356555981588904169836336847145786472493010019714775838882251662615537274326377218615854394106032549633958920716623309783058305973978293485872514453017569340775383992467593950883482840458888883088107019865108247405744282569270036165717656791786286441167070002470928990982061426275834059619750908636925716045244494361618342142762552106638494215886711190346224686014821434323688994309299492508983946769204583519939684728032486020847183013960889143756211287405893722749425938295826303790999493167692583785744047099865373353332572378858780262079855021798044406140642686604088126684184461511822688454826235202702105472860782031083815213972896427725578328873353289040531086480821325072798432795908694484861957598939571061236308101479215004237239324962880330352250541951547468360427378452168834862079176418829848197278133917679664552429927609297502048691583313413640599841787755175753240918052704402675305782722507819678354790702518951988832418692860290379309688687899710425906487348268836129507655714828779234988313026633767763955997048775047436899264721342913333364908121315557504790849379330340169758240151840179330845326025226953052532297290972129618944992846388926152240133062811249817059954257742921974200476033038921969916647346173336701546437225640549162130061347935171825542114108468746439159144801985280922986072864058446040479202046103349471111921238985457697862716408768870912713100506287052330296624742007905735616037729990386899607036537616279288914151382513269335371462431114588411776121767025035999623108555099306882534450895012390674277546348187552913338001646938478995701188194577576689589617586457071954859356881389333189724510347681833115995994989222088154025165923131458962728278643292497369457547559941671474498772572598686123190356283319920320534754126419016259614832209562209076193768812346006999380949763906501671127617953165450620185731690134017433856111245407638820712725737712675505882444299952749119755320075883301729784698456689345143551372695548839015374023736801815331829817680309739419356691563125578539925782308962123202702368155102348146356330925723015900341323192079924398281855242812783880799829986582374293820415938547700567834322698036100835993485881277633441424883139700240481962570974026124628991851293684878024548900703148317779828766718287990142407901985584867104451418014577914579011340144784715370802755907808614560884325176703890174150643922498704865944320582565161071974097371241846380052120126046008666299034298796455210898059526320329634294521375974932535375652265100220605441182223088416011764059485466677416921128111653556560303520871207742573946359305432553560934572539214845366367676409484539161361403828115953081609297491730143574873907073136294859233753527579046758680598810992338450699736117167601683401294191903233841580559475220858479590017184631121552276906514176932030023409304545065945233718979121053661023657382641536623031717031142749821069673647082674068671503195156006250717235878171213882183457383534556429323032585919282418536617064344130444955648631174444659189166775855313680173322378882843601835293793519575877104921719859311395300747135029244727956186749265195292085138078243665253886316562933487691840005425285855564834066409565124953677640993650132852635177123115424044279774341409328113601771687982447684998556489004237354313357106878293405573920910892547801688501299511173559599015906442625734081279103530874637006969241783268712048808460979573343816858320035795858890446147214829199439720556687536899997310911968585542132010277888749829251528103661831023261608566602003530732164292129366017107490678133939437136341568049770735336109666377924425369601737549783437834193644733792653276786103885077702133729737360732154632421388929208692037454827842452493609059079101372712253305546725245394094591096284921835713982466974990886601289037137405223056077679828419302630943890114939300763933780060886227956503753395050801573358319455771636937963774621803982337928895847408935188020879992466548279324760860444252439802769734137163963202857604862877264167419717656108230407697339440320382505087174252705073773771675485313647928861017049564488804470616986937870006573930308651084367014679451262736435633583127268833531921207700073480918265233611342574112895528094212041097976390771170789268086781507945362081680218673588741938332747519848210872319662059415503222412341183690769675683903301535103760188574842745551278280661933741354780722996235739014726154185076567629860227672048850127771278315062583254585707859326708334431287419417982568548143431214405454811791517479980854036323118181460647068029076393773213409526759197110990341228371005213388504213953533656535244406803247712776773395718100159010974101474789147816007579241674733262420375283212503411550462089818467392518558480122662764954199698697772238774591916025375736658225815073854899593743995136875723396063335412142383804818132161790180657256009641029702874274109527894643569412377337043720857650978810037797943565503483742523017301431994384652967568324300518894475413060373322994591518868267208026421315326173705409682092214144843362749824938032880792481813392081892305259612442411055732023216978836838680236917685903929939992199735244167465967488879848142118993337752360962593067048242651971368958723023590740344811615757161074482159415330195491046033350109655636169252110283221088523110903040272401217069870029666906045882230514453361656034336577241163495694461472402457367349722101062115579590402696801361111196185261456434438746369231417345787022537080733871874045353106077405044535765849813456059534126859592974014705349746750250493918897030406697935641504905870193197524586615335862420191170426560145471831627991294883089364534381539667664075943378590802022375646788873193894496036184860759806728776265008878416381571949992709801490339018840406155269101153374264048466704186095801145812592306125129743686594801199003859874318021198282593935451027607155113592294057194777704095139867016605406756354017715985504501753709024888169655491045035038029685177094084747642368412073773090118026116195328340966156202470331501091791817833585618882507297979168778322496797861762314167481022421804297450374225224560261946320950518420571434658066503466952571001989608686319625475028223372476513921302579800666807807158294273091315143667109465786497454030572380526526288499907111617247555120823517325542075947060400862820837104421153702362308337120968579402828779657456915725419231355831506044578007664531092720507589881120294938618431609731965269428867236932878648453990281569117722322396119924085424864592964413921013543557927140536894747012736768716804656938809873661978602091512793817745372004724535553082593063051690876264739633739784964930567776586907830822258255114094003870308039800690832927034219804599892246681857122747093243544417570951778281489584495594523842154277852719729463201153097959124494970329014801855897996256139119835536603852225677181936114687185420445979484194939180352576356994501073963127224947009059215274766063952174564904986883138169343811563210071792167352589082688007134701386598736081695006046011749543414288248090896248420300090091126703708145298923389357042477477297293603183042127670402788315507933196263936171745426800293502400860944526865607437512839693821420220166695764585203968917666632713893338913536943861132073931003294198756630510682883343430683026459681706922620223777885022963283024947900885242651912881066937500293008872012098261745113877285155527927269505647928633071221586755525903029308273655851045066858093843249087135801437989435834772993110588596908431825383511911645031434124826023809396619977518142181741945760466912401574824008447943963657375288959810979073174461386239638046444724469453467574281306903249745977843381230822258348366577371754535490956889712103164312011158419765387943150464548609651151759705690791176904684327766871980499622225062861239048143092612545905345067821273318857203947546478686342329620600516400433957233639545624860022080054070825097053933430438565753985548788225029429280930831709307894795208057163547754074772467106373249538124159997507380467541006864729103805663161963054089508838314118924877734057822956365111600305150457157876144098948803338692218756264644484888594599595144940349066660465620778879867178675968115519182044142626117102776771410407082931958950841358266630544014839752922091124277478641841368326777850200157093863905491236763014597267315541119448685174123225852972529611907473997148746203771797399717933293497342906784170472541921619700878617031946510320463880546832256229697257239478103197616614961573060858942154576859897311684545817897518662250058421502965938530287074713759760612656788821751300979824161933886769107835260262819453729947136239617745059558885231618754380422303956970751825976460270785035680530678688760586674508636963447314408732525663080503189242312234344784347108347024678079464005393359728914600061135257101496634108920498447631598251319743861093232816634186747845066123977902238244795765823423467684291402488747307154503709550067777367640304283620593264344666981633773922458156637035473277445621940264280710134876928158022153590583366959685416530745771389515584054772689760167575056016672009769617590755262642210009424686598566526986827245180992053289007145730052659096243057834731471448196870892041900648646668596854402062070906184462281149226842232644772773835446292963238676844637599422124195815928284171280732616239879226225748689403796637940994009769204873460499356679986537303063272784210234893765827764808367691461232850823911322768965261760585591347057822055191485984409200998276010544937458931375011136691697349689351452247173896727443120575589607337975706054263567478283267130168499229366249001065270487363713028060848170823950886027873150038544765228581116272551446892658446879926486101100879027283306301365199707281809694630417527198967743673332218669899706974073334192304317636159784892021923084175255119664186057468520562760775962301418913922136494653414030795910633362290900082279073085310148726119503198846196738444363378150245515460674030298827884256598913451165893542878948691677462133207978518596819898939119320074156579638314447243659089456869308989260663651865864078771929663896490546487985660848767065430343130198107495360088835487316217488134688558256054827513022791107081294730346495493386027577368036213144444853306140304893496568726725013178633505634465695681740128092462542347129002332438794534074032427216460204375368116679934894095125610546734990538732818346639374753070178712398899127444081199372897659719396404888518721972039837150886177239207360684455187206406191124942681892103835779761958102966487878500889008307696645573911666395343409757175566140734792543885956985482304659233331535662825691778548485741757508796867335640080278434759694231289831780261594764093538792461096361531315948586154374013666723794184324285031181157699943771816641904096162452065496480696473901041555232074253131441316193413605831726070581225205334979532513979884156923191749672940789116400359136374721712516683202284873812475464719459791877680803989550927286176600692168907044198941438481595026572356663529615201502492747877145155551361819594473143680639052011152990210368517899533567445544509408081243324588677123496170223318384082811940117609585384036815772846350145235099409317199553731808719837654721433394452920818770331563573027651405038883123661052997704106119192870766337965541348467717666173975444419263330175714925468210047713933402671101331072749653857098186195951446022657743791528455732049619574288371910274721424442525192708624126145967644045348238188035953680476647557119119323622220502511102173810069202069989644165594696660957673825887647666327130208330845493268099668040174578745622987881004080896221409519857698564313242077732050828883308584519024215448399416454997342205898924199025153145581755238702086551463420818644307585768364216118893709650598834151606699121126485167726459999176674192165298836754819804698316518512362714104591964867526586618096371701165473245870003348251741681669935848807383838550263269350289780374663306053137991872409054803096737895562227079015928116824654650366452522292209244449556258677809688168245169978102874416050572419815948027156593129786994000252570832352531686612256624499913539196931562612325207100258708279821669165398172721773327527916638752727852466003682120447930140488451691844686439511651220738994447109442341385933053921018301066155072861657470586323870327488632178858326219401802356441159196167054185467311246762260251668382273056496292906408667568991081322826067553458026819799989513582715213076629390107290773630949533978825635240001990471618281508917753936607311168997600658455081069382833806760360802985102490684852269303778819889472713391922122074599467879497485541820624540833253276779055485320658291411822462572046692192467177052079842618042657887794708350517643721761033676781782025955183814580665538316694069221044059066599863086670528744079081003278897672690417418243746615081083022983345016098841948285420711557861523705303668375776555757399954775119445419521624177947201665760566600238311083751782358706102554016461596981128517002937088419442886539807982799499046212998340459085548139282570461300084581940936899307669721041514115499271349404572395987849355564537503684263026444777530342043826283387448543304940095776587261240191371900992485701299603817340354643309935623288545749549377720241447148779343039098103190214146555933983103919725055584475198695591921490296613460028578471742623139004591327960342981689346243147342305592711778007236322273534140006811267373189082577474027399507737363102048372488097110366642963295438932985733243052481661542862722740273976415961960346827756033044060473621238418234999422138827686915370812364682694724877561625401836280669805522428014842840550775801646132103839270159063125072171263725678193964912889056453285473813465233811687825117541969331898741712639489290633611704940490415113383828977929490280278231829805715266121577160731256425178713858580794398302194976895411175805439894540207430395469330532604483448675927677063811884758334067253888043115526746884329116389491118586811211625600822844536856046626564653242294788802924874172661163340748607045638072730033481697367185869415521965571222660796442997249074403538202123917237502442349651639934304617761165052067373763589827903470267652821306856165644415778228440716528487811516586304587863036938633272715813193036902428553182548732694494597178763940476819533611317618247577564390208875572821705728581808557278003998003506636732466246430643146438957643018310097113666682943801583765666644465339787998360413558806098203790477309257832162877919000479459336371357419308002943114014324498473018521038255333270323934496582321390085741021268371244008731851660849548155695355875904562092751312940715585226278037226438259178875811601639586435699346816722995939489497506534453689206010762332156816577541536251271342861954746842779580967172162631322186356569542273853140422397330928802552089461830299950502553072744792820546956702900447150528958502692394928221208401944772527287345105541965310089956592090053101386540833596953391470398789313641916619937961892440152302496551355778492807489526884584281872509663325814551387055553219448550779619377893024888620824710484066447000137495898911762847672209293030327708511668228579933866495821813373678121230572434502279922714363700361998532125641821073167065569272230979039724854242424090504655105567912750691429482689417885544356461202578659535371868362822992752218180812862326361301700240146029235948675020065565401077869587313529228052022355788753895637078013200504481809428258764207026439592938421936962283870127479454175524167780007989196850644615292448422031841132377953471867430860870716633268982152252502926687191714643050569206438444141212076624208953985313715829355371123250816151728631631887601653022305586649244948399479583158210105204637622290854308345865230002821253177929046290022422261787071497005148477106011011059142232991244937370894475084330932368781982334861258689851739095757863662451515693468844599254259768877425939267944447341472935082648283413405080040779095337118641566877852489258585530390730931570839262023056138829995950392278713799422432772311692814693454684403218445128318446979008959970702689629630419724294533512872457110193640521738486079178906637512532818093606330733511642451458728541246345078700445888022853021812755209759752254621923134589080922503088221737587738993159153974999910316324249113086817386323459868651650458935474713762315666852684159017024408130718399356889820436882899841527839212327018189665205325910831637392744536409449205135636531305998151703680599987298414137170690455747925635064298426144533693158957433505521980896815088107919278229819853841050038487629433145805063016134595586181126572502282408631104388626694279040903809455376615658891855117608488338774641425975187136911651126150560760649689620976624518507780065213111261766733823468579718695181523890291919441877576303799031627923976057049490584215986089898325041305366588530691477625506413842736325925824281692718525349984726904576111908444145569763292542414425195359717541561423506755455550802216839818791002168748853339753545902083743615768412444160344659285511524940711102022432828719122525241641346583771655024677271565442677190271844965370621763291160688044302741000473935921290096136520682955655444617333773439366707611459659111215697031680038144946559054887449841460922817425025848957707561671227667250189593444888650851437177395487451483956658501293522978916036030840390992207211852083655461354351014598472696183123007213814371387280265023266142213133763863284593203868330410365712708140680315556269802722045896380319023838661530788276678446276584956016653232890189617719201896790953739638845736027441483126381940877672699502298573600176109126649754487748067887751968584137044823888680271765761785494946923788120124250641664688116512098773892364830155392558604017324443680046812673768966133994768964339011350214883775049028581735467751468693826678434057718587897240381686682549677671764227858362143072030462007791101015000303115834220910221545435107241883438954286435450758191097226813203264176672712611757943467049467929803665211211143603152275695062012945120857839605085880072275289282859028318991158829817972420697679574245942949247138319223413181715307103571072399380582011801689176229117896326247460550222598012089646053651232204141833159981294218055276671767910092989356587103413383040955000404318474689277003700170216227654251742040883946081069116192514683964249959181687866558747291249861539772639455960173245362814549182835393092044199117739756198828433801968797393625916362950623354055562586116316509039365743851149319812258903189245303044215036396120775741749731083808387701174230480581622489387681050773126099057345045028169152850256045953185940687701546298560022995558690439258114732213215663956958992647894293929930766909285061020602229552035293267210240132153122183515139716409235435967133028054084247067518587149347878033698906328353602563529065448976986115440140138306453763918862862294972103084650893833352257798893984259919021200798904853930040598435780541918231312505524338433045998769220861899920952321510184727972098440611751252590030071908442825631304060994817104361435436935860992820752488097122961137488772654108976120603345582907330201621090254309529633088737082378342840692941819242179945809940156179224779241574466336381838594840537284870605677989927511209033164891024362510584708936495934630322847874513926055113402841728148663276703459336610017677632895926401473173583422170709216126576719279313537449419452810855322269011948820311995436447919584187669053978042562391036926626259223025719137548680625291274337200394255005811071411969153960900969061432364024560019906949761497428595731985028525155727944211717823238245316007511137459121170267702937339087489899311922989064740757966936271046643791949275895205348234641592388957426499961875584591270755109551110194967207314972965885820383698286082303822471989871476254477069218284943460286164731572465876460296229839309665107739364102423979773897929906325464902583121719384416718375214370301188374504679586806176259223924926130042140727530912871600100263543861698198622702946519482662325094600465709746998436715886181379906010404636789593484731598565155636107664621790163781243890109202384579749610418797823775024269962100008395446406805165255396304742139209909597417559407750715040247895963436887545950483906695788767845188226139882993641357609934383495183871935570199127468054424037088030056552326239793993606840902583274061906627908741579712195822706917642319764507188433077992840089060698713049659008627038115579621108400788046165484409176377303864012287313749473213007299302542212773467467367154624770705965563535999762993557383262506245069345708764934334602841102084811218935640223291224728827148549494136378315119447029351737575641812764415286617483534392203036750423599635322748860558177763466345279534334829463788696589354621693511732410822019447771883439882887581833593951708658409673037131514515077287695597211967939708142381358784826442168644779066412598276995583139490191219493410079605127775519044833709141158335328663515981496844805715199545663671726264986698082367410176226264514721988417780261856591610646409685005819769470108909036677463279627079402194454701770386109248353963142251289489988557572097645377082056346481149871874466851853021791563730542019236510426927891975414698577675382440253198410491680487226031455071774900742736554010488715586811801122624468116431904858982420627609283730706637468630807715722929668215233693284498018061038564024581647842924168511439250832582302584861532666573986204007650141630931767410895281174015814031635333823569709882540994713631865139679939033403991936764482609156411910382142828030758330091679860504371304122596625423056762102086657555411330171263810985011727993460238363226336065748000346458028548615342589233335520245621182788563581960427625950263314682504977406725939997062432155131730747541327938747907718413046084081428073353495085687121020401454164956215248523050863150648019262634195091369754404009838988291644620986253207122910962041209968305708329899024489488332693849788441926295898123875349087859038557637721760732528845597054453675386666975005055139147753133515969046618141779242709877118464805029344470579827419795523203310012319090571598766346586993968000627096241099291878053663969417508569162080648296037886545559616415926656213252421580284085151736559062473359205454590796218234385842425318872907975517477994546105532965256403603375415317809621224641983211861245526549831894679989936728254209893530393348416322384154561029747436290837348926321974095674279241913931098690527819966451424133353934933353694853277063704776757401055446032810480055302604976117130720873640226443140830138270421761447356653634435678670800174669207426288175902254812516218961175411524120538335503922872895405647204487197199756106259872265044766312584270285591280426457558436774521400684514343981539049543299111151898414922665945975577967274744533003344963600115419574148524716282271778331933225002336497706264325025154943286000484832203855539462607743805454940317176034613119953643151687114336674106531817601711329892431746902981884462896921273534683119727657566971522740967258270748788752875879124798022893642739286694322892653240906948925943221063850322454918902912984952002046762448992490447206405026982106646806523720960077613928540948324495166449456323036110095088703823134669504550742472953431166979628938335803278696486684657561847262942924604573481384365799797585514889238401980988357007775409964938516405713088367120077162896471977312878610291351053272233085240793598743155389470445350595285386787200873058469230595233939245660755328860674588608164443122021697977162367188412408759796154005361324741952829157918613589141338612369096139236675670627358034286075155152924912780999042419819539994792274464374490079532813162394576579597207831096120122904185682698051582644823210426743806147970891831361640626274456395114977332153235733033535749574908736773327931371156292819415040524021758493761881195009328521460530222845961226863643435113825022861302251436264740212114918915241469471148263182784856335461576999424072395774792345604019102605528469462922905795757568055348639779046209671612149231698761755970343920342729761778474213025735063169997674840495990519692375070085585525302969659330257952847348096741852362900186639440230485236893414556670148856884677044339518499085891948738987966018186606275520443391593630570766474878327745735619629134230921929634541618583167250880949909368579682490372704497835780816918261473563342114165015582248597776224364639775758686221990893641463608129862221900388958086526518839054451704754868190878140021097486791992784508997707998597115367144755459324933285925925571128862907239753058167610124562942414793678535254527995629197870969844288058148980950436103134475471416647960948491559098855173215591348961776219670354979702583247663912119843261699151495733603290270642128409352696125469773504004682286895932616281156828745792831034212011971515318764113209210667188572599267614402377943931932672620530859992874298594003327216509792886375657138322661687348988821383955887422436608131400959119914294264405621226537999539145166866333651050973986657121049836854524091063286648665785241540543362969937847465024829534968690768032454540831061965520564896921126188638325902229858708188962743189273850169287453024422956061447496709020087105956989332427690395615212973426186029577250989823555569031523560885144133680407434747845503227980421914870750246135871127399734961080816140202059483624267165257006257189205311902041887876314288729305032711759236709640678949857827049968148613177066079994898548954556195244275050770247853880720841182864194993953557163069313505703674197449989193701793222488246771569992321352472703152251950378131803337379957864039712770776022709671296658376956384208580006442661292875918827100633393520227102762115700781896585150165491744736631397751264978532563286322569022114356126722142416216655350016566446492360948134518103274477086414838796342946765003707451657380946835145587141457857429901570167615555802567832948235556823992792834826047524914917468787463209351686386831202264347302512750082674213016131347297521822115242880496203964723680980207852503279195439566460336049555388586120519176654257550486107107316255518734575872516261250398339554296060002890093498050610240741193938029220924094698667244708903411073573050808621837961382577669497414068128349126511309264838774398708388006433923865868575720885030320627543326703164588345665972266102100195874089493857217478879822037976620624111242874846208409238023406822349730070474815210896305149516983240136351974160663943262854866052860031501459546347896494191843906152877878201851231259583592377521826068129174525795300888094178213694463692075995311128975775610074065525233543224031825559206192883019733431802944547346043870133478102147295347000082979099121686550869533921379739243365863325367407809623468724328918640541974701092979376946468735565897183108534454589581082825359421058726367183839601724867620169191848692520936621039346678746676436138422289029113073330651063052874004980004242904273489284649547911288666496728450159831919811190009740948315961920056737868141747001134501260753329203438185161363994114696596446784671198159994167443937636635183980079435046356995513011183520635110015266895689870564248475360002303658761103411566137813785347312808217206443868958767915080877205634827917995628996956316130311945836100733908215437085517102818122256811418133930139919028819079278660490702771109312001354382190066882172578911787594424077940206966901972561315437530903042019097404198876119811204201393787430456728697341388670792799465667490510027040761998049288844596336771639433005810565202517278282322186522296895094119039759032998503892985183532239185832422734658623455590770347116403707230407996310431454736674631989904582358494411220876860757572081025457992095927975722213169458777181324676303207560438748629939819865309914728935238381355576793366471339385977492640368455175654334178624475112576269114044111731969019771456847269454924657763125300154161837564839129111444252834338077810711985438101731443650447482057305374400554911150126785503617342445064849340521799202492171285055807986212753198020789493987541270636250932124523407947495022904135367224925108168062289011441272351137118989507220363193324265725735606473304673244977222780159363188816031464155622638780060591306407950129328986081242744163616833510866762236668498148519847907451473376065334140437922331507613005015956298661505201850006552743371951322838353168831769916909557190712656599940394861404899509059619300904532133730576589428050654860466489245567302974771826797160923754410675413199875381043990407787120972264592957070827102876581501323022706035377674809311142001164601332099959362086594125964243770680040231202649723909150354475424337508851670198523698355638981141494846251058124364691866143128186718863345040276983060796514324898608112185130559426593638161159655301319798722062225674954407506104949251595732886262549518643241965461338340471698546079753346877839684032399676341414754435207899974930335863236797411772751109605716999222586902627321637975726920353005703757018787244379955887673494572913959045449723227746167361772943074008550939465193396050063336946209088372210905177297420418486483594588568280945683418444150276562985679576897287821927288902366733938354142015526556841959712226747008323213533800794684487314535085505037113528703078753382345856656573186984332916712662254912644734985439308511435651635014415801828983061786452855241779259214331849786279156328113349421834962447494570233451004226401281146026443606514546844686430456093084480680483238045193556239337157708576643923779959220471578082421171184208974874603531016291816442925593028467744000735777150610292839785423363863951851990059928108541879578955713001607518160853897405670515408362390633918397669674823803657627302106594499836299575888190784536471835140785009836541804237017873962792049601285878732490964488189464778971881241112241241711236971232901962040916118893415854918546298507754644316149174693698189109759907069042264732143471799993944714870114292201027381251356142386802125464473420611255361614649869297600671670433729109315457340519285251807838161931928968918021116957575240190468953661742475095252546137503115232875806632658303717819663109234246464555634004805329703190698019124223388245941543170252664495557581444584324378114951987364415616647492917903368187962629789102924882696453067177512243157105069438518805918723304758436838463285697001097972550160091251642534075100732652768572280481077670498466914334503397560586969254934035386970103541908322830849847282664902204710639863282717983106076674562331025854947548592993036803086358489464389053295551547504069598840568008958069041274093062038926198074604706742811373195412301626261460955226509146299766906539920590249686181579102662240912062880270892237139508900156528123758118434706986548100815197124407087161619063726111936810507631029903843108627413306439737402431814866267085046502789268062180266330200234210584131860268779948578496684340236306500802997279849436061828286509872068919426861355546446209156824700579609687354645103691421747835395553570836576307630727480765463514038991519086482266996926312141915054001828742689253671282281190261546506668839821061847250238126154660023572272326054756612440006310721812278733531342604634057468969175851661411251521017127035979708211434607350957038781754168082037801534898640962692684463525367670667775795696635653999057781653833619134039562817177912688153789935464444893125117342377173503532899443842015039160921690877294797766009301481198944854455771172349295993404091895860451297075628395014117391175699234091537568678905154382970250560423967953194658387985745790034807070412647143935594369478306227704246945268024605586919490263350717012823347784390480166014451305488477218918546311276684193295120598477952822424425547935461499701586822996166510778541958083286758537768433236700068409054059700542429777622205746823845775550980170615881781451240661833221223469670347251282424328737188926299071234102036823949759962036899819681287150182168744975346714694456032465151423632587232990240688462237629027446381422750634117371062322587947149525182904955372701016799720964919712501992837561828682212691415617430462893054743330658496215046306811388528617672948101924616783155496149317243491774729977238549456713721447464478150549327718019622383256758995754460117371026591138322241669529641750190226592944142497186437393506239787688089009721073280950063496936889155560412707635576558041285176747594178487216608765132840699807644028276090246303084170792179124109880552017860063415921184802681768219289737090234251989157255639253892271457511506568648495632432708433643833914735975977840488978833847092351199241221496123327906984142027679108351002083081177505233823839572253019735244690607479067465530550748914687403531465525401289044822754164330281586954050063054626802720110268850895598569007718329989703779206951918109395147990401011182613998898029385802844359662635654265529199128873027731110949638047984934601896498121007748324932750609699663504227611219373655231025676492251324127662290150358454466682099098034234358690903985026925683543831188099880009988378573108483526187341471704569399982478672384235847643292690661873947262213522739522330778486216921409196488739953943576739090404161841136895214443089593027545313537031254027612343570405525551816630292958882435161201018420515715764507467981307645733503780648174023292532317498650480449724698818746188453928826499079751076519022936152356579761148085698534881403875844460851701202464232687878588841053499374838323872314035342319460120240533743980938763863546339937662286892355833035024827511575720401396118748014242069197551829070815135884018298464889818819652233691523475940658099290014816269022241037899653770640909195942387499648463658181460883347314214057625340295078867263446816646277458632993291649876148286838985629094533253228100471433908359944358747560251197011329829906506089275701443897720343300578063287357308866832348250058604622078217359499783201650407535622556294627878213267246641700156491207833402164759064936463409870321955991425749414450001093093614656716225572168232661305977615603307462758347086541265664058611032341267004507091257068371499938247476118504381366428702019307788554938500311769384996526451556083943371765401146974614803276633835404042338854018172016301663306936868341411499875490038238601300916761294211843061656397944180401600711129778217731448449263238655118212669783978913119306644916965210550666153760400220223356520415231638474257330113813686492482854386897742240199866017695590582176870906831203223153031051318085569002863503876722422570196103019980387450817003138691244314821208849059900048796596411144166210188962679282715215574231671766122812033703965203234212428018964739109461683773958391888790676732293160818939334238174758831001834031878743271696483609581222549475053945389646794639035945401646959357149494891459036220203103588860600299218894459363201480500517446221686381036216257103622423415832094226407322696430736290421770623574675377912258352159240642178047075685728647535467825950245916011235029273607339756895915381227174474706421357471556170620962821871152602151828666547820060532967234524599715710156755475030739886123615474932921759350847504721200746345692255898367212918278599597876907331447934635508514675942854917535964322818752775166389351979899196995040156330161926162082759774883135457145038127017413849737639098802491508169808648444864809160806898642413199487892775993362184433503677679461085563553520141600071832398990144957175501035737001890906727629809883859491869265788630510782260404880327626195144804533116031597896796547222632800434692495102621792493411398399333796682014204015592444623692322869636618873112601194898318372121589742299187720838896406017351921405167878405995010450753762852168992075041668448928261634229419825951999098755315525366739971375671768521644154957519872269360841102716792988264547266237287374036288777150816625443683816039813798253606535716269845989092808243382292885647372252530132907191432423827111313991269023737395095145223193809552099022439417986423654021423995051665831972990500905766884790220037779394808750462198113196483026212979356063240807751430450059448797086545837522738095581159617536329664756889177428420459706627241011638751497227507475425835368914439733234334964252772269857088642314684700308388811986294127944322259939360536410554074235002555028881393084664711374617743517515727987532334173210801004377797488515005206694211331214362535082659859105843433646635423550821020548910231909192056477740996622195781460400268879053810652510304769466869107805106983235048260730995143685764929500522636363739313531325434612004705212205978896902119002177819838294960086768955191392190413191706779405247662771064148651222676432124158932339611893254900661413344706985054161119425183489663391458634214635177309969073535396642796859186812193622204026629815117681534193202542144028446347091438748419406092122283751878717816952674633190745063330480415904796767131620621600394130267764557368301474947271915819563486441393121888154603394211117623897400441219563442824078963255491968397510954532188525229466530787381692917225792632472510678459110262310924118601919833616167973383757436661107943332286617927520332965188779817445607995551906086568213949028346836193676209148161869743268117529251378715086086217941595792732601828829396496153177991485832637296572173073988982591854025058080808690821491311840174777691009864786994044388318287313640886060543921002616296000821554246343611227422991917159180960623619275178231538920218559972007326873450386219270521099121461218603337470931150864895363600874985971989240554131789062958979324064487468365851504332801675321620688568667529398116365369122867292202799246000165342084498302516811355054082407408955110846261310140450420788990054745304968367689706132224489692514429429070737920890128302211653885873844663312034640356378287040073589197860262984159505365867754817600132206866408500194352683879142514230038821930303542241062695979440909616581318486050748148496102945699416921032733496466290312268017170616130147628513270520558053709317839581934176002355523236092502938093374254503588488533064920601666323464928456662765723544344689785949475767996940296797581558125537981653664359563328065785594595353882651191921162003199453718029885938021199421652614189784295288974376291335045884887186832769991844414249118356742136042000127059338656476772168156183280255517664206438100210340423566599835093816770886739685131509259158052533208971410799136725238495770791561613329067555336664992785028642444353311967660863721155243829099478721699653935107574760566552581514197005030154167376523618074497498676413576545313639545885980985076501462009978403298769838749047386689830316632050407835946047376874237064034054698331828744204830232428732087049623072288076405728544726010325184159604661405602187767663059971981929823620072560877490676450116040252583689910174117420506941257686179134889838477482668128680352080955186039486497201557537632997683680392151271879916835113378444353387119854522053311343831583134647761696884571975220111262433160843756414775971633186384626034192473913324387050073765938841913924902071090002690042390745400654262482278945991502114472484962922730473097515980612234604280080175019269927910996408410747037903610735762393680570223639415802884139915512735044546123267052308910219878731929409957137733914285333716033211481759532334144869516639910005185932933882633599146536852111864962316375605062691894427380127567971349914933685838707302068176176317485273731662676571803234940340204964797690419678297810629898301053425787121701649620983934487665939567329911130331739816768098344724318416305400556647706875052844360418510778512185350405137989317924864976831984094307663845327368908531549100720329015467572861002012915222982312354219973609011523661065588550872063587435747732145883031779285009707512829030893714328137788432023920311474228314551610614715107827811198985539107021315757366689281764150994818983366206475148625146363788374493697816445926687835100559118191181771217364561267999864519420336118541644435330110843983627230807858218926790896534027835796762565195533328649133855847063928634181441874371874732427255776138105290023619767048530241422450252689226403982147676847636446963433702826072025032370254594668120797787141985905814175434793692704699974469969292871663021216033227986038341414267236115556153995936833701771144777498722352531218799643332710664993095035396735227989156491100830997348449385338565054290575393725684825421405794879271696756495371767249101706789760527236009579481144520433083844489714541109524289763750104962828564746649632176358205278135256908247630766528590819082354719666986546518649453553907673541949189557352733919028282954745763746733553318873958204024121020915499715035137043786348055794642784944409545453661009828676030803786593883807517716347553920549614152032118058910020396894263326629088588226891874639769641531263417514370590493138264322696975771013863800370092458636938633015668847713266747973514788818915390265458528901704369566443782642741334730763998899094500015511856875421705905828429016147936848976339761875196514278103535645499998149228922848568472215731517686258899927236708111494513480621320854102540965067035117302039585997240156313133870154335410171101449493153642070055293989710656353714626172821461319186028011110236406523918348868208858649456505165105923697725774003959771456500896354203402307737353073760812653719730821276824097321289740181561196195624775664019416624023457355619961674712868776069060705333893471042520540795518490405600616675235321649491238026297038325095832944108183349785406980704470032294501312909739579221681673780325623240594075046349774401789866905100277951276922987060548718236994605223874961258006598936560777523244690277114402873800828230766586181898437701834014377090887157502333739477089239870136701424900150225990042809236780173739971266589756198603947386726334333093766667902838600409568178792272386597012317422124756436868591050431992090809154274270719264108973700373514370678122699800266694216399877109658905240312576808754990792894107222753761673119863930123550116024301881282315150603377112656021570728834150109462162454085631743527258877700090854252525285567240316563571789682598474185337115845345632901036729749236194280401095744000997326239774152166005470868931993256572818707629071117220128471025778220543773195531744686075176472718129790754644397324535736050722767882565574272486831560700634424927112349613416971184401334644838143431921051078848987200166134116867742170648448951725661647309347617126730735237977588354323412405140180931830438730251644991696005771564416817387860648976909996970251176208013782851337763953639237118294638486021603509157885973604695739922382966442147370116103072092222868505133257750818236516036749534418268256178960896090828233917262968716008390741342182500602698317031673157477628649015206927083107413624478690700845649713892339164298835311113007152360974642490870575895347486079946547693768486291869204018930290499236057975627623137829831984609047897172363419518522170223102388543606782320471248480003852668420680235969987412754267335067070061054784001427544614094837510007329870780541526474216772375219934126608894069552222183157304732142110004179407356122699451814940312435625657659089766563704358390996897443677290566297443718965581732987886632051996311470964742960631584634779274259905495049074521417791658129848398214561375106075843370011440568371660571624003901632999720573015248366467845331308776673864384371036391279268467580777495893484126975513483008010568666893776823761266175775669804033128467588054479576601364200100820432666226500581261292728989904080196623881442623493074018825876200959739268793532329406216765060402112510270864020305165585280996992862841430098831480182832046586189374973317615315304115342309037524947575560291399357004675361043326485819914825921259629525606213900704070020068502607972188163453642702902392240267655489786979965518302187789512486299202127265109146841682084646010769081486967974399124690445277167517043379661514347265400176807012902657893463452161593406625855779906831730420989541356082680899866615997553142554953771094963296123448246884031937434105038968988456948889107026031252806150923716509961223614949773354642511886226241045104653699610973522646912857231554966902667972550549734573817919291245899583266953544507200291282700443156375390453040023978706816621737190198690935662757866440256827844489762178834037598004056761403103289230147339979320315602783751325222446501713784320068836682412948025419953341274930507637782111384369488618276496749937844835747959296496534041444085047939854971794349462638861820671448079812094566961189305602999205109719086651809904994298060162285096871823430233646668268827791711219863164104477924873664544823075963368186692961088287373892610604764361198560150277550373352726581348448011316673697835420444905146854695435420526827086028891743140705321880500040353748791889615086321000250438221575700759427863548009222775961290859444284206336684313294924486472470490383028521792646379762498834657791512720025609819896035564478442797564788287315217656274852075609046156855455705520676703098442522554362427524756402522017654528457438508041330215759029293403765968135201680163065277845084505542311104687914796980158686713685688828488146129518266897443948055275490106808163633649883150487145736200586864076886319202769974557910283838266378435087861731521407698380749296772274105025059637179280204757306236454483937520274370341670933244607381063503994544564708972491629127498619338996000964964357883766175525551663866593262707804862645561682572290947761149333640593384251626008780381513623042716127495539755259754838200476893726331954778737934455835012469575139915641568380823893726831207689484780759083147452408857110721929724995325968640586244058401806366866805584087360897567906616231159149548769084393058193564755076823972355710227865900500272337905627351995735167478298787590257221483271061814742213743472570296174184962980694704248095853282121869695133850126098497950772647551855906847535802003571929936923820385710879714025107499362335726017444490239116258183706115051962109010201156379212434934698836286219011668700420849882654679967279919517368876130848820856664998339171108515979614036484467174009054921212737572999362821668671419953879061355804636426071485752899487730343285315344765966975036033399401286397792773602154102894266609425110602409045009938636935999222969671583598649548736558533968022641275821607429581839563443859621792374416424949179593571026365560271100282550054447464511076881126286134478497475778593315315712701598512038649818396158502488048532658412529502448054103658586081221202043311798166743071806050063933553879852851542879458919246438742687733885162187138246762245229151166983423454906342733595127298467452888939660144320476516043322441603742263153789013394129770854319001912514274674095475929415083996944754028852476957310611825453392842079730197034715426861056794206483234065104292385984325372748341457005714543283968738786897155217115617942595288442871890756126059302220241073641773570662828432916167223398254632035925616879107028707755960182610981775277314373025342025712753989597311676161185148335940342711163209246333046976121590252318404899939689997169310836402202747020130452510172124976317851351841114317663573289097768823573092537681377373194538444270163354665328607301285937613805605317996998771677481636067170197526010192662299949684974240921055025347607828741827306244824418084112149092444939011223617278371818062210228758735110405551586079453077471407480055256016121727796842344955012991817878202586163997398269576982077944015133604423693065692990331556796574353916547737195665069298120846886009210688649166636456562180818503238271144235324978010675394808261762881719772068635848559067071295992243137389004339356392666677879144473310665580139092267746552514544644646470474990148649315014431366502452808131711559644105718756687980221014960526131983096288310628890315561477135361591038819391503923734332939738851606019502093188462326209997032748676398706232270621634148462996259849548968871907482499608490780000516865801312639519408072225163692421978533467296217003834794038790257596699595689328340585404080124048355177320009281795914148134732689707417072338299400316056398286419019973471255548171255704599762439174171302415812176735008476076915173296497891926163368643372548556432444504076428974999844814432575356058186560101164417889420253269897912224455778737344856415561957557635040601201301428467488543255884233631675825439692648864089110152833988223071048286548418545138805314945643018248692185817064017323366301590826077163280221846156581605756895426309921300400460466444105778122611290949976853332521093484232866508741646403425885727068572106601855435292590644801666681293347120418959590633923701998200427935397424441844716698448427073636623695907049171844705586712130688501847938964168392127602622211468491767907413415303879510717878552003652431148880325084975032680206816969789935901231453295876968865022539947668318788448087926457257219347819209191743967030191526828339048202255386279372932477900513153149412846655512335850444830291690220039965380032002701784895600754520793668952100523858162241361709866410649629458936447527725758251370420192145603115389453216390678125105109644862602012946576710209609435005949563394654020115078161838470175608074717755329468683790396123379129935852041566767969916385752893106526670776932639814506743533459572056161457363949695859072841168409635744913962406035794572031880321622996373444731191247182537920361669421030666178964816700943410134056334898328226506172777062848542854111472863129573516621190416677251068763390715638007022353906896227485299774899505111973238449060229455896267440044056354371193437254444627252809210053407765945895233124153662145899278650842332819536465788598327418919863066802709800972079712934643045652087742116210169941084503056940414291692868375805652752308887079000675469844830709147280003120515832862487542698582217899573366988350912637599902169025554100221340022052627900720233253010309222034254440952525273377514120154260652597015987067432326019540083137874121518262170030938217823838479264880534303446833458430846360153607014779595664968706988706380412520249624769322788335092255070587604159826221764274519327314556335021081215522026526021692625770592052184126117950553514743547129691423757120428562038686490890815024922157672977245984040777447888200431744275144442354495960117849276583740248946046957246882568214460741127939241350733212297208656619607830475639198918131087572585472282401106478420653746375130805730666540704777223795071926627605850673865356913227112501666362045966878070508714063074770527440608319138438275560645225001226742628262802787710591909452256117925235798224408202667849161856399916722921364266373359166901677159666639621171388954053305570027806537643097383627320853596028115463460800570435831246092881023009114354501807805205249955416657522515459688376353039057715448458609756060122441527751949996925705695378090590440631612787472825337628937495200215386759500778104198722971721614101831728156773072104458315189163126065735141619148999310240821024015233909790559058036777535968546250688110817104274577769270825381590853374826778685325638499899315945919181946955772668932036700455578073890254890166610024005438560124037262821007678320902321267041612034016815973624476132225050623251661082338216991181958699452266981127220616294673433735364056413434958424194965947849015642271667277263818581716332887644300036481410362979629291996541168786492849248874251749072031360603298734909286169126273505306606409260709506082945823912302511191042995680620767376133854920886873844377952014236626730015229901076291411544621980667371713498852440331723621594608848415543624185790668431322723631934751708541414362932272970328901483999351100881930348037548550308757137709012743516967374152947609417629999242416871105890418783630481227691617150172365472607430093725778829331699972527199431619829525394738394321612131645617695543987206142857041788471635672487571769277607490779072195952614845346530003685215190989128407271815325144913869743385672542597540652234659597814997910373494314250586147058944657109325248893481537291614824530247893523966178431220487063463506238428083844480757808688591831763601629741565082550934580327849061447393681861390655260481452409100417184944449217592627508371940068925448113332308177358538879697135548560167090366813122185212844651287300457594713861699285719499509655950365442333757823851483009728784852031704705317757771355030162620757557292345983547286893498098827823898591113899993622804444172006323086226171951255752617509726703478900652605998189529086784756363253146251542905074794414566138196546917003409243125316230292170839669252239808679796927951445991076348715524579524086389426181277835814827509966665110394473305025359641545161587898038679409403713890988886491316537129151057044181316042383872198215853647118205544620904493328828047036347868339141959804818494580264119275335532985043628904569127536801065477522425820999149251441603802844803542428723519597547459654372031834698983271597645200986664949317880427891400838787162074253599126249993088149137993744312417814051127668193964461924175400003969616515483610986193044719162822527735216800096399782231644423864686261587392762702137488906761925109223350589127297965410937735796049776902943041557159635788434743315957050422925024499514838769889825496938032345618971363420269302071575212440011735398583639511091058884233733490907713948122817234307981796457017496558418104501724703104071380456527172285094963614378045901696865638023854512046134995525166879089088946970847021390182287455231849779305447135492489336041654196731876827016538180221539471820074395763266207165326617124737530429524733065053634728029844036481464141967409503738103251692818409148284080751723711520597890357443227268004142364714241822220277346702517856110922971220532467310531753871171057929041409010432499572430868260743742974169903206577667573385483072965498161574489576291788968384110603784816039264004141821532357887855651894077497459028199614348109999623785198929073241922125703872754757081104320436458892555466491756272481384260600986837161750331083061886544615317340850670378841260667455186145429820981621845243799934796930843791713291040889808456059843547867496542757130463533736602030444850519937188480904723735214212804705216242284226658436678471559301415919918700018220816389608319898553905179395813958924747875630618989988822547513673930095097354477539200083387180204198381557198999709296497177665848250181734886136411919047074284172338306524964319613356819976099973541782730661496160911320246144607312879817106099874421056909847279878084273817754347094336656839695547722740837814981951587280832118792815686518839004624470558192708267357031730945612634172907998246366496882699104788743747988639423911539898537037873340541212500950343267929700472676427139721692760594663607066313743821670411670470163686414173766053324943578396631638800722124035910520912317795178956993587855271881159865891129160495009090589799223175684840980221065564341280320771106705110530356219211667266675722550963781860620363823910762919776420252524766982362046720751869064119591030571360157520720511922082267320386918771216333130338453748927671747237864672833375214280425537825008142264556173312960610935697515224866364311781585660158503583117797064939067169437495653819132565757662825572542741971800767710045334886822576739417937689242403145102292231309164333596183905732270695827281318883540810524424361940804879496909388790297910889077656148806989439544538097302516740803349684850793729398115358574675978229313057487611579839248445295011886652719460827286662990610126191118769569827279284441745222883412926635130980189950697755723364204633798197200924321646432065685271847436848319006615486979496043262150894738069164879451309734361440939501625467225719652909466459982862105499233601929408241574498668655185357980769213143504896665438645957250094344687917616563616744061208509954471535591696895741872419449716374646646042170126002691285766534450725534787388459393274519364611253944949798360437124935803151872062541489593171644237694096199381387549167623432969005346755172428911620661243996166690374397402898897543462762272064201063369142117884462152468371475903440057748092043105678063349982135852653235321222025526929512457268986095200480864366249294930428937514441417278635766637789846037971964316049633457316799857427079686707702936026622130572475490739715282381164565717950642471493103374610791400844918826619970929020284861725319417702112589338593633409276122905612839145743796510975956769094563052886879016655173034530236649593074666883280213867975504095878073399771495649592325509038649373074721605729620933094177241025405648255299561727575591930762971122958984452862921241704034110350318064409358328099011496190318828852854461424598729204198660062530375646939441167190557391441730641472393417527157761510650915360074128762039882578555876346375205317316654728990474259548598881536883488090120796959662399585593600583061012327540150725914676913806299484876499977082987339359210155937883696781095127229143129592870556875899138238459055511419001247515671591596048690730727854688046327368936732720835997211838102425865621057078162689915915423953614648084640707321889412990305668327902453478677144057122174886372743941177505261094787251718724395084115569111098710315915568138185581639152240192634793902093082950528555486222116761854094836913770874945358889457012545195405534268405117375194195062614483648199319979407938605630259225488039490868396660709168582668608984662203320033511435895770352413223458861993428899454351215329064662437978562430129861386367854969672882628809653992521959550031271250836881335800530486230481526785313287185748723765307502226467502819249393162791907687505799499614956226391770706495397447637101813859493369357866972388004357388612178094748216403822962355020254660031042506828748938987185024594741160784559389635041914738946320286357992898001495110958634995890386600282537783799624661734674030731125650019427041121831399751654624975321950643552374412001404034138166764214217541929037847456175349251709777833839027428122361020679046618892694743546667213634879030560639449379236845792814684783530381780237459334400977043890435427406463262101018345914219357211861366235595496443751404373853961603993502078228053500357271150822038100965583037531389059896911342775818993027967227915324473267394983911990548611053907421496491420666954087837022004428798711407734520016426364851206917927642469114003720386472771974520593133943981804792018464299744674775822601229532300571560004671657238530223780006712724569543936729416562886984331070641691905243348438985970691722838481194888528750913129484958859019376713136876899655930059279155110386818534177478468850330519503301927958766775856122612830212477772128437861274677768829146580566553981289209765730987066438638222184403365706003704503825897014455466182098946609658633113804678022469082636942515593133203753431351836825603070407901704982894868178843725124969953225210685480532345548493649324418218545333467634957939746308279411525167154645850144257879241988436048719905606133196471063150774734332967696055635754333554311480638369289153625531867253482440452868264480317099457328467710648115664205624643766721936206134500529194990919722459419058402608999152724042261104824764940947406709665345745748495418105533030270363623044967849490760856281743343466573379861410333591785172369659874431281973916898891674311048424742751549940539704017837210892083276791577675823547003262996610921847890853032512726532646106685694367201161086345620168666569459060066568767968341801661398615665774325060964715146887679988674016851528798691307866543139214543753046596274622777209887620238608098005120416089978295490778246541428211502063792388139584582163271763167436028167362926630327916508212275008487202884571430481801621336651079944030237854445333606724990743265150046291619586024358645608821825905474869258699237171626973151045443801353332596208693118992232490217525927345450827981443742639446416900358467089178836809654256224179025127142472502068900209649055421967764519746232403230312442835812310873166541853043146004038463849581574935004638143522049539376178082880764836436636794987227252712611386715367527745956799891892717239291739496738574211264428404219054009775286732155019921582258995203554995002279000026835461119522168483653412841619012007114743127396057967720620998990996323734528133560799440790534178280104654725351308024218967408631409039212904984170996345959846860927067412784579683262793579528940372987415051223683874718334339086407778285992971961614218478713550295709286233052765976197094827906956804879689724319004256791953413283430780506890915270352438859753330628611573965367986488193665462483241017801830354035156974246426857258461918430486807748995138121957148292976209569702214672410479656579076077196570453972817666125267400798716181138967655140374469815600124090431471203682980772109746152470654549862599195359851207361013339404410241800572889964953961019900730049244148224626157283582643168325172018352845891749917567283992505881463613526917571813485926106764458864768484105076776521100630711032351946274684566209214227777754076680640465520477000531826201926876232850143523370879280749934926019893644549062734247321402502114912543409393758339454060560933209697442774922753611318669367075297817568872178621830273723075878207846171714890980719480690081558750605133314734250797061155139779141298681306611742626326228057190804563708495772641530003917002925451802715735629339069739410293230636021025244968447937103633213214298065019843908098900325304401445796587930007449231278747123070309251442355698617656908608480655652855115092510493563864771527104006042528093291235966266246645072223571110993593831943674348786333782021239735948629615586001689605852152365247630626608504825796750326527194794029995618944749928271862373293227032640004405258387584969729329206979730965486244311896098240498198346443761572114133612588969730514519040909079537392836958143236715081561102061096145940034292004049114883577369538010752179209519321751201064434794431263025538996877974009512932100611037832928701605458800426894727591118569906093051738632111179311715999582900429587263956368264615601311435764380705845516813348002798125872134389863235851041358068720524754323677197332104137792103469632488292208373978024872195873575387286974604458828543670118113231870958998166595514918221110586321086134216432993081128752972988396283212620180461459826724834981028713303052859939964168981664509394935150514422769316390477604272928617352985671146241039433387662703925700181918564264183359321513450534507874248175229807220591047928153263258502511950235889035769568256897828888918856538661211768118718913698138632420741089168594176084594187134667254008084894758306741956916197968349256844286167711386825985353212560048417127916180481302841686245275196086905297579348660075287038656306637207625748462400999212907274487234540342501400370250802404543100030038196077056754755143979662197132942284617967386616048645512351205671328333788473247627106881421736872290656821150347580625816443982887964209047334597583127007703426043181414280655997648254989142405293575534519223391893621044193150754400192437931668588251728214244403038050780286849331228639245514224014725728831919241553985931148630940954905871135138698403840608140018859357036206663528948269078285372781792397693210062649572906495080299838631955131692763959212205277082966761509047353921353302303968677522089194665449322337421369708863377026247767440297462852019656315833500921306347466624262856882420461204981825385396675726092066908225629161249612061966315069224585236860083835167843474951721670522682392215987928747583826913807003710469947531670381114485073042496796466174668904148660310922681179560101549321972151954377770358353110445586857649492109011097665028716127914018234633374738965447506317334798176765114487796626859419979842512608363996998344412986442105999153765329978678203617781994350909418190467811783924413330829191684255326319414629242389616887316600864048479660183884389171037387854401655164575378054087800753348956040701622845067103952621555676599229405103324568817628896171355629295231212482673259399011868685208061837083256461278772595484094883481937706252823748522675225095817249021384615136154987940560829198246429597762535073203898268046848754102842537454684897838482120351486528175825442188461318171386540872880623993576148976803288778518761851623122664818071754815655176562132073381364452150077335978999921567872389268964045270507229845972835455878075205368626960357864432588273318083356216351056315644432462687966003541618285935451007707068206992159832557045692849211379360763298339074048475776163909514758564597254859983149682293472806860133811053434577015259109589042170085367299050180534893980597208562180600944899305366400777503729971847399725357565826215210738909512339890872666727537988356483408314251051112921157628187106306778857661488046919864569363809458881172135947175884879620986077043269454873532532606082898697206272592650661701454606465888612171930607827641158050622545564770035441498033159891087757721255224677342035017327064028548172677362559245190677894536990238395539794120740745666036103566458200253433429205716844594401793003490192367114095721860066053171275606761398335365314565633985389046201013089162103899986574423590316594253549533915885418217561375017140881350183923199683533067705959124504028667021259481647499093320781866713873344614236547653080564589107633053417916738955501657270585610432971471144855104260967286998022598169187481960725025756662967037496223410756665585691198489521532799634094824919938055948276685737063557210591617962095407354174445444683437542742369245171377565586517546863997433982240533400677166899797835164904821997380158331033063447290036222367895129846111946841967216923915211040654630879492302246410522153884330113709916431623755411656572375862542736401351687928251823367929608574368507973770565613103614130337084822355583058105435282922795299057776265724870100804882387263592801764214319698270005300852318575993044583467491640749747955096491918363541083350500072374735655217118876820545590154568294596581010357746155798564460076415717311523182356094986151779641619787013217376015548209874227980223135075132514031985318685214510498146542767074722672902092922726225079766824991498248612368549001404850298436872096874557299519651642699833557653238493011176782854792033035491778396893684946019801277566649992450652445965779809175496939183639814442566738113344991826375448588531060299102076376333907518398774601808570106199540809738910674095759805312878549433003398230358442914599668505224774525275205092686174921592809981841059911079990679764255259257999248737628250528066051640187339110492546958808643310663166982085733073552761254142147111980104858183351283287896897731563044427485039377071971195639951298715520357601183612276560302619148529366309971443205872190443368321149527468615105777507252707862823786335586516609916607994206223145344245902022127960060910629936927082525970396850907703841204373928000109005376879700504606802779544975925113551495696942179294750614317317764079864452824303996273821658427584657105686085371124849639320808098117977435873425393638245993110193825134656404802415142995105760526894500887272734942385735303831342921307550823877205285968900515856616286409089721777606191232259014792709525325636303021082843855551172282766183906650000868912388882034735432669098174881665084952961443051486173614789734982915838772461605784480036065795340889004504755794679641499937525251028789080126185798976190250266422842167662376523501340496468947796929833938282081591775903656474412198668240942545121015629318778906824680525216333627844030357035309390547338813169289694985618448524916065218767663106150069137459986892810423703324996170657468800792938572492940765809454674651682188197426875390486578807289794797658397801163949430831828182212413916245252484334044904033621998254788872761884207847079035647196018901734258316134808074774343835474227090920991482551172101748671072878119766031623523377546402618352435331132293588959380375369851076968634657889171928864230461986140136686253157675743061880926776314352541783977650749579812536883986170452917861261958618179295875388205595403296637285668265721622226253968708880693133283287704156103653660264669073538847773106839338939788455460078237029718338848988418980827090355072478368597107714338089144069011669581269602935489375503418337309549333602955587234994215015429353914292213681333297480287073406294668357787064271931832559196782374098804300825125768473630929487713339676397286301982776562785586435441473065453755178892078053975624311529146085039840887191178860897898672196350089357235867058880498998260057688204929265751601152525033646129723832587778749322897271671435439289885941257659769341061257331537276597228418890049003722881302659144754825829873084231002393764097277618980835106173291588672765905860716397577056625058534933897858228167920321205161966355205855286871596795232614291450060647372223443777012307295716596702304901544033373192826626967304825790909317753590233332739752791369556668138651110356354508846359468417431634741020737975636151722286799574043560886005839043563174710481165429809276110399507129983449119807080862745088752753807331022853488806556207856964720149184644285963142515758624310907288007047447627428382607999958825631642151924340346410977789479003351621255357015319320023154210406632947444278381892649341836360124890454652706617373293620478859131442356402214933172363528886033090233175023770905330535815610706174925896759922135862176077137892815914026316443146205552440177302159953728772111362516128158666468824104342100563721077297973370707833553513495307227312055809051916452956306606443039818047740031513358261165705147627169449025794760811485337065925525822136181838676640245796940940701696052404344309400304607673172471425569153499143299113903156444803328998695198766493073226617460646091687597520854665867852247954532474412531493655947821223045042461422994119132314999487026774339594392369505626973692146024698013230752668012616210588537619144914455289703827661305485973042376043330194875717009850674065152794506990711942744147615743910853291511175107747946122639897392840412094016950988783934494247266924550605067470220685997222628092741164727856225380788372090745043094295172180243138635886909699404063392568015126676966813037347245322874288682214822909939831820082778564702982973756281558363620629247729997246759462692089357615549760752853267428297923308047675962959239455632043018008033144445988396804191412789175809907763362499132505759709510529792921127322420075942942478797939491547441986944329977201932272152769892802960191602708754401537282983875037891242542413680668622427940762941635616895076848886490167351694534194046736415927723457508962144231246831133684440974710658937755275975823230520305505795412626173014667933414872797165478567717486674297959449439651238195948773488970380681162544230163890576654108728710560521398173754677761236708319807239294460041154429352760524159834083300369985790663713220194155499901554064699270391885675579107467100382729789235737762117401929656176366989419593739749728542736028291636739388519893904786133782256655847453401891283888638290245819484445745134456104149278680771277258985080613919039046221325759131068036213687324573114301104133279270428883091522520327788377446687248013332230828675641469703687116789224119508703042534120863071220640737189733689913328128109243051726501086378020223830090482873982044596849168184802012533661049413666185626336481224876529264917720633212197865785561699576797712808318017910608828973264236947251811239239991841113586703749222390164082164622967253633051894104324311727039375168444882715649476145704729769528768573395748166004428446087148195233874984196498040993166427164026115582496495031997543548642448813203171005675148500372203620179657832214942902530889768737665672993000079510985046455751584761764153050430977063369628401117570448470750275852045939284918380544288660619080294808188961838429210725082704754361705966496482467982819734809134835291902622493955682819847957382884575996723677351103977641895637167334865523259077879786715462209349526014433037503619217381566967568978492739515439757092664998394898844668382139914002311366368856734297961738298621687193730370793241865775840005539715650284925045586943909863447474525281930053295775445878036313530730213363315974797259707976669733140913054284700281380254777086616608008520656145098300122022311930252507533565467646923429970608193395890387759459978029225165006568201211548459025246292892383526002953488341256519554557706694708584987045817524022378196913431431250641505697315780144879379226726046401630117254436610957428599899633478554319181910279021728043091874665614114828245386659756964594866725285646312206686293875045432896207428303284345164667176614299987304579371646798155376356191834250566553942162078644433648073586035749378634955250016998261343321655166134539128008037726835976343164246863988553142811334828349750977309741067682553109326369930184155004006170218794964283851586841418322243535263561915798581096793391400247658622307707945777303447482844434385084320292278046246645050828967166658810456597111363007687033606308432348777777494173293344991682159489803847679541404038564276938272162236418392238846720612880112672230568002781793071036376193107963539079083217733474326990631047910592972666238855718281958039381373455528935832162579965141845341670668354024548574719697665853425388180753366335154473517288531808814207153574157425218254870250686728983974239068322731265433797733635973467734764346309224205571297985490166180402237182540631066050742234880874996634095778116533026419398710286416162470674086771412950403428321297381315626229566609778959383914362814591668365735748847036836155233513715610098012444147242945912724677254882584675630583518720840599379382330018899769071158686825717172145369372536545864763807096394873856125920175788345346363155381219221862218599950950901006740840455076056225647645959314339936521728331694174167064683780606025492439529171392664460638848973829396393234911268932345132477732650802679899465071338751783491566580993768092063162049444189582420143241741775679480560778992732546473607714640672712157886901445949680577197211884330341634344226821384319013686686411079369719875346865516133068324179588938783971392495953423911251683393499978277184027292667222750501103799371904278542581733717424123620066153286165156671420985891312338877461107580184389627931873024553544605517576939537081469753486972445042097134133949189044248317794398186525127189119125763853822815282591945470198245230103717532937599696937613093976046270039080469190510170002454488119356931749788196104653668469355451410027515528091969589910230264628141648094922601988203203671001633589667963054827664948690721126603369957067361107302759091697339434699086792815711228146569194591690783998588718804464024104058094273255490996078616816196837442563774685502480905353103786164506738940065172487326304576544428808293381307912278251380246910610291811455040502280278241947294564786419264604324494849233898748511279119525651261678485410082867533032395759724237463791642775310204713286984712522922272754575977543519824061830465843143099630788833139019993482344736876599570342631912644749387568974681917433759252141628135611452724061669795972616252815877965208468568015436533455619833367543699459176666146711365039009833584813567401127865448549419043608911117599490724291217360641366445999543352825550992457311980066324562405238523321447447418588695432128227879304580261180672003675263675108365346208790356339386056212325844339048455591638215576865302642919805548589461357970065447559471473053744872344016941021309980547269408409664415185458718521138383276569833507606720063571374553682843854429375707411645589857630423159260624386869722382716848165115652337957913694576650830814694704642736468599216759081942309811646313901041028784495464041916467947331020847639214425775018898672812604808456374514753970296260399503060855458786724245396897730243303113915480763051809673458824142211664965278144331274434172219807051920719483710249355991295498966612288700349577733608983105229673945449732682662112599888943413539885974739710745189226716400242625052400538820740978685777539754773418354240746682838497656601830611441466067703051624284005340542002306967526779286300589438037823938105878976478763454748590038056619560451336894628681804868326726862620568962756172621607972176738171485737886835123650448347021331502165847384872310545622917406999460042920912794098468148006047480480000094294055048986318595651375421046264192689313640047848045052832562971129685800939258378766324914834664174304458202433106326074596045517337116036295602390868169650105226366315463378123617263925049046754513820308171628249634415424970908172338465383097732139546334655996612908592028679647633074420637133690375412295995117758548931047526735283093638199531664662587849592520320502800898257094671199736350435573188519421020907437227956480195576620651991176169140040063485897717014757913262382396590262508454090829110819817487754891701445857004217467937071003212721520084499704138390853266858414793357438895052887917288928548469943872967720975279197621231677132018494207341415434031492400133609931067069083232605701644657025122502917212135865969803386229653813755257959981622401638209900515407799370741661462604938816990667831472734407038752297862705700633838988743317581864401986706016688741378823898815182737321086130344946232700285035111685173990602261668103450682389793487387533874436116135953676237944205176869112551130436325995704648424824833607645100493842557008068080272878521722498823189144231355988763123194134925175251321557234729878258906359996977437393012284158133998457686117808942276583567365033944617551250698586868322946480229737656930334402228187160068264023326524392826421845196024004236481836885621633371065597297253184584606104418648012588348600150582524784444756169092745712072131192118944254810972700225362469910974061480749875105518295002599111173895256985638463361387145296730402739356287545900883874048941166640307657124815462790055630022414392978259885892676715207775891927774372666079592621018101622483563534570031722435012397432755481731380750139365104770457801191032494023369401403439916027796497984507113695078631430234848908245250281465582913691152944000795101387279301120553525990460205242041050311907007729059674488259042175460391520071579908099523005831445617557933758461669767666244922805218276862216180577130314117494693166369886790068794137143777258386501512201977716956252012167234233887857221032448703421055426967775531100397267465120607778300252347326316500705894478941381947971724527858314550892089425298593742847024725753444341950015058735405062108726281459105262331407014373909884351545821880942652627333374341116708930743741412772409666772131513507259106047983153494260576093441329144815236238619949398971264938994650327385983584742995554187914023951204994414147380251570320370857864193406707744926661367436225566092899114964156167401752992270349947096094170022971260352173122550051955871994856729215952196238746202775905199012931958635298521927314479519854434735500236450520106327156505139278856482381463173416094092608379525562541335386792121038861899968128624980621024637230801258992779192638954826446598795675228185320173800510687753584482528048433230752564259296991630126829525761202508804308527262862903203167688067407156756282964184243020486952107915428153102267261242829925366853573109133913297812179774858068191473498514834877989149934318265255328249526813764264600023727928486390847546390937957403849545166252844356916463114625683615621589908886362131710479150803446750630656120964359857091655616484917826198719434631577291385821366847951522959753890908284494567659402476428960230059476730496061261346282802219681222804829606062122797427219242376764086537781947558746594717414454046158918176389578046817303706502962544074842430515560811741714473753131773189646923860775059321879887805830966207428132086377196394739803435537381765697267385151975632576715138955371584647866927175206879526303763290318302596415150199639355486638005464402030258290602208996508192315010766920864715260856300779141180631138399775338077143971631090826484228719601535419899308928203132407033879885685247973329764770071161744690225646501190669562719853330206597525270468876908408911378075320488891514770712365022116952596848354992345078205014385201577316355419995372060822081722885284887039901065830389106134897381760574687792173199679996171034015894381874778620501700969523853904600957955885236151742230613234055469331116290083151756524262644137621580251653643347291075057891969262891625902577531361236822543893020201816462795313205859991913616275622585828798165508447064112421990525374441284441155036736039048563545558885146129967189533897540371582426166622541589511143867922027951018354414090870463268122956445599297642645367689524520634542722145745896613183937387716016429710427412814265686693904874184263352181171730004868802027623342753127436320527334203676600915620306703576154104644368821912916873316321297335879091994384540025904080352878188165091395002881488451911496284685675436580424642396633323296456769391293070670210842905143417079734989886351617305910974458980914681983250873833607674881025685041866685431862332274612237421440616923026840513816447893155722362165666104365859672304953200203221138980475906599505457996218149781558878216498970739975216804590346402694590034119074826782590322138383861954095564440616813156108167385672869871722740312784852011157775710043351269833764422974356792328274944159478728660233061853245899616706388047329858185857306926633425055688207895888444877464049782708779822692127801245547572708741066080268757058599979058847553569643809757447706787180394590060907716180481910376932767025821637924607886502552940626965511438856246829774731076968321205517786962659602638103155349027377151110987957556067121422274726013737573243874425779366216857342106396744638491175112368953324067573603067965958736687681394574489303369488188649471241555207533472420979239953237752208017002242070042944195014203583755799952327992049006512884290435653612900260010978079170786377404447696986229502323827665419882624239181934618000725596856393809563269925946689353693098205584554093073408246085470564566782882815240467449247374787666825196320803818633182965325361337124727607025007752710229515208128116839014806069634339209531918124426837667222609257105425583437422747401555164544840619737580863127601903677367249453285482138661828865539828112428651997695555501590210188483610952753268070059789674637643562946169924842929655095641871131828016075007904411183195709136921057819437841090419423869109417434733666868141124394372349122627652493460009100721173162934686562914552752709798678518251841778208736808209010162148446294147750603624998760296130473581577399331846455769866274702664017683480789420641875782270243848681450274872246239439705029224957147162238771925432875496995340705047416267964380197407270866350186098219519213722990287378542471356046607178268305666838186118916048828790378284038330270618906946174604501157760560988679583416039712143424826098051136324309226779869650829700588867228246904511173931589988987212052865305718843467798033907608957804828775369255829589859648352991018941484803970633656732469180845377590818919436930992969719788695986080437408587623602741707915981897280831412856423981053855811950384213149750841960267241769104859683217843422726131840940486749632815354196403188810777601269184214710861893735404792349625777681179543433745682975314120684362631405379274119544430224122088911304281542700969923775408560450861633070676338202617573796377819438423514252855069313115148981495428268807578330871683287922684186836036918201519580184709311640082659518488553143831525924164038020025526259173251093622080254808339709387523224168973255034928282376537193721498405353247789737989990917781453302374637901975791039280447425353562619629257727694271797763734321431910809665666270909457857700896684147673498733853201024839907333816054643987684868332697380301874006510642871142426512385498031258643715913853345242053789470977170466000221596118747447676738743906514093004684046460921083422037831285488623349690943181504674799354976074106226278536146939849094359791127409436436236694321837222993798802143676287877605862348765151419552141431455864567239282383140296045166142174309933514061518972097184484022021465754952466507372095028682064481271018757308982008434480834661120565588390309127401467434660833282216722344978459067010740183923751472529504060130536797834646116826558050427166086397961303465479711644422956055341510004208368854204440442171928589846313152781287988121350418802338884354161083369757574458080516529597533353804412186011297011474327377256719149195369861322270981046143300027582048187050703085111930311627610000276107524959526237406870447433455175190749396700971326188514200198071279217903057398563396522181290697567746464546939463429295490767465109342195315087272162009478897025545813179256555447907544108272450390058055522855628209770015520953162920269625166892441270383641478549184823229016048184797602258208149651672023818775250249226093127754377908782334911944417695061044675540174345204306881277005411937785519782335462659326144086268000171087543530463947550963897895620999098500030776919233376875600676861805221931630665963693811658251664454196709493222825438413363665129554998327147520986037356060436506022310779574935778164066912542495704583430701231688704680912941351373382096567217208301082163765233512070639716042531829805126983291300089909134869901016393587865160743463424911934669918429626852693881395583672699296652335104425166010198936303151632293297553697403274164485431159121228401401142298288764725226813567326613086871466596122649312770116531801841226087680956202635087773986282579307883922298868249058345217907275796706257499815228876497362669306650792443350699374089106753292015651322224099488917101083795777891069968193165823635401453875548590428641225345369238400807587827708557910330422839395389387588402588817712939187671376002932366466935646971150947919287593190258842144579367239420171430962294802169504945036510649912088549835545143646056466647251135932486552662185118014956220251077530832412065502403733239798408476090059682246552917406214865834161205001957381350729820606192072742682563671130984067631320474004023058218589424241011769818378285338675371358791978002010346032514305746510346836759409995096597110465356421530675794047753504261816440655205181152935964293021132260703466902233560109140023554657325610614730684370951946933753335084709704230964935430569542468361891713939630883424696767243841247843347657793740528201868742645474794696133896654012439138543521437079346834118492471410374971188168103376288292729916023886704593620385420779184603930481029644896708927821620254916304241817997843486544804961675292740237164494803132420409432346800892165680948708751463721987203099520694344155103649994412268127751631241370109100247301615719596649517963027532068543305355704562192973322817485165476558089118919453045099149766289787056251304853529042506642376444293441842130269586877447297953165539778871445175141667653796970064933625424321435572521932106477314125874816748158987184258181285167555509898914129709544130160463915493443913791168983158280306972191163753752170040030848732133796643339318372980736276374335491323709825639847932505743024044902970655876136226325741899307228124308259617617548889525771473447863156012490919345286054375905417624777427660506924709490148899222667254688983863997068845815423411691124150424764501296672649623601786314457878920099899228257651699215180620210349818340460901847802140814193263075476657829783246688961000634773329301049420511489109471372224823658656502033979119332224644460734935433789346835744450425157754666932929037262219560683776139655461099334811008650177087870147083369518085923631706724297913890643331854318385370831805228232675094753781452108575637962943321680457705574481246048559466946272442964772019149014799895519397264421704698761713280687616524205458168768448626543810393130522124410086902831243652678490071643147898335594161222804229012263345832306315081882984377484247694322407379725725298623310058810809827446151253603629468129631445406966467540536241386195343060395466953203483342336508168959600572051264386660340255974449761827590823722988424653859405126417572669947027275099689649955918265887573426840017540443405322376188110824938461899011718932330453451387056424448669412528157460875344483736433118050231706150142429290001737371202213213711005170450726460232227787960015268013873442446784481864069424452782650711380776909001555601319855750236253626879544098245558901493746979800736249195231372783527300184037885708559682958078968551095591326164975842803309334871430230602532622259384593100562497575457474883037057720910511341889917484025985320680876184297805436859571996581511821681378286441648511434845957937778386222291888891569955941566308134428619906258813554101314883829465451832846666005181443423367550381911316513577891218673361128506530993691332868382993724837918317213624382037022133671221389072258859695214291229145142920898738948750671782873906769214638005051386278981381065577125510903241081764579320771818857515213179235531241548611982152144732302197250973961369319105283234003294757273794169252152465941803039099622833147287708746990076940973660395543091348764536649351954349834901011896834601564520927589426778492158183219543989822305506266752747743374600568771739796331683110357434806068056656216104049400948717054136033433654840114733144631301485638424048384894314897209584093554778246374853043944869147471123453855139929396027069196456690379510944353302552858861812012452537095034783014098502261793264642954683582269526774212837588097496643977202635534526393902767239226620636149426624324957284241337070965860256634822381884764865122218857139389189999318910237809362447008972982325257296572874333470264162684467295116983025496861617694527392834422615669455042003508210571342696360105505599916605312372667278346113205201240032062300499077537616688378354585939736714611421512149285359066414226760834063430236117392148257494399486741688525911075423002599981096259861168150015711909931712563661032537676546190864430648759922866131646034773051413738797185557261398803922204894252722445813542330515278749718723784440248211196356586036972024955761093046403271260813943903512679423889115054131609976220990261924914281312029737462326567065272266859194396652895467734105214930450643036895118414184517859558006957170117895627537649570084312239874630393476762776261576745340255440506603091195466109421367637799045563005606914834749668765865252694077466239747434087035208051860137674280327527752425354454800912647166631819852587307233478999520466263155978150187326043917715166216879843842838063790308101630551599852982004834633456240451229478587290674892134626867586433566122973006811333309497784250810208554407852240829001142254615541321778922497263987535589341666103297157355655461162914436481947256187578115253817105819969000783116440144697385548393369888419211926433947947019617691246919639047364768243925224518131359683666786958312531147980729818728211574753411702853336858489508298126505359393061407570885914541243090768114482357357924694475467406364876804744911167496932166481870624151051712804893574648158640738125106062921798660605762918564173329989021989683661491151616933792101619114622411542541722940025588049701394180555583044449051154640572220472171571454239453457801867595890141660062499506105259443958819501817366245458190450605829210025702563441678498150767090557251295446256127650798527127116903334744249561857480563433049866172812908980045748246373021940652258126434766209411885322683174939443636251477680909946810315563397127116945782188287460313305931158634177229624519972681280089158063797288155386645690740390201472127839171240235136276807057185505997673746169616905027690628178678268408408417496647669640449686470902331015190803575001188880897303933452614504337737776909199470650960408781193893594783971886610089859731706162651456359383653551898989958538240983930796947597421502569711543477796977188015881791962832269483794273002529888343455639898542461320320609936399182853870343789179159374978533815494111140596172392460266471849979618617288394702393039689158951965417826560420083762325323950523101800329748633539349767986636652440455555040794310857058161034671089756307060001577541904519462239974596428204541614404987779574517224074059943043930687863506922410684563230452900842186897200863137842945732912155298732456357633551149928813996615297825060202012244598091875093185879687983171992769212589801992431679699036734781151547515746367934592976353186937516613157930987954901853338126488862062603428282341525327718493183167159874006587280108108824897931486870606843215247470629072786818458520765697060195286110894075670519298101509893485948774680995919061612824817917465070367060845193873673349651469686527660716276951485330636431333555220210561387047349396450055936844306918371890924833528117648449801231716523464198756427262035195933964539274689545127905889935124194970790477695179014787723897617822676835096109809136223934948493804053511935912370189785609104163925585513015150240793200772412764455723454821401187552661796639697519943517024464935468109525930048053521487466300629921284420222105032275950681197452018510225375888314939803417165693659269321940677929439621785790361168323453403948231266062813644636801481911733420200211877083402235687461619340368575783188838955869093236111291897218002042654739905854150156305881710584489503154587918542624272669534976285088793437354264026341678361166278643405446821696956722346201644002423004826457066558156173954330904256533999790707265333645213517390508379074952871110203404515359623705511240739296039737974461674932881960909615847047600166527144566275690449858150741529655542662029244313603165608028811861277385889584087002807347922135783877549611277166454089793302262348585524834365411017877562301445017611134168958266979493535398667678300392977923611743374843893564741147079059392802612994865793472980262476557278679470696350929104478567732489074005767215906887034309100456670572769414188162316623764258733807107861374618598467725338859879813316983864245087392620622700730461898914069896623391141258689652745167763834738545985950368317254560678504652151982951311939281202197047662423992865038543208577494157315071295393826709190705940174439182411850448144143599769049351765087162336944304109156062537553346276801800587957388309325396342108819573876126176583840220628849901583542032451436815216681641103007922472664947060810986668388003269739870358001814468015143740960072420446777671263827507387853516396470049745114834520895358593623551461011986983946752513991077511262149933727192655910067396669311009621505509265545515218428718079737798914233475167795213458528995756898799408599886300686521501548988989367514893227947449856171370446989241443604772524805089174510630813450722681915813966825725569029138333362554687222161148452319865640891509719302989125789990582410656830584771423497821377873950247154952484336004125687429459551026470607616870432389656270271710836960349760861400348698101828441447103073252063115595942292783994574524316071377726406723878384309138334999699710719182417613117645017801897362857969152515360479434678032392128311771435158045604929482668821826606961717730366318612135801094136631235392713010468384821381815347329303737479307569662003303687442655952626768305202300417174224040108476042306576813411587613222981500764251295091268720363906185293854212665362621398677014779872300851411706497864692240290049141935567765536390729100836864935260513624779728215931388790829871678947334023670087608761946603248985237874058382176690752350104871702725592294152377354650884662551700982646205791187287915192067307228812170845291765589248492019924199239040508449816244912700903518980439770302787811766418634841187007780816209653518988960831675515287052261395856674324058707201360867049350988467223994776449897126033398783250830525644416033829491508190021130840502811224513860927434079425851595665134482543034252821585362613143270006161287595573870887717725708653001654458247079973359769617540307411054600569568582636558568482469559017879161517628987648278756347873535695146130238157448002963866394528745542436929964131371747333616976566458188076181522149912419202667881828897693418169689481304161583845664245446138548865007217013820427856906591446769801468344300296007628344838556883371954087788366666389335659508975980058819469093024926786517934967400913297211674246659474439219513383715653851938647387254176865204258786339359549772001903647603670436505341711557420276254786909019504385618636756299530325491728909085083328547423995290191067383009656178745011864938913411464828029532138923154300064765683203920271999189080367437703749491999115111899954479816258545502964582464791329671259074413037614330455322097301678425791554825028187093591530112321890926460115703530879962862640925632950347835804065969115054018650886125982697666315215866094794379691507454920041941773900550544836932623434348609898144626769939504424990959841779700330731187287091894137430402827724868236733618464565643049018784725997477757512171051958518109212937270712494793459160763790752752035140730336017103565740426664414661854383930751113190784210250793245939271018801896085151834187384130903297891007527409740088075618895310045621178766859588028646497727275584638341536793287310567936361911304057961738416729494958797807004742581651214625627925101742970393636891995256097469867443690353637458376090084851628456104222255856923207065905434473241023056757382670369513615967835589317829965270545761921641508697500837912066810951518863319130620637263708889897752607723800283328919064639653442562440654079008510892510578401319382987238799554003677038252433369083559706710948951183742243207533443390422728662742389846020042600526030932215836951921658978540846076810620937751714688710733060403345581784623259676181921709314310088957600702800908362888704359602468203594803997728490406054217719922634001924439646546809749461401330149969210740157065565923288461908293146538459453585025252658793951749336360177124442436622840545156307927979577473449614346583179514325566478656490753745204634169377834198059307447621496968175779204455706699190130537999192205839071083417662417278277021073642201647602498245173452702363501381384759045170635097220917890504356771311108079464060179857336163016011040178883118048595090988227100876020195712012171054301005388835304174975973568215161849684309645544585541294319681895380923688428451819586280455685560417426614687575433973979722410423933904561773196545936885157126507327426907403746868220481600241305981838557999315793937633992400054205695346855327526440893206967157481476232569643103976115437461771031620664255827338583411569907167423015075175513635070648258321046705203050605800076770991168221876754780855813460118717250151312295131965971730687654817140726967713190415656390228574749173256948263864383893798649929422280400921797335350383020891024754035477780780583565500145025113930137243471006453544742436942490343254302415129874696482081732995574288587904226645413856500849071673584715208944348813097740357949948643664526622950057175029542424493019749514095526377278976474619721843156624943254639379835093427820234646123451871229201716402108936732353243285894649711234113342405328174759608198012134274563745307379185201163695377780269139793254616971563098751459104725038286932863437411811743271097053229491985394129298961774172344064352022052683995239646389258044308267142799827888538865046791290278289924239094869241118476709674333449614403060843286051077033840730537764889404012543903408157322665533642278469513395890776054172063500568609235224664897803486797472362333919259275713601158332212826597371751766736271411231028050929616675775091862875163621376862437429039649456146623727623978921912909354802092867925485135673406164591654018169893590882611451810365691724575218935803373410504904142112967155399226318683144576652641372276893665377090624066084168981339897227126069654273590221902471192570103748502153513206112257353720111858469900503320111133264131417109338302424424418969921212760992541943455748438301885458319635105312895923383187284487504349949622774716976213245929001378519314279584086633307090712673360925966745720461899477938395762400427029121279438267666565072528986185245425209952226099255409412550991610965805684614190996538584891286389522234870689967290780871409616858962753462678875066056146077521906669477204962014067831811463281163600761835144222137380011978269105840854430620240035164324681403200090433587293853035996441659102494944252574722242483399352206047148054099393081950834981629524335938020771490089085563535696100896703613070963864784493523743784425847562846019880924373074671943965491845637452720499467821734950116723130317207445889600393342179326149454671645642331923044292286793845945067808701314043480096732057401305295945528345321931782007549263299542398463200090401771586595984975526201638818187003340903383659067116588160430471231585472604318237544487597662148722591974670037971258664327583743879800200323312126011743432672983661346419282416373443572591276408254396336315093266311309440514635830044072658627151901280983942047243873059427885300085541661420414803402748869186360088078530213530781121595577945925942565402973809915055398473182145338386977280879990229498790088262851979782331108135841095050352687336502047325004624755619162899394234064343068670083236997681731063052262970791387129722182874982535065976899545679810761710976774593346015660736257867911820278934439858735190574087277078008523046852245758561377687374650215561425989398328178443527978816658073723606542452720173120454450533168627087880181557546323125834992878435949975881552799980486170860507753607350463817879873894068653519581375540440852011629563056496425976116422999674601195955235699205757536253200251005782865120730573885921397417174458626220670648358126790374753847634229212432921024541052185043291264042829510587663741472784933965394676136524624265788415160731380190132180079175581112550256669422968867862012887597978420210807396186090261890018011026446073080905609583139017945574708414385750610602505701638609763157291327569086928540725275848966980787219275658839969755148952371524079148242238530225328596730459947797584375901822055799488499142621186365002835280583662937418703117831104959035523742933662503427006008146395506156874916523254369165262546952822145268059129210985981262054793212138549222097660611123991298043860613082725167523060432461559068274142139666646506054906411280980440137292108536193925160840363586910382505000892378250306531402146108605089946049722203701101150877879341107456245632042697508909609461526361356517009584956789158430513953046777028451726216406412193618971504256742035866631074887959057909970549167699500560986619264255089219452495194678037779975537011351706986466214760997882787170108202819845676539645102349058162287086352674386243818127883975755283550108424497139000217094130602877842521022528879968859708597065903348480472259576131657261400913835914721774397658688189312771561724123312732370777023988729395927929349464437497680878881361146619445393559973298050493119691159981667970337415599720941909490038410650456951490258283741262432918440094028714128542339966086853083346744014700068399531815047919528914914370605967040243531972753109197309802867915495323810659471272905089789232394784414306478919445461482057208666399464059949017753638242435044041574342840255137914921121001020649932083566171100511941627054587926264654090467979028598533476289342691925901746570080613975149063264252637348568755121112540654537440140829759795227599237272869571831941132991564246719742291072232043086741973244176441893915396193869607968906317440421417933519421817952474056100578841146362717156609411477501436014192653663108245964887963415509281429314980101592087864097832991913511453488326832651153512964739045847004101828997777135004816143389727118504637162879493973830900336115349944600567864518257772976348753170849322371211484198998592773492844881418738170881203561817859771395840437446715601702480418326284337916856323312984674850296959995114813637047141085311715158515223825844630264728594597462098653084679500633697169732206424206126340232503868304460057378764564834931035927896839432903497395851289603104640855049787044074850074951746081051180098071592744108106776046630414029259815068213097966643149863010629282085781963113685316987808734019920746917907337953096787796369135221976223643810049241662202304805004073848555875840579075020657348976247382715769905467892238186129355621009201057675826969805431227568556319744684084260069127502871224555691348831130164658270224113522022003807948601362958268658485563492079536552325038935710799940740921456024554601572956082940931667490979869017489065154909404663931851110893901137240825793479146079781379910628214045694946904645388307604404943330461771625299127927637616755664125389434048789411978719739469856838086717643907380849538018956193457812432972471365217033669868980261756712944721225297237293460271729958479152591285293083269262583466601261665021625567580638938750645182203795947550138486762004519225451520175057583158878771007685095093733358907676360063819574501130301125509388224372583261574486110437853048717082090972777642693600386211500456776283500343806260251707158279999994781341862755090363444881052270397885389194763183408745067482119329231548776576419001720873297487870994156998970576230809418627755836801573735496367388060209644850132818821510871887988254672700079701580983671927387865948027210528939620022213141445018937778084860834703820809516568200139649856241827490705672252448625525659043677223857364607941247489684103402456645466702630333385475125221762095008368896079538577523713100262455195166339466446661280660116992265642905496152763819392177388160803447105265442342822106722147667083038264777774607059148769851213310669328504823142372979971737376296153833658182701804003690663640505147155591986922376552187662941327911531706797218758216035435552420920034311628530369763065442997047696522817365649739986967837204560604309808078529794339745723885058451456627058615696151783435791825632436326323157820236736608742822180566644122136139392538277379841003781556676904824997996145557892086579971827263870480225262871847448665292882357995313326832828489834025114351507932981440611373193554532322636366427409907442542369427549141046009709583382373325112804107005809779585575236868192091328398677715585626013388771155242529813154995034262670860432995202583050363256248494825100955021869188898478236571766753997485919116298914572013381215791182562742103854914561056519581533498905333005669809894337098007408078972903204262936146829779127638679950768417234614065774775737225723971494591823205844923647841757108447708754726382069949894971076068163642528391609217047349432463656346992996516897184961999546961050015796416840224147148540826330240190766489101986520039103754889670702291948630437086183631234729547320424400919245291538961298986066301542968619541454987800620858657464484505945356269725026990055857931634219610900254677771065409184233215957338624238327616837541359085021564866463956698538552296268983911635934140316847289449782417822694003709948600447121118261117114255412867407951044773093574243991508438902130219115455338031958775510434564048806334514843399037586708812372726080419828798924537225383207763150011463730934353633159383126913828536587856834770741007921417197670548588073915387585854969479404306722218121497260460881787000623276366978600158569206786684622889301532768723936311696990977636286723422195810103858056908898174646752616504921203348711194742157745339072523465421831337169103792014293700146787252048137956260671836698733201295802938307360494807897436138814596670693391528368253401296764698272942072048957838699174943307743082324265435237032185034754977690810345127843786332494405470316939016674663232592411051548429851079097234335426574401376541610576219839819978471043365362209840603834583459549256151407462614008190288304256335219549855109593211440422107655333276489630605370732497942074192372019273197779620022504736238166701457926615752938075568241541075882503264750671777719177724900294610801569062570686792032860899862441940284674150967886127906501670130783580643245403855864141673742317256225860928688887353511705135059648972883208629442294958716806363009863203672151505679528133864232012685178991148779168931569806914976796427500713910160457921695986666327508801209371465862499119145385358170270255467305856895292783279244944542402442238255357905691697199896849169098618526934048900022064799972929210100261144008736587868519093182644331150289091548436734219564961010847054618341735077286244264688874106031509533518109832788278204336927234829277092843958392134685962862489336557853888700349093932758816302811585339822486563558198881241850756885233128177481457640327190269573770608605677227730774918579673051504322369653888740175872197947428812652036788005193373199563435377054679217711675870656903100880539216469369516742117749809677766832261260749987817496728222305775599184703715163262237913707895611349434971040972207698983031036528685043984469237848461538068179098967950111018859962110781115422342239411539405210732088424239138312352580271909071287120335046895596096822483866526967741625490831926307014237373646335309640264680503537525324717271425637070055467105473213136606757373217225281277035589836862041815020536345031835049251734464499583123281070449178816703073944148885655248747142698396906619787749310928835225099218968208128766250275624264314698647182993365858080377167238156230794298714728490408156481665948896498565974439742000413553485399690894910100870816946099508708911038659091712876832230265399781551211731363858406103551784901568598087309929186270334576613640910154172827383092074513355640712098326211253236537798869435799635205446429014333727740913651495540437067045687552322895320885231806599548909750190761227454586290088525751988328398114412205082535468706048790155798967974767562237497290771750249876327212971674437502309151586857319089611724137217084249315787074296608322502339223143202088024018241190706017045642145980869325463324053909430476838023549826712161668432884486546845187623667201923938260298999853631916202519410154293552681623959783179482481227863701763647525371343825846669216574402133714879678445658014181845135068153839502991384999152830895773472516559491672722026308486915293260312998585107711367166449164051258082548113533126833128548899992528951464895784487326894206085397146209453583629785328033394010488261921994009234460524113411255497838813566846761018574505712578601829378523618092439945450318350733878712334597769978077244900067306103559102691766835798748541603448944770839251552909713679219661449704695530174922807753897726893060885608081369425347969090538723419471576915867490282867597354310834445088616968669305045447651667326864535585784406139173914407549198912862958895814556102363962724755839170046940046068778370122422755744120825645353936050136623422036872377909757657368654760887437133409242309251536608637595721735793586712952458123677558587402844377899279744671523872576827947269516402628646925022691737801876168815007425984499496331271562384776630998973086001780460778380329659772554767559208764223343667757471512087562742479263454094241959749736566438309948281980516404227484414452478868455672482612304606012294009650910764072860473602545498514390581310782084709034829448899373558110096040081229210003444771467335641971003675995086347136730765503215983074433812881160634953506921946943795724625130815210021251903302484965874861392780801287352825241657845071227007480548681777388550413156415219320529028262089019222753656318379946530683904944857161538095339635662366478140059402170350433620862243282011364786854343300704739638396212938143317227840916129189686883371308301565538979384586435851766616353556368916130181710070359083904727167470280773961280258265213176883280134353720273759255549083320876940511525964782552310187114475012155801116730355445224077439188574549035907183470658103426712221320541340900119382678397442083177601286012572042224500529504300379385867557670542338831795224506891411278144232294162827152446570183304582127117603682240049261949066511842174072171497263453591486334170464495348732023499127437906762217448385557161376319751690631742829524419176044544829675137100576146405505804257256309400793259540847522892790918062522301432161351778543498904197685025384662845969087980513475202305533212155496726983457234950616672150632637758163843399890090123770672785741283380381445443189134682102186660487918637974600104522783808031499386810521731427589410814561133984685727686105216865726965205158914572427582966387278061797479363394567314604462954959314143005887427210774902495089853060667328566590597302115470157648125514355112885300076205139576611070835414020639193072291623178616323499449541467669728726934417402847150406206547620055104273488239570627081201556028856091363471210482961068821203839888397698588031208435579064256053727791791238582780308597041586510452475917742226560005213514919787916650862410533684598996585614838549510409237074740054757631353542693925609786050960176249201693765359775223015142332271827630337627326124918210825123972079483345748841558746027552502748571625793827499844335951019681186330895752461902384838036826566126949788079766392529177529615124931251016981180970747431526527623662982544904408604793232619558745918984602100905766657058715584551238615453927623881948636149847014666316563739066077934647620380272642146026139989208047992302478530816797315691043389842704579565489652012471181240133440284398549452216381936723654427847053333762161065876250930063932803676120957720546135542543157391748832469694879129677588483936739003368672532914304830462665466274384448475124950361123834172250494672546019395036158388537881460497283960767636177161180055383951500949632102207546599871309768049686501532633741866434689082933277482048093274156357699511894669676182290459113138853534029500030941563837316402992084868404576863318797747094510884689742672622945711095065130251133714707397179752573184110549140612849689508919881711761375011932218467923756421822156956101768489031718010370972350680207284867991053613469980207027847600299994502400405876635636190622023475500667123803084120559408459994620023967050590097031907681966659939663826327384774175315383964382159526508158461388822451066155951911052635683000702674485892025796317666813839908297209175524483008389462938981910568850212851156099697554744455723170111781664488183136336550583407230066729017309477800981814437602964027245707360615588934175625548115665097735700493813905791741874993417216175467726845388308732157494559514017561502862488424179183862565085781638795661243389788285552793111452651918353208986983550716637287202644582993798157567407759307410887911455404936189431010187434702590460996490471088014117794689423351940220521954731196269298647441355215680023010991004542192290310786016725123327433107527417570714799552948020034988250862429844421343411020566368034738585046787335700777526662545547839745054321059078530147594031688767892743461977291405956948989981254642866087490052781861143575927783014145814454553551458297585630285885224580304979757736085608980803468166791748630056676603726697622099117630298770523152496348071084276186376918671189420788551196079753874229722754980403780970281492248710918586119350307696556596290967770010035260635389009691000381790069520811168692148318586281982491727466505344359780761387860906195100404185394287917394186605372312185458631612667178665970196223565242064030507666395584136580840751627436568351524764917650329223028262662618286800416636173197940203386714967303451397798399757138622864528352003234519418600092418264944540077052225766172892192062084394500436977386066896857876056635710464643025306497826111054188890774912685203755526245528238273185158438962222738881015941314337315065894804582462821092728667270089210192253278156600852989223771913321642013943777972608064413263919597767578944961879062550678756488551714640512809408679210202957192775449162089897389384757816645570270043401229149880619000499362108161837436979553191593374455386151798131807547316852531304019970637399641633686915333429991667805078001816940539691090327184960152804692220576710375028542401326266616402464944738017721942695948167469186938847645684036837770246079755797139950526572922641657210423632320675907997308921410125083898709114527817994450951559674430328558705992377874822259542466619878016286346663815789603357781668976090008008124282992928858242139092408983494322118476049809264558792529424933599105761056670558473630623414240063546447204274633911948526054310214281705443230894498618030121376926296044258986122728021685430537128734672470218189864734160914077969676373032921104581110375883119336612076191100494393916918517766503950591850225761385656553328536339558911329921772718636192897790417213112727419545842964088005871249583098173230860797489185613394841465553278168995094655664292678533567920437519129167808147883573556990280800485414125504402878913434165401194590728158539013545520503255379726491976460076942834859686043643892719711416615827446401853420423166111243941428631640200723333006196855180715360721731533061550957676908169165462517287724921528784122986316735155141048881067956652149283260832840988808902128213760476672299073891148273545319325386964246983447558861276264995661188049420846874854801345369146518024610227709115333248202650223131087283848011376973798592584820126260108586470593431548478020530513822041393246996639554501091354791077243928890787963047343902822767097354571652229745223671448333710266653396177956314540630259077869329335570969913477469289490957214361082077847661728931443857646820185978971088102531117204665421652369994969296392159831701199130329145245187017318041080874429952034532111065748935983852902766517119786608948895610308786717582988756174077961026569959398913922269777083513951779955137039634219488196409497106412346577129039727896629922668618740434535517547709244324549451937523470441620978060211718467384794031915907414138611969741498583492527301863125097505198370172491237221902280462818216976247912230923260925832620896576310571290333773426412980911959796120546881004150336461427622297313167869925936256592544458730012259060678593950164021212151700219188598465970758624412151486607794134945065213383253174947929393830751279631166459766703318842972307067980321620524202177895463681819643504915970970375152804484503834814097763998190017821573535721075547091346944473883467490774339234372550720310044580172906099167569146275678269874513685791950085914395110101676964679082205417054443752432990222929653734757881536510732061804195877504206736388122056153656504480046136887441867894590151019211439064261679465908006192044422957628609843536143753397031278105243482026446442152261661794017664377628627938671126855882731731151978677653425531380185138145493387053690697201504675379972494357321979659921495972055528961221973786237504217909277641603757844614748080650235507926770318624179007098491884203824561379637622661617647513890420022708708766934126187060194962528652620766353879568386140571269085286421182267417875014263435981281692071957787378203827530730331871059603059122328176584289002549772404014616650616937022467226066171297990049978340856942582180932980323166972111571187831253767724724745220011776424986017314561917950254960196269147407043931071598543721878505626134992437393726719866243023448471724003865840839862901059525787967814487016975540653206573593518123032072037085517616793920308970566615985341864191900356448898981761686355315471755941760175915588531197508451836719474354017278538209771577144552798674608073067337812924206255179217981211493670510160008918919537943267667108715731294461494019008350201519704546279311781396360584761233832512647195594813666306053238631351680327101238967893858492009720241241868303141805328294285556406815901726894904645588733329310301633091303228741083817176356726268053113682796013285471476217291280333528665197140116842571082030066714861091184490212573609374453315732063218001203519168218376437814796342311302752576313089604227337653132466101554426317410403774827692797805519166803339076185514130442317205397797321299151904105920806102923938619276910969009514068377852260733591419688457665091161420845669981454472892121380044109066565529891519589357686547430132593854217193163000133114692626029559850902347723492202633434557964528623950895046946444509465679194852585844080702446601348155232674470332964020569640095715498093252573274438230649559364060182548664640432897629310592531186783518571289043392975344974286151605248061984722798097072569715434216374083778076815280835504332753648939561383782379287723886535351539926588625953339036268507879345843428615672895049648490169194313609340375357948140251656527518790366820679691660556541643081302558962888630390182892599277676777818700537112878377185379742015156043284549811543390301093615349975827311620265616385169739903296340589879241891433180890117854686567855068146548191977279023609507769447925632931592293435359094148818701865759703293787967257178520047847238506425936315619023252509346834128769318467642915868471388561743187960533811972592144521153199325701174269677755543151970913359427733195389827621293793080712268479775578064460791895246903755747316847327828704767165419228374028104979810695251422864247667949515527512751665437217159370356251914758722755495294109786894352823673839611382302995110467026575403051397727249263461988994148174724931562971383565150862473822106934721803839548584781101952552349852101870980586372762665928976654725285997845664462139732677432881409859907080144050016455983747764926521530530596829066729448740559925420904376650756391291864945032545670384016517302208662319387663085552572243951762826967424431356551812744591595273757303723562624928429479906654909306657178717847633637939609051436147677788930525068483407535697655312336459312390373550759527365292017772887117633884999866107676250939076058386969921415135070517734618485076102323916338677447708590664221123477513575947064471725446217742990846573286642163062122013113186823215358810826812439044495720298554921039448172209357290860357760792356016371957035645219478490667847634833137819868298172567304154102045373056850199032059502450728242350043467744062235287912467648020284742087996758370874234829895001656202124168022343984437820836137872051207213589743230013866767490352555502981180348856274406608525648326355290092669140176480919025088422930146835774733077557962915210050835993772051443211645844230415074622185064839324443231379063813698926511902122043094744660050142497357570774394684140480113179306387752185171764144522359330184643932032062310551917020275397478801474033049625896525143155798073512189744202057059586536853585777486117120744508822450397748497705497589403483452537912522646625850148826330315524049245888865746226621826065453236864316993837926366505437527443966227146099185428833307837304355298888008501820929295753894301196165437949342154504050899112860194541450400296001955187824817112111535249502142531880076582562919765869348029583171078176508819171041369229856383550511222220989300291704344704736362923599150234978914186036786970281826566767686241721787443582095895720691941805182486742617192355713318448034378551464102369768663956326504272892267298882236191112656687110307455114839310007574857610110761215156087178484400215181892679419756271593635112308303885533056853838791054274132022344042301216528031613779071780710778907231120862286125043983784875075357463055767947060320335960677028542140647183711922269564702605406717541194857907215150346746801585992671734032104070642604563874871774999749026811548447225849467937686868632814105027705802890509700410073468275550447014859099619280027821367631379325456195334268506077826993097379499356519637095211988538650551657613188289099482979877088285745302658359488998476314114422242560252850935669609207317395381381341892705260068329829195402419488827052512222547607087601374157336263466808756533194905216677389999210820620629730780208613046345058187141985944760167176713988301507563497903822726829443959670498109040092802007942883145550938024278804432217481700826778036786854872815805964492432502175433137431264409049103532336576709284982874755429727997157550079514980073724944356854821975745426528380650486738243382180255992076646695141607092075349125223558815383688035142530961600016894391621144018386850899640972260601517716741034724351186173511981000358895481438081007226871547641785964534827982201014618559395911433536058024448453329842403515827749993803265042794396387419912846713281243163575325946887744420507907233824557272121120541144198967618333036629230512146708703832534162070403158206537299123138385099258219696772336246990981437181172813962406045452997888376601004034253864633230273231343298115897176400515038105606422595080948184556126391156872994985780115686014645433040714612211246615563040901535789763308840726558195968584465564880336903553357682570733847044862948622602651458602101946049877782249741399997619865998577346275994012057372364083846112539744149586265253497138192636328599758473345628262187310601045790259486512172546641979032017426809108896477964147771136565001175003005649074907454877513221497401546846018581301783224203165533753849082156084907497518604112080526732050901146341668928059214617383347269657333634432888416529114209258141350301649680656862283222217856928354723596377891743836279076104296879571280862322691006504196386889434420998876341819935163750992144809525340302756114348818008717539454014536852152696454053413457579203487856294041672707023323800881257111248352275793519972446091718293891583782979634985298394666850484526572229772422135315056026809888318986962977806262195154790464299002504225016521707234497225521326900097054352026253715041786814070799255743255319915237866544829684205029920625884385540399794136085504096005412806905232065368229974943461297367666511516408909537037484074127283395624878579077990364796716798670514701989502459151136929876767985888023701902912401218575550978681742306226165126078544263249225365193485485288900400730812805391090933383404110174294674287383477232858437593085551467985843583980190439832327417952577587412765262890288673749324345302404838130458238458521776768313783233055699067155291766243573000598433035311958833317579143509207754004033031342789074994175327968947786379630366730539010740665940719214654043269502520404178145570251999166982918368600768362891525331445696038744321414550862151881058860164744953536510593619391269174407258154026831970029276310355771863011955631279591738266871864531161454133284057417634979851687367509171701428358372280990012608658054508407426753747462520523062069645730477010339953759586029650232114521694935895053678277660493760638557506399033218397504947271973205055895519649915899441061855602145968498011608501212683846385931232260876494167212481775680507532553559876799027020468775488737890773600449462256889102988202976438584180837625545363708756832250115608574679487990750239823632260381476468183948812586447986481179900964918901424993238578197573999172889859950523461307333611701068168952559076068780114036862553969106119785846727333711233285169900385208794288565079128478169329566835500342934605596953746032272762168231042947479618747959657057911874933834888173004878530936038968500296527706912159338154794078025839381641857015947887091535743187812945318046154372968101144557782246876483927835109993776709707951286482933109319010693947321225687499540681849741374722200096220446508584752808573540582666304315550323318174247730266799373764104517703786918696582795231702492420638816742091138230434354518487415330071583856058195119425248605208806897466094306062924219401590926749520052771261269197992337767855953156121782557994681504032053879855375601012437547597756240609317293479144495699257538674906231991513451968062912733955071618068152607298214326043945157043213022794587122625486682632063147085240421693057845643008088790400989747938358216895048093263505615480088633856956916320157081035391349934772675608441083882510047744666955596246084140534265657769043048880776614758843360757825617082338495367634480256618084182513010598439312055787824635893018714496496131379164095213336553660160323880062298261243717938006272714346898059915764648888268487005102102206740547139633171287887009053717103423466039419519988181226243192501780808984499093677326987374227837432209411099088659616378508556330848912032794589127677376213342283064175979770115158804722563211706195975611663651618344235481062211863649939256216110779317145533363115343375038905808160636392656901338495161698186007339063911772083290919259137451462160674443218547780370818757249010169082245076788529245112107045730022847345437938421108252926718454604525106564409122764011507144538932896263598032431843529533468716415295947085393598821571390852101413207935997870359699772870514784924467763661574680237552858427439090657558703990018527191817347899322253289444662131213143548216378184018580923717379828429835700320747137796863027246062491882778938056435440137902099146484167077546754439483754057673719838453676360894963994640305408601215332448966063709790410468299129013574680181527351645396243820698903553531474817490645452401102728338064089845608573118877713309775869637544957669556376822130118693459281357191102802197340415083618880769424040780097998719731733685161113996730610654389048570079156227627596622950036484368176411814317539993005152002213783836183441983977039894444958859891146445870337069357487781854472387317042296187613802525008174219304382176473687359839059354565714407378918507470798978729098491150781350628402822532771891427004317108698916861344976354003569746481438949019321461014662324837896934212124593154291979481478175232779069348928028902159650672737995318567067026385814335931764972917119184254998605112829009244602481106490351343527884182590248301732495712398703606234769352137998012569826640120442215482768595031820409616387741545059106710230385932299136603117456099067056443351167767483110264827386828264541137305248130253418864688410293446942172613909786989758216555487129848534520979415380679342756164603853277566717268914099288031960164527231257318996957757892984133135289869394042140569192583853623250880571105484538639643210045613305422546459894451609888523922339889580724700146442039067665111136812039027120788942560462789906026685104554926283494856705615382199321026357770487253054350407332321585362380011029196642507343881735621239773515638300886845001500982489041263155827706437173812764721792505561779630023503457523730310922140628028026201210338073426340971694433739648342962547384740720154613573516429595456668155749706589395659080916244266775627235093436022849080071985975629326594410396604692250487535577786392208414174235244810664483791534512053687848528346657998528205708523439568175147539272315973410539036043200735410221271847555700813736311119293106324105266901208142738535011791423296605662906867818785405120556120123157893828749542495477514166519357713916838919960307751349644488298096396718944564013611611136991699916463960785252301445161007503086641648233547308755681896165989877556285961051052979442694190137848658275530668039094356333363697224540416171949930924801590694251093694878979765505962722906552443788753872000905597939878173017750338878666145011421040568910524370602233594192027691611428428359335704176966376020891211039087050689695093205361006262866477466626605304376538442061086754213128692454347333085931638225015583391071591609305372957710655010074523067128449177533144917740909365027304452486530020806783490112471166531840044848952287776879746571942719915259785675824406209268537917189694537127784162443019448717503724057167879558619306583195358207996987053188702706673638869884611980302465309777875359771838460862540323537815590933141389397817164111076603828077524359630644220943359903211394524834267981845412540787149624107762963205591007307881689545473120874262393101991720042639514549107540033407527072008832777421191295567707087354233323726190551062125523035273029734777490138511346935984998013077848682149712356293025871417809117915699497492758942392017276512047197594446644727988336110653203300671906055761863046756823400456780589388217275020489334820449171739734032737058770951406678865415438498109748140056703814222051647766399390002338114335434652069374526534781614452595877934729402851747832262210850868464271711688699205910314048035950772935255735998263984330112139101442642100231602574670258868240240086037586425222731951937331697761709158831864253229863018042461597020735456695752768433740907873731164135665641066803838383327387920522334580462942081855322591286956301218241524942012586759801580928212368602855072863410102960358843025258040761685973776860547018213675945328806986852556326909713332875907322325715085589026619637908780248299508815804630345105930341125997914382539429093114155951456913581566178244797064638850812668194521881299138873794651252619618421382804632049399006034221479032683902984505182904938733030369403656897708982179305801773527625699564578617114748849265977992687609506242026832976014964106773884497662403831933646697885677440892546255402416894451486717383697058916250766114558279146543098174629533128112643682736942020330963361291903966979559796378611248236502947250412582927304089121729039480902221027505495730527398178403340107546706682368725396846955440541070654731249560114299435489865359135149135527785783481159344078932756625166538815959534554640067011323634885533508656239439083414700759271462059488800559595018712440365535533397137201048545266781876670076915238713863859519467877050856090181589935269177099554690323176174228058440145710883268928327105729777715904057221701649817278537253178559744005108390385999797440920351726755051759782851173193753226671986464305059410694730447769335631561613645112669253031380555557228930366842204103721768018301764900828754061128981189441543510748921521086810350449371628103028406977181435918260337716559292041890977621516323871710205904845161944101517500984747460291700722159681126774970207115683129992442985843663132043987841214011768137512942452389833457284296363646833778685835891291160445859936466978833533810463318558645050465748348311006400413097571609860963786625163711182574068040919599279529312127460169684209387126396707988384641258184546757649472980474302770671145271568572765184318717645239885559959424683539444026966416447455231175887983381826817023764293748560793432130610588902171027005282518610037614970834368972093647565689511331151571831318427759343704565456714808001541884844603518289459121599614151534369721548905081397424033949116999155087633021403181591945996662588676803219561909398005811149490393511947754645195835318626833374465519949165531366549530763938896543116057118429693946965997650592945447131410272888337228431928405731641309714491146723452196831134608550979821115795235926572507472626320144527848942775955332015604868052838014677853572652023850309198727085650548632397582393382941482162338004736300741125930793380515524108781945787192370833825441902049023660170436008925585975903393681610821137617778512788080944610843167449785786434679151829485979800209695306704877555076977921924263016509440835241058908805639335525918870187439276267266330846522782412185782409006350949327715955721221594010506032833630796132880571101899085021471475324807750320915011686722604352554218245576147133259832533176406164170444206707803654932285692657000115365943960119666147782972954967329981524436164868571868291453381156979940217410922518059890150072541613233919168299288381919073881777025021199956016737048318441781161994141781438297042664145888543394102259622755934740286349397459986873445086899430430704932737577637247687279285680752194799121382430889920613237025904067826942589954967625275102846753002297360943311279933205420928251796468464657786332415329722508966788692580520061711764325363364051176714448653105910631896250157512781964437476877617555517086607031010073188436695495349414356645638391455727854717035932656342116269678110567170009710335604255278582913792163376552809865620305298455394562798852561648082973538268651203359185639552544419700218586790229096447760075827412599171938672351950689608408939273467948248127762167247182120109100542020503669912604395438486963299959724757214784031869333192943555770542849958665104565279909236689602989733658938446713055634365159327468738100695759395004605511166486512774998773784692922429022581409954345331174481408990996778098761438139822908848870960228419664581638943021691920517964068977681030264438197581209621088988925592952142727024621143200566634655866886913748010319259886042922845711787556359388969830667626186483091949826766209669705311411463296613485455992047276056466908412347556408042845167635002868108304597696760554593500916386034219504054293700083803972931794857085900794928744353577666006203634933873830744113395998605457021016391967804755806401178347968361987558353869716152327530498295114694049219213221724936698448864610788191013576131511713487421215011580214068887903332167460170831209791346768078416604322814090834575853108548242822761794772236398296361710530871677390515151421355791648735679498627790191838500959499426470327152501684483764622562370567326560709141275744083108007786251581611033551358059418581475376768646278160666692229799289660988334883407341270881975935451150412520518547938254156729139756668373569154995666842327606646333672348176179051837732019565144630009725258004148313585331602462858102212222382430329527732493239626345270550829052296239536042612477549430819166227316758560248009651296842011797129808005299365139573861419651156350718292921379962115253294444146041973686685500121890877705628235561105804893469055296824025696384403134375992000494020371098504696028188534890456814076751376125442759764504693174073222906595161345694186076472450574005653963861864511862681732443080768112064563180114695105473936510438910123693285690103855374226537663170788994128327912829283620786104345395367592026955370653435049681472052345540859348057124130086447801191019048562803471626277415227902262036018932703363453896438695747874725224204239108736206528036494191051459426127230098717207276041050276775832655231792839464524728681158602009878756101134733390447555229159272614712462378577202522531415900422968768231677641672250853276597985330265378147385707769825544010547341051623223779945730619221785736684331886676804011606133356895185795784603577341324757817900772730322249960489462477738443152441788421734708837876776849623203831522803066915616838212377859147299775490836177069595463981296833880030490201922861910293065974750407794734232997869058348961583585781742066523015622995512079069284830610139936894146246467487911735484173050630697197929972193617352689241490159827428848317237616156366884531592824478202587658440895568309421665353055516225153430747824221194976483798603290230733541485798173152468456793514715622980370508302548507374060593479614554148778014120917786564792644938527281288483737753014824337194440833518118636390854354880505918826322043431207815370697984461702424551890109382277050569087458264314224883473091471480968974812669454329917135424082183510716268510092958740017680367757648186551649188700612500552066457223931291609998687120256764816635285048608709554203100998933018165882490909075312973573100059791436051206136519291217645454911651393075839243544950010330836602716147306124446930364689229362092050088740018495449149663394271099550276621969379329276150594422798863328258628847709788276879595496796949655313101052365022902310742306282382883418497792916503627566085982638639751918832305321122271576518298256748442485432618525543080233754568666419031874816656607409267733509144176102778483663200519455089908171945550585624631342163038313943759480478371659956287420166173900547739028399535978526969220261587556660061821259858522673906261380918860701172363323341296103118732822409369329855912431954204162466304809012911350410493263690747208540236690195086010238239372119901215352107477746664069726866050832797952234945449084375249183767849748543325196202685720689388894330190369825647124462333559867931068952839743911654617904222238570247200981886942175975069810152561057446863108530748768892951966662449624683719729274233347022400997377513291375438641559289681628862955433061066051764983143167823512093006480598376194927005310377720739083181745666278663651832121962768625174446126704020477038421310389410040503253890614582711620900573800171562022884977466827478538811999595685182362478606455602195649705588877903485630415536183910936225662381784972684729559715527753536934139968477372784211461985457161776872030507271643835820536922186258376667660343677334596627693646245731891357421503962307605029124419524242040271893484435163682237629611208593687187642516481300228046536296204871536569810365669177537063211971100640958233282875697911025074815901293047737164180032649290662473695042589725351657397481154061611473516247975946810581380122105812272878116829331358273025503093718373322302254113031958828265606195094581737357915606534278806861873110177119597025384146462359351516684705077323637234660750836223226740090438585393682993121882892795748398877122239667357411741618698184210636474369419884191525556052894775511560721681501667823214571632621909196106244147227352568176184709345625563859066057344846832013132447209584066999336114264608068578494222647008908672969504651194565772894517881887932531244460773944191682977715504492669328207781580283114340468897725323767746147306459379362426392898548694343443816454220897238129767269458684970145709826940458819363920782505134625919107233516265338640573363569311504820589276215745548317490331585580031688257988080581319541609963441685855293344288700296547300049228071063482963236203241409180554378986693059088961189193638134366184136382739303669306228379424684366688457767521423584147270163729739406880495638681624668678781553301920316175092152062706394548216072598807843662363539683956651746427268775202863455684328703839831952047536838630112343682760988938840070100400274300534188373589010039244447541060762301129869624781450819414922497398705183152564758377934692018095201524658368087102214761595135938107206942740427194443878239084143503167540112739765432374080994609604384571419003386062344845624198054918371325524566503214218215979333138317343603667359890738723057710240516936299157224100023997100814741738705371975180423688715182690993397950673060805181599514112721445605102642733670170306816807626731142925470490268921665840959041520928097439580078744184250427351277711542883103909733258534448079633306211868161481644511978276908825199801369818153539313303980182085950104176810005895288093720459282911404512710138165455288349122855965125186354898056853240431549850108453673920886293334170009279251698445938620734121221315166150401426443201783716711173781433941733226896702260912378236316628257901734391782553895878180948018024235257269880204078569041093053051832819978681243040839638522387471444548624502320744830503837579179489991784064946558255765830009633837517703839326250199577031970773873491735478873110520506092273028566906466106153823808608409620129663127779982034335111528626663497968993833594566167248566029629307009267931213062072576615323502129175337708218862066121097907304811773644912464160300045279868310407771075582322854395212658723645929892236899241367351432262985431311876082929234350955055917670231936471676323330905854990178537426883073244523692517793783286709053307212024783022050656687990317913355978659521937654200866150361106079630615386506745386657482176217492815753824626655342683009316818755096934999112976572891917981872929652114508108643308789709931725404558186298046706481199933966320536865624516930262351286522852851089594372764940433835735670846778502358905469188285695704112232146042587513867685554848438347839079897588145596895457209863584725522856955809539252342748463917053669979755285860510430872275799387874106582983583064670181141152459850836057428379072867580485411925674849415379704277933906811700348477301955931224749563101828130778633010548971209820319253226286611392122566594737017003897823092117134690764519862046631480785270021203467379781946245189549499055343299167504042660397793050599844576949923663725144905284618473797867946330071226683627761469060381548763576145265369896046638338026653424602143820209991960164283600131013293238376151498731323755152290470468819230121971395591027635356294824206559093371491317101155850003186406739060696157880883683628522991849165694920703673441008655445784680657840288971785284777290555437383015128109304889885160133919690336441999989124670597567039865546627409900468157947963035984168636532461578693994432965252782272743996290768268084097037910912142621827122645230148661969438581728105514248704409983713682053033582013413186675242492564418881425919489648649297288849745047670667115032572389829482071226732433084900554396998976622963031051235627815932860693455171242875642992861897453732263720025522938062112811494256115301062279512439122933999542199306327917687737289221727191377693396985033295940262638995575861083033551495839685820191074017898209201841136274462208118181087809114582771679716820256001429093665142237664309417022154436755007861773338846449319274536485780079386510071952159506228691777319035462081494714493291905276046090718766545947496232765907236362949235097694595804775254327668391704389529884190325139975398070920011053635715972103695928751452534036869432743275560987280290202196393473972477626450658147415813563179241834455659140968192797813688599714341991114953363256099026536431127656380089550044940883068640793519433466513159176781159574693855708617680531736324377231219846736973910220292108377456250669883779390461292853770500800079149189973972090646142566288308963411794823431420487269432662874736406803931041531411113763912470924438082354975915120576290821042847692196167900860896170880095674748290057603290101864128655686923726206053030854051883157109672335542972919284829893722274150357480685153495538517566756093742431245098338130281357831579125702622932699210928914358572025038447055052545871969354905934576406650827658278735730470670696295024487480446054316090763459945932821973580807859080399071137587162742718099267001058272948504122836064727351956177844094589186581524851879554791074100966752182376111744501979177820988520154143780083950173175313106784223556662705603916021788077753702582539910097833612606903000864593009578406995225016507490698218858403867278180863199555972200146180595454690301355678149205361573077771318239549234827659510809248991081177591084800674686180780667083734021964660630742987566593028858319505859651999592726773480781393202918088064109501147413732823345217112011737686752722736954490934784338800152846734664974868460548237740670755992147152611983490359263885816518313341957327931327799079929983581944258103306412599984789725829020345011485574998026839478689532669534270906458879691331207221101833075980040726982318999590514948522468013718942605674379377544086593923314701156759971476277458089666429356846896382050998083733948778198462553715328174125254674034573840580195588849095160999496697344794118421938434045148360616012130768189455480891748877747449014779994752860225042728769166742599271349114374164943457857803647188998993378513107392975294193055590816495929603128911944968392864888227104194044814654695198739103174161963377223590434558901982360695632712732958021894300673267030627225107977361668877999061021457257689175081258615320634002276711338626322313629977965738142425685187094975702166433666799503209743247210608923215502798717323306481916962614733669356243116366455075153819901458046277938427040888189379531024725982988013944617556971834870612163232159860253024360775833545255018558868723928648761159070096037497302476650609850640584566395395506154897378095426387019530340295421862077053265108535407867997700032976841311161300719281936287154538626004313234020316265192407042997019111158090840279611907178735024397384361281263305896945218560374536323037211432726511396016903871630629419520786208957932944172049811557013286294372731880802453426628473397407850854853293040316483286602491634171628076308704319672222793220744806487740852935630566275007723199151332839159472039971266853843492884236124964392566123640211912221260310888830087349301328602843394455233346742686876749585066310961057079305076583561337826185875344004528524326776755839564832728116284882752846515195754021593751284105677470526589617760349843936294336822096528711572496245057295981106993396633222361554296269749556540283595734859433213146920585277947840853348343974260555095113790341391964551643422093295534490856673236918425963911420869842994579478320983755032528039267531892781539704348733570755167049465525056842408080798849573505784618419653037647516288543982026429115171001191769744492205955254112708706646028589024498386919694495081066399338717267972220861670365300993818440670202455129594360619434050338868358224053669812762421751506295602269704374458593550982287160731061631610837507748774129943141839995691726694286106855006822208712774843372261082295635963247612735488462826289049031845351798760032588682144486028739695793470014837373476320239699171402999702786608005638613224685973070951867418131083048558895596263432504848015795812876006194516872573040930700715224133636415139339467077061407491807153213056943516103439601103219097363600323165104724789874375958595555074964368766474123636317784646064213427950335061870918359432437241409085877359597703131142796789405479478960064269321699507783390205504568489133606388720023746363901525860274618756748434150938408431088969652340028103824133961618894618535797039875433788970280611710830953445390622236055245193408819458271507341387584924575419259933745856753535724189765314626872382968499294412922858061855407485480665355821208637280559636109874735719604739077325801597290308539070578921597879082576501000577937124529188935023246074930659816294339795260085583000238929644825485728076762707898879399368680161140661619358443449434467568636698471428447329381313940040039759022939239550327100217601744281265480735665624677651861222162515860405339761511527096428294244385110915470106270710547442960467111082787089929111471232006948324775920543156583956565675286206498785044907133026239303474277786735144968033050628620385004149136976049600054511080269318378911359423960262934960940170753740049907616873050910384488423713112258797080021036182444778033158741228359594686354763763816873585250022801436179376650421031715040913789818387329222531483152185486733030074108675645617016046662157384632239632476859070186904944631189355374456893014892461822721775432005456881520141224518126049764097901175365773623238133354948144827343824653419802850191616277151095644522706087576562050510752096717618810970354142708984350878309698923084929061706218922194281573406989296798284721648249786360794159983792860843394026614817368823261647741045164832265014738992856302330439659251236427880211485009540651233279771741027652773110957356605647730180875605580681529478108648176883022348242019296715954128131571923671884598793587527164575455489944283912485586588131200871117665307655373128140821334766803719847091560447705618453020423811074176480183384196753173978206725571826430239283150946786056886973367505132461169058235883825037704782080514177214642608561608182720586088301132060072305635252441831860311952075668367867219496770468055171520590309003373664269463776598873623894998639456218524551232058495901449541985016072576196174469609999539840851173307863721865930105856530097212512449316675673578034247010923071294135617136070979999646430507388028145399545116841351793453514647523420081309881545390952252355047268782113676005609047529823489803213655564913846438693605682318034969546650535037583821107850707848357118207026572920186941748666972267404086023339407638475857604756693852112539883599271954237496379686437738482484000919305038643904418174426555372098312410656597932075024555138936944530303610182138060023015502813337171243721545447290816706019780338246424406590776680280577013722062833230776521512305402598482585166651380426512695846025042754110451761004256883304137891826826018631731224032960851412588626684506196773689217498330867159841914822404948930779835600206121737994054380211543022445893609275198482092977929419628594457098286444706110029100083096970871934190555556749623866218236566869462056444466581024537174213530990079373250099784790616949774196220537262294956202652719679311010813706106229347210418815035918438774595286706356875255376649745718369586080583324285561186040175744393682950941946233695459409527290775181965462890179367399133081003199568759032793546550370801050160803753629236767507889492676407047254267581965397012273381368712552782278836426454109257041477412494316052696248729744465773224957087706845759663311651901898134199638070815750420331337701775927377169955965936386079225632044121181920124454844973934291866273737055368821029548001409209351010699024736102209534931714152753896683487627523251572940753240659222536003675800697868435961827046740157279118894741544212873023095056606478225796213412431143138042277599910530424435633203432067810030836030939118221345675744189352766399127427217186207459245387060861858247099229995178737993608319084686628773365134272836347925732776790349929570835464362614467254623077304386084406512659013574037402659760943443664639492780162114458648878407096986718819171815082924865780825721146806670806597908456216469225648457820080534982433416908442792905243009531902165085142217553976618182257321658933344661327270753219816364930948161868887557400434099352745358184664753758153165841679824566580586279420990432883796670656377766378569960151301320872226700301463065314295400510229666496028426816940561834498053540413514118188607054195291395329409825663472191411154556589520343071126165303072342790785103070610120320059418283110879005535649934039136078488807059788530328515359900234471780627330890163445703222019524132277134144115073398741230333145026632099616508660782927178344521299114376429735273892295496953402831031688957613191342252259353580302848938403362959686242533557261611705814038007425397672387389457714651839808564621918146234657016100004067558851363566289361711429775802079878308113442596373265201117476870536371329965023092717467963951157055410933911073229110997998741115667711305803262121893868575085397593821865688378501649152963836064564970064157134646930297143350729349855797713022583321974873731099051447241366284033842709115415866988092287945414280581446721746519755815187058618840247054615212535493884168422563033784662738237237983190776469505936622957322614092878180793335756179005861065615294785706487242116445272975620246300763679439645086915604670248570774687341101621590499233600746498803394163334416765530071440596423914137063297580046124652233117816940599617480971205037158386138101579534921728792647122751874574238930735729729374810857710438979063821646112647776738400194713011640363266228411259226258901665756244972651077648827166668718716260083360427197260901990727897517969271326692625028917603236334615246282066327127829936137959020244273486341618193642380251987838462586759717983586085220744929179252199866737136645032728208624320864923401285268562158317654286009536325910209284146220003754076988952330414275284792912115638164861376825149763184334046740255946695873354526601518486582373919654907793254145276068511020411836942569109140938191049742143987591403086520011799259311387275413937899824655782800816644177369346870046571549113471327476920111788739296812354232352873752509011615604746280984654550215436949041102627030296384246266106683109273599952824993788484723391850152446008607438666600664033741553758170460711442470475660476711101452865251244081677694488134644846150327528912807593273331134261643716412135315449592429017295644114016051868322803044540959933286846190786989136781953441982817892597058057470919366652869534462009019877123399731217394096933174304694963239784836330818062971700603631052820121527876373948644391408155572821884822055048509106249274713853063832442471827556437374895926969794004664268686808287798323974435633407544208266585782568003387970508917414234555848756936346250506984871689323307373173973769773017227191376117588761032302872144360188586877707978253285125283194041404408669893660735643070159066256314172533672537996230552290996579430430456838891470449130542992410659429206473047122254420610581277046435699603134340523355564809950381097441884016898315445043046980658208925116966266895243218088777068291827062589503242220725810065792878925055896134237431396537402303912434765353341227911060524744679003536174866696510160740611671055053800663838676355171699195172024164506222506471391146273374993301800365781849686078092373912335814351771069684147145633080012789523956370511397898474932285635064300575404442818768814216446284242622309415655460159214071737416991994537459317311912344936078579064848963701344282036795487616664616595520029063871923348763908580687625862083357660428364376527402049431562875593756746689282111193357511341097995438583772159546861114549163406376330052592981784936197589377856915753783528623843646742762094296806090813724925370025240295515551970985343948542749972696570771586952836889100305317480910304257735821188571972067715204997559433581235864440029217113411044586941947412771244220328447935451873296697060321995557879454521431187099208667722933875316946560901593447413735816332067970939105118390679098922070184679263166156928463502356937770041069861354205993559652164501525279790049509181017985223156999109103468622284227138672415593417560789223654860033370393586366710820111830452354994085138293002837268352413037845414838103132234581572487015850333079252508308180627398728296712186277337449615626129284642843108279015967694569013976974881597345164615169580954300036177585280125786317410800730251621439257019284861792001801336420218303022523029869575072196260437982785492042192367185718480938409844028788729926140392918381314446230371984599754701834740002604899801608428507404790807401337093891394083796618706271660872019376294277259026213543201419840218341157037373733939619586484855536113198178142645718478286992555521390958137526229648103736088421943668946383614790988682888059392311726152107605447829385088250374817947703214815394368780303107312536286837749158876991045574103406211463667747215416327591371673125295605239840011724484650454106458068529066904595881286964308552430481564946276827698433062487273433403676380273342837328996121664990188361033570006245767730917477989128239033345295797858650457800055109005311627130310120302355031695363303608666296710711361111678284372194204415166545078957560518994677307436266058633589568572210451427283631420977000939249502952800981894442447011091608942456661863622888984894787924495183678229548273659610926757629681761446210649281671609442768032216041009985323704664759954358277846887318429167659202811300997143905327640985443015613133520322224465132780036539273934279570359990067853496322578453375604651746430371791374713743081084471899178744705326583529352868366228117738031780427181203814419924726070473520563852506397998117153590073899495020302664836321593230677205064249972555534882741678545697069712064276592521070303366588768711528941647693890833987098770842822070646439757130710495135229878450819848910079821154472782109225838276228900466392920901820891725164473448716644455654145065166041258846321782853266794337262341886978928339219089955268674009477532666140410988350806293534585617375895400363187526820882605561048935393827614373173549701627802277295264584376922923619097767670385808854509472787896037223204504113166506456734354190365436657834734844797159693941630268799584812339286722515914148544091321383010224297558300079518872400512851979690175637892841063416865294139785423260231033356805423324278372811772726109057794532231348446852609870225462604270800866135002980405808916404589629941076750270880820450606037996608656562935052597023051499192750063956826053474640010496690369237067467430284074009806050872552484742270258101962634361290523859491294385008341898999304543566601349147805542662225519965474985682735651011778104605654692194459045780959573273962628140702653366988830180495279925321149836562311525057496458983323052873817212872395979355046021109455618011045848405185969613225461490135814822197300947062943269196662386839986390292937813683758832769479693449643815004658730255097212654426250395623905545749830730171317128779805777348963386025274941556271561503273983519152010460230867254235855905214084592970917225400072635152297288302976205093632646454243970285893528944454691692436033843545170049462252073514116127436386685712549330756217489936924364760537951613228773233309219204687140521120490685034201507969625222211628347978486565053109397978417519924730654580164461746873901464103147154908941407987955931000715327783077609286387894846428359203729542843611637519233174787665218171386236847238432192670786495341310818070284075201769602592121741058548739462229872914979297915463924155506204523020999132177160372222428428892666355407997101433637479320580907483201469935188017090963932672683474733017640528711383568935772921534204035361782590199610648935354051821475909507613623151398972172935179945335859613240653617850670223543295235779478133761716645554140071300614812554833694086635584433495463170680636801126991661248912079051406273491193979911397073712052499049887194299614182753322603376130746155629151889436253789315424377611294841438833109837685509070035000427496132308845909732665636215968484704866367805761527077935264008979762979544352075279451432310419839459086764389201490140393778440972702596338481364904694619527358180211284376702954962970953677070975594317156246959265063598215016379029492524502540881140556589077795029107423582730160055418276975359152270756893940013062560374803805780137120016730357452316143525266445578485497316845603034563318427420872379512436621137998272494058316022629416857335782479341362504958066359602874270420504269615216157779766646911713804550769321581672866902923094777954792529743310244371606501205114616687782191656246279166729505191258312769463277951481087757759821657296126388128463250820055810706683551673347420574921673614945440551671953384522671660136294434353214885264446764445012880712878715769641257544473353858155796527328381583969855608030451199851972404604973708045913943771035820734792987895665942547510788075877825086181734901051147724109074271165559157449058124570436814574459052754736197865971460828579826240942690532618390225375473373083718518123997079756930925266219526974984706553497722844585159502545910985674361142663814484024414840555055097262158362514506025168089809146407700642192417940259863332529812454399602537654532142665605859104539099871149224607844207629270842632232312198351204469364749236919558079752383554478252320230969447989704526008481043510693292621701161989698332931030549326171240946810539234635082201949010333640857910304463998579263172500740053498371472626268137120368976106313693097747663491343958919710649979922649239943392769604850708919602631864954461682488023493735993359228479830894749017734609531566237329448756443686052151573260721158803765022418212109330259704363495447421275726068073054499968606947463623530442531631412003515798969290597737644365311310398697459798460260895587969995880256525260667015717933236212625282342844407975301648953767381407232548076896313958853793231680956071958543715353694132312232891796512428842258422178481959930845323094798726546596331735484927166244769007315327357291876838160299689453656368750719344484672471348396343404234944162348271398516902774528425534914096037887238379787493521561972983158274793986737837587353290217274954109159931088622662816383525226515311997217256844670116550097264671225542317217271869108593666450381963162735496894851052294987484714966372271145337100645358681529675765932649129528908820152932340393423055293461264557088702652692944687961664157809630091785520106520722192215309315104796495902121165964674523806665615655286801105673007098754940414681925267433260724648927721186946826717891182677286333558000789365034277749796598202753134529259930372729352983479181228310880049649270874425297717459468983299628555015776507031201318163041391016535853695494595542149317973815171900637088207013467797404658669978317262272646265474937982906667933562726510998476736428263240765354763717647021799748141457327875951539125372529194016314944310002542837712475364385754724965910544007445151331792125361140309411102577168421283268322145916592224926115051516978222298439148082071392647054210800297625555207225969352132065847937005741849421931717549396053497526391497680155274124509087711032004532577601659661038326716312470199287826752629957239472266320483492479589251404010050785752632988396500241144355448391601197157503002102553864792202029045179706957874791868084189581723528400497651599033528166832970883326620303795580253966827060907291870334652123515038742177048006342541280061785197662308157696834402446249083592663323601488972817602381512839363380816180479255083028010489357394375119882631963078042368147773134699919177488995290516691852832131966482894428301847778402639021919513715394375057561124806656016171306994516558445631935773155035777319060115364657056830095358874047120482454295142081393278895066118807336343822436833913570121528955248693347140890200142051391637667402562479524791337909091250381857561673871977978465116925656151811891067738054983076394541897620944979337046679571382773866920816310913121152133643002262612087302364164367690599810814362772898766328872148148957216400835346327988448153755173576442906340512526778605735407190854235808034787192597115520975109156967607720330551140467594453166542957608068280417158841616809322187571473143221494223544636616656569779332929096000444987284387775080235407372402974824954773664566067912379743989461173071384049594323524416299466258264402712111610980873341019600901155890860454648150926639504727367572927723511555720538041450299485330235812182352601774429317143592579647266925195476413797975753731060967860671544085881127943339657926442236127739095730613604091705318585568926242377439909017385921778881825767312427529564242377308582449674050009590468303832219579773291750633319601359480770027288946935228200659743990374720006868866011629734851416806272164249155375461458073405199679563817329165848925075877615681230865014259064674813173430609836071786123599031154642555390650431801638880484071438939090821335052484691513919161774123337015610348293064640573938233267777532144626679425939492627000718945741509495354587300809634571085795147286468631980800245185156063738159214900056311497918174018030173977345484755498678530218934462240374677130280952983806499319437667770187161756090239769477899779625235315055952513002836582809635243390930308375178928221616271726625325617153035077531373449427978486478730090117903008039043985827332517258920488516926040973467385079109366871865809588291073151771619577288137402169591854081704032552822472407546008484957011600881964212215828569162108055725365771864535456418908189392198972759048808977192434282054395922302314627524609899704354970106865671167320392110589812105481199131194240721551012830188351826379288949869543509287487697007685185153291691245381451349394847805996217170645871738379733125338125922203760961585543976733692340031734471537929481207877332136159008086115591344092927513390582229652373110607297841482943342000813840743976979061321513743506881547301452086141951025603716466917320297586257582043016409058079244286101025564155050732711131313662025404973185355375607143528905857716309745667169083824151172256897319260319843297076109762497065396569157183085089896183846734721962006291510614427010978776581079175565148043811931783690456282666933684417112315316905899821645402933981055292636631184620675103417273085817429946549487863846549079848754645874708064554236342411596664277671361336658617257794437240509972188904039264332207977753487623222303238336067769112417005344573287009747481979202746146755484552636865141904301504697221396246686544223439357190716017574432926614732769893124263623822415711092079991596654830854562676259718111638672686817654347420483588778559370093899081489107538571895097157544360256019101566410536939316165502181406647639994608429016091006721464000847035773970471380971780293949073800206469424591363006222177745462329024726526733654248563067954255761554129705639229219621175107446753022279932864506532354472240834007473852784860099571295651054974746274503811885950063033911423698175570023995233060392964199914581478713791827645395196325982886829075572934042974608863536762992028181446094705122774875958147024477631629192222653912608940771980670002641203004418461741909744048205023443899939650949115269221894446313802940867737878354075131209158515984274414308749405217421363129220230476441686808990827405647583528065164374848218838422711877737225098547972276128274542305417856584373206092197640996543731390646347634111867552864144474603859560061583850578797448863322329831367729731189965186995891892603018883978151654513919742479040374348662974722767804582907076805221769281578256194431322581772774266253779333861431868032153584908379572899715334970558701391078633048522719323119432397407693151192197515671027428949547011518199878625905370706949542310159744133117021503659875156573523695180358565139307037134632043822809684835225356805135433803708221397207621594034902472790976905450676416496024443876118277535338010677133310007138113254890744408303218694879757848499724945631671506414271862789357548566504246444651392363694187383491837654770430660113251149407984330340133410482422444797001118971837498896189252267695616499331619899169722159579260360907740800217606634814637265286836221890859048155135849292941926758615723330567149025492501840296945004720869459139183493211325658292995335593089645917971446764993614087557776935314019078709080663984212621977548221637065526224900356007963466738211540721613591536139564129261865797812898502260380388949611819334938723511769754545103885005787376158080992477814768959617633625130284989695330956341235300042876712138775298539910833610241407657076636517694424897115760219067172124301719186200111245675058202351965098336662210674298791533629749545140120898019853987238804804140017282409554637645651195187257226780669799688440127848733962979304221942583946817120523721499742267683798515864569078388007275579590335566794299273295733425593040715876913309695452081731494727217510525701442299149811739589205952099145985665998768123969158688547855266734340582828442130851586524330815635532116993917076750980544851343532469986006050707992867420434949217993415991796251600980138106393423966672369399356621454380216776769221516005250929690268746696816924079508025907616636880243823925954686056490306468378686963472046498386110721108693808594260835836482237331046447804104157129169033212512245807369046760580885365380437375593858165651398132106871665118402414586728179412070647581366398082861919090253906392270751216116470615901710865061084185646270067687902825031821077841171725723859439162551534068027162643748183687369171300294317662265851759454886550985468133200455642907228196170336083866389194187768107370478595149457602574226562023131821373849644673463178176821325758539262635859309751200991996102707988221631519552298294856824496799980693240411901978806117129001788552399413808206251886549604449593893628502693098668838868091666665409767831824692687717479392837823152271531074723964744685594281458929374848323240785674209913046332207054077174596432476856734077282091770389927012232485975872261816069678015805816174708136454092487525921947331505787398363465003917382708652525430563009431664413001473080745417867134802616581790000926203405625294282835064479346466639644106455336414314617588610753275513964007484369093050559220903025800340182791069605842916973473586815469207096189312227558894283665128356693086446596589646289408800563549082688454187930532129023138308854698768730174072662120161872111080501088575175596388608298629106376788662197491276281595169767665044395927893113211624940418895102178116939676764495088933180724117999865893063981542424100173854756239736396293226224338059620754079536123018963530806124780771173948725739222967835862934615814138882751959295727599090043018062480304166772828458184614399700486767704716070147354357916589274886387600869169725652091571216585432739874603854047610552315889608520817418239957766756965613832033049418005874808843332194558570567403199837291290521088132152921057531202474236650221825008063104748140105809731291541600202984646122248228741460159872433041826382915938052790017589163784108831233612303663279284852925738721764470716782025785905251217458289122023243818307114580738410151336320254951899052773457587865048374004666549768587138428108644355270890248562987868883715245435873271071445156635071746176165034668367218373596759897753061343681538789273434229146387003077745851658680031756551620474443456862839626725612823863669161360926783313768982973549974407208729910165911455956205751074224174204883894741564218256120357263630799747838442905904305120547727067611135715752136021040056041717288581651158943080251564783132222472972808114362602495451328653377675561577730754693118572331850319699980710332112241929415948186783255380769481611669135910904077262915475619910185043450476998100534488038429238510074499612771908392088962748787547309409313126159591603275389113446340067352479030092318537306869092216656730635805563577883807235867991457173225550281475541913013613443797081368601922989394426092859961294911813568485458351160966091516747087931290442414609139738884124771003449996554975672874897400161425458367934654551924698733666362054224778422620451773158624107041492220732999641198988135381720415956649706391799844326987807090737095055845697431110693313230431852170806376068628674760718999575267313913578182152612880379675550355814087464905845674413098101931909130022112443440183494792753853288850533481039949738436997366802600774893412746829027616806022609486811490278420865962759236870690559002527588088636627727018416806010992683956258795271976354385817539407624675965596074084312632936654579306483169610634380578991621794247768978415592923390424658350870309408842368462402079902894679642638218967974276155799706380390846123924236102499199275825267892039492253873584227353739567894917384210847050332066446284926423073822012277367651839780885251520370946936975269694616549984069972432506130752892500540695753269000798885281438994076968898970222376919204044511150898476090555892450375073898898613918113548754334834704609579247787886425094486013213881297956321973628111848220437804706159907034222784332634599049172766699692736076261752021883467519761329413488756799486711045096923914446600641672539883721628345853902216656240350337205996303345558288132228364588525130406725492688218331016599895117795624052292858633990174967617537342237443294693624999419449115289339055209107927855121677245429569493718490686167452177052508041204492673573424165179156455091674766322045401566517199501983823053511195351588164080246855771250126996889205245954437959356910813755837175728992731302528335960356075491290289899514207378820761208036590671867151337923893508443482544230699148667521276703194332647186261345992442659410763726656374539940124475503935068295199782852430601951126979277906570311456013528708355677027620507529038619682038118541346384640404455875072894661091570613125355108151890646702520262535965399872940397074964516357902372213027915647191368368772727229793957426175001360867815052490885106583460757126811244531762479345617169072734222459270812985688584741406862629734534495372412284474349229069860199827573645843457125330677744071936227854933851463659106800832085816228074861153949018449678208023055918459667579086983637465593019985966190694706558097623030953437878233735640159582010166814627935103130089255341203255370452731891490917900095688777786547374026343665908663181288047891174920410227736479546088040417627954986604656878385643466173634723087387418784224748476289093593595324971269243248054902943900816117465546293244638508753300016769161007395774716171730865292386924492890832930354106065814287727315802404798846650252291847065487862053165092032876044865953337121177621529128713394850062128883265112285445989490716047114516269610214360707460436615249666880519749940081490528529556708439481439408579061496753506116921467502091233490650587827129723117641747417402223841574374605324548378488751338764333670790954652073615436407565429154971473595558774942391949523160924473849302575963817144543629951500649814140282814425656566037513099377300035068076813102333242453035992313532979224222760843010532285547855708663749401170438868142339131073226292519135068905811353354633672270441861339335616431705395189286617807103199709385023642864116126240840956416393703239252356450764555022593068533441436033455391146171254476051280624974420515300513114731263934399080271826080416374094817108810497100385310524621536032914443937121457824235374351035604704886791066227377495135985392001088470995219898017933094581751428381865812159012402674584823802808955545706413604642722125017483945022567597034362579733908644593291134061349449992079538708186335603099780615604084138184485622237410226180615496796848986439558827037998629415853764641202771795982320024621225649786659340236943730604141039865038509541383050924494096089674062259025464454701374849509801964396810378244326440908090815898513510468522183080658621595441622925836384970824631063249877500329522449068266227321360023378158791772194985597327560493786453072348981265507004319045760926711828303750541447537731503317106333489900188835180177667310182316140484705652924658393307908874184468055218555745745113890444551172628890619080589393232373948630112723793804368472102331700301472675418902954476616718650942294223517708496142983903367732600034595562455814198207003224315739866991116431332946197994889008133461399982031951513255729954710785518019290553931357728349116132246495272916151473877035686242791103161895509229491839052523939940647750624039010340232419059366385707923094531633596151920287671586809905467939913374969273925404157740421975520825544461056831377837271301865283489218307030005618589751082069461976923887436234637470365830359429408967188249857657605998328452861936584771207709231309362553598970097762415736114151785360460853627888713774883734678329335435497757193455177401543827083916900425804068597742125358258077401912502121396414827331067826138644540539041511186686379126168870107673836378592186351659365893233907820183654029971284276315504587607635314219099920247293527674416353321514529788246127507427129988487957798997086703402719643618930373297388836716241601341273990159649174587166059551525873577099212043602515568061336456052180090340117232034908042958276535092789346487425631527944935015562579698968071939904094623691017123109296288146361840796167365479041408315253716062701946767737280594160316020718086424468080315737468812449503707836097545400858326125589572711911994916143317156648567589464786553393491843042784281167204095590084326145752251215337130566158044419811076605176612512270730162776142104414626846187773666232184727889353958984267605744033833886845258997121590268705916260446248081799050489524388022074188925312916634465757975072186040110551372199404314793174196711329541371784409133012802993679051315866052345426987259781125778140524084532934528160778293325606921651703985406651396716012857722490967800335727158405255087771443019926464726956758197535880667768981038220901561170027918272703628195317649915101025285296064017830435968752198855848316888886627640349129970404697262003585376778897430169678305653897677207332042433966424397020586016986655005196725778269849035987401608006099855626688802683480610001419143247266121205947822644901091566995394345067359285185860184174110982863186408808225473492532349831061187058980903434013485439327272492685990015691061255866292305813312897681307793051810961398054868756500682276327410233203018837874527236727860125990287184444827703918941621452158787110624302834281652851974662031597858452718238647473915319655002702918291759439001883521308514567748311698944206918746590324323028055428312364260789610581565324067810419814796527888908901559122754951254288854221064273978365938768665660995841133394322701775058046530510653081346078553314583791138290411153246304508327832787865608993922338381536248110501585085769159440821197821452909470986468601311523463900962342202277652282502869717323522603159206018057653460596595254600308486135667545331272462583147436337454066411066026899107414749905599627837760762177738078681434952982495651929260480816762188993451444317630185291336422081690646109911609135364917882087135098206777921141239126809503455764812835605572394117575672033519661178476346203063266137875159938824362025317264725973387454732955653237484539984081415780630911367162362106076127786782714999913906145546058718679294345358674153085779711233923683538741469906715232114939111185608578413452863825690761180735284106264849745712703401747991786899303917129013422068362773306450863054556952090896633440845559623867563046126370945512723924344264500058498240605478260151056916468778634097727720315562885789585583228968917894770726582215130678753309959652023546085750520913998798124544353910867406422889990182265647108572339881519224502268930954102703499744782766826597573612726225158372886385903363259267822324330236379091217346822513430387529230805651357798384696104295053688789289171002768403540091627456671920765680078260499794571907677793966626409146299717513786477070091764238645204758955297372183445356351042810226096528788617071910283781074415135317028279501109015063619644506299365927830433056791489557909558563362260931593455916702413314828223983087976674868470462850439813107651545891201912419637890172696008376931879841806005854907456444368534018070162851630402759118709260302426669830382126842928573212766361782424045327495278757069551377892564834045396533905835415295069739333388308971807951686858671075777043037726409940410971495075266242706055631384233097278750066476761338157873954415728016880300204268326977794144007574952299653511655450250438318257786380529214640222638125354387440760208840067864800583534227473036578645927494290024375432686335038815945414658496912657514438360289587828180809035033642324292593004133877667599929611136335649093961592490571599503998516928642266790778216649326561246079167264071382923875223497249389186225088814677085053604301299202312619551118134957337190153361141282968721015974892971490311647835617726753185281064276833639107389435767791049990362029357546329575363442224710225828677671150733038606011602332043281583045539157322518800865197065165715822414555765524211606733590375483232606384631121801531889163891360691947803387953591665375849400111085517262177021065687264450989776320938639743960049619127895347088309136090201325670570290674892648905585478392752820059457798261584566288465214780149392026956774145184825588937902020291855212764591249905900957169178323740157092837340109834853082624571376764764257561695373286414106958083367726475236736305299929695817647744958652034954167301823938550508732062930787051340341509735772033860241516149967739633019760835928776285549411229622882431841723139902478149755851433307982383078453998705067545426618051901827982774588262242897218557241381045865418433167965863020472923997931139775764623347072051587955805713568546300366800162247386485389495682208896223892813128787088804720455919174564050458200926943848718384718265993596143215502364920627829768629036753364145303434146224326615990196175605116997587977006970332068768986257452819430895024380608815601381120561005048353365900832066983905647889420421439624304240572972693790651027404200636017429384681712672395576090930420081282626008746070989002971857681250303124072798470345876667077277045682002033014043620545113415499683634418913357428477921034257160244900824636964026679824956289837273653940590310972815167424870058855867157436154875287795661760697533582662515552667847705791378828657394519325978101178696724107884298338344979335586565155770132675446328724044586766313155812863709596448941436267697554377234720917185723964855334489660592202292556879873637157293675288786135870793332937696428015524723118774033682531427037705625621995958472146401874883374069282032589468497560664308230593947081028017796164108485248624839004439063912578395218673666416797142813295389364348569455600596143481816528101827242850429094512118724141710358635084552640656597242083373777402686796158233600550247138856215991666840095314876612552745282157086702773129739174880521087165173436665369093963366333785591646725269158827729474074292263702660546088923142756678101390437303913559700235781389181428959849135080360959788755769221184483430069373199514429767854260876207452888438543367632900774868352204215770819374708987023201652930311145108604201856158431264647050185351070917932926559681972403325134814753534889085446637597395311037441757070984668353092436221984227914861049676289177478754082191104526769750974790569438497440287259163223959382662614328873607979101351183245700585414594064599302596564761350446974127389100592249302561762202747043282198586840712766582446289363969859294994669085525346365203604154343986489517176166199000136118011566540415100542677820070360717874961806059369321415011495234179947940169621347556961147384093870583708847485379783512732188522078337821022506684355861011046437387358541370609905214197257777916849695212205373052178519025337488570004882366792413779404533814979224612149583498886212992617467945455408851197754623683720654363546553187395795350825526902893019058804677915014860681648875297685176057051092480394891696338012448653206105110418561790810922476265829615687329660237845016234145001344046465500966209949556226052670521955378215983074221125615396346078882241924994880496897061822065582414411327874930252935486312813611502537113513576361548797265227893820253634906848472128583902736258558782972399540079236733518779252405048557612806578839943373666294189913606675978985233978122989709113462613100932308486584410179649164344833428748698224619605245379292518099181505019741045190106810194483766177748758160027308346495289179167915937069889971439565699734307383190978727789704106479861210199654052249433752559702495464661604291005981226263293703226442215380792312256298369003581079929037535045827836770990689007400541178287583180885421097184129420294798662202786915255631494994385967681079896416139516662876887074298450192494274416673356468735452976345880019424628512220871769213813937411322918961012766476919338255500580705231604257892479958878206589324302143464178016032267904084789432939570660351070206865963603189638151850668369700555951231077371257028217901717584975338156732956217008528548529164426506069109285578842361463501312183241855624364030172062921772081628523219754539459934014890353676322125223398556886525798619952411709664406421186183783326251366633963972207403853405260087539594340082701302934313265920914650683382769832900114482512746462717050493088578307183890905161266721003190082760894686979420039253189680045554790049371609775346628435629964873760313395747708571279471263836238560093829039617592902744895565319336319116699072057060707631598997732077236373329454947211561191905246348139785749556794373655168733122457690290227849545482952875338054057847389953119802040296045146414291696117234078055358132407057208395969891586602777266911814939248015916206659624796747592536893937839780581598322706159378959180211153377653672279369460714679307358782062077999256159054029557469635284352725806663234110993313611555611367164135353042155288313206460794355998218694387323164346547456956223430563201488630096019355984683859798901519560337221249327019866876635038136825861983253269274382325824509814367357628995916739934203947675922932372118698392683631038408636895817573802412536356134355658680566825829050731285008182603056271139754908423503492078929759104989918966116553119727071782132796839717494027194190205033267549144073232879850045952131029576766995867990735070114939270284180194205312459719419290023029302422158509124236760021948437779829915286358873696334975957535675185403233857320936136449974446266314753492625512049952715536568459285266294785953886875260806811172349666181573328204089929657526456127526218625507899778205509351633286026357360863769269481915884043639478710952316414207370916085901164130070500319678456894004760472256046181297876654686327649501624319038065320642552245552287633170821263325393879828875332763399903001794490933273279142422528144414110346653516130524876109177659428471166471328863240956518551362886068639387610334939110764791966051033949653217143429196927644144867888497722013835657846386589187485627699384882743887861137088533029037280387904026576425720037698867492343147314188982678277867387969406338032718673146885035020763394760679494724276199104820596014578314207919385982072885673526928347100483236151104009657334958924805786154348785352158645519789976483252954337320017867826175642784722537885711668112626012816323477999575631265129386557393585858505368062802123188885210680957599536565583947794163895323204922974458466171390051715862102476222318479444922516902463684635640543110149098596444152802153518934273893097749263342908528862353473067604996058573643348808482019535654502451583398474753534740145979853289041532489425791910847014384104323881414618707962665901221780630871641627622038169271458482218507003847396786914463696424810216110855241830166684747457471247734553410419321500880758866050405387903703313082832773899695655375115325073092330279661782640017975136028329205055406726117823016664216045924546398128700676578375351439289029430683006664701065542339025038746811142559711176729868576871922731313567087782093833359738136370716195596183217899955545451952829458702536266076317673241568259049844203575652301957043170211649837045716613738181213891020286996373055483343185404457277904871504393400886927179551375732938580552749712122472220131695566853750694970135538849449197062606123745455389323660630799020605369505466555683337172116638885792784837532556035751893864179279793174076855701533827065718572369482692392451574680230847564589857552415767582166263287457084705049373628770320447107384992869260067535829571355956676394471024409980653091747263126522291478016070185547014235334281006300758752984367407018737435205403997563925392464031226865775954887498456857731156296601831585201640049843415613820992777438424411981288099917524599805097041050774165322081859894444360547807415076266273480356870658615146020792839886002950035874225429963001564003619324136873577118873014060453400276002253982216014627806974483585413717172789346208318399229596499427155076333256521805947771992768167619183381262658908320037307076865418366763381626182952471370526432022007375056443747886404542725770351117887191372203056370739889401943125541672773329531391109028127204924715609303952341015561550804397018725263502176592346561261291667239972758416817553402391925143104085426304145319763052664936715345259730515036050341788634859853080229601417522655851197144825543390984029996886139781319378844085333122249035125940360344009629871462819095705947371450501417739573711795611278091351105925873631074191463068483890474253453819940172341215513317618660175048850226787989345971062705491882603584857386571183030425314560556136516586944033435473542226483480376603613079582762229576197778893915074632213163243264226722015395420518098475226484084930001999965216284654786446370697280772383271765908725938589402003774989365760166452728775865072492489686029155917071999543342691393512190189837869850725545614820833844781713662125743892684573551494239128202387543128342092457213364863005908931045805226529001184807719744129209051133512000109803576150226833339655850019146907084369584027022536345376239029794924221102964174021359200858889360700212764983745487639152561667777738988371539094074425676935005286563635602631379886231486479594366622137622748373373367038175302709910155210823472590498850767001405343768115331445583086669687883913972964176167228873682087545858681330446801850238911736310179850501823594862960340083929243446563873151949640425307438081790436029885707844074314893503918050499306670718944171566790528656642254900976851366219866732819497785332130555359394509246368695328148919239031270647307376363829076802996994648163156040389418803833047948314926226088509948050960303068897078946361327482909089369084603249583905744415126548414404210996122285823096100560434921953370416318364737837623615588083625925503643925225407274760723629656629552594038065993910726167133608792375288717129885179554418463815844395036321286924561991936855899414214535497875822724990248484857263629613927587875334632735958805199864498123994602824884689941773393473711634929146790390979270152108715962832587641148235531209061913807754694384264770539633178087374535029517410460566196741183195520863515285691233476113634134886454559649168859228222247841001449868913142647183136341856617759961248711517587569115046791084489893225260095969700200899154198839792659521530404585493286482470118234826579770552306785634272959490856259953428951859323298615400985119214634495198343575137438912824136251306898898318717599082806325148582859501589832748403715184457983791792057392960092294794558696785284861652565352397564188544060649978059436638307918605404856824688972685577936526423929107377605353984497813664257080444575886079074011439925865226373651894386536869569208484786315827212207192791148652893928196478566395907350970665400298483048257293635532654403986315067838768031453877580098113971987730354297571199167707478909960130911528272048629122336160550771434581305244707904518896760209282244641392417150699559090800713129138872940199980047001944674724013955445145074032803761852682692090898570472027674061102987404191908509395751149411547602408303928809015661732475103235507173024751103307577500390316022695074852758912225515357106899171979901384929103879986165024028179233776600352950765051874076962674638377392239063846577013786154690805726630992592795604868836873776049168920710090983026181940292930228022624439312921644994795534627248481098021664056985851134152446678294802643586653705513848555639281544648175623847678992055949775656515264650716779026833226859291968062053552569840756890916027744805201594306011424292241712346597094398464975434098249052223509569599591291798382592526399568171369754162313379127736111997034312903384202845196613092323517200782008354781305199216064857443650388094772554002098266610381571129292842396699156425111970705814133491384702887667192765129794850681217588764223107935709097674761455681013080381217758233649240230088993425466416614314128847030054081963962630262155944850789039697377856891454878053437671502406880409619396818549570193425916926020023355351454857338583890508004866456376745357146780490572057371723443949722348450211405122292534072517351921205888511384172361786526626555557328050207287631687395216336515645272868932062135051080384009885695957368406745093788573828535423302246576268735006113375537111050670620320919529797536819123242409584412396547966482280969845383174243847885016728725313698700845806801133927844591286319518189600742193283845424830231211275180540696410725787260534879428003210872333917260336744547725105058740160415327953008732351072010380617160588548893023408784515036000401400128645516026096047040233555444037551927239868358738543435345710676495362301735641971233984605531770655705426099530611369916458421100067672052690888021177208434039256973115055808032627995102350517481058152413007646770877980269789830735827964416030770222301096277363119611729960379459094692203695154018036959261903176062830974413041472526115025209931835377585876420518266641867879015682488929711675148337129715337782778270062015516839538735574770868587141148314076325510021036870051931130264960534793662555374024158218947982330251430994471651983103972745604259042049157456601410464057405676750949990045012580664089605301087257438066995372171637774399980312323642230254455219654821164835540498205229154947246276098885311231491295568308449730763421208370353083586456784373801244068334920536063804291700385556643506965463659830780148311494104982332725805453496713061174114539426654312436942555411315522804351238207450127529193467987602226200732158028589944408945413838179301818598557725892056652656953067388361964327402502477317651184896062421505156050992296334416387954910472514558733724425324751010684753577996421797911075957458317798369797398096156170623733126028226576731942122225689743663014551516608675322537906725674785942536452589680613449556160180923942064051317423255789084581161374766965537709722607508427007421744266836026154244768595532660184038165036381174329862810928079709635105443453198556424892638536142095692768025035870357171049340968681511671526317429559029550988119521672458302838335030617100627400319158515504121336549430740828139105506642225431616111512137848585620813100958500783682472869567605497101247945352113273107906311738805097486009846100437162517488269615033575357367582120827916980073598412240480426742668187711137817034035059277090071777494522270517117374245342469431023432037357134551337123623017416124160852629124373107571638718477727992957918443398570906383466972991374109952144447067169994292757376185222848690284242605028117919037681195152197930087472310091520917640003907246129478984470407752720289359181925698863068655672436010308607112616494237551713214659352979049544353318852629011532111181015378196424843445426872961582343443507159805964160570155107777421893229544928912336301284712869249407269595498206101852874620824027657591694803019643558196453984220987461176810392414184541419913974472760526663605802583243100397933721894435150181350796187390787723177994571072605715276807519490273851679723074513048877016960118344230920132821283394214151431860213586943295681081186732526519349204064053712745849550704182525086044119514851824072610235294464254930362861139380425003976061071509440193526105352753986575799036112056117109895500445372085214483569116770716549028511590562592011118027293269522423910190757581901692050558638940461024230498631559496234646585084980422274481897384289036660393109564877380287880938692090597733383302516531198019665955455413213213131097472289525369912083641084584385066397451741459906431156755034436392875184583505859846000244301178982624097612652408802219238471401003972022328489877147948430185004423737651822424239483896558877342957978559324449079756302553854701796193229543564185790046863686777737273257510210603009057458405123802738647178478058623813327274016789843684957925706536578837694249426007507380135062090787816266270164545670055523234645318370660538785193150525518009546692675633237920746224612964759798554848222955624862811786390235444090488417538700194956308661267550783231485761697372828552218353793830468406132452257134717553420127705050263083934045390308079164542077658712327708315298767821324058716723791680173487053882209318428733618792337655343033180556980186010683542492399580966271111436153115360962151811900764355284670584521953000292713891762408667954610252258971617230783439552530459941896303499911458785278933432383087607926162721772873479947994197149026194650775456041428161783386090750910814464913321331736139027151956457647234691828135308466146626756991901949784662906455529160811862263931661509352710671455955572356389843814647898648701305281426949923771014648569347122820647915229240415790934363881152121506078595240834498710979082913639894759189978717452000416417395338247526554031366714945409177031302658664713302534657433848338213725559974424570174853621808811477218677797912490528824891335535675070762423571454430558359616069313205128882206938678777259120641067827255072802191266493270598072818630004254363732006923282420121676175557396114724353265500827584620799298388629892274801099898097116124936397084831514497486774958943226595497432245532319186238718966043516129969911046416437641541909967062471691655352213976858560507051699149341274089966363771209959899228491756663337960500221663794841775449621805657615813945143983540347434318605614926334032828406141617063586862441511727811843853669365898003369778685241019183056790232574829521762389387692717252168364768103445166723068214572691443386498942838489937648540978256212654562437305504174913631120650421995203365860647176720941354023829028685889811259080339872012106165355797225302185886675860256264159770847897151826296738752700197054951354502028587933740712285482901717674521330761842079503341888141497299499948496020098787592699547831536614040384272373476654585485959119975923896948642847988077263334266538696013740336664983344430677099375452742385528763538604772279272122944729583992635153307949715114437670057854210416454108276131051635093910073866593956268540337800342307053379374587877066984996311337972115208563362183929959643887695729046124273278999518467231522195052171541389789659517616082331729783544776222097675763463519215588435620463167217639799938167414870854181742064954784580104550322528149836665341456194805027675819788523591655994588006812711492260044250856994684879421742324042191590694398846365985126617989371772998676662255841323185465321636619848498400602472079216552517894789623046139124330322099685893003283465346262758306229008249214061275236226635206941392533487557447264047731124092213820287250107034726363289111527834099396865185743719937682440893070053629303092498357831529624574951451581827068194316661305121430404633021179522125259153345494745487799968830366408971182709118316401682914208052239557042196633889818866263909669351163792450018712735867527774281825525468226807833325494914452751929146200660697760914551179818748270206021245334910719817245822863857714954211517206310321615422866122755147435325442369806132228344640333188520659641113095246351900561938180945134529417108591699364976732159934699899026290179436905158778294617044137308421427107329392391297725076093733877759939257249785308346023059941269345708871367835609633927974523271526351350903137594559663135184532800613078319716475639566808506360633143443840217331916290112143929536156793230165038723722927132140204491894449291535094512600601211441930011601863900655474490681896468569676252345973533106571176503419128070087309287336031278559267745921102293243969913991705552831021931096360118223110108003905120503736262623904819854718138570194558683986285511023649340836584530176435295297759564250076123008141786996412857525405696571006874283920359805283768806756679827943751791462322694672228554560742783200726140370398679735923943855871615197646952234696273265505934098017799460152935591091913504956214251829135687743103400331243833479683640670671266090818733051738198079338785851192241744507910314300844240677636540294888991402205978036796529923159247466197357329910633385151731759093132364040164149468788241581678172699748554201572463475953336419905190407268419675281140900532086974594309915530540742678730035653400376308583278875637584005760882968447795477617818270600687597779750949535988029329634800693664178050086532396058809851463825173395831008867564122480134596168144823776538954662647774357210610835502821119376113258619665527377651013236811230110587919855156205654562935880617552918450780232665722398146709238325497249204293509032265941607279237832652133199770791355141289404607078217866109596300250781048669574295116307011397461588236901187672107350238442039478669667849032243856089279775353760338545216375525049229842630227493246245981361569482046653157115190575584285610573033395834314936115074705848045309825891849585060429342469123350640641543018494081723473418754766345488528375543935980761178275998066681126384054602280514798975995575800915761593845205922144872445519142026232657791841708367230525504505127597876179217017183651664008979827057840541164526621473359962698507184475250488721701502002759729159286526478795285341953952606490035065324133395679989883254242758094762098696056137211332198464639656788823878510278831477631514183544327662014087691676503220434633974650774029994406945820071481997028048510199630313322855567770894002456958271757245555689650852779207571323503319555649183088361016572763491585566303123456026047492302720157074529584215521628644975204943393500312789108615731523963089682495531451890105079788500028436559640628768553522347497384384098178246123507031528637663728907008027778609169769626255979251371991903569012183975242571774550905583971590314783113692643623575067029162677705902393476427203777186578705959607471666919656853275885676492571657553938328534655646741551338641153766877223957632507879482426740147503349205960484982129769337598587402581253774032207709931720095969759178405936302644835344451743292017689892351792628275092869876670006220337722328632636258779877207946633040519248936332101461459777718403800084979232315090004809913174002275848957709166382302159749621802827867543718778110785246966846878824050334483298397985078166453115318571162044720819548106139564273225815549818607866900187241477844805897205029395813946690660295183092476777226123588407036411162968628928428393310214425870894157655910557394320494911200183076266844492696500250285978275577374101953606614704238928054443914599888675979946113715447075195166227893747694740132736899815703977347812990506282611892293515301982918264763267998276626842887038141452272571982268956135291233805472754895250579716509210111302399272002074494955204145766493196260614918151134344463604364792823679060456492003907861957042340632439978532253368512796745932507872542001124528189928279043422747421357746141841563355011328531319767101857394982524126808373605286426533182244773385258637065625346430003931741782238920609202485961741549022450701130141873366966412537537623484258680223134381533235063243796248200850850494766277822980458189107602993208165437026977177501877176695515112349999722579316280967508153266707684909606609708415312784582552195998248347761794189095991330070614555219139492214021942744556838485770557350760367769704792153135875849363802372308740216438841785291853580488464714450908778581245526322026726560894749731813455944749413549789038466555294263785021740162152444940043283344745176192195293916385541675680443475790572163700894056227226691166022746464011053229820875551200031426356714488530172588019355271135229993195628363067945694691010637851443473816421703433059411650101211643524784605743419363532149465151161555392546691968792552440618408180840064556863640639642254999965719405152718583128177342809256048083650308397579747660037943683584957966899603748126868764576836326527060166756724518762084325942296900028945616801778506992933990875153834114511957211896734362973692722330896034252342361611479453931731987577565097702672323569360016250179631281189163258583358303348551713265009718916683228530953843198993882264147052564491061422735236928955040427303998100817794074777543456447191188324286099193964253848716913844440311954670135718635176011958095697436459082436562135578714708854123776846453264664804905305212538469939443230973679629102320294766707903650914689838573275411170046092086869084082385151535440948777506753097163900553122731631944106542901313002715198869598869745476383110520726369879749804548641234239660760470066920271079781171547816904527829028269968504186473824603773773908570608539890549382954405622776945728388859428960526702096383880673784944776035192259619600545568803927592714825435843375361382261335368908045011916452844824348835257869053135584523503449789841366800537241748444959803430722455857623005048496682453139849615203052736086826733330612667562813627175517885366891157160745163667314074694867683615005883399344179869351169397552996140189889782694535194762312471667970117947264449691293778652826133434556292897403819890585728150458079321577932693414102379915500418043854112158319129677173293428962584348792943808091388294082739884655267656739974970606228549557842673785840644571168968189381585377259780475374182675455115637185531385592247180708911329514118978853765093658673436133674462940383529675738617584989034223418017604330950675846659028138878521279708717197157663934475561709976454515750531917426457336850322785141833904531819145908201335902045773823095936117159031102908890217582938268980789789661330795524218811087292232932671329468663554886963929707732333641465140705538097858623019901593558070704580070802666265184677711722207446657267886878464331424251943391416639263232272103608736921080312786341322507245353441259889805535950338791298266825261075732045280105738369337716367818155482221979138451629938926316110999481036652946898638053714686544610246113724178655987897712444648998737619538340290933610878766377085741034493692436193753410526169526778796516957963458641193478307823203147449743103778853492836374382388545397805171345665166608776167362225668503094820876981852736385884636967214084148995806544084148598592803624349200920440099348564368752839900845588280674579687200497684801292070900944445547722840141635295584008945008831619187511229238509358107789215239427912541375288847940323280329727610477156300653609941419071094965854554654455849762790309038125760020853901091121404546851760997743056173080809434138987396638415498164941429370543495338609815352784345261925665483586490150212651803932587140256540194232960097754377554449187092926496638284939096647297088483616498294509543112772460974089099435387621436617705713157829047985898471717908697778330729770721159618558578201739530514414943124619484756229480545006810147078193416820339752596617823900425999915846030940646731742504602190768557341052144564576542525320393172253042252610187540987437542778889484813019332306113743321055960394782357984945009235290338224551422686081284660341557691327652696679487987395685537974950622286268829744683498027863694380543335863057503489519294071723481414739447541310601798515457141123739605986336786347509260846170741427739980685451354772036029963946193685036098094693605728062237002352853034145967169853069308662909903913172651301538736015165517546752444874936589506469182182491490793881672890365140575749661010568038015350149296189987536836820092356465968726755657137776930871416038180560233567462823462623779605352029519233158153272425705412393119639601246047189871905532325832291928973873771341804954427259706972687995292682478205887741179668298295915816019585393888296523739578750358925771077799762976018414549668346925399301856391108158249750611504923202998937072800392787996123727821065756700224309703106138029079843241575735661899079027148002687434286254336393161734165099489969909534824295439687164892904718806927657061979711845659546836411710337791535969166802457185111624362442344827557088043512235775620013314931223308242791239224309111163722949872639749867177907345004827349254080200442149291514637294051187943843764076383753950035128393659329162216865098679285025180759196116208000986704231040064083333056849229099878868402868947352272530872399854144838336363203738420453752913033528699793237566714589485830885106858417568026767822141164348372565020582463225552543376464464683831191800819952266091353872714998521399971323209224831403235442282853699597778730233877584471804205376512278028960756537965806729837531079281145122476826677595524454650878476922310526631377412339184486535098782893304321881591159153107311113799737004761816793877600041922387664938198526256521516915792967014954497055222097515364826880591740169719127407556896996036992444435378132249319326218756526792960936859849750043746264049437362411887177226438256710955527151303440635889881651942454465771746209752667903783106098798748735621116441650327523192746877845815552503818199680702665863172651082631114413089113291610457266104877797591360843460985475025759967775594518968249466171513836003312818068311334200709993291872421823665452253928953639878929240254311965851401015528554123071628094467713290233262621454788896446223725145825165778458642344167446340294272010287949465821740464200701410288874460397385494381005644049748021532019821704566649675231264272275204927553864451621772168091696931404958123679760894217004349041292234812161701158665911002569885347718383057953005118121906242671103915190585746877391329592800230668846232369726230275560494570109375788200883051809211621147006619929746891728653534550283523467381789916645093247135859300898096664864739339508658827452541082603402325872411224282832903358840294404861643253747528222411939705677767060356300048458433206924065620596946426635116498093993420239161762782394899335887899449821054893912395236037059082836707731789176352857603542372090950780290767754930252154637318416578083734769157116041244030249646496656558204721815370839367975489831639523384931840083111200419769581142855404022903421707080555506025635500967139445134536289258375869181272812881528540267596288510493515549347853290914855968967620399712133645930791177760087743941365233693503939129830677204304292904157689605860917400739518761704680790282638853976134472858430676800228282047791423831508640959799687490287229494257520008730870316585035267551730607242728184755386471669596092760783256107124650381514045299286930309413721139448147704868181011960842811812596619401882949040091827516155656892245910176434243263566965752676564479139983121733839632819166991664600170547375501887411944023391704438828542244294827236866114699359211156679433172292359338038605314013878827250256092445316871615542479657759403914880813958354222890132422918733522119932033132147491990204272904236839459482702526953535356775204033860669964579167233722180124542690600919123570991054141257335546864360509823630226467147885384549208318796159452106646351653787326868733993081859992775630704408622715932941749688818875652872862128253586560483979772197838913647798563009175608870326660384515700865508449575589686783526391532467031443422497512016630837798812602389965490828781293577642316710363917829867753812349951957508969046660362927520363740603451973529522345271207682899979757092098768191265962642583096167805420203597419043004071435989179515905598752967809196810507857350465177377921702696832539348634693633242032011178830788556493943144403859802344141750101474955373534313077399805813606626432661212523922915358310822388498688697255133218579958812596612254280619229089831392649495971265149052533491054602963904289045667042584281659086137126221022791141070796708888561070660284711480783580334451141627733310633644675735558270685266144282389479633691634068163520066881092959787151146561564281091548827960987926082091687253286885516679017908015789298318693604945974381850783255266191794128492755684737190740755424448050828100329789371865324187398896564626197585478993548323820592318054927612173402457201996002759527689553232016488242454360594021188721382865649554930551464066059006481114678474163628363942496750895654893660793389154272828302050280835597156384781021810233255533877422733274494444377481957070229948495573190680751054458072759145943736283170384073697030345462061694253531992115891403997376596656278861444987314738298257434768993070255447125122598227633128120779447990400049941813665190437006952377192442807673690288871595216582245395822110913927361007312135631731816035143941982179873542934531236538726269231604258243031913538350394000572204052358723645189635821073017101832204890723620310538067381680297034300911483399683191716175559888097882094580631311370046789922776378000567039222198816173997650032596382327421883219450223386286954428498539556161468432063441797848751813391699625176733365543111924430192986306018808473527147817909100687371593648955285506334022376385317990227590018806316861924969184321894756412561165733045050738813515785997433688150920694799594814451230180328139519641738411642742810336970622748105085330030222799215689611997151168299015831002635604928674130026426766080620224364200058746444031096518373279486952927988337793595086025238093868259940318837008760287866075802647603107031897761324993416813363101121885603658495812058328622366206548189858242780170563599752410134409890061430747806029189838398840894282754714240073701276892476442613501554753909305411362229046457186893740259337875300600872855555433270316947660898675058122889036681053705061886327581181529170017318316776097604313157920012649164173818672329469493725875657278231184433566060069498797960153658760571702790160208687128226813072849685905289657812080941117218676929742672497399371614299559557157679687480858555635481686786639132360375217389934788310864393451298926887845270082811175875859635327444719350596713400273808782073783418845767266252561451700868772722855770467663120013055766206825788493493806955480531618955254226108616628393036023045438157327174213127790933659450370358596537467300411369201745355295353010971229848103876625324433981205257395101977685434337701761500013728813529004874762238152364946815939280326381681580257065972175674027538022425449052377088232817850911043205371854355444022426630188663732084185606463332353929008759727588630627373221378428838646330804847058954012427993587148815850496013966944091516468456749431435194678118126987766029089963609450836697093862532684254958794752740584751840067773080477650401717901977721645975824682112389231691683336746755465680972769624602756147541196279132961727466576080536190219249780291986878970161920856641594095689134942445483064981061459065029081215488443831647242386829760533231949021999928466333306616550492586814159937522486348085520647042537161175734570492563439111507884334961623765545562518728380694848491854640737527973889180728972602181472306713329245350935529779770409939285455910912061371024685633615739774852546498756561732782335216336882184597990379931273446810444189561195762233222314940598003394605432953787715899290145670363125001293990168132766299735941301617363069972228001878741797475376501188431071932391896988884143284027334380730080921784026702256410459109404299816815995510939883206196147335208950130031261365543312274630587497096829495550542832651790160245206641888386328482077546672493904018179878483852981721281457434481917034106586969882550087647054666246109643063665679077341131207014571347961616561425487871156962046596316790821786618072659494577271423588013782308566130162238368283340939294946785512684883133804668815153072192140361395680882166799089733404919103062541666007822851831047578225180802373930166828413946633315889718904009667236599717421037490822576336454011261178472831094220842110770691478659648479489030541203321885822776174690966509332047437500771146069995737345384462663303325708526558014245948359727369414027941307533114636602400190195254235338992626572942368088061466933413989452456208071896328171218449028098332774621013293422739165966079168726794289733965801401674437666736267203318890003666580825945561133278690486937233062592549670429581599587536522044887059335387601999882146167615971098719925272280692696690948582751336118364063965882072478401591761287214258877295378064522854289853341533398130948940081645633955810220747665869022008575898397966342723725067471857242863914165082137396683127112773507004401083228427020614123507472770111746618485169390596086935067912802486484408236764045155918249204889279738898260670163929668841560770847785124288014637546118479192519858975219777535685740878669691425224068119079282345609578215123250067882880065662048259888663519944396091508166797412285712550127402310735564352785220711718240278739141914319309748664367499084819258967274874003497704688275275922036286023898892059105592231346654355168784919225546307869082024297483578580779430550646020712441062134790464024741267088683745277502707752671161155126886535221542974461350158631272888986547397828149482390401923233601062690803440476361664471546897819270527620626561107482093091063369031734749309881974935049370335362068730529214013899655325712704993624136267068788213431409695138152350187525252180002108517542556134206550586996665450714314099666802304296203990265398792988261199492000364231245119015716477036881861172178268364602531917523696223395681133769992502698102267420837359328637712556690297951444849419600379636538541545281520460229532350253906402543747377602018540108632756365814090331707712263207320336881478830070241566802658700410890423311588866078574779902909715592392383751588556505663407539872890284417108251842918391885002785391000600875458356819697374645282684783842588384807523770546509987967769753979539930398797012250513667860564892624270720594062338955194608864963942563157972932241557971057697171605924693315837528353419247803095525275524078975228531308845814443318820158131809497019727413064576750585049552410994315368074774804916667362484415181124075619320710423870724853028807543123180559233882680824976435107942979711093538361993118784738109094214848346564868856237712749763009945944167109899288465800325282913710073339560366430111451060721934292730758847596172570294124718545003042750685266960269182077782879737275608990092038243986861498041813467973707961073450835212057221329361640646801032216587753260957674554919532869664698530502439757888032087751882161486216050980456020940212468589858399686199240457705425233819396005995037444209086838495801911648122391518983184111509710056876806161614812002187935920556731936198476547993982272964160278835419637293967576787558084482980863120577284401476652524447641337723155145644746501850982211300052834117879577249780736713394746659340445355106501248377100051198751950833564409003241768251555284208003970151299046946542115255591963666340319702193025438358556239330128732188004737534816217596266159429870317842202249822228133961435614840968676252615164374833023586842505188862364205673354162894488654797743329098449584528280258451332241928926376181906411304065224035765873647096864318177627781363983117946710260952034476702764023750796014825373196296830814772014197472754359782900683834695559285299714001558380846860022591210172720628276324919306920131417007748673927432624099273699129310561989219004069021430134813087239001511090852550712301770617362761685026031124320704100348344483794617126787049906130618591079760699518994711133374502942204840559481804658976278194128437444876420028576094336656085682557306082988664863102305551514667718645635431740717871148013085354038708343104339595758891809413661864078139271206039836978720529591308988138200789360326566194458561718076481145892182779638753663441459196511912550671461122270163383212895468399650856747999060358613575728142131978756895297513912409874018021323619463985587026504030166620712844650785271396497444742659840093942928844757377777888501817824916608760224705584321031422557227530385760109374020433563748678032046440014128132483866412025918775546566290298654733618879027924300101785361310002605627024753624786191619217935788135445554091673345669299023598760853707926849012959523575582821822928278304965469745128688047754177200185005811821651602969273642385722517792822910822356079668586260514665679696717098193301336364432624492997300302908961363360064670120776271810895659156698053872337411049386640095539609255233697694920791932870438908652902824479889414502112096068683570999968890720413317469139309095577547155050647998695309845036960609462132782771748438555225305742976470477871649648164475090694540214089850536230081845615318093871829243017890018670731695346418720452517748584331583632841789142266771622025425727938306544625283723517289157622749605585257657563192951305835427434045995854236416972324675100746288912979999922786592344496601670441634134588754195550513826927629474602848743795711042782447040993343009796768517313249289007408128552071550325202255095362460298106904963813927413475350890367115203027651561975021026747746691614358892635071766481186776722045186520711668739545370571601221191661420958348277627362369465230406296302796597676998287752651122217368375140605641212803070937228553479059863446194780186057185138613710405125450739619171131010353339831312011528637750270592646224042464643846273435887817880011299952463024121788697893432222135428382793096121099921297592134893407912125973287351872485465988963593080340393667574009079054499023134696517831575654812813550504638687210268949578743495707769418636498934363410284538387535706898637861344426174904825650483609260118589899756252379994894755478745603979741633875734445898053237606565067471246971345394115689449050920074222632214520113064690227882412999733351732803149770802888674473493321478522884515888914282652870570865974048586815453668695959664223120727753468392191330799336959362308108967625077550810531991388104237590239181517260043007899295587416068049281575275736101389779711005332631279636654104077265839019376755943313168228052868360200270432711614347737473011403344000914561513974560115622205309667668038144686431849336514842261379818001314491266288854799466844273444757796820735534680338581710459042183983820465219060335944687386251747176042171700940480717766092331011467182504814219528737231651701150625799312986181361183984446455061784138642620454526550186596436495040280828311799895241877801064572045127849377462019787091479746506040657589839087880366241755913894822646149869894280168923145572919448047232874608621781393499975342339117600138169201496643951983468077792007515955471435906988623407080054400961131104300120734070234893368597502664622792600911355416456639881102698014251870720817182474060541902838027180913630420884019860157764664730524825710497854484722677551968376763315654545182834741228407452590932515849701169236010713627401106956451126681183579818540917657612904069897949001170403427931078740866552801253784560918519812761274023675464315498780185402327899673834569481461710914191014663807380190154696351603752602623131616358433910719270343138740126847019407424561223471638097173724834635643295034330384104930640999715854652804966385342471243577012326491953386160205978918254175487275900970388311800111861307824935483568351407451844657670893786294026608404017164354050459439393668452522184135943657507129027970647770997139874224269124884718111043535595566038679830621437660411164436139281448382097275754489991014284403196810977422578117732644843676830786271250039652976397867919692029269852007866578241867944666830233198847355403535131539093431796681816732434010248837407780655682888239936364009153822318178978148366169830319385422463202815524425650300572507178666498881893657082747190250912051679051690047185683259959088247849782875663067235899036165794550081609470487335053056293872398414500315267424388295874984318825298928257725248894867462655565062332348402875309502802218183306465432025637175119852109855072980111649832603014360717128349129925429869028555881413734752362222679008671695712259826961388109919856477934317053930595227833073112877466754194042049964253783697080603648450898403454655379946363504242475073572041324242755080265678012514345895042846715985644299713480149663814657794739836964060348028779340953043691180549216086280808389201673261624346156578367214213122115637284485280235118772292746430246062565492795041875908288957123506247239799683468558702670113228640979309182445539730649809990006435847902595222163513813567825119107000374771713974740077406512374535458650192626512777814903881137919866996349338121331840054891901411949861315784894898569159513895723842635462974791705968123383785040078628067645694787268831692216677070186101074509622940556989388226209567375764184501160939185401375613862683037071150149926861596692074384408587027990559732593160409007957388926235897977174436412099325111249615847152358095643606856709268211138307543575232558445409720565124759795963508008403969723217505901534874474123025962337112819506611550552939136218123493519271938296189350487679796954348257720319217793898419988280990409798999330355758049531914689090920058737504510425298321686898534653244368904934879828404658677401411036805694384637798249362793522588926743904108206961347295841802697924027983852209204007048037625237553019296647391065241883203278745105500774131524606300590987559717436501719038243686696258415775796176710328906427113550834095441523036489541483284287428693585669717217041867467944452983986195661567261495048828172106192869798913079458221161330537403170421208356418383250042008325285738512773942092897272181445537277200085515477638739360357598572246003145975849586922073414726913372197603054407785358096288876080219063728287609528496123672131651777702629895506191048162707843294920608266303729396077299818706383959375396725431105588540193427541632882411108238673924791753221971476903300360951263582605182124504776278278991230303296562132509606595725124073342846856021038645665931322855526825123422391279797981881995366919605627623243723834601070393665872581468822163392389239889315102715912399442013897820875010742734178503315986886157148450009373917839158818478972915109050165058248334578601868999128770366589295157350591429292146517904113930569972721225740622326323339170005681726780957784190187838503378271830039310365788343817910795765746319424438712234832876826952403598912731155144459937185801050082487669535686225512976932675881343919944601307880837578181428380384202911277671957692418521076980751100340125904762891288880613931048146967123218889174228909095352055521376824642732206915634812895756592792961371763814097314885218150424349372053718615162789835697918699555556901494428502493808322423025434872376761368611828856289647160315932296299983097257455161188696377359647703250606303028918221286560567538521953194211662024025202963312340462166845198504608262927392894468072818002465017769799610127109066040185287577287475198665188648390911357265681566876640686458143231121498291742896078528159819685242204808257188179998992315213085359768489259945275922984565283185237603098829469482251059781005497454515179016199537642798704118685875060205830402022886231319128869016466856572683108892061677684294296096432613129367129461962744646815921219949098579255305547912927168148444204947113271714028176992248504443990259083938175801241749971057160725327702804516114895847062151063968487857958535981438536346090374958274788925386767775027436298001947395466348652781765490333871770097230335309183349318319290097592500433866866727712025714068502482723393124241432214330854876374881771540219960830590503265737317822943540081621917853821798678131788656336515249341877651246971741174760768715364305303568609658441259155083050395044298247515067609137899624793876814932545530100404942517753437711253415168595399805742407939565474151764280653928610059956702302551060854318485974785320865378227133233034042829331389792932295246169774078045687576942655171903690298194932374167930691268867500298762636733959860581254031077828419486040751297382876287828010347409627461643626277987080354029079097123292373625868928038896333487228947288529492172585768060986961857586660694803746956111258680371200186326577796190746799392577236585604548321085896313265868824643924949782488670033528277650841429431672641765225081306139710556733795015514138878429006079610607202456538562939098565094271318609556664699980872216685068206788346214560525308878568625124416816342646426505191506209492508948591567021942563954946705469359359921033347178019592255745727667285010513038176651365818784825924380116009509558558534049312452364333175205482805248552683165332477235050048494156941152841014688414686943901314205252172208878184624227879961117128436890672073822115759674913155281735399350956773810464076328309026329480658609148480249154120899573931901411927243527470473079614521932122016468440992295489366278610577247422841159295405673133342217874203764623777867227931305587218220725189104817802464370038359467979373854192559932142258379445372895693232632328362843117056534218129226301009457266802654093869738687597729165284681429059283196898380442475613295826467237459441364087659781601859385146931877306031505336581064420546179254477292332068869910343655643252890236705852686075933574802813540799868193595251976503806502385941093848020659224335432329421117069953992333053517762603829234269254308280913063233308787374961443499699858388832498762803110866659208375797499718359979075261665082294987100574683243093618249761254412889515617467146149949782192597652101500731233144367582298150905061548912772566840763532304762118058035305442821776957690050296855070595008116626899419523908295064901680919723643572678510087323976534472360214394407373869272754118148030901692268010993761908387348949534728266879164426167255639671756309773943229069795189342992584286278711279698577067208677364236054218355940868784044482086286139716947772338621357510089510493593945711606707463368104990067019801853949550575025119297281753046083583780730187605389847752524140954310205374474710640853202009598174252297732105847308746868258810904662246409659741525507142974321176478031495122034363578279125484812444526020198021794328391825813778791372168616458348641666708989721407042109457585773588383936401695314187755532312007824555717106090193022801917877830637231617980596582119241955979573694850561743387740504197795830248980759497302457400556677498342607257467089972169284858582948809558041672911892076555015590290421434449886960746218441868049165957309954403411685456497276408198420390806287809211991856652726495401790657660698668510267945015280048563686475474409528781076817553491334531639076218385269171375937817473368796249541317932787240605699538027224445936918056882977599042228278649027085709595295466801376917314627656631737895055615942621660891685075946445628014909065510905044439360304956429011627818800560836070108157816017084744446403749940068922856345913500594910032396532328911056503676628142045867877874546918769456533676944417024835593270051419468203239420583426478908134242227389175975248713422969108776781980247622693502009383121432525882771836935549431889742088880237871446445604941214218366746074270567911146056557209620170578741607336738804628240973197197183361092739810862622612351214140810574855578891867999703960755169703269959878839862580273317368624123526457552194673239539023748455028206204449946393312685319382430022128945125693978214807244616477456693098385399498318985005999323938538053479071190209860988720458154887129333738362976171232831071034907486137766432337401824289182210279565452373525529299106287373547209551663024491244174172981043252968319342278467998857877047338443110023786577470909895030413211665141702464291009718588645353887953024229271385733929560857052895838285820442408391106025229506412218186281731206347097341350272013915117533101874529815299914504559703983204535073139124006845134854608378193077161214558289400885940663085074676112103710288110099785543218920742165585365162724042448899415437853094943775349892122606622498025340239875734322387381662815695776246329765015013696305427321053412995780807893396226656135678578231826483243742653939370481545388498077103643558981586059959385351621654482130863414008383330206686291011255313692374343129656137001672415022851035393328023760532169951279061060587775208848447301553375516872460455508464229537778708331452581797774981017701790684116318610981017823472533554797856085060813730817904071794925684633593640208779590731279163083186519276553638586622723235944847498358131547045725322547747896074363790297241501992582995907518852774545285771362430900129146219185224389370449049554936629482937071040042621127425194964799125222343220518841754013672946891243690532314251948786894510319210746713859658878469102064909106864448747714678974566502866516142063247033341881490904914068274524101253389436568016124699697358046869546388488645461288802873549002818256978338096675950277387660487300495454271867497356121200670497406409963828392332165223528737273890138153367020527806037208113668622491361841541509550250684511449444266873114510556411355581587508003546616705249769795984520799217130060533239244874447673636078622816764319615745177359829870933516967174456623922176511819492026574319341625515254151354761377123888572310360782121771641483173412775646828097420705626887188861789952656127143983928229438659571611366782906436820325469872830935495206343940557785574176177971467946933259006468625784820409395069454138651294768667581654321244790089835817194811885940041143675467042001334801135407281289249165142138455964777645995642537454119882228936022176761337330061664029769076410818705102684282531919479182047309118225093750633384289246938607381514171003539484283511433777154548106798058709301163564982080056242056811460009682747922820425876513847048340108029142790040691652258442241070917599816128277345912019899245293326752937292841178284601743996728798939400770064691741886139934568373413093652468945075736125438815929435207747906702042211200206583364920958080882553466026779050457593360698999169995305011515739508632751024174635361969727493404342681514452781375710228913140352794217222286215302424615727785570049482658664628789874466359690222223536998999853763650929730460974028337515277465062532102585332328592915244505026140885921987156027026114053257267230250354972964197588480847518621584494037535973843110323857484644476112249011091592283871986049993847870713441864199328425761525653038868106809670250072513059132010491992798887914740961462644661384289359424753259836411539086564183633227010579741068503517419150566969134086648562139060069933655974542244461930929512140143304508502520942633820597318856523801544761300558275289923518534130411195226569841090149696791986545909429524863470836513340775007397233218718538257257077658128710146282738035071767444184792646924176357082212223106645347767534085054785057454774690883990719185759368762376194356271320296862429809765262598519042464596878384602725691964808478962597635881263981777754253958135181307460578908780491209455088233809971065034804706204084851941162878419484757740847989828962274448405150156163075612347150231335649316067045891267388246393528420150656928898945124205686899359183177982588274362376921932680610541547570401331026775431782861951083693880836286284396724669048587935763821906033606093097815364009569655668189484752967488679360901979245352862081131856105737469494255003083734237185556679339428282756786912634514683412971007409698616320879337079344433533047859115125485579936208616582833061924591142508528561781436443581232170322102863986301781432023809320768250251430451576022332194824668105124614347994512904544638439533604056287904858893268627384822374861024527489820993929757768096977348725368712271726573923596836033116733475251756394315403017454044595328651799938589025128221489649369355514569543971534774204397499708293178019457780381966984179952174567602337349549388191247112723783670635553341141817265619196506137873404834356900977816311614742774962612755218017292602093602710215899459111317664254288954832260844078193059522698287845524285069819154578373067470645173224324106896579187078173880257280388876686744276628566522954067480605022873649974689041486557663171262406145498378859272940980581681364485635208864351004085875596727430358903550361379192449583028868182755601614206530830918389446074342157875838190278220236571482267570140361794470315369425390452411155953633359936966145106302110160039388020588585255317907378852696163069705238737754736821987753769880068890115531139787044122799332268665192349985421919610707350026177711857352614178018706356174487545712382996560816897140501314455415323657337969538377773546544342505662064107959115538422972754358538265100254316030123406012347367223483252252768840095504391853952751122178029888276125019638877364013028901856930627355972469565050203437336881830515096967738941908018291011900341941243700993485834580300180353539160769816989839525813861792885543790671636215917443402929051779406401291459878194220835984398818345347542674629615130885842766414236671404621864759436641512093585575768908174318425561897344894547889947223431929581589060946859689948039349061379256579627236387701339858534137717245578083668281668187291838508736082712321721129429992317347029791433450996860986032156487009368328588702780386458291254041269170920709963607219265629337799166595744583879495369301834722677186856430430518964588773933912121269489670475198002941281301432361405668504531235861680842899871840988008133607419417605528589070880038266063712982432340397027723404453186621638765384113675857503622491616783910971488062117985883317506739042364627476374288694545373725012049958966099867100539818317409577093726914781525007552530861230217975898511490351067368621211300304925344230773246110645551186626104441818579117074480171162947133929112386679009559338134712596420903545112445362643160260083488756241617319511871613246173951858000543673684092317911809186096913712167437662496939147182754286728126801666989623379992278889371949876559048146089392061792994144408521083802092128533129574642061065863934084742955836729477154879500154009253903203186379013396056311481367457296767037446490261672519188012146047783829361314162722157290516843172900897035960628840320414778234442575598453069305435376695801929939206992765415871934256668368086482147668535997199000591032134123086905231268037284587624205985184296862119822386255725229275266744914451824522571877118045561718253435080021821147903414201788361788983733837538881134708194857090244347150408509759294456871079555980956164760208726496802164462818502068299617616560201490599470759692596759051880885891547142862306592032128179306575482085511963684855299132006489456559141061883117822649644128047578013365443350053070021811649696681018939115776985242349144543245337710786369305937638396666245043928726766576049818691505554050649154815564245161862126455575147350593999794043113706136011971582537815182585502445413096532503215796549539372263355645561767389734159081019582304161423025149846377362021671372872399376957761572069492980199052114495391485963957936627626547469969638449519773975067629418936287322466176151032997501318110451715718374092573966141820204617870007640590563946458719736316798622115426113588222572294204336860128817993942119291523802574743767179811959301273038305921350019273614042305953569035897714665193047845709176988038839892804257924149925014762230260493842093759563798982963032155507348906351461374535468849715111952274196861952676948330330899348309531732133922964983688540199466627463579094205561877188883638370215969775121938068065892719404006322539822406655654500143584658944478076011221174261661238022004620402641943278277200387593824182454406092656101653125489829579180508576328343915698859151399081746846314663882300531871551842057836976966000315795691304605817584153176445003152435832222987556766788110627198402471239364540397808894438660751569678464979255676505679635051573798695556172988855687591573219541403542144689703750851898289421642578871344290034740357373599685667230424153736197375280271955722201868566100673536566781925268648804630286199637637242279376651885040367297192984248960575784699680464118795481835139837304105944447216451442823629127558995934438272880935831671672931489598111771083704899265554647761676839304029122238627794659892544257211859008514717863502695682418709662969363567357370887545648624702995821792100828981102096902764284753272450802827528126376082698486376790901740530243924848970552367496712206728672936444566755224885498667501100494777061965054840999078859914632729966650389469572197309861505762930103073863997006725854587996048877055973338382830151827151837575528828176619931039840904723598046300637752173551619143860395169711117474395782552350397846554227428614420023210165018498270862446489070003420648905981021798341911002976129367867512380264797598435028352712160858552715212266609962404682498126424277140074710382624661047591695729468718386420390234976213070671799548135660557263068404115177284436193114951070063774954169658957291623281111105160557918740682756622803169901257082913554977009737728152618877400881084727267918731237835777264043840978413021197484255463411585419082402719683534499683383740918364352633066677474907001837630776141551797849520339311472929260048630191898678983718537575821342243178855042992519513897124728914539972556122416716280245951737901327309747079596316601591661333556990535760810182328409178636630644230966682322311753104375321517350173100855964897987313439116855548362480123020526856842147418566807933874303117108748367129610068936597904342196499950761758815386117622765796923791218798291448856115214518808497359242135873184754681813261767986919085618480755769387664705757554298852713240505724243260252902755598528350031010091583389892651253252024704491071491953642170455852837057682858180790732571070943058527357914559084272561533467711953820003512957967129162374415938475548618402833167913725207205315104944177759456679568676605961735680901665301087660412569987883165796252197592365571880563605776327319317539819366854684977081357403461936100132514528981220967644303418499458107037868974871665428013800831329599861984145148815909007634873994914370650709808389729929457924119816167265618129639794275979546295209793512848232881756978947809685007010950724841032720718949639584468878045621435811551914845181661035184379937428940848400364343388854095114877733392388576586770214311102495443305556916151780200447658947754954516873309466436592493240433444995625702678779671799250596482547827135999891449337362829271609852566498596316882112271703388467657619932016097188441133495256475100808312654301259346567566166095618401480647964719677744393156490794632260272807520518531139172873381516097471058571712738307245179696218578142519363986297998525817356901158027430588493580270865118690922513552765953840304046079191626804933661655470458454309978006981551621000865458490342217489153937670282229824234034155018905836795822161025070434672246868834265448281183700467373768204964888326378659318714783473116807727209358935802860318675356562876795985765722860215839352358405626064003505889891481122461349615318046082174029035412381490824348074734300382316320825955065432412507384134007093518903431651059718877590699994223736041251065249029729938624306369751091102077923861965379774455232859955107762142670664458658944706994839519611505913441526786342592522041732955402894905688506529794436746990382549708532263545478564287667875006123317981095336251061946542702855585203399037309589874267734898023558000165011494905855530670983319493218234002037195123051758366619604020454321753115423460201251080141147377184595113457823771108443426480943079281986107149097013154591555701010649243973140430061355478343768433732759979433364477851359261716857897481676953511783950962444103972191741255885489734230378936759367418306138352143484956263490186299371137290955519471783818973602440490094021438647319707907011454922948670569233060642326537606572430919178248122485482506450303904625613941899866230491427292237868919781256871375036511933645300623812846317819314567087660485766071040576615280479428197493503400744762505789271879446724435343289106028579238489204484108128354591259162094868012003700214966039108871415853490565307069105600507348215656665543915100826365909775885779351644308543698978700118727984809692172920942280590593270001307788297631882506112380383232343700521212783498376078133820742367524211255193280791093683146885036723533217669413104802058962455372973271652192344599281580958456949885101515750866150377305271533925366385110665766391089462030530044575689148210082946705393255357629234157689681235565967141624416836470148944249001878640048065425694494331825916456611380838014305145822889438957733647849719019591935614591766389213845466098403944754409795342543552323425772665960759471885982944948200020317031679246498241879427548726137758835179425453885452665490096421754465181173682265839547310754529604633045773433092760614302199529900608993126400241025641008267606700516531959970776564231088680834213006585395241538198609601794735624632112558630558716028660176049019957668830749649154374295353344083840184823179344588016723938468117280553926832650760134710924052590916721258228291318842293796433134070689552917392470075915037688510099681337607792367482396734077067614360058114560868359939857690828577198457210014355473900237839330592519354410347132911011258686115766842347860754075772982310558295135704442490084347877109256397953355268273775046209127474036778175436978350994885437648122472607591810325579959897038793113904270372431662805865926869368195429013857467421181139388200867328245184278025128994941656886038978420093334220749643915715770946960946740855323439278720533637704157906947067092566968170735957050080068532462435099721340027661268589279531367339027230446504547944664566940134995686255810808151416631914399552331927053676466932586053758258354950913958926475319164273663294433266925763980588782047562214557357823393489268439897100425074677753860282623774498892178421150744664193306535733116910132742327593715955735995909101676780664108000964033133007051261211076166944101303120492911540582940564877754135945279292536101411760684318863523123509225267038687617398105528790123056492974068294186152506762748679247841532501881845430746298743944091984304169548443244545214706842811143932242055656346605462797831964819988076102444542263931995352452639405653266506704169193275065993225770295688704581623390442989220559883382084961727813768156284348776495369955670187646829223444119089570817867439967707648020802731056843072538876293467672936288001042069013758545706132881015041367962075042619806649471238822207408616197712071427170677988979951744243793853733183203372734583835794673366760214731256671689063300988558874412024163415572644944486088223460670037622526430174406371718410330876240607453796700908152398290750802034148841085877135140099190108197879715611975397985031678041836079993499886019639111876693244913498909663793203516058123169095619748672593703970086831416528568730733978497771537208494104824051690590226645760470640995814985717560340407258778432216364011105631848561383380603647810185714031442060950980570954684015394251757087356284905957863461730153009737984720828211018507414636472549699039381418525838034781385726337208503714183636143548856325104544291131118564266007258476550646598852230991828103157069657278149112576960267514027947894037509274827895717631877001945975483364834467603673095162185412465287197200427778821994444168660667678240258827168590629120332426092976830779623236053301264412682166722543718527371769893089514858390194210070562504345772773926765499001806631342026437891340027706396839162416064868965817841986987276620721353734588028334033409481730873854450515760654823397048573830738220496761660726073085400446101571204128378497566769481407505643203551125894201692291099553564899361986999242822608862066152640603334843435515737441098637733006676086508422914484026299772104868611025068524631441421031022529506258524349442666139457842945378925440625037111663458226300826777754015801354072351978640026999978739527410411203052127600376894292502441198768537053129230503825727894970619973186405427831935212113142854850360022520260074606655396383030339452768802978186931092020687910455588793920824974129137743801463454656801218737162443009970141817461860894845609556430579076314708329659303305995138273688274925181430566174021732447020898911569149417867677316235713583529708547930009949414363694728928196940851114162105020185661985818271838319894301132906287965156367876657038225498856220288168220644678467008346417874703594799933757168676757332865711621286003412198071953356533351618569518865347121849990523496170390136943694738227773131132242967874231603071918379414148334524033019451390206805804862900922715812111988008918520588619320473516504948624786195972344287102472819049388434728291394180916569525393637544486037151436087331816815854271833418603940336485177319359479243179325688068565292909403249912064443107729907783819741615161322774117171368700053855310270676234211286465473850339322948517439023951239197777895660531348743172869571013281795975620247445484991195542172696877006883575356885412562781349407790013500907408976107530774866915401987571059907180524611903184794187688060115099099386538755105632184987643950428058801840149725484521434222381264343395142318155292567972622302594612861474407655049355996639607531709557599094102791366015383696575223844865208599063425024622016156233438448769623066815717910307089977010025655256315811856293001932973106095292200598677690459471533243707962515862758232336921290090647924072141701261101889399469643294428489705494934743990814375643523043172109484187678650845032421609278964816825345573320448304191598838348649907888429531240755909685077586917456865200097264171643752449218194642583624516258101392541459031974852978026750692972012194665361550069714846672130179756466634210880098039458984895742683722989731334199066890056859995065211629168092127566833939154700535687680479968514156440378337876896936506251376894487893785126148904280491424931462353189148786555812078449094851354875462168509003139277544815583109425593934898951755882602437697780849062412603319898253056229430747426386188565687850735337058078256085958405467517950629009115326224503226696210001120653978604404881099528286521763880123898967602982109249181030380678402595752204669510528846608557531054587076827212455090801599533908884416056116058180082820866772597303663507758696512883865188671952248205902460642606124382763023317838796886433912114307932571541135255686935255725074547148241022368277072766413547910371094645381880023217836922949581832757564942569370577391400911851592801959203325914029845003411251365466779213095221275445087823164446478763342147016180073241723406297800146349533223526517368237003058658085961995598732761678500479706359731835560102076277409557106536677401731128965888926069429310775698928264534432823840889650819630484673942055379369569999155636515220180214567190677753153605403865138507851825434220194858589143098213472270970291604598026304588105734071869253054465574846534529186177745362401777664540641233309660360597326257931121678742357862818300201086178259418634207246616689238474055320807937555892886955625667257368347142590246919463268236514937953480749950014314191322938387549064086736018042394624669184115531611180560210734968556002234302289922925674569400883615110995994500235483150357144066227018596073730357438848890064832243416382205515467457429757329532506329378853016708121712011174580763969047498710843074176046089710015583739962273769393591461631893313667704662985089217509911040441457396596287934101968422920265961816348308195346881353353007004679019421347521263252377605312110876844505022012720940592692946907507279267836247265645926280782905700885267565736615592294198598666503503568150805850585790293526397964717960054477644716320505045555802034818450090358234377756843552267711978618094121915191507741692100678780249846760210629165972477221428686791808999065055120143371326447613529711237877793452797832756253045119884001287836087430262851876629570370348749556216699780004284717920580832627874035145131487812566662597517500296634393702884666134593814043147734270930258070694825715180449790911912990230622493878092686795970490908682607493314153273813384447152066407040572418542421768714627203714940317560346485059776539568747629599547830745752990447435398890471401272939147585645985913650355725407893515591820662608029506144454384538847572279051641898657037524313206604181978910822830019571121768062288790686796617389384879563208629885998409370881910400533362873927943671040434326024534286728642437178876229761546450853834670101406086421179855333354893745799594525069198207504033131678515186430433404425979615733425005745159315430577556383664202942149640614237742813101725359825063917866571542828678267874088632037853342528563865054761089634046823193061891882220147461756267512692320842130775431895119704364833937715173786823168586853545577066586483570709683181785177044110573429762575203773627656060284386188154887307590350805419942256589615755470844065959893464532430718474177215994384944455197698034596258139533571336788015424013025153248194828122118002974841785173542604141330652213834818598268173233864175220039353300936486473463114919385825331303838056431109666905681145953226916380476417198338819949965387096506564995762808749940037111589057571069658653639058248085961161742884017927933319103599910692310058801464775644669894334912183817903942745197298161453392868868112430403785378744788126466038089814238233029798457346435788223284096716593283539288221236797585860703854839134546171287578795382335166604266101930938145569430702197110563766587343825459475290810224826168144691209556859085969056320383516718593903916344401612762030883727861847840664208481545195925520413113695221835280739105043504413555994347687392912960705528476406928580720158306256902611917789736439997504301388098513655019962133742475223736401641409769549504033011370120788336034674457191378337015815691008836306886795027454483656202621404165136519972961176720338831126112139294546561708471365108463595464811171137076109717488982686733749338782632404521816324855426612340630738313904238370686097577274279704595706795936674395397338698485684136295460932252134446250824092413327194652130358995246787284382888458532852718854374685262975777828547186242809990439743750972088238086203620915322540585033481051616655408496604453393271210781412250063875315974297511973467013808892883833594978419933636146698199499965940009378186070756267476028140675644498150226397449809682332110843635721537741925428649258923315817840537687900724045397456290854813605797899543071504401420304377582909704048992704281027015658257623532298507206354053956480435674310361802017067223096187910897204420226016495093557229703368158874831197072512797018274345446342233599780024480183934108282157521867620741426336806860798935494849670847424327321992107912335370734376377511733494601220457409825435330199371817334101208772882896719224046991883479900807725644645110116688218897992068535029760152882822659969586174479700475862446087057400215127016529371986243794555616319698009843160489079887893594340963167182954649440182997443657521095932529054986869244878382355883729284075808245666198268741450405003693471022690935106015948145334378821757699676733521738153005228313470478969600908355757965671949294290910403783763361157531877828243634169100084183147566110270841031761780687842341830247614330214640796246452086547310815609497014577448230165030592955175695750501702980130421558851239112652372475201018559500096955439309078861638601202041731976245971652806300229241901187555768684235740190216913877080522552050686716679262457510078478310772580766967944069491298335427390601219112892311191395338136652225775334186555306324518556607938678991643437825872894165146929827008101285609061066729646101702814092153965455937305731502686723525006106456933938775597832250823267931211516406843423059831631088961698022889690473956862044208855480546203214903044568337349419327913401488766707978187626581289889543653164241855557123414742241599789656271306161266112663654617635209981991637205771870377971193887272059677477108089445030947908811480941799386165449318058559934165387657114962414679005493513194943734315733183221559103435879525562506261568502756862462951710272614562750838243215630948568854965024194758902859692366996093063910186466683453003503093063199277717879309305341696037668016913979422313616389390399982991572864991849148455098401922638133085622719263162606988713207151974416119537541325211811263418762085419152293604032842936999723277595018118870529720965980455734528653907956962226325557650432774419700180560041966073132839530754229895178874367029032793664977429929059281699383036769285335446070101760682580059725032091777528054619732597927259393497698993997192701354114176483724632003185802800269388608326157905750657648580536714325485790356473152804372547849231681658607650276988408453780112771392050424157987329800630659557076345991425365349439988749064403231456468346000780731354360634419071530921130859629907786772406285431562253064932654494284019152297882609687147531440684981945605485869692475972072925174153927918663764784404106630555686981839270911165169809935627322314532720572782586834815598866276774658063794605403643318355034635489259036393383784969502135686017941589787587322753719212207735321297534732204020109673804613820163339068823615709759946462040440814445711762885654902615050990680458736854149825156140251165022685445881976549634934817000387995464620018162878729558002478625770820305578980102201534211394441149458174103549727851390244004470247472122486792223524631375618905470560958252405682460006009600737302210432179549328994894441518306737882438788899909136850686786534830211688600017236402740650400423490564892653449216712331432493202422711821268496911976109158833238049601430660381647260330695055260213771670747255099166942324888592112260417831952927183047829115733501311155835554596366633483818876402467538124622393484172894112681926130331863697571402112227796370931983881273999318376147902446959281664772471803603042192010141199251468790105528191435745766915058162929480809610746023016751086751291110633206074764020956633996966898634729623744007718348028224640644164440073542475422657267670894054112574916613478950405128667537554505140362964550497203564336161087167643448242379765136000067659600053121332314220437002359884431414655335052617495601920752709012015720549489521833595092379296708600506278576898558899013230800084011991451585366994070185361948692012515975927225868193822623287799906723396521166888520054246117784461745872779845515541491009697135869572070950800065576272068747553831733857343594578433634471884634107399883057618659110890097744670834975321846246134485587533309121231075101870169666480116361280500884507031396256740936020175813122619877889257999755885745540513842915603102762119907541756401905577756150894752492448940980900806888595353594048487481918417103068093778948741290887559268835143858736166598099421619349229130540275136667796383993226386710459311713932361227521849243073936788974572331498562004878931489351902912752349536125424493557413856844866198485259981608517230246897313178669314137497422699838480993109559717529897713693533736093787922180922778673553650715960207956032221034661761655982032939729924447853782479686070793642379684266282002025476387621743823688366525536299902447697550457720272160628966921784572463428388462774186312110691746805424334265422627923673189857899682828319371899906479204419372139080460139866215133763780341233847873700499163060530999062963923372123330864035085673841537712749617861483992805438668144642706878756766049465496945987624604981486729969660949265646153413753150128799288211257074533262089502680906630567435786587535338532008505805854995861052717044472585025517201739084435219753060195123203115849119162741527509683509930586307737904011549613012628653314028142283732391090507880859718796681834491399611833726338675996513014474261121392838623851035187525193236175979809009217766230031726358958684626014949086111041083369038915159909601099960835578092725029013274205883631725958594277021658937280207529031931374951047991605659170479560801362021403325204727928738064652639506628093697269654243188763533159067353464874626962273812206961418426165528648760324089110945694950361275227288865795538959082394274843555029839799093763591880080133857782237230972337294042266787116388866239073157974252297236896678676691656387693887014859208205705004359183363751914737438198425070591669884646903069189631234432569688487946108057505678784977751122572086639304516446080918939108025706976373064798359871600592810451255146483214700314801333263175586754953779046105765540027012723153595987128267593226913422529540981610977316109323885418946165181071916537392389350019035370507405207870305996314138442784949875050443204061883054621399790336109621743780189625871139935023987427224192193400758629615164304444340576721814372998872706185902841172182964115792963076605257495040960910035210165396373207898303636767581335909834139434068296337868601460355215323795522561676042953935323118871304607967817701595268397250586732988291202064286994893975021556975364639560817907810426044937857884685527242248204067355091933796381787839722814267215149990059834674893944823450869731440190032064847407186408005997433111844060899546892295958398877257782973712335150125215095149126025921870860968124330329241814455632555729802447429157665325980039306615923755370737936306398837684708322723328797213456203160949039159812141065426673422210942125801927792916125956850147940758335185411705434936697627286689612951844521873889010940674200841219082936637534604175217878413260707234417784569691065330351054987247694114876271477763324875652987865978840390207305226521264073287433995197560465513495739127075555002471145502444012997605655824425370748351634827082102455241270208323542595726105152743349348201264555637729947177791792096391846036577213461055864350111191221394013180099814478227291282881047118966561592160935985738971631309803478110446322086800168363590688719044249097712803930878213032311634231159477324826459028730117219983227275945527950890323818843482787439593412635168465336905276413929702602051214033519905308203772502152518778067478740418540484839251231827043217643358836418435662362783908104727800717118489809882005862952428837674329461733258395483853708803301569700045021338517246015930115720598956601497354419576634072088756253486257562039462170563306475045930702592414183379347707505120649136010510773879060197425468939408389448498323090354654838073997015242836091049020867384443187335973155265403928069046587565731648181091194183769541344202732522905387534390188293061726166579689406983259764131444223113531992287297756435147011616926276671436544963992535207262630582540858513507334726920521830425450457766698640536314918187415175729080250108377868853239026851271112564273936746666504591393776710297976197299753728280443826071469481249009874193774308638362135746419062986764576813010252802076960538073409022446859535451689360031538962428304343794748969609482508675913275855720949589488551460369840725148845123135156211270972475046306850380156093184413740518834495337057460790533434319564601137515446693888275718400499154191727617538999114453582479954036516569272723031917798226717265313856044820791927999012646167492405931280025703811025757465481523343976337930984704832254986861545003867936024931502266772213077833969593546320640590803484279487557232639002997563584637220756308607081916149304386791507875073334567560596533687029355236961110477919003100456798086384601078229853710527410828263177514397303187144809658987710193364040191842422922136793555283142030744559772364903036979670845345972268423137672964544285943207475400593340833748942335750398108028247755337225518759653081441414022521742820814652965636348941678528470617933264202142199384069381765556540242093236951899158484654715748317646880972022652630528755596791804036723282923738449647232447338126614473387319870757048084529032548292175005325058764701148362359499571182774150291721312814922901594827050077691845102491841702808372282454290910496795981275650907666109122393895720912941133236469255138053228664205701874431616631558761537602878409809844025283457053215943399551337371232558318895700467808614396027973890536211924363286950913818287284030131612953479221972780580407697081465154145643324464950596506054301555462720353440559524746261015356370547946871144425504063877050753535644504206880188917012612255636110104838017611975165568177342883391802759156661354600841134593961726932883482452690703119630268877239627653263991886004802055690194027792559999520647052445711948510722569597199616891480028074349271021550845146277706776753748950135579514238730033569727551601606192043738285721533369630252869869048481334924855870413375722045288845512922468227907040076410297343561764617833028521268011598870292943900949968663137539557730785301380456997929658295805839787973144927480426088336739829778761615943301360273704051701559354149413368379641826519124760706301280660561438824618408757575129164321533667707300748970217209002320601791390048289829608350009623162754053432083159744284240957049687329871563738509101807573722951019428397379364921497535099759966737388029808053466261500100836378067498225586659319722842460934803261826170592816184198930933411018843263183566997416578437709046834952355652464803838494248777086545779079514341806181076840344146006106098780611850497653320181701939393638777770439305701891710738190769733046040534504655321228083244779215854871909292323189137401542222959783188921498625156738350520815471956417211132876693498220368969496739045872132778387692674416113838501501581100828542641040734235276518731523254912847374320496840390425054651520704452249914726413291297424429130024784255101623045182045702265214214484722261544297195802562435546265178999068424250860735054604434582942890374091663534011613355992174739524482050959721671887710097952648951743046831878742255480761529166774675666899457775717402269594348835813648371002248403188000308375804656593418494452227941941015748859739866988963472040864210998775625783477495706916303377467271406507951001168413778402982569278321688022631608110030723001255901531359555598777096481520994065086740308972740222846950281085715894905557944484093247366700982637348771939248108388939293223625085164031479003236298857907592586963696808314392986967302851067693342860412967239590566048234845030789849918046281391934607678458146705751334754446721879762425726538278477097357633744424137282736639599459176218068677432839133889866836169768817539492246455142793338045721177856183302707852255511021394857801752197228200056383519708013244777853509507680235075352520343397555041882271012310381994978446500432165382080989940094628285648227448120857764710056428751192940250968097558198504400785985925866305791801106094401475106383906752786630289551061648276269441382246742793616742097359598810410763864175765496464812613971583559327459326155872669880776698897282724300484004025909074900347260925036029595617002050639289341933432448267978040782015590414978173638820067127945898150769862370452103848124484873038484861162337089662608710831610348686721157715065747655582278473371407226516370821067080032312200972348542033576292401469603004299172323857067674704640295168100210475253573785373105677752474899461023892425317914179434772539985202419307298737901419181563686981655282339301539086932055849812596501431953216793258327369806158452266161198469558081629226508684408164891419376731354734684964119570130838851552164410413358105133025158549610010069020856466703076135379729037159755406751550156812553629954885605549166433815659721660621138007943175776896280611102971306954652121985335987329286488180808521209921285441476774253454787943627344632917059662545163885802630465892920453281671429386372812392171276048167161807464453858167059049009254083408278723677024680440834934412817356273907803380982940071516421598339828228907492281225088222304576681828994807701559699994277602704877630281959820844080972544661857919047777013252243062681981777739193296260005034020765987919895048175715085455705148837374426582489979957321854195455765126169701405138596814518373294163117648792852633109388311383434211091893187081317538260845612259270069168344318429825185750802302887731332359078695225540383841794641560085305637213925636228673298087410747827892506310296932680744809032799049429760956692379911036054719789886831855383169218675769369309006007186198024272211991652055103090320698742628076248288764431784557753365220864680968597570742038393731395656851467200297662891755298558540125597600594771164428448101172646153630703890806624949436611515994428047205124084589420408586637527763840899225425853984151696675824027098517778393233674090427764095689082016592533792515933109124186494480047443305374268022949758372829387884223671853099020337954895925983457247297322679273201135267833324019356536962371548928715672057246305167512272929470301949475834667398259695120542136924223111183229251668108341240040834172613710439389893375897162298311659698853411618534979698082018929868999986141801090972540628737127528075895211958689196914511220688130729086018422051127074856420424585382115366391929693216311220924747453502925242598575454742097171474535464848282727144738079227625977008514424646338561515538342782514990532663853944088444818085691030985125613406101568721808603574041626822120464243440742813075245392063749613465539523735733508384722001108549014486731055463639759626259121408465063356677661646369180312175783373528437973180748955957026594440429591238099946413402265294958875596285170311956042797488739742177853910549600051751089307103746292725993631427354206675210323194891844583653343991373624972432269879103528625436408996880480326758784513230296679339655219145416186886801891064226561244038167948767559654583322012878259710075949143418682794355317583376939702764505205539717702663715098583914626726077749209825361567037918060048482812709927731172881933817889491506535787525372365069720860995325315058967594180278592576142328009970903106788659599073855547259144598994595606021066838831861135550345468231591972527901289893243392763328186276128824853419404142233203697835685912501982552776937287525534797422458436716177045361203096620089720837448520350408953214155287462263007696945944327442264317149853452513158913451671326255726817386365521693687814056909301970657906685169399296357146797748962187339941509959597748051776415052309370509062503459733214703267386368163104146741671525050375505918010661652644127137887964041785455348985706133219107310973050974680570506447998695760220822669064870768400619000364594549554736893251120858078450052701387377544660377504799384153858872035455117690412723385278157194596428603040417219059009750487032107931228762122384155102625772627781557246455646683823120135447081284822679830566621919657415190771613677404865350420368515680625138852762847555109122778787429787439812660877983661938511446304862862446654775311572187950829385105984959342249610240784440208606285357236558994550260385904937431769870384529143815799068000406072939802460122922997454386740674837504038368411308629739754612825209997249329462861491703030273630122459959895286074226618993969830043453882226020022363281560415491719918700028353292179684554525003357514152044767144329630994231053355465241194834420334968033794392481492084713812334413062999855969986535995208627835122913854554813197438876625424548029815624732966226712780428806516242785047300291836598902729513694082530550570711385575664422577516626773746824862546102953941457646580451195034131051934653608910152672854227793806913807559709198151196468710219496678083202606339717502214997190143665594846713831276289052126763812886036596432198415564286064992358758046775188981470006473457693553154642714185444092287426106547533326404027660162327866760489667435425642030181790430012301357707868633404152164802604130770530792858395293605458857788508644907259648607006756699739681396397705456266734982387418638951198235572616211578450628898015666663495277383407351538120732058878560882194125724928644449650118114736602898565717917762864854604087976067276408619965181389999014121494663091943999789140813929342272773629273528080388790323525787145292574813427750794956612056771924051934062383903040446147963524765604184676713201167354955354242296345008570940141432298646825781015867621599007803843686837672886145026259952666885990718989785106049517331866076342789606209130053965326826580558337858273236313315172970151415077502844507359204291152337575435535827979045988081501320308376199960853859539435840874629369845023234776883742246751625341112099446026051103013126854368043803003116542110391203906899161582244787373287054669598285390784259750463598793598271646089299860387103895708842114480002827438276614485211499553188406750922681833835117460219602313629497801954538539022164931336536773917768382371590638948838922739312391832572598474045337753808975794736495734692967171833747721534028263175982855912139955207010591961020511943778042895340690182759194448171378740235323746188088685259014762707301322625154201073496903051301817845792935927188837633654053882844483878925212027234707509879400840327023519497463121718115462580361822906347698719938105276869100468150217404067672809723819546064513210775322701855931474759376622163207610062637484832473239168563943839818206407688509958730215395432281916327719492347302606654516536379406745108460301079300576905581567791694206918105004770749331368806637921679952417720841403057323124853309979210068581974037035488015712882922105905981864897104022755554632172465720461282490573047748245808987553519330309987489159682540755582610088956049608521097212843151820356544653442661030979273318786072568885229706826540707388927534094072575493561824126502146389336304559613116039124996756736580225059693716929878314897028495769967209776850483966655851721685534552106917686672939758776039223726808933011739770007562893468084957130762707066650417088436488853890694487859554954003875047268693507880815147495325599880028208319546132971221100903105925419159179334892552395549508814284524060470898603512604925330428955918500528467445983588008016019946757172347933965935888800789272884687565423685308688265708031809807398751866368806707784944312585274535723585599574862679702621624895993341826941611625030292549465810861933837542201298729824684196613445725146167739054604892358026212654549848223617589024487624268017343000574927924827948755201770298329837459145068679924216063091885213285978368068929323126733554685168065444125930936966031566090580896714773654451875344743582954980009141441896711788085390562006406144495057146688046345700887663065101613761728391155982728294052287116008438820709448357029486612221152607157958084472181976238135709163258463243877305033947933676802720180386167021095822434865665964234016749274515924219338775303996259635412443066748712924309771782885088231465272925581438561811836874801571055371118941365237973293477694985666989141037258724596723546145505309851360837047296718937850487616632014871222118071269389612460656293120368917213460102410003676751176999077532477417162609417532942359621667479208512416588824946350828828511379316873254442283332079180321982061574374346633687624254442583190916721943601744939514131400786719761693031753111494261947032267850385740936208203699282356971327533929251787756943858802537445790931848290004719481588568851478290058003097342214955465029008156192047321337852583847888923711415912266641538977426997772803178718123671774160905317625788374536578860881402696194433167600972933244394814293930467674859288707792189132958489318730197049769496793069932420696682107993634064817687805805507247629798182143967378305318568539969916530822296948926556611749624408378820346195396543482895507875143402750951473209314127928790668107835699244640229147108214546078497107452717372346900614593210277837091137216329390510615040969511375701376573103607656023895043454243452306830827439512825110491759592950755880986255163487785638329149205604380637700538872491306055679778600514980444034956338529452379664305726393535815455946896610531973975606557910222895939505728234807245507730590783912678529291502980873974201377144603908223510138808763667369096377127899181285131557586056826293732216791329644407651278500129113163286605422017107532683278318563095929717431462395429966674797502552248808038993635100174843006493057101465542438701971679930272094220344640118083351988965738797838133762043031164608693090951834789317800761881605450102383530725473772082077789079130065760669716029390472929690038663555300645369419789726639368341449772680443961671437047230450438550419063516908632695635329488935437574710179559303100765040121873401474239092897954744549445085649739798242726131249946401252804786289562167143947515754836662055014700516187778385204324815751492214245597605932042573963549594516927172502159930920246622300160051516408914247003408786359095592510990160449153637926244424199182427089616930576508111039684720904563573562292015221294054199520460803492001799907509187290962256873426330039474671670353465708587192195666780508437654348447168247553147040927575663738341221736743289029045285538680019858352646024532305681318355206017746854204964214514019231031017119436071544311884033116373262728698475752192206380137060371075803016567328786743906964399310376263779825280728339200724245495060798042172136214051240926142930538910076753196639797284024752937756539755572770192867822090591769027440553534484978526950846596912114522582015234096931339859575773037539754677402920245826595532634593423496489252309331783042161126107430258993037411503401988130412903768979023107852461060174515562530921158756626735928364731666147696102296870384610664157822447109993930214677274989674248490364763597890479235419517044071276951026141030905825848342734393278848826619881446171239833290885545097634760509313020796447658189532672979238498618841268208235050955926285193388043106518755205777119373328404295191172788523883393698964432865820003877580973189190430995191769447748380847365156722510811423254568834717231955513958079684169486100137449082202036754125513573950404246366635403712464224857687437668665243262491694656063414909640713493924833839167655378575623596116598924753680384892766415708225322433967175901134211642740077016786696211266994789132480032472944007063395196446666620513036371674996303583671039074228316277158886662452830649641537994937627493800033495591330138596463532308692501730824046756940081555545855450403548828490488819829911469192992661723347981298289414668139129401645744644686230063448325517677504931003541578778381412803711275539690142126451759939239983907852123781532702612053567811148512451042506429039286207020002636187765411487459859316917509575492505233694044605094877094385517959215480259717512934700206091057424738737899934600013774215387375021067404977562962312353704915185407158702835319478319832388600745597909407240926651330338874519777048163576197655765963436374335514807152663995397226327686899553042213950371375112175279201318646299358440033516604477632288153552462136769015568463111412905777110139989361498629053662739801738443353752868467717687327000220005843673664332731400892551034812575293741737184819205038157002994584362807550491378079518770721425428754144737193676931094382795477764220123624246273385510593425349916162296754829598467782405732550297124553888587844765475119687417966909939730371204403253449373513215921521541022041835042812370278782557627092163845492717532298850006663553036221684783593310192977931908230394012696617422468084564523313086268034017668991179880335730088552305252992266605166801540862717684485504930636332303263401624081342015449555470078060228915626935519659140488066509689178561990041485344142136524438981465416807656718590863457429588356666003335790549988440853843892430990133049162462813447542546464707431204957344248301925650612049082371831484476323174884258617002010262543276603029091745689129494659777502349275965315550052911306909439369478916822357848590117110572614297128035045035299781075053086231394883762713581000683862176142996486129509958740317015908617060237534025294485114170455056718439764686721165927999123886638053124269164143947238852910037769578306812864577297193369679611639369555002376437615644902583353507068840629368241386818651826543378205196647151423568664588208997631841964484837725518001005936773837177190931906486111443800877832170854047063546529121874804360172799295438908882095329182504483297416661095871533953849796817511860143629247481665958981373276130651467955738138754893388451780174042637902289516209324882240407843865060545888086996623557304684792391059198968508648373936837065507186440510130031409082996635858497046199838808640012305365119850040892915570320557724788704002436919048305268105660418463115492117614478526626206102720708196187360586539067589916242622580085953733471006526590557714844529782843157694479861973941719280827278221603679830923171003800454665949377861973929826172214415389844221389430380182155455809099244939367718216964089444507177412718998827666081192425469842186013526528698638817430159651403355160732801433089206490312763702610961354791252595291789545961591633354685088222824913757474762329961191836841024816178148184318742996441686314337265288302290128280809384733709910223041478663013840932158730920626122834113251151378930228962904845032474329222285335730088390337218434287149285617735538753000331079294620394264323685579521515344908109666265093643390908761880557595810049595716920509454060423924577169657472971470649758995757848124004928863491427901554703561568223808040048779704080297557694714799595130970576647862739818133699888278137301071827136121631364331979901564704442290959510143116672848785877561650832246283298284016198159585814077307827954746965388394613760168165880383072945972316818223316673216970545130135513231560773472397703989262074068041799181472955013903557595941984518104475900208325166698904272209258739811914575181028852111689147214637386893761456192601392596146619341231853196675210781421935204254055136719748995874283006240926621148019279122481246866558913259536739816057994267638342780720884912701057351908401607151496043099188073711852724877319680408054917535214018890320957866360629243517579892354945973578871664168962281367869601738916578119206122271198405204024570470268768942699318330971816057792124250241332933560739301962632042353453368151757273338427221821158245444743941698452142879797264452280008995086525641038934889259202887544553552047157977892134845651838818745392387913806938396129070367090935400361336957708065418545167772268517973323792516797352569157900666049697623411457693485968981849916167950029370566518893127747435484985197103425593236425668684488092430350419287136613003916239713698101860409206221011265766982969713287657497030960341110092435653008901805281289501103028842796810456972542172432855255976391097757422023225547253947182132860722887116324861425034608743809105511200887493964543218626067155624159920362753792274832736832964627600402159078892505240468676357374093754006495771180056801613292879287644813795358577300507920986484601615518339435451986337929504426540797808442696509358161291606423235911836619169928088921981253506727436798899819679966157802246267966477820156833064622328089201950657274872089964680478071432068044804165196457443835766767530447490989967201780276135211900756596096774416583020798292427681643708094277419643794987158286014494486766358605601142231695919945410868063081641818661752279495322028673423248219548191252702395441627130806666699251174596725230338741028609455187949047032490360770034129963649057557320417372109182254062561438685713946777808220272718645589306130414856167222409527002569787769827740499344460006315299392632295424898277032700958753003747700456338477443022171837142834993047591858178756513192510490829969413701623225066369956366392764381784707303536641211441261310845334391429381076563161676692965256526688409141753383173752402370846758151932934164837208506559415993594276646985692141946184791783551300451880351691191511744677604889104571403671890175532513421561831757647179500109836565462902100627990141266749285485157218742598274182064919656977117729182486768565301512617718072791103277792438280302977955323095015011400876417749350140661490785977639291568047751405293628326559861185478471184927925538245194434077710248661584907862855890773401461203999679076051407118777326300234346902759649774388389087117834249617389516841040028736865286709967617294176221227391429400386141210639515030696633076327907772183308235205728386844726626156696515096763491829514065733657315643322275172176162508633650189424545273169606155172946061682663074481243206578319961839705361058948320769844386223550771385809633203056433763844297366249814415259130660584413661782281064634067761786421974300355772550244898507278329041684658566703501913728623254235378093694409702174230811144914606521840482122343957223861693063505981053255577260085604527039667284207888229192587421036399162848854638092684799706271093770739998521627373050456377207335930402496055904117266004431042715296751648829215976049908450950806516889098778546692253167225693990921273114627120029660286339376633267279753105180014831514112657686422953198665819624256771877928283867016300855121937624196876943397405498297538950488044892170010332388003139619543872222138694448492706836164403688532551686117810106399905450235985870656605859266904359534498531374884459214307746534461651933339024051233730085797724605046235102853723146546415896016765845441360621476173391042902476058943109950500989310240801106815715554355612543721610700097467468007708164834791598375246057053142513917338706235584783257993618981156399034626962162387685021761499735064632405997809772939907902137538309270565298229531650800071806864182865260459168812049212532688752491349678931990755880823784613214389019403209323385441013063133670795200369599808067496244337506168789243901040862183704822175113763558117480509023288772146664628625803573378030928365755705903321094421460232215644470535600533554426348910163566060989984249535994937548566491540086249100346071051481981950748068836971066711684813619956604882621180388904489951412831520472996716063126752611757835856492642851225253054046974720487378700563153611060091968614627858114735820414591303679764008679096648809154204730171597251346978534057673295714195256602829099568839570696515036566261887193527729153235640742278340044893585607047075401205138928449725840025062677344293676795029919330536603342290849149399331177572241595384097808475379454285245368181445386033651057719101701891270234513323252312324821852524775329177386501789816131755885136054604902400670698000903949713488617274578697334202084501997181021483893393720745256523513275084516998290966241004663707705888894755738851860084891570783681644020193402575074983137262130141657150529881768069186451471683915761555412567760590790331985282983008059511108121140642089375647938099842599984980056332770851133040666323392104556896490145355828270456321465431829667114185003455879727176019378158163893075442939720538882897849736933345998733561989837320472188535888156938868357043101694056183814617267708607319648533359266102934316899492516729328867520297117558859196208558596320135525023922534477631175610536180659527650686041457825288292782918173708602438509490891988012244617452231568456301278182179471553251520898885411240302576662074647585096655541855667280307974125022052935867028321719322676877871977119887620093190737932453351135140244881060569492970182513400586337832964989686145592301455886897649065596734209125847479443205128306072832719872754023087089641718644075296503887322550554083582765404207117724349839725006332252859416459638472926134390988393078927057498303950124894007514734576879916421111118589156844988469940635415587155954380649200037264405969368116802437475864022283446017798658657124242912892935625823217576059642079650539363510958792845727797258032987505110814239666141131626966039053206690603749570758808403408499873269133723124123607132830260581773760393942336917436521567106452234830659966027533553426872875360131651225058713769798907034900402322083348368564568770498408983155125939128839170755598929506951478715146332481362838425999612434218962965703073946933714715057944217484011647410776567013465569234747311476480760197114458326701935019789466939610182846819058219957476790370887151850262898832668285620914184840524126590638663988360986503458587421159400064590368997101539261477553407737912832868656633732058565861512315957036817878489869577113167012256428113060465387662598399928686476520005566424339649099182422592134671313789328008992311735368335852260436028252456258799574940254840279454435297185429043895985513530795580024849788527754292170759359281385196808967657326910860154699791810240224853495799911906469576445434478233677428461782109458387529545432347482518294707389035372443019673722236598601721240500795852956130127645781574001323053805427214935279106686988138151685354268351008569962258262644964566782538219261249004478025527597414805327323351169253054475732658162300317273031739366270377383362414308691433015802320560530131311546966159950902831160102206419549790679316326764583297608590000475267752130961757634452448006224030208317316219832589114899492358826963539052420806380883214224520794443945834158780401063664949835114642751741254083553702047092322337797170224186089024860912159166555569832540577117242935057116160912429390143863193097415942200628598032779794854007446838492174209387427271849442255799601393769210085072510760675109188689725133206772138797429593928918675800356822202090962084087181753598290715595063834084787069767619320224013455283376330336971499445064809531912796241269129567125613245546707188513961110629384184232270436356368986757056181078378866388522594474635258628396445186509244567302819907044949869337739792431902882300214476253929844507558435117099455534649757246844901626695421278448919181723495840809915025503955031686963814183357507631023219834472538415117518980754474250138963256216347341944785255668694222570355051417237539914635779788650524468367458023024702664022134447427278104911450733980658877391400923111076676688304500115088582620856830415894619004058977181665291625695296341089165404787415220323248025274184127351879702538918070928771247158301621641081235628366003463961536210076366342165712704185256013161683580118329751042131335074836229073743649735871881436097698785063269425823502208727195826764624600769790862016409393897245861433411922406772366570151074067626835487005211151218221239555651990006614513041989900819039842957718961315907001143098763487863696625695271329217606779487555455905079566829232070068693757518303113702629425231794308556567638496784074640589971569230980064608623902411342306507942265586434806143647732540401742026205192892051529680631256012012410800470684855002650509983926166872652774667628325564995382873726356722304147040061656446401326807923063073812106784282497634874391390913872028217640695941631950400528449299636493721377678671157038648564260047177485994954348668448980976125338876730580773443203211440002265818935171329040985124699285756324211163360105808695083293919606350859942775118826732587722738671127158254377115795946961767903571186923457502681720154939035684147852647303940635188954410460835203023754647254534119983722992331675593821780719586458555809244257609066990872406141054170062478471243948086516269409301538282606836602616899717327920379358060386946582114846885670141390219274714815466958237235584640082189573620150152357381702185734725141097612626277493732494464183684030656994736057666437713198903824586682697235175312622330944551257260478405521998426126218558070885340242325090899543762150353833593223099555949354532003239461080139366696032113084321063164207781440142905397995402561221862758768640757400639355057862163496338111950006314772960577775717995212454037035824511664749438149967172704970704355415839341219370960237320332809925625365708131701511300531057322054476064294749560993635096327826870062004554397287221168915070486941962876607415005006680607568695072737077189557115525145034158785626514790178898719379864192075026749901956234410611110709185644583317933363863148004724954767549466574162276201940517464100100303107534520432130666890280580685548932957621044918359941442752950445878000327880364684812391628702643237682080776144198919222164740793913246908734073487267471481841535886193327067825329331716519125041462529283504053934783729867302345464501242956337912025043576073213755813620036833231832917774607085637836946493268437546184985073862621742694814694838036561582014736058421093911871032608728026265732018611722491489237935637966588471856609908870117814647659194471835360157968314550911425024593741740738540937621091543223875592004043534805939087068598681073417442910851005986132589915190580198606913486900335238735634003358336652841985948744650256509268615600749990817169838923192775893698666445193467150934393364132900663328898141524592890845252059464836989515314829590345480925392664969004426104275143727320583809875569322070423542400283950079173840657772837447653160704773419083631405314042078745316400882139743124344331340847880833526392060690072269070582090895896844619863339664251753867437244821695670734087229400613905658537320936145681759372439980497457186911033525785264050731147618239584928073865252366431498118602494723521301285278035779743298390357515606293956346100385783517870407313027187741658263725710515590392525337131953792600769519967259582657542977067799722916258235659252643942835832008377246588977897004615141742466036660698526029638207240678096417547762445512550314826187306529732826113607535589901088145281032551670719953337555848147157138468481236485105068986866129664936381675807077073592871794162713968900545532018931858842921849212155414964351448898081924696944987584075567896181761137921337434227974449365762418862805302459273993664842550845392138648891168029507941177460425093658048480670650860411147063041180909188120504394808762767919715692673416556793852127999558376548408367605777699248114694636001956121349535974350899911719391635705617318092605518735523396958046644028878459069223291939039550341356933678025245023850547287308080464021417655028558287861177244966798562241658722692070925439198504502972175385978474750865864627416301713789045848621911329591691473990950261051787540397819522292649818991170019636261695379266064408955849342235080386986753932740325387519836392878530767687410696032239521421079802177846987115220409525458198835980565024372509444623712768048746543185644654243451054569369497150424137927057592473802360520343029259474361537174488301587586044497067128795530170849708568890304131890185030695626061633949383048778149729467342201040758386361962030159056438771981259957092404800176916061953688577880497491284548674029852932462792294466735262313248382469502688685883177501393478192049683578076287742205877140593461746878169013863381099792134782012416472598157311613505511822569687500283801781354309804160480352020714974229834623744097052748422680430815824268716163714060752984928674561836088955575584664623960571842437289015063987946543995443448731947433393026189363360694119949709296635123914200597614696930803272013116048063142633209612279027299234937862629380409518896743991132288272155420871237255819967281453225663507961092249201559957075897565160256397759495217946406025323839481744029100618847548434356539397826813430260588732050785726301323438794366208927638937387851218756759114397709407324322861317985937434822556820391890382691282619198648830382319293062251937165018906455793960231199411678935525067634974234395462613687276452113405334019648788666011418018663009712852288457412503182730256047717150890783218968745668460845631961623178675643135386017168513750963937819404634046975557566132365600884297184144604796986679836752123986485765003122243611620112901328651198432998430982527591932675289971284566636794329461845916183813608634502681340307852620760218397391930349106802869264419381970978089455663371871546582735784793740781220426604892852386675923300366887604915872300592664230543693588872685764345242384170024653818587924657495555073844541634523444995334925041519584774301007453546898334949674998610789327119181676825903023368211939874020990101954826760801500186520765926862362001866921299546384503544956011957660783001567290836178032043438004294160548091736282893338265302036784829460044148930136463195982365080774884847288483400550065000116508264672116072724776851728153403845403199719789334188054378289866596608937248367133280206943936429529859439374181731794078219654306774863218084254997033002785062040973515748124685144561713437440308472094799363521749327322899226273827884946876781644769734849469735954669825737951335243749421173413938748052520662246023429795462679921344428312300920863112940859975394662088542532039326344799262537617319020980632546032028298567599257250705828781089782377625296546345995622413053620468299443851967620860362902132632126720056379735792275961262320515095529408596173759488699090073170355923611308369035335954763006877660962714737779447385128233561263493882511614695901170941689209373148767389531931571251963392230203926988525792952328709460889024963305192858388240592065876441975825788669766651685581334701778332279149882347135088623090882027144714159492193231570163412171600718958716497813962591889529822879739380720834302706982930921418205368911048640907122464034776588555417339723707534995254947941158367726518267104439540227036289495567909889150335048197053043751245122118498181288340450564759534597138462952892513586626892259126014588368791198073016250070623581128141687404619139179466664891504000543529904764141543666062446456249934656910911002393380879155303864848420101583003438494800996960915475020623172328224270171875483635525135328414697581557267267456612852195738923192696727841926017437525462472849907910295119658500362205604605084987938532316283354746315703547922943575803008950499128990783180534509507919847764234433234040281180248299778344011712971922971255447947652290340353058761063550634905113124102989464464241710498615319278909130143674067351921110545295652174032879398595199948729153956480430894707734026164282652079419313156496774983445622963464691859321584634679749313649549382254749630722715166937015433518988009082211142348530789226507458608805268297414414624621512565845799935526293067996359913211458624102287075186493153069112961786422592893488950713822437071127764976920218049277914593704633048748286589725554800930010298253251272027513717208668919532259912969938690354718665734283879648301595754637735267937521042326075659562034767710284147828180849735465569491734946414634997384512111383743396722358987770475011872346656142801104610764873168298737902757425181879299335120394963871107057723324628574117829139561746151660709208889180060751798282515134859566925877689948205526699277230071786640646961874273565072407776255888343101609052962443121646681108647539623700774540606816567548128416321921070257280628976996670943368987476054066763905366857581894859001663223879176449802297250300592834127086175470281327057954094569606469684008276598950568891444894758522471897508489612712914031666992104667238983883365716235860669404483170600882325269354803090155740633253037160585092325602762049599084366710857681190594052957990677893904327421685984526076270921899939177178524490922395722305092052416041641831492336711339269083665104079385291319478406543997273840003721669356225885225663306420848190576611932068641320526937553340900481288333995653955579724568689873107615724129843093441508755842163838070529739535340805521973972123532809650480929782682089927630967246193644945471027321840685077902992893333776379381903233466194106950935092314404078777613921785183315007214063019031558651616124963985233629453861832781273609838942861171733820165732522013615902195555646050285532355276437681357007519377924953097315562569645770157906115323938132913103616160688436304964536461601879281851437811078295927550981027334356210725255597020337196027387537004753616540637897126917149767837009634287977032470915759558949671851144139338212542941608394391317252543711221436965262803130167880967482113980860321746731531326134294439353816845312802396897990573505692932748330275484245528117574966417438425061450286119173607352983046862113978609672383921284558309373932263224937222106002577955072620542184675324936199944503670985530500868309238848599670767210229622105752942603214906156894481675517165143732825075670247741702885381310252157336866754294713974549527148786425001172444671097337124925330593000331814477872857543488572609998071718797437885491333253078131899919677656859141781128937890228144484579141960684159543711515018666062712123543549629678669687331864116612613226842522143497564174008112287522780040850954750102505428440189153672891416183993959964997939033733885821641439007292138180804595766193758622563111167287697475518844215060111729011156278828366359079355028202557282937488926527231956674205626283207427030071372478837744360876311361492627557590509346521698643047530173284607245995509051707602531384542147627044894052979902070453585382581821279332575966766916447453006312895843400623938165580305872828556301528601493805697053860783179188163434846822046411418975919517120309729789152098025720171545194104021000646086548560039030283672859219828936025491162237851467253992596945336280617053310254827165044920209842584025889128775667376794797914570463817819400057281586287971043330933232880582539441110381757686864073103655783265047666487871796088267228589228726557522929842641107905371445934688977668122930280461924470204902713183717881892976153064506390352380326899009051229651412995760064884940758400132297102488270777154251724787249080819901028369358559306371637336179395529733360165054118060583516565659194293169006413283855296415223370065081158552580376754074126294285638035768581151301598946816284178339280762903185350783591090977236197056809676413949630730349231856335059702898268885496209778664508608023014247680536239577794051870924532165614961485531467674266812329502033051919113086127144924607402763538414239713847754827701860057980912813720231757037305316068898117359454749818398781431615315490611229977803838321902423254128189906087725165013554500429150623583490001780793753750273091382089307866268760477277522084865915835757409631063570229805430617002646618054769667312514920889225772670347866255133462994210190795783267808881877530480799792300686320884678732895616282525007384067403992694827803271855951692949881396116063828768760682887333004747273471861585237689261409285857935111257201814361866846920272127719205576992770149855144452032710842627010726475141911311259094722340575075750036620404842951829397272930801522582813610525411489803662643865325536001830054908420907031939806440053210386528157203921492335636670670506135276296262513033197863022929145085068217488405674287503954266828554077215668885482223304927636380403080311772576074439789689933928118440231514184943099242731600899072051158075398449469244182958135873383282520961807150747474869358782659790520628216199203039946740715801306467027191899333525990848116147240070295315075980508505230668585526112429596916927874473018674072016164581840655575755279636195954131645734491421125058564241666896271187066168767083685541612011661947124621511273931466910178988347529361709326265587762848874056300894948998283297037887951734704666101051025284029383496728846724704505272049529454669311722863710300284913455229441255976847643014785352006373704929969944202478554636100811505498735784473125441911785114239614272497601985528791036007824973142410799977283252827989392112617417813174435753088041775455880232075746124555049995462190703213376494915145709584001995226445399103649284038270471416567908362494959604812372764605273892864190527550213363479736472127301777223720991488820150306910408290733600978887332905448342340999007650660061335324072888687186533776415514138436837700137770591796883089550016129439897914230563710437547806362889150928412832212302565959448775578871289134517364993502743737343021821376309917750981094366090801015310508403154757855437738620051350561856505445532384201585012423096579300834166208668455400798394468983695601915876596504952986590972422933831215327521527320861795915368748530779497321003120250865734070431116805612477492869141560777944072860954453150955695302319662797154688521844010978053925251565487159452699150429925892536646790924296036445169819051755655015088174955372780372096244076536790487681300245973739921080447760768242425581085113608624273518334620017164247129184615320538636307164018585611989069327880348971822069686317533084304982435861532505497405917404927542891008254184139416569190549952022412955307177654437931535641478164563475237718785177200651496414679106777991310357552391005425017581353648424505528982275480764899218764741897992798537616937653307693951614452205665317193478883613280726675294387154122000760985442865373648305774558815588093421152774929233294860927862016889268177384215201803175362887327572791724346222729128697820843365423057083453309109426320931864276290292936726036437391098902309931023248257633889752086934059916957587461648204305475561499965840608203251068190569682694206419178847246941823208629813135545827211037454726222242307210048698080831080394198215866755787039971471482148369645821306972879100231458725114935229018058756866580835471859914103119377795999726415975773182685406134128061314766508079734853697149548680400472536605247434976757236752540793011844888868110871744374802672992981809304205717437270424390279629618876415267200069191379134811097298886639227129344962807637518811689528902560673041852080127458888794148508289559370365170329149352786861574739863425674796044018660690550349933357848148924931666714499379926119968984515340105559600223196947915223023347822980585732714232219515194491991833920694913791321555043841255130246923579477110825933090880758989529206059724521757745423336517263080104062505274825533200853269131374076527382154296820670943151040945046745068556342372506792859925972433490190577203971244670718442488513339208082219743482071669424606465706850233011812247906436236361652522261158303811945150584222067087853542381092506855860626315428785517589253934793836229284447983469541915207153239536174802577113735077572965325239978745886287016687158493847513547258291300621287285045902925821864558938126511917538714665509313621636265243057989057709737524192708059569726482932429294729507200069511107928383462649796632063533318206712884385254728818440398197734154707177986099655627437165193943894396817747886188674043825987515223410363037582883340310484036026734857563667914640394414583467638695632004166857451551748450862408769661348762834677161350203172666621000181233564514290265197225356917795675060986752492673958242163337741459494318672021903050933235900070411657710343093615149402405302366380652802933738922036466984657040534631210578065528263474661176938506654040257601664047453352546709074238101232981783926412564262624884253815823649500070291208140599089431665872057054476666694694983402399633511128592145565148442010373693639661815258320294309851786851660188101866128486909650187550367002417397659894324642550360446438940618176294237881059588962355794781570501591740562671645699479142850396927118042045236245523436328302356443667084276926871140028320133676584183018772502012496581913719995738503347813538188091010492528601174888384388107698857879938071314501024723721580577641155155758926612450697902846664935641291935780586054481754572318632036494099916234047693432873023762486667201581550712965605227322181551094246075017710758677901019348921227429954378006673478169520250403106124180909859012800373743994709983786151272647763739593819254083582294551694057361631000587454798989153251062121714972764742395871579176169161347413125961042436048609487420528870382004788202218064676742448132412784146355223984436556077903030499353996955771911438532390535865680928346159289108042538690018361417668400226492515409622398151633430882649442790490066693868165784496280504502031703473501235834362997778038811114162099161507535844097457624950478866169433331468409994621570680643499926553418299719750494223761858633637831948795842891485837395271946615163304705544889156457084950807033071574236368800659874274307104862712442158276834209074409556542789789053225312393158322871791648241769324461426605325794379145961595117274388998524999140024196782825578033162326446980508729291798355724706020280127804421430192112438244166408780618412096355124642700842662413874914669789380822016307376661267586165624197925072076502953482857030647279312842863438150319606193289242309547875017299055518234547838932333878212121411814288989980639337177144972315195663635857350364088073712150771565400273980636616469417712673028029032885818168333126635009938990335806189434575519269851415372488245043931968838854925845139992217903982401607862517967704739679067559752123411671711324356108637994322009147731896232056206919154747988643976412462632478069860087817488771023646530415167209158474542871592952741645546472517954719125096228059120539443184095317500153614823464166310032502419281986297149150089618756783558632033932639309209814543168318927827138291265870348850531148908833327059396933669244750475157278065410729346318109465567771086477680036676019807321860703274068980070000274103557569068795969216853167902593409968080048315880436898175588205651585002993010813731893411176871416484701415546344846816865391453560267351812421243149637729389475457937799375700821656464538819504525773997593353346833205335049137816101428753627754198970237844623187660721527088196175224740865780881938384308199681862718011935140414034917634335328356756019203545365870284129238324276395690068925690551159984506547224274385375970928801562948300048737483827156877352541738117767432504550616655721272865069118552335781842006487932751085835067489397640488690188281942272763283151465677058330824494543833880331102105645849523499103783742957190847475273208545820441074885622724340057659516147859832001030433331140698979258161667397577097613881402990384943458078257020501490298162730282446125368048286229079191625222792465167235137275691126585175357479575453903781577316002039009437191329216064712776331918666799213676723817082617148431842625429537829431304897856212481269868586628665127250918511587852978743735866247083491711907708952765615652667996727692409132904769394438854245992380065025917931602608162963010934486425126694110904908831032909397825316289074681883398907481852137015620312490170852703334512258566132021549836556523724041806597354957673627620678731221855633803184743498622687588463840260932381855191023817152260196496765621529305730021923067507551263128761865719651918476470906328170397236346405994099318684331246813187734672834670088461306266467067193926996373706823158652951287627821580610161969806229515567749117572827127771144037885505042746329932808581080454195330700176186603364191550613122679137659853617278573084869333999282245228953019217716911379626860460801158771722690426492412100656541843136757141207222904519557229023796103556388057134326128437553793341344549324603779918598215420074845396963803420140976633713842377740475414974225558180062523506159634415734736197248462667964731986823178087276883619542377448192741446073027087168355786141168399479056645875836679178703878866897090260739455155183890648654925558360253892852683938727510429126252717957490678873739426484606150701816805636780045461484980593853158451203415028643748843982559656170694007637759936022343228222200361110796756773134029744372223885451335069757786402048299549353778360802986131720276785064463280664909077457765774186612756216521405374639608025865212098946525162563475749156988395094213411418856634687545504418609031971621755646640142658747363996578128845903805298658783373992733036939528911618548750934562507045933931856961634274358689009559737575334224834434831981266477235287374986452506401105581979152314209985721997152815236899318633191845391246929672867319069233712484454814698214158652933333963676791134262719196855201290940280370625700381272727384536660627742603917848656321523557408175293255139396930306299547477073088949699538457442801452602410734995441214244446463199227424645843684168974016829003240604004768233825251759759488847392688003789907918315115875516295645653432855883267730553494862264197694040447033335663237177811312873146871885206940444668273051684377218585004029124686725816342361007679187224839090479631295462349701426566803309652936241881579284367928445201577252261375496450028591001070070509283362854357082726244831372828878254511494398340627223708737988356015628268998989845727322251434489579559313662483583429060206479088627720169392491929868631182161862983284641234663481908070383758347255850699668517923359900518683863202882786037626635059574779220360811831251633844485147864629997154901600667703038552294798039002832045824693754081719771405149811999237140580591320205732769897771622982711127704807231163619813564789261798374046695704179284020963891532718649101743826607569738327915113137795460743701517803999562162101557668297440643306130091683640511142770483033308755113180068301112072726635780727142298039408068141487331143515556995957017416382017524501797980722562350898797970537350591253705610308686462139751012804769929757510350522159190717143968119437709414682501601205291440941057197209758473880893744286032780903311522375010015103481606398945742111663214093524823492315297498161427763547692373774811064321847270880996626403563302403807224179939143776862757415851938949290384070396905441586708830185199473305197114073281407609795157010559148169437018560258077680665795127238928150798804081680425889226888440760323236348088450260543308773756892213059525900334736551752912432671063124284493286654501228225541202430435374631777391934169519833183322326464532913721698496464737965838719202531928818527636923697062483055639510223157845897070180253166436115592897527077678645052229605408803775378706238677382145340771494880451025569877813735799776001527913024272629798930655304965477992550761753441751421170987336519700670591710906346631811185126651876525860242417254305227822272807027246771056802692342727266632430211423138665019165064930309224408126597529168554184197933880191565488631732186062206558466265140519945696820688825572665701188045447495500684716647519798446485581594479484328303720540822257236405190710228235845434879321468798349011756373633946321707449448149946490625161417424034440619585053074719885894833895244183122245637198294847208268835963465754390805695231257291560787118594684007979181075049451788053682654396934847250379074706945256915575217178499288420922902812298734233560031825459310272288787243523644632070994893035090255474811467994767397235255647893601418384817609888809056836315011025060913356635619453726545515323418345711126841353931811379715947568173445399073806854516440288287253757601849464649222842271015130929148075769073828509680567574881413420603296052368931553677545372482593347758421894323354272618658131425367183695357456648641250999739625716622738678868680557403396948794449770759517009961545074800945379778488462982185863777354394167746140288635107781528487403826323185920635147370111740282010149930351028773550408736785289300500386191219192616752588438125202027628271081688231278132355322438692350966118056407486176220301788456043220041088893323155346389892152776032296617486209470042796026196536830787147960361760151643216566462693083324823242333475098372893059497051686874307850768855830500864023988791657652937542319810482211027571799322230605014252539589646677749637787941966587117527387834169005597033820650683837806278037926091229349356183170340340699507208460963384143494221223333361409389268813155745971739613508048114754070919284031461175170287958393548799299807314765058984586756232504565367452291698442388649750149714874929135522138489993387029211147988043585672161308324140161779387961922558922635008730734300168927483943067329111876480633377738015644018904738897385743340734813543938949462349502663450976009053469768064734383599392002134536237283783607655949172672754029197334068919983879738388183786255234042075735724696302502487466355541123009816224286492675944484677594771572332708982391312134460554658179366066391235363893757042377683168954362632752122253657286715092334766128855105708109348477370700643402698903041893386392932218020081390588008378668119005856572135035807351912908686344384989911506836444100875017122561191238222080989495920009213020677457044866031971964341411732160285596357786317940172693685027950051166079871096097503390290139564923042641328585752701359846991307366857803597449304818339810297696633029564272291491344866979382543285361787498677018474922458459613222202215399919360211044314767912034063453905079116574527162746949212953655414028705214729851082476343849809980712707609434598074063532654437729166259785276122697662939566493717039570572916340221742741845904190636459932411714600719093292500117662675800371072115031474920828739478029031833443659284333482678830594472923991441975780232011773578341257357529543042754641736569834057316213844627793548382976784268341553974659304467821536923754352662099542540806560040900528995320774286546956182328731796279763270612240289758100219388033777608544739105745444223141317474581289027659425552948677429688713911072250878692717044944021677410613745525270211623024875638657285783790417591294234184981200439855648814224676948329763307175421461573298302412698829390609516738562499848777299262665205281882219624400291336813165442619354029665635601044222566756512402967872441047855328730216336403173747020173860749656082181972411161467660809860388147447240146088310480831668024068793136004423687670823175189826246049568135916109105933985577380283815096132516943083857211417158369682789570982463188133060857625549428870442061265107562554699157622002683695369548970169558744765138541943765739645940384839300241318479217958361871917836630173516615721865536788586086669229885198518688658761494032545063129263527131516377158580876436926625699211757131304213737986821109605865664625470383372959575180954293920288951545859821796565209118538072177378304761171807033419787620461470212750600242035610382135049712687108103208895282762192496419790113381012084442854480468321398430678407491020454528874455395416094867021820443017382161751628922607001531200601613229829261208212711639867600896685523587478714354461642737077847936993435637841834912721643926558360187239372112359522442750459259644571541559189714228061177730216455617493558506043807362175973504011072291039849244584171567411087803929359858302455907518506416192844855594057045383784184497707376607108769674884991679749595905367708116390977383840175650782129294049516668298970506398588628058337794371890191317490840416866398812330050958982856034582921906341747347538875811751898238550759991202683481057367630543844782560286050180796132555776353706076006254046029655607611870339210285906960418485171113034554697077585306329934199155873054275030641418115639311281117877913808655045721642648006747256037239878997878250387264943586683744987725258033804895094440452186182402443658613373210603338217463084976128544828600994654226987252315499494798206446499053208139069490202256555120691846067439212933679277912295998300936250666334978190015694167096765813623094456448635710331723998059854929396023700655158605196705213450356676650400923059335797866522116549277302139863007552174617381375321107243736660002446695095630746685346897720576831255414630762757922076231298869780848901811077737649662454014085040765880389746103293948480780985132653343539977628982140326533760986216406441946232898925110436353630195167383859856654810268788545402851274797861434327536564526052832495878803495963270789316288625021076741350284888656560597133609965483146952855548377194613412793006250185749525337771461332715643240283877091744194963324181505808141893057147841356221254058994126840750763405735625897729153749561073980672312400121640127050702992841928557440228227619171853025250495196366015776211294529572554296060631332752720819381881405313808048703172537556198587895302328667692039583844719023776420829148253547858072831045747604050671368808116479453763330226170609593862073491567134554570412874430591394486953152597619142890346840410818119524576742237316366293759274625628124554998140038979900177287529673722246092698067134115615708206246196159452375440924448531379588723523731023941317492735738188722367750973224767983303304524171340287698835414714397412153529055413312015331205587857780174224276823995915121213694972796986774378088419545094797920661313105635768805907129437144852574504356031796159735675866112438027102309774264808635277551957727753410497171626418962194260757015454466821408621317200450654342180633410105197579854630068408109353980303793413270618383552530602333222576387582278278345392141678919577102466654319638944172169608467811998570495217551230403160927812782290633667536089168143165228817036401809923449497540322999028146232630717166990652442225032902621065412894188350591279352497280004002302743120232456866021034801248496590922542264182439669853897884379384712822219664318501308141479763545710575777894444209340095731167078287052288297183370428914201748934383145412117327167886822693405167920060583202104746379325041241132647080647279624366064318228431740947673713434349612438328288666071799252577365157627029054945343687161072417015127884076263913785967766509582760926208278138389203172703104181403569477656831419582519174126655351849051146155328380490039812206224838196092706952292088111371932689785161654297820724060793659101991836440957879811791657763732445263355304097371743257210052539291633306648376090418381380723802846846268285829618045651712606503793946616137936612378870888110741574712454944567870403092623739221372321246231619575144276111303298770311098146692105429260236117899635773521899788647940932924161867965537630115650509399452821618207068354711377278188396737279375918810770204044147489820932845934401095796363624077278393369043872688007998293377918190598823052625492556093008680300985190023269551625099930419232622541801918521100730587942029455303573949104481710356504489469226561273181615264571977511289110370747941778688330859765787802150509274989667660727463384170459161791060215738717482393962244143944591031297739076576122344613400336053480234150995969311614605160864841790883900003775903816877031529226247337310811734947711814934091303117686107054460244328949913355739916586595027709396017853238297329663242363845703048356330201894567784903296181040241785924092792147169304928617801068959012174205514484315120031839712384046047987825010441195146710637538611840352070408458832086571664594408594795812981128644014878598536374113299805813846198735457990420459086902004390618965657985147971324203473387171594413080510703044286152115867829587825165416287916163922193590661976311166377999091369905361490697136016817966386606395763324975560871223288577063842201746983011149775721853445525846511314234447441934005160537087104983923806262733645639308997612410715568188389134432757715034326089295079428588590610755488783136919420296347736452850414930516154805111020197383043520764457127275686519407121901750761395216854273256926626201247534443449764550110032338930774004103790682103804070622247951975298612930300941544867968084301599001402845902380601945760412869951495402073465858947462008532691841502215343595765586963193524063470366603200693060131510324739020252185497904707824285627041272148362260718203871546355296996622089402982900722415050416227726946834834072254696880846070317673173836674609084706813158757458491107040713559715284944246572722493887933225960411492375583702842852554347950260719692824438691514565946176738975337290473541830032800235003006295147166476455464413402330682135420153097757956043571444077756086847901345439678052909790160369201213650269905608569192029770785674831270661507232415108265666362662304757061985228059089051243555637048300683590640352283388574590065168002441038244647652927558121642832611715397775880306809467848002413571031291368058447787223169505211070377038587412734772636162032018426072913766675303538722611599544651039284979914344711285155373490189516147179983244877828618817533014427737282217965241039477137477001416262770222941817226376485143186655117022241906864059678761690563273278522871028054507010044020305623205880823488460455446014688079413083606242468006849901130649060371998947415610712535683747212010202059541464325824459407129883873881342183943449374061979034182186566056406925995916494238586721019038756140458531611731457318343190810746884443011815672399224095268336791215318396162794192030646451761340912209045586868737458720891530646886688672631560687249164648920936596319058733397763828428175665100643746980651316012840486492648917483947552719860648085951847786095360483718535568177407493167450642736917794187876432265552028840640677309817113003846666989853875657507497241100460524646727531515005481038072710200814984292895937196666156737301918325956243914230957860222428223593008246670816296929878882388167446135442416979464220015110756948781556913481565930951155486740430395990067818871218027147703609081413327059623364067663526130412545675405528735399545512705122003156641961510419659358072790006988051802752517184389330715546563201229190052420485258922290437996372580232060847274806318271085505351775765520635696325063253191351525454714640330814254730737969633014814936019773193530607088679276767789122196504974715009578609861712965418426301164116790469499520698566541775837226402528743326478056042561958309854606826099582854773912174913786024492530860287575207430739222567448681707561846855348828145396823247980168871400321123998914659625416224161266783716042634573238231780527447908356412465069388282151133062959845067500048716680094653343732074746007705915987710174844469179722496447339271079240282857318014887306770058522880450585713677466907736596164557652884755070640827071639927910498293267050295089750601079062639106377956514532569447320944142610388841013454917987453401263142535918176387399086586596188983508035575338200746720228757311230546148626458757050607204534053123798120280455347422233382899491416406677577713955061340835191482232135058339083716916082720648093827869967762757059473974048663354843615100635705464239217407125246417727979201052692027361814800577406049077784399088490185739175900279584158862098332907905068712133839603460428865539209623553892571069416536455205715910448590333170945398450105710427073169702332402247400551728761167507588499225985988639326570699756017282300384317101934789962174569277599371379245197649937534116875439618462697293028806123524996911722506735405758493220649283040691339784946768572500536230120594869904836328164924888522954010304010658994586666085475738032991987022665776337554792459077797872092027325361075848313282579288899200179981338458144161226730295450823839681666390373079954011799036514682163485851342353215930081539678248002133048568021595305186718136772340719205687131044196364325756059335078789615704968785048452755711014366394689872829930629387209104019732333061363011978783649376445323655378153863705527445530376488150480078706971882013604412394326925586064924169760542736907460524428982047246296519265376963202172949359547916647768240959502359135094778294334936955898296093761192195153177913308039535520281101449328375879453228469103264732086832300673764892382566611031376482990407305034878830902867628716475370055503487890276928639707204258239111427254564519526760196167347329211254413371878785320920750850210543508997844825533153458983813842545971878751174134947277848673159411074358513536848316830651285091947249624354003449974942628365634559079533332274007057130627611249552229284517452417568782135405412797402369457924030491966462692887457474906797142996267475885733163777578193810636453887263892263277008792844471792548772067264670291113822605019783534629481602626299302272722428260520335566896681570289023731448454668885019682837492065401292150824406979803629404741169147502135599982971930577482094399907176921515543079106370481696788724992001453367726660987713697705012501085492540657048307359308229868425016235931455721942071853535919621967950322484418424266804649365048562028286001037199201538770609230618652374046662792103273036621109250299095389403732237685301027924061127326609921095252243184605884488592305995976471965971620135315215545736687434818657275197848506194127668756302551764760949280627842453571262924063522961649732312305686718922856901374289665091493038160502386093879279388313109387800599585331808914000522330602357265337245394051563650781074537243050025730752707463622348071180449974248045081390292067436470490984707350868312129456993497752947203565928832267576186311693558491587392804920680874828214202403704436493975389190223654412892029549867122677089409169253105685278135910576518146912480331864806871814922959927010205252403807208172705017979389864570269246190163528488592888754016007424870757426189303782626011691870300532120906428564021756726932849240244195731416581497687400117168790435372059242525549548779769818221486765108842226189702904406476200603595894679238593850207466965112265483397897922531285276313920536164090306036715771090037871738236941353129240904893473236533308483578067273953811906851808213425063603744882670154533803598635504414999105100342747888988822665738559424380016599046306124256749255742414571132840071190168279987311957143703374962025335761639640655979906091388890593886678067320280067027463999358000687161367584508102354836855189484471236675986637280560076480185461663379001942968431907461835262708724585871543197481070762981312875348125049651161239611762905215465636141955442056788111322240789698738302665865644095342250673251523158564511258233135112789173427651085561485470711330350484911133304248277713539065542803742188642702594653715151487242413254368593215442734175560513594571001918800774616699748507726893278565719161087612302155663626471161908706508935461776329857780510793368931436775425000202488025958889977068646379613457530804713085773568561891662396977841943465252474939660149319372243365450901886778013196385493498802723088857802824363195718683465783075845322487033000019573314892351761933672489337699617302182456007453712737733667184262285983562192092898862136561388109738091896203586384433652444446171918143487722961115710180017754065919198517761984783616686741593184362295113003579566039850208586549160095010864390635860924276276351500079013443417580722016651217738903197445073078638772446684360175034578939394335695833945352046537137898270356354441693177707516777146672789122918423917875668550797669994494147842079406442355486532943931933205228138485373031798476402252518106333642879174007891832074841059808035553817621357482697278020123224451843027586218968746555931318088675032632335918803810735635772742618151169846318442003682560376778585606590593907169372948255773201731187204319751334126872663910096466431734358387610449908963664305547155274748851555630950073987581051262578037445663925895608099533339559469166196832897490404534533002271633418115885752078465305863584228217883193480687864378308909454419287981527703585596252274224760270361061549680239196382458230011582340909149142800894114983829349328677461098189949582455408312177241897691688458423041703485439286836888469776422326148489821628012489700918583929081509400814997985232587312932849312142694146810182867560202463428333231387276716084872186741558943051086336160934331677091870132321186476105721631041046338209412386876736967802053456808233400691547904756312017511229304489629920179482794945421816299417307296926765441615498023532221521086430708044684851721031046008252907000901004481875698227384054966341338846043906732695123681356634460217666808036509039104733759339793507514744199503630428828437200476701064241668901913515701116219423209261130866483744066149526062172466958256734963769972115701508307039844993339667294559354208862493679294780557991982024367795356698664437543061692500770292409928021984504479736099361337546109387270519605132447910432423355415202283054611116883341675178298274716419276668679635345586020967562840555786611330569235045668672059414021162202789131995175354689835462670616104386654300640931304532660170650771551197136344518839154336052465844010130489051483389814149228390686956224251320916960769638394058484666216942172654396227267031951883255151126027606793550327168323849901564283995812457616606028076700858029219195011956993181145484933697535836986107133228121980096143925738251314106339046385600842191882869926008928144972805902305328010417811024022583747430339225069515413391118036409329879461501549794028894827850571091883198391062832527423570474849722113330103401959633211938415895902623019380586037359596850263479719660347838829725715265082958221842295092432689674581441252001153684747635431392693067376231217897202561935267718919611176117510607564854468323301803792723161895249322120948236636683144249237857076783057660525636463074084804668602118670169665336798250734572807639000067639968178998326569659294557866627603862635070489736925203037026823937578665644276069104708815882150055681502737364339652714260770155888831610146619130092572211026938640397178145937351510352957923689197527359439802631420647879542605279431265851031590196369062109077997169328775443569116919987060032957418588426080108418553786824432278826902452650128361340636750260988512665162002518762520886522005512678419968032281768601863425320616308328348111909875572592931857936149519594267659838756178878978405198784561986097499611989258362164132555134970452119501532781336807662471906247372333616591447774018304518835411803253241423611328212708568505781715096622422056595941292603330758046859792324166859096433620291431349941610396047016521665655576864068869693692336969225672248787340805844194509963943743286634517989113170698786012971557783419470123804475383731221802170554932024303535382154325294084819177627520149450606993864812100460707824692564026753050899409637197199311193597626681743496389972436512068694506352119388843140348410612161974504198212044856924196183929523976413632797095075654884076026622586495409392314768635695448098897161554368039577023987019536392901227752436717354196729432492199377195737405200161841596557909232428031981307164373282396094452124986908768544259106908210321961572679120656511648885977425600427771319558556455338741217384709398517619357819741320242976841859580043467956751255874720091801929318969434324024923199814143044801396728714558943778178852520113489779849062783948793253439777784466171259259404387288660473804010188977866919175516463194480884819755147186153214173181174659832730600514121682405606995557106361747617896845271584015737387006396587770186770267669823578147253896600490853968790268271985558416164157912386669979884348700646342289297231558738148781574594108574252614726550509411890718718977784230859821130428504561349469927892036404949386108894167739094172469728491394405646555772359677758394584104645566395768540618301126306992965409943042965836215877828638736322452826569000927039854092682672371820237827439291126818285154879903676126899673274021743245330525359679406902325203607979525695397990805379922771568788337975535431088721847830985265402206967749151663802921809465955396347270175574460197278638968823673541706903240267004801422171471391244709169587089035632189832581568602911337206302431609903008616574021412602126355818512859872986721393021590173976285148515052289568117131931609922655078477439440569182212381646881223154634878694762044434908458538103225807204240588168463919826731414404553593411366650155856008065748944019498773774949486997366395705070208525146870974229142755366382864720294711849515225398602373560061054255728361202228341233253148680762367656798685973524711636576296252732633206824516906138402361866068673462314485596632802676203630887890849711285890646633758147772827809312965694487189037714768926929239021320099557250784832201564983440639411628012988729574437250106518457623069972746208092070420761381609692977642519854896122753382675465320458656516940742769968954344216494089065196611976151020709227244620696569278407306182480531021579115566609899235304840260813338285778997037243512954254506454989600481915603593149843422829832986169480716795728772655102804304644917876456515873331504692244751081218148468116585343492458402981894502988958474021562000235472380892764519096627636039640051856333970086457818312342211383937952765698836445444159570877234283699798022136005585238628192983385469740090392882731361968184346147645972887141054483255662549135862982533141498958052541593041929113463641487219930867199537325184611410133697201554513382450396680782057286954329752398823243329728871249425192555235566447239894978327971337196158837683210935450685028006648667173625559451511542156011909818631844397922011281970842364832375195438340162185611207271123076531473745856648002713371875784267077517122369501786835771661677171090712309770550188661788823926005893075337594504874007045785533257196804804524177518419582346826773696030982674308202255570153672966851466195289385943217943530034382999451519774475445402986902283195577064347000769867976150922931901779306809612487801837526823668005738426033711154072058976205166639273117730417879416117325756307278082087752459597771068576646352251892992485004348194253381195012524033412720554271837765292588713011328381310651460896925424025862024800515910163990877860314693908329030454311779917189294110312518652825717461780838372642356552076402647852056736889466204134483187838154853820622082281166039906614670497813431538765325383740159320120179380267913810137502431553725763944685818174252519226928190826102817556200912943857625528184019091659942028765621576846224035381678900995374164293184310304891522191909942686303428239712617917178871507325110789485235281474603364866069225317114052862717042260953025202380195852307259590613763774538772962772835872870004808074054331272717968181428927170025217168183916362307782557650273593661886560486757393231598962927462477070820612563437355969712884679193840652312320156803029969151705113155245020232925290685881827569304724931195748035994403719939860647905080695440459731596565783484773861899143795027992536147083030722616408760234221531964023397411597409662465201880025362997814337252583219155796476145683500563660455626176935158092121155088717934715679240558014264721258314235234769655415683583227310584728217041766150298635102316770710479741195468813158115093857685405193728467325979978852091415216523584865450357777917832844970418633430407302001078781169893585879793721122647201284157830635825809838581762644831634882995712516953536388332929796019082530519390362843582575284463992884966998231881444493648562562898824763029537245102597217165425396994421554325419102378872461787243629759425871202787445791549040780992104340268828625169714020960179261487677523285590957474066008638862592532199749588998979083986318707916298751275724558850275391949358185970648490248809119746179632909777193767612254621772693055705964463311649567628464229652967482962554169828240668131829212559116332818596113380676812023519299645043743437758469845932005773838348328016477221532637957111416119131659478409462631459969351576864892330382808608130469489251771416292395577791313051732923099701717597288977021561652399828636800680641887538558083001100445738310999210056667833169058757150684339787031906836377607691030829178876106841983032168666203136598879863813292652089191560309741449847450277974670799310092203171531861620401548467586556810146694042504066702276276473419188446571093902229992454199604100206153163077937651927093824408347188015302635093743855929859649088984651258923125638574128535735544864704918031680460846109732089205147539882136529212992192834202795320216719112369521258302603436280472416818537529442774500067079374742513559799389423135201659438343177023035130589244393504437673145031680282412495648505302859927088747774769346409166788975610495304282506329265288029362182246365654875846394759281674636588801984465373022306101520770391307210840189179249192132034401470471770362383969033429296066769283558785433541963058517285794364110616454141767101598116696972909178498385895273770837554386174563252536997817112098573107114882406168420994777059686752438965327694434189803097571654260707377102956079633730020356434166219376050706967103591927337129414457896686829891999994601872289635992069559693757160113122635671550032153244425579597781969500679567637723814342972987204725370548624817057855735140420408159120395513965217726282203930714928447616595360553218385547459850682904476457853731719773663635955176252424575984147089856131689447109037104096025728428450809361900769180738760585596294469000529324156571285579110484573439397391839906132920579627197871603261663575452347051575050278170785559597006519505246524445949965195164880710915616159409830913700353072306378998049666890838606842313609994316557173237195696479760534914716401255763345081233136520650750312302311829348856399208539774756831576014579601134003508724349069059119648924226597128183095189247807263866354870719249865783130827236947962983288973017893867995508219224590544309680798435354457418742457123369430525289730653397909580133354201604809323414377556565649491199153658397191454435139308299514197379785406073493590208738878723030191809078557064590505956124338218168501695752310299545398455795006060833128439151094752772338582440517157827936548050450390902652839612609244418260893153796436593224584700805382824097707790215869592842771062005571843458594003979470647313189943851407608494158676830712117862858332298136169539641197838993186035304731676687348076672033495477475787848041432164638178468947114078456530549932200828921410223304601560283074786245187802916670232626352766062055801279869234275106730159767446475443167197554070580183734010389376682612783205299862339377013161980236039905509745921307649608926391058926407828942083840933545620734977103538772697952597230879006318536775152433196419067105485419207565021051662843356543778808758474795692931049178143025546463929225835971092853417357441330072750229299296365890558008988468501701332798195036031601115924040767553724147366648564732638714877720450965019451726996138601932907332370783039952700895737982956241107958934687028130059436576077444540434889887826920410858609331726475385753450231383359022616642096014687074051996139247393124890732510655783245583675597459787669140681335519187159949568229380619409946839681252122033817393981075949137133525352086807621819837543949952631288561452036412748673822426342511810862080958657322397603456048549907379340751299421764247147620556624576691359324787480558436207191910168924397646053079288371584855898740967963833632232155413955537601125404968023280522471944834135958540539495225414008577221775968811087818164558859850667993806173120433297528916084726872833033485982192064268469473730756288481144703927945034037140674746967408941493254172035217186433830036413584981521149604102163978032346906429365267646740978459080205588630687508046036556881539180230839042665065374437292396802020434578258266543348921428681295103648348437777721099508731591189327457873027306803254162089534918511199271804319150339544245604609389450361361861121787353776065741035433825708612578857783641632596127312942578995427004816302381926051846815373304865545437126690299383860051548523596006503213689147315566082919177403943079653953921450399128479889250010692613944659567308922516744249664651845846533778606931810087399870676710351668539600182625629053921094305839028107853211620263816700366845609008144392864360994830770322810768720576332003017943489255942141467351167346159413908246372909701917801867628266136961030441983421028069896270269315745152557238886069217030521040990497135689629915052299810801675796540722897912422011014080504811035726078558183768889155714867698687750049544379710926118047636436701318865783965729049325814132328216950341419598760240407369615398237659501590247469060580481288855036785092012888110667464536934774388397777102054289353140837710078950447491474926789659762082872003311254747767390546604537408715990458040927303818112840689762455038232819136167601067956547819492879704946904660006140152777167451792838479569980585244297934995542835824255130943140802443001721100417816917711159114758676382453511368468992558535806902587830152286497896129486224369606521425497713772996082714169994603078719001140228433623302883295612882323184895908398134317184429123989085893205789681863962401788674652255691265724592669580868459633103350202042076377805201300787644284098145523172027115781654761426582524432632561288452295264025520534993578692595819079112813665657843172268900598136130716874083793207978904774583368710975659847583996156213620414806559745545303550255263012389600439046174286650456815281547494338927971023929306745733614158626582948430037690219797242865331967549410449352137900633122988389697016911296483091937973993506867460982399102704677587343982659124430088905722681978710061354134599206682718480287988944016411291379946845285151353224097107717455889550108100433230620985312215376512105508999680873651215398516738515704870142762019369907267090796246540032209776030552041247093649753040186291186810427658627312067242227096096720173092214948571819134733677084198685126432614435036170103691457242908412899382374220083644842521913658373357491912886897542488028649873850828938466117389553114205776288688794114497141419363266738985561919583964770073766478464688795235140198432099880921905353803015394890730634833441499873000269880554198470617636810627508861852360093681518148716607452150215528752409664953364656105674738413610467418549098727623254960948740148427573086492966725594222202974920968988456477092266449529922174863710330600280580894991610133504966873451976581470846721681681662489531062109703237278719934785365792476134870062054128111983496214133028538327667307163321713384331925344333367197673678625043488265917742826442532353223731735875432583456656355331065645071476567098295205877760312120465978820621656731222170569402601488819566160919742616278876488404588821881884352039898944747152057545511027328073290429571909915121967002797375943713606503420565351447140772909241121501410353326623387616105102776923782721822572048702343316282317338635404640058929976506768345089607499670038644042139932563189297736376923893725198302800917195920592857598553657428288005485747271545926276748901755631425930575583466294959753010701330586163597747473580552332520236837862455936407821665947076898806225279422574782637195173889307970101980896699499158476209043316028047322327790916754538057030772214086189820483451850076173322718875075749785576448767360335191203196577435115654153430030172938116429344859831763127649772053177192395845900449069380530284913550408961992613422766466190138312267838974091764753991587454076396806633462144338629124499192323724855704224419343409202010516706723615375641413539398413737021673602831571480158005840555575853772930479729498370940551072141338655375483001815493283028043749308106427018219360227587025409688037328878256272882585308584080514802478225948124989282192281612046909363597002582380529363068598049288845327170286197151591233275210267478411742705044089918452939454944609672825014624429226929860800258307134460610467529931795776279519819759998622716648531975518054194207639286525842166572324234322742948300934730487111468096372414924846586225777360469969119858827530848267305826316194863313570593254591587415271605293278201572540264391988471755321584419844112856668391897827277381818250816818274673629890118170596724827050211124361013914747119062785642799440571126756151508909101105592176394456635883846128881101399372341858054783478425179598506950478471077168504814071687053454015447872595268927764124475000774532425449701131422408617507484057352324894171891978288698193910247014925510567883017530723341202584131290545274170225261679494018403155165035953032384323433196420891371437753386779742747335017488358192997972723829840128397111484036633697001433198305817754667520440465147937443884553824680668412527678523599477169941796264240451226662131289311367186320549939310814950754096089717037561095329680273325914174901555399826125133943502531914415874566949566975219259354430491669204264519354082834785037596664658736718295377572968304647405276668552411840688348815178862870402442383673309684227307547264355627047573118142615203181409222229124829206816868934304591594893926863060900276882293718004661930959927801491741078166406764131774692326684217252444292365745857579591320748357696469336856295149700310007524177035604088582278830698070473696179368592512867255680300384932249416149549035558203605704892165563007715619495395157527009821911027880049575741207318810052720074553171523707434904093583795067483689072584535214407284209507014402215295566278556615580249209704322885889676209581960360479505849064534107310157337045351490691497307237109656658638596312018043463029623185856812300656706339991910259178390916037308977209205628558266548408621506433218813863920038327387825503919789891342238125408206170320164529969081886765102148000550672301932280837458042098188851706674291304663839499931873418701699013661525569282070907047148505730731850460079107157776773395039687952564212782946967373242474825854488961076177387294331222932617854369015585457128266006971164949281827382703356423612887349429491130296598320187050360831584243398560749471670010401751924034961417246148955303990454275163836831197936315571661667546494951778818807206910752000589476519519469625587148734765317077234324662771772909203219730240369702846086490577487725168707611440268484910705477761045132401918121271989848954536633963898470322714634259822303053048815029997932716683037200093360702040311844227946976468842903529106083583132255093874848088076515773393355603082464846341110062565354257785782003683465556377161544400736537872171788443487881360522625250778099282690031890111985435564960078594403591762335103713376255799892932560615523457090253394179022233621460832268355759897232437351779829119677586292989887034686065743867728592735079241412941217354661965595883950411046268670572156955863076533619865858936781690806934098342677329747012657109054918740228561593375251405779295493617894871513316070091206393445416792309618586264523657116095978173661896635375526224912942265882918876066917956779374952107003209281825351188243144217745994164291579528044099185758056336064856341325054780196101632186543728289304785951177500065278426506334794788897153049785885568121046999674962108587753939144910045992217997243229752881468404476320055036486704033928276846045284372030971067251529024244108200804127381345920922275547033963295348492694909504613728779281186408862113734600044997786251696394764321388208028972209539384062819588153935442658517067505646790983968588556974780040138771071158478920823722591840194380557572398191608713633109588440350832139776728248985030665776155081515752002707035754070271980836073172249439736060259133088923777197517570860058708364117969228705045455409086529779803071284837391226246842852043753257023393757048706483503703497308103994754956851459147607111038894033683270855858369781737427922135571237368794881522931511843168971377003782401348980874008103270883479392817543124924480886339479050478124366764025607766964171137298618648227953007167518056483917168095158103581959451276504066167738231841931386965961898514321450413982457544059094858496745242344389092168884411567349453018649739708655402082367475944076917791165610702417699097008225517352195735394767255928540547996961138606881937524022008347578071624523060202853596402448930764585299825328717072259800011672676311855432388788142755909304318369270535619282596935211918303767390546956098764380202543695304775345223271877185057136076120504453958602286543318558938254871881248829885948022134396798615071675043646430553054384917548023643329240740601833093286800239806075766331669094737777532189334603649981320944951574860192255645522804270386148019802654268104757311235293106199446064728290454699695621943302589812541872365917334749847424290935263162000357119800476450152477926691034353167971752220367833009658047054645325967836050825970825451149583739927451826076966428084666041361250161287811402879092511630057416400435811347090329789460874237788439016560011495537304069785759150929241123390745224034215079185158141638642430335924826431696421799778721842945048644245203846297507117387468475210778108970923923270058224879947743010323569962757079257600554612122897735252805750147880149970792895191910882724611324116682397856866563971139696695340895742125594597940352190799103292360290667277393303168429054160434843016697748269771478932021383640830364727516291286275042567650546436346588911026794551325560476885349090096327608821793243856172916931242318923632820084763081424884055953140449904929357758251526233900162213504055937363148023888671937056461456312633414821760402203402235438583694247845125478615402181042150220490508206317947643609782397555737702631076657581537893542600154056519490105221426161447611412720547231947930700455995099055036471508208608608536467397017383908759778957998239990194603361614275404491871908032915172434924500007329310420526100285897668694427311704659346480888810057231100221156577139623405234775967473581246579788047446068276433864574785826101671887669389968310145196361910132206249711803971534346499700502641099597900104267929096862867222929351716422647137693145559782854546947664369758343800700921274247311080204461350055981784756221567808758102947901830020003119029128882960494836210690734164297175323072643752599775766194099512283754700903941904541525011784450253647120922984960576531986548425752292317816888158997590894325714701057029887632195072886989076319474695117341059435037834904209773219205628208576613056076620799661670452718278743352520115738559808349940824610728787809576172933393078516867023493616727597113442669204287132766835247643906641437689982060203363370190947699620249274483591183212149661642140103447582260750530051154932287423255352787322736784900711505890650519072335670681588735392859890802387125640923741295585260454110618049996646172804688319050515787585619719763456157476796073074587538912979083062252798466621273528989817253198641185839870523776890144725389860996598575638796582052451630520970271371224591705448985767788790364826329223360139468634335854012282023007693815755497262798232659632001066671952863272924198921287257319291213210321860332341677097363238350527529063946988393082360180183262930463083690560579166348799597109611842182284808317954773736437646521718623965691540316036347554068852552663534503874839611052263795788126510536209185961303648474573885566086506237871361015087279437254260505269463157561292740476786752833194202800959286456883625272820433109378640968937195937630942052546864762772877499198906470472194502830850601251056756403372263163785431854597974935132293106490165161336372781950579083504537329218407293447656854285592375418117809596024706736724779453269152471081940834983611658491937417147667898072630057429568459257605280567977189962410358697690516125313926367633363464152812793056498680789912742872397119144784917746928248079420406072500432669200015614134075121372411223841562919622025619212675509678846236150853126333048631714036271170129279901909490472533922742059087809268666882199243901358554084139296863664584807400464871606239469215955950622173904500891584990152094212040549891010037760759107197060996999546521807344458436931423579184711398477140927924733059979348619688587711584449960103326645091869474520074516318883144365026968433770359612254619205570215037614120832753322730843423834286286355699116612733701968360165419262498589855674760524938411820816076459972713974342710149839304542976132275711930646709067809282533305525724900989436656246803607978384381800783373401284021518173530197879920950782012518385298827796995949962753345799651163753935951639716756634197907499456578675953443820489894358334213911921330129136169121030775297947093482117892840016956785956227059542936047142539377402340834391700735421679815063979464993331174218483803255783331409120444825526118017756496738643592553490477065147059453655068138199546799902388538652046320293618168031914479621184416870677473922115735875222838065802850974096998524331891715788486508773934700163883731653052957189130506496112128324953410720052823171382623737602358480321606107769200782085002258391912468824778196535255829823697060102176226047023695940429884321027337530522050047689309944331633146007868833787040058129981810962143324279964698334767644678953437683267054578632524003215556642013703773929911959301870492760819868550425098278195000292609999814990447657602690639196823606936927263157509138420477842612276375678066328236309324283343728933138042094880126802969324394697266882877541528161576705029729094523898739341202522805521161504547710268747681478906351653119916432047973374553794629658564240943486158674394548356598303706370911233333179456616942579620345912027315567675244023405627343549106309578101679608898411239849800790883135958138791240364772984595520798850745667049899456228545775929181506259432045807125378129896441576587568751778905550488545408689300022553395424151146110263585682003422793108054553261053690241292716202606153749441712273383331729163805084782907299549749329055732223674044542469985780018583582408488963208148203534757264544114191464474531244064197020352935850662268269720561284676664930389974743292665027353428810149041055105655114702231709899836505948482983499180830913742426143997433680758261198978830709256360615233632750904568467293626731224066108466605875999389812409089489366429572673914777019893355498273252571829322891844985232659761329178967190325047934608214197198510964911622994699287218951959196445900798851679235375576736663690042049615085697741465707515407799254408151228495758547600614986979427125693575459480409925326318799933027120282900515966342139994037427430020164679467581514070698117059076654898565352951181719480460292091175279788949551226820750731396388638166558628730252643244550896177292886471639020122855612618265870299416138997205684257567975720839304956180974352873998331399725520797206916818016471613334611985375578118576348529576255648229454913834940081654717562234327341793133101187693531361033308830103089502054786362094564410039817638548537537002118401080252590421262202081019924465750080611998868259109081868428236056758592451439706627476687663485111175891823798465246363137258403301227372232621147818734269392424686958241082517033460653068597125281958603944797687598534529533805964391903689557021949566515284015121848763483953355674867554687386099593039341365771789991252013710071913391219072805853731155103631064940266139430509631113694296124337816601375517355432772832756072596815630906089024352184181971110603829068376598851041809202957600947711886972083651970656524243907074917371947871361938916309179393652877481134221309458307754226283706939441799543788183649081020665574680728558961994413601754555145055241596118071512674327274473970539012670905857913286687450997441825341091572390296029697495104208576611051247237284347515645739160420243502832022392955768297860402356051656136103970247033410685076340760643376627286931521447267292001183795289532359520477164021569142760118494657396247758219462271874948363472186663404488191102585813009080680504594493308580737139231650198581773721977569234652282015975045268078621173329221443131957786711614647398593292263904906758331254287074843524973715380563515144824680454411743112642571550052484978024658086422332663889992766394346236654524447642420197650093933829622727126859851240995791603982898797494067458547893083579910876924734340973697817640545321360158359449678805071350102472087599044589492461367362017937436732246349567476884883184113851538449220136147825763406047478030481490153987485978104722650685214488152702767645435554739594101844345607887866085688750609862450610046329451399032617693540112697523026309722659673001332708581335070374983250028806704436539721906060817415959369671686392892227111647654948496886014382819168207958489413724562249060500493575609370844924122612563508812571737860518139300760234569423405538867438450118215984834093542256470220035087253869870274889613391579453849158430942547864325718162812953603111506744984545245451730874085533465253418354447284220937259735804882754592521303251734369184039599892433242886365667912961197109332432345777878241706476754039452187071544044336643313686129425022915829548253479220903513589453861006215189083401923537666560958023609655758199254506934734027147104050070023840107987089324120529261027677336843138145792658378247769543328157072578339529230567289254697411678699359109666962927339326541083580941355523732137926820454157884402944809379576204210104658968835853239982917639862696501220527831238779263441765606616484676926230701401565299475899089315244831388871056429136756588108941853307191237027771115479675227989578505058331868577903760261012432679355778007597051472005520735657496652293703672159192919404445513510396220112307761656375830244483404668543623259540529251740555220457365746947417202440191319137053698945284457952922071572386492590635930300553472511965840750306648058667569487474904717700933849538085672926006994971090937458766303324676353024448974255997977310939575827827943467210883716988232853587011427574738172650728031180836090148482883330642364226846668671519455021998550398161012289244333854706999767191517738924276694208203923575860568100286323964351823521830209142482384809718811851916540489021589493183600395272799593092970416984694470253532794765060068168395211031123063971742339702250262201908259901205539827330552836168550851486685103309924993495256673594700445474115794728022504521248051177400479384593273954855014833964096224060526561096047561025465412258406583692649294183645154229334599990682128250244999328763948836266484985970555015826673250398942426856029648428263194394250308184376216629422492875875855550887026488753498500273763186244034618112381359519091742474563242972171855993377219147511129026821449997105853438815547415906902278317866846169569550436844662084367858097816069147697428632738025837227166296653324931991146407315756359907225856330823700854351344953414931948932573872829603147501383854085682910176483800672970028415822590977164551258033554487732612476558865213174995161986365724869615703557918769459206517916760128684073821908573253456309197387824182570223172517667493837884917992185116221403376830716920913343579373754675371106461554740184956339772288717948060009745180030094279692969196540007493112424638893310630506752496778817796481766868718078117536280563253276199207905979121036241697573412088618342304324197378089713515937956867573589598600741151448674882083476985535139937739068857072545642596598791076742849014157218060125044428265225588850447157244870455662037958268224691238029893692686561293522214731875700164806558256797463616536575782824542351737680951171995136078719451402197086554702532759396050136160842605427338596485443477950621722696515726325654360427862206422579251499484335368556679965761280761898476124844271914663369741663613054669600624080964477443519415563407846596273688282370826276819234868615130186542106701218323278187439314950732891725532657053683885683508594484630052658403407117456920054261422000421561037192063999312991514010589769721064778602619211357615324249796999352853703356889086796310663760550614941613220728647026902062487982426314354944978095375399870685712862465154199272683457556954393597802906106149364525211989456108147304755314951213066816725232971662505950155451518657341565000577087807289609474915116312918684129041647390638743915861104836628549768723800276466177246915559248950842440670915461534958246978021209365310425479724982755231240053104340207697023168039856528861323535796021080683393673904348225606314936944505457915384870891190015641626761089553426327442564941543543545794447715241454970593390000465702895920985502011131026480962933267145545868373598636506463502386670403035205782540668900174904857555111051701030618864537737113756398863593165585939249311226341466195947148455885354866389961600984189462291325173962300277142520613689514929306413069731752903391377031157408118966233135140774472506016400324196633927208712704517109600526836436972416178437303522222776351336657005212168445553713921811377759589131319674216665610654680923102026808183160308903767445865785245145958401165338277408523135546418326580067458426243245714999429089451081051282354574091813593095934895861453503339074542722408089069449902089332943988316145249438622859396671951929153572046893440225909386829352788257507653237810036065540896728510780757483988376347271237227083189099059207585943150237663456392574785606950868341927172195271497640952865355974035562936120980801636168799223635244052196558492943917837605213429420810641470638509889173434781723748613518025278675652366968842342974967695562727446564654939654543269721750816556266867865443086911631481489117671050010228505564043884319574368712910674658419112819432261194263133359062092457711384345775179358754647144786343917094213968468069832740184124025547201526750082761407498928675026034662864181093467013891617796054160593764441573010379443806675818317416272011673770273917679758885462482240947290017551034448845349229754878182268412821732068827372273951431615564274027558100954270656437198829688160202400349807698671955108593531713502122635312306327566620980173797878514229707061775722651459444257803836195090567677576655896738629737016672849393910101606006430080656284267583332127223124844956465581731638336950967006483448404385865339566626684130665088200266701920265730308220224430676601627249626609899867175875242679381946484561742253131792928415061172455656314956222567691158122545898575187128824466978136540099662280481143240935658304822857347321048477793988193241301250646537241521607649064423797859255533619320491205986874187727521450091482653813791656661686737079021529188145295473400965358497797220783893721075287570527682633044958207255441120274960430421441057920678998000639314294194175741505779359228833132434427258195165339444380883536367143165102329197755695667955197672303156485094750649734166831252777603039925387478766016197884849885226078868897759228233279666255406790113874661973866289915497278378720328378982675627752827970571943346088184570547047517295903610636987558845125294795681006246939333502115286397067868352909039945222736435707736153577018804483378251667255694816057378165750346589644375307683109597976753375909357710940941455685928117725029911804709137564635913365318693762969477753714849443387659681805211963138167496541531273318692644609152984305828341554324404213939800152853510263670109230103229433494665988675213889929834386987191250931178927886612644730616757398841486868923487582078575716728159337529407642576772775515433210918578941817849784726414041633305607449923345069611971825024701328356114638191280150325410055521921381214466793049216601928098206068185636141676725129029972108043068401716223807033982026878993233000719298404223723623121184358431490866281497116189200351121864204854327308388405151765246121794071194335642630850025516531312648446711192910392545272860888194911671195776049464626987528533856223328391706351078460423045859882931347596181956269420157410372362187344356906035900325608034595165858715360654497350701777547900408171356767152841123923241044410637645268691664509080429227843591506337144743795084531105377432537727293244320402764021749402083594415994883821569729786914034077727703121047893640876698511897999142797449833048033381398499790187708371319220640255730935706116016716780885025970113791206452561566801827170284291415373378801855382080142443186187190946684343352082534036749419211081705714466343277540256110852966131025096712545650542204520269403469493714143036968978493190651524835837051504496606463617808731115928912634186166147876126160889175965509924682457665392286691373514024861743600475328978097639085038239561503148977293417918677300316832305714703683512198385432429411681500459826628933420449642780807228160581722044429029178793745895846327730889402938988862008753042749415228987995234740420512325005368547416163533694908736996591429259090167087956785962145024701296085686302622046638405523530331022406052595578926592037509658544404310053520313388573101942598448431220330336580916016520296638613757074146990694818288676879091338763032721776419158195055242210520937723880063894094363388514876612399756163284683046254436501108067039622087066717442811395693892689790013304041056825787893527480924404221414793198252370767905915453181719076506630851891475471650797566282553168230209624107986817759477843877711769946150501912062999028749775301695146421170303208368072058566209342880671892950141387404822851533551450063590273581496908940239869353059569627024656174588617744173153129184229379203704630621521954678762194938667166594257315444059655304221585242318023038990579348167462853633206944099282016834653757395557838015012789566878782078381831172432014491652772441168060998514831411198381935522973897559235415272700993897545432162820813124861207286790257603838032033704400841889120185011424963547714295277141652215435686815844671095247023880612783519310445970707740226135967626246357052110550274925136827769819004108349891222820215961427585217409809351107048323128557344183528016597704360149130775470195024307857093368092625030307870128185564638256226201147008392621127182219127570636564250250261783039346308151048112058284186146649214800454012369293273990455774371920539600269292330589161919878955615558262638167762877525339603308036675309222109762113798881207576180630431673695902238082986950067643111919946339625650167390116349196780977714786507211244657343953460387079419682402758953389696292018271705945060295239905579048831999941874993430323599635401928643242961590634047245597364354448317325663567558922955217208836561768300592193416955336928871430366119128138228318145259286833660600184185579838274341379463905639923096986243113373521107749414728644084707579824005076655094850617158287365394789877980757137207009152157742729825264048264735642227543717436332267470285613256724696517512248101330616300805598578202870347006426055609926618145686387525583492460419575673872840962153053715670440828100659402777772113583457533417554151971580521931976083887159216759523092463398308976927394969785163852880245512389745180482794159237197281515632453592454677929896665110212446523477512289129860629560247734036483242058524537821281493807712738745356590603947509179013846186026699962981473286206600332595869752308106056694481299602402549969394098423828616154928688461365674372848218020967906566776709788305975919135713056174974022322938585150662605599518060532128472510333834066640848180718452723711178651282628661762793895369784823066592152290093343640568436960395192825717653088055457944539619476351292794799246882315249512712921999245039494853121661274456862880891793460335128388325492944565730101614335277017519691487215809229453951025387240056440089744307740178741813019652706056811345757247354042320986638693263494230857248449998679298039128052619768499270228515052733877547514292266479431354558925668500902748451167183631606108293463673565359491906270539893546223754342658027726635721821840514699394307509171830847788178663533895514969432352740040565368767950936934523507327515937058970605866876668234353916964093105715271896443011247164691890249055071188823955304425143463583775817110160029643192477164172529559415129812108049783807021559676242357304853777960961824459067165550192675045465188341657957214361365095703908257322445651098301821212726396301140390294151950709430284507825102757987244377098459368925487255511185475149951159000210283667656143537161393300295070200390030158592040787111007144019706674433598080300052794302947456642592989800219200716372028416457279393748982136663376989833667353211830233455952389019451567971917930154838807638017059499297885428636039009359297079486574773827113152538368477958173132960819009868951138530087062284925834182928356128185822844784994994222555448244336885430426062025359783600546705947011178887945585195014762132506251110141718390088358509421124869700353434029486007887326657981372584613170630122775078575576293298542362299302793956648835334819697032622060916346445026822794888955828666902248971684636093515162207636435361139309340914909147406114312110075747862108889388271826728447452004737174865547066446013910685971527087256806113691750536336077237461867300037335295654271661964738769944534458392165754944153837150264481224197108369995550174669124598716743344777822396538272516131743073373269880600378440858318072949694762082718884188617142495643482200262957245045000365453226798938465566402656022453069890636054560915122696916675294455702526659165904457962908306181542076574427023383760814653294699011898635066126539089817242824584603634057728810438887679237546173294598801299751648741699597073240447533805889631092397188080484613362230601391754998324453368650226110974570269655194944564238443271157290908630965983701631548374986536013185838308571554582830363602022760560101728388365669761064073825654034558672772389142559813475470543110331031870833070104494715255449535433877139066938877543900843629619649168534917896031560508801281014994740340346289951728953323057095714494495085744070979653150806612023024445527335554781789775269064706724118084927993266284228153228789994090594413106793134187010727107688977838237053466857367300654290966932581618809104432667713546008990954332201560301435108529748225230011626498527177310524546823123341529264729477112734559947154763957154448988517918455203041397694524567701972328417630029079235017939535597558316513592281910398939659192426591890494198157727221174237123645298360204276787472755424381036849954426714702052317190349412752268718340695542679807419220668662295108558657678851429350932516836220120957389822134257883569610396583640085015648885553672383354281061003451298911070746836089877648886916191908014945124628406230796586004451151411725920948255035901874306223399524942222304837057115892812996135075619746750564060823737796538655741808047115483298078035925690062058196475930505900024262097331832493906729320208666646109663672212405062976233779314303977090036516636111862471483064859845657500285890851875578132407401683558374366568729014408817739337225167328031799847367602630361812728270791819714404176808397703077392063637260352316405202111367213901209178134023586872510120866355694105060988997499407139029712521013983737814162440123766045629771657239397056723781084201160125257874015055119997533056084622488862426416463823917737145576464582489620420170481546674642121391265029433347879880245503902271753954210374641853932564245140958871906398417495407574238662363250383047392307097555986120508722949573720478016711640525699769440028611309239398225122978837648267145699042262336048985183239707693931164873320173829991870671123560928592288480914813237521521775708461486843368720718294511405502114589225389501648808688299543087711963874402115397158347656965690470500963770540627706796090228988250768126180139693618208754849122807701971782738296808595523145625181314887529811898798901791505444499787681627586470609052144885500008143558544067093823353819264823126787036672491864473490497450942239483233444512184994364972606990012752979183568773367643187504882971476119256739529595424111751828532325187152824448004234932086115709252976985240280608681939721103132854199778612401956053350441087113047991891676825088982010390524395371548416083523496372191807736314467799893930617050240145642491059954148889989852699160827143247500410742044118658893679720528291180277919604735063164199405525709446050044300116034154757472890846056272347660126989175585038633705998791097678630959770272926432861304130791882234336541755158548323895250476039392861599733186491115148005323606089542204980086668447896892975532876003854771091282144234870381737950841641469594012353820730399747142691448409385831989702563186702595210466234864607355223205922792984976002438840321014868296966191354900164341868113936182612284359602750732952802733567078941156832041704204234528656872910885175535057305567273791121557771199336173430212338760440692825268757232394300313670674348916558318569243105238194173447831796497784959849536571239854087444045869646689876430466791208072761153084262523844495041854330621934967603045318626315004726412857812188507453355023233118944400245114628229388853649505868766142460246479019873173533963371127559522041176424034567458121044485840438324191866948321550429622265125722844302669526639867996799305157211559836221289397503273259167763476739082736612444150360710455395654120649569065002944595622455279169952144939991402284194208415565597402809801085920490514401607742180814903827008277202488892526609477525433377675688467549791336580326382934102867928409357854608523968747856210531716830125228053776550652361139750599840903750470855427351274754369473214011641352611310893724301893114546499412599875016233525993562800614098076865650511254969308050014887488386788053216825676013163805186327954870156585746365344898940934126988852832408928884718153386531435536162810017931143517117588053302694436223901622211910447640192673760230556330016280961247609207888699155176857865831961664065663235042148926698775302811740397478108844684118865241866011183678624679908103246031421720309838013804508471901814508219003460965882888607624350460954924182826205851330824923272607064030691376707014016197020088198890839125815032071389657667998410683581040983897805222727972336274121217300667500145953503321407044982117091488790547582251219644166144294029280974508937654131995674188392565312511157088207781869185330193814410941798120859591912428874972205320374378508656515342590567651205756047400741830096212212084460852499919047359059802515976768438493571532364382947045799363584763454268279805308241450251402073085284334066228667882245313107135237829068804610337581281165315052956801429320535312207414582095640952985722780009755061503926161713775836446708271352045624953235005499706391825135722790355589280615767099623495321641824623617876474758701053648880930073527191097570529138995633426698527091664741384879650726733234254233998359667297780327075859165232839993597055182224496751700871770959064845838012431553458360867276948286754242167965660858777946868837042930859993206275237354470565751157469745149909585408202228179275291760541612760223172003729969079535256339176704015912263854513876260777180578467351811921233209959571809545000629853403712897919621439816449140107644957727695034303746397080519400458835784683918792060057755587909930250054728434964030748994162341337732860768779102655501804746130679888863091567771566637842044243994149757528267292333385043923385438467054749916713360229813641368862747783652644979958377947450397300156840129879359246910988129279969750980880100636848429042442937784300651666077532095790958965862691932220710254673772608240230525019718649687126239442022248609566201640514574356576645501099838128077450681315195915928613483617334942071552999903137672289695067560335377697409990309573348727212618968893541567189000964561485729888747229232440101636797559803172058655899407587049166762648887045147858231085730133952970870069104131667998069560212699757863230819441804290881077189800049160421993752006102038727273548487617181445938481907269595838536614150995730510942026387582083069257266351682062325571747496820226987967310627592979586215550287321608474468794747559855240111377776612459934492042221963506187729301710968173845289906507084222575014186261512851188590943143589942651157243363519737130514295113405566734986928393732581195874906126637022182061218431391992635455665306288158936351182964992925349503528589864860574769968150403457604319803615698554362773449350737810790376187383906030936545970185752133181970288275946067503668031548918044798817169661081574225342549700135623825356698734977188813354977309200323512610773331129146835991148232258657571092825106623832236695721827955240060730961143907707618889088142876357115117028066299073170259489103078679476768001082995668005197702409674602851006431640186843225032034037658964189875720096111904569663170192365045304570451143826176504132995867259980783497578897780129028261532679316294938836616636378047181067532710565278411527963216157073957020654147954974417302652310689694138165004691026084781423291770964282356736158618032820527410182829265496009836914968258538128816237395611763798001155127007916163000481428006981703580123934786907099344904220367364155968520148425806603574955835651610797563266408739369885622643266204899582401735647166871652497499404504057950249636345127756222473149439085614037322672579538059294917027633410274822767038493876874651222641371851000466522390600064609869260561581617487866175437842265341331371913906247772910008393024853190554611935199786826511662209551182433983416998466202092151525721567824418245733298077514041858639195597678266705613965335423469904394736296620229336486961096500736529698195067721842419706033988990075284457305756209394245927028147174450959911328176668605616057679044149972724455755569445837455493054659700143012978801927573501476712466241038330478062308048848418349701151092247666214925086108850191945675803996791256541253876030808501573100642393938782541639173225940808250425948997528994674236004911332010036994099158000810481469280614865915684059167640896139976263526248222989365082528299967698335869795150551017639577658030878238826760132869176888020663318927991118696517256134707659226544273603336754943362868877869538963970233640176180845959156468639218686429939880862147728545761720520588211833128120393761493461037925243264585039606366762484136798941319157533624885582996474449684404240576287834941634209272581583034594861288404666021466770323252216026909949274453227534648558950867325719224755622080232806077725375297606015550696114852385551548289521890180060782079711118948663863621258921084906659248775440676940421896441485230604591715151048276006641025236734251543672160746485730543800883227128836121919333961956497631921925568383446840340845135516635067913706405252829416890608000092382440635563207049158304427609755197442963449236248286954640380479475985099648085083978845776166776148232451657782168310748488526562049187570873058967436172595746004961374294836327235163033397392686781962693301306745537242634844697910958718894598632504962780629930243261322713668332788463417902635880288007143579203679433082362519344846244775990316993194290204406226307707538503127540407727307616488617248051074481451215973891272008975173946470961952326988093846052790051193012935822975859979964841191140612493792665374772127266795799383435190907737155493340829239923370227614313942503444401805735395330733391037300617701167376957761675828961591688626691127998731280946261733404382694482664971032110030019780642917832705878610670925158495422521419193992743499982173591273779303875852880394304599560124948541354149492388861417265657598062347350062900398162297140344125745315700876316538489490079683298531992212937786460227580606544254413277303968410295299918004643636716087892632065048935429782965578506954497540666098959477358250656428109375098881446199553099627840656425246397515903648901054716241448452887793569993582358911402080853695352828250581674566055369444774922689808799262721666545344567471441674204306743735831899444177193394046749668883220463037418029417113550042987297395403386903207253589686407483518664850434528867646360904513462910572510868657512577675215356287619912877269311682287296652248769935541403877157697684112335454306142264003522325421812225477705700133556380267691191521516030065433233530406724196693676450880047675376245485565036183357281621454916367120431904262661280206169789398941863996387838745987638191198249644658506681612348867011079018758357530833769392578036883990584698508453448313272814485950989301338741083386658086167145812739775543673424837636466208825253537207613919622259601875522674067247215081740122292117036078101463429432849664367938645566608944970025987922119735817977726352919268432199450110145698341131982477167113693951540463123315363477095466440857993387427188157550945915673385671618128561985887266956149072028197565936615653194892801264999476409651217124874339181862548739333669763458695389572351287125278918690085864180425132156068014663100920124502529310969572623978630906950032126721216408741472654416533128488123326517122133359590767871411063429102449468438452237909455825828918027466556384924094662244656704820056793219676488055139655033568061968708853372691411413662882579063402140347458629632652883053494849389963301409424611785721908326050681383242588699816337131931232814413831702412537022072892353812768379573412501043204117425897551277618444106545654127653704664746964238658861524581640855219242320208722740921413809166585874166675826332153845491399807626050975938153068393372284870551683843664687516687917785007947296400109890280863179359946293685028729296541131561837982426644418749187932938560907331038811355987535068643748005239840924217043069033593862369091727450523723514656209517550522987985142251372475220504724901704823345836692009948228342949101796874769221707225753215740301153167402690747796520093669387469798712129302418710807068281470458534053367230409070905413449191919534201393091556912028487159331784491057301758336401785601577080845441333177175878335332700320406383662647864822308088454950268222752725135663293131956844113172954814336057354261795141669370808990921235930054267459332989083437435328559059401429471520821246628549268903771445298727645068487991563055213423815269938340238698813426072782187172118713936007917873632152445972264259162629798096581935230259990963487559303500548873921040498184991078859292059090643328087544722054924032101054529438394258943661791973494125077689562819052484902326549406517092175527271773250727778177898253038769512097259386974298602863710530092040167106251932009161077318551690713300086187543665968890492118449057401748541099571475478017750641335317536218547810795037642586878714874446005236022970798732330527028576392203722830034849772231761077353215958573531279971661363067248272526245594745871448768445758988295006270431387032057221252348820213639216230047493561148319881784125587677291754168184003834297523100805135959156295808311265254626040821815652727396321111266060170427784471265971612325349812421690251731874180254652861811195341678188241160075366961022752118760860623200624719148070178978603874125801013792757569210337726719038221129431517022111975811612498658315872530470514253430199822107385054331434775348742453537351077194902838100457426328175858483507266424711158210922145297256317491573042943868119573867385925738891869288921511975718551467947774354616139074744321952733634294666507987676658574361800670437356362168983332898346118872263163254442266288620941553298438160719803387126790753044294738572699649578267580041463996997377413121458555184022883844636153751482672507063400906766205675406159524674366047392616398638132072777164443600028515587279980627665080621522016944725483675121649048012783901533608966040122167453097975043822724089802266466798293181485591311403712640649148198381833051161896121859909512290547708066060153884299924739845536817688447210106349226612859470875039015252741137476154024322191914896961217077415657274137937960953235844742525324004265290661295483967555054989880977729310789902127379029958873289499731188644263987236385920149172783768310304610152107557925313939578386423257346293890399306784042754848421235627138236612490734787919334937696718661094795810282128854765547426251027951648917089296901989978757686146395736238298446714519934438460414264406474514378717189519172131904043752104622159457809338136111212645322517142660614649467714518513796080951695888486556332420190529053043996501119690521457664275494440216031913110333865811728391376770800616891429719451183965141260417061914059130439758183694447781498566676311426832284698440874869837404683900855259804655639179770226019579003490435592709254578689429548245039337685500931793600659236846286449352567399382992165894379506549705912894662566552603061159087567033881063064720456522141276749476141559680246350372194522429156353086000368799543628834966283976681808130595634359156137744775815043784912781294075714143445721250029644487401000932212184024305441924634193348367533290914166955847594837628495238385051992808236852550491654153405720921621177566611918692870792644605594044720907665579106525121713977131555269463607359047249139126722273482435842054986552502036989954005082249625116039231180795352922525180835291535423851959250642791845622826624028603714868184369766854853964033756367247266373463887238237765428776330351179064194492523247888600905938637178192025358769425824737470060990236639475309576652575808466247943375439767539766994438070693827313612804410968367555715021444759962281612314602745655368830475760437448311898152637300486408702061314870102023683900387167986531024590167115191780372466318040509023641151336837865010137075736582197510686572036186351394938354254312258331370345420053073882706483284580902528509146647569941149559444563170793757210583695913365447586054599893130535597610013786107868765709181987894132157896023001268766915717062538307306012517950573025899385343062790859724750349997029619266787569052956486076285040922052786322880482335759282638219927052006757087522289492027738585469372444881974655589353546826978455597266830127269908816274607523276498726260599800752810410315891148156583856707412446485550607422938546224319143733508003600653658418796850492852600785665480363586829754245004689590403809564975112817084045009092257679332764767537167772148510417049502472595489232221419507640868590997381326098489639033865234128017675461819156044092264832531468923965591324129037218465501173706661815871684300170396091409534181997664548361072344470464113963698289278088377339683347355760280684728378290957879536870374851582913634311499759094013765211044409708605485333498043599353075014199073428282445674642793930501811898792743534231120440143613189442505258395296137542899583280624918818088301859961481191054040414600408720746635562257903723754786089745680373125563765208220506712425363916413220360572515650732062445766721703402712282545412232646977245673296267048562440158602768258093765428814164716510068511688937003257793178952577345652851041655295508956591248448684734703349093037078256915676421843728070286260597824742122508625737538461171298765306001644460015355291729116649582878862185064556283267241916679606996611664902613925106923102078343210747751838804028317085466021617871611144070864943296391094677835714699596437933034981821401071126392495615193835574330403512905262487063453934836772125566876708196455929432033309476634126330529112695964732208935439027294815175872377068581799912544933086868704503038309431849674291899988913745909444279645448977021992517723134605636916140569676922620648262591860558220992056091624414754600310903523149328417374939784264526347486314075748235624547144434383174886040870022973770947499241008645471131353923589718128236986502904021830696299589286494140703837108659080005403414213637590646161842409018800373762461282021838511704986071426650877317128074574943941318282090528325050537336470336272721216763809664589894915013983944819059759733507471485491472831545242826132083695987896246604122824666473797436808816659022562536541514301264192967368478126490070351985351744562747151187145453164733828703860219501403881373355260726451732996326091668237229576056377512569278535451454698086519779672984671525993824162606229385717514584053633286346873397381618938937843442282489808985997930677561114013450477174158979142901378454703283938194812816875467892973658464432765196431688937662513887019421183394142738574114290176030763930014176261297171621139855494381750942402195026254535296243481707254579902961141644693840948561430901865693707279617873834871179393475403743085856551824667165833213676347792692471797486510740148348658008422035724745395430837330416217734652117097138135894334543721117565171298748934963956682079060238519407664968383085843227631371933651792869882512466392936524724452841154818764277050887500869517488214441775849075953046568361362527070919127560843616119302425674315465278995070727270819909794833697200338112414444801689929808272122909460958643156646146789362585137416650846002179331462621874072916664273582755833066920769779682687584783163345390864030395542528081305565274063446109985197849886807891783541615423415588473793608868910334643028453763633521310549011415669020323966514877389368947879919889855776995118336461617267795534850862828131475367214858792225510751226275322216920134481522392925698951023480283731720916526358183393454105061820056020357935446949946020508762038350727685184164663856397205251710608506331110247714309419023864752945476793808289340199785337524920125556775701941940130489774220943395290879535845804740075457731917779812830706884497745611396166687253402495061734265650057411095442506363481304450744939219048621228462429144213930049396765965792848422961020373006033723169849895793476521151457933584923367001647018040615400360590529772494625643867442998779361507906373964765998160336294316150177004184713740586478292009710919693925296025274034222531323371751568757690351062913245836267262039091256894238000981461005620508843608955566492422486938584660065730799462763002305039610241371648189434542229862952067655887113813571750102313570596710591848035238268649443496184685511140045629605215136335705745407942346187070598472859596080580146512036149975214383895574270459844144134719435492442280490736137233097845120910206957256245740030111767387564934572473514254526117593292483606936322213107934327380229256230771553379686133763115101399569658809387929657493578718231207428931312937951887619700880542845636994106956994641820733321837171759461505289331741653999681005086284154563656185600343847743149359056381958128450813695812486472832049725838293044191469790622738724343282710456772464756445872072229834347459808256461852370495855501247956454466413271413450320526599385666825309264772832700961638587487170310169796247838411155796726108279814045106249435052041282372877144100176936777443367081350653697287235706725920231129881798210543011156669791350441969790201900139959062471444840419518660121547393366357817099471250084672726393236255402388584613309191244137758165087410215863148684101041341050955702389090364176927893015292113587668250553710588955337177719588319860176758963675802294168982590011615948673948901205367651202753649668839100409837473234408612359531783934219793532260805662536163420422024116053506099449658156508924790600606048598746699851134361983062158094808801720076992247464198400832276370096313971465221688719450884062957415595049338533539266095925629358367024202744407231986543066450082932419669820918108123655580243881268721636207020107546066221608827708953254275082888025454895775686295827843028832652488956162521855039272980374316639814415361157087615939243095525355881929188977130586635305785676172762243034887121305211786832861214652203295488097140742076892086675836177913102705430519924468885726257443462655598217120277752993443754466706126011910920714111244231964217270765931043944203717460237826047153853547785840701311297553705895228146889383459044285383039089756085373559465277265769641350083439506471774073826933938978046069507960125467292439756542360401128901106389736958505503782777572387687540694983092883779607601573062177648063177643461607232472566775418138860747008413654044327583811186394980922465858786887299818174567194426043304211131209604278805888871418028658578121279458613773495289783455022407542721337434330730982414866237194155626103617128638220274247523792301069824555562640047148343713247042059378271681893452461835445447802426569581728661525138412273084101081390532414304854591956921852256903697991992809323576771285761075847117657184628618448364851739881210538416138771003321395755265997754095783052555674879696266557325455955869031025567665028806782273622620280002643039740412005434114330816238533700660987594441465163904140443559755584353287172697499363671632289783459731496811687511824252175854980947105365862793584079185780204307098491609573614037445884623441113149765629109511423864678524134144300522924812937257311550544260030159921182111378048587861501523228457795431945085894747184431006593514098151152613697781857553369512306846491382330831335947023618134723882157913749641571059161312075969822816721739752361712371217491504454407284502067304968247581180348982291760364536270844483667035215953414848786991975566586554535035404615495573482309386645167298681112458561264985609086612431078791158576473108477962640162051361134500318972087555326354340888148630258656727386385680860143216519155863735614040470557555214990643594559982347581713492270877328660382055154855276249149697017254397130770742185676895905410528192188126451449367937955610054772728489797899993899838406288563048500602976700285800199516560773845553021694452674006548748205410734074820627300393307922701537569413798687660453946643030538631188310046598791946786129985794862942620120668040725555817766766779290545169114704414753921478248384933823824099633729116704645373698683606520562076049115903245382654027454187045263773336962888393776064808653029270257346356860192631684387977104858357827152771963541386235952731494452438564837550402757170582103896971333287371739184056088062640187753697037543364532022024257774654333624913978417714046909903929580066716564216831152026444710710011194921244418929965814527950480844067680848149640444849048362938758827510309012319113657496069531815954478771211766179815354682111309992156645402676832043200725212746998238526984701957379587861990237724865733856531940351977786425664890763370224150922508105652908074301818032426138808230833761911307734509395464509893114494696018223535238645536522998216068523782853004654921671334555731242106432522242845228728694203323130715218075932986841689984725673218575164241230831864100950797983120779846436819262271035661381695694158508397982743049542357009603388659190392382642370357808513169356109630784402109702433836329150008121680177826422982696581229276525141453524370548471617082117839344751091113054084481721735601819996895896655349650345697198216857162056113809858503007506326939847478714286975839676014779025899321771622950026075520373707043594641652728444266075564440798288234530012648752041551590198073754265724394747461055867819963283837220001449156041036706755438913254302944004034420322607214188942198755865760629929514677986981449155117998971376985589041629197721444762046663608617330560803339091832866458904212194496789401680396973719842473073390065441088350751150122067887487361215530579763317086246525084330418171716776194881362197839427797986556950220519595212852434325361012588241231443139311964523415875256597789988054415294800410039924023608908043198511852137589768887327406779668184701669070455187441931096293945800901461316795322948951214693118387630270395077717349081633530777123082970212309139578075775144329345147238901880608800591793002295808322289863654498209257641719554181616216656725395723803124743074255996439974230655512072882843712318154629306746887803612062287091439243626701597052479826969937009702751379908157670266016662545838973243309442841819316466597343991369050516380313865127841658120451312142813750468487419018329394948734014698894872097885555153130791857500719076862831673642944225400520252562890732637866460351065884822546507192424156283147982710598549089424841977255068902540653615891984530199724026897401829937445234716479093694783064753240760980254001064413543449132740685152695590347411745289197020539383159190413899882401162774994466767246326355198248510587621407959505799163170291802664303819596445050380408967891245600292291483921110621849739092928444951612639729776198018050959243253925743909099185804655243123170661981591202417276507111912274507606000549037021819918105178056635935960535439369196784617441802427806170565470733936194401526266355556061150332436758126840289007308074488456646844814400587440472012586082612604917491095569113944550497061872687090117533218655253773967180564321636291911700394858390520127877046465150662596163598927769809535138269366521254604397557121738307348782448359510179360576371501276142614661175426923728318178179943456819979500647075694269242509534783043138862560416905601992817319286757442675936852689175204915120371388250194055618133136325273284445774256107263691627639875409623301718706687210165982233429493664941177862184843881400696805369876655975214928305473287386518279110568054766482989574221430503537508867594315701479405813082106713934076627376828624753869128830271890089595486378211662387568506656007430773494919857466124043120381914991458077357364236636557955794141944705638490787431277941254528096380076667285708136343197257047126274022780581285910713022196040023962038395676063336896806286238464616774084120162804991112846958021989643111836513833481001970591846311513998638108020996650565542711275941687372504023769243765970659938873467895285753230908738330190647901162456183404559817322576346895673470514542270192830245104231332259082962176246271734645782872561157941206415590953371605567147506333159787960573176042817957704052335133768566069917281136915686483164445006318692069047909206755943227176756074751191806362774509282094962418153274997601274816279322318883375156167900445052731780356577500114888274892042764168686495240872719076799359281761898103916680876566148399329214900822957663857311607984634473211067145026097930857169107646119803929498760136069729419958489293362952267383084983401175493501258413623794549331347655564905180252272119650445770251496900252319639803066156836389596343052805574743344562176386880064459620375380097522985785944854952549648902172720730270794313741790111189556512485525636029493694813830877742973483275787041680366838680271854111570052018944959486048044804922729851348587440630849847394223512229227894569901768068410318850091201393049552014156785738095013892293221986348397405752635822417411723833679871828290489249538792592887725870994437327054227222224173473790593749509261127745723110619171168564976295434563689852299752239061196503478524774290326995735680675986618527006740840543914064920439469785609631098758225528712847914804121367120560549077794543839219490424571936792525950943997354350907821418761930535543920482330387783286919336553042760935519250501671181298178882681585644407377175311992337783336214998922415313250321214509898247868092177549667638096203245020518123071879580768807904959665199658018437398865210904784644779021846544248125307628849259750271454473634628219752152428882582885779081693914679728142195957177029086072021987753172991164701197987894586555050636455836077488288738892801696389352394592588458348418700638940870393814349641630260495001639920875005220080486373217206527615469714537631776981111834765038820250693720958209970415241030719796049161189543309212021104059645912839640532731486852470034374480431820879941646505654323279934255391344595222741802174657814073311460360785315212504907351004982476940503509937528807061772017784914253523500449257371611734377407527239374224800757342920846203281208262478192617786246305460540975301615648365969876559189368130826456532251260427295159455211888230823519948657028565644100781432205997458381042042733289921674143215584038440444336048332218967768510424600159938371012450163245460780757618352530522332219862549008846402861519879785271285077233525389719403748893173397815216975713040425831461776350631635452510610088622926590505527654749090625756659085232651780655077219934101114494134725638250344758179749345622452569129471845583077004537149592991569084837607976232948823052302995103096471282459570701355886603208398816374355663973476288860023718984995301211812963604037164224721953694306703264835806933860953418132353781497447624660973709714057846231699740305546578087640024542288031094226049959864326778514823286035070079318484191765876554842895612137589870980971403564237470932346910869588104970698392292228543029914983684771638336568484160798675802970326213106945554201089348154820486495704005124111210409008112422190777465782961680527050811003786488331766142994031021338726966761219038094076411484899267247104735345014056312975522025755979523731469935527511278837889554264635637385704893756119777857700173764217149102882700115690428975577025115720293278052676046664933465795033103327564117092871845310956142215870405174548805629059139494712078956511353784155747387643795171220061075588691041694209180117447265452761228344706355848347475192809938149669354811347875415525330262393656209546136630542082342427515314382926088002832199786091263171779474171436640892817750279836688757394440431917526934820988833854076521626627874953240166750763471469071908734547100033800827198393424942178366045032378422459455168432244605744528273533788932441339977115739272605180463243897619960704698886019748046897358244903446478407841221611403215307280379456596925516146136136286521607394783876470699259012997603506406910310748695229470021145749453144105597712231236161442723998891918619924333582224149183784874767247672186152361234232005963842933781704597424902009095385663352717175281963486467924943253124247653458421094523772148030060819553103418954178199129843292342541040215321111775182281681848405856094696611168588055194683680532456641457115305637033418821095642744359445571980600257716600751277842148840965010340590836942030925998834001239578187503984087347108909415225049543476467694128933694183169784060505440026769780168610175747562039602143406448011977078541761634195684642930148516608377407319278273330161888554544102362596734784045191920555409462887915123258246932152057870032659780951474396354376447272181829905487485917091446984954722318540383602026633221193098238804233248769807158660515968153540397044827703710156324831914946620163770295403201319406749619728144579366629968689118079918041178558505037891101907573471998978602246860530704431679200192753372645575375719482465775463413828793411949719167313456361811263679786548207804009669274583808630201285285036154633664089098517246031479168778246118704160574284108010436421035104273230133385311708878320374251502223353123745626215476237229184851798234064426090221200124699906521585419999868177494313179362940232695920851265075731237255414466580761845288463750684092311108763322858714974163644850892402076755169437607281013947303113662456522836198892010801379153618758236937143372299583511633807091881375961278174571200787022834670471626113136658986145654561453134353775464525122661237914384927862011748528977177963798124880985659070739108099471405415866106769520901984510489138425595338683948331839803113228523733080433934703698521270102709486908134149206469161218919375612427652063981435179868256686583381412083485883871871135401185218182107537307631338438447207114906990672195544978099139630751287184297641702351494649875825702256509665686429300773148052956929502460114670068326794556126479637893699177109048274005321538610904880824977770989740748270189229250762215267786462040103461710696334239868489517246209313140446038861511957300625260602435647412028147858178603057633903723562371203086201472210393185754628272761815956421232997717358528539882203659951206617514351876519620166587672126167797501874369357793341971734205794661824508244326262708895043945299087645650100266570446389135958376857758865167178637427610185312766192005034668176283015105944840301784726527540246100222491941313762997652874243771142578832679984493464505918300294746800829115525316256952988316114626840788586988958116026171259517994455209901644083548555778468458068532903376725504666773788525652540680564617381783090635060286597826711929263032449437182865158152961237213969988274687483666122246262208772212656775304397098559141282365053526815628415205034901121661458182974340329650796594429145691032870317914678010201306669755926907494593013074176772898550448865884547791433511767807152295148040301924591847950898052154716833682635290830426810923370111002507700481993536403903417722563142737255421241358725185758879065425530839938406680639951182172073129650037235727269497434669758007381765669689397678174077142306808523587359482897318018069989292285832621784182444601616067368431626865844022294087550104343028890209760893050042409452261649624816100349669514794718665860344617783791278663172153452226974558200276360537975285160288465129674334178528488127548097450471332681720653820026758106283830843356838735866004206055446230512964951547615685043730804645226202717917194544217453075407624455397963448129331194940113248190190664432631838517539300978328556920013133656906722069184436426683942995821082130841754215773587483943683464686234081788402989932015668975040427520798493472735774939080711852406444572092489637094878663853345310203652794311591426265040146223816436394370202207620604736028053850096426823964062281934088932443322249403646029749795643773391963975186137456901005604322334531433949783452020781301314424127247234816081523849909905458774396983589302410883382188957651437529097007549442125413597325328020159420090752928240763374306204984835134391584472248232546166360256917336558887879044277349734802820605429696569825130667370517849438260880332301662877798295694103482548159733038437227029872890915771931567698096983341071647370269835003074910103792333283394080937734251938220723941456684067189920530265543685302646782815142644432814269904884379730861280924540037636920992751445482536651050534588873177453801145052098923128772087518550681910130991349874680941913434100440487055448714767555825944746074311024710981406170378167127417253281502100408768581903476494888717564792321049571879881026409733010521669774838196195277881961300059527280369491039525939160936003333215289000421573808719135998592015833826929437635242182578518198382650181645176299744756237048727486590913262356581410605091429809216520348264379523227538307445520498225758410728368587773606104673773275071710605538133647809165104954752355195877529402593628141675624595787639610529405294159539508897753910928480233844248335665105038185537890737517706870162676774568037370697402624755527957891820729187916998459570192002894373095786266093973388165320641524259082221422841059381230278312368685525040409192728903703393759681509095374757685918542171791394029852159027061227480815547771602091761642392219233053978549144108584167310508533419578781831610805578538195438401579305748591458104640080433186819807074283859570552999199950040504567928956654065924840986200007597080847532810973852853877536107798114278831019916562941501678882689834669025416618775329711418372689692980823398657764382742851566984304738618406034347967409918407984175618376112864483684460681544550160069535141522343465905357319562299180793425534651360023590248036148323719664582655308930905061130897736101986917791032165277002495663475347419639334018398162714385645123263672134168267845286885451146051616014647930712462904038879085284826755901644842439941040793263354334799398393082658311949807423454211927950615996069867044014712092729477755411436538582417172913541732382304962020330651134693803155241021231209462787450322875890175197683630770088452062470365087405304921139730023032673685398663999004453011760767555380652535903701019094230107189341041866579025874015315171253078288406428664233071621214876355360160452233647663775948781765005928018016370779830175781551073422452080009600161726582956973660890442740876688318868520372530291567943446124850081234189537368611741175353979183435528701200286430313486102071436718328639803451815053495737587406695533330094318993312447582652409300446222236757221919771806524721475928472883437169946525332279254771647002431277466311957983244630017099383581058029793046956133644727017075991187913846961119400443822849387286293842987503759730007682504821657722742646114156357024304870372839198287180558989580895680823171628233448977225135132905663164060657928883717587905419509346693429895403957520632184264070690681468851631610859775822769356910383190132002244764216396279523692827795440935311245105222311750262693997927039568004150232764273640282078050539795591746706718628909037652030483222263450476827039424047171130014282979707546710072694893288469102734527422161757400531467167685886165167459403043709058407017747013879594580261744558887065605414798837797172345803353827869631965818486451816848815012393682595083742563303035678221755788613539925979507876042589055587848859870289769609646586072460485802437601287423557891906718845524931263731279090232704080032408814321850782497615876754375612200542022741963290068249098192326017820488082549222078057115444441023487434823725571452954282313068446169661608842145136330914293505975821428470212677454031934575350415511546440373405730159372252350845943052714263885173940007585353182741314713602892449290840388204884753771718892285751485134845002864719306699726975095407164533039599153808232293803602732072567618920405325673401483333983784126997105149252005716328352271472167146373197567593035638543934057094123995935390053546749280503051897599120097504916119075234829264179946334915769113062868094692491203759381492658593869640043700072599158328419600759676485935723148017710997970965093003373665354633529879231000161143461110441430851729482674767114816426189746836060648910055046434094417652454166307795218053226277532994790035539634076405982580600066587606872417593204450727352773851481353585077819822328406000189336974756616131597495398494005588710286650310258551963898679042555100074750471112148673400295324134339706230817728018641574028748791680487850858274268475275953828086180882415717707897477623671708264322140888343154262639222869901203313335822851095030938062333728876950694365639419592227099770721135957223307306298145471521000093637418282728774580005237138272263932722107624492776080199726054173263854832116823966172928848049262750649220107458093803230418213111913247975052365686399552488216329481521931854896390583038175455931885584783043861474976305853702001975389627987521203047352573835111040235288663204328465589761767327091224879324651402565712777725310321999658476835790674082626753966109919045779055028575492576145888953060142202404312117309723862169633825095100232596691452143538157673813986037473057245209887185051347621602368977385932907988032971008940853840871597294243814005558954690545529584070070486558024225835971305547659668744160899615284212316011544478356310318095307842171251955572937485818546779074598994830472040036032671025344315496982548580177054789852324412355781630485623692848183225863176690329923899199720114103708319026900169951078026401447483627182347501461969395267862725519723245197908590180887864623686460350007968936258175536026843338266383951435472420003382076941448933012080208830779810411638610911056020000649550224760873157711798447214839102970183766837563154064415943001392253895391193228671111829209679021558893274646064849649034763019213462230247368541548719412730764056920552680753652291064338490019535943690300341430434354664978876890139477624739748335977553832958254352004492504270822887493366943172248181698996278415108987584437404143355740604546244313461969094833333628590930272501814501527312081347278125325022846930274923228875446270487234564330048629411765249950438774252261502854238931478576381260562805157930191525802746850922097283357704717151272943401276991387770298232932306571209079720260881634002653416837293745146030674912857810046213977449245805720436843348433967415205767647277798967179493965388249448634682692837625377649479714595014062942564843888905213192133091466550518414635628461293355701827800707317243707815077154083464745538777660684308995722863453131224774297319902371944613704818370287827897246210104281020049196769692856862378961402884547122625412344108944188278767078436960488168799678445813838268117008576477606222827959039622391174630055913059949780371406222991906508028481838102037573828519961423738969799105720733958482226933761539551872231884614026874059081902412385036172545322767323090325185959998636577552744523115737539459426112466554041193695359273391587607633095650012404943873132158051163012042773000741235905035172935275628500088777411013391356808717596730785668238696541409190616707413820659038108953537995562615157057924683134446747331880785523769538658356160834582775688239991590493519026540829134229133202592889587682163939488159910578458427972311758580925454665518013643846787846338665467344300805233163411329070641946058719310956106479195190668857927087634148762977168732193591578428206511829768096590773302231851068628595158472627468911575189336376461719011272681979138752944017092593403510755803737040122671043230534751170146026912184469555178407369574543297452238593573798646489213927612743621069232948099099122275042058031397870503367287803813615212859308791592842895186898065638319056047164474515647918983743868841465717636149670331894567894305475176999012537493738879511508388259086901400695071537645237897796297683064166098838119930222333868472575467067288320363301867833408544604577856913407943572606522958370910947972268466879926649793872537371601322050796016253063710031645080500199313161146604508684291284249614941726094270161052257088312955856615974481580463586199338548571136978683602662174297813279663274267111246074337681974043059203337840640203320922762826318104577357869576331956733805262999701134627321845690058512197008370611106684719270769676868885249664637973801615982481086579786532573757573046443272226002723599233287801837910457430887808755218177807764912389214465030243623940330665585354032872310727201214923243379571285029404557411422934355259878047996044955778877468963104738756651782738823029446820694187201626865882759801355915376816986044113255731522364964928521681836143682496417482919830773412179755523586625078775590073087203806501412326914843235083993677542817165704241613538211593817927461227695697304938115227614698414458443218180458291408602194268263434504150749402176760078351444748466902510915320032200350412453985203730993586239484857326512605287447562650496803212130682512757697267607322556670316381559075832994739563039198794506447919520035885329572314452117903395440603059205173008590923130937551088421072499806771523837994244647809423016555867858013394955960624257341321971469670384042917048290817591495568024437963914173258464015499282791646278538396062304858768953975583538905177701387849008174427501583887250456863136139012091542199752441711045093525640282848835028256029240857306528511204985282033337196372302232545340111544918066852682473750545568551722689283186213581751043222591608822776982462658564612365810134969592055538571341674835928668312858070749907722117023302776676437616258995520009103599685286143749090237993548509139513199449932359515260285672238482885833325755697424891285108941054882764886979545354553953493698772518110213837762777967911548137206732236147850108898534143734198433499197792884482385358967674071696034518297473393256161454170358185756385018051342650487573528637258111405550102143288408193013913478316373536940029404523960841916259465034077618983264316140863459742178639139793157867386359523758614117388710663278708963069055199112088108689643594788614506808526518475716859813126031049740715729697598461934110631407308873448789956666643490597419012909277269019319055404255931401307513893830595732184256209633991107790863427156413490172886109427191296339938011218771503589438036709472898266679809384233871664842525486616106558258076447286080683395064807668547908578967186913707211837261169422993329919990904661882095554298415030817531203083319555493730050468836071430018209387308530731964572177865178806446824619171885365249910607558587330487626647999978029665059415044552838925253050188144248731553450866579220048497663848092756211774731886502630740940681631535883510621037578813157264654384904339715350712239705430249870752308865305915518515589926506177285489308229859707543582117974424940619323879626883833328524938620344883585986291324030207094586973920678337527367657377659158022059411621071905304493730043762830845861155314124696034442708738894311963241546157922569549784309918894796274475614952598280121565176971813379740013974604306343435652746038624520837360756039591221183113992866144342176910248242926998544758392111391213659695915837950273941944058312900011414991129759548305786194640642381310170984793116801243052817923035318597257313504328855243433926335764776367228113411753747888406606420081434266068298928887299086828860607080288037919299241931004128412095043296559275184564808423712184934898232031556108983071493751346527780088625261342191203343407938704630722394926653484068408714316025422957352262376648823664543789674966437431811994823309512255556885587662597891120437493869088181972787262170963107513780277533769114207076776606982359706334825558409571917991334917351179475033123977584127445675192515239800356750695670370081729992930848409293886801922091325309082636096519064745585578875379652740483252089022075649941463439132008908752608460363571880892927759111527316861809576760460281950414006263613488246524631495604297401482382975871487239165736815529461213357219609357043573761391906429060830309449668150870864318480777638635062608070749357815369582010136039786561577540628733556379094988333098916319134954758172974680182437369585669765337410538516508488208122356971456925292953014004517637452664750022580904547782331371592575970873067157717739785944407267322039977955979907535910550742337375076887878931222089453359017301047902920126397542486396943383675129246382420940742420159274835502598524586506116759349705285808218848295019211684199023449128816794103737589618589801242805076726691863591958782190348624895024479327849977425669251816680525581662741595774678442069877828581005604915890325094108828494117646768286806030184569115420417723246223226861420027286562261632124043473571859651622161651805695259552737989285741986780218508836382302524021503959405501297845591979153911861412540049627688503787760732017787484525077390340990382230272694665862985450536236268869123075582899660884134628782530610832443149206518286021156212880140097496793634431047041386436848071374036965929635801775597625946204512717190833619041006696735230564437278627953811545694500915829938095778768852086872222049191558171319610997401868654471556709697287198601316266185858209024946570109610771349149373592227565199750946236886900999437826268842995986143155113761406405552058350663550279562730309977228718875590053474957718080614534967848755597075728899046522336935067249153849846436996105422007705882332487134684715209427708070900693970456985564903454906929757001486509542031532993833247957978648675232992549305108010713629416587562275425608617941196630429192807462105688319553587727628582358474903023992932134654397205779035601916412286535797167670147743165784596973399786797566031466576422784187708071263753133549693597744422325674081323216312213251492092627246776892836890914306536907263542213439163216990812639059378700665587000950758442304622821615897064171856602451968802691239454599902602645035141251056407632526441071013611674152011789073853350736404300187841598922314410736385627167177968986300314246028867207245232351878890379269670576824312493104834131327446636819810109809192433019723214164683021952772410406116228693982372727379810281352916424314295939121101058799646859555983695644136287638582687492617493046317180027251426448815692194419125989576184535545776559328758725049934485861019262454807061950087689649450539623230608453932484806228423528247362586268919994767333111118716152751243267394585901100349764420724337488205731622254908127047295881356445366724883019036953516565675105335585120871237245427703776642502682193256568528384365069544266759968028854528972583518552504002441733252091678753031856592655247494884726193607756880072254891441839611827021989860129735331731857047843964551472618349257482821240034012797176504252816041827319174348926368444528487537556809286607646318308005609884691004489878995679839651552203144827519562328938900010048310895765070772389912973796794615342965077969382031591939488600986513451354668824516504836941831566540586100367865003134819760252125208452658092595470534100248588536877514033132644683558161226405554850965834803252846028252300285310497705481042410545290588262793960410152209927948380987274294607683024852289864098057944601307369789184982281421102321355150709864673972947609027256733099965329026203735662852882088294106519387113371708456314192018442049226111313263769000802417183983176903769661672045062184035750144448975252223056524673881894209093266427291687071511032929260708695172476277667681950969610812726263080651090737897542140934165261168722022074408956031003025422679696094751598108452595682066588328890649700773066727539037063252809861435104383295102981828990201320933661050295436100050729548939121562227144858553227549004464176910456849485473252208968570069786472601495691074201071213141638954250227150564050886149829240218095812959616716135888162477203147062316541731840559935997378311017221570036962527697002987900755772745931944960067320564667313793462193357016946780016086884840800481852626664412193230288710648534081210402696568168874329087677414337977428709841074686693128675065839059641667714392413077037325753487689266105025105176821079169934346176237216158367309687307631935212226149131674535470272981082066006461404509553808632448248759884866685449475254356742209550254049744420447466428065635134261176559011885277734190524332112410767909558790661718884533738892590781200571283972803943488034586438274979928893540803369589336889521063567911114691480842186303352750159732468342745166104454878271159069884284644528945251298969797089796285443362379341228950849011171812935612052172253555656664158047698650697045330861800094508900846530993313677963281385360586173320424313271099802080754998126037930290293061470449058446175775115563272551342980152264707523790064506077704418781095184020378618546465933168940385601418020024369864457357093006617882455384323249656415760292266652290902448849176089012841946405175774338367855561974511567865857399874051755514230249517374435168401728113752300043037651932188403326279503726067559552321439264973059202478056663949006364527147559107447895411921291128128758306866832818643927692065999100317348401020944872615380479618763704478663683127727817323934903119491546231993194081506881326712411088061299344186963582880980056573976461997324587600446200243473885261098330551931890255183268703144899589513901276539096163308058810665732736344531142471948452291159789532367958123999008714797678494270542600764203786422786915083992373223267391940009436463510031879424965106440206891034456124985992115631756004508233870366928305603170869710714048655448693067736853353345833519010802059916711249650284238212725375756279578436509276977113175170392864695609934906926356378464120212462631129218145080795551464678312286982004756055656664492033512083015146720407958519476308279345952821644958456838813172165484250284142239071778875326558154102870093614462055189758948259488037162244249292562270648798358850749318065197540777338008906754406236074022304469598223692406820328774522647209732132514193143651931982377377448435157925712465455366669948073209996391638079349669487363916012162411942421751454025253270209825139359388236314259261371136575936163541928755532593476838435417712979698005190184559876351140386532073797225132966551555588685949989646217911990834049161878042575095895285400167672293897403971623418139864218319985468962345729826942982635227130333011530409744083276684317300272837930927637105231514903851402159314937337817834926554405796870933981792800285294741448347442731596857469281431328947682083949793507433442614627124827678862263644757881440999143902738033177593082161535018162749043420641155269394935998983765686997548882042233820451344186554492179236826834999804980700220377737295477441195783463586638825867239372958807576262008925000877293939862757218549863711069464661191617424597732661500465181235737066997169984464411949948147957177536380909760854924918146703175330712936602938790835632618688561086124062459423458904861530831017488973378975836962249441987691848717342250622981037989529924708983877485742739867209406141745804419265904178312521374491077716683069928720202491633110121201206827224806793213487386698282233145248927395833985755538371049044206866392098614315718083459287387209859282497248952225093284563231098049039532114602704277080795898570376104166144578916623513138705095528110846233146748073557356731133474207978223246589279617028217059634309807149307226929415009327627025795927455404257412063134329110932627250844978503365253906816421018928261175276592822768682089568369385862631568360175082130059917823840881588724577135588745099513587146703427744209881514852227996900859453318870452168434684749328103861521022151523890167919530124299202701520287046859193936690095805404623345875399522343865938397960667771640454634570916472143265634062867064395779830915548627409885015351839722687079356034149321967302750760672985517042065102571804546753264420538031014046331573375840189405510941599210222204490780681781287601569580510538861446964266404181570525845938185704818623292766557281611314268166980804617834023681047653936949611996910534107425142213425498743492027622900284413582257650547765330913439922022244979231769625662623042710174212983183721230966629313627121555721893310902279880097357167578567513109816661587381648194435093420308517324399700497579519529543780110994155985346537363785827672833193884410022300021743248933472354177510307321061080278222503719191782903684080844061724907761715106366088356905447451255167195288453966603681033551074524711542181857433519877036151376362087882063586868444871382930312760242771942162989454444215850594404503646223901242014277128810717021939516440041054823652091875926039324307513298011323386264179435406103349896708098098486378974558340665749063544879756728757296129400932419288374893904832381647479152234689655229759845613021518731660992238804395690199108806477107418492505721204626898781102176100348309550904345056224522023610224513819456497704517887601838608676142295437821232564115150673293450275787286978744730365269597001071191234812191203735656528187990380947908747091924681484822354446485354672322522823649955769507680402329932086106019755513243251590177567354605164459714264319551195539613634584656161199484685743967431900987281842096652416374239061576338504700622567748986955824531234210658564356903420439777842007014133283488418254773700623667778146829123120198049213010689849127311277980917871506089121464155566557333827441367129886811005233974326658919387720966746387781122974911489976537841076273744971212936113096362008113818071257487342258126405871686443452613741706613179346449366713099621466528523250956134246132418172790250686592899699397900758648426042477931286893238301855564592366177629384330018603863968106170430898334888976877742051744458158066298777579576497421941827942446765661802243609377500812700165693692814843960058215002281712156336360821091434764471120854907790727362719480054999715482017631434281655003484053697414161789528559137379690153755526029240634985284375447573288282856042207787409322711444830832725373078755694685125052658141752980573036284739939233195871981058783942114469106797944973652856798606452582062933112226895993350377435318727865283661656715136326158417006729639627548534308577289492044340028366895296540867974896152086174266607133721090194877673640859173928712212220118416194512051300930183818655676834554622380754170676619057199830467040903939619874466661513746003104046974127229618451572107965031071636454020136758958555016493770652884588121398866047203711099784141667077632004609614523870036187973480167451071373534821907890791737480475642035905755278994535236866618994695913086351363141856897699185842742874335414444593464131705560567644132156235662391264749042086687512528330751651614795807475511774411634550215697044960145098338140760020116918225796944116126757404692503603698783695468297742308557314955100011430479672582597075527526416691464415161441846687958933256232739569440900901559340134463295808746287294445355233215463849659332770314760683443900669655617036284720257086632234001232609341197853134527413297603514480903432606847872866956741593363501895212269690816707624357029724433674939044358772844493398480040330057677691336098689841936230196802776290195869231764839022835718695672990389936554834232008741903215663346054309609077044606895252769965379225358855329833810079369644699228229360535574642046315401715303034005178936401068198222239719881018832439033784395301742914605265157703435474268270255588535328081406833948076687019102918305136633745342279668181605144859894151890893144422381219300813937528705795117807841071836190327384211860696182883195264111618643773875571211756422435085150699174217488003851676758158075354829883325166259356659837676309957974548466660874034509542504592691634710788844213653103679813035622940684964248468783154868974775304033028400315453010913199927349670893208946321443982566866767130661538053072206996005072655430374653389454983716833428625893933768569062990015652441299984367675638910691753564833549019769562754591673064795865841385047430051143268433095628663859891432191815888737698335332464830616025971192366425642062675082338776665285927082378172475076462246090775414828147710641906446972483558113113369181462526295651834840320799733746259268942542574755260350265792244388612458355347423956039472526813645355380177797821571468662710900365482132962865046191446971388660205391513000601922483840225534748921114749292467943245932420555525667024108843428606913845364010149372398679478637817244133884583914570565088498994802202957538835966726928652642236704746959596196028877086289386384099040392647413771208083564186877824313683456253117848044004555999619151130661984744096780407561829271452883665050081438982476449645773342224955278705927548979405807827427897082416623450821690087132149031541037651911668913118195688393441116638071594763587736138312151261633477312823051059579411721395408749258180263578851275321021818834360820897281789396982744452115549240628751239038062634823540487496502912896693185647783323233291964927788762307666412165504250359967368363404115885316136049861969395098283561309170790966798637755119340778775411095819884675032085566140799851075318381815294039930849394602108800133090825021802496695102514924144861678685523631028529187445000937721747835408578884923114008205213328680287843747820963271063660715728073918756420344788993688910061373865147742452507940459631029269934042421714166244733600819962145546106731270325871432424665000836092056597546135157375255095658036477016620667721975667537952165427397450844184356834045291045446587697272828325116706886700490398711635458433819945677581656578157534410173591684817103553575383746086147860172776366982747035535885147893474268711115295496216163967650071045596750903906022519422141897743274186256710979222149279238797377532267751176427144836593243088512878030320257457993613757222481993052555498129535065243064880425598126121344715632753088678505576787695022255367690618583059614146075203070905740758156961056103406147504864949307793829566374343673061898289486175782858962093836987113036131352070735888245676388536311612354073037002200970192834078350910054359034959709736312054989190213646709247594114621520074756246202606906767824941177371094272980199235339207903244397536499783431183305522316091993786961758918871034122443834333253613803107939566607726078012368682911883347793415442021106385271465388735404426137823547374769572093340623674436363235960504816990213278223374229753341139218761807594010227543117158463962744400769883203491610245208031605976907903648225929444895695102298884044915065328890233186550976503148537853762383202952201987691614764258527527460244683158733593114804659219199052062573268101496875276942951463769563745810037130547856944377212265723619174721351137473908573670376663116955562951790142074479416262407172347163426607274981444705977461695366858663691570224984310762395075070063277223654519366801754727438872839334686626358708238276598263871285264876799212290344163086298370983956116073553145570502106834781541579751506856079260702886416621973958692576894265288383372391749467402117152857747374186571145990722739912203182652286420336721946820222804212913493972442381808223793904465296873149159007855442530647686692365387404714799283765443624834570347217580202295069822540245706365545296423827697567757282850650889016748659281846609899839976272354375066100759974157487702884184494260143118154619567798472383973297085394404928043944280101701470790029041252046229149017396808409411850049135766598316354751250019918160679397039341312359418892989394332895735273500071468918869387304593738521515357084477774112953347211076000885951955022435946032428019012260157097556622724218319284853428542731541186942699760888365460316488726255985953393731008016882280132527368815807829623014220269517494482704946279394723954780473885282184178408823602142288897045136467162009004291711411013351773012862731923820394927025082370683373872595793813872516792089952979528055624955118386394868282358592174801001943685166138958443143260420732643689718279788328519126821842295457410078148585310156688637163528789283028423014916896901384369757109329344345000122310285776777430718378567566656332077359285011098337290439246351380900189442101665077178379113677044270135848617306835662991051697658375008095424664505301305740943868862183815119526332328794600355967027928997512060618187241926626797474306026150905850075684887796888982272813882759919323180314510501237692087562927819485200337341506428491336919489272716127515556381392263343096791889049953805936078333452083634526047158453843363983355946035956856991059419892164464748626044544499721020650299248659567571787261741514562115833870779671501718012934475632936857971734658894125127323173613220011470287332628551318637669948658225212203600320400342149420382455454623608437999858630016436341562277478162313897421006573873836221449022839945087258513883108860493491360026975693843599960008576574312286631344540878239408705823611046988715004771113527374479209916113615215779755572703001315230812298658193739794760528271362436538090982494752770688613263801713105459374588055812978054679836335693991308532717085682464511043790863897356216520087112676317864629624766168317851338093403834580604487364200950938176337532380341301410924898275410557205496872107990735849233926065519619266146937005594310393434454638239185793819001963886074907292068854679563211071315842904366923924766854669881471084603229809800161978734699217399622380807198000146839692035503526640009449201914519353601206117459437649610629717886180001637044886062250605458662965260545637673958667694977669099851676663229178392485335455924195708745857553942356280037881756116800084588640741861828257858452960931464559425245781894261781911513845167364509561090585078209087911549366615474531792847658100370955411448792889799211240221343160420394900457565041953869330108033735673565262988448010435557315567385497987764391253946523192205968369351134353477903668172724575649372498951071793014381804139091076739275348450171263043312293884869130433582965678461356097392810038690157472505814928084196710636868206179452402378497028480029049937899868866272595196125810795100370300267040844933790635486818220076489881515816220125516581665030770540753748108924362551614727099449236090172775922584881338217988581260518599642863598501600210285350886686874259480922503037572295063492601173312918047657908864453742818054664686064951185258621022406512698352454016707663287766309499876487505624974245289522355472600763346737127489835345293749017833479647306161464234207394277790091326385325902215278935194907736104244945953738203313342101705527150864857534785542411509001522523388604456222198021271592531038924956571821369321393515344827871709236723893372744972475162587116653624029380879849858503726298763079696467525442760191720997329906031322551113363731671378689394152270217332230126339427480293794268191182371463813877156121362971977068997731815388441648098084178037587091293746597329488333008923096231880859055390530136606687485980923037443210833535028604361347171563208499580377318100047253820396059087687750998051423064821918834067950524919787516352888711476874263098836672219736183164129808862741188114361669325343422855636751764589061264392406190656155385712837968028915919668089004446467340395860335037118133921649179205359976395198134531621218120247360258836961677123480993332681747181130734624047217971600149637787290039851861455396921904622756217700241235266065803505708916473212312642467476804325477055962003946002618581398553793410142134895955637367405505966897969473898545342403132365366079578273620922868819674274196052348764669181219846976707043922758014579340663045571714402819282135178792349140982139275347914534907856494218274261553253620575172068756103383596989616043537791692336379235373309001396908487971258066664716565342254444889812350731611581578727970806478548855987699627662103894767920340520222960943895033190915555024907378975916912246091702027735882849693249157090124227987545723515091904345428687329692547473632807991609361309552802404066983835099393826597061788998809230303912062358652353503743505156684081733077895743585784086577677108367290443308972258516790519709648639332336430680111138534763120569946388156035896867659326591209545159381385428900601111216996024078043771354610373067469391329847559424846252924837465395925363314373857945581906573195281186640072754267231875286757800491178837189323011246308851601615723860503489290855050292274346744600939703298855602420959435053457600965300400953407294146689432964739733638386559591664275190665807365103098825465754025507559146786456367489919598022996609688995056304992419157743779484739140603022905386456663480931958565098321015632292329299626824233952449188467495927085900191706354524295414949575019479843573026497833374225485929221151872852767827837728898680190382491211976968595111979990920397629396139403869358499232403491116505036064403587116673803457728764587687955280239573090184244906614677598307707012199427172825627946005187383759763981002819036793711998171600051385834671362396667456958628528607027352095589704492671874515717685688966670829794664720735476055037083803132493031083624850106581405072994716260089195488605981851078354289237930334055384101800755191187826237222440365417207991442215902558194634258046774426729290453015157397098382973223792107730788853563943608177358668870642220707154278137437709215271529905804941242733064871341250357936851171865209574117503961160418721125150261810987072310446387026597625476448123533682291320886431951929972939107504221704336546204354124964107729326791312986052279446184507160104047454364233343641905631091799647647437654845668262798803868786516640824639026882412040148622706995946429009967085926168037499324454624542140781517396817609372837645060919449261357688409406572802275003522267398675756469668801088378894270698527369459649267393250853346327762208408264177576774784306499874681432521601936247944209600509698704551236376995774293635982237744143644093937678117275123620421502968570201222764188383898427505507090048267306862750753742245133940537012680678014820367215928976457503171213249348778858460810028899863825851726558457091107908693950275050290944797999332956251435771849543909681567270017669433973232222998354176530447882685657891550920095493372641990513379717233414911279527147854669848071911734713531598108844945124277427705526879158729471002507878883550324157852038965608973567500667951538047640297352570062962734842908360562784449073920584001894407328421983263541006354339484738116102778137806341993797387201612523423591431352243097156527674681011380748879463323884453821737134619757278120324479497513718573945175537741874816536999694968188317563522860659348112208602828500662702174813977567080539070894730330752975007442687194736792529205721643082043423470556302182130866122147201977829867458873993259305233567381176608970914161622258763061594453544991056688700012732579060158973782648599947585770528208816141115454543839417119532486858452815780916789923870752255746155307356871237175410182078557603789010776585419016490207261862099872749704346039441209008311408539654814565090758175323966162074252631066313138142825563331750558486669614048024609606761924339034402497597930901853201583808834270305863532341732062082150776952781461124139888223666453635358385073572721510273270305631113972332699688572280916175492284787865778300569768657661431756630168215538478858043085495559347582852239049735633976078244496372849745305227950390057042669948315119795608016284489603517470184286615871670322367072715466478031297103817882211335475078514409065026108993717562256643959779553076089299391346843992703677211827143063220192950995813168347809465549232192242298315712981840756740238166654613186265569881167734117832891649531608357878919572887898909484081813198389757772216802686499141640022521265172497895138305504974528467737317865966253094216800580165388004281700012348674797749111654098422103652928830758500113135072659502900978544118489207741348877356792838307416541672532871449460478412517876162728292050360643970269431054082771182036101492505294427852226537993053801483258417530477979541826378903143254162125828972171673555233068595391945446934630177494211519759462420609900404144063280408900590499202871330883648317058279246971440605972698523663111372896679274541691553655031243098485095752897747924999817684270707491378838807791145581042885667495861758953723967824659399777828785672278987246848297189239806028002581495237468522608798859054254787888399407661649203133781039931079692459865880588514920147119145981983150130414074490860668912547112055558592952738727012196621756247357919355728216708751895869409536935615090182186762241758103740102523268107080104589088288428153354394458733284452436857612308199981968438166655490247762046911511140386664640872298329102925258318714622282732498024623881182284972673648598416284201773002626117198406438963527941940744253758342141495730354122619684180899474512154775666486431921339533630320462019231066437984259638548102900520238258791775974262652639915168735133856170865654717479244138414799162782453436916418505027192613199766899271984477558996464893968644459971231679833148324025870518126716348957711797408252173158966068115091003000514275750321494040802819068726086389598247842793817141067406193441706806216333638406623831768582900255924109030346537693080307917154334504844322633727325371823813136864563763354836984581218461851086092700926718464172458661310168869344752160227634040938140009951318242444938771484477622797220035041364323153780353797073818222942622266858512149916443169507714432283409854150993619595433708281783484401097052028185370247790378250138394871802894825741776287596745719370364094475943380378996234585579438217651991118389437605979326679346496833074630545751122766085765394992393096522122313193368096283386038637869034689809258508318001767394028135457261264426117226879778692519020296008225408081797330032512831644778032605441050915862342707700648944325213431633546356176501211692157218577389091783467360486171548945311919373732551532253596067672163640113762158654092720274915826993096104703423765967259644054834244676252596393231480877400816875531313902624960384098833837528236880228736580129915803056455787487268590628427483995789948400407851438517178756527479554907737440442897816316012200034597301730164628596763441918250893022415393856503928058026488554093237573857495268217563198553633382039852793350225248818306759803283356945676473156243409916324314439181111131476929666216391312411190318456360570109585917421473985869228996274319267058917449407776194026050545328972128183827566538121427907115454373980308372842153548936081245850418695691354703374609473179473856815815924385070796994703799721704965583574890944547578901365556175452433657610473101701445524278236744983088872626495518829259495196096640455107782058293692972311748565138034258706169861729284126914362084497197723464029943333296951607819389580170552473481026123614388631832038049881853626632154318680885231814289382774214919070714503201138017352886990989387881430556083397500348529476800595301169733204360925185562601310437015487425699524914604051004546285558669673484641399855384547296730140656842050355900896761068223946884731673268237732178554706128621419681991517084553299140757132842739302262815842325759036036421931972988516814098596211764725866980913388561403505864566286745707458565329212344215019583338538831973619262108159832636440638416458159815221906874811681409212344970244065826127850823324037950170110408626503245388342493213158205821839324164470037567970600932367074793357594405233257322934710997362898137888858106513093903759988701577989977995353667705088168809640665193053785602100199047052917378696729060663084629945413881435258386257898653540103757582367997959238722210888557063083863684533351048445214907962161821039664712412409622424432529650569166982081012664519331049602321705364044794326129297942581295063723834732755659189095553061558820792187867267939221715832686539033553701077196920615221779810196999214207887285238575771711465165354685033441582931510086147854741625317928167403069869439734998159600327609379040949084815737132424681394431762210468518819500761110392756510614352319222074606158042674877268359747992312143750040193836253440681592568025501637368747823989381427859672648220450561446030334629179729139696674818223556376363999364306491574607322825492970904006788085660776565145164589920295379287940739443927431075112343045729673834122545050084011142681565313863923888683812554988778754979404876105523270123711745962691874370654341417818510039856044560795881116626342296998201905887478327886064311363286702728212605941832566136121578986518548760148639320560291536865040177555185576339923731033671857836881796111712099490675686748250067870258589396922634420141825285352709936698762166049530484508330924865944028907053908705741183579038779521911634135012309473605640566177585381560035784349341909723703827962057457029927803880040295860810775880731691768670435943474498697636050357175840097557405006337712647113259752591701688531966624093523893204954423096435460975724061484050621564861631813377988245223435729771259125680321262381077383984263367995801558366622623885583796072559331343026542028685961075107502658946659257874883048774860703311199231823025812884316516147646590448285202548531290034084796828190766617199129080735909863721353637315054962817509474723105417470330739534790753336068403090390042370701085268896020364864777501750229389772547742790021240302913671308642950881561884138276834541470269978994351848672888452392469783606925744296380310961068886513354317376101068754419026869388501762070133234831746255303413740569549048872089005921485445928188044419170665928645584348993995377306893093946384381467472476557863559133882221010994921074847170071471672281226875414075315890432947843342359595428060228547466620994559517356701207006818133648296342561844797684829443563653173921585659352544075113416974605325042919146283798556750477561686845351998439652888060158024228775777199518788217992120595985685617449755766205471498819055650441958163751313068568599335856029523824472719745657589305271693152891601794957477876248194526292975800379453044907500983213653707636357350043710671921131654732756766863657506451529113385713060141727426485938501925898699831214566797205761783933210216598659093377324330722840402148281535877969874776723074258107788317798301287332171384133092616875399356438553086348145807727276284750930238251265200148556988777666683501340531745355349362740986634405544387347523432934389466905881135910202557745009444103854820626399105177893304742386474114755212445154545527225674845811510443048860552035814178145309596970477503954980455027660867434371021269683037746893384825308722203247608522455896369305315809855094110088041479549012376658727404323087366662002092787045631080106297959494052150504830568910200824180703185894043441173984017395703087655120689407228163542209273642172023867187849499425628089546586943289113212312674323449230145735086002683609937227568391302634154665485314156158113790709163822332443929796445987929947750466752515345855225601741798846683093421189983450792458456415477211158072113438766375842886085096469503385192189914137864069444390142926277337429723203624188669175400947939858978756404824084840296815011495894678651467194559822307151560353888578312962815651966788243866530922680921822531726851059713082974834406544058689844597478957250382085586116713099212891188296801587631059950614210515409813067158032316077545119402965781491855244577943839870789519956558218027545341849139345958137649810729655632438714414000621450753812522147924828634210780368949295363556545200211563869553848489859968105419053186339191648782117144781019559238579924652106712517126896388220383455057422025165102315183288178654602407222151777639097849628337989401707222280902663666986788712736848324995656789753586196438279084926160268190953024697208765509749402079900707346436246602478253674281478336983479414592366695391938577199982944413524087801972373908725810478208052945881460873365393779176718196540697181815630341493059257751142480487968935805560065846466617219048273209180115214483617025105846544770255035317380433837185309891602816602395016373812502557582475079328625092941659981936520350391784103977744953906199921197452964320306729737770700999806533235287570918448772020763970592418736477283981279276284194874713849027757847808086929087940933867264442669742162064077934258714682127074763030978356070356884650623042827868612689065966698174956695831114092617965371316885949946862082061766332574344292693886644936734895027108240265645443426137198707023909818991209204580897997643873839026868099342013277352629220706563120633235286353085269615393538554361492311379257901426009545430454642616839917790147134748694151763298101587041311152844244842082756833762015349301938207824539887433070797887084562076484948115853789751054052864771119670799730436784615480313028881915966812424820164571375740240574069952147107815992799541779708716840197291534704727296407751727785435422563295280083472224905602751138378355664250125880684443243393259394625861414472808373432139066207238040897452263433046302486844484696148169994809804794483451710521931383881106773947314469445211192501917509263018833736622940867919275727707557649416629711688764780546288541070846777090964092829394145778690060792279914058903720872464041085795744629482805712764020435362035409945902808448058310040086308819810465063624207458931041128976923020305753350093395833768011942321594488454103515730973660333807062317768208419439609198340459734538092401714770569439241846115730487850525084371643390617103486743235792292760452729381318869368189627032234232435646424434336604371341464180920741849298032260763610835176155570756013405338838402275013930668507936727998479904613324274652695717257121257194579144694691172920489384837006931089105311448777687773986563352512628467654219805013725170232030201236679610757381743970879189709000338835951806832332428238174079041065673370687764342396955223017209338401284669970633707543263452016694619664077070198356004824490842234766133794231585160101650920234530331914176250460680433727676348934799053859052139362776328445509640834191153956628080458164274041535377598116719144441653800556331194272138045528218979187711927376944553183178021488424594830810104179607056576227293073508846095015655092310867124515406150069457883154705923894437955945731111916191977177924977582787780679555005279801152912705476859695158768217979374145278921210886514436253363763111643059669323096075025588266754295027292195399820193837968947513266117224588117874926922784073442088916714340357006062201609896756225430640890004708439782273472452167115320851289459627798429015218691667472224023616877504522685810451574171317131133436937403958715793589775703796403231223297190638297476722404077135758762710818197413325900991962181447207114982581988334493319844563737421087068111868617805737152942764503784334646278872127667685687092767928098883352596242833274038915918929772161982398087482074137387036172572300259797419054273045533386036370648114488293708818186105984099330766257363841222320724416460264554393950275045011630657130989387621338060470353683304604636279110982280578863297493457969093091792717442211662919020218621171135931758475778982152003501742747678596089260789858896141637369978341704351133685541731930480364348183925985736742070263068143100985548796276246416527032697656457919325562593688971325912798146106130904270050660008130124837665267106847413799981263341918125860878924509226014213057058633378132035196384106226211423778721748692713573466781216912673227389136405576762649960551493996435388165381159896736567805404695383693630827903361478740250295391469847209013228280134683505857308006357596860392067603979709682220394566855864497447339925223351801914080906242958444366429816791301485382547007426331538049303809245556019675800085728238922441848783067858285132984841973823534086583977945474629316488607662757473619301183776559678855280633356751281062938217725738625819726194224113264239529278792978040743932429088468756552095240908099622278489335679980665101512514238913141674423458380662806964023993982737366043902574330319198808518706459936409817889552136442487487441845415469780813066347488620931756100654436013277659853625051075438432678973512902204409996644832960170399875276816528848478372111084383039083791225971263029077425575660470249587465222906487887125763783368765390342660142438817816413613879344874295993809565101581167857844116252094969273092744710693756278632629458449578550391864339374654480617751396422581476017149416629616608274288372736444096027100001121526926543692807862010531848950851735211493534729902746845171266165345132290720112679012578405594937502263680314927647339489267985584225569254148228941996433606752630182586277986652025398619358376306557166322298983864466290469181302951074260266097580710693330157975106115396332531245272095200076434783810695770309531887554938655270915599812038205271107343811680198526671161508628278063317521245749228671146833597587416625274662963759054512044213761407176756431174398248244908082405495336517576582593236097271256272665775300681710760122335900238151289099852446341215672826206372113750993036156104337513939277867796079382218547298748311322563468017297919246489122938160806678631576174944562057137151038707939832412965898594749158264372163740813461914129584998211253325422232425648446862655917234560814142481356046399068880408606571091682861464391637177521350742660562932675283717112346492762802489445150037537135528599787016219305206872753201293849381245367478252191582495065782935333252646377617200342812825576420637090613803982350047678490133837178277691855276105948832404712734158104833247362264708269137795737515232709156354554253350489773774429754374781944435395522782443074074747747644057438860303398503114063361269701089470044495303495984314062591696682041859943614181592707167042246384424612791574717439681448316865337591984704278862046587428244795557190832763292159354361656908350321010326724697099243770602278475872206680627012767933920833342319103159537384515290437939977397968467532144056530249877433699329670405363244073696908665640853286324995348985675163785175806947926904375381262481360590805010795626053130326650149689116877736013954014347304916425321839739745283898736384573649142983872396955561368908767665017647001514213456835215834335837718404004393065140422999634957971023805915854933709006019215884018678211043081419642579940664189240096624500756222089893946634742759071905376775155542896162020207449432838614273631513566116766129532062252164671928583758454306402683806773251186531181262691229930558650272407369113891321545568471352082466975347216854740908514204389900033939096974182143195751653701560008023709761054847092397205375050923930086169847566920568218719619134826574672679089491674182169388370137082340105114037389690946327405969140248499969599562921832205434865982532364102941068844142549077647383302139066945634929435991651555144005061840442273204819526656665856739707349676679891808802047706835973797192991321379780440897571962651243608893522394388204598238205384414889666696479515758288450213811280050949154210665744186274425739215337743103296081481774509140894683917658818485767499758521510859617218860593596374459308266163578565154872383286648670312682724173243331463129777245223423316484524740795322327450377883255354331536608556556289002682399708287910094063572681066660205961230504285691935700060946099239433442147532793999359273170083094102135078670117933665234043915024377044932120929394592029719288176013095412990070580686868976288883319695035341527222794491200196044044024215975453376759437190573437072494509400826172092425951458843121335808334062927317472703433292445364599188234642129831284594061587756732779647805788842511724424315925475237001553048209677446105221916862721205559868098792345486390499229729777848406355877867201417120400281235036076606610671647877435677586887746263493099012396211655666456198970113453773532555429586952160243230397735879315856955672384167705646967882368559132123972120740042291504521099569660618720838113804812929556826281780307022946647405881478422377851139803345374409195403708613662878955846644559913324277561954959227542132656718074686814276983151969561934813133114634996402528863621139958855137192594188779367656423185781398831913135861051037395477620982543449552921467480922723667164820161433788077023111977939233073785662741324260343898164088111237612562680762071765597173117706731766416023269475830298810253359232715973368614244936672862020383656583706626292933855549823561208093298803141913709456502726535703192372158755465704991107135720745756525089416947142780925939591592707155165327986192588908231848736089885596154592583199076681408120225567287447334242297489878705776869341907701425727975774482762617256542075412695990748182093820614238784899598216813664753291485747477259555882533628667370282850798548015981680086397359768679962942416875144182087406553955240097361108428618962113525317515605463485479512143786254418503663693269975847770125935749508495419633062696533806385415170526022227607278481477375874264210665699800588420657655906544014690660153563425799619311246623371895799416720164180645669552177308196307318859869940653948944402110156317971177030913303323813409815457006461854311415134836165896348581110112732821342497501975348998445921684447676793584942771324718869859346996947560545377215905164660561929928605371695977793441748360681686273940757178930467485304579429709835305107859100275442408071224017887287068958055545453085996065698956552894368758028434005960489923925413739589404995851204864810024272255927087876225791817337827602389104862771324374188494563727981622310261894917842142119466061537381468712658517629396434149250569013744793161242746079593245193070819801077760239697516884831892416929957703931183449264443113300805973974960244302941090968170029196542132908733685711718773533859594939793760437898048696380755943429168283449491416340566837922844106925366375319562850240839823677749346135905114197521091287852625193250070471757033429261777065539868338655949937726120392734818940194128791475260429304043284532933003423954177399583950168989744405088455040102145380254161053883865151330016858988623630074425680307533592155817406427031463637863200939022615711658589113952822222457115356233699584385728320192051518171658493408396913184374530402535042173332226007801300947940914760432627659949838824418248596226481763531849010973305928461629306457780058293187213940921421229454980457480394562186626934352335774591209270140640285113641978081778053394822313155406474329493392058267353603260954909756877209986376104589928311163949577399853357145859540413224225239953463816468575022664660359769182763312377050582118165021382614520952007047353114214953840195027031009908895076882227073434170311423709241836617550116801958228281197306871260006663849466379353137402073352071865041206673855100588231433305132627100995550779773669666350233481976199859398986839516015964660081428794361419738766354105233518289087833945831512342154229793345524212261424775027427413957936154669523549761071057256153595214267717513230820232469963964614609928649643132836193406612863749291617435983473288613184227153223074072517544057675668382460775733037547845300833621987635755386326608951122444334557565403650862402399433864299829612175128710218099761550998904365862271536059192326554330735688480128650886863798543238999093877367933176336523547310107447769133642352469141196948932493060249727006565521222572364564153019861547476256299431605468583048228478777806469784536969921525602898526726469646000195675647380837099797329011230524305513844313427568572871498131436743634577959308978985366223168361579169586447817741225186771155559378455096483380820974292287498951947366590860340517472086168796701526198495617286359438353257645536500601287515381803178578433988854262220681362853282395431268152022699423622127835277166757231056079555662266578077575786499237433826389684051968420078573920515284789689292740596836496755620971370602018739026527476362945170900194491297374038983470444309001670999046253189072217833413415132865935767966194577065739898477454118597174875133903285103997703842519059935679424675314718939836870341340439931547475132161869999381965902908358667496536338886070108592549491140093100316642410015752718404950035729511832102597884200146752847607376898000653878911107371805053918333409282942922332613830367009539354931337058949651059862194663790764285534104246279776392445803421762948374403306792169883587362987558329884961629073773278848598407215794409762140523263229148263047215106048224782275022908100750396444282178551243515777172162400226499488115496361023744711853814670439313523462220643785201549785136096491086486119790890413675583702807019762491161998591918538368256328265499982915024256316152344980692122326220904407875850778143217847893820540847750544926202876171541078666278643502009431379815506793731125443544367037758575785558343895644365312154730907678765769107839986189443311741821541308503758135368634980103722487607105029697458755359203124745391194366293074615643305085962280398173960212794432017713320097739126598254896381331337499595658389515815570109608122306429133156261944080957006094872170922853602635324525718268880715886686241494304714663053601658007270730642012350848176998448289748940546438791710917425724305416422783580179318498829283119305800915564757327944258291683113171527427923667724945810513304276095590092624124410891438841196817537838607742049724306825474312695194952325527118206966015772797469842260275496122318693547866670909761080453793472710402831881946887449865235545362778089159539555177082401500704217044693506558077651023159590882481379618957258794632845600303398567936730036175200567876045847127031310538710755551680937721991813263262934777713637156042644963019518402926723823294630050592528881658408904752117680948212330024909421119165463778662663094433653926746610275148087874492677480814784581408890842577164868059911997329849684174394737785425961921595270906861838715226678033739951500315518745980264950621936529334499370392039505866138493465227418184591875432230806208283919373275642117286890290132721907679444160105530797132125222253738266684678616438226175309521877100219140298184856530169802214015802793669620779097272904603222317475997902631743047013312902901619738232943244407450017175562259071080790043254855168341136685601613317600569504054793106937607460069273345549979960441862988614361474191587565855520417945176115013401294540269738165338138108239289651992578478422048026984555644836231800230918569658554277405533945281277284723875871153860840498777311511919032109535736378512265640176726406821513601477040068692782558227283715356699000248157767768723151007769047032960746795274871869976585149700425230916177710571887803335901316864883678558468960482382296285261537712865375772005641218021368667472368978986106652853732210195882014431299991866074097051245831751824529513456753426646032806002865865692874113354280789876494661799490125886807846949120995462099318282978665577556811454546703881541145818717330858782407922183611409000579494803386452827481850251785593651153811351583553962209171180412255231348184831995387529420679830597777825856946832925402025346240306675839995342715705393211070537499414809756007705849369619857518840785316731414494959081004350288471203801143816670358784217275781786698760395771448993895161827694740795022753964976163543547826309625298944899164589801320325759022114657627347645370430568085068429306023711317214634523105255071293195461890049141858172429317833464986482139884511659329669545135871506508322202212812392649494988414178318928972483846602997680597920847900531853584996625955746563927455732911022545919910493666598770471794873426121986620448638284070454323803494270394861534679879244534916612939641490250768768734093103231421375058593811939207193905934121643044659259912796094738503525318309236402821608349964176258052915799984427294035363172247087435412055684669264238596105042104781626596888639686175340961578192224018240222549059664795873001305329517974471070459100267481491668836581066584968018655772880233849813406087963399417052401803183214742072173836183410112751245845383055533243065542515453355511927663008442538370705801582821152842242283883886283239721025825110071695669055358762299418787285547717920637661010703467930574142677260441702696582354596764675987495755948468528177463953417955067044883494854283584922957070908958610558046444345216840156490855264829204975080499436092878710771717838136909930271520684106023034798095031025775891368844634210277537904202114794651256425286987634945428273630761491159681029900344966816862047426168018613882234822155838010710958456904261326556388172002684125466978966493411912172489304625040882135891252500753979671540585493052883541115305786423779859649447636694146796570072194254717145674341946399577112395555997894379656999263357730769715937410300927128997717468029031450948386643918189104561281706007161473377517677677177509296515586143005451906551396251981124995228435208230855861459061075364657368430926507326944592649779732932914360954352418499341915783787790650277679511604767941842297023039250332140567605736385644188077927037879848874577013854746380790725389265967743287251815265913106708009043908271687518157110447615345868236709183982426113899491399115991140802168152115833690006800036910440139151642367280345695840492919763680762511734757657000282113769533884788555070663246627951489097231237838321689910135068544948552596427058721148243852449686488805107710158324250095860552902497948954252040260656770615377223732489574215231646810874192854023828524374106817864472516450860446690668006127851351473163084918171884300253797019330119640315452895064302339167007923260162665514798401171405809070625086004296440840736411915968548243221345271465977432622663811506894305030636775069980550546010363081522020077857368378729696562671766795362258827791991577773732284453342224872652650200891248623978743375529778572563784572923461347904388150403978656251131588928840497714508980699694326716284610989665604804068695438725774997134075352196171201420901159269018052768408400394242273930798307940360398558114854107178378031474517097799619155922106944628508252556714434351035455224962261202716720068994799474641088499326607852743152283942628123847335619057330609820896152204728867997183759822491007031263813250935077926752356748029369522130497756784828562293661741763177774241604809427974249427895342797416602175306890113511712363942098717723691614079560744885586789460115912727561100649255135473417224701476055507776425824129337784205935704730373745213927335369841740184837172863649813523592427407726178848921038898337830547141902058094731780664463546458680737490263697363595346051848489759666498854325141065148950479362017646521412431736233500424170304379726250517933337016896429513245928154549793595828519288573224582292642835563465648744997219191665913605709305578910209621683319389330227103430971510852492697090730981521228753472988831842534139783564732252066169886179574980854618154132875814557739144307535000068870345756207708928132158069147705581592974752894061297363846201374913274922016310085817772830513858190739180217075645652377757407014719872773061551665929945051714135165287450470292130667945828354534618654925744070097758943508724900221601070387773535800933271249184747929090037300029130222318901423789334698415048852829608227487294192264141020219567706344309849871164432509906853945331699747363159998147650031589065767142240848406272626207569540975484383664642534723669883735208963891676277955487976282671665429953345265123953823719956729966636435467390698403799847212919003821505835844228381497330298349683465277147262304478970681194402909888460678364497851155034203337271082358065187326406423863401073820841730547695942844107631625092640907196854488127557942603240442699877050678735821787571625606377210651583552253263008423211940576609768394302570017024867014483870311470146267836063679514188862560719314816105639960645696071559156184932607048084216708552157773101512397377538803188663698850975226192593707408031870052967863592859639818343666119108998398023859546393903955166205201476819910393952826760739957072282419650975289522769653376566182887544390934326798185926790164971936931103499097029301768194452687778856223638256290489653377502334236521370804728520187039629324945542907962580062230408756297087192427273532611762475412444588406260254328730923120226028423524652920405830688573417195836136684379203829815606117616155265094272442438769924494050941580586493764476675974373242297936213251619620676107826970281938181641026270760548120389149766221360076658992498267131059264680986394656664963216918257833343949691011031103526074105704097435889390264284295620674767525151184441451977149270183597295496142569897038179148621803522536709710439124320071695421290896161948068091820330849246601505319548146548361835452829299200653106393992391562576007336843455633102995300189027230680530894945853964094676781939833270707170130308156704026840641635985235548090127817839798737734651534557102988537898716491993256970495826679709751451329381454344010598657229364250340305772253073353235729968861808375197850759762490862291286156974220619000495558873304544892013952903889183727263534723359539592120391508671288272596736236239188558582564270167526033492698591208068315321745675524606270268051871299715558804058452338341053860586504937176281841085029740479426725907165321239333897904596650527010851151943172134635945327729941990167370200056317945853719741777527121513462027757967793307715240682416656066518247298653993204050960160519800818367971256442590374378862800251086191355374940083015804427775426909408999021326313868912799398726367175423326967785796849857799427306437079607800715174585402107350902449024338655229229257627511388005663082007324009160445191434608274210712220202316638528034425408112537833632785237858442519356682812951065834231501758169407451208535932018292477017399665557534577153758631307064339160638080594959151775817115275486365403161327021131163430590113290698866857488347933310384298792837278727344430739381550507049112281907812198353276580639819448973109129940400153414248800549733948811452613700279670840915606646662207932871467829291266235000629189196512690970349661596589997780689972480830546981225851111459684187529060179662544801472883908567624904394472532897199846508612396654158094100495058294964900928123305427414076396487927823877401270035912881931649700094793073756782156518772152278703487444796034312883493105274841242137342800140415747417305496075808532852155250903676065012262020867362330611323091133360306236079264535690643369000604214136735978158245595365777406490378131462009840733813359667905514307048852752646026516575709808334172990244898682459673667886914929654404453312953281682753528651041648424891821203197050587696588542469740542595244617269625871906875970212783683037330865484016140033832278865250739905035745910002220727298340998886489426407017814005987757517641156968713355902286651834571878465074233957601272789572400396779979721516150285176642371567475288879134308475111647710713748166662570238264670249536988946580382374057408970955047331434235049878412620638160843647072390606897374687294737710714583889829603073563018405524050511842860287422715723224492780260718164579415700366957415659649215666297221694453118236484969677627803633838964023932102227943868467299627257539233950344183372708697584401871439358492027757081119586296247707909802247780705563431249037721855200641572280427704034880205238584314869469925925679746317074669714821303949620842563788891792588685494859999458288448230396092654458214223166334983375934929197145869816840140958684425181390080941056374029732844300810675463280186611842666818151591591104146743737624152354724528124054682549880101834600303206836395774393803581897184402310916443881138698926813531024984118692436795363532461845178923979261509581954811781753467519833296804324534357101841690858933998707677428796718056500720575403867309766542742395270875343365398956467370970402775745551624477197828881952966727802883781866896141104245423323992525646046155777059818008398880787149950171179293444992784996539029137784133747292772576479448698205988312129892502579828215582841012024548063273414184560191075036334365862614869805141462725731085253979118595151553870052370973850554520975675580510060963107970636366407853196759957526012208937845008799889045794736925217001622700345123277853198978308915902268878298779518744462588964811261651717119228948047161769976311429639955739629707326492290214567170960976076788257535141373099721063639386975320890496438443612965196223651530876079469741275476027889971190749947952572484428277008164194430129766241348852022770422819106018097274771883076202628458664660102134148587659490158676655606964375990247496305304667802980736556265513206141182395228277908917835848270765404891808420844362873446655999496252954071366703366883538946922517283359563441536402926774022423633792121472519857192652360437561570203567190940739789217971169687672598750181307655320853250653257163050325878810119233415341804804413019647521396020018305946484551216588709293436304140793109792156956643747758847889491427195792080597319886551101380280512834974392244251642587590697592669460637577438161195486047940865118497039721318710402827448966020353226670675134559883200907054777997024602756557263830875004351098301653739702393042662187509408652988157111401121817219893683414291094224672747110709159982557769269784299946070267754133933306250729715124160901794529518164785343872457338176243069788267974733153088518576951801901166194942865687115283800655889385557922186861816800026633848819985101918844073522905756870760113762920090968128740192756285331109637373067262761806233473791080269369321686352586771729726412541151580970087445696564179645227403065781199981125983835310919384751065698661727741633948871106884787452467926158620901720190658381096386802582550273421433222527570884082470388082793798835232143031023841212705893724118942107324553885454099651306854027788434719727487946622748443761436650714258739890516807863240524544129457906360657861221292628605707450313542645830490940596396899649016927710592267891183342406683047729022795370635237704175442987892554599991059964221943908645972529408856886605313167089811425476842293539987026760016579511898689028528437464828418350590686989333865878792975718516901380279393814185779918289869329071756263206375564654960867735814513387093933945560742877661925351401714148671859126959496593904856245767573751702179277843431176733661934411738597685444429983174899668214537584418849787148755792076973833466480424949581411429494391296880766868280188041094272497282430614712378140819379286497509464276790462677019429042614696956177438199634896847873561121913933117847163270397782893548088006317131445856511973903597258428150249550496743966062260238868291072707863912618678611391799834898076842339075822971311126716539026778165652658270281105486167601125479254979870460261934377567637387327195879494242865126014648600609576537799053377588670811234541541157489407125996206815949728321673413529331718867166780527618526382501649843384396441689994171928319263109121458703831834906188910703570684918207672657073817095888769331992558295493470753090553630524030959140058700347553536764944930335744978432280649173579569328780313576741185177650613082997689860755891101208325147049932314581274470676898181558399778546471294865930515467046706375506066996852614418323208156377244029657141680860443863888491038319847084879326457852920338299756521152641433473228179456663004856043332649049860366463712013463023268749823393465144466889996051423973707592657408109139119128185527823837160779335123884344715406237689834310017839162424696693913826451265068194536490537315538423617149169236737501617523808860871560782501915785103087399282452296817914771375071404088560894118253809660109446780079225564217596797701231335981493928113968459313078679704452592502808959081140853450410299385152830155936560633976615126819436717341590176375149258030203658140522329451892703671397586593282589818772011579218651904373214544089989248372228208110415143413667972277407675976659382350755629697212124941008741667539213820875441336899320529527114750140051434472936988182835828691027891061308464928927956233320514480766271188916762684273785020842053707493986985877806471936472532282567773987405529319638953475177345502591981587390474939460296177112905419457394128535788945862999535172737559952856523476620023311689364872669484071334266450528767369434945674068627324813435156790544896020052095594444678981643769434396053892571333541057837941720588608615521412557590081715517946189474415705917937656983970485942051038247250332964409806402904530241083951875217644603268264282354520850830296211581530753982299627919237098692471728801154772805679813335198679200385644632504956611511458378031161235678682520961854521821263951860503092056114659395520816949789527961071705781846240382085900472882888199671650269798635925728553891568434025604130551555306495793490156920045560838389135899946785589160345673148358996481470678707711543490059569634307040198425131958409548967121140470132571382871223281727364038515927859916236148843675028974556927757731603319216776171404767606939649727034894703548915897518964793568868501715555482557329574936730823029533495227926435385951011805772002459527177408536718165823971137389221952405698283509296720740151674342652336961403303178735973448319420487199707578864569625480664378225017894956368176483344684044857360695114092327865032877822703705885288035396470004730961885666495478787997104246823822267202750174502312474371054598890429955807398795052121368240995356993999952152365387695889915771849310208346592957863149062662915395740985381549295179578614467983940518258139017020918811257551442284314444953702254618833976683711895301212858520171982433224756532179144271142902393863216321475240853266397402491500699732362903846040650451347806057929712402949267007508084666206924739098483686489747943985525904474101731807532438155375114541954057209903796851112149568210103246285318854935442835996684440813558186439743893285390282557585974925913973675950301574613617352804233096568985486034787144216036556177098467422181485316572447895501597901503076031686693373559610597285933687228746504458340839146300993813140126802704096801803540944902338599878389355382057402288219630344511470010521460329466438760210242818497352494376708959434547452907039704787148153640786311050292534584640057369344276659354782841034702877955126871091585461395190285396817439024971630907792899064457324937349236138875135906271188859115769746502638252367161109702292045696756431470449731465915938895907093703341627301712529182698357762173510087876671866414289577912205759048415598071852399119755530595225299196826197338102376875823736506107599302276271186698131869643481569690289255139742634859844944016731520493918814477784522154874158664485806345973648383518785611585202578982924051863432931890886487559807056765097942888028533863361212960355696592516675482647809014488145560258806694987074952114238090583957198947370861659454364465150319519827440083339658372072080069591489708146045467119878761942676181057606686319765527016883547048718953165947644113149882697881021806721249076130020276008931139862683580598500457555307996345148239915036389236718484434968231298364103551530513045989610922731109378401760823698707709174697113078017264647404973499843417766332300530473250379659164441664277932083280415373875557555304179904005476392415761757416046878220544157401326813618231793658266098294282844520839340404925190554921389208373949862343237777449809758809295275630119417770074763699725842078662331318719003010327019287002499745303757525405269445288821637918635636140439816157714797176488666799871825582308631305828139949380140296067936965039999827637007875495018885032670771485672767621142202892003385852674769791388434938264870973761001387310831988714925614243004268032504548871300721808194573379013177197613221458960372016199255706695039288490749836262680741132630803336838028925469594345293912919433071594438772337487001620227729808808733689745365602329700225897841983666514304599849641072258828114864352125664291468483770321121256822492104242335784942602353111062718814349550508980619808255809276249334605119545080232708568611570113163382539929940421600203374772549780136144557858815237234702778661212874681881150572298092666942221538788329844285985152378868814802248537477139362254633000021623399769865087355675058434334894734568666691403802007038848311619694531646649149999359750779616144052255012317653408761130321065445956897777965660696191978206269965304814083296230561865547952939540301511624359332759582811202031766208402374939665035130467173824268683917592497846006385517595813630980932404066155828376167815845681829444773572083135450743309561130311551251709635230901944158743516514047094175252510579500754694743392808999858117935844537175992083935160256067363748016992218484194646093175305207618460905272025611039911613075298089388662413696779805557817903654066385498052861500106985089060451687341400703823807944697912438613160967359556291471920307714608310519033612054721299213688894024592273386688843698107102729560450810493616479424258704717642382391321947059182649279675721058429869983472898644884842000677750242112569187204981367014405729549450243519843875741692313981357928970029838443278313812519757937028298343659338378948476656683277668569028285558222959305724039509314314104503723959431723808315407080212106807887029183873928646946199152193307325378505978208242146442322619002269956008518713544300198895834338397235375994776959917837835672712208789506817252315149332614047031796933534302414186983353651479424155462266723489151636012689693748620625546980820830474059559761379754460440338914558485310513826851780129462461397061978312717786127334713421961955713949777636763146261670590002280751970147177821766081610171186687602852497230681265051203802576478048505405643167114092055124207407164494294631917386740639953216173225260786057940344228942906034253879203739216702960761877891849320823986197566315502576777676330919792580313888498917491162510314154658866914254597074215796141448953880255699173625383502292789710737516677864051019986000083854629614119876742768973550394510628683133539130823082939121357818082206626796895242853519720269671211177103017161662110710961932578642604009855340192443374035830283582878764134454897267634101274413332122187717231635062383008436291069125724384647815063964773317242471160110288144679446853768110986447176906971704550310133685667248240878125557475775002979987310228772994184795120317969416178419544766710198001174752944274916171966847495151626510599551815533707497816723397679035788967060944559124902083165340205778326361961593265700454092739399355613077251717067463460641760964115634328747533335821233981739917732839610068901611900044183030919657746469095296942348286583107604869326246968168196925612559772767169833278026562149423581444627570671834946180471159915208217201393018389886916466156979629845172708948077007873222000925415285114664012308823185195452595483835606960565032592330981887118420941591814822016065447524100114437597230833029513445789489295270525143555764617054206826368167432823657734847630685288586824484596968926689373368171933588501454674979239919986573983735386601260410164665732387503716070384638799037308601752066594420195750244431128086518554945150100354590857697187563806279392039036038310310717827396320834761896417682757782776595156835388679106568447538893238945173948393527034482945272917106862356553826919636605239201807610352134640504611866318490319607253053895156811170771543521449435854458082764964245426465221548959731398577505746379281478025448120452860570530734692496892215373414333346546585155353692715617065695472007580060532180318927895992447245343688700280848445590663973579289021080123771391977412467341816290475502206676797989622698900108404873066419823543327581695986671298196416966184772691443638133781441528236310209173290181927558758503264192311684344983966246562871952817734713358495705215148721565403041439902252257345957817847901124669186064908839037524177652745330653572692659516872467076755124318416363542247849963856575717784099391097090666771941715196924177875628328694426255773852407086136842561761239400914279715926903012280831407880579545960255622871207100254780946167395612694390297204106588543433603885695144902206426111713921603803159151063608535061469929504290291341880278978063397088992622083197603436778687254429674921998080788411911070045124996446070228439074427311416633249514871914015068546598088636700665780361573427683167749986453703629955390215313275857131176223242732415631324567981328287638287084543180967473005210771802113315275266429950520938901227338996793920123222145102691667773810516539858899849266091418538833397594369205290176825014224752259447929696305412322802757049868892977861516296101994642842923227253613680757967796892525851267709057907215216960583924367984445954961154004092910394746960798014821219602588954633033433349236983438668770693236846451234838893968493657382181715346612698835777702410828329148451381667257278785478290843249213929896239466302008773185001231426897073059872741473083420250877132266166012219447854372148445136562160733962994234185717622025060320773146036837587108825288066219962769012845739597487721254636724094715515525616776596871725284545890103203154016108708465161132856602751332214330256786803425489877271741697370946409812344650375695929695646340737370566929766400760222494067011862634948674577547433965968075748313707021478622159926848392419766538749681302182456267090142537573222761157810661170786160460962432108190433018975815117655160434703965017415836570252234215601213827650683266380294736492790614996386412807783335978340764787703441506053880856846245799541191977216667626642501990780938977384435799158253608757259325006805699426327957829048526131595682042238216176025810449577456624406010963250017260146292678576801191786442573828639907260554604306948834674852572735735321541079629818504069377599253835779362665069523960689768711033059844408599993880343938936196844145360701456062891826440508934692834858368526952405267186494639433027748051185681566517417998011160959697241377028935225226530247178279085052094407373532169605128251281428492501400036208170827902715683337803742900916792523962962158095307155259420092215436471239032187244744579519631049744345173575534538711910717795915939476535727059969794670650848484265116434818257940648682596979067836063390179067552476008498418629673258186413227059154018854105833150942527645253149886162082421548931075763465089464356596829062921645639121471305680783681809068561679200114282176356702448653600342439646506958276578821216090820845880038950911239180992863871424889099355647457544086884860871489692548461909652194146470082292580554282285087929503214225178775882109353667837362447364118684953347230648275999441659236244164744092678807866986280848337376112451745355051210060421698611065396969809995741364708644166525145219905294454218494992197973510433484016078934677327876144757472855526070386150222247554293381392926635316504458187356628884029440464053732829249039533068437339348836845628391919754837368257632345812258750891491751173995875494161842972353665801914040887087595791971864818603628421015036249567900713435513731992793217833561143291676087968852278406814066279587193161853354580041875481899476597389538446017295425687365964051492907721211446260369290749518775660807168207743133218663886886769558297759046078481605417928399636205967817331187491680501613639305974507125062269980249793212278337674379456825044831341720138535139214373654434917265651510557674738603316892748940230102221834329384485456424833739465920382943643251422145805501909359573964898142953152013809618696975559112173426446730310202141704499185318562807030562653463507819396841886335414268792412388679393761881364082916711365697401536945809878479293397071023718542225729413156297476389369718038375064394699845254871484926122464924591523745064208901398433657059270343249207014400075033360990554669302090340159146530547829797485776416899006017108288508222093018826523280536126652254579658461224612481350819229097875622947871362337532316545229961136773802123446582311626024033105576370649450812175820541512054731705392548891115733825881893600682027486204255104757519617511318558074745774014196554709808915538137182514551433977965034228436317116620820297387214184322391850459024101669664804715646573039536015088115080633825746875065057205755219318565125738065437368137942114967077439842154992056662889447273940655969453681785225033791835811680581712362269072967331442972771635794670632156768824441214132011282916705270276890173749893763511485919463681168659712987661871339176045023837904847781181507342504966856428856261747026396053986361682540209053248275579458632946300971471613702933057537316865641597341887972431772491131559012766795410874321638508673860629998202739217298784499084076621545806675401777408217254208980664128680481607605302057580977593969494710067697768156068847568874376686183401884106151270020780837067189999011544839777355389881051238453524577679146104583066120818121361295105844341721282029086639639523987415874727279914362562533948122572975065802545623675448593431127982984259914605249150567866919721113826555480278066527694469338621949897149685019524683760105455397591467982114861013985555342517752506460345775176819450924034128661982296937949859841275872403665697958694350523792311226266787298199196317613770253541185882191771390115933197239664264888765458446146684277927599744033932835501589759327613533350825323391972453942617330736383200122482951985612607604750140270355248429303986569146555712494706826624348940201425943770571307534218360523561070798421102997032938231808415840609028799693341438574227217375865476250482284265037139726387138561542614151295664522295353104041322416784243215128326544432214992303700922005731954409608879750391325813454357055295641279643136442920678144856042465976712154860140879466807538205165735782984579466814989065655938347767128730381223841348449534425074386469749064939733053222618540676083344684358601953084021874554383061917082498590715257704476123511362147795815891003200169983195757221089824543970364644348117014106002220788284025183392992701561897481808525101664111481611706416756845491795737650892134988902483321707064335043148635090439748954495224964454496626357599253277032364062813436826244700327958779394489759796008389502093377579625230523765571842584405827722425613049662962261985950578140083625095322415068107864200285416355028791157699932102407909882635215841021331520662761706720067122252038668487827588616491457435526637219385835707080069425344477898175583381912716903928839272541691233782251230103759459121766340340859295108106379011313345763198626118726531916030646521045710728531410810604895800820747746400903312192285078656076259243043434409111605815108146441174973338965871520327487383122262516905188371973716945697085607251289657443468590514867256859366535209905078494039403591588676900442870968276023461761842544673408320366381350302222322494118228926122409913770425838927531791939513734410604236275837999142163138538552808371805987706614615067172797141061754835412764658750016312467401844432777834535498884453458496981926272117620931109442121597003121935636623298475496168990853059389002886469477584822178611911966479574594035032559373870582036000024988690663463455836673793847381969189573508647820929258707420996320295909775756451322156405487327466721834265017245730809098659496810674349554069790154984136892895740618854522466683141306158255881158092853005980000741549148928351599814381571466903111268021013449621320086265368876673212487440805162283475612272745896232518070104785404410303543032705134564513769643224155360513745133784968028088810251190516239554678537221698640241345772144977696217076290576797132665477998819590823370879150387082075771057669039676740492938339213580546224872707976798072477182197470632531166342357525186088442948926205377962095645997459755331670816172141805583898589028871099018868058481819484236970026564083214734287135008627825408298952372873588624004082350235207202606985394333888829589117496217290613673623429630372628816570538904520267647577815028866286408186800136221682819807245332637071968501902606001276027240839900446223314031665290702544292035610519400177712722955357679186171010788772334685978003979002294542521260790340715069718132644442440504837043818194593283635243035511903781362958732140458599484093714087314509056767551559790298901740289160890897779358649150382423366226560155696305488915281211563956802137702453513159867673317605590511161656206468124755537427359616209059326659529986077750207188270872595963532291560909370295261196163269310777952257266503466005663224140495000569292737475002069671339015226415573413601091947310042541494423766955366060977664550008940497799754121801579058508266617734114066698372840715463973215089480795212828255866999414617335904722947651878651140185826278276382330113451407237420924239553653115999335590279876471356236696613649683406780279329621001696000221165193506760959610720976876940632811749824653359931794251662730374827883012457102670663624811436244267324073826790569805207866933787717249585403728943261826978753098620572114001179970751942495826878751619399273302496285040098074759660744219473827805248126608649045778134855194946837738234308985177710771843314361627347992000580621433987189600051163442659741378042838269020299155646552455589970057358520277136516620958742865942905199681861137815936333688915108745780459208315350063610013481240527842409547601892819908148421362297517147904111644389282421776205375171037462742171722934645884335907739846848471408261054520260397009266730534702364108285877554252291436476547084731648387982988204307754768953940237501072948577712701415899100333426610221555796221436792420207223141038776822924257039005038303305742067994179515526980513379016102781281812316557863968361648949898950381700667503146804068844802810656513921800013920223060772285868560190575828927241647476411402393529563228901324228638083488613804039711600571393044596833579900890644668019555069229745466622488985051010757731634679331646330065661319910859444051238081825376083025227382616309917112732830484591437528171617809057699173738721968927036894229334642946359139584381585463436353726414910476766451485765257129188478479647451293487054797547283543936624730587347032525346587514525762914649457885436094727162548942236996783431172194075542744187438308485979835883501769686316699796628459457968422886307046359523665360747595352335805510086140880527736120014966208680662450167179150757326315657398120992812083913582366763052018132982515376247547920317423617346864288196970920905788573837524037020819619356366094242563645843703742239718493305241739405722844377199657052673446526971811483474380250410010184106200507068251728386401009253146712155016946870772841626210942652631160370338807084122495252583343422538138547171259784333336520564299868850953498368215973240187369336708693879417408307252514773868020540018204200393406315720810188699033084411139933584382925981027171410706621747409564562620477910435292476997740831908218063084348761653976697381175150195144947704208626982343587957013316225928727249458274874843558209839493151102611966561316474556421070818587842602614794777028038851860619748557929774947701227594434250556801541740764438490673250170979859285897905679340083984341165874490383917946603311286674547866524745615750953128500437254273150779859666020086612973093175698672353151147999267281556148958152129342149004740667655724811245008924889724741345145366378295714197145694414076209935083303797713566295763145676184114776625324218571403448904052785645961828151580029728903050614957636686536636150078261946203782595417484415694925214923046575532860062137261625906654208345653321444107194838667237889178076128242424830391569659997551350395090576829125481177980073835524270912357217155912605260814069776466723050073912909840993521271348371241431016011856270995879403959238372275264597513470939701217413373417541337974651712595790624749608629516782843499320652558653540208340406006582241270238177246861603472952328082448543798688984902118255392408973634719672916876061657479680092159095572940603697820620252362198647800272237298245796780505624215153707689940412378053070633529697066674979097584874599607527810295842978964319157969558277121352593601813173397742223185322794500301704844793732285058454181384575790669780722284663304359380037999620330537853221828575357427220328361864470846787919726705481975315745583497256611958503176783133938457559663040703148934704103054706656836629558590424698685655126362388011393566831498974611315311657593984235106938405516609715629384798191870058066990338166559815047921463179061860812550511379819104735722123728334676477092820419886340593670355084639089918387949342144634799618355690235385279931603919995756861589759039220955917321400020282033629179546358977480465476271968875131633121774584635839744043817458564214200143641867807283924687741217358285475053438113994794610727313630517696564318078401241468259925492792009974701692546092152863882833575679021439506980765390279346502731772064360629530878953950168862641258760979612161986531371705359783088299915696760093698744379610021261615321933239463152096287048682704190079126894257851173962338558801185337118644292193183766466150555435071465543599391689101174810603444942679424708292156385481106576716969746725191896600606031315864114936988106966646078351327473689507400344955747642776900393086855175448760934607824962485961494362824842324452828077499291598141786453243557928592670178116858322548598591177611957050899666318477964514778685686869787419015262750883900566136001541552576409157107927467850031403434610385709409836207461879937853992936428636877050548675362389222994062837042260227578226693428249251676998195360670310072642055598239265285700508095316780597281070978388677340557654573177848742436764975064072146513881120882500423482263414109747017814489834416400185048845265449637531185427892483644889075083777263518990882640450294376875951303138276627455696999075003576735013161842452960035280462807650624925736755236816919228739984528478008030179053028509832083820859660962272028795128284443645682595571403860938129964678577130804236792027701763061248049414873579534764140779908740706583064390816528581801271437334674579861247083862841770103428401974584622283893055736629663699398046130005617082345106430431710642309077760716252393081867548434101744096951064871779724031221601347421953918671016937160014465998005394482089605920278030523105671416173081507685037472773916695279904141743806690958346025480172335176774766613194957446856635954678882622306580450776563821310290169725443345482860086510441061969357114972237975199890936813559209523354659576483934840030376499044678964733543279142337970422387586681905795378317120064360420659611654134321184308285381516422916808144044253724276866613044970788107707968344733959735360734020847226465318407039263727894012089758024559682094003911954278068984768325910213044712906673196740563504273489820753561799919187028702861543095411047584255675264830588496142731932220961271778458134854030564142596833594574413776821924595177193354087652683148949779484802844635276047930456774701206733478693903455093279036506975756227499479255254380067853687301362740685411528853748043615644437022126290524626482304570892838644477419625448029729654512214402877130635404109299611888439239146659836845505830211702571460204215330921275993672570849131795032057186345745152837611777514505666267966982067569866129737757778476674906337842764895500557868909963746990534070657929038971406813656061338672042226892224030428607176988926865720046839942238218272905177602199346651570698986972918312960295285266015801867683441959824776141573452205853941969906444924184869710229504409040861660402705152191421582020684944375207431470784003074152469901611422921850112353562121744336974058448427926406737107378673192511331987076171360452815171879208914543727528527734224068578184283138207399960889243245506667740987287273059344472877667081656336995458775358483293091158946654623501563439837706027192658111545406402488148088692827411385465559451237267363288023600438853638226227620217413837463689271585904434828334008480430539682901256603143857575118104206156091935714467836554900425302498544532077175505482093059955807977477977898304135949486843567818231642778774647569719207721422233838823822546915299047136463284753194016671970028390975639714901092447339541326523654080636269800683994693483043876952864862574544747489189710674492669925102719001159662846726155595315272011397196899100425124325303901110722819126457320477705103642774296735545473002340808578232078116249506215448001175763133081514922597647991939071391116032798892260525715498857059005979686809951501404569635729611114862732276006668038631881457577689871425137571801472064521387743778273003516248574365680171153437551767299082126639455731911628295476547502375559393860491452250823614712566540189449158437973632973198163503250601385353320395310406034792911800588737760676068790786862593321154039673857354646296392939578898828888377110230371066105381183301417618506120378200218650884884440055108281604517589661579252263519671651878509943716309346109777318947830266569357483218333870376847145250313325907083509054332093323323725120908848704450428511401414766793621681202155849402434674921937119706332304994508402872041486584522896451125593459462008215323434139269547501162529673810715373674340082213958683275619639615033128782537531795060825554373123601347492496577256374307342974382849040858549626394612694227386054207499617004595203212019919969009455581225694342775660984603708899243502185776832727150126366246117076535420514810229276980875682320737161538367561070110967373290167365070148406193839031029415663317708404223683038147885602610671313881215439016635313161896553680311773611643110703488115946919974520032557339855622188929978575852627032206249425005882083445646296717973121186518914859035141537081886305350137333679655112350465303246942749631691561438887823511332298688838551954417991019128770031239723811876297548808827821930098970093951826933276430678681205308412115786435545827808812226852957483889207200585494213534942936222967222245724967428437723000665378376601454361796216411240864078865615956763574268987512848384438717085727016004572501835657174574530220893396530466305106833866026800229424332498458635223255830264271575264009902584227157004573016253149628175552980295570725852780433148846051691687164885864057281649880300251268988894942619377554283018072136272871749998722131602513988258341049278624070315901866062685860512939371904803475367915213295335611645703995290372322224502540741869653903091001504516586345889597298634722202577813714624935511855450454825091105408687036087034159296283882844253639334073883734578006585056278700311467627078302175614965248699370313053794915869373951697546985611027489390640774395456930218743878383135645595035911211466358273440030523588154826543085440127898097014994667596495494927401271901699748161189832989720898836691793102657840398875107523699953212450223245115745469131330986488909030699896149537841722284945737076886679050833274503731152926269566633272616695914954529469289616881975892740957487474818983735695912433475111360221860690550048759177136477239776514170732838538412782845688197073603376399495154911822791759520456848336898227542128780541462423576712138457966885039538516181681351668138185669796787046270982000298419137363164889845933668704724529522868674791769505174037458152386491371351313296793751546390836014807444698291388604731071195373963078226907005372068405602090949112281668448775233894123226345651469062827658222444143104656808610434934963966078869427661817596294066711237668713525476106632258519189586749087977424591001158118721798265280527151846611609291190980853093905934765094143215990921934954350381019222205390720039130803955160370613962408621264474532713070371156749269584898312785255872061324874099299503973184086631115738296328936255341869680951803945500251967165244013734336340314439199494197040324341426422753123298488420119271307162917381247523306148701917466666871732330707004763699562419654965613149577458989690355212800242915138135552342139485861299938572030227740919111460827248817332443778548806103401504062489436152676519360469559568986990881768338090092522868587895704482468960380685155347572790678877299723024605287720260454756941219433098189215490747767292142722979727165126810596657637102479789512494298331251288583961849131728110966578163285956665466662164953781619690653376725718302464405438599182778933859933731151641285840461086918442936464884945576999691091157076433492886211113620267624431599422339963825307183115112203748705535180848598079554895128016130440969943490870635576279072865516317462738961450805472647650017462462645415453709807387801339893845632498590838878255143820813921405240756186520681070221781165105437895068422343811901275422880197484049446541962346118178223131547016244814738797987483117657253375952767064946152983398066561771272200446359039683515318187918805700372753813962076798527941280430151263407691180128353149869818938733918578603822772006222397793900325733475461819913746679192508881484413955180200482684358979854422299164239772120335361015918662932889001744894652214178939434994780198626407685184478959042313828662558478605602079890348647907887063544128375168073788502298271139445538067204108064624975968130553401192777282700200560115949486348199191456407553333245443783500810961196267418765194402391712323041686950857142405494097597496052331153039814194943811025596276962480824719105931495718540703121768648553492085709056089354185113641109644417075420411211648010439177260409736452816270343786937467547832040286793840027120656542772563921769402735928490435344796491981493487923325315598153394389518567365969959859297728192809035531427794197945912070234323209930198519354962736287904400142142327141937277846550519260808881046476286824450474320178620449214584351971613905267642888624784798097669935929797544648937180865066363291148275018395888670528201349465886652733832101608451915363308128869673726413153441078352151185678087061528322501478379538777664600965410535054717397182667235444962594390504212243436282792682696305489791660310185257230444942776054803344415153118576251347894529308428810419934884379510641677979521741579237720185986329159374240690633734780162252714970265106133213445209741209011483273344634722629562122673953987353190754022772183455056721661895549795709824722360226129234593420119522567708433814927969077712046743201744546173472455999878167037830983843120423334317349137182034215623747922617585893372489280233474204052094981725432921686013298689468888211827301412437203039222757578213037428664868764047144067006346108439877578230779004459551900693985010133403864899752959346151088111959707095989009904537511369319716014794819594187808126289293399919611384518468657143677148150937502538082634182668136567747434535150881991511652625737145536430655673469155439610901871401303985249816746421932921212769488780903530289832432571882134645682847690694371689187998414186117126588860107035949188235899740004833519596069107441585100265984382847480140352050485226220307078576060160568148121149743464154692570922142884881251281221293976284482687662517829840634109592498322087200762059823306477337450279910659648906093969802233865509530965784031865297917625534549549925485752313229409271759526928211556584509179978734924062831563769998124052971331817493796714088218542055297708019578414535439586578361761557687689236995099965455099775346144927292132131616190763021699026591192727831411895245801191151157771509298118243563835969747092506238702086371306394282704435870068317196295866749128361322039793834711309938540808116721672846866157031278604792210311876769172124313938604668777276852110099312753225967788749184839576311132088556415596844307880184169544157503838044625776995508837915176439085688314359187270922392701360444063531470246790592656368774237144619961250513651605567432769184057261758808860250487140422243289017877013299448746695340552067141071824000148191676732480354370412548231414551438769667050408485349717938292843733223499668038409559249988427676256497299287314716931786915557166754898684123756629193059862172731867380156382450454665844430953824715898538075750046025709231766624283453669405577200919159237766547460554009906763837598740944809417873293952969084046930863407326612978744106214119486689204504693279268005014821653380732712054834063742459364821804533099376274454332236700892280535288062166430773308921512278604305710952906267752831887741761585418543355072968146621986641476054692530302572264733789661192872755301182768707708170677421109000556867652236071143588595586528158188627674371351444566608780908318029985101129422524577852754289231169978803243278663920105133706240172732768978278726998457890680033613524880558466585295292563451209421387968004944856192062042013323175671890835466874704017125894178865502216966537802392289243643161824520339387509615254665460185195206904378049967649314183094695816556974662708857508290885282889382823575175250179943299014324119962820220519100317132451575576592670650280554901613360091013497567809391254484096422858526611634994595502953609686919697586204612553260900700264759946334026566179062570298163242807535203975039297911634280330663979512312567884598902266955470566933301850038217531445200567542489648532236645393356010324710968465695832455911942899012308752332738969847564496752075723394671729355464384344863368312930651717996293965135247564456437135741378323133079649553264357264897548286868589137261106424149020060604953877328543442271035939233819901357935058396691758949348729417301850857283042372161055604094352746815676462226928488255517132566780430191233964985912074971982394880799687522486067173895516088572209973112970261755736264715603391554530210615402667530365177322131885230317170827966220030430040427460852690695849629840853606789576931872971535046636470150431613188770427297983742673038521213345554004214913442056228465003481119899693505388972321697472382570819012697494754197617029678991686979939205623557521642409252507752874511731743735254789577447205573701769351280693989534210625010054248184907940888866331238493276069277433679490244634206060345112817570542261456717369672157815963391222457845711064997892128193022997215484879813499891502554395296807907288327310520230722321027624867586519726489095864895305467160866756960847087520173904564757369611482617419641153751530143626944966851271444417041337092556462725655488918645211389289271428795989267872670135807844109730016950905742080933198632237079132055692473418557933114531956111305998573584995368239589139272009339558238253369724101202173098834847720416952283433526320270835894916645090112460697281052068155858423395706115845021167325278280571755275775094821389363207639547960554698952963630981322668496426821459290754324897718772621537288657307647372155977890395389463888764413687724082449029376240116422881106416518767950276697889356161838366608414270896643038963589386929585097574150658850544884732600751941614352477627396194100317735403023430228490291748463748271035892830195605584501936524701667556066530944521516566006604235225959900756140108860768821075766557455889729783784834972494777868136712205552675777656008070191070685581488427551148622716646820511169339497016166641990071330504020752650483888230374309478818016530171608641803131274822490829965221416383837223132954158900204395773015317935688804145779954412457365777436751827214703750960484047666908872134064294072257058116844601943867003574596750643995928001103325113545510051487530135233141079709002138631905711773477471200283739865331114336208660180291984296147423028501528143212534148024427795952587142197605666343454850356207445514925126961278307552750934198627018333296339929373353363869325565057927077078616496301934648630932029199995804624732208702923778410249674688048577447165698085731300069119646415550962198257307736002631870595291331896832303861873804375706284902929821740923777462538702856932861072348491721479915931780313102226295898643659050816985853040593803454933720624622339428100403827805534809918691349922573538169501210424759845848040062980146085289399005679440674362842769430195838406949066716575981546087850293772167153284236317290344875943135361439018591430383733030053011464798967957740332579192426513790284693557266276382778425634233717380769098094603108360826437001259005322025516609250530005422863538190999354172070688988415707890380453526787718169938063090240010281216976420981864955819425785856442986316259915109077555877981190909749134041598056226973952876905160315289626271530642825696216726869189107053375217587503237306460054276689570481807234654777598984367493473183066935807620619320556268022206855267394788216830408720051728226808145798666967808611006545188512717217096661649588895572903272066159129826893320063948943293074995352897580021105095144099416165710145181060148728723110330901430050407536202388004254155052659482988711482171975008609292298844332705501679916192710776597608543161901518750590321531847077432167937087919606378609142287824086833136807329803335125272835771954985121344141209246180267002746930065238661254561715240562922476083890857868661533547448013901316950255654663769332944487907210154699246852981464663040465797817569722034930961846611581970182455309387295428019959398782697191346098972199260555120909932314439259835308577193783796098745971755183630230232078988247741134655344655130110455113567004193595148957155749121578114668893959248808415684576990958733195541776041065915458820160737226099852190094430849937531894031253717709980407421472013154408032607491311755119206469407705784324544630300212159487455635197901860457448506431008546367448907751921851427016178203947710443013400421398734826182358685999543791480453021652451664877013940963075219461602451799772518545951875175871809979635477181647095234102012125244712712650248287750015773619220697164830884453166830093217788953071004724510881802975621741008302405330631851139047859731243234902049145008681269692333150967231035900517459234752001053911248522429343776088510967426087319573284783154842974198627398614828988034108920321706285611369943238473036393111203233927940296339419211097059445551780246520094434663776494894215731919225133109049381821639556021849747587925959414030095811080070870946897841220399438829157136215321960182444607323198215626464497013251587184655897554249976045827403049637888877091063919991106394953056148903868742392867695368379315785442685130225143553712855074805834236401256290766267980793238744965882888142552112868832893084299580301440845040764664123866270481107240601913867968627887368594343561234191590880777735294920566819359066269637667117656129889514792470656887485509117263179688932456522158242144331857565801938496261353601647028067605706148500723611407383895385137011199018261167193246039500240128026051538558870504424687878425200100453206259976925274262262265843856694456962860097438320921738949484878010070356284106964172902032337357224554159285572034942196380134229699607287819041407077075548031729277636666663176054422324308417550685190875516611072427549924665083219471362708125435617898657917497940054387320817595019459444503031187830275965847998607188356284710404733039859077053933951183147558067133638648591933428194357130733181895999066068437589013232669898927872230037663607546125474767922364608109108794779641891958103113706883521367363383762343208823012970462414394097300743578795403514825760470350040987720956892608739227079721433283186634906446907142570372845656973504258664020803465550225749958223319547632046278345879797674465178630497340887589252224178895944805389605034804754191065393506880297929032558731140521765180746779286120078456471724283085067580989632933593812999504161293058548088260097072858730193592097193074369219133695404147029047297652971720910745339548833476475161998522505856730854799937315962955294631763513842420421045578378049482296361924044997897261966372613753384966958497913060839880671874007005957093582006716375509173454726978908934887014830504017669873598518203187985266259998359443014671583699341133562997678179757018715377049354769006596643956392135664994062511366837332621406441404288963150371159661149031510924798143201268182007427737413313990912711074591914539848068680466885440033217926236278264944336162234634764042520231814507787975335990507539928108676350969064310650252336752204834846067441812625348000307041343915804047720247574559711968824294736338002158412807033668250732216020474602525683103757033133345533198716987066471093688013002010675743765995576184206214215669084569739537029732887991459587180329708338918459299573805565951871149131380992253647788941605558162278400295390382089434738030250577561181406923769732328546354273480998956960356190832509273423311949032712226550979186474972178362883863180724650806582632794839635555009241011292669196595273618966973410824206232261104827524117481130799031907413334763484585682502336272650510978281938426751524620485362657336362225696145163444187119029948979689476094028463601182325191718168508961018218707180239748822968105939475768715291430986227350133646029158655200546191983032868682824883857276813887559585761517722714283835471748175485840199765271659268788654047835919203142193568955416179591268184145804604417498872910923166170160803080632907665227976602531755427185829550409067817033603740418559115669112561299555139587014997631422848127998978513357164430543706112616662352989555942692900525453741989460477965343656303994025806412101480454065472386061713009615756088802686582629318736121335203221561612209754205135401265102525828939702202346231889973213555855226629717201254556299414310174055107348461491470562106320838808280496428624135575876487363435586868355640004375183935000045006932371893073783312257051869911750434908783376446377628456205518137214403719451253078181080284857823093127700911093419652069158401028918785271092220925940894416937541998324689379394850682318243344660001369805050301210303081995306169240157509711865159155371223690269362056875160678394163764399081866625415055497245661630446302187329162581882074733624451279649955910391704196477240292633683178971357142254322615720038355865363543432936776880900824629591970030764612526431778024129753032761774550077962833457948796322870498989951998438966397662207707489946106411574264402856607960109480403763514977534859087807570914279617984203393653257439768271008708249873021568530918919241510136547785608772419864638795894922746721478819677606392303917986997998182260029991832763093546610684153123264198286240428214391450573995922678105833752050731308045962727236684350627506377788061434556408527137031202125133620161149352854711779967557650437778608833388860671118837770444658670434794168158360134422940098439077519979685042786210623785460724384107865278333616601616335892082701809133086272741212470127657979855972270708532252325183031419820089273519619900825795750743225609821775322629233352441685098001870732798805160589730318022404044839355444806367304777147994228795493383043016620413586933395677713002783673577783866690679484124345782475645692067946582088780923330779959289662670267595693609691919615830556306987975953476847027301704420691585122429035712416014660294047130307273753891395324093195407475531588870816750145895792698651285842390481493078572514569522190749956446708626520144903295926349518866451594575780179458404307844493355227314546495817400383924997343911289081036108646638949946136042946746913350596984299313189676279273890419889817575044508757033973851444182252576585089800381233199249276937658619521700374944657187972750116554658880896710675620293677070625220555569333183106585641627536957104480812032333503890485588418064901792200536422669750194344090015669075502554847470509953022165517199719860306321210813699985007402280161786974412223331439318136514245929606413685842101101836171794373017705623882541233525009140051045837164176171414694690619369601582700041372390820919315997648610114816258209818349098146391992849448295743598619661274373525758323415454480461804345094304700672568450413848940663536213846806153731858156576453372833497710615507912089705426271869978719174932446428108370607747714485383290668138261979791559200452812757367169820911051775647669158436237121151891746889842198478438529840499131327653772486045378357471190425536314842449032607977078948557167818170165759108800142242046672814950968742674607258990009155740215898754819748487096037348068705168585565765390973229722628242796568134189363633951374756832352634640189700685332815508908324363762716514257868346949051767329711832546943958228063158209815581111177878929539721260955079882015008727632687823853137358843945786295538338753638335408234752381640461408600550423861971137547104223685646333301924778282050430156523307778037219902071005189392106923294181712007972041322224294906508441142380855067670781925307716959024036377785129908647402173316873707485073961261742828238336231443599089906313087075416150773777771952474333805508588826647463396106375261026993582670620086480449789178733241638657263725639839965035063609857515534262564633372706888963849838388788165556842929297773410492659959326539399155255054874129901704828594454669730524508637924800896247626009319900101821029138496206977667559464521020996989023496104285511112016806006085986258538326049302865902351961235245073498050843704392227449902933413369355039948853480280645725788396438337961235779863447245943567101548808822263825244771777014063179889779955166714731622587232852620945265616480231396371975935393289230742906887649323112603539084760701525569591579520393048757649576185921917701877835207571730636410255981048353236641407593676877689511432969879746148246849571214763857875333533949983964962878526257881248467097521431986206436380915221555325734189897190485687781652057504681862818349219674446251265837406888503001618460337449087758938159259002074629967337368974011503176250758855614347562201645646317140412280134812688852196758301503213725768379657280317189330930764222846383907056178451788649163226168241071240723929249235417085051912712673481152457349074288624891009252627003191995490257975165468114882650457037205935408129773182899224973303278452926073628912122079492347884630355445250890570345044345357131868268577667670662103091276552772129186630329775039570938050152245391789076477961226340862282301773063802288964532471683025811289333449294959920255582377583847319324040338707176782712493216001147740381744286620556446830026742996235401013502524424695520845960923755401941543133781149695620166592837749382899452484690002072260256546811218648558924621830005766853261409481042694293991489916824261559678152404012979721180750097904799850736912775343729687358692013898032295804159082255874509597269370559754263998522850696717146533128917827073669672593109802436003397371385418205174216013314147933413100617856960317014191539035407593877442636996011402272465320370190145756056487436351469324953485655093836026658389092978310036952313287880811572029733688691700340372583732581055805738327442805436316872812370996469938270924468297918065486074735036058447916164384546162426091673137719832864786452877570184785763976952920815317259964974928144379963278534839126106612774302929146872391922264852839253757408681806642608466089161427913285530393336960155322952763200026581704009886857819153530907028829364473114673787284736415261237612286600355071772547547483444827947385615409146953824213426778251693577901317991896470401789960927848852137242076895945797752714040356328584140210379840105110896891072231294676433428557153664932274281259209730504459496535023728191299255191550439403069736221144543906456525797311329340747282234268132207760675281569527485860298441133310866431109055927886215841493187486948248497484223126478550786080607062355229342963574183345826964029884307843714559856586372546397418603640835634206649658653898958887986701729632150470857922654307823911564366471816402182670995746333798999016313846469341591647680138451558535262085989174262699676027773024558845028207655591647366649629073920745406141504693520063438595444257402219117112874369517135451666042346241013491007780835532172150241270869730585424222030239586675436620345759801966279538935403224526887477876933737570123534276414052275207336221837167050566115880099783996351248514130103604825770041441653608336347311426439573991184523767784060971904826192128392594306024971517246830055667714638532464979111086216749679905537499141250298106057371454906841170078316831525642242813557416185871563736811354028284370198339762451851679064896302009679332144017758064938593348433297463672852165686105015759124672439195133841579087636915402830144512374139822461327993720930295731726205290425759016405426978376529352043727615001543354259403899711702539619126187867003075948106388261755991551090008883021464290851477448295245567033340325582263486228108939510052475020752770963134671877225859256348103694566081414898107478426118733584634259277902723714650547472554017333930704262459528229592112266171862784249711202797006843633597756288072118537779395472307653365921289779734281259426445061893202555999053374695668017782008921249036711797006232622249981564396542953414298929687394515809666047954845470405780715018241587594803088834106057133140519713994038885644914079530128419387309310962329969256872336520684537370627967548179852348462046742284076240041669821726987265181528125839284970206674614893124638072971374549013252529141265916093966518016018514888949171606386296244199781160891549528683459956174080018497618559459731548148547592408106646586355476886032799317920489844355860807542087770961424053786140469703214072558662443824011077597754350368438846166904299244180911541388217286416022602029098532304938218095766127118497212326702624137014300055053788870645590158782105734363653258815952730025845675310211900369432507461269941028706290753536761297211701307448923054454379444180883828629452410604303101380724533429541444851379775898865135848795915269197417654507360035613976873851375052671692565195290034098215013855817630833964018660103651466583669554697804422757878872144736518207922818296691596318006273679984919594462968009902881797719605723633056061369954298561947439638290978545810053480566702953794371590666345448424206139481638164359284599511655944389196941387351535932111498523633206824223233041544257530045887784573703264281890790819305675494949158810549851707946759282806029293368948330864704384068357534468297836324193970046295898255176666468976371539491955538174538643507572441417755291577709161154391065392860762312217831670279587319356331198881151880336438246192872149899198434889158108216167604420319321321466956665181699750451140946548249872968700834477531844960940092635201016650445782981153148355304787852450630262296092079877167517003979720514271744251961869651373053319762015412652184762197553332440744247280077426827745957483213784808390618905260298616942319752068174444565287228508106431520396612484969501333685471707782529879316569866802566560310699776097903908744632473959376077357457152063301912871059410622124494759585915313390530722921892799463669358339063526667275393393008927724735259085966799436705043085420520217004910650915507334842779557140588022822668575294387886997971792638482188185162925641379091858552323996032363809955256654485083975358531445915655056583030742429726118182393398067787429376340888359128036643315682691214129045245707271076807404771379637998097717827159416717055923474934082250687433739024418287506687744447062752817191585218620335448280347772350958459790219855144168284191584302866428644647171874624403454717832461288001201931006914853849539060950601728370758768075082025374842688282394588580974627012811179188351650253842269066483400825306069631670646828840981274013322237275490976023125020462581987439286295624175660450185260160304311875824862540897739782952768206924615280055939576443056465782240144358198881206365719616148888374847161518097846414544820598601657608306695985207369740002030490103051966407289584073998073967957201930609671242141025042595706978411119335494271657548239222348507219152634870490722302209998385699264078217226228136308767038883677758079129964437172452226212058878098075164974478398232609089015361618146642544868000232529483483234287878593655198146497455528226119533410326929570160102086294626995798656573637838428943013409519415887958038772808744165224032927455202748113347900813557354208783137911261067022315761431411123892850747894653440444837297423076727650264502905439094649038077287104171366974295657920828571091372810808437864500879853194351517288713511512675034392754806783126814186092102282910739464504726269421525380248462801931328884964938342819058040012302222618039829641421330593489522401099594321623834673530339273947412833631680781754667655705530942460683407789993796577901460063159531236625867426137366713345408290718174371776164321723495966500961825404677314923411144365723318719958581775104456720162998219593283423765572399787551830859478445671074959202958611370032891665308585377601799666688644602202078454966613536014190755608737429577588410021886905697347049427480630576457785414840581124401590200810685736907282518824056955787905193224657742270579805097786316062501218041456153381398970872327497853330066358006803862338331916339556270860981198238791497520705998842369713588804935245068414566460432046051731211890498613654089111363874013124177263284385795264418037755565526627626846205995301153771842942444775932701714968681053493571583840142753693419770642263827556934773152787911269556737018180539802323226498011165158364854151447954004311428543627887734035057487649132244610978043577554531567455479005406036385430951573408426451318970182019291656997920461830891802376611116809333760978391600553559877423620228917548346635410864196076931662715206513812458424701588299199227463818408799376953073437996859716127963104976778912218135378672603367413748979320374831984259060865979056115199365335790173524031133529221028584763226507047748701693304357859704095132731444696853440531426991451243150374168609609016866496916591670970853480597616752394753849332277082339755670712223068957907934755424273776888172174043097351897616469176937586410852368105168999242999275540823765711100742986145317908035230704471968467146939663043169542750964312937923718572806399405597106462992988716457339513897840941822035107338408460136575840983419808355326903377106165599737646294660024754611659683578230415733609421520184422198489487179142726826470233524006702220309428943684438675050177396351729284710797123476153199529462814605107969447809916144096468132708547687980507543821529969766542670486312867268487736749979610825746674197644681757669191268504031846625598567611227967946246343846111137571207474852122046199034403553361925120313447935784683532688954302007322665893660316675938151018800510917785973426337925645754990597309316579587918186069574931603533861053968147529467874241311867874706522425955181414044765983206342155744701381712821851061251300110513587310336155427174747631253022093667315416025776041876626239622142648067024314013450371423093286314561023759398779318248292560021674766034606045311701641554588197463240705243644701125675017522330659105455365837503474199573617337343957874558354290738674609709493520473696346357523802405312443766876428037231642638334278718651524657086637585314475158106705606316464372578936149237039202235045527963790558703049510127949275686410924537146605971171867864187364814352281664021296820152214790550422959425252181342718380054732398755363832039244560831793163679259025032075138908101786216167019021578035141719415727363990235610519025031705074189557179308436851521169353542958559796233027263545579438157619756120908383438763139823770749863125200908794103411511854510358731491879677446740251836894638669351834409308761852835719376304224947859498120046011022710876241802519078571447499052950789906592554502934290333750442463811883304489555826086853322402451854662747891524270058381653527763293942731603626575657505883922815497426350285755139572205370349556801068262599486962157354055889624800002050518783787091826954408231425124469848154528261894377156847177364514095518068140820880538585084453386358801176502843324179628793630616438276158692341243655988135129699135394611182932662153306843888146523356970610863558853045597127324693034948783611427844113120922078970932063479055744247172716895046689552992385526350141489529636938091099163782623244726981707999932353098898633988585268635707424247411662769804075944334962567008317933536053698507297654333608464655000023120368793200360597995240960466450696481502893745636169009374609944105897406798835407635943681094365879465251862472447628509095693198890439135345097413114025338738435352766086034207149953786174796261289636894084429693899236685498674555221345191828551791969427282889966677527193442942382881196850866870772796424550163628483262193315001692379209470653011597595005927091847813896726836062995242837895620896366874127546219383545442273679522610952148599436027781860303304418254643726742616574527386776981657404766493344645727705863850599934052501103753172669093411647577817240068685609247179362707999252147126305642906794146673603075183690268402532933989803253542825012567065206579494551835524142324326141626014243716721612630828441894187148395247941499015446909759307117622432854465325132254981569855071640857474429640612760056648458001460927112685540471174455194491515136324996775721093726029535940693680937086009732769032364669313622519102890543612842269700826606669316794414782581518243713505192386739560820894562129915869595258142531776758129620288726140448261364067226837294900045987423954119967135357567006361123492649057391767529605106669476957668571751887952842413251410435587030388100428180704921892221256282349148733834309964721973857860311294612680851416842693480207857059036718174846296995143031152620348747766205357136363475547502659754475069737591726510489146302656026095264525663643009226152637739814637646014964374143696163131440764199265879296794407054120666430261179294049828351924869809743180977444420511225795068319685538945853564935909214056268156877757698573891621074240143632570374803941026184871224920752351547708351469426972813527273362354178301723290086812710002466052441362646495345052987145858900717944154076001521967104955182046233209656201087568185130526845351307620316414473696871756723269373987134503110312972962235819566788360623940832434358963046667324022158886720302608154106883761652744665155578510860445522188073680727379630743861710763997016523535959327868790759656094642895707684035418142622170944668539578996400090324860783483897557234555847511118654580329170928711380123444171951451588225164831726703751296732208505372950332790952458221180962271455466178363559294308215490393951773935897572854187935014642685364584115253151355712455533534450346276534872182389766258839377616773027666047371958587653387479005878413203045999108315467439879340717460460492566121584647916524207602878676513781523457027794664516372675304028576680980272988898833855799413929995219573649847184130009094522813312632630227010986996867404930789323774786299670985380384992700587970396461197281186991291505614694951514098514154304657202691487542480450582102163847051780770608434480592279431847621481230874235468034462762805654973455250202314120859727483737459310748079776011944473245941763657264924742252701531215385065820374305300543640660034913317650154536451905372221349217940145559583855755195680210622283211753369953760597403656848395149675905723858978714334625625938598294494698484852956084865043780853650323594531663654578639331099622373526600365968744583957269226373272764184261704233847806373485864960308535724434735488740149529073597016970510029277487739993731498948092719406694531129806936401640476051841967234978004690341470297528017413934369931607289832638480474734523895099901212345997923051573700920511248656658962686941386522459407744867180356225563961997456637839151908862198150390478391341000018871067251043796137433048535877744621328204456873845539692332705709653488072062810863687199533542984691140692292580307155486913998290464854847988928659434337262835123847622213863139739094313643809080695781442876226274043667521580672654334741398039293619158932814378588710130307356672850442910419840067596806892515325700978092983972885163894409634234634273915090106616721769280117887431877879246304630391705706559195084247279348550729918424676764696507895445892191597561866896538838263127684053373394467544256392465200141449229712578010064478435672839174648478736901075620683753868734088369042133931749452445154971827159088576896732503748049213948283273732450872893834034090529724534734714240570397834191779272398392581843061565576084607800113834366500165425479523396036173469139729635304565544228136104174791825175181808703355635704718017805954728943795843929027066279667757309848684897024999689922211764461173575033435256188566520342229672019252580691102905546782273234172496352038362159613745506493418894306744958287206070681855981032133155527638725998597583075131100551097243228746455623265359464932521248531893881808855459064295130478696817554845785156754983783540774908834539648151054316165716999827043112032102829726385711795167638777246960028467475472008174659937949356223657125572810514394396098159794317949454012658258902365899745524426071638290438398199921583443457674066596687796489144550363715588804482187642483131623754461939494776898417293000958228389520790942524892112271961523945158910327329140729943195206655134465252262116759880652093513491654664771071579180165013629508864754498209217061299982165568067164057992069458766355070823454820658750780852062501694224966652584828455747994596063226121399169836454910267175636385410279833825350218738019674226441367088503635605779141531355005647449793092137156128939556973973616451486753153965027650028200780954721335820281562111489201837821895822794990509145923333276988421971586056630758162648800606064364862170595892819075608838858649205092498928074234902008624990757377984410349895596229717310806556376473219036736222509680989245246543282385732392607106913527417495831991075858226137515619080981968500979773355878387059161866096684666718031770073397987053455798896776334701498122515429163252933806458872452948513690789552361374261245273073497628801989488991511359008836628338339459918933243623360903925703365635596322029129713359513813555868487981966111711715509581537338765304818957973133177696412842325156764667598571297201081905198900223063735352778108727408693436494863488216192897654662818442031011708946164269557745239687534386918451597860690910075155517055417638567527965739782196758546387253069317852583108123070511278671495318368390433781397231944127158597314663845177058950852923849921769764968854836126312654241644663736963180438315846370870350114868371336413024684522238964602122752842718724776203383166010768638268196623566201354506444491460453304490356437531527202185236669859316865532278976897078429716071316395220023000531397900326513776231712128821841323178958523712095292763575372987852008316450372768298824291887908418386904733473603038924156748596164665645419364078141038607177206762471079146426723290262626431964293989326137058833926454366627390382234510362963759859355265513807949903225207114187446872124193749476870164327727837735795558102553355163664063338001004275745305886650821769508617673642555868799332621783593644447089730192063782380359807976752023459130372012022904014474596778805446848028551090867981359641328542462160947832471554347727960066525939829896797752570164327657931221716837575679683485327501000521348465128595930113284493698774363289519575601716717607575416836730237097162743134005372130769184734360443241770900283916292049119337540000803381751947599576688266088589964739529075884321634121356238499144022062027320152291958793134092283526230650882759095098056457886143288998680261269087359081830835143960800121160554903210216162479275577274045124618594179519804659097618239506780240568719852641945469110859580728702320422345393698109837248753675833896863835847927679944513307527049157321200029565357955254267327789578900950047814722394078093760762704540964566359640561336578628176160685413283635653791803088338127868523929398499793109167819172775441646274764448297587171844489938399715044957641775191375632600540548508758858313910482707874709568947616883322512172665370131766350178601963724604149857236568120715734210726885136191821789431352941664265455443146361616167081316034493041784947835392568652000204248236201996746833396370925838757539403947365212787624576778465065246605355396675268824742009205907744092771150812092566010133439495888618520158830150566176147799275372186324752601160323593453025830619957843041018227609812985349595163365092350377385829867020367093662876718690910031023703782940437190530922193900898389490882048763884578961358977162257263676101946753227315580763994435447153769671026215637624259435906497362075034328731983489738417616252679456825442188578499748685148707139530094791988436501851422910907026237496667511447797097992910995096126643756995674625286411452548217761417522892526519389275703840617483835736820352591062866179003062545661636153204891967753296798171850354676959203554113066658604889338158223515974330597386376449422047699692667434351141289041786411016560610654971730341833473456869560934058241420040117363380004044928279418126710341917355687422464561255164622557045782585542336401751544765371051284611818263066958642217099386332800835379673306928463751036728837229083364950165051105697927957244627078542102001332246546444690589486319824715007984327660606142737837638454500233851331003829287197632792290451417459630010165619461792230829129058750001200934237468758270547689370015227774167207629356348238213250447754617332777413650479385184293954673736540882846623663981024073558602212967732260047976585111632378918874343751309897934507065001147244907533069449635941664115975377770085466946381915938719182293299214584918123960472531404188778727899095482972237098777577236028109716436848276430466032937383475977243314069075050928675476018351206516022600748285503727619841466660461074418888003970515195410748580343186202010862067450951427884699283885522648421148298642196711542053958537410933005714481316200901096370284432782704846313454081214480423308913975068921128248009575988615489477090183388139697813588393662997532521505261199739028982563763128173371915657116413208693461821834581697925089915795743326101978212219894228682968699544971039837456594849844368009261795303267122110663729891139209597386106692617563072057623972054124147020164770131200095523620172102445206085217952134961269405575600287519434846211895404387992548762730718256548098647728102375461953209068476391445722605623145972384907850816358921116701586246856929999547883671426772556945100723470969730474289364421567159487585178075260625676051612204576887287956640225696277616343536596271079415121382293496157735459569920011233021370842982275891476749936617005945781547177523774508002985569003243389168888487179819862648175344499777611411736452143451985889888998679679540522164413488178391309820344686060579193706782124412672705092744070139540360834020818870694753494180398760297340181407957853914628291779857283507895020209213205749649481684976130699496355630036975254899566884939405019063563859010620992951834772454559164028933015104707135282194174133998082896483745460878125715903458003389763813955601470023323886133727779286831738367039257249093388299970936438550278836362160232770971021896585621117102945006581787221062239451652188077515507118598147333524835482547575735646738862895828227367951568435851140072538118317054842198802153693471227419766782642273224585050592355102243457195849235268536804965490822121722212398218109209157318540046147939294753988979955257129244793200495683289276911414380793418228519809362847399468911485062622449614581967525728499213967000038002360005914755886316181059678635283975976759425312929819375666890296521372506549966917684328607818465509428303605378087251341590134339261377529797798083170279304232162156209975435296647336007287343541874234810439893645307791137184726945139848143490948356474872959597182304729915863880493606551508019937071108665714957573110876826550866339425710748691309267278806769657982221794252916830027439032879006488502348723018728191458647000336240192714795490137136095654491267512396101420518959581436939830841361052693061038435097331351896041976714710331898344425313711178121463651876589646307700554063770322086216619605789960825837554356057023171901365701143343729050967380206702406048566325827328752341215007137170937455658617782991428247835267402099951926364349761794682006393792043519525121712367271180491766724072093124118560433830145513472115303623826557827533930533398084704428939326786213247783761241581729153626671701731110625460790568838592606785259623641822040513669938983111496491917991368485429460741055485130543614123085700887932455728299263534795612987676535915636939199149375597519771744992001489953030635920854071084989140819421680674920249317876597435233105472896903257270584602408280587043280501180144751072917269644157298506239452737202107818725578213460034923201021330135833241483483899834050528394917681772245425871989204333908110547900433835154475195177338826237518170270621399606224149160754008952938133553112971666433148963717992126390839565396335138979781185872941955438283130779223023688996082054673016496223726671848793931025905257417830259137898211778968460517180083886201978150488281939858898746123485062625129535804143970376719809322491006789055663771853327629498789495142392093107921604879063803640509561377304876313868766174647135841055733502853347193357195992871420038793059876917795807038266467416736898508658845986082315669202701445729523627041294116672306829533963490404906475611455598406889842048839313106187152722443771136845756907484113671962164534786374072705210720620743242380385173135767742871676080650194115340643285943211394481436389890144822005916228028105557864764277253595535347521319188301224478240221727698930342078826059749087782660526470643571492530662129400313341863951809705940555354393215645070631454699510029419192235723198630516237310947434908888667080546749682956722487532527203950019529618444149449675870410604001184684919678050339151543362714634286568323768274715399929253493810512364356148145571232624634609073742506956325650964708739365467218854693357799219126558850918943880113534780668445430046479400920773428288015180479871738115313066662057546176623952407654072167807488730521709226853834122157345745458295832487694864774890455951193020154391829399837829425606541831031164176067915573169996562805518744576560702100252749347894915753506192925430425382148731088201092275433170667920881659601525237898429381266194062460517381010533822452605791204134783099545927109046817030301884009798522026040250576335846132159417050409256512428051387684820037550359830959703837840326613307821851239609803971933910289828774376773704881494249853090610417561364138480864067488262246983072648793694423546797644571225595209560269357371714374018405718508388192659763475659978034948190615143591618345179062612506897783793800201702523893035973498485633659001841875875434916903926353739051412335439360740811419781256606535507125406694890343290861816745390176867828838746601209705607989673286454841014781210264378849571339744338696686594604200497733525844549084417859680310081136057630417908573452322898023081299751824897811438818500184685224207602105663037397601378112465858404525829504154917637691392327528242427161303097454279639929666359154247893630838714143327270091455475078377573504368488346491079908290758730725649259012126567250771299437059821444000382982505586284488085919267702536713889956592145779647997780612684548272150065115024888504308084434761295445642582464732269225410340085568035114294193928425874830204379045896109538399937754361857429957048384284786900226178090023460881603767930879698103288933702657931853228106289821493524145844582035468438815518706534816981164141375952090301731101982760960927298674809105313666910786085591904145366329354556442216231985198756722547084767501544223665945317530553684790822717553041686449775419390658854805572612501308479004555746397749211810030757495742740681811993870857465469467869061059513264382276921730044636124982243058091629431634028878359789291215210865952126709275845853848772086040790112824410236350520268811954767112161988687298596138780887915273654853143173511673132460604449617186796078780819283031787182847528569017286417909317495083843500487039669462351705279959051039764114738931217861774783380079598524503454873228676257301125926426087898579439762752031990392640495284397026480288271826712955652883394803678746844646160354589235002820230679027923502094014638820437292828468970418465995389001938783846713717667235910324041159680838771494274909426607948662023949261117417697976581036048812051783098795487820157541893130207619814171065719681821873658310947433172983565328679724138070466691288539622591783131784226706681162793958345395391908025754229324338267236494190417510990535188947189364392030579259527137737375794081815358150270882686721531448672217439906167871683743875027552170387332343331296312323660750015765043260443365343953822562328988887522398672325990550739168590629864878724420954106407490902765475515120406853297428073857849448233854269129242257691353733015597418600237418576811478220589713035043390444906531863061816455432385407076259992152748638204187114838752879791472874492891412823167885168959809791638084272991732703897179929043821128013608512818013689507821197690524687010559963115449550051607376335803607827528296465479228456051877351940610539426228186369052519679666223861124197858323115158062704896694689325203369030960993098162818279290635346333303126693240776214083224830902180790288503143576924650892284330698054096428554498542403050068670910077394044914697343909363010411004315109009482830196291092997599282646213880956181305906774217944955777034730446224261058545260288252491557486462314684915424926661995186366617768084873874022273605206757825680222389353503722110145758679215208291747419611116542948587888713915766305539330244483392601795581792979463306551931584389953684706800691737370246602795602311452134191722690066049999140734027374590123973636094428711334224795053719499719711873311896697462423690494386175839360766918938776749524552306985790905984711980761484376300870961379060935931329338862117316818844656077994088420446098382311557750545670714761926754147211883506537901206165506349336007011546642121503812055000540285274738361840915979477884185808266529687730825817983029915489568064915809588724751983459118721453731373561654920298745714091838872957279117983038432820171011665769348041838696577904589874415896626244483616204580310028916403755596451130835717439828749531643413522733674212773710138219664220703597549477065051996295681536106932079424843861780722682475088203123847861135586441931967078300561232422198650977181251390417305650107242317999210862172844316808472935719912029118226578279414289235046517936608851692383903493112185921899251053989014415145210203113951152791674523632308156135414090865212168844829718904199369894685271208663585601344849210021719916298317209258582814817101178860161114216977134741029360682453149371884885300105266986102794445733231480137318230460643308030126420201772213366746150031062962953780170302444673965102352711458065853038832916101819796005759707386062926232761701704773133651121307705049589538660078061692682738893768741669994860921489979553527458936623267371694679369776465578782097901652361929401878183046331419319344131573224834389404701954533735355629300523209502958658810309409408550520600633395260940760854039718395131686137920371039899315049753948602872407293434438942765149217375538822651207942400117986711537475409066577617225417391595661569176577718362167766538402625818546619373510752341335337200760686457523659303458867201678911935796031891309549646964640378342925599522095379869189349464980049519050274144628330962905088228631658745942803107895327885598346726860903070837117533515889928948787337863304421411504572250974069897653509446110364317711436923607022996971475695619841005964932776114095135626251118418865666307679864658314632723090948827596782280117711929873083185394007399231264618744283082850400874280416782074927276646889750456540753863707380494623360197864045286695612051779857221978683697909274302376561497438067066046294337379345961141924614512058834612470598126691584973704236314339566746786786832819079771393726197402474794411805604526744635708581607593905778726144070584470596445601886720410016204383078184628744536599048224325081476851941600120108738862108896260591313163303213138203982464637822781907613483606639357760156376595788333871368717216170037262104430026914577162554251909298963309789776302912037532510667954524294577150661524632235391770707190183210502242196930857676219877720512139775125458159951129991014629047829134145709724207334074719651149650250080446833799420456161584101646452565630669731718937574158472662819192520094641242498655183711746341423548830919992005672977120384186696277301431433178332896896549712414657894099895001125920240054104036274762748577591918859470633948615176563570932555974529450734822884645943790246150144389281876087735127745671224466813921933194119870181214755149037643050609501501730180870325723480286769633805169561392766571302925282953278765757269390080349669885534124520516174612862383015623749851454969638697109852166083551384777463079615079431182100889566522371408037709442027989848446859540075549720398258994568084185717530676693558275153259273921704694312333758189307280223482139514621255165838793276021934390354832515539830968365625997804567410968121331997962906866979066226283192144556973033016101706051414093821203670287533832282615972282576098371480201748935847229719485981677676772029685249309584685936930262636074943666614943945767111013256907042564932121363169147109604091465337658432389469677416774294611672603398050922942370973321103343542157287986248765542303368549749859569317460533243733104641968417324726340014007482115475223904225087567543596423193553552997281113269713244027349317670285759691740008646280947315476226844218652516418461566359002425071150392430856521622305293043509534012779881105849529038409081651888155908531052828191856001489117207962975960797433146608798667576614307237692147008442219700355810864692915664516155545932414383575304629147032248569509362395344637394799503428508145989225875437758880898805705687033267598325264561109308026094778198110176096899589018595254037561157230063627908710271403782696208145547152671744631640568818763480122453490779914940362344056378682150864428727084090662975858129737309716931017937579637368938033782369827983495570300660224760879386253363064430205721977687017550713643778970541412043365867823972359264696219459274454744998640205993784382451620726571125770429361024051749919437075392871243020425727346236997362510574555604892050762499422016842042869435312511340756418245589429282449997380548163397443068073660827252782093456261455341235465487177098722012631113144795818053262817247972827719196072052184309387471071394056112540312391968079206762565146839819052667292646029222732861064871186837812815209282154443081541173583781161406177373883187286951371031009248788582717328832488869907695121364543095658251929465415820075065368723253987360234264715139665275935933322642169189786855308992182442987685079220879880100302985880090989429540468922233220619697277077986213952142727934779793081498279429835057020025287359429401544545000514895053807803189130970167005185199079709819337903297695871127221031290810821459030979221251309689057220025509508285030007395113362908761692355620791996604704042335536493774494066411203515010314459992626210515177948507653048842922479603450148625720681882782815829279990027992788584632057319241402278611339043073931072358212681030642358221643350002983874132862262011107487274372031844734128262409832955310626892255598782215561003537212886870802771320184128616711941874349386176405201573355736231331686123691069820953420917434367685563059950066110969783468305016713456148794407964150805703494329630790947131123921197193437164907382448838298332184455707318092454127952011656948291548198988749556638416216407521990898268413977050437055399957753708796854346666264560410190722052810647394630966245135220239196504088742891069861434134145314775845210779361317255968082162110667147272225324667595198162812118937448561702394559322703315401909114192690537761312856265239827910438080453921870212628510785359116031352972414750899768215746970644043569916219686892031892636715749192466729002351299647529151377443633335631990148707120306701055616381384320836024226561037072541706337847797793086487893026970614734671902013530079804774396999421319674127443050466984076582948260003852567033741773204022008015338369636408171341187636962864741339572601753640882516983547024126980179353090268245292252031855933133268277807907896228272776320138828186595424315447194547404344647907846772441657108669469521680002142287143249212242619160508796455984759743447502324128013083310180655015936317140263508075557440817534788441300835179235713017872464506811865989167538516403959662928076469571415918800605551111827104682618320608618069718814184266189051667921506334882358756995377493807701948475003365217228546165361812810591331191561012673365449451066614435007026015278517168618880085247903530619425510061862230761836283748290369862183822074554245477244277274319168290345678805703520248192105725217693528213909180087498713071073560638767740820860038367863974887119394245646970840854924094340981066549680517437148211015223345399317458319202405379335922706011501880919326746391754612138095585381009770510338228894460890141282642246112661749020230132674477449451758269881551759748377140111800648754020068344280287644658411923894985716620357899566127186409017303148182734948334382328380716612280424982818679566885144304704212255787432460894831402161178038777541285827765201373195415351827796377372414197165853149434615688323707723469765179556593443757610014037073730226093508337622709097263146523441793428547532698115146565180311296848638107309731785915968290608209161603888122914911907772927428433883862884523218841720938026404503623298270722987136445810969077307407874306681137297012017924445381830575263922771769056560365680697687856793832719994459208460701693147903229248212918586233863417657004463376944584621353095859728611326980277565023651618813475948955902077911538007072772521616448893959349348447723362641203934639701466387502597605717440471168448654521131073997107759825379595158747572534215001580270434299615501953802630734748275130423356960780599783411698577377250753012005296004708822205483276945100651383368894059228574391738159482045679878872287238533972502278807369689574866483650799529682348006312049426475576357350720521577628985553574589761486441402855482448478723305611763645186984139319484199773764701537558116757534722979422155535226370464180835755869481657465090202018256530773251802861345515710234214428533523697112208728513318071629734532281958238664583805412809011119045844056197587654742715999064051105158285146284444580604315478498162549679387756395862950336246157503611881423851614810254548029537519092167523595421822397289555599653238781846954958936708960342697665395271045192949830846273164960124079746229930184118405944525873802733016029088214931684969564493852572692590466976225329479533946584204464289942618533618856724896214710559777086394982397562019853488047824770735616295100285377629655942119078286681165550779648494042053940560330078401127126968770255239986529067614396622578980518058857902843342870527016594602778429967150585810861470349673707938394539730225016930872127278208964225532852953821474811702765118394663503866092415430376525718488503187628940356330934833494433016627933504941201979325401100444909491525383261436672786346488975433496145326952408773921713002694365073102633910287207866085768615718624358735903746237300766194785505628933063306875348493216306727113085560461580494608284934999631927469871339158439910413061429479864314460472176112581927228437029311363138914688829619083472801646951579952566995651916338810851679322546844193577817613316035875962382654338000093439417177781341884393160139500926656909832979665909919339619429498327743138755127208045453739383931848155613415413771915738574744173965877218506000439393899286798554622586976773794372918286099870714967597382193207589100246511427061715346625909186413816239725205782590516578052580439383216646215795880718082906173380064790783635857887534615482058583951910977426956244792286003733921407966476252085919284291021734414142703417133958376559798615341401106614371950022582672909112862114564562845695312810380780343386977009661612585476617446252329946132847249108959451136457869903400998419528078281745344069092494831762778105911923164119219795621949793919569581177308975425844572961066457687522120949236990915193942770382489780900061777478992051376606076348643055915593800887416309299620620043819331420854498023348850012087901211895335866513127963452355827330909446793578065693457277214781412438843413525094450891737535075905968003756645472767362492100823171566428582716437191423280914330588956330729446443211175091870940433585713829948308277532998708343703725878858354851487413191730098816632499922859363485673132827044366469798855009571017653428473895463500116104067864669484676673372147928849635083490945597109824449856481458281377000396236582811918567960923930457457029344584909146037639714102742847158439212854466436780610599266609153529931778184512022765152136560903821066270976353637048578701889084228859008343563037747119655040654107019094502897072991391219793711765455349242127293824850762418016426502041863430449833773065295805613256996624582982164440541267292324582245818212371304085768619419725342673832401322845922049435658355229924738470200961569971993836157640439693872921950137425995598387429800275636353030579071508511554304715240342110210685905332131018554389964554846609351567375196657064538648033705605268677141088079495197698394568690349819745539963094233420149143579564605731987419074605396962558489949097410982696365692425451805756954767703685862343929230956961304345504036820127681866594391752047410139126440174726994708156552496633479157744708346548944523337850106285960595020789514647450721926516671395982197808650784945709525434050768241981730156688568651157718618657036578059427142820916162799577544865697391646827030249646622392598520720792838992939063586930595657271370559280366964752934412591456384251842584332719452424633485405027384535312829244124411346443800265072238893712771622126986727559466331380071678193346383899098645085678014910589511702193461452611778647784563642917480791660585702151621167636646883112184385461275416364390448911908093262734097922855734641726353406831625016396929570101990485106997036970156039220047143349847076427218131357466857883355940535715280358850328731531696418586451976033593003848471162339324288620875212240982469792741395853877237526033150240570958749782476980338449397062764251251935073758809742728207184109953542747916735829338240893072516092276560853599899334120641650058626756242579070517224423416381272632503554016089712087406250558178470643429416348114096506010196034889258136991069038463570380284766834365681756820404950910896385229389794653510082489873165229087852960252156918358924625375040119121113688775611597918314690872395724188540176752952926830091658856205878689409166429735470738396896071385930356727625270027988587161468361836183392864001741565298184714969524947662837491081425147084040030881558808335480824525554472102451828521440941853351891483185779810236961886495863190942500994148779746470455848256752927541626742792777438848558343735009482479414661084306236394023780832101648909872188123515658096989271985822821484477039119959773080836532971430534691004217114712550945504550976195764640736687125203652965929733169682260650180064577345738136386734699202240265214478869767818432322145806016627657841540457712138651144937365675256959919130323339510528133203504069649584444645190376590940298058012526140551400494869159356982956853544576931814735949910258510781602576912775045397102876944217069145559941880500650537697303145050049204014177576507159555400580185179125179582346340648831072965806751597126961401085668464187862127914481841045217166928733287419319291463962284144639239218958482488509104422059101579492152136882978561239170180615657360384995891839959917443677239937044085078899051274805607320820122162838374359406709477195839903322650146635417651285782061620010785334542400125131478097793588449239294247555531131640926364326533695293094062729879139026239225165022559880962058258936665438780038911718370437542448364615783808032022682120448664724085274778704611805468445360526258035009740543196216802785881624943148403183445320802363513065178197269515829414033307716444757302400044461418361891867219447273865341983795527672093583053055710910967319995822163709451663896816462452082580546418660055609642639061285003322137467721672154021601078734901154272253856846855140710070632658348260337653536733682840449072728326228002246416413920987339746852237539778494713768715456823939492609233623971527477944801409478128341683537287238850740102581994784316220557297417518936683969680833504206107139501620252323333194615892661111768625591238042450844374560414468264767071037008355403085975205220170324480853335359736900878587362607757686836785158797988206053878001452858371334140015660672552499247920799141992387700273096078611964016786069948614513516497862317259618620984971847925607200163570782556328266692478616853938302563318831563845700873801772324864936611847501617359955000892352825167997489804266914081474630697165367560969425745945292110946184087931473137804621414103852413555433965131662244554592958715217019297205843611051732765183444669226743175362082069364161749471324470971308875662294790375405852247694471829108182470982564988182058586062996599946841752272166333366361417857806477324690495401105252585463754168329398191209932778243219122766312632150394159236918658193724648769968289000145224650592761170047358795085108111845338690618731670532633217236741260666309204961160630899953046881948855763584336249358249334697498466537389492154352809421432155534715566512626368343630558219070476498581328616459409637807347752673214175893307502442362098666483580317519804822949659148727547256566573239108970967013094243769514784381468955049793841994404254482135625658466023409478482484219455587846226444135886542794188299422378400501561342083432589747463606234814518828042466319847028022204463897892497103027011107018642079497913749778330822874354792592824021630660746633541587287743479014812972977569681272325881307293092189733844370602505032252426424059992999506884536605797182997750945770086426360732333535408588075282270296782470492529567153946227106533123009934729728846242265594616376306215798489441969146591486244519139508938201848670563733669593798392555648105876565771211375605265250986912803452648767914459097742885142494908530872838049635829326520065510426704938915824286605108891636224395875886770353702971838045258906904183384120884328922240441987487208043519790331863326223817670247435147220254912098515284799061989072340836692445021651986290017418698287528588776907348968005037174436003903472720362485453220184722021308497511289437740417163955248874623717382611617802273524930080784031486321824178489587781442931759239368644649707521319147704374562271801410125857698048812171433722018720950448895227024073356642603389015607041371291089269011827882392479135032815138661493129876695899849398776111417171241780306579076926349216557306906843158422451441474362335180074127913038030844745597900251837746987043730042775975842054639959422008349568035601661387669390314005311994145808059982705468483684505179248387482480727209320229835412333476340314955122529336399654078101862512628567252268833994057628829918726104714538873868494891567458072047760904078657305241202776127950870718824103841623152375369474500810993982664216402662523210127739030290081052156064366702189566926911732033165156267541950801592871741350904042594518816819213891601012153926855381929380377737553834643056890279834011090421850681558734470161687640719681133094292751023837093080595176799059573734407385616572742674901990078423252612442564350458144661715240085322460832521783288206661998749641701237187040009746186658579719431118840613056271516232120833900624201212478846606589927605283424846920835717216673763386062882866533911412621862546027231006833181767503210085967460869923225055214730355107403653713560771794765882796411797940834100592230891984607734403948555217667822799588429708335145634240159185046735324830585905501267744581766363861581268256239018832030744693389687527339685632129689758798727203219335021024162172464322415410482488254909842959893428738174769289039148160334145627424979804279763093251730543145740688727185238143530035726073656622632848648296888648378704360852511535661458771552660838914174866310728280366112390285853241941077754298941426319888108807684291573762695400275636980861690389059981282045600195146173410514442417271730853363766281799681613302211830383946097391079394659494911752396948814526042421495946993256428777442135042220406401287595198362273665551239095252233065843321227471820669388445764721961821187639106613376372574592797517549044130936841321641047054455068750647414663772252185548786280358169557057996794443674483660551564722239226996544496096194589033366699776034574776163729151581708912721884881736091971797950760963612481484377176302711705565637683789235690530713869823984688784272203108524144704955715757929828147610910883032679855369910474409512565641502761837503681512087601357197834829337517756623906389647693513247859013372458500228365938213220339022802563245864080099819670520202579185242429036709276058240664071431890019313150444681423539404452877148715879885573109839863711981059254652640060249453962503135841387014659906919874403955265734539946396277761490697850324671486059830842659813074467713985617237101610069904771334168100549424027011021226972604651280914773108328334099278873304831720177867071323271782398599591812301562361473461362538367599161706757571750098290312295276855917080633956124332087861927225724896958324681329249007811509292488811144744517872819348900360278284591500635459958643729514400463078152663098029363766201828676005314955486163014397422296463223613366151572308037589988135050696066363825960092397655349676926327723685811400805086133115577108483739146243469908694203091083065326997349282694676794083595481732253880958039455718166659844652183585156468638805076243667757910292801256607736528038108276716212129168842320429147792093371585146582890610360400882644019532890981900311383872729306512788510725254054068957083812426317173647210566252057910848907072485473985028961376278187405228045738043957824448081173410974109030259536348676981510439456362967369963310939035777648005944082579061193926336889463161156315562740659705841515057972255916162123807981683424700199158612342090025407052443438110925544231339471948287380900152794964847823216373912382719595490017514709264392469824564307221367736781521380154881373094336446370768502847231136395217258997295775591083193510921251573846148138554768784747476283789978308931534446891486894000122128166838623038207902461263061238297022258528820071058409644234946308659427090606016533503906492872015565961889188546464618651383149991668603471810327171115621707710997023015484706438259610614995863521134193430087403322221771008655344253960667170484980090623813175899837737718373076701120759923481533163920087211839952409309312813639485263153072059026613202066064586412223195118839641006464238450640256353165191476819717958331460887635986103393341121056216287205194155760894287092536450104833971261808257212641829457916597870369628415181326548878804381802637701373201531158150110037269465879156359374013674254345013733751985698648849357655266271552022943103795906539212142882879936482736307182439662576355381280563349667814951329547466999330634101474201200519792604419241239385713024745258946849690799394176234658078791199919979397201990126375841767672492619342878952634503007133989099486519939285956585595780639030417075583889363778567590735527345704435207863892310211851818904193593957099966037250846241740023094989972259563534124665075412851927721993346351285967783579864199212612060769922349481843091621317529241226537506100493049201869661542328748706291324900417232798880653313379995821162807939602071527241813800327088986289145628674002494955109775370998478157154522898268153990225261008246874546043966518112429825516013663313204128666754881485832078250031273102874553897981357256858837571193164391588476789077042566004131823195693208563529145848345708915218329622894574431841330802844131598145305476192981449858039090907272048150118460107168208236767355956923915787836002292491439214977765746121736284635918517130623440570195562470235204083443753598623734395929073877374950975056327897756726872097118536819960767450067178189533741269111872594933469500942636963176840296466140809576484160664328674096773884402189736687459104673344248237331635392549260134061286747896733127799928756538642464065893265988157394124948187049966380135761445023470060409899225774356466137912040917287117987807581750636187028485476020840311308298877665698585775415000699476640121553868626960582736036643659071996821409883891354997207919510955484644010060344176264216826068093011113399143614385759740473690535267922678067264806950775855942810891548581963891200600387089599099789939616748960486011487065769789337021485350495940865881476084677937701505604389022178994673199468697418392451591924439892593801461801853254023960528585063996057512305748543679793583916580268652921515263919327565625155895103932005520522595717860179326001086212162824976077144836381170668574731103781931027432222503040644271018804280710736939211685784133033390094623886413980340609116340181591529785754111818095981898706472306206110550578342314755109806973109877291416931246574472644988855996843917145213230576679752897444999249730009519657273543925644673137281427635812263654180280420431842894738858363393858262003435702459027690638565711587140522590284834798795617366013815177286207904248779418444059755249455649029732978938599026233893995426752305060172391480451427810800940495391353313261661730590230878192728477135910692956705595447187109692460327725412861864283125911125530841575989574806937634494044634030637401886324096836220060601665102201771217047896451713477501473512284773153290710045214796405863259187926047431446771554602660024900314144611785126418107637700462190652467892209835603150893801209361764608722007367978873977730585520154211121406444085793340032371801170353560288288982916460197210441092097884864552916774723558201976656392478324944296767013920533293757488733962248899221954087964406270297110271902892451508370353731208310270908963817601691793801228000314883299746456749623427243114536890501859094416884097978868051231216739985164978461336132239896236876613915604318690005708985589832416895148355098705446167727052392751533428557627758696216604755264520388371190974067925841725300069023785984998261165655742776144702745746750113803089362331940383666873055338531945413512840456894898605032893713227097223833388222529571102839862759110685732699819710790204408802291839533803855157063818291724907250642274846856099290392511645384948036931022534905475247408215657834284138386215854755329457041287701576994296565870856650904100127068318038595165205547653462547772202031353947070496204219324644451094824188765633703668741945293286946470640874417465195176076199705120945211052377354580632755471471022134318494054051152498834117343552703594870361296515873250068037680984001093830984331216577730351474927801872509561052997114320249527443470876154891887575433047437947643319471984363732734219589818861825927111645970447680093819118331353557578796756825759335170402252708162159704805856281784687917498432969900018157417233175614848604533577922115472302018048751240453311210294898460761568201804652965478419577718877474930130668167601430674330342684013302149780613426700308478435783186465106916189131164724955209363699370379136529083250446377453465970034442107126783297029602095693332026259416721578048402474572596924361570881990776572321023220985934038615787812365136815320450808061424447403868338380116657997543851486523135437721592376513425130876416500530198447868941067869578982509246378294095300002209508538464184681537926448284355422594154026999858209175826461330001596257768405357869312061455573390217391380485552151022583095736512042689272973615658502669905873488984279816707643141679220833324462523028750119918963411619756247245633180159409648085260413195656130954840687099677246519377667456035240078417495401655312090356512356291450744417611638779728066339923163581615978419183474739141740968311782835307194490487015581963885417493955286226644505155942728915054375839237012485661991873350394574519619005030934068263408774726122985031874788430463203275225602442283683615667751216531415305320694711950615547183745912009796415874203939691918424441692961250925206983743403255082175119342132799342023657348764416979191464679277964512974394851093619582257451660877520511600122141033726275336046902101792288551487133237533316309805614316202272467591907080772530342668476234581389811782262454435198547918515010624752951979972330558047930498881109764600049256457344647514683840026049845051236436182466085262675587439545097892129459205572104785485133308194467212368327771314532053872067964987225718710106602735834934338671222100783766381752774395171054095516866714232596019844184067246153231223695200204337925426801789474103261575854988342730271159471724470122310591177456703745707073474011405512166791767672003721551789606296682486887035092908261618032712662186572589765688923033060626475519510019554040110059302009604540942307908472146231300190047264278688449751185068623923297782084087885096252407363674073515646641615738816447830061923602959579948929802401752919834108096833258717639005789931215468907160078562861655689717005992802221243441042365058897133450434859232272086736323545805005042478928470198075389473213858592982833442712153396074027093736821368087457445812468336361080637632191974542901918540664432675614507285680477896178993794079142211221100806297130237991894394573057061768242854330085405331717076667695729198900620275743973619594415195650449366890695111085151748481319575792443718760003217708800476716166691458075952775814501101199313885130873380575201838841361483800819589992279212622366736507218421527984390396371107241839132900606795229350595640843048173358096729898701776098930729907131993344354303693952070870442751058930131492905829977457621900611425436936157165033526329129351298814297880118207573372228861439567354273497830857195793714158156510595410931609960728094085914074511978912778979274905640712345173773292495180356706990783142297085385774332845105989988266564750001254272493602981384567257701955827839282319333637016567132811200890104629992716637209495993808859084171760731993861591064158869597328012100753309348828604312077166333565245393701310645439695660925680051618101879220800706593287955724120016308140139031139156569589115343363566480836575206785745518062218398044998862199664161303128091773081131010445165852307631894831119438434597473065557670900129995276010168099749455682144694702320949226836102508213338001317892845676323811660446762210350670241933430356114974380422986679945521295448698767620837215509305631102896495090302171164287617273200563025175843383849855717317445725833257857453339373884293639584654528494950668985649432808753981779717612357598819607355886715510687850137291885711299771248164542733355262826043171589515553818405991567867437318850573509881208732036848652162674552123886829486220210438005799369972151204519252236141321703801179393569376487663655673793702279952326937299421807678574439786756272901234861249795425844417946912734230670435029798980079214707796253996486718416901061383495839185496095721492957931075731395454795735103748981109368886987712584918238924876114142888482877475586472766407295333070226144790595065473739837271646567032728609910371662353935049785459053359372450592341054893903478316035213207683160510849556198611168914825776223149865371486751744272788412587319080308512857959279325011856008144389319264350812319568266339140109539704183154447193563317719919844754169614840591453102003701213286155703575827699691196905536523172873248739299736568790268004362566984166045502106171673697365938094081666316182343620481266530363578672480546251968212197527654562113485876653905016697057707478723370405809697468407578388828789659225630996127274478031656376950319452903709114159737462194253696296896764306128851028067525650145116379108075530598588575437185558896971762152314557575970928620897505174369525222848424148054945959260123213604794819819511698644210272277168359334757702994164832549505273130130433614256080557375904619774903451882309046979860795154779837072862173410834232000724230161812905801210498576575457566134198089061254592871253637728385517548765595238327565572151316659890746160855352291082087920026683261343200548376412579040321064128075665899551627093854454306435634444772760545974908461882588878560940905872299948957124204664323869385630076206106849123877024224731848171505977581384994834794832989843219839789926727587765688237574517274668925463375463838227134318920786278993635639147696740378888040875108851746995590902382110314788376992496910252392411823251571605990636244726329711081957866522305610707189538526881036925303183777112114170276121217424293897907617541221384088709236956310126343600084388745156737423199610022758420241698902585423028117020692934854916851995157203369239180022483273267684009366790353070074728693975395121577727050667463016727351079037171939281041394461913238704922650276323268675836705976538264824836906643673182094510278376137729835505510778145949644295900051351803648175589936623834865279221878163493222155053279089479404829570406576903846777820897888494833870514943524462902050021840760232670053005133607499894575003211696179507277924746146585232920246325369902620574216752297992606979677241176952201183124964091412237040483755070086793931644388402137595003817790674955657476359602859723640037114058029417290758497345121759947014508275179998843999317225172067942342834400557897590574467016690844704220071343535425782266317853091711212447279573524359219833832174203749173581197678234753242707866863771316753710434384946188324406754288917248002486602584522287657095727270566013401825171520080916970056303956289441124158989718605214210242305068079306976767963720790301953176029182563673315544469889930834739794046893718204345314029649401955010640255152125259850325946989954125205463349902044477874748595978675470164933290642262595537829594339103096371735306108870164152121575409089151831928025702890158456666062445760651266058517697319857249076534562056256873998888127358212494630610360942623835315779239302509614187448364906404821414312154172765581322248781962564762118578012322132724401407164397871495334796943404937403608446164547696192198726283457336841708715889299923523740207435478984168479084275274378539244189461889951461208748934554533733952985288272709947870229597616662595097070442789608039209594065069532681094674401863673685933558596604210968382017760580479512093741310294796559649208506813685646265634775766325455565560654743532916811450299771952539194805659520077334159280273687995146473259984955888192142587988828526530704563003709901485690320450327824570860498666277012882794252221564201830619967040013397444735484994199184237166835685906747783708655102448208034541766141478744993325809219394985851134781781591528473906519925396015847130125821969314829664055066144355123738936562133629071981061825327305434781482131861164466383952380804878223739045612670607893936825685112243937371362723150979432393373364864623342773076452700470834931571746627628438887151006279835749652408116702896822492565322267293910304452906257198854268056909774060588265761708100106597078564305935916000165946144567656686854082852556350056318478613374091568579533966950678670423959179103366479093975978416532295906528008179442919282049745576490681748974747451867496802856092546465641539583658680531276378139652369981884032483515101730175967749252935965235859589990064260443542406501559434766451595585435592096019180159017991999665829606814035973916568234538611261576552471411136552180007530014736312989988348761288748342553427381217786602352401613027692725948660710249170994897676971994903165144955455755550200363349445485429175891668261361059365567801065817682686278748963289848861620092055582470900069196030778936939192158937942016088609290969210305514246590715237633261521220015528532415756912218581564381239456324799391959485205274177766948020401320772172257124715990163546145226872207695095666196025575845490956447028736975679805043216076999878138905247030882810133657745519936324319966015714665700572654959885672438581238684024159332499588455806143240832244935524561551921654705528065918747215783497152443493435263405748487902858143632635058853655520054645945300715540642585959294812237845176303897000416567110910327581818424731849825356146353672687588014954450131086988354774370302046875340811995446205432659307428677218546130539308032755555262298267287315845430588775963829504654980404728644085041892840597497817650844902283535530920349633140422387825568206139784454158623825617518076905989820760672882803386136111462046579399986205298422808861378415604159899538777473540685355735467453817338646564543587281752947599795280062569503020017856381835587873599421288472576543781737325841382561588967274449504111806035865756268959863418173339408714537393199453843985396834111886797231141627940937128786909108374942673723837020489292368885032794507741543694952942974841464894683044382092376289936122187651997097960349392394513572563740580727118665444632013822344182883307076932938512538629028476911865167161844221412599993148927465213039621881119021726014599011971908892810372106958135014299323987713561299020873841493470414050670431038468805110962395638536839591447362858178420464829975064521646356518236913335117439978291226085846601107143184994171466411178403614311590721031489770941254173623291999641725791338362432824944203872643226083052835434001701914555149543120024599979953804052470577782180018549462602333140584918000392678300973083903951704869909711406232269138322579423210395851764540721707920279196762765182080725812568325415885491744618437767841404925091605912910599246984381786134001554036150875323181005734516100022564187910159123012680704692147132884767508374277438300061439213466683007738685261827265679770413943662784786204746656515980605597792093994038012235594921751841431803947661907792216083073065017689145816491761659319630463848124942279359384870748664604032909137404390028743874976286301115174831064904104612394409368349582392994064702954203217390026720143397200544657546508607465205149964336880311170269548402800086725213586364967477384159046810715958459997951934926366296180208287536470908094851442977954807351626522836404644507634220802459552678663906114010154748898013527657996533246410122345406288975620692150836833430793508500527686744671963430644249001436573542643300642678696162992252033115686038746592287730322572926021031050050202642526213559521313039896283873678469589761043751244055396693159235199288035106900286811879073387407597245329218220234409689688894280593909400176831255807819133546547734039716337091431285659553011727713613129005050710456366464141876324516840723519017769177825666839458196503282734548540876312633605508796430092240560592452009598013181606109731861828418234959651264326007815743114806830909975142536664830488248234170497408508474551031311041927734558998587248307918150055660919058742294834721663482781032266777707852698240863160791846230157489150872107858728246934101241115346922981953827041417062748270548826350911248124461791027474382756769827672934305436084065856004817700455817128661290797411125826546957229544200133310052087794848421192673088105055176479090394057211681648474754805023911559793927136129673022260199271579271851372694286487168243451795734824108206817415020571840599545172923003429292133603567325255079257430553717590445978641363762771282234921241489215384703224409603144697082160735246046626017156132500127778291975394252124653350133017972053815725739492959437803505838927132596919593051824735558229007886002158617697471717674343747162703490786141017449433722134800927159173052705493105432212260373406762738711662762585915091736050291705978805871028395284760719519362385855421767178345352521996007195678363975760927745633873906638677701540664545713547300816496625555356201806391901272902974423336076508164063622671079700977512310265751282687225409010838082960974586017248059491988294178334775724169594754337046319921874888586598218350254627837147608768972048991219014916018171927370384319579984528486861386060859659798757097679441789943342778404211492795354552997310740228017919111463362418007941909029562119927687000556240098133260360140102495486053573162272729999165132057579346435759783882340719249584392261540118327354953493794345939832526966167326891657855153094519328389321862740423439262199691978027432002960461037992396056226722105849814355948602240346154039618649146351661891172635681869103883884670757726899099739259046659428602455078192560460541497685778502615374551023533916625333386275102386367755842771923694785239598580916672848633611264078635767381547246373558770176661646368020676960562955162694779794362131728189951498289952516482304540915121920276655013899719265811974411978362734051877334005804420278736448630880981943779989106645911580177822032626552538536954010166519584014252148402441817709369704405011209566288729536488708945825403621497421869845343505102623069001674460617675946947798678899947975980622112673520909578206402815762170657922360974330029449069219864412517892406073054047459464249148761021770929839032443876765680787644958834824343746749782820200657298972128880470398799468245601017941203876752333804197330776288220348486440656497175944469519976570445727547167059149526142079810632042149709878733085082259740726400782760090867718441843656707975092207651007165911102729201568527270849620562872098963771492978380123007070143789266137648954494152860612718970630245801929455921541229762275636212190203237847276959166335785125324094308293981777862723453546567719666451376875122315969515445785233880646313261123302187627054502966907946717703057823783635977474932815971709885796001577705706249454858268845276709434192773282807034783540522745268940313137103304549210767332710429605459613891497135109101766303358141179831146802921041168466724470442798254156372086019541963540807931940075606466070458163299567313339892145986903437048428204194609186936339666962122248693845259026482107380636950026988542017905264273740244525476744983586854437649872950806392641773366161095594951718763756647397685555506529729554760766695050307443876446392644551477248717054865848525892485215901054814790743133570708035502010085797426848477052234933161823177006607904142331688842797340607632746117505567887189065035617520376986206073951518256409933590648194113810019584061999511688235911788038769187382539170278070949231243841253398914554227159706356593191508782709134913111708660697508150844556987566090999187030508421951220603758067525568786226422074425208622065597159748478805025754709439425343848507601148558966051037541999958480067383533487478066585479116174603329076214229051485079847804815391619554282069285734810033112542987734235013302973972693871743693527135505785558793836736517789052697561556611660886508652715049814860306592491846709811658390416973124551224095480209563785273779023027499382880634966027662886956041170514051196900634433424803971952984769935915863508374431382483044742186053796488167106001926533496475170263384488063648159042986302170697695343154242526936152056949475327531866868673581018813139508503250556571762215722906996000070975441746928232227063197333282131356325248061293660818082154521609294108670357707185857280280539277894512174386106188134602049873905365901056394266083121239703358962103006749096075660173389714276407563980171371507802477235556931085380314951382164277972132153264397458520569163541147656067470857166985164299146072699570660005745353988740019354242470299539057929099562009245596927058761803876026490668509206120631971346232608576686158089889876334221088112751225933934216186269915973784405232237469341885594283918741580390262591812543613073112696427925553285030490090123695986354262403485856218572147767074037345455786088456781735789411258051721377216778141334959414918778433385517032447361015232168971716059217557568945349044098514987013316504382976967306999335956464202068908589335729653684203671641034303010505242660839090545542977259666279878007496757780131364309412003964184895851660538667570527860267554086647513073900865913698134509100075985872925815648991996600041908689403824166569635929579434038788412349251837083766608357471370549298256420745051624386968385532276440603052475110740130169270572434604155035537977650723959268544171851301957352156611005807161522672982653822357235459718102203743156464681887377610605891494797532646563490313006490820187127622139425306773533107855355432198805404210797175697253212738309860145089643857854829689113927656803903280504391801460007806357284247589288932259132944060194856756829328612742185688959893468118296230315764743566526354177117223047650215783086295212319251147616476953269932180769585520241014346235020243471117484349839921757251747281535891550795401245189299774645182499422776374792716699335682063037716628595501554230896647902062244333476370533130491190352052037400805978709962651180458673049620229133662700752708193188673516596620884482743158012314608633379064910015572056612961181735621720868370344986844261486025929384202413937159678007149894437632639829043832521988525377486583850085946651563670144844158148678922357976784440837511725911337271904658265006706225293165659998324765540384593696124051067467969011977637192056433487960741200556131565529872661465188772287575404340876106913221034605280196547503262829393441130226671988465338363319979114202101673647123266333403562348837600067013451803117895356316383452238818485939843394841032464209111101691777194235894773165380976073157946441764066649537214271470789507015109555422541354915366548668815113657435618281064351693594650203383707061690495083103693751707085067557500383712746884855379072377644850618271516277751456425996611576807825505428218388281679362231688023979268755232121660324037426346379286974809501279801362088556790316787528689032270297040445740678916730486680087345714740105409276073955846999461618202588698669046258303066039808863343148817010482931306278833032731016668383497041519529503215650448791749035975618563309567970452830937689495149606007036816835291625403245772997426011465880020388833468160461652888424648124833516864701319898315133274413893737986929071799174444107785606380194539170046321001547803304738662192299665215744766732151019783006792163490972228444223724625312236196825376930167018232906405010120301995893473189483155384180903584286265648553531052665762978294405853988487472331252503106752040669094135609529376422199133633771485973846280671128652740809994685101002928960768885914086693174548062656440197306151682265348250664956808681797346087881800857047367124788867463718956269292013603858110785807499616333984284233838522517997388442265233598615548836260852726475593573696632224394123876363917351140952137611094845459733401945932886357813436961552524259407661579756453859487430505212023606461112592931385771814673098613935265659154837019563942495299895833176189663006195892563570815275754761230706531607302956261291315719759354805758009899241274617443060599481189251821283844655789222260591745171681305233517927004402938171857158539248248361993154638449324665454431667050664644550057228602383264872821834450021208500127335340923987286606460231213431440052592790436134994841800310886781254638445994853196087210207683719448583963342234076334088625194141244880685787627476081046702867789472038482652073395406078128019091737531884715185144531962039177499510622791211623355805554691342646325385427592853558917643565958495379074305808429468164108230810498132605548960334132492178708436520846226148159573680082505901707824957810840594743681367793050993367549324366911042128824072217492913484532295513967552184096426971506137470867536239070509986445903948963134002533187759507324490955768677799336356288282048335419033179344715252551859699046522545394350240408359802334399928891508459086774006885236142603391176281659088723002313547071647740249273067169842563508913509598821269044430063234085739387018751924762118860177804594709718100663625794848733495318521236472861076280455010985072816429478115008773468705703629815663320920770750576454622904242157792837926950377977962388466546578084221673198192559462601104613839776229738557440811576882431496170761589490728583051518107402519491248388531269610624880701309880087179888705841667640165611604142265194846313090702381120627116115497085291698201600639786450224989996463174156650436681928253943590311980441507346353028723089720587041523804320284835281133415401811237138319035620251603221785283105425113194949516043376128904607712840982841424937049948953844132549192209604347088689004879666919337542161527491185530906521286242240818269017275366117272288637304056472999171456211886205615997415819448011490999903644629839155540930731957415449416524141931634659990821790700883425965056448656070382593402835863192250271878241317579714800666521284630039944920782818716918212171134764767238914145328943611777226166272389444288829170699740468140539828276547384042483505216943957754116843045763612876190229284373255011785593818634817011742584079301210891906062392788045434089272956714915218137408252370116751405225627189386625719599905440992391390881656155438455563317446123743630955973103815789559235255256659343843617922607486603951024178427486316377106587997621362724512623369565191902210579507392403015349259641806676826057529315831645212390218204393393919737413069826180510760622337094367840031598980962314209151575711274556706865444407459284463338931905136785830502693932014174165255105616145919333480849343886014155056349275511612060323698041530963733317760000469199428596944596500855238562302945808864448187983376606905257496393269094007881482089187854486076509210066403352249706450428062336140498043885886321299532707935125956416990937066689985944520383212631682648310329668351186239971196486707979153168722572920578257007257096294673291052736172531106284163497802591637827440220530952620441443235420968845064029734794746582893497881961828318862389484688796063673674103082429993499582454550320269909902333188938978337617993769667494152078048116323133790948409562272476517450467820192910752307868247992745213321709085937093840490175644523664352294575409083220265008787591568517401156442190904804244961618220812289220274682776010060316118551034671831957958958817591053023859087796078307298680038186971753434780716105249138870202758476454895604003279323444958101668191654232960771861532592546616401152541811461440875937157433071996947872117600371549881821664539741946594729171016079131101613087796135035595219160979877151640395066622447773624151033968020908402460689734908562278703543843931894205543544335548192157951838688402451088909122332092222218906508960773560139444335909308926857933458591858818393552248798309431370001007243455112609084146648786350807460491557657020791402442791569766340971285242609884409837722944850500339168061746002713482367304596341130139802229585148606301994899604468077870752829897627220193764129233217714439927911661343483044141279721287689568188449545188681622066202467554332655051661491604289176712036240324772702687560460735979313016960284121909703237143429783241360538258321819832180514498545629705300381524055226266823139354096520858527540573796541405559461311627208411976001514604938097636813938198743966408462329687248439890330156346385513221359772857457000921148321909763430808104334070695869849920455978109646890108571621532031708592626772958889394734476499225721310373631593106779466769484157576950340377920443071221709769336897360821023892965131004112292383563128945934486223060727884428886225036376432475918788523246331494691831577447103425213657334371044495301161018970013215598358462806505825192434484246340774294300443787596409581095679812410063935841714309130035021392592454175425348385347871885320864836541405662917107716526932749779768506293439225423237568029274571376687124271481033724115618224496947058659494544012284207564472348420085434333111409140386312230204731045179208767115482455737205246115325732951143301596270651098586816973935159488742409883488800486599586740726348041923599489956859955491077923209672755173772845240064523837026727516337447152563270843217730027198780634650939007517742903040143273675540345155733624084063147776696033660760603451975354849691537252574637023673853444913462020535638231540488924163052550220468651866395542186348143725780456589292797743069675535641982306412280395477386614118010554754325736916374257816163461801921135833972891851694749350801661968652253585334108612710131251018449308123895104439738241383015895684841319148242948232973381389806538481613291958230438709818468647145258702979615392757362140122434488209230831869836353562656641575966900310178958806587018200494561915231216655174712022988755219425172588124959470713365837184537481828688746403939742321875401054951516450715369773784267867769233329718491645234206702968191055892407140638931117639275958428710594910167501901021906822943698948387939592079868989824812271534342185034345373269547016800753144112632658774925124709971413324711127732418616872354340586123381545483458781691644061665364617931462330835575550557741185668827598597717179748423399324518388748580062127423475746060074065598828082512482018276520233207957049144585018411108180953525051112628880637653245319673727758877853930438371566558485391289734391418876783661605335790072316596288979320992692836456693161378931441245847345300201798486241441203718036348919515450024184592402656325298737394976609609968693277003319479672437774008716074871015665617975838310715487105628721376649604642176705116679891999421387885066943591186837507150461280828703211195132707685549510106170385096890029142696493115662314308624279228405874858478021151773588031686448876518268030622388407470499261751513541315590397371945369848287295709347674284030756843180937520376237933107525759152707351862443487392202444990612234579303173728702838909198013792668094850264641526449529152005008285118906711441305153926288375948229815748922338425587588607321007998583289753749266559689967444461923876006311115503247971055429958860877549034171306095044821585205983739028343220118604547306743196350749574210876951564832914666159623902440867455424149737754599667724838764333196863665880271431047040636146316650922380028627736603624750180286777793358852153719245460952636275625117584445914034471115614433124004711336207208033363737882662864567142658185690417872843655964891551287038464813342819311016936573287346559214798662785392766258190965561704087159107074202091253645435817298798345595832706372932903561325071831202229611351397115822933291344941246872183129671162637316085043962478158334018943465071509597891600118531103157246584497772186341528946362071299773813576360229356768847630102355669572442753985866795029869432177431310581545690053040818117639532753798359473344974968571929783667650556133850325521760872684114803272365341381565396272352833696947797187502298979020154243728299785810515211808985482974101399449127980410948545023723611769503216745283786160198380752435966916204046202298614614463393412937691920838639665863437936611892021147305108066610332257870858086391169188732109109418074494128275909731236952588694620829395093534671435439856186798457482076454430416125848070126931159402807297655439858919661280407866928153987918369903191409414509735336901905611638206136055022594211597033085184572070391074914055925104247868145238888840882024413221653341724390362531221742369881067609181009231162144222735204285245149338510770374307473017908857194356162290691792089635002645197305258408836681911770876214332243182943641440093430282283796730831268393807486769367565256961410718918596428612393855297219413972581976574029076200525640520880625582771412525002518468810442353013188836516019278309885997943238921414444238326947379670545872412696688150621287425615650876545789929088363104245115781460410670376738783037455739423372142806331052048760882479586508219903525185741353973567196541477423364316619818729406441580540574946119311740000607125375968400430079505353139148402151498201735225339869755898656480741229003860370044872897733042455247350295983613508020797301000929469203701094142075841863929670085279068197909153756344504035490828186814903900650921128183497452206618879802761442535982580257271210741975744136235319350494475513339806378548538965246871529989157159176570216739127179916235881932543486536825931373988010622367941866707951542792591848099931840856504166162981504259819338603827660914495985687917999509973648977845368931382227004165678771966159822898544473452883801000835092762467828305475530545035749119213168195458493968576307192141190579025024448669169286746168368760310058364837540018093163561620093104749386701580568026667429081942980410206073478551324833442801779140730543103365509896272967118496802166356567647197088760684241811938706002781263251941891112219812729511015038041849803275079475573074106811607375037351284313055569467754298442552247207373244159295046533972150334988495425834522778567296264769911250073226263383550877961060815917629110667224422567694434079936649064428222464107660160973739239564666308463917033890037137910661538651339326098587363679510599352030096209871823390804934228275847958102627861162523531829857784609021635102598741587926364248560382638650310147758613256740573288362203781642619631231682875520068890970765169533660485148446970411425941700108625689112285679936545871116794962781357411287168695822263496344335733052532517988863514310518764069676285863330399570210725592204015524881247158900888872610081951171902806760464514835203676766342839582960310147116050004577692911094259030870620165962937691691826051832681986529725530432971477784882497641301206981933927519949981717922928451192799775311704152493734726192514106737098448569414061754573118438268363717364783499259814404514101148309308277885856836583646954756411863853099422767786872850173903336164279862762836224447551879724704436940424362291336719704144545045841496138988605339857812427749057224354876244660858769294037756466175769198335100229516712820042065157753969577931893071258610444325879296177314949365115268573152454279649079486145109436039444362386026137332400449857795981972642955220457194166451380692139018465675145096957724368661156378625484256427061271623565810838901234183250001817903914148900834230503874028326363434834901831616442329471816863348498857520556498410961444707279990800701909524770149924084173905565852588180457180523738009768694512309188864682104430238140006930351350476404913269269935382449933120572324393921386751102162044675136433689751624289309949186940819286824910575063804532533004177529770852884434343384312906236755425158314501146478232462903184357921398835966686655244043538248881670892225783621758812049493361622872469462902462265838264182645783317308298630773309582850935160132192612352361725243861810614644431622419087542376247686941968417330465119182387082084016462001205831482434897140147423956559559074874646930488251418436496937397779543947282710238095856673552093085064770786418140343448002185486801071398728981896644670449649726491641552462760671619809354075753785261580748376594530571372846811738347299174212589971587838728314079124462596587976152878380321625460001385042253962301145515967784674703819483186853714036864448274036271928291793063083043503187018688824937533808738412449396542618121319389297594901936031234129661941666765646375330414361274393370373053664438005064202125818682456998960206150463926717204021089373721453859312466048392959502398589231799389238987245347401387815046646066788200724773790299135033784212604304192918336308336149712312455203049034161356504567431767740063485147220680318584089020184362991040079214858746496036234166850432036837612051410060459657586290906827758540147581888075648214608683278119606465513085034277891693751749069294477180036868789600758949657070405465348564482431185519998059710463972900493544581810054748727112384292314069841312179007668813509685380601861214010392850792304338563457379197681716608179155262199425356627495716376244555478901289891744827339692209613732951642286540871082287688271690156130310801514631824976280120427281940818756727961869329706765316470580459671821562306037289911301978550982691668137359813430234702651410414251262949517555063506108449479573408696650183744501268259374769007329941145252450873583464333939232014624299142397119305201255436909121001272583957063312335100706173789672690653033475920589963050973836184363823078860741298590826980755968993142102779726153428613946681374913763286075696515790845475338993658722673163348753475083785963570291262887229224253396049960170688995664586991946083094014756006464290063028088699622716142150548481640152665635881304213549100610915755338339148446566597265295113691774471704210154139959655470861365086837158005078391861476691870725459471003752418641593107493095979158086462662121772270254757263831498376778187809619486243156712710270448949062347042389750173783885330143842426297537932224726973593018142795030425736799352923584802327732478275555512390766799284912788527982075760816185865997033859043098798531538811652206829545395340831953255449818140462100814259938888111117152289223423525407356299869901669007547947018458764905881668860907986569013574310768359832333881268765731670749473261119447460086113818792495667006846345403654366189382889327083069747032071313830176570690697950232925595860773909791623434404428524206599261663666012976162892246967851133828601997171920435697823256204264595664686396823543931156818683357936108597157381019373847314226725803805498226134372434440445809317740362542749905715162693323984578141738288005701768933070638426157149558825648404171865177848526457798262679930702116325224774997719780576982784382280815923127460144618198239971990612512284888084051602237176556435964284789980634521945962128268107574362864362974630430472444977753706344139648424834070608598576194700708771954373380337059442040321732146807629389442982644411915741731018582930516117564511713371359971990310589272505856462641737741593547967311887057066384537524833471771015443421104009590712164036312154623175145726694018529089104738803091074608612460392827551783125434322086953058063772951301410280852362619802049741773523503960469306763991666868179241753029582318535614736984972374196302752980066090563646081842479338710310791876105979840340724975506810657425785740668869970353752582855349411918552411737496349638368284799116234961521402803862031815822207891588567404352240398372260321395142732987537177812382389343241575679441901838909213781213137868998395962226510955935858503228983125268331568039989935410723281900515566133369831855732055177108327595348770605924026791965641959989536889472015789443745653423329883078159049112218396120485006083158355885737229172235426632651801753779037638599412747685434956148501155423605752760825331686616334078770404718754931811958415427909489744227388695639804797074784308110709724206950063037445410072315832248310693792550417274033625076055430872260788294517734008663819303498687566559138061547879715095964068965321666635666500354802426569450050931783452450187181418764957445479231815982105243415033124135267862050927240951543923467091943232186444999067274570866437142772326979973558873741681358507554547439992808104242951018889961000400381723966681092449543407137755195434857247118912372419928318159044417872991223425456098310957754315610612640534860420347511968953453010672186763097257273952467393106310045040713046617732718801700968431576316466228251755802632705541243874087926231071819457274958440564458746610806565592579284548879370144647286062678048741258010909695725302591121297580702542110994875737220206233976164608972335260759292691600851225477040401841768593148511047798895529735119605822865598949995077184951710587711353911828773970280026891256394374779997754362208399642511062998231958638700677455597152454463986590188325748120691207056879665179664828947014997439688005983909695427136693464542939002181774010733294536896497236626576828570813475805468392121444654927669413050789012076625849091197843832669224281304078530351674266297782644769527160301719628445965489768081103425083714933913063096613264451348238928052716443503021292273942475695880783521603467186570485126606146994192011509027912196078154143715526847349986064612372190283505068619383563052624066445163783646171247054455975309116109811979750717208995855645704831868287813927290161120478990770242007642372078928609114438694731033517896135661963094559250478283285815600499601486279283098712531224748584461941376419724185300905753548506795867968868091269342401907157814453828699173687332363375624044416246824610255294649773669556845362864209691141315155754600748250597301088961057515525625681178343678846340503182936657212133887156484294541383700545538293625946751552055937533762051124862055635567835136918848375890139110884885865714453026726263935162538767544199556811791926849527963233863335671611695939045577703603159816129256539874551619643605842539346480163646621151651790060688009358797997861977812110691493158050417475527113748679065892972619214112409867042189422734273424412553798308801437183850397120461372165667470506966481526352925362418620830423801544771301684847343972035210767826139575521473355343019026264717064677170987009989898967555462633493815619829206041497599075238196148690049039100018800892057169967107695827447374436563180998607925275693618705469956182453304226943981988422602999876092319438308817841393884381232967106937728455391109373082470427865215748412848956226714336823016863115331385855391421444098359360364804280080932495422255341899047125904892722353294569030162254911530331952551967596987501696107951158612133179236881679700022288876128648840638605603766147157861561993760053846448078209553482257283614197512910309881863665185488539483260304094655922906650784066723018044190112762110664444908184105042015969087964042397339330685102154039849584090208975638424691671152815394562670513462554212937908534699008189803665930367557071559407513962696266747549257243681460658661778498188089687376921153119762337423610638624566444667338772440569641690093156829003612216141415760871980451860433294530720780723433311858279742466524598777128865802475802102990756789017220371096868925202897066673745633833303217206082688161343567785320134750612999101724797959044857803472444277144624105719297637388745871065174804941076302537715312448850522053225526543215344388996986586217722617073454638295145311288936932320965516915503038092041102840611643332506193402168455813135189834629493614341575713458751698990718978865676338060119334158662491109590772154878133367685660596483587183668272025023932784655201200639842398548469824118389642885060101441539705277032302147164410498226921037337518158718644154512893210674750797172840050894270086611244868613561763720836702706505919530289353382212507274187178271683950268624539302829624864684672756608812280405067524208455092932910241673252237005193635577528949087961120448771353620496470465367763056729434058721383948903400772540059021912687947513390973789834294834853373309030725536106951292280946181187994012246026690851081112289729176305185174833384526954276382581721114962352059551472132023318826812106265039356400044770256637155909926777279858483869056456185202859360022533199024893600034107248601505489970185908599836077101483269865642184766143671062105483973133087077706706600264483125177154822714655726345269836342230027739087688721222686155711687880877746848117817722732781045582556392407338189792531070468259660131325926311783490417802918084137305648516685308649931294421907583602329819353713967036271259977476869387540876509862960059036974667083149003124486189766874068016931206663038773839227802382439820882502060575635804605360478738683974401122528649077665961794742679814345571374402416854139347102113506632438650712096955851730705294301948245799545490313745599275639603890539674823577062241306428335891976979276713379398550625406852369978862582951947873088786149089528962311869701385862162334608615953370642148763879193544992167301837610149816515875166911494321277594323182261676102920967541272773688518771281081548437508124523361287444527232180124929333618565234408888369891997129589899829998565283351734590461644699103694647601490892675801169873556774337262989810934491240786317470976227745079270663560932647711287979485121025529820759695729937012377452427892059866461212825682339576645535309558002808704137480002250661207808351872787578640879001977775669232648776815083528398906053400814722038985980516171505602448777491925034873478461849948558276254149471972866497653576449579573948565857259766755419974897214955081138329176730269364190085626243564298351897189479836084231403679004952278326745722514221756958302435994004196000649458783154585637771660026630161847726838335130105302954690185062511887204073958654086086050994940097489772783570312645832877217404194940952573004206082483212188156305107282688853820416125551412667876653582646773355244519572715079247917332763831423762120385743546105530720835349319373706969019651526620233124291157527704203460147251440937299206989451609997156136109293905025943956188072213170535976878940957682973008509914171244353197353742814966252373134070714765626444880216333042858229760737505952430972933688647544698048934775056530049776884086883437589098383803969116993781761056824889755445868795178917391356214970461415419318696834771078000635952589834049585254460368007969761504089721462090150165914222167294517251492213368094996100033337303868231707048298089455539641750157468588447739179348333267927037002917881035101370948350165529891801825236168864585920635564870096982980952741589184900384035066440003459414162103587675424315681936566295204929579415238809271211206123243964045861176604135167887398304318823375392193750777575418423884935955331425595693329795717130592351229260904197900823706364716177370338855231426300904143365263770620285097799632423377313236175711235276760789744814578335085079448072032688898259688739199589432749865695290844099932045403249215045376449537140463015759721987004479564301799033759510110944801320131281638433699905971502436984891025491108798071417267561490191060345414593593399465467654361566659540190468950939967677028157233225404225622882519570564256865085342248610108780573788361809446168712348790857404948436084926587659407419718429203931066353911908483483087199972692794777536290732618230071979395456764222479810984172713835514336162370892218857078262815037364087096150257958839559947799299707974434935225961123382031627854487344943417789294908333360776414022204816231401194005244105843769847012415725063617951021662861362730795501739017385760676843695306524922234138492018884919312913293083194842393485506613519523228416882185756191683325592582315474541977317346486842868710677344477400941727542465658719947932971328897741853124820873873005094510498156130112076900042278897455382700778215666386712209535139809745393425524146642330909812453899161510359284496314282337374345091552223728890551736773623511740789490485523934092882998041007284609864316701800955900194593832642405666555065692798547375572869546387673423481524436189959091608048387631729337948137134715121293097866820986908997775334585901637632406708627870558494819402060113500295168745772631295857830800168947688159989541194700085694756605580142159257307994234109470433420781991981614700426120540835339074479254068282935940145021019040130502432753821756641517203924058427878013313350567190152845263407197582448061897231985128147432331420069383864459302887791312989783008741837204940756036428079914420290575298582960721896616917319440366432097785468138838778537702221804834953711937809387682182828657350179478283527158010898991120360258405133576279430048949058664685450615419845202823893475040980797508621291295763878179276116634919568981603460561437233606520752939061266172482254947495542866271627739344782506113316497228072235514275134083017190338114826419816709677429912115052236355650915523959105157862489463082712631929896463012491840263965243560627625175199136663151703982743089050295702875787957005915186812934125136655699689888764009398207894965896276014669009172258728277230904162259507260258174559375773944855827960096210996531204076471829137369507616168874119410502470756674609301945750780210577390883392858061053227704663754839580719910382472679032523728125437872309627970379338241939217843985102909074435092832291088375542484934319858504938514997635651493625326640520756533805620040552993113568056324664228906181374761133988452806486763244191958575403856401109364648645309331473977799583490673307623031120533757083088556642848166678168216477751724352848088219835457538380166781211480222991234325400188256614875394978979565439383657748935694098336865754091126355247654443570214494938638633804661404262852280975569188770183671631244372818792542260622664397429465181745778796079382424671993023781714996415972618310895715419368485038312946668601598666765746511623610211691626241355828308529019717128035779335209129575052012969676362998414053468806255160150008830839111112593659670216817950327232633421904894644986730844515064605646424190724573358899123439579103287865243469698018100901796418904133681720424748408416082893315218188938344165852943558868075053496113602094785364577549470111880485613689674469007190111557423944239307397766283169438646681657828663053873418842533382796951760246063611302650381550277629287895104182832047614363004496025880140832502605522440076096537471413676286017614440643389816964465106073999046391717763853761648506532921839012762856946097127191777935173681591896464202290260855795800821510809393053076325861071296376456755277535234968849512481627024507461282371602006707689199169979984957845656643036203198761942457664684562829457395213721712200232827037072191959346006781117507740785525789306526037734456523054034539964878049462807500362636226944448334643881825509626456188786557355960584720757735621119624026450398617202528125416270724813743546174493136017724830525493471750993093826787344397238441083740318065759801867640123841180616941657788122973819397945802078865266150926349964649974695733005261141206255713557605884594354247712927312125150889627300547129939425042470793828167235106332413084687067519059914814927572867568828631263124273873386295245429372846265472595756491463198856803071822037439234512019230756119271005498096305011295088455157618688492588390240790656681428960328266269589841928036792816523161376102273833444120542463600124307050689227898028094339827303414243409385123488182098371226355176902699806130245420493073427315148964867370588557675642072638025141603721478764629692887556080004823861621974682322460590419884415686968666067326859020962166536863554036310463423669028140696044607345566899578155708463303312476466436748029418378561082155498413227433014879957654887884271592815567407562007233418477757956509576332853907975447504375083579775398515169250540576339855703555966857287029246031558090837248804420809186356522306263823583868953683796312005890014255951756267062746931507760934684970631904166881379751484901791859581299074093439021117812030704024404560068480130931047949099614109224451209413456427845800481968684919712761536024098469156235726456850597075403448523478963986785079265225525737120705021526697172051704741603050061853819364995550641151542158098051082460875564576645368004808927611467999407858922127977318833058242951377934587855994446285995086207533569555942762463140651326129155537008718930563323322263711838256549981743267836945829973959063533763159325509713132681818065438588547407352183016302159776859303791011069254370601850581764995452369470255940959125300475175957967845032652305186569373554660744590891802010843630296300912135424252830928754987874805644464268972069733965566511342844071968627954217571635988692833479079978249539731072467750083710672860494514179296361236545873816337355441805336588577410948591417948349946673051579242633617636388188749892106478257492834802848079162000364405866737904555090821234693851072886014593170569876356270154346672531606573198601254075114128458842634221336603517742262692033980593350710246131930573686285285444525510825541473837873328213429339529264304199992590685770258587263109481644361932870814715185797728458847030477274742067426693934014074017327215191543365530928961838061074554128175483124879403134759175081224363222576317055217896061551044515139597897185111430255259369116399487363531677316316592894503314051959749457997425607192602092776618066307693453270781321521449523493132613478441148906506236628118357500777307672191857914863976842602672690453072437468563312152437855944469094757050892678496893840176024035871790776051081175429867895563351313057739416272860060966661688613236732413456954177401636230826995363577744010717960384793889482210094327144496281353899107832427884190402642403090751674616218120163019374467003435856065633919228793702740482612192465892236836317095449991980783187341375521300780558339342421202251889936479834439827993031195181507263393625425126548606360594065840311325168546318108900699604059366678177856345638424174117966377980470790576791856789523380547847256304439550668832885799320313631133621096873321007134315843454621355615222101994921012554316637573784040390959405073952357478833169110874068047710264341689432739421001507329031334770853166311591432888622477317345336330496249523755356132053943301278886752005957731753741680148527345696919673604966834760038119192188259935935184736960477197391172955282890729382822318543092957513518850390184729710528355344513663559963218332357784595412836187561550750055979200801535472219278010471224781135702235983765764809936250616008875845445631676925653723222848306564534127119067064684365842858991654089650452334098218438910627678769672681833625386178249079663492271073699002933867847722487518684415303811388533014473175080198865789466761083204540074950289669191828933400827843103712577597539496577339607933889308771376625622035207485999762833718643888405137447356477218142328951054050139432576754294441324821942890013337812436454748983109916766714558490903666837653581945746806437426394653687159645770175770412116895365880481679812860055069390077551178554740418278126266374562074859045726631401598278917916597422622568609195272730752415518684141871795849495887565688322661430497768667714739094426964228275600452131660008716374893920917154799831888519007857149949650323648471979525947379306029535610374378476614709841004523141238213660029637550680225686800700261702953147489646533569696740297784686463693709945816350052412627716473286120766169015150578263352922539094121741881958637564051924043068310680171412255118820044091663575989139275818691301328289358837423869270351682640973298459062916462951641216883014429002636764861254666895366951400692339197680400952564428062734830699462432459760368463611480828362837830060802171148985897761829766182576674141207920400854281901324103883502409623520360287898298146418614649817214961184399989160812793077036837847455621827965476881336577424892037391447701117025793623003166292581300603859784753479884060555892663466488733315133942162520952317882003699753303918966187672271419758046456832824703049806295752649197604634546500306420086960596336407322766955971838447883495277212298170823723504784527363926336006441345662013859243808319589169822311955059593044355219713664897159821071256013069787063249310991188388342216707820158820042099267739224366610834223591361530121200885573494351726285749566304330917099838192548533612852237025166824870570974516865044072609640783314679208461716184430414254177242879409906190500244248502270458288064618885673198802352913523981689889050345310218742085584578138748092908146560914442679690865919829896441892314542258311988603772306454609931602552333657007053485386216075301934185550395742212637144727659349277328289648823022865369277102714114424520568015689896114120545307286853442821555932559280208158155228643463993588871317475820842563779724464788578230239332272878667171911872850458166455744477801134791973875900301304455293404842463431948301663466073129026574058209326366908211175246139978580518622098700647739565002869236042057563839742532529681955973516122370304031362617131162622883856876949796778999811669177544310924290127651914572021186036441698661578374253374111634463311061402386375860803955476521235462338581405887704369706984487420916127814378711213547426133156544358838019839323453427331535905567863239856651777434600635099659900378651268239918557142932803478400810873062191850594629121676938119454319079281027756699082099717757434586515617741147106322102220883416707932858170138291784175326233462179721836729363049354849724741080475209562561036554828675032477379342545907517364965038482590443234645447181155660033136634327706504144797832807505319575946740388559924750443665917707336803142356072959119388724244084042614105983895937803968829998638286614679216242943234194028468515622297847727704560990466566657125147976752582481506535369231991062877600320168901297280384130589971856078799506151448003109994721872725640641310257186813954985761051718258703602904057581766245322798806841917156945187299651600682024078457759579276169511165053022875826385512169233819057833514156034478072379870842791279878922670987887395971900916933727605070694497470578690907064981618305763171155924602743700419668663468139102068299911582994549742271107347131349825674610765856608433156467248484753013786813952979991652897733620445918101513815014259457973516622075067175327436001586032672087914615467480729727258608660123838089846174915906815771003781103444044518032427713349637000796384830949941316193831188296295338887357996824714704635451763228497188746134214065521310079276836959606934587852588954374744628849291282604587554095027334909973533626027651737365121146994256987719301666725888847639905916336771849065422576506450282721365101457691436996068137966876799873175211182014567438896694110632013806015716537262632178848123840204429801478562902833351803018935980844706661750841168369067966648968064385170989716214338630252833352587277685459898530601333097509336697045238371223271327023282683013848701080504365269700988734633216544625036323245346950546433183392865327007763026570123218550396509849512622522249450726707930479656761682587733101402722843254055780887312643176708866025601718849108849336104634566669705809582693702341048615635183534919383815601767993775679827276482557136599282399071736413910350160577826988722768115691847764501259648615070622585507658753768789725557749754073284573532957191367100671590106556740448360789140823271007092541937749497512757998083162677860044418592956947880586652394251848406415895489034628393300906316249629119565784127051702652933111153579861701146455350206143265653881993128518393119948750965714410620238755201491975932450483535276153099631501073933476902728611006356636953918441544385448061661588989894935707091805448889548541625735089521633526904281119561849941723731583196829247635805795682472032123125993641549617019062590757345249746459078694649318140030544785466539078150292765742353436353322459081149426464332815715400392163877916862963339773333436358414038359747319719246739662750633669240707234646005945440471864915575840360734536061870507699050082058530288085752727510032233904488165158619196396219735426573742228374798322546952599325781342311751538605244151995552292586715848256592124231631848469289472200933881809231325661100650184047728141357644203136190507211287745879353000401064339732179860585735103927055913274759513278654007778216774933653141928775419968212064221346379905123046606587466337943022036446743622585542418874478353380014185606732559833683149365461113032252448845529916341146366423399854672349786324887331626285248372220632132865441308444814321029475755156150676517382913641480029038616722796823490313825296533095456696200308879351829677478038001415979920799547961248445198933382179253932146571822288279208645006798731621645353384697440410563794106883241206722241507723576989074021155519020272026773679095375907276369209758286355099485261249523664997844851703920410424256668429383474230958368374265025310516145749089213975707151745426686045539036197408853468518003622369559563146332853082337919909876348997147229192096328185988397803888843341412319490189631487208751675017290948129388979943773729726195757925102727413960683826904185197589048321826832625584327852208464276981717963974439135964499010051823038401882739572378102692833863007729548598789406162094927476807406913568932829675637849415725294909788372287021535072018006478634438008714547609871074740595528579206557178152911398007929499208013693325422255417107053152365285730494969010413360335714785971807247983063573174642680090389105940688167085984797266479927156025834972210510246353744202982769953363354856805766826631039366418593392613155429333260999811564099491471517535032255417538860167034879651259268225558696408654825712292658827722533542020979550881650199449724767930855991770303379593836543908111061212014995504215880543665594509540813237727351275530023352836753088268091020955267067115444594621772620041433872494963550474281294224373104054290444230676416455004151435314588679643835888551869521301926093871270823544803879013640395753497261104021205640568849754469783137537138815300782149095740946139586751895203762377715296332841403503037332411675770455105977314978832570520535405439993309562572988992970905229172941991464079968528751342689364138445776181655711657596929445311459415845919824847046432464457204401180386620944582950089376167707732166974308524274976175388767920370683076652709180387824370817363065793888387532830086174624271075145339996504943613884874825739760928293389069014405290284208035487778529427852644124653454766525781808069797971760719651342424881423956674672569598461406703564954095190443374625769812357776358300465247140555331694730011819508636583935139379683085570001913273364746879282168052491601793040247315470599460236260216152382666028517621345064889349012560304224817158682487266516417385922794805784318828559618815559452812418821551627156216858621543187117991635811224107421494051491128468791938487801592620720458473741359221557979365836360419453100370939290019131965679312139920906368277343493800862128127430012166131652837854971256048009816990784931415578255978840291121197192438141081074353623899954720788586017143192562608729818211256601993195946859843271683957414853713366644738208924954532864807303675481583288507955990953774550031727957324612320114220092037936654185131262982838209055370299757120637080451644063784169278414579728434053441827606089324251041591058016585462795792449145550157787574541144644829957778516625787870210971256818167916109049494183128397830458104268982587271517251851672642381528614651741715479849617082690804877623599695254187736972060752822437008290150823305698788796352935718513433455691122495791168978368431704474487515203219324185651066871579286827641861091702568495224435562003298593333030425640046987335078948296871956383893381380410719242108224871120113323420513211641750423011011566853005582703153043339581905134875428263476323146648494457815817531414372794576130838453652727388569311973211268791611268795699709769185608605448181716860099739548166798649117602255635466543353118180548934907796769668934935448638504375961232997865008391443198257715739328773047542548878530604518747046479288422595907550932095915385465880011215311846731241655785516802083350825471806791581191353210736054034235772052641715547686696122654521770237011909048320367022837708578743459712287798273359157871584583111789586240387047947275881449313269214790415157611461170241317201093590578131995040587608320949595049756260007663034226016986482437512279334433466826062983755293675144134735677205563288269492583829238647516189602578375874330292900238076241872258285143156192832195302066608371733849559231390884874130981277103017732206399514350413438322240364182222358391347361829645725136068632154054193763176348442690764159176000803118348611206912698991778487099608402052313115273308369953946355001182011037257583923971563236438630559905771136246282794989750962758873796667437715510415150831305343849428672460314035221061825770470446592882757102950940600140584424846235621514158377180677905416351488886225958453455765791207027445247916855344372720417601880487886733166002944910599228146383964257358959741167306045767487538353258278846637995944411502091328199321032458429355979522902639472714874086134896963840392768403590968052255936285787193096583215076641350599660038929533923144769949564955648147467035746223992706147445277030104517765249202241249152818265024549521266019551694259048203520976261120528127355652913375673408874821837888344457409400874948715262162374918562110999127254755000936508982873129716502307186478824426707680336177990481546755605224827170376716736354194962411491075192021081796705690601947056108635321088381538655257888861387795856279381675190138835403635380573641468438562321569106255084856003333213329733674209953704415783547568703591257995163570547211990276049312383363215770803851617869819878353470713807898939286499200513616002906168135505444531960551096066433238213327481416321061084765860865886265899694057732548510004679102546486682729746833897827304562519339705156129340732947263140875710956620889101392548635595716219087725439555333062209231900144649055554134704623100815706246886728345497737965391660180468191297101285213845169872035075692523276773956657083069111798499208597992137613711063315852507705233394695096420497264245493864927782164073798827353880341894685211688403244044294269606305819543896690742095089998163018826432514305014503667814467960677296027033193435095729245603043455480673691544138807687882715368167345656964438593099499591964278526555728463786676477844320199971564554133825593967414857464711369676324677487564716340712737917842294594605462015311450253212889317390483317322598698525638179125739485823716362632464387752766226289556038273523594279028021967752682271052431964275021656481450088190430060040582235860442174178475464217894411479719465703667696077169906485056244662782230021343847766787921005760220489838704402701268246529077567171421767528871606361103168685217101772058428063371169908702624561576464492392885887619730766639579802346652666100038603063859040214999088774079835234311834973823781376596042979819828104110627209522186924296301030530504488376141821909042919380349626526989449186597352423902814997497765653505943623314876841750696860584335518839249713321146259621141381374655753029130234624780084928168832390724435032720294404402254588910943394451160960755696247760576271417147343974476885362119267151715878685230719993585156518099878704111920624476833115625570142354119081385177706553602371683559115436641062517591433413157426229102569156853127687413673441916452302649234345962760287529377799551970388864472339185022578492731571278300308733840884749299113893276053513736011746033790635936664018847967821309518685510254247663177545741025196152199478024356285319318845229737156609146242524350410693521697050120833345346606785542088260986994447241621050414896832079417249514917629352695106000737696518443603617653885433497399672683085652334124639709432064681168227274193565360939899144433047050856050851670546878771675555898577760987732884409638669672171118371958956604087335354018718437045277224514664367977841801556230523695471707035810736154879898109852208592271081472507367451520447346419279196548698196171917100231752839764856794527462189248799673389531002854763702031495861511339010916727111020037442665895918793473051086794360603604299047120167530505981293470709392974967440511212877111885566969394146986658758241944376577196735898784496622209618281022990424274643183687750996451192800489758184900279187526202097941154230672796417064513671555343931430211358349543544339336305270254360400356873476783606891087410863916041388196898605534343999631033493171415521906785090816463944617365149443585355303413846782632082326747385472430817588954806462000007626636880546288162029287333194314531491043582011994218127192865419406675454996558708135650390166633619685358841426796637807669672614922922213020976841047600730199158702491305498098544149637076727206335920436090082317171161152917338623583141864600972634902478909053816682073368660905543407838367687244043407789323953979817602465607116619834182938533446750679722431701106943143843602344441872602234721234654409785705901700722371732484324570314925412954885182463323355563028918997471140892265137799153727496675021427348811826900626853344887070116735085834843210280711513369145929113627691039485074880753230155184107530758847375827641715298607852573145694066723457428228357536504610711187857373919081322167800944491468032823740291698759778549947237022964872073291935632058264409296862339066923459802117324837894027657486659030049421352611076376444982052615847704491135038888534002669798863454844128103378563523433183703556760459294237323155760731172255832202248420444795830598788025748176489260952106452048923325127247733713262528242575961726999108578132615000756487840888297775230032165822524953996433053178035328431641806386152800913063345254025747185786008930414602875509898223661081730363981993266515061434184669899696910756267002060461654501377250946438499007124316085398174420191308806814478152694658169693453751853112101465517468076363126151294603611470449294228954635798299513812521765621612120531803813521593369717145269646580564600642390558531915423661242284131929806034042358896840438525026886192548287786931091731566723244538014402693878314814015401883500949941338445216471269586433270807617103200108587419374940997926886289035725343185038745444927749966828354525519681729757498999505389992777437993347137954703154288074453974580984160747921929649495570638222073606029478571356682469484101223560447340164432046499957716377704119150707887525156072949899887993415452218969363974780075663760121739659179923630375160226358619884475466547798909142059615072200175720077859418794678433556939903076200844424197768826586750668580545375978551807462662531314646188760964209277336422097070287514490321435558264051821493471989947335468057008956475335557911883663551806133546098413469273142529048951086765441360983992618407658421888019196299469612368800276628941548363899327678967560070681730240797031999338505428307174058627605131354208953474689764013702150872526941071097462165834884650031122610322082860726839953892684472525385725347544324440313751170467897488566891959076535530959333404425921506722700338259816642443126646526221790006352282817120859710962150759664294298208244200439278401728937629439101062135396780836473846100622114559259470001228871677903140676451090256329608536568255967853720471073091490132320621631754524420754534871393141742626613889552391686336810301243169338584052918709636745771739497493665940179305768686551707853764217631563640884645234761091667933939579582118351013129639704659315406865079673334091276388457424099261450347595172381685734427232596024612505165323304511517125576372470222425135114585068489794111267738425732905843571236016350834910963359088221148657790264659741067597786162034153347713701999060237885318163977480910421149337420780237866272380057884743640671953275618706852745973237124603538520023585040739260883392835521689454860262848697724728311470869883483087438814610059262062508139346806048026204413535585317535257599080262232871047641136272656267378316714487716838747666887757446660324626699333722200891590654378553310814828710824463227248908852324705871025927472780147264710503424803991129737296568226832769646280953423969170899253234163510993287907430760530359531177557616437366998739143563131759045723868746389778910242826333551871861426127624561051341839448905519474585745643584237710187123651937680898173010720836541171148695720356510568651447171997752171487714616131494717942599374735966186311003619222325861158370371618660491578964314591824870927863906782833015364625095754344675871406822549196227438845546764092886065836503368647222472912402587578362280199633394735195452120858913791759614143278796566498792993203108689110996533648655609784698661590556574273547947759374130308895842648073571931297842564915459871271819785932017801298828872014844370970632848342073040985295784153890188485236372553443897798215723349758374642578458121397946854525710390791762212914348305130465214878138595156164877513695844322725120091802978380779237782955417524771495267503384413178654614252308061051819296109635974164899357926781991715342671506758030287208589203961718454200674722182702930735780752703613779764166461138653533171751174727505712067625280873408721892211815645238190881699210591660657952087267638621183719525802295384114380610365551011410258943567002101188274416111886848624772618621683273017817714168095650965892781646401985993438124425441676076147979034273769918973061148639548098855933639124242297738632038665036145981542656323648036611705014975430297358768955138009458855513341483088539635338931427808321600488958475545815891450494378702914643873510394650555297903333450424135441078496309429631328232472371720396481437751206203857333810537956017184806175043896808498676585493571070944212827785975587949264481033639405206801779404740958921009822651648925712608217343856722206763096238447230043950590062938977289753832603656189510759661187388778506107261325409217652186655344060125724680233119148059397568590163270725961803983900694007240830626465514515955316226215770539205236006960274254332506817415876033711262453447322650630266380947137802630660328010229133776488386429027514203196418264908201233996607980326464737094458240873865645539330095327550363726916657033977218564868841658468456914168152955021561452929620944061074087774718936537235315728770078998752204203355045447399572517051489916715775557441114014713582986151353824967719868619550786184595365232179514113915455301099333990743109841383151440328879799771047005229474281177100367726555424076824922840970568309586737374086052355021077275908457866385744912218539186375364749562225494311945111829195145343655617242063984219296001209386973121211348812558371794486091839533193658349802287688386891582679401410139186477037123025360204107539580850974211027715158898958625842361502595779025007789976004158797356369824871153045804105381950268960178237433058953818922724371950797837015980228017950771327709541273060060475942398999535905490519493473785539099234153531192167531692440099606434147288273163630734551371919262056438427411142816620619183670739350081535711006490106054756129100368924754330477387802053146739697114060254388591681315781378769481536924967389498464793058009436299318747616628590199450578311050477292198038706242339863952707482646479706361987126139204867428429545982368069530149304101814746480642122240244809980147886880201609553085124917203814468679451845436319712869381700599592459508415461394836029653544307693682392417087877324110853157553547609136835214725270576588901504270378903861960107873203658556105802681836410485997015331992705636016847950692830554907102633781456903433434346822290283995384375872888871358739662590995731841242193104300089544215078502996566987403728571416869942331140418773895996809553973895923234219414118358868317995609371442462443978980662996563636671003900218449980818134214656270583857558227449513997701299521415825109767259281385206657612191133700029236059670483810046800999315512180798431684326427650735511134964255589253861688717717962070044316670265127730068156744031779787541579479718809734856343069006503163548360554716175234242220600278183591842324241176872852861664760634058294680476111914795987257865860267684464154006359494613744009786510550856106914515142433487815485915927268763117892914542389953818681791549085117672945222875721279747796729172757870076556354829551194569918236455404187246371340875786379565330307562972180743638201698920449919470525926470430623220466411240674179354298836781155874557878886545011012094093371892068500567693094843237583155838612005086306359150565893626768386541350772712024523210352205663377055835205618915339970146927031590328545057258840217742700840417738473364292187521943723508244394550405320195463035591821258659731860244063837767420705930344450675341822230566375586939516541268172006772447103956869312530311783049879046672380342237797368987636521214458719807799966364834756560780210605818314585354981089477406688140337242027016169410871549624043418232664896853185483249952678293636230793853077785392953806868797329818589220736416441452357909997640533917248486208361247008164783091960436207029555227563600620001765126366935140427363352117962817419207047857493681975693724453660246527714724301439134757214040612068793257684066721416834505161677124362182308229183372799305447090659265927160295868062795104562670844718374235802415841445177058914546910354585494047879652440694195782157063908771479149047211728819833864215232394932227906493920913309832402173692886526336395516463472336932763274615295871485060789184907305281202809768543419762737370444917189863507503027369985205744529561170819044432327925768875485891258941431210094943428367298752437319295462405828603158390408902322555554699829126775462983915970293964930923637313207927006894703459441593112500496101061284270984840460863392338539664081750262387021612392938154988159037346761376199831705881089064012284512713101339895966606926099889755654047595184363348483636601116536900394438054530861409588062345853472030491173017074002432981590425839129750198617657897564365499150800311527173933271568439640632463835114502931447668899106175832278752680117394426370363423576049809700933362886686158107260049473794438631927911714981627145788528209811063077557892904913756616718892123279894936437697831117458686226960785552220408330270195590006750164356393741404416106440090323856330028044854291096238865006696429558548728683712706284810234114359750657552838476138904190091615414830489993456515855332770253263319965033079777197245924430828914295588966640147184273134042652969224064808553631611062027583414572321889789788117628954452893786591209116354479491240507378673674916110637444606342546314658541167824249039404479189159878936473092229498628481975515448112311008073860308599536459393617488964996463502358800495184005215022203729350661933938041427395283044452002357822389912041098771526710168089854043775294047471473525997449548087402064298746076150488493118053554987079021140528186662108978620835593823801357731809584778091083833063706067772899111132488728776243919625764710839086070685121540865350475330464381846629951054573385172121892314218762585095255831911293265639980872190678455634637588614114079305114689163131462671567138831481566417335315883285801865530128075895422006909183716671682213874445837447686638186902541387736324574420157120224728161511758902226474372543976056376402982783092776632628055460827049679970422647959122712115664601150233753738822400853226766844245145423968331256249370827631927930844613922140192912899982813871448598293113095569710301605812301248579376199080717968624517380382212613157253673458632968149964189452049835291429103676579377767027264045288525345187519423718608440998390816856453862659511135150806434935993690698364165800383474089566555845356936353667198190691189723616737534501109843311449757501640192493561080492377489854005397731021528335647924497283868508240863399328942890492095825988315039643041425364172581211395017575190847276317432485117483040599350249453732629180338735605268841892746525026996842074242778197200318849252277529081886197850319693475853919530991827608648231343287948587386981578284586945787812862309844783766773568213242243146666116056964846325071156856805269573649417648320231731938785407642249173857232997098163870367389241595059567382104151580074138975549200083778088550389491180123898977911036463861766332928250743263318973958807001267862456544626946787814590468844265627314150407042492849001834357949001963072170615901557392027346255410319409647916758172717949691116522716490215790005953977455052918663743801318024942473992928505050748559820858429149791028778370840170021349605893359388354737275538683734661284068913662128833678145456897257851823063023136337693256938155278810130051928833938077033443172995361969133966242329071465908153017826439499600049562049543645914507995171990479164153711370408138025848844753745021224094002322090315528316975271477651588308600328326892848177388903521649239544729266584406592787695737153689939129908088335604613066063555389272330436904587752117346429627698461928327915823226364778014526071384077529621378471147871228506855022343287116137150901285085142655112708245221695154298819957047645475563248358089816284007873014828665168400414823491829196497015618066505335850329992373474638953197073998330935002870167177913466652078325892307369167703871546791105351189101391501504336198944983130369638392470527065588788117787239320419481501912625132448705827020099195053109202259363008482325689448903388733521381713719178949346903522646343145914243732911800467716694977530472789135119871195662500950781048104183240002542602592122498992936030326987592818934079262754238044095602547757614525694016577308288793585966063374763254936616823546453828737411363470515704243609593523531186389830117478097406441765717150383468432766080058494029571736334323659108999200475453322808364953522107267926699245316008333115108299928960821054420598194484460053177568680286874728714019124591480926247810975232215365239256322361147542377052215205314618239136496430767883545986921253680956166595787083082884043219637761782270965320046335278307992186979737667932538361516039945367351004859157490394919493562417158054754133321349734294415854851448333015973106083272015183543292384999327413534928426939518844847889942253749902225553112595003399254749765250255148326379198285613654217784791600198865047629057431312213591176928433674999805533660393862430306390686452412038766651913992836542400529755354127806127897553381172165654869008740180017401773351499520052933513637233045565420426506481203944809536587815467149123734601830218432421996578206871357889533003772573906180852070771773594244105708731393235426083109226838449230884057754845896982213226890477613264432429327993263882872395955856489037034900474211466287847973044036109242044115342865332083693599993065947445014058157300918980595004418018783462202977692346069664745100992046097548613256745122115020994305141357534013592138516116606799257507521162442176363818386239015881387928322568785291613787021605296288194829395153778183912141719238741000328620508876267204929625286177898443686152366556890111828899402734843484532928969702680121263287194778047670402138540021873866748868323986975633039863695616917910521013542565333543731846918055237840655895068984837553343636887916268489683033136187282874357777854054261036413374192812364668545420612162328642573420815269826880428947434955684261927672380801436963858052801390330080535985627413098084508437713580186347926610744404226020971238014051840197052056616449630954704395879634647197268428850487676934399266818114751089905495161649751515679893906082603199063503154749264840439105507923352427538002217438489021311681459829913123892885545328605171048321440579376567737327821061682335534591595847782362682599356412706040000022197843885591564977075256308149890036326778519622875199724114953375222261468257061900792308092978586160401308155521739076691723599946996185264123203469930428643183949305654440653296392039165928415945801972456275569413270195665593895689315054669873034386623350803079535372433579723118688534975299492442117394268277665278617511166332829353963555506865624328432957737492821043523486124438626485531252766022435574243977120530287159762578781415425405670880556885909973239461288653679493461879603009756689404569660778466962251524874675557427714939613678989751520238193149253426207859441219428363768476033224565160061529110691451361535773888973978037254076205475123075160585026644831303095748852938989637107661971509345032827305613152358395719003573683630426947133500425961529663642823555474935008699403017750920140549958374747220391528889590674821405669321425677400664363557381481138764466313577134872241938018662146324740381747903810177178258310689713828166576160402845096730610058324899927055504882887880231241436244837629549049616265557459762040324369627636514543388848495025405255532283667186348665715937458146321066926484079945812540370669778333837808446086038256948113371413052039558636236903789005909745865951118136351189829717447907873796622218098480146190335721574701585916363796052976340819155723469950281866139659833108352960209020851262715089022896249328746511165636388095129636190119812168031755522234450562842335127100458692285462718519807403002638826524815252476599832852361125723995695493452535787149434829318721882881106321986282056707162265535791603002916007633577460749444567468705995957721854098920774056890046916054492890851215625766377572195315717069697028397504817791566603199744617810578313685125476602179467021025626454595903983528951511618261599723393033530435265823075769298094966949592048019541095052312223237015332016423876208989114233544767327437692607010602722910415672023228191179767247291248047912241259178937326502722469561822729812624323627825396534851954646899936771782365960210671433149331420252498794352069013027697132933747248159209769657867535961328832974634845505892769750427668334930885295363808795735688224792601965921496678623568541186585573582703651573000530078159476393981894431918478504016964388766646254069039288264552106450783279755049239758301607263370354466109407294749538070183466677868169272248897786501684114259145687259850874243356603515448190421552946497363749562534553466587642974683141008432574016752859067765800653673088115804830647352328468684353354300316296463946205438252666506886163853030830548935341741972278760192242355837977662533608511642326344869029680361634108701393720045489128528707572342461812020766376525819066738009959535430975930874896275006398796991923527895533274209365841832189360327143709996035954639619690482020918396777745991221982696170778125297749608295672933757369149083606491122890475931323466472992147979416995024867629669785455083691229784437668472789100440008422579442361336632558248934190408443873697779173148002806809310403548269983568082128583872908597331371335400707864960629820146053181106760375020086419986645393373038834116279901434603767006576969796428730226295322072368674808996167372661169885155034652285470727489296190244315469454464742951719306212506780285998073913085093683091421973191083849958306673918624512988067845964315943503979437243690930522126167639098845106077500561554912291698763591265415101225371254944326370286468757575317788746772588500087953973596108407453020245920973551505675533862122178945637420005613404536828809480616813845761556299482610452052353462498129534452661994935522907953195560170990965091435197058851548860131836408071672587293510317974978519678538120594806831513840592146544752770241932920307634224133797447049894511334787978600699336598124763909834179600832740003720009986352600626715880654400602953584862679828712703146469277765688374360351961431760853687621397280712700003569233836885007156502670131892115322538581356478993028841995900050952997980330436516971293756932891959118815925213827685195064918163880222213414084127622145206546560687925199282534754024640062130108613551833151473802352293626466380813620791799313873508597331620232338641440614308730672738962899219632418222464843622106923831453974646447723678867351331008568318681555866269411161718745073339490029708043508382661469913022775841162540940063231661332990802131148347677404648043751434512172610923974601126100259364167936089195476506235123313465221709735030787519079688466483039450254215920895878473219340790396888646236685309342143276005915814070898144381239241453575152648252526517663934768269753233321541117931948542516217630231764860488704983331878079942925930150905437859585014012853772352032367163328018836867545985565860033653693609106286288663959286642231034909295601844192300090419411046467240957911035867964943476168953234864361946276637348883510815839384838411948761332548435954129690977567466396123894750952897891583362803971380487033478010520385586486966658534370506635811577646749547065735453910793530824699526618056455221387535823617350252631544900118421509663627585227389576050076335430531613818461088353215649666035559721220736638961558833584701386673914363973765554869822084030840205530511130028890168561955670599619096614238181655457993492086612517497627716096236215475903532225086240743034402486711891173489947973694953277314178257329714658666705367641816513229865583037332538538953788961190219353533152663032774246326250203450765663587116085456429521949403989449261483867500682438624291578622235089678951651339941327878790259332011027997228857088902123971413504924414183958072564852949644973759670031032096531307805114943205639242298265366467754932133438174868264069316716043458374424510388367305002039769152359159836867010028523071818354153765880048831028490729052143414704164303337525407871662435575461863986391452352746468705663847066796257908031159218125093727571701171637357194921647604020688021329843889755765614893729694942080863949996278935157650902188885746325249506196493633171475803324068805880685347956907262452152929447565723561379734408807929039836922869498178873603673245729524266682954169440253624884398722501205463456297572904248601386508255850781299134879138226176868365291047431472711768606125427667183577481596799047925984735780681095319700396836539762226342465763878797316726707740773172846951268876424001456796480406564911069152660316593497863181465923868839511408692979719267550099629686534424740378519380532673377031160819114883872752763540790188516107803528015206000202267973083049740869666085377232861691069092971262299388688138150801731959166489898030208706754334495324391984017229870101591546999502275195790043283691159235517115880857318697187503020201060937903073822606174644657181409028393528136553380882248232038856680188049605957952971431535712661444701657661785779539677742364991606361720885933544463047871642594536100004452446712622832432248180742373348466126558844903410797839337367899178433455674326731792676384343884098479066480385278026584632417303137630058601748285687218641138751496496293707711142237953759463498881975127406814541354404783799085814185693772592115706041446119562737472822182567412489414480611296101837475072566985977430941129490776753822479444868095050131080980106393087546889727647298690509849849732779252233998736256698020097639947729293703126117240265026722907811459556096511835968401743178770867639789673346633202296203390796098759184357028812275833692520319562877277971906030486929421312452406735204037359281967654613728295337601696364702833461742862767023024379454891219332971838755494244301311824039415768703502719244917821074794597565406472421445277186688271005934149907132449362348857435890445195301001047456781881284253780912458203968560942050335000969751131130253885541986537342383083766033213235772953365093298176355792177357941363613042309691720492870700833683554801643506630956936599536655415472978832765994191543518412439161391503448892474710130805845910454519238013947626280121915257366254430060655490473715600849942061623606463293553700226745420141299515598411621086193051749938558105462542906980040194127180342255512483772971779398032685962426239938446248396230222046721775694438867339979555298051542867919350163522909920711185018005066619688777853972363461886995007655254506162805848968468678227762126502702677497011185732668150934342689736371634338488590240000081451881003805306037500714000745697641553458863774651158948135260481132870100479098909224025523610061684437965379401626665839370003699369655079535870062245537246116061026483036291670509562161839561171967277979304456193265288434445555262935430031968192603024774011676836471791538138918831176093012537745588403429935713644364225424511459549937061085602317349929691652612802250688539159247633655638923560518882436803977676317348044761905534995781733597411764378023067750278406733432828265628423044571281418300033083017640068357139839653447684345930135833278253745981708769013846417635799387111297360051763729721542408676558703918097194460860520284239845136104265454926554399266898599424388977466480244983049429130455748995369919365607267031777504114197949766954358963340488816441831101667220980120279930499233754860781867124333625335836125630245937607108841196406612534114613698450841612151568443069552796705067983136628463477655895271979049517640548350765319212845446056252956187525599010810849470881092074463184262342329001435025482090789292359545906205622626889484362531179486029029345142645770753635186212062936246458514504509034835609884372486377249192472069427492693821267686264068143540177579519504324573679771070361056401304754324466084056803012163119783876146503345024952530109074777227217961517788025787344219622839900524150759534952346601578080141779543666382044759467599427545246492449955951585749729337299515047441860696045239601626047044167223392201168030723254724119966909726388459104806562952825736591053175396737777611309462532404257876544789363951213464335394740227532714542750343920872704050199590133166827243700562987460935068087814641150381930020814824896465430547427539464207389682917057007604328367955616887822860142009586009564774105115509032972858492842840751273910414311661568098962908386790230655811166061025717785406469496495411745184582371176924294384675662182802818148857578707594806118857055512347171170253318853963445122234641757798769858416674661171304097792665204555293854635781591041763019934587606695007975678131531936273126681774370280396929932845073170229322639047909059008007383041204563205776823904010674693389120324466874173835170831810475435811227321317475215601505788158880608762245791178174390592733786342690956691453626886461062428604470526517945127815089968099697282678035646234821435144037183708085458173456215399531802598760106765766330601075351691782319156042486184822815433362130705176085931400395620516443601142693303903634359932095259864218408136286429511504076000144012257476942868085640160465607612315336003499574626790319733327816456146022335929638925905000724940690178803467184538260606205442451235789893997663463757339174173835147874171670740144478365520607532788363621765994843669885586788896844455873953582674853747862512727731543012840505423562388567820046921055628653088862315811751619777793004035272293124426287505187022954821859873528945183022620509268181802035526749592535480514160089447009110195735958150905472228738747347000652267548937595969929831800208014676462379824986877548419855280097797964682043348809574804515873009469341364908510517407804128558771655296604954123204004601157991791937233304285243886282581331123966264340883040566529268581650091291411474005306764848982042391744881688383094553695854183358229934344419977299667740548676486132814909725180785783341417099934139129431246470991350009961973531995523897060810714664070563651864602429057145169919671084382374156108646289891281325784653449430765872334851554812414222845560204353338355513368021012148793837002124769866365886095438139270002361333078223252085892402447978642097544276774663929480570250239080702083209779623302383696373193442276572809234096598560055780008980878546044167389037142173782102025874435573389194144073003110433161788506743501246825301494471480095335685611299717253155536477397005392121691188041009608915247558231048723109853048674950944648196782464869150311343323269552996226175851547748860153278066295659960216435423340333314387348554554845531240557082408109580937459775931596587329931396844662939249889433831291656509128290032855662669753157241868755185817930734803501300579514030611787064296268598026001650512184945875450673699423480701275812251682949832205500862725186393280093171932043494983066912674247828265503027909879109995794901639299033942229841207387485191441362967303053931748887485863344376758729181735953756256159323140070562238442907885137489115191777161394990033517573968632658642836634222872603976704957303494362440717747244354151311955578155529770571722643238441456572564042857650888681936703299526634582881983487184593243294584237896339108426367060769550694111395914878052231759449333121482320917517422374699209686738767588385292159043576355510352803677342367004263472842057053704127308212503098565683459270604553352954587225861537396563321345240695312619757513772849395458421367323082863699606773712405209496774114707426453016430162344061227766851219828113014304846194132924768217059839784264717649828874775623416856564344107776074294117316441598777766836792085362528737352539098090405719304499330136501765046731700808619769051484528102489183763286097883163730441292465015697212229016295131266106163186657824532831241893542571301918380874279932975708365555635567420404773420290209972438151884282846365753343051413988509466706465605600499752058335385861790528977724406334328542479519645034382016449757696766763297738416678424793515996167518038340489593216949474570335385398001300738784016717120064392185265712496784703598589295011825774086391964615919471060049697938898678798685907856787675511442958801330489517900151989085570462208482702441320971610136956237360660975271450838334378299315723118333089714917012099334375154882916986926241845532549051358546164994288073650251496495885202405896629669436105018341895089351033076720310742227871262229642706568134449537443232256467738990992112734407496881977201253682447570855305886070952958863597541807868442004758116291809456221786407596901488392149957817913314188939528784256368316183054200980690300616870566503760600580909402736558808287257069733366510650832467283419889662870720859705638453425926704236681761235391016102849481507649093861943857575098027973677038240483238821002998560319975085841607395129363401273191605516730536536014122324386032185122658527818257963645402103002715006251255748552035107566710158001381296392793556495526529281471205395003412737876984022389682092809601626637772884754722955249843749221329854381174623149183005958849486066749692979721070119823999482492786513212045050146370834535996634292194421099026582329679030631369631065734697464100051833113280502887905864889996644097009351032194657482646961551433811977212930125977389513581372956675678577551574652640340559341562142899870841070381114089892401039364169160765533844076004857896520120024164559662357141520463975250876293422204694078967309970028004594599071569838997985217991114386465421784691320937612185095022953523288829520354115985775352656500530368945134391763810793374591435418341830921638016540877776545609936083312846753365648554275163647568410968934616057745170937656267755428635286607333929474230525324239069927811905831290063793666841891523956743814851641198825017151084877149890484437111841986820894230443261049750020673233128414269420723348071743542036416812448927941580236706198946946282719168705453562574790026050124562546442684495122390248847435799430380782636478254050782228405559590444394949604868798772796538744685473892379441689791050592816716947696645269060472278076257745755697228136370496984989597465114081448704383958234206456255983967190561753747850180186242033966262588742359702438779858177848306268508989209251939969357833356445767434749908588244656130592567212884848994144027189913790584078912916876049431079438476756030970525694278433413591558752392145562055836791674942529757082038019548651524772802362146178257399726617089024513975263259133205753039234195340023730944184965945170381547931422452706808272601802705081811033440343131423168594132440844925866674245700049835611067137610369725729099334345256575687984017073735454829111315760506174590866205025407867586176170770870023410282894347554397631404444542429343086303017530031535139149822874217889918872321572542940517964897043759129269839778923684287263188453920952096979546005382936830187320044628207498597874755319945128529847350637407740814920642485580067816201525223043955824013769794263736970348043699804674565162450070644927870877771484653828807174311120221895315589671310830315356883610130114452226681517126394544958358277993624371017074742081688220322876109373591844789728493612023314701949839086807348381117437742973990721513086753657762828706537063862912288770116131252767565107118894140671359113645754285581255831964505660291799950252707905980316988334070167473581193445781309588525716592343301654781323640842276762228249309236064806443951216100551760517800032229475809027258275269403728728085835152281692617521922710260925274932474205137027984322520705753493041048368534250373811394892118789213352467444436698620620460801537995894944996387168284867526831439615507730779494417520221029140309944995482829056346265309831192741101524849863904724055239419893679151597905077819442646746387154521750625113107319072393355620209984358376081590932674723143447315279306100504380983081384728820801281825252112836074555714044570569879022626010419275295279468659200167749926277093132866421219084663724852910339212099342820267408410189539428415356655003503415040994652464240379053195831569652760762635542574033803729297320772589935848664203965588531047957083141783484719337451738743185118282270316133736487275650684277875872093832085347320135169304601321686879930072282060589695849218943014985993369104443537655032777940594306520551033916780723377645905463610012936107930722043890675890519181940094953006242581202307649041451758946773672535761933924992589771711395141368858905083628992249418463263481368507566368205142688890856217704883327154264775970322079437917038200264938903759840013961877937685034769828119830823403301809511736614270114519779089482884661333109455807402593778354374651875407614446567378539793231972739447687967143679230977793029151063177088085649779533326649398353210100974168800732788551406377640642218991239353044619550942348007913549524427152232631801534975888161762784486400839196220952449474491678478761469131154114917572246754412303162393390898884395125602829919173006065999581862230910583658960067805232431788553355477325361932079697902443826554468948162743353173003973928754682891325635446156528298778458513964339216986653292021697753792766123295264493664035450374483143782124020922637113994889886390690956226682274228563735836654077480737763123927529599760670449671802603734589611684440596885917045648699874110525267098664583898636475058136474671850351153828458349153093211773158719024502859893375993211804291867585154870783721379154801638101499904563216318742119743186077744451246526187805184590547740780612263559055238622468445564445148062747100672401586343842217356288911098176353070404388364984044334909895373720784197606243578710309370381278189012558867111752426219256436444115205631677231318420452877402232469972605528277105314114265063679582224718009967185552334610768049080919288901684798911991802533684689075065045510624741114225004072703594236705680861621830319416659234825213213435955200479612784981668034041393619861569547105845052213662401406703582486726621045181389145275705951016313985066096093936695562148507181764010062141002716210604019058676765667897556993000163884979142475104631813404012636233733936133000753155843958488834560245891699584153374175600738331541262005406106686596933839792098614291936557585655330202710345024397171690138676462151646684940753466379355397929113957020571848199228877924368864952668738992132725576646740928099177933140830232497301931194555307877450851485948812207160871474458121296919052549854452344834423299400018912298027463684409273847327556010721570157301101735380265347293062491678948984957441308039321328799073521039382467453005977100690788329541855838460081215569523452813136970282903763931836231761421389066780053102075438052136080575539950742046678550447385355559639779181514521595200952626668846315523076092594066419811071182252853316662918838672260148144842055280479697410863092063583223964625541619063949036397442155259393138543954718593620229162388522391176153432106059421525122299244545835124415504607815948845264958940026288703345004382086586689922512412144823423471212062822544397435233261196608528507504655980830431057629470769516721566793280906420788309927838951641870924908401613207614454582826373088689322554951912260505808867550321572577034653925132034414474166034045383297409795436425928654180992379695410896032106735290761691795445333332792848978851542469084695781936197490428653956797046792067551967118401818533034397497661568654592615594338067182440203242075451584417486991154912585734843785147115893707985457375437117499944000525461165456789227062386893645518444531969738719195201831760641752815167821703797502673465600430487769223190059791873770085506930697520837947558815103330738130650482512902013022776974284521638063773413170279624060597563604649980806294586168319486594667257387251238971839114000912505610071622243868216425667688158569267995037283178795203493829758591235718572281366195585347389150896405277666337921737872978654586529049470543077348651414454362549400138789898317230766535988244330617438315912757008747956251998360013187666703345062884953397827593241907635215447053278030634635173788414706961007155394374178106293379198554760258762247740123554586559027157330274620557819876570932671006730668987993054741222483939539518926446349536690207353645798028765661916785842070802214780796387547370087913624459378421735226548913768353958545207006258363954401306792697493047197961771895035864631179820464486604110607153210839922418397672438382470157339228140542954519350800823098206173735602818987553952845959960859737407435200450624436890446091237337683319834321196275503924012154670471500564134903768674573014937990748809727388675416435662726978880736767301849498780293851949114892851035387222672441934360322347559367391960933768582457461635243084562070848201626467377140949407482177929033999182213188024751758368459474072255956537782324504277172191868154000731134854499207387159803936096170832670094618427822366741170280035768313648005614322651989167155966964690134760618832365995327457635075434600889119546231250499185196923018764974477263101876313745410290003702079948330124991459297889268232786853492060810880219804308776485920034467595673736966124415997514859095799718791730323255557046327570633798413685209609403184814332339951142195874980726936026200875074950930466601689171293721883144183182059276297747992748722044911236498901923574507205684358743577036862890262506257439824435022606224729541413047806204348997037956693747419201913693567489582239209852924478709088234283921458229899793263626652978826149427342852963555579036921780801529495537697520982009613394835186673793827820732034752351738917146309789972970999413840312251840969677502546443523443381430428510064009079061154175684161597920789177288478886677507943814895243122972633393473494409414514756447544065872874386283769507609123548855183268389355752297210557004632701122347077547753031225119529063899909213580009949228331540913395104340111269581185001922643810335444839660937673249237485749349296275160900093835517555993698557279885538069517450939155597070339180858271615841119650416461196674644342193823791912649750604383113478973299460501015141977080723178882933371016613252689974629165809429983449541403119182034943088812591800544188470507178451386608096609315933665290597239015500362991518378348077628241689333960006017443227927321284402428337523970339617528435692866985414989054162906009982807050735015240027133889393507486841138716088905731964067442190393146474774675040071483466342911198493236890474314650060277951528179752221220890984787118875896969741516340107562457105070709270540343836838637478546170047177898570991550489192232912528916385970263335890530121787746276826093638296507085490688606545419887061295049084433424200466192854359218050259953411731736089120229759218214676346658593354693488083926113859761366368556866208913467211326292043804574520135470523782137785911619281369643068317773626885104244635490236003355807147683953025209056311777256722657822667631706614496780728598981615467862641740601619363238884220955803582011599171305768977048949290745258462306283649706156309939900484784477971671252996800386421030062651304130039932407992647566003910068533917464699461149156265844592831042464218273217609790483782782721602760413403146797914963803212418625918384939076537859081679275358169150367572957388013466657851075853576266707963111850047958152711869191479244501520164595635535736557711750850648128580313284118465687589903121533022262367722575964863180040261427994591595685149279227746025118797123242062440803080807665202322928064822377151281183938749656854108656515234413843478061474724943322736546381927690488474216153754223468281844813292775787145771976839352272803251255550974866483983069831355150794438312685482371429660980194859466092218102960134450075525518766401419289892602094823603762443663953762567716734133251130366566428951524167870501728779145182537161179579409060471278912325675213668464991672021885013080091754401542467430504564007922045274725233548287832620055542694454914227395150383126065772348087810123753210553161811083108072488127168357358164631114838680727171050429934138998013824626232271829727163318191038138875678828352142206534281185936004978665011270792570812350614222107486144376546786200883079691208154503596081920621261792842706813041774428312284982804634368133905436560899185154504218445676779199334262617351547777144265628331006668817233071793818643760401552045315985041257335751417064975564775056510342339249071879329051646816194855621131112812571437862109123441061269756752333947398750268868384291539365540311000518585366354107062428444428694742156388150734276491500741776317463224635963944381101197807087842631403856784322581069905757338798462920195541126939983847283231940143353310934456290898209522589920663726763458537382569302709054959208343426128584470845053071653368627211428392610141582226358687912199703257859294937399414285518708114125743964733719200561809126345420803354133983583282435789787946329170939762223049004847565267929377228621550052635136444423830540055616866482007615336264585297200962184234624329973566667859448032182105672672744156887140202245869036304728243106951068510262509408348709769154738649642872625331224001828984920619547614310161159122755375768297359064169220922024520727289363261839961576802625831477092290968623898064491109783154312710770374761931752534887279583881870867097679000683209908314985389782920950954628376764897412090190597046420087618588060922864579803411849949717729718365818676771254678562358240594490430065567684256602500497913720778176922064788317547540343750660449339866657912947493216916878468366787130248783265696805495427212850395093577820466804018563970904459273383112480522450903815617397263477962942812779507751938121149113349450496706484549292740540163651255806546312995722753403566584759191993809450198457156466727967506122253641747533860101885019509986810954005746723548225727991477778257368273576078704457752532875678832628620653462711420280788974150965313776504373536064749629186438776083775545939816952272809134110799530304817782871997016836078982639969367701792208566404741535379006102128494138734226870688865283647615275769382539218978765557925559725181085733586086828736873382066492226874655590587895845523348925247474851271328312835767887059726937005202246234141419701204798299401336803811075385406540424149104745345261631746227663398333829767925375368214108545783299202342742545258186032199084118976099842718314309330060818151618050590442524418347610931547099394566267803632153433456007372343911248093914423331518259200297297034840052253745561389053149844265641926642278121484877293398070161421216779094568363662684999246146588267181101763455844261664144467020060430866704052376216788719866558379506286187038705318855527538016300434524930088473719031161978834943448803785794348123982743598362873855703896125891496764303342830126487057524895423824871251748755096814544713601028406080954754057794014113693099948286456842164786151142756192472184607808159618092551891248628857558048195997877243186950100333717117058962984190083455974143082265058010064859883387867600899747719464555298905068039749453725725897199024813136440537893886823205981080813699739677072559705575034902865485710493648576819537526492476901505509373973565053489750386508617534398082162536227915770602393449472765174140908025442018920709112318843558572749426882702138490306571593731378029183689805262844055398320218465777786934790536376930170631182073106075508984283782477774216104978876318437068551502967493389958980472774633294097723808312906342852221610632928487358273168655842511139273151767577893275627607282052900570008570976364462891995897270050955952490903015929039821285942368676300644893955998089883283716659433966478362765925037632430879295853875014040848496331745429260682711493096475024282299081377651825998004872275630302261438580244086543080806142460033020335275225660555613974234810696653962909854564498456892971165412176759318077766039061228922603935774828291689903763302748602216502453894589858389446004732795188708026044115886756728296089332356583911335905621459926716566020569806218386087376708321223368071468450287844613300609939693269643453450964870634176179541236238122256119706097801932802640711084697234696209906124697124476288275638692898059476384136945068854400471483746878735669406217741404875058636306914728418860745750833291596656420744007481864956344472309272835571141065246161403495788485536922965122962501787655524793469568330008788551071503962111688718206255361714696760046951169618808946687732415800025911211301849333729790213513243176846263027905350610264945611167031555249455881876281283924966945748726489833075888657963263493707804134213073998614990648086987172035061900889465222880898145375132725415454283507226933931198652485395602904295842273926357482717521195961525246727101318636295619736715428278482038084556154821322212285819305946135071890563944642280255191457986676910275168200640451115501245724108817723847244489373796611389643095688575167445903346052178146035238353472346231379999254595976679681252127428012129793593917421445109515906476717912360655115328378387819256654828557563286323885273966510232196434871622075752439578648166034128591387697247938651762818343365889018280483226319637023428448030935366744374967264458766924930877499268174349987366033724584006743971057412642419766350450483520178810082964700886015691865427903532769656983015454500609518077733208474791574803187769650343470507923305494911723194646245746735048629410990655578545557311873224168365221272904161107253735500850335912020328496307771544891025804763331833348055076966890166709440766426680193046123649500639769906148336774084656593399244808670944498076436904423365267381981406978144866026375730440576743159265325878034327210306332665606684874474238721953822814924008519056655689279220338004425060266710084662591545041465003032315386061290990398725746827691169870185592541898654835711270276624885346527281101822518856165256965663097974700492350890081666173075381138252854023983327065748381325739813572455943038702431994348556411582209634872824428244401861589476922461303211728690837652282875745491823470610863550054697317034041163734486936886236822632510901427148593765110837640313639446248335573823996140394342059989540009248712204376622322803392381662424721461922412264265513670962076561410962072866320976071540852162203786549793964237069834685138803773133554782526361956625224262908469236591600755920389952997639461223923771063762418629951243908189358150153009032941156808103678995255115750448438261797078982588073023332425837417464021295952582324041232517687204814049322587996744247630861152643779750050503867709726950191237222755918064831682150193962963260999600211138631957040850090029435016904995579935111172169163264193774681822660677880488338472813542409866967259323538236288896156557786622375944839692886481692856950842304791798232077995606617970234821399242421976357853891380982236850379310553056821947103312734257734525685899290240989585707802742619726546004688059448262727009660576291660241277609183762404900584746671281510011864775107319437818941685972366905293743851367070913648228566050125780054920983509204632100232494481299709011017081938660465657005875216060605675345240673459975990256134259817031805149873317150649611779868890160163867741308302740281404688955958417702697274127408422059967387867366008307180286908059018435950369591382383184686175437996551967349623497587836712986527979261571635558028706425392219325038050299164051608586256954191202069947221294329966320796969456368867878320553381296087256273791318267196541400028790058770695765666519962087283161413598445111085973616115100686002464678522528872708585796162356977151868603481139595573889149888075836814496936954029270290182839002828149823093855886456831828338187957046053297269653699647176097261519914499316058818463075647005514544637025750801079873697352503947070278953213331852495061190460248220513948265217292137558474070640723276981016080999408481726925829253878495376369157414022474251370362381890852167695351175603264349339184502444464804545895259131668650784005694517321034549256008365276511509738260683360207032839370370869164889682292671996470164957174176349945595261187982202897880926504179822232575251427580218289088048806547502340582142798052033251368390370590029391411817369734642986218805118409405930732860859805380510715043394047527022256526391646322251239062581631341593648452500820340536205552575585989432678326477974158815766432181864667823495002332218840724789739762227536833046274042706977430216491493208293612474976272499422298062138125739753729401180387364648835295529341492970736520165310715290788289893853969424308917015190683336407083350363791801898027946552807527578282835884676451275360432350726790604421800412531457920412835825589951332438664906482878566957418630777024026595689051473904838418437671121719353638592587505343647823017318065271407865099918489459368070571803917420242446688579301237661374771568914320574913117555700437983953682107457513373892863676993260628411345564901138352203508134460411392667751911780949567824923338889653564285617719924913563142760025634953956094115451252957452130252629181371234889545640810763686087556329583564874026543082886678417404749300111093950087691725411583994747895213362300254736226169956965407238032272027730550315292573848968413868736282078974977618662448528106977986332583385703538837070912963965436669893210007010641734734502603549821986763756855221468594641912347469849323076583937806486045513169267907407443765911860845784661414418609771214533570585255572898177000393240426850615006959626324978744555831197370040310957570704231074355338698724457398050302607266050089921735026195132974289852383324683909628838250716957075242043318784865047680471481482417932725238289057190428990075928396014670644540157267271494289676751874961080775474242084162634088567017613056937696539500577750802537488260156082828969485468244912650045010980877743403675118331997308284842994820240832491100477065598313720463765708800409408492386848161122865614979582059397584456789868190827802398978710759289772610605580251286009768129544149426414443591022523835025857013497241369490869905242705134228458586808974429874914823053793212145412070221583975632015432797518638268247582155534849656273704449214611844336913617033109287076035264321779103655201941607273756297193592280400796144045352895860082027330684381545765364137696934592782157557504068080347162937851801011043356229028727368182250604040036681315775171712276622797472469808578135901407126282955812245112906857381307914148612330138003373775831809134847450360117535804363216861667113214198141832459601121704382214713055177009162549130520609745811281981695880104823125522416605537775618461208052169865246806130990135348841753840433457739265971376271121466306051682939994080733184102600363554080161393475641334128561434588929497119996251125950324761606188347476716404903107529971073080370599920052511411953286754433157514041399876274595654480451329719067967110647121741356748816108032602076711894254219925689960701694325036849657335754918359324007103297101087838915353541156884519886660078257031177441510089737136289383824359316898082377899839896187401018431448431263025970547432855883645375524119169115846868522023600949216655174113193218169727899950395655613104255744323011022929898763789152170413657466144226809989349377805597384803841303477217467219000282338682871644419267519521698229865394281747235682391760155088886481847805737077643559316673834971445329962104933851358930105850108665167746111911842460737552158570972777992037997019003390881920054456659478841171489286824886684949285298652619458494850740203561835097559301939091116402402630653057959289580200131701870017487526950630341995067847247127619414300177885806110800242710776384690001180585692439028855353752062213202597949509437200916060153638315515580521094193747699396594615412370365931745286919394027780114828317934933465386844814403888795844098751035364696101295232916059397155245319127052259936001767996409582312279164635128907892223344045807447058493856149389386586787635706909964682982733775686471968096874126562146241938933051273522783032652407307502653802481372683913734200192119015293950031134633211478263009813853612473847617696951782388349652373126562517647522639312392568306067118402197520675933042085761478450442737963101342763451699604195747542835702970336832064964048656552196296873134223466098863567044489776108000073032903115147797608608654830291319645784015064281108330725258285025266294178551136659652130893708892462179185593283447669039450534848962143795129699823142299509599072670429652131400218739202253702340609544609266875170321798361055954588543682339613741612830550563068906175290616377201184429838328404745420550891892248761641893983968087044134789732671956114820018655476216096649203787845490723489940114242601755241612050522259046127605218650886895710872706615743134324832488861079928901886271153655110032648040052715180365618774817998729231710593931766681138523977768975203372265361651213342029895158362376936173280904413132326878123342336759635585448140452526549778007401472752360537560673935539542065450334904385352954231506975351081016601832476302235769730360101912890933310686015035835395796774959652047397705241191297012325507318683942580089739442853180499644313005766181116102462402696043194793692618200902234752041874145871247494530644728761227990094799870118363749428541557484577550584342478992992401950044822781826122407715212365954010058704646528431032078745946716980666091648946736463870618239825953400222065197741259938975754701387284587927264341526556366939132064805853004347195866630358784442872500101742695439095860003843994546268233207916584886132786854987294012522163427587032161218028698236455418378077074401112643931120555149477193652114359727816502917874237424111243050702409775050895304775891556089628558270438591609335144786659664742646771564163480665139580241613531642943464078440526256404548862483284446004099382251083802848061911478171166082998134742565085185520722361990648533489386790999418407191675619113400714221791346612091778600239038159449513842836177398999874061986465638875776512714364303455867207729152271795957481345323438079811656506796100671626915021624421416542282073212172801313193404078840005016252355166902463894459500159618218520604398219219906334385021222145453022121343507354898183995499641171521701507094915883360198651762659762827842519063307829143551523716263959368771468019615229752413872541504786141880920113931169800849655324374288962104844515320744340674911899419598624195998452603112586255394450453524550450399954456499379328594851865941505148119383363161166907632093403359037002472326428316314935955077853904773332389833959427368344524688496914361918325159522275728602068613080819883982307992569112389043962665153687707102064375834301437559183642469386240879874429171312835762159067228399284445277291076742464101902953551762867956518804542545677578146403087850116269189062962021804087973678826777057165955749613246800454629563937484576617051525824516989694743972767555153701149706221974568313097127569505858198233583365960893507422768373668264385046435432901184781195456221228938184178185209338690143440207231576746147755114582107970870887386036205749787125525556302814035403560937075071522068249823472319185633791771028113648238025369377162862811046419787965876990975978728171299010163260004257073762458198027455505960939117398973269581915488933192624445093636967655592473742051211970152247741540040577322410598387520396605878957359032741201587915931273170059446192011967478880662376692659978940989831142522971828531628666559776716986849871556539869578821896153155888296780667460665865749916323110368030319590205685904728276706482448018015968307811340359902518385054357789272495816413698896791135845095140358547800956418882438446657205267408020700910882580440217561190159891211013643050230450401045767514976009622984874589947901620180707261406979156898789445941473262676856170660216631097287623709552900545048977641833889625843434049400396073679996406199065912912668134503215386383778645761453758404271876972754155230743039115081560233580003544926908999837528817710639442448794445300375833145708769601990953290367475287583057007773593348107345259600332479975215042281897944602488968723770813950551227271104645504673249630165218408684432251434968630216706285348814256673464350983222829266860062293660124771208786408698837388721660168713316450276716007664011951538505758521440907619847901198202136378714836533300159300021036054843273703635786711300485385608626339116645054223388539856057034466556846410028408550617428555014991252548757641300497610369174234262970105623808258650639572542845255047615544478712431708795952939055150100946086878875149431296960728568081858437644085820246901524950397737206851355909640829850190968940542816211878453277916746858186058895378992619226863754173583642615332754823741789740478249319310260591551163142579788477581305224168492515011670502072053882736123813407807486758375076787890876250312517180988272436200624222259061598938090133132422455796297352378246650816109675189477093624360791968439053275173383377210794977052675221640660641247288923344919107543782632834390639098723916002974066859487265443212563870605710968122697704272545262223404967609862040933221656125666231023387026079470134568665614338833130903540909739181844568249395367914239696467951069704359391724986655049438996593703741498694857928058720356617317949711114425865844737524349848041574781930651465747386404791909146796075271183698403498727929288386337681158346598138529371311442924149878940980043251403936308650634289244776155759464747680668185620247644014423248290663204179833617638071737397219430428584513052059708332637328936417497059412080743206714490221276630498645072334948705881611330186144068564093161989867679090351486795290390749638948145946906690705882828208753660630523526920417506454903066603515877044189830023250847873019463643456662087094752957215769755961016977992510384503477849363250572580508507332108985699302490319884046329836687958881813669939551609476786344897433589110998861709390449238018059187173713790529378850439574466510173448584725250620487963371898859446876261135807128160326272604739188730280744575529997034116520467829080604170762063691193421191579771650539884046007158973072139596032992409022715332980638832796092562946185116384622221781173096481363510785547524172456317962507744822138096439926592376299118254521533950086504801926011030726618451358863187026572367106700464177158489785417714597000644866075773564462617873346419528192501076716138722661740444701806500783631653033234834560398358712359823690243453687834774223937721596960610002340132012677746227970556891195010574939659672469846378636526236666216634636888052928235753910253891704666457913635486382308319949134771151952405051030868304997001707813199204489709232051076282729142494110335758618152091272206604011017194098338994769139547680971727752741638161805935594046052467308340430274547762380580651174242961858490087581833507343624930447323923322165297736073494015090160794880451401861031135815482370441478438141424012050057981773274696960289645397579470424861223155963611134019037388307054694038545262446567899208797028543150067884997302484230730351524035017207232447503654297758294198176909101390925986420841837031024038591156932367647157016843764047296844223546545353944896331006831473834819397073673766397652070001391708028038338371039561871945866079877876834152547855882317750435288971011711333396956486271039334081200087743968605073617802035648407503585533432768935699333048549681149411713521872825236885536039482912378499475772941816163401244526649957679990392813778204685485573382018985191919248726277382272973015186354320745788296004848547754843426566423478660826306771542469251609008129475972116562925055774036499224946656156446335903901089335569906819567869640865605905228850397601179056083364546964033172994028565005571158854863481473831717787857548600321445178537879735134566531530255858613323932041449304217264266137690649241118223407415039128193231909114066011677988763932110069054636223625568137091377056330691861966358307246933381460747881029970858826338607265356939296284774716991429959888762049928760516325160649225837689263893770471440941628231654828778718698318224453918247137562633136617054632507957939429943941092130928089767976008453752199616059453044636022843687318824623512110123841393978408809973382043000529301852322973993649678990127497656938791165014309227481752399268046099373780821516929171227372012814094295971901883340782703764674776771025743301651812267011417187582481046313483315218550980829118810995398228534882300952083630584832304171061654946114681468752050761445174473920052442910599293621048847039421553742702684401664128796286669753014255487021234163445108842673263147047544566415428948882824926190297951617797857517954169385717007442940174032691255261610808802427292441211195059971879682071853626002469529870247414556524782831313207838489494633164853615898128166496083053515090099900339627313654283905011344165137015083106664909027276288527435411845877964969822361131689514259665946999359900111190744407153034449474024936864101576794918841796146478673552447728645132844241237179721030524782589054621146275016262233295156052834374787492966750277639744805427753795220596403303487101289894739651845891614271167630326430494355670321316514266906482801469960824412970175387774699635907321575811570704280508728982625008814906411497768625217866266977050102113930658311769487301798407333402222475141964163319546081716449412293234750959361552573376358753114158395605606508287010403646164683623240554438129849017997784787889609473265247859098768557992404987758383967080175963152827222453308839341090946394399198091110323468710961227832593775369228322373136540250235033061502728140902124521141045246157713134859237451150790542357157704302488734633994281331676530173825818754034612222830953576547323847368121594578354259173822202998267278493127049475504896206369105493137629823801889466490638076595143478470075673955915093642754002858326995588392202966491519333366065320322591173158633587644766913305211266172505376319596216807763543429905603566751953824844001586899587858737274569885183221648224472561607395816116973378347459302617813372785879746497886973991056117563092301353476400175705967181337297190893648361797831479779512383689913920749943736949417497851342213127872683382713319355499896417896238168451697119252331708214307331983123992199457575805286851621447681209716806427787915765180145944843915227274026936122583152486859662815724000693108813866083756807826519900993156466413485655257255760977339058484169617298361183843926289885481047484213719094098005957545584814150823119956672430642075534352378951495808025765239228932522173344260153782576018952173751099802266999386849829031147611298187857814375400864999184529558616918310533104687254289061207294170372807815477906248939713921767116269291609284835848897609778640836519413529669331322885572803964440041980021581607259964437185735628712212843335909850997672733840595136373106575143003753942783789049002531885557456360908933335206198466745429774204061174135527253497639277267051337358768797321084859530126818356311001211945616821500631926391846154256568230305781000637661658207870491050437752107385376830864536947190924204341125318447116954921198076320541380122391219600219019565716161514942109357646841818204954799350799142543251987780201768580032278380990353638844960642520725472184457378842162411242251591149440361671867585457994263666204273437354347453247723832797771381593726517808383411089888087858510079659773429741675117036687042690785218510619988522644374036343607508589367918839574278128361280587482319457584939938686330487076868992630381117414401573683304826382313705430209002163365412998083671080714779297671112578406871774090662740235085844349798491464933887307681384265026149980777583046451884696429632146524261018888551763944309314202118888626114461899346536196495248450976103586971821015576799986536423294336013791321397700422603191662886799097460707009868217308880088275308022777819286275191508042147044609406625387150224685876454142709187785021724383877089396853987020578311293475189281254428081394571792740360351422516400600227972518432367498714473496487953088262511352006772230560199413954146511669861130743040258813203130359241965156593002223845574557322432079315319018964134488285717538697178075742888791608786011393446616154884499234159112552707226384986033641525830109705258646008624137472749139964184559509513921879828519894965032975637641884668713653342316550337624187092583235510846737861606304269104565040373367075624859754162467898607442021748587355789384159833809645994840754144715732477385738627078878382044975580195486554490478992868124532658504683280125360694379076427369883850438318475810408255286725780818676785856207665216098203148929758120572863104218918717371784538931575954518686357790899373917410630830155230642386822340180091084449116543929669112938020787270491890385523192596611378137268765587314615417505393358835448672811534398284601394201025234855187500882871889869396642094465036906432786131083536917294463846757289227542479163339760185608176516008218124680231998724424573305223055479596642079321704537300115089867812414631804219078685462527786309766092741361858911218955399536031947905187060636281889290638306910175963460217244113400035978739363200355278737056528059229430089532140147230309097827140553986754510550983947105619626678339548630148185291454628708661130468461750394820296029577885967962908564420318432935278086310774555059164721458550435740441441734911541508825522421008698557642841445313085705840412292688352457888713866707356782961332243661389567165171017768203163526758581441625644332594058599026271875886633593361579313612867691436930608927666331111586861441424040119613451587717385649725433840213668867415612395566548042160759563361892518073718870836749919998513577069565471004809328236768384981259929523775343360266273351869915249178802226966295885196187532672656957941418120425412893525543399022437501473719064553326403342491756248437391846389811982674331195168639344463557938233067819655085740533477715952840774141136177566731377039930827154998779276896109134376818160214690103785951106824292469600944155328959736498382309750927424115895906050268212200574959738886553774225049799186486984352224386509503433994398681767137028934022235105733774922747496219619211859894312381704603686926694086925305361593078332585921413106806414274562928102529054644164352475332291964244728070122539021351508392167754347615503929820476131379458884018421668445591431052294156366744461904490613697754524085963304342086661772319395470325495135530042050108645938681437735764814461180617881413264902046628644673564542458572910886669289340304664591300484033278477078218103995666911560685828349610956912889681051909350703329263818977453316319371829611796958155158925046458319928131531915693998026936834699637898302062078731338642503737723179962404536707960310255786912041684363611762534534023367578503044848618190027503157552253978059638620712314074099189082368274012737286016749693008316225377913713733301532470120516403978988859024480613453360145875914010956290483307276906653971914611383251809216191743007306538909432230494276278136069905290311327653224194563234771724571112049680843781982212138308730393027369719216999366290792339314922638206042955571680384637048172627879822643345124984724133430294909790817679252912832548888973694633024469645610080659886260725884414743698463797525290563602994027113050301164510438036830860369997802823768933145133201279345991004187152149805284693009247293693553268737225480298172265653988907256380637007067497415902696975105615203213275904097893645425633345393177925858994791646988786476959345359569031103144673072137717474471918385854115433818038423926102225304453085271066385186552845344884484226166045986653130069353206910441376567780504822157468886313042765341994285935897472165961708422029186517384943622578508984215757724718721126136625107505723624982220056713088647644163758313865077098063037972269281922146464417550652776860015218386614458521064234757577158692360658869680847930836776811282589053595174696071229795499830482071343412967017899808204449379704018183133460249877014850263725745685457888275272595452851103158474161050216142040802434914061678916075752144596267972739517084564744651798017947935745464667290577070591908061387886878591907175000124347315904160713117726758584728446765175535851503165668156921150490177559476128666300984228340484268515561994412690730278154314467267819797573697172139744555321030620331532375218203050308498604025186603197817945197448091754592990892957315732311356661433160802499583423043720635053394373277663669413911487482611711191889721363936120987905832808704818980801241164911532874125197766403959081880942222051829077179302728999138756748804338475976215376479293351985635043329253901537486241068677003828420600276746786457645852010924100662828712021474620441713521305271462532632401085709272981425583540119949259784276681224073985368764772032914913314148815267825267686016370761559364798356363188219914005725673493124105709999799132932272642399512169523166241082357046942558472236580865787152665560377084917089032727645378341158041975426343669910980839899358650682222335256763666408820630666231430628209487994495143807889686320166053553735334882953704019338745484308237281476945930337619436528089330695820561031111514571936090625129751192166260673605452970195791443721640436536464513009453860126637362461635324462814498230530746544755518637214755352439426637089095038675169308173883288331036595097729015937551127783599469425675012980746828400573081950515585369565815880260117032551267483960508173526806584807342514062646372988574743570757410347755202894447528694085133272814280587068424790933634011570958918515339259399027573485066481664204953955335618994832240604466364926149743438031849497712096451954390578345070823089032587310500527278372190415252240714707968503838495510322187624052925737054085073622803311119622385528480295571777260513081090909991067118910863619255480977768551623416034029361101356850168734311070393836795624753760932962713576174716507819249847211648591741954850923059231647712889212051719255510125239357123202697834296101475094823282565399852614031910304308838121226098562610358373033062416653990245204168572813751283091305078777599915108507438338716443159358859698591870701885917991995897065037713815586256939400802051562736297479212967637583550839645737519303567188097675381710207364749990091065940022149159728460000197820745876459828390408825568914087421288687573403179200771257603394759197418922288972344996235287417107131165747841046486805196360308943753202013937193137889214177711286151616843399392754226509958651790907785612222369027890039146615552214071710012653535695541478557578948444261541429685062231974767061947322306401898420086736515804322326768896684295915197859773854006962481423724719672320753393479609724065008815988903960025452459668399622111678127156378273894920965674501333462715940950695709514018764174524726650011696127168346848834969142830362636904030517149890077042622093678735901577613123607057967068736580638519599658986399412889254213431044577987581394190242189511936494253482114755986164115675477310904812664967315789394782171885150849383753899215515415815414044174663861249908676157421151474580187607875758957828498067911848311804689283913206716683104616629335577389885195005342642417676956171569561699389651191060677839612874031278094417418449568184441198276946068992747894061763023747641614156475574770840276228646856740918456630035365085332736333964504219348183217254172133226696232816782681600796810346755995320846378066223211051945434500444996889081725997700973216636837970883052187352705957630597820757882218724594542047567586580252237103692629923604275287833236753351274933967895067821490812315951400780223797041269009655188255331249179294833077427364900678570569929619854280828331626936948524231243515107072887864903041848419685052143232559774968817771769768547800779943768193581290075004541765197759657102072507518809564261163827844655300007186416455009475390511121894124167819511118418539953645978795611453764135107523455877751770715848976609169739445874360914571873147920966203853276347715458745176133404386330736895123910189725802334736861399921065331982632363110725304479773046326778557732653691989285335605877430741581130757202773221854021248184025722285296403172201326149313995739782838863604794519645346228437201543409983502252496346889879497959523070758844778099092209438046479931789552750716655062967628788548443538298516006541890889683962233613453301351834934992635948468060713912653879182569560057439166423864051818289099464731510498705731508924362186315218620774115503066071227950430946412725090608218412107776189358169994055491717562938010476989367612044352072025946993499876912719420992159839543159983624050805823340327553278600552067266479312587848695286800760526784763340945578983805010840837868163284183041226639506970829042420581739110720256197274723399120454715528046764795904143735500505400089124474140509872991593894135795127171598520107122881981486772922780090544815021757547386829031341472232246666177091533149271108041144943664594404106588897883607206804458264552612190817529519184102775253455585370201608854663051045887928394364701075880183752342859731181723462406746617716519024326608849907323909120997521769427037551800149340547930473714359692072449459795155562657796658531651510365822209551489957446647786402479455226634413595089912823206033199787116383805603033700004629196288588887679701589683405802803262327477991821712837062058643049592484187304709459268372779481221971965790997837691393318336698325286230972647381986041020405485677516155285346094035952634833842603662645015282341520713607553269058141088284744700378866220560291713887567366793301544022371667742659111766886684241520784200727623984728887525491881786361730376036827872190883280687866106554273214183909104184498684881611580107189280451317980106200129603991874119841641667377358960041279712165576126611098191128157271932161290054533608959841147933924885880984697753734809070050459621151937783509350411085614391055315101583931711772455315156221025238213950539422929810298537619380006674236142889261352278093351700573373638515090400557752004206997499393753616810698489511780800925851490463583018632247491783470459929772535054660155179057158966499021395435003264316812833444077330720893871238924502498136010885392455981179276106792440802003661244985094562762473154280699050296767508391869410552347085713894477793522407689582350052500039822675413333101168415540521029431039809084629737195374913814763117051726426104108048405180450447192470834715497737934633884174532881745353803724677647872811596806057685170680892109188748225829889151357219323351040314891398306018102761122125264486771432342978182749697214627996241244851584024485523239112757814088562331453056376557063292278544800202811860243143740862192216676270839638702734399880148171538225985721662920275753569169107394187418919959736380361820064321882352002938998724091258105655589234606166326642431071154089975267070630933436132981626360885980328717010830330132600722350083456416211726581429264095265871438001398521937987050612401054771936665039454345935642010875949703966630322382188419719235783407324627817089523133430209274288757365621326816409485507649501189476153281879402679564067851039955036568042637346021890374312170880170032266671910312020796017657503397263471043781019753833676837366422673855815696581779065082229203807693857758355664781674433896814668712241864625991170337951033584063827106307476775619262301065662432560727477815501640625090669351842581297326422029753099139729822036401970457338609467631650063320099795529186587131193673046341476177829969336676806172258471505256075592561387021154036134871503016719408498912504241671608947231692310207526531145213548955709987167889331778500986854484312050147346002938621749938833500783700719662743650799932433061721321160803784597860264609507766580780843897554853939597507891422370325547610171724830102198876881070061325888852572377523580721286084962528073479896582141236769573334729078605308642485301838266214871071411951279336581504423559988589885576503998244229425349577128096967691779096593604477582978100422339011728715819549914235930288356201935194272149890295494381301202103793176014964505080959325684418921791123760737979855462287160289760423170152780904048470229599970565265276653543750564745944247590109193059452741204386366232820986479549577878118436420430198117355365985194980142175138837276830356715292050911349269346276879248432716885173060832502638286480020063535940516347707153819573107668990858482953873696860221963801283445712937887074706801576563152268435831016055174075359291775804411239371361842356683512312926273788665537850378062685910946058098257770136958428856413905109176766762253553131266896314051236187300844772782062908710155371712953593834051252953320624503126683330454813874889906731241411520300167782230457869735821427552733374367310349715010378370224806996365620927474890125058365776329076939137808460208868423201398211281407586739231728875336566887247189521446329677211147910771981525584829166203061996644368776237490372976155169351361012721821295080612794239783692265981962986490958544482283869872872365194479040808247052413558356737310409347241083582444816681262809673340627513680903209983198995894049703833708943164890712795835778311089673254997049095043270811326583068162568980627422387367902315994439670064104522309068810962218108899596808996441334219122824133584965972155006271490935192020782663610876100539797508894318584461258703037911231231828643093628773685880238524299578987655478144217794812647690694931626775625930830763260199851926230143807686626509125731163370390030154580124351943283669896341882584122138279081883655141064459619162097363397852735618146238842919175570125688158766193897140670520853901159234816656230612883075624819382654952583042543987224415232461946160715564809739198225582830486856436203541962733285815497098217544856360833195519308012597793855364434924103648738864658517762930472824858686511615755178167610114810382753405049948115957361533745815108908039994002739287613136203803727252609116548771686894822185678329596064070675647053150035119475364504280913220178955288125951884612085039131139459128191810238226205746305351104716294197861890428028706545289645031883100023253786293360145744721009657479439852659535134067547894963994514771588605616382427199397249424219507991568749236684125767871216001994354228138369448591527166957334345432505911113639724521779835568627268590450797275688487200662425388469500040130779913172106870718158258293260472409077927397873038503589305477097790394171015445106641775461052921701469127823999449615394825353773936337117592471768407625987082930313431968386167702758687531305154406552722980784967785458820657102597821819632963707930297945094090906822517051108397082862693184170251146186250604797841282325085199831043337780463609930246575490906239403710487184754513836360842390303449304266972508461247129842234186687305524340902239650167279373487270103870291225475018123029228759504308996272522757659570854345451100538728914821819170703939906490050858981965541655287469046269305202152825422305571364423805715440059752239618513870746794706784777867565784362020131249430663330251812238003608010085091969813190611250069391621541900864250863794439795325984646736486807828055216814701515952421975247450517389933373790202306818192128561601662018066104196645681786161537852174574977816120095948695150261705085071147679170529318717645108350896713512225805645084945281541095951025198623416502260120506864121062869828834085105034229221155096342638822412939066522163177844076918215883662950971637999176015035751178236254536825784749871570364386456089784385304881153604881498531443763649892765233645018178205445817561087531399925016590158626956895578248789262196654796919242300901608333319598729467314744501011523366282474982949862344439209997093287786811891367978555716938976821697651213108931278850485150217172833145219771011232122417658563146695158182743554235438753484420733001510635914550739035456244315980288514507927018335398326905674181919526525341112906036795118936429128121340419371995688346357078420264015754405536418567909409561523781946040400765489816192626594600662264100668041422842930200276420193227824585036671947451151380633266257207280257487338887200995348412566059420759034267678481422841848896913235868529078963033783665101544554177823631285554556974819999230667880827756672460455368813610901036555163870418113545457979691409908630369666964458807264703349256511204754743423831433497167151796267478063966027104951839503403235036937061939942889307191108167532197731611220729303237669675051334240340222937860541811984172640157739269344630946098536043007636240266058294077264078622988143665783380550610102314486118605819854372880271504214192913292078465436342951078670926767208141718454450865559708636966245688456071535810597546168024280324743797214127639889992359569966850882926048216924410567062186711849529998014942538290871481093381065286404271100190328836806053380764261459700442342138009111168196257581899057774995255557727323046532297492671590805557671345333657173583560646066902012287640656208807912705629457418574390805229007629316833307895729287253920210897082981609844512518126838950220286527527189379334580297000613334612386228370851393018022429667390749374834072976291117610436657233843834773674066583618463217895222940873563201200130834513334806990880624994190145953061414262431139860764277477791731394577439102444826261355969874289770898674778889911755387784921441817303408556292631384284133408829104299781910922683042702606014839077433270227515692875672308709317267238942325280160848748608859011917197963520593831065600673019894466475924507590467955011502332567247307196848471161835764343523548811680015388822959987284536657284961945143207031122246786396397012537941650505099323013306639432390482530971703410694148161016463020465804605608840162750625017113653462704534418635270565720696183047748856046935352571574008973500016956755706037777868064046783498035213959716857003514858372827637902649338492506040162262796516980246386019867781952483957836254187350264941372101213563760235364941177916403002598995625392937762858557985519057946967507146804690268273373812733892781995676067899182058690208911451329937006909612603357449261710645710681738897389317312491515182322188088125084358320536202723313812938695576061203054029481328718786980320811669268144753620182121449610657363761910084340614748598221884454496416428025775032621467642259032958549407898534320130926128768754019075991255759481469052925993775134007809357606423296021547583333519673795665894858399459545599753835436280145759690600949684415477501483766819795974116464713177854567603421527823788603487356302182259994704610038550782747740639083673801566110595829126574540564399817130554405499525132548961264727824658983115427711475811508207480408504290667858386701642688262788801684265200772532236618386892082317514952229916501417089208942983817934864730614205073731343989527603847784098354755202445478551967382940564847568387239982481105225026083146885897093690314443392276274375046545823970468595874019067488694410525617426386101205192028982207125143793475314989823202843585709132498441668070040758828707009709892415649525877292810311248770252995623193499775508120626605141518150342276821577240898657719539042185288328184196892170069048691388363610488103029375401005264671487739315701260714207125946351549275479185439664220817465372005343199825283832675750726801080463154473574949268044295458544640019571107522716384263538256834846735799499053431116871602771709807743229292904122130008635381883804449829779636260119380770069169198522595403335585980070376804898396102159814782565454045204181262139779820275609134710620168493521173904648431483667691059218853955474861606112058552504453761213315023583484999620127669882199736481212491451466610711139629423120821548631494880469806726566660485004057151131963884193422747065708516826572336757783123917951554456993430946592769383141052655810454924659558012079245274488836897170581423062669896550833344268030812233452582101637474210430543803969446708951622565101951334557704007981710770711080433967177819331853664733597730592040495522829385097693507451604428740410411418234082778232334292063444244230529576553133899431369193086793126990823047394325010323730086044107413067642663118379780930886331809214495466159259965944445454124418246536235625436554779796190972158717327321488820120023712769340446089354624534500665594086424276918969042047962230351448390254854242231261534513469231643097847775566348242919464340390870969921068389559301465559934687702681039487241282353672582045048769606664619286453039108985710258337660719934156423045115596807713553110802952620770539008196438343922479080427189891504114962658055397369901063358840638161831745176183728217801707448596188170772164881264482082665428412174840467027064310133122228492609601167569997486420592216853491952231222828421607116249842156659175137708901397531534624871216287737300096398323177522624530172010073608665584500650766920868332772971655137167692339746873770383007608268749471252665521847758019231508010516415194628574179974248988239632788080014724349479567480671021289391836783495939996758484544604454218307272510848874916005863592924775386356768105161117253193323104649114958119228867635238877006335587841628422788831590284791432206128824253671975091519045203900991879722705773596459009227032314865438739390964542655648416304982845176071587149964555766590213250611062272579631458416748145426377881296021806648343331327114560827321106711382975533000667090288597362564958397469638554926106641007838523504043761582238708150266061013490019687630162257368941320950008148336023997050577542470442663042371058017421392699590850972920837725849832393049638087291759915191561272519970970366797984480624134696906276509254259111791458828847325676816977614304575095403317011065988574928268817305538665233535388228130262735786518301360310187674555877827802098502545859174100316083099838109156057006248367752039562368007632868827512091032284511911624734179417895675815540860797199821550494123042691348845856837746039145597399537910412190864191439896254718228344103671290027877556630997088234113658929117545346577451477757022535039246737891275625793985394935303861334722841139637254476091274578981053361618201447519363763504399224584345283293816094777034077403344501099035776173996667776401553453782073589278704672674701191412655724020359064729468390269036492011211286270887248524144878523479300144449770866279847554163761019938454108597406080338204275229703863820925042120517375630850374474250495812406784039840134213453968657036059646759576856375679111333669334096162505753658934426467963712774424187530491312296080910795960504787856113077722864648628062865132166965489608267030111474979928097151498196999011200819101702886038086654615433681938730552069463422201064858418467012508044806994666627932551130114775399219212196845941858537524706614197562654910689504910875517754092516186560261986560813788271921785764201901408795800942777233729396444323707948067114948605097169726260134501173903893136414945131908077026879631594098458024307239472012720041872220597138080387974898024119702271308586762485189476727564496678290463283633178626592286878296784757839241062641069102302352874844484463923867690837701981862108606375451385179855929273480518026466146671176358649788343680645599118905633440373886099371481110516315346458945551659500301364319194193596764882699846347267449084547226119494542225571763279633072724497177994690549284117928654463778028942083521817697761590933265399127334238592177465344783751407096487971158713616091661950361693382807698511624956497358797520641268487106123988598726622826644385743219380195524895051263352944972999697248511580983186488139397650148151982754886829186624827605437316801591195164711185021583602960803072002436113412967435392680589972976375118821776180173801402266788637487875532462092431340369683283673288562938125365401242475775350935969436904507152980224689030065399811823549967489458585746211160544007747122362573051677150403998002873808251496462160652191301885733778271369334260954625360028286050542210774959313215040541911634835259854424439647738098612869878504738336332485795464053088551365629550822471266644640053122713299679564527048101096637058824092933218763090292257545450846392519782530702783023133990982496193927590481687476498069625040838684073215026865721185252822741345943095422024752004459740626626917967278347374832382280501143927869241832257536240230768401495197081734176731949644756588145983802749591611273095708448664672239987275568991031270355929410483360797097041384341389627535349744141564932308567666193640976121762213189382778579696076662665362881480090548421322634848697796443110722007116273089406816938490326567549209227605819464070610707255733210708812161349704878693286460067875759474725424344115673594832091093875176333744563695552148988171995483022126926577950294262526438797711809468676176719757079079767246182115107600024748765054206908913782356144956492176062277626298889211897657849720009699546483750983393509997061109888305342858209182358234064374788101396896801556467203581950504801459660085428179254998047870321082639149724782413636167708898903868870077086610463062896473709863225052065802305447536052294131446827935160642681490879128260016320049284261308808420560022200633431141128891607967338497188683352239240527568766042170200663014546988574093702048886671562340895291125199587180023355968254497080204298025215297358858749766758188847649701502845506467990460339458284449547952456849281442641990369242679167021836956354983761403810983875162707658268088513181548338069103471518810343294498033861643920691256597467901986914936892652435562658896442496102454359198825598904888988142220425213906672073100525391365311997833145572350835828886116221671807216493752301667869675052899911667585747844708184058569873065460348156074226582435829131897541307092477676013933994301843623424145472484893800876847580514540660890115346792848213691743304079300255494007967533452314592930286063872872983168193705420229026569248070190757249215451806223377977413460119815436678899711236009761517980139020734080388182130784381667283968737614504434472170219420915298986210402625898535629412306965492045866586892899919652361386624923145448240037969915491031204075068960180836535908363076577255523560355328346673263180391093443302979828522030978442841547354483965554199440708803141520090135850681673676813405739534199544007554312899508392904079123785442298934673586211120515540386243394664367737837992495840094960093207372386085177580173149778463544862372681232773910069119621229728911346732000837252635077985770233161312139555924425271578587203978503453739667747405243867493515474205886158779402651420660065829887096620482577325885526164453354244429403904028471596156092108810001779118545972017683111573771439460071062078491895845990889507985845362427875907356571858908723378240265533703196094859509156143117736249612969006275421960099866408384920616938274165356403344852415223324362222571381874280641060778813701827156992482905194251215044197480462118809517705001101556972091043676450627276895435860216383270819988827462373446869506341577157492266687674006423228549859872771915165110962768928480419609181042785896668302925715889327866529763614033571999688506781299206026406508779765373475238144881671426440858248626647715583530780282824353519969315590676197681643919820855410102051177984273395528595229705985406231044939620388728720486613080143919294105194980222582785918413923713067774434336519505185917136037269887175319882898701644189268133721209523883207669700282372722768226371066991646086909728586749669779550615729358418537370260641580409097471615286737690989509243385743904990567730985841389833141865493734419441129395375190789949705583711535740585262023285811900552635139571403846948330412431344450874234766648469868967413864369099745142031666357420612101374820271929846952412670286224474726423047696681343713818512971954994005301976245712332731916412189559840395145024072884271412094983911164312101776842432684810672272673525735765478602216182014908163855725890585284064283142306692520001589114025646201163245034407533621874479295926883309629662921590814614602352983581210576910507566667740155253610520557701353055576865725217280740333811329231595467894149986600354924017610324641098964945866484248615258642961749352055842705740146783705430844828893323722343741179372311095168900222672191518256522585538834975124497527076713299010478968036701742373296690106901260524994712080110137155490717898305122963210824917988794491307082058085376471419542579786181466961134642649043607277531356047625391964434837632776544259208628445248909361914036882035157135279227378128734424722697037266771732988880418707058860093663910531668630837102076900494551531630611749010381539242124278414417962280151599190556278696061184379030073538709604150054366657404239563007796691752410990393390332385924828642217658773165010552134884248220012521623582113658786085408186085396530325385431018773755307553966058964841514808460444068825668740236906162361877046599413413536664142099877531339210794252404594780797060638917577878275395203047024447427652113899473597293466677161840361573523179053746850786909559624925012938593167037289335356752888778616454144463212494963758151106796478792177957548007683747098616797136438909689348547042197258192506573769160697240218190567817590380076093675499757630270277178636110476256584209554623283217093520202813880849635631214355183221419804075681346255536593950945602588374519312551686803048280472470960913975800300632638497152885677590575541161592159944334965449552436517931808342243909240074596262464782795959919355969375362043223323539860666305943751162434277002439794043819767745445883743232118359816417194476443071905555012473831836979828520118392063627747159716705987379114518163479285180448376884163465530513774297439330559906404475148784645153273296131576401264582871723165850245242010516691708582455961522295639282808565213601693863482080670032702766190296977859360392423354381581241195139096923531526486551845131830377507914608680551705091650282682583219341420953269392804105713291550544013678393059656041064088488048866823037890509590808898586475232623569127298821580246691650123520484076619163684709274324103232963735688011134514926731278268085848382909350739408233923955523114866111878941118421336110936642576975126498188746341350638932046443945608636989623679649062527550473253321355380585654694086406313943010452895985634179946485929773225129604012314840717922373631329670147883276597612389259523235798300782398144632517847421057670131530574458125835303777547842126413089638166124471024186321827263513946095471203307522850640656503418392031212838812253896702286871323344557173901616803840468269783297115641195709265775187898220397766031977052178074355792319090445356046081398629329086561081265683033930831626914267454413867924238328400590337300529600129254943296309441863040394363580734252035588675599128422239977956788131354492622244103621834013680899479041344345582226600183307977096963074963613431562836987131770116854476344057432618808984983463419247264503074850178726448767578516543405003623354626193829595945163308698576008400959027266545091005104079261602074014643864063034469773749934074495538654590449493594034234693451681857797793693556882853023386446815444446285717416421788636315267812810032307423727979148457879090069444324516270803188279373066601231089246114062285262649653678313232248792366814620319866432243047537781586732960567924645079101131174768333391458199758814410922372646396886073430046994467284793351401471769976357590059402233917547385684599394634659423085782270765565577347186389785940029122432220046559275353508484864567040437461521012627419973463390934209384826944820387748794993300759375594066986416924241379557457498429400569076191398557549527784156953132048723704961204467835757655493540156210190794213581599627907675508471676946017253718380406091505439818603199782081825959048193729502118678023690078828045238404706240052425482487778243717054689289257158505782637675433019618684999749134727768621851287479031678539109940666298568053799516047635712196558321044756184180127537482963370333562139618690371102400680149622518466825772086038126134026324990070282924867618308069521871131785632647926262076809928881400225535026296761307865184517248885505823742978234227293054546488136448175888574911942237772124815650385151658333733004167220233413627152970624877740661201718032824691773992460094357353369914474792263864755700897514314506831467924169253824599864449019038037730742773765996637325631204285098441199902393982033614082766688612220353059371222134433334039826552948403979440608727691681984196410364244048319732272749331008150210524601610198319384503476933886113018369960449828313473509479964012767727567943445991617701206995100411047618907529085462199896799427407624517562843930346309668864240335449176754501350271728434054267280615332865535552407945082471988426976484448779141716897975183825840163920424994328822348641798677352034317302014039569905745443547014465623657059863091982486484107084884908052345248511971196638458372428837991438261063803533589175379896050405863369151739921347618828156995416837011563712200181756118197750153022330053173765183359746851079993498627548565884284143955901967713233326120222338783094120302260255809542053636378370645298509954919572952973685599113450158104490637055158573120174687386840788637196101116502310523549406758085066421967306077623780899660206251039933514772180352984175898220129396138099267751315004457031364453816857785553163509830260613361483668831675916344869072902384424516043672531495006928457886738786554907495110664663580670430477181895544109137688127592082609786600319276029738896880818108925347352482069854490945434644151333738776550821996313974612514946917203591283674450504390685088366460856693379497083899226482814873991050731093359877543324118069774348594101209093110344880085303032445534041940506795053600488232276656188956513982504828383740745926734242545973767325326262232298604319519640135659586931589723749766221559320620865955474404069835180531445282661630993104557751245577535024084474492773442888413897483423711578416181940474608510718733991493364543521375664756178748185382392203426286641418009496320305114799016794277980085360055120915325617694353972014269505694559617097797958017814629431368983539567019312676998099021903866396693488119449755789011980240102369501815238826214728478173360328536415757811486249536773945237546257115752503305707008866170917536475447308080445580441154781464832146589289550458548555308665722900022372701093672699135692235571408493405407034697037351577429015494266902151874957952585728418293034415714889577006298167983071626888839965916489788151052844659485827845132546496386612351550997305170867970279677741296412417949984200103679164599147571030833469811159085694561187031639489652982327591199766691936255625745400221270417894937077416189575004541901664595186893026552577412345748234469572017932149647491558073186088131696970346805885797839957712129777184535977054120172288308150804349666251093151272764525028120575961355397348043137175368365864601321028112287668676355253574687254625893603478040939992912346249647731261197157358331187219619336718027055533053387951831176867659127280030778952378059500365347780579627231962836315713943947870554930711686677670860934369135830123357158851965592512019416463717358703533276236530538538618026169898633653736264910826215064202854551821525157150635836639391480719588876364849065123366841847349418085597452686999346000115889956789903406918411274322198555584200922311975417324713676066600747153486370675370688129434728328683393786898243809017081219401360231366774593868063566610961116151133267132735062041061323402823733235148230113406226060901923543484015724857369138690503064476649568865655000302351603591287225397228577204830229261847911365867378101969560845040009432026182317990733902002939285277669874175813061504845793983907708366179084427042558654011628812504124522451018122745025316886649576834986194704319056340438281368484732858485591803058205246891206073630903654499611097411495635685983440151451304414794978273539854244083141934759009382891704857127839150312135294687107502517403273054477205376393133122776442036375695257495950401344371617521490674142182313003875734234254698915420671787160651812242824270458784314458381527272910456562556478717481840421449311342831400017488742525072570087372277304138319489814890797726424496386885968661475687004817209095517563349867273139341428464468460371520924396404764725885215286235722331218280440064018569877472719893688963086169213271344292247519442954400799628809151406478514858965081095624159887186288968840221950090439689456258904728913386983746740395090628515642273520284528524595816707054729209420623611928312606318161340597452966765757479520010049577408907630170086518364732298544623989716202853223891151878565006996327105717570728819105399984959502449047891008336306901383095183082952457622165935086681766240853055727704115472761006270704070816996346401606488040139105926793569677981059309745224450366815360674244219046337814142778927761895209838586302612897651155607656909971659385405973510351800262740883635115728873496335876669127868746095514109429698926858966146645143604454360533225960274009594819260752336387316369871789525044571304387515043984895017456715732107543856811935328686005167312066089120480918536503184676829770746513467530105206509483349522971780663190873569606854383571097478685799781530399243969450567116941534427239929078432451978908948886647237791861539053347502514646873795766955094835848048982806943398113644591258930169787579494842826939285572582551794035817569821895545561379486121962733183490806592104563031205865500114412100418207760582638491659521732832371001146054950378365499285875059160833801024608950810447860049567219585901645819341732238644967291935187072137349784118802839661975765494143354654216325124343486708034529574198218193000453380308649845467475620071998462241761110754136628223129523475780867928635224264301074978345924123088792573177173568814323872458732763631876755699358527484867470489163516141198504889884312615812836041471128631742126913685423572971224454808979413666935553484749967895919991607393731757411293709228992041509256039238056874531811109313150698318740167635405671442342837006105348824775754845578772626264103396282141140108701002298614432759162133434174832392359386889632833774540696432123176832514172928906256982563978693120632249107856129028053405559265595134976918707690833883652096451486665549006396566241267873568407051889636799875228976105102275342065967000794853360384740985740097221234593870371454856052273425171035194158699733715863017045484881258048391573964454473038760537135052757741266450312876798409781123111998448735129813793660635657957036525856096638940259820412357436112362202857858800386038366878665303222115296235289678519842248062266784751347594261445650041269543525548770408323127851347617036426112735490034601418532283030541429578371702842300593340904879443323341389643122306460473784512474303573652429858581813143426435432939759735543578941492561848681356560892751000994845589055455684245359991420717904804776809725920241915185763045488909915979143638100103731490970140100824827112202889487692692720168353221745116126490496617127400422524795936605850810989977626487625007693930897548807476433544427600139384526962421160155102541534032960595717363496665685422170444183515975048904375609006425786681849886910565479493590022533389924073040657180789319680904776990208439010136801722084066125702591443203897116266531254341112078292387696591425113171681588547341866921097922920511225071829821694138427475219172090000162263622271798359281433509833541378287746074585337554854669752527756194635574076849030471357090143638115332861006160268485777466234287017955921975168749460144337960319933227914379764534073381008798981280570339147448980855231648166351673758260113961668614817839068839686639085805046785006040365658524963441127596683262530419394804546138512140291769600697391206470227825169226631576844111659765449513969608123726003095126986946306963699512298114061330051936406410282744014819259737791673895555850292810742363570851674436813746679124796622159988073538179211029265715949743536895516143342152046963704194057496838242068530404794400877780508022424945711417737107440197360522135888682239202992726791017476775223672585251059404619341282641465104317193130043064006834191975631357860422512693460785786344378311872631371392650194523356878674306203529307977119487815793028785965672097546402976261615642992843051036000107972030544614240655107234767179764226311716086557937445387483728809571286961792873349031915130718360183401895790428803290794480977610372173419665828366476957474255693503535641660696406211122169380336531061729861298954443258527320658673322885906157194669502728828452746998049431641155160701534910663522087402234150950988127107349378622513251822292474928917379367975987347766899237747331515985708186238925831548305097520078041944139351925452624903793857900725158377466633830569829338441929007801947749655150450905031655367689506326949281174656434627051754285958384015760181534676992059229995118508381271348829432075681524249235905578532036976994919028183309741600004017393749964079879265823003261190214185553882916227126960409139310600884265937825375228581579780918606980264194242871961030475725964838405421164142736279161052775721564330333460869741726392014444408976836318017257383035563514740804032476237440631643387864054126655341251425547205297043852589659899956895888746887226892393986398799477193816137154508225961223109370778281757350454447397465504724328391261383654343566312809900040734787014841538309269487661216325192511445358969550604500869536976976219775234381771075448886207748042545400473580598564336035721138503013804493347467916400265917853108178331422736816390805446293499514507788870877866345790603009608570460169987868335671619911165876075602033851967360583156416428899643392714319825523889857497542067760380328658400063200390079826765305063986258667217798481019689644662592901146103345132514402111041458993921509500608090968011010517412678694147637040028297832788535623412134858543887183391825705905194293985216966624872684203348700727519991395939454792278815416786099796890198027877023038335422865841829488599564345525265621733835359566074673852203991195727636236030897296904130189530556681499103196926691909979664370760970628660164024304877521304315436440498971826087959393573293503681874705759445266357434572219858119142811152464393689901609880801541640895372016306064097170583765807574396644354015609183868582364593500573333646193959460952392217779887058580242380693504923422572007534139828147673416030987230590754092013269166718482511870736031943091925844233518424221422181806994852746547812121917878976378198433390584622326895394559550086450484937534182860849706752445650912063771836191295536974169733613293578784939278992489573359188258734447445760005448279099002973899340616612619879923662087241639316483812657936161993042846133044404094061097439577904820987671921728114090103407807765250945403574726725131822073705780792807983852534950821063766115120911442577147248483774812802523791808141388868604540805513694517682431940720307202825808859021981709794457121877392774608736451232646507947723057944970597254905405150066161246914453169310575476602801462612578396421906162243506037680905434371166388283689352729184216765304744947760872840814261584671597334504406381029305543351241434670987244754245134858399860374542575819409391829790665891002354098354579084018319505323951635427010170416488352532176261469197841727892940057358302543230614948810030996349700997005642423389208119319151343948628318478332463765315067583999698616190649723172998351969309840258420794165887379683827902801158927085114666955862259385347870530667267729848290112470820146832018463761186053044724947574510871598433545801151401766778328759423750679656598368052895997298364671162319348280997422650434374436529439827078435455947354568474577675369719520482027443516984493468949279397694146694087147320314941860975101670277622878693799090216888949602575995535321837169557176793526726591563610529671510049142103600430607330953232451598582781744676816234299616663075306499406543684639399820620588992771402024630313068772813776966699935766213198910684565169927466647814066438654314596242223863300508650498399494022857312351826997028366256676464644033075123512884843853273234774690410365718007836857448677168587167281810941811451769682799551990294636176183738981732093376932862712952875975273411591591167386403898918896307068944710709809490004952059693632736912017022319748466332932466638467638135415482358313752885207395452938922082786142878775353475291983079756000669381319812550110172152404808264439616055170592516280122629918564406977454805792826520805202289186934728032867036981214944959778390906758280828736121565150867717884306088700956493923634933333572283771862162414743780600497451583910000357531229066852114027634274507007400264631975445420335740469578832120711539713553193841935964322015518069100508079663268649834185297408321423484651897643620262312249946911656138503247222085957190929704919387519698598347587086417948224599266516935400833862228613380886232386798841482192601801337499202638901811205743473916618893419574104674795957157441098677401480371697418138457446769687181686995936265090692249731868847787683090064243377906435278022033739136833598567530973190001824240041807448269248396503837019225060091633047845736309178731394701476335094385643987556064161239305030769937753822731656758352288873716186411500334276740024887924421041464803869782206794197917934321248574646943373419324587728826184780355358798295974481444599761133068289292750756415909438230754500907487926203086367436899392314238825468747426618658992230875923558225451720255932889310573011402874302305487598225834654763089894127053139154530438460182274512277966930718144528930751065449342462265804351173275164864390616394367025159652611989003005223959931606258995700333665658198016353555701366493933117357427440872230845580045384582684040655915971754049427952723396712105842125171730556782254017820764289791553329371514839152775017178059757866297348449698385079331873104275960126473786459730304456269764564727501696524947533152656231949573064056521103581185096353210951120528701799808865606275560740237432478962139158816179680384921026275278114819817397916261594340086234036275140045960260207781857678362847292046982436125278896250319421077309699083393104165771506197525420970834624601887129933359170128117266800176307284058349469841274175288671286618573222007383910226019450017033993430859375437281177936015782978736293722382766648902233560464214781258080778692727669896972249128352518507282610385265614776620813204209683005163661907001481509076257143280105070468713225732371613642579668418176638767332733139615942491824874293476356393223276151881902101319020898754335608722264485426587973574500582691770826104379075706968025316048649527597718963648758669173134654787471612742006554546659826076528938540270135267956375588059197124972647455238757476863228620763104347490677857531738020881119020894423973283745636640761228816452582069666464266295478480080971464997306539118427266398311955961374115108864987105014500327495482473937127861269786663786867004450587649844568106247270017731458850145254168705914413088608203453729934629475351057316018896603663212185788666213627295827427091578838851992591080338607648167776959261759210899635742525193731708597144652653467914839010364881948822987167710698358893436275477951230970522842783840668760415012154396504666014495240632966903956774137098967925149514961206113022685328015966565665789328148059113245660260451115642630280421616919390078774223710210295746780480969974839399296974224871970073364436672480891842216115077261575452769802374983022228922654641217565127660614397398462749347765668410589501848709947037231845026346324975730318999554700048257618919286365008143271474423187979338540849353661788126145960788047043593234490512130664015571001032391524413429647535797539690394623149090473380550360328613272914862917740691235579836180153669329706670041902275224008407918011155843697363170442903728061087300142723778438706434401255570691344411052331901321195881283262448584608160131406815135040890643621891974770702465997793233891968476184875910123065478409003997218143499114768098288894040620227751541210689322784755702193030115186261855886622802333478947900548324614017738180106421536159760663607342506660436148811492123404976023637537643870838354967937692639874377621369299182386809280998562298044006481325571933950683412365488918273334166306624610966447557773735960487068778548132792863757729467947517449166960836998284278782410812718987303568649356378578020128333735489559832011045866327228759661624049426155301591453862737080453353537304587766998099104283210456146169191353263987468066346938356266152477726782354999223686311765665920146070755242743655832551264812056255063499791027486781006652881124532085954540425127740809310014455142638716197481352471159327987262186368737267290636360630600627960735288319450676023466364018358271220949663221441257085593668620833070195101869282548583698439747748055013136439157376478345705515859193084718614600314123329555048088816530179722530737128682142582772651765272572893128416308200054313455209994215700854404375655808921310277758612854039740417170713241094621379650475814397501454361317686787028991593561853979284078291559421181007977182459210061426869233895301884406732308395807126873394185103717402245806151119808613160267179579729972802329568818486401240909649106966134617104430706811248511260054023299439772879884494403070036438917040179826549005632613732803213077285554715233954631680622029708366672526858757489901846619216468657618011375801721402753567109320228410192674646609202960293844340387586367594068630823914576672351069789182059577847086233104277215670401281428692126107304844626613801441518347228208365011451641835408795197736530373900617376615978821763670809403390159746051434023840066642747695095910656616910622024956099026941815695774674966391211615271764722079646182130696230794609872637135016191177104080315209595063236388793121665887789738132867909233010301758890906057656943522677557321800412970651964276077585919552969337799825404927572933843653941730249129701909089280073948739106762455088091881910004645198424817582081640131967606478703282356054971817767310478232631438766650392533272726843514130960903793748042079000546840372003590946911807359104996058543749457612142728115964347799052577875074056906587625105577757658698778143225815459018053783928815629653217856365865822636869980883620771856846176996767494411594368217168523441166426412954445770969370291617837039941118475227049509134868099308253213850645062685375266600193407672370257715764424460755090292451809388371379738797112363635706179029082854152855460907635386877290833048658977985179964461601265843597255137525990944771297173916138642389908840717684791396579225750025601993775126136989567041962228907200753887603485322287363427927793987628033307129121971383183880824279844815087254697061669644995356664957322596449908621443023893930838196513881371523090283944179546834031428724671279303297938172256446400310362838592298177687502382259765930940713816271682120312643123527205947633275362896224748425355670273640617400937365670570073333123470937011653911394221314970974416249810607974337519936247537588776163188822108429956969012707325591461044318746776680216959942440234383231295106902082070221654417195376587116269776133615849659717331266184616739537070504616247368042005764422535286982793062362911581762700585051574077008912830243289473162384453653885891238441873212720469778964342106917799853048594375913028294069409081220160726837418338587032863984626112601508708811199782877654780701375047413684564210735237058135163682411569345045607115899359705070642781325066025571959387625980148525316404938474429703858279565407659673432650602149740302530907632857657199619971766124874602620633034505681354698641612501533551585522766436017833175841854037552772694279798035606407129226837260077704157309713976228366925318816843518970459247185850191734246874713042073066739016052341366825543566738890868042106728187654117847361801155592761368485520869123541768443586115045648954539904643713063339660231773090235663770592469784186613424486739600062158216763063214465357107396345350103575484145942638015708532942370615880501230917659825570015686430578768607979062039294449354483541777273761815882111967280460554345322562606025151802776924671216650141158044184095842393842914176511648090139212703243628308434753001912285950365225470150989999034035636984050276957848878388712695949976749005052489558165546595703122783932941438911780499121156637961263945521750197407462401851420676852881208193412940030786467266292470397239895244711994766996272273320746422647490636461525350835699441365114138326036376922294465061386272424751571790463809777096435817557337296028423491347596372920975401866036614525283900617416523002003794156062372354634266787023729824919315570098963422200580150779500697739925031200346889802364655335088009387522588161873746834613450182548353881704288333236581503594678917688764816054098886795258122572955275080253012400794602428152611811576831185600029435301723873645887836770867943988620893651582906393972332707110539289359979361835281487646425341200980546545783810325854796169967470860476177596496348038291257439519037252124871623234553462960906451122402612702514464964137440478595075939916501978610795829004250338430118359593752232934981653372300605420898446872684580665444593815895194959944114120993211775364275453458401848559396680324287678359186546983409975314663758794699442968748550333608986199518492302956167499298058722414606921820945261182479639690794363550218143553118053331792848272220153071857383580676504240572647088960028110219341315695342052393451730681661769445786761104069167558685344740279859748937896778028030236426203239353242539045972677750331570960704219330582007477719445474267122681819856373914561629932049303816857118375506781596239685801828722316390317129339873371457310721328394705953375833621960199607144364322195495220721022882551984422713252816668129229595537211735748255829774082740808815473040545918623465198771424059008458411869871309568044760286201363716662165856668729890163842480327641639131299273946496162545818425367317064215702635822210806793885442785505760555509174915297095557903144237034754637691000532895047400828195829735835985112155540020239546244092115841067434971802169792390082752995490704318225598911389167097161747868544627971414459763907164440904700599332673313575713292136072030423210703944200938958095533718038969547164080589756652475450538818191844221562050154809701411261215222083318818639343375274737094611671680818357913928758777702039003256405944329254437740751098805769430738836689755478502233439288025747451322196132432986382116559855824320319813374034325290862608020267132373372537206088702077127792407182227252988095853364360551376751127629131628424676584626195188471886303514112170199291941099401191872977099957821046856227726301568483151917687602411517204786502756468025779181775997952706887913436693343818383609006405180213334927982132986766805610871644601516943597189245181638306601042482807289060001506091076459552420793694941162940393467619380146021598406438986974316556744388628572682908517157578046619128721620786156480881923611256767413604661767460574823125872386265619095238545665412614939981559771684690101815799928125453192991274226904978655371549373245983518613676300497897983283745397070959801181193044381631425268088281511328261550774789938094719137432162266241037897999465627568165920137667508447328194156672856668107074841746923304227901459136551661091081687294773339738676032285373596283774033504960527755911040947738274146984719644978230925452890216472274894182765148567352439248587862912517500632318949529454339797040055630020041635280267799202470006512117535483789691803834227732872591183454089098201814763492380111221648282664144149321013967602662641400293931436464692627854459867872752815334312319722138508765848647287922411512849517095065877582400572188030079245497974669989097309059144527452499015662399209397450008915157669449818027251011217515869385397095858043256632577237265707996041485527816046157346912333791312171092791821292277749264517414654841207459263869631121187820216114147766083110539019609587840663187681076675138090017826022954752490328398471185363457284947546690016590650881671001665407343571596186333467961360213759568876220952422510674334297903405208562946670077900872686988898638413107923718878108161449648034381497838822934029150465331372573203360789644713291716740850236348238205312096780568501058912250852326929300889620886258624217889161432588755122957498435581617606915638311006458663418755722687501568534085157299182896525329243519772990993506403572678592933447473107680221621885426122761027670914126504131717173514948469635172708907510777323351342914313281293853464826788918087162197543829065329491110441319916375909400148150404948512948374080862554937148000000297897534512855065373847096140696522625777438220947857780486338737010390414296516212871075571483941081940879643028933087295736964713409122452395732166613583081834733225777324534431166148304951595419446463745594762786896760035794858139946028142543803048504450085345558201571894258302199519126237308269401496651456933538886524011701506374586880600898800991718640029926365706026395275377100073583648955980563945751381979285819246456209421660626569825134901143853095379561145389932812990551128771478757273599992083279426459000964908614463091105639363957629224603655754985553817939785191131511758076567394444775212027946926251510000480315431612559123381892981050492690013356999317960371568798770063671996617060876734485002470158384700804184981823860090351375182750153463086090109502080018512997889809960374333725209037328784448821011750695489409948255590509167747712509681934507238507537039683794901472632092732022431891292178607570990654417429127693424352802026215089613212419523313113799199334905381782687707656348815702419284302064024520503484149051541873651080819778383839420450452568012519337560628810389813579947200278679165940987812750233456838539750192312321093305585452189453483933112903408070383522591221933378177100125680675926856762176948809908198224059281261317613822737864049669400959594561658147127400550937640355039239074980936005322078820845843575373692428557635050318974021813656616401415406244705977682143419094903253060433890581930744130873744173358768248982146277576949945842847849938955880404441018159826307591035649492367017504944131106599155795612737637419191201592552603897765343383833122953513768046135208418821726413409922078180817964268493314057729516006619631105961047700101526789070904601439215560923732165948871776898349893479978087157560781340941172200563438375863993199035531892948321480675687691525203487227643890202379044371298740793896547085241264161864527669869212589916139692942547798388615134109358499046680247491896061585125895942686584224019785531957589206932655880827999867838231600539001860162284117973846152040682368610702966818429108222323742111018988844072321873268693935995060086052760736461253962863909322633997858644751093255357805950689787455225772271587032166995609279020256161164724925186714719089392589678845046678072443574471194492115117272744542975291392243690724650424771256742974239653151368787008819025171284825476915494342162359178133995992392184578654023563311450752735031518064782856897312809246132226685687754297455180834825695619493587789243557199727105298935308435753944890042638949194919113081209107017403329455864359245865540344312301479006563976448544413763207543147643540631271372556580582580007337659773860684302597853758994521643273861858840164647747783255144025653721004217192535308620375706892966249584732041993566882610171470794108101255719367970574105391189072033074853259794329342282983023295841382355309824372688935397407891621036027646294345199193435483799944020149673488771529819039295434512150560407790260037417906867209297997810429695995524874284203863055368156353594204335182313601866136706140102918764616267128887377817334853690825126469186061021286371113748613524698604110816022713614869673291660084341201101006229364301443473977559906201763056763401410051935345475349738764970410054000065661315128175583329796112660060517229061929892894828824549187909159688829897479741593657767303868313035830851959575450093211865749304477266429669499508849627871456438565718094524351853386040496450870254215011230629865465581704714897520870551306218724623443008573475955041505791869406483270430490702792849650646489002543458807357243098198609614551536067911596365048044742857561634646319888971836317432263262782033498515312276569897046344109366705810955797191798305238617081333847351730848344147379036721432934129616606168584101603426518355090950377916377806902358949418764781367240441882258765500464961165385683860937367708627387718077777754574395002096529154792307634716054206384403277646096594621665065047372939653739032552199011040736689426945279356120228169738241612454001842175530064241660442955100340091225335161778943859945162571355087319624010210891848527304259243781011410837347356088974774960937840590479558142326334250688011632846647079148650187190335379863666314595788464416985998261034220725406333953815048778523861725299260497636805384193660071447763572164433820879647129191586437571070308345773542201005550832515208160616997440456449210535020209298794546350264542870116378685398516251305639109139611259690050696549014500177074017439821550855285474865992334752275033175050913840045280731904422204704460029351927590910882074399296613588586890528873828881569070731427298773363236659820274564140642486671247204045137897574446633259625815675853578232167684323096038152466965110455687601054235810426945912741828691465871331596220794220444647067587807321352621181271166725599636509348988331803512682806268612301487604969690991297523780584749283906573333230152611584891730007621296280140466781770347744033746386096567514819019678534997968344854510075036661802029412949183123383588715554191245540823011096861370608399281183463676177710623094260678259375260717748070514339494946268341099253686990364880470097570148007667331116599433713898897404710825624716733214615011758067191959698618675863963992826394597560608958985373071613014319203272472057217959445261393155885308090559141657078629967909624694119441998549026764223595657231679142315230238938141457298868602666405510727060428016030514033545578578124326693670975059900823142185663165741477040865261805537282612765289895614146287480205522475247141339171222047960553641286236583686003507544094081997030777745971507808730034814308045108086941226845400181680363275678719063427206724674148521460791159549355978892418123222785441702374523088452361291184936936737300739118941268299960597885777886884974618642928235065060035152866885809473464761740930395752560546290767354875668959194249089368709497448501036796110589468377182704618092412585692835568613852107016729579546714543181398655788008793089330699353450956105427137444828512089582513659604670133139017141862729191559088868271095184388969022811490773178336913206845588789359876104314401643456057541625499371966551425622223419187759818158088268331513695643685498902118811542942424621231372958336125320396973197171712042827180450907423727298989810465687591088278456262644626249051211406610234024731063557542772733640376020555609246988404293650666655326188341991030014952496969456401113673677918880287572429008663665035797252481937753915363513665216909629258242170554511288258050035523213719857417390636659013163493395152639407649422364983574045158744503266314495381575226860760272568835538189997399860552489976142002553116955605677923648654783276467683509416713853772836726037640673572611965276617426587722096073835339199595518087752288604633835776676186642353852212828460651643278246398718836676759534780293715341095357081675943667616883552370880927608741344050552139257946120169049430475978125453819174680233461018128995492451769974507247096604736126920626004400847002675951319981004978634832201632440711068542641228984974860037116955466669975646648790289694988640376850539120006795038022701070551684472173196282243928101894131299129573831744869515077528633802585393947284188404995317733448457265364709321921194273082120423681852764002339714723996621341888022947716740909499038142877488583360675925687940396945780939034456034712653411650245307572193949907910061813251884378247916239750576375179050036217716343609993435419802165650273294843499730029662572984538606817008037591109528388763154876757780864148911284369186784750973971357923156139279325408774907938821709487553831762271683487691093051914670011597109851149425601368511616244586296129855006975470778857243459100825581787491163133128027814191662124049336456327875644617066555328438103281942311117032308877883968115330582609012440645899292539809772640709219588397632048677760406427327698635178875562238635769689246714134838418227695649464098472376680306088324839438367399947289740072397820519459589568125228241611692359356828293062142105904193056483491154623504183819711396485454571236245748118210935044318747274779536794971519009214967396661737779797715649741790837607628934314373280214080567836139720714196303128119546258266348645421380344021416702081425026734734401018764554784644457628504240882237195900572062479820996238477791703866860442453911620786035657995990001665147748655385676887249430114474833988290851823168934793110078921230178730998169440905158992701282508216057459527178855513092883558592434859485788464312814381026266793496411063096084520206069440797722992830143399935803804973107824807979893260590589032324688273764631211886311773521848428978329951552689692997312560922845800477369183593795946020472311054271940494157855417590466982293973138612870731186499532901098611264157679239141081207734686652855908118778878792726425286401587593103740294017774493147317619192520858337766157423589057594318007071576539393851348268639428901813202087560025744703580710590906271480016790006953338915219316772755935783046141398283707577832853565968546948510783492849898592363784176206424731413758581724054634721073011795331334873328997875525515929175401521140226213434868546880461597490438949751281950589272350774278507913300358308644875257654385240710676379752637439324472286209902525846126090197353813587614271415391021742208599817186917682079838485083365968922674634452913011518351143573044121014506718095062367408543272366710077592419717032030744829405770437514453796906967331985446967135197091109033775184939071858979636385761992561883949605082236209615472327132003944056075271816811034771565363587044201074150802576643095901991706653452112845702702145817790791483177834008402339159638782603388811667243897990498529350211201855337177026428867111776443502857728062080672630684582843452362467454540896707303126564595169894737803797006666766296970399996957707749190674091924517061350753836418482604024473800846001546865549914746750407295767631300150792763666709222212392220273705099414305833431406271321499022540440863269165607752712231741060078425750710275508872153824661532327872779294989928670791595504092215927379299127533998173914744891785924354167872333938103971755835691724212268373881937350419859255091606278623177749364081601973848257524446169583068970968756893838916352780266154962505356248682456575914586239797353262274457998365989163212771131063350781986156454495339729890633334502588355286449823570073315474536207375482926083826716499033783476317015492428379419515662567758646146597739931653145453195827788919264438614927992864293335983191891325230394866271913122266543633852329442857963892342997632500949664009100423136560162043732383678131753637519452985408886539461681880200892438251584615865321359390720837380138833463811972124431979357287230494894080620666476269262157084571313891344889758049867095319564132735596091546805268870503329735654225137759250822698081830883561820149366917875302082733562224248762933016706445078504016664403652806764242327114934084883881061700323481228918062658085705256812409516685278287190212899416192435986584246738483392940904161582629357889763212858615686851915629234010652557332771691609251786680749444225043012526997737359484918570572750126784964709825826715941493339502125151742333817142303307829962746963668848915098398967326870116069949776918760462476037863295385365959484008783970583859089116535822366040839520165980815016485314522264260591752491674751480006360627684832512992214469900384463436086597244206579824218279334578059718052938752629207116650816437175318840982067482593952545585766535476533107308041237310182519647595719722828305492442883861530217255354901552858670933283863271638854663632053930893949943383850981155318966487245409293364834755768745715340968118253954548417837067856667372179989614207441731830470814538536190200566808620438693705249712151665813255883558446965382734034709940472545479615075088460788906911804332263663295728832996475093650448278090588883642031604870630656249162000097821086935202038504686071330184905930861236498749279563531297240194957674469422386064480769629599725299348444096384006287613072872350341010002268012462448510926732114495829465412159242186026698759877088265729707107156083839973463652020030126821566671189848122108625819045025328261053690372413434578503799691467244340318739360394056509255542314553140207282732699776176176529324845154380306872696591331922913183125957470832679784578285625579059278481534111790678614554755615433859593770019594467902063651208225063273145731969353130362788619640137103932752907426836939654698804466175293312613377651048863063713208786330754553229665367901123956813619715289978949181097427907451413109990288003318889616455664017640993755083534923388311641704068810989660688907476943198167076786055843435018400072942074953445628712466906012272398562223388925618046174643519866971519210713732324645144318084428617348210633999228636605915010373652687075304429899296084721070589511793247150316974571704561379528087828818405008665067319630089001817633204400757844887472770983750415477584050304425054929231144189888842026667335065739461912012457521938372801117453729083438599802076190338901913687786217941731743550038752372841938094790688104473468387318670264032817307889257807172098810757623323644490946087120839227743265159395771587745076134366164127217946786836332092302922992158082935676781714825637491502754211117467798419642391346617055212714925430023148828907414415409720034314077768317551138834219171942122052259059463611289679452708695185313805383541194216431206082893821747829836772145604834089796471651420167860866532300937976293981088613860020843587412191363182592457631386869490826661234949262036052211734357333391891365741395883500858448931584444088736820645676268272071616024123902263445522143042474965959709894646232178842616336406764597019074339272838699584037203060130766214042980072306147269831127763567975499507215770059138681780544144000378628497041586707335301600877478261433767606477340271371405459215903184862609872392490171999014530124644375066647098873371208128519286636014922536362341533536793843391866148308227250150249650433280559132474363487808376599582766503153612451758221268618946847111862810060952097613293977469497352396608233962714247430348823466287645097159780082729601968129191237288205913579305202413767983980082214630848847048922129667696927191480064896126657806547960083640496013095189064601853926621586056490053588902437148476953725696784066480391214231014627171605123761936296277214640691314651543880228318625739750279424189588728936770797564177171442123756262149608364073577349858437525456052752216027927185534052160726867986217327755304849821312565943245530479799379011541650824273812931000629999765258037197146922292381301465528219983155646601123670128419588229246240135950105178876365253558762117846596010445721564991638949612929243728320738683661422134819523197745261223522296318533860178571690805600031866458571594403887217013202457920235339063224185900849296009423623964698566711536941755348600049299223241177931156681144926390056578885486183694676375378795116220642253288644089867771603931001230215500262372175534000151327484650879977094203725143138966272409154219503151746276932422746151657133181036944565296596877470682284240654434393035264982757733948066963745324634805254563588886087915002101468081059439325394378447908405415571645730078245076794752472134448862627099492485303645806893476206581202050235397550985008082288707678846656277445682767762063268265305778062908429709179450910150820646018376343599038070121234550434855797114066591815778213099962919723352881468728255729493144989747259162055171033814923931013918301246926843671766856765204250358828661003983491543617484728677080182209225169089305334997440938152587833583213585492480692766067921895361630096499017036964592049191202027517694858280009441929372705828585602688134920085253652569629051665973939338246376208529860286368512075803948777488048968389450214895797702577247070038292547658764358196063393400577412939482192236198006395465328801708314179258094161531656880142300608646076471403770928201473618090282007627994713233097112149379580314013357697903116177930325884551654130923278080884838974172181899899447081195574032886197826042866972482548162906070795942441747833690523407954829235937698468290789132598068804171690540975248894110942455004340015038478865126199178360900109217316186723370872576789332152753865458515387725798795154172918639593396965663185191208569854202745415035550745950189096974773022476592515242257524786599123824495846422898082522463074234505874149983717430354508741748373392193519147492302613613352007971914586484694153691624113289478530001337599714089890951812652641723898634490418452382663283263878883199210241755679708044560676686453643295595067853026079199207258099817228066370375600108561602661420684722884829611844511854199743198188574185933011219843868793238722029082021440452848352135589675885005312674835593454180700992818471398881306877638919046357837701478152381807576550007570673420900399617273680987909079312558850641929495622371890285606498950569562475465923110754907573283681013763544676236113139082404942638949098841659773004645646168738475228220075306571833001198086243572186929757241238270662874817780980014604824330165584564281951311445246508908874636225230478165170756894936539023396500573212458855887553466440388946368497919689689410261814060946331956689115957041019896099570569219174627223613544651349585917638427034759812626983335418914740707553135218794754975108920317005295038505072223428439421502493948714107014073242816804821789736243198524065377534515135175262639659918296697972829818157994479341142713126558372401375165948810676301125729687676326573110081895364396711772419533287253170104965493887400653018447547891804347553001945277690961694274819168931151331967697939161145574889642423397853321106586348343648791139999785538092114296755729056936378807914963074979002968244201691256232903414648095075293066931162628365097172709222270805229136003540881212986546382435684474178469994794401345220271622878147030412454267471204501987270787215966891052737731343366577051823122094632194313765251748789195205731778293669286515085303584289529330836081216582767605843370277142839483595066337321744652276421543500948638587177842489722529507055406442410381118588304193446822293572132469891967751226902693454908173672052304049866547581101784278144824163534305763606301794363375688170949231018831765695245835040327492563180990089073811952263171899545228107373709829116949589431854302628483005811910075323422776907736518519171890154559100015880481909537900627074221949263220628917951324879866455109399234079293106841215821824947105194202237842129706686556610184309400614277565862253728006393568868519320658619571576378962845863468229580291932333841819553076438710595440840895331086521093594630005919147991992585024185264713158448100964513879222279034317386062652527180842116016850067449605292792405168867825691334104804068687375992266126025416889559442535364365431361314011215781183324587482055378087622942458330601307469602407220981427563209518012236811058043076037381289909713962570978921466258345632520421403403014988501123440826941029172921341634084739886805347663491263199073276056980383285112297589667556110597081880003283929209393833221211639733105265375016916634272780091801003266617982606773581381974072649487791197718724900081197555872436431340720985601471189018308371255400704001962641637637193501433357612452184022938068505858877087572564570808926542002105372833839359588230697629933399024074260422353022295295059206068049789856992869651911528363364046545364570551845861291909327325741675405747028442692832825465163156434160124636616050342516021360560741823642987529224557611599599578123012601916576895490676160974063122363029665173769189899255379608558631391587235997595305228700046479653970559615717910659528509723263755165537323872077317258060370206790826759452688929495139928977154505191360304531964497747946059428114430474360518100576931577275954803894240506439883423176116982559269791461140435074779342847884692380710109669047926800005581793374568483738595659619493670783540114788084340657875744357614243844708995180559190573450871252682341762818218730813039250264129436010849081408971911983013400678494250117816305529755379905711501550648573594748080099140139011285458574415394758729604943012372632025296090937586314030652164389820840536852787528588842637209537470970388847695282833472558918693221629797833907632841643019042731697713538639104672212913165171501300745142054421157386565057032770804866645006586491872493140886890575405114164597934691362496945015713301257096994717586451468365913170639882339588305883067177072065469179628574886179771242598809512212628932475896541817330858424943080193666958978550821363158984617636399491640307461080568413846777409018716125713015325042330325120698793627829597502435743195108567737330367246024251842049504345291151733099603240977956095846578821992117081557885717306442119001969094285990465878494513916848547738246395574123759974623256715509417976081351900119201603337564676566071942505904522942721909459802897153790005860840790597346903746376155633600519636757717090112189241456477136400848751698416908955886321182579803974749920212256104363552046314176593286954983005251439541015071320744251308759580394389658275261586783354566719095281781936095718497303245596362487059186519712718573845168114139836902321556627142347729840057017613234052074798406417481323567883613324095507815230094127500609030359982870213624180122164895335419996135442518617161230059437600627314235360625313697136472654689520787665396453806653393916902252214953300623929902086562616627946671707410139586099507137663628879848085149072332613749382938232821846117376543183927967354501250064907671164265435541151984844188210085585779385442539830466427492471108323182986298437789986829091886277085570053892086576280585255061657135682848318419640212743738525546178606311731514392260316986319892282132081677352357276937375369348524154371740565248846853114295575463457458074889548907380151845162203692683641660201506501205289833285875253162089808175150086355718799050806092870838973783296291816790866890050713962746947382890158332647559392182832508355374841645540142261683811463518170450284238155363220602330902928130528248835159092217138129130227181871762080467315151002464554105844290581877054973440590282358715930333068143816058809795694761301047994625679631999454216999454270908681143512877021357271020366287914169424750878935830410642331497092512497437172550677065230295311373510798736512115910649826902737453035047530150437061219888597615744276525814681035397111553350407434137217261949171755731782188855025623502774475993086862605647839053892356292185802436062440083260549698060622167215218730950179874016876654330537166571568549534203969954860438955654067185678232393084056297675479175157184573033659432516884492631334538773205891230047931359467473563548060155289487105733099672996984004555347519689602201786054944343795543802863832056501815413610719327043252540545714553699875040613671507782049126538031199294146459844402836778258677440280757568305833089907917948981066492240316563982548517672398574777253114291369789779432606911707123702488192524645567150919275551109089642430683726083111435952488383648942684594809166996924330554305725865394130972203781172818440478229022724749799406406297614645967588942273394765442173562758961638779211797973724584258108471492576558873333683777613536112001465890897329270915377166055829925230014597254422652934426320486647065461817866114301326324789563731866203170490644216833636375560671758477341855021107915604780457982813322237305865341133742147205385584819421871205672354396363981729846725550243614089331868900743181573546515157168797446183751239493379396219649592017419297738369589661344435635824787782238860251213476436042929713240854609551551485442748365723942070425693999480630926100613190223256415542959108588171067595997581620953212683262038538136591782050785184269910781491534511789896011516722504879795382367636588953130978963843163757855116122075832359943955162132498439828018759972863933025368612249265205551859972684253250143391911932172478446566416262537731738740937743246314058622384701449419604020926333467825874569886273102472624692580615032420143654211914317148840026663976115438933115505817166513262559467964908230680248493104612814593102879491092457965258719981688068952520535338177367863821907421703392030090763653841782798199608869010437103740098642483266517541556751167349090782749108899290996007043094492635249033857693723380726131881419088523275122626741082737874471554816699103362896466134944781179244778452722137120176859841432059244963026430976985857639325395038861327757074667745185104118366211370224150841265402844889370487014158778344795991438596106690462214507481521344440027189198818760057857660770026894426779040554666396578013514328871871652410793601382585960832873777061491935682328339140232814944565211163513717742030387048555997679003308984064370031454355468152302321068861416427366971276511832906027551292651207795990091542075991011946208150388310906570813973185378934649606096526160113609210445902579116056646775613111364750031666426869835537469665831325373353444768339422642081305211357942484894833417427534540926520328037891225579650803353762595875728582980165109920167639819890442318135563714828954323128773833538698320355231834159833420160780366015302534321507630775899342587582111904636614940162348811297876300953486302626995938333804230391520535488034386833156545492590022404557606459742334095934553169419198834647883782898202361681855437384877986313353360503986031218054227864815529103282270683240670188308683544162815086578875036702678410765485223855904788824038588492306566040834738149769605046763501983158872884607198804725319742343881359233927401200728342535125059871121808308308411974375278717361978566034564913649298422361848618557830618565723182325610244921825504483495682528946026932974750172860121319019072130908589651896123478336939840336210321573437605344464085923026237776071187905164949024370007018240007725746538990857725407058685470751122009104909649764566865629380635723137786240414083131364835238926003517667287026097310004419047529278021619775603542510820483765747987073281523223380149281354049743414838678309589939153987888101688007656691566822376570198062274570528014360287910765705998839477280475969662354312357371522955175142247356927406698057757675893747009762868209834534207808221502754088660857401674808832506040892021358955004446946738863675736094617478564929539317466659184508572461979899717041907040756321459436429004227002630447628640884456156522175844621217632869966714352292371488195363102228570161505377071909008444662210190170883304380343817323733776997176600582915727063560226780092770153336044232110419019518642095847832133770656228767302051830878832021810972339262975821600010471936352825804590916641563676465253458706823538424216681688039045034425616996971889892410893174662256597191327820703141322060662580646725222019187988764840841321219774414456059482644773045120650659400494143574853393742554640341001087701172398560015334666378320377005776716303558006297262363484629207297540359302089441795984584952565469043776737281401599738280066139919325638625802169322211441822603886994818715199103480016925695594062674601492172237615856347243185278502549473624760192038118191672677434033943217405406469168981625353667816192697287582816199002412666603971955997690392213069300958415870821164161642680926222947083210709100549728700434642262278837638758988946032508592290682282114522599916187571465438781376274555631501806852013266004377126701488321100119047525683519009129490076508769505981893015821597892305160811380187733002026785218332195804090076720677223010785980519826371097742680941765880064685343868792487924496255459404856065776006972590099356111789028962283939402319853870680190781623009838343774214763449156797019572457306541755787053934553303570543568418383509236205430203334476500817771763213689071841484769380807668738476204428465901646427751113876090079245142694726107121726870423769554919849882332377960060425362232000320051246499194606507684880851589774563506611275552217899198696517317661618501345379784498508234562244325066570979232005538502683836303312152891554640099145229698740598227610216900540315714162409513891647799131833905840945846142509092721642853573921505487105223109405348706980862133115163271603392522860118923848896764970372210518251555102395389776234484686629723784645619944355733613191653387116707079633826372918641018248838443218317992717992429071011078895644339657616202194195938420550738833891095291235165489690599405630557363708757092085082022032244131539494629354574753604846702546750681391406286057695533034510405509786494614794739337369961632664596523394282503526208318431680807377209278826353911636306753047788744164312892185509907145675520399788953541188441875215386000008017421362602825819679231469183451469437469373530992916505737436045688913255668905612693874097181602026212109765570746712800344058925065041232875127263038865493911967470522619656401624497571899870040191162604031311445716878649093897423740622513382219442141610247954257026998786191871629818477859333214834977657400303305125811061912710526459999558903029451931319453010300863564036685625958147705126925505225109765759434266648899852831613798085880627168261876340512861664443535453117941018429339094096353771787964329740602242198453338984243310792477874203443946273996378258201662837045657650466502253559615899654889133719725715088251715790688373774855583833360285811118916786030513779877081309312882049190850805776021564213695374378514916048728293620186418812944084752639655706081626966947424228296633526903445016538569346116869610003163425511181236149372849803724488352366847813350467682895709504489693969001209160767223444299166433251394159281356369934277782723581337896951008670244636498162419276191631780035395543210978301614427309667168332561723656258727057318142965150944354340267884111583911794068430468625683398637807662175078954692857212551947454216112114882881909449501107857782798866273055212118814427687281715789482096814198591374436124907485410598717412264367994812748751369774852879216369071928024354275382442310084058381651424673598296750987476243446285136331349526059102646436039111515879025793892682478950538768412967947389878701365430106777181286870304980900881585165748996683432818765809553493140327701696423532119184317767508589949291850696741973338966012205390073871491948583520258800783905649206786023904154685611286935467548825170924868566613080635100466257731891808626634320596678374617919062959097136871152308430213474955808011678310527568961969836560612282815481152357373333420885952195537912734161825339673577003058353534691476493783697524340355494827591953049820546064416878349542357775424416990828804618447397435261941802140735150819240008636931834655454257179921865798447890525039898211497564994269930833267640455971600409979361338732334339577116475455373788201526611614299335980828187804535960631311284874248705338916677647977165697595736919069762690834079904347771027127937294624843494573355400370470725940523857093494245927883385773249871278278297333138243203939000943311941819450870539482343942490860716403319033930597331646874022405594344116751050980163609997297234451369430379893440671646237992480599488019496340352700209805565378859034650220176952339205068153035086075383165282569216376359057089551311426434563720546249845358829946400885746575414907195564058986306939739493228479958717240286938798057201809448625912373197644125072990286662883293467045098179753131277609834059226134098016567527950483431731358604241038951174488492617901265193655863005495551156382578140985206930570364779005056301020257911108201507167636266887602028046807070337624927151526535227405016682573373849481541598907695099774906692496268470117824985706081389015676107223817603962795478334276907235267904652388345029181080154255150405177924341909886486789842067521294495470688966991786474558888627863765320052193113345193465339598584389891274332500936906875133713297825429980711237569828285012942173351010982268979440218983060633824851771612961342386971425432645418741056414870242397809279916809762039863031593962054614410128044187815134277912938995323497133238041827463079000013274692856523688208115170421857522655651835885786523374212313323275386016655756459980700224481980359148127463253158970432484882383937207458172121363902802927117337827020108689757844424292353506846294502097566128666260279705882414041672512776304173088553103471956087822429268049394359454561255499918404119164402610747358610152947232512923448869064734321449673938144057488790948585789743470704061149227055752422143842282787232343180550214430802379661794994661618254604504486298245175315792420791945134425109948394742919180443719130363838284977673636268624819315115653378708662973781838818633129330899902271035451025151982010684028922379486506802973641766374813341570226792576273540966126390572974913815583617904134006782080241541972794131028223703865506296940280616485761406490977534164218732479895095918277844985486079686670255825002140781742857071045839695992627523430098068081585645703002456104560467157437033304013204485667340380464786671776552379393013609030044046745190563670099754537471369489699274080655005274211727555042427029268313690509857802784872450263707019531164488595687936893256771432719773951268780352074118272920632364273057096267440085517679870355049333696435719007643864356099177056231139309219852236009132050628113673667787889278938239129182059327289870461610715457176833122933276407570839921867393446890215166773021231694204279093361885161602932727756425913057786706411651210722609371485124720201095134250512931903271271373151924315446323634982744725188317782267039663204015956216912824282177169967591066996375119855573411504614044840692878889941246992281959672999009089958183537040541168573029696568863080391971318548313986490857470677239971239910894651835344070766457308143578422057340128064073946576302026229899793258251187807649551484719338544602958603930238528514158228334647356962385240082561907298517740067742948286067514029923855142803828838348559924831541870249878076530686641867539014722734139082395218468104979494196313632645770201773587961152853884557026489273411363784075790323271528186975272733607667743027706471471901893115455869747685783871936633485864965528002487803831273835637521421827659482536387802004857113388695612705884819313601034199818199687663489691255069705482363530866704412513357669891530529892417037841837175587037140863697948368711783977104309739492132166430885321703559933938415954097991224006964471526971942607926492102347882110907636433582990110081995663415787426898604780527478724405435403629978831824128571965465772634857197468675410438854772250063932905185110006975659932653271448665979455824205986522214625931507881258027745319584231708263057051416715542054034199687424208146000195435264918039568443805461735171334006574597852986472012159732652542406197551046305964535052894147089035744058385332635394748201007802858690124058021596607628123789503731350692810356916898559380150461367656420830017301249121061776068152943861039893930979455321796839075155908117354506727187291523391648854284423122938208004505132049628136128671592309332594491082087705497206119424857902833109530089504292855764165101924841310098043838395520344105285226471282228176212048089257379016749196363105535785242409216510626248187525571176881682748323182962441882964677990371999852919974022582210033424917931734188837537007671569664312839917637113491974045778810323869434841038457635136964356557203685443120005132612026766896922299892223658501532108767200358558555777274823042238290421481214508565414149218683168555851959801859371176174308919491788257715158746204285553764103675822051626539978741668474460324798628433102859866852603071587105801248862708320508955223552032125395378053846493367739556773703136305661462170528098143948945232103934588718595159057879018556821762694104308904503990733240385609602227728717974178017175108999787973983993293358879146407441909373481678283511569266812216554956318467442096226917170680240270591510243824015152302451380820609869492148344220329557304329779134650957045540873290424405828028501523282190431912317828303698541318371931411153542359085483254767766946514451090898853683603124835310739571360387315489611513901814429054770916519088599191703471784567733605015161952426851208082906200817757474149265173986379766294532855256150050836415099313231716636743576650787804361503324220225281618096812447546028515470826911467645525093405879372651623656766766708031881077428069686620105917407003092556458493551522297454664201216795255845422790183223312465836317400309690595484683084887015828810986345925661624607720184275772163940424693597204339197867761468295254772271303319905464428647196952593834711528617383813665790491446617004950822975534579982154643844720908947270900860407409605499795310986017948675182759523040770025115779819452062795232741510136986418289275219883448588908444454438337498209990873492148239311357722746880386365469327509225591146261806457727085090685936315424439934612320295530408547648401879320972842773244676095069157334298716767067454157322145938327445010757548480547830903596556409602303959889758994302754277792640186156985246204945243668267668793656897623936841959468065249240054618721360354678333560821088891428753691817576239186681001842478661154701574646270225722470755373283431139829401942227802605898482990744938642817949633199889191048582491945987176907801997452240861108085648421622945320707439120587822226740776469974630769790356025248297858478700572199269986140702684922230200732159356790772462171922629041842612657067803263814262572664326725152909917473002166798516221081656705631102048718098274272298105088115209544136873357664318686321255152218265974402278143274694688502518672073918202076723176766385802522584298263580040191910439779389207117317698704500818644045229997525461414211347079712894908336600766948775337152175179084993596508999889181548759218491907040365896931532539634571402173198962336388108021550394112802087093540736334138060552432368246807728367467472501854585905608624498736936744469692614207302910338193665677509796889343834802127320561984743804644278366673129693724998499569701935522756183543998161589256180912732424699969503993039876166540602581417560218232395035403352202025455224630531046216656845388348740758635488170221150154599154596706204716074512972903954639512232831673769366201653996562092724064914816501442436224664418022242236662018982263993136505976101654134048213750959799536607180399237474145637021588961924039432906253866816197887866163655521414252248480114107210286560699740900062360959493064190648489154024575903753428062540223138217195809493815391155973068236542314404247272244597285921888191064804964518529762465847275545536443144401304960377040851944104496883293123410361007241114896725280714570789029815174910629560388984120633884702578407257789091338319123785634886250017358668441617964530969083505833748310593480952847642150789984750049590728962175893401987316568604273344287215607186113862405046882840721520518318964388852933859696128296096382707425973155801114421954325019421812713176047156872407496756933743265853026791629484978210458931178498073076799164348697320186552646868415117824827530841090431993701369290100785291072881691219593263473015200614891366752674385550566763994235579822203775068642547314361685073874881026392523627286779376450876205425531017653173305511860605060849303349617664174087074271355337207614164192393601096209988443596990302646563217452996297373181536415153514603975982770543257302720244225888984719099717911156758688595326410401161771681408897065800094111607920119938196729625802346414186094269273630344110836454213997705215709065452094367994876751990656870338038181659206008185290285441419626244414266074568339389770003891264720386765210396968589116162336903005051268910718299831373700140605422805105958052352280625139290894825231489435266799770080454360138194687545071360046762310083303552331648322115151677567975234561469053561409265404129561212327008713346009628303343429321910221727096853283513743266875264243342952816531000063631376472839754503168965243140661854188819070081361039473231740213014838729803690918536275190358825569035789287623004812135121201694940932451391841650684047626878843817356165441622486445555633241872283732367602379461819246804423666392928649314935058656302931485271301362020678525692670456562652244980449182537913691840195041106079885970463268288526957375785794719114885982382159306648519194183310130709537336220106063143008318947670884267881408122939508704459874949338506542500281209489785622707256892926218876085315085577557107109459586322891352827450689866936015486995182219176081797357910851028854136621347607360088206986689363448260317583617390105984913357057780438385860028463702824932998108902277049257041341413782462341637946085595839544541864624882119468712009988179916936079596586918339456440690705313252162129561750614656990464470772209103168345855250042394369907740890519704323400601114883249120660693573392911017381379639951108909751080681223729611887673935048697036581372186456135078246119476009618052912292288578666008331854872424698585813442305661650131572093522921647118721894299921827098261475131128277500884964136494475381332410341946272679374558518974023113130430329234108807151558511507371721431427498924851954825467483385476262157681920902325733801037451761384761326617649331240310175684314516278078271245722705932531079040500144419745707433913474844790751250849369649243146154458132127240548989814726524212764577916361236330062640495084753879942867315690603680663276795029961177978654951324666680254051788446454457091432319859563473989035823713922771358376325415191121388435433981539840793648912316428964774752803123776718782932335002292921918031824183162406091777919777398486958644471547045443910285234838523529708839717884039541970297698457673709721595582230797068492298567736309886148937102794654341052918530494482734232405537495068063324068551951627166699026025787176826760018006257184364555867367054295781505034970021123278524520190023696176575057437461161037765813063513707607611305213643470257734663099289093964476802040849056682595147350805864625458522555819264755472409088083448090551696092874327774906233833345350749614643490401961210496619426895293829608730407369503996976282955080272396022974910648653246357199712443839410939694994464972885806155217752594824131558344740063151339644001567591470670057548595098310974088837284675931758951914157985044196151299292553195244592166666986536189773005105649704626948215273585686086508076335588688091606664736339514828878733471892606441178353515374185143762897772883208087486053860970655221583607932087473690444379579850494128430170631942798599001014291949617687806145716886969011690741948530865533084321536160047161205618241605665539951621673963738274092826064357483792973940074605698007843258381087445264196683555280045404820411294411161375159838066060398007281932231258324882187045460526209150821038821290157836452489066649844987484645120565932202638082284840706442973395283129936651443790963585425148171414917883812971495647940437484026139084505591948241080418453268355958994040244356169455928231541060852176582931394019985222016070652807444407373252004239121338272885420169062578425000803836672634333798703382075357007215215975394258428825825895454239923649326800426490780478229081334443616471982638775704953539905137078621707497183164619125608859789967738210876303480219702985305102440682493488718076932334459294886152814637965915221147277701117368549225769099752208638701651228524127029651504282487020620612458406618767986483443461069706377660247987473393301603359020587843847778077383482877486167580221437672660887963159541237294487365661375803736309804670103274023358531489378198798447368101793849975117934681761183421969543897604049285528323056446858622142795050190647131849069122737376181224426750147875323161607491270558093312329179500977367996966931471459380705632048824953035093128717139946125566954727562399841584190728206998439577147463575805296906760952809531007617350936913823437746220540985510592170953677304802909061100818856125661702201030470002625960757132966832565779187601884116052559817040773849321645813918485798729549187345669358483003620861069774794000890762789448589865739646047757792586422474492829795126097328419018513376974795601649889834343808119063190659284596820175924657206128250593343617398520549718608941522859237553266015383422358551776801571961581677680132070515868788800895673821443847031565927530844149897690398391409545174268819760418094509414912449504343988255440277956895950221523239780978323631933804752594906834232812269795356630809633353027724668839451579077379147660845687573755791523101469957932271651528369691152258801810962956068646696247580318389150959975760226823568706929272071024609440635222808998982236109426060870736300802821843424352471320943617987975658344826111612928918876836904190474971514366216067630601743760553559467527590407494623410570134470468207460192948939010672748113481573609480273259546989076935228772687285879199326962059268816942926617257942923474050302138241224262023893465806973565784913101527806274921812821496105745862421021095921519752464648620969718302658532522662518385445187903152073563950461743181681279340452829712354102818694372131131805227233256154346635137149669201578553228110978646861569701029992595664116527576601636587230475930880719671162577407132979809798870590011345354560122222680771014966903271091290888799506621753085377337361832041645948006576722243875581428798022630633091246664162377110816900908805835075697635203051733506569781212626907615994603444788507423186987715389762047237436865808693791875730477438200133401190012279038884194087127730421671724702084717272155110857285872303800846012871085345602705918306948349839160862912500075973069957568148723932230887173810723208461978209017572359289441968306228036602887115189730085942085074680352481462585716419277653316834324287608973777068879693110614052413520813246072900209430236789485733235763202513220292159999518814161291331553272128830963427503278372185424676093957396254490803086661633469455609066327628600309885822578213014453148717442974191535081943391729788023453176420866008285847240637542896728415154745240607438388165402659902564689743429491769083221809662220129036841254623493387636844092838561396151662643238377389666783024767508991265897209451292187041271835778321243653712409142774095993466916031288390694499851458154361730496669666214871559591671041841810217161988508338344835704752771098902024210739969088697670017666183365274346193342211464395002949582924232687739226095115880942435539732578761907893186642529631295088913431534954589923022590204582052678557586576481350899526065443636524306549653732089398083181939738882972685555758493364188726127171535517434806643821521505930075869111973588310545206436797092001527166150166295128563089890175366075906897224203056786006388201092610198740769432196197109715999630026244153209302772736753603852147996285262786685631175447442070022838381773125097215497267657879028036819517878357318633716259262264029370904215989589657284373098954927285671006380456467789347321161813485559836547330273231383056898938693710901689277515580529626102901030914652030994513945840393994536512623649092904830597909844060250111051592046860025133812249974506400224890070376186065072116475089487912192389832960482865082238592913237670865513713248604819839536774118334264746838932533763487952650537587944558029455138979691308383829094889356412330838014171782450475385945429859969888407115046062052695537723703466677273209542877449608305416405584769037926608054815965205676788046060424365631555615839771493006750736875146153694485794941910037080630061803331409649314440972291569592520435966796941392943179858615703100201633006245626980092120614713355026725145441916062739026273145422039384723089145109141726793546790721739417223557544405249425733007026063017296019681488923233409686457693158198949691704277614489810005551234602837880851584075799032732192233527138771978216886644180459826081122425260369915963017244243545844155050036426060319141867787988937773779243994521088628203163992608274121068752686159883970990022181979804007510582968174788486718892432530867262123601950007865745439515255594102547784322101821950973119027211580120088480724429149187924786984574120864482591594245779888537987022465670168479357093995619308823558528329893474130877583676940434642236034586503216287379541087238584878501258793759481135294373908257676120077284688997395410626058392045869019516613174600186928192707420678523126505752185373717162933403676934602945515796276923593752761095994562975284786464618999317346774620674724550958934245920961311809713040559246497861701705943341769037937411595413492679137769522400270885171044566360795148100855159966237256387349506945125391681348458915086640196770005998622842662955168132248971063154050806229922795936357370266026229610467162124088602402526781709211920336246723662511802417054123813409127232256068694393349858976749214494407168524063496498315488300610191714266040683965959421318435334946395992698819322675341446265437044432619138337311887582157425902123225665616365084492640559067659830717661856510064171702998340931010183663463097374386110564247490227676436425625042466716603546629471433873317011618583220825124063784464210203380750100111089747691175632752213813506493262756907215186021969995042217506171743226308756731124557833823435285945605495862476355820339099549634711699543912458467132380806095367319014563078390076192945478872666672458708201915795775886761882449608821669939084722169622925036719371080040164040484383278719347937200072887161229623892875106163792278040552547871080862459647996587113312201436932169242999328946456466245063858498346361472093066363168903980047542343937862522947134500914396352259580355293873464981796006306316265271794740165766409575061410506945184259883084484786854956960218810912335490359515757938561249161231542517580611338769388007169702456494061723170917033762028565362759372334439996152157019502294419996663040833137547010644343888050683738640225302512551630914988522333193153800347818448470883077949624595132608371208407270589963105640704023220783774878447794355682665442306037138395272478843234276428610561712171500477035136819412843419580203692317234747613210095409212435266867177761444609400749423076331069952868802423412301896219153671525770837941718135638211977393375879642007262241404316173662877720987417545199633528749280867351930473089195537940215936710784597716001184258292688699974041554987215903089707707924976886107969207602342873183323767039494736869710774127900509067833527559509656789834627789909516238625749581247464428614399879500758142839985343642598399093658390678754210702608042484311026915379402560711410393117968622541344433677153364223687584059581606100810881368493578428102460137905228585090161856412903697923218937812585198293281980553166452474891458541098690553187991932328322652500837691567071159752807959388110142917675760265776468713965035502801461810773385222220855307325707059829220688520401937860718694605321981637675877101553149998196507243957704539555911633748352700274885069565196005727262802709545728222317120793002706125416391274592396712453026224599575542392001049284170311372283014208779351358367878595930466356401676343309149005425525349326680148549265584312355610519274728339480851183390994975394738982350979910181384663897457123787021789388165816284146017747627550097146897737468930270484939297563054780775908698909927182922364701047763052815395787602301414589380261130118069058285034135912400167371026725442811328169431698475546378305976868455733349272638030610391276832872921598467945612220364675834521957216564555873487399255170583870779314637151722934754079828220149733839398318654147848143329971390531588242583593273560111821707700741892874357003964417937135203627888171693341269467685958170880293702130446061759206768699363008383811304293369931656557251943357056854615511463891499838409179088095242853280713343532615650376804156961198602576257283028983341017196727944912835579654941595497992623728969386461360717596025598422424272435981235869071822466093498472817451886506818328401518431054507307289556269738611854639692696542227731510592197324591657307437674427604321028169570470390668957058361161974672888412361331783283643957324922200714768979495236019944893558336148480654255562295008959877119262644327795813740526698147709401470560805209813087689673604168587833019131100179574554861421105279160282621827453250668704258615925069012450049209952819095076148191123456678836585996869574760213935605574901633238086870416789594953406042220764701853570197929276564788848736304633574400875406366289934915088590919169668392747759367713321557016351418091513847819424942523092369395929380030407365038387031334886168262316580926979019137194945131303020428079806405725002211055643860499452695548857979302284641648928308885422525149800993484913156120966537112405711847981525916413892024566489822550477936672358974708384756932987842243991185911748489503337300240930028064231332799347454461224208392778338505708044112074578535073386688416468266494335010765504518671172062645508328713330238000381969995753783970560803280872695996847453544721971176380810920559616126784235916000352862070924054460456749279751233117291149721558609266648032651236455770901460141733401093059152630997590197323238688451961447356535431920335803845710929526668176220652745978924516651002625755447905171716755190654117936855219380793542261354580447552378843756640575321578710829804340936145697534977633695387815298485927286769123884924833227473012631439350452810227750063336222983856865761076417105198574396779886740930433829354967850799122457631956949935219366623622818055900794384946103240775824692311565118766711300039007935183486873876622461748765203363690394410170885011537952373336080175896044085516726114931332891118038737670020501652283055741746303540778341523737643317238000525993757730476443365832875574751939580679742185164133320066547300510176281536866760273358627212191320684648218005950691851136868491897738550391780594336431570040134924174288947889851775007372894121812451845288186240513528664848131002640781445274922779503547043603856936361245436622327109601008922919773769421579789929999999363824522294486358287039025409221716413876293856561417402568785742411075131230647344202411422144612422347719023154167005096666979107409312655232920829394956060656321579228902120211639740495986071889497502698278945877234208056985493495681055008233674628742681851366970485938915178324423026393177922048294644463601323954499429724170724664826675574926217772922459951322511395827100996062132700473619818641806193457621938933358645784043005875430409196317240693027361004549664988935832483077941656463804034152069242688414900887015927433238308597045783733712821410691909964917789252259637543430597338028366562786578844264055586801412777692930973236238874621616682880243919282265984820167526517623068788431183795121364075382022579240720222343521416415209767335329282608472637569133322574986734494357695485199896971121075851967210352787099034393294072177464328518275613809746051580742865707689294155540446200908630225380858580707695940855286687240431720105601402029264581502189671842331933013738118746643292717869321189869023363949964757500304998963256321728284194414609971815216977302830484177190281995248979008824597875130984408132103908673327538323513847181213061332462589502427789142733599658347512676810282667724587349084215550178369054079641173091488058584391654910154902608616465226992789091854565208143598554742046175811007864901902509224968426942591705193141009052504337044279880786012292504620404849938363736418576721442616966562123769455597997904716791653809702757680724915637115581126678317849088000708041905034471743605416266241998072854262239143802513534512267172809541961839373107558115068330848497949186083642578754245869912811643266073464107409240516941566310220347931463618654606456581083583421540263620181603702226757468394220586781522360611091241111537397437640651041503240147951407855299463785856312389528041087470847389781029106231064816190144424660247801792102561538398265795028710977674980225543529452251120311710869801501640466663666545131808281567226921453630525339723799314389759777997809498185836995752142738266766454022382691217320746912120526175208991531526637771640965946776138577146754080590693882642377639371183422697239977391945059722072167722761333715328243365475189434505246976916448249979803773531287898957189988977466875713942037954178359682491045816319309852739409336526492729768145542477511620039618405854109917095678326607259651332324732194903877796372159810290095646962151796562656384007453931059910640262105294781458052221404064969201619019824506900635899582580913283600422873047607673628626773311690562269472408114594830741905841941251125021461557342245353024929552095051245782532081879836954793651505524878140367240278774530172625246706971840185093413264163416813946313607144335127786419075155470963232243396097065476474901359936508172379902515345327829819379575946132105580765095925023589700485398992143688786174013227996415932767436563613534311465567595417714438481430078146949813361806189044809481426445242179321517616876081542181123009887100359614373589869038524766198515555250216525864737048626009504655164639508986459425131842478583829577582090800370136421776774103461877996862802704880087561420810869388306329583509196083118125195704767720848978821955107439910616883046110189852060795535182217420315887598015700497339954617453123729454470597377320875537685126413827957082061405512725677076776192955656354804386308920132780670872487605211005370059066107442426439566236213890152634679002529160504183283537610529104255166145127427354137227500108105951484296436666815083108590857643715055221703880209814166097589664138948249818051639316811924485527979610522996869409274338584827460096575562649242187762170036804622464364309788907376978822706839039273277116291973344991164882440979838038871440710491044141700188408112734132092358660409918809815718890315269851662359765537746343809072781316408179814921993991236755056913358347240092782160749073080063091336515534181717027921780139694768675860330492599642924444196435950419868931838242929459551633419948925690976618787023026360188580753765146147130651000375530972510757006967120479715205310111983696735954711991026655643651985272754398183995658549844087925252655445868112783629664457024348477769311134712404494767968452766175573014601919029031544150584554666714515070907931393709786330175203035597952208493205342726772697821320311277503231678662618249505243990454487397573846890800997399852112315306626060977674864195842869088909989736816220913474350132953175045843716473655609505212207682153307909597590370606814984684861986419647692811068453986472431829844455372728201602205047219614394514146510811863559137523737637142666801164384237347468874304060611715533183277473448194778139879096841758778863876228626724160726665943966989581784699534285158942192617341894492736741603081882693570002524811175942890132122538643581052389317440503713179065910369409990604402250248248930054207957921905467950529605558441649771702308130550680705719134458733576864077173072952412651169677407313599379738236504165330795772555206502197806804049162977571226650483382165012831551938394497283563517510702608667270055015975411048603368350410446976555958650008993494935564274133464229549521581012325555653009589277313591550245177153558535595391481100274662065686473870808816393059877198405276579494919350389814075775263393843825217763243369217000896607717722364642505537103952978791310367831798022768602436617536487241856188139040441377932520531395841852366225522541540601528212820225746026623578286202342241520432119714803488316374485730949629666346221020359167053473128600950948295338869173978370714171053933096089531874079402883186106376157024587064832508655661685028179761712567644090826445385603917121870187518966498720095400668421469022749298411889365729950913574597395211769913788311341114871980912904205634594169694603636313480529046196970974016982380889633140548419339834686909735104125149174249077561079824285933557658311550081773769452318397454864997548078698334175938950389163032672538123058712824178659041805235949529993936396115076619770993200688635976546903030232017255675644787866467969907133282026770162651547004974504315789917918197061770999176217908414644395569592589208093580295633004641976989704434103806262176948415594625784415131031434776060597667265274665736992971114246005712456780562383782428817477953693423698144101937326730294370535811155490758190462568520847155461839231403379104455479159495875293265297673149533103271266681047633739187652548951323246678704272127106873811491579161776941483075354355464380373430219482322547806821933187476628401268841872612057870348970909203724248055140718568815837632797677866537611967132827925106821380246597231272127941853048957404925541369156953132933002999673137690540088250336671934455149715986412842575987703508676129774971658813689949332676312957679630613364650305871472967755169447627900317611321096312225911363487170880823769742543960244907301178681984843423816233605697303597920195559224623097842280378005870527745843543790785767694704319155828260177427186197918416423001788202205492108183153145311842455793982649298829012056375499139619976705265598501265824287852013503248542937929217916124807340088010406366327503227217835708662967083891582999157124977387159575257943204035678568316482346136074426185571267262188873081700155273164356767262111968924422496744058391166944514127672665647694283105295646726441031415203340663589239508873608301994427793258114106860877149152275388791088626969298440689116586845134148478914207835434048042780252725810081601047666516582818387754538511148668872930831790678973446661378323829145281448650061971063252546313945892117282009978142450702487089759519722056071594396668019534201284584703575568591377112468361516163239717464536998449847798180239227486886071476171023514746136739152505604380132714574905471421574392375901243838303614222808146770208983919473395098370493051283607229868997771383663696545455428829641472864857338346740289084400564156625955419349988207946961974714223399948043729850995390975452698158105486826302753075869040309224896626849984276872170156553763158409159673476886002071525123945616983988130070720861432022061339554995331739565973432116012275773672587903709016550865639491103523426688363362405927034766674677459640917376110388905258859306330048460817977435199092574001260358528728788198232235977773750162542674924878896543371567214253060131210823850722056442851662914695019941658473068530764133509170648569401276507776481755280318539468242156130983566202487829328316394172811107388383877326757757358037042998946362478395121057772192949929255558668688713268595160701903365448178345022042764153202686714161122521477068132091936608442409260592691931290770775782978050040409489844348562366887854002914860459619016700428581692144945292224827887799672812567160324813276870366152665683761217273783873337728515393238933057663992579578833677768982690096257555285680482943653045822988295369189178975506622798318312364931198642992826805360664090317638112753531318929331438637658537755537164218928510928288067598562712391484687570781806719790445332131951124569494955230971416984152066346193011929764682141153157768367375338164761168538907339861951615577367815512974100261169765111471712283053736067751013150131518154293258779461301502597859986396549972869928549752298754536304348165281586457173154967836254464676654485856579064089225372617003075840423883539925792555515260972891830032101490475579327610304207779166592879515770314246339678966132656212676132975373207310247884298366365296022728571312652195892277271746366900675504142819727602337703288009445698888243513011299041244894548130183607413859954120957542301989998654306245928857923201418295783639783544418686567475702682755435499416029270605647344329683708073914036841577896961377282558319624107076782834822440262432877083618926411643407890792490282878669164212919404117167297073775663853367475140083033290743847047821495290259050702353564685183735512568380607543659446427430383351566298681888802026482673886999299169574293726685027630505965138458403274018420486212602996537154170656720441125547738665735527952546176853038023636945575126772824069630574786643527238736967584040919285013574894416903460334414642711755303516603889800628194822298029597256567310712268840037969016028173752310368990840555445206522660352380845496523732879009217019381961190803866433071272502534920128809641028801976762271549195946663272507795339312740515001529432645133806723858223857897158074741856393777793453621314399285350873975233156609443015181572792868468581185362585606563262240031666011489993256721687508328546626964112148204283450236055322877703557809023427835727863450495426541611903560016761459830698771696604187945406229771091553630725077695706552677453123716665673020487529109644980698718611885350533461324458001092208493783731615761471842694743254651237483756835917723478915537484300565245879353074469455133635699813714279368746391780289858170395397181538759995099226649864316642509955309696501133353537919543715060352075036044646270374575550442992137841665215261637966409754855773682874446727805558364392571633241196937983237180795679701972352860849488782761872631310470093751951156452914716154010643420986238003099532017157506062982145821483671642181224643745302682401546666312852036609500162374359393026188532909442954019481497259926955768630187022702916378150516025496570476921507401243076497827093858900860026729938421763015343802361867695839878854514211704175342330400994396776077673782119228990080133025992246068388937928402790397049757351585187836324435639510453059429708385891822987633060712496946068746490367122496231068776552421409731548232069229661785028901727083906622568151489793067204326089955777862208423491699530635116598972762673927788380903746601334641333260128006651070538559947186853791110006153529182175152985999995885200029868679663612746779761719088975508362768919678843621274558464384410323916404776207289372791238080643972932093908777961219756400648606914834544840424477254176426612868808287675496751537399016827057110981479964311378635663204166266478807920619163499758889088882784622633517613036143038814371103330476105450844654429820514427804464877310331751106001938012609152444241271097281249194022276152647420270538317205293906158445075391617007383642630014507610284687936411505728567316578123743853468325665664543186514142160077466696202681068097360988874393180972824474187123660996524645648558742926681948899405579046905188323856552270044867520779676288782760533503036476218599387391485399763856273116162121982036727879303257935889690181742709469590860265891703451659209921063640182815767127790176488043787391476656850215114184732509472502722708656448191799179778241625162977765697146098517347182236081790459179775552803501921955984072669041009705628824012984252349663583288705439453045107138358380640715519538956808789620322411359453513455757933705227405060766761349803178124677363317885542685899624112844552377659071768444160947674800144132166221998493536356035193089904645136702968901552782517443651792286974635351696883605956394199423512581960844877843015468006429729816174947215018868010709700838658548960112756631367568922448378513927763039484634439287106871187260559549767362501444583535716778449770943468012884705595984584316515757634313392134457021034514114256453839341986067963019495729167454412055387534465058558081713937460995620392950005347371758522768592130548203758778041622369116075925522587080773927462001779306211155131155145094153850164773617178835206637430993288991930847865029565110636378194516723687356535192912159988736036813481387285847877806810387018800437810768098092077759483489593478339616633440244399902221196651039082303722582930898131795158914010761599023325227409167676188449284068156441313130453203586180512805118544564815249834313605534916955107347910884431795745757815631781824703055654956736275199223805894962156668808281343531063370849681782740256030900870223312553405287075219377842643540314070268623358481892470382209312370245457880772078030799989905664244677777812448274333027467873889109211291086025147145216192587425160726560882096341863409771717701456350177693242498337925337118228719860620872308871926504007628802145957750848907055592327590136978129482841283692079870674962839423447885635783885399718336495647455104273384566541512600538727373515299292519966835332087604212429053344870912976534028818018357303429675256492023970892699214274590511813504204931985671323044577584972685474408054057206947996920211681874555292314113200911081291338911496237096221592390844810824717136266961464196114835455135366420300011952219180921100630749136104663293365131856423136914312740527517369144713409404379321967570634115214865337883786609781162784582515761501076130152844638650210333477621476448123992326523223634183406732590243272128313918068783589851686516240357277248581063801550785710728893526211537996654621126586295323139841047611227187392864104201971165289664183864444894183230570867500005553929722685866683569789945059243593824477677471441100336987787656847199451890910477289490234917842963959761890316415715334783469348437436651800862753532149289003831364712895605862546278448894366178475883726367841182114087753812624455513823971499099667472621095106562561052719788738347304655657427845955590997038142218698484738545173995991967178391562039698414828070775909131399340635719576669777207165269963120013211962678840060153216702924904841758560626462464490522805791308972768752593508709325829419378314046955365410361967039183967893274071660014719477864550056654315113392430591083018039505943785892161932723702905262138940544130973798820945365674344412707361941479208304737585156023256834936112162163592294725861340216614092484604240449342291760521431787217765048347601519479458553267607703579260831275146280501282450277147252766690461271487229011835225741841176613105436618634027198062763506542173392939029789085384229171286887633603697539729057902948264919558649626447021666894075086425211547036556208309258712997031196602944372857685397572628551004045277425289280455131280604499687308220591129217586819360384314834796728200690359152145285161094728608415142072457411822461303375794444906589142917519376639568178939402400373407448419302533202175386774901295927617813522653555781148657128924230281462643973679079180498404464728629290992884967558007173247186128300732032071276308460784248897080824635788041586592790235628152514221584761839971026921486466105935524485059630721437404363652142539380537843310407847825802772900889812503024975729993767623165785057943121969188297899896279708448244683122891674748479334614218145940993101353026725359727182595174510607361134779285473321224455966858742243539302607514698837867432331454171436081389771420627960085347488496771502727901541497365620927497912876491486205109517017645946790193148678829887476115008400230695986469663208306409113076433339955804525369999729981023961190066012263338278350448419696556676554005611102524631115629033529375225257964246586990600742876643572839839144505969851145859293073386264091444855585454092225333341910179931745787177077217633428169315204256638349556640260037752559765457536320655134449384513775523390816615194505567959399207506536198269635684620343799700913519367942070959535120817099060767171940328923327966588738852423885155389369217803290869889902432408473600111275467618629228633285386255131236834275483056681828615576091399624860298745221672691704295101466153276358493271394369616837868731799193434819285834583588316761139325685989291171111396507993173353108700516660545120001216849466982664386133569902795008726585056573507578375854388290196445898502588619819496177406931997884235838255503437214285421488350720743668122599508812738393408270813562067387019419665514785808395864891087637817559269054938803952796699225058271472776353689594838398525085954253976976023295751480375262497555117107069122892485428668284168452236988149905107069213683497893138594953453772296325816935517881390093056480078522965223612538544032508186637078561054017755456282078874436824229115736694735164356791710863457415901415780308218755609439380665981636872422772382201953902025250453263717920866084285868195385695825602443124855022938464236515472765291114736013806422399034141870596406259061126947234200958293392145746896000571080498217318221330162467908058955329567162460407829996734321626608317741169076866096758657874803479720403941754519496756189673975395529693540617135199275551854457700699453825381976153359055503405966059951739266990771209235424407733768602173397499900403426147902611534972265487997918945013869772055772998201691446054848211166917883144434603862481855329894378128436957825795406261356992289902620934143709805898494181534425715753801648506201367935142136384427736989332964760097027960684372075221047965627429616735153141719958786143178927347552429939074175546833524984056028120089171252649137714636216247208124784941250198580770856632659174049984641408336766062231692106829934974138112859321782362357690816066934998256129793675375694052716994973008113513680716311682289499792675169892848694430247190588670007397043306907860399312951717342652639062146281802348747209411273254666009063284036213697629357695290212231844704593414349167039655689312506070606853266576881058065199113233561927843333443268409881789640597898188892977242490749113419219836315592715795780862861638690366516893255299430483599685981755294232791965314507414568247096119914063833272223063254306268716424899274328108181784725358255786605425298724060278199079196965056397832260275662812770459675377496960045692946863808796456105184119852118689065283216988760041416450563260285692850316643943231042785905314750010780105708539559444710243995406569458754026820595997663698612738263032896854887407210596244018354054651363508518076585813900751311464651172936532068239510247705387248272128275191160303525785796562394362330351905416600556058868699004665510382630836710114511120896686261238962983558612817540464046568465476221005645454508430357465440803469047754735528778312756611410775092541798800794736653560947239263626914428727433416283786180204811577031257223070915249509342319002599718799327334515987759803970032842007931227037327023490446599999832973574183099668283203428882314764924942225479685057567885628534544824754643183733822960918713726609000255705098714992382729381914743527924910909731703953478511077877918393659950108588279956791282818904598663113085353428757648513752080783978891058354580862452469909462753175995967670911685876736319074996307483766739421486635778051941091536336094305096592051519918081529207808093266721312789154880845127611810453479343274031654083910983021508629034304032027704838275327855176808343421602972393539193961151880962638487468162612775364782218795596872381023612089889408879495987375154593560108422884592164370874502473073770368123139217988972554181323553286684710389966260161229287370707715735411157323875779866274346586988468224404512764854548395734595705433282355781370699965210757555137730096126712998575037942848380967864643834831900126671583517153422997868989004529180116061329368289763266208780391885310422272519655696648009493437961327346723275161804533840259162874763943328129836150649762465553938732885938514902247544664270176279420473394865643893050645411683892081639467729065223792118252615610657232260441989767052727821313737822423757364568714949345716735407150360104941937114549879561321103993269318760378980069518300296516870702612070359673646120453952418916071057209545662152009739108408547108395410143901270976339399341315104002288877074499464311395480794136766779355352300631970250167960478791997313314833124262878313752438177725669489048816219749431069046585284880885054321788964233701559632127597112480786086977577726817777161045973087776738919361280033421827743000566416602064909601884947553633865881621613355722747171792820492488335376981994514634448396985483396404213771344803193658221565546046372026001567269224768112786318122547007976012308687778747404192193127300566595416554260215810925028893208520834116495713759721908685536477899533357196291387459851508250074075392863588129624760031060419213121813816660657975446679721561058079250961547366117187100552618157213994524865464763747315963178113471934976580668604582823244858253950400998872406953557451305400111416394877379470382570119677114817967914793528066430218522407532659972466736311935069210551848996492325265139013988113496822337249733157845495361419678766213453493507195067512016504503016317433245830296180570743912324561259991875389128345257899739111425173248834314569837783536404624141433674731691143410046845747928711171926998120452837642901265286702064172932706093571168990926884801131257002228714972540657919318289845491826738396801239920818658341002709224248382931962512480702816350078548768605294248091751302463159418726191796895951468792627563731839970092966601129430757480261400284933574291337339654913079668818249914710583611390705926725112781755776213164341652464401992151414656742481011286214200306003406840532130405990395085067078273670335799809295891018379848920877942735846522902920220489611583957344456021574066144707728239904581496579810835859003234485843635300751705836139928430337225839261081855832962075691546211246014144604993193223912449628051120548861674370709220123289424701765273060852529104331887956835645733392226307518495954852928283978093765567657950199007304051795201942016095579626121706748170280826729020175808132731423060205992651557889399379184632051497992171836027795706501396276820790438381306438453855916445288713652182614592297547676725958974462458694474096337719780434936415123078460086794091597032196477729590365654962131758969254082048459117000855501457146780478205539861282557203984385245818769724643541825670053287316987725185544084325465104729795047248068780250750644176701172036438254978888564035565546191856440217729967710529815686386108410916202590682539018564062144492568250928081904025172709072559124960155790056871629846146940192949990584763355843420388024880384410696581182146790141189587750690961486908702420514371899808577688813110902959237236015694787153705532009529583696051493219940561029061673629523914911614132115130138336502108768271069072732425198517450203232271356489572184135445890238062521565169087551948685600223546890694786977922137558974677710323777222174009905134585064168912048488094774008374337174584298150340822588324256498869512114642168075229460521474429165657444035834021595944529623880849649355202522221253030813711007693387350539867304023038700540703527944572806278118081420639482913371673828577577341079670530667633084723342621577348985331127720909928344768328128547717185829580320961253680239207362562287558653565752133094744981804467974266104618103243303579370201607091161627805166157389853955078500787218563335709796943912003659929590788659247685597409227490087305111526458411260956653339718395896630622779554066473499496109405540667733064370558618427772075643219656560189493410831113341797931145810893228223642136873464850806814346668403179245199277697232811245594456810194125552641525484914446101113210108496600425985462229555022396775607413266525055227989611107570691382271334451560638392311670155033170499712749336306369635141339039943051998151671747550031644916619867495118738587662895639287093597564517593187267582499280268532873244999892123560327118625387264223478417302799459066072518593710935978890875174897128190364095407114483695051374687757973732037253566365368252287821397066888509547995046154211925103140949603269690088244105110622850820735934702592849602281600909331684173258481807115335704943640391092154017062867477344786584216755440052057150093295394125621982566639655244074480061946948014668865451452689503524767599086419046570690522041646259428506041772781744327269067029929058336700760445271825822448306164432485897428092678980304100404434247877498933032365983853015922115595903580122313290144970319050185348389921486943456817650468547308506859068174950733296053619275064177884466194965444108668555680160908040911460572679735840495338973624690280245730338748991323439969941566065681594093786200982779281417813948246652029044526511170923878385188361386385550335608950984946114858330376820895161610256903571429913568934701505756207149686573249727195626522240790471869109353979408641848996312495533285429927736521638085547980328657792231158743266692186379687076160403846931738618375743020420279143254235999913558814947126241789337499612943065950139771921334707319021727675786155958574464464204090210770928971808916642368879939080148350403371809357416943485964889582119453191196772131635958125582778149727922449139041878206332394254857768885352829132068645330512512101258100888659845738686838793106186558094018301174827363210486291412897896494150105329865882746704529001562381373568607581815360558542579792116889571927013608642012214132956570484907669936242307966336747429724541799556196697702499573111596533883206911267998950148679744271389313113235630197413149053988311664870054221049477523720465131882454079367535493031713545455868024420857088391647507204232792815865778748701540817550616156776951772706121723609425394787309862325166881971775568577404365508305046468335757161560264870665685257291444124696478304902458520313878779595871744594586242667890590404770575176549454121188589595349525535639411639161404690756668399079459088769563478322695568173603086159434301422679257085750441296540172843446168386013811550809448493942648975731212445427155512008354013488203197179109953861648463688348698073278613815787815552553540737542094178525434573072160078422041147376125312449289967473895440830243490804609968900165462413026423840427832226979331969218760599526498969549328530099216926541870849772263489272389401843137968611572991950260095612761403802820698850190243399497070118357633828152269753082399009005035329057866648504051189278939566372444827680939947923819635754341012629397403987334067265411753099122349199229300754019022474490035020187945805675822404971298344129782623208028706934602777388744603434894337154354616110708856750906673320148758136934547623357283938457631168357360063976469039595122102997625245336247936611328212692756379747224246244269991127704022721587360502375790829339257440665913845986029852425727154764582238288909061852373568249832742106260203522619058299131160136445404656819837946921687818305593765090133722432193205086356502441026404173462196781364607024921673105025499096202601819556095620452436936966326705643534451939035549804836683504565540782893675302448455837698184786355578322165801317777692091385977694077069244459403998495281844071711852868219875143306672019598606273456675791941539429576972329301299281879088426936688270545028298062736307082451125968244518268100165426670182028140979549962926324096365111734126251227919214516961768474566018173801486987588523092847476121070336667109425111221170766301903174447543363298724895627913872532411362458938935592680545899102637820095375648141235913431179036692218619131168950047278201467120808119647045810196192141852286353337017817003819410645622649646653772264619931876572808351980352151644367294368997994866799130251976634489857661669655476521459143859525226758190721816939655797127113536505869316425988969058012087755648556192044763865684844921365303567791602121123490698641618559206681084991375282468837637668819848442059842036271532068534067581429670358074564444157727560687585369347613214766809758221851981918927322144301186842599606601998147835383411098952675353339686501486318900672550294318485883027469377947649526508008652976397843869697997005152235519824780230271812388122051791392150669209127667034958087761245257275546519269959342256025106690100907686151598448883221579464760021290402084229551267089870165663456157872891302773891240515728646230973703166504682284759260203257418280696230355227475617165220102718494915085085717002658505809082253767153434482343593363945799997148429267296314637393805104935398498541409752739777282823890966924274112975740971388547833395400075014135818295644500600732886384996917782649007293593394206159005727001116884108650235668108211996597217850330962370973846415377361719402132871758211438810810533826209973775558456835562111944994823726974385188172826297599076728947305367121107139981020253965510973006292636645369994903736513541335774737397968085200012607378637232030398397605873428527333469435916598094284900918966108083013488513651596428781057193921309953984245840414705748320716200461353386377042968477306341656405575613529361305799903324927076780213723428610513930371086452798204839133996763273648350988671189946778040532306476667234726417481198728483395888903834931839107876562140718409469211388781040832559116990023099063465587976963114448487095181470029916059100978800789886925428879167765044373442496981283445869011758759089726683626167578919954482601485023107899690857022026912632642833784722317781560092463453519135169087668587958731230373557484047270833283983000203673917249224602072054918229016263553632990680623055841295378515879315228938425263264417096967553153371790283690999845301543749524219872687632905815020521309639699457890115736823230617365180035008206380870473639968272019780506165366158291706267926866775186391207884302333484682027723114895053489293691308974950440006656933753725471997152921388839428203419655078298413008861621208296886812286510171065542000682160308991497717776965918336689432358233898664087377937145405098684758573726720474745102772559205952717960134298924777599820355394374922326038784045575566620013730665349542185939036883092689413034568491557032244964741381674931794493886555232711785206385137783570999326114486138897939325252488324400291132917329128697317191178811814115991421915064452208885931209035806523258032760764535211412280889451712723025250603104835135300743173871735852280433149762426831863594136252073305096258109537418677774178461287825280899451330059852173981435168942152124154992903725851628269456824643492398626238694001260360806536212655270505360970543931590687420058291364040689614489113622592429202371332579989233738003305368654053120082071495757443496711182431288601040075999983228714230574020689092465932578113219175171914252806921276827444093872960949428639518903675157257382206718526985505099455892401631084934677129938670797243156356396002291249879659113614417689598398366423210743749981556076367864149854352922589835931123664711747600675469251780048959064697059665050155203218022551373948104025633893792655531630279250515944482796586293173150643443678058069055010396944488948652261100829684145368046968722525250445190243626947344730024287958567057031399673114135581330111939178740993827981389683001966601775255177647359394019758307546598951532791504049609240347837832034735421389151266867702485284654723352650891880392723104859133228149814954732247784191023638516458982610890550383403404335539565331336880380698736891254779682108018251188120300309485208346719989726797966453644283152946268655525731859130639364302987157429976396260036878674282612885138272016351695107081723401096552325060521762233042181430440826612730296859475189729217248211082404486456127065139824984340788812977442892491596136704850676393062381935756707765232237918203227543592007425470947475915921131113851230122100424012080898023657859726477717273288456481315937990773363313667951201090990575046541750180354520472931144688103323201335842120902801306998141406015923993245969584453741854733423780535125165425926714215595525461546749686207946307593711203529564147938052274069460757455688732454722726705114372266752170484983730378761427116734125956750888617992731836753769447688746076454154889020328427307794369855734667945542385506074713460538182060195561996956479193092532340864594597684549088793013222217665372725297285463476439456940614907890569268460991854770124272387198286502026699977225378377936488226998915509613274864135995657003600636066913883655845950784097117394320205226335475872271748676636759457271429534857432556300730459034261934274909902510350682857682863531872058296259492879577912991873991650218821932529190619393553819243769736848748977355344311544075104461535809073859185783704969428394788801452241345512423924733440529053336867011612123442315392587062241939723952621442805043326395571643760764655952684639965656645378389829241187868905670120595522383439413633173721248194609653627227440997555498691504600207374679521952269273287499220962170260616767762088945725161416576284432219825665863764764636180850068241131142340013525643311582371759740461969870244071915705475072065227889847265904454907243395648279002311191894532349877806557265733781701127947083515764686031660474224490238820423119720032368403146839135857972738926872778475929593009785968173994223789444528272783548219621392307789921723101103057932339895288080617359072837711263055082529892134332794111909346649188742157791424845569421239779389893755341373987896901435581906209871142302229275746893373358114168426385520863112643300393988666402319319171434487434291597873844156541710102330673959602581394676217337307612175507239601477339834613895587334719959045181127798266078074240895276620165384426563081181253857982587124338593686551983312378513252339680837906164050106118170946581647399791737470365624452640177058044345669767162818223468337702720796153605318077286028809042505500609293930611302950570759454103746634030034971122786881297921605502922919039834940857451918818789861516267964696861317496035458728359972154666917001888506482086173677902926154058343591098372204929829555873331897523793593425844196245579009688162396973012279378374884228567507858733059515615804334726084792971280212619755947505696311672029534185077177439462545449683681775100633192770131669644979917570261745325964136555267536578836483042676346781500654705282692848118295107679462809544396323660177333319052872229265364262761891673631064093986280004798976006846912535302375761532901801206386938406360211341990181657170716742194114982529370711666191881911263434211331029844641804323765740958798475472357231269025127428719735571528925591279114085453061719064161366852682850480578355869896380345035372435776919892954179259461279525977508786503513123548891198630446045153279500034501106201715198951387776923521536270844042599692133418969998898517353215984226430174244137467058540735500541966403030044365067159246477999798328226638799698708294853062447666700843969734022480500675402821387869383470288613410048830678097285885771672117271708291139370585714751655523308617688835940751147143934689421895991182468657879846792361929620675898203361187893839476648981873601187625426787861590835799946036267247028286181872672717254986939694846868384226743990877303906061272191287645268609878355814634160732312853168350174449613775373303165600085560188245815737982801798859965887726958521977726669247390648896200700941262567564831109349368501638926174061992328066437892449843255052741466054122413878064098712107651303492450089055490499910428563767256013491972894792068588512910422974918731213633259398633827287298927503969159705127319174636726834959640484199639400261274788647278909945637083641264883800105702793883327733111202181466524258794288546185201398306675788681834480783271084937735962265240258878170517520304983051192029243129695087712789197064590613294964911182446646043661905133145683674860010523542745839025911986724154068258906496169961478020720730846073023576773537614202652665766729443155618471589227551997352896244713979353005847985534659195899361956322410857604109548545389061767288309324251632208856997257252853529256427825270672944391320222805147417739842679747138571115602579356168563169081992856517201052848376628127856812054082612472240157246381308678508637076124029578477835080493106929484083000766935977274910152005300637219280502992474850347131162387350784421438321862328770639913346356693014944310582498125229353970927039336658133492607224663394182800785433117304709046617329265998926330356348264958288181073554816757175654347522784499041429671124979011246029569466643170014554230778910946313309153137436902578943860243890306586353738316481964615715369130253278798610249908930337473292634072024319557185844948416736457757413695311683559861387105076437156215378400717633817089397966340548252581230983891255063825857218860505847499768299879625409679754937778298983567900002514263951995876879055849214087909337666428889726578574034269524136089990412937487147931381919894476794884566941533267116172289599594172198187045460640909836394196623920094970258978144821180858948915662707971336972200042971532113068992543385639067815679490843183794168070279682711787767930844424061454231364859924301286538675274131036153482160694304216442869886871804924914039887087833682490015567714322705675722745191206088623963918809071448391538115364872554779695632987942112438169038975573043026596451696786348258967119963153883598404802203873078198077509427254965226680908268775967844132666425241701244128436869218810629659782912500755243929100890129067243448746431769546165529413233031774449306251011233934340319741492106582878389946408521277080092461077825083238845819669407016729081374892249850976842413198086817108783013965814732841315801796384421191777405464998596785169746414288371332525478864157668729274532164283059351629296160710727077018651632151458988830376690825955413760637436070625845801310740853099531712372250810650709614941455281348264576246137802880370059629540427708550613447260236243477806545181794469559373569968144766409983115068175358254095575395272647885152559046396602332122045955053699686162866210493437071821333601530191241615740561396334178816057059339811664678743898329804830746997917813966033776349713227505374510358118304775588515883693784472254036271072821238862890241925034228153468324533162345753248415202942710273932349995546516602111377814390909447276716920306609058923889448189526925169805345596010559538860109091017460077449795167929177695631885339623522556599950448304914706236428834735934154288571134602069154327128222669786422777641247999949281194429422953814594132940705347724429013458991518456019845210145765750605210589074088698173678756886541710803480318419822436291248184096301678380549728424788711831755424769485682192750782107053927526128958313311948594959695763676132588788173630169521670779429247769364211937968429605571924107832305039872056522887914443761281356189798673701414668750171558615447931462358440257667742319881163863804107264858221873311076830148016532400392375993460661023923614274652727245397945202692007772218944130957586758419901910981021476894635730713148204426444911228314599141546281700847707519583115825092500595814673195043865134895060207880296563811570851467337690250399440043800926034304074709624126862543812181753489839168379262356228202035714459350076697852467663827220289957063625544176048777360136420992944724940197724389533442699443067334433115370610836264178426367676610132489837058045826797720112020767116690699437401524699434174684464295672775011011269567744799678829671896003553518038159441152404390268292658477915599248260044941669973408488306798546854327298837092595493621448333037071231005824522224454000083152742614614645932672268852389180265544914506725958587958227057136319524815643338243004330086680164592674549162411412247804161373548922817047039306733994144568497176870017344989366315784381371764970274691996014438629077629247287552476416056008551521261746836774101496323656624603757470407104230651348342789447774010765162375075360619211390711529620582398142076656723009078809280346429645274040642268996073863059618875198103858045152920561406638927754284584505853926549952271042296357158891382090604634656796189090071747550724665914315637538008848506392430466993325038095227265191157622874862553080362224634073104262932875476604833564588837062159048923205541463696898750304630756682624040376516191849754272865434798118125266437916364762796226851458914132409149089753081307451832506111147346914966492762873575542239516911051542370787566753537522944760436748593273692241771362272062692904607391952582032153290729199007066390141554918308085582037770615339100095819711953358480928647673379754299091678076326243550027951564701397801091991665695619350100428414742583321913064784281178374673331310749431196998800833417449985454391993541176617394580580515156657206296399909831962913348736392404511622845302222305631633195957744442902775332163848579460035934977191803619588475103546445677467385243685593397358348766052397878568279832419522649429716552527066470682194024802240556624246215885189925601393966359188967861037255356725664379890906437042645037917025027565771158741298729970825864560212710353720233046974794068961667735917155951454513109991367438917066974160253559689602774898567966088230737550345802211313967606563824621899270013817142806218664958538024396263685918297454211447564553981059236907379510880969414705897675031371144361356887722916790034907796164167171049717018275290299332440392359956760682546696278289845439034623619433656831782438609569851613944534615006914631315368979405742452379776902382025017370172295885059270518402737832245633405766795102506789289590978672063680452192527927557360880990903053130249748934337961914051823225569142018697482965084612504108975743497246829857493203046886724250179871608271172546853887822996535418343523679057186060010602859414041843766103342057502900094782749914636282102084586913206797590114545530477933652836368875771516662992946751160066065700626195766261460952679990054811876822347124234769994244680314577299633693055114997308756741828711987927906532554869512374574226123506815902741188993668525011880568444816070368589545092900893071145483853921521192016183533475910464676026797937773513335846678103116903973539196813993074428574163489499040992804514195291644642735892490581229630845077324484693699585394086929564621156299683517879557081891038234251294047229100513531889721474245311360698033727523954609092506624324179346963686343284705694435268402201538543865252986485499384929767541198189320196630866330049351981785406454941723239877753606326462504335582897184953835037588882696968189869928550712615156543756857985338699116559621990064453270020825825320791061262820922774529459377085451198978917769641385113896777378970155655701715113804551704756841474660497379432755851441417458347523318699522324388766381021466185490179269876284376696128447466116758982669872027762611238966880916470727268616123468840869664266005616535169872815237249878994763644812932784337972524465636219058646888950562335586987674382732926416225143425520073935702846919817080777919601701218927580998628816701150192023167296964823691744860231073857952655253656526791324204064830088064431786787938866726959180414233075818931869900734221188233395135303649122000767785894495738265620068471921072993902102046761391909768350875586314966936710197389807767488283890311551807215297456138056318552497855985212365694793246002593112743136384932155544153512768855951600016373989266633065324058823020224189723699261273081171071811086738344940885556476203808631271939038940837626591524407454356122299602851646634158447996910611998156244318970152364440768326119428073067133977683373721288990205489967220251954181982025858273441121664011081833517986322592084785606392867771647682202197648297268273908735038030464766853515880681303745164165392597839893430139231679710081466241196483980510982156412649364826110648070314239422528112399547298314990185214871226970053346789146126739955645289949738961786856292990946572805457283287393660093581171556413809571585571842691322277665980166426357328654410507924694529596266856941756451413862667152564906186936714395604547628240533717511394382781525956707181132535762002894403550238148607256191687606098491567797084166863911484297172794197268564153740579832046459790091260212961230244758268682970848930708644362701890779379083193086304234202991085351737096187404930021471576419983876869259826801843017690725906807112433270407580743335721415748467138947614152642184350082206813744493103100193671198654257686235463471081956604758143095128686180013373555085200166819411306853172292667868051992592962946770856103820622812833649393576230188987936591855797917106950476449305962034456299265897321980112599528010996802202774392544694502103748186444428965449330331891440384391386331181667455639187327803284915989580221506484538423065829777203126895238939803847980099376285734838965193639759135679144746921765133679670620653383846458731715304340452271763498800762168775457154672428379382383190738359334059678703013356741358092280693977877910742753071560106757346244326189835878913724601395678506828582706893225826908063802217560457108734928899715251203597224578594856415807851374531090046201670903855440018215201914660924316160597565383982037747533722550593287551032586630570533858459596846243030000617443500805683273686910352655360917906707923309473648454481049127869743851268663954875479805051213952273252521669738769832408366215040122776313181893025969146488607350397507086574645800449251103475750143436423354950108387779282337101938833578141736079323282180119488279463048264979328172508807346070056057953947856218966189974472915814162320950430058159336823148531599064159306011728408219962924876246487987793523303283582757276569136037410389013253281561144096948063088972840452671462767692771151922512744444808592566622652592461328239876733515946238007931009981705787283021135324578205311397008629972874236084820200724158422502266889082163411794200248337110609343357827040731159286324543060457004188602117841828399541054686432239510155610872571431618579079408591136185146888409202788559439766749536080364406866260647761964962306456817125409747187808762737078760927759335682844159797275995074138430212082893311296357816653336510925883802886009892795523377863542503327247012206660264090455305769352634567639134129826816991850347339761308181826858943173232679459580761971865354279796739896567284387962958608937985513972680341237103501722719164370236614949475799946393172859399749877312933856926258998960367569097905263285899098701276202090518068334315547750746750848293904191887773802519291694647449810078645661658217995115366518258174436935365112947882734509553901253531845935445771138941484710576431637653028313272588089382733890855806714258894553186457272157186727940526926234541142803366050700095772883169453186662873652885445056831804619806236236809280216997737437451670107162835434098361902855903823121460435230791317819326455636437383227824439790760049118778701215294983916893054082844259674778524996302081363204533089484117195578975788952111884548351776304472598682002833431647731599831922103338764362764342720112907689185296657455442878626288578612628182851344796422889160668219221428491042118379614221398412026700627977334338151192684820523113799402903843362521868292184313820492309263320947867766046356400420159283207121504615978723805485992095657212822712679245082533967339253711154163146347034828337743555786405169019282769270960273201973475406738223569629271250626059952265197263846306734792524303219958892690679138689846049057663388770203249441821663841088995094074335551577217392382120966761269840854495017268862340932509759350762868332985506573162963591050655645551251431150414132384037935323590710586107837670223507796449664405345597519967560972312820347937369253442897398263158433785829927675190654892076845217860486775243794606238196801247509693917398071493093596830686765466875339478603089307366634082153986633237981171661990668945368527336550827705497859230215286230148368365372704046070456347216011517826476579724102761395659292476916428884059793529186228934747055812471006481902455301094261792563384802201700997292277557758141264253298741776193646972388124543143585930098349693833997320378448593390916571561163968614533901952834208435099151888610213199749647648546044728429059799389607034690179465245802076430218956501321170451790595134885638068566328411750420957265333452381423238588179444398556774679715154462040606044285710606717240121834692005718190717244556301485565819886017478517422480728896943558207843871043873558889353787170742584877192405098460457726036764789301613898255000719671953956529652329741855796173603139593372996440619175127918466553576592134645808907223954730914646889165377223227580632466238274409315394881080360098325008800331324709556028156082620693320953109078006662642368083449568553985249036639809695442014077310446355016326333146605157864080996225408947229926869310869183720357544387313362343226525428266370453768757793896654344696592520374137387693136183370947078394922184275230892375187505024793110598152854638642507576180806494821288394811809158594569675220925211770819015211335794549168738990867374681110819219435673884095854260638376285264724366943356288762535624129113074851686163275947496393487838770954183872218334248624316609245405395905018848874966787675662052208284864708588471287875253493088584062527310627245218931529448329615969234830668308297942156190233078083445976697273480838116245887112805994301029194086635064746533868937200579275571461792121551143664900888576844017341140885190599469666939083292927868158981225409356505726116820693354996883955257810128597874802975143882871220478474523890167930386492831093778900454336243183560649201641743846362085485989513080777321204987925670883915927833882788840038800029556037741129141486938476316899701358751645914840944454728292567660458706217313224053859566189514188754605699996867916303907027051392187195689661388841996596009267903951471639057315406451607424344252295535265402258354801612599269221819968917837326426951406875820526102938698367305649282528173155298383365883405973050699348746287791623160434373418270911136900641012794053410466926448256053142998546018214862324413159670744694643583921787443795111237767395887961350858697554978560052893606488547648209601608136916183778607852609768172256199335549385589951638090546971662178701308409762961560266402024670751647601645402371378340005676734354851434312363997145599864299348404133726367939269138711098627222174762379634563002284993515173090405577101617960834212267582157324189351249330641429503068201875272477286967765148622509037660091731384204545586396677513404322320286371296258230867552904822830657326725925553686428543919857397691542650866921160061503798870858562498264593399006175351904133586803190407918127470464206198135020724239726296066313338815941316715405584633147233835643562207258556519472439180138309116072537826778194218513869877051419017038005019122957329628821528192888667681615081123387304578827482812185847178601708482515754479863349587106335904625673339613797089947531184292587160102705609444668219003166186609162175474706033940033227769930689104446844840665351149568933881261817144860508837911642874290591266574461318103395362398904812027705702648143544924101259449894039589022291468925852341518043311547615389688185003313186122788456094872297950213892525911946532184510447846622081963940847513867171150330253266582409767517289793916413071523314954327817530208488679964257151593283483674004172234301543044585150155353764399697330857687752457710786338805304299582088524045307012911971961777997975778270107649673544499915153668680447409273883977330246396035337870692867807217500093168682388524213712121905418768236505961852021283977338960384196375602226925283418327896511665708669549609085246444786924032140412909562044242715935271551728363891087147705625621644841122067620302176992415131749520430510737438896638170214612913680096567638834279706309232278529934097791201036872643835238562556686528512395590623485327379422595413491525426835529826642201046534812895089169521750865264994070056256464585437169886471897907491478017198111279415178596039437804889675310477557382182083348594449850446602449257407165686134741631458697800204020078269600298634124406473065066521733613651050131304277141578743540580897725780046891383950547514374636874771423704593098030424782257263779144315205518653995111612298614956687545786779573017631023379132166013859120541838448168204646506011156408638871125342691160973061732649263806081153697421217196830969186709802588662753563086059181348090606985203150296853856341674833175864565837505523991682932532809007923516050547658129342960434423350705429588486148207119008167334047947051913449751074905165569101441764799973441485282817458121800357344435591312025290688406877002485837586956440134320604413829445223479388423393217981763567460930288114336197683994847306448743702878656925184014183238105890607755054965340155916602296653666219694560287901160893744481527292717727376780653790255551526028446660113961198504379967095845485799661363090080108676353863920921812892075435707803062294412660304889439265964563474228623661867325213808515640945888763953158557866244479153989781536738008875737371468962865789374250303518267738285681878241948426494832823558530706483895520690931152167980532739178706672712906329744449521297189915823651258816746938868204936534307897032383225915444860965494519466621057811070979400195563657034265588322860107534787329604669120464044646490097939239801355812881854304667031968609396271582979830361274701726954307403378605182739371222079710364381803249108646600687119313574150272617034407870368205612572994630181196936211184205516812914555674671308500701913814445461852860809561048711363975803860445520106121988586878525614293890794481819624339565202108029533635935055721241364616676854536955504628331130511343032450443783243142055844048618104077964580762460681359360426306521333431765121382140934695929003323158789539673792574752893951217817290298592629626505226951760607405470427376799194116246049308660665229902114196472864752010705165870808974999074630952705926368952336979969097273202285686099338377777180232534408820806714797858178710744498195571672182525031603803699043387134936617116478984887693272566962568024766213274324591574807612568456056521891818856809484834906259303676961956798791913625959398124051138546624186635620595292859524915318785982813196823339997173957387420894529418234532870951457345398764910536451136186220608049376857756081916099722541874893602943323493467122515545956672978513989903064808262590288404304572298423761922331456111412077328382646356194068993970899983082154380663524502059798412210637451918025361311596293517444970362019742568434928836643910736122253428555053455409388637647363346998853334206374901443967943945695047163772578575682160023800660830021207198880721930202335331811851861416917526268599798029349235935831121625252907836827347232436146327313214776507352247639562672776671028218008367746686964710355295138866902679740090686829340504975676517186871841381251637436628155858292992401327930654348872689630339015761649347069448991982445978897541345852669619145428466841915699038599487181751899875245186645332860313678061473790617268953704607793331489613821524374992860251576223138469102818523681151796525520952570490128733159608147979966145346179676794335923788439234213854169638408474382665446666906551358830971958542521633313975361142523164419193884963284561603015945989445630627199597093001421388419200423896224495023832761116241915618013816452095598479561040361383155553132113606513550882482923837301307524534155503300470300662186673777602791461634534622375748844708599445087854509820139076510007424291465328979684535489174730609911522787049385336012622467364446930475028581564986377161813483554294043221102071932035434637894155681182301950802922728008731085073034079911253907221963789824683287689467313595982498527270895355868231772085234026625469344270194650634762920919775544953222376631887462417305491578929839846317862760347156432767958504078131550009332775189962466046844573662825281694120265424422660760092275169195452097005100959165477411916864403766928973375979511428210499167623607363290394170214941856416821994189434313025785482556714567609307854761180295569517860936971531677323708414273063660872592310918039665053978696300276400621843560258480079050214052689082020968221282397431755413111412995020738379805496819681965063509261553840438146471494924905032331622646298579223156641779565237220034995839679015590047099286458707818402100468864243012571835739887630733636123762906990478636326606592026502020261550873012629076983165995589632031544433414143526805829473343609927854109076222831375109022415483926822667364491540844611545875313251971312314421290794408783330644641364841549636930263656099527104473912152040073298534797341793066045571003203524044115570604010157985027451459223807935176127572063127913928203278228745356235272050177332107631427155886853634551403720156322691417085541419540507495053441134968724052062659245298857430405675347537345487864470453508145603447556636072062211882275271404008452801045067993331128699160926130956300529014672196919412772940525587202632506781858195281224525357459771233269360986966279590703900950626055543218054742495765321710285171615110759847521294067139725184737368214074409514290496891009941623339179420353478059223071037663280559427176130181700122274952789803751322184574596942863307884180784321638070081337922264682522431474741412338719683223024543998711921245986349475216094042423846372524093023730383664103919881976651235560377391532048923485319585717830430229439652957434952206183344298379292856912028005420392072743524110808415905873865823287845371269418599133335353547810237150898437155510289062414238194757132222459457012451407068013286970462766595484792819423082136622278693557554101308863639270571894541813997434762863047270186984819321007139695241979711216932324908741184834860678421428257253090235892334727667962853655686818026153441414297082992080798127126000599684362005718651002974016683317431271939359078138147330676791648632072561908970038531840663722359280257315604868959299831282893105814872025398008225077423205133976295812749295485070842891161039581295448614563921345164530746088188952385471171876145315439894163034134056772354791919307858145760987060408548446173319261723302238319282029437798121853957871672025892020224633600934949878658408231042874170940601538285615370093060845562372432889216056852076935404839806483792388839257529313685055704000596673659442507618955544159409467108784227983807718352004915201206322229005608134372509000155666131337157864609687612503171878138167204915218588526284438184985664435374142232556758167604208868847094021178654977785576205224437136627460319000194303694877188969122184305154206632178047535281375782607297344368433590389256520108557700103813658105309466798525088447729104782843212108225813285050839927131191680577308796973883563430034294288524362279881933746749844163359205155912838517289785971194948267527129329153404986650614380404120578834000012698101608605836519541400143982436157095918598153939152520370259587290720312631690576385919266268823521761199055480738614809715058191077118289311862300802004111164004420348420547952452549113439914322331994648419864721662767995047703401180751108971753188112512664924628189969677950954369411384629989864478169992930682846851771389653946055762895417747465019282763430954966643350778013262649537103107103818025038716511685632550043196343832693253866002339556510002641723543352052948863091841682459085228771616888385855060618808819822382728486100789913756609332764686728440020170445506131826431807120434061643785945215894070123751787523840253356642956881718586984338916597132064491040027482155276784356721142826238609520652008030954123318398888632995588077353954159092645543335852093786896542400713356443446634772218647262587443111563210304230001585397244352626944874932323697185961488556182973845820447613022588015756985461096211632868333714625121269737008839308429873655918733312814738728817761248348585795522346399957934414081044364879895961694235680513966043935208798480781114721917888175105021905078114342168798021981625850590430863404890720313109028839028675528024443953326043777022697188236852565132729877602024068403519669255590791895773594040099132366481362434158387653133428804342561532308642151820760797189916588084882575128087715245234152531236754205704588726870358043334258234254140186255901775769534770437054368114964159322450945685163523164437377933518056966396842161475790824225176631287764686320952026915798404693354377793007208551410580439459307074879524218855444106587482893243829506091647254850180731684866161240007598400661019847455748852926843324225124050540127211662681395925021278358015490343278839358723862175475187186497877799183673616701556809588592420672411767944167646596397820925851223527361484238088959193713211474508118687446791781432405392607238962579737373580302132742586240625674959417017360356245044482116077462656528429907115921008616796589029464688370942940931455230054129676689719425760622764420937767382050380528301193060120923744922286294999932068451315691407279302650217126031533325565757031196686448648430703275206915637084928018291785247907234154167804161514592503673746605873929140655874223048330216757918337637384459128682880443132683308685309449233901256182785482511565181595457962695598384906321777658177420671411796798830340542955985911384439814562905892885927878865670920571581216310479423413084369059467082417388510083770210309216975841520198082786030121886659264801897475623784139263581269538111250471178721068203984486171555701600053509735595785210163389848605390373317805192183501611883901578201851996782379004845687504140054573447568938480843210748739766250036086342419896101206586373756422948291831013808516071761882090233662743937637465343351426522652633736134983623343012879862824729322437388907525736813064607256604011925797450942688603147563012021691845506018357103143629224145892917273857579737231447676851769733718540897672893929747766204384503236896177239547810588013069506607184808303061631485397173749659292156526880866560684128349844148870982864282472485336417488032712763874486867245831372586155775368372568392302655169412931615447876156329658706503648991157247508425237208169974695744387383521170310188528023114429062900030156775826791126913814082960666295166615625688516429809884902584987934859017980807417739213709803700846188597507707865807831505755789032911693967922414270108047281854250362321993149382948361364631064880473276322059727599299875971319160670755376021831270447423467362200955804249654410932801530651389011996944473010269282002710523527333807674489417314744391426510887239863008009138889663435235979888087866262009120466454125388783843908631999909701805901624768338795773634867358330267270085217806099228698032927139961294628971257663758318750583835997110610025069353359262574219784659024603955350439405063347580333359992983711536217935656464005264274341986382074930056981211090594647527798811139696393145114597371795089458837620343446928251530579016816294922368838994087851130362927167327114515414958510316076735392850693476610266905644343712775025543967047642216371232287176149362249893475683647702859318950515040823331871494097496619897317754230014012630250149969154540943711563958755697191364160951757688503222097384424179556703761575357649160849572271462592183844858820864742177550221796555317482913485928671342398610230524448489920454258238815121088151621737209330958087032149527325147868180469879447914082611532479501399868418271649478387862099406735680402914040652420696818395315321856264273855006244169809774104653248742099408745062751074681712676315016190150455214035488829108741893491167078436601421703552590060843388921182805156065365059576042311019854153896345382383981249284320291754074358964718108132175869924451392120082001325320017283122196547950783480288347458134879519994635590557480282226010505695243953625520015203474510922600925755923542856706079292831967140716293585720390075849419413222837470926892640707764052433887751613734114035614196458025866828499976043686604796000449786997667565511755646225917685958305296777151495755377577651921025912253187214280479786994920396945121811277741021480884339625094052469838624912446490481028976414610939651548693248917945825066552129156810725349590936026661683560690410719563901180285900414019709422800992649855893399164846546779547895433169495865597019117683526599754917729203361889497978986656242594932557545463773921145528488429166272839803067626411070226386150082797326334649117460369076710223725462973434563180793477255536389593128409518579330478474855102457148349138220044368570181982810580288059455523996309613837404744895573762342065655053729808561863911254496204639990947036597556842465016931747652706186826318673285397641873506672215606673888052958871896962741556156356553649875154987519177657715689808655084832880303218209646648521983159135450987063379231577905773124898309443236393394093713034612622480645595845210050028148694995148730394066806408365999514629380425552821368895513443155932191477040361329190575983976298374625076170162437380205605898103242165017534582936011007808139772912362380437821022326548174608868401321036307311753148450407163673952989559060375751199454370407262287299617937200152424965313607534675351657108023222125253962588092852268879773763282200929396659406269725006058860213568127967258646236270137918386937376814635954426593921075408465348871679799757051258405724305626710904752603194981851608037661708781333518371628307962441332948645902592653614716446059778751620900964933124455245742672091719611574086661185401611922932431784566144610114934698638574102128467372416899464244939448706971433123305254697818211209148901275298765140111734364189388787721686990474515195242774711801546987285293796898941172212156451523423140407115404053906112613953168742206193966156195013487776768753031275922125290733905558523324082060314103470030407270713034540985869420670863152879391088703538017098567681231813138741342554876640695487316188613180157066043816704740415923697200629619097319970122112920742482414288746297783734801833586958567347045884922763143873708985682278365776289632973574246200176231853779164629858639486140400835964560156813700788445940083221723103259284511698535334788503485156754512140710738230073216305065590336214477923316055011744689222685463858150452575665367981285904044649552487309958299064518419920706494359383199213132389514315122387576550069779550945129582486511980361774532140009668657045072358580523035135811701909065699466925601282314047509401761658248836789164801129301793387397640652756458178271696698325655444079141060171622364877438258186381307722663681776792159388207204635292560192589098833675131971256866911364767543338765300005100703407782512615466047141310697610411201936853623985614567248156294595386629855866154185693864179516346061929179415361730652596566296485041047168206376629213129098052049713225213506645408491316826859251575108013084080102808512736496607040041362786988975170528790190686123346018624045010286364419047703871274055922231204548004060556271832153669905230781047493214451638330365010259980066630726364198392052468578749479951796088079633538434782283856882333892573426530955534251261464209720967048426350906108231729252449129182964845840807183761435651130225870089448415031606598088999955075652789222769208998603457799204852158591260060657465686990412407784844988800269281683690363520824845469588234807189816186459512993976558876343095193787203705384251787409765398970671469850007994317252970611183309184309943783494875895918975424785569182243287843105750269919935043525858632936736827294777084456802108449055145223105266800447402069631978333307938603148727384789953413516910414895134774768678418790282919782558507005583385907986780581550146262901572778225852234587160451843512814905414854598038644988904493492676099282860720225146474638876708558873368677636365308893360514413350883168139290305238352709507955680107121501936575043335579830462778591918757045755131813562657403217779128185732172895411805831778062427378558425091859184839902031141562698205767020775386657152463513875048554857628950834831319343410700963609354499884319116434506735592658196412909576415190676062995744338198985647278026181917867690194388248849238096132835831201577119833233948824459621257261865190624953530387229281031140550250238941968024403701032206214158666753527400750981021914834686940215733473421638137728585102094631154967336006888332906321393911213714130528737603886738015678997136495121999218909994197971683381888140207567118700290554774864969252463601772485361030738493492462364737823875107702838389237782470559643706526881842680503832380209864647254489494053114980130800097597600329859836230764977498220497394706763083774409901781009261350088472350093940504611918243899530702719023914402655469313419552065944842851167449465117257083900527945419670047831443135498311291311278462900310986604281082477153081700346381875160641755889090300815441235622350043832601443732388811911031635112221973119623813486656630145664355386553414028088265744867978213462234586523328395795851951714768877626522154752102798325630549659016188550037146256406852343454473583683527438324709324467469676034398610100637810821029390746290468128089557889567413168503010340203784077096106322496315113014859788743903030190529776907981884143975862137299764000842497756608766354259312124207221695847037324185088778265387091901426825216688749500569018279530442846991452313654276739441842879953149693077318401189250894340835909007993089951328670274439290364555800950456129498423093042809539472872388849647701613173688183056896008155818665852326551788848623124573520198767295997818507918305050467718341399958041353911262522402617853208429371419451470155116750097987147354644061006587706474979574439147093766627993279995329442061310117966897718180016527405480507706531944951071173522071272759562059070350163227053351013841078238305277323733331975896029503508982844094985214710129489181175619014048747163832365485912158620090939712470548987015930974534855129944103387656241882346304441046661085467753226523872300388568108411342544795478213438648156008060415839017962059048614439832616185672863498844566296569730641059566649138313066201937231662121009660333302472536286376023134099704710414193364471671164881788952064980698300145262828727646363207890989336058612942709230301839286439438762947570648308720148706289756081778042895137445298649563264442081400906948693041162265320452171464043157585020005048051845435805937104115306282783483166258573277957516914781665886119969924852592294391626943093334844690209593606618916240229747698010337494380824150589102484795005281665233123830019559853935309008869517884381421091277687380436990250666494473224225453319653249601784653236623026223263861803908024095213963386830264633908731875224142349213202265757573685318095283475613961100312866678735092744670276291611861233949401971031596156475864741503524524058293152062715937048748308279957154271140652663407836400467664520698420928805683422787494450845578802931018372383699295483022597348675101304367605544540030745435548712956113635694759051131263118129051215744005905119556789760381213695269989548819374419712208383479301605518545455543086553512137775446417023395280136163875055399998164552749145490605379514235715317052269327983195162378857493162670161147395866680809202025673257948909005218570450066602117953590257460724533893413185385463835458016127836212632902991600864012777333785871682081773981967979352418517045616791725789487233972931481560812856854097569067616851495988106137291080023653913671459107979795012430320121517365524123680243735226617344135728365117718260347953513302100827009995271311604984821072409184203086966546906646885428273036793889328065848419803258758528115184946302052067397523749987611754142770884378825892164938125443526147328867229544020724550418693331366114608589990667406228694320235515062453922211915181211130466193529304661517563917417742682547219105908899586732253555202887310162823664146698057467529782975744475664199253790375962881615225799660573044680576786772916122823533386399034572465688524677182730490497027237964251141318979982089031856789495173025061427461267709631419020395426308708719986972126265989406527590459830929629400163053046514144510557612130534756747799487910725650378185872343193585744618835227128853816187605033029320613693198760663031916507085365237091883144056374921925481543786462256418693670901660139873692041485210795429721699129986713389775108944078155258162860199963345423711765336223442954315991423008885256996685148038983427177679617579899943125932097337370411342406415728744391366260490372514865563968910969223453585767744227174431118585810800492407023076160803331653766434946175091915378531103975158103448671653719444682111648737781662009528118303557676136214423530897437780974671650323433138283332653231613458866055936882584598872079740520551138105520961864458137700946539272729831743210508679360851985961527944445508949612713894455159743532931476671078367778842290893456892815394462716193170856518124026488658466123884391586676069729478882569662724187853687932044056275751677008412573885840409179509816026313742081284035974120731091830992586847653500562246135401128915607924500896388870210518565220771156507545279894845182809987732887116239870728867458447406743751659960571073421490660504059906829198262591826730731029577899290407058828696902600082845808169741470690095507474334797962644579300186569152569847799861113078990568678270829559323723014235453597571758592130268836317120094826142131135979454381173837943850207002638289616495893699096560003867168926070256331591574081266142936975986383361334860947859503835207763163133719122989490583306760912072135557535089948331135445944513856059700894512318943510278949404049292483934446049742219879749003620880009578355919766868357310136555240880564340514544712505638145643222860506101997718046556647881071300592282738357999216284180484563304093791981196031934292881448444394705073043845317320961864149155892769416352404596521117308454740915293302175827486977841931369771826081288030500813336213201995782517736697755256979068963628484037828331441086562860324363776056702623082471834886335644963976571699609708146752203403671018771615878656861711568860698546325955369639272979154702306275989661990637189197762567062081939106043032327392520812887292064500125101495603782815328539880867021475733552198430854113338475025672143612467178568298570836326035982944448787642197960478978380066388504920668386722847592707100089352592339605002779622577652962380868869413324852764612160197961410399842780640002587932753436392822840870419890118462511516884946199713677369458330405461722740662931182007513335757644825769041632471756618823802142402577710680121543224048565886649856968220935615918326326549976212814932611045698095853934866038863980990745253824851259892447694587506116441546750663093077872502027452319470503072306150123800622652386721396707756174979575822621352331960005109960857445686824956608743249366388902430496458848678074610387603629087237364935280920999809414377830019035214623538746783778465600238069331475332917186736880382651417757875155179606116818082992264805939132925699303476109905489244464218427312678339839659437748592206029739809292833800047354755592491021538978287439111900919791988080141739431924551563019368909098786299741823454913630540396860750088712022854486568726229160193223500611031867850891673279397419799999524387686770093033177345666833751754566708312866540701281052111838731120453828901383653274944746899949294033827642517027172890014340157001222069067560175322683174986282831849017549492942883021006755926255412825950621020834969664264869765244574324816899806601663430146987551835111995681554137322836124618869364365942709096291341413194752615687735445097951477268333652964938980530795703185003317902972678742744258727553561424285195870564653791228701475286699423243330659745184516657355519558069390229404310859340716002295980033137432967162749914781871470993258481633757631692096335927230839207045913083150186996238868098786819355690911390004050415022814985858674413647100294538993482564311718809684624152124365591859224004240947168410978940489884993911318218575917636459600526405242202596067850006682196705544868460520345052605439538238363832536441172905945436617624565227860140616328697682329850080644959595289283637612737996692917802574642275916587683892701686666475463573101865968371688461856321828285053070308803576977044157768951084986165080787908490660899527073194406956686573117968825522757366966210537301799550770932827285379374132876200816034370094568831409091611937743816084218428673685797578247378462218114320003131263406091646570505132229079490335287309746576945470295106251405340618921701152773230586677141103143757181495458873659256126718134951687547882255184073594693831636823742540489299254064483795580143038472322129736789657739841826992686682725376257398642685244958144894546545747009406842136726790630155457326380347129050265638634243740748416952191285791539482150925499731240806834175637847079293785230398209133880613140629974961971685603597955787494810238408566769119744600137742908997200184461026875594961189335983891908316702566468827893344489633578600572546143652191109854846566730843833191486238849499026572379440297474179490891734597538021576502059961258260622041215621701105115384104404285284559326087340674480530036260319655901252978949175053995528961844501585915141514519550812455702977971283365191304222217679922262630717594472094164489566051982335698258375481957849665184176903849744541402089162810500832494043476050155115057858806570792264239738995735077330678110282469932741636002944393622777915618552671313563585533683667019461311487670199268035607633003840905128998753962637944583703781709825206466350590044677046322277003673798093948810284257270129555673248965952757867265826512320405847209677701847371305486624272740164380591474374105129130094066453732422761704095658992057451402591911473287323311378155005770785690176487661446257314360021389048277590850116376329674282375861868883416316190791189948992742529147934838255728415484197241771282849630154824336463266351289776021917805261897334670740070003473384478412248884052143767877536231673496983064510926230982287829777552562076238678440656441134717778915449275516122155154457503313413811637378243462330555032925413880572918443847394681667729003627529379023196233442279949384939116505909788484026823728739362748158239943736394621540982026212829937848441530480968608732961538063504141903510077485070157312098617050435461865542757600064053282556282304912833026962885662722188360136868400707762621677149737945174745615009877017686258895148222878548597781432739091673708922165282226155544761067393933661291905405593078142191380992033999290575825699096419193617335884613277160035778321558132109275395092840488173380878187539917284531794593162143351758024950640545889663988260903378389082040063788318221297332572946459128256267208468421101179366694742368449271589390909963013834360299838304171756536748520159039582551150818971446764198970773611203071830490615192501114053653931866614187372252800991090706764797771185508424273949736759289049093461875578877666859542399305370215633272324677631813913703708704403176858705811640436018586973575496745305742341086243348673767360982517897151140846286416030331836114634189849063420901593259152427524395419947580918372687017158473041699670686730525119041467494993018258991714355265165198247223950998478999920475200399427364621090034438924275502541891050586043639543115352665160080603876891571870103138292839441677623467112414508264545189440590386876550606648707921146163768902221232956705919544226314564629611329130529508064439703569625303532255157327985181185967044285770375695483816234748234121367213648312816288227597170713732177043584902739098136581665635422852876202102916704964576428470447227201068568976702879521073589092876016253129296890695020128028488888187849918770836605557902475906963846120567044984724939996721736717210521466455512229970150180973708745774356682709871487802843528682331828220729816787070676827242819351463515947913164535750430573189288598732683361839117054292489760868861523353968771760950833999920592142823555312783153270052391975842061571980823317795837953544351348796596584327255852857185820717764894708210061686844296368298035386202420960622954491559522113398624462856153309569803344457389840934320847154345254816600992381718038914045488166778975092692094903032629431018132294230440298225562957116032640821826823378362589716098253624993015090065110835921778027653471956185037005783560261495898756587894615075929195427948872656931084016995485818332743893540540351476025643821222779134349720419283648771749066300290089969293912714174868657563621960281168231834906254608734380367646659265680735189717500383774293769259124147627014297551841184688635316518417615072325113999846067678948543459524298510580224433162501394728225997327943340574181705704738701645279107121989613294427466022029567277366977403500607318913325045478028107425157503695494791392208454463551122685046501876020416783881185528932270375962200647750871284646479766529693445568196760664712415996179293200118936159880610151252892088432017827853792296059871652373975194562478972284663744622800037909882802621748549552561938525326852612365901002026451772695228130144498102232710944046751907454313067999166830544890709013647078705990996128182717785369259314551367874037486320158401222293449901158363464337316811815887740869942818384448150972825582057105399075299438309911526665144838170655423499478904829899944556909152050931571886231531445558093505307213792839050378264418702394236730076111845778137524501033010844372790794873627613398221811081083665849088014074819566704294660268399258014437906825653742505503123982267959040661068519048775463721827116423316121114385788918967531197844082542555792805328292476780688210194642429665295527609303262647659683234400271476380674718938190421861379906351697010760723487847267252617350285998984390292690727570710813440768518425880917889963188144806013365972288730050171232001965606997045304954412942191534091622607765324699929921466668374802679178323015909206189835892069787671807692183417544025849356895632998995459219427300005304856362639297907938486097191998529732902320831291619335199790646912559721512408889438461919486183154914534551419623973199846365456138430127881538938081515765124022062992890348319172351552819470739606664465647695272103574036021926285672077327776606922965050516038316264896896230035389727127630879282314252728186771853441770872659787118874805653015452743010566626023094643181078969185233937538450356765550400369250382655317479835454515466519611937309323893474317876004874872729972730512809859681511746142412858513404098633891232080320346681071685020416985781754289803197823073266978558972391423177529293961776326915111153894959924647625577467588742075464589480673808676353971932454041596388427196679317071163615101653658692585582060869965935636818346251094215978199340788039840925374341921567078370861533017980267788707218637005836586619412749423963309013222869303331138921126575160444599399543905499764918064209519248542697020635140269417504557144088912126400549350896374799942562706912014751036025282626225521483991591681747884950593367762562921199851298991392391215480032425566403420162291913519359344458110233611315181410513927882948922038353605061079932381902324563881559782841431005916265324726973880491370100862983400978222252296600154964433535181977600894812533758368760410812457130049564789929420678327127956586619026137675154007868791532840977602474420126292465531026656846155910304372522302212845274894253431069695007501279785873385229507540402582939926141845916343622974118156854266895377602124428795113633723422904018113965756353976234523896022733409812611007963980703622141218405102656543808781568688022625424322487370967518838489773226054845061374467596202052059452484018791326448987989131476089674974194426307630106778662743032413299189150993094384975145704835280858546517489374708690543819587775501327583653318262599940649115743615579717967933487588864812488057624164707778635257760910608930778479938210481782686647398987432105070529476384391738259088780574610429412087206736251864311186564183880412881398281525636078392194867584519199833116173438650739460320871950360037148751000657172909492382691301136472901290735387973503828372974597910396924113452200424689939308906210295245793764077919448503225555084059054307534701872538992181200570380857770439184413687697319799657344437568878160772785833584774976316524897345280901717881334319884958253848052771196428713893000652043066034554046049650560368736821717195657647601122424986168328694838909587531045579821725083006135688006672890011626846784267245305845533496974321233569942347905528051984388002415903511012671733398384833608330610981323055444868688908178192187142765074884384302533707447857428490670089914226950086820265359768719126122833095975992757073052809451402591000262053502922510771761439370683581399699508339047548658737541762491110909654510787715399278500717940485041031034568965805118849950901556730684594393329659401339815727722403188525397236190654831996268091342407242263316332864587053120911180425690323258600160466965122956821051250644927480247595806863109562507169749097363292985552728256614261726546796856891342342780916647893187319937203730621324870160832005904300486165005468649844958247910790107375964882495762264639416227305289787073001196592335952834254934880853082547057516947424824664467154398064677426439958207564136482117739154791671239756331899843057884695994488859030566980877969573389258891100496964501211994186432558027009666534994884806895768766170924346537432913152438481613957580287934293360796119039662682069411046427967951079689329291068139347302642554535671817699237242785922168656424054641829601893970777307907152168790002281046212937933922702007986317857089844893296702097718081587492344179757928063711553918896787115585596957895163071539901784128125416091521923976781086961603602898252742806917749371561971149570501170837089601325480325029888566290622516641722528991046557929915343369456125592812904680827677891225834215118036616408722273556652920849121832028099921393770084023415864242668781952013155514783336120647587872690027252915825786986098299584366290125280733196094636113037640258532654470026536223971871798294590475993915299855438491101297826823189788655239763612306391326260965402930635793990052435989831209560689933918073833412236547400618155765851521585051997580646422769613765804997022450378127397282894211507753009680744671667339540545352127650283591123096047520739358267225678656246327851034499207347400101745206573854169480677811925074727661898030346871255029991831783789158092441465707333247970131511359646260624334231559435692384073106279299737435629634089348501547607144564172367520765579574867060291123197526713564965020177432415537096070115604657139086749273465372547472420637938692690161724349902113091933952168244613455454905958737519819520795287324452115594069977939139524599680449012689926474106517783493468850641007321146932774200977715836870899499326586174794971176175251055386214941040622885547504218240905750099591702562886933741475163192968526027083274284027716235993947539984419273784726744930037780129031081945770261734449262095990405710143358162171367686493707527097490405685257119842288010867810120468296394430694120260530642867374378913612951617362417554158557950290759820904534769197603162521975498755984420985030580476729575123555244089348469107844330131540738085795566798837195479204943770189968099182575146292528455683788545270376115967396492583540329038511940093783012758877184587223837966545687617265388444096626884172988176511344610605810449518545267278795454141476524628163488641668486960127503445684537490755337606703058004296021903042270201525023551381527459834693403463581401959977978946857919530746863160194135429811448912130113989512235684520946327070643627528800838265445828082512838866852118112529036577237438827521441692940979664863327504577702708614000640667452722202922657585296062529162177906334980831423405148768186772623039618725286239332488788727445632230640083476592492738628853842388468038140440894613405586791127757246962318001541334943510701554319933390935691217378105082057882967733832706687341500482135724101076436456216247290527591767212260098731512530028269294226501445846991851680252837117587395447197805953937034122458230294651776729990910819684998786454121191455732835917891237028159490646408543552319746231698510280842533756651174560602888173505721088836219211164634689653755847123051037693662851993502123626854750225338742736578872684274863566269242490902082838373729175115500652376895001817214579887283537270485434903118793686694393993450044444395271119931353923672115480100495161159067197533445250185918428394432711712419753580036248684719289069321266830469345338326286748855694093059416066812039245847036695711395991825718183976299649856239122331659891222299630240961669998131676719774847849230066109864177819995976273159100276443925888549181044094400770406350335573357772946690224056791329518757742054045292034500448565866641417587236061432427570251322861395755849985985847509194317598057544417232981992286519193477382853787751744694477198390759788660081029550277063762729477350681965560073975135638200641519052449792865916348633737064694453169429764130267317817987512862984573376358379723770670331488589655342034581976298261233404622781388041954492455875104574339546424249877774762830961514981765596609806161084885769849224488425698156512644290102371299785259740999662420904074222765071881682215433087421869628692849191641125357713027345730603980964842262014109124375200876389221086150694928307407675071546878572470118610129770905170489316236084531388100921153202978841387566956304416638219327731197220370023415780571458231125106427780735537896147547247651503921321864882475752561160900842925796664932820180998483252717771213028319084692243027018669984827757958158278530380390598876304202470558091700241116785052522291366501517058852263124803282033721476799843456200322756795390431282753381011092271160969881210201424383791479983407718528994554877020272799667576682735505970964720037062560155292781193589922578863278735921600653003577841127794530353128249981005149443377612868431132198795064305711973963206780917116074036149297895059258786371942711629290640156583408147927258273002803238236588871062102352889536921220696612272302641367077612608671874153094602835712058733641018339072847183082548689683391647818753616296191988459056852698824619803201297631950642652325839152385218409231715660777049324193950704754694893021690484354961693324641822341156591042539599833916067497804827070270026664345676549796267848730108320168638587704546176125079722859640858770841605077527810045180986908001370734350378654273065345288601794637621004711576777941890510428430106087567374590917538577215605613245619833311484347909177508715996684394966210433010451473975482167124942158888184593121207933566287407612481539757651360585564836121658805015928485421128051536919849562739827853803535391495441930419356674764562590300881962169151771563608298990288595280054968424937072540028423306204153699541122892691280589585455879428856297794792770077513663517349213032282454190992511664792228709237551371971743855586573761643790482343667723792346724140450011045465998184073708758177979134723375262838403726674482956814296145591334990648240489309094393802984226633682824828539862041271210123739862314101178574258213940136179620000297112878354183444196436692246523956732101113941094888605595891394706904035212349894103855100945611268898892266490526826658263691723182480838232768121329114668421626170984629414134228398198231045287265052326868574122352500532950581382395514050821231668332681445326248045051762607795278237454462319933685276490428681934492879963429034156320993348060821425619417190528458115595263869996459100572364290834273883662738857941769617875693735057983018016816607340634213495274743326570787808010187168052146347446518222881836517203801711258079738794189975689291535163643585899052879277459298021150704084036713901879878504370931666960873696278727269879936434350106320187369670094805700475443886952939391081760804601714953569649752267912855302023296057650737129329895225552083914436566272967547208030503192166770234104967245292813935336751240206842748817220203097906800268967438149866477466923039768724188468507001979283818887261077005035900676264878838429637808829887107020859611854016664086504015463318093404972257631326301344375352924057484413059164562544341567696710248376674560764853185290576250228542822918845053504724987106462609117122661591252228315804833857103748148258363919327995468494834496885521464375728599071436485648542079927735419145168558768653266572070418486328081154986080143488792370080690993809474048293099729538079163631592851045114718107417589958551158842285270353372541609781419510828496421547787260043660126014697642247116139257675813140199483788368842908717989687224548728618250976149391587256295805995425768483703233276660602007255924135940243477719838169960360208916411932271652221086693762893960987685009294866681840871364451759540399328810267837632275754540335282295236746767334428722456513833387730079260956807210412720271522993936729392728979377483792661163492704820658524925501555840210726660114594049079814996028277768724776997293012093206368307556489170680611347403955355601117943610772183538398535495870254225505951348958825370063893410410735866572284928413699537980079485337596952610368283936240779634207001700384926808311031460861687452077334371786803151110518667267768392780332598601142766657157169872626360896986967824561864450548304165937265938589912116335364982202751662276391015792035747546784279733849736877395944537538389354584672735905367025865350238801152170311802885051134611057490869926021495913895835649443089769333134505157666563991908257229496444337572424006958580210871776358277996477443362148612787462077268707468800097827353594372935072788103138002216967052988225935432264574000225199997783319059534705571735672767072496789838040921038309802528351016169178808461333661708149538550850401076879965919407561566107900693348613001923649398840344931215536009327801540758147726386843990831689060427908323918263210457425991103420407989057948292503687470781766383057630854028429786483452484782334430828495317661082445743492827433527590050983183143214816034102405059857268175009056652711227393582934072535478767003136946050698111234990655437571527997453904130966224076068924000091542293445655678722374893121011922878808735723628852979390552993018811708736851028872739691998463870854081610674195161170685410864609883619916251617458345365887544164303495784026597517014124348379749848662723098457969892408474713802501035777992267891135309505469753416161978213638701287218914406790693215720126422097206411056503128732936236082554362016177201255897363313458245126543239127746866420521946740563742695206072310164536816268211297100440096765144272369892782459445954989791638492510943704315316494474509071668605320005112232039772299541675369755926448603260814731445593527445524487016646187003918062961900071840863382011314463521294269082368090296146422078538612952090993917666627045109162542820255043274965991132660660201042315485817605953562118016547347123835908321098792923542093391480438191769168799775725666277145830801952238189724871534005036061473096457780286532284769316372987755536500988991291244238568731613235956103241558566545514783614714783220238798047089616099441838486158030124693330122835679964260291870759211025878358682070998428104836029189383142260422833671931090465791063567003447653078444007499108533532932626910586386812137254516586380620950519516109902471269179275737893843255518666476249729121816756671275332122874606518672918777208388239281830553630564754463804289957820467382107623933496502647013952817164961115769065081288619791527944180679939455770024484929600567866470776077555811162111465573625168712006501923503171196168925835182909399390686064263769013244462355505958875382855395691067083076968017599414229470055820919042090146477270113783863793165602012712185269897255715080970745013382406734369584285532340392638462258073404613679320571911825161791345043439662155921042486096065996965155450525058403365343466818474731904706308062499231957652026912292876686961262579161849922832999118482171392809323844368744388454164226932348346454077462651782228700042593712450964590759337517538743222119841549844229937988730336916987585078012150544909579192668654497748264454778314469884508629022601687155960111920686053522917446701203933811615639597822393168097189260145189216031818714476452358995729645091545527592472067778085132140007561469364143226706688751619385076369271863464551182639962019967050000198652098646502653029534579662547371211625011371820247036749841888970832153389551701738824772515286297240330416042984504076767799494916124587401042332056092620161904516391542819597137663541994342871401987843920175557553995866130709710950306618810205684476653314271997815297729033745177539889878864294818532189117366627397454380962829767016221321652538509854036498702345830828886314672515574208067808240504180191738942980057903782827666041800630831169323380024165334933738831842981678046449977477514181492369811108616890242820930356956048117814805494922275441880665424257696135578794335093121456899623578334116839159903125962252249188388577667458501978659114177914161822059627664589435753902093805073652386408415385321451417484803952579164667970583996272920231032757819440772885335863229569755293447269053224872707576700722738501955997262288145073668025326651276487417290060058563034205050007230059732472963650476690354646005489351770560220180085854868877635576698994499000393997824094207649177507866455560302461690201620186260724580229553094173513598567667702068527553603821738502689074048201095561262704115457218745976781106099904830160882075929109883028665763794447963336596349678506236280015900399091138302025907915868000303886170997688456600467803807980003840956175328000529148945434512915326714620732360092533779532676900005561247692986131418269197993740101678512970924418201729034133671355443117759086573531895158434166254898938954514907675282823195912222416893213986155363231384472360869142780159726887297214806069364785311595088414864974604257860878104648818345481665678953342760971585692114178358804335154295707087600464835529989468727202802820103330718976925989974832068099556312151319328318134407119264262687022355602407500461170001176912044736627471074310242108024785606739673245393370407024677765544536166295989343130594325868020401520518062833190260956276821805167498343434584934998964277565628019725606419400594380247050527479380149298143890754117805566381646066286127317026539116961538322269922923498753266710585186087360856862426277212486455230737160913006011747762510146288350231030795829264101751501373910502630124957913722502172415198333551983245937733832823646210023378916987783316436459279411162318521229750253600425165782929654235891126789319717348970251806450169245239196572298731573504889386507723867631837657559005563955174324597283213277011364514264558166521721132614725757211818465490199952330348533382383397360024111993576828348900206904042851463948882023117938724012256201513308598471815413341491647373258925586513398659287751679244081592267282861727880462682780059547556760286914872773984154783896618950714230006196638487350210232115927992772303585379920006788427704419567444856033842516335257345589426013670837158886557044714413485351991199393409724245160427106427528775032912155732080519939869968206406904674186005633887539489364452154694812034445668536915806091964948180835003412358495523537050527460286753947524133240509708582685800616006410548384314530560645351371262560530788827372280818331778156561945530007586740805280290027698090761998013789798584878033238213546921232597536835054642232668425442879454418010465863691910097560833825443285636042648735772758939963703320723968319412426194259275913192994897558561023666559984267887928165189895408701217724760667514284484528057201155767977919896522846037971422006638623785624441986748847659327783516934830238128249469407691171399342184023454858528429016258371434553964096818550344080555945459169608887751453853489062882216004008957449607170103094199658251122250972532596880090536390591040321449003490076900117693615336498500699668537394691965298653350553325160867584099714482465666136038682629831913610260551833237811801269554201637309279164065576568059814734701276597122517167860238359066915425644548067819401029503620856957242017140599556605777823077784186517129635883049778602992850396775763730623984805379457707659282931236242629300258947526375346880031799721163083816261272898604370357745358753138778841329127315619181110285790739860010912765083917724056293093438731141050109755187855133887781685276541094535724222345444973442161449090359298217231346561203600584313318681638209789390085280937030435121859059566152078917288939371267290165691934822628538008659457020504141335152387032950726645170796576594390483888177401645361470078079562583675062919518380163134838607749546476747967501952127656110731324980310234055817670362756613013963080476629930458415815621929902023607225722498571701324028271645036906400734002378579930397272347074305358240363803963706036785231156629877320982370874556508432734847404784971844210126901465694552661586250704573667631681402606822062152292650954353231993144779610505051972001497941540189542914204546260677106964610103293520241026950066070021916587072098526897775225213981278517783041301755594367134611068497168742087705783279845749681211227598023055310802635276690976326678558418174186323646814757011886933130558651535020105110859458591234372348944776247820191220544196895242792609993524460677349585122905791394690290642009376094087934618821839497187980001560448604128481691273920996301208964697513946749620726498240262919564552158934767399534566630822558277176127141993837319519302213059535897614231686365108076613252500505785565946900254113949651426277588267646346630558558164270378284262295953650650064256472413254178643861376866524095930189486094231766876434981884590576796430962056149606413179370264217811072617286148622702432713296775452884304597791306838057776576465144171040118414998888670326125323108452504809297005902681854940046009804863615493555788946453590869092471917241922689304721550287944221103668997701623986557916085101711167481540593997286052324314871619753296859502093108246373640623605065504243589845940958144995367254679805799391989374666610007642780367327269082871955987247495612228494205365244880725717163362751187118869825201314706867136488895032121055565181865562113231634466279973857317260306938059857921893506372179398995840981579862659009718173649186644426748909506331613903902440628936017302301507965609836104820489279114085636928719709889729527998362605584789018384088983935930256071841818468762025062824324095624678233505028418393646134647842133393440367084375850100882678512429407009248839070426284021958800331845585555411653459155556209786719145468095751894932757132728444173850329074711509753758748670300208930982119494943908566023248921613262068717117253357317607270836817803408713133053478779483335582378957494868272445921693531548093542036153736278181211159380577310144588066607992908774133648231231066606529752743633384073454711514434435285411679296125074337063275600358504232361737280351846193872311358639000404783056408209637480671405558885515342108889774122154621675116057284302810082182044125242537507494872961347108100683328756043596822573588697552093345479188127447920665144887991831780267565777169964710890764834053091316280511655068428666584225604553726612849116250330068790627562472137495224176610325859704918459190654120028459007314381952365697002154034153818851359911300968166418145915951337291177596869057297640355685032865743975901101309347796791965628229759940195933908157500314189994307229984676184019615313607710116196628442399933881558532902677982308901778852181532805253486482222052800845920995999611976417458898295290002880992017316720675258443681456121795883996031446420499351834207421244304772343115780090771038768728233802386825093521965595961736918351003867207124436675570722617138022611705018905536880843261495725994847458252103539224592696453376140066054326222637640318925435408543035614796863406717519977404717361743488414511584140364307141370507522513613841690052023486876842747396581563804931148629878251867150291333983484900684240426002051348074986262721165967438248861340261932004309925994159044259124879530046836976247636035406795882796076500651562395643404386758664220737335509837577942334293149562486293278451549642603794442416142356857115645328441921025371660492460689095662008294365235116190185871829217070326847192158958864507869767011718471087323093630236683990160438536851469107700094908565046066189005392832087103160688011354708849400238552357016066160779818058323679138011760076231987878935248729141526205345385335484163700219972251501472663558079561972592641287467602545502554471030889581720213262892755884057445732771548021402021346731593995997569706376239329454719437036568773863125909510364027267756869525047547011384585960761105417378387889923795668644215386149334333445679079084745071239713182031067498377906607826862066097149680517492394010739724304934682980697364972219014158580589764927900972713797501403097691352931659955639603595175531003943616917057956777616390710043093983736289227404635854573985520217179230003104141608019822716930520436958263979895095649128728156733452359673354205241412515915496758478673683272444627818535220843917096450973266959996677619817245511161068899560184036408062485811936297165332482362631002310378901908237440586924123354133388379085574418906834332803497001604776596627816217959965828301924436465726196747076267822877023617583403012953325392699971918184234876769898743496139875867773441190232436038960164324780989517373020668307307999681447969025767093967159617216611712312158909264642998554056996511209820300009316165420359529824803733146104914225478331403411521802176721390331827475217866593597004254304717871977763702420844388001989857252689378148590482012005190000435927667960074194595266811283678983835873779208765647397746409276228304043898773183147238933590955742877481104795351628443407735267204349260247883108100877391308660618190498776622535340743803105071423031618078316079549995651538298150085438419638454396444653075234127630156625914924976415299463597995199440796026700323096416368840870297014337448772402574772209142845931137646307270284321020429954921719095856304213423154861130926805223278088129476010319200431764788606762071595939154609825591050804075383701019470221787779748461049259004478567114196707292972856057577520396263123232946089664212364189520222817773650487139384166863508783447497195693795509315740922165339357710932505321278385900892521743545894063841421504704418978889023213486085098401324929669685412438487411859631591339646397822087208117866357046559191414716675504213284257414089715168602827984041425156397758925769049816442793164032072321250440562196973798110547448252374353819561593452871599876624497209141014270490087319750723578797909372110602728465215698410713323056666537997838552941916661041716650433581422206799611677028771931181731942509277608887178500145607220517594940166379242560354078931945962838233373708215484564962760925652159483440457744877148061576720628324672793238820943355416054856709476133814976498734209575117075753474542463995045873798551919813693437877164384588838446009744244729810683679818553230749495166604310241700829731482258223412917548712056360401820598000296696075532443066655885674953037729840310660474726944473749599451904007597066225422703760921998335983980967428195755425840057806168357559389265475538535577706897752682429781066580599640886053342305224253179708874737471410625107225634403431325261376208943108742282924423067194512994355474672387546715198375600337720282372907291572849319303712879449744714881027546474194383961872602259374136417139523028790774067852011618932969285762418696796680420845849876612654004431373794330744266703028985451428811743860575405301342862706741395240808380628717396034012936280615996680578615101589118660001912307992733014024178108156049269571909241370377679754532357970259277819879498806771112088255689583261160162045957632478498241686775633038312864815086946269004710630626534741479683392729423066530789052130244328134845920399702740106648224879115134135697574059801120391272889131378921858203947615202034845683841689102655949998644225669233136760268002658677658774108251295282280372211782646409210132059037043099174000616035109773618179533463661660157076068006163483624841783875300756548611398547504658339606308278600818656131502223047916559619531296605243791294651815736061085293334145118553908687631281082859573382073253741300132863932469582617656572785014189773862302190927705000918196119530734404253168805250156196310456257037649609607513774623344966481758215085457812398502295679202298231716946559585663834253902525751085999331358543662529966153770813627658764556542713013651477977569577534998810896881423434274119601929290407155656988652524676298673101867257932601528260970146276299077510928080113671128318783159465776328732379938105853615368353055155434590607599500078281871513291896050152409746112283005947718854431964092971728615981820979758210620111137142247819020148012104826924283212675573119589802131352115954046469884572270490404349777626439486007030536116464845201553986572210333581936070190203679927363630459365807299544759857341797407959101444633753112841874527858903631261354265328227835269531546678871626513290893391523736685702098212586113477905967383514941867153464577499039570144540759179098964594643003498111681319031289653669531955017847479660873978735959321057247508789862450293049525278034072682849866007678046569827845974906907866421969456355964458656950849330084846810364855716521769622359404192777348827708696853699382697039347398215045580948181957253171212580031441180562054578864230584783692040021884192990134754304156745935435507047588607393074779444558352559202723563459121103358492492973100614659059629092357830472834911181999776668394867631938017937866579214060401546735095640210327816962777651385809786351691419166476725112771665338229400933218356844409201305114959513090280512951286793501301923845613810324532417511386612146553745152807557796338259864004273824313954258800293576203484370505531069020559273757762741545946919269839606234135667813940048657981199130019512700997520303399341157993673223760030360071261137845996195504301441786428067806995780445307526214086838261249124172743115426961944355136343579422454315491711355943333597067351018441651727319368734686329499250130918429680488152556899493777666779393480341472866571875506713321745286424642431284725959939763788143574024507115142880646294414775552773651405188293899980186107276060393350401270551221302492283814156145571354794064451844048962342454733506269142916174918544789561681231898058646964874568019527104792374431652309896413819887432705227316934970158791501067204983000747600467607811266384395601791721872470585818623212474840565815885431096208803510516691177457309869785663493465460107265394370182583747987345330655728224240818924501915011324149374598395586088249708785489115948733630441590584328247921943223462145562191595779876367187742016076181326354813496610324368967540065146450391597004369928365407580872891356803017014607290087096431876572492776984771348229909121085276349097396002263451360474843714937266746379163973725047465790528281641066302499940694255943184254312431684091954756088181878754190027738681503851149917220091830883539708709160526861722042513172942968957157218094184308423480188285964480538740906377182899551105833000622475975989479197722581003788049859242721360837279806937852637202003788121208172950786948124827283567870234951387841781795781153466807608546778014541278837694527499185411777150279066591717122481128438754770405431208957738333043642192608923617468818809432910507966765338593370755424591638130244833712520626629248859756048073543325735567081967378713622326548986741827052325135253157815021803853207926940453264009692404406736595402753171569753737084905009530911788378814939516549994451411725443765195652458935753865085155076425700685198949540606322630358936058070770871373072688798737362890410556679630240459509708009744694614977368473212616352338370141281152702881307264776937838003701335159809578984937708479339771263352690785134249848002207628400506836186445091714293532667405013940062253979551776906482865252731175684936218542640965619514385109986139333843564373259527311296058268100339122137182935587971757152302276598430487778522688478961386408274202139439240969749847035468417973556962819366878549618885686540225046057516612145578626997644289241791131152757549080216912931124731520357647218700093996400338391458140509071403004587793338748617874324750600527538063231289550670537640068415102131898756903480841986659898149634299767667860779885782767770151656807001122212674529363251352165550309425645403815057598458987802858060990285814542684865447401996622907231202906102752137332124647140535605660875897338718761572658981792770707868275751187244761109021070599139592696311080857208237427113931965732808672557868586454904376431683772462817903553438888714126644389059608408749821702569978270826056649453580290647595795732339781365161316920809689560247952996756654394541032659656784065953929367688294851217269705472796211145916228661124776336845222479147191320389463905614207802886977560824763817480274559048801858831382759371164107748237473490674190389067881420280641190650426098600197219435434218236413194104373826680960801991058625050541993587015155440995914713372554269490063615193793228612604558868359152442218034033872122515439110219309415791664412253673922824476911532255032784750080859046491343162142846675567669362042327935307004912925874463011013111803301597953723635380150020569484801197078643035477146243727706022240526315938418342554012849262521452673467333152456395167504031603509227397086590329247429464537305967564383966116074952744106161400936198927977413813955567941367205073739041619763768444070360812715246736121086512398944885339703853176051733719948191269795122587746795509052134186958135446705778770521539056568632315175964589704233040427386374904043254638555000172072474931293361792926697109777097775950964631813364372124265078454033690454291877528910272172917551212469240463865197750396016439033386583741494506290365271062894982475098913774642385247569683678586200141941031908185370805086576793321866713589350411297827171187855492564531983062467754926186680612049594502953194571319754552701684014953550100189515241363727321940737843509466040729096832372132905524824435952727058226783663973584477855569637700918243238710549237724616637173817825294000032413374469554294148155490715807599290476861220640591344416035655366385356271308141302896841087035835790783791019977362880116924348306771452850058183055139062893917093814092264145516578908130438465086243147665809981001258093346362300591871682118924981421941261686763610771590831507105834552516122128923515071031981198326628503703970735807207053706351801114970800653907028746917412655553474920501372711500331629283408088950434507371457408422662330027906092344146393217004078349145141482224497199321962536451992209743037602197662937156335790373583230456362035369906883153936487043271426642599448472575098307934723668981656080741745494025688917597449377739454625851974640611927426316595079980145435811868569967908610781515076231263198962064031689899798504236921427892529496439115276149473396254166201365403417374456719453431065804598465821297225634446572283527816730389501843863615512368414914171838996628290773245094921692591433841841052211175239033138782707208489213783409221656441552023279228887694052984270183820103208158462315116235860436157571662864111462945695479072900321288571232033039214111357780643301963927539258384419316693013068197934806411440600949535636677876538557021056388061737376506428269218358184501615534284660125869776417233406425027106031336032541915891325279105583496432677342734998469112603908750541153745245241590459139954914477550520790032751256526274184049990394501111249432315104291493112705863472232046033724026767183932102901962027614677578851159695839747613430801893914534728755907163083960784310074308282337295382113085041858888393129580807050668114731556354179089608386919519681976504099544011288932679868138284680882701505753779812047253732614401210923555003253327884875789159626818464774641479699932651572656389178455297020463563779797721206504097393018014619047695930560131008297839278507922870950559617618894586404529313683161770042051757839802400473198870520999492127227842195427934317280574093856063983679878609322586775571254893847230744649664141716245280075574242576150238268857130722770617212372660869534977869340360862163106312471385602562653459492433252856329735403195834349120236187362342260528617245654148553217360418314051278208182762906493903985692981272168968727670933452487399374968011274347530972394098372335046966869977946141320944775505033601963344535841818148546094548053965353164389493828672045392523259180038221442130120829573141398552924425580487901830992188632961566126528684522179666729525099709055266851186470995287649078857294287547763548430758704889032428843563134977078694124055960378376440329769798286837415079142244102068141375265095079726536127516339008030320997266143192101990346113917401485120773732809070715924542452121671981158901048792282315396700543317514417386785259584517190443265126790197167045196764302717059265250448149122642343498904596957914746138886864926875428710129239247454935194453114110438914573428084910745694478783441041575091575931515491086972030952578718177639338524540238960134907736654510252484855904803419611950563950678471220708953826074110221666578511156273841627125476061101049435976722798797852365035309676532614580393367525419945187815022671719551507791719345313364881337850750499233616798604842983364990815936260800185675691876535712293675234381157406665430946961023452791797098665381733168763543566269976540611983844722155496000409353232667028632896519679906332021815137940947095906766200420161084077922582508852636739393264763270701566469815550115300649851833244800314722914912155460664074739684944343093307597989477407356808642020991339577308953761354654858540642535736878960525050396574734153997498603562939848091850907164567950770355781699301990955854485217735627502276879022518482409473214647938108340513032309842378695120860460715470372307021519790353115107934799298700152100763001024709723892056882948197577160317183332968427513129690077733081020541968923605516807620391950229145240396904744302791274215365200740477289223989409852680469176195291765176550482330195343451112754728068326052355133507980793301945038722544537955830599093081573085542071796736804544247460827642779214775730143594104761097650499661316187327136391161420980894550096797762088735506611299626211189577270028007712154676040638239616168079532222002701397040541041112919020064697317668966633160821939099005480504241604383091771586679464440326718253642840033442468138608560288353132760132514505858373634487099931183064848580651769949870979862951208127491369428995979331390705742412888538098620362032099508626875378937445180094729316987451659552227054766799249687058192880408428640885585607383263839917826484747632739673317633881385684549450188653481086264320485548986863940445462792841220033463236921451884920040235875575451649844482370945208122257238465020748071576112300743902313019900481624373537379252780471613467282155607856834608775904653326747736379727894161894941819139489147356170389376483424314716229159668334831294992027827857918296370775506380468812409759818018360019192098186288668651271216701027070496321151784319226020356462322596631449463562881088202633240718809139750076432362288361122003465123423081267565331310083091730934682256032055296427668700688423195199590931943025121085826019686736350018763851954608422518153321682703456696163472871880258438327828376502490859921686766692202322045983285706396078477240977198890705154803576377885211822240019875894304775513773895463112826128828601500061902259542629056063625200645173321607919788730163177547922732505485492088194482693297452564565525593214356391672040912479095359797235896922199817518581027569210404318300298804303237237513640642257089512587430098049681482199809653915324226228037954616728750628088780520253626005899923990670096940845911194086551657994874109133670080500166979448165679821211617775600859761963441239840805281424765214784097345877984521910194461403563375882731725299892978447986826692836752054975460051908224070839330894726466470661901916015361250454369186610779236016239334178044286760845467543722606801266192796832036633336912551161082568064901177796794478459626554291233183093691111320068626441141982785912110462262233501873080442787795770132817765668799236264716829235290983686511328901000793244931747301211669629589025503655431766407231393736691859518215885231909753411886720765716031750603750130862827026928372445511055316433180225523083925443557347156737241125007549371526108113533336611306829271268059854985267236180712178165852014498049516593335751855182395142218193709866388537901141622687127954443098898928730595018526721186106726014996052381080364807736104281584704957588382341264009231387002609645903167919097554157169556592161632232009526249255237710982009658927719748973985686721903696720323454141386481108668358284250633921079382446954244705394215732748013897101413139264278959398040973271445412962107734258473989222397745338231490950101580201170655822158860638712810363216619159835397300120156290075902362464259157867183169362559998175816274032166629482956847299179622165859567399700252331785216660975691454014556998622616376441410700711203367420775582045723161914574576136271447807751509274757789168487176305501212423571559238217707769813886374785026093259630428691929197250098196419154529839780012046016865459322707194635769594833390536772907526772885697325870062930482042780183644305102977479961277712618553543300168782406148428559064066800087671014351586723392629442806587053748042272837904481355360953554259802817348294115172655189235367591815151367192596614934463383786536284709437161159874908100839324257729246728430193159288216019645944335784228597178941490649787273111501304214846214193646633086139274305203210771005024916599117174140652790729433281971193681813764804587284879048416839248045623624256335863293039920939453519474963852077604841988409167963290717639784358472298036735223232006425652482778061464490237353938828205076252457637419906213484857681028272626134072152258097317202075051164097548433903126485825468296258554110158952063586849626291298513455836561801454793408291616615493493779728103349496556902894472588964519780405188993539403463553654228044284087656945534613716984059660527205678018824743723106280625277865297695688825275486523219642319586914947686231971871650555953083673127250114855042364269862433753400050018493750730420609929069983578333595466809016530238560129637249774745282682064953047716559512317785998352541951539235575936285914913919888007272821317331727233984570768678391293786600859484247655044302758177916193784411955229641610260833750001211337570418187244369349823142658976380694802745305528124228413601133926142943504054345885448388211373796535986614263904601884247278667154048673656619918194758168554343745783328253942441997154460335620676947582501500710998274791218385469851684284136491389987582712209992505224233226533331557390732791685232315367278415389537417072646476800193364558950769422758563724088764170931883305804523455428265430441658019957504560667993602954738405002356248180800393241308436473837704846944853567121128227549624913085215860145980993358042958620754901210946139175884134555917907677063069936896102593935659440895716597343213242617593907772367585244106488392687379885502641435399552439013172035842375449073593230575937347701794968326550718393929386755202474641704783123492904711053312327608089551854169916916176734661591609219608276581313647838115000104518989521149052067036373605392906644274610278723419822491629923804023048648103660513094846013677637924631052821730669943225518231436664908058507172590979684315809481888356544288774985173265279541136623674938293996955977672578914611780813873791908067597252635899272671268997450817955906967212625244570589296848215393426571693160578612300508837695908468773622164747078012196692525756478473533193255775806365739804139782116089804820493112984974962960077252985512449431571534980246540787057007866082189633972824199576349584307570589349607904206658917309543320959102860937624482654631052029879970235223653572053545334701042173788986135382114012205953061431141689956362799320227266846818252466015905932241553781660854171743171522260343485145016982801509330089358128735519477053971124210045963751293620971156743343751023715437116728664430896079499574647354792257077252936640908021997270624732863720512740568520197866331183262195404306623439259017472737572061372480041348413899971479295119505802304793159143054599231533341154356824160639810695829829973486683307387792282709764418933896994069638798579118226389246279313698884764493465059860007060531482312817282931896282496220700696808120087848459614123409811733592500179558675274044146950204447791438733543997942885304871088327757480233269841525299007628037213137363076629949474509640062523294075515841219899182326219101939616034565077134444773748993689423373384159298386234793574192980663536158618167441096397751606515837931342045189544636668579799665663416166486831898052751286050605241312376920463976577249493391420276409651764727379537102313136460119774983406742408632950177423687929193310582945315922166447138695614408648933555060131088234219985584486190201336469045857883656273582744417702739260739411006566049134899211867703255015772328648011056824556941388654635047446883165074274435232809809827756175251750329630830810458054831911962261930545233214815898689209995571696811757312572541508894727868234807718728587757265200906603536512548340255788971969501439139152773163810375669159197755645528962457861801756380461681991368208879872272239331143619569841443518899088281012586308179832678532329916593597921053957229472516211223104399125356723745386670831994255182963044664831204947765312902398970118880584588021573029111168151483946581246979280649245073102491382032718731547882988367361284671146958704350691134527895531833530436987403377399546429863882444041556731082403072509699058242065270314903368123943173592923097111693417187271814390603707103811676968626455184428785249536962068539511628614726819862782721401263389509623003817618686836772675107284646718643585811831524986130847076525077236319661160391157940259085089187536279358822485153038997496867789569536332946176335557172513743476377718024965639497329354885535074791923787679841746041611121096156225624760559681623183569781126257576112183723805630715865913522908823037189788329041212276029228545626115034223387877160250461704941172462608272831475187053256013266095291061466111950033721470411492848080344506648815581662301015356243237121652661783801560329132345301313684494493582872668664056700396084888677106781927064829353986314987505867628933645128617810873125259485515373615521314754230400772059641713005177459197788277647861598659132585093044688485288108081115600118468635718949958581005343102411838190826431083253672256879860630940017238671128982071400921428885236880274096952400425444841323005453639847884235383847106608458779056476144883696340814604262402355875417520385614430270597361609570899362822148141192219590974600528248359540606498737045887457504613844085983599700165240120489555812763797785408051259022886131496207126577905056526655990345681589225821160469939038386325637299636272011350158443676998619569742358732271947448757895063389257233561416041892945197890419073978360445330323868958305921768436002591563301826417866886721546625104410512940948047864313098757933181578585984143729651605684075035127062643634990880213168488690250757758583821856599593109782830289419280043286297601615038711457560652354098198729659674092869464162732210566665423122427530150229716764965254726999364974571776468109621298142499353948863436074810937299751406411990827477027598931880720113165369797634616369142723017726177690127903004190056179837444534785137038612932852248768447589759413607299279767878578210259567473037499605892689372422346952277061052738636423592485166956465342945736706995187403170927109261832163714736532154965798325910294682854907273537817584715611265908230750253146387760042513876737557632536968560526159303609085094626093240686130506255596847954065602610812107542748367408222597196537885164666702699069828881384432106121967630351031382987909619447692231460893426436630535771943737980618030641122402491607725387709820320958587286633015732261554130949394655430417786688105456409505046423565175243401163688028678514951654069768668049195025032230309631934493198538231458834532741898422866232963743591975447090109815908522063088241353624726727397565014714543169646243748696361446991927592704163552055627674248078827899592168859606941572129515312852100558618789776658471102159507904499007390658207567820812299266489942939989802095386076687272923182205997462549513490823713884603742399265217334464632319040745539713417627750415456571924415032850532441012156833331390457667535712435645813890119799037574358219787857204779013836754450008907182751997263623739253077155054453476363926316609697035703518944944483315392042588814275330835248706366139615155175956202987275650594312952785752648617751764251059292424046545885271921205547434496005931629277139467374587272885348511688332537430756417921545442576019055745677563547414983868681727832517776786007358799408173284826755129874414525824552595478660616930089465529131189829804894680873269124676418021503330420404814259104060517865425010815849525922364294117784053972868417301587466625164458879457888349301549875972264246114864485883689819842646731956480993408980696161048639014342883172743018092783785790430443230252750789955667344803113357779049908190491901487430273111139634403547036957746775357559689666510446942121253931441825015132060779658945534766983834837146340661152409141087802148703630410337923785379740718037402326806577532997287491228325997872832390331717653106065024803685280916374051870559936074985843679231700138659169999404931293997958797267865703260426522693427719517529463812077431207196621485264704626847754357612076634425930784380153932731957852160746089679319651951719780071434465802146024108498781824991120546471605230355563663329790509470903308636993587935134034236586956562583954668166955553867849287249998466823997182718129103092298588013544536230159411521214990220868961366016497083720488985590029303845232722920511211178779504312370179958011772269409104361526509218156108291586514360566787443631628066187164398201650482672806975169611721436288990904228330526566329619452705132491719883822609209610005674950829749485967550954084084747817236707076764189524557640962021159352751450557750553748218783073954011120090572173406230848146335721640674346841553800684521490332729576132159081485996537396023328542569604262726072528560302420854542815127660920097337697451112123292739763964507721960356954801447653966024327572751992943507916917602807099351021631223161979080850807025914243247205524267538489385178400262670473842700241109211323704423987723348800368553728950811238633408834490377425595412051617573394874117571367801277732656357333543792468616656713301253859075243421769436152438298846866587037943043961577351786072688502258873805453890232353243448025897981591178212560279318537924876085359515205501200223246258643958515568508251776592962636877385139705321243110800171710111765771489386702618234790263535093634399094824551280538655521897486286312606755126179818778750269123905186591720558662872104342311516326043505755421685063700007787106521854439260019164726175327010611033957567465376859487366069344942853253414313233055512642281894369811085314488537460129237651973819745856590662872359291599313918558296266533215958361988994766394249243541176592082363924493453147446971440796924315416158270323855201022741776081327335439032405615938223564126879690050328469065538015938021907534756486943166115098486941284826984487417594281415242283788488147744859918634259261604477555632355529505253216433491325474208810526583060693812249666472041842890975181894090665675834424180867614055031187552733568065229084914104339961966125066938126285758581364841856745381521624211515375749394943215214749060342142711105968447369793746251535687747681340214224351821628110470509138643004644665523078347243799591936241085675653934165326563306649061593467360195061244672913560000291408833767302108872627733725306978240585082431584108967800079116707538348304939244412177029670693586018506914588219152250252433288443968993506858810174254777539402808026117587051615230922545689528765469548057625148224674617931300323005443540752412994241451651793173260306724903893596003047614749599579747092159340315857650589453593823087009227075403729363522079532617028005358098284399405794097948347045599225312622525544938948125998840942654470588931560113901076675073049898599209185358557932007510421175512903420144885278053671223962660062100613804108013091750424798183197327212141494596299518612215271110365253069634852220959169377819926215715379778623649574391574856412185385601782242602053524767364692785895370273088210599203538931710359300886950680916269818737170288482419410352165293868831062730003182965647102844928499319795043793201380086040798468249426377031230157574876324587053596225362208991783912935729721016361569423075045655856520753629072535944155399791638699482074298715732302823155275395834794369548533144016115086194494332028726258904510157638305746967319251815502561281674491518981947111327172723622427710386348266692967682435384741307180158640099008680235209132659510969856831413419503349729594277009565021115713909422602557636838546019326834427914735345884176292770413672150899131613249682026470014139499660920285597481991804619587799211877286390318591662843895622823160469802039782292943986321045642450042340746135289271249168095863266642772624211537351148029806863676664649195172732240415947730054662777790435611027276317039264807646294358913283990361583372811040460500646106095751125467912985224139398027798679664409950848443515481030006929912311840741712787275706831343876056270550787025902596808944198036064762359499395059294195275944031378659000346170521540952272698211491121524805171287265761058251495366755713698940853901285311893905612520742045752109542736813280687474018723280298162120602565766515120799497098434455852094715273872722881962112269572786772135605578220172799700763789424380742068387423910280933057379403446329658469518136422448344855612732791239879222148245005483238807648318375487793992376202175110201193285255639118351343505648291977637407595770476469289756262939124756362416517293329916866230714547226300042269596937901545877609190945312786532869641132015952014753953041746991370418694516270948144283254100015817122919721284145657777055875013470014479887615408338799046520005644580209768962352758494163506694745457686108765634527912514529471015552499094846526610794051775614425892570118056456279054440449100334842800713418944246843675032660263792808894573169015650602433290636392136565162811354283728490766517173554219790142954182954459665442774353525593019806294564186070272719954909138520293113733093684876410780617376902698141223624430146319707928963591377823967561633201680616706732712168658116324511527945067455919359856562055542767273245736774760334726427203623336878016408941838935035684905419012901515679483634643108658269836932908418770430008400461271665136794497728606990150159985984533316863069938052206263359349523462554525506782341499676590546757084144824054810161755257610303284592502168906899799662717214798366143843440449872024456381301134057798535904919532073104802942830090718225054729016955182300400101302305450161516693916764103893334855621482822880486634636009857173294837320412569250963224031552818539918954832215887602919492306059243796333044968925225334266731003161179488101733792176514914763467553150820656135474943702650706108593349171013456377010410120435332890395688619804681480407264972702286615350589641688835229650111135939219811572263910996587708760712189901507359916606046102761216793426722640087674370992394574909286519167174075639902281841200529962519711811106106983998168842258766067224256532774053954021213947618200380915870125949893090473498310009752633469679581562289093174175595605141178227659656949812866062758029897842727275139961178731967161653291977235475845730767900082139715273867220654047637205869055985264611823930038516026196300660098070235035878700288568587832320675422471115194389318274507540181287366574720127507852114848253806773654438316523928313263621162236244017752722857970199512543670706388698336326549754802903691749479026007032897985426639064977759099822086670136562575391063300828919479206975160506963625102420120146772494252695347747058500816403401480979484619668722718503411107536732747866259940318471331334912587456633808294236472421836076885359067643017225241043135223972956991628982436903512905894009771820502060305933826100737902968706192454836529990495294268376710105430942782398477308246282906949023410119848531953674082796953899349316606904241538136885446598986601532926014846134186895100259987803042295316141588115321308992317891905343496413122696961103416613638832660303165108439003014058431368693375710679217248587770767506217109106243254232287769968790035381143464678226147801124115971123793125197428665651644246568687783601000088820604421002671003392770517563799223711542698127342601902608273065753355750484930913884353527460557769025613689102746850051113632760211932815120289551109442101608230844173819172929718190013961634751583621841252977826874631779361161690999056919609226063107093370101332254565094216134480848497350025585114118695651910570740160372071740557423613681071399482614953362774461971858018556476778286067970479234017393015151895155598609478119881900155278943036127837251096420945405143655259489598419335682632609696760510500853378077069602241600520500053562520787198828855288981622790168844085655895089861457897752279128734310651306388178712775845555897290484119879961554763799382185958841092405221730838756236404916743691604422847465638295866677944612188288755259318572673806390882459633782252909072707464305670010914617266626832174387020133990695303376730058500089330343469086972615475174857663987731151556131956769514059370270066876284906684402523261465708059173414448866367448890781415755129519477977831947073955212706899048447992549585002368799467311564875059928943566142695733092448517499675589796384156082631896587571468560773264966693617309771207171055401319113371428337361559258453701018931184402874787254878671674228974380044381706332482528647847414511701695014947965862577188925635072673748283530295103678344941629691392756449457650819626480927852231061440905810413035049567166510174535157418791653982329368253588079451732922438048667677389695480785658575161397863646251850407364447973421781851475449665898587825650854391451339109698591193158172915368618185502100066789405497397993598261859903145351534980409844736575290520971501446285410574330874894043915974681955614464644075697001843803712216940727519649636198344803363460344687105463735356495820915010871620160751460579842252402661388723042568829253594442701444793167168008501369341804689089122724049240045757804557884308457657890692476840292292051281725955859506954642550700434552487162292846221432335129855336495314507136077085440369526399469710496876393789686293696391789686279932365799146823288387407050452303192335634743546102461502202455999458512134428965919530206486072470283717494062879524762130869969820680240289239951175048265873069756902009307306809522534968004190424989230161193453246895875543743426899399134904925632933596537516312437999996910620403612766186947029445499685538440727416221100561816535962670132668853588457631172141886153070956140862665155038665105926215464970979332332962570713415901694637679177707300664517550449073708656247543403490940260593105903486646243338859732441820219498752511242149872660273726914108883386744257893554323686512722418671669705244936828487907637735087500122235597945816333451323737352542867639209534138335607856197856376082180523363168028429979162666869274012195565585611978183712902818335607665049906959076122990475751898074793600522912499043213596060950831823080782716568371781227831033093068707961935138982651301822203813790878936520562914231882907152486742174749490195220553000448570656570371268021350365252884440104492330532667213638608579656200227957955322837486906796679407965273800844577489498828685857179378995639742049050940134333570328770082324220261831531679272122771876869508730410925734698113220769144019788044979671468151872228334328439900613389364248985442224851547106960723519020932261766490385198879648223793019178994643831558156818236714283325338100720961265529094686342321104120766460138293924416544849481867996681170915156270447129494944430462770220177769532801597050217791398554915435044172741070999852652890620892664310373746078459077162152873627670262910831864814289593540545590208707231986421837264416212379452276341414565359180259978293634562552109052716196999291172474244400678356555690811230017955676940445432470119194645534655666956274231231066680462187590754376287561725695864732134225223122024062794900978053074780874241064634242587011034694101514779166603405075697628924639618408904868514549378461356695108273918526342358683828223567165175273697291688997522295098964783740927143066453274268852835723376152177534637814014218945045928144026711711786480544392706094840959459845428390231237471963222089616194051153323694749145676795283034535217127537983952972562448127712441573928972249014062195890597979566641622628409268570384075489952267490375124001752260748662351698657650760320318658839605563593665491627134615406312215339501038793993344356608262251044808408076348869859305282379784385751779242740405471024934171011844167459866358443728099501670194575781945893704837637585157697525754865020386425655650206591510533023056022125623089130088994195200915991219597377002881719578160004372193724249357221749528714321151927619439339379312477052476386093804508640264950826259862421918936418477501436687123295215030765086269774156573854125378786161491072425140157122484917886751498053854660043714138336633521299296747214804896841992447600859183377986133865656235249620702122853009483955860652234922634567011339101418618823952411249073358408130540333299997780943483313042341917631712721571073874033777358958038158979859640622242990335328383445216189981576566537064681188802768504530012303513665838342991407299658719623617177812821214077807417323497720284351099236258182120355125738494411727532225504035033266939945068227675866544253160489097442386705663140174747401043379145949878830839576184447758195144002311442166659985535977829250007840094371138280027839960643406519705795361742937775494701548436848139743955301795130756459840517227209093794220342920488824510355184128821049833670891290932711303881540812019703848609866520362799993752524584143159622335567522416936741137384899813789572712645719913440127363715525362733125029931951432685625184363582291598566519004218041196758074336184488449155695290233880140474238352335376318543504116680878468201122756563187894865905141031726166456326465868315252665512822693658624129316094366418030352183284539758488010042980002629604542687600048263285705088980392986540512856058994101627601494085954237089949707021015072224430467825206774506231006244721653874523612838675717641980392631624988098438542872987025019676249007931132814785167275379573021815498207895707310455033376649205053650791180577652592145428942041587338454823940552908278984364117513354370574486101356538763654633498414037096327069174976772173947899305676080797974483296990286618079475395102952845718101643857696352372491324625976434176406239574059935754961559624496403146929474275539102227877185750636971313876648322257144307800556130776712754597562159378046156591769187599696780804200133956164132906833470726715563174960813439199896189969434607304108178307837742699335001061712651434909757684351498386836185247615982780988115612126903694620659377500745754893161948378981098688228904689736947920486718657966890393811947158517865048674546459361253320924233612156781075152176545362914232810657191129931409958596483982920590119411778630336053290044656924359827734320321950610129535385562609568526292682782296440891402274229050088278708552063693020236600035098905887724312468939058273697809702437119668378449711189915982074993358186624472529855598707146014081023690086192882956181065486713913060505400698104243018038982708690778041430944093065578385088351562443262961784856624369553555178688302884054451196659345909945729862601289157253569386869877168211507346174937887920151492989814423422082190257818241739890839573540279363099253973730823615475852521210402037940944512724270773496117780653627524055551430687683867647254558521688621716779968592772006731507376884552348193820235885127154625654097502953104283125130684238103194774601322427743478257695883980651181713061624885733035960921614061318738822266310083664898497565260849617534203293785204796457856145960837288859728092539187084671642971746328188876268189433323633803423118157853813051549877975807838912260457652484527474575049615952545273086516666209670326127533625284444837528416633986499116194959304668993273321249550486643308943446102255331902295414127780301068085113928326563853473816337497446974340248767102593002970006074158390668887465303135598795713754665239928214259345144904630766785885216963169053767589375548704170801318255044859130221366584438526694060167454702537429417224072879827752242228409187539319834281314310261534025221022595602715276156058650814126287056600283999736788280315546339918564688959395476659581371523104640529904137764627709535687438807600533979639642810880582916160461832605003130107529086294645463295306899848456476009121334849948071944605375676634587853863207970311674022872324790914245701592208462053563890885574772757842648677277116896505158086721277519308036249462566735814579277779921563807646558415438672976747673215908765203617886999886182241396142517048711566147773255772267242622261454387897736376835043596370297070616610421415552739207264543552321843796777791703317980982383150608069685900215287042572218603362677609182513910822766475627504342504866742411051416949334112559727525139762743818923335978187874409265118363528911222350163341285253953178457397973663085986478944746200612414674955008086323785519181810141118630069301705392642559343373947909811037579137861491776388305217771400468802601619268467413724985564258319366347085543157164621035472677234074265969009099316363254754949343234411585050619129726569903503985039224412585860407038218538056152092506060545032598421281945062169293753666085416573368007149849036866361258833005260012378153769040846672333208400988908192056748615622984092012992381471164374568120965580483685114265355935367966651961170360989911767605818118211293948914563195406677662940776434832519190091760206285882649517775614129833490987580898442559083882660859368190718929273944460618704022133988867143646112482370114491194528177992322267851243352268714048818128276276870173812031728896174413007537840436030269456381488860504735848843510024743236315802016161290120379510565980800460195872695503763395635788112315960911549392376811979253259571222340146077969334830719290237715198504661596069055707829032627471736744075137098246164720795897795695679755791474374427463268824594971769266013678113998138813564704933115033852417593861649325977997613161469104285763985367192500616645237788386058783304098889548242473847554293101519786388738789104450538337025687624909677627180972419429169595714957080455489453997906465502349553292124644397369005555310045306079856844278928821364091453701048191021330283665102082126254886425908601972190550721803260595829173460613595320626042221816005818808408830809239184596828717445808070568728168484872078200619387475095374017307833404637070957843762564406460687994287415680237857977807688159995757356790981337124985905304959209694544260112029605404586262385485908225408873398084250788625157321458620622171853318013846308916105623171386614960577931428872951707826447765264845821201770504119115156991370414764904544453241065425947288934934801989005986748267731770478093191574284281589031453333553825755397390139159792079264022030736514693510500536265301169652048000093856972914376686978774065311465300476380752249601608998034528884968228873000275815937617960693726205843063976097954650479042901057152269686322062698383854837875665838263140255934401365177130961935662661158324175982528073733840204498557592031664098439172350410274078397372132513410471499536373607856418221322324570038002257799499071681432124902882948914378997668211202317695730257191007694950714840902985821993122144345218368304716247539708059901298536454771330267808741087729010842276516129135431711097058901399031218855820605382877389412407854217837080793521274155632109938617656334630977162645574406016284920462075510096887588459858034495265585327524596486992477215717918435305478741040942566943346999372886682146547120440005651321395409402866268919457919438571763220066567176122357123847180388998905815629293256124938709771552668937085503841037874251394443435630157611934786829445983804808386063095662879296797628112424770929670857777357265419339395462488080592414545722742030305990742901124205524776275437207530881950954308097757468319732305416971185190024221368655818921674032375281313236837155602991956693544037349335621389455335918149085805367906920897876109221316026201205158264876834089368835625812478426205798281416653799539757576481093595536352903007188129009510293065751892140622087128762108117003965754879331401946641553053120861085556394098326451353122065959504807232350361945867754814963474208475156582637851841986652901621196826748394214372390104685325990574565033331992437663491891562428611340387190532334009668332908736683267335930331222128601659198791736752162451396717823749787626628352690873048008807347709746461825498013658466105310575948409575888073329765674712648875545450171278030836419785979051063870889240562996020933808266189341502929620790640647742170319518222584077864881690333090165416309830389470864007948502021304282501240033691124105929216839264018366969645219091527160177406939239064418034431471725005409735522505195079774450053100720808424109423707720131279746925412929687244045746730160300781382424720850283937378884957129685031144458400593409284386968543429070593347797977063760847105900201998587395812878079877098639077388545702353541227067905010442279424626144170216947117456408600281027983765821795726530994455103955578026609594039574976472041475785889259381906870002949944763965250639695192708256525866503299283818328906678451988578004133863565309619272116776653160692210967451324488284118954982141448420764135783164249233123622881416313940746661558005934147267276837518193795534307796930499090630144437356956001102585301635720712208294070405541899081971760986607802618198158507193833690247807070051427608340200319997096728625432395445227743345797052183863492798797560298560642285516998201180348016225830976327402857345021837431380083139672097285042134107187201057374264446637683431392143273332506915249827762150578339421550904198621406806981736935034252275743258462676318221302670264268479553610218441429040763046179368974288324935499317832614082613941680125596721618341313382729412804067500890806565583597596839690309411324620687025627911713830072743157904651890479173629504175233432309894701751895598635905772991075988724841973980577158693866466410176118542616748426632460815545210072764988696799912879536928892662076069588144298563383252760317961292555211266422147517383409355810707129385078834937905430250737529329900425387471404471703102662199219963550856901456856891955360020826830916060999032558951979290745349581515877442205801732339555683789939801632574037500013646544062354025742297613945513484732662510478065606961072980201291062328946965577500555073466719661097057895600825643665712984399909058906205125693627859714186459679487709953617509825697501813452497536099652757867292323060054143470710657574647797111207990216461600469570527780659599191720749396749744305486168321692676965284639390908808159291081340061446564788238893897706985459624085462638517044064158777763648925772902894651146454643289497464522419884209793530727691849569121320691463147084980414924048515891234587820223842538993692421617125055620818487566114577866254254021977242199976833012458431035141009570792622668816658093351166659945932224043698757681292247085634627462477562147550661771803720144864696381801895868405915807801324836969377077055163970132585288185228594521910721462473465962592857490970475192480239715541194769153263238414728833442448554339038410675228197110745886298237853055065624404899716672129858800645646126406198710927077861232902157206668257597034230496874159911967525167325568373520148070453507786896086922050476439915919456234459775059114701244466631452498682083051807116847296943513292091955437819375591045086216762431083119314381122718570215966380682789848502259941469533820255856125617904977799582329067101687830396500805589999852053830086482301382185001914867638236879330215676996355447079915926071251839974952509194360366205039959358771641972379193764921729391007414145572276547157708513111343761688474951792157375487008478198421313163831179089873984313549264515172933486235554905280421873208377273531191885010064265244970601025440764967494785695334688280799525172296698806909006222699523341427781736949220169008705919192143673395760848929860103155164327777912913682284948328909016416007471321368404461397551820151203935135102864698293219303482728913369127448071616954186078368480321093891810520818055032452311671225287195788439031851987240017922869321948159347688495570795320310672177286352274097257867812816432951713731761012043901882612005716029902967086232615239198205752928814157619612421682016291273060317116224424554713578285754155159726824771950741978986551736220191099152487772710907423555656071725841369357746218875346742987674014925630222152806370048685622807341643955408672719434876478369304847653855676734642880235669740111577451413573829301752940147179871934900644820898154059005676128970184528923501533735931604555402925845259788502948653603380638755758610290071928930108202848494216797784428870361614072722613222843560378935538926523672588967318105252576450685145484375775272356459421492756877314005641495844478942529104192833721713175625754700178710943561490333845725400797327216519580621679882261134981866691077335394402033570891639751337925042081099450023716962824842141792699900575370864678401481980058034031491760396954036527127280591550231002361619845656738091603821008734159526990664395308547934549650060901020808284491100065731738432841967495116130424638221246450281820157543204772056305117464448674202471387578068437178484936380993881896263998416736487984376482535024125285742296586557440021708260850412811557424880058541434208091416971122195724817720297266405078480571378794746331645863997725333023028303702420617621811557392921337731948524189378802527755309804494461899025818375962726008304259211341765147206557621461906787608549232960861387888888376487427006919443957854342721171956880413419470357654175564086835998898868602502198239960914679836894508047460052541971435651333324177457553921425789118362323182970603627693144380391839779308164590585913134815871861916167738772881981714196466470725352950065640231551208246918936219861637787914487685491012903605800293921838970608500085636649303923508569514639538858172188911047748739939316078005650447671338688688037176678496933393202279114349604431064680502274075947429973664600074366460569431028609249281304539160836069994317791748463553804139589315525636405066384264882143315194700907523423958344194489168605331065210922467774753209389804727823240327253558701986429481454274547699064762915262291629105415800099168976878272427094818950029933151534433376346224331009677240324553319207988885697110110711340716355887628992075126104932230478509892323435009021555769121420507532020749638813280433611505415908021504390040073953942784509945458805758127061905663343011323222659288480114384675772178454262779037075943721092031059840079104647718010390614432212800491896381388466283779689552431807919708607169937344952410217760482510973805763734750719458834289934458001719116986820686180947779326899546889435256623705662655736586144429432150046976451016536514837654040884137167751957185320161359949213336435565569367606779487976224683518429365596817159820297085534342590530456020932510409182702132365614218726003992759010160266073473573259052856039033300329039316429373322871487687031539869647429682382385516573337208024545464846345481744477722511630903334499121344862738546450550474900268763058935182374200027170193983126148356522972889616441420557921442670246202954429095908154782195705386563263110765577712211750955965462226143673242645047629578897292194909019840463886470347041164123039740949044719829052551679052402440952518267681366328360709685365293195496501677903929045139864656128308252860264140033604956344913171214207849693071078765625237235862311414123236218691242485125281999160429894017396062475906720846631240659848055252253124358444928248915362458464136567151813086517932340220531806590524482823930761427516651697482537222282132225590569382463692622144400929597599422541691405128702107900966389311458027508492676681170285216748804939138772906891759513964737262116101493367344416955816620884165098673771354094577569508241017581597294822470197028378224064875017115136751795531117445843571803176452842935926032807653101266097626967167131348838335111818787452840833530831077810373707747557769565303233858554266257644663028335178330953176576728396246442975268113338819771632544149623056889426699686076878998233613865436553821420387206285887719063527921540513543861058199698105035834805394356259825565482801880677273921182918534810814653998560069938129228487039487482231935873491950961551353055870850360922953927180990949264363094904917864849126255494073919594126100671937790907346261749552105855820687984964575084030124450278672688776318959376504550019429577551311390132298704884581679469882408367796009237827550297809215762845900050511727350094170348154452638721998827620375318462654178955380258940981133437809234659733597886932256718909333266560687646527637866638770402409868367990916228489181834164152574443752583643086048633595443457429802782169087472730846445478202372100388526898530358864845182088679414418929615038197104092424910996615517180268866545313763114351081041766396230300515296803105477431309010058158371248329105874457432918992407738080898624249825345833967439938506030771470724384213324522108381760354466114870494861788688032656688688397103168591577424281148519075193180416857023221759992179683478690945726308996400317462817051139205759910377399517425557414233730534547553324061096009454787535569871463741188185228516317404977109994568210483806347969818482764187027730976173424849824784039702584772811629509819629759748774064433056189613715113908379726604331188013773719821884280058142214141025494363615023820682893997198035309200564491548483619408426048896968444786324021760385711141626472877252672206360804758629646596660656702797435831680517766251159684413421216300833440567721550285508272225902224167041686268456641876757766115652083473514747845866716846684819709407132566991083721956912973204326998176446056268958321980510778435317856993692064551666446402542696555579525289373937052695904157308752131159169279869766529016348117842803246755739731364036480185086953618831663791812554487937613112977434599322877778806776588779205669835338425952702255797867212897869820504811336438835248430022795522360946351486809053406426984423328381761091718232903945068798728688666223485047146451057500545913241467823641957223604521523844303178390567972617721903081072347026469688600872241179545510240764026454007932151329492528186729250897869339868078766226128221671123616508802544363281886202260195215757153695073425619218441354268104719015815370181213929820276413664125184735708923249366898200358975459440078653745121786792242247785133804271382896239781432239407194035067776551315000807928975761923664772072827447334534125841470791972266021730851110961819561217660795279779659490849670511988957529233660265161518306240905005683773759640102320323199639436111929889894335403790388449592035481204275314633479117211406137933992623947778185609933579455263866584917841727226409284421560049292176774642096614875027520606179526625879469191925779529501258503412441843686782578314297899813362742225254027642033129311975594290981692750875723154709294097530200714143551864958827262266265321714225109166690451790685048641128286230303827628663475147054851391933228533448118087098633099817185689085879221526507238553765562205449872766827058178903698425804906271275679933085623875672004119952583744424398311681681766089021286950738846306488882357539921290938069137575815301038460473977694730469940947143738171572253144344633317053753593161572516078082316473744048318396718567126122703594058951401779229549532789957184715824811137878803478239908355959851675563243549520643933356134079989921707759641500113581839714065879629877881889820372161118487911637242163001462258586765930932729116491395058138188862775243970496227240034940382510695017296394954698275432741460007536781106896867580144154734557536890978528377533745108875820185121018419200264019047388456514387529844357657962991494380361432531631194812539256391543519536058822376293231803274348737454690069227825824409762183658308468375553361995648234899654936350031739393136815513182957683268633211972043243841020611730077644176116064617743726140764412778784699249852147962164082018894103566329506094240246753829315583113999568158244138211592251373560493460124486999598334305012917342920604832555809275167288277136169270557982564518377731416711527396105589214289455293882966501703879600827476963067200629769913053913675533562533483566669480840657851362290746496971651057415215460669742543847245221285206220575465572216895528638115726803386837964301276999938712114070084169110207296561195775664568214033253967854675414726702244125390252379624317010643292056342537351139627863596717413123579383657922245832962167136070307305279264963583219453252482369508922598709670266488003444954955796320349042306236906300923801068139890189700643560305450659132840923094635334158078126376846996058882090852901549711872647181830955150265058398728095791043839088949745067353937254204820407448583378847166838238097789445626261152060641397459949073722800324559119668072951477863118074358183306969952497015070482785052240108667734155738027227897803917049293914749895284897316379845699521817456665190794305636465028420042444099845025734161914521305538839003594320930690013010834044671448670474580115831375235850333132203960135212103960140723917783496487298573136086029185677838507481364015050779667239271688915445735386283117833704745623255885638879467337355193354764824365363369711413499717000194656911521165440777908828502622677668102925168400671453051169890406055757190566007469289574150060055588598363064033796370534897434712816674914538143406060184624073794413769353366282250359140249032049423319956972129763735446883593460487041452895136166278147411392452801676020585931162053455396931105993530796142011225630357251166771339609132128775329657070401432970272621779523560615331532934039220840538159602000030188095947922712628035002333164469756009002234455140804066889646109334570811851518783517262453785857366722539989791614975236849366970404936778269143413980160665322429705503099355345096397541788352137088661218810729432272747751102868200919539510956415683328134440577800579146698030381726551308015510735242530714087491524809276353779221267261689332613323859300307893468510588159965593646728449858349872783324592141606802197401994282345562045209564585829484743004320623417223904791475215914868511007333553135310111576287765326384954169014355848138966117450704262591698674597576668420094638526565591147042994582818233850197183147593247527235112581386963462602227128342916735231389549727678512470284459390184238752210136370991925575577389498666661008517918389507869619487168878113544668182787065508057879059978619183497857852258078143331765786886129258895609997590130010785780028289856033883767515433851948066282408737124900497449244683913686861723013039775397299942743419150958923024232022249313784424107568672104929106977529016390582152049577991328769895718509349770434286223606034915452483514791397586302020283920610498826505665897069350766490929568992359124990265619986747343760474506935210686369161748310199823659809102425819479504452946820786675993176397054906441966821103651236853109393630939788118602047991138419907670291648055831402228035493335076839581211151915070894274869843704544801041450806583684656917319488933265568407093856626772535786345808815446653642334293653081026695407385597127114141526701963647974577096357248165098614918958204308544510601287896403866315819765408779326703681062771488738220520915230061479708268672027151190828129955091957912572273660733013216610152252076927996783778876581558932632770712586565259994938173908724889359664349124827834713647522385975563580864413136878220825860132388927777932108480427886780058641230059677934786004732996254126176606898535389614630998662548906376850150048833293977018086225339817486917358099767861128442574826090630256224634415070339060697047208101588048382552935599940635629873125522934576615669546018796673499742308738568821545612092685576650729635562094756952568719254719605042275172659991263158485126980155524383236186192996024247749854419131117827569957615836949600901050565362670968783257667821577411273267330378342022658454659904412366334361316224549865934955241596205686228204736536989240061267052627253315555815635389194261550002567328423163082511338435117993837477848009007135485342994966362130607403695890957153675521884136776474909287815158335299767555249426693757085212732970439112518464764409666544183277384705715122366303482118227280882066055612279341980476887340175892890263383976977437489968294650632862010521824495393349353622734225993156393828168934558955234491928808208273002452140607506189872219110023565693438108154289573139088082330711269720106895775434935021247877940317918141846080040602985255154043492256587876183496520642297406814682410376332443739428702251107066231069912126451318878267305260306612397168873516457545750447115229580248317077248985512994415472918888184081895254748852620814352311152600826275845169279040902612280943617919432709578300640134388065792780009078339774741014597064241852224919007752854166124520562071158976789376194454054745233344564200229055338156370102976484976466514158245996665429752234605867452019503152773053970822559249483537003116663960089876373791127227748607367006140481347645202081944376904447189417810356753800498158070321617277620848543316347177741692269694918376597147492083751133804176939745010746811293184939913611958638746419450758026940173383697046008302262623287288580094429652377033317527531323006322663114718042405191229736581609025742036712840848447140809677102004539649947962613214729642800221786784055125437245232447307609485928190688346331261805172919035761626083780355533110318899638206600203098933704832689974730612833773815190059768743006044644267314126868513337937942576157788747641426744372060156530193779984520426032576508221062003288798100090155931813327703271245143668329738362096506704819042187965114698442604318931951034699200144185831336460004455060867747652100646059574840430310210231336059000108162370516448954534723807319875517633686950605207659086228025330852436289910266793538018594592786825358817998609265691070249343470545303671861287194628125035681195882922926394900804546843340762173532394299998179220374476030938165441625531261609630187163857571495174632672933332934259624557799397723308955223929913403588901522959023922727506536499306487328506817421348130117053929316475544641601487395157739024905760672840529494326667556865037630845506342524665584251635649827382464729830949077881227438276658225875749360492512376470773263503408114768392631296005821668507544315977580337117087233981723990714817066797363258041457278410653763540651164507972994544954935297103687107007912735532381337844143328370840151254654504966207393063344580993981781519704006286661537017662136869734473512738899025865205031417862216883015583236612987498962259024835632132841721176134583287979639613325798229067772106988968019824584194986844819542858756335864604729145788838217070521700635594956727288363379935552620841773278046371783986250879934206698057114960332019000450566096621859846818826077877297114793881280433829348341647846091626989041947928982623929345994718689436671985195981153658973641980982484491432284118672210070659128060227261522789760287393319640597815843107968729235204476228029707356374789315469009519995571363392171482596174887309287374562709426365985410548576325314152326404884565900718405242024319493516635744039281211033604841937318144455121658284678638514924529909588355711911514904760312532049288790881398860833564331622903284580029457237561787196504859692560933130465227334927640157871465794627468953622919125843892904335579318626488074116145170239363485521222547925756716394064889426751129209826663377969793421330496697617351787884008232507033699024468266398257961775810255709730758872938836208237469033219109538399243647053882494332534699042482950478930837525057490917920409222092156793264001229247940406708302780171089255714091674132352351873061029359934437590644377121492044659360791559390799952016550923302686850522848994524697171820825191343160266058087870972374697726950397456785785136270877515455880266159867513254013834724042087699288228585703622297973259426432804234679170888845203889853352931840829833169870114808657042957848605852687375501295198063947757351687671145080391151151251444412020815748871705118320316017379396294570780972406773859523247432866871442522394995597496446451043539438459762844652198759294990795972766638710491305681842635642400461495449541388408600852206424018776217562571633840162764997632371346810155806218803414252617026735367787462825216641256392195283071578950470397300205732207683855224241610358885082666759207916075310548651064681237176729056782612817812100722961683577419841881194681126728634786867859700941719972059411591924366660068421753957545325291809713880225192945680989195609209376714432538524317749079524967418801637092416827505254931520534212984511731558273553419369419704474123317140777201309346335329349743355581116218525034000508951490527982537683967627344589290850621883358998313235759495801595900573751053896533201050817581389513583544942795403638172977405549322389743601657088632283238110052679660882319746710477685621497541977552832421516807414026112114208927353166824681853399013625035269090795560517322724466143985993585370839407160330629055256148662589664360819541391871477997168857573244967031361178806747642007456834425806855573102555973485297810789668108633754815731488495774640264156735170882258348259432557242381228520245402978157248614137491884435257320738055495459592975297666781243537407389519800999590466873279799624234802335049942864486948040836318009433563636559842415956319025611278138846956941170504652114712213779077358945597611311506428478728714324313529828836102032727413004625214427146026135149488458468295272212705089168121913156810927640937943014992716539012958554360126702051855712740380661917445284514149645155748248750720972677909578210701517294183730067202972987163780271921761197067317653601022322252587302548067325348377128752376508810465796594398264286952683606572504635988168973368117291351407867209200286110320511655747803946391891931452062588067496586770651508164525842423321536152282833372162108322534357121318369508548826136914513947177779754792684633478812401347205089095790596043552925625495481646416710965069324329548582191203012101735311808635820863022113157004594217165959508777151819521493584480088013627394616789142059238214063274704755720486274470368907633648842093493852029482875698277009206485901987689731257648092815987113795528106194709406454231493453525212061652333570952610015709788059964898213227980560051129447045456255138386981959522828602432815527729285495381874099388375991807577984289841495339922013570332962026186018189936927424279873913726282586898106013164758960041273969683474301727075198664628736392987079230560293739770987344243917777762153888902628999659014593708468050491537710133865469354389040120825158679610819908606940043533504170664076039846269559619533699056160307679555750436138664512876593660974848581810356468654914000955869732859300108535993507163293144836257532683971140997303421199532443145705934800295351496728454486690531697879926046513330554848982542204876722488752243567487519241318836041047210687463390064195550207433210328204967127380220954184637035256061032776233093305994206071090926170932766618227185810742684104693793501503004094332712013299740616402753726089521818621071876882279286997562613894227458472291983302939997194678918368491971796101078492452651360043243822055188281096413970746868219857596492694653086929705534538703845024856500752897359342337359322010912032633318969934640895395095449711453319720258027211008536480498260903217935998881981003995098958720433856310866289067567814116320744301252165523147555582204093146581153136671491835133235217486803623673206780852007922586085715402427547862192132605860208106996992625268301456739263836422348419448212848051999341822922391767552590911093037860759160877909685995956986978030950780046556746180410027984567305578604264300571308549498342480548199698260713824748810600603436182169548089808173257276063019805456543422564327017632586656370736321810989214797032931976756859672388824739796273121705719218596638324104563284103127068792196972237945939728969612246247230735829419749399198998556938578291398716360457457024355792488140270141667853371238781311733293435940356606046891943710977850029910662835169623110895574358833377944166560318824130627344064316950536584766828634629026630730446864157061261126395998559434701969072501847808034663612056100951046360402292124102296465591116706062025625174427183069597987093319703471903605447131643080088633166497383670463749644707130275135168533007328353637730605157687589216247266579701024950250254666461471552510242672345932002653832538336498066475508498699618771500175135141929572983251396030841248817422607555918780544436639741940533617406106400223246279984923883927954508483372813846341321014099276245936846466336940712290818501257816484896384837245308532163366719006335312575099552922129750459420627465719677242612894989803280068033730186178285687156478983520231954390216055318858855530448111255947143377684062084052608177974446951289373356142120670292523521860431701533767790284175542060754377792495057304061457189981788569821983530286053110046710027500941419498175221884367146342180973202381067202157161412961647553515423574958715479126420392832513100988233177385745197578080034826155598455466920686579338015491204571161994437151412225791362870383678479513748836267003446663168562528831896619879107832032060557035657573810442393874411129127502246702932926781130952541869955785086909129804473184844972299873950767171426418067669856738031337575358636527644039989578471785999604055769052814935161334842722647057580595535311100880374573855126501267741761321523766743220257310028152809052059273003589161745849161231751649996458458566472483138975327134885061952225516957074817372426241636263115511673111466299951034828368948053613346778294082082335867938624033040020331445151414572297625281263630408730636069545181683732947098718701472063874970730642091740173506720865786180464155681102309600029325105295508506456589392618186779431541401464842476482421101715321425455082495308488898562152836170000393461557072928401056087337337458185371139987829214762127643878421936758895358332302819391297949449794572150742490948586473327859253943563211837110214284792869672857122503444603159044871403645032560638222736590662223815202112527109484820501981216897767299177827928879484658142059212249444545936757079727475617209094705032913194948644637392738317700684863255717761019001440109467220455056528396039664450198253659895842258834482233243095709161895725181362394664355572599926982286584660948485514223292027484698242817960638222614467304330580402767451561655882477659501232344883016873991309996032664466318541775603488701159119372769511630098761856897498535282992115563248525499671568204333749655900910306472650146806094325181055979100674203491877233226295890404094052283530836944974237209812660411379687027773798567698695118182825825118597380055276570401492443047723452550682804756797851170794322949061415035854570292515552326853049951342270863102179040827271526840647118905779105250610276452018244202769780066360182985443582324926170472534176974359293149469475559029446756497296202021278161997889728269862981463186825716423586656287680322886246285682530345186132458704868415501685744915494112904701761344448956038944293419102072945174102650631750844715484971686113417027769863740074462157923114834328926723171659812814195868488740200153596929219484397397892587294427531082654148356955502967937886428313333129401094116662312970136325101975662251185606335900726787204471606137769015292838524912371031594242885508825394354285424609420125153223883695371184814693303076617181196992694748982301227441424587333501400924523283486570552428260109020154795749080439164320955753002918368892976400941767689849083449909462515354236460327242589672198483753418293717111001022377190269171054857186851804616641811768961503493854057728761743237978729941965717032379374803172083309918035911894530619830521299206148698846086840937323864371969560626309089389268055248673535540126391283728908034442496394449343455806645015917964764124727058912657435228883073460114695560343715926163875832350144569172376556545772377812920561333902915473903260019002926098064203519009060616861464022768388527681810832929437644636805120806714483775858202122054249929186140083951981400883448351502182573733857776472251833561437117259170171108908420625623602579609507530541078979657126863976293689748700874926880916248136638344266946507862698368926851101368122143442212842825399679922810647936995364298558105367403018367135133541272187678757789985255369941177932298246126886532795311167112467718518638802402504656402777098818874002763351337227180928438513674746525856036578856238536954872414192497624750569876775600779439778562902545131773153607965895612235199266713237539711573327935458853972423761236715108763624416900557766873906343746129109915838582707947749200251844475543857401682326222419159823978836044457155264755795360053124056809803187447777698572939327309099057726502743772706475002976090703778290318086394219316596598979849240405513640804351499696329787738828999836398957792390336551483557349036201786442410620249546736131761551448747917132309512011365446063470561691799726723031168121305375568432005552384406349696972786450636739705335168387390115629081727737479761937716209678583920198365981507913841244069543783311888544502011225161206781559891545606732491554967938946025313684423879045242672969579555940389039723270472406179654230301709127112996710640540078700865892105187990380931237175068253402241634206910350275530588851800943856810838388904723399085807385136596749174196177793654860420576589630897918404257846572589563783244559386637495933970417634602634294086346076804242010026653717696870559358141641756401490480762348867076208676160608238213445855868923677834404150987636679785410227057568623019871780700860535654578728754315475160118094012788955075862665046092048466178698575696667578928775839661475373931495977846661878064636542753278568828519822992074891863221006607950731431561441067137852065043552364892565600836523099826206720342103821257325315539248651753230985504137714056720760548402556060717030053048153533755898301199918709330256423094345809289786918840514796034264660432363876358127536260896118961239797058645993660259249637216894318504487932084107032009887707423967778905506414471192972075541526375423453756641565423577249569469715645498784359768322149527952082920467076472180503858172369211714700993689810094489606658281226140734341387205480487268170271721558223394507636473005627663746646090866160916034746576105502569754238172107872299357137151807899154284432563156547023543347872175303469884618821760278595948429413441185030791212481704351345697687189239208499960514189991835091272256326871499247351618910882868191552454259625628013810790302601570396286870310106140979414289551715462093540592241866423314907191835821127202604191055036591338130567231030206992257326993054714641071483990578413781498535317025569630066820022391415466100460217737081070877614254618536173169629775990914529611211150925633485635643444635844684638549536580072934404975405013572968663777603280377651951134085177557701785393986261513469798163733282745288657161143380252921292131366481069260923983205008643764576644448500374163808885976080373685740378203848863395917173974105094694664613469284474626716184430753852713572508094732543078722436575314763585421609410668369436730680642103859494550723719846384847050104135770216618089210270289046288619128763211150778881413632014492770117672267764586778088470292110430425660466686414258531161327907945550687198882448116360368767285443323919830251049985917872571912247514400601639020918255721593513513247557889217709721555637654101886962855633999320895800074281912735084063911300764641795857435687994699754645946308173204466533826800768177456197196221556704445634161620177535311817162941707961122248149297121101465037112523140719075715704754850997907320238790456336264616803836514696437391477534293785688975814498621651254693570830179766185619266048568598961735065366645251368628550499345636346729446448952830374003515355282700617900886710605836928060762166373165151537609383017389036846731505761101859115939397831677083998376215049123610374665415304051558541211648166215040407289261753888012097809122538139992557858299284804084609971602378424357095779686102515180153070444621128551477368163324726224067860100942350041121116294609940500527830235581978588870971818632195642122898987381113962003331514729719556081673985557844123481557282013742752858091349233055518773895950306751403192943801123320976918250457877782945446840224908429272371923146925497934237939292499319348758321233793301490212858368383983990972237655239543217011889066255790413004637135141701160962563782228081003037645675068438297967008130186804744040997545985674006265745464465255467514817142266570533459347654837236710734229735177428389327536956848421096523027072020898012306009510585320357395797867153458825777164027692177631436223492496429969642440493994012980738828054189630008988955918696230721161319092050134495479932989330744413267049449574865883707040281487768655086751306932988619648709573255576634236052773941356788614948856608404373826055939398111347892445996237224802261366129963686456146504658039023256587449474557918271308791274993166375257824729167357641744571365231259431820727547401384273788153768991683637045681345841047748603899510748305224633503377772590752953088646575039621754795196394070203980804718833838060340988490136066773057310539048203173208107869273026055600178331948008325457622706038928093432700772346828616026598698692308936035466950378848741253925287939536924956050351105436462347666523814617124923442674439240451819132375581621056568235391899957772757512366136991757789639741021722329339656770226206801701716192471560574479133845176636847340953084409404325157244915428529766001205989583235752810528943784385843448678989937661477497113655132520730842657418675760046541974585969139491002763339112792045530214625158209887052788168458337309699813230260067078100601993058978607529528849967385803502204310510844887035026539359765097419418240686514255053638770459966932742630855745278750307338866735528869730049305563875194801295271055398386821303418623853302192771404085611056939813633790851680368219764742971968613659346402485029035791974983415777842792308095540127178988127311646609208459577403235649453814214352529049469903032280681577239981513333213841828863739028361862868755938423659933311690110007453068369215011058373886949699981013958995332006322963454033554130995757545431673405606680345698544444043057554590711734352672166035290179798089751518706773012287274311597255496254934710023151485230647302590869414293803544807742344764616231681356447949171744626903258849334954781554255381010608279428005088011615989173954567255818298031860165375036482394596366885033428903574481029415242551338464373242369551647284943951889336522196641623726440798048470785672715654142199916872114389153352448181567373785132531700401474729483183874672148129521508924527041272742230693359714715181840856459256446722135912145207847559867202036555856143422210172747161985187727843941263278439534423848140078665020581167191196155725051821291992356462384881816034876581522974973856521336036102327971139701950390596043427944747272991176943406151414178653811319213335246735393711632014142411460181343273768793707540970304656546297912158195515711378516297759328769285322978296205357903324161098777566688941238589683667969941755151425947414986630843847956291082208024827486828671107112652580981571277167823765081319855917525840404611153006137890733988900220274079691673045201185611400578093150666042652761060861544345343452477778006579846005953847794912989959842120085654434708235564221731804157997288985283163021296583308756000744094503307749916420298503978001544491485296692013410220896424649808329937605992673067041198411292264913339911574099795748431875198670911827143498458961423134633507055133372717528984302299146076610416305173343760812334409185687810183986449856826518026691686366355518023525649949739082141312672878388510863303793617768401249845273607957895972278557438849264735234191014148950116290981298487814140337577637709608832966650117911608933504944247062189904595672362319703607423486794861153707237613595140310927473764854818802728931728297422908377971257902486571359697701626778653817820613717349730008140357518860793863535159135297713134418316939288411134612603623431244819584339327421920496865800546027600368166592339644546517236736760509543984027563272008739296483338606578083453464346168954198203180576297149382040271974868867368649861275117613259112026585849080151118594884802962049066333468140425723531770491858510781700479252105307205791849019897031227667509804604899977166265588518531294184703802376510228864967911028350981836528529907787421912411693453056422845304811313110716831818286980864109024928502112540497869527033361176336408971164046195460676908371197301202415138038109729654921085661376030541448782879069348578847910696991780074567567781885011539957929968315240338059203446483894708598505959256878373660967788853448065667581118402063752581336193885344872852622171510053074160654837281315970232266883132227707851218709010134617177403802182425082905887571211718962273179992500867044800199949449659518944468248802941624631290154243747715351378078704681803068859732817589518657397296254108074898279694214965344640790714799877061477919730166027198592043863803962240364486967992270394274198908912554739979518111552504766691733617004913694288936904672697791690117640320735492824316264023483139989376410363740884994351830488373131393374601851328009210371682589487231907136238077271931879508063984776846181601529757608930825958510897475897294554370860532785743897431254521627733838247712403518905433470775861466864077979882347394752853536170511805512103592974971067605575176020231463907799504016981717777429969462371059670665182038918108379750846436218413920245850337854561645663551678683709501873165258483259459654329534225414330905400268789771828528887835358425941434202835027266603038612268174666449158431519599992272770624120882651489967113789644874230278577041823433848254385339606219959041423390518914420408817801797274174445982554732217233988072074325498595711748805884357516763638243806508515391036570418506296771461291241064008043124132999585290559918928619683348518999726305876425090224784769216434636501495599374561910776649779440399682363314655634824984585587861696752067855578360883099987105310619145086257600912928283031903304929669802345980878938516007658726348211374146777583995222949534505758869318718273439512813077582324106186717844792374423760512535450249327746128313429717040210260164042181643511099553996048548467743266410250126581357509799250119911654960769817749558518954368124442389303409124172999191451734978864457592801381432872947823558363082746599659470241455816570067627216372031446006654453539667874177543834962990535599202247311757583632525218019974286477657826231674175536452663196405428399728873423561160358596676390114417061369605197065828856349224038777689725789996321860608255535978055587624267808604039663965176926026594017024750801530005297150794703524855349499147194194380146069275879176420201026122663727863361779464845533038246594866383286563094955860102159154890826182068621442311537323339134396808305715891858732954574866319533614209222265696726935692978889351133636364258371061534540643800677562311588196454689052463928311265882512409188353868227743510666407769898202787560889505276733109517577700630349120712458574912781794423816052328053797916700925025268882884705423607825655762204734380106200715751086738654658670513388939831128743722458924743444297851818067294732670123343866573245670098327092432500025278804120872822144935619622137009214064700294747887161875487973667544945665543545063741109584644541709144852174163054262569231315592048937308777124947262655379490475048840194367870785389406676966869200519691781326167015402115716637840972307775178031954464326541114075144988272699799138110407373716313126356440564020464335431117010324116616403862539617179741333339985672521656468954968021021534612211255378996164338352821302932791066026352394442904716214804051765710656154280073742640506714013758575163696208993340630140120330716873777190518543328774899828526888174241281656184049633680091236174766640485730758116740434264756884189764811416126865325469989907448753109529270436769438009878242266952219222520466969735943858917332850013677957759230887841098147189689921035214869570119801116552943203284646007071631810883069412475505960081355407947056638026561434473060734456812696791962517246793792691791687841629156700741569125768023768146447811293155388162968492229369981774032874872768271221708727168992449546790105769942531812593943610091056315828775058033835979069406246885947949435972580504405977409247065757820575963312206784003985631852400928519184543647689411520806019633653081374887890979091726373056227338200827865381657005338649594588934518107803573135577635283698513903529988105782699290104094335741108977245922087820843785105002989829508261635942425835589668214923560063375427082818812656645206496779803882114346390198545868021165740568468791692167380301400624534602471247644282659829845368256957640036400993757799042509408103800883763146069371395909325560534379822203635120886853443428501507291875351979910944214795009937353406514143481109156237252299917050936990925839999114813449277654972359531236713834064764508277883370949166108733270314747397218138360266829890108902170407124388804067282451518045537964327338283517374373843175349261213221930876729053451078153549276630692367314535919751743256414090802146695885188616013540485425982427464639095738354755791938833493536165460644211627622885047249402796617961644430719020788345694902349329816636569866426757330148474983450478474796447098313640954817698239931274050834470246186368734773000042189981825980884416352587197075134433623364980738706685071388017434119433582747628011172878164833056765753647629835316501406879715472511720395428832947431326809032822412306457224654804543429713632841794281619266773214279369002073782582543152005208579089730672187880579934452349539296128336469278722874445011793837045837409792935851681310746510383769164199101822344774629548743792048415448251403253088104993447591196829586291845237666665732684910287689239610618528042375289744498325846904983843644195632342737420046480891227576859017681212386346881795859021155060539526997121867388532088687969016580594209799299943970710162692395100390162995335363532677146916461495020058739149308249719771574067979900175764122335874515942959463404917280503305801485658757269942340625531623614972865433478457230721752578386792164572198231195204696340925966435552950685272536218624319321696211379169211090777392548177109184073222764796795006602760408316532022592639755695302543537419173119333926040874100150654374429542284868412641385504212705599879319733473986940511834344301293241344928446907250736395812642889157260555971400793838207800838251183473295369156453128095967934395884991289519458888896650460682759338949321563864396486929759380761180222276210361154939856268089952030828801025091394919790431862998733929955877745186363426691348618738473991915191918798986383894899897790458689486958550528278597527820150985544121669604605824976821965899102000548889579958882239445924254779064920858006319210680563397799355305750132974854757408755481220461168269506914868046819296335810254280425969391453709692499700978994197555730742490509745931370955714175467760435460256657753829986146534043400834768734826523496575713436595126457465960753694432198012940057085344140246121043573453393334925170966788183768470034946251208719301655922253510739152923101678868468911774985599701995810841687096894246663817266302647947619416661535671685102198341842796232912165280323743602401528748601160977351260030803497963820488899817912987757444459839729777672568460300711438900911034443393493229839992345586980617616873417454126448444633794015797207768892708402530073039659010725127694456716898970637435313483526881055534792034338626480372200522611264165939598004781119637707101897123176503933334258311003232208506626969637614703265887382753842042648241120926880718279596579707630800750836671322328255649738705708408574574531792336741546354416468469088672319833868520713161762815565820373704386900328455818450874587609372870435475379423862985469339463605528686467343252000010696655876997704060640887896371145655272993078199223148914067754341114462972622233106800060366697581330257342530923113480791008460042802504528285400035376508649214328803364229784063423941531863529151639698015924730980350071687458612771132342328303684500969780497441238053231763085811184086162518204632789669460739981051132404108275927090269331673280204933070789752089657562028783027392643133816032822083804132850559432177178193683558330779662961763410689186280357073253444152696084430649202191174711910387131874866704849762429304735221684819767539312141940847410612170107784927224814399582866710950803576300289386708110260290510657782933799730109938316220620611341100277735185789891907836128208048526114246855099859315306898397247919214805114504840432461516014625936591067128707900395490965028445949966170467199774246140431714348158733280532885370261375392495712078937040820980912994936861470164945369916037738197387742939985637561518443522444086853688855005962728950049738506113097228514923613501105732154635886408910173038759343738475574373288081862667217875969968259587847409976957734425301848436883574705120099456738326525820875300913992481654599401650468394848578157807591290277224074172406217238796610010575158876184685308683266405980959303263704909814366514840464118938491008472785996651133227575639363467438270694180216783970461569273591601747482732058039178794740857388820836287499133213248388345342648276565806848935317102224192390506596414045184199625464755470637885772632532685876760531969199867469532733123386645938581932006585916542753989164785082213008510456576485593107133129370533081565494199580399860082585089339653447842874426743414723795271392360688922547842236128154059483833149238222901663093050800568272983931517693849524429644821166428980634790765636811956831405915580337446263480697140370077187548135352212629016898666547026544003947594746691139330801496775941490905039741399117499395470635784668975027086346328754051351619894553296093714045030906806135864860248876759064007913255241305779719424460093904125062068539626330263371196163775623213528765480029906472327585414892184754976657255539112962176313381982799947435305407585429892247458698473831473218916649733574777953418036875714147143361814642669944702423164814834130953023612362559822829758450757737573845535941798548776868327811949768279407401973604339596112574608065163543119865379603292339896047499397287353298950756749163343229441687398471096966234903736617048284287711549411742118981826093527304467565057343328401362557108059940809297907344412393077253673790356207065745114891176172331263803829694691168841795656050050389693762062442382107387587962515312943707304011772606572950035273599126589849062387803329296623427135706788772547864115264990031795165928746622212791065065786527450801164073571682500551628130808225100378237669153457195258784032167861474337697356495593980371183853302040566275847167339411051056134577826931736317791633406592206621392304019792263098097275123282771388811086073874814654470572113009521715275494156317094864553171483816562622931135906528186377397447689544888682387281862531487142626664945204128549226105728853356186532268245653634980622553206109703738346261138017135464695107279415396340304601093544579121887273582969054096937535116700629091419805836840565793027323762854027069341116091716557647952572421890314872565230676962928797898277554593426015981545289028029543146278005548902465861633101411065933059476874156397322095581927383555972361252690679777969719872888120975211254116287944512381214295695162898969013305188001597423246317242859414514221831520253273530089971382147802106610533843499452900400106097356478722774988522347198876411445679580696757360340614196930386889295274112934319911619368377078269359613937096615548043807306243245798552055786597792027595703983797828839809174801263135678673058222464430730379763019661250601545447039851858160800439309006744559621150603975997755792386252393363379812020944481885508119268759923361284421171694511276453374320822185528109149703784816982049761308072522213499366620572465924402944369073081557365408690792130830400885471325486301054308996276657424524665595403070542174308380196951267227442326181757172982254274663169692943668651814681300458697431839128665864799839199384858692891889201249307732601845613560639019631991955171830572085722638101866209385811062091164703721153339328618653325959911771732453335350846664017159992954096772619863823899676631581450225916970225969705231959192022967515374732257595359108668885448796433454452054190912567917157941313719963475688301033431067646476559790535260641763021317726778008514468915895532521626754327309884207828302735780292547299246588230097352920269645797520340715088458839356963275762771159841792383961111050919504112105784389398388713475308308774480614421969417903909940072879968960032935282146583170057814263667835147215482807498856111942588129593966859458766794057758299657833574606958095236972055434939228080984011697226347633684857346465838934068946010508124780661462593298051556295225247016861446668188349832933324226880387326068419800474145399032311521103063476323519006596168356837565662806320996394657958446570782878899586914177990534582234290226009947997195218330604575761512252513388421678296354822706147864456515269840135019631376454432224265744490044650591150757105613696928525112101629352586904942153267104174470587582769633466137288078789128395323608422362355780066999460212798775498639548500635866223736990878028773789945556246519526048421226992086767715341468184600395962924475877815102412586546579768863378504287414732727511000048460090516325049933226481973950467062355457315640283964652634999262709996739656361217098574905276440845563554507792862373218852185315257701005758708169749276771200584298730003095189323695260551003301804520205586907079037611178778599536443049966062036039563785884627199394949057885952897255306519539411569458206317693174658504434303888117898809477148445028043062317931472482103627969490366740540678157102121598239244765398787566838265110019641101332205016289154946961729045999017403063584793128354666671767550956811230376577679684840074819283703292739530524379039500665449361846826562550795062867641100971434845988211540295469236167208803831456671943219285706440851878735953772720951716073940767059162787437055147696937648792585741371338671380861286735345823994122079084382423181420720313956488154770060487515841491942250508439899577692201748514512570097371308064952719306858116447057795351702928312250316389771450689361351210331849681109177310413004889633812198006907415821011322631816277931872878988055320382579665044584838466348383185929703554105694647874372478315718795427050190104346426183345612366520185270890479847184881431829088506022477078376818788217685225284302795050133070582123816976161761367520760306749186644262030781594387145115869307004921309351777609498054248412330659157199342652189307103816392909514151870024851277941442050695901986764669642053318011046700903997898975188915712079374350288370820551986171868327805824004451809834550703220016453300353020560242530431409002405682224696677882404331755185577330085758929450801769975822815093337583954831734463920526848111280115927066889120859888083518421753431400022906489155919452974760103134830411738235579187241588363950672580732454913501314581888001127156323335695392044369265970606702783841616445651188280976482909837048044989591054678512375603722607397439248834997494240730695496899019444804161681789499766090807420199786278062525904420431548058134643106103284162880308406786146575464155940300336489705077346302628405112767114170079509899052550794151561332216498962950637623399293525393996642856290688532052915572805313102975497689888058244368023625709258316566955958173552106886936147988086999037012195506172008689836247470653104408873518507733856109098622459847852359073828776768236228766055626388232187618782360973164048336327097432225716119750568731767412291269853741394496105502645744225859563489680352050000896229273881409668769859509778964298745486704521134654726287897515392491049365825284814911343521490567817477659406476191907858715042022891371226050329220212613183632652935495194487432785438610185794799958920227765553032133466063436179408814851946428689881081038514937621617185395365035425883607379157772738913922585278761283323165536048925134885303051124634112367786155229645640325670116987181958822261544658107374714013695689047200672607468253736781886940998390534945615801273748261923590503111618263732298112718120784853691115125414014647340399106111064837003038869520265679613661843544644004882565236728577837887906771161467793345179833946810071862000332041225280562688225331823151275251404400557275371973929355997268475195713032158646321475050571955109306759484860571186140192844353343235726885353708171193626826758439083214695998688821025851717955392151530692897782934262409568369950720303809359504246062644089093641718431541863313175970505249327979973279581528928213273846561413619962750182743309396626411357603352947432738455243803297756225236987429408249599851509453185286675781471373671089958546169632226130282472441384522479365871484632930373875323637137862669338211280943867720448314616078836219490796286509063367888550803687101715021099565740454611871574785169878700204369513494801765159819154380142129562593165524740704999131031631801863997183206919837765968708107624641207428232942738658135996391787001043146523792714337568573116840863093209500153461468096236645395596279203940241916590014896016790487120541415898948153678717945746535607064967978379085441096513173894732321123375284882765297384830680107436329514561934075458057300567086171353640038318157932208778234861183284475483117359525260275926041104046555560915875199057133433846665930142345120422212600006204278525082721402157809620450490443893129333194785417718275621035627187471684279929342845680242431552664838988573100382464692719963234323368411207618411179178480329045419204565155451816679060165470058439161849908452389633502589965450946995158034725706367990461431230646453294960964860719126444781752354913621283812789721146236675994291155139452474107005878203347076339451970517796756759015782073610430288421984839304171624751260361666827368118519486422797161535214476353915412535812598845478429606624317504045776114832830908273961482403656265749552899787676636255598029821693074248060884937936874163831631713011260100802021321931385350292013675816653448128271414837708748948357513595968020676996302658602758157615959991099491128237777515424442246656283795852890656588346201832395801767843891231227030599896536873959207057412789710586642340556264420686287609323155976952426368826623884656921449013823840815488689823763779312203033610123896895321654998179774195419190275842084484258713574708659579908617674603992530638394362068042919167533729951364943316556142964411091817315859192442297595802934825750584421348876986473302669728482657150777593818953797766107153416721159160492042955494297640760380072273703836261447822805236241136227523308936017633033026401103482786038661972991949145866304819574662902455380694894821169609409425057601953637294568943756980315480287794643495607505314092949909419871672224319956115567014280021712789049996131819963651425005549957645266077215745218218216798917235463071037104777794841116878867565580323014658764026569786894530159543246733344594840545958230513599173930462443725610481260918467899247143616416801751058948372771570818302213391583033943212308558648806403445207240429880990276924063229500084334046078628373387561958527496422206167356114054429703200533798028771164106886800673928019855712542637002271281098479226293134435920041079730359892484980064948163403159432765721284270593099454131113803695084545067274610333521948176621019033871820668041012685988228329608417632139131246334737158184325086362834983007424169147723498551067230630934911488173137877925656773711744112388507965069027327513244095218882143077450321426087254705819544750089149084507034797743856262610878424285502889258144427199894348001515538953366484700789982438144432833117834185175457858731751168838746246932089458181822722576247417632768597731893505862493128352444148358269751156320756582562352722101799443329154281481987269032913379123788290871335562612867531837181506684427467468085537622838124941648410644666167397494966192744358256018662667324404221282097741757905630963273273326288174712426063144186881841242705349132940380884203775999007072980907675280215645657178666708668647104310045369335273857251393321749697466205421955761889577164781075067035894512527775807985185733445269580039969991258808232867325904545575064055729052183085106987465830638148776318054389719795222342465760712320971039590617819954949762075628124697954558333330916902823841172771929079143991289796405807408298446454499755923779080317850196259394502360359630573190645712147745431117899611077219884387213687172105427530720545852998745652722986478795759159069453017289192344795042726371140818733937452980124193577865392111822277491710005076444883206003999611819408053906564002514033972352428612807430420297342851669589021080283305811097086070036295078117470549278990839450982064379817289187303695888275203783669240664992961984178768489951625327290201135517775988159416642173576512344820965911924605084683347657893331312546660333241077732212359994154390292802693773488968897958568558078805107633580556855088400505780678369960083784155139262286373737352513970213237358132916945927715179251874766574808224986102352231065005434478310902004923543060294080704252014053911947975874300241223945806443797952483606239360996362187667981015768185393414633895824766985522930084184349900494141846442528296239661078240954996929758595593937863802974693745259536657910343858193254642659048895200196247505239442143774529437756394928144357711369192264894479385920995332129811165381158658144396888839052091416819917014722719149449827765404256339285342154329126580879111901564175323246497926841381332792271814241763623342395957511840170526678479292925921987140229244323467707189508157451528469931315277242349036251957184641900644053378759426196434287727127813096038641996314671770993570788279639410002801712447173717023511773063884213351049603648963662679577090401182013711933914758220128300131399870370556569069824148843301667949182047478036761578715468348719828970313573581429202960686700124523039370190768747477364210082885042750957714286651063765494111230438821288137796685992799709969478370288611891058114810179607834731728824130559451522710030387729970005231186987001313052996394656933200703483928423753259320226476798440984351051910147677310714348012487494904792385267424324732534986167786522556487224669341674073689612459044719505988753931915395519664727361345225295532725419747230270336932131778032357494482107059796873407101930224744032954792673352307935850484241094328709988372050144730150215490578070899864641767747046634277035696580131851964803064990916976469084088054430751105511854182554011223182565528318703214869390799786241341256242648129426430345554386919022778578018451783473315333061715570871604956976536214175247580235268876261068916825361401892874308506520719199317603766341092413484679314386581319675408168124475333621831086574065327597108021898943540994297164030289282772869877159619273286948524677322602863879971765930155273792267613924749899927813484847114085151241905842924881637023217711116925333542342633609113820044734257161964824775379869531131004571369661200701518325853020869792864848107123446089912004106034496862328942169327313901944398673031244192591072741289881910724449261652031866480571006751632890919280413159939372402839373489643642468770979151377512122246645110466941310350878432960266970553191880126855109415570926689919301925535997161785335044687859026438134929908247429686834981445219736852877380695649135026138632605451387799168720692284376796398307637868308740914835435430590311953918276147119665802136913572431437577816435448708092482932899996526911167251255838574526662103896561476009044684924672630889466337138302307396364729177125751812469230254738402604903229917931846772121376218578356049175432203527125580343250330094253120035001928846014634110449781511488762874688585433583904542675309406857484083927827138262117116543360253973115212001862904256491739854697170511710311541965711863607806856252866471992660019746951779707898613931321293653357881043274104479181620200628844102377967158169120674795000066604615633425461585833790412072537398499209864047023259865019462589888801922833108771644940848723574556479002809212762416460630178867625219462344305823512086358550497137199740193093458432323248904369205218169671985489335238795961257713189685837828027980790771040156675564925843662563190832026186075449349163366260607947916503177811942779356502289668653945746069004218424392493859506505243694509361794776651163402533494330359541264904145619874772140776034576952441530791316868913233922309740754027092198668872176173745671126015134640710024610657124155212327240011326016437872230973156990509525065731214559774847176082299236536454751864915829939079472412605716116423163778714231144806000433610556408746694648698936769539658078285065648439373285377797118776406745553182872840159845430649313130917205633074370601427904864884560580288315888210449695310217382986233133735210417585070281892582153417889322379328130490118679406914493461113709230938610584638973758410289238536423529548843996644975372045251668986637057809911159469848367181597735161772117028129011136203542249181482201632618307829897213868522965485220710126974086747259590269460671382002829800186663064645060446295549957368108146914806097224663010927181570199539791949448491690021074931454048763825971829326364238503124430833026301971004470010170547286125034049967921406027752411515227324404002446042652771279435882735179547201625879809971099510007132313809198768493645752708258459606598474922841219086536983480646386220884649839627739083866314738722212381439120567861864518834742505870612448696443512284595667274629763719209650940887842792611518009993971747590080326908943877196851383515409926895059094118985911693658726138298688082286655302696437918395900735039782762330637662927259886668178016427828035023286454114921771932527202874449093746832096345022890748997833979629894073503940608301215272606439274335533417508454511375915999739869403722358198757809760329113031603741027501907037888823720247077205428736983810563893638812508477876787169333783741885407366035372592645217607452710234200584242504931566648576739281201152141738117086902340545419179750284091260592919529388117305345852795357398602798002066615082919703090815748166016671602799839453849716286268376741946894448550426751757365047958030814217986007682675603201624143569300837473412389110888231573295074663480317496958347392412191873262334962912027054783371916684387398581846867697085852192453623918262286323187062009826703092261778542209554688145490965108985153844837721446805856829233181264841483480781130274230977761947897250023996510762211355688062843446124026915480094140871445864765511726020058449021912059686526626388273396834171667056375750834201029448727217540812873371564977212250371675859289672748196930292263155412004471048199009968718902059706549164273440687572715076767006054885039714649495658126031139668044368420744554124916544032745808454892796944529390075378454528417793234468159477870011967837678654697475317944209908271020242297793897204662452850010258926532774843778785895610969463232956572013630470722891669120927291637193421024364972826197004973589911266343942579106177488149489475446757851478903948856031089552988755111583986485720705616924844420909918775360229053903995560234909817219527994306890460975456201469207146411125801378287528589637473896304364089430048604458338507892175011978054998135531952675682510319005716140115371868928388283128546328295455473007131175693368388572583197386277734316222398454349081464549717865424205518089715233376353622283333705231166588499587978995883655022903586242838779414286226652780780537280805483498171104756254034751201921263808202204352507851876073097369081531931435739780184457903501483602075467334832461732529256368520775531424034742522433879555194843283264108698754724734475062964866851717049241602014202216760403494798854849163840221687732641446529202446542238031814804599108781994922388834378127356865371752065681668657562095904824603453777791180437977708959935455967790093924691335522052145459369154610343303812296061282280245725221909825196029566256359121467677763401361443040411627125970414840476310936577678315021965059978147369402143717652048305784770137298793131928998013202566857056894893266257233271888668508297869358430273382559757696625425171617816525369474240230396658013783702738523239030912826167480765606222901313170114968728869337105117364585819967484328682357164372277779431698777498490776074465882183191089686274535664937191531688070676376586509745277735504169034651359309860990671390528395274635112234461705855480789992882269746680297329868552254072786873970172473181189086668941216179878305951779158571053023330179151593179458861938207162974746737803916032826663630479116317301002191019749088670147321369231277198015460521398105444412455685787722214980515203695391617724064742202603286379915620310662802841824298405908247458186221991142310021746812937460251143072941297378510160211620193060503058501825384500453296370901349735016703367179406407118222692093129853190086963332477187787026544468338059385124153244942752077973039063866896789520711631133881300932778356088183612163719945762544722457207285235307430742434971345104740728522387448327216145154484949070237079196002352231341943160313955885552445694197798946944577918061378696454125785814732237807106662693669207831767571723222063483777033526805045376541814969737341954812599896178392648879947966974429532696784956163799743406967463223339673518483173256687362978826126816674609492971547879006795296202255254212639865743093922335530121733646312571815205580946913675071773148021959684841605971890299268606251897363103788778505452463830846163257606041298955422332173584636567223597250912179947630427777606138604480426296168931294119058050671947989001250272369451262142221903433738081957477408592369517884658123986914928383969562571554757404897185364906997287381693364603445089997464648143986480826482634334473042467921811239140509342673757494603158957258048935538824083120031512426670325081377330560753388183892314952071315645228632201632112647362895879263497206197004648330871929805092700647786104800384822500116516166486737281455575150155928758777407546528138911683839601537031562098692136135136220365699975789612373869145926208868492190262914380617912885023392305371464573311852869697487159479053952385077740325766521047810633285371253465843498534293729841034826642412118496124845713008952516954372802121402795605804683073528891995213569652570769743655464850359976164682620780136287769238236582120122666074563896695482368977253181694628563091741759759011000433068687728784212526321304076343257136426317920552703312272471813831066761699260007699040967165580440566176184389382121406017921742171350695895173264849128134333630147341872594684719278486866676939275902476862827841745482959490033021174134876008065504703451772999647744190410342657664585606448269803941909921586196140370425040111634467885860993673799545967016972342042573418814297676261103590177220372448325243445581460449744681441602372856058460749859486338894125348026417339995465846514362379513887221312418321933125430625709724633070253563388866427087225843323648455159737122901716262436813514290131764919513548246439481613823004688783305368717075620426774870705240316503149118291704431321076218671490558563908218471155813245434702907496620821130361226722897409804324840071189247291752175264311821674026638350342865719360711911100429948049827063165026384677837569407197695622320922302335846890012855620208527068327951334495281883463002864618740846817548549045031855430152205355295466175732646395652035161760923549264235047634086058133393864620082299409273129501148823207052275142268596665184697308429845798316599873333345882613997435081490887917509938541258082690409147689414678473547580971824911104088630142093494172000718315864057956732812044081339242774414979974248133958490462024458912698729901581112419245313193444323590395620138487289320406972966082170950414919491311412630951573369486065637660570053904697172129170484206037215256051530574862733178074838578469969986983160940820259009452270034625769220827151907384625188768735906027390508010356984079635182493007903517815373204122906308588429862191331783218840468820629759589945154353072015054125130664470348187623206708049744249732107341097189821759453575663431896978312743363267703788540120678349651584458764047647284358040276698427523088335520915590649489485758923056740151661554359004123750530752780627665688062751891783499487550402515345442027739948515724524124105790081179499012445358000366265331390116643502020097251809220108250283836419342165011647176488195441344821967787090317544088044889647738844458137485100470493858833051070524855769883481507818731298450862471370192080204239035933048379659626317556753149426488286412776031322191854185614328443491129382701460859992676448517656614556089772101239584746195262207782936480155365599468657273239922393531106496118736752987032902870693633229999894739302842817138179263317973923208978738095905453370652103874264974052522911329388104815903914923585015577825376037383151250441006995163225481252146010558174692290218964552382515922283269048593441826212340838077629612806692260591654239411484202050794537577593137788459690646507295474108794161286300265106656763734454143868249340833846432032175650551528621622104263348408780911743748686748163495910562107956068277030829881153313075730475213338654052942689440166167880080005117617631869038555454797317022164976135186100117505583775566817979494862170010777239669424522167510072819020589420805507134226299864432423231956307488516689003550007444224877836700243098461732963405238430763939237731493477518677236879155846625490493942046393033898207358042160443309254380291751590253748053837658884452600074074443328528923176616661761303062863859982267835118992745628276194819476951379552748038907037656533177078856093106457470422694131030439327142313958918164732756374488676597125603891789453704871591936144699610860778013252529484011440752951036555046482456884987733407702117882225096727311821190274135187861226921032902511723240044220085291849089393850378901133413274721317310162310496804986946721670550680805585552531281850849547173733428899200295660994991845260528685233073907619663992130253133635259346948633846357776478399179243600409418679483066855205590906378861832099198356176223487020716528512698723914895132307695916093172871647794396185974398012342276513866494158089335865734959759457581752993904748754860587175097420405919856991697136569051910162724009783482270037963741854188421777855651268041826726357747034195378112046516845833830273863907413282786503632985945237998264438784762180641926362841739337544057603571610313983647521312710515251433839560023968286605228334210617007401272726689361622008231986477342701031370676324729900317701595493622496841574327426373858046208808139382224391319121614105418813572009998582745777419342575775890268603551868397514684530274153257945936635294047220545370653682674334362023893371108157626282980091138264062395130079727691600811405849089326411850895994795390242913420887561576256239679335169283368848388351902680207262292539337967394178691101234746804365731926022633006511366445390339804637498673219571874834763473959364075497655371505107598337496790050513792845593741194924105897589079782753489550071318114533092310356906486367505495666104945153925644569442703836032226397982389671823390435271747602489832218729155576903568065170876698810178627191255300006918982337477720467955458430890139052198732224110780387899838407761756524000168589453086514371887614943819743643363088370975651574220214756354375552895935453682886358093796823273909217419758330228404035801081280403097202231060925418635074196568111193693931204710406396096462816438909643745464047141805824522166830118329051273517343678842075130378420635121444038389909747537074448405035159228354635688162987324733678708284077016113879704353319065770549029165638612841847474243690285799848489484098207318659565584430099806404189245977447760985636805188936197018351141747260974277295823304064725396264116199198967700387944969804576582298629627315971447817779390999160588485004351382699939900861975559102712418253027822292627117480715625580616248123123751540341627829829010143138202393301723342195924585045426766071052840893760698073156905980949209957261586696083513810756641857145269170778358106808193874556722565370850525347762386454839189341574088310641642915178549693291117954864606213402959698315280743827658883080597614136375548541164128022403636372141053343405857881708750925515923798254495524449307328826538524759502509186662218375987475295504318506986779390919106204024357370233948446602274319427111118783132545694483458568647349335058051297688480837860086515550044438497670622604565179422385755990215736177197871058558837213284923085928552465300840942189484689283170829815920542130320002225424869898400749597235734789272481745239133865424322460812459757829808506958305667046746729549709732348497720601649185289753969895138634580674907213678843439020884047226665090326152075814386653913726708051735482255629097845708435511653267259411143144684415952957135269748766056975043095514550388682124383195103499448739204206414963377374741981482178092525656717755155210696564072447806968781983291789784681696769804434980436932411003553143535292464381794615078031359811033170701778840903378452061649148053736094675581189453462594377830565567044463149876819832950553065961526855043304956908561921192503229750157179338463795821267896476998952988391572876769949775291254898921419068516591145844834313363977406351638876169504621114688528746146293931813031438696057473483454640432168740520467979937822002119151766261141388368043317094035991583760166238629127480957568725763390387273275410446058505368445952894645900915994185287113771925455368197309667484655188599881496116475387401285040377444855696647022113069067956938006042199731773811711317205754390785244572707306527206019050636704311481172327302582764587749045230653216425422412272107370013574040893959043409267642627838331591931885870198155358412087016606819130782800299196091546678844863825096689745522614161766340309653135630100747858023321036917124136286575979733968694974487112632154085696838765358907337039711983266243923071047606711606552338346469462133076444159219675459240422364664147521521733198514933205245836079519595154967300356770036924275774267160822813948726785795901689267899729155201110115640943961103217170630108372560090908506851881031018005002830037407838565376762039236647475819160315791791851115527177507683318493076716920829137270061637341966191459912570878049241397909637088667258491958159416621899934491706511271535495500311525926346130049073930817338046154847845398956852408387745908791964768089134382594955028886453712316317724888467104182404677612491630943321288412453977745243118957418936219083740778804943526670923112141838601865474276770233326693032097995823598355031244558136921733325356294776389552421207593556727843009535043720672651049777557424410300290389429186117254497755126572429088537488967261543013500528942003675867065703475314428445730357369185031057449980223960373018293099938493436780081531543235847767444714592607024851781335440263547190802897910440910274840319617367702413637442687331460392842654222195955205404558474157344044941135406272916460608839046721379633309707159209342572507148149828965353790305010121478604022866979544514951207582750415577100856530099241030022729042234021012720954203256509504381912198900199212164217725992612400660279769525961724730689402042615094595964755040821005731764463645339288746798832043054969425711588776426737422649701692853076262890977846116909697897799793520141712133849316062130807990189677047032875864774214333866662368045698872320602485334357777773874242444534693385500882425468947914052545844696023695553990381382147985154896157713001895863402939983838315547773108173122856956582771512911502258055019610929308732995263536869838791794363080567671456318425508745985946067050216623713330674657289372088266471608636336512313169488230732512025496023225049161613911949098087328487588694116440562091140658536853401076290226448047071949460447270645222215462742245285037271207489487450770322854535892662687593352313029987000325324221630606153774312287294554827086576348518097519758685291638910111859373762273499724416555045058535822490953016084307117556295233545405487580705864725549000303258990299788166385177709474982826894095023190325298047050129345603392691803278846158938627479803933607007748546639219602542626005503739420951798926670668495297450049592855474566144691298943986702193040269468735568809046479847939424952355380937375784160980111364898662243562159545849227827597550458491223780042140476074290981952227261013872065804926254297879691613434089655504322006919263206698073800708036114910864847048007738601366020581772634040348696284434708807890652257864871743316834197821856592590996507230324446659530644926568238630025329886374726323452995442153046782797966138411442477887347354217199767992841435842110641239688215695319536279682229879312902531058838612635889712626404543528578152345105428846373775804586895771616549889479775747283872896061753120162618889526326590976062775198982359292620041301117112294529531838124455386943898797190313410319460588384435246066873675046174149028970195809313484528727295409067506159181097995071160098188531829798885065394129692787090134150197413113211655992805874655106766123932981979472828439229924724159147704423792040036201179936940013270150564431200779089451284910696484184952224661386583595371825163646095319635457532665629858975478936808424044636842560540945358260590356360509243299683361934995010831288432480810718136077542995943158340872720381518136071722870262873509032643796410193243367135702779818277678394227695348411119170758669693664547826273750692380047602034642376872880150846355895729392825673746074607229444953746629296954944722749930924508168548724727303243116170468191900007645312101596329393282659662171865992016055701415377444226988258991433387159010666304564075798104690675355728725817612381781360740519349309826954082270056420116089316283800102762579836123943390225012419766657466100598990941861946095640425145442372507521732645468492531518490782793790135193029098978099337599664354538787898774847065326873605748140552975610898133268098575749345776331580289697752287598752308090278612527577452428450099424949415841427068041651422944996953863290694404534300392064565552973481538696871613689438458844189063629129611573439228663372501442590008269088625768411688352063526028918534616229393375496694734892819081747071091620630908703299516035779113915794034373403116704059386158560168997227415054590267576657102838164490839612792863048659648468362763482097371731199423658834615372191354693257706429917878087028051120121457356581952481496512048749921330710041925890564700909242586100068409929491184351336576195755942117589933666339750642286531543547832204258911941443151556072772327095594306340170125527655520172942443445382649470265064442221173815087657558548832642439042451469979760900313868209862285862620776609442258674364659551993969260944935304892737675518424766381693691699623598177846165404347687980071069303461412201574089475970025785761376323252789067413673055595944333869504007027983421015550256771236673044709021645616962795992685628842643761787150080995371947633171521755610177634357638332711409189809915484108803093140390135624158385498167239154873765888236549481744047572491888856918207580811576971255336667208490695479338261868335576604845569534378868555261282133139804053730957881048728365976091428343207787216599462648324201099463005242578720332299002627802069143847339361212816289478827981027111082184915837114285372689401624148719713125670300519436636904664201149609419992312297240640998379942681598571794583362686275588791882873748253051775040426045591182544008889373472597386149735510022339922095373761156569905848582890988011884244213473818362550930932431738788752204000548966817032408139891378890629149336986363374734943936196983509415354335203675169965447147476011876305468899035723964218153141519361089389059794157904384559333930983159856624189902361325329572982109208641689638365575474093407021444521056127069251734428692706244181563663443033195234249513862473038924458661019506867693787715956736237523735566000679455140968523931575858703525650538957555804830581673092078479034067420387096711611925061620640196474312933055231848504055237982204480935627541873449885445337309085382375657120899691249680312996042892474846751448268433679828652792699793451096931137904022040150070849370593534752521328752381633922512257290543104515117995082968735813627744432623232564541661357085982784349258128794388831040060545334474910297533842877671976380713497398451083559871294796383835796465023373819789863247328727923302761786038383921519953257225425290356962447340280428600413401438756871983901698118161633059001979447062321414962899385440722920563134575094745828062172717407598148345416301275304870203152625320629520648368068624695188766349674705041479135049892305253290670333926757229095338192793065785695221826302578687927948059645515754931009351485950627146666446360194405513124833281619204519346105871202807213711537877686244949704080900872894824682869142779612441090286126581870446127320491530286851133376551387117365852475446353321004362096469036610809685732499492796654167764505578493948989332271163386872878467417160084227040526595837535818680640520932286314320475288391530369594731727785125347176886900961751631009699396344019917551120236972634647227110918695898436472363793974134469207044465078104958556932619819874189989225732596721827801745134229978623193667326964450528373857566147904052985333055333014339514669457832899144606021938268744115741958615724654524458211730518604149920781774803636241062281916124075293688464826584136133977400051871398080401887335411354094844386686635929273590379170359162341962262398329965127572766880374687875332978036580822227043904926899959832828776141969814338127766763398890811400653776160633541895335581120135288518296792378506504989190885568616558156187452236696972905395991514217269099225210295275837991860862654665722143706759709051285599778612503218088066019108763555530692722132274389763972880717883676893287023064087460897979396528869463480315396610592713717606550387067634567395496596474780242192697701827465186419799255750425264199971844096683755871888942386605220810442140987202168592625594251618305338292598322753753225139563361299734489017141259904809556351181113912442366596871113595142137268627572638662755685790433912075221492486497153154607373821967857041035063174643977370718440447893028339053894960896011101503539391446020188830424940323374425196597852943822116515515467351329720747983224858054028009326037761948585991777447098216375792452552699716885572322251458599960405842618703451678984190953505187876618912437989860858963546455405698758580774398369318867029669054318833676697710151480390759732093717952852404634016444628781746176863297944964205485598449306670550828820679657846848349441460262466255094613075048822943217790913929726101494478012824530548038431314436652739454218957686745246959485994410867242929676161891003511326076197340810360464310418852212413948370397450741683728434983319819800667001817526922884869335285639793183851898306830214592418656261621447282709082094805983041542774729375890952916383481796311722214545645261087539888425974905256720063833659136708867788442181491535790614823365568677283801758850636892912601975171447155007550901731836963046999836112391590690719139497288917789300265374502876071501227869979030309376428421321951859460403135329740317410769492907521534842881568923212058054793086952429699715077348390708042248235535462038938164999465734902202010674901614946412910054255209470301975712443425061344756289425547976740330678507712408436547735606080956083726696784509189973587691066505019180109090266352382932367069756727415495108163541245678480204788078532698377289242887676585975120039237289681496820858790574731181154539765358071733397874482495702134165562509436359883443160005882342945534567751769304544378880332348652856425804829162322566344480327905749543574019413527151375766024380402093200641064523769223392133398663996876350194693862148896597212495757559810755898584663122704321187014434235653645127868881375207324848222548133780470225653862217304431758434259103672769172159851378962650203639179852908159703447578187887533411218980647107661819067034837628015520922479331580274540577220840011154855911820271448315704519175248687036402746412107441559228173829444329324433699011875589688408193611152529462566966189012254094283352948526612346518824411658681348457804013456796398338295012754434206606065128670559901608375777763577386948548465309297631869759968479583212172744195057051199386435127150538116224942506345060744583440514535286345572802744073279080982606084062438109310579908971015790403701806414763460748708409370780881735884904120449481267770516642262591562255241520958582461033667929663523024061291032530664434417974629932230018814679795310271702235822341863182381698757386859360539014358266505520430797976217458681595954419112859426129258393705421574789319814412599491475478104067334304339812803642110997778180088768877153553236013485681987209741707432514861471122004017745039368904430886452264927248413069665224420959485660310308806645220490355858913852923331429995129085732681849848741287527077644110456951764067439268677009389544933909099754331168931714659279103415651500508340322959751493999074690063753990947169144428533135584664746525640297791397098445765859595849101335509794809288764294139249355349859962999879518299821876059557816438885777073767292541400737745918956843825145833073692567354744044676728491614923907053853887192448559933008244357125292775775216286426262869311717097196313840929691306757946579832676542963541045297331052968629326606628360874036230413107078739145341723180566130225219591720096818562784526208533854070183667751833030366656853200260608588733493239405495698104742384357024623357298916497441909788105006223559606933043370098167215902805194839901189232927908981067567635847989702716193870165461081524668407112991507310201075920529586005806356512812919784334994938768784590448729170106960128134966676775995874253150314785298550722968936052369926928514426736198441716104338769149425303037374017065002417277120852973655257806992100153603951376770203739873912307341064894135579752911674600048929910472938241514268585248626482934100986251406742143147341474569751573045279695437025740394629572947668265990597520164638238048193383778312402385302009262134301296485390517770553178283196252878278629706913341586283679546076277771721192639452716450535068905485682235051502101508782401263804987193046216352994532841969763628760118792650570083572808213903761420704271048328346585022079693469135049542897436022532342636631665525239085940943453972454825510039136568819789699178239587982477070111374327218273140827325617427064637643604162990968255454299749351859102666969604413699134755636756155912752985028452877007083537515292957416210252023004854200002434283736506492112770064777923154995412462564390477076773483141861120120105791114907589518270812108379133022753337097256579779871156511869952305496816642548230176740361303813876173642252474120700500402181717015205713877389079081937359634598976292211415761169807076903385649478647954819852998090468597513455528044202908161552970861524113531182078295729030066478929442771134941439440548685169170697300295177104882747848924921805202103234195654444716504220311556684426479340578474772296974305219724648217436122744039915421473180805727009801924383410543837514280250134560227747140624921948091383149651826958758361814301794990578643931780964902146210346854528987361005061164445554114175062391154469518519478451650844579739896752253982275771785102672612357601890484190923005382084713798106386906117561436717601588162877314232713758609786163343896315138525562727692778916225769463497161441956648706019852939006704757532898909271267126399689865028998576326909533039291466441525255134545757737909052593809942176863330844478103233894913199397100079122436366614606867762646733764876321679363911226614924691977963891393945501003851431939701500618395040665987822435856499339469502428238334669934197176420361660972491946749282667011280643172215116434590645656385874497757119741799637959465311129430027440962929754687100803434019283054129307403290675453979450462253207925723151149057350969189985054702652785752261733117569952002049260869475926590815472082994314123030893161534413509539134647028803151158511527668439088539739133307576739482692720677530076518369315781478810876556395831617335406544826317530640466096146228173800418343352482217787920581494111139119628847740485673134036286173922290956368567171750526648138990856193709466188749610303691103299164515281100421151119290223956008485897147079739369953885729686624709632160764790477612653825574314917792377093840452930066197607585226176708990791157186933642712003120073330704167337210913215038211683090318328521997071129165030834134655119239569737092227515537703366780141621907961761070510827804149381360030357473920278004800499600479676875483226823037571839219879941805652717524433781325592639064705581973448368854307605219735035808561257602675741285841718549999151576417581786917047325520443963981535713447881932943611923427395103466099133528936024774116787468283220931070952262011365801394915084027458899290287364113769455451300773450019271206357383429515480101790704476161769806681084208234045701326325372718141929177970466704695795901295860734610205228990434360876275473650335912830001044576081701372971356616673677409195597258864699416955386572378805035916993294428642533447622563303233612375845354038075699171869956293850906806552436841972226456041631653647919527154151478315976374467209089662773068604731244141491359402727346845170948599385385085126935121237351727992453938776491437321028451105271614700242839314231103313858670077310532165456873094363934464150034357414393287737865030645091833699954227673773225384042020770271971752655286515140162320747778251105515084305367929694277407616883821089909805143014184348818755080435515005134393382847862067481339841015754671531085729179077286098148427604610709656021440476387237229539630570895429708381409962151491744024816549998918081464806780905441695574876648127094698306770934489510779083172307642389745769160846507243464571413266231722735889374348886022173022919016446297559146138671187651341919620187938940395179008183532235518913654375016954335250787711073659669407116274694679668685106121984230217764230701233329635129168327606484866378309242306978201334629161744376704408608914580985179244617847980716293776532451929140104581075270283293584027763914970427762067019686287322851153968792162988605531490097766645469882878685502007221517010578658265170758121909551444830732866263165806378648565665138026854885462862044717151605687876282505423027389951947279790984042355157670816159570071013133359139158236352615465947042948924899622566300721967146710818227282983746527120335250278836470965424075715197430426436594730572029225646807259502403697744473550206520354602074060792472010754064311450809897558420300970912724848247547839000060422797639388077003368280069112052672989591872964626076348461620749436326741806321599156147389238615898566454680912152933737686421556183818413943186901732353883540183992418541903105621264641927784599074875772520110524684369791535842426231646846930600405220348773505384729622277394944499578820916510447630076190923698499408835979676680653827742358898637822983614834954487168455727320031321156608575104581974638089829063852421323208916980891862972888182413296234705772979937925109971200831669393099855559917195624422936606395880956795619484100979209051050224715052762301971617689295128796952907663051014057253626824716154291948796472642980456038903079280887232759136552004112221536602476095833699434499788109332656853145315796067473757683762586506555969573742102578623262882939302304271794481786947660084474627310657378315184867996681404463536553256020139402330067444611030680677456423441360102740238444886183134149626281498938481499437414008102074968062277453994659987304810434812756395843814654910998719490846366806230220822003734953212190323221576188752301787112167719195659604356473247249285026758205885586965174967900485584277439260626078098416192451249227151042999693119717663231131036481358811861976162521311143005297673936482417075663381321942281945927631501904473343274105024031853381393705844141628576505904968177340989386238211582442969462954192453261284508776891319727007693237815111845961981519859349999621044174724011629595822574575913009906287865361126837130882156009973372741699453175598306232097806456233742518708320998609542201376377926097654521110569409116219183301625646681773953424543121739049019888709746824360751011695634023461561951927088285756973094470623877417155451017306835787890513191224094381567838923679358673093082647281319353505379622730081115780019700422857668204896375721977459442796783806925858241998570546770017491732138031844893910343764805220359743448196435427475945066302752303512375215355144744148286174824916908015244313028236777674755247303890391496916744291761223798525597920047100745364701535215905857297510572395104320328833660171314353084641893064447647049951992947027431531406535966512328123182810339488523751531490857594421783642150059810144238030549674350708411350986301037118999665283948994419332953987680305063922122873501046373167491171976292492204021823653597634514594669743504238416581813796910363688936903509487405847330663965928446134264233461885040543200061295698744704035370968861022446404325236730649406071252878871627538672384591752790423220333174230306890644720438180741627684350741505429528504170099662995696323364864045568296890284794863313873863805682219585871855295062341304064515579394036038692630161725519365875195844380528090321590698747608748789110052406953221753756224627115790157748134578210414966550124883705382234282414252444612207011339506505242624583322834168599553818812823237814178897590143755807470533682148255356463839568324311492956834044427049002510482099017288642079202209223206781512239626607874714372457717043340007075501719675891280750750633092330049671499566077788928673705887522478708219833981611884683718147540559760651054968043512597559942897809156914710148978381983876411852523015364230959133108132770120168814487765890587269590166298522265878122267669799734562019470742519755070678498984121572576409357382080821341859952180382525057800218787665987126872342895625234392224931797731099851905001021695292768094030168017558240738628389605873926129372930806821615757353164608097081162782113022057181361288198036517434682800960208892344429622826456919721956870661155065796224817619978142064064649923462060882932463802275776873582507758929018851749078498931737115099043441837532425413681053993068814004496392146546849610140406196740737227132836159159702004179789890038834280546955284134011760039551810875932159383528332114444855287136292842342639765779271612516173315610509052632676590730008250037209579238254776327251749259109730632629532478882613334160976974471070141354466006305980690416577331559832832462607894775847337055160041970936787859966438889500036872465717259120074100289672043728069909205480776262539463077269176749181709145429719754128806120441770395098772170928893003752766370506912075172398920092748220541203865797223521348828023200261078774453884776718167308467969864281171358490925414015665624680186705039068053666476899538687550690839604118788530775097827570354595518352622650247750898837565119704359376948630782435877814968551348701962153101843151445038020876508718657384605016998119311467852465359051003806793013015772884230264302774281807038091525580094904880320963131750256826076507914973422172012756220406428472885358757580177150113188910130842693116742774225219541042498945420580085775894738606470973856201907983032323182710857036471794388185881550332284650766238858928525999733237520739885057379882879932999522636103706270736614074070913097466051165024048564727729686783206174430325429034807298179168614304682207443419225553458257717323973972103998517204074616066279418312750730280739664913211956912457128097049934952797533800514677081256385772168097052435964379648733307281914663801666525888906843662660101143051885342347200992688636117319133893714365394815102445104531482240207983187227109589155520401149322253197803596864144380160811322567959319649434077590946474953618813440343651862839476499938200607849404932262368598636406686791063502950213577656508189376063453467999719081566882680725714746938714417024172463511391234570865581168447764015967360647709203628482428901635672363520946947887220387560733451399590819888903599659376041395893110361981045547611964023402931706339374750275470306970534499694087830074335561636487269951232864623554278892930353099546872433627667537997508070850063504969539208910503009595184257690422272498367822571456542249470894285761568477851892596699052106526560770206018592451712480095823350831387932791505030097027742029542671213250838855886943215285817762948726019723340806618680990156776016177665716623422877370556344503242982505304476992130043324033942420737378470499047982467610083573913568315304196760606053773686614838464389024060164239095291883556362505172237577150044260653868411692129024302476458793021423456840406196297411580114695759455865785038378500570642476460964939176705808989298325754678383586054146692417987271773809070479862473938399155775360222127854568478349522671724052712689441671149785964865348293676923949762149028783089104967536417420406526261629249233270928997886736314395230658415099714158510133685552519060246635987768929528391405981699774290384570312016400391282695090354209900707560128129600944914120139529428826495562413586281233987446555751890161788242264400910300816422309765973054216150141339303165523349176260845362670137353679719520304981307323071404809636595810197595367098688636569114829649543505585968669558191406037106432535361188371098881852282110973498211738466737954194809646149726788233846784893919093408894580384512191739046284374247995916147443202623780528269688965074568102609370877586545417389392359602337727071795184019902363455402831857957447235146735072003576650474721014515135614927362105136943923025531996565754512070687187485636240022180785996205044128192143801839654445143483744191078738190070264441023086898521412731415895742552539502978227671972826014291743164177720842796426096009536791708963505403444927222574566466059219456299230672865718512462276018673597075902525510094180494427237633623251855391450638746530224961687747134209277533732628239638061202252134676971416756153260424022728900156261735922367979179151313103451908545060638241280402244345595503637316705741551461337922495717886523249444388242646303140946717885212344515347627394994357201035288506413451481189995803630837393943780243578768248049323416888293673522244876320313346910454268035868557120496800512328052146729393183955841681194167967526006908017179103532758396187602886639672525828838945175831513086521723485237005404402690219825807961894145006648737373793891795402982397125154867245415145193986267824565121090252833022632039852883994521408038608458586644250470913918808142814555892848748180284077471356457443835650446637779634734658258405944751362383254930766896116340033700816063260362616822246007686502089120409759943462450116467045418486240361644106911145198896098551414490906053039098686986748625427982449401760493165817498041159010513892147352628812989204938078323402107569930383960545931267204968081045954744524432658243271062757400235283329944540755652213585321853054989316426385296607622764291379150107251119366103535070701877156889607394062114254445338990316154384137737498917851667242618237430483286697098999649021591039845626026220054424423429950399364522752545560959577132711991938974734623234897472470767054917700708174779887633991032961511833350403763206290920004728429417755192010173482725816127628943582724778652138373618510442012771485029829432008531038288715545726375341625588908807868140311818617504672300821080095317167259092445086653915472170474193483274421399677802211745414698656065616337655626087728222299934616191755057678037390732985957660746371780934911352647297325392695314912719279755384122970520198998145213243633557338448010326105857920740405235326813091686019150915718595412768338850601459607087007124127188794949484451189779105499968688353005364549047611527954853561166853331516442280348242482827579072306980804160007129136562310319878409261063658059368734432080885405484317002608105546853203070804647074106915602397926490780187109034797343255725588913458244959474577337158365934219656346874103492320162512295861968878054607967174471580349529087444519226570483646536728771441037395412975241305566331545059814703177727838442549256153715730346077958734689869873016223885893056315856166180954953072646961253998340418282845409404403055625663818647705525897608125169752715819073786964801381426391448305264119223387774777033729769116636531544062330191595421221624606841688795270690055839051768643831667972152720035969139613112148859877665904321494138998976233402358010624396156576019051612993065026514588715893307272166720641111657705927441560512096805741343443290091801905986694554055573878151336168644385014549709449565625362936652496427304371934804319551274466041668205778125584889727390872026281732114181507966816276767057954015830309354742029333365348107658526039299759224022191802063771966349911628491169612700094402701051036826001820770035127537970269553302742037276644656814688205284902564555224411483795576498434689610132491946923096982892638357060967588792255470555402242373284806074407481820208795039853984749118704406964509344396915456504307902711996159215103377888880347763785892893738869919383150511387399373351493287443614969957966770444731450588638280923616578415768678869761113193577462658339558906548441418553030112011839075782419639123664756189561294034769644345682123642365967781155354732299882119648625109152648140275521590094164831994020100699317093429170698250877706887768484987818288208056785411241016439678403336261813142008108874184953770118102498023528470306851142336136276285713893245253239187080059040013860010401519116285130083113219006781327025361097759982990839577639104970564303646658688930416483639849520040384565236000600016233341533248622177998717394655666808749444568529302614897340565132832061329413629520871382244764208257579303179144059112549198745695513573019423521608407409142415226291766719670588338972451331619190597284624032141561911832210040634255777392217420129678113808158764070406135402914536615163091658583005268434027314330590980344304712860171632552066614995202630018624364099061292929601674176850953184926125545583000067552204309990335119535565575670173696529588559510712475081760326348130691538013994488600244842849736398915018386587995647712028036309885910449295513110297801447395122274379246641017914226963464898594201205916364863429567018984353774702600739807939586108554682300302550520719020225368714122984109725893454080180081953573531753790613937625379532354482991117248322534820200179800132823074677885352890036362927577429938417020789905711426604516942415760585201382639067811262891158409383441485923718670330013344311240694476636051683591816353835564396182712698031496415826682022265740729226895734204852776126423675742275372976960525441049185115845202400114596880171682452496256849705601051913880859534456552768588484301535835051490731765820842991655330420038060019105803930717455363065536038508478039355830669856933007473255357376789929292019146078034039468645194855078297866061599621842654065216780188480418960520523091795556671335928232378260579170171219384035500040365991866224579888782397996344500271584198909108961503181905747881763912737121432223261365074037173292471344270240252837469239476284673895848557053942819653048855346332254181990603090046859168682869218515957000536668037871876652469777610903577515913810208126055857423526218868995731399360772124646327023010571262006061056243586591849207942822166682805270866481515982510381655769071805499376340978650679513268483514342186570475316378405949285793306010844576820994557791672628381809145988689730689410882917238251441335804027227663002752647958939832059516729643553196491267855125137461238335121785976934204333611858896102254612274280554066610633225639985819076954685605086928129296290250358440364977004194520764381778581571588235403913511370227079025664901161360045262162624252337703056594060725586191399236211178093637441643082250614900605990231038156972505955715804180392279801654307453649857566110159502314847289766943586025888028162752020200571364275802936519405981431310967288007665503010663414213724103913188749098080397570621758914742061099230144130243276023168894209246931268325811144963671359094746967202859197029625983454191284602427169316891039758256919435304585375502077549146880928453587583881958763909104081708559757896176552292239670174636770937976994707671340337195621182767276033878157955949485687593369030474658587961964647273065425531049634054489194917907246786039204556719214670219289778747442863543644456080885709710222694793902647757023003605439078143432207312455386187941507985168287466559168035068538238494496080077076354172132089423070623712870513421838908049186392112608328745060060076280451323980981903944606725014832247231711455663267105229141532881465170993965802578545052984829382265720718092759213682912584531576590316576232217120867340583588659561263465528561948669908258216298355306488839163407115195187255845684634623266963626222698697002758068830032478658368664242256584000687965608689608062010871230895127631985618031035886252457889354443133778996886256129594224687415640186886829036115651320227037299406137026665286057437266572394613942052629807585050766745862305522180001346690464753346080695696068873992083564140438509292850790488763959603608516317406270961570472276950449497925894803008861302173288144156025014887947994954247983868919030985331837196213672719959750781879955607490768865438097403893356805843215906996976694150499678309911461954723455203717899146051404219343689203182201911472589741263653341682619669438105127967395544263313150274060136970440432445458965839984981284754567943602307710981636788502759849436385085154474243572630902222501495078130503262865100737538868324026986621544797713536901074863257534535957612078219274216087775727267399259089773255013255104723575260388906121058688970642804055022662688837661580647673543519600268006269001210325982358570119386420559922434105491765681813418865337840963298824472597993830937655367867203857413453478006748014380976364066872174198546398356481281100198908192206626097684441578669286616490324451169114433797839636450419215005114159622192297764656079203731044079126700774532860793678037084339088702720704898590728492589983665445568524255959841568907296479364880047532374504309190805274495863111222203113641026048356148364299925138850067627107887955935471672906279193833314168426949410740464855674197294878087375761326709113735690592682565207384349714409595696425658016597410451970220187849086030791712617339789205380041772923604157971243962026542654444577795878291826076694758660222569834480083564691160265551800281911564481201216414390199495773516814971009372808626453435662797878021448209838028887803370600839870625321753953075388618165675131046049482664483326041948042132314252675639566307746761122232244138137839530302534734849901725369970741045577991955340140122617822538369591079944780888935086414958723765324060382800054959703671123032413990895634199853337213721125139177137744159465348016205898664597896278971596483558737877994042613560085158845070743732596155251726865744758508098808922551334831363559157749325510892004227703033915798390045499467158292500627252601155667453946653261290981816736157267581454837217118205135598866405304285478411038363869717304290144862587549315334846299655262490568085914564036675224781423983370290665753343041613565920622627824866222298320409449367163148902309539030001288572371071062668090237151908317868497186558629455812233031405252546120303753641779767891655789779527271948858937437869391147730899745106103220347360267042882985856031054539560304915658786366148578001569144242383932530676709485446726860265121948633821914630423799759127257330850090459722153585509004969600575868893345943155351918760143679154402335502876951822925498012070747343424732323833797640154577518312239489920954857359143857592998103025056883781069730133573137187325716891868860583223681468035628105381843322781312192863533540100088476524733693200547857797503788726750025616148287401754416021371716498047078704175398993897845378436967458914172448847137677080860312126112871692698003918825031129445679621745405522412383829819080039255427679037672256932136443147162196658491621602770120096055822420837323952761126231425924955367778294195720703999421065582954775322301907235924744668675368622276042250285388520492277822527889171847683771584139793751047956734824527013967222583337165849035271351603960465671877246048886447123339189029212621990999962624938205233268745939601988731435778740699248453602365036818479134835887313598315089751119984230708685249638576975264057345851343835670022479662530764530558885068826920514226903594192410136296347059513712293286769680596331008555593974988400218270864904638942747306250350379303370453666253869165567691502102628298553430405239050196076125051017195871811348705924935822507012290729310252411444739641317045097234283541477880424266536290230121797822418028019048974504769983339868211580958029530277144607170376206116879019176643195745981566490196776346103570594035523259221217518659759017846845809196157092817017551189076725186243934392249216842037882177087803712482376097952086422551613730218342965326145889469050851761166284584718137406855067127676312065817332609684406320270989123370758190649758738969512693391277016940407197944498038673610403719704816588611412313221224914570450920984332325365347470750253402996430342371754434164247630220778627658826038670147261239288264584475013570761861022042595569935509437697201966147926755037237691478756814875842287805360638114265476152739774644097947886753036508007995646641933677920222681323744158909228298708195964048827149342202683948296635085099223346470704152701350776912917757861663838607691392142186479333415664506577206528605185604802443662601969642656576481817523899025099254834195800569642546522720552741130899764731245887562078925596792662647561119824346809682844437424663261857854204035638283672967833845811703781924013850732491872412463608244709826660280528938315006406050323095310107475665040834657165920496955568666682838375528476277262401163172713448031362973036643893051092315984006144666202462522842523701211634370369638285428957850992583923127241978509704315530911162156987987349334807665841876178623345577647163092131378576853712893783751023443578394329687302321695618417486286017142245183026693708717001700570342495840593814459297860329816033334397989025306481042942075740713426050692865932608063188705926255819551485900460942745562381966433214950317867560461075686198453278572001610825486741193664766598305258038441855269689737765020645735592315345208682326345545244824998241684264472409395633405066818028542365117193565909433432033133078830751586551592868485130408080634328599085436470063809200787597502005770970340616100449461091664631343396227438360792501703788732161292365891016094571093141094676477566393951096438178699188136141778281780610035815554251882469655971161210485997099724693523615875247747691669310390626249070066268973364048866147697785631985025821299722606090892047240496363458335383172192560231309687255374711431262659700961324314934753070278706863146897456341839624091349544381818483440279468141867208895261642958138630956096016945449602629957103689101689932942984191853808731986241519383382039096562956105102869844180526548889856838764500616753592032007988823731459365826015372775210127804666017538170877686903305236326859532269965667039308104449575342235996124010042688278465928323489451773575177295144734019777701008241208550634684578691617293395835283128070408466845052400539659190387509613291520024495183262536897668839542558013330344183364161849628310769639632756973486184929496578442859404038134387143224825688359609394461994443154475564183210912830242273619418261224576389904744554942873461422530354901730878663328302424127514924379102525549900095074707283093182531602636311296448642259363181556380901720385982328040217373852777577357352270903681570772357674599915305965958067063779467105257169714804506445723538454894987241966268011953462571702491656394546276684234207457218109738271032912283319214486634852389640456333563749134228516115783215422114008238804957241086247215610041631347902279044187954753160397269600825845528078112089346887839711830350126756236415034167914319041198987768463938303716701855884928087830320409446588588963230833852888190168844325623822709178066116575342231947162983565010329863120418750335599056384747637172205329794891833561211621483885056961776346523487272630405247894565246276815812246344757607545761192253219184690575661503057825026557017362662025787150281388148982757709871040204960900074687484427565377900787755651460298174892504152259240908608335401522987903663914178160717675634235083083678731875425963200707958300653263179116236958636320198971085812082222196638576163839148940920195004285482643877344943524791908738150351666773413200768095499257150468148730587038157086880034585374437627658914133396960052815495050994493592304348490576554512631110483845808036894611763278678542144733526022164892118999237325742122809860130584774272751180046562086057942743206557751692651220966822655476258517864558897578492250236109822426172582004683973046051407302584363297599689223366638094763508979810012724529272022512918920774806045335160269374636370682208154930657786915935146255901026799210717342866304660256388756332806747369176601331200413806878666592564443554572618931307890165647417791328503962428122122301309230037910949610002299860379823565122884178383059968540453704226134153815798764864319424169862284113609718675453061799470158349983730816893537805715067879780165011924918678028506245802121758411414016187893564333702945801203693982670995093295957185273569476260832128127477753245564428063034671433597690472835339129311353129449553103303228699433956807666252483574749343207008333850630325862114898560051991083121599973871576643982237726035743300217874769416795207063263490314734170952243312768945561075193863140390503302851955500938322659430732078500983640305476525464864291801108187302289007220376462377416241396631973116113964079122509073477917274456406079298343205319280425002460079236115482373782907734039855799727291198340836522099087281797523573445135135065367217764565174334789460917390462724129804849570270096735749076866742951009746162471321694352082586062027270852028646953972645200560297337165853694592854544309454126725766054461621013849385628398502431008237917460089652016282629595905721335524730078018375678648763711575654264908124180841762203341349974895532120680897583961439343040263750380112144097834768283237379115465679770164556275409027842168265092890264883659774504811096843167901130022486662106609161511222612263339402184484929696057485891797563768503747622517413608834056569056312295532365301971775387043490664724518651600130499532966167631368354359201733628442825964189574770117476120859652439531601408176666810248538666099955095842344025674729601399921786185107604478849460672874622754003920874954531270841382121827810904984283326571712347254014867745743317090563525233072914323823924624075729643606241991533171533316182513520505607467390663193538685911638039630081190048731070939117446940597490036073061603880195742132122479475987611603573409329774914235085555642415402197297537964724410116733072634981830056895887497460810451354750584563471535079405902564515280303219754239089610283481246492415520399029579546947306408684046607013795564139130107204409560984946474213374650574854393237020628120589488400433339934537009418417322516213117186257548433302591814101794638771819606705173472932429261400499573213050995516022951702081872387676134201545099704800431104265297927087747194175008782126716567804133545425081271592904195517365532395956615289230378053538742863165376649270558268183089022098880367177072394616496913419831020719338452333742589445507210159623606671124187602559108484925969635492347970669150182715681670430832931492804904954711803065447857666882404974370712366480642027468610910304018023848735196185641090321301080452070832859463329577774848319349781344592267756886400160572764610288636743713917266731860153258520820298137586626307939118722002536823203220411400080351571293345112685469314451777365967472919946394230218660906891189512857722882341665371301415402482649955907865884091585140322027614685738271601911575408847028815610357598503304758307304713331744942773607589597310111480288806495898672037602478320534755644534522373772764225786499365624765852223759386853523541945418602089560116841043330621168120366059882432911675236922782383147671035559416360184020251193075578244320979876621495346872606225918948999533335573172431703974205893522619467342857222838242201678835776858422434267101079037297782229820505242492334432312411463897171005217954691947168281570086472008601139186816438592200909208626200959142984869552708427606107322531281476087745264027809641487579005527663533457219509473307656582255464094876807359069333588532664773623882971020247166884129870546605407422483582718615814470931861314232546248026686799849750492020634328594353743513502750321405338319040626509095347390088331575285083129761714318708911363279957134196123372229508744975493515214955651441524250705905314366837547382297989377276490677027895884341608023674869841321222994210805547208345957246791110765161560271507310678346944999320740093376988167884836673606436533959087535200809197614262285849529475197392160780778818165355387632728506683779145878861004324814700057721412386229514399754471213226880527319373341440409921328616181128309313216883538605959846110725395416428828827616139912185535697000550881555481163438526877980471101423773914211003398576497352738612713313346864900730971980793770126601825733512747378491010930635831265318043019220801493142203975749135419706205154683464945378136980415905233721121005876576220865006092095363970430951007473076627158636984629526685047685152049780960625704687326909156139993867773812940383094006104498154108519526118034914150784038071048007259661112714035966479381762895216241917021040500574400980927898278299605948780139407455413441001180304450404333466214388601156442111826638044997442161474675012882369142949564413811090376981308679692744131378112496430990161492041109814166873576871293441526979615699669261465276619027644716269252785099457333362095715243667031721543072911008953909187505060882726779303229871700120802756330188523507258257170765986292326069913945897805630233588490290652433626351665529619595413744398895118510101450473076483781040932050032023956141979858559521505769383379952937286450469712690651596898528217279991584732876770365882239341636264209534738308210365519882389761145798802126219661136451751286390974960958204618150688578778850348282405959965511696397915485538870670510231506739944270246046923303476236438943359851176300214868832137293405045115704890211790383181030404228467551103586350144178878797001606654712928416249249161166730812560934980410394311281127820451648218219209748940928050093669870993695253411696699284360803750429851460699305950291629769449013544852357519016805612866374890544613982196508437127184013578912640921818718038687230083699708696309350011810842666459710775932817862407707627145069341570698159506695682351668159298489856874349219027960004545045781791763512556799125690141588068356639310594425952672326540616700973299047656177937505955364341101075194348635027985186052607350917761803981076447889088554788108120663172534449831515506606461558294021964427075315340402460708338783872421319951243267642448857142946630327651559223322866499670626258683455117853467389346126994926683950623664513651335372634423506120397748685969282192762591248450046400049500705155061977061172318071571443431857918192481471597915282137392942217471916834414657563045439207706737573716039328636856128097775794585963164186990812523340688651803531721393011727480166018721593002032615550620552580182582993874681390640634472980833033970126829410810782424890581101467865651936058162998558243769929582035649794297983674449614988124860857120022776280656894836554519616388821729664060664545342081166146867099412773492221518652090254976779615647492277351730492885434944070059752392224042568062048841181351432881874836360107474264818436052012921481470402920433815112901259714379320647377062508823934612830147724124240296508821242977367573230094783333804366624031941821942705994315112135289090095872034185140056980961297542365949135439288564430544243345258630866740485276204947073438221100755466274786167099452189816143638878929170889181563346771290726351426438007644105079922171897083838480157642098105964173997116326250127792384930188627981867796970797281090280569180034416378062031255313365098999078266895318218072747149024532656897350828734954689354290152349193918751169687386380514587850839548819510102242418185147433815373665644632464649481550596578174948963634853782508922190697935147727014984386707570583159776020621557791543174932526810678279045169196030563863905720223758768605749077101746590597277224895381208778442331697314330289059625307884435772533638624054406609116475119078854965777184355341177990588605871623132140107557875861915989505278318308789047611218526315535312071068420593812654567933485149740989483627002319224549802258078261807416017621021563028997356993542998436725593297899438275470822628422995617797390390298178612979082908927187170281020822712257632286719172280981243572275672598736650457303889460757512535972555826390202072229384608502706641677264777238967404161435985389202310103686215378560688247925128161973506804214838697285504661845477596552218899245391482722230112763289177969965629665495837491515361001419318264542465119847648163600615031400145298270645067408149041012668276499335298339626730181298222305091581598416764667478355765149399601783502155830521108244362373733670430337069239481424589781611168121535031325159705748174592422979153210490187660646087140321493292327449812540891151099289516237820338410212636161390844173359191577041827204186844259328103753879824066392794623971166421400237235092452434489672002195176874015549514484796277869952118820873513655082386076849522973384543088740245610140926385786110107376717891182748019976536153073330438411280877038668779592555648818189098189060126156684140063242869459386556132274455808482273839173631491217663359748435928277188166822124338629342296693891085603586916573510545385112317073058586482633657194652495872286316873458745727215680267658267806317733627358541758989987330223166672931210817683830732101636394485523717423261076362130273774877454042809815294599345515813093950568518655244446498487475497122602868957884709161925921159743898075312979191809262535748998050040903918530665476097352248238291276014661825624021215605092371370097229364660810330179115007741345220925413547523535087271044795313487314830665289062698607984868623254315733007958187404669159049064655616934216764712646080852286294611553542337906548073507810943706549031207370492539149537049146108003743322389141202782398659125208307311985041793584021161046726719355927524069337366563258293801536917722969650952053907449711198512398531813899590937124142786991924347591308886732476081177776254165783750156950901096050511705630174170111592818665915993350767465600144007764335272979384651038884067663222558893943293104644338094005355572670292966031056065710373937299085729698171463613191976531687697108914178979410836463722290779377102254659341297822699153865803903034670715088193597374768761459389898644763936286898319075380095122667127880630568446734916346986894278097878005765144648759439379655707898777185589306065228373898719957686892807005407215868635293533535475124266722106983395151668517022366355809332725319439698073316133836580592741139823895894025263044126067521361363572896625711554559841231487687174149354995599835488425274091311275180720982720480033897440277152912674203406120470146618188062482082529911745851816583497809892191745531246796393380216060970490698418770364798396737030739121437921307356067268811845524342909211374112675852119684701409854398950330071443938955912924408256395371430973463133169680463111662328832925451325802983243477492208418539486464135764421206554786125081776030627617644967230424211794138504279606248680219872130406343524893519785238836265772353299561024822621240324844223044923107924891048136555487903496014151728659897171619749534245563407839245345955277675421950558951716333435640506525538720094991842190410300141715475194321098465829770974326918219295714108950932601820507391825861699342529754440925910915475697200029222355303001550081307515205076110413664190154994928412310836146902111946533850454007438101960257530348745570699899340341646213002687562632446764898411536635697821674497722796073497726621646119061262081205564683467011747741133304605260690865233132410590239285156468637439947996115759997935094197675739761587571792875452314478863406747701960301825925482937410410389617895788057835960205150356537062547963207934163534662401568496859382940406169204113364158995027105831204823666059623465909726683689509436842214807635204968209121872070540676133623252478907178989079438725912514740025856254600999110588828120805884885528289845932704545174523510937503754617082242889392166190633940834215729014905035309507964125381417719947356130357512243927756452930064566577490411702348882649354812689175044613633515275781054847274609106378950715997181982044839037764436316311236113273813159417121863543386443659320483726960724633868780740679056778499534837908187663960232960333738202775530330669111835725794285916243920560023229070791032265503402686779356954349249545966681635497642065383181595459527732292342413471440156013768193708743378112915774059067040484178161682735072026430766323927660926765362744136493109725596745883672844264589470169616950086612707953725461368322190377612472754172100569209012884474340294224279945952084105444034197011048281540973520309517951700391244391612217648043166477761563050426222279893197495308894288130150652545548671279478335956090454708751617858081931236870556729504228122205444944779478639897966408261366751310372529095544939713638348033162093564327680130831885965842056011272594024166526359591092793838790157722644161071151524677659211250945184476217171190645300858297341489534313544275489869190016445939371235168759285482306359936276513485802698852661678594744304193220803008775200245107140528633275526740610792933228911855909153136493568322946526641977122724814451423004327529990578481053751700257508512312446334221313814476652845979978080823995087533653084781074763736707322493480356166011662648920212534539251154124686777776483893442205569984903474805765993937825512739747306526236391768317729247152612413169943160564708643680346159729332789022283943934276549014743708874692868856401017493777094995977672294243965668233320001480316017856017694116040192372439706690450034643947131466845810259571824409150056049172359112349296827812605265164636649974140241678473310376621225830622125675542782055693866295751911689337133274398182916194335117829378514859418350593512549507445872016319346286382058698948370679496800668024691241846776672528129022371211885938218614152228317638958818184262126059266748067066277897220461339288492157184464677609549549432876175377369905805219698072851237356049137671833148289768195352952833500457600110206755176013682762191316777869684211297470877373096198551930652895109900455272926781157691582341396565211206659811295877706775909422741154166928872804003404980583268115362347591397079908485309589578100053191934102117857549978130006189232961566963295149993746845359408048672590146036281975112952145018407263509407041737508010670080938939804483974111601362135690424817549777064877211806933264099843634762090904931014831018455492861822531338970261387021346662870825714753771554107589611338980228258315896435656196840660080056167823947872834990385721494915455944225618587082624283160011392142292607544823041351327613377050720005177103791913938577744338804838760658957360050961265007031554055911579685666415785096227623680020555612897184245079021316613322119086474666126020999303133997483627135816167009988554163147281945175761780676546692967847175687100436763363038416063785777363699885268822712846552813040970599376528599656194718003359695733215758567309747268110610830654723563524861486838651878847797851845212570537676532411793782991183552175568513143308749073696769067475285981717084317255438426167394034964330817891608541169969879740170120444798134982534126535526562144052135683742704744577619265458212171598580545693235857249844406217015407321497066964549856329529551303161874193974656354812881093570716577372190357227523983505266890447143353752171810922537432105380933316103008055718529912417246223851496070395965285152720369393216102579914649980317632524766548777658398413738010593049927898330104871988797790577053700183423061387874550997942404244294761282074159725125277607792888565925338359197522892580516296701973310848207010079305449048948114515258227805062749889515067971118525971861759165899342392551868845997713431940204829989460773065422396382865888812150592269843286954739971125173451695906825546953361408037302768448262824391932562493474562564484382228167642703237028713699188615642484759512654965734024195526229963263335596385739001129997649083724729965228964845807002391037268597411930203617573665399802075672971161086807092533861612208357779413472534278770203058697392328758117108816535051600842498959428546026746937425153208460246995374516499271133783163461987924248598409451535652932412329223322058060918734510877510515699335321910873558564656253361971193592709051164515750236552449025092123415521716041456234644019729452423997954287132251144375736171719485511073862267899146626492308639655857111775368481983543032820747061627432667029919845886823724217271239863249366211067771707870848592511810502581306846363771513798765263348973754017187090192415486989336307457218118835998551133466132837346112469169531350346808424264181532862416615017792941590131594062776174712521601274471874894218144494551696979084391116606064955344983998413544579780538388076254238869585886554326144694705161733028872212269099770626452039066461599510121138282627660831484616630885338725701765190764085081242160698717198083911375468048150199148319281742407652529306059594541835581512229578060123990869049522344749581169915063572271346619222241037200186523360590954379950548856136154471515053179488342378715800073415302422047783217788918722104228113909407280499372567550278724236962783894948221039707695458478537383468454013442781787821750870727019507314747122796574426893669631657886596602090046739865515923684377661999797502450451835756855901566172575931467648049186439257867271788979837417287369469923979466432385280556673337359746064118660481363969038075119551766383628819663664481573578362759443007502024614869090236596076860498316612504385739826798953668211678887784752285388952930883619481330529620412473986792696451111185833229619974182912882520901195173372391529974807441816433461183696672897073817035311883801664647946171668547322452066889133669546147380060789142737096231763348651275480043562100967625370814139159633716429083766092196192175547595521537239718278904438849693955079594646749192595614520578691712922259692692164152564280730169290277537005939144505565402293300397241786944164888720772860249047209278017521602555727027601221016607397916944611068676796628113780594699527890880428416871348202180403619690275351533918137700012239174831162237383819142413785702692645843681384220081065118184289258683819321033120662123069785373646458301375446225009289623232161171534909948289383211918103509609948439391877087902878915046544873262483142490566847445014925616276622700070034224534726080699631577249072087724543780570907813285907176001629807630087012980916367238397578671153767666271476998920742600332278391289278681598018496126854404243058140133999507168179860078177161006736225664539182902184364609062307177207438171112914396551252990866225997668312023876036774201035514022202170254616414027220948687359126661482714764137606095518566373742730971832213505905464039312427922175690812540422629139180227346050298140848250039204723433981636797795125906944715343476015428682310446395768308308865716465222559477752319961624698012593252281433413465237175595271968601895143095693259509598930976626368488416502365583519992195094707102091539735513114789367055401521783932531769831070214654160431762335757607876247100942753368673122125418651546763588987441917622799318125656029125208516062007049791014309834539122759297360971505190572927098333797853013058651176072697125862127229824755356947840496934788172484863643992463842009998485518609875858727797650454664100104698838579060160825198984059115710208252890972630075966236640766146276971260549500812029939641936927426302926840847774909808027402416308040879825578156043349873789423585537508376278458536099643600849420290460642599144089736573794032455715629931926966294374031548420598598492071923569581368497117585343460926125916686819584883770645633352002598458419618087427051172708958464871044454916579445980871096169618824236071339821719999290846777848053374288459802497994227849636770514259778789049440936574823873561506433994865278938303819426281819181790193321807674320911602769822227495289578968274872270439922904927366051190378668440555447458792818262847357087873997383183823788596116179385771054779211349312036321068217239288844747862245278669126864704841098388685744084908799598411329707768095311395863719401393998682090823440347354602491079850728335328134302446504022238710062194858437044829534563463519560048138327902349031997712617481485305880490813419574666540084992087101589646985389598531662646142808648325961197572152123793667840781980490298756197843757711596896308108008928694558634725307028253998477539838953174066688383984986350662590135467506978042188967823310009279955980481970712809174735304747594613040015742496572015261229770409111535382419942875173425500785215104199367012415558735354071540017013826861957390841244076550872621483303917273000472318123726366127992352195238402282292894301719847277989050484398554590676244977838207461085031432536844912431608434398626623245715561861333367821292458963367165006402334631513812335981191981432698686385437835644596763210883487841895956128206833685558611107796164086645251680776147955063006980316084402739741851090893769808404032326131267429848206608568140078540164045648817103844998431575707666919058095354909640604202087348661179360270379988986748550302009360036555965893314371210104388724426221226892125492254180967139776501072501152775442684307374025377373877700767413056104834088216100020868147703633602597708767871476980013573602786556433721843576532125043742102717676838862630073558309455568744701322093756650866345128350883158800493638231196832846702315485745349833227010814705409657634565276155209360380937159331818014702037046729207951011680573877911508790626274864287058470464204342425287408987391726624240120756883154528530789852259538601447254121176777173281058235973498657026504163116161778871497411618941095840535076361072336231467878462592028106180345895091605980795527851338825867471131587742816526756444927497800320463193433462639269139041328062728072245538068673339550935229946398591949775006527477871020841269763227309114069961466305175105980214070197992521361750596949924388961424674647229941135382064480117954002754569444245877210069597865080394034825068916192621424709905304108559733984018849900158248116237524718317034627052117492904222956120622969252329322570093562371161885795948238521623380754224617221899547098985084071416481069198113037292339140856468870955337915955341245068244331436287777546428614086193540038120510964341533903828004598618378978889165415731573236549644578319600237891509853872762232997041918939403696454959693048283873741839698337346423215712263918664426165912666979630922616381290271304657785613145610041746420569579978404115324402257328198471618860441156966576085745810389711511366808062080541204864301050682738971049148072931465128383695093383203546573671423002538405107375377478095196041742334623348044346874425222772863567116742111344068781247892070170382983390708075477829402562795918248740018911267195044416356877151332262752631202515241819164848299374487351221522819037268905224806728238785275740508653929317256285873413072727815539861458402720074697656887954861301458017630655636162923345856451891436178922875604023564375486122710592111191551126638446989177862950333199227554590348046633177303377776747006051899004107011321398368373125154449117750282570825089827929243140832256192926848999306025788809401026526174569404645219458242425828350435752778894953384091489332322552950352599726664343025118989184621429206599555576078860560402378540210576415611315332145916027011006691305066663591924273584278508541880684527230607741595010911013546126607807224080852961519426961179630660695138031946371745599146187729109631593782662364572579168087482422213192059709923109400610951951862084556301467506993432327726976496452824865066335104315610843815370384926844012835758073097134313155341818931431162220060973409431730431231821759491327902998794201555218895400323544392642913182364638968692055388805882957299989849563318069165558768432212136256595195960792937377146783057458146437044610548276592649031813543089889557374004236786414981997852229182585700366788475090263507269333491806830337755119772854413862657464419605056333303943480677422495876131972327376367999209476266493700878241094687090183934730646780281449571747866071606246216289881331262496973556736124389439491900571327541998417022419117216289459240899169931565801565499397230632848387149117173470503718383867979239358243527801747918572813614637851903985319941713341768813011495579666281358954339737266723101991563456348903844152807336407589068606840495548715736081865642971374996804528809747222500967007275661144865753008058797242312997900987651937082484358628266908571386475623252958662833582141161642733225675959176672739506899554768358835988712602080284677914621259329308932007588969772697082597652258648852124712527023570282250714001629360578047798977823101497384539715558528450417033541756126907991053209175129431317950923185268653821439673243373822978625083925572609381160259898991714638654289000379912651941799734452053418817916383682265090856423387598210541217764531714435597102134672134025745811409093572764077839826171047530760166595575079046329715145405048486535409642604853260217323434127666731385895588743655897550790791851855969066875169695024034164270279742803193884479845796341642116024248811530819126330932258313371818301664646956167960626676497689229976148103954370078818515145537053426201276720094010263852419169925293830227920218920458372182379427196801170661880028122578000129800988007409459049767894685815591637124851747484863103686538571893271343247426010057598484845817193284053438232944812525441710443181022386523558528484616289190514243696143409080432621988776114215701022734951294183628552653704413020692607757018951941511200193439791221154229705360542642747816312995033403116087365922469376316067902632829108993314180452176160932258999540302098739578330631869425516351295127597583492697780881809018081915613496625378064858704382289640309187275547914887424852984403299990635228818357672583785932553908625410067418425459263196311934368062752277432536590603896020090760512567516132149607060217141711980418652905849974939723613622770064002403565866652881990380029454189155500709474625031996995478875598207310387960791697977757456228993638554715799667671513373252646895173239095015796237005756099174049884385579866353191768222147722007407657224326576204185458667648895879099676464001489995351392867355992770894923396424402659517640302553636863784084908983279307362900401301586806399663088436640403746746513553636757715446756075380236329191481577018057295092067572785000430640499188050672851479855225089995946708329626860797438505596199533570128892032934857627169431935010529491630038783236192523617730863804120370744240079066025784688918562924372276802015408176332988651403138979710579862581764199110004405920976488074332369837667007179883096045248844451736073738285079832429601236461101788634183400640737131257130739031705581334149960985404513328983489222871042928920189832143358013191596078747622273200865570057111933669830106758645945897408939375015312167380036038408054243041810585580848018141175115707330467371566481563078271114426202920595038975576816227285588238888914894283163809427212880672796829191980315850926918987001103643670905641950582827091670591658620236852852604894641546813676959999495563243563861788076645573672385929241740393965335461311512793381023740573720321266163057008440193356252765725489154749030246491309200197525039924829351534281903614020546395142344203398721693659566781128681714628218398940794889204747683638182714792420928618309268064147614754262399617986582480535228539083303341261507986939228497744632248337706409520806711311315618610047525161292611383208917012620441279136856245070632168170593200136317146058544112299973752984924919234492035854318026606512610134649176236528074709472673793575395329786854994042805315199323922810839354974064517526960059870240989792964270847910559967342762034385655640546470164830866955219656829135757498372828523248884252834969565817536374197956098238565469077615344873431367811075583374531092191295197099905214730753443164809522254628951794889272033515297350648691058055754799055114979177780077991881000345745967194285430336139491487406811141688622521400156882820403610533972359477814504250049090001574460630229216445360739895191071856878094679611992007480587434480518323390193968842376032007425303034981634141495135895016757288535781819438980457867221733862065810154103157583053926225039657211177804513809292390095240458620004816573230553488096543593380987808406926811508930593107919774778297162397537577451522879489122587833301621789064748680650727070583733849262467435308630870107721961559769613674530635789240050571819762546805995187448122555326770602681662792501670393222266917099255068225851863257745378287597915511496752260973052683268419915091126130791815400288803884612825930947970289256015085247242344623029777326874316284479449939922599837705218396616187938793582653490234089946459784932773054795538798121967278934679642930244724249372325200040366104900649603933010155197718265565580182949556619562763373963424008289003521525682268530682432327198869519816961338787038144186388026213390234881042931546745107416890180955588800450805952508753385288985610418539020786070180843861645966065596262313472439761484949119975003491330772250164780805473857122729622383977089940888416061812144056781978907914154523968866609909133197454958724242390379001766680326295565149749991906648812786286638427129559432943633152853744159994965555529102662413978392108000647153270882324035781841909611375039743008654291041590318305768552648068264724535860562414896129267403726159094074162585024773239659381045102260807007626809213940827767980902630482041481958574008746290114069991719212669851804438469241546832006592743342798733717124969176651159915469444763095652443064167399808661543529880071445154415327300901665838099490768351909525094718615394656744741076211528639773315675044323116725512460958410359233529055163772193055640126255677317526608066841611748087659713998665914149648635385505810132756302031632773687158019950648888352248860116355164468067201911526250524715538995837598367003565240580184667115389138677150348921775879028766373460336598799265877841025493933639951602314366817938290815411283944258147654180656024611968581296147834220513214190628482509108491031181106035200892493550052607348440600753516447759392378301815910218929962277787400637536211354220069049177208692346364632876045836974721615430877214622549126451533802603898386340313291404170728935529391919312484278318881200888353122059416919302457615200187739472566240172455974278992870489098107851646788766509552725730107816896152370471130627796098106597435698372216687309573732199123854556897679437632399210530592005067068085368834869110481220457861100138549802200517135812883878982324278484477817960647229452702718125604181978005109033180498324879947763180124137285591874790184392255611873427273478107853674086909968290709179830179477640371398760025357057389253004216611706500612985695805619551167954300495717684968625358388816508902229963129925770441018884491341974215734765445814904162508811745063681515175791882668977267260120780540595708499996176941263360455457890854107972846460310243476863230965357220580843699390259493078991795212097353778757905121707944861310383096728690242944225433837983695282037672164601643403150146420563039903836246298760049864212783718631771537846460418101942631054721410253448567640348817395758332951356001629944986521163893366761350422989013157829383183653741084788722901043128625523436612947752975828790723756191229973362624628763635819617052184895702874186778889795784987181681610765306862511646470729581857287217893064614036290395313044868103698524429668416472542725686237492250557003455937900151205089890469575320832520366153400204704240006320386086451010092976667056850477303758962577240592120911226448411822952067730280249063374524160977277669261469967859263410719379628696993605699411157000423404636442815046509743213772557379515997031991808675764834260642872477528612797219155977676526182079335086681775783230049196151154785355380648941501756185895668678309680846721288331903497635122022981478833806049521000758821446500394095545839863920446593204115655673931326568174611063637750269656495614514178888222984635977986920552050045222807872220160454465400708944362421798534651865832594956281630151878415232289410031099815886893375369220735313389261651643542848768381425510846136210017303118427205462341570481877846882483864526343436094018098691012690414652234761443231018538933303733684330817548840521327874349064749034258705224952465462267438282238963777849832855139601324896931841250703910689855438007352940746401914541243613385979153389671740951286486035973367875300072971492300245985392196588508321764618166771906136345437560578423440820370074064809328846805594151537032408605014055364038397268153618555923158202453916742299418653626508647071678204321652790254655678400884264124520832233248931548021199794513455792203463735298710986151097560697912498257571260504741471992844999158063310674438418488671153734243220565772888248705588898175212362332180598487803008585974834856239842779102869088299708737851453570093903942375854562029436049597341756127815808599910569163274168213963864732040596975140201959454507088996642818684358231159712481354490938307123833967574456207992074872407501527894416863259513273439359086727048128543111447893424279346371238017928446621525419774422979521207200741342519363694346561978880668955877179435472428555896421944674704392037102791588676830678191428519578233779961149159753188444232191995985106839587578778256662358111474852036139058029349105251602659532835794913754959143852337884043252749270908657316246669890102254602754197177605318562763972776397868106666215138146622275708947734308687681911695028492021587368684367520648663031015743024888239188959410712281031158536351104499026698167700161707354476634199433685150547599136720101493668908553355412614652462656901475501659686883121620723811423418800866763696709100084189778070147950689603876804783413279551842434519769533239192425689079818549122925247260303002866139254354447151773813057997523417329815043054831837398714018271116273654842242384795936489298396260016887367681710738345283263493284717612695211802446088239411811048516925128411417669630952046568722809381095336308217176812814182441258467975171612274760678434183177634515508778377558284887398453292579449767587924296413752848097221977837504938870378606416804524539266673473527139105594041595796861918911828043886550755340094633317883777374204674551473564417056098564074017444742998618850740876705299850035514261146977960839032328838855529121207152033517211643128403441585272141271410199144706852750224316762048639576918415007636542487739787139779823649649416129436671095726287721111958876303130819444259509194258237871340444761181106928077776971577484208015590123083108579740754884923728998851665440604923817389281636714715031554312625636944237994231707828466973150245443611903540969374142279735833922236472391403494076081910066759411868203801394919697259161514183538743506871179957605100199455937976014303361573832316195069056723147780957333312321383947645952873643150809867231152721960637460341888730562821884568074657661833990765071554937724644588975449810715715984153121824142630430466094936334500785515725792767296809849935111266822547482210970480392173393559291086190808489474006655053265433673136603629717802715576411580875799775146079744835525174435061288055762435242766953197103276732928976771411986804096880428645521342677262244266856697710743823057235016023508757408892088970679250692101143689805488762796628130811599884811978665502430051027131141624994724767715943969868762699504805607857313330441208681699018394390229426426542085160567880183159872456533270810224500364045796065241260473804052938076137871782745428548760601295634316653171394201163933661642920828148483392406918983764916621922639843923733739656880483650251822283143330628415213426464586208277228968212725796812152379860610437472273152951033037119391012418084122217014095758118231300859848931760536827225710614111307179799567519523588535693163377927450344919050056384075307041842143076773476671540461959455590571564031941194614485299867739086497063300463751761256641408270331549693941173463509660011866990833951994657112653383568855132256296877343692675569730193156085847626577003935578351973516425313506546238671252261447878522437225842649717551707165647274816934477436472790405432296520859998679280784871258316363583238587349041974181846767654542838653768141429105023095619745828343507226971304683478787679977280415804568296795704085645489385558627586937315083749864299692581468062789409883289477568937489233699548827591879228604531253091188215139205774241757183736144668129856287356368448515143258444820960840063054254455359291318370132118172356776638450802463685760065365584342085594925341732668288875874863641327485489844482898926552933604025779884495378873739553474187064766576383656299753963915986512884569566494558739746867405184586164282291360851143807854156223211121387060677318821233601909632552320626151777492658355649291896084126137000514760550964863614314918179913703223874788889870974836456141235993044386250704549702023800852629851450082137494403172856280901787583121815906584241222071015399226853666247441936213724458671024202947743997678724532284834686649663629683510384947940847103436186176594501924028691392756495750035865219677508948505612692814623822003357644203616988056746676630229823488964352047978081422684577651981929761675607832467474406179747805104882897040948539070946689244879382690451272191939154748401900841017358432466220099030529253944157360909536904110672084558775742477937047806508732666008159506086446937780512938371565593638332894234542342332703136775153029835081683325911146322566612860949192188723392357279374694062259755477566627489117221738093919174835988024405627032449033900655941391478046517649237819454347987931737557782741500832723530742030679533905413692611414508399834435998217839095166344464322569459582478391004880223066345376548705935702621036633907329245657286717907593623599409901978951267150068333350051947800857963995925587407900223481518229402298502574344076071986203861140462067295892613194795856034467691696325189957970488365501599578888729099122359588172765614925656420477730240459792179191667184129189356516889851540383777497692902431989112853050700138987770239018486891157996178329924763696700400921827519917005381050889107414970386384417452142573460028636806342748259651466911437671378323057840154055475388129849626014515701309604755759387814026976216310155880010521312354507371902836804144126925215388503369821613454291578972721593808085145700371677300952552698921710578138559034696156806621754915281302622649059709017510222673790153017988452439175066205674110573908316841835178143283635587227339566632313871952587416858538200556944836840059820493445096007614808296186471428929661290194425823462050846237273671307459626695809897474008453422658732808359835820214862002318488757554032803625258808812087949282783633639331054966957274683208073450588297827070360008625767113396261938724782982240998979051575444204073022229390456801073350949462636504406363772187019768376097171770055337362703219939121564558501284472861829429599854662612679361802386469566479828063797811753337833380486770252772016917366058769436705973816081718388603647938380237399658476752936695912327368975953528476009870247908960796745518332535796021756885784725948607684196708170677130977192416840557053890958656531744696457162469979657837695195442419241567608876011859894284891902638896948568781830703925760064347164473203219451416939281402002202200231363231233292794850327412834491430412689121143760100049535323086777432986919249232987789708081248854505709371824688530726431351993833944351361751441971691902843191327315923342687059085144957918533342494130154613282683946220328934454401783878328399379012722619662963369275610942543101308648101439613207041068489897221745616158280509755687853028169922880350516461821803434410770665839989326013405629599343620873931762842647234005046215109844143007537205097050016194069430941281876991973533839071875227862131045299418976446043657287503309342178912139542405991762119764312940621364706946228064476249606679218099538618470495930545080720133624874559264498862022339733979465669899248753944159805727834871099244365571525473776619204349411149330494344198876528860027471336534869367598670357915916999998631536792872837999233013730994893788573079164774010586018071142454253449142728486865291918630355049028160321481042045215481248329185898132081638962824492797544765458222188973464950484616257260095956935950988410053648461252045513699876861181654385788148358196535394184995775199643510151921625380280565888864176113825492736051319699569169048223844629531424381853140350213556499468918912707152727753857285759408079569486670122580396102046738522431646900723996350458799515498805065903508414922807431323831727015718235608374922040933868938875210066214266958101272081507169261785240876233155911065303732429215265224370041921914422597771166997149619694243204972620618767606898439168925504795894035508719748725735859391655620054959885018194009043098728210019542880541486859389506192119449653438235237022570307459551428492715006800318696004158729170871089267005520911475637287115259447739792419419895408139271864458779686484149899613915917815548619281617133113827879996324410792649110080699446583377868778338495102160337665007964403228090772588592084811892737787088594608908310507986809666856046684290678314357768241024270275762814774327371889037449126059903017348815916913191796265280642258359692410824171397317323954890592822364155090630791424869991867753716355897520055072566317793081194096025617989229550476824557778443856574260732029513462225182555248504482969695742919426174271239076772650378580684974763941793856492501667468111620875083763420696034291131922160349182468161334497944248623155685427840795925286985299541812976498307122133385194383843153164151139836159952647262802395003051526360724152671196494898573687843877264786184332353740162877377268108110190240609342496029729536972330472668674948361804172873562075884250026409366364247792095649308617148868550959844260469477366732110089771676422284702523377398180923104521320345078780455880372916839212213219807906556542423234166868154629080649378859143653046912087368540875940059676227273941236664118196891681121254186423398702986692526724594822304641681296455838471074046445128266188414736344277042287350518191696229393874142462178013718159403836991270494937052751159585632006598535398407511152029562455343243185607134277876340610457493815827404356695052795999739166358331377234234349521074097855203263621194366382734536397350272722825646745253020039648232334655285662643480611718698069219745463058579670164930739767706911732746662952585402967962303237600315332503377306448880931481481377577534549030807076140769515605152050319176650459109451572709808585978261129627829850088910787698420788988526579498960698886688979081421878504116762113460339334988742571091551626556065194530998012248893835284122344674001346449488604574524447345785815106960998842732190779246792522504934577326481546521143848883923120704366257958792677657391183480080013335907786098288183946607574379106343727075481375524938212276458111681911458398008081347272484641967602205899234175318137599673683812835703335952312713857247825254196099777594742000995534683278162939411551868123686355836929147384463897913190826515956186637432860116298165491266045184099476177687488912073421060305100343453856013446787406162180901941837273653626621439308772771573634708676577193685005624643601606855155603481302153940786218077676413822919971812032626143357768656525123544987236916211844910872774650615255149708605447697826474727976371946461576998746764911897128044405693685295782433579087609260577271896058077451973562107514832831901291131200333418527366943631070545775762424963769755992418108788817935282208955348618412288542413675192299761838654673376138317334199976190435764008256108442381597231799968440213664553505398339643205368507418966595284576512470821756914872052238182333128272821906683442890652315448813248503804730160628298021201917616275862556976908296666442075143462887272977016088947257089334007387242826036782323680445081128451716935690928439904922654265563639512932357422658952197709580224941081991646839749171901538234602319107029804913446860709993796614908336046036686901219700088547507667900270378642699730569296755225118646378641484400290944291466616077577923995841856399744123722699628935669647276216848638977115511983400590818739824327571989453218534385011169408444177581116876518831941093230268705958362797317704472457041075405250946049849146978031496476695632766718187506709432972023365282094058442228533025634413335468926703795046325839140607168213469747355599497179125441300864547238319463589733924549404277668971388392672073561121359925789688634206794044626838885464111452481600499218041220827225655717977173969678569572677174895448443193568490461722683257624410019368738102019678003277684418196305940446562113460269498384511926041276385530437650967763624741805332688427722056042701869719792973171044002011515921305540589377986010845183033419594637597482540103985520383392139906840103551609013440061445456166909695352963247621873626336922934489418144888008486041665012143920901831159474775445626521064771445184256120286653150299348504136570579293380688602954773927220287227594567269831012658998819108156396441423662973912655232083841075370657302254229943097931485814366775389992057118369395112697626037348058991343512675696670358603358179011185751635557931015769194711320186806960668112053552712103047310893629903815372040601848003537357896294905852363100305666170748470418538384732123860390652675407802951560258865335325100719350103644846384161731888272213915504813240484363902751565497566094678455103416137187279842471377231761357421150894177053980558207053724438429919713244375583904411694560191410368331596230564917971869354081983832954907718948682154888504557135850387931232160732120174214252578609208159119005261996281654138179785520428691362385650860710666433153777471145607227763392079934707481112977286411458537235307096025718836835514884771514640178625108613164797574671482858719571239870412799803091987926416887279220819731503767832889699512061793902001011755035804370659830380543578536710863230250990225576199067573549032715858823626898869655860207511531677840697979610748188513022968694720719943043983423474980172818212631097368432499109405778536002963447991587623829157066527048569874008171604146518598900168740739965142954863712814205339958275046653115640202138320026093589506925576923682504480171055146894834515679408027577042680167207940282885864101757692612648040048790873874003481846424520833747987166811719810170284879689575771237710954996911044528141932520287615130126845481005855529494353194718782948117539664755349422355842288510905622485541023019517810029531258888194388422955384854421773892663036166420280998790626902701028570556717241414250466855236795074943766130362766381459063219878511357796849617402137088076447129767196681066698085565552808870217269503056690294666146092473894605668963859173402955203309989686046987343173939369094158368182851947808514314612656324870057029461263417772015628597283840121685548471298783810361223634732216499148126027084866739575525732724792197200096240824367521635593908199801891995171555303819769263196259436621287925479394063604931435115881875823441188911817743715482574640703174576457894638532830433499373969950146925319122419741781263851643323293914233424402408343806763512222893420279100150011761098584274194495859884468052553671009489695539128322222064122773764835563071280493496305336696529696819941464542599141874718745188186645095792281858335119928772334259413337645685505426453569616520380453320063403053110267436136119902405752280451450554089796849883020323155278276362134265696291299686235715070124540605686044311023742571806131671803033124310416555306326571621889189636953745897519242308124522037700724866149047096424046033621119379957710836709666182266867424162055981736550774423886317363298371476671078167442379125016914883316043892598361254685536316110112422389103951804524546671717789600857055150318950643338486778654421106335466488654564419997480917314759929456098950986588675898803021955594686900523273220115210893069150138065158641592168693683132700127925247627624397751921291728824291460831650719707786687619740227690311670617187660378852806964840000376727038023569154403667975181674516868216865574901681254015337644926137052818057609563820804280449154859070685116270096169167478193450895125358414939076552757077592862440486540124174701630223496811645786853407432428684517146604130730821641884639212871312497552602032759654494573381508167565519316138559170710803150680245663581563480525439534181220900747808610044042641309776951049122475941651788353557388399171112336529035752902122000776733261911414837082963104916476584832853759951622602866705313349030119681586673701432678060743522980279204927311098657773175975663810838906819083771089362210652907807182910685314840219210161866528013150315669498503543782308641506826483199627885112251790836968918431270928721113739228317118586378848798032652287574424330792600973003859025244743259478014833798857515776473652795479868129112028317889611936528291772462897043454964496849722878577237745740771531528096630985177046139281475853811076713979277245012093257766939588894366108128440430158727797228489065356858679225849583743890073315499272897744843479027985327765095652529735670644134403626749367904574752532889304952162437882775754647911755742031847709943907823069816415479302254508520960847052641677441032816420204426121400227491345873905492796631184722819853548423157961134889351098494391192693335359577294811654494826807847432823338198172671992953878977620141323197901209026040538268946080150801547833642494587656542329488326881292574416879067387526153801196850514141393603592610048162615145942953994278203871014710844127559014901585515904722394876385153966661500813834346466408354377886374876923962275343894600013313612541333323408650681088033248851906093864260589837942322496807437979168632311803358209575481882671543042200290035891906533460014685742718490845772241090385540063704664470219467995869541581403218245896031754491097379269033196656010224451815037691820489259580915262995076409615006210641603825283747735468350742692038280799093831169730804343993954107450858852916082518576164957190045903470996812443715352303813312367311335794863774874155140089113963880590328966761467700760820620215372251237853663463518451089718138174693058871728575051205135289369038974812272764524855554958105347638319644986547555993380970875677567537236109871294477438132132347536908490449455398346308525053626042722029897378744948584567716677844601889197266805325085165321815053783896412280793842562486894243606155441380344354029287835259204480934416812151343409235624612391271854999237967325824091795057349391346881322334233792647932120651434321174340888163560841655016170017885670241154130626142932396436106071228550664697271318589986355310146417261302513477709641567815977442643718307306963181632002863577005697767383556646456473385605319130036338355059688023106940079879286607947165997189004012081558460553692890879990318631964486169476359449543705321563655378618185245208207513504983007343927890882767276362362712251855944983578973939393028228724652127220949855401606601012271644765792945991479686765090571181700444240075319355862652497519673294393188926570528293097943577065716243877267162960688000172568542214198740860764486980913836473332339389992486090004811317265372573244315185060054389919649643179004141372703773568188272097375657229660555233578547056477113138620932576151598411999712261517973059172204551140779206763536712918769243649337343534889977285217358996885324899845220483163058241882477735927676783018343091419425852089803460329634915407353871773156500918588315062008478842435278303945027507263681236555061054640780083376526208905228722831792698405897062291142795923997368037503419270213985174677405088364098898065717776834640572248583223596890418235065623647199086255762963180626853250962195962701311789307941856885059847724619992010586921893452347446211759264711202787256520723017349364268783832997403203210356179681378126772818988293243480308696163385355763832719926643288531901049883951685801950716744340727889702568696020736984629649121624906977658997176899964544564561053937477815726965843612578889295489114766430327019054317215070731088457564187429042174734193361952547571438301454052170390530910653172930794691168191279511065091496105286996932627656201354519614753667856989097420908181186145821225859302171844213493020894595196511579499677890844675952119698411580181795630363546706592863963494253173512550153645277058344924671016229222751387745539771858771116047431323559817691540837259776718335953356349834873618493149534394204866582716795562862418677264429380491724532255556875112617425214441221944695946978433412549518505672361410188492450350270232360758038068589358089742322222717418366077416969163403702595987521184205141266624233258575350859292049599921484484744949027776435689940213136900411820367688946301829007162614264264474398844476040329421532661991745005612172667553664822638544753507181534458929010471225136231283344133584963034822773181223108369799081812051025761231333933045105755048204026090737371404552210347367281906673763643353716827757754574096539345113741227019010325404167353031274074028829839660461321831364062523385925142357079343764133275988371738825889483962294093188220276183693352249033288031460370581879432229084611010492458364879876341153572521842566400001169321179395229378203504643276045911789842096512006345685489721798825288298394770787362600832834253400402471675633643062182348603541342671208033371754812424423848031991847035194583110849663326104010562894386087674917847521356833258350874009238649985224856451047455821484291502903254506945359001457366713661196421441878189710468097095765503262501661825741284263445120220055868900882441668938033385514747862745818447434397652094479829507072026746366179946325859229797751465160394004170064025666887306088340630428391694560290305466323293914966401718897007154076686001269985977763910285709961993227784590952919640630100537616663483619893911540630564978962626539811785007545094491242528978216430975698492288180146696038116553401308210537180432840896221156561675874234325139392319992047761971841369026220801500766016174521195322449744373590468483688961117584135215493721512011563902686665141869526362372782476506704697134521350921764433680420902509313868309523637846905205284889585216435571864837939240155445540282108691182826895580108695536770991442138450025250554478810179011406305554744656416935842375612034339285411710198419987408537505644441514378029430968106611849809294705496631186050647363479079037762121781984206756309346030407390388971477181058447588919536436422198607542458589649215812336189322457326303675470278882385509773102678392204969760099619024373958029092189720207761099926202512654763025911538044153493713603588210349937811639297504457478816628383192325900380081897969094851131451081452211329599113611016767947507945894877917543701522968182913211431083055829986362106053590801219072632052599499062235333966633066644996049392486057132238359919426982536056788264773417030754595683318596019534018538601867417628049993244212058618235616335786592679367991474583782216859277688581095563710644442475524264789331140528235500661659795058787712735990134616003981666837823162069215406223895484371030997581401466572985420423928042433624269685108147908698510086283586132722434090092716109083663199844308131451196043974756700255210674131668873211743326011639275572375338869109119520840026621711046360671886076622693228414106622757321504993390444315419482893098030774931925970898511057553993161447842279445102037155925541742318558615997551150252406298792780323429817482950397905954540720732606550749888784747202848388782018760566675314292701372862503566752559513698848356690879624684053538840502577967702170721212805768953429215979366973937150797957690467054465365508219958623365699226430639771999506209083715447537335718453441712342011994064462920257081664046697223440331026395771157129056765858777454810434755996029394568929224134831722424568277528144720144496152419955457534987981516807046980945953969784332927706922307733513822454501723446882652048171700077494934952543480817158316747205166305819659463172801082438779259409736423630445682712986813408896179645249284315040592308903921547133561188396608457179897251999099129425417252979615477279031994531205499508249288102774603973513191554120191885479403414037320215188141262695996348242552282166631524638178469263951845366849562762723136245378336923554112476297237836051771839994097285651739220423790186907953802591203410471674749702433462697223334161563218577027150479488575178144840279518349928333483329823357368901761941006648775696766233478224893902094410674186961670589721910175063800417479702947548510117889004431819785851239071424991557200338765667401858855514418948199205257881456781553693691443777417767817080137404753541519117089484776188635343120507838195072717934179893270653306915788080540386529344961783478044127685431240345051718773248854269173618505555483462139049367746472161596537066472098040718667470476777944838790338528133347040973631209737844499648606358959115550567037849222655081813684929789527075768658062405393571834727761144718103360785665208800483854634334556405754146467622526327736287981118026595040341087609074959592052773687458147612537210773582754029909821450827364505734011764140079671841129087891875926125676102084912797667821762013723470412467542895671261252077555916084555986729169272042190532570119783329835687583126370750863082566680220632266816609507285417324246866209892901967411785466797616990423427885952192058767414983801403763918212042803524089307250554423106185990575694102855544540709410263157231538468495579030623315002368854589475428204837231433535822892845791227215540568048376262141788099738091948935161651640421315966617352317732372483104719419490289267301945394905881909049931745683772573547349816256625991095167610586369506221003484059965196663064948897841309371944467515924872090189349136535715822678885683314439801211906259518137624531295840904889371306558703844305143472499243707334401297767283841278649858758990685120264085210180838227365795027260919680807459166912175783716237772714038165175958600520345768467799427284801585112146791858035713391193221315589831538491938899986202184889436568163639897964617246025673435527235962897932931736345665488854487772267974902999917199823155629331992961626075530089511095850765552620806688404741461455798158350246930289446583494516081745790974114469278688695185013972396768660214104099490225920708710187420219925213658624578219146498650901439254413310242254851140185327365395479726182648538390451948439713627544175118277609916345807959337148174155294253676532053083314602700563089925652883764370986071315217074058299590694474208111205578342329746714849145019653498848075325271734662274312781378747593656211130776804151531076749360731832039889934985858349936256858371723670417654032193142691858533432684733096842241444398713044690572677434097770080666590885059403271833337567359524137164004205067894329098093077068378386886267815344810047510021970204383113291404929341875385582007006475364770296839746806778937875589118243064052939872620520167543810852627602147454153474571116285525015954020915321424447457475888706564234215533132695347876524972769703017043628691613290780182524032735987827500251292324932105558768823807981505413171947817864559806320166519348638486128399458647431149325063745611244317675662983004090244087507193905727105288303432026983166897084975217091950753653620329087447236460763005345121348145847356368343783882789621966504955191234561068394863712999650150118529311164877311325555732304406243977388388906140479936411163811427605606887634504137513934665554444217138293754765896474739603429440602756380698234813476425896279484436840599129654736125544979471769226089495043263332807997341388814152073727809794223991743069457976521452782693926765663539109081236191889962317381640697683332356395980567324530305062978819216957817826878007209059738066007791144141770198258661514402463107360666669907940145098582219686603143765329685066721799442633942099070268965659937577163599011188306882108230487814418209665933785672729223340301980453560799946324668383176824547701600204365117195210740719462937777595644088625762565891484337116517022569699358628197993074745145826089563515752976974883209623582253697634248440769939566823300181675158946878837840912848115759271195959576689914198644565195785499534282620660856142587455369892498912825085942351582068251069866390404679557382733971900700311511427791576640762529462321059816364127564274721748535023529317258081460634055389611532606426344793845242034530684751605895836378021232184390489036113430920196044008783847208635677467362723458315091200346195115415966721204439951108572326817381160767258203098589278315177802582860741816107997210127146086037679493335353986956606710587851971832100386760388815339423384883062546286616099380619099041895368035115160599076331474635352861274979701061126546929088101417498823433328792527337121459782294278832014374187379299815594460989109053494352597890992781537938174876810013526635705349777967630396653724466449935508575230099948679545826595831796057102079385660586549639080850249430810888022002105152695613617751313409128017373834522439884425772652694335305568620843523831244483626304058526783933265781802853527866448400424309981944418249469985483138842571422512929100578460514103396501149519982192190462813947222794765020611093831446981213249423530853289441627157662803136984331968132196280013216937224964058050880006684458025360343539910020516560430680616606479133012822056510556819780891681628906115831253008310921773895520029956854797096983812538594902605578371761017048557095812210764692063557890024894212144493771396834677947977435067105506884039148451891063433106324659913969028665867572038456624063423107885896447134150603325364881213154883090187601849041400883663574640687382158123554369707695217749988830820059223659192156083015765280795001976066920828179864122337114662942184887634402123560364245637258722043109627876490861491653566238266808455784039664763900644712599160716616669566482618355507015326479156911848520650941829784313892202181155721641561714686747445743064323977504497435874457760806088637912038663924716178459678663242822083101482895437408037318358095649109108957838405147264978838191173263781900255087427113546178797614915202412600903657496442748952147279217666000134134385733773518378653129232779314007379822109754509973255883034520871136612719489275884799490712191040862398750713994745407101215831363453839090922402432727167511814290147365887122895730266295159922562703563693525505036317154836484173427190460031295398684609745845060489228829514267562734681169884221930079387703494721800589881543025679157171654597816572014615012429709398867842476531555482348049035882192433479532447225962680200090733367146669837711947159521330462492442646587695915614261430032289956227821332074562088439527827215999753681843200401738410495981888354352071547270796228677660276574002770003819338629712571726322735184546726939544913407220434731009937945890883998847502461910930044096135496189334763875452774528826788188828201974417427570748229641010496906379315382731447950161843391021045257368440984975376065764210641742792316309781868026863790256146354266397059773929402378408700272053307565534527950159236003665049198616648245424366414764527583917090356713670988474339566369995481670739093228836570928118263161236828202584908213243575473739142021153744098184721813423731721199660353032947423147199180946862480088561963579847766444381455623985179362960633837001159222514880852725980871862018799389943542530843464750130507212647654990072394910813919641732159791647261368285264474911671197240148433509685361596737922870972535588435272887315739898007568849080726340488839044909322677658846826142017096328280352044783133843583214516370679395061634065888111942357961341083506858889298328335419128606662850968612622487700416511118317789139492674030027341804869935212360931796188815414947362255649566517498289723622190182210866786808805745722552620858909926573139520261306299607245024638181633959698096674835784914433019668377369611381010631568939958621774259254633785762837355232929727333287924947612120279338182056740702193204411163301150548053827056040433168650179323826284434705526236026385527112506586296722270337242556006262437503785163063048414351734672984899366540006211562218849918561794816154801974069701518488764148786734747793206689177744445878258677065527839987288595212021250177732007888233179706074147549887914496533862263865552107781246225662184529300543214673575365013905452542869707964888819754271583236777634754289164601310318970685885018001429266803843496197247797047337443599502549177320549753903915975862245104716873618869306761973582517994884887528990240654149726161994523450515199144833685680290554174612111243657339018071574466650068892087725963276669886297753851060674898728799739541161623223728492513885226872742568358185638774629447605672728186182249652206088908782853028959291110712218771170204756847887216597046273401309962525909032437188299453767646040950719786272797207331338083282596954648856099924651102552003684693133512869465111848738547339930563463551866362646975211447794617277175557852385205337794046724586830161760477036440310046076292555958169137452836838106645643556145961910549154101072581984695525727502119538330018980954117519552590590569515463994954247946011825743208295381240623504270432231455339813337723306765714428614546045596831262521120028381449535106348784327792625789278120153788690636519205720330814003954242765361464948391220307317025725869195478227849629200742615788162961677080545368105118326519513909357246663243507765740885464865778576417880496694912714065929006011919901396552593582375999767049798488453591100243905345432753169386818164348916584440281930945152211532670071228729162938574028361865280556943349153378974405007105230701549663053784503530486164886393570471800906872210195442035372905497583376916577040266347825129429653861727326109739505715673720323233661526367045140967488521164082960794256463042977558202954483505342631826769573470533174388871333057330155801471313567420749479803711361815656926528233817545201397608178269463497233643732550120830830423602221411199841166669042502092211315143711738602225957109348914456588883847551448199602820605482260675680682587670741346590112582930122081722579203314121298268825375191452273061655298186468596324192671370838122557035509596243699214500888348661283458943886184669597807888756584397038145323267857233447714461027104813401915966852858581863478876447320250957826593564342755469402421055574697418895451086307670560098393772338749071283620610481915581181745892250563500331826103150839186792095536834258675528216321838175493064642941181548704030708801773110835131336304840605112673413866829114761709700631775430036229126101626562989283232435678465057601945999543618623652582013422891060574087131608518901013483503673349093508620814405985443170515544132098072682300991413093437017950811084246133166759637875446063032193545199968966706144772427415737937620928316339721594444077147859489099832660638505363217520782377923207370608765158084545746492399091497222550371794878890086110998867438827508878109842806017516410432976866273527786202178571373821553450285854710666975094984366610007672639590001051575955807229099626894197501593862074382222737208287362156559920368056753297085544540126728061476833190643006466221669868739857172563439119395129080823343971933279096564398873911049677169965672176004723249637077838491136597680622551997204829737158872303612869601589137781958064076788997370550759809325043111914762500520931630061546761534495702876264527737302616932669837997882670661512004453781631697416986057047011220370258210557052095535628843006019284686503550276235071990793836423583391181251085804285334467134952903319262988904050101975782429599661298239946741839437631081462215993496839672270071640901526502188945445144321336154699677628780286407396667457454139328951222951380831002262188147042639553148228047003907359346324788604372864875456495259767421432378323515037925005114128794638273429225516267153788248287990372980418746022942052166004627630994483732794345288567371488381479861372768527048729060443771652008549541551933235320823295615239737143906817717239432726729738908211381258436110720589801886863887296988091888679441561018241975571314134307955100387407684860457268923557584265596716836683022562459814613479415892709927721551631678733485160501615392227080249643341905415593442115942028928537683855855560397134902597186276908941135363219421648119999787654524255789376132219474352369548961634947165750444843565438817302866289352674365696041131608580011813595180076885540724417901674420655948264993623168638718857488722978162420563849789797808699970615693440420779836500054199539176519614327072994414605853353480837186368604300492465310983926072210902020485165133979570134701195191264688794951500334475010501289251198905183398443600016546681442539197239493891670169617317915797996819964375318653405866755243523192671313491260266203570700118064382092054845953675930753230376851191337162306790581356827678534723419539515550833845097532472154008571200215742252513980766576384163560399931409276775141904112379632007022492928223826505335809032671397242160817164217285793371580968555647549733149186887735830286757191127702986811697428734017964078357924625966971285392326171877844230006166396754509058234327167356493355033759460521658599769467023162689340164940120719312479482544993056447848995146570776015397103096401947596712395770891629993413272203302346002288681672392344766522623246631044170206452327526271484653692545292374010718733487472912157778713302373870376223686823001578421609455492200799762474169525497957590507321800737766231134366695827444447227938391335654540229661319190309787825683900933383700873790276996656037944014357117697530010290275344990810404103049140687236426848366604641859282854743484721215403145326263991212594649987018431197933171825238908354939509158640658882437932594353395473869592406648901033005609082248501453138808705019383728003776186510520882911470113024891930909954320308299985486565792419692895919846872544941281825729828376879237080103011952020689360591673294524147342527142372737087431958819392252416341543269311074400248122573781344859322096670450981722596091799462239850748566164025154906719230971268490523503054453284036454557311073854022712795436931170167806428803766945125210210695927910619188660644528294646281098488810215752623785975913869000502291980239060660025611111260882275759792582199174504690809096643867103747932166334158439212742545143908600387300882662945173604253457568776231747643360143418950668213820483251852933908483557315744586195919751306195995374460097792041445851211649241934248581215264928323471399778728737130678105799669771988413402659844704049883235464605177390236733305589695795957771830496823665885742054455067031672195563513289670340042065584405542410929672130544062077743347675128882403161410136198598661269116968946301880434977508069872030098106053055769154952500209093780066403201358933038170215573418186288065537275270716130795122574517813547976258429553127311910425850285563899206735767126214612090149999008238588206411997814392335694865341432762445260794384671799163213238434092068784673878032930301458590806638919496921509206014669367732110863520479363030562827948138962255158681185789471184686155747060319062446004224159431735563095681470177367721522035697649363328810836312197275471111941955709027756111952976737999177764595783288611337236246678588162610719643234656161364448310961801508935946747407782628580914819887299217191963290695944881725494385913822854827841394742933387117852950210457359132942512080314810826969525724022135175225704720989413606836443829835735103873745772896704253022063368027301364430490105999739941082878832998311312539277521727169707163905915933117478313528152455761025017291223747134801060878051662549450507558070550413661624583831664933939114384713226065761793130591898651419183467685015998992858991575123455692241348047708371712912832823302983282117494937806924948869873746641828241952890209737596022427680704524327620307765031618559276196404469832531828899527679878823593458692687626829499326381957353784759617422328619536401171491830850215356554354303195612932011965562338001663961712248508132637999162533040024959657464037793071859379001045748419766982322687763904285107056959760845775105767485723605704477338111366169785673110835348810466927460647440077254266058197174901389044803660752311988715932262220299672039407027290999480425479080272723952356038640813253506820784501721875064673723080108421045310721123160103314913932533167110565173222494424895089248694774219648562451469561244203030153403532033337767841869658246556697574586760951991119369066081372649611507932924825234995311552245359881763669492782234702568481145281354005534802083599909068726023549645961542423786953209131190063804513114257636950694957173721552514188656586220431100502409842006088201730674037708657579035455144300618832322892536639190007128321907450735893446328461161983194704717453243516929495975909099582829954899254057288236277143514577975424320092224436783107823155273050158935261189910334829337344688198825507106409146284894563127621978289330409782909848826229788038712584728047621675181615317091501162384476310491772932035068919516045383029571490134729397276957507406191797870209004941625260917952460041063797870727575608599024146000310637467175612737333056201690578253352401629399506974096285189342481903810195323340630795556457056739133225801243257760029540239478058256351791690370934006229335517330059819381776703879457504759554513302587980029644792623176918724781900616439590536789356078316320513071742727323371846311304620082243386786252130600824175431042951014321330200836974338744406149038520678133907353430832771096723312038053931815357996272330050277637134380727637265998494604865291368648541077464688220640269972963118226382067858654669946769012348513141150992168403177093549126638893931909330696363122367986949334120688483553695592979429610251295004921361378553763707517754523839262967334066896443452123446322753503093384233656018132311672358832721523040519674724058313395364119431358410807412701094238297154747121098372857119563815260170113465922432869631352569615352208039929213862632133861192217363576379830934574462570677311904870490735315430557025142379905007392328069267020350463423529767835533731140199433663160702412801940756022474510609887897587019288763317073175957166157844040422191995780767054193966230171659334574324557307980536982103764059380531082787431084284779430467563525505445543050241058250704672920014758304214685849407671742575377859369611878477446753246882172548929972892064560769214941859235322716585462826790370574375048129503648715162785788564242079084634344826930916360022130027715297432986248161527615031652923329310924360842064897111130774887121273308410883936071861637112442308445449327402413051361643895199924218648070142838453588551569750597426816426467088049181549764021704114157427591802085838950825731014261663819765621853828792666003836497275450049998237443133968735296772185795408107198683323943864476759884788796420021641446143888586666654245007851414235016780826013544948641936800710867851792944833942967374045221406018016842466133141669015586315353500911417897089231112872269617359228634463602466020514076126967957969546958206911143628603540790711458291906279066766292826702281167647537498869781256656977708104805615862706761241765008512836845936626039922377938866821239258134599963830642704940340171647932830673978877828055065369608291200021157945106539893012202343957258382329256152392038292406814457897453528416696453035123900227523283982313809304043233389161044598295959730697776794281303804113125642252426412974545503334495262532341677266306621951700256591522419676123195675460497584901897418941152035419696264051112895485680876407583097774448863112275079128639912954400446931082249317999439224327712351683353362225913155971408778423360150209075798180189783067013176411003899363074053827763957043280133357552053199417115049931718348043585764209291827671705524146667945071139762795394592265913958668790026264597255378007174267672796799644601088512618543054743382649947071556076374394393984316944648140674858264191044946587885319453606811836220915169224759358162184353837820171969067981994628674743731128827757855783626562168449573230803743712060043924872007854132670620854127636184856835322927744642705780070434316520551750065285577387619479183896603071840074217571068533619214181876930883811483811642104545239273639642644704781008475577348224077911420916430113797060714199290483299068249264897282241753757087674747190392155976221404129825646079949651503266516174681019006096198465641758453546446403565767951180399208474959960832714605933238123328288181931709519875451131706662056663552059807877782306344397624326729419691681790462909493075098328853428833156191800207291042907767871581307748970415626296781231708244608364846462968549001303779710250300034491780755183071676958207563579465871657199302494142050416411630452462862364902604529453994746603389076184526193732259717154415367956338798554811381726715089039102052414427751059105201434438644553862750599410295491435830775463926976808799139163853905008218696356450251401603106419185596962777808052436690790286625486770293732316654620588034889210366477659818082749094444342600503223550665950118004623451362041668763898016310538474408934104791789092128214353210653904971273941270398903260547083383615705429237961560497210284833372073489673404739234366529212703938613495705219629812788074358214626577019757272952613120898836543450212324695962275651351033184096717227289668009210792382430351364757671325541391124311465837311909300939535157799018384917110917167389663019131039502207313284125489724698087031285515360433841119287890702274652326384463951479949119117974504133297761304640938526291405867970732598533282006997968792486285920940382444604782381821706730763750584887297800186248674307161283327767538078560135918370359708633107637236561626417883350856765034323683559369234313437237133141012364483957470959244088819612325364570688666059295778617057954291927504445599959153759835625336905181681203451063788023521844719137056257393413686738765785399634507309050280382515542233524887599500535293835637058598483733359549541649398274036921475515204653662976728519116098764957095788597760965801345449529501426237567834894931706564969849899897355461810305249017310228862002943265242859832276746162820933551063003437186228641307421618083548638887401080062472916969336245394377809935779696543695237798221463052946758816118223575122655525900669780878139504040098118434588059513961348172356796247570513952976975672274722904656049037492628234586195147296419819397207110497272980668990819283686810808377711966741327947751416336607942801821495672215595336188773326593681603991053458086517318737259729750463606722055749198335178351141740288915156779664293268779095203888162736715806126749423151315425759074321866143255895821120795837406317773869916537686900143307840676001449676296585188606683183741796233326007818639448949526272564730739607171487632446330134301530495920090548296213518223099938609358815398966839940644772591649740852286786186348342743875362417870798180777761634240155609988532026146681479358060448128142778174473421553441246786932983064013778835027352118973125061145656026984268449326134406368602213756397455318418176566668150292986480928803610890192126811865768837172439732990226161546144723290778469260006272136438014464853400596119203367640444757937611386486160518106757066991859602405886062030929210156213645332811053645838152068024723878446018322015863545214455885794778533101346551704678572574288669296473518932198629764722667571241680979931555642948879291367114044014155790955804409291939269004762619319560990297317055903134364169739368733224902352005828555928872293423975831248825630641692711120772831516118849762056269206926718783826042560703479563814990457532852710994542763920412301853789366726494679863364904577507221022898640454016708749159524187378442036065980807594937288786067256990877163294264862843612364287111750286112788522536426910413628089176322817571403734723086765049583805971024784011116383052366651212001038204824194789286160621613492623725880020486608083646221282788468507817742464261980157864129431551950750479960867792204896319208249288713430394450272063705485532975199662399028171099986051266662320198146055196807331348202087907767237201346498776920910526473796048564792428237961595986809293930065733925652692567452835291373454769710491082388866076341660074127231248025703377478343545998350292703117459525875864053479036541661373995832600105771321413621505656271324372044003631008905557317845301601968316416512572089357131423698218909739178777541548052797689885835344378264244756075204900266273136808330681525641352707794276873728178705218498617467344354093467198744702747373987877875611197222675604824737772089434455683178142722466586048564617238607498656773534908328449427076878358315749569450684800939681910081140825116311730887630102572716593667697005928182112080274602546556430628087653780478896757857990811276175884854544990883492974116789800163297240909457731646614234064997931938031291484535517592590741802793091450197813193188157991873092926949008108736044829868173253040816426488257372710811078824417352444239234313296584524139870077199380892996558592074931702416191651780369972462704743851559623828326363351717754111153543235611163204442090817241803937209064603184994218250688704230800485928843460974842414980022862408406194580577310596694180112249050843009511661451722603628817117490743072240700864020383404904015976707131131552137990792071514493637257960842713296934977061255022295801544255407830588729589113162603648425855143734192647510811645355952417486781925098862918840344567104718678192541317036982303233648309277313558798673883618051745439573462136565791094000521263584688900047366319006472659966418697201062094536278601774717460767794826154978743118819637345773919537610841656785336980105572796094120217321939372873466417152705573472764835851670115400252913122248496426920368137721218399033984330893753113820046960040798646423563789964390128958735868072090382456536908974894592106998622761986458713260005617614420253828835017434133979845751441877536159548350883348521179856765165489364104055271472511774337360764502443343559113804710580401806186297939190382681354514451570280492447073589026826323932020157344978859648405508675151195784155303054522947417134277156923559725602317835226184061880884725580313782868411306617500333306036975056595853909309987643393496843760709630518934387183080156324007280744733356908662734878872663861889940350676957987179710307601738486368205864318027209671994759200411857651720995951763648155244989422453069900046032594434819389665161536494841483924752445598847218809150642372873781903732090261937443740426609110779675423243550040804715702057637273659592363838961178661458506619193789222388411287499611032269726975551224769739616080625756810549206652239245063174858076900492481898394892926425830900780236326901877376569968662240192039828920194909887284821410757096185380518483105436165886081348776852329616948126155076561945956662849095630581047006224244307902102817279994753354891542146780646810330626797169182987853439037128068783578848630369276534726364264822950742440645900916525131416397229171699744321071406669784246030021912083052709898314281451947192459206749297211898874689177864917991802314545185812855273292073666643310496781692298792218751039670323011109961217290763038639179416850870712356415431375921862215186158560319285051237170414036104017988145988919255808227115080770344951848807895681185176379575077054050606277815473474268048687733436771888598203427616609308366761898956287220384288682495444877403896262418955815340669031346888841133470464839618245850967465085007876435062255656052680428179218936537317822773668533003345889346769767181906960282308454260551593105097205782057378525631162257513102448262602699262699370598744662976161946442976534629163085438003992200747216387420389573676946246872952754482094342788739885335086939524572526718727917968615199485280318515283649504972795957268575232291806570639448572349480827254231950709611297253648732769589994021197943170274537240971927862462507843493704613838598185123311577425566210439073712914902442443673033838676628711953569062276483778419680584334651365014668840552344681635840826279474764085432934351846427186549374207207340409650428414268997365802365124888016347149431273735100940447449279312753740586329726531137632846601438847213419711435719089425296096028600430740451545358653076360326966944427688638018397892512670214467659852152132352332307500780495159695720820030114288757923574794931509389709630770791198726566199645883412546767182551605822161506497102890744607154647058907602312342325360628928942680301199538645507926366084771414658007857189611999675469970316171118136761247990483252508699565762841545614084792264511563098626818120606356068958727039986666842050893735725469251872529972304501952060510518609463585999042194275652075771611921560859275092780797235891350081626865356901521419558879695154127666554867924433615937439059963998540585565549122779518046715541081000411172534374164852569142403342339866452940212703264729849083182884210548588209590518494819597366667192757939197251777424504070445220412814232804302751930969355723682414222748403535501689145413218765998510113474928071052068058905429303428004516693704002961377676472292298734814409000553162979755024884805039934368263816135105106949443880567810730196931600913592279136019496705102884783313384529365569950867681488671200023510398224147834460005439763516569787064279343512401673353877336614088286275762224595921724445807149731291150237520077565577520441377450577889476868429601744918488897986776243041522249256803073374445444516267186553503675324681912022554570313111346698231867554135028809211235450543297824481401310244869009162655433175198851820974885938054665339885288435445240906479174313987448009853469755450706266683636098496143630380098395934920337474162154697587553208287785396730898130427069871299308613485703950543768638936659301359371309214546527793630952763986787795314999434977892922105569547524162195374136121523433014581345586889132792773764299649840089477243218350962500024132305276853228582351167107277699080913079478324726569714931897784836812502785830866071258942464240812505998112557773541143930965247967245054398437411078260207135368885523355670028526833061839211475165419556026804455525105316787827247279764995132722148821010919305454160111695173054933314509120909498735132372624025416747915372993823104820312736826068023838617025070180735948748483512942383509343321677245630905260794162261241946262052567005953044965176598896927410505485732014668754106677172267893782688754934924698210299579074305133248306601488633660605586057788651012777897429196857248656518178241519934726450595964146419130366062701176737722870702564918650622315193339958283199228539028037334076652650177836180231596270266960162881690635313063200328450698726101445410303346416500094334260762739227504095937430851012877675964413512154705075235766076884780908185766819671373146938887589761940427378892241740787579959612135588502636412737550257396328807492725316176692681585453070693724678931847312679118604151957062145008894684525716492540475107378551241483495075560530621244056826977071602802092263793961004741330817327827767637282140189190920056593974107810420774119010606979389243639272182363536776214913926492684837439270858618807750851052411129470448323760331729779429059118835451905540323084628497927187954857808942955862010234126410119264006973549462589432230466220654953290129674381002022940751599941963544621378152394913867196281977284968778798451451822995400226551594103610342318943940655501672522649509961914679902279894024725055690108049551464469797753587478903952547289200885656352638898007507070098461423407176164558868312128077049385165384364844812079519548839336759730936660470889483940347899102241584840154718961124362928437861963416920155033135334496921195124205597746391016791144754473842648853705524250001471802354572454521413489134481029159189037331899839352765587074347597528835470027539193581229854436314569659032979262447762233285098233105207110098278542229306067110775995396859984826290355607579534333649673926791665803801054147349467313122350614486198443610602121802259637699056553798021175015570742079904136591979080773558209746533504133800120173353342524842816468487367051266288047573246868023662184201225246377380852640915969939145099871873702723497251681289783543641384250751205505373499497108437843171085742150148637927356982961241849779288542557067453870954269380859962984424526667075288892042971839390245595420541533055384206518748638694728288157759442675559597793825683660588774522566835848403151968756949281757603322750364747768195622268200409871786021772285761954207262589449082797635456780962658857826497499200685878697752355056782786201306530323837909787056029137773109086466531189583739229607208346109417898410752087326389532983381297859273305751176579040606425031043868863276190062932939350178851740502451351183606105790186915293705246881269709833774116410466124850458132994507327950583078419080007325235141875797084776068559458146444547146084064593613249258474396093883629367525910426318534803218652047397959099493184573840066170995103343447583609143121957111357371515140336947245273089924810081496296563494369965585111899306245349630410764779597961267882214444811917825809111936005742115055595165006430388642491986263165233926662407239868417867091531242692064922508315192061422940287549201299291963047309433116617663691925979322498451316178073854373155590477295782287809432994154540737675948003527189945392768019112992690337617573806422469844811602989324616686153075351889681840929679182017534697960368832539879601130519760563725096061051449192206794499279598713121975319892909775687948886294697759459827911776601874049710124326000136035608245965605747781339409832110601712584490998310825823294734315978161016888022579876914581849216776350063011855709286711414491783727381390633940804813233466806118886450029569504729141355128173936658319208251273660376381360521237387790525888675882556275198025513723379991827251319819443838692647447400251813750712177377563105433280866259937698092333546004048014043848981624404211448554503799894403905490488886712185266811722769516145004134229002377837172046549007281814454241774945040040963636440429934571383547539819907012221223749249659423925419597684928804863961789943343950229281997933031721556215970115652559296120242689360849975215319796419290021566217570952212943082444453662850821666678228085124458216742490429074246537159932982678202121093807286443829533395158913183236515230708408181308475135199727998412310111364430737227958284516816230464815851859265245122307524504114044249985667029024377105153101625256860513503612759278046444805848332037040189327260494296660071770022304012085561907156169924329069210005219775831720126951444359387492514574942634099729807527867881851713586757132208493699504091727366451661084694817291840856200107380045748636579984629692626744458013665124252333899051227178508539652702574632098965083118528182155013670667131992944472455799724819666327917137171948471795704741697784559919446249910616627162808544224363866183457466087604061711397575322736506943834826791393767566549381187154561696097798060663259610206157973292928941402391089588516861619820987774050313252887968789879567416480033852686199722808373609746169736347462884691359969181935250691827991478227630275006586820358134545128557356688596845645349429212032695538333966160270184476750975412201954759659771290472251832408965508935876099099059596319840899822336981102476255843670329944609091521302176098659147355787191550296418606439903600514955977039210998484914163094915795801034001781124414933204747191739960645104799678730140843891029566308365494856068853266395980707293241883917638469882008671434418538552132153900012828778843984988279467133059331247441755218899443989383763860088290812932782371289108610989878918659024690439143195169045677173775260024599461848517083830388639465669595938150696967686452578920830261589644354946773452248211111428088680778957614470824578765072902434092590028482026324249083427976999839837265398838949340369927074118403148235097951079253960456202930629293578829086311342080223227267528057362429577539651742699753549954685857750879418276468209242905939898078203537061399874168477671004191415272471848273102250323142208767837655630418927065536314208011977701936525307018124644800625770489819275323073495178221980155526252372456686795184185504947398506147233900906230434155202882947143952718768976888963834016567116112780126792518170537953571739670922682563318738218093354478795636149921370305880675814012920171396833003196059600320341538957665104975849869836798315196545997304746968868369371424835789753938101140809148934347432046350785135414870045224321286082896871817350870236829671097374094878678841606250863570848449224543610178170327663101922666436216972964636068423447184996904842125698787360505348832780870326436832786636646003927837999168071494686970162702526955611569997335818013233292614606318127147717548064877602994128090679657011092127811491331465027053511322211252318170448785383386161042722863819726670620999290857129808012383985391519780122478228364990335864553543277330150371609332581995776002103604789956404395620802383050132704650234966516370119974177277518472934053022584492920511935426911316391655620024184490595118640358699121415494171644258997451741813148391548370462931648547684832106827564723960068114796607561288101396913288972714181647441984670736226850244189847825565106646390179931690305640820015132483091069997308331199056655257200854267270327626455270956465698691854247769469394836612381369402423227515899433126224205613218414329330524821351636265853174325943771330245689713592763832221695091036412502819274965031660919042143547462817017257433858972075182054766266771068044701626917118472757711235920487037866531200584818026174257490457951260073905485828716077834891122141550350930118534147156385255738131627256994766521996161974791086089743661548731150366337465527061564697807337689424532332756450523699962134494592600067241643770670039657436056664567719325491126486103806214579491528493599060860195354296613032155317730619185612666001423723403263530231592793787629890446198942976991332461391959485369259798858051150186853693858237866059015314718331605744066941469686991405428851332212646270011578557691669189717579649122109243375470163719426562845639493080856041415018884378650469632828405132311406934736100418212593348850906341964497162324250508909704527510583026143134214502650786810971018666550190796003868673823912531166437593625292697931919613069538013020277271704886027880123195161786067378515012779843325258968000018070385435051081863626883210343084071296299572740970193347454628592942373015645241081471654069710991864692988568496650549642389286775287892488261294742093531100012450375975960152945887040231772718927187119093411703444698103179531043739270165818602063896595583422396194748358695890725035361299976851263875511272450622980111427856082361483618961470083225018632312033459704439274435410938154145321566542079795308092286891523500283393356015922480192311482423082342696637878781384085782908579695307754041403583714229066993000400319778491066276117146533117078751487722494844667674542820007935027756371176543239983728397726898898636943723898099358401044119448878628874899290985422338725718308239212002993639940447161658556169595056090810928070323756862743345831557117816091762956871339628338754178854451885281646555464720497324292501010534105784349280541275730277761657518865827454361917261602893440092583872115932264205030879993911801569386574241498767492266708351030741109276057529162518571054288645136903108907763073686918917230384165446550078237817803892634123418145646991334145753424847610773296330385219429499971298307078390579228433872472840673976268917994753347597759963483700366392088077557342097023530131709223486007238278480841615559087837216058287540012532559812337272282184640110357418810415550244198601884853720084329015369523235553834279346921516083715054062606432099784825672778172833297041494729061279851034586207827679727696990260482240184684278912251916199595791307210839236929689985118469251184213121140314969160419248790362275048760520291705355820555407861268354976708456206911695272776092346082101984801924619145830968709795953160829761787180418219043158073977781854425726390711516451527136397197111509540722818049437735192518628878076687688868842609416528747289066693663985839011449833658033005957642299956591404818016200885742879647688995896611343164682984943766732183095553356684077081550829380787123288835974306730657299366054290159276584593344976484149527345597169130501626656586880960222828527474291706869489296487993689049053904663507432380387140106215333147928265404192824079562296215014305722605032767763403301987213505201151639519327398480194344404023864159043417542106914304448516493159321786984926112325601646824827858810811368479038921869723791886382330943426762633814760596074661342603338531530839355982891537911796395975989839549787790764451903232286502288180606697660695216237991904877842992278581409368507751454437799470730939961175555842558904297796340993623467280980207625406858456633516351542141833764270045505021976277074733666372411904440412116476712088337144265792764528076430626132835407434244494876871687503852494928671658380177455279576790231798437352332503109339499888116780596759891064562991976458331153959042409215193091491088886097652287620942551266982899763565704958470719637698917259973311843182882932473519239951732621959458730224884850917074735139936248664852928254844810368404097343275726930589040959697730874802829246728669545496975661034255327504158099381328253892130281044745616071234886505275713315743647982387689430346989828905370349895547506711645843240372869945728420546162222699619544271690091019274455360806031912002840068462703254706353558797716887846088842212399694431610207530242990795174267186777638033959627091254529455384959588202272928584917121908913210890832590897713488928502531987439079111901775523054914005849381316993710420709523050721036146578505253002427360885159223593663633997596707985200559767553508175401100650220903213762394773161871649473959495413196183270303859363268384344004378680142632848358600195373781391394734259842117964294824078569389306779501563814070433516568400172276777363044072954993086743944252682851259710711169292771766084220372235270151157070124880193763135211232108978055150491782654330000501930922181180907122360805872187428245027879822316508765024714459980044840758937946940711434783799494584973509395483170048929772874037469741456791237911573221976274168395987709868456860353639107320371430532794342418405998876944776923665971607511962651546062458850002550369434903066499522250027590494748442201095703732003536474793490395720379968885418927864208963881227626945776325629816551625308850397120048266112732253169335405190958075861405471252652161229120102839195851718088363694408133492291666542330888537624225098575025217945712724232310489507631965461460209591499463323442875939798956103947978091266089847307360208954533752200485653830515171706127644914242381209200597810167717541782643213169717139358644570948018450665681190048696316656651367893867089620903395368466156670118124148054963466933443955255232707307073295524228835960568548371754348754831159249098864766122376086436117210811028535113945462472671999899266238653968409542925838386655926941330684504135597711579479065505324023942653858256241510151909924613588122272485094068483800265022201134716084988651209216042920510101005036023350401549692969293764996411827271250407998502649636995318360000361895246595124705404704661736326971481857098219590000604452261343489922866610790683911120096127249593733697214252385964868341012536757288833862297801273884069586602153512513472491986651362263597820791104892762344949841343927332493882974619484255924170858814877287445869603975772850449081457240804415127576996634292096779448103917634263038824550933364858097456985683407776064129521298769299947808640707440632121769702777209328268864630642460831723999250235584498686351562252853080592919304616211810837565304077050600106964205912342189124426032366152990434756480095066968995416129589784766409426139844481108126627030161173321513819083604220934792223974243114474365198118758778944951707360979781604984059388396452080963899369812219792049975192630573188329847426218668994025180811647858310409535782054545222806290003336537535143761035657476996709695674240174324615849310883102736833734928879620198860575478392435941550009769000171355547202438506257776757463288214250447638743452241287980808383005198441403751437207758546196985180430284685195955407601014681831777369053281610089820254207458993854710580405866244366742790792797893970242988858670427255910690020985786482529040375278025758266260164926256615210953352077338563198493907124053698028226064555233810394683690578458684087242601428265532247248550415151916855537962328116888085278297128025076576595327274430507630209683777236637996391842416764630473637880573341642840016826884674463333334568032159440524502236705266967577059767668641088366941783494094817305678002774456023396958881829158351605997552152968526239167305789226425914051118223449233577273867738292292523599247613703008791426730884638141042478552298326069727348124422753859104725791713340051398782573678680084612906391386512250628190150997195585536890613195985953217836176151404632898865093803741522149864737739449732488964416805204105617038049876663397447838797017791273714626859641797014446928875787902969107506649405324655000582880216323402287646717680446675235335279667456671030246171550368036842378912680803908451621360516918169629561055663655846985967477643395524277839089568639330463494399172749861136406674003424395360425584776432694116974880109490691560740555477159365642481757291047364773621803246283289085186409420363253749755991976688938366342383588790143303810723314988204519228040408161791306499228874495363471730622146616695120607656593379397706617942806764987744765090458072505019869395928415016021014883150357313328106395201183392842297572999096851646854111272329548234437087287588930876743071279644773904058725583287353814302265841170008463016516398706438448333087453247780367602770818772397815229530502442239154471286764969013894776051325219144440205565000888477002128506079459541606504214709715595840828553897464465439872417444898916587080086051973375521028833819106200911040179897245293264497842450969449333446983030468428253913015278837681779777957355193652673861330646049660599786376599076886822799688051406419759768140240331716080030640823869619659802690412365825370622156679636284144323404947445686687058621711691770539773397759001526188823282120245266189416756342479658164871000281534813796312234611634568515701260496195163429828008737369928282463727328886174918880005765894833119133263322066479471897180066749513270645382941674784645061541197672206783249253057853553892902102771174560208650752778682573008049975330750478415104332320037729540518035159883724421500880546623321736914504727767849589680037229933017588058663400730646771843314534597386595738293573215205109464024957808193536436175687963491353408821997709359373320425102325589942479104499505354493824522567556279664289921954871274438839555906076336297024305517469110846207502801974704553883757467058767695729210421327768227012371348753069191669151531700725091985207858026768437395357217911360348750688787059518490771837779940300818536176965392273357307314770034991391562370084371396930368349351198198920093732817681473001852542070842881373641349365234126153823211051301722261708956493855763588994047440639376812309690983204045801633238288308829352829213437917397283395629629623653097987582186174754739495892363385969220279262094085140754416035979302160803826023366653529299340793928025975615009453264466407315246144959512016739751380295872050735098091146824385195103579165768890841439637246728659068011422059712068553627821154983844412332187114821168911350682561415028929298235052263408096771103173941463923930710532211809049404363466579637616642054461577844263834906570733173287601556034760306094222448536108824288665075661985724708352696070527512222217793026112301197205366269810722981656021099046109068530299981416904396798330880456588802507700878816986856867297763195148013608353435878645460217077035476566478728609338889724254571942587266110923581583006233847718865948052262713397612720162150662487399494142105057963668633855846824855922775860550131465145594286760438408456926501081965464076305028246395776242778049712817967930886507040006666785213335979144790895363343885542423780517627180746501461683896152376296146996840053723738019352173977755409662942626707578167290879058117434972580932633982184764693236131922087922925116981427541433411808763974032461858524816858288814219800312427997773654934255481790306847716038305126209723676118025205532405802562944158045058982264218355415260912816426934826890891772942009274931265879227975004313157091701959335334924446316106761962953363685004821141171660122352509287657411617357037588413959728990601306389238758180436864741102260866245207408704163562146991167942275563317825583247878523630111805185283105557054797973365194975388279205584524000604632877626590180428957683097019181177689973189526899256741628802157168552887218044511809909511856196016894621231406542404036581400281388534023199303472621908970877971515839453984666893022600813570966914248358037839316372153057999458185259242393033897345625394696422857823500785166007393769305252873997277319899019542542575995685889389843302332037562574294463477945675050682414359558504120415031100528402086281338114644826194773280499061014752972678810047040453314393201971453769740362671997153721145092768184176606804421032741583396141666374530281654872091823277827732046024008765964603669546444085934209188708167298203875876036479226637946227617708748748874662058881858349254570134895318135398662138916684924002846721410008102152161551370756866332917969494020996428123229902245849081881483328693811439905788852534628736679290449604719266694479620812713992975148498594032362689155089120722972497151076967371657349473731947651170983122648287569385516460107621266046320159382611498165084770750752413416001910309846914954734687043502470766409872338048009318225443422616510405731994509762077044578121042281961138300004410999888576439049392787763796597198361983920875617227070373362877713128293404597910629771889048170896069982991413912178278528555181199067823218953025233367921284108732936635891776225098222319594890682211878589210066091811659429813669548111801935163247527452670433138586339191044472845016385726231859655240870099790613182443446644738908114877505762105528121328855834489331095225438864094467081915454674933353202293129351937281891809908937109576313864126755956370473084223104296309657342510866155518572749936015105212599842373969447393714296321466158399543744587064030857665081739324931925061580381195548996217450535380339578989414947594482542105849058230680374473053688724617109971960730838551418850412130868682845522903701478942248641310618590973797678814225043798166656382122602243551959380566020550605246592310665024858283917733172093109495358038060423059596541500895330330693661781165384378162587498551094122666087448540161117665758465658400002163137369379826834784400807095236388398766146485895087475697790362435170044911473451012213200286968610290587527942733282641258996354541878594550932080153395253101661445012051291239823680911952945317498872809524600565917605154920577217478912604102453544676582670178621570918766867494673170150026078759957066707562553159182934290722350992651739542186263706524446052731545239624930288893007814340038242034248721912385445603110196432357904675184851086990437615609784624630110419114000460695049948155730832132549825880745503654907010279643837191423287163099225869448712820480251111350389670019916303072196191041987212532844838020695597859077930729763091450553673182340470224661029593302841031210926640893632610293415761906558172790722565559639052271998145225814040580273830694800637792470897000531190931728073870504757504043092290414641129812646108352661605070224850272276257030462563685375189237911220995417026289670807179501571672494864695047117797113299516376564399916944795998885569976100342881987025068442586110830695234186029363094920982115330751065721836975036767898703261147340114366957573566072664998866101131738191940265109510015738092559096158206182177205348141591932908239551608111960369925581739140471401084147083876063513407387235292287027604877018640923540678417722686116266977114168943856768799106877301835022427462160446580935834058440837635658614574981121542007969321495933333807982904742401537639906712363300214499423467794652356070475027552749602884727928283215324976073817330359868791414896126349367473907120528739725331113128144294142798446791498747077557536626980160816587407596887067695623590975779132137501288940400452048550170547661225186276860279123277593789706142241089636324716784134585639715624180318643601659282745903331217083719645281540245867282807445332716122513047929174542079918505082672521296216239594179758412275620845056817170616391584284210451761748450950929455259766905256248445861371937823830914790326865705558120017567663657219087907752920522515542919585789415654474853960249351662149958888703356349322449808715387279146911975369459984695321605742079947268840300778242857619589121029969933483649192411048894683954631391781501450355621001651825054262847375501146678248773653759513997361647602153467248587223394401840132504180710634356610685394347815908201061305866517382414668719726251822954107563464271967607852822322651401272111131672280009126737825382345498548576449417311425654861938992527598291133565524690571659453225410927604303007225676251693358642311376047528361584983246295644695620021728881036507878718572368284786161933458963644949954341923203588810591589458130033919401961615267777449885667069630429435540895998901558842166589422383875162452085217549658852296287660529448747999857915633221250023431594717189699733363939149532374436118780765916979745623925176617853299594926067757705758241087008295873232078023991975983387966626285391155028778218331581582871146155282340591585918820097038734490871591167101857734968532298520408028072152091268008887309498342178989477048782290724036275712980743997800109306909692717860619628756637131840077835055432838668569395047022321497399275457703527873793347289687217590255401711108202506325582537246228095869712431352697783220466390780370701216674921909679973636690048034397826900637941417618052186807383004782514250567380642057439405240093773285944461557822979454375894131982362248728424558968161817676958553442795463442167630000448604663054507135099488257020316090818571812892920838221937972118605994544382443770441928965442877782287728221344058875634545188468053191398629171964682684685534792693464488077412415722232000794941707040287481729339679306454459179970860008300303308842891607530015241547674442357303612104216898511634854490081998550732231833184768022663105915414673612169321396556955924036511126272857330934281125639814167434492120877884747302820840988764632696784368740103580525849359826664537034892235437328423528589331766917401966553259928587150923157241134394674002215396422702657075137055577681761586511413666850970446996366827358194748687357351955221804639547432211460765746787726161003875214066784864013837763531879563459207045258873909574743593649285599120986692319270959122669479713381597549284487607376035242336019141573559729075735533559073274537533590056736677391110917263454739760431641340930914035178137690793319456731098229241430903308343306466250082529169492529484353475581785914812199051991870653061849490947992367649391063005420343269787754743345320157631651005140742194784270306376424861766749116741380444318346163921844147659962878410876513777200670916190116133058671269357330113377679183318651568962522938612340085890921996430057815368152885761948344381830026960640119138769482361610270789862396315234358123499456324142781451300654123697090658825135296912743425064548164368825314474206312603006558659333631665361154988737274138708049643183158282645629610620749285362987718038317164995065001242456445212970416451523514046907433459846084662072991184995445381802034793955701858269132297338660141298573218285509508269917983554572252598098142457123053231617288851102334224134850863679570419013262236581706712794007852672985791452904348660144896828536830069296749918016321559031704915324600932839834978898346442259907960327707168153163429471745941615192047805377141654635607984250484463837050641529720142313264118905026052992082804823944719593287534240259487459058667078735561355847523027536194128801318733997510191315166021156450502490446068002099825604251515512703118273349242305105019733147769979678717815786392408534452963907085283447741773820688531934750038879288480485793815199568102468045319753090356279121166765432998968402451958552301096790884719744380122077033627177585300398774278315003157359794951848304089584022448997155215729647506761381645956024496822859526227095302412039710580921881479656271142681987278198604965105056897208460432820300437879396433894126691445703962386191871278336267487079624102233249283520961749280305394909273393820784013497264251104958287498067316345962601190442360343047276356743340780637830889745533152827215425998526707405854511823764683789366273676610196307700362150090407030462695971474529407323662919575793954048140629076970737522307096257371077669233118933117479147834315737932596425602888470399590388337066349337341106816187570169751276324269973254859222703649552794804030855546989915267918507073481403919604053173837779993975510981695601938301774236584297030976496625188279467010116645219837186539388752380192122737366667282732576498296213976462753241895730311547767039655692389464543244661897567706245230992572013048155566992249477109213122708582795663135248010648989669913151555373740138305239248355243780828485413371083703381604545717958205701744247116346622932338951790983998709304285153813585687424211890145213053291113426125319181329748918690821953122037416047662437857113458106055186469510696163740297070654008897086329471547515657378579708555436831949152171388126800141050270641814484394195762646040362259220144946573607818120279896486877266902991226342576517445894448971437504330341044014257310107079852728090833472501933816894118033943439524695837627820812095133548128514248742869549571342234642904018193468135232717178096892650395386878208991396211525894948227402616622742210129158695610451174916664366331215664019027125466766327462958277576617233534390128828662574741885954465651904974895030079501935462997376407979184050547982786846141935635497584256360722005107133937712702210960886625072646252654897599314999970885305513132747983841329404473208908677229048473506453845438591394370911611863178401877762893929662899451179148647635746788597671746280492731131500861788454020347957021312803734658861364606453763727908877426028431120288969922733506322643624474906608169508055735350860719170127542690845874584919384018958324736838108289574232694055003696126296510091778170525012079190765784405736094068351968124414112934376226374347276905378514327705135690818024804831737656364903102523557720213092689088423671544038481691979349219862825624031426126534364459103764266139136024783243774660940445222716559950813143165858959118374333837363113169100027801435598245173761564664287885193552256796128875526333129190561448774679359682252089599323081705271251698022971967099187431272623790289993905714107228038384679278092867180584351034389901007299146875332858171309431675767341613908474625694128759739078152432485089483587195104306576857138645775161668800008558964196210199493254088036076747556983488340173658787808663973524632900179814139782789899236725457601744484881489981236401855296763135442111992273826202013677374859472503228705752247585480216235708623344382446677704268300404138910504668580785847558964848356253050131654110894524866721108093925301454813465891477887109806021845450961592084531621366874956825461358084452425299916791471860630034532534806165441705460106122151634269739864533702908834721505938256931113165755163703206441195340428504360800984485921086448354760150933280718329500609566597179546008167558587040215574426430894686218235090575271084610096988537842504936099687319213389193564423890693096437305328507512447505707190622412287409733148338451288768756017611096880308479143727536401027500887309445198322566344887665481844093464892889002710909395921146022655713862220959057252300523244933721627007061547652014382202017481468305928274637742806947471484797927768288049712236082801388694358620186975041133983371434576493136023850628475522838059883113445935822834898549455520922137687406991915410658384813308475291114182589699845904001141035178329948764020201747615727932645139911138580465209526781616879708719101741135997120317016287564197953734380663486741270553638277583643631101933891973739519525880228245347970181751752321090838031438247903945316493242356873576271955279210307537463167897939378155943840357115378906857346787519430474511815185402602301258534893787081731233497381572886534026949724542709710854362063205251099953878285542374524231637092803366121428042749670721103089282842952673061949663633835362401517546331622958360460227542693880879688438527935235909551678114932116959176470910546776990271397788844944709578962112132486498479406206217860329782371064240999886792345866865828013555319920911037739908834611008286881500525067266811073041499214666393442982884339481591011911614249992742925034766791596666749312027259391847369763668373939875653155757003732272674770437317406487539323443593940725162534942682671895002462616951509453105989335876049597991498603734128372057433023701502388779585049489633236694602695178146746604146643871655872595317475520684922825187781615276239112796866739968553598286637664231963802905782753438147441768069100357110482206887084992188028385225983661079045256774846378135784943381005166232997869290412917287937528754762618595430523156740808726200838380883845099795066578170080289566828425765647361922439506365043870467237481721114427849783691888594012672704551137221531467519180250781514162194431326806181427045137862770347462246592857346324898750358762513757851369625646166244839939852507350170615102387649654124704626501450954036246978381840791268530441258284106396611285078066964819448265916005132756845527951364891725819057671893081841839985290425411650063529771671304979434513538773024148866281683705744084493798320908451084376077489280831695812230842395378149804697797462730077491490682095036970946744934855575310460257919164252176056889225789203890868839383762192234017957780429605218885510015990535823515081259219489914137602227635706111354430519642598456787386815843546344778132848512849641933666447698770212947616876285040035536802592341972490852362607860822188863476314337187707230264197458893468476556825365782512075616878004355418178640494337422474010645597934246361343484460791242860462712540647874064993020349165819898791077581926381996485491139392178015757053939182238431617679681337945387493934583161800515129869438012822879751252356932556696539602110765637812331732841256739314712428823997162684310666210120358386755896467564975069346541865679240063194649572035879063084422509992452658130209405509101679121503048420020636534280572613941606047979229143116848996039525944563344333817850503250793307259782533491049230489152398720132556454051391525485495585748488788460033222588088194895712607453571326766031021513073737332203454016276674568748106700464885567312485202734793517995278252812061935997342656817145257547137346880279059517800769759648270091013350149248423697999552093214121400635438253141022612282746443221550726664554259395862935799794519641862614530788237907384107901845137037048827153334738835451556708626848494191324257929794974352199558483224293826529498610903522498188941680850153368550436668960913061663264864504506999368257153852787804529083578803160222749335532469465710915757745521520543619393924749972783317228873511182699606692812135841385480024974322646886025352173296541411778582669262805317697267610854504460316219800372979003078571271090649615889323634327363664775282242187219377024614968690788548357362863740307393238362261532429443130992750501798770454103077090528209717759636471422726726896103249915353306492915465147528309360024167754183047068441135229956718340476267198889700364229443855081418509575784541147846074105335455536005832182315944726984335792108128165963953079415990692597157792398957259348035188951202112391110484244085685128541346144570307764549857955514125096401557043338282364139462071419878155067623547374829587210031916009760366366578453026030042733352474442004630640001303380837301074728411525555545699775845505261132237286429183786015393416830146132166013732506220094270277259406678532316636347103955427476526813244397603176674459733802819777652112446601005199921113293793415935873242838225859695090347141458844952118174063183105212475326692498212222685964123978468621162042808905928822199712764573420684959862425316969746977255547218192735737831502570003230362155949413094934713886802594635051229402680983111985937301572717197882498090441111106170908693940405258622505728319373627733824766336353142552895696232506402235169766140801494298994115625423430507787985036701688327094647288974745345443223957717012251369238628520802187972039611554393917989659176518317408051366673274108114608500034880255705186027708457141602590362697425050103494457067779779332115983527050324191280727315280559357397592080844492053178677620197528843155733802463102954625985608655134122773238067846743199508980942804927264828530166667114206761909705644660399804098078483742772963690390761238225090046995144714074139243860705574138781634186045535813111075465569888428620315051419744667415972699843204793806191495170398954817832368791947563492288152049872605026446334693162477674666766131974963346026470964500828636688504589478832807560017880009385757149819957497150065862278138586010100655496772757735199592447728923274315096738243497489714244308382435110772231643243801202581982457920118121586038453730111993672802889270041112011762381946872387231748233389312095996758647989137273830360755974198161502103796265436379197058506560884342403223942521966333751609507276085256377073497862274475935461805200898335489618040998446337241850310746096887972551997230469915768549248667379981502530036578773213128320644116070248940624291409532701293157913170350141630625140341898358494986444050666470211467997370847139039848051169964641066136327234534943826556334546890526228297244420885085600156764624441737183875410396021349846998136075547460492794012358346952495734057854198529812298181987313941356275970888682771202668380437263043169824153748353486249079335086469241732095719649991797241843352939557876130321804411981858270502202414158141376838399803147438661867212653220956382796919135119652742449662183119183057512547953545407828216652140214428030792125873037031471018597958571777852926506995576274786682005249568585860319228672251515488054164930081727890583094180221503931424480684776696555090294440006916182846561316151878823336052048197116592898580189079326408313253117644913436341231422144833470241127794428258929601906157999584401659504828443423416346406169095149214405299682639389724556813403249433338595135214374062937741128422116852366759088474851536506129982005579892576150880615586361477642865108685943056903986984807450699812514541934409911186970190067748105196116950636715869871959873803930784947990081843559216237339740668458644265196317560072990145513094976727016627247423921052819108259656120513843833301991931931407626307401761636874367785871853642513716031514762550668217224205525878285417481098971864151474777269140322880059153552607227165487757698608352437310850205077780601300274087172242332127489771103869477666579087804127683545569013524799106268828573123634340467722013996679696088459946370200305523956290307185513848124592266731844555877542686704380203197728669265550568912660473897247837009039027232177850811018620237879837563286424014351338811905018782398726176510151571870989633546532198471178269467967858517477889058617293575922092237770325885093305393666556463224929087207743788248931597299560086945422112813825641773809588544907017376304923908543920553265925949647846827224394790394887488896034749514684531347838047487569438164382328073119556686998486620766446966610319856290628697523927322005800918753235612806206449260073083640715216139204327822376070695172750064841220384220647607260186656997473682111833089316872585383277956023509743577321029838925717760161276140447802866975996446720265786975460082699611432469860054208214359430593821418981215907152943770791064269745875869825521484478053289666044933650405893486006992448416156207127923670552752934317773096317418346390868522340662409681626294717431271557733693674017634651817728039741913107519058033184507492217147674702356822957408263614844563074746955331957719743195154835417695699362306337623204938652374137259498665250221335923068859788809918091486148512125459745081513593825745357583385136097797528584476622691736197319936846862560824721500440749877682848829893400046130504127748343169783537303446099410438484880165275400682610008293263375827733138599612635069987726675397219509339584919137103324545908557393033756237260408020403158203050852894788420937232473807844214172809006311922829670151552473996743975502860360363644308016860715792989711342863733128973280890551872585387563713743544158123516906315904732740971552626094530791938756508741838229173315841515553241699233906881065100425162201541689662904686363443311007180578769517243511197161151951561411588442406602515250401646469453491143538516199924087266488653533628678147731393536459935194244183285483992064489041667114980241631334332040121907711976068641773049866573866328665685647923829373629179515888893674595268657410643644440621268471480896401282047845624339450184867289341889093564156501513467816528363670799835199754105282566677154858943599992230947470842703574323341570785134771775918591106634815756304332433861130679426979708970089013191384094205297401302321721713027561204290059341685846613441102602067627989486542822518915205508788816557337221558405638300391605111189084592246747732081152997960674481238995909107905664980695507423436288046431046992696841470637003339946342646641565075750549395376623447425517729215633761242370674813151320673841500549490362184130824368139011054333716621854731970970402707818395961299214164016800824268862196161463320495904037767520336106135916869828230155997784184861586405798379707603117327721100338348452877544507772881424983800646327987224760103953097816871084062442582657887904926083584219499095299455059699242819726826345944488737288406809772997758060190347827950101956285190832334897615274681991182101709701287030330255762841492791390629523603939246575867174987960314572789324081169565869402535706846414628388610061511872973241369258919821367871034964034507462896998055645020721458152930279859110021492998840236955847085898599486699274471900982461998469613234561986815577033727288796991897965996244040827347742047131928577859333750981322627157823889560008081961869211355058847418805740328326884141519917102127615741724021501515633085458067606084403780376832432688291018624549535292328561722838409041089251256076421267618978659831614317038360607421264076120692403504521473567557985977599082894235513088207809544978419574885118938174293296223032551940755637459493202128548269974854377956101625228289015519338623872677864011784956723853370914458227303914744380440875713698967561866463569947460841945938640927077623157670318222680334029290493099386852405781213623434356918149918760302504941308124047366042726007947010457643128023609432128295640218234254709588231285254707978448552195579024459567524991574039742803339368492659250728403655068778000474199637629309627099450651241942179008581512465721196831752355363572708591392428345247950881224606674612905648213915915478681658859318131364621054721458710218464394496432659824199620112263845414142590518453644638459291657014549897590831928090260363131431081120684097214597304355907427483686479646649640865532310074316358916841409854644030279774500197102194183721039328199522147022111933158393070210023454225927081053509966397709685868176228661245677820849068830321104708830190716015416669017329838416887679421124129500150268832525139716432042663145471490972215283545564462901580864535510244533602515082033231353826055940612837384050347562919341621937534963399037060760741326018112735783600176479662258666074675832106941357038081511557104695912920392425246211030867550244231813989891768218676558001057305555971524071347367558091912016003553679971533669965437169720553073436344777498108221693001037549529430051703002101892144086737043102124485258323152417188219943657344623683506067071865639735135518679950809538651343845805210127691436405994223320494356129631190737771268223847856621857786949561949842023294750239478221249631931678913187978207126643976279875555574593614401392713211290473883297834340741722429059103815577076776819442676818542862488255811919688041653455953379247927085497951340205582504569318666025606222511155289115263681086060207946550838734771364040987113789824207036659023554065488523606117641768400366798781759158747433874682958842997620300990891657684098932604244916268327755264532359036722753852762324298619551618383833798179423394992536985091034577070769093232139758015691094335008156437199310906433220890252102761468061101796416322570088536669259071078891387023250686153527142555392218572148153368039149721863901366313623842723755060024657232886650171889813612518752199695140863997378183389611316326131242595794239201429039338353962757517363655944665373362567908925934700338885203414991062541849753461099568904260644223796014074500893977497432017672379330655760293967691483930535013844432913629339334060261907626097337398181206873336450778097434821950449743648770940170847023723024926123904503764307958486254595947575298728850804919477775860649028080307335669748210328730141428824666526466274446342608549105715885421724013473930865792967584118223779980151280162410908468253966521563416515449269823541018380125905495608135010445997036704786393367981957961494951897479026647728212552072038592296730505623284742719327559099347818177572321221770193136453829543866454681086651364680499686821983717651562971699664898643242673352150877787834597690240654141894922773533573639991614506280170214318063680432440221320630722633901348449507463391147844486956960145942220869944675170557927145366627024574889236904070436794469336023534844318244832590089959732612323118983142063370658685417807162696747182728349917983481794852674166550299972796212761584606605535342216586691898758164715306538081057624781340731969837333395540737737743580395240919101258874571852254249735734964038034018142396285637425121325283729118705218234851457397862917779332400858329580883042147801235784795246644095584110534441661980317674191181176690546814727934707330922098946661845442524143763859150562705923115954071217446244174563702712360903075500287727348701929558552915075329979510413480787074692585536155755706775341682302798443197576252539359937772699536857142356673062068293360060747852029184762194468829730110472640041438508043020575003145834339032557054115997217755993445828524043441086668932317650896202440699692848705110788213852365071560050583791260312331189894879351847663733638393614082885468782850110463153129927419759473449927508409381701965552230181467813780696439241733408620998254145496656879990399769618536687623629867898343494816404285784660172403742945914276854014919430913320117861989083224642336721766861351236689667474174307790649846282662091385896827779444251261607055304586422434129387461870149880964720399188354197928640223481477352356143907266206919887390728957688633620027875482036295389841360654563745121620779519655652740110921530924098259504131554554664724198487974294901190059161465605217522892994581726870390858717827240319125285196460168604929432845930628405210000860119818167924456229986338942444553373309612665029467252214034362752447571552158608737629625220407773255124835531325936801947079200056094104127428115877667420571966977950471463654671152513629027882004058573746438358094998571173600200120476509506032326677457370713569883547166162634910621288785841827802727027593113358665634339403029710441495105174968065931722450689606247991975965666569084576298965508595432040709725036413540128180195257954116354340769331524212405983440283042021053772701589825182634496678383739963670432142351367164207924199123003038312054909453653307137238920198570241986206539251424968279699752247491403671375725814378171225003003774214953837589766667584148144497398214389318177537718481004870357881785704525462500204525293052104033316804553933809299807571284824014499718846365561415041041341608225003763393993609050047619324659068884985684405504112506439169430477741082570237002789555722969066105974213020618383443832542355196270870994352819682144307218281114323517572425568823436989293074802247610993607864386844556699777956087348180322252754867693405615057709287311209394284462435648537842529045775907314886751646239542330504277489862017300664327401282493135170073902176677516780064335032622995971774578635868377918955437617372969413162419253434002901919102122100435892894626558527886542379906299459548577398955053364444070741666385429419453030121121472514809235183524865188678069057799721864238965923225812014547384074918630110038239127912784816472831673721532048970065725535414140519084514057159529977201583793062801844288705478100607374218209995470114174730587019511252496966954507127153514217472935119989819621509472768482822984416565830052902855864144872245387276910995330887260650952134503341995043135226071005206277368311305963008196351291196874430023778983955927489934825308159348039284342731859456594262302465539464647544949206162089220048366050916607723221531742101293134926356664775214014248242116012195463043974070990667421991609556056315234637985732026244872695645059662432459004176433621058803582276187761215801134919806561610761787181015663493193347364824163029006580012573316771045091509793260092880311791098336997363419400091644994888287252595825931715021407191824078367461425143988374093796611463166261496796300836173629254847730354353120433123756447192432146579641940133420073806761259010793154095284019805657247074442707757709538353139997969139070911141334070821400925170312261804748523726982112009855426138248534092189139476477761090917450985073030542599927226978196680055438434938119392176065726643634102607392973543830349090050332084859858213085672302920241793694146893424104156334010302907946010117003142089014143507524512528858748624005031271581086194882125385003282416907858649689167163679476552042038354389878418923155619039833367844326590450749935378295469314517729410560209348214193946895811097079926584257854045368813605070277761785575979388191852681825129066662608297493178506369439447666132873832140823950621163985283560859859443803706833835477925473548452547727192239352191700533498041553077388542233368496892198799082948923345299405250351027884448342170192290089190648989139381767232272105965035417654853533367216086945821584849926889419617428218170190177617685451045733871265710392645937278525996486297821932510927661759454197791932954430344242889390552754316396711576515662966243920865301714189833982320403724015951055700021029493786469506976380339851487750768003772954556763156710904063646096248178068286352313473882052585002797831768700719339345683161377610603254935882372882271451390614603893493980476290885384667761654480843535215779862014979128629557992838661754775209257554252176534815172995545635789333356537031813336018262331470411821948607963309071759887197181453562048775150066484854783940850961825387643329396120206593955344963583969324709116983374917543858661813401225367678842122803231718944444658450055234949512708171621557126618592957632408022387216447794299915064484965693829695423650599361058281594280582068453936587297827722853471376205748440504678378967558925054112467357590874090856647845388271697019935250724163770199083298079259060103870257916504960759366770367397019224718190243435124127659665498553512087975757922846782999632467216221432780063843809531143165893076553955127408371006443369846791634860317238323073911108041994842499528706247829152349834647680251583052627543491756723171555137274204798613314928227055389374888233730360124260380418842292347485621408489514855627498903681342518304127300948575969938352200539767135951415245307570035102649158110502159821033354795518804759747503138439069693802081960481181409842148654302162392169812078571864538502895800275346548012644587884072143128715232768193071390155845136009148248838256890325029439734710298234531275166478824437914877461964931659975699117624255703767176833069849635159752075259291230214744333730060095649847579413833867172857183050070013809158942791145812897863031282520069782582885704578073240492673156924853605039598571348689151640859984467279432202460189040950155041859879550327385726168979798274637449974372645639688261732955345878765813451737277195174698043030199622091570213438216418690778206363569270914098275434005236710631807445976721814877100084880999425164074256352398820689154031047322421028075863301633201608681666604516181840149353167686127405761612153784722913722567553236472782696045219636482465527192473652134864386545609716655699760371532001055379584641600610445089492553779243651830249742827582742302064104776277910968239454583349114607077663224909064090557451227610541793346423255042241837427935704613101992353884910912630824219870835495966129107539980016895500491143247470753302342254164113607320031784078455396456766010823481526284962495055555414567956485788022396694617882166481168795749375726507490620208129470455316676707880374856515321214424966885069983652462995099395535970507174736754663206866242412095877190210461973439109075426402439144044367659091153547859696021201677029887520233742889062676442704623534129150872603046233579149706183259157871639152306748274884276513570949148404222291598054282314896523957037974513016352743147572770009672772294469639455065543656376962649969534076271074441298872986331565790756708324312393271749834675483732608476680898283052776000021520605481945937016228681909864884983201393036718851004491498733957350292295586719866303301004245251662698926174511581341089282371145188533588987207558518107483130529407646676545000939914904929456032630377962555473033248959471221645070355644956646682996595114016840142487120770058651910125743484370438264004425331658428449281355922352524458766728711697147052424380877815347959614326025711949121999332387139855214839715000730326661967673166573713065277343106936685833665582615761907723880362325272086539708958820846910925491584895885964023260095514180176613265131207320907978956668190126134535727719272091880710095179407593465224204276515175682214771579814460114191021369684142231130863489412705186980779751221861961360718641694282214561550571170212144839505623064403718353283730138065977030615820609958402442264874028579257932885496744571756425362263594641801415222801362649366057270929129860947317836198233156688951760304339850390337437256249748275995983266588592938003818602557849291331726868998713944092345675702914202096415416748637578098843542354332189366679731156597560040590588879286568691434793397108619815036309790174662007979262027263439194504159646983690025788840119692466053955587724008831808382910255350798711485313159626444014083489623501738029507575589124535331101663260679971998011257094343935397795355356394560620205043943109565606447074439053883105755919962424576781916638388721694581079652877601676306645234249385774413621494247199421730419177643011007842866944543600702192549623442588921307573689047145894773974234871513411584280743749416956647025573922228166422302388787767441725107234084589161270103632537825426632446584935508622715038319265893752983097173257480672059479182991154272582449709978502789776705379619392447043791733777076500722869627082845150579854881905379747871879403502362113008822498032127863721590293639508744874610506634607277031646159600127846517441813017225577622916471269084855907368096047801890408976102907014699548983489305541121920758658902858577131201744191445824003782743006086288999067416036187789468718136048386192443678395407837344679317867482395861343833565839369662791962933887686120030995554433008377803417037756300624634579237456963569869831284333385702461547321433025772070634339327398102878242599269723425121005435053197772481591777880381758488684966788483475608993990887977170010223050058036650892657397301365034330974134952474590384467517602062200858872608896988099903286688173954952476989866609421475589212916829031838431957738291658725845619325274247599293974185967636963837896021831906019348689325372650970983300029185802489807097717928349426235959854533140767063162248457517855687339247323179052900036362844847213050586932275602420129205309445015445373357752288139915127082628612862810665692547754328501166767708684698026592919063199485158049919906803678082563231275882537814021853176204644082067714149149992474210308955450947985528453214112595665766159164838975315414186656856151067964846551152440680906867022237473907861950266152080062957361295222461376252587819025242751785515888300325551159959297869014705677448835361864009074725519262409814383652760841502657502449852924588303937416907779660723744110718806141981002396446227889320688344278002799502296031945367331752205992841833436147087962849794066055561158817787210858702806583620088462716052896882869677442753628341399610773292601701383929341450469480126443437789354215606544083402887664835771011470852718213390156168287006660701166395629244423749760780537562747015144889846416429167099101306403128932521603092202926492643240676166964692612202114349506029979867179113531924600130795459562388327718139877121137823415408748752022023034435399814369690146804999113032777112655582781961196832896544667933781685600810643438500142059847137668555419015600309252544688733798363369743146960069434977490525999298442193374433679058047843091312732837503456710802890437168668104373892153650386076473180037280617151354452686941923845306953401620827320754443306221813338194878831536590357884390038365765403445425366371886391420518792406704219038692745051822193577838719257651010700567835304486564186738944322098590705883571884124346783333359839870602088212057051596818043958704165137794183588139423026465910157072128027502872287962850085594950032250927911867222962198808380936464845492337573845539925448383454540325364749705618873434729801060548331007409661052629542941080772261657247405283608002081912009454950563896552933960695538113099073881748040905012758793025321573377196185852584833193488498991239793511516481092406564672012180474090393400799963039382107861764811719553623851827941134427682396038886450596183749782070135027405563537238667623700530060108734412781068351121429566357870407523989127564210685199395764720527716339547095372351128489571283441841956979013604227412404546800514688850795102776774749599661773792124375570466298816950559822318226144928299163373299685910061561738455940333374707963308324288896548809686303524448180864989550304114637090697799731048956976638507715289731153787085450526501815982270022574079453882576950261967632274630165157308641244704446141068694397046425298238887468987232183178866107001320942992706937693773118861321402809785645051850333036641509014133425171921359536405988948719289848970751723813707539497050622692852316845309221617857737334293185068138226271984494975545937728973000209417348476196625779297669399361496470424105496524313675491753481009446202613614791872946359538617114566907398184849421876956385475524549643731377815271283818845764026951609924480368988147762283225684984680804406483479474267990955244922117920049582965772801124142382292480537759203242532733327173648108857627389458217814340641265643897860914603822339290721825381669782696870296734299759909561892305488792956206074133690101992423946808268072272212146119920810461337897042689556692641567842771174948601753170696181131768898322775435798015161162267682917080870762687601981116532391909764140311810308485511487474859108631692880204124740534702178803123288373825454509559580596115400514389345289352908037690183756650737534770205298592102740158630410772364133227236305909617964765172000598169362121602189583578366433781386630140208127997381589537575989405438002622392653678934479909672972301642436031113362961677945918793322211959318149896304386421624384137651445793124973750944183719655301546618791677072074979952368056539291146165460564051555871977953397774988556952036274939057742076557910970144523926804314083493954133997851231817607130481123982905031435329560821520057570998087225366105001954846245219964955681297746975908764136516081029837003723600592679934745161179467190194640535901883488080704602665179784819219842857057628918003776369629245353720113944180187464705410513865151388964903741264374338599676289535005618914959929877300084853700750668873782911520695768167525058128776642667533425744551938593422117016276897970622967239688934077663860931045359256669549849080346279260368160147322108146467353903739964782748492031407846657111593250745853902663429876188077877188750042909960650556287540403625125156405837330016731688531652031872446866124481588646677977467122511247601572826949109541180251327591425220624109022323212390679965957161377182305892141174246923748834279964504861882426843214829648239567612843340780010096354654542790320958921342288814222888523499254757699229766884360164820833313627656158483738490382244150493546174590752736903065255947285005011441093399891898382826018306980113316136075032380934951810941740402554017410172087326081752153213842980847848714266235446537841532551070110131591362984966100386140071583515648787599243373288484162993387075445570956729150353397874302162018776483340347547041153918600877334238871906619202012090394100423362628109698867549711140566309143936669802004383690141967206231305558219696567001405450177864962457892296097142917416630273305964380079974459220483679371078857786743778478167998571193224666012268081129041959258866689032694350393103737981116785378214931034119121603649965650192608456463423680296974853970779209704209888190716246407581837057120720941404379905944234415339332633388583950697760785858596034580453339282722555718920442353489635346018389632563796999802437728672603042975857565353033329799324695224562002147419807938747873639346351747069127690361375915768075142013129812044596558893827376450778280397811457212295499522615315964554857792866726768692945813478526829132415182388869441275559863501018394665005649943069309086754828455546871527644312382982391952279357534180546661234078720856163850311332879272836627980740856104607753683502353273793587510767982682487608992872535207422377390762046664086837179382755560619776153959137874611640782212969119280194062717547349589017951326906987601099092661738145119481171637744694529563501699729351329839722603684465770540349229997053888823620525774938512499918346311869810488516784094516042207843749949792313936592633172680335584876140016979657991030908364952695834248972660097974845685530603090590273397965917208824236090204280346060194508079510836206577229880946224579420631566003139748529106700325619943273937967553870796962409019209286865041508340057710538485242635749786861991044777495705059169960831001352276406407578825010211961009378982355893203637875376240309990389694767294937786201393481842708350874136551451505099771073457245149228841211251990527890719501895350663892783769377717273875422614391185429507884615350998460129133520897432111339256376740675937262704010250349967930051693039858061265530017305164249471641734603866146713127621972551672017594486446180693808866195906933938805279270000059126547466976134487016133668786908859127658300805851373775233596577175539111278367278773911764303684352779201600745924067866049415732782707027271473377669130774739180875215862865006054119927288574470720051236831700815529126100682175114529258140261540638507056356898532522739486489090817035585655607010787839012749096912431274969926590522005170172038888228246470806444080713394266233332251781143283445167353482675569470066309039136110534180933026708011908034031995241627130821520826375831936822322978318319820204809729241352439470822537488751986170147488090403030558197453077847861994228553886452777433387443771946353898754319547816333960288451506827866676635752489547262990751283520987402333739241819034873756385434594733904327427453097254919752925636000298649212494810385812020477453623015909468909465292537569886842389674562053986501552004327400957657366438298566477308602364170088934041890382227217534094010931406721019287060086073731017397834031646249421095794462610627528354919501418385470124155617164907853507300154852229762287538917778136432924786315789014519716691605372670943533907378587121506845145476795842277915756073526131572209755666442679390555003619935582562663716555520303647716463868764774801454347417320822006160608636028051739704374822682159918625892379913513921843614326948132298267879648235265301909769886025185886644789320203062039491252464985016955194005741269822121509956034006322646550784632383028277283257638962536226723289893132976321124235857022042804565262362690571380438355391869597524586008925128398964345306035869659250625274939194308735254479543008258354113387771306249180759379252347597217957069328656889435157506526466005590813746881479423666884243123965907474001113949563137842183522984698760091335240643795332968349858065709527813967292604752206183956516872243395242924247495772055221608379541994333699301793873445197641558576438133823241797332009174681175236754155334976392566713683756662655860369031899797554286122447467566190585827642188230059895185755777198676376216240598364137697247174483484237026331945483841518957420629831792411746208064684776946403786346672458571263777453657425351979714402090059603980470785893688079814063445652343751480252675364732871183263177817441466393424352236307250974964453559013631525045395191529540532002854993114091737236236575124931604396416230754872893129319846372256906237318503319943167051982431828679489386164002573106709028173421807977778124423797525682543015316126296802649784962355716281968131781750009466330482603312315345532164658269457714206993939378839651025862787380185390161351386039717324562549782166972890452863333665318116765151107072146666269301900808586511454950603101393612817004096340701366654397604955621857066667791977567127207352795099887259617434408998597874221499026604714005487058583924430527379652837058374038116078316553872994903104880091861360938678581937809400512016150292015541355563188965326152764671164964882191993842514867534382507894179351792610912914058489086817314516346778637843017922774912925409084229487494148966017272536902279451605170297029409499896138741851191915277930787755465453058995065160075709096994399662199968552559996673947075623196335413699995522343950498462352087563071460693788859110634924033750660769781841308918988875261299930906307728405755616653954309210231462920002585581132054580215018270130942776206422576258449997513026436932890942907686440373113719839421361904829416576952710686196218747785756293578612086999217530975972429311619663486390975898502020640500327881522708823374767093620089797499944521681873450048579676439354467688851116486923344009134414301770086569034367693999003633125459725215274917050812600808026527742599675099706371866447766907032299859273191101925837195051561485734529641575014495117106715041351634839457955367496652135420661069502991798643714703039909936631581961717845041000651427268790348305279791465414133704763574002924852438896559402145009343279391003836531036729148121791239088168543415819312328519416396628113025816994258738444661354672701471303481387613935661758838341475462174958773178645408725718120111595668399127701884967292458790096901594640947544446938646448949865711223041063862488919220751305313126280221374926868706986115216669480443464580852154291998941607075397664992896645226767937470752794883038400928950212377315624803662581523215779820887870840766986934354767687809612091391183432800828808335910238697092880691303940652121080611072957129245711729423869759297804912260321595707414709635807868827091259448956103107942693253509707923081938910975530221213544727050281888557550210071998007575734660564976516919384421479307894631344294981026028757878493943274222725098559931566964925038465436947314982906948143097816558183913161659767304241432091125638824414150907020260773940700445637109872618004337026214229642843923255682699757140948433308200417150318245792657356523126402838155596496701945617853341695772311573485676436494060204136491415956970389893032811751071904134757204705044350993605562770452867618070108509303915685265813308749340381402472271521020488551253974116908149439179396738653560467735857278107792609305645688410547624700808435605461759600091384878738632716984803449363423296971208725721378416820750189632394471414224612610048212816165004993271643203051830068933526460797136471101503649600528291639907735335973762320224746895256273793306090504236642575179046447348241054689273706284666132914485328106608308350912329202778550975170143702763689685328244838407620695164338858304667690624066368942246926379983615632068230203034544630334557266984777777324570627366805505433176798418657360066147878588761574784407997386000547015963215167196333830237708739655912680052287880581226256694547289630890632146605437031538764130649547576169486312377962612932508720776008499271499379686956623590063135570834476938808066220820815539187044007875388961786302343308273642000976203122858992755972446221798627001310881206245829248416077761601106014856876057141796615415238019458412234717512941523271495394849307191222533019434129095169068598929191565803142102785470528560136043082790022187292369631650396005958458894691649631067190437835812750464603303445470690810872779514160538296262451461638066392340069924671119894449887386368005494448389625111396962769935893682914171533139467953561838397131175922706246426795225063848060674390412628164702110627011572823522814372413344606903246369717340326805440148054049103069646781802086796593187828943945962511940919183120802038621180838171748787203933086537875799521807877055382685854909172848523568198492088758628659911182105967972835370384278285810210167256549540304202456855821050269433594637396720642901789539462169725066290353856299186504376075675593102159625808388743964718742201614292559395880921386352371273343710714424028413681524410624990744830670232201263670299675918493846439818055084470221683529263448402716912327856444064801214916970059512142783110048928698778212516404569176988003529187869712778813476856932783327736835190848059569882467852044268658282293278160991313159791471303749223114738022375045964646906585699798955362379686492887294936898284760841143158095656702371268615338412507099879543924049337644967188166837834654166350299481150309591886646022841217713621792482068611451472819553142204471180541063254863159447526340555722893807075303759601523840815095383735348606169081666759070128039360593037848276577067276957217805705418806576329375083090903401559101047331067497695386922322759150952226732236342124420983646915013291452464109241279779113259455587295799519689511439390580825250790689992377589023095759968723774596332469654836341630557616568428853201218140184986607786579397604823763800196297449314369215901375237606347908820934349536776435678545022895127290928892836137757685360832705566738264951359896305510386362554194621088516762005826669025371858579712066829255987052261425217640418065141596470893510022344265386560627095722839759440111150219990047344193429302986423365216440913615394131545637858826068010558174726712640577880042440911804540701423657214749282861608293680489418852862805711606301856146030051849885877212437463596847439615869089406084008256778598525742729230479041604777961990102555550413171669230930645992001119849972713321303262592617766147552388301866320121601887801474719330936122562035894087862099843766367678936398961500254800468425947498580432964907153910506154193299289384506865692371306632333862587076055346813563272081766811425062184179305524528050941909792692279349711184857691527557384988061566079718200796664796030822543329659629127714550977664029310791951459556148536065173862529020270524971285293742744667642794785686819350205763956748028285672135245114397645337583176268325036418400109556863895445250761713087087496939484900793379754252444353491260333536960980579723166905993668798157275931637262646448738251155812673690834949036107308044645298347050562469066284639428712667122454142235773630437741858769795142681225534452386298545112079862945139155135099789977412791904190437458464387268710611015961831947451272857735759764402616372314828304983780419975989054776431399389539486804734540685581003767032583785347534504647753598814856182573387398354112603946450023495824381407766492056168291457166080700819220854956253673385613360212202048478056611963248249544686523997074041504945773125415992453503478976262402389387530345043989636523389024374402487726419306547222382368306455450532339517676558265069065356089493353403764270976436672573195806156248557645331429274497879146892721894120252992580869915792205812803856896717763467679024410926463090835769153163079748161176375806634167087895297559275239838294208527664417117371264484211798615461180079209258207892824799010239857243048880311456946489509900515360170985495338570331624310227280003862239324325850471989385189345769152985562004445535337837966524066455913486970002733650555977348383608310823687383596179524495877110346873478469254826657968948652050398954491379319474738970129854455603379401955587742288322447683647923150255238523667310642094997304054802384043946638824792180371116168182970239775527981059554870788164611889648844926228403558564471497039918254470433815284270557911188357872949988254591424649485009041754254363290834643139656851918285518951896741877115037602082325894251621999635745998469009559681762242370874096651862460137858938283996270109817893134523628151297021618837612272298267143299179422934540350481833487531569759694053144516141280019888167228098976029328091409398265513248073950189671296924909941978340181628470389800892116854895984555888909317331279633567608429267970790312704787303229724751369040951729101464065679716989492444239360555203212015103865628681860572247376726988270664992408454483695478279335828475848142989287741145955619616118915500848258021036893751969532864894914574277416336597578224852396723176779876230125537634009789811172601895651787040370731465693574987055011284707547877634809519358878225425319579493570203974540609504595269310589104134341286131205985209416450628227342417033585067660261504497379168034214272633599313313951205255612041946138229572927131447736720178622673455887499522203792662235224625127598533404473024549243253058842284727457422430847013067475221862153967635779000374671401208059845044156054032672022612226402151302132140141040964852084919595751193808646286040646476485535080479831300694915795765130150664906651556161265197672663427672920424451842690423662620249398444727226283690647020510081879428414561375796531014350907448832043608302156483052658149362225730089496778394837494810345720241781063409158694345789141706995625949369999849379475262174411623077473007634887542191971541139809639281582153299434655781032631523207274572830078611736089145513693875999214128570677792316525513192940634104482560621118138175485076120906993462636535755005725989361444620027843225748499552891340496961875045777257032991193975045475800602377097316722446424791235301010115539094554597746154935192117318686906133265764892375332266483537735732118462191165357125512617174650523126952803830609885515288010027382080455099441632059097840953082911383393447477809572499341217093513867756372573652409762260340477947526931969671515439747676304497269505438470704919344767359281875898605293952883157832084033320054493284128271176265841719311380503807185698095662178369783930846743855546860926078143433145277680835687365489410925323689830783543682247090210441097944186149996141040687458882175761675765291205377414116986412454417124236592734890793050581318247902644358047894877490862273295827036403571039079309836436372459592614664858286230713021775370725312473606603465507815891627449262069081683434951868402099729334148656550804581621928075789619468440745138819883155452965005181290600956824898060196091109741204531673310936812839480348851648959642940530104065466953077504049879309951614398855943168831258652360276268694943625591068562459797680075133127458213478130876251840181331057002577292612135777061979096620880008735154216034282869655497378750825054091284857556665531225419534125065636373356760682403068380216626572810578972993074596929257327028001459772989807643128619948570545851902927911758317103193642739818621613902465809158647398895148942558072319001441364913878209356526745746545361632629485916479611348791156174544584024166323373133786983675705461076445164377613670297945314328782399826564464762477820102620224754457614877549996699613459390635781904711428287482213759932848396125127465910840630722112086314234661221950801831405023697902654498044881631111877078760986804138257097708353847555226249850520055380706492226284714939789901589316092030473529680067365441285136018154382041501271614461937138995559894918396309851408437885349357784410957034712523213004671072423106049083551281727981447526834899423859800343106774917174635645859849136077501964338098372326995558669459883910760887652919187146864495204078032422413947606058481344479835952154923600868798136623938202571642257359951579795717659509105483472168796174762237725980823959278273947557210016344526760174732507291618368685193575555305682901242827977685327968039879610701532593226430758243991346152181860498427544593622351604052255893465512934898264201987075314258777473227233719325228516016135822386575872372901988946792989833437941710040137597626532036858161782271167322550741886559558029557429328677717218077751437326841183740622471525649443213357740317209486769539989480600258778419915618829970459948800072810233346948846864821172350291289443476041298733965314566879201631860672307310145002108826791061683668065262882196714506426852589558943510760446057102954601352517049888783632450443102054151237708520427253915210799773500174883778081909988499483203619713605473753571595609507034312044714401215895912043695086094478489789844774944092641456065620287809645984191801936142628782741687363843644792045456402177763593344248151615837256197876295122956204504801880462254540984514265069976619916253945527316434109012751584965332995113126388025634177730792933049378191263468591809280792485236072375365043914724841756082615979744330709396301815795711426947829583741584544547589722167064710253511122456132787957242689464574372583226971951071078802667854455701998690785609315111628721029819366239630457607458702980164707692832572976218271965368280142273406256259504193926780881602186435609656075001633022283160867695407077258862108142593886838481504157314651909145087415227751223706498583586080381068346315482814995445254720652968982992494784755642660186172707287428866961952817721038125787553260971456299605655485496375537738722879685530414650638015115290497392442915224162303240418307345928836120960150913955244168158108863400484991874230306704223411504740803344480998725256561873196122177005409109285880910052721211121123206097545609916356474385137237668612209359148046737365612781547221071375036791100974741234555018687979329227436112308474249769732351737492337321200813430347472881614393782642045944435515249921019859794896929688442025715041611989683679073292268193253448521657558025376889212155829894499509075661938720740045910354124573068322360668943551864675798181370821080124636726673781822083771757350627826960546800602766219915495025900521411971411176214115264251155887614618007339409626487894317031612894708842166208815660234579692255925963127200858066857261440758691583226708302648362674185621873869889759170457883950507702365194793717876791126205034719848270949293450158543575750988696799049901525217640986778077626914032717982284363693454343202591991891429051880589303300981848301773023897773080017319266744401856741791785342714262626942267235731540423618995910035229420866076576513419803212200109725215561084666031634341647204788025407911302703243569789118979098096866880578378545057937055559906219476622618283633987893766273556249753206795491734216588061816879151334025936815765652832452755112799651056553810809720615295638161877534782888018792461218088957778624025542371438675753301897132471732973421861817297054123470277735820761032118778685595956944286206589987292070132746092867255752736368302088023323480248420398808477811020220997182741214667955313795228666447644688561702671796940753126576201919913119737746113613488907334884236785102966239367480801107138229541173687475813751318860675257788111614899964450682325343907433119236111191946845508697734868326245313376019312967172814725691679908215755154564193002847653924296258028425311940579348108815909042858673090051915193615885809592623812087931789121073075925962481602597659208085551192861611695912506382693138378513586212418532445593139875606584345472008268332600803449909892771053445263156553161525071307957172690146780414734886843061050988206583498678197269136439788798634959038973256461085185992206614289143618908039428045669590385285020896499295047013454540939045981088149570843365277086150272368284854307986452718676840568719868765207010303693280927874272505207253352083467094004665456815549482720782385724849364929477074023343828131257421814482501487249945962360948672379893636911311899263243686397086717977202571663610828789387277894158964710471405298522960002223439626115726163745806018799865831755557424965369509405734579539184322986161123116774592600501214981239882207782606139603576603691597134932789060246780637702682531670375731567116939142394141471872383150231177719722572563684996459816724359422755784760132112090481640100992869721579096223883533846586678011730429300089833755348861582741361190019800919671278563980472781052318055531168304983914050730536082091563986132285882407296980832262899249156119290758324165826430154195500531907634761397960612505030757527198570923839143844508020867028237490219298240721423242306316059777355104524541882668386551767331799250090617092610995684648070750092255835293004428525036198412458917915364147138712538021400116637000587831503444867903052447478553909189933748133764521784034906226554660638836437422925772313068515772469668773829388718892286293370176610261141506981509267604133852912289101060785050099104224572663364604680493275024516667249527866315255965232442337062848224683022084208484984158915943474714959471571613682317840471708512303104796739001021401818396815810513685515294502489781740638292220097453556568712300553429572871982481300347694655701357692858716416741072513191102242671013137866150686309388957941727339467108700370079502478462326568275530974555462504649440216269784041403458641843875108744260682162800150169703618062499190229884175760253911189811820357957791610090793611131777520868774686865563609137522850707018659767667561533252597260764731117853098666404829100112397433188041082789793906959447158849471922306354799656268835378616831510842030037961410499511694363502014274196077707629869800207728773097932907719909020958731508687755637059307876766645052744412344041474499956467967251685703269283762380193692607417612997485074067033338085067594986603061520664676191733220208830167462154349790612969588265990571641769804391355047475850092167948726149783731813866138885202997463818424481283561542652528308939874686037764186564556354708036145691266572887537492899449937059399766976921763214406700935415650926766262169124932776463772961998984373642405366504766782862858547069403882420278154092793765189262422952214602134969609374516526208767859060736921153726690512654970343883656819597998812734699861858091006946760843923153496084952199998372042598157196745289618280797361494732556731139122471012723355074171056988138869683584925532541046896993515146514660900770807339261401749137445648699703459465126031841556806286677619668925470749811651579453065738800664988067873560049567987862977544910875300660776723970391808438377567188164214043279376439240355986619833800615753380793879044416284067944128456410362614350128148641353455397068542196736319752796863158592411948007783283122012021737600019264752687110864442453338155674928710883410653700716322425695611744085961149307932392449346255050195984755655880146706648395332495925542069165089701727307027535990509491877297776295132862430806569984573356207104629805554614849704881669696460557428796812937606909231665914346274875878654472398144401046714216081739864853385397789222704273102497637967056046530605280559979447024784085830104333074856557573331583229758767133393297429353973666221489704141442076983145775648227065174963177421806234348998090222344416114599700873802365241853846282300621374559990256627599884445669333462015861638777992781227594277494228095911070604466345168766861385160089688032589800928069246542718057040973356860717221638170958242529525568428225230704159078662657192609381561417267537997422916602447469867436063576306841735350831875818371272682562596805671836726484069734986574920224275237675136615080646245687765344693418017850483748055805389775416704146225517467068871274201043993506824825751478475626266101661620856141988341247418529385329167450259645009416542297767007956499986544476955495751123005216395152718147279725136303512885536554126082574664929061885411350608195342042251169872941306328249876059804740204923428548115214303034698735223109727398705655958282282525700402890999816589320651991562461899215912545190849960741518030441589649241574246647257335618915586869168463659309364778964001180600522485015082366613079599222147416718022727169943555095045733724041920749273244929455578575904617158230914489533808499889886167352381284981916980034974553489289147602802201058785779670176454568291369383988708870485561322713384229431353345492763384965036689956218661941342052104649218142749984404050469831704709064085959551983449567372554918574373238455041043612463440558911971352326025615512410321743817839311433672333700076193603452686103054373911285405875616494601106689695927848109418628346783759394596152794150035105465117147960837506341699093003487928835623486072408635877821677488574890674542644383060277276144079603365624991375932372365404883464853489855139696559857391439434252183475515262302986124978001080217800781081771858619945338963125014822401288949276889674163289372157429989226494277145389290184335903113951195335380959905115259847270245046663424244556903361313586739826644094574538568996555399080693844891382066652687993836833282754672969996765107485045006180713876838352077391948167317513132819453846568606243362415922324027608928003666022125851270092158310420552079802125859196679210499899735263616287951797803535380226138644263041339832058825775000289656317557271160637456975972216286352505849322771466195745691794500459210361148978294967936646164513580045496636221817543432277401333510940027113242169097660669169417120974958330322234430543894823950379591828659626309352055712388039747591684373416977221276795123351724254616226324186426137849562713883567476703817990606257881233545593347116414667154021450263407989396543279247768820038663577021110687351262420935235629304394362279751129443354721544163174435472198426931849276108609811951379022672031219815985752424564495383579745911301630111293821804644376668383650561019955372656856957862719082346798096408490777180529005292604119289544709945364677853084675247150911812057153047723931177837075939314073876123615102440724926755868417477721632874397124319169771159733521604388840796197632194889907215291075686213835081339331433699802772946778565660178486235583987956264505853294082170314497240935337986514198194771875667062675779860928576652380485672932707917182348822352886648023784673809148961007193948953488865480126765769919959823495461048882316817766772188251747836572036526123244229597797926583071561630702349421297905410885465508647928537044912839145853608943396070003665890441390339988877845912469423951662693990741953438744551924207358176989846697540633587031963978653442022307240561862865071773427275139881795006517900326203094457610144003692566947680538359522390411252878648309409678369981729833706223223740518437227364587753585561239568321553293763176554066949888067011355149577781081840371004645244537166309297536570888208774442965897227268659753596405469647259032473743656855228337820503004428865840282319822827181230557880257903580193096362430865924770044372108767140085705551531389824762454092785070294084239466923843434968172235690491565207593208927060187354211791288592494309292728374793117853972257426856390355700344672765003731830493033386285840434849212619129053239206760670592450225908645052547247332008068531641215690266699520521849725541353245322880994708761281461682523807680626553576094477442703023471571520292382861314555163643119961866620688036525504080547822370526431632440159021342227640969700152367154038248521948889536224024264136134437231509507376453712972197177462820175791341410342738793276970121554971955196133690190758042096746644771641834418261050147764242516463205894423563786250227710378531981459367494607575059567427168902939214085979902653609103540048669016848309551441685734164827578305020393855603153152128555771289270243442208574666958537649692335070867854131881521292425116974688786532022800180743484367887775567005154144963941730681483140594538715565042573512937143884978765125997428290402216077368093759868588010543827674076207378234692697234219437692991842148792069282800228437250566336370614559070744845868161695729094664753774798358767716047595184401453228744481344793620432234156146500947093915983368243361409696707538323287108876034532690519749583837666780631383029841792775853594279705030502216991406835948012632341311845250903437845985351118709833030303874630016395693355891452599826659120415765404852142682189611845035848425856165067663562385042352996320709916885679178168600201781446734662898100792587689770306354519971123223725640048612114712979234571259920025524115642230240131360479119174260399902056547482384557833141480158593193353617443467095710943177211292452334718686224747132344083200703362567826394857332898908878031488459710921225928863714927926152296955265908163676167199392525392026065096988869915716553903705308471018981427556105301656075488714000099388455644991635612648250405007183266819601544023101327713801694050445742147334867890008255413797606172854885895665440336326564819765116319370810065409173819304628137201424321967488857313484735060280527630945661025982996983739879985024195357821204688303398029142155522207876940425630552826773174359542583593614931616574162928358383269564059715633718335102573575816871931192294619371875140092903030193372341532511783163235567025317308547923034533223776340241851857786914294740517775597842447167713188602835450081510626766333604824875262973661202135243698941012797504968879141226178451288248216678309010932775075463469368247338975558369712954701154928733439739111472672075607718000100514182496992450734847490075018612728273463447626167635360616226063895298833409870555698690003672868570956013922158233151780946862663853862645979336502663103536532279727768489400986103440837949057968029041811831343306879565517453625695487859378407106729585058602404490246015432709302317095461418661881107442773372359822321664450751356207888638933378274656878635981344215481995357052590776173717877540153491540163689898878211772782823651469082546495458233209118345964403303544552961203996174136965588947980224463743437865486145610067260256855655499292172816615625210859115563286938174398170298410012741151962828945693671802997349944160529659518723718734106231625277900860986666271516870800755457911334843555300787086953802569136839021021108916883928109584460262409688089051360700667037457861545942466271684648134630060065876287612039542729199119120919968412631659050012921508451130513026900624575957362824158260918932604875457414106559840436936734173034711584441896864878166308170501328682013402844373024103390249950147554158304328970506122727777294471888539095707200067599723712622772676562385244525888501929123111485177620169839096458354665343948084258719768622300251165670566750535605935560594937339440712916533067860159200888728001608974226189592128274076615107417496439029601313783369926017908357466932403767675930258050323564700051438688872890586251400488092996238972347395881399376727437719153438794346431195689830199436118066668048391828655737940331190687355362516846935630869606969782735327298971083607149398148910095076533811965372528297711248520125319924313479438091024716787381194311091510379327595632369501993570969216907648741176098647573944413317818652069141908468123970757629424103718026040797475591942045568431033711327125868816962526311285966659446028904601369983486455842617860988777697657497684274042383629217299082643907010998157498384888174186746733538486769397495339031964996709285178095716343111148280272386228591487922665700048198434131696529657107664724252968526021604912872760085688589911184831435315526461713694882340144309036979715453343942115175488793695805393437354483784034147394793873861795592398288866068571310775824504793809944277432639747425003990103285840300615194947987693888671266142980539647996208113511623385354168086476307539891263115931360389139155428911102644519519623894722501429287796004593868447402352313929569472889819657919558200469961082832308431485044959638635300159773583681622033553210213978339330192845898770586622306003442520051572235234897153774878837614794124969540599974261378689259633671882110078878949596703157272717805113285804560171113077906638895782040585064016932901894672319306998284739480685975505499135806659109796752402800070482133804767774056195151666664420573646398549729187632208167640641611188827469100982474500940547828684055012769819039341080164745966692902626850765460062284511007827048812445174039810570314789599872082065388435156402665691513440289977801658411857809137138749693683858537374744295251059783948939560282611379604483587822577356714784889619398946293713865371201829482375336384323663681677322881164742442826167948712677608076880507232231531741982271120875725173447909079535850005698394186722610947177456069982001210433167573388319494941545829425942814522929524196471516388912796699206744933201443878036308497873691454741813678767876936921530684658173833710044458401342108698088463039517540874924144414828916565614875600500273056005212243363488490857744724915276229152778547508618387870471499036844799630856185718218804813921851379225807178228777267646812214624200095035107840807383327738772838823802555545590551508898235827963019675665234773189030521462625522115478049901877105692899703715680045817733212287571198715245402692767685770436431290990561739433018203798616148231416805062694330524513807927313096686997769489621119630132733214366594477092502382684031767021540223373953435143910219732708364734490849351399922764604616579982091710621053120786094007770280700636146875571061861975104300964787035721112028145886273714898962030999095733483955859030486624019753245617391777192817089947271339232548943520710296530735547179706170964607325314821526745727784357293409819260015787579614976792284201863238009263179784092452205936798976546845416810968790091093064735035984117129679229677951149682045143784503028018125878704808743113200073242511104797669464101696990712802167149211212628950301986003688577836228140547611817304180455535054756904376179050090279434700284699729339454412424482733039980869334670233372984596086010382076459416965393500667711513851192005274445041035866291136745713071760109349727174589976261673022214280609205726255130654480197076547781142982404644103421625689353794768931274218507719345126662279039649965773285268805820689445170947067791070703766482731622286366502302880438288233304550401171854982186117620112086348974639424549237374992368578587764383839013042004825544528477003488048313968771529524203572510766526651300100477799928619141986813992565138357720513720058127499652452220301261466502353056768981383378045824179675145203255282062262123913279515717959413081144527718275808766183275852405893697485711922607669847316671809873108868532286296806586238411316248866546048283886103747670992153144418776593827640653214248679320155470415020280050361658241202927663699356842846014102429805570182136305263540443940683603328986224585056006939622955824034365729540773971944118829859834213377589081125667104398960548780812837712126098380774592488026412905679216275585552053505918449625347373333702419780437024524156262244234616673655844209627294478823766429215377921941560675727136135256386995927710914806029846833079513811620233628956792352769762698654570802100052664465423899170152069676529636542052272202682457175943497440806807648394551678125685671708698162468744234913530234507888198991616277270284460937728524416216818521571202686878602306627229808721534134094122315607996409019093325493757495951237496237349022156319406146321792191139953936910919909504473970246760280386557650014590981746442591684526796205008185021415698259549906648492935265700034481039883548286633378532979070283720448608677918980889003083718626126484973583917874279257784813110238319711222985098161693865583028632891912348625417128529603492915726027856482400414423871405174049426124468647148700557190655528279939299500088904373418407913373155883699951912344116390565496460145407001697264169387565567763959969316319986404662253523471383237488903720996202446202184989142309620845259299917373065042449066338580786579100607215683317118550914968339529164669289569676942828751946190578135569506074899727583646668655512409832440402989107557110120245189509119156470671568438148029974828942936450351413172905120199559457241823316773123721670136997823646590781643304751321473875632740208529402289782456798815135789707020965695798260105663625387346031815722176586450830699249536673592594162465518694666255541270983524189206213810886692078621114045679894546494562312697931131352846743833145467552842119404812684491759484192300122772906175185745849539280469560340739641075087743504742410010631129476603654733989900122155028944200620168884428132029712541633762120616195193890326693858348228680922398345788641304029328041176607294131800028550151414101785681188317805516855656548353534346629933607113271787470227225407793078584985906765275327943236427603168782319931627950829218625487674031722543254783923187108698126879059722064698199630703343130418667510132045295910376371645598827436391244542303204971959163064523602446446927418779532850966178750512593532964417463518696647833366436599827052294338180793960234544880742908317916227558021529425025395278733237144919044069643265729537287245071415436865762857384535759801779419344652699351657016726508067034610868111443485952410491510250029416566582428228163849399128170609261722617914091125716281026432879605082529079567247069162178114543246528888112557279276076129586912624735874664831454095879982394803929853013150063339337229264021036776335939123283443965133440150061606765141603907797857966202557883438032090362217771110895469845848593562034070334213338173237989281499844068211880911849436893623912034901506876737489795864385197080277134670139011824884631802709866365386446619676894107029460078114766870836317241470995233837876086218853550676067335944727554412449748934062980938282302549098265411275964578184546574933573160970642581106071653057727563954040432996829610782544261178341512744762085669246189643108311198010578369831316833474789960656063445105548470435804909949620976524903878979678057137253327089877700017904912450078828519843740612624682419385935972391132926902463708585514989418538499342775217253894649755478443961723618895889126088907287723288901504081640871757622740862738703995376168494283547894797459734939688203390546766583567385332723049535843855244753839323799485268968312278105651746945879549403221283366606646569625598381683415763767823721457604109609670321674724408709065880272240837366062812739236075272892560617465065288678084220203914531857415130656826519577543053406613135139506048462673702968617809766840180100108653847580031389420328333212478878964560631610173010301774867362460589796962922057117719800893672444206075354049706560325581933085220027304942632438759860097803170011090413461799105162372372178823294777439076657790132656981265803456118593879252765717610183671839246837502268707675159276751389715483553522807092591643986011590583787045206901564077262612385863369776563878046956551325719079597521621879227777143606103690082027060173971978059839801489973658547129825681272229005608446692965142193084367773582136023703869738335722512806131948184195946743205342963303295358069159721632393360106199587970892137326512848165188132563243848070593016981158258322517186552956670840421694579418226535679779763699353899155243734243266149785395524929456266305998424884854280902332246952432327939097327332916878233558264029727504048090782472884377195344876995044533710408057789667820892763114435674752849111364267743231021646753466402109439574073328890454774112523932525248492401298563842225450386518052928949647994825661897654706024975386591234824281118241057469276010909938859438279453115056151255365706353078920505892019827976600066138165925459457016018730480643693297598998184759050668715938241752205583962253915455328329676971083275258614806214679032884679883028253491528440885616951939565529451336341311793924101980843978264307242342969892382149085214845556680497452803555980427094556148102804620308933379996154455900741929842380438881601443236928355273262918892456863077496642762281170297260445246247487086929968185889584310414656514491203806602645833011582058002429405139356369172991814053741529337340943989021574193225679943062862907344700956566671301566898024497879327614031739917424060454129678210023080011646260601116046548634406395039802336402601247714704964153350461182561982182596059900804144912843967887529746779575669176676982796503977318956122725276806544178294285310319483315642646732741453859274079831279203997981072226265778524202758787872437392882659445625970452730071993573589444938087683169391862908738493847925238082080709503020401959306850186245641694190381221120445589752977941181973642783764657012775296284833208019481737539139616181504587008090003731196229346144399765084455892007352510288053636706167485559668861445443690283332159462432517799900919554384874906448388102312214284036637075636609628780520953342669433066081876036510635033214244333709537931039887652383457547319481887687445701577151306848726126723225947879003783479531975904763825361720432828087800413947713229502519410432661270580749506207545796415211510958471010128771926970557249607174633166579025819724084433000331048098709233089664014715353622061124530677006377275515629579011214590615791874850200516224796069013064019537101518626059823405839795328746506708301483267582870519241429182659545028210927656659565875011867817158114049948365496818227977437478045250410566059712904124054690405001750154913255171032247951439089779997936027862091876484832193882806121146555283121014776490122172768940971665722940609272340711968214135312911224626369926662846288158277513499452258474537478420937052837968796837933192919038505381709361926174715850473968123496750588920718603300561871202266731207441213448798616413256368653071804985991375946536600501701683674945317527219479517923657156484005908602442462661290932235890505191864488441936125789508467793647872625549673403090257460145048734029216927843338543175645125269035942480824189332020289674476912717019697046819626497301636483475071620216995881425040632300718622621921588582662173446329142704260342685525324728546006600002240976688277647928694179339052434461264567719768590340018040422285729037783773059751148745028832645312619551196820107468359914751367348433270924054105762797143772665885377088131573523549711257656729429525992642414094247226505593002087312367778565787100012470653577390334452199942601127384726604561650941014832388555216616575478639715745691031477018313556975592060366918583623841815009690438218845301973342664946629764660700540789808612006556034833195164863445487793260041154332802871424763126119596019833670764669232267433621497812261714772750417190525169039374094699506653078643888607892898501987205459933417839231169660641726259394992166046521235667215703257774115965637733260524650693239459602707972992367703237326369571881936371720788920131836257163707092085014130956250326169598666781402898252125658237703659628017495611287094501162295159759637970676716639026250583935023919569110477427168012993284712928755724255372418604275067759122080839477547292529339874521414295389548837881351737484385021585019722538668421718845362613228295894391325020444442337810175125411925700882246509085509232558157546545826567455815095446435988330833428100279500767392740686271474446730116615516288001015414633027634118307094777594188608876022923582968511215121258940216265763438388709872605670696956000193646673103964983984308471139962365943797417367769711849807633333474458494415094539765536265054952729017010450665466791443836893207941530755599868841388141839375411453078806552116115705313969367264944531881080478615435197525306016933379630503679320259479867833325756547880115146239709943443829447082787752159292258822138845409910289990730317773522559702726716838517811883755008247352389121635841553408116350799165619700457799779678401760026228263612662413852266937087054779587390640426794722437693160385941737761369115643515731434807169920977950890541164698281016700377156678565077515198455765077251176477911364220072366032352902276737469277863897168574528337371422497688535619733064465038764440538766628809232826586687544647439152401636186682669634595790661784510876570185832147882406688290799484934062487842272472460486135734467258655483113314335203319077744240007458083465862655629310442910130704083899622649075503242018733920308422478840199718752314108207670790070104829478422139265405812150461094225332451493297961322990126763730106509133592663288855054715742637078584794751799054083813443326475481331316052794982525282671408207977185119220588033154312917293180972202816247151872831798822498343878331582858537870557544969741733882216052668038825867783460425255310319153064637203666866915271008116943509797633618404078257324632245624801253709660379377752486155946370476303434016399621554303290766378862716053320777529605390969196135405691288377990943181411863344897032564032652273054251407569322039436344505139158026938304694622295272372422437867886236280262388447042011213247778452878893868833656134952816336269423500539521590468632448615194196904144646790643452664701998572594591111560014016270689291979029091158100783301412471036387615745218113290931944408016090496555933344052616916244067161165662990979397916486951391257343883457442022193010599825686877434405771699751873197125587204628585872139339166809673269279082173027888180157296365717760218303502057231330529324466974656956213226920081531955784312049143249356834360655652503722101264170511196169068931783195979239652812845660245667513728589156765119832990407657903571628240303063217285098535626658481111417451016658052198539187220700973985023011414425610075834916808644623475994092581971452835833987762351004880659407096647002140394335841725830694617996087367685851711574144847786411470177358123526806246244454407233289772047500829289839483657881271752381676651305217117073056132454191192045469375593261475073302013358839053705371443558118776100483228202630337021817194683563730434902422090557101720049647987892603776981182467214495653938389029220254572533524247619195139776390148545431305438158971894758789112265329522278657195917338828564550379216155789479404423061520232658153105954175732260486161758802948215638028444597568248229064231778170539223416389957914311918294634265380635826625085664782195778013814461043625402774366063486434521431245365980246254858081502349620573815666670216230055432874073647726202303247964734116663285697739299621992663482169903521129387744282121138638525042460371571509253456484104679473818917041451455193296791748626606745822884041561698083577556719982879026053521227227047206032322468280898920032648311080675116527873752072471452732259525688912406296736773973121027267274093994477548086088949791427591258578015873492879345869673760890866527792243201854328034001647118980992999981177465987369677847287682912858338739182687017238313193296069178123009115502513732184477806122084406228646247488861232247308750794055044213168099123714757856364568065994455725780646730356004874376978276007411356443104623755733543969075649863138174974455300229321930630195596653529284301102026589879072963014217931475523720673257347842913137323748146680242625169815309759002536180908552909397534961803018021423989044627945058247470801725299158251723446752488292737622603682892820721374627403053271531463049054968257910351377121769255545147366656093124500888913105673682854211332235120144486469248862785958750385308621908814099097375734837020987170260480982127542894148656340717262770899582421570367742591846290008804335922537640448957731895426331709535679023819762966969461331516596522948217937944832103354227144067771348330656752765769528325834805345252425434867826435449113013773557183903162329295209892110002823698655893102268446053386648863107772346565817269373257367711657624352738177640819344845608808600987577538219937599824211709778448281572865666475083163910286497999637976588619419553289084077427259027483490927004232973453991082933306370309305250404722600278429780732109859823926111823455415592767505115378788044513234607781692429075794431149448659560261537978993358561306855584992220668397394340984222600861252717520964884265938932154400335313981283278768156100446563254228043118788876320125539114297100864073303426736642055737711154470703178728060457704032548146397427835548029518568604916893147123255352497095844953836317154138085552507375990254681922657825528791598607683542179435705892255675157547489963332616817123870303418116801316599677643217842292585606518129066836156372666472982073521543314183068451055273097867655062882021375890597838535936572707471490495537244676541513845083568625332514145978179587306740671463939211929221029342186624592235868413716718431643606570198329071814896752710293666490338924883608441094401689100533321632447581156696391806085629060171625183792607438711045964541279407083289351180800627548561446967747986022351419399929731699766048932549998567950610118022532567485975655071966439382367898650021427316405990803043157216421359526782021043723098652235028411273631081187208724230652002607660899053084952402651124664338547170941360608978507995957378259649466032427943307669541604500428737234842940095122649890203243371676766055415846284374484132684712277831879981393701129109012448754530815164220212889315063609535413457069461779358359113916181824824169341964657670123847292211012868664223066249754534995689864163981047366785360159466352033048159449781331696750647315429140633146880884695481648363696249266194357568669806661044490050613569181841931302714908154513745680029080408944571215209730297620456667379309080229733828900418019490692205722667045586741516946377962839540598209424803099608957004526184795791251659889810366882116325447240987908882966805736769556631081418179892254791562131093788080653484533755045692344107417617345153699452386523438893574440959895049030461201667459793262210296932757544156168509810312321205612147747519682873786894825706014434524088012904262747090053767284277413433200507810147836096863826024809097737128978332114791224648911843589221406159008631767622230446891378498235529503538886811632890186451163130415842479085681552867731548668379822693161402419133729407791163293233515400022882567823513160506692758825413422330954550863906284021247507674489847838067454306839674563312053640490756093192400092753376091939924175591673957066428772102002015778503891049059964084156011378192379839941629470776816453275499345822158664743832272309219854473261807893377533853255137830627084072844118808700046546841953193150373671393861225765438198391372716809233190304744084896860783995726673333954855319171298519034165411134698114574044367165748391492385204140634196008598208766372924950638342489935469820204899251225001196765884700143868843956086026954230777267212094911485914930580288370001438359251740715097805713176200647668500368963707073024380905402383404129984672059513378911339056156098820883549300804712665687814139305735298965455766891548614815210335949336353337797208134269699463966130348517480557828409416362298862795178903551754095986733926032016280250041071149545488343439092356342314347006375146154891747588306148692146711070494258281072736597618728227202313954744180216155873642278386083982952421183605930472317580955783451360255285257854508853403123480567258065903410798239854789314125473514843241257454428819461875626935014766107694765933769030382288274909083256276540643239356221522686928780405935035236967540072117587360088029862741703866014738128650150092362097520948973593269292546485572962368303648438856405720334499170181373331507171189389654494620781273617584083550777284970479758166462829316933295558779011096053076307058765889493432396547605462056035660554643061793160487298190305956557529549464336638005626849298598371529741809304503504437991892781554042074818271480550583870711813295416125542251792683032256386425566769245079786464278798626162286615385202964678890744183758024893863948030051186358223590284056741451866183249707210939053642510351803501131082161607072367247356593127421186695357329769977334833455664801876122518047457804324828867730489447121444822746177618794280052903013114686086709852173035860407210183613013968447301280660281357103937960109483220756169588366518047843585698465457181055195153348153431425857689993103262555102493682702575795550075916541562503902704044651944780641558027333296053268858307965763227544017868507692714048927897380593959812395344703913191440465247417497086754458422034102460512987900683323024425704550831820538900087286665294477065085329673040784214691710154554094827948908660775158078376157572215500786485994636420495665711406963672617891638472658821013781388210960636211814956645642672343137921407408004270313138407597850139786962958838550424646749558413544544493331530350915629172995965364686986626597547954478187438800230553268395735486932137709275250717256794844736092911071544577158442564693615161795100275466299578481974358394634398939048842769690859292933362886537256993375400112787675099246989110423203454851227161501150353697596179925722146068004185451384856416666039203675246961188040439915182760120056887328908711782476643351326046796824571912829350920707910671857193436290418329768018854241507504187851430043405396012338363020495195574902126219397519363855248435703781602928115779649571700702358341634489536291761888974885217882021497659008432822740680106737267833386540163613284921148976179647957301769712861452132783513187538179413234616467336884452173379100635898050549779619481582873936581671155177403866127578260089574517844686904462451353904774318288094515704478097250804717864652713945038204643978723269522871012575826749982222800276887898890150787186151636441665163256263275862888210199749214770514729523635323248109689236631349768246518317014611268688846137701220725248396019917206146450417379913248293402699043409138895420365819854059598986250773089706804584783919391654542143006007472243352551387700487588684418722048539255345683840445454216989865550550951030068920364860500961556290008929168438683671371345515369221599339401130841409241308553430988386989223796351403993349742068921758738560186006403122218004670922413717716380827977108638747417131950988904377647168640155475506852942434627723222212403279638141330375973820867307637605013573328472360636268211552653488324923364781082704244362190088222143131558363646567928740868644715742468270521010729885128758498206509594227405770282622475144321874110321161862653850107352103628033125119348731113972844219722711352096499451675558055809919466775103420406103442634530168493189721080609180373544725715508202426929217823670505904231269620018254383992240700762506583347870212408098036754657051756589871090231613745377424352354685361170626119498923504031555178138498451604247332990100559350624710204818225982457011659256139341876968233516478050234835652516128260851735768740726433777886135500576982490755332967659101303207098290610761655864024866233796114501646003769485838070435503456711295102031643275236323773303719640383179755823159171213682074640803176181142487817391948051920600648348686615531547599764361912107454802991636433840410854297072678272213853457937674699371416414947996711410874868797330410295245864970541703265069513742886385249401916602113170975465919338439437042061097439698976108438597983191161151085931415544030359130568410598273379664519147880162104342168133487401961076172863091757393497586018805681469463255240451644883054902360295610222267244129366292849122877195700785238622213692516149718562109796856213034683037927671172505144777319129697660006233277591481478745472271464832154863981439246308484953111561007739610168004291835710950307042830698930524565661953921759131796162665686714276748394142741562749599556845779033732102997470794890685826419977324952487218499196071803197775749651697378597857807797967457765009447292317999039886742730926712161421271616742533227599008584912001174734856792787759735476479773780117736323416343726280445847289398748482300506808665692109557196479078187859563961829196901222798397537733019650134531697516785248273967362421198461876005016512656298952973344998127958602865734885936384579926730824112823222330019429815714424699509727502652908619028002940727309641806190272486897438528309384114581026198261770651118307434287502240616679959904419502143949973614615187052955025133315625831728964486781438591265760462409911578451452726424319654945033759102644843942282988233754026781761674294806611901750230687985315658472624791539904911656549478496249888389622866219896689016356437409469392905551112562940746799606028304601872103722944258303980972929907291669534405205611551093385751619978594181544575462795213299847108510256493100342946919225587984009890983302447065023085257351652234530777311058064216746926183838950300271976367557403729932945654140237409215241802541844463936620892534854217978062420343364944429320399797290825021006834616382287922341490287367853261176645918317145775082785056601516213841782227274183585541448962391250801460347315255908427281501630091847137959261275005012243176489736966093106971726646107051396512365791208186613726153840455788285218085283574309185534527416206565767409839754672678185163691515941244291179013783910941120595483438838253892260114749828333050324353384227514483329132087751343705558570688844668661708409704181705521445143677321380076172208461437820452900294849912483541555624698246323799806871395913538458776037230000287275401372191381464612869478181088711684276597157353359881847892423347164483741192071678274895837685494055322683166812308769356184179888498445066786215470000876243872589075804380506073274373132471733035233838321700051396241013107774451964564391132090157242496252386576934732721475623642054233075818357599357739699666202395309288647616832883633616543316937066178146846387442719348367578483227869329900696946787994502969426548017150993131854251406044374365711503533893908736872825657271442663643132582889656039490393326543194904515790835234310703685345492371876060576436566099543464398645812489434405825490976740695293042630983137068830172316913436424036019652320637285650380193782677866699473044901073758778677189447453510050506607895712909715144677751720359172478098828739851157840553221662133125762380321540355495239253577384902223842546411252174096616710410979022176322033541540094104624456304390601024918978499048598648413429829856643700899160394424603691748193601776025912433447941344461606193920714792732695909888585751943991617138089910636499782252466216117543045780234799865067592497841929948950261647769244942924458498419754899125416614796280046275759429770514795912668344724775020072604133144960808520388954589076599990312618097508894890714761441008454272280201438884395903939973792550048067875123682027668876451648168574192516775072510805294356512754563294581293135011007271878644731893863078335903850616792537896270405095733739636303144229847598854619730699264960854047640975283076128663260010188089394145840666614400740403343202230682172492082477198226736849953403891427262366704039156814233099036275138010124466093816326218761851923281627022323513438688170723832330771035673612771951613334830269511124130273148542845683062194093121755800749290008161934755855567186883028819628042979423005467783991282522860201019177430036219834170361834255044598984212720637434513998146656553447157479066431488361602769341436531607657564532921924112238272063150860052926456831043390408489281526815206305021927420666180866622271602047582850902528463945854497497190386811797854083207467261888677752808162696950460079509568349568555672062124331681956507664998166670902092640366088296337088166888059756254506519126264004015555838362195217389691488181368254256064407824928506462556493372369987382028664359047102304082592391872334523515952339456929934395225353049185875762829361369556854367238315607068806873932796984728427099700719635696657423438923342722247239096336483251162993592090828425543649810145572789397655738854501703575244883291719443935126685961978065743783485838353602165674717013725325885325792912022816307133170480485156978121132691951653139166770908424067905816273885426052709769869113981702934378825094071142520163571776017127573130677326150645156835614409960415207606187773249238315611157281166752650214493567268835009556628796317145167962282661293531457307134916756378435062672811464040924572875740715430497863281423614508890227182948442376862411959026350127838149464176922596679116844531482523383243776760305362942785302309434587615627911866319775392986568472766630015825562639345652355479023637440876376231287437437345068622389954249895700788959837042036741767482022772034980518781876852890471977212069136331434140925703639289123639872938084939435113519623493197899172581964546290279973507367789580627808608584038876850103103176850104731384661002360099467084992770994145455193210991888856282017626018119860446450013146471677401277798480272171093112689590475013517064948950631680889277553525221678743581003135196250535401881106629624034654969168787089725458109037028272319185959348417754249623635455592269436858293713382556416817510498254943525489929096875151635950764842088959886657181750773060909894322904273100966060579540979648061844083945516286893138824895083186565253500664849131954329602566546803271724662724127591057446551818895629137654018822603991810721616330099717639608180172896043262541833543731776699682272050059811109292301584762960135486714704748682466797473962061790360072736928314344357364098731192816116328563524095896272494989097720730411584792145485747825218941919049961874111156686674135729413376221630138957247306292978099171519726699786004249327107832105699041537494181315708031789215400912075545809429337021380997241061421804263906730988612669930924144497077662810919286316274192562924291077396926718152410045018132845974556550901255438937115307858871463064839975983836487518258402879723420493127290551327533398571202509210962980934394315245340100029531166165355102630728962186002747249212463792824222111245681952814033839797669412722853292241710916428133062123097889519720933942773443669331861540950962852624687404365386816601020043755115775121696400438009568425751133786784515009622866854522050483889348936708897254775799719410502332518925581034107544635998474357490270864311723606230552620036636199387618098260483401628576430753857954873575161443561851081763502220311017382163711249411281907842725243524878610275587934767362449185497926716322771112404620781255079065241355064173634714314679447058608209732519640381168265599769112179358876583171194344082282057294083657918079434853167620999803592183396719787660852682078525954966104452505204093692724423748935829465446539944665864076287254375484987373465737208439105710211457227623911257169741301029845089266059650152823609532878055328011706707651416371684986964950255298253232825527312571353452242691996345666751981082548582156203330560031464616512282561103216338375743019487784771776312423987342454795312484185806115170867724915091660357794284202348486258806057257825973801259692186975469521628230866324816508028649047371800999340114211390202302182244699536025054573280618437768612934055783852719825455767394696100387374150433504247364489106169844166595676971902934310930196359756928065304109444131635972850445463829018986391676139752268493475731501890110354209252004986247629104529735911684122439432462027131804190968823313871423286289639869361871423351166118198591829775043363003229669957916509112240818701494852931359315891726506821979044767839615724619548976746241175914933149383500871073443526317029903956310310981417870729687612741604674587975182910387569369831295142400726432134015266759028533517769340052183934430029601377528672844631306212573420896677280969307800206569886300071295548913658868283553970658453084743599928355953325688082628011755395089632807865628001485044533602874925421460555237557093642425330844036664042420684267476036277630666126646313206167436838952224034996854818139968543738694811169023066359806070785701083041386904653424331017853141616504334291755136448033223139240880694524809690831874139449265203193151201754610380386767229182807220979729407972708029612948183414406514176078860668220184480714190116491157660482717925884798917791636111332763005575721540300412024105828503005995184816036797934935260396832328667300058218547065266254854200296703290042681641967014695358679092769784990985127128885089899921308397002436525584821675605046156291227693666607735407383218039576027842712201782281188944143090867051731345562302168868215206850868878068042160107933944343384141727390600384661716193991663332962712047753903643950818016054202453715116651807329985643343309220638489573077241854246536987157786629563663947549272804535199315646205583617934066519036784002486514879467296748279734196665419608395063632206285961973929559663677508557711807375497666806130628007410014674456415087892289595186545284519206682848441425125409657287331868182072855097314875477881485123683988170846359907441319185051727484188341800455705845046070396930572322976228230649084197838168754184218109227747065140781150394550344572429157969425987323114742015607673441271974677404517421948969664463202021754462211935397933756412883075314488565766314912308299317720910729134567950163148881861205724633159315658061493847154126740590225067896137762883959452008813536003245298251894780519408647237654386423688736187106814838006337375770329820215499890424413318089880483075671172574512758250219893844833245367800789030418896477844032861526878725874001128821551748115090881698333341533121178404952907775135877152762545326069534970309182402232290202907483345465842531812551510182859648847011840599450307914995009424337586928997883736272594409261272401681717704675407044364192997894425853814425361407794470044857075203198894993861331493502636267431584689748776598793119023010158652478064165085021508000311400371385810683580794065392344194887602291155257913275248471235179945027046731432488084269841633336664132362794154966442850115781217448330510361351136018345305967930953572027980897435865209567509299497516596465906646686350997572395216034236496861012469177110073260362233334649499509690566767737827696618789757168494587876928673674132813679339484872501263397918454395313029434844147157545832634923444953500997425077622220956182895100760125507214472263173730392805499794487033377093570286668444214190969292271945401756392299987630646674777803725340321599467071261006886786087228872747423310984217991367303299632190477465121785404158185364710248063872689135725020248687709940580611524236487232922682429117298070275080647558863463179521774670525581020271434370877810365604058310486552811463847514826977189767432699519827316214363060746228768481397383640325420195073305647258060773583028506843635107240263113088681177700547663368925787483929230363550798255664051861927420576364583552177002539364499762871600531241345833525065183168481339033489110254049762243558368472576682019413900971681882677700328928818502850053165827614141073210276582088093592830680144877603705129198434888141084146434833790860728718248227454421809122420279592461450167659515755975320705951315525585284186276921946762568843389284210937963548873549300528682286590410950921404434040114280517490795195629179627568716269431889109926523954182511675756975397570574741531946623198595675643988384164481319969617908896524988904577923820654455775496515051255643567852424904834603607141962981032944458114827237906734084472936413888522981931752479405798203449709960805277844924026266601671619719621082466899179901100979444444737481066339390644547748279807737911320864925092461293607188023272283720152349698142363292226547133496982887042765691944240863421004978915613872221473146350505136755986544170359906085940459302464152985927321501922409127412405211589454629265730309558779406282016654743157805961073908150217849332949094171847048790477908168046192997938266354943487399321399461755268654409212690849048279222599758799959892281331955297079940559252508058361145174738253123771960489966421230896851024182145737427954825047574252043794610479438159279820461475578195293709872846971883838504518913984756913358953264089100831698851906537528593095823914452779039562156998805070958095354197097837412185187449178785714400650014387498636982570928825764500760848867767776080079003834170980610495562445078410946044005699212927697508854184902385173230058676498229402511900420299989220255085240763723478092316961023092237199672556424101611833840181443442317464199936792520620429619484587565454583603643210409352352086120624548585986679271030469515900837139844244239398986085613457950558035195720188746378238829848041033933216131920611819080243289836701613161912074931517529518168672428486697893105283697346691070397015601638657350158192049069147838996594999915968561558084917891419348017734342531546625729439438128368210555400615469248944856693113103168673812373208173502360081729998047026326299284333358819288874904694766801587762785391157743287894854648277384755096368312671023127689107420283902911568694343604669468243192357271811873278296600987560725717673861581718328666351302491678408867543166858750122626813666007811965673055365264257562191442583519811566089546550361962169590124103470458997205653541457789361469937808068648589686350083631763652293229190520956250901522154806065416326816835753135453138266380268405839342396229972946058731303000129293335380058767581785699767384542416231167892698706548874245168352096146187680416216724476462147468082305021460859622199081192440550740953901941125312733708787571837019278304821276827773776742828019648703408510227950535511905582122093659806901679496636491419458084472611232745029304362710596602285323131914497281348135475877337250342248810569358683315547625142103514825382003940436968466777241962884312006620869946068616974289566541639964935462883617173647232403878473706727106178650708901819383227770118662679009564733690067794243743352714995311579085577322125885757359791546891407620687943757559973472971889066613167255607199066167809556059679853510599707542236607457342721646202651668834836959179180137958763165143476145439769627672428795027490701400041735541575840153147584548496192169934375143557783903775224422132103049732411148025799852800332508476362151711056884565205416535719112066607877894628085162326109977391869872970152920009482302124641973224440533489631028114782514832024547164474108190727980837112758560352078839770912277994581905712626354730023354764526763084663582262430166559554544918287277951758910006187027159962464440370452415265196242384686473220901017012229201910873562614356849641650068203709623637930776264743629376895935095724470642257082868457189932043732032921357545449244870360813658109863150182207153193934515398388019986732554572100448801570691463660222751667382094492797493562589600840675737229654890552973576998511235606076365355600528335427222405812676952855132165232892386011351293940873122633523634368790517250767871288435191290618009747789772611733869408005675693747413984104708487318784774133053714070636728874039241400415447243041365655181660000590202681900964702674981382352660793547098224975433235349886906662136706767632071105114714435441760724257123498389381666099957229827182154498299653705152404024861739014732543600417816506306214784232340097269538490867780629987967693660246743734861136887846440667374887094058496448837680600128054278795857803278216763775593925277346288616533964362770907761216171977484769322660822413275868207837920418720871875872662104071702364257928769836579632939144341821778700410951613853685292536633344415734200993073232440758715275435573663995930438032775947140102007523731970968759703611636331624627178789465129484759359262927530526785154766122094573785151014018888082310279963335424865227980836469528286412814651955757439013441785614871620918297758969978687771116733073438107233818300039993904950925152355088590553856691006851774498841680506403258885234090438575595717685819693238557270334093411304484725956467937948248298404131679748508059765148703304630006565992904705624785785117324669669233690543429761450881659516478497988878189566352048685132817941612815228446286709877462800585925137109960035903059706104504641573217249322388423509989803444875399524696255496554741139123639022958763492748093601754657655899206218177214794563883015091607373709143572442835321571264025552152941448691391783442480611443122191533405093121505000184889115325403475447696317832017798176681349417479540110657598062496624547552905463621540679092073937200788301002033370095639930633531536452021839414070893251691123101017408983304580554401607441319109145258789635244241046069601717064855778752962571781542492296185132638893868193994284564250248664653082380098436065753727157130777897622114870638217555738176696250870649263652922967683708523116023113183078353595283655383911279046762364690665848321765342984218115425559921126350301924643761159195275382949876392272239468320806791303646878173362024879102897951888081377548943698493864043574552022146094405983813969212964196702938440581183627492197376503018911576456627091403255939926718219897670676134319404730188939912733772180073694791311777189087099387241878987401254385671805982594517765390757708128132226732954576239344098164484369115734370661493645362799610034269635600752414924550005379925103336590556586601437434975944678664497102185660617194962496483911903454118591708460504405562162924322396905772238565240847993408438202627804942118839250982628698174622622210879418697824617029734381251350513907506214639588025609358475646529139746554959157309527544104930315492583172895456114980228266680665375786587731592725425881498277690344235889631369138632784824503677744089484331362305654291254151857829603699518469004859334454338900949754285802013238448657686529071786685971063018540995739820411383243317756388125092441815453987206369283545760170527112937133701250533707821928795083207351812327787134670804480392690143904397592738041407173685926909290509172041666878608277448415161921933900380433882769014813733748537998279818646294678152753353947063805952598254300050343118850853566545623127405902801143761587907239965172396267733291116766579943746399432700247191219160201462819659598159990786410078745276010545921722426402752861904484465530192430985340428448552851737014298775094199289442872074118762958663414598020787691770537743835456915785114358119407658185882803658558664152580546348514306925918299879365029830722796695039100225189616474021274492558695219543378781076364167820337397706530957788031803800110566408977073737714324627822915013517159398891932390199620781974900291984589820100444191228587042282078195126133841909450610295663343957452927175418497015166601116461986790725033417057648899160915121761267811285777949933614056266460002672625741529038676642487590701981016333240441525708603778099571343291547677759521200660585154290880633632081666616145551341585112499039793262649859653276428434423711051762642287193047230808633654647848562231915922202432565841038288085694309967898891079566287388666584671989524122941326721749990215886279159604105270862157204130550781404735135336143468546678319461040865807693119015518541351500348574694571805285439886590414445261897608975001945583876766324460842596878459441032255427116088322527693015565984361977360479712879172802104279972822863731484077237588647825071607773538991859304776804228732554160881007512402799273150651692809764029199447314077366930483617073350847588554751328237534717085005425484295798674494892099016976401534597576906626274875186601576063524121998452004725129827281362786936391650409709750280647543835720122601439621930741781424226081178161367953652022170519549215425929173776056001691430126999451419044048255892113681039098585151632847802349675802221716761861503083156772033037369766114425274730482211531735411378364841048227302873840671492741159090391129309648617139314856908551617884744492721372611158496251551682279182991465890894235370033588033896340245533525766706969186330504654634126844633756851652789153960594586533960816637964549650581419586539807771499325759210975964742679360157393170509522123588672299640178206586930129103342082070392534530657593857112443553700448063537484985754105036659603788188637272644808723496689512558181549438806644756478202523582194703561793566162210911047063423526207672502656783164190636795700208998856256845459345106843675035823569841461742602768649249990559661356166738924917416355176187849556904427900578113398091145175766158307121111185547463151470241244383269574429885951890323284093371845998379818726717235901354385018911928631789591613004106018140471053814428897158528995695762498296761129925196898689527021906067140930107589049396264991195117642698227090698916956197160291898373168984412035444122320480533043664255522019591416715905323187889454563077284297470063071388775657954676092724015199251143469736675093512348182684477503709231388946275355859286582531452789110258694019801191961930768146016145693220813681748460795760644164879722084689079187637895250511912916998682688371770050692368161775106924511058449585165012686673542210251276840857442033529600324100956609951870289152347572269845255938461935819111622044884393748495676491160911988020081122219265347988753868571514310889289076927278647232739000871312925304043569526069787036037087149557283159800352353505782893304284267476261615195626301102851413195954066959043186413507965909490427231256084176769031399539493618783284426435703001253588521380406115755229085349132345769974251930393911478646403155298545204455412369021169473335197803704229384403723706278986687892496955791334352571140616764969442353359018851796573469389102741075750770668730838775183807862053682288046390643465046940244108964127276938214444533562240117901899041430633624899100806749917350343208448300946754949222237024070612960603535288464622489890897243859146693528668671571031697134333114941875421586116324009155968056680903295735776040612543080604071231183115377544712266430955960204088017968893945336130543490155357052976294194557106219351508342771868659534937799756905645228239527957792687619583477873923955581943045716971635426494803564358316271723012400012444090846595533430668883162733254943599349675603543341676327462347309295836578788920690450936638251497811631965708064772010197970568903489792221409376344241073740343022557830823064460412247954632014556032328583379068305575364071462550638823356479840906660778010336976546969464965979702740429731832497780507092700402722078551408002734475734399129410277219405457985877304866739211485100464247543395681951882243460672639918494475691722028660158305105483610401520487640884814008476210100555263689718028141075010378213593151322583400621944965646235063130594696460232413351247214346580995471624620507639134411306149051092501803864995147682454960751484517264679073868569714505231984804846463058017770814740690313388889591839444857083259226199323199069807619836035415700449736889328352291624431486860101716697622023816436031933669287778347804481825517471988351444552063658360879510013780533113148998865388202172279114179261852834233275257765349129905855457621696663845153935663842555676781439227166337097659265437614911849949250148366798142585611727495300801152565870216844789199638025942543052723998744358601551841951376496134313150391204598624811012415371856195889474508274798214591974794379809120411217832676375339634035860954058927066339378447377447560136590331221737729227893509455030052287783605781297168644410447083662123669764430745567352740175336821847494394963154237528300274048821902031605508593352861395597543000952336480505455096654060441812044225525628872315441037187246610921375384651713665608825615415180157180081674645054268513178043335078788623124124905981081614994181910557235171170393504058897814949009897801451943211084936679626710388268655735032591871566928707617634124331174513155013476537140519930231441919776312584821658156643641216895673593325725488043251145889975214347691273966115480328201572146651744789934280298976657250611710569362309621146823035513282150242573354842463591158676053541529807754687267709643551654542326903357988636934699447736834264943536216988166959961524566146122442935109304105015805723173197976380177605458831547417136979244112025100000937535247919785474643125352000730758501772796714945700882677059581786124059307609682552798201463931298607564798851652779390360774749015135900040562888070911934279184769685328505459088806373240073807191396659265470726411278444720525430509900496964584774401083287411955793795290125796862106844758439277637643213125998572230545824464940293495061968608965993294562374035343066246476267658991291208506435500211888980980274180470615652588622358446584779636740586332496087799567183737807973848033483641362904465174814690007797931360814442466290774393619815717329491210786659574260775107801423071953467471573580453705343087110422850045987233487845403170855375227382587860669261458370371034569957559803846454267664255453637601550660247598946154393914017713436483573808534879139173535089562452066417024463053073039589113574615499756303144396586762643853459874109463409678844400485285506006822165642099496276180087948941631563863574453968542677198198200411234584782634686268417331021972957152125734780051595905837189621314046079001767419224558258758481293216258119315065271273358345861466920969932983505325946870382407364454004340028098701018992347638163183522076049461607640029231283390787542620265602962435949664500732657358480890532861847943675433879838421427826502459172467367891434351787678737841510403690772436524007944901692556350431477092808283274671220105899717201806532425141181219891471950529960632445222812708666528162596146430604678682805200566193163075156392292453095776575379777193699957282527103558452491771614382578434088448336694681453904621887484934244762270756728202327107398516485931912984902151835327945376601918316882800213087780697858180074625919492405358274571250162220678629264505859741177288631899234286562625811638410420993162191547940430669355339300580014574494456259331457055533174174944151619364783907710631209792953114869802006786572902348014958556539031945468401948596317467090522328168740957362476438037490311396290676861609744404995961691275585459493307188928394814807005248621248327260973117457682123746977507504477396614034813622380555018047666069049779647927812178495312712195247404481961577027231505627826729475772556733999315508410355684297639608224318367204417155935999533781175780294680997375940031148254939432264702722173497297268019750680636169754590540191831966169895689816470987653062831179485782406822808138258949928993847510394836722130079315735044698519886286136647894109185384694956713264006640459480522693540677665518931860382004032951783397602885674606943786570422167416158148786356585033300966727844842944998475475999864978355665970891703981082371700733240559949953405903865451808673106993437432769773876528463125236832001060450645302634489694974993613507520320897054704704709935480497240776284846737355412190831446253931973983866244612172322322287894329459745076980036594259065651521788874913463487353029573938973226172524551375526709018558843951993410640417767304949040557968145858916585752481637985297174913793128531396132397104498608344354473380634929855169804406931689170650836527621055491287527126604696857174574963899884894893588612139504757636476525562993080774929816066785852543401840374954012103828366521813718401879400187151682596347640872396281276314859651223238283489267716253007192918230643152436514051638395639173885320405787902818931762179752770799327802459557725278920713372219224729967229368024169834263923768069558141106315873983486935116703216362879907387760924041827740988622408935550495072312829173252940673323119997938303789926506454533871048436613564926535559034951454514124357645876126632738890631100939813748531403760004216890373736040946103877851370094500439452733631588622385957148685181027880603441707344778840847786283282777071102347454796416143466649640472757549341375668732020638019005405546974532049374123632964341536680594652065911280299442405518575202441188375217365280136758962462433372031789975438765635447087416360443147893536102462438444910375144966619147065817257418023800113088645358114927155194508836189585514317048214279842907494090347215812104832420488489609861736210889711232908104975845285952841641529505892555469034256599124336476187882392703947326647217729298114462952574685668503985382737832414674520912408833874706492730982863912727281713138259961190050926958576779307612535488762140587380825794175639190961210748925146434090939599359626573502641717331452899442985888497525299511839290064786038569302766312554200708701124396406348170431861885154027309157743495623555420650304585446787980640229066517659493174197623475588246015263313402480377973001411300706921660905020586132535759993790156955613588318195435907773991557044325272516753030289514857735194375923129954158611048269266324885203209370962114477497026972748725311173557406692358674818321597962619948641269663767134585980418442596163523648339813548156228818679010584096011022413230552586464629181776711360974618520326594443352109845667027114312573830592337392008450974666318851390537639941555739535542713292249000668825536734458569362603772254821289973973482203102794751000699106104710221377285021841185088201961719513948956772735886570262896635652925483821368968362393672478109276495964467018666436705430872585023952176574495086814522533923330717060413664701759428742939095769272637504244852802106728106063674637690156178726673600556834476899660619732886098454371321484357256724579973270173462105303964447525891021504643890426708681059179016028841858882491982689252074902964697323161799561405513254544199026080875909910119462221234477206632999941940692462682398462528147652135313067513060984476876923983832299037881922463402147634474811533841448829811899746525107718836014023229207821659875368391299899666733993420163958137957459497961577933350217492400365691617271769387191488009409247175210276587949155434852613656321582273409706720835654261418078426947148990518455478571666583001966481424882516498604929246672305353649024492366599667826662805392332957154384593551132405169183735887477755986260917211580665512345060406280080471158959342467362429045444657094023151474128391147065017890667123233218760129492461437927003372945032536510733295871406521354382438830368559281710280046585998083155557992272790665195320660191008210866757197934506984518507531820538052121511844295130445461137069311361003726149094430861933003750202893831157424347558859251666355945409634328019748788633451613639749276770296630212448247936442393799408436160894539448116421208872819374300594733572167832056095276672193727706539335779227624672827112149612893687819229090166546045414954659484111119901393180783616354050677601109339844896949040601607666247961777447148785912058416283449527409101037680955916744900979062834005869370181414483712148228481540405396117421108961026398613913828367978934251284662798955411910742088309473852742405579444748386607954242361701858983076975214683516751931615668361072112273173033588488213957957930967231073956733035822349005190179124635436992677839441629581590359136874338428013604318762261388752378159683831990939088260632954612291378741484777277237438282151418229796678778796151873299684248612094474078151370262642238624447371678170427849219165158509167369190924015452817974523129707409297291764135998348388634182166793893178680126926397957960824348507307256346152421523673473095160225820570889268883333837397521619955463477352646557254706796316037943410098885010938178529937282783012545213493646858966607046739411822412722279196908675552948261181430473985078327462898632352705042676803481878537377152576684133138499666359034556060016478044867239432814586797776677204819216099680930474332498394042047259881718926758630531707608815800331753090707352205153812124011599324619882716314434672538533174609152747850129886852036680885112308830017579408393444517147347626653677768478953337380701371533940816568179630865262508975156489134569627038451525698054634309449524284526302269023119039306660090913109601458556705868506596927372326296267575457127272199751914378424937886361205725169708554341006721721232307774617635726463402564873786191722000724901377909794926316226899487689624038326237408275460780772445170822645009119368163091825087395915886524333739989058930110285944682016292864250087305654566449299982563895908109279991793372700861323260689026291811045279819400034828907092088622125206603176994192433456298545300394494740301572238167093390873315734977717162442991855814648345812441423811271155288600595414617613766275485333327572567552624386700784004463533512377131680873740644897425336602350367556974552107580995515567765692265530346526345742709328870395290836483937111630341669477147785864222723253103648717473063307696982506641446839402982919810973074752800411079632002836897833942365332971220184519981301567232262391714134915099164759955814154265968496733462978769111700946015149210701129279075103759076992727101682366056968768080367083609324114177907310897486379489249230719183050315539565314071387944331030767109716871079003237744497035800062205610526199404719563263984656786136715256516601901288555928763205827459631615171455330932113414896362465832719613415001298533807542976760365362523955615228553329421738064209693251619019901970978403409956320974758032317611663532192513035907192279595042143636362196411290224938135052551707280982841289077165002779528685463197833985031862614111628051063850404103206472829203471525523613009999207036038386023464151423266728303047180391069600672832708919139648590953100893924101275724375228867822065819636334682746603703589144461356411101165226519345936660325581329214015371287777783132920328525738559289845964989888040999760704701590309036217233381521777251293827464203771007253935589892633592529903873080358837953603539399566022322804185833756048944077190185770795911337530520863811332286743429830919139907928037541329630698875331106157034102960241396877941804384678142731363002281374393621983561794832147148098200497415189937573881735509315438437480421951588441579917069423180592608679611774967669751868403728335470785375817776030236632864937274190149581098007885373280470749051218276722136375421328145636519796204242586171918359578395119901381418223242168526662954813470351651131341467152861212644377144365535579875578644561215156885269090674931132543259080268423137423175672591774436903871808726511621970660759630904857357984665631196749902328842461086034104607159249037025617419556094313606928104723635293699008760002937752967014071625754985980132028352455492016155627896730357675502780583838525698932731156644614121651533435795432654791438485495809171706280427637091346492631665730549049157005940460524421311015167139349901350220360626173528339062428158948272927933145802051275891328260171137842220560255801246208972252672740669682438431877418638331268580853901304045340678596227138540654758961231359935532562906090743568325946615743919951519113327675416718960610169379048434849271023076581731370867065376056414831583720178312301763402411227981338481380721325919949566648371783585584250930764599518086238074727084173134433894533003225598072128707555954005834420605692745326954652653994492601878628573909130262392482759770040014965956701501623935295494339461755166745111643868222513133454633210056836632745528357460698772864939616518353486104199903802428428189888778955851677823282144682512308446516776815198601952712290111765216592915795049543797695744012766115188664113014249406482506363174106831203974770965438585480940014631416168530334334164018037847003400903302775278052717380272725176277859152964121918132297854891072395679471276169369558069773460111619714173484918401763232801468767237047917417743579911851589505440034833523155255456169806516240963945086672642598044200127747768106367734496865228889920854364851572132302904735656756112468950833305604236440620412065328401468929602262665990044789837124259666453283135216530213722184043426270831532141200591551994553636687646258673634557910784896587347043862647276059534720257917386361755765716980749318509497742041060579123219957343889340487580405284690494085892471901860033866108690564271323418670272003946651301712185046782714623861870516338227121628977991370912665049262964688880078917738575068115638291278287066937952573292369137197659235608206370973826541954813702254337790621063779287622183069871074619873418838233168803019933267361939191894858026336202332772632636868326991593423780657479339569491746260201234073921539641359713268888961984738072321157029521143088875121916498388317962762942655695858078442037200175928283773880630213711383913637543152256202948222085331881491646099018187775473412968751110950899221880954884246906914179881571866572806750458102782984823284736273696800982432856395364937423774378748657831134794502299637156339990171986690115555750737666766116564807875739541003833219049868441874112256596220777476521729967308155784588337531201175989534448029898992306726767396599522370323089780274474328356456126913377789244216058901534377682621140179609586030664760804251029954218627499464033306818928062559470066717044250252245070483568326709416709308080205357371981815836258248725096443062425293065100402465170294020524976470301062367990914567459288192579701775741965650620025314359209750531246571771912954164229179409006571828075951920862455318650577372747190947327800899304463912267927615172311141279634504306462859612497290251646306226096355585138635683866388825934645894140169725216863776769881171351702797503269363544166802177461087770264197305767761481704472732447738269556409612166425947169343747414049556828831078332522506074360003770681435243679837176133346853960354165531820048472627437356918045325679268448114930841222389044244749490033808211903636375397833441465722667100939837756995439694226035456752089531871349210510741513519611068453454440260836412155100311680762828037957394574963549511146041164979568791692005970506790754433541753503232693381304516167680744992039088021576276188104381197976735294094861541631471125673131565826608636791588113824805620301884571186547522775139779476682750087583597513110511417362517431304575850833682396425053306831830552265148067499182384513495142853408187708431090722214539742462371188314038944989623081830051267202256409453621920884101922347232586235537703562435654467084191990085816211571920831988230034367460063886765479435264990086946384190734715999450329469229553133630802397490010428911208100392744936075688630018784101365950772323989628317692832347117815169450750922315055667909662570456286581377275264713536394033833692855992446056192801695726725804586649437729145416397790536205776317847796595434872870902533958088981165015014018440521179902623044392833475622867880628506053509988278178493873566089517040296909463596728810731601407117610389895832908190376636082773940828773547219231991850550599630236539827237663091049914552122912711967002618140328955859419150010633554534068720288236679692287882472734995384760525816465177666112174288486399498531246179729454536483537387310017782184384198899675486855948306505126029807865105931911696469651841401030851947697513730212157089055929886011807536938845267792026226704527499463853698757618791535206425948604440792577663870123224219557199639364859369466918972952347912051950544435053130347058713651042559747588003376308295129285761959703000072434093317598189851353063608028916609838581359040032837763072818857010686122289323383026820958005117458864281538586624265855889807814163737162704666014435876392847158514632921673738891789321187005060197996661222124502505559231785075101445590805681062215459864446576802754511283681630789916954879634488018618708664012932526404329075451947861295355787099243924561150841088331384794180829096636678233714046183932558661997593636487316517076186898839003839422593621236040005688506547432592901586116523289547330774132331614982223324380432365505775421783234406724935743038855458795806012739254768308592563721295952214127224694602534755670220328446364209990773116014287949617514836383748648290720752762725125752438948897056068023285071893025080349946309130366505934160019646222158642367577432814033068504142152564484665319626103147296667144550089094990256810303690588735163831463291690182184141419714887788598191047986130749494040194346773780579787912138689438471530290917068305851476827052270285563158743656155685752512584245265983784642647492299682999137855976867936932755582801241801702379520225259975660547869582374227657813733044266152524793771995742341181690361058761771755710637698668096343964174877385421691874451206274344525461123047665553710401976770207462699397263319327944182146632922052876469393002391423697568665023638687305843885097225951070636186830184163400731422629665877935724464046166998858496674569871402623966100703692475971074288678714438141840403027863869538629321896997745439128109481780604884438791587814735367975716746491656992502586704595629722769531610812172424674542012005255783999360819468260555951977391384034475326008246145983610851971606186583538449806983255645785077913178789462424473177578043841645438611103121412222950585168546276322276263044065727544543654520675495966521772119845571561414919339753443681221101918599692359234280083519510762806312951377867615138063550740324747751893881163301429717125020554443913906695655170389445170701272184059892432150238751723981662884742161652568320591281883981218001124552351890237590898827514063280070991783083056179374077888775423278043118924885792623136302804463757218800483152624008478307758586346599978505498448958070499898784721681592551195125408493517530367786275386862589924710084503856863107576726564971533131683418350858485231835656806195004720715207961987973902150016558263291934616091222202587218965289590144887800355755277134529752330206797918927024376404387861851579009392446297674395507441704983409828135083540435880286413206981703700218067427095650264137662616953114052488499579400523313527820812297837359556487060993664271416874289235011135941729484915294073379633716284072656529211259120158668984822835598115008551745052183117486334382827695349755629302587114577407080389435438295533840350832091696019970678172883751883761258404949109105795259067790297023662033517541901199696710148033958751857486303008235182162974078322178602691393866747682398841209891419588009096730615385017505916429366715441511708168878075951056735271139000465561718097372072313536217244500169784055292206950359379532751684810701127205385343717504370736183746877262669323198288300548205829418739789279919839831947516873758683714172220215265333163131186135145116187741440115458830769803131531943176263037919602940930166406151480626592824164984484358994642277021520208576766781253613113046063117773319886890533155747965739617560320555344825812417275201528167451526378790996260674868663781491383525233474734696708022930628517858102919187650815107222149287563404192246521722712733313760202872929304642562362569271112972250762637745807173805398383213830761789879553778862701311787291405831897128322580393648572359182293153246330913033952086676321895857562440531249577345727366479373700022650137221112705640745617483307787140175721942774002590368491310544052013240334992512250347864915016239928606031407535346014360901602747782257555801304230675260010959735976101403943204650750916378366251547309605142266307057961067551888709362666126756764569729757323634136982310263828049231105580751248732271683463543413378664220964975763936945027895241587206049072329169418148589670128815027568656103881166065781956662599960604522613210033678900279954685511022080755970970804258098380123360501731660649404992643940844181124296718581609876066180502928246609510325204235032778983319676684652130970563789961062016549312854841324841626875806386579457655651481681408026619969763863082182014447557003824393139889165348448229641460810237834722677580875601316860801655204009239657121928331363954979860481027321029438556019848490175597318562002755310320986164439792493408846859546663226729038110774647965992214733175579627282647787505401128205604328248491052272336342241750565340031902056211329927318017722140359163620751404772651800304134129583917082346114682759286709736169180760808820845921964850703586643996321222861297975403893074761470018522256339670017136077263883751342047984976119022582460056693733093538561581617303666331187989658314515495809804869113639413682391018708917831133487868337028023179551648041499207738544171079540926010029706885151639160583238122233070430542934691870113272618208816053043747788727312520103342318235609347442778412414424667034767322403938122554190408151892676293931584953296494352759874217173698434101715090053194743099649571962490933654574798036081665971312894404147040222399744994848676780347182510430026554596873196362655951453430746547959977233837322084176518191077381457727474346805927571687667360481530416537234697909902390677850775163669292358880063226158268613311915614319955678035698345268792681032203300452994754752123382849046481457681992746975823491033945010344316164724749104955506397102760271866704298898740955241289667840616815166805291294012377752980835532041019951579214468524894074744835219426416381153577325608566951068713586814652692197582362542699340270441807486166106360487040871518970615905840421428945524349377898044334145582025127417702883591795308563893460208821567514303816309865595108883614468253251710949157087621908281864851232014971674712926967731950146222447720942023857131054786685497524746207169597692214364471533895276445262285392297374904060018188799263619406857198318649412775734337013653934101908959693213377843563934840587710085025767110253616463948954407431187240826177657015868259985464003378319091876058296868962735604069692592992477616531345510243227771398263070841979605491226202139154973131071778123120803042097922972492572987553411396213377567774729640935996876436767821198806769340133980962294162420387525957974856123014476890559209957628565584080535086411310499181245052833328916314767861783841208350357477492684995495533115348393477649458911112900666332977830230045431584434401247148664290201790553745408168675630797952285785471122968872901808130790698138270817526764502822362991464044187371604165122994410483423625042939853243183138779921577151071304727681165004848911458254405044854270010435158726431296442432302301338297832934545706892743335174642088562477916302000790879945542783868609742586265173900109071157523719189289809159647954664431604834841743830808336796295550045441496845438390343012231198455108529412019631477354691099469566983446036792182794062349993114748723328512308073879353337174481937480702024394425659068930639895444060686654517395311532351663354130931868392822776543309559563033050126597011184243225227122340344621780105388779468433548069916148202737346281787088409419343692979816102918190154636408993537584594240795828932457888138237280473493572099724390502373155495739015496730181023596505792328378652402116092461909375057885662787453751120853511809018410101370500452704946216722120728068976799040973809716742729649127185815431420190593565035549527901662107554669227878986533070174144471085007956467489366775407601142389663023047823042630082406105909199576791323931249481174247012090978504811423057195341968073637675060888194317458975300963672861633666965299436781294583530321539974873902930393077943895010918293711187007502635482900537351156572573400009452571082759707788395265885178101865701022479288860236441190751564101573303947056471328587176001324269518814799981433104873198607946594945438936760530801544965871870811691615982138321221193079709711324065035631078123276665403817541753239094205321569607404567763687525377949857527145773422958902532029052653000920071567780355484963878210923454052987545439524415212389799150784001151743912601213673591873949659600613476328210390811484283616185862461086945606430513332468284011786209783411380760673937568596596536752103184901007719384407365403305361351821801385683058386377538019347270467440348659030021431212791066720314864164166842919886794370015257274448236252752890381150235049379730520622067839771600593575728019603834283734432460422471423752806869209188482839894975435273455804571679531593862420095052811446254373003877580522279713842061830734946577332976940758338743778459101236175870059519460774051626267004228516224642198185881096268863443230329341536655176697790722502061013886972254133513950099475745056942820461328613648127016954086557464217154578944402714160458967033875696371955507041228168869495738577574437298495227047501788116495306574701412338418660969858389992692921896910553177833018200562919378322750496526469960163563660191586174094107176001119123284634497018623429517386888230826183939430164948892095036805085890009815932253798168890468529343151176351642042993960367800740763740357756935651558602994528786664279786351618384912600819817110846794397660345730168442945232259657068473485259700575080342239398033794460445673011026481899444299873071619933176863773320018372732561427901665697698393657998041130200087455278520749848623440122800877677299675327622357459532614289850268763735511502327566512838856772587841482986746920298596290712205474224304388319701233541053931973918501409164092304015227701179312731609870302021952270141220052463055836050623259719536341734291696995959521137602518628158364528815378433003588995202494749580400607915071149227277722219953104597532859000228035875345244821065647305268435163979097231430998503271536649582309614145683058209670991366111365248846006733102253186833890235929572078149372123421928976372966735400277752389061448747931660398911998142210679609911159383299117890797626611555226960511691595795773582122857299295828987131434379038328438804733975019788654040607299469958244699917224862987772432448199083222586254358789130174444443029575860598541892301831584344085691935648866179582774404482313380541949630085594791195660567362613263758142670557598037852642730855093196728614161073209562573123450993136064415148511084682989263998962393974205354609327096953366392200731032632022204210685169092427002731962465997471740161645901189346229400822325554937944149966092965592202979497152427221041397753653985513206342136008258109407781882187883774219107480067260353419632306163498304725957238962136718051745825412830432623550873239809930127276709957482039643130668770374011626960585892325706707503755633810619513331375848225343350098789199483895230489252217637801189579339440819882089794017765363123453983174662346410003572957313728811609658158850069102456763326832646581050304391518065504527750172107340346379461990762523922450889774268371582292986691830958740876852858941937382325666843373551955974780717922606520532456327091507705992842153378949866956071370292601533522146657092870635842005660584085026966591237053630502576055151733213563118518080544762599601309206585332384433628994727398986288434059067816620544386909099148186889438100935192523156869251103279006205465330997524188223036246445087486485373807173572071420967227101969782381236904737654808101967878161998493677457810703229598227728520779579668131796192662206242924672258748246622699924379112094802782470480494566525078959169092962763569564870291628217867101140832551684975989041634185140164751390707268881490386057626183422572438539382023861864563794793657606253754855684805070838052314415760883385592943835004702975204920583629851767983780184008162301803612487599361407742613015338364580480636181973370506944245606226050106209706518624742686209811962529113255831453594763775130986348298508223789692981811691470396315481086672451379721484438207797132697931159079511315917176199436813166977692911139329781342318938765942523640347013136601824789516293740682078577876659153047846646139449414263293967418386828538068202919487142558707071701835899760921664537230083212797107420848643537341408388947305215537651294273547597647446330000309171356719592062783874846841530475355884661469926866060761166886612047082381596336570198100672406720024267327890236354799312485603977237342861531893588555322868061500957370943943021169050895846623625977776141727719604811433047729230090560525778736508822494976884382070768749819912969654481723805830872692197360077122809759687001577593592784365004168777989022717627297086403580142661885503707471974430863746093829044114200890692147244437966822544520081625219963978329024785635144742517843129648938321488840773469613620183933640819335207887591438814631498981769049598170573536644031630797281310537664582347763526762275812309920050502879454762815336373543160540715674392768202205581455105507783748111800964346057339487494779616551520420543570585722444422797135639722699442766823251326228882003388398148468747045026491673661059212709567397192283158131934521568533705939354897495795901352478368016203152873062617919327305906121211852565104608490712616731636384787065646280099827733396435239643140233635563289808535349619878499695895288525299510481013535377101712707513587685134198644628126213436032479823984985240179613330941679017699335272374735147411070608567780895118763856850874640846725764266076089779287410841720281030238282270098500313756539936862725035533328891720226449420731916312398125423361603170000162376698175827006187696041316457935054968533243549708727175336409491262657579137854424660535497857069954329566206588008943474887971201255876025180490263500747566741008862426922082157925061026298903169501674237557833874862606989413997277079523758609572732704048115362783654486469611601454590525697806565543047398927591983997331848655512481904613551685332760861092944267375232306277197604829698051974815171123035249777944845907189009456125507161350262259960096816742344330237492428238530473412505191512667223657043028060952998244058659625695710507399169664630037306111948093327906697859336616950331291015478568503450077584462769296469045167440842673427774401004499571094706586547973373824951282910330426084719924865171859058376689018502698625527302830645960632009816599030700506260628176262288873352963345570311869301131919573462948269408582813173014409883807094374475252299581486136496982823454199452451774835973104202568894671079632075584975395495233324624640698505622125946883881096598860145797681750433922203267664020388661541623378324491883810490513762421356615008715803644161653158609529501091843455482052224899446635568549243337333270770169154071266990192280406270572429193106528177173330877523261587300296199988615652798170984982482898457515479025981584068146109494074741838713406565550401807773864582492103495231080943326732871320872550064770350363440358418954532102637066145557743172018280082583338566219450950737231402607904101531920732199811797132550836406166551092698702769639182508503780873174543554086985854356727635687674362880704676037686093335916657574035180525012673073689850231634508324881739292404363435610483676245567242347169930638263236475366436372403246334338176638814796966229850145913626826442527660263111175552269616447273686573760579470972344818904687333841388026068841984934728513725110960740335485472942532055958085545730563563131292220781160485961254162801905135001715687173176142199909444526824524744228702944282323861635129712530970948875560036073237580254187018116520236945201627279619383297734911006918747415023699250603690287913272693744243418334733923471180454163524386101953872627373442620269843034638348807018221286813702961631851029677144148000300675328862394040323721386935164449197043571138882224457196592837933389249629733128728169862626381443931689238436799856477650618239467952471881922182296956551570322358158048509493461897536811784457421918156364555148929056078215470089573015413001039243614090923815071049547170151337701156365695463233402840778827388668025372504650390815916207748670624299120163557159757484660989304265250569403590030025695050770428517047597150105622920507172360512106710678376868019474871833783751104538627092727313218412990251580472957903810077685832361466443510597338533602873034832808724626889654287226386887941847579118827260661744297148295286349585601081278758835398104862235799113290175279570652313833310058233873087385291762860355773972064858389804527742896259736959947452205050819804191267032122132035188467264891168005482851701694171194946226279232406663003379073513973996771440512370714061706180705164047433325963929614551627414548637477231328629590580773334484076526607647820268298735698630496647514719403431687019936723119268989465428027589877748285840554037648012726425820356263458026474573370764332744440394542435326914600410361788366304715094322734378594176862842241632593998552358964139997933144036898735075848831524061598626665823775158329071906153311505338349719348515183863198094745080758758733305343169678124026496299089399814980884570463846168861298374837593128534271279311520069125975527394977615055771440011886828941053539511744318148066954918046695706353876460742992015174635799719184165134036212420127329332540848328360617168416383401055448650437908881882184730991750294254482343582465824087428617350454311789875981137963339301030470845763248682752709410806773322338256022732392034125977082254912865583970316053475082361394688601107762238264535091923276224690788486062472558548546122238049811564395971173024396549715095034197671098603908766314312440690163406316727468090752784714746399572133452756860700347030657659104683627666338200301396032455084834587580506299677687559573811767064979684722713153316325786644619186201062608351627707913942386933361315526515194039928470405279120871232361349030777619904923082734984663781789489292401160975570746469398614489160307280959171591309788728616642505295729742583107446247000713558541297635902248569163051618255341930341401924162277215869626081041789779301905218430834111450951222570910664076174954598178114593493681791553746602766255749692349867604117506413238696306803827981200691681086625531551108556091235630694076240738181791101649393397370526408961757194418023832181159579845111227424349797263113059123197609693022722412803854890439158660511338089382242495659661269985582678130369764534007134057228284545214806045644800552037058891598216641021605329550328916237656152265674402075771551762258822672978783396692906244904479771301151397804579864004559030562554157853415515210878215858413919147940843728038768705770050754079719948274799246582751179823318102773096746656895375170308400913290534388485507744458659171609141818147904840464100339173039019414788367232398969415433980564435541823924681068815344700208251928289855529609856017559504775431205538412936687215109464442489514317739650486303992779801961896187832406159409114618465281626476417931240749424897485067465867179212587527801564571241041486778475220381537896821241629010750313513514380657769188740093171677501509304942653770543515532800678283910318525172528041462881814748555028704593093772740664951841343147102747718441062623560258464114416210577974040751163721578933060703604045425608366094527817692042554077230505169102576224133563423567311012396829612177633845719698827641175846312346254857652536480217232908764413551593956087263169791384519720071373686814878651183430433062148128878389067563816648227088395966905854783515021183845813035581118051286305227377568927408439007432781491424217703012221021755827656763502400895126264239777265031176535158636902140715588637301499449677162881491406846064471439205947745191885640001072394021376081873752914453299622858166962682384174824184156938687810519986889676821636043745450452986027126390142439962348109133600689259103043412911936179378671018918674471124756755992298825416346278222928290130514371479633759619874364212564902204454204459795972060909680217593079942309712011872235585278589829607732626399763379987632060302423405629040381409929545872059875716331309700715151917016288565006448673111491029579458252229650279898529063882573801520737554401044290507705846351605836661072901037078851400941149007410914535782764653208095798932020025510432879571210233883791558474211967872495235600689694014814976741064504365667686258347548750133780287003586188870983838699277142206267292021691489970301146894839349128919377106378456226653795463610997404415253955371296141918579454298406847696618943569890936411475290875147424145065124200663254254353005847130923863992493043840184485315244861079904195148448480212032153361651413775859866844171622839713326143230034818307297880259599496758858902041482672211587429224870831207486590905023036316000027227352444402454555077750794917229775181763249907446310943606112934109538071487597485280863264689518413902397915131003808064757864253429625269306221820890570651619115081163508386631171841585259225866273881869823855215196455081153906409163832573688535712026389143214134433457293645693716098488536131111158558938636848739314159840418765273101037052704210327805306188946557615410327708484971870393679449983587275093302525465093885862982795628969797677740692054416655530003003831806117301440525568732138988144841989304214665168014245895303487201526852323149197789604981942721793851147759773116724944814538242603138462385715256822924281810838984994803429741877472788014894057046420515279359806250524664183149542257231370204461319609410490373360745682526629382357224006302268640730062623730325627588289505397046740061794798816499071957029714472172249934814996732147422519864735966393612119957308457196672643418590676678146612112598831008996159592973581911249746906024647091784821440771745271926351492325079397256408797356495535497212284975632992263517957927834691549696267102725907308765548992987741676712496781329423174284967845632003476685094768917773740870852356079311370124515923304833304147609550541567051128018524937552977578971443695608632623866311847830294608900591259297150973977416518003491366891410210530898693350702213395646724659742960329945682914978872595475942160025329214288862604032945046855906038700408460113098318889510881748809259023200861465153244897681331651939736998066506108222885754706888304188873244906537128450994833164860758949401220014963617979621303779691262374029047674531283393746670161454127798039056569852858933827041696202390377221187461654211273348607823571004966930947995159369237925833506570954384970782205570100492570717735094075447049066456680786548064829420846920244242593801681366940202336791987549220044689919258690375865044442834960039168656798035481813574930000655857040299258780328804151308020331519740665291179770133203059425538005245194798316675871036556187624873465769485986283498583391382120354694090579729811348417645513701527577350983711619232198200350115538790775007298953377234817642453578217980072129823656407117872231942705579147323792783440991874447843100797140637569962635982607642329775351803363830064838037223513422883524564824377023421419874669187617994956756457631105352859897893540410164556344449644663280153001668650447559736672063129649938499023376494090501605035307081725784112484746859469514028881057691078410235463285658611659893193300433255840266460303703287601669650198743772634971323032288977575991522309569747246982123966763441128880596796339413081636123409689510875065271319389295394551826476917216489822999848274698433428340073044976249613042390499191820644267877317693756015317861691181439602002205661570563877717970420059746680699131449472173784805035794252079556420388289081124776663719401742315852033304481603245814267179293762945808524836393909777471659615107153689463729459566185983473543217038698493126846732278355160795189396716157391821983694770017298802150348954919823383080737436087563093583430940336918778098544851869077399444452014211793069436238548809539874001078755113813682676921328278339783777315459979300179771995096531211477935053326861603640997381055936050752218947536423760708260720401468831879955769725372880593783778772953470073407114762099078458947258511624343564776471175778966758151088874343227611815532323085965512802576325966151795851607744583379008651309628974985747810240570158370370924126156300857957441650572932316599527675255881104259621821568942574010251968741340150949782224915703386679440485541748570480385952058115906942395516483368809580106105063474285984154680025664531157674610044792804142659732965858344078766319311390000482003706642980442888192002145591368316618425409693657808235617475752933454171019343247048130180519325831090290673019939018425162980926146341105811209410904619942497614231067969713919910954814990991049421451054374767904133186879077441852833286202356030645510487014999758124964986271685360396920833932754573950975390696042755351277960463954522788363882074107008073421195181056029886840577675054150764504389813698688100081082144856281666605495287197791231034855240362578886617378222444680234990076408960330512750328427460182624410272676697959467369458291742184772828781694798020871096868632507793283817612801226251408824671017020170484010811014914069953425973068187487011986915098362967794693664442054218480668588449395362921345300816268918443165430992642988325341875722399796471300117473389962788846935764777635032406561442038369205361909635328324026233273613501217329063601260671541973859223461592795372899062158332931554394828428829751769183470556065927761858437575928031582754688405193876292455635876291644071251537498721627282113141783767542560814273400578128577761284462497943947298630681306012033375828688486933773300530010913152110034388775884542618082208160519929704221423812892984886982960268065049781466065297537011373997197661399445998616515404596197228179063824302352555986711920612416696969036087641834285171005923716812073109866227038397142618556271749215246578017334648893051786369697367255657912661337141335746683297532741731066977660314552459698120910919192936600393895947838739468771676589377807212091338721623383880295098169273898716093837008980074899475376844664724979997462053057250087220172679912336579145620855930918292608837564717178591387175256767388705121074928258097580883503553636429397970336003925628232945226188364627558370091385163017253345207246865010851610446725721432982947462821008643816124777400827773158681432916313589157683768428889667838120437645340961860228857458060931584151329766755233801135763294715278448319319961963499706563601363314689032262773899398420224930075553772874704145034588792699363065972536868533299086865428527654545469222883593975913937443496713369287804337332429243511430776758279155831857187978924202597741672792049971627222897103306774888221950797451120309535853477564559059226158709486103820589724129433535644891589272995607445579752439572103123352572307684904922922597425374441793078521728591793653243955402075364025581575087580287074545195835713094703803768075383111730343850750602548022044066286781128900685093061318933638765740486046045175871920374180827185463313046106237903692241672912957226681313044170711547757515572683506728784902048870435375279645872981089603017636953671369208698498148988004005988829145539515440578672256132880638910108448581998797786216333730640912146472909166647113558995975824555533730590613824353800488374556467156736838776803159496035672127369254914081706545559733165640169136267445764429947969206111428789770730234593733038260130427967574913648115202307585654232866531869034722201781447186649091582084336344636196688559098210187991601941050864007273856939281702807581766873864286564644970152459027279051899022329944852043564287557591214103082719245220803290142909301078462322618331127803762513326325169845665164986401311093965684180986518427552335555427581463446995851631364740663353537765315893257520104044538698314158218966327773926341972811664573948121819010389586048342584390362460586061855285272811210852475165766184502183613335060456074273727446203890927884619644396027953303800182810594664528181062663849827551916000747839731764373061938711572750374869794201455416533158650288116785830304839689956370837981048109056227310542379969105497855969324086886921778452556199388903561841777752041509499929963335376299018118973995142274965770719919388658579803768510304369325753322675717566526053669268332928695942866305716903318648838382030006034163818054406946509567923781172046693104082334442810311609590822729853354163616980943550531949614651273470289316602507946275232808174235301803477894736730715804823512730534687392342282733318554563238598628218779581012051578751885684389686309741865150858771824728302862896431596033419549515297692230827205441661311956834221586955767245631646541246151438428261581317510221345835969120193413529445237287536043678414192300886425757572295916465116089021740292353470194094491680449414338344724677666275248945242343898540848418123925778596631313153800031459103438335843436706005673252309721464591822120691587349222293273163681533528481761444196214300651129938471919852684781023671890883723211130835953864232490841110359054065617318397275165465898868568200722367296212984406132257419097337844175752761845470781066551889124808542286556391781363773032233366184476650217646156795641315786556400688101269070040494542652296366306255173614788404928818589257573456608165315076962483399041795520095691459343619464083853041192659032906048744126223276019648442585853754373938822704381557870031928831517161044305474961926349962436134732361631888390713901016143512789727686729116487069236422681729830396589524381445635709646054886852674317849038715975503764576441696927342482078188110085042487262467783056422308554308675031626086897256449562190845281467757000420796409104790249994786742574646015232591114065071087178093556672289719648543454265811558434523227217974180598269115826860863574431027497620832040288823331551169669804120638256171388550612200346461193667874198721595638602103700516742539921647809670564338376163023517530266442652815190758228971704296193135475523986953949286894797470638279294019940787375056077346635807444352363439706027068542401057084051651477409306063565638014053153641903021922083440181557956648770478578553530799755438255877552503547994652555807484765009804498689656672040755216777072468656690480660892691371450471424459502606744420130627284177154786088294173575754963870413494703060762902161772185514396949422858561306836612496947673564357819735201885114177993049693515956182616273876120600896792251728523891320633734064426771863240537765287216725571280931550365245813776447185989387704944064316607974985407146403724604612890840764715968551352555762284374619320360765716679267914448168792267805608267531054848887202065214852883898591462469778809912920146853138594810108760689561019504520825118537879304099948300308871795255696430520222173916125645131972410443952409394097039071008360149118666678340999941419265896214167319284715107043705601464386027787402991585832893367683040497671283235245173594320257393861204346241002529815558232885255173986317933861446858505828777307360891896324913731247860626895480544825070467086893728931495511675754401064843362969444841563596139941340387197981355526468686522329666222344457644788344832287145785787491653268807309930695922135855286643586069733277263096946505001998740200394304478168495475287348527430769104822507679442163100384330963016420643598566240308106260083785648974697166178008940468365861696558988106155650508844736785492929653948060631454577502040227879038170081568454795830712910847300889494770458724834989455190836882690274611154404668548338617111662469920664314993226716038159317985838776678059210317750878002652128355577410870789099762798388423072741858974450334869777259284808578182210685708520089413280700602913114465350747304802072757744220197133878950800287255872578991032238965328749317737372854460318353676538133336087138612769147672490705772846187097258542182602521704278187813945353488183110551362809910747096164551576456797601749521636698140908017825639344185534875822226596290592787744590816488422227666237780354899861517003722271473282512362698368852205707730469024087096068204074399370462632233903950590953673636912105540175778054481577289908295571704654270955786244196352870189459444764877218722009198941118359313829348265868257478443714090498673966620193721545709675563565246815625875615194330577143795523969845798588437248026707183389633533979077786780668714874448173543621509561113950259964515037893928774020561371998607822472451645545543370590004723211733672922726003141697852386521557812105703187551765158983334367150766711357733707736388479875472482428671902250731906078454493024024927711387281134863005789897958618929180794806563926144916328127870453588770422181862284612410216532570273320681230764366387379681165923440398927269770627718651761934560015740209699221926168857041694031137822795035449173250812895404998408353667994860454034737953508920119531996261275003706068456547638790559176951820255009519082060076392360352256392739551556127195893852153994441337353650121272564922043264724605938849901196143291157024879845060774928832010341876007625188736053852954153295464049818084725047201489326866840264390917879738527574047740369794691543795568094760137384689346394868876598605997136964046770598782946544811411980227470207220256582563715204026334087214847826296577985488930187420055572267327708190590096799702277090632393318786325129481917014348803894386970805404489684733431577904029954615303559965614277360029653775460726777103523999671433136672433800371266685687934572566542849263349912379917616217416394210348931488584038833134572455475450211865268027617432792917483626671544205605264448595882189290849698346771989837375623401807002360283150306836776473861999329227900263948400341268072834064508737762712055400558265548354055983559995907912151995233555758980343337205588283313066355141252824037568819388148771032556867028787084901491912844761226106490844403782299981300791208367238797962116055332545456990067862657573025981482288506569009123675847128465251567610490326469504692035908027319340988740943623564990771992513048159998194435746268125677685788452781754541297708893133040132580212504014273780371897833382278137976182202503710066324769510302033709105322976241981421367966233437058509408937947517356136926990000542976257844763845314137827483014898840438159338450721066384104971775777440092878533782612166133169391704044695517155434089663246299934293807338104311205075070649837799618901989573559101369761183827560537512347173103094608611806170886905781460393165390586742899285751710398630437186560320827549356985167706744919329499024027920061681745351755584961778118628221461419898298590383069469328212318474920799843315322524009021699414517168180657561336119476355633572714786361229629819366711618330132907835370959098120640057959398380623638920455378176330502018490045543055234049278354974414448328604879192478105025590070628177520703607607427763042028989093072662908047923148695764006727058161762492410983450820868353253789243242786499726619533884536026406633567409549935485119443824606068122205883983866064675470905249108629418293482702283040142168408208216493987118857764545419554252960355108261995039092237984600790969292981937452855674640603673907989810071881368010965356004623493764366952202967637892911057025011543392328737763852952584630062629429407748408559938958918377024329505840444491477152788438346579319027252780897155546471292017212501052969219709412723987052755058334951411090000174733991462141881415152070033127034400910809469536409107975653794105022546189406399126478761237361509225108474766762346705503265165184124420489379638027964727196610195301110347518512618949469755267273557344996867593143226543062986505800725083109365734011359458047769657641845357726403977017084882336663440855896721428127720753128329343923518678490444292196945263790433910109168936210051687338722641372522445858440406220312282083258294989104982699423827568443785202395620202338961266407048665168418389352259961171352407194891875924520087048056786194456016988364815830989465731290249716903558129349796640580506277670943520874126374817663983296890393244181061814617603330889493852861642562976026340732708029102594263334621936033189152164615404436167965895518856294253674633935823760918340514687002616382780380023227458198830557009497226802599900172526999729588467199426153494218842119628909235963941750940807667929481563276030065421549540581471302300116587344601194288520150515879911372752587630487079161002355139043354717565473640241099045552824888363649222208633308417802585725147790714970007819652419686026483601444908412731613033928356041933399618616184362449803020130957550589993436553849960419932145409130407911713761128719874827334097176497642528407729617210823113648484979772989617046623286114390171782859962263182370996653439609757967496340066544468748247063814271143017512789258265766166977547789198131296243615287195473637869032222703855576072736743143328112487987412235488117778956465134306741113797025377815938527878870283537767598343741986628822731689078439010649964950008583020451241203679202252870291139848492769357863032527051849283122465885209721618443700827255224354398638140201899818941662804161410444515680742602161920318200527646761804098774194075775019475347746869531701189953684131392027220784490663475806603291912215022865113696195692044380781365819363285801675934180523569497859059954830393027671797298902267729225422152577131475572123709296880522664988737671055278816250747344684373327894238048865814682625826601256948973863397684548631239993739920309564141167860715668091135123533944831756856887117206139155258043929389245019359549962131447158077281473269343248756445084758945811783707525803184524637741897138685671856712958087742217289894967900649984288816685764876173299020375125179076319092447332071227359878963109396547911057181801505320485432600169284640278619036846990153830584025025204746522659512133486524423481003683939903087468991196591288143020562404413045957035565209661250145860240612878424569017063845367647136456939269654842755902219500122125719650451324754133801282744174882156675984155211626916480838943129918628219521955808550604310221060815004850931161084273520422012762511893406993026791169604624823506329928559353086760927684941883097783695599220023515040319511121083161458014908049525875096453235672455279081117927394739343982641397932001461556160097468044518728703301332809444581443015451911236001544801712635997716749415388866521541042646798046507239125691022670853344206724306534198745787492280649179669533274897586758348421410900922348333266048304451695524179631849707811036835983799206121407193878652570192245030465646414266190446118283812523190139961865725230132216860696779388495619310619734631171616738680976486069036356578094351724271464700640303134907931441805272304348298059600868132844870391277317304871426149339390980821146981414940452950361277613854520786929607041652642621011519420677770079998509784528758115053035705995579952887971776721415275313047026449009494990625589187627255601287607136994249351221150812897495494852628192182105190919742270720333374785335640519776974154118361167986409805372413136441868729819258054040331321019361788238317777746688879408692096059836468794035576079548670702207955822015751906615639286965704865547260631866835452476520810060198063670343557081959618699358921161809373635051660870455503309755014788224365757394541205590479012187755940407904938727722923864015278177144837051834203193399520655228455957040978071030255220983251105564727988194692454076371205577631739712380568807085061037161893190567196624277938515301092099461147053668015463014316031115275124831687407869428651764886988557805306511324583322534323541596355693187487381869037029172172682849600207203021213400942354420627317697607557013580261671073277569575876811067399953051978734409671702969340322845220715604019706904933844970756393504078909449070994893898306562728545906221290901643525298400595134242432327443708264751177253360607367810741693809685389496181788104172615468070571686712887435688250980881316763785736630118334340412574774237723815889063157006573559443993781782939183404779566727301067534209473788219488603061477868731955778591336173887197141677113662044799161542250940655822386862694054201137163472406762341056177769458113381035763996214439148498928640037342908138092846261899014602853944129646328810015165219773785083243473258568126963328771973456291868841955473576524987106345501990633645704989920360621385810280497618551101101941166039355555785984937215107258588331409068861278519857093771987714247921002153390189016012963917855371820744245217625196245651353539412748047847367877375420469340488557643584548468781921190779189718415886315597728540161147416872372194357050023647545884318601319197436051348970399202512376828699154278047868604303143828938209261127812170317232380023370545055630084199654264445724504000361039906668679352919145184375520046606833271133803595412697874332435345369773933408192227738539382204626969610030305728042587731265164074007968059669199874828206361601947684235642131756944687474555855478426957753754441511713803810386387384162859326821276824725687773203078506644548373282107513802555851467742419229652123135227003764396452375252691811113073144763203870067296599084602970863553510930437911415495438778449969371294667097429012607711266241819477471427138690277192808976438935315571363803070645290266288272256054678382427638519912134819033011395292496329741140510502214785821575229261475839660468146705432995545810168278976688868845895069981951419095791547508352483935336653831476839720768951253895534618869253910936770615655933340071540325832827914888322304440251388766409315599376336819442493154124162508027469374806002124079861111511322865156665838503323580515968313081973666497493848759586999555583180052148866917653767289734511894608452957923169931773164547117884713827665394820906299262254344819957503023685940604822037221472797761988441213359363476383392133742175111994885280467113861039724127544754907832815298752332081069637590733352072626392943314761866986010342220672974330700532150965616869114352564783386658475655046522155505178380323664086880932386198283323895219228881079318760089307880354222104225395566798442452122305480792129508557130419908692687734536556523368913989753591346842928838391816333616281024467146732708028534423535672709361019526398823442563952373920776580344010649200549848843714601566371142160288286691961901855504568688680908669596584664667105495465384499617765833836506260301050368164129313116080493006003971175761867524506944867161060901927193467089457463413775534552148941613695486817777619437071575642350865720688838045537496293346486173347813903828962160942062132633631148950849641470570779444345325961239920425627863962392205786334978381395506362778411980468804269222895882080275120437912296965178672190999344714059694607853193310320408203270491639998556748527516031021788650970133319170513369594190776911016034431885898198384707009828403474056097248502611752706260879605398623558814644929801493265159276545508174914098570796357770888666192394034407843516449466727806412813001125382616356949827609273456337492527061042106461768387713171809215620211686560145445498211591564668392777020518462609705913555322654431432582416225614357741638027499438759288416787150335203759291882941501158086057214817140456392748472436137317955732830015116103289151521495064503260721020779277481964526480971026243091892104799319694409501679441726296705587363028948382672673587920402822639451685092006872542281898386166481430965236565300534043570481081627403299593421235881122966887010313855776952441620471492555879422115822902742811128951408907497426317652696189354984750086619126008965503661164426801603720686839341227001478287365638444153637400609522210921994690060984045043714047039908227710123377597172272683054226807507420019241627508988993949069788813611875080509950075189266423031049538005678805921782349217202300231435598261415306738517760566324222513325952501223592313255562782171446124863361886576861768946779957086034035640764994177845054550375959002988722484351596341914267662408304758212915934239622911452269000545865456184949025401610692066089871007968641177624620681017318400889268467317022969864976449527668187760594283185207439687909884624335733759798747600750976033329652415250968788032109253839074820467758872269922239704144383901808729557023671669186183032032728325522044255843117863980151143532978431753177710178987022781678128166780587143878085925326947823730293084775042988716779130192595902824820417559389005621705486134631495019562827758280748521679348149722814611362083586178532955848699670504826825924866648261841113242931306555981905937521491879108608276192943963578642015450760214939216298679237768763268364154119277028720596171449135654991299545584553255161298039396581076521550706283969653595607457272875640484927134787763831336184031320372598912170825539590917388155281777792308765989835674281663390964291709866806056542301373590339592759634065395328135427056761491252920046890828908048903045289334223781992916219647578436048234106919234246900239511536153633738094995725151069331481815768198939206627635201849673308314885209644976219779316450674923189865655902022847816751901672035104800142427031515510571697514992108046920277788801709403963494678827685778865645413674566397029755257732478191275408964995979478676614862578914960810599360217979299049601196044594865577899211565892118883173789695068393191031484753585282506418052424401378565013859587162130456108018418642649686561579669502442459814830924134749741809057543029686135152444032022539618780925304065976622161558473436550037416493042295400649919342097623246128158729456245774853855808217855038225134382807340066054398191198258878230419300681173823373353522149920251646451641274384118420958252057131491540497329629188356595801867395355948762008805087332151380087390287021135829313695920849803495931880061711031573775956257408904584445477675762070989181897340999125097258098604947826931160588778764041886513456623407030599015354193552093442041125802757834516684904878786604666864904215156155981925208694673768208912541497880172051891407132498097982478598408825374744033225513721426231147101882444258056355597120812456477484046095732103963722235155783208874165635622619000464503118346574763991438809540879278741274452950920139450310817744478951206964514940913889665435939927510412057248178843817451872232243383868963130151502440189958301901576603336720007035617771540480816136352706359721619742350973871203974769046666954443199106855702920507262321925118920498713644927353346070760061393597979344867567284152113007331586966292647007527212850185026846469100055163905312535586292218335665439417295128954385770267933145868591456293914424187495658269791493628321359802968538616892876522494149099757303330746995123604914229876645141954401306593683392337301492681430008984939760590240400525778598906254304841790359361355549530879406945838552346528944554452806823196297714345020460095807372844770473300740816884990060117737436639071848035171491922296432773923070701773494354131787385142334278047391490149733404867148029967867940495302172260020731171926909146720442286244585292731454224208635276750687067826419168719411110639870441284739658093387553360760080810299738468178264012433503551254727327934804890214697641983897569854056903435920366348738796292758020251161736242603390866767342215388620580989279736113914868069128736824855952601573012340616728410915104615361949783273829991587233618865092861388740237671058494796312343752485617866326443153928809957285838213284297523473042445262288554149014782172114442395250406891298320507107864352980604916840375779937604449490646769375620256797177396633080671302362842317390579217840763528518540528535468989627988650186056485303715076212435373656407561588103339907671730599395166629937411567971324500137453976355526786017467385292521894760059982926423696320218931509216974012666232173621157702159412014430881545338242912658849550855023236833792884235844847892590661464245130481832683679253893667470047422473369824352473586483571526499816380944369744266608459967130354207737054926171433539880638594793316732996939453475593535760095920774202823337878983128694019772301422537330164490600938260845318085028457400120738286176470045841774946082365610081121614754860497427284717470481823438588726017609648080205327813369989094436024312521854104009062944302651351309339930545176577498780812491692558132157455997357714804649323270504174445419554210464967674018432684410476301095043687809306989175544989682873257966666832236199760208280372569162014464816035757506115955842712852364245757256125657398414906901016550254806792334082981026733026975068567449520059385437897943229592740979648202845068299983507385070097768504723519116227404469792820265643175996193003629524355434588474817461057084501559805168376751012389085942173177072732921652865582657784049136308823751870129973488626582075652681279984896809889043189121185188646207585162173184575862748906058076344218928516527417750066355302478806536024386637216502962646355167837416464072473455714590636261072388817975770068997494239578320862434713455314732426263714325114551631384449788880606901790817510366065155051876915886960946726038455587837474935768285040181083994261487252392045197895267636016376828082701057978289047907078470624964055672863610343746020891393790377063265593981468055319410269553352210964520168425039019262946113976140332098995265201382457777566480638164465359482862585411070864043193637225054239555460442625305279052627999338553226656204404901759742349606862177310522925612206014556003032677576960392243035085072570209136447607461663016504441863374626377027848732657246849740514778833378119041887237258350299772163132493170230781682971941030657271448834241007143898637284229285169514161236092423025653492549836715716169181767172454062174968389731941894527758233842041048219705508399484850604781459333538864606225961965946967794700412213463177514580968939910844681903853693176585777002104021657966155210930579119862491104520731452346176875315245119730981503470942828130775649221187222522046433675554715310778905825207569892144224404242746641364423926159851531727932420734937967079498943215063921817243580432030170819083453013209567826774912757272416275768283941628054460498284738177153299733597873877482022482491271903391950369231377940403264325365810860102262272612263501454096669810340779373348185181399864437124125778509888211600719007000039787656743315248790290204523535956831559323179171496343031886991570959881258777603864290093658450324789866777536661823460640969849838156817029442611210942125934245405040558850551893809146222630110939831629167589765813877075384139466448501618016100674594286785714077084263887607430016785243792747200581306617085453256198788400008010185483162338724137623159288145984893527996515529234266478013073491367957563686874453219309954435750836133502532498239202776358099869561301287916747172510922049099914111219766017184350566661013395974577094662194900551851578960522808853611165783649383035439361656987829153536948747804059075260260539528002491153616731378789898129628843503491081626561717687494038260754902747921102226797460554008941368775751973731105767702647934830461227159802463635450455754117844692784394822487697613783882672327140119465163255824208506733744168210946721595102534708723681463968563782728391208970622235918824826631320195363426500658861161721700982604210219845947225019542757336524485383459881814442151765710015852861125624504044040704999558757792242941330590334235744071998608458120911397827234012660214601250885413808250032720696454304626585396940722144383777376458191857079184949489450610707156860877953776593125737745081273732743370830000067183043395977761664356869196021281597837588013986430717582186533875255378174699787723940142071735300458026396704713534447117863520590495347733545452806164843211618403172881561250585631051267062954127522938231722799642684568102626935003673317870349625819187638248308708311418891896033525604197344534354985139262317229017268558927656806945859437057911604515831384719231672327537796621057958146845822222353059334681193842237470866843873248014694544820761162796662988657369303409969757181339704226097938307308498905027890161880158070023060238133334892567003242132326613354921448575548938640084922360016982715958581218229024020220455883618666293442555906679090546095345830421733295380487614862958062901735898894091527358430983038819643544367576147541206870724094416998593402884718575169782421335786311883342782445157488773095978998314121198427511115855661909615097252523691703533673921938077632705727436039540296391331849159579183423027613953970692616940764077970364748431755034197142235269398977443059773117438919189921875868641435548930382369417327726029383071531792332116592843358983607816756752105618477656193421363219874515488301137906877224316261497663789247457436874456441134118704980810688190443754010299286503279805075662516125086489144423257146063303522842824343761814509014834520655597007888840973331979181944781549299272014273677462921361935495647490844725273810516554393988135364735371584475918345368144248059506520034961428536647326023432823712584071685164320791180534695435460324452705608784188998169498217992185653347325693753913455643771276871999763570019124921606965752225373041638165264515865677238338222692805141520820771689508142281419700138125201504410788733620658878954332583282531138464595589277627113198809109612393051006350607766889889363572945893992154542315925204912382357121607939676092184656719592989923295772273742094270848400822633344420728136247510991177240307623709225666547086300151932501829371719232666652039795823737641734939466860527564174252280800700649395754390611732755902389092453132334209733818409539948504482461228794982037507743228637618208788786853624684078621564170247917338088645853572658926134943867144169553786398898637671758876792142442227387154032787975748849363033659786955482715833280858864412414590303682185381221476920299150237506687212590772104326322892135858582425788139799813641429355688686599048504583605551003525587402012662815454460716773574612848963554778679470778320924155373938557406591083049467227925489165122006080342173446706401882275146095048017639800715265393175423598620443705377189023993877369024379578531410657523099678383498919667210908842712095299336714352603009153267244968940525619098506595779398418895895657872135958937786614463083781137121606532987918480234155150110569802394938128915877242660216537946302328790537392088605056373576774582361803895608215319509466919202388110094718704014936306331403972999831590076258156719661628385330933485723708285581022459518539375038977884567414919295022689172615050836278015227869549969428770664818964553783456540218410258388051922221770957412766557850150097992512932350489566352913282402063866497122372003419794256626135411883824851962001253510651197010919690765777228241759542180313778524835094728311296944715625839743057848393087600299033846723183598009384218143096723458997671305165293497628497466248351461514152085378899906480270577245118389361676627421802669951324983358565993467292730419905242217840106515309433694903228948635553347169607289425899850294997497106192538902196193860148964628812013669296884488922411379720636692026706353130525970314483342654899356586227131221585036421412322098822929922914853059773299446518312910653863687318379594904827635405206285166113541137346063092858177192097282889489561354395302418880192061219848223755994439214330831334354703764468559918072665342678136984303074457734294436236757495706500184077524744004327217638494478554879255514746555215016039510186863686552251518685801392156871948348068319178324492705217273331588080230845352976372889062742831830594871726950765439582360514034516463331703253118239358039538841134725927966781857338371416399318072966292910332719158176416878166819006887062467825254895860163061386765552584123541415270103618420124275082418557697801229896722042055937451788331239946970804498677109112895746313495278566736093377808816371778927295742640115454515394292855321681281443494442690225852528766926310929375728269799045301132368614459190605119813960477414522117559883912862431084814367341206586412671370954123963388795645339542555365556583662971249054113946856997757095776338128808501155523608707033876526993350906667700475192632994135534233138453173034382946812700046049755210182085197923067972835600704816300811181180763458531563744671344818776896827718313401861711125412459714608843590871078525905474418207090145662321180980601100633367511909129911826455949636149172464659851989702405313038416443388332611891003644405462767496144819001881752819306740912900318270668187025626429711020817106745745242365039420028703131231503779313716676029940374301004187193252477510850988801842536105146528205804489703772368878026514770093895588749718819060590348444375211843674340812879806960409259707466051831427439339034219227874480293476405362051534784985786465672718165508718301656661256567629545164262900770448847483356135429797859145254640966765519236119392698458681467499664751640046501620007725545243126171097129928502285015219339434011397585520479679842980890991876482398475147273136871882056811241467665544354737872158544916449323847536554073300145075633729338977062254686142689263242257252105815323424828052082297782714665459445598829395032456517434679399290078934567795589328702807518756136653573199029596196890533531572111600699910193781179198610668182697775993039870139637674162478218366802110895527819533108015959749504720398603142674068206146387878978431807205127943817497248865022030581399399304915155048271972184697678587651077026241990434930740987963140741307588328297389553218094130317766228516108185894094057320907860494787559699876462929963649115553472819272892043475509214410943775041913444013175906176172068784515228113606627748220386485858453220901354716147653995227274277583657791402548457257638046798286016845362538288827237700577941685978592996226228991279124435631216556457094468619622860035242968224154936990161340081767373682888048298642478460843559840583954681059905178738742161577730948799779527447793650527970171373150990124758797477144456105230742692704493280693118615706915894886147152540662070116976257229843169446582092004092750879223056117171178017802283072992822594327371946956738169845216776655468442335020323536238391881906835478713077208026950426391565441038999006302558712789018173167409749230082631029027228019372394051403643931116560602704563097757092264297744993669380025916008756638882520464950645284443443623285054708101209934087458853587729902600584819001013069558884275971743077776614284638514254744552805837244573508298484674653941178042362715999683277875988403475584274967286759686213801757652215625518371961865968107109926758787466963892174443818534555778242063397502560731598614616239547441893645524143216573645929007005913127834073421078883449785416793069628316187477420413365023459280613185972509557920888800006625655781769980249205476793321139140911004522022885616913933825982171382273029239533528910167788498410060096383291110789425416356609618558271394067760772439661812483182460831708545452253630200811448917897782764094392767627055159644703576385558817750000447186908158051540888295085032938777655392149060476080612761916210748506726914702429597049479319716074954941536982098523981053245624903278234346165108132272230341364763068455665813424011380058580374276548180916706344953211926547420241283283862761087601324603047430255463606204100095598483380794230117868592095482222395895166862997511438868258113478517505557066333332037390454637470379393675976137640661173144992170230322215365524151860017932057840505120446520354817876766523942201978111276576506204656086033404345375548373991391066109052121043722500744946248099119395562681490067741025428191409048082449788201179077019576812887744919083809046648827866785705523146889736667967935944265072309621599860437485000584367316630086136129096573185820933975563375451340164654516787547241319759086527541626898645987529074137255233764459207329420467583348003265118868632674751898376497220982343705543075711708084278032374535379945705326400380501083416102019540574097210524705463952598885859482132400375220551387601526522855464183318037526627308572279605498225796180772576922284786686154576984149432930814299001110101862808065979968970544540441784264009320021218820839348375995428439618161621929922719560835806360208694043035068185104861743357019855734631495683470845257573297849584409145076361122427640200614935430134176482220997368496242216551180476466355572435232685083869796617880514309873760252573494036141654641513070790503363859320053335398346019181827442922228944919534398118443413571431911777021071178414491292779483502760979034701458632363717187718283567704665154167082094448564962615179757265814178594205378215579690365838407311809985128378830461302201462487113441959220220884441701696309061611206525102030462445802733807999681204020524729711547893844585160973274190317990338305495428122000655066432677789686140893245721358129864997382045384168532148420649592516849737569931519839139092022483998103244625906064762256420747517509800764614167120847685046228340308552470042871100097170684590227483296483733080537211980492195772743340717093848793088589428874933784987834358032752671792522755926674660219909202428478220046495129418122136334009220240833775149305789965013343418888675630647276733596060670365074472425251370789105815901576327213772084559549905330325903701879191361176698113157861169486512699893622153035631481114710612125908098947154759511741846528736817123351578808268574058634604235952646745880861228659668516472713150596506304452533318263975684923899663096601771156851174853392557299338922405216468002497718623107554416451850054926516521724570487211787704541706021976928465276435316447987416630853631935895212116628330882380132762830334767978079966515589022001865122329947505599876256697459539709903970379365169537338782668362768767535592480213288208379998191743875253190037066183668331254337492412690446713025582922967466211241717411063650792733048628544989344922715942756182727063498022172042042965664387630578955599061037461868153639090133329051313464206830951970172689036610978193146431125180297100329743382115929540654143498555613021637353940346835068519238606201479633601737107307102856069859430906546264919014672998388302965199785865709078515448806169891365780935280701601911717027714015018589914592435887734961960651914059938964671402360461428072053557958265981622782357468451346374045474238438867466668594626390126874992451023754430803643238262936456738315585079444873784197827225523651617942452576999604745844382689091176720971490028771838628158548018624782375553209782454705072047632608815613080077420727536476942021583763148475549086431839411757419588629306214466595003334226541605158848147458931206747865509906234259468431568900585314826738141020406630620846682827094820093936965832134508336313928159063377581621151238926115611570469618684140361360308099612216359764077817154472864149528460959018407908454123214725341156064251064399596224313637427858169578441085179543731405975480828652521343439863863122455365265897096811079903416320375230903537133690150172187534197775228925873812439776853409197258160486021135669761574916863803038707115904413619142096530012547244524490444200635208408865700601994150118544737453552064244884072121654047964636957774429460108681481522543010357411274374098495579663923464987552681880418757833054143872925230450278642611501807446017815562152344063388461625583225851374064180891350615007030886211587398411413306654643326975994309253121188873684075006585481452079699799740000238347527630394218705839579942164215127485894563914657577456149442034336789377711797288725742079310926392227691124789571425433540642022900569338104288277174467913313351705410360071137986004475563442340933830014257957701061129617676938567371400458434414825366514806033690569463259164088410243376639056208001505667478573271583502632151481232031265442185052899302926205980207055370920117668727249372630510954973449605380832050460015595228849474678636279367931562381008991561810355018754710887392779202367435500484329600936597275768669292420520931042076209704654930714019936377798805665234572983164825159980340791260894730660995047003198027079359610496306698342590127691171823409425792895068542583286358103047087492748560964757122250739922266895030242031818875582073799193984881791756416336041994920809415745633993054323673471143213490872788239933942580655917140384159760256451416680544034956767173486371181991836930758597607242230007217682570502501291688697109336524013478076466378072628444561601985847152062464336222965160114340528389684299032384084492310620009623097832475330520231117578892580135760495987239531062996642823924155506975778797680304255016082504349062124219186790600605004908782119792515880578746599152292061025531332042838219172922334337183557714861149460466869886993568380647221738434897562902270191237585404145567926250272557235052547285529537104201175269259825077159454663153215329575453750681627022521034943040004255593321872120554590121026006910525139185158484484508665366020835463955964032132015553742972653035306781047951102059470251470627404237672472124677107785261123236366827333134781853206339391638593922552766640321119928265337235412591966165623452477144250341189300649575174187777274608161539677435110118376862894521626238256398796870501613773801011727681751764794516305975679341723676138981151144824657417645774019423253681181949329971547625334972375059664896364368357848612096781241786584490434177618651533098749714863570379842421942838223221891902374328624686958708016817776823816821983844222005027251286126855976322545200057391181185786812946439083954638933100496176480462903892832714336652031398711662526260124480996802092519427690130376903189663431786908304528840037262030320528873230632840027751519924551267890560874397952213479317040602635327190530246182525147969573117439443344161608290784136330752985736419273696923169551337619584877843234451990331369467073391439686922398781779030240886830024022353848933121365320563666197680243416613467740351618403546697609598985240009781359702245835803598594535547209075857616741354995878348485704374502518440277204495059141993984890834393440770690826709698038936513624233055801644478832388424124153333120851093702817726829071930729085970473964606442117230411110517160931832767665504672589706161380242051843112784884376227929270610570821451667008251397951763057372598692272830619959278133511847339065215356517294496148446798469886926975696016519290284007033184867343586945997818693350136657002242686045436106437235915276868504598815432347592282868184118514932573307469788308074276195741946550666247642351059870126850035157685849596127595990743061439029811523922257266279869706354949901780155373975337508612178410835377905694558262142074217226965334217962337330338966765831860849032526518503333031552272004980816684354564117227729423582003717139790203822230728725753956360952206422873451444952252428149705121640353026935442111983273313698965639026220639017657677167426319500597812848217153533381889460091566780976819627578060895668664479225517908805249090900322916330059615883287030917454637421263252017935374438863826448214398373211696462356562905975121495863705434133465485643964709815186388272604049590120393143551949872794367713651787519930136386865035525252934175184464633852083210652819482239564461957978792139980686236839757829122801960566525373076609739488271438833512029302940721879865061596860442316052978652361204121227396146235115669974373275911762081656920057830611115526703567226360439721860266602047545915197100738347139919923624321218047506687986239116511848303197447637624135340723686751413278186732226047530537978709673307880013533469290106894331636663681847690284329680353031016759053767342745354482020970350365431488137741928699733591404167002552499907922705573072806644308002031097628583552646498333908328030298880900248996164163330271885641763651426450847731818360285782787760869786370249129541067596743711708197616387016565253492241397828612727849222568068586368254672944177956686036705054500120403529244027600099444860817872037874681525239507755521567742722405914576610920425801346070446336751513008602744975239654315156989909213721060852341474508771571673140853478922940025207313159973498238809471470887173558682093706675830629122283373775444174188588187235073809612311086471362103320713349067535161285694398509307249466792540248536728388787140692710805473071649687486149625022603563450225108881704899799756172765283964264345669194077406246968446299599411677586930396502087398693319279001499449551926101890548396097218982701073805403189538355701413279445320374369085404734317106346031548262377357996988756189407598681517010086310462076957051857369818417266586781028939241178298566941033535022565310584331458926640293872946955906497105317934613789133333111930764324105671273873509847674265937544241348587322720124438547715060904401395763983550976019153977843113103856291075437836201595407984643099498718793821321478728519572447130217936938701289361984779574029340041073431667590027002336402120738032352730069195636227369275551162505453023127081669225630166678699525275311055778163475458400066694141170027059334676024953589073412248829520228137113537446070754719673768416838603763497608110918368391498809423388271658875215808631470258921903912386990200010927906485488766502191520012719235542382137199286549006056517404386953513883043071210012484096156132193717091808835274167022761103051056995059443346569620176817231585260303024724999445357602708675414212264205442484820423583410590386325550677615643116043789939999070549181769482961594735882670984550362482213890118917305217190068941076133216797165315285962151106072335598781313202221688016764001396571749002107842763661617160516987119579117859718921610074952596640394777206541169030580329266345979739805423172234897484024305018992215020128095054668364863861431082055808245681637336949827669068396971207088525204560917919445370362477950837549412518108431794967954599525573450255139552734091381187999104061620113636756936295508354046506075097393553723307773206704367079953111692359438109895044071342372642360724262413906143965327974502084309345083275787451517571199240374089006616384451458526578273875566016478735583820342534697461129909184045722838986328147116403887396365415274836933564391101756879934189438414167497601904285326647118003121006173522034613601326766046266298907599239251035631119360393832821234913479207903050533377718843723222834226584882462042076636446687871208157607551003726709820600055495773076854335766344718563247878973675726136102145091876145748382579252252653915986619018874410185485214083319223335050364096649897388833875958301574705496511118377044447178403437859247591774565480657315264776669073226919877469343533867537196919427639228801682835395500368209895187029102449062045215635126443071604121234555186731788737744887129228135744635570446971278367980595685426748361442071270845275924645190879763673384111433659320865165519212836300269878299856024712637522602046514732369448156865358679336570115479360197759705419178182889451355195138451285013782770719111612498401607820453177473654113652672303120601603408561968357163096906431110481085435576855557491599780060377262826572220994970429886643631204975607889841023052154687313041836888119458467426938281771230771185287283750932544568951662497149126764655164497325890775815098468463916055396250560748050503602629987856071043175030074503660028111426623594042460783682053170392982021391142543370764142743638369901929091654337129669907208266336079151892786587787865429277321178692925083725359130466191345669681705620291803379663117290235627805828025202869659570788609442568886376813350511601258131901203866707619341936770080599918757106218839782127578241521821046980718543586169342530019649792466683547191599763301648329753659024709590441349420376738649932596859758907718677086536224820662191619812755582546146924330551528387268722479812474803005248287900947708748658435213177564512894327652359066259003876961731964199178632943624910066027922202471906159054641827243883538008247770157711619023206242486907591691429028324138707556990652600880898745647793751099416120075726984982125004188045731875505149929034910995087904867816067586741475767286506787507258783637263840249181956155143805490455201708377009333742174714737779385584492149932891834106478872807920920728583708115409795592048431233492092252235730834040925269265957746340207975783532664562197802036537301016520707684735830524385519396214095384882513990530541666322460243027377141034594046835587274007535284535667829127240658646698010348004457970534707163116647770663084498879563455215006256173086022108987782591981409378128132060394742075715980292898912024983751974611396366445412355999181873721779314133361379870293084672124634867497298447463891459884252457686052655527262616731463823013804910700248928672088848927664558446317351689967501284202220625454614297289999752577394471022790815035681848300051452649540852995140594264732134806180706533234792087508975698847221211586686698376817343426069594957605904618068099612710883926610085874181351802648565137409581688912153422413766715480857634901687302720434670353618709026856518862491775479211499270814413410532654229771162673813150419762863974390389555451831677196033549644125868818252377609048038077877114287415330347262657482871684940292128975879080807690657957442724987166899120459469941118044941776537812738325361970036430840078078605440228075888261404294391480741050474353846631218478428387452656055304629836259011492884961273134662874985612618627667527989367608462909370042988421411096479263077298761424683849052512053993080039065142184379093145362419902832824486679884652287373077924031843025699978569754087903307898495411402383260873005529390289629125681179707484255797033625347177302988366761047496434028979019934134892601124342821195720012928623502083264857444336139769814749186873205117878934481229429802369849864798006305546797109113185804636831600934346165438712010966244621183022360489616434360704580684667722613204735366081347800896610084622488447595904202455516627327309970207769953031415653967630115434146468189928155580662700614500918905192903709300096308120755727420962250305252218456617671863812201995480925449054853060170821703320723739907593936559268859556256806821452642137909791660837848089552368492379532910593655198026678843486319569272001233229994732144523360259319046543572662209445310426505900409411670100613151094653068101915176118498350191538856156738343249582716966937662200331750568684150335479355341289854737972837894568638609018595089097668254706722337337800954585715506133291506621927101280442251233390140565946037421518931901891716963640379499202125932029456848566655327384607842564083663081872404620340637727908957887086952196646477799050688561550634808620316041396362923919639939731650998442066657438755061530011723568556688004636008446029251333671880937196298908778088860120634186968450861664927542940801417849961916680352459978966172513497508572796342635425404306336804874016064745623357604734375561290306380446166456425935441229713456695694145423847649466989563253604038348417730830276323620699525493797467763412784740951239668746964747873952599066935548602086203252542865826274849062989269152284472935468560580804233159122088416543577547506571973732737658435745929008767928804201783734647028508999416851954267407880128693260977048929948043052425630883965330176675586385810413341025848121023413192187157827548038162096367924668305986020837447468292453497546518899278917348561208845437829620824573013603470479282594467547397308384160536989913302503076324662790954039180681909199574432502559963729638241968684581429969760931262684012361317250171451190303960840405591505225144522219876147115413626597048559261821793513716462980480409833474563116221613029279755029009486144373923764262467095521505809347022861704509944885723403298379673077820463543790058157309805701374186175189354793712406105917876660318862903178845761317346319585656129335211054455575547982325809733779250897169943846560846755618522494671064959615467521329670536412810650628047154208789213923464195463224041669066815299215805921343960320057574001542300631326380168402768640434311366185777692154712443569338617956176944499526446522777593346748344949854520095803986553069212841988286479239482790699599753858964522568840356148184592483947342990634684721894556179262078435236747578708447260483454804918984105138120919222463106151851831329304748526978398443166435214854283388690304659414729710269770790051490498366696228252907142124256603493852613046300916237286767792459866430823680988245506732294844397952065374602291682241731559573113091762770255230408235501203219233331876073126646644780294211593578806874543615478926757387776240480087284013667340305763774092689658999850119040245287008047447775822860773673545322412935112836991181096148340263233110783326452560520406875466578556965710575524296887312870057224837465796451579499224561405534585733899102251640569370674872812417642033931881193174948613642420845678400657720271656902498551995346899283604164386173271317662085666515390123361779289836969070164238266507937960033607358985496284196021606133157722393450919968925438561780979721598983475346060517134395577616636684746442085733451958190592727351982700963464804349586922505409765706364329887298811768735909849137032908725238221400455239045403670648670734512188288002299058892953367747253506576134770986550183040051200716379584373767123890676006944755840042100589779844142509886869130515241942755875361676985957407726690179959834294136257658177327083995439121387007303508433312056453451548346344696322942682898750680625840712179435453589563347677027718954708985560439710865512091130342259775855373597974957812424394374476552506536416273749477104709049903991269397258784084935471378802401069878379497453249421493918020007187337038850648152999354879780653826764715369104245231823493055147663365433075959357711732467559052919140439640901572282923246334792870735044296765088926906200646859613917277971176689541906605239919618823706560406901228997089856947610022846429981173794366252321333513381271126710900158913651743653478483176299422881695213878577843758831909447636253337897205312345756209398257354280035706915836352206712981360038471405317369464945729603601084339815548710804944033203663344637802474014732089896727199258637678119641960736468370317736990842635386097707706494481904215001076418275951076419369908142464127455848148890923570695094022480967512865047106594435180143199707441121314303680021229691904784066678364366200122493958954039565494266128827515016245954724512005719763742014820589139862813275348840077231766622165330989010544958445341233362198214974392832231914943698193848693423409714799913157566342953716169648762026343983624642018942200239935565090779334035704799386098149378365928557303365314230354811109992947049961741735843741640762829036871583865275263541819115668556418290323193749849042359350308877236279630491557988499753337231466741415177104711607710397120437685956080581812915337523602239139816994430649297131835249748345502529026576051181561787970706195950155302700358421609837508056059237988473674979241360546636374126960432794281833452554822341458026586064040013159110951451153452585016576085011535284242556231227670842938257196763277838308292473918279420619145159663981421841324422993068735756615526555949079447778048040463201776802792658250963645550206101993375401040622718932844193629649182080507690429923573647745622772742577696865894870902982740414971103479962074729691057131916985472716322569645193588726387342266726386012384228624962570981067858972835699149445522487011077407216555630262010846674750646853150459713031836728935726934763651562746039316398119559831710141773548304912488336144142241598719340188303138735333749797342262551323802504044910583374033168924418288045347620176667901327453097424608511509668052369086273306389250750495482707587539665914820905225194901276649688980650466438189557935923498392552840047445025163546793161239386383347035449817700730139787651057311324575153635511933613951045148133551927586185048419966494861112702444078308359745781868711511071226274476462844893807013569400825652137270240057120858403628644480465427386741628922429791422573611564123875858804512033989853995552726123146544467270647802990539630573660647703615780725283187781939389155538333768911430427410075969665081024902820872354414089204141757962335437676681051841922810374710259185386072564690023851674204371294893075844541553146546241155860987772967456823743070394666662785452435737229933363045530056137205154895017754083481169924548941568133413127383254144408051930723064014046358951685302758051812980801753966327502729432255257137644070913484843399465601839528517698341725987611262016978689545182622558349680405724391005005620720404063718565204445003175499555431950401415838963503220509387055736864463278291815473280800256757193673075504892498009154609315147293923349615094970988541057762758302690666933333790000257470854139261517288911888394704891955752507154509619223507758395842650543342953764460439908377525600651649776043636922754635949812394912075869830760796966171792261685245625247936943976631897271536323860707194186428412027464366963790325837151932111847632068714519158846740824822049416644446841737872140215652347688413140128247100251082225191386979535226561901224943731643252494085921938050938529823147903190305219649002640798707882682265238136492130559510327078135006299969782393266780527756942879270007994996641580600523358037610394603991266044289774109840686552528215562283471214930866187634705036933594982312537067463197200300207632999035769981477395455130582453081323538522647288599088795290276159538211647882124085987197890356195164158930199228913215768642693534391409019533189949187105554199688623086112070302476377026134088129200273599182741112093715427510474543546024447896830040251264855279947432192541846635297802086046123296868347807005339797503470796660727423517046841791097282905568824603923150848694473876679127277018462242802352344442697533852448045081392187309295006265678818604637850687595067645000118217799043551113770955929535544155097473883035433550680240024865218576458713318532060613130017508130966216229067815930306514824308265156769181269247112181585212536727391534742062815083374616961701534181287597361824549445207292371758512518730686971790811064018764159023438746834466683301817757623391853946723618430033234188021849159075255474989835445839108262555898778731743931888588720046831578344872279993657487746659057545352470724010602367792341701025025857964138660016003983742301448491969501895417785133503102110882540400036375443476034811306046780302925342514517219397703360906407285037173029695294629591273352483978105252652680000436793057210344348599025113148792218858193114679972583883463272026423079478159145894537791070537681109248077974675736444943333018610087336924861835443449492341648624387718171467716988623159791868722713878127887815830677373476132914631961040521258111584037170213641893092972983827265472109152048831336503602234458876440797945970230445480519337270939085516553818050058887773020314433755973165351372173080697942528088291121038860787300691891326548853987528889376224992398727763308095996556177297812663706899253246565059044858482733971984234443144817765945390207335740950807527890566704116931913972276474329810458462578691933584306351372687156834106005476779889344337192878672616699324627363638480953488544923183398591827684707706670118475437169417896321575670288616028104402205079637025928120858048097610118298920228160965223127287862550056304196293443145953571269524299493512888860058689926425903546619525716263316811294555742479792477573066184393822561052294082566380586491880716106631266497263445794319166448820142405432192286421472447357698579063271537300752202351268925977477859780990355584381084082987630132978606414035046822990559390570479539902432811301310190198705039906058220795929424968513476232239165467458405839243540888609400905519589759497344617867825985986781357759048021918846587491997330597100126777276232225108550477087166408015548904121504456081678803281689868443624837497365514587848566753591294703501902384307543687117517544884667204476284297766373230025452728327563328161766945240403479942178801608556723899373816315486707441247620589778303795737017312984341756380686350489481863745564418273874236379912193645014375250090692209450986656841936999528970130914999892877877152744518034244276748587364542788030222515777101908893828874725391600944731525894342127905813130453443748478067573786888968141401595494005965138134622200096008867399870097058139724626474169294422732869984511061592382603254963675257052648388156525207644278912560408427294598375161398599191836452390330278385584235723173916797889894419130565628045809616914149514265676720575439428901049071966734899136212129796231284369313619927528782419143553022062637204848248858927565827160928008856544473966208491931178209693303548796389016535135060591132896848118041445745709041108896554583821630059337395324879818866662535249347351836066180128763626671795629144654064764191373736195087935819741395137136242404706088044044897718974006517168678512215678948101762531638203229429371869651276369624736821800436788626017380408158144833230339857075185922891353894327703167972821660052566035385750187329352775974064418639667351362719622786537635182026111622853913696349531232118722010927245454463006698069011115493916989573017830429394978406196830017880180265307852098125268557052469464549068416215965978967782507064407254376791438990960171709137506234913376897057303453789848918849703657580095734399215335470953326199508025266513826467392320896975591387097534590532466980828652075486039181947791551490315156684761791845413542409145237587447197273971278898985136256738598324340244585266376012691206838510970547801689037294722320175928508029665381868649302148844783744280839674778971623816893313717444523820512770616855140472249585428204921511024590895838315294310339598514420893845735760019263111752776374953070942165235909664743203291665477428925364845545305286967444962936941777889570254096268567633828985337279251939611728183557020676557986013572792114372123725397671581536655553022047509653207467824737019316760896552330601350176558258158468911670547757509413671431797469234365755879158685036826620573092664017017260863654619260344562231927320356463876689247074299937695482331725170580539562034330375187876281255442040490365014970959282023175239524629144605852698671639009420295339420660847432157864803450893703003190691865724298956702979059052678063974217002844323304355264573722763345069628672205522498467224820540901058015366716348089688280180029735454739437703633260578111578528266572947263652015814700787249543001099221207958336913014617622724479096283491224006134498255455458766196147713191396310250231124469713329335334442979104788901935720577355800895674704230156981716520091959334768521655340739579163616021064722924686745129520721749761037640669654614924424680697396283940953299520212000103945900520087592154432622781867833541690176793250429100662030219763725585362283537982498539947290458395133965379291587605986531108511137797908157542372543657490405472173499744594585092192786261975506074978125089932605283707070307096294167584861369645303384942348485822285307357829424473948614166763020745984676622636367822203751972419786065663040567722860184482580402183649324172938790921202980527481276847782706991757671217439605015329976669994230426714108976720287290657440549187259782620453572310149399027339901676164651483577263528483045291727468710213872327082584417040362239347987956294466948532427845165025789798544476715791852850184695840341998685227695318492928543013321101086076350530204795987769442447422542989200362964635545625011342635037862784742835764363212721571614604048781259571687310933994765897606884510700404724909970857026326585439032794195045447209721485289003259702505333597505090287944574013950119863247338431011067654852422343812764761687758465866638985769411940741240417915161068466217673097144719595146879516736026866812183721638281707061175822848399436380593634572264863037389497013024357210881602950442175872747397509883446580931567709445902342696890054993229924865415516466821683406141837373986526078463374124203987038983549534015622279787705495161288080056574580967343788020087568032514254338826787813209703580005696034888193378187149555140096200134728908356164355399465765463585262759909414462559937794823124527670026525750035672965662379863295940635757869495605993381608879377665675460446234155405378487338022545707782786268780369940017001579353978622029139733978027573955515665478055792240280713818813958930036691491984362888651867822243844793895741791987009889099738172664460977362177877783620071978987721461591031990654262511544077624301190849827342371615851031409808382090443482928099516552943271126047771888848949109094928183679490010359560114790202840318952647297417347233341622277144714605379690980283405450184835388192849340775571651449053516186642775303419170019063941035327020924821109104420204554581928437316742633953275027736071226144099039577723395367065605807390514050171302622692766128371340832929977116199512671187800758216809335383859323548052347539218343929340143087267525647732881897828532688747191463831375005079804954482402343256769390539754592033369222112824016664733507736504728556344143536049615649206215206825600329535281080502470684322379904743463179028652569084133768959037918666672387787702259520365468205093084790306967043862169793413932045572092053002685497073928854050396171090081089372706672195452013108353089709966675045853177048192386946131211452877515673260199871948909700047950622077426765288503872753970713632207086086053809683907393884732885078867893331890646651905233359812924553141175154764210588145616658763743720360797366428378348451034976042437401821690361731435060108381320805987333056175831438790697497117102070043005497317493132860501650902239303949601318310200518792987841603629503528165762318158322656143338994432181011618632023070574024219866485018599945913660247779117459460726044830257639657320168096038067126707010172812965438909271814959337325798864776531662755867401447669201564229857517641773996889338206880730467911011456666222045635817589588006730714213042564722755894819040130448882040436256720659550254130588162708681480113276285223417017853940738433392606992661873696031505349125905025522962251450386115950253879782204486208784231764701560502695573707444733003803558428372659308786906445669753043768817149189094648734847898130607035807684674060358883392672198641195870747163775206486626263875980693791151333996151878976375275348850124963900503470962510149957707364981648647697968910736769923708166928560911568567030345916429182237763382476641507206441780897726684810885742222827544774974089695917881466076072040943030985865772099280216030552574907605547857646056314809997825705012625767680374728633120194438933972685480114122770254903565300455036576120766804751159765822046741783715444422140640137251790196476497565551768666861800662143474551509137221484431513764737351427520571682206208810449530209840510998950733852786377676499819133960724476009905597357816455070234088138898938456532829256389836627452908457855397323659434337548090626238658878515386080851777185052399765235197995528168647928428726797087380071715098985456666487856491070260531173771787395306628835799728057911811368648180338597352878208569260296276053196810191843146866958246064912898681540795741313909377281240543775601285810499592814170712714464274896954952399260252962704733230911103818823594567797603498829771028077603613655009814550923036030051432951363263505017875788670493687898645472987234002068096695772404254661776709631179953294724842765313536348876097173878344954258493870470479911289283547252164252254215339647203386449552290718114455199090707508442462241987977734057217788270084206101586307231729310907611107495446933316333581078349686003967818298017669220765648391235864157745112487936238781362633927162909661145856588379937172308126648052542709226902865684795896381647375362684977239879514896081456681039030245101144502950699588860265094418607342467353813190910371801769309463323192676511146780097252272789433432750161840795900024502547828425227414009662119351395728465198980035467756595691869203131366092670333435125828199420351271389913787410461632500536833411833973680996102040285792631582795171280875693231656896916566003854428744079955329648736118602931612159816089202101511996113508688465105409386362912782118375046244612547509112115624353131836210367938255164678995400581892919782478443862991901991303596870001377051081038815400103237661064602575411193611675326678488123758726842065470136154771770721350905474177850990355197261480315999372341056013409925660285715630416886709452527133886456357508847704778602868605493687963992637808586063353352634404453516447548860177501376035007527619015876440370362822072412223160300280178367673141039509012973146951410284321161911522581224436879340670973757867598282845387635848127713069712798351997355970873482655409333213291031879567044259864354214283106608453058419647022969447313247168342020799026169711342510177917994594991459107982400492382675983441764564486063930940878337572391064433747218859819303361972247770874035835429877211150254015434083966781064465288539205993573760869950494560340389026810244771399257985059664000793685849032321502247298510716626753338294925802222134226676149231592764189843645191286943277729259054935233816744544712263220506156077691394673875621570819347737654933404202571045580868260531490962068755206108380515236024757912659949439750369592175487887908648550226531723323384043935850281856324056292782812496016442310533129264785580736861578650562870122205226995464849982392473489949953539807314913376482824540872317561233573169925838053084581241342196490568755675114675793939563451147178012768375866373575368522856413775261664170617579376295288386120087446746689776614343153987932939694896986313550577654170307831105608861269552271796278691511549061325642418397830001217988081991890238959210121597543386456009193036948657383269358676105764067814145758544058480939441849707300736513589378494803745598200551713268573964566675831791072820777605699730165084854889448052382274222555671083774504178696093103346611513450910374769299572205727213845420075694663178815831975918873940757714082940748883279942344763713522380989110063740919837917093792845181334721311419799195463633234093787003147096295700159382761294082786242464444636041156757117652927431433009669580479226653082100724554349724966777395422312188746812347094485792127688934891784067236996841695415021064003358868566369088473371584348190249151767478317061338444253714125089444283002776938574942711118547262530965733108508807174732174121295056365204567119398455869992247624625001132743014659972617631565372439384649727322720665537119005624666543160795469835091393896322840133818940730131976233521669996835596782201294663067764045931887417208647255293078726622816655340757301345418638709149472450414190625068072097683620589524968862803557761902338820604813983148651870057473405559663584527846734030011825343780628592729397635662297860083617279181518686232556542823365886059353294784931683124553782528953135908282395038626321730116310047562090272076196010330029007419056183135028198870920461529666769331063453902254021651629372447087582335305589667639951335222023132014992918399677068268067177267227710769295741377940603936746121295592393401322426171520173834754966877534433769965174106680959054780260726929928407051490586018288785876447467408183303715456700543078809459391868247788730412644272319372209816342327898838215040701829268270148442305153783662736840567561987281236928242113581740269561085625108569821081028613306603065307190192235157921191260713800602662611174119228293629663279726344522071121695178293202618965700453446658827137724679923591857205216966854988928080983900963833772442830724270271379156319281917143775022341982753793399760009453953097711280397509623284516170472103331055198869719409794768658874879780094995100635114411265771624297840187352408804430392850462986438509568358851997668139116547334878067924443954373887776672934956610695593232626753262762377300092905146021092545954835148991210008348839601843826602397254608624746657383067592868992342817960102998550761739590120491252891793052830127771735287795602218704811440840263894883602642877678764036206903211568384337839651980855049972611430182308481727474067743881715289710876122907344828644489211477375012137272436126578915329830505217899887137943878391550792466668088739283534067322039699037237371492175291603649381053265415482745209832659161429980568953127118921583760687327252078112208595979697105584597533934552350490033248526525521279279984589624361533604704628577656796898131474690398501875981857365840017788860167657230548323285946167419331795248659248234340234569089141133177144035448568072857589659837245251494819700404787876037645977771116901226185988290296246676371668381870029162632933168323661588343199301081282621579284719499605868594192955868630765861293040903402163875619206187587014828968729394520736373620651658056117137737442436077493439180510633996792933598548914167761466557795972693144859570307351716882092616481287529475334332970078968785906385668647390175056932159010208319133203910122590122016605142966729254157825364927736212545830402469966397291946834351385907201645155431631775486114836350781307386469492600261982834988304497567582106580347220180193099449721571874911272622191651643075979322621937392424225898962936257179311552055337104082914263664304125831584407731167205208441312714239466985611301393719295795251652975012559494497593061994014472777310940300461019471317728769137474398779076985939505442655675935917077848634086240714144145478311980644368500015833270658274686489743156373137541862552650554149860132805235799643218224548098767547705707557927900639078120976445515386764994067991798838501029015069115232481663451297845647640069849316902388563979651619243681566340473248759590343514752467422835515903098886326159053634913259616494505766110603055335209525602436914463731238872446176674011513852864454608856007196195694886188570893976973140601816405533171255731701216377831427963279558939589152145681834599847884494003755728067708820548492662097596519602881909689242733532705309436116151827692335798913324773018538970260221550979658420304166356633268056388313168740095279571171623236252527923242526927740464080634454263191385842280459074880011613852992007016587350321607611312656885710853562357655215631506108915287969499210354638878627824652914141407948385345733879669559753729936773176956944201185084395292399492336156242876248819759076117294005090712439348813793528853070203230189224711720018805108602154304329784257060661099941422949412336250096556544609612697018659197976120731866539114859929037412042324108678122594367888694046468171381029888405594748093294667403390239423795276649253480131193818858452753228952097478486607263206322276306158343182110651063357084500854884135759486958357222796104483670358474666884728154710608927081963860070463285454532234296229964538818547631416216437237824370093547774315605258783352807151259025728715926032171960714819886079653805380615761438338788527763435626075873140309091171508972021303962311418445691707765217950742483604970197719953678169647186709475294121104584037889824339850174522668410909186269145893811103653517618881356291497920648082631833931544068992655414673554319130964184080367528692169420813449838464713676397686284268969524020539954985455732921660601862503441254300001013288643151799945161897255824965277004457785076519315720136214799512579311258515403799153677422369624555279289637006857381235091649766114265832541215106280305267286760063220151075882614858107812773040209967523158658679405934575129002115270132672387493862017416145242597546151021538491322343274087103757301849095856285935336332168416253464470322386604691011600511350106587891613862541288978379994252954224860759991848660838850542465748161529450859625270202144739571979528334727966049455522753951526278673651991470245635549847033057783849128058474607501139626542745427956095268532906360573782750025341027675170511495853849907736798666511291017207357890355952335605067233429229589897396852352323591242601233437523710746168997324910696947754501442909298917577320235316794767794165298778429331909430050645136752461486939027784590019112261022436783427791734754735622775245102070236328723498574592764353307248184435524679494635917643561307192283400623626526019544514071698304437932294051823648546124455507304065447569677322490335345804530949408177032812052027067164107862026958654338219683276905625117730569412532885956135695109195172014931338859751240038838644349629817153588499171855912648981928340213283685962191126677704903166684834853961746941572687942980206129449484818988618967642888084698997734760666313186859414845479254155232899423758927719881812389172972453865374587959963467908949413753167247876179751878660756669918217159951223928690165027720941407891086634468513825496164221579564745599167932618844347801351905404428140704010378339680025241276471769644559998977808312475660145461484831283406689286816322994559910631532454919145320042609370179892692269602113525235261304966198535706503996263199808925300873153514515784979754524713839871969225872262817168050332494885568145482732065110992712990731109933487948154158246886019566463799108650954752382458949745498932701632000053421050387138976660798936264703449713782822735377822702695981138742742163489291926834600023878971647454175833191210679200680889472119676772221519282319666850469155427913894642082743244601466532146595800381270040569305140109104331862499568084246896099131789278835758691020688189946729563398666156280995749628454276147894649723617128177449031865586043082193051779667645243786904800580510201398340422601096689841673535876120487609683271894366629670530179664929671728533457027036929600465266770655654782984520636437237770112691915858468509188177156968209555719539435928959031907081461628677098978560041399227231144787556354751029800600872912233775718771970772382108035927674636718811673685219726740986878470751868964097641754550328221467104779946561394075321832991114324562769168982686362568396319076976347437984954333163445329097528546265968540125753955832586166790964836880452297477979243007391656495912349926171494140651967998791860218998389622234553637123222807931874510054859913802823965333096990027839955142479827040311182118514374617769105216986746381489293064680291812335368491786094954906332370215710262704253954743029215669569762482638921084465009437128782596745660578839148270015479234586673461167257805510743507272896110110938925756635353277792355058074232308106306197238743996355796593794306780261042029875535388921968557496384437059475086361286976147620598001956291998871977441271957875187952341870454334239111317882869622709080673173459069695707362140591441811241898744308587506874727619913880538220791072464709155675724187534498606623591069843835606626508341045006244418459200589954956386488601247515671131738384303831354554817835175797778609563575583694042340933708023353198648967366918014835236124406809971248763885971698646339760802854235008152777094353913149050098847630046861298299708543233893508168639918142223401135104846587516038793143981093273398346568199757306851801609945832262420972262840319032526215063905918389816442313879528137079554328759108844642276145195990444602979793021715324182804130925706416213959496054953402405415640865315763424772507455114880397812205539349716442860769410019577092964598487202717645656435218619058335617961439534617111416569672249903964613160366359869537620417691680698539394585237887054338527642977299890020732630233544182669229972503588185914979914817868042659685818855618638517187798547929752780306894830668414414104012495129886296549493644186094903684026756186407384289566482080638473468121470524265114179259853961255283477101286994620856322287067217688543299512336677960171079887657482971405389924862160401308017477495494110006345743701392285677713989548622290646268582973520198092231742854235609407224264361732888669008601904835207870677676021159033341266589015159419296598832061700572761056613776532703178703742990232602515246719563214982449257118285288508365662515781390142303518996186486259950599117029550009845904427089437779678181979934094220251258502450607973287641717756516182513306025638103191375239610374301377847603217562594370722215295627796309842173085899583139059627749149141114047007197644160403442662389075151105730655844392641499017621958932875870881784814539575113675752827705719449206525010101459973655109536169361882846197377315018610781799059901135284986944818880921698507489466559118547888982516648037127450105090200078757890181219351479897499209636815776341260282368023109989487551227793081734186382351395590238173506593069966485298489286822507201022094318469243685828624630425304706030457494730730821468187219780320181184938519413013286935258953344906287675842886474087912329961789441428266271335210756850369781498416603550245000947110045995801635211944775878002928021832296529459941319944762105300755478957293496016048897994987830167115590806153945919316355224090701510736123662446002927742885245828367694132603967535096036314160930596068841961851767913837543017895858133761933784547408533789411250049490647216813017777393779974622463411452869419389010855306961923836319802021820938221558988600275863694801902207233642437119297529381727966304049579628544270160578910099651491455799891865566378347993418024202133727229594891302171229761365893287033509344548246439587822940836282700853110181497236369061244949332529248047514056427825765607844085479658543159020548128501124098519612747225896704340156257696052660716227584163616210482130447524594928822314564976816038544781392131808273829818915755808496087958879695219378930977172906823151902258146030970291668026583344459570381983585651852276509401310228293981821879341871787284363341315561032535913715102359008814051537394855621602559109065248827889397893986578713606286524173964128692285374261256290023054030153050343166010229555521377345315359262265141970219098873475175084892382163032094118725684426055485334211558587348955756558121272446805151009454983787078002071255571641808474332900573889676734416050513460217611559662932805814146762415607594848184858406960729973017324512028355985308207940482437364257737629181749305105072200100921058255431394270779492826760472871518306142474320508533109062024706732340026170607424662473097373207674949876230515560656873693686258393082101791143646828003498081665551209269253664174026397267745224293451309015645110349797075807523034193710441825114407689252119572286629905943087031960113609313939386117317988426795615762380185874951923312520259899462735753042004072124661537746623064573599749631201838182305502922468064774033825890640855588305516948352878149141229496313071553268878184437059787029052641117710579858541788531725215014223848005754257854027627965890070879151295921193917189208604349623612206885276435267289418871260267945381164204093522968289867763539972333079089037068611344318469643130931997701058234396384571035918435983440437083772789134452662494595830477224130342147288949315400365943369838279223182976617788989289315194639058075776130995782069475540311929789893945007598802864367786012010043058380781502203960169737974339978397197723401633476542799741647441511985094285340850048313627048252865470957333453856645562892551699293389295712318516386181736764321084419387832753540049021109868789228874025020622413281863229379241596742438946274615998937031689469884200700616197335410138874862797241100706575875303578663154817282341626704360472127744350311716653072956136343999049609869746857230758227641100222314747484135435968753505417265981833266100173602621051162662393819061078458664631234883264166437243190355125808499775480538782579288819762808512198803140514911955464268553104216941591678330201366612559168376474687710973486172212109016840793069885365819258761653102933280295455399341173856306214046326290903434710482501248823388732902097085496914521821080534845434823610238586546613272060825864650115326220140826332891969534903884829690306269458225475306511351065944456595474394152031957822132494060721611509793706067784387791789826303364767860569320996067766796220864826366602164008626694254909219599897352757374738139161403545359637867911697231602415867701220257062288561462749689494764129128887023182367513931138112821981286157938748626885217453600831681493178595782973551838562106959378025608315019159727150415639556438274783603565259193599188594802205719837852849700152640547318630702665071286997918412062589689378998795179235990558619698004944685787203637679205445720806504596923569255304867803864391463892839723794458359393304730074131854239077015544405946762187251733191592225123165950609577966323431371039719844091502334592259341240330913214837856210777122735157571065978639596844850645438994031634547730492704018977099692745126230824292439482305400680003415793527840026670696846994917679043968126786694818083402732253215305575174757019850891409175372647690635250701265489038166600854940007001400616885174458222930700436070462354100630162518709846234887756708712456915908987323121264600554631712697327185805488668300605383745550181285440164710325350846936406465320516244936177950212720213596212959280609140334950486549245116218871500639812229965329227982955639345841995625498365654978038195903531055189465556282624987796313627492110111461240986374311077791114089629159699264054829553215033013004745190218217745569984921463711152186185567375120545555265234077729632836506106454304300468176398395325853019707057534282723651020979149611106974302435155369468977548101070655540968256844646765838532224554194505951389059733217646390122383212615499274682528851850584802964348593187820597842356807106329168699955551243823469571255072861528477257065854342429828719193329039299489426570220991725175093647944576839753101500345494784213854623446249146253628011772468615357825846089806027337235885251101099975821930995541915120970554690463439939151407703661712608038000177278897470788160143458331542974380071712672532354187769178379063676334074991029402212116955850807140167607590622036077221313418269280283750010923827437887723378452967778613442843110134940198950991046464294269151772366628706111335064676978000514588391236208430503449442598191195830557587203121490921985668878629393583059696640300352892041860236681848513097408971502311226990433518141934963659720428705098006362639109417480081522087136805265015465395037143968462233832867322376472782533089045590557724841359889198874811287585530138564163474542683946316901342292356985359519624913802011498652475860346933795256816480723387654925390237342020517481103772906250606695864286043594518280781398953713166287723913713242989000068655505741577892186401141269009669496777850021593349100845271925209158415610467486894743895123422017448557036421518619670752342416963496723899306213472090194745871960005949096324705237483197822837234871535739190554731766196521342818226797423431706205015257900982067180195701692047684757831359264584278127887813898432768729804501634985184242531508000028946999388742153412595348185164822420337051505552487176980245138672188493854916697123189586589962883286750194627705316010271258180824313757048410605613345939623802999672182397320804275178671239294518450654503294791595592226191872631760148001869684893010571479906524312904031545088411881842627860144788168095204282470781886654496460122554351275035545588204026587541510223776822593365975792725814613760955115159392104436480483735770545033519247098048821388235724252316590523359422775728737872792001459115713970616393883783191098523109869960217724308670154607346767366724143906900714405232078758231355506857812669009252157819448684236916980843908225473008757347279677941114660066056183319330321310931412085518643452828252337809540213340356105959728961204551271231816878082697506430665910516097195675814906876217837049459685310848723365615251591575960960302246923423477968176578240268851910134469679214157974946003179436092288349514844273976779117894052105279839949643300823621229016341480184954788302289307091115044725211359680171632280215305637583235551731264989658697754376275002890903268242823145989378910165596189868991821041629132857527519463086931787686077111924647634071386232998084423978725541541094679985508199714310423398036994193381489960546090196247847377164896460023381377273449091828381037733750819697383520645437244882700715335967111001326577162943104907774191648771996509975323468075176458994737696136371363081253791698407549143942392985158644927791001407408682859057855823365548318810464862498780274013172542741848495689594110740833433830770833330654998023153471932792383377200867556156767287148914561358022653020236727744634830224097808774216297996338995318263085657635651287621507204404212377451020473172197353052750386964925851013109964537074473624050701039798705759037077892484422533740909251227964384338716156380052473139904455395883717841786567358918785530427987926572356737766654505429714421935408648644045153838311502478116536928604060194350520889206756863335499807055929658456448298126567771534459155202684871538632280364412310048364777397203782357480157328849810192175968402834876029155522564844360260474231125605932163149488973238650774787647122584464729215139403103771285552162763928297967200796376463709704226312874910423627615285022490966681078756489570221425503958732168031008429992344769087569116120204167365136094987405287842679838438492193085914190820479042238560274092775810728149697594053195400388494902453606415169660378369255956765572945248347137216900713046416293541530573676684090935626663204334239784051725670613729032730881921907379295361649787484272954426190967222640827678938909317786750477859557185361860008523904389502597993116183285028761334004271380599459714310134436477688749469744294702707731058554978186692903725467351321572083085424172060791556022658997314781632736784009565062784224511154659317640460522929572895424629726717763815258559952810148537490723013997272850808341668471510587169036560494397387472453781299480979453106851286201045747347395411129199326499180134046839213381464181820738293029914567335776492491800357804965261959917070648319820540840657878940014698593122206240397747595800636625711956708460256683704776399469422388430721109841996908476654160392363914516932891035916892003132205880111833364424619111491352560922308925980449162357943394965781974870887503882153486836292308763915100167162543837583841308543062856148326841990260240700813876164298952208360019667059029164813180762704972689109172678813528984728848931109573420574077004825354781972553873303918490793051125125203101846279643150042185653479426455501228709946044690493276133483097963356176299277467554892684956870696208814848712920237600746043552106003156765542062226715316617029995820784626278651962490513955248344139204359371644803375671652001335135572280614296641786643632190512962335353882072106307874386681693528518228034630028381150036608256899706569671739374879024808780170242772192219263967828335575597536206415576603944364857095285532486016586173326123183893179560173242582302166940712064177142654611611178202831771063540103042712111011470495468544627513266881929578456668030465239403285412119187497876868703806227205674627356678226578517790534532766851491901640375416706366091080416304424239348594178824446622613995790865834611521673391144661274221595457753287511375050726108957374801841848082766320241267417455655605288933539491566583761127128853593830773214140545695599512385620414397603678786808865035998432166435399386769860890475451067264601438624106372818802419947660043013650818144934735140237709010660503209861479002750965386899387584899940373374027872964182022675539989455772542932785573948835491609367472584515924116227954346438576918785972936474020676934719501532915536181915628663775862630518654493574756628240284593693939379143384572584266726010209558436738391072758912083739798423874929510242725048326861761177012912130442668674260440372628154089940591620834961730803595810737910912002703742693817415324013970162198420288517345415694768996010725162925675570720345250507467061487493095141333732911433751991783062245938440599811125459013093812052714133270921043944493196152476192558590382242914677421377631567424326374978535675243795758816183078301052330700743384094440339903096118006493974371233956555582571161591220722295398230855031047985606409649562212034458323177786445152230020778792478643887389417244645094698764273758400476389130014430820798257973977164528586659646046554690345415127204668448374100038366140868291442383729503038269753208459841668854695314935575070904761748720481570431450429866100166037409055927730674806265323170098971326045544474190002833289757916435596166639804984863497966193999429223569249283536992811806923960691761701521021924367318956561250795978965917710367244575476383706979861519116926516954443362622612729647046002300128944001466271917492282232207830547097886384041234901977825531998094382640127874900030542331211625345134510887931872522100252658642005659445535376964286077506529696436603750835411643222209026219952276245201449398490188333763055765344158170020840005988342160472842396027567464681487880167549455595508741185985192353353774668770723616878490546050012574188921553326439056897662406002501367989867978922569228972895374098160751622804853296973791884772219860663069884895886749972659057476849346340334387393049770140286148876301856040935380847854108529469983892212464576503119793745372619624435735171697010713759059884789819324468022395934755397648988740566288895096793526828575617610416505692890995179908622712999802887013370904714625379358679834542793312970303705964121838515013239182077623473626021775907163219927406675681532296206431317649367306787961952850643475618774026249775227798479531103287407554105778134563995987476895506113723773688455462969351239264022370149593050237298993249129421478182336751258630351180493689957939554528906456759760523699527423636663047434396113936083667435858451009359314707131805816144431700085972483299979089691294923831088886410543778227012274696577304612322799503406028865385295821380535460288136964030899630909208523763130324677769218779943834007642794790062343492716309498123818390588698269866290911446442770779019427404141940275634523452130345703677548154916302223084606785683639335876042053320430445555658068078508114973322337048831265894359878003266457660038585602321188893984268836447130170167491981766026551876455324942540911242682448191652144887259723478265149394517123886242219348214642975465152477113736554218975721619587402021023344414686610310137832714883999399566319532305135533822467468675396639336600059299000024519642567606531699426998326986040345354127532686787653852441690855802210076108827256442662161179776139160655422351607763627181800388772319798959914311705145522536072031803587618289180183111922933896496391064004324896244414516702082340261439135526396919055095197801851625803619735975865266799204037383605247387281324497977293009458011479712303690391811995496370028247766017598950456255594090645855132783447661074035131356858629426049642474569270130256941127834586346353759264750783567197557904045487982677886517300410528048999649826393877388408370082690264408107562875619358521024235558392209527882614406301220285413875299504834844984817825138240695432114227777814017723781781611795423879001660793072994827921592637781115715650155602925643597806204621686310884435895263205198657542121332712253423319589848029604085313180300562460172273036503914058658352330967950879402334768341165037934360707426659501237712715558441832405423963305378981187582684647190955268211626681102184402783514844049781110192737090838710845852549723038179964342579501084103558044371991048094625292097104442205259146318704464843230688608786626090816043629675469929882982525463279107785258965813106232289572467785494383354032121509462480472701927570361662624419062018167451940818332833997734640249192843866087682197940909907961421738657743472628097848895481866617015252617462825869037872984220276167852696270966512538781506089815650160321438079742208832720256740234413365346635583689015317056475594326241961958975913129223677388081838387812635719969306607078108852432884664378941694622637104939200219452849280916726053054038821904851918796884051696790732060890713518771362116823219282834298387134575066661466350099958468420985234329565722414081324421987492745693356107094057811053917810563501805158948182967570330975108506957759697524647890048818117615226797658048207871694620009205537298895173986158848985744271425792154508922696435209857673221217845207788790869409323159011444057500753176248157229617075165713033735091302370346728887268427217307745286021853502086258207945949775705587524361436703411613834549843534231580447841664821571697848812218632821212437756024265508049495479510443524609582955017539461423157410426729831206964722726994233534350082224845397688670733384341425843318616316199373507425400423956911162337886055067397807053055811090942765926877195938208952494664125021973793134726098184617408249479003433649221228949212000605241204181569951055367668419489617991604903415311417743418989049428693443771576885076952828177451117746675027922726841874296936114929433634002304529952128829329197164395946747842424902249934399876126531557226655943094540425918235601572711540494177632014221159080172853720461831183115684335845034893607474363262837072890368687766988654922899680655592117750446584159240788876008061543599226768135250661689542218027449458036565452776776842121856898051845001207742471711231489123019353206940853111555237092063994141702939437555335094536311431856853280245762556119528093242081306285170894438172910855379745061799938434409178584682964022620182032774000981558934621621164962011193491638532983603193877249932026146076354392884522285134666733706352079352671394376671593738170883702330380590884551916316318563534051617278706535491092368620073457561693486602879799644465512458417853787067035247946174441335703667029455382580685993960967216576661692297353101742314462275486122976265921982493110499383511225368141838350660650779744646486502462072621792887763288901035041330901740178001593297663991877038789113005881890597802787371127167795335312274723386779330505854958973720169056137858319250907103493169090745689531071762401250251508380874144642694555000845341641705514572026001552824067072897982327511107032929142429720894578075172511639009550533101308307745213395768471582354496991597131195959589208563808046122809286669277079395525489992416602297007752610306367050667646713183697843141193364846209686001317369432035237163898782820703736899231951963903948290052468739440052571109434259992992069001168691716285838700804144164099753724317086658757029972021228669372797709352109031042229445650518016597991903250347529182516674827875797546656279658322313544049871404932356085743008719538529905981150309752381881384745867008784790028047057530848436667675651742536073385219737664335032718850297359191915148761762651096932016471399717482345006939166361178164379481226279013523583863550415513279569451452830632252573552408440566150290971602721615819105736814389570728400565091570814983258871918055831382247474286619255542913606483790848259758525734555211756980557047269370133318406440347438506491245627185474844768540091337477859751366061433233664378224909866127641971570863778938692218051541668642642181882743284596966938020374508663571813923663443972724893642749307468617752701324869932648236991898230409262891896314475269805450169035256384325539512358655165053555707914967480623393567802355124385646422262619155289020662547237771183088683776930231611628650415450634699057211799315336041900322765771017998760340543378499198643993803275708200672460321076306093697920089920265810210258287434997412233265016406766631125047201751856559948147768866108298149442211575482405994685908441656974012217849085672652665936005167644841397877555005092680878214335325374879136266054602186240907930443079357071570882115335811921463128209994134167639338096877634655546498420528991297052980692435278353736755148390116077032766154885369665530013743059069848659473536395662663623485328073495569360683732661837512874143188267640404994845626747506160299425887644962266903688256798052671847872247598619898081200804145050193886868115999600902174639318544894662607900014388552005065390715105074685282760307071105605422554150504616263287566212701329938392481099442406434515568152694964087240884791297965739595059939478359542032564178151033859784307719630307312102978889990712184252473310524164033719488146379987778889274919499765789044077336814614975224551912473346777518167538514239230965926805811936238695977667628904173979547424782270703465147323617340729559324526637355697782472601362626672708068458855662928306554937312509090164610288917326757240066331580476644020541996403208687001981201431820785551518315882945068975634202068063893126324826219660366112662953314512375938732115356976141339850826244169037858077612104497408606549791476774296974315409927205092641351505995746266339667848073157057337138377578839673645533635158516474819796810730364319578107890595235678492766776509903708187376502473069801855470209074022485179760750480737190099780738785115430206041856925225760367411910809753163382919124190278801746952026075938762285707324318653449279382519908965157231957781374225537939193552641245703880713242731388072368892960930965045079330445774294306122454801500175240195672131778997168308776956895929470464069648330753784797777877104315938036226114321233781646235543402397306964454636237041063712428823558787745142561493030174741825048954743611652740334548834846952699514033692513273545024531233427034028755685704186721172283976133931345351361292025880617831648941728980007388056105485525813260164669048511093031413856039269627322598748250936605295912339977633056261036124364524602523775290921437540328767605914773811280931179019970599933103636330516959459304141168110581457019621082743192379333766058148984577182452278858277630918168141906249384540233003990428724132684996555899186358515808876853171981719616332162194021900502256205482517412821951774886322074498698429231307016355046144305672031203134941527765161832664674075471643069655151336030713708351960956128076593451724070916147223188102058441889338858252800055209801193859445851111991420928154635534446434580856187663053928588343077513485118249860951420600829022430872407399393662098165241639763351400100120312994082229929167690224926802656945602433531498373205779229090909724870423890589515824121064055506655461672229686006799171524503683340114608754899393552228822383157814269586538019013414798272936516566832839802265727632849295238650643878063511808338183136828916864586598403502413451398954133606016025805276915971607484163377078216949292842574343357509490964625355826211183482953393457929686574589386300431534676319497843456776338630390976191086616825447607055137358878335212495647354079512736919778057700092782898789736176666746078712450146758546193496715468366403009406676087610656011606747000304288878797676857057055077771825102049515028520051032123602852868604011860465922142446785047465647468470121816215873408494261441591306230117833123457917524665040196604123734961685074330189720512780658395582505184122269995386331918083547384525696262764141546637274260355611687266013740115212049087579427855071135589844426400000031430904582964582964286396850793868060137240556454269506711793071828013398755981648302323603248279747525957756390482849008417547492698258771691977174119990157404725025570400411068479497645803672390693361650509839561842193502861422865747739120324651362836824944148037103569249318684645705012072656430170536806060971018793267497839431679094204307750116540490055742510135429597473320183424735688830849327320372713975589504479739125053699164967028890939804614107803814537316002606304004336275154108361186561417670361706005327856383904794030649776077442577726250447146169691233466030232937170809641041606112801322264172991658986600629635388049456995744646559934776139500532102252689187554938473218294079355565357615241672237177172251181932624323069657028662015403522088882077408165427167415016430571984507138512625815676017468170822216054354270879243811007848682840143309940280377108419965749246921099003272536037456921727275938557104807849707248697308330468285492958299626828717513058362985572505978472225651153362345335118448689336611704068364053121031141189325475393897507598648014735172249068734681820657734045985817420169814567852014052795871423326334952496716877353441210498399998252292259617633267272763916651011483254981637458994581955550238856451689161495258493732340530456583735073259103119382552149382449979983217536380623884067759873730558930637481591357322946995336274011879057606304686572769054245747566765754562517915929537176702312929117443745570433120994936722983652005166675300393904320998560506394385192383783671188017275892780741807939034375800074111235978363594688178016308207677538024741584814085083699073560564395817683597080257912368052102833266595763564347447649637556835192563877108773990654093428026491673373436852592820769661203235653315409192050816870424648352246677822860366742440349265304698471804434386054012401813193673003944154124949275059630855296639924751991378930839469603311477312688196779566258731852598480948709724424521996873645117119070450964814408698104631694090263287007778491915624289178408510780833326860909062803624628819033564561407654063753123147513673148048404845191114216296348057126864727519395782530686162818671760648260922568093870822429711569353028636358237758741336494692511300237649659743146129448098308087934217485052530168114079218240869911777228521062533392344508146879817180865149547748481406434839620618660508837351656574765235425797818584662195546348699854199427300336151358537541634027565526057635098353207511408409975741644540233369000213243455308127882906170319500126865400698539130144648428319748175495689824817054536816871874422525672597325499321156865314658930377174290525295105969720194567808266004811660480912047342494725249400944942825966066241705864761042309260559315141427973244200341743652892728698096861586566183093633502681919915304464161348618005692169688426913175579241714419174529485084360139162044238777372973636410651516586583913903284307069482472217991317417820678658371613175185884312102130286516426166897632258875417467323827500047416305882112463211711431198352204348917154419741694731698381527726001946903684984944040794828558322037990557710225027047247778489727593814093448446858345216408789477755693770719278470858574832371335327016096476777407488620173431763738963201138951066520750755098202369388662376670646288775825441643877694912488430465341669877130135504274212431761034134971114302549116823607841660410384494364347993022509679557739386128813957980391352671841803310055256970995515064727615237987349358998858856944621349145622831216646509525219020345036966352850440070755423364140141724455753918900905883527595304743739681445628235483033056834927991381592885131158607134727971394069723479492902735226724466448615622883336746539905778153351594077759807384206135317376662164416372096541296368745945725042131539442085270876903112093209744989859746348825355670494549273801554240063495464962550667274780526429792356576633735268332938950940379485957163497920507810809017601473293086227584850084071127716239510922071738473095104225288835218052049328542178730096208190064481607722985021975036088435412159060453998497855783882598144728041654668672467109149698494392036559019229883606752537120917951154447531301442931027985969472648880521152035212136821880492050879563057165211338330877909562538912406671937845732591362448847326861052642675244834800275312068401339192799745581472912671205702089872619193236541432182211958219608021529194199883685438612761403006820505090812755177521676523586138939417275262955626260158340767589627474539273865179388593378973609466534066695410144688674326404542347698472285577569766557381603500129950936247010547007931613703025862284276718188895799595894782205565744771743103624793611463848828950228571751621919548280548151533039877661059742925256545844754223121999806436896813648148519845387862406764801876481960345246464113612816673346078635206286315497941640973770564491593170901332919506230828725375650250359067752680551705544307274514534242275673543347956523863004923374986560797831483369730143775935610919200506709824572286404982217872271253260077865334890949497412444579085679083036232487895698589366106142785198729614803408614932066284505389387485244762354972298411759016225120617684834690264176112291521778705390442148071906818798312908466008580000974559969653881278958735443500877130636366417699602813685762221248147178909635170028654105521736003906201093447962282115827203292145293114296050599548579514398615841022123809165111012499715190683178634332687615363263807260176269098012101010806874957011442172984115083245741519701847579904206666142695833082765391345565965942731435228566931824350384214651744480511382943255508425465740384467240444580839038559239718927911230568325817874782653472059524896543597460946089754165081466671645534922346358737497832789036905859744008396709214981702129678744161336241106260028720000850492719713292019082301812032576091421927054057383900732501937079977934418858186790237758449248216261773510766145155941977096960104784529145506915284668636056695957872796861059182156750989200279297654329147740360890242639017762854732059997921338444963700580177641532426600702388430556908518610728145053495180594865338458911683978246159581031550881974910162540957239403385363460093014152053195153874239458787209986865386888104286170375639112421659511270610990301855181953717502734558410919962334736382940374561481019042764150356747209415833764292180547793459499236552191777978932601700780661082323569151274603969969599852407307822473938237625988441633979782659268620079671295018033650287876064285534364168618663842374493450073412044531365649338595121382427676041023973955424506007974516054830366833331423491702573040226389581822544831870354597939120523327677961334314066318392958464716893958905396984547010993014419651064682897018166582871970790087470669748388621367819558543972491311506100675252655049335375582755857646426021966435736965584667018011384932670143081356903110008599281650075347232226871130905728605958305919809308778038330348016301233978562206682713442657657160009307913650501706325133506449928539097704441216479918787842863658075518837330965795103508521542858378237895188566372171704874036215409708265038297045471130505424175672173248176981002686331377869245404192538278433344638177285353906844104525928170069196185071879140066730275236204937503140500404739952115580670335693503580103106354213502613200522330958866207491069740280782370799679618305722477358397047301781559041611019060131455958636378596939734063510553783197520916304558156270398514679036922734948162413858324516587535597231822084431409610693079272706684849602602913686574630135060959789014045193997042488078830600808704457542708710554518095114239244575165176507228200157130469377773972916342908709933707844231020500222496571626890986010947070512902130890874874950669020515905174630817100365193756651112430676035031193491649105421320670033666219614573483253656500729692417883149037832834435889082166568467745931404604738452532830745141485388908618422296159736447700292778722446290916246465038381938272445300360529028926420015934388679645281587440349610759063245369668840075106116229460629978682457677326331237585325829547397373350637908286688820672079065510692980270062453443573917535487823938950341710418529942165530167998949623361180470551793847700751555036261323265657624526889287484614038091667180908577601360638379343783531502874444899741893757721823055136205589267042376710170127064029952081200883703054257631516223891302197117085498493520553748937781406681701752764157910923781839457378640150777139375650936281874215804681268601192931064410727839430355602641690047056608363740082768345599308415071597010127928926547581664138277998045583832919822226430997838267737119061747906905506838692048791194277050349268353775211243776107404366925243182877719985683617557953252110721272484520161057952066193227412775111438064064130235686915724719768867936468573387045352605950421362852380050001029347100511927500642131879974171366038562807695075549134431023139764495573182097107507293172981697679469398532717648741608403578829455266020495562705305112653126124750548612875334801440848186449376939241434921566106414893255378876868843862158007242057613066379075948928883338074147375052069815483094119010660053082187765072521591673151887940539770975738721284573519129520654134031143732156474205122371115352783322293421279012267377781132480285352431324328292897604813055197878815108265357183725310267774505904402929492357961820586850886873648592415579419253488740432147062279610654647990576414143093572612787249783985709057309347667836907889129235668691490826274077930013934936943563365266709080102345083247635500584024103930876431863545339566511830182245357382598380306490841549293869529046353963331161239707664861751585590835993488399756293140625389405285679056213463182590284528113016299563381825471158543428847526406316682732134929284553447860431701738995583630071131678308636790124252369073726119202384617860642199854550695453651235228233352033019340814530870679563862995387115263097889101818211842226475119429580821070442391926949047141373804930330760844550161252631304122250726190906863716291509990804993219519690651142372329299806819871409997655118944509263505049280831552771275297705700346914470845524808642551717116160559290741461909839112806994436261749082870312886286442746592243904517417195448754170238352805896125495063381247791309576241512958005426078412239854481570628158814937518017951686353925458280111363372186320713559727275444267805351455413922950580307845475245937757613445137650047548653984907382135727957981166652151683764492777386365035909446582868311813462685175655262570578433522849751875037370826760086823244513933010084561927165642635288175714548250138311876420606721540561503481974421111259797257695488963242524128283899797670182036367659823198983133326031622146490457032743951524753486321261430876268336762683703618481641205451763742145711096365097817114823568815074424197814854744239933572624124707641262398940431901579027999106611138316336098026916396829595246356221756637140539771839614857057253896158120884360292869493219525154485479692828970172234773599789027844207113262435957452108656219471358229706841398803272037466679461638622353833131011512955432545261277268391733136435289854919377011807040033166501704318087161459477188070533507278265935082924429759171340819680678979088084802013825066992768082550572389226586097359519251241237275276751700839563449999150176926510655036699935631108693452480184570802328638604486325875743949587288401061645687317894978417322793064814449924618838671318630834282894471242982367554599697306893017287222193993119436140775330739418553449116901205522958997552242037625530187807931539035270844894159050431562428393392194394374330234246889669079694699661905810428151592482738479705337164500668420408292427340946871251830547116713897094911166355017209881198274757009858654477101430696939448607954987614367040244251856848991137240994629295314825032689141335379972613736183401029868376227107544959890802940835348877052301840827456290893391639683269409993261008975780828755654696957730753833417533450473920320985520471109009607350395610918973288619950002239749102224012562887868077138598142162235908465757968649686321971848585674011361377797960569105534382405049729038857266034433162213116936248981217663356336587567546110510082992078874529119292679052204063374804230683733414633853438391516142483838264780988098423536471630494860678907579277385116531382143717169431650112499908816049684315344626651632770312274578964203177760302363148395820619812021047141165401558336025036566198590252700049177516127312901213650718741522071789620983713243841100086372402990632100038108604804350771446361813649593924691946229979270313034389028629763256122297488845356750085484993311717651268868386269071964249072160235497059961116912059826189358604876377676114189582488430004236367473591057821565760455835465169225864441562849041389680383183801931100300859867269880550716382155960277310098630033430295358252817667696096486915064356596143686019053165078036078351008187074102118323654055489076291919299408274473628306396019998179907982030128944109716832993941986227998175020970253584444589428733522612575180689678687307503354981223342001460513536691292795514234423363016677012184984285807439723495938829975571534880414710534355513852512706873179687291843988916897093736720904402280822912842438949231717576506132447594140357850842420002444006641767954065358978319032195244981362624545823418282119542169021958249964684709711328774352617997090856841277368877200415721703213434627898613987340455707225750159486644637966169185017777241445838000140264471857870282515384902870588044700546555459627506524853886686399820597137997779036546176662081446419260764307912805296008692783338341635785842984903056156930932284796662999425941403757442491415932995490051250615184056092128127870943095692906824345487600237230043846622422103592926217327546060347026022373026122261269912994070830138339664750945388937119106794985488366681405876319802851965638244131502413570511093360222784200821841208094847136965537284784994862422990958749615292368014256530419631101050614844197482808891899313191565147251946348209136809343838798984501291145936135018409420749119606391923773243335931608323458098756979589521556051753942427001296294745036499700579181219244987523590943797279855011155611972579537188969977051834025657552376096242540734237953410416351174339850998741262568947213073564861620763685230806378689617512607674985640286787138723933739599567098312703526501206543423509938660443686932372858134209723394932162607505395621330834945017198233566920556705221817728926247814530549315052798622496563629471511158103703812367281827944053713061487031565662614667926948782364953486000001817864759811393478661632413705869782907905157190225942298639489888133304191580517429614165691267636159893210357834919059452644138023202323737742697709133091364392554742378099210653952229041005705563532315918002297550995011278876212050285655648204320131374432264481503542167933615879124533316668654727940390004543753032410792050896173204431558589428982115472125793663419278812993928135810416702707786922632291687756380065588175390638041484936427475869825127282734407792234672350576856079234190831352534944011823536829192199320625541355339894265648851771695654840550962163913881282289453423865367442754447724861126404526783630312156034799265692739944557649674801239578729119183661614648035258589058999046494418715720407399748299480552349913452589796031367648320550241177010233197485502564050947858506420458990849934830346337247970180416891448445184917471757072180882776881412437220944703776089091185468905399360787070689686117464026250253127162417381531875016811231825239500611438401060574668951889350389916611417001385553499693067410848341824042019001964812016680226539940772159317412375861689108083419228053922453831048378105048558081509625223546511340947303897436226996928044364825063023760948718062325569147836698667571159005161594714652101210717238353190994091695403234307488276565871464273264263737602894248183058656125109880015398322489414196292187859574452156504218821799475672132697682144082424034599206715117773006360663832144322007903089303816409885438380698973669757840184267166943624279432077530779676486091075365382381385538901245646764386642115579930968959960956824215345528691175750174462234663153155921445479451759858279786967923930376320457316964437272920626604850738347980184775521174815937827667834230599931849618733682609241622073937025096023062360515722763322944030308035573731148132857118394464019275116558418996481661190808423862151750958589482043106383260432996269905523421874179629420761610871714581210464092286253885858015738063949354768899459983060053145010579672325898237035891311764069741553652662099589114976772115219653866763392897804848285535235466982509154317202565391459011884251951979737730274099600911741654715767838065684511179385421700969384989945438602886330004155453354918412816508777492907831369157793571394427517987850731499228043563357188338294306719929867063149302105327142065114503559862313805095829123457156919189054326171926935637982257910949156761745824826752620830766712226791008770980938000185078354353801119738280827587664969357471357307882288840734066010653463191798453926213125469582082297939373847894861666662539382234429538622126320828984212188637337483224615590495340287469743865707997000467979018681136716178119598055487466642249580119201072349925040725160165024117259911544362516598628848925210524795156014329525355819022205392304921562595395539572504688462599752339807678093555624242354573763594004237411887755081276496201092777107768070571869726412361610538158608754416447174133240826997307588405622414169636192938604667652544002871961273471254887379148167098822241855286271051659253451902295653744554304376331183553687095891909052219193879764328432244925925517146530774777878809481278809263950511585354701225041374107790246653534048915324793262196128225542990288151873296337287544133340338061722904069616872186963734192470232598813708463261370446648158170809037358629586065033977422383462526818700995376083555795875749470484204090742581871091097630914690019185784675546328683405244706584272031496270243173030131577719372562129040222793621076350480579638037727866275120194145469037648914422927148170496798925987931023871029459119459487012132805499707828125745755611933581130065967038689328535977408722243638539584488382364402098228709726749330607564518684191384376319745240291776652409694038072848198246577484048941077288779835694347188179902418481114619544995460888224307022076663283108691443198470211451389204362910760436952828048526326075022450142010719908317518305316326523176148412751743784410867395076331313587829598279150511045173234811484804458154334377547806720360903154412007696313061927208013189746938231468019500381323572660794967340225990606088954217148099708226071683857185291097916557558936682393495123700972653573816844299330375322840686389763459246714122858942595672335031418857407060373255926368269327972544878579807679578076319554878792444242354807952021327086826206880534677214034484294690140134115326097590839874136962057503632299367602060807906795483130226172433880022767517187780299176020199220124290506553941796695987804168680075991483932276492716592759128009983536577092582772503030715858162348019699470520822699224646224946482488745510971378319493301106476503371826655490830192005810923169855654657164064094729332198249917638832887955963659821324229413413137715926185354423434596484293609272913762930696104344859066936718944089472300884663093132746602614679417423338678509001966125610890371973350784148525250977849997728277352562790415427658140643570306250761784238062311749406592666627074484509203248437861122182327996880955736063927935144593122970273300774818095097978274580222684770885353046889168795506823012319322978599581873865427840151699788212334779343080630590723563287226230216182189069356826587886772671455550494908351628943065688120810695563505171092111219772280794674434003304638353023750841577736568820870753927387354042424263664954297758845974830974040401229841156638296824553653245138112124000271886543490024402517060178871597432176285327412889261836519573752849691046444820276517291887792860267478308049578736282248408784678279036738492740382074688809247115366811470185685824268519335772873625699583993154104631653794704089936737025920551211494858536321366017911056068536865402899635788019902474767148528125213539204365951029364004189096008554307460659658936836308708218348310115727248345274094746628391182674064909237579003349808103447111030155477455229366699313531970125071895103273776175910327603701601102664300627256157965198443857668243703810401862161047400281328370053188942402886767904040579098759425114900093912050697786203055115008436288018730835883862599534424774457138919958089475704023186581953409651623457492493083580330838964156662225956040390465407456350754156911557920746551488419749535128722155725883482328884708412425481638876142649204156945973914849199608786463974056538117728764398150400349094239370442041239496995249482706103017164120928075614389710918534995774944634173819663752567795073403481602233176862462488019049917789116829658916495471526518777458816671360424482346582382146604788956774441464969356288065702917429167679496086568217625583452737588672219926192917296920234981521989980777365414502056909514107608949253177654619226285644329613603788321576387774908549879340028062419158122715454838462704796258914615894442268951266935948844679542578339334656345118882854751567514487989689463553613842127004294432339147405903331684784824798495010086836563331630814958621916948505548903436564880528953424328105900211945815612334048053443902026305383870641197359129696121683552941759824210246901229384748725453743337132388455773025031618874843776736474770232789670828252015330692201420260805351647282961840001456795046339750313265736816078242390597886317086243151976070763072262575534277088307007893754578471251616885617084328784707959989979945667151352839754226148445735794611614645982510466284074336935065403780675157022493379245295751385944623479938014869601221654392174424475199642533899464129790812903419612524105266341339605218815400624416984889143072486365065303646066722116300217269258715980316976039744819003647714434896502792035263150292339859706939661331352608354958268359145313181987228359065123857453173842751064480698016685163255023368365706232182564460947342238894360220037905158662377478146843070458528034992432675829261096598223227951256927986949441275437224802589172199412913374749967351295036743680046235354102960253163509135808026229917163475693294385765539122083595841203292090733013821830223731194273580044911600328531662698623089729688954860013896955725557657282494429785699688271082007010646734482881630406670128247770811881568706494709873166510884685515933710355912576477672345882242122292305748453097827023491715887633896612194043994359371258644815559755534214489258089550025470864700268621669891656709777683416421012045218904845778529118723064100986478973784640813897944340957666066522853198427772968929831382167633781607622922530124151335428645012826853985592368159228524423381600235709298889330005968274327366841705514178039836349775290217012803630242077934944875207078746411713226681053003941991548206039389425035735914504951500706234455036034203371297989426576412931951449349425542249102643507146370095505618543600227254509996043254192643861148494371321864719593224325702213008740710736500611444330037470086593052825547671804160751554580395777063757461178447383709211903027670347249892100082661070256712043455543444391852690191408285488885362044945700450075121261332774698272810111088187547448735159046185184090251162895099083751841900299445791282885374687624047332352276300977184611870137914394297442522950985910487708298825727691274702818868330790800679570311086483011094194588779112127336852303423600608970396052756972004056209704873931889862146746698424491011088997731760153065228617198278633482764971708454217615633926302757745552073536134002989128579875703816909450213124146293217585788699084171606084937818090571505764321941234260875153869668402257743959954620742396944325891555701860356781352048816812946822172365084758509187337190156660972448885945457812106451861859619997332498152911183055546596620406954568351082632331947030838053295044528563655563304051415723944570552689156812682575748617022380108551491116026282719347632263248353524558801620125144177395834157921862737968868453558938847916770628496435700997678344311856965666735642193066915688898876653082562626164212203083483214612730981617337930387804102202642752044509835678299317733804965950856196460106455575929899684376540309448407493088335818805278927919626351415863580090832876312875204296292609430227354320440938945141227848949537052698292983697375579498454058004813156468029579865524949155954017487634448055150921912850747552420381087321319200975037969433641404061187626718168084096365485470958279924706180862554818879492149198158412590916435703607121321585862328671021999311402047294873608467396275988060006143524411350522908473306768022954778908827331319375154818879871286966976450649078286710855599608688524118837047564174478504557373003661391038784005708209136855926770818545745625480397542937324935548009940906087625956331462793962711081258521872932508519337384707746851060403832101219644061329830192468098224336586636755042900515431782766467999839870536249304921731990047086045604579278699106331929787059507841803258275922763312152061750216340905562501300264586681177214111354275058198622575734592976437106350287132726465483625216473646085914087442239876270912952434900034227293847150368962147323059001599558603391610364485618795979390046356077502882595853748399196543351789622935558864897098789735814818950139439863678919181816490539499091864934031251680932001507696108372111583272625599938424853230640715002527994347874737579489667157856414835296480493380035373251920406381002537254824506369739966949384109015920018701227915289377372631406779913432604980216894267476217714384327555007227706445834570847922415849796476578927452370734786941929535110654426157785336898384506258829301952466207686069916245703867671058906352911880965166973773052730774001714092230887056871842472886616876155808203196706863719179232351799170433431130603393307645119759363873541682365172937868347372413001803640963259463437210054806490674874519898168936348977674012499457337573337207200252509095095296374680630379136650772341602976475850125755615058001452511766087615176068900763693433931024902884521846016783222819235848915161045484587346479729269267895277914609365880553230002525912722123907661704903762584951825431094303325982809536763438634090506545500247980014342645533343552582096803467464112725386745150710230484982953807346147138436216261648235549019342810439676141059934428143653832331575724117115163937353318402792696894739133131390917307545420191261153127675152611667282851856793368939573888522459425616355196340086608803395901995636818085769893444343997279666853913286786095151074092770832893554549696909521426694501498038312543530530847802265452803339842046319743310783417692084034153296374015059549503215325763825228083884255122722663082356378452973175174164212023267022692063516032269909176332366262350932083058145235139693070546821645207909092995840779877013980654736182836968120803755407644476602000643198236121854005473636678646486304572935462533491635200877669141192252277995535330464195681928643489176328247865233894009687360859062160570331311246180928026511683120742760681227568733979634869355663518196130603144131131544805458010050475593869874964839823989174334175982559167263886718946401620297338991079350529470919964910352597555444407001274866903470423844571026665969165048683912724564080672569538558605968176858372321954207117959563198182464112615944696128131254532449119101117394624296726249928060701524763093239068404954277394792527715139760684321841696917817595329893759217264622784901700654262090300939848299990537285661085845072592251004936742575629014134834681844845943918880323036863111239949765821602191311418617724769462321731897229693870303864966753706220530421822172092169791564861302912772947417826939004694535303786827936654140925347717375274942343626713370216386662633871979108000985760708814639177956938498696255295835016290785162464335774230715460510936282525323936734834839621274345557897688704057238569620431980530262807565672022344261158287815142739160681089004669723060778854223045159588811089061238897703918675402289053400871615745955254423571603100090696839961592042170326212729239755447923449353989053099991702048877658885136913015494674401287766859486269567248477257656303615121379538877817361027618719705929927196956192213610757557854096170346575709362515047693086993151693664915887517458097289365397334591907348193645548610648254712056474045029928072551391801327039342750408644519739832545984985202426058756408661838898609845279188252788321928538330387219142382959662211236424230232561321790813207091938096926469188746918739141275163481896833428195211041305257130790922587267525097164102693735522587315369587837807042556768875263592835340824923009623769122413285984466129103172851251217818666187424029310313494509937372307818321224665790777115607957204564199496901998424987884929828417404601907626399589875406948722647392134916384880441951808842200769157588866615484571140783125516068548221883210447504969770504872093215834371086415674339164987143058632396435126091096731043268194424227073057115392198064272395595171137175806931425274396843321681911868526867681427111363365256819699268419396767562605886458479508432511013840522198677931552377905714001051033559050887832044792281836387661394324455156599421436488639651263023164464022627031878223248386533763160051140422657830247598703845446792746149022326207709646521844831321792823927582264551865318205130910646344242414705847216137881714213181200750723395186818850611692111655521522468365810536606530518824874538422639880610646616096049677956979990509458094061820009923027568860606520461185198133271347934218914637472406247157968221287120392123369870775567793748409438959193097746398489232619455188530803092600635586398290527716719625048131980661300312051547849510642259385631898712123685349691895084383363000993089643681543336093376653888182881382193405697726274553421379585323255357607342709961202091846890352366352942028332613580990141860652458902026815307177739531992359941260955992197025431763236987014190961839916346385300257290318859598597661629616355292766472345901438072155116993953125697146912964970338978917378745960008520418730439064148743339804027878043003598108815071018951493759123825755073321430110716549344769768786967478973042797665003790183398738937156181439692977780756547912479261662687974742724099333810264313397040348398532099896452010919559548499697071818153110859332488415347181805515995043604325947634021416597563705070690499828145844793852328769022419145498592515417759768564602422287334246269545867109420203553935526648841845302489862825864241486017824874657916691751906392336137032373174381332688176912271114063375440836235152190576867724795368751161739993302040220616478973368996730924508904417334754215747846412411068020164042188167759319398017613969939937963546908278649047352519192972180521207652105229109755842854340582741702274443063884102850334577039544289482840015433004703341827686395127446926395945307879446720216703740001207561663952411867878962870004243675203389117935582859797191544455491003880321839544818301514593062249351169423693284231137351498758237911864179113549799979957145133619689533892627994409173814522443512996862555122840095785406142848098682987017626309547734294546078495960420737340636269261779569567889052408382893500143061115795801828408294535725750509161784159359957930321427020136650857739672894649149659458700480159740989880446875333358725925899989737403522989219731726097098384404492512218136352333077288402580898586191326381325716913393116976978294457533637126108998269383244454363136235158376632673362310069720458451339441272704383308924562469251005734689701448198827464244081460271559617371452793392174161254165054965747830543304633450498548559859870254734642490268261129777753610108037367377225591712512371592385118184651921733712775972843415287156315535835256059409908306264548189109778509815058726795821521343846108479923058988671415940793414647766889290569211205212513862951381029500844267580042591001363522885108531287097810460257903220370517018660415837934528786538568700081703539277369893233651627952595812798989846230795448008628417827713134583661066120579333228461208487670292207082193080196530146564824431658412080629121227141574977976204072049637822488630733266789390871376846893801052225971623534786446161021397388654624241023952036500099900662119243207911643355474296872366309455834336495747198799593565082520518266794306937188555924102970921731337355526754330748909774345787238391209416312405353978320099999186802336388961771484161886300503597218450104805581345956538369769027850515836665672639298466489158136593820873345113995217724504073987834751511301412655127964636077136333496026716472537682992544241936394282353075984342898670274264545880184718460285240394849894062404908874456001069238981185172784618620775168122405601569513050733087926942532217994825130019054671822417683452496682481886441469584097507325573520327585237373047853563195920430847309128287500219666132004602766031296260309699182183030706672463936555863403068248856189230451988709449708068071153360980655985332117488509477351001283960087169286541725937347238876238783720923471745430758671409268472247769983021949278321848796251536611894771657877793679570457030244853672960934047173199869895240993341414609352823999495233413597713683382070645189958885612870918145152602321386840861644575161644630715015500251796261474031563387544983292468444994337016941460796397568045400873754262346852749742631471986523655540794440242575355521423382260393911233017358262151440561799716172243776739144035267433290027540607349060429282029832721478945836785729029658275071844758392515983391294915327567274413428601897657192532807795826813174962968264903152972558982953044105003682397102883957490609540176078909271700320513828782734685301060349086136122086615859509162909366249109188009191806718334322877605275250545825052499042617906444348716146810513336709103201593602664905597637111214597748531846021488193143229176908132978347841492844367278982920940934556655488636925527611361289879350915329692581908636092108067383518031753428557522482752138494644400618918085155620192216395092533128641222188642033942845931124386465004900119318095815757586919043795449384204813505718264192936906674078364741081698876910726865590192634400348243620450986595915896063346387814085212501008227085944923994226623223643378402343674511309880920430911424107559094078081429297904904445126249337456134857023124239279275310698710534174564605988464859877775133015288520640885370638006497744770709557553644886149550628243764343110024970063526647421836783744789217454751109436188469284878544270751546540358090687321326905866058093921021697343166638088247494248491462415512507585193101637304874891073267272168747251273777785938030611404237045724347857157668277462572518391676678242912158941447366274035272014290939802672349877175387969543568972429629737742230710936214022208109797238893052990198840052594121839815918286691885540335854249351079001111017683231268962872698054535868017059660567314842234117382021385705342290594023168893380287624568026224843635190434604781355423619589621021252176947628977295993377450657490260338919870601631373568267514997254184459206589600191546560286370408429981848990528977486387221367148679577739117934403542178605163491233871066271806907721543445420260508668506333705862969104212681265852538790288987387566498792808293022279535622908267289544522652934927318854351899316542533270906306429521968170174730730149615011273899786048734450688008443571635772418834527997686538470117483398748231323700998470222902961917410361661045994805758756413713159966529572408373107606404208523333765245130653002616055829911065826576051875817009979216991752035944195100206182817175979624260732994548737378376299479764423253731819770320979557622668466457779874806089326213885941116167702055682587287779715579811639815651918423324030888802951172177839562593713698672629008233578852168447198075375291353454982653380306240713119079288838574555623710545142442742325074795011255874252449151170650298933602584387273112666366823742305024509262827187813301557612492187926858735754375628598407418946375876647256050870523413651281815104614042666873861118515688368120672790726695971660093663051776883102911489945383205530152023889238921487212224338568596539372235631865413403625407839694773912977222584629187888768912639553711251378410645634273604502150490086432571791234494500655699063415695134257941515175477935023384029273240935898060716912368004175377731281933474224732378388875333154975819149831850083817055725372982634165578299217269026951604293581089817412165848581183880019418620243289898958423062041916517579722579084502523286461411679324076685670233657131376066003031546941150275296035201090031439684826451760584073183546651699734769491723475670831773253456379571966128401304369913083616651524291103877780144908261647180591184081374328716996371386827625039439504792310777292688106938520863258075145144317315126435268266326313599465988147481044794446994657237831603328689971502051932143307509859568407754245034353100997471494891263998746394977099571631279556261590976453894451850393260062966703654416323090639981511419601783417236552358438966612344009331481142341687614077664317815500148469640390579834393925484372035084997029227070994905477208469679744447174760664014202095238770024410503619744909415407767937241812922598286430020185660822954234854543747762002049809786210278812539187948413100245241257053607547961227184780373294011125042914751592372431265611511364286354772398794334300233124121312475319081657991134756785791504301029878181357303349505503311421564439141543811083088454489422912456583452567170559605059648129616126902770470169681753179723163114713997609355965469698518570955984498485537124990106306270913155733965390456753464184401695535199586447933299086873160527153098328148102015670953733486759598479269705652769238062259387952841307446225849240013699286803983677219405467833319619488451842903602995155050780910536449472365057836744746315717267873797503882848186342357166944302061655264568965927822562468688818398070196171937276100945790016038181892936035475104565140543646974666610345252463821153397406533275159168232628044578692443823993390362356367831021436983982785803345480541614759090673389058698782607030114187384605947854155380147799834299424088800694378658713769770446489425160096145065707004929735342908925937104959849957605958667087122589130074644419743166272165907894715541680529317728712866378296153144179451661024299495431417779234055604972782909109160799111344127823351826809897240968136727764290722950550970894423739569852316624873904162551029964795213327276758179971559500992634351187632487457200493519932321256576502518866681985095920932543954581994466997455729884676261650476180214937693723156555391002818359549332309625088090549946758088860816918336328105457817051804860198598916484105366551390120405410347828283985614779367115520602646635061031753912665740027148029439244309132853092564364343946450564086069209796135787152915065160238646593730396940010209228070848772968885227007191431979216361005489308876591318537363750925309477735106007035567101564434650430047931812950007201250472595725039906966417441239097767346948396561418202412403175832137430547024539004177093161701405780715520701704340200847677595518288200880307484685947617628193261192996022695818616228315679036653543633137543175297076933341913293221848286068838362398499064901154865659163178792182699125410700176666126196721492482183458428190322607068911236788119657971404808075604742814057915011762517587348156136593604040227818823598318433303802559217874071573397783543218278428585023816849041851147221084403809719119929282406027638724553429439131687789038859727277667330232604616404035972019209243548935163484535539966827385271696224603506461231068905492981780634840459369027559934937024013369267151374519096960988832709145398261122446452063020537805652113211501377144806716428880847165904905957441260813871306208559022750576911186011516873609223506385586815933910445112725485333977072627093692697646416289521453174889912268703105315325190640271822202991412624676022432621826989308496308527078756246201153341433275465639341870915149288933741417631549932611726779142344920913475170584227081573167572256135214673233318370453488005410156791481308895496202668743937124164234860002894230780641557489517863476014402130041999575217408939035892433100875326319884187895146725844861677590392114072910501218738532078243687457385311000394759663832846381640686133807686451714854177549882563335576578386051435989183258157604933627453508008114744075820811435878794371223919741832344478239559293218843211985107673062655634408691312047936054174671590440739140612289878142618325843415389895237722143446354386430397031061372486966685157419077071954673327220147199189527537482239605905531364959035258308192681524626950301365140310870154996516861266997892671720192306181249815259134289055273042901408069554844169714478201635729501520233339089787361179831211105979895591496878156657369058125761741606160629747027086387033840163250665324912164462208852642383471023290787848200375439542853312246395292942012195219707382587278439923559984634309900402925520524253741141256029606723641116304768941098169676569597898827647278229611546686766316929357954492942209515592137076996713247463206093196639226483453502937245623242320933782433986366650385483576402265257796711938503367076004751819157528732272450273982764508547014078393465181825054587151019259119596943482983645169200905976008809240978035665083181449707603532635946062270779307740501235553817951152867411822581928983582134904499270096287727353538897952199098402545292935844788842473522698626201603285100364203270963004860731217483190836778640969329932302662451146336798937029513619985841466445841926249170659934993594870968665954490521964373326385934930138787388515944245841291517791186840713690474847436523954050066591542161077394110224855983893325417266910032786292015138877376300207942934910293280432578328353481620741723201491848244207649652929892277102527305850979097884103782798630808427211819775116037384119440473782752095140436571848618933814838846154632483315458281681720706375033223062971665561424647421183742649864657559648812051005419159126107574902758686228569950430243711125831329367488158958546933677765871129260713399915056218153188617807317413012952241452511847923554832420031551601977613130337515323234014068694534373640869527241736373796637819910744234080589915906836211374527693037675662249749350107279100015592445823111508177220801324937122471899958131090992617900251626102910684331197239592561644477990080319651453394080187897915869545901553793611929905240470602906155493655511481508746847392062333467479484488684163854595832356405698647180400592678808870777310472984350260743502535682418666212470177087207910223245127515513439871553310186469006923494605404206760476064361616132332644146996013522186617281918190782363504496294583002775898184834486985775219303649287498505333052572678193336686298648137880047553639175855884711438583419165989203746843221309609523988365401522766127078144091775987264870174410342667710667353917389530732126114980750215487008407619165682139464192729979318376071020568819549096400299813444210630417971514730463528774241459276150119489886597032243093467478352283979576105243428247796656568643383038189405769618272122540654301464823095761182030393286395939000143175281995874238307415179861024953864685320651751619113755177115718644084975336251150509959059475916332090774848451806166281738546416821894717064070824825454110923607577403899202460804682414943418353668237330219471056440202555795422746048925548658743328798430276439269232382659458824953598112285051076909652377155065557616912679739750683874210875657211773444881372563736942232878504763259155181365899926245035726421427615973529000868698367867598541930229703597295996232585345579776544583334583647538889578310693729831613510272602531887725287285633005266387608690168655182816530018281376382892402679289457712754542616450827844338594161868424418726286967025759814719572150382739900534556726660074639038159983116120496029616669794563466931704338987522493124681952930288511904105569505211466114234241770608713180075862959682224083970730642147123714111286816698353965878057103894319978175306013781628626733149979716130626325871376098911436215187419572117909372182342868379075047058606563134348778726927594917859155102702442713085218703960046314396219120980560735478490835734828505861800918109268897780404896559194640055135819503376643471127372631955546274886817679430360882788749099346522159614612097447760212176073246982626071073882024746058449275099590074447798437481863058774785638588004694575408782503936811607500271916303558737536812481314398413265735216849515248283142834622498120364832124719257538451266319838961775795678021627726417866788518302074234668862897995728887559728594164319276648424221106269962355939652641153396386409077007939790694909904993401466659930328547174448124146968388395242315989075255645198618688777412532407325380104482639324572234844560172485308934736131813376971280122212599480724714048964974348182030377362202773917694817468562233454987992982154979913833027502725419704476710118248501019217579659384643142331807759203991832507437799922180193372588608304063228189843119257729040935368539600783024188680915029028325817294494591944042512141003226131704660486055840943622543361297622191292284994776590141327079042114686597464443484879996699659849239549785531949502174124923948052831879963327902490221604260828618576016043522914410045125216459168932940457047782638275387764884695134738710756987387047844625918071098639275492384132197921631874655253513456367246834216945312752615018240883962744185387256532223116492166123105451096538933133284772976603512819733096631469304124299308657943836968311945677072454066719823297411673762723590014197434499991521655372633233447441791181372861947538458256803111924759495701917684457255778305409230682874134268698898720764734330695918448946999717228131390914223223005023525463582478155173781062433441898318049117284924681267703515517243907015049756277539273870796354838257261847145574347059160558755737661639416427756658747238128703105989095626208527132125073633204562001671837737443741407201628546351950735073301873487966204909461104999335363732345448716571301648056407801058842238233025076275401948391491030942279295559427076939655097469693858510669586318261754232026348388074108878324654366151126784466540678196592712257722735752132195805086847223993928178428676895974024930920444920300433830576421812546404502435600030872635531814044156809084508881929652195621046551421073644687098204506801133676791968049550163560427755364298403132332979419477934521397443651326467772236415019214953656080431787785768317012784687721438473534030588715273201534601645780752479422095890696096222625046409046846695579522485967575094173207148757048695715284912783066454389707876597044610912925294810032562908485302298721454499135020362091689806897088434905041757522399201239019328729644968781420777523642971326553300302160581061418548412632468866885091677845621006847666064263215734240374841249509099680661632575963565040750924629385013101247503227934661401402769931251069447495172207352315589960883283003129528724221980681753952947277523949716604202324371880602627257266138661131592402733157828528730115317500982821314796924811983741889079254737220489666944513001157932163917756040815800970089725794151977132877242757249307216057821984229800044046147017118067594682545406136476784250019628448423091018087303021719843257960592295202017155954608662455275972692393543301033065247888075721848545021442325321442544598831894469046230147489561330925782911451976598439740190856175382265349441434672923652736302031553310931435166274737638704422512881635513973017455503561130173972790538496610899261446436892806458312324852639109895072584622178818704252504014261096130752206166281293449760706423578227332734885234499716370727266072810833258549435096598403417421449736788179377962133685853060975255307229132352302822241730131495448150870521877341748366744974011114875222507901861012140298591536416545592042330411780793895745161639284724082340558061917363666710765263239703394762110626158537248320931052881747242844960816696900346961064261656164521504539748359823576547879848011561158259969332730458146714862874431454809022569877841500340141302934838079563816035689858344479521449569067487199880013417155876599076821842040868941018653091304857335392012368835341108040143008939988345347090685433738292318779101140260098617476643072265439436630680376643077333210500839238974905537796591195542101542939081452983032556609366562223198516537876287901958099812828102749540832046299226229630049641046227262753131713839519611081194194432576692120012445842075346099873971457023239753403765054862407579722780394676158034429831168866608147718815185847395574205059400306473103187422634895858038456261770888561016901105507093569946930159902477789493522598560306618252155995812810877870981081154027159678333816406679630980811673467594564768627022697556722439916375899189984878203411454415015696678394064148417860792955739008364205312343773789572409625131384717040104014285043840765897003997786986689238351228666312069689989710676880714766109118113552935373229229690126550937449548309930175076345489500478226512652366460582733018094419581971444338950095916116040828262955102038602028870366627417956344025142009112144735247472045555451410175549379562511566903725281911003825328422628969348888705755785389022247474418563425683853941720193567304064078141953818261154952636344598867201266239635647529159391896412311261623023987615313250601035089849146482319903681776690183664736654184924618136015871830182834147520947668855085224394399690207322831271264118235176200232156524474876792841062553219370102035038220951020872320560921009706204862140237764569391437013875779194714895413884429556768195547736719148661191525239477435265872639291159374469279969200498043164442974061958199018679304205227076653356767082156111066607927930997811228954593374350435833941482705968491524130422420996980540581973693393582257087608878830584732131743528172602614956623152592415177447319882824720266989926373372905199352750356526211932117047081108071248106542530421567054703521120267622736994071775105399435534623048161221044410379528277384423843902661625369406477974999128463809847588143388551137053071458571822912153779713116142744762981245775624004473299943564188842260574179851503203576848425497202400541467836982583048352258157641948257279141203210620217166775949995797825069822566859628602551036789896930044753813816147972574891698920034523260295953106003844876858243987197304223334524650438484828129784434900132350812408697260542111829920357371852500682306877187766414731318575488762621596336092793560364738411458918627940790226110993660660887059120908490586246459972751647594717824283686115769092661732408514099881380271987234865088432332358794789899752789694978236853682231232391502006352073077213571493980440160126745745818933651578253581558030169669707102326259681804913594053748753707764694358853208757984910519067861082879953950688312343058083366715247530797348868449807827816387714105525257549309396233927268906584335452146940484131409885470455618612227661645277302290535203849009819329318726497545287910910847887724628296698079487878496413882470872611381027706167655594019445729400849917658933020736134456565191319867148454699055214674426284709846969750425387031196702127420616539239895208747273972342621454394728630773142104585099928560208233579447418027050072785561912761361507209171746057055946766683466140224558796769718639205824084455287903512871219803932805539205391319973950990395469614802276088768615100435498400204376536955382515021376002416660071492177699956069826349487627731632203346703064129068822994146404465491519245912764687454346412753012948202330766320606934230508079928982294914715844290686879478548259141083790878370444999029493284630311337464830904993828852846712460725290932614001203200328311540428038149487485499101382744038883183992134119309922492868219866444023286829925199911435745261286233164675406426612833094281748800215380927574832492310569333388532717276639265816160680962275899243554186506069600094537583456483598888798105648494978944598249514556187262043037464868863365109358702915296458679384265305711341139376166879837277545790205469653962580127744406545408652970784168884898835013054835400011457670101087436635830965337824547391495546717494942418473143020578670472659303613063078688474726286383139794252171541354019068092423930276553075301328987635778667679649509328169480292063193770399789716409880146815793250783453851370836706704912957436854958761717402843566246626172479777966153542151220169644615568459332203382672017838362311807060593486953599699709715093539404946596531972370303439107374099166353918579499468388122365137970274092970285751484618113673647326931686114339316766409661060866012852207507694542406018388770889814348860986063745789831611791127936252606363812465266335621874394230826606127471191110955213248063264059336560461208351693417382240750562672920249726721397012026247962268934592268222952601130949045276554010346332776459613481951508719799786330507511053759427623984922944657591799242438024159382319156068578632748999410400317774488497865084312365782600477937010860309148120461409455288525469481151040178782397713367561302683967349681254516707853846108592622879889680343991315184395691280914841487653263058335445286848246246504838294989560854569518495105678703937870728289418850393089189643288679235333554959756030572493540869320940004121247598689646691649739511088885405556409723781249763772323680857841787985587168148353208288731324671158204886499881880157316551078405402414321795933892957025663346518737926297215897348348035671956543982425528801007814764413508081296740156429227888916693968285246040444566428465637281693274879703363791801989473404847223269303712297942638235027956179830625687757380416852582242256999698147162725414054676263611032767968005152725766352314678855373681397562538267608380358755463972757094845756226476456146011191483662233793733735327800740905490549088181833091300020225560793524722807228009650364034975462926858209313752880652025925537351322783978991524237048195494201085884477886510036811692730299863091411430822817475122607493768725483151893730133142856612284340497294811169481841072269400219359373014024662746744403790783400083201030062890597102610203929163412134750124294288387679611738679260714427533413578974744376711506568238366990701919138498939400439168214273997394062445268180631896935134954470247314009545353148209285637343103206775233945704666729805831171994773073704796935483765184506745914217817073397533312399487351160365188913507570720435334908605163733186744187783941119058654897889665292113924922007067971338976248959041715166859022423272217141367777883373835145168710576053421763542577811565724910304642238117658426602745347454196142143278970576501077260257920508187208386608084528768694787549722564449003264388769635167588137605257389257460106927628680169561058174786524072203592926377133361679052850638171769988373246290068821486377602987221519756379645897834417978033230575645107526512166018807903390449694553747192457129389938298594363664927629331472166806403357577810916727384253176875868125100539349185907278897589223049707600476976602515670864628030176887265366366749148750595468807509822471233028237615847290964427423936394981200267827907847432874126391246782491481222734104407873281489171710514458070931381734729739659577381729675257655212677741547730305661842939310337892032209242224119085820657156894541898439162582021399110626991965891411141030904949757043803618989086779032274777793557606229539828704992279920560836601248717888719824539841567084328414478622294949985850942314125949268856883612027880932318665119076126463727505685863090009299092715917070173061184408159719710192597334040812435017085478766452903747344715203834863362002662570273659967191959313069203389385198195592069806097614542566585808040900962267868303914098122500778421673495235961254155408697004443508402170857443115981679956076836231467248861925407663787175547264892424081964146935372943955978736536065142867671310556834227478590057543123231301933089711313918150372120750388256675372859366715469229145548289515363081015380416886823806289548097565438826044734343659237545540302614848722576401225478156445393183735748953943686472128935218644813381103716977758597420214756868684329734890719794627562065209655813670073227875366535647772170036650245276421816839159642409257623454845930394413268950231271182481853621673128126550354089610506187381188706675996602198126005232992851111625510002976185092074390993401565930883431591665483191876542435054787374976045671256991340482541445858503621337737380468331523601876823518443953587508135484477853321742301097382433742797216233013191033577326509991765272804156784638669342238079352816833954061170927572387241060287430320963917477065323915977479902446342864925023847588206948231770368475974898125693453394175671527654123490435095479289821937744045895314937938467114031373014915081660034385982615314360883308984315536954888184244903060027408726364588002533316041200502663017468880327455233389072513897268273325371523076329905685334992061643115793622547900593285003912368580531652878727641731566007808041422840267124601555966130679212354929014724247028264579965662600741731410325150399925566141927348415408200756650578567437329755873336074153555479139569234036961552601434681710829184455445990580126190902251331943202902149979962088352071690697921345618515035771613544472159446064311666371666590376814181713453315926870914761936075606132542610033927949951345520290038664554382252895484526064046544639930576321895779745135361899855969426049295575291275855891632823038051054626832008602327504922107664170438069073340060544765735682936026121630557103509213343227639526468636435730823084043962702769530418903788869023539661108890596358112152410396433720073778004631313525372385951844485323010401215980012020904343086739372920529162017421881939070736905426101869652124006885345870812026219042066520256102555967536022510880283579571117762052519298338282897420163932891885864865243260938097756003559821284366909508741933973472270092227816699470217538960555494083512877778302706597008545386930161213859164132337452841537946667613349922540118885555626543433911978363755071714381105718015235079690038926003014221615469518205799852639961656675970752086539355642667066860358132035151912791309270604665832189842212259219946477925881367609503834395130307529357508538400359058411376329540581621564950569578435932483965904740745446476304744460875065548184174303386160323660253090602121674764341067342976499049329767200229123621982918012024645459529444912198258871556131912322160221208174731908925457214158715984162323460247926570291416318501962636493277269956991271015076246749448771676374992969805138698068303611000621129596649182586558522751283661814853918837013982311608512344217895075127656444124207852187807339676519607131771263661914257204453092132756617283217482790430128875590967869636876674736345091624127185472228813741830172864420260552613749241720153563792809194473856495183983663825732334003275147205410146879965550349545051139420023076406293072911823340330879135494003502607787623525811865574914109696678863099185080913374389742725587024559410453997931519221983623670000442635559509831058691651378533311097639557673875184253097934513277452330885715961712397072048474959996691774811537535890872205474241902369158781552457033099960568996437402030770079588891806145195442097029673976442770987594413939963807678816576631514194689784902779437145899254021674930595224044727254238477017190908348227756290319285462406816584006575908694193539808730226289279623188050135343503361016515242187922898408317353914027253062995439381952604642105546185805207239585051713230379530764096994275470004490442552674302702146194885316879790195923214803427887547977800239563581277396336633930592669085730371339145175348632675929715842724354467207741202598185360298128057142029178590407464943296098852158101245765780303527895875482168382958987191849824644234017027861066228634607720621442813253280253406277214254592173563753158150470522654246639710825766644669940379266975808048336210913930366431145901612734055917440585886448902406258621379933256030138534839867091949411330051152612818415423451841494244979812719755739565614664148350336897005973348896611661775374908242622029928907732391878077297980842855106553453976254901661763211110963130214424545480750631728590674768606876631032090843120885653828661450772766077109952866724796588377847295220940453436820358671344232292684316274764279149045899066650281060243928681559751807640321695931704308547757663518009539604199460132720445167520891346449369574759520233785799528024129628975959614537554757849359763590287427575091930389391236637095021804514243543300980193644524900578936174144141532526783367396979840491802785955382527042985182178752245528643006831062655509490362346773737574322603461021563729708862831475555743275017857434682778162473325362085271059660681238505935238411161338673392093122935808592830143034946469620712094264734597564686817522158732151805287093054237515082346522522659309263548652983430320057315360500009416246877608423904882515234697732433399038502217119391591438958045906190937589737403879690557653172603016045216191760448973453576376945828295483106414773941464349586731187120628572521320900260839861844541283188822737610563159229511741510156761545324933709268429446585158849911005994029660702469098779914571318661996636096924425090391399470518927438471652025924509066356027847165163266770800119509369656242202095394327598899547138985642559190690897042528742848499790197604671539830733878933793760083374375079459912641577288898439843765161328753375393835918901604840401247117421600602200361503144269421125541995950876480206718873398136091631597167083943524319560342266245497111757263001312106634199823124262781035132375740446531874604666521539625095303847785332366724585331041149139108905458505700690652155730778892928766530639624038337321989628005280924495730641549610126130509388652502740295128140944756719139442510070780121671038133256388622571651478414490936976701045955449428480290376918272289916597143677548916292736784485094937326759594933475746785073384078013696678249963904214941131411382244476812098040906286284250401564550066356907642693144043180136513517402346767747698941292810289341614621296700448085069911206579562855325957034115656053994020427591402949003319754629757387115487413334675819122743968330251389522510314442739725290368250438330118983958846275665636337413587133383445631110699873427009099071745394608935342530333235195000140794018635475307698659949227900628181515198981627096447801760281098941243529552729377813729490389654164890478167450912832851447150675775108680490364055553883103425960869081012657484977236581328066242787455899042542391679265954558486850243126673977364570929256966308410939612915970107062312017798787051391127533207384222644808617383179157022981742646764601677597357213709236802939513721381637427992552878635043527853314066909136858717536111663106067226230710021861942870860128092884272338930953199614911015528770907623642277218312359609162446199320788628094721230710298658482014006805795250179754372650477847412572150037412771889692637202046247168291264466145550221260447641653432364335871981966240177060966088444193121982380388390089094485818725689677391881925176153038395255017035921470494516351624593442112551335883710053550782938258691952595230565684674456749138795771772933231162876091180242728509641858835603079532818630962958032019230272598116799738993445706582491572529214153058722607206665224117919037898143096077531427568098221839765251248501075000370979168837811866752760494680591311521357411998511482400772114771211815125590352748187619375981748430951562441525108274420219774123341002909296707408314142000696737195317542005488674573244098908338380648174067726148347336210153312870523099477875526552588413527034979397471419379834252171605181925504117252492495331051048238424286244253632722776197663816502640125178997549126278180719070591882736759437552404650595152577407348409470071493944978765530639506489594719333280613719743916658687555070835564928964030078482146386850607007954431603795502527491716279566809334841513414194066905959632392678228655045401923144150145317034403882139948462913547883149680644998270631607019459682029859988763143092491948909952586276842160664470133595539302938270132195685315959609681376616437715441287526560802001822642421711956369022581173119543410816328512880308692038968150181804569834675997933930779161777037494564740941060989236788840156402199730523244608271616996743435687199447798408315279402050970450060646607830580505719105484699636597145171800516274827209273536007832472058157856561284427178963785765442854315875925580578276599817064452299238569140813382242382770598905678404748995996677262339513375007050360679800807066689923583610155031842087018895299058512224102685787493500941696113406860752148051488600190386095896138905263306790441422849032014316775178431658601881451470787025065938839980459881846472105632703179426596552093194882623162128339390846473893228856519473758821925816403491384945175923299618951700802404299247980616453714066844030728921374389598367362241196711760654689646340289940805256491791622589335460811416188932420654771252301939073467096724379182946609176213460232502605233293596040122201571534611315519119984153866692204341171269119869945982969658398795606145521212749110025946172576076973260944996120369410007138338181624383068920124411836550130906506596021544172302617738647997033879304528509938442296724976657608525244366393154064136739244570200820938444570654078108025302139037244152932231723261336888239265334523659044268018126921105616112233876282804166898074091847372937605002334161536032510165160181596960577037151609955378967546936730807474302521174768577604105939954620230289745452713057427403016554385591695156849448995527074651317617300658227828397658513993665036190466334312987372293385162222052827784152431953694629691740008483065536977853285084639795183766789881417629754757782811334794711030050474671114645637374337227766116122760994329935095105478481179348158566611748368109263183477843114256154300358848263976514612595156175629771228059518433475294974776698597579148572793493006032153746853481256084636067703532917227763056359622820362716447333210415536377670887011727585846307898135533428680449806542461558909370022995181066523986319190560524923481847012183168795847422624154556999606299617449056054179726311485419278731449642698147618682599266851867303053290098920913874564732813089716726845712227473916571290936649116393950923564921036889778178053895527001309897567996770871299389555686467117356155870996009090501591320024186777514873585825423255200766012538360744153391446126669674448077622973457310294871213230046517234892680297085005317960783874163526307487551715738346030589579004141945309962340765865974185131491582836419054790092158800424443644212237981377044617246847035569760080453069785080563580515479069338107135774713029021682807473206315117259927359048071190492197051553708994875548745109001579068579354253264755250537673352812315589319349541861362843173053001728129149141579109464514276775958811410917539186480564179021109752076630004457630439920643907810020360846893079078725168000757566515683181071149600446368768376346099734142477096476452826282906290726897876462849398159121393447798704283031554458329368298192807490380275002856697669240038529686374111593826936309182333772307601647947412306481627185225005016993595329434760502638721710133154360514290323104902642178258811282148506576792877160328066914913364556052189014169329680716523949966125992376624248695279419936269310341380189681051668046702693242798177625382619336133585616713374037145495372390282183196086039962004192991097883728448080440138115875028692936800298991083533905585663677307509960391974966228871965891832939074167851455271503442092635599177820959134725922804549816710208470474993035956634958553561849944076375399635991380076710766529871111546167104157762876733910836092080225601909993129510328302443043598001565935505248152198862645985990755293085379214390202846473345443341065204966808746456321844667948577379497812796123038685086371377630830373219294443504423144290280061522094315552780374655053986845669056671833666438122708422589986415086188465638333906269751657507232869898774563661258658287201385951122361503545136861178368875926835628491649973901043245185916534211724539517195377879688165174139365041370269422201295517613303724819274790893868989277877468864518637667605587143925660727732817837617277009881548844357591331051618784266817097428609473360819280805992227310048047455950718562436497731438230832748214019958790776211659995254325608708223757051985809433524546501611097197055222338421251894959435358125552812723451552460114881905777427486272660045351486724639087730081608565329571588106890751861139333697915158647658291666574785605210562074950790203295194054363570025460547347066564016272973619621339267237219133888353814108902730082720617209256185054433012538365604582472680403875935361931010492771462584773501183831821785832886277685106205227037666442915057531323725205889917433149838495385633432462571820116638233823661472387599604317584199581373173984591508054454660386321408512884155058042616431253543829646346382453311345924428918454652555026039598472251315335257151085888498620390148462811193355801775529059957955013400664843777871254452131752343563187148493151700016356244215521557408435354879153660730620191168248512098351038643420715015887446829677940691014255802917382310333174959396760765806822296031263130254055712549912414406494824758111084350435915170252533934885235922175044427287545473645212863716865589098048204103524937814167089272613544567535701892416995499333317355687622759001402382818237358405746546330307457194329229952473415330569888046172480339876924656577793115761489725502375540483169968751474591220155421408352524965300536482615261542139640014866985556832100388407110418244184157774531461636238514657895097596444263522178060806884624708070810979428858326898139395045672762120651658351216193238972518316243881021566201126318694470336134854225735648696218914262004268265251749156536274122522939537342026849260305799432954017618637378146460607359092395794204900530360172377511719918960202823544309950873157985499033487761676980007932043868855975145100619081320599321940767195344187635712338437116975807129953256066413646568567822714278467592822579118899458430186630100026832583100963131135889541485261059692446551691680998322605816412633008490115765704418454070754529671460721500669002906770790051132418824849025670421787282785742230558786032598273932337680791703928290816875216549793193192830096795575630958470462223374071706629235029429675171283262480865900419476794622628394809083442494952400464822921974765073278576957104851973862955607475722067318821812102889983106318126372056541599898759717265195598110411194001341096859582119251571217123014984213467183813418430266935642246753289791582318702528031081990533288305915162997654107648871763011951607784212189255234768786843266530427940216349295208325897195213431903271475846866275935109896389212273953042439302965200215283346503210104196292090206238915366406743540132558202250379915259133643412559967907447856305201238147922702677370614744037052163671643542924091881862588918085315855070402945943458913646509970956062247983426883098476426637288977292540585699400409393263590998795506393833638254588742941677516373743480032250102132203795758058921072893811532841601853161051837674995263184041145776514753658716753633571970254216382225966951759202746689969836931410435510804769165356256170075641215494604159475112168599606943397875349186821388646251738032690931034976862492386156273063635782915850016805826892581374338691331812378372668500248503851006028602679567252850095638523568552129667015281015777796053604200189283528031214989742632606362206503391430337375986574549776536585630966798775988451396325389875137940803884176632471813139838715289303947633753307418710204917898065736447844678883392077361472434575675176072871782418767972326471856276857735886086025084241451340442248824945378430175412479122155153029208962510418338417546397845170341635655549894456727271708015937145911146935968476910558525795027562263791526063448361577218502900284228680582072043108026409994032317989177747679054177512877258623433902864493167350194367931467112345104639305193289551493900747360054054364597106234142310898679008027373036572458228334924008235667253730127896656250817504384922230010557373926591143576216572754675423165523141409890854618788475012160437132435720863518706094178352972034152346648515873237992276777014807283974839789925937336074026838910819699225467217381297897818344193636184484283194577284144318764179087876160006297846900305849394316426029819712263568117588223380748982810824244779999759079188583997812258821346696190549485994895102319768423347282568252741286729785717516744036626463652857993264027036145378086260497636608737916483344202360495076621103495038379984120099460276829193693826746673470613985900741067784828079367562638068219969723153623178179826503446667779342908633894971673438347663206956223419883130464991351287217910519556278818855530977065596598955845106975441953658469782988342540009634024428878663318764893738615727084545784646374821821926853891580524843675273341959286937954474509854803627447780475634572506361967060163903391044112969149901184838457059646438174449058667191830346912165104989419421498650676255335260177061402733873844362177780677410082839745482545329808181507028169491791428632689904762996324177242199625088766155495236197269297465572004110646286301305599980834870067990521524347091328485454688172981447508269075001753952381273634008887494661317056856236098483710350061876624625818852863051802349418811294850182878585804247114058682610764345013953486379524736029935500617522806502674926861122949756760195473520157003694022389130153280438729811152298092684417784712043484087929465732061981386495339348273766731824873820884033197617858338820507054994043443020750094777457951524047810547509729471157691764139520229057192951358587395133894407602383433259327976139386121300736693334944538524306887189144592194883693312198011618799831544281009307839957146988680729794917287527150703014578334788996949141412915659256584128661363938967246103436226768163025198827415558995888543478184054119005132016339161306028198558896253317011380732763314351270809607004523160934036093191609916484495286359728397237354996813783506879105732604484323498073704084191145639087150270045883539889350944347585678548305552570291361346991114913073257235553091948917837781001946926235931677311781351700360705379234645270998460311382583754645090804960006823592653687587024662307997462485789646194804364317404667327574192192312828246972483854577343009107898986779822195534649669888971033792262992093096886704988918641702075322333434865752892487078052918951074333613857963052575332085894348385565409528440902854700797248415736090199136541657468536970626326495441530549437217614358846762137278683314953571771211272460500437322110198952968903880761999749606582802187823153253983655935553590093363473843173165323141802821683263874295196579093419260381449410733620859899064334189179054660239238650104728111216951565610413777075378540586720221287213991978466605196495943247742276483931238659408242158049461911002771400709293675086747698625475300393943896230893666056264053426556075172878737643054749029346776444427384145879513815627930942894601556343648457579903703388497234854013111339195489626055364788522783450716188198156440771380380959873475972942467025312542638106188634316125127323477920296134767028920225554932223837057112340650814922897848340032059418666518684474996350205791365909842304358924582497753473987635360432695755865092204048143013647358598495405494036861111666636392210571112149713710840809066009686437090268891097054804733041180237977053269495891580002955737911465399398113533207673784055476059496220534310355783108080607206272653781216017253415586343741975387801351468380812363117256824680698821442479071633410856757825248004233166170255353924794359495319203567203062205621098980234454822493420053521918147604537168547585902908184094194822716880919422742895080191224868302138932669881932906487518737869578301182182748734469056701482528164247274385796325408100092493112065380922901289550625394196178075573820047801621808165901568413719456482909837055100514470110073629356180145660969769196938174343799618732230839188444587655102562305956201021265065431597792997145277827039951363409689088963518267112938980633719720451410671324280069219796483631407160708184404386795535638715065744203189532988419517066156292347927893734090561411479218234565431095867877957605561126250552400120184513621199931118406327564573850973010366406931447610519046883009293788145466809729976450121885318665470857931299823629877381787858552743630207825903761489560986521091090126884644487599074495834626825415985531614342513555394232711782098452645937552829901592653599126716890351936769535862147608234116688980682107529549728599330331399278996738951434404744151769264143286540906954817885563483640939559807514571292128246302698500943594126263172335124829757878548811011935526625686269544603626861234043709182885417062553141441013931836266408681715495512103653652458269871819097168663589379897517669590134679902127230824977435574826514433678569059224512223386730294490916696796186459000036893545558470391926682375070223605683308765399201966511528295908463530473935879364390984122853456297879825510959989814510648990939417494580406540923133332356882660653978663423944883068557625029546391090495687059974725990458884471335948238980630479455362666947289571016327479025985732590909720738831162948423971583519206664612545709770453903356390769131670835771720900924926990085318602399351292955083063584585654479875789574315786513053040986748685655925901869990817529343174122341241105079169189341259557972010960394828576603529570738852733379259124460563834637711578170115137329617312752007443656301682632761451728983674206158139225036953571563587905626348228877474024705134440220189189241036105083611599845060022966688312419789710815109745740921178109387739660998226326249323921880788160528263432809587913041574613038747816968961612752633771419373123148660852227378853817536059059494992135658919491606139755650003504141487334657342655619785344861315874969759507236834083649147250147484591268887054463231768536983377501282507662232871173284277691353006618065351436015092423753934011330306647694081756013331711851665864838298933893769194332433886109969311856545951726554742733017803603338236430325331290860722362605066015109599461130793493490222408272700801195288055815586963874500217402257032671463184337145940018790329899554438374256097854017281547173734988669214287910126161984850922631401791660092734847733988292255268068393110590987370146165893068144750848605846252454171891884354849850431233440637631693929196953690656735341337760096900446521175361119127504945737131806520040104218005529353857351345075759486816069173445243239376925176627046848098633044718062987681189993263575300762400081588723117216358720778477505062166980755625100407818482347551820677986902060886875006260658397956046768943605650423994979127053812143381233055718956054269519243746154554371650779628224610375504902491595211459776289905687815666262843680766575096004834718268606590286431154164122522033258795090548236634063559584737541274940562075312260047982133479106077537559213023604441723578590873999019925563916413644071515944674621219283938169572379804363186767657424307169096332782959456317941307185814723746276228488934730673027473961569556901695394985211633154596918518606168412902547852432444274066350069818710965659018066798563840530947267357009579835100991760530664269223861411066253588149446245369697172107822521198384529675425304025130944511339696941672118309315613900337935887830134684266580795050655091781282671329482565180133185625390969168467503183681296865255778768197630390626218433734051565401385444090590474759093576760623911905588980802597654112792091077962388624582993703050955285607870067666772038048322614977094266519671525808261213271429388110641905848689578647015873350568958651209021629776725695732681243957332900115923036791096770707958884039416908206027379139506476464923952700819777774301658703363977496196244466183053053795067007089829286971780817367842612667470974069903456857575157976607544246932753512855147226778953263459615884997497533215360510148119223531345308438856996245043957314214000330559342077842595440781353288998453927014543625188293748387626723921063371269375706586069966916273842808513195273866753674334993739713491970647291619322958284913510926897162215261017275200814241594410135005040067862832408159709550481532035261227553755047142130895101697068049218925095119037736814921706558206034784241717305002513894913477210458860345844992282220795491572682327366469952562823532214100885790791060409558642778634495498229724588767857644621047994300755738323618140888030550095805983354197871925142884475532679905889751696127678016550852286697305065572414242967764749880066524053039187751535639204620987240501588546549945293502973642593176070987834297682366260738863111600443796868809440689748082093988579869731915029773544842537353210617351415019580816173422767751236076289657706963160124760808586264529463814189778227572491642173232840061958061351722286370357592464750817346429205981438973799452094719739981834387126149112391063509505892578169235059038221858411732696485580752258438496149436555157320825266421692885470239639758770357206348651098613737438246189027343796665663608131775339315321387377053493304355078522854489822078112445078890316453593385461495933973213146723543010819218192287036501354990764377937115317927546290985434033840270197329385664765394481816045224935218367155351081925978086894831896552102325745034468840295886010360030929151932620952373439700665588143742653579394366720606426329966894277244851216717983945712732884074752761002282646815778889076804614154563333552907133722918200568716818523537414205154985480684113066515038839579084105113307991010723240282895033438769794933986799338302432736288684302394609476649668272556141213015770195223109871183364099908279511257608656009340628456953621759362048173882600570793349936762650989467011951263506195440703794247951634655177580458168817103786923531030563785816628206739054788177363599235200167231941462936672028351141904127538448757971274220354425713757791439896385365964799071364787444473662154095972429959732792437492159171036602224963525397949604152452070660757605923881525864473443537698031554091367395027388638102849779662701849320333303142042454297072623692642269612786169765072615397799002201491933733473182883727219183759389772353056062748080861537631711191692692372644603488090588302407917900468204938915471953219192503096873150873030735236279811516582111740863400132570720301334941143574852324829683930008859118307403153878694612603214387924904680323059769919378552327700175752632420976210085264896275860757397999265668802375821463805312236534681419764643243471696363745712321673252437835186217460220398107986812122632589482816559840164270979060438239887103451591856030438077235830282324905230300089965191749381426066566219395914229378521062680329848146832467116614375729011074311392029619103325712625395254911363037663362277800333132151268111751542444198969463030651156986248340260300569636309441740723310766596593365860987671782172200606859698145601631607767814638566358017929961814495997701743242805994768813692783034422791848626602787894060105037489509038856246892451889271751422451921193913071553769989127303240768086690273228529546317847771314414888013453235188595192989963911199066567939774620873188544221725186071373315707085417852302491674685208573349077451702446224032082114981730249900801657550598850999275929666784444821995126312357250356284673135956858056064822035281372571878201341413544009147028561903505827329029098511994665521266479159765067601072487671750904407445000937303550212432372705344667192422097902369515375452938921089099883822403101420440601329085312043976821902473247520997656453671369204582328663127323581602816916374694954492722639810435827882764810027186331778211428462483374815311112677352634252865506353334405555003961571308582859837140719027922414611610069446504779414971827384802450872284454132205257891811910076724411250826245187786243778952300076422462402853500725676665910487787725237056466857103623796676627889222861632183836226581757532679496241464216243509446318066696040081959346264441863624814832797583371634675816088425620463778558231156824564015028555161406341573941337354447478585084303538226706067521219695863134873269087672281515426899575732461534703750099831400508272370509316642735909707768225120755713747737966088671106713499643006068902348603866425916921934946884700074506466647252978165658081278750998864516291560849917224738442986027081029634708758321985977741489345452023533243895868284945686829341460616106110420700397460919423512463869965693586438212807917335780452859063656126156326776870584499789067621571214917354894380739932738091184914055683137133065111679597267547898023154587917002226343397840642116961122333573579642163506548186486710402048191004753817202525977671364657099538565853745177290196498339061197223571282682630865987732652050279892708368236749454608324200576400031122383118502444394846534303550680736446333047750260405595930943699286402065779647521118792051347536811314733313540901898551837606501554205891701196753622997944720777347539265548641480491139671354787008121688070154036607465319853327067129000662503558686937792170553611232890468369277478461504882634745267312322367843712828439559024602397339847378462032629601535711997946548269388801723084246885717444615404662618563143785032505186081083932904202049721157310666468300754872072469920562171981966489893550630142094873616847466364311991852965657301598022704004583063374847321508606509830921082251256049028307323494652406511893216980905588881065513730002262873912661298704694937753424230831062581957513566335720306953017489157632017458237451876643510369601088183829385020009525527741219908997652712507014496625926794538914927026941459517936662867780415059171688161410181001462727426176607859745279908481491712081413964480527097306938241505859815234008525280368923750764564648893844905124085547786154674671004805680579579316660041750516488666432417739349921775347995775870750440208566093534053951448913560206541519154120758843271992952691572064080847534688948071734495225668434663604397993789182843904477959454009386870806203841884330161326813269079907077672029178417346653106748283346759853742512430685161314751902417443881417315695424253969879703882849327758282846572168554074954756826550657491774705488774770441440589023922127514124357622546783245946664944318236285814059988958156794841273972920016883992691423059100475801723823688786767662551548851307632453549399495080481934898270394529458554502549217054566975836974570144539901765026615717602592165304850301893172611099218420201638839839045932778399903034744421308704454442307405583951682308353187440907143415367873502632290736279735525567852668181895788777210987826111013923851020724258693012128626880065500687934413540224911387950714225615281273546784158045192804145506576149413918757753049638301086886798636775129681914021771910167847011716821713951801472423067968292658741649056069518780354299937414104902004096754077790936618317940692139553160243175232764216011728867826389424660568647296090377561409800084002582800808067888286842461125727088985752585967057867458729055423273979185032246972129259915046320563401827739930756169665919178604603168454599294944219926100216198780748479798195043102453583286591540204343724393138239134487910081545859977990489366241898583420470044311013201237005801601586166185829910995766952068086687722865580291254919004654670306483247747012429144359500648609804048546053505099147353243219492160586348941022723616847710445905265594796423904662881798969713752228973032505257315235675119992240061394510254107114540890849203587619894612513706140139471643944650025398788944741461547830037671207556279021530363406735204234851276013180374793338128692910954304612639392325363344468861510252249088477927177988384034981988651058410169792524724416663680607316361134636296020327440537772789824707229935626316647007225880680631189037878082397065502355999759932904486432485739778134005602251864474880150638854496785851828239576592114006046018487183485439872100382546090163951356059001980302499875397083737248319683318296065836709009135294092480986548561717067405053654319167121895128435369729148541373104938203553353117391307195237144679051778321160214838968053091543873617495849204092437049070385045517194459561916879737063150917477136806776203682313625740306994721782358595490451668272963741501829079430784606223310702346463055122799837368375745388479673553016592186699550805995551686196873643046272759708129759954523659139142155398771330555269713856211365628130431672083801178523532926616846325437151994373539975689824402881440237303892921768331645778356170526602682684122134985564879458800388364568723050206897197472432539670038391228543748795716171349677653943118892211464043605189139529234409138182429317467481809523967180487585179569259209502555855090634483380091270445317960492083783968697372492620668753716411990071359960092722707750177990193299044532099472016618073296519553136207688264259767275590801894225124855138803847487203982643911283650432489504234697463864543181783123222648440614540103648465367102166571905767318988916576690815733843188256824781963672904336664646786137227504424301833972125403570299585559533632192812065601242535235459077016649527721448909856731340638109228046983735351021598048511308339500258894528614553367297568884635789661813553161041871738987535988997989670429027389074432538101133288521349018946639665528623345786453680039576952121186064805181294997794707517072247760466341925298664177533073706176123312224601509210539763657991512842365034157825062991607485268357190547739905866169503383337254172049085696511793709488934889608995738448066678576512544657632565178862091547210502294285244956016742314979334656070341024311236658828269698538713960763384251012360779244447941494381283426604102830365322763732690798867483061465334362803257835241509058160983187791284537288680087905366832856646439712226613782786796894942031831494931872647223216532443224034141237469514259358234310255721631743715110958711590631077460300479994924302900400585870894848899992443324044104542935751047124698291804170968836459910326111050353175729203115198211654865856039459929190163771142648068282843564085627521842364441996160362467407331748915545070141498268145504988790889439112259801562114779075834455085321828746935382219095867418323053147436776765605559707441401024075587492203489461121959938798854810820933742484392628156501711921137983352138591985690313851170218601332067101542532390501007767208004843485806684544918796357018835096960529312299186584041374441847814775111251795835154475240712773074577595273335235063286486396181912430581978772667595431276268295885054875721922576890294188948631144615567939097643122199910955944431760902789638645439686147128397315724515711271430823723970516990811376204739376370522310990659036554713379736114590462466268542430648204417877837069506736014052524824585298311926783294792530496674814188132148569065025501436748587149790058974380360994011613701441728427437896627426892174077739784534890251771303597507230860367631098446689394701607746929491922467963720591266012358374497432296318051282214453085695424219767240946582114261017997631019545977984597087952664959466260631768926681838775450575014661372704840741505954456099492804858558032139213198735896787086653249044136856436778441997574938331341269579532692093075073625092877813631092176973873732984938373191601452269057103572488382085802876742337031566928636151041180568773328712818394030232698014664527418199718252429830483585871055333768177169786939431462319082266494992311318038187391380643429599053693271326497711321183380184177337892065422090773831924406425051663144077386510427449391475933951149294833476913062007939664909081611616075166513492919167860027802286497023051228142675299366708526255164959917798720576941276167162402450095392312858685951962490798822187046879397948471148579887942551783135738404231605284621065198402924005868575865903206997889174859785413965715769037363279732956037472224015510794621209497111127035488937896868822198977409429526810310529528014129202477892650767992184189495218975654697080582412828500067133647948651295315497747272018005662519947151964791159606369759688595676029198928098222147830209178810388412575531592146893985852560568956248347792485261860402165871001826983001375964465109052210388308267611665526062670735544298767318313607231529661312914200381014060486604997786987122006670598505715739314797373557204379111491761654254730839543395458609587657669477382133465987245992427980406665256782207539270048212651475252640511761963170764442575678930226930592009807964526434012792694874501455726574504257332031642941735217314596716704742902538134193653652487816583472120493333209658369210777150944881767260314948079029248253921390969033712352304187388509275744326582225880426194333650149568577652499257808044137770075735435063538311925221123942856865948686058982763237061124669964269331645643639360780726452610449290290924074740715121810123414296577867530292666262786689975530508972811317267967510889485552183573339806440160985447678384765046900237098963618143189144246035351744072188889979087684295586589301046085619680436240688910482940912397558436544360795503418958124682218721119579534255405533248205843870426557005017221636444710100196901604419441861650976757602407734291119931136012505945093839409904131174863919660188622104585140688186627577145249975707317179518343453838331140221752827139159223756294547477146580050241596310978326709544104576841372101792297240115849591036913370644521399405082218668081044742902374245681353524949485142445216227048570917536277643542102639149292544800487950877279483513022376213904767088511850906257402921403591010149496493807337663828433966251792577226608959074121997861507287727458698576214812403340383093353781617682378788462891183792596515946568860438537750472630012207529751467838148451684573540874150103895348080986844055053101823830986991326923679400818676637182250018362523809039792355452183493927081196161796681972929094698803968531394926027710652752015088923187894100611426155038080839757676407656934005226184161902597011328034709979957290743559536887776346128776470196665629047324497018960964806395597344423982258830458874185431445916462748160653473362629977771999300830075853282812751660395669625232603945082661909306759020002222856569893776034706109331263982615700763515742745255133007909988503241484353646283611152833345537153116919829175800370982766539626254719960564792228428107664253097503631138055804159900677618452036152874075359930961101893235688820058527574343972234986868692560127751612705773041980694898984493879727610059672113660797139253812152546838097679719582779740676227993282967218914829616769281763031739151543273865667271711724223533603861334432215292779828087130328144607896230393493960459316372284337872103232172196614993916666590623902522884555616340477735320415146140780973361565690622191612991105039942945351967061780117923126011456343330444074005129388660604187632172894363352549504392575903019969383094266665534948597482678076160632060933621069926424114981036051955340854075762951398648214081938559160520812012925225140267241055085298683626610699329826811069270815022238841137639754154521137901994666290280696451658019340012015206853873772324297993042331226847449797071226661613334591245174376588802794264974185189264984983609828188924962048382470519949275056909889392341484700868079989679584583574728275656211053076936528233934618169498988830130113397856257522650044027882440725409865048910737679046808284590093536757372812256827462708781752916157731929488528536381545101396008675815538534688700025002718313952153800396663282352124956861998455828346387420128584660522151405974578184872275394363362251635250615668789875751762700012946626995665338111560318892057573790211083327801777936144239597096233296152659755004320959672597029091968712628151355846149768904510618923111405085864424864356059464513151966690176604631025312149680196922875228299951538335684749724621845494221388831921755212008727088901621989022669277518804013762872831865663935799691569135162214411112678919749355446643715946179858536250094025910713579502596089089676428441180069367811512453785676511019974167930658565730041874482561582125831449237522526695988290257053703251877014018961115384857759630262760171399097008091622627919308073559471653287903421987114184207833107195230432622602202935249827946384455218429191536623026654715591968953813060710702283392010543024411523174162816230804901997999299090017274559518199625278121193301672586137837953849245072290434778260543540397319699375845351765906291841837995285530944346526904402689686221341008215911109610162406565259496577640770415963533397677966077068284763836543114691444088025948243056473571170210876802216588369118156873798434614546276582159871152943065970090429072099521065188946671186594524805179472522648895837842811637823346494565979227505751653949338964245030075504257502907580466218040563611114726260765036398597067672287508272074337889231682096448949095753114591180063963000655589630521773665817198431076896126929243246899685409375560228635915372654383434980290578785152972703343374494752846595237108740137265160675283693922620340966204411924371613775712082486562165568608251997539507059961839085779597148089360800741828476700496300265671985626911384483285801770325059428203536206664237518779274742675348609679831334245246460172292841898431729166818316532176202091398411694120161730102049165953815071172797393165140566344627894243016547564053369966398426345042968865176724566122378217504086643144687758544771425422327959376511465604993268819884599249681201812671693936636166586740182424802255654427370854911885620350311267877297656420517787508957137177623358213422210509687039865606946805144106557796934127056505135004556744059390089957328499793682510919192256797000821173848515135096900978377948619148513422393978524562494688462958485024866815996839972644258068866119603797111184069014924011251438706091413871933817505876472307711241614301902216644174878802113155620219164090833597169933150244304819700400067907635435036913675972013832356574833990149520352436541987713835960015507315496375020853280033613546419283548396497717173524510094094045406984832425403551747833376938606954425294777344454251041681249783952933773241014324060045409815957310690166746815436689607529709538561123315323980157948898327442285792165131519776579469318777359830862462456053339058457369345758996096000702335888812164640213398378738147702532660007043290211086610449565606840100569835992762276726552797874140380563237728267982495870794333767936532654049171604155605373570423165966686138094313855906168266966356745950488350690111927754236376844013314434894233077771018755082310572199929102769633522952199415310238166507738932962131256542898413390123998625554773650049025382800978241434640431346391500543860516729626068059287836359535203915629177009114298758945760202566518733593394241021982675463824732682052274332516080958616184635406054973533802237044465674511508048988831322072917134156357014978734284357285551134021548921318314962287390969994762271046563034978457679599098739493235650069442989138815027390546519607528825676955933808675030053448342379429210454564632705187254345939632882708672775778791452442895201725134449545989224030376657382654806366640213537488456404360566746714968545233794633321631521810422254746769893073879911077904682975669834936563452889245355620182983815612610193138523983004351173821167953706285588564546434601642287691198717910782209269113363259008597563595550750278274997887544707270987414303972436764849731833635981835780239114961952759350410622635715452198126868229817504676300154179892285717690782927784040906304167933336973442040736981501473231665055652734655314218318119593274349804986563252695619722629768800784506757471516218475284801893527671889605307232063279174298859890492886650512590941189739665958166228524707362148671945215519990401296200181739960697744198629277329104813150795282867293213819240533281208960255443187226797241282374383612461008571255610071004206511156150340997897378514967858509640051864041946595692795250959798895291603828246845058220408712809965581385578149489646603030436137810811978499475670841921037272750077274851361265215307507277268832230392502596341479333119560822502538337175871225137509560747622723726260506673259387188702074849995215000451996458781380724995719231686687812127604652247207579005336576777675162975980738271242691143146889762086256003589891039555150660976916061983388949003300518832520222585941027119495898124835413143779720087511295179709228526958193668824048754200233028857196023799127212099249796032035646171614340509719842295998144856477005152616069206478543428349144598665470932984856722771434002186470456790517676975531307862274522444286417287122478037203186760708818987379949143922174102036561293824280578280538650361544869984186115071113598962707331500639946133720186777432210777292854104910228983897832640714646242151594651472830984088993196013673589219797412440167170450909096707445050882094737294475801760383983274262852654446238468134383072144455120914762103528844676324206549683572345127405133819244921064162448553335207348622529654572415214996694169394104335138519077607526442701903694043663826955233622861218224361459220695430240746069868412625128182859244609356582111719299233391204521027561054768433161262746587273865831701558292746988042502926163379333570776973234325107039388388044419579242569986363615878637301152542716324232743959380061575915504993948449457065384699194478146273780718086382261875658323882417624403526174490347461432561384351589401513999504250517250932435955400408806905080094402380863324774148808856805269181006114600859541529335360937015447252484609882982258328970121198861781063857539908302424010615126222436545312681210840674804963655094993668896293416157593247632346703405031666648708375261247490263553699696958328158837165180824865632067130060444066554665663257158804670964390769848578571897555285061748592389794042710215626167483023167392905204823533204553011153584160678641015917278990858109337181568321711666030504668149265378672912825708242579735209555246811456360340159944519658051190402443309067360690444666170462065046711024195780502006062492512332883048488712303176676291534868843418806635385707729643863474864477163844069631352863341359601047121989037261873170499960974727718996949424219089614887202000070697872785704339179769604206097153647812114737854733442316897182861587621971645746756665418242307882516861489255066764424275587941152261853740488831352674686928544460456783888347663601855311028906369675751480039466637863894250213587643174702499963558723069004478887191533936515360712883781070576212340386605710095168579559195553129722338513737235202692225136756126993440511886594858095907395132107210105599559889944250259667832282007431827470576624974452284249061422153327525561371611817540579380753203820295950166654697658418216272086134822119281362691719655998675142148405414046490253346201253719130155497991899797856741344098694954552881969032394959654376427149939108715910838415601734485099523579619749199691288153024898768696278950218538915672621506592445381303788621146209409430422184959689943763059001997219387473400575035661501796629923401606258426612123472033839841238620232980257194281350532540900590484280184005030052941591814040420437882829275671319828384143774208941929268005593103438893640401923364051481524287198043503217448066521323665516999202813483662412692866349202148284868192382186648666559166774213281066349340710577188717989677786635667445366573846926352178633077363125806988597440060498238776133957873517699931593868218471076780929397124116995026185959644396910461990193326175517495510814037867227218369770243911306857725006104165246392305909468973855922246458048557431568595904196746961086483076961256932183556620583939832705158454732084909900199868640029290052242298926356596281732238943424133598576310439873392164657459762824395840652996670732707148978753189759825819087732297706664070034892245147364714385669694203935855359679529474231926692025919001222791707978698082170278285203123992909014051912373033061484015795204272894318727808266889499551496327514797850688420495452154915042945972134545911308026240416717195231963383611202378511645156717588008184151067067905714689831042504395396261015325364693372811673115869362917375946141397689492720990781406520524251647011961871858713306869559507721205805704345704388817600220884887533377956964382021181122013758065458144587111513338992592502007814166357737722061245631909097321559543067295558155421733099908630202554186223056482330498339684370318547209846198829565285441037617000885184822003059123923320095295685070386475352745829002905752993389914889166958669449192520839515173135360786110463957908123260681162932479742761422636484196574189009108122155131203479278926240010488979044289742222863842744848970650620803979092912654245938578989614561914548659085943795374166333454570802956358382150093086839725847020526307426002385940880109393923595694248424565038165729775922927653639118019084817902686353099962390974499672713408132600695702475698390457889499473874513662535986604704621779656787438479708352451288947982472175505162826232177041239443852604478148216122340188838165236479332929995589096113180544929090452526449466156846230266165496555589208038474124308596904683411832178563608194397801251904767231534294799265685684576549448566498463739102615464189066091092391181725932050037281727709015303408484751976953285827156022663217596667233711693449248633302691090670916522033639941042945506985982990112348749589074542595912374137311981292678717269316713092872618364056052091512999527374258785622644613362714829691732336183525989605982710587146208977275498418894015433942682666153300668388877975519829257379537794675943943238094830079717964493419154300909736528320921533196301162885530861908688722547217691782978607059604344723055453371654811716079185747064413238441058282243698036660625911884607799561141678628498615818226721566845740989524739971163171255197649759732485536416687958902984537780669101489128885205459441024301095218031960115861696450174556663749277984524616543656551102333048379358718857369274181711901503605001861516019918163002470983017528971615597444098600588475274814893972338645597670595620421960737612654396808382241743331640129200084225033517097324317106224350018126232609873701622781771177031519213291998617459638640003595902938203959469757892314915310175876543518554528380487530666269128808217619489288613849267010905743435081435301241642117427041518594680405549876622615379234638288809424197621405070011013752171696716383689425017569788010795329434563177406551291873287738408822089420751163355436059975600139126851181575408449142719669211623628491338008009050950685542593572505852877035168685018901170711836959749212911064133081449903256583001400315260589555710402253176534187098980482295764239155240314391362343631999573512289844298455193525945013514824746065959482929104534092222263313052483520203369659636413395771828006807687728171912672669331498355419674720306458990484413350350626139934295560212986240173843031112523022409001289026422243387832578734011799939435470626806886288099830199592513594671461486673323762322053665407231372723397525901843007848764590812436442352521419807433276469624263888551298190903168240496275604600342507447738178089963936697651975746057962555013116094072580869999637147871323248606453448750998792647344796289332987022401466616259452174184681661652895374003664512004228457519570945518701511663020480151490269270387078045355811531457243545856336961175097917233928546826183461059059221899174800514617170673291733934986151267931104336256265616549909276653808588404474296735112940449020742267796156630620766097033480869427687314543685196866148750210038940766434238254545279036479169113919927451983183250606402612381297106108622921281918258966610938613279135986480037516827927899988020963029271492531381414297148522914026692577548234318161954443378416274573742504424854930155481250683658743516269001588465188319185556925100355906459805859534173184598147395267959550596709991332545166056338177128322991770717241608965465485009010601836237319073744181426158135218593659674514631983107538603365294900143509462512589963534577781836094868401409731428675293266497355782559077527367452562106518463335596637526401554617622333601199581308920132552261303404367027422867520926016712462504459334301548458563224085385532743899773987890389777895239654849220666895064902700820782802787210150902371685853519314808483582652052362010367887338882029566009262423940194807290166007962869041707334958892478330980371225702823479413360554492534098972531273940934407351790000093319974980692834373188423602025186931610803689526415308245622891841851386290242288290335636200965029174053297356862258995136997783337876554666459996586020242165879235145815608578842672119431790655108995380979834438549263390319038530041289670939239413775836242995687051881051695002714261235586517567391904788694375195986538174428328881948295970323828707013239107220887892033337303273153127581692756543894778279248070543678636333102244584461527494211749657015131593608697901941904799850553388155882847294963192090602805448904215537548475763751562375778655603078184561682792092749911778138037296334829865989579313595757188968614125466752425993113579976435410574418283862232153616061612026934927474048475055218303422278671534742672394756600098105255808894402735308020410641446111543212526700080132424042770165292286589534168007600976417773414584727718729171654661831781968067159454103499631109496018712811315957698579620835321085664097274840886405078649292378562876498569609968971688364434128314763184712919348754402042431556667012169526034244393705813680793146695543172475025148928194593356554973888130062118743568208365354975283561423643391044342315259328781002885689349316423988491976262543430264462967749101628090130587592006696224246421472817136439388579563905790186162226448664191751060631050349455819679011267097541356933813821033716970776272131349455343526328322203143816119395596424714018047637188679244370856993918752901800063138455538062454659381406616368183765304772761832933594867984927650022635350813152652538919429168530921376747458810096360694312814908332249436018763194027565499149170507197529147206040525173303989649368787213575397821297139415745287870204696370922777059714810279535550439141622056673317521403624318765961844530268119600593530325092126009182603837846048980012495063061773892225842585052592388534744686797907833709929419074435834795210191128747389732913218217441157843323110971932180702096139090154250543326224913855767643267075823883607674986725047562451786660462782041004210102562544290263725735741848612995332667862391723166261250056655026863989942928108946666122770358926628332032531822740547282069607990205673564783810200015434753966540346489632015233342458795294009317926190361930679320944029890438246906623386378696626203701141053631782426119378898123713800212196545090647809058407196872478397748745191467602034506484997993893714293654307295922947666380820393717877374536681996850323238605642773229462002617276072570539196524919772696499111377450818121175248150498662490483349938183306037065562138586711412903628262623674150541208342147160572003187372583078625731432751286017031580592130280524855266971886399382634164509111377358543697531438627772984608634564109024360277855565268109059050795807711034865238714353443678990400674244155773261117852734127323755266193682266049880598448132320642276354395570107965804853992823832619846379724238710687318822859362326129111775030902431516253471621453606327211244193445610376496343657766250654623879906199707947791830183130198654821348243536124030683171688602181691447101064039704070816183499480668810486481986762091567405235221342082424533839680193380264461401860634511221393260404832125850769866666976596111405346436940751264014147011114495740802752372111633592948638169919621797759002460402948336860782951270391096472221535402186182649211679082650600884329583903635973749677172154139071709303700134661328290389730102503779683073000680092532837545873342073867701215226215557213066480345121494942039808465516881425122868065512971946717692441864984834501774199597988426137545003578741821076187565696930157803774714238942131038944763162071353274785404795932093313853145209820617127956161192877520042308275648349099933036663976878424329468266305991068193813631172066681861994960154548490752660316067239203835120376218744582970908599023443177551049199174289085312304957271482630500043129845546145622845667706569978926030283725137250751229179523242784577708892030566555402665485559431997074045578140394157955964945675630524424102802136163681398070532878529779353737712324594733879809904595748323778002859128641705766100035340723483953171876332915574847637727180913910684945150966420860897161369284060109141827984559659802223352487139786424130033486973281662377228259383083127840700916497675728558760641407494780648356439320501474718491434324141878667278958996441332664621077632570258797036662590549833547194690644014381065729797925885674956069312974728853691463460755892098885652198665214000242291140456993383682039639596216906043683452711470840737944114893758186313205342118540457729959028147849521351648068339377923646177020956519062969987953508488286056058770545746221723645635332462453126794514602905306508120878281115081337982488463037895440560474641629685124226387386457495790420183780585672641665019403498801380047677824953377947680648458555317026451897865316027883400203947180851316508306490613744013820186545638731334096094692141943395851302814012506435666461827653256628910806730245639999934480914131947963234175064468728038271948361593880738323681161881143934232925933357865911576594787800713057567261051102388418490091982420209425152580286509417311078857722039277873366201261737585728329505668086863431303423462565503517457725299680404058513788495639207614259024972719660759657025518674278114520674437600453417205515214331295073322813244908115182025976428626182009781108936190812703774452520892972454872599782342310782083761086365635363808338269206302321460549158847957068797378164951720902484242238833580229574322673827130842590730311710804986580284149813297140620466158134938333378857521823227491159813199524572447893406674782563425490014373490474906636377615358302785267124743675137945898428972838776073376231380248070258656021194810800170902875583795547219505942610085074510770977562001275193501656423565861316166445625752167796812823144279665551213733361208546353474441371160088936533216475552592080080354227011966174556147078777934229979366961466064247722480497245336447678337366834195207784806060999039452447876614920943493095838397999414217889058561459283325214906759973584496069487439354259603877164418047351092937447275242967332660639400434187687151161703700286581649494662203510436914280388006542886834630595798951751857577167845214210544460907577269433590215843414454336594319453335621200960554409425393819357612728203115922240401433588126377272583333334642401296252010331263083153244286177898298191237395710304211080997793128685268263648674004399916566913569786017372531405505953599815680119016393040304986643072886933341498924696900679652318727886538782170599781623525697776390788767751109169918277042067644261969114246005918102166039013202215598930975681625515584908113295431261725357972135076546146506882462889161961952660728394176688499605852702173437868529434505026548823371087631532897836415378924388735869352814886986132321586874536062413555623936867816413178731058696225026008574655402868897278049755066956164411861578387109371094848691546048239559065533632277600923130631769215106361582137620857172821028745533418518822741477812631022541414607008930805527477573435522582955690690997182830153215932694251014075963314312653996138474022364772445488583875815364379154792141869362999339609420398807090804892061635362168864209447843945211458363453972031649973103626302809167521968087985001232704418800867558020155541761613895481030654438222284311035843389748093868089485870143564899159990944456210005601780237951472755697970150791756021582905954275380287419294712771139552650232297871367290302478230633331620676053763049857026187506984828118922852531003002987767947234059908470306115233354307960912834469203798081873837347689517103388160616895734613873396415036879223963936081454460561936662801700200365152610720253250981435970112219353629684036806720437068469912076042925494010183792735074844224015840800016333496125105999790064914181002517305441590889535486700603797514312725154544820331636137963168264370195948568767723044239917730056092554317500256622083604224040657001558176889006320108989987476390631428503009138320659362226596114168757301018054734187595644252760538846194019046631402210224096339709191044851801156986704471509596512666574659737139007448062055953597657769304655179202306154616085869797318559855843247718481083417859415974784566387283830240995483819661411007739778838827482678181073841467430891140229593604069861314471244640710140122051223825785170358455187648861096899500707237398692052934647231624269190367142564962107678545218969401154789324053819347335295408044180790768206433211507458041432982162284904941951423861252714244416643380113583917057703860563855020128023088842846298521534192915148095430724704295387256725837971563696081916621286098920596356332093094980756297846369909590591189757624230248446163041369613968262740649784771747552374896583881973626411175878308327427957225662205523073214219232740635197641292984734282932275543428620125952118536412879621650769516104302483481066639525306807975296652437835099523503323009787684391610375106158823614212627484520881763521259390767205022392668612432949935523421948800545571010216510140761814637840453967309645885440369211618988240243154492685715188451870430791286764347797524424125045625741541857125634085709775297310179261970632883244687095338169017613282264165922816855090114148729316536432966760553367452259980776086781735324586036465435157054038227659128040169369895455108941685167582340425654579156519132161069655254150927010419723585331569478017189048433281901813067326448172911988997002531469085045004428053281479021060875083763480897868897733328280738779518953884617250237377518694846885048532152388095083640289834125280304810346280477475602851081832741109920158311877385403446940564683362321893228637080258500572698103245288004637926607286097443800725154868331149736841383371802803246561109739058903784391833056794069196022229890102160089701922493333791757089643854174688898599608234437939655382824057994574765013929952269918067165794365692448182386424109170617212283170298323362262383208959191894212054119322559957124931084892822308805066371126519488968442527604986988670262608308299912195345130078372694890687655147667139072503584553972422419159098202211094885662184870929296935208656202657720834964019282771678126466315097661258799464508333325019838314454915172974878048279460961416271500412882806545550863226432663527714750199413859377821238085731724513013418439434281705781474669462715912751327246996233387475795155065831249622806522742709323029028708107016797089090842072025452672776214825793536219174279426162630773325743599527684464267657026330356666578369845602937652504722215917624189312559210513085952087925655170191542196481758809031989826500745252948746315809873905993162021206999778152849318554818105018279882724581136570212633558187218500096476905822087243151847317270480581832585207589026304742650018946900821769131425942696052232851639971350660125256182290542469248753070186020294572066702977899018660673357448471738643242734855731588022135621536478917837679314878306512908472372638613598936469582570118745414980637213038256160632205479930957199760794117699062835998667106492422093631587688716483254265206893446379496373180054348513154520026432007111755252858963304161044299659371935297852722763414858420509078223791647994096874972764658243716850893123485278925535171145387854112613153404336758013282102423815036446579932066274386007740881955478290377344960385786852985806888342182801460278078588457176388712664731988105289786556255172525423882874980667886989975175494970937652441755045423417037377255864409592224964065780953160295288259566080790948668432018729787239436663272899708920603590104626349732539502708635475061511122784688122807025764326588884442102655010861518047372093044189428192101755130001131226916676151383665850799733273909528156799902326085832874067991625305049920743294316979495878625904868161425902864768119603363435345227668255909336019000210335038575292325453721731525854210163178169653051569453967380762646768538646721813610669873937347444945736586150014639965471864040679838879029905571625324557527843624147770533887788745608113564184373278821372072933758071278593138373841657517770624858577701743337307439448228434656163206825522214494461907212074847075213527968433103383830361079390798688944619342785681737480960949491482412682556068721582273028514400381541999578072899785924603901271025684689416368557114928214197011914203280751107224691514655767656993975453072166657061227818682535442517878675778066352349219813092894932170712958475136896732767290072391208318979417504180250423558934333065915615187642084281397150154859633060888837995367199599482964887611954833465653949322312583584129328039587938559404000195907253282475991095330857845040875789046366987800310876305632626598346827082336620114521142527184229863944792536781652359204241749553357150878254264186894996674934829215879978540387451259503571835653141149260418193323513010329284950467453254297128697523557570073157506728119942764206467003588438373912938528858360702371515345329962799226196974079222224404043128938751371701942655850290075780517126302541179338157039479154874592574157913572753371285334785936844875020400087793835284131657516651983369796715824014622326909098892706482146746646246367669604551797484875187960293753291626677495113039397931483684885379918351953130937834169928919380450998696474034450948103750163850651984640988406063249352501326354977912074412700049424502301690645669567442763801041340704008945278780865731217159479858988201727106671212461665508584671144216777073283542827219575010790983202927915545175371656904923495641302714909798067842923667549675008609915949701767822932070702900813992449640255806740831681954470250332925617491472976724665067015547951147710918914258152257843296380020570614897114007990224576645230880267021948351723550027865700186119385220902731163975075691310368006796903384456895475514316275075928940186472695194389492107298958251143386623624499133466654250019732840036562553483273661879368460005463751259563258617023081656493146663686770648605358204280527736664493531424465407042962876321526979813183208758889556809667216403183173600670023040592851303293872126697555428853548917991573102744351723967438066662676125420872938425011420982288239517277464575946440529582956478946537198961986796380129700567982091252543175163408775324537063326823680826942729989299979421065452381369864563501869431409669566275325418429705586128746808230116945620553732927811722029740480383220947982230948606691018782348655417200491817067083747372958994056471737071567020948033603000374198593204360239277901731685855341365927374069628255921651297748271962294465174551569731519692565592721327980167467225005245112725871037524955551577453414585373958701119619833804184613885416202484975801542171014830468548072128125661547338867585609274744161356956107608394910495253506569235269212674217535956588003218780566608809743665393057144389359852175741129123176350045108177865346568404009880940502291225351467254420548307730877664392777303253945834674484945874905634077638483116077231536305690281644949112550368251595479798474240058582792939293757186465382794684454223659850531705763419973831564959128204544061086064406957724266968963263448939429789641942352719375576772905280456179449413724042196691166028837223622056809921583684395158594350285416321664558368790830530790405900566098771920730527377944728632408624709341234558784884451734749088316339392494436692330333820069252718785951210511911731296935913108843738679567969373735008669715208159876970346367856759759186682040575492920001783247684855689509357643752322977490178736417490361170089287291894740453581373281343986503641085325675838165521362365221058146162585927589343904346269166226040644925461410208949013616561949157281462321820113103391397317080955205452657467552696612522505821200320789708681483575446132847346777077794544110211970030398428113872940792101928216100734367004391525601759902181269602369976408330471189379565610999042743341805836795351628613499832064146390570413107743006439639090007871806694034195561292817878558569865041876014488964593370530894378884589025803585006521417351939742710728699059949347565648010452258266531315157676070702623072427583700445936124774319667367887390349413025518702167093184578968426364804514769845302527825116294337685250681643715303380767187985863739596327777752241137450086579383589952660375117514385574678595360063479281568882178385032051776097770640419520810239702806350875557651875057031325008000932646877051407827240853284905033352837307183747425450447125759354209203497332464184069238839069569572757317010349448736479218388580052702133018098733096314609777447356314617678872912404188483459541645930028103591038882624413762653883639620554441834937317021199116382573199314286374776090603996134377334754449791801827923218725706947280645333351636498347805414984803426584245403787338021611598275372552480679857808545545996352720636844930472895326569657547555063471249934644380491008132075113285579993142267800735093052570068358794748310893570007891207006264413926808359362300778068409012376872387003696587923323739215943137774121416108208490822603807475522102270959650230806705412375537341208025634157048282354256468336157584144062856353506544710940566078360930724946474253003661572100510784620651015500558607657000079834769501271497951019091980189714103401126120934736830651340354260252026473299683922832628713099932012643702306059106723554670516287401283657851094922396526037447754274619484189651404162292688272368757439509950211462149389618128960655701303550847661943829011083081120538153558227053337980830653650557451464289670827936980716331939250499868721862491846206420156938138569868064680004834920653274386578468090831246171637276994363299604988860234130974035548641136558214212472504384483735211749714914606959997283266679279442843531263472232173941411244432841635719659774094951853292651438696938684323391642596255031539924739099551559998697561114898368257203512621134643726468223598741192078128507047283929179422489618072658862306044136135955052399967601256210043544667346026508203297202292861284819440171071495560750064535373015380805003777191791242419023875729096501033629997883553660143540058324350431092937160294351038717721165750890053040828574086445843978898941377660240953369277464655184718541445296496458327908124477989364173408343735584548973440398271867904972962614266273725544538275342319797595018336482486835647539726461360499077711855869386268318795465461019310467856826269686160480080158775915516563560159354098640389911541325931722355118240132960487755453630057765659196329031160604928724524932741053757878486762370975430141060693633802168342810597623487273133503752180973378317505345213160350751207893026551946309020047088054193080321878860481142658093987903264407922019406289473764236186105839326238285048615717135890973525131836352352269877308283986062881431999071751639246257894433098451082622866134409656118837110655746763458651762596867582026086794788022194175914226497422412811530666584511517900815564344084710822264475358437917871493787878477459012092672604524711558612926623915581140135742630778813926884723432094944930080942271561133860973753693718864602767861319206123422619575240512054241350981106876973444742303872106390247923270153401479235367840355004709922156988969195177747768416255452611326862177380707420434091080870226257263280070030128094225657449603251635776729766388311520492546865118108278024141893662870899913965051215311579694650140806524461906012350317227204546250481423799851858197549169718285913047836406507093689209396980867934654930262699816024434435067961528104515812465099372851897493116873491447204314670501130990108107451830810982560521824141071615551043386501184978717927305374982009474436112729742416365690430062582302954898229190394640876064394019105378750128474605499739559318683783869309937997920317732561844538931008515694117841291743094474615062571629606014652367613648472157296847468239610603743342708966906377093542024201726087681741953429644244166235004708277212892377688462414492899915327176069580147484198844735376390279176581772592125740295587571102172622416539387057157874441941335161876465113238557136172559708308468071910746695591288065623185466458704862603811569217100770665276714114021027847081761254203670663923253266933918968309943096643365003714676836074293574980009672666224272911640500261806354522215292151769258907565131211152077504896924379079991523204082434230386783509058784395812741096948352777106644124032527525206604751811990542302944497284156902922985303402760028310233757483963399425670051508891127688827888225951430213487057360675964947509767561452362836125726472705245825476198361850907317743142465491118180197931712716456453360128491562451501659685250495187587729819190950173768992493646360730369287223951139706149245246202128206798596312348509160619676460934207946636501256599469710325492687593504710771173184962456463868011895886952249865784633256106979280368973222656369098888050753970814469203407727339574547153249071060911987326931816779061493208387983238209053825507478541283066822764768836012960878761255758101737501537285039620214584490229761815502226629982612297245757772388021198086950693234948306516085177220313924428575919627137683213184420046635770770813069398707089963259265623772730919323182991313489166156918450984720178405394355957567353790083703215269307172875221612419635287890683496280279124660842951294219118408159478801518171009089243181502436781101079014967329220599533339108601031513930886763735014038431873655597798888087411213262585000638961017253981331735531673418572806946191632356359343728113552183925064652687547116099448409959435560684054510911607542699084998820141278587644652110611577657255965689270592655732042548261272738745457849652915160357946979698090814450363364544394178885240391371430617097901918756205122152449580807865305353857043272690467143121972084958905174742793550321238983545238472067266647917588860542163873148902166144594143688614661334810209804254361075476806403717804816757096762129593030536829343908777920163775264971941138250701769879740352136968214709397714178636349004291527789387609776831224567444418428194185790872553993168519125126202633849930563057111478924548254540241810225166484217265097464945140228333547801340874193784638347245798073273766015252018563795052897292455142609759587321756974808694104973086694698162600662088113019652798641518037936324276854210241731100287565850714054954264264181102126545773166642144723562936729144387108716145463832226941116118482169994770188459406951384454653145569857723299421035181989344064311676395422845866468083890268667349148746637079890011138556237854077664208715451191775113767321163949742182731920471524254565407753449072497517935165115683871093088517356334973233242784600184312817102058104523805985805542684561702728276381337833906059538450361698400126319626697683859715064245117232127801671125592055820182529074461581356252038640213303460962141783924072966657281796238431945256405014467949465820521905294792079669625148277091327772214077099462290879666915262451762019759464187884900749386243790053957620775582180280605795235810394689914941830786110907630361138909155127199346897769383741560863077548476927755331326392646528109258419475012493902576858162033924677091889787066539869196902664776527419882833726323844246119538111490260320886963050329956562244113804861509242827415094761468895702510572864709989989521329345546264057322477406156882448072815649330207364599704671121026703924132837924237620372141794412317554334374218073167975720020918650765641964455615952556086499595297984090492591497263407437398986518206269716113637758976754429455366000651369776843353437572148896341928399229947401711850989802893410836875128081948188955760492067003126747831879781866175806252586417347452467503349303066055283463646088028770548659981456687928826133620569359285944066012037672473195099519443628701020438348802348667708960687950123968599963810129692456419307735808936826689466955861129361134231750853593963052440949840313353275818089998645240009704074619545077931847731946665502695816508340998487005058361143336487900017132810784380645394442460028599996577996858969344312313764744601857582895149631961353694191744247930858013829294752766284759138874867958536021825158803133804052571066864932162641174953496142546514664162845669054018993602338474835232003785915318031455738945334895175446844420366208496570841528109364607208585193695745831312564611041471987466484908955389394012076978333396162362237301680402505867111970539534187351067906903883400153903000401362770125767081764498555642273754084664665165694629302200411899837375752828299217638732112501046278837682115708380576591293590718861961801104050340524515313718518411141421389458216320189140188815418297856852694189381687293460303789675849189977664385780296493217647033247977717158389508407247145696717754235042665227308842868622649475704077468096999326461940547245376416943538037536328208502952390101455201577926615998163835181390918624317156487788681448122358275925627493635628866415309689345013721067946516959942699839527469913702281567053314969686356936847507570089946213334600306815318361403587929931883251567986934998887684174296501318572832828192848790177389381636421515927967649793909339744221536720389347252330357077844330692914889278503260988166763971951126372822926589736981176308763913410159385223780819116933289162381028597987562613902047743852204896201619971941704907645451377482780284315284408832655771678602063216745157955453660494154288130345856269327412061014422950008925566766153193026379442460256964766765247607340081467807581529974505874774047316047280760705373529521344467185637907692117141031742780600275355118216770644058410315965477691607744973036380311755961483332276806057830657428442358222096763146735976057039357550938557924317629214800913180374424600347604485683821452248591575794261539734151835727665948078189518049956470622641841142842377427066502194805248510586459691505478266338273702001587444749442560736423146183420555205501731766357998807416269578222146494577799274277611945912102843897993015100572075802380308163744308560606135594439265423894447645608941834729844865784878549752273026777549883184650543030900168238454830196706103927506564758688008248525285027976486097507538540555040888283509932382899750318039790434760608820789923721012933575341770516282338146685372142030684997480426189684466684717246717199062468486408739189293984438437501909877420173446098892223912545775584339057064758773029568830236292786890300973364971394200746516701465428684550522270731854211358912283383876067703699668670844892396382269891014168282493448418130818000442934441247597620716673061229598808240299957830697268697867605581565008491009916718917489867777445209606484575910772504386770999056659882509250034067216991611664620409128781774266400840059442500025770195450436648250570220042782297013714465451181517167353159993558062294728071834679198693314940217457282561726133427111569140798773952687376365497604982785687600352101495810457277010938143311986050191409317709680481179692522850484651031903828203997645056885737411872975691293320946502292047325432259457778322008268409994408171681987737994182338486451059782832233473846776803114728456872054261642437867111210425693448119327106777439019430036355131239159996577788654452332500791910153743176687730591367602656192966690804630908478102654703898214438288812150965748334573695300593169074200494087679178303853824883248359192799568811414357825231290024294854506933176022214046122338862796383877205312072773414224895476918382083091172887059719009243462886187989786816583602114795361328037900909404084097909964871560686302277885234301652651332249148136581029862928663066958372138904678461055751846480996032650853794352487427011747322784243349110631234574216889220665456880522564155821727017489199404802157111983143924913924839171670104286431815744057246889705226294880900985214881264730115528423304274021772575768213988135375188192127796593567517635620555484819776688327374496577404822428703536517568884911532100531519247374332856384253985429474397141146626977893649301013786037677897736417392566217305914182625181653999515218980668712872918754789529322033797560079348351885160928643137513879352258721298423522496797609743557029936936446268146292436033457951916831809102214994821120728167117698411500037634632632138899373644780009597501112407270964085033664166983739363780958508749000971798772784425493437566952569298573107888960662772638610680960578924266967468096479030640790356560855043794236093835333535233212105357708682152955014120697231359949729848440722785523362919184785918293026093795359799007970429672648618641133453885904288007768572400957653546683414955801077158193671030804022744186482820936545836751871152860450461278600943646308246165212503720794319677347732759182185564401697783774886113556133216778491926821508765981580223625074079666773941370921535747016730868077172315683891008549112315270629204094897921136400387762552468672312389048189908276576116783707557383362142786435949442208634293462908839830388741310250879097889110995467336084834524215812690739739697541987463488976791264134076567914126291602470260552834455456075660198214560591420623415247684441588690757798047574774052868697873956423449224783932052899711014712572933712159091777901989587119647729110307919724708715741266118289936110435668340752692455094461910704036237429323551682845178528561031208719971836451845331685376045234395139385127787769298780068656960668526361723916835599724244244154384626922809521263786248776044626095049087520538653669432974275328759654154114700617005602758076673760125239426428679125869701828810329832993416735601565006065299970982324342113210170892477044592400028389672968386851446119733254110752859767070391299635049308144045677486208635054616726182591451604834523813036078342166933153067861362919887127802221026358995389237541902275223666673316533551272286349283232265293644642305983161018500385208538011132143465915051058245197871838920236042608588288366172545256230119424034732923096125382114376820766041683162480946390853791845613450481757783299313790668609084084774808728989245953869063203717183989756004500457498067033850782669203956496815599545332872350388881394988961333113956514091716265041811123420425657390876757640312385271237768652937269794128254403040942223421733175104564617016679693309562583110389606471199970914899464209926333940484272130678476752686452634269016843350500716771268106337078148436530012363441907161220858554106884719980186224255848484297635280456289302757256659382295914273655422874374068391205642022535748174287736718700672945923222995556886060090164679721615963017860642189469021003681169854393206824814159651357901679058380069502426176405444211215461049569773874150878926680923983041543712659994890528266932324305563917247420809077590199839488615681375411710878273592713426059219017185806320009008132665834435748928295536532117272861691798341157571037537665557905681105696510510268988140743710715106303579902887156117774514433221147468314797886919352083537067809396928935748169270111452740450670747285966411134286566199439183980492010654319563081487613019744431512737593168475911041378857714670907748947982218952248983532869886208654906589480164677676464637205497761180892549988970583008312473487288079682574561003023859792247686436908282622005613972091465755094537632466700882526662403476106033749664490294136486000616395115104828055036798093683295812749771999721046591335909989296609988004140700600051266187046885960194316044208763553985293392473920323367733755941017453056527084478540087369504513867422085313960962184303748180141460599553510881031350647890575128903007831888961838450942768053435787327774702430533490099017606146527699807953254056753144367339177038555526268705828081587096277533481055938665657583620273564916769104966544651807746391123482955549473678867702577694616495628816804489342411570228187739225035832820171426078949670852460958513406566806890959907323682017233167940175422355620612778054266348833376545809503915570423987527547689089356380961981180301029782798988278398001865548118278778192011128717064200508007677498073036410881530734666386419413024921933838772009154711394815839929264395373466553681238426747518991539833117805996897513096252789984456331923508259554784446625676957339712637048608845020183645184460604003629776821745206605958895824392933538818839193081178598568451175005336561893651671508804739762754071241653451676614084774741249112725064942920727937434628498331171766501492726584566843153488060460973032253420423825086871175847172698733095669599142133756053027028767507380961181369029155044218344852206988471996598440121449541784682718352216750350535973859363653939378019011557718933575061331958935762045917663231998226083128011883044061082490131553281786028657689378164728716796266645955152488053042602540914460604732811150393230406741607841302091656377959980235158796824218967574298993955443013265595171003422732512204210968950901188015375525657620696233137053452705437879661237399490867411321928073814332176937815725235566848842478185756530417646689985532507483880659748259312926569230028466408053545811797839079298295449466936195477330197171059984835115288739158968840237875782695174054629003161447289016025945167548684032199591107818153477405900695787350591905892619620209596816844329515557815581781635494515956085429590473156718395512407685625848460676182475175017223364706915277177646993935089829853314086404358649222720004484618067549105450477353157923770755350495407582781602112541051451929123135405231668271776504226137192979273337338003712785872954094964468750496756305039002616782199537926721501625622845675155962935563241357715964823537612110609237940739103571813959851415926855942987365565230400749149333800355474065142018533272345902153509623424075584990437323352717913431527504697868489178584786648720901189851948462019375050512389801384719064247784911393267983150013130657254951543909589447207792242163090302168506131523628600444011884347930976756611932015842159388799251610991148216879995740650349964461072746997627327702385632420395413414125823448978810356587191029277790912594935062508823679057462634361351561545992355554173025760041072730258693501598927611495727190636261524976682838957781669676358066241363058712769269263351827886112353813189311531190631931594940967422582894050983345204027518675885462578314493630612601113390806063965286560063579588839001940911143120243406122095507683641070677241180982128276201601208334720420274847552004324615323941708929467525171919852797231887176222545047457488632787103908717701012390969608826235367475690015578973985075567057622854718479189065206521289769938560849820125590056960216940311157449298733340436506359408557348678366153111015577008929884657856664688122857493222572396751645202224269825811456727418679828892334893677605634033065337073107225308331433904587521732840853257683644775801546436124880701643404847882788835879942276635162096391510908941376263028754523171911709294599886306195257918027047556219252128157471200410388228518014045925415328524845815187019040026528570245572186643260530599325799616332617573305319869408033688092150196742440558482323475711953754301924218100909851259852149268115943757984343375114690119433310882724783596854580912890090021138839248212133288026840453138770758318252538044804799739418794819335749189682224120787221489763775920711220973291794726039323109646244912518860292581041266998787950805207151855234067714123278210508548827835409911929214805017817521561460003792099150544948883519649137422681565135909690183950039319931772380707654836117442453028578098656952366119764111938898535910805020370393088775112589854861013840922951211492173034713546732264588337703084362823497976373938080602266251630842484357046946587794867312155794310033343992534305330777327818490114436347723181063518357620334150028099208687986501831280924226891490727803919479244645593017955687091116820167909774146658238019517276875282382434519932434379042440411659483804178245147496383253548107228627676883631022135980264947920999281095850322358601183952907360815384192954108050594823737724391789893265806404292064272597981392033142658625035983562022097181996260039076266638189959721554351415064839859697358338716031075311775345765978963372499828766973714279186383671770830860296169048862411143269905825608060231647067288254794457174869437054651080658024709730871720033999235295959156079484367076324544505326223074611196914228917645452873392660779217809991714525710726023925651779068562352631067683728555076559692695462121592358172774142363152603299485374451569827230220980726764851675595529406765268517710895136640706338785228514730077490663067376898312948549668444030699555424655526657518566274174785394660405568912449895335096909946585394856328553455470698611740975177008838492541378652820000155742208406063636610499355122264108461281622206798816474675189469033979091657144266430574825562093058332601561613718755929780186123857045207114904209423560332642184110428406368954557190406108786838242841416992440204500724655159830543037509158744747686703483340227610637499659784135696578607872988938205086681976637992068317628713034111641209762718407746575804856176686070089207670136470340195440434449272577336070502528971476993673316106017346701326990540318633966133915440619609791849411352731188007376851295554428017086948947790771236960484072580701872466031585212843272718556375077551247005492846406276183167174592180120036686256675355951023351848584214292913842339402199738714892638844517003976684756346102567806923397067674952531462899703313951344480280468638493405118998501059385001254306506018027686257027316129170762012909017161731558168209941526653838829045463708336932591509224080879321342525326123018149470878363622101701156716685746024989837959234402292794116042334918925625219615823808090889987871309468520370693074823136667567646276961684307321442599846788706039450550726642996717182637082930353790258863992675602522430419253397594149867329719737955946048963952048016095069853216515326128125535160758829170659683033539990473432102459888275421044119969251105714354083073869694589493791346139558778676346273906976317457584782520159505602145312522350063272632161845460219781988398956341966239245357960682718564545699947148852751075388085625962617360202614604676391125707200978408174044812384576435700253101539495110944040414879792446569723706870995212409732938897204411844967468230412171084803707351337521801486211177652203656688757539963545957240211664226217943640343601775707367029122709980052992668841649441558621202442248249048551735093863307910845509314070545001419444326802568082807474343792487674922273974459655393329716095952622921830709731888010609857068934014710732281165483068628565210788176617986024846331515561467413953614140394390022222773300703388583543651381550804930429897373925063330248899681981593489921549761446219338545701638144119906167636791244586508878102904815484905623087716453285573736255563691983519532999233755350816100524250792770008665676973322644191547555849465479559187426447349462792974894729648348117391903873820131923618377746386847523654956787916256196792183776163470689498214650448331859063431284361118075937373636449933913211707190253608997386599500942694522703942411616522812736626576875192099543490822634278750757860219381408484872668314401182464937096287901829077336696107112749188793451463203842126718611025702143928234137318683424856728963685217617106390183030977319482332978339751326210014323440759169864670352442817499304773149239890601179801568053103157340535445101625666689399512510512282031924667420924912224881279289905225806947871568762229216741720743728502230844712307120273510869436964824797346150044858260013784154838173718744235697428142140493059661288595454571351988926817427456803430534045989272472873623826006143511322932536690735175846722753819533873201136685619438015526263440565078403684566683094000715206989308896061602976959112920182430625593155546139128350857520402033253834785387812996942901276922294661948086195126644082858718236269674022049777600530796630601487561172661968492296948143948326896911901058104480822026738888488847773643700407407443077997792636525157194715953446906525592502804256897091227801882109598226917115186661638304276296008121037300400718236620319409038929189618601918984257235211254810419827114624779327424012732620997016384174439989690895514473496091798994600310070261565435417589180420017538903099711575862786496375356028755583047633038966016599023184981428589164090836702710663662781029953938575382492944454808118718881302732330047261644090700343905209529335621939363457898691733686844808072948331076461169230311010914934615786748486638792093931118351955912029719394815876325515267223348997636864955005676362911612087751636400595690601292803528519474745439140763235261910540293580275898201509829510180994986538410340374640627306294887118888787688410277618125185180195965189356198597338686189762989511288997929210920350305068379028348485171803233331511068704384772674448008483059992814725884328339942869640879299478133930002885903663707491709407747501101388088029922270418263501696930134561409998548596151609729746912172249299740520941593956661620939757835241697694943784394296807526363234089572875133730423953908237229883944500191450966702177611125969605002673398185004551177866818772127552685442081325600539347593511747215739188422393577114550533733648019433911366250888889554641530001604885017048754921772836899680768945050395051719050940768741845588395881397302039480632542821100055308930919795083751479437026841893845187362576829315622707518653517156973518062462499185945257118964803556324004351028354559035619931773645526839540203514597886680599578879119914954467622121002545581123418701272881050173817521726887694452304304343622470047555568451485058176861093468883783159279239565357900537717715719740863026746220330182264077082942012607731557155100617065316476156017130966753683216756855731590283342713327204754866659401407490817986119405569691022833984369567967632371160193565706109206782850699814867187850091231574013895363708820452389594895414499895690322844074116419804271692267537309733005544139604967567881672317814383649219024906531015541113140509485469336564767160554209110612389188961215154250558844223912094932860206778025570945690640526712451401915073661704209449940451125793043622158115854596000798585122436121574236005572795982866733308126984539080301319184360326673502073715523883801149021734583428750793190333080732768446006442748925404451529896170830947289604100158728391989200544490335438076290264161710165839609436481408935587813275151544849789966789651975593171572264110546998080449048702781307017691531601719582416917565206912140296859030117481339307537404378014284267061377475827495279925862724156006800869538553521989755894115566403023502003536076622830810274791433652810790026785376684325398727876038824779654342690610625458316495342285201080210365353821090332571570761488422137289808210808787090132464865822284496183713785802815085272109350936879362966179091132732440480704623020568867469807614512657869849878404252396564957992413809585341510881425614261814029182407313551529425778996372505139978341650660418755664998132325057411828322603997754807859834315887525333197107382464405791920052208334763018024476832829223517850492803999981687908935939967979773364539997040426947911140977347849599055114579746752487932167928928284564012585273490794790392881482739964214241744679412220304862696955982155200903864695898105268635754000325346455450099171234052430022145959360328904789111222613285364146339346634806494833766662193581499090016044345481334945116498073938198175982468043248024907266431200100302793296441263908467777921229196214636513477311576828939515091341092595794833626699070866267133497111954998106089398697919399390014633002817290833466827827543190927505445276477473297581223835544323227615608154620529095820730597771682719826009724685631299993029137413180946620372368505832757217846588289845358243160053743529244429015072375384988893610957318979359526831003044152375521315971296758031482062184525421092483308597685052772528868243538584637392727256238369300623266990258169076315883996743618289384956708026267449858953260088807406126343313609117731182735099234864878230152357425533217885956169770877336915306356676594361435666137520934326507118598665480176530495113251088996088689653852362094000389190003787629689392074391717500810444168300355535475084267042753003770113223450215677771733228899844362979992103068930860380036103449209259286644329289228349097347328471306596167426385801128427186309373627583946352853259550034616261667277741991047391928179562388897711124925738616554397146781255428643469534149499264131953521082275981692448857070147604625177272192353036646993632525960840033417047733407419928538620928951578780954625920571475229784450850013544715565932727572391389595176077166993741481400643777062382447116519363421386938502915828518992761117566709414679274212003993769167613851440170103300715474376559522147981843985409776845881580847912155123552400705221328562861065233603802651858135327859362600681742755684148976524761628490866043861874251525018938078850077054740834757408142477013137495777170692234048476119064312800224333016812571895964667533795906427718600962391070139421846315956044949801335483688036306527688335378948966007420648313374905776901821127705337104881579256583374303503941585535765352230048026927131329727377193320896704436877664101905387331153469634283851371692866987079612118202627508197869126911490203630605602479784852090062824755736841901605755297705331445107409772695864273518117355404738019783830459703113252892636976713145164671060828680312346750133980153267248644173719058287607936301223708400217793647931983270495303104600340637730096730581694246989846392461718454809081296751006843390571180290576921874593754822537170443105489811974742646923023026328958471426916317217803710402319934896937107406796406814155329123137631315740890446097557361983851893427623760211022207549871365136955477041534862881909443021337781650962661661198976136048624388471683173943765982472701534452469098014534077100975174713948535884381950321494798762104652586394915423487800373038936788487391748974482460085009130294247480326956055114519898935678242505740090873798912459414815652169211987682048669594866682672442550340967328280023070246324503880689602446500014403923230228751170343239705205569776563032210168049205459878827434730881768254068705880847747461586885665900763642435721764771455597786551486113529263925010367369570411829433809237598018345087397274452671103366241080795617131108200083770209821561666379847529734370496476360532708872155856793620634330174640308305179921563202083695099323087059628044240696619023021738870207288108308259436294667224504114742064385832893352239810243821825353645880590013437421455637934415217635799241496084945927245313099033578581972301601449043196886031572012362452846913928441986998580490158254657494056006219734998581571968296227884841550479018495046915131593403431773546831947698315911541483708209414721498122879369101739739781258790105997253240586787679006601107529333318157953889962188196264070108730989777720743298802548383634348697881690354579734915731633868790184363573816173717249543824846352964705016372455947382650539598562494973645279670862576755629637271097114529323177356665620796869686916665556725453455691627863799346865088466958074863166640556013638578685984330483191811176142703361185312407819364241472016937662256286501938353985581681538779816212380996289024403654097283065168083690932482144716707929681351345360863745089340110432079834638429363417839309452157520898506405745756745746964823030324595636412760300017389578039922439287732070643444432978290849469947982365104906735263494733246251637354834894307988841858147976120295881485973762250203368597947797748182745285048308641262272373437073150073297664179522203069254698332689683742104260122672618246604830158577721458612015154657895897119732956386467990942167970378022556483852049492829205632575549609983326675591734709384140384913972045015051784234918006178095882555369474473108051216728206259032654503839010000654234897055281948514580985841332842324425290597986688175555189682777345045196940453400115310654524341015875468925801683040153550105365513800656754910321154586681744702777854314911675788760727435705466422414579553731569128550010394003771912858150513730252530197106943968680042645384981052587984775730501153376635327721931386326633806833919284874887055088858900635977934904719853617125395298799759855331448518532127468323987215307628110708384478445492499733429672339485300365945909596990585124585123431148737828850380219148489212716554879890501858508221780713891157895552406411027112083667156147505824769298247749591670749243272688066069259066074494765660808398568960534758872416541971236291681913424741733273456739232500726653936374918885455587286712798864485172913513564723538075496946102488574242239729346055419626199444729003750359983314438062394166798811472302948403029656615277116536266956187023105707748585491049172447966442629925268396684315069227913853109709676450771298727293209477457258774666434250435476965433686942914763307958512730144402738697611400716401243584519947465737211899847329830868352506081344482824825634029202439211272178992185319900114462770430282240794320469463247497397483227792682022798658484611907196833151668786774061488143913273049301485317066224773221987416039330194016873214241088331888259101200814492412676525029336917924691598795754115632081920305259483105743478614887124233544270522289694969665963557397834250721514691930960267683497340624804625468000745512707577696105347317432880044538705849107477397747647624206844759792225251258125816334978948309966688765473988545272345516340305137092538271255261761810824554489972175513402422683438080022804881738039367399045608016079528981842945410010546665052228311591251068364654499368809672025039155366023329820190981749989282092056769162089685091511433907219070194463949473520397218972732469409269879194008825449155800400411665504585954348885294595042015603489377725723845286709593951934099895849559001867489230576273196317302400814569341236042002269670707880774768872311108647994363321805956990053176179629315822215549909690170311460872971561070315678665376546148629990215178803434125072031368432139540616556466426954829528597587597253453448535920777150423144235134687118241174673507282392301517494126033298432923118455793343712462717729485987328263687909351499710914022899659942834480551172629413246182025111413069816490633792825538027212864804047420670481806404004019038663033504582583220975172450845468857390229002672283120796701012880144268808912496452381036023611825309308552985198728439695064109201504904160626860141282414009021512102900337055471040427205934241227841164392255409287257036120624113451446693561280625870229443254398967273283780431392833292153242638371258580696289232903609869678937705885629745026683420079422017495990116578345602048836702345563020112642000629233483048985764977906970429703116025261411747968779158032823512874558072828263750912818755067917122882416616786948928939975462742196667699449582346240883089859632227854913652684141129757155722248635568179986120102153754348611912228464397151879059876808519033420097461550343053086307216917679222520263635484621919021029523347348957222947714982703439466677922235379514427784387029929683641600846347758934854777472810565038031003153977540986635981796270958400472821358034232045043637013539680928440471800621975083164286915954941093612912509462062406837346421015368571822141150227282442279459220749454506971236480329744159274467486399981924553731071881440076590020655156787928516328328036194337196198159009870496104460184569692035562894581592812412190632206279167755612711607740077705222287367267282521067556800236544624974872234877754942805027478867718671329006353061698501185016356419409919518827439883449984478874371036877748268785646902820963286761205005803802252500934255308148548508074244992592035959734910988841723796622047179029765384564546492069731077277476132519953948570907997418891293505872619466176060817531678406995746798904579985380872317934049962510160059583422834891945897398269982876852464200510730760362687838306514607411322427096134307972003955080749191464919321306783689472617495239447822413236202969237630976242836198738939768877305342022312189772891073204545915256295320743255844235780654841485026807084801876573250588351862520520253711411281760458225140774248941818011449060094650260642015183393701942250686030090158981110643427714852935464365543669194915967688976650472899135292039161155402389868257134651963382981082793127486938879888953156211069789896789242025749845588981648271676211108383797525704716043395903433017240312888833547019193499427227206261664711667498873185292794102762238030963882844345515755958587683329113203814588747720782836877176021577994441263064088004693151675469269585145166055004344805124183365990731078292468175093458871972338840005874409231002489527371320350966811058046816931997147034775037769215976317779115514811766549265584732249991544007525104769034066178567065414389112630293595839833691104077233482402759841898218449060504233587504247449442308578846566134898890139712726156673404109819468398692007505393038153200574122105260347770217614491443242695053803010898620556379785138543063985257304427839763760341695462253668445154096372062519826411519756566311749846462946440977534322886630649606746534852702458366214769024655780135079384424280576763651716068210379132405472470594320659653367631059982834558505736317145138346858454462822982913851767968999329266540783444822692089314873268575506282467342097905231788488626327789429159922665969621550920586951064797764758860640535483684146750522825381362423983512285256718873110587748312667174330293599214564794362560556081479036838236589914382881123996953669529865205892772024524692653247234718917418691718151463422277588614540813596799521732071602097875536334953801634298327923732343810756872154955848067989781748915938155556357025983766235242204334882149633425663718148474455953475286598652574308702462393355082180940116462869738390693492185991197827211829512097516705979656131647295201754965228243543964766467661383026853260629782451999743655781178118080578002020093394376151966076329350794577295913668823262353689875967681680599997832177049440459003004635945701025906001955801823368804034583012951669755369265857053817713407966329395763176504828410353319455359818435955720551163378231664190848810865811092950552265234850316647437184756794397986273454570172176790040718599201391374768266041483671243184423189178713709632698012718724010023635558956232689321318155151742811999860516140510034218241977657272648233275748113312501994268912041242403266523876471152541029335591364804159304396644035175722563345427222561612675000812930624803371289357271622776199105581158781348714954357328824489658359191176400801474420342971143680328660770838110297407047042557875900599755633748299877657728848176897899589364747280229995151020637329760539603303950798741895713506479519240948858879390347369401286712578287455570384704354845492407817185392771710228978280515295277994882660800334666170797491770784472104614986486038833084451746141380822198143073704965280760708828035480969736864695773622724751541204368310520439188840248367448010439630697382729117534701774423460753355184112818749344093897090845899308879710036898821332792359228274395693585849547362401301236470129272424342219816407546691616664350045865542242676488093591978616957879945699941255982133589342576533329507823032816008630725020871704518900612579982625743118955674306517462730309597177702009844497847531650916615336017610750232527572128551142056545714862058480036813925424167343256636117425982168150565271113966483200855048568488512865995177243338804177253740024618041699857809153524223697121561794586959484685764271999817257742218947480925030946438648578643223497778099273828512106942045655402045482287554216603025709725845625156403776106327477486173668296691006109960842086102796149521167451308788172104836053279652614332308587141671588368519528211999953082483280839569603815077123590883953624824844127118193338005883415976253484686900795623219215417259700949483153442780704621036696824767535071351189791222786585473991610046129303340846738998288537616702886073444423911640713503276227543034308021580079324968414381481899702413378277876239002369876022454868731684984619271102821910692422561188706873575891645661431835298263450867615106968610283604686094446285716259019029982400063504862052274841588489287108826047571908997994464539524911702894690846495204769269667584854278909140479170811599797482072108251139273697511727245789597820403434619408646076366313252034337016706139102644892682139762619507556634727770860324246499228101680571961729152991068784835631762790677790443184416516475595447438714148005238068868409606775302695075457827447943723254600013461178004347461569222179893449254013642193838011437835098797189073978520394298398540481712071718746593634442326477124432104645807924899244196102407362482738227175780327987048207066911895211291760664850751477937907325634914913728426945716347665233884042956557952296124522525458544139698346091402025804164885678788491506522876332854920365765632634014912071910480571610081290142918104531063149370542984468281496723497986963244215928307708577453444836054305610639682064908200188401728233958626851868950708589904141867905118611862766803352858621535708686846609132723469441469092006795272753745101002125249320310048056736087516994694186675162675275173393735806662574981443199013939625864155425764646141964956620494419621985152684237285708871057632858194019576546122721684325271770850052040919085227138443781514111635756822810507061910155254724175761961817708437255431255053075871839727371889516338684120497911148867344180699373896847739054104703855830241845874915716592922242726012865516435996502776067936312224230952913862954691772488026848849845682882692338460736318095136360987009074746003462047932401166025491107272506235239888985759992915348946204063100858676610928794851914722623515151995843491461975132946079344328614800853077004753801592133533976982535245718448368623293236295510347794500290053091963765062842292348214836142987243845454316412098404437519454081857520816835753252278548125556378856887529439826207724729113367617831152816142396909988793677070905646120852135516729537783437351833702293630963277387539057422742164529813452801262877843908351109571670882455320917725986292291777528418809853611247566099219014993950752456294315221178037429225271310061977961186526819279158590557139185498053918098108246124123991831629400764872152210935593835683162073890976030198013922489380742549074547301214964354129520713805077664083152682399095625979623391981421388721920835335321482937545124935643639813030452153971515328971155549768780750355732327568532004244863598457420298487373403279219256502893033772639143089870621751269660740690902399340266406025749508774844304303919262572088222705851246544357162660683604488235698055130797719301941308923759736504739855546005800215867647940895207038053986680968147492000731125040061112572895858517899114769312485634504006575763325898456798778628938176870734052455584523269629909031764952214701956607390013641830471260731876141637456453845811007810454061462201667452466452549219095613780017005701763068336307562307002793411861326059755050467203908585348489370817753835772837971113589727056654758200771973876600504506210727366139138705629011268270775902136732364177046852990360593723213895226927084332196439947906395679859540285883940479075192563428831341344678323895591032113920748816955962309471662719069220427907531795002858139240823102897548867422009964673600558551812021791727097767222227929513819369843089405513051878451667926134586213021093755150215239000232045880197181542319746649333839725750243455761886053229705954676142379939891048476412511117087670367001133616362541074093288775430425104201864765001019439750714365077378518349253935324916339142936337944580705271503970930930069819093234215079829044131766475618056036105852074350338720907188092711908146630540099008495843917338392975575398563127709309022092920057226619273650166612585429208327403089412245721034639010766677822862972201834261051218432304385188123901625171834132557093361852230329223354979970312287800465215946005715254251113988900316709717989539329669960915845590344217145604955536579783796214216139951206158940299798344558240915962936402493684719574867556310433615062640221316588419790129537327485359654416377015556380343718197209053014054814469385542050209269731720937765721205345718858811705508281076790627124217316470670505166084127420593557009468171767120423029057877687148478024638620344160037844163407035495316329489111348505026169786598429445741278713814274067086242653120998692817703858580216464755072143137099927883437136704844475262824497980153776949395215760783021137747338914534768588736565232239266192653256969768358851836010634209724260911413381864690760749235944257477839018571807034714004354272644870240386083893442608546634925151007216334716167502733957973429779297135141520178977913626248867267320679186164336526379617670575315718605580436590797475354918901796222359503485030412203942140113773778176655914563525552996677930716576494639624897842889058846479709514488947206317197810558956543047656075785011023527205111745030913682086517694350681567255663435525054444328250674651419540207081093169302015636277565857649284167197400778664549018206825804418870950908470572572445958104198076791032615131551250296391587945460632287574298129674940696769854554686293137641975968507351900146503242843614514158617572501035542881506336516464627866875323296116703251240003573420316349373988258858088228193828465516635816243012009794055331767735852081520265437454961592283459619631958496514972769230322448644566073556247344958642331054164916730555738249734097566568802456819599328602102244841625918197819262437910131446157613524275181353245389242256997472757864704840020200531154726737774178021177042400612051206821019665981008677251315245090103887385932195699534064886773109484512761616153235184747063719698943554395946805723031733393277505165061405732613207722714648221124325369049183837501050348154467769596787508595601677431763942670352886145520573871331936481008170399651988779919870863654958468183961422540769606996598284994991527169044656296051798064711917147427991640508764450608101660813973886708192661107797108033558489648325948524254038765965623838595802799505510033284148348030524432958262621191864271759083043139542945895706713118541103758895399104629622045945776465703036117123618804967861938666562894485365817790490083530280963490163476430293596343614469957746170354584649936662436206637827006738039275773175163132000044918422151573364894931167793552163574075953248381458495120235503625000244396983046504805545439615879513673915833214026409686929502751800738393247345006958831368191487813667927962022316867620147584501389288323912332613775893389310297616164236195386446888704726861535177816899770977291386100981632901389245988413395471255199776548377371755747240523086610499781952465498482961829832981815135653346888144359152355318710836128750828363076612990368587125370133004960726003536203953361320185069524990858545312865365358978730259371383288752471247603408491707606156614516516389314324202641887048876518913389104297618762541851643572197756979595009708175857558789753078347325863273433896035214165173343132408580463225311540279230684166579700656703507981630119996554607675079916305995384989409748789016894368706691745430147955082528229247964682996369123828906333541812900033345326519388060917003937648622740097795790280503223414585816794125759879476324608655920812397476782484520833562406579561835522208245448884295473916511007912999914512900252546732283439589675748735982225365916003065426175021679849346899319166400372273839181961440969234996745097400626079907003683238739027912181402081055205992059436929146471114361647890460840295376095464946996258243015283149301523287605452656422819646233262983086024491520857033308511434554903720914418491492435401471350493517066655244056268749599872536961280155540224545675210071675918633170793663592953357763854578788503367963465785561575328240515567515068837306529283918198970036273558337143426423227195728718353585767999274588874836396344961213826564908547052992425918682786954283600297839548934414932308424833981278406963907712691014270084295504192911004824701288479353090860675475770621972314692093494959090404125760562070211592467988472813215644945073704920972340975921193067884291753773269631420930080970095877566486043804261606854203419499124081865618153138803648673140064533904549026463345684852613140388422817080843817972239633861636558227936785883098853640081478300688386013504385169084006891232786033023844361810474440051235817520079998656331575925202019125084555167716000960635294187359545224257130523479627989412837428195873793975369701762123788710722460552645112880447889418403892420732063040033062340322388705881107737766889744758055898224330254679930235325789331302802587314228428035212060857930137092039614566249501587263692639967041664527726245154025718579940311430352143342641558607941625954607053979464815256929717042866196270139450606651550045952809611244139457137815015817858834452023875819523214925555570312588813189192178888191082252585424551169703217558836120376997346199409712564368744092163241658099892678910057433459892563689859912512767047766396281273649258598767040174618431603163311564751918816965766015899824665727428442909014523513602807358477072976065526675417732336100530652479175117766748217891095806942925268802877957210691209721620262834333017548914298876819581515501604900455419581769855191827394378746983656652934142554192635936018568964662146096977082006317871283783217391036972849174461136829416150750812932098019533466041083798995285222062540952955240367405010058247245958889430656191060356153628597994171621338373118985208259878062600230095663278227294062903832307843215019244726269204927129152040597275798020755544558980749325119079546924458256153616932845256722773280665817855389005773130779491260153328438455083081393947067413797247702015487873741917196500567447997530800563997522964979018524993789753102238843311778936754714278383233436631823922249589100540615675399392887717193260318210139406124708012136294314467837817543585790392609360990796431659151629307502912698162567058024888170860856940387924989495891530262634996236638118044015945819313839223249087889031645004386257610923248939155057661162709666609118869775845206840183704119045975144486283655748418335498808997658817505727707046568087203515783818739111144926106316081353714998925086118409166312017546111772745996360768858538906233868064640543676769486817090017740641674436685133927982331609399665509215589823012488594632517750188204194300765472367247323925716254985896197738098090474949483929112827740525475749205088798208857289835185724537096610679291807362776694362681911797108353199795686430556833065300020518446551831577338483053304494089581758772554787257443449055388744016428727103056883685615821442079675082344805919137331920175496847720840960704432639167580399811207032204764928383391504472991598283317928219465285647290891492920073599445679395154789783200181464956569468792888267884677676330039099523938600015919735897594883109997348880139412902878948014161546198151707474551930473475917033957585380504969635950440443994242787902786225462421055159640258355525428652118482980874362564182106366222422251449548912107056792722962288032370955686732562920389925026666161307485191235320435348281627207152756757894629219330551654549455211002191174129322169347421324074307722316962913906973570631206201012424687034529754279157391579914074974502703640435075721774742478795300471271472711798726149886600422052351973890159746954701182151227738498079995140785317733979423629663252091491333233219959300859829969457620658529045426759938495834060482154609124361540271180280694519665394522403541545574140084610343563176377913679999126100604970473493770475397174244339620158779382406077543786350909070200209813630124179855226719003708438139385676249629287368513808257438637010758928141159754825420341883882193606468269446626034421254287841496536125773598890469339416894557074994037586597392938339985545177084666315981415092240222655062549003889315515532301131822217580533526543543667240498771665620976726337836358738999119126147689437706673496730785970841974554810627069084138637329641732326260152580627872835630287701288628843541013108692081871950414232399061196389954256834977425691395917305967541538062529211142542560673730418210582343864638406976262196471546756424715052877831054512215907667719529361769231398154181647684983302862349889607408527101289516909000564113879819069268716447155250499377631637558359826974657148784592609315679270844147635721579145605692789468570685028873777872951271785968654073048339084016301876721491245708601572642178147485694219708134110321799967165363521070983808026305485777109042527541239862942394909972057478854851661730622750851020139884066037522956971258054295051564556011317638604087599394208046107433350575032199615231847037199320121260003298653938876888396910971521350946482702914359890230527652787044310074355090381017848421703280732592882095968502308389623666961242530343475186420378519516963612775431291737577628128151386525601025221151384172688700260969932914138930812796198444351481282445725428895493058506975719807735428876370865705530143072180982026687684032873902294381307649221254710140503894017464870222987387251526923137123544340061447569166544402386312077720080385176550222685525841870294743250997622922774334517109792404393579160537525561201135669348554468506297102944405572142090637189521606390740547115337617185464591593525265856483309650661105744598032202576185330115945052122430545661473407322928064011381219642664986217756712500149144595751414423032794313832163132259381706498126359631412256116601285376810932433434697539240206654899495348508443021503790012174438004613656441835642851561660392817499120889915691927342276901230888767517026252433223060089163071883449828264559041402763061589455345983608699908002466476800971142893918744696215172066406736956586578739149018305734250637807068858081096082640402846144526178498618403496743843758714136772169552919232043649427806183916061725714188918233707106610463306996488265708872405867791259263386395688573818979578440956447365720680095688177933728947648446686801852457369293830755584135986204344006672616699403534109469040255230213778191963510738072776416930756997381039084465056797741461954448522654115546705018098397508616308206197025305893763084263198185896279368209567915083431882775229995119822291431847528449302968686829939156051718205613143387714050773306780145045098119078516800568268893075602645882360410088428595897466266127730009674066027086533919570462560642814259185413693576088797955599875039431410701013056747010987575870715405200297144306030009164982254665156364847961231866619664008414206882947271461296123455810081534353646143540402220455132376993949498873848268556742593672645913418049161232556311726658854070745500353236831024392477438201391930579326032198659625509023641545212083969610887064612542457564801594173457410968211354876837597892945042124596646472832628486097577431822535843474106925075714123561569126969563526932086300690174072602132844798088568363985065650515889620569394588476694268957184013764170903513735004725112613136269305579867869051578968391607024964377602293938652535933973560401585977508022652842961221921472555427641419480283687869825905671099021715601523104703726244123988186569305825900431416685761198554964184719887923712186065524517831725464095667814732518934213693357643849499343810725973881418805479492717651350357160186089263635526522321979989573989190534466217911649545348244847894737702128253527281299364580089931163904310205235844781297355505266007226935957928471888258776996667909104749138338460961792519755128810063736207944211744800657520619675367088788416591279628211371725264637047107066823631038699060178060403826920168739713867905393161328850965655778301301783980311710634528572917480322380626535254958959709144311098724990469628208112054592457976816072955934158147780723319983738360032969986683865085322411125016959553139969706062737602404071198195208402451179677556809212814649177416728863283593136258573121911754352277811778725495816112471721611746837768464412570828840496532424444634261820299569568350922465769525178086141926072428599734952104207382517578671046995643316880383279426832986366440081364126627730651333784271505608776258936743994455087958512424279954271528043006851248659833305947355712065458300641588108737735179335549109610717589295895028314559449728498841064869134221790661943716015152394629743393652178885579922519424282617852360402673876430067558478173585913231656086944721868387800258776219450247159943063464740058317825900272969053646293015147368993712232210273836585482966218584582769245780025582593578164222676056013373431441864563953543102315643520327941837684261399281161250724799147279897655493878999397662843072715259408513391334380109104086942532579642740086419540007251828165563603444930652828205173821055426737605660492015423942600636471371504161148148579720239511800218748305874480828815837904457325602273791550989753621153994404919401907274294160150428396217363027524130860794269592303257494006116165746993719906641673588154173009909334420463705096514781601983532726116105475582691842160497068587891181096934733455881742653375265124189409445374560701721575662356313811789608422681564394199440980845202438469206590444419722100318432084939861151119921150310383367141024201221717837328487380075192567168849829826873417087806430277952575521135791868612372404901979900087333492029220069813631449609680767523643158991070160073739126099465795113180292101515117586072540125707315503724178407888630440055946030681477796577814816161444714735515127329473832154148973768398842819542577383496301092545282725223663916308330471336533549193978378593302549141737648594814450563182528367560573989106662860701888024894909287917821704064097676545372382315773343890693768563446750259501356820275480652768546540839683739047425212501845105488228195903036409173730788032782564988507545355147892680768266657279059885078547664020363068754714576520959784870153680781580595918418572008097997031387307500242322280246610597384414835802792491174994839836511552428380436051127225129693560929430649452891693617365103050359518165867202292313003070670861704342298318708343407004784894040523057511953625202265745428773309940052259126410312909751774393515400258117618409708276185019012538086046224020910159371060384868471262778493031948914374968949539499558312979474152699160229086127682594751163428991391682349327061710551755157292903795204463592807643815994818843066639751156482408103807123265263582465900660853949004107836528308629546644586949568528407855860572362804710027830042187797467613852708698714863369500776322225517442637437259978482273810193721229000428364617130403277518338931282974367739751102097041039971387987688275482767678901676367226512430502185735225237981411588426519217315001923328675783800317808680019547898715368148883264288414732457063527097909192489380108509059950875341380723353790531375194339486577151989527836625940567159144871063561156784130240874544981715861697470083469437422085210861815135579733770326503019656426755373605127333302978512200995426611779773381807174922940568450123435048539953144810931995606055282056147877823505087891164814235187036672177330586753130562218044939140133007575504288368495287359253439544552934711830584793849563442649706780531282564425533031339431970302713925029537346878685158892645749966262866448459546069926008872775078400469050014412155007505661036302145849799050131430221234687269345307409712419186605371938451344136974921192337957350331986955499260777460259620000939781845715617361768949392071587082244255794260812189892345839136882762334610517955282055021594701077433717146952497805045313478320234777492599470562136123259413111272801187536413847165222983197933186370072048196489597756857174755311186617864033302600244245273876147923923255503650717771530566259373274115053506038099019683863817799194530671923067719732280219401958445333702007394621987221890268119841236052765667208493855457983642015046052898535828105019901117074567593558786507497364635254610805282174546203559219340379538471610383842919563309378635003326210142699275869730393879646609952919752130113907397404503032350550261880048035919976676323824110546268555054938612204917303617449944594350050799466694394241249564964318180730746484414699713937319540649510037521164366612307299251714671602083408838101785809870286742645799728727243636501666204026227221475775401847319040303917350597346394177100511605949146619531091059482245607951908436772669251234877652322675437222121761941820912311610850389792047161053674212829976583094951483635351633970318433977767501775018900635307058368915261151700438700922147573710870228986743187401165689067956943185264080558879946504134485662206447523971246951756850972858394006061897989954927061063353086643183104326316764249037693698823494637973586598897950126279012110060382671340646300803262292826908070862501155639597105660923322415371580623276767992785909279135926624024746892093273147027812705775810584385697192653784005696825797722336489135342350539571703885939017453092486268665427697560799975387755037461878108679190651447015579709005534414676239098578447177777756489518781663696789585735989633804843108469411231341183284624723739649203361773205100001551844073785118077595509434424087438606263596453437560601426107254465501347204446215088213217358548638270603868849621281812709447344240084866084053538979859355867546322901836654257710413927368691384517305078359402001779934493470185193037541314229909305100429184014738968454989463924176632508378872083653392424558691048642431205604214488508383529035223355393151669100167715177531818222830153262222469126086926206195429905118155503316547180695414029013166784856657828283189531495771490076452665340636490531262203732031389352834356619683625406350259141041739065764855681108409070399171622958754030868688886218302677126618175586208157480785806400875955858874248482192407709791966279090389762129785511435490931349497308049545528449374038307929686039283861244395420067608219767114980461758931945645205497808434728463695105411020400128756638194455175655917181957071089349983850186706527192687159015128622172287362526530570421641686385551736382241804766375168839850519487735420711797325507927941211201731261929551991282744587030927410698522494412122239591809230557256769496932916021491203418195820806102793845202824691712276315092408477664175233862656128725218792436495746371137061850298511225979739327083268907257778048433548737505441675119108784867299484575105527425351236871014969380156189903422103883789361092055005097129069200808787957730692501209234378271381208041289626290316378870771130397854610303489062008376113121254570495264287240168135059820669047028829922340631875168155043534904320117972453184632929364936606567220095608768020157738274070623580459654822580518295972231254999287654346801844327098979371860909258387317319483681825290501802553768836499422816916885402189821465178251139985623375694155944369029587627154002680572896257158431644991175660940254064846278799878177071662163498896119901225932548030490659912789531353662242620277842463920344887989967464507361638699916691047553734476517628399616353537490174326204455688165647940559772904711977076052695044640217406735388591343649234877823228896920032822770993867530138969989504917992134320073086670947166515506108630332275251874194679653038042799231050180987249131388600021437300665281167594274972200906364659012208444380649118518417025066163290796568121482044566941979599747722968656198901971215464175506683319201497816016307522606916018653477705747064814117591410587461894772179024642917140506390782086772194450567078369253272837566165509345730672204179932300146038256718090777033168221642846065449891378401065273783639037850776923426730102466843465508387892628926217435114586348993969176099692602537957231386003491188205268259726769552601744349916250314545033645005600546752787663983564833451287148552299336242643213833705791587421232494962259182884493543766732104875505007514920818349468419324808043447562989097726013658690955131352001338522683874994021543332564954195404784042282754474494391121880567579375442952287793591381678772891815382903512261693700183961987847032883207616320971733341404731850036015423765637373022138269808751160091078867407106882263200052515017652471838621522399955418168002599466492951063942023920345130014137458695822758769609952938544733603486167254196027644474570661864874071429448308098762771633070111235935749108691443364058578453641747624148171931782341080945633614836851306034695390048409242293274910454657161048916299942574690367997335463105922388986382326689976192840952138675921190302877525629450229007939893330069506073008431934213160660714694437548524846607999716523280847539809593160350825925022221741260797813965835847435945315190681317459329268781684773075952974993826550821707302982612699931364725403767243307727019078477037698455261133767843460638836616370494899642260016728131178000307636573345615379428218992422203467993335892478271464143085912971439565864955511871031692660724247034431333645634406265941985998072650753004379935392638280604332244967298525805073725845691677106391231233316098136808774265704300141633088389394100454809032655107434885439710654211297891978569373528906514493562788920372897078194850124243310245920256845990690810131222194340546059941492623300723949034607022501221717379659053881951956209253224347379176242434332124801067200256830207366796500682426993670852856498270391080746307152734431998475887363252915364642317326517835922389001369594367256323724450276952885179107233836449937708009236457521371908987137445654075267639075141413666887959530985393398171234502136456103850982265282072829134161304324459791459807124718581888187985993726872489732473313428629408997886726286798154752746774158009999481786311946572266745823299938140305789227913082159750296255892288723877883612981316576797578949164476453662992125748685379666894504194880818054835050849965512980227866816250550653203066186913962904164397204602513490008208308002580058349376604608935868710394328799208433076257283144457357445645366958847341092331954015892555004291141714623770727910968351429026383913335470010392473273973513089131571971353567453955193842491146118547415449884540771532297071040905062706868896072475548291171850507998330411936914893815157985375800586476888339606557387053875490679168448078481832598709283048974183836763095576082654110093414170027719663613999245346838291492723840182189613708215796263423271613172176046887185087762680524744532500789992806397873959072323424941877653620202064023108064097850347297853087964177738248173556871996306112477388733400510505611226748619160514613860550855508792361991899525123127573966159169650987236044966616976918785023781549503007048430042873105917186956097111638001881477132818014894955649463858894788083745199582321839432046245028144341805333485231698921678869689668761512803403698605201933651656024161840874145736693565874595465537742272709705490163873645234179312191744651061987261791488000231124545405245296786234855528107538027865734437842744729408135560125089695265186458055536220850073381104964967134930986186667144838842430221667333008626133395885246946839985866963405514345430702176732489337486375665088436062701139139645003300698869467862254357659869737567689451251864692307086417125876431589330032016479527127518569946182222763483456054774525782771552517662268971558778235617637867478200144395068196572836743893812380635637162867198809985620856924094086072465493579195530589131668797228580786708775448827396040324701440046258560864093537488342748791061427940509825845523016835944961703124597356823001965198604570420515897530468326502124886336390233680941275093353591570568910503164988683721209603892658939418241095607788914216601227784296601690691190786347126018674439173228732200251293071790911477128574447750053738360435882064710617467181362728141667611417827412773066113974931891603373584011971467915196611938403234187443446049780280814411977659683042946935679950823101762861317723839464600107750022469609125759105120167127489698517507959959111485815726218763193074487779132390569539435466091466749432238439692665506048845456683274289884571543432419261029376627506436128070256325633897036967858395852431817019197426456222873175960261470467958455505854849051280024151610155918865505211479464869153193937855806797234510706578591462651769655932959880149641427319571706314286641542466506096236763106178825758159227106502589096785577547012192631739047217606641720474146762002348618244150666336578175940477503834611608238118346377266274656072715941165270644456997856837973832900773256450872593411020376222840479477371844816288845075656518857404372223217759644797652376591502173607225458999921486036506783941804179776762493171853081270639191245237681359540102126129528210813253127976943136631268515267349558632766310362508816122867630517738030691744286495193624820891544316819857993883003312730298773583165936520998228680253250552645293859648333129406375401357100066050738389225300338975732897809674948645722860091758767318338850731164816505954808731733535497584244040723220504436784077679724717326787653231404926413325671488469932476520850983313419151081136105718485356432954307454406323188466504960089036982147290467796336341593077902624947364047744136813649063815151754149678165858765854404588093508847042426811363393204752954262915634820685380776718822621815544778707270854669058077448995576717542381372223466264757902854068305461028699962671683221990987635277995057698981828490533734446084678142473355028950622908017315699446196613360625823289093098564444693279555765894434955347605265038699172891820315631287416823562767710430107602354604487614746145729284491206606233844097543797432772914625580930847590160003959812869554506209450182309488115422866718177877854684007090306821090466155671611876082212931777197067539207026852584945896081818852998608143335385498530097218020821886419906837681654591821222716094131425908953385108032085917365556136661519141027516055540544447035329732046255871895886387078691789195566823678365958982076481752750197080188823181911708081710542922588122447700591165863286740525207979178818248042196862418181668424436759172085612612656997209705602414293548622892475294752033976348908039291014067635552359166159585266206076835056166332569207048883988682552673828576869768392705288508341777851835104695820210245443722122854874855977127590506917318186296004411768001024030877796412157458095902546802880120429394730755654895280284378034332534158045732363602346543385344159976682548645228221894410024074233334380022671858662029880516898458597651301024967331447397907865995306603639385245710179736890296146247817426074844213157218726369555107939255188320247740872088725670368885266382678996740773079183267904023722973128772251456169295161262056704445596929318349126605673777167277765557908639358116743006864396497312024859470473494246221264918427343860675696456872082675282008087917944271194960713211327142173371949391340269194024971764355773587051753389114889501930679349279925580792846068874198135483782495780557360904585143405588396133136175503715397620673922637746941083705222249851198533806137403385660156500724012701484031247574620378783947716104508868453758542620081434249035820867616206823459184923858933493759486542992101155099289736880771939660418735278888573987565650602517665796878350222879099247741354800034234874514593406265315261481006474010126396328991218402289354356111290741737536157619214779994815646446461216520914291107487280860402488351545466233475229239409524286402754001606147585891413127168180832549457882877203911268401480858998424068300023920508612412153992871618742594403981205434860388350247324389254465798236863565007932029568227719586176216709003798481333148731000300245223982530232005473808243939153963386324319414527968384415102394408070698991334225255874835194993192936899822809394636920604078845088905565038394811863519399607899205477466527592749009375691508509057153961394802418488116128551151742544667268015676105955232820257436112214121196766245186897059421860258737841073149414862049243871786820296890906934637330602794434995618966076241603833844170977850814376140784245201250153948013284170470865937724812777969322031987399055657918072997838021705572095905647098016937217829342053826773945440618071033230242320151531936428765611731951256803651856948817659561171366350622360337476022171110853605572740972154435076789102460892456561388706726347793147793573048514370123127729207747711814637159304147455691240338536210527923540781413036228166009368292456679615267503994994258620982397013848074869024004390691658739893483307810906958365125026016706762481116462148928878902557580585121348893213311915810230359405616518710969229001287252936076527077643403422913490078643207105662169326172013862797705608062902994042139788950356614389987283156539441596947015760827683523634372761676725740449179217452888975998003495481659735371173645381128279971236865081760215695889624418878480584906072936254790116016060344910243240442449267405413346084294939025087367624603756526317836654832804010571606073930040933626465216617880512004815110692280066728623191094758557141553258981420223159757331882556130630561807419967165498428624069743238773195046022977716009036206164596349428351720538363737919606382442793518888595314311911383559197039178230151962893532142565943064470796090436932799245144344233687560243480485337069374165207335031922819518081000521903680442247111833743128652258606218984521634369176145749123960184801332258059339209225704059194000004329050388808059965796949188143331482648435259767730244828354483251126706429929574574195529618557832993522419792356032941562052413183958469360974408119290826632981592195404642209956687666385776216968558492871915865703112275856190000162035713899674932777521422012825125194679856068453705151098878328209636817783094419186328578431750220747549484726889076410004499956637994809354259616251056588659502832394185971290533035529884380918652421400442337630895126614063612536131347464823568492969071935632451087506437474374179994279051556209251362649454466257032751352577649825403891700117328955344402092214308626263884383899183857883164232630725189613862684562767110035714724664827858185594667650025405717941887032198505839513116651413781779382923729753127006912771528671122688628024352862383046414110857514129156970283977009740544401424296938190339088947788226046985579404231655988048270424075871607151158047781312933109910587454532492621614345141834136712675181704913978820098875385055135160532775873271206343634594224774340793816926141907052549989329397102005858439648153580465675956100813312057749197271410164649735212525647183633717304756002825854165598070165127161449944812500155279463052503046618724557033966417664279113876982319417223217005363382784637556457889027567667878974859033711378686589692806669519958224222060718359824592184031306297668987811941465661171157281297831508533647239815553584195350993748933058312613588831015757200450615525027666852777531543602614119311259927740886806758625293563162797386138570098793781668730851798462664932066953790375586523651287450905326009647574154136972022584739264725940888075325201712421186234453762849497827663784371180996318558458548207215772682896274659303730905881866402177595037217041701699506464526014360628160373369556851300347637839831521814719972829301513957888850256245724406721873697116379758748219204740520113948064600572752863870338934133067131867000578997080864270806414893218064773364127783917858266729089411617563952374471097091316131086456523318037939300134162872238494556924016521885907894350270089551028982385859480259746321972049268813855744883327344380901030936380478565270060714537037889967342341325055865318608894152358903372673606814017921250072344900640035817344608086560872440094160159485377541379303475588498855100490670377388833306060460650535784019641380051810167387368856693817060726077876810489485434533634337277953965217872069295306441126157093154348354732665423237149813493055495778057659995811480384204063928657478674989828727874328033258357792552833724260068897330815882500517198965615578006598196297683891203622812963062420918905618321578316423162715437732648149073817751455623988029963465296304910012661231240825650727815803601805708070717621767468887661059905720304691706487274096960349993263777461160195239162367051846211578317253437241094792437691209797674987330120367925279858256410194875130924378889120185103867861847461489508692352952965828475406567257951863375501138668317388076256720562936555900377839530138115192064837755554631100300663068126168770164940418850868729470957705095840481649465725151297969135486169242843279316709046302008597644350304855626299077457249790585873293094358941102689430115902952471383061913194095970634852943181535427492823467061886471922997365791019894883488448787479177306472599733974803379377415487377489907495548412451142650699457605464899708527095793876782246184930724278094403556004314513958082714013067566011607866260015939978307344613653062132032122986976005179069524168283472380257776441708727813208760641410530087512477526754931998870580099364276641839234857185053865876655227856026392888462045189066759265283452649363076200408457891259888586064307902450074844448567289787559695393208847758899050129785139267669060127257986793208298030150204875280213191198977367214258764790488020061007347127436810865141161222885133268633776858941934965565515216557624645741536659554384764117988967128723549705408340113041620592719718474154690552389963803689091464154243795312860108776919223112520164922180591871525436811570421146028524657467635110135908091316029283837842981474950911151741751265759885931368083071612501333760779795304854946174015195003479732163514827302094010196782974507809581509050991029920023547849639191112400904159938083061729369599260269817293907462001286677751985346050661156931477242472777096484570589165075603455986331897006254096515260348903200329402042877288002857991452739541942161358977069116311106287697584387612033423110030485069710884072637135405419596524173277575013091568267539547892003601364885309979912329614662846591233745705014335766694104107069157892017693220923179907334085440003107947602890870086185957506764500337493398798288609843647038679417691579703830499836681318977954692892316824800777202744555001466530138838705415531287893338430550407204294577333693847495410790891022149633777330594546941439214180228675287346404293463997293573890339507933824534694657999497085370697340211981597974931472652773730233579952488134216413664882563483652790626151687997893427265073881813548893653647304229715401457406040559547787631690725926722895849227064611352449709119814640082507131157773342794355882900295645012181790616752182321855656548928531729324616531532357785323920613647457569493327807677617133161317682493608072608489715295295155990140409363535522378903441992755097119985716172648108653161761304421083398308669034316829444230315701844239672958122993870715261184844449691818871523487229030362328683999365881897706738189131778710117126229621169901099568455073960368209720797660344084041887480802278803451910006506679474500082783212258690996911368922375160673275985478244436165923181867214331479639774201177390495207304204716615947532468463577566693556910930624095149762486353674039532385290245542058357084330989449452284907613595791405036247242316850302597446983555573277564464157623901944511295553366811619641601770324036986107831005665768170574780247828008666463321671111309892228870166602226523664237059620223008934620064609824200008683419350106936524156671435943869496733167763706147942122551275015016179213850636304731396239173421083743558784787941545037539564071675636770490760671806331866872089057352556938498281542920912540846611249147052325493365151395122501549530871578130323243167032992304286151180139620520936442726732892388491962648384088635178591382815751237486385154986330377123294552352831424733545357708961131739608443019041417335685697115633028116033725084775727330681173573393917336751464983095887340330551352959105347302288935103706794540071061933592715020146815279300199096526488054128798769148560088428633272254646043763552734557934570055687982830726857155494936873799256425916453171113511980882309408623761943571765952568188668724580423689382205794073268016417479299488629269136359062840763743922993954552019443691131248357965593504666571410856672492553755973019781450778328225382458114458931642581663143995715038428252009670595849312443034742967157015012204847006756753243389010200912609417282231900699969149972687584388896734247228745749476486666326638986989848137549127442158933949402212111347247411963440210824320520803800505765160215776232905735809155146652276752591733365919853704048058385187990347563793108500951285112588360264463701997064319430524227021627871728660233045036091214999082889040785005298005388383898993255317210738041905190953371096069664245189026197628881652713085761670975911307224416297430927848257299814183623109523304128121653407026909393911422789937009340224554371402788675832632112255920944498131072027846503220950400379153850579190230609911786506087167039152647784858634370236407584935597699605258122952043174008577040219071247497794736367000060559126143389995767028392267861566402878666011126176243487106554324043623988594826494486944110601397386037909676896801952930388484368101435841432796800329478129002707822998248662911744474704726025717461461638842865210050894828571521844510708752881795198739430560150837144826133286059488497561191464742123546164570822197675822767442537324042993449736442630508386314492326521454326760203273450471966556687123928817390842122496437234838126925584593983018007578904723916775310731059932266774676812528303434579079924847078464689073491480315868220140292975834542997654105919765554278068127318788225421826554737533093976508530855631085957800238750236265250093605531376023432974890467459809898094034537406295815165684342352765298406629798705934871949683488063049174863481264098483592222530316928812074479274315502826067414326436515919623085536332251044447962641269248044626491843930343515161211769818775816025156689265806148881170568640984581925147233308511972737241029046983736382572765443239278713660736619076718494445388057242347158152737172077761686541909062419474205903050618967754400528501439750029072773426516117159514868954484042539444174561522006006430274462986145148286520550971578887444288471148004834139911427705535823159522581742523790475417823608235304074688362117382798465019552547957754467200178427374351339072102451880770824450052566198085722653556247379278012691391652354731948603166206823397035099288001150265964809272679658019752615358112327394433152810743263522458502703333383768252895187837640994729210193755188108799916882004989312428605613264672097698461601612738000512893005788694624751513821209805673455527977759150305928266007662539469498663533142020938709852826157299419945078112187396202963898678166593497583178117695445989659401284682521759468077248781484913251783700004064039519827530719125690378409975267128778471094947851941810146434392854144784913275145136465298336965094587617234693631206850672233348186547063787366468287750842611976400419002808981253717468727850560375909854121898960240381147399259294120206928723181508032059584621881566997468380381308519714824352587644346159396189676840154216216519609720799990814125711256812376808357819717293065839432884125950502663517069885044251950629657242091448600806378556708019409756042582907040398905633640865986163788056661949885640946115012478009108014367796026955585113110203456600641389831748334988829638450051731970468067333744023662536157265137953112899169733757326093620032913606821898482972634693877045216573469901046365692726716551370486257954158507406859545497121246018373982650677261382038328206305473056218775072769212368887214177988925257535347768564670478703379404232686868333382044342480514492286248008411234279009841191899765404820432252178113591376934986756794615513803969089989945789302878016884758495063540997315394034593038202276194106769166043063834509166749482027192279623433707387726156609024483608395256069302362184815214934495064712575376339684446518842481092863157003617867356030179715916870032245386633818916321344092656855012537220041649918656799530604692003129289050636639430036183175041349427373843616255915977547951704135221843733335098130300260527905611160235866490130361927824249043443028139430799251690350248833440661661868673253854704640823663734933171024714439898750750369349736591457906887658449467897723349244391083246475359671526214471563028276417396656655011730740274117338958832176734107934618632082898296902707778981637552528221557870390742441428983855480558068165321577189044586686865400418864277092898252035709942095120789114455571212546015831430132577134716633935316826222491597713494472247000403131607234882920278001696576041866187188922639887866946685425821951110590636032246271166390443816827296456103318288796726300364755471405874273910686123393389200086901739821637245468308709905086827108392028311702169052701362997040088087487747990427677625892594065804898570572673904060810098200954995303878344995191629016829524256893726900990537773741895913379107406138541892698484639265152423939221950367972352140118753268959668905210115146724428752550418662624804512400790868126778155888548682943653977366770804859504524684694187573371216797858718232539011355667667825356099857177322265717269790077724801891605667501294786324888715808208802241209212604484402091316421645543310743500388033105709550399326030400119863144106206832074559174784468034773612167313101889701285755843426416828562792445524755159347944255080914150629563667112502973021101664695070083968732292290499316726053625459490661204851256433735096554874946083484780926740718880052090214056584594136754463882792879520378957849738610492604288224162914801900226056841686071748492437677891379641578747123162760721992113223416906207758438855570727671163948041772298870315058434602726901753368434159060844351469844331611385075041166340680799262817060593102468581058387443762680816715646262355694370079958950198696944893792702031184507624892681914738892383504146413467309081618595737542496496504235719788010947306426989643124086319189779534181932645212157025217432371399583110365417709158820143545348519059761816925445381699667746498207528443443303036552801836599222498727619125690648006534666764880345095814932402403666045565064601035215437156331937470995221708144816625672593430413155194215788515504138360977880662158790807144705482668538532103203550015367580402234538855495813550018672333135017759583047897303098527832632862621405574639974599769714582472415572718799714798575629480888915140948841588636134243691793806133257404130345517445255796066610831786627768794322991108972755759964610465505913894623647331763578480936806044707600505407321029089234437448357321115522799792919542144702644122426189554638498512490842367553421407742457946176359999174002091058559777463405176652851068182751836940729188801206859156545050844976790638887000792353828317564840671714940467997672457167288100034384151207876192527497757190052512670953080277980077251631798031528540934065388212906038799202659442677421538708264657771076840820963793980426654317348025643441352414998706285590685636241047743151533764044196058776282004046591042524425311076452256133614148825448001520729812883579402912931132365839100329133346803371138384360835209246434569495219192604369640414801716841408433479054613043554744011080274728256004934872351598883160176777416205675366806965601036879721285985748788573035227973318569864534941293281778196183018908362640070665646932221653406788217185281872974783991384323948508977692880205641298386073119492544013405244856174085329688784277622187670295901874911211139787766263452011059516064582778756540891180809811465497369296521269788111977848620671450838825559115958643781798298446418885116357325839873842649409126947856404335828946496055332581480445333390072884994133758645944445955582145329043013678104719685793449684404718826697495623701392251704295034250048873920702023723912229853087894076000891417488886838703821903868201805337740022457829737852270867530587789886058096795028622650798646360810627199979822045776909759753105184536289833319697964896364086759737869376366163052896490845631365950985556349157828517235491584324214255262315675133089360089084899902175696401649233046037645438784490896612147252529636017444462227979442436547735378081072731362986612275201625454210491227203134576458084986263157128600256687421880787190796026704337431427788621692989724947049893068560251814333164824300710883254870127129323198150184478321132321580412412254424883230321938896498403727967379401489003483712156341113484526029778321557391512843636474246618052946199514336099079455413480058615610656941750868848661806496036507894992146891774813711858655512640793350407890950693125404261094520532476009517779888546245157557402596379926826209071975192215615143201445532928069784475333733835669345798078333859971319269487639134606946502573255054838482003055980580527810985418933188814687038270245417169418193322743370470289530342438130898685540104287637351373331333386850653610809142064216523287362853703209565262507157981457579149927595804576057637090222798179098041719992477403823805786013846234404755723552218616693115979359454168371767205240142069629627366619507725241212282816088353841438873041633485717069512539359559330050074075690008171355380498302296162335927688460741751699005486640157984743655398097308240752202274540146452341207947842293715624210576281118840811481189746397182718918551644801206572704389838696878641802658302610985042066413149303863155380743184016052853320191449738052908769642282003562517855615442886075457981784259145183281813586242519139463974281383390470477992941357723262301155511275782391167917786245463609972615627671582850514929264952419326721022479146156067908947105014234158661496287121549547474314702863278116768765981365960122999095098596462806621943854920335052937631086231254382567119359389198446865822284760405522180291897015314431240766820650847473411666152577541395272900564582733214880664387935999881809578721711978183855575087577309817789672331974017810268822582187340759583160726266321975902273296755407983393119165809196888377784685322169973230194098067071285354499782235683976848638097810297405974530408517370565670089794696344296762203684553370153990575731619146811006132604418592490334248559283549587976008052019699559614748955508778064456758082678874545654398291894638567750697160538301328859529135432099263258508580124461254082791073141540164985056928363130628243597559280488976514277915175751374943019318867922275240944650583138080303582881103915671176884191785278600373970772236756721792878087227639596857608557876964758949048500590642981651850956442394474073971558073330147510751418216350207463171234710057211131953628460913888283105689796483751583941124755063391028501610765902040927666638880177789845570233182883375121635230976191654268379255749968070869010851794252187549136456980978833793747212205509607878165281179631373637594742908045342458724135489116947930022918783748588400469266154489737398331669265054420733991225814158505927480163730088763198534489328692474969140714445342051708154035970679833465156750800612463277697065466406376742988874573356111352907420927427246074947963075288153481101640876293598102905699933151792848714865264186696917295705411807755417434633880188798996771041593384230635206046547070701614155601849349858810718166154256662386730823411842450182690229704580695707407804026783201482797825743093764426234302968956434762865092637712012971405069396521730351244467096145612379548422892406110633725476510715335077052661141803171806148090321956214354432760174084157060596451934970114345976134638268735840937088120307775157622263704853642605229530635411954610125254226236646246583608329549504425554398322468640504030616238753185367966819944367037724238852444830437054703320001538179790759060163423317431531784096013477234474737755767462419628141767762721244766019080368167992542598010827192575872122534952221367128826303277726736557741507251425457349461317984124741024566348216590765900099358636264863626940324838876926792953686171955042700389032104083808570063009316769258473676602923765010659092866993502284425970005530675575249241689311872695030635253621592729919896706308754944366559634631625634436327766618139273599628885191329982967401631485855224775867814805319971853134318597014804291664769933557426896820256039047376120785122737961019841278881235555070625452225288649461488127695195242601962739055917842409974386043654616601664974037455672090378560936954490838665739856688490812604733857837008287954688637023979789774524660673573324214926685281652540092620344383483657828075904982919071740528866005876456546239557523379371672485326746267497852961187518692596520977390026367998767162953013877441776069173128614234830839094982679772878227569470547195610443945600095386286536596553314398090265701422098558786564145452615718471023294881055795951648346647617081349642113017243398359719805633815105530653191653790086338267369068567949579043545412806673825615038020961812526993652149809877447548506543852208930159019899985927647808887885328117930321135504819502435521508664122720482108859678490731088724446543405649577186764994303454197045470411798978297616214188914055343863771717234251306885443489079654739095531477383926278660530005865229917815177616547858364117208476643556138553765947549565488403457796563960457054745079301001600716464958782981540072140388726175592716447398640221266234096810209340983059932194992318486536784544291194507960709224215589668491377157079147949743084669985233084805180441550212848833664516693031731406439562160043268059361774695071669779784527596398188203107876783620496484154846356740990089957861626614725045074066289568092164957222583247448767392833045577575590315087119648488398687020996206244815802805677129775123225405761809937795734387354639243662031262746577942515546092602897638428521904682132263259147823968424351318959355369027574827467291242829093082818676877528040262141248922564886364307500844050791490545637287186607812209144568889256529156386168862483302913600435207376611156631011308272037093642431345728251061618797880977058416123623732386591112957878484870804085188236621154853419839725451846215513343195254736117116897505905871720866187950375377095096492458590694439429621803919535683388260450545653623621920582068094118692868351288919170446198170135642101366252083728183450313253832259752303857154947564947573413344986473418588316141910222928001993972583502734124674578391709602042980654496827036798481701370510618338299888918296588087526028947111783463667687754327759306003389018739365945786921986964958070141025370454920940616219520394676261964129814130091030012860034527096864366952368636596128040825608089494741413940598823214740615167374723159497984125127529723283199447902046561794496227043824859292521665585973127330440658122029330099961606545996103198111972744880866754838691483212394841276510551474050894036018336375980831212910786798028538978747018712778583625680180090730992752435365493882268926350922049371813726048632326996356486400311901860549330533124539527507010086191191758943553980396725439909059646009935379366550192495580510770169492016342103428942381501203043280422038895064177664946354243684190492883541692746576107446386857953057921101441899933313663607732401318690314927654056526833431435858232066995629855934861788091918372724336475810988813864863339125802645817237964006364006708692730890845918856167057866800615053149935790436829527210285090504357219026970065118056723930269805474182062088998341474984604679360514163599209266929155250430848617346041113411598733921365197017869511281631232115527756666813274223070262203678928989466956816791513175887906857195645136719218237563189556864657657500237680631931804576919951696099474850378259477201115539211888487013118665651371157892901285684241079206229649363946374737541058741921262101025401512941117435322046674426794151605445424234634531406672573819413531831527079771822913467461226051575737891474955165091811219090725842197596922589196474642264520755911823989091285770761713005163654980663991482963106625491205366513980701145684804299172117492276215462468552642489163971783353552751891991027771015625006429910200906871338623062346892679359121217389226672466142367280533326915484526831984069772619593476331345880204010666697511559408883115820885659838365516102276441511649188812381698607584770777825897049812527421899105845507319222510669876277783138765873111268785177733798983344453327171944430235873084653410137446108947500363994049822057299026728972136500706581060781633736334813360851753575584330055640086742926081457553567102984215752768383363547737976998828363261364361716831490189370064094178844647850963285075420468528393294098866338932789513499219016572587921816194694403730795850134489006681658476493023012391945256529159383149161278225143826853090399245052913531765321932783429067417244364313671094286899971287105412699379588357405763716977103035041826740338497211069178062163505257406145252356997697990859048600125000718017613912620712040998568024624434812474431270356083253521106712573882516354991563957009569083478982357450602966946722036651430475082822594135372348056757889538526088780335195433221318941621449797140233581286943546966435350494448708998294940547065675912209535619903303154586767536121200130388228185901175567675559369091150320854265408844794105732923775627384976817020423002912762393046948970396077631817409029068429136360964932068243683215401233301308903502711852806106468793829192037669546653631605977264919768558618046928173695801784810570278710308275512987863572939732094535236831735367793671039323529222885270302473023113925613254730991471470536699730234556206496038665924270354533095057718163569244742028825688096105523084913290037102383190842305738240104817607808892634511018096491505837651667464276061368413187266793742587574104095757049674498521674994251022310433683932046467775730145804402428539067986932611356416633634937796639402384621462963902077863303892435511262675533891302460927772606141533811751908453671856233764381292408643866191538075580027251457625580538438729750739160198855938865673700587612642340628066887462710665811734505575900099213464176500018584805864696248769529274606090106533802100209407502859097457808444705014182957098611661543400696382597808313812897832647138839814949383120973584466904292053014270757692669079516136210921387880092468998068963956740864106532454075715159822197749914462264820423967835348736745818252579900601628953447561558802522275106160352209380843666665255556690613248771571215660676878744123922359270338649889566303626304756468922145544757768724228453032016193085661317447591014781875327425280895148035493298787084254739283809129270309845767119799268366981848559765737589263058408907306066710682260980871788490231257090561553344437646384546310825600709444449964660381407479972966478082285964640961184201840708474684564074799219215158974857715113357973442787020127601078266894270061535184142724047826456659008822891220938279884376749632134845767864108384004699564010229370079453203921829387017220917104303217895995787667755548227759648533154526911880507077770758384999397847565730349936197136191346093013038291421446072657689308311088269932702024015915144551835981369200353301872625691068649431260378423727609586662823700611573086290050387281980985024786231743720311021831211506379479848551528531078813827940811379210562828855291997729232271222256141294831554545968863216557810995003271223929660533364913872049372939733763694538720955965152478134791394607168095251489128502482245823949275123851056681843899225330458748178905000400393023518884811799778009908444662042672900956912960503382302181941480611300389940311120173420802700386256078161875994818084618925893738188698935451168431702133727633799709659031848813169559678806500387859463971202072574603153057913339995533108967855114315631085935750894866738505792936560194099109603634787722697485005623011435917060794742005711852348963740138957352761258233092905096479613103686833377671834755036126824486231685507277722293205988347599914632023430618469570352606457490302749565926522271781347134438185411238859463297334862935953206251460388252774666519131155970345955458120996516472044200115760705630979031593108410877420667732183460558139886012794853919042315580472364930657289927459321897149203931172382767971028773239742901480460638514364607627447134714166968048604587822643380244281025685424389304967151208617068919487224628173063882432536497603893559936293804696667691531151478127336482094718772940735523969963509578902790376371490512613364135970218907771845703883062965914636366863293451632149101971444576831703499461367089474829326804905874023607200229954764869262210819048406627585830621739716046589816798265305978385541113074727354553688198078418653823690076339890622677037112085190917333202423044794230827324500900438232458654632157612503658377026734278109307062892591157676802281179512080075559800932548693377048704980938426415493782179078445688668310240602370428730485683328706863952165407874853662198488242978537785040082339709983858262668196162618433536574263833647276401164626357272856984196070921476155653421973404902868146891903975098566701618986247194001563657907129827652815579108395048647281339368311826900743850423477933047625831966923883517312909874557019751923723793448243110612761853354414566684126635160590208401857922644025831507778262168414537485845986310507235137064845269295238145423899991458197636708558028684997051414345071376362276628685524605404930195873017583515210308436174323330706375140870067210129545935305088458810202072554163571334496117609566838279271816078748993556976105803328649337877630432085744645867404005757941630206454318855099178317193945948557425073165869397876492802158556134535309182647915664908392636839941546930573933449658683911533935299311396315275686086172392338748532417002384643956780889404751611558968751342444872543727520009598095132830940289292745233963256845735618304544567060819722377805025723048714094763653563041929132849539472847073588161042351415507186342065173735670105343677078989508508489901463266754375519485470016004873613685235585583794696895058214561950115853570014460814124965537413054606959416883334736973556305395625917715996197943257475736375167972842751324918428328236206571750911358986800101421814734379055482026105502265004466478689073270543384345041772275576970527481028270947992090108568578373023378821277150892936934286514028463696923296559245604338328569516267798914627814355904621423026275139270603155583261935673389788249150397065735085330335486658803400534629904782577734797768288083071448896052026906060620462064937716746026400264481301143640938397082168608783808071459334922026615791755084698446210342991790901856470859238802034122025267569088620931367034157696029627815785206655403284862525451818845291845260335721011797229840467446714438302800341900754160738749426977754991681971933479530834038747351183576877838794477338600818402114787466644603035825682007713320136365306560383185342686613413314710518327260973350008911021329350135646215175638401510848786775564724065149654165654546453417527887635166362075305228325456324736903409120394227288254768649712194834307435880307239739240028697158429323847398018459590349727297420758920163315132669316977725194438797040320970004020783706984806428840126156451985404706164821732870495150329291970107951446545944207378757829832989678822773035086214738470872629374011620171071619890350174593564636661465750255663684687202954629581891711851319966823565551229769484999261929351834734345826660285178160500081424183349681782281240547798429535361801388539387608135444472478597728140046999038090815309166148427141091226369250657826630916435422399273093117774906356630574463053906663505471665152063119881958254259499769691602331566497328374562272839698159658351377908221355895301464600563863180270646311054691021640850714038183061888849683284463146736878494617878980279305814056215196318327806266386551198649726643292162350767096106431978639589173122222526255150699490981108424613441397277997471885521156418725681760065127662378961922229288192822490345097633483505150411866206109712205952303481403255137083033431604031704215483789684228064625535172177499948996747254104818136667022856684014802509353788421813391865643185872952470496965934330148892441508848269389629658652085598792397036213434861565316811690105157541153235067128571602431133285417214493634932106857362583352460052522804009850208213403477601273260074278601899473590702950067199500087074914341009052462814577870201657315858829904899089875812350447882870501454656105803002881630645864484143318815385708167455718258665561875975924950909949387978594327418927300361389798576670466355320737853447739601116190790117715623061598690361267579809705988552984050776627203503283119420216502767098821171500701872311630842986267746012611603328480735667077843193846767734315600170822993942950250141970395059505418787191463262891653246761888966360024493898343511630155368249199534607223187678153450820972019044347741798279471794714545905260383872740196143060154607116181037342838316033040767319353617084202630346116785386749327818871475559472019065273601736166988493809518528966208189492833392558823491673464553062460064011277279421235400731588213930613116065379920711616317093866893936959443980382616317943968647291454493156565738932258014905185011205848344570303787187178197243087166502348024583704463527070222820047981544879107972179416152690958530775173561122228320495451362496140615174719723453760845612952841290706527942805804982547528108797904134788560508070211549612085854065616664093275166064483570359129584576711037368383837058617773147829713582476079351514480057280801665718861904324560910827020229519531710635410723395468353015815775290453879435380963989526918864038466032387219882911643659944998073479828399827525465988586126878632729966897749246430991157026468654275375176627061455914906661813844811176515858973716145125083900985530580243287683937265836876381471449727352559587352240307284440467192571858804461657364820109953490103063169161803750719861320453677053424086565023405253416990718610821561158987141469488196809688429591445879352286952698044330037809301986627541860936595509936199996038576669039630686931619743813015414521615426140123709417512330007035338948396046515441795428500455997041451444410083417156494675268977372397542854410769569538659966438478442125731332231479457682319477039200081021416253556431598194567856299432898600387570467698166512896271607076173448318024387113133930234008586825053276117687061280116019586057471965855155423028298749170606250425586381161045449289396937131942942489974865661869718128070432429018850328308767313434139181540646518131660574952401008068579551563660097679680995118767596786180291673097162190498531096234409555862106747096885253830326466573342049506765687227338691132589151585059517807421062149412643907219158676695879352400330483406982063123475805640992215181991638643050200618923728979154359196927080962938510126237770145847561269934431581301068193326952094862548225175481732802473795043109028917258842398274149043942162137107303667706778641037233916721875345670862234431955247460325807172964432383316770497543739792014598820863582163516216707381231372690197255060565239550396680720897475497475526675387880344047977314605386780026833523438523879599120924638128341539466516858475240292600146191260329550577098913056563097463485547740645339153843881251974283589995969386355465896123590188599294532393221842087717208709490951762953327196260196090679419203502868123452659398614139629184576243135173206030180114668535762338931144935015092503789625727460805141833592549373119615123195924127446922849145862975940443271149431929502867005226513399102953176484648585207730218770550767102582216056575713988321283355226152544382292148416410782489679941697568124707609092447836419548694590534345867641141318708659780283022342128540391699399310902278531847064666543533095211030752353536376665437558682065699970631580939728684717633294850324549577976569855916855090602697765094521022352441420709960351342045020171062582751712340946261809527762989634699340869896601329402935820869914137829836865009334853602403831346410642107155680657342963230529322758229494573609716280499947347258715366734847167664797237520919453357610399591735904516178516908260184310694767404081210506618645206042424331987795771596343117025319825570021892436619574824542848799410412676196968824149971676780339395488438901309354482571761357705929735947591277669306994208902349677105468195255967063566697907308777268917581878427298864204253156298761496849245540237734304789346665140539027319778193655101287110744537364382878196388542434524740296012929387146400736813811900280806507840475140310950517494865020680338610542534691856575195292824052858114563722912588856150436070125635673769934056522576332908457124218122749532926538382222439303743361945111743560506636739956784038961470707310950322265312760315841350928343609266347442842980243322311647831026734778997492078223167083055957403382964929680737491632101485346032230810346793873944080817386553294777809468477483505909887339387309538762354457551018842909878902045587237187823732270914012073352628068346381483755138000102926264648470608150451491300481043056191638595617750466336986668818887474737453138359198134522868453956844740578524031578330348837862834175492004290620001202088720310910597833525491946989672441834223288816231084513501651161289103294937285356112795966338198926572877693957337980053739298125044613883375510725315553995129153862258558223093345376265048940351485978463286051552919275446895061398932933992838580237980775376573151127525695586970920289520756073916589681977265002709353290244421178906743815885802104825257409283026291726665725559295855006947682651106609554823385613406802913258266968564116588775055908410045100049099384934367020983514702125309692360909162894243700591616200883800725344470603825421027810673158431307165153427266910436490878243537502848466370209550420921062954371598291005179551896863377916533933250135194169458389283703749724548450078677229824187617565027919184780717693732622930255589144787214297779666944208852473566905691602393290327574121608382159289608871261620420638109164611030950543313827134595794336754343086451417933533129154817349182891127774640258661865259613985709986993347358954631770521969631783750719043691774471137530183651232469925380700996896494690134759019968774149439542340191812318565372692292728456495371065513116730486937118545674861763276628668373863868265362464405003999973521252116609333821770262408070537946448455112242406240456358236491728365532479693654952943514334188699537782612980843224391354420958727408043815293458716154582491440901870076177806511937444208601607446767421071836951321646221181401431983177789507866712849850289428355370888762576100232940851443056979653246065372723131362533512219622222229849987541632924205198071102219703875210917228554465320387353514213165662226436029062474632036393834846349294343607903826230050936596604646848440892387955400934160015880417929100710184843751858630057939283855314055413695436712098082427092989279716587385950811559521566905562990267413342366345821017027250619818399714184670511138114756710776441719221630373400392507515388642932127967003330889952992217707075864970769905842247606737750963913537139760935629696096171566810965094169393342673693289535851965350208783271991139924061813810512304957946511224019942268405563509391004276735100913397154268597689617541382108865479903844548162938469712180422036551541798565009777713596755501500558008607333793360490232099961274221873190180472444706922048403595874058446847294159264003512943237487462782421494234587937087700958808579417803881980672354170491355387062774762344213895007036391450389032605942424207827793997538347475651364523501450232728653689260682290238562602803201051927249854465382982193740357924173359624260856085576900651389806860114352455170330372528559653187378741290198937664801579126253216959530706733724721673410776778464154127927188000446546497014707036756653214083096213536844529372495203733738761195295079858290269812224710391144834926293088284297481440099360214000487374077667305307861325385159352791162916501495404227974614649123874391145603093187032833998618249033068618621950976271997821188059103811095554996968793932880148857330079600990348664820182327685985139141538209224590900611558592395228173850253789807610582808594202087426045075837805637203124782026850660969081176821905065188524862149987358033736718978699351242662496195044827615213335667857704752779288639241166175054463136892811198137397005100968845145434527250697815953467275420222985287638159329589352076126322755117844992583709561029195399084798237024753934826323245832766114858456763248112616519827648934055904615003144846384912343371056001435287786941835376290212080725024652947845603941159781754860721009877153518055256735850960956654082346682543909964173516924616616696069297776430088278950916599972165385401725162187600866278870636851695686920768632894027930643494082820113127791925762413801231892499397697455489885014421177194050991100955453433622171161590129961649417842743222784236897741170188994842456197701322509329448551024182657970028272290079220055841130655115030529539590905294524336382718240072928103252721599095242783536500441631671972125004327883850091243160502609412658152719761783553379127365830628257260332731507608865002219824455409236342027522954523475517128751847147010156437513342915775700062323397972575748214490706799282158014938938367990106439609335038306939776587146815746183753667863309845713926283394405981528991495292242751934937675888267639154660209816786475558427145824307391624860387206845388905359228246257655503424411017511049779400474636931443071714095059704622080548509452757024135338501123365489760900137326045292251112582891011624681119644797654951531247045106387580061661075775512175086465190459501286629808322701455902503006099205337993560920759902039409812984642333966348000459783507911820085506780436440483337819271309386400457010632443694378043193020732848786139031822152346674038941678171288517866199858765703697159338159985443420178544569405517404595161141608619260102086785663907256038475313830317229660462430495931147626947962606754656500805887790995763465448737340874334064398916109317661756796908757378110622293561809305381810048306839312004616966211751844357686455506171749922331986137334323022357222448704213355633616978655427020463509223029495138198324294823890692364085360439373731149470055509567900651371450522002343813084416527854353611592391312400864745544432884285091813556673557840159365469713008326342791394130469485139103211791841187571449765154365343124844384072096761547506442662555853244024483849142814246862466603470675719491437560589060991954460166777376119013225628039033061842503404798496288169274272041967100300950787140118755849216364366669017472698031004111293081269263027564327080040734178824281172319375238812603057256317030408507395068904772611633312124176943109682722449694978090532000719089914056294972464182136541197174700466893919113984837155584635387311935596739641221362109900344624613187851593081640779463050826847934542299751234076205380882771028006968597774487528647819864462097506982548736050600025977725821524481792859453381714088148290690126106884369070057005911101076552012009930426629597602408064934507651805505385934186071412558766764860873433599778938382388605633829039830681579871800721020538022581470331119260375335599627000614748145557545608377401985063362555559841196491429525214404198157826880294270922192349565953732228614875531504293273274514732697626560244044926609189419808668331648757352903067659508544146403891584492311407148037095540516250770465273966166806705639985414573603172729306647333861413223054463737387579854972929343774196519143776182309772992000770625555411848536959930534988828446641495953116880502939003008332335697002119134371792597663743659336874553201958758755037028480674874292888215601655886249996208522993038026137988814085754633979929839650118396393903014891052468826268991490715592572073060256884733715405272995560935497171955345288217416467772057945245652696171096699458428024688626435738688606987310739570203459483675864168965822141421973240463954002846153125171907425509918446641586553815063628262648066949225835251339355011106603059264311869585327747389016640946608027964540029258509856483054271458165744213264085917337062188901004399260138461454217657386349039589097216714069373620484605902234231455359566588258685179909260506269186093787060537148433991799023854935312357143473087455612542180086510336871906023790358335398426724134838074975779051248825740951793855004800295592121418909100479816589165470467867368091160693752154538009262534739868170838995100747171284219246270558419495229519335708666373798162170416528217896856724402958118492504892644407182391159616771248311638099810082168668356191461058257998882701325123159878063651622298095080306188201915704192360432284983955103778343930988398560539848100141646558248601264525478848728995470437586859351875459290507832344615143546656934835281561185663556405967046229409266598496781764618311046142782098471408751446208321222106427853455130994746101925659130420806240778104350941746907322964691250644091672515333138946579631428058839279673188549556462320158809155225275639972487449127555259479765052446628125210417700552496035497687376919438506685419301056982525520305236577188574357305864499467075177645404073212487897287945437594053645539462661797685771975489427662588321158486234687727681925787598511201738597390917898255400591857125358705105158236582728484414527961753929834161897541456492374266731331754007439363406859349489061504485821994601096666309626351099786034681101226743319773758215797227810926022193470556653292435859237831719161206330620530916012518832554761469735561440004145208430532974353563938608575598078137372214439030632810002696916809260652159833038045635869253183027420178613843374409621597428165924171139018354669132810298119364750897563687353210724433020864262459396831956570145121723463051637079449360904344043549595073831671244534839828330808820890718843219251852917240871870630396285455170225033751610732092219419614937446603576675051979010973959057901173836994183581399024814091207095478976675848105914203810751919470962143150132766369539486970365293073813730516743742367232212999627130192247093084418361119445817498894888499146106862677672361052180489609044270126353064294492437211890931958818645510830838357870306375485761845457383115765910411152503182386632073467377852321464825192986808721798970199123798470213969740012541662999289923731611371313481999479906945467645745928833095555246213838376709205968476702890037662111842062153461316336246281765215264182754923929404180868135164247082435680842788279708940943313823853172548447957947256122872021729286926310687957016788433301920838899691291382516757078323765994665139494129357035258150467499121213370886698427559290372899922873760306147748820686513798511180981554702340965239524441528782862212569024915017432071511484106874879719268430811725570330803707935909214200364686754894153520861449098569956346652580073067516475037878181251913507508167389808193982571707007760929163280434504163451461375942739673453974899030705833750980881918881642509620480488782488621505534262772948100310022336320802556284350644957089479709859679128410577367641755996227429696618454660040621872276957767940405097687006925556939924881986159436508566579309781025100320057799370732261124761145447757026944472517596425767664764917359781709569945181290023592465549343620936320275107151390487769599840637407950637444715943090424121640734810417827305299209738051887940304998302879610716956025525973745136810406374788595678017114297669805677323186721572778844857311128963732721970582925668931611094207262747155542257768858786162656081535317662844273946572589896511694069250264348746922989997257267395417848808366596906086930151279880539081989566623068484736085147902192721581725214497731663979527140019253949200637269122317132143768045011043295369573035662385514065442768753434429375938340002021339944383505298996749102658917303239566641007014146639341010407237000861711358694000029646301597969881886792687589882759539265474849239857950990870935933675748370127178955290612625736849967789053024351847603112911432544744583198685751520199372192747742814695709730219023697264362375426030835944892289827540320178157548083078943181020538085129663925740363023409957931024625821480419085339027692411483626741706670143701838351063287578636755862902887673319100283877446045294052489394985947952555364463889040274773755001844679783175950775023333110401744831605922960731363983081428503713124498744025917382712316554997732537770916106593423330956740180408158786178068773742124236338354145818941596421172476891452098513199488866814056546809022145854588560971310638538156317914851238971087868409206406103129372925597182379183471366824773572416978231515732008145854015823932366178843586959737643284647692054206257944504221281856821018841232809351885190884788514825917381211546511065619331827077514151655237019854121378239570938367639275451845909493866980807460469076982601295359579484471318605102539642802638709145202596064598306311040628552220293455822488807587589827161987965377397956685918438938464709956452703685041429826606759078705935256417771988293259433153949841531907718420281405334192693173329670113248842421721863765898349991320789495504552349074169917303588996438380681658131759053403235648434755629400850465640331820647015079061618431087727710607249037342919489709764621654978942019289170598818734779596993956578581104357093741934971235755130810581731092959449505472470790175997305939265981293372017395715613325755154553201341723077510285023517546661894373370789544600831540981999702641169487204206140919703224931526735793465170808010086595071512144424824422284648858400990791205715184731209124371600451582248219602510896327294050087066887911256452141429376976741811221674114482785346581503632176819929336143144435290501423613764870521250008005723738529810718274855534002113774570611169450578142178267795752042788505071509732391873053220487468851736235868729592983038219727236187309972309790339436803088863937773414865996920248185086098636215373869767280422201896465505510954109276170540593263001251666765088429062638009857289345042870548381175338331821133193396951821583736975231703876520147523501166881852865808419310862416852627892057512285972574984849428014042596688208260324793944251191535048393773207122562653884264398470307319572586040953484272321842892262616588061664230950381638753352684166794923001130843116753551411259239086913223616266695610495077156459769003235514368081896812580261755414435751853648220778889789922884847478761708714117321530733619146123830035231735171826530389702899029647597157163216635513071920207963771789360270173430610881067799715421378219038564342608288627272238863807197246026601492234335662377767452708398950133813606005722878198037712985851078221388269965307549614689581539467655015328829936393546879263249240798906479468203741662698051688712176970767747804567783890201291895103492743204680323820041345084228709115652310043063056972777484901502822376063661452244169395475890254983572125396458809370593658920180686534765468247181199501316288349189446581869204806732162512232401762048191185268135118245044694298694485298288218439813135073272377125089954220087563147998665682769323066740717324316555859670926547705438777523930543647942597052550154331568800851398748253676296538683629746539677585227110081280225525620172262183195509338515989486964955408438774525179225451293358970355763441960550436540250289541891055640185429627577977834939425001890706561792672195329111135828621362604587852461097186261830201321324414400545845553953497921272372634507142614386452752623140858162768409402961348940741977768629451713611066995532882148935235458551996246174958251819980709476075781743475971864423633159439684640950089628743578045655917276178273490951755919043826389367910172987745239911996106610350406716339866610613547685622845907012558704210596687058898275203330810801979156492891459923018877400055031349513053592936258052193432946608601255111394963481566926804954829264756980653194217934666464540304930459530330184851548882647516833475485400591152016650783835926355942220471271821507579762878671350327999051464304893469845721743713128835655201722555041614509379511476052877464905366198805288944456651964632621191681212275041487053008928502546508932468986736937092564683421381587532150883232102620297891116982376723721546448893246372604937948094746103013905988880487707948895647396547758651388306017593511623768249356678213872461182118111751515835200415037930075760365085353204820424476718131545342451753998068988990650972168584090977446541292528681933282113776823869688498589360168386260327774468712932311679891175083405607769968238418595718647494156496845808269719982616545358836536183570146091605637577851666893480034470966358157922028402498649296630764203329349317930845020292276066400263202426258810035359907113673689674492385754200003130150358066588272001420683850274670890301292914462439217074514135400090781310773567659654263886802659355774694781488952465310779457943025039596109048579134111873242617692494327014639198855924869525198262166895367453721809152889101558935766708467621161874358581066414743547060482733301792174777728733885137957464427088206232528356760086749930018609345157196638725208636351033702986593067726387529490169296994524769610112928045637721073295151051396468080165335351038035895878403730868168908204945942894775627246170174020094470670060607843069941276518561154947365761567381342914708031917057830153607818797199261998842352494076957329815180763207772764446719608989228255119720693773520931179857542241665889979887554036456126613373057261678043509021996568135360033272130957631563073452628287498466775327680317987865866044465258968788959367270152574243424437683801380192434188822215432802985516739083380516836745316918766150363879671483250775296513448024528291242077812062249688094938203735566754342846793611894952543266309917522734075740506414684119108106602767069424833755499273603699589178761597735009329337912562904340745786081107576701309369860896096720250780010815650406776119104405528672468000251288576838864158118162945454464943920918901735161215976365881202016673140436054374453247257517430294016982789966571517412742251581958501082471037397262302453527396380755921636465668891643304432442729158246305961614041514687013752407348369597640983739475084662138663462437299435744414520174827870937611066148123565214213281642557554744521079332946530930242130434507311878754460460876969717504623323500963584877160164191219437872975114992717356817201369011718238690892169919229908373416179986217196166817084483926985458969011201978388343314084660099603954478899199861375937989488716096751512894888685493076828700911213892611055410760861292111489642216269428165921287540987924048437967608040535931285497664368639583640669557454468563366237772327734065895222403363107710266856603345096287347542424206744457995737415072697214032033872917865397183116973513039155883705216018453941552688088902982588265238488231200787082455252849805587713734447052834758171073848151184231886726050015962943541927083979035630107634158716762736883392467652657302645736624336922556943894734966921269397177252339651432082992185148619488872382631706751061085985508243337154009547496936289796142318207557150486602160327213205995012518780890617787239392537555399407635683821596117208970550396217833483517460353092344640188681070994251791208911950838073618664650906950353330880489952963091925605075342207436686985621700398580145523835771981553036231460631634992299198234175450483845906329715993782568718891242781272534278305486818701072673413260598242113123008842543369807685566031823873868922056508830898752832774016451849508506401443060605223524314270795605684575355885820661029783852122827937358131579622024036948423129270675407872998891453671027403856862506625891288704731724736392579429887672906835169110816857282697222067081948479318157730051825646782310755310133382614424991242879286198967560273812444619265936615144886984914192403026411876326931805014320888254182952215371983955461467231750961239767794277637508670449837497053562156447956162519952812001643165727430262661982620189257142494429108074068756089180678983034718956830094219339953585531943778707089682617591714922228000784110547258134339414541974452633277069270223149974084182684313126921076267992120456899011144470886841104478357168366605925986143646273760766472016019466907807465265808678621335600110472263342007606775630781107676838330149641879771317740535512664886515951253015664634270906237749896273476582608681711916366839278632285893597530942850862958232417666753510704207224560537419563645693010058540807741229633443240538905613764627446097600933337416941544190727212923073955897486817815839300542991095988631090608063043309557949016281159498597120815390018412701934580601636945591537597979807178622739913813084590507837378882339439078018846104238238160325994602232593634743394875130117958534505456642407415693211771236652556664352926535526993730070925963822204553187355581420569442738143192180901977175864216593134787652219710824690128887398831995624618206390765923123332944949858171964913698694963377561679557972391296933170670798311536284186262488284032964581088714425191660617082619517536014886896875525293545285509496515907715145727289411924345113537524597628695083996518830504917948156441321010075618953844944930213666342066770898735096835190893879842512636601418923596077826846051312158284156425331881458994855734235734256308504344773742535886024208453353719362703278691786182152671390475977352218144142663219270982314718815587582421074434656972739525976076783460462227845365662538258322795408062654316815011297269855729737601640341086068869098138391040542876849064558163400372137304397835437953985480651220795423582329472684815054961205743867783114876537466406882946576813553873390151670699961594272799888908547043319968851170741783806886796861261738947566590350670779687855520157763658139257924734599307380077201491494696950569423470513793445118806976521631167751528006614474850330885050140185972597856795485208234270297590182323479128087377688806632391076114081782466267181559009240901323691585963844170717017704398400416984029027362896420075226444509458485361179118068261270163610304576923328460944912677557660020883480564571213414681440599404878307597289959760590529988626824058512541305381561492678857371753024761066829496772312835155024882421044117967968528192881776694142692171056701076285303952372149927180239687178377142711274477934362905023036918847515528999523383277800147231324125321038163503119726387187540856250811675888940152110904099620382471600009800728320335593084662418199734284165815892331371281766627449643052126936625442539071025236514933449777480222884675433616985116649062923711337892500463341438576799997775849728952651880806916370936078645238602441904173525681533025235041711499248104743430814351783286517656656403407320953453186534338580261806024031704448966940141621694476157938232459998438524262453886101018453712219587486472936602156996535112250093038743885830207753054641966129913489739355597538294842030720606920037459945629993257275161828292711093788715750938933764483424022372653040153695313233288382125854472427043139181048545737338484205529707899753826777969793997551376778996397573339300224883505457615386468501029992806452945487959035867177256360066039384962016645698026335297536717793518646807501376190753137133691377896225846336341460503964826539199696093272739617610420702737154975435500183961629009097601642548019863935556331308261012957641081938173990817785934771719498252118780219506387274590251722943762309843050380841810086630014284470854557088197950214461032494852641203617189037075997358435724220242067151952731780767777308096651320935632694337092187417109868550320904622772373560603827803197802502993550231609772059875124293737579688392042360634456450625002340779657235262479541124515952257791154786330891562353974099841622779137121040640677103514928033829456321802245779983554586908892652645616126216393856877380258419251131309383177995451253688745759477766884603929660548309343359473138155077741880165433376483478523991557847111280955100559020183226572238388209332466039323924546825078793777796220711278066108952985731259996653391434373318165163980574840334567028369976378617173980579434787157446104331514707013386341357187726263221170547075709734431654496539347692528608118788624703731722139309480440943405073671007185258966576318278711514701321700879956099811808973109632887504615789662720002082931895365420765674509036533401387861664512988779391961432682293451059664607606253917165991628490404804393075717293342548888819181595401930161518443524324890684146700050756302273300459456406790480638699767692329964860203461983277289001653459815691817334205704912222859786327780983257643526409582925943854280218684313446421027561518048222910117661409334918501400799253195295177470705560373207420770109760888826208436809700029403479907263971186122679964274278948916562972388819376675973131391499101287719175458499706706081725574579266868582847700216710151398722962977319509727560753891894068224279059741970297774208346899518150408250662599906691430667719142432733161878097891142885122751387624028522980142861676003712796016335265182061669628419062402710119527303495935334306732110423228645676292029846739367595766296508741046610151697590493551275735978665132566535830818419375623159399168332047741309958049460268610608488660950639697013438891815029857848368006837398181658386277345290064600484619610521015795656693614521647770992184190543261946161762378562188697442982242141610238418854602894023421999321120796146036598042522250671738582695221922718844721706284622849028916556042540751095612583393597083402893219416462406982521504549529060032760404953959508703399608629142211793153608445081059702470931253418576051568024216865077467028425459284959732792986922935841039422040458424116136060011442363761765885655294623425018019688472586008740419984504557170541900109517562095639102540227247575723903633065319042604648434912101624052299119086121332506239532808538735121968839981519213528647877587347558682610140561054375230552053112992569235841711536833408081908729178743746844761341766744333760539574902147991502099260732945054784132968170296422933583538782236510474288910803336000066150029647545373950747644390215602148569798349644792199880907935846587264793808862722369115572858810926270908190555377345049012877247003084464309491719482428762455109033313838536455869333957296870734716621689969421819072067124372395780404046488415790328687715050400381559866783707311379568311873583872935475103870920920990407129186389091467546058501020544079934569982740844015770667195188403881958932616723734014809453515406492084896723780428038764177616165921822204622752735459795145256596527344216827490310143904270704107545972825548956454889916784598357555227884492062723229695744896092937796204436564189039030862189501506432309225152692104671668405676815412057117448985972470740243239684998207000591988395654404537994982912491180670950969794557207654618841572340478356129477845219530811425158171989303195435389035744291503153956937848663192193087880655533170674350177848554221124064161803228810201539269646156489157981564222779393195620982536790028669290698161526082389790894937718929322361271353455060427405866652220126304361099657368582071894714345641122894907742378114317780169827130407559266390268638851346649767872510307165040113398882703600958873458295734735398048009639983392324823032817781908357293269553245435415846357269059719788986804742782480497513937551058757059953433394342097287711204424322693492390001980326985331199051932977946431263027387091650310273054730523350379653580946824839429631606461450532713956189881551092088902014751046442041206927795270758268757630493222579183299721750296605287163071103064651187937741829481150205054223828031841138971079174333565110085344759621789980181141441697796544485599952830903289678318774839219994263402542048721604439548009805214748619184273832646697885489567388974753506218534687417469847156391358804605052821029412465914413472911812824202384560214962764326211703925741959311078361722731205939671519950577003076968151958939423556057908831273050197140781810307970983374470386599857975568848411459930350433738945174424923682433235373182030859514348878590338636028920136245329510988059828532707527759659764454477581634643463058247537319621900105007475277988916842208692087437868327600528226929222874865912764398580997160280915188077090252649874323612787497344924015729955046619659290794295447384779519638581378025436961757850767693583586626142998886866899169695665785414291220834478201861719365955115707724755707563498543201678019559010685791020844165735952703085712139402375444337621255179908845603326356833619177927446889753126911021033643499429404345391370645978193664423101893993732027736110515943265351177398706798811410051411089754508385632612406528912722577775542568118133031690730865100895414721855832798945265388480855704873914064696230650172973247821311289758775363742359467246193872048165972102317808690947327684138653709032950987441241748484615055172529322684467419674363583737985530464802579096095344665481811450154449486607069725134424347831532367058383591530641008726669116282928078214296972059688782539770674128624824895368766110451693369908306903216904159853564632409100352000374306845695501221468335394923812751944743246427200526148811126138499732064878110868062142064469156470086901065013135917635233241768056083099890161219151074053076008144096409881552268943722647165758733853222771268430812044000137289888242506606611754514148301482184773053870474052658991030472775846315518361676637250443673642998346529550351544823961376171913998569890180823750795241809467451134687315642615081295697883780907879447183467762413209406029440102975643375285668765115129580161560446541661581526303013764479141404116422139933563965644066055929316174593827332713278199835514609333217916517444330336196906788536536601510018637609203185350226729581016461276931892352560117588664588523206257031077990107201684073429643008945724398127854412201513832672284825620779774339655046315053049908785002554470000397632592848368813332630938629529209855280217717473164566958867836920499618917099435044567627423379736968973222315788782435643610039011874301591382656725404891221997820380150322687617784145142450548144635221492580994914840146172581464387767066670899509068613428853519447193986531119013864929168943346768112918620269386969379669651459725937610553909432340824995374178247856494037667609452778687974298235874358343098312629462765265730925131510626323542712586295415318939745614671579604885906963505065584218458172296420352430727373247257555132606406330302912049790807813952614717293894808643692078865612085068420369143629846550014702729547212226023707736751488235307617581742499536100972811858135469347178949981994705709149172206973270932353738773977430617569629816038503739299795373866420479790787893652566892626376287697786345813070035013183856342463308349738797751794958826920809469204070034412588532583021520335191294712477371288383155670515228430632284454499748129732962335084951370871199408181327229446494606368244826675614210359839698054197616273928939175444631655886599634198648129433762516627738018405096069391615220747248593789970443334504845026859874943962366192673254540938092160723766715351181565581576733228884594249772927726772031387312325389308220959156858271622115350621897187292599786944975101029686239151633816325560114029271158039665074807087882290987516932959168414674350997334576838513332894190559843042371362921773120943856580569653434219901258390484211229286667447087914901593118672964206595841092434762288143544646230274036759529560831698317430279706090941616194143353136988071819104813518773382752215190055550351524185742213272792225541410031109418561342920566815270839517963381250216093122213262412214146644747680441044722316791552516836112631309831999461268716952226614462922234829456779477949994143414771008975899901777252908536016740589099820536987786425493665818929374725789047436802825605155372687066488034669397631914508473098335737953085697460519001565717923678444595208335872862751547433745814990339250136516848783851536642217058930715659796959365884497594225332531724485448687528198392376150160020974207897319435210872831673729246396293943103495492866721423977982293456983028672611635636817082168439897390806819300002327739381944982516329875936822829473126042288198514663231278651097984560253225498179889172490498308860524452964231812316574828044731592808493492698938428675603729577789740151018446061400926862439421540648715888629293309199637050401947609791204378576881176710108625736157348676353051105931416813206067686827298898222291532220687140681264028889562822597081392477670072714125148745421514938478314900093379557650171975333200628799303112779362373460693325121909248683757266140979713489466153604348506850046976556581778100634251329967416060972903265284164931536307829667236708493132759579103559171218646597846924967486519084805499251852041318443893803250686155721216799662418245825808217528269335571921469479375774095255386629932326607653359169981486393509322260570638189853353680002527824239342607398740248509354444784584448096879521208402541351102113077352077628807969476046613933620749372008100165868563149774666621494932668563364663738845852537518170972702870213030476061579340369150244962186585180531887175647594545068504946237797030113073591148133299768059790456905050371679960860481047982001988851490634958887711731026718682387628664786359281234857223753957776955363278088286422126555604969127424940192390337900673981035010617064195007507667455375634957742233244723193956225702898094747989213814678443091979027782922020554694198759639431177561320178586181947076342671178356501776272852498179166565639627471780780444596080030576843711054046785568574627721259042632782555382888161130287383119813369003489631601391526734924560948762182873632796572866678298525035477398125668978981486463488512049216842072964019502079993542645447621841327847491085390394257608214446747258939396700721549158153279345649777739645416743648780006513640767960384726261932997014837386734459461801470516383855997062874757465992223323579390347944451915556488937706186394975575875007272933534079453707315109979966311536782893766442349965454603640158091631036351834642403791968518927720963249637914622866355019843634317704468553391537334499598735608024081391618545389309478067205932756425200478663441955638866506729404739107654342873444854176081697780005453149318400886258543778729527835893011093073213543837286137894971648669439559400982548496304791783880286471082919779130965940727738696487542280480374180903824308580881198446543418244523453142537020013345930100763484802987588892787710542741108592936611484491160964537251069122066214834113329590894897273840701355451518874229765193231686227350666258797958188327071377773062694002446104844827683580701825172427380798441582723954235932697603438536597476431639051701627936833347682194826426458803232303182090095688691427227877780865624088396185735314473540369380488165857574397547025876411955195051310670746245309817468732499548860001685824257064347602766630567608785088324861695386177406359255427651234866416326464289039570168982872947031027737302340788144899474936339988476816659365044692901668502539235249211729553756012204630903027818085433773335702746137197379985249090694518363578260750890964108521926536162662692103499509564478106748128539400531585898103699874490422813155324664301881273504721230214433461466862292802807934035989343269541644666727850996511799243152906869984108726456472721304908791406220167091685235416419046497306730070948769573221475987993881667421045091153883594608118415194652684009843053502301423245143764066049261638443295462648289964552620712928292738129216494693624702457197615359249258313565893411924780094768817213894554993012611014151085782836112115623857046389258112036790638567564725507949794574751798260294952995518740424449365731337600249587371223751766493883019468735534312969536703528197033497141497012264298150067437624042395568186058308551623770124564100846629908619978612818255478173323984178134650238248292751615561359037066199115403614692711392441952733769269130760854840444589958976504417682843675457493841962689298262275462585854484606128654405874603354052287955166868037461043802477794838811471830680090210118241446044671850522184010418910790687832509213228573328096085134077910031376125262051458054039677481684825234051425000027656160685365049883985681498825295312499668262394518273395361948677659758155341527768212781950356059461220285243370349396308308100274450902727983345915524950027307370494757820021923905363698129631216968846579206606800476599266174709527102774893772894735423882515825453170473969861801016322957596807780592465365026920752841542418870253318749681240880739704813662326751071715797933837104204218388446496520751821307294943436456138181947903615848502953228864567033222113649529629726314755052018605921360186471184400033259642497306014282493937136655447943298011347103081415090797887763176681393319517350429224211629103284347503247032929317249691687456259006531791816689050651988072245830607136755664628928512718175108461509223358812420391809487637952541059164093849115818807861460737422817509057518754625341478094188019558044181710748807801407335388072974181533561790045667304037951181816891569582970569861866076264129215630064893588872480050651430400886334752259881846037083233386770828907511685505496316534175263550218699773140783970435065153498450107480799810918500575579091293857742875865178744797019080618395743560598085845659052556271977105175205513724970287625043924687778474710658985399110743453281565728004811100345100061172729652287841251807623466795805139039889156156425295236327235090492342001191353067814630244829360712295204439297098403565888088449847067022661706583332638368318577281690202965103314896779140142482636832586952111496450801925940845025082847302692056286130760307555832633754173456799502774911921132844934760202034427111888361436243457682446141212067210281437785403852175684311132958735050612892964750058780739815050576552048614164046514944342247476639232174837134134722406631472520801430811930445183512848882311316429722625822712599359603621092618032394433906706923040837719519967916648686904449871619991358422074496747210197817970615128839470526620674867835632667272799095978573168416364150140577606216464196588395051030643085011558515439312317406029722645140667234311341835439418221085403902273700702435371986680332392173877128232994568474709217734196532824175441544475035146438499378639254658131051120387210962366969283191615056519844342793283971701918556697786245148647930747963948619018394854682083023570190241194417498014411944165993873834855995400421841000995464085939479540423640428461414686172770298597243821236820967188438962974978352880932522830662150636009876018164848300688680987580102413767331675208218690532042861169923034134212302271947267578969627338086881712129168831028770853547536984434684993773575517752223160738301087471537010359100992404555192588531570269668777539940192044149879778078824483616006300800487913495885927507995069217939208594808478362956730129722649260174239598281774262329470678158126413654568060009487851173904067823319550473324193000250667873297321912350791845827243055821285322839135424065491626289607512148462525691275025661184001823604729748151291267182961854727086574116764536795499716018157329214567389409661878791167380363963082323190782432860622807776329026698918133202864473372438843111364737792311384470218347721839899626574842614571428286054113670896101991527915241684709932023469794375673586149340500516365187460457278116041076487142479295593744935085630980323021019432039440768715633313260399466943667861276588331087690865636344393902273657681258898648383895356411793942904050016226270449179873657227826937861619965290190412537475850690120135171076588984867989214971023442347854658883868391188981568800586494354825891247987897483695911494577955881268006200572786193914011991000244077148583152909689047762858372517399585335895120559044666033546264874064401724516452037644547105245295872345475481732363212347681298825340841995827892841486496842834405854695818121382339583222117351976479165745599046819366592228635908775997650034185059851141567429988097537401003542006034892513061334498904568960592954730209595174043130690015521179602424209581507936865776258881071044049624493348359441614142360632906434079075482453276254860506397484259550308154774206138738543609648426282638876937204538375740173552266733566399716159593564951421948109881608044101867429719767708971762265782953526929080613267959507886393110644949399141004885263962563069844156007113398511508505958363584390863873904530139713637300748973403118504763235487579813077832273281176916269961096141512649975881715684467582458428392744417120509247010335656519033600301199957690853543308809184396959403906093203330267142621936542904501657169974567778444193528972451777405578147313645061270534837132069195455542474787999648268067162996703580402870326454537399166736385129189896170883522686514923039762145185504030194195565016247901824679837953970323750058317754698187906433694698061319541193118305150209448979947797944501308747379035909240022262673819487092224716455525086891043562874184400611486750874198236964604895563044106321017898805970151255632086671857061895145391425426680205907662710050898791447567495573641582294719126631309500062198123042540078344426141357019906196805696480443203681125234009523397764217528758409933565879124908766736593681583905894566470919507202457169423204304524391162753233488975838898291713963239605338747195343801379101957992448742048400998930514944120527100999115944527940704284616914436463100506745497782923416852860624090333192204039565562663971127259888583468761281547141467382838292660087998478109462810839516351720291337268709699982809713996516319044846418384671680472075130580509703742210016774263479182282932401688026709057543140526744819935319664519906625277220336644276142631398573144010624447832104208541605630447816142473463965459600407221326070396698161323366214845127148611048703597430406413282069752785260075054696304974774849765695672291817710206283998157561501516092074757558748007753911047069602680737085186517344233883823463529208705760251243919817765861488286812094409654434549976354800773504844768993397300863696828564066408888368083267540428775906956906267545767858313396106853607974516117238754894645836355217914572168979702396790694370095985604329668218263290025509408154748067649314245623010036973768110844913717711240126444940544203714793580823858473111898907508214162329719127591177248604544108211711454066029134010124920873300616664256060958120726050364389323709734843433654506563162869498374185431841718491983193112499320170566173881151322269351394646532256209630220205434032129350956389152595172477692143844577660456290101938804542063451040778680859781633841746192357214372634322271126334295273451817905994931931881044928990018372739307007705198239315526583968177665391470180686935402616456357756118741146784036471290074286781289920988926422050373596260975172449658183510994704293657225434758147316178416291157313040475921969678573602463419305933835331581009341543382269124109813735060237161588139711752091332479971707567120532720306977935529093081346276631161419372996726299783875296939953668476553455196409382201300414856761642089397263132053806696868321020802741963654604437173572005258889721114437151105650338202120675637719613155670518172500388475188225110595941757469732215914929408856721181849248179041748982002468802341402215118931498576505968702105046759998603546501543429925031733604999724889742537627210156057822707179856115048302331824998898249632503551446748945942159277966413368141811264641102228770537664610303282870364230133876743591278565801690338225276955221936956356188174289761252985166182652040005622749234926647547085627797434962175437022393984803553944102807672495040343266854784179758179875556897925645887803157990589416559610883705362768044691547659984908371200124900754549393509846070235869941366626596779079392323658848201788407224744470199022666813370798308337166692786952622803102490986220237071689890311443678488172007491905515809414172472625237084671600128132260855935626985974131679071286319318479788563276898021041638937854211269324632594956941498376441470459415608719221614141441789836401315219321792186659749917884213498623398585299942755793307323677980111817317957349305954359563309310646916655497440565381752489694919284581427298245085803142818520066990009531324138909354574095253177100559321053927012041549617365048358940278476868670455983586436224083357788376577902902979838074339883523535743973417721993859777691057049826309987415193064172392377535606074818927881902840083489717623584198678104685963769708143140782587529877529318008660428090295917824200246707382915022993057992550746856250302990053513770845497340508858387425183271592489779790820406426884534973930550906495962170510899161972557094295355906833486766934206932620948458763888054052095075997910955429763367981472772002973408229729931571928945547535369006397274122549967266273086909903206620723060391620863829497587515464515825285004669259399610093441151950374738955194818814864905279548382469191652258838199815856974624047035189791577274539383974278744862727020885914717536384174792897533705445115036322280062393285626944831448412162113796095785529264285016395848124285342429360517839329567700099669758836265760386225982081512829282085401271928252912909142691268134930274466285381306142909793116506448286128843954095651567729566733846962881529450281579045212992345107518846171822327528335442694934067416628325481031331948224909976649340143247247109493357871938459796512023749507645717155031682938329141358492832980995268554097182071426375979702429393875160880163597429712672596114627575849419867727599568006972074326166874930620331201812338721505021058660710678521445382259891223815936538321173524999876803230743078359921337010384136440736360970100665217958693859773694794323258756326072384428947835940471327086978526625593317576531030114282835715817186266934160840850529366979685666057168714392459837511595976101528684097198564146271593970939669184694181695953620874535656098457512533046533908888601478325225753163939602778554790888593914096131696487116304830153443260248347810746004874828034849977388571484282728942108625934323016555002128276500421437071194812528785692667496318552455353449002898566908966103197421146019432871790844849341948013629581993618722706739145209772715696713854353854144185358990194263563417686175569979175581247685647785899840230722229624451357090297253532412305634119361155894315264898303594429703762632210712147007725691519819947209840906317868658023012283569857715595891241725120640403153871660462046420821243792655933544032252840491627589750479292040156462108980123493854724546135066936164846461342217654847912147318224570719454362302110457169847482818411316750277644344523985997286200453708866604727775190349687066259267772672939854449118530893685766199723931547295905984731051781222751082684813348043109275973480547011660241092696935558502650085186730180234076405849834758546916117052898907609401888359823805523723727325603720630739664913890896398809984397313881661398778545256077710180246559622698520841032537372590202852544041007738786522139750128616350279583500293101870037847792100209408388147798308340672421422605420971089867658548302788163639181144810769223539338136796102641237160946816662723289778510808503958825454916724366224998171585337151729683045490809657656236021469250350726528925049566218465724962303050061088516716893010064003748238506739200256565487286598898671547911427117965686605829535297367278052870744673614734056673756243606263040302814835521128258208261330047486938531327256162857834759479280349796660077473713556485993769599066117833511256855419648684449515097979955385539022187238919402791882471085431398713671838367311166085741124385718553590370628519263205978573524618583969987889710521690958636326916716834347795422219724015610755252868059432274988057026852225568827236349980385589867952034200136172266899766815570574300107937369947286115364625032609102044125781842861331619114252944336542051308170782832680792954363179469718640894744136095590342316666348120648543855335232797867011481103790931364000183945579342111746836457803711221906935312364150485124695505859990386981043647536273420910200335130439199450288450924449979289544490873077555538161302531707380043687262079063468336334431167650705038069866420977279469637395427859040558468389733352797893090337009562922979214885845930463990039655640250410570368158601874797888966817135830574399542817568148672658810711082765181816013551270645523041949625352955015228308375811674043840683111412036110383256725188747624658049421264498016766928971756935213968236473926480746542731846246790434105330348996589209522782357716675905184126411601025235368532989332947934002484082281589832589923533594889201888494301516825990021973011455551476793172518610878491217565492037912046422396696121772058177024385502923267989488171385954935750411035391536068824407434338215005954063722471608831207212493509177347807303886530735327021534201785651560112859083989648025005434009396266573939622648446567528232530242269627144290967702825825507282896071334371765618455774734819326805863804330716170201648507138470185311825997312760624774639190439267302799873753402290401081152615542766232165357656678820101815795057443141968613443483282718825711768165146441187906472944755106161986030067319492966340806993866116003576492340817629645329451799843330788438035487454042114920022575712349887202305236443018440760983721550913968082976394085321803417111923176870744131019389655975511535930030051277023184273862177472040703228833759937549360171879494494871200344549009065570087735221165559544186833732605168247830341563336837577983237304998185487033381992796506534118621244010388499246560358563275186345635574431396714030684980108490533854615501145770872025613234052681190850336592350905106177527191805065615441508503004877507216995970028095046713167727351743829588189446486149292281169858378967343132137847014432942288597833749362382521867049676793107130869868971835469368344745137473035177428600639930576025017018385818050826553037828702645570210624441519429387635094029643217447146574200304283589988449252165932374918122239089159144887922590186858261529669292582735968418289401765560295807003740332740045430137518299332313411886128905920339824401417693145951223078851249399314045171588160062022194453364950689791064757251363462003242823428041231836451496763878220937285715196298256477805571928891100868480656259217837482690600875501175598736738253927940149108527352601587143111108724504671765315446820616102160234365868749815465000011075198774241725737684202505107767057768028311671867541098135747133287410987234653197942057127253458449138188197283815869156777081272419633704079818077838067655903652834891814766911414556024497901437154186626642976405509418496502290354471791862694075934854943803459048208723702518369629658397702352291059434662775129767368606201489972019411472311982544345617454454636283058610057738622433733268277721942089053616039690535101242453826965735066744861446253773263528158153536078915742741247555266068002969083990379865730067845198887092012299424421685726684523896782565625074971626944771614856864909925246272300140691600169370111053707649563011629458443384129919963691663848499851234223609957061799085603385300921897158281999949942453880873685481440599259838754766260910661575813388080663396742485528556897402863607600784018724434263393205316605530101149137973532057767818406732568452592939646575704607385038972355758878701562736358255141680584803243630960293848249130314428227979408451573285322363572841447450572690935218473173594693775181226349707635442125340637920088410534733654162634778430120284921819321898070024007004224845786780786121581982349523910684954571791608023217760113168809023685427531783586669815009381106381618784575874110739065515632784520372453926557808207805325745272340437088180460533250397699415093917886110529670927094160430223690199497037650362042944014774293677190653102314491251901096815140853042126706586470446966548342051868304378390425802112767633984673031399212672169247806484637521623065011225265447990111956926683385303131273044516039839756851094538376384067830774219254439170861775504094388019076622060829933726381057440521818059489761989742054053352441828124845654963476055767374492907476395858149329540553461665304487731702603778987110286352231978594919334365264522117035359159403836981685902309410328764136077076037702160921378212492065475219621678655087181351309221882768072810677041828703725810198909245139574345792467802452872902859910614963326461543001069674144746076518661681197846516336504052204495242238697736141238791259100725059011338413423182452248257403270586044972865967620461732057890483322716580481772505202247749659756799005721992658681785443383866993186169085702602502433945063596606785931495533961363850523453597331558925527990596160495513623366554184852216426408095147818135426372777652665257033086892258584769888745967524988089393808037027498764509192139125386814671442169408906370952230896281431388750238131462772753091121041654128402917987598409252715920875013957551538350805355721770069602644135599311826951559151258530275300128798023034455745193692776733839880237444530855188373999073491570487644011641980694175388726070972656482393257978459806425057432529424788753631242741909318733146943382151625259705394993959273131482061027053679065185004098401726212699524772014160950497405968708544241227013948849573297327017496950300238961039675126014998961483149407777137034828574035667012685393034541145367279512038658364594380993400496778840746010017807989156608332495050492975938784301042286008043777031765813913987145596634753697275573048623861621146984305156340836270238982936739730216846150770669551617870926952103597416343639831289968151326035201243238234391727434480519083840553786190666324643308109551050446139710412159063988719894589589773483681681092845519501491750941738927886681944860632354883520054439696040777033838971722779495897230327299150692745426420704972046116019632993833349292649927359017130051811408302082085930738976388813322026516529524766294750163661117396910504945749152937670265619605164052461404957586081451406468133265551098510175304600121446424067325463057089152961162127408549648182136494640498272072327789210898201932295672751823537168532645968375191270604665669623891580610311782947708112093687356908928387282448561880547363826012385147982704738052611277968894087280171863506383361030057647478856156598606088390867934251456364521124403615104091135005547535261400219661169893241791725895095245655539370073056487083083189544528235954056803423935018688244515128464357149611564237297966944429575245539068074969166136160507568587577207049962936787543355614839813854417882825435597203423637507682221368104978709892045185556047290761210183349202016149524788479262398618051782265787796171018652264355020687907249873072398386698625677704298963316559758294768072147923359758537824033346900983051653460574405515740539012595552441275972870512963952802711159123303155944954168896643522606110301960900501747268678815991844143198733252461867800504614655773401607707939014445021882686552084085772120700166260924036188812479833736900634490035402144819757794799837347975925030015088807909469378565643062695881053048623913573612275399355832908899850476332303660510810586842218099940867741010041735164851976858887741531912443737065715383245842627936388460494230699303906153063799441589044354186304602587376101480267551044973460726899545693148704963624221318140203942356912216236911736529635518735261272770231062987206542579686947754704716356930140755885563784739823397683810893128888233023162452559095605950530600055473114753538703567351180346800381756408363540240975798417985989318154968988885899077922831422371718001253891401178736982157535578075802475452968938846180085142537185022304255712292722561484559367625236495559434010222991742663551729088631944626258370621519750493748911014041784278233985129482955654986966737631750634148201311419697968664535954693597647839934853026093388449345551439684256532723669059644289031285058520880990607166310764107667063579056659593660427856283860248388917249202094004517747654250971479277710722252772469758037508350288202841473264326413900737315251252340813372412716782539145960340504488940450621336170789730437297306133161511894992492810216323533269441073530863587061012028283188665991095194491347610398422692290132257219812755782251142775723438153824389175616397809161345306632933008889223514617070558600225176955785136345414808803868996146722350768744659119959983619155804350399764271645694595644142310053706495319686972976582628704775194252747007452205981795293533477239633147729708700330130442173802988048878241915501630337298081115221262301315635384392810269278049880453979097458521156854489948873671619454715202568116331546883022194044129570017684372212451002091876543433385030812550526896460828192923272641767265567616569894189107238492795705478898317279680891483157472685184555157502824031695923104020520078707771160959562290351276250801805078991081303572286957827071839775808821509323512533902517270352528903441282356067970010129279192513505410730484136524926950870599678455779234810857168111195733578630823061525872100193891384678825720159708472652514870464847405610150383188742149950712435889492383523516207114471517930198581716389182458549098570407201429709950850446134183169270514552946557858162209803212066387059520434852490773598312648423854421967477128249092632184706095481578987402901226457199537649842134115753118551751513444848100802825157346267292166466790757244368023635265762872437946454792990344744978547991719978110925630896648033580995976408819429183807569674030054059017957506802256749942226858391493876177151273813441328648725076099467557340871753066073111488950259867068965567618636369475892654070502302285519977073815902427572579797700261376452712933454164621462093831099833420933476942940004698649008465693319072465150137194342679600585935948343243187213859863066159749822712262558645230242949144800225843972150562129889347430580027072305395700870512423135579020644699563973131154026021524677000312564340186299975069987200633922336741180364044506253359133466255618588768548168257567772257274215299485378421721120114241468382510947179397987889382763410529130296780167916788751446352788615426419651446226944164096841454306038323567662031149569873142630484699770927841155338549524074551221839664561077330198293833336760423486581047186592600853573265081864897562093103557977402819985614076322281467191833584992472041597326624608221064568728098479359292194012329930836681473313804283029514970255437846723483902353873206045578938264258994046740292158164186363717205037572039491001632341324256538082670507897879947301907417107434301912166618048569977371034415976616613299727198449818382723075768904788442584584227731076636063767791338171130286825965156457618443313188279195396042926807816480525958448101430966385849731948414459453531411562732295678229100889878253670310140650910227262229037433486705818235496982462682051382587073587380722782380506477414764984956097060578909863256418433090502552794524798741203287577376465292183129621385445982676188375662627117114745339010357284118955241462559653584010381543554790944070411760590559518825224179437474630343474771729620485368148582783754241574952046281527357877455557958897739842381159964291633435391150929191362763270453323160672217908567774958824546127426801243663762239162319842780400807052433724033265502089687674111120632779154102210428196400416229067312386004601380798142305150195577141738627969589422261491999303764393217141293360926785198860028211370958316296417609943222019159415929576292376178666102341720719159166453900579804854032262404227653375912335004120682080076827409341055006231797770775266105134138703485289898072225882525172629334127749351349164193017971373499890029311733337366616165171102948446411769794657451324449041728337449909992767519152869163955164049329690569575104918581380250052797282850189107420823926401084989063657641579472018229212028126873310948137156056625071755453491315636492806287330108287278988172373376533034864542159964223779139242249800711417035581656609350619337264579137732589919469957971204115056192488867855590634429370625738643168417111955006653186522568774474589388156131390055152355383519093624036037404503459650174047335363959100386246967910494229611725740173752010082920818549659956522882359035680956364526860119820660699632097524095600362740354838892199204265707143243330035161649259967173932486759584908636476722471159891243699145466059905001864373665905232449745907109213615485031638896466420840398769212915194688085525532305405312410553367705823777852382263714904175816839991388984673885396303273753956123034463948590556445291642972616970613040146416233858165179697935100368779424731045140744318794533275462917496848774309620866972694231841929652626433951263667679019202492904595800012120598742530745359331029250800815042004369720990347478460364071049487647748518371789857748059689299336134757628617769574802095984438236799871410219001888103568059743015031167143578046623427838717741440109282318981835094642572986518871209152857476968882839068706345958359511188756618059700246689674492073495997071959790059754854614448154848320731810342221692644705022559761413475160168936585978954149304965089599308521478898731847712343734920181070511912775776731445191900157502553359582671238082030604821534334765387244426682885666483388898200849880596563124791769014819441557269891193234839487676478822519663594916485140133446961666398307699023841527625680019242736760503832962063859901804637859618262636663953725781588117431986436129792978902212306574732562876425880897151850117794638110175486358740837426670841456764025381114750346659441556274065620462976398149515670777600305773603407322295364628154761636473970472405571211537356427936203320425516800563094935725444771988508287586287585611863063553939369994581972467903254981610431350767926850015584100355510782154645614672861219140902651246693202413129755508701638792660101818632098366759419064590700986363316611933937242687047067835529405622167727405087141362958634766612001177247749433454938037523371402473852434663948473101378066326313226499160548273878979113082247481200637785092633539169136829654415294957922556803666997389142876125262019604237422492703415792367253582517417374110732881673139905100319739020990893812640672367819065360603922019702098246496814230999714549819063559902041068865319680098752895032375805200288808888961490032493761675758305888518126355773139790002777918802312754333943961656372414911886728027908107280880578633763625783850801379999019672104604073638006064319998101992832714596071920510851342853326851116839480649938422610639241532378841984302177883977369633332285951257654047549128492280822246543630831348307129458605165498216254982843182851931314659946205437303142585168465840079837523711617417956678971644405865187195282323900271147316301108623783987557409388966990882515933388867289154905285866378461932715151038818019062156332966641768017192537416978853628419068965448270046638340491952373352367721895807250672075168683911230570047568544371232787818829186698256624318837604917317840521762109552490570777359017268690529687484997568408192997459114997332740812139569876424660791111730783561720904843318398810486961870359178850865416507599985743804609875206345087796865701054405408867548974086452452713625786163196558645549927723983236119368213140041971072592198599567211182175902440573097558647654168367961682506629173473104479383454694515549519376407955208002277478438583409143285429018001987710604749096455852123080136911504656320157074770688753879173802912597742097825784473048978065013033943755540629833455704735193678582903063494491016911851559971905798635359187528352672377133693129586910544395025036908858019054335575903402507448999149363359093677459597902846420381728067925516387237300557843370902276783490601129684215566703453815400525607983823813996981876908574550602580564305323439381447999708958707828875667907360385465213299980504627382442562576080046031320950786085717039861366704685503031357303771151327592051842184709972199150120432356475243567828377214896514893434295855714998896922839432495082128960786762473342613502808902432372809349084511983803528752307565548844762888017542558762011558360081891011493378320151702174267602938509662801350763449828913823630119126741757985014382710673029835142231378297282440203625472207490925165697219775352830233877934530252783298555185557183778667397432498126479893431140032614006377129381767734012961769148975997515696108202201508944070464628080387565862178706169709961681975254533272485888977109036712603122514546222669921362567552455607024759282131829378951766035574813437652410321208801267660746495497929363358666199675979740059895053052806193716726354228540317096591082166356253738615343279055780960581602858604268756197855207635694902299881185829888650835355505005023910209080384432459669662177136214550577791844620932690404681886079870942234136859533263146009691722255181496224417444166741039313428182741050759260239662605733021230423073308203837135978387318812543379929352611554186307539068821742832754622496673493126895476915719480133509208790015014859398572718407796886777724835533177433548759198615888035013626963448544838200682827608794698183123652081701179468053488283113051411394115218158663168065032331707204275747317807512463031057187736967108481850036430114655117028915435824658261161665390492292820450501229723288521930365931555071691352092325108445058475695380631053285334762836804918809316186998591674542307223177896856393777809139590536857806863333159250195138510400545092273729830593791039799627553048239054076276066582988735409038367013923458589409847319494028191376654886102562694890536798899667164520847395520745300428150880647672800135806769464939186605093411231070294234595435009412045921471693617261083181364561457048491434938829077429215691702889433723057677316531323317735636139878605317908999347015076418102981201066549931521088015756967733772175882967966444308674433977643623024084051198395518907271353700078872753119907883406829645610471054102611132046501055605357995535640654699965153784527085040146186226464108699066302633948301462790644544062871766841001243644625195957134434871927875995838670740406612163997826837011415611896420696303022078307647922010069759498458290639968234880473016408797929751503984375595937952352657968226978087207408979839037548383523114698496250850031659123925099953760492242113206956634732056741701523562332073599287551963600460777535596249426445188993432520235920336818030363838528101757298941667694546567439951085415567430757309473680882267040825227255828158248606799217165424856307621512068671306499025669987326907142713996106797580163038582109353009168281996814400776988863061561289967665806183420661405741874183116510309621955434077582042165187819983001672516314284180885624621018459954168629274592476089187410617269379270040576970984356399434554204836765795517517220617484774459740410267777453660088560728092005770803576813100997444106638314413280425048408256145116982791216729451073384362258743943493602176093015557867087390273885114838067092599824244117951571160728918189722709761536467086029637053989199834149244857199504088707762434691487216629278923204833232842759010195980228841263394636127970059963304063857811821248898619917183707758592551974834106692844004960499788381348621463036582458077726296795650616005127062698838767582098935743019456978535368517618485085238248839940757921396074873531994302082993890379773481871845233794517514233878954626035968874448116379298227698925335046249573957355906931502123031822407365337606246183038991463667053432801768695547461141007026245465069557084480921324375745776872075625494567621153992309124319175207759414307144663943184649558550760418543471158587828063690834466958110980826137075964885341309188608316771700161944042380111342904665679697737119182299616626658233689595853067156402174656015865327737060043710180648184987988386568922706632257415646721226470786001174868714080555841247019787684517730202650393905737415210085525888861524207862040810770383662765953352048701201415561140459336936064006039057584796673562280875374336658841109976083768088363792445634353092155783490020324056007007635838744915469763053744824485378855246515151208706042877274747086526621827613968048767895186923671694613570188939105196215738949265123998328240126012740255187985903353274479432815374364699707784036894888515466793995261425396035109038078795382703409653618791791033107947694386741249107154019242633166893908705978366072108445819100867632418043091227120878394437673086719485016341138765844108940902846250673293596569864282983117800678135124398537765826376318786118034306103473937805433007983543554507396778575856232882636982648628474702917907127868386638935958268943674939540736564021362926916306827190271071707863791275771015021424470466659479860978881667462858669946737509164814607889991944005051734810018896979431070250054983471787130460765316899393623700673942207828823050226871069573314367273980603590776056908689127848800332377835657466834351984306527280023946945546439269427962568477180939450356786199561782205401061841746041597217531853753807939241909066430358399410526571210874151981872180946966042901305544915276913695370840184184931836173348327595596403203283516608185229290505927558990274097797832451206648596730829695160725957550902848488673779704386729309277833364404162305467704411089659142048714979190252523598747336839948455144103905566612734574915301191865762749852716144581818620684235748858370669723351005494727172849825314089987180767438869781811170858068042159148312661576177759888325486968147288951652656434110319046687177633842699315108996299425223952227080100745421093986702243208259873960338425861710503289938352559673573902156027869646453488945775458610679514121681269960751336961714481078619768864128304149914511545889877575971777168429233945408819162152233780395852691068756458895545833294966016003601004673768797058253859487770918030223730603749701309380428177293291070543768042996126309314327028176888680708167521291830856348291183761040006395301236153847208393285411773973945300587961909299407867150800117324143838952848866567824206453668338701130618689197698596988677255085597520185324104235211535762620587104795187989106822436211025062689263582896640645388965434604362893008027269180880307471637557446910589838574644473527240727046867184896582306518971800758754581886804750703688187003081599799751073004582103433645942992323870283911940152716424334343182958549493825432591729840457781076994243493543885021631055424638453662526759073477548233982204268122581529495525190776610739171371832136215430852330263743024287746682403482352075029512028207510564671593167872564927022231820723722142058377633683900065701978618672635233172961787287877792927695743716065027697993892574601826568341245687990987567841702310197479000687720277624171612648825780388842286350759317236445684674732740064066813787969886338300129215624935443081439897666879244948014498189823780242354179454298935926304806520443144568135771456804136696177604375288796728246389094325641948756814818657840030190763154874126396472534433946557937735713705379605182662940781964198055700506228930948093202373400015446275271156006976780243782626623496949806227967720101570447308725740582248776297899935440680933194625524631888138049558997607349590570341691003675835039749644192732957487869765238272411294575682523375332199852213999135714541037145386210683824037706375781176597434622191291807108830115685023384716637375036942926955540268292830492190055073405783262937495205230523703246491276505388019480309818432228258374350907016897880592389374878315787881791166853200091830316968048760995285065483688357631561430081840415644407672230300229951585247752854667123591467636669302171595629540680134863152878631987865337263068387628830413251502100200640678233197115234094230252936777030908798638754979872607235964891887922387102060913731120481898944056234305669179924319602250751675560927361818783788006654808400758949531900002880490636788674394017665879864721818818997992408039948430013570018120165068109733978926703688684984812688841660287273851212359696421796271485826457522788770461108610583306841049097275139233022672931445569257067903335834992906904110836520439597042038656877011721456767283933627617590034626995183222807458106955258652813645916690283300837538031027213410471217791055807787697542508883006492303763964230456201808911694468091928594921992536187020104012747566936746752320395041482296238918642514605390029572242364230401552548527568249856061262539835808145263651203090851253119247380857303147604177092457899091815135623546637006386516536430576831635327670653013905312136824678428893609830886528139936689072949906222558190803425793933209946702739685449110216722045514644494274508879153673770091702954850138149222740121080348198207792406928470139166146628096507975630945004804432611788532410628399884748128107045356053176444601530874628408220415746203283609998247133861313951814689589621764209999510238721879279877026378654149840117044134790316698483214907622038849280274828703198237092666302468936881544509368026233227938509081022425239253472050534634168156801219642974868665921665100213487751774927845156229028303457165616332462148011441579288487050650406143064948342530635774352349735890547434734551962583243847569599512228071561818420346457924249846197637988265820608589545158739894593785209660053859052885085349211016290793172368616695960687321376332339763732919167205961708721035730423907768165197175105305463259734310310768495730558727761958281219654536268045129725640780021908675192455726180941856714732870316624783879618727489984696126464112677154652642189338605411997454112310441535379735183045580513528643374195595720395366775337063946878433156754241456851252131617056960212921604667898904651802220971583454988915607801482698772695337917129975214380814155843074878067862688523098918437244469864534395411646338722491802885087682469491448115464404594464336301074914777789475070809219646044702278789096979815281496677860790271892907092009941416045428385183394814352108779159229218853401224397824351524936290721215670541394819747276895228863828410098112300281494594855713422985514962017761803368973561783256796774997969377017143471251943678293599264854307909265316106576047870385656725449161944079909193120140772826964367216469712364781373521920834035988339857590772304221056450780081229853248597386426909959224976237200501449729870303418821048940581359455464297438668358668013252685109136362262574623427295237398547201977393456915009357658792522157812959634197957022594414099143900229635358594259424091447264770095507266167333249036570127090769765861097673120777366153151479082396210903904591181182330154162843105825871025017276938781439627442246975964007093500133152490984675367007340236619443131627015214904270520933445469667804990461189136595570972267404384397618247046776418418800787337173097201867801684117409002164968457960204639424465803777140386106872578114355434200028417290543818461699360432013699444804310257381706018347787657678565593880183875539478474946222744033023821317820963578923981311094579558099756407665940872569017676072831727473825836506336891042298048783412314734098500318426811912640999437277354632897968785884262833603326433849125717706485950947937914980857712116338972881673162256713871412218039575639786130353584989272614518583519748315742406207957363678068885520160590987191420239678258815778620655339469350660707234243140076049340993833351438404025071911663030225198289443173166655274185931999107499080624535648147652995366042007721457781899712365065490333908573199971768887975636071559236408109442483733983995001028420232900137969570149952699913151587695983901213552225325163293570311217611106613249219179649797030543939930158898736713838138109872918773293376973931658816247553222611877612099881257287458851447131464406850377383771721071319122293809814879830368217035497988358518021476292785292693828698102042247333755288552372211267510047373109971400234576767976208716356082451916464003663420973183151197597301476665501422396598685181236971823865012279342549236933215847984615994406167721230342335616066598984550346602549039151903811772278544443767708142330636716436043803539081246996691160868031405743513888832000780165618219741503357342587786716457247096279586352826010615312904697206056330281621405254069457381398329948467844153201880225954469211924056552707687566835058597484514116204177509825575533555115928497384651147909881935621045253260614718960475013758180871006145698466584105669054515795321945779928822907130322943897223499442993071398445007638896523620545985049935333714952449504407074020444494099008566531818584485360923499228485493837114379554587863037068552490222454369957504492610673795445371186691075840246061203809379795852052867735019117255348501790418688150592322718457365868191855757241073760811341431971848062064439122561756866426821073647855276230859449867037635506603105692882182311446598517556462051521201187160000802926004084919214292552790346609057446264547154382152151970368390340866069351837788329240391569171432785273749599301422282343501724618763655259490237673592876332341684668426478526458205915348347315659160569315195520518347564760268289465399140094526814367758734960837305778368606215671090640012912775789558438617123936155099651709278331817120437070001867495535024431001676326950212800816443899899480855536247377088955889317395486698930348925260929340518371339800899449325312056378307122617331430174777652356334548133906436866797462984167367790912100976027027009607807224562060168781649904981265469265797686808870912282367452398414684837496166942498532937366870034084404389787758505479166738322696897938208457549917093280696469508951492682774267962815603263588197172449709672367300605407721267567521567558565554951126719888443657121772038876425145246657912163435397445224328711315457990412210992228295074194274984961443233283811390577110037544218858977869992527347296350326820001807056291337955424030588306608986329659257805365790949873908659464079453779454233684108071332001001314380710492239480745719068201946548272784053586760797217799750199773661854879412251911375236415149301086085472429112359285698697446502248424967532398009670837259357413308476965552504321390542192421240680324256140334528668496453354444434220204984616227473572473573201904450416191265552371283680023160427144191384686904111457039142930009822759189889205240623227809030589208843409097453549332563629190791595321122508342459315605477698452082578450159328532153808777817116449021571031068817662790384817176967458379096210838474004954101182825064091842615320683364282896717713332251334315168491799279787171331675750619231046193094428116655317849004384039704807599574628528886668049871833012232085554466452041581623042737260643613942101779771349681152733396546871646800185140237276552704191982520097266818726958608671426911369532569453910642531269276607514981623517459447939721148252732252135691093544483637771014516227689891077412961816631511999850856360165753075020763151191338550924252379286288903657449498702169386381249175624177625479039300662635549942102814110881446839596552041437847424218430959744520106368926001132506882557330821423512271622917854635548629682525164986006306866176878107892441150053328223298149842298714541873777052024239707270890247796519982696650403025983173738657142203327629387109919499493676944056876699344784764286815831002250923879194452398984838471797474421803390808705518133651177090417657119102285146941996613119438081327079459880453712376021398005706154626049965291458601708904290231535048759893031573319646227931071774115352231942271745566430360907196594909565402028060513001122312523032492230770439882002487528586175448718919646021411738150165585775536346716096414182528571187689475303843771573547950034806467213659732123265343547885211873471889601811772681001089636194211349659539683343811232465531207232551305855234311254897818967599554048953407356994029559601801741872920830767840070327089682897477630248936962647110512670054666852893180310633696518537500983779419679875549866639171035258427127357656398174923963593997702526384188407140015569408648056663894061313587972707565538355304938974620008006563607318132638022711392168432082604355760424932106073090702483884778977059980910906539504896543074665527191711355294356466140963241734576620470009323264338550762618399497074993189112729283616445685718999823098883351894601790170391516661636967201334586245693749475673108336287147651800392586777092239046553584514360374837191263721603992003422981678281010428463972130025693357719211276668740979630577843317127475264200818860826305319885289332092251539490783781487769144306128897082120151106183026612056726418158630545739691044068212182056306280336127336182573686996851081406872388339162045239597765623709465430033704495857958143138636048185661259979043447496502385386023572736792231789892956928201854376289862422405750530125563412905995918645141674280795362104602470207593426958028235482403380470125891613455334908512789516399591354610532245580254746005499520770946057268972381257704661215847482920289102455798481971865114424819293461561209128417305278007762619129913969332381422056206592607222063203139307591968044238689804972077791461808363479739546835693807221590871382097707826638047574363946899429541436406254093943261702771109355176743102935151078412188938271276149117421541630563306805123042231669153633466087653591638678699698949986028275547300156300138700711073498220326212979218901126752786763978745247143209673913896381501783728316912911843220322679146291435681457628290054535291925832448384017699970645665701123290044055389794647916882200424912134813674312590833178952269283122139347872883955350258548987940758286883209806828169443923313442824389960685298729164141320414552949344733650445252732542105176573966747494092212250036210401293442960526377042917249932031347700793045135140240857328609284503476291758375932781398021689788246155696634301746148544714732942163344005699950783828847007060335816211682406013563861638124479093807401599637218223456338759300222880412640302022723878239666243292815629357867624503557725671725839626858302827131719544520791817423343138995520966882667375661965884042401639280177995720094876083024355767314202528445507538942667384332609697495930014205484144914699038199594379324273481578062492269726997549202704578424366172844333433922599643596561646158913888606307803149130972844466109225827317956048310475667689074091334108960746436719698913703787481643971059693557476721161161419149395487773092670791872597713589661593244289265966726219587020488632247100207232112266455277845963528316375784980722293162078461179360846165309408864546190770134284557571673544957337463809582355061183530831282223319971322334374996839950378282026246246822860281294304104065549058832005619325338997171720159326435351514154062110559169249703634635914371508872563689787975696605509362791857547345373435491670313687243537221903180390167996187496812230661731635633894753991408552161005958416987518880816622924084031268524045935457383723670375764926886594206054343493534553686098103119586984717629069716378086807122241333390601545178530098763536522673690646915524948634268259968606559940561780172109730066221072808428318370583763346855286513384787931270911206578807224779328072969473648113921490986257867372782050718941728963327101343663073772447041664314649612567769316691600449129823011010782642858973381353491645229494998439283648975921857169797000837123398170444279990612583171704855062318408599430963807455939752519494002853837498200878977384422906360200226211051655385638712311697684404454340102151993708724536640913404189398042022187706863822674657510276133860278476594020198039038165781490619244673757250105225474303877974183377032981952546079801415113177181353153497591677653701153895977678329181789712794301378600135787642324595843555037498092049245603433677550842580921855400180584253214488595253915962113247964071669859311817291493542147302119036757058381660236249079471002850729625112353124255286636660223423281638001012018049656145432895951562437521593922810099291594670087381885416411249317436424311475923021322558467693796064909796324310230954058245234806460144966705573189644509451794352035045131509301757811849248111511497275170602782767872386377741525913009561658560459253445615867331642675665397678415940618498034509612055758122066057888447215278616543141553116922727995041952605535829021047732766307512186814712836558171349213213184051154654388462067580610684995396706923929343812938696556299693943778329121416766910802582820503805440501794929808889515680599876595443219707761373255655102788062700191171270883967316353033117386151589732670220805969204604315351414085101135358023875086880381469576351933534464951935832439769609955725347564550990797824820221393866689936849006412795135560756038464875416045009035681591882941834838724908557925696144165564650030338739397235332327540411312490615124638923053957080781554673860327779825795789660950596557269919184125561599585897513449725565764578850349715104015825397990169292977542739414921702179693956311920346279477048761750868046702065901569647079597713472774501868544770471720514820141803699753955255690394837492918916232273084398936095759375748401934033464316257181040811159701483808558474877010742000218401019015967599439825812114965489844072997048744797264266695874813142235276438909277058672184034259725880354630019532655591928701525946335822278591504835988459665852568451199564186736984909184333549368329545848980150804942516675242131159794469989387177034723024299255292510195595709497189406824536799478764756292182194613829692744173119384554724543519612590976918251692058762945927867174290635038497938471475833311426775081719704572460241035147544477904224578373370484541859100720595580267889606585685282333809334302860057963303435517340576677508977495227794212584833169290237896500074665181298320679862962037506962517204724016301399770587886854276302553700337585948123993042902245978602631471956957007248389479556158035242191593517283541562269086460088273181359266090275599090197371401229002481046329053126285936993695295761565070832471590059657718501449062983168159274822195818171253930424582582211058272470621412376488221856018822245538387897349115337337136992665042117253206708036402113126399596959763260598846611145387686052754342746419730810944678560787040155156163407759800796225120769916515936367545952851084378856315415212914098220641839931289398767090335782123096576088862989338620880677561180475821574038307903243145105669302083480064265284307717308513743697427537257176000876788035623318234440375813902290869957015000853180602424463634712866584163222487491034179778437436620107272321765575000472323427750750115407706537508562920869289199060134007957643047311016556745075744100137564246980107233231932260544951943303172063837152534066524680465379865546197891276852630952269891348066473641111652977943292196463713910308091907271935522619886731052725880923751968827381146869440155649877993657066588352595093536035799087170167434587237742758992136155756353050174987333900707894070767840588209707756519734146548443363652866947683610571700809659286238395782827403019325477768981930233193725687430941746227703321192839025417375535984362612787803924334986326200265147475484791636404646786552324195573236800943497072210464668429864786124270231312227864264280883696805698049617812880331066364891789446743240865327433101674718627768221716209512269884903553581498386005836679622182479788370982303861957430060447348876345541394163331698806673608513712357654629177374249379183002134815429065878889700095313376613222258874137038335460720211912457759950407773518331827975516222463560106661262071896476670517495832936452584873794699590602673623733844939892292932173199882888620801207041052555452765648425187038095967218805772997925008388676398725702222153372303437730177952633970818777449783414559392224182759787614459735890576600101224358104833004719113520004174430913769785853636999983196989632637807927248363303392153798297771816334983583303591849706178650687974798729642576865130254113368404299554070273777453652480951221301481083842291529589037152222201152186151373639216189575582258942588984906959715645529742324250737524084374910821553144964652663926511272766748219774989440753310681411609626472146428640044064618934756562972493215453260660820419740413178149405523040183512622258131242679288644643309941244132494273429045980724500362139104007546795540013028209401561965623810847363778412120137409277324863656676986132130217188643869434428738931312349571021138560730133643898359114442014752013316921793146317293417855484435149028762061064719091763222512091675387671929156995692140669118178192647659537930099715740660730934049414839214364492191435120753007369491015330138430560236147247234087120490347730547770490333416061717765967877688661455045730505663801719033166422526279518697153229623606123555893437690993104488509960344035450094778893790311026777347058984810661221667598288545405821207110652969563109398758753293541001414388620326889659692678643056975960465874972396392702173472627799082282362248351903778154926005557346591063524513281086395546476142108668836573228844132030632250543272275941367848583828444693622610145391301392091515649140748665725715635590768809737634470100873431973393178453613787804678240664486453790444173270252873155786383629543932489760124991879456756022090047606285294223051527978056465103720085095938006035673436084510976265867473114224036554480298875428607849424560446456429199607851209886530616233219919352157312987981676010478406738954800169731515083752102153065977921539619085970875407889115391911819161689792919780060207027658825657040841535773118732365439033923310602616694843820599994254315783333424548050009407360031393935993580886849649737382595116910466616715117363570991784045237240521739510335430804393502049216002871931956805383967242062266183848234232257854266784164090764734058449328900880507641920447839257060842643676511976053685808440505537090499930161001731479114346796009968454946023206573494552473386370199800810269073867084292798869974776382207323131570559030052451113108236803439919845986795359390719577124161686409630877076740321719142185139033021342802075477506471115779050819882402769096929506862329596492743129144539808497033701988979793435629683231989218434675907461632502396107430779575075453926511445733122372280822216760853753791150523569937130528216872304474021282352903033041798285539829701624085309802791540061251754537701325011675136524137828826088807326281509837351256506735121529086387527599663800377871118776799030564961747171634856965179012990593113447209223414366008759885864442639988328429860769305191255582771123797794492241780869539673064051125795708943508310298319214461399167676969385264608265322931853684776970090850346117414351176339462968052631258796143712570913034743242291420415633156123885742797247911239691981876943028103953884327118876629647641011970803512150259135496555106951723380484737721384783560135958660902848399851641053851190012529541834781842155949377670780120730529988902175857923840309023560863169403180126401678159061621329588090681945808317067811229409044388203305991443219282539588263844549831581601378836323012511516204765127558105782430390634072980817579480321779191140130897032093079104285887907061919265703261143190122839514058921342213313059243443637264552851824970981238801561891646951824215467887866597394675529225852541785587856002608587744839541407186468553283984903420623589080662442501209668521434064559286520507338923005688252092145195139748371925442882858664307114765494443092938150998694899988543712679692641911759879171201112579608245549458682379331413964915545400886011157201962316775228318558848277908471196645510033265724209372822592484025305247121788662320477290004366608586404594153852301193498976315998236195763040460207980063116641337613849043943327555140853718041813034182148026562959962029352768552253505686535745646865714890295690951362014662653333429723318046157664208790982352099990212840184675920015012592082971724968443959277862246423281606402884666777711592538669542724989805915254964988859921860734994254010089650356716242006983653356016774986844842716860571291475250671785870360939370345080166299649210971253277171216800384102444627651742626234443379950492539827385638234651348160880042189977557579531404288107692562540352685698346258865539554719410133161626331833890502302081979494493187656075539629574420077912716660528958447166696146539686033295597648693522213837371375042504461369400411772925874137159184382843723334188156770270212384844066875133889286410236404182386960319223437392620765621757952480531149263401339560242247774330781972856793130591019441267947956084291090600535373304661712165779941282003570971520496364413155886071057181321290333505392795605976973231144851174010168673231226812458991262543171648785503752065573795130113470731087580088578697972014591244630691867953445950190857486207179170945709235612598304638583120212016925992706214904047617006639997302807781249565830493683185014461090797402243679260505502289083078676851033883045360939024270772967536155153612994036121644349477325373769971649282118921448088271131048871956060360635001801331507254015806272793139337724673254775443695733212108609423157142570766600735636053603324290537659219223922259653814213749158830719360547845074626876474662861681385441364375949654198630419492509620150106214800334440166444957336826487745806706961526349149817833637783346224098368272430794253354491249383046591746453462247451198109890164611638257084473371701250837610113930596415778690000116646532213424592249076877208350935491253854410704169815689288603530536555335223052777798684523742751516802375984462064874175816553858800778719917044159526937069819446554651744109643827269075630171092076133943125784852832133275936257176116002469420904737295095290621381999729139920298312168214033009791234733752426263125885020903809071917079047198410152747341708394375332568267912426197620064943460358471173120283159445725210665635262029011401123242204898471213007564095396026990392348601469021225897612855568705428152926798022632693142061960840448690347391289375095049275262033392633346917998950176384827347548483290061929389860280926047480515269877750655124451278906806554457563794298562364200869745014097855215918759205612131313966642981208158212248648182554551297364772885200271268369901576417100495324835497183344733514021105949510458323466354015900707730406249741247587504540471555289669070653440959618171013409047569155218724948892016741110317480633312879813893797745355538953801065270153179145480980616212886218183538680275674288531295051213994377248863429225112690388466922857479332979594875139441031459078485986405418113382788207467324633281402529938262830370720109625208967394107572687794332631577095483613804883237421189354029435283117742534667054516427052702407126532563222766930649139556908285669774540935409712416726001414965668442813712077843584290741926153552820022438926775723288754622655513427130724238192495349489124391927834544089768545777597788933140012575590293701588377047123038755835400095123784016389867034600253488827207545441874522342409894772140994342898952766679694658577024461740637551809666171063964876931911392204767211816499243966122719912601155180019549935245120491973716858961496184151390042084502687001469985593669436238599611174693558311633494417802390738818605794931574810891823110480069035723572801435714360948687933390670376551732776721179686423072543191049380873955618340409918013657016665232846453049263878318543899412117752188304004191017370744440595708266243104318261038846885794072711497997550819903482004838272745082587413546793364054246932627006205284145902719909512912578424599043178583847770052784484039902577718991241196561819088805079591937845494014607182106945508275409627821120913262987443644386648683031133013999278233793181223143418677585267981055686775117492886806299800058246179967300602835036487277493273779203684213256912732016264004488194817097289241975797709885440559752192666817705924143121717051975747831984205809532885258777726783390110180701732737300618959616116842201742173493697156101551810174213572808937138359692363174287083938806818464477751266262537864364808265952800856360290542743820875517118804269575760437816716955757759579307232272068861027130822440533629664812078659532303421787097728235600247154463519961679074800286222427461840063001479379149044581893995200586112761974398155812340586028232106689868126771560934991166955616801671643146904798763995924319516798002306514625335670959507206381222014192710015324006348054037384939058368907415114985859429653132627294884842143336628559775268897595117440051756763189092129601494085746503412847913760439810205984483166895471426899454822690555410032758081064649202720256548574412395973744687552391977623058939807132082499154566501772294961715784022649507059395052563037486376492927764970565645194432226231064318567367613437390572479866400371267228349881329770343407936957838630586746738180680195655350879128976886434316855223483303649513518687797498692265169732625064109761336238520821332144926255211678225494628212364689069841907943177916956789623368247791468877857771786836845348975123549526273580269093303633023433165377847616337536680419151908289322893385067489374778440120722776248322383402795849497917440075321391283567767237300442280382504274366788343208445007314939752479786482106193823783169196405808168292111932297489330430858226291145040447600315394951724359503644523712432775234165146385421965028889876309616636113571677835645263417723066731429569701763458862396464098864193887460967860285772279595816911311424483435047264451185850273857364619567178530034918985853624838920809594498814728573391491089549865681331225434203484039426568157714615636491068535351269116232473386080330517169200654082804274122256163532035448150085649456594760324252130871998541201579033873367204481837330645916094737494484698000568192393186707879095644227554623471300146647211093382674726819237198698466027416395091259197389949431146624081126322059809267471992945496947963129485239034913699987394846323714958139759034484894570916185810911414879572242524184542230537059158183602220786671664128117595354490493312991781891126998352387611355604654107862914064115818681632691675691728268167595263756355488523273974249441547205176181699877394392475605638611090614574093090192599325785504904705149799300769452077331660109962100197791658170517878731979469728368029730543669283604129274743361401759135684458289965250534705741441635745933171636977649883479753394249705151398622819174575190058706804943399903680517731839164040559601310260117090865369163954789524566320900265784333208336224699731894887927033178446882762832122837337832559930402584008860806601509957470980748044775006255657776940797484281685930739165015189406820959118257717352305357239908137746570084070631874870553870449242097222861368412431596345748619059442121687155299741985515854346024405020009775225109366003420239282463344044816889099527311496873083661038651261588693412875834552978462774501925755873421726650495541738952477055203090045448582256166563014132025600718065611701994429821631358436887594475954505261982811218001975265146747397075331639970267881077957185360716983372666343928285370632784666704123839933425382600557590863399254766971668627027708722624027632429124088692424735718928694094852505604522146590976307197448942620942162726228933965655397132812811454253290022804411400759988308863750626193649163492409389276274329792597814527194798997917333077107882453943927577041125297975065274906195072522350999961936345580624094113385870972114577831410721223397515191790931230834930764625733741513813458414049422672417322488927296822877100375632106167217248646967608381172575483964461713625165691029280258490892188872925747828631104080592393455863592979023048859889803140740123279259193248378608619840521349777250967012241999032234499788829498504257744440876714973768854742107272039572819033767342836439788761735572364554854635338343974127122718849805392719845729566047046959178250086149698302848258653513875764911617680182569874347047985737887391424053982476262005492371264062168692890968673379288359877630355431331634836383088395218215088878088858162670838812798063725613001748056914218760236828477524525881884503716217921001501053638504753766482324573582644971070737354915991316925621202113122354643271075224441254906364713043073935505631315194963236344811154375657958998298402936186824389429914860315370671164541586036893415666682681184083680650895245932044058054167248590122442865199890217800050094070414242165363327861372228997722334253824104231504871051043853283397437074850429754347666378814526161157998797221856562556231482691302136941686440591625904458238299393826610300905323997522419903867188152985770822149143474433249406328707859973302802545703530710058648590112797020448483882848211953565844854663706843321585856945069400664791307413180048567049753586371510671324774442497450427665777905258321240277328837602767920232155133126668718316919208087973815855748123052206118228471910395715129194428423233727218690219220999775602533254622069264147005716865219601333543873690215308222837564265280534649697135794689534141450109653638172969901340353888148467788847740744961822101877566180277417724723408992919623781288615455333106141661668183314909493524814166494189302313553580456117793358696769215526439849767704611665277036062085223444821313135035718618104633871887543157833334376496299732614311746747537581083242642124712372184427725035543613035657778678204861487920826327634177243037157072432067889724677059770022888116464784282543204112138955784926358908515184134693963334028895722316161631783177932299850803910662894023192839758988063534518780744785819852922104323622648551845435094061493859456852729520723322865871490940270521908361373355914720845871377445185490718144296312859026502351291374416569170631449801696876361140383683537661622690448947210930977685428793031091638253448082347124881960450092456725116565075695750830641270124977663603364769133777814702687632543825911744330806752043014124386833012862726036680660146808733037245451646076516645305258415186588693899692151660863009856835563641810007961779231197513822482861193520236539885538114256755755866240185627503971202892519071783530857611556966994593068827810311482560266315548123564832139477878129041528302085039407993849230347558113325807093025264633630456412250986432847588878021318839647180551737428964152182187654696252745811206603367926922256224639118448478528061620766749141325951454356220922051378971934587449170125222037546373081221587272835919353525936119979095376066963204373224762059636148066949381518086854517277918601008926672591430311296243721804391608295657325046802438529924726752229093930027890635069594678711589776284254786764427759766426062824574489189059904207556669826390493324635285343057359179315012829319186566251439560616564114453630913491609561631271636407741717545793605064330481183594753601767490585214205841554552018735723002384328766371744207709581525458948329131525373201401461162712957594016823415759351204458720320826099800973184442510823315341314091219813298250857079252394164398491351130255044869972132444613532098015977160795324684170788870043643211712580240921422847693170032869102895804858064458375479262029899543290182012152661356616406114432680962647863897421829500670870306412053830072914331192316284638298928748857572269517823283888192875652752138412147581428061088379943969497777679955981823244730408377612808039489908214883492032805833892479906031933599590011447212031978823845531427008159020109273916791107255386346809256275426773591202422232651545123465625355103879925772480355904284909148288942537509782196828303102891655424311411079163663934261641606484025626678976625929335831231863275920787636260761331753335085475964409042950386875763438234641224377599295006145563268960265020979825000139584760676086855814280937344449010329192307664029029493046994498224317594200436159642171557366628162559315540709913492843465957292223442942909858730032508662107137885299338664470065832995634475836449641564280034985985845066542676881361706115099825309760721311243811885440478825900398281174334222958257123720982478394437627179332729322222701474602546707041015965355926147307206450214320330952831827284319644654558592279115173570451609147709631947632467282523023549603533213756279134304673890133769346139649034481833727064003393171927971223604747956787372858356030525611059251327716672298773202644258048670228500915198368828324104031604055259524107670197523901299501322501544235002679220483071186150878827467620788926426620566415517556398638445166970323355187545594750477558624074798306397375334706953458942127444095067800263758977494669039120565311324887314918711131214057017087867756216510992672583486281565452491838774033208919211021574090836966728957868929510416013445064436426849884713194112061928067870119474279208491038690255652985025369885298111146257859296730492449396141821958692829882988697222168384205230446438920661767004309788047253214431608271013238654986991846526236469462243679793494704753009916382021443840885830787227361187065953528062522498280328133098281200860946684457191866757399109089333061926038698442327210392274853092360882229795113988587759517483309866088428252894978705677288853897407545653332622295290005567350636484073475319977281371555763064095577558190686614624502094017463851241293153278050295433331077780954918045864855170636754430297393840862904029849856580314843965258972819362210181058577724634176120695141699593008926164407902776715969280980375068826464335777103024040541081108432283199188156759318555496131593060439274242225642492900845736821075369639603340012460295621156733593432779786560161739424271175212017456280233851005998629951806515033190177764645233822059416188528666148543691716170072467398843856674957335268938219591341836739314669033795387306212248793074943876164008188254811577771977255952586555099198341648971430929744214090475060562575210835897507061127854965172252128314507759298838472263900540265200672402922495933757576499832325223587524949383950989664759638467918358376288023350383980609517057068159495807413628908675898169650507415577869452960940084481347588502042146845537301905698841187610349075905111072146988695582439222631115705139400438404958087626631622158867710063548349879597458237703325003663528896815913369123384841247366270498965113343801753759106826696897970944166824809143462126599104476623907203058221060461537513790711167073320999080682950085496331682241539341545384628421290628034117717971703229487965087748008818809716964958732197924101303282763552546742433385984416395231283545196778371732907752303164255344507282540029235726543420522587922210934779232143268945602249591704382497558240305033571600752145106829800107253173242982613289294998461813356571692499770340814664957645015201472785659387277689701642388063602189457675482847781465397619840552560711643637001055751419315062839908184549263466582102580764123444515599718530212863745073275888993388617676625156116879129075218536085152602827925335936849138741551642853247706929327730020302354349290423759794438264181390022031350026270107503391344287744432205792141898257522591607730682704998425127889998044812796556120283679061646802935924213566958538303936864128601203453231369822861953316732669499884256783694581097212540805460765441158185749086768691593062957379448098290135932981527728019517110206775177178508339581933101147948384817395502552501093246830166587086355423900985619908122847113949561071872863289158299357676261437084928231979077436032442881475117053477510056157176428077419241672906903536504169132580581035359315303620459463291891017879655249202072108847893565832002092736049152486759480207125619060418238460542616181447712054622003642682614812569472533958148917702290752888659737390060800736706696494290583160749201163122510165480343476187378486579714687709790885924631504767881603924255646050669899635564436524160976736623491525724068170960969860550990347798794319403423534467709227240414980643813685150648352981191992011769631762949806687329495919603133078528612298823265682746568721804481152393160020896694393006503152347694179315615856947009874618443231606271552057307081676237706218205485519367623502470829038498243749890370451256139188520229311290556725396709931885841471392475936870369214462835160623865042557659305790376904656055821849648062117191082690047118315028961380416192762830317176251392812885253944164386910054755438131693897325878971662469093680606504526131977969157725787276655208151825184748536052502974743198850423255184935181895034633337537692094653182385135519435345328567543299976173423489896975627323380068051861463811326268587418997803978184085659913914413285765004765962350739122866090397436832531527343811689873199658258251826840992314342361318194739595275282341351660571478660071963513741208919866075083064895124513501645473915779715101025690812731591207923075758883529061732352134759806053003641762633926810923385728288609119956925693551568290095843993734992608167703456131776814256546223999501286221963402160529719666885836941204048650963898137634437936856754250261139559061982210389759572933968370377852043366519633134306780547468031563410037211684151429444044710490170622462549289047263821526386247916179354138601751181677492527989416775931061517756041438868419503984382482310897561573140004810019733520322696927924856728999633356754462994286961167548271566233404309784684128104999054737401054453939058223103084317815886361652720461390900069350990778569488194588545097311550681519031457296224902194984313747619289148251846450311564402083832747306013240308097394963280557924176983999796977341358490191132947257710839797209704872387147941096947259580967470115083849327191718534746918275120603750206502838805753143019880744661627423184144308932603398400099967646283680131939823384201081042594028008346067024433449691781505171194497180916037757361423918873744949299906355783308114508819032547862152671050403535347521746015162656777128791051513343788857007982076374392174913986245641055604163136986441496103489891512027380912368444440723605179355470179694902787194362961239835919773740453365391256322530878564184169867633138723514270409884130908799506335552055551892758092020779705716221101944685960232685836607445879195986839356207212014733464264899217588889183779264649862466393145987895865021593205669358922579357814407286430859435094596496327380883305010776119834996408395014290321115140785477917308851007937608774363366356216171850179540305994387242032650393699863289567939063416739727548108348986678426027261536932668055041156994718972052906146550177865630170055155679033205345360520823734213607412019131497423070696809676426456623809785834345477648093262060367252045148804534835463473531090635691802036273992232861948740685879624315497496373409140526572199282074573693880813866501373561897811707651040913138043360838518187670315069993430028611272705030528389189879260209121854585388264376871060757953365597142852667722822098114118194693113191692765119952325969952507411369952707455462417027585630541450215569654659545063172662730505758180842459981229150480828953768870700007882810384160107185230045320574762411234717372926043126642208789451953489007659345271230495413319266184290462384513119001475496855533866924027463163646951068546804011041478511128679632277539673697122719852043501786349740898613919486890539928067153934619184231624913378951411660079799795552990473849902849871798866134067956039156128447253559850756026213936828755948998037327030444769234967654563449482511550359593200330804400731934846513182993388983020738876116281393781554898269934460368953033650859405066130021975060494156876734724697081005229540874156171114437840312608404041339597345995458263500816545297924246548535026042075803491368361761107040992751090388607437592686252288977406480305691641600876922441674653758437288301777220101991315269801664717642075944457598675361249478943845369883425379357688456585307095885529832392051355754479079803801041530459618123267701997807163956442910370188934660478564193402667363669163686198033099218912985409210937142704681277248793280304824553362406328785955538266059868645111595554246046835693208321094143970917577253071760648345812309641134351216371428129553196348239582502308683802029785043230971734569111922732238929921277829127231160746900198004047892924335998221802175742636199818675980803807626247093639554947082164794800473591628575648604342502723014974443135584934574580873198851078041394759445926903812506514155952927403939756148136075931487645802113107709555075509946442215844347746457848407544467670112201854900245339808230036290311501704211068278683177537469064845033011708327294058388435140640734502640674661977215576384782226694410928294437743771724207791865428450388336021579345474012293157048915360993120513456817023799765800361400228823996965879278347781526554123613569765355512021586238336602643148506261348184863932665421084681412463650196260523572782807266572476773716288254182206418205493509157317526351291168657552579835647413808294430573917484346636734195144292210724097707752462329001386961683145145283938626615840772210167330999785968019550151038992646360297966298614788153061328735980629847227553240451014502745359505376313123531230000268610054512977364604236701269716332200826945095048976420461738947179264651347068076549033686486522586854278101397452871672663342458359093485573028861165595549727581904785250528087267845176308988314252308650419340359353574694675245104797919168966781606188346664384843079431922447422362031056579631899318942421464278520884682971962739081007798393217560640080341410327528544972597262122582542008760203200845161775792149032104475113247474493422248535476488601805027586664324358692828655660627690664026637662359080823775311761136505525953178445670561960490961740938113847302365598341811240327486975027075529944151348021614751820410370202153291266279775869233359813531798254256191775990635824146236381321575266728426986471371339673440450266217987458686296830265445854037215638921633430891933758154570297813672478907717791587813023658620168466450047285292657842109209330863192093819510487382402264370663226935690227067015581225573345580383644384063961826703945828410964425293134795998281999835813178934589828980454647727684141434556661929182888788179362012888197012626171204784049593820664135433653024858467912736762423739079051502593903928172171982076495784236977605973364700886720478209175851633303586972340693116594569689251534709789383450287846212528367566375404191407700385532777155850721418249490443476798501397354101730453509618626471462981374467420593960201002645989474526148857486507601375055365104608548898153763158360919701381654311669297585796318041496702885962870999105609166274784327471626963731137260318883623602729904690443874374468465403351617715790746466452977022053819516536886701609550505802424466547962734727521836861087662873009916646652452633738258578861620703899286795228581277919892806420307893765874479221029822485326460261700593473348488074942747858888747242743195082226498823447882344211230379375527147821225141318580938735938463919734911317092312556106579713603042808748983237771123896329648568832784601068340202319963993612050878934121501214096778316246349727266428270950764019843293211700284604616330177663841006363791827141437169492678901889733642841813637908480353806361876071230675484408755861144984941728474700858717457775184261914709146192438447858642898038378930954846907930451131895653335437218393392263008769791306022500324714087032620459217795105473021982452728438354109376284891316240989972220833192891559635627942663504539892053832954466905863294982971889903343595405028448855323497642353771571708134630267002443197366001885220261793162162351063407458916382521724517855303682897727767238706835991836314108815186236374255793862559813636040589601363606721449924584115969696640091295765598219153173572938055683303277707187360476094446201323209042445074112489039115324058070463445349033932483453021312693242845504353897042132181963138584283398308400155934621330332871975584094693519938319167915189283875425656883770172836816108308274003300537003607761237429418149262740041134538976147094824967766719015075890820721972921210492509237451731594632856859890005873964123787672003291682875983353106155258753776401872097592496221630704757064340018073306662008367288493315449476186257201547743751644406292808079057761803351134336022493548190597482016645523418438177221983955578961184335638550344005190550200982222529008449713282965445584397391448842372343371947757411080791503627819201158324549739549113885245867924341910835099252646847935463328357563456471069388293283661812093451432798506863061102864751318758206721905378944347465979758366151574157923560175359054029325265094716247441004539196294546427401517742108530890195334326170255785652065141326648901387037990061991082605537811280784877419627601283890885970410932811684724020524006932845708742528598551268214502515985738272348647185567211196709416383006464114586820746049252875794290859214312140925060182280742248172564629293081520831848512609401909579684413725221259250156188191583250537058895592739045227469637508550517613243168829589121807751228328814196833122149478210123510058884148468504724931538808834027704684125092991749596783577481439165836648116269337305089396683654211502326045545365776247793716545187888626954825515000869818755181947977044452742381951829446542552907323689632602644165218322710928907698568580189586168786490530422111865468237918784054728855494508921236895884374758867564171182270794448727256450005029342978464061950384328964883054719337230044282948965198325331503368522767156409660567981238170494577648753525122659766299911692573712251903905843764613150749741363658012233470480464655101006616128446413170108988642048995392914005905435195993204940559922029407039591222582780920170653443184473123086548372593947773249549721613920839175919244512402539123527066518031453219367510591171111159607078484096203001816986993671333354372250348713207942437104979694695505423093824724282633499774865193923244501780091169563867381491138174833182026858225669212740813396579080858836463747429025890786334138009792157204903114467105540395536218853034556887711153947081673554395116399306214622767348511606126547787168577742018772466422887761003994244376297510508910577765923443062561142377373815665209452438548481004511148411541249432570986125058259279127829396929683611014960117044304146647648498538652951803556818253391329795931290982171738383511937376261023581840436785802230079282953358788528946508988463721092804633092406914938406477593008018334823342691698766715393633108808011188277334935285726741902819412129271618524906892968027296286618305943067669881959777132971126845128895315075613277912457589178378488225453942875830380159789893071187273829887164864584698256382940968197510479902204307581528404267470767413946534551530279456380594732818897588081455634164329278305335947363505379591326015570345850646261745424117353291253823368717648692626986222658511585568551139904084246399209258488788834688429302079572021069802344223139980332358825681552912954379420890457469899775438729223376146344871785215933306501840178409342535533801298383186772291971151243685809857741337333562419295952286325495487898832802282927615534252072213938017927711113955032385361012272573795428423152554975052116689593422098601526638544708696694617763834792487288334067616392955114186242993027330514450354606698017985761648444908434148276042517013495489258219265135867525578605271839748462617460056646819966817186743555959645611969361034502006595035851222966494708917886862161066381842543072123282067843705680988048800873335553225465737556578761035991087835358202525739523944501475943011244846091798885111717154720988176567092873083513452293189562137715783148869074417169972945234841271468687410244478654368218993734712071042242252378280732901907400875205516451128912021002640999428920612602870398484154080648976597669711409021403793713592390883582304446001736221170659503144264256038893109999388180170074489163644059032678645402966283234657897755999817006825539714159677640714857840043522487497032249549984397074165372433840016911137949062717746002379908807277059612357500012250097338785202584342806970413518770353292555514300792469408439748153305441957316267920326336918234944518710537302253694167804174532698064515006721803323423805229209581894187268775621851882059460949583096309140043548011435019329057199436709180183162137449134569235825578142591739322074685987659601235063489678574558322192565840031061734523347251778730523689749234544400537337342714912790260834554733741987909010373004436034174535929952377796559889803062599116280939521160513906918064077260783393134834438307098783887968627006201037233030897173398885684255925216930661977972340409861387782361107528451308021281617319538688794281071645393919614859688199680308894070233281082035639262979676677026193760510432992930602710942282221026140268319926896991632758387486018694935442008625513359506984216805208254014399285796340488852867531261015198948804393366603301183677005051015898066321543756777965039875233866129147384621430590524521214385065176375847079276976887573210981746089629655917474432692010345722907392691091627009182743943854390661108162335344507081668529071236815404178363588344344007701543563157419986748137479324042625422186069813541213948129684149659277144135674150333496446366857158416172783072318352139585277936349745970485556462744517350526853226658404993465192704819690919097344896480105886006054670950580459983884935770155116407452798023481765370861467054667599842791249169765422606734711117995039878344324254875166881116446766853752725846142715973744756381197918502372953799383090939855961494701387907167013051402414631082732413037289900181894769754038968390840072518791189847221482362037776727903148585527092259874759016315175498493238926062435299325716106174676768173553935647829360238401708741840846533722039459586154231626773570286461711805081520269386470003508910579353590171130012567679971895769506621830355429551394578221045086968053101988472116671439643503455199251868027327458400085743013745722385125032499261703888126298550366319462463792904028216812137946497142581362076180071360546791958605364840646611396519566827367672187795615202203678408494756733824120120463253409619202248407664315094914580358737765743978145827528932869851706357271083079301231075963370336644263606177561307823179410160407344479231318975621758784537624732537955288832003683870780460242935933588904332650664530115352005628116017927159655930679358374006711050145227104055874276492207198108319849649178018804280355556024435292784521064716660557867221499826530068666932403474227302090206167841934535715766773223335412381071134826285166965872407853868143669585817033548361175731721988210091557431500841272801750461780288612896194409941653545282686248849750889424775933955547847261631821683193656561030046998037006092589449442226941543474955186675011345574324868778244123142749577513627164047265043646408147728858180155209217946747420381907271125725711770314569878693199165178867681731991015642013176329448587405116303128562169719445914643808986272953677545209227880426709956990025195669942012486104622289188047747112174866800231008860599541960540553289663426479090227100462863029438959546971579045095244169204910713340817684178717695641218793674779235988435879032205319208111694756568708310395568043017560921342402598161797612693005988398851896674471916979917138469007529554091049498040703666793705856403861810366665949071422334806566388011296325827640972429835739960893100780115824098282695187372529715941151964137322326584445769830469690292104424016494958901810450514762757117129587223320785503287329313323848040885017751327997425673269383006996391096809862918022443926144275443512755333682236082780281697136035679356327546434098533166870965675623306049942532875936682371160980450704923947520334296965220071476927223657592601039029630556289055031375562341336605049866495819214237113126281680115367923712083643659762889946938045227234144797208333985260292313540929264253441455287918342140824415143722927507450461368062082922362085438418117606488889887024585626525034534213306279851682211931614925036081532706087947433639436698737272738260535054683169194829472460506294493992536495487489566034094900791278370856449520467642167658148672823843821776221936209259677377500330882071343735806667875975524775393649193044160161663983118133936352316709194133074481651893257974776503805295124391485755702980327279689142653481462944247838925931131209464831830260130518310118539279073704762135274948217407071039208022919785611457686071131651615941533798830151821056252979026595317523030127159145047206023687941860912618169170814675010707623939797139370584050623445554120649693919951025064510399139266529998913131252227036544956556613586148992508494503238177384560506277147022059431091244637118183603178632264693638336118359510063302594724932165793271150834130027330066501237828854461426882591581382864479118603823218248429037243178778258388188608375369139864749709897349445963646572502543330851417706002092882762916649579339040295347037491334788274147998684554550857452697791656925233765391565817255442203627048880567780356341314478929478759501466274017273692403523953612835581030986478311584899050502863244827107527123416374799802388002085715129648225006025699424681741937013364076169484003210806812601183752899510327802583922455155103743810624707653047892616517253147778820392768394566952862468994158860336472918362168582143984597592575508341348889605036180018102023123171447688127602363868253463758641044925291977850505856007536835968755621091600418339678081111284633986216815307863574006547376162943200647508126350811999587388350644773180290987786394817842957797051105881910742204347668273156071773152750951274623555528326403717506658523944307934635083386596594085366352846698612572107669991370756871602541446118406017446234549083161230675909583575682955822493717387734780607186475599739707577038986189497808969978365920028906301293865401755496397235438004034281788511069938994898553013145762329415770580306378102378122784329218045307367622511709003400131201221549545330453409953568262262831499596609769050704184521541872404027108868578475181396519704475959843094604960107377481141526801570804015532123599784330474860740634324657112590992276468621376708468503636149600533310892559495539314120365689173739517457891448300768601864706041552815798496836673066981400316056251751338676434556126567029516373586620977248987285652314769560185464821228329462690594606065227053048484296437558338344803768271614445692159572095437769340908712085192280332294896015047405982192587556919663399724171103693279487856235062946445665370725930042412161429890644029919580726253287654462290094646399031069920942407247976866194595426127305609030719614696703602194822246979304138573679241055134497299553361720483546535499353483846447855975586233765245895970498453931409643506591994962660646335393332676757308672404806590725079422367674596857118257058549449193778807377316681747634748137876978726080035770398413053080505149206137377030674406259875784035952403886551189974807254261961827770274731248590344403586803470196399980623821049764332469757948706265722636522873318308236202117516527981397793833301007942744086590894466692049252570665694115084784968273472056681697276581411833231249220900006897535645417962279818520229788925704447034984715494817087207769241581069807465876107353129929148535996274569287077496391207637013142577842809187621725727919589670110143839615123270837431768015660758683859769738271481005618690772891631379738589814929858199282200279435756915459951621830830701376425427267139015619337640799602119971940311322512813143084113241476715809228249072273080733062919493164306051470620842350753210760306782993866058690178817552182732120961612524499138212892940597908477676142513990824607867442854252054197461460939160489681069519855749226308875598380023389620059951580444376011561660605761281179196763976504840596821024044006035057133513586265773299963022136738233861815520896794997852781775421846885421858796385237480023387629790986670776095564572385596089615794548482886794986240858455949980787254099132211578190651592660258596212225199004542844466964566380338984253006302854118793997476299717932641091948969611018321386923514307649632270692718407483965791097730866590657799659288658038616593732513325617311315217439594041869648658467286473257039901986865335530158508954211465721321607424887384563195612609236460852166462022311860665242530841127581421007461556582386537994939019939250579680783567783814913215246333723415219539688258016778295443029112487043274121997439961189570227713293640666013490535316466415202972284400232012438117136933050186476331913131176170631896763275061670110762777180114988635073584312564126760096029072117895562511489520975788582305442486899749811452056710404007348984545064476197935442801190547797434618816637897554860614421749915795851522839652981792046933054064652638206342186270340297767293263598246095076072086668611457395422653263674750011276459678919644611280387458172980388252557952147902720439761467400212206092803883358346967084340205488488453858419560388592403072876511369204927950224992134393206152769900800961197031423667221219252417928607445326304122015922310577450730087991886841484098123414205244525556869187979681123932554159987891484407120103549934852463338991058296500559709700437307081276905248540728537554320617465183720961829371639738913935924931579528324583594434390727163937468352631043556273068404202283127871782444640492445758438047448115885435241744787176280152988916103095059752096554265767064488661211424162682892993787372173965504116901613285739579296646356548923300903240556369430050171490228831375700824537442427908886465595431495929352240583339031474281532951925219709866814442801114858877101706900348989999245714985925021268110546932170962222363130373571536335583095183637518487375310259482416347192068757691079073395774518809335886359934551941440710657942615892355685494427552661972805364158967600869312377416531293913549514341658846716216357500453315434213948812173163634434777119688843162786966059088348489907311524318429253066761543227388361183086901104031095895634505440054771253987046919789339673022030799520072728155196794724970555774371830663590663463953167562471170142179572950210230993719283309337623294434235172987213316710821977292831062993082249504431741657791993510534564571155574131728213499475518146406499238754554640535558072356776790978858206954822607259119879561253118429138701393697263127788696014751523181661970523478318777780349266074411548594645626395574203988380520205923319838688084800375097561994547284878685762978990113702970824237019219658700913431914248470237828980093849783384853617553851981038854680144079293074085219489485327843540208138318949103130710939003115247103346555353053012973905711804840978505195280168666603876731844585763429018982820441064429615604640751554465740081216436850000467035575178948827517047065612270012280058629498913901988965699108971830210004742502411384067566534626045737377157217732205897717801325431429066742040612516330838096233844886648716755346603165012226248182229306997791224490662595215633597910911940856676600950393528901542870838065682639052248260337233085672931375679158592856781125708107029481769417097883497550761290709887957488638154689681239487212861071059968091427456576841073482585465760421142552250743189323294175122034464575708475064063115958940848957817441158630452827690691933132371216341835661116256290567500188010035568166664513128153747340307227129665978351047352635465727034329124190316633465132861636352492767915908048492806623614073579226137025253563209936270403208976657282082944328382703101006526489618057290368877993288656801789733930540382131982755400611888539305223579193815145856794010617920270494028813322454228469783168097435627442464723074699142874217794871851575882887295956769773528938083975745448472121160440611030192884438019306794715097747597090628572639426309069128308187435586463892689308317673799591937277506561120423594450240921594665342681610534276752765216145561464945560537339515466078143845846597162152322660689159583902153835090499054613436553295650507970008867468758123871904050032235873820051351478461477700043930991455867216152677767963710536800670185264150565766126051335341498510891379699109724331859625733318950040052662827234917649453804158595359000135362552508619276244090695753193833040854095673526173805777047540270139307825222304448777662542784418246351661189415883223521430118098344308489667697774224023882623666351501434191036727769548573301923420158600876257563637337274163108416953081588318265826118308583816994416946284378929578124318040987265350952292181886525543374093135717888759897790774053207866697965136779508221353280159816804338541725822014656885542240932393010918779198352220876676882336188417695142222314467566266471948138537743036027251405342012555329160411436783530389068298488182038577239975059952485442316330648182716826282634082283740320777185894050934298434962944010305802659079271442805124404959870849258967883146537527875350565446771741658179843284304735084602129574623177081123263677652980302651072896749441697402578049356268349165776022579532738964494971829535787196139203556300230594972232018829523721440229793588536134443625942219305091093207286450374622203172427511840756420692137658063815193145932092767727987840724944285845339114247828359600429345537500857559112232437628164387300224059286128149787541364983318692868739636390488609167811398173494954955270362287282326834012652265965041283246076849518968854010996948315273016636697992385190581074035403755853908305463760985157685851796383443024249638411972848776145660452652198343393410558164620231202475482397198571684618595978543121711513604681374052322640677618219723838373296686028898310561745514134762957208216285822031885376147389833867752933069119975923141954065134153660836090886868074019871820072016179415209496397650449752547748639976274211586558634423711548969877331059018281323666828700830864234090678039070668371278024695476156060907854716941386047436779948244754313508739982166670017546636579167721238577267109954867569208143798765901105426066260489321144698328432488414883433977894197072331506158085615753153261716005473997526850097588057724210166106557441962282762552136355577802869098477645529136630616699639686998022437954841962470943450827055222881603088545487838167341303144155581446964203312430863903716414628470473292853349102825106248803986124001605542540917897510523072896393007264167406216557441332323786958791919494485713425620166100108346889615189377357138165945451539638340560965970124694239130287429235267801207128358544514353240110563895517527041557522072231342691971090988279944230003463795593086592601593921023932844946850805417892805130832215196351846834925065594023585371546074924945215780219925257638980716430445481429298634635733602727367646146624959037478560236369573680896096275575140904225918370212843842517256215825736410582188534961953453547802459028604785192556430143287309822039586805116307415198293497700147345791521032769463442640896174937055867283682305873720497856497380293769919690481589018948877329079349378560071243419859531862813863551138133810808712230999304556650189863412070162387307625069284473769691642802662306223679278881005849295120178533934845506770403850546970168315895788283121133114862657138574939058174013309075523526048714896117674392207595905217836839567914809629771475077292483424509454111674570100890264358278637632307502324478385002083339139502952952837877977701867272132974853187251376978817476889283228717763726955839961605475700242915491504211728707294079901772339976139954456049375291131119651912889817095581402595788641072423558426405709752736848101522331217425437100985282251827751614542778292925839579927130192286676631596753142734151989337947794274740188826331852732851370353167545461718255722417322585792297623033374714755472536090544610671133753266996378022358116299223574198174307220346949220451864607605912687007297761603586611593268582157166730715966823931530940882061418268590211241127772799875648268294030487110180878800682807301765774562828856238969440367810497661054551801004089068559255709806421962743203636771408638965726192140936288349786849025855825027981862497922074449461714981757943267086168856826039444729999243311886306978348163432374219747705932594638109670423164389822545587841995015847968371551093306794627971018226036351291381281380309186807044893691575376953240122813394852727537796663862134125563198534840259133041193025393056105750455151658299808180376346353448003511822349403447771147416702279297781282950065693355108893282040868963586373307058213925596681047627566120282354372276532722276494393247423169749315277019192169569224146357885688803587185202789378354307905982405465848997093320221888000896634466233504080911078139334420215284357584944253102222268536421306298921781806453689893350406518919667820473372340992500829405205322590504371569453820829033384817938091427326757647800028612813748833472020957545036491745890604264657853043301323449049913573501095780183308831050606810753270714288586925476982472733258964698286771276116473887949577622799807956475122409412009922912583039352666482219850910116475048310559441826505053633600787133130958509139686268905654783907961960146304750375329075384843898394639799668553612950737031399040908333386965167578054551293676964650222175894781356230517061862926652308988971953993746653072117036104509859502261168343129967968990829637434350712946876761177754504040901839576398074188841302837953382384329887157518201082253802608927580198796878768018009116861327354719323089803882917194373002374430343111859083846680759807698306991292432157167463972122361991416599516815976916417913292070952327752901054502674820663466601673429724449550303341754904339843450850033375600514769671606771696635689269154263190750521363759979563318749535422251063935360199543838925687680044670366107743008629061778867921413085093217395400738345395378088058480462984145039787570080727491094077921002795836236766327343242392844834504160113499380348680726667800618000367409696692170564744433704220265333059349109786411972049494241545082149525596577879766653181860819648257894136967434094359908661894762756680697373391090102592831426519696770353298481351591006713041748228212451383175140939513819913445561094340326768440735535744753335131863228392398511664613621171641622107628596172427052569234004284928059827978756589377248878111769761699659260317939944439598584678112727574252739854594733281134497411074821492677339598862136483046072369977121226587278947653852967500341296001733866770161691383077595923483672924063989940024473985462303072070016878046367277885416431812532948891854925495477552027534577547211683329192395349889077302766438022585508469744122280262373363484491043101494747289557559633309037923666303994576109782672435974173835971469527667227664467459612722924861898868675540123599422895097446180944641079907831730813646919856441326551996848957265328367205440289901987940427150802839023479309829482659696339469007207053219547258816352540324422051038680558761268816261232883185022756843572481475373254622567266230582592605520995078897482532440272571844187772022693671387447492412970697374964053666017871848543546382537322709006271268434964404913781835573763538134635666318730428899957012011840540202456092997693048143521402426522819074233931152269038516568607023586994218666100155796833444096767354580053590352552554110235213035545085725178691081544514218081988475834945636639085394083568565878415524842564225560902627301677683368536282626046875425464898905721720248464904916875584447927367281247146285597301951144873078019043658132076646326438147289366711404706427018716020629665733767076678168453570186610048803954125645164919165116933580272582397364049846883542056042861512847257160222062298463617394702941126569092481458379310769265938174595146631145586213268372412508152032995969618734401329621833092690519088617255126759582658323015138187250817410245357015588018302557951537394022527243588105190237087101126014442764952825218897334619715126416395301845752621898276297570144518676412021432037807987747663727872760022771999605772374381623193329910758349728697233571659678553403683077069368145977940437220120280967115902220964031049227939338275396906982504112530703821560427501727503364296013150315471955048568236369152096845904514915857752094439077276148487108415215283898604492992506022701776302679420908423137203199094523908282792055799702847908465745869153030602540289807374156320486643993727828694776533617565032521924476517135040132639491313682538699878023095044501891316963134423775111211353728037399550096269401989072139349116616960672161349006744872278730141120940815442422217733605937376615439265357569571278904554168605593326659037725423064273726034419812823572983869025078026507247059921232189831092972474490010353190229543690168307814675472830582583300031393115391626360792250380867046483888012629427219031159628913519248561318070861302571841543225190463286176547924609279954906505066545308689917809719245614675811768953845324821883114575258882322506989157950952449713176331225814775614649990539690901883809259067218407926392734690502223049784509344406166834737789653597084793372252385680144566391891212010335540514941151270267439065406527376483824127552341066170368742443424684984788519780320575402985107592886749543015116298134453076976914740849973268262647206095272621958967127948570647866008892472560359078288979401116279160621856003874947397696771114015174851423565606697919286295143716534696998087763741708732417187757448174787925788918361308137822367054890145954103115279849377080852764019902206683877296775486140769846894383883015098814363673141969707210180079376660744088551590985601103619418559809734960065850151649717902089700749443422937785263860624094330929636874948073568692222112216631054332203411147573738126783833921321523606261780252572852369316367503919603778950160747910051892355173529280278381834830723429883785222604356706994893170202603475663408459092759575398985361763052830456944490220005519796876019916243314821224783740495963215694886431406839173175684647752229721083321174519327380677122282780875223910514755165889912515579400595525151244679359128571775820218366460366002104081010706354151548701564169507625799506369679356893340017862996776571713035156792074716632810084561390661113695186068339518927995514217193801806757561324176927163797213068581241690794938362908424063883277904577034610723246914382474615883154152436999629263952064989962923939136545506524637990251225552714982782516777492222772546928968305859930911332946554770781795712935614538308212437669585358323913160065449321476856654531993099367396300579875966135191817057103438081619369610760617332404086820412050721465813098991344213771661029700616876693206475023916245791814135181096207570572367321958070420685385246267693262153506584193266696365974712268595804938236795696471728763720079681931902907029896130942845608419175280487165899170004792233916602540230415487829765275095251647775728320844257779000989560019391410140935171994028388197047744121095721504402979460272918733264855051415543388480829356539967437914415129400360001922061020648690167432690977434985562720991705168336976877402338377267768399619905130130493780943434641483778316127022239196094185840121447008805831516381171115457593301776106216446108082308061626417246892434108623988857820217823703395187708128352488512011294530335947531378041831035949865647452047729097934439300056157761802441814381379013020025921563694923601011576831902621618351962844087555525759165280038225490848974422207988344185025228130933838593852169067988257861070889664753788500078785023744668654760364158062608152101854234608212025151026971424191012123450460227024762594240667028405781305786685904608516292797425249761770754318757766456047118998551566339757084343380177274903643838939341610492340557048078782073073456178898501594548441089278584813039446507473218244466232623359677691768265198201717412345910797356363591927996711893346295630237440060709148128069658231439124940110245177156479067418909793575959570749622414260587795949695657889396025653754577881214186577006094220800147668699831060398784910840680943388886569822308483932260405332162081253511899771533785394346112195228850664269472897780816067663999700408760667889676257153646458059514501187589426108879081408213941791455606866637740172248581944888989583563512467016285602217890976361705004914563914101976695546860210902255284049041106110767163348041992012249699329236676624256923551877513743087482998790123954664712275732801013972537259377530860496033364942992600642180008733701706201595830613349041930750584386888937294084415002747946216796388967778400067377758242515227562435728551305135480722966706131910954862756167205105772618787808310409530865683178545127139781737028063160330787599688297607249587803906455737776746022296978833328623415576642139389662585121374877689088079618367264491175687506540799362133620272140079554894010100395020908930720960133963242472163279144562346470922208152702026091919387544080855552805223719316729679747705688754747754701141463665142964886296191993660959231757563167288310201107078797810932322778776914424224725774607645373219441656508905689380247555320387739148416416589394266301156076678704713767052015556942538802244958651817777163608772327197541824186536502994281882099256781364795791912178716485371699582650097731358646779507805379786427685537248652639374392493339553315137860781700225570760437948395633653781625897353478072408446357240621448039578500342756827327060729008897717711628180290102856908358519234932884029576665071090179164524376375150638370957660726660351469239618778115399648444717663822506823935734906527655689018010282380393759188166296907072815821889421637853027723354383176049128296701755205008641209451378317507078746527818621640508006964112115982084796054897382738288925727242336230104721725198564766596273833479510626457869134351190239052625232938420587603388165934035316340814184689050129088273347024036750548159643341854240124614339472788456703830263154941357679493385936432045172801436038122787061955698031744259260569453379853533870467710056216411013233891492825822798006826645591284196324580643038092347130683571624919065677591112097865240275322919340944905173298190465318119291537705114253220316336712496249275486492130274751327263904348718974535892888773419821918773739015803393947878875096474934488954026462360000826829023464531348076002726073761499765646042897501324761066890672325189894459342838343487747776177513812801289917261773995410048107308950831451177114576107847395912486018644028629110637314442413942004831706257813327690113347152197281208649077711668231845056750059104677610024413629883888050302572449463600140885902619238352360802670463987356647969144639982076697518551712853163792694223184953614943374770494629505824897467848008030017952044551564028144664901612812486074478537039591434740091871799880538748903137866723745571042624826373012518128113573998371652212708441268218399723155710752544808059558403784778196519245833951890175988497829974395587008401054774565222270616037009176227430336302376133754466524139935795642100847928727839323369681546617206557300341408153126696816438021145912420028833735173121740823151810281087638106683236004322046791739388173850454364273127803129602937798434056130941612790196063078578029843655924867994428067759803321403335466930769375149553871078912555517773677790734665262842408273505038553243879583634920086151659707069760217396412466209034952917116036340824303975656862930481657263163109495719697546652948825587547791471356417048996637553273016404209198555314382355195264679005973578808886626418319590363057842718029294101145785314562496760789942723802974892871839020363183601545463350574218526502052233782454520052226205024928496903962468948843198123517213676458995862502516569298011427320888727395407534849044820005623417715731657985538355389075164124500416110696417579641165173683454440667751946264310833438539138993136857906698075736860115956960368927989862902207547989366986739476198193539717825331574985909255848295513533874453953199495755411134807301742819332441155609949531552886367858101463205324768184149599756813045446707882807536901945342355442256754135386410815788477221897846729140019931895498965774889149875529577183797377682253907570574118687957077987848634090558254145970241446872618810887524695782087765996834351655517138847184436756112700082626834055523472478620611891850771945558292969054741167875984345006651842946840545861939342877354918236906759800848925453241854613244494534348322713927911859892510997310545006222792328041892264686102297561701408166140137924155774161790083622332747894993505328358688022492348889185517760633099886741586672016641270276798852492475735536464398405445789258189861901978541406314338189579448573005534625376123520311632301640284097465457873187875334994912493916774126917735789106251008789759513952896575658117954214368252206181422933993819935103465062034645259971317549773419200136460636531058858147463808119248477399296086274277788553185338196405869327451193965426798133645274766617099716778761439316020056287925237127790840145606602120620484189328953895953291771598756069922739817504021768709360577910766838735175037788331382861488182552289378993043936569570210608071672239381110633159088210585372778748597058891635973624769725144963973743109537139122650943642824358006671907336134485317318931001606599432450712425169496161045664493137721596147343563158778322586021025419755192030528740611080877719304257208754193266581851331980940607805102768442569432337785409457252960957940720677314968923784220566758906365935315480129302505161248735914487435019597505902715802923983242700483099981939204551335014493358909612834538072370432004911524612393111918451891572309110039778493004216124405204996027831284546045602924540208183949987055766823202706121036776276715190250503934648440685775877293410051061965653841179187391436506313775033319398244718347389858501521591207744317006107311180545530663802981036048683514833923178696191333925018278251688125423254986791283885114964822535470602672030610804431288782647509023509282256292798943320860308562239553931061850659145931437350318923617316310348654787563228261272556769642139528799936748138260257527738672659591483743799081071933019149800233047135863014517077148555052160427325825200275426052070090611655922344844639911918344206925195626636546510019721205144449494620086975235554951611471217601454696006529207099461185711869972267058449084121759099142170002318699917143075431016365530367257088396010468610754953303494698259676110320164345519263555240398660740017803659019840061593255053106327157332812827545163946124265234065451562397619279222246535621119711073299821191726890713078366120351102897411547345143792610122228419957367453185401968077245803374649971805126250737589344926808358205116023827172224547656805591293945304558647579109041457894248233391028045716457243710347880032956729089676540211657976399050110671822106688887789279010055476055306389697072030628787824453467000188986853545719092233164952027162730842049726738666998601851795074742816899448400590547498727944370277465679583627410979240150112163639420330223521293722142468572999221254221666742074533906688703148066417453004929015666046778553070199361847114829594889769991534591004897032354528961288070527519372061339294640401734633521618667415999901667374556714796865158560095748934943584226144023484597614828580073934973259623878844377842994630887074822583086658711253499103617047852080942758897216846955746026204694978958584580921700706882991244649275727668645554986645566465386602468157233036674553072574068687543382687410264426694519617018388194705822964739645824132969351899832276774866892500143391883823653275114826563127659323806238542314915096862111741254278284498611644008379634804529625941791053491818310246240759522218360316060005143188708154130443801897910777825428078165544523026399389702022174644832260036254870475413859386749324341833035067925611526668883110136523344867158273222042072427926253665334157660265768480598936540397007689295909449844714807740137021257690884517192379406045807382818320218381974807961553128727607218335809374588563343519379622537100971325433236595306658096931441128457455730889071575163529179043926075790030725683488024801688699561386279729376244594450688219315599635399567159617775599197361299628573322875892571168510244679446340754173335376559638691601689408112695465257236036773460252496618906051586821045609999119051336946698279056525892013522301365973039987596101023667353352803758935215617683094178165015215213780653509200963185070511361506789283210521863861406053888158570770578801076016948185327072583440595685523200457201384391917148501091049519435721902562366904067226790246460919495416160824250957108059748022302529968361381115058523635507224729763423438955819755698650566947676294830491047331933581652993774247479180103195096966790978726779195745231320050785427829965937309387541441861814349788347884663020665273489565180876114048479101620666062945585006682682459883869237883657793869091590284032757969233871506291732748818073017253751763224221887382257251972370760840621381165027971186123297284718183464729865856581569168453827395092579896008832344385760657795367002172687016855134705116113694172756251957950055042359412156567660964566074252530384792470928593810062724927384329793462305735049626821126701579497969751774431836021533341040067558834087088533410729437793616208997642831662604719730180951145777450118077066164419740086430425824853257930564483523487167368773563502691865431423585733759145825486821287979776115306636116660591813533738822653311882647471162996241232816494062699774529548471846120709092988383916768208474086791746157610832688435175312961975747956204490560233823641469794663950939244210581528957297982681004573966493208400588298723657669197003547264973968221462063135448666948192668830704867431297938712194700802629923611742451585893315473184489303277548721941022559377578554461609130350898920236655545461864073990865695664342133950942638998149452489374573937323247627524049042771802678407446236798691098754472477676266917944410360429056095394725358049784084765719984417565571759233308704398645475881279895684401420201201543958897920980053385355655480152632693410321397152792393036608362209983859662984935246718408437551236852396897805817807980469205632412122835400958897442339659925930728749786787647703723038364226214221870832585393242088606385558440784881718025999624168563981987306681900903840660232789757238059497995100652831010910461011006384652157912034220900332233843988960800026928003268323917857787036191942650838277019273364553140271297984479847022310429895034705697632006314582054499908448832654141590633207778638591309300062732614791341332188790149737313178214052879504172393722427746709956380367150992461196910006685589940089014478082466028774046403498570477325630869161404549734604034888213784603280946625597820068820707497992685202190434227361403337773930517111743246809147250796463872198732898104838963174394843711156085051077194849318841816197192328200690763079505340796899078751823688546772935629597709363534476065104761786468950561761255122529529023120983850791982527252297408444316215597750211186599994066440679660117720326685135869158060864061482285137069762831854249695319415713814821706937604760801513098908096002654238132262167865318729375339249167455930324767204208539466148413051217962808420168764759349284758236807265561143665930124436267495930498406083094335894758690789372717028585500373923216152131864663017236974478758301875648332576092156941841857041957036352399501677643141973251066135032383321891510569312759766569633767005936160094706065142844944715737200404881191888784598640218645275762144768841546769602522577909416876272023549864966364725981116060835477655116366809518019239155859597050346437170453836898233115027399497614470460834188071319748870420926969616894473685383650921068438450519180445911778871443478718594999877981344018316623877850336636204398917586939680075119763207092886797407855821159773289522434766816315594046031320276206846286301634657449987464106394421549697623746719223818218433333714465241555546717900842152877203334759925782158188961581901988933349019172203560746448321320319900720557756475382259519195418511087014211239120070886952943833347362770347437303408682302636184457122949733116280355371774639670667566082871078414897073770122166220300172817182744163552598148967671916673361862175874786020448717468719812332346420449249878044007204702388651456793276351753991928173311859864102533362001227864592666514966732090055232096155825731651207960900967399038921009151998729751103315373339596838140358368876379522734718543250808748777298946597310195150275319279612242144968907454877335978804095234140842297883661837650188705460610260818289818461567588371965445983134956052144353547652236699609013775601575011892827713510989889325402814326559672806764087876036892294416037750953456890098038156236211043017673004779339497755783357962430656288890586368338217461199110337517059584417741737353148191729819752582777065137847583604384321255925804435317124802225394688053804181306845529002993071701623291902216119466491308326398799876065652760679153942435996104306065668898564327857732213760141705954641826176171076141219259941075483587075690340882753705346088392633860030557062339365969319854602381788030580374883366527849881883729621709469148416163908982961578886734928267867313572737805031082822059351499356258012549940285045017487763686071500585832624119548918117984628663905548922437338430711335135832339028224075290870467192038728926802464535577957819168034092522712509168862422839117468741991107664317319136464525499054343637214378688536643701528818001839579106569758591958624850484703617386943309513756528402774938891369397303956338993940469011554239983264857520881194031534125929358854734006448657567947572351542616509828016995378155699858140009798770213624393759042033782988816744145624073861927796944564126202853073552932676506783854914780508015840005441929040118223314299663186296308251297941411405970050016018907403265059945042362009326599714494220408848828648948712233472288187007385143575490808214538340894504292013060804352364455639426259004693035839106359206019991304248642853342441429950110432321947585333184418665288296098180672715469534042794307034662908133560798607596559524357592504120206033877307674063229032293569931808158163783306798701902483986592996912718646199472578520791012324793750143206469667199979981513940493858603449075193053897195722174996738914651505580912906070036784487754062845030891184445387828068097113601541629445022755957642976150433815609835244666599040293295598837048024628279538037956915819299921940214734596940770172137281332785093750198938108574378511044148637801891987052863069803267709366973222127318181590042233361831424208261687926845200091567843861089227551594002913089374948449694444229839624727165723209633044201371218425998732299260725117692423107322970079185445833850875927539856697258846391420783357313266324904760661545106660947966080037431068364053715010628917380254496382172531043777058274741802925975371627252722846251310406617320624793854194382848302486740305183970676530518219963307652852629603309379621875119121454112056110802209635751004232842154465739637470383749154256657423450525305416027304187931272561742386197204692356278817727616131365856068942256779192930834151235326105888135731025697106145282451887928482618003480311358267709993042486914708144125185145617466189437271737837393294328582366903283545930672895220427608575571037574491749003013058760525223078405539052119780527729424804653518703045219372925590458840213982258434114364950417302146806712174583502633058062607814190585234243796513840427951142226984106956802249359447229852738315437919979827248391519252721062867316974091133517351006366648955509126042378242249920479187994612590126306050610288462061809857442031825742744108255662454972030375391109082525849333224016743980511314533263802428398095895509380998043316540336904346943610949593616588776881950760850744185401129574064561251851963769809198303431501274255204224751357882147465654271410882427276490877465413486286536911023492696589065774058193442593767988741146194138334546223975797094005993619562335009227043847193844628537993496029694034849250046165060927152164587484110658977941708177066082751451429069117051811656947147556168944222189341968459000726829894768283308597488909899586351792538531103673338119203604105779921687703722709769410234410101132421068085414011335012029732705935448378450591844555498550858339205655395064202240079368929048915792559776146643384270107376135621812395163916586162256276768560370690891086420376242848156741338134702977451103375280234055049917496322629261706148281198325753599288711687734894410281567325422011519781177533479911431113840476532932453398884143693456802168888929684227430024377968725474150500024082985833281636526255371682635419173252887995334397443396058543757569530113804098469039693905209385630620196693726116798021991035022768202720426651556139207429809639463337382360850449770423821514223380121229699068536531260086593097748322618076011405377777990245732333946293649188668014957630881668727057093576281373662510472145881371713756152808680699207383844744526525395817783436067134813254636452282573065872495026888574729867502664695512928842409779688029550756060893594578713337331490696542046061339322903988857864590781611687715530977027126763687506519676133698250845674362232436517190259355738577278583924555824479683163917581637373500388747934075570981465042035776150714626377642241405599182347603640893770992224171099179505777528487709201239200463794590526801523146691687797907975388280049683451930302872321328468925508881824825601895662714101635325971140994246470386677827488723773241999990425791862136803115503939892394836804110219892812990037533471380249316747810786444829942229644060425489669395087890544102414341915409899791360290600625994301815104385218663130183136170690917269267449300564385540384618071641023614498961547554863024661429383449267706092613778480661996989362235238761379221824401369492736696419205255539536928489100668172999892265851970585985780002277480435561152976999431345220288417748207616132449172702931144301427664181537050497950068369810182148853450536597371048798068512353407056576453619641139784108702957794047810571233613376681755537813494729430217994854351209390624853296632275449665869922946631356481603797282760529219438938125909709056822949833798610621161776854057297119276595900804420170974935109320832544452356084751028580828130836963952948658937662998798088071066614260037470600037099111574788010469703402212063767308347546399679461679654988882486152628282845459033843831425415003935096135802516013280410186987380653873272217505727319671713513108814823763300831517746129076349839611947308319193228056945094412375377526560547810019448569037115928172063235605815756406279557065817047038053716694059573418576909115282741041315779734358335401598390119545089458745447601968165611759555195729215326481214863688466927226313816117188275147781449929074441109117975663841980285962532875426488714743694781500115990178512077030696513406011665644795735885332947634065262446428908145631430614585447573999130535957951612035765590770211023406989880693078841836300120034193819206905948477483384936072353650220898856087282311021126583949997251992865238103921882687994134122715220559220490994432651859435615008784899768433030133774260518478900060875923095814056133970642434761734159355102551499784115973282606865719224903408592987565153313670037831387154029060210939134675228458115847414591252073173558894023654359487466237893036119449881759487567354627670735594276436353959345668530420338987864130409532796950088297593110827804961125705496459293315615885540501827974173608035649724602166080536610850650906596228485667420381891515959918608146065013786322251239821620528120204757309140743548515600436050091214930895943565093724458295772000495576218472445266176471646796525781802595513970950259515686942987901645699890912076139741988106873844292350686462660528460800165971025909972456127189677819774214675567988372743835950892527024353602317369098335552431342400577530431261367769637008058894789363044694764087871427024544722879786265343936207354523702489736390141361193948526532620036638357208890449494413963731949115765568389352496641391755124424459676846913177455247493630306253852711418119982881238739214657466617329384892652321351747046907006895726956965390575054783841979316914329597388140545048620509084322036955260162462164936796263786110510176371655528950301625246754533608171095912437373586354090398137197100754310843729780988313175963602847168678462221301599224870766253980213081900237374179249551702839965168578559208698292225929378459196809054875578144301312752309030565178452141995410453449430619334251309658974360761986182468451625550151738250505307753717298536371966187205641115377815830411591289575703627951363108239221447109676983942360088913078660210538725604940093976433299039865657743176936157534756414722066117563589709170849096237946840469248596562944493339508754131214608238187786243677711793677158463127920121918892954448739264833682574644561922025970255986541264042986935938702411203188837423819013551828014770477475035708885453331631765802585085750773981291728590336340633244308286531336540032537441442019623548086312336781321998919818895563883787083249458416123226952424565771392708737812375643600002090371300184606847741044758951343892556663781461904552491471824460663822395461917109196688815110649664611712083466151056987708970531163088583822998671713227427860820611359540812007569409233291434792049278449512552429779250262394373240814318409137592532085051036481055569558799532778619728135442848609384289561733289391508892448203597710424072432619316531261253664194904884306173439381412133275038479873003421701585335452881717834075201822148627602208098794567537167396500961758250307714823717749322285532231152418216228960691757350904253552084540540924145037906497081610343502337787865177375346822246770533820659772564983212305288019908661445921281502709198820253537731177156303528153233177660680154933488274743656584748523047553842523608710191908829154160515705006504603601912421959562581712456886235077727079992152349572446727767876771859217900506814378061462161580671631577949202633070850312009401877164618993183696868269691565748468449817263450821218470184538966112739136521912501799811108263434917141114688531277311435325648753455818285893402746149387484349545884170450801476598475330989645893336008341338586269429352834084435399634445963634547293766313974377913302515743347120768222041215470749658786607151453648019009037086982912342435890196207454013933332056729875589361246397644489397859795454814276171316657942847637899137461820458467389247165532101015691688000472233423623035175140919052951934025440337110598715004464464747234554276310871469357242135016870066727862492653237553936789663793862869466974458914322430144107190428068849160163483335739348148175308752453994990474248524922885224638523392856590152384444037270898569927139643220057371279076100271907810632467880137619989276846784214884128941827513889693415881190255854650366545032783573868794851583667028991846017319497269808323293728047489111001027619663818891773377872772261646787623554878529850957153565106533865312368455827138959349959343904566719357065979381198585633629328942995549807946005963965432523038586359656905832674639242268910062604426744575620788748247990080615339448925048908949663597945831293960959319496309210228685147388252491520780608327617648745968447535230839472020641293148465703435624029019622230462613586100129045600350339905605425370500530464361607065749799295742415237417748911264673606636850566144441066337622836321327106177271150318198971945658509204182792624143313483997369883608480885516695840397878998442837909084099596964072906895066901140717384036150149260673684542986415587914801063745147091391079408674253646971727604414223462312488084449513120655820956493984087906485276620472123740574189809521326964196108543100180728319094091864221290319519725199705311569461065559242286171556633663237843368928042313697927646138626919839041601243064952091972259129096251165768877510979197501636282163023174008358007821982254632634417722610413777511469135562595443724238187919400623538608530270867974490691022186197289319683586241007533393861129947952706923118511308584773764066651006902540945274949554399700725154238174313831196394169799485045034338388024826700230928684813447930574823121160235891681715715902577613880252173110147480883068686332473103566190625134527182273110363597398662405646497145641554135884875376596551055210517567130386908120573662904461427203976295243792330003186787190438314458496381414310821889085231689969607120752373493762024975524773813960205885402698132077207777086503304627613777761981617720892855707869860460476118665411593779831946443708348244641544453543369879970940071337018391934417384287173114987813250343712248513268782625134097931615864716165528801741330300834431985725562013550891476916109590419826230297760987853153082962604798339558298781047313453025258086082945787518614517690468768494848183960542649279504807993438845227249110687512474420742673538310059513883098251671343519860096286223303452275695182137699899070890593189943854910049990410871913859870378484959613339726909920118672169256288842047938612318311553772758527368510811770139390154846045719125206409833838080005702294460910258729101477452138620593005841458196202053803865535311438035461344940084980287367660946148552942906723714071325190932609063445877709351709514222649835760993194267769193876046176858051226802310643822292513235852558801413912137516500000953084719154306632778096962962510806406323684605833898951017828132171490857586645610203694271690819510796080596467650787437780075028480387828138155120100472073990690055855674875361731839103414077692524086776080701210219649291952280442800469573057136702101493930169774915923567025512963020078057190224525398701154655406866860223941433754055414736789318834491423391331356761430200610160084608358781274194619585374812085129191276900763936773149413671681245091194035205218670969627723621584639998774884073496869685724541975937467309310531744671463421134937991317384442446892404313425277495977298546688070019786310868486893219534405868841301095597137402046155554017013595945418621580566899301819038495772472026953714090418959483491799433830050656064061744633312257019694142448724160669334121554791686196000617342163127169340672087857159851142282873449106095704595675683743273688815759633622163855139186518783326743004621803302458722553337172170339280678631413815709511012119339116067624234399409932049538105558976209293669385111955256463527021407047839087307847478238494814829477640887410362582640577273059555533751282977297423054369403680286177398483591711816811894954842157268444833276499572045555948250145103818090989359337769734707199738049952031483316820620587185711696969663186517532845062566050035440916758165079610467620858257643616288767023832895226612223689779639187549980311181798511550485011605105557421350795767763195611367049033903447506160353421461066130321003166758045087321845994236298174547424670866704415249005736793209606109208714009148892551406449525066722885743627627720387505571762217548748218270623715104424370660492330764877881119903202697315176160367754897239651073827402651436567794326898415609515836708941851909528461100309627826957935600922238996355324149417055842489132548892905080552233393087881027945615137355313018068400909251185740639141191858995831507376298256946154461379409177561303855946714034311188171631338850090566669027160079633240564381508027840801226757528561070158015701793515056968771115786013823087692540314567273865893824307574912311194888033523499806011138221477099299239842857771199289852145585917982321925978067254859155432212994753701132044776629320254002555182681397055340180070141783516129142039376028909852311203696261811567049762140697608402936124089189286128084835109826366479466614160400289525648790500759975197901683308568484661035362430677820600992142530942097665014764647002917758036331359544993621656459761694329796475334516263673516264300455497178391592308732646232791875564873107268225655339335262485243315080544749274546149357161357725112020796199238475745879332430377995964086186615951708960557352420997891609842415793644949025667287898854403856530621174193293269579007761997911493005546439373071806551896567619133473025044276099032105975166865418480861915085835856485293923893315297799392225156906146494896908197664965694072685817909284541497928425575331833306899772943151299276467660831372740926521276050096876803601156886697942068355816515479006955005023466179558310646445825296721712256070041747876101037278031020948172907443610596983420304606672483789871847192890934735198766206175923774100816951587776496249311617419276093848648193288036950501203932492058756646366008342727950094150827069769970738137992365726375177515289152008417868359994980649143499342390885667354724959427812599863908937358808452753416266177005024306664248135457377280441060574088769362368011764044700794751241992810072702364548776922451294762896233201612764555411673692209663723392690632707885335127793357986052756510187901367184388405249626225295373698558930368886045358950700222192190164214536010740619356997382136606642637063243534272764278252662665302265887511651747343895477118784041973451687321069868543842597325735976023722992445205666342239028159072860857329282784215303026832471587195137974307914921571933790531055206113539033389775731513675162265316675949691730486771434931416877499034708899723719527815537503802702592795570790178249215900856108039096604518533454722430355997401995744253310629052708370539934111344417585576930631560492514682006092353282955216960080023279937594759189250072410493099602547625990654742671392923365311975905392924343167059252901829089439428373311915341842320885824847450175703758446764131243755990610864604125611318586660834063582556745387189538699655291298301103984845415517585270005727627554661759679116739648175395345695700055372938170122632845544874017455368624137145166363310942383817459324314460339424218840751528314799225739907062898067833513070809015147501870969610032297858663370158060695254686309672745090060547530428682409765879308433572360081795877429253008343691441859370685949754006180216822467568773237310819796747951951205710180036109981726550534207806912421093097717485287753653820183254644671089186612823303270908611878343453948006598935819810310836906478341511264579336961014108350836850453449743852242878956763499366124680290899196231523885664912847562512766975988893946590834033672409164107784048510394940402060523586659332982773987498434462638551129753194801251401035894650264945831842829302867923173676101301899045983414969366103180476243259277466064356236397989946435286413157531183957704345293427991126333132218612942283364014261183825719304727028468009555152310075286902498093948307543292592856781302249108665770897910919591266046889230050983937024459570454384995116026624019542903671190058242628079901456499180587920280830365778182556220851364914611448214788803448189314806133605455785621270510501273567745018335164951571886553204772138192085915332634995187059583395745027119805926190232069619488619044581545223445833757557114395575244198157657007025047582444989253605677197703017406817186279355245206391678289090196976907647824361992231666962407514120961564902112957340156230347271926774614546539911057170404901233045475779237942951969712482898266243283286752734493361442731913609573894610582859243799115829356424699163354441997908743509615791826414893000752447062832136978661856783279960521564524811671472700719121190128607681042366567490890913503246588814910897527664563707413957628850915328005169608560281254208184849358084807888359291085106311478476883910098922604312389550311691088379002536020643960255822226627335677770028739814673898183494185389051148927292724704531164009231866188850522921657959783829861823679375965049217828735267025020427575801139758042617042215313337974946956500457889826751344475847975084263633954475986294434371657368441059420389956954474239519478167725821140084300349833210044632400757779206043091047973631782983184368801941245591839782995132546153411721632684936308648557401039666201399358410692960850556767010320043378882870110343247328403473550163661321898280621304168444573108458489298151232277141893412557285416195833664233799037226101121810165636573043367828798352681851202765485885276168376216625582993404199869517323548670671257497266518578538840989273560159863421383570220060306442567360585716013196680953482099994174080505483028775834279118915140298073649124879646173976858687141578970794432811135487804261585636110944280836242321261406540188862201555463247812010895956044709032982044884174809583832548302227245787730739543329422695290169395094153064040102776118934173712983548453976883499324260015217331355456630279915201037368686913221874506903190372253910433684890385963335093954920836626740728611497246072034935479679942675586408759495408835776228170252956447147791972412347577074213538538805988490500566248352514297086406631669167047367581310444442578826093747945059592906755659792489217591410471850104152283993834354970863978663661562342938717325222063327561241755543630386035188597791791013634752991007125631283266241819786411778209341079462684150883727430974186436710221952397849846494761623952116183360730447526617971060542892059135407745771572870576428072265317690000167439804174812037035188767513900118327169345105694060398159140494237426990956404694944850756557491607244906831433920750909457800310521454733412352507158464196837021067153465821024650297815314084752777971569699287776125255378084945257599007073597908242068107885131735098209343835072816544042808181331427375053038593248458207597094203212504440908067408894251341889649406802100813843780760821448800532222682820508156703704392872708968470039276512439890471366252958486305057612335410165852006336372890783279645259222530717039683739620531756449871725572977338340588251166810361344040176019802650730438878141717208473360887292572220311792100290420300022802238083126850041113329505641176818995760946796714870921267641315807517261540479557710998826440351841462732122451187391058335221721397849480866338193916072779131799857426661877873480442728743263757239381926206715327017215465856667731602395494245770385537088317733709532202300876477336919714120875950394515557101590740047179658078749806323509447403633293551950927262511633763632028560826072854500023251157363656468928915889487556133898814849159166988960369255703648454908023026458307981114496436873828541297968023822427206275134637158563969708477661257413879779707795761888864992798258255026643981145108707401551733930079483282688792685884342345509528895814550362269923910978467086063501876681581504534993474522632857043884440020012521150882609551354534387464863176457414036396587413127317343987020249838826340351578992172062035576653381819956239855496520678010900186731325062853593586963882433521888418042064397848038413335795308726563141194784500712044624533041844504855615834446948617693463888145100488081367266317528949437415043078022512287416390644845298170988458709045332382299511724200147478862328213833185922698298451494295958156565196402358950870529399445028522519818227267259698004383989160380841811602622422088926332762898596715782108210741868831035223335608129633505075117111896442139122655538806222190553713712369392305155779327589911040484399980677800180229975442256486366801004313767639418942272401836707921589223567615937114389296356497029173252776164190863489616424150054155869695393329182775191565534775312498456778052475631857803178914557404200981372141775641340979160764159471342691091786186351770888749781690359394268491557937286847379361159873151779691979002758356337064834038005241486899683220901968103237375757080646868460351681052695048151213173268146252059321445885029024340148738221465918331751241556325692007888717588157078842900635995962506700642694959311239623273323036358360584014659680933700950776368565819632144714131721300622017356991958873107878854556926001973033108106159637256896553551659084337770301699652043421704284722333848071800659663550164147944396031416038033676755368091236543062206108140009889327214121281763834112434666005320239603048565976405821992493686021727796833645119035974287107044963256182992649958107867520618406823146548840393981119865092206574732885659125344526283415768422708160769956829714796833493723215889519523100001410975253248801037427633779249419745129974211647474298796108644587808955676876251660247078576273373073224535845225917565062449820431169002815394172193677202570652435417684374746246816514291927906101795508116758463607995454953205552300506470212620556151862321282049844841071822416900085097691785965891126934501213731033509279136554824382799741183877411104730631023414134643142592846797567768636750436485548126012422788841004568022050643925569833530277167374164902994906350160397268123944222080176846455737713372725227943031067329733412522012829128484711614176511059096896165792019290242766706244274685828090462955684910923036147715751728791514804255227002060039357105524971888033631817237865290423848614351112798102865446275579459816033177469215470899446184861564998536986724069413233900404079008890011298029572312122200133224654072992262704005965013101193649515789632291646103115087927241140947508854146726392567855413804018935442849963306127508469518318412008722208136546681987870449302157361507748688172305890181340649047765908170795109808761702500902428522907735463871259464950449915756376984155415081799747911252997246739997459947308631666696272160810843048656477991999976449730195856105125619782744318152720079675149954763605314739770323748880029444853050338095294685039622294344904526203225774895788631868655575598896912748074235465688289663055505061668454492624559283729039857615552690953777168207739980765307795216663471754662783328879127574031235087752321305483222365009974669365237579510070371418835935885722201670333036136724821029213779428548972853308149024607965327690197516648026273632328340813336214147119811046901193256678299847666137944669599057521977710033604952769138415959216175543144065344747504344017446960959371172210515558082644251665837568348719372060664634616591342158239610199640721060301697871000070153302285897878937076287722773087042458002545323385958505864915352587461002603288346379526077357430055334978210079871985443482235224059564800765398371896184472910322587335576687863823891815142072348855260724649399705082836016580053284170689339061191835918127994202038346715566877714649499266154967922728573813532233496243444646710448225350059368660613665116319604895740187987294873387553882778054023608361139469571330421924222701864328208014158950652622864838160765792917751690503850978063290899031277269005626877295085141164929534247677174711645131464959332455866655432723456998793726863568228895503679737336640094544959715146772453283466273771273680286107968049251070117994540315004740754627617508884115825567220839397830474905183208975709092072978803250736970046466805133935432173133330496911835149995983209899955291827947254350036218739520374752128664029653283171560706532556895234495681902855752391706526931035630139097046956983157666599755861184632240677041867088498465586944200433794434039280566571093173039326406062164577396524010730417584464938237477888836383576574696824391498278597613438617001317242160256924518594876605364969510884084595278804446767022116135491482729822938560603811004407280873431959059532390579173850646176307548529766224387518458683328481432382843992569691155279714389076695096391854291059476357086909600204943446182777086695419616210331364483047137648603412540637973737637201323703675047887458756166371620248597525509218077584288064037919100574496768528725179789729138301469979743475754794992223881130392980412932313143320128650402724455493246930157616498073075522869037737239262080245331962749309919394269434116066242909143710722957899815902147222050877380591763305821178287069770721050267430655720495087540456322470172433801228832892755307410378644502466827797591032181019449645573463575748890391685107251106172897464658557267095957700883039265264670062649516305730256473057382940038206501672968420384825167875742992139277433223304881872361058797852539612319315419140382966644309785780779916980314166598977351542210539219708462734044545189948529522218463888598722834198107400531200455738124332482820294598732231873044496706045739747212564343081687778094033387486160461889206666759785100144002998562741030532232763321093061800128301166318676474304282127506962753228681968389773899481674681351475231543479759992144058882282670765463996504855145158590754272308604043503387254310403289227213107403263541165253746603522873616254515582178600515503310625336290466258540249974310935971982618946287646393403470936180788067244836024811639193227329648771558452493704631761897065239406607259584388124106483160776697296440932456582040067582149779828139384236093785770115779099351652159071031865024946325827424671752410332017912048603818040856880721276516854491550179724638581525189502892053614666082833879805480601091258264537793956132145589703530563251147014263944443244022100915255964106884104681260548621352799071626472684433870656226747194104555249643518600840203991084799681431711812983312063754780911317080650556000868222129952801948112076410041070681730766003770239390380022001064918505273876856534980207637111303988361606609025971576246506204775766353507207873374291569438136947342129928432958771323199939080117389657906124782628222263036246530901943998920228602701850564398769858424138193869519734951973397481178822413545301590629898139006090501087761486206423355641436828330466914308388241121304502906866939688502954006631031087815453758274870002313974452841925679301017515761187036555067815853030269377619531953976732904863706263786153981118015496472265201012175964398308884382007738544261225790291905230813562253859407206262837365517907927224738594307365319139286321254564081398555172588982346784691775791713607728797841709235565854490592607364978094448272151131512677084060134115995095065214855709939586320818160637451741912129634593547087152524751334828882264451966750954654176391605539890159672261364712326687074208541394462601998672509820565438497904094340898846449950782916778609901984604883958748075244004875865800437567918686180988277277245900288062649518729678476621811979305759576530233753653086208816931935718213786892509099190828390660796898750748102731616630341528504230269819442898320637393659538013512050280556631215191178378802946144040581640713731618697392917810181124710316623965868489531571793646488835620635121849028340603161212006937670053735723352359617818773095018034991186584004155683108690584336856166744479140960580619193846523717300307999891199776378049483046652778597375721462332200872630182951385073899350343561761115756010669100229902638302219440277370427607729716336125891042151988550084363783671714088071394059478561641995273872893568044155547907017665744845840264079615313528872977628783536050504626561692070982628217486041153033590437636834512700501999408582548590737275106611002890591462250255698636369127202483365994919652393512359864943035687154548288899271539181119301613495895145737908248376924019062750012485388013135324380209738901762365998523724330280165786361128416488205962786593018415237830263495294686620292153719726129004810192193962479637931204173929611587117750261032168030684202659631988990978501407091114588372694690899614590646401898766333494190708469823176428340706452716599106985995494464489553474361409339796896728015671138828829620161110181214790616647658384918611927897890989835962990741548303722066496848880842384361031666239993198078667017056112557990016939103854705562546748603574690364501652423597530444384776355358437404678636317442704152567815276256845827863802369640697518059014416700905574543504982273981577215925393868054583293471079612823094250708936623846671554001781352054598467755113323460052612030539351443182494916497816709617229116135994475868185792275202046938576109159521558417400493565314305714104521228563877300889825968789137374277270221585466845316511428068919608982310029447174587491410229444702844209604976577767081401998218942517976200960795828984785611337380315226435450482720835071378081361160251925440413068376118261863370091507509843517166692463426136195704376613189223048379784525774798323388394727665154234376021338917429586419490792544705369081283023562331540695815051481321929831330517789646134441687846602410562173073593974694961385136504455919612541896228066548564058937479248573917408926736018073262636592017141770721100403277303569003556545791769710555495849314151434432569447353686443015120357730866771133392547498986339145876923658245588078530506451493895293685389273610430541740586364160593989387249492013572280719874599470272230500985839963350171701024338616995423577167243712714803259406769696459496076824470530651329687173902469434468578967308510818396470417668264762467293293339552388582615216712859201564686963137700331854045779874509312767235878659935864692609199758779104195777330553854102022112594688500629039332757859244045638993405159199958693365866813987363402403955286934199610965631196456776579825030242650737319020692175322746643176646465487486528338360806611849386709420744404248370150663771632196699269731095406186170419398039713887820441422985793702239448755829626083943706394016393906971081832054572025913231180963718496939746344392323569388345291206107015962764598484069222339034672590068287482255589670392712367500389070455547097566232638586659245383903520141793790671376911922721192078377150544293845432976342193058598972328532115911064781644136559121600822855174289796544319396211916193765721536434962178041391393873304065357922472620734225454256026525755623647089398943972155243282993494503833355547452066573718523080440018419669633229099182808684218448245459095344402800300449334960676408478380731053490453743878517882489899001252555913106846530627164716703156198280048960593670681906223354095708496886508018197866577209520389038846567357656046936443875869961507727940971118093258069155366770096626425747379191761546177348347794596054071080815091867138785486121224761238670023307946670108599458887996207283939366210116496030320424808581848856359350963569016272775018198369266721554886477179160329034766966937055799151716509486878583516429398688553694904375872730090582228557757879404434162233501758044748166880906491265995396468489547266013758331836349627033123978790243140513912498669326468050031021512552357247466610857591025071977058517711717186596066237957080187952254390303499974448053022063278749746693243658665748172759236631790990576010317732109857330930137392059536143202767175353198572298442948622611293064693964482198566014423313081154981296711132731534940367678992031435769241230949754643811079122488845184442101110647406295068331004726575646740536708569004823316043252615507326880643766122064076894555459811995514303082261784571445513746386305209498996314516047689594002098763973206609362826858934772608943203121247258982595656173959090310729780585903961194224682174247792308717844406644778191154960059860952097414317835413483670493427088221351917152810835603879259171233169430028817870775758092909102648619123927091457991639156823361446151030979563759275605559645339965075614803613659476306963296252726388251265328730929696630692013088491755876566431895673280137043422938211371297625275668440351355288667093622591754458083737155588162344289648129803280644002022954585972210259994447071911840114994770753540220655977882782862633326853128208017972610246366517464621088288872080869254615346349127130716061315324919834353784038507178792580622982424244009896761268328874299157724383284989199592064247717680863464394222817090809921950507867873013422129584979710979554131603980019228391326133945050869932215053639170803019816556637741336823549107236223204437366892396427362874175761135615668137769152977932328566446200712276896599397442232927248871882977491828204729243272513338153287190309081680147592879961168447761804258513421500540952784125060800966280063519878148637034678029291479688610822662346677975270722133890466581644272724543428665995449169064030270801388620205145523712580560023090762871089393165187389171519117084983892598620958631278730422922038002891346857334633977065129932698017980513425991983560852962924695464043015111305429476651313422347477823535454571708354982876927058924356147701051575451589253538046734328685420627916428445812177870259921370484209141435709102358361640214982848460178557435561780747308253005845541811765570670952814577391546728502310481020202383491593489934661385736624178566911039884698468392741255628131459951069025528396471789439285130921288931966232936573406928807749233828555802195581036402270146540945618043623359275707313365626112771360652186704123403112655716323546296125281114714253563998007829545052115891336507321712107693930878785719446279216688325000828615468391262108859979812112424912543107956893346401290917603289465028725861382228527802969497248163813314226810816434400697050161912358636665079766820723759321920499141400148472077374744682007577920554296410887944397324183119121358979325123639932165629877601666478583357516979718150110558655845652525164506849159027481906748480237867150513398324797080240223945078586750505525096730536772150163415963080463725319505948578410205702065619305480345282284582268228538893686496940319326151950451287445776189694160446469263031588537602930217417824432943038184315609338892223266302518885441967349989719369010305676837307390407236743715282691669589066942980495420914131082558548313122993943127188892898284779343902091614998685141383350554922072829298210700770066251439221785595272728837898133938900192815835603355599351655785888285370112484614644087458060398822966899654033533642921266804311153529222582490392930163846043713427906988677872224040709817148271233102436763041122463408226278536400416980190403753759301830256094430321582473182922142319323010324376593368911446264144970812959991961670653818902258908606788944456519243866946786573214495903327093099410268747847818841588023574890079475052172238416867532394911966773364797122377404085279422652161828722042992789879328635781396743621189467561691997329434037232437186225644466509841902831024195030106514729763816467702470673604623146431855973259020584946503597147589008269026875748517749908746677401292039155848112008834483006043485165616498715512823405126922596414792967792114997927470896605415292158346320073891137120755173453521207508595597949435354725756606814932037514424088813361159426717635659739297011547711874473745526771602313297854858851801329558837746897347360431021729765841241072936015208501872638734711698697136685280407799945608465486824939738596616957640517674836367131171317356153779482032261881734764416474653801653936436405916701129230011323668235882468532374116310753183606919274850729271105737860193024850482580655735361361977364693610327863572734551408715179535038781059148853051321278489546532823644893536306257265599001144602040832715367011121831625996750667238589131478360305547238477781684085352781648064164388235330642686998663334263897322445451894149396849097602162264078969991249006535430310316922149562231314440172794918589837835909219687388926312448326136657214406173448470933916726199498405944478001944752992889021375422633337270386483772165217961087601887755257205058574052114759724026337136625748832588232118706840472859029405034513703733835860457384254005996635325704535391569328997749715168790490443249525533078176474149516638667164931955275043282739085547175560316525095808962117508227087290708959511044592084825858498043683713558139593644125688013330391883886807186930600599015399280539228932558387959036706317410110946796145452368890615537801693059798354801756368296935703169630977577772012967346051830132827284931955118913897656342375875675315205753381375131317990483498496500465812762451964192044933619129393874096444743565647119714292236888791052156878445245982260375559593067120556232310818377060356958495921283326489527791557790142399192854532995978950929249511286010753219557750707834941488636632215859104532169153412972307492786073829452763010197778065285345934135526900174045009397469661875535042038866890656348479128173058967596944105656511076058912664507613399968359604215955799726355251741134624000049977779478749565234078943025850890174800859971273031776796355274802144710432826489388956836845414790266533392498286311904064121567908633716051580248913260431697548593241001010884182441212325024539009912066589940473116838935890009277982429583785777612540701433139125465929146261645094784699779795586413972416106180202188703113359452095195804559857119009872227234929738482170413521474173540739471094693600866759713584945339315552640073371636017421296402153851589644107522513663587308500104144326782383828227984889846564691292884927846281650824572612376166448606123493666710918303022517229878092098008234258952815717740497891747810394912234806744895939824199816914854450166295999158376772875453438467068165997584033977944870790061957601836534626018267228305896131566722148138513502477497204939917387160916033076918436281912587880199024444454498255624511445734663690158148642468273055199944178109260499144094248157020933141952895876870934841689204876675472611913280583676888140247917943108743318710195452004127352509178302937706610410291172935914186205633051956060990934721773058032040116421287507011004801663783639916919410941951436865046734378341510574612335871601787062091094610021852311959967771222011253886195469457226702370034948453444573550883529065328003346576336228180809411736433821732471784784342550142986784897854907021631188416387893740607697205918074353427536241860488730248189800897988540564240033034369393178258568588309890379428802625690801627051249878669617355205376262802546224984626182685254907774359270807529753339844784037489955565376103157239368444002288949168646419166764682870345441078826822805584647081348513276984460918839274899962246767588364632204870656284918005764403821926402706223859663389074621950314520270370300656331615159323064438020008984646507552995387621362246814653290758483737977258388781840597681862565994253254871002642571250398355631086404217448930699126893740535137305038033711873112592123017096533021857743330865167578253453678312664381365027190374803018479121129653528741754466831013177683415160351020047806101004571267183710812067984618887681155068156948129710353222581532458208626098357338341329540038116943582769773491060483613422379851609477914878363388257985470271571849739226210675019576421047736211569958317029328797662590851574983390924985202104189686219546060037305493383309441035379212623146536574875741097604702065326486932720898388058332698435658527479607286706266365368477740958731490353764179370529470034426249697981367932443081427594851669335386702523476620277475696556823762338749916610952741723886481666667480222198951843249287651109941562576735617312883372381629395722952221084811948533733455054464511326776775495317195574537430631585049413975280930941592738148272670413383910479296546411439129448850715008724983862632911822537326240671773398151508166016356609680198019277356847262170988594340072416872698526009368597973126307454140841250446139328544766616440054670032612532574466246818187594539755870299152553646717946652361173141751780036532947473234886159816360121613559191283284787210944349613314957175169103366653213611845973777033429501198342753371227286705864291184428798247309012432707254852354071363286022107199629450034012895678524770154677026570482463305336179454173158306339979876066389036841592593450333027586853826845855129479743215310039082366428669527618344662616870058700584132278843549481793255923192038689429197619466912324438392514128125308662357391178933571977473930884407903812641921844370902689903545064447138687501427250045844868323493235420517643170880301712102973170725924583996392381658750447312166392468482908264285922295796869756894759224645015255644176097936613084965089719469335624011580470338584055173555371864256159802214633574347334641642954185048536118832308187569489140169055032148779221435447172035752159687783199517067444267016474950344745230792144030099636014662531384360832664608089927577596889757173478109231879989022944446079167175495648493956177636795349617147477716211063599476658825336583214605193022851761746703220363319742210207110934431807210627945212035971619975264483529831844968476765194838471856161391568872431631335393913890815977939089538519910708006434054546836857287805559121998944227086070455062595160026445263366536458914668911660525425798627861811618407976223614869498413037546771275969496259636279584922941290259071665233458391728378224215298180548902606706739624540069512085400622827910519516178212473838853790245280213497278095676241279610462396675994213554377314217479844498080611136946529825625917291310781422744606368634958843418481481746130987176102078702324662541462168662771477233514686218103155266313029708243494386170045419636544809360893084720160275748817873594140102039557959935270782828646794683299015772629506161653016842075892086838673152922208042671753234167736215255642873938094126708870362521522260703370349972490935330638898441601528110111721299151838921260523460788511823284645923133353343229638378839376459292194290471470510819389384389609893453267630501151489563755117575525001069003781279182153559122551095849177375421929994188831633946411096445290351484102819660728894639027406478272539831100645911422484249227620777523377673751538559337488645597993637227987021865471358222307632596013013597395549865629381424769062289049263859455845798243721145852890486619514198255096945952199716539966985224711252566090874597458209327621416458682381541274218089566458408035387673358271301273830402784343465639848509802036241980663502089129334883473231349759041964267888986747290088364322712043741009831034386655547322892199327532517903557597340709149277105270656624761577812627418067249208103157749096185106033789193498927500029466390653442755959837125894676436198231959339773032749719891916894706053649788083591602820736335394631138939797680343669655203845635467370463463832040665667229442852035422647999071863831940361124765414653569265731058611244054229767195291999158834856044710995731308565859553087795731030946045390255195047010015048804360931524506846817730655136695705187753810829892245831164428178914669267254114556260782881426759680423431444630199817239378898970915707196413103369199047018311645774421337999654885224783286657208564451281407402890400808776789877654862499695559999418918669647392568443837784072147055090346998136324355194078820132619749175626131291713028675768334034169370695249962176448228193551935087125565942815297891790486367263185450677640571176133807176315970420912568952284426177762966334647497968639099445755612304184664733096425199017034657781331537534020943789326266516718653583993191517757436418034407729098000962510809514834193460605690040199019068099666402651970843578555503208008974795793143512680243923569819395024567281869703418036684542644386358499393902191145706051315807008461643686213417969912558118129433725597722314326460126564500276588682376427485544402455097878613148319879644064132299813227020455278388832921245005278791429376188881947273754173991960658371972715562601728199271268133189366966681166665803959398780123985541694427044104744898306514929420788853074867420176462750953112723219960730046431620021758023121472849386467912843227480286774176705260149744109042012535552554290819130083526484039771953998829872943384400258079613512521322500100087821607085963813337463923845290417344254415902734860377610607616696845606270170422438967670536714679572930715298460300766108895534327910724645636781218354347091449738344906480683288628102519781752244135051968725443070826952915158097322322217979383439758939982679533075852661791448380869864198184397102789120437887324779182865066868367444104523954039719549644175925255482015547734546479961126137454637828896728652714634209414085583100156925863081482925204656996201667530079248443993028726501850208481736244619852284511217807196848545801727872676878032530976283519453436184765917320695511316428184188432838512859393633479528976685612160763911710001988665323047910179004352649976460082826294524635689418641192117933358507942428281753833373792632663642321167022204400521877452621729864269837664393670280991344534647909014836998812304349701931338847652465982851964639501311353743535196127984745274529489260165601822218769199500157932870846369502586407770539786600751859333361413139189472994887841777465670612313150360477440783576352656148136763957583110531150700097750879165824022441389503841106023833693074888090182949088267866181952258973233906610084216721855340850909640374741603081697474973301122439502507468267216591067063969174115540559558007861105579290182991582745492777885064888409855107948101111495853437908908476004960082858692746740047186951048268223358786442086114894723984242259071705833273193241087236419914628061422074570223669171833642785505925458737705269143469777591759904449597535650636198717015432861248437912025149676410447061692299814650175437736512789789973211258731150667304730238442834918391993160896288627963645089723174161425714650948196139645470756986203225208270798061324145743384499012730064005647365227779530294725105994710684950425160995979548219899079174972889967322627566281557076259028489255083077678060044081123802684211654625885972799370564516813762004301962729745305438125155042465962247834448463634441571872280561701446774229334402949538878194576523877745958224767770021044668615413760022154814963905929854053326103660812952456958727969214845326171392745332509305268960710993757003698162168391929747384189913165022819794313532501110195412841046172596536955549817041903337366697213726630160601195643155990422371871209895828484010124838659201106684053945602703645885350059157858080957997789359868639741777583679756430353978195488023992034666769446056902488552760579815806462498372686444643690560086200821389564167039251368359844899882137082102652017464439493826122431978869059057195934053144560882533733114186474582942041230031672527874605136317932653795555147005826114568997792270500708228846510374870024866301780896254728730988445847225675739399968582072557533889802220413803048405893996060742263548165246502627998428385351229987134531744294957873553587275057698205937362156338401493949393329974147309991264146729973935337718539119753366147123974315772809750065452070979564805454248533546222515224787241993934343924315201571273203570235497591609335120234480093905359270051754698473130693162660494873570362571521135991079623788181395066761866267683537288391736843749195000490373675955262050797817374382227983339975266423109488627106586419161401113417408707979831014369198309913729900101521491100824861787800298606362989328974326491217303346484452458433115742233814659095914681430107686236690139657234647820023244756336892580819948189044399410388080573449810267648010055176666915515872804680857352331171500597474690585481264804520299911482914415794659185368973418564639091188182405297277405868798366911730944007428148990804724965518776646433428243770984543601360418346141683533205665225262709154370029835932539631091108168102249936090297576176790922316394842614749681803735560344699997564214443814161901107649545573409435603163770490350484288290027048075808695077700498745342712824591612290208400649188838005325271852666816166036101334187546213019605941404651397252423271406652794835976215405226528461510227349326721767401118028749190600155846232073553804323087749618032757845474571233122480145264276304937467020096199400468114739513331121088124126919386283048164288489976305302534924969411044920066148329894556917704188295782840393585100125208555818702339045256797379483291484908379995257810117179412212016266153728797922413456844633976238003134541295482487153719711216106942364885696038552288643390091102875075468413177158431378881629830263156554197437783284644889197069234715710840623825023744522833831374113461829298792542776329467287344659477931454516581345060016589906907760728587948714864658301292571330369688092847275488248048845536902284692319397954874076184160562237468655589023342934595934189375615694011554836735100166026144028531062019027757261795156631646671853125258178652702058749668384733719860783134257982719667709840161408486590903522226998923319484043019745083549102796493426311587958497142478295438137213045059272578688808461601442971375981048820953299725549705403375445332061079114801579629907220598258698259994231798334047482486662327259997153045234147386350593668961712322660233492116824003592052214606187359700516441020748302170767754263168972744733017145871726103390964891112060481540697172635494295148823567231061716236621106487733394271358523053798186322366961397125419908625056870515894480442694321701594191368536306585477490701354083886055414682058991363060052288374294131062702057759346145673631425232150977099628360445489543431995337071487484885584439449237338535471269055641077973076760265790981797626507394190935808967504371198394435284586996705098046387562092854990073019555421743954600661389162997063964726886272622485069832971401273417193288717846019161985364126350311507926951844533447350824729092861103986131182179256947201934709427418530388729952570502269005548057987139589146424289325600459667597241000002040255574036864957202825206121549701776239176500156245528624696350595470511426447061721035737356002833843884765017063925960217760944282281564622175998199843190258198403093424068297555881593237898404157908643593602721958082475463147034377938462960884703722721911562167506472453234109727181044102634783899586137135779656931256347429700837428908704430515585411241691870584914046099352810097532840516997246538907454380185089366666094906995483821680719431599244015500920827992635457416584100792694783399907629755043224962084208015778201296500601131573078668722983651187647678735878770146030109125336541353714891233563311977905033995978823280568893916402480259433272005104040590640805983966428380321588936755232241186977630079209159482494703237761837890318788858696104166835716053993545594525913403553476721507233020832440597581601267859623949609963709859747084883182989156711064480716439203837017674392703595560847040986190752231808828207648848348997598889744682729384547564145765032703175669071423510146848870599254218120281742094709991060067482058210277025445667167606487893618041734869031787558170647028177600425952313473869474932470667685852894357271676761166352862686878632076170197560384192569202491361677131390064961700476811132251035766448782396503189390513941224288917173941340342387770812894887766466820275214134825853645104680609825907451778395375954515933201631264581952176646959919831798782983935889164949464932302624455877451958206942001459017964407819615771064667138443401256440027520633682369478196604668712763384139767074321853716590894862635562430968046894172021838027726578976377668773619393162069838694075038028827317611949865412483870827383977313548453743787156595136185069125112854144540310681978304174521840819762993833706162750098477011743408921461704681118456919743710556330539458793425384875403071830940060260454541012864668525229608495148840871630881213575101738167020068505986961517889993542625541073465195551695208401326217559901636011339703403369543562359835618996848949628249171590661837719719639867575374549728364721621460474767698833559888028047630266656077073004251395194241636419163093607230729672390032806667618008160951174422172661259290554789277838301883701986098819500552052576746523087261185892320109494177154728489448797202908736056072663295825144092843118437234118578340813888949543243991613316290157349959559961578972108919206756156000448936006098076588841827274719055822859299093358577268927148538254912429801855728401768167000448593697588465622532068721533049485006746042686639430706575130325706033384251294576592921672512726061332680913105120964273624366971906423877106489892791017643394237088487639379785800665344426555445037097091530030230063337136240768665709476017741597439243369852118855795650169485359923485541223484185499972633622492198425391020364157272527373278399452837185726789939019805754684398047711593435264716741679708842016604471186203150711859427151889628772031607782157491438105613106824233916893108305616347590382243514401925404185215710589679620338000220748184757367308344034079555981100793355551887208909213727585010631830475436403726318730587139751787567923343036709982281713113907725705120566490215908680774624657752593689251974988839222132750964974519298099638584050472683520667726983487228710128300324486811796741082549417909636923398933433282759209793111932707572140816343202963250386598653122301051292735407037704063712075523989989111268108828387985953370041017261089368468137281530890740154458018730407415223187896629693201300646562184321309552852740133047403872808094871001146064641947675323679595038151625713143705613398780064108318154873895646201011444893140573379912556291415002283558503491729937582275101676825643778243409251405334600032154874898396414275155794549616945736086149216435392644948006280164257784363535378674861117493976825258432982982847477916120605363126031394074260302073473336881273364285287984384664046825492950894256109965592853485268079241194220222074537873254454746352911935800152705678787636179970083410229317867768071671787568717994604925718367548492908430437934530890903767828060908208352955493530350294261573440528067605336570642746845723599766435040124574622894705995172800777457485993239319208231037838026094641034897929653601493384038118633120097828313358583834941856141695593804024918921191844806505901076633948654943390495269471716214249316515401064914406614238959326345245115647223341482534113728775471724807243588591724736678270436803300904027560372029788536982953027121238502283149246251768419246759760064104828496911382798331826983384532974054936984984113136107640289319302793607689510696576304790463189509303711181291106185323397805716243915608620660926551524815979007007034528419227609195847345695972200668667347812637308225194787943188014850155106012947430040899039704965855525889014052520600877793516431245627677562077824021784637361571159231284557825650116635665683674085000078178364388910146146063741536657284986175830196430914117343892940060807825465155831598240124238659962196884695603123969248751213133656687349761926478715895735272017936023047054795674250901628183358086193077681324423654462240011433966587442654566776338035966331232117774371296275458349834215275466786687574902124756631690645936699354067101495009571252954716720352900862819048613829109668738758841110994474259309048333186781174672636673512656060920079537635773424851582898734890247399904820339811214453566962553130919672966274262050600518078824553937760971476323271043090520535803641706184675980885434995866965296180706543567323042807692448028774255646020294233852799065627647963153459893496145846411402846567467550579725609535900723239027923133813775306652489179126819028595562181706025325440117314052112661111250763545551095263440619713011033377269085842441943036308383956021234551186482906087071131988664868688154182090209829482264615400094365507722454831911297078986243653281129067629812887973591100234464914842802288980174535595650598222959183895702862498789066622582444648626303459680172772858540304919750942344504558149261352231814331765100327468641920755240078004470630057333417791532103967838906585416550472800098544923129288543165688456691355396496028871203233045842264024672092483874904609481428707969119755912522456553067251537567479823077077554087568682472133660286236978476830404695886295861405107441255974457169293212568257877295331625406299320984275892198156941412081508009993912980420155303265766133543347716956798494894602074234161238436541731018023906382632636302378190273782484616958145015486866537109758642870868863370775870554214703883093135261767329775871832716908089304847648672589578602455585963274111397701728633608377188243585504154474957059370517021826965559870068136281657545398552731213932344302996312533828673716124196710021912308702779360982110598513930053081865623529563537055193148641433407768006738047594795158466620257686306951441928352724942810438795015036386921476630216399272537368409487939236428052566686247690887560633408880285656009003824978110606482497721075844801206442450696898557536218172608835375361565371154823761534926737584655775349544773842927950479066678848542705796439204072979745483344016112957615117794791551316276829926269348603006125744338047454156815323527287873333336530962283312867112625374945085860818915325196493310594373213711383460643198694283197956168965783332181836027024881084619347443655941797714771421047023012184687973794490825464642907314064440945173051593173598681929987514761787774310131497215679924648118470664226350641402036478473334180829054832510564137678445894229322111828594991343141913468571955932507180511252890945383782278938642855083914021890437800152844123089375294762935336036177298099745572653137340155356967886119095617581905046298679210391401531014201975700817280929850375747804257258281804042546978761257102731417778962275312576205390544096395993799513146476243288649157655450489536130655878465691258507888498661550828611942302241063216389917807800897107916321460868944434454351936723744939546767551810290207712821550194046697026403994309746130335381815296132853119637074792596675061497261869633001787145797778176908642683135692661001435251555376686222698404819756693779477064363827507988951982065635692361886958462031899916706412565791404819478955849196582459054192013492555655650309983578768249944130971393966845499202916603520625179998572329191581821198807940950089644304734124725829080114548494093208750307332157913789198076287874521490962400731734720424488596625466814128031387559238436399004771110431388223899911005876852630776484771188938198788151124138714662471800341544600940754647005669572109302843661222258421932012986089786426080732085785746517452066078185334271991772620489745027624712719847836865408184814480380524201765827906463708970579636167949306794654438311529281454667925596640012701528782166349530736149021948078226828900829035626750500138408708581470598670540164583230248998010582756516004122788540242298928510293331588772290117123429752482959503888794002382416911303937466228157419937704297487849192728165721334536999319991362975235850534267289501187010768095820393860662953495217389192575183499447892696269494494323632295777674088458959266429435750571521215194704103679285289667178860667311408725192369433185656920463769788199376596389675964394118568143174180231995527391247844809003408394126358835965563636382001644555857789344874343099300161568890499880277115660808644640845894237675858683184678537411224814530153570779616629102993774070691761836793530524454230168340655889076987456480504750908513851581475828845839248615301748084008959713422617189215957582095552144466613828511291344303581691119312528007255398067751700788800310060820572345926394627029996392406182103268504287668664015997873010887065627465084500783685491399091394670329500546129876258511368752315159361644571846563439623539900211749717263976939210362194110767085039270991873118975039458392944024646172628688913664143795958008804720843434617308057531864886372560979206098215971385460113461472464813021450270126315980588003108083892042498115352050522982172988621732846578273021993344131589856536398012232567782325675232000773190567214033209894633038394001001016789971058317522872089842862855280556890659409676594298826818716758032278139507496380693471973097041977372519798916913113384237065461534043918275007763026877215284245854495546399285522019796110723244570428173495466557111274135248881904790717195979213039019632417810172756291641442859326290659068576370159940790942338271847197494103396235275764791127427664118611902832985832553104883281300254064514827363971088202397847396217798494690795793831774249038636770675818099679227223676533616433046577111783159582739388541996357681445467514843528435393657881286044235003501532424024779356219179725007581686825653401495417456511385602321300959302335867369802559752820082581418683890652445963888862053183004762353218355474843770428152902320151019996677846958378146668379851006603290243843246037366148783985656855985357093050640091994602805797128486022992313097048147736010799586334536920655417983901487285245391598569342466621779522352787568164428688034325253704369803015105294486742273426680292303530911096781033360914039935770516109356537462086489097599235620506312337049661162286892051524702237140074430770497936741837656919042989675949763668618295130061523395167345950370119318062810268184193004352358822442392096956075262244962387979165386473346593338478662051390701116323961078539846181762494803957186925492449507303975615775388913442527477425180992354148474174244739540002151044767120709220354118774239246679918518711715649326012469375824181976192297636202940197565486977377953600621940658944300849068868799819014844477675653306208629040464958531179705035805097117020107924794017965269315995780198742179001160021996177647129699994853471701759936810118374904566077496100714808538780270859796940257524815397624926484434447343487980418133767032881179803792573671216541944824562818017770085281696226847520315950443671368962435986147209310427228536896044858821855456783417230742094736074516396517095677315443149283191672505107879743612884914711786294914275368138782098015201309736978965414087283062685732300918032663510415433821378726859146082225022857036064370680943366582479631662198195347390288624025921954204099610419958920209016094276578633542271623621940328586441400185806062802149826835261371000081300838067623423665373605020787302036211869162127422205298119417958090636251495771104515983825324744646118095918374372941504955777402480514115682858620282453548877821791517703980105954196595643908493773029285986489112846615872584317831243655370920543106731425267076663286516079471567743793644285243656944942629763768470781722088817608763464526014599388879642342997895836237973776141923598422911020143552738660740220662442434844032031054272171142139761362112277227287155207594642216455379644616215420266026453188740735392771519157089407366926361354432270341828035001864165879517048103240553927478605657624343653977471489054703518716064958515779609641400071743046909023954625492954504779826256664089713006230403831998398941114316163623600659038759557119126479424391187733068757855890254619765515083132395130906407634971601574449442806016511130946575911383891737252019065150826495145587260981985025166934879953646863510437193216130046446846433105629043649714171152130487284409370445005818479424784971148778060925975359122219724400216844609763371673162378086091872754008017286082653705932598274589148047587315675297320783792562036862720919037671637664292051168413885739640242108938344788585751301647709794055669260593800105910740959646930218677284002968518287919923690075784662306382777665570959915108832964526916204448438691998825513688616509530161370155639724197481978956207965938112308147227972732225551178868987525909170456731365845703361333435511954086653090477741674583693572022013309128296385301113793743731916022675879274205553252802373566898810422687411237420371844050291800717021088738113430355176773414698477120659994344099381169544244434425901459016797591096388036767857955679787133101279001636445107464060963577749208049943502138018784032891241862140874818187611656958244134607146295673641117972359876791866169877118551508514984327940756056869240646956104478969538268866251690678349416881246913410946338735382970355836906731265951452290328659597290594516983287376679647518088813607875924350854838747837576607911967219482812214045997819425266909610571126805474852942109671670879831502716425663560839607377062858878654735918583150437343843287588250611475192215148718232470096688537922389681928004334781806539897210775856871206619704293695872057897432691160243234012869302945837181700447959757004429882409044115764225106709376370506804488428337520919099326457002325543684178560876790530786726483867710001207810912872898402015526004329835300164455023563691846351946143488384572988242731542470014264118623766083853220058883013857789536231713905439274938633788494275023432461444449146396778476840764312285843206526888937043839452914638516733864850691834853631338674757119793917230041481649546880046567934905735750174801813813895444831350259808085554009586377130015543785558544839810482552830292176457081145804455768794632365388997371071468161418607742435475655765830688640316338279854363871198618732818607665992999289010042206509337402504881195040350668713294692522936758473879085452118078900320905108515643884538319510092697231198471950034394894173636190567788369247242986676522500757286989886885420160166983479337030038656443498284405005107248717923030843682411711773628400179412144883580540983143202290769809920246000975486639187530372980106779130760870097828332478243538506708520551402654633219500797079877674098709910659314406843558288830196381474678341757593230757503739847576236646051826967039447914432677910655118628515518794595472146840148885700462078606416290224814320762928160469858949588567644833998898459958077226334134706126823823054371637493335835487328904044526152637303605828376754511662593564002081279650685403233905062527580607582294565233297720898137134270475457966321365314439406579289322390917358954353725571790146964588743455538581146135555171806565064245420669316907137834044581381184946829015160668188667128834135451072882073504705823928291333109579723986502053152046783929425438711351485392439968191351866114426427280146208501452436641710413669861105378730472549553178885276533315256613855500955630673527461876745305352273081685117399184424072571892225193830925527099874201598406895427863563414598025033642087219313080299501632908770177827580934968083423468939013657992355224155258069902436687734905437604491777557785859907640115585781373089568062578692819523425379618160540618016935814667764821363855092247446166896685824547560470859915285498444200945923699399331738670599744413851229627766711290777296300178731726417362281792649112809463381894632609741312191342790654662600606226135174074331974724434909288696911224176662815496155972589957742587133710463463773396061134798860761809113169481780254404848869628712562754965300595880310537502080240621255349790855490295222327878266322462947049480550273704002017018512968908406739407928045037644808641988145031736672693512593732463829404412275389773026346592951362990517377374029093230251754602292258099050762867232308681100347013138756222467942047868928165576539829388399857372371213025526630161432597991541058705178536353804775890683033305802485484636282054341953153604698143679225918998466352468044063573482320996893140368184706440800188346266980364789047919767874989820645684928091138094879736850429158601945701249484895436069386909656033605346247028696038722614876298733167950292398353112775276365040973154665848160903518072517711381241362239257668455837378512162226357402222770722459495286117018932533466573690371012162166484792339340254258480522417381305057608828598812857879867352715456486085405846658151627134756950052447961083676685055707218221679157685123957505456691232419151670530207291514824334939877214918565958513890126531942883165538177225756630952248313837541189451418461229387376683458564184750526220714278971474265360984271654310518988727937009659207025536263419541422853544472795503625074287078357552209656013001647165269567723101885383269928990639792742138759169552221798712692834898292027105854493862433835671703953610652968538862766207783194170340030951528534439589659684800437815195189572732321404036718473668547036844952866213599536643580117242818141185904915339292545096825594919190048272034385001745412998214691587288980550122556932555229303336650248216475325665685093548293216386149538166572726582445401305559521983421831182359399873052528257740488129829502354709775006021390260655411929773890289780262223650207957143174008667609117221961537022868812248587073330161818539735303260915186301033627964074607615156635379951122073360612499403258892953665136390210728857057237097035195889658731744559561977790158984248195130785315568612440444740874843792611923992480429309868221872769716583606271160811590808400753067497920168970566377335926841804575754637685970646921174910509168002185552836976481414654595277060438543282649714786459701746803737388425023805842745378600123104270248751329431529820093058125247527995083783389795854426117915785619810589864329299064030643777993453698151198856708236384830609164858186795059337776178752958108592489591954480233216636088003940282297748907102340814876363228300308039165183483347640790549899802757785298309939326867210310902515944160518495340813007692394902420347895453000532194369223211856792812863202186667371510924648360469346468512209544927290111887540323410005911646216384861327326647252863938201066428237988091124272945437717817961567819979341951411472722340713135190399772930778441894839756851257075394282612300508784234335377016116881687361184776230058723729257589492387368233614911389236175207410787159088719397279107554277969861639365895289609413061115435036368175942221575842435975486002765796711527745056974396314675136949129990837309690196205199855235184034365615345878771165986115162623883777743060313755381640228833976038467070866930577040350322333925086518297540205699811678043327166375716972914003741944004131981596668590067536533595842120244628137733694282498358498098658625751147513927508070490438274291674679780914986141133639203865683294324703631364041505673778657439546427736571658373171795705314824080536165839343923342306792326961631611780823355719659401397580708747792761707719777354412129030820144012113261247551724577496965254653219111283620048226176312370669914834749637648465108826121262560478644679386741951028525586404129650590597669944860765800708406818576825561553202484065241156063604615988408705888149914120993928005608024343042914238896542769462787701008232413803259610737620847390064779100011909501090292501339336409919242187736191643601158059860869729117235388788744237820125155393024122783810729315097488551818962876398024782898662399135412953445826273832716019542575640318128118586084881964862741512719057941182143000339558812645942542887439009733745478914712071062573137527687136152410080916065620662492681226474356791549338373380237298824962963764175697043535289788989656159787708844228030485475067861338058232656895273945013068543244602676469160091572240698114412395911992520049394897212837187924922114360636209390724927241135824656035893013319646537185172655379148763199156042763060791189067695910152902836162910569331371057233699880281843542474403305862710261647635790186077406613649342703538350934737680696216646134274978890897428373223119563272834219281150186402761928202795464336278004855163224265506489307808656057951309123967447908052291333756276274043756593026029800832993848517045194031847358979465942156719423446508556215333864459949898083841349095947146378394791120250640493747632555139747879108989318028713680538525471250528447407932373098568666148099816228421642257148230311261126479768895818293474600072642550199765550717991848172815475143478924157246278353362353704359120432655045370964729868755779447179092741920154647064062693034871055362694180779095981050053392650217264858721779106184857304093872677367799278404044387353499419392393661037758861574872341768283944788217554206439483555958738296713714255448795735815103853151985960757410464382306169472518057004071377570382390612956353814115870999308479284231638172277452970896010130198442376919818990151383177406749797037135487330591848239045149629409769456876388751158483179678309881098332309241072529587611801813849979313160483992187231994312960100474929135464042628054589263800867708740557982456875984129031289121906280504017426304264719397712484702505032900237963380435786040298974253371553110354879498756925139753742666295961403392377690080720512077265264885972432147780559660264611437063777462667284563396864417720536123987569191918999708454925982624812684309457289647648785282685038709667949373475530525442698150387951699458627178394064483617314122161404886233625960324629419206086543280040470149505271002454830760823457885944622179341752378419536321141905268674264368485502686521304083581990122287874088305281399912747967922916345391031458131771128444800798607752784167703637356638014489541563987003980398482281883163015639681257537039105155169941473136384045673154844393409625057662283179735488211912121616284856986894961289205160937648329805492630089416923680886861260103717274134777884462216776215344696713629774160949315735272752733353434496280709554502119973558670230091303725945615924006016660395354335593026593401126830014066852086906225616935800686704673467991041255340123257409215335007958764966792570716711556382406859642580210013284719113952414076526001286643190175044796660553351867932836407627074892320236013311908830627576608915381417283804141325185301630973417948064583932074675189297752553060259232792953182715524524657616993399212971582211950937327136715321032338520774915891446773927658727517787718515696923173741536994529331519840989925036770136603103389459816036309638604928660460783090721629111509184226182960806536928063057379441744250381573693490526950196638990695900315646823273889788892290212727933218828333580756211758022969516779314679528282538130800062825529200740592665054755455484861093525541021298055476926453065736996114775621899442160870567423049210508624350130956387978151688310770679183459171262555519807065864176475801403113463584865980410645763620286883161314231538698331320344613932879318668897671975052838329770868299237769493296703315536294666824178129986965942539071806488785869468560767251794733068149914898526436144161918051875791269707266687986525952611813211329720936040740212461693464650765098304289473050713891341771504170805647145030878311661353814513231176380884650857204333137132598066346334829620509325082539899846372796123545263116147200914879707328173526281268553359427070091678471056818577686527410881575529513851566849615705708949605308833245157253210466199893102593257716875433337083993004400944785677765337717140431866283097952142477426868833812657112059828180079322101200523774213098874085538706469273931751720264903170452528125131319583274704718804012098078825443255755302997493227555808859853901744236589956700039548342953147188634359044096194130390887788178357835394748009202367945563891560320122480238834635721666651095435401324957468124655023529895273301971119917835374323748330318492297312549553567337767568203902171655252823712433119197025932525937037521134208252851657115887736255281199720358710150493282388129606237226236601651250304371900831356286329668605309850086489531157855291546251252358146082859174286228833251117771688831787220008463089968266235530919629722146931164987875474298481588944064088477139980646367159317273847592024182858154367260828138446171138812045599283733944069038596752919565763766188446999513879750115899890294189435599154702963192695843854537733219704792146104882085967160737262411944774721445704856992320646964605097905752548997033539592252938532829499661370942713085298733172404110066677607840588410653929941975583585110663068495449817259803543222481506782585972074086970808179122591192573232891957546221031061103207664487882480473754308720710882800704497940094950989335365653048436772850496973415849432190713216247328565486419700373198079344849751882256663096652437263613750263869270041020593955986563488844726721737891324106005221913286006351521279457114459182156266915961236802216758433327585302954726433348277732010259068676098011749650251932231747604993582281765727033189253695850412958501086226696329174410067641229016384939705651840703900591299098825243659639804087635769470556021523686164655873092857674631740249237862515539295306270732602955267625635277093405301953673693334275847031557095181951428520367272241677993634884015705125966895907362403100321894226965640984423034642191501217590578851857787960335100759732335387235436804471166891190970371789684523379165325433244339700308262456955723778977630209636797192155014700186628500272516963893807785058550692701494923901601221996052197546966548598040454568494762526110114445763564096320233551311649028657898021150022806818471256668893175773263228168822824299315446526877190325067103725844322989132520539040197531271208655307285445868388838784093788876349130416673207840434746761596096569795580592898954087441915543569709174884424051913895682905196857370665217941048912248282233925967351536535185249526127195094556961240018197652971003656599454623798788213141546535063021959163495487256815729669284718667271140160059858054944126113982247879982186192680293349139378668760982624162061103584461474051958508656575982348816407053461332651892990753910852760300535918445674746284817554900645572353063119263658569765645090490559942282344316589345327905234827964013930810410197097034179432025046936832927661603604379588236799577901466736325575352509892098388646611334561360147612368079222643402284274850761092460130499365652079325798291570232147565560682387539731297957677209052822234804962565355740669097355068724080191226310212470491542654123459814345682217069922985992487240491243090930252649808588592181672655985126010135551956488291123906472408305635337807558102354366348026967069652137057345782572759552049348057008457573901055569245605309811081121065463568195349871294006927809523705527439296047819168497007585119214458237184057900616893871732061898001861584494044876476701493363399217163905424030581759598361843025379096901344783348377666485692444418899562092574004669720195582421380234796977012937568575350164738680208560915470153125929189167680216614220500007228600211853925617593325932562263055112032760253318831478977502741025564853248589911922456937503905527119406858933880068403324402773638380320043062400311499875339923438375972786889379575830090527762889090428275061572916785639725446376160006990644492878802477287263084197119836790222768636566159997157977473622495625829696575901644035354476820077940023172984678908884557063527825057369969973335538905242472615896153058746987080612219461236017113264783905527391295402121505245018938734841469764324546231090873361662654488049496247314192722947912215226898887302990315933810558839512962870619302741001730166588831482502694648730868505728746113828525880595342269806646497332041789420639166875924016269306562142333536514446158959983178965379521473266628683363125848983719499092034020127155701786957967164779708908035773064107020091813314719670330838213015677920118098229747144594614003669363816914604884180992884700009764450443154522489603797314483831217648395182171133844380619946741396550024028969444981232784348143113057791745432011145826849656894051388409358959818745303621466359596475055630511435049461700705985643985841825552311948003227032165864211403621397269518167208023443977874387846079261782597069975097661757288261698265115929742416838277309394404754190837204145868925700199367559737260670129401420375934714415708752133858311132421916478748299830559940646550279921438688822899687296260793436475209023897257062828691370113015718349114400139571372585509650164405554922933989595594756362947561313619747772752694993310853577963421999665908821350315520431641245729113977796544710646559419998073199409851412343161384729381456507761242722948754180532567026790216836043422461530923180525908979958579258909504073372044164804732461700703738270874692119667927166465079437514102837207012262535300126188487942509856626821638710965906115813785323446706831598630562827679286105485644396255444211810108392586442571457406599491477319526745485969887139143235595676738064844321957221151860227863865974785518203543601341535777544894697043906182454463539075803505335087269377002390899355078294342753920545734937168926163457905361140589145432857764356805234431748831394951216344232968286749526926739344569491194857336076700768522885212438512469369533806442623853411950590670226988161667539231080293041940028686424072196403041503738446989930973025776114705662254857487957500619685684372791182630913567658053170110746493003446754095390520595650884411627940339453715767770808026193158934920323181296283118531331119530332483021984847299848232318317697981548061066851713278913006023276354855780475055918777831623367087519060080950602800399375102947815876355587406191607927555958981445834077865844561790308274067645877938481738676310589150792486893675016361999616335638460468000065854103569283145666419602402165805242677319015196641876188736953106700552883764556135244224861030686286604963054379316342929248911120749809319761266871611085707718340447148841539765292415256232723681284770773930211481770291043763038030800192931632016386266089155009443162714545167319617684109120717412035441901727429613086445274352132579629075129080379437054318718332900227811253738083560259736670688665545576978689872883887600703134959706468067416738902457155515409873939656028980329385771252042577100428997032833253982442876116247117002494754634845662258963949317393320810769867155102518410045947290904178810329651594033846503333700895035899986590157110827129656468058629156178404836819126269099675807365836796253258964377454905053781113372743509321628067442093327502103019335026200174636804510962136589496975689698478717746899047961015273837661159944643500279958581574138956570928396432283830155674345768151030014586437433799484411280994671865763270252670723974964714437973861896557984596506198434349846148111993118908027913801521411028957822099300941422477755522304309387611715231788359912407616551076241160215858768704915365568483145919234666010898925347828888280353660193469994884266725090980630325354007868912349748683678898606014120008126778242436989070144707807676364112099419354981117465730791271677382847796462150225742869747435257240613487672161718803572077750192244693143680827831247964904560052556737204722426397713202780055273188891038066897725135315097618903710323057008555779594388934563151307677331932293201563192415400125598565093785240704145207352547157876974218937308660990445984551163611907684336595897793435919153076799116545801621949012209204586514337383177116480304208426567047583131196717576093001932823068148830980055618455108706608327465901200827169431401699490954568904137755118969956714098311624454264541420212969060194065666847311559936267146223825374682700728775389325367917567337181402938864248886208110124172914771742013475957269657814156763411561940007591028117168084494670538630436010306508039000055876914054685414262112211898262197673208563558841381115507253975343828720440407684429540425178979004530387324642075374361469108447210364354863217445248364106190174100580961941956488150395349818679688903003520920346307788057307015217235879116489651797170533376530007713051415009734954882910324793514259564627459524723189628179378980820687580188651772688334864210077704838665917474465767271394230471964453712198487826204791097748186926039460851225570346433007825929799458195161635462165859239287653461092174578920180966571740535625216554825863183371854585701915142778955128790366793787860317083327677254077110889091751944513334186713882040294591132530639166408926376210670783323524669856943159507698419034262439803835244907729155281426063188891637797816989517519728903907608877885425620871418238621947896331440145639668587826869097299783688536874240784517323545236276109399019467310294293557450571208246307442020817979844726905413221109325507633403122439240750927525368097374398563403647322014665998441213772312101899574799818878795229026971986091322676935924482807662502831170886727050979913769435073216043988917912490151133428459898097304935373883164315302934703087528451913786537563574497309242994926507884004327887536729214222971258982427514618847443164149210494215348657488820800407148501014763701842290601413416862313367677393563238217192699485567958539645791739820133742026934495724256190897335566913798373172559552117393855722215871453492028124659857536261499243089079875213485563909339471168446673442677956688761541219432799993965230961592860594017324789027372602654280115515906643555750482414573600178940110531246027741605296552970835839040445379249793382307639175565589740951039773564990430233406716551175869046714380557978374734074988893150121252214903236512558838180576893100012572980167408274140445342127962297707405420796398822204772166729510312741889739875881705059092574846456071782402078949578061088529070686828872253891222133689797385436731941884099857700237877811936000532479758988522717009734567009338056366935509211018977297834872185066505504898778171925581035792427653482132099429722769174701159866452457417779380273127489059929571543272446476295768353319447823491131000742274419329022941981999495209462874131468463493377613592640556876739920267082027634901639472180930663885916118621188900095244875154237417765841079394670859468147159336008492684011510823078141701024541634216453909013813872111572076889264318642900960343043020920227037431353636215966180468422569832848926819731097174464411989209956246840418592890491445414006698703134800617801574614793744623520750289174760957403472050863713043496210240888067570934843007521088020792737025717940682497268325672833032156064904809872256690546928768817938673245912393613593732903943573980228767435792429404565034687680600909710639032364993929120233476025153869660212084561449929539195582325771227857916259452512273062511913399306310328912223853614570364837930198873255330974699333547037437969770962331642914728427072594646868794922397731885670321371533504042821460241545745618123163450929206391219710727850305427998498617347209992441185305196135988612419342655969065747576819928251847840336087745349572204707780039761186772146388841868196810333540657623921715398303257618694733284410199817439854067258440541353638563579285998785066374475091189637757649299400513469888664638155673292601278059877274613950229216639446209270504160797973238325494613522558457380549846930680613135322792062725987055720432491633747261181248520802493112766937324901804620416206481266622772710943623573377721620946842870499643527334557340143345357246879690659691441356560283266856055406814147040424662344785335990029490754160482714786202013637689154837437467537146601683457352413134391319627310852709139847479598627310105898000234669238844260536355598814051317707286261887934108485905088239060625156386311033315002337293066256988152570596283182611490808064229333404161303563204950498600607300429429160900344918498523735736401455427216876718364980319105860480229715228720940953181429133254489752269772722866444632582494805919642415555406198356098025323146107693718821292000144656457145710544245653061000474049564874193045162766870708111708974429947928289061256045349655439948330544765069495163454428965915567720635737349983562062693759865385656481123791625793919786251275606131378361670763602984059733192248805941272550484238309935171146246693819082885572874844779942777287913129806120205215204130670851457415253386012706439393355013854101791461140670740421716947361363692834628028149820996423501498255728264079232509272900342836089966271171486459269291502850029159497068619735650227555808475938681873119314827051719175102017268267081675590793837606214890854837945420371074795062255673738694374680266603841073415016057586917334766513428331440927684430899120178759123667540044739176465146635040288912591391495679867303519461575021873147795722745876874852473413786834939189510481317510659215819240407334464821072036886590643554372891859605053855326631656985898690206564926994251650720609407492626740834086615983978842184768576043085748935206035266768686630064003667068752836658071587120123230583617686214900127810432257795307977788131218711513663311228526716293928888365915027378582951836789474410370092194928448022880251671959471932560974591713513766691310931923844962292753612092541640961509672592272846102571686190123443748388445744359240565490110692266505126945742868652712064621574085142170369596284061727553876168458294367852258990631092780339956662827656287102184028734034847691382757554555230536348723820852406457092635018938118323042669089669951573335794615131363784181042157072554327165033329958677524094433416107407009556434471730591749755352320916297818887182869982667957321603681086104452997127939619328175627812413616496029618338559290996603219097642279782566952805864222502618069958798312735223481044382841552921320406888856819041005893090878599944887579573316726673011745423696319947335132061674716811080801744499144898418216436627193366690499224101698679163187695761497434007655367048124206499065715728343733007312766742869870466574637363505671610184987854872701077846811984127915719136491000744024106685586384646757694929096388657675381068287162225098248971071080561165107047664810181851927200967625617480107521160063560265073508439501129402900500031292010621650329741414776862825831216180612652013984889729757126896871477517997886721426883968726138939869134003311830491353312598184006987604158529585419431163947131062139792263417626926510146582694072289871837792585996273887660926685991173221128581442218546797868395351629241192956567782946696259001789037906706182424616087629265618338998460498682692613996783350231696849910167019671926652080744519113740860940921315446656985824532383214913389942009401826001699445256856310835873227001657011098746691092745254266639849731764001894730902791059949920021742640433918897414750257480764362268468213375619287710313668304755990572205000702955235359399127020906500150620045842528321921677881423786470110319038644861304750394151159186650646171936091052583057021231877118210429274798468753335988184921484588482798375735924886737114781349616648973136070606791947252311362706397171546856478335631073831422317446101941895109531015735276043783111572702923580493353499852975231005211826520191609349588321197107809937392420602422257043165622019155036020388755196821796765383078356009980733684989472858766805941953553983741461740128241073925393659267334416847538472969349693485504740816313792585661268916342573369547521077535266050938175290025532216476578875712805062369528200341226651786949449446034144460781869118119113740624272602084799304240500891790017832370161611792065116471829658082878271717384331860731857427838683124382056956089673146718531886128128189189711786626150767140573196073267764234452770602258235627900198678543403502728299568299894290847509301154844921297553752575249376308242462807593941144889544799672064026145819425742050412171734769049644868964294200889177076378936763587342114103147757503678272068915874915680639832438031975331692665361539245931827574790243916086655278922273185237977470070548508192102256628583915532601331355644433046212505041007871390533849422811411320662058911297433212205657770531113828412318780796093578655113979941069957926804538470561411439696087238328151676359541149770241402994008714249686855270986173537330832811360399683200140413633045562136871100058806103358949578600748767126990966652895324612474343357734504648470087323804837928600251895542416561368817112018687462538937331658098788778476154092315121875828788744439298181272780720581526307273321833139011222623975927000164673560952544531587531742220677052018987235749126182948733717970051443360037143144397953937516055313502604285798405891682077647947773136271604486835334576888041888722065777228476124132225804988934883329100961303236137175832283249695067976474730065330250671859913847852476509508236960348394610326716096412199961892579065335437833126341121190591549216765915034051770601119906794695556960980140993573198858962580883656210086131772180425466524714889977315933161845127493846142508764172845171512048560398183523887455820937555666395571552433074330575098817440203535684724139484631114189947373147615815775649627221957872922297547982955477036132678570487074652369845096143372310782260417235110465814927294001643175786589177317996515431512599708573382709455614247550430112092356795636352699613991821058348263868783821822789279925273160424076763417368237561040581414233756780708045984567271315614580949623887394484811558350721158380708938090587786339095465487297794608764809870458349426902142429399714139098592703045165775672878429116419871674045121349822602663812520858142348052814714528904315519514183914778937860368336634971534267700797807282954592813339190280527864746694468997478879460251228014567828393950431735203828416872775262644517637609476960745090157815573830770334391536068442213363012396769497808597978659697088875612457525192878313766690572868640342382334584807548787459492114643322881083812937504144280155224600826026874907723069126895535066489398546332904114508037418501286730394867491469277597332471990569713630772201385927593309920794706146965535169242311243694542250857241438265118637101066203320464720595082839131045028298030053071543546751020718232252953785552295325783510720900993587632176065846078228907368260899860830909319070523940261140425754927924064094045971842506880566657772407481825015030322007127228083356289074921523676827267300437231968652596147123228336713307509921779912470281523531155693367036674442949035954515246425368114331503027009640928460786860772753828350607695822651556764454756789792131571093541597893416549935524992100635599348962614274111703167265150652432501332342996778966831390680048762873746794126757823204470191970980773628101481313618730224981363763272733011661458269651085492563729778082996109124549178688938215127235669234381941605683071335367235791906533596714287042733064286385930350033550537969669336087988322393553822232463684404260780112664629902593904478261885555109168423502504198044259822986187256920822557332272284531743580607621066743874238161493104388033971759537327197075196082488348976234191450810570476618758116494356422512870529672757769114443960737315089002856677485215745963217088032278656330234188632184637126141673908572685714004513358757390255551658283810224706235544007535738003351039145830055111176489574474659478198646593690620177924225728667090502787578464934320269020704209797685996675334268888772799158837491419299669252189289569342786315537201932404387535548815815923431101324480066811139089309807215414595532045736736849996934598552127132390780056624422055098308105751559386088933822294171731828504431188595354817301308843668154758709120990877186798349916493284561327920108583653184155414546527767799088071833069648147915075264472330351224910133818125737431669304772405193708062624627593017079526451995867193671160464943273109463141056244943213735409899895321614730574830671509200395107004412807091900855812587506360959293547036380628520494526561036358795713326050150795633304168915124248427493335328055042506689065355224312441612620828433760044812323504093640930470232385017177776079046842310153504421623987539824594702216629641892528189962182779901891484710066376288043944101484170462094506053088602899369903649385468102399458836652889454918192667967648413832668019205592822988330115017970713005339607367714357938279665079723826699846693209542778658146017391863886952471959876828902097516871845638613463252317293353131368246274194309767908971665587153275236206187328136838567240909388689784224727186957048658134974957254851052972704184441357456283531445573959803302889976086829794444238746290686956665789488846816035517731858636483942420210546769440882203673694509476734360526632890903841073404575779146471842378813348360570999651921794547365638545113031186315906879569759431693468315423458424898379533219166319367666625006385878799029467367506761780920151614533837705574516791604629309482534738921258737711487977395790441482780880032335051292015710079561620166207915151567617448339999573292272913901414812708613319137751958561489975695420278129422109766043981428980266309577383447095133662339050826836488851887488175769634047072898469689323603014507111742995085565452884947265168041305828100656117915029536267406866384291756273470959600419810984497402059220540367866219594562722802496153947975839784178740753892139648037889475487175519193161338109075974378794379441087250635792130546573842491558954135146393260126186866907997200445105274525148757818605722751698224560508451428716717158251334169486870635363433303538147855074259377291119513446004747590115900770216880307448351452996774522462178032332209720743466511935628061027782876597306087561455147764411421047320438425670518444370348182924797727484565791350549605061374621296266036684285538995527080875433009467802877924319149126388680240571832189653269461399315635163714195011395750026715151155822802788191039008931450414816155824216175009999167846830480114419523299266775958103902053321650899123107446647747073927306543157231946983510404081375916711025463371122881505533197743517468357157233904274258609926224311918154955114987931928768146092636187614189240611562951514116270664044019719802491868205269880326717425245515016171269497784875705237518839699889758166791663546819250857499002792851297063502779154258000623881588168142219781530464893760401402886001488775718637054448135322004363304491171601608348830326366096386348026567261461040431051944377727092479255279007188914102188360382217952390180883138209607501948099768492356182301696188434735236753199696221790478987164846887858370660239493791937285547473090484616508526446116986183500767672877124106593094033724603822856596530463092570712112755330794972014729696624544485890808307548672130830473058418643678269655132446147538993143468639353149536853079076104017024981846876859120985187606801697340953866992559394905139434692926911232532770333467506448170916266103752664093640185342457749085302986473654438643652033793499519909430048687932217677974243445527778458254661519028002156695051097839635255620140324121455849223413991454507390329529250020149289224220029108778940761838324209220125337116106038957231844419563977000916566720517899876373495362114013452609362264321503022584435617876359557816381783349985500209723323878095853035805412897525482113544977195950297270085958627215412868000897901336616056901711551875046284729839311207680142487470723942018840853893691170921688879324618113852341364298802556068496306032165184557573971046269518342944222573746972463307785194349757944321359668614865196831931565541673987456145100345567809256510028775661867943117668143293685364365682157675688032572243515917889273745405543049546427171867726418766677888198297216658921767877205155775217535235277725094202690445563736153667244734622131694560440120134131932576205397438827291130603841866963197728642499224744824821709013647321424487733051728948453832264023929982782569261340615269663784425845780399988682165793077966631337963477722562923650049292056788624673429126209311211268105059231657651863787549394323111566864759164201785713390837471008242719141340163858194951578334995158943261740061542495578595693181087119534484358066347392388751496818010119377396070492732428094790402073878531392645925293808208552102644729705818800919619915391278526560074661553094494485469357995265576056345371422392923154505793024221921535074693273626102160491845311806124564163109017638429029353914216469636683848167010075925933292522210303595888726430122254212269561859592546077808325145648138665481349955394316740207478482073927180776368393424363791519814871129972127380569589038688683236328557610824138437270354417571247210288576035801228973242639098092821770838986958866928589141543196957084931770778480054108452226391955991618276559358471513053898187121858313252810100801567912840257864843625745061861059675354001961537675648509173978169690891229814302968628621710824825702265471704283785736382070736169854884417727176026699398239875009849562519276785507538162660799757568630305506692196172128287607935112574599363238120235976807769067135296428340625773931671288595184117197800983056607376954620678743280599289433672407416708619007927187506119263063978689227484085172710442182863255903440967822091053823407635504693580719885546650475579017402841436218795020303406116168936248570117854466371293704536287546756137646819141559945604649812610348435168485544622983910576129005573217987776988529571981817080025291489432699176092761342762711280293710716793002362794828252699271832854255896221955049500294438220125175632431917883299835596305673661175691973608799554267794635364164629215998779900285482572155485120522681243735879910900714297760940499739908268048298952827781833050599899208037799145390610246772406268309123871313601858390978537859546853174926472307860733537068388129878317616410325672105325654549344492630448402318892663231090192346471430074505678327122065624358733209194861869152676839170349494831205288905318902491518022086838401060487441136394849242444748362460550055941125464628562451727300305901107314352645859960378726336680359045709188600701645795699462232754481375940290985385073622571379193526412322025164125728017362583319513025324535874877697837575112351485825055984686262754802281595482262509259087288314484061709645892566449026984374271099056333176145534810787088633404718935619072458731818541087889645887700522417420790602171098454798426215582364418612421711054202125073276782564532780927626607866809852267695629181640141663114518258383831316730681252926073886513802416527979332931489290793265498343592998654542236551875446096808819665734489189663801337514392736663810599979128068564515956812338797882774308843079446994790738055630373922411568714639710770142564982225791290509062998839845534745766547251240735490270307924415732803809463902275246481014919931695719600807050134214503524621064349308769203540510961482548242709086903065450911016581511435007795963053738135957471576903262768567595581255909998432969045880412476494109107079093574457262580707324331012590398467897382748651658987731071624413900986810768021996900002251423383954962374159002098600576587281416228667205554920857441627972121660955064285552667367969044593587074197704843464841960881444140081800650708028419913223790804888188874839288093031335175132153978021455816247485240481505732641080083947408941552593416020805268877732577422657811175576912173843147945501509547121972782646594220623514534958810720925046954646701126965517791789839593934133705778499951416451067063949572137223340186418712816689473319179396737527059240122018411740563294742865635320946659819989043465115595249241010296252091227770779010126340688799944289139151723835122114361769620796903974970397160432371552312204560547205593691202943133983784918326381401947533099154954758180132941324623782628841556329829727909480949964524717751725942697822103960029398332732606247170010408998830442435893500876839647802969260813121266020431101212143814030015796775345950544607838622121557842726689194878965618999963816621723719939503413307784429522839387247513339067392958204813531450810413714230847308960518842640760545989953500084929171424264603591372898022017086947897596777439986842097300414147593384424206460787243564693170597726766555295602029930582697848755147126306386732610974359371671720459245771919500066980157624698661479524484342600720468297007931139321881324990283370570907591758440068148042348847868101580753289619252713356856007646440956223985221366448312415395452539170422037202214023047531480739398575953191134527892769052883834827814474794827309399125980211373832285336495174325876338380217863368064055063132351117885785828580362728703739325814774449171082969262178394208226735143653855580637249459308824791783089559076379525245658002522470293265850557189631970609427302356671492003851493959911379705197118408861850421752846286062786727119350328177681302771070383599445636284470027712579244722087135127807795688039807581226590166511267398755953351317078756198493282059692321095446410089140501058897070329301108153699054611838683586350214621289271983363300313724521709099106470418231935758159428329237471727762163365952040473087772585018083627579515037441780029144271054801912599086893788841931472073206893716967536801310972288214913357031379850819435158653738464362567550196121216504180356154418013313506119985543615292820566052490916111112728417458376219008745175931572923825100658364742045523126571213360429853257035181273244915051899803065560092847247082204098929926416815471328181993983354068673922053744253034689698517686524640648735463805263603376603190914360360212672379871490916981283744832289231762077160502510047661956226515895272922764613752470289328894641837742943525033069760891999992151848523103523429269754072077278424444968124514401916290640107351575276894497068081309197505167811669868747228651116796656147089410419810456602138226196177595890303539287976450645193183732231455160207533456793334406405634073271385680972795188233388911454583783938071589117421102754142868064100555097314080160675334197422816903019127721990146226891530034380234785158931409294315037128620577675433606945772109575708676845585587243119694658538905363744531269599890480646312027587864690691951668396280633281489023874389301782182929076317777446173516100084330753956665100677598977710940249627049273021068157410111480949324047565546715446279934847244136653260438464402299999347078833229047017988475071711041199668221161119603132742779816014631059598974559199143027276777674049458643670384332986775433788907917512219508288617728926117222181147331982165846158894892195667745298484903938668579386121895375594819252977748897399971269367735099714741600099020320741960896910629437989254139193232789132748660132693735517774653513338602370135833463038884721223867119860267165758149077731907804820741025544626401155682325042222834769757950626220452188308638699611494239731330866263433805796309988929884799011725584071222594341460701225552725475501136404030337329205028163832041525100144841625253898409443269309887986591450793758565242445603810616265985032110355312951224764431276102862527694845905887478968630349790520985710982344948626993972419088766689936390179419263450444474028067324629854336323943140734165879203935278379494853430257656927999481376502998635786444162286331889624078931132676938237662783105339261136190750782444034482959366292973049881204825516609444853119203367549555698125503989463147547395472025844391747218772668712156520631048511793674520400655320836275774186501315478743781122154564211915102868050691579841511291777871886257733855884339745991012584228042502157352749606088257194854115909326301525979574817414423603233987167256122391547894943094680654918486106456123758638044505428260978845749144787200859035161820392841521450880140766676910001099295532432666313514307300524028922848946096781649883163873784841014482103214989880657717611349968722104603455487476753757426054910515299855080366114442045666724864948572397233336590263867794000976776108658981555514732493279740658198084944344923815240932660925667987793556371118260224698483835454974843212615487218839509135058106614920220659149665901414904814986398338831840697395642411262550885825095968128698364053986288239935044857371835048903549377845209923642257316732795281990992663318620912317920054832430960664040497379289412054175040931044849414648930771863204336789581359470796509001671869326047895980457340497399212765376625750899723558701395705010265350157034477818384632122766417269177534291696171758017271938371386118008247299950439145587997407549640292804183416501554637446808888232539006403902659444362727255553156266734102043735305232568324221906852617147023807885300274639573808742219789152121169984794732477248517040156434885371856187263047952302731067406170402324249002104453857327785890094394428943383716034285666588256441806843705850771903957982701575346826145059510399707495864629258609196836743959638785813524407505595745974289206219630598737632293832890451918218869177762601445709190290980766170140365763566963615105284595431241696099329677830064015208345319955682736778563877822521018746715733248155124942848263848396900715773786064875059138471584110927170998322891126345933658376694262319887700806142700258879750776280540075454643313045220025425259088243891465640688738576906991813028946491054780509173211847174932539644017140298859200547633740377170578604172132349086570139195320629069639988659954969840701244087982006251580545837414459560869757505868042052981104211894346700586432076148068480334843647471230341282763733814072262113251023862214898208841773988469138130870080511694699269747062418518763197958380888555904905096940679699662743294701066888544879756358117660740489398578518758260877559840258662102757520616843194206912237361732548921576665265085951385359690284374939777313982164863998877962664270942875489029492305113945687300204657429285948000536971984093178828030415822778054227360134663273118050439067492129151927014461741185463033535687473123926051870292097873720435508720525090770182952076143375803655851307299523008126598188885412088967619595767425489882339604826963493661612145166135345858602302429966815261323702989722594564160630855724216934181187830929555613851097128014077677082486175772709193522258963866797806346289047489278749334549414986987065436703471969972500974460328604178172562702373463139589307949187697552660414652115155536550116158035572866327640284924186179735491095880420339385182611568134487061764232705754447438791767673568162107125552566531158314077292047423121556388818826308648469837647560927982824128779042595274641966081433564954188385862963834861392530975634672869033322521988137451387071703729193723777220447975216078792416503598459690253505618455902041823905733909430991926510851947711350108844735063646373131423456685234831380071298623239721359990919762963165690074803704692010008803381889989076565274458664132499867957089442926245724231651968780106804067536160076036762966246561090746273812507952633365873488260839264351612410738673556498433968061452081903591168338043751947917708721206896670802773875044223496095695744358989612128343500261731428156067846966794554837576740879187010452141624541706064717059592073869370828158084746212753675054144146651546597039751090356733396049081568873167379804104007804887828093216055057799153410429054029961969857088978815773774551943493688499918317888742547707569606065050327001326615801343337746608540855947774320536046675728269223345302572224553099030753218783624725282650373993306165695661254617679687019742265688068213714500453039542184152611967849262878759934078398222301741821858504275758741200844444913980472234396795990863393800444734699020319295598434841965680173515165831396389171702951484322010606629700330021657426887672551545300486458982316943436793205034456207427174744900626690090146602900913184325233745154460079658814748260479268722916253980045489634356617540489723476552137096156921548096828774768442226035736970482659273067464795708916469389208677144167429234832143455514494879985122962539640662434408652703525396600175067131054054006641901678714120598763651262137450308930273891761409577175621826000662968653610122669231230944501633998371760390364517292964053609463441703094902978591430909354023636026024028308708753077441592844490888766276373444091078334989783010225279717000368947280988596068557127216919466961156430537154576082048651369520765368325019795319910487625608948356480156972450152506257276396891756303305990721135232228274073808505642324680338516420725413219896842124323872574050582213129827444196191463324509885059858830603914210913173876550563506005354975953735576194674748695602881445549809434166906842097939590728245284388739528326336284012487956911190627772052850159756799236049119018019873845353782728470520468273221997894323177088644171981990278761672697603476681883032161264405389641241352912877729212271214973891888429984091090903436713280560722813814074704737655448796652180956470995419488843912686986532611595392396371085657279187360468787321737382663562445105903148435533944260019426467678893248543225881355057254095984335068794274142901684282027029832101719237913151279312427142517447989110571699389825731720272534457514322194672857006083354033782452945516682016163091439206912166501101151650959124302325165225593898814916765581443896343785273475173551548061262719513687138902342948318538411592729947903375077454761613568581286696662813908261447664202008685386194644696949681303129711272219675593968495349802637275329168443043479680855685966340549295564149849302144598125174755358470605057370565435956446913296352936736347949033142079010631381792702715180972923255450829288533957575682847997253854315316039110528090218929357280279466777507779120434241855679006610784317310990645224127526380959315463120489597824156881102633022842638676184758218873550183942156941507011299794533959935064363175381423231894994583153243286173223978633938771381520878184539791808372237842753224523656014895058612492081372475734704324202185938298963824103018196173257796491757143577774784606553114889491838421325065716701343136565706733172380614835362369234448728482353230765323919707691296039064772430533726692229102676073909369589253802979548750447064983625288922347526226469116747265980429186833582816708760566989427243798420739917221764227852052360473642775693362362714579568922956265947917168034124968090362428364834388844417563418962791066058382790603488540415621438351850639146485292860966451791282855288138197869158396330836830928427342711411339869760274437211120453696919273107578581045202500174167904420332610162167785248771977997045700695138254794748316169791694109745016725686444052140543861026732010455229639826876585953287010026658027761238950541396358887384535605260846855972736383145892509826889316599684844047572838560125404688982675947193463921688624653906213672664419413494631158519543302246634251396488240461639756541318584850169108329706123947976567050878514442922354662448455369146119560358539936770659709004559547310017225018327909403040966837927859338316029947283657817043885466691753645613159379837351615887402502353107223933391577419627500236495049623785670397831519930532375810881252912793266438455033074786698848199712187333463920122395802654033378977855800855625247215900293898067802565829146894201101866161251912351283729194135762988783416709647842699577683804242435796376559717445364558215121583126181151842580343936625454136800648322380758113266312635455595297574821893741807303211579024279565787119433910540066269202546518274922954008188576514767365473872427308814416776110897095072756787559457266332857406693181605592477316486464306830687750320002814699876788419708533098768896880945643569253196135226102154501630845741700642047857438841337663919809853235000205873094161201579376072071305270987849160679613144468733574519852619042838197963084124922654663572465605805229052429909537697877760974385089003377336223756169857009933875165228362310681187371316462343187002156485431207265988672158441420623293804762957329785094313918704092682995466904191956918621231030964449054958205504110969219919006436869089121466066177398382141124280904335171369137894337233994304435311731254001198921142142377948734495200875883684506523432931441300427726399642744490287595047092293047579664645774566789428632992172487607147243845650706493229673079807189253709246794640783375522194039459158135250919735020143495696794707896513866928264257022879425421987053003318562872893889789189574108814253104716003900020152218345609694386419725408406552535182814553018341012517131375381383034418899242059766743509580786464419808700823672462108276841272951264357912004390697977425380931991324307401718498935445563122263438831900911581363678220655290665498024688409932661170597255962849222879866612967171642627540325131027815498014056330330828704366232086555911944380757272133078383992105302251819097860049438223663954334472252113788720246062578741104391341644978718980772104461465233124511039034873025944649804399305139595742189626386121151722237834651618048325234605886634469557945905842127010715355141541253389919015632614034199259297198152734160141459770274589033224970431848709712491546775071270869529677489523447594472823539502097207861855846721528553889472595412498035163583941802071808201221558987738843929699703380470842713726659267156077832287220279644479040860551260612172049596078527034681047623238832380762846920124113875021626141609038759691521446134621405297537855550465870283872053591780294297313709991561983690806615604385385700730124171152723210407835790877462366015308695038728949835231761523063758451649074993328838854311178391847229689373344126439307800070386610795066393374873935235393292984926239024199859188911331499210592151209925007784887735425822071920690589770834496863318593412002925549820775010623585129909344396870976499252261787902687505491761919782709498475059516914111850368695576471356316981337244927857862175626011870904973424289743065032982326185072501555639957235656004947931142987449724011403368542061388712354047258347930092665388197542956131873894144869979671953407853129040460491697690199468907375831112175078378262115215163006145150582900341711496657120484263362309709851360934131137253912828964127311191839739064940277082109038724894722982021930282486165702515074942445582033995714925172119925982708338326358091722716907855218130866220413100633732512965357932562306337093698767232822857071444628988345579788573199859280286496741509070594279215979982748760377930183569456579994665346387835454648435908428879112713926036652550060407221938938246775913978619331143210943692509191085060644444920742076761952675995143134043381552114148763832420695160850632970792173896131769198975568203450427444080360018724986370083350178253172009464024408944367917231426696555050869905617263619414702142192228835057410620275907203733286608086768334134214142435812586794567449041349413788344033743993471003849235782259210930163949250983899076139847862316878923408280394028380425818330647991278162413132504341170812786010296169085961437162144958888266905884893559489229806057988351454037444336756627016874146606041461784495277950936574363059261966941016994233828689819042533784462206845447185113524172401000268828190001108728900787818950469160365225503469181949515116882604753988839002740439876829913748560113675038793030419456093901198825517911690836251125965109028720482435560164975301910397973855546962149909395644835135623084207110348818592857925634553578423437619788001452151808007541139518775897213977078831178007745568842499855054076127191603856795867588782050288663820287117735184287452406925463981033151116275518345381264131764561947883667875588248052755387254360684773321442600058385526295337193644710242669473803077042562041200450220601099143537529059538891017973515068598634169994957430453210856597469498170827723668024786866935598463569466067173311890555228997662786825755960229457332960685436637736479044884691379247865861481452969281042475200689393682181993254825597339355363947545510841093086524276155937547445908537817770557791082682639963114329367711803323839544187704892115233713188542613249881690124703373843734791972400090394882967617644298423845207620935323909546083901777394474066458888766989132542520693049842421950364013222436957744841944860812592514745493507624033738442749039599735174702922640169698595327989397154972390125861573367325110957820922899566538744553912482971059883470529383234598794371073896657508024957334185117889566827647277522938142421158255130928292832530572039408048782200525628598438208546510941955229465451669105221668394418385030462959117613579497186885148687829500825081692013856439671378487084299334241103172536955973141350327573287797401726053079021778243114006791513181927018173572220249297756023528923295250917003135961321503986396996638024029668953256593710863380108053206259976607147772097247316881331914065335624258973639100317912478047619768170792992634723801442945651847096580013290873757340437005455412450332589435778828840231810967814055616515190013326881809249144976565527156035102213143814820881809403412784847147567505965378729375713247333614634474781232684633321379689235362973112664122287582318421690457617365963729572024040186224896974746133779768803833372798693909042054226692342320712069991285432650264576139714405994816520848058403436696478101758380476874379101161826288666303886820949240162469205823689117265012004955379686491135931050754913991796160934048365310240403452511171084047996286241292950953325527907907792138315011583122343944262473396358446744153845364270734249370250139648753025879244941953749768168978330364259701461671201573480332882031246980427818580062883719789527835184150926094064009473697112641335567701736543533238966452320248007327404359473483498686975840644936250037092589301144792377068447911459052471659420313829858851480086616646456108783533625541961732132916393580419496447513204334727375908177145971773074036954884408853986641067611926866456503668032386641499926656709805572960569981984821805483525255228177629713304514761072949570473175068555352200119250886006612790641131681303398220626925522525677378458730283319715216184279018395117830307362344910309504368880312235468889519216557396606705287401778793448448247089861223826806735237865854418105087696399287791737342744584194241363288715298022852103235124520826899609844181506334959548006366677329034059321971363344778719333506497065672574933509366897220661322033374873013081834957500399325696778167432219567190937447441612977722676847520509167144946861815584479766140255629049897252965141113618744709111621480947743027721810921362523761133985894173892912927298689428060882184900492562306888394317631670549879813646382500187367788589982387492988536592804542158649832587196722804717591402502242388580615559510757826172305401452852988391047827525936994971328863525894201520157942127231509066505645040840117490601113290382308319499799894090310960996543883894944125723120865651585034268968170293653385968891088743421154228331900942349087785115875139000701509005916587278873976800778310048014806976615710857796985031224330694005378939597591429033352381739631289237771237936732790927212199876920128108132894955377955536973578028498637442110190171494668819927588223351139285219878440455375599503246887794962943820069327789544609734318277843971031134246937064459311010258933671094613215375074298866313298514557316203207316208831727373809603476186406557540931397333754629314150686126261923907430816499852685849284238229083491983940985765613884877028871727929388393092964030407880752856530334597938212241045612431286449286747339663081461451286189272364005199122146539947045216234622613968654025387240018259551622947924092516158559461461723283931346597619060476841334668648738690778815822220070537655797540254102779101274482866908345075343363213678222148173086891623754884786344313874249550194364558902534681316532410008142844565752576070782219046142774850177164031791790579464505681739388114223722981775035167702454794478609114298225222842055734818271981179824656176095248022038598039383571775876188788955546747355543863749679945109513995771717362460690366615194769552419687877327174319793322097617522446619337500149965671395110144039750430095317650903733745148397609168281411435314769318346847471252634302201687564066369016124332216152922618676759254111136688038961598422450884401892948629072599187682043235935530047109858847525235189761015480860657408420175354962635218713508853808378956235144795418366260880291548351995103119857115311073837657996086889214730876019399729445217954736156280423033937658714291384270715497795996468713351562226290819484190551180095932537957045665931712830584642214961838263977396603374120909760737935188576698751550143394536588870268111561531170660760139904560315526571519172352258860527956613795478432868194312239991507463748576795320588923251704005018062436241345743958303968820155678097119810662216437805868913565932932978679208639815852927411430942152448323170783795439331129064041105183240537889802991146106880564575210096583730020240130560528673972081465756856171982962817654344229034048037929893601285950570536514805554252512106843643880070308798014321641813406731143624035421672954096832862861399349149918866112442273255323242647674984040877363684655219729214500375204281361442120436235422943987594465885267840683691296050857755947163245682080790929866622139017274745092172028308077658604322100428267919800871435070575162910818550282482127105757998309402988775508472126538088219399462644924845493695090287943402525407152024893818049518141010056829215484845865766987044008159396536224617138041053647248942680546543165061514988840817782098685784197669853252949411052918004159746336879875228479803783633746621057699099742416029255356628921599163147918355251648146323172573875178475030049273059264028618016447697202055406595806276567002296665002371613010608582827900868667811096889917851598642715269377532270631793548946279457616939498376227055396367193959953486260977175083278430121418625491913606217692936249274749750171320752537811472801289438253879497289355094467689788358051431264880387967305072039263760325082537185854939473686793117056458990724128202331127135252368529431705791970125397593717098865517378013967684486674502809086010984837321528644901851968486348525544341657255860245783820458150951256760057819535378501652665113425471182938722414363820528908426204318825828996906319259051475331125333043379495703821817335873827470921888179634710367114481910328123021056180580651643600940685862838796155804153479518177491295676983287991104669936101458962696750022641924123488713831678759716591064186862938270017470178370399212448897154480174289438633692886608070391557759808158221704705675772442077031609850085948805810531015790172334464249441311461543574288915790160686417106500717229752361744484086069182823696631042176524504992428290380650255358020354802946490819422766698908918632144781480725248070454948019134731358651350227175042335686381819267717554643169190341077439692892593469398385590762629877868923372239764928412233093306823041960874554196874279347485860156241421190571586425737978082156168422106953207877586510246739481000491624701126809685865790419586743867476160160193594023861487545129156794677254455854952470698220706564031242772693066893641211453914734180055253385361568375189191918142307770069592266336934441617647130542437460777088164590831568817346714804969508036663809310247634928618008973698910404881593990914516993562444172193119396771023337247626742196730284304399355449067853726481577069999350390060220063288523235469835900884842812778765424012638033825249167121373975269536740225825592249237734998209466260801506922112651703524121006268416518240932659693346766283497368239788713889646001816276068087610740628915901826673438511715420652307025069216513892793097723510911943976314117656381939703111189881782345187594547060859016062657449091733367977546962521684159807204303687264519562068761154151122903911763592985641815862807765147532891966554820424340277937913170725134870150614075100782180900110730791217321407426586729682367287416426286129370607519992693704068995809754160825024717090507947568098808118620697872217985329378843519929135443154715527836624823047880512347437395566160528084954952732386851488235949132005063410803207143056625543524958681114675978048717897517206001858638423644010314556092336634204381398103020503264540922926933169731204936491663446300728882162081422347493487822168338045622424001805486252771645734235691684413414089756602386950675467602621765150346052646333808629655439515193572500327434770783713910270552000370165342216919039776033164177608605611371148481808873614138847679158325646734730758905217378238330170790727310094830154461475075162274105352380955832427471480781434423457197596827005646407709334388204950157464044613117789953674451207458944079004203983717547347954050715519730808825688073516261044579265675521192310974197184099643740927146855322096661481007116681078166454675583796162719011043935902711114614549783046485148392633842507714103738258856129563115793236522648205814242829656636255753424576046026932310172166740144389891908789949454793355976085153877502333989548872211039572727056781537479258023677530227746177518508101607292067589420894270891064475580913728071215343141287292124141038015125645301962552113701609234408444570287521299386925961591910537250913845309771043787093476799654612115051616379284254587734389829790974265618745426750429574950723466007511300398283645683164562320286222698167207368824879694524852653616382069723204226501784211412667127677058104936600428416089277760302680122485622949129945741340324466844466728179918302118954615055833372533312464003441761518934963594032210253866999546490180702661224571636275113299018745774675685048658456560394065188541081208942887942696171696885446638693616325422561992576652573882570671086024146137684994028855445194321783034395752209313173359740479831205112476000819292207540145926786421343761249119746993211052943986958937131568281730435517535407570846223833927808210324527924719843502008891758188377923101215101581155561725343405405353898198052234706414921683402545590163071369158792883930984711310898455351565470989990702618141378888549854925229205230335344187146698564293250130546055936828927452135369212692347033688577440682478158680198115530959792541392169379872353005196989412645806000680510842180287737269200430934003725735311789219677848795348565399019316406736747921676345521402134770073267646819951154174160299431710292128848158428254797802196731306028132403259502416982857490678579339441909313337582484857827337924344122909100250002271625705953922402019956926166526050704640791516639207673385127884235836574315404350701163044517103118565429791661216482508467212624207786025466198988775875569605063060418562619189598061434231754152611347048125014880442094072117864862213090449517181190193007299325042566241589351542512823216648876779039693231495189752233309604821993982842462704726061536095922201307157090839648611062649504568413108720951976586107803792121173459321650972291418435796345967135971278683864345399627416223381987271186710117603591423261772717619239859855262273811121649421171415408364049124610409018347973824933009280650050380587039593019645680442074518464029344254121813800072676002135093510466995325150014122447730545650145788063442806482477895645855203941293664232584967877022231253155352060424999637920505708088713079580220156287805536485581151852182843311886257960244336263400042080425984981318164115116913306186641246312730575615769739511116561665628971620830595504008072956413097199740506889051985373862131401093497469275032815881790242294906227640840355505735627176965703723730370945037371295371016980753393601148962739945132713926768806243532426573207475976397755603292577143680629661732741235695968375370196780421918407118333885930163878886517995773313232558789706471162935133483410618965818341738124988853876614048697045171263822870529227632408614414507153739225557689458317984859990056212530816762409469738146506919152444933721614037439340587681394416781576898763463425121955812893177546636065910670244141701833997032210960726480563052537066974215456697169131754895552308994265014528186694418029173870832576396215537458614133887842640804042660724651538197711229862688226656306633870831788099189811738274029812875349200236379356405487294619451774866360177777498068751002332746139367229691628006072871118664849962701734648244064398762999177962167545482605681173099056513116266956750128449786166024147576237138633099709446471763728544442893970410330886165577030906866782416288813452369358783352123281663466142366789412400549618990630542700133955412664213600376653379083965843409160917038915487687704058746646804579997822662567339908810793950449724004499259054667388762156386558725919865791912593583865027356864751236198907708070130134046529003912133276055589818255996355097694717476024049473558595726831047571472721567263018201595735034924431387890379975920721877813923389533688570257155600056850222557871644654188368046539902342511649429497113371975873211551697465983572762957190175348535823313956154501441323095533391704448714187099336498009482588722552015939392296200798057758593066769784532263333435492786737655070944999654917331364345402302111322616641692383689151118274574485289018568122453215015454173517562031124365805895648551667959076497552738252080078820942807709128909701339399078730313133187236039705751224313618957413252675490886916978550051662561814868703888902060743098525983107203690123217957722431424984689154654658285917893404954755409136426828258195959507605887953973803968779211428039511224291681364368807680408535554982584494928945394055311581517556570887820998587783024814544435532029393558034401303808197956776106606108156838645256669805361246315163520469999419846104734287609666860770949876715778332482079568856343616490581543661481248985699188606023398625495101639426279582458432673441607394716552023580431535432825042088952056567736143691758549872433449538812732979677861936586382286742135407147791047772919649223359991654480915925712611604940577197193419791749562082680749418370427915514187001883925970210334804653953520550184277681430749363938651376654784324318898378804189151062363258772924289486699965699363497297309491583425108939054197273247092235967402776120762860890651218236168856295353248859581935250240414842462041839401456380079582936355925250176274054715987184054494510946390957111688273595690837544448585913008440940814236934451544156032207947176651916359819797684760728272093991410422830582871125842214008092180912491860273409960669126160061522951687259710193956535753121520584734692779697563252802622300340856065671397920754662180198749475055239571779958386728244429151367816291816532060731890609666736807876818569041508516087517578040770597335522373185312390192287851295266813165994395161710983449597500089162961640933155132724223083877921936109927033324182095067521887160397389907727245687812332123097150376095643121818126898139118830448129341178980048570073901384789582883821579830942689053321078376494295362106263698431981774641579172660978264169603220654263780021363395592301478325883880493338475320527823355291479194513086133740124750056285847140738618953571321916415593000041663481123965536534399958232797716764244674547602162813989252219744823186181279992318588148858746168567604199969110668071108508262427053726602689550623047899360911589996971932550608408556360470446107039938912288389137331670113063678035517204305559076424411813607051132529140084707784261419721873820913201942426259298238800083086692268226384808643999426540047027917938476607584004498605970163219317693641957440542044028319196464421882438279278679464858322315160580000874662886194136009961207496700777272718603738068229238445412338962676845203216360342027071946687820974064354113229208684120505137815325915465817136291748001495764091510749276799236033103820542960794072991847286117198186954763247533095850061569843495915631974281873774766408481960370618303118242119921762274214679020079450169169325547095208412309703826668362282942546572894319245495544523885870757290452492097395890992664466051321996633190115361917058319881261262753985243697139448863193344681459239299895840073565630472656319521968399777417846872679146653785786782366853103695464504608658320926324823553950624776761031223001284712210042095120586662117862180826807122094845529802348296692132256094183387834047708857907107196619988549824283941788209486388515244605218927243959181120772817539655030653564950738688372363249736037582654383480325412819779829399889911617154564765196293807278986982488220674406940479756477695869005102252400572299104548394091411713088427928069241196305752992590847301692201728523085324861310087300195323950698062849309228203800553350767556497134874861950910834423371696862168445429116508646287303282721029056500815620313153464559213778326467312853612220470027960941638335905560558141188851665684229745234733131094201585359897086878158719102653079147234314931307936166561289973261392150818601979356691964076872946479017828206751979912049372222792933199243948909238194259121067974604744734097554935526215824725172499661906581696361479735382279288640548394294335581361752720758907001633952935578468976816573381231324602490591163174621722739537407473563302928012079861185055149552610715247215766473675440381505960854573963373068624228641007493659369940612562334708449700843167509190877863252740039245245851780957086594716007488616759102534242199654201998271329970350704026287153196078454220519846074616349081905240980212408143221060337733167644888908241121997103961557433706649957394095078026116119200119898088465477247985524626166552330575918937169717697508731960869127160019479327665452566151830938848673379803827145513249852495954377317021530773975676033481764672556704944318938010646371171802878650553340033099367728107794596697439879591456894994886131583267202194654077825765102949207280848185596510587673225535701824199104013881056444066107116881764076563146990888121062585273108792794340718561785164029318315913099007583291119983569982734915552343474920829020296599957177219554641341020764262011377036993991790041975430715588446114197580781944298078834553474813725615344152946058155253621421980869127781597409436296011874730552454425483660054488846682930260105781339819173777924806540308433671184286405682865780103234752777037901282615437377459887632166028104681946813447103985140008410775818845836465504334426400885513280495091862140958048890617383363595480090818428861813004300143682591175800626636268838263086331192653916503473376315225019778178941766214557985611610580167056478562729427455138073214091978864798115774238977946763638295270477779896526501084399664846557193748508614287125024966125910555577094678327766064009874339670812688453242404572160908389322370344723475847007006809558588576950083537444220271033596356609032642553183070608603758984762410350767341481748562801929589144939943946871533281269646810619201309232296343442873404068799388453481412073746832506958354137610118357874595330392075358225790431254926335204860864701699826276807213828415742905329789361343817249105957953033498607724039317156337623638567086034327293011370212550492758912940973013473912211554448047631884984904308871624807804519398705727285972758080980987291727458926385236543866244550773177959660205302755618378316782467153295240310823329688953359108550074380559456130728158894349967967924473478495834173211634404355757778662168225712292830659320800241281101972146383300569260150678428117828328629043859516300951514417436792390642523913261198252301078532930756605117098791072652243596691872545655629301611481575950244834603235649911707433079691373696136352597136092971690878566037234342693489499113131486465813399755446247287357902492624772445705604010702878252145474362298087621139982299698285157490259591433004677254116571155608665051393722628747408733596776272926895021682078331766586638087409847775824299158649403542081519694576355296881834563291050025820184434044370363413323061636554605538971896324712438607088153295157219709212897025388098325694758159657206565303207583168511949414262277863330504393874233535828094955845148505614226528929724176720367013676412772924088158049238719859608439430157562084236545163830126105781564250996652342259684335074534704447392279890566527718351046387514689845476711250893127942907257068846725963158186757934239089466079553615028544359256070212547519524162630823365285912245590579958068856210567381080083674289308728264789684135656121310570939911713111210131345659814519152452452808349882439598691706738534452959827431262923428972303372497406775495828818692746136769954076170717635635830917125112271199741537999006998700406565533369900434957607887684270393748680214307165062381331572394806490211123502603570497117363566795820843274281323282541817076591291481129228974534586325651323457743145621929877057876061629352937194864900214433747096123658209476708759508820392895835415529865750151776753669531108257421505917542971827330736538867749125694714500686272897748174645640816236825157357861888796244063351281432102651678648464527224894812593374299206916233131153588306185719175556577392792140345849893828584788104748802347974994873493901643949926640292331258909593710372791807186413960643884584173500806853182915735398744339784912497563912216389381158745245156070085376547341186018852768552148649854472646551367077751980874870641356451190450307605121927992089161281928244884017868953099486527687603151395944566316295476638323092411692946154267840473463747307992064049586840206286830811491159781817842562322549998326036622746795438876196565068644016837493732384722004510465120714933807017854582786242961058844042601260876120823538737797342647139390214381432744641619145507425123686194730570230413154587431038177236112108600714904747493640749186174678088451609564200813304222182286179572225672377126438354672771662230112176269525723097362939830956561201343050900544981598730767115379301497705052467770095350842508797711783888147335972380866132230911562363839066213756600980610818915412327169377238087515027613219034974651647170688453009668418262652494574652660270828116990839911975861597536945982701360208477130483140949961422260898363224253046919434851850434267456660067943676874360419652323386047447600811816520508352359905609103440018848232284181070926322880384213085838215191022448790503826412194444639226729165069108437321894239738907815841438807043382581682203656381597526297196649496927694420594647625528247388198524799561294238223673806147484102153749162888832866113043756111294115469729025640954812166407947780016167005930115411280099674016907875840392278840881639301576774666956529783133643936346984228027209065659860138959042116616811910419058379508486445216837248066471435905165962896901755663750600751485390976267405546334612310504684432531267442865944366132585076674113449413208103716673827161415847202669956339160558206818437304848685346529291287556072371065706513892396131571953792033319500649355017045777158108878598806041180590588565341122397164939766416288916574895373542478301892873507023413405015879431436727401475046803321272050218456171486333809807538203512487292768978992992679750586735015348692868035958119434813390098407381379152965218033934406389345177499071899604016538258418022270013019288419443128420121526446465436505032465726603819655369545754985476894120708128863507405177868332101980534495042414533667529047236428183685500231688749543287353998190198570632086566194163805322570215297459002075444742244212367860546422763924753086302929288299383985610958931319522861159520765808377531310707587875941152648243152798862143502996118235671742254576691516232199409648695832210957894978113161652485149997206285558219101459961163725280523663965286009289767326600000931806664744536322537640565788156684354336691541615689826586934771197481963394812748492535820881267464209701537793997164405426364067856571232053148195502469096247879065819113525534297415639859767831433000271349342711823196042434344297139822346018747068778394165739023332241336496694101658298351919790504957539924924808957591976813969430753805072113474664470577851922263824643901585779508573924398384670430065679406011688502396521398416284089906924112055562438573290481315069295149052047926128656855164300810318846351171160228934671814932758605993218893222001604435262472847775588139842719985393161178984328761710006433936209080535842655664273716137862316117790765225003259709589494886599115575403015347832613925523408658008179397642624297926538665677741464268659634149559652385184804666912396775271764327102858427132894813777863870345499802830765228684356273932513459492071818677464449085685659004197904859717870899560918655324954548908842774771906386431502971995793223189109467559133705998295307417242918924075918715921197338241740480364180030460865640129281405688186869036012061961764137829154141147786844709490967740043378685453572113741671647374081044080733230435346816760183102970089981667106532184567091824633992947528167022737611146083411252789663627048107107269380860154070664309123348539973647685557829359162984128518685811801851035594733673008538446980055341560047527456133784070149475353071148109685742852391959540849931440210845298281442346919124671816184423020197949515265214161971922063079060576870959794740286619347406432865882016433691313247532028350243443310762214684002873781635542664987959717831354890304327439390042872605617507568554841180538774904940530041440181747276839669797875655667503298769285185904834815321140646133425745509836963924157995217890197759077343228402283874363559339095623357077541036239702134602869362097768647037222785203135369067879956908962494084598020900306064602205354076366568674017369601743244239218805675779527731615233782785112643828843287703483186391488975510484381553085033856012517524039219834610439649138569442867413125217278948857915354402106128886279971121781171443617128438241061635614896194437661249630306733810943741650031774964779248653849044501841774484590339384709986752700397568711179204937210115879195582662545215490384474323376892676348576132374741978355452165350870464361623199244793447609531557287736126055829436117290806970266904244683902087704646159014577506131147212573605453857595276157988233051909870104207334467102481158134643961718929462908040444164786420886637975100574516291205995299212155874458692895090269647383750941587128921120576617954253929875118850230656950070844874105999455999227384013757933715750035074209060224357522581700600852855110265382863633780734091405329438484245471612893588994562304397675290837581596371019160831938483680784567899105100581846174380331552262731433129694491704451199605227730441566089453511476794308812057614083228757883687096482427795713785067068469472157788536293071734562604418050550627652821539434433214087325885223968742572678440270226847095502772949946906498566111322529806518540627027491070792251184831872545852640456577703883810744183526118826531692821068016501814717503396139855762132570205873638407268673616328775146299796931989856536062046067758000241675372844618480419446749181441462416631556757345008490630849116767781594046200264424350219222867847234193380668502741854779922957884108778363503770638402065308840746411816099328181615398023799017132848616501701198591307670123553337129895366731171626633315165655607786568329792959646605981539074683297142941801446693537559088139019068475515164491157006472778412543551393536001304042206830126381115677382926736996563885770271619798584499403611291440391302571802032210413012040759443039253663352915553332819308144480709309983685811718438520232027474016472857383072396078070197870193357458693807454981155442083477022340057819419352806225424654300386388397746691299975425604339226337883738012731133073591984709884601596523737522645574209761038578810379486432995856953921712655037138684006691718852009467972693995185121140889064749082826179202026938620966463008286407360150517824093435272161094251628968304575558301792490554568078235723581257205228664736919110668168463277776831706762481982694820322090245860169875907347987625473487245947423544040321208342284522827009838540378007529628126516952767106411399657489112957377265299593485690537840191959221094632390681082291130943717293701561112727705572013150013624858608990786639771835640447955566229442851194180151888736944765923729732552408395044753781381938410113886795469577774880139906559819529463609239743146611297708629984332685063068900486378063702850867461016149197767298341941658933457153394954591019559966368648156640570244301343341961303555128531906786502684437791299204732624113465153759184251516174254610438103358391193267371297232593339722713236824212636602419899980793982583130812691519891927834401436793461564706673741018538168066598009462623397931255056432965641317362590840345267874623429246629416613343619939558889090926637839937283128767396155333948231369732146455542675180174463156400486412546499705218456679391126753486669411618303951590350303587385552509093784117063003222218214551485518589351855236258969864244583343514274957484924995201663140216362800638097461692148883625152452769883172437808599413756594951015651730573347480831360727432419861321109362930702742245855991054236738207179108337100318329914446427585024406853566854136140629560964972260390638123142891428387517990866424128656154829892704901103051086572403084086327804662404961542294289383547790679369112932467735580313081712699162121478884704285419273921114499459527425958040258474754735576653411607738108291754895202152293908120150499394387345852742173959159321169213986967589966155225103985234548365590161507772586144423457035226462164469859875926932763156412162219323322473077992692767616387096092374417008851291899243950204740927427607184526832991106524831423628210223939815744010731141052144641755989366663138305738712160615047752730286324370983154362808960988769461012134148578551956723584421446865951511691471914500819398612028203379218167396366620054859471099575703557359531830016408448562358424630595983539606998934245683205565351203571375813339737217629050708075449419536745100452670523748897235332740618443508550675694416359534756425170257287827386048507100363535211651372792361108858748443569174227551569950579132644336287755517736124598480102479307698684273361656453775632006768675800453313392761998670269277366160697490750529774324499635830056561666465981168819056945485452589681310588308770530084581156825602968527130159938971239070441921329465333947873439671137844803843926015796659452040780164870976309189801925284016566842073376915994327746903151289796112748749073984010239613767258212522258459252345206641841906176349398382480916140258238549497551799047841108149430989831170893368433307350446730740604910454916659833705470084443721910279733349332055358574029917925245957516371853425999743370963203773700885027239195701844408059560794569623124201591039562406776169013915257052846747801426582341270037139108726082783494121338424088511297260091197022008651204121967962707419932647960538043067983420142678641395171048656956919668793340138535636398967120802858444229118111178731387397391278579293123706820283098453373461782717385592819443489941628444693405755982888092078537288143494209564671883683562027872222371037777211973815701071940083893921104862250112111648748026457156105042816117295825007090887824673309894348904990696582891110671009553144801587864133148353559851733623417095000104931798726695554786332745917967312553361370567305447490594333496152576009916712755295059520503703032404099707228395075193847191871482162008334979055427289378550508267227493260474694547770484284576296432026594586476611494372313667631607301010447519357686588311400497732923523461203957194156271896869033223663574878513559850876000295623059047201781466102695196203403552727966168173502624917435287116913067480771478706727678969910347945279727202181996830378930292125846195543423675032819520178667985800415915482644634804773751662795634789052099559365436693789660012598234932999620623256036756172701594593626802470036586279338410712197236362459200027915697223312775079776765216779402054696959288797050061538917914341115812977879834303864589473293716550016200019232999854321852227898145014884848992123884598344847238477681894154935030426567772110248375881722973214673390535959160980421252977361212516721150917274921133230602847114397782947915759534461064910761879771550565034166244310085082170336082273021738967987671497553522085502108790864914665491065129070345251229964635818083749924494005118315361708419704421089185471613343737550342019222095439022063797939476587015653218454722490552859692393298577083416413244238221297696787454452388436535936311988687780380373462536493827044680898194846849900508431309431750199130608686887447543325744966720763836958887881328789901588232576256835546691528141580629381836229637534697753968207512953275675129347715293252007142321758111986510035548707649128941579440928455689895729995395580694738721142733857760720258412160237341253912463574981101844940816428427763375333324296820463437305006770123544170523741231342053216096303047858081370204700257175329444783882624012251354406456835766350882646094048543680191370046419474130644859817107753222081061428533958691354081292099960861726595391672017863713747094600006466357579913899249895339496110287170706902587195596385267771452976961677701241320027507574506795959770339362465899533923375374187255691602478466808930222520015381767199673210688166518974896460959993180861870915055024835989905837859788247756469868229592315027031699911630052070871924448083730562805768745359949846601216785417057932742946108402144306482434054653818235120014000592475012625995802234274601405562208990111292998563897451231777349063923675811304807501741840792802715996818308580077343317371598418209201303192720421177025723854064447930336840680086372848315481980435625896454411858135011284441222931584352225628110336163147097088927935489269346909269317921031279406291684247162759368567635992042925902748765764093939476976365307381652771591171335013242296281545312633284930037099945277082713382973930155961770394516241973534306293860191747805739105772535883254542561238987545470978706953297826117245993122482154602470328919578133886118657149072186210284215409561690528149455481293698127457455148395669653568854166316497548572486616930658557549861061209744918399795600571890584587086050560750027761839654815219390110613553817444015830465044776915636034673900439956668284287381354897294793734491870747630913484487808431064835935354299909413022381441953894907752391042648133029968166894321138350691910624104245618089599693844761823525152451733774122777339243134461027177818991875585188053073175284218237833773711151158603112845302139544121567611700810390317648410490715865163235942657342888445452794527964761058045023808491176289476485105286926353967306237445194384106869863487332181237549746794768750981531135279005637367151038160150026454337752071205106792658772508631750226849468475375314940247222821138907336228207021508577002667529954496096759904876673735972310680596349627416612298144894288564366844615967363762947492681957712966224617127423177624794430033132234383253897252410703904851623448630450567012565373320438009414366425312919494299978365526961761726630788569081951974300456435816397690607214381071092242528174588804906739295137817347483498571437039725554257762825135898851103645435276191482967482810729128043588206672668970508910742393540636896916950359826130987544423110297653648448288504839618592265546046450669119517711494272293886703053130087694164089827086670615501264493046825909512004284059180600649510602468985805569712418576359710052689669379540714483584943198278360244349109043862942478822688062191687349313683249212688227712106023807917254765706669407947870256482165379412187414198799578301229957752159720686275777198375227436283201573870373681925398091836214288764572269410951773680558304853853142411096778159217221335863700141334653132983853643687987508447367279025687982042246680899327053697800697861773097858282359464013636297337548397582092562974342334705350835831733409700054417395126601921235145695246804513540175211805676446149960607253969111150577354515808335850923916377495745490880071388015489954517535580521065078904900559628498359542527200178615939063255236492935204922363973730406989648740324880312739570452937959300837018176032593035390954211554957510833705083405966694527236985697364167883547937507572287963955391682300630874701464876987582004262254495347685690075592923755986833537650836527164021288525706419477247520792900865997676646901730352591587620378735422710768983424578803732938147257219842684032208195662049291445619010968470238689892545796123278601684301293021551446863333201444979490496474994595475190935022775069217628994767946691853602518406654293937938221930445010162814173078265374619814569673854554546269254164358277358095095348865225777049839222938838678477282129671336858805762174804012765254135605461451533057810678047529473874156266525388727675045369207946832343840410273626553425558453699742705787267066277847419188155084863917701911551276295364352004722400139862415547536174990061338378026981317200212395637697599753447482146302648714296389820985217884804680898911629715760647835916770588035241720913376309606759462995944714464194827840249201323009684533525734353960276424890345905153944181970483247259003125032769279884333067979837083164686000069785220168072024119390282321730237891806260210510018018897326480523172784624249926527484237489156465126828868306309632651791625768413027764968587419362578384383889280378622851648449262628259517324300730028677102875409557645504157870877595327868372787473214403443843638736680854747577693395842214883741168918742278702294152200292492072267440240156759404657575770740378276393401174815740603863871377037915674839326405932873947186633213062643887322671252825125700102524271640474909012501758300180296328981539390522288635251771979246873576453705486598070706535240205648538131308797493076480206901939665163540124864608625758635420918858252254120478677842642158234254878606097133628657861153438926166507910844296664152390352622182328047810807304170541689625284092822187918620074353478206266170410312468752598932393915876685734366259998981018766993294364756155410400147268185904863864069263494119888767633033824205046313032557688001546267658318701304003699544468948342532019490624582256212534944941359839205563687305731284910629774257763424046267238798879242921055066367104984571719185003272861783405344196299314229604541779842487018051410021461539473738004999980735524522972860338338082687170205560276130247743391777332416480288320519314099323649578887257339098248617858535692936819405551569290834141416422868001695628932883016564165893344139483909843011627761957286642146716031197557050455490006940502249681617906835421765206777005151111977457648329843171909281170315149396487335834620722600924057635226632690933514071478448651188839863494860005750086109739155000793059196741274667487992653829878497606342811205622357751803159561113766855155596034353402133614783137164908705302802337344007299431464448323309162175894416577149270029571322138888106695630731720695802858675327212152037578459876357823606984152581332207062837444491810763957828753553875468796750416765319643875575240649615339902815677796427829290049791904663628582185357181320122743268596683333871511088317107212222994213545258032836660339698852334800805605556113876637092613682357809682223467327671634530856396709532257559306955159221169113370572758782471505564563262723719550163456894244821035008794593182561985949753236279836317420248381923568446960901127108069019094613203913196918784877190274786646731734964788035845200365286653922483957564477656024134364397900252828762242855813824442051371803022619018109898383854754350374647163839118007756886332610351554810395971278941994882501447730531784003799567184325784562516672826894654817730756383110282861263560407304204373382661924451809815881214928042731078443139382642419241584673801526757396180528102723714371531191888182099822753625791981887150816278277536650685737568620215846275467249857776968170056649730627817636279602638756815268284292672486630997930139947580074848272632099332153139483470320657353023067642574858443600443121833928991815976358169019730445656971593215601881791422635306971338590060544490796502706180335997505201558980517258349884194193137164330118718914662978043659292245813287281832217566930978937859021011398048619412414044275543137680791753944536679893943735198788357422560496682173871260914484916439052202968286812078331404413754858247048767400004154648897885244206963738916655381347061930082670464065977867326301446354901010161165913730974708832146094305212908125809475627773256897914146236853935773546202883659072613870626094884299031754085174644978238561555777067962658160254139669131983147161269854787835291567531628525662205796901819203575643671500314847480359062135952418429299055084514604063348529791407434997576703395599855122335531431943364796339222569949175594188798368958297203964097215102171842615815546270493859141106792668139558554789710332727181650830530615542117727644789511612488297904535036824745503782236558621395913487693718549135591679554904481446215429631838809999674755395091553058946238881857683081961249785993323270841838675778576608013481992854124359608101490114735033353208433508242042283806833570445363581282334614649021000948796662077712808314254900342513700190304858166116363081988543437416140466286409077945909021219989836982837022203049328247008650581877755264448918288270220415505869028579391045659242628220126871027429638766406971161873357019156488437399763612298508941444847817255813331830899496778898544658855550622058645138859012764288006666253527388179491121135903738828922712527182414144404031060346912793774172155310215532605781687193550515263653590279359395627521770069199144012136640954224835769134424913209629229466428709146692750455580962456633698186486647628808552832259695523725006863308682029186628059481294273902787161245175246567832850336896595115279054867583976034711763617317130006261207723645021038406749674902674525850224389587638627686710095032910047425407836515788749348017559801748319834386969846377447578335967953198025688988608300014865167154080259666620715884664950017044093012961173493498683666749446373622242764548405812270922953953810465960457278744768504978541692890826636302468191801592342309639090344670578798899685183420318603274556659988275047994484828376167454439476645197788363563000737772062457180902190462932952795626084637751265468243918478861356915612710302257720519257896115717366080791367900704998310508486457212893841257390964102081739163417671163649222342639751942679643182644693837865590978142689444970724399915707335997779207146643623600017113838573521775919308224026362898531698233899512155209046705294390004141423545139801059730119717282216869659644103774273806149553776986617524287378242712990174677778450119826919268660958613210041507989899674472016580718238620735994782767106064857339090803475596397670033628255538127037833032135318395060597219960173040975326853226131758043415964483096367757885396271615680497056877535828403820870889592717580332701867869296093914162063521617550834776148220000038966590165893621141507128986258705314000493632668439072880649540730808370045526730638495817514228946538241127039236293967735341610351924859424184376312390618455431422400836120176931060288273937151053180024714365359745151174967049365285121100134024094389153178186897633474617127192424795730385486855006883406971539084403862608685606626013874040482538222643864971788074271926649318516692966044772504287249943863342947260378199696297076569145793378166543152046542628383908853773578370533402815166363638774886257403865768403279263047038941955297456306266475414346802564032370108480816843050456221289677827999077328491649253064822294950425320958703571985756376759239991851017118339427798413679912907118092035232338552874775982063693993959271397242640111929213638530184620826199788319678969685044645875789325289149619491021009018020171906807908837247279923788635072243838661957873409255079369258368528365635924818426152437063334240956322115145677339273888925936884016870095310807923156627915863137641310292729787499531219016842860971402646489470841988067835561681106436557790606504750266712906886798918579744569930031270471626166716789841672456100608536997458549903980482879936493336046492513405865896648211743120335170237202561667581596470323062850808920993764094878578839730438130242734156729553656192888600274100313317314313011807967302682353925583827846252578362912456966844257139045902653745446141003377644935505816211407403203210591840125033668327777998897313540242681355885460503082526748727294271319196965645084306388445074754056219978117815958604191769794057395860329151719746129348292428124541719813993769406045074403403554576065974326086288197909560296145153176251522522721870601994062761419534574879795903436329179844803036864623808629275718405014314997854054068914223041789969906885806281869518923815609577410781179438273945421017138403708879474291461920762991856364849544083182772737220097638416964504659721663533086967746235388271332685828271157181476055486850177140247065695112371527679114073251207155279942821415125291165257153697393833382754122295774078746053805393780785016105984029425592051822805806881482988769848106842129266797854237024693710888979784659931245204678686869390401261897435153330770405039093651675228418849840870678888706630295925672522678244376131013657033266151912870163458535052116320899235285884725033456085557420641957067461082270219421952301625104339687932818437027747308165242921012835235679529657256421569237986612721363644648051769872311956512427784509823140094531771748353772585181492524361222092120733341021941713578987332017051696912070737057218691798707643019123889888068771327773874591691819917082833130320612918583656674497864963364470903235493026766744454767387040837595730796932000926141289134087329980277892588119006417189515330116598300414501150071210982095193466706539353780021093103986856623382848703157976597147966786072654347382516728376996121362343115483061870882945421726719399399225668218822098968619109327827278489956037738354280570119944336617136968289506478070299332408642112417501389708690824998218730190912404319104518552101682209859628217468034057819526644190178960426535430659528131695811754520692642673270036123948218063183707305864754761586323127078684258997709397245506046010854809150687389934437617843251101467616718867809614608698278445919802320897392153521473931466830475780772924153018324036364659623451774105409093236282656764511024128670107913230912214256571678290296257413474680929796031211789591330510553474747820380092383453294884142991883208511410119101860254876318446285620788494622515280058580881740097507416072763650657926501491600064051355493584074775099429759771811340224796651024148389082960237381199751795404440626872994091460028258623500533268316278308260352232750412171136416871033400309523619150838629471890060763408009145754141983396432142978728241611105432898524645697594828117690151207382547845028947590949482298384468583291393755726495019059760280824869893199896005827790745163320098895203863434361982722945658656622928000113952032331984024940423970034116845868989077493262569811772816068955519409888884027108486078814795127874316783403699600406770490575381912336731851123439302142415344420960747772861790422348383163332603542865410809291501320986212390241769521820323936466340566515780602089001674382843229313640935627010382906871971197349091448137568574983144543004095753507394029671839058572393301618581180172975194132717811682001715480753144444388921425137223733069119153855336512688095802681560269383582525358893819361229614547569927875389478076862628392236093251741076767712881540225742852721561010482928531735642867099830036386522982524363486427221997411078789040864978226485928781403199119173299957998690316080917052588974814100267648343423230948583325605024369292038928352705359817041798604579373516650980688252445094796932977663918521110054720410467731461358773483468672071777110533144185038381497791142013945193616804547743558453575538443725036927386115138901242040378460604486416280767376776091022459872443478655555381430268279533896036039308309850088782255967312765353301631561633087649291787757449930698550460132656999932466916420335822691907754681829266820731830132046783640515796387329001259488508263298626249248120216764519295618557727158716622924625432764143484865057664364648730403588135986119417397826507927304850046393941163475991606418374985064258789323828667031522980027265569873231368776490335823275209069829365214653480594651679316881640526542421982250953034544464688482351187942641495632602059426832209548767107386126126442583474890083585810896806132951513484847448825378352394863285501112506749607572470945886499603068279040783550176856912974090251496302601385466923814270770613460734964913427131406138992946790045172829780006012104084447750521928695609386013687528046449353237664291781896094535854280073055533836003959019681338399940643349830785553106404373166974154421580315654547504244165227445023954877511936654518997213304293470028668924061414366920776425799847130236817633315732371968717297022247589723895848382319264590007194980089005282798809982182681354531835458106976216083680412656946100259221461014027607257767321007903217934635234158169947237745521741140187183950418040279909406277457383817492278465833008965714414325411306521628066981501749923488105612479919366167268522069282774372424954981061043720592662350737354627709107368861847842094361985227197147359353343147350106143780311259399961292468200578186535689430921872299014331810048651330253910353379828943587972581563544408471758022650928431225144901586341486119383308292507330650328207915482315955969865213116747472244107867598165093861792146600567867931572092181614995784611406760075557679600956071322690717165489019175122770903576930509575642467085999768070294691925953356505809365614748139208100442362992642423139660950058852488467315810228716824296923605582281480047693089175600620934498852133447831274307872151676437856091420424076893114690963710546245578258027109208366703900282028592596618837055010550578066459088283444532821305046391629513524907179257988053519041947814541518599931666829357475492853177359793177110860381144873390170690742991599585385430682996758785751398334310580671259610755137854673270306585344982244724531612275371455995883756105345889528072112523696761823060701655973645061898435614021650546388223678849978351627874048861336040426455387432602633572594266271725028940270868536653080266622540459506922584737581994558385229754423375846910581479856883952467356894638019795507792795123918361653703690756929908071310699638013332289410273457060316928632516782044251769331667107411197159129734298745970094918407202398967259481960281613309914314275030265352604271798705643844279757807473219467632785951233249966949399307240853788522836198168861221922351740799282409517547280370228119557876103275166493308982184646545215546055392062335389162681290468760236846975535703671091671499988819299319796894294498256048868709841122693918143798774200475682541720232331777795603582824481978407971169529327814848527588190568458929393748702125814395007471899983790017280264722277306649878253103503487420032505261768354078497038621529251219206445612515126009478836588785206784906634710067009388400259374789850389332909798158705014726487473481560380602952238502297465679168236525867181550896509191901112051283953086973796940138329802633632458644207911735463721548721667850318510130443276417038505174559393302935558560334009937108653883423194702092449012233765465736801998831585168910037447268339392001620728677576149676609010394909568618898604540432147800742742856010673478355357597955320817439635681420484747945898811696537893254013317700247432570644846149042494063624973002372869321922857342460429391872933971250009239403535027870040416026179636215214444130059037733762958712152217681679191146831735842972866767299222496627006012470686085477444874056116500732727403624987820511242512245293697508473629504103430469602894073607967768952312469183301889384095144628952239627739163709585302004935673833338864833126071986738407333612089886124400139127336548726569347666739404826483233531395371721515575014755010228482347687422581455620667856341476320761805633876409304946474958329191629790204767767221936309389033188985089556807812109260745589930328541392912281276057544606785210059597599329946831880937728146616639247253385702159982835173527392256703093332908748137326054614377327681405005637752469488129146743971621453202065390795295618168687609490200468109651773136043297530212157298508648086727806952819408292128359916926243456958457971696398438415152387626631117542891151654835781907787201064661030516284131049384510862982029848736266233847736114831579260938376900696625738281438004804824419976611975470539294714265462019514449965949559331881993512416629584824339912780157899869084383018987843196162620529429541164187574126774244171624188128869645690410864672115206063919511041206824568645576100702866784434019120696107647689927753522754577066533299141761674105867721546730170062534160315573136081075731289079575587192425666112943460376362379409009580684898109181649661384069259132800590552192652408519624060837568055497741269919722508395662112318406986063045101438223787016115222058353460079635127897404126837761061016323581940046279612184208685742815762187172627915247516517665953692159562914739049006205424361905365702598360481458680615074832303815054308940352046359427066008492977202102375905010726701265750274553726851498293328594327012643738007111785629713210208444703223073542791285537416348320094813364580466717171731615350343736858303603163354072051352749624958129962320998967867650319770745840517371892341811150094151853212677159151931276704151490123407994657693522041319158262433749569667577936137223072325034491611410878718612098067583103843171548229316904331455109415251274363493830086230914487401906378445195052542778605008917750487162832502027874038927834930818317464565512760755994032695886554202524679309269661423610346691155559410599178326357718233649831366709218124188388492138385351888038087304873166577808029962688976137449788204341279803514017890380501539712621284340008078869223749831676634114393335709715693107122942097497100913677899510278820349260723379869041046748100821532055913634491682666441849791168208894696619639522019127310820146469866823785688032856554043484552193190558191545177096496862994687268503098598422532202690380638796460038139199483530879308451082258278029563978015760897534735885003041640104927277950906656351148766666131969938375800962053632356636207271652899986781544923921653952624708421968072668670387733615592337887659543507384121842786552146747947851652634263869029490977098911097012552672075862410223034957455159791372536752604238309300583609019201263922449506717840896328197474923813497106164983065755106223750375138712472174282277768650543349696938878030682602822851895697650836350559521706430482845224349584741025411045912149955011179421220439361960091408140707378020666427753063264349523929479009678209243340953330102459255474933605567552203740422576820921157601669112147830585007379473337382996306561871242072729447183594772565932345392555189207342379426456380512659284980519584436218687366982090327062340493599757086952371271607671271663793085436000106507774458865010244701847758604704816030596050862430299933636221132757365158459801432704785027263021277573929954294381651159198104170106950909081899350692306181784416779211242105686401909266043263927889033857514174020782093244100981316518358911723324108394404502846190237096549563101253015156624819197142350301977099818533324007711546644354302838980882767449008584076663352695512149407665899331246340647932663981881908805137497047649290925898740853277850281422292354076210645269690298134179677083671111905327920559607603707965176712569873535934765189552798800536766052437696406036813533333577967902182831549979666611775689950839570794710283014060005850865494113881431415077020160347106499116262980290674055808885487868835165516037345883481424618449975013607900933533113994525285249010551422604319468997578588583067427383429461334534786101384164628206995663296136283601191145441399332508276092543043442870544599922836372785155206676674062532650136360930828772203990212801103561383264351387965388854365318819546191011696369342949088893045747795629127399459912891011220726663524699117451877180246252401009724748713922848675900426342058002714090757634266098271785483861565384733066630843234481990474704247747180175103209866526383932031449142064049045984311363392865679169107348390948082101167189199853119031262782643837905060724565535695875862228786544578443402917652733820220151487208605313675920674569760840611829437138753389716964707412137003400639021212280777947064077403927441103409184226645891323829888905273453450389137350311986445647972884281719151274538888032603050454343911926185071918784139776468057432146408506179978276414183170003460665948471244552441294770154112164198983225087697530606382466810938174139072286014937521880287594775862677732492572596878596535377598746828365960511988350176660713300116478270264488748512044304558041498992045163471667621780635664226502586359179830288544959200958188991754777766631653445110992992090562543700415070512320287124113477664410098636322513818896380874934453368152771527431237640224684403359301642914995783731742773859364069529755668856469627938270255830275284065513428339228957621031234780908719664203423128266168702991441238336487643472281399165570866560544221778301549751268493344985948501732978643602958271432988752963445248768263378816974853510117641287364666446902757153793578957454730928238739924638194071614469002570383248031913774509189389775639963685871358951841906947990141215413466759691671482005978827902716833948913617954411319443611112139648243549468632737261048946417061157761485278573503204278771192634233199113426640403318223860707263536859984764237685301751261098042800534498526231989054036193650335855330387275297944819665057394964191059405865227292349795000185607462326404500811803618678038385613524767602621787385485681026003869711848566609659104010927242934479565462283756992570208602526617848762659115123141209367636030030964740260162217806578099161819224598392680968988039952498790855032463464635520132109958880273443504641174387441622407991158631755400327883509784064221992507146469278488416827213831193765114769548523047810694239693169944590623834548746429832146024904722151193101211655817936171117707594680900355381740479987682588157581028515561299983423160193697086717747407515054852167965307838861821109965404466961971048735332637905805521066409822965851743154504267321870051503830781618490750763141927488184113293532359945078745043108807971374283911876353663708232391300722067854687822883009257076018043351845197625363919382205602107520997105526391862298048381386764337867165552390074816927191894123289920319742902068719604886313204169506895882043298730148732395142991048661934342058530464977165118153184788347146710892697309091010972546437038851914638840943618796334198707317148520643603670878764997957638943095104902744621300907279037748754578846067616032124637381987358048976661433045964266608650292657269866988147410462262401779222063871276420247180526100746201866072699296985583303362496077594312649808747701519032451288817597049668203724308749047151102751359635486600264222236467601032517724201337490699908978196901424874662794819257425714040256042855768360470112022133916247624510559881629150602932773261126770227490852739112140537925285738037368206727641305904118221236158365706699926211875249861148905001326767397693644485884684395241321800726539159824247062725063619502734259455807710985015497054632722220019095095758278517955942827084947307377550411107294365514733218482614565192135636961368072445684488953473946528306169826675076973292205815188373915723183517060192421203236435730107475087620550529480621419886019636170478510170599786679779997939632965195496147751292456256240238463871781081253402582448178571911123021212396770999698712559692868626063503892371785352780066812086747596891069690766020708458623488800450951738673081875563993429084208584823306054868416571029485136074795972389546838686543103766050423089363853283469037753659717765476918416981928323323341532048649069533479971750938171728636283713814462542577724203959882369758698791925151848473223992148152463238803758399440983264935767207792667197127766180017688420658257509914365066215055507244118033386287098623075953895234190713171090923912902924248427823380857292874422445092946714964208930545593078564349322394806267663742881299599374144128778256277022724245138156991209624002723509964509923818374614138281273065322489325073105299441422766873245309519538206484368472005351456136725214022688481338915758490350380588740008139843200298838524074173816966999530324842561655457666054043423992451211810059106931864604921022200123437924645997851439909292503890292043843048333162807496726977818883489275088853086083478835985699354210566993605373348708460507350080982607172545890968422645628316736090179311737489480746735490204558032082102473494838289719793760680630039079182712792923784124751369354560314522082745234299631843343030346364665947334065247146752720840118142798134578219933771866396348208648618821393672446104968974301231008972802994054110865391401707441986338448930549098919688377572597602725539292148408646216428614712978127567078888357406185020097423120430463600039155217837599932850930415925384183155573737203658709164467554750107039556908147550360416403571570594690043261088076830995302925256174002515670825354063142165444666480787164630723506087438749400021007222739158282152903538123954064406070793533322130013959276156139272234635923635704921951664415530305097028488761789286868980689895379999742351598520343889646127473102741939622410954625744231340264140008106100631648177743412536869364768707629390848134528475794185177806406628060707266185344266647421864907828624839331349417364497361275307218616206305900258835288046413057684082195578489140002742528513290067409633045285670725489375948437789217476843407045276976292745948967455296670811622900748358887154179682855903079386138723749030802300549374943012491005779852162014777693661879521490949928769361797582142465644242904817135571910338129253100080998618778075140281127766201963135393051925791151050904485548505792337458547034718585533723945902541660996319956370771737520943725069059268998902132419228174547098405561067233080992848815010824075913212200902192730109917533499104906048109792448388387065956595837040415130078742089620516773075677035428350403658051463721803401630003101805894593374117996684964863047848457906001555443819447950986674938703101057848453006008319065552472607111798567164402909064627870029382137065424425900293918168027286469346452392118850813666738268939408943468524368424937244850344904861469319055294041335637380432691315571630563086667970392927731990317260465697830836984442975703785214002309024285861173186944015578041501123465510730677835351726908988348730270464832280546626498501222907097365590192135784284908943084061113029948628871286838431261368367487624305102954678423400446261379259287737628917578227189466437956826913922904155728377768775193371318532881699929113993735862629912371572429440987125300600410867073275307819980491548542042212373758290044873607458228726011807990782271042243526248599169147816330163138765305495671390704106334274596604298783197290483761642533042913592655445586106888120848635038684930696800427262291000144015713661840038364701035085757306653915149127163272081168033957354046587710032789759985755078671896700783293523620360813653049361724531937700701120044968557735240563307175821014964226450756947105851353280744424943727214704648017944067991883468385845344253217343909263083313364228161982348674108658351870764938849205828453194370590151183002228956915077092056431206589480158203643141078996603540150948460356356611401881964316993251612305054982978855410116486918487390412734076749744238168455955569653528987695523557979415791276609340633617806143047917028503830097691124197724036127261578915172351170937371887559994456453225744515524420421265596153620279043054131556337251062543900582792833770062698190315524389625934038627446796325341362165806413386697791674724980767384157952148730673135327660017991725522398612172905979414494689629599224015621234320809536111923176555133240772434696377824186677316613292702652801106873486577579821966318370299768549835130086911423206963399577403618949257051974394130982648461624601186265668573676970248690017429973526366228486858779145803375914401591837666207641132455105248275119654219636957679784799911206470916152152324213090067815871604816261003917656768497124210023144330684080009438004858212908755767185781285539248479626957687551190051217017735797797120556375660831915274675999747812342136374521986609589423710697819234256910449619347373801746252179760206637595370782835182447919197551411274293509133122746406853014930573131203456215467564893920415253837399584362152866406675978697941006224906533845459716022944757935031651370964237934445114760118890982738450537726369647647771711332900029720276820721810897076315616946877371217829386124897276604171556695118934355916963920069749209090838014694318585834340083667959266638840698818376846029650988283876849918721635181109015395194748469429214369124018165505534688479354273141491338304714412656858027738978554001964108404709932009548507046460598790703521673974145461476842412409725398387053184951148005259928164731619512966771296776216219214578619790843532287015811508979845575762401699423750156755328132972450144419523909258251100227145111392316986492754763801560169755128886445011685073082451232622178104049376441451776973916525333839250740522102214328600278813261022295972038374423138477172180837090783505483616877452160940001011994058116844343300377796795757934333681879438691680709596321958167030762180079767136375151077757704120184986395681180292671577954453147619689991883536757415323193841049537233748880575204807918775729652343230292166414954003283198495437240359431180576525228551620409577033709985248735231399268891662081681394310292317163906262736115737722014233238306180676250841310678467246495850219295169125181362479395228486728686972942915248765615835618551423160326859103993343056158946267220112472849426024781366749862035830754533768805825317527836293591583776185723314370990703529964744783416193769264571827623007318471811529853016363794134943648906606268319049154156904095682642318185448970030213602319095278601692310247547603004098222124454643234767164666255198492782544360097950181321681394152795075567610765396897947371833514025339015084630182021936098202299216350862517038429817767234604770734909410200866390828974335110397788179067859442991842091872097298688753681258243727080711823295578068766075654339366271208626408372779099896438803464903957643779237526008396308781847543129933736280732973480936209588878382043637479385309712872413485171664423165499484282914096479149527491378603875898554358611063233278623775834500283045096827198444840492083511166920059764438746436509065013149956566354164434167230986169571553203629118023286875834648797229153782094274143348357874895867379333449692127264019409150834044479475142508793697596886606078961015554700112922212148876682808624167158188269302678645319090019268489284424276093335575092390927470891909097412958437063240914289911864068625003715717034881118064265164032660651416387203514987922836679852519110811287601102959181267812721897289820663915149057754788217556155797489208672059276491722303164566766874460798436663590554574414905275390698955555292535184060566579656486489082725340362112163908277398555722172383747690313751510714497258410447413178509374827283853874332328138683540452913743442780632835565266071140745395470236369156753644297931842320303462740654446975587255983185102074673945868684092786948180665126530839471703752541434193926514171051211294593708792000405708290922153294982426111314956518850034464103741072875614320569693196867458988725899709719461282656680646849448519784458687033179981291722918397324604156192105940577839951324552771757283908802726069800418218841291706652644681991863975431295086437651019902010919707622886323602684797642035506293082804696435842913826552012558842927004994342185903650978322235222752222576422196297056960921351099738799846892899126343548289484021452326164031836806977632623157552722922032122043426997413856429665339823479289859399794166938558453653997023462675076247951685219271877993892280395289701276536396796648374704793180929370745622507088191660112734107928750924345603443027927263916571224512016120677006075619134885768057040573124173491096670224716814188434718660496006945290584124905065257918639228278859602497073908720531337363343881238539551503838608939645007279138594898166034545062044822245227264409279785188544044278267267788809076644307365830470991292587399421915672934080364723569470935901559436821194324420756004032194926349073557328851276359060951985713085661422132324846768618002638882508746025662239882755930416012083471443204812981455275479637124942233787380274212909727744221279038937649769017518188469264967704799078740456130924406428117943282450444874269047968509765074526276598517534831111325534735817489325286852568906096376822695546013153231938495642065896970730716385835638291257732003171770699696902288056344262379164841382043960714802323880092502372571148375653021480336329468284963161527108479262069990496989187506805558620100921009369563400748158630672104818991933775423047586043971180140418567125940571340234957573162052009175086334279579847434258412306445979099258426812329855727329961198246304095309398970265330051664329351634767007358521287107901958736097263959337488302141193215004721121404323742801806863790925483991360417660996476793706821129154402356877998360458698252668103943040441286720908676116844394838169168773735362490711162182158796286276999987579879405045478704513068967015771536926467502283496975146347806355735209632903091918629410236320785234829465817704595690290364703643144391746781842380686640246429008527289540610849995565726312435497235794719520373197720609037240152171757846398437406605176931618926347732328439802825718813254683079568001668002811525349395862399198331639588814287886144700352064786346802443996267239068780232921084231030757760286801033046240199621334481867883740094717715754389629356503721355223035382276324649054606674726375957080577237859450535044194592522968793964214672841640909108680927216199801589219557427732902429579198284383985782058450798288090139703133217758696837595780253928979512512194580477327098968964636252898968794359803256345586478257993207377714713975180510732256804976438077406474471212932633810481211493303971904915115636396179426208676579865741598111274057098562847171896907081290344501092421954051118646518612561573365351472517676814416561082094711016391044072467145504961273535345409911391736450994778755057103505530423416613903982435515091286473819831685879334067704908176764236574138683616193240505319099433457259224514706484330937362782164087496568521445859015926729139808096527792553403149578639247103429000261723933755332295746982865059557032154527776127531840368618840393716797153480513601907335445790822325378577204592761188379662407012722696997638610907067973043248789736927515435459129429675481649626409234489462119020228474853691368699370880736258501951212134802708808240653171081576391710784574339354139333912865707789377756030414364311075450566310694644323843367221268002270962779998225720857852396246579836596049739398278414719021778329102063440071591899978752690834199843337289072509504018262416956148821053899141540346118634325915484809067056391389366338055500048563790096881383133249289060850136017411138866571230569254146244222864791631844620460113888384261324285264529946613798887389574738999231860872728980669865679496871531475398224307316816863539262232855946971090704335880588085388793033243190626198559109526430794947843618637457154740821750186345016809408981005046961980851870945940509592819401905601733426605699060950442581059006963168573310269314417333288266926076511197802270857982884690590235790146659818758830168263460070105596412661163238254854309928187810585543051163989890587467510072119810291385445823645208558362748496303311350277793203518556072208295549449077554947831926281851287153880728456518436691006646210853395863034827331002552907350631389333642779177241463968336052490304672954468065615707830961785379054358841084655331267302912185552674309928720958199709612960758058368843362937767945460405800771332301897196377462051084924899692541606441729741853530392624945683601135954024053532689602666903982565246027173736504709507016183308298712048306476658553716855526759203857865153887982983357972954319306443633639351988812584716094539223595065280430140568764260339586156907376805048011308049546648065221690465032114393912922769830178065260091646823686329794269469296134116942035293177661986481736988188223255370604974067912703339581094032060808127574914939572602446831051041185821901543494794476774061731513917142134629931559691865059100652931426304637650763950699758189429055462772047119423267219893472731403159592857291702429147641019130382341701740392014576531326768123862806888139608865005426026804344633097832777229055422877511033833190494007372397001360147733318638295793499775732382368452150637487898642641211802607160562938797233890496521367098372218156358594896254508140787627721829143521423886639943398354649906724023356448117478634305119007688488255746510421399580151073376890817438735384029730211193169600239725138721473840675862196321858353293822232885658360752274631898667486346180697965949657945772239920455690198642872012120218470706526185085460309537262494141990611113156286052036204932884485897522984383236518949173475170981920939493384281379122693019375120239843067284348291764864651595861855722721232434556259415043932649944478588274596338557894486442757129378066681241812324603439664316892494829824479512687544508474082924727851345224936041099390373289978700083821342513884300270818315735265072524841346590794456271017120069718092463342338124998289051392779807089887105013168698102898808187497687437801142670446567752262786859202449477791806073725296765330531820400626964153477636239729149765298700811163495854565537554570296977070214507407896071593285401641974024704896698904961103865726966133971769205921758122268830533287701718666300978545242376140346169884148092080531276666529576548012318888471914086415062864974440791721045240779118880881816273175563109807381842545568794773029058986515433189993431053604927513591588049355087528259992658836407138052427791372493528397437636638358720799654286658383473215537687953926506807311565536601244558079676186880852084623282229428757194049642310319688417285802494385917686568309277434430389801983217269114845597178140112009298252251631249675257827734567529847353471031088566488081142251997581137702130765718186488976924570631358935269788337496558055739541945134559575510206729373400121862657596596043817199447205020684427495005920228712752197918600001768504178852147953149563932565321183756231808483186312747004719245365504831288917419906960174258818770166127475791421831917802104854101668959625469510073149581676569718463229419057298442485398374185244164581051557421400950264446213888634027333138322248829843908603088760486812847897001350949951880610400946549387572716464409593856938765220462150157550227504638274695323748802392925955008723198435929499774904706049754305550178221879758686678297187324025820545353370808589538635903291583535167786847597439924487511789301723395162453755351022433412981098063320428167286177325744191856007311162955318220937685995708884237851467831834465073219042317840838732015669372092998676560852109367155062459998442705343639131562981498797184903763713835754030923285290503958425139870042740803711144249258002745886030743806968405990065921502507807824467269815858249107937625424424260398864865188701855338199340364645216244456213080829386306465461303689990301691311101484841859234404441356841766440566585309398857151386482023169735291151517264395225981080824877825167809424898360861758535146293168723009257249463429702230356644955714790553369321994521929385080868230657434182034805283739336741787291974957796482993309912550604885891924313871292133483250263031559785309956818883591571637160216995251115122944898851788530632790708529980805895564599783728525120828447319359069029694511536934535615281030342635173636981622788223765334523381530698723878311993049607550472675515412702341170696551581539598706074303361994983147910615012444395373217412966675875811537351522551224745034797345594508700644422442163368138728060811773365880846586071965917818302838518472879942597275939565389320732182458249780298712014357179085415603613262518147202627045472722608635837060464441627011319803486702160964684627835105099459420413420912144755260798901833204861889785439631609636481086484994433484136009850441209068454251235125760107435257065626586737058925208910036668614165763002615305605922726668640259643369032810210962550598930528104429388358735681584417069169893970073423183568033288376719266119045730654509084544544477441015724980168514918041342170742005991641046738833391681490184992705403119955108305030770479822170935664738120192147659840753122659840648245851092247188611072295308267022917245982392496705992403314664583422022519320226956726887648764167296800704799067081182773050446877655512281690124366908962011115094735856281052966871116417648143291839705466090606639165208499187083756909362404040458459409330731503496881254081757147939967241628069833629134644736250253854923237840694331102865593571172007910685877367595170297388202163680250062206860043324002543529879622283681096998807584721819738657366225090475719868486422973776415642723546974497312821136321174756123424124487874473340749657827664386096474570351585144735599499610069802446997634610957425359558367553374985181285240465536495946039813110165647986064773592701045034323583263571825796495894148613095369367740371825586626762022181301219017833153260480929884642162250375076441823098531007021910241418803007432629813729693535075188457397849045740949818165120742804561328292148059823251025694488080068032606240460352328185010609150393504016927944553950273569777603599898387235688276062828864906248427807231017555229402000384955118820858851677998357989727727303666888687890786925521725777942577019212331366170165276908588402805440004215116423025459656378285738927930254320498026044159111312575744805449857340858813882653898822360510813788256181871650727339455022946049374488184422690206711976159084586922000961044908095997286035426280184355412799053457800994369738904481087293845153816040280357455367582119442595582285243859803570452676931564886838367133298830422816097759611723010845133320472575567149268730985614745933558945520451675660692170522849510233863428163839923176964102858090803841518613785596273537333602114259009210221845242548760407980198340884528927601073836774532463760854411296816425140042729407370911889186225527970773300128802223948755296257685179704724002980384333830472947788667469311193273165114544267740529096991517021218057975712365747278661574577712757120946217395941074364317035290236024249306741162871611211193542806191898038243379207536599826429996195783827713307575632747067645678303652117770185693021021010862558326526568000412712934701758910293283523361653471119074416984251135096128810015114582279185350737537712467936047853976970789808253418217321453265373713659008165576617881654239703846871100613870762455763132596915602594412668026991436422269672459921516214190493179963090473293604498882465886306449099788288559739402962437453894648370174008057308384842634195667895258723333372578579694914057297933619885958387304004830613680330319398078011678358750806801118969682588387499711449191623451775641253031459918616306639969442353692962764699923170909296588351822879737301563748274498723115370260892592708713148113477620694961519084863124183401075255815068596251806478685411761706150342936348424192111030426885686278399405006779039530899109794323543836359309400478384351249152319412270488938488692135442054453858289629536916124638372544985944371001074765393941103426551886612793924388330483920420697607905116051181017891899502983124663677444733863577895283260227254163753180112306430709316753190338487446819519024120346309880210590300613974309673251455400224837603763850929201463577721936349359825383252514698436625883487776869960554261619645786007032481515887263558608432125767249960635989792478344232259041755669264668502948147559304187686179724097416993041216914623666079905594520962274417484861082333499876168114201537405653195814117000973255243757107237114130684244135495109667598932565389830517815991571403808553331976343689056348206949404660428400343000855670507588693050713925930492097456379026272581777315653592936141351229115964155465280539506492525554415296196615886260966100701546520280241658958912515654122812819775675389317618339638028492701923453492373121836525632813634901683568410893807579175315901095888373053910581642201849208364491663400693743869673914631858107824973786678989757748293729921449331118665969979281207271334464640586425552783839790966596146613947398492114570589066712663970374082029462008801312190786752748450210509676538618282888046087445104904664145640727090410318837707606032886401418381890037166888222932858406200434310777784488011120166106130339412119017639263621643124080740449037834986645385117491141224284780406599504414433263122844260480334502924694560725140125878197950814184368756768209856328905011668001754208500367528917590099786140041890937038584079007453651522171641799515287545742891353581951249630177029788385213094860421178822370410090002228004338101231001742061189993161232009632951057858789359621986168247288753496807023532674214110734536203257680510483512675666635978526371525523424747032693637649410755748040287306148689850659032061614319917627994081643136455121769963480177290862759792189492219978862260209955538988872762441777465347241403377569766871969471955765384275695452935983522124576623795021849996268801705520428091664343887835808002829549427956205026820160296256561887932653773165736735111282265762967583003782535463986635442027034521614477882531398804608272530319226656069481507974869080141739444429743519443010214911071567098479077550105930270283532846770753330518565935744506862866390195314878848480565504848330468796976232255366661985935638092131852767674903932308566056907537845849989664142321955133557225360395422886840888546505716527820416851827791428065790315286554669386203014792586180052818809143328828017634218564154673873304509228230992104197796860041052836827426797318149575636321961484194594293935119562349490871770121233380893340836939620947510645913856384509636267291210386272541280019042389488226587872991676744592269090732568251560077129453971313016225685565582668612245409257173970930688731911076313258650266999715675228135805923043950042841250927290846082320534565732595385802648984777812913675823944207839457102686848191998677190589504432527598107791993611130934428965174641951498966413717441042746823801101028860788990202253829252941134919449924573245448435456286603187377536719597334259053057613294710969823297736920018997562665322366419272049062887895928966294099025661359728877280539073579483626222793062745038987871311732204484031744593533067993889166152119740579262301757818206115610425910776726483387673535711016031921080877301546076134415301180055359139711280740489440739611224185463039960462468300846928670935082326660485609666034714070882058292482329264675526526450944790722814244684028182294252346726596584623487384526303053589155101134579901629780561476754022359511032289120121114143751948789682981758976610092330110980141146956086298837031220790546144360894693449440943398874117477720040876198979436370858442827778707776293369233503264651146988184377259006025127333830309765243351978421136066494129524451090389174359081793027956217874932189427905383840617138514941568811491812667485037591192711574639344971946859648842055358222552587576140005085004023668602159539653552602086456056794015545054739811771894128812489699604682298008139539802720352308602336724349670004401545486829369526777150878275563719029140142006203758054726660077130280316646600734752741625934190644257354082334695994663931739872044452968518902393688806663502740696620555101486567599125014400216758792974441587893456580987990882511059500366050818719943753297722537185697950256587439440652558124897564783052998163686408503945953118293872591460788371556911721243558594771374910341502184952002188935354934430263449761341736708010944203081499835570043576711084441548336880947283744378033096671779896935945034344293366806535088059787505649077947452861585575190846650116154887779953262862819054521348015213578603992848233787685265493177535886391248623542004889009958790703864006839416257444116333209823446639289207470916633193985742278578996299134230036371718087038301974670420828385689503531134519481868354305630730464199508050866898316133043946474915880683812719299227664811479015447794454994691084205204271077891004731694892648403782030698864784290468950039082104778397272976505707208777507550810161430425184893878046951239672230442821412930366554925092435249308191799172405729566396669847095521970091417743800671224972932492307245955864862144139726385853235276093666460274686241565879975252364444216240820400679434412052656937290785118117446983348771884180881494915378444731137019065366150488020974916574421603547593849636117144491937042594790560595541765104004974566210336257675195458289355209095982994355399340770666486109567101298888141938808466080745255630012549101493798150853919433556242501016676934846645311338231568806646831521074935115056370120921350900925129043972788960854357655169141015125045887622799752169484682442343736880385674881539210663045208882780608736348659067636993803604026429841673027830286614640639856982619248573414201252867397457014695936426798284040163391799879702279839423790793443108753888448045540829756406628078415463730301125189895472075614483799242400852362354064912190228189734409681739062406425981835796917510350289309680814075748765468771944024534786788085012123162954141129816536785914039858051616261423567936206792099752747862096684582164123617122635890348131353043702044356645357984579445038922074902824136205578642854399403513360088251347641961804699567856134475023498720504379003361189491621171653996035468761541769978265687694334978829605497837359504336359587480428156953410612892540283749692111557593692868212286423588494468054346569536459666270135226362562940971394521301228482205499141608363014191599297393872546277735577336408522366812270008773183468407560966485842114170154710144541335746778829585732745799159107513046746075476941346814237997048642057680410409459903245988037822728754312032941174615250864069636234688548909243132787113871600041826592383595000056181000961128400537303804546471218738925674135637883828082801629285407586965540657506543451452156004419548209176467130429246332220487588039425964997885320277921595547799161595484271638097081755118952660272774481371016679047768440107819784861919390696976515723356686042372559315621430983609914339515676597475281616374811639125725572626357916443168056630315341672563051049384448492527397652147148639379514796134351969183303086079154616823765467043283609953090950768000948902665309450303126984397996601062694760168175081497438860928890189553524006273195207733788728813679073712976588603757878434616178016623916900166139251882512844800180528206164219137006379359620891912006222233052230669564014654818735810563773880319238746302570423933756552153156867623957645973612875019051115216223446420408247614898971390282428621020345763370886530095271231559156823439220985249393864757661206969493058100280717549669861542916561095031643593954613935110375860587050026980827184594523333283407333389177343862589142636484420090421473221319060896876953082846294854769511993948623996872539578101494239989964190919594868234429131845440647013101093543813108373561293739626967384711614826668160441441105237838039408300164782749111007172860092280191993235831412429345608259110362074252843202119113211816956467562395540925373992658620113934484454591020984530636066293917399906244861976740508698250425187378207759164152904614769507050108400607365447149974030231614075562207627086050095623812637957543593810712671228801819764957762323062870294096026690661061464471585479970552275485018468373500325488818011827360749565846297964874063063448312183002111352883301851366674066119018550665751073670037076706902055881767548150509416822825459199667568245793154699419863410953044673392652434857809168960693771493137727514499175322191706250943300932041912449602393593694857197860567603277947755436992999726170656914351539310572168063266107846207910814781597489742557033529651558501096670014660684044669871849880767833541708129781226302831191521284934837190184608962440770271803150336638976100240629650759824211942236766363277254517014989484116075255486863616579698692821866668430812983702080276576954364232652148703135850243025130629295713896383557298028077339329918824842578680992254445848746332440847295296996515525761766248615472474009340299306986390985574504363698159340799194593165586725330781879437806361814789933631016570039703822793944762247475351754316481502668542704633483825001239323140769384544959869862285896661932789091556992303924901476875443874952003504626613372621387992247305195087829421797445961905644664081399610539689415528101353373824398342639009221152890161201240458093510755145494042943426787442561079232378390252283088876784247522444402372347610333830187796818939968314143118962841715928434583313118054280852424925959019678413819103882037204841819647557674525605444788137474826763337504477954971480727373623266345904750906734426303830505985556851335992072895383429123251639105107996483385836169022479018813746529635652255974686020397137583358169691946649417880512494865661319253840159013813806504241956510814733139633781139842102598972672446160475571043185041609463291433158712560569650531457819641085118360095298932814492964928214143240884169039818594212912168595686905729618264262642036684058648722929755526339490169509678264736799512283287191142734372711415928419919513699790922566256036904434293949085908232765813911014204664024924421813714275856295563335378002213689043883984456935879569530046731567457612684545091760568672447883799470679557636401941299288428085087119502654198090866473351055525637460598574826570975135691366176170443213002751876232027524098054637931014576649705844389421165275583882062341991875931899821441414511147948756884201526814205481729830676855777637244732309534070626080165011877218047129275217860389151587411818840296349724922343563287365943174994271213021568590848418496594518260086281506106922744772712518157892077870348480241813517186954258996623948836959524093575201770941143769535132622179472425387401687888072272203698103476034890369491948718608201295733967729756964466790853731395196984365532098297208328663642565855519908778492177628913121022818351725220765687594581868656878429149936708244760720527620487771541682404598652896607996782580477833318272547531424342728002144517684329113503978246219316811203778152558276043778326066218110819307742003012413115559649347811664750843593931574997380581563788506093265542980142111710994307989015204863118308713417279696901713083597396197956500261042222514263791175908788364410979734019578113422940187523439940340279112423464368164203408285116523929215819852938512115798468555115208079248113669832278084753794983697511605889993159236324964272096246791157052425680916978351558698397701298797162714379179002728546285202749781890082620073502660204772924599052484981118685355125859757617794453953895715845642454413404049330344688974273304192652489536716479325068085097018719277551975604626227384777280174723022633745963248178176051708853888873782972466524842989948117627184865588478123123742516449239198533604094477774415389206631462571877325817238051517208870447511227964905549498089745961391613943233594588376275463713641579259596319052472360899573961013637624826532809326120219473074030315774343366568458056285447960121759064080564117565497582246919087291643333516175812243930149644190898359338216859808047602315947965086057528680150437404536715659078461827155179315190489344654936207596787865484735292439521541099930234641133201488027603555887576809836559406525766622713777911426910086207391842468986396388855548715558257484703689595182368016300110116788717352524989359374489105432334891559527356416636752724574463552017699439077548388027456230339644566698178850904968347132287922132497499813043021743328120758601848534663793714286770769385636693079171350528098806013561888130756636305091865035762898344822482117599418310755347644282733185017901407214957195435112313051037456147378673759996705927477926626793075770077365741510450374710118429696427142199369370971108277950752456990302435285501234661745902333700807690216992924946428295844032514984043129949471524633935137134394518086790072345206477078059917955265804903889157718408442480626686871855904171129825742084326597576974033640152985546190067387614175460510243861386509343502475173313140249781654300243831053912184534162137951864095451843379093411168088012442058691555814378758601550488749679610142567713737541137211284368295574009623568870049564330849887576321975475736717439946047542305600593923666545012415391849874672870840040594674844287420656199463402365465768760315112344701482269507805012369577626632294218571578991199796609460378495130014484184771041656471035659795080440938497767179304802410776329532190862356872594497811588872054609114078642382798673901224253244915861122840021306223542054692535419843748593376051798242891875417535824471693192580099917131338065920442815119578466478539147611264477934046644035591167621165325139988694011886670319363769068715476344769456885191460179051970994308763730351222885450411723495098243204878856406262965360801185247282201173521070137856492533257671625101876209587621955530795823351918127002002856800395467887337915032902940363159089898437187399816080655888033195274505338762540309841546248774226462270664297822368883863305605921862888318811283507201089998232317310234336069101175185453473267085715712787506353529353703743944524057871892983554340894144730905703297182161429090121055884982149290930425898929370881694512470200971095275941807407139001183831360548932627886090019398436326334441962971618443850546124258339321297994163704439355755310447072214294951343252055322329635401240704985063217424691148427171406930102885548258702853288657410290274640425207242020806492169644750105846526533508279949081953671820585116388356181705367910527112653555559885310201404766470922934706537992176966688719195375073942470089076737849655246241831234754205968464572569034767490432924581946385158453047252485134979178893700934212263835242743061484922268614532543586707815126457059110079024145601801292898945115247151716036268445120471508410642051711886523605879677970473167720890643738949762038123011095840151080285116123509463298504696893437348912750346489063754043750801794350887509153973215020628168025764796949672865878530394780883978432244906522682753180920869322809152444411872742648192285672620804486551973139424962342187324352081705508918742245584023306717216533450997850875396016830648963497901176523801042696321119336675708502368759024583754232655365848018227260528382449209803709836080896971758909971129871456243012244442671030601276026316671346432660518323371641648555294806266295996195885471080828029169148709667624249552840009510183929123760560646197271191025359364786170500142145830907662077014309418750450795571552352080997619534701056420161204482730382557963326521831561449309852173452766689637487570407234770615390600968642962642341997389679457853093676025522645378054817087904084065532427026496386094292894824354305714730021936288370096768263243145684511737795490755523040262332551937014271161273555757338910216871228171426046092186719746676802253903319664896963999080814173946339844640976769254080535592899281822606130349430673024735663315076026584914159713534440193894786332095841142820004412612983129927298072180620558353331699187110946097218929201784757655577867665938179926370541454765863881323093808996663360314273586743050727074987534072649674865923245315475849289270342541045313322610863522413944527432268812943086741437004094412986857421718804634372567157004854240911413411956794848750453806237786921438836938533621819371766256260770069063029336274933325489314690099391028717965126258178235149722512225673513144504111893625470118496256204939388422943759502041096786561898917300074342635721977814934491456645524111843074008000137262261845070472558228304668377613199715727024886440159606370524589477609828382277908209974975448885956801495362088846794619643211925790427121320661912850030507520415239369573896536796803917989385245919246687375621556097212058042359058098556986242615820626480308418380163497537283462856573914293486176028832981046259169836058598926483780623307815595088046573769768041980738934697119849380470664988673419409534829738218177492654634186724345498782151750860315122429035867181729710244410358642006438153030785798795967667657968658644934449535826422123148909896306534525170535496969138381494421680812213581500049174851600156306277927993446596572780781028209614205507018720024690301346583096121608585487019330161510751645778419730232466976584650752071045160463854535413211032690026062049159493619864715952455000695617547974609728873820793218441376730841540339050330057958269804390410859407179535978630176175699888593370974303888627902690498098650427756435467021380213569559119005288012738867987670535217857329537964160667149188771950224665857284638498702121493195389986292098075096534513282747163549544620102869029922780549924128289299823900756495890223670992873853809376106895825316444140351131644571983591754232697876235375950357067997522005918739223454685022339344986625820973319279595228994273707627219667527437167235030568117613726527979053880705048734679338117323195160558207331086386892494074061021730326711262529598079116888811530617945180966365609378521626166928113039298432570998990278513984598116756396389210281827675535387100748367808515595874898935359712224678668554657658903260685567495219111618763984408274496541271699946416555805961071769531781033276367488472491751602392908723160706679148130181420404337101949904263994507694766874420090731068183396735595353991361951294769615179914438065591151358589995180061839878210838505950901731982405073934376140538332992473475018289450780213482965896041220277810691131150294741103867238390178382809398295129921015477967500857419733629073863806523039967047170336404067397540688738419082675199432898003064051347535777062857914486747891498863487112061176699169994604037288160918600127640029571734659444181903459625732053154932515152297864914284174852693502857223321268636858019070944450904219579300620023313825884720047750772664449880324994249434282036910468132750759508510084401610665157285403738895905804199356079059336837916804140596523941758046532319658298127049608898144700714467050664693787550970016861066333234677982722659242817341242577264214262287364376733706061239684410854936394917381340673514819470256436259530436949268598164141278460805107018415993407230609107478491228144907701257265974399974273752180300810100663571149062663556579381214611623997639108618872343109735571836429643652937050073032965755134070410240789787571050955566554708912860497651862996027187869380681709328321443481911420198659577519393195374186630431188217716828900915709053073873057537315160253425553180952282662549146522969308001323487218953490780797824333959318996872535398306178055032948678212917774157279087293319544943253146522911138701563571572747729370908170320555400786909705084186540485477079871339777814995974613724323648933702130566128946167065523141403577888263444628411586116936145686995654665519331605495015281440070687588378149183614326625631367715299019109799264088619607937277758746192280033396934515275482297077189268266270742425409674133690690747070308902131690844533636846907377210696070150838609794904166500990885530654899193750628382778096517042632105187187875037722156330980253806896109454568380711567107433929772698602435684726685661651549583699231988708543885183067516720322135564260229663341815033919486901352148412614884567993007859086990757530475086889487065829780104195006119357690514575940265091035673257016932061361267002397234137197725050597256370812097283491007943604487451778447371360072913700930251435308678834271578561717454328474583526230907145982182556628814313376735160785816383053328822384199356293029291956963754404355383024297848714948428547535672389426288807472358067098839371587230141184862880265316894737655400227783695187436980268016590116011996466841605580589892317960543138951943712009907947919310146623055472270495510373562919535428275013596926801116991724190524444712342163334177378923847156159761671115727438466175330781051392168194737322479902897255615133523028023776385352472279365886499607199095559643327576755558035173142162646020191979930414210904711083642017882698611565057060342689268765563425789293222098285557465038656911509029889879742553256629332337087882086344149891397358346338481203333434596807375042394467614203749599398354228959531670594831692775827477779043399419479220657293130553160531431800467012607430058052161162837075458120082692869797634491949819355321717490466783184405339154291530370355102902101986499909756453556454692717364880510615944863285302126414195291249226337284423724183314587595375070355315457218543866855009447178079115269055671167002684591211304997464430557786597921898657656866465929320925093101295696353355739612763089113616925831133327150992231091687604666767633877994770705609667994321077549047036343802514355633902002761599270429878805425147723145150155732504864889369650381830109896615467121133650012457557080673868518731058171731697609799636613419909069729864397635184251225952496083270316773172128303074829026873115416274504378527824618856290110447100601656279667158852688593627495875453452195438119751338716774609525691303380668893081647400889411809894457638973731170758734538206519604994595519583122925354461349234191334607252549411945456222153408617663509066196957775952948845932770102278197857352372177447809262596504690772520213958802235508581789044911460693714288238378893477992417928871479485865453156447939450653853566564082510231077290131493094903608319838096480108909455307007628117047215733911387997607245993922629385744308957831308797949157896281660535908702017002849796833976930590204191482223857296564804783825641834564819366676514063429340199044411857372210265441267284058174351923920040806825044007179454214078547447300494661202439001430932461433235295136521837485582732168180687797699382395231806357122159648802904827383005607446999182877745617873297459797105885206157436898040269941343867193713425829567403563556076054151218335610249749869018991646330895323378644343723766840610129734878952471800933139627398759971028159103070753387254169007653449595841659693473372482517553060831364231581196034115257522676835837410577498460751798481797641827766191939623987309050469459260589906906436952225882645726276661153205619372272777851848933672162414139056673256835168203754431945694539072753089625173845155411670020655713062131764280112735845834416394832037627046172967905224953131272605235562323856544711492836730565762001553997165883685362350353396303716036868910634398690426719601877850205394754713874555434070598673952511293354493413743024404554881399229854627402208561937029403687077882255258184878991353265895692326706395074198289758453836018006503026004271926516653189556992929451402911944921244680874753218121871517673636941505226958522608390071150342765977697940023206275445264422109791991185274537686202475830764337751441080215121644805160450008971816745311292374274593329451583604247094502081219396209952776878587432345994935251219661258769859416909969310639086459169233382352266135303893479921529738204463947826220613521341984714376745077721911279705463017571006490256607539935230231880016216055063428137696395496621695336681465452180728073499285368234617043824943000653309773012693476172094392350603344503346783849406859491234096492225524183640469299970198833171111173439849285340247619267853441267229821174395096830640146690440808002637603144598987940815209536896669853510009080050104416677525134301142269998007751510167745708637715472745071319138390145080146743220476637091430316729984719659498070553886863826767674942676852947436991796928209519731149300735520713154644584626731265190965005133822707980524269264608676538474558825982210126431020010579450345741286393122733410557116487398077571522980882882480848102398531115609996721875049168112881119519755461430667040468240079828297960059964826241656175873379641130111070900213012232552330312820452221113959896649034168416871031640454088980016870132241147579538834146778571870584103373906697275263634294038714868182805441815435275862523819464865791941318885291728232739476836469105117550138855107450253426251710214409597689194675585019347479925363979634135755620754632319358225728488312054683007501169573818996998857048713990917655255753972867058368776484267459609433535052077722235473615189637659764368678813380681408234848647931040439052518239590559387178111299347161072582589723789126107821052609325416484770814849111637129381091919678483949342907003056635161239714067448649620002784809119689360817997897677279984028518061979728608856856004984609890881987922701799540973202334971408738289863483394329304038703882634916814876247485990040009722555637151160728491851340534261937032413468138454088224341337387581086244298804795520671444530257693049884591556543046048963601936877037002638775172926783507979161114498976777566712334328005402178278753925989033425269379183884898360642914394396965575662791957052253346913991591981054008047123780446760381506286106094122047060739600677444923990381361131583899523558960157889940466833999116584368449768979041582492544662135245758826891449768722456578901932644065661746941368724619879593808870726992495695290756199128167938437094161692373657715833340748920627059701085663480860834019292743797375868443827543404368394395640757834650581743294945270938135252331458281229744665323958811676204354838462362548759618328434821840706066006822660096105812543706833143188778893205222810508493993439814595868653285522450107194207602358739931502631202652419055316036702755171975012703009260648400270684053480904175717890147660515809236105538709745259288421086669249851208851906093348294011887575629670079293922134584538750269441943837948777676869710057862830544207590159094933904090510103830117884671930911187233641530711726228581704874184496316867415853497289240163621554893429529389996765822029309301600488965675864006972184362831379519249565336161630109832815015298355420800518314724802130052162289982234464343987437082542491829185126229392975778092528119065222392611001140909976746748335625653970778755034832500526843537738113748900563367800878656043338366757766816306532225050350132362764283412515922749795151536175907210011044248424744323543928862387932342944459077226650440062591402695546903603640259172565359805785146818034387692795760378031797024016378047280333666538053883682072867497704169362671115287040162250346049558582171243264157118560345326834058228519022739162882710857867588595873429807955265018450641403828833125133691353924428230082913763695880034005679542691753201380107933248638398501536273484582594090353320199639645100976809248079967243573019171066669886265462608643768149778234694390450049605033357190683957061683456423170036871788221183142544573922110654410990989506389026985375174890147688509315603981502016323066738367071475707950333641426631026608985999402606280677123010863667961158280985794374368701791825138885865343228508985622717520153104081275289598687687551272600702903981725628905909679422699697139679735276732819802552118964119050141123447743580606240521464812165839367906119037819172192222830103342810813155795420541307258153346060766925999337864400642585884478132672948524390180115735803217205933358135185942813109570732626212032585951323131691830675468057343064057640582516900759159669144764025564137633727640219829087644870479767973070125656683863291258323920450066196201597608949767139391192822605420341958611325572032727909241761899355079834331756579508271573777056044130822111488176236535064437794462186713014981046027039418557974142302772847257393594157720582150273999044527162426231955161975660108147390882566657186331587898360529888663896789396998335430600024419510784562233477595008547636945145124780878384034976112235206305140962643900342783354911238632150468595429910586383463472581706611516850309487683207552058280373004264311890581716674993781960663612762481808359372403465810914022445270964153110886869169814145541333832924350121265689015190458875746468211250673435202852677911977403123958552198292579490515988930739866277056415872000365348852009960512390678361903378010424881074832829143908385400611899067496771149075276519552429655220523213032798970027006787389053187226750710583428483834961938327880411910967298051798884172740966364767751880138408164363885326756621750611335768635338117461734628238977265168246893204251787284294563295797679667452837298037527621901986763782728318389769873524714345790831559776622605904600252270408176437512769765329870442433983373045109141548332092114831930315767531750087702530235814148151062207454372360845177743258717757512988030739286534568086842289779327727596501163265055408926874039323655482019775440628214655449405932983413195238301120248115078297930515005766062675153543337075463513204987137277845631692772928863545637735942618758022553388932561184365593419786541445165631120128506972240653717628304851344688680263822277099647451164266087532626814654038322209986148231191759338610782771335494384230801765361964942761430165897547792486879413160364955630096694369863601567332087762607854253667286640557607811320050367796156726720723620628696897230318010235519543789744357791568562400403077715052742072922025238862737187326643645478212394526121953636615780132141946578500829254876748725748601917846542146623237585722700200525827381705427549561726178164571417147463034696439642523487237138644659781954329301638216758269836170642706056008003648271084645501597427149433737971704450837556465487626322561545564744363370194986981732648435415814119727435483242210899430329136528433745933008344796900684379269379720268730801888721128822557119410586257970075609662881064982203893089558305013024773283076453644119282756733814205239911064557794143674412752038760193812013761207809643650867148303089002898855450957192099492622185250591901097288808738114804605891092927282680061935555939456053776288835940071292109542537247351536618300194476878574374938353612223378508113713802310918095927550633265436116843470992192360161247108187920504585468679137139017611867413933503210527100819284000155429972413118465469065166830339033807026929529686722037492541850880942906251464647237982894640366716742387469938153367159253998622440938191047821006620621083738550727413191021977961331321455798744403834123223330159427913226990774333618669361724227508541535980633690874893813737550276424535460154322814392659577430405196375682406929243421948963572065388015578765596272164404142510956968545363621250899444869262963275291975492081741566116909520714247378065281658219505393471838077051711284358492435303312439961127834320981100752797990401221835191669264043845095386726062400491609919955693604884312871826785524407565811140401016147512798991888545694499869994893729198522177142765209304811686140366474284649256742164147446327960226790036050505813643259049308785753295642201047683508001277324932099604367779041951844871518855153133436704184984208979796710514242789166594583065879606459074032105907647318907337427818549424189570019539468087190166886717905022185196282506428274311664026718656112728840496803018541747271901347380365636306029882458878729937576858897602235949249046592561233121231540356811472936990816867229115715145617883724172380025916650124186817974095859660139220125944584093200186600529509624516913409365678857542114059120723803689010367518145185738772448003015947561103474812185819144547773166140685219215868358286179850071099480689747959765564408668442750441724977824762720652931335457414234378210521497239255230994261246327802068211218968965324707616468582534777547706743251924926062163415439454857064562532425955544414287773542323088277409533553344841848312677472825107253855077831142480075284781924293072385327181359422552796505865202125694050855367712699389665582191723805249168701446440651314071461918955166824374089079547923210325707149702573321549724980837877691726224309223561075708840763123831058406852006146397755558222480661028158315436950804177450886099489070532085032591720269688423073292339034416818410542865314141992214001676217646113033290455129646450805875484468166966403050451945723552873154801818995886708374928967192791087539810974503230127287847430107491963909611037099761977404871339962663396415247442498056278230711466580162155887870266968927686329168556444282867231639392696123091536756460829558116508741338011326429824848158084825653233933767421377523781724070267797603988829357625822214283071211044404595455291837776199038193611007871341762746533002198662284403192544119378449959326489977507531811086596952603890776132385422520529527934795916523380016604445734790516924274323037393224624911709193847418818415327354168296247078893326332858826759687523580033556478253038382424321870164428184172214490522666609197209466116189279936412165955627746865187588778555162704898617243401442720483243515977595349768759742647625495823576442912876626925403575559328575325301322981643739742193441577383964083061259188412473566966640381371475048064315194027822839271132434003562722085628849380995987654212830885419153662623109179897176539328979356096280325842775222878943917789383908350193045165805758105424853524735471013968363635936184653988942846060201498143818314920983280428960108108319945878325938632346091334077423985175032972106525048436902351462026156723807367369561453020842813157493803519264045961179020418740601473228592344565687858770654474122932016146672330519703986456281242245456354470836218226827871665161286426118974450890230602495083907472141129196366170180991823979086345820672295469531543922824339089447252408075596180701779601112542927387314796887969071606640820776271065138183329044135308724963439972075463698721667456039015241291984340388403712921494907063542079312639005317619234350770958504402081396602750772770814774298342615855593965849051566436326602116838605598453731347058805724472228934677443681106774842995731326759721709336327331716034652219461015893424218752812153442881383957254235007280673915638473067522722921841156434178482004282335470777894304295815903379485473648997115905091065020146860963986934968449560956254732148068074633718926563269818445435871205419972664893344379662656203916638400056811907328825162386867494007707163939696509362964628247707965967397701401889673542126647402364635780693005606845303148303335606585527313764321834408203240482413880416729329866585875918274058727262250936878849924335113148081428286816246410712293237830004254769549955301043946727538856156393736014825138816255186137527218556772254498724605561570776060693496599075578780666546928909331944168131743901128773709658494432052290833686192617016575469281100705757451495097638582961493659232573837747340510656722938860396685519197664404983785242583238160155867671546360110377528199140838463165825980583246984547076345645475717962959896600035760804853181406838546733082590374642013727440076231277316550884081182958275857509025617561727327306240786985851413297032368391320928702522548075472450324054457268750903326175055269035589103085424690989498821143354329776918162217811243724154627798908279317853930294593669827676059451234218622474277360523970810727448086329645388992129829224209884501551267883635176324976421680380826127873973950398132049443981469945438434647651602674984552099113666749824428336103156871360895607045459394856047438305477988975752526468240285519464741365650382164422622972523028722548438454811550252159094950558424912480969620356492667070589481526873290336238405434809226830235627010780135241436193068947293684149715277429347203219645647652010022084432105237589365343163086560299217129693796036921206273711081950392417892616214929714785924654411780187459719324092444838739431626663768751115659399423721919217585578781303949431411607261884530936806334673928989828988946061344044419286023996018781240864246019165310971245958462212033657409495419908194328601338632724614299379467465062349815827756829008900460283118406576552064039428203747834057093947620228099990190729209044431501820209148332624955399168846910082248300176109053723967232085686729349214111746054871155564391386359117358727738163302940787173109548294557522312921284256254863680154759296439158251422423549104440237915978181882157615525323978180516725810185025773587305590374116718632329440237833691559668603701749003585188757440110796938917624878259048844787321818231937594520752813743554614619545449077228244848566580299772490069604576922463096207932142082889664990692037622948267943649732830594668084894109647107891801573711826048091253052275690946878191709617473271581050702795312299701045444940529412605816916995435259321833227498861786311400501336488418245359299915668858913670849742158895636810656659690499368538117749862260723272423464590408151033780873034531687385281242482607127036222908559689906666324151988538901791606854070811587712759183350371133946300483324950008289704523949267219759174050055012488454553763349766069553114925172854483867129816127958520274991382044578015608505258193858721846242133085622489120993585332519853325521839382647786776818459767839712843298765172803697451574303520339201871156461717888753125316831193191038648993705491728388280996027141914522455522332973144981901002378585046297535009418016570051692726424756437652410530918046946607708617656489949220165582606001329132905599031415565857824974850727820654127124639544437339567678307882616874870527784195426650276291986058913148935677838859530671377382989499860419661923927708891260461285780963845441677172006372563445021603405794305201243059527996632409430002501121259187905168501862593205401143697898622476942578312139217475568701939181723853938724628313305930210711048571714535259713313419142477864163262847223796769125562219432661087103248859749910405582542862304887468852024541370355401233429401910438730450757019855564382714208700182627797995256869636443368580307611572967950291502444142503607790557864417825571936288991309601898272513530561909598488052642920941091582410540413112789551273896421729431894068437020790940654777319528000356598784779923628399535676526799515348658376454111501962750304855503598106094316738501372462685609039135807518785364467534486089087940556785695298061922347668829834571450129592264925567557204875954235023090557696329139127817730053945230398914506345344826725726966116059283289228557803478074137169947573532747383006170905183725784297270353196731990873000900199993048202866699983024917337862547195165917633495722874102297235446784782338456145074488587385036204233028378861321549605981441153802931175945090250443359278601979087304920200966958144200201535825526583444116989703403000138329059762835452393282130269637204625066778378531487931813529888167685507325493422593213743802411430675571058081143613341625727318228269844781915951117169680973379982344787060010225098141318305711053385594218660617334688643320334516875377702954756256316131748263718630847035198534356857012471293708315264475161457627912149334434426200065464307819828246683032930091639956995629516418613747004680309471179297056388653677693218497937661949267070082526715772304319435088862021828723809798329227302274768486519379342363755020556434496177867996337632531970810044458311119294037460413038298359032677625515853907676603074376381683966333646564783463820256599537163718803962395104027445323909026584231219933336933786442710958496623447696749594116833220651610446095929497057112610860437320647701826029540625411908641629189440896160405693771680479338099216510743188126433214771690647590920466355425494794962849727874699527927124692799301414828333663568179844278722690181857647245752400055267296914995460922773176592997496108213819968557539092473156973846765288688102165580120212210251522175372925742539816830835780107549626284970721250390512877466887186441939826408009602736953521184777468460121703432322628751624011305897139552411871849149804757102741192926794167924552007351629372140752663309910189620607876963439267025649194911476668116289739479349160076472311269421442090006863696060772625497319652578196564503593632682867516889308271062667118777577733981255503251395008038363089910623318566051974720190260866013809850231623281330627868420884010020114527540981070572456563188854004621977631301650182435311634346526768336532532948533643172589026969196263118946160024070948579720387443875040522414640543995106835341006495831918605576321934942807876625363733730244022557848166546678500963229481504928817513399323644663324777738797725749917930462936081964667962493450383773401670733903079747763981615157372549213907710236166053032920369560258207954290270160845625053891278256018075097775151396743802838672442814546308861622303145973986804773902715439472702570560517591237349456686440223765257365990227156608214282041555076297535592991932457201203120182611078178791715158119497074820283100249942477351278616532628787170950478016947943707702700171065768281982200747873377338383873465219083887904889194895123496441040985029880144721488419078435088491522551379703221639647011087119739707939652061735039942019068410676801689762419554659087377363578423402873890774844586254800903925973529296431590454232051827123955780303492262841156886745963845570176193366236929634587509131347000411282597634950817305171288359242277950671339666175909068546872821506287191243411640820852891389182771009091400787884588574494143469232502931710507458169687255652785246013290996224366373588966664939718202750089264587286996288552904140432700735152771525428959267842846409528587407433936686645317811175992312209922731964499553417936831455209228391647987243316651146696527754339119729112536687790506481156336305608770250867510695272506675118585076785915184754949366949312393761786274123511837215419762459966234208524149705671574512992132007408931351495672470459374447074797249344052159485539248715249120789701508495236029233291463994431793418729264004855945110551974552396730190945928797406218810722375898538807444156457493165647557729149791414238176831728938286034205458355189807701319608479798818856525903463534933837303672543149792473043867936905446225850939674083067432725779713254941994216872729520272388071451902262927033056906203666156986384743479939531133576411096665749229876057303142404471467605855192038196561232050327563608077825863774505113029005941938621781501205697089692236352598181761353771625946604680696929971012450226084867740741327719826279996964328089093410867278520640511628589652284788827124692239714640733894066301911297046548093016373037330767148178551985702473022162994796272560716167183789484860608622267460835432958708458677523493598332678139708475985458783596450707801711016952733117466197273860307152111064853796972376199675099518543180094864133194110759278288623078404358572826731877286291911569292405205589014817408838603560271459243149887688632220254257103748515817323382749635182823439550284894058493771562085079762879380267750512791178035435424363267281788411619683763970109877491515005334084404977980608676067829129340521961899624163901712977763182185465771710768052246450872532927779635237636675125866780240671666033780083305319687906292901364011973845244540873814616641290008134136901668328581660516048487524852942616810914113650865550708976343706128350061061604798306659469169847607580602380473299475388218574020771025768753594622709689665853398275506441191479159613257534690445685428400060738386025959035401876849986428364825440156064046061427648458053250652845229054517497988968720403567875162543759634611802980471450555999689559845273292159191903805168243863454550425409033370682113220212202865633969821725348656179201992525591588582832067502574889016484202305048386921369799496629790145053379097981341693067885332205296304407677966579740064760701651534711519678733266010299628722801272011466458821716292588514170477125490208029206872092325230936553084312534191086539378512639080244099715554331185686515364590755588315142909085361032476045245236041266697693498022039426083704274262535610268744338936944118299782207029006623722669871964815148933140928896984172505984714415313141594714297440629588215087289508514559667321530647734984842845623655905967114677031451710268102702314475872855163936910785773193939261943142274530329973754969684982765771085936585892963129607020903431723888056959238506057050496051337438067335943539015833615944353091755300316863653547333495822959388027799336595879206035765826614720293962175083259774930662719571030530805984496299598246389017314656502361017567307499000920381407056074696275948842944451159502240052204116429260508597971608515164065819840375583077709136494418437951880083016104980911827220814784371822568628954839989738954922744992968931914640281157463397907788288274544420977426266851114153151112478538871700179609673573588328990521975938195649412459920410763884628524429708740019977088245938468431728218399174235646842779875194480771907980152131393115817862657849633181763716245315762733755570169445737340268740708894760263549309450822013339575486942533534306771667176982722989709868121766933100542206706902231719140218037703954336404645931046831813041157523964663936982393570791485577071594690417642299212839935380687774446735256611287069707381430770263202107119607495016855937051028937379644622588228933559187894358848461770737162211490782458372463987461652637874827501253905394451439742909563605141832715716364213912526639056526542627758401159642628607198326664674012975402870178121782560100609893524974479435844234290553997188193848484890165857184064881015515911824221837698777469101575464928222685571971482547718223319518829207711304806646855979346667764491106151035538180732716949052163453046675545945180556252130489944595940287341287626182553838571875370585687433921721464360782736984734031004530117043295252642535415152232655017626275918603648594042645082729438513615464284801080412708608417657434862421526347684586640522649904671112514986597887752866328882319537065230032972525531062198154922860149112981584739377804086070739963979166965586087964236013449360343504028261044422734747833015188314535978430218838788224970279723719657976188779014718543706280368889007135046145461713349179886498935462021217752775948322110594578742424483211236439071478197895719604578745170321755483745501383591922384158661047636758635167481936132287820346248840285158868575845707808296469570666582280617055464772195773385759817064222713317563150719978470212325605309390551981566757738335848850924652982162753998963424412673021684207434033293600835653632169831922522849416665064429258995077741248382925935248666018879801797938663406989737973612707285131743414261080507812054956897341349197272394531216735763706097952813825388103111645503840722760400935463787593766805005233804156679843025090520454933445755018511393570342496641141819461774905992047782602920914237956928295776584775107699137789917048805370370097631507784102322605481297024847554373825998709765671276578182955005535803044053129131107994329905566742816476615125310165030138821719911778353950833886225755720053465444662338321355416171502687361876040788040404062639224420752606655315042487905442759414834787248100989347214217904342901941362733526372712903470535816458748210424393514604277125798245212929494410848899098143878482052856774716212394476318460556843869375957369366847527925718821666784811438445980260837170695159663356811545674476550820564641129660502020697600206673891418778558927096002455081531643516504924985928361656248192637849124379512477015975932022003701125941597311650127268746717471753174880278590775208765476001639849302285157936891961480482892872595075972302762618549040686434857250590721030183270257035944489606215229241530010003665796908668826411641920773103737224072520785800169991381422086810965594624292303043180838984587431746240399441136152724966710069325387480588449214012668993816810780255561389982478067101875637316379028172033548977327811223374574188362924244899747608615879780587395567606162330761481951300940408625440740246029142769456097052435402305818102627664709369471118231042133885747034557379593473309809112842524659081135027139738013357173524392139049762336953982353136309139414863825291619000422551914565810205882748775247272346713255778477697466314064742033262602756841234544941998394336767543532908935227496312229450564744353417258818856059486087166874605113220170811018974161724268105650061823577124508178401173815256809441024816188108063731312397908621700668677671018753261675001273514800812089434467358766374536430561212803628855712739179304400270556195584541316560468982501953576935103640007659436975534911643429963901750653741866679752147241713282191624726109413446845341583432760400909667800413210559024133537525744898125284017431572503301541450360151130182609183313413148800668324876195638300008903714519471154117580045600155634499570279340787432538944614544308580859856032840309440357857884125944171968260824351258917774863318516741111901695619760262708998232176606771750331176129807269319006462957393566903185438890308304497376132523465888973435012162350880595282587763560563239401711756571800937379271552858670677330325895511277538591213139616416823392561333786627150048982036667637757171431345220034057364790384120784797963354136603499691291835870595711151602546140048177298097902787700019140879338536221961824681112515281170057301177951784495350988203912872371497218636491576044575109352376979943885914277974378498120513002893464925477079668972437872826068529922095812799320160281057151187040441398335260242854759152954040995170505162706246128038619275029685275700689401033709099791973053269404559188813376253059552916722026731027028363399591405626454888975603127559758856543649328174490786901490831528628131138496710159133632306220754068591931701962895540129761574355368877988907865496434009269579621049401383904043518282452299131324380239354046663538635788700638682605884001211309131283706900628079576611571353583767250278466880010760460742289747136585286007884280334722208551450652118140176743582748432236950870398100778567081352709913213226735970444619928602800436613652569380439098184536219103620376676319622865855078169419402281394569682869481009678834457648319253556536572561835680471988888936388343749782225366879423293985836535200237691370440081249955846752628176428934564772870583458886863259613248905965309085389982585075513123287736234273572462368717491473839241992870319391937257142528477761696543252875399732899049413862163363790195963221965054722188808118610683785460218113655430404535925407243970752115721513985015845570916381097729374724733225169942009029241001129010940108397646009022271090282142494080862632249577526426893347070947996412732125775222581110169015562993315143553814585901243166197370146709333998872131642652155004875216186049906943702213687953794018367043250081371733750171637783283486116672544132659938666919073066872413218713775466271435235038045141025582354460410608551570578967446531471140302332340925389086306189833231290079655239978300468104804212225638660795197516278304379105793652039784330526828286890031862552211703523488284732797749901378481446517101944574517634879373154762229529811852937763958044814121075101505954606858345192334904432615710452648783792871399081698117786542609178250822750534477854100478725442638393609639378258240794295786256437283045956600596850026382965620559949409242232500482912999763197838189794952225150483542206452167254571744872530915842980734323282504616401390842772419673284590178656440578324854735897261376992074206318272389436967318505665988106094531461388208522460316962287821564014482789251466107980936450192361962079967882783035352165278810362141456411037249028783647382531950862128152362655398710838140613379682576231014807603116490922234258579269132669465441721420724209320046910321563384096524135994240612010023545072961702907040431434584008510131343362224843256575792803174360611711286907476432372796126627283121846153778985636322319787548225807988326528222079488547175070470851433958095681257581774899115904572102904454977483418835733964666794919912555259068028018875266521655580990107210667965275340821260839047270115071139554637730634076238781698007547218286092566014350404122230082613373583016407862012064955996195167900498884532093590999106054543453000243286026112174349931032232562355191160211819598334374722329333789560756838051317829851814587224319261634043069108162371957218157507739972204540028356511282793907047633050429521536888776848984641962845285874424607834985049195440188783832699935698224254124688281559599103620063726561554983536951345631574850828783426153571697493384093328354839399057977466987253920530296841519979582510486834250804953373725072780896916075114468558443733497349117518087846914549474011540728613120312693655755589473375162609717903529193541721191838132190685251264594051029600034486209576332652494154202198784036763579787704823166008289759841720326206022735350947726697231140769940197409147464155493251132698919343070422353327608308317994975918443690749439802684485269607281690166924584461027050816504089021480772377133736728782782747666988787173373452398849556037377040507837356846690061914898911841925773444775972401103487705595516289295574211698620499556627992817894164187419154132997377329954434678993750336147230239585613389132677944221580249612729063835176629271972733850095461700706117356880491366579470416090548501934510765977863321471698487220046719299168978806745401323746952426294204168612678433910874773270536189746916134525955708959170582719327341299101693515753312965646927395112722014255841081174333779552843180843880398918176124545932910060041445244956474717855296338520307392748447305025201867172628314221238498825501633600371651189064160243013110912285641584469621546881436986387951871130678949406622029006312573959022924734994298123544333153559976896065630771705978606726785389460639037476286057253567345114700109039628416359736308720173654626127396074219176872906314843570576640211815746448316228056600448078608541353964252919009614058970101425294480830473079420678247064944370387555608876341696727446793391924884592969769007891354488512655401623179617247192920985434540031400442126380101249511128163361186165381864114392181107105012805609987650259367177375110809756112697945194921529067974402221701223360676997101026403879060555616385967913310258874843382607241787728414499775653477733162051589549390775281793161324629312939681054036404629443876929891397222499942910895916392332947748569464472153026063865444647067632058381758240013794845830543649144145937410498875278894017702246551027104864084590114338404316338637307744484231511982467583662455304817823061749174515868318136672648386050050244478930221748054203784069994859356783948507560326328020277077068811587753365232476234682061236855924289004309648474353937449988106939257611367382967374525986987432084245093760717584140114804454625497593822465838093420324003797942059382677917409584419138862022573261709296208961752974346861631566622792382305409020366701177184909622957528449173459681139464054096501540375567278900786738566063013293618044012329537040593969088705018972646472534061459337121846938878182896131589481213537391912040230458021962158345575049449497044552177890778726403787988319863580294673750363161048909694315021727636893074259836924144084186042998313722922036382823467716960409499572766424734022196374846911836171455416589728107803533473280684035513085731571114535391819981446222047864064944717120776544948705503985164970528154061024393119052051894287625204235235299109733750538402887069118300887432286496191847041069722328720422161900563977072863218959182406297765905443949358368752191886365202560486509225077508028497929634807475415878917368596744316141067488296058559843469745114361937581019700738789786419848053145669503023361773720810012795385679875767723095140118215471801764112111308882562210347896856936966893814074738029691790434771361955605266326664355213559091776119254962085185430669728490367691398059476375496534286386004797174647907420591601922323174884173730669157984691489839702670887247167711361058387451460367176143649372098246125982110478754412684945380015007368756424886546984771484397048236986096247344154778662940764672496967357339599581602412041133954838323117339621567761060809184789475076384923454528547896102904985833512599912475915994232566299177103139803067034437642019456053904523213623416924198962085553797480315322376722292554602453825833683803104789509363823776871660916658853800741699421365014985255822510710311638781378746751614562635786592805489071256932567098833482112538434903666418812405729485280700240747047784774987373176750034223775160231222603122106055459203542019809882376480290096726323208632185813993110982113242646124638360546897261154869766733506201593647045759791030358843855578625178287416735097039302855878389574881113225753237283140152451535037916950356756427497180937486774443457120207904869572786934584980409273559253063409133978050318203139748823120389336540087835540211695332505567141987157622036516256500740693711803997697318673390024662156605675593495183920432931547134496397874200993787127936927780754428037874482837151156954079042130682004851166250467900228108065551212500530100271124567514435638281031819792115767545086188316902352128238656701660015840383838353993568726291254939765785425459077135322718758860108309985520408263161448165551892750627099757086309930006992101981665040471951241532604889865524416019979669151379271089704090148552842316977829644111850925760038085507890915493353493440736483128256534284621366514673037420321550880338747140560153924560142864258814633442295348249812035842885708336356015536000907934827377947924169674805239538174700092453576277119703180016136024980391106510601233180806499236959937333882902322489134053997520030243737890256903393721528232755591189425396009738717704657879639303770006820417575271289631289190288691117741406074520109179506231307364628043872873727601803505698092192339086138875288381802820107543654587877562135120532254634508813123012468355064364670106478196855409286092133928854923787943140796545879122766124407581479426701270429851621301648400616129270638681806075724744361069641688171389061434999262658211005520425969278223639168436677210883958954513437875253466357370146828396769102911463031778788257317870103343113552349817784400281135991135063057156290789752273977085389853359190923414944331017957624847647605205041970623782460869512364454903626311989441766685855107595967186284941435153918086214015695257835168186899098703681484347973313756498256117024753576215840104833638768031869060163985736779770773094273541077553287461497606886789956775724878255835753785342813600017815479697168240511805795992292976274803706796033665938124961559873856882065227825251157607620058220107974309900939254110139589913802103998737137910094476410354286741679268516678045033714537143047230432214811270893280644494791576325007228657208513971423841556516982960625975970368950295152811303026985227134045250982124415079463952289592989014133911986482715280886080735887178140030572523206596832867486285165368969321986948586891460934051984711110860585622513750310862767051777958116245108375433357412679356705619218572597466870692980765895851012876874851985053704835296251311763050328868882049652297068775808400246927003969159946445422254557000081061194940217436790448544816133159441072976302363957504261423879367071261775496404444400782817299267800534153633515228681232791371112255120868444768104597854553351962349319379507162299015078047087798142923471674258648808115720070936320028250825457841405472672579575134394088269267329293374028318119851639362039774809301048057868969435390277478931371665743171275922195292555824401055915314721789807647435014139166441819931708930203225384645055554685531252619361319764887366739064582991631805572895693991016853920580586191029548051252617091311402844779996686681593744041293530116446306753653526932720480838341378747783467774326282902132901605133663633932852948871372658043970494345268110147728143970340277742705714214951984344127040316026832133055137985883804027401395219395650941407918273416701299659361869442065013734161221252933192363362993025238197522422497995676642822409269801985228937872058942227542526960400021995624398028010699399617284604169407144301816134581027989407993623753019406253527647514118480750368694028473504432091692977844541154849524249049475553486542342864415364009122264769536492859990439798711526688899733217815522035337175076117234566131876001230139842719222275806533748838038152297314617572333704689786336203737432895938493429654818699080354737954324562732391883881660827792332245938891071499962811017526725635553741615522631161191607338509426113552664363211623484311925295959887938376562873467781281360271098109460042872154402541058807999708712344751572322716095747358365885514608700178711390854646093887075659680515744709405260243684129556208214986767008946494065362895906506308421039307534396138363240390114290821617845851346490479525869414019312582983976185404821720994150322425348803920188687174997941339106846460002090126382395494744125131379697592375786481027930997741651972193054355093386938274917216946638858239151903729198180777871531832058920702355724615313921308239503666058983835397227490143807893258818667323684746199761259633177002507859990953225879351044209706504514609267049531578078810104919344086502079176936703557497102900236115316724392766635644397225314118217848930221074071102782575090742836923206714646005098589621886964966980695266672154223234825185838623287559432303970019952922088190937289866552005581709385671754601669132300120429252436175966986616487284024568518750520866235504923444840840163837927733024024436707547854838388829263703695336034682833979030288626436391585964552218396293302010239959244134423358459865303686244588619371073778784984694622457014045467250791830112107179981248996779913293124458028172310574825704033556317126841915302882297414878138372312543490983626807834057005410801800631158457526963013406440169169591954420523294944552927917929250393006113557285677596313194702992945738316714040726543328133087457541429732618882045435005036680534566210048061067499059236089780561722538821942921631387070097576445244756306559896831436972797687993662898203558118737186618286515748339827783671558316292954973457614298832145227248532281190554445836231102328390489945421437425632834524964501546346992095317863880585062632916220805590206882448582584812441232735046803568565915827671322493503983521003431887241303759988319218046035886897883605982265531913830948540972580219486108567756132599019005141997542677228108756016303259500928995034615043348287977737931389016704589905982716813882236035139192963214625262134216978906771171471032346831632725963254891300762998544586473296645951525573128472577555813617585173634596841463400339025861569382484743130153838347092507413044305963806805756062736755103891627995142700621509649888473580045177283327110496556728373207891208089844038031843068458901314365776508215936970878569534222274894298053119336761907092701952138179158574492624897125966662533287740986676265486666031463554536593776413556845997743005044621425518036228984768472835292600182816530512399472666458112642017998479394895044452446167485467814923122602688072741845778808199344701918860207969258988087467537187248822702754093131621474314087216598925364234117266140185392652290870684643407141323143921010383993604824574659990926593687901189404386992265348833708616281991036234100175802575112059961653313009613053280971311338242552162288484629579983735915619235105154431027025320343208290628998667435945770089854368587436680136877844104340181495448439350918959570124187386930155390562545804859545684544977140952252629597756821135146474870441145310836061226613367189351302043085214401407010639752040363512167412387272808896989523022716774903995089012358681555141536114050419939572102453783021882236439603097342954016997443920675073243070510289843831402509181018652766913709630369615913868092412364196921608419744598327951183413633253835534004301847578172765498471793640611777879585590725482822155885893649427322845501965715243674239610096224660529453382171606794531436097832881187036801434174389236519379864417241949493005240103786124641082293389658709899678825373521561053229683608679516377307072454498722629224842905687740716988408135848103166822391134495340380444168938653001444736008624070025092500180440078132031181577167504115924968521363300784011132465026679766512375787570719195280252722960000092295458493490151144753466217412354353625614934389722522970448828649503731576623371179961347670304599752363503907857605199244801089223916048325620761556112392789857799222116838643748792376460746919281136438174020845928841135258780124104155250838104359734642868514307903470055657883288509609428771012509925272632663510828352990341093137180018702218685570691933811947495895118316187059795102378811830361729103957857523620493105186030231551581932544663400213161262326348101087243609815073737702179533068412848295133550204567706040131803947784552360494889856839736308843384531967710041209139060288038357475019156175077038157779453814612719377684054873553469679981733538483405331089078899771160333381285603114099052797958064583703554651335169158407412720575053743997201835985020789823525247557351599739956798529872459419442669363530515460976111450546636728499956831758162742849517159139431266375876305465884101187698402382829217779422496078707305405161359351449569476963188425631315682260241207553788915829923319322530640516582420023966707603675828388983656118688486727828851095888685634995396285124952684210886483576165785579674424691908720556995559676125640686734177284054385325163410090134922144677469585782014772326156640987538009577116542214418572915453273850665467748538445784546589023242041241080980587132771678488780827648110518992520902671147139253304448755547589746190092531951374354406718620545926930804264230263386366852163229900032035868086515687105037176114839829713267014217377410691119488829597018467248772739321016800617770160483299017510859025853493517000798563306293855367669722823545807736742920757391828126394755863705354853648139841441995027529139273050216999552459506502761187451055814272466435712533636296730458078077505702295855826117500563713176785156023941817447595828035616545938505495495976586003927054778953417518789199601088912675849500205747759599920449447863596850485080497485732779155465816283178139645384171000057370562342753538270077105080250664068553526669724903978584818437395599369491458124249977388872886947197952377126599275875248886548638213154542686911928931595859834596728976164565869467433497033542874977896873900169318717295803871305024672025993426025193455866875011107483084015486312411360747403234900242220222888316233559745303972951288505956664643279801273192104910269556033017347554761309204238030230035539238744031461888372964525109622099658268251393570387053352652693240914460297849795511040452782211496866018656153179161209088679254942179531657366498909558500504303143236306587429984921838428574611478776745243640293919359339207229966538454640728600520164684885491678624836224048462506591861046654623484835043937996805146366134650451590505128912123621145732274770253747840854097225948614177876905831021974898041614241935233280158414067794672760923752406627273222082070369503389129826353661577483584677120725486806674036923640730888359890655574087443327602925845436456143877322031779053034269796718420552983617764854389608593442217570714024142598802591033360004593170384567055551582889392334715636297326090723481484173862891450430861589018282401252485947460565117979204271405896078348976083089926331360009609316948818900490609128212375813940931646817429816302059630755030607487811955182502219692464558643160935530981649901505321800693119187763430453601783829184881099507897189811864280458236920128923059215430703691009340094476358071113296533687946614408673677643632506654299175151253200887075064467420878175947751718164368380224026182838620771575531884074012657199580592584286316327963345793944995706685203534962003968198348726230586601521933551832753368973138655111856130307143620410003929414868815449560044560849416677794193847947581953019193989307876414753910317443972606299296222769517002835963541267192313561508334016748734306245958277843072683327645501820885252633342850468906689901770174542969189939166695832817129260119224433279873455812295851253681210123116312793634254006243757585353389901139082430167297502386506381926268903440782014744658056076977845628176169915482006689508573780669712261198029653947608563486620519835007254856291893781809678998282711436718611728133980756413619877407415643771989050724808870500525598742789496278175457398461660025640302690182019300478856424536834216973984939768052487546245947058497985494674896157280960695639183114763556571309065832432452738110535476272191318991218573060396967217341082585075478328674683855032188993665931606136733889989838085618359447326344344061072362175812842521555151712097874714554389744626926102493286450529744775305840637032139451895735791117655051562149191374184931635499206579397734154715487618281670179542186532986564155897385021852801563495343245391794873936714592068650860307109642249592659079148791769584763758075091006921015226989555466580397401549382968030583052984979799259036860067841774298271095534540897361753272532258962862833947929889739041139872366761756468383423164355332016761829684094684016908092284029130958226959075895616287384773214731123424204502077884472007154787009611365644341821581965718489185606428159380005834957299471607123137207545965953301976924758312027143686609762508229877721409338253499159629631817464139753244193467295608146769800023213153281072378054926762989648024882147834115297951742483511209833987090368810638620309463522281131568039830133021119523100793597971530216570806761485725407690682306157079906498507123250511050882772825335894986039123551560292440912927774600855814386637103367032532530639177511922123484829295448165202484903197959975132095554094377689811431909628997432928614767906021583956034516961044019894392252699541803605829794534348516807187934069674420495721553690848463382393673779514157175054143693251028604551019448625475974113039128367841647983871768160409875968475108098263493506152424442844717788068074369865347474942055720430775738376692401625507485691189460266009608250856847472512574229640556847813633868769611271047101550010433869796926511241605954708229188434933238892684424110753072096756524771067810702208628315647483097837824708541660779216154313412958544142425644159958575235563211396825326739148762685890611703494424933958991740060756548812684242064079947109971404060832209350588815844638956837106369732088325578912399591606898197896029182554785213781827838811466099473623779473640831799643467256695916405146552533417722254764443609900995722995115613491753456014742851003313344167345638294465901356541076538676877628843453396125294379821622768934642818732978208055137352857996718769263009273057608826871585268189656766962249388683651862220878210847592688253911739020968382271589856676844311299307400806954566108402709043201778709341353235015127763473414789271097415224750653395955422818687998766366877409328748503875986042423320345275928425930234662854215199988248255928483954841979163957163398940268729018432385336457532722303844875274509600865832568766059197757018089119050681151745438169075871206624619744641686343158530245355711684004258852957779831803468399964232145591368152287234961869573221620111720106707346551319218978005515692124390413073827354421799261712896827279938720031933897628439756228048213205763404564159315548067182665868721975957235700456394166736942547859203998187867331607403211032250953957672062867740913965582504684171610175504782166310780828354739562931699730895682464202353765004057398810727786478073111575525651494840595261319214501801793694055771816966868759230031791557784287979004712505044974619815156354233144155735571346963045767843128971662557486315805962772054849150405171309447844090656089150999047600888250808162158371793741949479901951905344701207781548406962917926446800408140511674368574855535116370519033862220973413867766811665468551001616059960311492277202708110420740703121745059331093189680145008837048379186837419627066897436030160808873647833724289858592359877313694405752102052008035664190778300669380063472668360863566367484352912323897509690035047082789599826284494798875829366563034239721027755113588846103153454935856400958679377495304942865079579480564339562065862364174282816608435471869216993982766980189921648049728560636795828046233644188059477824669998539201027575436889860627239234601247703014560019319950231403999177811796572559144460634039696529580494392041295374370068632354780248218145545225814070547312059562664703415767575452098196139373503539033174875843257281126754106233870444673919458222651508048528978128688606970653277992513966506541101910389388102682461476962308014930618049855611717699014188776380783310994412285284548040986896784739956188747410502361923268788043019445123826379498134427037882918406267802911719696286435000967481437821257279647153959998133303076477140470246655286107056383649880369001887681418725307919936102279342615505904757144541277963906198988544011205751578067595883723911914799982884469185600591604635662568810314976523964115789038783030038013674052562583871989145389371992575644164404432085944311770879525127558854198122836477419920101864349908503802449330001890883198964238514445179540572509374847931726233406509941489670068925095946892837686870051452908606137292559065851629802252452496600501699755370910956005093922859465009794744675064293757242581311190013618200481673179841500735368439345038215357963650278800732591235917338268097829809170047717848015417310776936280789411136096798677195056219636005480032349178984190530790557902739439457100272080241572208188025132460810869211607011997304316580843785395462875922988905876634426103600482925023508317519584106454599032635280308436126013209361777793102340898384830174459020562083448103551390698143371068431514676737791431916412335116480588189964736425626237070578341006884604349063309641110025358502924125776742258617636171511930445218942207845496978697536039066864308110445019992806988652133355596138914439354137320454132995997548314520615589559241716647536742998002923792702205314489728599962605328505373987105521226618994762289100905927135263551589950611825466345557427251845723818066906288137231297170785150291452947859099109636915458035373421044219600794770303883950436101725903667437275722543814320680276044266577957806112830649238109584419600992203054268889315976070174930858906729738479895558575982765979788802817083002479117661141382012183803301028843641496600774125888457926157813801891400631240470290019016644981628982172861337741731923431618090106200439488118632317136342641757262386112046588381247411873649458680742153642248032370752318412091285340427053398788495954835588640652125106395192241606521194647959859765853226605507607461235979014720723318168120339366135761859381863986479901057461573190804019543697152146923065858570922909574925997085055065793232254818462264731701673784719792569858046096237261493639341787438093528819669763592739521611060538862933936680905565589137796522649755404760897167863476716887258638623077442193219816760175735557790420599590362535896829886370801302244690692314719119875433894763509552205322039775066010916438098757589931003177218292316077094013101334770553719597583680957828921807815778679559115296630733486256385219317022464715619002880605586859271885385779915928273972167543265597176036834789993018196164475414408327953025248120670796808361727195095542822132955109150866078316654225326432120299338872662774240899304096909537208099836387733330430572470247598907268339217626316936150318265254036961957096985334072541395870460897037448575170931892626333259077846103796632019786857575787447908591646199012382045658312788395334500162006518790579762999037693586849469765215086434085399356268592353962088199963290192969087182223069936024156999462438290396114643445837362359087282777933889518629619092815887470546304213958693868199701501918230638122574564338503643978510703134614832912883616097944152800342469138000624439794979463579448103509445365402955016755952538365811708628634388341896862146751477153554499134427884648397098110303119457875575378887447683196974622124597483965908059308438611361281328344270296398748983730552635823615438168232121152181256126075899988874065229500772628415824521077146410324184845621099459053507553539719332344110226871641418233160730720378515269212084895507319578283308480871203894583614934551210168703484734746279157209810176291009429759098823329102306165333793897434865716248020457289070242236677114373472205743594450489700731622069055245416417509577131751583230620238444247350964362848654944252187950046112352491632478219248133517076794242532316222236748805955865402199843465873179001632356925626978009869515974505948150245156160714677731707369346625373112845546188417640180023701394149097132266109720173591342160452599750472099065125438721494585489850413961234502303757857855544916899892702612103949169982455764792080556476799508256181156790632955715317531402672818958291852264114755996929104128836662277244731158296567293580656696264832189709070051971117243940103579172909014095450443022700339558205352002928229671958449575965071011342620268633613318124024615464441518897643781682674195097715926154566266275948254096402229387565219197112102291522114965163865433909122780012264937888727209662951490414841002376084033922904250369929136979194476298907080416330901698027905794091619125358549179336567399901496102961938663298989922920470652645950309359465997088847354270545326497828095970374396791584411930975798471537317669578060292844273224868994863350073985120067637484201272051742082497903116831030406773601852327358146396354593150155465369542472636256625928445908968641976070325075572293297847002975457381694356747314869922594135561557482023024447759674922919837755771253476753111583351777868984065636889021917474658855121874683257882144984688395982265210593761600347808670770050563297503128670139469603215059783195836332892452473731651706995246889185218921358612888336685092237018404217872393772029210438900143695354434955174849746334602326055726391203829187130303999233803201956699052236715809912371268923759348040019493836663327753859992713142160478336351439930594039732515561439371009144736461743856851741960756933910539147571130057185223582525441772133430537077511455382661777963155143022649666668192072750315438685802119574318932511703316055832288850108662342649703541887500816612301279452005055400520940033748227570880161762774589831879051326181089901557981675946525109359213367338867525434999391123487053960601635246802403664878940976980704149164285060062719044340126497159152687328205020303646322401223560847055656735845226487379081345882158104347684711304319253956492678185980974714332819022715889843648843469381894899464155307351854764839590896173546366202189616058318956217580497411055859293051193303522902889098511944376987941255508460707230617447577148465526870869620848546333589442413011053209643015205006001510214035152253416769628293041804817034035370706859413784158865354531025766688064266823647732508859391976051316298698060577829260972282462166928509896054237289775275653748889892877622967505080486656419189294274688859829660811924432859276620187495011647489629355091732979715789087316907355954538999060880610244945397453713956769581994337896276959177325280302831324679964036269631593155748230434220453799562643252169406827835904515215000654917853060859230905037754257568216633797701103170097984733969714945269085378596865259788028952834346641588043419198897519308145677496836572018643150974618182668530542991091523325251801267703992170684337632651605679812606166103848532872478615019284951759935125835524649225684537103716471403629612952528547843118353361240307002192648245338839322669702565460235823009841993054140263759267280980038681590745588913599098282093943818447055598287190249904289903800135183513958449769659262555759522791841708551612695648268614739326345993944964161660194424783854523076322140339023268843792879615874074715649895651730612648674277009578866926976556797201254240032532257386715543621734268077799109219228809316564787583095012571566654574582184101783456992942722518370652334372781673308883296496361865033141644341413361183547922298323765575503222051122305757992230838180351762829590751802935999237518268414109948482677840732209022573396078438224687602373210391545262546394718257324748132411158853061896573050777140810578552352798260982176735007401627756769672993317027998966815650428496419976853054781326914614337874198154952686302797164590317971955146660187080553083409635204821193890130376781983430735665916619513832084824616314332907684471316300569953085292746531878261862868204928120646615402555533883273630164818415058925324622073710017772668803740057899026259383673256985912140499733856669797490807964125002940538663454273099148380119119915442864701828929297292928514408682300145726200249660359796468410222687528447922042421386174769784735410689084957768337980304345678885017339405869961180276609985010359076576205311119471904056569218929628626205835021993625042317302050453946276328417193207144118137843169420462138383276035835770397076676310592188718903002234611178091427002878043460450176717599557381012508044723374203620667935797441078801514482148071173333947762026838633142985820132395265861601723521710391887572699158572625524475507045082962675392771571649110243359031713011335449405768152985683418331279310524073584643180301990483464723848751117773216261376878144714324697489025556145083246674151960675243440440955425256115388043512040341361050009885681539585333721491001086888830808644116794654937966382298153626888391527296435205379636045402339669442972834033510996653114859506866227635462606920018545709135876215677722662197928694852233731179511204510648030743107166051870009938680647134552915777171531069126942129977975292218026757646026549339984142253506283341108579865750790553764579730368293783829545360256586573128921996680964679159224092324547819790537044596356448922299892870590588922775779718857866702859088245303434396438685967343463377550787788692947864634523837489679684738178171856534631981327115491898633243767879961209866081832658857675640864657761917638624334644131183174482450879909697858763436867308054376155163622300669686841993680866213559904477619692368577275824962893255846351255716587164145389541054396219760598564317433819043751503530061236776164977189535024594537632222522921111566601049028108520571219918438873806116871378890892823396011850958557495499517099170454562720523087599766424621237583804583788545426940655671426769398982440812384034094196064649172888234053001721066808251556276055434456923925317986670540192351406128368134449091806134478432776686238678922546796001714998154822089848884688741558362785905973297543328620081624756764962541236419935429081330341835260416729672799722256642944563921626293537438398532926743550792476018485429534894491300840256433711286972350035884262942026057230872577125891311871814097089612396933159783769994506413814287114553175021621975811189071893258188389095511740364259342932255107253147045356799023112996128256232978660306146764799095116305922695617078061601459483976373726870445756983148561521157051106585697064652641165452962650274846785125168736136444170643289331870799423348091138364319808401999130418402000412838867792998624226611459205847657863013545703243406877305757816971611221662590876798801223495307916699647620027788155500744078670868016192012839462651025171579152918974069641977629767340513239988329775896350893825213290115778360131638754376301921171761653007007603092915433796850561039135619618190906425164221633901788587996047700609341997465883815417694289990977571796781167727473985888222489299676748396289611288478816507611215077757559797580757668620638906349819612395755529715761171849657526615455782217447744277485071965575376339886240599088986200745911952096394879839173380893554610369277615582165497844942891295117105256846632168746697946296833393695377623332217561391519335069671984950548867835428896351359248938802577991629408743688321508545155848358664750969356365382060077778486691211204762254894670063000604131233953947725533692060274743871526245483908071049065519833614976677245949313937421657726382856485853526505235950122923137821159367157657536120543480656481732930071856464251213144556935188605777249583366624073164131511523688879358988874513483187254432526302513477396151483187207881954346620971204475742422452506712639328499031805142574052218730471610963400878809752022503474331498746941935992957240145764599196940839471213121245164520697693488990133564135863820975465051367113896423572828874610389368838628662101487216569185838037949553303746499358799197803093611463891916727861985056285549463319110353967244656573114291398332200335521954509135139867911066676797825086450738686689427329725839490093628623844772225423447708846283294351319413747301099801993133467315733426367105386739524907810623984891155827568923589826631749256074482108308555697142939361007821600899335921985130424710169674334820825458747296748437006015062834031547750679937593611012000556570591113474144318790479311594849836086496236000321395182106042290801146635362570661879680334225782905721876675499515213858619704018470222324848149619235927165739770373602261997794303550256201382070313485209587031549484790106308031005816384904930797208859210585756004826219126462230569178540770561697369419366121646641987874028947133847060936566321372983719422211985627518127896463860262658103923076052002783822163565566306493531860958332590718310015618427343632276939568579421282269585321026295611221980932899746081796666083685374935224669450684062635924951887084653626365563885896374333524925692899017227994838210813966981908778238631926972708514162432132873299923636895066370335610118866987878908158310385041408106429589587207123591870564556365477715637270912968045906495874833983391829355642466552725188938692809753637949290909443718161331839160324075871360388136508417442383220355557718826249601517772294678474202507491805373646484096993857021864426470926660264026353241295270936428682312301598110785912616917404475146575005061753308831375888400023480486082246850393923981207220219388077250685131407074784876848341484579642232417190973461234378944557195081249817895538203881627795119198825839628212476029477480358592957239127591617119339061755434850348941437459338321650512391228953797533012572076613055602534330144835334365344312438131871740479619536595557682298679111194616558306352508961340197832060665108652838085157420036139371565086735169891980573639090531631691935407935943684311363908701605559483792873198529500743933108041625159491190492569305665297689833507170442218103680493814434956400307514789692161976513568412746106933523635974027987125803315427995226410034559117963176322991805170036631655851135065831433321408951867829373075843432798330938218830856980943125198197757107273107834107753034638251346846751598861321331651121937741017525376955515545162975838914407704346145297939587284642719148147870055628251748896706329073601439841275957227189927274167869571707965535998558608507129303659745182871733264285512129986681606141441659077214071888122741046058373090826317543829479610907114360673532229784328452878115498298154479865059953430893720412355532052260317634512468157772145296085480616754545129955360946075999265416549860588307502282867580491493078908456552163874405146994848112510961792690707285162940290083809353487720296552235765536921737312096069871866237541612508766419588306974742929480320637457923598602602789652346655254255499636802272014935075495281415947868759477647591212217056919983737001859405394700348155721247413020410158680596912224946181384707337888560524243699988478597666627155708083324532212160155060163510606196786685274181751473495981740559745903019245822174488572200718021499607515861131191859941688490703117515944340119416161917907921832538784893012883847334381689058270550703564874232193328680820836789247342221651908491965150252783534147832111309338359238737348767377544353468191699293562172640349306620135648623240138597062190242523461702561095291397499229096676291883392101125458464596610532536687959452433753742819391455960803870910746673984711711368803824094490042657257643873568717733940335108054588251636992116502090875620296557383180779567406914749663445679159268741467310617258044610341645803413964072132722491733576333013680832083336269640999347004465134359642577088170962198425915897052083871884125696049184693499957432245709026844416705690670903546249862794156209198825003713042825811794256406834178279055545242668511741626854707669248350486354912308053880677259111984551955536893883952489561022586192074651826860019310665356032481318357053257459244019385836836436681914398454763634875038756960734024732053155738533688545855060514661342380903816374456314161286726177120990868966080748919341417935192573378645814211451345282485323614194498579666563878405816523529975678532221102637788333758127869349566169465265475400449809789533391840578366538043792124161308278024574303237290905610371801013644358912827630025201580325422592759814676684895937303495070842949168396151086028496876714608792819826439696446024426303380278024785759020046065601172833652911618914867035944538936484835123119413411213215690033972244922062913190218622489882625192156915095597599913139404968256223206706534764771859705891672972227272601708866707586717021543715545889618871623541526912818966934979642527769178521977645928646891352167577714664904515337196221217282187421853887458834195099703103493107483323642236276773459120790529260145435273316423340196925346296063098403878638680086823786972494699064724890328967726124163042079683017978436006840980851276984942364588966103792715546893091851079722077747475544404696442437163315636476829152758723099484737091821226872915738642766655326758924736034379901459478295234178614792274728871190247420336139607136328820456911885886348782734831026828148348128747288867390356591272306924080729308114893473928817533205897831196511182088934058696002666146053957687658626667498308077397130026608870375371503605271388850341364392325261744346346633745696235650728170349316005024839826436513690209902426116230137158470202647889940272289512984986256240297263760115755269072895165135216212820775215516150830588302630979698456983397419124597647014312199648172977951075872067299021895414312750849163016864487625767624715413470442346664837553685952145773847914995533117320953059141016615427479076041601822329254284916649424105496137234245997423273498161141275353854212814567967867154053714179856365006113836890916084513244499589057010594090631806413002153471236781037986164746514141207802114066865868287595438397957723790897181199877804754938283253746773610902966963325981649974801111078866760094742076948423135305893040102719061812460772790760363403223344926159533314326156619057965698323977238779163368376343068156722362343650608411941013313628586742911329387835415595099820319402914521551635460017055734907590235978775267673071592441630951481643576212403740420876490195426981212684211519919006467970202506221096108442485610607131978524143352599357581731915922015239248266417950999278897788480094012943229357141294863818224695222124687606648115853250332276149766573022537961213732350589362421969472880598762688149664356487272254276275313653336927792181770102903293297519389392246727739420558329870966584448658565123665535579833517423875479971340354231785456861550180066330318029290887897257939639785445385769117734672888073138045719909748385003997113013027309192622198508060238485312025316971544121542144447215396180891385376937921987408447773172292149726189318459602436599735806476950006495628182853916479802372302041456872643091458120820881571604893410931177451388023041972202455688109549846420254128136675865583853511109889410775750914697753343618949594766358425875276786488865773980786334908695381604162309886221113282439966108099875771014319441846523347878209063075326634226964235281228913593085092173225748984132494775430234285856217518521677119549044576468087952067071492641887889711568962738476123989629532108379359625654001827071999469173474401018611038594025376069923382079836886438806154870189834347037002914915008802105456228461781455730900149924555695086206664724767555169587441455153052017996547537207521403457534653646581404233124356790576521001649375352933502724983607230136551955952843085300315349880118573431261154971832196569063165671966572188514065075807409788672160262367500654091414833020750063540514876197509543355072622163900054162329803693783152076833975024805716798997706572903111417081734161140792648710660475493484723938151732976739880127616900442347759780361331138475885969823438578769314832709092028514933300424595244429402387169637157531379758528849650260508695365068521281736516933449041584902549709758620919381608760070750993930965203977794789639707370018066724030204269230175057730914843194498989639078141804022738839362315343028323348974150986815261259677265691643471094915845216539510689441819197144242917263722981503627097771719349079061747776486697122771652513080750882563018483044639580872587835579943492074452779821450556727595804914224503513153133951100911923381451102709464685963770297630619175773390514357009836572282827874654880169404834693795438370791367760425518819720809950802575877834115633044675719053529160452727790157279000567829090962632605716788546067133287377178642927230558336425378022613091386673913513959902545440522584627730724750570009285145751204352728355377359110470195033468845241247961000261628985493244326281504089073551778826699101281202996442268787240683628324255995678622611418867211695686683581874959800436238093886819304788155299334359033743022091637606689364844892566446068290459321212497312983846300911810713566823837132670123988824178197126135396595413954606863994011754198238388122563825719708582587973771981193438633443796850202188194528524530706266661095162874854313087999826404409970670253375259511584933363377919100679834733722110820242730967456258907508569784589577916352085791535930608927010454519630647886419341035079795532095602427509440409998735880889285445391374612090529092649653721854688611709578818399502790355332088396161319228790589383705521854388822765751556536772638542980621731179067100264956354660400384639521457529129186331619581329795745681879559056810160772465172063677882188691066403853097449738119238443751572494024693803136892839871197130793245043774661493180857595416184481733970069137063625569508695590948787820094252467173769019908958072449699222005801689182126666523989100882749518188191859043817623723447233830504514863501748201222665291162944085764370240177641170417940262377650373772412529361906323802259981339049060590702774315967281726901468628889249355829153845310872910311157793711626200474994411978534702569662477517412969700638118986275401478173808274091355278254368515483503485999284510095935566680041957368649064470626396898754312961176361846361528401351480980973430444916315513617459995029178332678244369528234501222867857266766381982138944075657972392109048116280856596621757845738655051697571417844533602386691564197894123291993693313372901233999539011137030843386795959237759135734996539790695669858612934564609491073824014553508769019760007666771282526299073073441158817971954418543805014835840766280216824173509245547165780025056079209188376835647915972688702728783345504668764210992442003824003520446937421083949286385357332032073831363047611262819711770923483130956301190270432685317851615907669703668321817869812945049372296075485879144429955467381080406501100134129890345695383246489067064358329753426970391039008302397781827527267427413078139421047433851804959474357111934079420379357097579504653653149967201593051437741376816579472502576559439320073866864141030168251378133717416279250823286484347530420437469977892977300599763891988315430256551921281573323485725628398941549213670488131783390317073150912054464241698457204062266532401225749986690691085383922740265619369638147042547076383245156476546622532617976114759225924094902443463088191328324758443177042246418133641720228135620780834491499419637295000287066309562730240126237799333017598493364026074122082367464209191333166244720064684069521256079912528780576964757487343440007788810031638564649415604186398954852857372141528929253216858971347617195627288498816943823603266885146881466093337358560286330549151347422101141785908177093657478740402227627244112748579713858844042048449116806739466647693004656641503973941565685821943995622116883245179590003256473408948749125012687134303837656120501638715580351496092524753334547820080836056503955811612335350179300622407927609919525784032262542531350083681494595637793456923555038908818242292839189918802699215064405016364175274566260139172843983895143200734207301184351113873602311635994590200897047127563622414952464598100078329533574281763110217933251368162221335124718841033655464743707958652838181914540326224910483494165641800753084275943294833780803221208825315754437405547223380430692014730834915953229362073961747564487396266149548206137295204797686652027132464360045974451202559385389773694089975410030356156307554280295775951553295100690543516135737754102031494555548286274743907472037395429975610818256423188619997233499716644669190186432188110275845036487793017828410638811584632258791627345060350062756487279912895187055539944817577359979315598886236896705250437727107771369689263151275759171278174939079617145242220435633575645490452471660893713891620330946950941102186478431131953701706806629930975819447261675392840719468542734720280297193878968131673445716308430414813422081513830962997563806919195992696130295104649934986904848356260620667749499902041090420775032214371300252113023819667010088881694071709116088345457468577867425675468635923865140860468445451667097653306181639691263613899094293458554401922458066563042812734579824037222260996631050718001288469396031810871443465365519655294253859258117387326628712248892203745586905005385738026391376613221305133890358673663720500749806160662939249453352858949043522613888462712414716874026624034788722829449334572837312340816485429922109171725688798109539458230637577929249487570630734752731475937085658279058107618892856695440880586465485775497804795975926353563671994487765650920165630420413078819054217018388927277291479910392215928898332024898456617784784447181521795029345805987327976455924593936724652673918784604076616599124346285810741783093820825637889889291084917727839963630517985564431121518875145261479050362727507481533060290327454006702013167104161363334541144207861099054640075331127999257205070576629786551926602129311750973323158051771642135972462356776661116649491752660546125607327032028888380189376162279198391747775048259435802809733947226758463118155372137286460346089876861261198815351334548152373096869957044310506899639058314402397348899714811930488166952926755520924387775830088481118879217725095213063969840696046353403205642123747147299833619523798357543409490803638413561785598173940438877824790983281725023974497631135841356947102348945808775570361204965980497106778642123986316494721991116830950010256925076412668913393299379641825932019137360838417309248876211650657536770426003681131362183397161398924025919377076513221084208603358330394058146741440688791191342361346383313023085227667998915473080523555355186338016686640964775636585938823864999725275409619662456542170964806998636684075119970879253041203840544634268697781715297662095805854602126074757714048789226732092792791239194269362228295302914522584328024735272636514178251220441138560820333456949437410685508622667128215854856754469660861364232996557040398563393050423055786689814741702307955781178681424253850620116186327950633540269714744523984795543329835339933613042950461814146563639338094613790028448024813729297904943008434099577991326136725852829647471197397562758201378471834243800194580719688053329960704686902685541710648606629025157263513867453898511638196865817875453731018490896055268889252159660626476633685978342403962951698230700567976603264377806356561978061724039240711875696649715734090200144782283354585324525057357769961384778623336812289530203787328083545800040289895985350118543265882071321723871614930519952694210765676952369999530214759154403854375160212950505970749856463803397954470139604367040857448298118199125405310557538768797498671376694295606468892982139746769509730441721110001211226090860101985335215197113115961764490782220455140157223991418003495678754712533277629634167241700961209308273903681121935004920248916003404535158220517872151679845217553027119953636247939042537992987858051559699199047612552237367158655982365270239357355576015436091945558561142088765670561877830306697468694958751223058306853607689653768729748162910614258854208812387925577471202908219359426102951574128180446750576275174873437178907500644916553321666148840733484722109502879601224551131785088680624678227917316439932633441458188681876144520521626309449126096971753157056357839005239191852539453136007908895943932938403824571210441228596166615097824872920168451576278802811132331350061554702569042538548117890738650231847610003063510752648595216398867727102771192818043449831658625784039405448915619760127142770791197115634835263751995265055617613393962722452314718660103588145244411315951248995295579414974012832640998147229581471604426868893851616388723660424076508115246276956780458445900618968868785690877763700570506452944719435976996565319031734041001707406157973318173334240408775804512438523895648763337133868327318679401705108535664659683541529659244179698413942615163886749812594942221848282458217286146590605074050167991263191622607064321776168902154905993988777202528437875886113648649841437810750937467813731820806047244857452206803176747359857623314390871506750266307408110323802751881753260616587104900843656640185406263519299767760087903806668594729138774136657648585200167650831260208643908295271401743524071732697198891993859083494699322771595399025095106189459033918779628997269524418711063264404407887241096138373757544272578011419689847603726227476637084337586975012930726658628393809198706148849906144633626230441479881165294341442993718604527302679388729305260390363517888084283364450196744100286801578463457240522705550347333908901443854089814241360842134676593637200654058624009524554905281374774933483675316436825819616052083176301093866699855211048942176204919989961222092323148602386753623291127540481190548770192715937723948767519591818595132996566954138750685081429789180986810404460396775591793770498297254616010652423295294012561748916495666960422740244242097640062916259170932443928516988670609345616934655481190398086410814361998925120227343599814584694970844350247367460542055980332316086609625745068901365678470797042978181530090171282980225822627276560981877198543560533476335885000561450344151073927010283904425202827570580089904825709936853864441290620454604643665036689396276241092184357900134242067885893186485181192956682312167024052626059523272478950542798653148161080235026519000123745566869441093646320817480834952139678292281549213199926958354735925611522777145489961613085613168651642176589007131532975347981914122257443597763019460090485101085827534139884616759068377321640955182285064169122005516232930380483791239095854340778898491108032338613104486487217103064185679956553259356801166565577302274670617989895597616834217311520264696404671326421700525110357372353774480474521350542197952917050375172121551147955747008373178270485770665285858247219790240003118826701947444505412496997688765175420386965612804636147999399983054868526416142980759297270068653097022954436378523802141304570000967284584618793968295591061310721981612930438963037095744703039522393513551103877984457941360986165557196448207304565266600286636639447146465119265586292769083226277292804653775267823974392424418411229635499066720811951174676201304975998047375717202189468572783279731903685501445808041858516617691896004812350263518308154884272023641052283225189880705352091205947253674717867034088425710004110821596036909860335147671901495013070429391999105589941560927127450807503066924218359453152840019727332426996095385907378210068746182195272741175682291314215390944927601517297624954533251172834842887226506021549191822358530728670883887524468673273408748606926414616465882621734126029577897858631426996662263589889042159707481701885865911020038479341826985689682962543509403127628763008332506359688093344318547747993332242049549143791766895671058290950558192388777959993534793539091819752600049891749321673679119900342402563312446276924053437563196979500018709962190101431574329321264191358348487027637205447759003103945447206198992274301394465818354705352942489487068057165750365015085543399313844057619383917387961465726469888442992334833343191242923282553215859997573772266633136257425354012994935442991906482756677944857168721871748239855168764918602507997961754738333010504192329910152151197261130964779970552192225662703342750427713148501980135049494107644001659179538673234236030443990609190346089085725192986218377594647471737289419757696928232171758112383122716134693134785677173195627602947207092723484849562061137091837406657490642755374023253707126827744400934170593216250865590399823856978445902255367131624743948386412445571763237842923600234471212841780139248226547780383333132130693239257605834694394694121902783538131348114844287145387259110903963759623840488442731601570033033628260540441549353648633867066984119874189947665020473075367050648105104267673439211625978958817540557130658258704480560862775499136763175282749499456116702432861956071457875123345881664093948058714620431678293607206416438774368931552026238190464913753277863023969224562479843218301344601074713349771135641917338932535024190335931226216463738821318730263219034623760409574753586107900264175675262412854493211766909210023274243056897847067092406612187867518983450530071037053746715122695087765618447495576488199834555477074682490038473862472746137876558780156262542530462554249145553182057089535287403769312859067224519939501830208550749517090511687956735128947839879289502166642942530428940939320907880636568389443886287696661901132316440966643542488457739243214173284878465961534178707217429998486651140939939935549599050441807528311172638064849671284900272122692890877986863327715874405557892253519205462745521653461007114463830339232442932958137765211603312721144140600208632755991197696378436998466192964895554097247295736440655176853271242633739467168927441494262672668388087606474789093556768978658558819175575168363497898882390087146631630221991227127051944319776207648993150370684428510383865806419645652067625097995599868155315905394877825205842922096150296284846296996230440665584714763645696087407034383306391200738010484274103439271605985824405805438620546068296079251357032102043894422362620787815329053788169151826056763247337762348496070347802009183442170597893950734453459477101421505943072670093513956774058954022282368123004779916872082097926854641920351464423304617599027009334294459961535187229492859921668299585470386784645294510420799648647163853491238624266857712946176242168643153883421883067770390742864800226675225555647007101406882549358239744037158303887370523467480956309461339498530580758332031831327045198756722458780472996045652622682738330891359111466198126226670295179976864452099481952292991468496761801485780127193985816223284918913383749332846340949647447662525468732769076329139439022129097398544146791782978114705000668230675743284866488502089707767021465627131786073542207644200973432017074465188037413653048363786215271613776136379270421608975002737916534630919432360940795046001294713240508150224604477971827114231152784950613591103029050635098048890799274892859471185002188424384824031207742039361381740151104085568184750129607118314896606981989002311169383942364530343323284089136558288720854739739278996350022200091633915000517299135515369976780736525769215920872400271228282204259144334192916487231210839376840164495811045132044108027305640822621959069202831468086248381021743160440236356833644606417006613454043638400590582868603102178388580475235024508911867163768078109399534123483719107188498515305460480403601689269167805386232891973713157444239632477126907155687315173552849608746231756179677827255721400537117198545826517254319595103711416461420810454654232986665174383308830531819267511744549880172879538248064283284581670977159984929147593107486158528701971005220540851264787163151814952298046538654423621099198485178647745426233646472906137526091932747512942840746248824763797906854018528333895782104485921805424540291144247110004972122090757388259576074705189646597435660685953776711751179504379626223176469985193748307627953921343052960529290288040956987995880433806304804406918389164659521779770132545210178724405477770518463315609298747314605275276272665200293691034452036128468465366217312382447851084944754917223987114454356179913916926367854598403247789986288883839202756591198368312231071800342406387471941505667367032616841393705558547153562540282598336323919026345795960928361955809892566343390581721683436547750908032073976180121883842098247317739974864692953034929287647408140918289536882079542929815211873791669201010675857437647364213368065653539743693007397201649956554884812371043372914306712567887774813396474505281452412754919639943902271573453626185513901642422450700301381759423297725885145275095342135897011481197703964954537265966994441168978656117356940424114960330064631081219661834797555256343026596428661270612900493243959760608302366016937595316954143575714690849652591635500387414741773424477129321939355200848210830740715906472384518937403249109798686509966608191749050617397633634588659228071444654254046594407662414833764301881283826466730459285655851807011609770153221082661079325079547792816678334872159532810995491305319219570442148786327219581092787087122006967328341992201614369131394551825822213520547138722089211028883877777280031029277818079138866878938726909759803671986895503024527650088293348907351877243203300678962866286225224797231644830104320794488133815182604523123703771928746402951101701311298471365882068041300606560293532037073201648791629162162001789896375398950834943962942083263224528872529548743421219985210750825864656516342046598779222333275394424797466314415269628380474893621255806932526532494572908324334579828083816161291456358703774914008529105047383716032039802759485209164759333069375278415983136574709537568227544655879088628005484938680313279796509147444025518291991557408621081360768668037490667830082375278837221591034127668918757412216779537754203244579927762044350088798729904866149398003949819865645561972039356691749195615135725168870193170010928957301666007588196416959563510560417868861887572067631241673325101944680837005242161731241490444635020695915099061341904851017121058016288367281509577987917677887106914354116448374958303049408563926169187837523523370253763339149033137515371077092517329200998212191986909839964919465858175629422810786563347464919415465129925598654301356930322137057747174186164656840355152341514137130546182953324750208072455240072434504615821195985345873707183406710288695801760015331410605822998019561183754743651029738834488922505466646910861988060573180355661059705044492307544528338257230757874020871876432513899778455156961341874109143202161828044342045150882646805232455230040072900718836850587598280959535623368280466701924398573112941383199671835005582725334161772588732425230115227054257048437018914206017108581990678323175025092917472500746922975378809929505414588705879202567953017454657519426639919017248131111142962203078696068861577188388766022081362191879361711102048217882027467922442311621818334128983893557760020587002129962976360524652801782634511445757392716140628824866631925533099705497185827116211011738658244400683472880030639168325444175400219500619652584676115747677466920610049624698675923802093294358882291386720243877521394168475648282336312597299136376073564936724185044499228473709485691673271585418076210700501853910966640142580964877682096422115240977881476865487117336756948086992397674744918288513098224422336891406492181660632117162468331703541912562058255797443491408236774091960487456485779602391789302047446674292139313379529194135762194000631570365232411089104933044621184043534147596945447224547607199561586729588316535389999912534844646309977719312277512273451355423684396518640045350822844573190148828655722004420503669025505826014478362393317234824120855038269234865622833964136468393268175201803823678845471822056809234229305015249881109486091059965659424292491898546924542294174845504696131346243201528792026719488484829595720251628262644595500778352263667313334518018725937430422772081501603187645938233199986979061114062419604819777318442419218368090509903135403936577562729994820310675411900881154360607135661896189328836975752554630571977458433993812911692184287959495146011934907013775642980348440469499882824236895978093387667924019143752047785170678903551524948038955904796853601953766405753680635053616305348165301786699839233074184358809602402310869119245690172371709697930156502645538806373044065695171831277665455381343064419553510521857586735367344574829593467303278722067097097426001352570451052164835987746062827124291321130614061434894753866977727266387829068940485325843294229029618499758991379060407156495303047564442066716415472543591035491180644606797788457243781710199127001182471508390295721548123635292769749293499068942502874519645267633142207331391949700606358418687229215706349451461189841863317418112477602421058854382806648593379559017100162727577712362464583205514475646851917873097245936317974574906891538260991636538929852681867304337403235962841283752181455736493034209596814485835541968459290375661210742580933755390323972581319818182278011913073137655278702695280355129936912616953265052380102034116436649359481907782006295109029273273081373076850249543451739913027598413864890615129516148979999692141112163209095510081158946435003149469126377651144573968686479433338667241239633921062825479532106145097862009047217984042938035357776552879701487203726235037338718940324767227939559501383827001272153357369719570236747458885993393747221206104406953664055618736464950355790770887375978562208617623020990656023070929895127106424905235937416958817738737392725841098218926776473130886775395576553846487517073907428034976345919067024304181701725793021212683902806374991809599544340854483046442995797676523660744848053629669554677345319564734479592455055046150832419661275515227639317877185891516146379419788218295744733263776548613814987478139664705137814307771815165254707513803958529176063544799351381244146062614588718783699741173503714730282604772843347172525938669557256655980343813758263350927585570786268807222073671137983506847265187658840439139066539658880741016357466732874417441939668042076421674276670888403604634505322192910541634822411496405356810475661995582702956557418062318947025706166632169872869422764715472387590309226866119210143476642519527129953339938778137129215873258809048409340881567089599735317009350890074429958675638843456553303465151092041252570535711362018699020102320478278599521872093636110712396008976893896500350067776026275704277207909710364785727977447149953591148499239455475088371002738092601690859981832416649761511902382408879801439705978841365969617512320830820820714125596604006225931047239915183460013185256247297219173889968536583799403800363559846825407469937099870532125931739440796814036202854710644429349552430654647109662372204530260115619211542387601282264285963916520448636699479986542543784219728951888920936491900904827999565193838242034339699529414341315869678810368713364719375649469616923522409200378163440865801216753975606059978314503718470090577104938846725517276148879369466273085106904687346947987148149152896757810053663082559863310127671911047069513179060901327304543659167668938567305827022103451253820268943012822169556242952346042759560355910167643581125835659124877803785323099075162565112908355263873228520956190828428788724610523936815563555432701297577954660939230279274106579986149820041187869436180752925902186542487093325683161152554180302331309003907537529857027181893059726962123865009179679551593743284148077455564075464334811243028073035335117488780963208162415392709824687786963144013062079833536369558272483728092866839766054671079432662139623907855032809914473090710623869298848341165988972689449444624419394327728791038383773043846733213041240275483860458008849696505088846629512384245018950563467258675515491815348894229486681599363521120856012056979073054587658991154822023001889485372481202181011288494477776138911513428612477811349890804909784962300468697246960021361444467771245091279152307957433150743156791789043597262340493928620954462484220576224351507109471521948932427483018883558849806988170278570863237187244802981616121610082475725035992370956251566988321868577472005403455587482217711689949302037810452126716551418537622010521028127698932479088728380714924802363671757525346105936457907942868931823208372761482473486342385578033183663244386337507088336694942656197719523459406448223172508674538528062852872244133558679001948236672871507759741143228299879712833137695173277154501959099765152651101055954669020748985316298133333505337069274358879656773525525579909094204795393268983529403088250482744438131405632266045251899594559864584479534804194936891031364523898994850270303394856987787809603770468270577962440060449201917848836195361062986564680066657097276920585741300711345713689501751710000747138646504600704202091231286665787181017916076977889454514557293838336750843973428786022717423210030051942240502445245412360131538530931386477412364528566462302702084283910365923335662299511291808613394303889550822677583569941294388803976300476287246115088614577784420353188723078344649488124809585724356852725890807030799211216260717551788373266953200895267010566116805262818828422584596329495723905130152126831618579028451874023898143916289392746523709934358847245854774146599549751515205209486885014581798581440391713875739522652144118826887549120489765112464258568057091395468682827473999174675465834450332110638368562734505479834147350558395371705927447181763136464744048217433232041581213872301104719946409043306266749520237790737266887851209515369658157782310138276860071301063524937033052380844754550222252922163029996538743234023246961978338223502282494705790475230705534743863744906423800963635403247876212500689031477367881338612364412177149901049260844898106649799489184553991299323586277658010781935561888354380587131726022657351493293474363046746695224900952813398285418479482463067355487665220713919531773479435851638666628421208404478529996508490299684944769215179510663374955663000948816211792703433191073607198261766642247142828081169547513722683480038908959499112019846196084138880809553301505729322185198501994198281005960158336190455636953596923981556509056976243850983651038138029272821421716305968452458759620747256316503547405224956345359168583017055865901433099752836425104685736104298949977848604412872421183643565724655384062872850091627608281734316540845544822237934167346095276517803966836641094983155674813084875404738364501774258569072736785505205386503262919877068221932486343759736317498604054055163783674851733864037554644578475716715350325479793277567147118603862444719457494546426952679262074338203551021821230913964291051864750998602394870725609327739400091240985964701611730813567956929286159026244594684960206760381575299201381533404586252255205678389091487377214555741636315920141651324355434877789810686573595182001237541187479992152775313048286783204325983314160482138132895876169186810422880687788522199622302099338324552974334432834375212846435990465829878635305435347040581780700583272570221295052339893870425763425034507697763598263512738456471239347111268665581040764762919234373920191893653717780906848511530392653865258712889214818888112956661506531639876291662398838886625651547284330144588380305400049247083555060007125295966059798455245147804465957071091469499932274849461165881233489393878867988033092216295360461048747441545619817683515997142292455427693207534514355712777552192830710173138270996632690545849756463124825010376068949753635553837172963812905742879843214896642299893618217828452416449021240573080830082267599373798387699002454002733496408587166191134402881350054108623099918914046947319327047890177943403893046555126628547279000670946261588327143771961554653831967967598267281290495913893792554991262580126484738547055735239024555155707069780321645154545991120496296947848450100278648559022463881298598646936473791429514905017437879292949305811445854433463467653222481994514470847017828338000446827498423841097634391473346701354716053926538211469240167350846391447156667020421704281688617989848048406515499831972338415267034964446222800647974770509275900799148871147857185161228547859986260663043544178551191711034916847190247379718308413767513589634542784643942936999606173095855537134139192403991280488977546254653054577436503921633248805935601816317169896109552663729613858218526009462824826801418329444211705960692822041041672537401774857614025440009752787906937225991294390269736144000292403021941974583127513434386144073600079233793933297749934715787220049419079144838051419254560918486799092598927103222834019248412677136430816508956079943077715113926155971911210464106010645937967785492218560087780299412246055059755536764371108241674174187009859140588642999954437155828701526121286554209675324112069757882813998678373918542430518166035551999511333680648100187158990618057834053827415312994836104511443263326318626012192500900393616972993843684233794405101985564666456118667445757191631752600895373866589030836646021113491804649634461428979966492251239530661796104012798017122552745170478647443861622156275436628882767034432140962895710420059809955573966864511354399839972777664276382830774398757692863467827342298531881663829201736507097187491033764050542613948293741155287915527306405376772756054705047287669927117730283644558641488525581424913728255085749690304515694990413047668201420590606037944422932328184679524157384684698926359800466416894838284407834415362328508285775936873824381756876167067846092295268328401842435538634518334957871039503504038870086370679861758758266488938129654105448354626626957992477088270213047714450872081229962838983435265589391601597801722896673694238171398707422899856225358145019655104957144209827635384055939084844028084129151585187693548044646912896177158369130082980518044178201885465188766746885931824876649922780400296874852432417765152769471548273392112051268179467981210342572526560954259826181916337864908703894021494588366496412112404179827999661820901756139260373638756343639795324295436753612800304763872412438706665634250621308351907999263706659159743628322688211492205516555543183547029427962323523911251933651579530990095427542687121818347601486437804700157018924325468465468302478639837693635869430651612876943772271421843765101524402212010392696585128200823778248408832391000493164250684578518381096736407172525527265405522841266669743881082195554254820073679687445128087452666970469402106745027092176164758685025462043052085367282100253260747113420743276840729243946029430657253952430449599311632980103575501224769864690404505671627129676112119643387292606698222040989279869783477213875909821886667819088995926576574715481521513345775232046270153941047803668141745434435804238579294459614873082993220919586663142795063075040757498515504323323346666397137059976498149017196640468881995303133349095200833935823661001556700896202284967146129818979173204305830239338489201612566699679004910876129077957467288727309010436056437809839530438121395709597491987886610045978695762928756568009794775332153778527964480359258850458510054281916089276857453399804601523475637253759003859798411072367894771705767904746039878396938285657479565881164834142318126861661189164199928656132934795352346364192700863006102847308623261333276026744280377570749582854393303385223158180521870051475892053853823041598651192991178426700268420407857232237113070724006668042847982982317636089242403583294124439417037423390082727934126531833919520252638202085299893806285380709270501148244699453149134221795997855968045512383075411660613298276057652141229205132085202929070406955254834120905359777818310133498791509699258570402608835185721009705230624234690829256690363475247057391774959281359655731179047432077441965025337572167615581289675510731222707269300286480887700181619020879408425592405604087863156937426527786556339028665198401416778468894339059365158220180222628935288935527572451884464747770020281987182859058817512335341768115211283155760733660185129542072027836605137931564843135200334106006129257165738058082440908577223082011347089448798797343892949280780143268178429382894228207188429955872865145817103856135374604052780216389887256111718418389350543764791262133630335980218451168687910623944021398716544439777992461335477100121748885233852601512115549474493602072136659886645278123233197848163991536132157559615694369604226845971803216482398664398225231518868828552096093122114996908599518015257220118611300502279675755649063915975945599684297605402756770054087050434485161256128299005228882968274785920472965994759127831295640797392413870262755795559122837219494935524084271413943703110845301418825983192363721804462499404651327501909992687079499690543931297990097005051442646509865218278888598192086365715790419100713819308746562223054915305628396561397203089352786023295424451473864674788380806231139426068077971319799634157060928318880937629208600394062556259605607754102897260020697853314886510050121244484790662685477304465490378253825253269205092905624319077186442061856939129286931117393221540641800246355375876962851633464373574727594492404737636739508048479792373186148515254162490783353436096491326567648515121490478001664110615810307947728005698569210414327306486456970527853734262818916543302193903941321821065529541168479929328700733819552849740452148721701431434541601494656125164103392908807421120520328972069485977113727254717302680186710246663724211322205867386272353753422879837852891863751706364976931862432953611080913317353088372680727834379266935751495626571678615311075397187843821265179720421355323774792783242970665909875872371807133234017710657308001663436180824597691706621183072063780190806333649400925428036173409862559973604729722788226900166606177261194823758340478399885100715889529037896132234272470013910889391377988539501071371876288392073943071684132677583273436568653391674780811559829945643687929280058942447915016029425093631751599728881467610008590287025594723621413655558447576074664150065374620148141112924483914375638613812589938999936956328368742311757674696674686159437961532901756419029701177554624817067333784137687457287890229999796252975667165071305683610634920689067797650440040156239967042126338696669289104972509597529876277562218165241633059587921425532779927517902693952281299690437056074061741903131481588044321280143934028682304166116036153496596603518296668333248152807378041480756780228018268807802817870392083295158570318509075331858546324293413063028396545974309682302068334625564534960828566968686423691172539809350739403611788918455483305692900727198911629528938984608485776970884720796112583945627359282124128014010701207500791380323951533691223655286026243666723307361273131815240069791883310329592975229434799799784581537117382732511002377045317478288365676863023057720222007311939064915811587720500759832360192037708693074876002383492017786271671259061105621492605622097690312778164932985713940616534503791960129190095834316510823654743572967499227235248710967708792304676361866699312388779749326253804947276630874883332997559010231129184870782557159256837919225236837327375127182918168255161620064852929252106364670983303243372507144892796504123413019675584966548120972793893160902890792516972903809672340690602588034226558715084399801325191339077082968178100427932037660027291128963615964216146807241893245907028568921002477206097922563559014508594013589821936623467791958706056899048746651907944057684295399519290241391012713475953693148332853211282862838404200849986314502699757443025195329841848677831449249647134391622254674051533605166749853941250993266354043760080668740752293900747619750745025553321371630282018104019626611144834308482257998024411433107899660654694418108244255360763074055768612845827412451306603460973182206330766215670887131738186691785931521193245277979525823990059219553046556618159036512760259070131688654238513319899946597708059965973941294718126159359431671942911087384006837079315011555251820483459410381666854854410423876982469444975654622415769743925793948480349108715214334752453687381194414015175930659082984879657761170258866167334219962968048252066269256188423857774519075990020342572324468531844968471896155773432977647369212651897062598771378969843054224976880942355445898114215743509789171198088167075689491248568817061753633268671736968367929761862747158860696148275972233808514574482779864246861000461794667264212890646277363367607811188404571301068110180129544327771005164759406441610696865783322078293074005919827930298747056548549915065423005757893684943565801503053384591711589823445855930705475763658507343415565446928730333337261928052657960841407070205149243361063986069813973529705459264230322403521264354431763496309820905382231664275791793965690382634882303028261610241936585344977113883446583966795742513890847987896673555034318502017777895326601000595609256974401735735623679135239989815529433099683658509932268321640830133169708704702668401425298274195376152995581852516342106311566959186762841172592154365442464064417780373936155228092543404197510033689946072732453857592742903522631201712155203617467603669104553311171587540068764380895706246972113602783262613728353650704595003776582045525736095569088936086149127996662162431145623919515436454090101055373106058859051870580275871257680326659210833570286950959174047957715911118898792298292627575163767453599037280124492071552962744915422322858092630951897263359807089212369960634249876925845053578855139114743043377361050385148568051013378908560587444445438216981669024702511276992721531034945698604245106277627054311823178855631364189848081694615736637996051346816762801862248536753326919982241576691996456937046922514910062591368559253388421739293563351712253275843614954117913857793981685900280854058493404953180185860319811416412075287971256479718978374940815316190517064890290138251629904471836143354082115837236248899504920109298768010417630443137429076246368659579806822394943224008022531022656999870905107169203801359695844760640735161535586799145546478567262907768559058163313040232752039393013151665394550718284233661785961040178872420996118699176591354832110686675444656501960223824334859276167871179514476263336021180153439875549542164039657215062242634078047275562010029367492259771847876144305245955866301941692318294843705504040857054751013499476667655008676353718988691215088189927214485472123948189217493747154323575162459260595738103876536976008174192506503223448557340939317205724563311323033687225628574201340642448789062373739251548961550464059537859827598090619513288227996953132889567329820435809561979765689738142886022115669075069191711591595474275803568220425278582827719711510598445264532433120582827196855512524778508023272833966643130371012838687311550250553422014196670410663775932399166342945005752264740239562811303499799433803472434882582664702571641698996250109108885572453722407668351986172014947343883451032035187088912159185000169560762203753995350436172491992569987916514256695698460003893675560632013686166480040083063553941704551817387862914243369727190387463430498993902788337554439012770958093363009755541090270418022808163176241596300716789566864011141106028236828411152030528911651302578315561108359269971392463891913100700631026346098105075241873882966398487433479180001929661397507594796455969069305585605336584355648397917457066360278015253283313669809293623755589873959095630071878432872259557242007462664481226613940340434495843240633474625856076457765388354378200507348687336196199861987938413413595441463341474724469349550296611369317886180197383956047710122257935287908520048915504930623083764693610904999241733088348306189388639868805725807326621805275663260433642695619444098677097894750142883119494184636142034902569387695981703945979960927742841097542265124646497465948255520459277129880950440954537061238059479390005077841052576623129773078771396964988776143435565233118352092011359377055136567816137885587648890211744069514599264596292516376772877555320234038804576071850567390642620414120895173129031701458420931646639332183964852289864216914645233597170771090345946607540904587521267740925483792848626550752102542431025691726137504120739212951690932336478457441914038912650288964107090991045492171059676957457092737894521259932481838624931861719083984175499656962286558506102971544926937834985354126543671109712131627284582974053719368985561099189259805276431223322007268348865089741166056664624421830616144800484755752872323110813897294576299635227853639006318708597078927474243218617990178065147081284790149997531336892119703023245268486306330983950454654415148655985863574947854109081290028827254517032063027744802091804525677128533026269980786373200370279398417109435571574216223148300288706371579485365217270571059451917572554519554697547620008050887409871391382439581416866547580477601236373767032595736079049962841783352220987934357458707512681262816830115445244644208025284102176766412212094576993063267329413436956247127333141992292953238059658407559029658235141290088672703264352940546435093585095702785281193377732245655753261437534500087321768542751650436884190515836061345998478440102124950290044809176424497897241217353116087940911364056507411253566889523992891474950102017605593998508953311607793040865550178207617970379870047629779760142000458340774931663378445894745280579464058234077656553324369721183094714515762357563647559822837364600593389282155603815087062186621376594818436918590271379048342465731104250538727603228608615926132085739192260400750741770183453371848971963303493603065603788806114389042673608262697081698414327369189053302910213036554041344842920681005189565474433637145085458744148959644107866039811427195522462350528770374805392941697846523992392258144200557331067465912393984592580505197878865292954543900627074213196262358762179726714562203483310853928277264997465021937280532415850653029747021128829745928138201160267789779181872406457780379483670112242879419056808731080482472976816889444281749200281438279532221519238064445889195681512969770615385115210947320660189450451424872034939485156804768072653342044855945054903873998477709478639159747008410024523820448441370676134236920910746465575338388020040451036086451693595839246628204958424184288627168252169904645363835303626964291488178830804236709326845462231264625304925161373392535306946721939553839039794166009319971563555352286226301934938784882683245193661787522956588670551137206305758247217804168304074185288128056340645406824094072923165395016527607223214366748894693594652980833412392466028597413853235406867274568041705758532268199055520362744667330246014346170172411915230576071511362122433949517085664178164463543537972943956438575070172385635201951088713409106490059235079125304797905088575286050604622771473752718946567427864174571129579120478056677223555790237632653379243933227095489685086830703301620489636049965315182456221043596212992419105656582713676386405544368426546472468776090827361749383140990567690707390658570060524799959147455103808999254839258398183975234556168624509126975235865671945614976663751824427705692072859491886960814395049029740781976607553967467157361228262753120191748546681151035073079969771552345620726324176458197141001727059005169791964984869821741837113629588812996273256181556722141588656761714497882975107365741120068784239252985119297890045727256932003942547967249831461847933672243871533758823845351512863625289988880675371558362804960715093614546653874604890145012374027122797694359348977182750770826447849631403613822431440549237519828691391397696884800671353829043586115120446719929899403222351811427765020836840372923132921815112129965853649048238123131345226034658921011552506416364333797094679981527479063582792995191440141680605584125781375616369806730186078318490023333022357824624435131966856528467847719112168939678513975596425088177753051913509536399613524451347115048981509282889019862698575353506821473260260389712946666566443670221316999161652451187790110112052120303025749457656951243948708773521581845598461280362609681345458876060193131714019407829325800627852247068659643605263556453529993250261188656433095331211665996337749338368335924197371220381848253631516358103548623218841996816163871698314854699818054801588767621606481611575535450331848664069511264529913519671399954186943841499557849520208726452965073769932667831584225881759568151048834028746854664544152575634240597315449380696601502290298540141485143667770448176248769343392204309451233421677661035553708871831341881567673372320437465427168797898102647804969466394759467231782144582437730104905306845334958130478005087526825998715387741966801588501791123695670539197463868972613504760641107365698550403595545797355524672938337609342161104373670883023188483961609494183501573752482613492310766956800130656238566139994176469990433179226600155151218473351117296881040750531519451969471101406437471786530112967174470060163132420356144453813178103250097122247142163218825746297979207509136317186487327660036201563865370744601241462887056806546196816556181867293502019431156132871633415029905109527901398014482612825085594858709987010620847881870192244697953400759092516741381978860478453190795649901102839478663282695385447070237816017130200106451713542500037590853784241893872254457802287278241193409283078571925587726704415002482171567182709705183206795555523630908424323091870577651971848059353856727190217926274993185860005208714465638867185864505236597411167535609604109956058913451976947640338617361567860439886600899326478457233283526851909662772232956176613783423242158921666518813402096164284382156733738332290767962008151856258046962695599278438573575148033213376804159685040972745516314052294068918397382540423465007569292771447619430295925388923868933491615901597864679699524353164391924304741380896962433822100325736339832522604904449411001510969890535051692861037864520822105540813615749531644984662505415122007191748474342823872273798931532815030449450782243035433325166745481474558448853192547396300885319565713109333116788179817690484873259729273919886423601450590521755864520106501413087536978707779779774512917297269718386634512604273700046662983155750245963385576144221585915059904769344556540412824766946064460456252612223538300203031692809102499621106769898152870829350847135079866702896967274635459106629611682339876202015458893830432201910844888728187847206516989235718444123164009999872840209155608854684694787580349549095771152310354395243807653348898925679313443815834105321128582484005854623044619098446539351615438321149404575599433615741228881741174821842111388315849272086674735405335566985269472454368571360618597378081834727046039569514520517024041367643599083104401201733611926778293307163830741834477965601642786481703324192073228665872293479562037677956194863540020546683501691725456474357377134946561361513870842674869530546722466343667092023102054798746129548418472260634326572940238492435035045756741483838936056638756330841455132890382855819511984763504790890213750260210419364583964396697945414555846972700823997430563644132235616759571857319305306297728338973444326279123035388588550153878067952029244286989948628124067143399283773763748026258715711164873512840908566135475881497568563275601971171717368733923501028706032642487633344990638715842728121492090274585415150292418997536264708604773294431754533907381579342861844425835130450484459318087117367240011865812199495671920100695235762931786879807313231525974759618309582748412014588715995137995749269858801098690606023206910757578411535583435568370726419912970270273602914475399451499869056595410164812915592733233750692764368563498857562811340659854688848664545747026218279567397672393824480598077101597099147780119126087218096936102393828120090987277272140251556601830435727834436021844911591530405370638018135983889495982773544540805213573467020103447701530394095270631098897478588263880432878119539052609019160836518917912816115768734487497541443060536477346347879758580924128916979844121547515415434349722046315117072790415864832018569241990955690023929667534025324283010215762932761172491903970401332536830065328947809911130309028317260406229999926261818872215667317700573303539486761491121161449962535341475356268155814061236828667718325606130486998197031955117387916179370050187517705938996022004368195614631799128772880876143359576504110947136264167793866385858180042389638736781014464129639204991331327539707687433787042322562639935794088095013035338213986156516134364163518885947283788900917879435052090349196646904946323244310848315163194785661648849554324082713783897171646895775087202432085912223753868875735024254410867894729621511656095854591871772951552635426213280416361477852533735889354859087855724186307835286210056539110718768416140394367597910823644101231271444645847236884959258403540265677577224747854565173828619034151580716280217034524504671688301918149256118060314377304352913978401697202571261004452728072640556182844852429525845140807116072732187198216621801158868230231544693457822115647120631199597572822556933654302521595572540203430037633010410299437256599423854327099905237789343440667004723840355774352104196090305151423009213945404861028145814142771229691632583728444807191488166433415432528644686803219071123178074555452770251100461495294213828669410140324163908466749883290985632147869501919662253423069020751014083322923307965522693156415319395402820730153486608736218408959693789513842501173992907521505961035716895629362288183078432087814031149665882231825863298452904885993445594391753736602809358823419978081868570981605488813685460389908626177482977994627550601536846947723141495938777951425215113837989032010312904480041145296947543248610884460414956305746289912925757984837016043845409542944048790918405717408332168637856183044387556308070088009855838310946917528974840440408848799582110255314944933760701012231437156880468749148708889093264827038130463569418495207778698767977617345364817925872121652008963878631396869012927757029255655581961809273749749066324799455450257215964137562443201353266411057222032183775694226933354452618018895012823010273440154350229459608508932257988832225185702699511604877449915241137051799427130972426219268793727015493656910809749478943697172352929249715695210853229472836013885348489710770852647706698624367535445850140887599370857565859002365676511297534857058718853554832715619116954681019338131549978954742611746405154637521373884608364604620173524116043036374173839354802791355870556110953938210371924937240709961461145589227646019371466319382142155618316105942348969879867160153596561448363335674263720553441320548532051196110857156284367875414831609499094059214070559820347032999734504808997203213441184683496264514895341348498786088083040417923178085105516090194750613839837023588754963838409653883890376442311608469489629812730114288069406116286014155186030291933957906872904708694579688952394576145429356972809382977045888562358638793555858608810297697526363498056199887692115300547162098643385942840656653779772283114230888436421615676966132182803955128880544966909540169158874960946548567324128379160814469877921014532369751010090768845119438261221318213197455232649651517755423888222634376024238549001452551308075406496174290974170770529958144707622028710524948744196391174717771595168270021960230047151688462602119835854262993495477580564535509228194306912790136118615900298631776812482277220589195348998047874191510919721354799188398845169415977285793248666649034736334146164022586348968870228965424984653921272057928172169642322349138163637027357044365003313737425134406866715263953584382235105187414733555791641434549379922715563704885351492021465561532850297855088340075016800964808382835305808333542031264600356928385039574719547155242333295922473878841058700082701556984392217722014539203224704268996425577679985526647257835590114362416163017614546419976330121622751835122794906746867947570652946300339914795139774035592730753728000772187522743379175974576626877156435279267830944075429674232924048205512484324832208679802938538427308101239446330957458477905252982200556112866230667004041570863559760107081589968693100216012588382575833343381846639832529843203199496410932093615827712981979315232021754619785376949764999978614937200537616408380679840975850537151679756779862727609963059648627730105633790287499321505005847307834082574200201916626429515127498928511348372238036571006944497285713957747314207713680496157146343210713527303257360578357574307682401519470464220260333958248696244529348432115948237842245368963131090607518327775332954764053546179936465190837401347678392705507122678995051126458916896275780523088484806059086265583775497361059649126856004891775760635641209386197984858354058210557034908907624557358471553941813495228459664682224025868784415400365911324591284300139254560918596270137440937521214557913342983365820874192388946992900383034016367619634562833985887299208803568617216964182255081776793554595481368316420273904619536926313827158848960665443606101239613769819312574573057541557224849690663226075588531252035785466664319728239755037013909937674612311425912217379067865153305609308210469232626474623301452921684622525499464740957134546826435768189656210175070438715961988195609252624359828224182136870005173999567276271139156015481250755362615550462125497750527547376236317912586252555458243533591864661331136353034697379839629648309776428071513297239995889525722011755712376832651106587313606330044925428703801508037606884384585865967244085541964262393945212340676621529862873421031859415105080415387613914205880734622452798218569970458831233518103858703116228351118932243569503220138399889592925195374685258087093142813387936312379041026927188837159315668126352584790564902627281203957686093567600480118438869944381678522109294638930115487671419235555825792383175102197565051559737279836886650436768453572304125092207620756327070581047099000416419560571682564590042911977183531468877028153027087260839233783077765481480705907780867862279308971104563212840735427428406127362385357863845197417155700784645527100359328063595577498714495155044931441874841546866503141687133240754897873188385954694590231940498860021393514227748285203253997081451769252632510887061154887302767752865502500963019052303596191336194945728411430197232461562561760353797176131006430460914571816899240752801306016261278916718072839955806165297378182575027626613642805695227151423525383250548717715270004150687675398269122874972012161747228154853225176111158950377875895195836017614238251188451046723400296845047654668763786489875418689746749263113382292649156544083178136624633367504128134495442819873643216933361020659733752512629645561294794590364967770486652462574509146586183318286728573484715517517872546934533121447465553386222436631789197641989044513197713828568864698438630050767050252466390167734626806750817656171859729918142847776058507967715742669294103677450846904402549627871697311116056518095786006537083957556011296768684915871631409181822977255838567929355295633713884352387337604747511068874929844611395942117510202449488917299105147855467372392371684667053212645501990433637766603423390828883670579577013312653924584186707687883245613907785764526120351800521650433437244650071833377328871800720172724532324669436315169127390975435592020381518690309271488834091388073955206093997961066313245023482276865923707629258647171767928523413638000244868378122259406932432524084638386419845353380978469825156331695401489785307041037254187275388099128463857587196228397125188414071969035756171927718925003125000912674807925597833976485938680996060896021541041007323119069459627313039803332919512858602609857333925739494885544750499228069977548021145024510870799307233872646571516857051176421682617952207500522112365660769205264679335804976623352974207275358673194817174667371740082324131211046875558200866975341048627731926076902530639510021567251425076048209460394274468806475183432267709157446903201109698473036075389841670941690180715167202582676606442531411976170985973593927864501656233537548943079361739838784649675670661667086738312715707622445006138484672479968416475486144283053713134085977665668884530552177544533510402495094808372846463856873954022326257711999838631121715580400427298205865432527048302321855397476984202353819612713078753666764560141385679502919778529026147872330412744201411066771759226053530302680500312269337743283231722785938718088612102636663602592557790547760629721285700952550952900807937955641662529484709030037403084990109145576923190489440017344029020870593144682056076754817068040745029820843302028298150183563201362730989502327561649042110050627283373543587092558974048505095097425778397675281437018589616967839620886344072209698676031765695399228842602576321716944349325290190077762386249437390866704022927827871730915020669006685510785470866964693320417314475461425165808624401999587834067276738922190103074120020819790640793534398569644861910134153332812884446923678964607142440163927796129123114382461535316938417410284472668845542197672221713282476674397022571042527362765355373475071467990942015183098223733172503324823220694512921352169638688797797673620638859285163904850647119415481650328073546895025038971789881340967909769340227052099735022011975464777833382771750610754282599816701851373895595626048809479156775687132915368537403324945514704057239732344697317354984502633479844627866171032191506239762990202441699281843498174745343887394457813400008912012692068782316237867411638413330732984222230058600804037617191174567164947360324239977543838460147185380823640456697347861493528155700141611167054956731081080032320115740573084371326994555024008154716679815434729060689508948657084503692232546295750947950291789673839413611932282537938197584164789433827668497136424230900768092109171954773082056433247696243533006245438943985153840361397229736939621813196520221443121494895327063985994030394262237595961103200948374700264105497945205812606478707596993568463918806316828780619117904292405009056445433850124516354164782620652374507593428004103822781588615190728539587331303460036345890844771362349056217050935120817431926603812559488322053381059406133708497449881107612078053025593538199075270594432496201299279654770564875573099462075783580719202130087854490183833813115658607039951558454226338160967464667402054695069995390748730580459497840191941709572364967966394502473875539953265448746386579506310665102738812545762828242807507507867897664392061834157187370550808755319128275312027075620401405885450606454702809761302869659949826844592606843380144694985603089050475615031958385351459913905638172283940631289661591982842794038212741005869986579885080748133759115055529328369761353148417229830429844514502879507966516784340911424321550617695186023715089616685741853136805883299185891500079556200786436723323327308509150860495817465266500097163310815759558597076022009807514455507067175150960946746216426989663440977600785528713703528060963766232403962097350296646502569544527108499642982378110739060551783609960658743179837142227838966756815337408569847225339763236787318984461342935327341234282055020024657893052290327611271873299497966518175772903762940888731933191547401621274726237842457747224230961688893328619014064324481811359316621687238108614248046563406316739791990649542754875107340603155632814778852392180070941411782988580576495651689392464296632098035688439268157650727053576863278666256070402696059688957421544728142689910439062031113852861567502517608817966705476675278590927778827015772367196104219083188001983771204639955872827178469181726054353534504828577576278849841517817865538889064626429004628187188623409066036101785205581109151132004553365313221078307713400818612094173089148410573685124953752746265484595768269803149236483577343396908355334535736301358199800881232870192962115445501103696926110009265597844300121825208986528475112341510073089165284410477367893666628463741799687670438562596311675290782864540555491476274717469575050228394669701162903657815316451972761441322477812389406536740074175820004645703058350791614512472716946592622693310547499699569246088627184068513359266382090385849248447526475272340352302981257080495909721157106343232013525374686891802039438659535442704233412297404443792894473662470816684836803657251422000547015851138482411158886087932853047237078810834112173959957857883978864311519560131106809278687001611145934649245993826241901289216059941975291196269780611918231564317974760569801474496572153371538082891330568178025447445015331605314200029825917837651945924765877024184691307418346953597852463141989083311445925912971752380123473841050255974244265606378064706576858673103909180013519085886561997760136952596234188549445571756518131082268278634173869987449735108312513289974748639204162957444276466694915435708851925710683682024684644677723427588209875475759856955053922834098134822650798633314235607553999897566933571729215151635278667637482897286148667009552897677872146845666388761247385994801179232388778045977770450465036391946084755540756259387197952147428343040141931910725736424169994395114530458942207926067961755843710300622915548155650290294626164907396540689699522222486716957476097447320006205847839278781555980553970735083879009314255216757935707495731209979123194463440137652959893939936736069320405133898888307813565205555561372020769656371395853004024143677783026174027018758669900978643938712766187307006187655659854469839320958760525242091840395186678144099634492230782023212194910097572600524722293391288610716628403630448314487157956082436643786781172445742542717145925055094183053113077740293330187013192736492033853214163059413168881595725387921451308059881641188507565222612274318925443793447760779175200618228838706995115310816798442041819823145330217693174384309501709348653669532677712958990160805261205933081150394728760356429659361773941789820417996193363121665128277658073336486036283882240321919268853624322000475330237026315693798503949435170714495141649153031088875302843279108305965884372632049348708454393167741087753990512838371995238988849767679482537547006768745177867195060233109500909823151106874523194824174891380350594750180364206606388146168730544464645969777783720183189467119532500498693214504837092507080125328160288321580683005039140608338855846459120365092958642121861940682941950831873275470839892107151280870789760100258102271457580654383559072477063859872788174432125619813929050432404428521990296013985963623076596890097974174097647724436130705769406816073516512158066751430030159079706495895053551957832900902934823675976385221780615068013197571650547852680112514264077514186678527285356205842916066375728069675170249693534328479982941701755279830137148166882899513188860812528812716855519078756594919377132959192172176132021287981412845835203082459511742063024395190443185913705554300139557547643796977127236347759972909472227346837604343095429094184947673040463879759857839418058630323795065492882342349065109454296551985610156912194319432267540828166009673971995901499935014714515350504926790981498174045268882470605976326915700383474630587060953962782792465652380660771007658461953236509834902312927343965957956660363741313113580212699443861980699193210676778657726097796746649062568932011630749250244250605277622045254299698736491834085205480355244060383962797793757223678724431170748243508093935066737422277862376300040375149327125446696369752884883452395086848658042172976746939971049920167982630454957844854190906102352429177906009583656173348341934960719229641376322336016569975769468147765798693250417058850475233323033627214097047950541210484882416905191366487124705086539082540310264608709097942914335750757088953867707413755671005687889037381565561152552441742699456621859825135163723311782939139110834384029291802854184798903917615527217028605159181958921915815270214890968583184143226978275564716865613513275950707757033936834142224995609292714894615795163219278909221483520130885400031471220635287461416743209535070152635602178251674254184213798565194521454491648621165692366579613755835638978193873344084878918887215496844014578888685495497483265409457809865598558424474469292931170579887159391638839760140581810792562667355671179930894770075576200205409105437966557488724089237610974142276099798271300151657652813767199706174367963336416110286236467569315527727345672482485051305079850539453000534243051534271265011560459662603329692134387722668998992813833864859551466419474231060770540933119809447010101118200513398163876252154012032137155870715391945879334424904295098333604462578816534027351276236008342642527938147160129328179982879943548295483638480066434051278489739127567847318103941310165773055728549835352879522219327537168331821145474266153832100794977138483923135610155505596353730599817408087826819597548891718255815266612985444405169966673056545673802580738499993075806500500757495871521166749863992177473757890448480665078340159115417451119498073782983687882808617169679357226738947546103366750042804275739770710629552836958305171098694478236380120537662004809883127128333614225133616112345732970044015210770661700226143483031251272161523396866229703643434415061583347019994952471727929557629386484103605127611750644905465075892439378252946895284596199382192953676365319044959757710941209703205129007801627118196309210139610269753031960360391180170561758309880924002138020631206883042733493008420531765775836766150055230114127873157388461724853184395408229736934061657771575925653413149071378581809318718924486151501845562330415560750145166013237508724597682297964483732475172262025601070293515543753699395247337106192240594288127297128747561488034023157504002979413959437887808154394831968543155365043216701918216776806825532035178933895749139753655990304697018751569681392437432809836330351284758026137896273250122469085305864066813255969762048991559979954086884799900491607503605111526486801717144872056760504373640816959980299662965761468771241366141871263202685738269965928950196192645899956064307338062685377963301688542215766688366100325860528896127129216182914250498677552169495044222562177454195751836165218609784986211611279807466104960064978871141569575335332917811545548754057321149847219490375498255697312443294117295396863670681117932560638207308739350241867738288116088084034109499622464691784433499164595522594432730441061792345634714679763881715016321061080529658400505514634535107196229939007371450972027137675348229306003628347778493610212070007226166021037160404509749026914793920261361404454659708012669757292278695027547852372751247040035663920279289835167182644966600193143841941045906767405369595486327409878251753421609401064204195082366947666555408070947571008653845399782262036071122574920262995071072671366033721834059767081064562212276250431991649803082373444773643619705928986280473907645987758248680720281254936682409733233485638015289186538095244235762420614764510930466076817740707298014498892112791082927546029812653069350037936835114177657689773697943175255335820445767784342732967421600771879664963304968409081361677172223174819206700992198776118933665682081482271817977062731692953225299549416283015246859583074501162614334301485491765434782638645430793304612240633959375143953649618413313317591990992298516840552833205992391081770049861822936236599976798586361431410012835551125317438694841911380027425553694061904395397841600177498217074336113556375295497528748540335945904599332831131273754364851241780715302336132532147322040493488951762027129596207715107098509604889317674318714961861536113945503422429937414406947111075673634490001700370808426749075841248858095847855493410769770485128438299490546474719519085386472868403453089408620966924812359431017057687103534829994080633504449902691854776460323409165192727949559848364377936969799172957769836367850642860773288832663562302030455871820706389633083194294069864398364021733945562291235410650230675323933486351008104969895771859228378572410955592230769249097467234783806440883642329458936477827283830629359240318305416604313380264717683702438908530150098422617369806322374557336239135585260195061695668669623534766333505769275281922762096325196251716225058082105985398040385085916466168191317692287406344047886702288580743963555081735109251326594167332016440298627896017420397465334041267019523556538357931416766295139831594138862609784128577572314981602357325286620182849762711094059529234090314468119535649938624581072000056043892700126564448658838378816913518005339277809176999414560656891830754702711223645458447137990744049553870694286587373307266328742817856661579026436700720235911939396146271647811980229855753759894632031745468881092400058743386880100265367696823417742329726897009277594923805545803362201189359044329610051251660775404736789009463599692475872415487074207335466808643412397678851626965426315429815019154408533524803749394508195715536835836754089856338018579349687527276566670489380002759783940012152415460836132855609630710344078416337454731445354504437641723205525397677943548891365486932773152072334086686049605809149543462177079470601270278275285819295693070481123950678391365778872890001646702593004928132747670051892312476769505379200475718507375504127226920015904532890447438683133839724272175183046340406152420382328581583922263851083729634014222142508233833642337984878093126478048611657274514022790908944232049444398423709529228223133977091899382856921465794401774662178718803753429305198232686629259109526679054191246278181707316284596742197682042075589847422445861707620311919145413855073829242275855830109306129284734431001065827533133916760441568391536439286310385681331262194037302639141018721967453203283516000331618956768022657228649522995133066202613157456032850246980992428601532973135263198358222482006550008573736402525472513172798657639693203357338478694103685810667255544994927156943528936081059011057848838697271560967291708454024644610277923448771659234493077239405771705681410378335787415302196144772265787694586037749393054964333874033141270034715960997991668016721611417965561628578141335066017407572682428443302988871530348511827284876079821754892610217458362007334434496057567723121419183563510818201897437316814315240217053570895183372334055964231824312658323087633970790080918018289922488385141574568087848394020016044100850750833721358494650436894615661579202150231838998528452593635383909212945368363167612778377428064448098127625410351526349553386831650232501571295149561682965286661068807662734309386565474283891626410835064658886862462340527127940517383457021330004557966782678776310431716099228864926951308931337808753605662669759066598694316457309164325988002272127663077720542055434183294429940394789942400442217006166466620461057997179123784741579025125361790140498989750018569948850593354161461260254249296244676744138112641391842612712174842446446243386840622335556978967250853422945452452623998175119915993984895153758906410486923637431219355980672520017646288176554885555514662557007282868209418654582036927916044836268938533797425085308934339834845518751841202909847276134943688679878179100537376296129954719761467101619008162404010065535531421059907161114212185913432914975894005505122668063590585050724895763489962787077657880900332099434985267952983576921499720925044327420138866952791993861804177395929523632950949443994370246157980148054570162162481089120361412036004249269310864796314163978030243075095346079210402622757163286283716372054027277335077015425106028519637728719573680656565069170722681072513346120653836315944438804595582276170870714534054459957373965806977413580227606732704822575320415283689126344063097622394339288180003579587405401268749366227063577829550491417968840351494333821828962781224069021408856327615005182050200769431752714852609738957748287620845593147754882727178407468373255319271476464927892971052653804256906256461027169646373207241409074451495972694207304877326289672960966529687985172192657110040180324909489759712949613625696492396373657319901132175712978090153689930501049052722817977821853330176120423520148433838480974026707690071231122295418119401667545076899498682499105425626917130856509148569351307403563214827139907181284416675234849675878473200626786486433663590790270629586196939327960262553083244370191712647115963591139957969199063142816811394321716015393645029210406232798328247217969901562278604498479423227566722469365685048973902636538545962805721944108297494285168624561154210206709681571868087077336113421453064495059913589694593193411003693891879229116156727498221022757510870229991364575004432018906180433057355193173377074748143460007680439224547056562833584220629857717917047295865936422203074576481713244893318463540095529970647839510335949036208355759450261309458709611935429696173002780105725529645866155561150969887618206188575281741866723258973712300475740821890118933796866629380116426608775583472997456434445256285522720327238464964559055316346043355059262106371072781406939637339799032723513165368074329192777895631103259559278643079698585393277793662850455921514011512909424202502516439526575786763418447653760296447262195994192982374713714125186780261315256884500663513067279902540015182754296922324531202312529725637119411947373555511819300933770513324314528957219655925878072152424154436537789129190701187403039273023613435991788748411217387448644913704686719076618035288402664630354709595055158103151044854032619321157639785488859980884245107216383431841418298812712576130430174006439978361528982218592466397666109363142783268509823436927075899447853895818782928485957301321005011778656143648555254854826203958666015502664971827338733250796986716029860792316822724178468126068214664595806758882193000115664401347719412630191211141583155304864706309598988413676230048811008142512497423696564586635497870896505258740391365486219614765406298286637044476128283354640639497109562096659736073831516890618083686882861399751147453437532658161773944409862372227838878450791653682589439515631588582574011066256368777819104167043273882115485651366985283718824436923684959822586969882306696273232270326512817115918255429463523829329811592465474098254207599242327468501775187415661559803013289588254367623183944625816474889498709057116882191779216034297835649667030479322743211674307758894171771984511496473884062946985468537709479856322721872983041851332637991719181535329462918954618109509284322824819583957407134163329586192177912934025455445245893932047921761974044599228509923830493713343613798872200503775420786432159350504182637699710364622957051410216680748168547040914923978277967063727131439532396454911910904983516457624744986799269790204908010617833856023812252946589867253320883534570973909074694848982748151966514644989329096004580505375417588454660123437309242791569614433743023958542640417640069235907699045022438657712450699734299221904930112905084644898451533664882036002296141877291331638052679851329135190448648378521619151693777283576050384143110619145801826963748941479579968786324665725985483939454377860711193086697801494004799526463334461067403867679256374542712064133206188274615268125814030683141645913841021750160385352999473471132365834531310350532526845533172459821822607473442334325059711800489281919768801385573259897088580693671998129755119356797094990502801229729295153262426555727627326329277486136053919884771292154320466200106677486472245574961058408441822962110879293206048096626299042796804693152374789377199579856471652708652202544893744274955722801127879297278581032807104220296461039449750317296165111135061379207255516109753496404733329832561391904276604113968552765282195918702740855630502104315312228279697554907988599855291064063600420204685375994104404529121007751992070614705695491688811488503933877620640617227769360394023806221175360000737398688940855406676858006203263269900380626315879452071293567238370846722609786436259973167021102597327568977628028052869339722353516688010188571077562183333779801263773374819917720327524144954299884849466036126587274790284196319286608814563755771364721124655956243190634113070268363053063376701155011156540328926853855575486603780430817445901397642238905656264676322810391677051382357780600991951253020560315306915787120915202220577157301397564598602991180576253544944331269072502062818154705961962773306901023481586297643704663025866039119395993357687353323643917338461984435382712471456000135859708268174258904522476266579902129290861692603323717355295802876813725344293867130332793974774542903921345441787762440101980093312681166522600184523770271061402936162532106196770779936282487538344723019295118988348623264606403249834553776509905812725350069847793065343664733716031921153158569638793253866936796625400400877996513402098797198195305691606584827888938721764896233667900651930879123777020943421767866832006364697411263059428262097706868621205573381586907749197073821213031074631339919236804751430800703099024506109520868998331359331862266485406837933603110917216073297090916709171810840414271270028500164889572786417689318787723273420750620143885922570972862886542199548326242150220705660330491077824811643119558529774608200693415789130714534584023138907827613790627712598030685699311636793983708750443370732950047109499654862118767449352316829944006278761261490943781136363874358347325091293240773698127839679958354640776973338516128385259108067805763734928256073218574089085989231461904901107924167350019808806110595406405406335759461423763204067403750992816957365591420766829684220019740381560594792638368153690366006963414050943408368333712293489250855264359404131158983797882890708012349706748407835611895537394846100545637052048443492106506580672461931427882293255238196973944174661819655922947586937109619560918340518093012045405529576772552426238842244470294223476434454440003730210795104631020606732844811834535669490957304294457297098112027588422334223069695336587093511686870584183067118218425315275895974355728906735727608532086269616606439143837321035173882788877718090695934668046144555545826448077957772130925787246412127471910561115720793193071204268034591091017767947946911587249891754510382557342743416685294794091685845042065528709017239385460323075653711183147817030070353088244573556247669267609640074297698434934496204804306350883414228315226112930474310173573718486811669756214355110841732881284060124349040993579812708269096177786159907422049737549797275493300084242267342099425273206844329746755040074623269542543261205416498556206172678633058693301055638439307508827825142591616835426499772330330559866650718959503920011772442445150729487812357991024824408837453041180283393256595587995880234142797985746227448115305535131159669756734885520306007565512585914372765083509278688211299995423146764780581848402999750066838883818141609646707267313401601100162370919110420332557219963155670214158696982623520936205823099047233350116309549783444359984048313285737826045446767293915124140235742350441558466438262483219978208382517283974336604560335114933489623991128256761480837897454409231266781017677611370482579425881278402259207402676387726140167267413953745192450702852619774700553660388290388178560017716123215942494665161519362435715487436373716340058036632727135393464648301487390005841940731888996554112532755941468479836603599706201345851500557939227368535687226257694375832584983677866854674312997659243251252281469654406030985354032872569655718211057829891766583181841632784129742208266692232836211909230598371656824417702442811299587687601022838530428265352966644818150593087034311642778956476336585365038173074390739969956944646489190423213774868062693343558737928900050352758999992750167465835539360521479224574869294668844952695641041798427509893423557496291451746563869238861581411862793124010088454206033813131397783023567872116419713587487946666515651170715282950134976862628369936267138813748150455152610428605674114714012553997784135027879634556310740075201144623604346205373875514089068634300138551918085556839637233673487973491025238855047701246145789721750918889777654737943511605664090769693132830261871451158794490267479743686470457567807540232325722285470715549928523703831528125969732870370837386525057840766721465829215537357800558830432833154044455396254310840656707751523180581796372063248156620643111062473343438854378326661900458641783775318318209746099093306748045335072192657830936642251784434826776476563093628815219991176865814068406951539879562703625325947842239623365239592793430614696576362810166616258918476504495419092738106280106009884844710060480044203145282534016363608000401283696227779698138827634551135792855056787406980777353632201574086265707935227185223538160748760524097741358006826691727325362015270374183094737705974302312257941363749395718919981856693741264523758345147459856556517956728427777680355932051350990276053482870505417444805122181694287713716204156412137034417090986746000145173368578110289452301807421686365292458521021392162251906298469300026358757666913783801934429297256935013384346912279914425225371459947783307032959337899677590025396004370263594129252796274973079643544930261644884386217414300803605810329559455737559944471428982573679702566252971738577703268976342050529291885628446036024656794297251762626700748455887292914507359438238077228612835323657647133549707663622920124958337576032581722032557476006948311290211199622494896526003126058628854157632600131175114621833681266607707260026232260215523446823264347703185704352960092303520456484931486555847258675718871840069280101652382271929932431952156111580836368875830214249745347014887139854396909117592615718222497716408573617265935072146078736794166740905083635925285272541256047542529103323059094863796440778159640288496108960843280884357939755098897842887175445080912837992246425556076382926936802269056068747728536954328378067612059911609610297579108055011302477395930015348245587503866933840968894674018085240099727904568246618445336607351281513761768697870210740564954983787024505464557418365143336437732303469911510206143176989300384629791969861044250614834785538779735288536327531524303393585257298679003594810607095962596177301176677297360423903710095831556252451682752306633884870778366783062377866395818151677447443402598873127911106416049708632286656787040986222561301863006767195249496742842024381618245589956937549795562858975177924076751728238958183253129116087631573458199505731817181391434648742381714550978524459539104017056252353767272189157812230571665136639269931216391801998301469198641037149088481136557869132659211531907766633777980845330612640489887142594756014875763274662460388225655636949926200169325151882479467019029395841297919410140363587021902906088492271455913563982228984415319139807888477531194938327335370202977585309475434574894397765079051135793432813009355593902668463518336996732394308576711712512727800473158716853132057628376544114252066323552021175723950424726465093049376315118587247209341864178803554428694568405593785528016359122684061119354744523425151780812017615037459505708953785585218130284500767182519379466737711436541857689002965616151445932975372719512257557353479552720988927608276936781966061680304258839979842602916598564072188077284213175474551255529956102221691242877283645597240777971310895270822791689596016652033152925625872847439767057148492877188041249770788996401112198354964877841935542941028100285857231630963505414023616099495235513774262640386845218474942150124490515790283980370533180454609812221754111389334361352229122932108020068856589604638575124144722510780726600656219663333458606878755893907751137407815300311265752258673196026454660177970034611954578068619584670798201104087105323476942377892551332866306629581080145486332688408422718820933038207394800376499389371846966543905022392213826691717882580310869860305127226538309233457761055818753198387128578504449619446989357458388160301876350850163423084435342463303346034298500927864547495152582975398301046621710268830900869092028485953886451368251554474242928444906260974299901922365535341905773446610516931971349123746176999703207182083934173392384243097150780424412424055291396345546086856757324403868606578891589416231459804078237589330345972145420555991516745820607201473170536740241289313833452872704797635906197620001897101827960413676811221355854814247682828757860685143757268516919822077274437455798609218327895445905724661689166579513676187316907609628339709057757847359218912642374199292046909537436340650308334089988396475187812005925587417132822579099268368549742314605674123698750471013370061400232534975188524243869502232105737271508575743604951056468895365909219278028075231950212195363404216250397390204483070759117628087952700722008887552441296361305043246061120433123236302246756954268140173677249690331436584495725465475569149558520607941898216370502901116347759535259709944798160681115278274900476119691389440218078176711237920944431139511588111596222213794884891882525488659016812978598641297770060820424129638331171926215620552842753720464082859356838999866379866838511382576837753576602462993698214409637416554220273883113474729061164413041091444773629631179870966232923570841289512103537029343358375731402196649738318562618949725412063058908355683030777705736724152590018130458041628345630083200690733687824119458455312704829077757177338475148211512048550946496992550709923427730318206763274334678320388605057826899651507300856223202269490327008155138344325864679845882363886994694873737178711741724265616541657733200068519684830100214423939537375482258724192459265136768284687819494017959339155145582715917117273568845708900382459090494545350990756065522083331086216093763584688960873370283469571003199219516481571244082423452183908238672100710901255777764468712048473898581364851887496389490780276845502937792807910393638362370640778709728187515516105637818102472081475551202873932068156890011160673291686070557642928971653045899363695442831102227312478158182062377118036544985614783776134977225610797873831644637809085647593297925362465279623525699688479128802149029534004391376769839683760871954872837477621488125817364324409496515853208269680738963974256928145811579165791021752664750421699156964600320471320644406388041164286635105926021191804315901744502391494236563198703536152151663800470085122719749938326915121936759680296033189833815371496601565731211684678554620139478137258396166258947918628218304019829219298321536263426388593317467372112900363252188979729057168451549731628677124116437867120263258590643792669515439626773967124801815614380347146628721252327287390220950499684355937295540634128491973752420946817562997963527623247540475384763836852612708153477613967570906436903952998609175048699444724769029963273140765415773917930136250023246152048562717940091123035317140068580967078836755363990261953898910282991446319562337272992429275042628326689746346790804142341008362172440103581404729222318095777474603207371903340888905531245544987089272549263906595860147732344251588694102356006026127288487879494337347381255617029264767346415437517560134744696411588404203950696613077823314632140760972773203160396609730019753092856056795206907853841092795082587843275011249642347612301339138680540088848868996071001910940591885662161616156719340251634070056315622740934396979922839775469297993709580203924067011095986938976398989395563421111934891952534488579306475356198840533302470360909420940423065203064295374347582562680430936344475550445131084374388473176376202226441453094732402590050330387910424218045751627811541965283043719634232236035953844432248105054719201202558784297450550473964039487809721294241094922035398276857079820941419009742989170969711689956193295255135214739445888533859355067083719192548335108657903509166406598842544407105480337812930957320134668839634021227572731903256590996932948228601290195451663182419040825267949908757282936303964380439577818126837709796303763370079468718670382563092569574391571769542544465874726699636948476401062089721311685566598030677830653557832857786743075122260680639462943808966237041416256625828127927030720480550909108120432872888067531396410727156529858043298862132508749024831537858869929595182042695274920908984368535642697617310914782474162209779851041949041902767168228587623072996958374202858350626670393530433392595150131224337486741489742369054309433628529978294509255865845676556103293233041207671158681602019502087648952262056322932238278167031659121680656090629246854670315014130068680020597058369786736456439583702930842577615547729257808680963819565929339115749138611487521934268684466941682971426548867626156457994895334315193812694142489956843851688153737634915731762086567880293567301734929975410639396723392248615661377079393909261603365451373342513499272297291901458696277328410151772101868502006409488574732685665288313539970706849420485707059729360381476968978163583037480211152598122451470000716771150319940274094765149453355214231074930033033221242463517175261535919222288390837841065113046897844802991620227026425217300094308508739827264051469695071951396769878117724941470723403412118319662590480152849983784285098659536847798834676296900363138573211266014389321015876853959890464006184903064412936837582883740674256340775993044780087532271077774269507801600292361224986163702791560190994942484244677367476888160591128064091363812405037901475839973331596440187397210857463233261848712972445509824519283037415624064867904234248936546684092947373454961704243616345147515277242048433352485023423321119834330447911531852651715179658700234639711008069075666679087334831484153675414410475867486833567044516140110679078627356697249629358612590649210074230649736900092891618827213061718258479706072607689777020864417457751399983019813598563482236971434430599791634294919850554777638236568368727319917099215190679426272446309105631465616129490278779517562437174711738213851002170083009934426074555810930929887797988916748859697524379970251038575570310182662163083562412003963618606160106517549190874856339827927715240255615886460807681187436829396303794156006479727827985670294953459003762938313878702496595435411443575499307542015329349087865842408352638276681962420150528198951076297326521176605954576242667713222819078752810783658411845812705070209234085810388438681485957453804148262309151812445795857590431926906798415692125032263890360084308380635888838565221557830721575078612846028601211502883704683618705343845441028774102861642650557329159607400113993949383041097721959905752960149303314542716264973685471349963580582720396539681568388671238294284467675329821875088507691972488559734951035332243109351425882313176716184604906148437171281418737617011029628862318487748680254720655831324140152259737615687588824392077103092291628134256820813842501436591252292963613040384480415065798969338832224555781697240209129182955284246402995050489285648308289173720285225486022653889403174545694841302586582358950666409220906492825825081598071986981537027282044315142530314509131352941654884477180861345056309523823392763342959148172902596699206091279181924228072571049683142036476580277378653744107886530139174511911285315859693204413805236549433426241158697043273210487311466715415025242623078030098506435722360981023973158971502033848386776728531776034896897183313243040722069418529708558584676812681004212497555269209985658711957526741938671250713626953875652981687186823862953195924666452072335454262964159278072342498743543982417412274225740049390761178122978069069889316518820626651282956642617770968791638488413824744623849370638584688546891607088214553792042671187085657743640144846920038874647596087769392128085174779811409952290928061442335871643903043133232773176233121266470809391775723237185548893039184867621131227407688018189115092147715740494544869904972765183073203564879032071932124723872160060897346326212791256173022891158522462820851358598800269885501943439567736562213085184062535235121251974406743742949431626825962501309592344236212439553055408485541693863395545741464059013444083232887353247869237067088450410425785077298859067178731425525738899669083967142323425640117698609037863591938691335057853621424453378094081312237677560898433020565734977528973722295661262825209288428580054106822427137080934837786834424944287911325980936271650865947473998461016141796280221319814907108223324691233282313912131533989082728702672349830959019187978266371460857918979452238297815658964363515879855833977686991660347572458749996889493310427272928846414319071962557433122557523849234913539618281409412352174595572853123999280722288137831039820171042783736756410964224751245459448915005350192877965828263471602847548208060234839186662639058454685707265857462709114508306474512686544653731431127574763889813419028672507148576617266677722394156263335130891613298365127236897333529778299208295860898548989221682363497126713824162457918745112252811279994901036382004284818192168781319125170184591087096663456534595649458888801677913896284910007216535060635927478724643124455858882377723958725123632815390810985430599826821115484523509465302187349675142228649041030711627780429072359844458880629284647035912481543728680261739443619406855079519686651235250120766508136763062440105788333986553227982184253195821966020757779058878246284717414906169566635932080387780059053991289816252768443058498608874614805085986174268681545662988034688166414199375625206811060601071762718982213389767652681699393624273398918965824333474991799891373376486594753813474364255734662400058920953686485495125233069762038497520039159600941323066741807422010446646321056967490516421613662392669027759277189545023755210067364417879338533244923034514713401517513460846167644204645104520195934812627604018454042878242189221168392600388824950721406939088422539734446314213331136625379354486071784091823767888658258564856238161020584442257934449408889536814986637471239260715924283395959557472119951761912658483509240346532179132177601206937862048645833306111714316872257391381996163367462508101331843471376731592253688514335494811853333114505070768580682435664317473049693442797808932819133192076157252827955489076343560585603755214946023264725297334398453226204182628599772722830343964961988692011903690075039419786314621009125174610512128580399286763957958439962929130243375646726749380875796260332902647814030382714909996879733173623671987884242782783102373022464369896919761576650907878948979426965871920587720199132403982477910843569740197919409758112438560362946178372384840851894200681698174434294656605405936816299107540699988451719364204031285749835844300146379938933120417211931331906069161533277335614714153616579414995219960230064969282105537446472975852241865191879309758136656921968855229353229933525433930310371502499241284730365948268725709027256649529140352242133575845254596988857294862393272634235268974442500709053178471325590409698721016509779691692715821362167518262907021800244498007542998348036843580368623236759004515161069951640163848045803030730255358307242147325090375170032111965096740285970947802341216592888386474881318808507760889331306932593977798549768087123315495632802996029558230604144985256992971548210603725655003950502898981137283638954946733874889176622005338275570555669071686142103310993587075017355939883293582657595816106902592550769774246950663255310940166379713348855982056194804417958421369706009701878904682865999693461443435536567611492319820595923631404130926013056756772679274209602550113596420320739580678120483551955732371674017267029577559467776041423130547598902745724459008897881685472350069534848254907413264840922734321803838466229921508114101924705281235254369196966240225044203184850244247161218317885566419937323479339341815607145923372162123381794655731201048673969321411439635265953231209445103280616187626516110190319430728460480853634101012223161880669599466556747887251942055844999786671895767146538453008228363586550236989644579813811888558152989655902229596575519741499136518807523482638424684985021601604182312250610375331998074255871243808903986548951701351356299866263974630106799461656788167637998118255516697990677271565517293557100742278706012332079253725029315134249312544326099603776440990044193888047317163998958645788714961527530531585479548879761479022721653434914708771657772064994918288242513529564738487708428981069357324346882979808882697029442067928790271571143503812823048712582038218187675745112236020586590887111828703994201147404160099600915249450214042890580670019880598763035656433642935124158120070800361070032541233591977884091292087684673353601367975802216105355314183829262723532003551816479249255854708999012407709606442457553176027689694841148819506652448232234552783844867480996231601052496173904524727567935925199671392333434207170352342592933872842023176682918384405018328920616413949076092862197313334450760635402986853789105566813298301460298271954646291954942767319615560393824058202672153567222088786520777286218487819971678380844225863551820565291731425362467373022830664933601113606293504801472843529200670882822777372771737207777334636951211490626554275960290581108290371376343246034101047588424175318510169228886992735555725134594411692811330667847269769892229249787995083145683530807825438124997555524549450373820678284534569310025171468414241809894375956464167334657820160124105450643322493079729579109198326926193934725114552077970782036672090729589202994977891527758590021050318897909993238577820696130243743553365056321219325442032435192548175419068882623613222330203271510060822599697543403479081603524790152087208932583904353699639764983525738620164363856678262028231188576094251885602182565479303111049153802195078266458689047268075561488979127325916918843375283691023065814330860966452229429911180419748544962234766747780397887794977800192637948409518266009623061058221203226004586244649329254495240762019855812658248509550547315717757029890587812853124219400428753523361447876379209388462106535138026587809950546771423986384685545027691792622222792496534101734513149149202547757007935205753766544119889713642583906428499412021041127109278727305488934148863297016531399012066245729423791197065559267233315830476328076706851816058533638236883463409085730929000111510756550874659032818406874130927421957705400557435787244123314224362668752330744933379370736728201461839737392213011012571847928615770821016677759092744833265690878151899162044494324782192718188844923041961117048624791788525785729633931632633152516788512235701890500442319079759982244576895969538215363920612352530290016377156888645869692536557748154752904362219532906241623373048987519792829826997314183427715007821903664659625387477185366627406367484960851014250346707605918107599888772217280419973044445189726126475002061409140762896568747093060011954307346913610215794546696277845723012183589963684474053129145641287705156578121332357026999117067127658071322081709879895541246863546198975656700988534981255236722605612050869684861852154600223253260715201898471106747588828453348755491938027586141362201585989240444439538352505304523888828154523950043158578648878973717972215341103113157964742321386796011994559354306499464063206961789456886823075667988178807805025962988376715790582214224878577071530874944095638589161674071351133911671726655809819184350438259886249038935909690459469141581025639695277385980806701382440317012783305705508925706226753849250093832741913195470244753267223562693631333220138672469728186859574285395478064573882898264190822802653104362610939580596842909489154285233854870845724225575523645215362033344120192497456338137253734403148064476803480592955688248393360196702469661552360582729817862766573805983194288599282426646119854334492652907660870301880198078607677387475672023742222173622765795643263154297636330227974615014347524288313600600345568695413695246292621469629237293060344134982503963624476672157767009864823623037892389781340202513075381322396581411763219287793978354282772105077132382161914041569263235957371982019680607078302121697691624790033700330592156642018144469420831624216803290135509133355004889022865602610245860703403645626450218806687913802202390446524115933890234680683753673074897765591886525042492709924761657216312521856622998918986507254822168853959566485971483009067137557155037946811527880327830988689812347629046115170655864272718222766663776696464109030338744095214431319061646685299205236372037255230204769784937024882649828358629053846424977023000796444537971144551006572584418931611410160941465110930400696309673525847568609341493946311761713748688389497671728504772906009953447457758205940124957519774713653811080303841453294559205802984280021467791268745708854129290257875371995500140485975300952103877814186460027145015003886924365489673406577218956349902293598959416625668486444493606478843484348284720893279283485161596560043134061767625388863579894961909240414758346075302977766551440253995685271454058962076863694364042252576738369489918395029808627778713438716679061689322235788249106355607122049659305049569797280727612470050022947318317127841869959690753275674820266423841212676288451494688937867882687223311379976064516589084230623747689660030137380024306718849598245487434394193513884187663756010796995341570218971916522132940645120343817285214228514259847015804769064631514310898355545373128139821055233511417762567027561147708079196771311081213955154818011226260195261274398857276016016612978637340643287828638235445762770518465187385140540580663632882790499221287170020474394737086035376987897749982491794380681685876899854060193136787270440933290841152965134019135537149194018864947000056315949082851766133666566760500770092744216867135093667738087431111930663998066994407870767210111388832502133788508013286237135402668658249345732367358394920675483016104421402594508373681319053055313334236329735649600835471496416342240944598544012195122569918521456446096302166898945061903164986779618792014549370731719617663915244013189033675224854864341614872286075902997025683640800372114155612439893791429229938473659212924623508455320355250348383990522584623341714719363667977242001922175596470167211816399781253228716897938067064982968277947601569727753690386183326227070633604858034485082017717368603598087686961270314153393569202994289362360480311323719284505290645847258604751680546760799586221508109995073837243306484288124751908946270989392849296673751498094721331152300539625457500542254729839030516670789530700953962986701369389292763593812589706730542710481476648324945485906904977274460463169617490687194916488252720235219395029157927287270211763189544724947051880657725808819918338508886537654058732854678090855810168666233324272186350942075049800217003504914820906680098671209892563268760151617630849436207373607593627096638895331354646250084504860279267390231837577206321977771247358174454527832226165382340851343323535509749089921027207082991561643233521700721949545148904796207558354400115547895018530638031705529111461583789720772151615708352303358281983255890621952927717153774315871009652206959468991979571391916985054727122506797599860842668964951341098968342977073972587175154906440199720757615297506967139344951980876745999667022071917292688475605002668378481581378281067062127443697612809852837905511744719016879308908943158609553972292827027268090866398600929206740528733321058989144298321005588916235425285791654539301111465243511010717180231511598255408769806091810287790332374657302391457444298441158104523689413985572975799660218856598873289991890885768198273197774079005914159165405424724832393149467639361786589243250885448537048702797850364330669723017953936637848162559458152988941392275232620289908199568112832243291237713530242125547366666784096621385782909330420830219145917691394127611808007254814742954845244168377869424810231591438871605342561113278545480207201780875481403035471720516905540941962990299465372588807310943687779367798050614810502795165908480860118521107438947295392285760807490250018922348777374193501158215203295159529187116726105239052643442852507946792759440868402855107042702181639799154701270167190946951802942504379613837398526243368635637065662655302220046836183452592728354484026677166554016039530880759676776850855814995319744911537785945434422926130586197846770917569819606421992275118348331416330169454018521189990571260989042131369799509578847390731768878055446634354028047608124469916378374558780285917842641684335805909537102314831570063206630215260275366085604647484725024237210079838384115267015052123194056729381312319591386634607281569408722771526956933746178077129457381757186187740745491792615541350209120205356266524462086169949798371163498821831567578969156463636051187766991168647960235787802924889475922075503359635066557666934040347654218701202770109357998624820273799727048286923864752831234374048954200758406341403467102545467041498964731138664225308157322426567373153415075670904022864992780864382506646902774751922248737071914886516902942683399864940736569561887955906526611253598891497039968269498804343433289462253635348386653212541874288507560760220592119324840832398582334916618168008081561633875601830072801015759278717530482031335108851781852878941053655752124530451490897361801884902229980593182895845466916226989286392125100280519645969847883399910438889418034370544341830135164242709735373210328252026255567105012345902261260940245950619366595215794702885357515147004736127835776360657282980134876784019536397455563859362730949247311007428803769998284881722090940612893472534531242508781510850490287074765294800652396191633270697293679780098430785819586860919446280410416274101582449432830617352779812202948651253735166591053149204709907085360990212956632029395527391263125112304917743681922919936051214847832142588209342907101169054517038529370047339293527530843940166172184631338275200263725105241557891590972432782759854938359716069293443361258295303965200615440738424560150107223727729789477546326780497229947762090926430001103622032498975066329449357545055453872359618671720045270061758036904764435554093892306591828527443460595512359378280561491542498920670702978946594125722327583640788752000893704973510187378843173047342010571918843642229936188915983237395945892152289214910544015219135384350244052321184539651528919135269603889319350826313634481764327669430678432187924062840434589693036985903988158519471180139591072204482636822293864534330377676773844123368110350106106645104850666310702014060826606178613977981706397234328175466640796529845022508300017631220209680574238829934909389129187015243680563395305456322916274190683182606836103403538121795241859551966221797478535332513854543764185175365548946004194258035806784095118510185218660373898960891356901894030405759401280254480821705796820379595371772566842996848512215183002417117578116354938740226243258048164045400000698499872745656702947025830271473643136047402483880932410134474271571441645725149683647961954476845703908528492895090829036888209328546596171173307549884155342602166574176812467347451219663730545134067379367020548440149986678645852269634281729166268128184764300172376336472409640272250914039817315919592119491851933343053146738297639038717949410423318918993023216070598664498411132316876906133410105937777942421526202492314137675750739902815593203652493993810304586737644241786575460776932843916795338543744897854983459990438684020922830615988659362945001058995439741503064650855775720227335412966942777123177264599227060394882272932142161323033045043833970676023505697110140955678056869979622541484407304933718593084672721247490344186476738214879351817204668285305117468621983692351763253919643707808048395615120235087588727304549546300488329761412533331694493717370504222086922299787909607061819336053800967850480519012705278092998676267379728303963412651493333107886751946333252364893220592034284960601182207148160269909244537853478385433927466811779833454457368899963766350852438837376286882011040605590914415869827383276191960959995547735257367116711319990288675906420635227896568650067885112432199011834197973739771606875467420415805093515040367959811864199895884598006529729739272959581953662536078641074453917074983513966679906937151082247815478001253032404636676059254616976819409666045638141733458426771105927022313261523031572322748945237612422656457833668473322041692795960182026152292039507512668045188135786730960376277735748518959112125228864890642946629263284402041325578499716433855413141246603711653580931215710645880017028842218736768779330546544296798292901884545555556420804086112508079672314418886334541315262225369254341809917917228835604410862833172743496029993214359921458099499823268774718365470130971905675748138675182860747724465865102999282069644777734562370123515572339157803622926148852655849209378694804840983585820023374022288559691899606230460435624860126710703013124526872897800864148980400818618842889512385248418769204422570180295277716939921479530831630590607632543107630583653248046090318680264697117395039966593238686874065173214614294653818575762342776002362980697691521638273440467155286742768187670385949332815566516627150767409098842505225403323733499813560559691513281355137750120723195577007473510857703138584035957381505394997946737428356822096133578787006183194837597466346662153622786750666910147224085168960676160091688726285042620375471363953128736811931724546182773010992379413896963113931396530062335800447274448759600216506006077616841316639082852284953678637326351386344381799276876048290892915846840850899357377199669540820541227464282820980856263296537146510174599534051239931281703106462601138965942401892907858530318477768552378563318648098198647896410435726292466880799776997015022100028659508181423143080307554041303484583913370077954687728431859241073875837769699753303851516067479453682119787573032386650534239764368606179422720642954312405577210037395632441631433657245948277025651499021769801898627507498522138575899822419927895642168827205807604339865252108299337685843248323013081697335404575271245881970055487833664836163394669956945413954216490375861039291974934694632234736046758092942744384198070730948714301802643476176328650920940168170814225513733540440382128045432533543053690127109517953920145866910015422812953776099451853058875327300249463400839488966253322524605115056190680885119678922248605235302655485872106867312928951233448691460587534662303796913744755794948014675604554079302934247776839280337714518099347159038663646359056317946652241131885997356812341196614905928332876093167344629950675048717465164610800598871360237033575842234507263072938411495268504449837170368115348604590802578906153144147855534149731968934568139662817621630850556953664059373586058746120846467378861464240562823397933998460988591029850548335588789860223142103604716052583118509992822885502688587293543052363249704115505366818864788790501066223967573396430437999019596336128155248005387622863144769011467522962706923046983032816877764669015446979850794637488113143389665810209329317565431148681979194335794636373720984373342314751898508205202187759009575900194314881150942560679059324873572118222257410846462690503185086358528726252800930077316690712693503425324638497682768984003226574395696492957705677141353013845718251668781094625766297418580057600316438090306668693599388148629311138658652347029831616015874917407724623478314411869592287641162450457274150750274429435407966567483407245673855041594025451217755448376364636116209672988604403486360672155947180613702169693209607941681240126436341910513354001709032933648749713819710141790431776002893239356980667078361608268364780279705114174609926110086422317900628197999878879710688141688054221826616054218274834545676934945508790140007656397136727180455449819032269811832883488852557322520977632856105382986541814262749691686513633704294317988952850519602312102874260801196782232854457608664847078348440466587268645587718316623736755569310049967431225025899151549773570411386290121771623293612101743074661776658729119800597051021892264121177659431345186464662302855887860557686553093816411605316895174187773678238222692119252440408906132112224513960542924981865573107629527993778031303366684228724020697884776220074033308759327534030550007347201903816780291560467098676815579196601542735323533706801396903455652571149192808357074677397696919021492474834948234850057889493788816019542746863766903082345381941508180215613123114686113950256713717050931242355942562896952646032437640918884482737766098500518069085060312995827544591830077222732051875403931330939810249010246995551533706180279222393515235486877675193489365057668906633086432990448905873218637407278503106953543147838555320410346006269338257341707230878969906362478021503009532058472503362924738660361252456414651910120570242708552856187579758972174116485662972308601687043072859536040051398241687260765458068542088770840523927297392474190949856320479488879569195327622328157817324098790243087551133109188584756033290012761158747493052068716714761951089723947757312958752988581591867405938490841257307865627464301798994019766014358128309763226828574613988813439652989089018896829088631930596067557236997491401869822097741184734345093884514512055016469524631530179537342956858117909621758402105779349882068492829845975840599451274762512139361077430794030177486829832674529324162506835445078403317615871874376231720469378576036275378653486275921315228195497359600022647536573608597462638283835869263578585671528272704656933686615792929518279773232967762170818195402093248776910711320248541363445374692653483256275696157594567933354155803542456396074701790052831695656931713863701622095915373251961280457242586921742436125693665587149360773112907765765051820805074803276049477890644899386653588188776622387082219955413002626818843499915311219612910021109898726586716497036530537472448023741419503270437747400114007007101098775708272531202724953358960256727526378467304660670723486822096660198934441066853800051014080153706873775251817299500020394154613578597953692940387473989956722099530859087875984723483247652111383517256208380534429399937468054860760799112701564768697958672653040952699383757946952093893344787152332814416534915698376950776212423162029962871898550208231861843116757891360351958829373631594541697073767555614659176177455748491056215921230091240394404880556411882891374802070508879436834356779333693170458600308872213930290912830193058520990677466957866473733648751859625009136504147766372471949209770458839807283070209207430162718644219216653687947623359836828385157984496665795754474150046105456093516269176681740491551571649170077013329373940158476299209483601448738917053251244531315033674022695070616431132771862256899478424055275077841063720824623462290452369362226292612390889940859305242567748831785941469368127402096624558799022766948249130976605617148839827473268434699086558096528494069559906996912960321403356715034037530664271647431967698428121573573777360693153717367500193798940431672244822104829284870411927029988689878738101632518835679332796624071926326429445968771676965871782217562878572202223159850123176783192363283265888691214562669993415619366710509023824627641124063467105673525761355998323905355805551152174950019793790392023572580115307883003951182906398758623085471543107600880569522177394754632330038741654097535050112493750237225276857197342056009621635789006983733318866946068707504586627849831306857856969645968437429623342828788010062900537754162215375684635292362313191011940729964253828581034899502501287495438245210160567301085189049550393608442524328811306750324754540864239970586640821114213390876014274836898947532141045617445087275801368362451115645891179715032137380751355790900260617243852690276616260972949968662862261499167552562745247239533110128616660337821935157821984998852586818771680162437968625891257358521067244177133480649912074911045967461185273831650003322678992630657583827381822269549251641330863022725307204524056730541931271930230515270450644037811869073475768545571057962948824037540315757207239013040123502292196206121618698027727255489811302079788878354013282648885061021576708531604785660530022664219851635229460349131110193787692935250747273318425212319597146265099721722154433707356936484323232053035013915143584485277331764164622789775126263046892506273016878194662760371973927509467977385090992714807522416880293813213858968589965746185936281555878522642230925189229822919723528855472021949121217639525097415272561179906789774824224926457666393987503463043251452686931262663400837658530845383029408829723296710748341907288260302470014812870462897698146944406342465604156530684932119684820809657977103000520533795492429938297878933341252028832660146950116529621424171209101000779162831031438557222880936460784994716656233044119071641547137889988849204375852150219946901944351921966827706907175801069544890156448177173717897656593246460590202433071943349036150958266338447818008660246255869591910031937144691226404223831924973906856710653410878104782498071539677725925885319221757146935686024374799960551046608157914295342567009329780845650541141367285410641520765708706764201682839387751821180219526932308697433032722711297781863291589395192700050200445922559682434168977063758404572724325082326013124773460633187853670952114439773363469232094234406115464672462472295633263810352525616219576803769090946904633310922458252848314048471955668050380163768079119416779908639734468568330587405533100359126286723679082935443192734226192523998593014259008909226214874395058066020358887204470474409258170732582148480486668067581256175570316001190046124862585143096699685928407496464737396333673425365440787489505828710008601094447701835492372579309383622729107480759635333863033043081966364298929693359399349323267158958823501228225782155739274079911155314335144914555394892050480566920662300418860206759690951178107993942653554692963266059897520004094795169100787365167765251518004550032431326759728475130894447294897196819681456287992814941933097880854191186461265975652405739587034709430866320762428728637142365292447755022580537420635782230583776059311611388836228166685730268601238571855145785176936436692446356771755130274393613108358927960116081117077446300184822055909296162884963168117803237040832943097320688535092359980066353577175290457944424854086564592257978639373771667198884880117112512848320865897237979716413414656512200193747969532948064754440431917412594749621378982218785769660723851828406032487151396381695298486633365517320090752274950352122357018367339712436427647918076356092333403875106600311635196179681557868252992987680993866702622379233839159333112876241749384832607537072510194759766032993751431874812002670037756619608501453253360811882576340445041767219295150592912396676750237795393850703596411143950348173490227888481234472448088595748261275261036477618759779935179683379472904337274669834974631273265493756441990121669991732537673474385557913107028352509430785540929691983994076091396278170530451859658927990431745893251649529789448632734534989086845459165632057585619009490401312785827541129649246065688683472981936455245405804230478743963420157924277659192127066895382742551433865995115422257390801669345575046257185936735770510721711105551935375331162914726537445023694216684087754129381500993713254669182136197495355702739807126115260470346256024951258442475437664911500480137454652230961217977785077499187104546019645472020887601910739013180818986878132472583927967521040203938946041187525311854024452960199647947662847800128261394168792238115127103247668370778615470784568633955178730639417939209279892132053872238433625352701929284018487112781288840769636242453425130476772926046324588458912676045755159685180005568783812869267332382266146876805348567357675143072870595245589414551353198398794797909655452152425098575281617922365740328549599023758702680708743106792518223728001952480569998556474029852840005613866843247805332686299225753545655139788934461890437054524861361615733570333366577279035794439464222511432474182703342661874105127936044454464630250389791218087588488831390284601458578497797324935313731882463752076108000147677137939110535187262951227594928954530503151773396597496470392500991977412016380005944109114597765432587671677498836893695540893777478360194855437571987156272964302322467951745201123917981591748775586741124206804801913879402175238191338360783717642630832724558736137576451261849801676863395160778141032364281186124405797649331204097967290776351371722492594133676820125137369035486560589255440474331280865297032709866963861106791177226796548773854410465062282616655715962034195325877000054947352732982629316729370794005948840803086951492479444738305531309084785209241640956653425914453586156968283947680823780830247235958397213084175454173883670075668689842042561975272946614767703844026371701376337160077546453308505131241333197014370669865294167511749674219468323563830529522285683737335778495655153909425151433302761319375827801496685078830418287602676628633266744247540316968906479273524749554496129744048368131285313555836858579344165065016847541813093600857074824996477305249961172628177094034790349192999016562041685873287970853797247000081041105904990708288640468592261593951736696236996441345751838941476805924226560710729974372739574232267284279718977510721416265984757960302585922983377114792371293420682218707396384052778468618542656178099871098993230988084541890033767801814644515556652466696662911470216726802334069912929449709613169544583493770662875720698486825414232125530407049295513260777932664320087212431368166569055444003837965664692971396478700052597465813749634388174332929823663379282962568251617994600825077676430326392778050579714466652462364166432603308914727200881931051477846400617336274062249118692812828583519353368262570441781993446719779397830361730690588974425741328152097410544904929932199818781440960407649319378602083118146627281661144002576112321981498294169465083183256922215592555152096407373161076343357110805180337375801148039706346796416617587352434109542446985565196776693771668482428544183682247738500908960878933312673644461557381428976891343417257595639502948501046265129703171653899177260790156725635724144587196029798242803682438765456865092957975468542831604831936001080865691997328934705147468549918518729936836258423200259516054153066383449549715362129636231820906680813185134548839803398625245746767976622790090675853844621216115159588534322861936720274150621740353375505726836203349423395756368845835753739890216030599626381582133033418443001885692533379509869185396673127088596073649429069982813285907208913063845610351488533010538873580277095819435632168124707125615460334692528594607358013735151937143111794567091226213586077401640256013219069094553327449450480255495868048926001441966210373190928601307227546578479164518783632308213551605565795358133031931558583698490241022238559866940007446862671865587578108945598817871962043806742118746276708726649028931025431520408843883333066060818234221361985842318383361303495220201204064452422928418726344418266925422338166137925414207335542453534263487673183764188029119451649099423736832919045570689619594094935795790941098178037539241767523466398140374306996475775267445515529680740833976625108761262529982821806923904545090615857898023413515306121653214404737608923852474641719381419017817332660545159593874905155942448577784753239387404438763428153972596122058117082083511671764669308637997701723964831024015889569138287714259640119021803561726668178313075378884136822732602831319240189618528700965270190860723468157209056556232645215760613038457372112658307488803855228353376120804738655835088408862110489818914156401923815710853303006610740016063226990620015972671290872307108127888134460008485363737910146583818746415156577344739478315655708002354026649656785958246843176523132288273688918791734201726961999615249705781252413700469203643829272882952895543694388706035812534817641554940206920728611221955211116761170791795936140829246927031838754164733064674011060239552870913360241217563729273737702023687035114410813522749797168820822082227297671388529781660693108235637622823122791896770943939203713756636168132363724621114380111244027497932773734185338756615019629021795401192468415691869274538897680776185384360320257083015348788927517118262022784660397827354854441243275824143766042102163074034934886455409974508487885147403882473673270754752700537637557101395202495964282608749988913251267022660284775068715469851010519485129866366743941367596329720162866027584683204782168585441439102143497762387431835547843876234416585967774534619986242162340487120869760196910145179792972157136618989523664804873022336561853252590865740047834906104995306923614697758464991613285962045247778774136994000522418123727381002511714181312591185262102440556217312370583550665430209811971061462237731934564452942343594595386258895554922042097921860275363899597807235404463079296437124443983180093427362498247864947638467772579414242404009492639023318792552671627334611312260197690960273100564372751331385189375932210473766259701968004464214868617478544126508516698468723947745391911455442875119080084063062374856196222195183104698460258728149534829242630462969719281314344030687417862533652362835228568951954645414613260059278110977277374594504972229889626249892103563000463780538250733026623812813721679189935918783752302514368281792125630897413642994153419007678212897853644446887440859461946266711724440200386375645198673415174720805939155784728982855393784025633854687637678847157416620948362342220067327299658566512436136050880880321460749983137502012461415306772030681125835269937691392136084285016839628782116542383402120056563450872283414682390476602837251599955257678847982237306858873940831486283443292159420835525951679280998864588522561327853711241833271463155050555990480496195191427689131524580181518915269862036390618275025861258456698781584375286132230274036104940764990107534064673964230704249137739213259908771572372950289699196994719365795001952091093327499448660383470266939133147598710870725598162838318662616182065418014219135502844616540269213027640637650970516607412356815886896823425755784160824627788680705091626192383827593117053010471380215123032053070461905719879716443837450726908663864089714247947979214929044897048050817231092081237019363191337064188095065348190105509839564952209208156750806028050248179726157569300981676424117794759154907954578824439534256464014920726321938943261272223164412686142797433036445506751349438306866238560661771990438689657892243653534148017501195480260782399729030818489106350687122787923569869422232280961586961606386302324132332407208577181238775497262687974565367442723878182041635009362152101345304793021585336229743755840134128640256470870827530268528062584351575956868517245715472842683823748351118231683067264354930668125728890538309572685695753716353187095492142478137919344634574384393449753792602307665086353548166299665832208098360550059760744779493802557820871996627975091242886310115345880790236747332269856345748390023138888747281924865180883288387905912720759953362349468635243264440251107751021560737531207340851482453017126150128716438812982783727667773538378792108234094372826989488083876839502156069971093564278895843856294352175185634992225230101292215849124124558138450872959531678477567619559129314927161384238508961217892896268516321523035724636529879569753991680828925564184948488824340402182957254534005039827630852804606039428892242233152803605950040683595672615604832554293981823023859849858173252856411076016454955192875854244041497214454730721318896449996737366706485736899065029626274384748043864178746058325773065009535905712587805444747638687974387159335281750604014316225113519640547726481540094648915364871390505152414920220705532969843844129565058938708836941140569272095561907023873380116883580958127521643811292567084367639460208497786897406177202532176122351787397643659177105883577215280605467619036530105431733852187876464203898214000245680183839056400901464011410284332187572567046604293002294542394288153911795157577684261343210468400772273750416123342595439444251229658849025586760220050799298901676336110711564267366692295419793090991031627578105653708512212991117356652560381616366189037592958070743937754229107788815970562758529310583475493773845611007769754936551692156300838647244986212382824461844105153515889814276140592502580336703315268338437741685151806808676533152411346522223848051354699208989861833359597416811991511000837288779415408105875110558508975737934074001960224630648812255782298171578092898219096893930292038075808239563598358107420717396754420833759141023923223988903714637283388157707653160955521126213084598001772156558099798001399117232607799525509594131640516457647905388905194556873167292732196246895280091399890895411251854756153500717984744719161818350147824679484128719723967674591604448031620471015769972694953821443123869305442380850495096484756964635123708725647424325039677807788090870933984483420483273247449518521442422160265583366573707768564272235951207215256606876540902151337370278420664974900564169394152810749155360753721690042062756300825551773296565269751432076532856430007202217281145373962895913190227302515811294780054549539614372418035860866768910763306570166682270836957453588101430044548765213645555082873916103986464717137589412387537522714346332964586545769290770595930629303447566646555967654825412349976222977282530998431653477506121684333173741587361076107479944527303998470092724898497206964589547276601248453554549952484122292364549775848389240815548315660116498215833306695712883194653382165705795423377488102711606044537871637504028802269987410468073639780129107817698592518073119400063159436921075404525117367725325284019995184374524774537747164454949566457700278413399786450335227546870807168919381593396785360047338409718310133014656266448003102174871127284273825961037514616514831390398920665515141821129061557585427184569203943066573666076727345785967932347345953963846075380364253624973628398089034781738954930768417735776636896779550607269504795293648638183453946625939151510343794745477791276420083944590254526537627154630622788256046072493701969130201203244090780578176844732276836199213009551086288273027092158036839603708021929533379424756051470111336832624483527855564194184941074606977050237610094638104960480714168233497736543752223416456984004406462771984593695661070218550492657639208150121551904695748971839472013351331637097215469688263623875636792473575734332901970216250227655863074316558131930552887966832522228459814439824886621272311661730538716252984255661277173157900232391420841045525760066225909048162431701456473079177231944678223081415015337644443873185221041701874649032214206826024729357186659286106468295593537294578722433187533780333578969738020487341747880653439056432847654227905405450598164927142459738644937492342387187574272433167849169104801370679380256657790183566903769677475935682561878993929643845981497931190362054418793740904861324180994458411233136077230858375195597056467760024675008890974527844026017232255958289012409524973180963244958570593129421160884911645322644078567176910790808114655049826581672196060067441483229032561873858530973054052770532022875667037020858589403337773193041573297710072607974862165053869029980490338449481080540842234736534692774112831956892173460162580666950897135663732702415644595011755902534364790213928856645548821337667298701780288641776941808710330825630939792359663267040749763384731444091628207615378566682198288248784803614153302017207975509480995911743313508208829952722361130489595425043770722242243599643966980461849836065263796448713852165954075098348981382048635393875675716953261115396299812056226430889664251171773196578835711403613332817736743654912784055393576209254693555824755546562138931261109520230189355036992283356508110512582175213385642887880374189069034035952202137787552753266512617904097198955396084933230139942468845418139068155615320058572033571838678260909761344250320398490141401934166901700114668801851046867001993664392921432150008141285592149500883192434011963226684647240325828078660005261661027872789601474337527079856513574061458865719319863640180195500820428886419037889379314210121659562105592394493768981117282224612564949247391676006330975843569900495879689600026694033593561129458400558863123168594355924427133812574447056095785207786067229826308427531752904858856536870248605811522061830811393902937646251394343351954464066988085303495883313871593061535848518910388887360451800444225037528677608543430478809816359286415848211126594801216717346831038971327422741674860258941004867105563313192737152786540775618433278604529959444593164286608537604098691631862118833793181655056029140677650129824062514182619865481933525747297952041714464153108426081681211265519064137746482714158740890721628914545384365385757086569210577694483854966933897858880882175005086221514007702494700427087115618006630824393257649175890763868925099917926423491575343698807851365788478598431839892661851486255483729546257080867187533467688961432497315257074501706656089698554891876734658116990725344080366802222293806380389699813792836985318392435227422164275525754073637264217847967088580145900922850962653723466140976178810837888643353363334253540819068513520169950551384010215980033074357564408413952236846668778393669104019766087843389665408057911177840968892192047383430521973271811927196848657505034832227803746590246384925619504963062023223310897075371359787183357318033319109695439445462195609164778889139732389533081979684146586391188386391152759977070740179286390614054488508323258949632118986827086762901804767510111071160387552994677621717066359332561375100661669638344117515138816129144971015238237349368498983727767396097307950559718743455113771241056239307556248239247531235350990455152955710583086628852272962595829464274120289969168218318506998251742083200225229811380928732309711786386445211336014806733891746024200476605557104303464032551698699827218676539351294987075468504129364462244270900689300456960938170979675284287129068605824957640389175513379653557539065010431905561486473919374364925585393033068333695485397769394958498143721622815907402547920058652173659251275300742107559225867971048205351490594535979876971519487909183680652488963890259467445354335072550202788440282308985626255706728507130297938460967895155607105320960947291266814567150486787781293396338178951905935743928468367266463158918539628470452314015918411750915444870859079602112264091727505491310473435882205681303875747827086583148953003338047662374059911790842961690527745904277172009084670406085679881259921870279142366803332118277763617083407751586184974277436976573708758143577915117794572059437518461680735606805241241062085482290318638539384170812406237899106627049740102667245079044083878520260493881571815766837843500322863048403765074495658827128146153831984704737103134993140596888932857803278522254130128437643312213103735427185920605843517536506705132827781837661229461379920882821146403993797353186729393627153153289996829866454886247872016694790689674926801511931839195397265447878491460977099976509294704143226546373542537794638164715973777387341583064357601757031058215142677746736724964668861490034801047335780043045071044172244824477806450857000793260374275672566747756069316815594434744346133480803776704055267300590977265272722947498229382607333583877750782343980020702492690369618122587358511278360320684093093123768372311055597969018667310666136496968973000794970153843380990938408212665929823698166121421716725793920011507446406674860147242947516387612166824480296210302071592725231713598566707645915144066641260296035063080130695377340554393048539074460601334200232951630418325140673406607020155217718420748904839833879402265714420127655899077644963728377763077302110669823109198551958542919227860181336643947946770917886451228844850794121798958999235611042769437022795001310551874959442673907273766967334115639469157458527184504681803126479357544150953634487697191384153967638024464209979541706918749908188404429124203415935318545600682007292652956834307507678832332993585700465827072659911322826655875178265896285174796557602563257650620520251796143218155350350087369011176869874243736642422700661432384410933203349684735673778353404671579596503726518675654807861633483560002879817571619716953069472577130201327916199042000261359029804577330079157825497945867817826721029542149121341145598783778226756789042913245039940383239781169641166737501565405442417229866676672002264078750015269720901604324393057370183394401080525873430754722988238932063090846270978091998609060812875515390386671019043497219808507721524494159882178448485002982786547082129226435888792994903081128337674115862718256797660280605893008168157413268260383155845129054335900623093837398375213958373570023882195233279434375131576565342293708499533560652938271723533210477663604436305830655529607670666704864337253368984872186848163432701898676327757761164733719839508467088968951607033680957376343786310132830376230043855131428873547166052918327987321705349937039526862953729105115481218357389807352462344010183847517689448345750111065425181436145715136945434216336170388725522593974188247590136091345209361585860063649453353780111802733494511746630506939660334527195730341570628567365968958658370798139279070942593805695348662480345859063533244032957245414500185808641552933458538796481232731485026460731483943893040382367039237425930091080615788074389687039151175442249686701769712356395649877534817049523143550779931801674188476092158320511003585726041253964699913313493748425454324415860192269683992415547444272234572857183474292693920116875299321512699843187805110397491170271614864570457046843392902538893781547783946827518387325517484971556357962297075896527284055119311005538482967436321293034525742921411969562700805994431842481735322191416102237153839127121319000258360096654098141171561687640255332933521857810228914546359880401840891568426134848490591463315354804886707347476811490470472208110216813350931463236171595366958706135940480068976075762309468750860327685147116157353476752360101781232377398443216737416950607002308859738724178248469735816154104297586719103742499947239216032807191621099735157835055746328985080533271131839773174326512695178210006167617238505467571366547683589097820262157211421196267773827806600918240418304593585506400649756948611916860545006855848023767874403040953432838998709371392750935552378214406382686337084758865934776981804140473237942171220581352461195670218393719034470389784207760599834883009404321582150156881069607711602749306895933251954543427974766101399240575897853210846574223833608729864462811154533782799890619128801729152425578886293410644378203527778908883909765300400251767956002822332243439224706024816736343572716649395795609273088367853487393641329938429878378442744575444761210818427162794932666454094528416893542243740851144016910905671024456622052134373117910299558882781301805367759034986724676299083992488382827425708613168787697456109731524631838658240024441708735641052657948581108029915781392762128435340889302931547498617844627398583277472408269102976441089294032343807620240816847595369348041161718389652537324950206069179184481786239606643442985274159047150150567306033847821683807155735314139911188636310049084058763154186012399175319191785803403263432700200108313479273029469899075753199902429472223228128010009345455538267968948704201515622906915375424988653603441093616354514490220839527882219009572418461340012926233060387094304739738572803967321183622129126759339679220295208121127673239058374950619814277771900205809790040590165515465827327649978301135129562530113831133740947191109838752937195463406666297672368147101328824094629902926032017114383999101765672244850490197645521593965480415058618430331392556358574025092750078963392802180842998078150831537161909351133841575503942108161581671276099262837366703250540149186028107092255311477658663198378770651850489845009677478055593443716766006868800216988731044537922924494324858914723292133164801407361681607282375880285408996187967354839040605529675858598173777514576330491185908291197420134893576451690309440959339700242555621609783482285307583500933812988715487916308231230231848233392211569154503133430701280426301953514270300228988466291846909188593259689131834040835392727202138902214247250146620948915267434589553951614491080534505651519826061030179165137009093580677968003511504669673816395288698476506336158023857387410598107864537691435116262828051208989894692323563572629748819330659087589873489286800127956933514181170677008308639733915067403334684537334059169116799531637603560014039203225114703631817494658352309287775700882678270773109089850179577283636676592639514115153079025556513873924415940811404575671410491544872412408118305032542083393280468145766768385381397538016514195707882117682619847745545878052134964961636473764973058420051477163280951956145578876968698334860858836333677833066484981738869224939300334893105867065294905086659554236009762166332569468980662854059176112613481718079794347427241974777504866821404921224263449009516365421283830382664236238774286896007380473338456652199704268660286450824725934345202483524541649609569978315550024390031125391151888758956351653131304347497828998775651654492316980226275424682924466468433465576997561856007727215570599007249914049422212472175068553827865064724151626182670911517854411311049233299999141582716023271465978662652871051172861723964337063671514132454352809034202264106244663828370327790972146319754402287359212341599073550948452831706966234440503737527443620683706762102904759280418422393919520588158310999199224451340094312972420132125438134865737646847504582865114617666284945958772081516515476805890886971326348222867618035396183006232789996861565922161664449107799697856887676707864762313397563023553651923626273487675065125922485302314729632221883206095174929768995181121443187811033353685532552240811381901478972577901746705481280428206512053767981410851786608229761096846950322312634443218870392671527155605054007808684156791649935436755141054633187403827812086292658450905105476405222895525562404107277300733136772702367257120475385891421942085726334902071061690661884643017873967621538695683564220639226910196146755180707214826296138186985177346385196229964466974545088109479380069709277747714167083860264178594395908339253311999389980577120718237339699895701077802656926348452578594890114378764918165739902001446565547768824402388038600700117436433093546822142455110624125295188763529675540147782610582966695629642173772096702501535043619368167511058280086008821714091270852586558264819416695851033709555826521692203874115634870070399005503944753230157795056140092813357283415270219060777080681008747934271302476395218921937573307144247958586869688722030274289252734732008963997134189768172649436794895952102318964463756027729341785009984841801018163112573353274159563997288390318223932189555649547564512555095620998747336290033639190612013058472685335850384130263708834238837429686326676078796809625737578480685116714277627617895019771178308331213137463695769260964626433341269591302750603925393225512978260870503660697560050350062493441622574753363025231743931288580881379279791587694521470696023662305367146760982901851832643648644164973616757611124452005249139127536715348283263860195579464800325846289673557230407899900687548993084945478865157308857802318535645831706119190404457407016472286348894641631884961750337257657498157628077791401796857079753806714224842150243876157944675870910648242006287639880477179851614155712387501456684062462685256229837938957080096253881979539150417561538194147995647701919060514134265425383904708071699687298999391926168836061044997828555340076672351812485492099281668666367020085724571139356150946875395312991878453236663535717823896652955336497912377120553557609566596947649989517347258631226484677115875730445303738174757831924303237941367510711724930782001418310776609716850452995124034800187776785517936542277062569497924185540662525736549399207723668303472985283287435901601179360223522349273645305354808530691371748031829737522426860282847162011909246277086457999760644017554672749352860807926224552078357674104755927982646265261374928036673200024397728380135006025147920613226938894842145279174818123266260840592614732823643732571970063027554879528057640041209412369495226198342735738141338523057974226321849049776559555265353547759642145324637285602358539636831355569683745637493892906393023004657147474088353263161212548937990512323341205177024542804779739154965286100766243338218508051396645119408943297307235167913311912817396185997210734168134236615196406097454799365551993602677259419525695682388328639018176490511617833978339157316834158532791398157010011923781461323631667603296490381942008198074158395775437405518738775126649245955075371586634329265061894650074455084925967289395317615610124419444964091531224763715684666256159293264463623923464318807125717985783511164738537256044877558291927458078859665018527786604407045260963087396298930286631200044106114766965728363007468491029174316702441324968611605929859307456382843832226618632361001401395701529588178582518519881501888587503461971423475846682586462713347841945751452760122404682916769199342861471678434998888386102126001307699864976410881020253520592132964822662696542600631391124740496511129245486232270354084743233864851912291159343610190198327797551700405173663063620931812673094350964765828498695426315846365460538121267906415033314251570508398470351805051278345952275593595837088939183262562998872048088430245181231220057806387652733928217409081868925355489866659588542851639368594149180212206942714051735018511577492008705657260034752911429654599692515856602716429465774799069531729068547527296219528566045863524030772896658969209417729961004615790453525459912454425917565966147618823225605912903426215330251164530739607716963760721263946230409346243258470870541389175930130897730501275767793667947985232665008993032677085116600070047719986919229212288886815906691546682697759401795704650635316523286376150587339059429439714231094566730776608783489733372458080397183929580792682165210849387886097220482962006474840817611873478740323601476684132567433800604617898419669743782064013357526571609188862671112501371788234335123592296314261044900004255160176704397251891864533271000075258253708381661715036542561912589736997095612505080076803162064067906939707848781879758116056349340291364533994089530774279272242274447021801833958968012449984345627476553294845306550103974514245374027576757926618413323463830230189587760488451133840461621743198712648408256276066344183326100007671546828015664082635612413907832539081986166345355635169987902734690188578862393859143682910716732800904452186399727850329025880940954503180658745184241035363919029733012067387376055145259669332269498578971824069083331126517578404987916941487990159003143047970426247739288705972126005149225556382487642384281930492016837595735635411551257426006346168295872064109647266909458605422806330721763036588156097555333468875013908684988087951877743922664511797632235692185177532726728560158799056509159903629568581461389571733175342790523229167927031734246719100422264802488178217740396832324732282655829775784993100091100426174707133303492250317718916315098916342259356686432538393642709671220133083621423141543098428331137953478917870695761436616529790709672878571411318080869448465741044097218185529925988547384830423634556056428321722849023603043021773599555507287303694576959307311179381497489139059884182730545760305335054608695998886244942592510607043575877547851936993585296545491574729851272809408396708146083839620327421867981696349369167813066591551676682515805795852238397310125269818539018263573797055841832201680674639556758829422451697335842154835179677908145598294198362773051085384622057688475314902346591450992687995700374864580379880836552748589756821169520622744736317106795117940497624388147018175834954296876536364090564850023170815013972674147283791110718178486891170020800711195323855730458005812055049571768481572120135712596545403360586031193114772195467741402504120739504071207896901888376595417472573058343346735613335811029250623624314705669176920055029056629307054973270022500684467965560788790368502765005191450659982882312693035900878153682607855015041164357263027222271163437843131696512804097058063964950801156958578434595658464901222146086395373096380623244899943207713011872865985165177337170647492559482870343565753058213031658245729193743876352975348536696003192910789082317731902698688240327187668416242418037192182624905124772579632543075082335390102585202723527931463771808330744341948610478777049924918849580606829278915051595737856415494055501098415197231625020641018163187851529003768231627255875484869695097480604512483447651315613486100360312075830933886110111409670743528511219135063768883097651764947516841818875596273616646900596142916327896294810888111516664089481144993751322398223914544342012512640661699624162660635254738314949514998420796433221505548578735127654896916174930959166080757320576999754179207249004284371922268049744203923936810468608953912833043917654052364640574873517279350110658082458873228262342125932120487921263682461217884522098625862467466979174354339399085710865307605857294559071990019329828831977995823379186606691331681220762680550232382398334919733443862110499820856184885798640447262584108281527820587483666212104179214367693755075410846231961933203184565294519213790223655968962972932736164539633353030034897045302687294983061984438634459397121615894828113618343620354709666944557969949496872140453213466296910671296088931396018900095925214616434564471279847074496605307398946083951446915468899765429317918268497670158745044857371734997472322442505431796291935551098842958440859437800316852908952143961261716074160848793353009403603487606908905326799656011126524123040751107574146211640664049321470782689903715361299383791847230920682427091608049359841503796943828760261377337849309080699162922963134680255522959986616047759940035344759752998113393314093732643704361941138732036995160142861870419879346960133071672892495157339351870795165934342776669755932284656809099664114555020576000059271213104292969962081993536716417900920402888445812290781268963067170880870729999347510483820062713267320680121903325892710516028579080660830668139755211744250478071276418593675306089584427401578743927256956643587571888767804998217414638055249513122864077113911558481085700637017938433674832247857958303237632436324807219159075898621883395784793622129050349929014152024483089976884114099421430266365443396052210316506739296194170574387639224333538202324241088084355004217648533519250222693245601068898803288079289675927613724663620840311873847199812212882952494021915332906667666691660920215062777220809780428062293592194026214915697867975524822758874130341772828995222009925211232291103565544783003528701739371699343965981152718594927523452375521336356551606305624691003876954932103966766858720330006941394127820443110974922414248220693717335180551745046374514755716083279988632797896786070577204891097850670980353321793998881478613317329932643153464431127037989805995579046393061714962311900931953797478617083287827254267823754599608390247118135137460636173160020269786411255152218181161844572078127979092906162387711843558506638153530426119014770786879723228265052846661927195066770802502939357444353732729244335098961145654611155278599502284068989842802938279036138839245798865578894284353345393768849785134184359102941507133404943190897920483479576798986488853120063644350875766500423348770865556309887026292990445208587430300773487615822315355675167701615973771105144269069874438997898232887773055724397944346298194872505585734066369941089695824313757775536431052915873518716183141992300703036129332386646310686422548465428260120157753790050528388766278852117357469498593072218498074870887860062962284781572737104056073203969607236850723377263417112137324372730671724886878130201443353982626499676250681215719238444367113367413242985417550030932954424600444358672855696124401344830158516695754005859731890621513108703638813559610485742243962201944123888114936265818574862721340508758970714517798408063535298760069308816193681472340844887410751569332851102233017349971273003206228442998271835028794360480337890092935994047632032759362738154867956768837890275907350126852443707037357925414451394717585661809183143277999671080671637165401774175601538143554738454310712561123502557809627601101333644247599612833783605589628418033058537485790821494228396790857979500270855629875807319417096180953467186816455583565941810760135002160108193417052848271291768040999339247852847742628373108755802462515328333371299809430471463096015670467643393751136678655652501501373375013388920254576942875317587506177491220900262566962713676178840670857446489844111553108258645794346242277884997816560573438446910820526653436146858143820837596563958175062705954851734954482390948052102189743872036496776279750121457441804865928511284920857111413629627027867001607129516259382318702415192118676465619282448786564113746344110379175632660653090606611450053078496606572791938978059857272380920103065290933093762980894876794517383201344089664636470775882955166122122800068852885538203073127474871561233387502845463368119614285739139668720023568975977251748650680816514012424356548323181273499068279739995041601473250610703948628940992484145388269635754118804899510617310093291323562873744240596845464364749440151731915910405161208786914441464629940213813338014375181886038755328184711284609557503183785859821167564099333933127343871557496823982715647049651175191530541393226971437991519745279433238613692277004130747752200653481898341663636634764357118508050290960809718767507856287170447492769992624776266184277928568517680608606924453456789285446744857829875785846313587259573042636781615442363135905325141173441120258400790007272419978237392171233336846185514587321399853491336830748690923188513331090381046423020111553999963351742245632019816721369431085260932177650605540332952489415800354275232191557793029259065250023875509832185245840989811461661208407139175196767752321277177041577152742242246321740516798255004533802838935346503427943823245147997584190428337619765855424139306319037136887027832009332735722654774369931530987502540005263489874907093017884901742663150657246518930656539681646336240069088310459394370533902828387173461856695805483481678099020154295285842833907908116983887502859954296050315585313281933664988489931455040192487456637572787168141108965661555496334399943779178241677430296328819058184276547843956975140592429656970904540432881244416751233761627076623629079025134117685392423988862584709679131400823377924579948416894758902435437435587129938439254271106396841556240250187692678032227390067861803693826361171746424398219632107276360300137850360196149166366593341397460360622613577178995493308450026119875538612687594489934674680086381476570576219504991521547266768696606287692400387419925284414525295485984844418133133749434060919659584505296714324590975976325158145882729589663527886965321681291931282295069875135838995655293563813420333028498222188766980607056779177285409084944413077695449012635690253670744807765352674895659689030032886104855877712295028841792944067438716949471042911840981797308595375944676252949731514545403560237219320035745993070878892443708517879393424366441232615017108502150681503201602874344200763187857450974512916310932211076537480539022642087813556377540802867412297232908271751974388984914788555211135990269176074801598057445843358818199740897854225961103733925225826057304703979602920360445174997898424440564699469113440060269750765257147123413644594123975050509030843795730269003600377252550322800739787421238899280386118912408913903892776918087453139094888906928018200792209879146234131627181671276006946179278342132334867350364837052540376180892726697678628170799004447054957728609351963911348795344312730854903451031793968473386284040730551384185831975270225836663005343942439595176110710992124268116673109842726689315772021222258301529939359032176284042157656767413456582679622381619682775754156621887991901304594826770643941093889857530373705329264035662890092218760931101364796604810476339278634007053923612484815202541548288874222669912551548062222493471072123099405252983931670610138592367078296689194152328303071977105211008122442255668104207778425773151663708452401365559365885673856099371653886454365226550332734523594408100162573113122071571162718631644952673354797612050057329698235377203582718286776808320955336588512720081872249389861015993283756679669214638073711021075953741774019083644452447171225800377673444471469523330761934741828259927743904942239111488440671073632012735949781338955966163973078663257004011225721946450384599169468593602801398658459952157047157765112625588776706246122570556375362198479055968044963231809134434084688049129155676545831839084266473390210156565066533757499557328543329310524292870295482054526191090604742841309701987352319065965037723392010108977595117705504471202860583478899366632013304601982270514731151960898186852727638749507135599186371499474213269818666263387967654190281383619768148741352534421584041590178864545121132996270756531396713126371146524536207374139707453211089603302437410107936522531521385260339403601758663424374394600395148560117674328316713285953720485476322929968455899415262496272082135537570849852956459989092811091355514413963940219320354444337088328883214762805996023877765508857617640083253628102422359701582611850265734369889313005211343703214969178084431799487882005224924508554125295105458887483361837506999984816604039548650207950983273872953487860245201808101019813531779972931563507732966958634651738515233588961138687213828340184280026000722393220842282889379700277583646927956119887915986404260842808145752441766769837402034311094011425374696574133441178725529266561970600847761345678394578367917977100758576149437079311054918557238621581808135494820047699187451990734639521517723827062319380836416094988381495665351653372031496137019414693877762284489502680837053284223118233887366827484884730398941002852709597030681130015051257919395680177670593227890905540762112468599733344154387792551518062146336528831742789669759145025450508863189811952093191693620928996557823278889686486366638077189503180150104603037547141994802385032091758775471411716634979520546862363949553296029965621535045608410499570325570813955123892650894698417037866296622569402848118480660784609965585526795358098070532744067263715598983204383094490061336739027314830861754444523806184140540648581230611730510040942472031498181604614544553066337726107168765364207596820042800455087958943389032019045342545164779018114562128295454056872686159384514412385266317290825536713529704269513894951133410525367988717132570848739568362830463399287825885715622920829644321876198134838052079829627858090938033680867239255813064077022410243507097676946647590526694830373310145106130340330373178058390094643080698610796868059926515681714842163180973171024282894981251018153989769222758862621202955477886224557240467829368953744856747981969429710487587320469290908953487330651219157603312823231954498923609951097140610404303150134686573157025301110136585319880046302608412590086575133788761751255474182965570967193493323707383993691867745458555563606700400582148729801405430344723587127244409322142226126208678910207225862424452727110683400036718842939831265089053057516001074579917643989357208824950432026012040879863156154215098108899296548401027249600170175889159937583459099595527006730317595705899176618494637425576328121058014078535672766320786498517906248096872836317356511415277558588712175953337117548876636741807064345156236869714015197268646647847957039069005586034271964852208944411122944552972323993177639754645387688803726582388827595110794244396035748449448863674628058939134327810258980376534375533298157258831154353741730994412917845278745356827447306550503237827630755385994350464504666854219541804408721430890154948250568215550316384379091779728172715491774950958335199129141165388581832075572970778249199850544158421753510800533698257539589304644494197670333880648438010723964339690136504084921826471394117558504242685822091554386408781178221599433143782300952210004437781826777411331883966184446068140722907761905056535892122593025209300565509817129509538440321592730143253733912126064977467877613373724121084029725918629695868306598220002884817285345392068320489791099899979481270105069265304731282721010069142653350655798917062063821959038952073887910609939258961189087937290118252238533510965235198165838003908531786848203433214816695519481488204218182937510423783181999118775785176929480513007651365985275322218381392169545379283767767530643608677411871242652798049613634943932062706859681762259884719476257420856305026743213522440578300148912756758125192753691140410163753817517340986007448484696732005628701876564081869295491073429490009515058453505748856005441361164683775712374664202202719720761878802135569919911827413985965434049197027425903552466172701702554593824311245051665944115391240667262800960460061101223875053173026911479457275285142655636738750346536723608164421155037402549843261112850142974643824364943581345981511144591782381778814096629682816743219807386497676292671003982878347350886472078326264494830640794607811212814463526175698327134928605036209919833183525021357571141999477679815869612561800653160505450523128946646394041708754335681991947345131616814595365092284811644306974868770422628111447495487255637857844241611517159870526356916115534170769582577532417484662284583464411308367883536658392520155362678516343560819517643558848485646389962261240516094114588449757155217558033871967662008418075246364256707264309951452455810989798918124682488192733507290534725974341364544814964765294899571140295787140798165580075584274311887656652816615358092467076846840110107165319005507847882969732749993615976674917677797731174765611703258040254108369177962278223472544153427985029001314195669939437815079510150579316173927106848959160912443083524092459437063855719857749101741916640942452640320843225209822618573588054935508747216177591930792618328541112779010599021150325572683530895636609389533261427488978818187094508334865698277119412705977782827718632439642131150156426552757844503753698131940284164114316530420488842418211954260470160572218798083810066706797009823792299092008047212890407008872984123249437219763675952650258956153119237472320875440167935731873157093052743844420246318023510758674084825620037095772126124102889255287687213272211554214940313367214071443917597000632045525659213544802624737675484205323312970806329494341672100368103528446755354978641793705942465785169744838882899272827326599818116632855992020341025385031503654582438141104105911663748335755218222269280207585116666538789491243767503054435702673986879528658250198008036277917998674652452544120158427759823245974835741766211639040956672260562404599723041968056473524772434706219290471305240838087275405099067024684138878573900233561376994957534589600716673134314705835792198665026447668936443309185066599875729841293276120412584613390600067655640630541860142160676294474155012098712589364517141681647687236547781408076633474998312112285607527592007916581620163503032280403851715805740226272085276823738648978985987366528641927268067180986611734588632994170128423819464432920080558537269831157160755985394537551468805384542682157692574385009939703120580297521591564371053125471375712462611895762614178690417113109057510371074462581387236346264168225251253012208314756500495186768807744886949646292761800270950448461261623038902941592629931304939676528101525959111698162938497641947598397525434638643389939042786422375090372899684714254645242111717992304079662153374049410333722260969606577406051351645174097656508550837507157728011654374148752617123621554048101891526983263762193988265077219936830821690309917127877743769169349525959382173443723489859495244749578591772965618193784006941268910231904802522167054246479110345517135651117814693570967832355127680789955835241248227773526490786604921197054849754005451828521592074963348392602766559262212717717572846603001324564197303148331889739516727636020313905458009945422669015084579669030470257981287875080409247235864520201645006556710262178560849169611858580718907742851229298292328000360548874646800568621649240466872725813373568534983533157448038575923699643712805039190980250278035567419382302441610384182915587699013329069664134880482091074253472293931228142068138058943173197956130813447392309126991695410273008849156126227465411864495878065957395261188561719763372553931557570535577992568845939071542733940047627275901875310635635946340474964214679989507232791176032128705398911141055825998625579470297123611095280149689160790659342157856019665421515952823412021102721196452660442382470018155712557257688413697820494321301415061272985034693810316447236358957589686222610335712382386549082851664227462866378944156956667456829144035954106664394349780978225367113523291352028620811259944836729159074236463623548312903602615277346309800985389632631453513936507966316171320881158194333139821188427458676839671334358243774785633330381562919215387481816890572204948048500908428078999581061299882291395119483828301110188014377165107772985902992544410403797074124232838778200592792715853115134232639158795596668650309666031683070150594801479152181536377483647729241462023081019997027262272611032970520576125408526097963914274873896186118779009563907401057036657812283335642727646687456027697717644453469403917575345609231859182581389849531858518475062892429020492991496613044792079977018575872314295288104333899202808414174769857806880041140792699459401529467769941524765515211919905525138841889165682434803519391755767250476718872214517507702008639060860556095383617548022321875478716986452995740138121713726166984213327290531535859474822257347842816225735511095738709763774584009596004377674390095936439604901226492197270807829373865689436919001455943668334458883367078148997734590319416294605843059794293201220560703915998540050731746757314616002573236108263692881591569842753082380888109773138580982684474359119887636076487939761895513624402943669155872335482054513044082136590883878155538132543616144690524500331417401613412153490219316056692565934492942017378012502980991232423045772994548041102092603972607173213802188791800229985669376541957128877684458661614537793552702884572088534857360344695516329032998949715066752794434248437671445325700887356523440821311809635068394803806319412076034892721967547653622195326092628073783405478500724061094911558854053868379169380534057602847358255836982025090896546397426646481197079348231927646146392396545904424330124142379495228079065559215283499380117495547169432049071840477540403572967532232371853711559264641309599542486273863130041576176992922442229222428550579706640954312507659257213622273561728644932583392450344149885039435186850794656001120788840115600851967456425360246131233030010314237886976623182561174797234081883614208832722038773577365925332644155699894200814684040142060530290154283737954885061114737896853474149702901266755863565622178657043530894994499571153631423324120899759787712269725472014327271729254490612564908703422907989306367278633998475156734470198938629702780861169964562310546092511120760201740952136389719985893898873982027283385623758533497889042726929255386596924994967890460688497061757900112932130966263065324752208267990227798615861909632825563324859117729434598445090843267318460447330027094603025196989205347072989467381382442998174726096666475892257440418703778475216249828459615018606106750441691590943990059047646500088448960624776817242407293601557445647199979453106815084812064026419883650247197256119429739912153977156078976686349470054591351766667658528788864853373115347088342126487141631922282794877871285685497880898529407084904869353313788215142451305407130452746748025349158935177697346659937219081029124055471265561037498166788566374056725806449136480950217349594529855883671520894028872803862115149645962924524829111258906449458622450798526677375864425518586459524770869583137979235073755283190493267933043219941384792066492945452953157865463221297200903279162484844555759312191328934559365664596934509043377691830026227882706045408394901108429651096283803809695563662445706726632990854676968659926267842670597280561835509417730651219016768936290918535256410328730020283881979485466394770297251195345318330723377565385258476960660532148307785838056786932612459349297590458333907744973381136103620220201341919877610060502780036730463348339168412097505566973939469555277977927445521745167128015109206099520343194157293634061481234115670162070710337523537518894892936989903513273863280603511094383212869592121539404291427020373522414237175784471685121408479124194594660218136688980612639011474365061819060871139174873204813779464177256872898810826910856010855756746278318634875512866174300486902788038769175465055526225924586809067668581574013290780805234063612161861392299893664252278981215585354459367022350569484304994188966347158122228883319979031680000748316355980096675768693985199778070742847521980953804838821498188925326146760000992452542069895942955312517116637444020004341120996098807463078751532008976567204541657604495478553779665650188094315779680177809343840488701953851244391143363613447503896843132839611303254646669283982837076952680995352592555059824093503750563558844405384358180215225294785616871648969609369766604809019391677728098707014521025946748042121812372062603301659938701582769658426336853602472270382680312775104557068419557827660747183085581888382185122196522111844894910109980827582167671030233879871213719430321779363178686188758143077928171725998269978202320786060103721430879338546734094978183262286818598815460655360010540080504247145551594382118397547110302080519075336372839497231849450022017886266330757766103262727856348729474234345289327706113491960263948783575110799757137302322912887959250521540742670841392477494875114128031385245985582431189748647124807441851942625478907172646432844041426789854599730888149393027309111711531651699963395638766604684086144115502660223722461057109482645045222144098142493583718296146375418794756788789976115606315469584582963577334073167343649966723053864606922386375426556033065481989631911440177166946454608052549214910605707309028711092989263979901990467578371030241244964166350098151148001228462247500215120185986764555375583491013734992920784822801759024142416456548771584618421329879223022990346071872711024552225813528587200468934982567830865528714683574714812485474310431865908007810268109904813641833368680806050319774281184570681728167646510697462149011959479058352426835989730083958175770095143472443053929446255349645465187122497184803834826993693535696859649871920800172726345322724679173380586783071417827877386610996797916249423498725503267424474012909010339800257224910562982741416948659188557802336967732437086303729517834621097150859834627206497579916293690036490479682912870045408625447894570221637714368504417336396804533879414665415429405625213072037072790234943739776146316893747190769584625435475167861670651944497943074439639318715506844006413869432977924603447812385511490848952078190352053714386441307755668958200582197830807457761771660617399987254285415511774373088381937623556905502232710231681562714811314494306846784940589317423983093558468128707354589816783826101480879527448444305549886889041043411955048139652767891600734520072061171056711778255917574974815438676528692947167315693161806354519049921507155783868087313296984342741660488413751598478455845702937160318871544222852097531840808748271283371631696852317690555250328018878234646078165034765230612119835791463822807955224827901601772203664349032645485332724250853556491114831068585017827032939327581491191436761595185897863112749551491732950420512004782371452708669474980526285058480563920754933781169286754332129531246545095156883066469486330126165467361619103298118572910431178045344932499529889219288508547846513097984534585178007057137407546454129996653081823651926656891783863786153511830300017233901518100440880717614254109040562902254548022430312397257537933447481449943975842631337403265229171954912213053519753719243864227419382639724011732671447162901728613492039482590240491376662980087833729753913636383502139647296366293056720284216165670185990929131325307201580212064878149984906319482338006793578509338938940685144660793001078253143489689012452855497449205699544980146217527544812179041274397186324460122153821075336058653058836387473511170965089755457565106234188451243223406412748713862325705888393061544950897996043133691067183131247862182297891302763986656677356331332322450090243127852671597146802258930615910977809237666926486917585958739643810590248902328715300900288985621390283283640227245170490843406075072017780744450807218199411870782814796859358901919333471061368273699145259045533397406467756024079756347117607207350397117809069549158121776783698361806886342731360918265525948619748955885964558582425687636182100014123506700359652528321830975418557744832793285143210396975280105974601771244206212893510779171732742973155256104933665290674990948580695102080981283564381860033865343895243314240602176741342564843692469062375222227070671278118615212377127774325220280576481451304710947253066007403623893279881978765550256575416275846535626093279720693767845900033816321386915916759113342001860396673534120566741794553697172318029987215047617807540117169026014381780120511177120354855879478943317874582911761522051080633789915585830528303122287759792814711553144020276357601047291213559032877055557313381623314310201925753517274557830502521339479012954101511946868200560872626915725087334514434338276659525669341349476880187381875324246624667452766986333438083656105648408556500076146425068982654547380053380071563848244021182838126004957422638924746791901987230404060768848519535859663140794275215209355285309283550597591359827609734894681950823826005180758321175703394989453108626982695883012009562335393771769846753718368209414640817284298922683325968573699497106803763782552452236472182872791329179675834865221146937784876447069935654959097335465931481962095666068038325871941293782895392169641291083985095840609244778633232423109171597213211926573463010950199367116508658408658899220231843464990202080523752883485907146292163755723168637829259935369331215776293864545259050413081085153012766426652892593257160296547362113147379583438268376395890336068339961437091357194771269658450748961018132126149465528206286542529051355958744301475052654782374109082633603601059848069524850780452911108637389930297841913956314664822268526454329339859385543088428494042903133044783834341703955236372082880248881715181217490224363620436546975435905520908432867450760453000141669994250140709856168133943315422763923413313647170597706617545659096541062494562454402797263316108137214533228765909177304965404598751958850103979602067613628982261150606790633420393280837213901456081505577795501627910532588483702822038022619019445088083834158946072648781701060084349725813153932622618681475311233621516564212057712849236046209011338920699423131617994913207843632916730616102419736331752234497107179927263176552009089117424733131613119433224088453276013202003638188553648118367921483596750498226807777859247831287520861979014155614908519535545735136492293002397679368640670757675409851612619084586489211268645866828756106226941961054532364347063188106010736316145598343927706192828777042809225087047793554661007467885879322369544995365514713466214136283365712274115922179013180368835530698737012964266621675309738807301676579735538439648088406635940656556831422767066679960437218057018598519050498963702572116306493919455240172017528994357240140168327233330644274442159431409609112424144740999971984270771011236345451468600555769178995500099006139490635393924500216210048044517625458388869182663995607212909546348823500193609558922235425076323871364502341100526672353247139385967779002875838026872270296425479402858213780299168444667299905063003038687323577533344586655018650651619332683472333244631560514007360281100113728539456873865216066304354142215853190056862808893207107494756141440344512599315530923492748308666608222738193829561204912240435879488728339464119884705681251605670688624783503696391907273432501743702722288003216723769735817927537467702856604810495561886457367006202192941219028479365892178300389590502214714349282321678485434544574405874428672897289990294639859603986685921297672156172674087766284209731764219204494185465101661094885857574641769020185680082693262697067630286896880091472873583280365721288328119783277670926551433428937554701725749239392436341120838178937563166919521695652221302276971508224923735315756597088689984751222611877785994809420268224110764789910145499959284631433892955714815321496355462652336924848966671113580765301167936823209517529915978109033295943555810346671946226194961649826529792560246316703667182821717435919004800357750915916864801497716745284467271787366733113327679307163869028740703777101760476181571074886200887645544762954417655960715005886503474099267000123997599387326972817101625794396822655242298508002327851671839731889565790008540909305442898371912404999704704087013347280357327190039578127068990486493597311400930362760786943788167712040785110421607472442563433428154752460248229810404083986733187564762365823046719904332196573415998060025303289970935415965474422799896485389305525508744803719707334245695715735333100155209647368745165789123129872519074391101083764353402968060239810898522931585596846366011042093027953624746949589857344437824759067761795450641681852342268938771656933855436136713670729149050013518118879182036317206380210998635034079852550122919353107386736219603515177181883656185207332221498869688096423269901166072156904292451000975415344811982794638936053422493224250503276136763895754383737328955470185154622214656018572865535477101463693547428370850682790834369384242791178446063408229431235720423225781356733697512923454843930233070830936621623700081966649189378708022602849315508514941958797760282484443561906287147626875261100374903170098861964084502359797647291511782984279075608753701210899425496210765933758332920724091778629382754213275988536317085941957808282730567348793369259772202581343425602621055586177396639217439896202065560577162897626883707713187626865593702725064160980544231524484247489225304912813860426967261811725923649328052027134806078296034695807088572645504682027374764322173789726470423108323717491739394456959874650948041338300900730316590919127681650893792780053428613225403236125452273917212115969262206737428258612458175990774427942400095918902032640234629611613944104749623921072025680919898857667572380819150417950460771435530012730983388872070632148276834028356031631158778059310502419684009325905038045132065141181655816094630070490833838766080884534786931143678962251632586103301395154928197329114636222856189537087541342672783110032823798377480887505374543600387904940604449868508216236740249073378022345911050856170448731044233006763757668165161526507994000766681703528786656494876114846887273959333725754885321756596796246776858647093739883551170886659885718442494797596421224801663540405699366178294861529757831742890859245942820938341431360693480879321193151506119875016562823720376574514381565384988224420705542080596113229535146893937740187263036103605747481749518066049666727931473706530557528578174704975945195088312560454770150957003345342219851547731928840562104349868233186117302943021560329696006285744294568445794062346382469382652864069095439618033598427687109523612721213382005535303760370325096213320399467541835531055155155141809308312936190428211325050500098950118352465138010264088170864117253967868674968382614374254635399518871502270600644723578519858433046429222007314627140726131787446803436505028392570399091996493020202824728431924897405887845865129909109160957245631408178391674778652138400059688313400873649929371294526035645928951125198910668831483260760456081888495464297615202693590831450087465213204521180597023468752998737637067946081729947241846983232484550633071141151340267566100488486443846225344103754495099095681710059023398513444553987851494237314948141206116918292083106148334758907912296330198320419731395186286340934555665435878683358037843127255996106393431759300371072593124920900222952958566017551138830801780630745893619680431795188709525193147495272663137241775370777129057612537385228059748622801152310839083545050909010963118679515281429958284402125886647237151533439594742042413082702051384534676250511176465756052215837977503784578810003440319938147329508122805332760689802911084975274891831732884548496861436682701372168563460541320545076627527610717615922747060045671674181068591348823136553473871065362355861853998970565474971034210292771284167736973598780995525256632268995435000768998573177816659716351772361356932816068711087499333600269036439939856535105794760593638851833078028572963188676087234401873365095428224021350879712576384353778841624753229949018678562106761582711620958102040666556039841131876442460109106131623523801947006275261095457383448295247185256098645109632312495981001931476922743757333485872025979324989521585879876949839398336723591207819687373155502765186153162850639596835984763314082986296126276893793302595883179910353380091002579977473577041369111925599043964422419206855744849007345503198872698358125594028231467791991776830991662634382460726602126794175580335951851783412439285625294138990977389410289276709096345894836602186722662920182623955278668852179709275965300864705704724249983541004692637549476045983421087886089065414162684519740918153916839167755822715693569776847014977498741850240078987717195326079629223375070784514029031354743372731678847330412231844492251912081575597037433075472434316080895624023546596568704038125932797309736939544746489726937154089686320552081579808994592167551297662688708890097564667026747589938793401715602832251443289241139389352399669952922664049321055639433782965828278226451807075204098864816333773488824834717320857625255472885827713929575913313512186726549180365987259583541244918907086649774751346778206575658381351018947866752898994198251899021882037410368020099891374810064341571742902173771522626173073170537415112449222298762902859440559457099928639543245108878954045863630437890202385845976775352994180541859445870839592354614733854702857011761829815860852649352731436155689042602560115046354125033884283710927167034706230645935012040740858385159139392442329192289456290730599965607540211304776395919249629098738659936146024029690752884955643764956322014553668709473655363478183807406314118931918396988212262587402183374639007187450062512125466751137627702985143719614459715764171901741790443406487759620447326062854874298218167414028563528487312307612945741352099129682383185772904693186197659553912999651262061791786656037700770273702540659547900035638998378262683826274994204682544803524796402474286032894680252066594258012674942299312619370460806476567554510905512517358277801565965368606296981412743365489834958697508632854873968308876317198432537912879712137937500962829578916893025074753977559589203418441328633215751319514118509544725161104699042727360423107945187103923810595788100870192830201031207039974643259248238132683426095073967362773221736653680605301432542155382659913688105640039067742649892307986574108335477888545371534997098020537734065539106224744308585043953386299535969102696969927842948424879102540281467079341473231941825515489988812731680360045009487891227463619754986168074544592387286672516826003074326036889534140110143840640939416627096772177353560027092516119165538115624690177926192025181802161408854709133736495404111657766747339417548977890405767976290644016594818085588612565407964144025155124283751140516000572358102590532689380205131779016318875474169891870606773893186567599639507979478939964855363435341741591946161377457874646450993505211896752345698363978905695029424165761401598803054558573275336448708054889825940033977134929344010210410932848473632013153312016734879901047824587711712006312461399878177967296127383042402654056065039673207162544188818942198401830322971731869241397392402506544152273534018098400876836226639375369199716502853989513866698171347034598266250010438350338671927465942053123269274144025402801482692505883863082801711404487273096964540906456010709726975357470597547617975422313219607591396862326206879556697149955898067495691304421181017785064825114521563820484826734101207441120831385706019396658632688912530415633568706550008403692632607289770748032239984687293440513048511303535618481634842561178734416465748969466686803529126428751901001707942974498578567662656962153479077282338915154594507815720921928244772017621887663986192517334149314505514181072995931126576883117534216121653711370638359151707516682116511276784713824563185458449543260184145026499206654780324079568349363823810498663457376187112347234081742049411077418405458213059811866080923443856623459328749324513573839947483618292032084927889621116798990815700350030246661484816264803958964517266571583610816846541436876790597665636327338660589614882347634212554663859422958742592102430140674187168635339240371757545416005975273499873349915456274499527784522859877196231096043315290255179711580827388209027447042150899183071141139086582241556734081590809227244044220234261506725293487753597182914243850432912313220218571978121134825631282956445236112216534727008033177044718229393275093460592074641676746571260029519996168357680737486711505946073461032772151580192141083110518899446131356072616169362374383216032754191741444764053864057417247115323110290138134412363994587290373116601356283335041520010816518409448686002792295706550015434771564938919719951773369167745009369880694083440884695099583420678693222377847227591502232779588570640211865834653581333208726527573236081137731720513447483641455683009778275374979487170645022117136899947175843859328556787249295015162799744868568610963566510753054896029925943831954366980952450861384441691625258265381742911377595266310827989956753023742973686796808134502496213308361205161853367898170974648869854444435070926947403479581502530571078420252234286199266033257281789458706676662237178308142715110037445314298582068706928913081085549579587630420089877581356257180957579968041264296637134363465782508678307922170539525399305456675631866833645108982032466418887516706708148375155873948710998573235716916214352480718216114440102082277080038804722027519140808818308782157798322485399066242554306834566876288460912850383642718978638871516567398933601367621498189221953296179174883643558274242506291871955040769552333960250550883524525791215319965922779877108643130344702223221343003068986743739114844632632777701033631736862508047312662503430566518661416830914675175543000939236982315257777991245680960333090094338518836434860419496268369847341438853540056150894857338780198861705690350532115732479538856868000311164155521850017241717387362793286318932468992573356686187918163935196253294191630927280616554520095409426522467732825267571336660657531634591128778043430416686573777671219647335117078193558282241825184890851483346417817843414643639663625787726184610603853505242384961148816683613045861096993283432686106496246563370578133986793128965914151877172581275711862905339085313429486302448592932121459365112521816835851651804602657306932571696893833669137081218848640659864734199953487616703960018543998720775175471906119941547524300388941014191773015712190692059900093496509484198879240412537098014995397179779362089760943950508223997001602789806427759832733797789314688690170413386285369529361738638000729716035969140772849474993158286622911276943681519384541649704597053077701657552526474072306418832276465239024133190302555444442559894463522358123824287135737005861751840502179731592174810527536226325576269448649946812971239240514377214737832287062423851826763056240051953291301958269181102277817593476012174603731673295001187988115341883277634602079292465452018040431458160654883236518771498047353936471827951923151954123815783053866496925339477731753165659474973924834844195613123660010251359191517829225831179949193977797734046791200835530947112941534983011924906701865414435921846552479023352291321988363232277809560889596778348324310138005952030742002512132435422688748261657187231252168136474745952316046483742009569350618242152474293693397321269727558526215808503120482714637229130089642143113097391781272198216842986658673598696736144029660075025231862944565626841126679949244729955332104925159123576192989983211166801879689496145145467735686928254872122363536327831829065798537928694824886817214084966558693157759098465284346619850224112143028991497817133887994280219373056875289789580517483274592790373267267394792293999428854585547170358067649027272936662940687110213639050540405669348639499961212667755341799353952630197612773695654983161936256679954945466268692368166136555944817409259368498404920512073685886902641844281726528432351305839582616061607108106118176803018557290889802033626879017903698881730044104832485679100813296995811130441722056973766654891045653248628197707610918913544517758484659941227878495565199752962461629354832757599773149210747880847261180090980966141186513730022201402918754277029833572459316954645083128500749685000049551923863635013333798277280351936996940054553564233654666011497421390934908201895877653055987496433958429066808481648649595972277969810062619131988901479484631677063327917352556431430971152262267265733203493146923280168260260315720572161048426345159946684025662944966334713438911539227396237654872244591645150374274457363902680163313888835241013448864740390750059339009889561055616269869314355227925363639920196408515272493748397579085688672423148379952270077402818746177713824711902169089914302338750928718757450002010051309971583430155879440457003262350050528392267286932108894268473160649888540044872121602860689259264390575236368123660249565994606221836656653583253401500775638954862293038859536978886737672178103277625995074049311465104219825031029801025803913875363242526739014939203186452443070598126346504219046150326959452070653555082552104077144805947404977932119820462590614348400655599811521036165637413042635491652859571024982604866557024821617175653493370522576003094584170899942971511596184021385375309995440460789892136589223036213113912874859250600235527553322334812968146650353019979901384994539699087000017411812578942087743313797554150726215758718042984676830297000133476217717483723464945174060644798550852092304705042355333158534329394580231389281066902843698023456203124238229376959452355840484929904495461910173822136609435111002086830565568362738946833766317218208111582315841304746566819926339806230271469337567644254221813875834057915311378244767162691215935797136422756422926952612953082424250500827746351407883544444480935538179195612083246862217574576519206357969663258006078296690709142529413988303953586486913422124416957737603588722166031591255824101755972593713327331504388098373192462900620348226429019797787528156299994828702708529899946918234856754625803745801735092228695364650506957426122485770557348019093624694357199741948525914133321311037632179846471804456633807317359783452979513294651650533316306682986721717328998924747692522411951233631378896020969204243715068973277067870377790801214478572950003241764165937926794667764818899038979795070305532879770703840506697900890754382169629512279505373435917679265944258071084172172756694315446249443496461913708531090903000777156454721689363612157712298934146768253580992479517547200019976781222771171530059932460369214974034320278644297744764245231254461875369054381206443311626692857393906900245749327973095051592272047689489474604137446538877643868809572940757759710890493366740004349692612969937151343147876761346465021233020875344906562809939625344670386941925652759701553828979239047634379202503638396972229733726409752402871755322287252714154568386985961758943706696395183917073383629398936688401199878359536050230248689110695272385823377327455128141489685654735479201978810676419407811121189115119132167745428671589543385909988066800125702781556575341239558503761151134485353653296941412450989504632362474731049652345239342613470179382416309738592112274416277996626765751825260077723044127060009533453109053487072955801881518732003203137243495087957595485364774622354651857367529034495541020446461821189815841714520761803638622450383340388385143049319282792133727358320043055045568450786578581564399771004625514722481852116757726503058839991397536600101679415544174642992964300120247365763290771193958220858181388091136916782894409749715467065543089947133322849429663208062767448279699177922657024835917242743509102411826693860461445813875696474466406582123293963339927397651975412260919932566901930430707554093983891946843811878260626966771508826900859167124288488092172783335054392386604076171708360722532385359648780272833352982638666706412038137696079208594667656018816816003153351216407617674369474056353697322895378969076489186144300627508426538725859795412236098694032751819314132155389191883237677383476253288443956208504974179892888269363739583414710588564452795939076406064168272212084175905475312809682035278145503980141037508910044248532804775444993003203103555936918056504073973456865575056893949600075192333629714413658475651845408606537707530793182373117336725653528843551229993720532021822761794789766040506485755346424991506284723681980660679097712787211403919628251263332464768786846602223534900166676169936141104479200448715471142439913554261578554093086001522385564286803466916519686627349415982489287118833131601200680770382727273893260437254669954747558531707865179585584321816661358874072338300159882758854387531082544333394638145502833757541543329056802534906998807032688789497178743418436991518554719910858925213631262039787361282782335493588939843900052830766341637199178898096305260903438234540333286091070054912804466682205423996779681466107923207588617585098834413949442211183075324728705844247335667126366129065144759547720464511915412205538232923626564439392452194546939573040120181403054476713059932021804523507350839426180180245145093252718312081918501039121486650222580989802636314098065175437172310983625806489759201997616520819400858978478499460941611782886005976141218742065833456971695177297704998117129505947678948266009314450042381063447966869637391957737052342834634367518802620843571797475210673822403090328744743846569153977208698215099659928046714608388627496447018201060015527261526002734924076309050112801907992564521662771555420036801966347828749468156615766721344774432030548768692197070799608556998236277356495877053508069115887237607461268129659970471452258917071318798757841930592843730115878636753384397646156641998093720133677292584355002892048638930982771857018511925797599440844814666834599441072626515520968856087629826752528766734953678276824047621897169522173940755468331189447956188844572304159293402662659123511559314051151186131462780784780328521644368505998885647625237870153871879533829663183731754254369169098261918265556121570082220688938401079078288924356462716648809952103225304266542579721194541877841884192313681396875016627381878446644416748321912375942113611036048403596281163675604725032348924208972378839795096160707956975860219365230875501189917604959771579218108219686922530129041023222282345791866701337444824207135376823453317575906901373812812968170760089260145084019671224337103503616772675175430937278598605909445574656521221141231025725846355350316904857350702132933986588850263645823249247897310605981067576283394278958196783720398372230231774098117515014251581227771638019738296871938608867212813011585242677944768052553648825185381035797624288476999219767591099071153342531518045288131065218880874749306758418559084573184696201696783379913089731756050933520349510399851034590684434603496841264811433640985502056875530476463290144316249280610799832007389615931272486795799175923775514987560274449439898709262407001568305090456781265995334656374942515048648839924531325044820847806922988754740445826886475004344251826543374409463466104447150823777931850701432261233601060507801876370118108580498452270375245556124139049260572655339109581186843694340941422445864630491514380008011010689116114246678126540430793631390786239151676629978187583655212235562870422800697177875507077641448140949091664956393747381239964756292565411251317187419898073612668149004061985020815974249513392249082182122700757278589399290598004517122087297052635837600660212158584912836057411039179156275444234306346238818133368967892725185759146646237990759651819280201639399835202846447388151736975460134085313565835249445242759125607217284956853659336112891351840135171227196385901838208580775763023843258460221554817200399886096376286410617258190247705776819591668948734673988748956530562889025143177678878795165071921402802230068973544628794494591723382106594802069832506331952623392580237656832681439221852594169346595911227823975219395281035465826446880643290261977544812204636770777789260268471361642555495535069322188087969087023285454456633950057880837935564608715846277913611110455121097988810228965135011453808361580298885245176151156994590931305488265183038126562443701803872164189381315259776409931878513003554527592090437778730109137835190643083952976551624373989273397878030071120037218835374032288064459635699773059887584340404744652133998396036996412627891170077199405361849487761354130885639194765744332765240110104452328832280619886840592650452644783071704032069536937932480300422634261189530925843660380880709950833511889990180746942851480698782981832538415362497594631020389714751363310615815194285880025827943260331401613884367633957961789560348775200642839687974013695934402428321891368057789983364488404759928072443099177200827645395620494613940708149581891920065218563589256779946170208433798936557122064478758367521399615334296096506997137116496256506404165917832417096804604577122178085284350085708482667437165368365390803330059468567803131440560106161422091644435635438155681912065663823855025561144371240597026103353876826202222920870459289454195317049604329277493966785819687189430687364555527898138951056501776041331510959577733111520586977882709463828459930180519818803015230957879073328858600864692993992720938338553195231585805764287221552082308946857408128221641844009332093654309180108284299560568169845577854432424451497547740877844592157211743315368005694051962142634482215902618136374499042695580927086206207198327022535991850164676478745288401523593139696040392266946301116363832606022545476707556345589248951370494247711189073404432902254275719734144564179036445489319160294833407877430864724285958753272082913615448154720341961646013997685323798861372307606562676653707130069641191032649525840529656071761869708056406663278643457319821581947686253412461783026565569748255594445905186523237622786467806599964367247980713816378437009524557931622781208485608835403663334368020999384741527918201669808405664367666818763173402179377558939478702706057213733857159394103287569194529912809735045205750913940668319283719355386676338415215701164624766940652767153846315833956389097829776118547050714578384671146642181910398741781026864766757882605586929469598385145676558720427911437770311075371184992958407887986058343872448631286346383880650177351621455588257002420131569291179632665409939895080060814369386337222124758142762178158224374054274961466089898358687329731501981427216597223640450344899346360279736430271629576972858303406276887469600622092469408953405359227497676420390604967689775663215102981552882370404851421066182331888823004058178793832093102841002488680665820857101706589126769784020255433870460773611200085639581040125899789040202686236675811469953623643169281641152943648331810068669706965324304755141925020902975397626761220284644875252676669355528064770533375778645191481457947404621835865305953913245389783190838294773877971550736009141392936843908847514691009348604767412197323026226773318967370086359431156420283841837964004446706719847228108789786686872392221967068403323956818962811264477542001148106552373932212363281651729693731579348210084367470657607657014925084986249076297123325119903944391814044021863851486723095097981034832305164899914196532842006387092200030155829436461200106773226905698839882823801592314374107731550671926805284128210215878662031467737164755093369551980505996121278842620194399553381546091426959683339131648181573814912904599043509286968592011844779148686873631535941899821501765975230428391750793104716128078197250095470586002610458368296388964679258747960553552486752694316835101674884818444495649087168199674178260514441206418026721668925970529963871005035946848969973067001892259686955173022862391856557478011829108079527933971697291516886680343721273558438928803920779154024206517560524086666222721609489461826695318974874663477869746020929800165324671556483368113629056910219239280782909934477533970502462500352478787923780552641461527874469058484665788439393691226425185050592781072593413594594780581777663812240411885971840826995150567036993643235739245097737149995309352576839891671978142103868776824591359833604376697885563246078677896986785949361177836801976303179417257681913183222830155366141297996267141557735130615321581215872674172340410426661934072239615162996347795586001316752173546609525010053127753991936045029452304079574188240547443452653976232891368239432228169300932370275372267272335642915335112283625886441284531726523716120168715050613601020342245331825398293844858559651248637011196200251463627661700860358056334107772364517496275286505639438109653307731884824021100931881801485744940989358444004753989593111921412381865646986470797100203484619173812421707598000609866416922547545550164513425601956344360916559430686867393929807670320672464495284059412149908923237847861021701083579597437952633505868522159947103246965065840684114783646598387650052104892537615303330905316483304727854229317922394802900339563748268824892830412886995753931612532385417889834158071093273999017983297039174989476408273816520793819947095079278485531620605724965675305424926804762260071496804694476443558965234834656039818859755097926631476431720934535677668462369449341872614805052792009182051564082852249369779457635592041287797996995081989960561984307894003763614119074380249724279816234367892263188992635120954057827228956177553812883793013599833449623640589353692498047459836606486391040625116581146781360163044523661558400195703835044235748834978009262771208030220192069467098202983311528943073650144303365905838255863320954906215248727030784899282000084394386421792174228454859977839366522566730765936655880421441535405061552890893870170375952861229625589625530180761295322330323740786283806317794954366311660383570283069992396370806739770767708726312297113780496528057482666935150386756208491771403936321345001588289465863313900064617991335400930484747496776706833225481694265423427901872703853564854809767047721116080866862668687752232568313866998008663753229432621340441473627818580123362219603993502235959121891156632460290757698245396217652895821954644161806486019447761690036476921025784456081067003997086578557014052246080450666463733606844633594865881486662003292478389672525014070884036714106009063071795818298209012134442369352728035614702810448440293728439924867759441123383577680221967023468954884418531269649001923391087524056772958373962022264699635336255700397074511818630181745648269077355384072437790081192363773177041950660703788128032278455677979090863028579262124516570342624732578631176280051988078436663216742390808700141618123812466962859561343473718744618077228278853748618324391799374291229145054180157730972446657306427922298027047504899104647307816656599378033150966097079230838761799609160395609709874935842833172011994221508415238537368356356036114726458030545771586803395764709099285570888118037500392021901249086655268155956408204295560422369880802719134227796591919889750500417464009065850579823512200504227324549372997874680272378192183939271983270979046158724047502057626846694631831205277816095984731629711212333242896256319952123210346353757172253173398765808835734655649238184013254517662359106946754068149185403611192226466255827191268701329061011657981828962871060049977363737304297366439162873624090587229464795056848569843915434803934927485655309661998706851419181277061418398868218825036607037955658944139965617981614371721190285182488469913978181356977946193540860692050010443538071015168750870659395973614642336339354704167455323486037579950404839200212209468522907929918293201185768798960025936843265498318677816230044632386988552497628316621753837090515092105488690580708420965721561922824095481819839752012322046262867891106542391955405834512087703283606317058559119211694667343845634661076701702280962231560952347650324285261419649244404308407570169608385023223653949786420069252946019354294685678663277061901034094133775398568134144468903358152038094176000432568936300438912802593760616566685368351758244250710603882520076142974848735239513169454510826995236444540366218796278001311509262775024223475504819262343301643451768567355575859253160985942483715022225453310365889747081853304037920615271423724633770327195400250043097672785161442577657476135672797833648605670747868056830623069627498047527116297716844135613158037572582512939554306958711783734027454161490427574079883110893432027403489626098039978830893859874367011595656049713833420094316792618454065519835809901153443574341292188968932649309375628685950657771428026502294540171550766911964550512033306887618156123524928087497923647781618030265738404913373359918346872601382501733507276623198799127078213921236790134992760479436476916769670231600559038437764026109751106146224663182916227337416241137196308719093602356085673519248230377139383543808023737280808755158387069287457719681881185192313658858542089154137985354586725700671416681571254719666417788228910224173734003046143138698431452171981955908927343756567437838538388431829426444520461935961980787446577083877825901657087439769894443219449710390284737504219663021009041568476482779580666953426792531471933050103861306841178667917397868310577520779760884556070923316306602635134798665567389608886147486996760738988654348482756904132892896722850790325036728859741457276235477343086827599398106758634495729893970233778497665899514717138903683729770350173141284762386725296977113491272770800040168026111211427569085236920093960642780352058003957289861888262797862892947526687582443810232754656253775202141256584831879168583306965808357298732039604373597678383649506976420800010835982774455834106407504665303307351251432230324734435796272981824261917850586608496951843418566811633248952942635498155122199651275244946853299842417230710112636242219041559055111466468307109993037254891962288602710662312349990355464202668126000420052705409421385271278593607693868307619623654278768770085268309001541558494112660808531000234339869394773729549917193383241301877015098048402700222602139705759430498735775304640784464483104375307648429548659686969345239796625603829480972994048138066080844840902470177304523634715929635582734544032177104197766968001164871994334284440462532374612381512966748638040665747535428046447842077808508603029024265164326304373942291782767057685943424810047570748964534150140925523891595750876489545439204468904143806927322322194231271991041899046860922877339847801437572506134184233048414991711334924599074241691913242349673417954258004296292119963141914370088241425132117878948534828126683458900080457153644650193269003899482870648601689489743576829399929503723481410997451529324274005066354548031815518601190575547474882783943561868225245168715551944626945791423137499017551093981783207117972886009866168767444624300613516136281472623949522690393035744346528434800336616536104784740068114093153306948482853212662523531345889124257857858089556512648874638974006628381109106841037754998602232950897622694830949122410088468760791753516123817959504148263286738873452566407739668857870071773040366822352968473582076584766073516678100538614297609699783746941860369630797453771912646099858249516426079626776766382482507114969177579789359397559520534304056455162746394028777896411025330858343381360647422303246154906106037383681743730227452711609990319290983934751414712919216172942565025171470020410638584065430789867041843099493825232055581343332343718752859308299381999901865772898999510028523610655391094305120537195631758293745020168772351419970238916192133689621449683825417972223953152025762007715748852803353079608135144903468476749386817692037268819128554433675499626901833789795177911054181035829972877558388984318216997750451793013470965117753202229540872937160107503880206776244872946638262820509221902042740669709707121060098491650505305577931691161243869574554855268600103456116911711169037525388031006028485328151948983578554458209087705701289328586272997937123291779717800943713486670629025297498619549545092943837615493526598974028305356088363860101938977749977661149676558830430145023976692762340210513783662084837044159734141722847389492135156256152930183159692464449399335726158520965731031399815581319337872418155364302546988235770029417302647631170974038545156557322833057395441953671657697093600219336477392972131509403311554201266060746358694606108383925867561140145015795391935941527704569103515823656966844265024007028902043654452114005604511368277508108261409338394653933803002920124449702462390606012828716574077515146861046458651923805450431198390377568901979076114634142196008501847544836989050930093726411804312108071366003080061015713357815098946951081555117233050054996030649839968263276987191023437935986976415074069622762294721576964062573016817978048506335347270383968577491143442991059375410904845579689471457141319189022829587878346063126656736675146798430004454025555382424833307691243040842514660857836213667226251139199975974592173006346695592971320690439706161464700905604911902886658100659182069242783624751094250814117873158436399483089563469870892431346299325864176676923723069018118164440145899316652791363977268354194623569422300814578464710065447890170989737159005509833072666239608482914441601447142823169959808896798733558415381286224646314421069711750686255737549205648236850084119740154751975865291493415793880704533147411522996745504232913001732324735002926342402579315433518391258332262580771129531323638170510044793396049719169769251565327913595424743850202328686947833950718811612762859913213898437144395038978783994437041528547344389918399272364162685160848799533319978871963849073027433074951390271110196030582682110735108595228301418955014882928411031640465526142852103173085973052602993051001256654990665237967926810678608975128977340854013959737066549968978684067764347544207464051624889401609164222492484350246687038978978954412905276520290828303190364997743452393265615162987743586610726667647775805153109499516815561096694468365949725816491227197313622246761914214338358419791824717315930751023248585972513570466012046095938869756891318613822988540750471842356952600160619172966395088833016386867587713949862368950451845600040054236355332442207486323998865012305953149042601987513083865340332690315645761779141696450314479756718506037027119977724597962468640463730974207314190871540437821978248745081574037310164969172938244003247348171479527856210843558147449868102033015112914459906157422696652496421179399825429790704111652612613494567027195408851913296178286438468917701113924356293635264210201621766337179353130470026172600689256121949570914325788103114955323468719441008765084490468741883597466839122472083688258753309694623906058537547127078844647925409174496914376128646037953990244869947438188774436204639617731361793219015343473682899545787498358766758024676714480580669978583139855587254370649886673244121037898453193851404224923731373052170676351139451117447016114774520595115788289221630659935002395923249957681381319452319122805785412236523831426358666784193710552603476954311920052092049505170875312094571548200731790456642385404292243543852790503507106707872762514434920043794665415988495040803604675855064749725816992950800903594393303031204194856164851228792680644792299997241073682760267419534217263218483363390089599851774933464453192373955053147416433778157555578952939785838773892512196530505929676062071864530888090521678062150063321159626007570619581686187624089026427288906960828861647949246026162941739143706135157347969515731700826274223636389474339486422849528149604182534632484325733391413603799025759034676419637997283927015000587953466084929098364162579918152979331272501693397446228231500568299406304857493123919354479607162618458568004354234007733644076805396276640364216972243563487844871664752208038108452905670450556664783688121783043420326515821145238288936233896083877730776378940689120980803940826700393154681088505210967268786336106724140016177272580213422355550915783760669278351366369487093048828998655572550261759404828458853407111476853058713905601616932600234718254975582759975064655196911197429464442350264974376926266256591471751583975805317820696963775143720899191460432913513150307091337796257869524523549505436441561646169286571724255294835448767213755434087430047318568522560665968986293716026963999938256932552974431845231406574671228627629372047890420728132456375975704457484349124166587198993692146215738461799772604298950977247268835370893835538106623470318277701927952234089733852331205131760308706909370199945801499522150233159265703464697442297677334910269967947508710439512488386716394288424949174682518074937549295694244936260547911110354160549445018410459166207007700630992751880590142979933178889164411609202388464789465257191745452053272691686043217668876218542724563083275941174300503441357558459685931071126219745495454047104595233067580882293547071518916700414283159315708969219061737502516207978489683434470535358201192186572905223986587368837021848940629811076639676080152144908705211502052508121539316798389512858681683927677469217588483843186911022794403413886068556543477722342511177211017677558627576626411462751692537039989046082771784985854026107712688597457755810566730389654899661037659031906767637200444368364299376466164656749671603390106968328749556939008968543373034099773966257670833858545415999431134018570063909420878612884360903573995816528403179658577937408824976117486809916989469356957656831697034082775435134034303672786599617261733965740477405761718890160883634839005855119148381122083465624159341967815025237450860397939477436728337525665305327784030521629095019729185542945557572931682060677587615960396054694787209135253428445275718941865757978302025920545941722816101509275118841960840982465996898293221054792935956749154385001150545971771396573686228112498582585677024973910011469881556516777823024147291489191651674101227882253640037301833357868350052378058850300240622669171370837836849642701530941661304090116724178870144214931322901391723270271082417210411743723651005336448447404648222834592162611138805963259126456098863402830625721988188643338087342754714053557802691537133222656636852272951367427484015549108366897921911689802563703474005926034563466299370657159502913363646274519046144008508042989336111145694283278065964219422004032957970580686819764015173447822411585571039110961443671322777239107892257163731859016869131276977592796810932077713184515269262076382377086300514043552917086293042036160322073417072256131243059666174277976213553879545190034776844330102950665400549061383830601245121664342601711609693296238892575332693931622958591548666210757097162596945189994487614364917512958978789604930218098961155202196772242906692398552294233887945022361594105080910424363721305557166324745733830243197188667048300342540691116959327751761769768157564889841881462538628624365005019447346513481214618294977388333256890967045471657250654460884920005180899427771006886957874319811990399483737897801709038401640356353217039305654023639290526172876513571568173743984065779698298523782912751616841848703264900117608885420729909668997843962879710440234809360446504804854390841076519394645964611300049586058924564456788167772133712013024675003329013720148222885418020553173428805244356127362140510765381908728596389365798987058125253327324477301784127340541705298634870376875176649504537055260454287204993292136021069981630271734158251064345051636460030044262591132353790792599263995008753135660969298609175377273728144400656079268815052306876560781170218300995016825587714961051666673568958978259620288793068167257329803997177506900412090565108755756640218102177853210777721024638096478736178638154021981532107367371626523362581013965614845172418717857214298098786577515389502504206016367896827701551510389943986362398080339426982765179031314163689823550496760645404936380436036628325421747637468078571052446420234260759427836806805817959373970723541404125056213839986536689294669994056142324850662230791297281736908472223768665651192266245406771061898057882574252993721487652497993252752094344027479488110149371998479981412903686668077700229218151160648333929460714540824612189469097699173529085864194700528760355311963108025809557743312805617799936473520142261540235245133149546900463673332461209605933871547161889675011968568831607896081353413557278381162632941297631194161261586435122174247076950437548795250872005415500343930109856634016992725570161930788652652730497644137859246784624710656427853311553925262198708062868913049791765458702305296840295912658991349227679382010563447509636197227548628725734385609322257604589229764371927446802707538890480540356562479271265813591203289504261312950386747005292103684872724738761070366124378146467300775889164350929243555598064809789476890327874256439093540323835664176146268761218081860302168334542463080605968572442447294328100996507946685732466386427243131697482567192061236031790140445109664017527991691803320726938558134836119554098977208874169477162873259988679972466026479659368527946401632583739670203810951321712220446941169537617942097467903685448816868092955744500259503264949396796328933035167925270478153590435915083765607434339597061750145849367134979750559843587916419443120302612918027056997230581519303112022862121654556001407703249755786783399064913596239128037135734700121777656547740360773377449716444398264484322382409605222791869286166773860422182870420472751454786720516482943183117018309977315436730734730255138960696205207943013233230730734606226089861862527755633271721128892392246875900558756800284363513363614496877081168589188399635817542974450494369379108595205012128890338125102791102756299308418808541381560476317755234298008686784799250988130461637784025830643027284058945533517832842275602962685969451258724055523264584927692386528988333819630028365676164795938518949297229721864139820539387844399451601812772198684259377703155352411487528351797114971283063477431300160042857491921209460146111216216228960353409376075629141020646079656223851749359312400716399510683940384694955163045526552749851025421319701212598352062770781527098586650344198901860836183749992799049259360781205529831195715434738790900980973108333255530831502213006325121080455255216230411827202063213421102379792935152567822188708703911013079796382140631402534316349421127397454065002775689885716259722009312525904417383446126529717735983731620519716836916595933373578565249303447673859301120224311226755885718662933848105851824372666510217233999939666761979776494294845919513537400774608453997744078512849142272114647343316282829575560707264454316518923842680272834452448156232052987984677147098889796368542651706259972670571224567030791616155728886778599482936255176013809174855352959397670896721801208316529583620481560135029981296031843666355901918778430598441723335201801721841854902337163330908554431111880809610181985158621832619885422006989964453380862409323387619331928560517031802656953640282566465363448511788048076828115642121573489194775358663521651113979457077453732114714106498510160787514248839276616663316927899043806200796947252892889636586273372069836060515905135098402951099292607360896573043065956197862822969808261511736326263978808520188960358960767072590637818739783688058769440631843264432413509340119011898910858270547077411528696777774330085262476253340095273697062795660591734915711960713308922121399327068431796415325931995800332461335466025259541731676911156550528272034446199637801203134791919410368952411057578669638771208467790399218185508233167077659925310500319383653802272705072938531021740312321377700746757020170446467056422842602560416634883364198676705264721695676905010989900738353230972469058877238640018786362018481295540600128296951875110477866366179276717638432865498475138938712135227897973510381029433485891196340159541852960760714374907227605109905724633008558594780851088561651673544831785713582764602354439078038911645340886246191443756165205230160036967971881714627721140917998083105936208744365977008123997325556924424930533373945695053424489509876641126953563709398433264139097321441893714759214525236651291725462532698428910780704307626705116166241240036548154820669363359843431200556239672531124429283427461144576428232260660916486657524507041045637014381497854908559887414205917084873879920732323233131524562015642703222570426945751047032286255314795378985174188019004483379292792370856045469215304071497173599345052662421455940899051104665827181337895101310242821386638205186968546610933716201059148758882768235420797876073847720817862152816740926404985729689029469447965440523247564653099226289686633827970447330907628170789612449895222146106066768318200654107294948716222437725113316102548065961329351188836105506237538889380142278052069476838272294656749294999190528353623033064875204400657224201806604839611443447416218210634489065498838943435215784942620080147071265856832552024685955627850875142467281000668894588402918500926919014395259911908410656266761613045195172721914453128610463958677243123306982184953427748953670796923458892900295826265386295765129874692695640520799818541164600666224641192293389946342704706082073242186040322285919820908621009301601074422290077269808185926956230022533912781981049705102463860477549868207113356414973459161218893842594555914763227440115315704830961956941965375268744750408555974935390317536305192605353366122273389478631568020078368147665010563105646271593686563721737318729096363154877207030626144588926183095915604769002270112824781426473925460558300041233420563539188447067474177680066207737830303506775870514366771007169980537445685517007313221820566729455798168682455689446021197264670334512246889472018023419646881618020928024743089218234757945638818329065615843547099002984647893776924604011025047126035533085690290516844259439658581615793572023354066155621928705789654472570093413460079972459313540124786333327362157111279498780788438888130666409833459881709061778576412604408251137652341825813218523816799155692957904477713048293969019346328323119930148656860447252748580137678907949280522827828794350604652741593476504688028403188337763282592730193617725838227159753596646009398438930039308489788701593770824373684214909662819962496384765127383947945291194242584290946009032200242254759180994057083289035455700154883641676800330452579444445107368947161803034278644911687174960558777018477513162147649528754043041378378187876865464561877664784882494421122219747777242624161389316089152847493324841692549929954973645610213786343332461815564889812871054816992486021691554061330187781944544316516772578058446403195670353891748564633137415227096659175358793327904934981924230126384878298422452047702678413236367815428417865621274114479374480505887238303290280360053077395529607423187451404049636657369959245378960084410559626341692642795277275138726236402250770982328081264828118767823401149414324944352216557804926733046079918275292154823113695922354041246450501550071890774789739528136627675627727711674071317152794559636623140564062682608720271009347168196803958144329435358638275602808170019284550838720615988163011012881658884522872788117073964197708129595151644872273895282602059981502838398972026612858217129538906597757763574149821595878763725396384251373341110108156848511408461752494173946250776127991961888608423409957870625495972137177035939500037445814661314061261709755250037071729542549099439825974921674611271430793629291176060743944557969482248823540167088296408292619188471921269211482620732532166587062060675586535722068687862461901840332096991299707407525781916639706129748424841320122558421618499635486276896188242830755167615364044535403222687285137014609977404237607406011227889341831183562779210491999140797552249992247904036043887441623617077006843967870630633113080201435042311590390642266300597177792561106682429511680270531577994469833983553048336549925973344494465456399923556662874701816919988634162128683792403234414891880359395558805348219205282206033733478118623505350893233203232145487592026609256550649958363169849209913059648029862838200653553353051102468713681495164952925755895068755707340069375872868778796637206126207973383403390154783619183907391913654603160360412465158837907896711375519979624002028014518683063831060713637471056636363774084586658141588427466923873541903772218825667612868875497151179162300054804469956367439985962253943871429953315652945497782302715813208071152418410238161369660802059759356578887831912742907346500651315527347440460055140771021928463311797164201354939602269080740672494090565268368003538292750382776765224692524718214494792676445237541808280482936102330127178310973857178519313241725978877347633289406036087014608515153293267635625060138449145260962096210225833277809116276037972475288842089348459506536164181677564148060401720682180616759109517653338956064211529421277444843120376888956050695121091152173037613861190473426280633817662426962930542570755708849977063660852327476718631621074805324389386664227872668599736441653636851275015059488245187810392414478618252926488783183366437211457137663213553591430087819744135934288511522480306380913654314163476750771613688818327363144791534017967300847748693607774289130954002656751617506219889985129633795784529279817273799596781113565579417421299316574910556035832666689374607072132380551630772481366498286605071166131366898569790135848982012726633624519106256727954323531076587280119065283720810026213869387109855351361157182501088163625272218266315457790616509573867418444314753210325869096810133312399106662084131534879056496517654428277639738539154088746234373910592271108416036477419631982667747545786432962240951032780254757692739375298463029385593413316723468014702955602420152360928378653848502269560166288862145843676636044689415964829247289463729918387217824131300725201886902109078536735398072913980803940561504705362681490416482570960596314712222324275352710689023114315515656237573254825857495861558532249006907930377937456245270927321106587493794860907582301822819234904743817576174778431923344320673638827532145251168641133980789415947350486030649762788407716500518195038052354268440078906038089980993830332362450111367055226777379035691905597461692917649906216379452043912613277107899187489775642282086146147843196041803571550551635938368478112684997812563514641042361285197691061770195836660155323215739360326272062370784097169939311859849079232501195692633523069496011782723635223924100776511053285588349877430759379801049534611705756278810692720970807809134406590604742198685902118624767080482986562989057097311410996119467131813034015679442342078996062411157170767121653356228894961826205468629269138659212642549680171941282763542463820578624035310288858768847560957214882269617782943279848629323105751016535736144806224319323541662108515448934337360965577233057938704325538132995055544898195932400336352603761139492811763543844780466655733373074825568107773275896996588821639142863490997848279791637634608494468453489592434043524975360823138636158078276717010214188949162857203822309998344406004289482637996157297814719062781072414988169527629982041176542749854652859114801778679064912659606673242862947534057430580705763372441705430123372298569272726219338551286487718392979412603854237499229565576699855377072768065631258604994880175656293255263703617801522335123383777408643909272655189879424045352034272413919626319735465872073468385579287214613802648389497049757028495104221145126965534630711316123618432837644193136714512958480667470288299099818443759623727749466393241859677918489446721854336457829264712526445948896632572354664134371595691786123768073152637360591927093418866417012192884191051357893549947718911753280856624435894902607623435331487256216889715512642449535989264162001858777821687151396954415329630654878878440693763505266858129653281085370253707003316918275380769264548103124918736858803449382735479361024633805713318984775723388175791218574799267555248255605590832982218081525250331458140922304573786476795308595152147757279968200908087423516822371231668071331805650970639662129493403369339776220014008148775555726834925694823564025917450876667086968464363771784548232644528715428095807893078519558608600807587942640362191426242138786979359149292973866143267956252314579586431148745612834319322997093211075478543209896879029672461387997098265578650244441958244316468168413851619110663533628598019293885517758511101050517737478950624576802435661757927427450190409480641429988191655791817905300174684693038091135681906173313725912216400289925010944631565690564710087513769046052949985068846808101723619879640776077092955891377593255597414707716747066705047708278531489330673744602345579710279178320962659990763182661905057064141394527968831803597358218460035687298957192136615857559624993479033505136680799102585671714914175035577069175076059733888593361143346197251417708560751908530307160966755625551926204781342370525822863675932828166946043821443636336734492466295613423178139886897610405062759353991909551335509449149823157277046674374261377082216813009933106821161230330186933180275547482163483521567190433855137884746447597993526798674580763956012129823485291512666216830376436423878938203240178885989485315619904429368172867698960495361062327449356913526385683209493372968187287590899350672862327978460434483262955461519413453381694589638804024382244581189159474156978700124763210193537646131712613120748923689394680278568108115281940610323618171173981645596385108990613935466785595970188575071859914190801356671421240497227333561105221957007682498835909220370544439927908215161576989105373964067072024754306936634037675497098169699971691134590894642593272786737371163227612575800560858206973057986737096345660933498692525071815510839444549999162060208040146638834025627372894779251884172252896011280510473830498477650457892572573028391106220537185745481147237759794054540420226674322643717331668929576849648262797048839778660129457839848521748911884458046246677993183776868080281826754500784452494581804316806372212410821443507954251167434937890089748513694595721038792887234357345977667120842281184134436579413583789784662735972176252611340963059858243272152802965023207022590720810959937219681289563808354253483986386470054029866633673035245373143271040956517631724760708361789368892656607049823423602435741120870870844909625754116211685533333656266246420620966754709255389573819488627137772613592985906383191991263159484489290151996341931260978440323417285984223618403914963329536105288153736137712195998989092855221077743476005117771476155555829741872923631340439727693661335638049045230075917145144277884626785215679616885721004719060674204005648818119205463861923489495920386864663330371957613226855802791844248567266269202968298820920691848473142884418516790628590487246380275505650961127362413055199018123603150062673643044271156151872890986139456663825235405732897016196407149046087765801949439747317942319237681684146960690403007367101480334654067845684484949887188737388304442572270433825285897318872613929761566390128382349896344876166192565027748329676791321151369994495769081497861223930122458626505554176946815513621378433571823025638793970911500854697027552944105478453265631827427468554362851113211754650741308522906422651408907603651243156389393846411254245237661685273481813595876019309915733008047209733686544383490646372429005235091928926703125792355102939877063071765988555057616032123015310970395852501621906544600715542383485774475978048454099911841563039777164305773687457563565353131501510793031790301607869305688562318217211790744806238878799933148622025225157020912037598375520153682369054999065832845023003106952997244732876398536545989009203382764988712136835417877614555830865233352926529299367816281483165695172846967087120442749062621443695497399098350074175219984865991368144577129265333496241736275379408177833782141753865410087863097883019058247558356607812352223660842470302580875140606142187759301533495494276180658023199323801070520243006506198673068212919618855863189762519642152815822556760275299979594126333542838727674919892170763597155493305279983562501816115515831379637903255017451592340072656591218476735545960822735889897441304576929649048450995610613648401369670104954148187641615280305341247441189939630655583001522165256541006045586741952055999745674238531620980215490887252914945748102316862348500329226227836574081986719054995049337615922099601191399288601804077754610387565724536477223377704650783355722447724242297817169509270672472786672334361380973220366563747602396463960891759146188189198490421455451677803008622112905329220396843073130199722139466516394412120023098254123848731699318800958605072205294752415436815226054626797778259973071377709653856954663695088994159349754253528815490448897295703495362569097720993545295965467135247394758077659396825304204470006317365481266125722008417264431010045396331080727525040529893475651056952052044582503856923767862942303242920533116223166653594386805400672964518697947964834566947336245460814047800978743622633202306730832401495233644228175718712188471097023080455885604879600874090251447748151623817759309514855896924702431533196503826849844188960433844661186546197185734133135423383416906767409429851580819865315644111774186823452426441696868588172462520550893593265420953265397760759233708988609592951733453442307006352915257587777651851928135465176862999305631854312792102572936949412998590990260453857138290326117715252935631030341798466208274143269327027867841288879530038111641885105987208826162615403477190578250023195447165995811273034791296721668054347527314381010954694189778214570934919557669849591448508479492259547802096034695934909464915579211040824710180706718268892775983514039412399481751549814571417601842397232988028794094893785968570578014371424089332613686645677562186297566905043783926837094477725655978908768628596833305038906938913038733886558192637683881126407759546701077232120413139678646317666883671677251056431455596646863541568334742558726510189968625748762660156547245538204198430687020328222456278233092852136609347787453881652758296708297864616063325876124219284335069275509622763392623505476710696662602469215461091659340049013187747428971299775778318485715229217343663731825292824960020749946434288827447980573453977397587728568054523138830902296419404403969891970975768308272721854313821356771292282641444543033503991923111724003267373816777113424127867980008635620068512406876242013443762440690888594436419817794753622381927951075430905953332202228803070813247568731481528395308317900699280926145118863435658061619889104404063090128411580017175281518464073129551116493614232054201942477799571504796774890817608105397586012260412663622129495910484246799419597024934267391216911642923391762791343575893627267447301875252906041904159424416842787835914005603404969622342276071790376731840225832072467232675226444426689015027402442148755908170535462964357346598264962027189180340985106790684732238158726001552549414203733971305630205557125004093618580553497131371039824231360917163863115780216325826885903718256696616920052743866966429121933334399392558522827859239181960866358467291458198246896708501182031617850677982256693367363851417259116010209857235736297788954773236502263967417137569382135363301719357504698777256318413990145527963136213615929582876382217061327979427271596371480683992460188852200063329921077635596043429881491524206143289738698844731907636702720800876672885172686637592585844601605346453860483472466790230974793583232101575498999256977938613803896266052367515311834149912237269361868928061491918079356006397779858535754848679094896897775215360869910894832070422488557097171104197237766228854021648615888965176376610954850860521514700412400986912726540229496978991904012679127295132503338795474685029516152989478723186263747471658232265694657368995652122520976149226452971961051574866962202300385075071308830751499295020352841004921676730270776160032350778936678514729280099512286754308577090086547003772968580175524613963376652150912637039949799754295697910564689351761178785123514653980518551497298138782408374754393829001126819981927605136531892826034786451173864777034356005793796253618267223635420952648950296897548820052455310384308507964991176371915764524430013044762763877295620693057370953482389790657040051086883615945521795008803655974316132718128715454513195974097802686929767889873785147904217266640767391408200581262512031678098079187191746454764294076346839855474870585687780292568911194836621013543873872914156624986329069665284760382447091984698687423562485919660460199639375773288389615418084266306320041828590018105788232199886246184682776167982064687364550320760731705132899576536584431567246471622461792925154599274637833696260470810149034833317499778137442981608970186046190138178022329217192635033705017795863895144551613759548899636381367172129732451887761060987596528823653865571871285340370975146934351742595816683820853946250537208995807205713323544288181800670034677892961443666934506877805685565044224997020247449131719224563696707533382238102149466634669520384880622972921262522465522762678841452339847919118053058266364291310196149814431775788475546542947507613665693353742509536154461925786386883556474821812197275422993435825966687461683884837906747937238056977867828117847374159656604110211035355278277476020380247611269851406048286455565186174148695428118646471516522656769421146628224073830398687844187772858186749437138261239856722793751723359030685317665110198319344807445354800793676883580543123650284719215089994139491246744622782841821233279784071125908010303332878166756604151922242075063286472047295298446924437539407728376041022311017731987218115706375801067030010962071820051149523191211883902618700635826396242783013415391389622545916252090167729775697976433217759804870708617720816012099282588443122177364342927496425448791447101975672305415909519379280488001060637157805813957700776820722464777174546322041583427825962703226059374391405560881359570096616354883500826714132198607172160937043501769626954937890238696582750794028935842041207815077187880481505393450626358317850894636727089450382104826892727808094217852351624903536758431119981061983939650484576330186223962939706181288781773399706622416649435225580292149550822222335139216322639522793903417589999606939529813092114297577080232612033138049391231842082469654717861555182235583389659387395841908524483302945823873578801870972340023162675101981126726679161525864141116017439390403994291843801244392601121213459011872979186840513036319605682829829131318065918016470974067488429601115442251542287785183489865816476061155665883753434967811553367000987944938072686720894232528438812078681799367689952283160536542308708713569851391915675165975050482577440832665826324025330812734243931743449408284864637552979637313133793971416830155954438409806560769057382756885563350891082894143100903159102560982986909149032690222560693111744665330958378835318567227331887224704991825132454760521483210265156372736537663631064809073647033494078513516891206103539522061593322973076111010332328783617618590965282793143412420708147809120674965957321071070823082271894787422055548474753145432592237152063375026344812171176640411037211646294566191229124675246471588211331364949725140922910746960638580808579768312684051832380748285031165136797552508868337276987152169902277383621591184994275242488719240297090959570228738085922382423427971052417063415713078326000208179660564617676063383092159615207564234507910715418872037799507291407989642237701518126795146642039314822850229804264276195010392235632235683017631000383735778752096408350121405736400335536619325165832583741072780188528077540238153630888883866296097944692068392413908040810717364085526897106451552155459347630168651139266354526973762723798321417643753986729364395976951118007559214625373494319985858806020215767845908402982235985361231102397059678146756409562849205062373985410647676310241545991053339356925040227266482699147111957718566913444082659773500841317776206562335244200207645021979208766620037238402572488110112776168181232794431765777702398591471370575775566557841129169178295686644108385554981473643088210575841731081704185326364899283438383525892705737929033198991471555639343917922952872862773543055810829904805717269289204828119355428069516607423059481742095856538587659740795181061555850727168279006586556605864167496589568890839795726826331307388687439183875844717068674999471041659525510899998548308901501568266542666739122651594380125173313429254463678087589500005077857101457951309239328290183675310254805697279281476129351427140832126260286138371236144926864112375788815315687120299327258635001915378975776623766300159534160183997355031553184856401320097022125567630933496485863945689267161536342275758746570224797957958913255492743658668145369985341220740664653349230622374442220673042423972105403059331823315708614943782648518133278258618463421970511660657855826877680261120931037572742625957068414241665325814301759716153525905165344678906032580962219556512312658066397690981382706577107205995314965445387882651719738488144830567574354324836536243531810609238319325800978608081747741894283034758981203053059575566394230055295675621696222776805366368302811763154464744667284939906636421641586823391352017969660667639200464936377691613245383773365897369909525033740237537137412956194909370834261859039101144879711882674842907829620946221892415927653742033062324246593914029557382127322692823487464917638615703228165087601580192985939497195092732690945163434556433274108655831350913464719752160943366992724883583531214132730409839868186866388401234972461950672316158328046343388037575658108542597576118318270816220970265326926286092796333008580129222983721523586428209662239556741786251675861403906934667897140291605787292113100675424161807305805941313936889007093134027298728017454577921694853214099373770037081067045379863105630862541505481527070783794492007087258905847927791787480778639658130435169297132043051462853834710913857678287843915049317934384873541987709651893465116999105566796693313054890530929210914243714773330604936824804259412737769910966302412438458974413587392394369283967739222831486976186921082629790064048194652335863770734476814892858321271339472182142264398569408293387833745177307643565378577286312602675551853808123840557660347324622474976536312037358229343554396038810060558076933648699411665596356463713767118499898132645793464261172462103639996165178707281811380367200822429028462726887948322818541089596806828242444912614229317673029914154272653389763808392404923571246374858558048942976143031890198224497543380054892439823648676789776315988697511821427534157027649275951729748507053622905879875631283597275569126586073717257447447228617854428616534232432699480958033533890742165576806921597587210064117800820492280461100093063934805048256491435450368813173039346588864057673991964343033128445146288392056244228316285976716312554455234753881585441758196037583381403689282041632761636273542370759532047788581395195826932918039737494068288504397686957488025840821182259914094660961949282084447117289725887049144529302626410077018683868500610149788918734058369435428217725091210611214700390803244641837898240701787356718852589485887675601974963756647605056722793607897380336985762538701940819577272594518480868933317693871255386264991418484344883211841875914473844401536604483207172490289379479197933424048925074785254399436500988237682126351437058669688799535803826417154805693373849435227825651307314772340939387208833425971666800902249352418405580458966057172269136260144925667668573187559262815892706558704388213035035854294040552566699586497343183893684477071572840480793429589843215629482422663597916753466303972968268152615054059669316483958048391475362386825981517142437623402629347565164839567743059027790699156412581477491178964160582034253423746598865395561949921556012824043763637160770401429423504819182782472173525087668202598087485696726571075222647587096136461455472441748493627390673975255716761890266137749424976090626157739780265645105473762380078290812312761571766604036400745075862389302073414401290122961642996695942894643096795564379469280987056047662040242063278911596482477623556441092603320466771741580292056320382664395476279415459894665284978976689547805965229504376958954458296203142354544467701245938527432153030895124970126129745180054943601907338949514858954563917928730574808410235199202637470432335842855618702488425282245073344249340404776696065886472060045408663554107310317158702462049525754144654553261700617084142458924916553696428685350183721114899711535427623479102372514205378407027741136237119990839956347059336087724384769408708777951737250036392139347653399112081486829468411899337914135298128604316841154594304563143182812760988655417895597070970974227586382567203250149388914699537618481377254559287351568209062266900477368556368734604507585776641394641550766268137750026911767135673900583754183640267517183580877815987595221342871889112730584516481203539202495535130269735764681080290833994936876905442163501149348783742890185495247965369374952990515621003711257192420840379218227257063840991401912901995981117813689668827845342826747734853079929461312964932825009310110818407731109099709267431118595181390339614066399682189152956093121522921525002970887207142240681397475812306755817786668036686957435643780433332455299603906218613005698012292007602530548159795178713400436958764028587629815724711880037222719869578460708339528057471634324200391259110155435480651275385488260376090265732318398002059864707572534549860194059532234141383129097301674152562037955861722001768302514896951767871110966277290992302334852290926177724905835172568623003200644786398370503691293653575033745499995648442171873565174789683488319198673474408018652852279951260079737653590949377194512560022395967607825949270181688267401631583842957789837972819813289939255796103523557945401763250850090806924393625837372989232465245868697317684488300308893486077486992651100124275118077759546339404145052644166484630137520351968560616495261496925625604211474844287662259620818645514667538981284256058026395650972770162373801806352183027602824374618404491277843074167627221134066173445712487374020486461889737758504583020456793071875580365394950124763678620492807822961426779835584589100958247587020992747694533137469368844626690505314140281358218634825157944775762062931347982692350046120464956441501354467774577558218725042566513296123368282828279915911891787643081750303638204909106349920863646797980405837689696344678025247232337632698633109668651692845597289238578912026210018992405574602505051676510312233602861052782658298639012418322120060203244551899810818100757448942296806346353874124744832201628841964918974605684926888433265816164745713776746455373318673642568034954686068900179916989131270036432933116801072461586454956374543105048745291334672212873046302468962359617021605895963908820621339815613665917611641552112148796141210711268756560918569338803305799030333312100470949719818457831414404104097347160941156369368501412802377087471519763687192319300538906292909450350930747983778226398372723295626212217613676040314664574984630192317778727127864903011383080281540833119074169490008919075579827330536865134865893689314388987064651188443165481722324686920428082073485801007190821177109377435219482821635235466366253629167372915036696555609750220460952452632816222736737607225099224444580691138152487876300551803205865794612601873015655963306769659635820010183261084686653819722603539931138924087011510586977007303997307451170322285923306406504431139239926547363531776296261110428092413814717571404094122924763283260369641762489016535669795257252648159660888656302546953960832015572472049706514956624391931232729366999276116622451007324971796832930319431746819043016959355125135462031711429686861597049528819921366442222570884703460057383520984501793759504084374457090944345464950776374462326851940161359638182835220625335454977640839304552696474586141598127735901781741447344239489634553990289142100810835823189103233800353546563582815913564996057713495760317951671670533473888762217075564982407775307670470588935944137812943224918564297070576373526532607280680101024541958035932603204520732872329601391384908520143404813173949159808824359123686879961607954572995719033213389775815791300298822319507413382802749946909604554805905601393607036223829929619622086520110887464658219287452450716286904594009244029847711732126681478150940644644754938586536230142079587663271246341047609968886927299376065701291319897835760046151700281669490289706314986425795813336894726209467436299453033650259807445845676236560369878482798582187789258444991016374739112929323652411913907412454638826524299885357217029816021413016796996349540307058243466180513136451379887956616601097635343784656112001271657173229383212691595271860778513103384724834561832891669800089672442722848441050339659277095391546221237979953811234714642494688445818674067717933216373332647787793296218478921349620444350083868114014552531967543467749927579134879812611158651761148086663940077724312507825350292459237512782070203308289850721025194706416876649012877714313581112996487495025328189143031145635755920477187893502183749302254697972261810572233655360833108323566153169273628655478793279821889119385963966081807738313703939287843831153480717183288805578230474444248147530071687308883195792312785832732480564246951959868641185402950556928534726164037825357476605801131044394396942939060566083674837609386152767838603204860972041481312764565961355086639688845528462347110134079611371331026663920463848283277462128695034931811147620331109727501237743785600791178009174316726369261190800070534025140669893350341585659460564106065313295881799003088016081237203465218382297155899586345647874137821768917009856607716036193983607603500727786987438934145759383640603726458080413845346782714664259520821662785470314229057086357991470933578891361850557451527050547489213905034859352386311584474750106024561948284497060089228506675843791641310853944765803761503515774948370635843099518458536404083011654537071796259758891804352739319841230756373861894007148662647364158162782003795019545244236786014781167904275983939313250748483357740557633156733123517863844599916513297837440354632379439692145904137724988115730868181026558291007232854264763284826563842149280299310339929140591940141948689636293541631306601291152991590615114713115350773642066749880685602202363030628995465954180366228024513962647412686906219796506252940561740297768925047579319284578808391285522885055098037113637210196061604716941267526660444310928330877349548883438622630880765661415548263949232319140771834005595225586436127792118562237428210849094655986665192400547661494006457716406676950632289715695081728206833965773638221483015957286721995386979037433244745774745233862384318727537391673494557372944518230617267434845007578451340149560639914595705520033822820506168146056423989687032214165918680445617488420976087892199901793696969970272446292405384744386271851730738492833720584001792324094794171526732852743672834072164811179308741714719972569441833553199486833768093273914703240067567159806306495192773645632749038835277919926821548865073725139667285732644932665983839471169856160907842798500832126315206697869985075817201039242700296395736325569070499615889819013497849321720778207082316981657422365000318911409820466709348678684537569495097367989013346058464513761187511564906119403307856284864484399119188757471731697811155054291112454103381528944921452689801354237109628421409252975879461036343056117494914962900737554274205043173679594461352185642101767302660105362021820299595362417055320878965366893828628402201395661542082636897920783054492150066537955278271715815013645441225320413910907289747695218229536442041435111156784276805077533909135554969891348040881206209428844715879037366572903153083654503263459743293734031442065857370780019409134251645242605291935619141337657206807160577800701710034622715079393911293897818419206462236931897291777197016883471753406630847539855337062052306462110907856660095236304066199244013446848603344629635954126894170315739323723646501695843147987546129857740842721683036773307441301078202538273584824722351799203651962908499597763327922692668732827420558773408078226273276458796996240874448160588652855183316056221549600574978496671337427151891240718191841947554881955784701114745326365328937115521931297949985353329716102745576342012414947529497216304144548710419825818822271632488997202759212804411737484541048401184928007655622724767098943317038733009026069052367921984337105429319683485780425387309510870270868872226051801158974312303497028549197529418534869233541207375317413103756048582178171562024769956953274769360282125238703686238971555050500707406454424854843498242580144309826494686348032068764897239732080395526948319923212353666857871356775799741929399647484892223893794648647565221312069009524131434759088258776470945671676826312538525127669817347915507977903274918672069134321458201122333524066879440899694175771079275540101577731418881706410994678082149046716188721862703450822416741327202883162906573296001952690330574337281827916378922218818377458590702970869687131684854686609342451933717519863009785851497329623191474542648962928642326239700092877262266407186302399502726345041658521652469468206917317902468459894586401831474555707227577752576145856476865646451665245689886734643787438748096720807443463405566460353140987935761309746630138619911530755804622324678745917851143541798346228383580249262886462300308316908049031180322451193945861659001094038587136579136562769423079141396858612368256957359737825053476344128768182286499797775446408993204748705014772225442201061614546251739980326991646056958568233810866048823780977681824726124269530623067979607260310159455142102766166845440244768905375398849415546647637317852126079804923476887367627674587017312674211981043817350279538615886323012915313770440146049944887265129896549163922858871011260629516088217933055606191838846381423699367131527448566524383747558557258211190881584640485314388847108005685026575227370324927523580301081229670033481871441581854046671525948481852258494391079845182306509596775384662738663005823003100640139751707135086367951506927487205792725482750415973616130943674495881754405428368809482562682667696187703361322511181639570176561971811422138229977664607381380158711166651545851103300770020490233450299815404115672598547578815193784771608139939925111333658189109801998930488448348607609542632101129576048850519457406210515595506136547679318901255486815723422428832006838914659061469560766559255403827308473876303552723447616759715014600267170842968428700115230985549783143780292915858463642490478542511368345768232892472264425341890029787277342264490945310053133904446464049774345842156443643386645764402209541996023562858905604247672324802914527460895162529004886543826198111389387730688640185225651862091847775754677097335036280101069177406627186501116052451328642773153135827427768389069345695883992078673917878772704204714514399489244708544859495022453271107075566784252447399080728966618488637288211944066517586171377006414999381617850017535283740816601516686969927363696968982905612518214501354725993046220944294690331507264976413162924135918458256294094268825704570531040116331939484696499687872290887290363799185003704811747253037382180430463521618123943344132717361328687003469414197976076037004233605560841426829385137560227970258942086158106991375083205995434314146734377898926361390287092704117324895845707616824682220500999111474777551117550182394603100722887638665576622100461185120440626507480451676718909755387726315300519779386608685394462536388530200369474599374558938951990095078488417096138702425856031382293640735473354166860812379896540987967622554636577750974011700029009512006788239768037478797260753589370779555117579545362572600168641294181320027977521328411829047687790754254615701120881811611199423147890312834831183449264185445188761117937449289848584858136690795246248301394668600909001323306283624782738478658629666643920167350090276088775439783573114290332437794460462049022567799796487452537709988282606543504736893740701486298175227088381765811763248632719386264788335632819965006941118666102285005672470418636597335827634093565370422203824081504514965015616128909329458397735074268579722852332699157350368430285305202491745511243779162095330926669194330792782322235655673650863821907208766303979904935636013671773941603971132881633760918039253244455177555083467337307495063836526969959478460030536553414097056432971999690729897336080082623452918344638136137266767088978706778692472490724693074876977840058364086165706274991768138800756284350249724133651961058913578351672758862802346942248280250789582835544263103272232443426585555658421187807545080385577186365743884178918659473638194391037786627115768597620707547470721428458066736289260206226661612951100483439853601884384914421517354364043554200010443644489489958942574996174655332509976231178342927306369910998329419328156729000093919706534609145273229834745679154695888115723911535687338328009700462223391772424409395537338982283297321763268185139166108812985031650205957629191413481779139260070819364352688607559387462322814822743373146218489420178194462152742496011069244336234239758306745000704167990507326561347392763669848670301850957016727378276831162720427774359237190468633890495672866888748764925819392403226224544909576336407047561020091846557514532910040861986076206866445787786191248201502461709487989879698704523586930365777082618069365436966074660376897617095272410162737975595640755112365577776032233718341283452144830051879653559094002031426345992503166670792288564888076551652664473049972906039461505887512226012084869076253992940880654004447614736982151438140128373574589957598015376787259873731333491716569626039728567342148311350754689929017945457679775190239015493709028242987052508601285936918575570544618962033131287795305416964571948784350632851851402703595560311465967642533628000535636387993516705749455428253436600889141521325170366728434698561082446072706524271460627210559219859217706910639048162899996517594363505813373499228071889391916007658005297272069442401273077020353644572209301519736177632433108109425438164791356987738382977593418457621718985127546876606641153782176167457024371304833863748439606739321202715023417629047149992882754580722551408267414974085776860346346501833632194424248696355288347075351302941948979547737052418134674380189272583002082725059023288673470817639016463825521030418557409014705427835028361864140017820001959432058661789268142744144040920290578247370529400297982598457152636864673491477688923346911103941126068102580960345931515080823723109850571950315527814015162278147558804454750520360476084334227378048738569779548347752240897134193621073856170630613238452283233480689983506686228801230501734009566367734795236322693543840531571203850010615290647499677315597487570160289165297175881359655795260950314295095684114248785647781291103799667553603075790466366051103001131134604516172047028986475675964554146019696225083526428753303977109864678969243381223030704036246169821330418172713017450964263180701404660941640014825162064846087183822776360694402224808852303117069607847256989980207559725762904881638492504103264954143448171897442197464164574616916530441825621680314441072624650701593697155104222074392099937820422187863270364923252374973619415216023025841203281748097490490777310234304293465341634219472646396890567436120562319993275885268949910378399391137130736840604871448097435915484912016072348433944599605172418729063130659661483800152424288436361600450881887934198581524999033419674866279507180592838805506822466714862723908490179323944690382312873080749044635637874751691374508243541946001163548322930368701359101740489846220742240618335690904577812159866772605884154241610125248157122664271932248412659137865579095754879465684701335764230944871365511528713105241150859374147217979674465866458156782050946866396745623774629008437413711806402742810437796652451239756691711079718511295377141479613717548325571028155938903305433768492641941200183527099549647816382454215857500701690451673776784503036249661670516764527172617904239212881439802846246379445409918138510453531650984595416990959125455989500469971558736269145935162912729433713189648863211948964737332118450849391755166992825447993086849540588145895703660961731942836568736383352968664772035613946076846678914183665162017662817049723624359310233509745725465710333164063844371103448795748804285542674127641623184761524161893799527353582624595398395477217410943695591547045955473909321264775363190109865001940725105500670109346713998369894876973295170290017612913550167318337075789245023194766484149822354018578331398521663665108864469038815890369652489548942619834267275872996158387996769155042374042274214420099393250590767656042390524851563870111201887550649812805856821780828396128855660385852381100509263122627224820698178571035064200251292015009201346146496878538441298155086616005677525569326921373927240484551202889230560261784032127871462823189755120860470462482544925503806146301461832265016397219245844318119268106721185246709653560730111768773945583492319183878815686508348691979305711201457379615595871421385677556415018318180393253644586354497025314118633152090055226014259019393754543426817878788549919740905067644623933634133324509123415629244826360989154938039666215048525793378967901450181912759268409220861709151494002131419049200086848986033582827329782189426823235057004692452051300126546497982765994762859586868982421835730500866746484085950363308385928518550640987456230631069683347016797101780656048658937264318810636640956758497923622414222807426234193294122623496300018734794420067400599420003195190824689564921996736409348416118468721471691598988925370124685083536272860262352771926028394518082394730669161358781749215623201615931207747584432517391487621789595865419509607025186732882652650545706862626591223477249297631242663299948626822800931991445144742683493771133835660693462098631922997536967683785974286838346689424952947696233687792172432395877754725213677183949928779008718601447711064894426503704176350118277338874974373943388794566086969720018272099627500622452735557080379679325523144040541330859412397887268779007119654865043722175650443910200318080441787128220541157355547745059320865260071750968629153300626383868989749301758472835112146159455026981395246683991161569367925915289931765016429769386744073114490301949792593223018749475818252035364937292041349941130239340816363257711323669732358956784612549416315963288182167319897304703802543464252581085335289826051221215942635499937053531241196870946733545037997082625532158471842606467486171659222280061739807704640911415392014888587660343369331866724308296679671204612348831389853442934222948661572023103748677453632877586365417638466811704765907815237845889658564119524971553420480223528854311645648575961801755761542757726490387737281080452515192777055149630212500465020906246981807754485442010600477600849576036809932315645956628886707389357290669375321012569336027864058231217479214005549872839337284955217458924361670132712426085945147225372726308987451008993963917503182214622814655214831351440209269668353406768737561841427952580803255977698185498606231066848657703239546379096563180967214937764781534175310175135880383104356371334485812289665789639764929807178924168530533766849098102699077677164511921519624156933315760173268402329514486718416082159008880206836360308005932582340727024615548122478023657250238262331242120828341079770948750883886132263175529502131191698323243086474932998904138567557791660719250863431097875875762331881388720442726793385281710879662556274813744121815225280006173274680589994560802798941427605590594446207524161492758317331502711108342906254931113164706245595458912125896426733747907006086704569159886050066437140040290640676174349956682614354562017293397504937854487403303644853516178987048370364886228986596900545805194869054139261004117419539884542586998180961319464323942822838606686922852295912803194119056643934149260984207689356229869142689137748621535861857348797971748605515187010968725013902030510994836601222387752848479759841738538841783296423093134856843610697097292781188983990324843941459668414277466929435532138602607322950831736155385585193513969479350926935646273412242302238256910159036432766211522606679138079856175323833579044465246684232384157298191630091958884072773088684164236412164649754922770701417256759499778050082712786119861482056334906465984757170983903508071170493615651757465154541642184572033362849243375859791740893800357745513153916407168209393983191621954227528841696677609976173398955671222746710484704628254443691257413372332510256118946376267868404457429595470359515389752485292875811115777844094161382419000715321495749015886933759806432417975399875015329962348251662942625437721176918264191171683526883739751051071561128361683477086942540911335314512707152640739811688596932383067286871926866993286796966236622141019011280800085898422205860630230699401559553154092037584795395452982475163684737661114617971424466709474263373577365331049085668953774804132131976558388667788272265855430581787827016502746384491787319773264919339514930973760825923800955923214008766332429403371897482104518633465978696002363346705955879242325900313134855820128363854843685557855517395924737269911027311697186866493347585974690788389749923775009905666517329888414893277590121595677936965942556394554096859578036662242385759210437386326902512600136909145632631895652991581141212582429686895314701500793085626662842373289505140434873219934841248266117353461868899483287385077857046323945964409590213128465406071048689059134391962522673257836474154851036794711351010470704139440537393997301265737032548827800598577326066596415319081331575721845778806194600567020597820000627980805287828175479891352500863162188958330575106903209172626286994485518268352965241726691666080418260034357172673024940466973266222885546987626396044171669392921671410865419026897164305726511797322732076885103653662680827441650851503223649831810787045095928551697211844266676950568295165712225172235497823488809456656581055983369590236071714828694430126638870372736269069433779644717461531102267468664168240142403869882627049718498766749185242108503256492385123394655052333296420970202089876626986425201892560266065284024220126311226241406517222295208597109588661391979844036253871163136139735707246325443870529689625641043201025750136601738354351582113973659605098093209798178558676526459404021092664614712621059343552498668661419499764506679570487254024547400163411108650701094956527390312817746121590458631718725346076740535146347859905509579066973939803416273629055480189221830299450603654196265919701231275271981694404777310466898573913835961643995369812989151823637119478507070844141195784362788054075654335991477848820409406996941641372546489688962719289200987972145063911548098841725835284955972367905026505289343228777753135068000587814765240522997750099718663732172187331925299522988504869304596532962507545730823237457405666046996306165859972744780567369998190223569059841890971818355264909670832014299631244938862854012586817615972002451714912423550085267949002227375088952714589351927693957515396712252715830058094925612362455740591533549138257637170416436247488512464129435658267702425826231719638315479675760882466497092856015977352222302800772249254680329656268533642402341818836651074910043055992558871364953547063525956371299181980170846153232837260149476771977176969859920899028523127380129216158809104585156181852801359696377773524664307056176721567785176819297164572968287381875796687228759260846570283277495584129775541671914514694901896361544242681678527693858827905655560260590364894611632114024394518057950610155119537726938393133678778017633055407935215499621229322605283468846026857055019835857447870391833112637475648538664468029831020490814359892559909661306132791885441700221145922751641461915406371271433639544823233425006758847277671434469852454564917013270568246541521192116907529959401662181142043740025388877532607535382813842508424654332240733136713622335893098831893866022520125471282880240088900769695737957387517298700700263341110366047987872297279169112793036694826953662545724878595070622043809253036084934473562271020796388605541908299826092074124320978441866701180986141028898363153446647132568434421267872383651904530663716412572602667511442240709766500313702578786750883509616047307115074094675210246369261023529150905188104602582884524291633842455762188528491860234725263401785724978567194706039490416666476750960985012346555003596039151401348946371255903294168745352125495448847869710433215864966606538839765133315315743060455734391067709265939977980587869949321639683701357622087448326334902968142159117852526492468278363911098668278376805804821125788139834178630209006837996989606524821091434012384808001431884065684484700030880217646971664879855675168050708647361290558262131789242787223164312418968914250094070781072603631156229400032629434794208427960329743302489587915217415603771656227993719480523608398459739645848077973197837687591978159887007041949440826982038577866780837866649088548083219644816875267081606997581610391657566995123828991446463169417799095325981770564357952076019373633054865885598401680541743476344248788945586887250446771294046756848385418610498017521059590945386066503661987503113610066225911508862175753470674451148723606173445274133808932022640802163399782532478892204683906362984344938851073347289679306308632003256553560758003809659429100391003614861483202632254870677464523554730440436936034094782138528369114886784658516617424066417862436331688629674615363658705583892671775316622592008623669689738249289036472070679034992245571913434674640723000102845860228070679264552737432971831585088448038801839919432437557972015380703455407512308406940125447082073453025295338725813361700552984752137961546063719771427466720233057588758678141151784131919688882569792897297462686984319452070851119628770706568168595478033608708396031843442460253478270328793900305709744274978159444757762332026401887236859622771428195761815939162328528794747378276186012655174399490361674843561797312746277232683622268809559274338260503022023331587066193266456825534473412097749859151887713535568093978859570253340341444260323597631098190158008530356972307958577750040225115236665733585419317654470445580167342407177640886791379286719482701025379089237265399836760823975139804267981452273183745076328144765298456375459646172702274888870125171705721974870500583626456310194753721487496588297519482406451131995477860571772057878613874236716326547709491916856634090503059411152058068420101131660923357706058601918702337339722751074698753330620350426887450627643602570081356463031806447466934663051918131842656345125062328485275228356299256407876319946201302059063873590006067184533109780153805424667564810561352019045807975899768084364610900142290137039185693673206489687465517210937654087424504311650854431832150130026706378246046710913806586299030816497661270973305910875422920165751017430227736155624462779138935866878470577984271917298417456682601225707424717892389180314558408164510220608675769983472456811408873293219793124752797193574577035205295701036432899445059771926669251764885811382868480077741128523866599845044153292241244101580788222268779362748777605749625178636996660171284091651404314799479615890274589764747323528751983487083952770359441418215551560323091665177964811185527605380674313569472342986520979780202416793516866370010963661605585152027392579823658204147626908301123238147392292269275290605209361933199992686604555272148055156313453946872440478970434248100053563907345023419306197968245948379952704986343341020577098089843186395516120942899958064537381671208864163590665401401337299841974946456279966790290883138498672699786459886741551503704439346894916164725597459592071801313524202430812676435226602217349416872438360783786873042254853716451127006039882816173935761801458282911571284490970953389292939046464677605242001900237926259889663702210292801048559236022729166615377385509726572324965563793183535376341328730804329678560196043599487048440936819165848715813400799176196773856487471417964203006174921831436077976633871806940092947771924830353808048973490665122709539895302280164839587578844732491331028542247589312563194660706651326226499958619200874373951544481893944743880026799243345903749654097963936319262463418778266791140521485517920688590508631890626566478744358038117832036545357794972259004299731310120735981888662538710438103518303037224407496073531694511549196431769712344554811061710318583913830466188623597009291972069764825542977234152323427662113058832654468889275787890372219439303714651757193187468786776939503049198356577140783794332146137643731523836635509510093237937652962142727741522804492112043140012381283282157244939746848609773185657953808859603285993491482070232354311548808327798279435000120433487077322933981772386698658497894822965834111557028583725660044301907872664251698866962416481132897684968692139716814769512265802940945732964860386706704079676451325096653016217047294557428293915225240953918809818703869130219215706983826701168266753987797161614654553334109988786610649767808065820663957069413948618760551167913014291377546777879728183380901804151899960887151931199056318763432722369440653218640850940351938121823045415658353929512508263727575569668893068857210254371393437523694733616262703806193757136389988483953665594441117666901538873803628843978886181805569300587428124964964612444553283820081642889382329170112662824304302328179090432770618443145512496879148696464990017426693571389371915784731181798932187027385557690693337013486185835399779813227233709140982495095948759872752578787895168069416337440168320020277749333628970353006874383015621933965027875420365231662335493734467612304027722740895443872657217402019978210623168459881460383608397201070258304776302449834949259356967150312040767347594832083982513985465436649586646091508912311562030173423933481269231553659363782541755754463734741596582806047945671660641945745863360523274054439348800892314718383761329560847881551381097118424401383707056814497596167599698539117522432628761538392855151723221355637239223905528331555687489694098491501805663677025489152429291885378478150508541661052759696311603256472106865436150129487528941128754590371485438953740198893227040469429622546300075273859088118236853317789240970909432732751361032699819555471755280682586363608684055711175724173320045179556313619711869390262217464745856798908284824547417170706398957113762095107173410225996324595911881094554342800682709854847244348262718607288508675840569070258875429153721841040399278054969882843518689286473416131809960484618818507310127334517165642452238624601753873679215351446055806511825841756568830148178204639415273658690350002234549246814223860362481637921174063628897719874855483799320410106220243085358527664320783433400992396415917620874674144574765468972487223120031697801988193120204448287706966279673298203590160029751533248757662660118622069391748361530866170128016447717063898939949615608184271184835851564620815970168499551034803711472566285342375942679246111365086353641749512586342391827281940630258347332615472962772326678682543522418048731348946448313459321853193700816206516789881482606327799819568212749124929975311645493153077825279922443181178107801255233634092663623921045009885694072885304901792115245808544883237055999000085371527067611397486745132090296789103929792727606190097870446785624691744220255288445148194526697409984205659873632118758109597719941289643396617192936101800565755684312438033652817823995974094546690026139119047382776918508331321684147952103279342135003029152187007235524437563234494036171551698555269554060515909527385530029850336444172196539150404559601063081305452967019418532258407814447653701861627089793849035882556805665193178986445770190484216474071062975816684440080446439174570028530463159227356774380296242574878625412587633302088056381056979331585493118244397390072344805340451196745989307044031081574852573493074841257148121712109265962310279252315538670980867764822215641104657441694810214391916962601032995083748410515646940575470892989986617157243934868524936157828847505736299469533283558479704561992839194953795549145845436866151421624358646961452001759361976119071359702188737112822230611628864018032228452848222088934129730419847511549830825573555368781430845256367014694463328797008820001054375960944598586827858941199802611769761193868470032485926651028422449239307726084307657238534554557211448995778492144250112377197743936332689220854745656701370514318563689783237180964690893631352808947784948862432934766741712253720458648498670523687224699488380339491026101275604982007222452787744179127572579073029426693671794414142207851630784174038989880024012131881709394954693559733942489887024972479623994267833736217727989246921238436235601616886722676048631718741932928752208067294179673121468132907678522752886549010371455963888142785785921780146126021175778692082245408085177296660369014059379107523209227218595055371281379062505652388903967118437393322701221927022814500789336719724909066222004621020536774776231800866969650087681583610189067292662162384819755924430256745534212149380914675555206609656745012530973072253838568448682902796145839863237597951132124331071442418518259750692144302208783386193862205185766229387270001203514600401541501813358617552997960342065430032552355546902236981560251960350040363260534336741177533609736155501808956083517518747899007563383315248689399812510693152025250222511897562919702937809870134230897855529104753747915870367650126032134458344525934495674670950753775001823370252748921842881955560691401643081701358111924111241432087784215881579086970707769708240610692214928097513076224082899935168670218774621653095381204688928539337160751055267179207095789124785317126182642464153114707981586103163924557994918114541138191307742137918337563018264316511475330531309456742923593904584292691843591082306267788720674072127008644030955448952984061911316829620119959231770986850339715258873591244187401066082465763507554629556773984363106560444108072609402112591691583440589980609042026229145282424927186929326435652447515849674111472120395832227308957481879660553793847867093503426283480356558057673850973407390121051901183057013255018843983246233754308876776703718199406399766303510094120290705510508676594215611462929401025962141568271812211126750867564522566825100961052567189132666875355291931383072626921758193573912003497388590015375999049933501248031644961043734351839878905405978906820090131894957418996648451973109998038062787751817118729321020889642898128789187180192933202466182517936890828338630941761172177977062579723892687393044606121729502906318826143117753853902059556789566444615205061098375164641625915580732928680099763425631588412699504183366170687437600724512102450523530659593089185345538368705119031519481100096449167324501390387540739108433204569979450678211278276612812094099172627948284754865663498540163694380145042188887691316234516136691169779476098176459941436905521349623454859687311010908204061674478495977485703243162865194154388856160778595706948431262042498588032081803732237780479275938659569793035275265228019573489771027926646625794756354719297852165091392632698256069025706929420348307344686917285769194025710601748317018035074502543230739468545075598540530924301861687697978543368006188283620114486712649394285305052585158573242982659558159471777543317141141024310074162636017640748222956081091467402926683063371705033187974528845349814438391627334420294051788166427739199621527243834577482040969063496437588971485356223673655747054652506944561263124419435698130499875047834692777417583723811090932865440074769497736208774504123240405059592746294291704437081241015930342294535730384153193289656971360247340871854013007528270787802601339929257832543579064795111592563788163409700380429214550688111889236193826504595928206708346965121956450434125590463449110073944434637985913126187390523211672592373369819181575608966630809805796342242302400362284296182138739504204035506606356560062222993320395036956844294109043783515621117444300821395831469852808117100840931558607543753304417522838112892415055064773515265413952141632037120970098876561299685471846557992105211745236222673601523260972136867407045931388092175149115030611477456555527876223517661411169430816512750128361953271806217285800551363809969857218749970624976990708099783223631667159566761959878016279161736887642700937092132933260907336359413802423041963949449167083246042351128528241765696539164396997385348468403259452394892344511124102845429911899592327748639801784361191299388009949617577660285699179760469511031091729769768029483877431714306885201664897351379941719812139599160126964945896219730216945534626605483814283143809730682674216380541827959787817244750106404067121624366013646445482088030391356998624610189674929504948657582124027575146483908530496787784927160078290238424626328802193265219745790302129031872315477848134028922813540935384674988992315824890244436972154701915641238773905886169897738279217297233238627598539400473670020496755603288087723875288617544318080230515177628493434844140597155302040911951659397411474595489621534462570393512552990146298950845502277147319277092000731157193417383763512393933166348296328738175153020786836837925733960485008073052588867581545158024394157894598377266574805198092913738287954505055696674679799135054351765048092148595279283462762165150448249580763765396472288043993400756969499514896476606770486540291573597887703129520757372675283424900546400855172570782960401063214582318659323098795763557424937856529240725166924597143517319925010281037644175020820585908558067271702813284132019255643235788561648551811289605812622170436200324947473745321186928077814876524651016064535139724126180723572218786362030234867907993373743809824568453247201200717877727985214186623203718049502063386812361994607148366378548286428456976838234663486829695378485383353761582874038866175579525669516895483253951828262978531732856516867657189825130716552768163614028468592667485121181771055032725940600629480773100590242321429255267115316491343834642924148829705915976815243713049215603856658923016183699784115366461817627041943300187702649833151334152643877059290890362148851321171771568564600229451222058181490965858252093144921698025656880787905377855172584470741450426419927348328066619390248822449709119129943883934979890902059994547102920693938782644660958321482827515127196291951826338645908814715154484263190496259439432285625772446771348736671562481786524477171065609076630433530347541655836892636949437329341492608836442503110939718480491258064067400456554670224063551124292826775321909798290903678959568957148277248620437962344254171895077568529464862895697115750929359890476975028524496993311057189955543872269827832623201498642436124810600180286087449399401059118794616781397042621366802974034990726917571773115580968167267616553962516796911287342156057149033708237802327376124109694972580582863692883209453820116683058870957109211476308618827023389432371811825144079811074177440308796626773454919592736011906349295941147467785384037725421130646237066555383955401626200083230424829583372233729001019782106029098698483425803867497634988597466783132565144659047128159954778990412974537790946873057997431692709363279249860636844602633144685563389037392027567433562103657389179330169092925074790638528904454822240369513639976262776384998545091695207867155429135327755489821795268766009575886234061238045173352522819638225926521953131478831523824037050367650410242321091224760164994144604818295843051810465677810883743118841672442745957468905894651280521245763667590932315769861818766972110129201531354653525188405587377532761386629968374644609086009196931949043510893231993737358491868884806056924328603579506570065149138501592664920910404197586475451472165235882639489258074594772452842662653538903762282381966054749488898557997638089938285575283054073870659266323382359302790519051621781764920078126362713556113250572799835137763748020945373532648419086651380898363777167654888936420074213210415494714826682498843928350582730763585383707390166649702700119858765304277753769931277286052626452542982957477043571421088673266599172189475578144039208045151572179565542340893193371702604341200785285141048661472670305611497895906579052620307193037746199410575628268833952053826486541197443210849902655929543446078706827341788816896231637132644302506887240352187449530620726198722635872331874094253036130419213275915073072228765711634690802236313124192872161329264689910252602790102526416101436629857412010931114454936345423387544365833031303779825979096309519891035680667466966977641709025719649341379027037418950684116525721338370810044995758828443846880661745523137653437863494657616960141957633777316646602117436997170224596016018981170339940197116314663933427248687321636246510353041002391188927637736801302874464155554024446777358636378238197338698562589001533440679378702801686143793003216552963025147460495788883442572342574182069859001916716541761543000520187834837841287528734845744794673271947987023985378510142951756104258087854598729921517039138500777960963298120411846443576999496034021225249046589081036512193947424533957427143507954687153304886573440633069031302079810715327848176069502039332432374466234183170794444098401821025438723538581581351295789804295461881724843821643774683222332447668832789404855099956101096279728455098598244216501625847471751690156997790666695037367395540828648908046267195052819151833436393671568747767708108266874188261782113794887705195943748080862547700601649405700692601773828276267935025639715941883681473174086532468093185867992660997597421242049898476862130633508385400308868491686647230112655920315700071433942043672343146407008047357786750920366751757225381604537301468018080014359599946463980370819701951947626885207081114946211960142524110263823469922190293540702552199652242609436528475230203324618857930186824868512644517316305041447344466090582415202297272804322448937418881786275953859028210955557651688970146477611744810970871821767364401048437611742208175486371285882592238459640322934817416582810546037660900598752337112357006020090966758083968161223968392272395365851931921469576013289775943191409828633453376340786476688132769927634260824867702335330138186089053854615545937146978417205394082016650756957381747744352280026915057740697274470624623115643024429798445716001486750333058288127339322047446012795721986741169979288011562342164441937481396178470840457976856462656730865567089282596392490900626356039747841715900447737738462068673180060635852097702765921127969826425670044302060629114583283826868276243053106961979356691151550323659704093137640781364310700565324996858153907896493839179044842735752856544217961504903999116681551152961522517351125201632536890262552849566004609238689044051939961065461056676416311512279213637209132509037316296648808888141710849389743997444367391912859664125638457137357409609939608851891434036496991134614423889572151571136116684137997863156574799991742358297591966721608608479674759418667584523771403322635815666533196550123949221496906285935148412925032585160179037302004805578390936704301969802760956156186337958916233675666560494032282627931240078293039535569899036006223927414344553602000642675013373776095882843187132611968228976757200642987097482493426854576630929449852127759672140544742062854940325234275610469635051850173494592686735303295649734347259231335579273006492132279064563732937483695965815517751920946641693924126375081646798229412808044030546069311012443623306060776621852975987661294230492755203088985451931722957958451640273597696141581552658845309638349194677630688906244135374588561684280487571464997353691501538882964549237063967335374051975496741476444688995098293360924277888751236028588726598278618322010804071620117566594351770137760173798107320746405334512558652599865377568400896532784427792786454241494240828814168064014103240293960645630009420893512582260512281587610953004803679220739089045070809920694652466126782974450363535825586392732840427879043096893432061839469568399826185471118198208455841729284706889213021005234929362233064106328994350832035987886297193750534818581197366623872086037172850541706482905774504167989572209410411155404635759686498807509757471398577351746517833902805243191809942657344429789578130008324319992142622051148367239457720553439268375588335364914733411909334470848692817552011384476415672344426803577682351550579276699184059246315250814734136052858390207049492309225152619569644615927243374229119692918838134417343996407012305917589801957247608397852263435764257661613229263910984112209326032286661890533566514153684308098934005715609835344520738546260082360544993310091664629730040485916457267837834008228120539525536400965784145026983133898676164761347504707222949516347464527043067838296102533954672757938256878424600617862397256609826782697394934401841037975680046320812785330833982127264010025022388803921522963832517312975625607262630395716756355774656313020927513985393968892480925951704118852602231136982627969328350145528556796354746228225650924027468996347985396389713281203395407789352761943178359206739732260757422210248621919040893089147926685379167658647379167857449141880240063733392378365957380001719156406223065365645804214928990100792040826076089459941229385841539088485432290146356131770891279264971086405553326277331157524303219083702760273998768299828373835756324690369639344616077628160055799626772484475668328761483926858119708104155769633341261421179324053750419160716742460015670262352117040665834299500309308170528833461420008726613823435460048603079367233253868067066940512477888839423433605042218837424727496603562420075755093325130827660492835586408917096637970952607220926388656574608789927165076990698453633813479122054853143527394365225802647877483232706597310029149850456656750145815223483860837535050513088367871098729472886389415723040790985540274435138287318112408841288383019620134456323281348888791902019362630537669878986093550120241412318129280423471910897841034802098730374494500304545382551433049939703893564628565354974686423785724042744738208673808476324951477304422842200375535026410915845664481126515805356638130310157844592076052520684643372780780793219261396339643860177477875372030545462432611612532953545517364524895287695918795114258417075893627701228725086548062279698424322507522244137434524465818336446729876380764656142342238728211515569687305190948210569761615016217484112509775060770035631921312550059524801937213394677445216757185513214102363164324090017139617762899741730724203026298124411928877471274109627967494578620599576613045237297096225561426641455739246438468489522862729231641520379781638650166656166112729677480632358719516100299924810892020142842870269805456027231438470169085411357059578858389576170696003518590903321974375072579842176722778282970255264167289475398297714235040578450429145486546766595100579049268416827115288038884772242417351841092737320439684432498532585061243981592711454998928354870160473873057995539645954583064706414884906473162967767605500149697956138586627095771577274573054992537362721885148796637331100436300051234458410603846864667022602229273493213495375358101206734463018909573895376230246608917425707573950386383186926150886059327458667568796387777045568147588174656690326937240077642479969648109490663880366485924317192948940150606746480061957646086480129931439030104855686052598598994271398817198733113666120974955379616553636780898762537282174478168342818193590600400964213525623660392689247961994375241217242208186827408692747832292280557931387969197979394550300287098404538743891439545113148987379901174045402113902352508409011010737798825508956264418580255030887805868145883993079180971092335265385256662882819432224655206369224614241466778238547700739548627032461011501681257452588799864219222611374155654296313167471428249792491079740480758593795560701803331258706324052563207414185610018692465620688658062601157480536980731874875326947886334288986107202870042728546820595480585798275974035800587554561817402068777586484319386709922439467561128771313507926379710315030865224872571758073934446778778823987440714859817763591769976036086598122056503842112716793252176552451852936618762772400397398077280863856158873815075591123401391329757283583171989909042922950577620222484391938088306952063589369181503646205884041417398747558227737233370253573373580068207916318032621920965585386784357105659395721238479624053387546887253082533099544925873048474167495450632992472213395432526921310879146980997708418910067020597669703311563096660999538134097252248193418946553598489345494992077353625877436259385717943574455732220536735631877078130212426066864968609865788251108293419528459925796106816817111719906646794094644029301302149118642876298098178542764168719095189737428906746717432909978894375294314886738173938468814276704280202317639299168237520595169987047354830534821713606758680193786125627672449177869783607963341775553075931411192254650988383696048742843903016194620553068856744143415725768659705618650603946980418694662809869937989432031604024223929540059047863185397046794922600742207325016184686889556952693758750177430940092379073172998455279163973684624604649724112476387268335635388051132260057953149190898503374077381667321697724223608906898596930796991938111396105126586276813264200683239389959340136100239596325281751729744502298566335552205600466109257013877038483365678466724911292485247874745698006524481412536434230836006017447417762763120027314779406425379783528544717406928576268026947935758720702710005009786373923761419318434199135988052674900654336793774110536119143966489648696880594505632961258099054343668494493516682995681227870501554481347287327309638485544943464991979976380026721387284407189169166143738558438116986802637908105703781441320809093955170863102009788491188435976534240528294308113271131164698782023731908172164566836570561054691081392290071121896745756662206852106229037592686775037521819475903683009592069064839163752342063539412855723165450846601732383618025175095217200774507946592183487073538164024333374840479696443775810257786002587246821531112215153780545776829195855762366828852430660962139632718176596540547472323053628109315721755585246522905722274148918432469655017541784564524445929160664520539294618575397175081106796284861517301801533372668092474369280623614407356659934033814901401678956076717217622534535017872759584382917491246334242390175719242421693074927798370819189900562100159067717417369351434488336494414963558230255536411105707138818512095441156278257869943322852187109514116748780094976905457416511182577008272251963181044943216350884992236328989561248013526157385803592044273164323617347335462877376042145075811679026476654752557476542951756294912478802352334784372758947892235391546550145305429130649574475609364048010711354125216414688023409121570274454760294581591318178459410554482221127613935159468412543346340130768757318457993268343115219993736713667813565323325305766852413573004374603023574688481643851115892738398610389876177752256222874691160854138896532881623197568074671981333322147350662972299233131435095193192033124301143996444437845062257600912921008561601880077854491881626390484978340213300625514627847959128806688521442120811354027965326394557325115363090064149605745950302401845801598613830625702133295663695713948833924458393500961431898076441902661517205332166254728869284895741226428481862019737491361871946590376228290294221180983086129557462027477149469513163173820097888613615851526619242184048495694717165577798644591327068894097351340572603380091281824444402938041038639127559579066118996657673034056007683460185430962203263983738840056308777043757852636467204173898068790893323279789868334774353827032101008838858564047875321722016553683253423772304473949019004289510411978752041072961041543001440614503526089193597853000545725210771576796748528221024578499071837022479389998252199536010443656914447963181210227643508506660930484497137540350863883154459396631549546761301946757411041278803066935627355461408302251480956059044014524541359382590827178214795101154472408348128325799038448971382443785469363570785497794271960529372705093818100870770600366473016285653321621934577538234702906958923003763882953716424393031624840565807614652474609034424171726465332341318291885478737895444806893861842469787610167328030105256370677494561165813025643322409622426536332773610922643615241890173311323844053479148257704703395628069860623184039231301630766307052893056050423114498443819075191306347113033502397813498549922081316864865021471913426214703734957888316811946553535860828576397022828110153771274533855500460585714871866675715334161455204354470870455595609857997832131185839918965984243699514738525304703721635267209222126626667474793990904815952782042380944284589552560370750987304066155122364207174667634710097458710244707743405815202758014780614801510957403884773950237891410241871303024636456026461613423604193257865700963999773267387871290204913058944949265760048626077059972277804626010854083326709065694372140649980682665624663761930490139726269219447251570870308707489689276023391321691275272415054148848105966208811553473587268056020336228618493581109558459257982229479795800867903605758362444734511606603905567338470872888765999590366228516387247315795974871929732088949175196990018074500431233818092484640986230309039585806091775508104751624219673416111748898066709567998263730028266253610974656996994314822510996937702887549214592854409316904359148620131962634955580731782497463723165923890278269880629753975664183496800268164335738887017456505323339305114811930985751485924130251016915336121975338128932917511290171194933553788909757948263957081643697184887486493190101878292631419665056740497714879515723392805972184465303633526795369349839451348793431491585407943313218949227677521212207839852979789284188817349925768104175075191364783349824518552702578823775285681079625144311047830572336918583557991550972424465945472109922314512361554513006002499527999445523990371599214712760397007362659539744860395345658002163229145687019589896867223568293153225301087479812158610489082075184469116474814955691367499575289904388530003377651399052300990505911205398185670178364031723420530938348441736453721186149117757621777842807125716643452379895141859929085321561197882092940954792729985409229118211263834738432867854123081245585989310896224440351377663938729298904772946787141337941447123531177315666328278667774918062639691081652683893481888542257421224418266589924745977881022424135463761261850040358503631999186328777419011097662961894042036444115239726509116612002937181886755176285205872182933185777660398405558141887571659267152327290566143758417894572880780444377454691514141705735651569595255275696831560896456936554174487891521111644695823826572311384975420016138982160232542897415130886045858294789520086228124420013856247207061474861702476033938228157414502304100201008265335474744151292940286090537518251930987503295305669928134914890602032082360429675094380565478002433478699518596853388401418234211625048075389530349144266087941026947347991754415079168260377195854287749636779454562712799380499702741291691438706115643545876919862261415624343790162447772167183304469044807739222758801881972679895196466489387475295744865019628273364133279328316060052431586571909289409501069051997411969998713619904070936714688735346581682271146003444412802353992756438330306121825147519704899326263261843035238207949513277062997627246474884415145959200890422473323032784426861220250775554025335217786941945762016976761653740961763080330194734061952504414647448696759488190855016077560450486152151727341267410223219675618034871801919698969394822260864570909876182439191370465597420033327764806310927822186332469063338948656905322899721335616556124851155368699989675345817185181788117906574590827902049092694773453581677088999937797749781523682741075691583555931501158215555798808756138322564327064182025118811949149995120234749853398771762075586141341786982351487958464620230395232763332670851801520508420418410256686165318445203152545651262292089468163517816864685773081918445381482980978407261361741244972992557646927253807809593546566058969571457251154969179431694227104874879765019997689336461506335208738994013307757373521797684147541860493963006602674889349713490623779073880464999414166677918567468781844411851074951864774468384187403951651815217508485495250324304309090497392613235446673344681978995606310057522598305661397892404579490671870675993467533232463940955933568656716242769961021042238902553073004473829431235223552147791077013866623918803494947596036844254016153325775773242436316264739555966399961427035053047309597658375348307828057155612902073159007138525724230694585739424314101237656164651976321083289495963748499968558111661007685250899325161738268060260691104480172841856104120132199093074139346198282219931426745031518925761561808393690026567809198497187004742091287102645250683863778168928560914570689949219805004876493817783500128945157649892994852115147741109696370268352258496526125724131383885704500702389888728756244361795387809485020641939252178519668975320115764937631685963538676765088017152071401335824891353525660555486334650635560533490102883248351967519711605659324415797541481124817313885854058345130073505791112904421299573731530947326877399122571251107736198093610345840118948994527553891156029247043520225913967775157323694060479943932715267587858453341710498457511174153980504272389370651408107833536397728649664080071240069177100155834086879003951168230309314100381082849861144809317250898963412305084920634452501899934334961586907997862578164987788293679840332762450349740881473644923970868131237568381482028665107069502190117348166726548164023867911672657568464644439664755257122684081376532087696766611375207384780326235920230689233946682571900091622751656176338359894645376525238343092371301659295507262191712694132335196709012871306371055559164004619345105321915010236487484129085025212598921679522819631275608190248026382740214860191466341817939219294027007031226263707910405704105473287735734813731283071384056213697988121380159547119506640572676915789958354295063017071171366113201705035822532145276118243552687939129643342966291946688737326389812975207209709771857985094141708209493935208362142915138391729150760128465042924487358701339853482132398051058751085420869470332447180261988614882064968797271008691223294061779784611621190053711847266891117572949717285465638685042310698502726215454129202239320322839448232777713523298379764779127091476637373906942148592876378682228468740290597772277999193163199227623522925162007643631892223683322324527599670858504951084626399170985092777828753941038843308245872409714279781854939116423655641352027947175152389971850763885342690862191734296009072233875068259514279422920606897170124978115102712490147287553250293598858037967050862665323966900843012104675037898666199324406353730619919576356381522936639774622912653131316392934519026799209958414509770505601079459902540304053279047780944608032737712664501555555251970127472707772374725039201918809584443280698570402272875187267411803147036351694853243776173940607902141799093469503182028544529742130344869560844956442594857917057053932693146028129804589148895547082862564401103096833406760029341741282611782654779184020159657800060366438037070029359760624198056890956901198289127579213334038713122489477660495268183105252740072508501590322343566957199979480684720890565879225688753596477298335478900784713298277541125367510699129913984121984508294226726428417191072870866215264491560566724334148781654395950391075719348987644259005551816495426108435141955508882413003977476051931426516557751840184297961176965069140187749940571329386445805817741126646328457422295072595278607815783721208593344803034762673767087606099125662661338940556973253866914906320766594816226033150539894235259017746364476521300488659558731313054963814821973137343948456443252747677501804892196326936436324747508466173131717001312639925407189689547573995652068342423910896480137051433129485030108346077801054855393466405184397876241255526197009864959562047912633487331717798187403284935340229852173970807808135468481047074587737910207389802061478088690423070037283869485870111008929905332207969334092414561059178231019331280477844619374831587037984882528150472745460009049042314740742951566594462124638522371532117907232312088126449766884708964787563948963804327907829209517654724737805084633908909760863754755274431071722279161973333671368095180211132758462263674250092437396825141590753462804769613170031424200414036150007388384962882827418293762080775005187385696576547732725891725400465856304839069248929807093309303762543156074948904578540849132527424577352456148896403519725149970853050315188675430989721458955404768115287316348142574365424479538578516996662231467309797863650539549268992748103081776096376265796964751019278287856542355653653421361167918324533863502888061105818437232725083301217599419860029047758075112529153377243417118868007322763663590782355878130107655240656137256974734597045221152423851384831259576153922930716627135422282226059857399640094930320270091432792500565773596622990306719083905690511458454460066633032120550483402294436269388259092957740793450835029549396318332144993359438921445944473082465630389841118798543765805908567551003297725435917799495038312677030792938422444224145452093887012737165718103573223512491243977339622493909953621392691944484196618142088128651430172594686237218534884591329874172883834663042710458775159924019979761441695857735375029351776655822030741714379883187938752239968419753653939401814630935244721325395647384523299125396982944582109885682032550451835774777642896779683379887885250012949181882171838300839901668601109426214762092230852155630972794318094477092096764927164263554960852721796780861301926071287542583275795951843870804230775282726844315441443739241142721246455889637977547472898259720401945140349444733602793815889035938730524584292583786698145539794598011511477647179872792567373273778644417735710292833157783766101558460962343319033189340117292339421230356738159168075585783682483885039638058685923158623588993580931938458955644320306194719192647975226835701610777638574593390384054790142302179003194328368618617570374789361372582320346331296919855056012916079907230963224824160283590287779899112716061440577179912854822733035931156205240624891336969513838499584061772835020380064759901775246970860163747626588793931133614923601574058118440790037019136465230670055850892723095050115766074204188200300018636802862894342767418216426857536398430973068470120360176747529228548357287363851730961599850588294515413404314907211216776468907846226363820190199455446518378161770226963503050431082583561727790179112396873624652295811403380026309570747337612056431411091199130483371933191753300882126981316953502047983814922852361156229048725103439787959962019536799617251287070367358315903135729824759959720936647173054921455277899893205484366106967886737986542380949751083101650693380419358863275225754332293471329602002126859162143583032594228564625667341280805916367308461503963758553611636084171510130702636043684796227794469219342002240298282271091295177943687638013528673230262922936539999155984204061946878271335817701918519808284106830838690610924283148920795276760376954769761105703682081402956165823118180016244709583190136086964377094220287042118796466640973448728665962744383250659755781912801005472328066622201939864339168186515034320802778682402821956387773322527111410269083909938993560739081201238934720028961613236539307439637307326128134283284650971992135392716230561816721361503252983949500003665943482754212301758881185263034050550518591315557746033428560599373265375589609944926240713345378480700934151834088468238381903138101964811711375474474994685119449795699048274916167219312343721769175030021333573744933524794087559022590877409242298488914964336936489113114927052076926348270805080691524789066856673224853354609985412319875548506683783492553940283951818746319658450198873978518360238840665626272124797437997386161494837894549600889841806926024517617050900516820976352880692981762719384205493647297453404143559932415407884765075592537406835383848472456461692658533635509365140412721372831267039556706788311634435437889790231855172825105296354519110184320753417898122020903013542374702739330090574381600332291124438751965800097962930658574729108362948081881678275703756964927107435898824843553865183815947825867416843439100662203494127386354362248490382305209607151799534946703828388411166762194202554882461280594262296463442782947549205226840945576980030388226701968748029151167589358182865461921608027130735825233052409348839625217776494875815249463140935399368880098467241376114776554305113297890686271594580156411685167939829938659270304390723633944326321940018209577709452814584004524914760117992425436773134799422736635774454506452083559628687695714955983927160806955234880707776302749567413374915954606453956076275032689570193380157220621026047651545135024391143521540725229814838342918966060792741767655425754795066668184780976670718591459717185381168254801798568414977042709742326125477517723695043818286328683808366068642364482936515821024975564639160960141797153225117535794176207907996253581127651415889121117241397075021940791207018461998149026531560702675563204242591822101043834520433295127048662898461626046801304714637719156946617508631142211150009671860967425516097831803154215065830902904514013276380933477717761130956699934758694708099091638324810374375572805967863446671919248796516294232009057827625275829838058256732307157313265223503704206908376320138610711053515599239939442190942483280890124211632102446742872856112954313675281202961101996377246516848255789903974788787009851324409724136541043967833260583739129805703645477062210279542590830591837312899209111429902282928186259830729028729482217012080668636990349056684551783414342214515342485449142432856053662109363512127656689023739378650950969884234018085253037969151619524316306074180347337887821562090993536772973034713804224376880639664786048917571910860440065398768232148424198902652808342098080376907276694476064806372619894513518698153191018247688518412845519999166955699840733375681823593797418204927883958743307684545635820180331692894358070965146520950496341706961713628004117805517080130951339542659818149917845861961354623800472412341293990850595661518191885310399416956753914782159845329260234406241156519266019309237962703884700748978348016161536298136066038128416628659472490056839394176104318315712821147261230381796019073999610879541604138175770253289955506859571818784791565106054616862279070958510710351654905315707306897937088100482733906308008713824077606124344075786587693045357585554580419313442514510897905853381615272655847619159792305615449943523410601947005336825131929028536440500951442434132315882832363015383858024850879654754185899657414906049069733366301275749071908072794037181035507213042089288926157556709197558281059377794986199999497942302694450950441961019373890796695172840089757248507528165673808350896966409464875394894629825102285514399696454281423994474826304445746083816094013719124428813881519656758521134966325478889562388136555740579163879367078258267935419769391746413812262550871781890188122655073046198238428778724636095466425780052295052928231090646907624446218459236738791540696958758457835320584911475956850914301495913522319154531776989900863037018359733079313027442230741253939426733365794638233742887987763946164907641231795915514666942951957379246997165132212227409744065793351699189024020136575718041845922731950545002445795313088115087541935558040655986812971365643270409840694218177027529011181494389132700296863082021423530297775853112742724635598979389329141112498276952218900500482604189102878802764814527994228878467902398343124585555551757232562485553049626886103226823923715590839783732008037159279133206739270493477620550635644969429714264553502068022463900500395822882579219198433701278843981085448072528875363235443937809344531023812425729649947993393958357122257894336349805857525750074431024988687846742414781826030079395381343411468066444900318339648375274361665138665167758307907405943846103377164811917875916275735484924372947963823676412850517837463446648039291270067478675848395988353475043742293301320436142874590080514229873756740507059562001210475963172160750285311137728065598645201242077362645275210183478039654419090190017197170308180343212057330398826985270771322305820087478029444283746920356694658778969915564584760060595773958392777762087466202813589911139787860156042092851132653844816574452614997690710758148281550532201922382220021821525375533515523912741418928934934305010203766538990376219484048533357653937143015592903503761495769961340895708263834117789422277310960178776138675706835579438558385860299272548478361551186873483677147135486841143141021140072454813018154356092900312432748383147611678174127014332623656440762036556161182680422488489712174004348835813166245770550583740582925921255611735496506207774105967155192441554666752352582200211211295208537365751770934505893690373496643574590754827934825608536276838227676640167771261847864950767637687708974397589990695618242953024549595207234609770225276980470361821656004614463954837164344115177495834539302620449183153562643347630275639762690072445078423759766626465202319614914967171168814287401776144655024900134140095451441187299503712461464133000840603155330331237033414203312650175598553294550267274600633145844248766359162205708721878446653899882981621801848174567957453642768077632070277187388908076498251200444038967911853181273067894230743156897232802128347579405063056570217718619959538310856880123514297393420009672651162122884844363335589232342230642795894496494579095180998399509239031141090810479023023496309076685966218281032847404969643575060388296502331069767711312547756470121284752798253620436108244002698460916304743794250929348831224166710770126902122558167643734158951701174537054264156747091800904433484898713409578306086110676380384063908964424000994755139125782002919776284370095019708417826128913398416604145127780389141965441156526757505842285879128435268985283506070791141730547276148821133003645183543064188739812195775147520500822007084965796409103170424489482501094068791868228459149373214400236960566608718991934527658174689944308157725436021929793758068063041098317484765459591858343927362679000823214400044789591200004468084691806355105568891954871976545047565542453971704714562654000193026270934912104549115936732351664071576122999222959551603412510813626272777485772446271799637621630282338700379920222292580903037015494209573963435644083455389618785454769005520873317945808867348687374994129616447581061292987697615515100801198472825700694165404309698814811882777475022266594299666074270976970813351167568640994205883537232338623316015424109506166005730384929975090651817619353814991015812755616480322917870867909163906630171857648135218513490104784016732958523118950504422506109166037047157012861912798869519746831419180912973285239597740991605958123837403134441644943715636724715736544738331348399625213904376260393026371174877670370863941580233509506187469419136087699112688842018136572028391286173214698110070747784832602539000838989158674914180290380617288116000619625140421248394315063336784637590286406409861864601314779141513391361651650701670448978825486730958654388842501849646054600403769977247743010749264326840345512864206182722487156412379976884309174361057215505348122267432365905274957779574109282207941057373934553294666274598075393589726198244482303497290303314425119505699353033063072250814609936572744567336942405186600139675509547426181606811734410126081085821771972555231525204552102269720859756796600072677346140206954132827088433460398456383875357491902293729166230364066659706333765526361355217563696163616774321609289321073825652932076603051348757316510334981119823705657462013212341202589786000886505167454651373610759874239127301082368512306397688339801997062452422692069652649481965031973925365885527025866932100494324912478092369244276947299500146634654386677626376062457237030742711808245266280494271997183619562030037944463177302384080312666906500729085447011831258536329663904460522845654327964512229098513544613482168357607880603508107680908513486507202519035993080031985015918111525395366988571423010108414531650883179315494286064145527560136167819189120681878791723281368395965463868433973213980968430738169677687631889582459972023969180184573067804824406008778610878470466385991968300594131253497966011150026486710107711663103483035031727811088199506459509333543757143174551996028261299060253311945201685207033218773928688927064088520038439631064762308035238836427437002576815148526074357673357759936857013157609091477540156915737899337749780104829019836893404291203215794330522144661763843488485163051462307084652559079048030108646717096664301050026172848125067312292866221806233191632241879625850310196391990663747463183309089178814140462470176466178798289428484114944898355400348758769043604419014243437443649437468085246145636080231982877076938861262439513877340135871011161312654391010068363977670054500547026794217601573541844365269155902586473007602074680583694068415789438597785322497165869102157283518567193563686259045548203439767342167505974150736878628552526330807003841452283117892973926034194695028157567933265548293999887861153241346295468743603661516249205658979944270797625650194138506500837756743223872161196876566739216275438562016942975891321964137827402511284114437924984211119833948248167189601049974295135185775263798600811880071618038740393202698273444316858586211887908713436118029470736919556205756391526738793692051134678725803983912291152669936551069583899316331201047102830755511955006552936155062645983706368844426438149461784839977111323477735831960798434948381017534602446877647758836757586227941874575112148329673931278154530552266360013112176801460323796801626516003183269875854569873487994824565359696951315425750453825199880833246952646900010214984168895927368062932427665190490680286343579118222823528641355267055836357058814501518010631301461355849473372640358545150568012968499797698324718716914803910959975602582254968707671866227847264814122629203474445195500520400051612970527148636142492287644155968140935924515724414859392935478055015657112216991405044587545582205790952076511585318138503116922711543532045788435290114396172726772499492914550670713061169260026149267391409416878879280649213199426093851003724413344280835405478939433916518813295968788056026052819409809907966834416386262248725722476267814341608370440057796643817008437858669421121075390839407545688590051653852858799136124047363094654980340311854985849304627905228150688138905573063555763141313826016608853698188511397171130606102773788469354735193336117919836508573782996658297825716443274551944221519303812382457479007496327197120281258221468277072968789567964569090283443519033137798160222671975843671861837016361566887491383441337643882587382412370983526162142700854902682575508836447995211217671947627933862926483707896112397714470870085813430182501730322005742342128683364691069842945729681947008564476316299003282845255959604682350993128426933098309097742622036765635329082792652776647381958098613767793659794994025974675159514261158299052913125788764703516874301696503745742819272937987569804949426973406258127738563598507879434050945855576077241577597759481238547912433725554881328037087549638426861316148444844176885222501717379342283707228214408823591490097921368208037652951725536303848308821523691848387248986172225536039316625651153922279298333295893242485454970491496299925199952159406036660962111232511728115657730511988131838442420443589028219630205641988904224797448489028196454385536616860987197924612009726062729671284145105094067126530871556643399051102046830164158347931662059995344952524119778099805234675163027869281422438246385006360780492301931709892527551927359245046493618574822750937316268749606442205977291347962940494354416539930579511956067456292833961770293266009824918500509836217916048919562688160864145866598719374273254266805263543293557987668689140196897703924403779053125369844971403528302431886656158324055859948648062144815379469134772244608551796684588428469697950399978078564134485263377581849076475908995816501216498137942230346195579562123034095518278823784583511993135049701166806178695545546359365064239024000983034436745332295579595957849040863581737099050091094971138793376482883223434347127682579357885800175094446747801986080393179510177456390519334892014864174040427221022464412384051947957116508831926567812227086988113589471197239477310170285001105307335346021115001480554489933123203201440160654916111337351876367931870691132469454453302645097910733610855679795784069240794131869320134120147810393889209347941790244569141525964924005165781707488289639281427760507763245956613998812894059777585969154183976489357761625661794470580799565377536206754488204077377569442106204015412711294701448224708266767537448148014545990285011389229623365210271044769834990259237823126524263001791132530452252017701141760260045272308102810533341818222130242603608120903736009578226343467418219679043391307334471148456875142017908320630958895108004010299510083418932069834438921131677488417106820091961348340829647146146181578564163497116906083455200314327473146511330418044321328689636568452608836420616315425818688688139127140593161876339175584212292734865421087009602305383469113187317955230506985833333794963320930725899227595000719504072298401352524034125211281926775156994381238945600069847628370051175752278345067204658599962476101576627369006635474008449716341458730225928198929602317514007106043833489295071840016253442794111052284685925399246104911195558108110802429267176510280307129969199280854688649704930059424056957244963134072684130850059996819329412261628952317386072762564407301125025876719774892494838409175245342001533691582571342749377390647753304868923193262574888039194776768142576004396607937687307390307133895154688775836067211229239079015954789808061987174978851207113082059582005488926497762013596033796513376244468772329310936309738650610432526498155915225439666632243451849518710152282698137378019229864348101728089056342261604679965544319633192657470658362626581954996144551411735682975750133087434298520463027196330647379054279591072488054158547369687048503637045831049978563454835438883741839164026019867341769731219245435835412273147490255608628451725963069298344517707437315703803008981888843057593636343416746774293057321512039640680628396300153611296961814005247040499576676950694237353675727233444365987385391346747065664208682237998154180199476561052128822573422150786582784307439142493584033758528164885874157072166845748939871840835295016598424733386642180124439596733277050428547938828858762590113001048848643931487745750986959636464669509029080014144413367464352876206004130808413077885829791662440814104755486856772529818390053654232027849776839220019073592443810933494554295655722873500316269102424341517353169514470879053716928881710642259067178954420821882146046236969014846502979304544911641996509974088085235044235222317658898936331103488832947780866549560703823290116518793124805586811134814123964121585599466622442882148612771381333149988401543479572101602277246507969198911720600844169325667778536064078291765817326404265723665446135653337275972554084458217082085521221997803611719556598480610623231903516947636640175843207175594338240297417892143744993860286836704869712504676005844878945539095417219583564856283544044745811981442310214387337813850684153697365248462180821565648977586907913229332497444718987655105901990755280828275704163950160605213006138396849875678372450283081153298944481978665080539690517938007456372087060736476643790378447486129231574397014132203908627906047664604413109277255305284255392113296691117555687926096176300048361193558163347163044379121026575961847502655746808920100103726977600201278519477402146773902165425346306684311508170480294159534561303225286806572116333131880153217355166969596525135407024975465315735590878009176681219910975006968335317393513470686662770850022082157600496158249294238594507352144124176452836780103299968302812633183620693207058600359359638605815068797707773686740566382328087405673879757833364326090262967012678710434192802283853903645349404963798963425573904397781872893798622668538391633475609078065081071573473842651512937657388500830070345697028670622464622353048059911159532844147142525077091523496189046324121843142377137951222146738043101626724596401285066399758829057677772270377588966073642274745699442776912852401926448525574819818231291156461950901153897273815292330047204063734516020381951207713509335404502854578580727195449303374301345743652406625143464316560931724839594149657072714752702408985380188486047829028961889737047934400020551013423319535180440557862041108615903122752081824761819161376531262927553327038231061000908130396985151109279050132687280188223074708136575445350447849987728484588743431841610356376343753955121158165686412176650604113579218501954892265211876978339457944940622770442737551268521132206888426724452812068666283770266972810787698037469723367279335250664289785714937647102452649954115237004483128291808726164828129449295617544560821319330077665347822374642506120023419850396688267543339272138227319058004329228142852775018623047841188145918099936428558019309882753539226187137948467801475552954997050889887520259119344685635579328251822074573489815416076223124170379140640110953807613392561271634305624925644322183340251369937123516716106606944322768919052840784939094102022219241937036614381781236133935001198115673796587384997150352929885877639304799922639441868977587234577784205939781234570862512166045940353220497706928164682489297416547713239242646563685953163768039354437133679538708227556796229191588991034113528713158362851604412357197245343920620350392315426867729234758981921679403117810428319837954054348224513277556278259108022887395508923742920469690736064943610417132692951220991301168393866405486503245564791987356344751397658101630198451745260682814187602900096157046616308283094956831567940975155954834321261261228812388012648824526120605673022155815965142271753423321044998412045342783238063205966403704733204380570600896754547690828342505167080626645790989392686090371238206761360190333626492059131700690859833720887763086539342328701447379288928043851022044228377850910928712063354162859282329118735815435599475896937325372549835317828542433079762389255223197635994555998713715026631989658041396173335977247709226656828381450776174317034855448007142367041398930048289747671650634567371015822492157014230974115546005558955851993014339560621047698659476963234650490679699708057577580158385219845034541993796850600452698802794874630423686772272818244829078939666576983726747043461412082544410063240420653756684453790725224298253675530345736469740566636996011298098059933214295559044020123573673546373545411880163797016689539769501385564665956489450919353471040724844945428344360103074132470516937502383054500945912178172185118824148114153493915639414740950195374204664060484400271513736441428176576912935842161562088147348361542924387081242873748260760707709540932961827372607960294188921873980429068646090353496699356639673788538690016986317400962542633160455315930244319402935031088778667880044485378042202380974126609089893919194519310349129789316654757955884177957398511896350469167765973936401494586636463540064235377610767654219108879675684976237480649042317245570266515379631822398778016889645709311274837973340665858842713978063481015363172296009575746089852365327872179235052035344669589465899196471935370630202539427619893493234809435618555113739539977737716733968693959309882937712287200644164699706178094446932743177837783117080102269642857857961151418082545132514955998096352221928758099698372210728113212499741742169004084019801363920222773722008753568879020710680766462269050362598556021291696791242304547032483825242339724351087074571707597320239949645627592433505516186258880552823806100476001059075948437683753776121981050889044640150414620252606709215578129307067934153446726056627363454455420472832164887155014003770575010329731441813140539608794525409318071198783514272998009061536733108971420532168331852333398050054970203770122361380507848069642548413426273467654333252939804619014995343687681803202455519630120095916051885997358870333050129746161382108214152835221010200937248102089220220241762377310194232312199766584712255846761659820718095052713372227184582989807829222871698896658958614042784741367685643129356153765498910710766418461482058125880785209358369155100252184990976693181023835285103555749210695083669495025387853457673398285644876326733367206416616453811813631523205550087722080046194431737064403726872779302001046641256253207446368794908530746217326500784011570126751947530959641698043229659161020674899830501402604732194374089038781331310773534974243256780410695495179874401527361405059004300828030317185191198479782369715996503942505118585067929229058999118439929311523579196545435674259246762127086719870203001906747951858223092213464159892239590478131615249875468380081543179618598810870984954862423506204066151949701135238714348238116734820419154996158021926001193817354904923971749213608643955525169065004749014371851986776516546609252798987470412823736545194596723935777505819279031275124299637741422306150121175314115586964214617045896907385645904221849947035148325018811979096541665827585594120323128721169265760258162699323407955334191411473587158632894600982648337597813777831320352966057639995132176734591424947027235822211779525471062467764820758400341742355222383046722805447790847436393273290340179095255824545857377142385187699362845439745030419276436530742886466833818663974152532891798812191083603091393377143061024475024952821851414969131115132730114445735902710671848718316836612224849837682597495173914495110773409549901423731084322289999862259969528809073351791280953620109136289815758327101292871114821675958311761958065187498534414292266096565342965704279661095080785493960371415070949090141525477393131321028230615682930779792185062392946168260074464836108399047302403535382920197811480831823608136717934531431877690195214097325810884805319430791415646266961771825762678474110355262207325045558502909577864233180144100810794095304214482810946852699382717630458102468275135548310743124702982275872885250532468078685310820469687452713650770618642205715662610859634549548783233818826525143013082893054656739225476141430778533715083138566062339878951797416151578931855708765413879237182949333297112998003927773369286737840465009513587027152556988515909973361304863999160503215680580915864336025205192857711467220674599649164209172867677447346651986240214121517338700038739798213779626510010725113945182998387888652430191782239325669040607924880051119441984594567569420642499331485818215623227980327244949761342296048523386741776495252022367863905464946308287070600616765917557669111353777194684835715804228992011725292300091337830972495202667466897418378311980522292849572549703873533458591806798298878161608192667725897388493633184315648590395647399974217327693013899224548464212563698572592577134615982097781895657457292539717949745486251635224745437952278522470866403542845693302019051156203606507450229018503317569788382934304097941835016778170263745379331316451070843911427629676953269472364294058381222882629936172580776730153985815993909841036282369579462818497659195846403742902072985040438512509255969638570065516478387561898864922312029625238495199689207465030975762009380999185480410894271151363555127360023676647737157182060016190512461832155298603335763561833329095736169979403222642805790099484993518229282861074142105160638862581352126721878251280515481834582632595382868657244856975116812321480081461175700089821546947074581629098336704913470757635149200465141622477732787553543546270554386166805707168665321350520306680092262315622500668886149674314030807626082406663317033802492804507574710737743840961243012644321492714761251927228190171325762526108690002904529242703815236433824011926562633587711575711235758540291686511138738020103159543676229453765606750055210400037821196632391282760423006998827464645476831574170400846643830970967600927256513282587025198702880211106387111188373587701760304175741724379247658791364178825670777047975290225256754017998734405107096701474754604183809536110677705577669314007741225111275751531118219814479727450132614983542081346891998335862870220432703349122456410333453287241942037341927915541006601198967635686254303088147366003501651400107784037366871238626393768826397008151466298408821782324472004853930714530526621961990740391283919073501795096566662860809605248986986122046233890517771714707634828760635611028818785513422092447496069654202748133806716394503315812145241278058869882808911973424691251522030799220085291791223724022652652533847238679613062421124749493763484972773303093909297052814287186543821320511771688780580991123510066158858109726643515404960551674483272782079773579065032352147146855923881794626114804919055893567692298641258008938491048344247983585149585750898120012607375964060853472261947871244029165273774694969350275704234850330101868151108726504915060484234592376980992746169430690846748418708219296701687706818841689000126891933204283389938011528017669397127163069716630606186010852003878115555982224160272057181889756782148058155803805797800322348175806038299879085652569983464974826168270152545170902218714822816272355467062176766327888210022852868117497678210695338207546904932297192444940345767168472773614241335728383827542981640475310728814266426229236294976396948938555952923905268390050220238798972125083131965248185240311521435380718302596566737560966109968155178686326591464336132090579772813998686412014947486007059363830451165478115608214676809552677421441210599283296295110125094186945076192531633050059493682182670053858232769271568724245239842765685740349466018268703917657368531689635566202095683028617231353242181684230886081312202923885914396118429386105598727020946253647765687140212363752608268092327651852217475360533077166958901167927571464572865070982677081864336041172192635643368836804231882418522926638077767070699895590378327568061637035115551710525135817428549548374697380249606985474241902066252744627751717220270757051145755914955022312462878572811670463402640394541299422568627606588911742648397501217300945576706191305377809735204885036259816446186719870054969355054099729255831621992750639021386076633413223406638300778413156087310455234095220723850806045496807487897878113102288686227646892829106105129512716436724814252502670322317881296003515263240528093784267056738135776605093949361851537106698936363775797094018797943266670246237862922562072563835315434212862041048920966317293084865189928362292074673372234996699761065774700959837384569472608242628487597661099244169145474626680819726350137403321833448326102378469715145260728730794795600000243981249723464881534997464363202649006860109139176237385125960542372745302814542542678795052879764547452459317444809480415539596111693283146725204026889859482526941034522875428604655249780696048138794324122817135551380489702236427527395258043309269443248487775705072714644391332619442237975802224999545521087713968426235554885987474376657209752354091599891842807846097043412011667660437528832724495525550281186821935151482490862191926654764594360418353602931752572884078408428612392313988555924664239580415130295116504377065342655353273061329359294006092901237374292820042436015536265304975292061725078132404487820565763385697698216956303268442774376897031824170338645636951045152299456726568645433698127296683173636449163480477698252254930161077763709829479010421352830370384367023400448727722413690401134931706149164405234098221065346617189513450189497244595387889409332201807181988686913194287853229744466556155033618152700752969651016264105009688293612123587335275605985163561074959283808674540467430434192734389855942764973892435353685130582451578918490362853075612077616769047416501409326176288667495179083436275325620676012334812860361149656393259256619766722670198650687387526867298267896860389676685594310499086413836921270656770451219705391398834968517328170159220457492561103442527312363150490893721080298015759224789937998257760159448451318219613666830513328827773061745723266723174618351182869751916516054218444911562509798531983683644441875600755756066124875088070805638489417599527309324176274953372903793324663551302533032837524685009934462220194780373739970370644538791770895802298279233208875451141437040270192836212636587792845328385979481813831088748467225580759602733962987801295084948245396832433253873705394386157142344054258316342276222036111841048714680806199662188650496978432909378805468455789107699435248186629846022080712309168089927792645907597242300468503826952885591858766208080977670652078814836032618198458431122253023685587918824139075304681178285432775938677811323408631284087762273794030560420697695691680714966798689247847978740755171659774790728162960295821195894619439291544533308657972219353684451496609641319701404624943717093215214109967732010810177430788457537427889629414563660413927829355880829898618068928855816257379120766722273583871451316527559210090542916800497001424147699339270356288755875956962942197902865637572202444163148949677142409475859673519993783785649036714317743778813719024290366137710205096117977045814427240268316389791340755065501498232686421318415332584075336965217697363400922825592923374101298455511386615951379579624156905050074906883967237088344128400426456054029691436740781309254121879842347351340082005257886203825905170675900369960705795440675923130413993192519446850826300923980392949327344675586214488131282313097916927685422946802259618094793240429469737400471133621444850626449823945194501641787902063528941844956459021611037051553648764840186582056333680801955327582562923426169014664452348991836415670129875114327247506455540172516069191173475489541835985191073502384289463178163979240821095358795019684528972703942045459007893143167025282959203487862591599137269128238223213488502448537751824206768551212253195049495095847585496670562680688187592780910625257025582027351529213306031457777663693549985290596159767042674674046394290333183615940397832157308601305656599308081070300081092307758722659815111906034549360088718316998318523349717800016463258114190264969105000947015625338387291757245822819814178428579065586522935481591903017377642362383105918348247538977842391594792381146116855588580379298396433580997456986970571623444960164365364859310578139001170719474086694862232590747543203787427117152467739875110539865133845272385202469359016699086154268160511048924587372521018953551871540249591474184767084142777192258339676881891231370782121534229227869135261988042478566925055014247018459828759337476377486150317966911920864450152256327516150312396152492305597674647209247329961310670531845247261927982226789079497836442225457113332690053333349882778226232712938802732805486440392036843748844748596992315513374156948208102614381128111184230019506003403749874322827776065985084642124591723971420659390846040991803404632177655721741925038727579061640749725307365870453422044190690649513589544436731038920384894294876083282232263468542881011557801964720748732831797688315743206020453256660932843527636611554359627717068709217369473815665276667047443745907288408603405451012510124178476600211545993777979578888289130038019346100604599092153756107887368473529525912216988914357211716434773648731506950684947845476886763211219657596343234475694308877351880076856635137764075613025833102038609391966007170164236280448114832426048297889725992688910882645678234129067666659130990313189147394012445363655684051226768432499322368713288550976929502199948192478259273058195682126658441083938236538494359350240856338315282293744938981099286900807842931446132367798282401178017192483916783849204784788194664664681928048609681048234643713519677823020182006252511041456349507283083226834278911172219644269760011629671956807743091207358780942774590335997050435995039454606301726114024315934931759968589186786360712650130314034586165722227585166816933415088002048925604314572869027132663816446809979173546582755959195679171166167898634975923511255174204230853675468049982822831658770647724165857339345733172233752284022340145704525002874081379751455824497543605910041918943252959290367608113325871399163287080222978762437524549565948081195481157129335199389703916558166738336082883557298081486155616593316759275726195962798180609705752619597297272560782000649561289710162565783597552673266772723839915633281244070415504086869675296724743616913677459973537829465057603668191189170473900556975848903627236166500958930735689583234379529876316638553978836723330359485178375129340246185867281934051761290813762583944965424251255386187544603504675089738463397365672239934164785656867904571416474147616207197830935584029287103165103866741542973887164679710842388206799619390566146269596261657530923165027942552638856941937274257173729684516501592923417209499190951917482009535096582477021816043659370942908655905703153991141445241190149366544203507566736979647798830828150828916592273866884259973964095025209973557831225411498142816335826934793586963541178922397461802029788646098594481135289364688881730668249897437026763211885991304476887778060415985085193189856801181838875730640485296563318895526416393573187560369450445211301535297839231126703424677497766848004106575592201483547678226520455283487885267468452397244441110898422669616342569442877241570249805528975566977885137246279172929869047233249616119866879153164195781819003152920662248812658083919216383636693273010373151895843730464996800758809338596300287395850856682710117745372727773526392392417151217793316133278135409207950000318874276085448485281954917854915979033290601811765869651088250611820469082355362749742025968481833485132968928125655619904185711758685533297181499308732918433726040390893103849270264126692461874843879950973853036163649639553203231577873777832239619728138245057001575685198672026454179223150018538014159264390301423074206231165784261842950786422045003211107640463947653939750654231835665292636491774332245832338056411504762981093756125572587012502548678921541003566272316442024610135308987808484340678744585615057574245120437496169519374800214030951921200340985634636590865946208622017476412108740298904679568500842988214523350725875799729974494433686851188092436947689252701946973538868613681726568909252048144904730057960016539055724830590992818329123493891717820516946882780091916848417292407309183748032974589655757380666801251688745255059774604069770297017539435793934813142463171814291908874911411007046634892395955174003319162284647276123962377376919321625671684143374209864032452660764521852778564588183465681959929441889553698213991220940774275081393727372821200811314220104559387493337520460212825751345815952343590266918168546834213347529762550303635200531456725727320886790297350586990206740791174279060254590771569419502410773841486924995478286253028958367235111716312685376956421665381145736646564530965778905416882204849414197171612072985374909177830911166342144024480477154668398940807855151886179098460783437572196937448363189633887242710119857142438618610039838987670360712878776401199996209123582964406926236964849956669081866594666657385087859751312043191325550401853332936157601698198732463127583096566758789914170873030529869367669013007355804533488715257903190125262868647436654907103849875779220089028457166743666440749694949497021013579327523295321201851386187458526840507535716355674784268205263780955493339035840349968503981920786998963756586475375991192479254274794434184090252741206260596074569594011571993048982878429076475222108900521448812598588216311694557409619434388700931682986779900017870146254531480957889625164812867040594592062516262241235275526231565933740061071390497596217451661571900180093987297654518158752999841724509707852375899423498025564789008390787086810521697549393394824701377218157249863214112853827583072277954487227567471938825334801405800208085802647488506209867786160020541751100374466856227963582172191910302532165085784019941435985587964337885397288166213235918896795932721243828049886743207598619121334292510584264188158663873572845104713523046533539208287051211657547265029705521425797465864202069878897211101707282990724059490943573206016813127641950819017223994911000202306836682509749268851926442351269689075198263444829808205226225129775304435666922533631821079778717014292774872392586619364607575882476182845260073313180544124712558329006323871558272941686930714324205434538933933573980525735170952321044143210905546268333198639337492334954074812063243488761542185446917290533687641359221481116191846935976792347029378573217888172836885315086526825376692638047818759976354767129744610791753917655116787112599358168783616800029977161191426011347977796685183860466907847084397571387023653763172119692139661283691850172010556242407944654803097056280771397595931513707376342974621645929350242905839683188411399412306491410175009397690594532274611411383185852638055965521158029046665953210914150255962493634948264082481790794012432595434498977815777057870126036326572162902807626451507218152739954579761948815011482395713612256483921884299465420837986330459210412925104527677773567434206160337186768997866732472563387553245720953304895878511664921537930650886281107937037704520598016443958264528940876232162332207177250566309183919358909460497962680864796545504928494423305282802234735561513017538075407984863662225241283460208333881865331589867594680829006192253537304677350878076273649675040824642474046169740001608600897714082749590962904091638792605553046785447135769798374927337089125814458045549422708294487222521139645251454397750922401351603853421731387219366517198690297256474177891699216898188926307547763581960447298767713488088395397098692429453456631201648989753090271917198176453009677838680549910883246736553280056665887276837147110345726535781053107582958451698072247535668008893619276702920408978889750111408995879225432290549353122552049153522656466928121437127385547967852889735629260815972074477189513196251351190041602720169395319601552500856615973921408012067335210844899944313528439789639837769341746039072165187043210579176672017841284336931787710513148833174531124763009264935822361870754623669488331447382353535464801586130669558706832814272302906854055557890723195221955612597262955527059830129646012063324219869401902976202075438923378888673368186806082990780042063945980358447596689901850425464399593681635690746720355707589364566764655088951276016974718834913583853230248962508270377418839601960852748103688960848210500601573789077743960104214096546522874391074033966152931919632952543566353025537548876245846078632594584089031717835822847597388531000876586988016382839538539596199815910528831523621933237305587471669082400649311327473223644310866006852724745170190091342706344649983539069948428115234052800948383837986637746482329304317556711656381042401727025451662257826736134554590606812513090195760370140170713961736944210732084717251976917440611435423651291748431446742530595418683138319523390528709579726918973397119512073150948805726191301741410660653468664875012539234201556225094456722372233500365138406342542644670804790741269100837391051953821940020843318973316300511610919720848902877228058440842392430773228806072426902470955451569110109474859540757994465585173577034315702489612760480761224173622327440764319112799952858221496543040576607113194099800341194115200833243348017594556010776023021423762513403506756407778027524435620869674255292708644300436433175863763899621238710839191471721778669780762250623589371905213983466186026106095680527290957961512310143542543907972305410872518931092477045412912086207946901946009707578763692750840029513007705418111463603125409251160188516254517958210855267815138707485471783398497061717241477389331355100291870623643259746675823745580009252586391521056251255080408406307021436006230825271318233200809257971655899336327938789528451210696804074455114140458443241824437127592540411447915309901717156033254474613473213539767749731463433418945693094338784867697058787581438067023656746802419046737211672144461597692945502292523295231627929404318978560388958623559155665607427657364349537053639452663430080331000525294779206074759965236510138074901426652742783265913150351322741519647332644904514285742711114899049249376630654373833745589117205380018872798897911691778881080826322713193657565350332479823378429661638132406588101025037651656219609133075095528631317024267930202647631718168723161358511413765333889548650318546416680606635398059954970181974634314780045240275824346038426179826210074435675986759201812702994090065869805527406872952391463186466799633362060740935935878129668009389428864294140573745016041484729628949898855785223117185627255676000829550297293961712182066564279666647878446670227855515948256038894192414069899328030700097172960990556754105303123705769736274851759432568542857060593248172820380122463477249684129415917373605065222001743113610896607398102166518318997405651179948368010593801728666963761449566390742194939332011399163628460919206783042484289541250618442442317292933901570614728919076560475243958473489584109618376852857110478703630436571318951396969248749392899197539527773773995341550999415395033688483208852940385462547869520960038962555583458830300782265254702484293491165518436221325232071143085313363360941214278139163086141427797354447044358735741630657196692890113020272438058121218990184473375392664214745344898453767912152516701095423612307109996012915676354644884013440570749719550776688249170354138044220280741544502201271957335981108315954664337258002773730616845200845121901093587472296487375565694051301107300490376997430969048900000138995605949549620943887006811725856946102330430136669519481744692523461453913140251734937292157359767140144060370163540093024501250099093689277358823908541333869000194240264637652628832653139822225403678552159506134729210737086247269167679456273458481768454971325686726886467469606698001200710319819295195570902232185721871374387870061558623188163380340449151610349847399137532900376111669990934406467905581774875224988309987589976732507335131954869470279861814264519918172336730147761077395087694887533413399065399142151888796335525408148255079354398191025936417594888595861636737469960484157207784156109864104180949244531696464918563319120329751757935253863062333239967964748424633298390897419490168243766901748274191232922550315610537422401279481951929458027597061210314206496596616622335227940843313814622660391814173795359193116659199416108156655102421909830195435316628716518501261093823191700793159861879603117290230113324313364795853117889553595730414320258922383720109690842194862826387536518090557537114057242864317794749244868933880193327383105890005901083799312471532195242685491073890620433009038922782128891918386762992621875409441013031679034128377055441994952185995122205136432903698699400483802310359190442658838211693133520139602943970273344548052545189653915358320500983004019587148946196548537364870689215378646812691955403332119320714267114885512365691688237988129729800764433348805634424885714522480695659209913223957968593418317416802483888987731180873901614259123414313850783459081684257189788990429546753687919643207118209512322940711253856268080038082343534658721573504823650656173922943417625096395245269751900342433731835040077119505091972726617998753574795763959981458896339659330518154991586481788593101514562738505024771378862279764046988368502888404415189097683605955493894456400240509618865047920918831157125046523160569407982621092698441016486505379134122915641726642661618465311691076007584435968123699501402415522075054231652677064853880858441017185250157409644927767162122253935213271527223854226049172811914113013423411500867063633121964843888269426079656389899505332988004329841803772628383641036801714895633900627336723523605524897093294475198019224508117980481499222903949759531796093630897743105219893094349025392906295894383992143227866627067647271036410671407369705217531148432042096276863685321290946581104730419616978102924973046579619845599368712867600416705176517442207534669251374761984328427787445950238371232476594435792760512213671500559156264711384022812557324942073615401592588756229941582831669486075903241583408307066708225517668250067388751822802715430350553763386426231523171187177526093871004676289687856706258295395103635577074405755656132258783415254402704727756428463045845541466140679296065455092809657465189500562318119513906133149025026684123225157526733179693353535465424344973216933982005010325385386810787897302432115468683901263882606289935381850987992081447254177417892105572534720428051480833191079186627573414995130828229472325313416539656140115169693160758077845625891974712523006406320872081502715870776153429331360420959881503263316758419338321781538421891166838122058294285274318300365543877234799625888108289760114380656490954839565179998452856607303164101373773759771174855113535766859438695635362676797989622153955744401380189204111690884153696699005295743064095981745700239881719433202587809337744257283693235364124408649057663265926326310029901265715427145946972633297052078997705777133305979797189412561130135213810570291855893457228067089525559518479884482818618307966305263062406271296299983730332304871388188492252015956909073097249785203208590450352056574241838172051689266811646574944824089734443341540739409924625045034314467302612625655183960745205798916776830151748393682509868967377879379542595727438850009485411282825261043300696342236718664504739605193690340223565783277060317255862178502220512782479691159255804943680724931740437124214741885192638164197426551881151882684654137916084342056083268516944074945157477638272678427821720873690372296655422511522685381028091629479999023360579158389729675402609355806169773438128649809529086582886714800282140723965127031677065610974251970243094856700537840915312044453627744411087675361429921691645007015132027230912375893114836011528933385147157861021034778979935674668714383031857305281565734877512182108200437713034279948254905251926225339660447979508985980825286599472214457179192423943665190168692095030843344889323409245330364837981307783663335087608302772277703867104906654320582263186869426633293212699180104635728097005309631986662870332712643362896680772578230562741388626434688671551361385002424561573374054531396384891964165584810378552876018749456965347118003081940046600507146231536029914414937366663851837392639375192039221235056032574611621433497283147596016059429688686930225378925436592526618960185590640190541005972253516373399986963887600694666498638117586426814041688680385858493911691677041273042097496543391827993067151691268857826490783967482671254497921216697736598442288612834349530653611145298949889672521925221964609919717780315036266912195492208850614264746114000198823842247894933306284288779866331019565476151073082294493879862666798097580431567273910744982079494781756784594657863831699480553476269298075342514554532463357144665117014748439395238220770011001652382662516600022585888562367538647100771516963297957034810067354869380499533399181425365678743812098340146964367462114980813566185098479210059907350705778892803998332852918788943774814259742146870113890740074504550575842307257642545189702373795626834967052857439567288999615345494724510034068091794827654595259241697906159571604580780418652589574504875179664757699793400960436220814298153131106399617391591830838518363371090060876902932303710418455507987756275093657107516674440145942430211404543289114929853947381033602938759696114002140281597314925665501716054259789322976240166234539338765193767122224850767718345542699510889818187007658456656394449947436414975651742477720377491784053608722485048140867882805143090603382976841997387182004790897863424769315527144877488109066145645107196575749495509232093059586351406992259111147844150912748544599920837757977498054222784322269078109019397215561287808389487424209025940453941086838014595755977273703633811021522814309052053526035074383381000252685566369528420438602586077765245079884792823787799376468974180373942929004701579972199249222569228705260827982157648482505366108049835383212382194286565157441808525410075510312634435807312154226612123168959423897779874492067152847218357326173081879050982555568067446046555419273265041004265539772029763119929100426851013673078156011846222955968653153913907118035329862235254878457107968972890151616659097376512326113981981419883737719561893113124354178991620594723774240987084688909678414236392511840485231712854940132638783358248050223281347182813283956400021303199954689326493542286873212715419749767125801590613741837107157319713526426192576016651484765631710150151896734667905222999128589531613616202929481421776262229424834176212223536734989216539681592358761952011820762457997926247328868302991719950571056200567195946000185801505522196348139599646476672348913191256432387125590214365495761959054597014787524326326722689827783113406517734006001515982740874232839462984196547068331365871893047976864139321370551208888714655853900105219830603576118597477170590817039824504835277252166695428600308794362650684656689267819773508747122929859069986484985133962486179607771735867446742008294728767672215354360240883278027253330841352203367125654839459780864838287766745784451278011880846465769169754274351080245005234212981551871971817821091180599986563258230194875140646382421195395908398467328192947136690872664774995011851758410494672887133617463062746049960618812533833276069863945188488639128568962866888088887127290330732087464399288488425792735983694627160827026987020844983531896821185805708291440983982515852786985596507020161272207786560846014782638049109334449950688914892505140823434341726152091021064671353262657892764776474520087622112473517351263351788807842135306753275369614624326172002453658283710530402481811450017649061152743109335108290058542073379766415641820799448753760787862352674980664356606180801251886375876104279633397101317686234075450992572182689506516010694976969209654537088335885612538342543678871860683282015123022081019017287924474173295169701097962368399828114288398433818108746701589791014226925305126456990250876602473403755014396270637261555459935213704654507869213575001224852575240686393926166797678242011001452844055643355261290629681178220005041552358962572405911175201028849240987633324431240545826350149894918315880245836657466975296788100246689505169812143250175548510048860599639559245417695092085275841933905573936471976769778989127562377797011015781022331340095091002320077428841610819034943500261226672486085841538908648566403684301326854572465037794912262341316029122984999621752211060618519430468436764906204761542422150406248823337263261772452414103102118718369562953668284666293137193289588886842266992783234158904124889103741601940238113342054018693763137364561540737574647136840002067758727068836456790604252302726821435096914918575894866059503906826607309129384632056609885538721948933374276006083097537269676234528513587394161479937932219585557957187123234068621782863667575649570987623013561581803549219837968039399746655681892281122342445144388131343727402203205593823277004138067448403452568166939093780388697866736544773638589365121178075640982292538200923003021964944560913541026415707348558889809061982430771430641238114769386072536193395280564000004294494537322675370143167535714195280808265143389705590797929062718782999024342418558983563224350744449527441883827344114395541817752669273955179306978674057867265588407942690259582243068389921576019812664540401019604657563847855471556127244184734117510584366969121635806787835209275608822071951560149927164520970434945889923308154163507500856077660543074152492807914326636156855329461665150134611545745620227255900804632508460561127308155199928787186238454252019353357955950635632575984507392795517537939004951031046414447342668419769703746061162647565354025388801129018098288460979978418852367502011709576144240566425373528808762609909646702072645099954534032697826573747961559219554791310078216928747222437899722633608608758696336214028388598857391699778205222171277191337592952494441933505833947350870665728395784693573700869758555178666037377587926504057659949648305198081477844512860184021645952129393927913590165359401004290674929233071641415570589048310460826590826899319244559685866797191493878018770855726998895532091139358731744762850849072649952249698850641687287927457079621369721763995602960665382991116219120280937424171755256636649002836322954232137448705331663193839523445830181062805092576265459607703306318843656168438501842396489365290242482215398689790292576284278837535392386819733523472124182016603767683495574665595630174518779834911143264154902454622860698497328504900532843987820959561074429607568438141493459835302578982361837922348256038300228176227815624517029152314713149259351932163159475926606425909447574703133962002862711124172224064264639559785054929404690491173760081572488797840497072371923289767696949566327945675017365227518015332156436383701740073499826317164407153020917006737787068365483952764408909711430589920339293898135415197427216836645745459322569756208643891193626589779141707044805859058913414839641092129310385780987215752583362684231914599729679806622453285676836757852726547098234680544403249864919840153690379381475006921802726710753061064240751990741569124316972290758302328230272012855913779063546705893853142989830933370971615647522827557530667880252186622029545841610763894955278688039734042236993047870690601914329484611730592464011229764424284777740722608412606003755729670715541204058059350137351087572154671130880315569123801771551600156598113581298282044842392724146785344214492424951386775901379174247924501682763762350635665883931127729208098360180724241820184459931790507135324659298776046850172868459747943873232967108485796665727740246585087755167001956375195747141692977862052063315619047971930699546605477916145175517338047066209103504109732485912746511331929455016582100872247356443123901797035801365263066007074061705460888393856006423405842681403211350993526963760908806606881846852157714478548452870659295612025923297907544024260563609550326323282515161790242959198119613925391257394128204872831681637396077430604759992658790316067206676412035674764426414049963454271673208349563339289223161740006138731333523487369344445417195782014049873296556404941176462693155526708432671588601119268871119209314080052535278612992257014055009968733256382299957067375604060396411408331648659937930782711970235607321975115919300383921308415539300073966950715111649080497204587850180540679241803865558666472450698250145701396995921112030230193210186789465972714300809391694055780805602454044451673135292080708954397674295152733491687778642787119803518687636999710704286848412045126640308114655965912145043837679175137393054558675140767837109653551920072272704124448935044733476086191531725774578084078722563144586122294347535789088109909260029612664970974018470735778254905347276973932973296300264232795050038673334867460116855814649063902280343384380626903173784787679927140525075050194781705311535944626705644943712087620465968445228236020406358273110188952480552393106852972814482292249019806875898874957106086095463457878340187918503427527929375515618744249477222827007049121486327182717755926679431410556649445649173088008879541029600267126358639792438190578874611349812900711250254147339044787217479901772057548979257091258105374614321871548921750468172438869914886334536878581898326595515657222008631817164765514583931089173424896416525434067670492487237803288488884195113257373800731049549830050520612419413427442022122986933482594846330919051495291918824846931703623439238166667777285910651257830015793869682203407765446657758356945256538006210320287500465484870727239255038883054514521942861949032576850070294594373375106844700908542136281134993039030060820812768361297088090984077404341485487959371459689197560349834846813846336281532196206655976030664878970385210744759735609039324372551727317196329631384886999008054139351560149481183565354330807648116544409587300338310827922114826011836134302067414200159546102343245105941280552014132576534294486878909670193089655119583641434109741219327452238912330661335975249543131109636139954766891473163178825134315076579326685090464664177824473447282923278116767263562279318464888751498524470942815331246306587192286049439580687703358173472612020145424438804597623891364084811930710143313314565251440205059725891340106219077388167792159682394612445411101133016071702235213750940979095837184634982542390073979132079420960957954383799675529615528088086732861814357756279888211995396314910203525135920106407273788848864833888420581572722795259815677504189445295741469455071354758057476636973404836141446033539746882488666500353321155851507165698036789070972533401770071029318608944353822945584313748034912927303500015327577954018477702054277661939140440549428503924507080440253019310408745590616669298101654410351121979166983152366608452809506539060135965341397640993042869257274652534225630770758366947794623453739770274187876588068187641996618391758392679051149191914093633377745740735647321066248498930705876855857170060423816499659362380792800910002052396470850591195315959518666342150223349923989368477271838605889512358700347903259540618526496441655688803571121229152007941801673589297074247016177990560315270652363024267970116664315484609244578024153746943536728863858924318252973181472969514894486210352920996612589508055177862583650840497977305514361360507545515192441463108006633925627903035617072989021072388699678728971223801058995107208128840058112013413015208546544815022078574903280164731760825668660000464222611194111422438263814346091143463242088532745011379215458014493838430304193527980726328461169962132513944745025914926727071642922140778458849319529821319453893698320458394725941120903546750920426065777843074600219410504086617075806366822327530313494936786164874884042924748119550588111301536572608248630297335339174347549470324082687675011487101158918177304789186427544699831558034068883301093123231375666895770503214391261179797306840302445502598598847208501735369663113121046863208175517452620953192354846525424023060083133190468951868586873125485388576002042625247796187854264769217345568880292116913733267957045517961607390096155271960327764166696835765146400538377358818632695907413615268553243232718243103332861490243627393044921092399531422732703899003333284590899733770810455156570101874528058760073114471115316222970372741960171813899204038228103610708907838005139089280707342716649672439223596560109575906045966491987228685204353264197227120002337553842122496094707643772135948563247102818759924633012455821064559484246405463795180009209019831137782358591752286587129615204954692209754130608830366435100179704468792302205446607777896782644823572837523814835637959581371222695993856505668268797272166669987570733119742092365401361242143368163198253469327446400279597355039175292556576883366467702260413762830140291760853412303081871894663127820743071566463574149965129657686751791426927834880841861055731322041091944825987502518145650511616525523895389826631924641837327302143374927646028515595042467891947222944353291648250665583476489355833138805836514720528699325481797608688011101529168321099475522333517097061077858333401463337465785810274411609422571411036584609041062353400677062501247519669641496904080000206509120553326082157105422162211124061277685742037517073305797540874191619137820341738725275690850977339159582955392459922598851028314789378642360655444390542914340768962814276599136581526978196132423225750156809561100618062357253439078494389970604323907752797016257693837909914599888621948383766919236089199555858549580069420671914230611181088868338500586232479259984706752331472996140167090294579435406999366450393578692991648050779530446540255848061576724121768876511171081841310798681892615198878426561590571118279516145358168682294006117757473784725259902501560826844559454604110618417706749641043444576755102319923072475023209452107118378470292040390796416293093558528094840300285764124832525508114347273927550287187029687458650189483335052835354368488352674534776707040264463036314193970795657967781454022828113697652540720401984892975098612089845545825382413704674130004309048554716909371591516693444855777691191645543385374313023428932828260812494142947770623602641866407403323881100564002138569747798150698701824314926583482048072453852052882293068682426770582089170027375905046866430374419455390191143230246264138959342015318488918800271050613694463629054975619729778540819870625198984088815984714693002146937321814847475532463044024221943298655782591281698119615955859449085056909311710490450494333862625460953140889007866659049672245870230158381255099146468343519511025578672628576527322734850602758809943029464852859089245153889091099808086392820358441430967659182359560488938995933986229967646938517081804961568715090109836410214175441990483664280022445057317781061288298805660819123177664818702845672379823441918788770011321791390245063479623724564292057599218883057360824900720150482945989307879325364738620032410459061506723365570597438376465671100339928810571900291028976063297774757922453740895216709053570473471890035112491255355941037923763232365618991294439608280078990903991626664964920262533015559778688373275393037837414584570744009590175763109874355701833970897793202768091592992379620344620334453217921315284337227126546888408828958824087753798432434692713219520954059769907590988724333028438599076829348844884361754758636593577191344390273365913831228069392713921695865177483415830159341686944179273248645595329455848181560070164609729790888872483385115902547321771005952812013961519926888841535677750667800968816427242633129385189869318185540757260902748454465378955545760634638200246395180738491724277058246837628789526909364145535579662496448655578902359557152468721765077784648099152053200921597422859046162020253926387848777678426130973139091725976536381873427227865495886541463529979294758990920119334708011134144331467141688782978186175668026212500720611537668920244276002980795725852704643747146531896184184046537833985088004521629364982624809244217038168759916159528560915791537259601717265072559106814822696928211073486564915310455937788455451469488272765347907907515020881393109824306182567133394419898768341357910549703881343452141315438658754656056981191738242836304026124649578662973416993367495828088406560099332544165141275219153704655854051051657695437497862928282780224194182599255926549285275302087414669111721915409936867076370432164377266372775038654714739589744886657049207539438738051276427355338521023481466345167329432637460219249943755022136090359201899201020685385236236561502966332540432867528396089815734985638293321291240679773057989871559995851690689784866861838288746051907355562048290558251210387564691418968043795016695570382293062136535247998101943152530526417546959319701187217823033419393281823137464719066434035853344134611820848086059093880803232526624547506563966380104229007452665398088868896252914729666045750767318144722307343828619656749614989199849557617568892485561236835605965455548779032801050655553042568661976878452057052935040938680601437133220943769678243771163822183128700758067096183328149894017824397937247440903970871443902744230306897450284168469619990483102447467069357268262438950666599005785170894538002024085959509283341729543260463555033459637769455051018223075718411742959420064995476643837238636968041016735657827903893847474580618214899745992100175215698033045560505542766314902643386508436334200726868113383439206457271554162445523656345033483394609046786301918125823869195139066629915081441341003652535463082872641627254359392251761962486781061329779008837124427086399171027516325007844060890003644990137861868232396469615707256620768321991394641540638584207530949232935833817520521567374631965187222003103010857633517671945980151952656605737922097900512894955887340384442343129367303137291248099045872035102222080414372021970620767186203808178088524940831765042573808312716025367911773799358852443257644509966618428630885208975709338465234309851029934746221423884914736542971218025446812578189898552939918693286232992193027697217729873620982984108854292621671531429059547797206196002920023262303777747700570551173832575090381343312296146862697917742777823870546109138101340090422455128906445339251903779398204523355826724403340867999474015684420376739522343093081827224159805512499149554056435594491398132457491699910399919182527810967596950111381187535014743071372160347526521137778551623966864943065115261041537828939241684889204484000803180343407842747291246652879494217742584214168473142203946507635639218789437414205708919950358035196282597694199977597263752214967280426369000549511795971419301457685528986397022145370133246630227607311634562951407910229934177791743674920912041888907631261213426217888513782398872150827507769002710666858440662882221094683695262092226552559910922262689796348200384543218855008249985174889924478721867090450146335885730875274265299912975973128061528710558560305754676672221523050730278335792171271269365620685524934219071805855009661023633545070806341045142404706411111127334409010971643948749612576919856524278529125065536450256715280812504471604120785507595541163492237213011816835646299278509630897495079531953738690904088871292421464492424232249745042804544176994091456656858043597720730344352604794516767856264136117881559516573202354340596785733005756818066395402723127797246015347313314157474876458819348709558452457471701214618786592163676389579950610359630889399051201372612582762350462914902436204523935146369106763404224129394202438330359392082468063172612356207451441390041335165997514032643980362318709992007201524926495336092591808259913976879372135160978484808737967638816326480543456981308720769665615192084144044513490990675913615775601321051241174830575232251803010891249468351960722644838993542204417116980290042325358362140790473595852686181674326086348232314651709727558312404899808695512949516382960992038120164409666458697865727236483781214363479437597058231437323298197928776655378037959479031269045048468457046896593739317641054371488410541179736151187619410336248289343677761048906833976423118084321684536826809715538863366644148615060579880800252915695140587633276641372906219198889113581547666345791331711285985797557938488655230906158450303805827512992081012217509301854604254351444970198682167844931923223201533157594634082916896703398017524357856501033299753861132944388652220064175129474136383949034085343429819487561903264577842102474715610031162962592805075022051753775164658160398693297036152118950698445230428387382858515761079349125833616149524984478061922765575316456358900538823617283398332553805586154799466341364820293817811394065048064123175126613419991804432133036570933412305470099206934596460573803238603514896516258227892944797585235512066895677802269412665132578662871530411801332640979097179899965113427645614311559755743909146545043829422953415762131640212682274000341868704528209267473510846660050146965549840138892801177114191737301587963306232373332661264237282733362883235112620927468913841038456141069691594172638796797189490351266987998899723772786344123283133848637323982118768372479021932275592903626522609760686003342839335762679759135299049099821124794998634602541450277981709395396111224943296251939991141686830085111724351540104284217505768793676055392644923763183009217964038582743098341458212696236361939133276567295950288193072213330482790004716527006686206929948460523287151032005291842231035916571775399076257100424733945656359262986141919000914476483286055933050102725268428941194745477785950305803815874020807191184379084481843950412547699174313568676487550800309248981994112732057843166993031123836739538558997474082615083887561782319334026993362565840326560521497470710356698469479529971500060276465013232378836393433830247488028934046617425304453337030741690929145199881772988326968613497773607669643200980648802404134891867292081116872971705197875589981703655844568851552691201297282283183960963819222530542077355390991332354264278331105773674716634777731046140023190538973019056023457313277691958663872442402346742428657539743516440443563205120688928713059298994928321305753380635386101851834479711847202706723533107565473149967375404247444505032113375957644647630937578429203576451889218461561451562035811332680742211635392190835850320539089854625354520510057194961091749279998536556884672223618910218193180687061269601219347259582539970591825929976140943390163783845200597943382288093797729551048331237465845194056204650093134526970701204401466124881130346996930967732152253925243579044307892429584836484883842198946187732310026907763098509054507522276645973785940639687145871961361464431628736199004733174088906956680111751045249641297810996968414443204576160784655422276521727034032824091255340117774132266011905763070653884731379737317228181667718108002027382016680662873254231798940310964645611699031296553883193114570167606739614742606423223154252953170759412426435205534079580128525220356263842039523742077915749637248076069652362847054405025785351536984281686489075783236415717259087088350626190042654164413745570176034684084102364021959842841171374916719863678621978669048375021116806658135996748743620768985387084992009915150150332957884275785159275323206070235979116326878829684021246705701983196873944736061369292648539294069384961990553536014155159327370125137234280707570304495334263341376920631403289919582620734886314591731818053477063090040211912713986227172736502621013753273490331274509019372943355047633735306064018760475246368890821367642364041686033803877604512866285073777949238771761810935411460555212538267814259556188137130437638972881069961996837989848280626607579344609641324633380422681750180654655082278135600165206876284199242499976280874306632621473148084695298747129865087382235617522362686062189949723081588094512121964743439519428788771196139564147000549793651876752319198211750556158201517681959590925009128657613193999464079882395868063589792709706997225322547073859103798724840380416571934135668757774282361653444069820222383032260220035443839662789490420006748320551531270638676801046002873001599065533995668028372653607059842056844867587543011767391816894590652015514534100623502771743263622139196316306366352694631156255956729440363741129105975127377123999047881794200655709116122734977580496771557051067787371674781194963858489402892730583495197230962512483792219438046893505996687342112955011996767740439084209652946665986655068378711930509095743479390701414789858779409158990734430974239865525564357810405960498772859642531656915806216418887554454366251273918065448702155640748658179367425854291701828538700943983798546006492517929696976556285727337440016368363044364605093259105140302260038491247736214662707217804466075967193379431533908474332818037401523837898118528132889360791952416550745307793659851634416277762066811344311762705655295913365036107178484107964887519714367809354433734110033280243287357713172406893570958972207459033687723760490927456115441754248969000046676965603242229732964471888929337475920796739852367125473259669488304949336747444232283460865594477938611068480169371776866998063174973244427980214643067252083883142821947065745924989776422160841906886465807689820738935449344279396368457111092240125236686386721513175933672537935865754849984408943985162760866663530322768004365029828443665042797444822261261221019200255294787989523535432594989353364021261477683465737839176401326519149358814774949657501460586024788866986360510998100161837535858085626011389058961361819524567113183981862819340372002687990613065925663227457349151784556810691265784448305120340846409399645059916382995461850561360938035278205507184302418949698930286130632221958751407601425644824116607799750546943539097236293572292050223729016081592481245615521428692539597162008612723669773843848311009399098602807902261665564218978805403738596998407248777351532553709188007513053208769695919261713552568080838218205722936032450153471824342533034040828599503892057025415804663718080437354116144454127096415950095508266482069297830014822792139715657935245664999743335393981777261985259879124443713897244052529536014899446998428537394557353304773279349605696479335834930680908492722484268671047735458625959342063622280655828321218542778356324382429248580006300705699281392389011863766491225788653975033158940123279675909079050146488095784933666962879713441272305105165003735607231463403521920883893744882961370166021265962217675907807832865960415599647290935552233884722458382489069319401979565595281239150944614290107622869340068700551875145004890993085722704434543688928931740993179014973900978432794159611560860561678498804227064194829497185190089741803931721298489092007446418114040940666922887922198233618964509464708135956945560928354194809963584625797253478366003751986657446357828303994233789292765796032066045892829894691939282035379741492960638493338447182381285271932437084364058711387564716554153572986056783237572742414666918568867043964435582503244321901460379063063721694776881343389991595508481259430477661252428592252408869653605251081061420103236591893666237646189055480185083713333509220741061680331295588790052332017253914639129465505963153411650460482534114017238829141091417498970407985062772901291188271723273356082373269316378386902550753521127239873970071658258538739068676079660861684323180368983590453607811877021055461765004497036158684619870694269026342041245753494930360505033557804641180243584133437322244788199177623135193677311099934814497882078515418097408455641427695916398204101634331188019682585756996469476784843108535107536675499778573843070567172361585797314515898558815546285533408941366043725631992234665622299890985357918321344263068920637029381527297339499550854018701203683640853417207219254504287147345627294832124292895378879118491366736391169275149182660615106169552340827863986984049135087552079666376478623028173275506819983299022739208054477323827369004677580667923813262897259801091497282389294308443814111287753610369599988239385189665416597485733838818620434171587867905578419235731597909874964195373367804326127117789819948100837936713570669322814420581215101151551549623769186332676719344478360084984198373545799809557327239683745694000459909828927613749373088543447659782038608838090842230737754633745131958215928450709470577805866440581721790230359367018907792862583534865414240704118193454022750473564605314522827187955308386528918504815711895478895674055911154531760467920583454735571779055472449295439438866752220702944134790985326177518538562275093590561959933430604250959152672313079330354498518279124055823206403276019143671661179857683728582976097402479906951385230525643008894413314897843841547516197281234445094502109719073582265100860109155255120235310423742936086849987545279058888320002877864345514923992768944860420349846226765033860473438852451168623863588580635684971180627618625244819440394179892459752540502080288347508054596219807062621842999423830791737960798521509055865610030300752698363028898541147117880586185884781044033860564233802226435449655811741575540887364525706153622989704362343240402376389478341745210133800984007489101137983120066121950432751742116274032242807436261536339390453454165935751307019619548238992887701508193263203663900730852349514296084431481526290459061490764076753262234463273087957613877226302711385761901998688356169827831530260479193312514261937561837294470783217448478335713093396556257888984762566937141176692381352493034233159821662752336335360421730759479928028857723630692053971080100011498322714566175912227739820984096773241431168827235392707247082873029040859218403346603760524335499355321500276082857532804714732847180645377912857841117996643613146978677028209626524840696816502155641616067726844511881171014601032974423249940374849674006885402658590118610325802313138230420248778940300134328176843148782765319102628459140214459022219285091097116848131147414874102985926820215860799317264593653847671613494605818970771128079210613562943156636702909240450732741247241094902527386377630576977267644688047735297926942555138379985266965274561226487341396986708912293030414252228266083188326676512935253790160026170151194837795310155539028978041964427572339065680990001446301882715260246702243842093487338309555654945616993887819097469686015212461557474490888175555101357655708578296287512927763066099492860576597737206878242200089420448146557588443792711532784883647130113711554933276385309836726020308623642124474494497984517446591184028303718950743044120825131959822544773095197995908349490106511013237835343072670599147290816677077210319218791037638713074346904990513074152137194848108646850259186804390674171680638102156230251450263763978579342576470428050393247378329736409150602581742360416429801958553255067678893872211843464283755015337373970694210357659138449248891490450454552980490480348787457480900571662160066227125782825640975064495894484202140237358887410248777998408463019999870484641865664070265259410648779272798675266722297029114765927828180177330343093671365307758908939111091017551837503811353932463703085352591224784436322919720722577048362026156116911375356250584946671808841370944436023193152673022785639639821634758095625493285696878108290254370272024965846537396162532447890317337115480865992330213646628266694521313649565740332155642179038671010183728110580718152374792570020459918580507215969172725242119257284606620252891527557778817178721439895345465697350550390611089925216672990907285546290066888461541439744970852324684766898603698729653309472614762024612724014990857271891210702458597486772960867795564685218936311344385549177362374342090049322336202860991844545539822481090818054757427961631870868338578310989776715442439126669507974706159505123432208085332541817906346199191558867867560719865036223047364860638406972955472503230155343200819641078996773474170175656391615764773048444115119660721354738034512361851398620103022039193098431572839648534870433908607875244316320447712076068925766542289454721829326765589775957014062727381105283131236775744800053825444419553500695941566815514415124823879762698299199774155857981281474108980423447909921000793491110650420479138465692566573087075752463590590470335198733781007330551127689022854302895733134567341135562444232574124040885740247313394919281930624616855321440354315300386262716081898604948896285525318885773602409147545823616959464172753610468352417986238203779497553856864563748817764777970914919161496790696485142076303765207113616862678317937382279766336399298048745246264254759316281545471179045884874452767525043774428592127957345327499090306678959214052154481734265604172334385025313973716390050294871521410036929592655273846388974173054991726268292856379369092135424229276426698927502599787594670266350279753721430878503421134400458451588086154145069944865182218300025199581810730928374588819632548485609025137125186948194888028669352728133992314932367761393915863532770805590846170084040058705046131003645067955245286146162844333460448210278550420970637839536568279074192222639986745468619145955708605690685520929507009108472952743168324179614561208075629378123677815438007804730501364299260531898636755880802127694782063255437246598443167273660621959633860880725004880426067071537280250322679911835772313958236490007241218986172077264837777713798078412065486388181892952599848729550887642408459844149053007589008144363147175999720372837914954336431235457506053232836049058889323199518714014383047703702794638820826551147368275161940324951616823447902231156853924118659810235950045455717082826166427186088803455328430405808366657569482999061209126056117707807786277604550029365571491092391469666236077520742207195153889873773595690295374299388552263163327657039500051672307246462480992240672491476706706013509027496558764203825204534816276286173039088457887370445780717626909407135124222065862489781974833038774270615648635659402536411126660172157073961437167320589810210641605038878953498735187045562466899835061160870645580918433458679722430648520538577926575743728144822639968199838828596337784509429259947698346711348454869026982272584590342037810057623379726450825519068544742626169815231446045171522218785872356337004691219697072070816122903434639579610516495789080685902834654913664947715291124995289496082989344312259662833640631242022498650561263106633799382899210497065306570366381276894817006762940306432561019731582807558988341565688572609124827152163080419616276568846481393544184854046770490498845122846264894436483966017884376493110635489787619082911864327009355167533675371989326854969488168139270176250586766201784439577064147644249584779910440601099411165528252724023087865059256344538351439882982051623363886285080557874564678066519467501353921196255085898340004015897745257576271042996433059537501733153451192093184927197569690730701150425876000487893181468227597077829468362460072020064992478279756592807431806346206669111592640848325167110782797574217813199955862844900317403828198058284307707545543486298257995300033231579974232740440540655072286531553152830632206809323782718735633264968646894838791225611362594678295411881842080773121415115562303093186427452489804107103523785285293723326183608533074509335199877603319106877450361304936497038877557347539079980297368104348573891385628252310109247124660842629911253867421284853450960394779185943001157238762929463576543123685156119840852036738856521783896293290975774284181993256090497353721007391159430067231757664354181036841432415046027944065990121023758290425180716969663314321051586305332514280833697713400298768460643296580340851481751307334656699923033970077629457806234393002703572832881395451854517137585745246172603298651262105752382715705546876770890219273147772683197756604239963784785038284239760197603289898260485312005806237654794069668341988302818897716401900054403297489312688538916617343566440006776675962095556971810164516084611333537517751524603806408590576336890602598846983135640736532631903344195501107436256516411167251401820641559849242471909885967165247693262503590100977660842230951455873715256398626108806735817130045048343670555898878070030811395498201321791075240118193326674986218611355948522406549195005186042937222402207922077019623138790968761784847023324863124020773680631585789592752478232107108746565837748250260432406334412153941155133122355111739532864302986534863536124951676890083978475018465351348580836492645528125960294926283853007622877998292496122109808266262346351485292126338926755982197356882059705801811987005228486533492435860198445763101392676334315419123394618339783473670805586890612107548167298714028773451549223372694491209089330328756991817357631826861283144099759585266496568937428643800344504819260452804960211365579493517091105504647803810211672784292264380618436063947658031319867490094677539410140596843157085755925531183839242000728810076737055990735363779468026809832047524958480965951818480078200494188971771332760270542927174119342224656323318948644704328358666144422180630525423342018190131862859522638891176755056989548886248505222881705042509421101794880690626858436629473147628079793219366028958269523774553416918066247155008861734372675083393884837252835844168899623980461018558125975470246256006572312598734499147249540202936518722102429473289835055482223110534700695209820404947723229381138457719071153555147328982064592400345598282855277031409392997584258887293466516648175735772347860269478490814218061413139902026750353008315607953251695232306974837101793727227441118105298322758340345339821144880231020771444586569768044010749722896237805359730378523316917418191229083326736218308630090134685449165072002495188395701116980533626973699054152807083554345986410188009782910175488747984603913886481926466024399163349954199216271126634240242025476773131698053463808511984253250043284753129947995845979290462684615546283778158861244526328167453530376039497760440158494185269994269774657458920131230380677762469557832457405466533911639158278439442471067574480645695231019860877446682344658756640416107277574946319821227953527574725305708769875411378556877636360810826534814134690768413351537186367538834278855619664301142373879159497386481202043157118463392532769938743233687075038409456275397874909209744011734097433816224725134086681233849127244997234696467108823176158756820297225651240221715193049375844992224103220647760580152470235726985499761990547583202301920628622299454792617653529912781133635860151493357195106105548881716641291209933752589488945226101783065290663235455858483110222269708691377064961623201090438762573752480448550811451972969711794593064009324075021685385630058724785701386178724028359050333347597199115829844979665068855364574932666816955898033720280124803530269611103508248033121184066594995440081459800703681917790071680340410337137754614643223330587852570052460729335221295648506249878322648220883766993916171279602784758019281073125707429147644793679274700890471936789172174244801046486043293838339752213101813669097502238320717224298858638749682769613613614807843877901717180630820440975358617405017130327391849254145051672960435948824974371173796768818964449181074130762759670572209082759694710444111494939886186871354621413644174130552263516599058070280635508687896051525548096224685759773223259512543025785961305365708903271139180101041644811795325071641433541110718853250748787936335899643809196806715260197540228604930049742259810865213779828107246866431648169263552848564975625933192025871411997613570795948794395303769750276557183969772699296625537087126191010383130457187296061585659416270425564585807230506043895776326640312159632125816369035184913432285463860911863420056602276989712588121048538916978296236026786926384497115003567493241567514245800988463766420043960246489267679722676078979849389504673046581778791712753940369586380346517752309620689051990368647740956038454733979089073084973635638528942854112561527781848563103544448315117527816514346312147543474734739382305741148319543583332619877741864688300051712528083364096377715547228181646579594498759553845529422048263078162533029412185667759285782020128109486938300211481410356844805455602364476232513034919878290885321261968425407485790422355031089641753168132607458978022880554757301307144533585724928461596284629063375318176250038182858930830675303929862076366842092828666781014967221896031631632609081837770029845412622291520501837901391534985832611504361732374283055322006990906169278537102672095497191566745321493420272938270821565741259185134411038967050580477753742533108638771335221486153605751374709253465562585823276702888133736819633609003268400816797733208750688551008498998496969973854152541974897801208487793454260998465804127164849728677277732169890964679091631527763292161431816200856795534791180919841941211530384926346879278160223840015819517617399184978748142084770064115315573283784898876966764764416633849564283802540460264912740035269495020089182770872638831212106522177403274333191389988448527492960539421105928348475422932612953976262412401968378772963153822317119736567411543543002508952354306503938495204359642283235867840830819679777829464661365720560004241582531907124101341745651585350918375353340054980863220537159732052507141113003805025653530229668485379942812146259105980738950823493196844182145145444166585629925543475991743943897788502436059678365361571287278343500772407308877268746077311117369300254486386373594135283088279443286156427232594799634675329822266346492629522737637612832984109489404995142582756177123776096743492029871670195817343915602670788652451858247329660911292425196995586215017182837898194260610675638649177317468690411872654437423690917341339421114776481932357131115693520806187560689830738960093917275103341867641378713092154517733463681761370110007577404886427043583534429781597884232044435155356347475061549333623246713965052191765539565495738690452068921871812389425849329256930045833297225391424529096255871117639993468406085642025334029278454812326174897467578068129684207863281062224683758139168789812315254599851275782374777909891774203366490741244316091662245017859406509164328575432573485530120571596788335920614372442857061339976553856293384289667802063359749014785741248592652409158497042261863874037733506151270677683471872259006193158632250139717325829902707119297901325585791273171871300478243220476593444918975319087230448191701074833410753789376539692586360051613958830419463631937296844442225011220352308529695699800591940933395394578196063117036423233658915201819271529203426355083753386315263563434695863961730319055606206505423189573552372069093650336702549992735635913762631269478362946986851515714386026620337057209235131643447536545258528265210545075568664594690494169198584123972612595527669024920986229358373737089759460404664996534056765144553519721423494613390367066851455291424957819645256428706741548400260575335153584536341470795257321951795824750049823631311921526060089754142399342481699779818679157371907583838438611900490438335802359557837005525296779073710957753034799232267971971982606565009151554386460712874510622455115976625170208932306218711461162140856285546242031215546727598139954568016056750247793896497115024159560692296015926304675568162690754560663202784968523070984721556425092631645388431201614408967933933488781587874518107166391027335168954996248537670165636335003467180029112728066569905113151845411799650829005160454066446626167963349187630060748798545520235252886491286914015129295233227248023840500251545903549473212745545554665188707465116632089263700578549246436062770175800879110053064282866594940162678285910055682828275921946034558359953501765232019051902179199373613414672655300487198333632383499209697294022151253096830349795238565743348967872581966940602346304869855151241077256531120336501066803571192032429261748244604702933965493307880465608627952056224340314719417690792168687591218862379446989133397422369708579470455576291533188692488003386786666905539518457427280074517145513989381465989128696860450121442497025492112886292737839033633723581446293468579922711901031271808847777918347677976600731821460850076335714373278533270634747980117675618603657828254207385967485335655225560439198581192841778626042761369254842128716318206903591220417898106444316751988373673461090449187956812476638634964268233823848674042988820348692634358815095256426137603188647219458596029545560904086773807832043033715657456077066462791948248167662061636407321639500731929913108295134402347628642146796519822967014584626268776801651611867854393468049464732280252562336378983220438379371726879785543559423459621830314315273332077708520824259673142929069971866870789796716113872999488987249072121019943230764922736689787336159431862872416966280696779732852840668765243592811479920881646417937636554209686802484553133539272531330140883926766443026076552476378661231122577404606801102682538418967694362816905260025194543269861162745556613681529712070201880474431682649714649438174378972639127484765721064837903042075023155740925442533644097973970053492327239304933898733780136087126622778714885566185345707594753392016583043953903571617899265784523475776130947093360059001969242684248289106997556319847083298177061287395361989701589341223579974063130576006637603802921927846024514153961570512496903630439635976479884391979254767435519576517670103602912522335410569783746822276070617320958465767385683134881832227596178826227802637901467189035283189081241217180801066502479441840448454626709613374256290341221478589555342624742848652275593756254367134073479360959985803393634487485860097211951218648003952925521861668135028120897963216942908149443655186114916070619603228492576557329052945201522719518178979728208586217997861176234999464190240858564563613827104148004732289932032913992144102269809195589105904469694143669537340678632222538312578829259894294442980840841576138768818712843748240615939988549552271332060909655724212406928032762889832535654963706820271081728055271403247634820607972707386270972880993252761708420290192427346603779202163762701432999716853981650785212203059183706051832821154964565972936558023976643957029784422008518505712643464807621059133764927978810329882432208746420936011166458175399484850562429214841496175545324429219984387221835690437207218764091313977704941929866895315443481156699377453747130196902758532079393427666706924494010245985387489382223504925472009759243742399504879346985013412343549613973613149234059372017267817038312801224818296470044076030287949130303801082394902888789107431821083361465247249922496195777253866061858777732869246579628817647234033358657499985080713806800207959176682848806750429880068653868221617021697003454282288457037143914415445564670620386801455668069019422766350336769910046709288548439837770241155098462329381848965926271573537629904618061664736624651577414778997021058431429991254876884648556660747298368733766322168317096532859194169039527352980772700779612915490110786039551355104465551052414801095603898809924842602743911913071421971189449380576200811479294894191350742554377412729841834162533185222626267137313696436635581986428558914357142614793791628547471342909735438852681597570889463345704311955309927249345855848688952648334249887853478704003488921415390764572823118659175037413492622040850692785896338015602100004640817809040728394525324998795564717875077851964227695003614616749893117994014186680820929945126176042353479516552993017437486647501728388865631835707587159070387299720474230358471587650743090415743253515064817807364278440035840677994353985933443519060051185418026002841012338080040511453025985877769840154975370072450682186762018720003655707464217619613891661819263473304563998699817554069231733586278085078104148160616725861696246872447892554074194121792959539560499224703231649674949768372126657931712877159218844487972365836114497163366670353795222367425129806381246242158941356411833119331285655559867154207024032350067034061631975342573579586404043008417136803407006785174642218729944500533250349908092913940342178018323607723921261159232934951575824191847377795736967304724946216074440765135302471709025569567469976430336960544390759850837785015816848619118199238891918767495747559223087013995105793562760531973027231435977528482252439968253427282699248899534535711828453758090286289903113265317339200177871528035970426453255370958094570991447153144782217784734848951096070780627534700725552572160079090804715874969430266361907791776667966363424169557661691774290806846025912086398132870836151173141124469099010915876421279466417656148870944456220015712014051759298161121631816239029134872032967006564842498569208454690196911579377752126053580449342975790461013093062921751136502044902280019680794563166826997808672453885922104779814912784327121765991662954747610122173449128554772812684481427896703043231766900002691126329745512129193470979534959804826127240394465814257186949553191713740433078974141205598046671233285112765562649729613204655090306713367048301935839361623696794491773137397434585755128563671994809054700881260478232497723848014000742919945243801538177020443583519316751282859293852652677540064234801325897504029937596700531327752603592614123583835428364729330234925429387830772302453424486805975234471232107048894633011333251949689053166293041622964603226364552669727712221111025710823908137599165572731028282659718589512588426661266787208930713468640984626299353720893688924691400334288636940377166383355387260147471849427533954822326204424446228749377210539333212649208155191169755377490736891202692925726729789949855696618913307027177716994406793413024926286575637000179278750619984551741943435930300986043546812377138526049891218585040427790995114713557872042477716269640585538362454102698030869222182060895196443376081968246787779577098893707634600649129888062729630737853466654617403281520860077426774940028823740405620617701647655160245678393895023471359733438557048949050398661154914393847273925637664880361006204495983246011587971229320764201828770444596837447311280200864113458169386392619122306799840095300114698792179147581041873876654381121630351205064196221174747326844348396111708071396285757113772733820169294956664864175082113604796903220857450437044218336356512651043089737056696783442543866137620874660710924176979670198213515120349468185781636281970529839624337219347023988060693849441682683592072651238703329763242021517216484465449513034154250039247142480277501508832324784269197508735838855430888148747025591976649955633899097056153434076649496982740818114147431781447820543601158935895223414258503193799071518185480940188760899061850292137610425316145673884739117411032294714924484992874774152617948857893843174189961318527784535112872557856766835017264508660690636259827650555598544232721131378344956007725264354999603696765141191327201725618946180480117182678489393497245070671217483261356838197517101028815849389492237338480260708600722185678074398206496152390733593230969887618200145533776114576751555129766330533333285106708141017606099015273641711782706943074079500704008163818680496147718987192425419011883253389078256888565879109258677708840871650092033818806871773147882833582948358045824534087414719898619645734357799571584426457472708078004215963465011280709061718404420654646347839345602715331892222544508892925184565815571806332220725357566711359695448154529628419231255022147266911723150972086315249587611670224571542681758360374843924827178467565425924132897075132553702021323823680882075099780658880043884296637106711120199288738968250905753724940142463536949545727662503413227768482309791528811633907708245901265560939420136477215649012669889065621219703775540996217273781273445879304912753375668128675439196914015142174595162812886917461655014579835881782204632344359382719579372030407379506767214512490343286769650750753584849419866741567126686324150416698878585142661896144438892082172578970290414004861002463053698865342375597726765140316812783601138767384734765214244451110923423274353206116912164821623406459236725036715027512741144490648849087523942180983573342507307131679469829816701354294319022465242693885323300212720880338865019168758111863437968713114886914177155358628118613285942887150367092764894808554360795190506607332788979460498794309768769492394945592673533030387002447623591669267927421814066007982265520058022302523843283759704929822676006817756628412970824479889255576581566254718544442600778770229479391384285887595747200423680685970069373729167265441265059252444328561079571184327583123893563380457285594449769445311936881562932415048030298446138797781709157798894872152824422482211300006593964314037744782471094293412493421010561135263074837309061166074390924548779146031166151097222000040717467283305191864992120060107580688918528695184639230565759699538604683700816723237107613491058013919065897004782827063962575656479609791423048202942677968176591259056265095334468644850970353704487960126666378560179734519002310898958709216855240159523323514107841688449312694106196053580721875451030532193201031813396203025229480446172236770105349948367137466267692581229362938470661904887766306006779692089248054745961054017084843593549996855724501074846494868668552751766488641320531505685583438896961226837321121419472033851057361007796953469338896763193693228954920546107070975395344646393874886901294911923124206595576662082980719284313075623372317988873853001429289878027935776598634801628449161509560201289526417266001608842935709180261988513989925595532518892920571407318492182229458162796880469411619060226058088163010137871141646029041524044775645620225813655299003077213928238178214222775373890495297922508542019988039422285116977567045168144470274306911321607365700859005171426020506156923134095054402659103527725855479259128491458280123247710541743250112920883901323483587344009225721392592693666689160742282428325417285092431182395494551124128512743346866498190658396433162743788438046256881858907151523771031816890310921643290321859603616395120790387711332653967932810752379672670479299613517220281275604284230198032320227683191209364943267309683611964122857719571858523459410892766803899232705971869285792184661522803875629245030058925986554350549494861168140226508681906031208870207143214614288069572934760290680801715728703690296013399616864529809815227589193318667566986802640501491820561926773031916375482349668204599819249339320462469502266215719206374848818096026441342645040368017564247499811825714902490598483572655953514090018538639960093232560852611170739650246556063499725365172828836897146071811345370143016858406690974714687111215924720438435827267650064348801150022689721886905065445692579311949230428785187002537913700279466566030263572984427099233640627107666908927202054078202441268764532478255944174227413934191918261397617845727421623642377984593566799014730896058963098753002256149625153898834795225173049005437134840800829760078814447233270113339054803191579399985855473831825127932929163829818566050920850077661866843490116674705889025560875689205995148657849656539762235613392645309979639703652625931237623954169735412060218337902117851941063642860808920979869384556524341150206525811048216158938654129197540250087670384387160027687299872535569754972243203077753995723592336636112594712337958385421754983943752309732220369378807432050164279968492758984914646701190464430160576010853846835814577017126971401955262235439134597452890320852408842573570908558193652723456511375212278227738249885844471278699870860067237709240419355360722203699350268866168671319602705013556948615436569336590703912979968725647945349733647173023902621047879615086528035164547317750674528545917003096648439987448078713943086220768293218860206694838169913355776201335746100112854084703792827321671646012624790431090823812049546101870121572379320430854988676616416303029511769460080754837996773870135308167660638774660725416062357984706278337832566093709058960704911994728132828756621027406248729670651796809083958459423143378138282153630325327808717056021591185864754913035963027958595181031785081435714617086171664437427243178266764189573931800373360315736030779818303899765244570012476175288908306421226997916507981481906519355106264737727968582783564884765199257692326285274969668452856698343966094618411526979435436080998834398646594710818959518509848172627367878914501589769763133379767575134604419046807811751701667985606230557040057583306305118863227297790686217168671053112603827261775846249541479723495228800162379047162270294203465071339059588184943272184650962785484628299501573861746267432138526738069719329764001642753930409406876113697863081457282796273474880410142636454190173476323451960429935818669014151078663818886376629050145495122181305786301106071280695295082124038057353330951184221072239730621032262088097349551102290443449765263066739695584125950862989621867134167504037065417599035569167405568458376260891734391864721736851168697618913514874271816067746560314622072534706504123703432485123208632125811314304152519886879567550117721067893547074834695505462479103245673025477556138927537794382097617014177727181952821236394267454817246771864355927586767352567793601827616057189687818802217308307939705770480603634570472163027003244600843252466855628606959006211233982547178271792684399331545934762962274983308693520121497676665917707145012468747941484807060182694784763407407740161142507356781752135159678583474271381036843492287052495248415065786409930447876237625810325738028848836489548670710904951416857853903341663063928292354555214801124572596956334317768177151815446824559420095573331145550615514125535184369407364451950205900770627271972491964837888915670043132872978298750011275986195330259851143107415367630695291991171502098825510220044153088998991545920750127774037366157687467076522133533895928438423754192585106677311084165231956503584305406022020159170193772516453520416879182382914331475785916083403537465277567413117948027339824632933581661622329120652947377304636699921658023561792577956324131749792169686092013774464227876282661212644998945808102426106952244530366586126466558307870468940234438832241353998103611755362028934509224513226189551642148831102527873661811030177472150564066730054681352118690432561695404839377386705579889266114551363920710594636075817988419362616877961026322506648645295502773813648944659105200733538508604344366469212490889341840391559482963221802667810977475324222450880524902791698203898843603076708549301296704561321957349865320713132646374203104063234529973137584436947902812926231001930372504164049874298105030396636884793635982602634007332453982043668469119673515081969076848815891024191863746517338621463231633782621025259345062980122019641230518681591662363298990912086839504092765807761101143101671800743749382666679440606884742106282349236098237334728943252677952404449574368889926110181716247972857911578303135888703954107918726430798434735253339887558998712085988994270010371447866269455574657438051080349992398945032703321763409457420473001298666595151933982115577849641616801353681225511176085624889321648009936283995297156851579152942607392927773868991915177255454643007159145011892049892501575110651460943909336187244284004338089191375981080155313996006768675936035226966812831220117315956900936783883644904627695509177216401276892335702582472044598579985143342604631115900747108299114054675619714478729086602556228111861863941020051184448873568269976764250256008622712190439932946116274884014374338364367653690008915592298304644627396419703220372078167104705558633330233869670146360641736252832639364725918873361643441173371007777723579784902054420815597445430992720835600727625663799798414193403549302302147637629755357834433495389368336555475808427589477445180786195418231245117285125190823089866810086865999729572275840297918093420814096058866101985133230244164174611452827136475312859649946188298664142763074603535135629617606843973276847808520569460862893024721612177067455535745944178438299489046563277995265098750393371768322817856031831546641087819125641426186144245847866626858342334146826176988084870899328373304758348407383470355948712036044854469206921488223856836533655937930479945826790066224902829084594380423427536563340983205918758795606321698384916153563878798996681852351273750827552449038555609542375885456437399063418559731880453841926307369718523611589519086105062140141296458471873483055245655286258501025093952243953977529671184309319300164806694924604753411247149901760252003049534462461974473214034675980367833563088266615011887081311243224766708615902119839248446085233365216798676279140518577813589392450475263413750399266833233813344794681231242475116738136597205770181052968620839007233033101239837813501057607249082460006688866599083459711621780848887544890019062323779267438196654906905718461639629381065505779873130062466479083796482984248388171733005067225675747794121525409872917889306110427679048504423081506017977167433510405258884063583758994238750872149800635218864393520104326308194179714634553062113234249862591062930951033096198809183029944884916536759142533047654236829035626161972894862687211262551921852495408216154563563383332259571014648206749097897432629542315399945592163524110314095976893523425003542454566243220811480358277702749350031808154480963830685193768575783581861974467688471001421321557685355141732422498430262492188030176335009784976859188371630027018583082881965776549240357366792990692823913054705330958842917435154253552927208609573800574888703912569330685427414235659923524234001510506652646700102623052897293022212800110355769464881457455696307247546908052044253222063208073407208068958356249410098512960602598057788190903624602494392884147675466483417998798204796742656331056245625228757496923644104252579922557983309008803770656881242972694821673643785919438662116978705766777720245322670589739161997446730264784823493812490870839012698298877653361390070414209516294182784411021211678608389045285576363235528607684807855222185764414424319435648394900728810565213560659307233181441609175059238468164381427994512128567773889776750938074858154227500727335486362341801946979344776653941315519451050970316182763788591873064989827110335884632166731673664753637186352831031105322270843063489444673163625017782940366545016356207149494273456643159998457781834088903899638411793673890063649689369067669657712113781500015795983969398236308742223627245761772596747322467196270641778978425556084964741630128162457209203744554188784829580689813032691776466521890520195938730255359178362665717632831009448653530323335677726916207791485238123498503602733080998541862704847809063487883576136969551171341986363231725153514060751549851084404303964883032123391213925281603027326776376888094022833494029036780682379492344513935460535412657957500173569167701172952979953310833030048675198470009369452387126705931915921027371073079871130699568900400212900597816433338705458335565231489657747042711145242817685910236283688354857332794137081943515670714678925596713757108098017465265653443572778280622755345950268281978654293840303331669990148344574661400336058377441834527294274970588039561198703598133592552301003996644293166744295466557353855079639098542596530265135561175316421426880871669563216942144179936138539023075410420171227461178336105225160775224233384153984910696571814420945798331144656318666334203027543973179764490449861949627547489576056982411621539164797183572025399774543247651883934891856628488059163360406071292426443695191201547845232281507044956204511627794776834641032148928218491280453760398037588467859536257679881564580333677704198535392842891733763315524218616937058833058920221634068774673135844749055645659738735869810662291497815548574240594822522046365656923161431294814354852568402043572139965795600912593155857442518490574047872344262910320643884122169032694084283538601291517619000812551988426356742308337936560105440986947692758910965849649804201072134026326560152509836512785051338712817126650204801370401857324357773652136706401783029317903767659534643994931904388530702088761328227920121193070852834211123034840149693128517763113573662688114396208279291666676808850892234362718591195998589569829178665406321282161978813693895382456541199246858599857590741346936602512162935412860679740355687480309603103528505018047251240028206256926782873422954125898596356954961021447245430968068462741417657503444326225168138100684665966130858906822427200719038834436560050133413189177480427360621836246389856307284593476543162797261166666164908452721799934077833589611146522087050214127619982585350896459268138503600870030846869596312367977875431180699115099893516834320038515229154941547900661535162801396762375611286547477830079120869514263108622014302177946028526542226764395207999413328185862803788478571085950360304491163837697772632350904376198172011206333224707165844634142738865993562381756891934593753804993439418411195613094194174605238124754863548089238835206152922058564352354520390776994083098580573312999251727120285923179691357349295561197712420567052119929372763686487932703231341905293593017988613989813693833815974073258116351215375831727489725646798244571964942204859184852513185593281638659779184157775438945320491908913943416624983145431851544936026813118131792628360666830700003131525394290623431489206355970091972302682381028917669847266819710178328407805582421463215130732914260410830328820198137882475078052710423262331170363299531797231774694186867783882657023648979395054177468144707423917467639715737761088721020354324140421765568640030436917374406205184922547930425586926719101244373467358638329392940117896150398706115165851999730986816819532241799744180103260618036960423498795275490505218971511655438904207593835292374891061052788434890353285912517133243247395401620588607458682343615532525200182255939907076651278709158845220854610714287905482595000118924405827700653666950544470420890640112831955285211572812838752113011695872748645571700668816952020535055152948136192498016666508427446100924023281593165077238510076813264854572618473824260049788534818109967941106980718791096615729998523624623753046553092821966911070058230968213970010690080212012022970953076527772210089388226035303380013299273735900179884164064409296655205192752212382526922719143210337407988757904629252231045503632286180334216447221619463567238958944825214660729416494464958254617691171427516318809275666980048433379949911625976765749719542318668171959941189011794972927206213667591077314129124326922410648364883183961086646976218418215935706727679205645775744902922984625744795153117754706845914744348331871369265735230976870512485821199966415238326682272232312417211868597642281284134664437537239190078034415145488949088518951929712290007028984852501313333204380034357111616821832544450532209700946678142643756519240562149244885407291342107155540309104263217562217630651773705425027538359080918432065122601453927443179761589170591325621559012796664974715721054232543796400232196017142554147327238759802249667510819751618446996729179128589863429453748531139718008442233364643829013832123855328066460477065684790431629944941874313063876242030159756290940013659339059760712842099767589897112057888159174565673446445517098031617606488233420030919180241302744499982446129402246391665144353264566796284191511178115187519612813645425965460167238644064224166308461408465793197974687061186069412637209953368559829465850079203715116598807390237536470009922450269426328930663421057262212739680733513476614551703753590396667307604151783689893970710382399125204340156966600787880972750669578495748204889623802763586475273013272966844399776920297597370720382145166048572496390482642185628718849151073030238826466967925858576958769840547049435175556001225730746348670448347559648333610493984693457682644789105956473193102572520355550732807883411654610337994511853283395598076419340344863597040992564467598890641461656945587074833431030470793550785556144881848335591018235295732345891039210348998992028412409813704043801265140472629967308457567781100407134934857417804612001853243590693983929134436337069693513570228106344772159249604303505211108631553841012781500678160830949519181040739096777906738616321064872648368718145739086148361904851774087226278948352842985033980065551773795707870091548026847759119048213713244855399867036339648453273485512018158410128731192477518255962485671900745308416194996240455485578247986413211434690568667430455767017394632256871795277227206819244886342066792953596805929120806752848421240433103233716126787128364128927845563531952382216927932064218627636196963934643136793350413211383811624001566580024959039673698991833512237110374330398213574847959511009852027833743202952863913364170285215047526517299711829894953496230967274689134735155345503211679991156520966106150215339108974105388594597878325626085273435147060846276513829078096926935468093249973758135792488248424922318660069562154730436752054621737338389864062476488975565334076543087403257307711492004938578775032170840082084310134591887175683813089452474738511392762098366367412335652733386153202960927523211087457956415215290369987957248794824859305519841217465270610490106456223741394464001399577998354677881256098154615423156186106209854857015542870075975579813702714748035704672447689536056760764626240094606462839052035378790779132433449317635144586896864076370687875808616165578517584509290518106217361923316503190818775307068942819693636530739766907205228043590181088187904082302638627391833437167347718977146432819204453720410867179248078524025160499067857495061552272054748918236305524631627572602010645102569919139376659346743655241422002009911843441135333578690035972471269070287087301115999082984698824115085038102594070641784279681008656053368299499282759273935442111055755536087205358969075563654081264950943414801675235991684095038612139930190028685329563811531251679334313960699755694404334516255323657654386502084711714451035691952426438204679715976371012220017952541457618221794052784754654395369211660733822547262165798563053695925202692313719739704140755529845177087749980918129149064488988456826522416022528612706858326162436908717095999156179496156198759489939493110311596548381722784389424079614298417306964764458854905946369859795680455217661293377470712590487890828142860171808133284886721932215493409480362152679019275660711136895221146063597364491359939372789557590230441456305678935538148850070982586863950895392300289453791969856213083977781605932649183104968615554157926966126776725310274854688806516152991738678377125965150834745805256883021781654524971146095668915561479788563408148582243578562976954346789092652948500114131580688852170867991337800779519466975010862184852363906696012534888633780466129180436914299523831602605788709313837815222932508642215117078782980564563570219759837961716772387190495422227853755980512429464967201869195170179908825891791973239332287974664716227032319414201048622620364138302193391411061387638928174951993303722346928273276254012212131169337196874579445549001504305043324925959537672039766474375989702746402710958549261334869974449704299261215009933693981155312331696004148900515889158898230009513869827027287713634964842395388773712745103193949735552675657379026833701613926389458982933924962716914356695799053718167506900930552283399191058090452283362364292817179354870700042511371238404021050798546071160426817078252453697508003076610377367442665347473639316791676804926058024932942682471282400583157828561281456769880458155862077865077331671475248613219057523350504785132768566853272605131802147556571216984984305904488650767530252708127531869544288366513649753944329507458904861049363427125319683565170240191277488566356881360222841064484263752266724953633264717997467847033280647786036967607791639078015448546408668288797919379098326679231084360801850878539710430328969998273005344786988121371241840559992665077686190389224732639208680131552909741126858897324408655735386562994891338684599638089493615021938385189168550292833344937118891413009773025899435682966633404405059011681561833012682751101040920339220585765109166412120827505488975477743032471263312708025095965014158083436771595692696101450810292507673616615606180034467092469160633144455925024833477618313225225222529967691166129792142447999347387378820654620241552424115283934325328482958989349007219563560838897806075753457143533851881982528939119746813961362788349369775053283921662380729698548816619277562530236104578751431702890755041356370075233598349698483261613462144500701743558473651079000489477719910825578257625495410535671835292796170877360515972026623098442378347313106655587963958019089997131391430772440527381883831154832977561688709360910272348657107120191275370698822350833998661889109437525139325335740264458658460453813229542125942090338453833413249272329656091556852079041060423604178501907238102046591065151483078731567723537962137571918065362943892936010243659124871164854855471799161799655692337005406655656610849410332530243140340467171347766604504855623073602239972707837279447895578004756157464028431178956645818095114986729195729156895859047714843258130748353767728605630115830104419279062656453413183506063155469928049873783205827420222669266528881675530627147352893801554110685556978134137848029421051540740572811132007760597046891647572756816730687282453718905189816026583112332412256385979143987606303406088030547216803848916641935243155496416932419207707193195619830061571271133777065590352004383739658508818160017798620653642473491601879253946264171561696946204075795553349947854266542066202715164525699354122427916626705821065301082805783472105548714217991881237622612249612961478461461965832675762337487494577341177251222567087216505595262602251026891983597803489926963029599339677410736187989900624981931815121447623558261147785309523889711756602632726379692372049320994277907715622409992811276610080900616943099489158174106019335443668025279882375574609338757991619524455241363858349386174404637354797006233142006079146214208173028272427797795362257550139723589738633116410616227326072277636821475742657016238264218990958519217255669871801815286708575775571596227360282280653079196561032125890042095891726043145073369536322829240700184029379654372763945437483006099483223593640771679481976711820722574566576548190498596821414440678671752946027295372429706083221392260419112317347999993601810185616845939970129969064407017567902423433044584599294697820731662318132122699824857105647268149152404323472659215270108633101899617094246333674546396053159471267232168441385501163627472360016738411633468213118387193463545607198347639246924964105234528445393286167411462584927525927904927164268052914438697255897871404629757320770168866968115539360733500040502046559256766097020411718724894722719315354530688513765799624174984520073849871413687448745790692155896584951996984748488370024904921910226603139390876920536667125719327126736678493448337950914215430774028983054753081233519011619319980821754196772119701070401420450989849610838013011818186761608977587716462165943079467660333182650591222697431970646719922453998885146283046832960618937013865763355186969417296325435404983425609949675287883752563058414241802213408731600157250858596389282996683940925346617024307528179162470900432711545953295482646856904584398555464772590776839470946592147111293925243916298216334672968368355676725305244760360501314651735220928528479694036120375977890629154657625214265380327021819251219961945204453791917301051990949744187705237289659619289435204453502701978088786200561758653479248760441657329910654961228188121620557915593120075285286602426086358955596991348439947595381057331811988326154347787025953983815453768185255132925952161597883368629669490163521335725945921213254463671980985629180430694212296280645993605451248564824070615720415449581724837748354477603133680481837793396928052216087288276150230387831795391624777457591756555681020682006877386157939483414195566789151056832811418991842147609873410990802750768665862358169642173254922788950893734176221662328513405257725511831227397310130835510596126635049502332893466682240028652726162526135951951424495972450622136305646222489750019321600846972327606343248346514033199713494012205697386747552535172762337776619641386534964745009657252452499479173181179432636220217104896831570414141371649064250529709939522400267165205627269383515985784081375208482259872035794933618704298791495064744299354519250273771044382153014685912234748554413713777305753834510435330516197793872783682845098247531653085461656391417629554733928951798927059260372771115769978355157866600723533673526040870456081489256226795220974070763654147206454086873243559171701804776068546283719357162293301164017269632473423020776911229490311101728917159436097163526717563537074516553664197441149012779880199727887354790164866726346927833981847443395575554088764327635192333055269160015706451370784869930872765149481960524174004342627466439980908854953151753477624071212126056263341584611687966588056034140579396965966654516373322112859556909074938600645065031026726911227849022426050415731047028655729312183040828872097209769213893953058893434092954537995593389899335874085770812127368629391191044411138094194523594146959795816839026913257006011852059432569842942477665242393962542021991821527710122614388703722455652102512737501808834254652683922519977518069916516234195475946685013136351377601919514523286699427292115170576109845582943304245426680146025139047778090682435040132704927318131005926034950963410301129043391782722552859238219151873203269735305955214629677075990503136295890187557601984509798121662515820707596706813344595529327123173780101565512356061225075258480942313193986327379741602266887973208766014651591550170376380694380250691069016720910471646451289917375726732760045596097796966699529318095843212199156112761690189601695744146154751151890938939743022372488767993933859442834353449081616862640721390599144058247330254011701462670332164770681733448014172850860524812328383485472106100817913128824898840061161561733957387060107157256237040918160498209575794313067548504477730474667713853520622788391734341019438925097009617331369646799513550938205234196897564020503806189859128533454374095877897141966834974778631084879233647193709843268798985970446609468547708669269875325312364722396251297746544710949359213733182968518707585382974809080408635749009895625415292555707755112787532458162000833074286948583739630178644115600414942419538447349369341638252303323719746287477960095684187158703832908070960535162680400800345830234054482159148638977957160469787252648528029729770592098373229446107687047052517812007390893135103886786465177195730542174802967911516750412020034467131146160985047088137539502181556726093782867601959760655939481709516702619847893363662421633648692438449368057795771559323655387023921762679768036398785233752394008568611036185801011800938745842217730969323307870185101382476953038919699772058117154897716047010763418366806862795087161129125434405887744130622781885372055356416601084680787870621344260350614019020900302243171684450157042765624310431110044335292553004821852051154583168597011848240175506672883654529787937546140273089212284296264888417043456760817536527614494388720357934710628299457472771147113979445295008065635227352734205921944686778578416214326248088302994233023267330875316082367640789935391376083365280814400157143473945422768838111116126716927032009039140787800951100384576915892682226483269793424899802798555168972593445152583885926377020013282069326442722479340955076365092466129566113080644464793724638329208615273219657029004731643790054505165383469509754488014269631546589875237702235910103966823244642802559038667427345885820939381714790228839943194886280711373180958854231404647455940382389518958998233749367888867382645163098310979663630121999687430868159994982349906231459929655998015713451231518105115394563396461889145557697868555464804502452826659220211959452222835739698971156584473958151287171851528434213612810222219253042644655701645049672725953415958592204107068285779489390330459008954387229185716749155290863363597855064298305867741662254269250599623146578187300023251624458242200818185369087393321960480702647397013220853122378919897985564662208389923414079539775034468132307070046706177857236557969004107967110455207800639461404811563023944806826700446986926231478496731943147892045350046817261194484354734616905088958688421583081673820953404524722233572046528228733649790281211397462217653737575163861727003065521857093195640069580093970369765992401069876787643666662440067512453245172474560680483682811164628498370864885835300809044616017211882867396953540900577991038694870154514613487130908988141040127413746896546737795190328516421743023214152823245753078893727133998653227629370391217828649930733947775732128176690019900309468741466551263938561898721611252838212815924519177525997449408845880333705972444376931465241068035891146586805873331699746205246256063305376560815645649707722568219614763012782663789001412850937975039178895614703889355707490200721406898273911027332773682301819766601839032594422819808306086782013299337645957217370560525873460620205096357141534797504017724128198356958317667034916345214220958930998131217851634644434318922347583208006394116647574224079941481787853665163058866735499169335321816742929852131036214099706473757420279328182773110208484998631617890927987422447064366069951594758086817316776146341377448493608492395612189197160246858201294950370062552140804738192477298496667909524743698147233683633029330070692482286452536841259370171645507343551438429063085326633333186370833041251724516789601941342181194468677286107794380495980840362353522212057969127304683067232291990390503463514556604394219835862468692168587120094802762627085539510608567571317501629581881380144412694808745656731624399422045485374526794734052329079862397117702340836150050303990491772294523511976280653228628571458596357602351640625338738200790768075508321852598930927997864380576205119013466386419016487010259816055061500148801164862417716810596604563556291246790508413469041473786504999114273666291327152826310443625047865827247315943427405678265561725494890915205237374219701051222895243193389868080118613953992528836556314885157869375151858631804899551343461500912128323853249244221202784034476007060098438518508980410314290613343706208945189198345670703431514136877855589484261812843797016511425077265419349379893838444770833632638607289546934693352060501895105417652487844367125359253726081042649755148572905516930608598270467345466124028746995456552243061913768329555205788742939462443627067606031347841191305560288451931646736682677662577359281967149672960187564265302282608411344819913996636552178989385077032066167836912318527383440816708614292455473957414317194504438826911157570866697026448254195310052444319375609761852627275843562601034192109775945907835777869227923749129214597945650480051364134510392326421905992747623236359467664572199120513050705613436423636643584224013143674080560910745587924756922438501000491334975088337370713503804885594958885617745316535574854791461631046739968767320405937100481474971610721951805802597612514137805487649734649285143582642088641114434204451661361749466846197677030586708488556665926005640204974637006303351260271733536230384975279958924660573300430364887140314671073948579601553934210134140967740545817340525796714418332998225896983773007032070429861328967724559068808948683611806039538420185102054103199646398885657781762550088167073239959675596110493799765343602804401469023365265098823346699210853376642845133812433632590820239596580924643294149871095651164598693480512801433948944180867545886291648805758460740392106806958834162309753067134912333480121277160783401544445011501005710628929262721931009881012337446990259991895323412598245138542816333070271559884769912857023645006827115284890465639815690427657231887894473908464204282287305247733024490288468437948284280836688971300169154959291006510020502717963175511225784157859876448732578478034559372612195827761359688220137014132342931586141622071161228304758650065519125746990232822849566511821597359863820275939581046872088878038675855669969878745765878915418070280332330002101036656033180456288819228749404447672112287499908632171662605689650101021075877372299761591378285354273488343167244359623674581613505731198627900518154914804230989490447259658591801268320092827562437532092531431650486335185156350031287022194799049109035804486627927043805948298151310388925171312206702679112498243570360419935034258442064957257045484339143654323193756405969124838306702800709617635926580747859698922726682971240943092677681317173593331829401106107741791810631367349774275069191351960896552514920736229892052974236560303658712641050808196553689979344600518620842885757547857131269899878164399656883418648123805382441432327900277056806260408542758632350644999104241244040699610124642917907332309636577107881655098353452727385965726131333065440076759465624784891985171760093852211829453444530260176952217605401727377115930404489043091983453883070656150877458428416538657081380043868423856871359556926836261734272741170593533635158748457656122018082190020243438232532270875203636309657792545150805834947926827497182577418168416482499739697533636560609622550114971656431539843468435082233838942977992730201320018849759360752630904628159588138853920111135494750868652433060401498886107300736906788308617858413754629974863618054386023332240253819586421252313563836778417305127860471837169007437569232782917260633710292559096772790931569529762624590413958776487346224345539104228424691727947939099001083377943548406270601809791756820786755315576209665814485176402127492893944240249356253076023635511663881393182155646601115847134440735412458337997109068406926581582651197954700894204390645369513423095847377824970328514606489910892331068581825153469581909852614024473464886899435122109517069389409575716365891415556103250779163280673208622745829923836091342937972020405422414470714260462043822188016031341315955986084329993104737764941166625946147601098369127918326368999333395712976602765004174573704309290471394408451542609514578091046844872078793372449557940701454703675864633171490716063946677001467201389133488568194307075614643415083702148445461399477904754051337070103691139058486442320577082265968636587419713332525667246344561368282405321959454860338531215345361519710563092938816314069784414634922206139481034754869732996742775411062305590581060217764095672281496394030660733658906324853031860443251152665694964034752349474169454902349838688892298008000093099628820795981512444308119893520531900677559784018091670119372820636870995187859312437623348868131987277062604772357248405861496260644381390437024038365807296835632371857936342698993402008947534497439285780236375929619802166960946475356877199702241786166294771032437121950346964305782206263939873550685154444020255195225173133216696802647363549231008691444630802043232178725807209657675350537779322567772313668850081284787596603730965833495652409093489019545790301406217154234655215521685920149316223222956498524488182327777035826807300107836361210880571317081633417913797037060746007013190740301835518542706620756924251000141347708877743087538521740980526455491335769272600191525916731804448333584490060221019828658686153112515839886328875303299748224801580852587870125803194678434516654149770191997097892184636570484707327336999201765922929535337255217545495400016636423250270398443479889468909343326164876950347725615780172117861891151921775658859136586552967529770255417992628433891982526702510936752301963317890482791308968540032098091820407160107072309698711251426207112153309492140439105325994679767583588320514843430481383883623818243904566045528647000354795396689599376832319353654086416001463794830750523001085334210008331171527158342363895242324669835988768162348929712751735352332215027009939057326780940679833400978552975140567876501293590071441808041603170133395296882329293670163424912542389289881997253250199929144205270155499201190839336400756268486783174670606768442557407710403268307890612327526228777622780183373968766178500967934203365931048572905095218003357684764519878072233473854154813251008895626378358962164040085514390945216284328214968531959855844387103522177288212277299981667496071169581246326602443072541006820049222042280377977292770446268412860981964553749537242122034586792814895858012398636156289623454664878016134753034667618936720938338196348136414501827098997293971654829330098878754958201240353231282740518305480030458596884627871734935144357970131080580963280619236356160810380378543813794478591655700642436471966573081232835573060538326822639845746789910050140772331751187582404356602656511042964618374955063249579009476482839963376315801680982189334037065565336224460028540673217883865787514951292966533892991818818102935295353371003208822423363048531581641987387987939040133324649250760074154019933463965895539646716841431927041331571178813850513992671353085675975945603302322079812317065931562922366204927275480890714551924937985750053113071302987447714002856326518018448061016690729012848379903300061870566082099743828141779961194812694720292497250254881692150133623050065848930475477862701747127264863051507379130494565362965624847873774543569907578993127361730925978578822622373958789118090188280486306709497560675217996907661067408767876236396950329037397997555910668335989929468796341813924288764935777229065914004769960937772896321008102848582957577435569254836014706468688773488565523749975524033081516699570133776680574891831196502960394966649792224876999256694931815190269171344233490895871816536889133964295497814334841386341380931463280761967495410180544781768441716591168247686096545722345706176662074320447188741850324933143495512606740673007580906856080744633010765909489046846559673964948994715328015570049072960744886498606674108213305767542660254898334325362539224619549121340788110324909567987153733018018178227287980851626490345846365944440845425241939674183316000236997899818372052020050154536782608325134679230416286104886653759453704872341291265591887557806517011787357510540901087931184412751768467417738909157774033882842370757820820304552663522719505279970420823646324291105851937092256980410710199740857732500608900851627335227290705642200595239807653405401619274511732559500876459655907980818088229551475023146369958618730834728352471141366759764865324704287031721820498440322616607189999410192763156663679676777956262445647414559045604561397038279189958734661575590614702245167490512400557097435753505269542162772507726533107380018938175280677291993529784114827110485157062210605910251232225428847694583219613691757389991479980586521148621959704107129747354528103788811718835572145089586998435077069020800986871490423654539295526310988412655527697193146287360417817003144980559577693821370896788056970515289112880834677831858359343144981107766085329095876189481767493184736590747125265112289753274065719401004840568643681429961860540209526125668578591190119505934169338976691488726359173041814466366998543733473514330213418079218098655095627333049036238311058512506730990790719179461260347505186941092956748000016421224040931124041702785078284192565882028223224997433833395741934862585526295154398637965887256012747850265154535900290935903663906730331686301386830958522654649877322628756019584451858476300968955754185563080581204750547174684471977634127839536595049676658993785073823858254912165580584773751205769937963405486329851010197860020104015280443800736911054209546532438782948903433083918375401123606664797000453185939995924873047013401303489784389866712636422508375663311810405374778941052281206830821393487185572330272725134380014836789286490395094674596842672824157059235087533471037725901186895384926513273938644972278138718980615927467970583609083493969226663630622742760707131857594702414187858431142337004264144887101365833621819064866871931747405185898930806528550862095700125006989722784320707417575159877532036652569395118083718513872369508945477811623204469103939515177733352747807601805174311858812446373769990695098964688646642765719119297676191311455185622838881658199106447161584667153432855206348290426353646947883042170925579728706418046611624178354453455076465817278585532018343377972317684857925380358428024035212106063766074542873404324215460429959401352253712161715242076148886211580169102605024667929409142746623393962440156458996906849787191892009231548166057948424262968627219841702056776471106202483550230703770924348225117266150234084722578829065094106607099142718512051544451917395418091404214335493803425145678964479326418743852768351784884742399539142671503911536991803343902987946555875721219600510210069515852287472483242590645904666101615742777432150766411281510733053025135900471704132201890808479038435997276471746404891244994128839867975311134216324506792043670084974757551386574636907597182024676507282324466341572388482654301996451803344118635322797596071362963056345713915683721530526065544873703227452068897897734635228070351794439542327278831698815829760858240223881081741512524647993516412002054630268803505941931940988201616715825245518134332594548173146648471704090079722116448796678961334240500982608583472793195354395579071384336748410569783916123821820687954082672030761149142852397204793941964357437773524846464329166861130486016823737693566310837523744360703760711150344587980182243225963299136939315934970628503421028938368683731943285878322343757399538999220875900566300647750218265008583099721217792269277223729563321125685754796428458702492899091532281375267358905825824277563422028203233318174558883122056877035002623500739151561631854660578458498189799242455081070861830356947297320188903520297994277171046373340151469142418989373881643256674058136413026110514668984206256407196903392666981916910805828427524943190776144650144811141264493911352485664175348086319658033408750908295763475043440591144256775772512483717156109174520727085617947327841682822801600903185871215087969306042201660568751116762228202341250849672733758293559373014587166254486814253284854805593038732259122914073536048204797562768567588033855685421672177156674422901136943335182684517767937532241145635496300099164142442197257125732777511105824748340198522277877521692074544266063307734470764700628431874074110169169676825919088698266915586964519599816184588897339210674230826842649550779033154110982285740602997857965547862856009015167699325825742386673622834506342663625030251338857152581193528365910257776265334101656515641155634783178028669822170526536341954999418820187293726716895220746708226602259493211150219589686073265817220618523990745295832165994697575970344359839579136662184688553482717432293867194303065756119885349241322706401256355840026332846928713892078439586440824627525487457136486644435674918142457189948225966088743002679900152984137675362893561708501773931029538534466520162391844739528087886064933799693873405899871898261837229197189419374252373246662732490434923944871922337320764454578483720954206851966977617126742982997099108881522741373723200409629149938142760179426519728860196452004092624656532882623458702260148570136001921875666272734416489765558522221843189548370908390161113223431835456692265482861031192397596982196733792578048520705352425477396184345080534884694067797906686554148629443093411850680075397099073365273758012634460265805811278781061902214815618518003244624331490218400171056665827209812861180616366213950186093898821803733268093338412187084852125671762179830358289489503756430809061898477821132991762360881941553005502657855662171523815860143581836661848944601536719070578325756552953133462840380203728773444220867679843525501191096068777208829407878139233002221008033568801144170067252101468451059478154841081102892631562826946280527193285487203301349756129263439331873368199032786572637658943246955759330466608532097830803299801085503270721930114478965863111816157357082590432127420326475242605552339019497050448221708911647632439379312493705852676187373891326258357267577029653099505835788747585794309339207048906758291926744822776285272098708587762727773116050210093477912740656166491353836486725420466410409637423357991383787612837357253275290413001587385574050019171563191529611771515953988709878309817949952253176234069716082826141444989252674507910270448462708403119937041514436812544831313252582192506246764220399361875502085858980863411271673695330029324893553721534425272622155389326584239771576119571887791880943160860428411453168166566648171752240799288670300364360828111271339304840861770496837130101614790153191339454089380981507329528256656144419548775997248608956099747473662968977264467079529733461591706848382588027967426348006315200418307554916672419513733369468168851242543529294139677845578613557468984769314656950124333778962332775460460312583043906853527704510745833037042981308230936113171169207338251976998535134192202716090816059117769744555631558222186311638503524319531159475355160416512628938004138833849629411285919610094438124663096117485377685146096104717135702850698749265426962327747883394032895354984333936004607777874047015606103869726529628187794062403003482280872827090461941274696092735914935670952200312008736967762790427112782631903529745657201828955208020397333701183329005075752128134770149744678689040745796770412284880242436318664620271466171893881140631094188305221030778523110412937578440025688792972779376747438450244104001126111615456304963408900541256013917022451363457755661234108013814569317825877320609363394841940648647211636128740907132529139590576962230971879482580218196738432560395286828548154347638335417967124291680194169705648199462364881335704871845875888607469438123415379765692548495893173848934393503401944173799737322540502311779495285709014889944301640174349196998465719261168375190332612818533741449744081297210038576241686736535632488805000285942484847897899489553172506597346481536536449844557293078482093999376886517216320741034807129341028737947189346295461778477566104860019686093220780581677323981208261457916827528312971998461945546150623937188001472302188196003500166977528066610048793160592801905074013391332656137711295876020142742455612442371274607263650124016780465911773667351441130964202988090623510158441674706840711075402553449529670908731874098719638199830848265447330020040375660412886560007690775609336356585281076202290128266679295660151951342617029734043226928922951737890019932922638219902848168371932507565108414649073497594248674230105603805053076156600501157659508491989225852535499309083630319298300317968643925288874928323091134334454912555495194754340542566969725451847623267802626227044527056123607824473010335183145117380744470843589429792017531302188062499792805475075779775819492652813258671594164093186790132262049226585556411277542385652596020073585218908939421931493808396891114576330486633535434495253903767140802925159250846714430938426515600227443433884709390655315439845806745863576033119735088311938313038124946316704749446989716348663432716228076783273252280739234453519524347002447478116878381532207738670067800265971730073066680445821910598393071029399190684569286635456981827001234044948795267991841248008019766189190063127590305865689444886361826551170934923198605382448337339585691759533695209734900251480672020045497635096347658397077467568685551571312505647082573555398048477651461493262626001705175300109783471807932142417604730963427216526658582834532950393471316707044079318875931126522775056755378964232716916266000064059331654061561145897139328043905507969043364664711304448517996455153142386365724555673690008242844560271511927569158346408133026217628914567039040954235592730990192646488190747956874542539968894703527227980821277938188708236952445988735324283229093256542123242268581544178053773338676855134567973576422620864220631194936105534893805368110483750173950653770513389207878327022194181653947425681347801004092567299247286898953026777841594218399926235167266083017463494696648287951836268051461302756190855375808168056585631287627001625508684810557504010667188889534628438408613841949202367825207640647843335753262215021123516181421148795025927478837051011109623969168422779553927564731651168099601411540305491708346915765210635927991842157615907570701409934814980249412948469091350812099066582362930611101364927831814250788666933549576243939988216170746450447964355418681588425755870096156233826626154793783138469499492242419074789919997844562806956448282469969211800805914036088801562303685757214427610894001892707810061501762463627108089225610408887368636791892132336935063026559690684700575190586838344701307936518985348306036393312788809815534002277282395667675301672447553176665004353424449110571321163893670751149169460720235099853216843343787787579652352059714092928624729755790238198090960528077587127194297542658580492455220347458393190424943741618009371856425925848758340083079944174607095887493303955393091727180647170975798186918410834994000132371873906154578178519566114200509420083821057407163829954776628013583637005947972331041210405516729753224017412645008250290265828218676343851303009762740174230612323953771857567237208221060025761311623130395553783903851589019605888942614191686925427642953069457283026796209946007174488736164517896613469810110277886055165259648952020345455514776879540503443529927266774289352887081560450943750837613738657323136172629791743559290304599770446885859683902930993111614941730351125819631205851308269093362672882570304749275426769212024405179347178600111771306740443311405120694000231020726843524550312194399965671661461794550171638333643653882131816763345166774146558627654948450260005349305031217166140365289787360732289803376113318700059603449086297850117567652021406732207419733735401387048644233962837802657104883668579377730027993360047414534483442865992046463570129040235225729878359270767002445921768887923450867783335714364862969767676870605192695281311307518071915962501902645048856127359504964804006817115604914959361281794954192839908752668243339654184095678561723996583654703554103050101445101262785159173865731443768837445904534128755717182950850310926827572376456181766035692822459090309903582362237750372282376963465113708922237503902761363992407038816635154323433092908471012382081811659808828117581348653261554727481978731164859118651781079133876016526903966610194181564321950801486023023312879943002215333520825785546333759532084985691951281200087472379951077527416260045772262702396600033896566046105658257118182816355694682669143358408358338425649019132636092630584258322553810367329320450272102400415323131185894145099114271918695387664231597526264153119882647808503784105061415094137861275030200198996077085616717823576910036824137326314004576008854928375961315682410221891447956111950906070934541603837464665488921665435599405767892474739301811430272731739840550898991093248960046448483013156612783080089109656696760952058010181621696017760610253879932086924439201225268708223245101797024728522131921117521488664332030543288335334042109651146289353845541188185578088709336516011922289439607052440615761427553465530965234195562701212662828438300782325257968868591459182164845337708081075030834244708308945114029467475049310354441933981503613747021093238366563078688648339571826072347317593291753527780344177697266237919913583137685635358556200822248411146579087811234368812781708945621288185313082226160560114772804380409494642118523940502763711152980518308611084850381211324743266035222347148123226633622038167178234152764735523925513980709674528410657795706466351779598502109035499372115827329731679103525356196258072181174745929303067641742400203688727464996274492525778904130219203770196762810943714656400474599331774206658002263050079784048731670088420927374902974334425566428363111788808977961033304676682170438565898728916187307124238630812234534433567933470766564997631893554809821780040805174585131971677885776170653112504867825533351838942482486925987983961380621273389781784970993788628222792037520734925639035534228160975629524985848940812572660485958725566934458606766417052109756797709191895108186360383371521873184622028952010848478324203915458984743302610859332363930714392186818683271049465035368276079316471560577485897654236578093912441128102966369404323412918026765403512032645187455864543445392035218121532457500976048956739241613031706187797344433635141744553135560914070845528716426132859003792493914252116391641646379948648215226331288519961119377103557252223454335283982761912617853156648247563911287888300597630088322170583644158478143266843840947199375306062188932999749499116764555511183108259370701136932689652690782607641654472693715537624171358087875993653753244793530522692271321888437595646231703937026000214393334157493515210569588619808696597544115598584512194412495803828545418048511155578086772112790221748283435619732271988741550853520258076427716876701290796427638416669071737578879385775927529755129321742814442457461997787703638573941873370599587069945222650705011465889213136285114104836913962886648249339731777698532492308687475201484384275461487600963609919609551777615474693547638252054284802212153552774987539061121979324336174305159404704480748335149849740081148015130039046082315170381936548345816413108296592488434471404644242447867017569692609521897317062135831751623767388364992319908598465486182584675598919580170273074559301742234069444936693023649046539631536899502512413112589588016986163321398600807533706423009244164826311070375240883757753285182981591330579227514523577869162616671944876130196797585630054047799814477861002437437419345378920228188224674098350067879099098354096138198455164418391569974757292537768911912443182246573330228641817197391932849722700351010287305426570170902708035775117735561962361737285471152917556347486047391469668333294818665270398322682102503473487052575622025768578995374073407247159972455041126263623024601151229439025244071322464970836984778473523594682141966299616418311516387663827942135173281597442893154307628589159655312965277285345563700381825591947823231262765077465838785272986455455033475621978813614017684403731394646504330059768814513623694919632129694401233978620356777727695384684089960805143981603089084902190641984866257714766618832852316006988859523530448986618884001955846471759012585680838678109968600574355354459178769985344818711846584748343011096899592084075125022595779228089242706890264935442303300370638837677033197322558851423233561068047762983162781065859743569050853567965350516425212044910384578215114092320093514052028683486369938297773521133351278313037424091770279210008504495396148089205974779042654077473000713028422279674431323980990505900424218708734910264139745988608125105472948147084391984416291992870558225231682622049447683653405681601611528382918830246881868270860588781280560927722658181442147032476526978929140033335803730848718711319336582805821533150259685487452035929220487834036737904919391978500266560683512895514086543415408224633406410439498613582779582458385619169177493889385433126324708009320167533949535285240202540289279832273122007400000512440773700312969951771839387293612630541052843027606796429679264818254169182356239687083798066105549014264543021339446095467421014806415353593983736411519419474568985980903000504901734210552340290738922967236183678919495170101118290865080328682197762371509628376108582746375035456786071529088751218888150390420403308567801994166120966879416126442108210360110778978963436541963072896036777720991944097293521661335034395116006810107589140735803167082744233102805215447874209432592767828776947254489959010897760413055577731710220056842349682706131956295991676972398069491045971256481572986803950074127210424202300166883147784071789143174728038468155263137958501405576835503777534838934460131250128780093964870295948427856531887818801623040683790339211900867233462530476328575805048372386292399147196142577107468373299354069714940551747907342184267336821508928956661719297634489784833921585848887010063034787931285331684847630919240010893911071567592684906130043560854278558288345374142469731605918341496558112438518885382647028882955506463325207431777373858501861957552432440394202668442563708939301608109870012736335231825725952928957979433817947838947006435546732914908441983479227050527576192284441438190847833292706919209529978320266774647592433399148365499404438924335222332088010792988334713488527949540385596521811979038081223474180187642656966649028553533570171352838531171733341022924925174305970817826569928878829004637501949978056879827964195354465817553106580582552171973145731246690738605744050033247311172892348297981415695281422053642348057909667804366569203276772826174662799837829000002775689867445848892419660254489766255506560132163632398699672846388075494962848770559167515088227769304285421369342735096383862493584805366023249819048399015739651050495100287724844316612229497244453528773348267367082415313594236608433971051386197786078234165991218259363976653230291541981382163573611708812970223484942772269743260197941496816449372076165975855777040070486692170820671844424668379082201641822292016342973816618874621769461475209867966111974059941308665062954728560015232632367392903299174035400881084881648448403857993000411637733367745385232554024487727363005372520701153185747631455433130355611079635600777512569590255346664737926533803582613780835248236154717603366054115836784242425387721030393602442821500253060730574252722337004250023941786971330346351822238726369372550703560416042730937592014347687585001961406301905225188023876426222529067146077527705761618028277757732654531193896261553794114356511725371441894264264076406320703321933397323764871505281812722491253369522913145549009088208102001065345724296987882713337921465099706747288219407946304529194177439469136007471847305290782617017402544862281111366010440972193920138991774452272452961939923292992946789292257687641400535051653092100484506443227014818527273895112780589394869478736536252142907587139572210677759066015800252473021475701826049306367958975915978493401723086570294470585422807002633702811145343748244022248473191165315233736738936263806901830691473546033696475047384646196240728806407956576537777920848696842675132995756629606610594307989615750420346383833814537374529925644406743602884768398776869893390138759100390558171318353741868854595742723920828989093271262299660087000035694979291456851260260841707250958638713147413836708631674169612810765028405091543833649424584144333936821754291707677925352011365121457688030973543033553203977641830829406573166030521290424262018882533440551858153169951162464543561751914328223916040762399160585116667357690688798078334428495480918433080891463497365262987196633942613312260295046552758896288736406329118739794154911548967021868887162903228504231736997248171597791395924536461191272881633806152605052440426433738357362243912415788188249012839031130908139441853044289575140625432646921736280159396605615146206339262702028444673255972606277391785444082453524157829939375400570101874058850973771467732007021193251107443768541736743637662080838362294307922415106756427659742605055180363312165456579089441594966315014307554048333462316675180570126509326527423930093059378202047079759565181852833985275277419570188081162372587251568377661604640529001729710847866603152166725592192840114714184018900763785950105310006068907360939004828361583693350242364709788209528041709056339582183478089391109023938955879836188009785841060147430881971788548319163504457707564257711332415091563762127413785674709944744211000774188334973339795051895974141516811237023431543936349788065876604685338024497779251128212943718681465239512498598034372839294586228749532100345544589371855188823578576202477741566780377977492822459839907341194393983299612970634703984776656733693572974221723526283331595051405987872305096251640045868524804264488330218390242528899884333132995630924560436895660437494091271592304637990308763379503062760693404727545627774655986389637859522996389010132911191698829345595817814369743708959551323039199362869436853947462340965506636339327422590267053545426993569049206463930436136800252996386594660025182538124297485160789146385851898547852817206316961852871362497147222128909545339177452361465975108549006171683504634888511012124456471639017097492794996463494713366639910325325039783782108523527505450486781471249709133903804472316817699056908256131114555548004449465139279213496769275894519390846673344468116367272979825614555905757458861819618973938182697557104552050927572902132293593653214375352531584331653280543245509950569819083369823597631768803602416053670644854024939131692899447453828335476075086009471104164651294078961852353839168711167958846680721956575859327325809830500178133021961282580071972517939934035924123964858440608833596159703408288990985526732046257744882065830719954431463177388886941351866127874005530792213408333316009275574668803806173094032623507138643427077505216731077218047197167579488922820558878136552332482006819611268826296366532162893637781540932942271095951899069017984923749277432465176511815327591384602367214664580200336725866908615113671290512138057190339907247987914030192668541881370476339602637390797820500263632233312071775771093198259571588713239758526086523352295769624764967908850962661559431445072118147388772459894925096969031765351068538628755399697908796308607783891767661258776119987060104750337210738461770530408620897854235857830108486861431811829569666193573488353274274355032798515358525173880334267614700051537713938147461358671841807116766175464452436279065073690573648603000597767368712949378213828523501326039822268034339710640875915470213917326646656067043697044366455809356153182198118563815815796609598257251889718706513430778611502682589012330587253426304854565678258882299571968669345765450384545961365564822338770423260486299093423907455712605496240617783192334018893578095295336204660778108565544594873658077480398808097743888007433225926406167575684248020409532999478876252555719991896937552003230080703222641758150053664199081801487807445620109689013407920187818348847992747213054695504507814719916473964415122663823633704655796682023976729713408676039479683080797259552804309282239852320925678193423084680772231039703154770580064783725982024251909910340148686121098887261462675266042735723686734115440981998137354588035638142694064676417699656805184994421145888901782278473254419976849744137487983838155978248257435962304253438742256697474494309304263315296057565374861626348925910590834492054865895995585413981740362769387832564661409978083509785364441127888603613952857233370635886909454128510002056676269333302591684459890578855028829542361595671105440154167163329699127217817859069457070560219317157208626073689832588266596052294822916127723276125562658809405503309115196413433686850571978507891064971678950130441121480737555188497519313573631969664045620148181428984405632504562133334361272420157263582764488670498203522892291819941040269116306114348871570640104935885685872434854894640470684606821039255486618129531729628464266363462367433796998332225610431131621681825410489074051011503437554974534684488246192995407050485093941568187163389980220179000918660196821284214979420377805359590669240926062735340830695914930835748334313586117398852344244334913587151013383638978024663939586492920015691171062272977112321996428104745624008299409813556171924041127678729414746494398688896092331707525802130581870331296801490285906564846932374334535809158905192041264889999087159407912770108462740297642201209163794299795309369070304009003257769206211374019632174370172564197597297315423135292181082403453681785537974876785430338918714175409827750654416711268865179802086059103434812786774486332766610557856924913030508563417518455172088877555444849238313653762227559731375760812410972728358482074829991222187646715331977155914844904952727280787340589919821948685835387727283184300416293559118492229271079960141158456728436842069861814396122556475183147338450789739237696321082330735062439905401233113249627826256740811536007175827015407249988469992526381650051237734056841110660753735043565251211569614029323584150218685122030851486275394636975011252339446559717889787996996345197898435225437121380596530526327588592095958634099973830468071891035370204490230035218390695017106805830309134153732700145153068623922000882926517877202308245795853957950094636670985894178991333556118057983392104759238556807051609919581576658898598902376488965452029865044483291316474373919037652638548896944199696171564667955625580117200890306364343956007845917816881295843892598401793603033284461514051237462610172378948448452139326472679681123180252094816633108901161134669786608732522801734527709337838869478845874963149705555824475721909911403490490151191961839610477455055073900941560624316328061788852696916651646294751121531626994964850040565700744567190898566221319332692133851405722036075560145757434975077383577017595263386344134794581201503137334971565826157658589191249549759626573361024925193122795756562934892657818088884404629853240596490674446689291748717521576681161674823393196990661808837628037253365606127979966774961577172682948625244972205400500730850728584305110410556835238983809984997421898378834622406543560507990368357174459872702383052641202411410533753446793619391407024668765387070470576751256418232050671853038906436197270461963055738284296191016582479822561698101339137666367415953122535165043293967087909351202124957075801515597307341038201392009336545432540675256606802248396706619778258325128122649029265849835402851993942234202102277622750010498083705432545213667570472586406539833211262227847656253292494933341144218788894878241300875190273365359410663455550608168397777853245291549367808269933202831454305385766756855012740445951375932479679545817891068532161927623188992188383869811099054045094367281129780964146678985995339275545572822035062827273414135437905869584248839368932073532195280063549591937930877285352409953686490257671709243067487517859673870454443800977293335808047253298274835066527347571667354482574893625846488420469169697508646760791434383903238701992875654093058204611414598621375176542193433320393510938768893546511026934070342755058471397558097919550620214003894432436319140009102851598823437931523356985830546452159683223906660780901736838195620944085917896774638043216522030032788728292161741464180851842088595355172901774437279095579883685763667908603059999384823739499530165218954788183946858227563245237765303069715059138172908831278873457050543076093464454775060845445080869866470228420103772398405294295035504031514575003358107352928370582218399430540195878050485529074635125615385587737137886725410440182331039375445995135784309156936116567349604046936112775880255483245346725722431143506831630604031254746987137430551272579136916398521465606538448067508075951961650515774741987780204498076080137322611268843525599203695006935873729214025780754435202837082693446610239565358977475476623016664397747898215003671269452116674138741784247931219275730452704720367098820618651213620497501880748113755916436741094218280340565078871100938724220035965740097956991817703007105563240455168849987716047293141224533615287978027373528609886509329001280661476552609952259679985689839425159801705949425549931220459110297917535737329408146815705165177897068719632456139730704660670616624986237320995435039048674450303205742421986700824671684805446456562137298110874074582183301593877559187868640080451960890351909430931926258663998630151213812712117717843221431995720273459080644849549562323232652304988278475874681033373905053707571934143828367976466256366021815740143038339222953658622165509636544963674925394510191551699759029534155318487478953782265258207178062366543153416687685211288502706982864189373317017053546361207851650504448174901083781499555848227383978521087354169354106409323505228217073512476759647627309469096761924991345942917879447172233275512191014833633981512775082661686128208881581000373360623628199535268340224017366667543181316660924273014220383674758323694030681180445657756684747467603976423012349794700010708450430620420256967812044789784393221442404982008239926980301510995225293244285295861599533672482917803687088869559217804834617944291557769806930117609639107787100633213012147481054180707662965779371158197653063528450857283496432960347667589645292071661349952764701089983415708948925693640363800766986964388890376861951920629069532139537663317511144830077806784828594769469730117247209787086602622788499830571305453414465001580794140950174474447722470444614372683579154736940847182408358569848860187009652748168277064463529386810782715958001670171033841311175629950123640150738970122154641595122538707088678891244377838768725014932311455102278610493480358434462302188947642622053865710302552548082382115979229068761618412596177340570673719880892816652184232046830917056485012046288839927813114217649032698529136611709862463340466794338160638725908125241167491471975014084577349632529379640700350774900178431171955197543257766035638192673848313323328319484130399692203332185615548836517018184185730515134968324749046572428044175426120530554399802933571378827182784035119585796870772562818674155829963314320999815304247156319064511230430723691391957887222185924099712172260075990276745176863998612274747012820056021847290745420618458608817361995896776030765966748741266704499880141474336236893593585126248174565099600139725930233884103650374539910145472459071456076028987666665473105952375185347454381614945485145359571977537809400083903895098958128244003525674978835044998423552562754691576968825394566821339126128254878745741119064113517913281782490703141880992474550575303165302169563089895555181931847476298781464810877548537704209757949267922521618154016090668874113553809251319561157913903932587065235884321275378209753153785147180280619376652659520471688773242463574487663568652093972724686744045905724575942901481643371972936306498641390537117897460955023474745228298385667682199328294016890119920229471689369988080422394862651717792227211330401940964184231553744932136856394121510744754519757068909681321411185406296210871488021019866763425767095422872285040941043182605003485936392650135455819395345989216027077327275275165157967793409294594168947182660736968446614156233663492910779841803130688487169275402849251835581096169716850461343512639431435344314174106633218351587142157844288110512176807444722567393895741045947168107519534496519365937764045793209575833378660170527582237405305214506854293621896793132689107911201870327222142152863813319730702593060440505776728134085156159399114473652583180147605276127918008137624045605482467379150318168395574678249647070536325291529408048536291650909749121821688176214977034807480978421986631152737585058955606435920028170711016737943368560590787578577127855073859713035847744271488304483910415332416612948823173309526736673843378299539414063285171524784599101645934943129497821486380054869877823952547695434221336638956027902532838768303907971385522491262670066077538447061082882291876245056130971125207982745473401624997431986806051447294505403920602238013553821568317434046961655176346311357132967066487121341953843692839045117761089366112707215460297694114269889376715147010148480436560117651007913155647152587851521565474508827079111910666093051211214752997127896958229983490681911986223135183118315550448204806772062276673411016765261921228004201477500701343778849357609367177296582404996776838266849979523345179531787520285141103290859116514159583046925477850416570563545567040752927841360446524913810372501330091092859418520969544743896339486770524402029911849198754756463011488214501769806431085805590228135813080322654618853010357221700200790227642152563871253863994398437483418908718874962481654526525997326229826133081344420241679893823530654675348680136286094292602659622551913672235488354228285515947701596588595791716869383959941647298729123368259528025101438270840171883243611080665254821891163347588676260820939538102934937467403188694742918027769945378010848533594193167755977783783877172976279388693604082674335793014037616831881929942698180592641021717797773622057648965496121758403972781169344138859100704134853666565984966390085071729808015032028735764811271263626556368078736054667933736376204546102489563558451427309687472495312161666885114279617229565220144515424443271039628932817923204132911107640371926835379311044582918926520922784646099174095677171956723844769603028583831098249297063290912836933089729977337231156524632405196938810249293858047893210211196792880938623723489485949634141091985092041631473687508432843444692663675888149642219589274689126447720222346522108477741498092457613906077708227229075028406078717322785609317898628238010609489049436643909168252288221461842312364228476489826163470999661859579728271296392294046587220273612703301344720101912449870681769244551935557495068223244707562045427980623930366300599873324086678164449201072985298159876749837091942695721825446484815295525200114939846930309825484294781551479248437920253445246994169666147953693460334762210037880387716352100315610302198429522164696401685171271546476287721994832945472695060929759483580414665860774454776974009412410950731886465637361878964626497870220860398236119019435512818259497213762513555938726183519657517096356102087036812552895389747825387868483281480775487583019845026039258152874974322728714809108476341836113880518582099938007512570705734935601901166238655676958786311941187543258999279518404116804141713231611484741198581977029003851509277109842836447209999653417614126104359185479501388279309849897789543469990816696064786939682527681862746804392891232024513009873484044792983374016640380333897333502073364649196787652876238302109886408877520300424378617780074039598310244654096078169600472370380285709356937257679292017915565384525539384062396499737969205928436630151829178383977296458904081538267590274160106028079224865290436547064331604093213961537388718815802304156139692951113338298177346659249315650102128035151111825449547182193901944284397694256610165743230489295937450388708792842235374690150905185443782346481088503871656664921459661601118862222287433242393200071457856137492472144982499760262052458039124605434966467431690574398682886653119995304915679061467746088987228985988886759515236076500882314480848786041944854966184596434074525849921591082333170878010940199318951946777632245264443544214395572717418127696210945890217590764549358308722433279111844597541317343886884732419368454548508253626471389866488921163720706924593248041037980865174935115177686210465344114788133730897657241969232645604863602053627020884979450650504293602011698665585995222667983991079641063454695046306213291493806028633891119342330273292082208156992391506252061134781033085957823808844084372313661982944497583962639413254681993717208902773861615308710407882894079406221172329586734372584480227423103812641830965949318268307440088388459307366024858410374625668715008553231789061612976399123690394251229970011921894017223364986049662469033795155521339393820282438694606872860783131920976470640511647393435447281330085394290908006383840496013032183240379054220345036269100760828726128170032760364588004846840488573644355594771586906468576139033298518980885616603113079140512668707195420842082865898220008077269455623282099842765432976623265574492783793333446628397361970223115679190863390848321576705278602775818853499760929554954131984360261231605647311527672862282482228006256484234036697744289579880111056356234236611761317953494361447101511801609837381412235567598793742844500898064268131615409534605073428321665650441605628495620289111410238140320612269274409027388025615452856998600852170035340166554038284666517494161264273686073606758563903318342283882976345346109721724074890912811140363071261964478390967600739411108353216702304299437971903156099222787528022477186452118025940806629261084849125531183280714996712094420551326040983937469601473831426985350351512175584502718362241572712205130576661633322827336592137550475027864294537894914853482726044706187781022554620369343498271476151446009236304976292246682753772157040762642528386381512556928516279363262152467987082545776634395222345567673047282086153117545678873133718756236481079655563107790522685452835326999200314121791473377178050658283858223374995612691555381833666223584198563096120158571699647363492434075625332374636751805360427188491288735370420290801073787966374970049920024562532598397468147614200336791307621809632407816574433597145201884567852454592192348106178900726568863791657521512483097050426500537817498167138328377464841312231200810258048537492375014720901698170438378779526116181625545209560771500421199225915212538061830752514649269355144194335848823406050017840965424690878891776332863450753504119208780597292108772055301271940802086351650886940464054575974817524314641335944797248226804068196168821603509991884261026964063940723826744184035043394916933047198914784478307673636406302537438400165937514547180550336955596358711201744558096802092169144385936187973236759278033339105233194462441752043357114736318062239311861129722583152167851425609026063344450033564258215652265508807233377749199250010734988919270827492011502654811271946993743842909111083711506830566933309968775745471676728215439005546338748818087156611348837566791502051154619771127059651594245593472989284230533375962164392208269517602008638847179668244171294199949446890645681759378140772282192989018806577479658098240586267429471808752405687859580087574371714752623286599719359289949640823724596203804671340185460325219248871039101353014503440243713077769460470298799244168679458442682511632372846782916265908065635848551254093252623730399926358522572165022548854438872732134406578837278289388264100203474221582412761424953009741073236017540600916398468065469664601857996493505709103359816194659089244152858676867402553572543261124446035791029571894470576845567238304162813778066144946683583235753330099196868100637273495486756043108694073464598066355816564010898631847702963747044698132168411952123473455228398609937045793514805908128054043726064669578312625006607072569147690467541930008430206617581435511164735805597776581446976214676176831089776528366264407799554651021257631503512714560953464870285000589090094427398784360947401538819252816817695487944861648426608580857561932243222048638543570197984704414504890610214919707470530698250285128977580993200926844965750974161945828097072590992784824480389025317942214768806107019028336372634821197221238960957640565188370029849278863928723708738179613703483161672586799484098694953040130446003522678502508388262680514666218472986816970792157124295293640368732218246920515727660261061678778730448362690504364783121512310965772015635261823114743149091564622722698924574107794761322297268047951165828848871274216300580763538542316833696663294441764519926520231325981330987639470866228044155322001162692041311454164294374496639485379517741265221068715285891815028121007052186087617620727963504663325376526102337283662038900092238273169262088954738650727430086049131672647604130400318005831237777882371562921180479009591118267907211692337189895162048309638717468218376443911383569715613313649009544042022907194091814725580550187248454275839066858248735074691520133081266801401084327479991500675745245571907863581447330753411836355658476289923540216802282137865692507829392001611915024121634958566995066982277256704656266530243081321251804402095018809464770922930959565425680903540568065514845092760217704351400205453526589280933093984700553258550974087855493991812936763699674891461641776997530642348898512781581267318876528607900246083621432652561274388219454523482888527228290552561283828715206245489752136230127716652852834963073888549588628868739838613181213723526952988599301406090254674562214783911192273864112461320061487685093941947529689483110575898922316014191479877481778548102007436968821758233831612032481225983090483488645164254979889523674427184048448736928021908215163973137097844485803496423635174501083279450159354818347137772386036138024679438753046669020866130689098812818712977843494706445074216083756157979835433075006797698616605181967541011860325405917574920625944813122626758656806276884436362291344840853400454553868867213482515353637596058272623142046399982785381673406993829319756364906376801587104393470184317708061227594105746883802080267505882617526883759195457824971703070251402832766787147020624574285977512425605705740433425934049033624515861341317612558036055377094934566566543217373846744904979674156344688099678996143159337838089345803374900926022015700645902191592174054425983903165104727627465258129758572581480861120336624809155250715604047149048233397984532956247051759440072623900284299899563370516088273207203708436194447449076069510960896045799361973491611669337804093428708408789225530220205513905343924913365648654507127829166330437084999049311433799079488542595277958111163566593493246510393882344365293495936118887549146436447699008792191912963091822671758364876240456313472742554072105904797325908117214740398012752942951708445297539709567878884372488811674387454328578161589509460325395346410219430783085730980586332257814221775045105746333483043030493194455951531815068731672281711253331357053364460237447466204644017546389125736100029414324584441327945917320520993705775785490937775521547586781598840022449865984631336130033499730169993143387345276560827156641915858930319976867059192553856668409180147220325958018056029900842635230361418489887297887813478563771887044374630058352960761894102889218244636585555824188690606723049775043826426295267723093282633161847489938877903007433996962659823642617288911387480614331460447431567486737812714015279728934024256227360378265844797591513810734063269256592821233467811248908834729372035694510592490001568939424423677458602718398931100157991547797242737421308753932426635338169345326067519075006611621893757198419887648059976602965400380413867522901075427994125859698435628398804060917706923852757617762031667068633933415608370483971703316378230718883624779792416513697676880978544592755330569877203116116006841808520805986855988381233733609469851576738497172998830079567074863509816894608942530943724837768413902073401519200698254178752033418677715699269002663062796910788011319197554589587826054021456135278588762363684264231600861989316957312493718961709393117247443978874848318768237099599277939708686541966571660406212480192689795728149301524348656881271214739753196465496451833072835366394113822494817444189797071534175193490928595632086030275030641739502839961733717170282911839632219164140471617893467201025912802179455921064495586903128555624017646600504080522117182286247059254248577729718362790673101496814410563782730050655587347448054409997426591192349341895818302411094045457428928099818950298411099710374394281596692322273880532505507250407875084769339251899506754551896306930883913676274102028116441875714542124747937464920326263737448271387789736471179079173515758401091507808397145803028338547754750835035493509535075072875343472203163850813093025091106920100973206262914660523851323610112627403076719399595380383768321224058981504917965657008710758419055025294266450200120864228964734468511904592117874650710888461577970437571014462052555220082839226807567696043281312381762233237419632807278837355046618455697845838443284914280067856509372103379746370466753325458467080764474713255225827419906312589383780170744786000946564329498490619407753032155444427155882343498302871999998220667482218812919547214441438640168382287079496255375046903371210771362661365011745792635826484933356575915251579104767526621805630644361840936305499326709506859838561919967748412943972068747965595988659137385114562227930738150563135040027706368586553458574121677762650710464087219470462498011688767018476840039181644473778537832309832702842469473021768699181587298553903252694352003761252562358224253659581761240016422559704473711832018038818339345660967895451893325680450819750600211971016795288718544773259368740360695490786711914130398276744923490592645869598606059800208754486539272283949330928823217747594931934294092478033012928437425390554155324359854121913278761449993874055254265027140893595895824894557254275978763480655012464034862213593488304898875734670488798357764988277036774371552402836507097033221524348393143350589668199423624272143134988385139015126241176410549976078819097788007491383934483593287168435697421192611763431355769839508436457571011427761564441728054457069791926861390464085432957595412556229862098616194975810267014315269239496422638761672743287261139150975560771310886716008119284819376127439654519111947472142776676462005830365891213585602468364155260934239379156769545865560274342256330305460992174485603597233067395403990656712961799484126872173521949556993198057921628035843777660849137977990760333408416825249166135792974553362226472253100615642386758316454415684178907187612676068961578214952457969317949197768828914424035013786364152723582465023025900801381927441856242795587227720530615873521280932360026164404436884050042814452792632515042462110932082345888557959657746780400014347529718446840183947611431810517262753736250193061814054981095547265945232336648760115264883203601704834033737249806744436905031104740250030390896224697166518620461177341393726675061095879457016575756706840293608242434972960556142782894326531639354500812668853701528271426838548654124099487890222776504729097041892699982230795876885461934546442839510044423219915607629455927249139977399590631582080812121783177915712326208911911812044171423498967340790601216309645079176079077368327188976787065629093136788369609592790744795185897173996569680467280684889151405693920369524657531686283306274471148361012637842461511349340769832717812302929080413960368385488096108441224048504871216144689439060549838166048950633488608284867710844898907554363351533820245090780799827465500120468088039717539269899385321692279530066554171465212789710490995330996250509547057022235425862355159219794883095667774888664651083748753378998891302298523299438531515506864439808243581439150166157656939078732858472137919003197692759121108153491063863374988735936891375928898020743149672981325424296465824479469404302534408681949293504864201348853609624186497316440156784474182774070631478454117200596100198023733312737010623364920726689007805061744874650364330331980471142626923807450331944606525159639107735766787516245627989420385243371375148918542450515057138973628153820324923872493546602453975869664610633333049935315670569925820730402286850854970130441045184172230730138567789507951100539222362805931694267946069435361329104285132711778406666128223095079676468292540311775162460753323804937581269695341213877199028548687371501456071390276915686493598661977641680579843163055030508893527263255015182706810135292914279014943155329351115808301397088543388452556309883008281016125076888042077874905997830651098492433102040109257203051015237559407114840406055845020932232542520833116882598147033694996995215976232807649658623305791634757504942537506201596314070271011158447921064668386895327173143459024212751237511166333646336849236177196359972947599339366576009005219478321388698060659218086872788645048758673018875380985142963550374326127946004610814195944245919658592037091425367642016694684276887295342202024354384382606596488450827191905677628419926550422571787953980702624422679464187918792142970170997075116833931983869856059423974765171910988842347607093313148569006170016101714326578867480799839045223713866511941547304796611106484603158070953260472208122219964189410077531731973518344306503237507489186443269344924742383817184431545808428322877351513657319615343588200741339256584708264256814798163844546599002333794474742797960448309134462036593031094786228633154911272630716479593773202678749550526760774678895516503193401487656938508278809561620367681471634881268446803878512134638221006595917662232942262102660403840469991450318528560284827548923557735849394491160440854038054402614209126014924851365997729772187255990227297346534858878674611996986448487159820144777476012482183283728816090830761146226076496242341142706061227672507308115476264641025463306495162064694034825031077818497148530023549111754567538404618763492768751139100738946194707168604287070001360566849673991123318107396890751501752901872445225834474587198783375404193950380765885331489564636024142338250978072812771042589880234279816210609624270191503465288251050060372396123397014539156084161082705585232825474590846033612892733799384484859217527135833906975073284826590725178898848230803348084108554814459024601346190679433516100754326234674378203594435181256663839214051238796450846892837961896341811541452137796120615682191648633657019749027882501636122798647881820858470500115382239672698480445585694204105615909914099148842126493858412012861234025873839980702779696013476589918462714352559712811320502033327882586830361404863378593516964896380599906736162285443916240034074523016386860669848682804745522657437510137419441364221272480269618586111169756476612503817188941974318875331038413314071637281296824473037650684374990844740105544308080837660783568795821365558116481939643196932159774967700290180951380471618781293318203389654588955156945685574400823387036570980040419898738674500436941248803599630896434641864646715143069105785779893834783292187534164887685054719168017585023705085268842614938713035497540530595085353399155289674663380703861497662310192282744343445385813317653399763297105759706883094240191763295973462373833245188287549722977399652105236426280323021343118505631827470069922881038410987342892968992315411637879666784573312593530665907309158414971674560831673882269488984272994266612719465420275733008842924505542496947521093159086813662543683737019390949076612204022675069275835053184464409670001986322642556368284000343061563884875848352751444828035462962773692858807830708147794456534422956959353219355893367137392419872157280068647049777936628275057428744320445890422523979069808723877305462700629217539843948081538601532027349724088184491049476435265279571940798066256643577853620611564809918451482589026844374839939118756688775338352721824680388646569694561306319879805571377930097147276918076325812537747499250139105855092411873659329029438001684191278438648515418463941410468695184577857114200275978640216590932756709096774757044214883169071940520955687651616607437503325878654311379065651217505579662654172535201545899968092229221199056616987013683763773309882256852405535449382303479989095757842786003119077174012177413689310951712464238132499543262186393504841433402668462923862159679690154258281797137287307528417739103057573810233884647229789241221376696004628301352119552752059966653323479240802428119934056055089412637629331741839887288921656342456539806568787437518948127636197963816978699619794694725787681556824017921384844550253635971145346591181710554650924358549219012997456336071785624062765235515360274842947571386775696964230162067937274202762097350098271307947748431021378900897766520691454975522179898353604819562979953285234706306429682995495903826155721528755028956715024930744408078385873455915427873219672738742684054729571828641271020076166907296678646951435099885056682764996607391918498235559996611817446324876862810102456851341319313337328097771126022504453497866690088819936765623177409453560468819497374983346961171377193791588950843641087610576718604374551701242573972598153681487771456362635564817467047453259747591044075128218935105585602424910583844408112125209119801529092583913107788443410875681368972346052056004295299526491545819052628632201333612682832312640578654783190457574949143627441686786926979360867161153956353074819365731695257240850695067799782983036469934117933729988025301081921327897897898544769726801198128433206977943992834554848389118736534196758770669308187876283011701801540637036276855718508988780430162356627453336481596312480308484341207309357347888445719894063615245095531385018186182054407678136252199933531030912183456119078054872458996486030740931723586721071532488384227551791880182338374268533199477024978073317521650466008769993100882592715179712437820609880020836475198071496928423267531264178920115697286131731125254402283164753796137773987387899404312646110110893104112132015090423816850162105822595825630551107355749840175069555695049897123510402738751725754887731704240112271463308520531842782804873731586834573506168565099007278938708394338106372262994868911344891440746356844957346925001856136516187252101605528506519282556840713444007624321860471644948136913143044764255083171711949798071553181743684328939867235983906373782394942302194354100188010589697319765757692458910509452766116058528853328611204818198103976463845385203311682530750414204848835902227168026428425799282698671269950842321224786573744165158220110948525776715883286628820607067899888781343585002311574252985596096900059860949613427046324648398065139746958210942042597222780499722355759810157270204543760136490630844630049311191469346190476605461685478296186098888895964328434955294101466008136175494729374960381060792673396779805328926138661456829803657701405860686361107483082502546824230421422092351377474718827378410518961308014869127737240135295307684485389997567102727987052407975249190704274272871103844673203267227647305467902581527722108528687404864908286121258792420644641559194702196229060092635848585528181348091853559644269799277706114730695154700621046836248227864150379551142715240945640204531652308625633163137897252704772682336767503201957380491375570144691949648542251120017194846413873051349126668509775288638902222332698429400963933263482974621118581983611469817272315990316811520660818238732711755095478216431199340771361633307895733081197298745118359443584887497752909737682818234177140662634439728259596489631053728495741562303243190177689660739317312515762983260310209987263131116248293787005335568719514204361109860961245934902594995616749432052761526389018507391397026057970940447344072132175364218059545732466735454142332485899899530782648720107690766643714747700793195562523484501694368841464443742989325577630291080259959260483476662823544468788574572583602120884371884442936571836494081937902884861556096477624565241479088122571176818953040330016336153680715085900319334957991493633309997048855930357617403985308536816978897693930794420960083843998254909474312932148778145865955281970371664402677564561059115400295864594488366578771255092910334189976841515903272517133026480270512879164437880720259275783794809874399280509846174890442348765255170596131344744753910027300042035858272612123464820156271155557242118776877848371039704736941770093333888050241585608174950861771823261152668781027011097709259599084794326935572069505808858737010176769763927421977248495548755272533778373573664281813977930359809894873567381967722471862384938677756802236296640110896781458427296348667650241017583743961585286197251143617271842796773180554351694327798672474075896651940293859865962278608691723983478828236940673900524406859186747032350174863815968503464898494542368236902156896460302396475062330947166731927865127265434027169983397497739521968763878776708845883731998816901811633812551827976221290860094487148829911747331412957785536055778673864622080670165084666776239536407819077907575422910148694930730688501548733692548017539402613808839130610550136319970738951236910568539221608423907151705426434768092653182778774041375428584046419995687877286253790377177934188969097731920567257011803125052249832087287797131520703159815355340107103898984566530861806656206734957475040306734069752836328169024681036119987771031668030353549175959029414474359969435218699912754484108096267969868010307857928772714251692713753942331042413145889112367104251268802811206757722683484814613983038392444937401420453213474436647654155351079044483800295403199817593281691795386010698354175368150573943166760389831724190991738277280344933034767170737735949974183406897815619044901541789083982020650887315803377414160364873419146561973758441738348359417005530188206258981571507432495402926975130207585759625244378434810941093017892917700549280754121063521806248301247752963946839936271201396856518484733181095203534890008793578458396170748660283680772506971864804501244326169712101142189190268312639723455688740558556181900978710968903752364465632631589053005454354697379747015079435207613188811350099580355425470310247415070898854411996381396818758979404917175729471199366434068372114617029820683267635231308106870210629082880961363082003531740754144440432180908833961832029157557800794182028984592319823412157884985794637281454506099507698684058683900719877575682984570361437704259919529785455126606568684037598635625825598606728921826230885399958595404805257415087097063720651504869160976257233243093813706673735463261095994659529218300280196332259626283494146249501259457525869380173249335751278134086204483155878889515947463617830339503149671842478444163196397095841050903841171083913837703754202972767923295793431303905984043508074295185348880056436076555896262477955775943187993373159098609604752211895616641661671262336355301357392883267812764781907634056335735531755745761550040508754137351660623913410951788405313211051287877836110521096821842145522662721582400618015593619684853514478465356390852734244989483131655209578778294017998674815326439220502785281048883826598570081008564436467050241496485758814988340196436866487042570962416939667403713375802936032109615635504750949125784942185684769657647076509509624545596193839570285262298613044689194750381133656737738957431403616904404673447708966393249507720313285824034407741964757965049220787434580863867193358657282582639655088821790001930585215078928132635658003357782799561174610985152599388436821282995083917671343358377965250176998535535628094513039428309999318899856859831251408222459660847134918566607540822060825390192485526235168679537106468847595780559311750822327269993723504323467230354627588093305152106059457335673351058322307737131497060592557325024027013376944756919208787509916644654796646240772483669548277714954784823118213504598541797615634652638555898063481737778281406797560086202926687948865505096517042800894035974478394786020537667308247909484054291469943998855824266514868847014643113386659820629274049119084981997122707945441917486424201124879061713221298722831660545623683578995379698676585365746029242072831834354315838417845316365888236472367078103990885159424058770726222577989271291891935130625566349455087541990806078291340689949072856229973248547406826107658458141150787890273515648580451688702645629676040177869871850673673857734454070749633159488851581915427012575742220259750958328416370973785679051151687261854073149018400511474541060057643856888265174428426860636932882960375781585151386491764835013414542667633040156546636153212141267558872026081682180398258237626931680805803809775686133679999881651811182301114921230141906350466727241144695038346954017316018237377968109533857651655885060663973848428493678279905447779065285763162715730368467807523258185232048081130920267249919637514388247876034954302883424601853487841217501358205895129600562664228329485099915574600734758613340670543897155068000312299276283102920574064164628321689614636440192926283820674199550277415302564257469254452566784555330167771423023642257247300131147015885327149309104846779845701211233837281206735043353431081154394868882983151256624285413689434237374302886699199898476745358720048452084419681461356483929061406523878161781669100710834786868798576443119207215189955268521079866534751691771346514608214983184395903151915319725688066507708437089998004300153066438040306879471474556585522990007407815734829309963604371168480334907375910296704303430541688313044096868528183033048681168690491441526702270306690663399860070537460831483875111881633400365338796026160320875313113994143569513531130283059026911441055941192088064957305763463694553203854177766280964628147105641055307278363679655341735051639505559545119541329805128069159912713805681952000600586068779836160098479333034332744301788970690780448376087050014904668583006232690843676774947410373884333949764033525467111153810329726202373124615661382100832793639125137914798872732265076354719936729648014397185820086916369997743778887407107165280227784661069922987011655488519251132946612597777846485474517316426935558279945826239781320877116190307178058549821264164619044571377239208432535295600755641417750745643370885872760110041708344813656639462753476344750485012482222124079048755133309661866375528900024690400045350387563436609997817047973528811316258423979301126729542034221469996044214714283457903819330030418695418644692941069056305985802129494104648502281982799195208587309528880481277361373351461229444369608421767070490568559537663821807397105195756543162080112019141688489697577576751360974937818140264775103530347479838154678938401431558301125771197080263095822889689100441416673834238749262335481310348616586960431327858798256646517214068530553533424732445784429294663739228418184358735306895793876254089266888698098764167557174431733028204252023407472414929344077435062299004760350552704599052714749663389453170402047522080034248777886887358296691147654150996833632284074885089346321890372021902850213750709003235230215813805798128476930554021112823975056470656620865497792219836488645985841330246543665982722296249504924200202127422786195245515026061723015772190088996057683380933983139554939122290290175031016652544612970519533207222633968892927015503449796801757350838348247725109708499008710809494805389827272131843092682464545137394600377560946001642344129513377888012396887221038025323671961208757393614358476559452689456787519945492654633677733184466493858914739242392849396395293586442597057072306038193005490513121377474972626009200751694320695575997340984625104587959514831811573224130513412708593222569656196478904888392601994092506541546393236707697351032178002721061428520933481788646062872466161135816458591621306175725455732264259820630070888399097581151954360026680060367174537320799114996609035718769327456068940348397250464223844519371673491151198158175591033783612777195343929838501499921581039538248801286424706934363126459884708591805473732531711601854033219321631055528690416254803802882690687596065722366378462565088744591391417629146982694060985040117618817295892076938928077237418830775927046264613174610050289441537181502398969907540792648822364241568658040581232172793981207961878212915578946189925364335727356790595565252330366547608767185424337272878135252002805948431726557322646729689172862068121025112896735304342110341735534628152237479113526895998886430312536138758399298431017324352977569014214022037263532998314086162666774106402243552287216354292114663005767572155681600353944312426132638493252216034005388064606643029201215273187009025591791222440412470359758199380165108471535399373508249041675365789953976984145739441141894514760624159136494456913674790398657912724740559904564932893323794878558705343384392451367466109577704672719746537628516534835806811561135425858204734571511649886100163706797717465037069103500203162651520989946498924851119560756241266137904036228201068637068476264904752346082383841886210923246503806003867177405954440693591636699923339299034480793762936640163961726822429303593831182260634263721133701095360972916350933057872343900607579612364977224928371076590983189153080638532495151437944989005446639399402704343302255962027862004991719417349197491679749531977959578374598151346776641916067411420280483321072378446317873782637845473622082079029787812495317287228202563405782376920811310011058811640666689682767542339076356843185610888455006832404462716195857523539829724854884079626087814894742024523659554631455485197459356053227392274535147754318379571011600410001558375235456011825127186860293873183315615650692037624647677510638224495678191931717060358754225095794647510626335821785154913042884346382884064752700916418131918142479061047348571811605780161144194062779844984949385291577880522205041496601597082298340714653245821865051672975149801988617940070872151170805576167029451430533558634747953252729149568008727728564543957791580301063162512346307532084671741807596528453459996383598768242101738931317037554755389821048012570458552923638198067816474251033164520416592757393574611894547549892782677529058876724182981886870418328525145394716107116126619887564809000975957909229848911130487656411111152760536072970736466638323981086315140278696613616261643773115838631603331036766546570169059539004441513199694996977058769848428339131287472232112132624353525917278205974213021031735266527357499390335800221208282607578915009880986782060884514739245158800102791530796854090358514687628946730054826653339279890185843288006360656250070317479427609456548699817905016659398185390880032390422673512073130357692889908021239300363821925530189907441206678190016064890788759003495022925235408254644046394718513856042267554646455859580928360494336647718166209687961898088469754393260013867077250224699332525202517586666693386307132903633374049893702846834202271935994516958841145255259643100315235732132868014210698791334422360086900546503264260692784174416383875862218801368985420630631417231709946807558997984975949587603608085226403828159785375243076340796031399669505211993193465533681397958856692387277816082112477718024644315541816945885853291267895119859195556884870314766282060120120669772247748623705271999832075553106150546541259912144326085171516840105737340562720588288028775986119652953051142675772571663926462953888372753538642618329440954331134865789657692624387676278027280886522243088964202792857832568470538410451720819389983075384076959703758552060504961336104129650059366396579194267433863267912212060840346829793634150893268692997043316204337079027578904003240524054213026706786173925087217404863646734705019946020202409563482721944813252521113765321056736826836119454697982111474174527572965002593446798980151193113104179628041539253458956373214674484099816331286634740990744665942513766656044394337019344594165906911157803616161521735596578096378769615115526168598736367270085075706354361288523673564823348644453047547478360433004085555354090714650514517210458773575122418150348933895893733763004695855168151401866279136662860027935446735344475453776019821385227461269607755358429867272393340793771907433695583463853450941309811261147626658998136742710096558928337521975002015046730606972887322320336131272666130659833586909845015527131450683058035885243583003682754682683678397610284447920372741385685371469925805511704750994309679584074478144818145535185947284484969589729424611361324178160088208796083179531834916757826459474253486113023619720867504579262597102178419773663284111633195960897723954057512818132026599968571556732180520620966847347377490940403027987253124543482285291887818674168500151993479668531978463617176159354306229540908624004340922352628112624123869370747987349940953904200173556165141541625872669135721000803097992229108816221369944545284957275457322554255706926989652546715105776501573924530429706865015273532759548139801796218338323405492008901244769315429346624874987293952677070581687487305052662045822623804974308457983180716536318756980467454948936882411489239156588907161933092951404521567056641257722979584447657169235730618429379115381178220724110277937345969734954869491346963002853523801378136086976880333624692281162372756726056803887595343028839548108103591907777831224495388929982564702005497467388479766528156353865066581479930716478971613013749091037416694214933248376294501139602985760982998777034780697111437818531801577407190584589954020209060020586080012045729351190551099382399592057499813470500416210671991923116453499537507867962666687008386154573242484144895356550948709619295815106595762397676335474019564439556225856177062147282089150821396675297846603718062280919547534693313763814467160011961225628514876349504956956921393046334433143452622531319165596721826814260955459197637731154682577395563501660182245858991691979927704677194511858422062606200365502249563769280859744295472086947270829656122058021212878655960772404022386715361434874381933408206830810463258736604765683435295304921029534805125601686455629280992070428638470905979926441131166703094008360023922619713785920224737817181789463380658363663879510931530263464687002258033951470070436470944105380335941764218296962797630213406848960146664540182047299614384350080734805901837139014897511790654884863662238867462322018997669315462967397070377314745612441702586123151772602300280623064154732849003974539340348979473659764121582797879423226236732611891704632327226581225037659420477171843133211237138399875508749532678121199186610341427261603742951870384207339479184331783783257350209323208869738238711872651552428983733774415506069151312646876616579900993939292975115293560385050289391556813525964964182526761052098348741627419954583415872140740842566827571967736150445709852986064285985958493567941703140998550557363871559849287936785885196977278380327092262234537573477417767845241436809355498383688264081642810782657679913522159742236884415208294717560047708297707843697552283949193039243275784368220680089758131884170607488260861460450173998965346061464394581816740790608875354899860080873524265737359219604607824019137552227762364536478647159427303059085274207967148224928524638564421981362059235366680952511662717835772579965258291222418324000846484666271136623933849313120195469242937241739278228665265459103261984857097972663765810350935100315004388329732695867162340332097933332916264053823290307615197015658682694512872629454082779660556965671117980961906518240656972128090926013880021287769134572142417799363107513576267653134070985363625777218657952038996296183924510587237326950112224587833575249142512179375961857528280116253652684586928718799935535744807189378221779333488971107475959021961867241289951501220457642314412871072920997586902535796324541015586079781723741727708788311313143925919456556425123127016782691690644852392625775073920748790543574561328761868344231634394334721724604709943121362619983205164544859271600393509572094590828801191081356878971985295644248117951542352216890536960444503280385492721760565235426169932195883587113520497916893689850388324389512743447655411054527317324235389318731952415349426459610073657493388860823959078766729129937262949022524229415459524593574465508171509208898441029698593492717857425720808210745381062203771765926464481126941514005850618596203653530836705138877026065609360865301084099677579018789017271184091713565088910094106583674429266670878216191985969255017785949689423570912779113615447482714971842116829285115707939441142190752934495020721320189704588151000043562655945304850949756469833053561282081612040831138104376120366676422064633670079880983768103387296049585512195862411150087569504452393104846410013385748527362732109591859435439593784405820277263319669405806125031644773346940088455349718092720296698798711860563415811530800988405181627029176049886642198980067166080651189190364078508953886119429803210640839399154372517573227737107808960986449964878500814937692591282692874160295092155245241009319201552644843687119065907317833211383714396148085053515209358691313191407255852487892835866977466196584764397913510772632542398058939551817983573865374456158674312840735715120961988540499385156572756378953433586656451681040819146333794778544094140186287637349212848248360477740062189356939237873860362820636922793489546440650253322982070228565721071965420884067596259444205336750415338539908737676969906826557208507493289070190680178473864085137413343467607802129696766660679093577697369849914080556761559898361169958425193944121740961506549227625623627970871885977452089398755185928654460383459331985729895104086510755227100144870669727515411202529861047669293311644294088838929797682624681263721483027438573441649086990948602126537405384040815872259451695025879705264285058521286499779400135923161190788516222739826771025677112468491625624756472073640341111664864704531228845379895532287372674263660030170258606937745099014297399671261465140927590589042738355269832951081652490708613234816444518565874934524356738988877683209498016505809233035610596706132926296055399993852833497914406004460963097156365236409292052556853394952958461305283003736074953457459416493408365043771950387355831250545320943027345425733255757136970714102808641903829813927334860850789017274518174373882622622704279912327867013972675422330731092385348285645036068992038587303091786377700688293060572736676298612790201747829075885868930237617238828760362608144488039167955973553421894773821069112432986907969043046187962006255740472816940277868028675322315367171929090407510476110792731367971354684450214939439650018114065386846688496564529160331262155140392636243333853435071380759054136252220534530588171657983473909832242563599775387070241181611589269863009941053664964913485023471422157194490142787348377141266559350764523577108728075196363011757185174238345018948369018410444734853511173102234550293113491231546830848727130177943377916457115784187467203485190763899325364192468987821738306375120743266013264796209796720992398851625898990114048991032768892222080813464505639808101951092622948783850651745724047935799677391631599966652725359726070838137861509525671542023247947494987745638525719489944147596374954965856566343021145743018351659538740133437676052131780514791451769356022008770458277771258952900190835146208224257610143435498329213761481654824336903785776223866140699887456932079506139015871273905253000504521497502528686868019744537482223019328439390699485677496532769339447093303840469471588665391762122028575065855086180941139055126065251403455348486224270736355949412098684542050458869495279217361227137086520824229276915761814393890810208038782338609685456444410831260126185510579214124566232911478008052185668554043157529084049907789282380506185224978410170437742623901273965981663421156013188831552735484746761933665100167841929327750567732924745969923957667117341683916750248005532315422474925443210773685424502281527252579923714879288427863953552242828086725884764827792204037122874705885138709017770934797755327800192938313674018725878965765059876876938690488813233690920578551537505764798461413219619819030153928230421418866405360194486769418941031269668149224246958338087925503881689600894400608532946363059312999997066247455841189715495533705580105690848578078639089122379623307635982985883642981856438583186121434848789275818141805452762784177365238842692859996467345953280373919571110432710254425336442478568798714477609192247692284371737417771865428828526794555754446091978980682247122783844091068208326351734720089839136526029116102336883818547223025181826369154823790626536324513271231466092654134596096239302345701935973816811297537043770673929629499096200922755059522161540982136228899568566924955840673784968428330291582470729695704433935331563743734072836531239807558842318532654171194062317370445420903363380016551818924407820502472081130461970322760065745395125028419220919312873275695912878265850638302891367242514991438237637417945375237871753566522194749384401304438616363075673928835151873956293613990454255526427602284438259104557896164072177062185512832988983101574023194624813305634815192614570444565005914131140082801720851029945014358984791869292376083666082178112999090532633220851739040961892789359317301601691931166649175782111740456147892950218318182597557279638781223777025975747154377709645268210132380127070498467171425651006577205005617839711673624130707324141192170389004174200398211008236545257492927036121030370726031218003872408131161702595705152269007013545963471720558650137843642021018494595342873520649266427653245331807899078407557535731479890119752878689685961325857067358369541521303954164616913908818264867510419324907604542981790309717461929046679659210326747080841215798695142029826407443481987326708669598139806941826096352337590464319325580626292855347027373628518962296830110649784868541942156603477056685960513908236652658142795598831966445947762454795387582010055309173378259121442451068544455145895252229374350130083354336806239490044555143051757795267999802525828975935600966327970311388808986184283404404407070053594378730010764576268216847157484547192636229115463777614165878048833805366447017107339485719375866656015653777327165521511300615122202934531541304355651128775961108871655142216331524935308028635852866940181739829058474298300746295099607590817527089013366727296590285938616616173677340019499238366372604037544474214117291524337472803537180997807032241256597131166630484669352631117480949843848189625111571661246369149697406937796645100414167478579595310131038909228939142069825682298917856323845366324090072382056064022909062006705756431507400734907328233896394788649861965609083969880010611303162244314254979913761693337343329030143544813319615667028796273826366353775556903197728476650461518816304879548435622842009663668211495760538102052451581302658529151170565353438778752671553447403658803720473684862416437264283581523587119179396349167830494849678721052400679973359892316026392554408375257301916640209142857446603363670091495953094248519314953406400654317243543849545814565150237904116427845535701989331912252029329927956886794259677853744628271161453822312015735624431170369718755267062643257331466485111812912579420696717075890329853039808175824780628178537983813981227469081851967368568933231337384103176148463049735735905850000674867301848090853669793418933496440335725938348406523331293991795993166580987836425128893679823282719273823029034827744312385245664362476277993187086480148929136913061211509271476161898281768031575020632805395695214835008105034116642897841596002656048119828890332744669235485384127204773659355231236232674170465489451069046286058275682372698023590994815558956492748315330706268818315565981911071634463430731872406844119107619340476443620493886805461762820437843513846574026648930822265517114732569123565979796387747836872765451386224438603240115845029778953622167033509414269992614855770862425008099701668507726871640330383172719173229025870581353875305566187683764635711384109430418662390512176377308885263586050015916702653084218811149026460792624162484136394539052520600975111753651390144173450804022648959526270889188623145581563429528049495974314726479117162170933440259515770708802711297417847903349847832359770726025565774751992621988893304860797743284744587835200514702671462917038572603576605937399032315310918345923894355688365975315421583786866120017795678840012715978600466529585671452728180801318618879182560458510607939531186180008018784875420738501098636245428591974129053536638857219049639316063794746446526763040274927382108038391563018191533181208423628970420577918324622070597051930537697776604704030074314949921008601581967838813008152023369951113655093405420427656827191594027921324851173891110705749389956668965288762500068319878485617378864706969584483067580130877918026069591098310122138359497064304916989030389072656023162958914358199243599642233334535138621504275910996599958260944882259708474525614339206521684171502703822166480194804816658659463060181480370838023566308008436807450979937769205133105895520438328035932180277988086664222305898271607521754459167757073713814180134348028487878242871337538141911805788011688165251075953925697282286226663499848609039349815851311511309450342975260256334995677798477299273230657057725360401410602317382274134970667049548400651568676511308295969835210183236672727402953277704072313951500206849843185588672021689188778786927446836532457481741266314541922153339977053379406277581830406027826995899180487361236285934004230076696671467269710518194163619114133677876885592374782427019898760553444024960101073511555364507829940739994701746810235108350913505397420181727055161333813742489107074429809264659563632603905730399038763183109147476371598449166251776871821962029414220639214683449842666491974678746646327523599818202121019726544588189671936823549028278891773921239945790593844818277047769501244123273706028375877389476272507783282903146132958108435530367283107104811100013097934555532553296144601410030784483551923103126430791238854027343953232687848111656423389687617081738677335339389753621004215604913556907537262453802583499344847177892653547007920277409866560281954078115144747541502065831086842307646715309426703316305422305074787898544840957901098961275803301967955524879450732972609457064712046276684005503347033959193988406658101645312574194225032956254455997357584219451266428211956755977211423180252505673721417595832228106930811058953123729524919117660252417086139655631330679672212141775596128166892078800162981714143976200553096618294019246212778302744664894846455725293818800445956989626051914272563757970585297296185286246484414335401653688098555239020462373500846128746466551771736655007383186825561590498949737693275880023732147426219799330090504832523404713105335912417621053655885667138751046293110582712594166240299579554918023568945491554574438197916533936761489721902670527656586783430329365018109097622854832620422479969747121378943818957370173096427042913353319763761157293889600658820575814668041536313543932455780926838693552973225237146237357138963851096396379744831132200419375101359672383717100877746964108432414241763767060970192459264406359986532409891141369584139488285585479232623223187979608038374406197709811275999717751131721020398022358956429159238461843516205825193340126496548375350540565221095241842091536844490989006820746961454599958774924964196344797357836765567793808510608457708497808647826630135891627109322702434057409015468240564889806960158107209564175626384334334843302696208121390796330265260030109984449626439218622845382927108211327917886545195488260083309884008787683064480990631478533276786350165730869214085514202591944386585760560825989632092530957337674684337814649079408282219918707478056048830976294207952912112213993228698715829295793189937180703876525794076599802031015614186902159647180099821144821801829754982814790444677591066602537486677456214757357986339078187967268340268194618225385666636821596858424870652110403290857566923773810708610387527763065758772227512423436546196399024253566478616280146495017160642027774424673042425291820961484935781073558722945416998485291355691727311253845563627299509349411381809093443944685732970789732608347378350472857527013038866540161622513782198158019261373549951452117004289684186128997144808221343336186847776446087104988952251861276186931536547720310731866599696659737427281362004996677555536544510323929453638646535820512737185860854370751019234666373769213680758650320107407584796640856615322943138746674741749338143737711279951369962543948898929418081284151661192656276641947748846322237147039545837187413488194946164754489818058082748206153269034164909574109057215423281784096051069006397177168383538908143818070891247021062116768436566152366210621630427809641106636588890351217357726953340992917618782450154721381367878875143477064072010004794410188512406910623441960080316158443462409545394749073510920196769307023629918055719828000083059618558578007046616559431742040812375636726192428523753116164051722145156401795723453873122189101758901110936103631291331564569207366860303508705345256352146665407293153851717484443981547117397112660505377205312309423042806701866620112069551757492515144737451515632021703493033345779182853465394764953908829588260351447501793182063281688469346818285356213499510683338769728565105089144585494443985817248589402171219607420790060837589630342270754650906488285608346833787797493640954209454855852612834045998432187218137414106344779162316407588460132447258246527044630797150661612533118127731058760540243917488729755129000250643408637385970399576189164922753130538351573270680907199299155412350674371712997717382754826065498235187393613829128391020754373628338583625257894769528804523709272659051308912749065770302391119007281884244788644297987884501538479066535375645688417293443565954029293313913914197020872194317984581363559584431492859602944537123858483239035871379307831702582083574498899543567171999817007837616870825662449170652458924401180545252426343926922760666179915536925644038471938829843694805296426345916670534055686503773183807715184117046946702885717571160738655373982606315592095626109859865041996731931974637912437813399248307199453849021926899808934755321928308955700313149349099746840109481768945730821774748846571603533607501634747597037844072399317183965027640245256983849743299869713073739075064674704192763755419968009451739061571962651006535715052844459057147660070768215015778000313210813000972178829891235100448454919626692294488139745123392506073056014011517313634017586288677626374390388867248892061693323346078483937536766988898655925243499032478218264710620521285324846194955672247358741606593451298580127277423860626846783028084521928067810807417210457438097839777196448150238815697671904432820449041513175555512246531620118483586668869789151889688198592517828951397156692433168884869828940812996564262108757963634171308490394810603340312049567621519800922743082565311031356852010146170181237051098869664112467085153451019648309742004638371049375074769973553648779965959419956989553105166068285565514062497902473013013748520101946781076833652486036192169294337549617426837731796284058472079090855845809044788100016878985839291280235596457593978180887958304795689933050696862300515893345987499683521054754615948009064050963925545503071909606127627517137322564380063761196164960861701352028348978029846027675697736144486093443004290687326773532460912008758052511749607061659096629462341396350542774753773441149470995619683824861490248796827415427872608986016666196670998818667291196008342691367642265406094000769690011189873821348902712601385226289121169952332486966416873150545403985278474744120379088292002203391071647134921961933658154996648522122670795174444672961495461591325203592863778201583432709039585649048269030428053283973242440782912860096687808653461631802184223594606905676826064673032597481767681247504288350045886879552347001573238918302597787182791447536039570824427140000534413218351122856674455511043219420905671142447476521884076543056402327396604351996850443235106726471296349514030760038181390422680708484876502444656813521506123273573710916192162786369427320409050763213403811741437312856228343649536052880809738110946031066037361219326899604486344985414452773869269185923882046907532051989114041143151820616051669313190473391811157937044090357655503357792494411853275101621585021666505466408236027223460459583184454089861610374180258702946788615104360807704057966080634665115752032999413374774842517961703548265095727423489498080015469266210111984380959837177657014726732071026719401805546572800654305422814404856993962543337807957330201207467245473283619255697579732814604884877102613912380044571224320940586001192372355845613210626611174303754533537594324638594884419977299839961903071575329622536533895965996229006229010575929792762817904429481642430415960121163975772547426178635619879657349185406649651622371412012481966815697498260598651165900864905942044106511759904599801809441520157901059650619208480986720781786019663316867919690446858499307957487707786769319778400082341816881436080552632522175825904978524645114493670386867993196231967717563936962945976737452861630536457568059889020117173670982396339615794786778470807664709123974293520175779773877908126597498348114141073171702458600762058790159543972859923780002636964654842052070750585920430785491765803086478427730866399393155342200415232169371598073116385762720161785106400058334718936319873234108987073595831080479076484784242289432123160622429789008522907614239944313839408812819028891423326617861683117322973709490007264494331169343705845240380183338267337497234107764307584477018786652890117482444884032830830958639291730472852935632071407530956725512541145179457450958739850923632011593915002742207305340136971999104311285817887980972766158301012657571330014278539923997150414798819791676413815646172515952573920778240440611213997406334603364060779671464508140930925712999430684393409087783752861195845260839007454717999207995769123540229106052911182587987344568728314236610537319567492267127553776856250699018920696406472555684391977636020188874655813693271189469965730533107928286266560832407835745544813021522030043390827607488078961006928770404514839876209687705670801305101770565704254690474368041530990875971550609627312026345428718208916736511919883195358117705465879257821884869130638120370913938355513097764431473166074310963811398542701029709350096513313880759640384400845065355810906654597464708313295954889639955150583390377296333253013903550471831914716699749885851072727815978228812622224366157450725667918770508298915154720070200195747649482138081866792242111063506840477218056422105677150619893567304659189867009286119896874628842996042998164414316885909130030910778418157923562259114919443707827964165540620532604271771010363101494567770747980113395752746179646296494791018853910746090079529842604139929569087140423967283316475064470266673593257977875654289460939677962247946782214793228230427146693809600156021167475422331424493731551807904584537745082285829671959891709120501614578082526352657812700051171018831877776563074841308039828248952345529530173553647340973809069534117784027870651520733218536371365196469999147955801513116770867542617933290020535743151157886107249785199495862831624495035296748896732199938774374236009631669709191994266626654980861489210136285920540799066617390691061610909775798201764016465124744206651158748446533236475546444999805305642773973658949340834150594572195386310807651298901281962183572697554722211805775227202465108100993198980855273785801782147806394328196819965113216533163690417671072808601695986006462078749262833419093646798928400624336483984162940799004303024198379216693791774243364419765480315506035499177366609423292385373064702299850759064079022526240818810580746003146766097561956482343880711131030562542145198904909677313369225636658280058819373715418808616930641178404353771037533819228912539585030485234174556514973681686892020646371889945417246211936937746873804497443572943950089656467688478876117127797020642698654803092956628492825305018829476688314795709684237767377938020173720594982857381121391873140915074265756095745227841910133966887684771199643963634238320447938457347436162892765264371863492770723487295520501459248039257966835798707314353576134012721095759123108291206156598258371593394611944288610191332662040582056746173777091207136508768264884711367957782334757916967764478248944425321538163167772090511096606186746221373771081332690614362994436542774931177766050529765402920400854017768624835011539229923898262225108591825520243156709004820185954951802171410225548124155580711521822608060779071117159580326818414134083566887440689092277428421101075547495932906359132255104320539574686784699684177729224381560661797121754730937741720822211693798219318340052471844487517167661451402533893702791174735220579403348840053364393183591066753163996630858849651550138748651146162773486231162378762662768627621355915156108459767741652105819284383626838159140627149512363406804800766611153104862856430507393260649751953583769437633292413375860240493225983316572968822379358079916057374641066461443179045165497865430846085846286902218950157235507235722055171876419048180206528199738000023542323681297464356628230489952886671164259406101522552709744262059385772280703337922336119188022617628014139958124575574844025038403232451060215389703202845225955253004412923466745992507794573287655087089587395494435572449192751250981586181970115609907589383711420217218067522217563261674319553666614481369600296613359234161508818153900171315284497455959894889146796064003364325404245221190175782567613470997435270131205310278347878633623842361190290484680737102082823223112057468060788849821762088100767812458547221456013640567818427229516311695389119117927253449075238206338019654973039909217919113979264757230959738660628896764516706633703728510119408697010317409019147628268077269459343227463612975081693850627157409293137110458646959183407972209152780122633895712445607128696928208991058039884291367745725304463637516066538717920014488234311906238114722760459723622149220739872989493806563738371194640619229500774787093481038089084585898415504736983938783752480319310804345807998792673308358975377581537636889694967928705067285481349445782397074606331426398815544336335112421368440283454934097943134570313160362264120334914605268103526217534119197478984452316526091142832548038503764765600042519591036153036522207282920699523542777413191460295885910118159391616647715296988489163803497531240182746034197443333126868264821798121093778866215989084470773195418011061752750486613796313671431873198081962027500466853345346164269614342728174276576022029792313124366777650149496537762387171221066257253915674835124088629490176691889904963188742363963804802160621167672302317020320465733497127981485823586686876643787188863370725006327959945315429984348575913585581409276088650526174526759677879553420906069434831033066912387703122020049571926664563971813069935355365323452007248511988950702675672462682563803493716187001957813814743837701358762562717920343382806553394718944632711285630315410531916642572955534897988174798228927171005901765932143625740932849750199009890699082805423812842704731261183406295085862114245031284390234449251548385475148728068898543574187012753727731211134010101954845682668716062896804198923363655703481841792547289605595048801632027800594656790261887703580753047287301713407995603045888978644612035525506182245634844071387846843505438761863648925272435597653846118390561416852524471753684033797894138185337050457675937019601443937505245973898948334586752732060176447538549576617541706330356801949530958650819975048171785365387569324678107721115592155451940234469455709953658990132928874245622645118547945577780008944277725480937356457173612782673110634083838015153253414775803555927505492036502665420550097127291063819771698338158808122831379640948715310172457619568718396518969095612043748851682279443076171247943493516326522552861100694081453508946545305545003585372228506025551346703840597460554089429376014059347998735081408740729189720239988457705882046463887292865784394287025178453898094368291461099814988650526416367759545871049739016391382090401076083274115535131238218222451610263150745775291745708652259622336128604120570875381057826699684247537012642359939644692573369284333014901223448095404969985704975632312266661602029847546687827031041570574162989256714785333574723601934721180617966577217045238655634668204008041946104637915724380932850061297773898321012439518693226769675524518176353015925939452119268557922562564823232196178778603877889169842899481517853956680618621385796510579318742459455916850247626891846610263813976848833957930911130754335697379549741866876245199091392326064981868722863336770299305944372843692775110974299856166428785962006896037743851517963066221018271133631747623581793583375813258012660556029993066088429257689002941624207797921249266775227854268233457027834767861045397746144158182312339221145446520116844977152466676822732169117295963988848369461040413932937817361092310235321524942416385564186060637236831588090551965970529674588333899104438409963557886384180522886137905294874034718255174356455971267165979346147573316691292144825274039776475614078695018772831004451183411914007163027888093774921248038902071576531281620865946173911285051159895215138351378505931207233471815531369157121877180715984572907312925095679342788305448508809899255232717485874257722799772601390687490377119877534271709894956859698621360868850937508469863990188296133694938924039988536172598400269940506619112481222594660974030400424429737220387260556578684807388786373812901030900594738701999597445394230571409374140464176347705860342112426117001268834271376462862378769675138130401732812276440828057952776977064656741842391265075289765447839944732983602149575247473168161578211287633863342207746793738598654787060120747369292507541521623584297102692811412070852081392916346225632008399738309578837991368275614365219584625137225460761602554071435069273143653187292025287561492731395329692888923453525884990383397282669160848443352943686641106483391115504444799412148130573222218984801775829967716416373887323244069146638522632967768909823680131149307622972648921940297753211893725301449992288628378977543221818392715802702615138343649207102973893720181443901486015089012965138478723019004253909211759547854081697674288728660981937464253757494583145335539165425660844354669644849056302959879387917468242926234644058653520785646156799171262045514932019009313496216264652447151704236651247409155290920994200712359672737539754229509199381004135908781369005146476834929816071714707169968872433623631417177544168095152542956100560186769608119029364700743231077307753152211920219285154082931627697847668148205133642236767558194899687463752917597449140353520882077722356373770348875375137286752791153464410590878640122730785959866421912034829750353241683939876559083900393629470122152522335210820501712028221099929452315161478062083775911406868780073739262791265991817418368798331682339693528710517368699613946882395464925168220137926963455780470084932709107748919673731417970658045690596798926944445216425853544201464757600165668890704569174244159202269494177666961455989388144476377119016776880683478597493024811296281622804389054954393666960888511878805569576630782195910299776013918546694954807615793893835585575651794459098358411996199796559760462640186089509383806704149198759623363356840335089793718580520642288684865967073000004229556649520499933889593615728151338035621058589682242575497247228194836465351976611699913914271694348575601880460055638201213554852719061752663726826992594532948381981735466363073933514185116358542592387887449424572051349207461163635918365275257954271595926080602300253143417015657724444298187756693248038003615690389708662115133378199728070699167989318809460057153063255275468008693894013929935641906620208045463636191145637137274217790309088982279182141526946348170703416706347957684655615493191045016368243951955228040157080558121760844845718746189165698929568174830678458965311606326154381882285405879732968338862180042478634816800099174347931865973769585929925226855213000740305048833126193884353878031204263243938978932772159134245427953419909686193887475345958798758565007502290671994593271411496426357200236875606661041469910789481876715839845193027843325282357256973318453713692990660927725223414290478521678231588823161292658634991388638172219437168494450258057442085231661849129950255364938847138449182710094225894471445181122126087262326973695709872074427565657702900653166724075327719362497577792370718175760155537064552174959329909371918754447143880180306667332872035830848819902499872904113925493932171679129052827840875397995587786837382243229260087192836295252195893419985372518717260412537308526881619274867567668595139287750524719490661757204239154842363819436823396870562406343891880910444311392385294903554824037865238614200952305729445299726578662255048268249293043572377136404041959153626515786233200008623308210986523785485718481967360336579761183881010638301325147636162049383639374162086421010423817452959399670593405199778690222501525452486573498651339310310890031151568553319940163603322666465356738684889392693869351175536153607739624731706224524086921593731593566122574149037217811154195861578570290242636354947699493309397611511163824900830795046506984042178748911670275972888415597591735031494790012078785839955261803967812137657382211044548184550780762399703909428251286839515514985457383998223498349266201485819192904097741976389604306069158738741285470230949433775321230627336691057815496298952156404160857251620436671302860666603005068765059657397689223467944302065318674151527639306344987021208240243831966445179837139183320908250438676870591022411796948161665464246643082335155761755502910439645633048113365585788609983500858414685552108827198659678311988201634485022044889489604892201229167417671369773044703859441185182385618240529868888877741070732827190642065032611053296841304317936550205799654495388617854132301514099599996475964280367155284165589816706565424038515221583862714364483105570632214817292140543967108681668139529246754874935709162825793943993991134965668164303237446058309124359383092376553591463947496099943260224458319191810763731275678419561398471363618352324299618315586397598865573392593847332889410951224192006175736925369489235464800655922107331545483460208789252241343178667242954386061590130626403132763813204363101666758204270240132857497395119575761748153481314414826719819726555990493170232062791391348735392179717104239312011728922528502658084774248946066979270283025777556273186463146151143570894970300024020836551542200803947523829796723605779208879582949666119803811559500388053937744177484151021798845076751650141641883653891475790703748729617064025414328249272821344364546846742707138843383754640518808399330014603975590778939691193971824332620149530334222845570482239610892980703140166536106190719152311297148366901261038019735083270051078893538222500493352438833711205799124228434067322944976940765472158037895946318118038561293008973434757474181770041680603549137138952903048285710856912898093986072433112526268504675130595725427971994575576483590232458501843085988878740202440570000907441753556519268788832783773417301974692852846000386556296925526877936507130399475165573669360375514027129378683640462266562159080419423649510044928907328982586739887245716831750506984222583915499463604616071109648437945373868217056220520828435465260895248864534740512799538299628549140628630947947595199744462785797558562749412167947453841172548913046233829586291536102236863435178489688131429002410644790950412364213117242525773168003342679405069423331139563287047786052459555131191780697769481627648090859515191447180495782570112641607538205011970733999425425239080260314017382514117436885003869662134934500631024307102267301222457167575161062055201792507004470659681801502791003827184115196259397829695003361864224910939589122689147105387774386352402355372156324175721377720447131018243403772435546326655328977615919817344068892802926043959535115238966657476178953243070613261801482496370934328855755438856687120718263211134961044108078062394858940585738275515733565529422190964182557794055988709981101277700180584342015348398271468110424929140915819959105350058942546938983401460729701876586365955680471820666535213380709568057578450756120411613752379635974650923315700407857556838926700250023027775560102391114751236078983700996435656754820945481209172710137078071147489835661951370782030297409473902370092526540101136919105603079496815946399873843832913186926037499610403362256254695174148464939666306010793236330204129973280644961396547361072746622997364666586587282731088452556945733792929206511368341614549321325851376839069846382958086222175064294035134312452117728115564024336541540317234895327576322527949494294503914799576066612986350761842345165433506047599484945731891664913704690715780048023932629304490229008194885239659781610113894145182648272307911075474811985796314567793316493120218556554066983263514601842710661666312370926363296543072513816897163306113388456190199335685345658490069901763559836712403910652449145668381409072147372271364445732233647563223098898072142177161822785064222748452694968018614825379055306856530908622987698958954767433223985878885550862399494729052685467667631034677134770264789589274189809649223795030805600167152300648926341543762303641543503742357473856106616013055259829543162780060686530970943060129247638022370971845077480825535555789767940992940497238321255871443934600725989626734528043126803471924301444059543183395004956068622819177810083524236777853465550633765168197096001492192205516399882203688728097032059682263211728386967684052741574200246751122211472962899011341064996071336684424874388995852449191507911257894729629824306598511510326026213080168511796254410332169514916648247837349997204655748323588221788818878634691814956152376789488984891981645821197291655096794212804832150247827594634977077794574066859790642480817894008294232432170593393088277844950967395860219356611233232256876390895682431566021031092883619459703786906616156726063406555617692318964252511059142329341658437413182528087618674728658590707539702370737909482055388785403552655016880118368448884911371456276734593968742726207296555210428225009335549013516618546573942677987397788292801555930488985797573302521060597547778678807012214301637139285328952797488870365466412027060971226428762871295838121988901968696444428038641164380933916103849362404445529975068938623463724277200553070601034462676677185024158394692150184094554347732246940436392884887097977995096574193833978557693870897158958990324009673457339629675988477441994907457895866046404048090307098007650756840668019691375181416042571994438874759103033065297568604412522263614652584896879957245717048241586467629862709501108191458614266816165558810796685660533514722562206378072717302586641051920175978291724019868944168888659081037997836397260210295020059287476857713062763628102799977068276495050392452821408974044608885149705267099119274022953370475566371389213300901934023185151206633221406170161240785436209627378077345316836149445235210069257573784429135261831683642215586563213083610493474051961697039453236013785655243495405367184739945841766553971074287226191415344051379369254706987572098353071921174665072959021000940495094467947900693299706674321309433391560999930729956245395213539551677624324219997645934912197263737814845249273068355278239761051385351434375815695062979836442818379659081940352090480584233470858536579553013844806809134192930634733071687146732414524623195729821556033717816336838691666944159964241985463731176880236828589478711367340883000165981804222803664098367838182234072583162314776871019466461884051982712122379336560950199694559826541748124880714604686835128900848072869436476805477777879371556696532271135987543611787069857752120321085921557602272414257449694484175069061851432410024333173383761479961736922592283251120107315458431135036899726981013371241697421424618644661467181761386326345845710378598481755453275055734204763281587841748909082970679009556271483295676703672488755130220147430309594541988575079001971465715879379943292386905515016853652981047964799130836711656156209372977600812677877631396687849492258082518229373561943903710878925184264683495935185390502538101835153626798994052548979101087876417835732107925856745958925761066543596071089640673037831006031590041468950148365591664523932004068839936346221068341615014817796396183809969171480757363177459408435571184248129492789807316820923606341699648192728360536877181084443850213892568029652471433844964005965386376252699905927586156519804160919403265424105876973964635771512406599248950649007597704056506393250431807742954191532002280894806704416615577456434834990828504494427896455670635002534950642467360177015669276360090961572462521707933835772856623301754220546827632840136603815846267993283005002029923700452925694150864092836329722551030269657026143864683484658527223777676925842785746662377885638999673021639419333107363805112948918339641551445191777732629377294862693108970086134799788500708437928818425676391910369891174473265231066703001022925217119653553327039370599957746030896528880155628993703407730415241677964918766720406537748890700602655788247854140824716667142274436514471434509570439615477480389674781033118372682190429726767126585813742119498743500701558035094861168761905828266058039633990743370800725740279387599267880601389983235548654912657258086719444930251376637929974869902859770061676435645029568971386664934310920466067484282193601974485596952304886297399180019204880397184510515518934940080835042083616873120862473641108079892457410810220791610317896833088461000562249019912283194266124700954238573791899578850444793798925010250050660811023519020276197878404967419951841598328306398161483642607049923403125614881192994101153505706442161914684103228863381244674458113127974143310257025661223936566210685683738031610305754242059763322125365092110515919203806396822433885378898098790328625164144009989592712804553703252352789587955865948838387447852821687238988711251655215512518630640304554055981104784222004715069787648269193239381540269232521274450761214265856491082573604035364324693647336476409126835508597182602835789271696515537590969002324750124379780405934098805416991692247197181894701730851836763335789164596510429164250137154714953462044356524724270665267226681098199287350965931669898940501641649001315421679718948147441658282780252779662627501793417945087763880023388719623533931267771534592535981123798987919221298179636423720314319714490604643143036941715353773024945262130510138224744334950836780030683482846029047049218997079747130080133005076507016066811356854511534750444501285132227942892007766413790165944909567707171467487565755391027718585880241181707738424210660220521613594468793641729184217419268202506684106263593838160704146402203735062962089526226441869543164518206174224980290177868340335227933538812181189473046272010771380264295277628163683873239946646130334309224644598511410190480239046194200213450452559758144159467821187786226123058201008408562552243539290961896066547837584677320517873404091263814674994241458781799728969147346770412638327673978872532722451784059334816361545213142196843141836929466369023258557866729053558884541028662347475092114676917096996672965073442109045793180694214278462360696407322469815606507372718066276806638946191402941912533810012799305119082611965670472759184245146945430269782708220169937011618180967631699188847354971181327606194727035947884061180575369735823054014939797108334163848269252989566683564089042782008726848855453575340480112868378138298368180435130508179578413503833845498632410805548585480302116715578892562455596946295709887413299624987438238772597694337201521483196608872728470331053472531714023180517554123286467751448242222516288041390064226230863314653472059932591367260619636458580982071504137922655419426121391551578356642685884360629429048190248640629084145310363415096561873913056970406918733594104545329697373973526078730618952361049142411498467459228824991594049814297755321122957415988045841767696703444903204870021936426723289493716927615508892000838229366824616467116656657190388731086320876845361792830875187227251416216899384337631676413798150071458592498759673176016093254969812229597208777429068721884321090129690994292962135234592745087881984005094287625015498088518098881376950193190219234512131717980372206858963019812764449257628783188297100818289245081140223349808070192131671369132599965586909634206514664222070206599694303157331777070162355381025065750047753372909439613801287425611785391665013675229835309175156291753049751586376574968154973350231768054988430052811001114811148836339735966739522380194027914620166819588871897270273537666699372716499712769685085535695744260100383944432020382750381151693160750304156041282906001949265130088383323154356379132909068572590105913431955116113540776891794325955786782635180946928506910086293759806618396829665087040686876652477953813486020929609060589127001238742833100398953965725642114780772463854287493509692697939734026996807781335009230870970594367354841044813675724656739496700505454079119683874695300186505029556508439784978378157397729018710427082692330619627841334635899053856749099224390162896425192063729466910192621680527508961519237550811535105084486800385168618246951207100049520625863076071424529887542204159163943976311100717672287465430624781092469580965577319614262842798343889957579053415482419897213082283915259347018641874743485402898034289638827222786688935428429607195616506207398314180848671955134674471990170476842255153475720378591298335039582924535630062083273914324202550450535955548768588527667437357491998580865066231560888302871227383832479896554421801745993434243717039747993191254912826512244037665527503946338122313623587635184412073414786105013991949709032419711148608109161839049460824066674406408507221797638646686864101519629060695304544789005062078255248856748238943242070048076247067965691716977001224921641208499665269010974091601395416032531787847888702871657564983010861021664225506908479210381332283411216344553013301582443902342844135080256013067586306350004914077435755968901541707078505379787053210050915041063558417519529302249430211233239514927265632699864393239262104486767254192188435710687083372777416076040071703661866819208166998231001896090320868434474557992944256479884728411483317396714996719057790508789368748063639164213792329211107595336926548374461857057090885436249081987279469508598586283874046970558927821281040170828448538930678361574468201754265001980082323944447350058415947275402159536589681853512000048357215290197694929196801785344254762302792789507453693970323019617039855224804657032444331028470784343589963946997840500827904356631718066334926041855525211517858467361893194931942883349974839435501892073082745195718003885937585051698160911958256519169074573851665973493089419561155560436431728150770643593343889568750477952856872305275113833435125697786202325430895969398635520444174301736307270213563192855009861979612940009815556225429916293211995473753960400916004521170609629815895311199593535983385378207239948182417163982331066379700650748222295696880655778840542458327377313844803948578238582232645758864729186530029302798710845474007992313284557312077952198944215516860353809957575451764402115597667525916710128850240504378062149428007332473962937411863747422404944442832705229662414011539717682029138960775946095798887302410691346531621636578124793078103919133722213453828423494785700867199275604045950763018833530927560340001975234399988751050138682574572752812195162777164088994694815551682466730676870999842074546851979158439741874594888611666005087710057055141642203840206601004093486847589972734415091019055777281944431653639615395968444823747862105454825012552816357753703209203882607095664393701702790118040187538289802087877631646835356270158720228754000335514628685312248758212110296488174573776171145328128002470551362834700417196033544439137077749601211236887306920587780965329252581405038282524397849088161827890200679137871703015643964617804439408420726329585037808654766981730334732913622946415441040857439383569369436552899866891767908275781021399455066051229777601731067312121385360294825136442675731451687293673628020019294001242143766334200753785322539083198379886759011489549150457683469997085341194251905235683351161093359748543239770585186837909410477238448594635794739942069915624879248857413973255962754047790519146456839239189342312009908866773112769473682620622391069144158727666017728560343323013201574984934137515963213837248449926041816216891046923565935423085260544304834101124383496594222574730263394096966011184497876620809802699547631031062945954676712055465482935986731071343032901899027232066655044782739922274910007358861338194838207932017545107396316450926698416681170246547455432734482123799996976708410333294349132404718255740436618440851086678727227721468437602332836769894731393223434309087744875305444918978442527445523804698344726660338752456198483104827318992588153895561643299222441214793688482043718608297725735699331218992133651606383201861597749177573590478053470623032729501113617401001417106286188487663188126447657733202584562322532058732013211522366829578530327042767016018991693314314621582104518057719354575427843280888851940920748065702968475466874110336674439648993145119686058989685259304530804670224165643258808138537465870025707942072170259976148905113165662704935339370994608155991007550808571952553526609319134131699104247092320517717282253312353780214985957096171237524112827384436445255932446034459619872357289333230287532340310617211050304247399951401412515060485326733460435254164080701441216429855022751053401669143157658527984317724846871023589998109996035492129108816711210168007026403209594739069655345906301603319607983505575858117449781287482384106948030391768918744537640538353273595518349625273253729707959555328634840950822529018299261219269833811635302612067296656560165021307183411735673870837867021792716120408757368028263061838308767352673211942932784525501107047787779257755833427785430626686475347921608934358220531196621627430177148064960011677590561885765860717908086437835573117522962886865118029285178820741676479178673469068101279024057772813883320590285418558988308915045146805581737014315626447722214855218823501284891897030164573260063779423221612109375883501879771383162912458404597854931310070826819699295218986480612254604089015551561237075108261431559902164995762957540890320897667651668069984808825037098878240568064957660405007265980872843971730816086851243697201104710883994868651890543961872926316232935895890747881776538829250026971351654755602777388547068545564145699926417096194572111101066639693729881050966302043333053010956659859285330079302311561987846511167421571303397146732183900371018055378374989975420947036300815014196507562290657529683663345426045283678437918102370805896078873777357276628260220967990588557412707678765608275323084133561510151975000507299983047470187351250357537169215326051933442688948558257905005972603967468263397738383280967551957101215390961172002408498135304532132200083443777614353900898768300978506640238699020415425943000142745059632597437151857089441247839941191629122013314055911996349067110981158108867208089048891212446411976904786855798688428343821686831966821170250876165559830971670834467413860541173025530609403028396583994312109247104587608640233389810692920086969756967659706968187576024489522611467820417482431941410426663896588900748952926927432374850787772525474316389486143567244075665379674755762591428029404067476489018739281827550031796844228661774046179284903076561532846491658790681673385105103388178683206887760202836459039430228699919743215020244465289138714837877736532595496897027631659599473864950580721389315613601927573916012026271565573724398804419758850460323245535268463004349429473420829525172795630792639666670589875462171760302170805138876989545142978280515800224690317669028982823986733281902984400232695126438429292241021481213031861146828428135955083706886549239210582185358314952430920212987006482158313386149880897202968989967970004687402253395287192261905889190656291046368499772809551045517113726256786818929469521466180863263031022115458137858034350904853129825718496267586474615046602832035629179525893647837409930891240890640686092273760714254750072468930385641583162954769919851640267168529411435796568361150397889883072417684894543030148083532091158474029003287323210548553785530402370932440699147320804416142705564030972037859081704873170797943259294897057874445610277253565575074998616511414648379692953261147090757731274571148031801511001645263712652849936270393363244867762479324372203555863902470010112364923779640377231389795259619482116585759972720780144376195314028681650262079607112573381533612141759151612887884723250212815453937226845028523745193552246240488360457136013714407026753922867993446689911661361436399902821423074942855689069228560997655162973137188998775007771221519260074824270160448887876824924336714383330615846163339898819557446096407433705186358226200165296828772785652942822664619532404523620161904936997136723260105963619298306871050079885388509164485385497807169797687396836011855602064138835021222516153168745476172106108934640765078669183393466544717394765392704550111205042756440647443830720728150189429001640558168214851537233011939566592876369095004089801114082971404839343932526092053307413539782408573238253368965786099001198875473495845610738121994392496054580675314825612592599347589864855582393663818454562335774371804552905129574776097593671179787839220749304132878330673294412994775547734497539723514978902724844451755402263688057490365180952377337825038912309216257631915400890102472416608647552233803511606862431699147550041656911251486105332412782291788261495276805309217853964841545331966634020200681452864954901223664846288839373221195392746865291885163698019040771040106710181220801818422734369069906055296183324418203883823911284774771254332485290895968028245870584921761109881231241495067320313355766527625324223207176657134151741467482770158212589870785620896254264444890731808305933216908242685186482128486801701664228962331393724927766470886532666242854789218487387243621203058491697393198515765657895799008169040257589316639121310704478428247953998180078732130743149263719781471226730824714772294458697882251240583186019947724512494925152782750140686807533653669405783689714622676276442413086165344403186941070751141552256027399573423040145460386513938634583966950703587489763874382221966301292232803497565799536944498815457938965530418977428984347374156076395572590333471447762545285821970495892794019264341697803826798913084455435542709069105847292999757894972391073185492206580258577327454169888070320002688054440215770439286681701198496869689946007340969914362056061587191837765342468331422115796866763017230265658784751345210027196527832220596482641890679039507701005520435473581795521440677838168831464851848367604391234188573617162993612504572092411200877061159326432205643103974563118904662636287296084475610989567699629271646436530649472767653531310703866600416936947060348295457807100665136266720945565732611905526304647041820919830485188980588524430851062534016158922045949228999913348207555915379923439922280902186369795502693941204556380443990537116369953387429829118810183933787425567990439924057514254429183930336228238741309646317813828180545881442078239361019379298402008577039994214106783289126977156466143197646071199377226444631127984527214033437118688000354226137388795095107032697337876327153094380678858755194124021912173840359584628903477868378851811120987138593439440104860412893347958974424033032222628725387031844326197979064236598110523717170203092844669746971273497450239618387733800541994640787468346066563897375345208723842309369214839566990508472776951776286404221302487015167961327838711512610158200373449689526460033628078824629551456347075074744831124411138031916481992992989916348918231037367051229749212795205363402372286280664279005933983436273848315929552848266519597022877290023789563096848112490815247486277427807439356272827294195250765064644286658770930202536328786895354109556245180453181021606256691359439990785273497546504550600417210693248942971554823219865290468441751293498514986585864946706334158875463908534291647447092740574214613548175015844607747667288452878447942429865632728948161022853511837461189540372696509244334883785928245051609195060609543341849486672752666993192522181601628747746540438714360072462721446993300557028418963482680123478561605850391429292167667044221587211138784738256321275925148144825317912987823153190827307230230279273185178117284999731795838842496329813768109872601878834393577287544328885767098217169457149977478928885398294454798608047015961742470457407132268466415271512084703107017129514813351867112123415750143703900718441669999174736531064028427399596078097848785246392709230874557887739621127705814915208228689785386415572794048063488423891685995295145510415450714895478237416758275796598099879355291833534410588815750072195304640010525023963542434076862854386666586753267533696746642228605480578488855364733064198819615015277647151511206500791905534926869708572977060169005983483887673835128083091604641127686397813648450375009387434514449793243210948630917643524187524323691747766835356023049721864734690448593936133588027780090412872659861410881783949852171991152387581471424636593626028078910163869490237180425656509387923881505587840696509932964444747367491517259400136801568244016116372489035999619817882077611623482234911352674383508201956317996951747521446046941035224401985716974250766411782721547550530064575550290993966196406608067228779740410911211968112045905290562425557187020392590224034208024194720687991335420731079561440293180967693966498585957325248080380138943478876380771162890992497935973149782778059012692533851505141121813494517653117677528255617381327499868496761440575202237520431657926855674722347669980768180103380219299183444599252770748570374966541167621284784465072530752129698722274292315090067274068839367121978905777021006143483992114263235563667874191730184338324069895581353747221090369541095590772478097202791916246275704525884045389174805757673386807517236776756084993039700591727786352703639903471138218213161496146945557966289325533245589400323388390376794385089390002897319513831388482099120306852157720047619001819111250346823092474932711448829493021541252050008621352254261976844384559526957270357397466071004245118650017499129813191094805111306424329017388442895671213623900597104729125975060823489959442059922406208522075051908245636503729421577676093098995718504061597325638572449857219953689032450697520412022380260855863967658690931172178951089365270290891788079288734235417385232044188786127698402877393987667440488342035670188484436943007573804510734351265182526320383731722944236174272945519974361898816022681087944980456985229574011648068722154657685121858648355065632801593129506602580474766619630310267449989522482154068755725843820267132036859805278638151735678924324081907940115498744949256327965497476977526853448154122594740391382770173496351504079232738388449112344572968944969678523623951628809456807112469498530066258968450798483781868495054669096584441818859682618977150202504034128571988678098140587047672497187351172232720134659663915306421457111691365195458492119197202231622885900406347453016793051861856118360936205390422521202618638387526731440276238623383001688338490179930084626264241395285480082924616526996504973426860810686256095883455197577903504101636460515336056951432560796689896119367706405873682058512448582303879779773148981199161869030144109633272056120790737589560523897750035962663769222980295577663021668247675005350706150061667910948635895467152216158133611494217516698996724525203029665882212126718398136882223553342474753557226551736942282642532773707177552025846706895059587726397596311852599949309805352891331279457769412151765567987547708147734357311489710661440882723311390322217711990109842802874376933579770273454510317111952788168618255739982205201769409062465648286203555863905025981538950955946051934093097444773525834233098003087497378899493200572313023599909276491854565049586234293505151919079840883619433860885365910680098843034333468720438574368286045020380333412688124121059861602753384953920504632343516019925092403910294916491170329980613716922460878147804184205672046388155120939794098886908569936190329345551762658313543945143689073556779702219677664687334354651188504697899428636575495142088173556858786603428549973074017805619797673828893665270633291796930531428303268535160531427603906449059016483331928008759614856110322642598886339720800794769069957745642557999294908111536188233350349916662050116364986550433308009514462520359037400739499832627190853687035640791038683494005468857899598883541060550164639791363033825696494333972558913251951168273262253701738565936334018137713664356600351321525769155055337283893501968152429254696020811838299206454432406730085992414893896155006589145434427166317773610369168378522061845105990099473164046892485982865685175185631689684311916934893931248021107876173072501052018496807436293697120800968879915862955948641259161945821355950381174699170038158650755453459559827666942360800443161667817924575222502882464266451241188192628529471642555481080269148896364666778818645616790648184821630908950877591012313001462331642454418690545943320710024255501453248732778603996869963865313406715530320281387663271538085651925015207946788737232861987478650711668571851912415178464069159016893726518428924433604078574451187264658390671259759348579595916148913618479977336297480205332774649138549354944464422388437918094940626425676662525684006759175480625170039667334479687286618858824450235553131253314919171291864925397064341760389767472035726181101993325859954223424903457715704276925267186130907981596203342650468578356224864810598417371616123187518141090292867864075099556155963709332595099065071115055639193651685016440577219535883164687669101842647794284419941642521532119321555630051475127034340438449495421896805627573555262078009581540226800978945310362616279306582051105114129115072826455640073252440398994290610528791542192353102991480745390720606081607257842119093366446712768201157791293734687624910048351010769274595187514847401171179475237685004916294870728129445129913258167897870049673019766046971433940919228377279045979247597486877584547723403905980347763827864684267680970961249888116351023904684734309321655226070495493659082757321276643873920931428987284375514016201312455921224976935748779711246191258170007749335236812317253706974786135170516877903646255677157695806725704851924581735684596082141626916541780808973292384179118823100776202814575950101436645408380926998848566388771989078506251678040822976235006037240216869780185730650018832125779085606498263175837722145329986462203466616507867733709448443609172559121973723871244192699699851169553371002298119256492379715992534183862716112165663493181586458556172432163396261878988569344387832533646418901841471922701095234633053049793798231234153170302306712917941802992739447222235916195505503572316919065150513487914191301451259045868222855112532913771507786494007402204292226553021830121496388215285653407725339509394323468165903434427771806572372909181848466278791294183357720617408622255829217733648435040862263888812162608554365440176759897034750622586544425034192016970250697001478492810334596127288242505505042376640859328759245291648408319452756096841556992984218632470120414136032345905143858718653475482276606655470217368545901958285571308712060870337814604741406128355685363308200311898192920111063347052517099485347022618526229966362685019120627786999196708963848539687722614095752175779847837835902957581673999486076225200957435778124869687599124683459508905702972959070619918115079542163765355303567274297860588990876590029233469126755229866274988753335354608780111058948983187020782947307492583595841135431248046130198083371572666885952332730054864730677023344682141116563811609757237604810367678020165830835289595713652283805172846044452768446760708858776587248332596769148662773718127923379010664674916376937704771636222234303966524654097712122660320894503276250998026436854620979705202761194512229489133291416837945695008032664157583481999399810136625202042213909668055247252997010482227777465227211761885352729709356021472442515358501797990723748376473279669791226771195425004632732571303821650252597904091533139880739588131267362075555644501650776720867361791409423586141407883632456629099487186080581311270162653007261685483274620792812476738493914064278928167657556258310896716391253479649706575699178237170507327763862021720509299388507452789696264048633430529077367396355874820735468211804955451215281558125349996109962442121176090790223087195393240781308293384942802874794739635596654215002591940528709982459330422423797910635590482195492348658526213029556516894425865070054384676800089485597507709580920494279893473532315771290928431359017567280261771779994765748280186732603256794306534966589218309101530355235774191802806127496655370105031186638348582502871824296140352228402274884936518164108568269624789358176442600126072208625226550037391856453268179452030595581290269283341958013671889061057207170189692040283382720008351196071040510428608096025216376479822223009539632370802825069864137233776380756291182590370764818692180094787874768434141052469557553117367496036786596595716251195949151846162188783868062001525692214180947744934565353938903892245589114966040734073292323872591755070571933061943794593077574908727580950419991793999574933962961926833003785323706477059590953843991840381437361326274320530436664805262499556836861388351614685158766925278787575243715446157658826755727743684069537897525154028764314911188296874155724691295044071363267795638207386917824610265255280783414003501378276174870472865947289647166965374019373435559471423595924225703999462378575996486679019161520665180232797073513963140490015877505786038544853393095397475494471647794359203323872186343154441999992612558568010991446708428188958171310889988700975961469276824005922599608647254145844124026785089071153943209531978990447764783154349671007754339533381253741284197048120696466896434244386708642150905136320361847349258635940873070580765183300754243163939535721835569504387513480853262799900059291856123524648870141111320623370620985542416727790449280880705978137369294243685020628913722907226096586335874929110546534793435070310534278458416766613530379373941155758625620141870619256638099045456243121208835350944164016282159810124822605815106297103007148364641933082907795611648725155849918718823773167095798804128225370108942362788530600337214959566126309396778408374106093167055217250114465410785307433189784087156352024161278950258496058143922106694228491531020052366855907225407040954566716102525992933270305588559902143901212284182169296720707129693272507659062169552779841183956442309225913486883209257490504017845378839921408767267694031445608747127829808783833166719949774717755792390631737561391653040609479582593939616899388162581300822686799045050837270592860727722828628683615162771706521645019446339838141523363738205367089389376866927273361540484555493871485785491706946087436176600479164443616137790181674527831357000504601497894207069562614375926617733849790451171195869433162666570898189937141444269070282020622038071991386373271066764186159593859356600798745531432987879423883290295409086812150708508325707238113886897868729769303309738157091631598136452054202520432188942185904444048039357661961445138356686177604268467928153392629425799489506963952019371780613859849842636410464618738201144363392318230370706027137745230981205447391513887198296673934222454284221625479312941311320761293974017776485304239631465001723974890948390456568152458420227839866657475954152817522678436477982646927966790335201294826905174152848112572128381626447665908242430122185134307842430648686139388170391781430122870776400376391654539241907865924965023027399125183125418211253093192202518909269917617036847783280939506410489367059879289539929457051694177072284205739953340875523306621971956823711234620405313436441222406835669498612246672781187977473030558480489830075544404619436112635729847068908304352034288660013479007146317648851483492882102680475369741241060625415992161197258127294175544983901164983729871868325769121897655136693741439895336916492975885945321508583682883941825118517591178265596349541582839654953866140691411452754504791925983860587384279158364790224016672636502322036812995774144518448181413843904243718616080934866075768768129912175712906990206247060511517466475037543549268517113970573256056484466352220800820683123310718824753082709935150657784860728403188672699409842879835636493245644846489103969622625640991735939286028333048070097967195570614387604361718706488522921012597524224549875823368346413555914805678904210167068685266337001991664392014880866954231240521218013951447055923604406274753431470001356129970050102897705868634379347108294361868887890097273445180636409657111029164938700004647491114883046637245257435302662697112459014401245734965883382766321063782080543041864781305834056160493879471248580433842397921197958380545868698343991324622160607269654473144674401356396486791911167636429719622974248768895619438059109499062199322941727682964522342831490122032566435540290154540193667081770195856352563286863052794347717730042260600863165271242949399438323261731126060045922043260228802423945459025774900773039718086446254001492569561193718077323167626515707731817998349422842900365616377903153503780527874578771260378106951148017631894475045051432518743324749581053575772471193289245864240164094920983084347432391662077276903249115415678254210306563763167019674279032717431157680644331774836585265797992686804773966944754042403820916243698188926745744325053288307018363408520706637700901234067572611609283742124165577118194717011766785368453064878676499287336232674017806629372703928965212578653957442158280445766551507709736342638624705394248988080313691385962128914025507110203176997824098384471009247669543900915003729832066389025279705634810758166183001615469896543586938996102326785158031737718016951644217698563681145404081060211193979424669081031087897715746662688266051404341191439231052246302078142587929437949085469697953380192949247345391398744505379801804847523200779278254144582172456160551208334538879794695766295301070590907598243273166086196411734283823845027518438897201634200617758652406251892392824550785347869533183114603196944735410865524260017788013111674588563473564829309736985230674022206961950365771505111312195416531899716080591524018405227514795631048434911438560295033062160933638017179848944157271909001961952012308461888034880511401737493723398731452941189914423873577833445635100213757881983491588319698865345091895909609002440794552896688401267643486638221699550493667652968058623569574691095559557206967096192209328419217518606248583719570109121113983869364942813587230174956642772240153890687976335708480171270646151696010331215520581188703436094593658857331335491596998486961873175106712758654234097577422067015357814738291477139657054799864666327380452895619859728471821147940331737784282052554626307078778912056903719158732924807329290581820877169446977577250103202600763833179819433661364092374982646727603625717268733184203334731077162674956409578847302495451372403530916997512862044539490001722169211001092429384769000614898801354351740752651646449303018731714439771752663479274048328869610908938948810896508842924877999217319796075653332109945239336124620478169883427575960577788005822439019510957171429999589669387340866278706507844848101747224368962315793570577302856881734016891991280151821271822621749286979211323138050845432184337543740555811055952434159523795111917543818535673096353389488610102178059492379059062779301964808207478741376368657884471270837773136589710545224578611956092553881687869662027438251061289205660128586756674204065188476078866403745440433843143756339943912328304990458821468642736726357885345286415605333630317623291015843720883715118745926843634290074013571161098241282350226585805632568878819614243552875853397898231621699140656029018873400597161349299776684420466147079583381549291370037041985685808481656979248790290122790003329813340244219592415195677115981293650027891185021259868086472861941785022050599252127471738505090389420660316117698651497898892837964321886696735422582558869211178757582687933724865753058509036012962220021901043226433018764870467573326244321837595000847850373125968245813369224166234909319783000219646573458293190378544264779672785364988874378310262362687776575801338340785350352850118651603216760576915736905980867161432591775164580583251386664684023911332792411013635373629901663022605401524215716982098711141875744425183301324448024161343682046155906845181218486231314181803430781630478708173357096554458369551804851071932403772314322580709844050080702082666340892265588511692248611541457001264924606988921664768139923984201544387746655422591507365989387560448532070493413098577318141811606732045046124528045371716346732772621832626722131776677032688971382813895724777514354938660688045336906302083637825336616986319223884465837496937260634076237516568264433794711583982695544906740054397246192598949750712130287145778762780026517064638841209938640036222114830866152178127768932706470852807651132043180329183856764280120320624521349995709565373278525054824013278837040392653199123399279083276341081235345469282052044371428193401749272094290097879871248690486772180662713066131796300869987760595702228704640575305083538579644907882943755735625687802350181167441038184435856706054461550968962240919960188470176188655172513664134862389503905357875627126938456145470192100882295897679763666578161205763226443230640778724951839718599834966603530903425556231810959395055896067302889330518562578106195708854324693565954355200043763825535860479905112557062555824946486898901745035894007332572902715357080407161898959438746642069943489707915706594914238438036886076600752972888391969656700247183327180888169134682453710740262019309370526848229648191473976142143071795880865427430737296507693165360540581616079588737153916341533053346688783465213698033916051343868334672759793504138147913669743597911213127852991530806839239972870623519025674635420298620970456784665811848656654050275249260085035868245201979241883043934755421154477257485892980379185499804125510286993288491192474720065677681885501372623631869046250107212256478688903216946991296863525480232393966140634906215231733508038838682127336085106136289514127304028169454972503693537792933215903588285782485877903504318582855607488642672818802223364173116048572925910571501600113383377399156128408824807353504974502554091783723057675671161066194806076742071087279711919757623297190724800184432270357995245046609088641990889107197354033692474434557087747191789626677917093840640980739589270892069157225800171043653515737607657575224522582226218744705413164584472480409635024480799772790409757277718919089689301446510773908900805290965492897415266943298340975055058556033739634327765549113229232756917604096563145629646992729848236354102480101642487027830449061910605869210408033425102626806178149553188537041519104076643368535843376086768306296724457485498903400353783576024946931254911578221908904497259876264851051835199732528539765698317360083813095650258702749414568268489116991989966474447186262954997927663055828915087256741431182830981627504919023065632741766939648405610979717954955256510565164306040578451050671814153226946372060559393771454517806047168257838209839935119716358784836691277683057278762602024719096901648023185939265790614187358441473559859505494176454200205322257174699305892406066006567052484169258455139250193135665548188836477351434357245196859529475678264574151039043616712255890932307412196489173671477803129805910713232272028919402280355513253005529464208019811030005831227210744251432643488132107133317694638879763898821207248612610190567323368474992229848973787246992077592384381802370608803444971648806369548073748171033049748794251571526468994567093452002931143071280584996883151560897354318973191067852464459484686315000830258963251593537982904848145868630483750460430252728783148464571415355273893174911440088758927398007685453493017908665027589545138001071627641285373418820987000975026895072928423984292381107105964029758826799828495860138353808598904225964506495589008687809949422129923233942567667724851883690682452860978135534861061518392233984443904033419267522584010474351441893592694471180033135413173086874299256653961299173259410075869006787603335308372883253724390489144648864980741996138949664850408978762876403130711309169920620963525569766632648270833512093413275697426981386721331057987666969284826868352012211361513433484018955490153886671968462404980596378727222894857132184076028979305302313427956991390674240571544459666858569011591831077401368427176378632769614101504283414160058793249084255961131358448712885087109002364046519945357099265335180389067872399773823935171679023507718523892165120583514893928105902665758492389460011530695025674443314568945285656648286922281137910548336552489249597173003001689942904028318039499076201679028138562212498025093444944048949206817777171062984444350544557060469516036045272729814235504657063489782701696681024212417259371057220264395087293807339515390191896171427919714821078094636851128699126399455016407158712758078252201327319075634807974535839253936366794115680034125361339975242379069389404726176858751913019209160354555251859905580419676713790785517779875372801025950412474811811351433528853161001601129431132031961822785201526561800615448783570354205583515440755684023297433184884127100778295764047621945711374337288222540544413371466916686441033341529914023859089652301759403188958423023265055570737265014126728554842328200258252880646234721554429834484027297910891275463583659765535630896132701025385829038269207967617992741891655289580309918740596741067182512005161218377752755484000040522713814068740600291535719281429622117068136448517636367182282694650744617556334509461116268997568382671657259825349101783392211996228114323018017735813439958240134078761933223007537672014332644204786784205892265419636549706985264526549327475311262671366973332151862245104409354732646922567809570834168102485796219627801859727242363265805859007755939100825755916272584651787035398357559774976984287345300032036029484461814146790498544448920128521359197328358788459580415223813827504224030194220688116091196322878749513274385058904587811489152549545493399200815350057679475155857822956692634003792132549859265127528171028789646092904129592365874261368869949814257528525142443037566345949154990462595200441961192342800824035007334814340218111828892283669606361590111912982913199119294808914024333901859602612886861437746952023781961664398387301367086708889494852476970787026660460901919185588038539125004274301392111441357604759742517816810650954114366012705631143117404752597640443728940164658673469499151788494470794077432975449910720352863139854519374080666135100832379952953591626865080350364740899772514767545906679070538453857419027529023396359972459803232961382149853110449857070461727523556692622755791172252225581566417810326990033299846601338864748066585086462204551766697336951299995101686912714339966953377189211423712816538731338154705300687816078908811067647770252632722138477542804375448055808438156310623612289343254624925515247505420677321893613424851421043838765822316380921945393464670353123499154328170728143547874792001602584056481411359524460306157479756785680889312221558948173870645163907764951079591041401884887084594082901282840316726417117276690527075010948223775507467427529671629341495782669128061152772226226138016480394579357658714653454912211614597964633220416538227260616495450847637268751255201246745865841187007968454096396888699531872564908976262235242804955225306353711111660437222239463861809767424576179867785853462134053377964378943072908175350090907839250464854715794666822083066662874057995857175961872844187467229740573204067730174444296304574924409873996958660651364087487097530601163271500462959718021937638352448733427169586637848287843137083314950660498797991929292657178740223374244355154551085391781510110175435994176466419745035493055862196008680923396497973838877894732599434663706746306960921597261749770498507728109598080135886277667503323866920956102850993248261268243253099191366938878989764788528530785122956098627622198432852974107318521011059768625663082060870980554435405740584799256440312255740671336168202246418045494660751393617871963015803283265730176788754526934665528942963168319896347161242806018464986501542304840371803113545414034586030622506821076289917780880150032579402540544708429526159851138280011511516654795110675064756863491132228465356091770764433559838127230792645792633568182877223190743287583103604585964297376122688244069255008474942547243738009162671131451357860565424635619570815102329698680659281387938626755079853269407613531342472083848947839526499702292129103360739871483563739042592961184085336894087728054653835091892238231954649697576144839870173832635743774818792078488926642070611560937284722451460375796414526304243817404011445441909785811928805503504865820021833273267256194772968535435608316621105867801004465362833844145764063097529440293436159914264960726862348018274190726519319561367937764154406197692037136968781097889774747794285475346610915007205736320656363647365246643475913004568560569548297450349893366532979515051950536321479163327248719901576381844415951698538008524549734747511377401997341412906005953437935776602414325123437335857083425083419205943834795092276669203224728704647530326864315205783871902691846030660420019250931312988729383167573799761653290050045533713395648409303799975859545288616025491700514529404708195899958152075892201719171033329940463667189055266769671123649561404148081974097147915937526865098492763222006891152779272027172933435907241240210671231915830634499195736002892905172982770876043987819581373098465067599721339928194714559727696386926938558071601503995208387186008911194670202240713362403436441143592590492246922801464295811814496340341483465177338614110981255481851569399420474746640187487314545914736619497170084062245670799212711897240719680030042153838443439680721004191369048530198384465171086767297984218925808710414541065260541380689735234000889201163229587205791829278480267801014631422852815217850234302397455981611286680500294831187020030883622191876231781168878243588158596081857193321174621573267452057128333012853513233701333681923478788354472250676350244981707363346090601015452467678527321626694027578182639955628864142366586311389073944063774721182443786233579504208938516365640368283857680141478336317832176182751294261904978494635173721638763052725503962472566596683775988256898207501651106173966928567129714824778280408304472844306500783625086752490076595452250735083779732271825630312156261127523822827835065111691925997713985508474045933502604927843431592187183719771148665124503187748354962158047935318689777632684667799841074455610661746160688372813101932957092216587613568198024500488009248580250858781568604554678994757734924910461186000070869374900424223793072705560456446996375547334680677709822954612803114362012689002132629827058487270984756598125369478093907240167000854595788448546858041195099798712740945180769970753751222526647336809335783368857768257398930296068030519946532648088734530150203617599902847792798353997039570199431044802074303440537624403900536829165585017255237382446932925130686790271442575360709512831683351681577219153351030537541643361918203110945726511387870769153721589677727785993787323646807192201409732695980055512055113373796554835247223458704809259503799128091613816837274732647028141723993032845749203493414996425054479040848709824763327230550061058967413669206649667886729619377350628085591906675621588232975961516962401126955894576305555998757055901956776143544392760355960004101006883919476830486331590217866930265090702499235154830574787385238746001469756247098696437136683209056884215747157835432609912434360776901200469027291359928032740970855616112851192181543682143789376220908248317633357645806201503329187269721607568759352068127285097788582621252920601525261723950536550428610795196265723971863882111492123124857825654578246856638999741745160891128470461756799849969972394372549621223048538025323858107825680587387676879481079515597287598594578647148351228330985927254056810225559452487146639517479116331773354307678700929407356337751985678697922227443601639496269181239082398871075981572142366768828844535228571453366819589135899575808311922598636611339862668478135169967249057042793748577291360801280095265407212980578728181953194470596219309686658574428887331740871239201329876584114247322567528471272327701229538842182461951018767173750536214616408158042632679104295913461661354833160164928248878836279202382310210702099334857879583324450483937297816224692525174975781115743514341862301452061767027271468059204727800024587654635849070073913478163552406254905836599269360778331440999537981762293431979179895289678789257166187472390641841371924200230320566401903824928383451064120628537671875615951437690918944091586367080673668075377380486759611819006791494161042481237208049885360641096557704815052550958159866771592299804793384442920331200317824395253331630355508879453248047226128634202234484912848130161068658381578179329642971126228376031036442728176213061390725901683194938086936566457091646616709267370269007455761944353710901561301097663589240280470854278619107761402676731883160009603462790275069374946902099597938227958681179800557789411231493198175479566020567495265598367812703873998825928557660265946193913967557339212181046013378111551352843795094863370737612380180242105018456364013198252724591449689617651448309075003219934982639295664735236862750912130084261841770529051794400150450650880937016907637586087765172662022048308838491940881508096693853067887127296131654165558515792502589041135226518256601154502852582343367712680600390418381141648249203672643223515888573116975614700149352258790625967709519673431103675579875616520978268775902650442862819134219370021293553108168487005512704466053722547104962917709016838673580885050603027153170368782029612769623936641641105650268345280748592209131546107363850694665883664060777139354471169202259437526997129639874758565331489481551176002313718710846515516959710135807650908990531934726595640261127790918811240891249784730157298696279641400679342750272901058805364544664699522137864336287545351822545197626019420355163508564918303101077513223511179137473916359291466940321811625048845741061788540181439097371504147732595535229125942238391106182977773845024973316559180237680699562480816130529012624483783660023878791616092440319581154918695060748328052538072081487708678940899033470184726263959188227069323807121341040222751109872928885635287977158005445399228299322289229303498764829637919157118579151969583316769157541610570314976234272537134930541351508310373180893363049348698543716539209773411625934619922439922046399711935990393154199133845874278190769772138003744211823791044529768561049870698379278895660976584229328872767198840771373459612881056050320838995491525296352026149598460433554818757005940841218518875697739745338776914366709401107755379630903593660808926114498605008064544315120180407620249633882554491805068407287564076346548949077137769523741856339396990429065114208195109613335449971569579841923261033405220682965767729654212357050471146757892700561616151486117814514944541178863670059396400484091327737483236962700976413727463782787677872053829649730156234492705901371998446359205497802272008178903956793718508838849701756058359586792767690514186130353802518913183950182849322688910488922818579149292172875575319379433410709451019077686645897726199058190571458713478508573301472000118539680905844426204552645680333880530302884702397519841435201043995532024207673719533505856265579637339542505039241976504303160854668204457518432742097621818599037898189676297047492262225050606051300693293020083767908345735518019849396149369737289659285364966928633943889443026712167722509324445877704235493720975881490827809538281636561419578306175311334130225711382019680862449215990389164984083871456556235479677045435766756199383702708684975392025896615977756152163344108474326957904822402767108954782747490147828912341145654623194819364083455997252142973390488088093929728201109340961306186609216974725174631318157022676265356076813528824101488096366147454174060240293364530015233331906692587698469377208392042580701604747675275412333793357653224425833090867257864039127867159600953437005476299986288033280183662502164665118789794802517458161585853369146793278697066419842240903336062812363300002262171686081607439075985854056731668879718283734301329090393111037756385773029444230822948125440781131210480272509693404636213012590523844882191567811142602204370289798994260077472464940434474332488923961034061258525577293624249976791908244883448453985348824383805726371377413092487512956790085443285479007333078839897262471215238745016623105278707301143738839346499674091766944648084462184324847885880562328454309058050860061053008414852959675763604314734212617983158450392502933130948119118550374898552628565050463464889060456125399793839936159683876746832986226049355276389518144747693820721325961107733677195722696305396554307173578807736684792996686798173867971572258703570304661660958281125600969160403503140419960447162500563634481415726317441097783607223002111865372341532200853353578098033300020815485472723205071614231577947056966888168205327211770917345919600236965006838982727708985140778332732523842493061683005122268652451348620313533461295546982069297643719041833729066157538614078244546664238022815118073368452631790034432154893079013491586460514826114095409957719051271808196062447006515029631902077608859885682185161839884554704947185674201086987511161862571544646937971989451942617424819446924778258759076835949548743074418567724524574238582799256405941533521308207899849923864512490541739395348495126794735492200325358546811913122414525559539685969767597788266794229687989802250501178529336551159193343276209704106883419136836158124097187874010066500484355845855965285946615839098417780581929969181418337040285951871893657869009674595553038239660830568384072218235422297045359866349133702205367659390180826104105793738667405174795865367934749858269397190488807649172040209763978187904543932459151037738477576660664962273772466286126411462648753254763786137015988137693429506434519201494765357327997824302128638073078797925831622291101578359434224107422851533557373607625186538222008167074779309833068913584766858680163523094458710625089625259631499307426127095064512605575817413326702845931676242744582155460717102709961466684333434707932930626842018150380413069593084304534560120968560513028798010185988408798450422771896019265721795788939185694508784212929256046049639226810275829234667000551998968498382594322128228901685635918754197067610931943374690461206952339015474105622472552325465775223095399388355088073828925467483801063055499552591464528477888690712292776381758487343929327497873641575495523559458846311971643824838011118748580848046224912504179307417738440917752379918420563060252655746384719116663596483388663636901886478343936638033108292431150067093588676945969428685566644757512410925433593616205964183550040894929688203413762395055276135987744297823550968038635091966765366591444612296265723791603852413167625320209070753364200722214456857045253502242072256787871375116433609759019374357303311449215726455500784724625050875292672087541977532797946030572126694174914237493777589137017398849183262064382728775741962226600088006253050704436811527382444764292056349797309974191854056535580103130350598235910476135714851094210705593058251785324441634824142417102846539134653903932711020810642365368767860907672552259543414698480977286489912349799096981095933359805570478857867897395712090848026811026110210802080830407295574264639615144285120077247348424754627617586362459116894429810724243309709436698856829501210100072767773361968225497417447712517470849106375177746312758324423272121653449282669565450971344618246329474908597447610347575961308230349193411450216374624714517148720444008087339041408727156795164721483274505565286673690669633025544218899630782515783159803858193524036575343278135137883001129134853481705027262179153933834981860867738628438229484507945076191266156036544749884356526715752538444112595788208671174766313662960880225433168904285481416183509756592966978204041478787426114380429374065156691970763790903138269793747326889132551462318945165309835952351391231413675976401203668817355261830418071605204640448335235113673819112422858225131984645070835668498895140423424381295311470710051505733360127861322822960058827404474825367113851357642122849778993857824195825877813174228730364540596070240953155667427080889877057316797661912544098168369410178706469350347044550605378994748517012238784334802660818443314219252175347158320144471087351318721388175322277189422909850540580678902826572890423976874853441096887948744006271228395551806279778130536904350316663014328709060937899417501267005924559572570370854721023408874226581393831436615108092586962184315000401228076235266137504730991645014436370469349387082347060074461551312030154098300546428011776196251956244490909027684244082307912336216442720007317414291665785523020677999246119067947188279279425163985458745648632513332772694031869848380688164375849730132633831625834547408750258524308014140427751187139679067073831570858427261942543066886795165772537826189536484451530130069867024637918336558705378999108089027962742181180431032024870017812685335032835670903532729542090338436450749804520236683716894434837722252777501051770606671979145490084400421139830663593918933382049060675505416219645041214174143806166935276386178380778316875102929008930336596405371585682239367033053733427837029133402767634738102126963069790669486761845109418313368373954654590624133865763944389974861886922861254688462333346477983767303337985362864869971628617025254605189244288848439292662136375683876863463190407261193136634305559135082867073743169358979785155972634660198033959972617056594610522963880409173516233509902273182468538989535388012293343700106802557914030980638427456554941899744315075648057156470762346196184201018710164858594547264609328944537436175911220573516701960649159608071499953027228033760513815851779807731694288007937436344199010609767925973543241723969511371226579862169500348860236726878597759285162261890240780533683388140128493297995908631440685352040288386899667356838341149645658859069913923164305721437282951434273384789367940553830255872299777815272925294766141334985893581821367741070112488178965152790888000579043760534535007569252452667963351827041815780185116205882307089946456007512945632410849247560561289827064054505467898086524700713732636738636130353333126110312836717288299512048852598199915117039705103539797833246760216337903719747503994645381675035320285032471885676722330883326297669547242646968011750855172936845088131629721370699763908214904241872707720315136630094805364051379353697096402541063419123858805017852499629463850464587890962887040801431118493934933873473794529050380058567949270201096069320657839796039998834055647455012867262505603312321879501639480232738641871812286215113947423205813191190555904567580633061774526936286130578277386947682617160819427772395178664264571486320813200588678963375618643941082411438041939187510306571903814777143444006591953033941845540020228857152218620864064888131565455198616545737698756825609872139859095007873758322319678709581281677535049870594352765816713646784819693295809192439812682499755258361738141297398298150109336292793978402715035528683905757900048060521374759395466250176097409519991405918277387721357051746212017185932086819384132908006775670258951959484285281274551293436333973304284129227009292432554802216481990206660145107994550271887414079619663473044582424909247871358113139557850138540517048580145241799338714897829055109524497144507445974769731481656789898221039330427665294181084734529672104500398510753153665625439448252492274295392876048497018351774793557911608579117021120236916202241356020635469114955297977214160502092257245898067212402530968036491050957321316331915523471334493245500479363944243514031762833635521651926232809281701364459287244742678301977982663964254455146218032081245229695373458106519297653108458979172662228236063163519287689925794075503110369410882083158430377900830677277787724325974014370813063929569646314686916222052925835258797009267894166165634815280033347663489702998648371010327969511005034817307830902567373708283397610981427942134286368010263881988076039052119341223277560860741082929574343997717977355218505046435234838099268142552555958630010434563021331566386829029798437688380873615320041988083228429320972718946370902940363775441826920807592090711108515467852251848579098185108231097355696675270721552022086925273095385547090602155338443187285045444088765295478789728642508424767733564108844010490072087271847576152247682465049953751510821824238264877380512134078754973338879812617753203152236515415931845009782661085674547088065653838788852156150455901504623404295339428756737123844159155064640364681240357236577735372860214400452078712257187099733351426522329612523191610367583065460323639178887503102757012839900159500491737761108782977469941300923378983206154713984910664814207708788038668983120487583100031949821761416715360894982242671176807889759702771893376521147689961676511234551679707178681847795644502485465959164004250900438995184624906199798013836831960593198214924481851600021196960474332968611267563528518843435304726121393892439638392166307596053059799124280985783239770387360338674719860529679506485726495970834264997131068791167619038565322217709849996808067612029873809866063779239212456072306214626611699149727697789331539980305850946546677593924474757051363305880708843740887358741997351681278416449903017847421006458589871607150703570927484184062239050939511861146738629868075758363887647118628640893589060252049698106988619997258988059710827153862768847492085881720630976781534373285986473105170013905577537678686896224209222095746256820301805124152284652881131870113467545824263633832034460028701133287274736677825754700812899631819192563504393186519086902595433435069109057249079543978465538174002882443159466822303661121921903438579847425477524024821575095712625830922036145990464233701237984196927067000318577741864865377193724619536699118209109935212857348007368512941755167237008785553360413469191006669021261490423158918328665133513045268099959706636985930171592335647026367822522177364238066322391462192714502489913044812777843695092746162462298883446044015922731275970794444956482194916598499360484844476707704120915002824151465392897465547881450000369407817331542888748639762933953424181582399555522311710427665535221324250967468654510142146521248533421344553005476163494236427352586544615068846678715589782189575710728128453391052575004453351547670563822097857995229689275431554565904163215602385215970732380831715564097279275657290218573530404023292973211011505126433806903664284764920892077679743027189037649478811340945147723755680832194098139374904743059911219811017974471979466294407670942136793751690086767606233881747090857502959344691793443054798254811522525089030241167193607662075162631616708350115768159923635276079123395618488894117179172860165257121987787437924528973998858490425475834426560663532602004441210272930660269924959127156196987742502454959928379573300961102396224326620454470542915653145624114996969616023908823102352505546702176009522737131079259522682233063116191703778042320087556845812143736763908983908472359105951123825311637185656794533349656446843075134094700744764551577885398173461366509669331447948998736949675415384098707407818446521877452268583170221089305001867005773158646682546008389030365100223782509648054443236482163399178896000494034252067651285011730443512543304718710085219322139995176438670651469819548466060601391490648874174249606822737092556095240004275436975690260017353034929309067364277839772116277179519095278453446754493505079771304371251680484973389831957395166234448021310083953419230053785825200300938473139667034638851041490822682683640452698668757338511829047985739210307600857315357788883384339964199715886599318154020618319340632184213779011211389742266750438366381471350835101132360776125902643026883935591016052322520975972615319219365569938122774640824010047443684782774312767865039808665501842098050747218523186614350617549049864784398686865525481601045811773805464296156584174349055278813184936013844768698006551543885830433727140203159321555802104707486847063092273569763042592240922466996627066944333967544125017395137831489264610351312281005591401483466297929012448464871460058379204974638367687796382214336395219241903734281692854079429514654982736489932174270458515163745806730471988690325712741547836328732741465716377114606883484643106418544384833016692635680257108824340190392947117251573554016691774839172911989758165476013584773372670946325285282090446894126012928768237915159325452656324967792884203955414814553243659958924177190534353499747307169715321733491148880102949914737288753209544323555359639975193536528372517662646383692750070355206208516008629532931827554949640396024096625105930994448823696749637916679753844621756681478445098856868186672686966033477206009209067573016301516685987107218732348343071264711469228017730938354501724200277065876747529360403341453143359703203008036086397707745505091997840788523199264730374678853437632857377356568798672455201128250201670664926115947706491303910137339135850279127097951893467119524177803571003227922462816204645939069156091106199419796146806918732362521439958359090129936302929115023366782223331481398785030119953251403438724365505909122514505066991767754431089536062233687186277904133903578750241886061797488076663433170869382826788594538646044964594523045279905215426042903878884811551590744417186631644671489355763420511969631701779399309978511180370190964514547061217961461599779184715727641465283533490178004436712320572897270796084156130230192763785342016754895196828082020289850133558237866849700992766235870750470414832859014716859827416118411682475201824726834936921532500458151251721182704143867170185303823640559350981368376728233931699523699864717127565342908770868994093001509057016910011975368363873836493904312663519980958972446969821800771798779778447053806112711389245495251903742763950389825847346381082908162172896890458784724395868895787155712939470867817267851527208512549166190699891913967111291618648102393328293962719796973295881628372458581808744043778085606729780533729155190151171591361044450596452825877335281559131922957946608324965065352761822556797686529889125288068661353246862876071265513187626110519387288362804783747137775354611706944247076064208541877722052437470551190842072286067684257177027351678872989845767661636293942006223173356842666728097879671565248263912335202203284584636137785073199393981115167469588949275913574854979736159980942130837528580796380124239997408329247335125928155173719977047353548316867797857500390399529504253527706543820539649852280149932519052393709726197481081900114505575293841659493380369292838636409590061339712247545767268241764052797687126685808015470967173412062978518386600455819047831738590838942291686784116954041331438809359174232109357131398788090995800972974937149792712518878886317537523011679340828609204966253710846073229787388433136465567177265670467487382728525053314318526690169272881485902087386968179813489963235981897356940895246763107990930480714431086195508753057670779114020828370419680684878953473300653388194411184646932595678312937245003239202730410133602505499013475241846404689812816973373662750614276237844319941549168308320512990383401037454430003057328291470477542538627814440674509831495187300240161141660436728580568079702904603899012785227406066642592621760361229845436476132010004944788665511137241558656095633747820100587560129151881016143097488827991586050585470049402195934143890257029271646373476412386495347705553591944923595956922797504255858414996847282651384231762762114266596900027425721311371587445763223496808801296570637033836269747063351756089021679244519372658303225606106849139529163026158320919548109406433102587729322471793516778068966311787575471166484993059660570823685510666778229669135432069748899380610823469346968185119897632175608627385308305658262899887961366201575438933332965971981450075916157964031424345446289107060964071527685975443539425027516295161093730823690896869542964665480890636531761260974532093800627343020826305189541224432783408877042154922522975481095380833081410538530883192942273457766684543458307890281139980120023692155333874120840239873568317200991905964981423796362127887073841788935705618547860352981080366046793600620023743073152458399670469409229751363490039871929684545159693831021014753615843997346177589231144636551670086600382377399828040739724205239472310111575345291616418336738482937512078310524457936955933797787769117904259813118918350516981580020625357868901285130154793314829631158566927192574939429608698887371139081491109401556351622067935571754122953095295911491434938087235952043043325765143395278064271654755416135058852194913580177618076609838641906674761121126489063864571443992758079307161267055651724704896294906864495123270151554947254102117817088952958418489457159062958528054466436720880738702124696819289965527533860138890162384979397008890974939158979363397042565778472440155787234524997146352738045384169141790457476542205731237322667919603111944812187658078577536651514399580556033684267807758332038447683871642790512921028447428061946325756098436417812145901217071363290012916597512711970047599405955286106109256931189644869422592496989522485138882698004368316328412713024320868832330105851084910666716338048659968333873665248386556245862013179034186437391391778412482918084456660004835863764686271088707464160444330486645205902864851949427994927784340243020658483120107391290932164834902232257722178086964782779892066336814751289443653125166784285256418204171903350895826275728370839135956188482190951092131489514339396281804873458707544302426398648028323151096161783101259061211995751461655585922410927878381080557685128130882607143809039434751223812535452390266202453611175083116493072859764679567778404177458072029905333485630952228855522657838264284058042134099782949519827754861335233775001320229514149789207368686055775012204838255448982020532474863357049846271832381974287335984567831879239461022728036011340158289471889818993952187134665587298293588035353664352137946147659809192109927623993537422404490668888741587102368040070391555715294351123978520187479039564431740217273105076197869744373724184073746076844592960038365752549343071450549611663116274447590302528404273968808692621698680733188594079940107226314734308031635494511430648496600817164971153157933670875058087820805541213052777654477036665837605373949930347495967237061285737596264339662857062849859428590086443211833395265726818088369173830379592399369793280445417618283495183776244905080358968948187910245670002340198005664740716102285391769666823709820226764841711111580820414198542304072924676826032231654046980858233912566855744387477513051371274796831956036211582164020598419734425529439507803177869705585981095100333042558795806333960342919027051804425099642339876282140965196326406166282286525868076001743536961960224378133282757919251120511012508077684018975705153238074966969673665910794637405573409948037437859866692080204847712029047017181482236109234730330405552502798633256827862223868781269135932696077140555990093693706295120153181707287998760895414810899380374385972139669959314278574712762557739929453714561868957645711229864124127119032038371395171123056026334237631878770012023515519092358423419154680166867465325883593506957635845018956061345721615026963591835712627349488353849635060613130037725893194105809846315038960562347968593546792093237484063922484720363432450414269566555532123225628902489564037874466827393080437555585121426388008948878497946979750300141079120350252363448219590449834841609870235863097751758959421067956618202116876983563271375869162586502053296347588155519091242153167998538158053892438093743453286838968306940117328977496224422704252871057373276562748068671337947622509331355980169220127697998855230888896727145488916462600413573670166396448929081199022534020705475497122652911583164582607353751661034422939466572577494984971114286083292180635503779529234672431136249748408767212784441690667693922587529104656597489811233276956613330270114781222468785855087915856283442505361994197940885953079612796099064097085380541803651361364086877544099287239015787992662447552277920152222717019485191211815717896167970841976413445833781619426996463145061379808999127426384498657636948991292710960683328433170427020692223086918694353487529291964125324479561308099602954165480669497916008389380370959889419341463903806115467309945796489008732788006047803117915589605584681620900166045041907477904428584599805808386317497520308032748376906879662231063707243474413006500518977025069917153613120801356021427763415295499878610776423909978682403543996734627789098653661050087667887019636756034848605477987457637495416104699852941557906165430206363752360858545891390380366516381004633033679554696633703656829724315518323691050037670289927725725173566486531337752711114618520259020220023859371228799220101847147943109390618120553851250655422091800716459335484050436952291254019680004735307433908223038885224112150396935668581442391522868394353624265008972166181954042245566604058285613824109649284453467540336119930332121943553425001750336723953989199114978631894440274252770387850891481134264009315715252668037484898074463800683675115649387701123956361020036379507583033856771461691189881874130759341118977502592018629427112666988122432070480139576899802067245535364033373578198434167915890930031763175420895869287836152152946204660276916167827365504587896678504538525108871150231267789554399428472293257686392214890875409085848024945302520970382976110519794715959290672061774877139339643383515479746584238900255495326563436415842023398936564440134690529038681252543391942901353993437195580125637819656933250490668604345028422122053681773168679728325767083827031411324857060211018437120094424291023261894970487447494405314581328941488566118050175409454751973658143139185248069548522538637181569545111320417427883424259336182022884403157183775610713819781122121822502538088142466566496180436252153114923021999810190039286786798603988034296492913171668043061659017075087576665467598428950907012855950430343843438091558692315551251219875543646918801715070884359345399266940965639214592898768048676547873641829082260700942733193269454165724509194981370939302949112053135913326505725260754637735509009745893156112528477090519683545788020261985612196465941348359748112064473389800232645829084568541617275770654565742513473357216959093048020564180456051769689951107332216450277957798713455384898028007106998475947517320450009845527208396169171377470274742691726054776263565649693148581076211455383953924228442752940840055710252345758829992227103049845188818482021185578490697006969980179058148840944970181990378765204817212143638437655115072854698259240460495605300166987318805432634995569093074922081547734321199702872326316287647599259279742874959886671110395619755511102300531126640792579027798508449774140882732266940440913283916716740682527274310492584138392371477610662243820025877624772160142479685313240701858172186577371284107728463132349346574675780760948556723640731563985697522320057532797603416320203860448230289112533181707016339681071231979043965505882191242461748317989160595317141917308173424937295158464174235028453574780754928325911433603994230838804290201099221463012486663130733818195165193694395295619640513275942771818182932521274332963950972434225141627420897111501295962395377270183280858775997444809104071897492178062247464374569850372557379967856685873432168202155793540362577102332396571208101388818665449230289356907781161144283179664170321729932638767679703320110374882308846314977922336706329831234667202944323113065117054555614844375041980434173835246497086784661369462437387715258617655919331008787602497732913916483320087231654689922563748376090247044329459455231392169827107325053551851693784211277971200745091876734217450582591331506155789033153476885079499865348144371605322968636855885198992841008287930060477320183695673273390366372630168633999330131133783057626891185103937933352150957445199705236215315993462893444076159932517267621788175922231258676147744744085617903843192529871547380827085329142281767084962212953573900632438819368752611795428421879042064072244698020502784348775040179054689546350529165305323913539657411788090366796037118356878368800235535117925064017622657889431778921597496402746979025136104054154795406023717129822363395228882075950678505223522059176130107751803556962403699879675003157600319986984220901988461970774254038401968758375486142036346881290272507588815184941024471808970978125053221665108126711767683946873754676926564748419827648254810435802859770270444826625799507260435037834759739047865285965038066610954751053229746580184198113146836434497690135975903573804061138364078725419957517088997842574548155589657987278981770607129393992866081592228048220514381877834811515294892981697545279634378546603632264314042050377015742094772562056181882307925587482232275286686402392085765337555410387515595752650116207583415683625457687142057454764869928849762359423300437639812318373751643099915135439103478252938091319653902046064114446330036493519010539785898648246635021241654997545694622736386735284085299060885638149074136250041482083643542063682926304683155883955851592267391928185898562418206303979940644201616279807822058608501408026103064025516711047956024879762152709603652823571764789604058626291187546588849745409485779932587768939897664897053570322889136478939143248067987093726965899124298780877297729071261537273988185605717799475851397902555125256802765952036946185393819331375465188433070340005241746610954573659412042041862539415202676256840715773036807064618976985829993767603160569736849708341014076168090433260778375505964224999932061087383335768370741020811532602643050250942628307416823746982029059510860043254717026004810879254480578899237937206818519595307822420764651657060738169717078871779672547955224247155410685600058454666018478078527138863313596284290224201667071747984183574461337056960878131178671776858763798245590937123869483936800624276834610806407388073141855254828443939534834522134386464685473540014815350278977171995873876542211616026371755501234133069170808119842497115698535680703482942185768763709513686909493441209872587355186809709675378484025080060019583969602881416562171210087921494934208999135537300321746317180243122219705893935028997026579899764350631865087111319883287575823504103660341085516910892812514214131532463521306138139259033988478476405927336496904412559384668567992177578278959979296143592026030633350982946354200680667530993284162671009132760851629984477841073345063405342752799373624388865194595338589969064013302731587971474834536784992089596924264096909927179150394153993607541139440348260276602160301843185727819022887582503541746795518351460842897889835614061804584190083219462765323336833616735283476752222369524739882835977665573422534062019322694002479126432588945054261346619322702226159105620606006220160035282978290543263025171877840150161376764339587126538721467916055053459176740710232006643838467072019302177436839587661187351415242626815071751309429684584302406078388181922106722596671161157941390833308097700595394361743266412443865905758124815303120179759041648867047277879117232150774771161164114929394533048083965843346000163223034668524754247239960141678521568140001374728962833090384666953227857937043597517447501528077489056190019192253371627387657554808611858898253992616367574312317681809620963808280850589553361270207024304556801757629818310537853007561989733850795684961244605182074020791505543317324744898274819173985741307496668836565399032601625813669414556147567415591746956395155636595365518282779404339158825073337032819283024882046044150017615407122815609093103345391274929324780868125840506461636727188337256099072629628875787281281987760674911925478414916639775599255418237340213286201887869369433753660700218643820998102151364573516198048000505519144935814375515103816219629843123739533696917201657506457205758057802106476661753870534079540895099487998620087316207616695011235861803515191529346346355255752866706652499349902965702943179580176229529872917047881997387505440383098438263054858048460270976216720947912913389988537022697730583264115291890368754355902188321098909173646317574987639608896609359358963490553199987852447740551911269020849076686746615187585783039959395672799033382597018383487298326929179575834652303518481784578111847168123150462970846941132704685345965479489398772590662073285652436807354976262878791440703935600602513650914184373917704709887928050511901822584231563466476439922453965436664983600597513769362457738829164601447711770617862029360676398014177372005177912433360443288873253467210005338608300256932468642946852101608839714869579659556445836870297389106953659781198719246809129234594430303449280346400483200163092036641108229373225543084169273023157058403514762623411262358384019038647838083133998053760564124201921437255618139074603718443393121614569859603832755187155031918707904501511453848443453948041806474381354855482085352739747305550794705231774231066776031331414262745490816210463922920522891610514343233838407213690131733573630619718549610004437660201024232914001900667558913820761494022171740334772567619404259037469781378633951649239896601503008387389623912042519494900002974277922715081128094009093662158618632506783496121613240821828773287341464509548978232143278160456148545658510895387539359680172223126718359711695215299225132597286910118361956999204002962112123438006354268113397556334944126103675074461872149073681289770157549941207297987910647388823651225535758428767192911363526952299988477168807190442995899036490622911311817299055650656417750205709400711491773842347766521933064247610553371993123826605351176051252373090446729905133007443154207688586230465987860029873817195936094565557369329209279769071838254882984827500982476766524909457143524561473491287503712063502701201838734532719733586417972723701668531075518943986775395861986944112468865566708390075689966774063923161060649092777848738267186152499996843771576326830938256616376445092664765649878225952512882337749864304702257693120184480355732710798996137327601826163810259099851168739550986408680864357665789266693531008653192164196114498605809847767187094602339105040762565877110789328389280094820495418721569479253319970798703794330383238229125699693924854350564885652562806854516267164119404335119218786920445194225603376940427774810123016918539237269519788409164142879263995188190102417515201823877153955108434520008072542728945468244212057400013641255464817670795877672377966414775669628623611929219249909659514462729346617898941686675945608837809653502836273598355175473113408173447524398501092198670398205773621267914778599807228057727479180706399950664179644719873263324133699600674068428816175812094620685280684459779438341705777349702016227602332381087911929942304283403188257058474714934765761577887293422892254012336244947306983371636275695777245032837720419969199702464451844780286290108160716335607481086397663935882720771283429583955088077145912598929769123245932709108463901980217257155611307463663227934536927670767622302398319102403902575731639964799754116122800543087693694459299435025380889182953090172478897780513690308943427307680806632425932377014027871508829753815592925457893846418698731263355538914675474472889505582929161792021903669607245281788987654802119535283296927351700147440608539620960735354172854270961679805409444324276818464936294565531920118544479817519572916060887665206110582263596864353858394631471575888292259317180428178867892779991600452069892408321633634471547236947711302680142517421581079492365274197592357610444722626378293239993803212743910096369494794688150188964932152374370152010172798326454938308756713456990996247180633037356037718336215955797577138483535209072707384338256664549315820204430603078897413372781572067655782793010091532124366668510356746976905966813587267897977765023150944918403909631588294143854823236255379562779768697468409484602479789213561959219837102397425977630348110176259810811251403368903693411270306242981762027498926567283801287355487035416401394224649697867031330569172041993671366371688195312205790280584921641242928321985437533261185178247938382777312210360533778946845138177503727969534581606742781465857793271546700159308339166739239817189894348842889261311976203033399348649202685115988432812236053440429735111963110048638966277762784090161955651265354290719727420393432224219620283311423062466294202596881204876849369820883049510860514164970178527746664297170410606101002504850977056305364665678167653993299107856270977071545641155372884318136074151546542597890430119947009885878889697382534783182127513590900347906965605254536415921888365120929755958568275824258627260630568616934471496032835920681346334304479339143491864668728295672267467485667196530366635855410236874361662058635510442341309758534841954899060900365296316300334537604183611863245980467654581919294087705248007317944296099023214147578044052896584366863208764173785859759854160494384253974844827065576979430422632131049253612070009102370346748656726707828511444532420433905437866642449968909559640989114971918132981058476707498200414205731943315425336155895208243722682858756204714399688285763826078156137422739636670963819216301533254677102907258318547633624702814128864551675613926228424483233252783565263132688968980503698771239981408989291279014309575745554297350847790536959082662741794758722364526587342970288841824465941201635934996475340249706877733470704966972959231100129904207433976458639353094239687979363064070113509814310690731668686159213686120176803226685008046053919239496097961227479143362709464940376419696760192418599422536680906460625159920073189376489688401574847482114446975402506155760070948452004696054034711347034091851147483041424667107444969132540367882455614897894530383618438068773332730854142585929295589628133443692596707701594049940000991685042217793222406956414098863705695428038096372056955462013157199864160603613411222779706255453007841184611830231162358009311671613235258320740055042972032693910057786780020299856403139926861132102945573402351464973369945065193567340704094384511665920416706880712668378093441418523651503287132258858773306813258467113530721824931873334292160534896225508696092056063940001862415356763523652779826997609219502711539833743888481787972447276550056755959443901173996919065585287210635668134449841028131637188656372548763219031013259761186950320853018618070787763636220833269860879056143167976063755639809360882743493791683317655292535805221774434195510359867065086866711544924259689464015089127088020670036230116183478835890755599466044490658021311753482656429778249244792213203218448038768815056276045787967265564119422179152977061724374497349617050211257184537755557011425273543593631060695014492582405708328926381055583414737215272692546160076706640339340638863995692622066849678021972010640730351613192735806619185279471365605917603468021900921553163310516268113996520287625910565347495326131790422322356496904888560445610746291335019957093702775388511377563488513693507544351846522622888710436653707251846064959305903489837284934664023657336781240216444870623513144967093804622707289826689970249569209311935321021098730503237528023911631292951969353987856296085902294061642417737275882954149649389176876330380431749061557590726270806343504173418457784319335929356566483387937601797187186629709041228121532924738769124425738051239405171139682313808271923715615893637981070247032329264900186872679917645955092302633653499419133568118946160192190757656195307816278122160310328746034259837910683945723616826176131596501381677059610671447799323174603267072537649201891659286729103216231024418536777679413068618007560731446656919807891079356228027574313756563867312625070693132102032748358009041030613960076710761884083621042096685453793654988819674852818959458532371600579324362392100737988149705128349993687579131891853156457566472323026243422246672717735143938948506628743894982049729127638870821942914830663067705280867359648314554257563679367729407863256638653424907606790661062186783467057143325090905743805333943281684698609273038786086173316506951798131192958000110317284692351992041420140709117722240740022229265612942457273216039693886242257775396781619001159040958646262940752943497112459922890741883414211935784984439486210069391984207944158125804944106624755124589766555225979387507719789589300343148616623037089524139832686837539501172694958698494583228584004658023088806553685171211277886790096185752441815454429194838679124659330054810652522025513428715741497723416940638935508581759790758337155162205547596899614596790860831397792213758372960219644080725848771586663590069242383437289190463141038648176887325215664565453589338553013686331295019001376288815212730402364217950226887381530682879129710614668090686600524730414455980131256666815736820579960306811061126535514852776713892243815676408702758195000227921576474403669060190463100479355057361395519099975705712381294088317792503913934308266857009845190893635867929893857535423572085929613858098179060719195769546756991040725967822058600317786855006641782670383363327940051998826711756551788701181186956087996723303001930220899349979708077129272629187874825091578860986120516497046356340132040597482122154035828974749272495398905960574427620616729743416981437951900538621472547731490805511466503979543565692715173272183297846242358674961183155949750666969486836983870784029435055218802876144567633546550456591003022329079647504345608622331132717554381067187744899143810058055295595504282071480514603353714764228628158923248381626041152609131032432324098041157486138888083474059620846662860605389814575360889089812262732540786076503749275578985919580126218950055094653988594971129514714395748736162424308762870037244465698772274573133335757059731219288950661542781659064034687337696101711505229604778738103552518216937505816734837672858774180094849982463717084785829899112381496080279758063405806559392326543008752893955706644347105440808010189614963897928606273617541450728479216400852571994484266078328141862306691932526847552151673266596771550480770820165091023078835402307748119371454839019975528535138086510977140464119097555498903827074979162020442290827031417860955496256881904839671251178802651514955553559023115339809992277198988158249035289080173406260225779148085821281247680707698284714685565154507939966286085797145154922084681859163047479865842238614838724951265266290710526245449837431955560348186334268747074087352775689698234607280565909490859515673434084438761713473809314886458646926389329216203011126738642456669325846304905076793470348415052191085951541221103957257044052999004382197125152764926963319912306804619535243801682983777951457670229249574559469915098372668075866307445368248612017695546952018041095361593827478525058479799902991606988827951091231316492068829657251475042926163281879792397185151141903719527059792619492606430755657027037915250579331202767058957462493650350827302418678186352385029345337020682941113252808858855558997274886838454733224418079340053826245602096375274017843853215450217284557375732311777289446946519094751722021784701136620391708546403922962678767881328048806587022954727557265956671373739192791825140500764605402254337845189814050144740322654642988581238286818394427173749141198379435503856136409822279091807017289539934995589894036404687572487486777676415154412807100784144013197534466980209829775120955366375816395887465885967521916179288301426432232119007615271869285430474275092911656066529265789397036322659911401914799628048501336624102714135181904363354166304775192803263732819615630026541576538948901895864668559199894249046555807681473441391311119504077661374057693212312785911975368822057019639257080647631645902189277603825128350593076066792781375712604312664533976543449991685913094701898032456829109235524989580796172603603129392416325333106119516073354059637295205613728889513978102595458949429299747064255790389029731598079934403978193541947134349407070155850678837541889722554899690383352207486649037620632624478669965219775237388267950370153308388603532035093724669275061975471135745907568390363984345593549952789800398080045773935984845671705514742684153687806720183485977863963283623571443552928234674422780638267318461789875611445795774277570762798622195375878489441116333431690444712112942100586517851922905343816002144932603932435527125609464720894034830985011315048687660885545155720838845849619329502028351204988254906561357630317593384985692108935528406265055490620207232162155035669410311483739685485989175772084993352264897076073707134533369989046909499902041812348644388186692902099598116661237116191743563067407794671515943599281025250809772780534003039905580762097474937458312231525308250539645860333494652244710174834448725132266362644103437394654853751213838503243838728553751895237373675592109801652524822564357919479448635009831497854611432323549824133635620367894924487846522947435399211010732052408725787201114983857274505371383597330219049545908403252627179343965992474607573499914614146369665315831556880051805890862168555690123433969118256469702716132489564217371322795264304522509043762549961767059933361586017628572073298908892212477078499643405575605680678162947683679260874919169156668737500448642978396807631405748717675287036319106704333196152022316713209806711713667610128704043186629051301711041682484702738683899685356450499503756950632403673066556623514324174597382077148232244659822887383660711041143027044251742288498284112786096430449776168935625369868708537377646027805403679220882080555087041243910453660482455211131476944885660858487555444462106743206130171629940287214165456654320660794524391864101118447009906065462703937244186950931181374562517093254481466763336761672952576947784786216342314660892270764293414262017445732157014450104130187338330921269089175191505633840054040872143491544558279647469637550113748205819691528514742972261818419602788810300262961284890212470001664962209530858726062239078675161362752246879887886604081697468939109280153030134381803247382210646311115155112576200595804189190616671630045428414396936208714844535184155886152173866040499663127988299721538418886946542492138492528754733414466771109821597510196172653156279100139747579655910087661562052069734757358013491419591742514522610817889530258726559031842423646159386566948544405919540391333409635007577288369523342706645577614913091038162010487492039667821191179079586423368747103584528017988031499817232051945555150646964352070599084247049295345976557818039971718730506280316149373061225640371615925675220760637121400073206398376340615119443011889245985855108230023447622278718391045586831334040424694319713010917106119030429838674700803445848832023841984049109607326018279014446039950742140801828379733941216503005350496292364167967261205539241091152229168699307861786114286082983131701662279865256158959606697071156022426485087022582347254789434560597654982914610023562026130248359204461673687019618998762564078943788993809301846130760312498227998546775708517563801733241476661920424222961105342923208858085074278104680845242737243724613275570291838683302480199355038691827614336790609877449336983456608724033941981250063922947526711079910567171398754137731921146220716295666019692887390503641387247746675515396870367121083894696190774094904835203120876302720849228530225836838429783758590071016524408253956068730143753320993508118437633811212934885255625080241248526807283796586141738092993947525501923143598525703067219920898736879040841886519160567605865453583422323474320716117043352826332757048660250789441170034706267802721183728367868644803589291454470153265267043435525153500338253549567210760899063388462050936205421031957875353678783229046061611123895157789504449938600675825784956750781751132783650701930292677250907167148265608454575698823468874607095809608772016346251829890530254395945101536486137899761360479097523851985595282387818445314654705511192750106509974268736116810842909254410498967629213620840885386825604996058656254346109252217650941905948703192987532229432778324372305239550889488938052384482759867673101454213934620161685998503715749501805201764451961140111018996137312698436820724804165782008448084399913145393174933435512272498099795840934986007010869010284573644784063738060430662416303679872563155529549821610880300171779126724128134767696785802806769463841905045369391971435714410414561528303863056858359303526492001400402495807427458351691536417914165765866176220398559546483849575395682634684022518138026019366312371965068910772476222340828610384653194689764673841382612952844183446541066774078117646444720687721233333380468749933501901672502086479448062651323601307390439855228079406832923345339618795398594355570479194971212064819220635670234051270272146867684607683135977265333229952582072343664310924303106312132912375144574674556820118747353259876677698466217151227481575185768958105785945089074126877014087590484949451840296935133832898945066359522003788018682941702350828446617196898862902588036701652197502381493445446413388490911290313844976348409221318851782389949011734539528435326072862094446042957334716067554218893735956510897321528457352042362280503932527661548079481409390707420691882223837958056199314028482087005244987832210366035497415771627324622365475217996195198555810094166571895654609616909729315791773058628439163996978470507194789492495296339106023095801305878407868412202682330114808614897947283708419186452092893674218431150201428733508586346708957700506680063302127437260576230165751852792021875300975236423798730735317758680302433849681045948943070980218074816563498584657393916585755471520440813203180445145077118202573951113061607932000173445361961020108442902827857361089653752029661068519775574247289585284435871809249943036644559076209435816385790984963255414200173430007526006631305927656349003866327384858422613576292891494721654968768603346671131483522575659273736070216845320810697685853036755303681922723703434341649902356799654379794329589540691702951441279700094469651341693495745911844435239706382533597296002669518964242117003055098879457579325581992783577049900115374700145767872907333750750827595282488658201685142164288843754354173608429016096775831010222131091883121677987655265803392144579766462404407881561250453648154151951635074638055242934119096000119441891259836376182015039547864241089543729441627974233313265112070663755097586346557886394684166472121453162515286418521833466718436952906941277313483499807249823640702491192426011434138503364601975276444509232228188548744409594210673878357771525057027989537981774603754563946969729536846533705568422137363024356100565150317149995072440839266496248320611688211301818686085935951538490386721609918351449981053398429195403232397914691317971042900480950296020883884167440901860642742265798298214722428777754915224035391693753777804125457531734084313552272453280256521164547271947090244573520898643881972068251384423715362110876660164260495357993405011620157560550804942086531914370722423638278833591213942609823954258180394744264814386702856308688395114138805842215303306024992573661642991222539781400329343391007580699509802965664528547591717392343042771122377150983562047433616061468353920770826948243842560038014273971680256603800955039251532320354706365925677395842768669074366195852277738451780953013655918857863225576532262469396423697210278995542736224230979541716983911370517968637279307196224434000311537764787485283118912521854336248572269349101664120857699620949470194740115212938989118036374811252025631346416006036695020233964489176444687946328378744145415300069913223140413538101959192671967279548293113621535636257721373140179554367539010197420307237193463871904040594780112925937933860048111537026126827377131163400689392158114518119709949835447309586262119323125724828943468014442020725016876845450671781024937836719513294607201056646986703367296146469238838476958300284162051166966613318973212701251374900536376519028298616208201813536148759998766627200218716080031331038336982678657243574308039483598285055729363319822547278818424263244319166996583055694105945988133824519688698246919261694207985146323297981567101017583086537778533485690449506252260059405661708518688820504143992344194642894074071583835688255335064477180712539423690643476699046428223151381309461181381810352542143699406791260358061429331611012025503095086333298443358497074044445991688139029269939802917354120481730941690431443235140898649575382351772740652126758511362837123493895391845165817878863620053848125653397638181554910244856537875785141698249189130830343721706584358948078536807957726920348775519251824392733473882380842052383850987615094734987923659826538664535948268802560381228527546975599512795344094769538245331572000579791708835408693424147674798694688179829430083780396842405875213548085290804727117185301246404759509384466736174617125766022679158382824771166803544088909749156142738407060800812893437392312225339718680109598901345338751599185711930624752797403051545338138221744423202882161180410702614149669090804968342555215079321424513964031331169594788560844208126215521506168605157389976630241150699469558883157359030565447672541524070484349142670201167526879258389821036756974954306478306032311674851497198862571317330705285368472603140280526384255622353314435476604697425503654501988558124036660662279423378809520115096696759571422004894384114460079323930044790253028524827122069150344463122742222468154920343828070422743819854933573836065081639921102293828087999230674908410444934570496235947797369449088630900275189279053459299449422931539917878842749344626125110214273959973360939645393213724287574175052338267792052866992902097048390639841603309769422692395370206567878626498647047196630033978468716675031576701107060265162065976862222961132369893908660558950860199900352619559325719123035354294228940168448627045501927310952185940690698562674026156327785207818349556224003540240611968171754880463617273415468382094285385849846052839553890721279813264003311607747910828262257598212938600561420044433272143478656508325194316096919346653413204952952493213126901868629498522966293091728072623685017303252228506063871323544385164682113851645463413280284879210577004731681838395605221882052354773504533838164324643950454170451382523929933418406613941543730394014113572909393652454195901747592671439067949369867961401894328734915767397391861115564335837068780042507266969584615443918312179475165051238833722633627371930637868990128554067045279915077911463562599450750811425809009161378685847617999333661681724302431205682055038473738972477648838335819936522662165012247877866114875383250833003878542908710171479008547832026988217829340164470087415244998291859620127842940530867231792139944245991433780978751349877677242891077148220060273048211428376466367495754434227231654576083629385015554948822453628134498034470787934553479505734838816771946572863057867239225429080745472951657939999144887690934807675501200386728740327052486504705703107647274382511000233427835596858709911167225176850337727591176441291921570086195181594238085935299387065006429270800952197689356102967931403847051353971844801979149102196415857194730591950958030455657134912736316085931478604855535046685874463932053458489040715670309916990687567611140834350477027062297352880136658191862136490448849937210276820003885882773516798681567309847590065512713540667509391674527581248506222257553927145052710552812326497014507571031314435747429245620915363349140475294765224604660886819580757364940925563281809249836149824466316263176356476211019602763330634876222076530496137032454448462020766212684465061270166470441752277416486459950283195764509818766800180018005133416417844676845277824562642744546067239364266136682185249047827860613195516093946704978397357882303086533743885328634563215032635539991245116957696366947491199816746213104476115026567007691240501726487676599712397733331077406942906230271370274503862144393938958644993572665449222020043164241529116786353465922348862376031274715827022823159106374643597875724472130158522320246138382578041330993947893481939292513135354768508623057079096549353885292305284362403004662460872855177268305268352274264992257648361167949781145614066807544587871216391433223342318398839546585091585216673217723283242324879637119647520937935371500906819977655273938692028931409157193183932412096734503447524385783025231016609317277973906756733079582268526103101959442648084231385898115145959581856019801557189473790093192613566210833965580468061743439533952087878588945778472625913290522715822320684223206006125461359683876712900463821115297572913944086560801836423450818170291464941770348071810142447853231641064593394435073484834095881055404481327096863994999600927746566038517766681566137713319485970010941443354844104740392017478761598484550159463399720693757486638435738919527031306097604474622534732747379446158989463626256552085606031962638013292182025161284404112611452634890261350676401735376590924767739512581515025020518158067282918749855228994854209063138722432497599094701708350794871515422203622825730150818982859384709998610811637627309370849002937648729658829854302409040713511759225356060836078501117635989334977127489027425810592873437470488808826270002092673985682056363566026057403722188059471745958023062006661422054529673110861822386281136417975133200264864095774741781785156475611261499511454322606747607818861398318312083932603320442962508124032130204286270220318635529127699984690462992870373795346220904972251896565660472510146823779252240423403047996104354861787641379721046847477780477995172340601229673446646907751887665886616416188277516258232363511871640312423790735764991429454440773728927546757727819968487494122670402877839047497483536958195804554761045983928687339514802970716383553660666560516105028760551613587301521935131318693498232528529624675186878163389227537510634775321455041074741465055047457230171591435497862893875451917022543237992029371719306981110411474057516938227029509492158948061135056856425700771271509970555538469398105728161439965397144862500023565130175561182790386543288520031855079157730779396722465322915754329248122499918406271148379524604827514285394325265631680410648427165822649751171512830511943047616308549481875908844937276681609524716703498703196208050364279134870351290016040261263967193913244491409196536097035096386746227942051973577225612006855882673394163346844781600943965899498370767605016468919022741238488094629843759333689459411450808191947061632451459996502061025193498747740587440740462675180897912889214968841920203142380584273928204331100771187839658202003554352625587057703421412338840446167884853884910506290127269169656658209793425426330624029288222203471197222689286059294036220816499644874015278010066258086706882282653054884026812321680901630249143928299613148344361623866332276540835727357549198837382024155790693954033479009712550080035506507814711111595328026953879371932260478265241116085822907220860194128035774965894980280182168952168663885674501389384863576693856172652443134883901878841068514789225966258174747378935900459240938538785499272717646943638738045791063993478724016391144481121378110467699122581757520373891574233555608912320082895418759195010607928065797144846062625535533761371357031040470170615490678198236384887699103732975188949129965745376769002140734977317751195927545612080088974362599890276383193967455126399612593566334451102455207489886823080973423208122086766940638748834847584606712252754947275780246755318850413817437846775097505344505374707902249489263809231459951145899771994176851840083544405854038918130694766392860118126084483647958080019544364847595922704609521600765740918877716805751874755319267060704458759138563965328238719410397613951595830780677958574962054736568992688014699225653578993734941573632431735775739935507871079139819201086333520565608145819052493026528223255716552975247804519582503461795151067308898714136474059923498725732803693169798197879853246540991453547361138615380922054965889396255117035671754382914830172693029801292302261115348956655262410810771957382090048533546091845218490524781465527894984360878725173475218519943946585184677907136502010699590176713672474058795283635928950488409455834878807708176600943998459364176047886006955473031469196078475076312111524504063795724798804587652693739619439623593892030900249126272561081069901660809746493849922635820353369006053897158165466013962209837471473128466145525673893158616180360692286750585935390043543513197287495551103646562674731885316032433885163070145597969893203429056055618635898143548964807777622054450687126355189985460610128521947148042404700717623671501304652411424630318660790524578738749540045501734815875782909896045684119029213365760437482212493954979344050005739573814744924989879596775741283092700207470645637853210707755198634792813658646400060767650881066178921316296898901103236355425019480722662106489587230494626040625425022468712223833129754196894822799787791920640831675504460527448050568411147546607004123937983081672884871338112640573186090666098469068730218135503391691587526683735676768651135050503267451140034433768172680202655383764253814577218809325909051898478742088997851358974111813579975266561766281575260568078780733071554471406734998191780489124459742068303260415391748260978530660331273374040649691319104427613630757099590001427109183999002726408716443469658046752544730633286392264020660619970774152174134617950951310861596102702720277073329641055963292806302640677494261750609791150591520217501695339079885618751278936575857084156559558359106128614048072914494756252881877032871997053951205991540575386421447968050509980122427106528379658289353315718708089516828491892643214045748957865317094552297522099756785423799331085616994041702530662338188608175942405954976668196521468638261998424066908602729819602271046293214498485166397314965656960661054113418567426510604878588661247744270173822256819013668177629931253410896292116125912164772243965852857913642063456528054774151999414297117450027866091697613921472156478114370443454158981200204238743743775055594475236458307478839381927462816927278381561194505070525061000815751905103856371542750646346319226682389902008308116440257099303708816221856324328339905919836436130434491494036782045945402338790032636030504143167939678330747536931075243577614108364966257438918669073589895417576664503964236107647316579211294443111231921761478850439911564453719200922154271014526685169464567893891734730255622300509165854224928249216502812630906046521789220668589474853021655963580380765291644762578574879045976717930212653906812584001282769110752632353826730424880217313107550592438106983912286680012279506022075591947593311536835531181971786738401162689734648755870091348929667177790531899925453667844475056427394095474713708527600349025677981689664316858202870252467534706322987238967234180888685066786606024052573135905537727608233659974307434221689681119289908063652345774039602354623655351915779568477095179750579225645577031766672309826130541904158621905173917971362695312506967560788262679458045501823141338253313426525276871318449234673445244568812966128124461186196620675544622491485116654022661368697604936805043836837808781894681447990927884376792904613923994232238499781868168608547759203310998650931430537888057034939954221326328698166613216874201333355248224856451464320105050751779753574427773081516581488828728579178629034149665467217712652085353412880030779568964230774561290003855936812754810711519780566327465672306942674444394192450063523961711248164817228783775989668143102458501936958678037976460237645506600821329324538377983118819504789511673119390330817276275022956016267206595437657311151829219547061117070122262089084853081357115066865213469742985928931221705723750858026515416307260368410596066672569379155236587411490838507539306436341378972482864357948533909693110869746274033844937427130609067961565078756002420083762155295443960145637759329627906441396527910234741519136894594486887412739431513827113959281417628215224598966446501462056237464160618004351500239564830516791854041928203727393741209711066953765689372553408256969354240378116547470592461180670170211815238631397741535388756230015169879387952563789787845737783401322868409853477415119914373193248199394482635176215950300552328286801883290241559950397575924883683776089255542352451991091138129618699857372812394223950731875421845872606769436727810719972934568791339221844278483116110339051706332243557496617682453658580788978192362286808320205911781570551013556682497572246519668032691887186713645281103116955017346359455149169966079530265622509737911861883940890425078929530704642917596544301149742642286695752860928809594945246130897711846729651664097262876420741627280760955885643071516994793743304405370625284875673083272417990200594543747300996323025476296276714717128238269657309818091731395547098575937893871929769719660962566199703226430033242976435090025956667992670967748430425680177408652726257880841962660830697906768895028629421579946777278382320668635739655927505632782346392671881387871931183038529434180752401577468487517852369535674717465084326870382540952156951191427490087449182163098455190950107132820032385230240582990048614248150606824057601049006793683357840568631776554832131708138715908692693371448003409986772364808555549057209272014914322385566344529601569200692164496639273219913909716786534763350313745961198955841513667381728908143687401385607080458754995254916309240704802171249251223886377453949533949109513454234188802129345374939193237456141060426529927092743245697419414686295324713394769940836762578703470817605890039364887357270801495021479994419280203365545987031529412103872477390745796513461805259636908163402754481913608999855955556998327406900131197321810926313252602653648396146853864693622253389287874220131359458610060674678928068880065653843141903412710838032163315531975509030089548994253198537979453881817865847989107138131118858356579937437314668416999523874825784941300841562561090390520478598653752701393363113388421672938777754046608989018862789897470093404465164169028866844856368597339080730582133690528717730983450007952338777241888780517456437346921226156929779192006459745075621210648754917093548243227928484267625406882092225695885745120570933599714617046828080955210769236229592130540627414772936817096044700680517960587999585631612012464365514009185941766201530533756244791919856840019958719199204819733032183463949018026285415035586227584725961248649770711756342120996982780533554132908181707678293885778538372299506697697856624973580141858031588446577834416041132349081143453367850294902545281284098484143909726639475323611643937935483061694428128208611536644858759958094182539893554078848151002523041641189805929432034087287191568267870001859307777282213692812448801150773927438651383843424582023998432656325699331981127179392388516009323611204378768790325570937534260239712642708406140327430908563342399974457421209905786181889408916427662258023361835630859955257807384905733409524641278102834536650253899739802223147515215855261902155929942857494055254643095326563957131708073791840971689398188103850274590040389915888742359423606617402624317620669478295934075712781131205542093325804595065911888340433726641749785794440792031870716772269096275937610305334477506367989288594016668242779686195955340325357620146296599882276483533828977620837791631649117210659524807150913568474445953936918031819055580343328527696223467012595491586523882418421000536517616181583950908060049418180024829863177823840058050450833355527558089276544601441514205638440954427350992890641667284114597335674973694703349733309113751895666394156954642462947839807356809368867831158502972376121259491241983278944552352267904669549666624707805583419972359733485306269490786411743517316261590720671490856652417639358428551316872846980281002241769919405441318110394699360504790294060258636955157175109622118596139204844207009448312001655774579725255293099825042205386249110096633466915638952108835210180907457870652563873262675694299902524063536937441167430009497675937217681918513902492002530325979578606016861094836493034267547299099789006399427003801956135727584736010318784072981726871840045041431760984932966851220624236912999956574741816881124634289966376599513594980911085511330138785016826592852379694595178435358879723479524280151492999227029368726328394222814141885345126004176692639000567460553492897351171407181595296864539582611731944986588884010294268059107415962934285342547106394395833485639655729257367552759453448388843417182287359282860319468593028780173533457501657575660665525234763041808785069399137801558167216148097944636072488691971621220171620374191038838104572454771947047529744173099095719997348510962834054132153094669310517238688478826448423390142117579185949226507560659106011733713664022688579914402718567504655493372270334200314609091034578685515912296976297217855725323619329240902653884941155476309167568859091858331010065808293831787223224621003112356621432201020129654106145169819146296047452291559360845657991711205562628609030374289862684994656659831625967709527666216526201521274619121389773980946690195929951347322184578980185562007084472906528883202998000569432408928278545921328346020907016011347930454034809080850296969215852175764514208181759165138726129453257255339183024920925056768496644499274385719941369499831807151138600225343239372109372444712329990080239501149339268920042642706717995895382461525016587109964050189225655074638584716318807989330475837453940814255283434767799365732916578323518740297558041092530833768107903689939955887488578913406057143397452420566586442622353325169940331749941024711931614558174520803140777205239500910880710690266940412232020082762552389245066244328003643679507803788723292695397701782964686203182759921542863139039546915180359776399529106057918414198759429033209647367442396216546227316544517863812927181837104118448294625747678839064467002576038627969764495382236704927343362879822558505389706670984569443850336525183765222716405043765914532267538540351568017937174122440635078358801693638498118524163844666756408748700449905366769149874334980496830746021485191200662876477070645731271938414022912617596657501137585899171279480252031214870446721793447599322276028052987289887568751196824098961470487412269994033400261485665862127048409864800268176737417696074083202061623750143719425223193670736545317373639987283857172913626241490233535612139631505651424640142963452036528689044764243909265348714878591659112830083383452998114429093115960262533787686575257339186913205462625307919023831838350900537086092881731287139513927163599736227942340467521028027404267969234234323311800892340479802413363685037617656311488114193413447860720624431324091926550268016802276041481722193971398901061511378571299423432394613817337424513611163142585224809152441894718420376997856251823197802877432208707141165717793889656402935679125444458807586080383319880851123018991478736167208869937278068330628386772747128804182133850144110327647348964842875247966478491296852108756820439862380708522378525000601772257792559168469291113944968108616854580875601424080823526949735075203897461735298773443015171215060638234081192806195539655296074533624033270092456718115546442329213424390540584874595505307477121067473485021004196988477684991569236708649601432808482813096526488607781715153060384054836847242935512610782954925502592896441242187675995366480525053076573569263953266709855203339688013979988731422584034259844238194818819731350728644166919867862936719096382850477182105069949826521030192918148615969080509888530826969232538608708389166331425333228119249476935148266033461883409606268132493591850811482843660514564246385704541435011697676281627545880357279580247509881600739792477729772884974622965661488251336174567541661585138441010874286159633464523343379304022227137451168360291868903407851053994150786319573368105948991683638137054956029681491631339828221025187958380388037806790379529270363307146314327334220567767276260311044203998700826228260432546926746800921884812082253053273952143466683466538949199022847259155647662105436929298874212867424328212326499785551690809514547171814622244803090339459509693482781152387294189270760076142402399027867875714979925850421811776047469711159946391365592052648835653410920842179511138373701957297185046858133944396511403851683982783059680394617660730007591720148030435842710104844704066205478566040178236831671316857066278671543642024138405176619846491679130471725042968618303382123193986622467202415874105895238035685918921755524276292355405369762886115215464384350211976814109038254197609996956899639627060604634590300888703711135355558982023380289518364142410305600928364617682803778350545247548771837643844436310912767407472613159592190082988595707483019433991188670835683735857778540597254528342610508632830608317759964969118448076435751886286021073015445023125347761670610310908523778232469575898650659350442652783023933718089528780529002239770837388266897465731170535489586495447016392630678417372639137939279847962872867853198541664308781384446695811555329793734254202822823993764120646259973672668310277198713911776918954556860933500644565985010945915074688974315540749844228092739592075797619387413224014034104121471586367475148352931320128423182731760604038557612770066295542093452741351341524589816096455449326277201223216889800850881042067289592219997321063865068413151425038458301254981676082426377500417390843273351445236059720367907180071206582340088823522441924652845132276496455112585198376378281240786381336756984306721743445568428615251072205192495271653311768918447591498669062111327757235789860699613820992634065058870469997865096881627599618664212292842325259040573772897411776953613720472384322684003685595275343997768581770610220180504873392604985667931916406949265688112545448539990700208202725711916448981305176145295501593920979072680177351774304547493862638896871699365844301550376347301890694258190072053292537612992193583070127507648961939414321321871211025611471032545375817600901591005066474568356937907792665409479677924043820551403514588341507172713913026661509788785290290424174080410984129019049747176362464051731565961121760940965986544650113480747557598239233149759000754182735894412516319956926448465834741905555259834895341339718179389721669713990194811313591359122863153857173112530173524481269507447075280482094381621540453312727683461442383914699803896389300822780247603972228118243202674550425037654459615529579702899132405430361877272404986949110363502630056644202000577901083228480401079263698407675471519536948753822084988420767140512412186018604560186019243440824883558184379834122673602342990234454957563346349737943907764232851041217806274318036187910414545398148806709273472843452016096520581914401704090084482576519709454024866359553416269516161019232501867087608265045652206243227809750480774955033910382709641216533326096793279590200193359779366172021887778209572282307910564560826007064978326676960295874297716429885828502595916168045360719105515125489038006368669049861045754208833133649793654474691914627898493889656330284666331621937838605872780293279070300189749585329112293592124496778964209182445408013486378965944437634704359427761117673070547728750271234642371958281813228926444185936507722381613381361335455496251069374292122346571179996276951925286102060130528746388698239199362594908412378825934345249576882921300358941764597821407690225784813880068207236771681094125375525299968539691295897121941646310327370375563054232156209466339595006686502434392455355416727931233834060312137974696837816600547356900026632232736492644806664481059605363647569847485683993877201730634046735788232809625822085717170023105796337205309269192202065926490373830526172685239808135587592019419198032846339130080162753557328866591768303227268143955095176662787621225594080875202233634990418935972332590168246215932681763215652394001873189669939836743104562874255351728265706608669878025879098576057221221440815685388352629680605004407887010946321348063778656384695698609445633427212417814541615751732148755809022643842308554795953654383944616970323343081631705613848468416307008291101888271926330240495561525573268722018962880656705919432481587405254154260637628088001613090485070374218479998600835423610790083349098315641191092491141877698342520102700107390947066063580421694437760926784753972575590157777006348444577917505471288735037045134637769671434648717005960238626857345564130005468241463199254405383455685008560715663246739016439442866251072588477688927559388835390244848966405370954725450652543333713053924268993792165490757619786140190360555235031240394799242567160838483047817582563708928229547612079799157217186887968464028205376227837767552234103192282552806817380781265243309755297227834622745436460905967466802004004619021009283218431127241579298551959817349605769699834393110831757530597919857122192211283574030638297646294590361792024194191011649234707715863267049162600197591860670593152677490986075431121910907855189331498317369671300322284890485777389729441930263332354323353557308913758679404280151652306480496341793382237040257265834111286209663208951228209567526824154434206641171529400982043234414450432424060391228802534605770106632938249632808122283190991588516570594913738495810426585644660754376927482301106620417650628328913419260619819477326852193645755399295081308420784171629854017557716280500546625863576564924557193101238173520377342020994694348455522741577042505049433984709748639840544355162166457386535844648989717938063437122981158874118720441737328595170470137424507490307149419935339963114501912045058435304303441410397124849269305501807226105696497974539389664409807588088069470390750794606152864050775698232933224553744907667228528829755877764631240422007064022622922614721446065425426703901739532433451039192668750479169886887014296483898662773616407348455043315140998215521604042519362721012281613218057066347252263433629328847145797835140831025452607429889832860351601074884550278704621085044313031754226789016130201246332559610860250529506334670554270161247375636781545176857336213334776893342962768432942704779133073163254199408966507365013417623129614015196113780592683667420573914571588020836548231832886158496933665019615633880778021490414965337487309484021484622278733711489868227409697605449963933425178341651665143288203211600940917435915088417750231138792617712970978293843523703424513836986311907361905625454213314833028417448544614803645720859710960910193705336466025094075328821420190423156267081388958108346020403164286892170606871809884805621363701117610635108279579847449700110654112731417075569360826911206473132044828347713940332920013158055912093804492326553282173528114658203249723758202400830528670306337417849061554567655558733720060593557728903442605940649184140372532576471823782566458658183970994428274322642377108824636465979030656841277326367430878828588476677982757585898366192847400112537694837506084141042251627601357376727365239598911190230998125914470933242678579303074439358850242450593053618179379567284355839954551800950315478428137925506507339578329161988569833923833620594213729172203318659134312686763022390189082843495894957811527460181614686902016763308149677806677838824959850671444007712615176984693886799312292432636810226258649707216317676537069785267429808830804237404613724038773112166075208440980216613459132746090331955502357181732668389695286323880468433855552331830657813288267192346845463725077885188961201280914463178455015882675494826409608955836267693688832778687019075314980663599991807648044923454775783507645322486845646644628143216241872417733577477742963421896746144148914788768725946790952467074710896963420195501055448402038401817405848867782312479669204267377834903058680341548866008054769213959602770382670139253246742993589709386903679706324548461339782649677309386403998152827505924968259976324581601911969584986487357923878890206400317826463456102035482628940378605421056341945301964961077487661868792783749555010142972520633317290798480829017453253396698084062914422098121480018772592090413115893744662046222829582259396998546184346761195251014706742533974037355196031446404433544639758708927274227582348377167337476329468485526859635350962563384379235554600041513776012927469508264216121052580560756080886155762601992582728095247242727329437459928193835973092425231788080744692465961944731623315708565961226235959047539218361391801406738584877147175340195611098763523444778957443404994109578891295090496827401300484362895919895830409796895087441229167744426703924734816736497322287738361245079329500780846531373231802669267964838665402546997661767325793433532131266874234225956394500416264786071832134266778812639297712169806317411415100712496150486196032379113224358567035275068702750661071437335534104342593024766314011257644494956425142013679252685815041786240093761457477222114382894200911024360202630661252937564904072731627202210088908470945427216342337000960047770820913143000599261923489209094219416008741001765361549720499051064499659068155105794490370743420314858175198216966790326207423015425791628199162301818760037627667982264659565648456861041131194991412560370437353162790965545265739043171076651289232723985775705619652379707485091767993759336197680085150341133420126858835924429185636542784816496711198697134287372486572026921279571394481554557126402194165419206520162804923251883710886867828463380106403922263894611914415526885962168369465798416312419949021578225786753500524891180313215488593713026983130359993309265202680805608369092620890270108034705032453155186444970036040951026138872339843834583273128816606875481046094482377552295511377255893612629050379448750044055262997872823490013466956702498305128756385292413516422976920188624017570185186785086777584770848686416748408307425503249067468709953607160230977487760077339776629590650212570235105409849455344936187088949922858672055656491119911488572040933884400929016985849108232699799081446044748435995668063474198555314772785703223441724489969217729988008153262939273558932829384593192947383113630412022914745819148202322733764228524910607935998318564999009016787453868306898955358198864454437938517319585644725674537788908404829068426481429464673920657126800073122935309400259161249427777068447161192328249085293219418222037013017737411704623018795732196988300935859813377967473313754506617477982572039019763123971091733104538142473532350805712729273800245786988398534699530239342345481136001665420218825531336475336701728722860256778220896348864000644114522782228656543446307120529223847529723564530693924538504989513376931366532912624171627759664024887694085302626192403737349939623366310804711990082706652995182626872819481299252053161902343802311640797099946202580255032007047792889568673131321219895516589319786431966624185580739812752550755021818434017872850204528986916494470692658167110376954959849750403291255913205765207719260509599821233665600092506091555120874358540545996920846542708017714517511936022459771115997489096671808959623535012738004671476676068865530170190650177786553879255522185685968606835185197858118272118236235369973331326845188629870069813797138423743893234962224645924001366409847948918073243817495724406281708293229425056844086881860202812971044158911839463313874751602062117801718445675110425790959103427804698127296469633184258099988645902214849800223821894732247586011815675146184901512150846733333936454407840866380584747793057674420109202921055836902644750660311180595156535370515928400347413019404707355332571875266299960009484806006547677675569521856611738418113741571422289121118623316108593537869555710056693517035655612730124336715684867468657531214120722362195284103284318755049902490693728482270105899157557769963938004725867472599038255187897190366877590125240724907938896764929018310174484702755422401791723584010985640990884954629146186514678595146671684527682376938929082962506293399669109034982792713506223569460074799006649079821526188534490714303949478891835656967594759931719712975936336494579672846882686623953004247369052458839377535852140086669538880597551772473937167806630066904131810121450611748794832882784833212664327813427529915495117799752000686106288966272337462424334871750229448813867769944510025928735876357797726814327980396566004221138077957133260834908546541582609738851985610236954694460861264615262182236633841640823312844839746236006857806230389922470969730925677195561172538129553966935241542798768133067397679752892737974988085518774112855891420457667228971630756857755608201835116678699473612428640452711443528801597735113730097616344988337130237130710655302691047531075734939668053603825722017684171656121364338920595937028242665196781893307124210436457847277342557820578933691374231620258478776607604032465775559358348541963462273404083857732150429266756689690892056701438361321055033381517257198749638513504224211505400311001210678466188480659490658457194530382248614849404175398039213019811307975109371639278781670320330080264203171105492689527409769679650849786265755215940040253364567505740089417208012662483197310916986726057645181690193348866897798199536471299054114173526116629908756549154884957897086041855187590001342302303754978587652813251650761578474994247888462594336187357541059226904746975990984608916840160494822180307493470713360507228334494218177884828979799821022310336618166997479577554638423044504017258127613581473622977834199883606718560782085057201506148885909250175867624070734527735903934093751508094404480499231957732821351058275390234600347959009096114891410267972727815546930672838027894528092624517150090306738051201060403839962048122974774052313853393323476285191476128688974015709946377985974482895347344843419660086950091145518476295551708385971639280736400141546174294505430601591545694047752559483721224841489561223312750473803202990347265040627256626484996231321673471655274414468607508662137689291133188528522417159904187560960273553841203786615361794015017340745074961259867419713108519836634291065465025995875850180779442269129725226619608408753583325556926992680867964676733148824666557122563719875901438494486890840026562197685709597963091006598697383118754709191304915198813999403189643866089547984935538658667199752945740198141364036613566476533779110124084005950884569959385454764937359675942544372177118197020696958964647347293693176851011003548722260399503743740795412345538502295954888432464236288338988573721216860233172874999060442896556363866550620515345510106928931735833251925076371289652620254297446703408821639361316243496877962455713781121119605580964286446276975840397504655637158703376642747446790845058382885010729079788571280952174422916869152145573817653149802264118381829127588393466116485519089832026052541838736502999292936969757721234728773856312083298231234370738385929975603580604628258529538749871213497800943516395962255648643798108867648943516004736893244475052014220008230134048481558756449605334951693726817305401968592251557098614158282065475343590894741465617793437199323783520209491288708174853640059960345714558976231935489333816113391477901258870523358320706336293829732869966962008611868027212456152533253549033332756451401577626173011527668277915659130819928437878937438415719622798950226541572535755588646429790476527828964114161644274353012007152812226937042809719793771431232569946884902490332395856227521088727705345893042402226760272354255808616921377795392631440210467623840035181080964144215758151931901405535627373048488191410656952834079031969794871558114007001984631468020374809482117162933517975769620155136123247091714149067753897305108652758234824338602790817446489629172842098090697318473764749436207305078581112890124499599183252661523940232385383081333423592459193454376277197546884593793901539651649878018882054368412404412493002875898922741596831729583684080352742002625391121571575137326306923110094368444752490995602423064382907357131937694612570147958587405251611126836929448889431391148963193429215742907639775507818415494084352038522198571112309260465926482910406726217127402885337003734831482586252414598985344144500416210130900280035960355513508894214077797935195795129398153255233367768962178470580075608763051569455972803765835245634823866982356222845759830273523121508508301928563259361134450458060591882205125512362145237868237548619104749220812946858074834636034624507380602555518332646595806445845010104409582649884516571393671115385460067003097045797299424261976685515985360597131358339850147923206350550282418089870096195920465469771845919077452166668553349754399035523785461200043252088136932991644684282866866836782580586817907786929037030492759433811598211336980225054168279006678548898282980295802511231746917168472889909421783815136242028716555740792637671844003952297070465599533404443243704845056910195571685116363253658177794932624610511848683620046727382121309618424690303557781740655060038045068378457837851881860660185510561719721115718447059205125989171712255248479045774970584602082347106053115667765688084355962165008231072934986225919261430025738184039098952136101063002537667213817979012772416736539636137417603820243073573912493558987324875774450608365688328095895753547843630708021975282931352821234533563083774525755419697777927664129599775945729105407951675883230819048189827791445912802025754705625289572743235960087627172513392547845459598542150974530934433085163305468849078734287888422342668576414995225634720100584097366536686376815221182932636360663190348681882272183826956286953031395445417086711190443774612255981686515195233223526878471267290000775541778748416904645851415375863101450409461408929288036429732583868126025063966039305836106298944497746086083877801804525852924989284773809212904623426872851168220112382642829582486968973620877439225207171514771851927089942303578785448796014712504670713162849267289540435491824434297017731188282537319541410444754289198346492502419895286144731343102228680953118896924639575485854886221543870568087103038226985039448659402256689201645807040007534685899652862470857123886010407039737539958253345952616654581144347299131071069662817910269528505510471689749498060873443074891864137328543341101125592691085800969047287520043603040025404048967006152893825917914912307481088704014323795468336424305113705416197322904558969229395696136086624730146174142245370155487154777433954343465115159015078526859370342950381821310621717672570393036225155595486728732350431420152231321168524345274350188569006843045699724191412185827271518204504070765656302177039384434630945510583452913567892486344235632411483617010254511763381091616096776636071551874996713687583011036542074641105933709799254689932345483070309867522142780349599257849313796992540623273815958849477597784323763091068771616515772105776431305448469376833564608492491903914259450775024682849060223194121569421326861476438367410073269037375756714693604972175393692041526931468355023560677514722903305079626945804014988605441018806516765469185936360977593037772993933164846633321232425128692923940332541429941774114943516755062897004863454349460427312898875203259760380699986470853369407048771161032042655153387565676182480391611413978896889615427949118493176880201862972968233594782972065993240790748776397979033699496226581977767173628816082298412065449115474409465008503836325376804408266446718469353869319110050744493486800182311762360859541896232544872072648844552615321915281381296315586763663979715217811618289304892790813266027119256868800045689751324313946780027376074854486493089160751262540974981681217188537348232221907505648139975760014729874575722053584836797272976660021606881940792556413587425240958861507024468288898847553404182697415840099181076966796586153260170364830452191810397876002379026795539335872710046702865393244777402339071423624183356189353166504074028446583906177100739496386400639265724817516773253839300140539767789487957389816924285767595782796257023026500605701719164787113684588573755642439508924801609633706695026643325783426937027134207524058823300052626452906421444774114593277760851394618709317117754546785576332555478840038803140873522290989368677440071136968836637858555953284588552503020143141547333183425363950751039649263071538504874101806823707449451634457933762155791272744044083087712707366193150976666356111711299350263073215857257857401262863145312898918857604655611882525690994893837931755493598364667638510537792113619327791203770956316949476597194731392710058405141050360332052844455553954056636740101628433515430798504892951318283272426715211934629769041947012164073961622956484974394168035356368105539988195007619731511472902948745687811855871670985735819199558599829200065785857929947615057432422134728772144511713380473918579839302263500305379062723948339265532063452131491362995477201372552685361676857374168864837953600581820416129760892408910489930164311312746306621125205531038721005379820212102297416994684064835952369049748539781112026610261782290343372454020681012695561831780864589228861288996491830304749640161607300495321221251222427437243444345468588636252102972273027957976659031401949544448319843328310661827414573217851706822236768083274528116625136013267000905768271827485735503826787567312274821488529209480463843445573081798953698567152158270758831818324672830990070536219241077398745870715034420352656042553062551654273218066865992749453121795377641452669952469505658770077438759259838039151548116032130290836446435218887818637400131224542403710886315066402923029251368986025366345663743623843923192928537167192127702853641372283335920263224765672021558700612509015025975547842030554422576594860620004853788086064164454632669264840417173392986151821478989379017363594003686752814164269633699492182706857001277144429316691013584178957409550058348926037465353361330700032773825013263221378883509235105179078208986423561453459589793968604231727265207567757636005204794726429021812902544888392866283786944260942535559639732879056505799690451065636924868199865363133908949383263943519437255760915680205939218601183642227627593647575631180977785265754037882870562496355546753728564616105638231409078341124911425279942937215855812304406521473340638925629824282287981673324992311221689797110047317978194921043257442318967060062313636412905792224671180083752675250253066548814346735491875143777497078440996869919660876189499335972832822435771572239861468216411654468640055331348367823260971567142858097032289828724260141622033015581241987104730912167791487442298189441954864088992061219633713720368445972407631462028617700707966288782142946813585451181063671351642722996182061230252564952537597152301082614328531578905557004657670868877232629419175843832682457735380330484497422556550289308163953930190146365981727558074625272408153699487248694219490124012386120079483026744528519054065357724455959474566643369897268920102644797768803580858799170995064125231636772015355280019604815891621248605752976977232581940147654523441652944212696870895024288645124948571770273117035135276713854837039896861460363190430583769503115372823365638296654471614413725763486444212545608277167837398362045781818163149373828786063250768055795380116855896329131232269446159776698221208750672443599049494918859991796672853326107814723627997770946632663136428388098243959917636766048159515627125091751952342505463133975067112305478538669996972898528696496676852165691482526763685438183706871738274899063651514119420055495925002839720095027469827943692876707260146481050580940965684698969270721434781513497088968058208693051186767109283334479643264367932692691091295118324500590776139135113457374818248151059354397071524026374566651002303081194106906659740605198447032208708063111692531577992372003834045146899705819615640956430155940877073187554431040108951179663148108523372050713344865255559309275534826878084514781668119075608344668267631527660720620266961437780816654331731314879518157116327177371492361964628101558036499121728110734299345184909494805345444590450412149335535908557046584088767253859794177082070477128128048884016330251570839686076020872007752466491692213501769347920375701203726823806486820339550045665117374590420203279423544307988497475651872953571450758018111375301275598179161901244967996846776908436583426388932160023440757256174624544095788639916939652622212176780960878550476198678658745112451481018428769410188523915253617687426942667739972962440531908471815731229072134674812113684818173303216937246200818145718691884512429496291083265242070889279465535681926846147745002231221868346104705458078559544994313269713806226152981390410813905955959174183081662358360631376835271824046435196956363379452422863463884152021442282764813046879385494406307750713610149060802723850980103043783429765694686325157305074798485356232273890319035091627630872701793170167689114105777720630581054613138829124936241881571155205669375207158483573776533705903218778540253493652261082981632251798755701911978200995875887758309924255823298243327893806000644537945296124368145388888040732865615942705254510292321059013229428062433172022788982978402290145318090054505965299962510799419891100798201107917099099774324802526011341881849261027409843621229045225204552069584371113371259613376677664552232859918122663079601918916484278017798932369294790856800020475353164663592496367012988278882364859630746749374095795006973073415388279105667822131612552942871855751192930259450774841852694137203879952324374805105903390953250869073923367873263114799462125930399423269639036824447996814711053394791372277989990297253898176863816665925621425236978070749801698759453583120763908992320088654348351778456448822301333186336594247004431790295290268245038088239811758695268750210613994291370620325222655625989965037571724022648309768940315152533335601709302815529232632026288933559672416008097549385046097170905177054973528070767629087843799011196791359692725652156788635863612614539438980574979294161605805288755465072208970431675362769914282427970381889511598598109963309682410573367286295747796490007191865953741342048904761552855257378544106780234971785722188585059088213716068368505937848273242403354968827272571423339032665918392297187236272549982191381104074549760917571366623055764695044731341497257615983358412737934165111812578509131224742364423339106625327978951394428006559839419882362597787611521943928596394060251996595624352274814852133063075600826154040009438912001526203383793193784388537076320025879791892131710738393520015949592548788267842225324599081289563435807595787380994902671915055653522737533536472314151919213866993271134927862778270178481958875753721522217242428501863771155107601842912361523155564900484525527011315726270586416074131332043025200918754733456269305124000627738078506426507906386280746730885155555805734403815145753692896636162616873014007005389404648709589396062107263332640139308579685029051530666056975082635032478742669563670782358884525443490881578450852534431178335105375779891110416848529011738446078355370731945006234207395121603928284710182715390834010296293042776923703458910427565500475745641895054023020789750303040497525719285681781946802253809922703874804593715936523350036697148010097406582300185409162816173839693544195644233435730090986564490849084195626472592408711202652401145751694621695828189279252235117839294380924760814565100411487217798130080678290809247606321067089133745756480889904980219335065094141183032729083827585074438548171604106378939190444958183777055360028241684604849595349620959224645620452372542081809763976784936115204643841670850604487982420266806969998239765670829505550666171936889273141646523770040424448430478856001597192309107531944933382422514825958311248200281877517916688235982458057322679370868962866571279916085735194189212558938973171804514546564894209516408609878837849658429151905494409653601384097160102598843945563808020440133740291919927440674194917104677163162042682937521954278892694289165621134788331007134393662358041638426438097473377902062435399363811532692568825108801395133883757249334604478102918802942484777272955934017622001628891577810730885495024799179995636516734096493191841381573551869200303667103133140059813912486242996891126962596886777661692884741030074698972527926355151856177738162923438392095737479705514434423209390609856165990267366319096873712363997571572843615790518353606710097559944830339676800209226813608127774695406477155391084660846782277205312939978460472747576520408113216785017569092938674342383280759422240916456007290097318093758578533760551846446049111231638008578521066096954385528996980527729724462756166009941146070252366117927005059409686800327365358260003287012717704080536552742173348862952520084939291571799726855605224291936814377108475474469267432305832685319070657511022036924569411611119646169652381888734238353431594047894395948987883506634914568861901595832739208407496474664980150009380338002988607747090147635416831541365305347476256799118758979992858250851652580764854003417507234798739847761743477838986437299582471262713903911315489205313756751624963743384248727978196559687781890206150189557985312541607212272159447986664244147652657370169006756965725289657191533351498421724167930046489607146815855140087272411507576529863959637689790845296003982300311316356603832914791024569148784516480606056158522424826932003526996785134341452005269008727332171142652970743934680075182541040528673618686669485110938978969393417721339616655323379124207014749902576823259371831898235113770349888447943418590076875853964893502732559656684420619883182284229457486162306973136866654734702708170553353513915953426851968208028878532732285442514746707608909892929186430912312870815477378522777596642899706562292851665604728029966504914730169838050923373568498275775724228450816381703549043941149131740059213495887371808914333346167498242913395214932928672711722391838757701309154480128394101470217803281608279293064643996008132832370476233048232253324699338401325063914908539531771517396540416313057173170534625365791196292097495076807573996471537036304569913558628024734080602525355550032560634397715830724767238784477150548606702866206852439455327061722697863927216405364300503995355266542166341733559000250072082348472968509078564911388879067916886841638107743308468956347674201875732885265450068755390960433997212281806065047956999480927423821381534750048862533334465299631889000787331949282074596329637198395346892263559581642274296220198581917573744166299693706725574250106791844582036735705572058263460375406144524724217086262573685861512104741343660894896546711177678855151006198874976815225833663643195863496446202518889461499582257608391355590423387594079959014414761557757292407107441133453527049368913586480095240451559009474677578688581475249788264714088250042241296694095430549816510427239426007441266827703705518043029662358629754098136900230441442791602151067928926586167846159084708638928501002811420988264398932668960499320308887211438994360528599704960860393559385784026787993963128844996725078404300990603727171523822550212821944918873798377527064330706664976635071409703831003001546701557274186517101191275560385857798067323651985033382628249614741608602577421567343399849334350055278915288828439791573257985153175542724115703850551279121123704765914506942540460577261678532603070025394861798781586429221676481555916457097468977279818518834245028455062438165968570901562689789492072441247261983536402028210914104035533179914029600679815581160907959595089578237082980877756912925307319623498731857881318947534244014144185318399277146333608803611584686957810913764172917646148502006974601502632247685342846451052968486896186610822263027247883807140208848120526621514559055458154918334114842497298703841137676714582659105153425822135964152308787644655216372764606328267404232884427155909063814369930812829599008383469466381070465439700494418531845363888092680905679984474278995318893331645249935931094200576737503873520592354420735096074687100621399019370228856654571895306924847658366924007445457339047812866890147415338446800258840477477104814437146447190103349738316178380667331927381410432225673880228956671978971085439487327381743575373274859001300825143078480118534720052987328958611768494091280208785442200371509972077426571917378802544055328905065544986732389217312633177555029443555591724030043037767483643643868073543448668608670837115523634181878839689248905999022659562861738404968653122698732230260256417690984756147768349601959943286761545735151693948616925837472470146874228412437663683795332822212573899153614123225850932912345331248820619850815640391110195593994178990530660937760969428203659094124511225619891784179268173360425477004645494188480314291978765627643274072679952124341895097244146847573565438138158419783929846216977471060244134253402615124731669011318240115470107611800187755234869247835121563691560449704089787553783508789804938290442434120194569567912916480108448679390000650826363847005829554877038083252042395681927831657663052182593091264312538265578579536729194994491086253829421942460527681326645248429151246032442447623764966420294683629215703622541543527699436747880830802466315995717122757946222350176755700772172119558316518320945967973705130139757463672377799755845657924558906354926809821337342488349652834966150946819090083357734660694751215461484916705987120367761492792103219763520370827873787477234320169587284085000509738109700706356902202360431943381455578077394826668437298743541489219837899056510130759307152435421810694672264884085269069095756942525276872336441325235079353994645568625068313471669735013207133644606467930680614973975151597784934550572672894478777295100480131033548089028811741020638389759141706617069219191204046966748898729714512971502387146614126726840958380074937188706879807171472624667034953550299074923813617914115091585031158771765757472954923225972671743361058329584684068997294120055920494751895733412196596983980833968335682044166859961580958297091652241220473509433935787499133782614250647344843867502525030692414496695788323012858276787649414939620534550524339128336741151889411133453551767795352167910056401734364952270334240140082901436839794169798224391675333601129188236320031048982875177872148531446480647179600780432589738256413067716128932132055565275117243968060362200083748230159444276188894335214047267344570313576015680429142764360923037864383725958731656202718735314888472829954728315887675703607669688929359231847799144116601009130432178215267148476634494170550409175311104674135598972928298486545796803540981413598315044809579236550022780576487474784589858418978676831557624962169299849280794382121195773764629669672419095483588093959438898423316587720995058080473125432662493668195218755151176076941031994497310962790865780736312798423730677526217994862277785601993550108710862337633137250050912581523475572942949291032336655945530403167711121631322233423070996150768550213737156973422034279104843495463188537390375752119253120322451449456872885531466516101095162461654237795457851942717865715721096742583606310275307530170286927193555485544371091318526613206390503602983557328705184015341094870839237440364223509768881972522805255735696652352284499324274309663564422797215038001529081931783555194548614597090432702590458331236079681029514994000032729940185269224320809954955738933162366135527336970858044825334895680012479521689940276047073155328248498575865434639051722028019744117348643883043440755112691852229837790644288110609634697711757824325845752134771458485495911131845087056738216612651978867194025108688238688121676273452660307756929496794513115793208627099611769926005797471764261657402817095508734036487526693894514057515217170283911486525286381363395759517264263665810862299108468281380885031946246828085300465708872251153061753286279606316865232957129004213838840385296681927208004514520548444866266831558194297963349793236820383847417740047075946218082657982476416570793606378221814163396525864057189698636539487857536007437698154529933920518007901816851042265722980396262305406707328481436113706485305816025135000532587498419417381746875261143143567661750232117863704173796216841480382737584790324587183099529056173936610904509215277300168606916496270628022318460725243626529016130710704809101881874665013394673620636110447970802148028093789006050219289207091796515302978687874274989971189008474905801202256456628760011498868703055368959181220284274128041707168263554342054711414842351776226611818327623422482539265772309518405303312778091769214010001718774998364678502317117605960908229135115832549216322846569099827639000518255702538416940957320193669692464026298609265352260485833106020415813992656912841596774700869954428595570372305689418504761994823117141520551284058670287598163911076432749301491971847220447557042984130722613050182837360693034355489848374215438669982319616230813576255469261383531681988503916564483714789870617007692315870979337163943893281929403922582055891722020866611058188173916825281157490274000076248067831262516649280437337172111840601971145776629642022432490500467391460148620188877029404996654237723115273450854047180111140998041387788137688659282517155277481217656540380322134573612195960632547744861938462184872229786199844690212307910449574205884420518141649158857822236400082356221527644752943612061141554197926533965060492032533302308298097013291782473525879788629122325543637024079502929943669066959379055960004629703776893869214311755862911564987112375066752057769755283454913190870250698801884486247977247243363186611713613773503310746993849129859339552551817076155876751254253246751630119123559710630173459226522882449410180365836049020069920499338468627383893106747483491011841242202900518962444316155329136869504129353464937193534802496126166305094001746737269138226425961366103058781452061226230324323270313148531154239510182948710281314506832758817199038060998980672190597306168830533453232356594412999666505142228370024726528733854669861876754922143128312926402175620378619703092651185601751917692790158986081221712024933179483452253778555153221831179790114624623938820026546586155559583974400656172363111484244863584330335262365597170430911235878029818047230033082364920709733940526026662350059959419926295060724558644132563159418724054641135120536972544838563561770277976004871328966750404494866133246482460902221847733784032058881111753550722362974202974574177830643360469236451951854622380017799717301396241476795232471153495053006736202196057107971739542218329957355283056161673480818065938360408367340883290048005560116596796839261162008620077813226915884682692586914195922052176013264107004093238954140528551717912287478116238333753507802645030009134648682613263667358893060979338462364020351159713907920380306669598541014762689841400326911782006730142841015049013053022336403164627903308181727833017646689201303631161488369470317755996720971037027621792097964984143224915195993006909282338559937007265653725879590220703073416855557175909453473805841004915942626615176432700214516573468272340785270273592004948086618843653061969927088342896297826440806982793446443152111572290253013791539294137819782077891043865715919085121320605501158339010186053752762761386814699122209445463193382393962316649552954600058165317624130772359513212762546602912378049136219093565224320253029704855178037993055583026414955774492143947768300497140830782869627512881973450201038989951538472774904759173157893449454824026980944780920836012220189857504838075211232259532461679398315488157815233332011472767482876561029057854285204741445772147573035341267456443996225876712672813606656273753396650729464939916172397193308710379494331794001527964946414928476650959949384954121329241882689289733425826627449007182236683961291717839964168686500350744473534503847774814891664441834185172903639207331500383875111498359194235003129551390798223920160639545379975294543946251481088184943409620516670925720974437135345302456207712704755546719962765983183869266916626764861208873491960586147870477915808643393672796163189953932057039668291697941641388391830800028245134290906313693249897160899950475460192827859120705750728992713844163222500777028381379485370038471888714190855424504534688633512366540495758035926748482662709518073877430851534224425359709379425654603791116280610555614336041450328949802120597964319239014683680146052645325957066877539593261851107547176825181744855665333050905472808226381483535816117190877912435566228140487366800385992706205905691641113510003870591217983763528405221706576797583752857779367366551636693463787494596672983232504184182956536094833013298371604284161622706636917107122161187624127300463948892463928191537197033845693987738416279846367896586575881475302678150535527102107868876388277846996402633982579139157252538831834961831027447565436253229362496013858291119991369861417166378382757884020521854979224154957805574991122782552719576562461408955850915553339178811243642205905314648197318900226264363251512882545711980289646294730279876930015519551001344490088569954556433682739589944196083342061293865050045943623063909892593780175203303154457724658493569064467475676483135608922105803031748009220653536577655484773528976496642323803509820827966824357515877523105016218916749497072817980577866930358699667084208291923929287965721144724276833337928389277801605734798922383552606624567818208657125842321501220857563557717004701081448246656222169830293086505791735479884427358485254210089119789472171414887281192478992163785897947302349954125030807916561156020706389766893285312737580445543295360223909016802289956155404310802984012150137220588362651840216475432834552037212797799270166906068767203874554436712140564742676828390445667878789440475560033849471072176166736641518536523186250097548078870928211155985420225830614876840237362657350653173652074082097656887191723634333071822023147690767324495036452763155124561934742935660705675681900927286797315218978354249968941526684216690897690412898523370217059802240188155840284049820962860329884820548253004931609949366755801138577951225220933901972310320527879488765973036144632303927744701001042209744440424452981808464296531872481344221509697991055241357012107830731465565906373593415322828982424580488583823114078152074779815645565784329301962995643749106242106806745854605020070754832280293223627553573750046393516080880041560391402975659024887219200809283552853492726870879300898439779188809952245477119551737608210673139646798388345849727939828325627637540543215411767265673061610728019671896986813196010305361275499523175105689946214552360831857041772085580461726991233230237978651864946464724368627905718371868124156310131644535283845432009594927660272717315233809913388583974213822117209377904677169164734096803648760695572755791302788807750098891069801698731410420941573655339917812983212919662675477494464108716129550208403250920411833247398016027618597970820598040777359806646231659198542926426497840732759607056586269373105884768042561693112185620881452717528668884113171463417754560508080141419287618283987209960617867492830882560445198052168996005548066661807020435266770861991211869678034375330011209403863972956612780462926510429351906143838040067164964934569487351321768418848515067727841252545735059501284975375335726123141752872952801271057592520434415596073433202104324803849174398317652408446258244043580367816357717661237005702731216740978847776692586387867258762692376780856954389157661442161381049836454085683075940793916067603653603389547895346932521979728117293069506444026780279407883656752634231911584812173948183277367738990759700147867861693159118819166644279107834845510467973727358817211606983332590578449719572466443714039440767004768617014827741001518698544896038789204219907512855151186833651091910462608203014419407104116408266389690036913032897686095147118270274779483390986546450091127364002084102692700787565509605718955679223573127338393312692544213027148713025876995768384290817254924019521530112580718823203614578414036265875609122298992528786411042769842024844739494433261548585991988426535119740046760679872498023474071484737319272728731537294318587636350610409326637386981540284868923751970425450334005413514862843324011448342353467650510177379226943307618711480259133179393455924513549851218761034283168886319169857398658935934294971910663334256002227021215943472410539545243029940469590884931059908794240601390901075096179208538759821140201345001674374009693001540079829613281145600306460263651073548933153048985260433164476547688848249849383460563715810706375777115431078160590719833349531730575696437829145887378737980142883173904900037902272152360972843175857490098040722920921331533937194188330546078109933522263110603020001304732483767419201893107692752186146020255696997111873370003220876725847030701961777158202896123533308089524476746598297173673406216962496534850975881947700889051232681779749826986728084087905558791712544444926890271697196311065917979282487046447631370796521708310604195514066985886823321247164799797140683002089899541470415976573730574257668714090075791161706410730907944794103393886298282301403808467372320782875415003219120306517440328251589104786623345519002659871968082958611918799002027349888274819176497733939178194979563618219032353624012257663409210966752440296758255220409811878510463750474711322156689881335163395973294776706581573825622801878880308620581868983469029195950446632713588292503635411152963492415206443834414767021243399225659573771702472734184902182436597964334309867862079373042217679150165965658702926206113552439502348435053511163336868461950355783460514333333171160844995808075276835753600703471043444470263181436837544357525150429401260054651919802564561463578138036766845404540756983168110797627778609214982081324656350237037124174567369583916292912765208871700221855100804040471939768342942647660533203938980800877990981260110789801056421508626482976342505560456496616535846488763189835358801129607042128517969250927105696806190881254783349080080502458461726316605996538602253000225519348157808149694084700020473223500747408188674719335340037979882193898000461245434929539141111767602100939062906605161087583475178098232970060364682113726061068444438769690192870981276493743420857894656715198338867846322977713650469808711202194961253851336659744259590235679558368804121583093714365254468392178781010232331994119838069449810173298580002932893188425952603903457224282958195496035553593962222033658635528868360985063588801692248778863058925832999773449087811611488921601755727889301243483883222463750369928387267605629971029176895946853729211716839485966321413605619728860764332545319032238233846541744765469188654982380234159135317833637364793564160355818990691120197980997737731422075349168538984963089344542121487008107280499440068816503602383051579398321447316015321286410537685183488090330151754824862685496350284909667786993172374586887920429462426970483178094859357386049402903081768843982395485364883126598197146318104769079927790875503906714988623204308280729243431127159736941433111315072562384964414620592895997092602534578100046615118977981392794250508161641345043299494269588939569121104732825542619692517665104890508773573920008387718082488898782079377561595887678535460253957619919703589218714917530522370126597622730421253573641761647201960382518862394969222030686420797695093194012024746742674496297857827545783691506738980259426798397747680365649190988211687460775635275391978927181087255498962622437335067361712178934876590488527822208463532946901201668910274492111269566742135876571178801427664914189147327619780475770833393977029116189818756200160183011873324604567773975689374786850146641248662754983944327996965448230785560817352496157101142127864664416283532817587408198692675475088625618409160770299695651267714837959109098598241596518521377642194182829991083575868927665097003160456213576306856672995820059400147170635833733220249245494913353082506017768922587768002595502096916765961972911670643143195753820865799126993354808785282258095768885935735172150173697937753077683927980544332475663312196910726599127546393848457706672631402354658402754306056729479415486682993829177624324008307831171417451331546038202903670105877872092222751959543042036087045804536083530710423587579684246390720544930607107633344704596840936013101415988751632487136985039673508854972734496516776149160123333368547921605834255685850919804671951876172338717336680894616778199148338003023826881262837421065356155774530784152234960357903451063636279707732944493540382848711632893382687889169941818989351684220823853703677958114360644140277559796920026446437987429701943960248416066943069499321524596200688273703676157785371482603644821933921593124190605370174333159052856730396362143628506145536327314944147441754558758183036205795413103784084705189671046804156840253600462123878032382119264224631255008483483790514051187607735821791015995707238208218057890370391706523936863997383510439828467656131554246720064407316032513162826046469951563983388980139554894113588467074571827166779240289849916368080746094015909848859397940276613694305334375780516214733156071131747891265375270211220337396566198267826503419566505814785642065850827455627040489776376611900295418804863227216099826851167176596463076567320668146400707423140499827592938285728867012162395275064709570826214453548521526418735411964347881909976349663098867529743399233097705454038872213670578508815875932990983061467595686322203046711584218370051953087377040685207686873332102245019054258673102732922604094881297743623051450661875662715555512896628068948660377253882691127809162310193657326752534363580767060952932364346613975956662878937858868885322762733618005334170370279493412813242990735045524667188959541493654985657838864142739410300133320257643042904476517041004430634992206229033087440803552600867364737215384929688997327391474206479681094778472956240082384427104701515608332203281174844548834343060148896979142291308074124527611444654535692144781244356996124490823678654218574769551702903607718948212445725987057530481530450502648086074641101097072788280798611086655246834092879988865626105118040585946030982426721490914666764319635912069476308297053364157519426020441261097467022021246106578524820667385146844595425302655710901175438077832036521915231678088212850530433533605570986431496184079599172661326992129848510909138347115896087658745795178076591855725575525790383379206498841834343667900811152789475699420432468102707813695565769170217896920757968880937658550286151393280435088730040854338958249766201702342002568485439980398610381537667111900374376604793065995199938201582725895856367050556220922271948965053268627682552188532527347755934947278793344658288077150821681487833960533469078684691845204233571410629748560738876082599457822060371168583904448491594950874227743692473315328037717273310456139408477614222212167362919543907793092590206105472621241550577256151016009194283360051923603314413072717955825181688886134837629951857342642619865946379186999917427486659577618730233504690324643917223694043444552460375410017929852861940056275080556699576863927532124001193931440795552692082425404230673505375764023907612460277405796523123692597973553310114679376379645047261679136442013020446219433879142276733628131393489962626879869700749091502505572092796510085377157928649472391306358752727433899593593493675819394863797662005043980454428485834362854716236420117674682884814158268237509005252426212474987265904719031454889322286768215510547294256546893761537861266625981309257681036575341041414430574886114769894427152752188917152443864622454520636143811449809400286445287021415712827470391296786137539780367698329334588480151430468993676827535441195454756104014486827191940174873488049204210087584469118770808185131232072616694664416178534309421599226632067531288988082094517665348203743528931090934475158466528229137091622251458671876529400145751119466610063736335064700175714867424884111923225303257706114630276375895496375823527394343402522739321463546197178012735977690586452513000133862671492742846474578990550061047960212243076340693913473019073683706155972815649573991398087835557709720123658111377139469828132690116048799431223387463587029602504851764472117962142926252624162424644385908593660787195075292761754510419700005020003019995149589974453779488575570043375370791204690826853092681834444213484863648801583586576487352454604468442327536703707074929049719583113882356618058110739884672681026032087509098962482085205709026051697729909488634341611035670789110513045524962809672523844712160876103512671962054087385855237775383989053692714489215051502344265263407362509468962850199084322176637167236323694897858427386133316221272493078494760532792821340941312678759309521176666772147734171832690592364189727907609930089746275331460986846265677663900785311985738756796164428252477600686903220878409111426990494068913182488576874772932395077366886500546483804263871520060663521195140318021283907676371719498768714268177594499621547130914802673866755855696626095727692940879247592946144190384518783693553843903961456578585124561189789009016832285049095599843079680040067833009564338442462730228671503315240324722403579484087783688151886000355714666956065813240816805068098331808782915006369262001011570264848880090843953044191236299077604040666334835040960562327968072683372389294075796971664598875211992211337212635838523043618324788833907000803765359856482462420583328578436531821547958163756371786208817397948409235598747609901866230537065102662879834322007439327582561550484001335518022404241814104564014021687458476283152034063507540067704289664944231025634075844249524250812196409406503977708208169902186285494848016730576974740412121398453345266974012058582262461970028419305521407671749453499161905937031803333020985425694800648227571414960648668140711552825483894795809789203667653355989175900186178978344043008638864157756749788556115545240708145745347365640793802227749818732540389022598453565967728087254847003151784324631417477383622264995094885697664885673021521849198405237164654045775810876484406309340572855669473048828334899711640817814461281481651071470497984598305030078540142573601281932933416904981689827748064415004771130055889526750505277363191137511212620004081975531494685823380154378210513580111745011020566963894988383489091176028343736215244269711969529458457327802106189309442667830777471550576587665777880178322306628853297784878543230280668471893994195652740020568668954414552347703069181090341602138366632422198527419302045928670634410372801051367213517719925382327643441560068515129735120507623110682816357697349886989349865783103785316667776578879283016196696976255575517046356867737466733931358928949364689367158686664812950298049399584471549592876116670103843068140517595563788509300741478848052409143352438280707865496202655823362720315564601154258492343108157628014337206364667405322323274739721716172128595268039414185811624679459786434013184415680870904835451532642454012268385951345323273292415818525896520319248260117518531852373437106475496358349075490320613252464565513621382192796570771822323187470720672145341747027220324690336210275494850454549277432395287159134140189085364071673595074800058214318332781899725153347132562570820859741765950634483157206251772573475742026375374191726251481741366742269053597971676985122137353406886698560854688949907804159581756261972239517908656930728922600782882603344454726693278091505907764935670820322674161611217900922886225598517332972768612019964681952510479258334245978109401001163156078591253913017556986495570412908655672453354498650554394822633764813016252458713882210341578574345003806657332002220804171531999462607927805900039471868386647071214386618304482709059722652641066801140943587228061425156399889667377052072161504177557860647065731944355846220577458551365821520061860432658171687978348793493572071817740278712204142119504221028289725804206413486083681238680134536648587486551135721580100808821021034582953676311567955482596832922777649324949657980760325126687117726066936511795342557224258326651253098227619966588253000545869569999307881083815778902361190110381749729807014968845329586985006974251019474879206819768494610280119626129250070762183263056708641316182106489142838067452180424134554160704972109519280259311639767510509993621576657414246817411012475955872572709762278624887679323008330829718154428421651173548498986216595137976499150166683798500572237896424262618997113697769893210807345418595729657474206941917751765603373353969439758152444539290236506325341607399415052261767910545021689910907854668510372893440157350375277773788430657711505132221617676240751612827285837252802899221585124745145426766560961286933506100295888702195162065507200973079191330398627796190014392116012196667372764903783350233615351651136470645052621588540839173327508418241040247541562096425764379553405224199777772606612184356392887552324087660796958662722861939550341010227362787845761100423734425100285555513311846643941458524441107195404527463571802874613627225486379287677682474311169797762706449105288714826189285295406056664028819412904704190962569900905826775010428341067243758234039617104160965955086986993831761673353262870746890654195484674212391524061619475299643665828420067979948806365747452753806745150379431775301517551598383363903959094263251226537011279175416338831142630730148310716245426316037074359978228181668118153812769240196296961290475114707212307109999327439221786481161214025493690341002240873375617642721806614535008010447917047150345414186495229720755986983916553150192604507241288768913629679326535420401888704561492970310519371431316767265163061684518459297172162690937974084664119059270707617036553360029576464937827694645598132287113295881751238363691454892263553886984279958996411592367207863331681934849801962426755875346529772812923946658174686981755817201407643393272602442707004374334050464209530935594696606154424526773149167243010992889273022292561694973154878650234601680659873082545401111921427051707263560078946438542298238212597414634714044800845741224596744445858285772185791191049885291840625038026790190325286041035751230122097482134437270081270579971057791961483781457485333180474712070709597699023974895794737705430795357677447903357265561064228138587063040511571414591762410847739214379262787223177689032287337592165635733772327225768685777156570571992715974605656068378787724386651343060877971274053507121625285124966114593171410921431420323706544021674335226791858967334862250380387137533965279793133701735694151738803462354609546174757797777377752892088548365812969473362106238465822795546174618369035396913107593776468520691042185067969847968708893509019816457440090404864297610676837966154209115650651954558341316221123583514347928716651872063335968029012484327998485086269432090464318226239371199494566505877198182091463001490601024551967504635360572968271451569387531734636537349878176132593267251436413455914092635824870656785324707204915419880980514360011477493722032908166174250707292083303083215904354140060832057053805501257549688323909476589964560753860595000533411576840875001872440525599563476892182369176362817549827406367255648394156482915350959151599559087519406582343402528759769411357963901071923241333151237719250239179241130532061573213589589289043154357482904658433506911820611813544897047194641639233250296148627391101474363410808061655768141348174444630387856828952311411701688739340283600510146091540269882630674184734583244105997883105477568001034787502968862361279000051349624694450041713957958839820985792282163561213564537031876967791493612714575730922225349070869209052205352721751494192489131548939245633919687954275478543119381885982529138624698575276597726467585369049329864431290514095230532847806207287886332805155034032711204453655068903316198647504163686898979669643100939400371244587508241165092647053241161321772996818106346896021833934699755898554770949961287888179629612875426099121666284635141950991531311026117226163859624188986279188216566510378354365113441414540381523580505190447336785068089142144702194373073545989175885115992315805533018359163017850008591757456271976119414829092995734242939605800255883111377122396528383687924656162294586378342095923074175159425828241660030958323828020820190030663099900167100686634882749654562633349441487087306619833537083099763004155083021246583056936067994304172255923556801614948658948389358391653948242563909120018096418304084528505298607819128568475967851861023297278968467740229690671822285364616143744440889755414723623780375158329125515786191618040008141805418925112487627966538678346986625629369884121862125122785563599849858318355367228858385003418527680720713304163279532751035763801350681897716080196360572910061360862516967243164530472302724469688187750237739416454325859509580501767446737850233386022694831980846198174879012268383341631191751947627834103335148272839503305994064212110316169198296168817601890899875472040170008497270742681899569902025412334396990181619001256234792818562029400339982663824698907849021400522165656209102252879619098688099808802942605982638218405091891472540841620408912756679289116378780038861935887965590990581411371569317613984862095316155424166735667376343524424002734228369105418539114537154670818981297781687958400545915327746822216843594527525151615371664659325610935623325066755772759819945118069177044617768939551694160878611797908470098306597660883296799647640491529108460290677963428364254218855907277375067286381963226760264521800679751332569508866992483745236790981715390050979814485413688520840782523956718889046566232510251321463241583931684867781482151010845285712674136100486856007984531364809142928533157386758612616821563791137630192891978579938791985923640154531430788726423720506485730303734914155829450063393548238350885315962243874774727977365982502553483419477527602632701662087363634179720998514706586472943615093811449777098414898178292423619172416940551534819071515440937669695360717537390397788255239648298898186271623836527326738756103519175836921901996838881716810801934287057849920916867705891087182025685017641692067882796048237221588464777677187787990532678042582036916730148786725620659094413724339030624655404819527972357760990019626843321315892018543206486796660767113428723331670378225624365755130939823706973771476565310182612237492679974025617216824524335904918601751319971634095663456447064817928288154492813557729592897094234324225476551655525862271325773609649040540739367693517535022745250406010483394460466105384259152196770973022978809468886865036696906852867189582305815037215208222540191501856748106703548309300610845252703466609657949298773624419592748419053217511370735112256484400798926955114133673644587033235835790956035213433945703738727880847715037807422414973160016431774819455243376942087033688406668850769607072600990262175822571023381809078663927307409238321342804830034224960384431956929851678629756609327870512439996134625391484426790306263738508645226688847383490378810331350061923888926560521970293242221214186326011486680634093526840347081652212292474765684650474421382049537428037148364328311805800215922603297502739557305505637827758830225679382623994780463188451280613082692000526184622902903073424671118137550361329042927093227057828327699509026084471340000741956121300856903754999242569087722426753074950044661997076492675871934220740189495000270715441309836088554999945557584129483397534936280272958472546641980264876440090101473772711425127813665272857240255845595457924931064144314549676735210972599219833016354383826996304446038467924131842497916581486494555589723030363651911761123043774920232051206225504502033048856707005816732574235406778378162084208257940352906162027804622593212630632605800633548857263762860444656740506908914882191428930341915168024469385670560444332002682201018309295969025946432197045083085018041306408940007785783456665041462206026492103996991563365943780159900873625953744062305093585617633638678130537222243299733300277835706879292442242717327550298113552931249852585169192922016731349831014835311786422182739519781980747117665268970121804707635251137178932698553655267080425049709929033477891157028700001927748075802234138349392438835087522185884788118311129129985977485552197613361259624081294181561144937125363746341280330221635647960568391773483155823617082575385941224439308332631099281907195885999656385102698700737199535042161500927182586101883629533666393507574374279127715329851185580605516205265246681376415540178209962406699578584448336010181496402579834399973965072755736201668296435884513559060309186184635893434219165236088880703334517742507993073855351565534412662134263701359403294376826071175809267169786055361753276900124203035766706975850406361698608983470741194697412147264827213665246379723492329636482567952037284732561900510906971045065161190706838490341011014322010909619586084104283650869125398409217201738226800973347638374218374397452196153217433462670365231617118233593117884938148398570486550487147152486888650561818398823589792623868494387812693637515484492558236438920630932842220906949180740881807657441542881526340968462842682775587903663131048534203392772982919038359252565885280732743046306312838605486651056010615226281115890845068933398854933593222781087918379961802648131598818156051119067056228828674529631663060392014751262843767524075926858801625477278751140736491851474098255304842713388574770982473827005964717939895171675312889679200943390603099176731855105554980621190350318929262424459160440651266678829001379310593678439969621767846881529752268866839690671899362782932556226433804415462250360056728487922503079068997795815101143409248815384749893549536069793417995281583604185166951382469348559927577634389047293568533685293566162911015049096467429554189157096965578757411294293439584847539784011394270565682380423383198319265730588856637537932973884608476275786087682505633921924115353730704090523604856796349635922828858962641874968938062067817087733234971580472655553587942677506481389209571176519822095423684312427083252908971716279335986191027173814881603600010352500154157395499802898871010655398302904275058665631982957647221084357536899830360114306777832855906535528180721653407098740976505629272639892254018442718683867367460467424175286130431632480678237340397292698851553145455005018694803204778999474932999867373521316418081688670706628924666179443089737968734709966082075183327937912376282934011238673093062085028484702681505166337012346617234681371668026763890833776379387118322326834896320563592364042465272896827725799432585569907187086540384868513685120736615314075037590000602854236732686519460713645623979650627544189359823926515449418490339099479060285247494320746337045879690003386728322485923288023210181976400795445230257479454854107280251282016156768379484021890985010562803589541100607272744862648831266468390710949608379218987588493531169719609789361898986580837634911043382471401068522257138181070321615960150446319895138149002418519108533492456887318558555466435533827230974663339399516584212097228149717693617855124397022831739935738211006102551828828735119872408080088691911616196257430152975518747037027573971236062034940149950142126387633517345865040338407978259334115778387354789120125284686076700715255663099669436483590759060176410954039785811037121690888457383653884839608586506720082709906530113453062748734797075730224482593998810818523086758424063480906016021058266443298728566829959105573192544324288599674850720812715014414231427863825608904576195500280260917799814603247132122059896649222851020683990259023116663074492425867170169817714007357071025642287033360793383718369032637533745517358654731888905047119211484965065445941092252730936453757401217105275912807713996948452441521993625538828278596458374524207491481803191138541310058960977465217414698200093207873414238322494936700129580720988645418380126757494310440724769529579400904517924178112592648728088756078179424305960723653522035805286596908385948000721634954151635615362669116859408314231922585756873577917558173888468867228825245408814942140840976133448715291826287832351041979065175560901553664259192161387906071886468673489605257522878604125280029668397941570809853594101443706935573305506518739754607462319089457482664426174090387602826809740819910801492254021002080793867530953655058916183783172203932941651410739121080410062660756254622127318741154447623705589549406638303879207286836920312677219940821609774641058816482224297854103181574745443194899806245367374691862266312723673000804197892460544230706428746220580963410678675448906129910512472883486426272292812965368485656821779778564997825512822080048852382662140022316732508116834367229350188530364663294761261994128486430945580318463696983142622086571821747604030267782400181807831014956924367238263603576540967243877835983972342596001225138447602758968699534889092613222468543181141166719997988851983678754207563697359814660083491628267144649667426148735938303630828514248238262462840527934463102943778805567538328594941757914268539648366066784752800604581236567494446033360833294154185309969668573641973696513835801326828278150933607673809157636950672074180589864961830039036151581616002689921639091806316228377161537537202154525352959830971077352867584024678886706802587897813033055910524117643660326380499460803908372353484701244228669800596973252936057118552265899601758403936843562762471436152923838327956383736873866090461077888404294198715838246852672547645973336691281092084563072076384467750235621783051377646405656712097407946551707053271481175672673653474637187736218519020803300923157924267809365754857341281480047375785525354221709089374071178316213286935047750990020020684550833793362441825297266251385202803063567785379951085949782711302190588535226367276670144945782414312933292417548467233457007372494423421771807070321067291509322897359626329156463448804310362316714111901379524028837185782816233618648129758480496420945157149822632516111470981542226956034222396480244832547243460496056920459467389509462266817676348640734592603696687324305821294497692174174703211991540537375474768829018242882541837731760119642161514609104225432249337492467854698660554807854038003553019937046855504948658571965585833310528706371277493299891815305982071349067387138919427407032611756723503372180809748379730257004502973707001140216236743298517709659208050912338627144236143310640733196847987299161227641602044700449603603166571860412399981847277356657218925564424918955048543032223885249840247623090946479083665592821610057572424775932729319483807677272597633743530563010065877271824819576927801591602644650545549881093476270997968537353020987708534984241724748034376331774432015438794568938327532749662854241791867839357213984499293603873919308755490872232961764531479662377219906364689350925326555642842703147149261456825680721517342639620672695508276416812284866821153019390320179968485438553326880414031016172707672157903293385984945256936688757250248988350241520412003348890270254016106810519445649666645502865526230584385552654184398366541253917615943518057926733242849171202276303149804455166141313946807791557455958350281495380526644238430972280794899797976733618706177214743049256345321628133771254215389313446269702028061576736067307298146819185047252938779990962785419928021705651141805392958916916836985925251543519006621799889631323021699374173020600702153685949265078654606364954248245027532473745402352596470232702239516330585804673312532745342864173848202751265528486497354346831748730661558164896440935051939759686956374612998764646975728729081758165284594573884230206762174205600487238274825186995706567060479473065916165929719948816928133286536783715132806185853165504250938721664892602848529043399563417280060795339298790190512427808872018922451888961544942787367985376418167981805276936928761017402954668378812397419140066197334339196603504486512476004193629942921274788509701925661746465396349941579522824769016540332070355132806832003059552988247109197711814227298756447648569006100354609061748437530270011661898839950713655121480580173567847623733407527793594566645139360996696089471601976502803711407150341202599121335098379788468583634636300955867846470945763682444050364656609713188564417167630567158821118054795285025328962095551601821193103968369972394512212946704933532846512876407749402071636419689376735292701169624231012663584754166648707210527190180549340498322079599732980232434771282615599352053228989038055603415408500522679678754795566283688967796755739019078540867143235397343572453795478338333061257097934918419696766274969190187488712795044384600208183598994470973756006748052000981136643709450468238255813832236788583662681631610807123217463152837016536696932684865873029125662458144323489378474200644581754302715361119175391353531301319242539857934562142915280497584913083686406308298097950515585212965906489156889227776167022642186162343296949261052318379251189548211045619117444072022253567503158651520122551803142439071217338390448014420060159402056927534038273363635485127790942566889244809947723918058429880286482406267032449658204711943964198159061538640675563469422375372209962343287316136268252742527777314265259156231732216166535729671625322497051437169393170377419924494814764017448658667569607470147124987487687326234224548408464119033300467928560250344039435715142886906877981385587495145776011254215045741792574754584581089645114693978437041338339985083438798961620103462182263920046138768466621774209662542114792551887392007329299156617045092197247462891124581827109422152380648856621758264235423251015410748278320318879495995545107732618879910792532155665782813942967931676119093234753250792539397988250052194196904185169095669357102880595652600155512375085852785154692158880301078106350995138672181298694257591096946548447147572609064884894968744875505036791331172016147014671373496212436183927259344378003181734007451433427071337493631916470125224628824859731267404509885238733115367662986255329055715413168479187834414565442026339842618562655971495718536704872874483250482612215748669733254015963893649365839621372034502826581274341347909702791575603397222905609178709126204807475989820364136186246653123037385481630077039784369908384854652601173559472396439331248258811064809520027584940823807735259870514821091378525911835389381567438699275380568080503094587014452444633676303500849281246270543212791405105206603876469222576192783787465721046788921894629938290756989183854974193322385302474110680834151099079391003729610655179859499508248850865934033090673471533133982533602768762157029485974968243513470013245466202282745977281060039248412837486557689555786974052037633923337498546918211145775814422448799454308809063244307975370470144024234777805681891267697575639436124136640612857173963066374537829176673020409063852114437075258187099701072179854348528170063015454889359921190084475578293072799092148053562046664259919649395349626287087740983903938603779784823707565754672019442793662814349407727909671808209228449746405766443053497907070269349466752596173789429576727420378285038395188182723750978735397743434532835808862805616936708932816047573799172029907967650436254168134983338113506480272599756784996556743588308902614070382241352536798977927169750380437880920011183580856535735481090937459978453488230631807311885009074865712796114436229539558975469883565443898295578616334007805836413431199360827210471141588592166194205125814844985788319883518652395016029122907618691994887637366925366225677493389754422573831175916588779554999084311498707455523664003411652829812239490344480273155147137490875306294607154630900105848301531550787108883242189448640234061943086610646752233234089381170349151372430968060816436891050200678621273333975346026170189628564751479696813863689964139045218320551392527971822882910001331722562474361045228137258786946164626918531788866057204253937113841320455955558831113303938744602732664892707244513720091905964438545953987968073432854982569328220188384468320249052345367605587485436065195153072915246123701947765462670554888105662844661879626765739494295472873149069403589154077175335391637125367625984370495210966785907081445947207499497032503778894844464147511061680196455598937231334591378273893708235908503354968019630159278395285727174879983296684179631414093573132084416590066790905343411435538417422502753923155743391820446613150081635632593060880505577075111666186149296624257896275211126848740820723851161146976606438366037624129226298628196901090293886216353949639431372706776898838867295702188901633738574738261688192097227586897665447509728053329436756769148423248974150004373269852591128972240366291204322224833338932019365390099110821725741299241667658720355074238314020850282039329146145537129159224385989493631229247940666406631985243507521881297115999217251718747990074786518307299651148424832262878303858447918305560493108732441253151170468569973764348036477225449125202064050506127515744569196262358847637321236768762028575107388870458073693032719605266389050434346292871673901535408750050306744360390018586763358063888259031532620172318981269756848207287417434365227085459459471447472736171928553441348365854468891246148856802851383912903455608706908785058052643248059176036649861731299808967706978093781859259759690796114654585876423978359371019265762162097277239934449657863738174645557493325727946943390849224689527414070586516189009487673796795163972696363512870352666688191684975838753878205996944347374339997968233469406298144946833175866351225801404635718597257952265560081219434547790561274377738709200758364579883307020007686046504904532607577752315371141759108764448976923976256950615293329599945720063255328121527385743337958962640516620405617723445859374004655679461777740341128097975863165148864277198734729859689339767699647985069498298666882930578678576210671644525234025703648125373193405045021701662197327266116523540498598185166906537973132090537348557526608442203810964102006650174600202427127936914033929651055569067522806143564685148878252872233460442253019791546863100892325701395949490830980642022459449630026213298138468499559611424028750640546610020225224826892281263337860290061663737190946749737886916572565466159970200417808114577694981076685448982035771360751510099608648537326246854609456267739140395300914338690858832789528797211815306518077020714612781198570647961867282723845447376669356901777749514140032151033937567444567226421064460638723920848555162229942590786900408709437282079413153394004506796566738329759069895823375392408923421155040757341137862378327109063438569490172789749657834658280207628814806904933437143558827657551369098612576730626646040408888171161456023278508237017002757763734082661190835560826064411327535234555323560210333842735084768409058121648761879799189340609987390787415732899393900860252815729618834032510387300274780996146664640074039022337401953138100190783774479670784076027873253886192115369466965814911176777136501414217173063843370600635383438778197776860235759307009617930536806676079897409100716242054732887738029041677350128744670807368934361495221553890970511041618606083478493646910558258496223113000427215957009318246363234220815818542490681202436228561507991572153377487610495346777439858851102651681034746026339488937168836082084667918752021765302243091406670724369823728629819959292073422742328678705498945288596488001296023486157038949964797969634140379508514650845915981548283034064600552065446020974273086440056651916379830599141500558593971594306861711419722666281795422795316625235920494482431028805336242267823701303983075465381940376307798241305484729962502226900562620633133166729631805193927275214329842159737980821389928292876931963677445165114375212332839725752350626839866207035134214126959193631695348553080899266205922643538050450054829229524339654545025696632820583181004940625745179632764595156428608632390530997105344102788612903370623480042046579844697905741720004644234745410929490003438973543789712791808781684900512222877973095194088453433637696308882575302114732430587624216801859300399408695797575450239277732857239384471714511054255520321683677812483768808692383819892579098405705570676465129815455922482908171030599323970375249059158580409750694714874692637607713953564303451026896989804338341953952030050265584198022002695941979562197023428465699421502069939817791662941977684242669719682235315444621459358223895466362790412262935387735794989993246276693561401947076178249734717884544564860887528906165131825518491662172104858587266906973029939626803412176456161002131863721203669408529423134293880865472061215205856516401323692040239797095224299117223598565167974579079622337826753727118940417974499251528097502889699068618226142106705940224987951554387908807653874014505091008449604349163755286360317220037190322319380754474427644501190013720864886028703186640126804026258508805573360360435050594944941651716062518755890911535893340808476932028930150677074594638547089168542676558512825236490016609190712059159737797763277175072672071033537973720864896230539891884689056985511743786836906457662713991667017531104564657853063048859172858493151403041155113457509954019804959799996724229535395533540439488564570730917002036915116320788886707485561312210265995551405698799859762061681543489821596455498518285082430030888301101061625324531058448829224332607322193474543852910602685587164916328280054211968399422992595947062174871976775617346015722013451062787964484876952337290213713858303784663535270562105589175404712114059882207882252197134136462153230624866378349390572680130503670494072248690609802715109821098395761043821233083899019718093060702465775201354547102860326917124448276610272629421290043944723346056100718407045233735420215522161123834939495005574580986521291062902047718001830418583084991415673555385972056109255727676322999737645741077089525264409981572898271325802058572881816624467027401224849014493180552556397717353442630769286240437934532910734558439878974910405846082628396413775022163558921019900791175310070067264663876774269438124793790822482190478473300212988097089092845505333617456142834424573523990097072768457230269851049938755651829716416772639661105684957308150215554575105647232184948247641161090556977842673336940604956167004542246659329196019935355195880203974424842245517223303127593772717524489259609119061088089945557924359275391092130910859624891619465184299947629327396550499781329563277076891472768754707581629568195347127723754309022754854069777464977959356932573736374818775047687820371187251611062987366013984011855768842010053731718187264260571617477169379994571572412987098088180747278027554170435448499957104452362594394892099001315526029626174209335931376281399931970686885919455777033962493214760650940591310679420714865280298357790281272970755930355749833241895284600233142310625529425692649870506997761273097045316897972300152663828383948265085057234019487729873332062919433486848140347367884021086954490166639695605046581255125344643261384807680787870149754910085645322615502601987984704891461380874409720867080262199754361901623040399877709764982494597322070269729360207218226105123094873025434173968633002932375395933145849814745412354128111745280703034241616033037801846515223436983501264565504028565627685757947236939533837088053305252812373578454061247181834857257539829656830711815277658083125015728346071205813186554241320708616321494148214951606770619678230849611597043486698972337232042669254831570354611039965818711799209992874085926086192310641800330448555806363977211079764805190283800096683921007483558628703120295724673067511673574035867408560979359794266196847158864267857233521366004227477832325194070049111407825747033801197371308150933663237914427505549154792724584768673863491839874112238877568189408667030740320969000265180179280306382548848814299248351198067327170430107899616976870856229490124113119959482319790960578052076893123123252339689450638008655223268762889037354634759880500176403140400882075766119335483867925028328009965465612823134397051600534394893879792931651020816880562101082043872237275031076718699792645953617538011678918016915389781965782622092242656833313539875101039147715495877570490363260055397776120968182279428882490720209668380831328673192096754125957814579623630114684556164300516933631990949418824347818233197659102117310056674952966152738444350608050586406158264619476456792657396532789163134934192147079682490156485655816210253687386697821997674078848887249288274080210670643735493941082550989082320520974887503856617590165358890107554548106020303003002026530815523658863076124280298896059256451766342705755297557760996022852954619789456156501687986533543996470281305134551863297146650808459427603773201807884889810778917217677272490482602099696553931777155455861336093899817600268203794123530122453546768520769066718086251708411571405796463344167109514820799162042059419349200863852660083884561877297422184120994971778496321438974582887252972208175536958316194343069139017375864718501834846130877619882078798794427037314130658700601308706339167426273374431831652237334434874322790737247411010712186148554022079868943109881018538030623215375177244587439541542813773673706667152755399635334368995639487141274773964456993031382673015696079109253736553485862405302865934659911820696460615649060875063525020579188750877259478893962566295788004324917812200871695018088245831377122943506504856660844947519008100315665160875843860621922116702088816953846226580908002589635214691301700453312354404559509626802165764088121902478312828504622601920653401466727824592475646293431339369947828261108461296691569509198708626046888800060581127529458095587116463563230087303848596033631906594020148250531916463484592544751871902947032020788978672565673796478997673831430831633095970492348286870299491826904818306673748033714676450084982070032650603095800400776853314177301654057112432509313323647781275754578966322885501314050467968671384716917947947572484892600600635839017393262983464539337102810707940951967683822683812735835051739265337250488065116704794441676822342751387976007059257800151967626157823121880177853915537592421866731740765361532055805031359885178868132315970499791823391147072077597181791722623822268753873493752150738164077994868776942146309063358420397912307341466046014684835281881816608281473924534781087727534218812153560701828763284815959726402425665629133553581681559500579702363579693907004758700856648153107643357331487098191409647523854625989821595345076038832763679671106950647670535077679303908736962632173324287970647801674713324966163380145569318383593752285705013458862522350175164683195919204180095950172866584966349874618361192803279169482537816906663163113586862701458254700129550116283146831482949606331602308774933871914843148129098252352392703543641001550361593408951379108271339721023219719015450564321430543942366176946683980184018949883086267727858415413730276082268045946929360933068027681772439317754743161594235237140603823234128593196342177645368155913568095654051926600736759465436968110776200496141416118766688300883586375526974037642114663645763519025505869926898281901028402756636408580318896420277077412466662051323715829116384602837935607891503496607148142781924066350157806514294971200733624072373569711095942447083850439185361617514411482510170502705871029142381300710891420970990276842285204898791919501085426828729148116624193393408105792618408366331577362372447541779829148640354690640634164598449706639876175310688986782324086263281231755153015237229861183528200313508729455744843601877605977932578824035288861214844191485790691615165003424134652958247115007427705820964351731584621342310803753166590604677538688513255259398652959243335601017916899336295752833929262991630870917906603325085653713838757691499918894168086956237398267312397475264179173461157552714621202265305349084503599767647082867148970791240304269207305399582937126667048767632097030510179514552027568690110155067679258747747401128194157327866377880734645550604560837880661625145759172498568522818966563228496130107092600682251505850597534402012266875359613678099633203463963443143500115644475852342221479028040638617168256080247798466382036915910465631578822408062133389809731712828994724727196104503926847213620067598995728149238625815320900023686529409479818011610030286072732763780002827631693933367191039518954651454198238044122668418215169592440420046228063355009659663212558147963685895427376964924336752032594204171315849052223614346963008058313277979647175641213251226654498718420277163221916395316067644962594968702684176656114315189125604998445134958133970998014923385801340112935013178563643059697790848874489913563276235406924156523273913455021008290759406307129735941334909910031119235641372399221505016323192252341335296196776610914825972311326948530368120461178200782946843990751319782717843997777178480195667390500633147009856174864196687682977422313674997625897284130330866657536533865191736667522761518212407876489858971670227084566246666211486380778596830103519725931189540181191157237737848039490385327629978436762870813354643468385660760875029617044848419782179565572527447352410484827771772909999235171791767873398778283336368673280277264325049185671360580653609367628987742647486870424982810829507222736690390423186903950680376104604610257714777882915987323740383796534753962336744217331930272601247089083497852300341192953208080381109247688483277290660336604710075495163180814244141903880785653242129920045065405385031284277298664527578047995727800358287013112936641086746463547138847061639189281519908202619657969511843041616900945047563144777375328479242034384913076193193475122039341848910742185559053534720928943020537868352662242720897739700773430007269764527734950376094010001614822844225427699983042264527606540001632139472332286981160014864608415264401874285204023356829822045732643534942843029068833657872206360866285298686140961879324887561041464223658851047844465472434714685970755751112856642486463920952604813529807134364210737261684016157757924246850714539504521207545089049349425908127285936321479984854592033393664606577376631596432133556340375189274460911250403579494001350512714219915009169351498837632683379434405943524796012311292791252565070191494666320565771783785180521841065076699487376048869764862504611877224141289591148068980034288150953075903626610305940862665915782090433011774275484544231852398386801103354983814535379732815408860066617941895528861677622906172370692096060205023511152331724778894569944436487323623404775027842349262939711307768970813000068357093472988697808525571070082433911169695213332274839510307785987419466024780000177685553066421076033781803756270397185446123944148156417118679239785402248496969814955957152434121180897897463054462436416670780285650522549670036911138099356849385839050239513670989218021020130125170132508054820599849804789439801115276933710096342522438446440031628582439076888372386972468776855023102117749306234347921840322856281955332439348204288928525340498411037854046362287696396532900519553314732233999754857772656311312977494594628139562222878599427972289537533546450647827436909740952830618910527021061613223488474588269735845798942145611955497301368588929324766134634005778953378286568439327043327080668695470997849517911103107837698668885454959451542510777803976621389909897555733344242345291245203407145348493248890391520798878120805387300145051902713909938209401140952126187685049406017145013880376195446831521850560276072514181330551821062093118760501608248331650283249688912114873948520774836788996063964065445575128423727559578235832268144834530711914651317423686866435403616232891024289623083812997245293637016572177065547989105831639252567256947568886981308265929663256633968375084074638390507006117943656244950495803906317354123083934773410798715956325106412977384134691750094272212278783159440348172845591386204685253426714896762671220849350808243099503794083907853500823112984098818634014858543060324481973641582031636317722903044855386230472313857453468880794208616130447320941289961459116278718086884180690633777634113782307603322859259729280361543734453650264465035275174054933473407755124813288625762158117713041316761425917902505904063589366400952615248100232413939606823741980634069580658851254136103397771931179901127269206083780711186162021604926084112483464106627981393939766905735918394717701974544970237480081887551544345483896876333809188544971825208127673027284206655455192678535234304217476117124620115340397283493508690331873141346618732731805488278328158956166266675123442197804727051755417086120042828322045427419426280158921224592291254779302602221255441894752156988437658602278381565265523088223707353073815215737449763799303654442675682921687470737267139544681032595138113536747359588651484836324031216208160483758671373389294923568867822427368951585493416647279987731782799465747677465925251313977591351226758931137872652498922977205587282723212777912616555821395821273771598739093622902094988889532435643854092088537594389531517106792082849077690451755806912334312930964551110562485552890166961206923335841873750643255700855830762690070914623816118870998892783361817373167175429086405207563223427442737146065236547913966801442985892141740195785181452016821829001485393608905677420727458921944085607371447196193023256522105722402941806448222819920859629352690463283337324212922985879488549164634288274456647088067466143563944438178742364537636760052824085001309698003564351435062897830225936735158214243812041665921787150410663963311799758731692666255053891609263716987343503207063162867851597859306232666443254854283300104747418674566329615173960669693892037748806589463821879323284487775428655566766643672089904988624404000430252103728579637650379264088909520528065228406557158829438294855178276857305096361273354445545352019099393764234748855794677304846909878203020841402061508754929406897940864073644192463987802676396803788761947927612574830382437640368538641119222739983294028626422820276436905475486960752953610332584821987224494841243871324124295029247969513699524910694161731386382064246680418189254340343150069886664771437523589700115736391819676831277169398614469660162641131458705040480203096128645121281499540067248785813661057393893818568018113104151795021328054572184744571206950674777469012385489129965175559428341575935112447243059254233257911141685163707393142069668335993536721799729035867862521159454216021318766662008512929553793273600866593673009062777786045123094759306714856734881932600455550791638028581392978029505868385694856584948574044576060212723184066483091066488787374514782836707943592154917129193557615054478982583565661026699460377206436030853882069509698863815345003337484442283004870335795428929257810274447655480752929983618916197997318114226213737762279849864802550654324763118156024203582146833168421117937150115999281852987167607233912110759916864675413262481380769966232808647521960670627859726364740180066333447015490838942036746207044782543691044077204738085538271868349340296278368968336254077954503354767629980981170748085206185351192863733887570065085304827385438635928230238824963691449287330317502026983095050676782197264515809123733194519513027160162536287858816794807522144294678734167216365392729216783533483710339025897850278227872712754665371795014084932972347999788466851922063384456970199542532914339192723161045168209868417374275241869676537713942003245774158152693913903074268563677199119112128604672612724026511134668522185250866090199532712988015467318296198118222129749983998929058322338734196665692245598576040872636368313936678425193952650901385509824658676371946609474150541767367635323595542145429610017301056250078255679075891607357915354076341951740858784348204742196256704503742362618741111370719908957264664208790004001172099992855246968303757922344578864637730109019566950714657280297542729732076619785072252035589106370379751804630217328624754667823555988058445412126867946789766125142673450860337251695122241892467840778006715544441676072596567276306180542282257498846211088234720201242482580144346443443273388291745876715671285884066221225121095396806375432990396166250081434141533332182123423949736765682564050977077476467207964614692330919949123170572705368707661247201947289022495628771423457475271882288895710520555317853510802246717896825292138260108036982227631260804246217922006029163514025173804709208325775744840866534539624138463221378664889953751915659566094265382517360725051765408731748209469136864157057870548215467259133818142645894726176898939137102875748391695678936113815004387969236186077099621910498471170056746983623829828796976376823036927016888155069355925230931863841689835396875549696782835414352682126593281258031653946575684213625129430582456684990984521120852611199253130061516148737752586700140228063993421599849560325518312532825868711181212317750852413945120261262924057956350711918554889935161431864590024567584396792009371462352393095578304309749426997938089273271208983815911870766319842866765519119455328718904778999850148328968766015499866304343498646528906254182589982509509496680597997063795170812372284603229436971826195816688884974370958852591546144445054530426208093570287587690878836548193053299972340139201927365657651446215671980634158067857288767464274636404378899401600076813201414263225126090322091930116643535107172512634411395915936393956777592561327165978353283092135562416889705370971878246971843355258184331100780177344184092276523810550724419105273209935104545930535461166383477228419075987921635679296954006565480131987399927810326744923980810662729404855513865683741912818612431197431967472114824795817929331089071766023484895313861995432562431112900246536671760538707556106121932516177308643099139010336674165402280077204173671682846436207152462367540999273308722281143367739823233799948185246388314167060438422088771603328017689788407803525271035876595891512757412266018383171173291344512868700966425971931104960497035349431283908776519648688012272507365494369899757874657945525790298589381628920379176637019822482007076583370074339875400142226403323342402628393733059475067458370432730030030006276369098408773851728582604220247061767096314237213172822236737535574056962318345810635984205291920123127452114432121093280802118378456866316697053587855760196043895901829081291053066869727288603371060653296698843020194724703858490241087170164170132051150480152581145367117114590032057418886423810998463463849487437555017440265241276387741321109327023371813366706175059777841107553360891737409731775727883365123517491725500056474011466618385067742757159478922516638429021028838308574832099705190269003448397617833539092285052931892077120743144761329600614840621057493189041967475574801116505758687372423660052115762298330475292363530706221747378067192437938156684537353575453865763993726019163002108455958737435783401606696555198465278196033625234613493610027383827787938600845152952616759156781354150449705313449601077415632342690528103649521371391462270031666885001931671417543188293051059192999352982303233416301355207619066013412439070207697964270003643724260655489740458884452969352596745394932692716675586928150107663308612226258273865676803981932736850543035412407642702871124011569526979990204652843159011921963665992319960507783858207531319551596169878408780259073328665110713469831211760953245545588919878792481311540679196371333379601070389531433564660023485338679241092247233148977724494629014124728736309333399248867526852854746580291613633472845534561614595999778956866968153474879510898684872011250011889755084820429904673514874788422094308840153293585389355118602154112698889488155493451097937150539219828314486918891822033484304221721558377039543579576184130183030821538143746214721336059996735584496409524382003655037643728259808728248860591817156731366787298399309975570199047184907734954419001895311500828991218747727278792028430902829555814957166616959636750896452183663125906911679804555991287098026613612571854522531939888895700939021429800448177583678476162080870045014626429766223679013363459043244681745722849229147723082542191748579302859002324419008688763999969761111141741779746646495077041253905480548602445134059464952015258917745300527741754081376958121559555949170107587673286566666417931170186536849091872327873297784711533408495260035718484746389275257905805638729453547634994109566453236060677087009180823323497459290419178757768534808826270705313715144027851696344067168557104683602248101224917147144088223729401715912070516430346002600609330327738674056909673258983905534594051749393170772308063296357793496886134001113402178328363501995479472747398752898392961305510590312761235495111914633829827403040065522077108808588720530991005948426317865608647603156943727749415047254949798051810077705465968837986785279594634113491675967774526375802457597953164684295231930749364264238094888994676324847596965762964680060438799465883939693666122029633114483516702621906573800229210570838252923446533387170495520748674040527306840191304831590135728331276021395097270815759811219703691502317691584252855047066889827544405890555333887927708608124666264621681483252564129168116493476024143533406531877966785967294877487268868241324084908849182092604212737973172722802009380187761528889121403224060373343784639390735859865145503778238921828910056487258012802628603501562465487345296165814117553401198310769282675967568828700357845444387756953470045584921631112153229003125406029835320538188934964835127799800291603716727167352178461385309393629490961278404399132808207515149909565680680388764538126064475262283564939739845902553232817974517037645201716260996907209275871124551779609936861193791366436471442929271029611969999709641194552380435563443113646753139753376683455968075204960921768936604412382298232243935295533993932923976689376693356229913599764912147207440758450198138601201177486099981084845449680112461373380044898093861213642400326742633083300277903521788167540733288248987672056602868563828344051611169645950619288582190051614243520349449356192045609829011261341737576729441382465735534308596858311322045716368241815204944830843682592476604751443366510219087153864389015100466181905933887269719493381891250088686484805221086953764956280222556384445534296079919832369109078882377362707269133400650623928449400894894711491021053610269217462848396649141994436086357762374313447465010857599570267485381291766869045439190232263891413586495294305815101493771849596324555945329325789055644268726865770161634530010178152631769937147495188459646152007034511465557562413175048331625496740744897449001050567461487006902492486761386865239769032215156599838982066547629952984312682037489969394477764431833487601109298495931355123677433529431290229757396283217215283347153448996685735125973152311183860100570358801442117519999501383592752885434568409182636554941776981703293827378530917603800890681939010707407827697394743198291415679209448132973299241495014881640078400121389452037673798177277650682708437650918847359601325428708322512099517762877291722393180899217026354939030633610747493713423016101560639530958956958551346403192801634122486612237176718863006552500850389879402741419575924234094179525146957129504124510291867966542346141576477222782996712950934450430059687378989789356088009366365423545931581736517581297726924623414755793163855375355603455696226501012445074186746210627032489529817408325929976149430110355940817112749335074461582030903895480392434897170882315997555949928865674514928682825560085063456739302096404221040446483752731248589244495372054053583567805194058534811911012256895961950989835768446454467304427442829864492386225884659082773428378504580900993292818949110989400579665926725859630313824258754021511145090130884268285916427703931310500062776757512220927046125196031660355206492910663782553164580290600797776496947746376647676381306240765673620296627547738276930123336175420712016319238223439428616024273584130335472954206902117263460826671917728885246278637791489132463613893928808866331596069837951098511098161502201672612521304457775943724488977948291235609904688066811895138067759065713956323500910281626810293203675753401014286293351060612505842830240310054086903562507455418675365933459157318334786445935101442060569681274415987916256053998768742271644752025059280684768142399937623794048630382667302210348974770075983145118987386358688846786270682923922054764846638613584548287828082758097253836430348417841852884733798366577125706193377859966070742872512204728084893208314714079985822767625711045370684112649262727707296803945656447220309215306254884357923712761642401785627812717191514216248754791005719886526728659502631200764784404190737770169345833815949568780533531087523095112122301280500176254013285020999706640019421699339049451480750391355511312400589078585986484664453261440382185861347214274604546552502549867247516355407189285205960184619163978910401039039158475701557335440600262226496220027749044312621515134035161554401363858932480885216743333089559164227307465447370318397190501349322670048948016912774089207137136536809979489502077851236515674622291464418011055933683248579731537591710332747441571037268217835662896707093907903052777098499777906694438110775928269271507225868162105584130833723466887035243215308805495218685143794860408575496906472747284349866562900559775314481693473952864324790890453095637593277071728249502787978401824748737576050640725368787737489760653884227780655793865961203377661733365774239830662419950964888881878631927189418285132847577353768905810302708879003099171368747394111726082388632672307551900102289739600063652030427678919068070728024980425136291935127518951842656162178992539444266760934323169083129034047943394969541978323008286744312844266829087065155022894337754628371315424132484632835883025162302529501826910297265809464841076376884339263450147813360544488299909537907504798430824397676485890471586579756693729276406252196194578594217292885719274233127478021414659197490366518057698427037270535440188638752190348591051508061920687048296334613893121225396847381214190233523118251669650887235882124357629989807663879713624972585519185159871304181509368684246339158426051621280589612249249878402489286905172953927142514349253000723757705596794098034811997740061203460402852549127093671662801566355076281221130101688459543090422175570800878606807673702514902888971827022730491023941979996739108798470581501106536915907947632241040375739716151326886810036948803183419802588158994434114815764051557888220777598968380537202987779288075329158251158374707194421917941239102218618876447810275569589066558055113417979062681558906705488423505989097032772031425177190726348033559266623010275440599845812354110599968504650190303616845013143517870939030530496936408828871881842990805419929890737406801997750008531371445136520919010812944913666490893882787185949978761497171700834746270366981354051817811758951220605916070971248854238384194162550307252962625750148846723357136206895368191905700549107870948809461083551852880806741182237270518085697553629352856848436405262701871076158478408326387362199166141079579161625905104228227605661015229749978835174880380661112666747147898364582220221605133416168808114010315506365845628686125448030881150939215196809444242851728039450575666628377599627350983057146662250276944926955327427693783252079383652148042301019697580380625224087183823725989802343969430106794379382853427125647925372941770650066364614811911929150592848000992122174630202670383722396596452091620930154137906133104574737243424069616755616287025340110195899518201784199011332430366204607894593485084988324693146827021662181447580547594219118311804443333649869310830173170915431502720592613579525511746243869815564789605194209644269363056202431915731652522162170157774499180445729120034104062488377174643146187788241188489633609486033971251897322646620752832466265633773382939687977916184724890662328218711164256595142698115277264680270483798796934603579458344541991887187013126425219004231042297548116715329015591160519931594095622336170446019548981157651415165297545702276662661611649594563284276865749184228095295610162236452665463847845126442251185804116106886892765316674258074467337543332810469891695599666735268217007162030398197259622944563566297754300584386194604238979781361338218966245630046585242416267595651294286907043385741266688018948586703110294597674687552847646883246358778074743035275654425367986568013483668993031063264783075471071625705078728530928504297127885654356963887779621128926181626259912615203061917125666567382424633156439759627464035913412606422103706280764810895272167194230754940115268674224499797841090640385160266240415620404953042545352534223447526852146163937872785358597600926632850545192867248770692312156032348145671425690458216521518540741454565953805385309877412582254244785334767645238989561070854563235519413497775242162515267456325972942107125397171380528928445856445174762773390727650104516750293029183795630752682234864411591558607195511108534515277667231178205569045901146304387503032691065345022870127806730040031895554284024135037660468191884880675496552018294088960185838270478620727307559765159223608007225406409051229949679593088086348144170175771033968181518935840278090507444636517183735813280408291184160613899149149869830538990015069171898166928725689200581742800933604854914697083176269653760812601461056047975503046041722872063964852802755872357467125548407119604177230637691699128308043537571584873058712792924314202973846328344415367249630609829576360065584715661454596299630804071822888993011478986363973830133487693657002369756686562520999434055075057031558432347930165596127625174970920003606538885641078689471707183764569477084133912229223426069721428233413536469356255497204330000053757558348327882041846709253816352410370671975786857022741226822383405167463779287771829038805800859208488758008102610327277652202119407872396185195044577678130945075860831887699087796042345754208463966563852048969670950131910029196142818414957130550496375328349853706862956027418275621854593409673891490392873585666038091788989716425627462136766256565864398987302472560079587193197254533082093021957777995886862799459118525095558107881077802679475465091375410851785394640021087641882261827921211402336662331487569773657242854860381687820391463198863125655306382254920130762646047939679060077783739871996299107375716751804355932948230813266685629889327214446661873711679139185879194785527296731023234289805423574844564923400844218509221643202709168091100017741515936520881380690470549471606059903310275583697361331154140489818901043831719186534810472096114637361566434041027527587238181956126021908632230882679869873130600082534142556357696881227053966489174619818291257107462647428250713179170027118099813538507765276711144139466394524989689950539898294357535695629102894316611303681465712282870457132254190632466182507754978811030930359498768715794528666730004309239529127119131496490511972966006198413539200732452416856339354758973922722567696712254524735826022050857407045401139597107725637005456268242020838342659050814610644803470914304037228313215423907524611847734048064822046919798820537513118743530743288866632963896716522532690063198674393904519554899906487693355412661563445419749612403915187255841808648216895405542216897644374332361073049882480145967860935942102693090540156066536901488312768448444345086029739654810310631055713972898554888877055988809695606320416356610817648964702273956504191692037237496135982790390427289361965584712264658090505961785154382912770155253334257647785279838414391643754252053517864020885256968588508297180918438878360295639652128265396879879100634404186520036492194467871923513327048389896140985418153636372840442243861223426693684947198092720822477503265126448148891678715434201471038950505033479921871510653349012479632901917424179405438694595480797396356349198596871131435242370743577161622596052307182759695544755840532645115175489274104652907923420141140414658628829453548511618090064330916835279234721066447122203566229614585157370257831304397570651535324671156715282475570631706261268622922876864799565196432492450048460007363242520155227170180696126133659391078431848419624008540619205833177430210497593202374122366797948896313246223974879680380678381138019301502933347522019186481712460837851753261799328689705465564870889562089567848616780555304832115398590907244040697115933157343465105827991433743493605035166868157497026739940484983056536262634322541740327515967777389996884738419032613199705494557776893358124039199397240852783880094964396093626702625762601343496341548330479556623299830402698758274533022631841308245724335591920416571203126532826505821717945193623275266623861244663435054330331896432575575125235111838745463121241865980928246312104017905574560155964630623885086927060801039319583169589505800363328599861462870631528965203065718152850277828157677585655089733364112433498854152472771133870822583654899700733344399852198734105239806047995454204256225218748202944325063286722146615230211060532600434493704336721117148607667528260444148816212344125090064834275614733901369067263973893974474858015746152861054675332045329723211523244465407990454371676316387190300123448342107406078794562663078361838883088852711303909571673644250081259461237055011461288384660554959850769918149367677958113710992659547696175014861407913352646133535771965913340845103186941354109599861101698646245424147533850972483341957700264374241719080040755731943883189238034462421450009396049490990834630607475401952667371530944513509408855673586217772455034940160877551806728281152634085477737907838719161096614575826650537498142357705681006649669270157876646462533557082880846762475550485262914000850948135928373010044138308400427045752262122301220398963809702847209037121288741564457090280496184633477341655600168522332737091728170190241098682830563374001360082574727476324151073169654347418824757704305706927557611656635301370671805733088746162080864752245265886741391365197132313946582545066286519374062057775304191041412903022823898680838151031023586771097041879385401834701395234644841601631320900538148753432115720666455023187133147982746943991940808067248566783103440324494125792047608131309702511684251815979249931474996530173231441059495121604115167719605887851980487560458058946767814249303836711530185893359378860799627403517218624752620564768764705424018036484598537422631367285781378519244555165573831413496503906525579697695338929363125559754005580784760096094456604500138746059657086443802997868189193704516157062196344374991134685522422462425295070974036938496249347133385464344951721779369096899950617775299844861129990269582457022449904684517620578871745223672805101479115314531828738992748746039795792937593647344292093071332922554476733772964698612847798735769327065389906724061048252560880023096069556844369680657356305279045435102780214779372744065862305816581906318730447878729729677467979417176253676259831673710807386725114842617785039987791771626622704413104454558379970249394523709924078597436784434803094228539629123062354310735538323087011506244904376440966317115924804024575272866322075280549528920174614200121336432849402687320229686199539563958424214811299246658732858469215022833432280936086744343670884649935006516920501648277726854881635690226427119363817551326869057496308591971700467913027904821978072554037420531766633792456415111587419412021222465799130110843808335724611726807087016492430643664159195327340907869850714879204577680660147497323586202837455377088436711537188415175885941095959979563193850459458402592072844714607312384642187218040200983532956038687116227123312428215295902894587618082296696848329520149085065063865193470910409516139512841206622923008656635325716112439434188389665249123939552072230899669126923579512671960339638972537752780180380701659215576514671347639178234845034230544079347915855242257515584274954927156840566211238206791533122396614631057311486376404859067010119810183178651051154232058547262723709857332428044360679936785903627819112615635891051282199592480354482749959785629832730020846139626483641050429397522974942631838742270245763265601012257342586161802235714880139390132937314627455584642527567924850233184544114227707659364980762886294696840625181101749906868192789287802065457448212158988226785386698462136297497715812679199637648511666352750341897044676724736675372215738214997137372414014905441444580599126938569218080809618543394421842485553073609063448914595623052821743620876714943152867585089638775187245974836288039475165021544137335352934964226354064919805208882828627989729354545111050083443971723974930063577373896612029670726347339734159371137724956301006448529974323212293709806522133589126331588574088755703300667485312082741433931128306352425205386795036716043277804991786148403146538238274448208663334781255984741204937231959240726288499441832903832906140888494228642457525721610764554191686593129411648247120732314406989732463805570924883423831803074308424427558029929540163433171889502985793742730800967697368507661117734947944136817124790250517884714347651649684966890635917326110235960308499315034579201328356634487961547506138876605070244018825180611208895762070746772472235784156205817056890830952695357243296467861554483963436998873801003869347808153344229758505682968444651643998227078751133015619927509218041289277536081371716073109852947886646537792161237615593734343904551135297505751233836723686804543447504674824950588238650581227674605080181876334927189907895560375937357564267367326457674942108857973412566039276649106554863128533006774836322140975549032730949931066333270649768853717936804790621544360683819999773719915123475384928391119111758947017539273830957400687414348091157038260682039902497904936957445527571498914431161171944131307491200068125141818983961062667762625890098476754506430696557888848693286976698303575480204590658396009862396963635734487029826002257419047809539060536802808213742375411735965403925555896079481728991654629052897060842657021673293795795125990930833430767227047226790940758578584082912851063478810173286978903013072168246346496751667676571598334710955358744430173585273016624115093817163223662063228357636859479184236377083875855894654030238070822884267915259129724096198642947023102149064249902069430666055563936341368324526669253281187608415800252021672819977075634075464721868482804153731367461324225969609994349328235146941027559934675759375584498290604838528089284753488925423614923715528528745891186298978941065455446269925909672448876933900053684631579300379175726795669174569865450045996510640918005606567366944079921253481711275975766978746300681774156838996006376136127826783141591021849342511881078255156650436557245930129070652639428586986256012640210152861103559294453979260054207883501068845826234398116038294061199193085575468920543531009677530664799861924819835452115980280435150707847108902724778961107666136832509882419857154707544297838241931900114476702270134628437497877011493976946289711102556893528186311461979620932688260460441180924506373975960859341720657743319058665481793207948659347225026133459575132712232161952342561426782237489851585131826560274981113819878196810105252953458834924735116224235122710582410154576640967806572219222907475065964376415093518695094383283226853330315449036672538334923936277233614517693163351214920518907106876156535442580206587408866005673676866030598438860548302268978128375099959878395059214735108963763335310174030096345280517845825913454119496772856335800729373927052157964540963228003191104105668902694107437881968371631939612828901655699004302717494415334903647187746665942613588822668033652073511320993061319467628540293997600972304406109577077321172470878296456728954991605001510435251866777277472143804497567593166943250812687046768176108184109045764491847814142663350291476141604820900129760239944436638272961646047549962743256672330066133680179995111709549558000377792221632752685782058570911204413186367342120078686220251747181101690427530035486120376165061789341431881471796835993719934461935940921455229237547873473943439481644092518991287868721183380283936600571850084194207195976679963798618239457667174645008977898215430824286858021926882770121004548437717856606784869058227537162336616255798382201789547244075445767220706400578071566301340143555318286493191030449264175412306099283497686430646533275029446735592087274923322468577640867311372725105882215654345453844905934763190333872269270482328588561453796885908656988984417531935785156931617746672073989134820876171886935639842627787032667993574580213259893026463471229972574734240424236169641159785085489365717982045674612035697753063996368708787732421670492115142560410541772843329222015113330162719694513275868387587376520248053918156865371137493238388904454642327736954733692901756724127502482982070890834782495988219242659158952146293738117901567176436973180859353351678097341590605655005996845338302510457202498938309585287510732042658742480335722732747399888177222352708294157480151313043520584180768181476410082908686557366763255940774455947090904960146766316685877873106099516052599521931187594757335138804492478675276036785917929674132627919443102915699228992050437514122087399078939876886134460667325272912468512000471234588822096570451333668955810657212320854205736376823984085833751565218496214710419344383558818354235657395467913988033263283449224614275181085252218748093556227309393135250345140382769474893366917905840731590480808542723688212517333164386301672837852533558063297324100289132696696381953235359643310001556677046260153105993521564493064622695361359151039694502680377792837655319729247499068911174770073869211526526513037456053601750119705391262491995092550999148760204838817905674463290059170394969661369111449401260343311193799752454328596614690416678909901554527765047386226751982671752337834260348648141733153478010623908974480213721172938066009054889678014263966583660259302779499564074476896144276537258184541323694409365136668252442745630763057108557797193242579572674529149250080157408790274198706603057924244449281992099992534751904969499077702514101345850993856518686970083788631261040398532303782395755559084393553751573725938210101530773168018489788346655264456297222397921416517303954544198021286877706010437400853790286639682396027085642058055459614689158716366280900471443238068166374432738182693086109369972538166432265141936684095868267743195000026115463322271601768191215216243632689584979341085277379154544049720822782106134621871639723914225660479209937848060628798941345776534684837249360758269951505775071814475191708276403353773828890242041243876394109197629100531842585968699798789976628315530333264858089352712828158010682890231252429355209214387747483628023064548663061807824843791567033192217060973951429962681668004029767813149791090854373673899148052004998336493618192452975227140628238513644759686833204302025978297283915523145187486403445629795218941042428351733434982198610073175904049693745191972441298759602682288403484148844924611675120472183441472225781704759004598465278202573147944292690531502350146279777311198607522641283531791305036905031951125598656574435711777269668298252885803354383815907718649562086766327537567016834123994196566380260437509735186081371539450327422526483047838755612174384002350709351710749245051043012633279844838676803628936204963595472708524202266906810144482169713801925004934073022841984800494659067412641797776769504717576575488622849031898355660215600291120759081104721698182102258883138366275255908804232558098507398044177456795630865663534500925802062335290903928993444431309946790088755362899110924516962714189234076309635785191813770038077146085485011288225154644542405374919247917940520997619667645438436874821291611389805228928751939552344566649491860882019407583819394654141477907619245181317124389319663355180700896186428543440219993527737915146866840205529017758923411644855059448427285053094306578111701747542549641650430634926726414869341242467848293620185012477688169120120853175459133833203526646446291533797816841058206915936680803908085463898626094070331922596156061421060517069776036908731156508960167108652240716199328449735986915279448993846263578068953837175916230471401386245227422489796733457785195638078202318598374904493333640593268624774764413818242701021992925108617596375138243191172323006449787812937970807935318884648962691208306201757653963145634738882851260483640561838341153060200193149942591952213490017500437606841996574681023355539961411487550078387597689457112955742262646073251270295986201894942137565604348991474042505848920204683090627357390090439806819580191409501278869255692294867639997272578455959253096112529174696730553742090690331311545042419871526960098237576090825720964205594400843073915253998623202169361029532174463460054925261004309934356425573489058415498449374093790740502575545490982433364196541885528071944784926076531614208415317524306334157306443751612981514606593332551874146984519014216394264235614412433932248846081118480898417055212985849331627930031471456619731826863905690525791456845861081530249221265639994735440640764888911051097110221976434910429511741687301446714014161698734692739471351961435208449203694474192962450206737756388716828316586256908171443800512137780890354117935429588575419921553582088551411405538212766356210506605065908798883992557791706191810249489409217579066890019284813722713348795925833596696028278539205341831407902265576443695464935356503716278935815118748762573672557162655038608116520549959468939120271867023580884703232629210214342665379602548080319581092422587735016340796792212725732930249646063520664384998973970934109873711973809113331433298612165340408029259989065848633816960658227129144454150381039274254057883474375904931825397302125595770931984825214326914224764482637847138404285986397309088850341969660555632804477035375305008611646883548152132332280565183277689834110765536942782879759793206953445012236222667106135695308492572130193656536267660631876298340114716853933333031241266587146308355390654495995885289879885461807130275448713448950025689946111051974299678812246108097065648842186555901016866081664683347772746104256823092190309416682089936389677359286316871162763762707845615045975718328727045909338365680701337552955711040445465252451932031289768238956191566628541983248503190484604407752023942696747574860082944352279860079850224253064629127204184341053771625309973714441005369895064942741951569184889843991206948643307025872052490892138499891186372412800383608277980612786909185398619156860174387451706949629484664527999246534664649184155477617357740560172317052637068484419453498545316122964464971749535330114730189495194206404952402404130691028446081602266918368253166697722512187273243328500937594479702538999345999816177140842845735379290667450486218357247874079637522047045119833068993953726564473492031786155893242483127865586283524505392231055316925829514501158134373187277210471248972324555274603825774464723975070214664963534562182932003176624435549863316047310857042497943468582124083179272286317243115763370401561483373339484333401289438616050344345164923798920008757247862309984899390619342015542341017344255038848185194994370120377192378930938741046362300699807343148390282018858625370873098481866582866521141005720776616050211666830382017850516351253258969052953975987779579682745516556504970842722169196782171497633767519612924891720290143966778120901390629496857974788136280165889488801202533681933262033534958588885862505124070942403969811024376916594977114599948542532599554326765646558873309862229808751495839746615256040053776675371785946419374503097209982563492948234813339037574658748595979489741852532180088016728306375580321161505234207540617433656924816930323204398549645388927653603470579114865370560348752143179997439329924225609323957471173210307414430891800381162320207242816751770486121946716055574000629389113198974597635263958609125644869944379433737899732941040350719631206266793902145667825274960085896290345857035035739133005511256603002614805955254781843624011246467211581454966339161340231263530889103400583644663001328312313299037090825498270848027328302973646621291166619354889938713248596429416545793579848544428443279761525596850070209658634653166044216745210855089099817268704229427426401852798404100031146100563476576186002073634900958123993913146107278946903932179774837527537122802288076460367233441410699197386122934280796133888509980518747853933133029876201376001283847088506406432784966560167869592157059813860806891353260031242125401420931776144161682478546227048218926628868915566853041315609868451080596949535154284039352931422386211181551482477287821508483804275161957385455646472393064991720080704844729252089666833156371305291195345062833967568381087825218116102852518779923549841236526408284338890186425178885307242101399075882555378648815148339906825885353449835944205679950688072350969516150107538176503204869967486149119865843032579342356417057973334072525646607379800389204014157404435136703228746470332682073870709495105557267970451296341658188157434423558912698472260247262051373192426879937865237080839594512532917376435125391226089318599358610681870419840466529155680199018226704447426768150946014199741181780219082046437798520030609012605475016912809990566276305924960113801160429449200574742498260035300210408075214287742101829040603527374487092184681944646576078988233755112048791186473652583130918802464443131920467654460467215732482267619543722711149867642918831602265131194203836822970910753366329889007236462685943329488645891511882670375681369441396932163134442706700148039807350679311962820431022409445301980361091744828538462865347695853452045032165808143994882289327494735742220067756259901885991346941964968345683536480603566090927580203120351365588248774731771879107976119038410886102276800932898731705641655557571813868585837930178504305647113828619401310894196208672681940069431351053251212225677896581574398166251479739829783010831884619160085685099561676749388626832966572760716109600656092823133081798413269890244417579004500607567324739392094774113011382419085595225782788730142858531785273580109090457499963250288117278044100484573816934514090284452350556179965812645345363650616181211047477221264289365154398410175728016506389356198371902358320653636084649081062653484186941369435881567128363560071203946123226687647987917807738431193022625228477338391612235479113276490129440022529447683040037463513561772280912707433403349386108649965542518681735654493479253363840682435024730348514205440873685401681783867463637745560963701067494257273250922043783161916922863704528516844858377373913509687835636195369825793253998650711017136038916176458276548790783300728053842833021436095632743837624880044652001846700110063579159541362774443087624733223415026738870950672629361440402052498887787423004696716153617572852758065125223857986312814823048110029929051957473269256812583890855753543861849766213622345165317891136044647037070082768346496698478862407925715469120157830795264431880485017205061489559404491978490044343235649333627341735775782038536218370217719989673711399557108140223091241277690856084266826714654118282021903970351084798264437454113891127114312412193923310683187985147053122832581066153793094324500763544007824803070395132513678595779004421380364744979653601852003822960732084071808180883469602664903796692443711773530240957844734109087941516065054958432450782531349339820860504156723518004428714970306710631426060216546272931820100636435586849632090081112101474548242158436398996051509626695983763558267000447539689002029521415256783826378658737926530239323209305832459437218052096639219594288425938436390061925365749556862260090590561836031055997484360613866149548904554587798434766810779804968697529560318037595150952761983437979515924815192894489046873188469446714158002189288494206551646881288702154065525168526978532887663357117391716725153870134372814393852103756826515729671377693693378363533618775374090334804220390611230228436308894481663597671952755609733965548699520267510925757587743052435978340084636289156744225771254808863467293440720074497408605693951189921702589999623806013096362407477917661165439389376116380670215317149890250890132199417951122131624912039978792390105913762913465774145703632831608427145537803091587881346781818168708711002633351878393665884376560891202123212452367440024165927877219141769692947082599951195906882593275193897615971529844114982213461615744341268870259410830124623685966266783265955247186405545517518305316201484309266301855711918190395850424192047931464433208503745025431619788588163561934239375441552598171533786205650890587471679528581775560253947529163035058736152680965178499129454740229119418308102635049122918819174058487140498923440307747321841674080819726233347797826140922743649710866525620567223846781843330989523506800407058821847821561224697427226603174456373709925530077065825639725698014795450919164961544444623955696229172109924984160855919728456284122340085327096700606459135299324198885648162599609290553430303886793980055205717456614714054623152592642099290463839471958824854144932516001691341646129374285030431524271231286219892572890808033810214908983799556034001102342212388778477713739835923374222300102244444126909960109025108286378903005342367217850624147259302177679001588712760671047404606783092043098117959060812832101401650755046221191648979695241063098585355533031118117727284447026167203229496622588587439390443228049475954399161239627748328605883309683603553663224667165078235852758594243147580278036921820661640046242242454355405822805738424643523431293655515008243246871309908619799896082606009417229797859116548673025654402031434902179222651055429934547631631540960983335427575238561272951512649376438672574148645373513756459563176176745624054785886759956324262246210960574380519606927732882842398555870429869859486401348127315175505369300427979484308470602837570799679675065352739251735401912781952802086991901156007462695436388130535486983029086766848909448537811701070003646286046156911737755153575000083866599467787054748739562237909748920051068525113105050984352343856146733797717077448263066369094401396189448570568126907711405159759156728402199965122783504523813890732118861121853139858442083320997865668822032950089801462758526747684615333306252006844392340382886399537930679104410420597977298685233681458720867324130844633062227011009049270301470376438292450391347549227043791907797089239334864258567044474635715906149888325029066324315973112810065831062992091676606197338954563622970467412044337297722127347700714742828316190514507814520750039878348194122902203172707185852076032828341191506023020319196724561000888337738376361095052660084643481027465529738620753630278850539300024041082699863615973628691673153712316789227918102375588955896197962102185270348462640057667803703755189443389822059951780453830460822233620562851978971857214997864129756129817848102521231532028976874373884435098900847843413675951190867095231397114004126014087703145676765346681615937781375929786272563172740101642793497787811239032134670367781239573676730567544327072477616347811349639769451797647114523116830434114555534572427752337093084293705046970440468651866828617640346091558701780723257335685489284923231141223906419988761439155410492695013754142756172877016736809053738024479557342783885928894909002604248041849691164321148517896088865432091193486269366928134477637609708812162633197827268760899024065074241998014908515691089366375455161047296706343524265408179663208324724758780415465065604973491655577946586684448843560385952850495694289440996457289321110062254601433833461445703877131977700234403533215029653391971281724458721774085145649116372083549421476339598287828443819334350726269233519287282201097140342908051453942673428873145435827579627683323749335522909641214157112844062363267938498915678235615004827541577324864714379179156679772895240987454408247162475505428338147547998359981112695366634745840521893952220902774882264148198262170904895453499094213798412443435004687634382275993465379911114634447443595440871318662421114473069905736325323809477468492994416035502226747960210325861213745593964868906723371044475594563941829362237254639651669743985904409973834989795476771147777417680329722785925017633645366534012347069066646993964530987238798900169570694910335542591624699863722252297008762964777174395149243308547135478989224254819584407722928127954015301106895259224148070545121661923479530886815289836047806570922290044445110822955500564752698539875965931096091609363904932434113109044252734590579117648885279691406461987882464056740783067597507416418537180817195368179347809854461418633114574002946091109759614920325176242526576130269762290549580393221398918326373170365830303319836248207463762056667929629541105878321711570504460733813214152711659862775861489692993256300463186220259918002466642402464315478321253157469898210722487040242550862057263426450003908094972624019631521958796230384656124161259119996489253480906045107236211109370082491950866609402406773445445218102849636889396164262776589969686324758006330928161163566996827015596928409832039472886835932237879243436678709988980283961931775976972499552860093465790730500800991499589436701906150859212440011805526568168731637002261418853485478125926317824344764619093197795641849017351924179056917172822954050668417551633417224253918569181656358852378634349967876847775487944786387053987010774794649898973619821791250528878344503724808701978845217857230467275331968402976515501638341156777814136818869080899598430751243118655843705367628723257461503313131729368557606156049209182076325945394608930437204523331057528697809385270713702808455175975595615179476327372731421594795629185538737364713736078485817292622001543679632734190363734281475934588870879810810618452076099518609191768136394269508738213323551005611290189376800735338811631418291185009473285212144916819468152587813932060296785450211703255185297657539335428539112040474080615718081035440247482038709009924159111991355030573250463655547703803383111757916517004354280685882594073273080847863655946345799530182467640766441780500586673526728725485711875690255926112781596933675535970324452638445253298113455869606056407747224630623633311440285250026136673503902584824033093916549145303534545678731881737155461411695308512764145500850014651328728149695942677404661652827409441485153672544574447006171243372362282196173827786995889059233603738459999760701190318375731572389995254954272497190881111968147417174392452641997976643815333516220664829777100005002638776686730379875326681695792449675251313847216885884200127557390606932201979922267228144028908464057361113150326414444732974633969377094838960648372155013012765797945037295888504244695553258827092046245355791200307282337802988716508673388700957495522420079550754706755017592261953205405593606652432824194968864143320367151780798859830242053528509557366853829787492568962723814476959575825653409315327915688964769815877182374434509575799799491648401981142464444426507387443568835708201578585916621210832186402556803565691872231200263111089768944564934071333490810133102670364656889989765190249686905488040917146343019321723239718600156349538472441810958604478890272606032844829812500243171854883602113785680546342443468963884817759504339758319966130161738453213553849093027019367244335389231366074959749891228001135672169468176112481551485936149565982606678332947573469955668661104676034431890185021648120347770586347380956419390026267539025725627119361146447641635378058679870805438674646608774569537029271891617929045913527650047861578982993166512185865050833243935333972338054143744552520603526090360185060113724133016870059182915514849956996269761898001710534704316597759272682466698270101450749743523419684377720622351074134711733388818543875239761491867686086349357079662910336452346542592243621008116405560887865622706315756540186232459531207061099340363694726563694396582725060922157971365924332228567958071892480734467582194994783290632077768724582368731447330512724244402962589022689909514948437554995508885156688690680946961973949113179644673656206248494338811454937336660558735910443144086651782725442996595794495679615029903637817963795338200732210110369983741324016324683949416092126550579369561051213753760283779246043381602826390940386729142472094127141666911119250378282388004915889379496354333180795102369499211863983412720478934681390317537219893035620953258448556708985414276916781729050322006294581821665800481655159735007044761297704028314123730192922184376576205445268546978511135295333286368298650595747947325268441968531214848973245352567515626437793274979831965594818726274646422791910880704220499548100652770018650959188155002102175453398181542486321896993871341783233023434397174798376246133038925658562876346592023563802719291142827606655017512887992326948398233697352262323436224217705641231583750888145518546368790786022421294253706932036741867158169225828481769723154582753177223622441052203595247058622870323868356935071555445885492099630684030735907317601091392056992856513732700154886467876646809120048459736243258069964913211533520873272471850640155380481953352141667741065918190655061535621738160602479298246897507603679721822149852973770844953798449529828613331565169369835564984473464967887227225573006356765026687835706312844247384778573674302569724383226327835016289608049608619768407500751976081253776147742622476267242954880214777680576372790289588331039480078216613240398548149977508718361726752259023456205673483684397778223859844782400200304037849159799280795113906814775726744864233643043013142736938406339900596072817813852632317204228064420810970009489830886859331363650133222788069950375227956650826816182829637735560296648233347788114367132252577598974549926980924621331065649468083970057062560766142111309455935540634771284893559048704464300311899870981780083457062960822427585454709976291762166543532863146093675276112904947502933804429327277111809705269650001246448682082379552846339090019831588417427471599555182551903117382261740564523113495120830777014202503591736223601774910397827635490069435341705747999443584887859911671806145733114822743943304639548090972480297084952543350491414041976758731591124170189997979533171487517618812671821166183814318952991764790880733065151376636387725808812197784262958193603780814079935932640679517626829947087694685109808595107065459294703379584448883542836446990523241741171697914561007889847814447591222654563620024879383317368949713075460635190220455512423646597572727942336519248320215778872719307903520482950719856340092518604542909324610634684635629483243870462492048316203381108678673638340608140737117520393635674946954501164020922257668259645888172770845524652228886392500723121093814341878366059423402792335774252445034052036210135376750548575771115723576743387328057446634559323709528942650911801458141766914055309063445277606855320933829514248544646022197499004055080103186042698514614151817996865415493412125643763581822175202178178822126257109014276950427223792659168176826100433859758863950208285703343279193869592107640931286542559068390327977147103815214701182685977442440993206553921371827705693631965404151134666081776280803569156352900774782007672462135572211237155058136553278608535628265236790508547231904136459123585028211317558553128809583173445649950118402778601910368084683192735071377239455939779609121840642846679106281191756345955626167537482921276429954732961120088346839196919629827680086982461279875860899291622388377677299511690312467775743993964636473946913769163922403856977295159857901247929658324983535654077927752857421333224425455236762555349042991375048314579359095667250896563304750668726251795494908104512317275938917635595597246455519369521395934871202346348123004259209763672868514977713369771386877456275875518940840700522135490877303791089587220092885494973196276930897569388505056298472900528128973698469823849347145105853618438698224553884451812659478839249360020601321195021795875263082137111956717893997189518177090322405350729651495241470994991468830239964798888491620233168363935815829240850738862711892703890498869947320917235836323085440885949359919010600312367452263913338399226877016640166268051208178032678019985303827741714230555718080421657263845485755492066252137133684924379538511601542520951528514195156729467197111606073759515301064898424832067001065351601127895209399044477180999220993227016703407274129596725167053445758903569803909004941936708798151904355421362209296757367826388471591374273119965161793693724073939933603806370921487989890926288435940202438870060641216280972286562840417594768706738018740117365558659773760412173648245628836915779008130050039832161593618419843327357727765046832923110121453670491030543590233733656314445106915959828680656476473841056723301919539763620290966126137793780047947035819127512458372152323282349846278623970686141903313280765936256420879845842042771448871001866379435116767453421617914467580755128903202260739651614035991489018024577751514452006043709128555871672939065469346093743903294804323632717798287807998845649697911885314059842932847349710736655475530179764575966997383256822767200352163819532992806725423735897285550931027996108490572768576312186535852327580503216439389697242505986517828001541928011772082923788347553825109442204913189904671935496815091527639579422140271739169428995101241744780402973303125289502723868820397828327264267175788188414203150151216713946652790298075686565228669432488599055182279623393006317235465814305702770457230824881763299226284079592534819590149697690015727709831623005033452504185012732347479909746797430501688814334871897555862821909661785548997704933277193626599925543203050806919402548813760620725707319269793755699957692756969259598706902591205026054778305197276256678299462685258529311377697514769279450193126016430317058726486265839364347728928328899601313614340074519069523564049736794108573709251901638540285929601816237389306065368214620308982454427712170466460056048599609603745199954437924269191071074502672103225446200165264375609865304901931219885823099438628584335000534955259823666072194245767147434075999928979218280470568319529621630404636474008818159950694427296885855300679080493071272639199823807156709456426590919130292582322913209186104481308727453135871534650750770449070865604667371040937174103837350391493129973444243452241121631658567187495786499594916137196791999304766637538852605114906347968625258526787203568967350539971759532577728208697546821769165618222192175327698961784438004596670007359552868192833679351639315489920924944016731768791812650327126894243789750318030180827416629224458156965658184923924019732058954958630382926190219909014299179365969510757974852320203801905586177237454336950770180052968894728104734762296619768088389086362568530665593842548929852821797303293672480880248815933386307761852758251372308093226752657304712613573305794746798217838226733307043699329603947345340196693861705159075761607892520684992969378374803148733178715715316009565046287169113421625586000772772683385050957295973864883501246574656978882341757099262345477903614078902632430757558347297929090095205798279363112562850912473139998591707331363832309938562276446901421052499969546770985614817464719857081986129767789003745428533422585625006747220123501515423065719316765501896955755286656223927313376144904655101571931932678236048596533064977868396221247218786343036683445751436265081155556837620743709459124718117814884233928245385857514705581677449285050164469228061532106269106503051040861438368077350914356270085839670064972341934553793506654640199508214503441987627688558823721458719815722017300363649682917492034574195577953716504144287048599095689197285047145408104718741888987848346828574786835869566410487766465378505522534688914792958341919067400334700103810328278598486335702304036007771810919111885517317662117323260965354129092798915287726549522725218862492085681043932448892899845481232926263025958908747728364772924599835529933725057849759235643806849845949333861640060892447079904339322073561578280550600744851205035230799800730165887388270236400424873890090298124212051683680407794436122261484653794965387599661666235278423548307165803128964274379323615421384671900671502623222671597768883886152132591661249875053191759665597496055098649341259227158272846985609221082520473007285616907023319741224172985055803287009308850389388286414654988014882406728941118872791327589001469534874417970094234698064072368104492570246489487930760311269155733276370365710391225615123234856020412754989177136905149988661468505268862882475749649003767640888279048323086844101480391489050452824301619654360816848988816681237127413759486666391735490445716774502366647640445975159694068028077949839621961885491918898038933253667381611722166661712745579294917474206011685424834853188468446803535881567544360884990201884125894249468690761801715786481895971865773981890480254359488650902080852043899980594138580994599501357045334319319829955452412397261084006898032936947891101446359624631848177149614922706514665793454025768196335210270297194457921596079498689605334350111329519954611230043208798767048985261156865141418400969042843091577030208524377326574057700070770590335840185429837131446701966705059525924224856021435897769835059019379090095627421797366677627108115138034560780560361883746769032240110561159625971169434325122268924953529770517524982448648152333336723495657321106211823220511379234160728142898925156304396935933403034830633887923500633766099126857459373776512013803053080691417319353606365580847874043627240815055489955870620953868246645498797981276324101304190197940652186422082834342938078171946127215100059507464947335036163741023958159606978845175622211159814063946955367491624094813293680606571232364401243509642952945224388221820982462943335913963585919903784768872561742002536252527043564201140729348099628861725617312901751711132952944281878837190560725042787076006023847555153434384588205162998832099959286616520454713251742692135880599232843160042735522303421620273423936040677306985356272113591843945385119369616628346056122613186182806052299424794027844776990767481571466733761156380581729949416169064032459215827296110839345874908696620641838419498920084108571872741145399271049153491914573318332591970853439915964163133946061856677432666438625263928708580388299730207520494238429195862531884284592225455084085738228697417942007836228896762637558005519918879941939224331718981557069417311456054828731871080896548612539918680542980166864216858109584898631017264330702261550897694973502791278176909831109868321716310600948877283215012994129166351345231852529705382135648528355624603381626649285308711694238368971385177576954859949184323975963972374539967082214442676233464578485117686034865727228922316824126213785791088025402443964995240352455792895494411423273163110114465005968158376491797940809267810333752478366904990026033522945712394147510253937824507947488031303744804875296550034338785814955378377112535443208301759873393540605843139023243250148185154183333312768782283706458084375488740196116029350664106017470848409260725534395066700103650279034983165286326484227852764290302194784626998339180158611205093167297967212648482997812416674993790284319591146721054842291292171614547276466382851414236251981358627714309968404644516550278959061580855367275976455204512171485919878864510966247194946535333960877922227041292169591648072711325971234231161864991126663828796455870688940248638627031964864271601567889292832974705483383755522319682694880847828758132282136587371902276213131777754285524211794228947814867182242038743751430383864664738268109381703342669796662200202639485766644758771255462941860622351242097573746491639534998893421438459599573912297395721037406186009394339248174005372368015520950806260746095660845697760242931729575940978876158427746578876998650993736407746749665794026159917298542750788580793905192304229421154100667226484088238719558679729309114360370415983845533276046187077230184027631334569057871323743886860960824764720407222018393022161881283199166556416540389185038046668774410938099926302012643273536091132030273187043276233437277036312789944126770825160650448414419416396438591334228954314434381404489323761899673509409910409481108301998285272669515359853800761075177386235044306502952364977722751290856060223424545072990976779734468697232821192178048122666703494114525356291857043506631311640282619245512797871515944649274865045278454496427343482848811827073628700327146129320010407339863905052043740122010633408989183413514120324309303353060291964953429922137429218289580486405079342657686658076832244493796851608196118474157968812316259739689015207551123957259466761798861733382752392951600744664978836775291097894789747413016922732587309605214055708622418004772471489991246006256542132404862896031049642717896585412200090910836103463617367859734145190151869326202304973032105034530520412093105275730403221570809362779374913074030150897426167732306562514098775595285698984071188732710080757805751612767427275270764959554669864702165733886868168632702332487813596270129230560553891215519121439195302053511890638712559446760943784773062409529566715224498656505651577648150190159220213389614530323804661546879585582143598270640250337666603046791827276833420877248673084015040392902382033030005277902425521399568906522237165346763234426755765567712154978872229592400153617553059132062386996722228768880574716573924619816488791684032909355237718865605059078594688575249137611523517478337699885456233172176035361830814827043418575519767510978619875613013054862307514207187622729153537936186179840434111624374944884821190904796203167679308474880765919389342288732161963281715024881839267250608638512587629664204096170700903760222103299945190850260280438139582285132999647531683656382594644765048091102312231664150385659206728966532644348106289394131959786773783421885031991248401458153544884423539522118628557700440015088128210361747719394648519770164101304965489788610546626741474609795527060652363040860900773673137284461888593028212445146082977674078641215052005915110977781113032613047977485619231167598841736625370767775238034484009855739111511313968162251030323544886473517604153027135198104270560503159696287328403421909442345704142926915236083886481489105262983694341166374086242936814863977143000961457346571238415347129453693169427631653030824523208516878418200609320285391006983080258035544935935305814874152998255253629503314074617611857766223393344968866775754206553300658651313672954386314099521060749025239670874448356202380388245690973660227079549804679962746771723770500696065128734763018371191451574013146488763163243012843118239562867712623591467371418966395006542515462188641261038264671101400979945253266705435655071406415298314003797527740396513665640426020418213258992868262942257837403836896612699523659903727929847941513266490576636916442316520656871987625155763636501470730819830490995590975757775267412281098234633884131354807080100131927111002100694111890104687085345546791380128604895716382540184792031458614490797167418281636308595336936558992122321963559028048226743261568685550860189627236330653725362753329205965087572562851703291597737791092794803852687458140252267088526396805879143815953288965944834413002944528499835372678089743015549723184276737189111804834189539972152643256819650927680676890174450567813056382878055347429948940398317765658751555718414711298901000144739979811043648348295383420886663064628637019894314851263960386598791568871050469846566941233566648901085193944208149226915958814920761668184772055343801382475947193900459862014176408680622939276891525823271945666436729940762504637558719303948599187225418671395407032621375152997477650668719389105312066636251642478098166669976002823512393778796118818736272174080518347028027583149096887588911436169093562608457915010884134624590747606488782666527005692566700298206392145318365608519813947135889914965234920883788063729835639107329868370673186351880450772521954449881420094202559585519339312848441528881665265543892299590348599467258997698459373575537573682098418666638376192483811123649991750166384910154642838363124116313900134951212341575985596130080944632119102375577922699925981538401964344572647363436239735440539991194261168630495854371186271958338959377445468157291833123763329541711908042356536311340944986116381297952635881001134413924952081949386300028268814081928821249267788944685722742039263046947805245385102899036911434142503997458001289571541611422015386075583501836060375940262449308474178569470710568783677077992535547138352396789157769706556662753710299696787366325633566182280928697435776678281422705377705356246110668435273532778135437171336146846690663912991539406423224424688928483429554387273664316780933334413372262609222472617548912874697456782242101493821632164533069366332488620273468522182376567278439458560578975961104959561741556322641222558616844014017916766258288344505958860464904085631907159282769677027831727631286118531837239107416345925408848010715934013465037390251317510424105151786982968820008952714072442514719587881986067920631497717749636830312209239580219017105173552328360133297158451447421626773911487294306584267630072007192910887602054098928034597266151971318715528798805500741378471661775965073615978672581082063428812418687629760049711218197682079295822437250666657906054371384350569890680023190492953494453827469923649258326901593501010197628700474068489005800227926524051170509248896639589519408121426761907147524851434705680659273279081971663457427494608332946939006633676981740293632345867848579164146511984138166727513873606265554734921142404619374798747797946350694240587156048880832008037429083357668366667195089649382789260013459766303561764075669613026607030240187547863059427979224573715274508232977829633970475703460129545854824627305248760264004628833937664409342703883620987352689955106755636944520278832535253076049330502100921716559002167462120660333177749383668094992259662418384790678554621763906719823271575768247162070042060390631774692529577513811403791035237649131706685599818244116933323847573611241011222339953609823528444719525207908635929574886975210683122205589597072547705263464856110888028987777558490706962133588112090142957480719938631457387045205246918668892469857648733265825609864004022267077573036377849823693511046232226329070282651281979920528429409575901502223064658596037417683958537851297144900437108377019854965513658877855181716933522893577483321404895396551143739702417392290713427276314057641522599723966765413127371023529125434867928964125661510518325781464447740287734489701900641266564523920868950752487961092934848566241531318054980584950638499146085330382643760413235124624164444492395275487046022333272539725455364357140135688452249457235802392483079736129149145400426115586522577569283541095162002702986713366626806437930230949975964785629212381276470173905481827970253766335188841699398057665388621690739197748837932868964842325771218393561611297238374910260144638886483335812854175287657585813526239220522566741484613542383134694022256936425974059865400846808459523673055855870536333960309242313367456080615974128473969218460016530322939616972944627032249011299242005957977415987073476856407852851630396105911223766207589240210737759421199363166093208648611785582172625563441598552659328698812445763069554898021472099027261786094931323369830725137201592449913528318077341974711656965552851199604293477832477883340822649340337167889210906720263764663128391535500655017800158336278586528949560145784224596798718890991622299618653381632586968005773144909428311658769357230958108695085419557007128389082723628236447466491962369295451724428366405730531061657223466143479069721196469983860973880402149982933255080619019213469211722906441769487756768608043420885250052696698972184723345297650498643788399669697193515993250666641770968574402187858049200746710158657436974391438238192442007621268095201302251557539917199728218893676217933317716827894116455011672609851289242748321284678279535300902868538394289352596016646623720989132410190445519526221587514268178034525831041686033427477084334682664964804794784551051518210875952871803002400427635016200329021645765711333572737917700252909775883217912475806996283741714962992327383324454660866546115554088953716926990073219262968278530166155731281554358581277100763862007527252439293914875326131970331600794868810746861490358460675570421602006280276948747223002898607697027382928103948255479137137055280363075203252965237518400423106931886782460861169739864100131589211757681551105010803077100371919989273619825470361153090766622360945911139786131159160295077101225424257557214453054432077925955119414205074081715082570843601174912274407533939139388024644542615757517274111846105926285393766181939653368774376933970188353583429709799273416423808369458525951360813909861565886424956370070067352575564420235267774647086994958873569221896491050135299840504187502857569033135316357790068546007888660454581002113621678791081480839091837635300561486914126619524424000115422408841520016310447970663807336272476582239759167196751865188666631687937028972774117863353973550257230531826616301606868835851014429228596111329863200564655575638979101701799072436010597188268085217756623704787771867668476263963904610000237041760057661537621533266890869986588163357240632860523235407259215925324020346489887561512551184211586497099414285358302087608051250182940524666295839513975547235223267332200299366648808049589496250543139510382515756551328369855061583661262994356765941874785966416434402625228076410401044952908816243601087288409931228295893092676206392828989798000130230857745898809469071861371004016059290313046848122269580648733158693061443312625192405367206329853366942176854179997391394964064377861522340036725801903738794878426926559968343678716740232727978288487785688765043094764139080680925039207624595793404124755008106364103158210646643462389502977115921936529974403387659555823439096117741870325319698080547186571015054852963746682223732040095584272869079284794966246942769632125596277436455286974683972659943971753703589360917293319580397913983789859677711746280806329417282702995682168340517101802000018973040109056677819866435390677326906915614130505470831153236130501631207320490984318131501037476045969271281330031905100111731357827060714442152697318437206450043195637071827986058587776423619203593275204531794246184580177285863008953206434961359305232544175225732649977341453135375288495458692663246450015905204948575587265240894891518985847422992826087941082143876683098943469072860718866598653666297674523815468736602089250974053722002536743639177427430774144872475156405499919808425698374522003325022413530549713078996840412651822385077691448143423174711321197007373975180065834522004244474363451749278951827334821660959990503305193756685456802661053878616171425272869394767109276377752558104832234478266961125824666944326478364009036030343419608851888547619590462955486879063730223513199791606988561104973372744913145577552862370679048156035841574966334436530196043661040511742354352133425779412739568551944182554063130669008070453642358209659755281956304847540998745195307990227087578831407234167777014912917305172198955424011492265282702585671652858369292781744488825197965839930770360708325442133281902178960346854872503136380754971390398928941633089537363955539794701693992307830596312611205479998966037489443162403534682560444011094025454373673020167648817718369160758202615081926861182650407319083796265748838857371563333447738651482239262143621456643632387090916456218898909807021673735327052071650586213981653970296238528371575478399708550913837037509618862787514419642901027854217647932625668159349390405480252148911331468670166294108320954411810000197201989682857012185446113771971979864327395193366440139356542734032308973887209868431231340734934059031476747389358628118631522011462682871581007789404470545898433258537814804768507635972602831483062187005549165233708895745088007132319805152230863500211306340085438982715853605722495307466656084604624228679333543717144499704367740917399891735912897586267711407941663511325771011484482185769075197237596124568907508026076908428192653691259298282454413584890239857103778296853398476644521072549801757752976172299541578056362047601930881675499268915622112971242863290436223153794367951367256182738175082143867120350870861237931770647583453643515691240108491070708520164302792673070902425957462226065663329618889140422220135086915591739160081456355135951697862455974321197404875292263575507257347657607776501155720092158188415008706272216776253513447410584789177412859824974124209220285251353921274923620848672785853076788650882662732146696130650745219011829255599508493576775482574493321009176957117771361536623609081085026779283080406976827955045694351456952258886553354272112747509719159572118222960267088190532913419202056554893590065359086955472537143680437450520645938299516337207708623433703402539440554883529912483096862821842387273434533571524181106180617676533390403274572454033040047561716428963068939615097966841739403170019069951132110951239584662501467245231404814579538819281013665616992743628489565314303652398506493983829129467193615033319519620139323276437921670208472448023771448211285639079563619963853928295181103027260800402009887699049578558539919195734330565181028340130693338007464768915656244102418726678459701885730960560725656411180352147757161516986284677270097282516196171554169169338882976517698305868168148358050687435430920918469401782169831362767692424796514206609563958167545919675030463009104704427147696345716270661496061068563947529486190226481189410492570160136900041152036761117638669948934494058113869688089925053135718986943659639106002283140765276906391519128387381495832228337344426802883595211520406369124576124361006962473147141012464612094522737236130511833747228353592624225570504566771574425111837428895761378295667805809402988372071702408400029857519626149329724665107036711870734503199593114518858590289534273527687856131739772349454633850492358291562895880522420346452660670712344245494356580110731084314806869967872870740950884718212187923160787864492516694211936613571881011495924863618328074702345285067197537269713847240103439507450857591233317858969889223832284319467502209703472539778752754423035770441554291476989362622822107919817407803467747200453424888097650174878127430426910827670096887802157315999430083016594381670980543785395725893468360220370686225151971823563339519191797935819174354272799624573590617885690066378543359889671637795808084908322635953592751602940129829084857593866162634634936179585917709249488195348125495651287403736619649651537927080822985685110309784685119297865213704480996434836155011610625419889266536320532175513960231363622697173713142026362087482645376479529275295735256084748209070110805925601522023366555955240013858685644692808796777686067309554253549966078780204720701396807476658124033300334925416490346871209019224170483943891390848347107557675029969710079509903951484736046285903940835542296276180513639610318115806783295050864723533885449185564824435341042126338570287043649436375548429082437078938807145042391198827019380611007800989993238820806910062812926831192052048587499021687292853101129357872521976987470249557904672878214566729224113851437839849551780953385271219520083726812386303232800990747474203963231646692223026021078245535085944493280700455037531656974484425663976045716536080055942446576367770350075802484777596829058980549042045312514113537312079425769402422367475164515863397780473582589399512217287298121201310247594884875231736422435762859089660907694012898484544912152528790966486074050812408311234590907603618090820976221080663223851003021846203947614327811447688314483612391036152476274578154303556331890940625294594415363791162429450302190486423531896677693682648703972093382428169052047141931402194027853588827358697691548999228024945855465754149354634367651156899759757577342308057775935898686838882832607678925403690823221486727013143635995915666161784316652877622254016472006385151832057581081647983284901121926376739173660440629546008314586187321758208834854409265908895717109742737320308569687636655013661488114046453363984918054031061273231620032659036725013405857238136552040032866388910018290727939685393440487776281776541377722101615579778303745200451566330635202796389637632443234808042594390691810652414312490253381276266687019061012714022328395029729367482130025382092400029060409031991332311336482334677091014881910436929318412917242213657707586097248856061104523426169137362513298598014503582607601782922418053640052210863088710864708058354176657912001691093374808410387974191823175818864926251211812469682113690131329960644505692392078948268678352902830757319377511591066191447954842627792302431050024285349506657446327837803054142486322303051654225822982541719935417406808935461388875993858311680261774372609225029318180653218055430799175795719091178731210610817405346537077356901380913260550450046409287258927975994277273193295738634313026512384549303357155551370752210906943750167848071239158704551970358611724622992738055623675415801478946386833600515908168698630142152046045828256457863713943307353094888646917229188246668422947681643364910623468737587461617052055652579525445217296482593830452452066628157067312563653336702929977593184887499720700898511619448078056309701924977941970044222468056677003664413860705458610759144712301055870582220900974168856803068247106179474581824809951284328956045302443809855338622273772037064302377615326021452261575070997347662914202785949927267882070402371567416300851543379382154004773597004524191035697967812730101352402394631531139982064131120644897244395573769679000689078413783321025445051376043946034470297370120033755128665881270138013298233758242525177751201051093309375804741641891040515763587852563092692336999107913571143827276559342979539431148858464909352473402063790913060867963096671712890207638450347957749506398970922784991748522462971691961127706314985334851477773321643575473244347598818121533351101087093738941663842241287995099912751529502483515941373443719411804134450867254073760615084125352796330254402895606109577315985487755650038069692248834435648097290611705445455876716397398888698396215971839225842354574542595124848623831274549793275618986822799892589228656171365209296017802604754407145450703298490515925707423262577057260334178162154933714406893398468899942001691337224596071925035113041059455197883649586502138494439486597542410664808017754633787990937674999301590282820965369440796223876366116709375793103108577379846562697336911326072065310189804646380464783109068023961569953540635201293193019860157544867970390108147370586848301605214777113977482871241633295248791383600875535353406526314795837184903940176398350247915235951740510646679377740572963863435039951386906311506147041950430081717124586393027685433873160367922886858013735734579958359580561489788057102045709475396394722670870113541031166719539216804506431024249384713959481702075864855042509072537347493839667031235200557477853177997319392839365487940078774426384955426099279280383906029971835087579366526186111931465794828171802150191140037039380979043230047775587113667233714649545975633474887872896517960008330751912214542643588173194930397476420737868971985195472843086917322490162847531977019518154198651415064887886641766564825878940141063007539072991769392136129978702797326950478530844754372757741511138335426499237282786219386005914712017428554605434851410337126923183243183074619061585848551900002555843222918606157574069403073155680875587990477159540710919241777659253319018199181154338745272606224043882370985316212539994187336408976313622341923480057775712287197106082733931901305763784062662014315947879376369156559848597481720078586233920434884332798999120494257209750181760826615474423813333979383193479778801278921281077059614428576219481022568772658633804712984815261267152500251407284240723408138780341855192806122212337784004765485686100911104314757512063417716648265432055210181067083169338219528564521452582618041623478473461613836405818999262714919987321696532694935523084217662245174503689170031633731898782378182474365473095477698358782347816424263124458380334222662577545232407380728779633916028476033135852833347217343770951841066221585504954461737760516457013816663827685038224035704483967663619245115212332242855191492241511880460909336519257616363383493574453606386375031413551925627699486410240786790957017852187981051143942722364510939263054284281514406297727897837719289598874622218136233976156143066873579108378139288281840898898286707778690662603848481531375247828544426443237380608689096202318837971185307455092758119276385014324281417440025241273621771598496579723012734333148703249321899046520514555019045076726144908023309547350067178526478661490381750421200976516264594445314921359361276911124656323600205007019330398694628335330805267132465843950838753776510321774403565707355122449961489925989428059528499676715362626278532398639575903606212886237030940717300458392241181788943870184785283256675352393886160901289074825061002084489517425838885189272408784069559255252142650930653176322541696731044766501445300274254248234386162535793797561961173253808687026797511310091352810665685175126014233026593730303990753677224174937069816759573095216240671009324469568202469299987758787498828103081156652616707619639728100827871022351021608226734276331701742535206041244229661017985833133735573663108564832050218525514661345438412497998299699032948808526415930616964555332420005394808655995066863769582296572635613756290710499823075004560099857433772152097970630789519791688706771727925000005395086106523730200813802237646367829907617336937050394628999283803291959225069549672883793680072667431631071366706133301975055715109448096476161179923349633052947792600911520642027026636814749342115838661944172451449252020546969599257764855818809194440471991562045399184948224976874390150269455357493802206574671986368909416075521133896990011465766441216970051679281481280225148522181724221446227901851660583170366731330528800099516368644551693920942663840998541987033887614692130745054087088929423658424075716728071856962049601976628121029215148849613591420698424793641031526339569804006933900669303213724678691547593609344108839189714726137763565665121241414585526705224254944371876692417418284539362136868612516212869162267225375004288389496898887595036739638480383151902765228651077496318335452265950752455866687336011823261583230131629228974582379522703936861391967262719646546145999181492563120380496889071937239784121311995744474778511480294714519417507642642648925637241094373612107430833091832656122028452121549916814053777545031514265894789220938413863914908791243731635498297817696674246587592547500280606379781588213603720880092744107490529204624212382587856500569881897931061174919147752144963374395064450736343253662877615129441346639386052900326514961180532357119168577681451821573278343707500119349077979245368676465894721098392789932045954855345386563685763058400458914229249226199626150276034406659579078481159793055194692578896797439625614030864116321816171400925315282122571773580152135888706607395912023543858260266998388522245286913631426182535502385387689122879333189612825886530846592998677934257125880569931832849169465584530871247847458008161930770450825990626029181125425295239109907419474490028628972557004369455577647143564877799855017747851447388478555601578817295469866772791048360413538628384772927652362342487579654915084712191768865701774297133385860337642169425431034902226923418914697106825626240926826609686425812451024932877076371218826402066283477797062348755251045346254242170859012754090087777601682195328904547421811916521063491634822205840173392006412546252495614765842731552790478764339015087327065063208265014929112205519903924857033669849851921099613643339836150197768895934659620695308312690326776821035873910240788426103631914225431738302841212116435533976162999933399851833165648231821503835837938810914067723879213727550227427842524166865986340132089430440632957568158907020482586460814591159293842735684478688122890310610759670992009879658743408366333645683324895828641727241929250336637873879051843706558162771525198451770573287120698369758975243840169668844855365123154409929547725044501420611684477294776704145211360016880583010629327934263618479540874593717724032692605255570611926342728340604798440438746429877191723512266404518434691104662240043925310014025193935793536371485728887573433137698864315381344774098111655570913357259132412490287209642955036541621706425850176746658782434324926638631029849303409728529714320731408319446537659670231717225052390222019115191602039312677972235350930989884697763637289565286685043274297356016021960786368900262859688838765611557791980469568434649114361574978069477122840461213615828087687109445001374718521032339156513149118198669173374695378369109247160083494834826064161845256164543969988074379057116935019333503452833551336069245349169428587039984872699122912259676659146585735077452291365902865614450580141683745826466384887021040141637970277042681912136669709197461060806949355328275690231855456441599336656691891893826332729175163352093988642885031081708682821827792577965732288028294988306750806306524156962975674453536660802093747192910293614028602981217411385612781961449362969553720849527322545478009456902648226318220887224131282212797113783025141367522555094592523832424212878300323711155877436450715193667622322847418119096564907310820731350462681282370925734534982412304822117976212767844546087093270797453632628535483258889208550656685340759482554909606981557102982472235081872793760577139538534766325839625267996319838389319988230425220363636325889982345646614436415780411568067884251165364401815051783562499983770325976834089265468575795422068963716245788186797249184700091161057075994670121175436742723335079808747072149736890036106586389537580337246222731016552406418733759402082233332150134851478711432674581221784381110285911800546115499676482805167684378523744854382224384542384270789877673831620431064068352149354120931497704567879493297218673291270704080964612279372392416346942270170588718555392124876429240994901233821642146890282552717076865724868150946292209057177843308100507752496781149220293178971573690231388525613444800953311318630600797976528592603379780427348760264687545775278426247964053482446116687785791025349635747622217841348204884831346903664195546547201993293048644382176706627821732366298208032295513635926671373363717108843377871353846853741717089908635639305826332637909416243164506025421049432598970231105420101181000430492427689009545977583148216989337353025433616578100304072215205558483241284176309546470061384733550886696390562436665100043609315894721856124060844717671473823678185849239137458180970081036957776811709735904327701675322257230730869791394872735040234579368722208233886564097405078040881153979439053594340422357591115955094436714279752642697266488633418085100160085273598184737759752836648158815542185936325655396917702942675749717745328821606020957014726025722986645191929752021089199541342968587387498995625926295007142317912334700095789591118023283730176684387823203044926454750308988764724121764602634201333282842579598008203401221121021694962850210700556361563959475629759688580793483773566303770526455746252568938705426508718371414293408631874399884394753570272183376591055537611850648612728046363481549035035204483705247306554874455465410214293271098889978668705870481377791800005710243563519345360332966171400290170360933358963547889125885619085421573585694048095173034687462215339536644882838214653199842412172319060261341448113698890913293312659326198437336457060371521159492559792563456776163936793312462588515730359099224665917949266621697764305214980703180537293381482129201762980524520620833301021031889007691420781651346547988652418786256565231087995998548779891262915832372994165492166643942226376123745400883087502695644863166064599435159454979058380787145428220265884460369027613874838916537530189723541856239724069598706231478886554622422018201398262893371968236648621789782533589157068574216900475283378485142405504333556227051556810920727333679232256402289167032752347846415926968714608132935157214555234193164867913472693813095854374388014681689628587814280788768064492922060197982609564037782358115190508168475680751679407008581370791515623047405267426129909668497058816942751476828752885838202528237626685793296723374335909511243362444992625023360363545150533843818612424717749353348327637696389295256834593631632032699932433762563916372752124028645631384347998403873199593402037863931995050282125833435854723671656634522862339940901033091621690682709715144957303510084739862649858037118539742022863540353285305767477369864874955219430212332057781200480749328117798156283733650163443990284459236325633469539579896995181623269131138256623893368482154536318588052168620607621009201857027320916085111604555083060981727307238255538489970425723643476150150489599708627214417609011177385047812793433777116052541565202320335854827033451327692123270150275294456476626780936573945951061704301035365811073041489892044484715733896466424773829153050195113606970506583446579442095091189618010994866670669754144377794841140304314709693677494007500319673378594309474768810206094742511633192418607262903542847683212507159903256140916226562205098984417837884166058675251702392601621198876884552216176429769692234181297785282362999509309399917789831726989367052407304277726009177961639681737811207965893886458165239310936658741888862445263386494247374327423766988623627533081317273159408574078342613135398196425871667849039076470334897954162217095989085524709386493751159889695840437515471997685049617788952811075700166942714104317342414892142097260325764176115486246440916390270638660220209643996028119799138474669280929687120011124393966862970235470822167567958914260999192462735539058114278918909142984459678598073336198414800570237552176974561917498284880373759292539130182250242801189631056845568659482763737625300884043776757346291590590139705848076280696994418100029834626854521420409136664171131945706871539102103510294040026621296153214055300428690047918708777539386786918088257330153179668753044773746886777681831685283590674396275669171282885566724135905189411041188414344172440743181170817145642864145898792274466362363557287819344378975922538461357523422675880142422210696060162438809699191202171571123078357836102277566608592243301916471990434723741514224856059118465022168847480085520809210463408466356115821308579324683894228522620443308116812099261550875776831493899699803498158840733618891008215713252049338269941561651250924932755665591528083100922896633109768203333794785322208516345955488127105967953906581438191463128006124917068986533528039155266097935985057209930432990936492708752992243477252035125556154214055057849324267553657710120115937775480649229637652422657892143110519921317550769336662972430511063914667388124394760353914408155936934461695707991579384014461243212248880965639141154519230321840970717539800234170248273271065249399144423027673749717789072120258101996959254163377194229376413288400480795932282906206562089020964573871794082437420285444751586300185970466265905350874567421061856228863139422927721995149991278708636125375640148821333503169458211920965841818210913325895463345161018983296618189063213696676035540113561107420200640697726121704105622740855377555172361318820695808954229135083072530592909720928190725651245418530322185169863677888982833118265881580278486717669301972705643678445963826390999660215658649031522672190584731045462102167498918391995865432928014619238483057840112313077296753850171910215421147276547455888207493715378742302121684558887358116133363589107486597490363723788928284513848115303561806134741893243851455084263884211455614063779412993941495528142974939504398362188878480151265028214537678692161062905704403907634952758453962524362846803251757234776543984970742825479313016953620545334909431301560604945397006417633539031367967081229688271844335747416479097791929726011014895095287494844652467497346583942501403509544906051543617630461609930980775098391688906826982622848829358023426825326101171201860934548455902943244753637820239978356059164474653640853445392151223818095819554430350868869245123096069144824624175888794759698108891209549094202490131033454592999488752481468058662330602736957917219545242126254827457323576155083395950577322464977202239997671148831612524619982583004679119004244293550761716396616370553291445137008426502722342798424260982976497285634467799818986953108524331438877617747334239257421893328675423332818865416745086075741894397372286267180477423386770434594657732325948492208095906575136594385384450633630936415384188862139524127863097282505358536598987772621797839185803955779856410191091557186160842553613429919467253604670477908528781815905775017397515364428027430861696837482681969653734802955517776159920583909981813559066187177286467309137598474660765057174833187604764539238469031278746385760050551531600522040411067791999517929789068284350492751881920039672325008440448137541183577407116718584853710046419574351134987532187476435962221897067253189715982438999810233562878813879387539137375280650941420504844293968907479898824972306393703263401387065558318256368272269225835212543275239117958807918404222215102421270095945200459173672442416617823674625903272980179765904305147958693861591332910924432455950311143408382389728813708461753335648069362566735017799863162950492527641279045701887996507792460120916262536663638360497037274348674869535030958025530103275026638513523819934038045459363339216868288021082907719554960224164822763824852590975372450590788512253559020142096731750399544692564210789036115608322540740222780214268607971807345046871978292603878601383744298359216187693066251936334338042277619118994522739765690507044398052003179523358288585109417860060665885305176180959050987820116665500708001037642139708098781959191774368129245402168109553211724937309098331929688143169172203737477772177825792179470207999284592423188756816743377516980568267190134359013486052840693198933867461088560239868860625982720553903652769886773405934375376237996348968117709876451573880844776479331796533496707153430630506031294834158202981958710324955247211334785762477296723106457313294943750101090602489043253203761944847583295537730849231376951585944321952581588473250479703001927965359460417052886671656698952871586212904222485387394940436609231797906705765350851149530796998968860655570992337234884952579662668319220409629753647873603086231891139959734287774049633992262574588514423164349465139255256884180532808546327072808202910573346430080953248300675423982568045613077120981493937674213687516126322100457351607545413001340980876664239923104958703056304930695207929157268612664276235821217797819588308368000379414857085070040512097658313389164252212835310355193627175215606579031858945307455561068012482665804911599627793939809079897169104757725304237777869455875676491629203127656577380593805177519368601943681006385919902467813509846883204732491160665001844887413536884502636891601763697600615360321693395741433694957561015403083026990690949177910019065048112265263217150312960346850180607918611828242398586886655974218337848451065378343663616125374729713092305388696164896410221164916045981050327413921027227511806453647022669562136958106917866158270860357769518724617423983425085048125909962118648115092204340178626279242341040178740528977672767349134559136081744597774252887470278396387425940193997771526220976170137342011721541590668716738891037859599831313082251138221065658789003075723212776401800408806876267317932501919456533971193400621422839995313681884395250911555494940634435892360057362683325918616960939000339909706751790593763719620332388880059403130344339038468807013544155582295424318051814967894813648457779398158143896779610499401152729962822399380253127517546005905190039755075754772386188632642209956710441627156889693232333733953353127219409716315670104452687860719372343976390133284366433431020106050345319938990701917073274259972273150008536640405075359538738558590260467838911195434020915999631040409239677656555605857279956963779842180321569307679382608098388619707334230490565768076190582837310633675611803280525205688627948875650578646641434951727838505602188992213329321542200204750261544527245878664529578737878376594948183305471663116739689190766818194778926409376972284216613410690471614827058836776131555819144937914971760253300697378642785521825707978483050153466241611981546946623750193701142228102046063352489500049114659205954192825977914011540602414972252307547394689233046866787302512285931212502291541916532929552789494519637632960420787102353411577795921213068567809620831462727338142225409142561162353904510336641684652647855480909508442434616872864674149170343072774111034174861230116047066082861866620312432527843230333579400283690360651124459662876788680487229776038986903182152414572823645773114287195596425393404773441577594841971392578844662037165965900849888877554542466818714413871903611335790085896795514556413627398661313088820814504220416275591053143289000489833508976487896049989296385717252323632018796508769938751271830584862389617399276386858554595487129626439593868405727836612733758815547495788703269027950578532616007531048394082102801488314318307472155609514406382746599996641347290953345939237206037748692629113687619807081117074625351721584878472328239306730359257490578807210467706354798340377245533637636425761356378794847981482692581750959924313583157335542187088145853872876146927388898435600224950856183562903543707621393548939649686014435596873709031690303528638828242154960788826075070003323449304462136510235036091885278436452482405520080763895798216749139507053578644944539695505407027434983112877149360579050712074298609689932067346880143815796033989833207631413907232896651483343269090114873175467896468088575383753617036971897214485286420334915834902776790891440587648356330361328013438418628070488854125206043145139867913790836724998461636626004653753856102516080430024089363282007219565687263393498860442864371115772850138517266763730142265295918619169533405110031661421339755587763614496884245614217759034463711769638323166427634871226211448858692219962510880226785219414880598857645620430839722138753372481977886041551475359260608398063687167612247873349277932185977639253275629200297480522940450862723360958474935493089947235785583193045855304362239381352078289843554306066276270869221821603951751074321270690900344375309115008550736803217756426877649879699584072983286366852458994592439050082311026094039833341345749028954346444320854426815668490530202065230774085374591953828827228270143313385161473870161551156307668933955141338722160745110490448757744940762443479839642840915986969220541511450224696143031175092109218593095277276458174049866705680376708659747276409540141467797822230522243245865487596709810937419376701460344482938733507073277860223864846662629321005789051470800620637207924019866420279812541393032372944190564235905504507594877488903177092042968454033123518965666810149231946686930304481871128674058817939410645859515018644717144635167414218033308895592619071035233960047467675576202902762897032093488128337452897983300153784796214848112498057865377125689752172658759202061432202957582596250490802947492103093343201687168518683280304291634005559097927090364406753517539435300043253629735349053864654246118447898492524100343068572089172566427655187709147871063938371591750698179298419515870586591857914848541646542392458488190565710658666928885441133123049262321230917976577303445191640557445390150082245884310069738560505821160545195680381922404399507676151600804986157086752149309718230935503467356622795257499655389053345988288416355740717591111191068760971318522591486487920245231357384712250553364182772369238611841346022132084648982779164979321503099430294009270175393546031454719204493825803295921691276695007072302651541442968358526661265702969741958337033956534113076191809615252947150753201401291943997536767256942326878436977630483318390731679336788752159553309749843262086864267159633435571614835854619908283912029674931998122920607726629349340465538042356721354306919514757001703540012609042103766673996420221473685014560661495889034045745823360833349905856257728288992870952982886807792091227411619817209984673372811952194744086671149818726156664731915119725474182483306082585867223578700969726835632645826298591667833914135290144952683612652481807785467824902710023515386340282009921059986108222260697991245452245556152407524849026356439065491311131151819543047928883393471264935196066111277631515955197746844508315587499346015009698408595453559611052357098232609493907145722025160396872111535481115588276305291028449621008721430541789116835225072755577713041028409792578285773455917617481829192570778955013690070903685002202462511038261083023104006383794792122110353943629755091143248904332099157882524946372863330049582674915170723189838663424705117803249134939267841292397084384915347325411960265064143661814257824777421927237872500735136803377517811433790811743490091857188006660754249137179868960861177764564286356831726650591563584326824602362855101951782348624296298131952558324098977996011056765650489408061077424815741809112212129527131260507464407869697573293737617918904909115093385894653470530367972375687591415954139677175473315320371552071212429069550324625568227865833066525572974539429456000991288603249685655364468894366624068269358267825308714687081736886296079207722094593915843589865765742831693751566606056982639419525867985962538414777605099907526208898738411596956882919760562371979847521924697967323393539682677198435799725809862806752618377722432991258456133017536089845928341860271690873469859036572273845608442345749656927229132827250217443942718664278915732066377655364212768025778791701556273460084631113133072069273377798750091352539776372750498065954358989875634027982062618855045666511286643933243579697803380698736393638100854625265071041192238842597577847127592860313716429219497157600098668492457769764640867826682016979526517607524749393924545448172676704222689357449240273573470241222491571442992626250047946853014832109422126806821315200692591986040833660450210004269750205103932300724225033115746443498721034546417452707776652657317922349271728444263450825199391702401701557092272383505357258340494871286649503215615064380259586596136367649291413327981610972258042938250031860514144599270597889448202472525261597481106468515881473660668526776974766683124616021958027564662971219492100085447335418064681922956975210280521450226912398738006036579333792021179128367091029042579920415118905007300735334714952631747280608232155766097478149841331360631713935903368032043104959258173093827306955384951871182149337735481958762772481753737307657160817748941619319960467566658368869565290125870888680694408256371430388086847568621945796383709202626166033750563565681614728665870379986407385841403388152367962650548049012130472409344083990210265063609469377356110748547702980644022871475993198494102662775980647072932631324982194486448747477614311661549207179588808444256269886384522190844337602039738839680863826366442315051022915365790884820831502037022445948307498685747342044278702668687894217507107670642978501572078738838245341112807218887540645256605063616950348058754855717548710294983259460601199810125422975869201003421279529174400862008226057229620544132393646512852688084752938072872669425656784058479836198744917359071060900144013103136470404939068274186607148482358702116673580828716367332409941990634925845099868585575462239696395677202746683916223609739889418137000058701602957416040896479407432369049004989076434164399135283972174524014456357589997763312045903512596498436784431233682293984207549553514499590821045679741142818029195848307133433150795943968195677131747568378175699489243354468253682660091043556634515558497631784591114582500273595152902936250577189789917306607411239973977086993378216953141186981682104997678810822482824051362456669210015392355262866365071885244628949622813703362213762892568352593738021646651741538349912682646501621323587055665548328803615166873558932377093021653133945541479765153221218481934041371526034515108327401371780667832108437297536154781295354291136284094320598522652933840972862581688997821174056114939788140708994304903097589042112450479548705449752346550285378004840774690373012540191492599636201407747497949628411220315381880884862379726275399205239840180449114661119326263059590213744577023691441326908008407868385582668879379750030598998317550534778055081445011114850424690833437614124201848459446244103339582213467350261322889580374123235175918627902663905724256213748476926365983731833136972275602049916928382385059976621763489508844385411995951091087989102948370773692738793316061876554363906713801926763824005130538361800658711355505377054830553518736354831190342567895805625474596741207504603107631108374871807581186702621009406114035534628936519213859874074912593292268288700504597048996086856738494299602393000148706734183108642614884099293152798765735620017409419837849176985016827253136638756305820973096416322686811442114580576020254993672945415168495066044186049302441155913144438093444273494061764187854438128408482550339895216516771510902598300124190181642539678922382321086270427237416565079437727559645386167156002928668111179066526182275514523527417110256549111742891463234631368269878309819340030149123871455729140802791597142562785675936429493385750427857887692854504616151006809514122516451473573143303470906571988411129310524735479488017163773539758092268397838594419769352993001851453963886590730574730143260206309374055627389200692266596273891174346492250370105728221674199980196997718544009046507987180591752451956141969843827851244052862681196036864189839335865045280918336932600846655436441102281019771569876240028003853474203291853424716585024679994802141243733426434862937397219545155935973705555809581120391574221259451421460993256427628383123473520890397358574660572061287366481452517371964300543072328866088951854938715897008269836975604202064342694131218978690329947426218738558935539980214661462942152016971213005470149441430474439144047533895156661314581046979836609835726811973570358456894996665076815808197997946125604324195890000580441817732511362754293609250208384245051445188096961916949571358362785828254764934505702913849569453074159545425179220218451738727589982264167283736267402652739129869903153154650954824164316427738788088837258862119121289166346609384050812256440003281842184691740689192017212776943396418341934358314883318398127434095431243119166626524060116109337168874509867502844330857698492441217286137227836167652732859389917522579737703363290647430549672625818660927339764893965496133540384131720211504371330250442600030243728400970550669655241253482859848130014528733850286341042756054991208430141062150455888160794856725124801993249249447724099735593230885727177226857285185206990755167138505583620229754615293329098533106300285514172284914204339220477541685518404542799250527783059628059383718338727700007600131045049996253876494222627285357836542930536981920754898507648607691625290334358833217634501504312631428014854866958758240708738714788715076417516388291169111028444784679569125316184507136514230640817284366375742926446549095622963512263444860586654490262567087239749365808023583869575684735406510277807210105644754508610245906291910639862840274457465437567687516050443319308060915762254961899444745066519726285337861918735549798442121265149526259915703096561217193061083275603432477563502139476117999993019553669389097472758275042933228357575034413281646759940412017534346931806471509642996246995624454764541526706997218934864599172708575429290909692686432326717358318967961142892922400804228271827027946953672281383220824750694469046571736223261434235812157933717539500992144890886578605380696450283013166109239258274272287938096203939193149081298423176581065230548719512424991774995095359188033835651423464450913177252059718817818749040318129070698978274999556625321926377221086620565020463839863283134028295822766764472742829414572751800535438034446418744633124231968690091842217747560135896310030917875184232913987516886420911482798998059319911532856763522736718538699750956353906106682952976083621884405692551343888182361988681966869629430580774659464133094301077853972564859287628600689665616932040260078555277869147291900157122576136188818849961171733825458805400888555208191285947038660960277842694949456214352139308279162146422021798456362197720115881121260401392091094776213254725850638430421381711254141688450031311049596207170012203707939213556113166229813900848341915383656890429748482269417196021817175969641030033553493282407983948134814303292361467321542446866742014909524814752901612767550915124863499912822900966255857809593924487160964235020793772968651801299524283927053246427456173200913507353395687380148085998867776804806601047861734424838103507169889450423124866198139239790215705367530075818989813320877373182078358181819361862693572424340288051660905219650560377494383917137598493673994296493035419966286212339682896565363371389542941215130784370683042699393209926009814384111665461337605966903736103869696913211400817997808811456502032707823149996942786572177249555541126305497948432294904278332755301983356573681421686920471511191082673586502005091421200979329139272338901966779105731718081437934362885690417864588294163853010491931873425842593335388998633491637842799995130771584644546840003698795504304343471137969947342869215434546297784572054023538483672720870394012312820513625639049001929923626506743237212253789195736253363341864768721458924098153638378980912691314102437598983185254268984545370432594919855227163176584447890946984076962240422449769142244472935895310010417043646173234792154664563782124551604993484737074326231890050317125797626366761890247735260188118572800328784455762452586948870694621153968902972608544408066570226570158218112004807158774548030882735013511721298237981381366007450769958299805877507208520676905014037408406186565647119595494246439558519249454788097427189404038865923666829803938442794727524598722649106592536355163327117303763979120419273938022334132662002537127844154761472798881043057513551370779606826094694398761064764465779898716163555113844175809899637908017151139019988083984509413769423606031419317969678230985061893611242657446514605518397056499396899616076073327805801841789495433632578832006387555614037653614522769740203205748147575332979178729053019177846817698103551430348215521610721753692010021343687800970201306767064048218272506006742796711655701034610265846452741710213125987553489017113566841542253951222851620930280285209053985877697882889180923817548948067569929863627185251589262942855286625274998198310289330384026006243218296405867312806740325576609275159694053945372860339534771135582564666819625565836807716141793884643191568971320563629626661027147006263606114008033564743818317205456636220659149316104123417682890161387360076512416044821707849099511718088575920864696645704933848081670148469273726367629920090655467673924496142286520632523607513966385212859989315612368687747236618184941693670525399234043419176535702708594005367563728501598175727709904252052469484231647801345308976649096906087532942407811973395132889934010527147786547269418650520013844999703807070550252767543512019522169157319556730358634220605493187822266672637056005973757674052109922650762044659688897531426859552229432343754182385135300262914382327448796039569587351506901480850011312690337749437130793925427168805486712023633655458490757349606682343242812387681988464807892204496035751614830310863262449182710517666407534309313645610453106373328060551832602815830765677441546497485137658436426741124610188154906253095269988817526106826547819846749493736515963937197765239355951278107907423135346516769919207894458886752680557345684182783397757358688786423611423896437382883332952578379600331552056240278325125949488677044272115588294264168777089963002417923571069252087510012912553616667160349433426087233102690371536657199208517633751403612248472155964448328978931434647197606851706950571329141663591914749070835664461272028135956155540412346736600063188146293292913468211416098040144092039083745889434042676722674739860869676020683621197904703938897003699736342251334317180642281562244942569263185743283016041764988343209526596349509105545083066217377026431832550755246611598000344454281026932802477197874434967214925542563885377801818093860171580444001686148048076619960480738360461555641262652596744875338891506611241441026774037977397052338962604454952219148572326858373007520375350320476693979533648649436693382897644389157629988850498428429400512495970832054487450179078139332004676151423969639660416109358334983449543531544248978969956284027595865574178258882806877876834533180542574369332510815575919455923139287949851496716344824184199300485857684529233872293385736266209072589906286736137054659420141527308487888477089250838665512147297658322919163972311048395886637466270983227518018628518533347920529561439864184560496105941254326308228200010170116094725053434355903238917489114154748912390993100832667410783591310747974516877109228197463678608555305249948866597734692853207633977900645862351451493012828412840661682743427185695566851722543872358636986422033533585551436290842633763069775019735846220779962696570878673746157682008962958211132550576120197127290639513748769556781564678866564596433916258622805805335876760144380636145608573203685577257460651622355608911541428652274607042130976656678663087372933189873531503788621387260916308240474353319661168351255641555200034632079873937197422866109113686969416207152185380181290103864207348940445774733015059123557276296561536576365530282456709746771028549148466876247549366728963997543341094453164247607788850624316020640743852513246411742837651470990022176848329892229280266512912164068747519150658193795127282527823471972860932503373274001042509805789148961067518423106746481847214555453339627397367023328999873848978286582566311082601276271412625365614099719050332691185381064566739867297921553725480666965081027876453716993456787091340491719626837496713495556537872416685788581974087552429748453625641629551421687187187863124741689156963820792502635435531769689445596533977768437975143773164090955776750911515717956097481690905533497331594080415328721877850574404216432879162068878453587950022408152083331297466130929104754484014632267970119856644934867556799896836044371397708432932936959377491339621656578792175715542590807655674655295396799702027995568264547209431815238879200902361508299205273420411893808258855194875889877451878347450013489091521849860328304828389458335868608687407135669051288766482267194940149236310726254084722236039689084968320548444219923662008378550581481265412306947407121650831054792848957197990077391024023206954920679382511181256043466217546403673979607014370137651349378910345260321624322190865645514119399920673818499425564984532093903129024043878882948365740285119280975958019686889122640317279241023294277788650883144586177545081196657679194203036186426633686969158710666948086650117834744855306501953102914711031430195065806736840431513674552210269984495990970149315827061585608888385318362285954729877360781715695547819915347122994618074229360470109956774772596979176508440151904736112598894255532664633567257652768653354223789049921321280395291008626436093367150699189389530114917566994565622594697466612535122471619538049564910065333227029584175678453531602222911037672353613537458512851785876202040989722941768187595825788695556523645567102790819871765813034728333623251211566683669438491016348803111522479909652259050054986663939169386974840634324558966894211441999150990884121707577309701394729992681794330878680144066017035493699436619293794741344719321117967031706380334671057649610095103545565547213577772630064309161069352647081284816252507299869215555931910452316746750626260904862456593582043426939483884642233817636432973922018273385878700348102799484212538674612754148950848510806182415174094031613660201098932260250237860514566982761117121769944705605717478886806295508340684355492073733858030990998439871071837223841562649197628458015536007074785572129879297924758536047426671254250742649539001813682985001313994912932666939545871513442182296824563036657322519226154673506001703990013857944356856882222752942822922670465873804773815427613841672062080688703073078429751476159588928780095163461648959292126419536759141213300150952374249927906317990510457251042353052034131836408746866405155657911016886768126484412475835819638942246640383590355004434217543609358394368676043967979829201029189190469957945971386319797188347911501109076426969632199181852715375810277718639560821740847638737219210864974050247297803366391235670961915073355782905863523967126597888151315839240341686646177560186620002974731685496782274983587748962812132254697444538686153543828753423271165659998160631549789748822056926752834368456727215646069503811348161236288034735876830894028387426731084810472534044375772296990272408853858061477022722745971007641327302556737138578954249898926637258356449220970152359894836713887297436604867538887699445497917828181820403568797808516752525014516090157921165593476749391116560952912766916317130488718729632526107186024850727307618091184080438063048540138932126537695490599485565896884790625524843942688072387395930066182128169082197232648430353366354458251895305724791245039884841007100499977799468300285641185133135703208921332640536658232764760930491951023814377332990445089963136613386319840550639075843527934860940771624062064345584643906519351752693705987786238649858098648317678174916088991625885639910068346324252430027114230562785576774686048293746138743318634601846497256382325905561618024945303874526668846147869264813448402408412837149059754002857151200058789670725684581463780207068846031565414471100066729401322012355814313142784916294041554572234136603450768355488078546775953508943450474760699905339225319809418477501698459959139508047083409711929961184772048153007898366799470419450054205663264521464676592643521670886174425490039404318191947249307013961759849183396492316142178165225412798643878850528626100143576833211530223406381111990869628781674470626717934057152514699137445169050202960711544851100418690096983542268392416271400928341469435381054943368098507052631094318975144638903896783853212387067136195060313719948890515027097543343009120627135793658620658560135471975516165970982545637979857928654014924378019161821614642066309213137815510121921101342458220543739632736343155870591332662095783597733803010590184239622241839093809049845526287685175898947424874173119919356122873073292127662944121749470682407608523063809433438092705799636267010633497073481305397825409379822037734722657698772507456403621847227443817184585638143973661715673313367553955848622447965195284477782653515553729264562496579973726717236246521304246650961337168797231533027664353267813948122521644941484644761097076102824307816680852926476102160661777567201796348067754066023842336575782921449766717088592793762637259260124669397389658085868031913433739565209072557503981578487727040586348603223624486840359021738247369413439173274193730807846791836253247536795890126441758692765604272119640662871489391932864445184379623072695267351592749659341861003468591396504825772286410934283965276678803878179387866070104595628571185453352505022255760478324712086876466386699864672949889733302041251478005857548887762499253436413849928681530357631216475175303849545139065969083482109705103513732532318362590702912234760310921666625707713385970386991352107916295974901846999323798393265175193310581411017441138599991755694654651050117576471780127431394739486005439403197640371242774225093427465054043835363674834719980001432932934739885520766109269306633620301474853529556751461586730827579500492198804976434658881829364060027784124734529119709702466909831415054518783885700079499804847198254389696602224599763694409659202776279323235159434469574257871612759804310652637643785821617170558395900577001658349194009646154865098336578546140924696210385521385845943920026081934365573799153421563000186453775879044273499087061946503866674917997024237409455370250737826078551113885610612185865374678131451261274376289938019410372584164560744407869766093184251105517449189334717298079874528436761586146912657654108534629571272522463423187723395466173276668000940622324639811778721453933276065026195916496162924226861162978961330554623827638288882576017039249686361883953225200632081335100339024340938157140197848346785548598425270045117213312193835930821557663793708292114399550879692384687250356234739599171888975263752362486735518912322601494276670051231331587616558419769203339259700090398882793682283163267925351322400044609189041414236452425853849816499507827846776984995889119627538627410754455719407433927995967861261131816467678968898728722830546364867851308531122880359961885555358521623811758194204429667532586593453030528264431500355098439921860380657934927325564728153142343766371521983420461450601838377536742054169861402470731921051770299681607762062763140272309738650704156026253250308461760632288276574949162803615476974009440532224019063786876250443331774046547300959541338807249267726513301579816028501036362825376074724278175976954393225444629662368483972939171996810177435052177573882693488650545709341117197766728367938664005833273984611380654433019761145917408790374566912616411572358831708092875553183117050509176270763782427244431198599005585277630967069445083880174011610551834679638792507656674476726990636571285382261533471818622393594331361186743688428860201172791214033962319360915197673988360406369739553098943359640454575147525716654057521671494351713258559025691858783375275720857580056990896927407178686956001828362919061007390491147961331682946430694392761430578583826926315271401217343846425501509344576899631572115908468096745680773069096787682105716865301643114399628499197161999806999942429331536169843003678876185817868796703194432006326461929603138998846179160670686442070775896625373207491695529075162603869803301069152468299776835138243412566775066140433675566627540695424507823795212305353815358523527008200000198730209154127556467139427880924032340069798550055838345381798707260955845555753526356614036699517999610559343785706534348195663225496636962317722965259659976820020950164832047831308086265710622079719052589707755277229706535044477064974048344560010506685636183029882043056193169876609992977690967814019345852576852765574784101428729050847180929707256219446190853445438024515730388039969594141100124084356578015327775599623267346884161614136894175950407571839156337454585012793699840690694949512846249584419709241478477637296212377999038674952822716861259455469382637252654038818223206806152229120564669685688384606800124430080967756182659669926836564179478939861143646525731640454587273104173414597197319027600234519947855175691595732011040480360544334581904230443148007304807887045201345696768104953566243450325288947061886312495589823499116366602056886893500683113373030008967494181848263973854738110827210789114105085751170025708323023390111094827775738653926419873341918825193995067383628257544779005860359072965914607708280260445428587166754637048682860184707728062284626340864052395301034273584674785348340655225684251074195762193408037188400856550208834565593240095048401928276095744891246613804671638962631982644413376808524029288674519271817311651408852349680270667227945214399922399759432227578826474957800098831584015474848502934878633576730409719878014996169218844470336039004633704119094379784102072605139000592958390753751660360932060345727362705494560995984121521155144330106207439189145375668665871863834030485905286306297580270578329656195884949772163380067444744922847709748193214688118131079876099056004304435837489071211566605049059732040627811880427094640947840867822511710485090048373978734334206119616023875201870345731049703975998327550880421229353726214237227319893330839633769494819422625894699606479350706116396994838196451323594229687330630065625300549089211568672028929568697897752910280482778367160071693035408899981190848184383627986529384388361883327337208374787113704560104809396604450198420867184694571070328279121446321303176010391840876940677395387198259282936584429930386356130133120367145278143833698975658800530795696972571911516671917781125684550447794429251249335664215284313441870734778729907716120314435240567864719883894780452026540636169979335437256991684193769288650693319343302335339750709573390883442516114140098216165145062729680385935338926515223704388066075564730193337597434704189128619450899808885694634309200141465801529090633257324581066749513066242066195529414293774788010320862473145232126370294448924400364846422071077746014887874729760232165586487094499998457382395654602277724318250317486353699502827339925269463740726162860421832171782166991842115625437991539574272729414264277907172700349583642066825394943674786204834874097918932593441884812684942015651624464574774740791121552821198630391044281645793642841108253107283795162996470304597705475599564677162271640702415645523895610642839684605972299245644466694174894631545551554311130666475812501428544681647226398624581999211813114884848775430109404598136890979736060857113407065047984621659764302625349003050321659461928380032843245460044362936534761279773800370402473612274510568486064626225878798581835181051480151973941407025736594786899800886959996452529773724287094654410797936012078286203910249974105593619553765686433925112288508228023362208153290874267625029444574079032401707865802589380392050237380023470335343034069643521534083462136452093494760045395297574683889255181255278411470092934095705300862585127874420756294181908956503846302435185094017708187585079754727468705290014293062876736091670295044780953693601692331990563386285879770240787288407311504579367436429395812167763433585722767569002549462499821085253739361623241579165497404970592713676338940755553847332046887935480021627717356204184725929926625360120935408374305437493587494540474572981376082489816994099906573012194532530319409118474861548272981133989356692657125034865777738015873960118644822675989293449339045083368136206113804451322177740633871092446313207908809715369302714056541517227178075587772868072080678554336160701111155458044029553418319846571800759579382644930682379721355593827241878269383854454734284083800485712961708695662818961956693901016418118960524277396833632793667210628469360682172692301298604165163508256741486728191897151433008953548333762386364675626053197914665465417878085540020663960607770521235923721854923404894309172387121061889355787600535926230687541669391259761926843045013480010741455486575316408565898467935026170402554056705945388608056304099548295531656238812070410786924725943204321152922076174417678297516395939031226766696143806256555342610910709500951378086919864757519631759512250346757092177493963986150940068233692580031151592439992418621267298899014093113154045248966573333254411248645791278275254992409491168529286211972348656574549894592284022354055212739920700359415408365203580758137191362761058937408427652246698837199698907051491711338722764156924685753382350349502214018176019675386862606753323935456932740063998570470314922911758918831523702558141048581655412516435898349090316968364404741585306890032888943048149432589349078653472600083031299719734342455697148795116302101219829593023334564242330922039365316083634905292939908807304161724864422464466772267121176847352981789497826199371162370773380464800307115035565286331771725687168534716600266452238184776366059353358210630670999952909261192471444632668171058553352542236066400400570623297050883763747263120885086631096611559855693771633046412216048341468287307999682685623825983696819105892464035902724834259187485448179462448705652015280938506115760350976966258278060978300970455331209382163726779247268787089899054736218565291855490029022665055859877354621431260932740690015580116567146878716864809001706511057274783124973011742171684221241268178202780508211322524044626617622703500027808742128348620858031829154476355836963326162157128476257108538182850624466936916034552936699481581470584671044359279575722079761803261963353452338994825330845358189397544994740555081337896525794054453422891549817588554908679628799650750964199160491587006050314664529765871249518321026288094294597569979643843777346733357582262593084198657989149160109234058040653897722774087873474277439046300311570569016284317882956561548119742332609827353766822041921569396055081649132992358536238141708900909352797143873797262497733493459736400599327148640702005920381478055728341354355652344360450004387472950343967734468886974348768166018588955916240180829680272840207278038191942615872665801048592397585192665034912057054548394532496939649798094774793367329175966203489223369488630058530387349429009742611390826560379426599309692712721413476195094303632301755647491583988579109622048855691105655783237515001461487724801134189673233434226212005471322118162714849778473633222597336143539122205159056576867063221786606095820391138559266830282157617333578553187008951554543177010126985002612471540400612716780639818385323092983708684390490430330863473495669326892708950976857499967447455675995966631747935047650824767839994419116131033742061557079762437910541908782025021588363320330266729313818696555167113614776108335226608039276749568074380055165994556379414864466512246476065360109117348582540584017813300529090989478147674486464402715621261372928460823647918723784319161925493353904551877654610561603159016589273901469265356045674050193736786770072175630374756610723689251184218722935458448880840200899549841486132189573648885590944941651011019566373734295595632351924900382110102427758477337059613709823976366162062605307828063833451112483931780510911826300643902273414255791182026135090562019680785661246723075154712088704034371597078236736581987580228893573653421275120556316964455670546671561566171129407622808149455761038863109369110470202824795272873588121278002958262595359960457688959912509224978884658768458453858033225759255878329154192135856780560103009212464431632044273364315221814793876631195154737317118775723554044284570171199123562794120391038927919404666120685693447778943802103496380516099733160528497053616678306466761548585772052830535154664186376519692243685874677904409292145908706634189220387723126107762795275667031274089196068614923389505521105050797438739971881181946004586879982160985365453890598225857037844268519930071917520101078551726689254542942695547109828631870628339094795973177526796901493636814753116976163294368711516073288803779613566921211705730767463882262430369448908960097374476096356389604538409098769223018711889078669914757602543195557534321976321971788161084387750951356645633573128242061429296751940065453763123211766712016868645067917314881685885182813512601025931167150126236777084123423465287109703084630306534284155611267150355593831970605359246175683404978212743938941009912784684260996974255931191356798543057710638409847021716102723893099221294885736410955024661114390732521903269995415280175981998955226056034206059092956181741467043028161074732547610745031242531015791527614275546351727809840668037688721011364599548355455776474329392675720135620071572131961382887140784947193309601853642707610883858155582285597504579639052404225671385690065396552314003990181367467416176691312228150603861235390951892070237322072373092346100527092532247280955593118910245756773468135393071453589071550466220627606186406612390707722834620655323273903953520824695877896688898881305881991358886349616621177877033676260982371934676602291197620698932920265296734240715027567591409354902410504241298866700236547553919497019242829483936481233065453195553524714793814124695937418555832823046456461314899459135219620017879909277833235986103647431666676378561405977216780839675172333876102057023310734955027215452214718233591412018945519130969415078166026380571695410820707509725342489098770526990530811909755372213910146685377178186199113629117185669655462797631535579392063894208527237736599596850282230811543959475082861213547438497278678636520666833465351470236724380437501241166060125842353167449134574856645961723234601613790803104225885374562817076403575554040129097859998246634885900197362666485825399716851620983722756218572466925020205427668527646660677057916032763885583883500851878655386355974935969599093345878395421567608246445318066581329244449382345484164083941998013742987198998848757791618272249061012974430826371880384621407354194013482062516461857877974681315819708746025372563544779204791333223700280607851506852568165886378154517480130613626190966607626936164003674352835403705784775552876738332928717703224748674221084487317094554256065666992313622875371735291086218046219234375042083264463944642471929679874361100942117669044162074030220522510605466266737835343749175814489080210996933069821583773878411588641244094995915173208031651986300959135622096611379183156304701816370138245569353720949981206057331557969027932710169179850127873595992746375601638299391524676965199671629667408946843858699748238742170868981672715601848993320851626517579630515284815659449706488753064554402693575885413181150582951782934032656238640636478714374954969729700657090751394198777912542783714184657269543636530752552567338193218975563138916762168550343157462658833190372788806237615862167429666311091868180311142668193903570637456153841073155729658288200029852864582580799570529613996947792917883590186939892736382375757969701159542678114582582994066773967389644993392501996294370316571839840614851016146085089961487869602436966430762251360372181292939244413844156568763037796890114835677126769431636447230472590827809831926651288462369165116761365525184093941324029538364488930312358425714485451703696556385670047387993903289180219909412014918504149101295568190393933784577082172882311092942557211666850415245590285234296034936612261398904247210432259441310110407204734017605342693211189773659616742663586453381621546526150450079951764068297784627164278818927706183402158267541863766159711994409986298398932818985800418010415161837622029321731701421707572942122190359233493574962158257394252195845183335346263802780586844673049972764846361230866454849835871881190224148096873014482734409159456775895555061863950695775035977866359751156733576979128146515285609653646112756892215675011907078378784731845682607858663358752927478646141658255071595271795353370160143903170968829349061288207993893872208064701655413423356669715411019848546284789998754136882859873628004898185574456358667468323540581687542801712299509961254511588308859370717217144342152535385148026014246758229195138613482718111946194352551307674687829716393887588743856721722689243491908627592404971731523916726133909961102600751055003350294940476938522219899112557422536137861929172383365613761638840188138651391290411493292345609426948450933082208738989601433947407760874665648594556891215425369212772212519939443724242586484494746404070197084568368188850423898890865878337900666495901328385985790054080618465175421599331222448174274813481299716591183818636766447471689448725419641922538020046433732182530648806591180569436382595116549376844565291297060637539405107768214179782457308271897813641690082444943929693592882766413588827713791896860758026039330174179365676309655726056225214168764582680760236695836024905623022755862230321560778412933858067060325194661811315729543185508409811337397594001953138030984752646833495502157225839758297273455660251994960900359768635173156003077829807873434859163531468273186335570865058712490146566809334309240627249734240178133507422200025928752337018281791243070851861660677141942732732106432366927310765150652213157773894617789003910950152097690089820379223967974382054362549025000118392500639839034632983852702799071695532006692287404845840124531749137554467402619308041829973246434659851530285442424509813320716357089554011000735344442065760128330607250319719993941991000390832255792429332240842866941654584895265469243407309644900611444728056952910726716546387512149766509258597909856297013512634991915025455803280707524193434820326739594551022382562760290874175045346285166818655793381011202149113249356105426614513252892237685066911364855505688513228793818554111647388022641943044071756843945659163147149287228280142614122346786297835948539955357271364218455249297541487788649128498524262949687528295759100438941928415731020146584257769673717437003562078234259233064501082765042637425490142482942076472012568266984961842119370555356117418747926822946365037232047084853702599065589453866619663891317034746135571258245299751386600530498246606126608951639430085845137473369329077020786073478798594042402722218024528415495859651586841940792909330877713149929115850577077777953530624983574285503723935197056911333881324881177285274533122043347434541679073189659898962064869363065692813063411809908808453424721481626600605517513198267065573625363548196008040356038459997837477506074011561813586391048873880251354469191500697356202746152935644084220377138232984342478138042743738833783828037110519630708964241358602668984800057085575690141464238796830972185872175962263481015143456032728109566238218142612844618331070981269048795821918876296352623415581768717213634460618446176367053118897994270561815468813844895017541318760923104712221141448789432924528581780194052385737492071550973088799109240681032535329045075464912371666126157792969508599034617497003344259394697993569477833218949499630777106263250767946139583972827686185004946516448785976252554994859971041788449074278159955443384504659494162109661524772288766653645410438955560125615996678797656026609056115309466695800841348926941282784922319856737498338344102634906796826815906582125628434068808085585777525561158810094854739869485487634525159932551391268758390526538182144080390248191449917133900996090903889126390831491988838270530926038624944220485669297053705081446377121322357720607483611649908843063790512905743053095431886687641395649170378353767481513013682947391019148358945473658665056303610459683940176091301154816132319617202950622732280171900508940354333844302445658126683049357446599545292041627665170548518602561060117565389770544577138227246970011782368552704870159489951678693419357658287337263228742223424818045231971607760684527409170598608842856366747431891883768763033239615843721782603782476824029502808694718638896929782561815292919885580418858878804085402644071431412885572589685068424771491477904695561935064252653449607097828189952261047982135927285058280237573797428750198032625886809183794671940083710882582163719827073468215797876807319788712741416854630012862489637358442807683569724872232014589688718321784080235926596186362753807712961066742673212557798724261731985811958524160197103205835538195298436864948880611218945767903217529120083599999399017651617299175631903026139464623803427361172092681438082649789332271990220634841953299978956860778637344440326093030273336635269710959161974471558319164729382966539905695980835149030680336058449100161608189403686246325662321143379808745762875983165898787875447216517162071523937407155039740574815026116259339580066608651301800698648206882029541018240225571943385267776966546089839507258925036546900319928129113243217564252664912095330592330526489937077494340187081385094293949366319963876174117492791583550920663440802580372956284512076944160180445661719784699062988926264978134817072170114547684197909910137708619688907607787878657842045753806491672204596645622407719013196165626982333132967154135853352634091792270500025244441593478741485591895632598148451375529519895231541931234128004040498639155655817246226524446112342686517781721314850419767879055046490773850079157709706766819500753717620637180468351293980444928632434036374386973554665810506327822687701673507722327121127217816094543067464849211298442679458380795046083598946021507057762858097244018051353900732819466034851062402454092246698485074705312804988579275140525607811630872226304317836911790569820191236543936439286582469394562884323625677160937597152395631823099184702434130048693073331158334385808110009400234915722334957762853872570923724225364160063145062051533240011503755535322644865015410613862600087448917743764547182625586060403980405084008421046851357468210274190052047313351481834052723690370207102920394361037850732938797768699279642121059122433026167455194954072244203859021579075207671155684585374477312947050756190020146012281118722523297020635301430811574967598093271615573911369842340280628842892445616486241822075955279829004190379109036021334670858876893704094720962708279481540459681326096286719905386745739809769923165109979690805540820836903558240793148625921397015570224445723169611131681637885256424946403200242958690341932588375857625936416463158831036897533106800435587227401688536520513047268082012887364882803309900785616984320095756573539359232791004307022739219833507156525467695001616333996499845550201132206868280396543094173151726071946347043485385543163723859312654915031802747773692897848427713189771767990089890095984369756703000150671089021593304120156561626298316059165385888532207910513930499006202847166882227859622815617350922108537906657143950539616920522372531639501340782846378052099727876577293124734856425972479293196739494202023738848742722879780728023368022539731081756217324453317491356376039020427814453894021789356387375883931475979404467159875730896770810555869538021518241701594585964677551439201317142325375551726045351071489649741860885291803169048944867284228504434846628455703788475811351775982434127910840056097062904946540893547770477426818385832278449502966955147758122820843380327843782624542655658445429315774008631052199651976179440238414149882080368438779811517581163139116278861173677993927646768983610718119256160675933662702024740906595836229626606397964861138687939634170482035690240300488870658820440492097953274926210748669510614023978475988292043945036396793891462477021903353319466752767453581837145355489565881505968232445452486202630114416335199619904372290452214790049486780906795149203591990322801076334378231922602171957710097016874584539431731647651838633310164509049392615776531079990942892425285732050062524918385458041829257972713098995698420771096970460902225751769479964223935472912852350793493094271575026660047207910160388015676581280084485454674297617930784135072302378691226550692048900958966182734594723621655512378421314800674577131292076869115671696830872628346291485379687982774171466560823086262469299056396794692629791067653543110109033467027990030589920739629996245119321763891720354248756486232680986837780470434176460226547572090180701644640126408313019500679037100088827343181963917159072381870118251842258149854016992209560657844631052124052323237819870119429626713948639498369935729951864698448176119919649968593605371241159820287121067580510198142647394454696447094917649659473161368086009360654627849191001420302297992526887061987179506475795929474862626817986585338033591992861373613717072466890242644620515496965809863505146060994693985214480897031679066101780214140319923041872642874199703779155205460909751711566157130863497935390696269219580843299269459796845086450958335861344386050902254156585907994999215117052143506337648067682240370182793319484240564066845999739307922320688272825724079207807512122695591158238567707346146381571179724823358815188836307638497441857592654963111332729563309360757887744285955200747644291893877990127472869855695525325553883999673434931075402769237195186449069596879844051379210744494113688786341662982958632228527646507340105729608059490600667318323193404062376965380708074540839833477672736433376206370145412984382938388333600042364544622464342312956555449538086583376538524541910460341002256354628314347651408585201653543547343042748718012643584631775287522834384511734057152349807395064441224467158814100852797115942098161256919396081737305043714598169923552646887304747058962541992534743823976943095088077832722359218113580363294565565840559278242077274551147163319634891928480490681157044828947775359803103094639950689956269074430556010579430554665627156791011651329109879805202230986412669149520977283306277140260394158855043551368825167944143817038394355330185010661733938766087133443851165706736972383630396634210766598251731045409605950497958525847057237768428475771146516856978348821105175657676295670804611406635095277206307230529968254618010601558203823826384455042324357435887412376044620994122502449959052604406642027094162426303172412680766711555859503814194008023750724906018882099755295809406843281650583208335185314101815741987796712749085453294429956952296144359746238070329403818013704927719053934779514078371854735602462845860882543851413133014123611137097556173002789498669448174661823351964726179040766797621818778777122641057711305487403531746051542122015589453588696990625277350785802247651778652676766366642573430509864852893631873539530318462598373971131090417691863140288487181665456002413084892518613610948457075488629507186714361543191399803105150595078399087816842509200189474121812978222505710608665349517389876150349095192198448021390827372856383291560676351851126308268885190575898312377372985116961027512687696748551812535582443153673598431143980526586218488459466741266268659830837285580309774855054835238106161605027547810514685768319123418677528492166839022779089116320758703963994879932416166365120970967144172625216626236238352395492761717443923797236832904737105834008833358498960524872130390330807495233137626660357818933438806092345615126430037620059971951882965098695849031432296908435412345740695536217500481244227151619952917608231103224148521687776196118249866419401090183685575570429400652929104975559641932439869980201906404672911991790788601762365061679341210397796080488982645327899829330018419934982415512707148409456208649336176386800712188396061342067369799955003186123846203743561356743479748743732861911584036019497927563868390153298540218343415268431038550137354737291501266809269378256486096793480198911174582702628065379844236561983944486779132409706383942606905814108810170875542017782681950244973758604904883466755847594128143141192791087267070323607119500579898326501917894165164030033554065920394361157948193594356345612612524847615539057397137276562378161538093929082400218570666005712491475754082514456825721186947488989711899737252144754397779589371762619766410357869602895266137007018490683190630061998384982856783854094779451497698206948323630361504148019531338110368852692650203192757268667624824923133297293461803711110636508444026059435015648094915088817470435923318469747162448835868110243266714174979010458385801110162162669118446857208166768617755659086074970702877006118587406455072384398933981161831063597631298415908516363969804804002224824738523841287746725766156314143018311378027710530182889702375321561523916926159410501185252599582681603087181875746696005229011671421561801121022584068356590048819370467197866285459241572502983766296193881985041436023834526901281528635785144934932783206757618733428710438803578224417530738531735350920790370320282379660408067308682990233014872616592997264424058686749585824983469335562388558582795326878341324406176886170774109426626109408935237979950015034798752469903654170440620878537069712533354172066348729408125495498727091363542658167683239379015425582888094493698625747019470471290902421919064347274676960344282903881140476456172326309562638623795105372818757327903256954141994447305711096300726478815964809418679745677758200754831979280105283124179322510155813805329797312716942862675640941818150173919362207234022974656824228566590378786390374280550879422039220143424277277358366416028262007799074584852314029419941346363236267007673184888441031993579388822379047821288320527082295962642040772279866733225334160496946185376126558811475980633773156756265999048246737070563292653762074862942192170813887979781741884744369662562761731077803211523627389796124478591407520901868181693266896508162804556426415631043750610317949559762750994116215933611191306647208981967929348324840404314730983600253833394907481311360559412883545939805827072337406068512419070148275310946274048277804945768199544127451646046446411433969798405627406546051198144428193498409353181411793153521788307265828547398569760137938000905638860855080205168205781292625840957707085246672618257901419020258871683186888967577462742164174480445972183780878172732511629480379949556041707267042260366343223445128865491990088001372605905033103575427618973761857432269768797878527426054421559744097681609409794656574851049272317884666219523264595395582338892517754106541636102667775504752412374936342666786414538436694958718313798686047043343518550001441128881630079507527656697002805148436874330578555816299427685747241358680470284004399126424976213581168632382255349214758512582475345319968369535506709863856417403483340607200543539996037080574597295625107938874257305758366497147433395535162437266406123734390954576543583324711377043394403865542771099308906518184432124058124797830129405338211259303874738006406836001185691072807648064119667732505165391206673826703524455007031474275057131575733007556022963457159618885418612852336119283136807268717237959005523884900886013996504382795833224874222234009128271082835244792901231788138738158177280353736830915531708750785120566278941762204568273626380997083373729857227962904024595464600867595958618089065040740557340189095974843520425911285651520613817475420971552604566425571663998215043947003876818738046686881069763120359917201874708614411592509837036313687248590369823728522198653948368618375468233218839948168901716035565830938649612343847564373280301668079335056858340967421459789768351673985001127276533510193282519566100060637558212313657424819798889168744245447840220522828150074505106561426843147016503088204880646167512537155585554927670073208059155305590718073775709294376657376502811885402700768219642387293527706230446249763927065267772546721199831401935314300282057062870554793702711255511908353649020562289546092792073020720731026937840876086399290528503558092039517736050156548586468901657424199389133718103657919690887553691710620746292724510140734374798916893782980858613900827666112396032623120657326793311129607095087932431626663086966346799084208862058483822624914076494916583747023505285954101241292853705209524728405511096342928212582973344511916175019922260306266343586939142433490532423197721876133263202459962251496893979882837426796420855470239031290650168976808341280423613530014727634408961653321249318056753091317685724532200642039440354569240250676145910457597376354924805898234240017898163062989015845881262472914847548064091901141975070534554399572466250381251789739780136706527284366844177757640588664400531226005416659428635627000848070210260385119030095243217455245470981333740357671843353663578477821243200882539075248704881335200415362744612370995420397330178595672763296815945206984024648629074995861902840253680265396979398603006865539586394777441689477857842258168952334574296650849949314409598522678186414358750420623227542361842542888138070667616678915181014693968362863191670001257411812074066822728304655804175726100596502222387639986260338490356087796374215032337717067652161221636105875919090303474035989796435252552334729313362883657880088050530576397489436798515984415259232080040142804580077827555135071199843280987532445887082980994318019575454709556445914667981226738769693307466347841015465429141665304703627017941171853722468798590935589655438636349810486784548054179581347023957529862606762688884957939669101319654130690443048878468252839710708499240511671630476508682466336087708127551154431028108146784590373806367041221004388771644669083931326772151404725953733166841449394006992624989093510802292562416692492194497961186585106912314930330906636859215129748925612126691066047132728887480607295045042305899067416666711136208799167964371960519772970367195525244355013585868367796475672440775696552615499063429019963276280220981284569241245017186696088326637843125025877262564842364989460244191185838145484832178935442770408703758622874464389717332432507651426075574207500313570774657829801387225119267584553228122414189535629789905659349722086295512136248315977949097137752440594220534616148873465357664837094011500505564941834529456841852550664294610292511359340330886538138517259712072367343690298894236781420918328558944354892105458606109741872879688152663849185034697198508880518139925034220761118142934400036557322860072091698813735102632529655854888677184992325984179897419639952930245638241927141353754102729473737546853158795122042318859884351480693652643243808288840388936116499217882631939772498242363201647331366151148601166834106187561315654867404872639060208300289558959439528972631769165297543026330984728867806416244452040439669696759745133092958152285567426471809785946834069512313130238223169474894572509781820442193980867621077902716668689933550894578693547219606358443256298584189517424744257545727974881678583933552515098414246031874572358460855993921332130174894343119100116147554517674592131580811480428117143949257455218040925425290837335091096545761925689551074230142593809134777101010007775337175133597585920671148231161238257813437563410707285990857923418482718123167496004370071845662014511051097388666236962324777123190484115719518581383556100474218630229613054992426371955334922113295734441718312985564966768250441792108171982356781576684100969671185068825106855586767297929993638857401667163425612153912019664102764739788643639158051484619754483051983682313599171532955111377454092983599344131176275571214645273592850538054577012646349157228647773511391582777998555730720744628056917379453406756248238666666315990691888202738306009672412317181181439199774694501998743128324602616831135073496401304182907925872227515850323094198711428932332764951212688076411897489686676835892631215949138479685882922995563922605819717419433708662404827860868054640421177515606880256705137012117024967715737119264140403547569809947311120212431239731765458485340359978699527381242250583624105776885179418435952467307846034327918076813672942799626637452347771289425523007645105308150490936060006070709649246616660759250108952381679014274804255342992301312818320569874463701268534137149652636425898689926064855849321637116773262113165796933963281983331605348793184594464269966304028685001627456420166933463004651993764130148158232291806736475739981233229868912591895901367732606139621011466917156667480387182338513592277955671693145677099976038238067848129996256613167384994375465110808079610034199972277558376148985170283644602513009935201866594578525351593466040008946888121753186003372472198248935920499293760596458080423825936956622482388299095063269297985246771650077625227581351740662423635980366251289491750117104570302241533928214538993427551457387603376786104029923128606891366632967393511735897171332668024822737656744510996647914147011949291568836295922340423665385392563778498212974510808757551839673773548016857436562272596901142170527968776558751698474677767952830126209744880506525704354982622360515362547916558954958917562192040127617585946732478291215306518801158142464815369716744608352912979233190002702674646198456627601325492705593065750107031455880024796631177653692890559356354079520355180055227059335518563963044653835611686818559479615918653459417909942346554827600046109346125079367304458239662115553433312102431372725513724491828895929974173410913712833446150889194333441294875917746380108532899319832427363750288339305755106814054413588369306763139620203415398660155147991319661768620162237905676862679229291195372830169265498887188973964088653305976255568900118631492925577200323647589875510453329892457921956000423942485813597828649403361847235258390313413805332669433383412394188412084748064784694225252195516339556831524078772015565713987188459458332242656104174144630434014874009130526778953691055266716933737157655214058468432188877267878327113227742060298717908829816327327264776224357640853926334094027454140871037567455901415425804340267205708554490313465859535665052337446677262300975103187733156085718203843375346849118095747744929827432664058365316121617466672840318207948518456849803257591637669207476503649504904081521195807660774233863594363859447932355860863719710312006957566540262731067652060945707536123383294523675899111462824977214092315062539804093860512026926552126242786554026148817727027251465624689833384550521613021004117231159283905948244431897650432449916090580880425416784589442444778713230620065296211846387353970074560900324402946739870048428159409551243653032290636985942109933209811311861651071294812851541645746147774345922925475052798030944930584300164662189979155323131332890664593444214836533389123837330751329354289055321791233782575997761068045213322207548871838454150764605091832774399419814524067146776925047313069859177918657703313052277781632399214247997414378691619368004367143009582784011366270428078787690597820346510165722405130924374973980578840522209868743260225626931850949250485560279524378009663242868831474039432753493379013923947869187094711760569574065103336297002899756707080091886171814581206412379680233435341168065846368438540922566799831913589385930195636570543090630180931115022031769948798422378967134957318325266326487851995531092715089922044802876201898121578390769880089852702839454732959008772165392156753882170340317863805637521649188443843668188731344129047617930950313735773764536898721397172587133693493243648303681050502090250485515556541667091434047574827448838016338818545241815576458704496656813957073457527647109289726733884382300814463599695459156753691184933292736232750243795494098467128695278250103748631993084987646034235096492100271833710766471650155053693885797504767284793764447556230698423723867591223993102435414820767400123280114735769612742393475753474818728308159433281238946216058101571902637345830035928342315406516781611906114376530366090038294709528345946729678697642872312712344285945269250069878577841170494260162662705121014227767887943538153483032695385166188347029828549146686712493856507518951281324863402582666707501382590584169998963210746053542856921847460599025414375587160562526393667656003148870940172660473873874898042504693149417541634908154872308225924860242773844607570263187930295797852396175962472379354427312895287438087818217500098383493940836869556789930855181600864472798527960875189453518079442255473292638008228833303623026821041966707709094685343840977633625278822824965704932713584809667557017448135351431264310491924518964546095859082747236761255706007204225183841147300758487497014940441104517426144919804756935080911647388399580814908884125148666870132638857998817782915756371083295781808751901336510993459109615102332844859729628762465780013680476071000067372839056524606013590373180640067513267476497397113068309095268044272495629464132072127566493965364814194620622582938341171460246959346508072972302457969065618345653264572172115394876681053223752089576405804472261311510077395422366026873323410191548621928977958684332282011193613826907643412997460323105879389760742617892563635420640447695665701628192196152627523039416960660484053819932920817054506062997832225352130777737599346909796350468256736778781455848976952518178623500619458215713880100991443817875615566334265571289228296627057348895844073913259821823254717872810265715060841177003305033618793949473259083191105877073552986235204148388875387631268478711764440098828210604639439299642869062242227340790811884524306506422247561035050695303086665787524892196473348795219745935293637206383009682481307195160664482288181303857002731671460208145918499044056543701853446576061969299477516266572076252892963314644312716102289159865082012335559969454713305597196391801772941722061468328300096895577116960403397974793876196934238816693167703033025079648631505020665447269186162529427567771730508031554960029076637637786511695574664276205365139721528517274673338193409637274075090124413145999314088830483157722269429948861743898897862034113189593195889186321450510127875840049420635351290851933183071018236712070028676547571488656405086537807514214050675966212130754566936486556140294683399222340622591334291472559725456676437777602105597606140798985023674850147591704355869992412213367771134996355441240804793272372264244447792037855475396160792277913897444176521001366966472300873328857892902345990092335541172449208867566621613285118653238237744860700725395103236573220242107612618688517174365947596484902873325297059119978734174171202751960832242379223622876689065594878404874138948252621253103010232864387730614900581500796380894854223957796204677086686262469618230612881798557481805970993949427531702898577548286593255500202669708997538028232219375496535806132399869585166979713541392020096888279330629563965660997953312602950954853519134491115976841797340980502881736579628116455760574424539687765468937473164178240083486333852446468848753469460773567660740427959343980869390167629979137032870030806269615472920204683441404159232275617766650382832345934102980834595390948923809161332188409131940722900704884906653683944179999869693965779027848042681875684380616542210852298269027562211058984713368953637824630591711706197099953894201215224200475265293640545918150806437200438992270409180441626505022790607906125312850389102100354708952526192609680698229441605369578028271170353368296324164097790315700220013671621823116695035004440544302384335094497609056249320828269226308194872617689046713847349675005105620282912723931376885174162160317378668048260312629135967909987543182874418549577609441571180580935862265779025057360952424492417659921108641663794149361638833680767237116940700031336654716470392851116899020068353287335894777272748974298286317313873476866733824945148222829156973646099753762429166834664008441349081322911495731079567420294608414121434570493573574988990237778186838801989229951412645830445497721735723057937137275331166280071623984378999966974199632865937453965891920255291282644825290275376930322360039553816181706299639487878624589642223377478474048353837982344083904903857982379180655349584328278796545833757945045537229128390490568507714474842326924656048511327711399722769664201670991351329521328440965422050183774696344058541750176827522710645680504559181899762524330576097834798414152293974389941582038458256875308097547413824473777546214232249061521030842902375971980252408610361269717810029384258304900283534013585516803969659345175912279197527263816722589226228350624321522026048621776057113016205859598243785422401100657186039677897034723838476640238145259742379325469569168047827306872260004400138805482095656245012677328214687119936595759424005051781778617919492641545832738995237134328611999340884641297823994747517517793196782150821799291734331619181633403382201458176801606616242954619119246195081298756659684732073410281642416027181038551560616812192846241394521305504554495845627008302759434307896533071080243369725746966162209115291149758868732989379198242222782504922436581033884421386303579160618433548451567553355007781742614070518415711936651963908107286042491448569715169552893242786274843866206308508164910993195047129506956187186067585570004834123017901050785323184474903039734812635278074779213596419865824696082372268755554806848377929106912587351393035025399046245385501211633158824939669582269899416463403388117183281177045281270124332606617443264421620983051060459330051447748699560553345487294824207527338775970863923763173014910805322757026586319631554320722258954559106827452684373595530966300372922384790314277503164733093434423456938433973033938751602134763888899837828337775526197894286281231664449488601629112469138806296344160119517653541451038725169842895729304952676734089650856485787070855744368104441333748412755286433275328045081721873072186315244864368366152026028163338515235685128182108723709512081981696724929080735162126604880744993975733195524380211355962598031773262187253331051277269241330028168475795296601127644777026370516892125309438840517839503546040809648521669492065314123022655565480752104501201035194532202745674476228548433972688184896216355151796819309767531079452290999364890424500375277952566549164367690893200623190468440617449689540078176830242091189750777033831315000504277994888609196252083682827717542534307938722595369150335485250249426965722711388657503891239357276730145737626468701736797761300508784450210593183524640537144871198348451607644989756384315260764210160682491149215645787080623094985220949540681510428785746341649062695605074061856037930410576056072979930849806772901095320021926517464830087640799809231728740233391163329026665456726746882167968222321757101625148999957072846577256347999723018918831856939050819647753249774053525145305139204289368307286584743252503019588680512029172517130362136598593870668063797008316532911086545978792056468426024835224640177589612449862738375874589386300271314198869636845558195539051558364082107590772176198254660024529501262456750332634332921743288411771116535370989442487476490221666211919782190742793371184241706000468196564027529082874025814465312771099493020392516235112409720149440735422555241310841545014149976636227786562096298458186904852491104356811129385177218039217184174709875794426455878866800088677288007226127859064615442075269100749254155404869649872002803011656800347511381182867994390204248146918824457476119992637382641974775978805182759631367106963547371208035296753527199327764050748870415288896700069244879855827571353352076291808755010546104625440562416837788378034607582328855444846289101297368743259719764024639646689554763386978989492167220208110161567489422673790723748870822573654805788447131398389264918785314355520073927375193085529107147258449653786267756307946716094748863739933931895329360498225569974776917239716352582893384753471424634115382975767556394132611855572151099793978976185985403958459855859540866188651243266055988718561128105631717831097694039042863118468957465751233485951320060136900898320401481026636653992298363065466423309517962638917465003949167591670589272544014062537331994192432485185029747386673629387962000204510034505104883313748537019794762132916913705397784097719527264281286508821201129549475614880175951066033537525350274123385216916571089342893939986896467792943487536128029093708416251181717495287892734706152994893927216578208851383101289863055266742998808279920992894801195191263090295803295830847102956867917539066090524978151072996349094314906561704024119994758928374227799513685871203467926815586550616158016915455749351719578620394345248235307338087387372870398624720294723721142187956315308105578800384747764523234581382414962882542351129820365596168123567030112395587499187491822170351825602254443092712560541631762223630726562060717450431168633669688248120159973085268366927733439474670491794247997457561360182540996611324039497705717286337319187129218409083453988021876927285369495466613068092199002677719321433246224906952971206574983816297396591729345253738841097484178995752707787323439723640102242874439407775800944400296909382833807568528896448542756210379093338177011230209365890636151846649091356478756703472972236211432766607571326253991519356754409708088174787368109771459477160050419909642406459310362703387696399509516439221204758226879573853669317689577216725530622971372215541126632459229491528264668135487210400933485871649896264512674721762701739389995384002410078989009417020075814162737085318710057689137267672496205415491479504190046851839083938487465323256230625147248535231495240673320115431948264895149012472321903235098101858299853235128982228888452678192508988715513062780636460060888810782772646272451018725149910119353256419183199500354719766555216651860812120153008495681875877845067943832793758996674013244175905098321550743257983798997931832934582917206714372460367236709032755112001218934623910069011904455811650521693752449327587095875178070327862999260725215888618162456859729098368526918557601421959561708417724801235201863837038342223913014200482976235804965677193293597160853609853312927940349812253720958096525760598496536820229242563940169311250095539784085647766280883452908472914895295464059172762097270700036430139071030298603123714633568771369664482284195157211492407432394004191791869841093331491708119476489711322000992804990054710934709256264405213279512206582941628826927052923990299773472172462572293264756801878963965030075841652359242173857018869142923594451065389849310008914332996219031311044628582397846790281564428314891071241876327434593189655341810620539788096008664479414658800889713674591106896997302721000426340758700816820624106524448603694484824322805455214103859900991124702574482095293885543776869052054694679369336956139027800075349235131730010221133120538958604601055492543691179583379552560898747582604416925807642931559661629554909398914365193881170192109947312824623928653556520931182010328660173096344140788857373778639354051386530921335369116090017235495767623884540923986411088149202954524609386922672207871695901102986140578099353510373090000903295557990833474487312514652776956587442527503063600261211702629866644458166877748776374560891587197191455770394532829730901765629381345475518371906070255389494010320665985698983014862756755553100270997451748665589941175657090289478606298596320447990590648533243482623376661785023970630470992415157614875050091506982314219597686660533655997688408868540849344836776530921632490039834135715675469272329851225872884572803220899424441930797260239514617222227627460951311984803564409469614906799182301796252774606875636635474689184072023350115654877207081342444219855596106134922958861586455110151736697917810774529920743787972551668280421311130041210501285943051893615277681213806116470218912848493327530537372625829525089949518225910796076921544621088538148088850579584071389765640031047418903198231635354366748748490758318937992364383844646105697115462209066013640388290471760755279951551316429291281715564262687494285795504276228790589689881296078945685528114152823928616465624140995413740475542131509459202258307604147327895736670456553856610557911407135047132568251223054615996965821984146494372856311766503652986905262257044638748147404130101192032153379329558394542509164425574932714392504406987247456457225082043486818228958810237866698058793636361549252017409385252221490899187387144244187840298933636774876828632089006948612563993376197297057389457736604653789883222171197663961994008885317085247757562935544079915251744798546492082041062764355418659482469812014873910129938598834134916104835146150954150512209368415720116868932833065893759854668304294042603216936024414107291052799726771369541684980148541118394130762082261628529938116345706454327588812574088839969798065924912323424905324388308908175078959480346090153919948929835662319387945467320095985926296755684669719070080807923132247461216127874210598514774041787409965760949946010420430419746973961587497299312709957697571726859054491325175604360932126655941221200974526450637394771825498806097062197713421866212107518411961384918919402666002713016097760656641394803933454173464770039068436632007519963918701391905719325443983521870245105293050236572654379463912901768216463587243680641400071704744843597539541775853579543484300142008229878714424344620832660828957722585697145341553176140959246634449136239019080410686907984263759063737184394680517732941216699011253437183142883553733815517802314039963903607449430348810584683701175604943966021865570988465917914139096629105004120929203392892250164009828693531532878617624617471327215286605039876823372296603266169064533980643063554305270876792437797471350829871169663009425433129516140748526517505246121945970951192004872759259439602892463360658452134689806682012633566090946455814001757047177537498830643749141472448400298736821919406077707475081075705219212572909275214421273144031170265086723752379128220255729529714623205137032165747374925428616543421190086716801192455323836717529840907400824822215012267295625439433319059881584524589781789424307296568037101519224113563668639776488148554042039656349941550401729976057618914460241936894179793459076577063539177084896489848907338256446712995165930783659559835400966521271464548843646306008105775937643441790693396832569803254910655288324548683684513890819329868546859930352871599993352857334296057070177202243307516003501977475813434437140349940869019219981164480507835584016518064435664147529115618111286854432622886073213061564570588637597315151807281057901019563967636665099408725761533766399459411602437779045304638531579871604816006407330412515675107702226708777328356691890942479469380124327088488276228566566273200346655070341412599605387707052091897488677297548509137507193948056456353897685035971635769820505132740852786677337150917995837922621498508157003338997018791903750120296243206749256120004203805023571325950709921524604128324482727270746001132498465290029913899096919577369043178321333085259092252413966604450695617024380509909633449307314788235890956593389087341665451761715274918154762588179465356235728665983618072574761533497513939309608738701494654054189085387856808711230320162010184395279709552008083462452921914671909591334939242199987666073731707550273730418725915139712447268963739401038908873118495629114432514435290561170213041116109604337661242316779966663592898872519521421334177268286989971558543948916316854173777557292210399772460326283281395736668045711772676060499154964276017592295699912583446752190318864584815456956275382485087095292348504957056194352768571038801035933317007233391898288214491322733868398544546570653089957584493693243072940929216771919272107773136747651019334340911180769368833375850248156614747938203770633194847001532563347657340941644353374867016550512062598558358119803037213785012962038993115385322491026475673432489829356622676588889338442489197710030339334033564226714376244865558516597276393919154354549849935918210674218251448527854119291179309284140786263248965937159484566746637101044984027205063818593312316827617328673755820667189607482609141721105182132743637944398457687611081834487907626532512744550571656254097688542066615589889625604282563445001566702714359488227179907378107517709053933639573792807501560438109691313111180510141260339750413027085958636367164896331656764488751263444720108153668858611873975449843301723199216970164235806189132473215666208906512291719989502973092111352017885862368402276587996416642935024893969785592177717058360803398367435326195758706242278026924271520028152379557003465111935830180548241432003557581598929560997024285303373741299327991358999033797985126876703813925025962979128407341419528298056809410413468011921577100852153390682361640370879518886289479370548647675848392185428969059161194214022112838486137031075380383310554602483684604067556007415679654963077991507826049076688237198556880236515246999276871761593283916022739760709812651934377052331294508432631505187708426329316026048061918846629223124170182850999995422509292135762221199191032137946572364416616338750315149509265520623108497183974096996092295669619451137038912461879846293932733489237800893470215668404200087482132572206902321386299359619753355702641448419997045892377615191459570714693336039268058499506503340043437105785341014253911361902397722289035716387917376900215869435859593596441333649755458848335417525843699664905339361799259648934222075602341817570504573314970775023094828294161156249914440507797149911754462941037501483113508552448624722934250974662523368351311530632772252208167325809802548548850586358273924244528439087056741110268247349507614712618159020142753497718788471311791190285310683566158702822072447592677858119532115736448896953689641302641953114894741672756432973240570981688585936107378553734210366359578791200835854477605756162552059820970609305043788622880113785041784541402073408649078928988042695159971123273856632428352714845395892659902771125407232387940413451977496203032139278222669840311453370261362668494970100545984214337024929471418216191654323537415879623188068558555781817210163705475653628665852623269414278291123528472496928071949401858552654157282470869724632354765263786146693392187670226021981556373391774163599830003821395711473239700837097223562920586347967449161203297175067906395983210717616586986451871626803295438862444446534725838969312147085777871261588769134087812558511508363276271693638129745962422962879708242354197534345724649395654558776832937108114785871416438104633077877415750140225104989378176044530321705411620827213488004652511437292243383264249516141677931510414233327244082274727235243870512976509157050293159000072654068314597975681290797444119016089678463319286312890214825911636578343491153988308926266984726213955218138069643911959699276597419499435034650826651779390678752567823098423277223414296626871146181270346632783745893736605113418422182534207847271479603584695265389994136110434410977585185659669986060903858438041319379989258260420427321752279905161467401014374777991287973387569572668181609282226465480805959736565855555630391803199015720455917433955367170861638425330486023742226974767531270173706098806292849886500098251223527370666844085599340627025518846034960161142600904544046371429090341841710160680507731882181575727802984168118275261246924762861599331906056414656620123236425501714827966344225826570951550463150935291720102868956548890601691210501560614136545055316285376647273038000378446777281864026532939196383840964164186271270560733614366581361410228182443195612769511661058394417513989363125356988548268369748245065765047814800951689630011060098883210755770940614185651850446352253435980246261877111152518638311566677704844174454578520106942148190430324653574096966205239993534996560061224149451741227005824812856701990588117900476325119053835674392073149868597266025768062985741974187393785126359974398081661249042949592689264333998520741232738967611187175009981179490534114052438090984742714749244938721591389302997050529148330813293146307865111928523398631582529345293266415980926480527639947254475350286531482658909048367413400443595875469643253520053936487694442111656832893384709693485313948088705048182133508116312819257999015779775287381788819544375975448016883857668144002285466098485322091673904670014548186651533604924386588332762338682520739635928254061876160910531709419086381151021704027847778365396949506793343582908563507353251902195047170500480480518948832651942123833920075392195219404145108209155491254715290651159659655068443027845711645663565710417962320294730896182091804471605191720206508732576945498152588180871428289166002170192938695152686025233022604681844532633580617886720543976785141794708834206999651858756681220010740004679920004915143975420361372232391455651823208771494608589906711306761602479982078465329246539374000198928154843361240673373677826317247786886335214015476779360835589752674695056868595036786575495519212613180479161874859396314437836000402392053468682161571971229254034947546585663389082039797907236217026937504197460312797640790853390942910137312305345714248558329711039232441065182865002233272937814273983837922116246332049219722595335459542266489136282480840659722554467095899168110645060561261214660911921475713805743749762711001116551214022744267748308132356684867278149687508647405681112664317069070259564582607945243088262725899963687701278635878693885310092164447972180696182129979679552945444972343323164861209287127796655623320591533603447066228646689760892211627096092271504569330889628665514264467798200521312163984768822761165750987101166785409724726671732995519994495282728258422988072031972026903753564333770147699576156248413061262818530264825348337584868062090410103516656009316088565423161951357800799900350616525670800770804305265500442787641766188779176351879993192808348342973418457233483305433433568309355789963907149140097133499918433352505197051754703387483918621441967570642941226192051228436926721888791362643666352611170750287264807047552807102734799494912703610944222441209481779274061575126273439813071181635795626430216126331287235573752965132625684382776114369191063650086702986292882606099863768526061543154932974790306801995461094860208133579859908417826133819010024263828610046217463303966560780027067202581645117101673310351208675836343429977941206925732222365537056632482456389455857852924018900810546928802704315362789514758292692194676467753475436297664217165135987333061724473424510474625820316879173495636767340233583329962345173945747451516288021502349166395491044907589277988065313581307707261322528594967956177150380900623752601105644659052335396528440097415546114448522687407324867906203711301651600808608930644987417437709693481716674807397751515491614532504730833201627118177916558002538689514487629451265187093027015885447168698311261091592036872345224564532488118117227523991837174725650127373752374800834504262513528929576792341110180072482918683460183997403048983885007740791877736035120592770985570113233411543957173380772665699728111147227272441698182274264623342889988346711508684335679977156744700655243430222498115927647268686829199428938722499095188231314344276426921152667661642002635386203603496256699813341208396569232674906260008368513300101682067092047160317064339465848510556711692386759790173665908534047910721936769421006869876314199637970658715009423321088458551268383233937355878634677349322043378688457023406540238073301230095746354232726145192750361342420363333113910244653869192611659714859843969457511956166080285044617216296329333663163397258936451829134955673095268487827697156851078533795261211952610713654120575651582955639818798015756821201183848637951106542577824387980517817796233778590702908822491887219186047977371598452980632291282697281435792713737808344264588211414684138664564763753889496061898954910107953181464095151590984035547993243435691191559372311922862274864451304100464479349018328990395789319591375099758363488696473629381275832578331913586913401675518766822846756083681596999676550733305620149194924694374043651841512110921458541944697099358037968842888268194121435441983657699187209506118193156871642627651071171622037916695515172480829451372425112447348598471962677312134022954827028853004590790336102028442783191669164922266721218552594906665868300711211480468856954282751843834304592849965305018002963173287097724712678524785675001554206046177139806498566709088187729901412638518152635934817714527731586691091248352188786901866916108435553712188957203902587438768317661904714006868623060377220401592093864033767599947092467055320011774316504401845995573599751207120764253071423584878050493538209263753947190852094830749171119116966336428529021758225379198914900913948341917441344175959438389118824421500916599039132846925573363058680001161432530859599326684364629383514825579399332984010177788388510164385425644195328230806220823252172918725552578535227151116567062862177683294419536374052009560005748647339293641180451870684682282479228084206721376849204303848039195237401749312240174566774402540250809144182475067176508149710298604385797304387089928302483547317303123202156644600050167915785068545631438276470062302966822194737315637062092442973383660993522239956757905105612810978561720701517266498492752144512678011663394683376473091310226171698936027967842852013660916416146138541263669638912294565679621304665560509460698491061643228718743523644774592577692074713983843894114921209328887684035240360536981554552173875437392358014826896203675936597399659228283249379598232561628726438455122007747849380679373560337655184576074792875213877959232334860948767391532550911824731708028751295636350444263357584440576435284225941172485534708331978539211196825602764306282926270417896081333340387127409482588650659012389087147532694820342126696355547201053669852903988534238804687820935703800589256298342822939559685310163765080133402331700077404446875624124517945472703395585089372460471204385766858503150313388854909167909558140239896880735712416567438529673187663178417821439854311297767480987880592137205273829880652707196499274521591905376556543768879131040737199169474076993958153549709784538122347971534365311719252357917137268059628175216431525315667650263306914756152975223424920401482993458777808587799336653262469396227225036915156176090170191429986641825127158507949915534058985732611484303493526404938119263799441830740074857706928903114086338003194529947234996966361105076041847557826467506979669979644289167917976296341689112871001218242750726695862536326909623173331898403187366410171189616254533145061627504680319975288269281002569901625337759894040668096908476654310909383267259898164543114633096457286263509327054162405877913307966471868625929551253389031781285566060443700161550719084649298855256963902057302865715648359658222661700694497394209739736941017484067463348758794849986145856226422806618734708925419873171273181720859412179403259144931043757358815000959867043190899769787318115468808403757883288045690406147133931720427608696181125310075002808094862589581471925927131920916227055021533638274005807877061085191447026632316006863550213326437636115967366740566985697134831102933511470933038724354019423550027701546495585574183838319558707119785360153747860088670775422676744817557294599641238824059334039822890789517560366321495031711373315069267466525932189357275852609373275638297984331199396559212267865105549962289730270391137088963908321638505571341690813645212014714923358587709489740745571620424101549546832814965354681576974849351854544641002951160669054021417202841023540507678431105956289813790017211556481898680140834170766905149337955660203086500113049814499842993779798444260808214825455901179798445478713240079935683557436609285501211618962333684524489678745152647055373144365451967809451976905760690142725522438394569700725607201784791536331992672409944941439766578936399248316555095592197645998096862287909553671021824987606289178143549051814648905232428219597805666214877133021578213046594722561224066682064136493111327997507250494540630778174222267744772062273232118925783593034868989321605907016042118142131327480867600118703529878648193466980347254316035766564130222304453186135604407836675502987478068074779541938495241165508299037876462436935729492305659801027940655239842844490178545291397452537649626144113876004271569718071850604576708003703540820220496073753718685133532925654198347074235495842939948541604403735012378359460304033320493253922738506112783645243722646717716903738972287003851226915204816747527169365852395553088545443429470122805275638652690072352414955889068824000827079679383485878692509987230653807278419874154329691642715847557360385490252607439009674989465222447923225926010467778850928523449378007938734294591549331151405215442720702519217570964555874222426548205650072264132995291098069457771890453980512863001404583840641882120752884153182584541616965034936170091148402228970171784193618201611365341915920544715037093320874999743611084697025629137216392670384682288855014923702394540020650403319796724483789593372853051397966106847989704731529639153732365486383148581573494373388768422506826090516432090306090942340347549497266719130678016688031339742302394425885473805628720287830458873118165384190577818705377879347429498192211668157617891118821242345675903559019132656745378092399309085651685699161196186057715869633397886192917683499779905346496389124199543120508416563701882254235760940960416234237508352497717734076580459172876831164081910138842284744417243951691139274257723760863064730557341115374939002834734928067745400593520469559615472678087650200824555483691592419309352814573871110113523059350086253229400367626397307119101248201955865692761905409922907007758754305380316655968087447723183796025562384794990770387715927541508179870858572223392383469043157544883847314187651039528347470110680122592311854112869529804559209166424967121651456811553891663326711147552888378227715006916714239544216284971938916142928247669135367395481457266298282706972168499150874924588854559733200678774497353160677192312856495059391944532713931299215584031048612528218621486767640939243536518911749142655911546265952984256768452865617508929964553286740745606566165146356074921319228618588587192816127145094491316233740943450204935456541021037778230131339987157651339722174391585050742174447359595840998307109082990792541462877324455222991334118973325518879128288288557216350500556819334784623259774577092533822913460993188757005902008744955193027138348306407621828473131995744450943222553857512934563324748654609618070674890113061940525741365629641693752518456462412507441839178538622503243247853526563057363664951487342762555875906605811115970564525581286042753351143550125459011486965923849984926173670222026581177134217402129373210847207634532549415858758508230528065283179946830795277397169656585151563211088192123887885946185074904588562286345564902464454425798518958663918279224224964094194463061296895852264907218368870997102289765260242754909388735054152180179429789578968116798096292985268104005818492485763753424132257351250775272046808947042141118109150429422550111786081057528135696019514517474900418471265461759578456739636941423291609116390683281243992253765210465399064672697646245205670629296699040190665582952449865180462540875556561416784141525795372970702845639011887728871983265788663616008968067034081399151695148500562491401408259307898869473198491509475289210983036432528078033826553337594502784258932368486194016434943246106021370131583856757688972608098862279944482085754157369577675700100441566492180595108866219718431092984833460711751082163184779775741527541363206076665744764790276266552582091896732862848773293469119508484168463953513781257920212351541507540210128109572353146420745881557701147135107481648868605633569939100576842325492603046930818183882750594899461051895466402261559940536022036692664278880301221417154015260423300961013977741643067232073688577714202987044824569822244258138806208981166849689720861843865888606684594248560256880313945962824011962437216792777606319043183857887700132911460159222827780367820812059520088039912154863492568630572032416487233633847476519434215916139516948690922614924784603885760599730199837603691042699469695349001096921018913768130576166563435548545941431789704202809991037540250123134556423180692252076077379680768747084907321282289095353620245361200697415300351186599593342175937099075129370066791296676402249852695866074344397938873376696981866294056803209738601724316741181151470161120455740507400164851509116412055878009399882615418856592685233277787844909531516463300174318920971759148312671725046366490720647420260884830268201416284678919522168831666886584392113323197709418145262379831938893042535092649411508829942561625048335812456012511806012722490870145265694938996120954562093032767824102337677954095035217586026356039109378852545417370226530776953562203865163040992479385596585477137672954711092460230107696355761933546557933545748517383793832868613336895693250539362852262014535580114410020761540278858105614469838074309480850230615610334828613728732419919296368378058718911438837708119879170220681122237334237687483688434485195426193111705133130528215051531922945752994170789348256465127882500655732952661886415458145200729338973544141645037135799369811116752646405453563405920709634426666245172032132524340542650687767682821669296860771796117379556996101354327037911851549504273766630373731136898999433786853825402392426785676037121409520520757859015853870920436653040375425180661638351372227816979255524638983662246608451563251761988843761381093026425136210040518272225589751207763916795044645307087856817848355895055938652150741604749458572418334073545312827046158487758772670058291079084511999829344120539024560825699253818265063805436383950271225181455403720704747941802647904913033741360231266040374820692707018761509199178263991490537129602853997762136878014841475563258944803079691130688515782459059987643796594436115677962253708221198580718962332814213403645375863818509202617748404992717103871715441899193696914649813258890861979554316435846882384620095909605065766037020603323574282758723011492448584048237060619820531048946879751507368257047974878888211640049777663002810275996596575290112310714262851863158679324228131801696155725658068158819230902709407328181237780817083923205625595667574497231853617186669004187019213834817840233563866319406282484448752465810003098213765373432036599490888703801250928049762887367170777041151761454746324433273503205511390570177349097941748564575220831791194576645423804276562899333766138902195505683475057508018231082765769455942554601764436853261110922510501964833835755923672478039494900852785135686422460189191473392431712878961034825241883176566974925825491511673830287501015388879999763930412648919677457321019874832039681366857833572999620976936662538750998947973294003191492289937365382169642723093304452892603568188126436040040459782619885885180313798671136930680674112543167529328865475998826446430733531565978539747567184576513429368820524408634329009052330025974233403205269845397968685218028099663886830684915704285705827742160374715849844136332633243945374443068069544924703265605331693555156997377170303805963334171467067756374343829224762958491052915141217004957237429286569559828660785167284670291944552784136231322414587914510042343201091145665031629419869758580698105951496681608889419618520909010170203748182034943223605291144558274938509986462015848764485802660262785987693272478291041236396537240658048569168944568574339892791810311578004041793607697549387439402178205408506388548091697880443029026158723859040857969444235112553570479566252226201254524093703087158133821252723846530608672079583214393873705248422507411699571738507307949199925242042125902542900072658421957545437941592490193963407700609432601670539030071001688933267846915825250377834392393784706434484682671437148596321189503071624771503268350817094952192634401840975757330498141891600945048934096259186159000563191341155410887892036766531772318038844228611553934324266987133077890196297224337479647334907619718230316057425225481649443226704071534282722654329034160099520033374055599562114447656155045907812685412386644504523552078073693439395108502780815232369547992632329255526749887955576393687029308412000644420855009663912562241248874719226356007121957466179831320795547597134631856750077982767970176664950331934206919233182194980558409226235338092948229091972656175846052990240239540624234369012639588564453043520248589665203536311788378347458255945813334575880371596347784835226517040640010784339546747338573419879087197482426490963630165618753041926019201416214515963717577794538853929606370289352940202213537336235996824623662307471236241057315401280760338622643722191844424362443919623231831961640292421621881900635566966766094262139061284372162229665518417689227037267746290548874702646457934610635796238736756682401227073189777835959706596484283713323486808352521018951254755377252608166541123299724862044246959604163482911660360706324694957628803101139635125384405049479519371123195444711216240366949492261924615483290174165050020835237544719298812661998522594385894972537333159308053831310288870089539831579349089726419222908510384278926999249172190189052115512650809285628598596332208597642955318629337211388591383313011360292723392760161092917412899792987544605186909908139899423601580745482046550097306430714986285518830119069302176341208403458529723695559847699245620606040403184780754745717121645270086584294232777830576917053224830605310623891072476777495191089271626468414085676661698768278919079398041330281384171341883108284125513791477954788014061022714820104431463607418316082325033861184998789834789106760982146554587185685096556774765505233513550337102499001478253594238386995350189410018167684415807968582307025799486748624287230327799444321450072287367245795142123683143338619230038248764859578233760126529959818580400957332620574640096332337620937372286097129432685227249381278051958350078585574513160774294367705441132855681827831004615737559043331483384299897738973511940431367907234233275058582885522625082489525595038014370050650694495880159947640828929609870960755889482166173322314198378382567420515654548872440095494546895362027328173512681703598458960776251107218739720630489482101300099929380992304136950927277121273023608305442901883502000641270071144049605409059985787310298846855735745560563314747287450294814647547119885007813957929207964948086728132734488150509456495179257398026046043082758367693196158667597584036016668162148451135883835161370119414178567880903928535285746026063599023265934916038479581739748999838310211094374252350606131203204377160450854199985097729441855630446717599473703098698424052878111107402248513705744722490651942016036793119239329688145492922584527899016086334227985037985644066077674670809787748805225964310163766122311668610915592273222123308188872074437102050085885786153340957271834221017927174361195656284436317115841388765792876862224862195958128675857417199597369539747450303946380987832657324287113690423084118741040031458871844924079379288313337231641711903118007713293107960063870751667110888217638435419619690355625156723834021102357061658668536749971243824711564073609275616426250472749957028485276969425097663335051929585974053567378559258178119708041955074571358392423940325752071250277980475510835568290009373099414565313245074777366959916975848506350053594065690315045242722745850147896348105667823096155499274173888285712341833743493077973146796640752209318063902265171313422035319222566559332308345361221192460297929809261111260109185740986966785483130787068277844216436809826054663831125011648681594765830374670914454400599458992083844335118655822602486734114653340398154476985147564095214655689535968809845846151931983084413258666262937374418748730254255671913124470799885760058690977892145357421723999307222010925075820261263877146781884004411129181056952551424450884614546570353837922815204260881422770117163928142412832003601538778166912667714448942689890569938666310773380700101084025830182635586947097914316786630844406003344362796147081598711293751685180891737254237997309092996301697301973606540698495233290179371298369944927136963931824950856754641940709907417259373528162410923845257231029920960033421851478296120054532701456604299721628099363346136187171789893811993238108060096643110074107167736588744231876072357085459797281240865897551938658631060239663875547873902612725056487826382601111987524905761025247486555410619449724915924359406734090392417977037812067413836362687220865701958405903619069577603066901339788438665407266799513581672925768474286707542294217229296207366256471876530876479321137136455319147237942212930224379547555638377041566762938856856807773504084148965737206961224300460269522350471446838146584556428200271871159573326767562018822415169465281568764446111830862816703943682506621956565220890625328507336211717946198670747814970659939387440968663037696299167899009982115571667411740678882249705678338130558865838484340354454403164914261982332801730866546344753348947711948332263963627902476345271691387976762212467225877536116252585358391409287721345703632628367976623202797783671790982849069588659718185975591118416218893631543338677860161670102260034788382977537462263515227677092263667132684244228421769108169916541450285914345291104542336178264658994168462174885830928490592019436765697545057589552928937121715807549160659058963537970608588127494780413969786905603590439439624090428920270009444061566843503175201785187639721077752453787483525140196392959340752655055792354215343499538294632515615298891537380942402670682747869377377132794473029478240731544937035807907286132427212025470308186685664090379922781230687374157657525963874556986887342316828701980991692509533001253699801889396206668020570449230580408460770137148261973561911222786567344351993227046924116667929809264770600776048672407611106678692055390062496547087461736131148762660434391006242138822295989505610988906969022200085909139463420077620557850753151168037610717042409735607472845084418486675363952791042567982093524457988012761525877222328328551526552598084796109580671922198271911286257361226728898312372343030082125061711729272548411413043305863210890925714755199967135202870443426256298841415621692521675287748560876957253484905195621594082882515617254911134759625917063317171442631147805459611932727736298341651495331549092932177035587296548448550811902786220280768481883652203956956602328246144612243043764856820976728137682488941322232992003923135971089337279242270122380145357213002290118682253108113191473572872267957411654868026938313709229505735112864242752722493772109742199590605505101489979901341161673839583127717581512803870665867349842407203075580093324870589264148650455659852580421607823495676713873106394490548835581501435091463844925762427031491402028790849912030237620583108687746259172957250789416687232169607235078650276770897245517139766489037989077922345633813185970814635963956677126027279326529448344322580449674439395091918492110704800187731873303233027680210794198834588524160664978512343093926396525188867418642189815380260388493258510985914873651561982847364304541601331556149464294617344091474272837892268343675120374776390662226138047782735602416665029133739194504058985817801409464217426491317961639692789845336623525778988920742867073093998109608128973196142697544115276082123107933460617540939820697851546598638643932841841553596494716966843265030492951749847974772771539126084621440989224038852764636662681956968272958812657575225337426237361265474378504572831466713400439240159270375203894285351316705606447324215522169552414988912179059747074379486474748222985041557224335171105240525763020922795427299109853929893270736201682264472064381068756794386978618897693625510107991630652806928666090317493777661129154527112542364590978135122744016448342308317509787145527611050880771661971423483299402024003580694852551670000431595629068994446582497744227356764264916029804329112366567251315630702741174562751818172267827192175444411063027515550621438972677257360374837571438108797681251611982011812836487966513867189844504067861522945665061687733875359832622068385978165638938046097644383376198769771883304171422154785558803173325011836429940479068439573064331888037770015810763767769140183308582113403946529567902300611234826800045884272860721682672950648972862850291486438599126783699946027503344464255258298142770339293863004222512184568457880271763140929189361450685717855576257907927475789032249271957520257913571031980910288556944198390566662131534064081621990360172097071433090213470171590027174650725504622190433648253807735771569656182071518593041952876692057142697591132346675170850715166361701204242945232944541490476240335806180329807514855762199670944403141406853720716843942085183294635555356048242018928601991842137577533008009333092236268840781611687101229297927417974857925710795654856407032497121846960227249649786416977351701488995555841514207031786643654014410169500820946476926917561700238409341292012354827465719741567553668230038285302601043623745667026633072615827579991189769778661621804913187042920567833856735978397466948392088159246868000977257777166578641491503413229343675783535878426335291505587988615826644911763197695907377773847673465699876877250156459664653155209073832296596411377198262372516409534634092557601562650089375259162059111662308855688841634557372778863625135375189917761698525739502425896193888834692957139924832910755206459686048706208273352554228374618780904183938144782255062860834511558174450220945907531875594483864184719066636695468283734597149354986677088595346175442372434567783704305283462746583225554706771066639650227337488611352271300906370681727325317827848744633499291781611566101811480948873113768342694030154243097564816085904555846960798036488960122413079944713172933961880371754624903630894614142421854802217187974984190253819883083583256985406682553761868755301451815142782678816043665583984934467033212814669399913043137060295271931683852068165511172121002316551258202653358946981424134167475213749164465570876450861921573382487453272019265996056801440758749944529183672168994229914528816961290623842060786175810420713978341385000866895012077665947036721031371008484622915302842931773548228460674828937579273731630932348835561839887812667332141139562009137788324802746404366841429545495796848866785899722747390578117891213660511636646705823170269669377790579787068298774165212310023021766774048124826297949517680718069964508920145668774070026777234020503527751889230781783461246655442566033708795033773847222626812999361369504791370558411511649145778718879457305637068859732020047712566315809941961730333798416457743786508235576813601028507985910263897354866459046655676984972679802049181392267110555827534962551855719991905635160971674424375083147595995328073752609941041633408504474851921230580607432329892106881346086098646323861036189083915019676531353699329350751332824576399781634097866419179756015750898467709394290387031533320028551183995355403592960626199433586980625070083158993538987448006780575115356130609670539731965062837053293823332603250676807492360533400571340404828690450087715051322626878268837310617053722793838084761888577895092161705234958851416374704458504242227284552324109670620910062819215639272958173812247440977463232127056581355955531419078545503439585695578275035099414098372154447129885586600487032518706133773404716840348882312046627350290470357935143799625546875654829447678924756483211254019411414104140243652793355749701286021975104874804101123706774249595695171018790644121979813363395723910748276276300788948129510596156784022668048571541890527313253661353296201962547280069950537661929643630071504770780394070730644899285406793741573304680635526869085625852582466471692736245446181099721368331246737808693569405447043061765176729535676571312979424559406385159299489523854690728690518661909305996835347283943386607114403648848791106685875692929036201237680077631661552968641698677995398392671113569561141289441491340812384276038780010088386515070994286996179187108878861328396653762871722778841591334257945357865292453157956566335661456036203943722259984365631979698338603642950449917099136691401929634857941238709089892500394349176870184857258715017032739488256074652778464405480620802827716952779392901955659437421328630000628676241213894061780880628319909680405786639954053809542066562841492378215787314653574761580159577479905032750579890442160108098626283346802246244731766600200991304530412256783921101849547748208072090393446710307007703548780843103713858924875552258198917531763847068675104216051093046560240995726446895584799254510690832569055320728163759758922169450175105893957468917180013140988393230110960539274721225463923696349081174802321134273229836763260096623105388692733663064163466763243402992174119134549652336091825673039126054972664951070772688429692385927716353129630546950141517410969455005036275931915231768157077679684114524888955198323920880946114009748425067892061679341426947644707907327759084273394434667096279091866609920032175653772425417411966900034050589285619048476486601890141424980303680834239723621226870367574078691616310438336380560785429069063426716498038530351198671816880812830697898704524941567076197962397324921506096207079328953992154801963400170994748270510396454980430725033944973583215216169035879480140634294802121632515079628931710746019955562654526717444889605691348784743877985672025274230090930764493068835126510771086066132060738022454082937648970841059314999560066235587987216940260588081051068709511830497434756961362952170169428969952063260210547960106951305873371466836611650013466776313767038492510414881324369648591408586857140005104887384071608551467260674714465586782677829751931566887052386339454524597277521833418123163967876746098350038425585909946503788249958935595320939837412158472310886744658301462803673232678654380656890172183467182889799409488024106489242516768443519366221729451831587269213067720575910421434155410980387531752748142151902025861594519556703393844399403881508802093240648616599103562104858171188161259114048383968651164300912948405866296841921597966083409256551998669884383875482826994294678436068162336507468745587679194508641608233205628914662733402441278854087857287447006753861158893020439181508258304634121480415034767321194052930304306226864524900037084891621388811066378610386067668507579651095985803075410781943273780456866800828710871640545231300379412009505116660580593189743335467042352705556452133461023861005122543797569372995070642708601145754127805713185394028719488125944003796665496250604539724659533862276376806370800937911496757738668981707903225871230765192644897009357714815895992959903906580125130933988935721269016154616457910140455049745003677690435727000676006272820705490790088543434376041443969125612127692222900523575404900451219116608588400066021585448389334330726926861315165542977892093876873212351728144224336325960973318161626890473950719736053954050660993592467243951123776724301297674985654558897875448501982218507637077565073495724367342677814799008335346673895421944897808915420127890927989645376900763184754871070705054107492943368652483665478264038254626082002823581535656442883462491681242818227505487258146642284233152808320679711575062823246169249173601815862023487122381842969059078669405421535918166645161543743896756954797842632536996135130309635274775897470210781716526913120578628092945844695285905459916739298272508022409282480036496486915968011675336907931424158548557661233929990240579699219548545336754424118027520330003539975014787128576954477526008327149067055393220322932965030695906847618385431898103101417952548914298385484700154771677524095772377443289269970704246959089805068865380279480210015364052497202596267996316742184923791716904112809499670385652020388900244653345654918285649098594038175649695154010446998305619785324310894965538282351123141392325049219958334480559565206816442208696849018198268150852738762435739541657945564340870461528258176690105807532806892116311390660608737577994822392752394459442554048447373580698064851694545561813682560838971339578433805586116657133906423229357268259743617142874730204217714357924687199156368841518797882138595402915561699852039938099764775022043738394086294812073107837871906137944008778273616092453520152371962256040895474809042450290372666357648567559832457755390786379619643280374907818101908073982980458986228263609932507406687359379745934770733645841779816854390314389124194822685305834124183263385939489128214436095952335337957325489393039973057358144429350887866233291764807345811975231651933712313779600957120544911024622584616791477647238265737945579875131356708002673162373019125882622368366897277846129941985882196236688675754221321124519976358331799430171641096220332889502011785950964879615982995963456769772242091669262512385764766037728530803448404873787446189910366789325055241054273075790330044250810640327525449327635250735706145466082873581716025190221361350210322510269251721097265131348412806882327005674484012618194772949463824900645084153431440932738565293300509885889175850705876451709611305427537500682628735338193558593045188085127637902029283780310847667040640571041242375150662987831799571756034134610843418708876979931869723616018258628943680522473620668677222431927590361046904305359264160723825681201268223697215913173451709244593483967785722745793861267848985953221064012321584712407958400114791921062795511356659805782875067901963680409313983247158011010442098190683857452769287862416642323733017316588589615600568960642668633485211891840610006938229748102076804938225250286952111881056921777426909545184832112243282626811740049847109501102950982718314432317541091445959741700584206372007292764320302475279822901972919929191995155817079660617445858076062573956616547421769647822110450942953704292148711999588051377768483218114639408316866622003773375131408994978330613752263508911967349172381065630629816895274922218700661371577980056777950367061741934326943845588829508419850650147809862823776546533410073932700600845203801344236776418973245137885749881636032931436875045016291312741277664087521224296846880911501395747853811038362313175669675516017290504516425576974826813032156430092323755171835097661267499321270039146161289694553533301405359442129039492687178436638957198427411313806681732681884413676360226913481936181964565332444720664815499706775353964934205185973810933331371428195864221648078664180731842977630925192405660315874698840881383361688313489939549011688065644435887714826513367585777934434801620886465090961604833914006596715314422834986041830076248384746645437151289746120800690637691729484779011781803846819842525007935444521020460894581524129554785454623957025844130159020943763252745846108300664116030408780999396809843712644396375652847882360147621267264606774028375088749940751158101247400879139991369081700958562798717318287867111483954622918152630225432411602324226493243020867016324716328754722348527565138671850962237382683382990787742180069973107042479019307106399094493153294676534639399375117098421493784627322471819215331817008612395079814238288965047661098524008604916914393658593580945763077175519539196465011518177152585905444815089793300286750961427217154934918479034443620230160447285083304060083750872141223454406966353414725815881498224592833047295683510827123883169258724918409661168520725949876964646325169069445712704288267686781237468483170253358718343361187670913333877502605615331305040456764392436468198618285500382180281814813397852297214520546010505398740654466840358093332900516184132772143091876267567094179265198034881481163303284263459069897179173465683708415585653602819480693955060887747364272822613826170481189151507127878669095012354943225512640262667735951117288990043637945674761560435938912371825070054142297426937822776169050702897989609982202971665722007582825999796156517744658872522572329802143618787136031415746230144261890740382515493539415163884656697042792271694556090994945527137371211918021383428628487257824443502045942628879464191373886263549895390427782612498280099011200713492175883848910210752649105195390687960494418905056334343862262416149670837284066464183768474235609645514861510582078611345779427174669644867160411764360398666397519783907379127050620485906406678759692224408936909505851951281984186983422876795109256492586391755407512776351199821551607496772110735730339590658603733853891796174653292531548047534428772044134502538170906983910518919008920589436153709686636591940985955485098649046334808633632586647119545214567994261800073470201512438286060902326818011825546187365917171658761126539463942226059575775975747368854381560680376290518364656297067769649304562046690154701325856862301575672615671770776726750387842957516594073122689306550584645780220091886448523366287229553597030837493911872287567587842240102710560298870981736380067335218091419318149146083312583044961918208740955288397188666195819446728276891284076401099432835145196600790038615844386193335280278708940474894326821892617374299705139880436485960606340757707239599487265986307265572733467768176095003924034211802054721287296063544590908672878033795953901483840206726548196684521500710992022850628882783241373475961387449860665742264426241829161045251095334386703553718008501306915590330102637201418400366610877793926212204249089530880033878029975162413247263533610376838221298936883249645374472698560576128111476096911561985456082954192252571642177987901020628711075214233997754431767569869190279484310535559438103324487445707456936637022120042825120348044854996122357105905540407988965246738150741360762483345268565654533159869141064529900176179684235614060137713469522313735044893059886301114887082218684555674096670379717097435648526506173740905830712704226564716145365449560900661638330188924560702016275718599209879319305508392025593480553033456201596896519601885523605076816723653435227759070872527547716363324406532367621000959561109470294695125660069667344508714606882861396639283652293047784293160284327676520282513842124207373148677545303745021092522178991645362825392628734353372541158656361903697022562845322222535356264044491031807721730601159412635280344151650596679064579566767687607156644324718021889211777718529619139884217022919954383172704483759283572804406378171949343678351260478546668457947892179149279472418420619248408194455342604254829258309483058470607023358628446200577427699738500277837394891067202216928899383693928634558685086781626627710952431595507280975524448789307364384264639812978924732226820253845538113411360231367803939499809969052551297404217306080354333906188969635082663742002855827650064052424483181800479703945257565710159346267456823497306862864303490812256167268812847014240355118374274198765329068836519705727376006947937578662068336155778139680637861302198229458393596561858292089272711479848275699909396298842181285485200840153803600665496146645811150393930167352920344141751912213230710852171212387182331378303903552338715379499110831328591491944831554314387259778913635529615429518715875917844286646207399480839957282259661878974712618852287232099724745246105809600299623755245285898219060581842350038147346318966012775133140404253671149721057022748622665093448865041150725272177719903734924979597929140270718178020367080898211651644648003367671654492502773041940435892879285961380825315829465350941489767905533862358032271425528370969844693890629457521945358614392095245650605865391768506009125729013192783581774134338509624792492717208237925348670022189195251228463659684572632169397070661708865076631006880665370472713612281909292631606558221938467615008264938869880345678487754618968130601895022379376133864960194236012225135381231582797532789017212002240991360204312348064503181880968456270149032884805253294300343734551343457569650682338310363641335218537129123538166635967481449488320118098671635503819365027892536864738775817495279267325600881589602048020246394653653319529790560350250072614185763310389718436051442060479925817618181620671114582975542593663036343260984612514340142537636733303398880301660394321391232627095073916350216100103397811347097366814901993097451905844817337285417122268932203980275232747629713917044421588926701965220962873233002727084677342874859544288188130192317564758680234869488500947934113465592672893311939012525303888135558335452676212973530538942574929545122600556720511823421218380541714139012465268176869773713784763468820557410979472127355288343705065925885304853869464939040340257133851723000979179264521543732081214569357443873458763294089620065228305982152262734086255429897837863024307992186293999555437166791948678260042175929400482094471437454906893061297204994691110439335359404254909985888833114225201051780123447568258343695473148219149724990262953187580598094558359117709521875082420464507009777085667881894907703859097476835524564568381039040910602514075396275916790636600811676121628448287739228496514144848515374238091198080313322550160924057704230533765818781267113104562165354211708737199451929542530369385497949513803178995174118604540980939066391225234671327430093167359324999567395659248319700619346226111210188161210220828942994314985684231085197974087918479855271970015211340181668220112642565220966989756157238523683857544869168678761512406074160519205240151322752389688375491297005215765133905904192620450246544502758068357420325818217212134105598325544114970371563769526063916858225849823123456002251235162047093916287599252318568286012859355127511966812150953060576623932804525389775219000728301647875742345406602288748692698481656316813872452163883570408424271391579058097214784030893935504098982854338623585402457077066750024001890203631285267149669632503317326811763176838145830349738116399973141800007885181915523820045102882719418876328222926781374659103274328315014981226530823717034631026322948294978247371099946619600203957996774640297101940457720518773390980125840205883542119568640479170896089097062284592080380543027335665060609958094083450569108383667562952451909316534644639938080821048826439450126616875879286514487176942708876160838892358798022945948144024446415568338525355644486260050345245651567497421823578169519234671158346149854115263227455232932847099265209537597677369115678308891914808268174414547210584625911987437409360473286885584118803521359604837272322510292421120543588870416011567453218633944061672766961989040085564772755068489284610849105138003136169282762688833000912150034326761499075769860690414109938782748952326217963721166271139930937613349542904022573867957577743065142075137626715652203095943729771256765351368638605138166921158680174174341410234100353620686702952732689833979062560982610007625117880309649687980539977171388266740883842414244596285924562132564290723110690459183001958118988644472550391706967758248178147102213763480028777661286026808959471634615304771379985493276217316006193089614991032875037767566086683462752142642029417124959772525520889680119051886145324358248004966517405841172607713104575887031864243063313887286712627933225914311250074187600941919817848885887859494828439821250713872597391565436627855478409226016354673716736601653645109999496207157675271943082393196248227923652824352070074113995344910810794553392667671014608647604010859144304814827946938480218486803230656868064511699651036336981468737868276505938013038460899271183288088119086953485227497766701087358352577348489903098565603844621614528973707098195192897041853823830538897568841895825231622099791331818837964492845643056517652470209517036881274385559539221148943061805631952088933242891019297695374595761364355960442561128574151233445796908566443598590837243814056851628402167127650971643270641151074358937758711070049111314020807508419503622530397616886371193542118686603646005827061157035780037421799154626772557358539229407197315392921273552522962121516552386431227213002997953353086353575777032916980190511557958997565066178577219863680280913517669755653108392300370311794766606490913669945093925932667381785473286594401015843301118652283173343934868647968305975699065062347795051303448001916043844109356005027883927185331063586967351603445471445507999540552971177907573023738740224406741808538067485067226370738591485190383534224042072628487999147557053244019663767587191365829846680769908918703525513320849681875778793354295591174411309555286045943177000716579977678909913660713731394736618599954932202125596368757862436946551104501315767798481027150083584850637357453527442137386425918270345215788735743576662154741267014248957445378200845062843646691326652781283914376059447961706585861307491228937036497592070515380909222312330092243158899893947238727186319569563521779273518404876709525938075736932274534489031634197758862577516601388977901906681903549582730109867107145091353709108505740922956140044803574484095542624476941887804832310784954436700144175626092840238376296308654630361034485747988076683302017521812389044525627674482187681787116562227264523646854298505103312737691182892056549322621432019197109801260198063956443217734195108354457296893795919131761372173283507287332925638799777367632734466063647735576844393507827981619038388611176411121256715112107252174654594629887943898117263603682523730699440561604421199027912596642036777192546375707596092674320478611126633778751765907497287497034850564553238471423305076302034018929774976307474343263813598592479136106582997531488572002274922764692802129259077256548758123456278331281877494688119661055365095210084193766063132532298667932532305507645008087582952727276646338728165597547642237921125737410950286249723875009387055428055346377162245976597884610176527545414746141883278506692635954043543877169729802570439974180667810006166400191582121919985338703464140558773856008445331600092524648544912167465905569804931377965546433666102996783591205597546818781866631058459940028921197225602367309864380931294147293655233670501672326495916364432805560436631766835131551004192763249421169559055815894285450881625638048927420590028580709791158076933785910120088048990367291760712392398814651032438346907822600410164945528684639245281188136096019617377054467692106326873389401272656532620263781610296276649818352601169077090284108370651690157007002835583534525773056253212914461278097216796855437230613004982694168476858302757242291874899361719380227001596549640682552005170940491432435513562005444789256669854133127479470069288290948283620721679657178378595468450926451848553658104582303475973514516448628519290853698576684913613805441785332706868180413231933194050266706349462619199147361221484353158184056815927179504897155635651937000168413288692958722569770844825237703815588608988760855112540949745159674543148662564689428048825445725593281490708846085367117491449114434465366424992017757819596649516943221515387050012563125112322497311599594073322988298720379153564780328883473842386839553965859244321281405992002841615740377199735885417447144678243947993116055365671551204741887208800679781600317709912391293998467253200156790945904283979861678947948019210096118749322198344549016681133257898822264679854564656552498314095509557253372956684942003150231956119885725434310180183951007570382279858721133829064858749557243110536951900501418156439226872733227549418686669372415165989911406080172198264977094424675156752858392038324148837505198815629050461126671567220327759467370586937952028787122439710668194792678608740131247630756928568712541186269870001911888964755744974463940853820242368723387342155422250590106969330083119533613343425010739677583318501450210319816621913157180063578605356097114737186473117314553398835449813723638359736697127413984947913147515492720381266627045325745879375674947321741114813060092176832746814331327391808131459831158789454816975717837303910127108891925801056351136757288539544848969617740383544216542917091351357612669804341124844664977521182585955002916699201283322137475103727795529637575642354486786687927577757015460962463697109981362717875604509329616569187199963807139548559922207815207579932840194697578666828798383781127226566271857209023062587750087895892386853534282574534652946801850746859199461024795808578460037531083306045287793495317292242560077652005883973307607370542873278019574314245582129790244839543266995319176942624565203536124271261816354633673827154667294087916207516696123219327796013480665224385081557182903323515305940603017503584849943958215639802548976412377246615917496736528040654628384106096965144349586175102841680711273944799186304762560346746048923538901742761825410261055875366226787389935043316399688934266841746001705749143961045571305714172465851544411746442543473124165800181078859966617108455746819465812773335027666528638216489831410809051963804135793500244609420491119278459051994946346583886606885351752518637745007404116982465903382387264947242071739752085284165778996942610188893874593319122708552585837373271762243900039765247950669338919424932870663655724587468725077706391816953307060986668034254948804087461983835991900086629817418259585981140224610206706234190487681447629363082545721426382835800908053364083401037007664568699118554143221156616719797992200748127325398290133775929747217550545935358568259832928588490548498555246695135514105040260527029365625116655215311430286149479110577779725091626326305772646230940716744052921631731870080996526148314026837527091328107928191082765112870253426637660572501266669481383114420705549700783378402514041174431053971873358485520928072266152579603509954696923115623734792910947489389398758370452409225827498466852443398289292901704009600230424809910106812358325670213543342383290556722624066299059435633412912331134959084348346204862207758364835565130001523878062344978961650934937509374615225156524223703829531078595346448199015831997211743176583799896320942908347161907854930593969058932756189983119981574110151783140633879419383335878864637361467186167552371553729875832403469194360654695045402176927287868427445115545797316947672925855022271109698202764979710662425469576529349089803194305997871741465776277024330126285263316761479685433656824779156454364718222239473640487616224999542689224606656853898217556961081611060982688818037458502873444463414313566969363816265507984769702654318978909110724435927822233662974398649418901994038429345323165060253513079593152802598773483422935328218898031748566320469799377358713272301061833946527052102387554902024770489181914983614597029792774211483956866705095176263449285714299918233646871855423873521916496447882402716374870656633636826580154254632114484241827928027140414632969520223400969858283567080290072547356309017555529695219983819512939013216671066533448645405908923594801295091076048818372558572796383705533471769726723661502630218589285559417292388739656853946976479525393469428206978397716613148951979323889271129237136348560129836983029104627664380848949417661581680987778039914291277253033282920678801107631629735494347538953474715524919972615236649113838484018149127560855699357710784680878734000009211496051166784398402959736468390445612841580043447177526392708114756977657980099997503354034497830141601000711448060645523260157923941897022718579375401166555286062867369736426051200569169266641706905141559481862071940390686219001120835060424826586964458874504487950277765002764457253383399432961113661879211584188389300963748677515521532830281472835631833649760513618222494143843591481396960971973701629451613951492919234994803953427684659607840603753781350033960956949556709999652641037878690056962466682236609863826105269109659058041323345229860384688275891207382415971632514424705772694682659235242458062983875770456875827987378848836955546385609709528534326386881246236418877431630014963042276748514102675298506700071855540777479512332793049712726430790365115944155492016394038257015083230787593203617408004825335194540901648174417340713254161282069180646492492451373694572573032670566429304106161839195955969203855361720493612997749382969121062775338243875419346227596254886129614327717600775066015475330376934272490917190807106197497920822443698100252926474660546904050185458403888284730747730981368183857964987379413078681235197002550301146933647204034911967342897028352456796783388765013563745864651124084708549132515600195725418706865602072352494991978869366366328874032095431755464476089798059343407527881130631119054647685845166414776818713225759391753323119529469440124327488893008100609692886505357105886366471954996595258453089503975918639390169050316571926925361090136441329837640380427182471162633676989297405264726221959639491513134052879122341719118849652737149105393579770793904343535838669712438643887569774153536287078667998289576351315805009559008067900813690215807797449646729693303709850126556125038696882798991150603363840243155765066040142967321557694608345660270209114423968457707039089661187989626668194326072792439759500067343239072146000111047817596857906356595509508079390559505907385687285146727989223980938993229365751931570400484897035018927919292641746185576017875781673488996569986530827999134056296249234567259843389871115809652369472902299369776238378385878644048909752206192656962393126454393795912658487581951525372937716961106770532295928481507885415248417417653596244082174304847115438171014822275061685966712332751469888670814547802802586119915684354206690433697425589613931734507405546073668677427023950972023408623177394947759783776206053238554055175587272957141090564758918486988680401680412501767239700782734954550100750552170485896996387257840888655767651732314964134114327324109977314501630944744472184012682272364642017000241321259277866849313625006238823917945587773304912534127279155966860162487254013548600421777678542548484153423625929252408282825968716088106378600311348117908131136798275302968858810327733127745026480078117855115314848280979337868014221219020002406942084074668187638850379406284089631916578218919714878083089850906398148163205553181503961077273821474433244544038643320514937965143947848131692126220453738280902808743316634999611122926202208310667566013720469767249415103426854207811572002055050472456656612592761638687470861869086955031340077975370960544169479531336948566944849958419117059058769397759721154799285068047898797687096861884022783758795344429217436639338000127046693663860012490341465845164302459789516254577806541816044122997149048188761806338637452931970471291949697455777106496269238724042142598329507704416379377771384009793253986423352294788033487918651541218301036865947797274646193806369757947802077017942089922620896491014911367171343196346677054348618098022139475911926967146612682637401098385312197562282403617953820688834262206959285339858909005765341439044660348374245477677097043568883480445553881845490286755544946059929100020210978086844158377083243901186200319763317193992989605014348373055515945587826355272741706760353064779788439464685198632906232411097425066323209938350080744914087664776009623341971512299801852791905222798347084382694461514782887288612698188771887227261095020728462659440875664496774289365303856220630639736631664401114317991106215439355725227688697281623209626998194887600747509518000964156954197340422579436574223519828560020462661676607457415572459244924488582086758053052084496421875059376257740139431552722028625675462808452774004807785671516051014198243754972553892329548973325746242567294273888311368890144857452407613877796807041266162025282154999310742429440331660365363519183723867537862350177132667848100332706815225026752463215899508429870717849392175873744686583151473508985703886968332596068703696620115248851145476824454828085461349698780211031055707935271734708066330349746504703749570812642376916929465097188162918523007283977995999372155290827270866919432439314347834367611054378247762340837252830006424017046471019509646948524134893576321322326876505779068676349653977140440851892777403807261687053637080845815428193629641877112511523830564487351216766405307183349288493782279413439093366403477988628874327254892368670643537969428226904375229833114910494962131398398325264437165731732885663921996273047495411589392400739128344902417373532975908530122190028037824126402089254687948723425591438056600103074371543785912612241615164578107270076328410267383364234805581565416930963372150614921384509569383517444282603480164577537895248169817865534901942776363375336783632730671498915240037890537319090449038777303059960585661655896398247065409896877663619045309570914940251211213047445069023585871395357365410218532478408952798010033115437004274274313725942012178427144463503633065017655693431214620129518572131247783125194475474995615885009170432087141397145546400772734114773937568238107773607444296883403780014013934997082039051339469242481439284114080930405382410685607389053176965990750555405995870267522213369591255398446146251543506306362965718965069417581933545925518498074726801870611440237315916369072216630476622254108644186902715417053326385446702549898171468971672981711049896050719899818112581600851878261517922411440066000058060286310888872146898178076184820428330849171306004325992783667983626647217627377923968526075990758559721659428782735067247200739371664961196381944407799870239231736033204414589956292025916187558587373772837850399749036089756659603929955090342805916014675113151069641307598924437338950851240565676833169984194969334084148039458871532618754279274295567690862105722373022915884783571862807440393449823237156352396888531827343627014563572538049925566233656116197569208981115734551271048875959160058432314217426717835949084911086138541678046921493587045967496726598175083839648961710282107943184711695758228124627711939940119940338058010484626131465973183472669155686391349051575379299900680900169218575914546795148385609238344446398008484300711220453257987442612186871505341160536735924237756381277828259616258774456485270574482894468452604264415089079792339817379488708642145799726869758060768972807556077765270551415078046380961449383732140654843851575700837235138794796273147107775785291407131941267640520972690704622821695529689949249264944012496335535296684691135462932999076486196196990259435272918476182179329069085813137897063062432664122105136669839197360910975533076512249415876923136039127520617182669910548297540044463385026017025382027879022834422940463507772225487699591098256030852446836174132340639605884865889068495158497664965159895721017119979068549504051609986258412242577262940887826293358270301675763397609404382281101531894433232289840758186966667831618089175416361995656125225449838139645532671052917380068294482690239037105522028645315762729326489331849273011926643755774274890104400986942793130295253386799350136860800189180297467402164117478806753145793022828048478705797230912866497174695064455323015187421803443467706145085387314840044226365598575432689876943821548217100558169393236685081236560597268636217845826787367088851430474535106760291695404396276239302226939761434553477335523486876001061246563234062421123188237320949214612640522535449670089679972949893713431633134896243906243930681284300678305320872198856201971158580428482697899409201907432509602403098037062591338258493080208864783093566919126594738052798581379270498853229091618495888910740519755613128582886065321398177355294900626895725194007785283121207108610914535314684008561709041488194377422345600392240504452507007451453697757251273707117414134451730019083293678290412915908356776216213930822227489145545193341074577741679308588442704000722745311712741701630557919586732774762680416054108065612628017160622168116345741544221280069935383142070598535986363005586025118531453510580412699463003978477969101275390423294790685529232958433616607299274036525202075266593625779378211781949124777299763092588887667040239461570740405641434161000618335573289734441045765634407345879271735184231786353720393100653411133985961610312744345186324254510968365900982256541280210306579670570053691395385592369750322598597059700075840598378312459067068892248176715761535549361480054511504123923555667650159172332038989951001507249326190790628870374512701195283412407486439769852880314105476576763816000919053588488686543036759420182953651009607059627693837355499927626328025914202810889714707700281295902012459057600354537854010617971053203013949561143221270818042598143585848796614637992725894645949402673453539388833508957883353305706469942593416444184316007089775557857516111657970524685626978490121150205138798478447055256988797617065143197487095828681315477328285892879660684496896420186229977076908068340041928949367012370930447304090385432538208044601919678289030580467890658323029382273716778928012851364199687412342316666137673031234651593727784450322121231632393972356038042453890973774147872419202281640666537141381997609945188479053699684398395434419878852227139929650327554538563381956345263792765919097891221405083578351594652477939352185400845598916286624259448870492180000384164493465280194082378928562918830935369476424712655560856945956785416419186672750021782980662654891089112471312826393235422109306235426603116241373251274515930022604103968461951138661395740920094206781124427839850304339748628103380544035594128069046814636505526169473629472433451300855772305923715445712277989361370819393174863878298334993739217589068415081520959142695778978125403783196302095530785448134415683587719023497370348723728913058392301864894982200345729488074076793502406485458862800610703595100162927934579471635876437653035468369556061902430593136301230716286238482975950141453193418392476202969740155507978482124503105057998547181527380341425133064004018478912723214069455824483620497525488208025816129440179870321727261771642656871613223379241774555549425200499529224199926257637488252859750739944733417891298903602996879667761296444733446366753807795288397874105311725861970618490386272265987601337795411052517827665543576048810090407582067184948921846543148806354470942568980282625192568659359585504469281485032362052766448757999587395935257979144822745358333120213186958135398363397280742218018134996034079757964236056244967618646762280258073614222781565014454067309954511981240802674706733668386729598808896952430757389474262062166502980768944225866358280631146195492925670827700826142770204215877141036037050594955136600391228195364364787175244948617131781550982317534170532057457200139942781477145779026655623170357656276032145400355592193151777624806190897642923475988443207657743700500680117648234106327204402458250743575178600100304199092557548018629187312640957030705736987925854150765086927765566382143930063353576590012343637749053005008814617537237196734339337672548474531650650195987407207559424211065852504209196145117909653310158051834435835401228719067611750494617188891850287072305753065075809469408550744992240600995563625345750585027062287126616408099757580727849546857007869291652653950415071575189818345355319633877864120667190421402931521399258487837772736722102577112083917841584506202744224148428798555952489276145888711783551615575321818775200443842070567723110247970645784531335888407141996988893431521072871840468408052374049319426263329990653383841633649179835043513959834815497160068077924304014158025733162457255604048571937931155880451619600266588017314801286114065624874564652750974804031105801665295398578920386496337660107784570800997577734749684399161990532099878184060381773910160184545030422787855266997465640353069016139459044970383117901058569667529149126790413751955512937921359187230494162204444155876122809320531484366410151960340764710890502032053584248617192556332469925791248145781050689939322930137788589015579376295474225570153503949098276319941140782489813983242206048913898647802871068996403260358231937661618513664806691551073873832335246831602468819479447147939919135694074086737191538105791979108428037197450966335357853435204374744100383715796318572226380965338974261579349759134716015775221333178345430671805862458260144764521097249602856209695499466763979483064877096720255109390606855078450640498601774263363735991370858182884110895347675914166798608020004868323475578221096049815233939610661371410225025855830187914073753107431311810249968774600876275243608814976982112423519394922301669564132497986150296320630974269069460740837964674066975770451009464475154230355124009941488718047975915772568862339882829608398966599801793631327928983723774994067901414515566816702702818731089247557541289435679566421278670318774848079475154903777036937079319738192335835693562317097915833678644370905008169019113133266443117822352474229018292792970578888527189419847838992025723194881273190573710836594543038667706552017304387145202577112244382039876886706036120081570759036238356211440166856555911086193214249314462717479835073787987825641483570971358318030864622138540964089700969755549422852827585560682050020068530935960649444805543385945686997185708741356518102315446220796295842919056269081107296498996784086381407456678460716852192599179641550686827517985477157752856825212974154152492868209243660052378681266377595296563199494348218014381873627978206925954894822921406326083067038984620610780643855040914302040112325801309405523585724025197606737912253334224764478171594961250399710584026448603452511799913998831911353879746616023528804935440331851799346222669791267454818400356010546709923275585597997576332666230162898224922454786280165935843280201017193696771956562429369910376128902404043067311005216553986971694183537017749093686505505220186294811944520051917302804514823254264305443928861506533690659857811697076958390339856391815970118530642314628304404681345105818617031594788053196568973601600576527625843208427475548848559353402881161511696357687329196079033744931554706435599131724232291872869980793003781265569338683856339269599114455048269139913638535875298378192577014791855649880721360883613953653076469191370369471865337220815798572530339157897825247826333839981839849396874731386569970790552030685947712375508288972324122968778990446579010940386056845158076196875124096144408119712303678506651211954358861790249460654942788181020716057466395315329977189130413832875198598583479090530574134589946149312196712622277626633172867706160778060846809518720952043452876784244386446058009127918525177027913403863294921600612892553165617250961404967059636791874751888127380577960712980717053132425347972873280024423314501624857682732085542966401554429584580743049452079310153983313036033555369370668203779438710566727582042129369919583028788824279352435876787385235907307408892272899349463954546006598821802298418844104725529665239966121521269761636250317257092466259213348643512267179440364767511979322711073091307403884774912637095221546710806916472202061467890663379504149180660574234579758703784969051224879003538626233140014680589789767003590714380628696193118840599935317058162298057170021082807458164802141693326723114223562780427245642012091858843205903300251000598934728904336744154696937093381112986710117966280507390485511900060181761746164480106245984439891293174890999821896506984342652914222691919563315441546658904584975080297775325144217668725564154649345463533558618377029878023456179539504097019030823622860758393143794417823697595571993276649313522039561678343699984937390677371997491049379738692976881044723859668356525038207828024075806676835369391173322841277668964464018341723071769567092287059987293541206986265782727436438394768626208285240942031211680227487275557883568119984550590680053678785803775518283359711866681315057059413425281771373276938487551525734952951379025270142642953192991204752911929293245940855068789306213029055781015068243162779156768547126310538737163011648375450981959172534896198429672837486793226584368575174677808764022385440186524319211864842159868098654752170190520232448646678609871788064425476975399702795752914004512902995025198097898245824593830281255449564189274396526184710496451396946849921577439043575434473839612117547194599437347095969945931859493924522179985099498859532165233555790593769878971591517531609984916134421993334929827324485237022671229464233830815627167604447602813902577512269108008847492914052236281310500651298545904491285427151469747436869058610301667469418590567067383044940111271741865518482740676314325957426276468130592926828776824126127285952129700227727235840213775929593221326867275101829411003338486428211986863337118775436727248260282684825105560183960355978825670389147996191598084413619145161387406710670981907985000321107531577251854475307424226567566498001844143010170407214656212874757415807921343337618778385015157645949118989170447497902826030455307009111258746921806587681050388751013798979115933378490084990270440098769677931233506650739346432215692565960039180407116305836642804063578937309460652844724984616026998822650198381265366946581112996225459864573944981205036762623908469199173496788864871330367505070292803416097689037927963064850820769000133185032731669957919800964122915084299100905825755662797208880117087510086060989955136529213034251025411310152015228014397921234647585028515914253492946358453576549935438019369119664050949968328643814004383301191163064802420200067248485988844842331906867840138745115692713619512789748058795948813576407741925705343437316304061738299065182577740540939644226638491896874795167805975115629202139644298153478657917051168995751898180060979221867717567811889201500647682222697112428683555990478259755492207458224084791971465353961150672501033875342648163724338427966948585398180273157575826369806839282698855059442205415731322119151851780469396689823963929817250481382628789102747580384103636258829858803048240641262415772533699669212928715869620746588970882895587658397276249186048848071852344505464093960318415406083374455331277963741614298270717883763709901793602934051196840963259478404029769697230603107906967807393146270182682334522688679624941767868037697392818885827399739130498368879561962102217338197852987459142846743045175279788443278718841708838067901851492415155651371974141451637667507457333898419152408469888406400373423679899332546739585267214429709319034369148890153316210460046054666689760471570995454361959312731617244723044411382307234823442102824931797623442906698891764279694649640859340570845705437897335285749714739572736852107885685012189270432423728974086097207057291977214166655312188430489624254941242976743873306330158254046904997690691196624807993788500197203750949659036552988342286315664151174487240098046827183196573288150261689743722471231831765046490538739960951676449190683889747132811097107473833471713262656847834855977025639778893301805827185129913460162828278988915104149486664607148092186724728097605520557166104655860283802099321978027933914617403143114170980681510773038320650679761621635495043419834330618166149002981045620791485447872691839242436204179032992222280574392959344510314833702961053370954576263876951292353908164408262991745884803268584711331880604114525883906747623586452994088353970360853057236736574354889451885455761571768650423565002774983882371411862296047889221682173936674629917800384783688032248879932557988079578795105183988917367061465742736489612792741447100006691856723300523979683723769962399984700818990727100107618227041774396079903286120553286232635882712296453428022226164945343549892957001419967487744614903346871599566996950937350204920652623381558460284779024788395189661749956122248530434942041461235985747634010332773001806736309762181040622752552590451693608831148971854342130853523151628534217020323900066711044022835214124530876823046341138402405833835901601369935831832167047624171257120363531915424141122227436064014022148026431447414915655627081354289187355858739687495843434431779751705754110411140081805430770098563475943833906329854022782207047517466043234491978073808123545314477382958029033821277837215132448962247348229438807675192701808697978801826579097456669048632077175185244656565187781022181057841057054130155750548285795476756666303430861951527777035587222525025333675087603523275181922698049360384504557564088296130261369978145353956671430837498517789342184397996457621471668012194169055754387444622068522584520613891651725545517052999641648944138882204701820314007454859926538261870111528382966632649936094641831085887023154695683092112030882245161479698982084487572832152291910709285031980202178498782195244294795862982694435425000026895714911052916808422928024855541972769719943165856158149574357356313126285616620131451284369033832917679468588886953100337337097719274801729626540725886719623285188941082579067520553160990566815068480131147938582856129153725370997555020175705770709720332021089858103924138121405008053306114232364933684123100099126721794812713740234291121955959170419990377335840953713427165063901372599259628563423490700418052626120808968050338228095907415637541158897414924376752209083522301910677471254476004634386729305411569564314670136370416694594343231195813984584791807359593989160403107350302126779911098199634221491585782783209150211006363956511288601530413908457212367783069095915063619631783531065915025260002432265801346997591673649092337498400988320698992947766201198545555570204923438625915223361064404220113402213763175440085604863165806300518956233511622061595576364868503145790470166038520318518973153173165737767851575404450694528489310685683597635193225289170081232462598407144707996199307470057173930807113289525024401543129278423027658556970150893678557168034055954726263341936816672857649871878503974281425514160867550707050152108833548168430711010640057604656969456825026917544358824458198446940555828914606494355045451334007609940032273248670489637155955410753293269960200998050046189531847412944554986022674099675085732686830574279891988014254401411531054808486790651065615207199127396199885641502513709638378095887532957572355822364050243371820263634575310841383908401200342043809853333972435379704025318800997780479350447701285392461944050197932527147235124325998517883665168455940302973829025312831964070966448800724426601827831319280088663888515076010812803112212653380518134811598787738233652651046630288388317324717563459427557426240595782898221835464278876848101495209282035151266826037204336183300805329939876459970611067734178972546404295573801226444332751311624489338743265689142501883612169940006607179999024938374337584068530805722967098432818847652502294619467953819942501727304629831178354148866725793057591880585273728400163410299448114011844302305123744300152850083584451419429976353050982269411879560718905838843080840896576613446226209062762012710202403513844169809666468204707499159993805341414807882029308914337352096579960025300899476941542096950669450190230741153143207936398388769456321769147635045560312473128902533961887898327308876697489497053163686884950570496169917368007656463610032646749346997905263531924435655663729016481868329544269544373607728649223912732432952003585624551919476653302130227577683473122403132657443401154500229912937100596201287674159717096803506299773702835832802265388061836881111222110349847487790692841395976479123432192965059808935978392169576349117817295145169647505504630378764885288240209047334938976792468067715075009053006903290830845515194604928505423571205620519602705131063409428669247189827709310002682127380186367689222330784669693609204225821127704115147605457062908497433015180726671954693713368195609019947919534656880280532611395590262704400215608033015637801136939838233578297990310972707744837612272511762573282711713357404511144007039468978326904485618935263552444801784038729680046602466700292290566074798463343523141056206716196390903295015232698101447101635709118074506545270669297707530301108931027111288603642231309665648820654578163362641120282642184740433718906876709347699240643697784066924594355389281579272658821311569252317027217075311851544944143837130814206619695078936170995693689768805374044345096669808837981578556893717878022552236524509674803694620491936603302793123723038114098652294357781542895138879486578466843446595645669157035881010911979252944738023134835965056786631132237778342624021168289771958336853984027563140666248353967471824990363258757553092429317945212365922216768481835555303915699743290272414936473426958038325253251422535433525906785461128140485236346431200808469236338090852076035683414459524348813705110544834166177409538106340985687209999900555590902499578340099917108749892832660061059234464494374746921921539993459938413839816384200684968671745920630212294234485503205551282351437917413969888221629748739412771115113392131087910641929868285587519775288921960419390091086049783530935026121096205823348544784363278866079999253833898758215908096883004563783683459713358277929762063901466330962271373863622007845261435852508604194360043005326000897322810060217172093140921484521717947561889694720271636571510504802698843779117507422440348097667226112502246397822144147766656574301881312754077379521364238229368176929960416086235502897236541356944285297556577836617849306049776986305521297340146872262186702520164865982561974897648123049315391644393461141177256672870360763926735263339605664345850380362644565065537269798170064105227466255716790539426408503352863060113721672733160957918066587878715601693454539239859068693622780283657593098468726800566707695818104751829812999536964974849650005052620844200883220852925521079453437893969973909845731468933000574814675606630641169222167617725312491011358072876967073840283054001867758367358309784840768141782328312994697301642907973521770850740175859043827267550017959152088219072261342397959428367166898753125287130527695067373293525793074557880118174160220739051153787119420528505974709369070590999548466534687157549402417013574387785478134813795852155116014579538829786577319365634600640075784239274502409789081653768050122903398393933088919337422092271949891714623342931434807888917072450004896319827748001436528413442161352819190639350383887290968011058066407677173495263657104790360305572434758347467709378627100434328099246007355170750021630061927607312349522660721067501767690793327355786968276264324352214412187260159472731091233366382594211391915963085052144558219785608496925067738190843018241985546390831364830453507182880873034877511820456266289873480487358855944625572869936202190303258726868068430114160849186274260382373351133868335810682053325982227270422426884643571744036075339175539329254997947894653256300318674895823156749844697617018200099030708440534009036715430509873488130041164058316741381644344115907346518385038371058300820768380512980899100611381921718423141031644881933914064495639039167706825313561255248534547749245022002440415523468685953045024088717202735891548497677368532067022008236115507274466956313990039312667270136270336064691519770596957143138181875527218552018342488985056643997615117372972535941803874024302668695030719922080970945894801917972610745374551095456676530630301667528962988362407528499732895578388838264591775070189196405240536940150323469994980918552662442976777852384089563536538085750143537775333996847650630028069008654214875721855326918228684854644241859467674941167032061104789289111112426215075057723800930687475147683572884435173256472077567444926751818873372195545021410697268721030786922850723360848115750032369104144687886558303464094152371213735598596076925112265010244095102265066541100394260536071211329480518050570129166287191970204044282000675241469698436567330484022084812773625055029485874475956372136554633688398766325683198737774081073053817449698211349343619167976382351177018291383139109568870279384490736589775222298318897369142719426876505963530289222011146414160911294191814282160260643855339377890193327208719582689134207421799153718938316223360082136430413149045627758905995711453187389962064119055453982168166974408518475203767536076283990861601550707274863096471249229877408198702675890070109886436250019143939265015776296187981059718941215582728763183760226473399283850251515645654484469198061964768190017899815903876307480922477771996922935670415485653208822160014123090680940709798051594681995603930555944367609863732346164509087913594829393374914387649814717780861981919064102952899348885978700272751153760597284933973691790707082320176079795485509058090871657628586289229869233298712519894658471567246084136168821959896145073829251337147354367014153000228186171911334303188716925068524464096575344279283512319486399298222760764617162636201675348095478651506843789978101092068781936015945856231898955760309912674569594332751521447935560958333300245696674541108293461136404396351408656580731979050318745376413347292368921637232488774386319940292833704889780394751686447379583863652393458332488043366828537260878954041514929833899294216971949804640418757160454998780439269474017037001102068289738493230681002805580897626426306687909323264643324325687890953608864246096842442321665741813798107691960799625001278940219020669191209946057903980404890763894517001348333019239465715578034376110503539840071264256554882755610443939619856496235760634492029139192550772034030544733094591686152889253127307768990669543264790541296767278164912208608065370961923923426194963051187051589891177499340824220888474602403178004457809933799009338183848898704628301422914531550839899690240828501060076966400666947877384107173640766653816733242162592331018307565251903872238751214008748960078237597370010025865892687290671204330002780079649551889840268581350704381090982392487787811258172449127693525926725479073401622197665634186826816521286091667882903205884364589800680627024738629709180537461077280800055316245041274375075409486124467353719517779880551320814294894576563722524879769599628506763684765127814944975195058254836143799862899171000797546684703953639767107238518237857084656895309446978104677195251447329910406904363691230383474560546215392526639909680243524883462192430487485515878650627628771240572143420628823965011919488897969221935008929478440059108591303807697236076394057788841287569649785550384625159368398704874314100006342224408710694312049439593948232888091771429801919514462187429726890571670950688839686971028226205956563806858700553294278505669142196056651120104014769726339095602619140040665615224882667994124589231759718874531897403180219502807725691612971334456327925773272188690247626978645097555271536023767494954474577731394299991978488701094158588284403754973083864593117462420573899145643992618994809387947042332295906578236744137774991664257320913079172118394859505971296313030877613792526451912002593871796638245702257404511083502104946827882729489529618233136274258868582993458969932291175232197395405783615590805935721844712748544608961386758287368142803830027032552667029289225001687761971840904527285933767567356215520894620324393990891691203719188555224537001117473946511363240091075162911026620307980483205383272967656676280041693258521392099195274655913740115906031272768950422044458069815721828349425614305516239656026050436770606452334279548774888003981718349821162384375959960144515085119884920196653959786031293932460848656534236227558042070644356695921202522712110950214943891624394842923916670725806961143534056826002596764641366942860228851611872722342546840909794262432073742969748563284408477171054942497196059681093046041851992358192008228599772970692722685670691490130956530653890897852517284666033360232386921174276850511550032089728578252422962048966203910790790941349257185160935150288987288111258425757660998699073846713585478606639622081841559228256027331829469942612857480477553023170787950422865339917734792176514446212813762779146776631502735157215297914937665420049818863237621170427852433849219550599646202424890442832740702183315536055913488771354224477405982858662919742763120721728360293577211686793796685612430576673975435112810355077513766050658995040859853065724607134950024613445536162266989472952896375769571269179232407466098929538391826596712842048441168979776763802074105109578023281336081642876578375025612917696938181587054802568023684076692208920701279876782740659960770134831098377903163951759165196438361320525450876448169301047728179752018428472643084775558505377789092069440250862319894391352354993291249952157775354273477670198180723974449962066744220183641696370451874145729908318338788367164692746190464604251885552210593601666137371307696638345010959271890229809530973322451204338031619154837941756839102713529448385399587590711569142275116334539511483523401036216921828076151832874538071006764369136655032130439532166724405891538156448618101703084173719657721264969815165428876453677708774026394968118752235202077430521485626869626101965698719318674820987822163216556160776118347955446114003426057134319585818990768932399901675831019585318243327365102854282669002138472807617053183883576609981124472152119547104431036255636977012888463933665621238573620414968563125052891492641037256601260462980892731188736339784240452381079006262537513148361657679402509085214333149492937599432487442426075588773355667614458495747737561786955298812265691697248759470075364331879248239864761801383029170083093683367230605561854272463370986438427719834325149034075725453941048906688331208205284969415975110130830444845600799790752420686381066644599899290899181895785559468499889030119428123596849819676277205828299437352621341939108888705496263133584870834307935786138012872364178220822798201599682815372288887367857782047905127240339444642941175257534020288319522904500725220114365131893840693436224780533534736621789542533189981381728808391787037706038653610165528232535051353116464587095454391115839359274461779096202305656678303341647013907658527743633637553444361907103482690029071155926662205719911040127479068857671479234290172383859385960682319751572411919256647630514464506996283756959129602867887154637896494813816785792436453887803640034761079223995765296089560643877720003457219708014243963449655182379029752174592748109663447834083818121067955054325843098026419730811972832992203857224448339235811869075052973591420368918187678718098156649423371959849915106835190348037103822558464508003171447493873517649091558562952133953940113582914237270591474187024119326082166047133963453907810509990489595353187002324594639696287830829923107658812660514739381722291291121606641694727144567172333705832822210774202850108046921496945818950213457390494700918562156744589048723145502603431933295700348537962058716885987237090064417697684187771095991546342367464987009976789864740100971132487389507708058678241253329823141698409036454764914748864278524980954983722605183940779548600615768591734824851944724955870460492533949718591711863427074830934233200044964731100525857683765178634613131284772180847300537014575216285062829294430741513804767561842185603408369958598977027879838083161865546497221273930889687277835965702446586416833325905997354434819239325217115133637826699587153167244240635045502752668372539189611994513688770513855380074720204697924763027769954119186450692023980969158072526840851398688056575006411010954192278014012943583458537045121347846099698217886732781434485957543244049579762213596666680766236546734033101565911669128427073819146587555356330071465605068325928717707304655047624721879781196212583291484139575371134398445945157359325524944189354555040467163849187094080955397675555369048446419081922061686588584570728959456467350924423325235777529254319565904380179733527192101123055810374925166320569291022991626031915627527903080672442347468873909765000572148741641091891975782417372219635270914212510129053549780919386684748924104310799437991585477654175585910780830601596577792767269215977759876750003923788229704043290727447259434298335514855616293289399533905874135264402590836940975044019268493683348089530418196149191546875189270580603581069243718280292043681344331815249478161089088356368544916999890568766156819352906727622677257436983361003844829169582811603739879918493956809541124193597316727269491345076666269325733125389802970271792442325213106688826348162707454824056366353964093014429156376407262812987379333849982765860487012007455860242086014268131492124617755781545647800334197566799650889084251319819515182854388051466202858486936581855391565628587634173336697657700044033328550439965651433637806649245678753540030223058200546602070772847250534310736500140763644873522339607656572691440111766161385472426081526402177292570464597532110587406661986129348029745374489260288245968943284636570705397212820109582699093707707535980228285133722735473958044834558427133033620429475108789337741926700678460322033483850542834508420634310417403799313274986126851684165031142053045596378948489519126376832635339411563760913262964136217599987093014605982426690247767882245182124389754006039504416028096562669579329512690426598370413825639022964428290243236143737735769602974030137388368210977997819068382128367789974988221108370744474245135350663174567092693544752067832319195495071560656291774092423859547960259583934704760116537400696042333045414163116794836341719531606010495146883803877020057767111710962250477526167183200705073339824965472848431345126370846072969860458384648069903548076397995588372045689919617138335876762320284706264280587317564455905095031802713349529665726405304111126028711928561717442375507656659052544733780571921717220655014502396647804901683983039309654943011623319529750285338516019842328364884987269000120292709140558542428785062664078431757656741596466912040921488374793993762387315380124598552298278197600454529983366070309544398473287563039203107078701280280901043691926846227192825457619911343118392431347288103372257995387520763690978162281678980846190506176240997840465454251026890787050819104499958189164117248588788693085870062426134718586588734548103625602977703150197169192000477134971646058372463005066062371340537706348787981605089598057610824927174197547107662610669074962008532454288390226870306796514626477512065356615009906880078093170479616091347073009567140787963580849516495389534200569648716642176087686952511749300537647385050807940194042994473850735938849252556365990118934936513772275391632066801469768061857372271075360014710514223449566930436680859808344531459494018104983952901778876464498837489562099901994129424905115591793069636845043961786152690197593021874889768517551473520176565030223228272096631133771719901574361667781465647190373033176127817677796360520688996434621010915285991308223103202701601973540669845605295286153631929636698184832948833287646162478215480621927360304131988479766499100128517346298509046185495579441220378268364890706649665423609912886311351081593729092022046866570758893586570904481617760046409389017001510851858618283886567701735387992561191962885980501047509203123990492284751099703871745281736423933869781053079980854668808659049550546072059060637171537105630853648268949511350060340031968645402836353087768623026311272806597895482435445231789191718110469372253299252648088383822804291427001404811689474792510786963937204035692641850947011099116958762453681727367643449451722565115696717807839183156754328822581935182864256472151879465191185677680084172198010430256218624409030136502112226070488249623464618216729045041805748159356984581670477636269419112034776562210175493303392778887325506084617546161816014835391479709910174449235464549162249298875062922428776977469952803075992919841103434457366101673627619593230983995526292608167886739608909778622081736158722287539624251910168236534025292836417928606310246305074022616454738564772976869833496970418517405208792525854092010790559957244076537809241572295528416910607244120096699842176967238044720255774548419168807546982061161834432486150589813725666796455582225156455272256736724045913124036038400271212525507827685195292297941073772566409888086448513443539690626062252154055362679868212964845086864608505922560405277886103007122307396790017125621433385689628133139705446545719876305522859786214145322844714513222548826130628302803785339809950418129517328237358975741621798958401243154844508899688047741337151103048403142437957212220409319354382402083865887145813122092059804449645652212170856920601274824746936332359263441864347812276885499307973783449821921132298168932124000854310181505667180175483762942060935268773431972116409347048865889825705654522319569258688828482249217793494014184285654874263634509395854757005921001606112723234273073642316289712201451902389798678731168712670641340514336401803202162697689790119212656279895672289028825422477728600924867938017748999004552277557169242599120521908285943720846911984451357142296289055552428736024479199753329384443646237451832758893263811166671245671331296169420374643570631745378828384765418454055241907066667312050548673317952434696511301596710775869524970138456617959649406353878717612940750743108323235005120597228789814234577915466052598991151134168759689470911037494811826746716353057949280291285214577183258228393217609870865656058368999896144480223212293968008534298990600031617878265835620900692755785406440394432241118580223094727811739041779013362960191339201677292788750725895456716446981994173008461399304102407827668540797492380068602793755515492583082346639847448267796939172721817577915901718453979030734821092208963017915975897655380588786820678958580836464281289243650567091667624082148887257935833593929603685889322655252644891983024589546895646745779707252492794606005090655904354192477023045408232874491070816916491717275216561522977900348008133901556315179698356364075361036864346913239073793426562584466477429935445201402607792334946522444682491995090688533927896624876521593050364697287365493286984795040360626891664647923491579877304913718476476560133726192585018564772448765781018956454639741562559036557667489016055888261791517926500060371525641176668456972845549581511405729836832631078104635548871898722464476939826518719464089721899585898350410124900848243626356004788825287328873779530941169587652048240972666216531420402112902064650941266365373695344677280523848509667887048093473548055926559893492353052182033985823943367883614472527019315799891344078100448352707070917453207681033677592531393027571532675853408349861975254266223914512101095478001496865848195092518819296538693566195746442421668281755200130915397368733006614333091351512072541635367805184281980448210260996056793734921186021736676469466128920814884093301114667848773401257013885671465736022584943308261128037766903435686444431413779361573107265215168762391802669559855163063670801219911638945155164109034488421272811889828536529769522749423736046354119331110887650737181317076379084420797237558773800216234360428257502562919734355298391961752706948180698051829883920677214412391901782125044899878587492478681640450629195307401099053448037523302189332777844635820912414352128366189997033277275431542820909980737178510379859605119256800685374228597674931640853569879354400374744891575420861225910044379319421437336879874304370094827815542079679133112286384114946388544391616908262447490222080565131158218442273052327831955638715763029896997094418543876787954944802431457289884617741675988456192498323994838165428719395005673086218413278289222492444571086774941745350603496773915798652953188589943277487696549199848065716180105222288205966801170657923903236010378194420221019938266363944946344803450928607195769710953710834900172535846672951932464397355606026781545775248299766424543573421388002051976020543328707918418258654916778252202597241782084072198007425454633582624107175036071214448592717051012846383084765846400688073955048430718251822841609142768502754862866983614405944381105674983317332630744597828984512487859689854434920466772333566480787649986396264680705980365872709009615981702898696709131015875319365189659535239678757090621041499168879939404408451147439636770147027392614913695736499433157223729861880619090497051434029093609459385018514957619261399418175454933365427186356456435088164851884870243574286007332123526995902977111168027742552528778051509011127884269102723263587585071241080197562759015226234172174347470453730975277762139920646548470667710561146901556492046743152717196977075495405864937028514490399992534911158444451422361982551025568127415077060536420965898178716066812019725856983946381454710008693931082464003873375183735614506277079964523377601978756026931231404720127633199209059855290322513967663785701295374326721033452226578466379016588039275841984537114969428666690797838390369327247359910569074270484114730874550232068712627372557419271551042190264831934354574138275946691058052214493030124498062934601058706201741017269764694805391759924853228377363337491325571828546825907036783057853303410726210715209988390851034762646171386147225855018694570917773536023484959899130290367688260072422425161914045582237090012176082579029596368608284824886008337739198332085733113562802822270566926789247551719337732570119869827187769131582701661901674288106545836434214893471111818069327953465157798248396244576815853865113198597618508494574964328448496683864567510221135037110769707414642451047583326814304417680708136705125511385316936775162985412734874119096414235046852182680685327797758159950987284907666105643281218157979892149623114141686557431521940442195836408538180126278300530356108353367974825309484482091870512806454675587619173952186653262779305029130588774709679613783753503897431786705700978154079485216254028710056935666788367649718055518839102249221567241775299398921937244128295017084294023673288484233172716816052948677755530724234275598582241501421863279668143418105790095308433544328669145929638980985636379294221793785749779570820059627419454141499142267138730085899635574503167587715380548792512213756447158702773180429829313098308404383014334172727885385803582596706488352421496641418303602115825207013771623065795395081906582398283727315715329080337919135319037200250787864413984830692543491162843390882553188690722821138725845700143427715106213464127995512382136373147579607352347994356486555174921150246766439997171345593699908196402315509419955866260916141965370279333863078295219434688601307014733568467088297911817320152063511368214714059760044035014875261297578970913093303769782330807208274788067965982928062764515433813648064642247514085181131807495306525171975902760173743650350409578564460401180516369567045335581492474854227870120467928426807048068114983752528454109580387722799311832027066944742200708716086097071155467535589572158052939731085209060635261147912152597330779776382081720897819746477868521782394564227671304363789348920974537372684499758323483873953172407808105572617146156641323611920927327145534324295893358629074940818677931104184642545916022401858788977077797669510559048759054923140098901326234012545427108053241607583807127994451855620501917449097952070845118997825249489673952826975907040305473037827065079357741782577989081843337759675361614837829230733218141999274846767401414446195860189840666208195284148382949957356805281348258875320280247621641110971722851971493889228724611590595722447495548169610613612794001928896470520394058161869296896358567531172229835227534283371411037844266315872109778063273016782227590028164927343396826202111054116494235389328943702539967631453475908657380842310892540221739721395841122651521798121356551254806613392139050898546225166730480682203085002687255188104155761811006707003428523640038574618726749103986156569114078654853253634710124456669100970075709272605878146142385599583745134204179283374783102553634830671771572756440007749558684446299567450479306850169171413998224803139693542890528078571524170881594980189032710155763692178116890749633502471323287045755525478697305478821989487944147279601428990433248459864559456648493407374031102137280338281931709330261961391150874500529263757002673439661793374370979435401939596727521548895210301551102903140352886213592985455732543957484687155986751887917259604354528404481382385342275706940168096894095472410131931132343976114178771359938372534321702726715887978268433119120600631937704042253667974752995556263000242428627129584997475240977036007513231863621855079645232858790051424868386856335897013552366765067708077244492940845212477310282145740939873376978522549546175213653517744564061497792966770319735035588650678927554372519872826939804608034811663105309135634740423121397243732131359695021257730887286516230313250244506182217831776373868295622441652736279113365276599293817777271443966447653137931449141142395640245495746538787465090306069732380929103663441233552367446633878351585402116266421040254576647111439883304947117369312097588720970109671417767913411298835028133610446424917051820823638832211471614130381028856954511210868253550459717019327370215776312786323883062056648061292034650750214920735939892340213264370556372340325422201332873715323517942540908254253040800129533174192976905680640619045295667795336984922435922587917966839296827465096519866400371950511139325786581264714460491468182470378483704107831264486403428505668334579249085216010885531164267177075592236292862230091172300877177621925606825432039284785058454103230230076052352566508785334576926080083475019615440672095812634063025917575274314294427567266687931731388522743958877611857303829197088139199568378829718784022613232423798287949170478445859780547713807686578732271437730765564132652703616198141452745959221505280914632062456932336590360303639545219394754195050332434554089443151222595848127645611183348848504618312507400694091411404309254747659602681337431057513198926331512226346147629545728671756896966577450280814742847031105488198782637994453035307718066312514180862012751420731615759635713727892363957951526153022263208791400025927862022996060617651259373132366775135718193440107767749285336390493089174842528853811196063394483926555783078956976354736590980566877947486074968658976027939204948392299489272155513226006027380900901272748346623706324954723897989006778142187631373064460638875604959282712484334171819473715477471526793691717689782022679606876405981403238913009488976848961350346330667922738944493880158191467888205691797267342099050783030607310778514899112568569301385814181282017011040698292077635191234274159827330149672622989886083765354672174105163014409112014470035888627192761851890879299551587996353380740255812696638630687231010674117153346933793972440392751798587848230014501239349568681146588442857521840109814940982387461993188625565855660049619518345463819369590838149864787937727424730511278453887938124534023573629637714096819184309345419560166784697075362519153775137767281121555403658802881635687725512000971578091824648855353167260027364460792119304720517186556982125080714804304991296347089993126453092044504740610439707478479297630695952628112491817171336688353867243387676096605983654605537842448031765009129408340781276772892933653788655905441535885493493335169711442851277812614921354096647202346753974598900865515446587022569143919593209419529573282514267863410848256454628395817894579047223928216546853905971442762127074282173450076196937628266570896163005277163654369535125756472466471441366742951758508219672960012922613499634617121196205033867229154975586651104605709239357626550746460575589745895395116683859033001300845480356052245211372687004246607702590901235715688395429449542845393190774992885378403424103687770234436086957745613459361377551940125365548850962136990987051421462184540488000383919343723224226767928403842160178908515999373642424483164079820097803012734846670012417494751540147466968618313467872349362105765956184398174923038427016921755811105333188361581288684883559994287117422003734115676343296182822009708230430720883353926209647256547705059743467979102360543196276609697212757416867855836989894412288832976547998223477775813088320992565506602476368304572535610284275202950796012695804956172574462953135278691497177075044974688711896285616805871504546584633302323994546242641385154503959693857141058583351470415897999598339549767613299763009753327592852523840294611052909340283357235893561781543882799619543411634425021944185602300112277072740864002543767855747632440065658354741170665130910177418828891824677641184260016688194043906009409556736882820222078423251667360887630349166644748547192953960781098528680090297987061432366290838904824545168882921932618828177496222836001956353569791948450435656855500567865932479563253363501702808873557090970059950914905961618009965771693609630926292392338392458447603654737302933132268904950773345323729470338347250846426699231249706054031777985652548827938453288888965105618167366033869736800820123551438888318802463915570527395886817624377710757992293480574733896177450813557017164328352458125432757767270075805584855379866240228234763313559852895175944539784899028938813683232823441148637657033341802903680125959643936045802214749128081505498784681703785972097338984535646377138778217488828129501011306601761850103307810956378330769675454531378405787296356178946701485195356987895397970062584475602136782767713113914252822766438191671521208680895005407716602929461058328339894376321671999854724184509607232463701759130953021619608537984270728874683362628972680680428195302429987755965437214308538181028085564653264641928059705653230440932012744031611508980329702687124125075644754640724760240087489485479196836380984410438677766820154193159218204167926720287762510791198100927557333823378574210954188630267993261737246965194433437245893775529402243443584099570362962875015693627198579155521983933471880743796518889659821920551664433653515216631023531330263582482358104223479647791832291022721271889423685311253925325701667204496171591044055106884659982192992164923658613088654991461604852369649117550279621208483037712752139545668026839995124762712737699583403793958005538062099773782984867397249615960526567665875392956457556441806390729966912623229808580506390546528138968992532764073192243641227586244992064520774549921601231689937829143960132152763050227949752884913962522476058049038077792099901674444917028051656469057106827135146109909179489939958095406747387514370543636870383183137556831436530118727634538874829865229150898434066388948944061845216720948432145727498978282977402369893953260436685325524826632988246878820819779216794456431648340943779277585897571215628124579129426020778308026322141202445109985209084867882935020163412923133495667818044958974022291725923012028413249612587486287513041015271311956160043360354062503981602026702025510161402891121470224198095649900542818274316090566845556629704468660462673135546758938468810934564226097599536315053043232633084804528583513544644929028699841088653961756620398555522929338603224703146396909837765050228719151713941153326558009511532172259220921330393689995716339721243174888898215152094894464147982287035637921623435424464833396383609492792434867191668430853837172308008659238357272968404541532910344487657377687647344453722568302740398426380741007152277861678174523545591088002931516194769972441989707142349322246785689775339187645213624067373697222090624969826937867721064916208458016925192357367731097614142139329944444866036667574377422234002672122510692252652492592317365000854818175742652744416244059735929532599756488816093376324853668085968832331958385029697324015492594542989986821345449949065607949001352335396609546041721895250850510008145313535403038977215179113260423717416458482480286861871999532263721727280999282333279345751840984377299396905439320251656106307719782344755777936503588034681969753837207655932559130609675809820354567141281808480032971873257862144250162048484679555228101529465618219430525276580725058545912886893163202482618721172182993367281004183662245291732686638689650864047944194522598751393548251637232170488684222990300774933819277441807270935621947408214193637311312625947239211635689880728619543632443164773451583275958781194716141816868372119543585455596275649837314183114426424716827061154420971968713948137639336341417257476371676280243114727702073490953934758890654397795355301568398360048604129747726855339983986393624160737374606222230821926379920449362483204647994342999196483609093349631068658322212502911686915989252561456597888770166294757503811311165169433203445147511914501339702895953375194109811872530063227659769550187838721742911869245639027155173962112507370205258588511513722244321137123944033733852440786159072407778920022758509803171801670807884479257681902157280294176252902357170497492759168788741207082596197439084550989614891630008229073357479159114562456760896333124710193056765223524367671371485008387884673603518319408120800384392616239379801499494308899991405843537374346647251435761331887293695984582945710296370421312553295588864449308205245449113979262774437453365746314861962230989268617741918194083900199900020801495474842587963319311863959710310440847550613410174981491925224764428813679421316187326832571969994138138176784805303159925676766014176871349310052954572867702010100777371050512280410276934581843792788698781759915894366704369182041325008016542315510505675167100181835484521813261344685431692583434899686605933802720098702525131473917389434987509327605200163103290384959964598609331083444328627893479884509609540716637117534365399811399062099098420967025749057226200580003608630373247330827004694217799377796620203707695662087157234794483916071958561039754351159769745348774778474755806370516822288358580171809538210143892302154743534581588246503829904294283873120740010840890672721641153060985384113137503831812159672545664931819981568310255593712231620125571543083521807226437692319345662868707307841353188464207988142333673765104171188866901751454154744178961093073650150945239758948308875511787824476206059643995631824004308818041712543620038951855071750014198915342806258736898669545086730732629457649744540368953081586672158505406067319093601836599780686067019476068792038523513581166840553561315486518358807341310020933530648786571120843752092003700402564663929183999359115304977849790623367543969594444770045812790645930133714140413714668956659209747581994515467954252405559948984218309272969266824826518833414914088949485174849521527909621277514527191429804276510981756175060955696766769548510270123181452093694716568740130623180950020325454061238118499579166305938360311610169154145481465516041591894217254691585738471217111712338638666800724295263458842517828063666626838107382426302562029067275091260725629749748060122421984864677961152149462064099096499877834018085289085784535915831603597414320702218141277446638130751918796828893888609311336748025454225815124922800534173243380587214698187692067905431594180128050796353262289743778972304991686472247369628154932550000349580410304567870039092648028290977624261780355174409039467299851963079469657971660734753645544416020739578280872956966787814589538618795692600000828488972016974541022846548498601632617278008817459260622408678404074916908107423391011993575811473691700008937925041219188078656070079013022553894603939224060361081961110894679787273047736663477114540810440413841252178180744854195521504395078255976076720060672223644881226154577151199647832959726540509304559072687971143801055166921035081749662210048127466202853675225093330090946688929640777053910587662149243434388609030200624593933629756282351091600847569974758457077107167109911766117911256506759693088271714336146764467845183290195463295510845959371901518378283606387514736803449740614459268734911443130667781892667041100222087265056962092263036954247214819863495823262171860584797035736847923365215110502486354459865847717153707278753548313651674279045829646056207866778437915105988136419868997797003912043564563266375479062795887699588378757981004761982777437345270957370654417642358869950355364342895153841431978285543122660125325480292258294630364881258130683098380172114137149330119342067072009894429147460775614160453326022240368924001822625438156774908343245842333122730676301483666594854601040417938407595999629695993941640914535020370525903463969808400141955893129906875109638667823390961596208555506809382193361924801139959364214300874114782393016907907064790490200163611379340106001941093043351183281529460635758025347110871860933840892495786682733160810428413553452451859317832606127985913518070333884919426488973507111047599923814773006518606419053607535863048743746414509792217669182572772541259503157617119063141514538872553730377251153241238234365510667719421464936012155992645156445579714072592559328620598117529159322202074114924206238518365704624162573544711561139467958883061665218010931944588925233308505294381735996654456293904135167273653798791944742396520859747369196637825226832234834829853440671303426928794820373756937873618130874915344721204326452685887874237557243547282512646308544268944202627714514887948767757131852683306612988969874775591967037182160333032624938148969820971254467579196432423981013765534458540109922588522800171402059802272386772400927121127662556163000634936755572467930925412413751398752652530628456169392632553520076801061070330981669703179357302658507624755578608854480456323744552046217904984872539115795341362511083662184535175989286915805747252797900123585991956321707408465253484678376327773545104043486822306644330654482374962637082102242506994900116962325824062201446985027956081807408582393736495401003483319552803454649443706614018058174900099247796315286968413948430128414032933105310591087469786901354469476374716762104451221618983073282628505221988900896967121093537887348320183016066330708645480428994589895835317835564648746416468673537861627779454019802388661897851129556084598308596463277306810823702058769142943122918374407024660968190069130701416942296537722052716704459086552673485492838149850506283200774113534792871349040500363381599420433060675388849436791425500031067951357420500001284184143600264491645592589732954688386589702352031115636806559967591851216280890346159335973049172013167802418092311075048817958606013927791985175113150626671890864515755645338797638602522261757333042380588321064184362281649760687003865446693137380242441424215251367384084437995476873631668430146269609365670894441652907229915061084307932353111615489037435158718510343592348558535119405720947679703533229159847738993488293881430543033799025314164094468143010629388455016317793065418418698555146832358252900012280380248061523465559512353633489789649669352902236997620615229128986134349822296268457819984010350713050556420608739902476838368209270298112549557945775226032975634086265429495909710475239916507521988493682229695717910109522106700377710551379023492270152707998849547299799577417971233720576919162128597395730991839399433314096026394768533406578177608928638347114979658619710833338860394757653598600784274339578730982042714784324701073225098357951024839046119373723033106603457644443721935873488703083853706323524185047881408337619735541971381461749379906773017779395020768823436079199760863882391669937369248151981861582058159887029098727127268690770179958712360461245469018839319201312930511953237355416986785267473728960326062688946569536489123494637991843022686514018371882296003730813171472776116429815756058260691132902656298857702998900572433431552863207978927332519085215068270472436655032592552423002082954939392251074282941890677385124082558410046927197187077620063505872451156916736579806484388569828686871567804568810892670069296544783049985312461873865550464193191890981308967869890395397622595070620654625207212241771170858848826507809079183094571733865438472296500823314506407268246398554376735257718278046473757084324708071959211467661692626402602756843893807483461716825113505325365600590842865039346312462051015377234769039350154197900498841627840256514714231452630928964394520074450485900462340338627810652983286121114680884240363806180716287977932099925654271488810194379435391932103431895078739878431220454516306328299733184739953981768845788391135962907446597730814917886174602602742586900444030710823732288481240630928555984407749265343968194396315001301806138408991695361614919691924227960446297266134660778828067822121668628746371796182856949445695368843333222149390573819596841229207053245300597729252093121141300415742115478936539379490038940693817349321155253778240375188098809370936879487543985681319416495966901039813373605110566163411835816839890086919351229618572553113487553520580557715937779300157993359836781977077269765944953049550986292393974223432123803060561709998889274099612473277325371483382612039815866567044255269229485828180079514632653914422616784296049026978457712507348676736197586505044179486892539531185451463260344759057760603882584032709826866559270399413418721984348702196834905463092165676293188208797948619679138931653829831320056896084173440533414578081742919691844504210009281011562173112561986324097559197440454301220108922109989423435655419102028374493939139556913681546267421086376581913637759404093364922406438686234458424179617624491302531650371414011340433822168229458688441280209679490252954462212927018239334163687333538198256451659877820104091687628274592010682178592874104146033656794344935500236494981440221381729899044478122525146582447428362901741491321777824486730702977359302288184418892072033337526757887447341129338250156478444500541264104585360714053428596361466037627007289972472462917458084993866733116461834671413590832282149006592866317670124133304038494782187098140544373658158417370615538672548891561918315367253892212539320940895347043343044999722968998705061679943441287233268987436762366533072529132257737641097565789898059357869880969327195781385521899568532475945831628666991387147381726804427222340377051891870339930732647775523679538255713224140952115162644205158751672733728768360167297146778955911745626693501226715513670020130681538325112012327465540795677927220357091494003623319836429520777051126530468101985293109492157129142554463023154736800777836371288754436461644369470530109560964328995798411157652119853795737300027412822587258014845131975817187928817060723731786318226258664813305830118610769218254389264377001474007991357381761873983770992772508198675912561242257432717348613164774768524514879961819918576983330803248313838485832964676924700132935992109894270463255629580037772881054981998354911979304336986215712408301749749720064381976616814976026977924846627115690064773281878103238473521539904637252597460525345644911729097079978197602692000527384773885771199104118675504690916292707365453440284398623225651861399781478907328255232687259859648365862466690099914862278686663994116705520321894980430561359262078596548018187637960545968278790578969758758456047068925643882134746737645106608419245919514563371445250498159001359178280550802520088730802033634318090720302506099758080530345128644710828136046943554072939068148941903371635094011645225569119645787432435465920745766763505301249304110504618309807115755587997785461538577672137921333650395174644180539297619949021558683265339778679018622732073457232610764824196149496918947853257029605288199648239069029502601309067899694330566052977502140238479219070464350126978981793676269519355567038280599070886386624319038086724285992719308457681348110538333788175282091848330145059055902470966099006970848371540452176901984014691490736140440327068951925633680563672953198008348852197922408805913952741080748514412678232077738274419465755031048919218685393155555653657581441170267291497697708694147893607199038945500276182862551726686835113421162269445194325422016645919780626275622125567129657361293151236285058931908008688730833676874632745954306204169675129540123095133561946632865066518357232227665510454981820434765015368762476802129060341320549309580552662269318414252361927011808873095272574835121970804871609263945248436132367392815440254146284381838428669426928825744124424401425393684591120741713869932150194981560441806292342608514156833772295117775087715595496746632009222721680150260817797433044818210712374054365946178689976730646076849912312842255848569451548222293025322545404449288806811064789411629596319381994844324807865111079987671372434418955452722564727462920582524979335490813598098434460157890545058523647019320404009274565672322726956494539146969385301919236939192125845914526134173162203990335271600615465361717527262855870919135821792948340475086252704752519139886911500634243249659563074287905383762830024543998009244655082885506426798124956190912238648808537225031653241053428333070161840016068622536891036584190631601238862267542666979045990455990300834371189492661354097170504064692411473409839745134013393530108893852791815504867875571072424936724967073115245186054514652797659376857863870614134529711939188137187058760490701025263743575610350653699496354481575134046884152683792380289215720667088851837116355459843449574610208671517676786081602323212740564522373109078801159350106804716843062109950798500940834027119426063649377538107828682547335084977060251017885317352954671849633748262940369006256834048677532947351171428017226718389649834978123116734476715123368030275115630766759066142316793055488544530923924670310625217945501954359171723767600072256895097449460435131587975884395159093580616243318303772093268791563861902797531859079858261988573077101563861383507292207701183621778067396198710635999990534334135292218885071274269795586544768224832399993717704381795325627706469173109751649747886209176335493678294616316320976542327742339224673635393330404969781779240895434182301456874300809335721301406755630460910472981747520919108372781951840098621202026351630415487567690942440995879420415860221133469018216203095357041331668840994772345894855255976707342195667389722315785340557049266632709860711704997487855678793777070258491045936017187076073556546994162499689639341026182249848654866138015232836784229709693882687094658463939033101207297462484678638050113753915073768604501387274375247866871050029874332810289473562571489253870851408794402493221674776711414310084590742672975843973429730299368595877420080010969358580826741493186846047444685938611184230493650719892386816895405021107549129464020759516313905487121147633133855960138128660650941972270610236691158757935325491155642468975755634484901585088775269023731127929612600625719124797957414398668699058236916024631521787068573162157968000752524971260643363484980712081413321663623498567577618743379400194169550795192586660362177494772008707822628622055084772769967726576801217114253415093621836207295023506561865689715296577998933678822716138129019980271049686814484455642883613183334604235850577709785425296463329810589175734151952277100747722892492544037902184572443858277951735981967916802949673298363349574060233874418853862527622874965487090540348507877479989462696599631700133591295243929858693073332318732105093925594447686081011113990505252427353499828394474480800629450024501773110418219390275207227229063885317453309625581319853179194771490948677978395981818504239770248089486714598021803122867441285951899145646337939230474605511563209073033781409822737849796534668114628024843021256920451192350563897338144955663599049979387745892054658026427700443809220529327324460194481199215900275231449532684775977164347356347504512851994154280600742254791262548443960982994387630609246648838318212869510382008605403852757814175291699609462401168889759916441130502296829289366446803949236570825441731284626400566815989878216526546471610380452838362915783330750281954149476427333372424166148051105718793382369926790501385524536096948652185020545839773748797100525507331847739247191100541253802195482926435835502762316781624276857567547484023850866770360896841602203703564920136035110108402490869154267496391655105091423324174044894647616525358591606940464674126575646135854745708691655719887146048543027821637172765669390350048110481390413829957425981467923783381080334957960940431212250235709913655327813623982268152097992736789731559922709943728986655877084259611962696759008281166858414922775483846068430403101697249320473781322309168009254932832578745612916196971133024687051356525841037013414912204414132135656985095983960731522739316948707369824277569425065792502853581606666701882684546861791258841267787923667983287470805718516885779114842442980708623676680906878441690276412441980053487595231932140935161569088510792482184999802244429370959034308848761063953707279504520542098510209071518904752419360413767609638790988701551298197034428154809421102361293853926795792556087260465352519121663077917149020941894321785653158811274702589581087017854966959224087921409620389850894552506891672716420188219820844028518935717285992743555904108191660120277693750090618764375685518439766992590211585617566539609003779755883558728345980887949893651779230406348138268154646320289749739489419412717195794640090956574397896318423105489003426102890579353506941991056085177598403616654996023296532689424339246120859454027762262572470341760464891459596034279105406123025003115676386000417315852833765625755359155320317351815257386747489047241454739960378838723010727512270413810116525545335456434463890649673447008030149075134084194171678545157552797629470487775382389752868641322278470235535341533536657473893838762716070969923545375007109674140038490244579473912079164375539760689736505026895752774686678602088616449623772994493091650766745240128406751713190311873034692826179116589449102651580135509000932455124873185946385119250513108471524430152533201470126264506223040517602291661298259378226508548371829776232991295865236123585049590157388969760903609085003712519898930543871474564035807805268376672776146914009817370586205623099302664391955838128369597375647787085250564207798081396953499707789460550655055199514263995429139764787059748014113295774119358963780549895022458422900945620822390943313055869000806231994839947160593320457123989932451256428463091528153382218890275392485268847159806312598739947302069887390504455788593492211834247554564172553746210915026545186648832286107129435698372990455764480950777633135570318827016567005628643724533940010446589367056043723935005397943558776954685998007095166892884674213299459464729822905683979370825462711213147992072130162155360917496532707905867991481976620832242806044822411192541412670609956796096169564309804103812479694648854489163458487257769287317405563964639513102277214667105355336569400028509364882695420212523549354957480002495436587385919238366782526763967877155748618719462872604230584348990764234045870298377158094937146477063446701539404986919276771736417731075118838865510646720053140600368610535503933344510910921907089207608560205627601465304666335418199324105077041401085457667133921407682861573438166791553429465008954545481475669108706961477229657589245382439228208077389567370794743606422915052741433080709829440988438789643252026220436214643769157063698885295596765452555499913281654037161644691411391497487455555217845619900994866258813109601663653446420169497137089609133579403920583895179231408462094578652639776888078619743189107588738206636608646805776058863334579355632855339405837414885338662524411390179858020553858668148747223329520155925507080989113760064741803659511468549153293694430715693066013232015722644273314286921658924812460028189732859805266031455319078037532844685185654940062372072134257359752379701628576419388617779271946401773144948386595038075269208073213855839250340321062508086378310980985453598155013391836590664015213756594631648201954732569560190230091937566583727748328163072239144986833179227625860125507487452667732374960251644551944370456734461927827556709969996236904669215845498860153471727886609274663546052964153399526376751128594183076832355984394163230584322646624149317544451874509009887706125179558175939642311964305615170679903861608791711822381221537362047981887525232126091998164323219111074598057658020203157600581435586182251536632894526709214606426609887591747233934548718594180384219790407295565442841408259262689238529518835278198310437207957904785593989231906795717660432863509389059485858601852479691669433933096402705628829753325837574530940157462664294701764520983914044127186621607541333220014901751049984603880331853047720170573698473374606153827374087260930109594082029890631936450824249010200744358558838702373130486558515170156012352734678776102114533772062396806078981314061269716911733328759220172011594296040989888771260048358890024465937313435137312257718948706973684051899760920677100705397895551805303697851699583948538484120995872718976034882422544738466115390015549634556412481048288640195982530537962447688797032924194284374284590467868363891933999645092492711584819624420845734730240496509377968872674214805421555207610591744989938003464278196148567321542398293817162447161150616187867020713625346617092869152632735823954373959045869739352673147144229845205408710663690711165628150536123142639535978995703220832308050209662294630716312171707784632524174565550670194150640662410287970115973388902126548019082730722172424079483573857258466157223270694615887630473535022821454149646506030895313414784069311925657706922136737080261529647100991964900403633937845718957075193479916654740153129842183042582339083302611671106736325763449201303531628348073371724607564057401116540311194359540351259640308865269339072640784468720246672521770883331373861441645368553607472826979565218670867858435664994391744202685723735320360923504803787754107248024666140538145828565271367911305707874324491504460384761940168406441904383687477276136282143802929832442904919719465086865632049786281921910749922331554031119113856289483179383196606473917066542470914853024519488431805717612611151327868199952358453438971454937865922413853486345551826372645862248882252960575146601848717584577555284833944050255961549374406191502659893740500806591871634079287135822584840683723222831220252200457216938088073173632610097344404658932142877898890568458901692287851957150244390604749689812461931335864419838954326395786844067651864249873879817086662694025324476441380768506951956322582131551772350483415690535147652949761477266854090506046857000017064316136329815731787707078521256522117402419614589657245713222514302947487812581468125146201017259353621586997552450731541195673118433321235679118042057379131667089744326644139079379931390333381956396908218710871803704950438211968995575049369995190823220464896736296887644603108990109380848152002698178832406658953789447578350810065799822393826943953192645951542573920248791412755408186696051601313275440644097868254280640062367459072432257724006022777321535701476967500154194694764471607392733406159875648605269965615030672019338385564861151853272022298857843683519683912975218715318971864536552439551858168220026542434276824642561969317807142136882775189090265738434335570348596293168455990156969676321077780285201573000501657487367100185873492630091965436191305278068721578206618314354739227734004923842472848501935059486668900450266168147947877208871385129416758328716581697927050041759356527090355431987384398716703336345648460971214875311494332271715537487052040969266530091584922298170179616629646913130973205705516450681817291969693245479031498975669595154156450115107908249828595588275124861957874530991014650925847793384656300389989947657157120152706024730777994585167599039400904783512099723126543335364159965102676627056861270004699026614193420610937337012272889242446899451955226035501526669216544686665951713871398262122329327271461633495451881056892969276019341467894958463185385274257266732742386349258417278941365991686649747507652215090179121296570972635581625078500635726357563637066608919704315166971559740469555438454415974991532803782914198650295714863762759199594035324248004426609642430322961254887470493706026170238389246965357492315285378172974852240605041281992513581791973335772247756838217666167546297207581337530302913469025664536251551426283129810597339510599317841533703369189933173603248266956625616234952459402734829607229791046237844172443164136800801788724352988699864574377753219101097182210136564486840125288343944091928812016750563373866885001200200334619797240012433730732206506395409309568659254809382693810715084779093808036660768543829784913404754730130693185527122174369229249028495865313731925754659829356432857888245655311934072973422973795310633159276998247415070190619995216656115165236426396557085988337422230786016915206401659440830480671070772336021844177136997412135076928818783407551654490859093988036331735345066307704408433607525606510740388584580517414242531413859960287491272540044604617391838444810069691622745532726823555770094879097305517810772877855802882129585580412452365016228402783886299010680125485886516993975264851161208016105800720923272036761525665074232280391871894029479245623965866477127450585803820663005177227619562562500447588823965295562826109053053682169571573118066097183004463972499956521770216294112072735756194082246758878982442288371809067759290992868367179386570774132345792112006056862524740550783887042889060266054713214480446785322249740409223881445447191359036100618931881916774491199410369168671927648428972663290490135212745179892685667943289819978398848069936931013634307961709615603845004498013538772326658847257971661165207917681165646876879976535675079120513997692188557807761996822395893554579841453049709333613331321765227722303130670207555745262532296752349280299435041847018463782835333599557686143094608348322795977684677898536399744883376441854818452646591710342555140145214704217403579475387111335968441747203984059968690577570305969612298723161581513585499964708454383622300018254150316135656016704597154910957132592220483661288176468637062339000104651138139458205408291260540423365424251884749591770168009440611056645732994780563718993501337025883198209487127824915961103112872298620474880504885103544447452940306116314472535958976117459765335614118027263291815377178107461061026956087953528357136228389239253158520793572770435206335531902924454576564695517422166991259336145763885116909428294756666315456547197360457407050252510650730445130800641903662467586649386780552836560388543672935223792493434628843336533717008834713885970096242543061201118275603338390014745631279003376936183196152346662206048574452934229708254669056996506153830914869967146281699652188328296320233366403422253214742710124373306798819963454669882358185434300480648490186893189657657873960659775420054264596938037232700046188957591871653746591879654514519465139807116634624963043565981469842049068919746140591442574484951656841855306485472811415035009409079811005493288173235237267604753527156374774480220858367766860492912564132025174470190468370520211500323670742453021498306579665930712155012713171908539006234762926473902043884781591449114894668174463717246808390597053624730278774382766121453671357473467651208717348729913836076422916770583448691304362150538267264627031894512207916241796433638654131326292945350963644739954928452254100612866518751562695413648986426659156772958115200375874640761896269343836256459134146949044778854942465783688861420007319207385436094884531934156511978624130254058286243337181894649074382271260913769582479074591284836832861683781216817166882264555954252788460772488155741928689217151211948799588420605574807067958156278925443725201590998834286601543229524451173358506529160866433657909659981567836975129552363011096320520732203817021023598962449841059677151321340404806436008650241463771659389196075900574806730621283009641812609532343432655106828741067059595259584380289851705946432874731220753066909915855624609531080032667857153276686553530364019899215873598656988847015090419761206996158234908174608878727167600498924995629039850198974155285514691588475198076186120775527284780707970615413822849464608651875254599771472797293942132715718159592755583739018786017774069251453189799979031806005065338771679398545628541001611431968454015032663515844194472740803894869247180098979100542460036681480747628998844318250537572893080504729412723496155269138076350628337974949481179226487453271344280318150748013649847830081682259725209062663387357267115263473761656174143898825482150041996033129970638230238913051130776098400758122490049310988136907121217227021129278369687759902411134303563559748706927311879838931950350761309226011902098185151770115477834565012437569993064405353099369668300056877996278600593217600590742028187809697354439808576065403292690197656138593482611880065099261687285039966722734583872236532244174860951351514700122303542387764938258617919823429776774774193612579402632068682989019728704445524618268191338790145284641681044560018253480878540178250420267563173467897353219987217316573284058196105631015801717551011238935555797673565275732734831296131477249936665690791947297176672114372402026675255439771756364876365491988454752739118909431787696408901794245226283189439242650247942784332624452472636560290966488256563257448466373377984905444882452758537058910020970366891742385080783123304610177693645033296412227037042102408016382096898061789794619626622286673225375288907972810820326336102519634047590046911896101658565856375542445246815718195000640110772542800607773835671401908879892647288922743982931730283709246359954720014481695736134573191917017843890536534002737851971405102795991796284902630180080628928607630732028237549021417973596888428324950122931350604638752030122294383085148969501819894455254776443853238911014516924142888850896039970791284201898147601091799581331559898093420537264548850279817177922795550791028586603123793979255937163482145401266524929541129275786485307936104184318555332617627305994879263740837090882359775091575223390503298596291040268174520056047787992189886047195367561342950115725034375772868113039144526956989289458544277843637515299251419880174859142754248604872822314024096293778314424772792593930155156264034971889891701850117013819185966099109185042788724173148021299532272062431302338201366246905449507604027897829134357791402171783782738568106857441378278823653224893921497870977146786571169422543453472725935523568492628519571226897678691158474596212638010400170408392740989197564673278869292817295597169783995258804362404860311588146023300194366379274391647976527327193405026442478939615153876156789383628700596288994326226200539127803457611302244405690298777420035527148601295921665376538675065274654947574314856942496538806408470179586329004462229135930520939301170000008386872279678961195043594162433879946298146298003258722713209123086196619051712907315113208030498543142187515921096521522050734282209098548407526963936577534940163024607936189889639738798192517629000294235942258659040538863957782424263737286908555238396928052132588642283285304891336623467166999433589450624923182612692466594618419071517979159274306692500335561264999534965732782658119001515738973003850332112571599840725052356651092072945712228922541592544006240091999565591805707604192944092649146059205887769509573169638531194374368989130562209763942990490384090992264826156224126009097785748583871725889615618630336254079988497905081497871841814395060973127034152120047937021622614000406372343259951398922725988867699680058290931810275968042942991278698079498655577562029590166610713242286997302814165290746492004817168493322164473419301531810788021831939432166539113600285295086435009907564182630495288028187477952280390175004134540086561310235440676290456546813273896081877345803534642281150983777187783644739080188323866251311773748191972921926261611440283366525737074846888326228189506803282643710363834029118637905264879996870891606945937235682642142410875645456848890318867706227457331680505434629024759753092573074810334708435766493213182547022559819663973903378547376656374291735133262106127122842124084412160170598250830608512893493188787299983952752037946787958016767072646404802049274847539173992835949737242037499706269500490716289352995477998476446589867498751936907006190385854277158970371468472328248601288664399238689417155266071519663043517193892719488519415137517197139109324254343256006091250065348695305797275942518914937542723547119370965708766078640634381216426413375535806565772022690752391740908913886735099770562271856911026730356716957039517637181201240823942487790461482926513394152161696974131238914034363876906853189753588473689012967501043394096793696765316674516534785958932542059846983630773572005265762358553968211761273414917407662565821528841586615830158507241261628167713540803089027731502570905617657582653763530943428671118229945830464012916855291462761233675952394763943292391820795243010069136774743008075295947699959416100984188421862695847816855300509090951244225231728829692844696376301612450355919171106309651182677538893321861385981518595229735166616984728556087455319734657472485929099958972259355372107981957943809017550861805444542590876563617297980881887309336821303199722787527850650229747817671519477770927298883989990628274555189664610679170823795457008148237641122514944464510828225125936185471329179943366061823738862855556102207921013292296746482455446393228193432432824564775528716241824531813192924992119186966962829737101954061804495605207762033860860411253345564135808526361262626194702024885402534304029365879671612573821111080563515927714948392920759913259341705739329535786724430135167286823335711712319840629124795676599963979079333282234253865863120923417350401022732985146703021624077005320185733268711454246174786772000740996018238319136062017179526942404714953844798277188763991461869500338316750393798626576819988312400731354459086624509027560443902504316852303043637821725604242963176523584800521431383217444283272428526966426764966799175076668869365272948746014883919775641127942233392385117839970022960006411067011360588200566740966953790513821552199822924926500085010402556874416329410000428927626958105934503776437618692728501916768898196460716159600457087058724611625530069788276442785724070672993894750585126926479104015450787837759818443133766381993952852628633921393702003212595904265976064912187000801031551492784457440827328886835271334421363309413827841757518904121580281514183720352207736986342735294463300613365308148909031802879025007193978379752341461189003004434229693322789283641783776278894853720928900979382088537808277403471617411540299286642967053762467792882778896569769698672668507599575126315276831191153802080389484572785322736298460547072223770566113072693090042755197009627610870382722734939970210230620934371840353345827063872176174288140966034225048428308442982661126062111405395275154967194272620944824263972849852769175475906593334111347452811373831703522559128467947518942561040067201147718620354104755679089703155339754901344882381070305177131711179118665368696877783345081814052718232345012422717050755954682282356728276329307717001817927192423346864980296225335886168357936994853150041696154539772685083252670448677815937346702752738048872449685007786223890686109937316397595574977560915023877338255866605339616205228839845614809535598023829470258691758285289023700768971088382647517452100451399879012766467346598086266684382231550709537250073559393529858744992295441682899614489835573775129623215474662128896564733707676409494974812740189356252033238115999433513535484973301289432968102997115468693935391105090378930194466408926373493530678548544271564076437026874919673235815663969859357871711745286488949681752695188782373114983552896747440365746815478155216914400848008804149299919211424485778262465242035679591947771228426409358785764251025836073411057746330073230670132034194990731803785750391646992608709504209497293006627169473671608769135849471805575158620000067060575740502158958172496161680692973198557830053959218847980885957579512237561929701402891394268163943966671566723322281648830293406861750515525558837110692599012165828853759064525823123104089190210576196487354804824580816035260572406630351205293107066710673099258183988783145777732646955130366022400710589899255402081765276413670222347949976219237500738893214434894762023947844626731536303976718250694073818469029429011642851367524435020412910266454890829122283204440052314034884302198468398645910862709455616965258120962647919607331237706731378486747363269921057535956433092935534542070133767049102881469273757306883178891020962803858328612890187157805221176947857082657833030564188947379583145948935036586198911655094032064634525327029703749462589940159265257152616980789568441953287979107274778864051647691256167600717228333719788485616906287196821043747159345024085573028274381319036103262885836945762068983712106150525963760129861358249172522163809570159462151802735877468597173234896562772861240837664198089595057637225163202178296501942648287241911595103740352586046264753925988363338974906832870288930323019714137039050149204228205372238260487400336241083851734938676639502576863865969829383985011928442806807413625800402186614665716399543284779199551829494600718697281794483347501682417782159583870653726352265404957873319588710848945005158240907805265592203126684134332448499563345656243149438323209242717290329642289706945657650484523313470688282122010305770959577622360300347024881255172446323746753161678047036098246106499874827074070819052042005655647455534241180527290746601735442064475308495275573861830416743844690625831918307662900024400551586757236178569155457156862944885641001780095029398037569580263432101586471864683217290329420743101234249713839668109727338628674014121221957220787563306864099633807233269439651058374638646280244653200601697128950525195888504710979090668476169664097983008414732304087886064781791801054346694413189547673511933778888364816710554437815347507484036321850339058893124862347732728234076411024951528619727282189948576849856073986589962222230028428274551595007004405237336188759540012043991432193429157192763973880315783690588945821171316671919709296991933519875412452662226826382508816879125462844496951444351952313643068457135195618941541766015579415044913500908227614514786409923169300091161232461572716319070870794289963673211110311697939473510229991761763853158321692329920589650546425406689531846394681799118426247371305288252015748430778180982329681157774913434083069262870696390340500856482864273300407707557600230886485480998498843433407345989073864601904660627841755618249581360314828412393921611894875197933140653955289894078785427678192243598481185725983181401490923087430628579289889322102086047889773125615295903576158992692586557144569163133822591514942396059056139752509020156312269682730813604073003080535753872272822531994359048220281675020784416351339786698219992299521373930521497673966202894440307421345795254405756303305788423797717017269185727692666890096656669058431719275401502049927132765452874319361888075622212908349710134374165784790643794706645579791856101635232320817831093837570845500077718403897338565269697682033462540304726711722842255567641016298034272277317586755916309142394412683712146200355049276938601295887449821900130309151632633569064903954385528617854392394564484746228534375173499423287403127342071393618339232751891602941022819358999347953671423391163450379826274893676121306431059967659825064454908796492791243600810000255550049189471451064075474118202486957984902055197637481925209001656940348480258826580171907884928759434233854752853229791835564619586749540409723624466102794730808869542283832304406242367862052637992188386851591822087726135238027575925243702747469655400334539669795272583319993732716429707781722821826465182453700224678684885389554010426458413837373478811789108531836812102406579200082399457603621444720794519040681244214413791844474251413574044228506995935948175340636263709327081967627526834802412150550632651821891615707676417019702559352692953838910353950897864660182082727017228338093192687945904827782878499208304207481327986766549164818004921100901274467699780634107614353770215559951218808651093585362535603300081481695104610491801377278317390948468642725053137592254512334666116720304294617450365480277721221543624752657322605179894685903727206746302031355053679033397026660990247233938025919260799674993684360769759315692190384642914000805647348672514484871164192044034789795774303298229100332463775435095993291145642283265797592309554546217337513501505397975225937001152297543949619696660936353533595822424402541213180628348783911827953863592148854253713284728751789950313120218202060150704870904543175451949865379061672453518035437919186661130271393751983771966664110943854851893664349937381150813409707006825700327481110617391991272045404563888319911530821250006441132312217122840079539402706094160748704796326299789779738740972837539186198032244596497775028628822111193197102946830496629164490748764060749189757857538848199709204775710371892260321683937007534794738225302054878876867884429066139726799870131229130107511230081936792671808334038063314790833372140187473664581388837417365094085419740830557850124255410668587295144967178218152153493254391549102136501439644636771114416729380202853647376972663244390977623933305979575610238266721173987463446699191850412950484423317694331463187116436292718088584296725743859816803934708044752896690846913056348453265198387962592034307085945097967885228187091401275483670771440396098387771582748863088479259784102710464445044796966422438124590036416008405534401287439576613916806395836284087129864756262121076128484275549548275992338495926987949549187069257300724232319606366401217888746723679281938441685406091284716678411850709120248533764022583043294803047892137788190412003566704955097468542104974500875061689269240116609192691727352566586095721089694438528813849086448079894397383798945027668633977233740226696491620281574551843418862202940963429263085339392199325429614547278133628998591550784559662260563926452907811529265527985236016880755218149472349758163440260564258397982685781975502163663034095206793448123359003522661846365873061953416627817512226815697782830984832056296784789331853279914033297203515440372120025850502524439813229347125446088723193944541411753307406913623506154847119292793495419158178053858495047037363146658656625043154371177015738103113741861158177187348324966651903429894708308085651521514508172167154214242814744092451503219063272849064541923109428569502348017973463083445201603754227676691688142707411645097526395160629982495954630271653990724970456155900051155729081698963081496075118685042692563391909368589243447332249952890504806881104357185090892862396829441817380363471187853775693435110405231653696864013540028643049239542216962979624690565166197891827868442403154000491507654239995473601634648966815112375353831676616470056872148130887009920027913834867411702096975401823054152356775753057719151703651685475616735202589800205073600126902761378291707524731870533927154299603426721122470951963912349051584883721297028002393124649775848900806466422965759525700328628987409375655355636985790525578921860039318967951581219933903053227603047835312576288750115882104489628930257519280647912755759999673108305539485831798739493669195756325382551277168859524922767930854540744555082965114066509079671828367353684198632701686007400393744228098426870763473171145109588140090456657278648868172485361430248249183709851405892589863818744011780980189877197484959187119297957145564681832330091750392270692495113231872557325430459646093034031278745850444196069127287339742935871524600077919840065941199684907869876988882346543476294336964145146950001214252902037064155819908451756310447318580045595540780150164846577127133693998777137168484372120854898194969297284908217049569115089929611353489470533042505714943414770823724831415932556263112008448428257952283284201772453346286339675549028213817476946614217960111547619676916151656481973666340282599526425072285570445143278371963018331420426639349179788822564616615759755461619013084979211337631007700839947526612129126922935563979296865396432605613285290045427402869623188986831431942642040811839772399661661853695748499133511471871183637518574624864403787422428620871683965391698635399541793389038801406605117099260431878045990065345158952270214570397877906302234635029722854539230530389541954423826125557965802361404845013694592390926349668822854868363021272292690344195822686999751729283765370292412790873167235925430800302438930939995754153375610432700723884292181623168110555702945827487210076568718156000402533713145720146235117314959830113496234072538286505057881837243848908796460104313338057449653149795628479853268472651613410113151141417227148569215656521957478964134140881372574615739616863869021489338538480647160154944728160320854849883359160314865484355232956815830620658414832423972801440494344699157991879331484236207959917088807444015638060942036991145984016481459280739243447084090299675105759058982603511875487563926486756349459413396708030281559489311743728830852613308051324995723291090638548396416106866745707881901616053547634735314780290430134599973691666614576441515603162632319798470009539821906939306712214532917457327165641614433588631703010444791953539882629722995227735812927064508301189358665005050551859793334703634039143183178584954569032351114857335889417106214685010828087500099254206272733924701523029590713625032952950480072606120098340627980852189393217577812258771177330883675789507997393038549682348226060459863103832612213401000041815947419355041714961856447680934430988665244203121889293113016454905994525939853630602873109756336843357399564173045802212141870204925801520157386447668740935082636983413533144307791271357882327904843138198913361225823814938989466462406597648266915062128495483647395446183256841866565083383280627479878230058169762037784805430956893734338051843928488907742580814630253325559416690196381387048364608827141539345195459533183305878514560701450875632809480406882639218842390198190537873226755306523400089234511957725018409956277540521537115130018129328518672698840458638120174610911397455941623304701101317609019865796136751001538665074013509999339487001287470222337653245622318061648697701694373994927697515064730508421761480799526639855148811271337898686724411594966846795442684067119288739496209480050160667404353307721583139228592358635819123130003631767663279698613008111567443438827991197231094998623816036603420750661294368367932869193933096534094802615600626211574200991771282135721510776468051255831238789775219894157338856077889513423866965575633407388952953653014695690624357749100129827374407051240971327956506100298141074894445557901141714759645887200338507834653798955890895710713206025947748513047903387800946167861070779264473331321002937809842354911093285719619890995805176031375150566500454251624837310357143039914049991839822877714358803745892348721526139951718639049010734252534561544974598792922770241706284157197998924071973367930672642088776399095187381579364730041187063800699863183576575373119575741519555597814389803271459610394231447804417022952066549306709702854039649972546261065990954150497709154763292854996066729537641186608120021369779350826738591228507314132492770539784664702881060886812605473501108210468329189284160405182753538361010595644512743210285609669485424447330945668938201977082616519196074442338688719798498327117680566888503587522362878729697019223194705693799437782504458814785798033802312139826625463998802493819159438257940818146137983689620720615874933995347036188433307397714175524516569821897687683589215390336459498912693643956695100659713377666653103941191773995005672878758900022278878948418133844138071994182605771373719074579545547209812882965469239472228704957522198548184220130917517515767881728860321401656884248326513597743503402641160622788225899871031673804592291796461150552169467830933357800616948517747509097909402409184073772630261864071353719018643942757652525098691176730927763527045152907412706538098537632702590100429847559878262798194858109308581809198185786597963943785434836764400162577913453772916194157838636728121633874382216865187579906805008097904232348648178955927239335861273537942420917189446595809193447434241663205618592186408820209404109875335640016116069591919184450859955851986825066492912766024341415685477095949230926837977512123771820109061913794642450522372213089679368081877429652778872801208232236862657459366932642711179909172222662294547097018460330704968483923959459607853920355847917923488079462560590326333666513096765816410799125842578132361730840833145902140323993623490252392369041728285512525347685379188191213253283634869284856288986198213205567715902085138272596772188046026898359590636862426424473710781237850706049271485289809289008017915105306472843925525544869619853695283757384974860492844813580550496790993198639639316512214299948884317703878636190935059462041295118943342521998578960435660849586282008708883474061522035282021207822704236956844746803312631697332075556716304526434661394447256386679574334887773632533089213605068950293308434753264988241286744476075136381381502791736075057366720614895992366348883277717793454692231312594100943106278539635223268600818292337991371618567663452435641554875675095490645772228933222473114757381005557527482657210449993760429343323473569154034477014258853837097874628610776513213374447684339604141703157697873594931615380044844037142743011115958203651642788298595410988576824096312918126897439345615904433368182232749473948369572092042457729038051099448285384420520422666914124042381987795045604665604583910783612076471236600371358092614223830166584635277286304318398421702209522357260654028413940071702591912275521471589087971791341039863410687891344272493862582453002562922565563512857266632804908429017000220815683458556085234605438337205460642712848999345158275110592952627896515613718739272867153353495055866774016404932616396645518387594064620066535169580216165239231893558139425131747039493963715224145439401013670899975301706465882235699080008801298123027360405727130290399275631674941003273831050502469381276807337823746573471900739049697453360615369577900066272032117954795243532071703772253453215908970873074572182672594476433207674313278761916352136127099911736158993551029302767989743608112340889869664376543096134287970882638677359582523983565951585457113033982311801444758527914771124150043215715600854825959265688020506250941611501979720024283049821370456856761948998460538746460593851007621255521898407516052135573751991440349943192719944133563024191250205577725236989390420344930135928506581192321854283632595061424103404944268985366161135478037514215138499389033801236932095352780510509026068063899790896515461810782709773422472417679831958918160258925466566339699700984631575453861238419631345883280466573872327927220263134020999453939981150055405262507476217781750796422234859897827612401360487384460733909055867482806480591661716739282169021450412267455735069572021813832529867908819775560134989392634459146965435322630080809319718604308050786525637078005790245521923297048027336049396715779923147426752116939817186913931399783875307926371910575904045006182540661807632374739900762901244086000563343159806064884907620208037041262083059807497213496448197314831120185924004225066903872672526521355356138793044589439511249240884688714175796965383992329209055904527526918781139384197411773748327315758297175167538328507016930485056470925750563620798078232867878881244170471767195353785691020382025322845102244804550562125616847730868405883868580755414197515797041075719855292868552272695421204662291345908700584536240174078386719487507663145407260282436370720350349889489695493930967045341646154173050345177480186972660717935825734676062772943288529783241998291254178948881126821395605664796084589122117422091704638022471805299110781278866789351982289731693542047972296309125653966564383973267504994428362162638192653992026961594026891879802411436372401734252658286732569302630915303567716882982781654436229058646703317578377402000188236226123915776763771178570687730072715029797170366663577755191574788313376188717542275228301971568759424138997616809943927655991264887147659769559357040492033834741893081690792413574947534084398119134183942340609262149683797461325306741113378821705777076710553509252539315880027534412305498151070929625854808040954977897630670314508534309503381380159170530270676807560401886514770149253570215140523633014506075524451758006712274398599250068025919898113127501021326785798775965767240949194853940688169878712563145115736228421056750672186075636160556154633807224906564245978684175074185333069605851140193978330321473728931974537474868637431208025537738192662220827841199814325883035862049077438082776672474552144032202971907694105531671564937805755808598660558990563327783445242304030409659187215194695006517553645989522248032165040240350150910555891617241460035349722192238852804118172017353589986035947858761697295494913785550796929976959688386836043432113777801900582419303479430542499686263466890368591572177907317379080914611120885692603792321905087375563145560366913608466666818655631187303858980705777046833968873621187533702540989536336536960368679956648163785894630762341057672486665107727319394410562644205535708396176801062656690885224467784318540346031695082200749886952511202730142677642707013311497375809776756384248004765312173248161738911835986062369850603327620329101514787115695796361474684610808791176605803128525017838361010634326996557178117784406438129180434572285182021565212497846785684555163259448399105829469397010455857322221730578075728238963503589241873272090023930046496856899174382656924284373040660357184978237993894961118665044433310744420788630167789053084213895610385156138564556475339993911836277470787847770901601809054459591732193188490881449867589485804154776154342138557621650299762962054460930452649184220903605453768750962213024718969626560542805878884846410140538160844941967572198347435308565942543068103237945277497311997011334535202140037900580336981481827333320179873469894941002922987051319479897316735506177215162570894181199238532902215220430420922172410063867645750300925401540552681844826215871950403049625170329120761499684745215156163595263460967684125983631408555082941186495432160033090941397887744780859439012133496448332139925863681794016977150014783399988671427446734948196547329984774689304702144029214290223130771310139481918608538457862554416771447252865551114837450846581969570930536912967943042746648303091198710229905675190307998196547147106492179846082016329638191252000372848024890411847086967064752318163092947973514768903416596520235968802191314208487556662551463353231056810822866094516229339944062658555839177473592569443745031763718953296716994633127755580136120632216390491457755815064540815697272714342510101569694774160627492174632526395437172220942322101257262191668200667704101985635456108550010598768264156862163988354963023522401690695235249671137506907490262242960291899611471318905143307310557339741150609826836487634841573696925316352804112153152929333255399594395306290735833406930244555700181357840435623436869347879605231094245586378571931873388484232085366917852614063759202888541299092248018932122445896827319796271361653239965720930448939090482958622329748566477043218112222629072884800858698652340037903360813799694073830110952635983628571964201576994351885079339285557314031862554990879543978108699257826004571461529913721885097000021542181760737269404550841952734148747552901273513529566661487929468043961333108055664162157902571720612342427375175159967887847707092916913085388407551985283053639545102394756674034757708653694624526600430605239582321241584527691230545479577355207211296076307874078466686886066988286128563761660059156154956833616857380870756063887670661639067758308115444467672720457585393260680825968369739241219225314232904322383534727330302411099312729621313928992116444287892606708823199534034789905052387788919783926815277188686025890808452764889814321483889916714018300400016900481810172038933322790540079169144044894401364929429675461391845943412125256256458845168613513981977211521744898417279146902276050748566466971498507928129333315268227569662671973908817053719288202815126250113529973860093346447967709381587047888411801391568260429126643507371367218873483341800143777302343611571628937401423069765932065834608350324923584041299981908738603289153566569956438580726580809373540541064486195915141039349779934793566029821639309212488631210717144632728106979629182609345895566569527539800469799171229764178444483733229085534382927924815353421727479440189952190395914915727373500510079052872761962890177657003963112005306215776060039221057432421069323040838219332083514457425211545894023577894393924733355762615278673478005031645748430154617750213214126657584951343200875361082646022849364871457803040918582008280921734950914263094905306765990597779165326595193940703715706123160676749969315906171915980226880398117445886446382724890488110016847514206376912456445104837688695314651425765892824339440836658374214952671815635233531958317003948194726395190900540765377854311118713104957532045806580720266947813549706674657526497862103606472747122681087212442066491530208805412337288498084691591949969254832909680378140798309790536249311909174375099122336330765185715854386638300227808601248219187878467992544831263719907161515732474410741017785510912532924695828921050369956723002825954152676778679181441447156288598141791090402382780650877227844771852243751863795610855338765444161234182893057310467820827786743877953531660174648532495262961211319050556168434541863035300264779129815765207114012006556780185035837685058480330319914482494000860526334655134486211783939385641623784030857547881522160977881440951501977490360273416684771480206386556021460307616967987742459579044814159585331278170838191388219998907024422878452190277304951684365861431746008070997319881397934312685969457413729703081886894829227171689207620693494473970337082043045298904810474744285966739119371025910402903698045781808490024021589304598300674780032438571570070932387671282797249932069122429146226424224044098860331979571521024078833200940707318687668864994122405823006651062413087141219226869637161526231287346938178815977040881757148224147573667331385358018873859503513617073725443530065554771378379022251899105260623094648486623200770715954564252609552601942777148929403139692654579230743993092532324658887679792975206698459471814767804081737742172676226721668232482084303559928403359910842895133818364241115682763666457834711565657943832467493244616062588353702025778661543066047850945787757828041487733704845217546527875959497017978339964711017217632244532014080808613288536126036485872580188468327829414586195190556404119039074950864226495121067369845427400047358341667352541022347736863746259323831525670207952521558479360886130620607289247001714328233885052291246662003963657951426493914651483275128897027080580381893258275177689663328563995386903701129876802154520160745018780568621171723043047925961213145717235935134806175775797579541020366504557064362967955345784397428986083312996776346207582152456995790228741605203832354746478140946499858583087757906314786657972755581711936807101852973794963238685999473311079192996819186041369312362952429707415232724616501788322864794435459764209714274452107335651481540934516227463290213804984208863696549683211311647409165131417223300460158658575140298515279092166535955386088663113543456866625998875084251092445842871368441146365036678545111917743160908032656310187137274642740900738864319879665048269224104950587672657126890906636073096547410091355477208177169395945081759894149476026347728550725923847599695552891423326484724677826697746046487116447309902044954270042700729493630557179803657839284709550230062854742139027329121517915362057583498200701744897506149082034880180530622095025734283642381777788679799672042494368746819957045419543070442298174341409811360137003398430124326392772651276887447224424215749158092116577494418935154696038106853717934507212554915355852740903534742181896650273447018537089716729665545229734093049434175200053278989891192104593970113240133298439058057403721580390121480498865023720983223061343103564841236342744290079871216368127925828939814824585623045500325176586094225412976210070298128198769157921900477509841371001048622073370811913161217453434634234814594149785951646575487560757438420586342524417132277573769889600970558841695066398911856270499733473319495511504823002665441341557750005249690873075693570328351237647296509067050756022118943524599108678915065568877426486523157084998908143852761107906640809685604675532839786246465084479925462954152904458502696420502262476455696514059248683345010690273508039119586083268204245171611201181463644706730908428001970583472826847156067174238024139264581767664607764134583515868135340670399016942600044952205628537104585935365319283961578988226428744049990298734589855626842510007438341835866329007689729203938871758531705711325186517049582963272210858748268783272255102923269456430027367129594704058885050127870078963824910544159390180374141880362612730163629194372137737111361159918177285250005714220728173781739722382758024367214684310248651915456810328270311361278781006448318487740301232415909232201953425029590425165103677100562988809649453116463304890002702605356940877770695195520166684359987455203090196043623285168652244614335095438406417036869743489244926874122067665073407333180750343840277768182583297786052582925476514611756658443770368279851888638418338207683696844635775797107020868042211216952777653172638576339376879430836582355971812254083806200081197326052752307088794328684830797944176655087665355296286025239492040153321829932773864244082598218373391221655613767031708446761418184390555103606556454672925817010158928995222806792528404119082799095770382445868884038136142063016472988222181335697647451743208812997208885572106762489406955192323147339834570784914482009585067550083288576431519462440269710444903442721229401502244509882135059560414932247058817041288339831325195655096107584490509812571787132998683355260121941785849618254786097044002947050404538892595409215658777790651269498058150726689614501232520406181619157285067227386304382360359795885376123445159283322907125745261502643490982661517022714610742639236036449762201135586891188788700827480021956920937976620971151368098242878424770368237473130238667791874624571458105931898712764750873827526864925024994838085816436019550293673177055830836909671423682145050096162099410822555954620120936536006095027388493871464305381516270032574777307093358752335065127426563301416180816008015464413636742803393775068012830162346956698737780997064140769606471355241253601463843103458695843344089932938009354879940661549947207221011156275467043423712371785512128123052106052864281749305881352713545306994170281536882717080700264862901324673186060397175765437115277226591463486080225636206446077496574352324025825983330126208919919022536878579987984393894035070696468471545811342721263787580250259108807900961654116189997219029677826609932151338178322759839219963037784147889277993131731144710108592417923884410567147032558153915767347220185950253569151129453948116313360872931328163373366467689657679401390009984423987081649546793908163493610608407955870060489702147129396679912407960003119547716500886299661877597372508274235336987702436253306709434011574163232025654593796940135454322001351603692478553021086073590365481402938336615225512802450143593038490485209062678872154434321080434703063528585449535089644055913405508325271390988218401207451967284829734175153701926073040225428443043302616192545653550544274515820463690416134837589617985842751527288672101963539664876655142042023445665343943979520045283030086263451301080497409562781508892103414726516192402857041094504876716516197949587870516673166345449982751808509580563760389956084820770984997573149168927084281716763237349381575992971419637293289020123986064777064240045976041608011381172736339432567197110275347098908743155370576074417089843587364517192618557357034236484344131837561607271743919925205105441026814443463363182418801576598547860901563563300302138234825723805316462468307947560776997505350635568846787427743222251252078529184752368704567596334115647181820046470137836171449062551550683979616520169921821536426686590453941637554105369767651336105320041068329414199430898788733207519866515822558317225639480087049950717038023006838986305297820129834773595310835167613592778654251075900226161835728194232073714352207460301106205836951476591581947800141584072209221070090685126376731503712983758758367648228374763987237752483888045660946003024673086095216968272226278701395952458684484554381345352080361536053053845467405540269685354983676783932750439178754898842443002818138539630267551132100753187049393133509991112859202727217201363991395023108534773496462338682398909753431909667097891482674919582988684815626494228739833898779053134592367508471629578764554615842765279195782390421809586082256005771968698676841706832824026812611625303183469934608899066734424630850098008365601120118209796304592690198804921269572005394597249997993092740461680988926984475020374555232362529651643062883092351278579069792781818836688312883710241036090598375823715444749857246835734383082613789394873641589513173372976032553673661475138098121320693904051928299480536872649605514103618175875371672685391909193181193424755673048190594327660281005229482256814712370274843705595256131179589205997068118348329577843374719875789086813191962191611751567776410815207127780767667089547879240568853711983613440557845192259919272022923000566204596057524552321954473049050364095161224252968615598377639009516616888406383620682941387699498992462632055946973120469706953038555689943051435327015260801181331736924560484747448745711776440175766371132266344743635309997309823167803341097230276895310337134225765787932630936899834697444151835547738454923962064638028056498382021066393348828923854337167281585671604510354700679556596145921724519066010214440265561569125186405391469815174506688360492066214356772340133644415679354878502194762544891159854989879304169040299586615928942190304280622714803382730382689748136473447199218225055112157537569769409507709318030821046289586641131680940293418530559861008080291622709083059590863119446429985139136143731485036669735509079956857146310710886449670579378283726168180897530182155012174284938718927567031941041866129671348875284977096543953982069406017750689466533777334295622937479307840191083922322475784597706377018066673175176049185800294726990959163488543932959666347903113264856105856700128489654820672523276937393759950088176873432324412685801522790102955066259725534272217007182169518002858836017393885702671478956776484474332439033219235746911607922928275570420511791407337918986368775366282793469408180782488466997717565408230423936026845926371892468847963811642121510869277248748949267742171281076845113590094685741851912241315665502321488786060275565470634409140846078148454710225552865982100379867521738690746463824957767143138895208355799295671819065144514447287735855705794076380700595274988928883982728222605586407094161747886115098142888061599915526096882882229501337211135816247079102821657208802389546361962172694902059518828332064098019816281554848622933078718086982754597700345375965525046659559514776589915123929031499083506778625934414036156229645232677111507019756519900999979152827733371652971947464789062638335145841007245709536506433101906551695502053003963791687279151386409050710747071110387813756519174729016168082744291306301793986703363045662514706259958956151604718026310544633629555994071272255159242925265465160817044852279155041184387031232995590927076439954202827746583177333254838851727264585007526489161436625338840098948305996050395326633507253736645086040231268826784680098600108235782269244749480890433938407371310000341490557477035563096882740074549495489607853368984738814160796168218589844156632130137471430099182657803623739144056393395369234459164472397406463943415913842467535917240782983585784727920760250696263364073494902562625060169415470091255310739100096466433698297807950335075275318091899659443066701944429481498079773128094959288398796428977332136572372853604855455153450925749452487566591131000902346563883914745889558556273968626477437507827465824544089809400127110558141731777292970458263609652670920511780904377550027912751702721444971405669985679826261175153451219762930878035235164102957704211895166843448340224528704054827931973421110935865305103266021826550916943259753720598703874255221605446343102876775104737052381518002699324364401786500549479527435597430515896786524902495936890207365552004927828141509893690139546894921485059405877507910878102236209212728581611167541207187280729238972611724007649833864008598157514052632847580480726533026796401619670249553663828605629019038259154889592568544238542980262188826669471576429570276478089468084954168287090283793049761628039630120047363700600650461639236027710674547216312011200374633867539700313966820039345156200697495353804790871895188797057779462394785710972867866643337877646686030539618543956014171534982399225612211618317326168426455464452568105364890794035600137404922116152226162130029973767185361825616105762766590338086194761500554122352655588208338511347629341097220054473278437441805530487402352568226730348344274833144195922003217176961994807907149337707504950767303680264034118548700893650154259255922963844735797573506890785244217998099173757220534525994153092989603866314527922990715749902678155117923324876615425972265822026321508086981742997027990583475605412591188515620150665510265483451789346061293037900593138300843565689260116245680049786050959167607181269429231933333325288690405649559033820057007392056974586802302336504290093186268153568554594930774163134978645354375818001031504890059925187893275293389735623371536101476369920408037810628232079131879596450203014125895714262049438099031400569327560825768461065051282586872849996852125077273022639339336778245527265405743961799462228309625479765217394515924965570878792241967330667086450943879017098253274094169416786471396873058940869638724683026980475815680778323534708596210088403612601775018744169957825205232823165617576234957574177918860378672188062318139308997643827442150394598381289491318210283043972028573873214478342541812188021980034577220519434459162253302287664158411526543025608328641829905380796058753106961401548049345100755276643614307013965156880161483824465355550477285086046762424318152426105034272714903817981052436511788070983717241495208184553065073134986542101586342709391560474437470817985963476864121781347529851362874928233334015642497658049649136432063074838230285646414710847026465295030388744944131499139113264104663879649034787834559217199351404273824283297032852951542631589426064540733178020750340504347781366868179346549938749807694588861545042808608147368778844511432012737762692095937974146484721674043810212553420206241050513478974023666773249700114805987267540248823248005891912175013543152064009207584392211313857599950379295634164230432299289403743616257453542381940378793440822101887428778302588073075157223692218750567034108364513977007115196529593111615662668466224414636265547175862910082847152542086443140701728661118702953197351381709517934879823233778858755566760951505166480087196512642939505125162974138908123625922306047216903961491482911385515904295194168734186586480656614064083023984060382214190189374545526596863145296355556344834721775864272620377108685543009928459501295369576535239306245986454808870356016212194170249251260461764436114670254651848753960688871815968923938240482357856839780633699502482009337153211023889173626356660013213192032347959274908839254185886303755032874949531615142376226477538402109547393342344377524509767511443685035296614253191420971429842582902228636202774311455872354614893202406042137062159275821899487767616696274422487039730821109168993123324891006359617387297716043557038128283752233606171351673498400437094107388447102826831804923528965307219464070504816215691165433878015504974302346679124125233666423501130425029428184575616500593363379737055062975667981775367381611340155236522908494803977111025451972426580945954442176699320510680835872594538851006716766072816115127866203511713019648796425118678056059399482446178721302608146743168221932007874285802021117141469102732719251750189148829898693680230007397747373699689029630853021193285831658763880045951013836170192841358930250939454733848428300961019837063450617965792993811209611760154306301828724372659871742500457532853864111345472477759635260652848901079935793470433423553235376648134136278447890359303882710205041504210851961084853737972204467716097421442391166183339185362527412535497721336529462449961265615294265430998094205793619031160991227387422461045753030627939030793433754200277109653009526803331397415930573561441112437835448919035769099359371892510725960155577225846870328931735223076257992123766310697328685347178760691960972264227366412855234139378205727228645965525511371127968631677246933528900307578590822837015622888318371647051490242416391672087424476257783907213383709429926817232724073854990457556730483190471884492813044103632289060443021294707591515571375879433736446373750471288644126132515706006747319699705113888195459557752309086091041907785601411266340712768882537752346499938150853245121320365133809856533422343783356043470775308606454291968582415189503198670983614154227939116621190529079083213476931059070689359070771467549166600604834657993247580001548644907366901783842502057520983399077283062746935803215591074692467575234450970260357510547706765557019316928982082662109728069272939243820687711869991662651500323576181956441519350533883954269243777103585669350865078155558371780189608145593317346147989627244385067584099809072998652647206241673578294228359272499408690285889229297223241535728928691753584119809060663478902685848431643340664708765996773398382375291635380699513195099679251261547792764845300845831058049514768795632244392114431419716370518219947600530295082695262150093310426865620101647159356899878854054634382691383507233039647829686891957162019781570316664734430836460141073602897783142431023296841664679626281488168666450725624891912909652734215721997442932185937930754284799235541986856325764087174014473883672484952894646679418202002673966287438624577533184947967807324871102232256195668176058320709264774399859223457242374705653917952853803648233510465777905010906085884309068586491657439422844665519112415327158829462833312996886090990508603873572417163699282724101004228838741696503452334002126682876421320378487106576474740903827689341810858479687054999417223221282294840561314399752592605801267146825998461302013586011899188412234120000785180591174676460154602207975906234431666529974618659485479338665625474042392557344398800481036805089048061396870095076854152932704674260984509546915677025854622819150875832629609586640083871550564426091345575670460063227832016199090804496721135350733248542522351895564231403624927574370409561711537155288854408806938758902542566546181156565381093496394574884495893520848894533647188380697070837616517196727000982270119332718325233518627593745019822376579083270937827887462610153063577278428767373650312752170220257530842946596184182979300249482251867541294140735921751843494128040504670284139517541573238591562791622809716009691502614868233705680001712617763050890699403533211431734152548501801914591488264379830551160262131025819742267031690294275024128250831706155113483067870100158609070850806126434018869475810969952190841226446200321657444539404185851828348247823675321321345785025331200981916119639764008679596776650589092418834450267209411673241808752619510224940163227112636355889172218416051182854750960291844496729550179591351593853612786600215244273421488183126981653561659910944952179591010161531032128365971284945815401200503480695389661798256545962290577184689875075472560621961603548403059673345989014569089915358801164951074412189733693542236657368063524443195746749469849675774242660598669203444989757756771204822626074656780872129201735488903660902343151029739370800767083578846338960827579298342422063285301523407613639485627792092499784714216530046044908022052148130635357436355601431425244203198792970468835156925588473975301358918275692120497793039247966981938253090417419405474258226753899396786636332304269791117253197386789115954661278792556208318715984901988089799663876329972739439633929435689401008122143982961249375452712020892230827121259849762854882950954610508307111891076028726185613424262768545172543751465135208789192838711512378783660924968927586808686310596620562557700352163617498411575986422245809468745243120273358985096233596455873613039140417063093956221595913511665215502976545545960818296454280007719695502462793727816743486533638362164191821646554635737370544608844604613005541874764771877711348787278952787223431487076469217260608759069891598743095215146796532296597334803932198321395624786682112740826072724012773057406555033041272652478629341326521389695552736184896104914536802493434774596733013217695520471945771006591002943501330019979979148704915164480076557269390746117168507220699577644535333327189200485406464147589274611382161317953712236444065046742485998305272074461410108684302027379011173413472121750299822922031846411519167863522665356315086336722675070902300830824844010616001479694339025850590802583136700676726047884035231179435915813699920552058030514522323441904742894373832532227147492797602599126523807863094871265047178355586359326118942478795953394208800626867147588819952032696886927392677949833050198034894510530199992842678864218130865417093276451549999775290086395943467806502617220839869701890662265442454158158481016734415097545448642376895685695269644316655774055153969228781883870977706985743083342707571562723856507094156849268927446806156742809107050225528183646493879456124566516976515610657020977314714776700158589335061212649120690381336425286035508672172668293130820651171219683767463231515142943892140672811602619831805411529549550835119149563443449301917039465511049148580492584808063645006733739789188194149152400142257554068953683548712789952925593494107925184768747346869491322023612745117810331892305415945095466050215017592342079269048498096666816047734638384283671661386648082067225762898880335859811687643973332680092792095399912446178658225904129628731917592868163033440671824401343584849285876418878693597804626292739389408618115324761269369470683372653552551104443855564521545124412894750321727264928963416874437315027871014244532538731828446660110043021157569013316803895205382238612604119449462317650856302478971907239293566745014283309789181156535897668396047319449635387101867091833920392771575204166329405456893311465271564095708030694175000260974968861830953196761091897908268735065783155390763321736412289335934716350567861379600117536088161862518435581912095621643354586073847978514056233432908909395364675784009047229099470647502684352015532774232255182642767587348646072518965154736945977251238128555321787985882328677846270575063896758292338873626876570828058156647481807414170221058389759386870685903096432833435777004888610215752703781736950618378550597632175688738491642163181065594970038550990064436535826167630725409869900396702184434413005129065036381944934676978161050950058033757917247728716865926120484467257346210687375479038953859640593815914864269915787247059842227020101537177227314830967916776099370258272674780664395635857739126047903994004139679311074600285603068195040303340010302082230764001769605838136986810641698938627823008256623796101020665840961790015617115249385127567743509807949691142569138698406739637829095043513575858468237380502270275266694064579849210150324911883632320232714170505189428350560289052708105124182150076213109503363624959284248207381359232272413351549623353488555488443269924561744966111166407064690849360004105621325199924193672936579567337405010600996686971690109686437750496060677960586111263813771490996716465469787127563993724361447963725709175940211787443550037234259394653817553691612009900269277823514560898282660818543134570987010832871686386127737195808884712377510591342046814650617600400034915352982008308152572100028722568374021036876928467318008842014090234452298877901175206192483098633932406779149982591681462970138663147445045279419428632238344472294957275396296958759568714115693601143386125494634764418654433820712783265498986662280546432255852614835183266901774454625458870585227024973745169793270727903512100428721838295822868242955560848880329843537349064191325184659954290346555181973592518172683941432665318872124282392877883102429572646974398399538650029745538583429533237877576049079274023047497926137943406103671331042067361382176057546341585228730161870182104601996024103182929387563096642961983900082540136812986339792167721619792911618792177017537667427774497886786615464789366998434221869442847606412504713074295182559586278520527302485538016797314408192918798794192186430932556003651880672781472574666697644666282612826099527359143372407799896557903385932524275111409195568330002129443783386492778215756892846585306713479084833588789503314883469565083468759797872363012568218364396133400481249703638896315521206594405620942451742103301295462832793052273531753351481134600384492352535292435189738054694089199284934051626377385843030043053074875978860530774642534867096755592774628079495609345727850606406870960284542759178724792357119460531826098948410316225707379603467494451626543678408092584959149440590326542120736133134956885681308498876086840648266119425547575759122135740231133469700068236467772879899873558751069880883802074134905392239953175405742038320380860804640692661954262010783558701996726897615530456711510232930021035358537482454232248286218260407208425611614168461568459323250647043762940027058990280802214413518370317152591617724837723543062147971558585441861242405949711202373435574558847495025490738273276638111033319528785631944998701759099870055033016141001369737030627082267355047481893993816384624410536469787919690403375913834009707185783994438872332115461244642148370509053837370176975615373672984664311142976223901165450329536499375399016705183665180254290607618163567072175882629715873121671305773890593704156430896477651856729484992868490159848320042010242680680981400537142910808755796005093002550076760687769387880149216012944076789304928327364329023711124608679322785595767262336442309904533917173813997059436094359553576400165463413366379122118043122187001468226633828623753095770780627459905662763768422444451309741452053829989300062405533237732724140749057185262109213141508968552851521544311671834932002785898193802725366407404772518328186714928075119793510144059938516881789350691757248059125921286745844808974521922341898902254594974483290007539174337599109346860181405284994249756542060691537096827598257858855233486305348167306733002414807281450529751515756342925362042474913453065768063434190735761216594651097057036175129068746102990840152787130729996960914756662490025980319310262527122365877918082232537413335574630914962900924806955095833488865977484499169945703105696682425270927745192752904468244463614900306646210452324423234416235091387186166389293237982074581976240442672198257526447216859996351504124613695945095476397854225213584020288754423264221953352003374473932032374864201961050949443327831822315695147138259708879597746930699755283748388704435508868223809000719154316787178852906811945170027607783681135116049473615228266721019311311436223150371546274306773112721089425110841177736493420827466570683756623183319183154934184482724442810430245088759937318180722326755544011900340193832778294096160198982262807399638441478250252860395058081780559356751974878220736360524303218174263635533116916976350785255500249124775391347687050166673987830041399592825932006235687215489678258673015782747206306630851693800274546030520745832614220860673821849519609420167456338982071013457856718100252431341420610742666784508872643579239798124508641441479707243724229071189310980075229833175180971562864612143721851505614738233934192349908134436452548993978201549717578863402437110974798482887193922661215229039758448767794087005859473007071719277148943860730774252665115239847931354332472711396453703659318056869588202614517881716560244592473662812294326569273911306869671799070208138697379906200327426645361677619298498795918306008454488539261740932769332329157865219512175286457960231300994157336720251629970724795588826838343463306709397378554933859414852634891572075271241024482954073286474522358239706489057836882768476809608923178982360878911504221040717165279756330638082914963898438161601474865907244685269295451356746926883361143666167286760654711420533755639917539071089883244372310329730515192081132068073767260706030481480362895659983453744435393693303970301018399558288404592335198131318297943989838018615885538992109708653018463341595917747476266011253013218980942764062579096431841476705192563031285080829767234489223500875555032842695571502279382412455046556766111034893026824561270253968917857421895736132642644680289204671877618596680686261639542056927740888834953317239703957352318989322200002061574417440557268073528671933165163560051584147011329533816607698407284133758171400381939526261834046654543341717663104768016806883674326532914995466651214490558861585488842053965592943615504377550146189818284755372907116744462738133292020284606078223227976511713359545175177338745910693094903080497790761919877734091768565252450407448563353593712526787482262680675965741746989652791934483313466420809509785941986854440428597448657655859312524528109043210190871035776549829452677407329142469783303755163844166939093387828355641186427199880572414559575815570224068276640479034994936981306375232490418181930413210676796386817294311570448291305733472638410875173388214577784269395994230143201054673783380117127349483172993818993994564632716616775750027166123466278649397333343891564456259996781125867977671927813346537961527124967679450493089618509609740696884208773713408714101596631297530120388298935502690488221567785896783833630213566868205579372940698500903074753076466974705701128380248965236205123826009099846527674146942793231789203972702817965946170136081497735780965674950936166080471515843213015419217486001334258753902138338284074255231182938726853466866139285772573265149465327600659702792391276416152319021437235859418199835799273767385125203446430901828912409043536975011232434203158887332709410788619492498237441211792264709831104646366157985765829901985344159585613896579875754025032217833154166688029016739202277863019306821509867751800935815732308589401750644066104120686114304988427734141127844195398373434438443301169123419306419160142314777623644628600026612577010212959951953100451644289835454352571770856485732677221085350494907548075790431869709066669528332307815756927563874824654447757321001699221550519765381366291428299453811210409395008489070412439245982246678974471310365561846961223721448602205708217325157400756639534046210233465080350104320173434937050432467561422550420668549665180205715402651473215662043897068973043306815322994522660361535524721586427252665938659503878019779563055861502816854279561992752966851531219771447123366662317406859702126468259110937909864617591724427733650230914583224189105434368295629308936284797985996531262175059933367515886661688105449537311837417471432931667950635417027417629756052255780580167018250577070561829098794718477047620931750168483116962089953632679741914057628518472056376823456828697383177421152077498218708691550039515603023613697455822420309896052215522924103956352003445495208625585250864899435654694620655228629184588025347022488547530478227795138936815799651940874554049476705695844368544484968696558710100015217350504580488273003515066912326722081025885431278260000766094206754331405789127485424109024473034223683117516389152410138253312953141542802457898833826611136802235593885278929149481564863959053616516120649302303101701857875492457419845185657319757527082842059976583446119006761126223943361779129724703203981966590831822080577634207488587166663492182581638707868457475021531451473418376761741170310547727686549861788203631624106567182972745992988694688698112582016992817736899885668826613453802042112497840612554689766514927270873009273036307441814697257819603172266727592119648578532886005852020822052248104702699535605200042957580562866201544133739353998956106630438118431690306338395655552298090123948720778617245339069137931371002294766400700014211763761200349496812350790703783613931477284178764969720394355929758189029484115726816278682528005481384377044159494575126521698750067918792133143389946358697265873034434931504484021431739405251000472873778036927955230685981192113337470561489259429040633296835755030555543328705647893017647117482369038344348196018194261006888430899483769904940346106827506404175659170870878482990310476610032934160583414671469500065566711425141844907570813483111329428883279308922893776329918914150982602323341451434929036054725499606459688612451445295353447213578021197662417461639928944203245462665525524544828111547545940311984125982853060602446568569361908109891283180358796949092251949223830408114739258911021030714088040509669038516096514685655385606779209033941216642343081789225919348799618906746408716691289247840365673440104742925035435919355199058750429554080209187421052470802704546812850409534562284684192513978025388083532658150865625688165100934590665493137680923922167169639024397275380322164324630485209928989235998292041197925196527227148433405329017313909999878180717363422291662583936762422336590278684222226300878612614444561869307891796230356736484266606420567387938452350497601810048992375997121953135422509008349317438128033961513727093365970666210460038078623947920209393716381751250700025188487138895907816625416505885383569649511055692403825918018625295265141446306240895226399978171728117942155656179643735134397881554516993637239200457940914862064565791047926297034528378240071934959024698463681885353033337033210360154246865849258278574334239625019859923979488710420001636852023908539423455807037103049116246868925075914904881639855492011839175701384567354732774958498593405090660500533559013678046333355827545427233976875100515557665754104509489570215703976986823132811413946968183425973466151905256214321365508716129334146311649407549204434150040072440274229878510559511868088590690789323794342794844941486139885281468657422396688565358087857649152140719690402877459991320827351467674128358765439148921456556986682673062001368573980211168933399264392440613710907702590944674314389449090877929374716766303855494183125098702019463886622809798918353967235268484124410725850593539915534371742083841257724511338683762558049016539844502918603137145906891913290872971174313496301887699052525415619130590251293494820599833301230708827077135430999341565408449528662373681117971106244163635539017440578510211763399263923891489769926324195426024738256724446122802933367576077638016876717950164330698560253362877757583986298016007519683215938349446887824511926782665254238143788404732190926556611527937954815543676183653603818772113076248763656169245858945875624651084270887265926916150897980030077863712753551960835292169257094688104923130926539140577053998149497839762372795909118782512594911007414915330594560728556195416159379438752852544484498347199565675718599684384013061742640165048628330445144190716836654262180015532604465418734065637688778515483692717512755859145223499879315193486389184752138168046348662850027054941149700841114692706155923200677743083992644671824956400574540916255757678289939750552038208886768588228694336289255344500706364248621539406271765595007721400858806902464750690591981916035068310186911776021973745254235758701968015860118188148373684564533961656236789298884249533801505908635889689203328802318811851395016256996257499488852524613296786464251547317451909956266526828334278116066329694245991588220263914856514599738751576575507296772917692326144847405145412537217330078527960287897681425431028245022247572979415829080097971985013345866824550990783642422305350124637856101823515121731693771450410901733435126347893352913535575241645762150376206006409639839225905069099746632690621813751801810399641722427064286205981772474109941822984147744218535259911537270893860209565224354628161720163257421259199670255437823157817873454143112281754742105302819197675787518933085471201306458120019970824629233670275190139398777206161213998178328755871539506849047457612237132552756382619251509422281711243336184609109016778135174904000979756447391948538585847104427053687512901659676449838536859110092758391623702275803300227477262929000034865918889028598573092638949271427944432968917160522724239688198524916749762402031201075728742787578110376141470392594755850567021407011382530462578784906821324329119008248061007893692599883733013696198056993031847087492331706729871557871426275172165485715079326876146187588403821238319949537089889803906279414028558324334613611693224900995449775405667707323335237272368778627008039616947181625687171314178651249906649014220761147539471550790298360115281034587663919983436425583963237635204205014466718606445597218086356468873034036852968449461811878004933671638679767136528704891611811419798985857800962905137505766455421383764769614251524262037115047208551169150723525666724786135731153527070822636253823786330502551031444509589195880535771237549731735983949919875683588302514701669242304910315717945607915619086364688831700339760099202773246139585209631574761568310584265512713667980836133021226789101591196499543658434463264355469601260722419011230418450262963486342371286242493558546703992259537986917568928674269047900374282623174364890655846892084757073389780842528845408096192337458161012654794317658035429328048953325164720880898082281484318800466200681838506790432720767222319645592624298305991028805271932960013885729396427485749464650186926220923232408442499651688608605949870496030089347717312819854308153317430537560242441783996665358077709120904455231674226957138903957399906611838077963912943974994941995822817055618571914292500553668265459398100784515120350085187312061992345262546268561669175273639114655110598521180599751336110041773925358976040340438215211395878300793379236597540317564660903752779508461706702287894319066064144626394452799969506874921401214760838837632167326054243851714620942648820325680372618973490328427295643763511403618476115634365432379667342093907219080918446167276716467003128107438917831710655885593357620822323024193298783628524809399143581897755354466250439395390913338478731024261772770096742318179331441171175157166360564856731655564810063556101068774165401818945058518673991433807296664027978789221721758659925283235732408163842448702519418540322785291728305623220483995583460984214727179354492672052235222985297735873821550790805580908200922770969263230834004388520021381716649270816607191496116180519425428089468316392863766527256661020187369698006108176443071037792795762804457806951319018925036306349589368480049209265958142658583382567875844435564019015505326547478325120958471378486271430691982324517786571667772747987647228636597133237508111833088320783536089195688058256870704144775417269031021860039165641478426893100746015297448615133586119586753588397775234382838411578249531734482318659077364880725886299724981677142589107653865420673103596071341809121641055865532498282007656151980468884302764853105631632278886652218456870693711600956419449546608359982018644433193405426078069310809038195254970477615583220438539853430150792573657704743237054478423455323540749295347449346297459405773103193734688988312754022858022280828714414710931740301212380177685543341659875295670612342144895827513880516553543017732848542986633011027751253061920410545641863280092919574118357331342128932883333308417610165975419375266023198845619473399441394209019809053884917867192743555562091190042798617114497584530281140143641147743491799774180442024063305007513199381973263076082676965802677064660996020676505557722620385842660347391598631809990090218091836467505973199785469818545464061425507347497166294038365010889028166543699877636090422838384836277814673310537142278035517130396280056051129548594175529580870669769277358949827028206038253350871777411426971909107657202505573289931182663041409614555850122277350402698428182232985077762957529000976837983987876757621735961787647816098586293607139109589627584608324362234905674439465511572804214798529717233403775374238164644156681207205043330857492395858189584218156497477192190207900975009615917396640066121921866676281296488566920900013227029273073766833998976636930833464628754656347140152647810782536295535249584466769571034650395131505201626600042710797289145977357399533879581644613217043328964777218133779874790660689302934416912865488835986107511201508064202523009763889117308862521193188592867087974596750593677462017318961285167611317011200571489023210124785642526820426569604170761347630488695511129091512037835118129638168957227372523250537269874357960662896671314025328921969560440054728657619938608949628818815731660218054386650230295779773823103936794120647081645648463708749818266573967684733773874498300255257712842390918572011174675337279899190096881635236996510821233288983801842835124984828168301703514925983539726919094472502448277333352588200714769509092092920205774413012044486922372956971293176202010505673798885708936982111999761197418341765466743221829401125896665995469370175307301587492507154287310281568879542486254987243109726716218220862877389480485959740573455898189006333404491587198563314924986085307172924479299956441720863377941115326542588022982144312780308292688807092128090707897111749100005024140839700106052474803243365838322986053318927396103315167048425142249907871052560134476544516347960740572756317387871947072329957891757913009971261076274740896847814079156692920903126407936237166396848224998615243809175491183796474002710899432970710343513628643183089068063875417969630736886880034723549266846916752284675067232325591589268723833049712484075132993091922742517939347369529868395865589482936243307793313688180700550543217426195896246936631863003535665056091158680000361384576600922679886797851019140762865877621764653689932285890795557866718963911068455773773986897076825241823130195555888032254721297916472940614437309972280182440967011995788878616631506024948930132895070683346568351611708299240545103583220146163311122316209280521998052357552149257745490870518337997347625404373885579158613091494742452612439968301638045468983457217026309466183256787890409085347868881618755950364885379743396998710525820683837106824607678571823631733562787715372886804335810851960844209865675303675517965033752872022888687798074266780015656728558983461747745992363513043191020415629925746876390449416374174428774245507210311342582894388525077575841790970965954595785549029954975944651203568529749718686771395956454712606408450131941293150403539310704260662779359421939496455342555491047680688361405299390411090802014610978928222921369411901526868343697856226580210951711429133190057254284732909473963384987555663573458990052110600674420587263594085916230270610147425689407688408712213710852565459993364845226447323278854583156123153744969414863267780854127718698946959170558743456612587441542775175425677406902939073672226749932301510242317180563626546540649787554951862719438747283449758619455001568063468764581586248002964770262005376261505250927948697075607230481949350282083624923483794673345218436793985019633871628149559368131183712858021860083667474760747376051930107629329934921592525676327361599055566619676563973982360325575654970888126100910951484724706190681190820518801614446576910389829974962604712786501033257891210177512948785150158370289906068951769222608963610023953896779424124907614866100985698554085345640708800428942976194596289161888508828140930741642584081590249820767060958259010791121958044957415957365784824574505728915688024352471312975467093874118318891777257542779888120583515189942141943235484502219483823873991890588880844929248133165311447981314081812782117525873435882916803115973126581825139961586656693151349939622047725369283832183107347421775637052982529953624738329909844024383398618188499762307333945290444631616600017208161002303941923943010983892337089141095541278498447244670041573356278182707618229900831222669401991413815804159228491273813397820051641696163155847253093210161549912318957159222166004877243205202077472852967518769249260928120299810257691299327934954865428567823432505595246352579962336918773297815905086338567110173394644688314103280426614756192726027865849922490686962643456091272165296754682555336190069541289600471669992939401893092191704959230061663949111648675443740425211076890089702261591605614953608052340358764526175193566398436891438900218811303250227762218591201390406219808571337925197578378930347639869071650441429095051192186808454107960161612215361710516094797393957007327730957280510733605347900908455033209470600844637788179912659164360416483918785705502374980903234559610976706928821378662007795287209603886189846421438081862826756341354097604589614567113218643671877992803062385129312109867651032400237475527234290386490958122177154431074852963028444724644632039855832442487633512151835970782671613708579502647560496550775186162432034333133623076818533123709040319365169506873004969178908686564473918729816075098459529814167281050632112665945068183537438000212672923813537765011880967228257526571475543212735861010470651583234768564444446250749148225049153138310803358788136040517534424339479402561917840802287669323802427469645158784003363743301809317459663322020067771161611530533003793555136309494367527867244627476481431434472573216375697809904729412018495911218348469235496146582465334322903547177298587175129495729906656663644374657375284965352315614984829837863115622258080533607481258615981836717123444832794269327935344848011989511168743555669411209552885172247953764595705498303702373891991768380049974462721676821965134902673261263315998040473275194609697803090958106912453956907057554159863763110551196138580038322348385447908765658769074641403279965823090829034613412357918014954103276442515052133973353305752108498996090880366300479816287940141111505773117275356165697333661913382168988269967976300285652316979033735261623462614852782661569297793846016199887451550651516482621526208797338574849849575477823182344023837358011892200835140521586977393574689485006152894158538764711078225721742500480494987737047115799794388325229851625699956389201881770827226596660931955395454391222804027803325117206287157959083570602001013939019802021839100352998324619069544246427311148673259382530000254768533375710947771966532697418345885205050912621310237095126875716124416047220949827121643532702063722804984010978990525392477720906831598073454962664792052706573441668914389489782673384781808377480828600903846882247798683049205849536488118622088460244868834545630606230145218778666194624885217357085126972847669677510980016316141148893821975494534878304201039617165636804244424041366857847549999371953967686426344074809958244573257897768277542813689912737171939666159281006410473996099343731084967347408578101862445281596086646551940690340617772756440964244862251305354662307629518895774620356391278934575115086420424537707983261609470600224898797051880123022324912250300425270175897386820892525145562529121209760402411785144490693542271497607372118810856331253041954296527040474515432366094768865555461795199399142604459835703750549716545937292182402283984582331730820001753221450499649062613385880636145364121405388140235565616058604520350554123134094655280224416118252480559694975297912309914446118854552605856255874150297055322089727281698308124463076603243096683820234172906537468706910457864996823054074858707735588971603560754082391793181871367680743725651918113825964216082474736892455112375601231249410004691040210133301100470580368761100706915080397957908068155947110511338989487007964283432381535585565976240760517084171276159043877692964997008891382415216127398049031680171615379468351796295261952606973766628394485329825439703158876821593702581505041330056519408243999037683499542110944265885805717959560300372690605943015754266664014582108536211968330724950930161097145131288552840964922299896764730713946826254221262519315678664014477113721118986284707299352772748543076687392977544912104662261470150433760456285508956472129959407521322268036073777164148856031563532652619699812666743000839938682058874390259437235985703981857484924724931043179653023106308648122436762645348786140301541433751805564936695669832882401090604993382154295503134343909107092739132604806107983320057302363332603081506262203496773414551779570708838344204271408312915028130578891993929375568411982217562420718822804158999564570832926784379280845668842689459345678378277845900555612597097988618649416192436388336034236132562416501973326410629396154066994979616742573789803051537911826158657179393440349650328293188500997957809096580334359226843053804178208083757468568342563691803410172178182975620245310927661020918159323353177878799344608433465208758025852676976458110300495692920773560245331934270749642289508955786079801359819891287887536611630123621004104097518435217591149208647074328968828000808233681336827538604707262256035685835359037372457077583236812875817859021021827385321765680484985246197698174779948588934699209726775194448810562866249635432374699133701960947725996207340666787534697285208617356143345894694357900362387130381354293020540862715901229704135268277962521209528648883203714851735648047544723497670573720389427079739506011839051458872715927094710448950892559140217155565969865227954435086506018168440756476872543939953404691099432585414194554760914845213090166563497870701307077012737277466333199625552425132105831659056522626872458891096352428075744926387027810965138165759631784167721511486866040921930818960144027323148002464514527970882326672145444554689815849759189952828790608463725029202905417030600319213008273438244259838681173008530364385382258604069246604098460067272190301236431557111287274129086759291287094713229893240351736918540896543200666753371252978422494625162511220449301094524084334551336717798312729748360453475500986422810557077762331755477492732676080472709914305636712896466713890098385482380414067807235151019223702581029881959203504966979452931487837366106536882693512369319154253600536508310345998350991227535078834534903914158988329797732965193954586999573468256300309342995706055477967642430252205205786846796009155842101222724219694204152471504851593079210796005877484882269412400563519971436475373667010070915730304327076870581951985130452353283009106148497742306344224113739423430993358062333231251932451809868810645792094507326444245499003853533994929182019994738985533899364133063225299865948281133448656208042850637235309749508736719500549564851766486112931987879709256764532949983297491393926921385619157697867824801605462174915180157287358356490082351097848428682415901708468506687679431219274854486810747155414214755722572962086362507723130408969866045968918502487808442483982792161488655572491716954235317488284212801464710459022960154263165538206777508216752801083258471154833652567400865283390364169881794738573323890596284938584901633951705212311401110568093256060510621926454021386912248050520361761547340271604848369935271047310786419131689944561856303810990217676979343237403729638962189403124242360271971376007111703246417259066521799375878814886506036457760759226992050082383743472128197328637060046139114234580375573482170880476236699851939795045656079260704296751680513344883498291873646801933359188178240721176142610079162134429531245965474858786697987559281572308010148272778043638803037491646571203953211697895710545063519221138151041641121707310093896552096786875018415805941186681296590843638833479992470870600723800548463288836316133295862925299284176378333072136298087265687049183718509337951665834273207473477561680887185712536253119782701995720534863939412846974880386650894431734418965957553261437049837408389041828072709261819254979470091640254189557297114237735381101168170420879739412290276963907607263527983564247028356027952623895799627717919437452156009953491802497086590072261372139687500662830268097815973460550061965152036936285872658818466601565832782575927777997668251906345479808411419109081839009933074471838624733764297483661583764385820657420346384315182120707112798370899396287828097461989436669292019427231406867719878137710539797935671683378957858685767379756974140813365606110807364714046575505139855432296587017755337033116969626140529030052904563132241995986006464574280632985327976285584097929522719338633393313128669154004288091513095573426976281447071368055773797018567521588295423217561771993679379856421549870990331818603370301418362344634888743938372880187373445296112559885375412835106329990100373180554013632941721326972878980887850182252828115388962020817662491592756727284602049090885816364178996200222495311631185095189026995140990953287124839153992036052866673478786803507693364814930950762261416236562345762257963100306085038669136944016003966244066155820459270119993338486337775430104172846096974897506835692848019274613485087066126539445640077788019463891634243894417501840278452038147427356574681271130380167522036294992607524241058985658268650553435170151852724317603608486834708614546903535250668249645908957753474230889848270134443111228943239299659660307557745156297710461851992990241661698377611255294197625017429276548528743809345793839792494118514439618123215743695661985553523772644682652471388323878803848824624203975126281172212460580936314072411808121116686601960692878852496439072759832175977630867336621296768906197564228619131762655194064310916316922790807878192471332033370138921839593065935292398713015596271255641493059281588674716583678492229216623881163499729520964912195423308841018827484786910939129811149766040203237637130578196326605350142392741027219842139661950415194472346868574844681623068189546904569346431734790187211186549818106414447882988901419223579362253066885971865937997216577160246421405268231255861189770962984867493821450523234939761568664498882023620432838779917132730108701605462997675175014289386622598250835197549134561598011141652081204516940668873021175090330063548609994908706766316034092902537521896469876742122094098701326502229069570385751452734949191935074117800340382398584998002036287906888886045110474771535991744352579976405985903854231534436067545561396398740823663399366881033653614743041547585675932063839681881491681073274842165363008417389449248350873769397304536022556568312712646269593892564170137906881683420114852634405972291832240420369763162510008285740259631946646010963751469447593775790216883613926817065216270490661169318706581879215655338036494973465491070205268400821459940069637627378863195825930347758575413840221343059474797905197259928521823895673082874689846275808645645368416016799394187856765113874211690469917798959828734900736112835535566079011547231600854171160619953053969034432489418129606545466641381205163139594675665370624696156106110337542197022006520110086996803414252441651681958386340934016799108526836889159287094302833989772437618598460110854592411343573652450314598485217407932486115501404278896967886760788882726286033174872044082394296504369152828007591678521575986616904271120860863644574599326008667156970700925782412721480092602629170465610539066216181009317746931984198918060718502226957789942563997014253045367710887782638559285002324256665951452286429471748145813767133032700020838257289032559703394720927567007002780974198866952023781915663832192976809002729075454643348183843535323253725963730407409558787798197827490262764734466388535280741536091997169091640247097652003977553289159819265624766720922001807755212265158092271129167400814943594521764773524879329448007023144330519978431813881935457769594950561484667740909277011382566181490670298155507304188644568605119707533855371545209021895839034235197948483191975278177889457568139713303171905016852793706578506169930681789198962863957008037887968563993507413499115981889261435198149036918972015847207060810057556284951693711195126534401765755503242102537119397055450973318170418090095320630923328002994918356468867867100330427081462006492345789421769656081232224023708254615167187709914215278582139311609348242323525892023263467419916810958608829203563722869687941945700369119625550197559738077657570417714225308208178917934235229658384695501937192248224191257160942043586534774629218925778182730517971587002047675824851728629497473717188521642994798862701610204871934175148157036194745626758959350424303119102780066049330319185656862452623982070038616985297406875031368053493882409766725159641429823310133810261711392054636301887098405674597363269936652717098109728604928016896624749481040797714240097689906705271577071333883890505867587532207711228825190968945966857573568964268062986427004440209872112334642862433205627294425300280877657812997046282942837074561206617194861577636591241111481787757357264329894399628196653847850691390548711303424895181680336365394528732409352168679820140658324744763434508261651310373264873129830678770504155359978455917838902616504716612398480903430683346721344494797494760683651174839403450136613571975870492947640765064654742661108837431639929163041350685957475035128853179518825105617129745321024113329940050944842437821940384035132335618289660031332655707984685040750148228551112886319248083702736441317970393082597664386567601477634367829451965731700974805371637732866073160700031596501807976744412112757105147618492085478876526424247879362157075017386270451631667460425508685499244203202223756193712670764756425800167399963399641184641281940077496515509762010673290024705099475167730089009565903942642606384258919384194670534339688812679432470635792384046874621816644636245441001843490446362421816940143059776826281592587139517220760378274574886168195445104603655207128705635401331956158166266152496725951433110459362085198630421671793698464962159629033003782888486748278443296615008706750342682316202002652726037770953136828867058273363042172977228647531802829948575975028232959775843304396400687540414009250338317969896033748447197644261213844520165893317466323192492801113498224518163937730221101148527950840541870065306625482400247753116492041373228716883181589134089160554955795326706015993375441944525433617392380721694075286340890246038952004931837416810243910184113660450833826518699167954955255394424053160593241230734373726952228094477125973372943241813742990424510273501491167810663068746591892563171484325518228632253455893759381454877393824775939348519841068804829943113343681695367344574755686724728110685547832962207471115209792044528423562703505371067949640956897113799322918666783759294656303847013268313841997953472520938278137843108964102261757440381497793342623748812761132187701178296078919827340487728658081144287927438326597764696745062929549429346468761023137051438839543620079141985713193927883932533805380175938010951745007548048246577505160963587802866220845183286223868013588830534250271834896052595778431892866765952030602136229255418958780423900141099759789083287378487514145880132203438247444655477141549461354304573478752573502401212456765147144479543260725532437281511965543031249141729785593898833346256379046891907568106782057070533222052061371868902685477850285671120614183103710277116642876261900731160146319091056779059745081936183270509020341017612556095363263121250284452220679210645812281425391520762198874842103041720414974576913740555389376993078722454701720216047091566623939286777841626469367437591351490938095489310609480479905192442730052238052820176692814885887639498086471324835373657549903287944677367792392162066303810671335343819068086524255841955833502107373653514852821105049031949768443306644587899833441990948615209981513172589604038663012128083246153659239180873300029705808876960227503385438311861079704855386147417842611033575413409503408664939032335402740268782498453502324225231336926416358492297803368648374196798887965506924628440709155552407193575055337057350586928588968726054878137454231209249036220893555967995663742651467239243878501514389842848554153007093768273833493908439040846825329405262667215319905507715515276601870093256240497981125073737499134282241982432498291161605528708133048816588453247602479776426008944436866783021855612040434439227761398615283660005382735522054535879724633844644920254232050137102391117433210186485762129843493343580344208254844337418397794812342029983842024106208880379334991816047932948077514553607914533635989451056858523238024752023620935099268064959627258926963575048206169617206358151202791947485211554820204587437114040560586395138560217255085101131320683196825192661407777966587682883122580413339591231383200986827568648372838251854809095891968633157422755807017848525699200367012978617852618051883044927332590666398338278425517347053393058860070009581970182381131497123625937411610774929842894378476459553684793504421555497032799076398630909360903638778173998711747580733498579447101534924355979368570600340964050293549000559546418696576432282563916727269151647484394117628689822494222818432467690873899700488712028246244707579676134941568927474491291729124502190910374145734805659434304835769242909522282142217722031280317662221382926729793939788379237020923459430275393221089590643255984911392293510771517612115031299875568656453616227503026192631763108741653708482301419014669016296653024914928104458103326450913661687213493734097693433625003753516077126118697981287621896177171106187502110737810148429784505555225319674582087033118856304860523572869367928407199219777561603154578660118379465898574839947086920467991948466250017126725695142113109943297869256114435007168824362857210261552571766595391869168977586676252169536156489176951344450285702321527515860862408064418774179685951178082351002983849137164867787022131600806912295849702512020518234899829808923594931207794441703215772625323797602228380353671579633257786127044108467938734100356332277121565530515639582943424046851796847232714066824249646721821398607896711052270462600281729370014889201546266986863097306625317713478542433599845762085533163832071351066406306254358206480399068626876955981426758936208108605738888689670444306403791382990373252373210537347579089752647633303575253850617082568295539671485493329887153979452484765198461351495018448387208587307360397735561858262188787686733876692496087674537850154082475588120542013299424649493063386254724009627711285525132594815540721760031380029266099821108407114826300436199547956344026020894914794588547248438688177918024100950303061208778703574141379515900357876783247055864106983156885181624559114358569758650850553945046944082683549016288319090424096779150573524623149134311821936807473717737600143313520549201330311185486855986619772973061346676893454579854255544628835497291478087602615755828747709172612229571489384629515874457637351512469409810551383170342065311566879750098660940685494639460178711724669481493591447274864932033314024341213130251101442524906383617167685516899951206601524566757543420201213581941566443627685185763623960228432909753541065946869681058510565227521581157167883027748773052252109897344290922475395391570227419523672198412047790337110935688307642837222414561834626786972360408168552722856009856309626585325350175655893859816011948281002765253272356237552260808209078374331545902310594641059961740978158279481538375785429896858179571319715806844797089824892586918971504787230701339475585462087596584785281086395990344484043046654342402376069548584395654131976463329670747021780434193742495523618978488285346897159310055664831922237850998609577922670102552061480662775481006640754256762112743534517774633642642525991663469405063690622323161070108764659521162235939156146367429422919582317946280255507050702915755506243265666039785267796381229374632323989269283110872291246543134202114152313482252755056245792790189274282467079050809894528843898566550838580582974617649442324878798746395656971534908240617520686248104001552887689717768551527576188206847312170521096427974800859376865412176515352505447876529435322322200444350484990426576458809029390405634114705395934989006266476852447892253794054537790045845198773182016411940809735492304777987154592456658765985405909378890239471827622688646244989234198572333528455274800710024036300952144786046024335742066090999607562942630457552969610728526813647776975799057175800593974756123477762593799561005098493869229758255249502867446676144559253060432102840210422966091011569889718198275542911757339115132719521473357080671647103510602818688023003720748205358437338851733633709757577141738231728452836475522219646206503178043165929284123452952323163876162586730788278172369002959994093281504981961661429077877054386361967990646677232582412769278085529323949235746305657091588526039350604912487380072672208030657890170861135780650342021888574754701554015489925360167301593367175709024003352351908721070778896183477374859099088524560082678469671585827331202385950772285066400207938323494405034478900870910128444919349398677585753275715663266633372576617789941713341075840352906982027467355922693232602866805198781306305770673595461455122573060434471062897990712743667755545977561004921119532545304894178167767350556234228788745935970480464210169920816263547276896698433568851663149199309266082460188649016879007165287963451669544781119211451202386924209923146586080159710324205142387879589978220296984490855203784992088711320395824044960902313654630878963829632730873510705734927571992543220904659584305439020664459169088879214752147888489878853200261587943883662157525712399977115286399463846178256330449934985367539546804928728976022888392218973016671812945970924813788860880415019746155938873397409870715616337877342810014251492417094806840632346741486338290494293522646317115091929423948729405714690565524731759865878556852362729959203975463050982373698983516410271783827581989162812165742844224984855127060375735942003124542051691764345034186560785258022353265951138157623531273404692669498223340373931588020222009997208823925193452543175839363285494421271196990523203087817495716495427871251619604103256342514143917937974823332960591138388936666803215029745914966235616738955876288823049727030064097254326897953926155927158889869649393555299741878886762240984036445607267970528470368617001668279927210555897396845457936834515288657275350676796587641229121180561881659082622359687783104729003480918243061166580542663292125998338392817850644627216492605114667002035346601925491001403527105196986857272469291333551288037553676592688577465460847749057770047301872021826498412642776472259674566432383680115535447242950203512678133401238356210799699264499866008048787283513606336577918309992501209575335075029104069195133129469454589783218802903949008550881983832764699695737613689184890585149848543112829548886575570546675488503741376651915732320527791137136715043643384631026041407299578587165641885546183488528091832544630785423197247380021333443939330590346486059540322682171572424354877104641912335363518284152348891598612193873340758582628516268447597528155335009476977018596326262994405379497799039090321419897624100972525080503710810792806110270756041334598512223234146638105917452120240825225666685691268448572986071995341734789262305559446389175889163430856877305281382564250958008825758308667074567127978636221665871931462425794437288937843435873987211404264473477503224573417980592700115103544011866014618583894400566614623384624695175623605051341239818238261801006313517383322629591067456976252372814921740426153694039401420641768459899781863755245985489203414857717600452287028856925407108892048198236086696116420237538391386364226604164694320881573688507823041055260663065807831751884230652074556352593396279007987774721776620212184266528800934145021454510712725623060592160109951605019423697834592380472419486680621788600587991663316622496926068878747102408912558030314865610745621599785466154041582933067881754709489583723312839671367807827503530715974137679930431865207753566206399267322502641338302500571656397965816285999565298356574909432240265294048514564193468498945152466064677544422880828990469523080513967202752158824270187791533125688174882450437826458663229179768601029564143556330442266934420683188107202102261331768607277581796830137357839309657255207968547069103641152513547105065970163122968140520786832207559370595161570629629516815537604797784248248436983099414043330474233408789660414444581816031698731291018865876900427963819234084327555566550825605429067077605985962627120392892472024404369881734035512661784843681476016274335403289261405907752687214422977895961343667882438006896598647490274139150452406913700174338244064872845558269290880888675009818177953472205736414713575080161022808593447165103723368113910610804519258488842530937674842393773657735474597372430273968378802940360428065990209818155936715661179886202501375878440718658871986132608721805873525256419669737915549251630309726315795862693308287860991329198581674516221156204110128735676050834581619464688680673358240715336920669758075694322911142404401741237792598377354079657762013607541092463376802715474882072804452081580140213545418042011785428994019842515337081226950700210588195896565630141009371531318093714399157908899783207335408729004518709461107669884752893922899954050578047022527314008592144455161597053746851422943801660191520996535258638359697722414633079644503312182522980982789574499952954966966808726103973144094415019514863899811391539845775157252520146903224255306322858816780018595091229703771637353990340346689056515446591252875634257136961635647779275216981152962616397565756970585012083495388915694494491544015153990959127755201865735433434969879555027214168751335838209484941246342079184229297744085530228313868034245452043648477747494259945675750129824261028530094229234321589429542725236445749835399411473368860314645266333598868107152586133631506469785041692368631264192653117245674612043748141606474671964227531821420730035951510546790712148893732062197568743942582702163029592770971874410435658510496697668106070828705652978081772387199308588383470428845833877141640132158204804074495546180193573522202402160497837559692125137011077474019630047028156779544594956948899178510315152748678239951207211357063680939200448724668998444518524225178233520741242766643556808299206054137720703074985633272842683790209501194562547369562323387108911897370895127908035551564066929092437182319958628010506247194140871689045547948678754653696651231345913683211952167123932520523755423099876251847030836239336543611353804888312293511328029216558105061345359777040962957901056738232858972562014704155356244089317005657250233826753487107288895472773831965399241532106481740239109412062614305375949545337397987168484699840207563079772778629003855281700897382508894405003596420794568297009334357141530264361555182070185279896910709397001310404723887470099629262877069721165972463747870738715489548382261989868670921831054616723138624458958030010169414902571681249029983438429813417813587867722873176339765742617754259505327709002303599573089191676659313015563951387702284150558652074363982038219813012901567268460628664380349811511040254476299798649944463786779361088938697004427359888328900192912859439756832187458566007796120340427914245294273107745619122410311397385628908881203000270037622666495116035001929897435814327012652993719246395142458167746204084397730969516080174278539215474411570226096909350227203745958160199392950302082604230856717117614987969248554169785860393832750754527376385207826256928680189400114044153125512986992494932644917143300670706129733938678998156526270172264105077033906247621547093984373573755686877003477771801006186640756016219629485570609786583010691794689908406462959124121218121950158715986816938775375024472992443561442668861247015250602336094838894957081590473605551288023729372203466455589152624262418584042288017630959471008993131245557066528046432677466842959197551766236035677484666217413498536348643687448709466327359356347151218685643319142365355402418499305252828829296152295068915762577708735181522714902058285210170017959922405295642755475181911729124029664788839567212471550615593980716352203685770910822174238862468529949987628515574237515588493238966394792055324069411609516553480634158886408767502291456942889645648508620427578803739614619392895594983008351977285034931773482100010575121482738176397381761984895706126907698079079061468492099339752861880412473480829428568027800839699321090250554781571292471144840728186129113773077052794705878671203587536659817289478858431042906566577653959108363123245948024281984103748290108750798169699139183274170657964654684771730261640529681952703394091138537665774045971934768509621241885717816328557464181715465615522797357933266028238445975878322746879665350226219020689651427993705207497557552328160963618720234069080061621659205946035272971174813608497866121266892472022398273473950468616314590386136991437316477145234500558736449070311240943904942551122922174805471713627938968324392155859352252207604500423995618771763367714259307036067367591750942689525905867658698778674118011556814150834988021420879649947981381093879776028423346130222699979530680282404808390717756279747894346121805567845379290290853752501466374682230037323821869739972806719495481234904530860674194825155818970964123757558206669948894359395531959217067021439163282460953669862137593304685706088477299092948704122598976892542803659409133908684028516353324762519448611170853757798630703039146628854259114373424790121220799108670114080901300007375105753120378730498599406723971438409820801558946693099762027505215348820135678580560987942889836840685762337449942292011355290935260516412004984325008819315317506350952886659523238188724068199058913377761005206812949986910803114563631646748503429042118144637052683023541647101771039645475339619237917163579102393755058681429652943572939900522484301236833429045969220126397754310611235099755938460178337810036205790899396486844640497804474871174707224920969956888842366551710380425713085906389717461996663079115077815365347099075005984614692447546299905870423564831213675606389259176151458794524972693385730196144870420748199313982690434576523018201555423006272918811828391244864501821415669900963201169568012533921208993364758250223043780469078339576757829806688237689134889240592103581401864596999471938696983659222695974406588036217997146212304315634084092202747813832667413539057216083798225627630789415331327791985549890194013502288189578090859436617044885381401064828449716648936330880748083879169898019521347779749899908675081041690220247689006860117364585887323885275328370764685433429707466024270369313821427830731024205418081018056077739966508943262924469330436341306223181782057711897897760658182644368453396790437176372389128898977340174271133325386621783482393659448205682620586427083647832336544427112811691561286794943272006636973532934341567262731028956564719613634795940080532356894721894503768438368556279756268682550838046542460021722367170775718380896014296448924531093372329513370292228836867530014566602207020210750357844709907469664016008560119644098530368358366696960578300950466112675369371288985897446175017061097080336640100990193850018328932722005186440710165983110446494777547975651037537380982093190423156077665989730221534717558824316261587523746240307504103759292691752269771305293497365738050650304965978611613352399890183953350176487106956953271928383133995047835943966646558281320090436788910601407769130290386728873163872705683985961861995137089939974271770040972143717102965816927544987524578634715717602813108935747502326709356207922035906551994159713911999968062061173479734007357392154246182316920852230638989707362046300927279327962499081855902779501880799603669210096321294545558201628653485402994978828236899151451796686501206367540381130668622707557652284190796585680772777249250015647703544592021647958107470506809287070709340470127164618119175523818259717643012271289248278688175313636217133047899020758213617794117812263327396598592827941831927731624662424285073140853675258158593380888724102091673920338445853546512299543922446204010485192698946074452058879792521780988534871544554252691475812802938994280618626144496364413690149150367002475118032722017415425072820688994941818539668706550921727971809702401026014125261175893708312077938940449390731226546275368061561498649940292706396933518079161239059939076011195730269996687323892245704122813290793268535934388247602508973797872392296743737886379881506538857707772846865424929151102868845361100505824303969262634242681929118822370566674323418189368866330685270448863344128231859701112799861569430954753118095015686452066738685496904133609908575446963593843997814683202413024716725623903473534633958255990756863863392959546634430926916089627396980169787875645717030326896847281851130599898493227102140620759843106001121346869996832351021757946168179606053508138534374390713837544146416209305144364631114530504062062018410406274430130912472891410960072581093649131335235597746340537332577427880476506650083459477982401057886108411863183546066942097267550977052215320030470255102973825561415143486314132687479525448511855427192518641083690102794578425160070312692953061073864389471387015392565391398286517879811942649015879139986737533281360289120824125472061902273097332140637066503879082066806935373268256417167102680041781905731126216948002579217185276472491659537953755685141034079772787925660401765710612195378331753215876709272645401586156821516350993940352844657504669815780900935826674191355634475209303587617789938784902305929649617115112792065062675003402186037264632492706595105272476019324454822022298460219040679711330366959832642698384413613665151331267468706481566458624637053100544255654281724508661167666207120883766136789531505472129462852392585329627623967323621393632331265821138916123409200515636400162092714014048369991358074245227243001746871447222960139316209799478618368744681562512270976903760803033492052924389889029629591990593259057667213416349693273448572252073165214711249735880760851465934223610072531798826596286704006256732170474462426630416934002256803119756141401384538956971326154300446922811972703436086903032710893027293781058497570423902555011406139103787121590329167157923321598149948473924103109387327079190360626678948362868890365251635858741604678609326652959722412580435028322494686225429660456635224755215746864647522202987472245329773555823345234389989343425998305010913096854147217190885896359583139706526684287984987177218923996030139515124387824083427180804331907220146723831766070729649930525233812275464274223391532364205799707730264178717129536095149411738858001868211532967669985320227549460649016310943976772533059387126457902392785186683063083605469288108358496215629279578657498584087002071428410289852499495818466393033068068429265876550010814944739939182517126142405028238606508352154107880821360710666517779243429065910089004119472744524288452852392429368655226125512427531872316745053174170695959621945972646613182245789782819586047047009779004091920460421706477414008318554177192017915132418070736771826854102949735415980078940019447412883116710863291738250448102787878889455040397059609905950631197742630640658164915554157208782086681943691014249303363014061944408384416617168759127394561875329454419896627711226055448325567987619763303191046263050375343510689099964873606622883333395787799632755542946309246467943092510233393706888296350479727091199154999971347477762663390280673206974126134914729707903139641343381345732686589197376940891383604914868172516143839532491944548940867236469083459283619905124825273030277910860504349617155439060288455753768903375565424248148544235927672690154622428982893651674928534442545363882039650291057664944832862320924994008504199511126110103636515980855775440630442162504376208158382463074953741337572791332106051869081752867958169410058407310894041111186826545865876773377201907026991671358077011314791117501223885913278144208048636485529843563766274814224245815103634730559313363117854291723686217189261825429768914669307592914121932989737575230998115038845853543390412287654403227961310686978146564456491071787769743821933029179146151893030206735746670985325808819523362832041805444276621743146784768362648349689870319763562165476881711364316903734470913923222199018079590712464263414180253023978961680893777618743884279756466077711284715813387745994877637132529057025188499069974942629305542118833019772464219927519380495336439203227889392696211487367267547748815474816139598951918164545658300433250289126541564554211613064438779155799077005533638801512411051372585651818874343786143622486816907901899400652935265037627996160069515948204367806943056312173514718452440653006985218396050356930645285990606084394336885018437029781837885703362487544732591459051483799121577881216842436346551506396776145223123352107200232260185031056074349074707602792595110031767201896981555563180641299329611256758647462682156376869945581637406730986286816651416075037777393485826517568403581676038594521441406718134248578148561827292362948561343484192259781958903016510446678118851347654796021148121984629839205604144235910660500437261907351194683154592635470878814192719411799211431967000273413404492868875675617498856456771967843266227245241105093575966005620204511222981138597900558685927602232394925675220133759464680598365860702231874142734940195878945287038649682021204245266125593398371325991476938965378131608940378566570420138528996484592632495808301076182575131968094004501383799882798076104458800660423286922488078157939716892559108050715464775256404990256642749341300148492329510817244982716562498897008786318730343507307436670649293762545943013138338988292619302928354573863992844264430025797536822284831295848930366741380618872961334852195135013866906032099765178090958274234137267091271876842346297716198084378145279615636688542903630668927999133091126821661618894527261634526672304927264849761411092056663496008746620932772851849710465252773470300734584672810974435735411516055472667865986868661618266444017620375753480163159661649714422003672724691619096651314554005293717176773834090411050948350227645367999144124507552644787018589036818817627999509527937273037065293475237810519303537432727628418966624341685558903276997603188505893187375483867535169020629325672390082835720658369657016305672500053767618270469623520221590948330575671427234473014042982985818798915984875112683093184995288759758227148938578067155556794395691558241828805608859132220615700659266873579288972850079562308022182315994208042077918936816917513150175892243601431859263103214476552815630273249829051996982271439610519284067018623561355670928901454447148675561499926792210158791679458628010304581938017200250352056188295972635792812440311285718595148747363134274354312510880015507056483444911138983102805243819572044335063796638949732996690325781788025017892646242492458388664967095995434223373127829864561264979470351045894182309318684091355439374472350089364323558220175590504516174158938496221914426780691672408464955235362261341394641701732409230355871942451039013631935597936763933363387768232819310873710029305068419255719737498500835450883465642027389049595194012970149118376139916054023568654547220350006148432983934016401421119818873888047422045113278340868098859768858947208994938387941307189231716078705522967889693543257916629321747950795186842931507224917257772886989729972535249712860703044765306517393264964426395167665550236782181877224355045084967026636212395446960993680450378638405405486270910851904264381149774007339840770025337023681768692911016395005930234712312118212480356530526990032587846076041261560412364629882669663969264258178634998189741944224121145030691479246632887224262334919770778061797265771635484498951907395579771402763403808495877496592892485432925344388036837642376899594584726694856322906227839937913088444028519043862577912105305777810185000766967208828844321436633775924397230289523518690410883652050343121661069697248830434591983678101195050957664727934976364302488801366072624246415642170897951809679383048678240468082677274126341056950641768103414407683720608076277018732153264319516386932708310439404566448196551447672395380303996652031043064665098007568112621584514115650087128994428973409455108741930458966315452347592028003419315318588790793912677295753812248454054858829240363267933807565663065937014588265794523005796313968532463547820998557521487658301023774538995145447110905977180650587274345485417851393235612596672102385150065682103721544191374183143745238159654015585961827976422617695437240189564793684738032394767817480044336462872740129744068583657466442009341486532615582647813218620858583416151103095068971746815132706162388377142291713611677903003520477652103043750813495895703606381078791320487420467753210572420425281469883057596215145962659946914061265271984826063939245900633778599236926534329618260775524857457474740674645574792215213211795187476419925276672427355936716784324112369532058433413907077315188955077472350869091898186325743252026911579124003154162057673775387187562431151925759715293622862687106562539227209455119055743474251818605182989801121708346255329142157447623980630888755619325891285207925370640390845915898789045474636005655372684689162783042315442789455604245073045736030383498809977512603543090907679349070827621062192463127472713657111036066932739964298711664606005262252376781493602465528916183299517261717541266659562138929508964049940577199735608605915151161484400846222042089650803732811701779224294288381725520884110342703169025923266623161885035948207029872910295986576527548308560655052568940009523877635339997664834507963441115580845530857826382958623510885628278563746730037858577141901792045235787890921291182005974924046216735891990228724188230915297950959993975476408654965925080387772636270149423701698825564115984014143694940170543146100840774760411977427217255383787219334388118571443128065243850995976246092922470202147524227443932744839222320709444922352353234262534385280895660778790299753935299901360904381649427638269788606790179345974218585027500119124244663901209536772381470563051681216486420477216881795374392173692701772734293683996429518175214399731715980729032290845843117388453130994934087346358635241296209646331540202292850119686835777733364782023598318554420315438552833119035759068607629423576005958467637168932825436645209131732903544116491385634896224992101377898162407738178894226039675348504833512446878182468313522872178689999211228946563492442085326534561875838065821858281040404227766385514940913893725525916584212192580581553258938087430537164816908888399354719191792986882716322695773305400420268660540330352084990065512138853130904005408768373599949166969049440929441938645518810006163345024685070611311599415439733630968057479751690261205359772146554534108767892222786965068348210405847370466533340865931721923512708942245185466183036748185722717096275629308335911624022606827355631828669334252478747338533357808773418181957723300887897775642088361041559406181429037050782211580699390400022799400424283256066661447642980197138602099584711841945844144376264950817960661142940713395098566559050366748252610922144036557585616430078158996144728751997158816377004261887056995188451627578510569569465663033258864139251765330312639851626079677341648570749166282571909058402577637946528191621600162573208046105971718700892740259890426371068563952115642891479408889641949185758146079638043104132193613895660835912929862050621991304436319482343427772602681999138168331270600351718864207141677526318582414769030400049184829488685608461718539642981695156112668021253955145688674753953781245362006310531976372077945774433873100073188580869354627360141155822320811446124376348533094790002961055624049692358519914905044500414762293164430766352839290513727451112046445268156069443178315886810915743035257125167951709115183940123130937851474443428130048873522288483055113805306093390900199812980952906216041643089436094673571581975928481462591697003033010909002782880762542379197785885384801993639552868719579343398459188188520864781551233254261136792326030031138035462053141708703206021611074334587478747151045376908906950739349471538396343384835925538387422111681582703758779441678457075536109128608704530329540414357064205747399191115411975933107681683527703191930151946719528575996674865920602156733543486873150970135490396825278332746758959470605747571157803422490881597533744305053337673001366035744334763880955232625888802094110252775102761904678387994866556237839651362023087225913078218110879161936902774725902324177976767344376118981433790633691169428242234289768559815449416760850847983576737014387643254911114744891591985822754409320522651350703484219306516068906896428920394830196811679050829147660926862915499568922889029684790569857297924825931858109402963201480235501583911635949619345124275409936809800719953524197764564866450492908450263712543344280604743764873226870738616883800655148674036218270270760390208195503867366209499310388717876357562703679926346895859190430070876400883262993994145587612550869260233505303446894867719458450054712963084300610460474110092013038935218134534695501148746854678739972460166584684496977935528256088833456691055360624177300436440838410521023069415722631524991921332302966481610449132742006933838204551948994208790710072127520448349219962496672441827971216570743350385613361984064505665078578476547181876716490577817640343782253006630965734789059998722572585255262910047232138593595001516063334857050032841687307728773406364967912834828066339851464137470468435423733456819299903677575820039444227643603950151056373157620341521831438000200658522584961530610056749156331604697439128141281330020470760049039052593053675287489255607790570392446698711596584240604814265149599242331256393882628423894483849080773726407605025845765593944268341464764037935861171401698709065883283919819143170674858402978466033863503665571229539754483976750012585366131164521261639202197374050371900415186841364794982287863468586698286728384131109745689673060654407779299465285752586823359687910111307295457145210985403203763291737622528395512594736948430062198011857765214374909889437869325940844192280827937652298403436644406277734203735515596744151070043327394007287167420052865483488449416713054525535299192937203209727016041251876801371029112633630201163428058511802230765170849744233951058766612068581819120956974552957530937731816670381538560684700585172829713245583763292985155456905096832973707038390016751043808989144695913142175336967617300161162208946347164611650474350575717698820602910305814983831030878857291921694070829662030141002792648153503753982175282471202910555673134322441220590842738688386731244527800608616451653628746079020105438349981072840542816104176738082696543367334314160309779623042923252221742449378774408390880856313284008328100053296103202725790824963844148897676335350193868225182322040215903711875609371702696138286702402683394311386962519069561101024947695744215690511697216568296231958209341736813191101914352924829234733041158558233208175994884606112255680670312807095865054103102747442561876090676481732636432241586523393027874615869186738388201616157894277527178009275578017281199978657221139289086437072120672438566217029762154617549233214059250114736957189430081795500268724515542511949285310395789661196519708316903625785470150214923889065055372229489071527678758107625000312761002582497988430635160008555733701261922698690488168542975008763710035468698390691379147470246039899826879652117132477413148884330727761020481472715247044555837270388969485213933087547968765034146845368826101477344460382658705364636367822262752884455918989016903037363527691966844683208380154159842328212454691084162829378247087551416672599425660213330033627421636137049683596888180947073818268412631552749620113818249541356903028131783420558580835166145140146649040908635054824907538016832413723453305695989017783951040322884977793758042516204817816128727426411956224675539942011718611433654481762166947719553080304225237493751702102962590938321699306670823927748978433175611064694010683958142098382351178227700547993391001066097691655942375866904721735888037817737463785560175687090733017950156118580817755365350829362913728724774667180260240250875827254483320723152209425376276641755285937295918672070074232702133984901333768191577838052497462872061240743106778485333353849689182208679035963851013714388737426131809044424453816558970673252015677909333950104682738816206393786771184337025062896900183827745608076249501429904294651465046422737482598717169451613660220340962901307949770849118868619858906722246867406304925275325365121263685026030327140478549514349254786666829858042635386917875751800426729652741306623210020899366418428883012000814009938254214374296614698355053634437554248923590049505818389917565999802436833651400381393586910760130478600213317925903575439461388102476282643008096032302314129818422845410324338181418055602964148866598810273141131625167975220077356151769558228927472222136851356644448768241255520115435329908953914230982911241778632778584033050481180043085831006703754617325323179325652766759144810373727479201583652289032597627649176810895469458023711776632664996815071880719003037862767461215065320176487828652977176678369742416984190353498617001096406237143606371697877934515183534669472498318708436057842569091017620721788282884384844568101220200910931553527096013887718450964819824631440790791072106626693974880389336911752791056080800058944191346872516738192339094049225507826991637316286202042513673381599522122750757163669823932140908940244802545917412062982033827410532461388054469992753823738486840006022569824669649278000679937308956272018226569867409739324421019344385194292304305584750979824636710369571522239245684740125720665415069592823396197200879428915006178197763809696580569753960267003465445946209281789334099988233527982633116530086904395219296467602425692104255712079768502220248107694074994572764827056104333735571995274279228491750737677347935453797625782719174280781206637046859769968680745723493190138195305117708623232250211839234392385187116900772661418681730947320403569452894649855906056795878780527818180589214060715589734761731966544458003069870290243988617089768402269193451831989312566105225039475373483220542031351686940792485258121488757140687855429507225339340986739753155400068075280930185266354422599444511910199201476924347731955083467488487178036374488650930036052863574125839763606585335035201761417924557754242539147473147300287627294775351796744016493648332337316948004847182638354246910435196460248970273539394658290089317300513118756790384832252090258701826055754440966692353046866210108858003843556471272003270767095186338019854466291174659642483722595578373797636914366613335015584376495437534604835315967383859975079192655560996919684351242665926217886124752302234297166402018250765648810244204152115155868857671100922474000253618897155923722444677352518355812795536679917054781912284450112328444554310893414432992327872375395414624009622189243186494412774548862023526578527552340275117348567838975454366459696587760328083644065242249021708845319638522627656201262308025288338048789608866550492241069210476669981905885970074232785712852666288311317714933755935713151200882855187919581747540945046583772575039208648052274621858540797997069246828898143119129542652005506218182732231579927114350590444412479196474391201836494568150281280135046051622518547523434324920446002199942685222379482802959858426289557160146416460016994324231402769549288224017103252359267343982946404053394499206820432691139616126490494590732429772404730568249133830396057948325468623635314078338625283825584992975587391110398088612246418182271189445836171688015216893841584763145857780574875773957533764014083060971289832514876243028400118434972551139864760970295385047869510622600864802887686700392703009101581092834879930049496285274332039293393119195051750924887342352860333966485473981715814241297654618497536587157549037035237540973925459073623419241508354449566482881703362847899427326817832370122854462666875524727877435667552613412577215523479173937221068229480380928316116031015070221147045739102534465735788623164499214295773180216874043727613991690888011620325471969671005972930494440571548450402023639096231391744345236956198849927064660371115547579559823074808978514035604940938001096792997339658145628035832139534516578155938987163012233713296137368391014885074123204163303557386873140506210194311935833368649246288624473064786515935384084598786220729016684875424763304576155602905844635363729830182086446655241558693637186630361028023200130421006984048193342694880972418307875208301320390340956143436404275661284719961750922325330764521651984038311022906150659662904831302427689553679390543805034631998877825308422497881543567873740515472623267739853850695982674108816137118278241525456648508901880311959030643734882835395476922225311609723116396722648344387019594203395795816102147478023993077078788871421510856337657336481254266662194891842922766591311991498638225216110886493597994557068747711358416760267568602663448216204812677198802904906324690852422805524131355826156798736213571790482287004038742911201156124905761098939327011118326669175391838304055885252398966168241756484395578785066535594329465034116083202912267762361428018061138539425507984684186244461799559527720691990628433451831149020658160423962724826347981854688928503852669663287718769581500419029112786934881954331195886827394211290317657640614895181866249518134165744128671397348579329035990968288730143616793565921153585436286491238351749196791681344472347813271811743300920211722452560182241130032201324702659635862895778885239425815488550372462537764550164325757015395479935461813957336142303286781156866737942875983038687164970736414863625914009519140690570218163054996536340753094566983236269633811658809595929294490754418212044754598950470398817149837700444360212367205787492104311537586346603119672518924652768746347511771054807448332862930301117620376635960913415028113954137611819798171258519394031784356629768764507676575718164183161970313883280573063601637252659904060778268159725936119109163478866473064922470764701844118441047595533246783489388492581404613697437267408825801837025454718537405030323014377638126478528176845306856034175952990758051883519557349559755731910595663450401218011936229247247321673043809330635347786457837638281267177236583778563099894042259457573336569860616610507023603261638571339495394596804874141745414217398980370368532471616993371147099041360305755229721214935003029556501040183372131156546330548165501373063114005708063351281693425502576001035476013184630049382259945043874422066535229032621090543401017244626166418513590984711243200881822555511724085694765959767041812520747299277150186176739401883875966793036524170810902284985391718493332179188419318551110889670366661986260779921020843044709759891903061898813849537696062265708627095686975074942492336049229861529916900042076404300904450299422600569593546897638356844957145915148288946008417757423706897163050515687271717850793624189969605438034932705142544082720755827461755261986864899451926963211184361315573723493557015810842117209955211254206518407563225927672698792790199453680800633885872753957314203753894769754768915766795996649621591820247528724558792954127367029353848790564300787662629066218030877731360967662613140298188663259916074755562153433018370958526131004995124671507625876618352638885927617971216576742775445180700438742083560289841136380576183190954742338139775379465127060856581627554449080738990323042109692689207369496087759082859139902348354174575685901946307563601842809925109493750825700018917771456250669717948812289671882528223765549686829372387991692347448051910725966166594017778162737848076861098095207087190606808112005253219093219050297617270796856814789533654957873903826581283866232366291398454447754572587406410832061451694722949731031152233632974008503760665806177402689007380958010842252625612257503411983969975538112843863586605456363238434746437181403892238280610860795043313571031849701618326010129951705472650770890178490576270888835531282443320427391577958157631482210029478698724350997034053037032978990063990633443163891075609514844927817538770889671992302822403056668310964151542062232030600107962564736452347665056404093805880023631199823573231199651286631230470737978964000797057925181646432825164982347654793171493856919807135557727455330636551954872345201506962045910141254025496955332990964389547596534122076619921847279858287194988786832172856273974789836719454353336584840985832164217696633186650383905597618639154642891819793412667517528735528558560148869626671606342341089258802546548241331299615354395607246607070591997878587420592354825230809205994176549167122569644261989034866083055905067098986475405162077764084374269612011293925094011743651392176949763174552044314049114085405152357180330866271171212081789771878208654850933115950782485614713422065692050659320748980281841374364094175144144433466108651323318865816046188924418597918262043461327016498860509641050669915376231046653596553802936848090466214342460250510053029371969758531512646903731400710321597557845352008394070408840474970962161018910239356454215022705111365396417955241927977301092046096268665842462573701046598477625345625628549735789970079226206266831946290741669280136214835820305235224199014934732025713344990299520008904045720400328722259362920685618836742949752544871991659143702072754480583901799063655065323811362359226654906534689201488475817916805261830538680617285484675882353465247569016495272517835967099986052895309289568484715364671755338589650440976431666393105971919606743292624083880420501049262037416266382753243886760018018607251671760157445630583448052938385096668206674518039093481431051304210623283966146485809246113054726607778281818725544436189250680256008695426133070655061930171075802918441147365997985405638337859172131973787231696508159444630424430538821224362480085081298506864959937705568260072905423500433351789023370828687051800325866369418346780118505520923641038298566626888860407920611058389783606838894737653968939930541804484538838729734599622820286693149424778562109796926928270237048336190969273730769437245821396323805857654698222902027084732813617201314246041965681509663535332530737899684703107219522719129532040077824309100641143459956858016893816594152620300486616281434814335497851732640286149464755824944376087341629789854609543961565938762608120630203164119395447938323972721659524786879045842130222097867045064158023704070485206603747613543908501319793410263067128774701283662049441172502822494153024659634024430752604150161465269814576864678973324662849648067903286197180640496459225708976704359146704326915372784156656639530927375619026022555385158482065716367496924743917518610880644086923142240710069881581076612970694924121093099595096759537630890053085402643790179045925669388252654779811093363634954221941712401127397365549997030430986377592639394073940864738211315080207848423927765984879916635773069616205614567339475645976248325509796668204728400524468822649056880711729554287042798848901791064681060665946878977928090632726412667837323921769543688064959661591345372648968362072822307341390855834323665871784088851522359202350120339995711455503869286234414618800931602274600073274372846148235033007993665994245850895506575385678740652757001471569334708916861566382984446027616154958061769648338285407116426726192644232705961791517274445429982719096956894502762093314724465120625027240656978754106216472672870122709928403414283417450491070906189976489596444357633016642616046730942797852575247350202709239860986117165688590528122547507604904950723672551808777754105615238893686535297942225135463290412124118959379607157509319274121273362547624608391570124495908896854881652188322231706412527900152043370810692925775511531223347175525051172502294193937075934430061539249715350106117764517831753414983122269989207115042712188374693319713604139572595131248565547637112269242199319035891785170096080735435523681381415607394003350080424503762375153939107972610836535241359399833502834123048673267310958710761565184677906633001684442901155369106125907548147673890008784400295594143153086867189717637314803636319400971293507942610648596860626289849993490194199187676928152155680678554761388125546634831753935544826652750413563084986496630209306026272059682076412022160265478303164600835194621521256524791943828505053222848553710956272789243980242530112458660302263863274321939187764594912164232711821757564249795406982445850105173031845719616659698180564724277202061859016602319155413215204562354463897508769785581804886923660299986982751563449497555334946472767270558983901141851455767237942932552483309138500663952824371912918250815690274614697857640412544167690018942964444740276854881013742000565125744718821657101719305148796156628615911901240216173955128043283055755876593478639993558742874350378730886128550878734408992855165770328957542860071255773827975702701270544364281285213220000692754956669883620846138959911625723649666021657247332501098561207034629275685973475545575615943663574850028714119066878754119289326451498730111907830700445839893903481415891439058535762906586071428749686028176615016775237497154132073457214288060468456436069067025980973356383974092190625424291969587991660156194623130867994672406504080155650718430266975858263989033982545827006884595104721709640184816533482785563183996779720884798551444436898709427261886833365926979504640597082373757207042442973279640439620499349138482248555603983898762027203970114335187765685941575851091101564148164294668909918232068486698714850100701546040932954314709584412717248553239648987174876040979837800425701018176907623334302439391021848212301855734234906727686238046973362306996535807358095574341663656145670976362635726435380032289409600508860301342638504281930703112978587188203957217954346090612087670841920599381758760079735503160532370289100071154568000769383054564064949376027181401562079938639616743030717451319257446088665080775344820363697235105482742588533060151494315649825821767334074569424849315854019671463276080466552385066427727321622866998547850246469331432006833708115332796876699361159256490134046328245303694217625461649653797538972812047826019384194659717531503151588707347413894083370127943099339509550648226595514450669604739105711627443971075873003372206641555732184958647569288828649803274748130927785025566816807652352043376220866077415042041337957161377606944110752953713643948368223934016707537635286504459274227612439218581734483361079778475243261828790732372289714972980204979933635399986473981390287479265988708312328659887699432967787307060585486066131502339174236339037755803919964198636437378431572696889316241001837210365170014267520357409905363420211193187645851476505093346482662299575779618428234237035643858451065197532272449315785207967657612634209247224829728243046741752979781468265192076030477823471742790920894409315636073358594894484842416980086721770161770978011516897054545942594753431943501783093248334117333124239894080568388040908895457632896002121987979973635574763271884893343821372034194369539727337669675164410679068060048539726183566165961771820350731216086591379081547244291986319949527123464366853543918770769207121052834799953855558455885040840881141342939397719771930555304766221246205196782397929327444215235830198965247139429821335089912494819240449030471806787328262058711878830488302206928954237240903514388068083955859503112516375475359072800117591446373034939442419881876599515469399287805661777414691869635624833577296227694783386811527146964811279088032861588730516332142334406373870413903053528961648450069943024808752339897842798698853421304536244188993052844280666947806308950379021673047048787765514580550637230354667775577247217015738905449044443602760086834484392597752024954104153023637325097872451064307246409562865575256342445209194596147516376210862647701061445316839957712442768939143017281198788022540997821155610058382568847797974566190671915825662515390015751297297060910351193189453886984529050125237871100941756776740827664947160641501949422907492519548154026403249386004736170971726335964639075789125759776237635987604310072520862526094799007537187125194029859330182741977702486121152381432710085206647115315305728268501637347980910319941490123194139500643619452435794195785341806896680211113457480916413663704556479335080956478727236198725613211268882799119075353199433559880881401782569429770917923184333355034080021270023571228518570112991837764248660771813631177811213993509726631118879332966122132809170846234165719848547727036475301549373347131583123592410885156551007094348894853742415783356208068699676509828669320797126468332428125041879337827140100807881955671772758635690599039415528366496473755189335866170960991708911507440466465567514804341976027516279820629519865148353447646638914613088805466826607042584241222432835651666805944089664883761751375479141275097656769004284128295841563630676358646373036822668792867913593682617125472321657148949438801979206991966956007017575864643574424572277397266878679056010573393329692917210639026599947446039244329905946567698517887520156872727640256844854089572217041878994113196783809791752572520644932904609775131473253101140836972483507003806932742599846889822431231971547574892890831602998523525567388369681056803476867597972756762955484220789384466132464650411443067836978766437096343367539292365418516354815676745232540633786404547103897407561744999108872320119163103990132725362500238798284767529657276183868685327303636845089390246360460432707501207320667732784928621140386209811742699396136954517585653807456440800261113303454481621624736597692848245084697023928661708853195732898308849999386572541642598299252069192517505115813952970255194332221862237475473945779906307996396695322534134568720823431516252345644355378623131051629627628624183118079183753396458455264931243070087816931966599721611342809586958868441561895634655691740543588152170661018746054097929327231125874158468407322702881269635410436956883736362671888854764099384341133538361952969181173313175318210150309625509583660165126548799770816817576704975275891796224873770306266721476837789334690940212788907106870879540604016703988469533864558153867317900790691094258280544414987812454746812178034610280806790291724765071951149453638352068393678652377272948136912855997021401430876589289853146349781781486809522327357630045317803478020979708243061272815225634960022395295169375180070930355354551021503610179916090522882516976655510944470237075471040822588495527359703845247073841551044664476677306314472419705366015279154270765889355339486911213785452360156336271405419522007094242960376739265416444862060479982948489159361482353906144067250975544402854118073778785122908151106689404169498896829166268548976025159035302875688093489936175438387629044931529527902667280793293973219192139584080736575419359641132354391780168087526272616118515137284858570962061895147078258437898563665687608103575375418853236427876815316185945340710382210640026687567587856756166989014611044389337416010820383073916143467293883037000521597043996509785740733258411302983029097425160260138713918382705536560148003390348917526534194241267540395539501774869142336685512913262105124139398965747517340631101313789300468375150634108278415996584369604679353885791477313679878785521409852271817759640341560722940442051271904746434704772909159926504973693970536368533182432012153703690011057610278768693019202297989476582720249559910449869245823682409185936428345240045477979215293641556265139496909115686570303958860892314164016101345196464653902815738793683956634965745638646555612165155912646141169813001645426096576793834781603361915690542072896564117173814948922298504712950078644758224559760182366953179847964320997084973656572734413272295179606901666088553852537269024624969849197834749044257958971722411502239565266637021228631733171640828708969517990486921289321608323657390929714887636029123091249887352980011395145712627192299552730808584394373142867666439789613005528448054708075405135756311886665171511318025390857964191712054532260907867689977269322989012299822798346723359791632881123902483322988153233536741368650107368194911323714792999778940350736080118519706942716431547973962005957809982088920880490376362700806196017608103736452559422374514440486079133868266636751192434595797991595299548363024198266134439681287945366173618687645249101150648561236095389882761209280994726862221382669169131141653527488944197962937678396229974411442268822462532314272240998230165315892696962950863356281196554711587647502689275307589079852799602912615708478902674067839972232613952675152423299558809126245719868846022035448221649971659757153357635323431891181345734424682387180425863588114676993964439834927612024302411150210544697731381334311073982807138656905931509839191190752614042354792748189781282090068809572441055582962899568230811567199719557654881857131887784319908610219731657742025262546845614229089196479157698171677242572542180804328617473629305531715873026999178652469987201190935517884308534408153866130026872381473302300209721124522407386695557316183648966077403964996336778066818972605059189944974436864268582173376977202608935510556149447425532274666791374183829306368074403209554373029496585215023330550903691844367165100709107931832272713948859969578008428716495956019966875849954753192167263661385158541168627522140776456561144157564963388752494103065710190557620550153058066988769316772268144600728592918651680454710536845305316854961394051738702256677803348981115467675105474126286079270342007815737840291146409385466886071949497574722138227398689031647483933948430310385920851151730622432538446437223546903389571920607676996643046264572781029267046390471450387722597557547287269980234000668611224540763319659806360048229760208378413796219166956930282085573310013677632655381484776594200357791392040123738793865037738617432093313272687933658262551087578779860168356033920675608729473125690037436560198954210641970521866060106264674193601118609754426346906572210165370279740745806448829697668854566846628742880210721799070261442475963994053601734127650291277876031046647352075261267711572925936145325854215854869658869697282186221428318759038515753952441897002280218225489041431754464301936356642303522764891051563199519024940128788868172177344750370502691723356284506945340665084036838606042214601664214230516106609057732892431111222480044657409870554441256059148404438448243936474773430958991349722554989552057876492565179511413006502607807222918890665187754457084571830647874120590466381958114042918947844334455258592920955987962618983150741769497640789806982336264683597029655480917678048794074151484008420485309832587719599332753613738004192318527912335880258626303251987473485034189035263561448749257224535175022073683018124704072558284069611770925798188434574167062189224162811336194678392985471273003200429465858541306090316072697913493313527865290414622216604157109989288246806646491941442031122606072397114867229330072595190912129305194992716094852303095169708458750258925306285293747587120036476734534074325990713192443176093022771378862168225521745376878211681595548202538162046825420183090921197079630622321278827226643363625459887472750408927329892034979063604617465495750704075962914756166960129660695333757118186341268091804042149869435360640375716406376592907722309926280487515954605236169702542292847437531290145975149590564326090619654105914904275158080774854734747476937527008919706225405139953429364765347717418875525527142804420379563610423749837873604048380281109154111891781791576733413135563785850206082625338686922645175653614664827985482153769970555492211004617035626466776792731405455885154340281916142469644543585108422639749214807553524690890687161806806904479257696240157856991602898055761190925505878442261831517019158558213601578499027411586340057501937679318531994074370257959863135768342721580743968440047740287188246342202611636146243840465430754893118831623260186635699431487841014434732746243701839800299193858203448795016009962510967603456636948502153233821074397086180563644562075256396209049385778634116014373534715901694855461114113440287745032741100494092448908010122611175497533909189984589950387711832171066383168190588253047197752452361655395891463311826951426277185684879110032244294480314494918483811314981883794895213451034668568438347037213815344651213904542782769789642003884943415491992312009052985343062252771072399250088562247327585060074393828400530923242552169771288789476470692330145622567972359263600791098495503218882423303190853558263170275757240786752072182386916157938013855029630456686682775180755946306844075535620584757626746100190688634142856366367365532467735958545460333062775771150139588253573659314148224866877426715502775118942136289134058027413006872947839585945825869232085161130909361733840648836375410872433437257148392163798798329525194288179980760821799357695793597776904052738449249320709933977273332024012557115477480231554240869058437455200296421124271459262012842874751869550741242315951156689599609649063451669882270233135456512661177014167173121144562950003474334628511552730314588007217219964255030200672572016047621002426379879091334288428355908244699690556590948069572361996598607861804728599603811290296527854527183992141498760114363519844228100377658662956527107765462904004925540295977299877772994490771507595906443608828980485350649704314351269421924795548666615824541214078950672456145969997343857734741965617746215793202615079173859694861076321735722402180049484956324833184379807642149905206815091992395183172966225916791010229576830195084090098317243725733990988983309956389303678850990825929667597350662151699476178043066513962834450099164068776140176797102759181798288935526582318596677168898027732170467083001431218096443532077038619892304500862522662628308324991290827698289655371803422283827183484621853659433543031369519470044568791494167724556372910677016023973764526391891849275692715879918608276187749288741069255014354760803843543943652270825611695091846795526755866060184250745435419477866071778834165546944111418933431179845252555405974620237541959999750731520663827190545655904598921957396640185442739949825460693772249911151352706117465583363751352642479535195518384083152076664944480736015566928541215324709983514869379563443536853643948314147158984167718016048474258441959902979829450758894474416457956831250173623714781693461393830858082514307917377095474466789103842741371149461244173736570386276737079839512211445877859231971809322148382429496106394908154687572080418891662147390504427899165487034965342270185836812777228315153015578487140626460733728984783395069051693718654483572042214400412344106604183850243070180080226241251582494651604003448190942264961104485755880047303078872237465628145050682038653089730763739725280805880122468016815302063719412005410823004354236372561459430790396457465197489143225983574688556290562422336941062088016656672234048177134707726583265025102815506482775089751509632882822669038241171900855730286413928840879020611356452062121197452221403037460008841658821150086552297651575550795078553193430096435938918821556225951500276703879677216485506750631565822664819649269017684557310351899820110937181192419144788794754181843000526733927720561806437775497799677750332282101895646865087111180156213610310801306084410648262117817515255366842257490051324410154846329336034644458122919864630803733357609869552444219883451667810197813997241673028954871942716586232820740843899239533171225941363918306223038978298206149931571753151297928571120673977579799560956619994956085602922815322387675832916488517881794584860382487768110671967385219598118802191782305599715957976533236270655341015030250797765193693463238588067072401336607351174392220368051839584139833860618669684050564167530603641045700903093656222145279831481615252940758690855246560739065747648309040949406628139492526861029009682375220584805179967904644377046977111768226351300032459824354615959098027621947454057495994955007275701787283532932908782097241601009264999158348821136587991894904972173295794771498493704132875142332579090359630832799922767788019256477622400882572578810726944819549618207656205343811720443075942326339718845895155074202748425502291951668595930000334504497161154378543343488182755987727977561767189223654224032446776359433869001330201607404458210829890813965363218953931159676331418640243931218674531028630884599119035367183873245354033309904387436216842310746918373735054323620133727766876681027136213839383758432374435354758655896219836985843607291482338458315201394468127348002484612330818989323542250835663142608678075689702039633939514067485778987334646289157173272540496834877427913657171521681345442119638986833153039356278663997474924228275820126796494117749686198012319977704287804523893647730051431107678920181152926843801777329322922384999218091099676875478568863174543205973756196269253990890701746964729871024889412764938386758198447824473913763144144463516110402170544717569782374830054961882358348300918607181943511931750858951997405804130823006959577273197933043075032937835622835051063989119423921892211168533656268572783856005167490941589087808174230410578783469079519785336126673635237869967423400887409799467220578793884611822076777347821405206225855067521550913613881474290297747047931446544698394882774674195209522647089512127122708439210254125247358902602364415403933677293598864825949955725840195595465078696646394195986066412659023893889968698579488802851625370085209578567131966673353858005066492508093504136936542264268030134669527777152191406421519215555433665759224905969503793218597438904287724434357862450210778281449499087321159572666684131407222794139018664493094515192702706462189204401311569305852938386678134946947964172116172781792726177010556796459629480526420166479565206312363063343701322793004795245450389186871099599635515970790265142085944641041273009605883446861796807864530185760362403076748235542926749670473677933963141191757204089802090120911224267091366016722743971931092211683866642000121434292942738266603555003909796609145877905285033478533878141308247292985252647544723838151454867024201448463403011583762837586573218872830651910412667023993538917710483180632956855395362096080769711783640724682307099051666998387837994103237872535846213772982867464363387533879262625805563979064059701833264887985192770092090922040390604224108462945104578893969601635680297462671408304112909418675822055289096953624867241901449840871004897679081914235067328989488756083932760293132943638918244066809915375813574057838230212287497525607207651433414384372428734461429036183810976923520542388040383459096367347093591608429134116509306681895562823258680678975694434937491909776343837879271585427373642500665080151695675257851560972495850693206545356818238946535828095583518341999911597288427709471191872101077795011566090835160520180335693111773087495007713758256036165606273033951845285730229255868350178057528188096930428717725555001266778383963649684399828389201233319258595950360668478164776737319336347503668583610478010088623226800935441140339377049445239284910149269164119953698834919616204413533632672763376339394863606917521790417603361272314313475172081269440581416536603132416617819570466237411037737614875505727185020216592434597585081561950651438081043996241187461759873878120921737089198844748099070544298594385174361166247698547484083779803017335084889314044115715904226143656480612216787961611616403757950930863327192093260701124899027734442339994573989357138373398026066588598963872765743899825021495552810108820316533941417028813558790218696430227485074458569369317664360982421801267532098206821488498846112188311353759485763279018116988873092357509021910004886354835909307841578999520608202947417920076880868798583081155726558819928014639817911852109730000101315599831165732692734992191536716756597400414831117733301539599467467626922053244537048272303753394487968482489900563378722984167219567729261610512251246908274539363056404970135712868011468974313684577990442235452744785287327139948465040483405428382753418362897723194324390282684019739202648900208303479330527437078035758988669895811143469765094700124134666361169645915998271821311747964945347689425508425643598734050346220016046794932823865267022420445239842320722154716080700190349112393156243383327781887685087112658810868041037314273437317236999040271840112018306531348275227934286458467157826462716481881029338877945497600646172373306154266388605021666537866714028784061644348438208611556600680011869969530670610809897418333200507277348426351102246437168548830443223787440647061028138718233702575600321575150800416408606518585357019586940140096135820186757348865538941583615762313231434544424813258115738303151384833544739223331587137346575768842115381085216638887055255595835509714651402730004010518510764758588021090333062228176513500099464740456681290153304582048628916271666080175535898335667158856203568690754740608905327602100581420579312247679050152109668117445763519254604561065821290191040189016678112959885683968934892340382172846274868868624322514794270040819479335170371155796001352349144373212825602531896772101239155862543200135746634923089823718346606285725584926084428912742297485847063459650839855788294929845885832807727373301787140471313844314206879287598968429688431208139873782551578619938336470408262495535286329196459057151281867008582956753644130838015801533560106149446255720164698808055497381380254320589714073084686020636643499198498855925999523312951313538529124735946751126908406689825359909433369935771041920695093344498623811369944797011521632003481949573991834427495660342199886207293578034877147096767980171161418394440505905549498029852885278281449780598975757726815828157973639200390596067484134661561134942528329073976659402012532615454120516883115885593130385888386855764263783446680710632237597836287964108057748435633939234998170978403772846158232902992402259597563071810188823022958555341291899581743429711421141680423949990761756483813572858708645316787927678845723925220493877251761032070643236805639772010524446087285305217143462262777732690239437375816343177924044507842662890540032715211915906472082799640905881944489699481257493033688914723552401881629505582327932259678989446331719829106877966504144525049791264444398511516440570977279370240501323019011848985916058651704623129839638683687941426523837718622250148220483097277946462245530169899524328032776618607188080792671367287798496537342063961821021582589870532479436341394650815600571797658719860418481349788915494263929990104229828971666757880291105291795023948643072386184619405694609140589358083180747973997072328449433507642435533568328521547870364418460315643098588117200368086942925467286032264152639287755286241486639147564301389726860422244578421842573931283260730833173352661078190601871281803377743324588492107857565621409199007742814201640334826121927860785263826259374203908951983229042981634912262692516660458966572729091036752348821462745914727428965545586105656079676786695397740528480368672325867057925839258386204370188778632806820574223978357871444803693006970556504891278703833524620230731712529949042367872867336975298216983648707844812703119765681346790420503025735818449230495197104644303303118191475905342098818356349153282467050847678434235532860399703928204973898551593681952354269999189437842640684172176639923482584169349910277633826873576156512149090369079306655633197098623043667274656243722183316373292576645476013445773106831752621358779424814415218839461762624894840356728179219525602642090964441087131280195881632207048922424483096619712947590555766479582699142960851112339532951516332614177999583575326262735568071901668631419812327740730897325907793869052157616100668958438466692801111459407924739853703380551526729012360893148089000635627397154121377515170586261600831572381332462748750401377239994381269980380387624173382831985998458565755727133989508738690380002563901163477477484919938484554236888495764546194265036224760830737704152037819485734613405486425518732018739958217243728036895561741434472732712176363597256071079524669865702724310579538758187221327680853274686542094724774918724412456401654448847050506385967572338634758902281849451014558100227650195008088077534848517738017271636882601124968856965689463778240434543582355212066170263511607623025669614293781082912126058173109511451371109690028042220987020124090363867678618766209554074662666156878302524095890155150574328107299597205043477586742001651370344307650104902465681186044345017860628360678359755693498720274421220449674202205150105363076317613724989184568434684585033950592319701765774277952317703797837445711330566728433555245223255874180626386844380490814779773301513130840995539363185633631234720956259865131894077201356192501171110123414747771159719742111489307559676756557997457217089216875281723656910177617928981832117200824204360506534317422038811709284810905521532438030354614097222525570174065653215342371293216118116380385105066820230641178729056118524894976082531589902804465985780511875019994838040316456249634265877126030951300156255356727107249641842779669793728510431537867620917793585665781102829540477773149213691943405795172914460254465975498325091443183874515549216290232614952173778420288750940885222942627109605588649732867113203965968836289983840333897100195224924317876257370123152057758320105217077185297486827921420259524971886181038991267429663723804300213962530948271872039239900774051904922924925507299553033672317854638389117783505627932219206426877959529205622746549567506863419523779563701320160713934001064980664197126309365275342663799157890047835105574813917152022575254587315724321399088798781812217531133468988206588088849531938513343726535126598724627484674729448335346312826786741125935259107398106073346691666537686759115427750620389131728990026537201521026766802454625620520790724935048399918601851178260079155239171531636358475678869955235436235742267775105428575714359201447519776349126136571480345723744740626819853990093698095348400071063572769211663376549299477184252681044250598725174225667832161857510651003501900007896963802010372948105993074610351812207827922677034235439378238339991197496471313386818835067653834010399098887847727187181338047983771551353314077278784079272781793051559408742690248816618924158412858945880683317209266941929843033342786820081828014849031579059093450797906906734176750605913880801204650645680487721021647787658858420562451115906069644547174807482816854878237686241757986817626501748541850320745207624950077964053173280538043487112674906061380800285363865327053780441281002345655066689063415529400597428733418020104060484289419064659046001216069097175640357877462371083488542371079747560638466490714528420028977431468650481357682585688412200465448862131140627023168580509102209602908791763545104084888859897146169442392663584184746950566486812500757848947253020800100486637894551880993029993893665342853877635558145811556040750380018626562018901962096671335812358535135470493382584183625440024317552417068397151613283958151690271994273820180173254028114841308084693161212301790160448639147648396887844505059917416727021253777928284958693046695156880548627954414200065176583566838696102684410726950791997170888245895527097649573591589565701089527985870279303519063578066359560452568832482785455928769489787130450164890376838999465291021093293243306426376089538654644043403978977944102191939515571988972554017880322734480445449517797636031831480518787877095824527890765565139155779575629135673027628662297142051224162647498598428357408062344663546249859488520791514999546317026785280795226286986119417971575795683321452962265280812268455769676356318014407691985471308757356566237820570561252789757986882362825501398922588991290756364953711691066749098669372608331118549704102487055765775971672539814387017793568332318420927927237415648230605520478855790048554044857911832781878818268090221151664859506405576886076559897735166138996526754459007549222335355403699681294446762531146543368913312303880534008629493024393258994841648526255107797823766732325932960719277199389135467448897208639851221708261723087004968182253557204719885241892678752865043996497991636682628300519432808979672857705636812090763140126030144035043022480086740013284854725421628187202517311561100518947917525710347643942640441351828195554191000248243414864413311287453481906425077523682824296855203579775173924952850647492167972538754558761169435147261655961287863907385612072682802916108519425313557396395283908653998377207905170833596727551864663705080448421857299094614815669949235102824558928221704404538722550088526559038982541659356236122475974610979775050678206485984950500643445829090508950429490073356357410923020330293523652427690745449714378808751370510169387897539154250273551984493000222744537670449269953270898836735724143123624278563430545385532731073040929739794919307163143676585479958155333871023325242049403778043249356239585103767506605279756106373809008792513990018796826025638894453723279366582102314699934684324512544461785006049955763238927476763270574015255372790904815705971849687997075463302139514987259108394431008258068468676353509248891564932272814502834867356631797972870059510373264470939908430237723695816452490702434843592044333878891504805347061944873533071926478622697386046733802076473171539595977671258557213071271186751980980680822286338028919773792053632123731437828524216613098262729418541652276281105896349076302571950972004221595583572264246723464954768009431026345771424951078687481169630710970047900980766556273328226130348588731048293540008258388964077745855899038380755136115614491325235991425901834344772183086116015875738970729299407761709677444041572098678927560070965825126120315349698320194904449930086362932124060482604580288558761751364225965440732761574275449123561691937657894053888321072475035168601917862674129770254354141430443766590438657959203106894882810912546409398411927782265200325746773330436608580828362738924247080409890850583818770593914931183702914616882737259814515055466312114539649851864922945727938811020412840914643606502442577036966060521754850123896008004641540236315765264935295702538683498278930570837106504780783652592962722441173607636618760683821050273994370582345138736527321599900184233462434642188451698524047786525022907088146732541629609073529231827920436757850398968041346964839505610757944781895411331210670076449763489519933203669794382656604823574360851429648397385208572444084812843898196221519853280015560668708141028362560104939355715578177324120472375380383852982324797059409919543804118210911470244409280790344816256171644756875029690265329202405700620604039964857663989748822528117960275209166854520622115044066905635275229994470465060367792080514379168333985289281057494463503462588482796533548050441382829925847103271868722709851106011870122627161371901245718297102324241458955998173572401459447253008683251521142871664134985010561976351637643104956505915057317523817994762884617704302376442250569245219346132888121361304850725702867923186782260770150973707203654705633306309173126117996740739931234151028998127752058300781023288568978662692361321612747096086578496321583462235117912883971170182985629681427979997325744115536994687942360416461818247896230838560346112474430662062072940685444418902593726905911153110220871724983752995242453341073375877984603692898671050229785335995388586795475520821604847675535402102811278383821828833959425765623491433929340748153970319113214553995237476958302325654998492083115778615441553445502379445494943316711247687618016052533208613326874779404824380594126438170801295623796221266847718989816563377881704205497151803844900521585031532492970648035274921315701250037134005940715866373565089644213571245413293275901273424884079061827468423554436497559346345169374000866752754801952999312733999597813624871472051810395454736506056933695946796363403579577670854702901612605060983317894960266981873500242187741077194106488652210335278454052617852571559371091664620636077782475441111008108904959789450677187433364036862153894986008082065307733800984522578280340476800988411155671075884172091177898452187472964530852042022251132249398092827122687150948531978925409211194845812039093123100126635931301451515647674185773706841848853122015444275978052512687962089820121333652039598240512596822435064896929899281003338251425772579811575605153493564765358682227381517074326507349071584925351840489577905230462363080417223373696167582838444391133595043466686862000056332601968347308987980529120149811322783463743095458903218301717548985574282022430824936208185568988937662014588136765790450572532390644195985379791697684887656984257049823261028384536877040865171491548001087245582724601198331613223204150239233696979567065300580182419344584362088586809741298439142638490491030571688415081144842481986527362992240471683162098946912017617212442073398138022630494807438429851574655613716208431597433039526790831989765308704516123601758073804883995788979916776251558769099926298059738365880751052806559309319202183342937456029513507006319675476303118427462360818932052633643257544983786944661994719476702531360309519206200756223726888025356155649846070239244370972191227792969456660695794297191188669823223781422345553224429848188758883515563434100403157769228086341870290479220894168222309349398420335497083037812131883423998110237349001171480363568888955030084223357834112830982256155051153481863165537995782769433649115480634933688970569888332666197319333056331763815246113577594359504530314391081394746963723986838567450444542801279478864327972235694173751964212338182888781711553514642358790533656027884305338910031955225604048289971008885827732472698682908497600066511855066905058078417820849767123087960163101591290996014908099371584847294849593693569037025139522482684025638976230906052330640349187544537628417564670948226552805931774081637803623835360494624798215302566541803619027870915727314360681248172341286030181896608895238984352978437190675485849813234221471970754836046255672673480571773711372423974125607838966370463644395304057259800156756528321921556057470167708280633063017609412717871140806454998316976268161105997871433485140753396012949635087997618260981768021044768759927335881173914119747842124399255589606577833232558106804393584809969874622885542450469812083376918264102189255512967094630793586528124413640034564842594654118222966608983989915453715098500964331311818127203787698683346520056552606002057053300966401553581107011214297149384507265391760646331338836522761509809328795823640272524431085023831626029764854994428870824414068634382107881458100616352092028357692000715628599210347126704313573526454492183892753072273134704021937608576674192145624517134229863330348359531732324636857528207562134673344459310916819853541731646781633814657105029721368151015115311939435646245921558614469432502283765227658922647494886807648653072966373996323771760566966253768185111558603083310508722908397548967742333611775041807135470352083563283796726527956322095807446251230851318602994627848500685861820110484433661893161889941932799261329018923364914528157251451077949027220673312618148893083014945421202065140713784820700941133316154331087604449173765807673882224072981499206326417092068298003244389558764090692117394003645785015867035488003330699196325120204312541172072246627185995826666127787717030045685512441235949323566577877610812309855039760922105853371290016199327893520701377985046937736565237984900279425947570301942816138001355529315292128275215238600224284718468181823675635418825627731206421675624539447962698511142187776365549670281127901301490016668180476477188544866247642217959443092580768035565690382264332508445690130010566836560620773446783971900965958649109143878876820797125442077065237605650580661720328883713302788010535027107333685243463084893764127725529504181218745716307607267623535075325836527717648080708684936614135551869234891960618959819134631929372953530702479552895324645735833039396947543992026044648038200680557470607070438387213550291726914750978993756040857289694009167588231477906104738569817085772141227510034663224497271243300869933615988367556011933006845732324205499894149450283022259689565692222132451958686641287898954438938316546131338392185243340314684289797720931486770988341562470208336850910795249324677864231667868333644860360626385395674775851543275040583445764832663903713610304976391942214056708503818796285433450321548600406078415894926279030694337132545007354796830229110907638129480640262293485459262641749454004067982951212846751244289326636163242469490632365121252533468212608489645139046206969887870638130909593002366524629222210467291296994588262735249469439953669705093650224194225547300352215729992912413079592510776047343525382294629635636308873997398748603558058502921070937041803344341141079188235796958322056729816684748241178757527931934033396200641304635421581710527865187654995991094624040490688805602710160761367769221974822454772861134200404994225206879903276600138811801027270320230483607460443905134459463408888980157428269093480391957317766274876465480004448774769966469772061706925270502690915932016387384383753098940489734009466959651974244745208961555786683209287494039493184904886656177961656440458950988345319184474643103924909951885108492139296362526961338136767427300941005324514611451584032015035009510555632709003277340042444199140768886547656129811091990687780448190854915991983292446033340370504619782431743256492601178563521517740599364795834195925899221269041438980247901842879652674294490407956594510864973938387777511033427138281794111810752271692585703068166569851196875770176945327528840030112145530150357213658872702414627403712924869443532720013394030777224557953681414678999650783224149665004036328404994803027986722488864845321844023904412321823527757682460673986643700799266367530881552232834581358303312799301220281043400145929083603230157419410597020160727381934898718281816461423542947891101712970923556834577401187394162823438167846481216475861796416254340966343896824812567470700903581329081654498792777966730463163675818168442613197235048971683694119122748519420988154369542867930797469275941922995237666124792249837770896176889754280996022106807840959970460854360276108624105917758298251389580270845671525115998296170005108247743703644943241587566895707547996942308652889831226351147096155327910249261652106863636086782687298442197944125770677649779914188632396652142772554160859351229185017852245472258096001034047629612154050836757692233774470724769899268915582058669851389814573202661370622948855215529334567132014955635018036521636007897929294035072819909673202478871735819928267100531374890234570743109167744838060486404841884299592214345047956134980353979973592329048228884777929893132854162207492832327787127110405630692939510685871242121303269146008587703630092378102169622752055226374570014543176741558786272711061338558988792339625549511921604365914666671312851345969327015046432213334380554852696422777448075589194266522146826698478649777304896675608895888806015236835870224298707563111592950174391818185554110942469615432016527778601277507842139416556194650627699659050652932673676697152045066925585644216196235370610508578326511333823642707392597420117451649078194270604316326228078170220479501028101177426617560342685171323478223379861527319891407004319666308482771581737938610371841170462407439446619658941277958630391033030226472320777847982007037437173719290888554309848361654904398620572766855407294455120057452535538745042887475714579071334437004673422286401725938794757562601659896324710581038764138213595460746245199884816019560727704087918066552110027786829899791601992870416398963671270132040410262672757843533492573075546398261748245937132890316329084585998286666544317629221002060893152693368801651417404314497398428927084716571636385086543996334675558137396119689611251860132237334398222560209817015039639950652003821861014336906201264608955799166760351581699863243213979006261754471525546967758418870895233251776707898859745314203985440659154684229868478119929381332512322637418195224937434441222653183725746268018590559109174767012131687108117314075010002692212720093360648543642743238419918026961593550503111518638525851075074849372984107304993566164493908407117080553060783207740758308790758750407700285041666198999386023934176912991581120180337220389520232964335020801896792077121762374646916179384103412919852933555150687972521163614939498810729210162097420824430727813040003682691920662350335066496779145513304025997626659733515637344706412265990650367176364107164192272830217668871351052224801957546838698895594398206689801187370239627246139937731006812176434231968266903053097615916413625779777506232186483663950850162278063185257896460979664845598176254940428160829933595530711452524260547912339867397869870774807516506606865463357441449546411175706303990235774090844962054826203789744323959774032014590972772626042505605849961137668029585660236861714806724856190356609069176459987359989343100074174232200499821369165420340473790296231339238869113265174695676308353556617942230547070018783600684083199046914158429639628050177576957065110116518399329831629620473465071706949778446486510741213820475594344260034160873246721958544728301910873890438756210705210726414930901718966301338148899932850607900994428177995726758890350103712604868152353823420259217051273771289383074929746842136738160882547801970674784620503827903395378644698406552073721280930321563345747467065781098814519222384227446300923133304410668997601633652171690811974291295479822442105879183736040454887975707714227997622176845291883768086363460308585176261848142938603938648864960578222752040149043163468071236746789589627478932583824216243128588308774820535839595303296087302048375895899578663754094880289682430917700198923398534719227517645232485133629802713722536818072505311980242495698223862349664144583308913353307138250296711783095250869961981399752843587335169900373609766408209006523925935829506088868959974409299768383829140870192748216581043285626494631807194372407378028108119581921968846921535586041933174754293082360499435599224000236500166619587219972613685908860515885585767979720950597933949552550159650740786091015071321352005160416204063744647051848193808125646652586531235411081890627508416687972775071626504468206486922508213438011433612948402507080641746396267379215483960695362919019056547924204915814502995009481331592689348003449007754642611370154163121432127118301653832267946364439294290887105656522649858747660649289627598851653843438406717205481436101585455112330304839363793177519580015053557063353677505140181309511498275324457718846848053370223547286421543542360719961072085317414605468492856660810639353648155037472713840867804910139633967282837337963382776717328310260410353176261236261329782499855099700761683703302914800312568804653006256751910623157578024795037715388194638182372999500770596363801792648652963468289919243388871193697931048630501705729680712990303650773790383988110521743994933117497075312818969305077427823221171242642294510864764436152539717347200507176804815973543810550951818095247789461814826842578570326109254645354091691744985149601004675656383356524731718296229277868000384904201783742575983718207094385466832103516038673131273880568788404921137539540079755731320542654567958549456711400254444498241286186901513119420145793502057985800292837786351568093895260597117844803393495588402686614233935756725584547850084035927844657350387481373244659148432530633640239808713008616076770366765749816370356097478431147747561249425389414200046665671168097042722185904126900463984364936016417699428573527148747141936464680710920563405457087130510614513603924365502919561605914867853495876390456707530768506874911199237030523773899478289376187783671654743101072256236105592484983491884362089752001119249717044044986150028952149676667964747678948226845972902359007598116037467813880107406876114955265110757520482936751252270020713293592538374883393775952721907675420068628152189510446850478047652026950767349509368615681579647402706878980221766106443376156692276162173395512321846360578540426637035739755130428033427238615410223858579027437300709707811779942573456072036229964516442147707863518229420538018981289603816350875488557959086688560471342356030494237474823759429632172272313680650146311372295101968544665520329093768549135755389063493271293099880311528571915798437758012348453193213239205562528453254640396958417996124232246981831244205773747792744235355103989525088480389112258213711203152965961695925772053128948089695664383524728939410955178631963288028189099354218131121893476935401948687174264098929201377191244390482744194896209660105457753883326087317465658378013241472054816257088413303035490987278913577392368961769300037113179551132795117966388639991681660429981319620552957954361484175430040246987073185537343684137844761126473272977636908328713366805959899365815057026459841134450593143937124648116667645770671131290096790243315223231883498701213876544280081072218235943086498405694136618086747295941369888991753965254094910497543264376472975025942449204611136723497631674812383088583656390147951237175314376068155789484839641684770239646802380467793948711002098286108770975896395953683133528913210512166805767171815261410902635962838651121926699072461865095684508273971731533827227512366224121919361360598140198097872550809004652420709687215020091416429676955544962850560819754582983006709738939630552414131762942070353610050050234904206046646436002865193551238697102643594586122138458787921044005160518599636336923576172563415469793717232409169766830348403951230012927293412853783752865106241746488801734716254662272576514249639554794808712340610070133084827808504506936118058513251203607828025250209133259490601100026509810742764613267001001879727536901386199747531496785695511261724895890947619093702886531642591926772522123956690313027938588857575311737676313536287639852844756049396690494575885890978616173365946554462423448369453160774339482941643359413301231692155533600845654556736436986265288946495764169663564308996524430414883316209080782325380181641169825025749043156312829176966297794702754572205401174838880053421417757018565863462818448674537978218106975108006624853718737714503900111297480157773754826489150712256261215259899304869199721429173537509576296669330013539324052742294440222627128028086490211255529676769250693240140980015060760540375304851221896778213656333262621672199585329277401436050653866457089927401898482958617992975080942202187612751222981496971618115118836124294916759746247884615703273330745812133387989826343723984652303095048095267870753930458455457623546437292379148034243848505126115855212236437989029058945677022794167804229605638767743643056665926624835162448400488645544445358022599082496208583556431439998178148567607641553597393289577710049236384392431652537824300559184713844309637030588675129936401372501660467574373847946469678916081542146611949867896884333844001001696340413430091358708203142892845199205821536769555702339605836097363548492341344420077556352034185386096842603399745122248780249539859947811655163214800616719396158345743737634817185540553124026780004381426288112351136257450630850207036184695500967346021882453069904442979220003254576284164396329269025713525676341760034027876725573526030245563041026887252756433354878155767290290416942543561441240311973719994591190438734009991520359501444020040098699709629191337057944710669993192198092315771555311358304391476336974786850250091300441884581375125866568221714261688197214410559446662769169439158202972245922071791140462404585260699893411752196121964889855926334849779360718227798876496000671451197502744325323621502591540322871697913038984008352980188959004703901231824692728259529818366501142188943344874004129953385842384780876476636469992268194005902442011359179804937430401606573702213682518148919721556231195206119952589659322995205578210878095656534786457421817505403079845924797463072244702465766849923329157780026496439803426174273503781254941447083996840342119277760135837508888598345806220376092948835148271242063750291523706497836597907377124301705000067565478720231699031742698250246556550472911337300283545932675243996618476353058810592224694866077181219698462728558335586859453919718583107994988981479406495611612325377744067284004625204070283204152739686828438259112835272003298451281343873814907727600966194563213478458054300457289490928339831262213121369460270420688231602157993560239785478361241040640249375390024666815877633048390582358142006680152965915908669358262747420100836319215414703129588419780884114085613876243877546805416228988373442710121930390424524951717925835134824106928137972512473531633975276923795168150672873901340903205621144698885396648177472416570469092923655073862392041245790505976632127669890380877152073541581435513412518939886797868524604256523296010801146202423687843253470164389551526675927265261268389153904335610389126001593919691279445093004080027017818294378203962144825547158430915202590563103291670583023841482966076826857994736996412517437854203774853958743302575964434431442147535640570099114880077059874797558453338293434422269990987744000883454525094813701887567294210671798517403878580895581194148966947775199188865522136852730282269214852372747382647427156105571673104849883225965095477683609365968521398940481790092273952263555178755857235697727275154986497550243104437899769858924710535871906485908336111352173699540717426828177954025338505110569462230677664872878078064372128061793716576053295242609232256622568362831498889265365470788213183542172107079927510442541730967299465941880291576692482937059512514958112524612371036562430442996046180953835683376566798241144762477737300910010048788513587382359450419799962896330660508325074619575942977269823372807555884923577422374661603441852437329599910856365237879093062824439697070008802493028660899311122688580363512113154532493098126153541060666890533100226889645737825280040852139647227037818718554607520420822115570242460481829155879779433352319597967935001215093271592428115062115682670467301021689085965445131976933982827452850197393181156921861703545494782913715838169249207120979495437295671709636940955203110251066894141023321442817163549089096149742964984789074157807022701343134466724266633308623184776200643716497610483733017572572763923495570495338615407795928454353192087440166861198338523750961092614596911155353248328062898209652579106308181963808392422296871372630801831222247538085989955919970987602258284652037073101119457986671195524946228045791252727781645292574476201046189089982891794168809007139288586247897972454221556034818013217301109837648175637604179144762966271455053480464039575309028505798671312135479708061665280919424562456904832429196298173925182323459057786754105569280852126249100923681700481218973857933412452696462062349831544715202892127107592571336230179307643278589787154612103521609921513759077162285937509421483829048375035488391175108649647197869127720159844972542574148113475361423058841101863187608751261526042654620884979209485980901017638846867450229516547336874715901557017174821490384176524751127156851542642639249922832917942520250891768205916880903586071741797716483946006730431052331148057764428233339371823778841560272744329206941023536917941567323158641385179899452929252771381138853702350008646870498185700035787354101732614368889157089968622359565896768382042513176103462566330642609855489299414119082468044202452939406764259003687329753690716242068660488289057408127571562111997960037814435265452797832446435798975183949085104190057718424808674792996880398059358514505352670307032196467168933352131951012792779521508744759011716132661972774430604233083581389909779939664836008952831858160951127003957757388781967969920667106939403860492446036922353457636673447762799203040444771098220298333791848814920357654562369511726786339926432682966718361214881272248865076291285278680093427198328981463281819275665632684529621355544602060858720953366055344546059115425223946908712303943200224303985775757369275109163910971164963722086821962099278345845093386367285327280741202894824353628349731605468156207407623898129042374681648185488279261187038105397469475992202095236722914523478125786560266588501819185078765542294432888265579272835847605196788989726938501043370897747823820463258391764711772580911584666648593700389075136636494785234288513305442363820958490826404022546563682330522576886091126724590729738714460730638518518966145295586221194688262507809612885597015609506449553771823599207110585034738264327544001552226546891851948466142918217255771418711331821165830657744429004134124974028050103966049292323673419552024489178072275719175958014777545559913712595633261575896069409413102360280949612557106085033897967973118062298869588216615797393174166315048231700775005936174348956257871376524726394460722242866976980299746533974735388907267737269679100120749875924690745121328562145194092130080439486878559064714113549085661330272152489740654854265853684452402921122483468545997012205455062313335220469373210231897015159043879890163423162834355659394847595599930757079844168209844552561149511902621293561251305730897648582344814069021513450254149694134079567589951123510595445751769121028042901842813584948471332772438573455735594402402505707091057412263021513245926157676358555686031913072926785981276028595523063921262206799900339170946973785794587492451799619979093853385212933384707688408388383755176541828093246236427434543746277106909115128682329615199335684333831320297076972258547005738381360789550570887764844316226477920064362774000224464082392390751037822400262761275388485723124947140985539885203522419863874109704208029784187495412948899962165548791153162168764562832694733570598547021140941373779252291130989378858800600584458409775070061969689939383118990527034445664806168023670771818281686370948312005398142380917652074525014457565781422997386213404232628742382200250332136760865691182370070085406980001674691375389251638828463745530251557485905029938030600658845287629615423810789812141263915549239726022751624479948967719972202741945675583821051633087146582628920314707169195739081915043667558383051376674946650628157734718188280966364663095135280472740590483598053172671665321688060328598472556128560502261220096621841163648588957870054197930287563465416384429896039340972369959281293834952509917953443334082399614906643829472121448749493309884995924988463973417605305768354795334979604317794159064836200263766342178400283579711654366503917296137986349435266370547324996736333943847641181096704351675111575758571218438500514261357313869052364213549807732591756840653672383973030464644973002932820625854132441610849611416149901207659095967559410023919673917768918947524713966178244161274770545773196442984951530232074602307640773961297046838466756632168412519284818980910255484711220109966193503514884556880236945664434624757662317601247207846139580978320961742568023110846007271074578969293987934139523747371791015609647745123031436635483031121597128287893506263906854903354340406771927068243804422774683369801358517584180966587617875269012973308876348727019047417103616417131381719920933770901039818273596441922941364394820329538808296605015689363624340732527250131563343774230448324501546785607274038331559098890522857097697528329952417620624227820359167700244653184622587212741480956094308276343480469102026502032108211147046318257728559961293156234896514986216997326894787594583295069546099584579579907627170833683337117367798212232554541528555643139714614904557422935726461970191262594834815487854258712436340643151576223793697109220202516432968174280864745183479959260774558246451123242881752303173616725875744932665884190359284096501475273704541724104988487892078767710885186428216647773085227886199438597189714109734428175959113906507780513832343758871005233109066569817499728467589086079087629938670342911015612612110531802435153839891730620388401667277534824170307351847117073292837995088281205753693371742262216457778411414342687696053534219793655574962195820623220689427975635614181951938349112060572332742665657912909487175605828380438662729674417011174025342003748508617430309615708710206271904655708573253048057557946365274440504559154989010244907385171111010668933403927087078172098576107476297267714222340943933401434578242483177713075787093027806380800534083003769112438965642411202054621331733947812312288995313658172396750913858174508706443166143458620353250104173296270611801605525470732368769871341054779304530456898862020850624013806888930368948403698188069048073925505133970278578123649625527080068938809580701892770690911416572755948042813834841577492900099153998542851336405382452347985374560959005694373391091990804198202053029407906235467286679385829683326104819053461411354141450544225811650238344129962152005650319482533599842765633538228357714284880787028797896579617937532152303217826264793956986271898154355858506666940451457635959996735040280653975896331940985792085227696469774452221644153100292269936619187379239784086116193232138668682680283410798772131697942026585539376951044305555501227994108915326795875708163500657598433095343865761790882329386811985804660151260674677819008471506000859427834473072340407832244443849624137679033187504316739018552907103553357155964939614709914167314067689662493696609833035293628366732216972041782212199041082683277093656963005941796352437527077010344574491897377856230355013970801932415201601046992071694467662452554671434021942126160420019188649116694768042703263765483263859193798960266554893268489862496688399082808320419201950704131302015174149709758402770530365482410697406793411405122349984807427653224265329878995256330177692732064668877042873643079216392888078853110253391876355020521000542946019646592156164085799591537598241530367573136359737583477956022117537227874341601236946705854383613832371440134501335801402559853131605573757424766863903103971632313777107497149931701134007232366876066523592101887424621374882351026552136516570656770690490816857444789491201640097682539725357345675947622260779751483966773999248067691629764678490046141898270925031023141189717141313814116584991555210059611971492444159813535401564727824684640420947985885795699571716810355939249090663219541645913789082982565195614575781291040078670504334024259264247050735248525370928493987148008442978999953971265037309997195057652633909656124008411387247272992824411109151340378042225063637696021703702438828087460581923041769890616251092340173029712059528852417371184109918190949130872654858723993113756516655860226548475669020633910033198284884618508878468268300124326806837701410804016369010682154951474601794859748064336275388600803212806710520481744743691703835927632683512280542967332613386717350320722327194009025591584261069244413718191068559768620214278630930837647536695943195660869239161664127628816398431217792898815204403196824620189661750238433669114687913559883676739692112962143589917742251564132692022476312121963390200720765626668589326097961050058310727631221565809238962743804693218370207952057062363003250163515367737512763653975277285171113909316366458289629674193296572844605174631327813086444244402843578673516525105191637971024373327567296567058646117536283609860159978090749701269447864796240281889622241604158942594827246859931269064972031613374374309793426067808268417026982272966096886917728199661056743443631086811081657430896490982624870485115275993709227910007651856460337007747935587993966203770567938103149063274694509596638114463508818423029182376480365664172874277299654932223656957957443209086595007568689708095325369245633307699543179004518649748766025617989387232046581413588895436869083458112917742307569469874828108365190464726307426576195162175256523651652218735148696344464075584925473857580563807985148737885773328065829455110049909774236421362289426438098194108456737792398150228021952588934429649236293836642142380720168408317179397248657199249522904049150080700566460382946550973396072248364216443720235145754250559834783301300046322439928414512214365331149461010787854430157263517729611333482809485539760579026668086603861918239703420635325541195862762223637576625973852890925180696669677669791811684159386250272880017319081631720276129602699048251411975787310639017712457863895441790044916012022199209222278758131215292218550638333693465607369498335734769197008402074324879327433070898062029342929867999068072552702846259253863360199587258059608365634997707368422037646021527407994226585315784489644440361786035727426942607647207614009209352461068353867259083326064392702891732702874648390657088902060770213370984731807886381879961958985967728343012046069324310378524684746608420439927522394704289779363007620032941810657159205148432366653911978056302969039427487368919792518230467014540404645448846842974382151722054997358109399898315335228266005167639669510063848840501313839586281125066902838638376117977955251088919936947631028563998622004666148496875571967347997858657220964740712326836957024390857060519625493843629570272693007803083586911269929157759149267071004862786292872420864582334779373500389419970697539046091795787751587636463131749432423811573612043111133113225902083651935198492394049996331314109791627615041780907224499944734572523301344410380656462407845421211254530613606128507030611460033422619859703431686502473388188949631220197990957342074566584435143407632894340102672759793808285439485468706554580705100459818596823437661827321181195498098778616130614333933748046109052088183885912529825769979879343262015818710094382191640320710163948271076720771519267871676051534741593554971582558778871546554928041952378925240357410776219943897432133995638502306203808616681731998677246863375000958780691935497214485023933136427849466709824799985679891802018575367845377817989688665136034431001271646830554397100529935624168547204415396341793105073060828181784527883750797373161855007921174719482978713018867932073586976800386593512301421297175080185288353843735112866636897673789543995227951768323754025266012080074517068378187476281420565741999523257935470291767223171979974772194014810590148376565690487574177276972469639583203735636043477792796564665132504311024755670362621218664691978607513933081843883433204212950235459996456013214529739969991769871170026807045703794432464093622771223596612093998487295743919962698983764956232413753562775883983782568474499453631780306650561408609246696194044036762868120409600763509741690876731172551371753331247989601348224380598086431409202372416885579581516616606685363860287298965145018009187380130203968111971962796737789448147599955804341878731934131730803788992728141576384641998376114292837458986675296052306553269640181968938937093452817059942873391939861445219973486394653774406119360910646463161858096973086092388336233763231648934341807932652252697255175214078553251059494231075934612812620884845877813905271272662223095542314924517824659705120340408091552829933919546028470891142812864019803896802954698338894509677628152034580940795062368512613614485372354522935561037868177506229067095808883469059130493066644690840274249387247449107634784858495962325955177741505130320245338557809746433518391392008721284471915691443642201790551781613705122399492831444913187860189443961456004599774830253123833899677246089501395932048261478807620310598118328400311626230680106152751601459343060071741392213489060778455656220363590727874919692508527224219728335553301300086903011183435077168968660687556220880751928695145426985162152701743212245358812687446470392087389876012022999879762428716889034077752876458439547792959213225490810265084178997097115056150098567065034064401458396149622157776184303896477121130172013146457485101834548846966123024247185249388940554574710212400101140853517884814406734758848108659470972922440442849943424334077458342977003261067988367794358779448107003416645785909256529941217015935939538225173444874450429777242279278739886720373864314228913464410948061305279116714413319858898746029466331647182024028796224183789299656332046183879787106283487639043239112530846732911574472698613948948539297254901270336762798778795768078149758604539446524118561881073799511410574261607334051956408361779670860475608016491169319955166347801949075036772343838460186396167156557973019740725379637361416217798178410462304215382528804823097538637277166972088847920735397583955882008343469929020175370031280209099647714781443123265121992702283375155353970024995014328095570178071168912121531186135660213149034943741210017391379257549432090237947710927967000995295658583540450155969583071661418613896460709943063640461948403973315381483709531869807379473852858884966040834211644046503043130131369003826638183201306898801887068860302444083373834462869844471347608901910529712544765358147581571969285452304118755149353145885890219610456153276474139304228338669298557041059935159148740189581008838594176246182207453363202439364187410522611569218013085788652113823710274732817509828024151728418238784657094133021110962136397074064554662970115082502413044280499874876094442632550700621751357800038109657841194569680571663064457429099776647648690691792382593004437168926358634319941647824862390400215301886521149100093070726462868802178539800910146036776491961399330045084657129598914369179426774815372473683134640482096163476660845776005312701276082773047933561998838300522360423953409534292691989800643107734929479168190747048888736437673113598459098311331257369171695563924394860742399814223480637386051845746715417915579962458634218109378778641589613977450630492494783136811344114606943452581837559926008895781262348600073979033662215914228402901405741111222635010509426910080964263369143055462038763980487502667728368048719214319769659784185746448104887415699640485690934430403204589485360780022539946449801603770713643759113716135127072831268555385156642463054590176809625823106704378131942403215220755343953266878107759110963279620788789302600308116704956527950155914726352680389881816060181897202067190976169883341478569074078179840796563572565348702146559386809030146813458450493058609759788767797610605940360627411194973388032966895314609460773211938574348798553031573598712059397038953841424572486684761538468975911972013123520437802309954486291647309716988768791030004866901886356038164451706727642401824878833974227492758049210969693289295449279262309745593239948724844663892664496779165464671656489409492187825190499772896606228972397933285512668624889331653039489929889620441182114383592801962175846632000386508365870206509606863358498822211142929993346377796547304351765554691616104832226240922918353169163352363855179458732921701694531188118692402401594602909998084020028545914049829688426103867283151245523570361758481620286336787183850579812974116078249643606482014062966908702092380538281524753595134157693577150181330086484451744766539992134745883149513835396853021518855638392668700734079564799824968127532668936065411498837958780296491498189761588273237436957306097087672198905011772864682592445362593415058218695461935949041142304414972601580413820334458551608398369719967244707225395804147433316106217533579040772175506720574374330915676697401118250601468421915805057181680329491585056432963648401353482656511342970930012681750659801300553534686718720392923170831632882635694010381050225263056981955191762030325970923207297529598130342479104099243758345158227076833632334692435602041643005421214062814539615221275868463936172562182551361772675141112743949567333647451189531342890230012869303154637888255533311290851113350113828227986686228337569822393575994590379728118398143180590455185986059118665834606358013666562416005379933190783356535741501879526110944304495848060261013077580646262059710620868731326566154083599299106187196535300522195025797180575783201012535408340992790914329772388685311650076944519169291270380576818143977977182041181501697540546665389215932291965520189478228809347180223151850405216182011545626034187968230574994976835116042882264610804594055396313468753319014355628153376850285601009983909987747689992633535123371197590257582858393291321062085541309107704192877018960952277521396191682028252233000214261604804304387178425036423021124867033272036110677055678869845616217072424237440147972613904383433903240952685464563604251340356767357437627400867194265067647071218332644407484018916718256996990333813364105715452717660847172425663551751513975386564598635360898037627904442628833406989626345725214904351461882789649982808327033982768283801771746627090447439872693726622861630116633846768602508800472021700105889760717072797323197555942415780177227542762738677838765909181822429251947061207160540643193839543217779160381442080350476424753023805203982723861907898359706220881102475605934175910988631590838922434346839557059746817695729982187005605299652511299137778888463185456921501547640068357481440469384766717278625535939445090805407251105914478380861326183648217444359172830547814494046001184333354571139188383834036607858786561611450303035055931920069496574438489420056949611633736640943394547922769269184809360508424408297537303178527663842355599328679427859948018046882602401216632431656662706607715021877450474997147181821673733751903526042201518239609211319762191643247418243990589303845439267791761411147140614719101277095570821216605535658788471347307121298018381553283296869645192596231979258983183424894671691956558547459629147857297338893034292680614987007499585402633661505202404313779844804933512881039118138588157786328222151793626789817972723473119736615537768080551364139182428620559937892893881803149343217157864835341193623553881836086006125850045635329519816025403743036764046534772345664691996734418709802559039703210564084104224853859978352546592884166287519785451997886001901601389011190015753819640856306370142909052598076260904178731366123199197289130144811633968955776270918090686022464675888579620102499070649103155198808528213037441555490179908163699333330797844659367083602883300419471088166801631179594879348947216786080830756453116130895089685376193318674364947430074556732785838677042106818210833423805512975331387856580038456336030488186741359690537066344235816682143804458846373747261582519767518950437826799369489500394276090162374498379991842810045875938586006416263129310646954373505378264063522173841352413260924570775631601995727272822266981769870427116835558099341931543634612701911696039392180732633510557839152137028530911230273640896589804620124341821363682701120387041155763574036465636485652653695528943549681654158819118143734318319374829748323373754640086943445624781203850121254087355470341942302150667377374815780549236501639873244626035837685030870083464099896305856915301730736152125933510555931112781729929660334026870308847613278873581714197258193025281314336311969960262145247091081925937560947998188720208398024687929232056814845791960511009739183281353068830019459173050832095364681899692090355982583026190408533191210701815468561201848314062337595375645656217170700218740546600729039429894929825295071414693487996216188585775042818020004511275013592908308027528225793200751207242753308515533413526753694105237223245943545594003449879596472806928348533603398964698497448825181738498909382690469169955178673498503349099758430612165193648165991219535883436102533748743083363157223501632270893199727883692793047951741723767739373137085469907872033099545694618087048728680279444230441726350875000360056925857307678445962736545587284409655206189956253545108848239090557285925960088809961563679296420924920140068285489365628783498577022112035719821346949958722544090592606129022714204396173113566722461252711190866443859616028632227183108607506218342910755817043685785517473794293112892875649168234682100442302553532471693744790406060795008362694761519687519765818786439679999157520330349247627879697328585376237878216346150897930299246573336503355145806616840658040410092204609523946297620755529555033224345355723125348255345409939063097293678531990258515696346024454944073915540759698444716313242995998641567922459017453232514829149758520378678037291009608963974544719402715984590028167555529662803963666213761186622208380627547740145789777608533296734245168310808162012601017994048726264276332103523137516760690204563090073984145989163326255986578735991775398871387488983610394270969703708052646087045617577154992422306264759051797945147370188980004406043953503920243594389823090434787132392482115508013811451805946071650598615203940589175685341474777190395397452346549792880722429104298651221527731110237924095433427090922362223127761811118524657359983245981847802662196650710723481274402311293343486896780964448077777765772003092027701470918258876250351413545938706121181419853664163913927568758924881300295300640891204615671197860887285023748401243748617227815787656772028636708863324743040884957302391685692354392964277457472257590663577860020089380900506826644923132893840359479851465249104125445095482582621505509043026062570110335193082230266789997826604962213084534433699775079007492541023669472362118322425651617863868951618137048976535507979642034905439975859534710839068471682427931443147340799995869612915648979824906483264598390794275756043808970342000869124319199321461240022692241594504664121227204525968088302603733546379330140133936326916494648052807701148506715067326989832037777713446802750585091738794744907813630467852967510197491227188863289914172690050122141224815460358543503255502660649547479664501895960836997445208724148656296263558644229393921944510871332556388212296036468051609031681581777099844893906020352695368996684834066777450724315001318851067825877300929382246772704853000677988962766198209456345450710377948445991639172793189148785355394297256465938407442939606682631011318484993993673210099750962763590664520499705455782941070510494300054437094190595764071901295714274653355722609527225710383815744233518801040285889982908301989250230638297087825586936786417406194456311228603970776922374925530909079963600316863534614563936834271639808688180842344723714204873972100323561297077749820072958373436558505937798093199714644425382071434065677411594978619242374680000874403856761941904189925334423548170181376184844832222377614910329195806647649653857484496733160073403087438782843379109080971456535322965400390037492595556843110819494723119098168039173101538107664708013643942582125762486013381477075664807418805587912905995873503349321285207338789400695658645535244133894395640954422390431640366709441189790474338058811872716760835403315293043959334802364715704899573124842163467928031645375822452644657749093616179385194270440625822557416192108232134805039827534423909026907998634086595838421379370340181237177794918470112438987100733986376570420115793267299436403273653740825836020958725976509946998850451261859809940959041144823106000610022026017146612050799618873589177946994892819539142532860997775664801591955484125504666720278062914924558458489583111443333694616174130341265310491968617127858653077918717532638119430907408776471241744022888847125266225966488937065894400619935065632946932728223074035474980499700958266215501593829920891816715081791171705903949935372592095149661953645697224061119808997966693373386117908143232977168382168758738137699398951594184159613563403833152035820365691162387000445770253008015422473121493878192014237255574139562659892621639053735431140488775161785682910873761853922365537956098447191088157885130646627452292327555615662714190474613142776837069662767748497406788786611763056089823454338102780279037057239884098486253793816653005261859945045952206767403222639504079581099991996217576104632771424069612903372266567224464966321592544567219625218042501852134975049220138933129307177393921563552650261527280070380907064546516612337684267327652068564384165809561997228339834325265975290231141457724308096881609869674768074994899326112777948449193115185160230748195463409277313307678370509659008836420051279538894967234901631879647673433763484181135893586642209186678672299768007032882739313852056766215256619636304598945020852610249978725155952450433561712971178422398341919380823713229624798130691474186166870975054416550302037033785631812606344755102364882154650034614220863670841961308507091621915256196464593523750991515752362123582904540416050033750194066525529842781194342349258545576998013397298936571584722028017827647219593271809728307501203246818672902900942532084444232323742364745792946396910851823215187706055547630669130154421465739724022880381363550699250218020531534662653728376026997564796908783476834445963845703916287356863575318995864765832002485946881516900225168312222322564292629164397875948933115366853272718389876972665171270948577304682583762355705063389341224340248338400053644725064554434263059482418992543932284673726849650206984591996037066399430552785313062377191779889380005149802361396135836995492654791131788089502260233821270142793016553846294743991534715024420560358900886371359933043562619648353957559775110197681033315182158263176108902445352674698503689420498353536768008600708919688992091299395628632286990638597451936536421134790919191852394879031684447328949837924110732762454171069456550838667898974138279795525705967215011518602807737069800743100641533932575351174181189771068344445055838140552733794196852663605342726909280733804119481618252234383749739115174160355008876466959971246404659404214125866941230693457052966848420968324766904737908193014288196926252513850562780978675085035260897873953781783367204378192772727037131525643311713333791425851567153263606525506739807853180063728043044775095327084627196696295777782346515125080601274277635341992543739495045933491270178890451486484691109169129896352479761071101876421506462399844192642986731250726095362026914907321090045250917902974459983479612972200403639385816996056412231659811568642389465384792534849423053659680679575736903383929035058116334688783378676982702195661294801311821922618357834151813760081909061931858042815741199911830522115210701509097368688553054335962794901138476781357361612036663871588646242535928200034027274663057462488405012208924289477468084660950501470974433362930284680592414559761448061294243127157819078230697492079363057632251533397211500291111311334390443625181720989576226759670973036117815130577532325067075431120606910916541640696329944858135328919848262718606693864511566599447028551996475474910816461783519234568510450507748068555748693189459910696783420221601714054977307307156946406375033053817095367789635256670248806603969252229661672107030659291896484217019785908136378726565011382685721851771595131402747702142992455468339251860188357837672126348090971310939351187468820529537383543490332470967276207256649200300554371948175438311161747501717650976112723650108052612512908246673553454267452052163439120451665119304401642262922847895470442210300659112866039561300082614588805361015119171964173529271180809258174321161509967797711091776453171669677810368052213733950453950221921539376481039542037141744541146368264630375780304269547895466843047193391816205583959593033643883856989081556644178704852329277122311319230291215706566572691733617290927801493270800139639845830311725918167149392427936648428963625350225845061368976367077630586030933199747661591770541003023247751359473571206788076220852064401408862317423617941119675410183370471465359048520300093812240351453088436354203608401745070420460397913961452932034426932009511151357234809126201077374873589237199619370863278252732785861524243538291256586364951892773038984924242736859112419563390042220946644413435874373232762494294982805824792301525852947714210407258191418485099432024852027897125511191521167819135777398076332501765163706230674937056390995635938270624633593256460642268383957468004012742703060777266004621555078865539900856799034826303974999809561936892338060332014057853698951841736499088348486047095866266637791426875954221095662683825307758144624309950723682213392246500353163338607897989052614027100159831171998153959690605050613120362123978846996613685639677874185164692998816847255139808169469926468806713509364302656049327056492049252290161527206794529167861885197244983555737821809800916125524955386064214281405394145854570370782826335909876097906907917218652909318169804654800138374877569047322106837782214442704634682960599249636472639109330634819012552293769065161312994019649279484697061134066897876710014902369946086307259345002914221572156481830954464447081942546529006301613439053555421136850578129565301392529746578696128563586699240246479535938190145676377532779486955464904393690639286485347147891939911411583682675511675058263053851248012965343215749893051433021682930562344589604903146702138645033049502657844870045243196553217447001016187645801312791646623156391909280320164741367346596057812158240726467061124988500739688300042404168721004505112469473426579054006789184680109259069937288299122382929691127532540404949920765527901154025172778198028722435416209914431247311127283451220878093886030106805515963593402444416034704041084348600292382972455864097974429148588030135735076584835136322033332114817848646364920754034900334491479468794758289248696838859799515439446409942326380733786898394452424947353885442710713815521070865797681935202962308016866460523647211218995839882139248664287872929109444603880351674193699820185101287519097368620067956967314304555813212872640689928917872235058227222154883237376126645531713035654182317911612390137696430884569970474523476138950300001245772933141883341396853217140713214066682415237278770579542672002346560033288517145615887574394232456638960171095462552210141347893994780621524974265032077556568803970752064942115984386530002761508005934687361750067443478361943619422091023933599741513948288690340961904253564524868497276735533663282535459208237536913491169329461325464539053940052596474638183671613190165777719060052381699187550771397270236660954191503688179185527998845061194780238539661837284411481396848758167895808567281363337312909223912472946242268141032587772170864898625738194331903040374784411040986146444187523015597069555758629711369685423020096298744106803572695591107551193241472955263009260595622071213016308994095083414322808261815149845796954692120289624888260826942453316232899162515592534060539513307590579910292922115635503021273053598008943653105480332516370365321061879299572853325346918102541883045184170733767926469622024882854271452956525494048802515839628750449141110386262015768087990926200206350590944956936329387171909311973024363021039082556020136320708153468865150518933940240753846882402776987553475266414367035141911529751579592340130819721830845317504875839154497527570360837035965213877764351874156122373572688428457289027897165341031167343781439635608150775373138358555757299543558671719888383940878776515090605510602355146263270316902612360790934865637373261677186218427336434546780520256066319851097179897426508186219596663316725544478207258914812990881799678859229405592257651292917936503654295589552742705151222078159942112134934783891683843893020689830984521012578046160627531845161688973873113585123118464205259121858757510243932186816605984192849884987704425029801880634951188241135893018476585275634757449631221573364847543600593287585712387752717070018756181475028799238749446919231756946924875208880181022227135403760154966762360434256660037141037035925609618770386885142544479071189239329504132118915496191541659858631228120613046330384894369506708048036857550762956558441721821982418931454588327259233332317136407002781544114376355586553190870469474855872417307729063803319427116457762382957604901726684641886375943476169760351630037027655939627008185705491949748344557571607669090757150318200075626544481013452548382755808228723491716119281581001508474735569738976990591888741492088470097967968110894809972273990318968087799508664928562481630623464297183826920582077617296976020988516959551651959568747247909212338626565636390594083893180353107756724465657025816287169539336613863771364537693133938785845134213568592233923479294358649319179963464757639663761890570340766201005997516115730571395321971865770529093374899214583125751384018826240352246753672626906552549199312810730064881313236612650481421355202381101909137840873111004975974687335344902658734524571397642534495386680916065843329808143201525042452399513153479586880715805068509297380998427739801196030111778525794773551757541584599559051447836526680059522460876243301982678688268802458326115256114469736130346396801885393986258476076968884695003426599056323995564144421695502816701321367017254194408610454600330467020006102359114301929441510232465604364620240625480534088142278027519041514344874573060765273107545649609622935549732255960875607100401671754776153433392768397423908198297528061228308913632148059330923372686623799329876437530591280810505764903224726453541487545545499925829255142021685054835025327103470084676009520539057148820734453063317841428720649919527224303196648165836213139789906721689773611655946405914890164505681743615507020767602813744868702426640805848432280435949136904845199801259874896114407185464636776728047999092519926012140248437993584592653454879684124549585952983646186097538099052823395281458055177608236841654164685821348242771064373580724159239273239135521800513400297927170387610850571158372437698511314583132123085125915577299707077295233473010413106427392469045550922007799074964789101988367631400431757105755433222292027307671423377869639658606969096148033109107087786280719478387655656476354869522359688778002544633935914996286835851242979890812796217577446712263617674295429681406230091412953356660434288429313783009573309751748418692071917736882688765151487138378646834762835126533312277625985772750954759799619882543573770925662515290687226590577115600628377108173606853827777747328423540231704488736601968384437339877281333357409626016140319386137826195274044816728337327554205568149540294900416941475409043764028055355267753731835449661338459825887305118261297405211293958540292432725749259388684206502343613910463764112239652991677084323902065036177384223400768127363749836738668706006722238274333602121866518676318376612731390004203912898534024836889750021199969873221216492093706501156684205748188740545021686814029125587392990245883926748919024385794740509769418191966285235327495187679203043522965447507944773720760839357386672504438626036209977651066827064052805150011878255924300252319279090162064951746046890087602672910977203637352207489539230650299731926558898798821431791633016928046623667026237841536684351621221294669903573527769718343682157582859106559167187605430954439104038918834036370509061420309706585767365994154257645433294507236221039013575312592187421499227894520193960375793514412112885943392612534676531919196761229325555602045355925962790658645677329992649333814171777885455413984788054185215850312626587200903586884483664335324500670566999817745148572971274640788907637302166663576170052017392384257643686761966723218937998557003936148468174720754472817931531755192171093295239274509032645000355266851662114699544840560445764582935121878936350431759737294647190439717838875692250909098773801289917194797575653337563059559546636147408202612463091033155949134741729733573081728834112194020246373535873398224908017964120493512863988781310429286816017511152988149225638940075380703236681932017397364874836796610176449885744919306139320032582184198475296054427912705565495483822040680969950459006739116246570507430958083067484249123294566178399198682423129066587995196516612021435126578051112910837651607201853782953156788971210137899828235311268028447058268526832248283216599879255176496895256284109591194974399021269493659522532565581304881114600583245638478980021118198398197918811827303026003668977754743133299958424847492515135249728601115504799193473061093165468769895235276290852497913403265911965168973560697736089903633952407619289092667910009626591857006720587612093923587943448359197859788900375330930781351411764752539497284546188873029216433931478222770997396925901573234099368690490475068609667114662770404881019465591512934077059610428125651066281525418074696005049232488866878313323870054182146046480827051701781908974977369179609086242660794503413486942952644578343046283746468178943124524488881239568531785388590318393029953048337663091808493292334919448961888215170580361353564910733163740221487520463296652315643931656365654512182222483747462480303576502673908249132459503780571572933398784436678521251339963588019130673420410394341167620814777280700645082595337605628618930277453367601092606874645365447565253184372712548362547421516429943514161379332812274226938997343464083942928700231915587395901942026800472847387225377707900337569512509220443794157900672572316467861540619853059868109158690239256095329542353027030748982777695837782000018831995581374799854369398635741124198539701040251063940876100487057451958349994645326116131288534886868227926079754189916754179468378919622884348915585182349519384576078034534175445814180433797255157227186307245074330794948885351354208517390662926783824253202377700801932878962154507186819780515344488123370270040447332964683729716136550268714145481099943390411630246432966956546458956585785478312258728334121008332970598764297751602111180185992219422202514613535451477926774742047819266976915762548653625337765453807827744484577062181966462826711328451555338715346557397492871848868667699421851652336245148448408289917174319796969276519306689320816596846022653504136296878590949210548356939487806053263996307423486273979561574153148560752649164695735841819108890935886792726018878081084102626333995521591658710823571206972301578927969749782864831474051849019677156680196510518856774783103123628770418926385931307467913627782487550169777324469897814778190030792862298410599941968357331709653075285064047030132551346654735151677265371364363191259611511044089901940420934870482354089125711649754883599190665222940504160115038371577758776701527641971648571629467344237569845200768848511554870200333257353771725827057469215585692155659776249753953039758340084524736136937703568280826611836380608617734320484943163872054132468084101756622843295103811703468267755142981620047366388632360386794141035337834474574048952929581088119040638639147054105321472982940013857742988784084420777325409680649928552921331067698982190425580318306349499439866419157952742998441452582667825826508966777682991253376251178559856423242439836432008473914012333674751533386340492785619465154103418341114621036985712467655895101349910297162600583858939920098704955230695662376462578638983821898311860924281534793279928711040326836833408308829257561679656172984607426932534213576111278922940745163328524027181234444762312433768280257570253228847327955962334684907315510420943250948800882160561869634129455660830566995445062177936319504195908492310134245013555233135320706456072233806178646912143076841007738711417793916993660575743381111318574766039738048321691942421714443565719811933119977737118414441446497072632360052068193354483193174667784089301682768136462935059197800473206431832874504696592564441378541996373019042539085161147648024428964367766583986415817353250332181576492196505761095048258217740763638427947039103669156703564999446595935140114593654806157804469661634753742030929896437731661279395421175217703985968513878133734676411879738402182266916221860318457421138837775508877881653987456281176475930037975973444924620414130850489739841895086616563553418536485675146422550415833642523675377646691717106957642062894112556955883555401625473307861402028173423719708818509845734640640418270668304503426499803704316443093771228063609758825160704801287842267174627816475253070190371244377150170211167749343446097450792088803287781597732291432214353697419484788450188703771451340273170365309052565843321278200391517442774855228719571288058474420747282748837854403219324250028177934797722711073586208463885113528785675716641545140204648802604691870662204874488258463199239962772618526791844253126992023857460602689598906556449513178331991797125274312313636070921654088433121477149473403308033917291563715406515298665317180332134293143936261265864222417461234556773234509330716205376004925215683785232594053152752993382002187906950162668972913084931666155808790664070583953153068482792830618892620794519506788375215003559477879289752168809790845115083196195790783716789847536530506898835478616696450114925126634548899615342909210920455360142396619192721366174815319373303805954083641950106677847048470272129010992462193209648782674519048564157543923256731483201940360911623170158971979633458288630646124618052422404023135224442900950179318264345648567622889163064941303307461445702316572097682536514322903506216126021015688491674081829301972502018464282944306195630083709697223075919511645127378308821801096376192094465726110017615563251532075179718560431054403651772751058675710058132837112579633813036628024399802782971776989226497428263883104500907917911944100613264197547655388795333113639710916249736180445273211665538756717709775455561833814481151343285089048776756355658740154534061038417485949124683312232576937034441902592587793803339174974424529208768192091583183731212432126582576622674233625754031113859189222421472708535977100468451712799603485303154110419412161906885408394103627306545699159486126025035564177099907759813309784198699789862638156646582556377150019172603396239070830856020345338810124025936559655168937247924050560040833996980889942220798962263431958187767899070355247221264536011849284663071422590920741886223976979998901760344549191860679106117097277372206781706888187029168348400564969041332685888540133499047634145818145376309736497739754095003825428744613219739169544894040118503731906628949768956533563348471291943727368713971149724201710962226365074073418467245360674915300879082342639054699159072513319524683097888883932048393763227800368282923725896386051795947550262478721616337351225368480256988791855879704138975675391611561624829640669477537853582703297872528681858097019995932867121292290475093314579135800325350001724837593963483386420645461046133250242530556061569315907572543192561702528885461748408831003839946714274593437095970927928235699123987330984825148495235548689260609383338297494607868231169918991888817296860226680828470397828951297802312310157007435173782678386752548597455909284337159093375034170281699033683192256420494538849455694253772213283405258190130248058080192601409457476824349688160050685790971407218537806969770332081022053649913034629471555822878168055244166115301164810295177211188566449941430499350199829196655569219581952227959138936098211275127864648417717118540480528769121095627246847218994952462366510648616344210229900509427919213556325206491779954873198970067630470066195954379987429905196248261819572970467477214390981547352429345468420763208865923539153512699283521550360506260151153206822318416951527920969286160754606162701969032105929848304376786063515109402010198454750492751852844142585657833948779414695241726425025625978527114897830849314104155640256469409351835643308796384930998103022401044155413416124904384137440369322238572579740735189732761601677811050476409473828103841413715855626549484840416196972108458759631391196413247926384992315419606157886795933711384958163216259584239781837730937063072147237999691010350470052735640941720546030807971495007786736350344451863228749433894309105217819326036689927292758404322087365217275225615565274629422996437770134043465346278095522813190664615424556100240663856162927541395000797137101671699486069188535164939726305454820032148279054955419611138666403482285614161025486169764743017191713120765358667481096657133724223275782385890600988932751863763106467038267714906347455563476214972608541241937208511394009654444096443779387149297380719739101024642537928550761679613946846736889951443139779423397161123364268457216790664515229956713278224006282314512927279889068558991595176407122910784530143368429031827760097511022978202982806985132038498145415832720326791793528620347305090136094149371013257612798406707978121941946102781740039951195293621602761499381710398720262401698535381912434381707901050282920489432198341081071777207999746521355467187284928216175808248888184818450038309915769412554528466696644957463457250488268735339529889747620361782840529877715641510364755765772232427558782604954650373363155771561150507691057785788210036859994167230033315151106732327072380825626960235279113655437016666139038419679034771914741596788956708192325206169843082927579467317767651474986198371492446173460397540053876099211337305479290016071914731763247544563118102628675454185550623412919202888209268513626869494525184847033900406377448629578985283981772352024135650355317493130041692053336891634560578693809911220399384668900412879675376636099882523679761906792451916112644722557258433104722928660625296166906055737526479969693051189288651450932433983455503591504735029799111933955038360630184096415462066280134561655294514601452508629603270449859778781245040687675134276544194794509216530618693423353165391921118047269214836281820898730767296398639433278581344849452306236922675474259964859712523839832409548420485123790704878984696606723908169142955300834993522405271743214611320238498734703865316319095592188502733650488853374166001234514383541360151644860965527692321760852899281416882182096135863668725057668688107575418929966683291512948302611726287078665686277626624507300786120304895060976236623367820541546171963888791407785600928096744932104074472508871785682116500486380376286403219736311810714335155668532934443280106586332437401159087025392576018459693061736313220026965442215139092493508947303858873858106221785450241446282612234626506085890010375023727953094738793684366398403533279724651806097800140537002556484030522902509780465337726778869857926603732592809894359887116437209965353761498733147208134514354138519086870477274410889170208584216415578277568663262871250402711704784902070403273506860122274572781764514147758017406008510313885340790909885089449202316704053964375943719612908145294473881094336745057532846433375582536929870164986258287819973800083486793422589641292945216425505039947122839702689695879967903662947254701562752021034759581202473226703109032030215837696461360051859361634333983319613203102660016066689114664756499599308169915178810240768463530666681925473017450191443019137018713305240549512952172020276709836664803392449467289361172154986247418554177804285413208069507445059899973144952383408637883968708497559549314718102109453255690351671107906948616163305302558621462955624078269799785671341750800133076252388973227606549404822216558256645932663867196502247416753809790489542855438017700148797565741320823207733423118438932337741243467965631408828592291762656712830108317861481927245789751930604298680140367368369848300010177574460652180409638274559244982842673177369453544303183795243832118972006984135455937222075289571645708469167879748830750992490402724248180622196341911113120878776806423954268267779942004581479905060880684646545437250391146195052114679909412840516336228588368461438395575785559687089655995871745125513647803973775455557278520522224105646964501252308973627489177806897864354025953002665473912439183606171660411509867774561228388444920387125246138530885441154053413391704691862885168275769180556139061854122202165029825628879231200197495277540085991555906497087049588113396458098196642283985028897469516261183335967803977566185853074198384913145120518883429955889727315127836844716195208020000513706378999820171221980287217502570746674959130587104123215828397321909200808972165682953547232248982691862376708212467198147383801438025454990616004927031739127331465186264724141839069163594212640500924690563682702513177815308225581585886568985738134484706114603288850943660526618471495841322963013919549777550243794440879780779247069893666310721017684590131091585772250395450698930414692815635664431024226260874182209598729964979944559233327408650834897631996143584748204476083867866625083427133508396940840941643178857249990845083326597100467893989630590640216706960110450172126825327233725671866707328139147300565250114132065459562038159694031973098835770463591230313019463501406296334089343292543540023957824892646003237070908350238608872716312908752849375795439912203986298433965220642847395635830760905784075450730172000755507018465993321306499760407473289196942722966430171145522188371557185118729866365066141538330797436637406480399256031521012984592826000448848806824997237704665908637818609733742595443032606350592590366955553358696760431322934568712622232133088450649485628184231433915027792612105605812354457805170769230552019026021108667970289997326844177780450786366787474296889839968923290892710301291949634876307564365696493398736764782865680391060591397454843190423634726221483037745910183573424522808378685775893500653949159215449376181862562398566122111302345970540527031855871046083607568663015782501798866814135889266578552374823779363864330725515009032839140524269668126964024640010375056494307751176691701785007760708547269240371676893790423793665307721255892932751977081098216078825787907277257778003640361540097607261242577560344706611361861395035532039099286856519695306591810568639580830951621412763337661789959330918522152296928218458399039081637943967738075317892116448938507423579816138428275369591246623547561643309278832582477294770136210859356890277369687349039271575975109764963732513740189899767366495347034341312369878467714858611911763304096609147476331945451248281962117518335709787564639542682429250228560639035019970967580714883003724270832000154265439402443074966703933883193022200278725208655641756015493565941069869662508369829328284986871617713335798726191882425213318026327656186634109021507719269908132803051225728526309681040733395129309774574658315382829586341984317651687461504475001579553085073413241338850926594035396033431810992263142943623383343927635560799160131256886847966714079498568077849260164789367670308709911587013291354740421220994786795850671190696385742403388319917653104324075672749579863438840469499430584045385096486148189228307517174101198515777753716598186148287169081551997105715290019724199727754518156298074726544745363677587862824338530087497156282141911914063540658408114969693388639762948695722891807469943052839924947730749539407080635540068344154335159362013235387392963220441410733624236668051390206470960318898727117170296021696189484606801332529241357820606085422330923528046218464969909670461117805652265984428162857246500131467264977356054159275444845447437991644868402494592275743612462015490423726836437334669543558619627844901063564966497931174365160294337118713569574240840930602492137886113719482063422039797172818387031726422065663163736350768731885896455955611908299060300267265903511766616039769389592378911702932551245841775619427412146600109662345804414520673556355324278720683808360946942798096919358108158160783366838814882282718434065046714271272043848543993220576692570657189774360423394567848072876078096936541767852259044004549207035929332175860840279327974205632311291773130816834291847494677608789172141949932936000004361529924222988553172753340817933031086057088212571758139896873392693965500239786944416643041743673407582792648630645891050176010767503079025163313917120283518428004371054008769834591982882428641041477157419893130886703564196403353293955025516023024382536158673506703993746453444021761721423013518358051212101337906183291557238823359847734242496512220745712881929979793242981863725293749593278733114758180971339929847220370144659527418952813309904994902630766838656845122449956116933665717589450750101717000994762853005031520884314628633998343919040208268899991999202527522466121700819620419059075561492796594231610388008621175486397877006548017877735300844196944531316589007750203952540608878642586725725938377949278291254985733698003282139619025325951050716446810525031570559957174136986334819390944828170823862108450768112082442510186030886076548050056457035815828733792617115320776342351831283333904873021074142356450083152678096200682789930132961280809320523169220082376451251321381879915423712651183075444832245400691013567201480817156023487612845640821210549028246599856763550473451622071624658737772043303599799631979142656925344898022905145936949169630303105823461722958110338882683293078717660858623093133439027023412094118721375799541695138136451166046813958768321843105758617493295937753210744514863835143260082925944738122360078332391407187160518380409649725069515108766915121028333041550896621993523769924559778058208168520957127758295005433130740468830439072709511680960055432041287909786093024540499668927241149213639122747968320725148795680161931844287817282457104218967461336681576470036003623707294751705787576981455219646820389613281830605996803204010074444239043316214846473024424579933971685567536726519738015664799204584784945519473470061458464872030189615230655437958879994869273182831713514662759762906641685228244299258206574756882549769720078875018220937403364930263206871523111001599071937739097228122244635603764933702123808453148464787109170063624284220540995595816989061746552877013186531654235634894998983491588453941977751579677075663051206876382639396337732603650986346230113182055960575112014394286987690020393342016503853596362444994468510904957394395486813304132867815684039541856638537214340645948484734769344984898335963750961640089933772101877607734671465630343192660853941392609335850364214651726616778330187728028434839112244939932364424095401757065336847423425335365912465215383890612991858905161764311491794502369785027121626251954016291167052771376464793143019181940559129230828286805577923873061013104636388557681142868868849139085935331074015830709982941197603051222344913208190698471217846205547008364763330961998596326347449090025234215736729310180833911487969925391086550041948633112218475910581512035745412740494862479041237001280529122111024563769885862190142574360226389070947493290651446473181716567940263492164096084016716257845304815959832414407697062174011579692608265923673064097895131304401968455765603893961320446974112685382586933737253128073915462094974453639941438228597790977574738228977553661514617335573209869729362237819397528649942413827949295636866397230779057351173169190540077087228608958621511284116024374752861249950791625238366927338055956819180968136933433524168891672770452988947950174163002866145435073532132921918672103659805726547587896797208933713399682762561071381561371164624991612454454941574931519944747624274198816522615655274750735757290831550930055940942708443210370430521996383467832745320755550549118000414531287165059264814557533266106256917705529455704887061999637969569723321291680104332097340860515994299827524062513655612228896060474879317320850883380346004326819319415649964479536537765727247104685392679589829196275957770376560595036869785979974522586422310481161946345008998643967739432149135674689461760304980546748790795504640593415266228666448161192377896943933368685637532858493941254422212867468192660812518081589614622323471113977245895074255258438285707296539385900850119258145945950360930193624704577715297936598629736888198932582823180106872724484782022802824590362536257804423848477939658667548446786948827816104501302707564089637298550093598515007998955084967275419491234950914120908444336431412839931081899857488662651108147396230503703611885309620772024479367906650132203585368744616482607507340296234583514096418670306812907090320296334391473844849904524449197989375616719538549560626066290507472453753350303054440757324701307134352444618849783934758636859392655233680319068556204737231426290399300398009296808112972675197520876662302838153166546680541165032102355440615823324155592435424133897460363219503336568484015980640391795731067658853159683004885702932526148474602535742083741755726473142518333690667913293478962481272223264050570868882921699610346540314272893211591530116880723028648807952876381467719984745756214378740838327977293833213854425714212589611545084321752522097977599222577030090878746679242668702116056993512605941131474341860378789860395068560488429018812462839458039442907221973092786358569436045504235622378098353603445818855413227804814038480124205824173102427441410531516829790715734994482986983939624817686689118176987359157078447523668902221128423256246558609542695082422057739372928796480443415224000055937809954615958680373273302700043330416697669971495776256032844785192012994209578474452587671161979884738803037027607191776785921910117157978246574500329176127353912981024442205150677923759330014445149485015057038484575054834701061642655785853750219280070441324800182464566707620105135967970641009767781634291947839626163806480817323924506136162796821365553980210852527551485507255729315976300888244549873915175958383222568725399840612336591475120676460760411827337873916371970164666134194995011914091954780948364776266332579783611467171193003152433364417824288459935921138139045546748119512572728675253180254813320339323651570792123269669873284892002137199668193959611788709350693660371283311966931025418714613465823880295799378188162528451538085707603834924896260738696756580703502050538697438998309533562340668937063034472288393785957982092824398984116814300648127264726692877986171821122287275136760127087125804355561500024709242894122985816562903508552586687155247010914832399727618096322367646100847006803559570737753137775939552122759839991114012248076421018560244206637124287168197466967568135628332759914765932011370521789945707660025539655965765507567119918785191567093668157229993745202357989102363728077808108277203906493300149108899923274009516364114239179019525933603832421528198431944668407376588236297302067815023533683863404250749444400187707971569476523390805117170026041632401894369313221189286445851470920359352955489405087639075062299887486032839405074752447566262978178355183955677023937105331381444800984327854511208034517492048636885842090097175477692470305728485776081350440440844774246718591760647715823300205272392096265574267646509897623850872588054322189971858953800475495701549079567513261601758515705194045520602218046507626437672615730057437628491201522088915593261234935135728600045158066847756305902355222907598114550565727239985669809533171728432217174313252051805594211313512635405132049986655771597857889873199594301359482506853960503192816563507261431857785605772023099979234021695086912541060919655057068414704760454915569752222003487585563038305347207336191382282951078881134669728230793698271000148552669820285525876023282843241179325622099723731521483359944245345652417361939577526896023234456605521021328814260344686981607756592756309727320386350501919243930576867713282786469062938946295311573966768678738004419705153158224693051426796235320294450763472380748895202098035159756595394074781366421546557742467711830896746629683850680990766635142961398741590077867714635688222811239042929850434044158788518652823868213515576004663207937241265857800787260334555708085055359924655872820767927981745607448297663700188107137846186564106167880675252939902618805387046364390496649046667471537061565930817833042963617909368225624964656700684757256176801991081905198462504006054251480109963573420721151761930042529049905320203723272826515699608285909085718350705679161039684682486769877721354677933484168569168506850151824916249317617804219138458782323247582130101074995408911481863524995464362217034282039630592533469030359382020869507499674869821663646509487197118295505231521028550431791773833597781321714778056222100451180552731834252991267737849828527930688976733826638670318972289289822100505546449058724453689045097018626013936702120803495470428533202219367898503380866407730832049532739507557834307098519688093381133805920547419432173609690333179805880713203516353369391510871769215361857846847395428586737818459049032997474039990612860737713344213637695802680232975546316838951534811554189468574344534161952114646000311869281890817384042028337965088580307187721466316727615834908617779913784278407659584379718687020590174625798473977719559565953050138170692423588115739909629691256846340484752368095345466837275402079805843708859178099801596426389068379224871576981372675167014685102994678691066306780097018997292268800678488670140741076833000711490432553454225906673248230330315158638015015748630018667119338163060663514516247141430588491204060629971570694634791910804535989617417626293066197421531166085612953877654937137418422698792983661693137689930990824886513187212700970673613726836847735150067304787337319138600758703829697021878797212679678886225546374507637783547335789575009907603995459636478354062080003771604902818083639360883344017935407434547483262177383117354107883467213062808026504864805412855904772008676235480575796790627189849664987101965615627932283142800568875401947569547479162843903701333160301119589734517685270187794925186007227991546219673033204688958029448349554231098452663399810051813865596762195830613871789838032474356233995584386277042648172147562875292174073583709812728019230102704048179177067396887478254690170168765657327779309598391259908782303083711660163007532810826008625198434876543612282152553910876228698598607721154687782584094295534506672283726854004371724598642600478554244547994712808625472848226755460213114570764175552426722214159051114635803044136940660364026661397045471151511279799232915457780896794026309938524986695429473288001650402608320483116097308593864583094031599258049325987281348054096473802343830110024645185371269581431173144463696098817870896706949647652650662384179437944708396005911152979403751773756256744062667798874650649620372400823719288574775072307573857448903725075759318310868100616969870839499580495198346839311344310629938916495479238744757743076508529261072751733799066713640735441436432008657473246798372884060359108595408984575414642732112638541286252841014775976009737672892670203204213991211317153560895101356521258630220162489466259144445264357705464049510196439777133599530783628301809073040331128747074583415996507217579341998982270528410012815118080130370003630599349127100991730382534881612871189795323991318822849628975166514912219603792113408904610556649866378402580198146306584747005832759420754281314668091202899870915924771246034882731917419161072223291709233278585612119831014727513633615186495899743191250440781297476925763412639558573249983055380270720092874538818040743430221129322602109342516493027345964942567122089787072588156251317214956336347302313284641408528227657794598020151689925570063780218210800073993202640171885636224086891883916006111964314381429679961500252095405028343702104882108436222053426747281565656822767599897965889959454744968923976008339183401464640649868992416039517666230100142250057683017661321144852024051345756786155168143127838304197829594706396821982389923547318268160373088356151948608384326292998004401942167455215836355127010991631580468646588596903952184814248663308945857547773989412985946856379731447613942247664037485201142297247961103056692342840185459845710989082831202368568815839804169989111515105266367466070777214421787921472527014064438213466846525087270315374194596000175837787197809950442405927364841329684704221377649264837544078277079047608963233187700396931359570337089732489357812517972351814043388156654872813568773224988746551815810342891122184783539374963781628529029473793051519660103200036919383312778487060077140247692625469261081553038649848674062604608541075407571556882025949803775960943982952445564291836267525966433521212832177674253558266879054263493542142903019438367552471899035654477175950526061523164196288775988665303838895596460542017995287886008313960591691364248622799030588482562258623791674486535695507477057637413700550122785644351634843878341581451829866339705713938387461456807890918641940262110447472525634354521067391676832462423419452388920055522157798546878472616164381623066941352933343657857063940493254527727671444211738997399818837217510872555085899017959104801091426577493465861967368136125866871743127668331108912368241780408446489579131163726894496317021181488846575706910983094229170333230424977484275800681704357731811076343509747534932814741152791750495751134151387444118471050150891104030566350525468685308478742031004716513431278424240802849703577806837872647154405422801941717193422850972081370665666883587413188983796409932104909807294775257534827222484957906644226257801772144687395788841517455855390625700232416743671822883027098344913452048208612628431455385408880931703516180220911636141456866596535921628224956041131177134358210704900201295583824506245601102988684831379290434093361167588700812760507413242765071483471278653691557141718126150877110029412006449371972057262520659582275592026728268252568534499767180494706550611016196652982759023143241141417046613512709224392084121320758991074352575895343208512962153188965275242598150553671021663465487850572575233020756417864850603841452020782239009227160432036322895793424601728943972764001098270502932780725634942604006467865699740146499339331370931917828403057207807844328601887182697788290691362708133652428568025986476296307700020003594250647330148645342533358013720085473796296233579127372648097211834509197224805092459039734157653361491162378943455160719519258958939603282788168715309348198230533492466558065693080314087192429785337344110331631857321658293274627882678706319433294560501193668817964671221435728876687877268745800175136872645888900778119943013766550551125251259834365046423856807815304670009809276405230619243803107463503136141728374982311196237382005006853115902467450059944584947916596942469948745944273170573301573542638087625961852958002884736309090539797571865036046419928123962174201225925276867117722660734547797636184439816482075187253611540384739774234316517764740272416708474316504193721030572431301162463480033666148099977792116678973013912591906818740444081654780598122148511612729953254038923129195541185842649815020267333755997325175019880827786919439723680599177441625196306988759108367270497139137899910488227925911600943313445853888251792442804426176126114767622523537399455360433012891503527320537866412252987834839733983641564577999340915794279450190424628563862237820633756345388048486319912700500830781096009435236768682432844503430358246754172508995444484006244759277540347853222647672698076886875732263767082154919943052065123162522313915397852189515229183041141871477798812445253455451342543637977636104066567794001657145702417735078145731074863419627657762477053061306864851494357745978280091386282147406532956441480918572260201630560947087095175940086752528224943238644862134800687337965774151567039464048314386174846795367712813802482125652729808860541013331526314292048136524598582931518662969481650018574152415458371881019284279982410418685023241179736628641160451729345387352131992306420590429541839188077971887571153904572613085464810444035790902956825204501408108947368364629205145184524902773544036701386003470569972712142736260183065806379740977767334989536139413403694455649765990735294181753110419179878600866926103253582918902520883742116499902230454876843101169708105281151422798837200124699107427398734506420993491725377595966202829276669393127675687785567578273257381085771725922376284423168286514642950173095209511356495004516376682548160583327486848730015797560577230562601940752964018909412730792015870596484675128355930947326883565364436654240965878181573513934781517603001171398168446224851937051434716609231671554392812453887359761725259207457881180588420937821229751906741541853807918825540093507585250994875751799581383422214996476835150599042785686757730154862078146909473351051620237820311557769387624651192719298521819485771902679377683688320607092473325899401922602507189546947995250849824004096346321002748455564767776336659130666392185179653478655183513526931509507690916264661980457821977442524970574087159959580535362546965371955314367361474686248669537479263949424904023678570446335467108240137286229242073024385904257089526021499745511536080611239472813374910086309632347911724673324759909693384791321895478968779198970684248289236424125819298435763455035734590926034980880383637602105112447901710692610923868897778156957730405780158283924004071268820584659221845436460121676500902756600293648882960196509122147593931844370544914481319372651942990122591883121124022155216048646767991997087811218285135341851966201165638695353729826642964030347475048595300967887531293197499140662754734445501280815337892807090472197853796675297838037334683467167976914832200292139197537183987767620801870771028665560598301724574346273961272711029755288762896268184471838780834715552010345872714602881194086974551965341172082202770279332759477011926487743762112360651154718665460768290216317689627801725285423997615597302629963673289393338141276854453961855439304737908294273515474609903998008833436105641820989784321555487203259844197092540720694980734166367052076570687526463983788033358209426939322997161654667699829158302327105962958722572358773957956104524018894128348503351411431723295997438247871522949483999654938475066966713425057661608437786160129432172550648959441329965035734488849741177224992735839544572999155344807861450662002463076517074013946190995433375375888672121575534615862299310537493579815180038528999697910515438254520020298551488014541331802744716494457949955764386720387345186712047422010514267868106111381157096297848374698156594046764817910678771685244472612791161819934197686116078270637179864945426669443321620132242542440057803645709303023428750613973796165458043345765246503375739507415666322860182849476010775485155365496863416770562351691658829072087236929782097054298847042781538910107552061415013173449746750191652260841837642475381428085060932898695310375872098177156993261766436545937008767286413196609155844840799724140552015015136192315964617690438256645490762437130911040072090926372305591623452629113268724515535794824199217111536934284268485797939119737850304954573421357287663962856188119288961672356231374889834586592127367811211039587823802095171018016250716400466615493054960877001628429395536542366164198451346237616260800460433520443959261375112187911610500087371223048838015719265283743583216052005073282217429114006544612143417971519882658960860445516601246779080271102477786798724301733552092532118628048182190487807804196005391779515960104718543395877866135525857298028802689208554353058472764583289472740413773197093181022745216504177784777850328173336166656589861877861264353577907919489138912753576675572921141763505360536517004925391179685072752308490048061872014063685168624137839435875598863692669960284372322882447245886624896837095062254581167138196329030670086803129623039604566190552398102894796199285975498685196805072467296405455221215840846709001880757716386443602831315172091542075712548122294121871505294929454943519054821230339489032246026854974818308272935016547755865235812096072952631566884995625832128883987164581973045598278161504281749514010602058296128497684404414513303853490022722741001069981814482486537751119270942020227897331821015099888522727002026940386342236308057627557380180222178447752436615249854731362348941700516647603425143472981365045683597709760345394806728112066612460875471037763391769080675182492035828508623844713297290569667666942916121055853721547271106472497997861362228732613026237206010259485968846900869450198987002649520270600815158699775101671047057540787044644443343458767138921878743138923723652691155933143856610967559666548353158663656172558879806848795535173051537867459501524686962395643002580767460084499033311246311889783814013557864207741433023688519584729995394389832785685792240407913240067932589178877558970331539693295439567203123088362410466711213279208971920746683108699079821151736446195707378138536324057723995147232149999730466282063262794049786435918520100677522524469420144126060563794421440614111230767252692204855788481308457533878280880265198949152991336007118273928318415133962300978961894201083363387296027480963113028380483632440676557979941794715783308205199482999358362442220846372532197488460187447984870182581550988996236807847205606635655071526751907755290857921424392457787179979409793652400660324923251526054595089498623668054699983115849538304804216634975707727157504141029748065308271593801355174020408365137743875304708725904255161596685372191727139351179001961266730288674175123060691435749382327897969444723296543012065052269020028059283527579138059627624133021026888993160171515572035673233205792400977550569983175831369340141803702105562920639258974047548318351001685462441232326774458615375857920768538719495267504217190564777813689513268405848019062710053884847349276766959762714350389834216543050908444862717208695150894080643411578404469391576091849214044551501783074887944371379987420449211605499535145845523221265283383194416777792058571602541808635866640730400059669354561793125185650664129840015202872891354786929669646134210452382006457750077330963803380084841631207136206982619372794232022794546081562024627891285935431798060766575649510539697349669679202085624414585851515371141934869254313123456862208451461685296537973989171660771404242418749790016082804096080318688692319425922173107961123873098249085987650972466344584392387055345215069201696871975321286217990078873406821446726501331869253484755175501717307534318182718407999317113926097364059729719070758397673339940298803690051353004784259801291314082647077745141400087561174673810659673999968245438450596937214310417396679657986920554052842126343280729173671050768476039190579004838738159846694541466347307636295532938863168538820935560478655931713971850035018715601969003189510695982819942212346005265251977201645281488373181838021533736792985722653465642514650648884114544332748882387029690815750732099077944095138360938443819629374514807715582481325290117492039444345762943332675807070615666234053459606489267504632526205519848877734300508135634732006745587663256729400928018450253154336548472617811887986264300044233752190410844578815039382933419021156804784074997050373744562810059040682516379241785961367377309324981748818616239968254496864485379957206992549008312531570875203352487209970374691830369792693578087087509206046839656852083353809553660261774588373391734957567127438502602060499000055835994809893334046365435436116499154884845294797943748420526326108551298641507888428639053821681595436634419728846247952351271121752662940178942940791636816254374337133415297461009725315858109058873740229557560042530968269347426165323188962192296959968570405627202416916238211587384896614032115752229855840357341868566048198461176378217687280183425683106785857198625837421600934289531576301040150445945859114320123920306261752959673920885337539491847264169205793262388337122380310170198682998305265867984270796988566765171685503773287812756979513715804363028521574766833512490061368306632579115042056972923962240804074645275473433127470949770009197572263048363121231916293844091401695092516345452991906996181441522425252160411923602169422007896277580614535180841098464096504887091011536969117619380363815595467671510005347758459142320920849159666725447236560012641559238908038505686070826450911457308463850534039260658822328942508231125806513169784019294692453902567047105342728710487225512145790628138130373674445948538801066200911230812540947749639288885934182343885305386225179020543443295177958386536773609843931003967200225050810067041372131324317597480650913065708988437656751097551972615953701086140542645892324687496745954887146996638126708928366498558036350792664359186436068423088593285996720807779648680086277882238510333256477662063889524666168299411517480160764053332847703456968557416275300163552526866293185724875059456422873652884678983200607214394800528734025511873339890998189336599959789649710808966756412901652651654657868374445697192209635990957528219978852765807551800665358131568080530969731632813000267924255737314144093974657181021032049286389949620110578289858617401937612757315245362712965812940721128183256257307324523671112152557216597988531534682214198584275768423723076674869789329709849523341438121720852598300540886688462452463247615828560851743178429746158924326128950152364639745789621256527908895819361954197955183094062610509999044856240656073677831841444628281614503133461355022561138569181393808517814007444454163752200018104123538895184433065618208548876752736313071945112791877131173885759457336858625437766503651117039122529030310578008101805711596540292685103583139524149797621924382478793158044081959970086074092669449728127372043125973827923616600729267545108387353322290077297746966356380102253970623167674953052030641609684217141188798520648504835049905976673563219979853878225577444455670493251188090198626767890846098694459170368297548786647435842120655517050817155545622178271212249449917306597134724480847722546393702839769675188192910770376268052891999525078765714204940358747020880149568036566105661120694742636679081416362656223831499702943688721490526915157165021095484421478856031288693966954861865173167081397510205459162451076530559190079628299807622346583752923424200361555222410903565364444154290477537442445930783250932458513937740660379299847348982088192895350470070979976191778362082065864990307545974137140267722855055916892411746659299203259253533096504456965410876645382335604993597777685215800751790396301813584457249328071389047067059841021026955337259620469594963019111995096732507018051442833729844665428456072386756772562764250058360197253045108138235232712102431314881646156109671797107644667113452481534464327153554524891702446467266051598525882685075967378925482899107770634464776948075244441265279112281847816581131057355201709274489519303105836564519739121201406023121433120358321812509055119445825361758481604260347008927912780593060019597187172792266734386849921779330295253321873935260695286211621350367264959519534822875827787132898455386511266239150450322634183220123914294718081807089409837829631186275453123648318581483180311869004323343944613158577760390623257239018801058351124387549933058917075645632740220294835980183353346513749046478395845459303348467571792038620415347970347717703158249339004305374139474248210024385372812158859485216759161737508975444991449860027375512873309662415490727809744585549138835413683116757993192590191093239803293697207786354185907385026909436569599728368749731283972003941008603896619953649885835235742908962198197922011267877622806789966283899450055141046974608193830500514186965463169976833676295522332994567064366410797308811614009020024957317411598193792718626272102840391752620275671712859993983463183062989173741580706687908091444672348893058993464579522650469176321974491787626966585514637298433742682512118367482331125164241595528133804655999765114664974358356578835260475697998609698385807274544960334798272239446930062426282726872930432699623583767125913953324844120364457558261142998566850401603956236977582866485836492422145200278632713036966491618007060325919709278088927570865685153811469668087398410914389443024262405344476209791414810798683343939409783970339890015694182555968994473578981015522706949792556706116829424442340089323356596262215156336931434145070961681413256332232881884927406360350549307966969366794938769361661430288906778364753656658673611413329369279114074083008901449469151231492900261698730722755713967124835345398115283920396514009026951526346897394710791430844406144773506798055353704930076900655238108170046912702798392447791697761067227027194394406464567415820577881973932279920669903246336228784808860454108562686547278791904575730507316068146514361942927594099186332499809358707009837669660080622772652151915628728304013081289537671664726439169122162624550274784485092842432581317624117229939362647372826030696692575628303461624611987511260340219417456100131121979149599678657903969621811370620075587617004724942809066149542696876078474239475962614599732494033499344543389356044275912560869750578610489910669496132001877115570016093298016525748009703345334007284410927109349878178488268514986082920918972215263618627484483431586099695338171822237998182301312006730785465147085232030605502585844785416062734696288604792868004245494851430843824893616626141473450277713794749832552598663278147519071009114814931654149328666940038910209762379798825574216921138425139444198466773977007946500326773971389704415963315185648632375587817624218973090064565749317245271340163147059298751415512308622491242874109873401292757587868741212611824204977038845474053473027956146801060897513584809235693240332373609081146596184219516584776745939465962655815273989179478953781452067761262705808655288096693436524386740706341668545144677165888270213085781763097572454720080342524582429878235337433856641907577768151399160510327982831303061221582800816169975471123954178511073475726696591199640847074458734974759393223367194946170538094847822737004161370129568537045330057569204469906397159322975835449880221009065493096668135733971358564854483404080013653755485912680400085116099673809792810054345962029388084400650121464391935190876844736022294592506990475063706110556566412348442486540464059373893705769125546134449807675108602455108831482189163333498178288384007814691976537523208934644137116972031036775361727159693460232171129987938424821856416942228747157280813684000667452457513136963626573025069777501716316444189066914029145050952165718161004427287697639855164634158299350461698806125572713223762444259242314833585119501636592634472796189403088015905089218135946690889756388274020589838350806788169367677675101857796045048252431377409662346280119842654815194923321789182367677696748717331706368276901298217656027745908562410008216132950177841618339642662029772282785782194590684610586837449317947730018722844686572987462084076110235737369715461268663115482617530507505604051564077089539431235109366569147625083371797778007826736216600566525546912440371881683723101702351974623322771983306336156511156534677449939161297545020036858775284305335304662222821700914210810725149224677568675964110916546755371866771926699178512347502157638596145401323220997635314880297389249794167421708090724039602758639803313555138479924465765417016523297090920490739363419409204554545380785294277822267804596332731773055916609684710559517909230238161501275578841083672100073548321436134497487197425054477989889799772048503780943956339349326546332797333093627430647331924474549649790876212751843497491037582560157654123664694260485512314437473934924333421528260197033157299565458607784317225643557693959593719254305723429636692555187426092677180124508507363463418497005648971246721017328748420434060066061180095916234578250079952031160895857305128505045332398276996774140738477364296745765515167331260900966166080317603032841468838374690198224084458236903564784981909424120704574516656999108549410310028645595012889337441494837732642252218412209201517587677591672206002377590115940794975384767416423816466469711342033646378550285864302293166109978733762437528539464344522429102330701733506928706486102154293150412730144479397419179756670762722999393641636946269256297382673806832419387420404591915807875783048363949104374732884441101059941256444718253190692824507378450997890461322865157314626916192854713287765928273880146507982529311558722838772102483771465247924755481739541577269424172399419623194542563486595513588002031772873110594518243633161396895778841573671224492875437892346395795189157618984750154123609270918259569456824948330938802363778670705207767584055792593270442165465871664527062056462671506930820660121520341508354235049558643499118937360560906739875381790686244206253052530264960060205165688113567752201971759973763447142722592972878148556629493939909868237710797222528480311576229124363208692388258284107459881474235677655452106277557463328512060536547042894996068574821536925626668096620814149939504313855684134521134822647949886390444468417710530983401654112133365697443505281416043553750167072545167289025772952273946185497546478277642111108323998081825144601442520002783321963399117423103213375568153013486197419801614969972783498895857789893286228773408942302760364244179987839185287779230115945827907370393815314929313887422507386176534798562989467206970146761608867631969278911245715365228575156757006320893208847554269374708484176917508311346895644755687438145145374974028277945036201532579250049201144446320918467392463002053194303938006455943348498275444411138309342524385039603005796981775327596743791126694193298565912854799677324880040507286878004922661828969136465181092934454787114246969420279234423370110957886066444427245650965358963883234337197883922099691331676872813234202434665222095650540655719293162489627969336821847052790500859277893898012950125263230158144304881234748312577889617362195170874399638084739347600396392332021094938112935596358986434874305878210706655368314562905393998122918233932131849776482689187254593067269288602903203688655340129010202660999715734296871221630765911431103181881304629018694903675999965027515814998373148409089464637101906416584298511866818778957561584045668731991381881826307079416181960163983694196599741068587208856132442855469940057086339005830062266738985893647119521190332354661951879929743633700881962166983351329813027307954708814192734915108018092623639813820333379891063904938138128533150725152477248672543351688772108302795108142165097808749490163857126734876187568729095660963491399835469424231119389043928632108999786027279858628381702791541411288325339602838231167152683990258624102563550598208693192605511860829676588354793614834070941582488272517202231889109553287331130802115280989689841956158792774719524747797451379414875982905167346722460847361766215532086695478702264648621917272610504166513582539880946592084863767861006922981888097501093544772616861045770250338507871580113173641870598611769341927246540342365586823679431384345864855341956814592191441406039654085572251700522720160914004593955734988520101904654468837104118205471124965196318420911765765547025803165151780946233208300935563446771114051157603244227618415607907935673145966397452469886322143462698842262712063570376304782785758228215557207919913971414127141728459198286681187885575761037322537389012691908004535996288092248558291101219652273165453611892567662459780057990547003385163786221096874229538520644107827776047910423842250888285403488952729855287790283391848167103039403994302532929125428381462797770016207229156233403735536359003143981332108590589822070630458152480451737435064017543324252482565866686478520874722344340153819472948362113928124231132720316148171244830690794993006614671889035710378217136041672191525584261397483822594792535395641709476331292709342885837498789837114115494325708755989132349422281151654489045586398440498670771318969443056512242486421423309450425876150764660532552706770859718930221693979955043496190070432382645354249504857312489160184050804732416116517719379299015317299863792974353676391489123615079307418333903875278059050909507850111856345585355709172127353493660062401228373562967610173817546383387617668289325911355145550412106100029272044388689439223855319346192874485795895374023437924612078447362245135508986100312457930619339310364213230627613093630041035412419611927657133180857446191566028212991194005177473007086024424666734514282917998182855056014824340582908215741402824630692091099895721953599307623538285583729870513435989371539822169861630498249820558892336463267711037510467540863553302180850264167597477897968251386137665326972624581340716095528110531952337600303290077353270467018838802327831357010394500422039561499352031221213298329552971270256883189653227983949280522686808613225308976095102916652285339834441724614631748083979807753238094857447295416968147594495825730362951965713969764619645847174197034892675767132286543706803360427226295166283239762215428413473479548856763686262064561549868882523546840273918811864737885827117663262596780730829041236154185495964440021204969094658742855836683552717872280404632823627941851528880441172613990841351850227041658385635872929294371938645419754586556614156584637364502607270184057770358460570283192763419817471384989102264044095033804419211685478474663842113470014021423654981243814859371092607423509426972352729869324934690988276280952289218610959971186284665153793597573420414487446367762487710849464944615943600459292749632655792912059952079963945473664918161282923157733094692763231015582967009956637201611772126616223829106867654502899512148864261054781347294093275810760895728245337485680569462634804835835499365455278693738412996883567822521808850319240748465075189509899396807869496299772627091095188548250774702920618845867603687421086476575719922229259693046194331379095710957580234871025660268208721742664893488356605337438439599882560846669285840181195801628521518118108798942725473613198366751453242722781869342040467321516095105665214890394428100188181280774276058635733659495465614812106234932749457638892104839599469594584126875954324046766123940112887927414795013416674743243526214511559505029019285486552882932347214913742383222153648704723027769685131891639401061581689981980112126069637956343103999285663466760615396653756311992024258558778543043845809301635855424162543124406755691367545447647206861241549977071052552431838129559618068645128162733515513066979359715986870208087233382347599125567063727370443428746270713009456875095184927294585436409623717306348718837358316328188221417153666410866067917088585381885277898697775407786437405028756258332531157638496185456815088011791577959465947656908593244215457757845797115432745182765997811019969350750373551112214371094442262689730592699704499255874957894354121235667841007814966167997893663239404662580762468171465598531431063592691039124228998654490437096742608491350604418444999082306090871429632779115988717209679382079726248992640464118353894220544915488279567704884861459869966830187497224986074367447954576431626900953908157936131638026377637382446676058648433588825054765545584796367983440321401315647276342078177161427073771743034778367506005872264273876141536533452795587624203879677594282622560434579824454934737293502568262121159127679816494961171317987743398864786426804726144649093410384651055851594213556571006092037306261248740115893802282155758071619374531713474217129073513107338283818003719337166127826212646772653805677860270581979575222069234250770043354355119334817248810169180797099206005718651417550454299092858178055099117990778916602495723336825884620309356970259244766853543734599907302052447270113317744920787965299308737339123366438155270093838081103071844928078336603373333192817364362682328900019945768865509566907278994674275021106226624244899766770570926934988551634894335317598214926896779032451239753074533310325286644712481152771383296278837931420672477344277980869184219763709937488297378674880182854998263796114740241155687509603985150106029378765751326018375664243164300957167187278367969050374269056179620573709976376407824857405529886372405966724111710863167143102100976857611215807690866993025048213116934449166986647050123456787114938984277251666363225572651173117232946984969352089050723721926753239988222401301063239500402663455206232658679388993283822334071679631770459308768983623898165702089941006591576632125326150244750927863949766125002263577753120361029552016428838273636754366040754394207248277022543486623428217643776130267431826187738794091217553365041490332619863733574630006260452812737237833841589459681605206449195614770486031915975716910791117761144505565000063381968093027975632932926816617254327743671831425085827995198513079785456662422977650736430813867777757532219349740821570246013575337183788572904412969765171199198096806832531660531129235275422824046434476835412395290580517923742969146650675856385438783177665220917838845958313240746013952178913671904964544928597267626983096432075480370428223762556434183375814784507755047950121315798913558752873193766092471350935328825655310527595396858231127845842981786412936697071064978059744313767731412895643003502744782007107178956582155359563491420772417903721141570469888295729679694544566413954525322734202506247794402927081671879828620041193395224838193715955241994813195776119303983022259095244918839807355255650471302180296985160419464367909204939086858575726170093785995034101660513759856412343410466758101430436453820552818694862426809256085679664096660188670319872525319425374362805506944479294703046186818550858057663383523918128107249989937888153223997574552280637564421712604548238070911651586956850887102946418830997102302739246067891929224580479465969488950001121683264882508952798989467380170124087036105624548956752746627664518789605645768739779947330210900031867108218369876067366160287313594743284548624241581824281254259348917043743616446555268064457598153276551663839453334359764405210992598709184494618163145006307752636693733914106838595440646345858906498538495900592067492499189307391469529318634987332077689847193074477545564886562674220525769206121233097118000796213905822748840921217582109293801090500363766731518974073827323776536263386580057087044373154495733372307677719278375862301335227349975496652978337820168685618179763318371893254255920585912370560636595666287771045192613557280804971930852471232176900494848738426535616253205374433591967552427416362898710964390666524350007054254274249495841225383758114112583370588052643757753138717806026089065133964946074138973133098771284894424517084178076004235154229396271542467935777930459528066683970300700408913339302478838341671893368974695821100505370606090877611957924294990602884487575119873454246204509671378155468455970966340776511443383298901415652775387424024606315551541759731279819884490210583957699353836337837377902158754171714644393220028274540182946603425752088760633469583508915466362210529655571335778220226407245576486839322786593155043651406672293094457405782973969857016402262763930089520120523481438242640016005674780737881147068023054261184476215064052237000533077804750357144255030130986926280892977590133557331772369906104428890063890468673199178318603590055664411104402446546650090443366912252690730954232301736956415745718410959352906060921023745036882042000248040929205992402671313971272756542331225245639041915019016637919772793159500593985563549045466113361166766786637936977783497278937724135979169895522414930235381623626977699218997903689757483335038394423831267111190290133872609921715214949430665428223333104848252778753881594542265401309386384517622613390132328422187702657614782477399847985156921345043887249217936785848177065184831952761807270001703468188524862592701140570634558491831920418410237501368194843374384556875011433668682671179888139449435418675870281738428409294459313046126906785103639380982290181961130805422815312252736439552626351101618957081422857155703986920325410393015858554266869333087844089818525919257249717941645233493206363783144886879188502491573086157868820999705284664787176441231227042999047197240004516024531194402819087594512840438207291383808725784744736000994100715616616870758259086535488631930362328693221932872554123490923406982138023417196279382411762278744212924268649078491332667557217159234803630266625785620022013555261405953200359950161152025484049549645293511874716619184506900404493692356285924918634377844416471376009251269711264866646636106348933281255048424126532428246558362097147233057545091407858747228690143638686623143074253566592991369516222151535307688291297838413793068930574174225116897880171437416827459760565311035619336323210461806331001889248665840509808297578659616531198348932074466855484536375640410465645564683615336978243727441846084203862292537995631288297375846687977487065605659492325530994582871696469039957064405204927414768331557793978909679727012526252664689972066837511082738519955856304258260206623070805853691304476361423441903069735879129281623815073842672651683775754470775353102371283951151363548612026063413102003796882015859776187750884520586564951908646846422098449529032977409613768656669585972865404875766706737901174323930124872475932576185564362307913627130441577120918339975710807505138456468622281653741429968646470450145718609554502352550918424574816300328190249957292068321471531765087439978572270174627952401630771099709869453961055830671180291222738738938433937457440567080427295794913750216842797865861821536443098943802583590842359149838572250029532150540145528659265845896083438461766612185990837799768757808176356391990188699017748844523554122074265101287382521525678730449102550877231264009532147497194102801923752255802960508230006848085140430678091736470706532826403100326901907540636267653336930727701553771268182537651681387145634331651767253059686722871737667669475007202106679679651106871184510933196386606257136724945813656617274376110174367531419804297658410872440854273097897574512701909453476453394110406772676709292421859354341818403445547347344417925655845709559671693160779389895079270037871856758534405831684999676259918307473132954817300768056593368669686616681886586735395338972401933582032188027007597775528774196019515334435239475761907609139532164285544614176726623153479357842641214853827454143033244246003405016467250285574881030041017015277945999520088537209330700237957689412516293197291550404685029997748662252542111660899254192839901671694012539786208523090532879681504708797824733941317983619832596639271270661237967416094401639263552167031966653380371246494621405602530726789198233743284899304323984136955736403940350416888766522471956197162307813191922616117352842982981617703259436886219166778542767173451060156380787956061576111971990007445470864770367906913593040877040325174426007381443702455718115988725948916212435660580126138964660035996997670222835100658215597936388509862058924386915319472120590982912759341397956683001238010048659159281481704397606635143353343973570768022085975525792702221246127321103657780278206048086177799540047874095261324120060553623669130876828337154089881534732468724581326183697538271166884537860521927999068707636346937335575000247094168765611660626025463901568515974019819856304499456105405600515163294924931861906596303536474493230043070640067825390867589958111264049123476956808628807090618119350757336177767841927844974565218216248342628126728882369905380242508532499868888065589605148286586116366667983804950058591118695089977910628856260435714759314989375776158747342776907046110906172621917957267550470408732042020756795109756252136475916704907495905063219958726104273379498323945839234944121088681757227657051657601531903858861382590643527403406365221322103290082133075176287736159190985136033531837734656048961431677810059168793809211680193904516906980159861654765455554780553527541733802548709327933594868931980809416543214041851109311000554572136775851879806157349998436905915475084624847951804803103255712273512441190508024685116220283592801503587615437337141535307857325175765423554306385910649199816316425675895853209601554191835688830418338583254918853082966145472739459155416403758644760122464296246836321357657622900951111265329256362214690610794213555927965314798652757939133182016877050706526462143160749037967212602921183924212113219732880286024747479404164927925859046614677824064837679073940989491302861892338193841189210766983342477686447735295015867667803483976378131579177732010241122019459740269575777161286919546668042335462724199033216422424432742185008690270834837599396139061539021053967822003511651621762187366360818498169232785637120979050532359902278800534468995395465737368086883657955991423001853336696692956121512513166192892573282013814521024323089569334517016273182799952559139362068035315015949284886700701903970815301063839496796566202291384964771060118103101708181268349350727761569702828195465104538550276348996552974723587364935961957242899992537296346937965577458339916579961775926850780926187885755865362096763525965936243421970243975170294209531142499479682098149339984671975608742572103208637918792357103590741177315423408001041252701200800365887190367095070318945071420044673441393829500626198734801805133142191205087968683378411698465612247411020028741287099293797251637988991331838020897959595717461835950439690958367816485738132851885065410743517778817989946855469748625269201582756646311056265383637345706127891379759337375276070743495271352689199005255254802477884238344849691893882316639830369330404209607031161402840748913662741886836493730470260448622617160015359416842436426545374408006999224294820519444557562205197998979026026110563035850378664441641456139325556618292898425857331205233134278734569556656467532645774502460382989171833590106921296012202259083074763005322715654326260236561613458005228517938682063897595974888922360747380686689898798492624909463565607926312545456250368095447648676591062796345218081034729932559601435851179066346009081775433908175616642716327418766751125389798454415870203218722167875304589373796602680557291195826346888217673598640097610361305664248381598603886311005848877002019673514612183066926208968238889976263245131530450265393057623692331886473002388376470784384750120864756938533813366888045962571567449568306237201863135340946441523011190776739161333030549128073081107539858731124487420198148204555519261242005485836158886738536430522615752323705616134815103920117598427912151306138465392203481008573125261778311975798715640229199126898002795691183825189556341151361885558482466681255192917220641850494857564481346636700437223160857571239154107566090309852990880231111735146912515185579804343431689107772830138705085679996287674069778034196217131204785875979981095207103026098170909217094685842273356097388702079699242285336921868732570648104584602817682170521033262742377880880224623764232888814777520371503570751241204371735368658632851888282423833211331748590198292805777851075863364890264605482819052045703673396869074742850015844624203685384034323758568025455527853866113391391080207461080379366650107147749817982729274776665595206689665307321844291184395137429497258920794194882037488024132681606425676092819737399622636184879513041022459013664437681318357459904766107577701952107819206537089814060312137730209125593225876934270097972202069056406046223314311673546649669513983550568879062683185619926141995702245343614280671873706204067458277409831678637770701506507894712075988167641161764776183221390339759167431888971277556788742972838989979680713304370865336303864732109658102657499667802517665907158883506701433308379091458284860612139276233171895836447306429110060537374554442097829911144070496015646174912270833653476219443433546145475145803053853267938856902815735625900091445432734292739717645165235008660432631460031581730181523343665014521293340224889030934228161088607865509385452519793133091527372611256815248523294070074591874100991160234365064261937985500595085587499802455419451252272946655305862671427933415199644210193722797480975616111817000706173219703305307658834875362866280895857620444609427339712175622500133865605025251351131761265033959012454000694699419898169686679908723331202597721561906194459270381091894602223287727107992767114881442244866076107341598843383989029046272896488701904693562632322696181155211098459440772626684790718484534661106928234145168986553570277623377759250859960512301724288918420745193996371930143693385486769283084875605709689183023300922422679681525477903528092889938783577041208288676640249163138841304513829642664666034963769980453388520342335210964038596997300397019652622610184209803331149031608221179845545043477682956882577560852085040979822684064727141284703216244597276174086643518130042168229268719709282171481393136176302040953572596475652619932628910450105574368897578254957971960267999593483132992780945422168228530542986748989762034035741340874744799522413215080899560525930597802502030442852907409967120244719688192319813433246558705984381168782340400741954135851845276085253780904238313461258577828989374943091936901719164224159426734786475441100417776356101743029806862330269522141924640206916119813196074350480840689159898899196069448632822314954347192343135285315734870366977530287638480551001558058023539746312815335981661115742836654105906630129228037084014292403833084354672452450580689650169981705467298622443336732222629109606334000264674850362071436401029156944634271059401562594345026739598755663417675779035281008489171062193838252695590315299485138704577048451928723492824207361783080618718875102256926446653357195010050944324975915314247084982347527891468168392418685228747255074591809768783321793881948794834188550348901957793428054118188051565608462126144803144475923964157158309466932009711865074204893073536777389035096880468275113466363725058144439554422168193952848078182100783194710081833846055227368772222281983260542693614283831721488733895656930774885298369568033089931619355251702704783876755337283505408516785148097741158743966023287829768055091728060982323255819723866697866264118359331670346356052076529749342723490985279332062054497458548892111697827506458170537618225687723089815474558515359850586421359425169187983328313778741887224857442245734464629240147377565513063210722776416643423983797658519721918065987811726444119814047639459174847939705643573331846041510138787633121718367330940925262493825459181067618159022866484206306918610647602857637703354892434768156090461865091234579969022687617255388012885669288622091237254207796761370226375985151189558606609743008004200336668181459872986345316571691039983303677393875504101472960683842260627016145327330824034003034136313311827581104406581509740059079709063320160154502223358627242479919641151971899178564733386696986843927946507938815854652453027070437375218339470970936270537978705537600968755374535672825020904619507807624231652659936454097295533753239395182432304093681274239859744777590250886891095634867943892567552064342163235572562519622184940019234592125292638195569466649368083522009557962184263353934704785669626372903085384437845826186218165044939521689963985302545339763271734761344946439712231672918468518364473538298346659092146335658282858085974225277485991565385847482012774781795507946335863517945882719550806765627355794811260953276400261335343857473250398399498243606643628998569385191095082588269064371741054941599414444249973040090734103369076625874415732138986735221220199330266151236582992742317936514799568708019943967694287141938469782434399960145900711019846435699060877891642449377261739874394903473764739514969605606343610347008898035270597292543333845411946422305759045413245378365364009450650265284934997420877292129006853868809456751320721440763953987961872623713837116692672404513564383407284151234267076823442241481124562378442476671450757429680516153905396376996314343361945901366265546350997584688892885125270264560874978845555592259815123864330103555173665767113702271294023176455745388365769913810919965475409740489021734545814485345334301952254399343171167186188517689842160054010295980744521837871664617637689050449933145551600167229048082690851163598377430281179606001333743471143768943499225174645656052807123266002674747312091635530809144965226187775803510099370678174761748494620538790655895232873832016630809310257579754284998252160168588817694557861557412662692794207000212268676993450221657188563455370327174582570888945978954491628006166446109927702828921405710343114037469824769089521870492978994642682438989052828385005449802040505607232599927688522300371299905696826360492876275390802421507240605154142949112598895730299636443763523492064199298398422711065300072525337704360748497729579755343083603282020614185910354183723667220932129298938437702785194195483093189508911704415830742388126061369210081411028675494787196387962083470176888071664972944785842257171754323184466501232889562091507894031549282040625648531868220948406337188453315732391027422108041870744745843513122742624389136982923600311967934578424745586100433408745717578488675856048170335936783048860104362342262334292457673058229322205234388537339942309754824642791803457917794723210871359443631088643536341017835648296515497602648901711276157992430363988770398922291101524789352042801960744422893437436432280898254380284462681080741354816344004429742045769526758637593823987051572049752512721185379411715219604496117123426244989855360355897605553035120701716506778454293033827142042948642894578377833087293130304356254173906964839700119043748675955885614282670915391459779650455763165887475986860149394163527535240937757524760369364455703357531599551298435098879925970602446845759971549605112604754756123338916807415918857817119119883821478126231483656030227009744315907118308633422587229302164778819703519609465521902915959902392720856721839935409737131155220528735083408047247172436185161555473980294508944184906605555960800894165854696125143225807365366232001340879611366443395490923543166677657043219095034182102066940944096102813497239985124202060813276916846763589522406105340125500554770288306093758463006291259292135363770379013893361250375609206538666279134536662771804524239709529895623092230634258848056270763082158945945374135690221747549639143339200331228045693055795110994042981057229565262887757447518819207546489874013982269181060699801342098721784693334557173082777129242188853831575316130983571231283090364676247198681794237806185846158344523058357691454588917215348380930451130880669097486197040073155852782615091505517471549356386634418633983625219815881589941587663728135743069683221710813239710133655777721906644899081591142580783929620398282039811697419861191936416899681733692976305533728471948120130578723533385245861809956954499756560203639496442696820399948710140422691324176545909742728270675305887000497093502296325084936744428391350389145532746405924757542911408589657199573250494009693851149032220902526847324963288247909537328185994347268915080746361350915947270417801860857538427126242266688743742143943446931143246038567380712961080424121718482524378458656258747107267078714286129878088374038729459945474510794140359800948283449286703832950970251763820840155902267255799955223544724113490638241485882602878696332942626148951443720693528679646141991906523709491722973713830240019244297485553219345616463388969749642573595046784120228990290440896439723784564050998185811938490288641676902176066569838345851738215819448050361558895297272798919627310056733472678810688634713870702646119773368579325565613618581441608636665054011584486899815505958078090253404213770920681191811202766045922947413255730767094223149323757281790029765348192340458487750129685734653203653513974707483647460509053348049399790543145108643269000095360027814725856557907956105911034272616059199499284262442760808816365469422013048623069355100911245179483219655617962617704256229417537696076745998008320307578834691006280311955980284922928267052309903438277283746185991945155178888910683822577783699328961149253640133500099013671272969101774274999859070266975401529614362650591961019664634311042042450120304272705088646732536088120949533973204774918112523810968318305347316983996202975286914559963304983796208614617003074262096914227743553760591111001287000993687831406331958905470761614802068957356011579642850950247852723386013274863999418839654560352219868229891153894414177716797970111579503424901365428233834676954265640512288145041883988513149539208858432887680876797544809671669825505709959452908801551952547479126343983432295392984115329289995592532557955852819798571044582206854789410360845462440941070386900999558265895076446132269170856502063244611352742352910186079570874555976635027041067659362850236961970846185720530536334549530130509923823987863849244136870201731372707491492392639598850718991593489806027587812259733308408100564306357227917577065588592058726350839411918215535443731218645185086994102330716260054791557631122228003704417345271278164015443515814672606598430419282338779271211799409207739866515501234671164982178114997454214404441757209453362357463289371463855359703739541120923877931981325132686536160971624708503006451303333435409411563932824799235888374211534288323904411296049205900580655915651629412566809287346308307305099127527979129123065163939211982195501604156986984960895591995347401479091449661819455331614758360451391810335676417642461381229035438458065906135474686053514639042401509435555169959736155622408400853340860321203061587441942838154151957902709134594353972047843918494053755304835988351128109342717913395139534765946207597320382882191113095903165470704209568154717697825877800004983082817395119446549555758040353630298471159458531711919687156477207667858978893589902336261939622847338598146596078529833526598830831675810883757193683211442140152644905016901157846330335077042978558480515288084286597514723841106971622478980506081295183645002255485897541176615412663023436393218767326621439643975590234204431538904066487495042257627098950649260075430925440029027606491560144686019389097426624028367879973368765394624338612430364297124866511881697327342948648207958871912066111075468936988768203608384072685605564798224334595225202574684571371928492832744281100940141162144712801214620841713623154321313581530510011912985266071102380650237523726062528904921984820994274647791419978184575078118333774417070281334326842705187855433357498862439748746209278322104254653271165949443783190454169978547652400686595602989215805382715231798692998143540600721967261613001120168935164443673606978604331728888047082500165592646522287563159736125638869586096269327333990142952914162429806280056867610275347398220453005943180923622195469775959833347457409264883738846702977877298947681501014770867497011302498074096838401273617022663659912370055340056239147455897934519744894426851249652782419643089779553362004911204213161523211484734532677601829487911225373011153179442211539944243005817891452397775989859005161913927942055262364504361034153676592649847751079337406796955625720938759273720911349608733205500334240963037086437296621498028824721246272725854172663628688286066129261036224552274963614671990495697610596469593627176370937161669265578770692233509955887241685632592031141579451321476152906800765838884172630996034461610728077297592488274376344640422719222556012324109007293751509627218547354856615745650953958734869327168289799564246823696461415225966545866609622949410718093849556667369259429806984357598508453724512964952751493786833468900899458442972890295442141749095452012249309956183585646708894814222722272032370129305037087928702643152212956557613279561660678110507716346848875019897031218128153617669074273171823252932407619679665620562915248680064678735104980628193204056667439180009461684041878151774191922689879344426680286648911532324237183470524232993126344954793226901351764596718684188174310750714595182838511838589430757605414408817360344611756006299384123333817008926872497867787143930170137141032042093598380737548595413814742146906885654923835493204531900953243626791926433296324975838011260265422394324031455988563512857033061177427821180304109157918234101083583521324444129273857121974516276614586628540235902287880129058592887410265042904069033635077747098297174520384133838552483155088995355002144947299238897058722597916611707489888282033950108058043095459453184223020174194328989795549999902509482834664495283152572892812949582542320052782789078018537059875263323550708547057175486545858346571232113149297447115467589145274721066901232733084499538182109252644259704991799766986732760827367765554401241416296255377150372953866611662132114422853482148978940304873754705390556214010967282165870102829213240848199421744255161375836361374665560399201471541710939872063082173423212527112681643025009915397798399615869484244166084255423821340991339051352180999486811467531259061295658811601113403392728992204777310474723544208544476848892958069789339722626985939612092472442449059008605064314865330846618228114958599751194319250695738698944902044944543573143596539808031098149609170182478974031610063454330118187529814417057232740418599235852030965427181243726617378974288643492673037593172898239548619223835672413934407378939203652238524403196033698349935765514540014204368226391555120566708180518815169020406379658154488561002079974274558912108061649007401808251099489372381446136509155895637354986401230507469399412893218638752994466821049299082586772378209681245821820718236276562675145182898754076533683266938748476297385262291647767600505003688520513582030286635782243309853467687103818826868750486762068626582210658799592542006262426070798313683620372782175533320579885225071523217096169206150819683167616524936896784450877966180859677376154588708191410812010713042913652705062332190817107225781557754286578975458355263694606885249785588643357216479750313802603344520795492740649045127815558944360593659304173175444618287038735224168851253413844995268541195174600430596250963270266789892992488034469673130576262816853489569904706163033061408921280522435337616132972154391886401187786343126846496503868141223144286177232795215524454516294401693899008369837139141772232866895406044446947018985426699197398533613544657058358088047421820946426352138811302251063363322622029393656064545349793182440141717529863130920202609120249712600705825497914483162425765728854280742715474355029407907883277548901280909980350130064192027474399939705882557477928074569323313076879119866785889425754066843311903096223604456318306806982011388378266761177335641713405783151576186570968896822499689604368606880176364559804364227590251506362031113394077008893876167524029180635585259869965642672181782259432732271829140557940152872248268683714052035106185764705307280711396579740644093994833206231327957254940035857084159333115140801009202433930320498181008393195586128976820098762475208502739977209300104169104593415933452609081305284294096140601880270232240888884593129978929443733027409914897781057362097326878384777521819311375119642085156904227579119946209693985615006663289551265384445309741052427084381627193746658514665845903751648621053482567325315847124383868338034333391005443323599449907842812767397247652174642712697080350061947217146318385773644393637156907587632260324689458036719052237634604102324904942233528265774770953316752089380491917350383962093300231986753104979669294250198778856896147700365005667708923124356497459896742901334579480814146411468486496830861186510605969477734680815899316746645310619042897354171659946871914029161306792375773170587835135876139768751977770015168124114425696314326171902620663291746804245703430031578895127790738288309644655047796319609873666898098775409375400999046404188091955800052414750618845830737882245644036917521951731844728373807174654337710186246671609896316773927034155853675167871299841652007679461669606832043403051770202230960408938199279062908171535208470726918540277540544472202306042718747613033844533782657048635078277886461407164972144284805590388621066916302052254960533906863819595550910257787134630510475455925748469041218783994347278828128689721225947056773221176945701430061671306201624447607983817144043945672036625485649861904771725964285140749179152811734310694393614741654867688128857549833212966131823362271814646534376093215624347500039721292089903430774959024969328336876064809502788478496049329158370259515189410205387020677244223094271659093511260312157504858382469020240851371510044741087883357851588988990098123031577226669619379051692678455726851504707104646571005747271774276160012103130902517862703060466469509148722057888359303748887641770226967117925584094998428842916508437081022375184107448486217326488345548713855150156649493171134785296117445348519792717829759064146885385870150697566024958589758445819526608052055154909729481206843243967259817127830908666948773055702428054273061451255353693518061740801864424292298503065941810760935224356173178630023390498222746093912247798749871704430906755133033241011166913188780782367780875849915913833620492721891234162876697838445488994367989048915978895398765090769203873839721129205781042392313054202636617537574227533268331168645477175734684110491923984575966451245987192628152985744966779558403156086473187517010592528140490988226970206322024445218902839967725512272289857570843072325701252900144327758620541066192260751744836351025086448899787679674370111747079053585029122183597729530770517843099532073718811971502923097858036674523900492804231317960988268886169073823899271432820400468651794297195639846357065354089232742890957677961455335911124070308423179594065755052652674319463987549076798326238677078301464571819575676216833697561990374065710858400563405254804450509288767405684935491620350530964764209703931866922289903683278918853460462247983808157719149683446157451123288587323150439127140565714800567412185523113940423583225145956640696888570900261761565233180684445671731462291718090019748347387940179701269086871735386572507528331229751211658605303962103094652162431402702461191256212595211681761995920114184741515182636903240893320577867046778526154341431696072595044137729989708147559598999431451639734562871599066236527741598404169831651400470859659005151674166788439483962405089606959187437546158756325892252887949855560871319271049729682703854205658407660162464113255885171724933596393578764901778740086526340959990431256518152691903427042335335093263961718622774589776072923102168075075287253114719131303064110550501134054634502807303814219224095066692639896641764421340791728434255562786223001983686035586657172284272708079948338662465190874437908796645200079184174949760469779247210843350653888552783421965694535956800902025404530950686497651189947645963923592602902936031661167817874138614813429843561451657033776589279615214401452863849070434935063620291126437138926806573972456920766404129148879455363035649299037197768523740322713616935487355148759934388389431246985016599997230117768205015609187430147556612070861184366657035411566333109075856094682786173677364312017861251153191491740476540802578625323154205368450213135756341309884337317570360874903220732158666267002341756734320020732149297541343269618450328978518911220069520256145944790657879845128784252762094364914305497891178251840166858321721539583844386949994562854035116792664807548596379669568508577505445139680812990420773701445480117320816910152966756986013014963938062112071826707334183466394990176713209835897882788341126417502924402858243140704908408401707412526472364120516879686120733968822176402235480444900249264535115855559391083403853788119697689039027954486038302307100050418225340988036907416707683139422741991316780884822847779157631194579516789103353810548267048475353146650081067719120362968932783160610199463407852494236979720482357092842421739819892836341387848061086624846875918900740935732729850953795984561922158483252968597135104364099958352524343267820360517915400039602016302097651803862766322463443937425739239011187520203621548095315991440236279817581632545182385600190961688994336999065892430865516277466783393044383460931602331947190091065789664103967984156761381788994041165441320252137774563248203983424573074167256453027694442544528972282169642593546454224192234140397573276447505350312546879333081209223212853387607197428861397459027369523769407759430287611820059787918424168120173769281753233176864187950489257836623837070510675985192824283763962144307256158748129696132994310184518479429406335104202597923465181427379689265150744348998939151859440111305887681581581169673698675308480383827923492284692080912013486981722736950647135408887456084747917209869761998157765783469954783820028104029333243773289515336419051881701259299965140402320331705722606618022287619725340467509380897599433293240055692250390448856294216242354283060796131492392152743499394398650526690424008638936707238922102728423371089368388388138439049202412998559568902654837872906788072853038264609439656491726925763403087741884283258209073067317100976994122407246824696470729711764942962820479214181344150924005572935687206160175524464172924961561916819179026628969772392763793358168015170979794032236273814049267988979622466819639127466841449866131243343787824987183369751141731355268039476194467198513745502698060921085569446096147732352816462067230505120150231146257136654804632708037525707913343252706641558301469371428250406849472904728132916842657210071889995067062385957642918297203319527946322363185224917116784101478414913005472424919440183500244544087958862788372215279700720332222767266736617526753550413633329501590226049249425300217631668994293988354229532792156017062128921968313314491496607282860582280994228927919401548742344528051477091227562206194790483218599108810011843255579979666692785836472193863470595116284556234568606566059688731303548897870270893651888222560919066201555594052295201083088369189436827855063928375016811232160275450221472062915697356544039683660699785342310851273528715100669187343648857214884787506958930204857245713190540675433070705561652644361161737225475762688526262074717785802331743105983108877826478792970734892597878257923112346698652833742191440414017619663527289735085301714703411335245092788121345756114997702206104730942022161871506533399220654258309152264556643178797259114205722243485245826912138517711677900488053075656416820856578360240643615520874180604330010457660297395268232098902400400120763354423159976630983839387201327291262876449910601955391228213435263232056008358816984012210762215858744469917577045590349696525906755124702253603001931395323743154501051803412852633270321295915698872736894766722392633830306107989062082912728547822894027855787767537673318648396742601992854978566257230479276735358757143584313627873725266640836996156283837809359556253089342568241131570793054831768517577859792403659380132923260887277588205078686239233297667763062304512260740264904043051236925549574153201615638565282463134067390266529634241318349582917155178460488919819480006069417158840329459682201381861702032390557684798385569869602788252429139471429775970402209461989158004075016894030827694178187668595583105790695828299697862201765323722707158127401070711431669131130111184544541041290363656643983745375201888765924551855555283478543206800794080343540400667010587046219596327395017137589216786170379302795262138599623516742967512312492991490169887078977358907004025920688591878574164734791072416727019572071872713434788265196372177216638863335119083935016683972029622358477700395074954191221665498351060178631352563619110692636124761453024101999107439849916975825587444889016614696395283740793733368258127982613568086947848134244539990163859061666370833542490301699360395991233479854805080584521548843160905750156903978557638780066654895265629517257407276277712888619648017322936834696309124254053312965120565781091098760454553761239872742080276581399739338784667482811659389859786164788860006260535604041485816610397356589022491197085496017555375188659696691434100969521487429625831255068881184519710114548041197759066166820295527263482611027287967353375042958723054353698911927460020302704935215159331556681890107205592573146901998633166290968965390815449798633916295418749705433436216935286046506711761543726665316244208474206638901768805728652248656995165558694220079575544682244267992722667544612898365025254250723159306037308732371213208531386470987729195718584074857932280089925207400745867157809762112998418099807036141050521343800734082843401408863436113942043938354148038344556077603304502405211766975368644169006284025675762801924946290183373249750373039841408027416964527865953389660932752527628370277006678010969128511526561427356329258615621850170853929899687236240206347045056241627199562482224162328219730064429669741832984730182297686713061648606985557282529457257289024092932193580275394113137693583147125745388962386836137355922332934048018690662290986817776567932341624938159721667164028788633348843984705928079804383178182683434796010886421808456882112951841274142750108136475434065320104934943263873797800981855038338787798798244618952776956611897793686228720905071859576600612733949311770263850864318093027365707411862322957110586119027587835975965393632875544673721680802244239586702292241043833380519558267927165597791658495202881368442658831148439016043543721699379212671480621014213958248692986199893303323023744527603892535978335645463446330621334745165787494733798937045810890455290686906267388812022469126868351051544484489544027363013490836823500747392871338239118646890821278206081610340020166666081024617443034146527756989245042273515110907957115793755915645873141805053312504800991381337967503470432823631914574052873069884116896415075338645393978318917550416067771112252506267430606451622343996200707776786805841532133271471828073020504394599610170212070854864131101400712400198672748727472561466210274012027641876776024520885875351725418810235363509771894835395627694306710439619358219973492256332490804164265835376734686346458725443775281363379059072127624715245147360972679401465167394905771879706686913435798192320291133667458336701359903362940488810354578524140998259988329667273571812110935823649272101049773664395730387636897693786768346168488558050613537559425718079981176092780857689845320315193620369720620905741164443709854885620152654195511019249054064853944296577909205555246577719279639048315891792661423148527442580496219341949379140762102639643915279630438334850785920106555287626671891632805311071833550193683313269320765965837346857149217884410812290001682895096179939882224624104448518636895665432454967225004851990978756080971003239169335492570990424703627156996957069127971883622488199095883537675193337918103560116531881856538602382865541963908766008295386965381340803633156622075344204156449309586628632964957694295475929982364446737475547522378929968180965567578181855290025762666941313842075281475714458644090157478773563382893410454376423516851416200000589418820473440048097251008897223224379106532340480725726771986506844501632900628231768774797460159192485490461998152546792099383582357898586176183268583017394682795542840268909555011197863114987510311834830126214808051277493091897655360472564601619048396178326543593265207956916640819892625253666712656612624126770897741387637987130694016684752545071765430557038895293927674798420908607596027115940307580325664969086338717492087085733807131452634544119887203558869306883163172375050395637729792407233327642776321423515510927083087395949146610587009601322848195329580202057665025854321584793601060668207791004874504318858862957776727307507815209826663267730311349103831794286870319486737952724301366896353378755855232727705330625238777916943767726617419051810034978413351572433746460860178925062936539164248104893470656255543406282378473538343568902275940268429094711728877587255461068535354252605710707661063136696998791122358933271727217428483469709765543436789495427143114606450993256049922790708793275926106834799150288162084563822187181813269358427904185960867653985271778401063745759211644652621124719228497462927153519264737355681552930430195195647017491455029784114706678492826465824466521759057993768739158197089348183974958977331221744046856364187661707045263175525364133166912678924148922265842377191552654168786204914043107557853511686738045262691228955743857634237493169761998687620230405332788344656148548057492802183467595206624308266054812236530941987348885812903167983816975845597107434247488299312546899426529008295229524156289351895466457731376093512604189328986959634566986280631002449108291896854429169594733671110439083567615417750163638791921154407134236451371698936545189689065924478612363007473937719965361442730260638340156985671758471334950185705776209609663536216526697348993853915398230418145593245051650276720938646844096837994089274155829886147406894805913844324010746233172696194862768846527215568622502020507547505024028803249011799961491578358360166299418479972808441785752866527844837284747635906790023092442190197786813777922337901867792495971052396138212558491372405714343345375635083691529677207192640918654955989929719642463765130987871675738321267860450833189430424612377181928491933132863588859634908709721822973453669773430241763898375186715694498614844531024911198312061001118793164549442925490470872603228800177239611864509821728375678371534085608390880292672647094379858554158783674480677331401058807121052441555875077796072827329787828462327165029151138667992169097863573689395509224621873804769023675007613358640213485730709682861098120130057517967520632308696767981426479616998556284157653711182621368899401812314466462578608676204538852021141377352536750005787477070818059191976090904981295241187669506655569304356261554027013157595650362462218665944338204123607076674620363580310049277781834315914682822844641790561055183744168356387760885880536975201375564660101055730643911136956788499663587038538386292897659034372927913992260914997319376284102009701938939317445507913391115078613822542155780827964431533931621327709220316799602879785503151003795899859023792699642337400781427481290952183950980922654647282392501067540750968107576010242457309205697520303165775633638363489667655109141340653335941079884711625334730710243545107681404446028398605922028752545607108126520858059244180622950123777840843431885990619745572059454838409334505513852034863725076291031402968130971106726603514852552786568608772938014264212704379181551052569650256778621305415212728734812245080177625857970682988485936599959096386202770700842905583051802997811007193143634800016562762183323918964220153669638550487535313333195480809823026173681906289826605760441355509736308411943666728308240099159671733756886980517682410510079131023893094246110399682412997928108775408576031589461742656001206292601265164337116712574534899094344315204409476232126151104371123468106763234606674763782770587608320347176850781350285890957431589313781667306837616987567860002100550534782543613978227374951731124709989150120527815590858745859261705738209361391149637878686661842182562279587021196312998017665850431061386788718018757621273213029217331653804496320193217128518042781659181307496552958999454455966658783839191477741400314801539155388351718276497260921625829358219612427098039211094050221081701363465506575528308522742432723775467922792392844085091340561730424771153163884793737687439872835308895717768366756030290935143127744934225106062924058684515614562644387989322580694502750269529192972229300347366932016030054210003853640644136471106504842824949707786995286260373590074858567773999147300630596031877165869721028740392118078610027291902132138951994495738133128461132476288611002650147886089638232275146406023366755443429634717209442277225117517969072755038719431310122647603974732656507359128615555527974491913184925101599190410245037886403991910788075747780470380138303851280687943707958343641509867662871205528597791998036000060965469725475573681205028762754603288528673392708123233281085331393655159598612654095075820674904817201440215700567713261630405841313799886874321966564975980713892380097955564414280264786246983098228368510507873196939483754935794440907429323980743503914025328281605626706669375860589598704719351376565227363447879434931152662418973634749756586392659128282208692192109044009461209743271134827866819346022484549296145877178942345593782570741829988474292170579413517119963761019593554765036878480664743807308381305542707060659988406516128589001736428221634378396687657066838651902359205034229569564552232367299976608299988077347268680697325254065328221868738247144881576947695318707144300721630515322652724107526091818989505899318593350936928732888160997334845649571039950365692898561142712680490039831446280851754695663230443430161192853949388318217890121826994282740132989019189165702995484008384158357066909696941746496479812340129360523570540187017397954528617126675488378451906315737578657958436686399113666988108938907757972730429600162248532666335088025972728034372284813290469554853171037340864302367284353739974614021311293374556924359111416407565355817869758888455127693798851401856100973267260909543025281201558516585276383290338854385965672287568383844196088696310735859124109177523768784033675579233871613588845535243456211051410638546692965466587858084357709843109610564921752781442940709969831730546153612425832205228707376809963579655091602555056914452935970540132087066506396854223309102535359879199045118028001184765806518272900269125733574837747771632395829501372122104275122443355560845890820537077693644610144821473680752412088802568007118179980624274517379396200720321427318047366939341546572500007612852520598223647935236613548076656043137371756475627585619020921889873581117152436146062912060626459775191018626302162620712716550054317875641837826040743945528455665208260643004571469372325698342913581124710442802546395819434970974362449477223559733098537059428517808329347926054409856725461098877158127204743347542829509359895032771791537664254069990370276323336310946356978695258878948755319188816297770707005607126748606284308535302154132477205634597070851879858611822290339597648785339061522199948859812447959893540982916489264734353421069648142652591440271999215631590657227262519971931382716201654764288538270502324254911921635126603135299252275201616527483114698700155880238071520783848840744889922151411617483689493180783787375133841822799900301452648328738246478490772881036504893683737992939244929242402193280470226349337659886669305785149266241831255523615109229961727585455515530600584471289577162145106551110693692916375796424537952697352017533060475285755327379175622729188426103328496367465023513061109618505652030804968906402016320048010960441896130859578073904549383594113476882182859953144962602603945800083299210799965365026408337551616434036682079781266013271193703258741120377683580212095508130080287212350008294226494895072923632433432681157999783224359140314026980190268933649260765830610442823550287744017150874177857638750409372367547031766017380157566067909702356510411499585956634210478379736528904050223035509802362907891327597706779720147160763941493573327100847891247519074009475831857676888019594298163438975267914527368482563031365502066414230864727683788213085708051617539515845175353254173356930141002469763068665704032779793281075480189122545214540955759830467233650272397119266907002760765612015509860383830159276086453947606666852265447501558618483666351616690652385073670040510849030201133810524592654583102340644140624578694920969746858751234309881549708087771550529149195012338539687739186655725433022220797900436153033280161836497612291544617146356895779192584708763262492709608442418677332946942546135175970407450923324995522199697999940871315083786320140696049482373866379448076656568864205422441933398067133041558258187815824473189548916681122079557786718640117375226660769746292607894827713942018114757984505119130326372872823996126375559667381092042253914738617627689335057878484620305793667076709033092057370273766178703835425417572233387426081311971933120508347559387314125213211373066730053477605583521812279660156504729839739799907924593098368863527444098000438658003093763688143607527260026752650769684433334629160389607853989441579344544362203815019005731773980935229972019958396269034933746404241683613692425031462790144997507822048391054397496879250621369749685878467037933635114402742909187612580504236232671744423776522230096928557941099404661397186021800069632885489216635318304461056870503102472823560455824757467479011089846146417839229104142106993710528830349276184331439999669651771362017465186424222299522213017227182270393227032777833805647938078477400504286372154586701450667368721338363249919114540945469390754084094060265357430339138127741997683454018065213431280520694648519992825167563624983366015542207320652535182491249218427355168536214229519928384736176399828819179127126154268962197734775285374704977865742297342103715883100342868149952223148865721161269861837631345682806356808750812576888233791730749349789539403332151073132380620675747302346067108149443456535652641323831997634789045235251627867995104873011828575229456210798776314043644203603320875428749706857142751921780795210588710543689435605456186917962284055406504246625915425610749607037101121650393457061080304005063086375623931756829486107151765331836167160046974409735352263053810623073571653847829123612622295006069098939925575142859476879729561635531438585861985964661173957503321770471364378909091012738786651316868700313281561761245013822645824091736648312597427756720316485742740137455036745474366877640723289913011098926912072874587523959589899631273696936198251406421218267101375208262152766422399259110381227701755266285835296178798155744430234947941563303871511596766882368424852589938196220762291248669996810693033800348160153784461648665349540340471062700752374791127756099194731320958036596806447768532026640737065555213350305739025717776270851875043191391214688817905871501021289818752424354946560766768007047965327430340695365346218564497178243860920014193418621574494951464910960456461441668153483919706492743140065377308811384142332737603955652041038437635382959878295649429804113482131113256709091304241415387738731863065674040025111007950002024786040355490399448531240643360303027990762928082851431920134233331549677419726588763832699077652259787696980924497037488186516855696061123255224507154128717080827181702075385102732723275083450476363153129621494987453766042871818242332923782467689523709143296109914389915342659789528948815149107040220923399752981909906850870974209012168035194543031177151137650734433563717558949838042330207314384835453555144242511686616985568319198360151001129853406468820941484164164122174870913656749803471140844462883445461341648884956289296197479979285556836090373571546445757538117616607496758459106732764192838596137894267581818774953654803269514880055045285079405229174288962984181413368589626613405686764509964342523414879074850076202182454867735470536876766954565962593683740949619523626884977917108796154791493145532998999109351997910829427695449424103220171385286246805809132876162700694867199087303437616166979668269353660278483106967891442418553365336621728714611144803963130859766286103357686430701486764809880946665373710026603010675064606218839083298079423494804736097808054325897793215375582827191228244765047358463100056541180198335610004742409227872730269584638749757450435438554005824444433660553068146080878345264636497771671376170366597893317560573545066446776689975379036208661157746986597189813317865383689658059264732092478970566290799169655688306074486524217014222954938143048760556984162896155861587649448236247975264885522103898000423266571993721430547480688331173760346231568568343951084254938337069906669975178516754312805189081284046779886856833680676245844629808742425247326360465793145201183474327155429628281422753018298173040175268886414193713342147522828696064493578976354485504372896802548106130612629832133339817488232054854985096112587749157570045545618219776063076143243177799233164848905557186458783033319031008927825589728250684441251214829232033990113025752712964249855128145399782664679694761133585568298453148218027574681470724670031027913062404736043968961203256461599125796496161859862395155988850919174407101906614660734514231292915999833825257218323908722701276551045674381225721944698268532890280370340902302955796492772511528452394708585521681298264406364385860423776739271810483349758044805081374938991110858311559647178168343464286121961237352559806221069186129848493676147625667590774589696043548797366897972856749861434623583995688459816863612635468642588052107721689495162338985818638322763805680512922809725799804304667194388083204020746447722861751139701244470697311724261524128883776201055360694058134013997291198783008590396707910024454441253276655869998826918633334641129929451100771705471833638098302168225411133236865747540365941442816758741808747688238361586988643444328332681024324093699839988385009071192973027282499079772343255904132413205109134873848495176987987360750997580610319434612547957327001324213266653829901125777628171726021743901868755482296170729775073428690761150037061028326799572559260107865664588712712810156864519861858766897577761809532689233757690813357759161293200524128459897347302732322102672450968834085200482602240938979113148931123525702329746575694253219030395530291289894800942792154268831049516949014569171680719218547027504708584767157189025544328839008576959216151404540531776075119695485635097850798857827631167763092567956148532925144454463854761481101110306069903486317530861969045300383415008251850529145425974537515376849531000606389817438214687062010990514690230007569577252534705693964130956495814199812889675627014869676699419822940037788398561613514044430955612572829534284689905876827307058276168658442788445079102504313602132615124721805074681012953896039182451861577007182413474903320116490030926106832666974749621455443809249402370573261041912370905808884447041306793899937633207748725685262965744649133630923889216677699678023754459778459916909516037973568996370144703964460138125712099401534491725797403768488039177293366192306766411063391345168022043552788466164492383039244970463717832262304786220988537944012692289167903941701900570186657517700172487355078127497617724682460011529276054445694535237323220292576275820637195286774847121526205127753917215377235338446561167446613216547156473260612895362506154655517043577173402271496439984724720065129112154255174452507403338599405312806408638497928160291155702759322085339292473100744522427322079750594155639200532303795067718313123360719580537271141553333101197724608303879753882965437232422359639457899343636424374232679359880870109887067598153755077118732965717868421500339736532287319324044035302875210408107597634865529607126295433693949530456077463127962388128633537904924279487035414899701940938642207248769852364874006994306673296722503227017323997767376097656904008608906399983499943061108730001490360202702108752142396368759518726659848688318202086481624221768124490912787227549964163468427862607933558480176296656059009448400025723220749169123793417275997126192203719246449854691221065411936657885103905565590214976959875867832805833535917242818941070580428638137211874470183649889603971517619542099119200674583940103619511952382208052340457439473015710268598453295026869406440769790778026372924417649051452218628937888180519551224947679083437630565671628618820366477106270037443414143722549934442479884184972426069300564304229856953569320014428562834766799080268980343317442859606153188869588666018110903210333284237718429017203630967204689707909153100683581020764677967219931446192213402061592891989500484488059456379719226594638623477833821866016916987341619545594302988479097832572479393239546777279772396763893009041939787214920695688803475401651349735357930274417183242987319120951333537636874917820064582831309870314358771199806450222342382921435134103527003148965401991841585918537638536573315463162211213559205862127329177450639427152864568500060357071501181893947986173537657041704421024540051773993512919886528912956631809248140615038934338026521618648345601002735419725025716199188441616525448973543774706632938752986577487104340253744562599317610529423734956421496347346309612169095459705372240542748662524483538308601345861184331249286289806885593615205974052553427684444570788334342738967699368900599554002090602459171788523841176757688821139021131464367671990116873371561174511089365627017672005373103133444156627228659249038045122384242108524529778809398097115544189126843764403020847438741084932378233097244687978841828110226429881213295620931659038863374712679550607251431053998593936846066814235271019253482974252260133659766797043145811183840971098454955825611629300963708364689021184780210282105673722817918310474457295099797669799461257402721268068290508521863324423006694521972680978707148691264716246661817841311619655650416022160979851934162302185227323966886265671488726702517023508277467809323790392802569919705939647990672260110723458196582386483777450456221894467100201567365118229446496303362309757972815203957617825048128666570225399473369611186564359204172905647585075788689426253774979678474834338664968097998494768088607875262663990096798181982603963564812865952528877323183442249092397685914729818863842475609439135777183167742447317559815299304594529950878178069046921161233453939243569516618273248985578914072279262838580481267730782733991259153835022688460138909257205836963862572591336640186075989060654603454617523180682342480695632176426379776927975752162499419102876832646940064668262891732098723606448662392122858461436089154076697944030965214444907003084567191943162469714677000482452317259745833495577510643787410635498670541526971568829746286424759178468275952476637901106053717773327602124169350658183907245571313208767466497582239148634308925585040485844101151381871385058856375185075073192560153827264510180045601879798444112570397927266239041388108347543764357377042739912462163787240562155138805538794142238953751937135970607678545391915346226265490562195284791585117709880225915524263687436490319873301681253135166161647909375187479646508919161867093856740958247477072293681564681510541345313809248657292442217223933547627693061600752901201261023274866070975715890057795126975282167240355090011141579043249334397830987436648924232937655732652932592971796250786210174204692181186042874135542926522241142575252718957569071653052118997123360012804753675258240525348094817470213729594611174479902935492340792499335706615846694530737151654221724341774276275665352158897873472950181247102374394002874162698368792538210599951630766978117243898445132602087221705398248030490594152106849612435548948575825650427655384088154471720619445303769378941473695897199563878407169061812592142373311281049452969536492682787410796385267584558937081605913283821125235030017708375567145837356195269357796746142499508989454331507598840053134954866893688810825509790574459259288579176631989620170698394315891582276767608230909683436765196703543431927986263976021771895646542781261799054849081665934632868355512500346198354675125212871592759919664965934410948389248366000001252989388217231181514467302789162350294915963182445104096602892745704793950258325907801463780299631109741524228988922864676270189320122442655973846835885945208325445947001349342255589361772407614115783504229345886214459516061601906256563044651784947950468751398256780279330734666090158280715629233545687356508211906526262898038992804355529038903205309453699505289129795736947229166962842782465376111538441849644875304611879325358554368599640407924369838771906899458452363002718152571820858833229525171142116625020745328505094731790552275749450057157154492975631230809768171965989666080317904610961532417303991153156368990682972960454212733087984705615536098851877071551937249869118500099418590475439550985942816593950209377548932130739405084953151788985541417246279936981255165994339333532492085663054459079705480285842549690121593172211603694545607891180163852739910827231448979500405539679699902662074307420611443766342915197083307588185810527368126381943174479882024817980204280022405558206278447030588301971744941120408182008107763950821917075766172387891509032641494099928850434083835762187765861496813125377767094468904497156791659148907669920569802205936793113779334579056848015500000465336491983466922235564583288069445035207926190020792112310399577259992446010228804087597562174724386924885614528399476019506631712858434047049372356207062391435933405904961246650801498847365895690752014109921379882051989825157621165797906083307046922348116210302593362825974905740150340267682128552588074671623181148663115620532790048256249404068751709827497155846707699869927435423006352553361854022634913050760011189319848199204873640869166475228159286677802764039390688620027780673073192450923633549821286950523293778483493748511964879757297139182919937163583228469715327658742642364477735159524852276165911187828890635659250331033323135873798051214206766579264251888678722333778776662462065793381198060155341583511778800343983360433983631358534408309220411499486764037311488951634733207570357486671999701858821043153271005476577053176202424866963995173678273512811531074454681502063581186772273715855891354278788913083828431326328862935724114298519936198030584633182865572674334739366338906717727905485470941854911949514246320964689455417558047645780321796600778358035905858368392191764578713206092669419728451782292271951800086155574691875959870805548136669442612496594187680099164977133873985917539345656375963759563067204818187013215409353426744059133689908332219360948407129546092926328826242915187947674071697693086741055866624084087397133557008628537141863299458713036866263121878844256935370844400343793659290802859935719366531303795614387783648270750357144886869449720395732530701538130346692820801768882008600287321340926947453984378593471165618429731261236368616512412800711676353737988372890698785235252153233853081845369974845006807646389579085161321591476990090799083888802397349022788278334135194436388001206556396043366839507126832474262996620642720465327215123229316951467284757797970577522771471030423214446064705543497914821804519909357878617751549194120412471032307514915119685681171462756878298289425457220563713031127152727741857975661554467528222986817543322480864944047694668714013449790075328631264974084484030112377956263960994371990007023501962749975205642892600833366752323989221778526753631435373509284578347093723230090415203157759360993541958453859784651511074111450266181361709645308902194205316185534781566860236666349458597326248519563621365496778739726326387241271419219391489307901999315047693082697125091481801567616629023230100674088939653549664525398664497329225772737964866459631512882092455457463340211768316320594971209514556797139797343442303890668696228919178261274122616950025876362010821092782995105263972787016351057345223931698705765125394549604926926470241893075807287829044656001597640513149228889114131445542704716951625554291450664733255756189644529262977937711360830469286401779968828887967008708282235616107059203724247162700829993093467991410644194664177021539260757409003414192596539924793182139529018225191518314924712304686600365396307886323635436061389458100697543411862309725493067126881072593479575398878731211312114935981450884589894270546694265164844312643045925010280892677549017469229410829745169194635783062862441432139350295071265807537027528963457551589349063192585045582684824886340170411412502276370419209729480490750717166705262644726596894019421662983998859397535238961155508558597953821267579449446965666656339022037881886801006851103341493776367169924562141990842755417749563453141138584821844719974110464217950413502284481008187908876243005169908043005829757397157833447934266982295366991302991977810786620579703634383962799146873377621883655693016937052110472660765738532533300309706462748337633240834763711476828737901831110308218646014864895008037184857449660400731641342861102361185964090772461451509904525171694389962256582098085383857276456144483505433865059646481054561405631812928880221351049176329656200957564340315009294448577782008617015799745010122791188856445842396711469785513858282275321010921361988973995479357320188184018398152938896543421887077858928707888431674842776646274331652131494906568506460003993832710611000106161021572315515012677783742768021262348671374468176157823801793420065277067031713951082512006652017032612214563791192076096687414413054983838547487634219264966683823704604539024276929604262923734480890675865824390637521715440177815286031660950348022725604456550380255265191330142602532440177854408146448022712249559901692274848228303938632500135056475338941459966054173106105143144068861659330076012723500268200249129051996995081993953426912049137124535017435552526120826843947447374844417171066618041480839476686374056257721029992081607478939581598885721224090771682582293220397689483364317261158952329685314211415551799856456036454505653294279746232655638668128959237702325632852362403145868201433585286339220825149099019101573016548544560449219650309876465185494830656775102194500847755115845601060270901691514304034564527174975975976304930296604983114321065908917767893827857299130434965314535021240560617493641590398597188810970903075494513568799831276655703320592566295617695793292641746395009578753692826225497244850517309242945431741568908484001779323359923078079223707734042970640100811021249794582520668687231418082869417587474656854501240892815934065229198074417657312383367216890514925494017965295340894748650858950500972301132398211940729046604313907144590674061671132344408715493405731196899639892763114887979306190523974178165716304553104077418291228125215282575305029506914590055753789511319784132370452928578170426754921507473474162982155647432053972819370946092566410583641053877251064780728832624764123932909372187021002232959686630134526476958393987385897239758491032855249930286113359605438952305348188225244223198739699390535720746737758449009528060049147461251306285365342927606897428656604861171742189112259741939130885241708583971021002067388075986131297706800829891526227478226746711954637450911601045180997330234526079375701113658555412436299185568811133794977158480894947761781015421671127139723313916156841606241123938791905481270383242210321864642703143552081151484613183102134922481339160927436154454960260310533106344155252637937997170334870932119848730036923431601307491038985054055773825385520950904314443934074979902065632438015088059529912123589653737492466694681231318733189190293275587375731841010874210416755996007414947974262817178992358389129506417052905412348456256642647718637546615534575251355315448292829799823951289647308819677561871571760276512739055938678415246280430675355286308574086828360625161199193229486677559005165944129640712270872795577272973516336594496590437167984451320828342576151490585207228690216636595702386598808474829947922569177943615409856184667023607626571699635606537369602052816108374803347035467300437426679198726437271186672582158003322263981145980569484371717792915067678352659658578582725465411179064884657235878477850399625362249586835147961194513792693241503509943888611039754907503750628112372474174136549566804440705927227537773359640975208959617494557952630482404589820301239176837253044212773179757237331963766330280870623509715847944393971943089954824208773545083267078025307443365461775290812183940394150552756702354248449072665895378233149079843446854882739714458827034309878934355627480214584602908749345702198075713656670120183844402766097638899600343509087490927504482525152842129473447961574324664702339419837211979110588599758946592842559241157399120319488575688760454542852742821980084288118815828792988117131453111070828996094414513041162023527402374514039215889123754617069461523017567901306760798234506525852756343604000249269514687182935036291157573451850299367145784471482052623004818874713767555776411152925265255533162639646354195413795003394586091861519516131833377835035453363416469316648726898560076955816369878540698418885077022023282943831563169821498833151751847682193043754406632974628602855383558404259844203118515351933109894116551544556928158065867940828804273840710068466939372494991273810980935782023704175051771022433492738594812209012383220214518067565481747246256952847364574566273652707975233991622653772920172618515468852114878139970370088001440056555782827595002472787556787338628702928687173392834093266335730847974148036934314625551727273707670985830401347785159956475540038180808360389563670765621141629968827782644187098095954151063530935997465272481414070913595826581205857782417096122596184348223849341985761500893291646326204110910999198478316946248654291735571946851831584830988421582381086253321711614261135817714886185660481970652838286214505475634386843860817101127119709811106504859773954318829017431716767288326852210932809010403792208404504805659196754272180521499874340311092538989402372694679476946784240994075771253242082776560525198499825141190030636582349439415980621271307673782205284248130405732661665449290152156933682307246270610112984737541148623561954236256513712603031659666712718394471166974306231400603629855428862345900063210672834269804512672525201557518583645706102199931362432633969189302246744129484558372186378757234529348673629581290776304629616847691385077745120321084558512168534326077991241411937032535700613218131332660579840250606983355802079360789123113844140188635613533238565353041645936222684287725217104707650183121359058832866675764903725311696976660341371326705567170734635066369745553760897420314309093632584696714208704265489894323817376528241765798905646574816542965252555778235876025083528663038499055814311049118663881498720497560020051027163701331862668025703746557917050380664658364678634632011745977316627388631125316545903157553194862136850381947738332899610855752067286592407674402136833533205931675037635541618731345937434558437181144851090238946613323829008125865802005187212041962363903020066332188240602918520727967836974604472605096173427390299851588393536279544800752731968144607308691173153200901106653364402350100511045583483220214616906447984724069666536042743471869983868660900576836421528858795640256024160857265472687100137207821110032891607897099559739124283294384745775210299885955533150453513868640708789212137482288729656714110335533616257992563821788467141424632639027871959205224513673299340561628519862090455049245010586097600788658470334558631090771107936756964733802305196647993335352996409151637438070293243852185724995399315111054628719444658222373731489497852603300192137044465070159200464380285145245740931932588676050258105179454215193772931536681166636696355356281280210710607509520030019948701541192492638709598864164533248736030815383059670942703985009122906024496422639129677457946676275424862494826824961271594150115823211447683910742595949676196474520064099315116045199312129822545239044872037284086902402506463466614409309881137672739076140013112726725363727385101414266638781705681623027889808446851433218115728580534813593907516510420320077204383066687812610455120111113047782227901295401439777664990213781843094292627860433960920623149277491161661959603409794499030825882330331411877761753873083799439064911504252462600444430112396008161943059636138323927631965000213633392129237184325430029717476576886201934636586102368936866521566958040157062397775878051025065445212577565048082783928369534046570031596245053877233635788713612777438732847290421051748118423367795819076885818053730233606519843070178642552698875623151061770776622517168670729229294184048640172068322051021569666104015972188198473565956424015014282766086640506049291688923619220945267848211467518092451959037269634234998848788408414383514359227421265744234384473426911067371395828683892497215694816980395157641308011668592091199771270930741290981040443181631629045924122144462723199468116263379853110404042387558503274795671037986577995395662666587790888083150307907823242818523002419441208593966999989330949452321105854720680736149494241519597866567767803327737944483661277584076128192190887819983118534400501249199763685247024179130825091962136440950704450161428448338449735227284847173079306647276657170919153717665685082518927880062691732351165808724885930321195204154515239599906142926613085952042730269348733759060659230256870835338774703060650332978786027228886330642752197393023252247745856762780529910654346395579046040964217095887454447226951653273243857875084035701579304580439947999267348946502438088675260822045435675599629927002360283303553256967968943553519617870927263222882984845264082637870117585965328948769458173223198678319189992192443774032945264174273303688315982955704425392280261216155096013034037080238472258571834295292844286932907205245733223228404305647489282007135982210636984581252996836756845029994486685298870499237142603901095041075081992542063790728869617907592821280404230454628999152110912051592320531090904213852032061565492797822922465119381307272229998230530493002621523566221054703398066887335262896701737828845856259423078189514162903280090391941758489264235319009396785949919334781652867039994284609785417826784559440877069306789676148088485007433872690037273234624033891118896961323956273283935353477100578684755688484770284382263040825420844147587457935179716953780796812359489170180833926768970115311675796785092496810975802587163265671089857353053530156846994385380243042247116174750441817356101813994732591777389344198524719541679721503854223071900645472809777115438720622911093505301624878700048589391780718723369813641465851249478841347050444859326210341301570582219547457970486078560090146371341864471708621974745443885597944893815157495506410243077403180181521716563363606378925672586121846624651820379440822380016589658244907544324986134254057141239803789840989527576320485328423468391315114524283494822127808789835326287805275845257349512815307884179808002899820536851864370297033216061003778412466992041212081591592191618274627041292680233292796754529192981167363112763011449699196673262245774087649710393612601117965026636700287461955126369622171847761252198083574458653860988253485066155006513748504942547777736424818939730632510742206856786568040663389166793647234221881049297530546771859090373141407035637616694253303127567783221057422703432081228200608709378587592551432816603012291471560572227723548378188198050392131310689902544125748507271794351961522662639912914118182124766817218593610311249199282109745982316785896983513973812244037308388484656202285883343254110370885551901752135910659711537891512585540164289733833277755203289585733302717204041329694347267254541824252564124348734204696969278201478199375792430953787304601868970344620659290476156923866651766403022930759564585748003804252364912702194320478693298700133838679504201247432385528081946824217524349746748543646555945874157656611330846081651764675214825784395737837129358260836264854749071300074203887691288869950785168191070870539390733710283915648972741351428015717149317162472109647428221974972521800458879424322527529558241379462704287248958604964436798612543690675773622739719164947096036323490371192257723863207721947861617785315607917316275254449424298242899817839316436032360894040842610958016597886961164431985189072276809947363685353681080307518531433795738494627999673960187951622928533102247838089139794918444187265595566261555998973465853977521045475974130223608492897549956563726450626390778662077562704936893813482863448280001461189762265222161509244802768545526032409992773461938433240455961640834213162965003409112883612634234530708925909175425534246097935199212226221297458402608187557895946133781459550568475886669624244030082879796528459526702890707853033092868106642530160193099247809418714736925398873019776223295349636860183870907858333526399533363348974537393266467645390151463760251610200978825953556700153196051571527222231764184119246391500569531895441098030076411186199471938397136394479305749042949432117977534691222087604521509673438720709191659837842767962969567455399169288004093914847666776550433669741628680980561183834946900049166115141408269717245828180193839842526327278650926089689621385509378530941678016008167850578779389895315366308878251076912150295747148628481549026763877753061271462021093236157641232109381514950379931357493538305115518432773810839093131809473474304493436568234644854016663469008747153093031125568886068847772965305263887023844375238346516470580202846174320893728184359141095854236015528889717406574726185961664710679676971409973802571574201324379675294809995489008880052844523646502575298280444241616440694385785964024041147553374938060934893304701455591832560895349651935532054221801129420539593336927686240812901182678738224473319849831459233546075246328703770110345176418752235448831836664721293023654767645787545041631525830577568981971146795650661676040754958567006372881210994412973701627320323352499172401585587100290216939267335215341647701382661162804608233439925353157040265342401993202150025113130257671453037612191368920197344617957830517458251511158708705546361662531854058829107323902631571218398687338436005426861146336920057131569702599030017580807172679566907208731873817931639717959934561296073590387980011761683579674812012678420646132197871904582762334969866767676115386487691460762495341575856072148177980754713776250719549777988317185603041878424359945897377618108129107764959945985823411690031358606808725620514163881582797242773107574431096415951522880358710845612879250532512340639030587781748099493523573005280518175979924191798690409805542288977062099003612715189075960877700380021244501630881559354743102625589676606842353032309440876609967145256883919731754641362065118045555558287589011840887070989014000619139196603676349751135690414456944915999821587651091279831314541838596416817876121831004154779315759139565317647812666159430393998372404785096021329591234061573195550838281487407371722161798009900938274759574615245737601389914316827679211034102795165332821898752396257699663179653774727671591619862118971604672162717482913759494446267460152064909907951567857320236749015945845142482522063338807498051620835712279981150666500074559625463183096065120546053976030508190357266513582135781847131789606099967824356646433637857972563813286115076880162106145349402631315417124887172479532237936307006935818192449373195421334466850363031546799930536844769331135584293619927772889378603661350686437990600362874321335757502667931807271412503750390087728581037672967158369123748447021391887310391511517349053706603383390052291500929198276817973424835011264047961372213426135851702369596999461524135491385661254845367360772149113456626373152408954464760267948000525421132807456071621654940717413525808849226650783211544218504875693073947630910394062788626890477427350125913150035625305559111232931585091791352282499003611207743669185321782415941549289224005053687874210327184675586276037208042708182890599572896484837436299826452979545198410239755525080957711185910380685489230327051766037109885250099416533098270804779871283452450590164179260707895128399655484258315546468921241537186563648047002096516008568107273551800616344586867036665229700650114649727456448712412059610879885598371755187955715324670123439385021112912286643024895294804284852460300918181128762996246723054215448261338041304014317022707329855355201428154459416951456441984356852205432278820181895094524662077190574493366599444456599984946193724126331113641878700252055896760135452041062518031276847612243471373380819487642118326919048833133274105857731585123943650780728242658434120934485651227884639892216679332736410697288986001819127964285675989573966053582259972508134729935566975467322558761348784265143501841167683141241955990165048701331033993073859162446032072227549476298442219344045743355220437696020042242633011730616327359956510640008054081938857909102411395971403542628905998777895878669211643716703191600046646516556913534579691034994791327603084811457084367156999450352357309125770299267550224660481643993438892795820099371685894727799672082330246491996245205871397170613146247838798955770986119973898993814175799111197484198056339794637224530667669286952024282810288575717739262215361975905731210831920811823725157427706087050036822232410108231247059115525198861254978304776295287621151755415318176779330300404616134377099099057903287396236195297688341397120884686171889523964692878629195499294746531984178642875638696359983372241583660012016734498524102982344498020174697786861596170709058253340314262149892011214787806161045499020103964594288876827109799662945360857247318306347116639945276276339866441847350856040298185416529799200994506577847251532156333540173012122855992478031917526346875030799312887977515970927718872401871405892657997777382825909567705264475844186798063586879230595502705350783090863149188598974829596993413258631399705798890127343590423200084640614192264989533483859518814426361042278995880130501440341012223176684214056178048360970398097558239406764672361752808727670928353939658611438172227627901054509661292305616589035966250449590199234419675588607549355941881911935455616080004373913005828551849049741090332204091665677566510303859046572773595243228608898274696234507329988735477303255761748586111770781883512727527437168978176902104776721129448009478118501901079845502062487389807476978090065257087076395129072868538913542125089885731258569811105844992083577322872156652840635246745760355168707796178401400947800011204710212571233465456710780537890781078051427947976126314616096109151311511354599394259273477274110797620598242218520533668023451048623552069228360203060504851806998400310124475299749013136572803913421958322338622680657012091517625069281267948250217774441601456360246062162647293306263368583489301296399948641874043971711138066971348542866930415856352131892042068438268786427995205331295966662413423918533835537265615820414375416064845783924365371797805236343981449951666302714584275840031712601772121449864699259929630131932932485363303371196463838103620689148124559538523919058208700065277963885107823452764951010335189685530454267180112307157006246616591792849980848181339093644673925630107675275509931692877492395517793439893562945390308921369114413113170930801152927280718699600566182426521527156504519392655281616604773244054825157495367418815309882206610716285614013901781707683440728356412526449433138337133666525924401609283542047840874514730602887181830497916716010068029714949861435668128168797644568673965405325762458829133690091352411879371411259207509999477401836985718109934000321590576694078954197688086379737856243555968194065786527902861368471934420981977142179793908563518475893959003619335926380276784968102885973327856273901889430492373734127848634056856530638718948317494897261645868670511120294008681460857002214493791245162514097464355431283969804323988607979065256642163388343770237389307169623725939258933475273093671071564939225544759089793852620170837083546800530177779425591695006175630598636145648143788386462632256836825025449296879893787973445011355609696758088426436307610643621890981088029112824031652618207976572312068848821574200660786944642270872444816643835833338072310748384816090652192653613260752483017954175704433779165744591315616527315276130041528814996809635181279203157629341143770758088116532908470908764858024600707736507720097445622493900132323048059467100660590354567354598221013244047597024776912868072016408317545622507838269274888561597228359856955151511423659335872105527897950055160202634169764703239283479799959862838373671588541435429169306541138265987093446501233264659963561192902737758652492520673218672255296544667044841691411347940760077859555461592349096281227428695440858347960624492345040949878146898360852549036443203685998531912430188137445330790026268109172263657454905855076784226338603949796342239542087993390563532293128411729545192669811752568435186410706827696543958525001425574157662922914042901881128161254639714158562435784768582914836968520749707116682051305270819455153877086889160775487586081536454217669891242340359554202616763399786793278211296464731093508871064083660463310674360821813181618950032808312828008594476720847791394855598737957153849651124362732909099727515748919308825691415570519964957519433985073472091055105450593815973811558669817107776047837219926669362819374851141156499518717935691626481617486036116453238759234199348212031562996903268734879530413518207777550804644504308730257878465420533954284842789971467242687340167081623441273407982208288718716849840408109667104012661042526969539133432789024843043121194675500818541508977758571909862064444999112876962120229979217165279025870680682875478343438247708601555967785146139742587549370647614844430939718521009084954518610858520674244130023111204166545480243519257705745333151134886455799497315764405759791573617958961056001652338383012081846163757812747184947475604433268021387903199948355800144376498383348656218466111408456396734762350579138450257248559815296992109497820231204305352590516746166090207623581582308525427867095218560911673712790125370946266421392518568479767048430324423376186793768314492247947058188670389154873024047110624124024489063839775406356970238952284148354143267307915150983780550603989742143600461223768346291095031347680545294296454301334779125211266972529882389818824075182824030035655351894801339340569003356751040507172184696959500737210090587261079802815866463797627823808498795267638679068672990239915657188535019277606301171108067277080497980394683545026720458232599796925635987453332951640189500143357989532066532009083204738905274672890502327956548062125567311116855747911998957893570738117140124211906391574871300458050645448074561597009398661707962619893136885559333914421809148626590655184869368962167022575928837413379195349089652502031873716996796075048300941552913800623803345903072763126211488683538754183243558232462282791749464836859847861376971178844786443470860730172174532702827702649716627506755760101187348955435014042190043053152351179372650720937758715913750256230477507488042358621164711616487845294469869242848582251353579671274772825284067629888968633665461803800423240340953112012598614332549169999514132411004363004000004113603442151013127038884814810059189367162359515430715636072588275154623226770474113254321302257325324232096977667481180883640880504134191116867529475688855391657708536845481722755160161035570979234946036099407944229810520383699664266391121308914131373385058730414902546852369315682107303134508102533359339705203631966575327499771226226828624820153926134914778038488784573183237997072798948469193683803904728057311052573336639179184859265072817817041148989257683498830066480461752623004520652512700084948397478609546447229336258425226583756083265076161335219094802960632733900024029503015765548171435394492800766295089195868890660258444162104654997050314008167754329392955358407382109807164814495156273563469345264593971387729675290705752251600414212715184965173254541021474158772361325300388134368761003982499978343885170875121994393013552003007524420699677200800020608249601550658762862816451058528623510727095612191262862906228707581956961365514186181894903648035047754243613661142843283186390300012160621889127009251109928907668210294755240799928618631510107044631484263033327194281408935479367940989045929459772701309972535676952576459056252594750944452741601692342565591537500142673785483195448165093002298191749177363641019212476398730155279741557112211986163490277711455735746247597188634617248726541579716972948791797267755906981343184148071812029964741514165128017204897763607482728742872316554018253729413369194457396222660310450377054847549979447155896253684683822118897601486385210531656079874887144288329960351694772648761869146387246882290500279480057174874850800760661719165158936063581430128748803552873903815622281538225884945190418087698390537008017888043725710221409529691526708448115353491300960476151997685637919243351937783215366054675406913759074891544195268893068214284843729287349266266449503341676990796062323158982544848328343308167528385948588633383337027771694016366890488640709490279747829934312289486145822921904052603189765433914384386779084494933058397601667791623543278517573042906116379286949155940279085921152787564425444002634859595450468814225734796575726631458561971997457790046709895794266318882671738802891364481420595536159805163025371225948937213979347860381084417962390425269356889482873962517117851919047092050995877587458460603517058187813967052996463257814040870233882636592990805089301079199109204761351804254751554362010534500608516689436379636406876366417420511631474219975360996994961574961435282945858463378550072117201087690185200866408122934621868330521660547417642626210270700322815437627575844347829385625321457502169074539313573897488408934990016397457027111585958330235971234334947960154196342550745437295389486616852853642061749068210599549902186474393310881293137144928099731446745912651940607271850919431778173816317596719625952233843550938953617992213170199622059011806379638192538290605219765815293999307387549932341479264567880568702602802540278603639191650891303843296240318821766364071677903873238768536400160414762733772483553474392099158358882246612422987426279712846218776463102953233374036176291638896462569503360183600050692668065346191390084096856193878813079547379697504685813971608064072102369650423371151608979588151275010145467617281577593363350859993830739156296383286855715404992476915816381815205416979140458503889793179963546084548583967252651902882631466897114830380676940108948475719546946789322455043401286388983428380141207378462376379408753191949319420974194152651364707424217725494920591948053109055539313018194274321273044777969451790525740344402121734139901239416304875720644259693742158346922575094019152704019185750319451710943123261121909574712226471788377243269039957188290128128784999469051486907142561117530588968913956511003214888769564697326394446206215318881642609522219992447802194076562151293829552451090219941058199815305789204282596574465255476811692244452635215007166589611824679610192525922019654733260497329763347827352801108541327513648257858360176072572420943585236159721692157819041712541410020284959300274592452488938897213359551570783998386847711118344929474837118496504163754095487319462798764211659529309006389466957537984512387574664497797408027728604318092018409334100946597083172341748221037987299771017130115024734353263896245183530473994019355675499066195260944987712603255289155816792519476550590919070201849651558362246560741167382844772395788952151527380732024147252966871879307691556404891843103396180564026379796084442500679999629891713836397242570524405023025230429517774316250244609178865978287017214313142660599502528008339393814541643626592255217368448109865913503994313355030854772443050663738673970639200771551146824315876993787330661944822886032343916150600506261877076146614618889154877821323632754145961350856678710920718036877353670266818033285893392809248270533710118926633679008632944748896358419035750568951678646263144735304551623576042938990748118541028640551344664284447831835986000276864668267211811729184025087951360474256618712924153191847795438611843306457008992939041039545766668370628702306133206106880865590143002445039652285825395149952834622083890898256606297713592358334613626510552391100693449270257559068445275270392921099789468187312084888873942469899815116534198657058018527753254043820284322131444487181581412489451728772150390017870768860561486725951416444860306045818929532909847322119304335843167647509229003604626761712368149831193345604645852937682534721073152908486131988024831855730656825872697691825236683213876899000156806100272934303748804629256226035390237281246549711893565733322321559785721317880430452560509471871345759245726955863877086148859120422065913707076417963960184339747506535602511474619251270675304943846994763645091056318180233394939906423823685440438654213038574781094365567022665892060395184135902516180053706428964745036622430720029799345782700417068859668727923550323534752908901140108853888846725276808213604176855831389839235574396946137124743675118794335295699322426329067300227932364210851154699392281307855448784220209296877575901634845677765914164044190951680287989782588896853976129536536574271157396983315518621536708466883444102099100521987279845906802651979094754673250772131000686211343000165700543953016898806499526323459191636805906920233254642104434658309125295014985483030459660171719697665831052626603926843070174932346346355354139011955558917820919250773545381082095262034047626424516352575674379596436802049563246562688913827736284595530765386986941848292086917955605134798710608921438739211436955538894287492379264870776579741264416493721388422531397823335443848585009727018853449929089540836947594610828653324618208878543165338034894643228717174726223862650776150484265546100437956621817398785130583012484733201583714252808329739727052301355954795076199589063306089160081029472227815641228183889982382093962551409046817030693623175555229125109515751075376966508851261194646387045031747320301853117719012336836120754520150687206359693418237371742604206685980110183875092495125845944567209814237504083010785514119908375756754827537369387597255848158762291101295060877152629581295891326860557985664453681898237864809468860453341429438843627066900104499402592957079784622471615890549498268352857320227800729752891944894939581298481969276285806559777778686244162839413750619143930067937652960956875590858280396190295741524959074534298614400672341460051664420072946105438922430336008604818349274643586380179033033558347588419938671838733832534170503851506416540948811247425694569177495927241527947744528928701236558671711562022349801599018164357572785617293464026193155294578916705561540369765939138344361898729444285871848704078920764448544073002735921113390632640245444936707964729526679505459731871179125962292940564653638871747630817649981340287099430734680587807575302167798733650940791145550618928517991911387636304076921698283886824469702966342621758174864363074573117549697080570451249638378719284009910451532975251620846048635304933684603789283851382067670252122572215732871147261067705922047409819926490203838480875700726313561686948525273453741867999316474131871299343170388105571133424085640967101404483741979303208893267635206387379805675539053370083355235293001433228122727692285809420108114065452795066797999069505059884843084905969909039406833618587178193523551202646553084111962023719817217717744170709579149413494126730458072600685280438855250484876973296023775673054743638466025325145732734401478807839074747204781066842019576523729036809200727135615021270130553345090297861442074820228396116132303200919696940671794480399404089061180481077494296105800433591375825448468857520464529119240007387224745364216577550225571578873697894916178000281435023008385147984984764476336233392963579046922736661179920820341036188524742577438503365055441399275398107685625973576768297830841328913578629947839939683215838400780820344002726765944910145430362171286691918186752712702819930911598943361457418510708944574824536081171358739804255695797024781298120712428428432655949517671504305577262385015814565605632698277831277656908300534447334747440124750484186163032873400751785891696841827853510773184869949669517110172429645024425333690632712839809412960387742481412692221105866407923533546973914159042434506522753247063093863390239690206802764635815728802561945769885757625203184380162138438473752390946940656946330047890822105623602918190338493280476088478383179745569973428311105286079107640943978871869294627988818058719828238390008298661763546600600093193041421062919445989806198566867026006923919267166481765272939303664294874385709900159378068091971212609004209505207911562583868081506884891072072851804441450521416729159513933126732284337138663886039726886340606096453178894676354630232338737483641976644426039920828703465828508877924973732989819920907384908758397000590228030303894079886207591073820709275281536687816638272684010967788505186214994030324728256817603794707218845599284648568934277581957363250045979131694668634190386620977143396554064812904183205734234638949421466292237240498548490404995600953269789176242899534681620942866239058157357435395403717646359946395574397821019873733107860925471422780574009501798089665969297202328260686185160562005405243699708424498668620955903400185364592367776277569269079853886411220665922601663545941646129654648262332932258736942249691999597648888332023083118414633927606583073421189228759921489262925243754553166547770501903252285849176447799037851418932254098310806842743646561605151186961528262739705384689137442047376369746585837844831565194254024417293931962881466360293178336515190738168815110667718218138307641206286363170846515273019831721453310327174201205059567772062695457723462195977929687775634577740987921745270518838207182857075473202849171763879102749421835401534164427761513802851812017563266708552995948387088344071483345680962034126537214969992278445357634682057510099655417701173492124104769689733674211797396432884581358517689058979752240806785539688561421300457922467615289701362722443074876570880107362096609329687087692662351079354009395318630910334029048722687597610131075047764764694722009912337724761158650382773456078293300213707313540102415531305574222202020460529669028199499304920827791233611967267180773280891268173532605494465951319112269774221691435720439355318557827158776621785275794807594812510050095843373799694864636577055626855463168395235982223513802312515074165026040165032912994724994226857229121856420046134058855186316842501626759176423919543736788661005385007165531419950469741667212792877494149252820124390845708786041731915202967922309301326899129375443389301332578065494483485619388882574563346645475646376952383033259836005487601224962159335854420416844035291847143721544433079871588087492365878257083786702450311295227641509986434932380339783822315079790962886158580055948342691628887601135236567167924582943222095594806760232932080442079015638034826692059246882412712904255243465945994000878585329707560735494080227318248613786465786625030329132358524700778914063528357303707481507227293998961281558449320431969126796170831091092861236096885446552472527199653378518161250780339848453084689442583954133770223040708930912898720828177119446733624830057705345124896673827793772525546339589647930629973340582282746024930136212603997267107221518361371933512606770416309393511165661641272826159438167514690044419042147568680431109316511895634995729124796172142943680787337453575153608115929143929822789006217831328290934252148385841053075073305829949134447828929088031536722672174832479235595177426151141357422214989110989291666629158700918802590001069995663771009981532072405507965917003102209354559459835626066005358858819010807481308510566732549445903471823183582776040046150658040367978654169910267507178012377678043869430503760722215018965277427731909628461296408118179468725269979992118166242379169153239919558022990829769402383457172786693944230085222946309292031976255239396195471355515030378527180997575366173099826589857829793477173946486492621940801970281464318817699706654597913580635387543515495761138999806824668771615392668407199983746023257657390331582758838946444661344273293542958943559900173392289130749796775620030666785962408890704744083610630379270059357373715326371876356622580291359606212323377926863796606753181285708228657858291779190411460675449936878880060654374722925547369657500694021374073983966196336647649276524164097810014161550935008101628093104735330461557233977860429479766836220840829231803621916810568012312666586670701966585860135802302232430325848755886422347638708327332498366073921807381891001495596342449625561889742098829945021287544361823252416647594623442027759412079541896827175562994029871495405691661546342670805599396321964049455752724711134732219925693309331502803378348908154546825615950286985389482938640877597062352574117559195380843976746678495030871513234438696530526366575992385566354709456376121007008709078605273264681803753215775959921369713201890961700949463630248266672622914996252978192682421942465775615200295265986289251708438204622993798670454942732438854029297439719382393419592186192056467205527676215820651094038489722434004896308572965078549923126685623365389595967967431169245686967930683448380056061589490482834606188521025459211222021162768275936775410088411645531296447129231225591820148535773656168213260082249123907088187391159556901042459172071808122482780441623353386109518816052838530407193789602076298505846421078571354222238851966799451924416165936614769049069867273983429061845232292159161013451591982214772962598563819066772909919556367229632875720440907482254384082340033565073760570014322463631827408284095296722029895942071989238458330032387716818254322593382892887374554192037028739771649158636119560705552279642348972517141129771892161961720856553446433644968842365756376626165847724538618615533167603971633987482641991066095037194104300836524592251717914984430720935309920411330881344040576145025474634437294372307793940413752492334864877381506245675592138162080875582987037881662532553163735795504020294669622798296665953895266943892562439327103370736048019974177381516367509658785339827187502713410105769162615468548110002391857881614600830835872234317388944998214646325838541224250068980046516743070092750173764598236190676162398539506835873718042830701462486099482331636798848844049779972428005338071203889518532156288676144808408465962127770284956052973914797593128466882053686318093764437142565160040440050852389185394947326969427370456202940168115933779220525744567663538251283631698508561315485107771452436448438629719221642242173118963713039333622646195514624842401250608099195816596539193348187553177391187260695886606697331006755965687141479004101850110735068780322314571321183069803239214393360506108994681280713434690117771218607352472925812851337493846342398219995459554866221086555580217800724577902414703965733619537474509395155636514545309120423736714687463159010729857326318236128117288319340366630639214887198973788496093910258357705740164910827836196062686083505777486766404103967942708245473546531378014159637738968939524475205457476095173332639374441658393882848061351643496869285398144190239883393826229147496788066851706426653904984711605981143513901425726763913942816294225606013389997062204084959385741408636032198544000044370665846848839761753744200744490350534560662003785513298308939514109908967167545390673602290852486468402080654093211214108912165246073079207631487191070016647115390635194172237508300264101553442141810438667397068591907379310171416776451702683234573751881041108058321985492734997053593374800681115158653192541167467616188051168832922954704458070965718847971654743642523922302322869795913085618331031036652752295811550855574575594454926210187685842246127652104909729096283779968350902016128402847352157393029118529677756300791876913033536642570816974082143318241630980371799934180016063730363264970595908071119739806955167132398641783790884467560309655455062199178080497153216184708691413459376001614498935471372552640321605708062050498276126818989323810498324518261313049492858921744283075378245285395535389487131730336077337164163651759268930296023791822088030376907379141936318440619630660935615428675920704337145113245949287928412386425079895592813394161117369056324621895571182334112476137845871886300632791885379822504704439399376424427223140398313327487880110433067964491571317132748769782968239907911144692444029914657457060617093859490806834505489953688486387693998767607109029089246104883517060689370603466477328132062057023276516328573634721374573617293768884420416973250283504987918730875424075209912801748937885172490502966990838621917778049465966344456985426319509492203604021887140384160499325722517372602001703052975771989331028937414186325947805081057547209663526666447103544267262039575149106348734066040867801784041207073003790648989257660767449252665922205763395966363314494767186984453700698745273716456425477561891922731950041756597129679523102363153477503739876165802855718399564524055388786687156893675801805976121426930732076988310324002810514380379557137771898193664931036495510121829217426469308600265464247014406711561936925105245573314948030519940038782187490787480805963058977828598350064265007363808061161668862715407154003086319270655657883939584136525335259907944365300013407827822347604921659091583691091423002009092700526305294472063335437867331928205314049154268122501086458852828425895002219873403875640678521012506008306814217988848101197096665541370003508502691065896534402763050109860855545949606847422403289810342079079244504518052200593018148671511240511860358321962106725716337195140375631105833343036018516513084546137275943031642293520247462269319948082465834733714063186366906129037992778419143201923842654441832871485377095589313970403849261789052761865566163616829112820379456994918000129803922585471762204981467610727344943120864493795178219348833263545173679664014078208244321622943688521705876806016596892611356960784687408402479008892858294653272484959037450808793528421573874520862057744835511597736432839530624570417976623715162103354048535153221091225594415901517368136202694287288899780417570064576278857326507459316871814250443138062208918905940121675273244331223774127210011365983904068709296166115504571965493383770328801470777808953587886992079381106120998384659506769340497258822985137610281849851888339466435048905745700804995499798212149911527408010022400862702113468737315939701648935237688202095073536658283070475575581461403735476897047903533714669060765304718133304868191195399355131074841711943211619386034353428130817777498147636888491506956375140843885374545994778355750606943633355213064565547726090404349108103579862193502556636336639496899817354054770049291614529309428724520025558839647810092675946527870961433374525680035039171021577635404744985275485015044376557870691769306853652702904357577473423524609468224010531913986891238826416501173211042829213906149062633010119270772006864486092557348805551172904576293157673330538844331844411184445642731635281376702389148849652908743411850085770926981833462462055482735920571464756111347058711790635427110730294221123813048585903694317346469967857144631182193872018563766871305950165180335656433140624405442482710433748690418279761421525372266115427771379540214068831911969580751560166680891119148032649496959336760048065138519835179389616681655755600373538870232655134552125448879605984732196743950109281047275980653700989676908405961583500544752310414307033195415425256728266258739158401508928703694425343157536949062310456340794649348803264681353690219716943403241011110159880107391388466947681440851358620740475319803347464638136307792838075381780647067204881954521183007677157934767538176499910404437681031596697346778638943470991860417757276654179258349595993703343750273024705030643163421548046867887286179963752294986768170309952173398767024927425963379711245142810645924830586285182310890609102521994176393077365423140426894302385883077663118853042347032864653612973419210188301341299005759236589591204843695280244535257632380516545647944242821489861453568017564715595746513013803418138890156336325403538180064798161354056429258033825806321801210839141844067615400131926997166912602288967024709553520044151720995499736280240370806899569350510567121044926222035284337213073121608039219712471141743102143310885260799629375176006949708535102901392306202179940230696079514401074986094778059429204632562598243534049517939807903511912200374114952458187738116228643056705144928572312753305195289791979113197297456312926864512982067478671946185067361270145023062698104637097589255442363889574328200706870412047949671160874900032304781565735768416704362939993656870652325524270992748431510614370847804419129626245519157764183498956164477480122895927585636758640949203583703852791884059233946105465578749222773805237492170769016175797190767769340610218058568822643811348542128685228764560658358545792392911056066236587841412882975990267512628620501995060656876995852787956171777845209825651033074496389227440405545928337385397763504437710729966269878363849024710113703277861875940021220084057891294959679228226933347814715567411323448289637660982820293417808787868420393628944327061170725986439896606216041398439129930448866921314521230876716680799159159538016186486924282862449070312185673603645877336894944306654814163384462486511777789571620506085222214005263908588598347069078712992233564260597450506851422966266885331125525981500896187202402393390679652156887685151607395283365526581718663119365723389306863329314495745297667746127820219108549078882975689971327137397172479386838530932283870513501800754201085075625337679304690312744552140546043556342422328142613142709338172771236884717999358287167356002331169729832229932996798485581263682518235703155568739244818075316149934852681834787492033892952181057769028549927735070361147665176280283244967248033881317149254487207890696569424202773656815134578056624218298401976386237781151747349046550471559050250932302709734312574449676829307857726077248709148287685846285828916499826077455552775538334090239283783895643593117914438433317408640860007297552635717002338254167040049969069490284132096697584405628448012721581341393985865986852779465696576497018984366684541830527299714837561576697120875712691895828948598670435840462777451755672848734669099670088342509396628497201340343044934386949506282217370879987587831213699727496509963402575898859067229506265772514125588604118613585816511836496489873405845804663021928500702475236621773609695134222288615366170955193920890920889670218216470210189583502481555376966513217702251390100963084092755519828347233039630388641108564094362113344522505647560544233180110888143516771187405097928685034009352749989416885533073610368743105610468796725693349749123449746354010833153545623836076406430876280517061127531574123575305206314481589632930774565568791990316888065921018657929872000398527080986250551094039649124340043763527106653243326726833764693733467862692538257501173502665114659765627359339369125331066761106996851136537318694931125682275673421804552116536173542419521761690443279528033036622327211102433852586853942096090437137290044179237542903080861661450603177635724274026590433917540637528251310347680270170834281535011046716291935772562832495011336095352989619605998929503138610643684067361716315118568204205345876219460306156888558922365054761443733803858704879334054042901188118266562443499259037755388857233318794211438008481360231910308868189844425122085283247258613667215086973131800341139291662275210778952427503245439099198486811947610171313505327959905704886994690979310570565127853256931343049715432026603667522990696973257837844131685960037574031459823936230262776711018536043294246168682035425559112804761125383786916084725800478232334234859080500117718702778906424042818922875220230396666931356891370768251087080074279863206583412246819350027306318457225531133980840821533959684496840941417425274289612707322788568293668704085665560030579083623792784440050302684821741620167546460603744203306333820549712213290026392068824921574740113897205762238005321818690518983604622657922958861061309457063995666260573979241032425593282752677225659688422232854996906395367528199945832604341414980241215581370042890525054797733052838202114443434854522165442323116201116675013456127547450811805615472714681220028728236419011492074741511678477498140532879617769295072579660569032130791323730944655898588058406966130965031077971642330946739493472970066727597473879587197360919766847634486963705125266049443699930612359945276299661458779971886713391745248721788968952368053534826812797423458624028894471794890648619828222751562091181556953088681355246472015981927844168055744526680961145844549919810731917918762309302264219675166542993764580730755525532088391781695326225436281042868560142339329171376228263523825708229669235210334349277036965375499458012296690808305589211730329646753300959708567660567169652899442155590725137109223594606735495178854514753377732790252726233749873141651315898337196212607283836322566119082747609381241644848535750022195950593042509821984875038480546956213884084178325575230291885952377086856108294114670936983169486258447685671620851279797353510508555410188603597492515293101635294617799996773486772327021999820585691951471845353042324042356793880736641811572895787282808199829031720180502644262273846862004092588139077924859555040254181304095011928120015694140400390734344581068937945690700709095273958135912868454752052139484646049825800621033410050243201163994897727296230796811646241606137774700027535087818636648247973118228029239378010774254006340962282400186396860513531471114944122502708244979231190825517838773403894783107059719401065019872379854550889530728044691596326881576043147147664559652766956178410096959655270486521360341800895682861985479034648335894798123549318382031143942491652330446003452722030513830637135742876982426977111613687600992983799191046569825391169000453476671030924119374329656135632080128425756319765810177700353556148916602002733374087335462064149947606628151508181121443630648099198283870939226865932886565053967886280354361659002480187520116569827937805161301866957256067489797818871332476927463787180216344507070859643571572030367205036983221953884759980432182458938076064401562983949922438739767726082656217370048194698524912748434774311921339988273826842031237664193765235502405310163919578382499392974992174996937226723589417137103798976226040823780565178517564807133586522054715281268410261968906009483765404849325145055851316037402273245374600839740798366952638408683252052109719777579611961060950486426452375322600385305024216598244130511740945958916025896331359493390188203145139701514270458672029019300747181762605037320839119128285937143549731814263246110440955374750901440767606310534727760869153790560259356831270069632509276911118959669869227341536386170788713820880805928899490729430335236796063882481942214407282273143953328041314499708851426296541388491199835741160042681461556511711123095616014812141163779109261726206824404879207848961005317375409923559642824955167573108390707194941990206743707664011489244952464943889229905754635126719184251234642234876570910811610699799497255279487310171366015826211367165086370891916448456649715535451945964307095426053892594483582818001354532639044737631509167331848950248753829904767241426148563362024355477019786889372512992328004478629653408154080758415652504260996613509872138655482637151691821052006127086294677831922559207592929779278506311848495773525557739962075191258797411750377384182518947955117939296488246399044177785903143384900362680561478195913675639139385322954749135287877009193942450692649007310997876239498443000125524815359940437528113132103057735304688058837551117669615468010935261026486438350570647209614993269360176692097833850280220014858327699066981299144226099347908307489208833436587211925034511051209679611819369530039533449642709896535088568259919599403562023923750435969836807338131486989838159598761635646033570220183404866447042754581720514725612341068908027287533650695033766135933451667259068231839184771274691189934095425918117555967837247033076800836543478763353869577964088834805949521610753373306861150446912000316558697623956386536389519376614584857069796674835378748738308932628414697005082957411493448001128797416927661711016386123422656519032430156493109292055361568197587379170253639933081675718126209257103620074573876026951006467893575392112843560518017863509795715430389655156677567021160706446096820975595831645401505244493484911432696551177038925069038892652723648751504197347074698318278410191223081392508955505955841482531010069284728771155190728114249793506303253339889034604060082072884387821802617284976336838673809242610448118439833773086991690718668766878102948485975001313122936940983700219711177710152952401540415675968362374127269584448488619769732283429300016916465912214865598676756899359929042947274185944679106687515644873986867583710151269820985439793452362591765307688674863123772492296570535544754046979883469292275375217852016955796289077902943816791547126847352772347331854782190994491483028099754387105494308965044974839291931304910595075390777353872302400816008665549651666740569953140689385607314113421954313967553455377675465606217805188814230483121333069637895950723958818220871600288637186919181923054660368304990434184285504466455608032167958839775975470788313874128945492558356469611624422480491763964075789740964903918686337966383880407003506757606596234766734960424812466538854074958265795717118952605109126417853538691384011749858541561086803840352309835219685492557538168851132623621129785936207876442142164885543606238725206512989828260221490922915825194848192028268941519564944619335207289283325359027080195305277948889135135181158103668680257167976804376801325622774989428488908849445574809380341040277966801935426171814944666707571172096975003104071143057096505265300311398672864743634133983658787714749451699701951706285648854078239657831613422147342689196570645922454457725773422722938696165144946977889556814677613426802481166279705466659249727622837675395654513252683835429367251635656139313101918391919773129083329654700561804753985874168559370527082903346749845559380771957163066867422185449767149494798375178708495902027550930968291072428012267649698256928737155747580162147454807863297991656235885225073418217197375524038901201759472880881921810338489291637858414809068865594261934946136245628666240307577411777906211289337038913465108539799404164010344611545457297813305025765548841719617236172242427467304568192335056503985407196260341613324220461400392203369428281955165236701217795092526739116778297443751781161358281121724673800419650532656892655833118816613543118002869114590349973204450969084654757399443920752056944926596609622408085948817101105421989912439201124289831855342409850547376347286403877131105717362691982017123316374401171827241927559061020696745433119288906739196878914685902165108719849080524442700596760706388512535868532289611981379516963931667183414315042765555695300691100635566135359663683800254024195229190454970088496077017929526275081455667215327727919284939592899556861543838670006767506935148523321748731336008135546986442506858553859836844271712638389920934046448248601011348634093501534724245932602155284100262415760783594080010452175682877123579602284744898857906356380741698012199279219716361071658441923132990646405468054909704919799239079122063877861738286804276535033878828141199405765837683563492670994396138484980349845793352652204222018515980480583632881412654415254148853325585733133595058383971497677668086954789978624808713301890603927715502572404124445044088531416641433565096009649003747572572110346105808757358292954985575931729107683734704547521812264199300149794450076757573431602028037532174817933455519007896497793532087365298650335816937960690538835912163654817191380317403452875670374260934721833440338173409996166829891371595126628702536471540937896475314041057872938747163188532003246733045684345729846986151410647992226968890733991788449364231019005852934910969063048442786517463933699299067018898307359207409450189291856242702728684411779298976033990459236767411021767009523972564134707785956234056351747773012487544466637150352181044200293678367600628777930746976449699078464903021182374116911993949928511744629969847693896770371469776495501397230685859672609323608947030886144886261175042587652730349914295578407916223242919079415868210970991670990218568932551704404462070517362995694599132926072263497647629272683559933821542858321585749621191723811659727136812945229485336249181904675951319592937121146475523240668246718429945557179064823827316838769233130165342163261370180792368841139869708862537392774676178446918978659061426270523408669078736601922084048554376767324670281869118390060000245247878335131554928723767603159018868289279454492238586798586564994640823119904451491706493438896523223683005753735863169877808756713217134030683481914217841008280699205359718440830151164616208654312577924811109658223350235157233858843142680751716753072259974129779119730771245941973213550052339255724350648165375333398382065619730550577714930536882813615051413344863212104144314454414898567508527032369659693891376671017270002261861951317697244729205275495235287845615371693114498732773610690407213020165913639234468939156193879204764689701405309919303443112836957498942061969869727143112351190739672006815156635515708719164370860362823085861001039099219608748156583341531985774794616582814351483176698218355770287241869534793911927354533790053138123387660491304462243862093605865722981263107009607613211620918351409176443698364911286367774634970945742683890737792417932453165065178122953779673046891636902032789113472419576986701269676670172101385356625934410059619980424572146472535356112326501478297121872093435966378369349861448353853100477947631719692877612966738465522639011581888456074570337494281904946373394805089160943193579874176914501587783627389182929736895691448333552644845226174568109589383677871360705463197715506651956729687354228063538634150215977321564721862558995858362816228621713841464020996398652332653664250162285926485611006600314636157395100461787268844137149450502369532320924013515408148450116500606217834568645563818957027809540136569342244340680759710393015853357237202767225860348306854367834932829001349896491862183788109324368207430281779768400460090022225626625637339082005875954651522821994614732011451869661673495958159491942321738185371430843756141516552587951871980016604763563479621324140652866385149895789668334148616648934517207321546576234192500857268538090015276175790630953968215312372020206703940265416030963124648752596867891333715306100577607764891100558645007913697932577640693617495620898751582718595635968871651071526696970341490016573578074020564665530366167083315097678076063190552445473047350756491866438465101812316747730816252116180624528663174180533978262401497729449916962966056937805718181856336394090457249925052816174818376651844646134204368406187877871858771809827303082633364739318726067135090362135962738994142508753224976258146612756366198874316837888805503737148433069094848060628915973382014395557766512647699045518284349030463338965008889995686465551031529524026490790971176587975438526667705184643330776045521534163752648862733933836842713406820978395268661962201736302453685166334917140467942617065181671579291783795927037731028763178207773490405134187371529389360658822721679297265060714005179085564200411075072408279386981650702347971066637150247893096706583488317868114801479427317654332743273982678995826653633127560149093118211928974532846767209946239678469244385525913987677849936743425067511872555949586169431724579320381443444585452927368083052923956883488793152544419460993546221407631698069933389155674545000951558662384863686697094924299956987747176374786367920135730802826758160111392577241500921428870034913683399128516826694189704637619543362958795982415032138096441317377724896994928702043367584875967001160910028713914279449462222893616373848846103872940489523428734796766001286925343644562291374905568163175327980902756629560912988539114259652310785819123459470786602345829987040670824441035918428443360828779906851324582683584120260306018330454552006390607352240300585060543624023156470516337515800868361652394443687880689606660426097144494628038998705238988524413804478905483992365626017079148747467618810149163844374813677525861005059710874148742617698685095263677122648413213336429525065074076507485985964734370945262130326762252326901768863490899369281760270682707467686761629511437820923384901776070761533197735548124784942719998982831806702593943192836930406060172427161730170947953622687616114359627727453558010003505944388192168519377704686498530811468746251878048910038343478857875490979199677509515864375403659976269187207482664260614877369821130925656974500150447107985986824420496259308235557027440163072049531839001677130771522675472776711981067856834648599596881238669480207328107885381450930475068575936555690126166166555629835677094016176877616581281799356350720687786563851242140001219212721924852324858738119044476134194893848013980108837903531720283126165334055922709423004035454482873348148964619368373420139573215604849804414355670521070624691748042853273856612898737961358475919676303825578263830410081124875454392755532724879170171449839012446179730136326296209475069086207433924124654432715170823459199130550016995579957982023477303928193124364956632448920786468534074713185585401880198373102148194880295024295176959982528362794407058074209943215092542556624014483839693493231782997565491789375673105009647281270631371045489708517818126172979425353868112956480513443375786992726850040572441449715024583913602974812966276771221665500001451519376768263344892511835186911257595407272202299125296793800953229491236831211045584776189531858676178510595704783036873896720162568047485922930275124583983993908354430483411456845849544578849496652752867705208149911577815166329965812925005828389337941318840603539048392320797101223804790455686087623611036939632845412285552222505627289844613473390901394322486411891041332365042892961426892002862489128919387575739628384413496478711940397862998969762036824679379767984228932075801036123156441252908649581065566136933281018729625595344623534818530975444381770519937647090789114749197909115121233963220762267756492224640994942773055698295913598965860425546340868241413980390821887957043160530695268362556949726162729323075657158742942284660175819687032368403641727328725007633648477918880122544398486694417145646547773784501444443844450190944619698419572945101023353949553136479739215291133560213605358022549127075244589764970647955722519326894713250734203423350670540808210908888245076322100556779503534781463242062949734058076136006195835730748390573730127013874385074629905176240533156080759557375295816363879379130243050633740775406218795510130714486465449232393769582894767570336073719371967377655005109957768624802499597180285920167991119675685131051202448287106949553843641127118251190541273341582198580289335547526563397572526260829152730757601887097148192194721024222789659507216540826601768647184349096309258177811426837805295362244923317358512974161414115854232154971170060540331709663237602203954192422472774933153810602876104657549863472150405640718714116821573114156388851046440814563358199905032177240176134020969370984942752489692795151641982693568921237683263966994188074553267372440237835690959312438732565039590387814972322799464334891602825985082542731219524777135717826496483638282268748586740834242505396595493426786887569748174359130975523655899868674778404431620221498925254321539164143048557772002429359451936573476126694987259884243607433480622337398523500464296354693818252735036766640414217974315508679243155996141092992775749301725041378758873379930811187758593189258142380756918426271706749458606669366591495466165207391467800036225482622554877526272888031944925007336026251776045052090693201031856461485259747962028804591628298464092672122469307415434019635474892480429303758205658879896069917686430753359121939326885072319823172873858873517799570425512251248785800323159887649328863314050462952641939159839387806480260476130858511685057051484718792277564687260596389112421792131310980198428474852051100162579568578221318582807689024134310988738266041569405086471477885043247830165128369246227585443857801750721094680945988248686594536507329996386838979760298293780224816607272537709477179697393843069208597515297486989708320180474885889200129439723802581162138270001328907753987412498654561753821124413588375261105320639612250153044118192159227744320787601442366283612774381343892755217923573283725770931355587157974934895372869265577276600141884443657676750249483433071831014141410140847985413213031373800360304058856428570555161286756306866342161380283350436579587748935222255528881394775240894898263567387186679877085175194523597145901049496748037798999927130988875992695991353501334219329639437233008265592097431172995488949943207612604555642455074815584670465425199544576611071191108261628062080537019072770009856597290447399075468298013872025187773931723294006664341711277561455134349306251374323973106484802496602154342759466090086133859743821373612231813724029677510681797435539590239242862866190198970100480570011938115328585118621261201973432702512081209248439474481457271942577171423736764031064380230708652239950667100454363324177908925139428481895461499734719455113998983315942971492623132557636912615934479606077728214649492022424037614682078642825769782025489190015465002145968026534902959863635533652782589995765935856803148284340082039497025581219458674417798792746280735388316825808518721449351063204563467854293874529293564237684704561566978275990671040377312903500761181384311083330632636166804515409221302778861049325879195080841474237330947617331776369587135824211579330315479739875665897673357086685834522569532239746486828762907258583444435627092814819022262627505175365244926490334760819163444956405489237811246239059397155113670747448425935360194718754385750912948724659873640020609718139931411677854203229203155182681321247320823152699350631362471754928258584144849414601442922245091299122026113960071326300519694845796527717684638761362130238084902122561786640692127315670460507580608990152051860408032858936782753153506147683496252131786824440071497100202828990088167372089300659659739225403224787053894290452466979789444095136708277337261109809261523059467302348641548750807237569359043708786593061017361037418141933410268627789835374094500425564501514236879519494987367863154732852527529640853855068726050637165402861270117777650638690510511066992515888444991724066025868794190419103764620105379251162558111198323142274528757591162057166224828487677018019590920462783270736950927133609499279863133553190396078414635524130271413923876522392701252573641888016979226402973465016407088165200252572131050005648696248425223908124885447125233516069667579795278036358517562242285230554600203453951485571284574896703394052388290565658554392024334058964219825230725066666895177530882829506682109533497926312055350646518630076540330178059009542189146106687675571305580030119889705381562281779408285959106411910476338797865836764878818808508806137898841489690372458170709511373902464587631953824856031244032148902470678961036127284512091253979989143800597193596314222099590316162202332336916031543550878912083038347758300360823208386370210623812651834841663240319432080587665164558521767968858200857238659882075891685030921073434843572497203565334901424271325450094705221357749641457832501138867571815405528440118444567215109774164575107866065587699492886602741774529239175161408085463088497006794056058679413006381654109047339169657735092843424808835477381541156091891787910768977714856081929911922430061764602804477411289856836520820701882115612865794850120770425960476406272734551374737658511341665699182532858165959330770368448052189509027273030623792663589801077853285626972544117299278770228371512126284990020338684179781742420153847229377315566112706349944615406799947232636825259838924264751515653700166349253828347712704569685079919601885860756177554850550244744167846055889334493632549828858912265103729177428221464293725204074959765430212565961197956047263596066837979934321162231216574923498857986779509841506414903595253229317391400764102760331930593615257087909369612141683532932795734809682942254532453060034998352420155600104112856852238158502088266344349225229237492511884945851919002217704096808774957408361497542116706588600891814477189727197093441723260943500440743302586912583085044684680207201075107779036984810084315849211437529398434029166068532957406105894589136426870611194617361984477268570622444813652445269794845756091779359861841222388070141183021516770397472255556816821167026566383612909798731905961762968692934175427276096615009365165087265620106182323142939455655008474112713560397888770262847820382549129303882691231346825963382695579663400474740612742683577057340344658483421574698436157837013097828461244650879818788634811697801892498164271160158334922535408236778450854596036405489451119557266945812491131202088877188809295749839868806226956575826200849495277092526687955834927141039012625141740328768662833804572470728535591159675515486016447964418059105434129132547355063961450003902127208932196190396258608081034956734409602590635881825676354512352923519572498579184830508748879048638316558513255871614026943624216129677275126883806106538176502302111457685533749678973950934261561698108084527317068689876270671896821874478589567643902553390506125979463201867114652303659424566024407020974000008475936390787834211573533141560199470732761535433392824820971886201062959318072083757007321024703384074784653486151701796583067607260291742352098884512880764456420139072542973888980421469321822292234956927343981735653232877688230412240703679852430580688293310470684816795290877242273357732421971517352837297668506488894337655481714592006193924352300563335065377932222184295024741491797589621592837342954384718042790510710089948146974815661168127084393436573660571340222763196564970919048706893172105696332652133304397864039494909692660254589031006686626843564792973263633029527930917014734284972083248322124603707209949433099906504889007077219078786632438550576487266972713555246392466719425023111860816807063470391937676633737217078009836615020394710642830613770329050888587022822006743870586759156062310170509276209061684252079343024275933737120461039546716666316297237507787613384350260224926760577878110732539538818606496213097795049870359006478397777745755660924758684905093608663441794385643666947691583888790600008305481207938649966322004656260508414361387184855255100137825366257502599977949058913500520955438912697562152968291687841065878172125484996247298384828944528413824744121862680372915275255784157376959030414365878328418919105394852766464937493862875140695292080008667624462000450419783364156207681839314064534973940663457757995052976834521519497057779320345787913785232822551691621506853686816058429714893743296922314951244069392632892759204260202075937286678558448560121634284005549546148310064329422690658660901890834389777423588890006996886867976736212695794738146686425404232897036427978248636736006165787385495405076449174160946115358282153748635163635922729937459565589994761807292224092760379763409250921227649495497540280831255911169695262407268254072857031686496706169428590776409145520475146199496860242820145400869070779649339772151597057283113314627761732133432832574770540553245291279573458957382188080920353044228740648568843549331826713903185977190529040139171303049640242702897934674211527953084533744743761497292150161040580811107071946486001781166323982788496785140698667764570662488121129338268277221300821099321292329162178514962925344095717284624632185089466112764398909039609908093564184296666928308966758712926773053276765687292429572018591706865285586824206698244836319326547828168703902208135954905136024183963861406386964102167004190731570431921523423814459662292100496224175228948651667047970077788730799552122378796575430467410162448659488295992537916522095248075004513129657968739867536572863936389143578013112822908990882656629280882361939096022970955133627675860463390681315730628961924833987468448533504675941938635751511451799967194701920187185177412169854317876766166923478382907375155337799495958053561488851830881147062475810626095772109485127452724686949785774127736831948374287630691705994067597630768024836565753886879000994567255158128401716556801033987161970838755734414453992075013185162047777186958524082771202079707884044722854646292733759893975562131782219861671811751639100481371108441116916446323342709236265266133826774644659956496787236950065154970767563188433131525185373542031764502564982876679346781313272771471521076071286843902653960245044821214759661192642505893340186307104872430340686192111386867427450061844056914938658029734225450705980779150002171226868984145403747235620596609364614163751108534580131648877405051511918152678688270040867828922578660390355960847190653108661240298485265208044041254891970571129236547210729725559498322192864654578123950756836457603681644613483446005490849691377258316200180787571020649076302309854163267483375670471288562447429071977029984833545319941538533306663196288362128674863156277366904333720083321042067743531803089886244646590716515049889009612822637493820239614222649633532034321421426647697487490224471264602558968239890340760007422500143704800594408690572720707712136399557561211832600891649296416557723842447005560180146808726451893565240170060770012029052834146759901682566064911041170036005970492859138345084634300699112162134251324855630686671205619375905173108937138837698003830652972341000595348387952949157900940588474228113345299321934300115948500186329347403487155452784958779568416329152741904987321680420833616016312028449271025417775628751860944844168134811574235320751400356194510553693684835455057785718055107093641303907965977930684505203103270556427780111055335401605393928701005270831795643373045246031928154325707493736138721149612461365571082785851244345787178595586343466079245057982113143542032107217435083051564667398340756084017842263004765315900056184704286127142198593432917789163534843822562128169380273163802595949450593689507892322027071782958479669450898785715015481212576110786807707313289635902909290017919366909343707113191554045612690674133471200211287527861267967796385802015969225921390839701235603211229523659186711734952556644346238501696470060515397862871013291731485266356921498544196552486839905615708782455229996567878387905741188172515392042250848513563780353901929482930816409900670893622405955609914478749346612324732512940755197616344175117498824464907649566271200421087492984841585688503891576093020331849809706811416367907283151933729950060805322405663007570351891054827730938038996659588548689196018937469657428621575411558064910079571960052023502504361054931536196734263762524735375779049107685666631056594541658408889480892411388589851979117293471641529861573672093976156769327392770134595414413673376496543371186453714933130664569869122290565244110677883797103803594287886693340158481403825120677043527263481742126171431606827412810146075398573666343171809623818210798301786894455569809890915440708607144194815940102237420004760663666937228100859978203368536269946172999582813864317141967975939207763958787884737011471559315997927436408858026593934026276637228136704263809298962103700769868137807047912742416856482621200576020304415919937587793108322040697168662887033051908438065124537022175688789252159932222421864590400840454789792683262179715836267078843181426300583432876000430331081822205707446378563137374986660479025740984335898233211636336148038512694411209347364493896228310809934719150255789972074182591963954365892042522319139522807306571011155243914685121663390413104878571457133141029351160619589052225787940767464998828928307843614745849008737269157806889108354200095750480733658088397268169409040530866265384293872262954654698405788823337325230071165257860288403069016368740046252318481865784844680243090143466283255956722626803040890781719199786256031123334998642445484478518559285462816884072231840297205527767153953125821558113252542647631548784431697859837446223448669494884745791144729931730362995762074367042506852022768295836545966049645874827790220545142287896060057351026911132207072662815222565367657281808732102456874769452358843629993595116786854214163733661088830219660013726823363795864685914639558169623458998256808695739609890703844347868942815379726799092170551362499870857202343695453366794996922040819825048401719490520299472059967157776216303204669399648103008321381092154043768634304685000136871182727459741531586867447720144429206839832570820212882362303008525948867232202433709622325851695581295557226545707273032843517065441595364092598550193076496142943414748190861415645512285822330264735268621965937680555616131830815485005963639659099508818979502168772770788524796361997396176258908037093386576204615569877944842830699754972733627389206065931922823173926105107349872389578104825383343189688451885847810921910947737013515621111439763961812459296168973762755390405657998023518693185697974820255458163832573730775127902593169714803801182884252927554258463443980962074425558650310987303251930238786974162896646173200694850669678588199606639828110313454253318951202541417812462376896715460594448036369629372861837848460149566373903066762135938285121199204084156681597479296318828022028074948792186800449310562350958090061331488478458045573067688516770018444991949113779769715236397331696159129515763305797974428601357311637750671677929981812823272388985235106428650805319737971839464543744243912066283020284913766802910630999816311603888747270662940124307173601426642247687430213289065750380389284212457470230174241075821518227866371234518693948585208052527000616606419689984981295545522416920802679283105535582956549010723992902035600999954773397276831305866973622716245083444196531651353548325497155789925648512504952738752174403757393605257588578412376454449531169261549338528669326691987047524222411886632627833770736365593586594185569789044618433133045114918719085175132761444387635711285216274228151928051948544234396469227657829921215686530869659370942241062903951894350425022412093024447729174430794100146322252525854586013481988994547309861271242403433652711024075444840643454442573508575182049698451456356167179919200046106172316056030496677070195522418330646671843295258125824926936397544675964057433761129033429097677448980007266962551106607869554273339543328178233945419441742055536208799227853578349305465316930170668067435745669105713342775040718813472478623742952537611921134726674851852851277833208752284829537883045253065258715823011826828639905773921703717534836761909648263248468458799913279817207372250802904101903734399748460293210744859176086360258681974849632886701472863610683267835423621207174136713555661605107278368141975959926297832795921086190904048608851574683312132510873469340708123169560176044387069068384501832572260090525287858448954507257281532217438504357477732958568771485604689424259209911221648065762960382777962443709529625781660057948041956251774173575515360632791733715090026183670263157351182246730699413907404560189712551949113597716793813463049649252411102901613416315946651650511618795120996939560281045148940748576243334435885003686265973796951427772284348132836638582472316603677877755629542034928057623560309666811050743209979412208730474255241295247249519117812226025871697585927931423557475138732977117587405112324093918193328353143838938502399078284437073893503545279041495311196349313655087029453190806728194121118578694818367527355965642559294954969938927094558707673417439806766866728845812253647590265798439007803407645821195093791522791298183587855696853451400419010280560618407999234805617845262569011410787789639880389953453046009985062150783262857005165423240137409787433298473160319897024179051447340205038944416875306310796057675177519238287939751259699243656939884053447807001982479829403221509682678649546292509378143386133255963737109650885284835265678240539338907438144219128337574603492320179229190918601293041508413965657132206184961907524426496907281026290109623268128901209766962628839244416492466063790069671204468092125647277357181318687999498037970675465404211679433893101362379919010806175577019527094283419221373911939320243403185435204638271063353541796382279884291383811186974175975337415481237181893865105193285420840361554944581469172733830859155998160525576591030473934613433572343763148326974002472668059116259821433131092094801979427608619365086633568271733919741961899702667958587809033742199068478438716192679666395873295072134234329251725375817604336832849106589283501846488380936171807327413637414259330289508460220570481557816550161592476681178457757126644898899567427753669813051146257775224909321291164336272000237917210731475951092640369436007017635793962865829131485457265257394549592419378368050934650301239168641641158158669094208496904439416753748009322985527566807415119556773698083972932132462229568330702982783672455389025608924121900722514189453703540691279111733948595348375061022504906232738661986070439911184390778404694722678854959109620601037707520533727472725159515618326207956411592080222779146124490250428568577989685231929570525042748515864491262903405807596338383547379448232749676882981640493906276489462893988145243142304756486957012212496674836967480493896905495636144810906665702589516420470124923587770914684278329427403113309492110029746065216782411337317259868920395691249224097301465413871579423052142725250752052531382327332515288491896912539854256754068578084151793666911040053207155007430694388367480549593149330141575084333614722477563203802599776783794662221339207417606844908080843691423402187603979754791976252097512000537929858052070946973841475204137247312848188289102368750710833533040917992207393105113823951540868322379704134464716146693422416123683484380222860038953754230439283692850449980166483307488341469177856566109575874451583343654173698830893581176536309675414776552800426782692306101911180472953217787210547548979868715454666850836904523989844067432173131604004200328932656891310871095993676047668840163640050993623601638746968258427543153088413516891898247630126807788436571794291348803763591153884303212923882666690274438677030147757748687597973304827982607179190675305243205146654313066710071512142563255214304866127755486789872502387792088511724314628455175535722251349802839934169881916128242236775242446029727657902303014162179531051721695780755706886748618670447374193719057644778640038107574160278940900524697147109183513576547689840419111249861648341882831943828320358348562067496054656067504785892878586560434124737607747942683567399248187800859211001320672148940654574626175349836495329279852346241808372182654246356534200928904194054490218396265344061955573953283648038902579973059150697841586900176785051779072729731294820125392916544525894982577869381099745354569520159291445134466156091380109122206857237054336238442603606264082856340052370848198532783259768700454880273127619769889746182803817740759581895445386821928325669326524335964804654187063466720572059827559489233036028282286500228840514428129053214141089469049583760026834720752388537310489172102268787972828215287588846093010686998404013668191179790061988566955783240874788458924439033566764052361625582381256566959050077133028146793340643887417266008434354524612705321078066299200845652502376662396991159760454107222653669201168921704056143679158529324521748978816792114013714899122525813897150799287368621863913204633076152693639912232039824205618909489462457995224600075772679106016710764513511380308599855558217076709163577175353514118333470817761261363772012250311273635303063354221974205698750833406564919042963270989949687815682392829557604641082647226144129453820848158207444353051754454338348911596428437644496035969238852358781095863921578074163419880285203810457277940131613872397693243483907885136828942822999422826162048773537953738448420684874742485022353862659822357703640276001358861197979242709499352114698106455062357092508853548790721679867673257101888650926443837256065448163744876963668830453979522884569382196322614934928748855180939926181362505111803995253297043645968098848509126282314275419035778865013151569126829873674636944730071166899905083584920545383697198844475148190021972106292790691210019444492927473678746644908680165008471475184055708079216063332344507086103680339661406665224030215635038141653822334547002307703924162686360688558935986509909396305617911732839240766919076819605418426945326634507002696058752924373674182227929908813407380481284053600168207842876931179435046937879460448706795707250881247901388969017553439304623269686379330544680752790778787479722261329319652032668381554575923991760815480069174288250503852394445649582756521480887937293321430416990473324630832498358455948931840240218172228645430990420308082547041755757448743905539019447964168642227019665283598903221744480079257496535724899973958553300528535037592531997399043200465276200350539599942415149051802802761638931576915753254556290589139800299723985388920242376757011773168868891359870740206366543787099960944852468909286827381118643893680840541828070248037378870923040444613407012017868143129851835154655200530672727599590677558026858146334865415147433712131723313330261118701311163603855799771032178348433995729889468671349491698829735854615954463797421469426124751459751984587155057300838619855324374140432918632936742309161749538003281425071176811106509533252431504557225875242933342146359749236520084883612251417226439862101232548868312657188452366263093434985371672055018204987712753740464983060145516911330466861844948492663041565386526804921150838784717193860448199536481254114981145032816610875503009539327348892930632776285391931345754219449923176957446867513445655973583745961106282688022037721132365326677953328774312182967271705310401515921145909959561714262635470353410845569365351283272107667853872342827671104943619018993574919279824641864214274899343754334706988347507739592974831647994319123452061688286750484734534062598766522593830496303823160753975775758455508687153400735644723180611830547262457363851675744608344314648884958826880252511377242635914500918848330683960188434899510878384450558071764685516467427120197310978996335622348635952566237462981424145551079592088188233871260169317153665609190898928997210538607107085543669860880573104458222465404732676000568665385560285629685445613799106289190786041577330538874823046912215877497371639806198498474141899530762935887945861295365684266935606233680139028210245249434250052830476216545356433161014872957913222747437555324878651198660912680614354073998789109000063053316814876293146850183551985557325568964788931195358917106362662795780729687043813883736211616740817754526508119442813314821871797580409539875449211243472130501357461244286636708392638151541292704505152358164374992632732329761762009733614403634663160715259141111873027162224961363083896170189679466147593356910866880921422274435862704395189868082712584623666911369145865243708733906192545631138988296561513135204895209959998988218305569175468186238121892494410323795399587534467357077737527987647606176037554606430601444092847627544691757413741155696802525452854222831266312822589915269271893041661191271806882836769607948349385078611003762121421966363645093826341652380300330873548454154713938500917269100199122216383732826677189470835322271539431872479663683790013045247940672312718059951703334907248355591140094458012005298959799104841152049668643473456363487179162178928507888859490717991689608572978305564500575889278127751325988772589142463337275410991870966087980154995268436589587925570468374486323322893027819513885119281382094142013418001759924640116707706943764634734368564972516693221286793576200698132301679051332741838029982736317604111245647451890631206577729603042471695641510426364769648177702406945343058671364746536269036984392662326376345581851410169119191314574777925895585208855937792131914742013377782792975146426172692470120106246146580242705556536995897232413220181256914670634230476107333028213868507920863559847404983236421813904651683143274954095103329286700745196418024571774033009938781786546676225741403927129924175709056127837871898673739899705694406679297835805081007269424474290342588659704884297903901927826680501993159959443592500426112623876365597522042737593329133488375657090289062096794466935564478321990530118071050242877917058306443949735771453607393262951830576741690263035865886488331494715809133563127497321271973142758906706912002132103289982044352655749843048269279166273239222739934207998705242083811933391079178330618718917411822528060620082764875456376065628678687411613520098744492653308684745267175201115063128927750907768872372442607569673081520651378820628195360608756791713269135876927202714084523767750215272277005126851736545292836015524052491810724489440075254178067025889073541787213372264289250243952599880242422792208376651910609668730982413179422589719342636671975160997753876411741768606623167757801406223043912777785094291663419146400333919239403863169746469778673560962034840753299821604337849201665144735474004517775933932718123466797367190268971268378093488891028788480467697728971100278009077618817171335712104085937750822969821272478951592658821445729852626594466878765987531880071353559245449355404836401917149797507082030608089155868835094918524444989979915945394752145186296905247750518796491807436680128293003511978949681358242173985574660028133375791037734339697233896971898470179695119237277638734267722613499227609633465846329239199003103197508566781125827069868727434607382476411145766469599978276666894764878485810917174812933072289344731672600666755620880922333975419192897222210595062621370072417648536242054835723336894464322946042105680918924037413758684781387956294255530700698738349989796650649508634277448210593652545158203273999492987327297788768942951662319975031665706081742076403180211730986653915808672477112616468447565835101314599637190743466366416565863731137093963319967851197928030644782460997994432812297661580464030323850307222896345734307706663101020123270152103244934417525761319532973830708641545733355118495049072728035281658701890970543073243741794883702306483576771115340563484946337396152730880258375976779307003125931106162111026493335598308608061484892074955807002218055271988118161321345469721606815019281507792615830310049066397898834080314216969373614628694559714955422337068460361970952848942315260426708743496561459111739469622120930945258978307298942977945855967153656409787973546609025885178611313785876918243266293758067217758423282925329810985066557997238045684086492937921762656616076731640216448315981696145637190568701631713068570194543953689291814299762516601147164224876463054412317359491731687966545848730656930615558703592810177739231664395654750614499964538193507241376425232228546593532523463835392394291420350367651610919703435953241295192611986623548099309961131269229696275387228225013094403135256619903031771700805948564213354994947719999445856419257461441846965738850886466023992915329469330731193886796829138502046874551143317302291790036893302411810484692010130481018252430664530450371749991388560738400300516946241352208139700269808072163837753023856256730679531120288611706640775715703327765119249464554502865090438631187551040032336173646972932802013062662838693912485389952988192587542999968581229514254788076332422989266835911876918935479181664842231648029260603727370700605809824355478983587503508841510581253904607975279916985364168889434885072558708181212897412841579097659738125292880306500304044418280506817575214376636672151288656248641072482103277787686500963000894941680941955821713545894188993328173110111453047735354474011070921785977768324597192689066271960055032000441818408365520813931687504405374377811884497051877914201447507258253222902086560944784779434200441595068342271753812840177064130741627077663496674544559913747337353798268731802040967009907701246617105792694485508306213831234972354900411073853087982290462940986736895302132892567711563262260050492409957847854415587729770086440324985767435743726877143851637242409790020943109779244726765529872807365850401226093632261043114763108566102341003256170328738153751597223805937885163316094483153350329340799341292748718909438110627221333138877959808735422480081710251685209101216043740542301807724722911196892763724692736563828176603123175603407261509726958091607118288271115225971884487258548541004771287246701572783060252807887253260265431657343490328048696780681276907588117345643172794755045895949162197814974217064217892104729575273638765082801116131806970348165347955735958863415955869739759871346717229280842528530028255740606728841626821083338536128029371522523418659068312043193350178855647389624415646642230178627527408197598147989610920108268871401527822346392494317687393240948656664983977033122443909995065563901151196176160967268531150381576578666040914327018646028968264025211204309021071689435761932984696307665083585897350229848665304541478167244146253282553863987632451588007789970463748062067876175964512268871219179688456621834678893221319741043726199130991460840519523774518089685200104777363704893702171944004186506551944572717487244498886415477770374403836719646491060159023151308753264886806637308800178577075850570443479214030438805382826374230346697621091338765908016420215324120725761803238100378482694106859931156490452793305691218098683703806946637868722428450092571467460231414583778660964054854001843629662820865507955415835810626031618591694304444890079575126419525836384113754955180832868982275710128539854434670649931310845607856476753488320193527518213974988375379574208734640081842299005903134099554076890250417057979465352261208399347731428911254228573407234216126505470483184606916503403528119090493740523651010877293981789441513725917064900054307720446768853663391428806651034043118003194728178980372981563965283667055020015124685341576086430230377983202280877225225040923361683502006286529174211431344346781430277051130424520346642443197412025072390928150867553048765787345142254832985676438779387521393049411621158162535172925259141453812450992091307293757020817656690178840910502326144637451012046862483013443830875074472431302548352439294896387315101686969032886836073558826265642401509371006946252455957815299676054604485487436118983925641350364732245578109252168854362595184272998393404838145294104001764828465584779910143810028047998395813761477939059710998598355986930884408657256894756364908317041567857230287941819774264407586292309054104074319238851976254369250640273601600759344460720558051711149876844079458863394581396009999293618730003328878876846770413442569753975623278672868459604968604060684826679811255835202102675083658392644481596937849474180408958406772198832333753473689096169842512076223939011958962351433191182399134481280043982327070011486426098036169635087174795429828890734670405917490347056673295975230585297149814032877514008943080439085890373989027585249173859872285921411236665589600764304346806755922042956125765508170051460925598314058346730756831100689078969321081382856792418779074039381465845257103697443668505156600131987167360871607248875272018404536067123520536057959023613715348351227959345217826203113814939275146618358850670360028911614453978092470691297742453876566429096895088041687039112042543931544015589599861638350555265630618779779593596297826350851721679264641456805873002815813298852609011461780678497950619367732288609190438364927653435940636192167114884108680997456161375448974334658480539635152205928254016999499145165008554741289245563988466748976003525554542906074583389213329877774229840146764233512208773654158161532274327503635556189929972541262982550729465854795014736535639423733140059926948798885693175892473565955977508386369279601225863782697803376702394986648386480223034277381754631298830583905932513623080698595975237045142494784893270361483607628535611539657877937240510363386672458235917807099102694554913914541007428440953297443007198070973463387006082583323764963081630039172789538500276612297836514675308246738736566536697683594374128867736947722925425530757577548843227051026911599272265026981954057170748925102307699701180252291581045684503132518784776639021948332540259146437450100341941872849024843576144144413582707508884335499070668097939138844145415908042373097683800771734470873731379117521730753350364730482721852546343479937088903532366196345640654725389363969642121391082964955531462552761148789906060180504289151490193419174583991384976222289407033597608892074603397864336991931773746709430667871388550668558831039998574951298830454294609357796973490842259476706740172406891185433620936673134403627213501774179152657196239967538040660834550595360822404457099414507312760239314572402587555855326736984318908556543942985574541068131627494004775725159186320378464957481145663219838739375834986487178033208906344620800180297626554718440506663445312957761522546769631054445040584783423140770785896082612090188674330557711603585472247739585428438084247485424860551403066802471365603639958574020944133006725931320039874265740935106986451265288719118593615872199962106009776783155058926297348162105478809066327327046734451135679766845775722179480575721897844597181837606904898842830224282067097189312150298636026726681839120659524386784389311496772489163319534015754355757499752143513738705856663323088373065964897174988264088457434250028665460056053102179894651513179870563884352923336962179670152718841639187224494329622709918210488598519168041237022587652217671698510947038393332736688417655799002740497870705067904548459272800020090168694428118415842637246475946057522831632563340602298729240664184855638987459093081521394510057447443866075171653170797829994508871774002923916326162386922284434013872379010615946548930124397942070123307305343484730079792800901161146527366272834401636089261470901201949168634234472060534080667128148921032393160191478371175028180129063703854486750226093037494283318707190152293270454628155310290197945360959493485608562942016721145436777036163706381582739755868572360185653323962482387313294833241909082091488462896774017437641028721591320665142917362631290505181165440350303023806439614498621036744899966218787938939326106958782412047576653871753577272693714425113343680144761046645670799652848045139521859302401999920866694828829542667770977934092741504390169242705122076987210538818615401071179916292863458286022554643643901002086001418590285957625127369465038958507991004967657606365411814383830898964762263995805694329792078024214965180709480683312855965681314386352017268437282085069588938084070334756217670545851216199296802193987343105085285586630380206640857859070192542759818246170866758915442766672030750798364791020377275882030606399915829365487223582745941067792763748379828922253095681920972609041882917904528038776331214575618096957425895631303786325892970249024636471219522812258738809698198402635185298962850381681526978441315899810767974368274320948704657282997191795032039808649927111208985410867476993397794230088968394768671779177066787350048882756729648335727884099068173080967167862557942259078554617427246176748785893679636541990661969127207051080824589808790973216846215972867774409188089367365409483514174448621714764844917275024900408968525789126402144128416133561367218213614450589189363405369303838040840266122467399391361964369807486901377986103399889461583456032554114256180565912868967926714821612606052032171870593906572673263772097342088774670576864483355949146235527845380081560593123573831864479754591016748161370593256434710651972184135570637414561852679175369857932971780723132796394988009250262748290078184372082247008281126115574410204867740574214374552339476226055836354260628004741142124736245552498690781877612801013058476824892716115626594504362726913041603249850653268947697886350751781883145217195125117769624708405797596418065744549454698978552674762099961597225991696579496631853268311914850672245436564016764241522711273120558254169074489709174942387899434253544210371113355443588337315852584528872766191850166992512540486397435689468691021465524485892536738921881810245791422250279963012721988842335669597188546591977183683949131440841507473171468667263087960487717797461845841080651270307519923452978162384243567950930663306034830038249930307745118552075482390876065268594462997646192659409952288426113718247519373063423939870404660944981347019148647610063875092311183359587662516572030017197088316350065822770287157310910793472175253192991678815152312060069707575688955016541095087735259921356832865659825381198598340642412210223520525860305125921354966586138910258945930700730808567124982169754571383942333043883038118179066601237565355091613261294007484314979084047098792599786049380840062726034569698312191094653870449158880686463944516571447974093532542817825270034609956214320689032648525756623044152690955091964532725650088525151903528091439454068370172216895478442127931015022970999152903551244148671923686143884225831272570089010933834589934283384325212680505305402657901848717178240837491171650428882572336643208833887121230582021409528931975364854491567833791658256426380353302203291641889304564714148665117812357548729278548324877228908344996055921418121897887715342070858720379586212232098915667147742965634262967242212090414790339255811534402786191411389897356414558478377152898914191754150600772618830165491128210793431201311141048665319735271820318254213252226745246371340880937349309172589830420401037688143174898137608780897290289249159577598220341010538774924276609362075818170292593791924225993303392588103195737418919252287671284601101972175521467681493274511074967251911352156260264347472008431531865350992484576059941761292881871437526619863934888782061450760491301950540635582458912925362447490948319315634704124121984102463163342604213996418650214363546315068301671996193158778431778732027644429534604450142072563183917049748625306293612523662141820976600653466649283979209061089413983908340701809565568952043201376403278749702620880838319423978049636302163626603786915033509081640597742692883660078660865714433205351279108988701545290827886489501711237062203460661159548981457309867737213497788601345733317743362589970908032169082673570358753219204810084017452292008773704943366329491963243136472675951687151985495858327482682237103296631488833100759334856253579694411576767579132392619899072392185247123439618007482012890577876707680606811040576478265872865305461654264453615680067475793663799550720092768984092232465322574316098438910119844375149389321849622544396395546555506974609593979353982573815522945129788640069718185119858353051616286260525260002043733400400492149144525010213668335819397644614484497167954313238089973764367548943082284933728609725947556619113189730573576911569266117980223497564300013976071497797753238235845639594431952861909465085146057152829877022405663765674092227324012548207269270095003209512791479409344805109276169705984098465170394627648451860445517242369294603595100595755788807973257776571396264733777551878060326691973169346342090423017894613598129463367504466866601804834694632954445177119875481839025548083423855302054672629926820510858887623290587126202531977807598850078295474844963777502809493423794875139865547481290063411366133936616785315753112611771952108629562836577184096118243531009813689316221323013413355370993914638823208583082017401134188552347151213565803562929281698905919069192346960324598999053109276555042469472874921830988524263951595247614975061112875094987808216216707622254286246953952933327360298586506569297480013189106417076340923530475282482291303967955987769991832636628880822447006750227068631581195165430528408579149787268285121212375676392184830053449534938949489469177484931459456515629549714993324274124745841660533972754048438894633486969390814244165574412704760119864234603860734848711286898877811568823738753937231669936562149036495040060968920529543474386283185236342177825019887003532961264000085487575125749499142234999088209629270420148701503992879361031922194127218435403954617713370847956168487347298557237901241476033443097191831812497311350732000775484672884127234216244778064253938092208633481081749257410739481962928220054522959258974178780083146582842030945977507241070532557824627463586455461319156076328995597903994551069692225132275095934579878109396616253161074284699041186176568131871586877569655098040187770334332155084734066868354835124539367455636228380444239333492443667746732066869992754156639613995355179051450206748399596950290591949338267576649264189054722541165404325644430726752355101527920053844367565338495441786780584966050438695268761127830919213095329876111665937537968086749038267657962486157561828209413088140029372306833331441078099325542200539577500771223354790651207146552075127990951615083164788190846254721844668623049041021391768921273267121153461232075069958716037374111210670151452439926474015583552552286612810788246157343194023174634836148850604029510878487050268485365667149984435260783384291955866603409756374812975621797156073169317975324079758720783896935108880770232404435010887029850562055928188014699012615443596285593522002088147832769608161608666866124032744634408046438242668821818269617988705872086881456808159867230012587623809904436104833605755297184762504791264199151945392693192990255758121195302398025766319176004002036932970749722941772347393646925729416493345248823593488640420053439060740476864769123676016559987327374058217439068788267334022326456053267383846817685217979371065390193272388663703151548918249749089088283847099248029851518743569258231552572239836700452697778442480159990794703082691084773414843923248881362323331035095924007682838036745353268122245064574067039988874862890591193660672344650213038061676595973456376439065941828867883397022315236005871432083934523047313332593048668199469656643981676307158033622499160275779286731627265122301214516895279168794358955335453353916180349385646425076111791126474502583066572164477718546851805936809509570423416263613854087190171075440721336861248768484669993971163990042894882123905557712210934178628473185796466508765052754240262777134794205125241683356509367002054117203920223525695403147859931221711557871891535534354059857079005920183570387335605453549084736409622451943294823365793535889311745309579556332702740380436735661756747313858060620584756312237881008736294369645268143860219565979791002344102484157000072660745628685604111087036025800248150775401038439316852773711772752589088494299233982958443851551216254673557999237091599394094601429388668228862345722907452978622722537137863791521445144260207825922170493624398438768231616766619842237211365103483176947305709357562824112547036108741152396054398159055134458220283376302728055839205366772260461881275287915193356473971540440420809306458834041633598920877296335991009337264022484504492643705837155731871786032149749923382872348437223173079547366279475163566762630204624989726948941074577052802345746857646493993603506248441284125623715123592335973167801744898054925852407268711201604501645259331899370904363963121692588914099015831925697722354910732896127882720252341494893184854474193508577312636591187667710211209283256970819529790604404502426230071507911627301780546693210431164172958637357529061109000763518336673735225308601603935899323019292294674029939671929904452404414417788231691597412116159206443719753793973266286017816336714408668316671898001287868945239846173423779936200696870004530895073412614249819199632829680938586309248110919945940483484700604021200403863335512556129545773791541008451336881436902540076658320412338792648982327166091025857702129209297949259291860354548996775054894325803320320570588301314160818096727933034229144376565296130121398579325763244248734272989263169289136466452456280760976165254521605645459657861638677933358212992331448524398479086847217192530676588098215863412684901259028477551568856219300130703706334723227612580231809138988117712419531768065976338180200795547736215201919146470870779675314886782295701177916445148624570810612246492079157152697232413356934542695086102271122459462756827143102702400200127008104268513318527226157191657370449902438056301021823518467009477599945339473222362140135024587814421130148222277759378574568818483160738008018621782317589699033890969147460913471934753757541496220142303092645914433472976436822171997694731860858100958320913911403367924006124709857632158727330197590871126931709744155558163800927948809925846253517078319095680946021661511362737069955972233157226448765218001812721153324136031459694391795783033273710987834857567498402011527059503035171698627607384819565592487151925205259545626405128892843430078743228738063246457323653610331052384378604385042700850367168965910129786508192013869059089776547709154979570368002659360387265965504490492739506434257445499978425199784359355708269854583125781101547813893707521367379385227770686550417819350519271964665008775763246364055538248368079808380746970240602026706188937642570016216222775196311810923731383826998665439824501345936018941291467674049660929575598537633834190781552025257254948739292915275525000102729717226822764993033354751631938129849014120863578490879057273438745498640471884669489072700279621609150475642081952853043087027263165631188634765162740890763809236227691386109386117496267474958306721958693390410664881240569929317416215917219814706628621936650682039330569053744536244990295801047533425234594954225733994677623845955265409474382265092089304526501582569985629436645809217480941259771980335680103366983274791955744920229274378082777014277817119941124326736050197753680277513077324043647393388437607236646722066902391669236382850545536203248139504739063342147477203571412410043867902589695081594023790597943054354331167870744266881706622218528882863630805980847072909326989634744640698524850807998173002532016190224801426851896104840748610797220247496886859582459650839294019949068256799085748601969023054670635624306801339636677432036302828938110685811529096591947647130292115975831424197555530532619461930447774631537066395309081091070175926165949519066432974254991273361608830090398434136942532201380262404370635242299704547122504427800740569222330287456697445589651960701226549276976014403821744972849123688208289913022400268412533642339853466148316627033575950607403875034318729550305202908682285127500942301279969618013770748359713115269443807657724891482571951809330725489115453734502580783004623474670113124195508225874124578432885806463425263319459094175509882418976147002646969898292697213527981981305678777287683088367651354750011387848608540199492194506985428817807792433689668590300230197875157370185614734082584109865137497934613897041220848849057905322784195134114499846150700199732965486038233245808567135215055284857609992289690334802537319243674604399443768866708879083961292284069791611139186466997472040093701507711650109983170472348766524734169518376201157314124572635423577511079052007332593659706593795088930485014387523449725690260328348868893397905745686535115720202387289094785509381823465834318658786151655167523113711884391396542972174486820506336144870037956668393275948737430707651610854443146098334151873625493034466635775825078562512350641149455831027516072137206671808332870937275350751359892312286651660677607726885416795939133704138824501778533916329734636122638424495362017581867673318755591821837142183708231946375230873010079421250269067905898762351357931412989750332693226409155300758173193202909127348869869585495415855936385183974016819471276151446989235982400081161761724258637393494537378849578812219461905517104929294043766587533639055044018154120649025198273657158365555747974784415503795628585455313482835386932512704270056005748691053043645442137172985018343885882212009779136754021483776462350424568068855983735213817602451355338647706584188757646235347951799288699606008392863729752650995714858865897608851210401877214875888932996154146168444982871188786338295632245967867651883196419100865827447836522089514186410959026552445732404078140995639781297426126468113680313199038235829563895796507263273137944118844580660085844808030522985859445351340205826829608468055637843663293236029099790672618114184223399113368225894000518608645643298474993911375175473686521834220504419797104327021244457443627169715460399587712350233416761827118398090252721815577442929484488967310668780860618721016447264400047362585853031968806244819215763196610702367951027968132822669426862092588356525259143352638656522714845240119629268531685901656888243395283300637241296230514559741333565528919029320561724815476224568176042423212531585613036259019886478358258933829533279025874373367107243676017003030033080558733815393605894611048627217931366848932739537888340114432978645771449734313419662002382740350077148178392073912819342742405276727601786514005453291424105528764232646590870506406100188322170948976321120584589339346587931727268652919658946792957752568591633450156182552561477709329404950950203765202852784122537278666646190630472465338655093632125250595359422566486289829261337913554500733808853636671189994500972700450347268160269981639910141356608310267229206925301600403458271374236986376333567736629614305720924048614271424047128228188578816052104942788954243774785266680199434644007776762109851938406971930530284768660673998286343167503958267786134868508077760048021731305515893218731320130210258256392800624058452423470923970245320761852275303922302626105409978053775684352850625836835011407566631480495065466845877003932415653008387376916239487847680529165278706713540714535679591571749514816521075148546300038238960582197683260016266663367617104714173601592205181368283552764249048125386362121539654803470496928462460428869427194776933306448784484408125203449240550431661990957952258994024398280857178637825118269985991527143224348209443619121343141050824482650318686530477761527618010371552295524524254032773226238214597661917608006676445505331069504148684653592639668447665075917030228559657489203551310105883357336294876447642992907441098992030072643077630652826504028169005117039924982438373634945055426152047743005834058741710960399853111281869416754923069619703343842656390911997618946935149009975950809048172237859856085944663527472991027434796101199407702867943849094175557180492860769847746091207074078062306835263121999914597355214301304876817935380752451504715974481844077614738581322338379186183420839917703076640138090238665018927235636441732749218058295750214427437076584288841038803107738870366621076172996080639261599664099907469726854788464162579844478926906675273115765170006428518756362440814990226514622628388314366093798999440573001224179752573205946355928057222245185796674441340963061134655473362685433268982657391333645361028898240677325973962238977519728192664840995973361156226181722086745707603037384616793863540029207495612469041547305647745596736007725123401182951805905825416302321997616022173396411639028216397828379596664835430939109516467798194457981803360209833771125997690385702741863154292941746489439057941707059655383748359822743471922187335208963883152783112100973528167669814193772143307275961150929334750616724491542823281832594025629141173940599162239873508132281692242839994289056173272073494230952756303752132876178731317842430533014938151890038734810549412732789369093213151825282939697354964237734507604810731728666245943824275838444084350047022411477990977711780667197015809128397580431531801223709517624783359094327416320802990327811023146653577730009030913124264389609723538336764855862086226715732117610308543241549424626321395859666224713322206495457883262959872942406067867001763950562836183495669291484664995944605803569828932207152371622315310470575784647247114841020205224944436560779866771975581761128128092025800078496675415363901165241573932607961610259510241512095655555490384775533376496704135329363805301451292092419583596838662030535577587551413811264524877164154306855885022153576238947763424737281986116789159705117698647424158667767430472682634203515967886709287027612818809750697477598831758472984045007826593412260409610056716317096879651695866193477006325432373254560829694030583356684630407801647961825592491051413885344243201648884018928058108170561312865129270131889075794142152252053116287684988574276931198110954895514199956095276012950478386344844780911517333002684350894103375070925541669252625604689764303429121191111629272437471980256054239648563200137019597853626457930384991116953736870170662677942541716592289814614621342178358834102900843799317010316651086854194245388816769144551323829874712369529628447492648930318454443687463993112710994078117288553061446495330375947041438372788565177975154319383615260762884289204960488041638924039740636618680273688428917438206124140849498006585793230691263987056793644421451582009050233146326478389920227688479255085395657554451915046523333072185445346313491091071824931169437195582659834901915358863629530167577006095535569306584911666046083381361037273019865418157447933922764548139132168988954254431595578593698378434101155093419276044526659905476377143668776065951552813313530811723556002703042966891768954805425310111149071830806826243695907292464681474240659630476785981271708503611535298876269550609908274541295597070759175684001432293158497891862645897083757463287411685351188551727378169973715130400799226629203423205478032328237463958216615032652714632225399353618974301024049982021544864792153625621602952335686890660947432098537243461381015715929951629823284694825177326509478604768187312660768461663567999541794642000967387031593690969241562483092037432060953185339763969465515105926509393242919658308512525818377248212883402395882647865060457608567022674206041972101807749548347675524389111424887700872242884395982991084277379214459759043657293030224478506495514273067476282101954501239485166098844279312342456422280149905521199392665361613774522632656995379338521335224548574485871949150521618903560411133978510116601100580175340649356360806415803440545340345238458688861371558219555500185566492519980681590341738761661396640996018410116970652661258510237593131025839533404898875073104143916405949662673594706737730088501833503739860559456271892863941295763693642360375866168493704377464300174805954119561380864383964667307759871828811631225503577765513365755197309383503454119560206342218636335166255242409795039904109632482284681148428320716986978125227502264254102462927605258854843444951423192479786095895876519656219837120254937017985042498414555306667311497268299726924039207395715898707696241598005352736893660782995560959415170039403923070453516853740293366646878612959494948072394989759485186599950757066899282805802952360525307438878833571236677280526849646468352868608138706457800508242277111484220499349792852809867124068973747498814095069772953545260287753233299465651046728199943977715878592442453068849358610220660416241974150827289359139659261561367961584651941091052348834215726546112670081599495352932099692993459332535712151117819975035698601747799495182588286138148153025653808618418570806931816298121069743495522226394895735720989298399591352417571796144162966954605110962622930572866538519604564193806969821869974221134874674653697482972520832181069370790445950377074353006825643647136141957353876102612489626160590273074729958366839831222069694623760711756611669893155181380486174397162921597498088262628807449652450908751586253727607250605151114685138584087615355871623048588693649518726013743754672256173471146308572122252265155229979107063353501481648940410326996960612763506634384454720216479229443320167881872027869449564293581260084596111059596689465384521716184524324709194407020767934002398175205581329407962826672789736220000267838745889697648919413213780357025059154352059546341806451624076554960644488208634242374130157256939525208981048797767441723612020629043347465054942532397493962350388427044811286994549617433929127944285011789487674367573003510308618776319295688434898594284431616143298167829049775521516809421198161310055718967664685960568820425571497964136291013414247816307910993330970978773977672449365969954888346865880323903074398008367767102666884171492346947990493201972265041951529171970015875858113820146777654564260317895427369976750257829416865273897319892474346740720904878157709133256546631564393716131847850138135218048966757436940267643794490736450932698136305549919570197810456566747470892102465153003783840002438888229113149577795494383511213888032054291953036635753848582803757661730843765562728296632414975625970459563244727898962368246109796445570442076420933810045380821342046723086560409721764792051443638040600010127738468313787824397483122025088974379593095721351277763011256756105621685995222352931494804345898008325492413633856409813029068650554959415246225904654028309175041915702836515004154350244182219660870232261727742817048173482031785902372188647652143970252185398747018015279484347594822350793300264013856610152611404983373052362193849309206037752644190284394659167774734304419927648846260504664497705262429093960417286682103422951481472538472666314621332842273710990610365119336029989934508262120962238101113959853199864012781323984125180655185307567267318513209557308126578076129247164496601592766584263563082133477949790038655963437394723336009049767389027285052589071495387192107771670645481851663800963081322532282084032345452592299312253939232503266624832367649486771953580761124660040512892174095252024337664032555171300920234656097748727747279362498338131730576261823818747037773666419693955150679263137834575749152967664928495021441872417114173902889618171285087026504520517840109966528568591910950088201272838214485660403611219458452794855554663440676747289987674899971904129691199332191926753315909759783047492390676374639126590559337719161366532108620675410073096398428887529204998073890582701603262472022243045844489184196628087255966179681586720528108874052361485471875359062597255269585518859315535016980324838658161135905960088433620595698249785453403641005871480884368609245646106657444131331838178377124092300778682689551286955548417171862268663511570281566111590020082453650962940232739196116296616428294649483482374072359079795986935320763481884065097670237190858233995360521527192045769670648475458156412233154410431339559258881711860563196869115909743760058294348276018621787896575290748594922140635358620014422053100879435632228435112560977989375301841803051098980349461975590783549695343487985110875970585258872184463162379514887388502700104095621748571307991867825111269333900635839871294196567964472390850725168250876829113461303774236794301437011814306675647026606365169177258455101202935138459824558630285396635193834412523918281617268016859415189797073239694297756387027674400356062256692968986720924805099185886781188005789158661103133522137193102509509181861845765999643279793729684866460446310952967773852337096084171032839665221432991492708756139638680353928255321779677440130121930029461572325121344199843128054152594393751415666021258950262304156357545840930315635727578991594475970883500963351906640742669487144603096600798662844316957425214538976775626248007800906837979850969319779526739143235021509347035441477171023445165697175838156347772278495029734999557041396007044195578791516881559822818896543661032211602973124126770182530686788547303061092238417375071424668274860086990687372399824453936139022947941419186804845952039834518498863747797144134107654721587733696732747194566263748399043477677156644380206525522646816602790314585297401988621187684549311436254912420470088776261306617680394125454101615742673960110238123930648488927654175416354102708981242550417273278824752862173522206549800241251909657070057319068101343297908700210303152471304525925320510860520213186104676598841053564620751318219411971122698516930981017440375221071499003350213520118361306353786157023899498594158852867011999673796157501821018647688581649735938558576831320808608093813206445077501507190708819287523754068617047481788902502992180607636660348128345942970811922485724024396091701752911043761951661268286779443030215963854124561222328544746232037384053097673928415812031228335646637309322988286069968484178209271384705229862738205827105443841481967375557790559667132046063892391847177602162818896131319275576470693591994484971727413771604280117045178642448513269469994646852924735001386758927777541423954014189212214771712031149438557425492800795477221727830108693465339735979734327174197060491407486567989606976367673377745020134292945638317299964254990262365302331759086888965511573915004701505479539297901324373106456554445288097486629880859838617605428732181008424890054148196263314063629737110779786681126252512789224379574576392970916529486946661756313749504942239617605578421787331889797235172015838543930252817579296036226533076481010045083394423861443512085480647371807647938610229948315814300332628611496585207531553009280582815617193000034656165670559942306151539367186563094795779760415143163747664551738196140340327577236279968263073305035604263797931295837023119853357595424851795239863218279437677518329552793248649401489077478956499156610797492507157398894456912558561521842257915429965869081266524289885725590348816694409764557209965990434660452355248650789557221425361989239147974552130941258774051026047981718066420296213500435054988113301748512556488986493176929278194608091149397153608188235812877186806194755740301155864566264623220881839421412735475652244429392935246736588947731139619323088956739562977630208822389706484699861446940048365661664012826996875298567779836125231300572871147018544932472551099645295091099283227743122889245555599506812896397989973302295010199517459040464090113557441513594828342683844033655926201167278611420552646358358149826814258411839141617173520364417498026431665807581434941211235273801152130556391692882744390956862275836056407790897745500517608712023244470015005884623858813893360686249926211788692490222233771208406994133523882783868040013221822006508150442604244050158056754754944324198531393966329308637033149357426133289330166179127978618193580832103195312222264342511207920342869175002716067890334679646976555210267256860033693240491476959645473418331849398757135680454130167348026991021792380316553020375865702035546165021217510932379664453249362731150562887394529155213936471855000225191055185255450613811928548455903560415171912444906704590887079070811955529206077674033567200542540668987678886109394726842289952432509579684697315962314368213723973281098625254360474391609760704512625218431695119193456201312393810723350422214018831516070560748659506844260239265974028897648375628068865164085633281769749189257305183214460422351994925112698199688572295858102770910412356891837986553876897250383695150599045277118684681339202339742080023831133597086346906626654330090015542306741247923070978655232629779223277175392905542876226132641997313403559929728405578185789620739617067558359966081217458425326245182306460943987715918621836006834733539254354938523061831648617733501335649361640228024053724045511707795188327333749272155335633127706382118715328673913236884263923911926600865971966189121394015323620779512940764424151596053160950680799342031779454884237527666264250669794621281876970454249636503896766324906703183344104554043788763087874248897711908505017129672493969024917327899003569995494127063813913757037083224896009359094309394176901870582664298141676307860789210590780461854020937034419288066241988728059652243147228301273933766662344271742157635609325569437200987761748413074344806217190911988899637329838854897442536782968786356283060815895419591942020966520951651600692455650455346779240099852597065654721579398306604281897464878646679017999679750730984495766990387594023308488898192044608063312168517936603274472681935253928730185000555764340044216890459374923848286818064387361225046333454951282575015173899930937738119882673034641966810232467745993230667831323038471789296177184613206097212843866032538184407824016790486000059787966909610670814951967573117010332819506095572563604513931509056631273229207680469231204348471917377430011822267789494528706601481280654199858476537204201425249800201840981639730125113786798128077183053192517636535944175222751036866308745844920476286839423762875104815942498629812008178685705456228656237904838256704311580791722981615140266966099264725052888039681292736676707778677034473397614225123881338344656933209637233672578702592953044601376482148032123493375514028734221884651094930087262808144926911074048007144438297840730842725318719793242862960340240359860587625294629286225198004736201092618479606969595939582545379985514196726042942385648440383816301354984780457181491958036673461831437703285114104359387878095469380109466056221323785019785702420065125594291427978166949034294311828276095242092811465367124065301339760965738685134175671837217177020377761220232461193419604907931956206805777250453225449257434722816363291748813051042703003844385209073889872213117385661520464184148958836711787025145425754217949643302111331308267267022203327903093394183899975932444206402055224379729883232851305219522279565076917327357131401757533772884547725657172308732654732667946361092767472754025550856933032046424023893746939655305037328357285331185083657004773814792289175092345775944790628998377693077642779086051846066119773212722422696945841366841556492927221503503423128964119690301573714609274588384147654489377430396004316352143920275896360313335616020242092486358966818976900420001874242891987166604924089937481636026246223603655790841428813364890519061729812342026771649262275744158215895225961156622751696547675397215556976615091421231099361467606073055525656597731589383808731238261643377011660797578407699912484574986076129863008702681979906356668487826332552783551363594821195127350119912724875139010180993121073197668548500988180506916628225731148988460839583894041556005401565399028756881540273574784438407210893172509526484868150824329081745078689715997889902062656713926244975600016777927759841761828525603796142248349517596060931748051474507475878310687673476440790624230676705205353225723997182489642342474300466594056477175270713012803028911786631853785649175823333270597923452894303600152939424816678443092293112558069160531247967559274991804012479616240195513234829446176936796274677977675769670742198390846945090845000264134201591456646176567670186627662455537859986719038721628092529250201345679467208316048477330974557013970364431012509093651211398109330383046171560450847497877508092825965735353700929400521598261591879480792645384418228012162047567908424327737275401884244942499480218061075684722965425579739772309352380736998412490094489528740986017111049768120197631180724048254595818471605300482602102568607286207056191873491998165214488132004578614942568330050700548064931730521685336817437649315989938676822889158784440072526313084589703139966974793156070708002401963512350579479438675618048777899853430110020020217497726661592507609652679870832836552915352212641621181967414670502773811283140088769740224176149611722503311712345343700789792166644129697914549024524870146984061948974055324489411378679943141156445630363070180011245632345718342681843984417535591850411123283540842630856496061542402248249467224269268526665573813518239550213259431043509841476137774724159716821501336927321763629611486678230850615413291280373667589729285341960400886648992882457415130481546593509461481403067770149527497325864285633724798390393984291369036588068287876572996183337107214356530198531279374715272460312602054025748953750024197147175680172913989935579313758721683158414098545881128442283004207354413587910556969383651375066605319996978417994028610667039799779052575242468007237024435955704405911940060949996790261962082909718629372474475298103955119917787860780541566745324490415679440783238256630696261553670398650107398986073073000869734199202036385416019206711426901438381981797456366118301520248500328082725728267761298618759512378497111809048193954279144691452857606616874739991201027274052365769857461974899118022166006311581717997034344377343641027379215432791501429735876303410629075610509786820701226855056017614918982219542768069180470342962074209175082323123712690600413885564522461082272498971740640931073769724674747055030723503384635356594231889885389947537655866698989629130756151050646701968308453983160868852547481032185419649950557790631282858774057394669183869276127545188711774724756475773238848544961650216425482427114201591815159775107007417302660723393566789382119018277953744189354484373059028468123032952234067907305392861981335462399935218403587453906396486771098682733489541787115001103142285000622007413844019325563352620820336417772489418504147727165844354344551944923993358637248665198051659097039654720317129106813816418724578121226105640477647085333822845926051681583038935983096785046266150026517152279933731174063121943093590291298743002711626302071927182322429095412452345819111938541835251026216776124261244133381377018675841335869860974837118843693218844328398540623024837733387788293303086478745012943823959007934956985651813119163604908102793989314416627571358068487880714823284883220567453005845661415187404367773888445309728554802095069717328907545327001353748097008544659821926709243477598233274008706654542615150611056358588085558796524144286481299599271488305757893126781607547229619141817356688822522016258701513007835947834575038973279785279192646847997576754464435387629430624928814182901339264468479453791364477530087042043618511877473194736732570190928401136581796388826502944548246420144001623447263157312107488011947725107603107375619629479659490371009107193035069056849887451157043419287106728568892686435893731369670923447194764216951804070953962026944718348829382205454208852999055795322428822099625979361683928930305753657946986056638962448451497714917766293244996652794079399486464270210690961245400851510664064021112391090093466603892203857256555965824743081921589673959310782419495239410975171870290811833889111886357718730573509653689098912880533542883748940378946960611313460190098317484051396956911402372470605619903203389466117038769441155874870818427316970106759767305079321326649691474130159359663014529123110841768321675605492309898775973856312035280528321155023432674233510003543861665239276874514323037494174428947112042597167929950787442386472396050894484499839503377320499711536088688709707146319449573288730136821927401448519799359711460781799599355634430253753100135347643115126113939000156182386835436040588048767711300967061500361277943641281140694895548108287616487538080052050899516033689041207437283699974421851247789204051327106950261699349653629533919605073002539644458868061849756985812791426206245569874351864014459020714054193062024522968575317078093528218465630617632647113066636527107068912176425692995510064771932079711422750067119519149191806110600495745507607766731949867332903764260530882268409954739618428375869290279529546627330788303913574835947818879035595018910445345114181983122128606227434002307259214036308253325666576224767144077247327124708880989142872088658217339842245167997550685185803456021333520693402797131006319496326212793498732805213290403268910659714041564842758108567107063978198257347544857722673893511688385095589413458691912891969631141213938273119936678359213236874486496905281597605768987943455781956964588422450462530902507176345259666628341448359831220982108145986091721871210349587493458847609008997454716526975940505622345498706622219606337817806678225227427211104285041317725555430845712154479136700034560769213384208723119407199518154902381467275350566211489382604800535683260009991949970372981855276829780500662913116666422387192761707680741960643214427343512448094152497307629453395821121324709037306877778504196878480602009460863567821070882012430409268656621082303221054509852028218128051864597515386789424370542286091255785945346289528144171683780165275939016144784050345226090951829497588942380678653842329084208560741379669673786313929621220298223137828283215030268060832439413238055856462383454471325867907179322657113005673462030000702485390881816979676804579742198006197969300358372826047283367097401143122341482802895640442770245310602421124019760799584011716513750061250406510725245421780772709631481166632664914454782283318433525715774340130742503838354167848926441062235205146084036819918042913284667813480940550183464744403940219363255084013546887664562676515421307665250913663709159231456074672984565495430679480397007340815297642067018310981923579841664354308777151244216684124867675233113519088033759424356609971759971955677199882663777955978091698438794428673955784489770353875754489257004045359990342243940795322329645427586653447166993364050055794390325582269100520384073649223320170267490374616503314006992260711241575354778864101305827866040471153886835368440844703924587921218468855112184837707745655650681377031898753261611972148002431217356003317711175454505201966166047898360079573930744555895283293664892158347306929502567321925602665414519803940519870606540911071869697289287460240977569103903592780342108734962278603662722598339217414398403931995248699156185659036125551115571438348812850315114120531885265726773591047571721528491201052603413764631656504123833168259228190416410837768678620002295615471791153551526028396553263446988359852347971321652557572971989874354573055304327113858093280752849264205806084691202195767173800347033692819620199985472201526990229326966076141331380025430848171052225032977579691240883334066710931932025866017957007131515868955823814424973006633026359062605796239027782217900314557723969057343424349136193136744445198427418808748745819912310970281587103577920270563321563215714985745348604818789937933105699382041434289752811368608693237715665070401802578832850923502084397447981965392121078457730317400154280920364659485832600115914766141486815030191322495300518912069972395574237772757094040101756263545331622774949048465317914672538514351055935858906800144607218441398732361822340683213621131313872998735678092528578405186332564928542638861662764929005214365432433307570784089272333047425615559739450535871129969561300585467131631604083207315336710390083004667317780260764221201996240032472234007322792922924687108860219088286525682626786403233011002606813997359022785759478383660255251008752365367326369804859919443367468535924181825790972522979058813067674295967036074901852664237544024196269589129804349157399895669256405179958050417692058677293216018387413503405833614659194305509346632829466355574690960951271866655142415749174005920592330600774748833883370808696606324991543727714382250910944518520877394145994944609072967911229934125418939126527429162631714716814289328732217484963534376018213278626533866512760856717532277053965412261117553645246396180858403507349543279544519211553920779938907579285678298797631427541285412384035454353306214223922121153314673524601415006756453292736395528720098536118740257243473454879274039744542065389375026869848915275057298873392651215238471005654903068907787751761189331878657050599962814977813635569803361459985955471864294284486935558848138583400776517219108870627072066204824627182985880603211161970399354966662042099444503600236159292086908656764531785774069179411986314637936426305707650727266747917299017113935570425840279691833491425678543261639028959151521325649812176563884948241888169691793040469767496222423941581517512105451371741658005874153089441269005080555730446415252492422666262514457312698076596022533926638338810001384893811401430421443732554460222417521069894127359874401758791098036627443915602488298347553511202140482520030999859853289156022070743951575096102869075323495090463184669140970838049498953025201679728958263215473046208162053737907833127062144360069584751492931128313670427671110715756144725241676899775738748693842613887960321462762301314167824661670796941400241606352526001850478444752595092784408397973373329057880250798426604792355316038490692798706896476618318627722771774394900908232485221532724816232409131401211746148090860401224542590249527943024386989295400616094661424049497480007643878483619328620530338077926140980960403046559343796661654522385266457870542074123148570611597368143874657607562987402548864225250679540428835332364304314483429469407629000350435884944089557180954474915553582622117336486901790757061256034273613166617012308273800183556959934561451045073800179985136442686184430790792302018437346774382583470752249075255662225879107267027278676227371759492983608788387147480752636796378667414038208490572356720817296454166003816758650180641470495603447540184119075799078848302631624248980465241940178191630546521827546956973554010857066903899232571311624979343360423343919374570131881448330849951585425039660019166620753795787149881507440266975178629062323761385246829295702072802315836865840851369433510979575245065858241061457590575702783956587012470608200493534224353852124587325341119086283534291504180908972637028886112405775974083504379125009444774052164674118645092881289219815727629038414591527939756879922308094199386754767130366794309434093795653425673522311869987839328701853151302559076060244485388225888558499084702645732350831498985112663322954602838731696085816357327363317175091986823702993267906479284722258586952740953846157275704786788107265177818186932260937341941275383842126911558754217388429519579391037684570576342922902364447144432266977223470852516838308298091258187750676662450965470859762394742766381384060419986372382622156194750013376257410620954385933195909042992738903503338202559995035792807450312398888560599026240596252331839079708073511288247383990994837131853644325822942376378463618146122978333361390653369240799072687889595625143242667284150186076649589797433562607691115323670185206800961935592951997249148438252640520009253707610157295228785402154163465324837661204421997829901383999287937718356318549946337458767846585995331324725735844982686471359507878538930584132999016880669327858839464287944467164834440073528988431110262626471653896937407134875904231298037542395119255300509305038775125793275191306143018020451683197954632358658764613882442794665088008578132609083984432261074910062866063524739508279674676233644861779605468339144568181428172903550276605958361682142009713899971157049156562012813100681353503791607284848176061315108115326333740714743170196052978137265309497008358749335016086016512346914569189943432771552275741315636884569752163450008848040912440018083989184908453633661649761184974642038961027490789888406265792954590757272529437795768447490513354538204330541433797555002608142813913539853222964836271158077958970399725505369476246746814241028769636148633740689330189184581576525564726137514185241469096406191599433092958288690598171508634479332679415614486855256578517488973366574597791048395052918985424548135205983524321262308141258770034342091613539079904254063443371155460436360121120072051240816462022967149254676154543529720357368407748639171244331611670767100704322317099058775794708124580290941980896539758605084950162280543052588989296077067557152681629276206464271743906847702115044532798245001939330020966704083564356543200261921131599887036086163688065749482665847207134159749702071122246319738606051056579348331614292741709174759546857541693422728822092384133439252865682111803898271383715698523679871532053809985349387164610298847354187205191547836428850198127687782573236782817534569590853763008607326035272142446325428701891843370012123363391015544213685726852653498300335405978877473943208384347323061511922100288994941985684613417127013596760358451551528704246979474315782113564304967058864179054467355289044145030293426755485508267847527694105941537600750919020391213443562675239446614524447872522043153316895297452040894723350252138536084698912513819117470751855324461205921937783805974570039092175617851154284987310206808040328814024554907238062995533172237203779286792486057545606829812555588574908714517814146587931516220337460830567466226071264258855748130895272363723865403817603468199276110944767305346691249328567304277083330681179080951057620445361182266732999427261620370442802479012705140184322634480729017289596872859054628962349449969014484143041272505397615127540799446458782331231577216345805597311271259061032016412799217216673973105192930878310118106297220085746214842715597672920383746936645236124930786702342000944140603198980959843668266234462900656982220171220015110553473312196926288015694261810391605105738063348777437414579328774320839381364226158272677118612032732022493940837751162506514359184762833584773451613286549800777130871983534462077335375775894517829642918630354910306597698812726282475819362425246822131635990202256117531985220763264388739515561086345080527149436017056739569954106378328276188299953970931630119198422127620219928741257807426763786128026085250457037222202181666398547887824087161921306311744905590292047961601342957931075929092834915749901064843329452894149954274771550829284362753249815581841584246780651482004033739194418446060840622355314399328660352732345693780704841748507706239183068088820215951907461797587257967240247046946589785694414162317242022101886629478934027410712206674784530344574525172576044244764603416574764629699198398045314518008749352065525890123606261787671436249105573793438097073947443595595066456889112789881324531884793221546371965846496716482780970598421585907159477403794683288966799773003556622080235100969272397479074064068078315749717442234237965207874533947575328944827975913593427728133420787316043601037758894420530052799054525058563341267832170759865978340564829821641870727691794934717402857286128197957418155649885027155462511934248807796248655956742290102872137051789742013158421002492966290482537726484955746633691886614747456625528811071256895404596526544513028476736681948299104653308789094984514970705557304987351285692255411427253119462384950900379752528106131700114063067679508455249897635413521179394394279114708488875024414101683533198260098872966716845454584740181320333256773169926897539686280835748823769518231054678466388701412038343665189373479122268824826644106530792819361200252063812463855792151826218574463216028653660997047370842029137099717548448635489659048644671893123099037196230681619201463712583724256639092633853101572085268175111562978572311569620435530047434359833242874429773304588949951275424320044507506688419222087976298673425007177772261150349693962226794567079292523102927749692372228492369588538334648973467738134332910309252670278414726566609049284501962670063635411677524485551870976782796993944942547010210104582648652922271374295334285098608238859982713874848738897260378679887399022124639929021554887575507174296005441198342177910564389341215150604215230902503177378005162721051181665569111211794423267672922901502833685156908525890639984623896785797844727471060221062488599502071757665050985963638365151377565158617522530429693502304223573277251258264463480407681288682876176068228267797326432649424622338862114862185734140853088456828532844659326822187172888495918198623107675389643859401482404698857430035192828114408844889009291981747413160002766947315833560114894472238825936865213867707328298480256066860482389719174175772326770920673099709939457828118599542647230719529470455597827466665457886863883394585194159802030647442059528149395891307031874398592580856112945639937867808096344947529972304374448044439137581948430114691397650371684688525326229583970904816311302807056115573355130972342426261060970962967878780606311760604494165627334428728378237935048634694632659717631588921048461614252283155724215209499449257922901512226705030550577528855920999272515990013465531087607422062369814035058865848783334505611875448587316661409058928141102023776342076239947721756915735292501699269303588898370258825102070582427208059593549857493657590894649848467392030357265706020301874701705902259756780550878674952984140366542213229914794568365490998669790156287290886021279465424218716766269270269564887039184616718431089284468356173960900713518986041244271329555805707976910755854174111556867020210133118728470023609464287252144154578190548187349309726017212443314856020179478549889679602350874948768902789127221938758452850869224487251349491782003248796666934582245836822935680790888450743467519557292542947050615026387768686142592145741237314451901059456489016192163580598992638092507332064750178808869181179705677362761354377367764028239006955479405618989429348481230773566297454174634703665769955863946945435482230135852020818458578487004298585267795177240587225673008202102096893205936929720902714367743391156791737403500962221684128801091061897944419615952619764376635648575573976444695557659404238779736637697360926763556317865508406543428502894480300562842957187708896022426316819413478565172953377115588780975923205353262736253049504674668277166346916917866827532141384795679489507603584479805513541426316878847555551834649871049712067136368686015661308718565944555421726171057061897780838584947818936113822645557718055890994190490985351823010038163633461183633662919911287542239936322743615393334636884746311436248859567398438690524375535965763423013444813958409354018304460990664949240986932231733516987582212152278454125164107377121738752557956538068298997322652734904042885301581072873449395267026502650095081896658931303311481003160153667938594765941978671065984229944373408985152809200271029631861535586977484008381863957898570356626336689782181175079874386772204441826625018927510458884303295020656203629564982648915057941095001805279204949727738065378684981517243275526066879080736083106607276866573969942523058418054187954207619358919964256329489665439047749710704370581911997974234254412557698070250604903351559236701479750135049894080624986897734768184760132037250950603400551473982060227763357685759869386305159225404291944199622044595325749025708773123267572502842535506142724826713769217548037197231410668254037319024739969040337549019077227002081054480596893517528613060888511621288888223488479147293791712057560248807109268013179361019040547073359643460041247412871129652479247533664891291287809732244293797361579065263500150821918077161119756951370733488994267620549097428978506461191133911593862580455685389466440599204771607147177650730291043356970652938313067609997024243509489980835116431387560957840809809165341461710278805091545096275027111812669921780944269971770518068489083032690170352212421386796155686455691473987627181414040887453080710756154010496496166538027256022826293218447008608269287974894189951010712753398269936501133787246789637767459818932799136754045150645187882744048083283196422039397053418105397339448844724651913229507322485381019458987268017874164851636893355173563038750757902971122559299629768392320394164560487569154943807053948664103644971885990034362816207882216402792226887064088110284235062795532036610673337057987343974090094710054172151193714048821228696865809755299225508043322220618350883733514306707476375572570110240262456574518055080886146513543161998416755105147257422255434184934969518133220738423550206275487768444866525554891078467197564209905202025329296891004911814881306577124129761864416159899297888556770771985667025964576043475100519616595792554049000528794383016111964735664361867634231402537676010229828898687846193276046669267987474138851820510311599502097740647608847162058825599679304369340977517032345118316753333644604007424751766785742125752479024683841794865860773449320265164313460164951236719823019667873002446186970473148271002492343252737655070536951592217970303545799042078468076414453059620123735413424747098451037907740958899699504029551822671931027613401565445874548312795625851677519873275585167314842755742500448880016128449971931123625620185533331715632827791912385754864002405570182979044037444847670603207483869192709725126468446912011238816298910212749545091673611993427207715034241002395205671039862300376345144520468854946851873017121039426007541156707638782780702551194478656775791025065162175313809936727843289075568047792271539890440873705137252707741733410219872754156232344395886535981011359543559287799498975358196257397428803074461954996526889535402006699333859852037081017400597152324361166683570219016994897649296843673871196688623172160189769383679307134246398245370520292533328787202810755215647677066117171003391912018631500839721273872009921789567107791952276923191606564968813741700112773245059402379362368868967090348121928844230382206875855017191848229983878113573878626048457592863614286708956330431606406933924323034453389782605226943171855524925820587318547337337464204390992213798287226261337675305879480105161395832127707422412712234421993665684317524337816119232064219292829883960425083531752898509813988832751242452990947993314462886818718876555250033632971611866324340974503043523176180643848245317063495960110992885097935748689508898765988790522608771063113573959467829398071327749926588024145499908206199887574703367886972873960332305153334278114728662584311271625541339435612651747834988861868795733587767511018872198460861523750619298508365912975599467839760430742496721775104699043713718123110090610118877057883116043835253155409121242204445863722283438945185066388448575367707690373674918674710235027946120149077374913912393949442718096689504884736347516363939689563847240268471629960143532135313348715648488599490707277922520994104514459181551143115963764848702540422491110208531338979718616079645424834076943770155593475251517945452644030713392694990580408749450279569923571148626185004619341829782091446746798654131850649275473182152442315861621392040877613397378354876551354013748880031481640567160280430532444850194828576725662708893819743995267989291863577826596421692018994025677601363366573141214954005390974490525219725120851456919213287318534471928339773902397856210261181826754339837240891521165056636064867600900740946482515112267071288400359545410594704170916315171664778515828939747570898458293236320523087261897786705615808002882145806572300258499122196882381497160456664360000623109569790531270476825313448048961633928213750223555887686752763692791488050593993113440051361316613376425172658997615909755606766885454404184300186126900635870868451996877186087811553644538619320093582483315748153009738653833551417066529311572821595839373965861441493362858654234424435492903779324570548009293843228342914777416037107647005326487082169579022998447001287638247395224175435762105900380253364894941848301416547604832061649531866068563150201630922818191757353124918853883283689146398402956465335657883553101367331885843011311124113011703066003784106869628823909141531448395113580714444042318506880758903906772701964099196183914773428343300065321018736372414902982027114848177542813031684031922560070595441509942816337030968836112414214868424243171578900841220403084801045950890144572634738668391024606497254254775428066888493163865273476792159329534247223763412107134943499851233256011510660385837602042693465494544260077328042253642426156724175163384294215863164609974001246766436413007312888963463420940027294829484226608740540239004770518517105409408234073237325269186322936135481996907515918685345534235626580821298952535430340195603240636164933799228859549128544221459010874813686862359846976407793290049957505805247046767514304056460161838268445774901072590137476201027793351023565534803289924632081926184693918600901340069127616197043952019396806694549502541716125477996398238119295467688090978620800641392402984650827282139569331268250642191934195039522753353008852808825071581183168037914141008211575870198225805079597167027138335285831761966998884569376353996688225979930717970794290653042747201583676287328694055303497641914732584756912821519550611748202291151391341711013431869153214535966181866837620329936009311783110005564198424403762991237658881728624062015920396882684185642942966809262779434387394075652415141966874564158878017798301452910342291091090761897824604152655931549121928299674031740825668009023986850502762874520694109591786968132832344737333711202716512826046613881750111396546429919809411423362097121075223240787781823359633486890256909502279255449434888793727143988750649207274557595471358578433777324199936280927201963904150632259043984121945165547855429058956712844278623380371837391680068183802003125318343175299422209427129018601867503938675370550945714063503692986383196187975940613454561206405258331752236558196830149287191634530052744995464664295306448895188754855464938809485796758551387272579147112310159277935279225463182823238118284975669031624369889905821243607704769205733764598310858675786044944625515289469372844713867578851779244479927266720638264765195157302006843385858023562808599813289873726440373792939418072946058789501541806451684094690349639199733063938050638292237240363263604502514300558071786469341114645522889255737040070602623786106297402079943954681770065362662463972911068744558266975992158737472402450747749589892422396849925526130876197466880952878973806449468888204949973970564174429916550950714868993412080779552438981889128242156840205934917739965098378083835010248794073199257171585665159091900331350100243709784649441941745483840645942177680000265200506372646979510561613573802622836213784052993796521196848147277432112334785034463310041650386702549817195015231269631029252478565567879529371931450240925942448224540669029658616825559650733105038471722240946949966046919581190887888593655129553349581070982945245881291127834125189987507950938070073096701462398862372019395386493202890656091213556821084275565731902132055134570149762314091551088184763879649620842418681372788251083873503257431446641658268830944784024374257372658077182093497719375399179234154211460588012911786621583650988940518800119832229736388033863581506848242877174941014361456372493419887886532241667173496853669670476839600361255167760576257848764144989976457501530132726084404541338939877042843384695896525593796049869805627826274933067854088881729375446343741768479652726248287856180081309500857017706611827823171572306635036208483006617225013421199707934055182125778798263849964644004381851440386631337263579695332922903176917249715578909934176860569606777764402395602661682017612798975580014642381839143723250654783370315575818815794060755623175881868351008520133159053183949250005969846984595948462409299909114873540925587594290347534646430790367497712923823470432552220549121333992626911576394532848904013581737565428561534013058427499753757743738979541194140320696638872185294397458502296579851652957978541452464710428424086563405303581179432600797508648200351488184807039662850080176770297703095326558881444055128821666022861098587788541167405936717767853425671575792362169829994955173481881034486865072147913686069696774903574882954344625419720297885845254510543585751844186090714722321843326027725927818382030032062713452233828907334063261410237501914433667384381632114731168707821473751029394006483955734588561940666969510631384259025139223941210842054787320018484185221629683519041778476372691392019814580588554864303362571456986900234553779308286370017390978137192270431974201225915190868634149035805366646181700930189120661780653017191002138350366680277568519757635362481150219228424175957292253741662168821611653239990178999674683733022114772013909827755489967088194162492126119169424625208028868965781783250301359746437400265889198139725058184827271535002235328134495794936782702388811729401976863894801470105962938746870055618979345066802685908007988280022567751510618231774845444694099483410806341400662938897805255473284323695149403700711986500724659361992741412369930632366506970287974660011416498797685866910055950603235795746498234538820026840437898691726299902736379120639275907538735771654863297902143651627273642572675977964819188502948023802298631974619931893106210688888037625045265080825792001777493871774693654520880669011342654179826079090241714352601209578631633200958475842435401531579620643004474492786721950046463392598780077245519572382475364185924711261267424515908050270268694422984975780742797711566961226149109922107509634772325835300568343177068440548985837758361037191098279889767498316266960277663153925352244081845585767668465413833105246358021860990732372065593021349241581329940102797480639483073034825264878576707446259507026260395292558302902018255221126145608831094885096754741154312561994489600981150304951768307709225972980762728125344211397367221752668115772422518983504517156064451160180461518917463668238259206822183798624385230389514729191847975219915707559254396156115654325265509485029869751099498218706884528238523680248453712838452902234079235808319500285179029222462404458308414224851731948855022589594804993006841820445432015168846646067812509384422209110471945338808038954846667425417775706189950729273263310425834278493207732612899431183715212491817005835255283285635717580586454640129656379456547814865681116623114557991051407523128964730736092207413184258619159050562510596728392303556211258065532610967296559688351915901723554292139699128792336195666649938143142333435436755446675455590623429027893971348931114665474212028693919243284447773204639588568178181370571125858855233714619055016440906911736461548406498141663331707359477464416292165308380412228184885384878691769211160887064237182140045618791189887143278809832311088897634911616212534572904489873698595086501480963332178629505317970124040668661096834551705131044102950578726260552617545870991907466124607073289059885719492951038907167513244680132965204537162327695871109599012011043637595297760267275878340967574757003031507052216144905102840099062111364009865849255487535452468053734786395583261973697811247120874071463908348494562805551619474501093039246153089262225344462261232272012373757151449704148026439507747288315700141489586324783416412021647456357984325789785806076421019983342864759550137995014436358243696803892096334118794979902171327487743786228967203082876910229323299210473216300089945980965382752732628553108870281320987659016816687745279470517799093853059250759574939531594849285908526471120945551634478960758950691658065460849950369421209328615883360251646165771120028554113110665800996913470244750939133480784363166433488812327426839003740419076173932156643650747326772813385886262124285349188475966464715352586005505006863752465668653390402875621687100174765155381290280087849193093633056199251385799383778823301287332751314513343725614047398253666494952022204223252672366163143349862111534545288162940501967457865937455000646900729368714634131076693378706301026698699915603256391862106668109325637014901899878269786979852429257781715912220828054013525053243927286917763873369479375123924564900834308860455522630448257107201216451436043626475253187099941870154684218719230950977543373936993941952486528322790122231088708509081625831883369651914267570143162457590673857844088886022102537052671300506820527403141578131353634658493624385695817066413408997585779262950859665351949935086877122183185630023501320421288756669992644304216011901556940647850991791106148738623727721658914129549292024031173686101918768470333545030932552936085280853991826808363876441931287218205309364198248510198019444817343204051811141394674494184471742236704890973549676330652033142972716535504711482317981303988609369437308115668000174604401679029435833904703934648124428298600544580881679668912068383012531078781602454627595055599029499473150465011781400148496993816294089422201740667774538249001796855252246412531655172344553654174766553418682326266156325666266646077460013327320773345222769600588972272229668855152318803418087867238611246616103079363131212597371913612650356542946586871585094746538802447419406723431153058173126934389771378270101056151312409302942550371805874305571118783656573966326955419913682018180702056064664010750284889210282795997583986724172013098096666282936233369463020020642269966466292856078150195072331529232780250012766205607344996741668799118967233387028781675360480339914605068453852506857760037304303239063116863736182736521976717556435605510720907555772259794270764154620059326640194632317966594154850742922949897191042859553486457232131050092060868795891858502811689003005944791577102731657940291458313089088953524506242014281979813790621918829150470685640996922197273912581232190588794109950665152416209879649081646241009860215121902387258791078658134308873669832658547101781905562890620648918413490507197925888561620704383880609313168229269754422161715882890175314487411414351618227171919239255201323624336753212702923693465387577950344699883016175779327841707123804414512304137023295822991416861427176653654514231353043411079036657659991894158656730035462361686002067489986884954141097511482093999139930944480226631547101480317766860413040545392431811677972060088203522708656978660899970528837777651506373124325107895709732776492588214731123103475856583071272016552497294464327928704463648221101243788813401393564458534759520352853457307901012429771219793151658207323500605692017478998185452438563140963332614852150550374098810858344752871827247796634533092841153936497510457376702280547486032117921174065797603090986386065658966476729484706619986739025758932258189412429090470879635515358425396133423742472793790651960319572035001159450184451361273378968806232565591352099714918939224893213707243340395462792437351765779156254471313877696646158432015477016316553489370654593414738844714776114584139359169518045542064589560183389465684727964385793535290715160700291965522209006098909274605787525349496581552933558306893571109775016323026975050190268260621777233280569756361567899291366188209087913260803667595006802556222720746313862126941593343489894530642396125371655802712683915335906694358873129672754747026708242719453325139855782708252954246161151398422994322074221700894510975291802870404089376005676823194279578018352658257037160550096848856869431153729018675912415002721340481705604515714473991862801144205388133489229829126930717099362993191300751736148299318830550140635566841767981226893467273678546003503557173868193309886823377769303381796829701314937983692266718470474234094789424861860902544493752951570128035081816295430644335891486137837067441374309550625007456125233610955390596682560300039808107999229147708398042517825183894600721582396019110814220884280365306026231359030543572659915290240287008040184860154389827160504470473686506663933674023571622265618923734271295267618628733225207456362356520998584754222208127639849067068009114742041522472243895948867626463263438963436576340073580998625872324083095949486289385035726124620001834126565694062003689010815389037645361926270302826726673663163630142312543545057675130433474350575961579060261499462293726590803120753512378396548416903136581463732488932189569192819041214277840618156748958147336688034588628019321481315254786823252002645095529708486373076932429916927548161171003914928638467811005228289936865301719468845473024028442505075363065017060251195911239101008272742502510669105177585371643586229350456331540522288527727309664705611244463564564464209889756440710065005616597853711116703793315278539883959525625251308146463346439507924071079159168729600278668671186606838366600843970393852028465614528430974233780395798531781382045631937197761544267885252039466051219216497124982601235882800189297256959407490477255250065947169181928429820843460413284562651910264685666198468715011705236983299677491951603664281043318731722866946759585238225333462697500344598938257335306663610391997406118525001174244816396536033603840733076104982838848619216237998246705647357708856070677078471128353343352171151587051337753181858124323296694715041098021697676012734283582657220964501481656207298599131146369620712626720881911788079545371825292379048319183802139613402362325515319744902965729027871731154590847003111277609789669765901589042933821292228081258825526309335262097457528034581063419919837683724460042199955349072023117459206321060666671877910337437062937123803696351688089058858131391027424364687740629610475552343750771943920276081609740720284802802155131401841947658710889039989847463612770928397454466160801136433640280881443474440729381026561670396947679818673485812532841202585830170116851473986010386051455884114811998439155795331154769300853736440547737206664577758809786809407352001140854073105429611722249553219477309289407594321716308732280501636048602114681980292591663609537702142917951754044208398013001114655982911805797941688847183382072360445634017449095482287086185157137325769875506293639405669671847053551831818855322444932905204370597848725184243614261061504077089771401098888177082455155029305703006746744753006140887050093075967661471788561345398831659364452469587488311114562044543920561798404997237142717917937619870055930114454254482596501094545188009356716479669584201037278841829383056893030600597985273292577556665845980934367128350067199663564559403775442879992687951488795366901472438386946336666568835065180452568251045522497658455566277983513560172028416130446381707329721104257334591202347041764887279210236897758364493946288569864141600732882730289155065311345547947022039730201123284096768810746686114241484260055157665007721210100864107745966156445534300139150100872526568417069705178045338986297916046176464761453555514607224643424043072138384340209595574923220467827601001589970048626862489769765306909002264249408988343077254306303474450304053759672778349035034994058425828082995051645460093100717306578239019030036528175944016503299595219647963585686416976038148169777205690973398884380528635556184287382854073537385309400304421736294677762291010814826477703073869459283917761791722902181658145137353075628126401928176611172199214326386625197845625018316941523111237267230376212877533480735217275985697946633608821035819830559599852652564801141597834144096580449229874560615579545477091820704633593524371539821452783028627002833310003171352614609604357401839141181131455852418066435217937308356104511289225647800781760249357706937488404024580499903549470005696842512164935528421951769391351952935771230434209726921624298400263311073638703874879447093731235002446652924512703251757982889780198964997776865035556518105600859748703157559740339562527430407166112116197003609125645526103580165170230080184669723315919484397798001623738349943469808134992379559414754414998103379437670438242446042551761184901822962765471741902636939342884398516597516546749372718861879550300207312882973474319267415875918027662502956901409736719913001261433603079449795813546055429838336970775150379460264025857972321674428748219106734658189431709921923095680881898128956945584270410450465431945531810024141042507557790993285071209186686529152704352566937961516779223849140564589649086114762283063333160933311129020838357459034697100976168716055083862761574718996256367312274310738008348907860157126539771826395047229683277768505710540393879274797916059121811453976384969234858719040319970725527360734203042430906253762730571681832875069810103982451447499848083310326271728354042068987067469205914300257654683427840478654918543540666390715498467740485970703653350535714335091382504882704450845208148330185538628381928298669877775747848005567022441094340285879948213356671665331799108716170832929255606395046049230827932546975908145874505726661514143868226348694974141806092274243136283706332522042631978839925311976225458373781420661079283073111069023710485830391202126183833352777673949745293819623237016034903742062935614366122181499965383151386327541569360457553546463512467960598667459976913418710338509933488026210293998499830081286498321384403863472437061001502325517685113331958784917507618190065165784026580733165898559518232398302902635590818172193308644826144904458479167497109227732034157471904441578489945470850282158313935659730891549096235606760579133039295711904578494434651692837327654073088802114196768351133600949940427784570839686064744901111318455756137806447224797629149428270954543736960154101705200162357399917864238025920891294160289720970769568817621162802507142762882148645578571230330081665490314608940126670520173139286133030855638422046659618095988177473096983088401900036657889325752958175327199915537984643856723697250432723050634964451890963711437400923292546603010403898995422173578640380235715804265661161112914430404079973925608333050004165745745558186292640221636605287118748487578164543150065777332707718979084237330885964714163275600074511256958831950376532263588234187828521812768299679083956730828107411348025007021198175869326176729235956315177012500039086073098066332875076271324411354746388338653330149741473935022956178467896818611396373340673604286277774455872304383198343919129737361754579168129925461704465538704639145456478292958294335209609176343419067614923117431277290987843682916851924416601679214144784539754496040781537523085002864644137216022369158160084853431034927508966437445649448088246868043374165654897335006223290539363938554774509795457770273936594787232889039253505175456476100397528093192218660470682875174463404243410206693696996307874569945366426714637711995844333472361396656638938668616942118517865028701157447675782983620352361081953484579708752294754722054513834382544890523733746324446378940855934406524347224116826193548770545955109159904209826642610219979368644144012560860058802492020357033492859638553234948450403317199143300720808201259303166684187436718130044079199279403022414703351328616464889757955800581175013668366069571646045872752697636358394800689241487783602890749910568309019700437271800815732974803722709122657945809346083668270243248333911127219039478300780065628538817249036193697388888120918124177381878663377646392872726984353049514203136142112238458403292844600072202640568077732533224954850051486160773135472545270501378005630561487817920880762307264119384467887231933769857601972604745747405819128211224436086903686492237143676847402793790041110443096017894243147088779252981165377498882581588023391659568774301889488447402256640200908865757077822027573783309326689611078061463275773857145710943600573359287014425536702424258548491904700192636152510891865237865350394359961366560827425747545490766115860390428318928339579191419696742994187169622769721012328556242051924367730576391635832599457480434527388467514342030437845952837678489778285440248735129218525580753834952211665881669332199766541591933462885291743994996675599033378697840970167117075732402630178191307176193981084914056405915941124829043992348539734667297338098512136984755237222265735251970104060049157576124433153193581504127890386602966847555417379085811686354509117656786858331122312189217794633347575771922109115321796704217077436688639682806528520603332270947054700730444896547559624840470937275579924746929616444774655296340412927243536765964003528864392182462464557533191240618068059635824185721392797351324586019308446528178276473104682798318356148546593894688801910109248914934798972340778408498523961990734599097608483357119959036854570747451981473095920322906431548386079684992025647215992109624278470070236314396911550003126483938203796337114447963015712236034428821198527588714946689139586482445126439296293021536651297033879284308347633930671122489017953674798638887884740262262684027944839671608251430587218315458339252549254316154222702844570850164694513878159684718339436685823042703606976088253203314236313875178401339251011338221214090118624761885860105144563661843168662166137436527641400825366230350761278378137884943511505145565154394366709069104368124411231227109570273789704563969532171559854958382169539452379435039694059185001872918252631400696111307456919213051188139433510854757531470273146225426029180446425942714070790672036003695790189003996883552031611144528237190364784067993660118462336914588927490535813484400456300514885127856367992883631310364772371459032807747236865391425470551529690987068157677747683913863518727500380259591371128818848130849749489346171832163753461284406573636993864865635632480857386749263775906575479592567973462105514859039626895682568182497860504855754805286119351330262436271284932737454180973462572578248993635781696668458559479130787347169224469421308620885733104381336728407798470993481752370494345594178333409263386843906665362640522005369785308806509790967878098736646554590142506076819387270074154028125202402582786623715071035880285957666036428667723195997448264527900729138580153116740752175981782646715640722686052152503989558766621199154297934612755543485801284592634161200822762922664831555240687144919006490151288886073639095009083190232931475109828953512031409774332009097039583713817033509050965584384143560340984017153677787105043595970599283923765978139562512326391921530755152830732121889863998208795164758685953413504121560123201254180583234055593802667021560109460606302436480298713865620713807004330253522547558376388586586434675265000048154337552168933838342861638539701502177713241900183300348546819779176647383343874482768212552869332676119209177097702702230483273917733617205664306651794356051014890569085161967350100730615925861011204693128113700247760575535352900931093471949699081544617393893889427219069098323520019210398773549256838179917533266655162669426511280954636195622611474370741567240740316266969369040820230280377060115796443094876708372381456625961297467496102184504772377494926222150919460348926514118099224495674292290366735848410710634440413671450296686133722016863950653099876915163797780170394866645211698932063818082739440762742974316700552583524688644536795915786230067442586770077677924552993402547332128779978219157838888469137079030851099641197689484515342563032233507792401482050420385847736570382978188958350354699128770290508603637511011673291438459995393531630566665064655425322311108429735823201013413128583915752251108926225117500673897857994734940616636411113638647330880815249140561996219861248670378849041329094596460779068241698987134753452225064740675435823697825724420616759331418580640575231622752009096109221879597568623716552446061882545581738934948122440924951144491071196800378088322935522675610444138699233470604147138275998735628370637003269910213923070602465741204252406914857219411956919405185004321488175674388575624332254083957955540431669424063070214719790679796346816558153018972107165843260087986630561153338888543699790316652700999647640482822911046711990071997566011780462130979334501798599249625906391045579703335098712600731893184534393302700976151795164010733930888322120508716759248260541415897590208102745778628856436408819883262788629108787691497501903266850429328711442903986173460880144624968584097450029663454258180295703158204366334214584921454937122726119783700224246437762804506881237706426139366135972433153295902026904591072246043704154619084138213907490315692190854157565576590317602263031602541761160476825404484289030963906643579138026580092244849737998799300935788291770909040080870022488010498446232191935489815485251640102482611332082084488950616567779109322750555162924740234358245546208504587649024987082359428304460967131800240728168915053038243772005570809136780272675441441416625399859778787496784397943317797560808214673186076184282722544464186117381178129101287268170685832683761648921808210346377665534450831732477520431097838229325333488739700725669806072406603730757328118216630477818837322723788895813312042532733411326790792972438620322410444079272919345401110632914319589134039691594638215172558077237219678004491940687157058659522282578178024291483516679286992813759168080572012409211813539888889260624984254993303285417618791474197055325970388444877262151032592058741148042909341721787667134260749279255236309484784279601676011155844388166370153830967869153683194351692008906300101347689667452170497600411869765160798709320236237572769928324936926567031568992071233303205035092467385272608926096052391109379447485338479497088802663385324548305027704977895725365248749277456263651213121790542123696964931955833798740958223651611932138763830237886227907430299518890127976311550817409073128931558470638730547830773160904345517890216829495208507010641476447464958407886174197597659821831753647008042075803852806080419412750091138649973246708521154487556500596047920185336574221392894315729621190458302788822108257711299075597556497601870654708149698363395321262526829716763904959425682720552399885391376144979009603356796223990461794511104439955260812170079623283746822777895553952439744682421831116816287715586278863676359795471785337906968010418246719089172535599439267289675685390957987068177723309258614418537387960437724058591262692923506480942950046861919248721037216859483619314960361281936729164808311411215814536521812512201782657958265565684035048425910498979438411380510751152515281189736357816484100025364931591729106356072770394832051546039224615579092292355596284321914218529440554767685236302676281479875868907182917729951334408628581837246053822225193027739864931764576871427945691231433501677514341761327402973195613809797643311589936245840780707335345545085287888970920744840774513672447248389363280289229016686641669100855626299057259383755289332890396025345373629150106213201957006304325947889049277057948378896367768682672481222662913444478864169236967601901585417896318151044479249959805876686648223568852024345904333223568726514365898068992823257851949293983904040306757553686352400094376540547808624108144621885898331846393743077816250929948966618389832962152303481763785459308164682974911461017258032104412054603013510541342937009585615901736323565026554417630129039088867956150708112237260424460220444124147957304259898403142509002925298610090021334890080325470406622515370309557943488108978406542582133355142013176538983977439792525463628804909541699836256814050646763577397271243374977935733425762456833980966367302025477247147323612243793022600172826674586706538714352211905041875308366686138905221200985290438315208100430464999254968173321432425808618500540100232818627319017799952422148590624424597962409022729425599731714647250690462437353026563586993882151768810485759405239637316010651145534234909369754328317908566403944465753923496378814420042953644607834243703766051112525684984226765562751297954179412743128502261185790282546712096248723373071555742532959638975198553693353763967588809351021629641341267920106044886659143871547200647936155699989692246335619608510981704984129220339572465766966420249775410604816509137447597894485597898336653384024720929422967424020022864560235372191037067743747867866284977993902617683666201805059912944557777292859112426115569834683249158986156299300597505395945287174615905462382709428292287991796506246526672440768284052461172927063149284725928395176727946071957250822478624846636264513726562124074173061543128313934261370257131651607072257697255508117965896364438527085885988644443810482576362995808710245089830630570102405412484142255143121680862557744468731448939352770460696678206232923280722996639202840978389630295786098129023311833445636805293672648870942935598152208749521527967463162013197621291906498453172707780803988269833659929087106777534399165678362988835270682271368619686592993826262595559000375440550884291577686397419072349363977994124395843054671550710359287301491445609821174739163611760203304993056958005750647058637214478216993858228584548018553542237503025136318008345577532773606591002585303537418037993699509679797253270462964856787025799606379952109115709799338329709130415302670214609482046045984303022485962052575762051250670477676481554092873984430512470362169899248315806660880099753820746788200432112653760042985172775876938920234502012469125396588902787255348302769378185506827345812830259395186328243275350620067014236658346905788261088162296632461212415426933161456234650994558267515572721043223917165208886390743062537744848888763416451055577012909267579257428210157200215259541439156053009542359369003639451784870123474132530868423742477665817629426649054718764387163732849603203213994355769544187544500527864424659482912624666780264180686103531668106727899891784872795747299016207044673551037423340647232899549128716161900556162978131179678776965066681701060638573140684084963597185384594382733384008690300449965048667330848203182991065437996613586208594921112757981849427215321276078921913030534277050275717214922401877126836721348135287995664450282773653357865209633420367453299147581948046048275289494473113038207197366735352142622002070383790672328553886762189537232498888491753734181403326003674842852656754660692979004753184977446270091210477176999906979441392995743620880641138657291162020100880442724176217422567755533457209824603721589448856429803671207357719839632879022009516907318821077116751763070073679850592881854827796101633668428243929698158030389730976681090860181630510005794596214293750731960638938980352410046678214999300222975320690659524202858176230478600095877141359605332977375459003642812301847817087383875427195044368338034604849028917850239574243081481726618297931923686816910792124265331811019451058003594976135522435440423858904525001081766436651698349504077806597532598716970242578081274933760046381158204273392698191101576962559890465943213651228938849170595550487502047633675042065686974583386694400351221350484331655859196539074741178761285372413422242668808650143830398620962845274781421425879468313197872149379106660043560739361856197237160860242952321755863022357755148786469068750881001725368941797746716041806322124046678395742903779980674627081893260828551179149330773798555516332897939034150954248858290185096399393268469003295945145698572720726704169685458159965240829625600635889699906735541289846453725727680986026628400766141516747100081847239414352785425547318527263910880145966179894655273823034714753998528444333619166682838063440949982675509470466054203262264452157458941480901391872587327207031332251465226634405717021505733612782560006892853983609593430051193119837938750047402029045071214723439863475768141876093280038417980265874884953313274644454007835161510477984048082321876818782302790240075731413359237230773077053249643384361436445528159278616328546317972277598268848107524693502592229520454296620156011017731064282074351482987526452693173498817289885021721782408625942088018652440732084627235403015136093325665541073051152802973554357817490031532067917044473533606075163458486945409426324063194844279649245667096047385030736142927786288602736134890820804236690694620743363563113453488502416048231547307144107938362834270583481689242677922177810469760161846374484909250043356038258175356794143944641652948142640571082644077536720144681763823904958284697589164849486030324315241347547038059618090911598037900475855637359858761809729958361721068165380824492100516285755594339861748480940375225826433165365000384694362975208585048586035615829742732461122890808199677870538935063101481946898318829789952345561965138534780189196845034872232995236684492393339665632367518613369561492884939169518263712974387796785752307977296189141884141736535552858911935911170555679750541703446049835453740370794858027353435145226579777381053110505898632767131936593437208581489419868226228640639511918138075387195885577922707287211123069296761845188772019018918461804768723364930447725277842020869959914029507663223209671292056881214200755507012578695283198752069810893634030970985023268812178768786136030362236915143869511325422365974317716519199532876278110243065826647636993497243288334886520687514004904742161281619685026119240570282182055569714074770753064070747794651767304544299757219552637794040246465690550221230882239840763810944138617439330200115957206712881413889270295200429447460547453741053946392143145164181325037792220441114908985076114392654532812348344813084405132426041068097571950669433323789429767000219429043945097092198765978206469485039372485489747029263448438861713130928042334256608114447717425213063103734919153647899069600867247639531331296262497603588965592555341912807694767164467568226713092263788850000268134738293833955910719048945534297132065034897388756010902552711885945800439780873480684793919735688547900281065655249720252976521984576628796681392005468921651233504883150343530630070157029507790727602404840414202248628178915853505550929226024265448344861998284298918420907580039691050373953417513630871691634112202715295433984847741616338711281674938481451174506063711478846460436231282289033608175146325941855926238252581039905651747042083784759004005273842740836818599512530031597225094104235621481600236087002755248065843847593962853660608853480584678795674889872873652097397165328386935952417457265896474456196757334243601485896998712554683118790539533292125643745148560225531599412802325141271366583023784630669003374860595553740637827712354934926250471524818507864112106851639852889264796989900587929082085312263674828226544712826853733679435900045954721987758328212700528355274626647532566481466650615623553803915807175046984538215960802901976473197574455119593743279990685351657530330172260026065549680230044695689820044164267478551027431416526368820181452108260908994311974035723919088462035938682427196268079365773180710935911861329200884501679985991681031878740946117379315607493458870991336867423180102659474159834956613846006052626655397252406158837243746290637510866479113126741982899440312265398083388578744433179089739844524379070565233223227906916101053187813301811458217774652778681422234133990181082874143530627850485463525852530987962878081009893714756650304160592100600988821886896991521488567950243796708601355405210456550443019585949983909999177955428465261814785108911970639957020580835033404609475919056886613988913752585416065497807955474427402790308940926868476267857209818695780465830114528619253459739782551685779045777477523923233682124562934632855612441700770541852055240228996247076136060659752500240031965138441629737471801443244555730137925849021999018064472129835901989122578203757132512698720010490374795715238853137043608303549202132469943945149241601461276135522991060946120975326825299438728599382113911681811159054844980129084227206508266575294477160990253293351321501164930683046416305245656744167875972555850291706491004643940304115491977312710224069108592729233232133332807171332128625147915057420186741475090622956892342376173683693172403713480377730880887330614628114104599523153055681660209157591121787449452648250583339180559837355321283845833947680845819454055851977216363098274622273083209882310033485200804821690968510349449185838341297335297767463250534007033642314656451440515275026699043746694514346874622080233695154495786181963270941746266191785669394605770532392524634156861401630807047471490792337949084129192557321362730060326855961208660971086594752179297118161969963166034763326699849403594911352813684336969856190814554248101019729504048578325812526587856971164592701310286104654990486238223305947097985222257450961930208604601741109268104216041903900753321892468443678271608512857199706621279397237778663502840121172812987979000694044324060234281223008288009596277692498806285458012338120768727890956859731060728246395049157446280847173841041495103849752826439131831532156608372371321743732226506251630531197186745798316654701119640484069403539135962199405542297221587532996780004811820548697804083055731363493814855655886556797198493076187528179157815869129952172451585783744728225496719406089426518073461391916237196215156282003650999349272659535364294134011042814038632651012653405567232401524623523581557003053538741068786962344564142227195273112491659111798551797843929273722994509165887071984676156007933337200662702548216899687167027713256860792717925770987531596664379853266041036984850642944648193605272111952415219293080773140216815637605299581979062806041819811917224770020953320203208852311720727807930502938925932452415499181451200444641775457488196101870104545663652923055099174297828542077094824741076903104899299583771238944953087532923253585598927629367003111195261116248640290732472487831381328478106645860839118295217288767598555694641617581090945945327947423443817488531727054030562554822415704364987668076931116757204855216264127046781511784069997760704225977761961346537064792186864687578330564605136285647145743954618475848612912985578250880959354466018866298895953532998290276762092365118786090252479603467305389575207868667721749909592408393381066643625812019580065146948893313856585000834656506449909229747344524071757846644672341786544661595729801198907193142785965128095626584385075729248272337374844537015907060047115539463541331902940139270829724649216766873773242967837167813588391114791848853505385409367633221224206841764505366654116036102114408659965173695436138294563513080728431740286995026345464381866607888906020362393985927535328448863911002650197422257890713981992830556287686555752588644835883814776893744371852044920104199214430869114579781418610321841804290895625606987129024640136004214118384449424470431893128034197129414921756711579052655196211036396903466218546293777972811335914244504054293947778595129988058495524024756244202099534312591894565360429917619338024788764554391639706437640145086259321386623852073951612927216268702385350996401847166328692984765251535198278651442047358995442154852677710225441971179376151690219273291115629164611776054528458874838073596785339946789898514465890993314958700937558287203338801810276082186038355704158527763507693218322116681375651497339491299698726691156489822532605253993460432419199836501915828251173357246634592998457300534634057270284506404260486338608049528915690428405398924129956441680278749613297336779236327102831595414904243826099666822684077824622036965861450608485911357579031567708279901174718220280655434639054975135439409369033785549207269988714917041180022500170766483664354831699027587077011018168846550669769549153401543627535710138174628950453463294237185058726667821363711570864210661847748204740211182353048211624570632182462204287043845008773815694469645362981129017459399359246894102623576118287854829366247102469995720579365645241388961284078358133496469130752200577615050363348565180124851238683719853677555246944107087713677237931473452890786248102785615586814847471292061333860691729132380177168347281128905700614575902762409670265884109272012415794559517043106639547802600916178509805868607596918536963075804539685452330259164125852143149947463764657932069476166941894648854118522930961379601216818225966881482547431254696172148264281715194100757612578951554719658863129294167387299286191525730040064363459661498371293049755913347787884097505932427533050243494603649344717651647683914427766769587085096266880009601974171873820476728923935513783876849505520470443329162964250071317565891118172644366279977053841141796909457857268086824840936742690517612177049461027792284023061290383825752548555664226045643327414101192721083187572884153523729543943176664671279424262679979630370918021835877782840707765484429535591799458090918171347944850405258475659420524969232424176835477013803037603132392240640579236461135562391150162592408730990193049359472103643779521753843560371319414261774382389954223912596333296002439915121968995428184329697403351518483915341411262615556161119385989935869234970358081579328706404287229004585012287926910604061639402410915330711778876211197072023648523101531274113525259502552033324915367609053302426585805892202453734442133385891087994372754045180290773753810249229507946473263146464224268846763283442740274939943732976426961010034014031645996209090740138392972868036510234016993052719696962455581196667731164948769137411601463430362915054558940998238473380386233099876362004596443993677015495152311142557186952258223042472391798120896467970425049040072096885619580795306119518963107245369719517478119322345223141601696450110220494021208193924953992265906157809032655895179864983064695915833217758487227348254678349410076433050648112555673816197158551635026979274513435597322345000962617880980911750276534861474108171905014820854834903525218432405348798912361148960795457779967853290818772365706110532015503178132496366893859492342587403694016605276906389718972788145261646583772330485048647710844323449320224927132648591117176035170669564578968123143602859430006410657511198467228454810053183966001352673221977512294885679304533055790557719574577058323915747275801149159122732733832184206332288193775860904856820508201424222041912142189764314786042506043171503967500081286174004309712902441529103234973129727677574751462787238604372466848104523266882878666683131049398421623752947447804866702631263136204879802937431800635596420154081333836953002265875861792589608773911454173748814534268646997550165486010046893544895603468683828568072185822466816443145137466154658128000988990631174791562421394780999237641861447961880125465308357706038114542106675063683911973064551928594987694093095145170531318266556505673009111558354383705304238683908949567624430433420049643040334682350716100158443029051577703364310967437510105086687588095766845538550481424001538826334339041580199265568240828433889328579796919874700888705558779315552260236523274741086769171011876072127398652367316845966083958960279838082008430027495803940986222809866792739898950532491315618905066863513062592193588961693562712466038304498288802834552034949581868583239344158809307678091439350610446859567745204039565071961920469696653770153698231524159824809339781996217287552289682209772325193049972862802391554555674792547433033974976744895262680968329327034166571435850395362671737162335863161528682364736522653409172671491932913109698425181120811846796182468958639190457352652153004229638214600084354587228968422867490830445252131918614197273313368677922229466796215142533381540292768934457935274463199838345776738377647539735884208692705903134680145756776956366308260101742034443264952367806192063249829898185155012683517021765355327699599049039113040246588863580738756096709089206185835094751091780073333814219502826256245174350088093876192045193633566424599970739005503730319206736492406150496771390063856991723517017448254344217719003621234470495791923614969917320648437657259005063611260336925728737360490470710045991584956136042766306383231719106316214816114187371144027128185091703334565779590825247297634022387810372791129225127047756163941250303030175115848886492390247878662478931594261710696389505700492542759309308975643160868226784996781810019656843152744100103626685303853567071676523655813189550451778983296273187622395745591783999477144534575204796877430689859698327704473472446619588567693390339469161993147878613718665353135633099152013807438959850773561272084393655395907683965864760971625734561549081431876576918684984986560084560423425984097355101538730887075390883336239007220808049885658871129697554938897122303863062077690860556045832057618525317708696808559793477538868319109346449676192851817445661004327337485181851341633763131225443230573850994677092537867638139960941837017905757022760521337304767113010033711401388804575787900850995771496785667588706564573677059990953610083679432196514233938972753983284115552273023984422802966784462546494793941146214554980205846609073488008325365804155138054366233274046161786896435766954904774415765837716087677299901732143740252065032185598492211672446766343561592616964343232520735026251383269729593032996215709574983132338796375134654454036503120253919376712069587640654209936900079931514159128837976018066396526301302332025335618471907532381103182632898840799438991550023823849309045046572324735730454342340754249511537022241592044195097810668362230806025272019487660385798779643916244549852574885905928314402639789370901079777326825907258712727121737080539570059210251291249066457711230545315236812800526856857493576245041241312279738693297336629847013614379122490753853600900977693949093194049046292125190756832496360055302347258077481823670207484780533315576252745711429036217274620695189429995029020176184862830738978042882558623406546927365318116189689320060493046154235656483706182081920278766026893712131995107820945180340719343441674232630584715054870115274458790409973128629222365002801037627493712649315424334817090980069755106096123716624093126939277553885419036303502674436648785964504102232460953659145327290333330501885481082424299015976734552493945257167156266117420639705511974077084267884948279291365113702126929780821949700238400051335672552914683771932810119529555209457905607864727580158822699584152852409842056286679229412139861543402688686826722301909544649317308304376985731107491695485650849865784695958483165797098787829968398161740632970674957317056410694387381902768587461401017001462936521053658707255464493865654790486419646684235698316597345384498632516509467333624358940522208745043559959470502000365176262406887679269304843728362503512423077058478478034030510358470252864235079323569816324061628169741270154074716162204143998376442301924204135261684354988080300975974461416293761458350459640448627841726470300351405047892532164502722057717843542723686206587705530084727726437082485760572965293369127436017761260995084389744585609082764771199921695077719156289639537793360130312015423462779804897428504719237558586224665295195437566240499794252780194860132573628604398799629098728500905643787877882067781904000620538580686192114383936286419703841419779262174943112104283070654437591642988338652369558377558568883754521329090850355498934782643211763370164874605165777850391103357217202702414451529623236696309583232174282053515466678078404730073612069429928208107481868454543195892121260794539374094142217097298400852143060343588418633132900105504496311396609475730971184116760943049096921282250878250672032092597609025211774389384002882846208818654589705425421720856609253322492811570302545418609949121028258931226687138119811423831355906315428402368275535926137221513132779876808959544022344708558693807709440573334288607567885950868799551930171985680729949739266212611024698989874160522686349392467196040855601333141873169000388731105999952383812582200721263623129269044332570700604417157425685658961047507086056791207679804157434348439907154693291092247597799017180705170262796101691526546482871050711219812624858387945892919043042621955359509278136400130812443599493108556331304365985625050308776647484511381849803729762307158787989549142308871896590894772277035478922793810219411328563108249975422278454056515627763014284936072412376218290101798079220421022124200390961927754142664010694632256490972446555606669445645961884586235014439765273606071449122688203517050168883274215521784279460833663999607101770215226933276249167896256584121118768739754344347947722714932270050537491748292799315087583640167333420740073427580719092052322363441619101573272783860148478873628651007840324154296571448523829437569120730401783496292214822365284763866117020195543227815060750553331626108106559599850878983426714755475286395387756544590763922169520873891566056938391624821837345164413138163321042290155576515650616610343883679950576312361817098487506331350447969272597433420161012493072886441866684270227327415083516015520509874867506251580902756680079301830621325504698147901626483133064306191745512939383826167751724693295789574425736956647683782687598707216223466542118026002686097654168639319597194813140901778650707237502651340365352832807199721652581196662859075187645206601167710973779987566394008012456867075775901762461492197901316492618658688501527600824735571948789866856198521363485506752582064169953367378228332517854895751433943748163477885918474860722616296827635352908056654890150010128436758754281065496704476478040363870441646643960207954141621499119396541600440894716263022910177079286582960244856935921850905986288329149711852081567965235533325153341130228780808158394404083044389432025958736427083337793590642668485129432426291946418664474851924206846176477954124742869678724653345428586362544173407294088251087682418383254440392901442354293102151391470054763866614286618041903922768047463631367228560214163249360910303734821308965705972196103360969324335274625286991512826498421844027708676810870423550119480490369570076108616911411462881410838018821992477809124614672617235892088433456016358995645869911400056289502386392729906095966652979616567940324405828810434122120804521186527238364287947025422515398199466845627020576758667800207569078280384578833896366992519950329914732318145443843185744628041097017988128947535017959659331701702291823213867208964157529416771297292572913028075569970204980251313511628765490085963320408865221322360125130063437833226766110835685885840268436120343501541754112673678014131664295006857922155595459651543022348653018332312541922015904982342769536850727466360537331513576202398183672656611448433001890969657176337416966328069648602913211444991206208264712779536819681632544985554565517640605261027429209988876185414644846500134119180925981515820675927620722688534039800934883257084019411023891969635484301626272596513771600647342017957321224459099363485848568202485103016736540429496802993558547677392109749986700678263136760565759359354266641932195588901327284348449000768749735536787737624252638668585122210258144100452040333354107455983886678028697068192894813100956476241751361664360695907839223247982375406132806609628139971175573064832122228404251475596427374458012182237498993997764280564375478602231033827561461208497827456042281384129466744475851161161504510495342411642262933252273699310173299121163771237359616087832325983637287151873946749248529776828365304500444321199795703531038030233079785295837679141635554493560262425739205612638961063313031018746759199888234563256969329580429185931047207939670874889956334383447302277332899247523254124209453770517137668859534786846334951745295843935208328268002368894853487544302663904909110555607203054073249085829503674459133857972695173920216108752494313628550455401187261852903861888420264806809134418527501038476441570526160635120608876557665571576698526520084785483055126285177845416654259001338265769588470894682684267653841939710686429502658856678010928138356385843270669893154363415378905959858445483050376666119018553682564152844793528747218149023393285533954889843685519188233604126356447227968144720960892175075758754097944611711708067230406449766122661630110942704083615602713700568012167194204649309959713592975182053580186268046800353071690543377096829115970999816183315148749586832140780274398173573461587368252805296123471571203398571098456868168502935635763820312220484332912586189933314440767618354635114810873399056550169768549671124663544336609205570891160843415605964525664127549133128679755239207515879726491636826389185472043059361735531369667176727374477357410174094833349842852427104966178718679184326559795254332271923268735018730782120523154744083804824574724064818809028419206482459606715698822660829531991452726792473147716997852994616066421018638329389597303546446171921670833241024224828139302715316624853947153778087087933454332253941585288572925248948226640469095902551148866328266456079122287683014999459570587788664014193159311271388445008187812633200282112525296458419671456364747103942579884200878650782413700508659377030176809458036817897757386742753781094989785593832691375608982174410748347560726631209363691246370356492307402677775197896056207864351528930772511444257922280869147321128086251668860428489927978686272857153143939655909815513310596985323454062575590272590697055097735695697581592596193250087802055396497981437781485184655390908864325325728267558874006366033046619672279719558263638073082278900411382672787537364441782991556778350099290709549073455260916707179489599666461008472574181333188686364559927193089368585823062983251471297801955471192577391034813848278545499186100257119310411398725153983462902054639521710060663421780843212225020176927360005625353226898305741983116991623764810363813473859150917561178745530695665854957552793036420139839958712036091194065840072780050081944340726635807595618637159785328231795402708800276836803656330630021309284729872726044667342213509956319282043126623739459548219144808195334372914194687044349734525459413815238900613931955463126725473278690998141044798379386075629504119785123455807921002363389716179468778481976089822278480346193907592913354525175180722070932813160814951573518514616194175365801707266243255053177663890729987486980692375957514822477192737605399641833366483316116142686526965821128055568545002898817118951095524964115017971079411762407897366222124287252592385279668242150470376792272652464368542386004692076324066009292709488998490531760312092936224844147793131502777216919175283640626728642870659690696938282009570036904613412537146378623537582379756548039097630227119865859596260706370324382620346103148862974133490229902401746422111174270717176630864892309571683937734374557295622060060150028676325864822518451604431677325411366981482919715462398755110872691028566427007489800589278004312778092766617635971299016909339760074470147396265616461584759511055998061496410835431366243398388650619683802754504836678245079257128818155730591768709442533022621023686201354976759746885924405486400806835937298831699353553060331675937129947676603621717093093393560845759526240184600884452505776948849770414723215715585133339950579889757062181820160047944562820402055342959783922054960514761086716728285960450207256809405453850009775372308677724905865261026465902528153379018175807823610369239676140124137995895824225890444802357998935622907984838554726509152434521988188217213722498139672889214415175881873672311800043549427016378605682203848243038307143977326650168915534409360029969670580141813238421873426109363952509461183023456984467287600776993377255447309445755934733885903428055722385284694350385164798998799762524404059757806991131514405971486706227794451804457132794522243153161111563690441324991875235905481877555367129149173277338965328218592244956372119514453419404380682323726840815687540772942468469403358232079514228843080919825767929872774003056758124147720416172668439612899726590117158656638709751090006265900042921757366645397819314594686699349596502044347480343380280528864503278553289574457522469029131524459835251963621849491864585802601888752138238855856869157406765475545810373868206711518896459650945479915939156106658408867546504168007423013353454667305199300281704156634711431975535815290634124826869906285000500910550228305389061572522485287345279067372292248372087154236968049017252231218078374529048144067399754429792127593414060549421742557257941056678045856992519411135023636281466913598983002390707218313579723542748822438183036083454101721376978783415395183981652656594293459850187271435565185513859710876641726166801786012484647549720444228979257201347113906166639025118315913254587727429893349961621418909080324626513938709744476588930108016665670341583869279225410878125368175549797797660624472053847613596537541628208053941140657699209452320192929773176473494584350564863732649283545384171296073382623296949355560889090457243386445080293024655836761520890210055802191064789285297163882500133852338208195738817043936111888197613751631359878845045764236552643749037565691001777173506245525834099520476927129120464822494620554252814346218234848805613965261742552066633107674760559958886232330552791695390007833861119317218762013942711569967069866166862919801652368263378509000289572021312157334930519555163773549692857136068253687999671658567999659024270189459330018200189463013717698584261074384233593890084244219807601152024516006948345689258285018355174994585697802532434315031310234644447212564507178276007781135595151780640700961990237538214827876436014366731169844820642165131530328852530752152068004171318899858234115442322024920467474090232486885395146036816037150391970880305539247929764289554726293535611698419400039079781696863397102292730029294944315050355506583320929904133295869080473117616395347409780797377645793240753306365434792427491192490256094445648643334554506695002901332259214162834780147484152710873367793094303795187991573715149475898869923946160603761078874211042015255392775868151568209663005857846407294023600562043661013921441551512262210420585384764822147554072658343259166303064018012405718492697347877173217162324643202348821824525048500745477100757446542019623208341991768245875914866496363866089980271944584581307763170463890572567611659848878903444477396694479537873457279314150883553155011048497661643903668713579859050200571691494711992477176351826917760795974971103784284130329916675355186566100522372839383437753102838902612207219588752030479474439819849407570837279132858942976448868823783879997756975916709985224013244899562153391646114984373470180229622348126841470726732576207687248870798847273769481431142636086682869103047799628871873701076256070284087353291191335446804637355363298818029702541308783778600013529005996432357699468231974720908665657264262071068387105480792514354181441062341306821547345926164598799081007706619955677358803683679216784635696776923544107730117275647477597126856359697861145068954493508011459291358811878297099405740866148408749143692207188703194424635606901161394854134750673802553200144843173513003637013296912657458863115089491558583753118579213223570868077955556875167094658200069281325712582027216144769981819693308312604610129951746725467297981605022815304023839549693547571567925555123725449578318049341018865720821655342121850858209580075004868049680480009712324367238587000783471805510026286312409081845376311325861498763578305863462620423255598652210114141393027488842993670284788781110538060092610446867947733078367682928643536968126523826669566906204237746686008963614193571353024987176990541784950500528077659987584147386999854568812845481433499305580922010510460047627678298039579024162105400209343886676967150308270498923156391903775597605594640677261212570590773874770660326646640240100622049612490384402406733123879926639002826266824763841027268274610898541047706168440108566639187282349405511818214320580148509977425210412769651080217439603620335523953897567072965249118693785565332912642092774347979954646624724555992302989656434579509234616532523342689996218020662155556909705545739756663730911955952458284228792538237413996555178887578217575017441296539457997208527678725468316966397616171570299367323561081775816980938632367496770807312429992729874758366641998634948368249260257809118792736217797732771513827546666543233925000013380395092828958332048077112947121441444432408520637764870358861826131888508932161261477858515191252013245151572164564462238204559661347556289838846570653767770628902604525466247683458087967923778337501419601510629445754445778761570839763659783532880504858619082587844049643723167375445237390380994255328118534254156320497882888392222861173165868406426332479554708587629532859707821302281820382422648923998054141870073515267655571833791707768203418556688674987509058472765393250117345937695919997341398640655584770349824410403084548216272415051511164298796348507677375530423107232621879717744533802463957213381659877406153958582165347120804264345702986234240301023955491473856989289041739117172169562866800734188857109747003664336173605876324789916363358184109793610804398180280719558505743483518727039830431564949196298495973757968091902568813991827973488850557625613934766835929210739285960058708130394953683069694589417762427574016374185907527855843004796221433019357351749554223120981838028728883787484923289269222979787817540346296322368533056355071735224572713328817173828678885620151488755865046012225250698235346464716293234011509270274727033276156063705620479792117540749712505716000837065749576345565035665530851669652398357162218743264198620064937271713466805364021128944359727951580282043360652558101461686607362690856497360919538195888754128100591741535958038619692986679875439813133778768965081998812343528210997024445411857045624142510878986210205566668562165112982632487521297564323467323084586369268370355058724820306179575726467615367090190812382690107742564242702607272407120142935448186430379886769498088342438126443508240705557427489828261873649963619219199885142480961363543011861757914759375549088067384829998887597488121854165982403076994422044127383527462436719330847649981753405090994947619491537957610274929453002159778267255920139728470503003975710188139368036811822293600997504304369957122349442288214201783337336232200894129064514528083872601456187715262523558396377833448763121482315649875376996801662803511851355719250171240336134829539288877044345679097021553958883880704407896942248211567459084561732245415327933845632443692249015971191489278621256405039175376464147794984225882864358797852040354245519429383669726193558381478298121304923866558931705445984478298581045142357635412602250733291090005181545212616681210447586572582576657895193366735031131095714194967123630918997351067815772266278248788275749924604839282811967941302748025140321098931884911922449693596503925652782545275528884857489143854774730578364860534925842833625294084431327256217269603579764668172425460466607897804410405552501446023705121174407419126906589876445451060864773529959137217627190218371353461036039768205467106931382716924277759356284995651806403580234952789760956388721910689544256165773792192617841621669902140333145332383169454424726402330723793729488908238985091716652726820821368359960491917049837165161761426666431706484755845429595817436597974243729534461514649037521696484426238705277915603282942478565019395313147128070277968811242457137202128812202380275679780365214439393360333476269618466007101123571252961039147378907200179161585154622702792849321123154689666990760617895720050906509270024882817814690833152586047508172395828889723588258266853438249473554885762274308007434298504913804726849736739816914029172614311918353185869558365362993232330893388221442363096294991616144546158082934414537736854792072754514199278591577446130201550881658886753033198983874616407853446749977857842419606623623075285276831832969020230528024111680545506553921620349541740209088585170677186061206132574971827411822760419676596760943016699474978893899853483377190706054156140254598764936458070907884636238217092840931572148649062467673422897931437564683844753692421260879822863761586372533152991473267864319243214670094790290626461404844260603470848739254250472528377072113178733236316315636017348915825998492968878923582636691264516768029971707567771358517829728245103398379316894952253838682124746701910030944457920164268846211824418784160753178340252504401111299681282993929430432335502889931955377491941404160244429868396125784786212502858470209157339078153868983593649417539783792765311834500405307945101267072890954559910643431543576199830045440072409111044031910055491928579806675154357017748279380198648489830752490864826883617057415400560780917680546168989391238395083142244850996448553364480898337200372529721031391709449910292309340482435173489337066530216819247331642609952263267293168659315089525021574592667132999639930795929208247062973819120527006438316793399297212270484666887828458639638805722983626899263841863800969147218017415993016299935705120183202008201912554949472546569390888762483211992273132591394601917272613528813364098244550477124173806938346674760374434253460825947295449173002936833814198988355931465780790408689274625345845494894118464450050423028410977141888711866544813057833601684607502005651942747924342705771949543025626770570388296875712858968654287336664613792577055089440419614874871031998541823065967194544157649524942313267153936151783876137929352186912884702870151771817814027199316300597742139666456312270278190458314650967000777490364553354326619402989713946378122756419601311274672573916399856652248550437162596577325158386268484532452628335331130346885881835930689731515625006513238043613373180293058120914183624740001822325679253160389712271964795842790050951110714016490272194354195178318225248768198936514426231620583064961857964115417170129239587635722230766055029868549429596332801368351125023514042415554095615907924005358660608034853524410129159304011376836677839571027244809322951227985076077380393174140659521269133603187559068455187959039607349393699438796016061017819860917018093501036009802199203118094402031171413955851490020605513629315388361456244394427971670527950179733734555524086805920467040113234907646970118128663339337913781930306729532239487833045721443942953472379143797092874062474327948914916472604942030778691761510605888209011382435737739285990715443893942158158039733484066364296566094473486896638036176304672221686238693399275046526963263078267740175080288749104568281422134916220027338447602957074278534467320644411466768190438973732541230269367172662203620680723865113318943489940732803095573513047650538911660844929831346113350541543770328457769469451937317916376212609006770026542107256930743844892063172832641003775610500371617534589174951921576618849437873720262297864066770980275255772640984562217676724093698843965347716813671897510870971645230206092560530851536504872365291608319203002583059416335162808099875528288210182253988118087072534836385266734800318029405639339113049756951938083005847188885477630658884207966375944677446423303924550826719459180402698372276719040011685200954470033869987120168738413217502172992990764942001659074490879098142563762564310496189069160943535304771475574716987837098653970892134938127871059773398431694951648539240262861517600127709695941620409700867653913640462420306051159467703013195218122810554396262855189417437208263173537401605335896432288208483060104674289518921449220772072849051192760330981004555227117722496509477344021665527246381441991679754345821170086202783242743078855575726622604027929700583325663601153529297806791433187628279656985700347417670915323380259263955860902700003674540894373230831715390588503083065657135657280706580255877649192970813349837166314525758523602262523879646126180959695747521275757921639236875844663951397922040117271517262238626518915977931999199034703690198924072127085849935951109995374036653252784112989311934877278504951985637497767930548757186186436543134408746982984672430013288883750739365016994728933813425302805345142185713347753833065497471799414037423996794200836038841718290339785643560394116650413768517024242629270192457033376835021040310284081752412262931175279055742803699073053823922963466178568454256745400870126076791687706687215836837749788925921759422545252462189427458095022343822708841854688051076521623059177476505989319497906279268771435811327483398805941687426094339839342443387496343060866997003886197061299956106225145025462136402943676751836345561712275079734994783407829251650346411413628776606699462670938554309271258971426557978946601196276797877669694813823922740934552751227225733809765649503698532061145373984772516800515697047935820617118347066042322870973228716096699220932221592151844091269086910608224116877113186531762292073064424095226316647555089552675987177500848254804988637941690266661885178785541505542068523778337753065468423344203051907456826094424721140509514836941552436603066511086470462541896033757508840153845165419359786489013588233961010131375478858465370154951793657434691771142749334114008929251729229340946640070216222605714145040108656547852606973557746518449411630094736164234193687157508766012152228638272305925417284209667735225413791665096932021149025271436996264033867229235273589183931764948651686426833235703268679894444253580780909070853334819880901837479993759652590412104503006141479093690396783490649284251611573599260209029850611205211803179170239714552166278056123270062866625936975489322362710595954273277155057836027317588253017429392130118654078680628075509340376428193591539581749746506930113017114336242332579646642652666182455755697122263532437254049177347666354387802446311604112426453887945946946401339421184083286229256712594012954691480551137233152495277975312630427899859370761996174784220169408775857828724630723914351560372209531680382923425153924119334760864674463909763922711169438853304708858741599301676349194656400686322002071441785324007144898425500412852337277969092509886854129866604705788158029498395292822261468431175845052890785346220618894174107597681326831035777916315688241617510098277405713862257072378229710318202093049057323029312209734281948162929828249594260000022445750746341753888807846269043203669472359572917509560182060891626203654511627989476881193355604785674314007368074855329376206942522611694449080806609031705668556290465970982867184484450229654345692646062042282623206823037127647340728233213543477947794189409478172692679242234758595713674181198817102563002406603165022280075175529704232069139833681705119128775836995416774030385483503587681529563441913338305705479029801300658053827702933029271693848278829284201925736799963305410052231775320870819406035549027838475184032747338179241574431532783843302811938447066882438430000511990719734867216339552302390703154045492919463236644214876363618603396407164188794879637859217594065222207639822639026949965907937058558287756631205203992306537027422382512425739176445843337958553315834038420672704373997753043608794880389195944586379160947709410444830139834894063937029742389319611501770957375584765034896461049245469025372832939102784901228578927035790930460497301516361014769552013451971194317155119908871825843934442837283786831627472202481517620100599764034054735965268498176952747153070423408971781307432696678894074650458559708852883030951497294299953297183355381155842922845103689010366545761803064783004034087365812837482837721761242194630465413832280246013112342147763403154613294903059230410152000734803135825948611795091650461023179268405136780860824661524666287635217478306825081809998376602600640329670481745234080800220981182483627379898652310824880069723529444579045951421142647158900756817168222980493752852993695107488223286464135666306872753632014905112801876056372525873562561610744021071375488937889256827741582071699937833896408129152879165802410941061143611228972741192999063313928281401501091530481717876994650934252416158887066265064384285895939057539247519079463155166486165956313387311445146037705600238766054729399118988893879661856649518115202920803869087369797075984453026415281847805504918678681926740439376145343784187233517565909009993930654636113423230609669062487836895461791120903450923242982400566244491122999197940259364655029398071479659563782731633347827445167396731596573431067818489952946315200547203261367219936938434916373295450722623602476315464267665686117610280840993621922197210928181891794585078898892876261804700214965707691340585552716407326220132148153694790301543542797081642576079921152981290276601083182316810473340494141700005210464913793234744177857125471226962992889969120198673461307791134278434313449395379416269328670826149201319547028210861692353641589662346131139532941922071735347890321623979490041677681573136579797575308387138448341411555802300914232272923554144182181696872060356272806209562955087221049402127744712291821351293499676482539260065839343377303611004449524140329471966909936127067144633122498779932169517643956833083473613342335669565521893347796127166858607560649719777015637656215511042119597511898923015763134067038601682756758119932008885772509831657477688251119117230018575093155799029725648356619448230181510606682802264457068900737986265711527345834522295385289464258689654422716198583110191330176075414786991334836083993357886038497537189254268994077839733248666974280462978440530221830133852105698897584131218969454006905142925405465012237447948644838268203584253003334584504191957955434841571132834938731023479077775219472911394895229990684965552520917013289677598774618230732844174181564878455683278493316786002852189821413881099451681377433781590513698504298207888475422828203998575539955424523238950811038585879900543315360080346168720577825170372229039782972972672635893052668634755007374400648037481099819674336052045843651564970729812454010358013184555455506223622979578360379086539146769514693912867757082294153964925134169476041915336171058191215879060378782350291923677184015833201393292062304347956040279513613335263699711072699616109060808005291362595674681012945905439726626315636538565922692203988366492665484355055932630825688751376692637007175892741656384334854193502907982139483727442743798834907933854335650077347856275375471902809246419041572562547327956571713780484529669682150959323883519199860099516151471256776762832503899726403916362426773862375381506837975040508105555074388622933474503098715654465666568369193215247014651058644581943047210479839895368521196516630584063212022421197555140506946071082091547901832883187076562620165073680972476084750295629800231888311026876113955247021410836629506290450187237244430153081717383698528355779526680684073273811156072947284715171618806668357255068151807156394551248594647077038934103257481296657414132929361440013514648829724867598008346068400436043431432286926839943694027556738951957691360356004107051779305647007041662137465472170664937885020987739335567002178779217696147848797220081229182106904454758376884572410031827721905256933434548397643035515358230708330194641340717325504894285998246331458830134091809428848988740176773060083197837975248092306102243627664064691815503877433892351351162501102599484303939080126806125298898098040804757167633457920796688900396982978032446589653679040918193978795973679823730674353338542066329923642812428229255049588859679104017024267285129322566795335592783741849321866345400862936537408663494612483289580776354315151008801656589982295463354327741293612540807938335060830995278574970673424045566453630359004776881123136000318436988437665535786165073741941350326095609840062535865775027896058523646762534805558815469438399086021983559977909534225009722207860503080147074893293410413920862401614943971285782096044430524546373785754105355053562804167355320332440948322187096655130756748569817032432587803148965333958532001147000200532750530348908710891408939134834882465894189844958273639563776940834848570736159475937538999775712210645635969849718810303041154868416824090911925233241994605742742807663229099004327732406317307758640437934466321805191085114812339771400926145648143530988346819409395246131634223905459845099228748625315613194226336420805757033197958691867702420697641831370151594506823350362676821386567779990600789689939237973785762065248015885598658590981218516955831764470968419964677525928863749604504426306238617739075330357051220647526289099604090458465793730650259955325305566345627464475652502786169117335937699399697294993341960285829534352592395919582988386806293297589748631730649670094668120435568988667039738216039256289018792846575147764106982792149320272538941482458270862591596241650540841604397322413143945843841378256136839409533110501419276210431568119452462242260970007808608356357146393045334292120845333872250777071520577002858077019068754623473383702079108266559657410921622591281284405378629663685399721855329019786630897095244084697534462362464132595862798505936698393337138443788082243880048786707187004351107451609784808930086573181870988871177483731474073488490418817209374595707216535910631960592719213495063812643355710816134174533755694023615815825926931255193028144085805117886542418804862570794829555029073217195019166459811053232497497588104071218384857622871855320844438080724920304566140228208967494762152344185930256956403423973018413122381099173369460897460272277125302351354999966289351141012000448454466733408426708457080022181625800324982141092022345243319850149148523634728433413742720896025925775307969495184594577941009758305831554346291277815414545552969215958549055237686760786024083229252089576630220929864447156557103968855712378740098531433833961970961587427582572178318071498621766835307379528045801363504019027185115004216934038739521596181963587534115271784690703832708251964693951333575045287194451456498530512105416795983801593486632246605500775384344717588784681091447082418301970954816357032359664815577791838800265466814644307268862455770600828828332512531699176374746031999981142100577116744399912786823015837377165400795914376903636810314032656465516419792391983039787097402040532884548861426407984117236680589687646793186637442658137217186323444734098137793118708299377323973372838932251812410786410412537963803191468291775961976186275978902516890188142658073689245205667733663941379184658170002992528831761376945008570430102793439174016835076614604007076189609988106817208138302845222316079511798924561790000222986242838320261991452553618534578054722952684855513226229696689093873124260798937888346936233387312132160260200354871621735175877678692643222712736582750557957305042232440456079994940918827356641976296819718647829403167191238369249739834480706079033098885581265823030392177433356751927790654980448332528522025553008932393352455001157021286113704650035426427481427735468233523495681336279075540632847080598935303393976797659222044562697106997727614973077122493383307647600351550017649286923197761871446371415137414712987173628589756459448791891876157320553044460205589071208115105945334118672083447778668471626872369263373050922020689719013714024221655101590700023073967605088904620687072647664579297863142292977895304755266089056787753363896693188632361805334496911782048975652126373066687736154144891089957061770287137382362336412355253817131351019579227224790511055439340940872077276495712364719300331855458478279345477255025799710693039466017047520784529060417879445620607680438453999429971847134561355827290974471929148052831308275117896500477726267586966549325630743503507433021421150308280481280830172566616587485751817473961877336641460952683045678848789524784629709581691444320762185596826573977559842937932792757748729317671870589970946288013475482890311117286796400830273979086991325346745295783915806225636370547866938208909609261045770353715036558925831983960860935335396011793387803017619900180794186482923610205020153890860326130790308694982715667531255030734928951686330772147531780455112727511998307399692369590175947859808274144793893503298377981815269168269403377888811861120585243899260980969992975448252107792137552463311836838743191922217541373793751582617173387364649582367700068875791769763515874129613876492381464394118899523668319407940246784640482189806676627273660524703962783779935813242611317610909298808703431489461247178490712963552364238793876111614616857949357700425739753831023015872771350444202143112766874278756392403867950493933051367767669173666922267547153382351817252298986367332031519401070676270302321665406078582539061635347883196596380840590523956592595978051425744217355972829767103638688059947207254309662182599420404001027819708490357344871559126127336391818989977955206191433098844542693276797002452278830477026302609904105378972066522264825251602969754612557711319848094110063825213830158821289587328054203465663355000338385292815392724900663948433248705426457630940458573680962344254932615845651608713414083409427375063510184137981142443139407613454048300634451131595396539792785354506898620671087468729797765459490260858163755630644507971304397111116220123943991458990363540221959594486924591701496550087338137990906243610693563073859156135980985746020365454808945427515640398928139429342632036569845599575483578464521325271639966726302642020610647729000036120875535563875376161691804756461833579454774844458295203542059089723191479656633713661887370333628548273740694968416861067634050797973401574501171261269768615977972779118301339712787872580844646027551554100944284249785720790824248934332784965595187750686338994120505271173017084112531198742490271281027308830971958266072114763908143571843863785576559055597797498233137913856342043454734262087185670417892156989135095533931232492572583029365056876432617014034407478729016379706538429236870105548411446721141025795767543939644149818003335832078634426362843125622392279491683516639915491586990730330331427792552496126475913625178929462436666187119878614987290377949007425834035197251085147779619180217236069113897050920721296984958933205648227498710449186348727757550901494478721129900777750738466754027885186291902126199616976498867019043664166266803552691800193282983700095742857589563246000610438690934634707316400554517597418183551428770098756378595088249742604824907383754850434259801502120847808650270294792062387509497679696105286949354826899094999839748143233782303507133113212939350669409714560511736231190445493941782041802712870817384175260344200440785433904715362713550744403823658987449656349971096864737413753187480968407533700372515751520487283279634074102200459449592924639318022848891156393871130674057186537633843063748142730266919512158225978953339586677594098122301549481300785919362824052562289161736231762531441554086325631037898501752998635067274019570749544691915822960445268691210981370252903168667871021647662348047304772679764658652508989193324397912622985848402539883369325983863633096012786637121423818332257883926159707578009825443325831045248660463427551130876280923607293807161848652583109436089848858861266831905001812478844802279815922319585940410735592597092881655189381991209764185357464561484379214312253959139837816117430780287500366820272991758191311101734745905538938619370736976620972408960629417919640257107282946971500227876545251188353611034586711524124795022437122215580966403949899960243337434458538855606936390420040595256119911273507451750089786437228338595500068775153093726348899349536487845807001526902167156609749686459454026189915218025196808849960806298293827247318160392495398757924772953064550888488643062875895929136130254189276221866310321457894919496566497382025089213532633339737090799078284732609495087421383640038009253427925903421233788955261077565274625361939000564055289617576321310543188685356194674913488665004228201495731212188809416100953937556268395145495234425017109973878223764613847139166275269506695243685636097198226890746128679555459001564808366532130543738097102627560431618388441339180605312701786360516676582180063566564998243765709232502749154136169170387208714276410275803375781129516835771034998009128236834567233341516810656994457506938923961896943717868477032608380423973081291037092630215402151616071735060166222078338284218690358721713942589702233973340850781745227677898375814009161115278331593232103410862391301825941132349053681946433421405611742281114076712049199515323221623882531251258874330430953440737304315837004340926079041355709574297645425472927692539434396300403219577012853549220654974560324452247741380067328935029772513007447878184166697168478394433287107934064003202274339480410274889979288784169583280342463456208355992655165525378353063764256656686362652390251227546957891876952281484409542224983455476047342318172334026437660563978467414160717183299932166882027590580448619927546827210469807315910259315093408115712914752719515686884801117518651670795622052900484200884517867688890795888656995151039576074361801786928743625375364531130490339991439676377945196224991474506898642840257448321580313973642711092259312816315923051831697974258166611221969517849203637902225014598659716537080062261087491435712547133755871047769424428373899388983975227077498967834070378850153060579367397768147305532264245855515546254774333072729637993739672541450917745855265678766046815873883129504794304116000575832293310714067677256651624593305984409680027890182947536239433318220293999175124626193871769630221447744882131991606273828962963174815622208458017789440472304829327384369681756265128772331872442280700231437711972007821329756301343791983559704921154107631478316791443801079906192345122976533378665219654361099897088931461836277888247635947039488123662791655592475925859338869454047335850020832957013762347201178422712891210655706709797604394089076469722430092354580904784419752457449973730680365546897641203628039611951250342909351947258090470072803996944016494067567588615206270713242995157419872050160678322541727262786229191441129925084444066650231609331336697352858548860813484454295279391205546611688657866625103645953761218448223717929896285760065055012374292975834103149086939118506414083808714329077801785853788181729185346365279201932918728972492992248933467472302555842267008951023030286892494425683851997805781937372321193327204754107998762889759855988460313529146966907213327429064890930623388420682472053531588497266631213747208085594953011589508957997638238225625258923997034049370706087439732691524205103570320094463905361221610893612745908901807001848383453914199773894987558153779464223643722315487602254223142993601813743200127408740381136724669560782896197949422704145015659390791034265800731641018697314119774440481640694265851107218015206497441889477804512145376774630581696363602483953767234028856100132734255172603351274713918588007905377463112111212218095415529540029088662170406926858922961799594195024841691541491523754198394764083219462164540154127275214620378507847924048768243810689060400822286407004003382015972074923355911798397284244642356112972700832470906156261981899240672450315988975620704643392010268151863477644974449863881323506426038328117092945947453927615737043560848182913087524715395833578923054716701820686172274702954483650394700227856741532063817749853959043617064911012576750653892741972168391481277230325263847972064801527097428387366326439791701068573775676644439756934301087199624873806603964946487044696368036387364719950528553318551655061470670108922091559790514765414304431631186951936073234262083324728774716442643160947934396436837996701844876605158722483994820577953749596627682522150518925254648218092552642373394359637975734291888566216446377608081400649565766117510817021771107812841386062690768110050200600396833863821086111349243315728770037119332438114196593883974139622362878648848993835327116799795381563382791055747596472415847141728017292798311041827558011913819604986426014612042664365324072390769449532169903331351146888023841025487256933180447396095721198758282265206190281295958025049299610977878913844090932656616825857591982781855713436592508360376872420979478774585945198463264398460663590949783007712218324351695092140667516004790607402548893999518972006087683721234068211221557754415211089954450777833108674879670185835124212685553557371511835661242211435381908542476627571148701270812981246481625851968918188721744705876975519241976347888997094279770337656584089038430821453328252700424018560932737335438381326383014741537490548865882391896377237938417798521184682691610107209915743650548128791255959960709965869868869823662005227432834205029026611158520636037908494337819812338871335114251811349809645723920542958099282791919982155294875038604587927785390352291671587499693263250246247264780046073322063239800997186430332373943948408191478295966683368371044410552584349104047180437243284389591826912656417456645005246016800746907651878385854258623252798142306516338991531056317983942214690300408313313120875051197579199509636195444496899040437392300376663162915910754617631959148645171296377503304272105999032223521303898672837910891919951456837014785461247582420503054257608377639962215879589897326165210594240514495029565770071742655416752593218138655603682293730017022349986854721862116766999773596981560702246786984957704961937167284221771303053499829068845629803603525548789893206688562742008151416459185128276096711889073962368639305857636686831946001949939741538977474596621682623386312664889728372877207035253970709888436200368130406578816241163805433228553214601731781687141130939396008077571324617949812917275892567931952040528788250645413334433358245225671374147422395510452196631338348050821550873361417192607265679575999591512748895614098577498061651254585306381292126134747537488082810419817846897888964374110001895294803776387235451068796461104872391085014551557503767191341031177109723557447589268116489647989538498088075814627165643170910482290074599690944912434211003819400480030091205751263614174287179507795173337800491065945005396064375790086954003159214234560961140323296786886019618055418955210670579241328498017290394935531753597570263028466136066680949244365076956700024522501602716666511207909675339271013354578302175758481886143631643884148310251486067178896790676030700872845109089667077611139342981922113730120264200001229260401379656325996569387482013350135410652482404581156087712488731379523801310429100940505699240703929220304572581428253843747806387388591153680821166299468783459756249934923912349679241287887569481643803108227695575861857351955682882292124208029257197968569419582263423932483881998987531044278132688883242721089206923672970669862995660822115308478535002912997771113424107789638091597985577565708947065732183393077999607016520853555111127407560322505061424387826684605903437002817710152434161659008467833738737377660942869194431704347322986362884149270216452525743936256844542186700107697147666727962939398125273622868563708383523024028042206698191836330116779240194697683792009857463358272806577537187684508274339203565738411599571087243259866588928681741297210560069105000038132599051397854136709276235571923239784887929882942515782613214352321790328528259068145153958841995296874211146401900000696247877075272973064153588552055776525177732152051052627781781414066203494862016559975815192123875995808058677579647416255081530882799728363175947492235157095274655846879686614977131315723363823112839213630883215990722413518410894926244616909778022114879126894219639110980248580384638517668296527471297278503080370791090946510134024846030049611421946063430816508745869148239508841739678981575358688575704058125589573413639334659209596812173719184272682475783653393123302339990404645023363500167692160040580972352494465345744720013562139450341146955352503978404569257681142551932885170169920038685874421340922250191039750720004176678097746898709622761287193116900820467856857599277788933936206881507437134799642733979372470801975065575312944806945657012378276739008287661924241435829964464968955138477157060136328927102888081663523301604092908226561342171677151883184058010143478044750835960502759210019843811142844186826213667639118412270325997425867708383066321704827070865983513607107833518420654152404276628164539489235902817292001816271958652272926508355546391208045182143235381238959132729353049318292026493418270044860832028280828009473617152669450246401196376147062643729321355143534919646207782851185079573389739729033247427884128111892291199031137635079371571925278111430647968833004540610767289515542120420817219421264702137394355353951765778682805481898703191980928474729469178203809192121721756456306326796385559736074699213956561412253391655100170190185070957928206325214032964501459255227614012113369258857874443383835551309778702307425201442698262327607199053586629131436072518301675387186723859936930567119147897772889322929869531404603788445185586666693678245025939554517619086352469340288676381252841660174200076467203037551227192303502417517607836074757612278323368293163521108947485155354699303454047730335385839235978858594898279970560708538053575159578802474407392494658765905450469432452803390283841537433070587369226778634611327727202202014641884812304031925711017114279710681008628452650908566263045549254793839307458125169628552785799025171408349391656578352775584489083924889276016817036032348240332235211245051594440315548659365445400239289731795517233956920111115868146048787767780663053047485301995675622654815938895234885852334789505416959668318813024789911960798079091861334290106667449407982554285708364290360177903317466679125712852730932968847170936006245782949652901566846679693467794539230959234766084578793039672168333078785610240267852257947076305965704457618466763950191498154806728168531863469452428176032772238250206743088922467965269183554457947016090391525991496663168057891576995140781812273137777302622833671407793480297053905564633151006353146691015566594456485104987408266911327353256091096213485063749852587914615740220050184452571373108634844816705036931345404254148820458269158440547187893797774390076402330535764891647217311096433052046218657469621751591976567057320385049165632113879989418581190539635981828853919813899754324996802572060665393013713558214895092366863978543461800515330239057599858472751261960550185531237725676710001027315290869980054615074413737660726215553286555579340386278130967603280647042763780612720447875049903676176175434263547843283237968756005465450177527861898686462125080348314360943582270510716000875956087500615623298910350246094583020815653775728284747601643079667767576410002166257783481254535723295730016214431386560994283598870536906580329503587443354342477364822931989387562459091886068490018784655973762534472658174560501607286442067683161844199503118810389202351352273514647409966643477927939918322293524751094270216746538971440780047486673127077557803637510479964959591449116955257256867496577794386796016814570684348740733327762220545264906127859982277816836878983028663628897492680082633535321814049008290216624116365911710485478212465731635627828031252847947055248111937367578720512491558088581704147319044425669020839278579538835405257909289611990465307822013921319459495726613605972339313013282481642183722351327647904674316936363770508918954524588866151463993277551330745933294611724857090221384877966804313822602169830384081026569911645644987902444574476528142368633862055247836875603324803276754646006945185944944701502034267742392307363252915157055719720649905573017660421690416587438203208473586209590271711820777457433284609361649915255476171901626520834192716792229396952978235612332833431899228433463822744471029293323267103990284366098439290696966001669325454070785785550089423793259815920750124130150863378261499701490707241121544105631332957658563170753661676807519949964327861116827022924076169395762039843010424713225339631721850780829266511347196602752077044467722613861154984293057658103496619725560206725093015126157882934380465617125055524698437827461694647393569925704944685532861884043147456510432099726353172025447043342611621720642147375736882338146278671837356800427713415734589441616556919852098264660554316599058542093768685500913938418777340563636123921644254880349101898085664155036976397363643477527519729314861584764160181599614518416131803154363367376111569090553898983049103848536026642449476894027284245612324765577951934168031854166400223379892913605939819716151935896361568699061546527401055546356569173135333102734100866980617336775232217323178765839068076554325076057770258510363376233635194007565687787114636491211302691117524596975879168159852746640930841876805892083131904915631711964040373478899314386806973134248835728188031622527131202619701028556508320579405678941739477579535292890080580987546312837850113247980527704078512548967698575347129007849154647085537710318109031037396038706719217996791098216173153353120347961034413329588374244311527198826098545914259866037770521271328691359311057786957206094967300245924811917204526107276886572504683605607634464250674883418614508641043836367006027772028692132188709875087946025602572338350446269898914423823900781196628649937903743437123938162515801137486128113755017556970686344746478372579959113246548683148513258465057228393444252295404918874961061296200546874340124906199116233096135498674596261311706382058221510337245916495959376234877811094319211262683115442924861500839467446623415878267127922188172042087204642015679687897915813174877035573830497142331480714408576129619159912861187864510164143381649746785823111852566540343423388946959785977211516152346538039347705612726910602018015396712897656337389996503360222498293035427062510979413075189876149300723499384874854977601823495094761418119260087484221723872373812918199352146313167936223880772677199915887454240508408639937805822477864605730903356412734225112953164442799001134837203675994018849592075239980519456465299882583860579792712369970654464399226944553008103284375232067178250006171500669787042868569841131567764758318085847641352056980606248115789720163909567900564959966737534206915983357450252434156286295800696231063639115847923101625136127654900328008867628394659035827989496935280961488702710877326139927379859229284826518911620106216268741522934092568834468518511946824997997533788004649362655848560775881822433156445624513683599129638384468735950759611270844102392012465235838956388547760033888061978014389346384876045972413331640855726726162188106801604636047912922029041141599944223505289549429637407573225971823992186041384556775328742600262773691763853512803158027813865889071963831798816316779366314066010853193823595650694235815317689758817728323693530567071602661966642986615884740057189560406554980921673142567434509191920951333741406581579446965242878394420699055741003564464214976820422257433348798571019495821945683457277695539506375588973833713281823116375554397423162730543674213718225299069567469387072355162806430917373686212411805936231526194194054205793251480794972011018560129381653882011476161717679417507718947067651225901128883563447119010879463334356834349492074349749384101928453522765233514997067868915555499589152270744093776845777439410124576906567320253290496112599085156938150898645022948367847739017986195897048334071872404544865260792264883747777477710112685765267034060598473955427520845610460799789877085660232153829016936201719832640529463228599519977166905669117408799099263178214357287924150111705167783945302470052298778431856585062355207173753384390053425978865706679602953235682953494028675190809861291730680983248794972383387513194535050873622079875283739785945237431598299848558013284253346746798540392709713950412953579584048092891456777866454124825926462705052668861417544609815420161402487790532457033723091384325565066479375627462102119691061726308828342963101347313452370404357648314362858786567745892805443862917663484101113582962327492178730597926048309461711137728020643203412851805240029762170303510018502674466014352390061702303032315830575597743826336118402178030308373860055987737200986630681975922482406112661421076272569870499167783710453191694149552221512486991524053129804886200025966196148539124696131622195936212838182791231076358079481017887631469536704539992024127631495442908334334645562559129473175466055489753075851326116489421601183754838517298763538737099616871571174382140318997105494563986589864698250128039097680909074413686631105497803642038559442221993195003572020005121933310421961610304954662904593214106992418495245472720286715393242705990740871251474863226860043772572618068547835796567445413390247687657199036835154057407800943197679762449601980636688571269252858599948364014676330992871825083417923080449952076748805571247375231100475792348800106585902848450078378323662629714378371248059840535516437400749667277232627709064010201138746029194263033673746851956500929783492566802659550703886866696688006055130590296324145194853879969566745942668642086048317486529130565401407064773787893199183847392682772337715278113544105083884830137898928392203005277376681796424788623402460029854465400346481956778631266197349374696929873239022389325133949892100658609168928277718953891009234588854703352982805298631581104116262617082319656452888755081687583302097900013116745354989151240410306483841830605043277852217221432498995237659750887860971511247682284234543288594990610136976048540905189877274893813478014793587475500824975392490778794662510517728781075522797960525196359241924266667332451362985126019585833107765016999726482075330837505964625771962353444517086994006560128548229441047560065150064248682306337540624457525152303862329811777735226850024376621309099520306233685490398163599041219538648973302063825494912912657024807787627766868775958885268760834801017201008163358493238648039097319568158491938466060657587080067392800686777747723821431127899002966804897165969561246288064967553992820847749384432781512083803663523994100210905761888613092693590294777816803454528693487967966597734491128191552400456198461548880217809399024629479418823630792654634505970516721178218651656602694426355517883934849601329106701836678160568708917039441321868961984335745779124001566536567094875065462273616835148720685007827102399421429965255037324845947074543364648617660324118882029991095303063674690017487549527138538020585295697872947891120967417777150001380474227316262748324061149812039134930182876542103357682574963788297611226786564110488392994658971128861577261539723541061102768210891464300425297253526582151145290483053296348725470669156918052132399440866980781987846751100761005269924448890694500663921374043426713567621570274734970304606932093772835981411975255984464891437101649833915299622706668007913702401171866719483708856596200709350802158565464004775961556664178671032160356278683067983550656743306183301656363564400940537609695751701936860612430370058370850979102678888687453536591860054311560874745438271561131017811357826063113205348524796317939675273822257863886819890285028748014272880307916629174441467737463137981452232907181267980328170481732589835427083456598252273576167668599256106556525734294834888894971492772961019851608122773161312753030627680633554383480856240641428052036975591582906826038901531100527121017374675462148482014056825607508247398030281921298233823979551929005570300067715072831533254477638102919543454641739703972465853418487330039862934924912224389665381595545534300009509382461130224218070323775579431889766446248418623314159180981251006895855468007186855201855726005702241885102374468079133621337765177876014555633173527303551452558177190367777084242338809925860039477428486990720568329583635495228318786080614908039269922380451942314965913000920147045154083370470379979002590080097182280396494004532586892692092218096860784403442345876494191473251104238988512152068434408880742482349424089237246053241377947031539412141627522346056287683531836695535442878727613074048150602597418130184422679421635548222920704266223259819513805744028559975984738925460656399310658759276327318144401895261219234298023849575705418510995661163942421450589970839353483647780992798157653796723377015787155974407203234595790120951276559570453056854356799799056335215689922829155090178597175409321929873559550524869109543297954517330735660979410765930010097742167783979561939633870865023708730312250251018452400180992238933651701840592346646962947470903883658155098810300489274877319986954809964680743192946970111918310067479472291901529901764826344343567148333018023270158576816169063509368773164638977557234042130483404961624904060685100803634678087921619549143570990747617826299814660023268946714994667346214494723770777650499485779411651319814459287793309512071465150955266434753895268245898985816727208622863112036684485708130432805926680233380818349325479932903244619822442940682647012985408613549087380472801657617263362972606071086437976717710561346946728259930366061600855526870154557751466385810061489967414544875218492438236410607194388966023601389396258028233934383716601598651879506902569764165689419489263869795300283559770118415400062768883614315319302407614402978129633120453893585908061415021357379032188169837814742005226925250050794671002231826129820407871814779481753342365406546573446117092047110027736075274218050321016486042081366581862703013837202061636477129207512291154920524942729269514565091849168559419163677667023592409683988246385468340783851249310005074644019259811510595362449452393370791808239370081082255843798181582340194341666744689506319522928214547958078505160756752028750726635649875470665175806602441485115145760519606654290916868096567072746705092456738977899431097068621680021905590159770870307136478455881653857794724232055999084518238434199789074015125238316359710142286956479393938491222688041171213085819394598173908179874573618054363751263673994629177576017389566708918926554369783342587771342895645231473373966458601852463022382721256657008140149143208755011545835836969637101504615136477771445699869907204633547847861534578326204115159951868950940602861565700367784154978887602334975264629257981620727639724977972572965586139843973691470533104979660065768856085899483748895671865487633454541421500162828596719384363349902483386626852403797734958121725447448807495150972239513115993276444046269120926298004783922260656337442245094425648456276455403824090766682334145073340877349001852141286513181321809212031968365452510532587060886698880123337654686751193027460624099008888060077805511283677278064927347669824951595217318634386944474271975365947052280350647466499405919219206235654620854747038188779208512731894390543034140446492348864976193903406451411760770622880003808547744162538147866967718943164545111389387706818686546514231258600511439363528836294271475038722676040137562458807002280827888701678540819319603070343448259303787284342560216978371703880520345558788012855134927331013051964933685358558376022549870394844279031590416257728313549822770926236521427430039749090692484060893861854657468394645394904488619201579893743072714427017529540101950704677429714848472360909726137453530915971703060282863422475643724062281256942799578580073237013451486650378210062701258993277634576777265313099018260156463648552433241273046398483428372371612646809366917918094670536228792254869187339123676208868379117823711910912984713760968606141647229107865184820848853495243957356693971649050607380694714631798673705544412807478462605611288099829708315487408025845072085278423096983891115447619036278099833350846682049477762740675247669624644650021340234718962669589015646249923213254156565777766433132254445726968126403603614819930214122302482068309272108766918079977421905508787438548607023016697159790785111495106143516993262316174208326757660776443660476448125736969530336164137346565555479716373051761949896787268781189538788592311976177670123049615349125560920274863310455706031577347027907785741937221434190207533233306923720377689376484122762224048864029014030129215213729651775644915253506571620254663029603894616612166431149573370785294811876371309606955195261216351677306425323852030618892552310364305415180813561919602822029632342258313749111540907504083639806541121544472323426063914608872453269219338981598186644699876965331570442688386651075255109291994441194662821406633451535338680075878759611493654889729210896762969275496025459859402314245425110494962939561521599554309988382918796876760280376672057435413425896780059062158390946990440475094359319108819538440464396754613605061290208364889462191902232756914756911385410093040987012987759498858508948630675940685981963748180237148712809804304315583877757126879438579362730694559113016421975958247490267944150600033371464389531620079755818039295017736269810560943970002564652060599906731986920562647549309502881378697792242570677850655089161195727041127299191945699386082570289286784365309146922824487976295998809237723447663287212614428432571340821470713639249607581067878691063517847448892548572321966808239920946180633335272525572761189476694127190854596333637222322632100958714780294492303575791728137207056895978700136515427783028463836257064896205908013442549895194268573324480205745747043907059073997874042136083953013497289321173719095962298781366825499689199409246828283519841741900225024878388172150878944153147568725258401363749551320603538181736457454703550575147189702677774796138643083863167813461973022830947025105514155280067141953658417795586717216816312594543363757733758507005083572777939423328475587248535279268487109843356222235774770088765527681098585225420843877506040428059711726948154610984818435754574353439698165955544729341169659933169709332435065976379476297528895212250276677692564986122460204859849133792391390334920551895200694148137771788033681411481130627325848993572303526504808528802503417968104075784681490289427255961797088012644571278576406954497933305042061831918735787442534369510159757831687008201298703612977217183369071615950554999139650076157702227737242834482575341031264778614733022040820592240275526086185089475281437207303700800316064781339919903886115538712502223473128706926622419840438927422521944561385257483974047987176696319083799104077396604112496631945172751870263371233641990498733966339169180284689643445962493563258276271209282755272043371002946688338379540393207457910650914527316774376037609809949548691372699905959967538943470947246199792254447168392631612623771337505793028013512136107058357518951996113404744185831749717171474363104168033239995035890952161433788456018350467235984748642111358239096037436092541674356440831605424047220669538218375908183152690660597085471487012459002063731145091085665496949589169511529244659532182625134527498727131214272697240087053440819220435192879223694505756288469889587698986648075540372163834144442306011655441617313976607546438008673125920409153280476236584828425496802584430032269665357593015373713984240471911204509843485841430608753281323829156669190566251449888538544048233570462769879981295508503793229497076461210512503821182785710015106339091228278890492271081353665171331698331537136212257251492264023669982370559194080008565100955091315505578174146015691327799223025665723041852330111362617487543320889276558657882623013426315224439566282785867120452101746463169808976070621419413263373396055271057224096456695594778562762280696785418817266715284346007968357771685019013002969718273325701402481579948931240038620897040397704665572972048202773737193768683725609848904626536772463294091838274789296354575221701273289225127087171109792063917411796954140283618977297015946262297112160851226288828719629342257245816513219349573416235124536904328698515232657413837212117582522341439533365435450020777921243351740424860755026668248515147756680673113811185113446033202429119510143024449245599995842050100082233217974579434270716659844615058341036641071127150362876366420830626601336361112357748967590341083813398899172670887360319213727801511365687666895135715180796193037853266315702212948975406954566427693874563406485140626190215211777266517397680186461603248477342777857312432103052565572828620445319945294425895383346773362847991119740862775110720921247770180187844130871217929089822010434747758764032020728694712046648441525707888932111560734144344683253120787978818079783122360029919984057534221417665147568541716796271535526365056414631706509599441110698851547222273729394227970326199114170403026173635050066303339060199487337156260464068488510550014144484244258897499898468141595209463453451854070295405708371779914182773248428178669766827671710048551928068373494011116033290309647109990750995955365811130386166787029110275913650140708734004711977805327855364873799701327557669980419325349275414997215778861051705104945091953243115036582805568689626678185036039010322959808299911104800376768798940860817689294870135643575312456476810032498493127486759807557360094480155053340188512507235472304926282867153851601735574009754910277407248681169847210574983029199795303273854652090430751385274738383188639485565483474371825161920608292245240774263688968206227985451877840854395856824312271862413906818520090703352483777179415295191653262547958602318643565556185527521590348785576630887336250642328599481570110725550755164343454503527869333899563140196122812394909873006386588066354192966445641003225846693640233738784193422148602895017876468548070069545744996348657943201854603141852118763402086924968797079082670815600067406500310501646845544833049010360827649377747416514784737396067875075760077066719517703659680602116742119795124116430803276397161215027107378470972686826371142535966126765776166379311264300897161867711544286447011904809209003918087294518091093412857511010268603918664864647595609689645237043758137876641874623302914342082270410039274801471160033527565384882167221269321419817174221009471842723463502708333346560313802596219202140225122516412244787249908161498028334942447634668657405460931994521965349522782740448593455990311100467828753736670304211954054787847875355723327613077847298468537873764074902137288596336478549194402201771640571077314837909489672622556903542123817671403524887604684300921428760506569106912040386015833545898493712290486046554703366547591642692719860613573802846980968076628064041636980698610133016105487499141018889644495688313203895727928762575256083074393728878280529596766794000566721311232935398328492294355761205094753070944898469637129624980180559305366312615492671778700965432574080767020125313051665829131361301548427823552140767773223682742908994906440595772855297055997346995962703768172919236128477056711576123424649643017334449416404785906673375809467189238589146275757399140321327804204656593077913630360653051313263546901030500955802617111885819797383795643735841975415933274902106599513315165213267170421277363215380287231222778547314359079309866068794881401343499234287369104664781017936650975307318050313250570167402882534500359565011852902623646171894300780685947293143532335035269571410131820389169310539609703476716242056458100789164534577728821581125064388876410463218696782854902293023679595982290198557617539718984197735185233636212095135609914641831801415495894859311247269302827605502825303010730028740423255155530861335391555270650507538032036199463773658191224428489711627822581981108564323972189375904828012727081906202857474922827478078463339809928075329966953749834584412233753864358361340730202826162624641856230367312221795142326415915691610458980963186586468951367242647586724519649034698903372537785924562678639252784979575091223182915467727980040531525882204780273093341607028594887457868647723545159594468870173705730670804447222655219412771694836582416163027299541895107220387219242429434873708688816861030676037818904892908270144291856974286914384777406152882383164864724178428118222242693870119718314760362082962573221397376842719880176369450659144979473552922852796328202074288970838645316845796017790694868607461613105964455943557896711680154970662304796276446636926809681751202651607736425963451118792280131454546717110875198871448463549958735131109286139374401768502872083256534569767105350428665346050221978949575277663603032529151927373720529198707467667566111601850128884948590104356880440956168897762589203443476370606755925043925406903431670361476739153295596355714010273550392955611079606455053243103399774681746150246692455046755666578861369919414418692193516876677996527717609323077159370529053054878979242997464213428016589206434023905539203539806225040849841787350124114590845818201131953679627145464290399932528435838227115817853496174350788744140901180475268922105201540050098179285140454840858537680092684910908792945732582573693960351981427269696927579288126005462612430595487106714995092954482647284546494156749823012370960087294303320591173831942340872960983101393111160553977169731315968519354512776133212663244207343067000466802784321752109352061216736182662137760100704587657826874646326747893112626057669098653367970967805905578579164791794224609411707484368621651290191032396047218637362295136716882060641005067336881236914494561706068362696993591797529833546960969201140072729977857834737551827771956303007159340873368987974039634744562142609498372074739705592117563967692118966953640537301959997522569003640573340152912472853053009428758148714492070303358606581671637274235425559544140266125931200977477219585688233374079315014654776976352379697838373919306316439091881369635598062554398355115165481765587538372927008486874425497220796656217962216875459738750246233185297876452962260435097486870813389885993247586493607093918846023748266520995881011261632058755984885711439672804037626160073244958691192880849176164850855470725745766146504887125830404858456903529272230809223430247776123665387089241282046035654136212512241276370380169614994707359747029287620514308565594850874411646162169867546659885750217700113637906379650921240452936421229612032294103737155738375930964033007171651165942045745742178207263396464139410072791329322101920281638090983894705714294442279460018608877282372902857309267874162959612102899200099195566463222522025050203283260681343119488446889729480030465019355531381828689279803364237283504946689161338303653239740285183685444794665200499563742025579983230041355861083312864869922383558729295414243359992828800594773887412433849968439420483111322772439736119755343480588781824658467550329493939048886115118461372796221188862319966364742096268767117660325770728983334982328169744763399534119337997355493979627572167310711069639115972355895797391289203977664983970511025349544247703860123325578179884983247140253112850072890481937269022981146736180989055536282890530661782752363607022624816112516974765134187234094055967522300491353534485742793655978900948407461308307807670371610130487540577578634023757233086462932835157519468820948549917965525746441104379614891450974067733441699170864128568929343451834951666327340625574798806606942156492268903210472899035558113650607772284805851571820027606366652414018620459927446857284001521314922433388231770904382065359939753150119066129480359164725788966070087626221624452588750390948435386116923317782520775587303018220181961582092444388618219079924137796961889290411942042011152990805316200882368010153553651659740177645387494723633092523812825772412806082902453577817741878027338034596722265771143734306543390066506616916360475351702926592286826968068480751857553691400424680514804842393741335092418449074812014666629390000934527720827923030901539420152510420981381098371105748101439138031687863940661764823644556904630903398524549194591095186561620685659709818749334623002420849765967695609600425798820229964379669497763139673989237460654797392675487969926046614156048033873661408987076455878784477363434658189557568079597897503265793887822995464279808919339114969234624609186419109675764131561214360714792535813285508504582027810250489277403044477123433875339783819723965343746235755103863946739626958014856276218410236412577519981276969947214552690298045382304219284110344896846917455622723955907589480447978141683338686578345901486892757055102307503046605641422872846030225531072033183459496622967239989689298199046413280325004407114326564213291583853302948941005650273380659480080978730055938099306327668147518923613663005093018664466701692623688647836941855514363676850989281551310295540659618249886480765389499041296321421066164962262361586823469561039492609596158878977273839619255776098890597230198223986813085344289285781916080741265641409454177875959028555514744531189296386992809321712767753043690028025180185126139529120387154079845239058316640715103393738332252528947069787435644604022272479033244845011608173448638231014291833531670596641338322362879728735128094997051623449145005471160217466238002978148018846302659208003855807432288453579131299701653435520315003742384037945527802806131466529098946870819571688029731777245059664535579135362928476661364957180509200308393524723351551498737498080512524423397221527469260560012755234380732621698177527995260136270315696052627154370428539907011309770086081046098443297020021761821567752035266040937891566439454855801259452309147974327709539903737326540950577283925396311679646374951230986832015748525852207972985324926427225808321156303617753487380049551675132883166006027341872781269337278504587744869240626829488824058146473532917081361380528694764688228788984960763980486004304992580933970700599097485025964211788334872580067135132114350852513366948460185510154067234532239442735028286309478703676740835860011176983593794290273900089118314866464253081752929764330908031951851874575598052641393475545839250693622390307346622593709503697329197835777826571594252865385317726141154725008682222823964199892492277723800605491876253931108090702527880955514110998663109173147181439659238346442314944780341994831978436109418314138862986101095357349638728831942901543588651651025053392186867261928582693984525754319957301655817795031993871921431481046112848007452415299379419676576107441494999680576884634998325285355408189446437827371302772987618966776318359926367422229791012437081851500406957006277884390727586194943897829982909435886676256601681127557897875445521827383360077875783520509157959722575757433379193390196674515976225353841066074918263243013565883412085410953846903652047422635234581318782982997609098572584367771826692611107289818852135308543685540617487661342931527080385134146215267863932410122680622106402730749304665238073634416684976329453555627883571494279322498356361637449512858887121351403434284980985327018008334593350979233601456213732846679389359815635108939168438545475332855241160068132211637734277169871400009949921262890389124804605094719542005177707239604654557906450061640827250673848157599395204737313729918319201693049587340573600246771033840778497491087649171786255176242117612770810401294117796597374955338672874689480545022515162999604412179654931406869867043863630220576263321939553812209270632043032366750159448486531203311025462105531820172895142838310411615380317755449088018324800018307247632803184980278458856236797008847843007560402476553831330671022267953502893587983628327416578358106551674883589036240043792676697618755402003181116266149068051486641958000656729089029517142044027211948294846517194011076223133484236867695280273541052121232726293721620074610134665434402710003389681586010133542978105609843981575117253415424155261518619811404007707106963937523205773369962046997780469006500761505384604584139484969518070629406186093862259589286440066390787993890998797385992314674863266243828478109905203893813693259826652403649568449699255193562662259460870957349014487894851445085606627641271250709788705946739645582781639335869425272545980742871663304578944075166355015021709755232654066529332638401646053012863150116774501224955617845335263338570621973331454552847458039114957762644742230625249722803172463756097885246253933126409845588109407185652778236005145331040328944488183855654243950677222244113688982997224596486419709267412985892853994931349813883697965822053840970532067279591822079307304422452760292741505922774797180207238101579425647657401272820356485015946432761923144543733843414492972011687350666690837854462242798724547681024697130814528694442988077729531640828733387253628913801796318474471342767504139675102316316578075128900073281131976960352160244191656320903184590715073323130184230901930123130507410232437792413540555832019636659372510660052007596679127961544474913524989500881801473826025077381133038956719180748613899667273150597806669029750764908750981402607314100951666869063476418460860455647955427006461168723500933519013178545380572830451490381945575623430403897282322386983587510248256268266331144311728887770254261683131818812147560265596877481130818003454711506551236388705183952104040041464724249697181790410787066362062415006721486166302829748942684883321473160114860325218190335557735423536287205151685657243071945909344349448909276125691544004993961397705377160493506715746660480579810840101489590655934416519349945213687200064685946442314718007394553954152820972455833787248072200463185560799252902065571088797789983278679557782642930419803249661128284329378480965661375625989107521108273745910969167698889928243638816524956574186426233980051361056421388342854937466427452674097413761987977469371474738076976273723341914276091444827198931669210221045377948127690210348207873724851464040486038985041117273772805619989316218343990124867012788858648232189433560062009641191292669119280912184640015733211505922100805574685376811101699771647652996703037316897468520113437413612182627136055433156950421494449234939604091437288199747038444939339330316870018377627134331742359209132832583200406027106799902440401212060625333788488441410779268664003796061407622948288095491332527545496577181437322092285088700060405628945965259582481486240741958287817601311765114830168198654149838719395923389330800453728368077200112532099645715363190801114326241404529818445051451434980681331312401688660073339873874239272467928273080689253968156728108379622923093380195448403553834893707832667124922660182196433029325666995212273924977523905689197131943826577322517755679415998366104507536161942321427683582390202334548454933128409480862632723375733740270341733917103596164285993987225527155841223982437852417382330684577386526805838619980226124443618668646791185704865159848580104710955608517869101242540891546406537027827868181670637411020494414882333603548605715147127249547756910722680391192165479445794062510572981680392727500479673374546042389096469217315521674473145460156579130635191403467481321903864154978761788664267992411750008941697558421076655558897896438290695632501675500522789078889802963524515073297720905089132007358011782462770374370473002156569900285822035448692834564614834757730079707977949040323810518992242355253843447438849437260898924863335104610275919469891022796585386312406098048985010799253835713711729898322016957235946495623015755810121054813929030500815792779813116171623141054765150862733757843256014605965363265007677242317098457786718956912527185784084379818243275564551809634439207498000969987628303161717511989770813322182149901504150119358282982139120791541847097430950560111561293738231694908975335752998342871533316414540815425485570713198736195840070492542411161492650487755818483248580518527222793056747077429049294351679777936898329729452346460007833423553822108735613564726256664074975871793937657594854824858134077414149431907803787834199322371637056124715378274307178710718487125893653009824322060862822296682100894311624188105078201792381975292729696893115926195959404576986436304389058470082543841445702439120391353991470403894687361944039479103202551964988593473289669511534068171433069760102514223329516951126288130206197880726414712402106268474878429206448190982050331834611253549707850438666294528757812059388215015664056686310872405338609470053865488072049887613853088197174550580523797411281959419928249921959887392331646338094315023425929911842435883901232171973171216109113422133097446445280792120853774282476715063508687526157636545623609705946124719625770224598266800236087005199627555637517329952734451342630851327349847406261529290619815756947753364568779966525929717279710653539571377280753085800367976569377579666119015630796248525913612719655763762606512728089281387703319734568560165145938334982489441893912705614422933509002809989755114126534828027374952300193352676298565362988540609730571243693785871181562676337650142099326689634828485711413922646758038925542580673280411044777431443513330490902112943974949444969869450085800773459060178218714649086588839682401623535688621739622669063202900700963161028404740442069523855828817426760179701786617558538357193035227568110919371738728732414987388402499837611969102151642057143386234812069955137596897492787187514074131061576421609141717606364773869357644866137318476534288717049261720819410541872961390484442337140938984380466267468166067648164115116746412434323909565739444740410263019750830040371458213231119847532464422956305847507031644305917025235877733338608787270386114298101524675833026049339987219776902037332101247920908933506397410307277961814545186198008018244007705685848488958282495011903505511969712086694056914757322726192764189817319065744404374150147540660529624343119349474839448494378953677024277410903740116472822714388681995715288136193823775885450909967971069988193846185132027660284476509671117273141802408450665764351479107885504916696354000004841613404208616170186284324541910135063911242843785659919430906858213430988363970838270957747193351036646936981086039436814586563345047320884962890513859592592105475199119260610817609042362784706501674568825537140439390024878138534068096952367156056862030444578336772506468343704902856408018960440490985009248137608401216412587394566663912515178598795016438502492822993525138684218570121223811857356374957085093463485591624423289442295243996593899430622164703672898404850232890754968462170607925542963093822648143526445734277797627343762770154659945929939265380182199854605828473143084797334511949153382178770202000033527518015080206587068193207890379335042415711713444477308235902083556538294485144367303499755989517398599714434958622110035947047841596201120186647426303553702476408303679917097420589204971438640001829191722708223802624093046098483963809183431746273501564980928211722367305078068513716093589745443343682826966898637671650857111551612838563277140779729365974489783218430779928671054973266050183963991474990545684702294817250047744695010371117373266574829383394905764287852608490490418730371855850119973942448026757987869625461512793930085720720650515860566589709862961692925427019673210927032233657623660184833495051781047600637276871641788769413324245251571343411356682463924110187872750831514510389507146794876285127183073412166013840252084732595024610431588854833958076389107247203728049963371167951912666012395994655359032285493523871125769446893417501559458225849226116312884305971597766256313784198507117758872111618874469883477326631912037445412695522221660690684299275016601714459870627225026918114260656982733254409535569090193825759168216134480447571318123910118070261449407939860698487314890356511782972630036878440927815848351758683021894863008713376628533587318431077086282559092010014868136812916141539487826082398735969459694118204826659732251099232136256277006434675033198395290908161674776508586944366132180142179505679926656598844902893706219187059156807826038420926521383474481472427111019672111759381431491350384271325807265609967059690622098584365747027417499128214567248229526617083220511128483305734840315771808550078882288704707045457446636654227440149878846294765192499691290255064723819529789822309164717791873178479084544987825246828193031439745142579183077876465151966734413962684452943550683017702215002405830254840002582556114519760956708934380284285090776395089440024633873826282774727316974611056614521883641982348867914095675816066051334957344100254239502354210809622438862855527241869260855091392477570905061842121231083022541010980287391469154184786189556542093996117292501936721637010167541187717133830155332766596567974513050335556167150169366217452617296195038992010712618283573643082450801578583501923095932099333402072568088071501406998349235404839747816026509441318844380365659586250069116271908348420634886133966135738778548465011430729709575148335453864087921500674900320683601582652331778631176252396502924001640307758940008794856463050194277540789855269413950668838747310250098255006096689146964595308604479885073126621829367833724616401381517162299511582642996980618246407237053662624151216698272189103498810549591491586007394123376263489170137575896029693287704280289369588900035675781097842198789221606285066150299609008625214064418800944415261090987879622797414132852645780374797331792595412622133632629674416936289815780144823399704681627656510676597677988511297833789496367572839660094645678514015333512515887629292198196199852952305200693942840739661928648578995997833893449489988500280001680492217708978848391830498230327760625948235018383942783862958799030740598144039389172250608642433887429837543494181539636149524097336796258049140412057726191650714638145906761940151949838562984572043856457142287086779197447856426052142334435552255494058649757420214099247466344863980804300852951477443252043760504982245960047474781304458521545788115690502846905092193412365987734898841271546441942038856385143667631345808604677164641645539051095455183886856739219764859374894531419513464794942463730152893298611623063019327092443828493641657365610395187823616489634044195958097604818456596074955310100455852308841081411351945166656359097011013209487360110336827374232917521082072033663071326210230908907549168064517160473945950870549950329121850829747844887425135945268195050481819334243522920313541147779679611076225101670540658515257833629924473452630393920514507535441241351830384664753069489370517982200686015613170302152496305954176197553170330514614830679840418749280736528723193503255220077990457490166329623759583920561012035300131721321402611031107579656660475481062883965173769928592321668562869685705527701483495328421964355498983872476248589292616490898997930609326698552789319094119786061402501138076598868685276255743477727725276191630784903485290183257349590124915663393206610295739353096758076960558537532754508434715016325776923559177713307250100164033591634607774412948412323551114411416588215256517571028928181793227089033835349496559078221504262867159398249256805020839210685749265494222312823393840655532043935372876123381039723622487820975598344667094334932118995681051633161805385848696722671593899362166401116982948310853343506484412399279807722061538923704454037903510908781691803218127534922314861692554109695287297031885915082671177560103868466877668704321269022993148480314944601836239156598613942649493955053648346614361100831110919202591889383736733551817539649159836891872602023801600382709478691216713032040500285258896064228650819710364090457479090172798285543286571687438438863543432885515755866997015407793994489295881243435022525244819207327903850609644101721269012996687701710812960047476403884945375284663098763728374759638491142618030051697194295527851427482999804324345412372366469971826760849674664264126744494595351070682643251497295573960405841978468899699532900002047394550817635059184312039292944224113538291618794898629687879499839173405216628870610168632356266646626103525239983318564576736190943855475165327426869790217327554676651696320466006708751049896822232712899851525446492487022212586776965657236043517886124263499630697163207420309930092414327742214665172345597277521350195851307256659303276523825034373302097722333434761421714863338094704880850752184351601924831905337236599735244995747711395009469315713820232163136436057070972201939985090437033615173438471277973711768620462782261884789736435825475571220222852573479329511565784268084253315050234341615291429049086761503193564360923933611131592314988024725622947219529348581790387453438171149133933739702620692300448168223684908189367821357780607339828663687197318775405827093642272497837133399470648591604293496735378850912392529908067629485877377239354177787330440804019474751165055435452181940303127935069774187579205122549997325369586878651739262547582766914593975519203977296999131416207267079940133590561347380633150332115679478383014239633969308605736796855955286930772616918697716783899347366037295427736120244556392806945020269154528675311764888230830242443421115067803708667347426823467941150597203983632255041899453928267539314413768965639189854719197782886748510339320553059380842814500659726190087372061158228387122334732804030204198709995836990488135614164945469375369647364745315527794645677341651559004810303703786527017836753347945482054751180526945454329183315711037360699045160466401099017544612238659497486962920788308748585183739235147766739569715158482449008630695846960531540778656787555711496080612673972608248318541442753909976486212418833655427843053456013299845806438026907886541853645867790586807591381167712481500806098782042381255724114625739798993408088609602026287889471061811388981357206364015248023680241441417508629947172004937333033253267290797287537425608495171621577798301262321317178832120832956487639495668061702926965512539078172164904707349423197272682908575053802091062324695509692043245366829491249308226285182568039699526061818811789469725998758340854756508362121024454623002665320853970049015893969308837486881807358666783524333528905737877931414257232476864399422496929872154407257465642030150448811824096085937159804458565463623821369954636448023902933464107818523068526939950530495003212603688518448956058309589806647401730869315287565397133703080405558876380195247506145869853923385923356690488120575313547917775759944196600676068097198256559014095393198614993722382548752962066500714284811283366055857929067203961096215008148922821575648562369541438701789268582848847439713706683494382488272791288383409462164944264042953761620658240545153786744020829007099591101307965055170284350341527432385527130644880779004841589459148996623799226079950282036987110533016460300655800155788569707270330340310070732824809880304705346447930631215915207792793413542763979751803957326194152230203283660972142620725154503020592963329684386725358509998745493950132663258250882762670815515485805171998970704637947351514390149317524721624940870393188851638675569899010406776004222431426786340034429670642845956946756237988081839131682297268704325793741922959477838151484705667618386421799973959186936485350922628337798141575263651742939561133626045236262696393705507447139758307514049992485253273820128274338132725610064672497966858824876068811188509414575650449483274560082429306751556978994848149328021721852173900058291732570071185710756704234629399404322350591130432528444883277862668403158643895006668164516897545041628244401110556073215885510996747706508536650210735456772577209140255532665120801176257382449920059400249267998146298299638527984147920404753577476436428381711170518265366960402879878176602887725337137223408079842494582576744741694180891480338496293125541242635781350356284046615208085995323246650851850966710118461030151768736264493120352471215240101230712800524892736625048340648497976488812536322131343941213156209339545001619003888416182796026213067509206547387104654450427369884736914267284882260723840001008595808577124878168153735344221543190778237046155894408159169221103114989077703229445920115102889267071251267616639842929486600357316294277007152821968911575298142520790464793074135331294372028531847845606382509094191234606735958618577355481463439190770742011705277377137464523166293776544339469078786177710441821067212558421715240064815707563877154023664066320543175208567716600505730943923981547260676642021529408623223895292777336895601282338373161803118459164704137518617257087180511299744506635442835560055098036066875422493636056337530623707464446196182310633932929444501334001727851207915101287083099658891403663759686406086786385994797333405021489270303534891934703278287603432124398513483495812512618789626200406570989388239516474108635517415858577063740552344022868413536560667178878512303452887669779715570631993165709544328409452234125707930664523496586998637007309467279497643588983555347067837131181675415669237714859906451400013852372401379696242969331462344418665515800078099217126719983850763838244470186714020654803297382535714971882083360263509869978717078115225712119110021287533920669547852016900374448746461965225341537849666770416847361510989771180960580591678033537718535886423822421908807751752724660838170225062850554071839651210790480719712710500636793482778763314147011994212896359876639875070610238125796857190933865069745654259887764341905294447010613872591134268385599211427634230128456909430843127963591431442730664955526984674378147085538595367314442580873380518697809166440945430616738948812766613931643220271501765909395034210055645459206707071389328365251750778309914214334218126338235234464667026810141731512487241009106043893262720459485569005656975649797901958929072682942781492455044148763296393250746945227622760583170837629334038172891062041400270651373048089616316659059615791432772498375356969260547218303381779244459846736472276364893559368143148121508085057239868645207074911943579203332224015787167894582849921930663209298606162114448953956962776527880898970585376393503495997605603402090925674393195563606242335483985500116640094065731873876369393017885859765932068936133480087497411356174066877740761697547095947383234972826694465827727532380753875726748350969213152823754193107185067162002014537361884021698355857860513262828225601248944300854405349469124058242827206094854672561297760152504042225916241590363611821669777157808696437529190370942816035459795136709278117053598960995349326182959839770384564379353720641598356996283153583801954518921652687215917499109216892654700128669390139863602138593950031634196288547125205911325054964962320834901028453641463331936396778091358355701299714946697701318836909937963391100265200188752196139372336898665649776674983902358530628103604585762739140611647629253645922622867424128618584692939887180308141157912589217123352899830579643815440453616564888292058911473832246560556227627811943459028681790842316378104076875280403337073927032939020859542993313895852302912029081848626543506788076102337375816005869067771974728803098751696506334115836223207284199407071218751213511320246723219399003245359208914776831375417601872601926171793018106838688417807910938346940958478721744446610311628067606819816102963109899604723363195523157135846187622342349775468255692011724699666962176487460165215133734141127873139799961295487332551900876182180690281984075237257015461822828476185055079083425505512148248208945396386289968511349158614667550682628779380407933504148735784013341485587762509465731200632377135908533742625219412582217025698854822738849047381376692870885382397910143933389098082266688246333553630228243827136946203007703976574919386185145488205842492950741847664419832918607460315663793583946602071935719057525329573527233503238522174870260511732776429086998076581536599387155592900652178105827560620446569927603209847243553776366705017113459132417043544299294606574017710186435947679399447844316890813242675899796420422260819391701288843936228573692026741686318109510889936679749475108345936171614558805162182573943881271910749430076405091254738949625214042454653705913096649003023360091972706053229844123276147891639586460444546243100340063562276283824296260777607164205278638139613727244685637048470128208623951699378460649425187063506830002858400735477986966309788709708298892020492380921692168848538378724771766606177648538344218311288283232780714602297901134982809348807591693981960381006299796610780888873268015160102253804148177045696627988141422137313524211075355793783243137320845294122928423767660342337488087595757303461254912008948795762864706707504030164007157089197540143868416658092115888458709342213700405228355085840171612339411126004104534702720024877461301597400462486055134401742416598962522564181699888018553318312020610530752151056325685865222021517521799649387597586008015111881166260793247407050544749583160071009259101393065021213792401506339752251603319477276006003954004704513739894216704441909126861895648896474578277288722482725056710269830672310782506050188196506696457263988083001287498852840276637925802194136365180325768246391989662221458140722908117818662284608565143027472717803103361758397376078005564100147730974847448305467386113012329019787687499074410362900913722696203063891631580805136030514476183506665196910740793403813336426765175227086287000354036486073024554192558374858976541036994326378271132609203410388088940520271742064986261989628576090218440036056484008073878471214049461827780538842012805657522729284406442256745425263726824268378376285712753322010560705964031850610123889766490392821202235986141961718494854855751322745057379201089374778506681646468711714483680384491314702070579760098512584655187380194407524998123908583376297046908231337659141932390950689795197683096022558495849538496101272250667008314786467897176095631422332180463000350532016780452287936908184065922098763599538587411768396591757941222397364688099329768558002018201979641599699296518264596911145264887052968916929914626684803799586700657868451316684390713253984294960177031935279623397724282938687872943618770299283225526550102680628872599425359143400840633387727710742628886737916989753418420550525127923563138800634730064699388023143384775987344194115538672894562224943598120980564555230496430582128490968435635959554549504809468507765795798704906750877391052001971378877811044220387771028623297851996173233249759743346260572844286564194454953643799399423219653208573318186962756726745179458539358864678471661335668596751581322624328496079421309309231645280770679624245523460116358040859450632371886823070581198764478895082857920166230614823079719299506182930235732214067552479436831661742723718069221285623311251207246509915191411307397712002208761780182992182976238761147914046191903902331657347414844170160475863019448899424319915961122752709445873860352572406120414104345309005291860386619149307083147844252600016701707474084285880098155131734321314833054237275919722236363596228462398811580305821962179324792384273357290636903159666697835216215186409754917571945546483920212753179010057205357051698572875537911184048966616584353796314666286177252390980723215552899084746031334673155090709117794084458018961334615117196323031343579099171116479401355644084739071130127992855927790094418717268809101541811700564978842974454286319511854290719303123831478545275376391117427119179993803701134860281662880366073278533688155299748742630892744552919109675922658731833845991984723589045995487949562189962675274293320341307774643730772059170056321501183107095814367437543769154868014542910048338270257114586968803402538661443494490001901356483827249110390938158618670682122165253991690055178283295344397870845203342761378915400455013805496389282997743882611659813592548734148620521698905351705461970240161797799839852043849266478363535982379987657356702874095955000986287868505916250418131466198009585466132139632016823597350385221100448850556180858702233748877494426589912483158967818880761283694798292382523397040824489078250544169683937192592302479129846881763732988123337658995712978501687982820173782970553027288261115124260791988619544824868012031944783439018406544639034353809439130168416612580149970614722055306900813702433527054141326184123806012320027525416544107292311570454877857327461165498030378454830334053727585828146912960343779825011465905238966097821985593434214924984577953610603905262039473669680372529400262612857368438954541044765447057739265747656624907544550288715101382246761498926095255733722093395291344585128444145491810499004850129288887338852281965255552509680091053053528271245685758887091329265039531400057019093485599772212743489523094629200368298618081380685265758652595410981946109793382759392074807032885976323894241971737923816932678108614128355328179851550609761578769064264229182308517527186416605782299159000142515133922229861775776082553685442434410757945166513364983785904743409171413165370269099714211500938363178673014525918438615103873093081737894581722653131893190716337946857889682004720127135030021797322046636698921002869600814497796837548096279236831106659039601295200099793861021951421997778326021873968240023648169266997710176911600186177647469300508780181371804453312865465340900462271066226777665945118547154050823108860362139698926938849185261258666340781822214372269480559388067167815096689900436832993175218587656592482514417636162416580547476650223593090032482997254681245522286344074415066624850788041824560500184789441262238272713190384904769164121951144529130875657817103189746717039428931987993931928020970205488493480321100503365753049354421112991958964383968383198110121406864731682669947773197314944907010096864108921872990172168576021986212944914139254765379183121966646917279192338166746295487269477124129260850961257864152228530387162075550978345762463852073963650897663490594260409270532220014248272880027948926611992134561357228295712939616238931539783222186698224740844861188042644699437874427648849946135743032132184414183372038232014499289714416253962324292433882672078116834934962807009029173435839017935298200310338896746991156439012936584853939470448640183449733092988479540994749040697917944262382815435675423523470431024784791746049807515681887477434463349039736070633321567647383296685614399754216191399287833318194433447587704620293144554666162330812749234206498449718928352157225219710915165819068602665941019096870644616745309264749196646511902641452620009319286713955297405634362334226992212486441317110036257706949414833310121180993857159557660860649205735220670114783532880996177432020215312526555941389432337236780127781503395094126731855199454693423205265169506767257696566562942260897529731734252822271855660251152139764382641787555011893060816435312071576031035936715714897555189667246455061810613191551053751850424450099561979696872199333779486748638259520280168277863105283590968496120664900519558325124484176255443527170641688432138652725278728714946871169878729075465574925886917727052367133893489120390692661484013586647358055777219028468992821731737895132947024129514309682359459160414175063427192322215554174232502648052865537878541817575902877663894059722215149489190109704549383211142417156681347228828268932710147219953885522029081024682765966138468860167354308953635015152426486020100124398486948175106124000089685934556593028818208818137366681264443262057552644488319518420492995447158072069148328973895640549956118221622527505751741570004751842567140183591183372548689364895698565427452560794900023490027632436085512037747797041007415789231464789417508911928307489077072503970958352309931282667581803088168498899417933797514817250432896695748889799850471647731672884834715616774997882662888568427955794792188292446559644998011867523705791218860414703317824682524438644577351745052852210935547477550864390297422013840102477846989219566820505642892098984818657536128286767044636432346629122775322287577287301932674351751203441681988079098432472812295949597958250665812795681504392752195705415751934605450826248816489730851169257594700797399196989458392838962657461717790695102237260912733160168485548708251357574724035882925632406882104286477333286362368018621836102438460419893732841708202261055579656124122079522302649179782010082280440343742045408680195454979240292696565487260947920241483415390319046905615288143545677511178601222073150255379768875698756645988315800806722095681357861978469722233389247086847312759123068391472602200436738229613200546411694816539286890015489775016768754278611847814316399195860628485300766721728033098198330337897062169577480703277241861100527625610853946061295037693825181049960512097343809498889757036784031963115189472355192277625338274323020296662865271688432031924801959870014231988706181316379663136048301825174024574038434012115343785247668364825246429533220667747664725730045521191913057040541979320048706059856421984206674972848902392016325255419485139274739857613228036898574978485594496837306413747391691511367811587866888167275674471047689785178458049285962292118039713948109822082034113326986830540585601599184035451937141022210136480207305371360236839352487747033081151798026731111980443984484385839575472229778727128495974686950388848118853615772930195172531154326653910364806794234000945777771115656428765552979082970622430272153947358941836666029936788899256633447850729649041163050957744570414369481522426170388015652699058570081585742398753094494319942357807936775609989656797633767723290282799985714880742879838812154555272851501991799955890633301578780004832492274909164838571223094499229817119707466505769826720719720398824639889343267375580973526871432355924391939402880678667937801758079628746859216707415569943635952050016740670290207297348441896632886791591623737024791951946206480043094365174349825888661554255564429527887875509400311667617838001616907038979990286311945210397061957834825845581371326389646639048223362106561434487391409810413237873552654056289881912293050690204418736805461250632594307579861172642531149652717427273418929160051642419984386706873893568227193883251540498581861850887895324837802904636849722843742016674833036371415461641397836941739687595177884780285134509616891444576048017365329616369945622559663966424249878085439889034906347690401470179938561250667962391583520869822378823453376478473918190006248387659160442661607801805351153053640796548631196320299887257717334158638799595264100418539539295161131320534960164172646957545193155881200117895353961978367568171500412648127533790261883174030661792173814711858276945109146566164409578711732701020984698813216132974054834375762476134918518676208748557703614407188961029121316535014388740982237886085501459216096563829447807624926483896533464024452375972079288101073778072117599697343778447780631870000949757271492687417241321792769002064141738171349436805043109677795701781637678037270514617662800934202443971882365866468451425802935959824714154342197420424953189659725388824471423941874483035453473724285466365181306945301435476940482700630616817865313044071340089440770163635683713020174966452227225059718091757798542417379086544030312606237241028628093937306974933751769361837135243962855944643988747902020148280756129649884040363105106572026610654293218686738346138305757077595579818552758357652395097803805890246617839441435392940136007119062489703153257253199364300153995283170157121328137432050869490114202221610756226273063690645174132691641180295059539431999572527685268899382018975311281162958874247494500252496976309616988244941545980399884798596729510366674721464123496313624585444116086129553433162393064889169146361290044191704250811405686859038408759016474207150826871896992663663606872177657869716219458442720351693134594065507813902102874585098980674837761522273060929908673902811079496190639700608552581897037436385484491017214499991869261665073124843655664324367472231974098422869694395430342209975639158206622744444120829894985906785708160446766118444523721191867490893097530238885967085713300650630439293628816515387720956895087852205930484188071260208759986379897605995175075900807587597588944576649072128541370425989339434622889554419319161176259472789951688158258071635221957073832858436965797536073016979843269671945599562395435613903534806794958474799849408492133375843107641623609168544553559862424251769994927334450467059066315244826990602884766178797696553392399430174080614411185374654592859103574454135412184935127416325221708417401010972371264332551304576253334818401092315284612456480036614952204032958639496484809920759204227041628419978789572820277673179426435691260656163104505083797521477875769103586508221967333169792290785008338168594583018430293370066270354568541321632263400302823267012016909765903682922547343047839144849072574673498619074698705840557623076731610316547593992190812524825801170341690421086643901443146699368325106259593833284536761302620582983707982777180922490055493066347614151847632856489877208813251937041693850681957312738864085054496359958939989641125559422805844448394726192001753611230395359327861783989729751301854721420774996242766597409358493857500710034682474251772175771611058274533785652523934938329125865828232017814084858286056946440898512589588343502390157561132470363268381797850426862214335297852410797368236933424500778107730459573753998278717124311477054153295285914688808183724490819902575304634390651797622937141925710549180646549643230386001799987224655328792922402622366430986804921790109205571812347940273066368582763051756989029450454346814964626973140455042029839137655814739995797171085108557052738962985652047426579081237441035149530184756721691026053354736841196595112437646135850109511358438575960332140355827641348843582330507081163363787900044337433262103950819799112625452195191322490908556402277148600209234605741989240723807522439750090197184991306432561965424459693536629081562909513417466749595493410258122462750199707432205769105611378459743674288426408374317734321214958602824045793507159182099703490088250397229070026264623432677331538654348608871903692678768159796574007777624566090072253717019069302671731111059215486661638376963323126233966099102758512765849447643391931828777839786837804456692107737100643565862720055094655985496109873593228176398282634294040447287794948700371501043971914549663099962230571017660077991424660204075533583493061703276674813001460600812948666441535868779893693364878435702132741235047860290551463000637178388993017966929543844115913868632998535246640235402865225015511093435888043876880991989835260013165897511919921741838176598905819183190082045965238682293905609519665585932097444050217543319777652242988029610042311352041214215070776884365845182889281016010780372680680779639539754102629563807283732650816845787030980898547639209124965662532025147868585149331352191528704618122348864732483268123922390285083338031388404335545798280086159994608247424157880250921403211094919088035253572121165870013221965241170490313619768926378436906274451936360780052603271866850495327416122429620265836205247075862902392628840469757313735192151367931369110285834831211736718467196116270456630363882225979180367156855052377525323476000480422374610851964100810234855556267428857116503614496385767500350234102264616944389814763490882917224099795060318718530628571964973107646715729569592524603556948886842417905929300850559569527887611006384326694548535377013531027318000175972831365926607725017173000957661966239573626440382082018435481150630354877471525961451603743906344420962185050165526838265563962035759465620126147728706331853095549571452568902607230624885862511894691918873601925206978180392648270554103348920471050969423193504135395839130494345107622237979911724567708387809236124296354474742209941384229059774054170811873703711184956631312112552695274646440927384994649201763607046600085837830519724714012364511401732257861702160328937653417273128129600396423895365037987367579266255081402609104672066147807390785488787669826695314153907954568524771225087915619799211887668315938211680147995097049185933198091083225065566235537685851696231507671270668313742405765043433041826503123154625056048898757533140638040962026731143905006868805553773831944374604190477493162544594213857336806363493262047950344594708789532485657636602720489620918537004865392327873120895691234339716842934868326012536649492277937037424125123036578187354962435192250176912469233624231086732016058161755540317311317102970356800198946024867592627193429546819367619019101563306272809504348115914598278616218266295755388015741406927019709546296422940412383543285195590721926582318754306550554217815053479147686442842449087320495847647207469455166384360690444408365771716363010731410906504388796238514781277655848134815516422389786995783864148843318233625230013979187204001609466135330010029908235344686323848952856011293116543472775001966313417517211789785754772564463655532518277695111255691560846703638658443088043256818872436604147831664075638765407766048367367027643122873143463918005585428527390935792251355054859928578940865433304705393585952671382650702512593466848239319241605529769117429026980124310448472101544434998610287317674073590975840376024327756627336033774630117143547682573803495239295080221176796442033520445401233734938303875522346510662856598585555535418056715221186227265842192262415943264166205008546651103423159670901473945300287776609164484205046622286856512964845730377683180872419370104878318924698074969707521641749302387384294342735326150676211429787750187433612089682655573994110172939658287553478543943988226913853380537246747011212477681366527196239171712357820387594723847481848576724746262390666596147846822948061590583009126521954021128228059391410027243470599345887291958063964347187541317045564058096072794215577404920595440213591346311587409376293971598949996181278316946687009870337477919587105898663297767559776262931914177082231127324407476487856962728728897152058081808318793182434158762252764321300703712104047632236868353519558408258043918501947570375022845151782385313933214312297012971588807898499085535043811343548620310262620858510588187722370426418134784126055969418067471030666978754499253144608104481666628068368547924936374693543410134848819097138611714389349436884629770152322889192276722779751141719490983650790564851495049200605805257570874910306920907200504384974522802405906041198329340013664534048815505783745307772571807040325743404577906419672238462937001074312234719250105131695377343452044799534794894708263658426060565720938990458244474095601428337743465688603199383125610898179751428682546606807257140419042258571115277714694082802655279554882405158265372977356253229975460873592396194445131837562455899059754053711578148793624842529213766506770217887200776860898599821235940016047439145770238093556261608761799838406355150551435469682176614319395301521706890701958206371958804271347019745093706096009044893368663022250270486326476585080794208865890081217099177697526548660098083068447873164069734145767127568226551463031454766788760572568004835939478686033501899364777587689602403513091962068268268427245166884809756299657232450623580342779776157806252087490510858738660979008820963717977839280421741407068610675054637900989355102365393954206006236222174697399659554183588259168389883872351477106314951094079246273588916531875835985463037680819549032564381347963158191265687091491477123999360890326482171149360430524641306450599898477241832397114519998789027741309431712116706727729248954293226451851576051916403955730425677795702725858844452159488727417828151491253335211230105643416480861921782445977875650444112176717042294345960287320950299835516525861319013386492134898303036666012421742730709396777679412150398823766490170473130826930727637701318586774505684965480111469955969396003528347611102288022245440635734278103454685365930883419462116452210551330376066037200865655906303595122090565162026679430900324071866727694721038980192691810957706598717808070262636549351527066194013939010839358536386443681564502396245772626948229405086865060171337163527036787270690085521145617610637296095049461047830229012286633516925818583421112077757185129774828299314264327222557899408935172009286521424803788688786097151456605374755836067452684913546591174569979015799347266087460020698594654135786436805971136667054229341702051344841230591141218069333179890804236175390061228924664447322788847073328957329855934563964912727823368777657822781662778844462558661285226674996985221328534755407001047995840108417888323905912319190827295886894587302143266010191810259980257656238390912953872331084280061466498903173365741621741080390668507221564993531703453914109623894214691377290699333245553025885274856952766596442541137834547857794794676873794191657183091619763984401084547212012793368309562690460209979041514307702044168494202829281173882681627975264871517854525647488425015658799975880540644532207355345430104186268749155093850828807955887627975597365234969261938918708691202703351777632022497445425261980725339721407194129214424799711928135756633727005621385638525687365287841168234957599705762433222650170077496938881310928355485443324681293893283368123197283019079537398827393910165741804060239187768259889876785922625617326590028912379697667737449375294359405154111052170385850712939134765935097114961357046587731578221324114786789635880179592498848003941524919995593879105372226754616775222668476019629526760276193889180524079019027301280044863083723501026071135349997119908957064339494536087187404966034158744084354843479737724093192705915861538082680926532523150708050505512073486265519587039527252868572603193962648172372881136783026921541708944627617875731236814576737346675478349470379550130726606058821196047045875819846021382451604343878571705742634488403489119011249995052828739812549349306678580656673003591085268040450842746291910614472292878333852036948204589822446052842549381672430933485167340486526988279832275628762079003744020707636810166461602163331264831592327214427159395885999531267733523971504613094217937961340834982122558923037445266753442516739744463507517048376786336663352397946927368771594747483601085692866924468875331911121547821437513589855325834704978629082540495530104806392682884475687833051011166456604029072427625532348364717757885142275807629220731650610376820127939376531182851020843150942724042346349155887233424632508626120841215768169097986944249784589454733043242218239337005495946558870889548245348730974799843341400164282123164863461755081816238845715890202116134730122823065683141846845154844203217499475886618532153541816530023247097677646989842757611241156804641301290320524635226286731823199273958801746792292836115374564418604781150189860569652607352869162091101576476581090954840638161373707933199477691754741760880425234669230668495176410844579523507231793896269483298865249563723172434960489811578617255848893435952205103810098309946512738123452703696494502478531235320893637645332894631522666769992139146264322903452322705978221353856153666553927549716631936057947142773365566624810476069754788883884703242475476947630812379754584586198865930756287667911819859165862485105275108648427570187065509062995180795514954086638570448565489706882848031273379860412253539183895801235414340203397102322746726805973481344941643510067901032429890683015226798249983342762170522032034567949112163551008268361166557811621090097617279484051820827714955109692500660483861441238938561102372662290509800517879113840563951604482433519546574882173019584855791083158699923261399163322937101161609933553736979765932643649302825312709500905563322742376805690098587018302747423141295979459589903628078518756807821161951827455953377061319819784302893367841684150758394286234599334462558701086345637011957341210225251344314441017896827176554093885802789845809910456825489930846722675778485688151472480346312847989449973313475149703292716741428699772484400709354227725353750337091710779759961824411257976529533125103744090310509720165348342221872076382578281883848305563737215526869492898908654694383752986782139226654264263639578132406825763773845329600257101424283103806078165191810542101467969883091696696543424679181940481738323710724655428288371864682561174940476513896598879695233698753840402943459052145555728739798542566274063204328094421245006187047161828710128804690899960278594169207513149360969846463447976697123916711208634995762344669594838651824518062412428090055481236139871770161276388918934186689501546615291616539815680698447445426711736444657048774796455626895036456452330050575177020406677107529090656632756619560907223512271911276263702508329891664486965425050497418369584965527729754639129269250769846528006559736614202385019763173462853750273047278654240268287137489804988861431859847386838382922741886086410744340699114530254642816463037707450148339998174824346858075205037972392540514201491259892972709925205183848068809022607462361483461814566796433957846380906565793641969210479330030271012284907863137012254066347390352983472927679683661676718023102523656775537752986383165397017905900142720553699232717914477218833026667146664428760155174487464027636763401948868566073723725006437120128152037798393000746524516953907948524198318637016853847043569246590198009609262540939522891910460778092013121918013206762392973279139499966823436770096351301379831067015802300631953327858450686038420108655908979574461711031655241145164226124668306895599248661655833350618271695796328136729501388444927733736287028494817521801888916754627372503787814973818476514982886227850724755636416965221517398784148907374411015590177095028987338900759666528503669473682628560455244036015930919148551136739360478015768440689693833180001363348834420603811289900700315259283690108652502762352202558687792623028465470345184023659033626347554483102193336323272519090598783665780892890853270180770745938935321362546142156241202101397581217323891918276148905814718713950087402909545882985495406286416207554296069015042264342666055107791871670680698940953262919328189296639533461997952720978834551770326452212202572416920611850097698416595177409051736023245383898431475653272813374241311754526942998661770923475289395086463344637200179961966477390549862160791985102143505724381860348944324745114934558582846403939640715187176787849145522827325559544316804465667776569412458749700217103902797067631534338656292725749586976743543916246268345044242691411936183670551114099742852433867800967412906819549416527120042425900516835882700024941115515035866422830030202982913985564451287354266638111573054542310857761118940714527872596781945823679281407754995845839353658157039565910191627239126128651784791246641607750906423066816329655037154540986074157220919415872699192575059511816166044373077217464274177538403107138663771934854470781252873599011139790944592663610904089052463578407468620049304220583185875108833275527624479369141615448054361734348277722760371847029042071842236453144726552084761893545760865224856106506480337020570506813003026980266566457654304548348460159556886750123514500032871256086932857754142553718634810773550462042784039958320026262264438022031307865732653707350129163800819833067272110123407418764647104408143708846827566233904273116117271960861935102837458418543737650430105445857524783555163767475960878136461533735292661894482678678260997336981972625534700783652777425977329413183407032590689186733421804131981481317479488577956870169716368876404080287425274319927948463371724770908517178456644735626978195007612320003674211655858836373312800870563013029265994112033842830645303554102377300847753861471823669145524606666374471056500765206185365362423095043911558428883652845228731034265974565791639332084279754594891937409377681230113250024415348822663619021584443648351713529934253629447674432539789557517524500704045652189973525362358101924427047287346862647511942976164471256503358877149166003023208139111920863161960391353732584185609842197633712325589803506431012172511471398911621369789571056665585629462218984916016093708627643194069614686071279174412604848609398052432034467081235608997955453163950707386661655050849385696875585960230182566913334965630833305408809703643841648623846224001203642608015755707293071345185427384316292071744826385987139860234396411088135943303500033203979985085209309380307564162696291213800101855947806709253000167102894283104157449222476963759024235414692619787722607098532808857376854724686697338493102438619441735889802193778444809360107051397615730485350437414670167004394904410962135997444387037707625383623333835404468807218639951502095698022858916936068613129189626590770199794063206548655036464903505747217875298162219383500562578627018309367549769036319879031143901136434365446419334738653842358151028411872105616768335631304810202792306995573655364628321172403143675542657412306087823162787304092833481031580138298055581734217228615918488667561958872281726143266609602391958279872533370264857381245445814433314991968196074958973667073757083229107195413041850510788783725230398894035802547469397244749086895916140551560969686096306477044188415836104852607237877646362220713641854196274144294064488229161926795585126351927112278971706077228470565130488372770262627487191266048656248916272903494611687400681163723736061795068856774134325330314779061354624271370751483170167345364835211309184378681419125574072197860037262351995647244059124227458730833400953604225277546836119160016240824339726785184240574256504376234097427029590428735497962483105889071082601709886997733233741814230451855855032498002473510470756889831435142399186438187859025537487341699796422190789710057710254365894918981083700075215122129179348182900275239062848569982724696390565396084301294534079584044094750707408673223917772750953726538344025024491323037331247122112389398503420524340958814476365885983444795237858063992133716473821471330829954330476206922001669145904109348543491385064417272902567462464619653474213348352264477570327353819695045968508850741415243677676175647685309383770848475753219279232846519944930638910459645683065682864962732796247602253663716994547460443927704284114985080238073225248902275372496166578753843349472122852026812654534827540382867545075395310593225397188348599417891431084518595677517657529922473819855583023140057144981569486270726457987735227100746800211538334704481114094408264883510304274957512987665529890937078458707903182160850882364799617549855123437761054782125376791105728863795062166216597491703195840562920402977757443179297862224683433897590917786917205018512924049635862856228923975051831071300133026809086725326345365296213651588468244092388534935288281734429416384985391600342027773557781581352181460873911794237225473498576567782442637518404512535877689933659534490053161907702222387106669692473609420485150958952838158901540573912986312026021649259653601720701815450120472793744171259324647870613300353601694095500514741343032656318770303407994034481576353226061778051513107882889655580047575690610582913317356828205489012766828240748324450322980352752879560596383861482424612774399328146031953830336268830242763166920377054191487351940583047249664471809338034281574431271520510772292867999949668543427783776725255026788659621630893660376542616863683623462269576132691935221792221287344228350794117214495678178000113191840483170821335990400584882948672124825058956652063902615145705731576649119150248640618501034187062439389790827693658974231194090194998252451864568400143932808587015950965140326567676999679009930493099100804512848648724604909939885552066686798776915676848572650106917000879245982555980599429544101021279139166156008463318974439294294402483178219328599624784650128472408847021244931448747873015503029655974713747027937198919111840689630300416598806113322895118004112524057529981533087396157848125314247585629617159631432164234519852363151362094099765045190242933623308075679573094592209152456014985905146295360964473697388663011128097827833696518152486744082105190142122150913519390445577133710966077187095402239050838794208865829144992268903876637045716127128727116725053452470334799624019087416059586614546170961634818016974424476227241190036199619930265136585589695835786030561890254714632612490105212491610108868872542447490949893009795573262573839200714954801294563137325134067023225212592400962020042541680736770417260236536885526154497062186343924395624076670604047187048016535259073532314303854471632721518921768988393698673148430071239073966945192953244545261778617339149370500769696605854511174972420651284966081108067605076629643820184154221851700834464262582520472969956560326612291982294852211241006371957677374813514307230566940967855954617723867411407951187235041063501052741665139518472429672970987979262204920870801078009025534431226887818758836830555077099922213048961139196254193140569685484657742638677371122868492932280549875965394386969948636085084062168493230284873887846133818516288702476162186947552191227664017006843029026404266896089266155813861961042223494175304882387745977196162773717872711272402679978004334083383826828065187990177627990322318856436109640743795846830197927478839768259555989804359501137707185753742836176143379889711364734945395008346793419102820444929857537467113011470183074695017865187175059578604322210971586761242311933895358715547639709517826600734090717958430868216280328832383578515665631630411515224451618537067053301666873189509975276783285219972284184417547862289388701654365183800232155527326439412840713611018562122563941272698213200657372557857310750541991448787843579540657006067309729452627340056498910181954548412020813785101553934561004448293870588912130811235344671489069145545763514348425383707154451469300449437636841377767702037910464431552524455301366825188934169356432473364803018721187156238942849976393380810424184816435956920191718809353841518196267210715083451769036309120019907097787202013022130594900050130878718262603066931962797149052361198176985265464847589859617964235109754698246987204536155090936070113154390299849725768785236034314331205686466666401113514010099495246379795567557985393239403774827798086400604766853338603668017408240159424619237225841405058341933611893868851945784178194748600424787058350270542010479804168611581481293637851599567222619042800765680181800091420371279399934017917354507811038299132461040165097255556333255909885005977319654920922264880493054144290884477505646719190679207968647003043850924715583705306112236676735196290800945094094452190511820415921869969439773916390030258766492820952685628337627932115263587146926627347156158472181441263039449285466584977290803768963464444216476983376525582594926140365239207366729279287355790478341663069884950093243596844035188340799257178088022406531754053194429194212954994983450391556064320266806160698212961817286432579588627498481089763718291676519224902252913563316900561682259993083786724476301195728272374214641464323341112537015655821658689441512351208455015627335439941235107375172965828785923457005102044038063359396943386301524397666467233019911838814211615111305059754102016379967818874087896447623700670341570994637474843113970936145988185714746494657016105348033294457118050304106730614700447210485186363418474185476106259632578761955986713759370237420984686626408922524642495557512912905936735524925251746052765421785966807825874789836668544047704121184166142066772010260181301178238830150069908191010405167982473803401081144109586653341696815314799021420203054344651191706669630173181277047725877290758206795253243653326996653416592684267463052196027428921147854660692245000491702755646446143703398862930494582744450875763296773177858393961380106811711150944462927531025674079176513326858924267237850073408124737622892520991426635486520848820283865896933890453006006121922657533026493505587803473125350855493470419790382727789214902845559373578271896053257009447704051648668827764131888415632477509171119089762044830015303225255992580324750944933029145426481236369220023137345491818252344448623256496912700766819658174175852813059173085338343328093273576673651223423106971640561558022577336139358051551143217625064209757156580953610868241361675553736869479999965177780433393615329235426471444396666870726528375280914119242752402676992630615295829565796012997739013740934785640951605327174448505392706479164979900526080474572907216231635926096918300521463877023062707959711393284601438712705272525482366056582692113814475826628085386129870762720547469729214873437387574097490746301200168753472946052276287943686143926117444211342242476493600476395496607519732813467810195976589845986595859362443745367319510551336618194780905537583215578464672849723953347667627155549203875473524954066452872359196824109372102405785387332753091744907007536448622368662255791271792265422971594143115669922088681148631189095760793634773009248007958050144350776397869626334080688769711937254874776916356723075210942551056101282264436198215485135068996685412028854646427316625569088218772361789165082954636040783981017473040473675640170606124567749875751390802142137439014507215344486971357059887298953901580089817027350822255626100307611129974280475525168722727319021286049365686039658706223015050133268093833932588843225000654633473912985940263643273242466674243702110447675571503489944456954558361315705102075022459622065492882162610777960465205296666461218396471110725023246918316339431135883580205022758824338124139881960979134961910618243717033754411019805372643015943901504853605059796097730322287690323374050538578171317069464319754039320854838999365687663199013327581482095320614073702830108793417911462689686899383141255747471739358493567429795731390324186596769330725715836264523203758385309925305454778067577503313155405211916276376091943627481814419062836865462554203563053668133938604471263193094657785342641389438460780553409701638905748195232079757753052303010649612064979186563353764388725850273835442591097650900533260436975961256351017796936352824218799432891797084830859617353661633089824568530191352770174965696844547167364948715259508492028321227850078475901447781615711415437721700916758441334695486165641972573861510430357655365478704068076142095979196143466381680787199825409038194641471249468273324820787985555678972481804775327027652192193370451712355908976194948011064344351407117530496236859515702403883170757417143275732320680567493485372482815370195646420275455914994775232002619936659783446235470812695858299288943237402466147288301052374515086299572085116822373332137680184005574701393648738221051648895546556980847797477312690861205127422391317383036117822009095729280945580363036507587105079735169324934686515756900259518817600164284228499710924589081251628622180807843872385727480984915086502144459428546611436510771512493277148134107977614509569893706583685557989201554267491152954242047656763463401991618885715560989416352402225636409800218743390834107669630123652986857621901457613919160168336948556019564852054819342524664110756986697291337881815834628905360770202180740198762642967386861422226246384598077795839860599300779443538015584111654580425301356120058113045650027022205232230169291968332592328310391389406666322503734591142325434888952073192481568488544621762938769509584561422792919486343493341961198230911946957892822101845444755263233313815598451544799161393586801192070527407295742292774277535903550437941941074743889941564135556980307341115642209476668994975338522649932639252630134173722154234078469539701386734417120612531278161665854569277221355258035584277939541390572800159915066006139465595935875538238348273508087529052125149872904154537398789297530099498089500154582707542028428940044721626834157245889429313142783949588969953022916395232730678469738587875714161705126687283654299519346305582585248674204880174102772114959826163717485849011843448120553376150244295148290408402159583308705731353337466322128969866438544288287091483828441886670151472588137672233299590224496757099181806057417096764770420816333229318022295858170048959071396992423227685002451221327203808587510422240960964018622753815973595286686818896520468800772339163768047613164241168723339336084517591784402800939979346529303599855816772751175278725101108201551052202470043086327222755106509591200623856024330358472239465215632397320831683508496992371081413816933124239579107440227541387214994269766900843720116839436631285628812875616219631734021062758852542949590639122113904261870984054301879589230943153293534002316861605741150962592835024888937809304552410452995768039521464033148330781735592979308071824830775861746561647019485333919274390358028876459346887007235906739104246808401176186587465849233396209940715391707813465847903217131938300700552269634765904541147664428413209140290999694371942395085230314692279190193910780490770719141940422945708490925115652026699352111652918595837837695186227967081347613243467017958462384117589152179031158613257073924145562192510844501245048535472286601001048673392734892419712746903627625761645666507085868417373681424286778111066394637100791876582771202001115166025631508301400482593500080140870403402806511417246072183051596438934040875182066280956323681924593019195004014165301421870233355226633526498354898277659262685290532456379406921339782179833441115564495210341359812948729404655642289658206992594976554061231351253732371878109546806142715552252751067593304437333387937903597212493344957910731408537326023845951676945811400283681067340656402216141639746481727623929174244189647116434325064708469619902052641094260638475221390939609937640911601441036516018130039893888571757738873924697248524453828977928154259551740643689842263568501816060523496206611859649278451260976934878754855321264513925987913498359628511472340114520403897336321925394618606899423689028410574668568089998786833980058147225774237805366342471800380279277700731516723666932546480340190663294962035279766798208959271579046130659523892987736955531584555516204849960093376780081165153685957725863212708456415570583234011234579064579619995917712059988632335213806356164820540344829649310684859788657011039097543481249308331064192256284939866831526725710671423000598989793560825049783937562487409433752123091567612609123174504283070201522023732290524060685684243596695382048611889193283241039772548995126635665536574160807268745641263532323845762360592500202949730113412016038054307548617346396211270824680104696319537210567419346467337576074437917687386715176703469816024135739249317217033449414514111279218947735001768925358752148463622237019025854937295627901088703840196051134424959732370789588029192471614565414280726484832907827783164677825700341701403874695656230508344873264988929783731099753573572112584582594574906817060751147612059557947613479162806955440459274836644881332132775502798256788400334600389535877368410948432504490389548488007012769880283694295073592320358929522453946947509347024393469418337288211044389672627769415075523898308249340206382044355432966417109432909029270876758356111719930793765934246754723264764385093773886030091191430578599764234922349888231594426268060318728208828989760989600979614440690537302431532642303725684027293966668616977996556081838864432205611192178298268881915602500597023034423265141367457619823160737726138463918237210487885466370324175863882928668537562893502092205620440164115454512884478447902577334118988948077787867165857791352254068400788364188318898290974883822315395039252060111020225857635962827715874856247904501752245310225161846437526141283405503016405535221212454314433427427578372883156282581763756538919353169272785560188428610637755156315049686749580447480721448740824287142904758891642949266994090812045239702418311589125535101935787650999751263731295102056956381634516657593724430984144405134861024050652031892414990288705081431866578586662187463208928119950141752901615665121888249425166969457046433314632852434916742625397742160441898801785910470588756237619061059792911521329101745878296787009416340388869892093152906500259429124632689043949920070357204311888114215573231360635600531318922362266810346497407487038465699974981789464237943508075214606225481629218153234958799154500575487560419439361299905194007313338791394053781580966018316947234941327961287638336541749176154079947627771412444237891778351600503699443538901768768003362307395101927449420295574193795012461214461703455555404111860450478673486263965533122884793963512410304688541058915385124232242574390637061817005399810826438216737493670566896274372353238102240364241275595191742721622044142886882769747224331025835659194707577599482601012413528490950900738397176002746121521350757003484939731441021855578992718580307345131194269742759855562905568008800388687642285808612550187017696663247666227313286476659660858046127667124212586184139620419824082009966276634058555135666273725758394435968959865826179345348476298718033708259694347382234463735824181811665625251136664495800313156239998742429497954290046470525728341492981012724980537765862782687751904490968634786711577055903646363305267719731417266448493233520502039857175101692659869533793821759732656157377636500712320329777149013163058800444038365979495530032075110111309983074484185216278841882169030591471785987255924827901857056941093659224102639985126223535766860472380964675419678406758886452169103340945097055089653036249861091766312709432100663198570047059561922918107139706973598618133355496236502517211603685373880240404350701662209428885225524951404517338073391339554402635625143636894831969782116416259786851487830202994429258187103377977893082115767197955660677598447792817828803828475699436219651932884107517119031606054703877517025179359904205074992344199354464654644788526078543265881453664931597117604084233700030706504391964672832201964442500245775729333089101801174888483053657834780568746032478996208349970257852830165383938132826946199084892759659998860477210639968098235535248547826333142482237731480379156340528092515837269660049934184086615555909732945236167267883027207721602347819707887375462946381308377262720166738306035744236200555958240891305279636315805226546107997540066952015859996260049785227416903268426406899761744587531758596763387627606812545814784913958282320159883602825847518553348931018556571233807908646476943119527502299615588338971416169282366337136471417652908839311630875246648919474975014477062264811265556607170176395661693767742404392846974867129971785989833736868850348134049710320062540869286573467536572000258026109884204938637946073552531593184470117677672244324942601067226844641302914684651975039002247158770915856726061456086076914698250929069092446174873679134511440183364381928192198871246375870691388272322065957920864584258049178604802892224484856483688501848498076306383318391903460458008729820369725441718257755045798137886135258716519543291619122756859633962267350423355943330201549315768349466716089763473011455916787069312583531421540218534211721524503705927657807353565397512161545697234087035306033450251973016858057250841188500226353100232165311831002492742897592923573249413329067770397523613526031283243481906284716768732862595404160405062806337590215309647297347780938152472687744686612308531576581013660338346593020933829177648513904263311354862804837584826977175844295001472801900850856684465105893249125950288359596734398324837712077296078909860416479482135200173880699894379937183135110818804698978137315417808157416710377636674524604360177902988030320379618352666516485997883351364369766497640796872317694286836549687034545884078660595033636907851442113375922298836644877051154915723536294296504102214253122421796193140713113415279548651146388315185981370640665694727578645349874573722229255648842917083682599465771073541970187713289332116650319641976012018914191623135351428275177196238535176193689547159464674522555341520823240820360808522577020263751687180329420654059098018268851552461429431802566667649118942132729545408748888209683635258797190800880744259824502226587219673751167295843476769599834335740519257118881350911695576410528101841456309257845927639401445721774053587292814699484087054427328665732660462002882963602755312298217838031022132259387347365236257925356468390139348226398836133677013694646278680044389457754031055936313902901342054775586093154706432312689342003386102722106272538996487405567161689165817643601624824552776945016360054849539262284660477443452914372417632012507010285475013162133073745941687774981065802223939390410982721172852040461336217890374525283476464692863456564850097412806284992583473694527063351761835826485076749472414063583848491643668203288911370432884733806947455622532249666897306072695453955728180184906268147667650210287849184395950675947351342406472121840658058269833158607711483356355040547044791748628764378230459976204693729348040795467319145742323756419996183627101907531115223882819749272543505797284854656137226881982452237097485884770767381204430439254612097011027580134267186949091905556634204788502652247226561442241705622743403597439645328059234138230914813863657768707884447268352328405280214823194221762233586644795217495601618549544346540149189865979895721055046323809832558925914581539796288516472175001964196862274807448600117646143403011016869462490639205394509703677193675862070648704820273626924754299091698704127630012837728404592679866173181129524064080706760003852152757997243277956043411591186762718260974939174934957647192780889362027303847604910456422269223517892983400172701203605545681849812939812360987100472190246753483918601478391506131136298392587101897537719293959961492819500180728850949743082383882534242475999063919731071659492403429734012864980498695416123568059897737390501524349221809269901522729785252953226695035082931583454699763848347509217624972864705515496806704688235280535519979595220291077837987552389202639693558647047317058914286550656631372809867913701561092883165928240967249142597491472594427137045434133794220430777829172470303272275494546864929868613528695682672887277867233679690948389828213136742998601145322007868299625184746069662798807037264644188422026124221084161134456447572693943776239279987797311241644533726182486267073337315442928945644623155942058926212770204828214846773858249285082360037183277214650293382543436757517274921425294964341577388000637105251774870172824444669462255670729948243286725222640638021182266848927478568501453514874943020908806346958954585562176891118676745789056772114811914726085804837476376142304743640681445676623057506130911796486163161208811042406378568200327877260154458243992654747371916761989762299546316682890844687114520759728476053359737409856232234019923875269181887536288528984002550079631011591777422045820097633334272236863505280719306370813584326732542299289981816962757801301439645851418930610127701230598024932053202093785324010054780215742812912475074323410824070178425006535037534586263841223695471922390265712033808290790580500926993471756368254445805269278026791171115765813456578909937324410526046632081987399366222314327967633089972990962233478258753999825743200993933587086607944985461092557380617983722729428869615033085594460297616229510862248014612666270060583262135737644038690319160799109120066269003731059009362037177958174163257668067687898387953199430820794367919436168338002724051553428335315352095471997722642985423805789574876728555332257729539027700035539852138022591873446471723710271481505235416710321242412521197426263946296433362499306631278692816727052924784585410675839844055652028359845153180095181807731640403402606839017780563803511073202064648300017918365412245562252474087103676450403608667242972845632534369035363062787187363272766004805743172439681806217492556033989045613263599143307281653417000205003144430813529489620278125429887459196569226839594573466633468595328423170908731824453157679620064729080757612787276940391339232376977456631804189238134167011158105947458028736457937913705223690344505114561749883093795455542712080353374270805239756152002482069123579303240998149916529092102453886192363561645020842528611048232876759891511665207131769904348414590804333443147590935526659444245223630550596998345680558729197305725711059132651778436929582085899952944669526978383354659077958518470702717487145457102225541103856152390062500640432810919712383143970815985758842525291955937994217309041983347374270523219294146271349127324137955442538578348572844960316339410539562571673812880013040939537176303800824430905661855649289991840223228239995055622939343743643213401423802522256677252254295098580368618374979678732902636338540712276907724830324817999142238618959771634391691762504480885399344138194012423411284979918436316185991064996694794686336064655815460878205787337305883898640051414755696308863986767817232761827722177788068416372829961233665420673723999281595874172009198956802904132438677162102195930317899878067942989576216255512829124572477486033539652687076315854628664950458250993156645832334399370840394587484587780510914139003550968628792354542848132407805465805942444603025786746303201037797582672725884569476355063719169214705894799990437424502721823930830001112351204207718855588060755542190448768377178619968820622466423413428169883679490047587041269349218958392156581560998802470739365693342321260542166321612906492592105896166380307000982770230358468010832631288839104058413752816344830636252046796945457100994641183723467674532521463803249598295242715951839572187511325982269548225959469148198187795425844033626157250869226485620539391530194531362933771348621544097556606060872727564226037715260243938847229362062124187537717531251392808884950978213341870317890308571976536099167329499596424504263913303381247444109629843710224300533623849925130385019645413190501950824077135788266567589185495402592205733416198853038767586870714020693597972856086011505697422034953838465138658038067434475090754169478369558817925361997967782889424434328960552370005226709733143552097526975697418731317400448871956925856571579482071294403614416312586030715028446811339575219249565065029105327452504292721841138771319631804838464822837146622343319935539798797527305586668999660477265653787299127809863710054302727741191427955448035980842993665058398696548720049862703905745253950022659297642321916464805445960813400183455774904364755235161598013809539807568814772265862283094118825980559995582021541088510022110131621549414940839113111888659396535420735780979348799863815684348965191556199257819051243720658012602124135365725876534005161223368382068494363327851350573355747864468342248573609608171366888748754704835869743768152113948463060232115455874695084919141731340679575561354532355830066539976160413401540271443980412248203856334067665366209334469354103940992383592917376860715413313466916502749836136906760500392603475855890617210504742374660844264235351069379726834596703057796169478131755986145670548677389915370169755114821502102791931662998192340167552994785955205887695124555652408128736417042449105571738540863177570488255967226478076519635584110674577115168303133483337292992499158910014717723529389210432840751400530717990566035809379932278738142913828941910439677697954939659280640966706161756611182011443200629456409358086761490291352641557312001915317090895661807454362603293196894769150302949388694906225646766043688709820303476764252289146371108369396878390338060093307687819419231793094428812587371944328629202697424677483245108810172902059565053944006007081581480461234113370528315805642941766987782620350467190251397236797559974651836595826536685989857121863708928908215571223801381964313747717584045690563925499365635556982338564803896379192910462766974860948954343474235758990963391125425170319746997069834884009383771869687171912081952923546147197351515300784906472051999692634549545665845149445117738231062624795601311929679347785634727436185846083491845784944339147436648023211809148538898378002107162388507373172402983822032248017096284255758562114068815230168764307029145108569408538403144255961252339492629780438122738520348298273309380687250452723039429921955928656081168355945566351093188275622577211751631174049685871131634723934656384284203372495843185835439809498782484954797746519332146684242226455503305667885996844104762771799423896443483864816230587791039725684830875093202823151864891186881986511995274003845687449304549554506195829242577022251018814607083313373451099396125331063257855683334918540497199853865100383120800234559928535457453674905741765947426153203929291225794288501613497806684470604124518292141220993940450416437776030423597829731135544504437424922249354700442120865306496648125430977962857988856861794690681743528779824897772326176818485886581601826428063955608753246065552215201193189987624542967322120072842073117730821599211957535237056369374057873360374284542612696093033174006567989759909612266301240770320070037192918242611968068845133770534832478359060331228593900687966845625893734173773312076384608098723536123103302350110052465750652127229409280862547084061993506091800684760080558161852488694514015505567503709404915163681663156806803578583166960558727970589491668930342369494667055349737160941409919503599006026913344239255671850932083241057848120234475726776442594877349076083665702080174647807578088623227876242356103316568704880178411925339002854826117599770200110529608937178571775302698134718217556141285366690810807641828667114222638969867968004764238495938553282142041314348820891403551349748081267425753030339508329758000431168893198401075384980281964766583458844650804205495471631522318020632402558376986421265901125742795712260604198387156512402516112073328764719414924285062358292966774031938706799032109525343858036016230310414846696309310384213063785413494500757899926863267419508242664095771135029466652430991493792021543081773212847221182168580537123778605204747679930228771042546405709201073624426453513880747985071508168315943739213525162567318213536335845658728417005246794545073431068118437608885230394014272417711930284876596092632019027913684226265393515672511957571467370239407167159152074830647347560660482995378107001406707350914334181643512624908241329949815310496136933406054187163353589864137739216974952060417904054859295028307087894484341911634810188046144437379355625909108620921089194574622887943258179522399897274658596165978184087755057444647717960403604573791518353151869304064738675165284864350686507394611257841686865085363667253263995669280098938199948618025764843033551023692130326287910624171582739075103129015510011971245614076745782600328758866777273067977048010113594344674392307426487524359946583928020310452390685396947138675069019114562072128104635044582483231880478090164600935246382053043737316190241141627704186486484070797823564384528114544346038172186031272653622207072713276079140602990316476331014001533938544280697750201309403109572638235907613141046640761644345676541528096889232505926266409059712689960236410731314359061297934411702699833126825307151856356542096469178113830334817252762073196745601628382482392544857044556646916091247243124288435352916481721147076269952636479838393922967035760833350745166660375313347973943763387531741705530706478089507326474149869987907582483977419399076287128238787615838833306964974087619657226057001064341559155493404511600992180274190103720264420598760278218636388708278953248229246755778421800146762256403393395270472026593070618344664344340372892664459677742574209247188454384648830326069334124172928855958713965995805337088959150656024262680075902435557769814472807186072735512290803694811530291772821688710563496013767301598056255832787160733497668230274073549773150858463613509589827987908761359748995439840263461389059850304642581788510972947120439092873875919433483128885414290363045801656501318551762529580077231627304418914062746447705485535116096817705057052853788355411005754237055785437591111357500592263571067332232734209681329010710784841456639974492072213531026117299403588408657618480349617455124085337076976108840473955470569918410282042067968438026244464648681917809991271325214887421158018596958543370256014836206135551167132168966187240766517852274088819361364564669878097707228055109515768290982875268837789499800457505328009351631072297260818530132695088592679068333218625313176937784586500025570721772194106577453599854293901499873386788634028884691665484926211679470894383412862188116637732926907278910039504120376514439388825388737100322867837274138329295770718316905845444263398375467481563229643036464352199733072990691590243703283371895977276648089738677430072914325566677256238028416366025324794286823570079675371554117379439296325345994685038712986754206907408471688360817239519770482761339276706669644981549523774240171077227787884010839715289173808821468835894165469686571830483216628729706107432188290703671377962083585795858057569426931731554551751581594094755197431514521645441222375504980170579216921965780218684016779959946801896374902073038087311505357840844537239570721850907970003621686402032956779748635655346743388209380789545847901301025718991781254685373011654169755843135343168734219911357195169009175080516176934519335745099773177150983627792950079758524155851103193177390139772562401300820251284905960569921633384559419739465204051931440127544766031069667932793070359694791136281378404519879259943786233232643899548310599170459212409869583382572243504292928597098395605224029241861222692886912269324030186356586130068556242953116412048938844196938924583236189323763491977414276031736312690912371218890959020543718654664475502213361152204993256912086864911073809045367903329867136446556654757202608719855609367595487775184442505739595629441739542047612954966099124513781718159006210160400207800942497599673877002035536589325027757392131786833054910120359834208270184337441350327118746148984140505639652293057876847725137160577112752317697147131111523342549390138087442094806304169779643450247853670582857726322915838332468241187204948370913880201715734273003774814948324176920882412674793075428511651387203107515647629561480258009697081108523513782661695555570175829804285424865956939377693684258061572964083439799055793490232122057899473334498885354126872427308923922001046404907907593774173271590637590096095180166524085658130639158667316005863976754796393674226387800707449522700837763274267880935152414069459210275366954080637490728148815078749523433612744551896232503048643717119707099459258783854819185285671079339421939970050002933170482436578689698010749322267846088143812223571107935507223377342822987881637147239171090391270082596669981244467504749327808177293423844316942495620787941784439959996358599077399584845537178856155358296118041368745807338807109813112552096337622175188151140014438714244086838248864629834143499230928150304593345850319245459453588673021201885634677403044771054320652514214761648461210524511765783018012578606911693992987638574817456506643228933492497510340800892067298837407803569055152149765929416297330959758941301121071537968572003033651330120046265148282696155177420945143230851923704966011900450836824600067800152339225354601697725444014561454947126021275800130851588891388659171415886479128415546301900016309648876778485158146017088770292445985357801141712870865537431474612471193293978124826012930521553101831043630803914899372326509101453179120041509820695325380655814511581261672636249192049437847953073764332185908128522081985127783682936693444865294248245720308608202029057163175924458753617205815163608691369594721502591374172774998815402376902869605007819885892483170938428126419091795732196414068069071451043758823733127421745956051275066536393037792675186035430011252240332778186065328724406669784502185046372014303497892654509363706622986545491259860073017626910307957941286220501947158671928737278188894559160798993195726389426458986515659057680452168068603297425086731236352455144316650288774044875727376843360211901470522752263452229045153052654710726646643973487731979561295496569821693544638182329799298523775261055315662792773963388631466661265875098292861104563756279982503424301482963672256112532592428310265519256324130292818992014239596093667253820334294536024056939910719160788103318243093984143350276105839833288699880507207687190635961752026640797961399541726896239253724737911831214087793320526458533820055683262862099695610843259528991294876924637198268327020309461922598964259405058333817041065828300669941875339102113916112030532770636008691062954779219242375494861628865982392140976707368402183397594348885779056156007976571320065296317454113473263985050088034966319371759198390563526574693709355454746990489157892383085980772466055244460319051791584099007158748516419095942708367704925403576414148139681799323216134988753407814778545460771013917709134469057053940691162894531743256980206557680003468962846785678011838881750011303893190381894067101479520336905457209247120211127538399124336943614480147142428497276532172805367638591065563502487227079453188361220073198366818525379014284337321042660901541929602619008601459741891276134514914070101578063860143667104549856980699157616807917376597021411563547811474878705145290920139289584113260759887245896821168610114068073171359341519139668235895323985395530511597037259792042200573245248854496672511055247503612205183059209882254336176047879940760395789108906568276066994852932474891827879261873148773727853991623461733152956881950992884372375161831629667719016823541691754319316866034812956296840648793719736170802061972352800775612147303434261729276414941761885446935405338126089923465887214602109377230665618111000864014839862734368283873699481670978107867999195460646309093101838985960618381169248364117523376130113618321570664026583091861954705742323883435413889873348266454293525710606716900104841769503135610961448384865834478012053044593028000247009887721709779550254536085471170344536806757295494383995226376769266416841603017149981640863387068433830181497072201004359990827049679724284473955108044358980467750211395359861457064833692861147157836879830999750963263561739034663602008991610037217216630797416250413661771393606716710181569618789263488842896705945238413911692256922891026302380459713603410103389421981535566967427740750851666152960360529877483416493321912505975451265087262867710884536232512230848443433968942724501543168799498331447163319061120778961738086290218795110556361784411176089017189752202824936994441463000655610213203474818786114707331622516877415798311130528589650471883270255146450399988006991652477248947051435450349199087017065832564496090897732696065221134168731099508686801730754535970370022699674612756215351111079103457285806435759729463282009492310550909277600358758589061759838445801135400402109179012966562356529897780021658688722270354167093306593291915324422320908350741407562622609290584149873866657568188285390224877780193541901191635202532699201178008073023169743910406447649371107981585279689980033764259542152288390201528209453439251233150905509761025725196160987742334110555632827172261897692590231562835125193527349142978898882629518736022961360746997289962680792909756694468417406703933324422596206505238047794896201448034857972192848760936067522838400537994957330483512728571384279141907920329427890719299782618503046205807153026559174098269094210301247374385335652472590083593694093875296677171097521811022930756967491851166789239571179470288063454598706010597303454092809231973765727395504088237694780542727088836725732921229065442903644237222803099688322660412872382090588660729468385534622068831311325912679764835473481322534987234077942445380540400928129312863988543015555648311131242886950092986130921926703665165020472739934551887797861330388751071057748557869277349793009103920927971358062228441510136513400438767520765804024539993322593468256861343777120593259437323873583842421771137797708472981822532145265821901397832862937509515961782371495651113511170992166647221539538256607365109692224979141819114969845485872343584078784343521592973535736461065826698542759713705202110818245025580830925871766861551746364188559259504949866820775223400379750062484860662945683529453993763385524091492490053960742367202564826431429339938609784327466914384318515650631749568417016886487003550458113023811071585411623399139584721840291342440973309066881758853705763611548622991289573733382507592883999974091149816060020847269253558586259369674128696667531038539163468619318277432010969987719435406354808187797886579316444655152613443889060864922796387553963894595248368670816989871292465341449094210394318269518815637205693585260590995651220848037175148034525878908134301875382229837696993361643910605635096116218832258781941833195934607201715776146329808808220481349329376176530227346170901630099979817726854630668770782637738228970511865408150018511998708972330041441728217867892796933894435192939094087616280001188448208828269606849652639342255389801063016660765169983487404214671321237545788300016452375282601861000242635553417990048293899850421640025758544673963699198615324223301707958459615632315662095192979795911409658966442373820446815110883793009251721044347684771469389102238217535586134773178383835923167549408578849040928587361780374061413067864224754546754713364255047857367382675123676483759889042442575068387158793904298392046545831779726601067706459670912394068273287405678384095515318769352153955088859688790689836429388016892024352471028212915363262111353449411139894820888972291426337131662925575122627034818583435659559927239620707911998855776498988208901631606866804240493103052903477892153562176914813202780774299453743621627050851108084841178258359248122612344592337632710777676952249472387808255099350981612870441204453523487550466066767639421438872903362015747240509846338378315630987785897807656747990848082860877118247368330878729568301096613719277537965639983797894819697145903628975055665671992379233940646771146162803931019371532465550769067473231617666246396142058888797533282561572837979511326125023416626748309199909075248015505560401961727921713042327011757990445909522628405918333112211443561203073225346969280560963590324754814172430898099070328619782751837089978758664777358756915663752468644612530042777616598027831548938995678106460815267519929756431843416606485398347071375267773305087107608541302762564990391555088886174378365581411824346910992472960549142311970941952283681639398460385657359054622407026673570403782222374647635352595761905195573365367169342852190573935718030428731968983293034425479884216109098932681989660415508929969206339209251907628234592449939150435962924214598131188922982726470522607063380521816644496560272633670779015259731128264871165096043625696863431330564139978559932878287938479727144339693826426551714623266780873445759696490533064714609856651840168681370669401408005249718678379311758246692510262214795506702550485257339316215549085843741327999404343052845312116031475163204954457936733315817319996379482599694903588682309761824806211052332025764438037061682630888735651035879040600942689346277633035482952474523052718971572524421661719325018478925471174558957376227675602408976615813695532388559601317778729346245074129028620041964519965960936389519127508074812330709754252373428482954166437810846645880090181454792926508569389060851513034042994039402217656183766058302333914501262486650192844107019501279642664150118050292267671130169021315086871121866004572097881613068762464751936152961647354011757130365529404941613046673630800826770406696484302462692546568082033530307076257531125241324334034354743551193720606499730067479156957103155903360446261800373158784629997880116000062651051392166029431087793867601302642749451142283620363639725473020488264013465890226600959144097865691480888659141198450797623759835707221790829239468189281481799121220615465228451968774050096430237252245646656104943769794044469209396591238915001364815174396055081037400635368856564729082980533209921475958601777576689970399286316665436314849160309330406232204468737518904875216211076820349673398899962426999922631037575523056911303732434709744471144501919149784981930548000337157324522655740691349682351260506881564024508686733777758625348590755256100893880295784695888945651255237034106932403561130214458386450669365292386401681482389445648080341221391865918657240779857247702713561003364443267076601920316134528401893170381768316777381597570303338819568409240866675896242628960467873088149507912054646181317009932711283152282438512768946817911239037550590020929927087264338171805700740560491494529555302620236311659690249890362356613400370514669443233168445348123384142542345700864929276630782618066945698823393700981833127208053481585152823535915058702109233685869569752566481270801677418331666099129275468753422896447870793579247312040635319896130331656873379320265882735151456515121889546664926891106564356075082036091798571430130136704574277399335962985860937014517940090376343176047659621763349101286288891154635425761630425202059810920293907233895529780360209711823797101560166123496376529545723013499301447168664179033476837888293788924920673089942713894468966828767929665485845599957398447697839086000375804547654141874983523837233774134687150394589662538826366464727915015454395156438090316590041173102021855550827464578163090102051675709774872698059882912940296599341274191274814921747067907955243864252728989140624286472090837937587579246392794248006132454867603735588593894041323745701350502877223040572303677320175759219229408010251142940448668994045819043434591276151464154561898293839426228982016206669483223315137461189469712508060545274956040767278648978940735086000291895628010995678761985367796641617984634154095617817092166606519747618815229171503706290126756266027933507461943168499310513519799142320941491090912021966328385964919727996618739451615144639596943191439079985469497783518963198524026741450852112713113818783687871932698932304220749356441107261442855776844372668529756433899810593493868581838642319311031853005592278493333102822579856133874425998253929344319495609375351515442138096636498750828997641090202008018749167528130372246937910742067645919204143438326287909033483919933396731882270359036048490399545480702175994669586785193585420161938938499479208041065751355554713388712979676940946868370739122344898439847223516658629632192865239758466074723009927522117191596931252397410614792690515343606069542972633134660247391671405885683817748246556571283552842929410898623353597651503943708379537408177992848838406128175943426142707723916609184545760890426612564952257520513728885626025010730395125361369004835601149833821727808604927638920448088483227821421446639763911987659899188404586578241562742276891571776816609875110457919062472284852604755320925163011112576260299382988719615727061324135654348314232534235874975613270751693877213433386937139550845273535970518622286241046059261367047857264685538772678360984459059423330671180133810430042321149011099584751809953459746646973766124873553718395948150556485303628123329783575023084353261419971719329739393842034269857068679931452811677644313820513462980093974640789647900863160098174759580359070349297896549387959050788128265649689567099966387903146452193184809765819318711151797353684752579831004236556274497455544968673985973660237509683840430918833257648791272673935210743992543703768264191021383426592701826008192994005968626058739630344152682122585248617708199324732339667195232269721420237538657108677299526604978979240987163156419210125626842397857239179265539437825535382541967655702703515072052707078551704941130974460411814877961619491315898698869797029273724704890239157363392994292562304493287943218700691099153727620686424010634116913781689837786898747573503052921507770693979236431574232917792040598435630231167623757216084736828714168778516987565698800453486993836219871363479737446641810849754470894373318414335380784636787832339283316631699258745727135648632034820594062907427430289770716690404257965246019491695872920167725241064924873465728863626377583997120290088927929915825778282376829620397257920526681396409102195533929836054479313285369217205439997664256257403393995117216146435573143060654253453260989347425943773383416041616883548620971642077459335106351385281754745024406391261595278266367265074105576137128323729561128302032817345739898842472277238771544517339804345354771724413221270307682597410771487082252030452279772516523245245774588364968274419438944363072893151419913967080586270605688078243221240963415936901649059363973231046732706646772693309255754429756076606026600376000850905835932643730625192947342732272222750444571097140322570094710995126907962561571163189123959006648538466013517471424403886398288083815340269101137861956113042732993913618249584605672244642643714085515048160261363236069315653732018223866137377959936388374995082205724540737769675962378424506266603357944500183511581385191260828457092592494500215878598397058102114635645405679069372271008687784339365778689275437324309006245124687511385363815919373956549112291528238012714687511864970145254387780727208278884866531953240445654156024468972507940479836744353790236737156455040817876866844270208312615941521804096101924510355678077593048227307887678822428246832995583339063266207774822264432072828676183122011714064724184570537950406576900312197909208637262710537899080607754689635992706656474209011056521046454065978692103607774289764787108664904770956050060848804857004444270523338105808931191879338363108732991194090356911272442178496279104771905544641857855920601499041888752703458134948195333311526121713677349054871283782571259303311292340001586434814540910115110338797414443029710289453103147128936584822184012473265388992948563534640564699739153712735740624980050769564119611860508207092250054865070777752228198293373256295508883097163570289844779411157889774272735858756487577021049320412790047280095524592161450955575372212020495656477871959611802324066215235345251230146357398115714431319293433135129248244275559713117451932695011163311785722918418957378798136856657209369308382727620058191754603576468907665179625713973067607425985115341027150864848387569481658471965139078962993323694699569534670341523431613959961927306559473365628436239298285803784105506099173026351396456485711309288080337978688577234504188988575792076845408701299430931080390434540160053316250406197371911797348564897661228374989517569692527911854884735844758192112781370954766552049549146112213195668681320125012761382049110874767530008255395567766298909749166619436222619459090000271641670500646636749274716863465542790605294709397215798395824704105293170378777518237811830304340673975753888779596913613834293244819738493295675874759721247795891712255878162411452665477787945841736188014635101188457982184075550057415584935884265614397241060984331059081026953807847082532890566060182664063444510832361861895639691234059932113232142945147709419830242445432977604373853190253486726693783993409820178273900698646852021660746107979160031322037274265051498470678628227446977742874337943491104799661514304273148586654879746482119084358061567626483551083738521588039265442087973481610547477590285003524787263085148737318612390169273738436735911901856486707611384683748911205994925280321141725173032783700062449342356148900477977460982211267752518889726000025130969027895657756567695062832571470732146356055762423458667809405466093644462768930501635668959937535859643692400758392876252080723588968845335417607335416592632172814957229724070671612184068886802801238944719484885012301126761995073159608502447068529468596278744196350260310232627045755645819670572266539186835273958426651327642741280815717245300879932314734478488136316470696169175252115571872067228506293918962254546717888475206455767506622152656066426419447019363632431798857230083373976934045906157740951794221763765973504409685589716777200064243666076447486280001907796802733652872209794411489278499554461364127875252752630312415719349716549797659898486549939359831101908284050050724605734920472697347152673839823452788685641343570579913591289404698764692003378852761193241529248929747087290703150169375970063446915391391268126508383945684823761993075701498841216666736734686494251335747359977664365512513489342037422028194995007688371580157677807898243766615603029197052184120446486531643344730114487946101377385231219388439356386937890098201133185477116928624214568251111849287963877495298915426957693315444403168454378358624239036930718343683662990697839039415482789157863970497160459649456426528464639913927036992486220189984914100043413939915676928886808440950019089576010522293599772509637229463613288736841915844347747686117654622696091372595149452165927112140211052066382877714798511959029588761894430553292589769948739437985128876655324311271399847282253355959528844643264204289245182883373270763274542531268822924087943024279489711781149330750271341519848936176156113113679381302901499808107085136247647156663638143820612021549778941497658667316806137978018811805192871009380671888237180926803013452478461928521921096021354523715038213006165754914374239127476384966453179813290396926561018228366179949014625643301031264241292860491608619838002741401082596634318110941502678258956839246158124687612599692781823435886136514376657139117493049883793632740673771532088614079786460893187324947547280757071564187053975407146239748240085856941219242157606438415538527621407261773014393223311876128210446957689067978316585122432366604539735541067592723360366849103700507611408802773905221410697363335637062173211996778174240559333046195689647414794324513572571636198758003641883022507895963025863420853486509662253937626813189311270060340421595790310854417727100275649536569225743351797251834106748701677861701591737315408835493757207125347634634590105191705059311271851194111054957837254238878677282072978964132366930660929824888959515836555577499602509274348479424098658629140865725893018216153212485449568829159260906178749144064374711524002985112388586235482567144401048892622109140446662148597515568203537693512498405080542954043901431012879020050075759578472588395404254979456310477482092518154117270895023642475013390976044082729439560226053482345144892543592929543428634411930036131319336935452493322070926491943418720593138247149665347227410928778083288258606931742358426835368242549111785258276677286547292658487371560274816697651432771586983728531931186798838129800135743603982892821145333537531402748123222070114572376036820452776236695916264499239490698543539948223791763419000758659058827987290788509455244869929143889178469387949447467920867282148417763067286814590665605830256840949600019513466932334056072854706322600222012216657290013467681855200019690352963873268523263270378026436949524170166122048176301151402542081659654745354239646859701904812627968474395178906164413331268973067520308115232495411198175136054184344702092064989138089514104884633554067674781850425353947677086108425709820739886849980788171533087425191792785103713042225043549314302089556545052179060910973248183704726853834298923895735668497057816060571937820414293322283767759322518775969797304263416748443984540790559432117205053606817416654047020979906103945609314641115485569211177532521670941312229904716537299806846138943170981995653740664951380191844932865644336277166088697076139535739326913575260897528491775035239944898815876277174468136846998278912039121734156033410062460821789055238148347629573488484077324085977202952035266212789225371874620963531629482747073126422848152221903254989372675602494574671076315885199546912301698390558675268441731818195665849400499875736395326637741155095128072817807381641714273259505229954640478866457095629889492869531063225245854762768227922149981861709893724417118788930890814829899983477999111658373652558003427689064928856164829631173471897588288751827418817291445501533112405793459765376871816526465701553999453062186834552595890990283693551676106722837673780764033770098397108963565793165410789502832230028635782049704600816876360713537660762697715135475311388593626553307262677223283666674660567565608866286204387750629139133915858932320589500658192741295243157702792672704238581732738522973431585010362693830655722446410315121319315482772629011146067177778546916485212814873930422980495987808075234838635022012017469651174967582690262287946775207660192937793627362151825745225470925763003435701466053261228737371742425259055775877194845425162191572062133053965018222796021756196032932964837633093660087973459092532612580397851298139926760869424564857048450827447867057761407463022394091704252477884131016417065006247706284842339894310482405621458139011800836939487511180868519087129484634555819428606224868771200239060571592656169000163426379516098840943471101318220611648197769001259374983779106529142120458962287562759442538037729053739143196047830494257828829395006657363043496746771763796914340963411558356734187800282453234599136172358597126115712545390019319237230645678628242339870906406890124595608144155183967492660609616513120352693327612809705438319523934769565957878575575953447306773937810075326686509286680001111588663451590861602901420313980721042708665959439072473233147280447973336790247465639793034230108469745943265071359671634432585289681697424536311502921111247911653828650812486859239946494506878187385773595936011222689124189255537438596886418769404507614036588097771850915645508747383503310603164554135735285284709827445050944171964639895112058749654655602567182619695076040721093969133181697778127102881779351444957224948972752386730752846949763977910158576003943546553341369042097525980060194992451260576967890324724824625773222365866538282176662524563613986332638014210445129882468174073468297759219837016695431782955117618399398754570605841413374468388709661149402737898997907298964299792059817745650518604355001434986683955396376098259010214471895501774866246049811804949308893386392174895961829823482981420725058308797620409598028351098158153118495232443915229034926818576688276096628054112444954700477024957190741253538181320850264936229037418046394843145906206442124932397653090125666665580694002987374381367874249627648187612985160110616540170506817354160536350822192853739881483679364913054718114743191504938076511869108179398137842825934728566181207714904275783451559785868603223979766627649853108601505139039104196144213450657053999618421364393201047509594392113594213820838110667110755026058303073134914933687590015783655361311407400301972009020037990043427222110906084259361627622633775459349301003102520462436852734949086737590256491007305037298246301502052948676165688564284082150116883184135946314224541910004939384292080417096081149912632621130406115867986821332882405070489196944908201832127014475934461970933035647652982600436384673794335355009707880055802913056571401248276643333354220734697419561517852796482370593121751124163681302501968507914002943133220028107798441362560858412344494253098242153457533318958848751016321095956475660736829232023580455412418667625986919173358253985988009053718122895102907585590325876795188879595001204303736231127914879571623200085100482484379674722872676003282106730105975495686816950711284673008290945197833214200523897951654752535207117576290132104487243748335277278267665578472959856567726095467658969885790138432941430577143236966843308666976741857914594542560263606089617764522514963259017342866114445644089082268222686896895042607057060066635666657756685582492719523608421837624730319829672904409152766829643623502781436909452895712697273140547334831476341016330815691539267228780837073414176335279262330011906320088395489430551251787595123437072857478661798761578542786849090034737881058356329635116999796563118158688420226274591185371378849402120687228184678929357524094901320830006975011149803282715407647088188985401354477626142852310460477199582671977636623729940426155732576222215575247901221173774844632814579960481785751147343070175467472392720289228807621302522094426565324469473068463701294501637567417208693670012674300632446085602967920375945337190977885879949767611772412146977470796197189984538323650721389703136474668131836638973071459137423750066437946834514807533196659495840318682969780182203585845695195106659131289088784923942503723641766905519296307841351632189899676382771791840951760124277843042770665217762412103689610662881547815401201845137199160694708012037538571795285204300710037128240168951189801077826985656225653678272599096263499691442020652521899718815483702551809942313532025632366517425569170602974556283844536483601219496639372511360828051527102684891347370261146702842161306319044060523477756770877817144570281901311549549123829830851136847854855059273369619150603609764809168145906160741839267015820894814292377185121373962840775610563498163227938350550497637220780690509926058063861168670677578167001584012377165977656697739848341666635123850896414333292374140143159322575260134096810554801427854709491123112392881441959137515894172932104417176028834184193650522489174134570200466920679315516981498657946189141876690778091321540029857999661372892428019617511859311906096090114267306786306278783000488082161826523670557224743982281648291702577965317265551660752398394647922531595956167945031670349144312979210573005351478657278089452953687213701597761503745708121841102423530418536223538363149659235020756695726641355042360629009995078180814947669330528133590511590574418586897997944076038156977484338461776291596334294771570430622871712014306596731197442428016854491963106414157826959894953494806628661311701154235258403730779528301500016406701128802031143796970172702711956567857020515766522021066196752042345125806382582363904621662458336956505216898421129505880346472125388763339326880869362198951952274994254890462094751507434341895424571256572607894583913727422055702084080717485911209563328111518845167324535025794951652211858805566306091004597973800897903964397192947121342289267380898970116718606143561333075892791243492071511331192613461150988684621350998152011118258119029504389677093781483745817429286154760343537787624679628084106261424420470140907575319077164324515040477862788793116646686056103179666173486543003175610519515236720224485613141321045088453299540862961585366371255337227531614901982985731926580257638645995770314718311224199742889188420633580480787598663490685934113318587762898875353672235903194032290864634355588502379635533134289479933993796860001252691523261506268103203403614550017275605730506814253748415788454718340328828328241914989232837519340361248783763942266766102677964769082369064861753437669895235832836649735687955499138917009068609289865773543933379708429056741324621501813391928262350493083918849971390636956406206617820995081968007357686127427385250025730622115908976574250914996584298564347314489627385487428821395907840127749331129767715621694088655298137688219097860806374872841888882825493392787409542808665645686090454602380244735189893709934055814770123488552096301021982559563252532871390749240705896251242104752048633248675277419313786516038892815309926716074375217397789179963601712297542967614943108083898331642409883126117114447562854766432863493416177634682327070295109228799205074900602086974963822134154179538154850583432302787901353887425059063780700222450640038252282385650802101636424831023804773117153469346896907249969811693982109235416135878572213788280143355166719269455061675525681156226288879167535122585871720277017692324138892785285558270383766725566963906453516392034860900015709173742317552870063051935711258268221091805009033702067871418224745071327533872066536455046622884722527027470091513154775382881294900401452054139264753576084563850579576816782072553361028348177349248865657431765453776565990681974814280908675151939130094879801283115596303997216304508166261969047056758732855056904704672919809486890977550961838012686299198078645999829844311559724832801111399481938647287130373530359312573759315518694003346622523974289539970796926580880867631584610930079987804775329577181275153378034043768593943896416835732640158536036355618480338894854935489868687468289313168605094116675909193329927145924209781423925290900337783598908103276077751718796584451526645929930882309782436904214540754349272658061588863783215106204521440220449775783056858682546793818077280491489186893574141380853777923368478158025664588043617013289667488791419871039740150472981946981366873647028328290812670779654359641858299367766014052776745658910366031771717141941430947832889446070861721010035234598037116347586558639709222409921466881116680259795252745520167313073011551512937844709232747526248790874093863919489535153953705314881838888515297488786975128659627833595328625680698102043356351177693947810301150625992882233043895492964884197306253484286691869499206415936632032414500440797139924217436822771161378283053811808602426069094134298644125159472233794665525062842724519717261502527461987764695639804412006081435449545774077648002345839845096522516004611732424287461025579138972390707828779528025534601414811449855213537703138786084145820457194431683693169934195812943822616453204228979726595422350288788002795078717113627985912177858867661804947919929975946905140181348951786353340401505098001444176129851825945449349242405040670659037181765483285298092986422878906325662169512470523405630004520338084656984132440521713446129920553916803697779023266816809393168728010552061723577663951064223554024274591260924169674655518401701514689851707038896319400533172931652412386713143560423382466493532707238280741532099771022777229210607093902384332784296173240293871491387604909159658624004931227208205914455608156649854975509702005636775352412243064333536279295991106724675964374744807766766343801079985177784490096204221960415367931221184109140510963768510463021700525462664432413720413173545730602591777287800717021049200612888940546181076838220084887179810216897186866318658666876135378777772447546790807354540095993655423475443373159339673670430658170220001431577881075655852929894675731320886591485718212054050535123775294233808623244355390629286183120432311709436753356130408200620896256494187218005386155353397639810391488250029428302646533572476301664978886675601889492197970672822345734270278962456044396799574674182601524840449796767107100885433941311264932831604306984627769324485962801776896936362999300439562487770293242217507007975973704114120958241209396551613536143400506559992832077304017760722296926900748886621500271625882080001451055892653105109120489793992685863098915533167645492040525558240401216783094134348348588443050071527144644930999918034316125622567385692844569778581343393827532637537157326621126242952302954315052499628496876083191617042060540429458160521452170095502842479524704157501539691820306355855763613489202859626871963136104015421121595673418332142459041588220543144262386906217877975282798185874790652983378627473076727598934644998214414865567920529389278007383741510929027613382346859652975799992968934985883822005593356676590712792470475067033935834044135556492888136304765566060992287912618316055120651979533647104113022930555357508436803964965231533388356854432818623444644385536578376736611632912322749791019876319844292364308598498886022528839895472729009357452391348209413815586056019740590507382246775691951554303810088756367830562411169880023302390164126354875392362311858780340344664680182721266839315400494932704202078071791814270833986613465173545887501376575149068614192407874182898318861540516316230539210481166483407464057115995591686626849280383703921312270951089166167134297544490472825830452516177075631330828664396040098473376188998527764729980719614563303834719043433071727421241116346591068086875212802987223335193320043022226581330824623480476508227099539229353543760565837563114530994639281155397944171862837403576024679869063905535691208940539598817305541014010352563146535236127072225632704723678739856239359360928335625013015592481822612524959657491036095203773958668807593828529266037921134475269794963856516947987972931160720982643296268630056770953086136869675348186685918504587646338712628006982311518342319452341376825250195714851186782443965599118196610293871390401858203273538338233080583812120623259399974788352315652387783022708608481135391631108919550483435582700604677558879815088600860473441596878991718333347594750843316172654964945763337980790490827924552648602590807732924423120974401182006182681040526062953511976263060526740206466215251928908069748650252514422841845887972751569436436222761864515680972098172719768200409976844375989475088617008126752791766891128925986155028274007925189803488131670701475270817089873560400209643879435270119602789291358697103485988460152621007870450408018409390737496798216619306149244901589518618756966574612092343797665665424140565139072817398669163401002970413031829802137764142684293532515998644126079177708222993582654449929941960462673868252917288436257925285257431031374016335279830392683509913818064086614395674111179140924593122922568362475316997397375660376939566052126686597148167455642520183090827523326047737903255848400483600338665847034187432348987266222656610167375937964430253154598275866803462555052040690214146757329845891040568368721363310361167459542114168009392107418430022139671311357669408023658508704095935397770330747393004590538510202724039885128145663289576483519636192208206632835344350571095673321558500935907162472643475846768988967238605375220570107872972612993310946655871702405718507975517939802431566414682532164314720948694618107381221703976030444815789284483563069516309247850864613490190158498390478802830842766440254616307852379004655738609321284489956143818943471967595998061109655618534182859546752668108706163045852436308492696095619929954434152636491913450072654527843346665768510146894034145901429228058060664831747786223110119716557840067602599800012595892911925930369357759337768830900765526672391036644403395882304680290982547464903902872176092644022846809353157782172629876604854648087739773378289357312073997886444336192341264776358238516813907381464937219197375254414758865905457287727357195343778054763103343614612836416168275798312530589111553845321082696658948091189142799048487716850062143012438360075469727835802150966265816524002950661565346150255622100233981942057711614201577742027003562895359856079396630418094597329181635832057643197898004090205400104212526659232526015168657297186135068133281602181909197966223499134940169901091070637643622752916407660006054393757442981694395096166107429820499540812565972928855809561340241863190226079504672306094716679258918354948344588607568089534501601779665726981317682034461659350184846781225621793512912972942146821919204026600509491696298807404560198171352100385416066264556976341633537636505039413256297076005652575789873117526717216845996416786560841303486378558058270227446728818284600059562001745099626788370047298930279855141120445674991518621633799294264976874286859495415399729572126825565673110652428038402513461789974706853451512822379523925944251386976966844570861160007796299240640690329556391205671286835465836314040122790041269533368853394900690659210838970274015330232836659110832831163430346661650151306282499205698207687648988283689340428060479525695544471477985004876196988747003012151782698806461986417071650513354954203525826477188464381939747502615967987524011047874200490400726044781246611511266138991899542664628700597286179337380456243076884278638922930084236447135745802159268678844426315550957497109143983804795613957442838800728244438531095591257913149401449365444935228344902880366139529006437209508236847412211198824075071648912208371383601601271969119937629253973967796976465424646790663655349794586330591427341408479099412755229108999007256387935301335958509093149955526191046369014741998244497694045718914323564836504736300319417854722433666444083068797279260023724931459458877676158175799139731746145005495293857343315592296089277780527059104979862483472245657738454644554500890129164527844468551761473466731638915134118939282417577317324846630931346843375521770757313336242769260493973792710268470555559705536990417314077384122481184464343853872286914967759888380163398038174376874857177371186818924488095825613481488405221386139590100936106045685499620090135370306345413829651226367633624356497882037285580596965239042724300372602837985136381073417512202926761154687768620311796722828412109108243560413273099636694343604200772936360577991914961331693574193175611280600198904297380986217638687728483557336356436500002136513778019554220115039356059703819967103081143777415460423003028273059250945188276359576265419094482027568417790395751770196177704361923138302932619320733908662076166264545942805420967142955262998648724126157323657255905454449683646268197558770928941886069480051649491515351431906927520160614774279443500902525186879003653296464923165642251982735376859179150864601529894866068938672883269230831307833157334033899445848156874673063873607965143943770881126131709136048540836569536190046310623010810934607186605128045096626645714922283367009236045355707078852509715265311982738401783714471543338330701757021735302837835238174449358198574367273201029697185311077400109263675429605038300389840144162970371298201158724163952396006825192472893733227460084619786211266843286027555118067192000021506153648609140243908067461009248612538163363108955628765266420250357141262441468289922794963789261970290759613900801134072238453439607619037607878687764939031285296054110151811934067224525791675947118588899446121904114103102305853388755779703108105474419381744901954073396525455028076903820487682231872845982308508242473078071488965939110879995986004320285893398390053125319950130623066701893320907592885713671950055792528655532999220447436803340442543523479237491158886527011860278627090264851505225957055802880909838542014972628519444175372957348117384151101115551624941249866510095947004811013603508858877294293018685057430219990491883351034443384789777009961509782001925421083486674955576837608602592070996742757426535310036856802828432338167370803305996471138231635121906709430092223643143922537128592962489321284365170713953919963513934699250649025330480883841458913663782512830519098792372132436319068665336864744415732184781562208266808512022756042403961564336237124942912528998573743147233540699160950577662367925616889772519757682328999726383329012694627419268577504862646732638790536748842329000830553383427153800768505834493549783459874238726454388566374387413041840829774673617388257731446891859589655594342655352464270902069179327779769473796752279824824708820096719580364732941570939748125981251001757915034683634107254818177497364626657888895248901632220338766866837566935145644359072651431521607495907618737927880452184984499609815631249648941120339615031826171416207432935133201825656099418365683314210902941107797654767626887891726577703216997268153375966913156916446948399923847490332454251778137304399880655218770625717838736675923188021223133625525968589844968319504174911352502317023883420298810431370526773691804328958958280146218000758703058997647068093433720904084511728363428126462702638021501614944392488803435901999863270488266816471689040983865757648756780997304789536838804070447230948931197349128546873196417446354479011250375350602553419321646061714980578628182806185037096326389608066684486988315691635682694954217333842742772387979757121358324186235412778217137133031802520508770604700911426435095503845310959241129735919291435865986587015681562699072927760782017928058099366169089109621561589760091305561799103114567161581823208537065953368951599670367595973371086791335335094902309520965023838919424408043197943203557393031143920250025932818096090942962043086918265370287147220635772970183483212570447293335575329880618041924914430539086630122663122671457137272788244353976054544603428740062467786030346175734336941214362495487576373781237520029502623131886483575881945191876252052665940819969587120657105002227652723590893890011407376258848663743428566277117997527180246301162315815631264343950056764617286817152121673075864026564930419976093982627790723487462397139345427381861667707059284300045561612963221278600285641679738486267696644767185593322995941531041429427124518512158365257189285535093676662969861983771563606841877612356808641382504147548003740306090571239218943667642277423376174433946718300349644940605006872362463636779684834614110217854403878483728492216303952969262866196095090179202391688644396734203344372177431898890721176834259070605957702105425998719986374634403304419839372565392113222882224900159691885165124463255475363569270686759746468981816306285120601490778945426334538504715325020672507049512882547321948874247495936376781466420703276539698036058066096595154026182303359496086404946909634954162607493364743785386971919953451036936427003276095973969564690743436209527043731372010737219046246337592205184485016927513672671004295500606189980474056620034432233301847395107132036552799354088308976802056159726734892428872294419264600829381661211814060884453286172692382300981986314915290718723559177772943789848360003693507639815452478170969937750198398782372575018558260065259582250047930847691502252602303416677182582054963522028311617164994603241502502510703706672836094289372147916359413858619514289236427562114220682885175058503620330354722930048913455624175734356802087463498208097361266589953750711454116246132108647742489762223628870604677026226210303927811625783192463805487393248554514895619672955987400961763741323500685903366490619895432733841916764197572724634999370256457277214647848007657811687594430628840402510012786077266472076157619931269216413139819171230433292331245208158421926193457593077118202609212205268080182387548129335032651384340365976168513015639539227990152112654963207950553518449390389692331272144691313255863454948227211295518506341213207384906966767168672303078463993673813018495244684553471912914521251649361627942648649895933485886546471582687621686755641649566520044712774284839855025587031952028234304261504885988593255140674250904637574616901104845507526097784120918584526440367868215535641002130183576494050509981782099028075930763143854468557062477463529778077186847259974905093449025114585667212080937224194612120139609336743926924482038501471394257152223690617285586692113416323963345474352497644745926428701585850372817645451014640213567017492537435494756345476668662440028894086923133000573504012095661980302500057177385986898511787559709783580946731534929736753852524006486280701057771370409837072499457685361450006404259081777257587862653511691006157231564600822264164275549653487233675864345585789747596899197642238192480030626395212878528370154265663638629501764500116184533078256216159116753012543408131119232270153681859791191730356615793387726800654578965946201573542293205188955030294019546667070010640088016742954890742427329719318903318832695383083367815563462250376247082575193225226443499706529406587330664073687341707457659337770321912622540334689697069538346188835265912854811092031598585107551901403573647070929936077843158278812494595868540101921097125679268219794891615034854016456050482266389954380317648253718762287255527324236159803072476102116330595272972029707244921427366206149670033067017090186991732444157263744418813021301400027666576075148269846953230241765348719218141551414082252268094894756533503533065173237718181263916943274296649470488630774266007933949873750523649030165966074816241115024101508248617993010016456549909530060326601343074406253252921257834327934724045621512186304711811043286215514756320407456748622225932503655367469609343644430230965560117018528154372735632106163685553718122205122373919440483627580131844014048138012319476905928105100303942957964305843985637111775589230674968813728638339060806600986823086536622198630716640024409881605658995716353339944121044253547032921573399913109832039144654209343206509096281579481620794316288409257520316886548514129536146031358877360873348742543680205624968527108728724431861916681079823574964177030347800746118822636217689811453921078921859132227734837461638367759371672003990258049067570619293277671400130510446191687189163539288252872553585783779975528984144084119078433598515923543684617906426755383082219940196117923155597635251165677551792921122925470170220091781373676914435572274215601021184559325161022541574031111727561682921086807134114026289224889842707991323080519285554033786973873484383239367484579806918452293462348686298732617303809965333055256146498722868514690345595605160502536561685142415897692712340044983642818150985382740029020280385921455393978505828717382468498115546904545033927199247151832276889508613853272831587032587763218191516252456140768653176185176078856637923783703124234853170616021762243964241510953627185084511222892430430488296351627979294301911334420414588971427127157012900265565136482558652103340371705747805316375189469146130686239682269792376946009222544143503758290000384200037719081435768339404438588254536145453830019073733574951901795608860715331155437817991328637054346329517242086474666457686050576133052646597243022898420097571517743150077877421085134598278966926057981694512506129230549007288292828204612454501140836785406765478750032006944190351293040023782012170766250500355219159482565299102301626632327508730240578769053448871228049257248416825699097092307997871150701522024339496633461201657245819555701156477580015195309315151710258304621970842346177811168693985072955852434625744146910641397372514112613751397225796912999672141085613466874502219967511087568377093877541595442826443721296029998868993707814580121509481591697640283564026457769424454313006596706782913897328473706955059908291324837363831422969937478233921338644451213579041832788941721188336103114918578952183694037350315287963189319467907286518430460435131368937386481729516908694513498521277712353775098304038847685007685699982500753810632154353017734143319526365757720014706585932511458215698418643682194856194110042688142915497586409513057521905156372152733092885755202267957607295279401399846779662555683331297178891859624465920630258037129403102716241368589858495156196537646024002476294716705882092172047502307653156505479225837919846001725709450082297138097952048812306393148326334365121221237313623453543437689575916399868326436082875611885986618758276769383193602800420254804276676947835523518341682603934067726665027886074616788983958122519595149020225221115742274225134632403997768820926713537856196504550360836782125626920977190877985831083375950505239479083309314249342003575757596996136885126909038195945523115983712492253954825971276027726297696907544442776847702165871420524642031486469017822972734519357756583393436022530710471984077619540851638257063876418815179361022640377542315852264763655332131133725896439988508087613574881958658076117487266645849899000641174777445104118395178379074722156176450079198567231769480810625733963207290596918849416708296139522294713886962253920792480949014040739030855524263272693490882572624664250008154445779198726523489726775793347500990228983922449759058526804868374413592971816700367731098384361786922193368487511290196332526906347345749379231850144736783159394156231527589338349740818610988891818897468147454002808698336376864494534192613090426566743858154387876709464581274245769055870392393751288928683567670110641604561417253164730651718279861500930237881224001933837131073731370839166600355236353499326519817554350700308641544185423636479842111027100045463630515645694951708487984081686936838640625715235181883659956171961545170842884580306841090394719822163965690359416164786722751483483289398791176750179197477208032499824879208575366031355194066366694519057101688102762565919449592674986298090009243528231240242243649300597116145320409509814731366390299369920700464008197850449027171759580480160464359210761907405132599891838451717295424384579245450784830665948679059514888208913574108640866624254358400288827016576135971798581335386983525967347244762908527294883749613939266881224259036184969193346958699432842252743646269482904691555517717095948595949533169299661513267104898627791184686733894075390447428297233466657742746777624871391155598479740894224715693663833032695713827564832383104558765771174209748989219576703228221713653194448142743108133451680245797381735785321122835489797029525920832650541930730592359543185939373544932458004100149377311711002971096891409788118571151051213812276804571470325009506912736320998315499964204394845596502844714987401321514816028840864832924593066794044446711582418236554260437300837399344538716857905777885339612007393503533823148845822228922149407802328183769339862202762781438884004041099527598236094387744483978100876843937710838329813350428565707192141944752961256494392009087676847445529896448185620773320504167519897990389629058442972536232152211411590488803996066665541576163113731118847195752248416382186892603360126301598831636777913319360017469578518523748448548077680723409993463635668953495141540764962769156684887746776454951696827688223854967829084459865666166962426221393666763250372154507401571617842523448097273330691780483493442520499837727040188809909991622611708965496876418077342852379528253929573634618040035603883695291139880183734419392962394081582975991797220434723922603038254150538367285017239494892196854957342646717250052278338996014447578569042534594671459472375629360353866160650332119624244085210065059846338058926033344732531238118606341960800224660748988264225595718374220466741609222443990177750512869721828961462713867067923148342826111833292659162964483939799602469221080661762996675162929810337971794401314110274677504248387032617410048756587063081740094466947260951078122468461964899298944027794384641106092681508861672179509247473806235212054396737931975767466253017583231863175014329618693124409200895073772936563410846414917900132321727869534644591639993847873911348186077796488373408028186867738676783362404625376594799970984578690904853894576649088595117309242416985443208310107816062085794346895905364310177081441067477608556830473661198171003008835242610984231700832709858981368312852382416193928729998827700924141916433087681995588824587382683875656506680713009702853164591624532281134712288402535369323864281730480362721390181514033182482553510733802106491800019521232577624948636526810694525893933652475152742788699469792814726254053820965662408410781891918357686991167443402379513194667468739852097992870511628231308848702989133392835390647438387729747749710876472654362562558192008957665585661041438017397630357236089540014120016884412352491656249835531659929505966422131499419873617346247574176833618988202231239499204729433703277867675058676415044988162535349950427765266315855916896558054323993439092991489762607547882902943402866264435846390321243388957442405887870591137176803807875685943909407974083585470395087183151242260732851201662226344659855704748098517136542877294529319116479204749817750660188923782022133396289248461605865648978197135544899372004482999728242139929889824991484163592674321424227944498971732211276787232307574276992488419587561496806312626312928060974514862517916902791510989423048659921549038505694756024331520369277227452757282335033272419295741827057988894380950464797365669074516318305251402227480928170556661708942695516449339072873212260164229018671307998179955209090830229322413588441239494315096339421865082643842124600585540159816352751550910700935240970252280322943352365180768851474904076734256044937461937297723539568495864961058700014666813048032770741301311113974589167954905819516576107877397282746526971652300258215605389427289921331031831957091047014295926212615031636564109904286096834311189470846579863974161378319389885474178365191548660624330506534002742909768822894996216207448532383762619317470826218721138428735365579417402491329348592099752251705031440425817483575306070314093508332903087562256466508542225091169746631606011164263643978512132616630082974800222850015593766320703153785705711088866111701070842675589414477942777007816093951367987500866666228047393860760861672740744554704074367648911516667371882114074579469671019065696833936161823645952405974992442321638337491291065426628904129748698873641345927773099223244063536336103811064128788324167488606768445223694830264013875094558785611105670197840636006237184683044451578864807953044341033160347243601796186966956382065445480517162101656105540567807134195689826261933486345849028566167800685166983574960546163182464679160170154441261076565108716187265528641582482454970233361854824331223257624101408617500959449537359792013020124003200334530134477629780008844169630867879633834800133516332556209435699950411032883442745891279389652288044017232431706537024938324621986570205384965898784424327631792897363051676971633963175411756959368047890466321214881553378903056858687680203226764193992941051628695569478901972294366474909311732471458723810794634711951315838277866648618607723277232993607392364415252743058456607031397721846738307702663412575511011715086208797817623414094060322078786529057120388791902779316835285414974046059353208405926412363622596524602825674780154298701273926561731294404128250018649458919464417261711195552162765442822518224695589321545507537082647311380335336150106619415967942338105981383881733816468348455319542614414019788463296844135603644704166770258195010023351365179520548177992937088472920058705506263853458441915483005455127995941894952218264770260081897554514794462572364689792319692288761595548007425619452708821565029976328789752678138487322404215776127648205445291640996236549028564030216229872663216604836415044344653275407563311399762817565851258219740188581891134809269268694569351406632834535315510390420011405123188362075429146577803956494146795286857600172709584243802834313877562724504527945472594359845946609296367712982815229869204894171219061568222352834904507341722220745333839417931471231774483041926256228118682488272036932196366427213645171450541496177035760848542860439037214604430023292256975901065746395402079284675590735080467357601188167065745064972812061728789209599036372628707893566914395572425000016041410348242270998860539270269282540590233441769031389394305499883683365261573890096696192832553277090245589509444911793561293694830937350386395378704731316339145271206530088174480621946564769727999454701899964522280539135097129394962375423196521793522243072792494130882549839222983585678697628298963913894383632791838055791273006389557476622007373527798168842842388365788959645037415256508641078412965985223027248410708433697152481060850769165675418555809642421046433359599160377385105669703359949717679656765260515816097491004444941050962035963479677024811646683087971285805107410270395891388835282224455979189605006576161563009755631579008232275645769197786522547686046918397624781789831936006347257285476113118062625425647692973513328285130894001019324791088473855489155202315955023669290031180781812353491033443649128385675732979513025478569426186490264458272453817388775321779257340808444035837947663099618347791885294077032333056109142829047987431873426951489603967530503069217617291190967742992775055285860585800638662162396147007871550148136078039872028684725543348553743548973489190801251932910671224108514414378490720395517237819402868213196241173561620668458382014951723463134364627265923341199478852953831808104719945909918761262066715104731876684152363656516505534076865427001734725852979097087625652187884266681903847451249769946547307238813219756643134127211868692708090890060959877055387777776608231879034553832884797247475304679671024932705556972474719085300253367717015117180896344668944549584054797665199525240107834235514166861332740466793916560014905098013972883141990894548003297318256197318168836801214879565863996399815514343416135897253974418918470102454740346566644983581204740761398483033209261554904299259401930903458026946977289291693979046158860177336721550645824023554147869338173861531722361600696012388756864691306579037465120001096058694854874375771522992153738502914999419363435135953949030039824939369418398394886079411950845856455320557279050678885660110440743974281000633930063612744201374833077164228389221676236506165042804837302214697915681729939729107756263601868143336092630331029544634110639893262714109707710581522973304686952472284305867466232340862534430065162016457250930475900570795423557886487728186120408466344954975634073546097673512746015066378899556002307890077183985803984405970772322943535193455699040117524301937227626605938171435234167162358754725097925855904633603947499951608424371135848151422193051539451894798816091041882615840811259620394250743418041923114100382452912702539633502309525850898467122779276275124571512813080828568849559352091516342530091166469473551792237326135597659159119563300553431194281403985819905559150136578546459178264799173950139352413523740739513984091097551315184688259161221613349425365531961965567065204584277189774589697102560899747752581271046546314485146648813275093478014370318595721156488688506836245059607142415937576869683052588179464914680729065662239263088627105687958265153031304759362701931815897899175172433695217204551890740401417570647390124865169091853645705175394047979760562228100897528880150073033880783442886061998421292160590030641216790225443650546795266520478093094963054349493110112820261113515607629683028489161908255045943832359509473517367025099841015597987788925805423661555216402312459857730390045444060239465192151518305153371223056675378930086515516305737786278193261057074857805136771290201865389909925902565915781713164118895335429358106840714336341910333258139538882701345688097001517451029111144732444299796851206228955558473567619228913904495288958293864043386299535612494970206415965922298935481723293897232166806859763284570910337090026777566253367593764220588952454804266006643884633331801911905800169682144470318091510975887119600320745972590270863960628316687182713092730952997736064781071809010108293925209073467957761312939156991388619339793929766078236928644102570568740887461626594835972067947827761697316321728056568976530982454077837358591694802045916662103219539219826946931764184600162430044474075045337387177243987508025850484233767778898267327217745443776410520463407098482835448168145401234990205100668912334352462758222782922342728682537384713546073193189677447382097609525101593153856809870971466963269841252565649429167132975126930411749593654721678037378323612019883920716278294530019323165823252775772361879297777269721741983587015575198159019181393674080422154396428628348671472450168445393747322422033671590201458834976057507472120196744308406588196802290020838058995690519714370315813535080831626871693666137331800860918974541133821417316551120100052159017135959437990558126052136152022944832949985277588144532502868720634316863770106636080325181989997811202003958526537900977416774349579968784572613235533592700904490282103550764142347243970392971590886232274169357269990302139648797515716947719898906570287185224224305522947777269611520845198881632303710915659956110410873080128658521560830584479448821058070130823228375630857004348726509811209603722493320810722776227922227283971643743118974620548723114062231373462679419186397253347908947961380152144014193214796443778050158168112075161380897248964572852254309700615903444318101953022911758676188915810371071194822488393464495078563466009395747604654428387113130316294308444811421621767431742838947074677631147742281576027029734941748369943957942989100822290860631787360033340029875293898387162766924530546740549475949038815776647667296037362306104717577349016441864053899073069648961699930099375751685210511193000815811859419686499793102511337462618735267533998461556282279224067208686505127097969874585516247735975901553410306929807870376440767595021283160900085869627734511507780237630787719854833558045188774227931082804247471842608272965508490287043141257370465236824779765893582712735511178477029088508798563562724293158730364162019492904221671292857744597082809098023209065827347313401392741405350337433329392316628063726600209370434458711782381924814375465051023221451949664367029139257831204308795942376471721805486844963216762460475578126076877718268988983382469383769906794549100857069884878279546058295881070075080540939544913632929797357345601726195585532851977140009801196057049604845453434842455160260705693550106455570522593207379896942716223174870023144471190603077188119767982188463519493659487392473275810880449851774714605184976557958541782319510565241254827621850698658692513138702374797072730890544919514820071570742536036892963990593216330296209229068512544049702874919897599558920745906855604408394073424507679087519366554111682480887637493934509238984189058785744576484928989731306780868728265119061063386237252893881250383943972937175775076749293743852634226324160174365953186537988539156151454869528391543011978626545229848073759934655673267999611321074083839887519591774179825852472406817274954710250495265739772074659171224310986592073007539502852695351526823104052370653594354892623157866398798987836760348591923814698565790412447632487129294734314552868526606444336680160704806929205467923655279793214475313361546241481044224182127932512632402611465452247135671199549709984569795249145576590789445749487581619915069824012143192524331974386415219965428010393601578081513527324954567576964319224843167054641887119636122800712760166991470480250885178766145529228294842084656150927483302757763773263007067333504181314102598381503582196293884498429235922319418607361481796683547486321363046271935240730321534782109113974237333608254170148397420125128820694796166775034710638555260977436828050712459113267360512164871845545873861873425960279844568663963735317388640663248902273590506834202560005285284115562052648822200926581152837147118476572330508014134261763395805748944242808676860326640066741672011140176650050353309297656483830278916630579348061804497498130989752308240205454619676090870673353017117419361722653151435821691405002499143393848639642081283772126830775448357901419541508200755635112876494368600016959430968657275479336657744442077998542660470148469431552993737275435739145561964801617858463561882492630735879423911745260655982408591397344473371040244205554737726513579599436435674251220316347365062358593665783891324642665933866227658799345536413480878920713112907286370592977146625246217114506178249606134901052653713578825381942072997500559203822467239578738057503686640812485917742924967756747829249391998158781754307789634757465579092068072673248980620376624866505205797358081493584254832469266442614849906028184050586080018074855914090634587598987863781284496219241109153836691131093362700824225430551832507584313513329761753323293527387816639786367060750629067273949852707175400841392465917014112554636627632074405659395317391311642468732518157314522296036824425822255736588803437393465047015211631018394679948841855360548191696241639806306658823221109191462987649734458186420620597324773060798117156867095542987342034238885284660449611514035582041407516350320974292952627624219790309477288382588986591344558000593513490507177633041801234737977638868449229130897595497702523713081397378858494932094229016854298633141561320025814266240774321790169110702128968096836934983462681585316861885133312323914532017254871417897631807936289087200828965197898559679975270983014464219605501988413042513672540867663632298973125244455906218360363906792158986460722758832971047716630519889524797912195566474426808687609987119075450559600333034595239402358093613725251191256178906189851274238598709537969746528860869716238567654982491773846483781260498742138507768785028991378076569251549206504994383259197389802131221313102471856883699652795427641163022184419955324335510487375817390366868704061170303913918535690225338592364249379618449712278006278963404110682470791193044977489430131487982462951890827185615156027162016084390625920571176458491945529758625560223935305306787191586532056589044665492169414276474897032966531730091441236053214885626729723181052539916359976898936424709931924920830248315836008214208996852997817931857751533613071353157560389868541203037040079775223047046088758201071384311422832334332225720639498898552011464747569893207579851267169216699330789349481978273919119157025829491910049614225195711412413236871933234260710649260780275639538739607885828924378637992161936396097543859088932532057495095301006789446747307423177760811005890512579437391423356636328424547869550339310832158774202940255307733023218633159356142319787616859578696942500306164407768477987723000072330637283458613485320317515641295958742936865709712654186159566838803258192024813135571991618462253320886398180526637821325243059515256143023476295493451976371601665237716304980841999215661419281444722935676178374202117676525312665799627395999642836475499657366874553351148436680175324659942306934866295001669225708249200936846888973342276368814767612156850653800028479890795783584396937591912594275628196082796544846974855221628218322980841663445588661425337986157858244710197723680676951095047738736335318683395076974711235502918616565846165577357936124506033198519661783318227908869114500896649363173544236348996332810413290478409877077334954270328342204071524714857098117478481065690030942299760326067685127496680320673986551421642016125926053577262189684514998915045536238450371011135607620903368006117903434482114112400866835140907276831631866529380330904355930336078307235992590475963964234270469978027542117084923991545265081868662382517059913786341154658731189165185943300863083808040367200336609381860539946402907038840238509688243454951812973923731205602304009790521424415937637721239259819025085181177101105930147214096706644762500130408816928678679261612795089389835206514113408104735924999653604358724326118143090656089665263253104829413044827325002404621954365207526621766516762012461645258515734813734037787145656970574556289258010408392676332476065163843859422252772640492436916457237922011670631527268626531333249729987103331074199661634832056692907375839211702183639049187713686606072261627888154396170404255092769523175792460491394007848883241059638170346440641698973790833893996641863141695991475578138744546486412617943736538027059215024659313028439290472972404331785640735372767629017273886909883906610348599332217371827252255365488139763410153136062967129510749434047855621519762309473824946526139212378777893261928563805730480085374895858946455419115074764280958735445915491730623000063178002685773273072106951298235995760301218072031758451679830176204684154768423384576031552599713226497953409526085413017386703273762785015065005729589727694701550888730382007700655239646579714008159264503702638504732993825906137412372308141714258406773616040717747153522432092641377245114905411435616118927163787504812592701652377631189065186718471273185422131304314690235602455144447908729825723510399473870226819367450418930546664925272672566335171611911440470606636736406793575725633806680160928185262416121914557754452540126142232149439341053366899767660412450045219821628570603994881031853176811068472712305603735870575999424017820263972640662259065711273261029825370176946114058032613892984712329899614530824768036992288515100247103811005241289211035754571688814418287250342254993134586929202738278739523534169078374386650058125020505759424656162805083290736279050441830891145473841947429461269956861898149928644350483405064822458992182221341972145152246874193557627085034297727401497215882743666094365343478674909135147222940416872919874708026132003674761960207134990642680010381919268057014685018489606363652331595880988406570344507274319351380083898267256182446906842916287138333859307657258314603027497085686483794989553826727587691752730306769448477909142001054341522051669878487606268610750751654264309222431696024767761001866194043232474714374178323508907791343346733504187498088635267073281220270766336992777168625565234078927860942421456862764518906731925810652790227644772747115068679862906160573641050267578175764894551513047380435438695157867637282697246474797983311450992270500429267646318768072003365606411615241607323332679175384691134221553984128864590470714712878596650721298000026482255990931032500402817488429739593691613877888648617573592961081972585977782064004367408300201327164786745342718950642490441679385449298331629008046543313879138627651868246323646993763594150530032961821296924440568317621333919240812235815950670406543230934549091609362577444217667231647962467070081882746148792512268477332853201919002360246266621394710267124638349316447794563927389661015427410976301851403402854180730936346747818144639832554822918375359287438182327591432793222615312973154613735583172637168585378963894524611318657306530961561481527765102283852271872900194224238679650395662208179979976379110122820329270407949162525453476909112037706359039638914750744672637694110624599243360747592902217113792038321650264261987586319946484265745966005675060708556257491302172727072630809554852198123237011072813070651803912613810253519040980202978602049286144139924580470158321402027010664826711323976049060232722453872623115679725600006028549720647873941023648866892754288897555085373074322994233491339558310538130783009276683874354194734070246124453531284155734398549099019447540040201112746947731903559334401682111482966532592363793795622980129646631476305931533821336336385272110133746714583836410236933688485931371412625390889062336488947347251815761324597972679751198677249727578042101658337382186247686296079637778899895473829229380043277528239197062187683104153140044187709146550146608152308105921726433086000036731240195721085805157542788123600257616840119383871432064391948580871279086377972965008156781377709175989706166744646607054154942031078793793425501516500850246534054093242047420521293313376806545364562591230530955509302175009778992660825708386573466545437766033243914564186309568906196891890667592556925667994145077490382211617948156446009614677470012231417564878914570678036321264972819622515910180220415976485219043509233459990594771224001822907287845293383327896178573090377637110353864985691964393042718397942682280897270347420653254836517142116720100344333870081081732073028279940687980639813432673513570042364100964795015734621694733353659446479347661779389201978785009153253591650550418011955542480839690530551348613301973111319795933818796352256161905740426019838006677381450052676608181984970942768946932508755484647430827161262865809213977497449190224441498683866881858622151659990102282391025900004331981739277024741055736440399410486624772658467260495394361291033535560488204504898079642003135425673275699889914176510331596793169586499290558661285216416963993337673098166885441642014205515422736694712889347135756333146601848179952050257491401312451553169695101377098898760585657626017523535547987102125371810796040763497913753868807809153418509439342762175073962818472559552326534361215151103430033694937264835260961344779442927686038472486408058375478798837513412950211616181598923687423230893961368377756822655730700726487376814522129718407812677249847462022316239026621071991276139940701091410085577433674850385941208545608712875230979618760682346520834689728285194103544218286959260007512348509683055688179328818104135732575218564279526754254627259586087190252113835414617823288501454742638535318753445138126853205905098985632196619067280070831645672606648425696445449839806293750608683178983960235724677734742497725568780121610411687631572011459444794093807844622404766628238414169670594310128052014268819689549017310048110075853297963679123200911142925126444700010897258375328708878937526672350123504004318730269316051181637070474835684369512500440637865750424366402810497058169974781665403316934021708743723110156521887710263116301058690424748759984711220058045086227197475931329384870319258660003718774837980774845885824903765417382182343962285500371656043252531688219983616404913081934295383467755026359604503353933406876983578845023708723809859115612752911317440232242141153108598484102442901047950251152602836172520524905992016319954696422715134160460007272560003860921570396534505041921615105534471480067378583129263151517498195085264654531101587394352567261442346419206231743303491886354433453274469384295333308288033276304428495160296927532552206127588399202309692293072197263945929044105232806267631650733289434577746042326143154725477110324100500626239009690142829745540430774466400604409914869798501100940758777358029951236970912581822360691537128321958787651562637691318897291833564143443528357002248207752776085849177995175720762726233517555341482970905664645357729064206956896794008627101409063285566955021088424227775319841796679960213168983029486673484973542620802637929129771411360456787679669531405415134413757351249011786025931702357020663526811744594631791156221277744418266073868061715946071002072761555839663120327830813201759644580310163662042191180910894877889648910605901234634245542106342191442959659944148910337151193371831344836143837372858234139677834276861230584947897600707966333335479946619365652052415093660329073143199932825281611972984331484495688244569949413497967968128615957504551311118294633077511878054184645329314172929264812276319904419025755953732087556760248732097202313591865645892162388498356972298848545673616731580952077172483543571775028350154122088079714358822001680534067013933114532507136924913112310624757138857254721307686037852258359782105096161388174434590038059613331029821418616543539766943422154070623672124891431590951485777353305510824973238270243016431058904178771696481570426331506487169840081520771193548482965976553956197026243271786669184973393201267531732388702494508384098923819625200842938875081427052205284268251220404075150565849246240860132410916695262798953565307375373983348464532088840684606501304679264021531780614067732234974482811935255950034142651041850801883481140489806954110636498375419732826329023289241746383178796709710585986669322999425178958253665930388165865508595968232255116883088296835557594831738038210993787741287619780875186005539025961261358944749831035071556450895052805580668857779019075962072193234711571635881573662287399044988461560154054169518999019318482238577759490071949009463614015671479588035798995210923062639709986786253735252376984709818174532995399497541916206918429025940318072241889440265974879436596391722548758430645246106893115184863551863793346709838561272760767471689305432338769426088982622290496101958517850429283522698259814553123162942969774174945148802693466368673312067779201035511595095048161269345149926178349981271319693669991594568926891449283544726966523820821785444060369051782445139479332772937347152410573085107758275908352231773772756102123787065206966154313187451331888323282029464990159371888259718242256753467940633695316274607570395219347192297570932183204100613645604184144063017620560681844764054139911947059996669452646450485228934832764675996500646703828672313227816790019299634931791737356835635331832896681531216095488179762041083482245297042957085006353318766412960096471251744915560322069882837316552826731910405052212341100355434561522509619107353313665814484097347018250374037262832516559970773498751464167758095138156775716627412121585991194042737385811376609810861703906451060416616067515785409381086563195260763904298121357037719804925324220617397190323622543398134035034076519320844363701561484645156962940253158414333362734404798486431278025765581521216898287253881914197942757019401607781501987413135849838708816367844733735862073808267754077261423518331968596882999499253004261141439023009001455516648147759043194862782410223920349786233449127239350252412455561309931156979345122644565804681027759646205544790496400416677498740673859627390684360627539859300258012728241052749679386181541221401801314370564926076556878015478852113165237666196383879520195526023250462192979347690818479091162005844395852973592953826913553773073800922910126571192753758805741718072410753591806949922994544593269158766800778377909546493670535786924584579541676064211860438520535280168754775229433743895866411766563335008752560306298895013373775655033679115409524732424864357223395838462796771998277896688120705711105425458975764889816652919281862173287961809552791104831149882106721988788680335871579440447609735640669461100474294742100776304049935818731573297411855616467345436191234943881667763877020899020455888232905198057514149297270147605707937266441068049395095514210575835537889781711176317143898001672567167854087784286227920330086115239587133546080980073477304425198647416173596458348643015888855880328952012926820405510565462929287104532351846311586292929234902091768044200700274381520972554377357197691174987340685667287721745130849613723045126895761214872942997983559194815672907378957612895501096652906850110994076564180869755132529204327050408040518477983227249460646851011747510392408135974957577386251209145571150976359653477928762793140262088685480814860448569559871774724289480644492427012850042608843842884385569113908320623114308356935496846210032179295530361799008036996650935865368047874492129267292438812554179083296694644249630329581018672925786293894442411291736960844175297191394807656847519879344342205442970576534134322516935059359939559967572887162377982840903958114105941300706076358870427877256890744228857551748055960739383841154017227308834721707160302116562098698795090833911925587172731075816824066905454502357033628434890849674071018256039854225724015705367467965676610038104609295503844053239315351238086599544994964062676215484547997573150409435346459060671615375675909791050564195360340990742920059621651399632916940897196821923366722281021620914922163135542998652931122663042898478928531505072206140257001973675541093421269975215635165928843008673311434428783086080389150235024476311238038150415733105137014033937808354502930786708095145032645960687759654579765382758169708096388602127377517712987671596016169234445264778832346446155204660294169445075393810022905486043897260414140672277211518341691104999928309087957571491279506543856520424389101539959585140761763211743535707498000183155419225568632520628839452590579729604562304746288225217265000719636293105319576834379465339025572257056933155264889120919949951602952398888310488050285933267174529963465465348004660894840632896554195630712335925404065137862582995880151124733876874001289796744476993693867126842383538070094554582190487576757305374138897263856742645552177795018402098377645880096581259111759562487628239558651679154923824714718685499734954875657010540759028242326313186835564854078055754224411228181004030850476901710038935511324305322021319365719008472419874074857944763752961221837998257867999964548263770265473408523317095830638569128638457689037934752965490147948604061732187813963060125184720834062810234777421091609894075903418825320677299862266844186170579152744272525842540261838272317185176248118758854434071003728352330689086855781539163925797077870159263918775683281150556570244077250222028769125741748811324160089552317441349900684515224125624507809553987031640660479358494857600702173257164225775711950001277926585799836343987377237763297048836848566637379803781918825568466159643392671981907087873402498944388552994993880123076190411083523271742568405375906368172102469633188287307274868757116374087804191929932694164142463237729439417877866763169034793333426531153330518710348773644766449267595092722900359403261281143940516819514736519068345493052489682316781432142913722911321368188920079725690452706953301998348405160824248133953359187301551360596776053424902050499846697522070728519329576310849177347139152711256701060699820304244929065759996138967825456370053640870830541120031679290066641033471586367092321713165484822517303498664081561508364111191860060796284213523080928712743299064781171060285387492247698197829980970615063618966867317532848902729737213013906245412399817830576001105784874192463319753617195411150205437863905036168036220050257945329985512420715543929980204331004571962331955199489023023965204675826906222738935380290245683236987626725644451362872296144228882287548211696597337406659127858974862813869894898308881591231056278078185513159414762242532241230309720545298941905673138006059434002572586774741878394165832380792686943515469446858226963911396611279771347151846527671629532574879702909029151385677980308447466167181772632577397748358270500215527576270648158235056503255634598290169276408179110784449386784496963847130245163450109482952421532740950719048546466389765751672393144425602092381814367618308611761061101755945702844723022060048080451303745882501792831047167076410961688378787247066465128581744171543951357780575553279991759332827486039590694489546572174475275692483021231217392033857339746645238728041519844270503250399309644462728890309243249828039428007862559769257450886617202473164917051036914329092106885087853072365170194022492629339604768161474284178374151275459346840298871003964090535480683470055684425296772832839257269836965023565146602113783945922770386145288108723361074513308813026703962853403432964358188251230272569292696260018844632273225074108686744044099795850955321739875248441376149990211569499185787489650533047438959340819282807524439037357782845966410243800112214280072392267354441366066902060745302188361884303399897383270556299720536364453366863524017093773255479287162411003969117388732616266337655544952447209927231635447178505600243593626393404282931118065779431579078431461593072918957579257655498646955362697484664526226689308150506006507656801388601383442403562514734136094155362352913798094404941076797578202618808180784205247923766233675782874924625503132254151568105999321860663963414314542238464597996494998088520705743431944239285881313162220840912320857392928314535436127901071746534916273554320647423106281214961356313949359918462135339611754531576143271435404072042480618553615654832848699324609124116372460433698047189177110985189578669333534256534047411507806049225216909203178307850397426554726375097859985824171077195693014903173563870561290948437885979545727785996964517702751177831862003027707147716966978506689994449220837819181736931400469247708668398000755453602320806962690701829971800791094860741063644535327429235448083735727253592596997929827720008480945315058049316576329030071235563169003632114704818872299118878742077248845256281284842991767374930395349564808799437344762891548515202599005146500082821558664868331475193561448897757312605176092042840360349296887573959919666916910087572491670914754168536501652282264511569554533105967926540425804563365991811218172849244442314348114113221276288927390243917326169124218645768622896571249068682763537912645864026177368450637514090804831037877398977186294227592890515576374432634671817726510924635419719292919055024654734204603989124720246667445462371491703596097330648932413003264322151581114493225984090691994552093804603704483879892634524399318200979999134700253909055823817995814154747276377641303502610148871731329293384050007281873372652529065794591446148508998465224610551569506792582062782593277256275301639777931060759075773597872022560454892955089374447204680396712718711398065602551010912058363497868987154850729488822194742915656066644433512247773984442574158671932656189311291855760141541826155082123308232349918955449984219129601515046486072905843545622898073763989099096469651656381164449075561528446545873565572290840861363903178958230594799664658753842185725492480762432504165210036718233413707022097578006655166979039992718313947700976355490736583693023893166492468033132236373608271051474774100589673559907952381119605272312734534063640225663689406285585834015874510267956557871571573142210376286305971289332876056287235313091029454509603825130288524497516251227622828089345269107795806828376171453190534180229136600977878670993995503917086628116797062949313665065096949036800719161321054347884869666869882359463387326710888366891216309048156753082872405739605961404175031112115704627178465352931704778393142032135652399872243569689933105414831665676582668238954646284190632515529972502696413311581764735466455233319573784375832168543331716837100685884405721106202135186057362884042512909500189195614736826062562256263811541270200866657167580668021116499387267476423531048146918561521731229017315931489483893140356287135929783153789470710568915188312690794877824126796499003316392312895513882338717923068726237330739121933554618508666425864471782942560589762463240547063790583553923085201279758586489722450316593595205610008457300640995331033146140740123472192305687452900219464405293802101313838183456059289203501172789755705706280062015714196392367786886939632341387650135953415436415244698167969815546435875016061648862847547491578301404057312962094376447285681761604104575385470378450769694825058511097878701841613475401860480176942659890274398414659123912051936048449194408173886283078676231634906515593931745930182175767858925106370631009596954253406015585710022429686693111166843201022977372470227091170113080409912253026951322681164375795936545957689597959103370494411698463708260639676270183145691167692249594494521706678406458568941873618692364718102853528191081942521775909552723331196976065485928432501065955917232471980225175022823361058007925392951319243002914718861614109706622250285696462692580559176999820357357338420960612800992730244046963953740047397202271018018496188488845836393761414813583196841563086760799775294767503778447850997115299658139994863020896692700165082413645050458075778139413606551965916958348931324245518376346423922800955975611025563369453081936007561585885658479400547700850169101847865736351275196663689549338621921993067162732164439726972401752086141264123842594784687726633941317604590477006455975590243620249206945268553841394317161059098001921389329565843059614175214977524370625129491057830280217601435019457162760575703864610431377819623438273819474268941806951800773886481648389105320603210758306280074944473132093278159493321046326123352881594879222642833793468292918694400086241392122040744517773699825169205281466994453953875596051757632848599250850464747681710095729447647774297796239959204734406506984363681957980000551386912535498173609394036270958693160673188710913426205683686758294268476744896273672785794700378673494622800879067991716551561405405409744568824271418089667963577120741521120525150765904690942658133324080092756801438326840877973840401387767772789380238888950797209360193805839724920673503715367940322114964317358263490582678133488899523422933660284263194933018386262087005863603955431331447696515087022410866783178142489640711457107755572161266395035242050350759407969509567894818652374987187464500239707912859200932004447185213231356127667380399074953128986853662817718040581551991898644384729452872911199436178322080990696592985956265344461628895760479235949443964478386362674208112733573954680091016449854621419070973255283419144142685544475617672961633027013019238135733763559696444242746442849261416878460200423016812702809706325429539872382683709710575836543727393263211851179203142826349741341348928273710625341876218048950209404349683910851107673838385827680416939133726907174901629818082510305747467619576816128646004178964077353142487577132564053390701905816907054720588556264377216696988961883223224158153417954123958062863530202508228651401802288361128402141618806443931454028519656970516871842522711549203753046419469243073663346547663413377228775453399672553830417407914219462049252950098744287021655209534054321387363293352869060053141523061071790810789210579704787294679828653958623746029778356275942452416527403748484856246321817047117835315881663132883105312932699494452161881470503265463916812720856629888740076660526328835819440075235152411457826003077278957289553599729814819796893697010671308536430243370549922486887583374086210666585533614663068248195492224852285784654279976014688738671248966129303677468354691623483340817179206598122913846713510759168149679916530592376518812478447720056414657015311033600993268287796316663752097364191717270906534037386477322708565429248765218306370061083493104157154980012044500678964049078501334183136339572514048993885036085260777706287382114956359685371549802242903192820101903296441822999544029756219763052021648990135395612422697048066630217301161876135680989802232469470840520920782174955063263755656154424532513352699796843907525878265564393103622350289052073071896805097601381307104877776091259889701771299206537989523913445987478404706847256442562703824388463735193358531730640635039597748376895733310955531106223140860497989113307720216407783718431289234265813628633302503556937074789598647850436759880930462702337405734341528567298678842272836072098330810004026492902706226226343984160867430205395197865359069038418842972302425694702990311027615902008947228295876918409892228402755923269164689074143789091467776775366542035614116343144662337476796095997250894654533302557381772919761655646917090657946863077664619620779272154275754461479235221343273459487303196167531193571032516773025511042671198503635465031297579252236031169405930262849533920009588364986988966547851817594215693804708924521694804124253823820366613609441580143424092165832360666480532857831069491100672449182776331019528131073929403078961020521740042068262531357963998119706176584305920107113674131306867740729345318618114505327128592669090357350393850474601462300644114019816508126499166191873089638740587129154419334521303279496805200826034470856715415737033647042462401943046818265642381874104629706926990679358469596129861730205304817229472512407391543587369742058479491597513131309561061561706589606511189855060418266067276127291755108618500435039880297601430671682347263632707764136368016371665095922193473544518959762641539001158564471416349663495667132806722146465925670053411296518453937887385242392378417574241189105817322903905910255637079800995060791231750005171555869599745349779702860879822758135459378538617254052668866331306419154049134502729389155961135164396637294251450890452362951204575101380414333766303118671345687280887645097453037452154541233518940197277877332154428534481414743944344721935312190173792557731694840113561018109932335999084480210924972997045482503814148693903959251505024670133781922514913101361839846759661283440404513569818389872875636647570875599885338177351465724778425367070956121893205846884138673795061658980529322200897002639311700047159799025497170578603468812257225797753200858962312079465892163599799916696906218342443313035842754164944143053441344045073985303218200952249446106761317217989955457588952656683330875179744036810426551823439942850184001706498534577982028073217093453154109629599082776384225411202820386400662928982330195858695030230059316000873486411145285962010859852272847012744443378351966358700219185301857281545726651942158435895454179323001491608187376848962264579270898243813930067580990266395257946762646577638147447282364222502649364448295259803895204880986698884878945332636709776716465663011550596108505654408960590793266797070009510213790212838170991582893977105227864746797601123945901745976849810669259638472693665591107680179251547656973298138087979756906547181205413453680066277403016422351591197702939448789248376419101699776908627041340864102182906271775856351706951202627128571347259670915561343555749763297211298921594186593257418912500428689472474189307182650584552587413804481131144531955473802195852860698459835272586241627162086469130487202591610169450872413284256460300422337151827424970492586944263846263390399006547941406145954317334555538451515841328965534706751567570645438687607428666068807321943541685601845982217695592480360743219751223535878654814324626269872301456964820751513173369001518728143429693536046149537432451620227129444977910289085052001642365644868597245901827521413764676923786712330207630987609129843943867188387099558187621233110170310426697789684364031899366848176416118187758288058188284749852318366238925155697853804967423327098607901198276796047575047440907223792470140695749133191170513116226337319606362910517878351907354698281043706472403208878078445596031813782477577173301796818378203465997497705253663843603869499425480995423188688561224546387847943569144503394853366833498509184663685062954349732565113202434004730946292794344664222748205561283183802029972628648132759696797109508019043776156722629728805291262841262302165626387769157512344021405961665165701021931775903820863894593795317781426152265013644248234850612985795311182786199292421021878722812434313935099971301145965637977841138243267290242845624798384799032821908633538281186844269266724840339626217590487791888494793426889396094411730981965005245533033839487813848882176381601218890687740296041059125062072104241003723081000047141629878944414604189862374276873477316231985116002606680625922343928281387474412709256984363401924854390776525857556462872599516910147507969896639141069937271696610747384384606802117639264628349723949332709889958548047495199388250031719782827556675030096163207253439890841784729711314274937888878180115220199682900224819946256564111750006644376687872046112814174642318089787866770458212896090040879392118100056086393136967435190254761311393553175781153421621803681108039478349271567239804591710177849905817246888211705818992351844809365126839332199391069428338137926900511286772836554694411371491946866891429886848318407059543415542172828719929138821695354154566121463636351266716189398904654757226505151054715642554210840150130461342496501443832194991428501458771834992955639865559711768188920713280776485430116814720405296394860858961299460829485913903640504226646606648614637022539332531839292978510108067099674913519825122662738625017913091122060577093486887288193599310904893719368744036838608926792718314843912719154472158392940799319864028802241260905801148622562566821391827608264955191609421416260124548826342742719548573138474334063007517827127838141310242991532336522151716920930699978243176919580464148204416194198220569876337133223085045701445714373032004670074172265620887292340330488823785191724675688507209276550480576262114972032112473524824573125938129803376381704046400258372015066968329777192595978222522072539970201966852557047929975454750317961953126040436286893489011277706262983903324239781217953754807784679189475602951445947715682032306885239881865074338955483470165838401401340426846289029664643154169839158896303649141677797898441960077104517944202126055986086784548852662370485506965479783656021814293909376933645126044522817098858085123869025122393498849209023034479753087003134000390143497249913865515807838948742835115823201285008417235866806881340273584382214276640770973304247694498800212239478010494096565762282251450202479089043940188455213860550725424342300657695373049583196803494640354407402191073623586156351712963631443744420158453338634029716913500933942113423952819532962657146540798989978452972941012360339581623300602291105416627254060864133231216224669408019826745689535250182538964508432462103052664518123737700128564684009695422244410625258050561042909171285893640150679058218605359300359371723723172049185081232328677415867823364230521304724836379048497590575691174875217209927536555034772972341764930114353405649251735340702062214695691176305625301349779178054822730801112251823359934725036198939856653097177203364454789965458335359567078142433230055960617204209015654926514824023165105196059537837221143426591207442479877748017425540703680528410926147667820989307561481308081000959763004294975528961438867407251138558668116214905129415909429457215858173491809312951809333351966860341115731592226080611331751692059032365224532028998989221347183349594921146293177054641487138932223219963700213515077206065101996291215472755714633197734464582109951196154047935613567200609045109166434691268670829249036764675765482045925274535461651646974732498324178760432080205251290864941556847340123866899305302032150483286295256924572793604677034357548411116974986720427777601219083953056309888556036904309867898459407487727770688805248437001401676097134843341328141461765918502898603155693763433374753788426848728134466651613539705956159144988012454059851711438965570617424512983167935901916467609666594391064756778734590822597336407047139017651669891406741698006580010966593210388859265914307627158546482810616543499889398698868173990406481541376461857055854619014009597377695946865390490518716719308096157330088240903785510630671635562367124047160978891038216386038360149634034384063569222154552115392727133055810540975173074108285367061457408686942168695700460766977726525666572123352553269323572164447122906104600117961172289967191692600519794474926666405882472518318299494206622782846617736864851888562554402295340641324811990668063526227708334643938400562627233363237240708793148584051404207340535697648680722838972741603976082615172185966154672393156803634481076500892939885581469247756121173408497508981972580186988544471731981685588970632212743023735885768341558143081011446670560763636216557217801453431479061815073496922969148206680640931757348479064035201220317239813556338042304524162900697250007825791685032722048453126534747780899292675727509448641465809794070943564360683700442531497032494549448162691978437167843688172308406386286549999404629195694868379612889774016861449049921918126102744954922445893545122375146736771575621617807929671863232358283730951252312627883520598459750532841408526324379192521583742166225945556856898742850542543935804262917651168711395549561188230440534642946562791730089499132055506689776704262782806142377587906013081920826776092891415965012607757941630377641767078214240300141410124799636747130323501398654792372141818722945861928467396728080270210017298804481970943744544496193927796271065457412476272190999900231384862888567527838073598112734734149251941171215356267427790061378206146996839543899866691184482980624958049000016077649173524923864692905510513145906681755267260551691318863662669980219219778643345656994619173883926921451693300313382767400753388468960895889370970785762178069399654197144470200127371067496311043459617167087769462200320845435905295936948468548593170293405925437763344310613242794072045176521968328074747198132215219063093791282563178553683086277374693920834775073052822696750088545560280597261921350504601689274431317662266014506478057385289929925484445264356089249931504168370858015491229153493037524721293736468959623568460867325915404611582764743183722189483663960222204418394046361223436742182413526813656835651188343389643067064060718444849118314705391903124295798088850533792162393844124984586177218848144430309658245398472548829237069027866636585566772104604151547272518835050397207147571869980122401990879212284357869171666114516575286945868295685846776328295809029117138285112427247505401003737040454051603241745333927170883705401869765650021978821117321541611967274875895856129662776293097988577774182774620084432259338899995341142591135283168824298547991704938778226504424911143706508503059317697996427697755457267463666634289066561118921889335837753423280517189395728774414115388179993635068414403448858719279845231032183887139778018613608140030532402390024893764737318923167682259381897760248659561212756948366025555179847509967786539466426558919648738605364284264944644436004012791967590575238715451434261102083754092274636657373696164410302157670809194510287543648057439739527964626891545527667771593830842337323897263577587601918984841089528995864451665657868627030128128401439064719028442741396596225872261415367390903575400139988615801391101274483633465388408073054765794505551247748918848362685009584786255762371569732569211635788683585927353990544348390925256758722343587516452423467064334258433827078632132578238164168069030524698779118221548258821205192673979103085833175423602506153676352029343815674254578083398223365135174376068360522246459430295653449271790626186653906898836044155536410754749535208633980068689506336099099594088875989653207917954916998698592705549898028278254830291240111637240884673116902032423243294004872883868983470576068205829788072856527413445145671871822255930237553533566258701743225034998843580387289582592399464854828097020041271486845712001031002000762303877947426249371613023459702884265674805683800806107420238540465415663167771053181606772289923046376616213314635395185333663862274195276957224351130166979617230636658103324581352029912874423997877999840192117572257510890579148086467392645545890663448009548542776919896934961376806364251187722134487768543914624069824101058005629645383371380700436247029209339500689016107376898980269813481445928221349868193905260437299819566362123950220542616098653061812548699490674340306231848268536972298851838324472602051909729160066037957564286799087876383598691962313435799081866589115490774530591671110655131315027443390217318734999882598404570781392704757462182907187625957151394768838356814142957936036973024336254730689948423762453047621734972332907942267835533749500313840660714771630051653487031574808753000524772475037184289546780927742130651000099994399138771587636414810209410043220962585240671712068995033314489644401495455938257279534030662382278516829221475391225533444409973954342780641696923002912937937450603587801103877763756705899833997633517437168854071756214605035729299789291417105633827817218823659060424338161171706828461277949224643411994226855473971038822389171533254193431916346600627161875877249863733117184839368683350387715282583915281809464644381011295890662127657465479321819705470779921319108338236541645453469486392836313791588333637467497093280386883579175273973078736311989651887266410572158563194035058546281378645218660466448019608956502417701474411598883514942807133333988520539705885656335306276090930745300384912910958737133346005432485585030910621626420605182965277178728051715863717947382766418562914541974523509569288779542745672141623357087331506004131798100863606157682993238690536311701763872403055778110949085346562245303857953083363449794955264776501159170365935078434799220781431041780804691120895025118218991245812030126580306316671894020848412493096400009742985710097367128106873839276295575403474541431560996807030822423600619656320941720108245825957887362264036078002646955022407584535962420974448392561010306558527911538763947214728399847972761239441849580776311310177238042742316263328175240206511535713891428207276331350840831187135860666331084513928675668999745829466591694283196036650616470713164382832357006943479982215031659508975401407666502173312585751760295029289351071349547520097447762741676291604689843343428439521665812499124860417846075447658720037307397518357651413231773839210040379548151297257352580954244584667930933601228096889341867317305567499014405196707255703297610711842844740504288344808531766228480651311604557044112988435304751675572324647286016514320619836085852464023306765770585056722393473315634848405088901207717804108810667532225536716054909742084423270773067414648508245353694499797149031777881886696860490456962159418761178209268257518027727514735990237810216745924948188305460011232288362762156707037137402564492885842123284359478947753594272513641990512243086789058798939144679820577157092963672194180344414227986504585758341815781113280939919956055856281960556277939197935461801722762468943167759301279768149345306479916840799382466552433262555941255749054720093103401550101127884333936148293214404596044914997248893800257281478575103325122620652688401675293006992904843551890358887041603268454627304487508608682887081716291213648970584360575103887314295705971637345865748955173550963967726758074642964618393207709363037526927980682614537223387383252382797486618523007252092007520479399249564821208654058875631147610146706398929414342895270038847491302462965292600493991699473250138000442622163944879840290824598941607576438457772836390610442505147350695562257887509545933894066820607398748010855174873217020459101214375666146913060366754587284870811045518182331915597545142849955578656347841934952026657808072617600393204843838106119244099288613241216975000472849940965698689103285679571294864075588703829205056822076897594524992673458966337842748386748688954462073090240570616440450905861759601957076593062994403346765381492331833838321753116860414046901306413746089663217278836768136933047068783827910507283796805400104699955707105140382158864869970902234307560275997272121587998576061484945519567356484975799373354541086258579288353685521226279121734331008363123036997156269501302068293362364475053438631199515188228709990175791361792133210407442428099143389534235565270139526632200060790074345862046685218817984253351757838755014718418736948920165133510536771808314894490877559600822908141794355875319948245228759330599087136376375970568400352789590296267655384759624785772771309353728429995800340345830389220351425342998551109942567473932168973661819248640502908067921582428821293858094547815426570031240895161690936347532524605550078976656287598126759225214246232528394862580549900561760414499862906183838727364051640632055999194420431427177418808277819458521323632730896222519488688807360408009774229416814664789425933374116602638393361049890598626447175332497427805915097140707615998330315293419155863825468057254507509666478806248421613826170492260050474016306425656768309530311908012957748165605528717972197216963842631659825372660566370736341839816782366282855449690113955976564526555892998544631447273502309891116996406563128185019533296278025428472070177478765117413915733970164017803034582112245524825990898181010344227155529053466509223255941351736530312832747673321893848084857639532497395733978385730291087108896223047947283262474041763213648912524842088788658830149931441884475803561989778570424345743935352142171290782991690813922295858615285811271977566453692613530446343229812796277650385983066795540659212443980918099253272002536718287739680725810346793947045069926361667467819372804398846226858796213959992566214961730981371091599142262240377346052671547469436429206877326638470109047941201304168119404127974387168320273522133016961719389841024186586472551074177392462303061613262011266422066984824379486170892363810488520782851867772702487717675189614176717809195247926668386633202404100600560078088087470536085556333429890135966830112774498259792254199857031250690362652452345934848382908377654606412306180089914211428769483257518340525140019763960371942958095042566437421203530248645406124806313972964668866491631074104332770762579772373404619004157190061046256088952628044997107160048724587221951517557357599207599260540174441594168065940184764167235219645169014330305446740043578768953448091785949152790055998197873724751384674600202374015193463877230742693743245693188129207815759399894373040951251671123088466383464280579311850688508635076952646464957480580663581300210329153882756562001846010191202808660031428700813686496279531393742811268843235403288900575548370198861356959104459720954469199521361398110601515482185147028011610285742178457072654487103565321725783328982860488889939668419806732132455836861745111568915656173903128195977890365108987254518915952422159259503423057855786462376798601414218967641543300469577605322364529684317248510340500753462881105393300965769034357814682213459521789873238181942575860496989708969098975548057715258935025255163056906134635117742345136123433665745457424182593638085463463629743509708779806806477716800510820600875480642003647035415206603811998799585069007288851039660062272083735738560462741996250960496659963536304303605766234253116479611745154196826195329398470132912687074045440841533858133042484418492681489938073586685918565148713089346131757771195707822342850072925158383341038492948322266963389886212839862065649469757609215791258321873201424898019053237960492263303634899523417761297076667960225721914550886820512944357594393530101788984986179204208550053760847927665546399632931394209354264333891334022267754181081243407530878529726978700660687225334489161742558811577366580699413292826591439877814148546077651590175341792137445229502558729997746085530463570159627212331786666479040987101544441404530640588622011951776752490003372133601926399525920276778120910276003873690300254392875760759321075989018318473761790460192018740797791821951144712068068967018830215323732995205037430204578433421276401381794478613320229192686694633998297147794135679782336441474492364926034349124642251393369171527181673537147665776274265155339967318396159028415483095128974551188542673709135303649088514247035894544047209725697960280394281898978818612129852117649089831350958917922005165466254568581124769913711289836913503567132099340954026923537049679386373289054327731087427437778643973482761097010378582355647421131788057856417301349436244034780901234343805613876148115158303878348419317166255159568656254936031097738586036827260266998985448088207282902810852234515884288624058225185767069708716119337430403910856124171994058235355180626598262128736718494285855853045284256995276268115991216300382712493787639117947688996721621270704899884671302340504249931705363610102788995566155241928485564379073791897757916458656201945019239499997790257399667416130152384310054278030413626451509352850629149924579793614562465966803457362096738906159512765679302420896222287202558549713306469193238533479387459684549848370643483522667218190692621229168231498301849466266567195961260884012687561671891839756625986102891348978590650879974570581910414841689909606552775364149828591545862305476862642606734789283335377765834142611276193708604230178408050571807657715573640306799531911558637755483793411819904489246710996411632820605731528252288620836614085553510837995874470190545604267497629417643588489625995033839724659290817787587265594663843030455484638602634263608032151073650921544479096834547483484493793153419139352927968249677810045561362659371993320875100870211769340891577828115789462825187301760695071233637565850829910752963320496641958420253333837604020010405748348186704213367735991792316612998060154051534600287923272290291446343974452465038521183835957200276943365553900115801990098299274595917842555329585503373296099218464231381634180648855581920387782624894919759236340623031055968834826501022859822249405594221154872674477433309919802451957305408570146838873441026785768538146514882862366920433248319237270281871626924469287148619539940810291473781721049969127306851364860818100100666727078397464328442390465314784540860786477668387366560199406566488572684164497749176746765350709186388785293681484184141271087256747701099785509630698418148748123792478083833361710040982446242778864210548212012615846162300539358789409799391142687692648008308590007308199427242262594991851941123550928232488442700850315807405447125835505115322073363421677057007483255460018632652892956154525397045354443237322961949064453547173883105604916266643330710769370795411830831167603054582937251055524065261940036189869501646337888776207146237507566142365579774725979521144070012824066351865847686056102139938178628777646820536561388187627584283854984327766262383986436737938220580659440168857502702331258744016288022007303026233856717724775623677692195953107930067696753931691386861618002417079655862899696249679436377462140825051436327712821499012191005311085533788730572205628888129660238355377094513756527088075813379928003268941191509750880255659804443093783099571984221325300114600470416347340903430459082411036989784951434360026793058681505616389813163921529535655452325555050063594913728709038902917412498841490144424683047996209583860319967946345158658338125369957963231146388107911462118822098548940900391181625339180809472121185546240059275757351980283949402706210062239398788030710977441673329325774547038879085419092446599427152829843790152826243746949288552331056559087395813273808859820347798585993673743527457292866508147226711648591074255964420893242615881711623700799799520236918265349535070426772185921015398781284691614150025481913555353097935312272333677043637636734485015982249272308801228079550101817784373123271428899451807591470936878980307615274661869243763306952104935553337211200138813826375382191046862667320572551946754186835964582330408439645276084632131111938717529138228920165978379537533539034549642966184893750573311780803497140325722061239027642694341869147560211738919849746752807496273466534659451417086893456157283450166352670877191752390154345284160856444023745218144480079191990122210027499926923036891300730887468464710572875253193949276362512857399611255876833718507602779285109534369084906302377532943055753812317189245788389682703750740548301091079078699001567383439384652072719587129889231877566617271165345721608121309530114318407562472596952297266559054165151279357865373972197490428356340530690805583780897928689288477660887085956583639130410220399872850030672701311589445655922573058289306112923459858802307541306005785766039175608761232411707914132540865252234448898622560473152396280640775779784440046772790155308381021358046681607577268929415807802604688065857746420158734554820849182211691388206749238506188136725485120685237522248014295483538703453839279108312965040462524919523457435780088930064906180115655603223226703064751184391669142298148075024280542325719175266167059025102413018771525003259611617449391620909852720217483712522627661371161158914868586416838196654717843162797564403744414480981634453411978210828493177790809791426476169655059011374422391069538651984780848342114992808202021268251160868127515938230080070140184423697051512989560297548198443710111837619942734922458830509999991993957911468223656632541677081753172528696621505988290637747521766747791124122473065375025963983777154023175082729630703682577003512615250318770641128424120540595767687129282623228095670650859924171491288386049541178495415940135857865410704439438241124835103096817859816439677414506855429212925798876538737367545398925995809945899356584023729937125650025122883109902939750414057679757511362358023713284521868735159299462399091229440840834825633724743775076463957429138401952823422098678980983343277278532206975135953135715533637552675624164687000603840618410350633763973764052415772775094171946466286957224964638741205875765984360070109273992107319961090948497697926828637547160404484335359440859163092910961492000769567180066474833113312664623440979251145142479493144691071974555448918018644161862002886209735041903813336705453428215369223765459014830338903344252206110812809042858388025768354298806107019780409246558462213636782205337121774075876291303317606348488073954111111284816595413498109988214987538314532020960560992962988285716008435121483386542883534886823267278427962998954222656905574334408918331575550264351871491610220913302740333236901921579956762446086457384561746346897110181848426599210168254582759216662948799246112701815329530708809820581373498871646463350804202275049499912456904942009092464918586833853132918311695918100356913404877335507337330883312218724811327811903915609733576401102223300773570978374471987918966655514636619688767126326520954481292007304282119434575501531384904992336739367475609325173135560763439182875075027617796887262365117762996786145187353048746122495491764363362297169958686395858521035094087219337522567353899196142110208578429549821636092690229130941934498260538072757727172743701984899254358581004577356546754527172202103367526621559424484287263051520992622789291261548147395806324297369838120152218396152772789261458946233578636908017913426160236316063350102049957556802609872628881975346777900309302301932074531529165603847896951632274957218984156437934173323669136770958420398497226325240131696389751432407370951362647500831909200815008837730564931103615774654946423921172151013261284968723610394926837931093159796409633615171317601490261964610222877130034903404052955782341709746787919743276076267136410974808168358352850649371433424618750988144385555460749672300754014280876555540673579628536156733236330075429836865860412651156779949610876696162013610020023801047753875323139971571247965428491201593306208870041646913953459836696635043339847674586338348366837512977433453392339649560393255803275198472804601023961102677375129141358177175855927537710340558632282185009699755679621551675447251234344554630884758651826704657862646549010165340326848959415969045072464952710863416165879046652963220020624527614535623093094861851207606057547281521180101357121199811128201864122918786412456744441828446279574810574524499549291963983588010339155500059328433213954574690227121511046160099015434907069382317618642996539850512116509706411004242717484453857467304810780929277337925328054959024258158133677413984862491001197623612870518929377949221271736990820316696260253983627471787429015347808643095541684610086843784834890585272493342729681752028584060344535405605066585185925567472704760238671583545880462929573084652013262521294417170239619165930999133233425101698537939414861178986102646103428066847608004732392658085233881833944779708166896635484592618748716170057980902762963448812464533728676418383618972354044175368832503992024054371468657084402550833279930268638791164983121996008813516479359226400521113154025549959627867161180955529328755275593797165644767970566393815669660328138947261851387479324558315943435226712852487745496558385212247872617018170461310303942740268765141894890995429255294022928164658634974191267817766333025414478769383031551843770629127146427814987456587352875759297574834691513103238441512461065631936943302616501893657810245667040832523113099884793015443218095718189673786587143560488182837936110280605881260225245018565827180947207206399570181674009630967691144053767441267319058204478756818483504815081139829352543447773858282352610836138129037814169085897953818529264881426925333582450897814248078479293892394018958740493779573337201820609666853076507004095273676774895435788441311218183427403607125053182050098068534422635899673350011033675250891892062758121382361377119893961998663276597241588753932879948615485463903497455710341658308511688414891745925337303946102596803922859188938718135731644590096232052143040856125515194908051754283233320091418958942872680732272778698042283718847073553684502903718126255905321749124324609511964766588322431154236113920594230113928438015466479485251732363737833154429853248586060903741023059462187314765773345173480829142527625688758155548316238121599748840991105061866692330330127588810148085433796042640463749235921325408928693944994157215053021193020670490793885807389856330290726958049445426934012058208889416121933090339434978361676852106547236069702037554289272642739775902128418719811180162321646334355562721783982256607764380740616819222932608685276437843653783548244036238050186242918621215629172434501981028283958032616512399931978729445985546792726012691566972856168883349535147884557560364934309761171762402068455052670588077889898859715083440432308480369115553494306617711402975210034373427758808586872847989649059890380382126345627634973053747935516656285828338225556919770739927286298115963946312983886540526846882372109026292205205676424980840312002351682674287970220383667505233681772902427726838797032628150766254150582145882355819319693901199553888223609299800211208979237893023279672606111351204975934195530763255692596047456742815593274141083175341057330421374018299000373320091220130837811897343164785018445675975474630273434157124236072739923779939063794172531674293409082440138147652791933247125549413453453388243424511991898375350782494925167226134549040738934580217976058432065767820394417294282558996318014130328390090001773563300098076283931610199611493466097013291800207571186847927332981585085503521442737922668305141891530585519964066893048458886195624300422589810490605130233344267861795044832418398696679139627473776154222258139141876251030357883017493547604353057747969615574579766280695498093726891074692682247332510657238040300787557237801304097547609860453135944301519966336781374534294482631321859587010040116697728291599269039249948594215166373754196122539485965265423974791178344113063002705183522337777916432646066909760506082055450720332966461282624920761104488936641898097172215223464342010975037791612301267321123850930694272361500752189777558781940108481378618669430128654235331915535235097991067301774578655021418334582179231273020250668447657045768355899445731584630198386555342561663168217381628723805293337629615076793730720487643842778945208554297339512519570443287142960739388403734506105547342487189476313670912353233008589974297581107683952146447858277064838926410831033714090117836675044890261116551274094589918801046537077200016881882167818952405823294572480319929688550289180154093415835285555676802722258685297316120207549729932475580678343683246971922253164802383497585868090657385280017225984283079989718797029740430578182846854304862713417315325130266719429062200337132133321763752964620983025465290946680660887969926243268730807216926583909523030673180559563730754317611714478680603531784339728106943639590244172700863633423673512851946216965968286554756582109686796802357201293580804632864231344076335245145423385825599584236016316078147515557095691863245449885411341507194782060039800287366302031094784328742854481601743425765861710872769076607837285714732513008997277272932458424487663718555963882330125796666635229474099096213319832699821269031127050278902565744179252983489398213496866052954441757881198305176023831793544701624956062151033215811154887871359977630106665188951223165981764570150922020916868597714881568460505004052168415350218385690754287956511539294745070114830359108328541652594676318199099517236591913967843676858719122524361713153945028230363967842616239688609491074224154786279269388665568993931367346751546479761216276746566910007223041409463070154999534501191363502255287476408956642266905100922205554813146988537780070577374657144598878252205965571206308614584516981096418060492584643014374760071867737642831833697705470576057599672484581617544821014753905620556826270716104110551702463283793199178839260414750466747352309515345286312439990501934500457189641818154953105350792826732037650468384876638084579258928827674138220874182030209479215729212268960134749341756284002947994625356951245588908873810097562635830371045964266682769766672926369963686084777187691472212349425929700992293904956042136540137009736696164862625959870708066046719164909490359875759097352282703961993385829953777941616272657635316489440684206002592927104886436125531273817373691567609086294839401824424528681542029148612053844221085394200090081737746119213156640874519813283439905667360662818822531852955497626123645396922640442805991901963648958888050887797501374111843407402878810072059600127932647653186387272790854792685150079756171249690248295541874634923842740639466140474049020485324090824320003910145509167469486143345007980886930760273189243623609172269180300179040841746836026636407545854068285898169317390859524728958363181910424140499815956669496598930187273010838613316458827069147133535654282704017424417845005376783307805055677071682444123726643423566916047131053564788719721522633148206167152248864074482417142382575304096610435581238677447167114073896432820143800621128588255522085135994879115951852952628301529286954941140791401218760226160170476168682954379807282681642210791358336406057319269308079581283944922127086266704618564611548017317496877150398955617735795841570347487976026889403932626604004676667671671748408337121885206756686351848452227451509679279931730014709814287292794860319280153869128153224035346635564520172641473132550057232688454200786801091440473977502383442610819844583830348627334614104277596960029762814973584803430791832912290974887508378078766567819792567778681649467003520513568949091485155377237574402452783484214596963215635844971553842722693616623208946791073742150180772924534525570997744488693805495921701617425939149086145432824261390079456941294686354902054431031319459354140397865951777078902261918323593157841837674696092023172752832681254939921146881079251681798546567046359672702149865297812227726478245532704080316587527162517794397510469158409429295269553561447061472735173782788194226884354888971113832455097762674923261178576802033830596949974807552240898704026854892514769224047159739211619244034607711468522647919873400812910667507242843051876843256675398342226790259715348303652682839314486282176624594772295894349108204450921211201742086822220725167780978816731930639181221316424041199671092216865688277299737680208988182624854843414139141052798640057066682478253647779932260601122116352409988830186534338960498792011946816549560626204584361886183081914258933043868426658831587562598204491326697322062840513416494452404712697748234591874164735397178931753068466795342004478229532153160571035990631476385782785238858940990213821622108656971800754384274410881819163254640699071238517301001247893744075648469889722258473778185940775475703643622286497142974943346546083898279615678733982939934866361238105834671646084671045069583660192818822666314488577382285668737063766566368929631965183009883458532466711895473494649239265983026463239774431837768861093668189036487473096550935901067814540642766513320692475691250992229623789544856076080082544346617411292082953039293142359663495081496031969616007796286097141014785606164302469136514535202105186400708215997161479951512891128764042235710504267411647048465308078510738869875573057775501469993448829149916702198205898898511578651052017709540315052447066963623931897982811341516784672912301383330226536461226958557923912342602305705049733497239916623695055721000368124278475423314934436845487449557096322605785362777638461847665391885302742840936832142716841517272125153854530318386925485998245523981126269591788585663533143559253260384008861015084576154886325094248389110312246468151738159587339835758736747700828091077057367028260755185045018455203706426906296056512275541405994854384804461128394284674778512812039523843911701124210002901659485484219644213820660187800905566357827009211196700978016162605100057150593287467274211293715178535445086367375392558079295952499865567364124548396988589702544522875590378679348124249420409128628174907580177090315756863170338413975267553648890645425815447897081461340346885411554839530488050794773107285633680007771987161214396583277753451829288910688051117707705725459983768059555114015669815994523865719726596784904591639602398559002523816506282357760140066851959971277723721842738275191714317373736069906935923020316643076245737422987521729268420188123815835280645658837195017812831758425340662103502052418871948473329222016558976208532457915317300664562413443071041866409601707337963656220295123406742001761014715484048149586906030658698834780514209941560307862240926014651948058486231333328416957788955527793560261093862045936085711059530629361500338661961727014597599340045076311498112398911780279136442494041240440718520420665596159657213974123197582944664495905671747797004443465428652213894855293144224715909195168730626421536980559197327952548015996054687594906761210673709393292735159115969617028034160984627871929030306838198915153685431937571305244315208873033983135325044876486127281116160656997599779643275779700597325453401510286113531051310769255215920229867355930091865963393515425456231843714526455103982640870072346703949494443633554102702242137413133912106835900002789357755762193341981891795231588188297546728890705288636048709852334142056514179601307431797359753970082277679346210723399376759794613185682265164645086030560903141846984740037473816165850222041447404440049171325879553332675197846730993431841071869719175323972526388283357368265286152601507011063072854666107407082027091323686391351577072678585533337128610607518226455056675493472584114697074660659177188358767492577155266809830031389886287061881645243266084170990943449416566195323231551072958377779696998860908620525625289535403266128831020650968302980589463437803070093935376657416150275567995491598875792883033530463294081715371465128412768202927291756456657897797420258142975237234930033996599002332847319210852968984718397220614481331281051029278612362812340443868646292913050447196876515392632053172185391242801951186367285608570031431455503177375022881246541166384508552345209263733728591169130090252591909043862160823523068856160627209869758052201835955734719735436197914735616935883659837417049639684413200943543267381645396369551222392529005629070326538490087727664304089128297775141261198857501963780315316601369279292711356080874003892964311792828273199888335207150887710244314316405110901626128869710224121653111439808532446537330719837363446956652316713174332728133859952293392940689177368692922728030470636637433683816616444209379358883096859916788774354611190180514699426501426158695460318765013445158399650031983012546366597276098068171172039595571379166539035121581994541766647576370980048871169573111498660829857734183550352842552202263056066983492925176124987677109498843565568078332697606097412382148511629793789677563923412481760485608619671530278082646279213753784016186031557478994504512318977732132728764128071920534190805499677868064892930894346738493894745077484108349024691168440603365136771652380425968912459981924910250099863026714533783892978236259319929755384771913037593454133835773882474620333213785920288221362333356915394911147680982247567920298528230238477098895977155448310744226442174053023699400080757816428894826572752145068672613710702741993311182728707401465895779956321434080791404106964294577026153644612658386315466307518065295105858878319477284608295802561811574187137894621711299623384703522156011464392191781358606464183564297656234768308457816973288799561395209127717985090004548845647032378853911799433640568339026201608994176639695333138382027275366822474857157450010609111094351359884157278964081416699295865421903729435982254488825294395388695106249549283044108447702183978684287019277191213579207808996291326694537790301467261454207833009932141562048222985333957050007296057172336301002192973475730193004423462106350250859644220563688246373657511424076081115514717488229767035117521208346937779008782900408883258719560289369107125759780502069974656976556750108200113322953666294224517927843873256802684969973031879739544280522726983640820754182214205733330745802640379060785704643684969270229540639912344967113243272658636369148788148504726496718129396999188376586871648308283794870171963498604909970318293751960160206909198841493849592637538300192452574322255769896786653107495550294107736084370717758500942454183485811256188831219918684448977543444338891915672369366323243134594203362776709705461519539417332608635076152551582400195824227404837918696406931473577349898586862939411174175900796053052165731231567214829203553444618453660016195719134475008588346940474351118781394356920073963017797126863624029428458999481999330903028062478436079640311398947323177881685422945302303766806992375521091960968231805958681257580597103026392557280986091523047736383278124411360362486803292232880707764161187038946996580911661947767283265271062359799733674908219670165087615338941651413099816304600266092254341337894071486148895711201249908623087427342299702445194660047524724174352807676268467885699262930585491129661576634352770393683758092006654814552764394367406529814435975325169292193507374895962615940631293928427074428513235603465006872500050229666130874893079349958366108835405213245997823399214772782940743428569979235654453993687707410859753927082790013744357371834685086112057928685918910695451988058083792989271536092966536442862187705366905862277417732148950001383937995333652473360513204325296136148475590668583341725580328815891416704955571095402676739957868380527845712571534812713259660002604543810855569210872448880324930425679422667835025615911242310362094274822471097659070744106005834776955775355116471249963803521644693213737300994154744398798072195743562724603294341885993667594860677107729814900029578553202405951078156998128386976118435429101854690065312723196814349585707323478633078086022971880515439650101402354981585672897128407981055889411117712049125354874011953262919550916726998910611694957006261909187900182838906141183543994602585133151860601999437508687169323519307205869634850104377201147995677267156990043197661749405647573371037746534759448613367086540930487847862169272602155681310471939676467315233430618097717970606825536599990506944730132762422091323415010888339000206923177009312268551345188591369651082177075014723260966827293311208320328156137534003509103935414935046426609923943597195321936184424156732723766937927988835524228976821339589141776431391567072338124308383604451509557598748484686804587674948463757648720701514807462896855600962560572197858598315820393868995276749673999586839981204114277811602559901009561728408619383334911260798627833886872185631469070452646928992872024758380806183851807791032108579109378276856897436549806022110931822179526241045827694865989330699939868376208599482809010701185788503232723140124190729961542012508297646452202753787990135920329750244775480338068246400457196255659365792657523050299140688049907474958442899482142594653028882516483007865505472619591523440143577179397417990860030435223693659231348475398646313550955928044854657240038825815881344108814770781303287540784999246618895824666175524555415327319074404721503884500290354246757643582220205322672513614192802340191605729815142162426321067852773993648951818769183221994113691036019644524831252754658820425934511501755601079644582513854987152062832641336932613539213356770043218840270798391264916767413894075112592177646894463397553834350838370571996322171461059376282781224768621737031005317385917860154300476182388202006955431575706170260890755988330777038213254216752078891846806670718249041021775845602858000311504653114929190199197678505726085261369699298078898256428531806019925737790642024822617429188911501135734584098623462335116559388584557244621841795614265201820365172983513224555740394793136863684004001941784621803557352770297872919217186786894857004818955172698046581393529036640992357164005934544233992123178459628957408428029574648140112283808939934344332334637512829157702650347571244792688424372524205256758282799579159878471377575470295746388747815445600224072110511821912163246912427939221713810086979042457794519399194601570104832940762559346977665379504821381704075953022912011667187541936830245502337940630205272332937345949381061005264065997699170740407290355347989437938614845912834575719691128020028923604645820870807906693421493634280306047518442807803707308793855292544485576814793056912042493868328670909532913300275335825541412453389488590582824806239676251871841920084672127352854579738099920705316473075772886491168006341740061019191214550679843285037968528450240379740797496374224242647664763723737254701759634128523994616402884575832012596186014673642577555562120782381893712483562334165476173237682348696538170246823310928484704598064591756879210025864326572077105037168481413335158231705200309598370723076621342185662117014732876383321312432549056554973730280219379492827708620247866239401517407580366225444937782552495067082915522353281748215501702507102522342619547713950935236665854907385560790117134677946727173020439918512475999092244277661463793482091178083079156678493985338458462602624676765442176205596790510520239709623546529978957372533226330553198149921805497195590527501364563155504967456204791681515459770079723092217429381085652651819776210168432117345740892219953526385309483655938328506132020171184488042708416593525293845507854069390415840650751626738778337735161985404082272498869554314775894007954068105784394202308543264096478445503259038941892449178693813788153371300785813377535315480485054480032917745036459065623620069717692408805754472780530191679899254511956749749208185653177449108134498620622527176505096397963484294812886397117907578712723029580221987938708840808715882403693770697395240593335114202004664017310384728501560456073724427361338892243814851961193112858424345813045908306300686245611259082332973531315680025026149289089424402850198344865095580322940322968128238565349391185822579041215789605134078435256804731916005962590861024286231393240352215519489130541100767441720931278256575610625308287301472619379144666671012947303229324996488686890503531756973391119018692170507555612600928790087725063359576338488815113182982870461775617988126610056729376397467860050041556670648499489656900310256750218868468136178789753564367673673779854085317196050311017758162816943636318090176437064476002807700729485637837757442442709218292092046122632193642532901853269417472520004481753928667549438916585202999506418284322062366226437417067220930698851789418030713306758165006874663570566478040648215234140975561824687740217297347717762650807844376829030513942408114516879367136063390111945461356933056758615079064367459465061723624331251065431432232530775112791401861676522507291709474683585175409655111027705714563764860362540794840871873126891549550234142306309018486681708247677235853625724052893965596215554570492163090515145244692305283515499922298679484253475635047714893773808875475585233202072581091644845528688301399244402864468567408033113034470277010828539871313223182767672988918336948361537973138201321776363949540299033225264150008033569428925187529685836433915593648930672274697689795525135366794597416489314007624907425599385674474347066462422122565086486619788605053784102101744884400573385506031949308494841536464734338531920269803485252310599449891010242917090683212579209175506297779169846664903875991255943742789316696682969300054881725452379385430610639345031723530205848251942260461268625885655950247019321705358168712063499643104877525268103393862367060644410703251168451778944889471083685548846137324497216348552075499240148767115740464704557950989425884652621027579447297216940019234120836365906396450918733698228368000648405230837058012283677784400334515219647373964891516524490952549226704499804722201061281582833722731910710436384255259192729775641899228254160088553659473551954094039740771717219000894648136230173182355945026159207491406110631905145887069418709539107945382916793465515987957864116838190943959937250365689661050474135514869008426427986070142421648216511032666673508115174370876452144767178760780891001632293212058402138489614393921541363230719295470412088091271827223242942892360142559740236938806552048100541115103646225835933075690908918513434872284413162141389050149765195222630163315094337372405989525574447481485482997568431459845309148684198188092051714516802307555011839153296404063088890872584014344464409225454428572137132296817725641633621628131519751545421620407395516735934315976026050530639606599689683821178784722609586192481510219403460651598380485626584754630095136459505989924181370443426417127014944745916571020819985670690280443525527778774990503294629574157469154772434930094783005265832868398149997838006915652585168020500960877945752869766212568134839661576423324897071206380200596446426219887386738867454440068199564272742900081744237735596764474638776242592573868870620742125887009018109389027760665871646273123543101816964634129948115412238664878064159774668160849078683219385066739909568504385072691847877184617479393859295414974314575453562044472784326440149329204131414893557912039669674554804577403519990754354293722551909037540635491184008227843478829229791413141306347845675115293964100654124385360479339065549156555820451503208837350276671074586776877618231386230000587428022142556580213198036086070516098968489636240005684571153297009980473810821910264990686564393072226126770545113813141061140526130175762851611935221884087916614599137728980719915927102074325489233317464805779408703986410742968139398687197316408388720921007950095952602169981535429410908139880882291922208452853858484807525925825397175367362891911415960886196289819402860320404342568900653799411438692768863487858110515838232923586317290565856200452061582745957009326030427252234493588261696927662655689678666908397395842807392419286760839430676763813461558610372939038850388508757026178427036188384980212091474586923014582029012995666094322878249981383762442062979180234042487289195724663290293584556345606489563683575849822962178659028361303910158803449748366105651532340729347639920374551422064046791577260662968817108245387890500176862255092586276342782915990594387275150428457963799047653591993191145778283932956388941854068326347746025460001010826806389285757985166551393173623813092764408624367869270639630036894099258330749312936863728937797407026506902846186670495699875444148474543059529226970799329241298213130576328247657238072565359193734086098947339311536964411211023379804122624861878949948612157368561092147987669103689880936028425051037028898887079970850089770073619416423950866603618946819542050145264720509329659193560614876431971108370210422338193132358233716681557423135584899734604159501649501746666461355330099119507281501639830863591032379810472423564470512798804160799891966240619545378014146860057099946264171761048941998394353771115167910622790767275296695731654609996374711671389471611292414653732549792183060185247838026561661521876906362119168201099493479932923074861490545999683665870404208933587184175571184663003392795434519498530611412234723677160716492551484350596716006160159229369612236344752852388091058966828671835630267821922626932355032979036409188499690135296111825106343670980375680885965191093746512549721004836970990933526252979018373651558395263313585394934762169108148423656523632885712874898897218059078846155672335703747687688244598679443589456980218340256815026226343816184757038188841552021186734965994205293049762042307690104740161268829988324799694930971741823969535198317266746695506300388449384604407761946273811040741351392445707058445674898097696550830566952209849653638164456509413372620388070861315800600289576353030466124045799936071628640334026592180540091525088642974717779599716082861023937469180535683693807709549150602128206170698059804043290187644168033076481356590655618461088365589521824005394782360912104878370488323238599859158116047722364936738612386005617563647120215931556705894651174249104603617510539551798210636400614972404321961506978728960040957778522134840259991805014609445908583747607988944250743795839870971948160028231147203908738017220438872214204449878215199690241787756995533293661680176288738853011776971946965058942328604610949551079298418297526192499409071768625737151877175913821631225180990258833218962850933370663213605288493572611952728448319592344808946889918842948341161960500594975941537006772567036329774354970827875048295035091434376436818692073864968899116307670201810360158967390859026438254834126484864920210773344407612151454652030159317417187861193121489130217426797590146089467034178306246732006058915948101022226474660134825460752324500437311246500643847504604566776780006053648544911799688440249250726781174218380722760512738955826017259679672739143400902080259846452021828773161926818449531996580999682144496773033116648044322281231055187669706762752176825152467696744743691503056351444101229263474981890741205334739517504963753852071544642906831367772061670956150878553412541157265631316033115681311095439619140164021670376251548959432465679146883821219596108092871009461888580934598353998235872203251752216399471828432031329923116216023394680266763932384399835743672783701895109194992422482335157036310816284913584361376203100678130810235403582176024882126783012756169266940715737908081658664361061962850275041656296192273516323883981556516176195944692427808310561537135225196199109606299694129509483415942194056138794704898336856041108341750235553237264838710390347363375606395482774503819535396081515832709589610704891023602225070673665664235498580597320525060325910513744331560655432147981977951598348701680110259628518102331518687184563246159286316366024140877299957284007010232081506436704618621219789465667014894435310346742240892976749400856168731486757975679230931017638823606894550686538181190391956105186736733518311092520065716904765084477644379852075861160844394678669214185868226672046560125728142381116284931806987398982825998743700768112923991990513621971483963284352734675439015332067442751126429542131801293992150303987188647503510304985955882017754539491696529912387496597744963734727946935969717765760019726773435473703570940996231436438308461378732955199248758905143729467296685229031752705111916830000311311545424498592571499251064989875067516911432702911105319740128889194923089706277870092726873751510410673007955673044638977685953978452241556082276908981536456846913431653954214593549956064610880788894212962400459718452680132834243550212235977441211096424824293189526383957107959094364461341095173164023986441862262509735453086912055075493553888981767291655085134886247758151454610925477312190170760349090885116859421049280032767072946783722266570383901649788087939237109308503742660086378078916322030638287812724415512327008248064633232825685341902968136496018855471852935533262961612012226344878190247378179771573888557287689452949343201192346570778460334260315137286663128472752252729943654781458621730143176989558714501328589025642078417259455923638553048483306229159267029212552773252828724268670161406412873243755094946212318704801274801202338675074859873146423720900787070885722226548177865188473002486955069337963107122507524001186984912979083366424570261921512939984542258553355285489932695748999466989812770685162764738783704179704439879385513597145122534275493781748077596989981942264725431689603928852963916848847833821073691073583422262891734700461391304485705254558580697191016015832473089557057606730464211853501143608627024305465125315939543291201926966272067120476296786265296676994115818534154661914858292277226931784689447847887616282130888333655236326677299650322535576119648161397304851900402126089738957686131996771084023343480539430393804304502999856546315008260032242870436245713322359135790395988893729827218685309103044685302181379393405361123254514675569863735064484531195880762821034871185124605100525573701997087781516530909356216603280484646804210223104683368670804397744469729188015054991562228127263439721532969583114888455836085601213609595302018185708710949826279764053914458295402612396116604798970789285554113255133402963242562279330400030603984493105659579116852507583196941696206725157498352095152865033779053224459922692529529308084360951271966446040531429842890501948578044114142501748886081784958476335219066823329082033090438930492100684320659185864026513350399270787062646268473415781617333236416612550898302289689408840022190842201365512912228622146758512969972579016077148071126114464377842534647303186095928446790702349471746973067690321636660297307268722640762649597852032171172419752514289343186957283055099435362328567249563111174551622019519744538658918881346036689902527876797879772523210595077547079829892922331349781156865059058365588145323746423968852778959131268660273739075448314416139662059493823277201248353303660664873638420026524153042414934751670244108001175112331562133668954020320193637741177400739536763974923934566859128618186262944957049679509181670230271858933796250705349788720655393127835793557171239504544589915750380176288354582178370232110227545452844224471661565696357806855210155360959787100660642435905282944531595526313093646148605242938746737562118050510831763947104764100093740968663592026968370682465618153331577957027491194604036808520591137016506462106691168781123141733804476576218399795858415700418522205563048232693381041281514728520123155515996952915008126775830282346633349700553054637774677746450676450613523845098224891057851138270882425366943944270989724268835439906210007475405485789336367586552686411451332159804312765779404507042175831020258358693289427158013974166825896335885166927903864744656311163176255665338286951084533021085425026350151630310356101417538507642654004522246637654335762900203731303473096664737841604263870519393851867110076546094010624016446452366832568737583754559348190036790758406952320930691582880438575711436503039791730742881931592803279795895289864072105417624815011753151084367757236552362580932517616167509003903443693200328076957646616917044642077881252142880594444393957036083943891258207258335626325394473308139715449968008251566283723271374823286749526088581963467563863561428920296175795104494023368454962377863144148735397962841979875835476399902325750376860611745425123398823732486451723138980716668084337082547718882642863683801454332511261407404873731110543207997750482754283258763750102668102959753020480436217166562016892978118235995000923091921876844235995172025075038132001213838594799554019461690518177838809388514236074671062871133038895093513417137158544563858914393552916450701461725485221214511491924986184769127220781947265700822352636163383643882666362830957029214591130944279354853973239349359289686664315744655661984882172142635529087928537180329507987832515827088239468030321852665795375247552379206652085685406085491595573333107824246613539132575770882889466167542414210513027064673016285542897963266646431106412877646778346010365396022853756503070932141859046870714120536410916539662072865579565122588265736492168882283727784955857185200775413356197636616833870738976715748895673264382766804431913887373736944504861566097650034129816265861799520335637613354021456356982620892159958983667565751265197445798843577593070259143155060748983091145270217684413682347069968405511711090895548496792669793421819775355775232190785569249194091241976563603226185318965449018743539237679890517453800122822807514832148562629029411241288004818937359743805011835750061701863515435516819743826405781216273295964251349925131454737462068570377858917646539101785325492425458862220266770928264514346836040772039321288147543326136760919316301482686988294429619521464350997146709784461039346795574605835854576960378387732856766317805627601830274211534572008237888126257601256331877389741225356443799688609693158371524382577833366251638738893242810959690568844414281906655891802855639903163789690959129764589038392962662473369437226247003105750916244031552021078111520151827817626930248545549184249364490325529254830501594243914563094941426683536855991434915007825683789002874199712639918406785782479561260559822688573710188834070317346424903174645725582233535617261669264906110856811249798723363596426928435728240580269940083953757158205899258496167400356906256476100883016026192566562999828808084209067750254137107698569703149797415712554603269532422193442137345682555779840517264514534528401063331658677131063977771371319239703302917580119355053283411301334614284766049741544526727238547476799991289737166981539481446797748675837741570226773883125897404370972211902782869614411523652080069858320641740999148271352134614024889220545265768211661647269488201957363334337301133071328348850331658907059808655271618317724567904192106080663395060297689309943745722512120948787749058979083381191986894231343129197625610182966979534694627664565510517474437373515702929592779139247204998113348731965725175307933181515115483577097098445134942196273446084233202188039243268467014856292116089014490616737079225916518597950319768546307716313184657146794537235676889346423238952281066782693824911548019332983298893669430752626370033697012039322458161895942353013965395102567155735224833325261117425921571413882204693349526001858259225422290190238428132830654378735448312547796955505618745265343813412316981971358546514180611472580538490582897801384692380146184255884683415774011471734629384148574225073495655058638938817164219474754687762551651555300462399331823805243244390963363087096826636083506024691975599428887779733962236968975905286839891160678427367906236615048649942762469151839770723236203607554531995125952380808598074627972624470994358285348893589645341099654097393311844654705725910566748720593399906487969680759291384443066729222941586328038168186002108667330234415902665906990132145134314849280883042700029829966978605306824778429844711814358686001152390322949550475644947279881027307262929921003743950614746635518606282295447650550363556796620177675534354345885537296017010029536011072629804485718215828200391909355457506420081671224758803936592908523295430260758767441110630112506413623000589371783199749953860084719540299160679965370112068977136504090125498118533938387855707769730334349882371142796113186354764617843968563332740941241958332137027616306064214312558944514046179832148055270091057262636441269937750759674851621741714045250114369975631897629252478518547294048498929080512503401294049061913816171809580097033564300446867698244211519629188458141610339990578683899900317541735545350279851762465069189334397900859406534060250360060632256382286151544774602996512750037767965561824878476393717032340554723643174384606148615611689248091265300956546128622734616521464579536347720758452594689080974145348355106552731732235600151808620974641585400430486023322538027779102899305200930961200194208417785955361020818538833965640248156066808636170880097799967596412384168092106176112151167652713684968947909544893526269243580945011646733404915661613128431712724537390230776133536030140173135418823235102148156314372554734432987499933464049548533440597370830296833498129828656801898002443915882592447953019140695947640901840933954063503178471614882094392570681306323881307002971396553318025508201448706225566750806734584017304876700075294316000494616241444428625410078692733306798534771732165082626649997784965785616534291510448254184012630428241121231121016615008484010991698692762277326539764135801380739524566373125282179279944386581616431201345282089303214010393076133027309425368743853345766686485001978565867289986353180413769916349477593076645933958544389076827709657493775007154634633657642016784002729383245134375746281092182019092602387254376332357288179542999800625390988063147902180900012782256153689959106080689547821540527816244313530115994206101023467114308491231466828168748350116739456570612742252010863308325902498357316353896299635792278422231676727199906523239206694005672685799095292595592799846798897458319251959275054892663312188748165956021258327332204026789405493708734462448755012171289579787436025906805594384419662017749143398416474418091195848649367566458762729775170989306815075759715663413445443375797704198321051948402349018645165623289729388989416591628309153272763297338360617220646896270915560415352523544931511576209887400743732282962438315985296606092317801721765560215214735451772603586991475616496269901252348160472554838701361648659256668395934648804917773064033282803954328134187427694607923935301778366340016812876876577874741509704087781629985174026016104085801511070550652704034124199447778557726858051498711270534963108498433939413196098256409033506445562808119923950619915630891170725558039457983271224722362666422954396124250646820043345584018324721861989884005574790775875697092724532453472543519216293368540955935654404777715954954507416358077106264799935796133403402259227837827285085060124656417897020725199056571012474657278069788338356273915670174617447865438388188738557348906020714669463207740203048520573262934823760601165089225597602715551449431303827080935541977623535903453618669925190027583584083151653250759197641279167930786963299858235413473589224675852110810204353401490410107937505341994272050249800302665264023092108228850838574837704140666263193875305994692276513170135821126692630557208822691087292562859510845793500033154775012991718161297851840621478057313206902670395492643315119015453342821225578833303203678637614068364462241981922807305325025276168199564872961011981899219472614620937811172114138288278678690211424175831438776347495861009893647433014354937146336620955252605910909342653802137672129971218296615201884579713962857301832548512292588007553523452371416978922237255614001836361865049142851468669671298434472415783695648328949898167787026610834249206165446991376979532723233646282011441803173291701658548981273079259447335139199304593713741258653884250091312209747658707736929986643621738888311239165044146963789872973169115677921388825682001360956302319990822735311717162703292386018041147642359160131569728795338235134838765002075856992787496678869090430783845021084976912548579720480477176557694455823372113773732624666462982286264251679545329745993019557547506959012870830307573948743228593035122568213967885607815174251878097235874832041166087554379411191884700769394777247074187972597007240045019812400627547600842842970253040310477832016411184229278082001962393841047324505381448227476764618971702537234709614065146696019074355257436768441389385111866435683697879603145279897484614932895675254762509271288509361538761224836834833527239547339277723567068054722463927551681780160575995003647955493143293519371662595159389881251660277840259252025945691136081846996221007069623984837768365242579179993814836604663266659675054563175385509229014734047727483200936388011869365077410032934459143334283242037719874811085227259734800601058371027469473723527776609300669311303996420467674504400970192271198119247440409374439870364671244737215407968143040635252764077711491156189322231461699757088119519647877105062871559604660842387233321154112356183876018102493938262802386972106383138654181295782262139728699821924636071383463168697203499888957688467452950688805164937771544132124785748559375616205835876056814661776104212647199166792080789466183279183604401333365337334014945419503998836630395597254308154384382734554230122592137861491662445992201070220462704479144147205171903860990729641782012456257805840628032615757620979766544998131308522640132289222079520387503404677026944160371803282609722280205294097306962484140630181929007942792458731206624969139462138180438242397935918269389552664823654827527577126299483255926435595533364492396740714794836114434314185052159064174650695444525425529369734847523059689739492362811304036069720083901957541282592211410978291777256056085369742651564998005460473931718198158821117811937042486282947790118873379533492796173964348136989753104933671490923782993673790319102390859920493208795084338905574574382630479929750249969321311667758704128070066551217622621663693885027479771877011250480028075305312732591362917763959667482922032235477885080796320281902812097328430066068755698461869139170741453752100745233699994554837710806904902651970872784973249084518892327748336922819418772847385690712514508085777785996761462880135357131552964588968664504918992728924347713449396387074508289706038762331567824380729248461596381714545194454033547256965733631219257542148737684299368332277159563443905244324800839794704311338379310780081094489535005838296222623981793780875937871725004413711232344171415642780514549294492158400620018446893096540759548294714132701140808705915012730599055761158382952044849461491536543688706623484106264548019963159633070091613268872395309964200444291681106655471197718334606143904403765785946575123988379372461131598573394555697004067319208196917483017591410355644807452179944940490683901945959848036396882334991548039600209179469387001883663844690667866124360368360495740671786594275558985275435356642675549513942998160717592633137974493785605749235607063513948807013045204738585926598982729040198492377118492751820110196161774107509098447469675127650326962038386898043915488412392396930992010105195499786029885303873092482092162867370980869267346561380950020410143908714882254700061249476862175051359105441041370302421809128086444096618707146845875694931837757007206546809204349639542481421623778035986522890671782705839242322670210798496750498612751618439156722203429749465661265263693097788233256278867776191352818277683232341903716070356735331129210188319812991226136923568649859572450284354280340849664145204944145394639716180377604280040682435333716008462042602626132788624771622341793311121870293545913451569219701916877951242466539141326126797748151312306873167936132307458277937773267333428192263197786373519142986118518244846069040135809708679372002754307145344041687470966427777462978475520725417882054668352765036857088878484069546977098785633656507976472298400803046731756234549562316685683620820812142976489079757168056108243137376884992813826808595980782802153688033000464560315854569725913702495715358227125125964484932102871649345168050090913344802549194962054280522492759034456399893588026658086064173225634204702508459352422906944001040352278976047806647023207880352196858599378144906879374046662779242583753648510927531126193412935973955289630685107094061761157287983651054752787907983125099684247563516537439374789799671645141791874975960271894444556642831874860844529200471512091735759238666316676966258217213196117413503449017919287163821632733093451751864226725130793403427279491226907610751911412635073210760155405674262698102637539455546347871686947798212587007781901397794779655425380732125523710201708905258062580595144906429082758841927742465691592485331199691062941174917298180199796489046328761738916366163131565099380930000447756350409089431264049906236471211982081868042630091227617369206906554922097442741870642699538741967204241044546058161999481030236916635567137944876304622279132438708434127940393766877556851847852988703398113289531952879130912521134564858842165507262823708081356729942447510833689936914040115435047921013351388043835351141335295030550229256088843399180309828404556605722480074727414447762822607391324361496741763489892267377716990529369269657913074821867559237140316735070804852139713434172895227315612504452924238000186764130870671243572793453785890994780284192137281930925256612975651466734063035741340946827228986371507293046690464901211552617837124497914506439035147183197238129060597915073944804061630517337355043874757325657526010879286525208012801446810637398778373672406968759423215326784734589939890845463299110890903807673023480875443966751378522306211522332710170069567495566972325730020826730108682837759206946149148863581515164487629433386256424896259500304629692724590525678697475894028877074248576915551742795757031166746170794175355145201755724453511209570125747447732735217355402708081037761136819533950434912368013192223871730561823822538797152829197502910196464793962828038930509458282482837148222719609984652458868821218478455142378521575457384626750997011664481456140743922857017915021833211381200467790667731500367854751001846375336685178021190661960343239174201802222065201687039070874154159067759015803167445806140368198005178342742284755150810705673637045979357834627898419612889807421346146549748387550982707225604966300717025006096059243563328645760866267835895141380226951899876729234030898056724776895529048230632607826963340970259474874874856150753173359991116930936307413606538468129253405061932818901760383605609431482827574337338459510866421693124851051034406956540336394102521079031798839620517539935650990761720970971998625095121588911749230902104330561589040497139555060833615293210573801161482817101141840163804511582992043576342359644786156552039476865441343900844168190585689990312568995458612899964995762482963850035976650166362868910561101781333644673161541667705788628289660924438313328524018227992695591266541617105988856681251187699266527364423423626626604551620299832825585835102540883847392952005104573676573032667178953721023815153914121843191555515699729018776531480944688776304666514537463093319775155128102918167491446121094399366153354951139917732525412888008697986907647992354522439726853243832113592978966767947664995834646989641946862047858568918662249711533640005590337194683485641449155279956577130762249637626749997512723756867717269208362824372788905915366741097142278210616969399188993408210917420589512947242119048051823707375800446621321962631158350045685637799977181052683269462995869826682311541184921295488539184458870052884411172053069464479971876485042731785295065305260845621322378289689754540095585940777611249460980200964984033118187901573983578430587725492532709211046591802837575652863038845413783491712328568618842583804270343930681154082638674510650659089174533799696568303923116360284657572454634392568491304642877572541789987508299646148250937079942358483116511257886001295234349186792738999956481320059092443998835803755702458601915805508728163828114647916372763313002026211309663320367488552174569725100660946727186506818147796184767862949868338616680878908229448792206226497211949235846401295335367460990377345758445528742762271119555192489592393399750100283294272567954029556698315626972313433703793732912812681833323470858180771327884298308354025426389397143513241669096971239681685263057283733670949692854325601747818415815585508717623315115811923408575065445945605382055789926820908166803235605164530387058053059139011513372256231195514602938862530790054339743207753784661788370916354621981000851483040021528095657496829285168717769015195209569290699532868392649369653755508399129588691296997608480592844222868824196140974001438298355510535948369391794335961713516729639292426507439323795263267413161370418672114684370147562318110925717199013366340593380816629210166916117660158097108841980649188344487332679710663709647072112789853250056261429140517078776694929136592640941829134529061976558748734144456391634993603073780064556096324598434343351239030260094180427884525873343935272204824100228766522071921349512919871471119758416417308767364480096227954581474650534579666476672962747434075938225914975814909675362104395724721793596813654141389187473592905863461570670067483227059298826571101354612563086953234299986847917235218350721921484598596572404523345861805494589423670233163898489266906465285219060912749427790439023772820235038175038492282790179889743479293753117672837526337652363692734271834305428929408158901772185084738910860773180750475834153566630298399137115451344170448790242605552193877136484814955890041520930725741378724206971487371367413298476839487630673848140761644558679646398443213230191572666615210233549752213331288398266284283382939372069561548579648625481286778475887369697060662639576875297026140207876915341730690225228959472915606359447074055267243699115968106898170601467457766151473183754483674701894665727179495441839916611246200665074408543388599235370769049322360142830086465198149773302713460532587858677874897706285927906410525926906267103214094846374880605447190315543124251110937540135253282169611458310129222284561956041716701635171843581422586663902448129482080758002846945719562088593701689011211568328521202466392135428018842314843765618450321918959582404270323347855432077443933241714069742699882313134556686239383704312576304521212542568019534231779080956502309005581347513915867061308671883578404237099162039091134024492353818036498948478722368179683791307911145366416111520643740756224937916654512358144154260650514203394851055706497893916597305353911604018208783480002976441330608815296732616627648289467503030347820683232014507765923691713195011033482814149395223938524628017882633445720640896253402750182742150283808726629693766384862661563527888238572842155395301652738106873256275649156538746263258500147675007499548890449345517991990126286084619382175082426738020189423225237289180471319363131268649560751782026735968492798884196191073021534882983582931470010595886495784638067809176783349727261399925037976737602880940390115040172831543945094699090825411892650789802661835628310027805569211938913343735211441915118885846556390505218956409929300966154380669615973868043749883269404780614564618266337305475828989221974168960452829762780171582969833933683193450879776574135751117029304338407204459230211793567388308446690604460265398858874521046247753266514549671009199019746102633036879551792040575325579165092863023435953400797417030287675403443387800685701773567760498162140611184013809078252963715753635393276474584872104130111960189903625148482863505962267286140425730545468040486412198200176934119982419965903352196116406234139712890023846394481526821941321766810007679485656081421094130588802562007428523314968904072459698896173150873448674290211986829083587317895422853661759944660500967834902785577909451135429815005514652944596353461545689733741288695716475063429096083811900218552487920833298322881693144936286893204399996569216915532037608950323862179903557464515588444513700485272328643068618059100132253569246194008936155032808559684561884625900149273362401660954653182356657434096447274419714965539921295442943367209140565648396135372602240818462100856349323281615578605902229395615089012945780115381025304668116165546213227626692802966403415201123961712747394563114855525954306804841388903167063983621304773125128568754674677144779066373812329433094614907150382455076275014642024899977441397268704993823029241244485415329897875093312136944845968809751161978494151765055196707497917145814065063461045013156852242804379871622477319019965329680770440036095649576030587568190274401671937291666878098688010065693059585593111417796356892119193250599200233434400977768835975503392264970106641633357993919919108734386641272767918494877160945392503786808825716517045416815149214270704809717704756006051598057205504251955481110214258023150474913998449006964553607702790474338398460059293204179732087642723726475417358966822796152446708329842128045806766259070183691656560468120345746823666111440909187324707904137654005250323277409635834669267903966229749105401852481990245097291989088133827055612240898169696248935686199460457196748387447765784280319599517334215623958049468101227883233341523089235289621980313446085117787407385677066806293881300523812460990938403159236824994166112580017883755318020018035860203380277557757380755227996838562726259762390561695308623766269514590536071618456202432952864449500574784546192294255416672572510496339838591265388060626757186136066506217877198221791979724652971377844355791548990357192900566615053234417673134013156367099634542807065870141081753432014538519423996794188450261516502614035244750939523424104231078918081159331426206016636975513872551783027837305279977115195509297767302621208476898957911925985252251522803242837329360300347946715285344646315546668959872150888457266445615355435790771982383137767117926642766677729234793244802454122107290511689472070689952691642328997518120598200931257775493830037248881607618246694314615436696359979332683500000618865054785578599162629897345155842774294527510982021552217041295144123454824723854584577264109258522465750741887404873927528966236370204411535414211686634247517601665756249520322820164324845419999681102378210139179379082151701495963813196200124266656316541053811895023429379181270286852893900967443080729497776036517934138779534279231059481642172804062921271738092934251439176171744486282934374091801544588768142212618531468724447894447180749176998328687208738824376914287621786257375701283540504966751960826485844443895844854443793967727300414886907377034036917541974730730816611400490534207672794815006578300680116090178827323511369840919824829172698504439847576822123588420369944498913777937652237770652188702531623363646902749312876405125278825889147505943773304214239669978185752256318150053210203125138257318941390577629407867524667300807542900667843919659839156431720842609416628186747421094749083074269512005416808002907819221251118083124672484489632090964769314582745713560451974085839894604213022056488849690896330629619171392578875811426913954095866642422945857945193510805265621819616424320646685798640362011199586080898503245022787697475074831614302638077865098386379268617581305019954396116999594105132731090627517350706708092118530502875789611648730463767300620410592089063483127632023889660178191180999761816101558126097619143749692329844560397266441852341632824186170444572160124063686852401821193435319196898094627982489684434176010365848779729606867097680594712184284624120665637417599770556042798906964526823439191669311398601487502212051304522680124720059008513763765624114942947333761164480529745740044164210129814076731896486377141204493216151713068674979809578023673086743183657075385242706339603475203113525501987496177027324538639712800487710761805716407804897759963100217704877229779426798859234323866719540309610785946944438919476869455153843904267913380231907715884110476695501641067906371644280059815251497916989942393536132574459870288491134245005253001335806700594506602275625179977449421924329099914591801956439675607001182804683235669775963392404100772851784881977650169457579599593922320795214845572652213825664817494515468684188872676155152109299677364565341363270883757100189214163081452732858883216228501512900078096600740676446443530352570691129751985039576198840198756736188629509947596279672745703019982402136120505259866559341243358669004685416361327488922025800039766010952700470752802557320373205599559186003743648448044946207723344568078266324336714867751681437411442703372512425656949148353232898153383677355953885100101038404922673412738575993421413246756152337186620542316617929748835109747664572156876617246292105213581115974750269198975315142194868428496779023346138630672394388265890125747655983890692319036547645001747621540055119297372509145688925517978730880657789702472742432124510782115735595708814486381881993918480689547111842530586278810296024704428660423622924466924800587028689328836432599022218849083196803560649872470925146877848361891213660361454088833864542771968125388891246239252538834616003586128157437250218053843943810712327144306205917752797968587963638996186388380822390751404411712695894184899403383111364093539584285253989659414022216401079802063053134151839022761642669105329142284663183845439647524976668365200407152388714840245063466770283545174717571517421215190336799433725528241221013602405765852782719590764980248781099393982933131051599404213364693308706663188155832970880773199406799561582023770936906824810586934222561178230088980517798025032646137403125381595133063389834526632229182150642567446042191230739332959340725892044184365776735179113673502745969007247947334074989316710065144064704898759726587726203023417322620729093305728469964521952078900623047119063961653766361074649505468836498558591948551172490129156740888780829748225584491586204873703495144806966158127532493119697056600811197113400513519421397519478335807544578884388477972454900425363666592016956548142352287450010862209989326430906111254530777150353934712549391786276268750028726149065310914813359201708684640158361824902235467065333626061209060639306723572414593451670771845667290061905139533999670144160707807899898843920445563284760538498585682231853804075418293906625976613404596215684212849791616983624588993535397307000981395663232742899509746810680288073209932473825953462184337302469220358742361274042772492365477823553500455118999637877416398569644691741493075611514863385104211645641131954646220373096919886969949584505624058669735205297322102105731484373380264446434224172963346245216723795205234314211309705144421793660858987318603203692758186574149686103844112244703153708266578888943617960613226502927711685560920759013333951119623780847005388848173062845067367505521615355750130606777214685043073266391207585153120749260800814205236456498441982152479293252575783585259996381560797760595549372012655561557068582406501107877934179300378991385122061149529215999268519610996843178696714332578870466673362929743259137125800358749477751499208797613507965528326315476269131586584101440089187661494966488244984518792801390890838735097425636969336177645448994714254049587811320934455220090416690074838750389817307116626179232906923963782037596912063944802850603950198427773219356803302476092090659311119590883419166646997748795146679193874163197489162165379209609707547345121697179793531050030360763904210025789496554374092446017692954383419535039327557884001243792637827938485672392879683131193182138890976198353203130225342400843812152092905685716104767314990537722536846433099005668465694270458600342021063760606672158356933142651100470232373526378127678793548821432675538244171767377607862632898594844359257304442190238157680222116763090488776671551094780263176934235501240222550476011963943389008897658962352406809994584417261649921793133961551989951016324849900375750565132971736207419307602874908524484598222019876451907266645341751286023475519586610910295909460691603162096200721482671119846136241633605281024396993341080285261441595853832265009473115630564022808000782716898475308276560935109012429314862573807287903012387060426380738987365708397125732552483651120486175600786135449732959016240976897201005297153723033272798126163872737075543985551208936562840430258031539151937996366745441927271384942509744463424005373987027322614024473616187495963986166341598591558862955412812869060395496511578908248287725788198034876086682517670548074097970687753833905830981966773961210016073065147364901493584548374735783567907944649131591561868727288940634592510016249881869174311095782600766296037663170862598581689857046479615375918387158682442949204972733116465840606203233759729613583071730080453606691753463034812003186451412636988170351850306016120281416066931144716998570592403867048324839617510339823492293265416105142694903783030176400368570851509312235366451630496168995784116576843169890969104885241484810472619551077770345841230715193770014509074878696352295489553494214770494909986695829470739249421802516595066237071775721695145033077583930634212771202012349686170219816807180387690239875922786258650414982592003621006818733059280835952364838901893801648952112504778734113213359670964870093757172302858711741801874916092623137124716164355594561112702877918578658672194297854782188318166091961310873197732869338767112606290072690107154134482482094713515652001573774658659414227554076530355703718404652205161031006395428055323785767279597558997272273078106225974339719224768946372314761228800715392505997317213467076148005163408388670006535637636225399999198274341383545386076696952975632193473327272914288396710743071579395790974788440542309833789410739586280915040310440391465756547925628887603490311672110662622421282054795985115280413935576089944577022975906598619943893295969207600826129263869172344855108706537624100929206881786827353279059215310678795653759609850746684823693222491589624897901317853966416427215446229676874761500963924484689144885134777653928491346980552130853358595957960971518288029462179211108128725384618199859266123428288865251179659253633964032901198373492686327946176447592504092930754829583553398382304846954978376475370419771565353542586103335081115781133298382590595178350359804889664797660263647401969487428913835614362894234926030979962150107169847189100835032448364189142736898468462777964903280405286184702459259578830731306155882726789633123863142885124698954195094032425316208235668126891443869522657824782305081253300123348661981576278242573203860213337423066940642080838100397777089363016546119521827173721446736642157774292417844400250015603131373167882761980638133135088434581891975545480363419070316743027289255847982658633644216730748287331298862368285368891004560592349537362730592774188750337399741251836109064037044562840616234859924546216557760949390393417502678528487808558313649787228888446891018606071591727082114629817327847405484713159776555054061937130945417804669865614065363520946513945930324687955033078710050767868289943931671467345651164524257121442755721305361836527556249402227508375428024086197226938645022031092343808515664119743094883347997230284461701950033849029106071524068392280326025636723982297919446150247102464894988543405970617763199361671832145672774360169625991659094896187441359253632257583063579177410514084119453211285859081545466662950206415549163547309368121501821143452649482923044420931268914071816389269674255728709898758797771541124830924584839469502189835590986149034056624934253238942507339609876412729760321263130730066498745164129224287251564930545986362401470185782935487864464969819240534533526029869726420371968131692171243085824983338016969265520425572040942502198421203116254402670558369428240178333379037711439466023232619096053020927161859414527525524471282806793767769110464316319407286236080027615819713459164468201730291759810371359606643980794876675112011827768371326674824475231474937470129928541358974706930270170636387161054510117362418179551131808501007645287373042190864565195518812065603477360055191339800626279588993669965064524668891282811025442785107618269865840807089817583324180663174502579504775212127375777204894992174377647501522792655456040698521298686892779975987634346584808287040387162956737421793612476880557766231441533428000378861752143302604118312604709922886682609280415463922937355189294385240832782445938141068086633678316013016890905433029044615744018738476892866975801225443206495631501283328705224904153458507415152822559647175025841558766492949532171499449534531614207937035744784006327660286780982181950250715705862081608025805893029160671015057691581250977184965466343949496591486869893361685028521915259411264734270963045766785838088711663235325151814267189560849232604286169148720855890593677799467758916067888732166624397902556416909135539365642515565001791173015325653324080095486518904695351028166059539302050122967985715125100625919080461073357164341014869691375294312053745038243904132437476867561314481380488324373446493300449233859011785173231572929556065622889982735664408221708761182706704125677876137466699944415742706866606834200193256821167330733147235295365286290251557149971288243358830687608861894572653163607198443714455808082830477312682075976656972211798660590569573598549811046891766799585543925029268254646071837731798175411969406414353506012090465730341556504172926768741014663509773771417348559257504622143357466343444454164611684716711193916487373112855279068162228609889303008101035483214258802096465325406142667924214398472610503542974998392455205567747341211519989959779294317208789820183977848294825023739206161125902574323224740952554407265394578349926321129875425291991541573483254195852250844416202249803983416680667365106454821429285340236194726055860389762857917642198785413288870988398193419544595140870749227019012157035170344917526782931423799036572885047576025747215848696474318565678454050160039480228326053134923229963384031168510460302533418903440229567313887868905750918389347995595997480584059088378762670082914647573722122051568893040147510501694837428920023767064934371972238864935751888134239802653735168379602779647808455019712963038942752597639045434377739056419341315000688341560996929499182818062836057136278049375937823859184693717925020516889943462221865479047259271835505216238597190446587991762124105268450520091030801077309417657135747132782977796374707031703200651566239707628246166328635613682908592403179399069041443080797343444548976072574507248919703197752550938534458290192477048499277283681298754884542485151308157255095077129562354852263080941529156991305061985928303886543184651117545048670671822102844640302828132071202432746959253233338155140871158550960279225461096930811556683627377773189879115730938574287581892805595312556746511758060478571911405318714937612635203921239476630281582024157051177988132116722500913599797878381074398823012807455429548378937470231758072873160315245248010518200250094491218209311186524224148973180934221898183013577723482522710617143432191366195415223936339037852088234128384055041468676028278431448032680860463932125361844842508325235943312674748088697970591811560853589932320638391954095072336807353540167503736521886550319995361482369156654168017944509118378318492958641581975749545700516344448410348466829410483326188539390271299526446755446601182117832448970217102626194365091762485343836052114221618364293502299684780126837424983584976059948545294548780728496442762308312055034085955680569165201575704600428806401140940144020516250418032955489675798059692436520790100728831311547184873146501440736610863862047878039777254929240584909775335270293114897780800646802197977589233775022001270461663254099903188843090450848588363128940938209878585378720374906337188263789836620563367238390741723972428618424630432491997483895904768394989360563221782529838844541181058830543376167754177828769660457666073483630560154480898406683857547481705404129153192052456464778279791474615936320683154228327002565514898799800431164514323419324764949982385320648820957317431717332341479955281535508529066691840073250207297590211357991257584484573964157022168441045354237432934403421585805379276790917087586946254436415363671905533766434811990064356523285430332521107227229224260327966382663266188006387658404044176213311026336281201631549115601578168359766765134296809976439037515483717248145544543380446400198791496738691927610501453132526569253781085214054230977476579236783450552614706457686522589152777681806283345488140735421214927366762472337846490091987431091073041747470029066985630849458914166848184208186840838933039107345214184804522942265093429319837303916180506855465472871288760503902221101449237986439735959648595057845773031433539220677181653068696492138496054705930245410417003113205432510543283767372177532113611760645798896774965979078257758620610121152413392184077285867442815807446253082721265660236259777482489237959156827793345503097977228669986991152366484148971303609633911805006331201494436785410226328918760004433377700027610296991378007979609823465232069919868966261155922748636584477050345988224997267850580597567730628201308988913508765484300237839544696334567265181608889096943426150908795380396581512540414109141888579499823988928929789296962222388325248568927295299028826238236635743002414027952754271140006744801801311839369486711197164447473594871764569588333574798663476769200645024381395802114169402330553316990693667933521432067662995145737062660787098071711396249382059631118820722643473066524859520470817548135545840406907651873875155389545984508440250447586957218287344858828341564960456255572310580491604679814321551020922129551388845592481169892717755032608123231636490521151047876490953230636145872949301668720764720758400357604137993317187191425596113698779857241428133351447919349958297826277747866225094902784122250561253524039284823832841887028942053441377117170490531690369570871585630560797199663936105703933306225824215410798263002394562346977455392374007133313581925770216740110845812730575454572676826358958948466803925187135701506196473710127541512868745499131858826999040117718425766259516360352810934497471137806994397894311554189058148192728263412014141418643139691169975778501309794470435759836887969913135536420339498145484377703004918445551536988169562190009308896261285510474883695254416295087795357597142908593073198456795769549917609750243940801192416072141464035149277692974892968629816807030034487654367436558792688917074311464071618008638320637927613681881575326815812678544408601634757491314275323011742556781918484882541712119850635082236303114719631711678915222423573111256456563123076201593850182050953058615500721381433181465484508678392670554376033432113810286495691965454441410885746208513421999419712694106841073257391046717641549256099906584405258011493219802764108068521318623462780852783311679616108764446942949425893869062976842601413417232599458018628443062489434964604599370864714300356366257542170501836806318402507899152194348895820155742071825428923759347900905692395672980792904386504182139013747430992814330738606084901856502192660253721994866891222620588950269982024935835028409730786848371492483845840571166453978237968546396943293711943987955603271611324838562484138614730985905819276085916673402158536081556769819044016238503056053620956018342431768966377972616688556208049330380542186473575197551634269033930809257552993837727375714358604927010348999546427420626919671340123916161144207167839093994054697774129824141209177539661985990826856768364938231448581220113298650257845771645503622276161486085471436712717411336908957934121579520024060738059836048355440845863002902907719826358176839291301572795214012181320595960706179512455002326360677488178100897546309555282542918417771901003630779913117302532093492870336209179269578613011546030416479157395687601103986916754030791528521319187623822624676024148275354642420776759497474314907191467089441864245733331090457772026013408530948585887210931929495477700654191769709829774814994422667968810837310352614424385863461116965600426107778480028491654942118489572719659704158154198391486767521627882917241009999455281810243528237831880580915712789465493181946741531666730291383195837850833506428839555753662631714462656780276155441652678858193997753160608022437591475036432761338403936693486789716129101859608694272360333773118906824370444592840592755738510935011648380811366496601455305799501626459957997003878817543498822922738797950963527193550883637075788495615269067037118173244488884316887702804166552187817376661586785876552628252715810020986000270729303697222899730370663021446626515580865185826832296337987758489885556916388759499962804943844664813315431411798667162273424558315728637136754321314929973205045782452949505375438880442115024989643378145175988292910657548108482227293483589847354558251565841652479411967919691077149980882183817578551023802975476666238219725016853263396482927067471570121472448396590715876618922485758083078910483573470959285632218020911682669312148226865147401242013063859576258264664639253939090353741624776866510802383914268233413282332317457553659663314130554724956798923922999539103143462518477120964199766790006000263236722917762525481441930711262956574573957046206137993903528970180728578108676126288038584932355425224712565738274385121486788601955645085795219745537158821497451514905125959085443152465281879892351027392971819819873417067476943255087931210517628796111146242540261985897918882396235245452555061227088549389755112885844987024051550790805209075016544532635821612482130572763229767616513536072772200326570479471955112596710872816882967226803203001698703164033732593146096635084406368833107800219934440381676349115655941300837657665683124534750391281875707295129487345604295359356176688128213711259330353887603696365186750208151250158848468462454806221877341764651106890783935523936419136451120024166351593104029208857876660659210964796966886462386375458632960068759726743758097832755136282973663226760154454854728827316705705470384546289252600381214962304475687441830816349905001127179618957867803978709482097987563855906263773463599794957214805619388767568300486987961529404919685824654668410446409758797667066182989223298679352223966089484332339000926994677457201175794474602108925146622444958309694855991873801371333626317547274514389718375797496207778335948036679908329335792305312295314784352495045460551358284893276305455272275478335084252462876076791871672647866272113797256079274683598001036490038548950233773489047564793331007397241040664835257065840710845828342938686322862924338466890192701548340269905073458915946118263799034870562842025329546189349905347086972461645640259320332654919979639761581969247286483413034436133583764906876472197404932191850238474756784554099944079269442365573849925760053014170466229021550140198879446505746658819964069026871158092021720181012200078001552091441338322095104248141902658872117631536729267637152412523647740012184650249901866410937585251112429910750168595137938224409711409432330928604624642154977722429906829069883207105772445136740287232795239415097983878145454566977956471105139382576095343932363797378807689098225451233984976225082530733045699033369897517470678951205692052568049906902103120056014374824338271455529712619097331195587731182134019764766976397586928064476700682206292363186305559403378284615885488286284876835410500897385188431760525697202032859563099861401277311031708771047838346398651562396385487597492361710721241587650163543003818471872634082990236692978079176611170034842208889580226434218047296501657902834630683624550860672699671650374053037008669810576725523289684184502775180918230764310977417168106156593811455336596919505072528741181469857453303843382380077951911610288767806012854232084287436623803975652036929038265284006568358631565369192727134553103024009961406808160638716853575242985018678961670923796804493033863342578429423348821876586598678900130603791940604135048112742849634463673176186704837038051138988493242699296323167568559806520381991041388741310951132654628370572217600566470222833990856372845110247121718156351999954027174610119241736805896032793427523154436065131254834570021078818219030136597461656899372950237134327320037225470473807218045395342985023154147136848118231926494034689945974160439275652045862477321670007156179460273144015920759727113415852401771347528839977249857155713809588339979342671567143261250890054187413678926872801605929645969867554267503543906465259716496892575092732724150737933222384775679987149454576379186413395901188339268718990504506233292319329533893862867649096892287112453741064376933793529519442477630573744612782389757549574495545899631540829696060405207062501253194169725591887148484294348421288582846148819110669102951214462054437308447879032191582241297074440539242453857340558057166737552003590955543721062509611805376758809054735034341212650834588456111306496863067714724437020483984491019515757482368757101380960326240141964155464642075474799246131999296183187755941200453301604927075454134082944047578678181145720781331219875099553148233014978168190270109409027125183689571668933548161192119316921290253545584772201002249992744909120779292068420788681205430700539777886826873705704469654040182989210030884716218403122166240217610556452257795267117973413691785072836339555240042663756852147696509366123981157193322972067007011157606421799049099495274452262540052810877795336412236491557731549343863991503271974995537957249324767526648944486936045228668520764917949619805124810791995248594522838658464284266117995363668014326800091367564982376195877197318163304514991960322524513114924108811591284685056831149097025231295852819012954862312400527116891132253384293261987486751190629348818293985568793861948009238499794014410067513152328210079948268240726563270708777598763716228590991686200357304078071352677504512035388007054566593929888607516170603071490240774778910081486496688339976919681567122323111930236656713349949585174575278785392752176095588671930542299528413132920489786882310761367725323637972948005755206643351508115397046401779077578963170951997616553383810690721854073414245404743410523639422326122686103554339355216542253318731178518716696776162722120144151450694582838267290588907144529941127032425833997042049029732411160436580916735393890294142038331242677203176384845347004203525256376018360482364985275474030169738423957238087312512369988567305906688815764951962721152091735836995860600905043757119214385673860994332307870055602586608329118327975276572063318098556439425264393927003141628963645148421235641484841096210744448621330119762812125000957921416853895201595611379280788860257687772798969388756672997430038657506820132309397619278408482112177098600199347173090039908427164014349691384716684690713561995435545902489210120632199608751205256903535129203599098712596984621157640598729880080108895491470540468157552932344209696454937106325363702167413660980526746341636965472282458257391857795377255977784296549521049467783168112666312374793315182173736731003769852081184812381570069748905527773995574666862350624598336011439448013790418787316312268883844001551837088214106647054113100845351079286137347531170767971857714882671536897863393203483889986593738512361231821677289645150027100623097873568194867708074338159138561514880491892321929472143244078975562774284938205845456461851233460848759074149162460913236851826155624106387477410717516148122670666056234975021695930443071734012275691595757370685673412973505909914116500210938549176324801815661289960452055008264645727295388978563227084938594374568061706961852082779247366461548770077595190181544491511145820634393188824326786311948664328167814295687971965071498661753146662077890726041852940637223476971644365932483462171762210044168906330676299979435452502760835885977309613050195362412812630300426783407147426802033717982092789792654249833146598434284171998187450004223917290229151743682204745997572334017023638750756272112180447567431551209493824802259916121447306170922827592992656656958928291850609768744169980237331116696026606308049353220487633393755378706795179706010738569583946972222823375127008676199072799089317203493601803155652011799164276812787046030254326659492261008117183954319453312161926333316193831423158400614460572656955393775102006624451421776092036140529824536070373809721280487014529215347930551645786212859371185489723432421588943729387135416576312183005236289907759793574334409154232299025086482350604827736515483033609785185494998019691037673525007549253196140598024779697625481064515747100926183516550033712213202032228247525580725201253618114970972620630800524077809463428107893246662357346981281873071419390408794822541039880348332719535373269606762807430797446816236399548124844756924885369702736106162600269355614007143912031049366932513132132223207171187084111831689897649757092335790510495707665881555641777215283841999616910627377065070954375495725781401324170293022856264152432613496335223148086107154290466814408617249732602526982483995944182738323823551931773947079106179721475689635160167743687457595913818847076157219367146968906644130401444197156580781330021150336773785919176026469385875472710167076553673461980394975249601999692777669079012614747080549769891010551205597179704271468998094199225676076015257915096208215453421776609325019439241061617005803203613961806591405919447311028572741235828313305544341005278112151977418956010485839410219038219424031621766676514669138024398567768664951402410228067508102124592908362365406935061520058852516186706059085399005979681895064339459461673539498825027852487444963237704663674852266037788514679226099110907076423237567951014882752055809844625139155825789974162273185077047387999280129350748228942678396438745896260300735335157235882899240791309479918653517245551357888537218267217896116411179240359309050460996505088917535518675454894368003781041655132256954921837587501356069286429620599976603953652968795982224512787514911504763502090072500446883058512839762856345420815594598100568498571989545719648957978044733488726185111617501656744978552679848725597180205995679348893038446926782402611624624406312623353114418929451611958462757833522346886352450873745265437821439336643064596665116386975908550911544842647945923088127251884004021948728757212012570888498773471972943465616964638942970503671295230453564780577003768466553455267406332796942739138400310921881859734193601470851554428035412544241580415090636573070404528154846289929533187661997600745041815242829934238655674611511412660991645292055035339717055762298797042861811527347153003357547419212510701688669644520594533179179296704374265180470428983507816264590187937760052298232019858341348987742379734464601052161752334922653917256852555873114158386995396483788858918867656148591588709970486287837354722840186252516350545446854067744273218800932175180991908505704302570523247994584506364414695022518140694433221054341824211493461310693583030550639524897474301006129945750433230008461026847317837728074450877769260282950360029102433023668088734188393330807953487945805927796185708826817933629323978598410243698564461027596643590528984603775322514248177310020768875326608835774175540945414797797774176214605427733812867002120349223199819743815064155361249258739845226957114498592854165253475936939809178756271117713687215148300945170849093391171748081262742393582706188155825783190356391509298786197428487137474901819986944711907387664546053903535646891986937070967800740361482530343138423519296542237759435487163511851893758636792748048324569507026362092222349416596507925443495803608953365897135374258998661939365863795187737569213518549238327214310593241245136234534257283598095108387347027687624632165621974815882195793640519920709859349364678283087919877031340591786269388355071822695856988676447851133972389287322014286333966815354818161530941556828315985077021183907817628209830767938282623989734943959334204318094521816666876748171239678306430004029504024845519843028159444806117226987752099457415522423020649306087197694995300005994713893009196299885225318040110206971807808153394129205774979945003214446696553496761566057392500145535735488409625437306543056359237173856402698809295026758605535855384484455346126171123990824901659898998298810388939339107433508215694206712360907234715497891907464248936460174043836956572387814892358931413769787112901658501631353670999955656521261044239461027285898527424083248415419852952636574486577090784383703431923442138473738643433479741123696988306859828577215406045749575231425052588136060200865389434825502827237470777060273199528439050447274620346161549094515600513327879646391934929453811356502666295023889541938040744425636698105807750589419811144706366011535539815485852940824854630055300811522521140434099596193477176415893655729675190122685598842920850724747245167676116057936258034401777437808260023904048899829701350498342098266459881322573455703050903004846059911585112155531200512212667580911081882272357421853071040903372502082899781155139869116500035290622448841515139342797971988781633669478073805432558982718606355754983127934436368008532039802783818947409438075935001086113490271313776258881567714859945784016388046280515754145534906741268038940303681892151241343797791551766239441507574477260032760067139680963758631352799905113823524891426064353212829569828621436592118984424855782692751965104476956690615968452525608495742455836320184924202900618410368089079848181876161368134926478929970503876414906836395526199769578392269497312067852246350783739723474429433450761760914399381535430138319955362399194394875048319639341300850790746360619131300458083304304228890327720214104178666914530335835786972478367240581061428439523517606813985087376620356971029275636830087671024560145827876376052040360981175673657423901329325461996166518246368720048552833777218077334792987150406952178891317143174618646492404118363033119799182733024008125056736013145843055347301378787320705945834839335442812957937384694078457127835979540810515886441897439744647288343057779298859265036201414247893734849464090546254283998943074577957235720570751896164459600981861364780520107649302058391234063612806402293743263179192610713430278009682490498304151197399596417000691052287995284021867359961925247062187875538780050486350854968431947862944861332065211099605636734007911287837167476443207806050932959025346685647681833894948712560432634538289466044197379790203658152763570698867520190056359160370088108614766672420752736623385855718704283794692998539453155962778230543505887955560132917026211769311585658555307084486883429240111389523058329579930158413855214850642799594616982541545537921195620661210361757762767167349709146043014337777808326892526782824432492617328172016697950778421862049943164169427531151979041102669065667556744303737809527423128341308032057925288251498490018884625114304423126811715532104411819450198216091099446826692784179897634870634671549895969634013430547067695043028717617947395980699456464381236333506963615085933472535504997805248725287659545035773023591149150994565976604140086329510757684964326470043967386716480087841418019299442105139619400673844022416303911139845343890152823821774277629260986724587375873372220308674388595620820104767504215369269201705386375680772012106460595717015723225161921257667752534198116524956836141235897036139267876260667500076496986814987439812230790198106241981677514734268417989851716659910508973666755931344423257651823932777684931850862100558021885621145510571548155084614397709869264310196797701524060453613246947817299712328659979573452421497287526701134657615027336929203405726496665448682032648164234304081469200766322463687056986364360055628328932996199067814452194908971248602048647817606899731388329738503806577030222899718531392071294470707796061535798011381039166014050917133496682779728211991783185252420383100082506439351441115334735687957954383832868403420071400183984598393860439984862258185355154260523314287606083595272439539822927266286718734088588609031659377383147980049959181682509918037842667660484254121819942832917708863127013797418743053915838176136286906025672968527867340858561431686958872280259386550684220331373405581143957481018459772818272167841920757332207971172429623028741529214250357688754417236710120921602080253537285250276416907478700636749987309633834166596180514428584889177095981543514300337305460808612987657823767308346964618233799270336338285103144658665538013613210684684569945016520689667288750799161097665790949599843777889288526719811044164791972330718419838539180348370299299041539405534032677249904559837055587205704846395126610820555658840047012207393257582639669496595896699578609719332672404343709861214015704464085526666440534565414688787135745809371953913836253947642225085131597568619556290729682215974648179416976439316892652740510622845450683030366951841951861940412068068236846286177367056851791216430170625602951199564062835962202042960965479241282382958150642354326020035368869889952426270677652800653603209657466915096641878856544979853149973565296325764824566898125067728541093140978322266723793611909372371283644450045559250409362229719298894208374379346271004366707484484935162904646311201416608185043449289637268115660363303959575233601483351582853313583033080149137138923139224815219134303208385353857767402677351706265304051952509042583838995125658548543938011944158382246712719814165354872642223662230651298165157285612405287685800600059551657905826373034836913667880880482108417087198278051925962138910251432419439991406783848275778444803137887776114503361879946547761292778241377065348612857761047036913535617011287025623856619091862249718526379087601740747488937345656847664981551478190148128043421281829165701028922500156165556405824972109424547796323500132692321029610705326367730571899536969350297488631129474613712290563198464319663189985894109546475930832153330292275372633005093590515282298166346078785717868907368168626367106775214969270794715549584255915479798327790832167028558050268456021547889226252038795652394160944680701464030240179206191707347498987182073560071659557954498527190258045779932316700934233151511309901389955479087585438361740375830390903084508037670632232457151829330795354536601605595943029458902381312638671046906727903586643382030711614575983652263112595103076771720234077546977578536931613725782257925695465938336476752948820554560839009270631173380540166474394514673404212631925434675836721202884709566166370029613764398471153668562983105876821452960148750720296384489766676968227704648477935027537837929211214455271255258943220837273045096596139309729330878877930672556554355244948212911368188671393325351437388059646494496522257090376205370569541301187616415647885334172105393829296359174462231638077172110201452563607209312481387277735554064018641627062522455076482763935065333380838319746307834436034858137052866469202754040258912668630892199899840834310448937286785016936184207602457099474963742173159309837683899287805065650706108263048922600258599473835007801250061956633954099157309213891243044952058299873408801825918594957146693652389800917941522914282469900122847771563919842940395078791715823398017585669011493643601124638941697903439917671841877318262577233446687638713859481080532517065549007481527253808030079958200772075265887571675444761638722368939598930862318007870322044372631646182841297312521775383121147757095780767519596231214353453625167315946971751630489425941578066335877284941503871718543722446193634901001030340667638581615809700051333714943179577824133580154097451232338328376200282150321163099065203109226773621895696042371565039826467463784246634617323651624571527768568445526511811895575410692479870431715301385591178398250534612814015594076760544922357425229316122145381304200035392916627000341545793751435556453381121715950819395671671714217729869159703889802438280351270752415854311349339592676582715685572805825047603024598135259109836237987504465951646480817950296617559459817914127222950216629389620209011046025206880750443404327326104774900209327807376841738274479391621197158604284283344455395070288486152360491556696387831184297949536650000865963749815121871984806404385997129297749577821860600062933657521489126638117022381977955631739386606858603169613266085665364186976465900829017438536846079664374961512315445728357910178891613919878680205722366343603415811082897818930146809547522743294445232642391686108084382724790993908325368718196976567951482774775132518556886377089918995195659644367984154395752327953174935889392609877969831801564129265670829352374154263167930463532511451555719986605550237399407197146167852452651435320328065166402280559018207286332793374805185848034766286364882540451650999490967447884868961670465080097252711603152724821202118774130736833443430039491410031615664299641707081702965669265254110729612215386350400686622327964886269391321016514308747311360638725916784800459025225869025851110786426885352219621091312215915479754577233472677626121011012539306515718437925430784327905082405429866107380207109732678377777879594198627857182847083216655606770139082219605287664749641523833748228334229785397059065185149094639025032092549197474946769916418203765787393641731254412641783138798565988690270577946622802047678082974805105553422073126984453371664343428307693351689609461764120301633787328100717382627214769056761695582304967224592865832644790694170631224297842620738644020336755328100424692301298973252708977136001142890293049783198725333491370964449967015851028421573570182311204224945914191486653485369047429349412472724278898780339005621855868677266104538138621492476808633697872132473062335469987832802596196662589794716098194826583943681306391917066617720374027128802978132176940236397247803828930620259815265777840645920668234771187545701522566159506196689294097407580517009600113076219187033648816857894021471162111762510656931169837041639363267454133336094255894075141455030036549576085955554165975798319094183253503786381823177813763512688123810031808476408540365960693265707605240577268770961580690267547455139099443309413761181363542722913773958618215785056070269418133809696687839212661030161311963191338891044075921109616192407678183064223192484162825099948420034807102320824835437518001727101426579466401818911286561425969122395537893771307792925131659104821574704026566760916245851802921831874819159563814514113427164732826839829198914766866741675116401579333606007995480193221433229839459124354395123823877449166588187951090963002958305701140779402383827349281546439147995230538454285950646882976849850813952286093136818761030911006346571999894018332211709631814335862029784464056733968361764164007838740944214471853915466408248007106172522134239726196189605042433891767029499743205289470297938625354541513028747743434942598063645838872121753541929829855164823172269161575587464674954652286291511058199675962149904199763015574394668062208885275688146199665360868402414375281017698076720476306635759361616378949993475152362495533697568239195604324578701056225971990865470995073172788580545607345665331865559430359945398637771220652365256831482442869549450142856057311842944884316854643549863214070035003483446539080376446371665448121521326950008410388028360107613650962356759168364874191390849310795823823700843199008965543530759787375927483492501061035193467440087586678131741153582905075788064653536391960031371356929299664503160402856286463498268051885300592932901792782708054894659722818920630205790983520974502925319159943049953997516495789973977069687668563289862418544562988518479914820604449539410103878720373865758116254495929438376531368951510800242805243052013274462700078643048273663357930167500421337200534708381073872267280876826541625995546830996487849303748919179485187991796455843338445129952105309726245258465071261711597019004123281722955631910575518644180220240445690433713181718741674200890224410446040608462818628553775017279979886551518687638912921895867429256275709074590035514140943762477363560907662666405252973801773843214563475526056003364175862767062475981499882483198483697706945322208271713130220792111471238049801286368584363322005282168973341185717733139022040388742214102270443940508201235475835375535856257020510637038555792136352106904728090430793113923971092954862660084183855315025249361443041384385653598562537871131383661383746629608952440419468007840753674171581882933599127683960189020686919568668152252571666651469824618195618669868782214132800154605740919975051645949644643822070257930798940482846446849365861518100296708433122100318722255415542259024663504860881235426757537192643577526219903617085544632736104752650434211356583080969251546429991694644231903305017104711765348554873047131077488582810110229888316803808471203017993337011397863071882709815913420257370419279622301817748919122067926773192037414675643118813525237935688428904642974425861320984122190454080269874546762177258927725678194814246976237956017657234801905685843591181271077878944162531881943044004849897325657396989473938712844948038031326040366160153477550700395044735830229809860677929527124242463297087843099191633007426417758660007449943387800885991528918125975446296502556079530345736305875392141169622396956921583198754022680988809785887508624714224160361426940577497674256383028078546912018804556990328656287784261486803341567721750504231629604061294621693842484550967287118285860080049991274540368354442616569300191334271186836132192558205021258671009833949252629004163503592584069654647438800050278118615153175768819728718750675863266568808300388857089167067554143246699749392885559942179123573057187044789706569169362376948285972806527437231425381284857792011577125640171942141764627973737290254029032932393405965103524312895103927457654879344327226234067275815427537727336800581024924546186202089629769350324939410874616195388985094940309874944608721110367949217790692221194214329611754289653475231829550193887168106484523885297102793631083935870703165258009295118402108349741526812750530525729084341477682216973658176036219202478780539408415079734699207715800342889776665980381737318772583276254167969652128839516703707945181552022016155878200968885734699741122792106168145380089996597776406752820575463525214225000327192334967073717917635430632832205637359574314399749128936471331211272766577771660817064345475350813396723259207436808903098372573623173889191132071085696314950816539786472286259625393047083000099866639010671138832203596458131074869520491443259954965721822977173818256742990348956070812289687213899124481195662317877692455159479834483095147925921188552905952615357655095921049342220223060820381286176351391008023486686194422554827674757384177132419190433471265780869356718616347479253890094919562615068153013048910664296898318940824577054765815641284634386652844283350057081578971316750658213904487614508977198753386910237546664358709371876212426862496178895341707932897138467492962358234530286155119816763833035203151640122598099991905954753104519082394520798095521680533514436016512274088534057864604153583913567216171065206517127882504499928137518562512134141834284647394846393888876445399620968108632341082351350699244308016277593743529737586322853685257595467341458922940815014777104116297333854775230493926173333405984362620086361332872289783876907079490795484068619498590156299574305741669544773238755412784763637307060759033359199702571506195006842637905399960124146655053105626463250268296830442066575567289260071376417081869166260903098764143809289363088712211098020053379175125344306285861700587142288339706700148203648022771249450380929308523361212978807830534210907537704096407661552532536236371659836923441587794951915189775791501211359808405902217072214383661737568782978044620242016647479277523347545113417084980532246326967890116796187377388091515333289700567231753423009875669717181378551420385236994506734872404209245782183090295657437958095108662885378639873707290151079928725541840795328755995225518377739265258734892128815502794430002747414195048120931620928124226518027235990317129789692177210347190579525219034311444961875486373921898283801280388502386103585838977644546985760345492495787022131046669148207982074326494288455765035849422981221795300306100638748575397493293219962176363767950132523544541601181687630067864145469231228966746821746324420110464355480346976140017803195573455474971911467321950686556149210378294650695746643035825006310032799920163056944082306779098060778901036694502911613380551923487001748601545276885123604712688383840245173403524367443561846924937563044091305030774811465400226681017165109257841420721554955747759487988577521370877139213901563389012864527393655716381187775779470701771001978127427677078559656129474829143011570142109662020941500223249882648557206016841147858249362405204137927410736238557804700200541271952802204689897880405514391810107366386373341972590818783140177106610984655969825134801627594506533033828956655394593342098821808063825466291507307776905413606773163870436664145850304383617304818167938106025128646814973900795179546153693935550405000565510521969798222684158644207378610226341438072950193523477256773101045846324463921853853340513610346874586591813034932445542552963588264250535412436360650439588772486978610885846499468906722269781421500483504300497157362337265397841817226737929563793396430747445034916419251154816604128455814297709006559676531536266304527788090989499754698799961353233892658582624971541079856352594106446527566732864120931433502708728403370740046727740828253939016380980562214432273709333390069631791771643914645482593248560437104600685035501727129854774700130841928145464789320638743550763531331579991824650618340066283477553904686896648472741594706971312364606988661301553570695577725270331054206971619254337628942148752751216502646080350920832724434686230462677213447506498935173029311706269344387439059012761779772230769913557249559113307871655679567957120647954652137399928343035248537460134908489149865245313069545511512266937500266461037748159034888551115287010236683372126965666976512139385957783601046214479739272185289496436813443300007340692103436317357138793997545096262993872837462105535729442486336213484120082286260333115936939612426654086212283926823252567368734804858859005363629948366506609866648750254882329616997378457061877102168539889353935967913717557468763454445744263763797352969700826535687584123185327128023697877168459421448486848814750184178440703646766731185907761785602659868429212570161608296713998510971600013985798067734828522454894012990415847392492302040137012895424204422833981416226768545280326337033760745247332792633163404463189386975361867541681970373398982201783198110619631914649196281778138135275328036713865337524522815529709432814267714949958856440447067747563376018573249442843260713511040053613895715400434504635317771413782043221326789764321803556092786149049589830362316984088775664898459422166368484708295042252900179678852117069530120513492606103008831722414420656106769383132686549254915365038935728200381977059534821616219485806248328870880006368887190997493234934518915184025991410711068194350451095474432779728780236779094985441932054779288871113815311142475091497953301884367027466504983695087774367519930092182233578376637261607858238471892196448322174845932402569996644516765103452503391688506511043590234736423816882478738131855009448698723086513779526015453209011727927827880566602351773699927766498262483579878208476967811636422191606514187288026773665267602854595089624239370060220419106912575562891077392418483870090715899230650529542947705857288646541287805709953515358335675990981720623630368821380808848416784953890907055265273843603956516411604933671294584802691521342844989242503220016870977553800800690332817446585559568244739426873785844501153230037102389665998501936891215257915601543431218122849985570106113526410997369787967617332573079892773074621290952824247013770448597759120435334660727430823847882361543547911249381352824213438691458163710152894079102778017551650503609678846028184922745474165158714092455434397503229504558942216489842220595103001779241617012486412109685284293715992872343615062224785537844703877574500767046490883280860007504510790641008924753390641811497646574543425232591648663604178267674136487726822614247211018223242157149827987012767878315824274703060489736265221893879721517993652690681902355123022675007359089952365203785651850388030729686003926195992399332496437003758004590763788783907597334913900603286790001365326402357003467213651966710819334884632731289272472101118261836411531784533285356366989692898027045074693698564347032649769994881908353233151157331901358882340515289289680281358434205535870409956581683591298060494636521161561158129751349580748630786468686332428811556102398455521035559537769526653797511886245466209486019309042625614120432496398376265747082909845217049024381447967162678420004542827258836871282228452321897955434725387005247584590572444438167282977693162939083530576916697156192321884453087792847049836440640395150789212893736098408288020033958575730999391793764483644876855126785881913533967413125395739426547650989802732168414119490592810834123681716811756435482292225230647812105351399203400809717072784407103189483580226979709097425785225266023744325731740959635144732016005751054510408644457628370055456454522432697233935214670561473863439732016687188468827911733674152789034320595993787849840386228639585421315867615694344781082798256860403290995568038279302731470316752071316848046741806003898415326381075470732406053670262512494046811136433600589636308927764853999005636930281316659851745983298738254510533970295435102602627875622889701555864756966765441451586342394762785442620058086331846312202714453947925176139730834983447756476718461572296133224089316846076276971186236328973282495474995969409779775105082356841495563448938828511572383731934455912178579147198636599814044902970109541055236850340535159809359013620255866233688647552616609962835771013282623375929634545918398613411530121764861739355774896131856622119120668677730812374482851821217142785741433935578857359525445233019180683487776059893816598539791544591770505423386575996972745925280963022299917856709492491603367043993396719896581315243391855066602286921363229426220011323833008434162473209688799274510985537946064417603175063658351368812816640929660326577321545345126348434629594996530675583699857091123535061975000036356932674477676371165870216305313684075902689618746147427288268536141536476964650993189178920914787628499253019753099782910880307388577787989291303619981720192626862198292124253704460613438274719903885178859807020760310008939253256160563458846724246107775477282683402989577307200542117551770475177404740983136284956629741942590155897976199871029731963809639358687794260670090375297062806532710425026346874432042035733016409449196694756888756176698838564430008171425109277700638660507307212613925195113053441156753331662977620519515207641021511376005015845362722928371152125459807650865244600329818977807111959944022887687492223965981150714814960386022323062935214132544055659544623776452931047032499670408278440317873632589790707579108073740779580662308636446551545596105667666454753262701958159111076502016509177449597426688829259234593299270059245787980818587931271790732019421689848140683607019909867220756965189795482421110330994099615721140019376809297257115189397763734684162914095833093093722268104723173717079892011760606964950458876846374843305800739555576792377513428914362155038514161224658839679893808752513990377834234785911461777251442293696263529441633666701216306102917678084748655514801061894374763272188125607017998293509172267956042534076065311002998264363504739815977799363499521327564950293438182419924849848213853675291712667930275968291450241796137749445117807334429380353498089293200311489761428310140813201334858494229777967857702075419060526615848565221870260881207162269507256837513724125820391401095552441446681586808431274896317968802334386622924983565108208348593670249702483637907674978197651206628056446081557542062069492489026644740040908894484339227634902387272730105199848691679811930859336520537811475574891268396514893202615707691374166168078853889518515678928978961197959721732720698652486634450410532990691013137910596440123079520630666842878401683174366996044042117366749280415981445756098964889758320131486959511966732759081318189030886621254067895896768531034289709214006611521563404923209060315254006768045523364400994088571647545573651468655560503894945970630639644067222290587819339547676249025209732951740864754933254250243041126511597140253864912913785001799125244044949633347149060446590294385807250363750983453189721634980924986941201465598866864252338236435890702347046727498980792318190916420518193851335255350286738571326999268590532871919062253889828630303512637436237682719016593135859839935277693897946785998848437438633151379251268572611726140737472338978160679043791777694966305528699548363612468565977948253810638846131248728353490615081551160677955285001729248749487261632025588522595075896973612124077107741411754804796904718869603771956239850131525461267007076749483163518367519480978496242034018515233345241207247837144035096532838334525459275787353847169704201582502637168218199015150153426225635343376071638034007366448399303947797366233305868559008645136488327753918488946848356277784703407042130636626059613139243232130628341963476495846069112480718955301673180156786914148400378922681458334299839547257063691602762377574202448392973687212212904725658901529845743267705715037183226096531874391368975836584906833547692424254819566618705954746846224554148121402656245821265177329877346282862635845121934995102413382821845011003776015065936986300792603828630517763340180381945850273642683024958549426580080401306376752029359326076986092003191220473451872681484465583406178304603899434983825659302628521073566421474414193165021422887660601378250221941955472336737325785689893562330375681532724728741853860046841978604219931006821084367320015464913568340728092366268061526782490578914151030814377078421242424413050814765471174652056178194755764842380199580788514169013153746079593149860296730363636720695984485249826786727250859998231058303699328752473146094684661176021465036127776064281546791006487625320037947518798794348085869975514581867926037328942720693115454526322330156317965690952092411518127492348787744442403517271505815149682154161471985866165812479817897399453676541754903152014020718420062664615121041733439763604896181926496483252767003541273450308863515810978437704980779920444264550769431030503198000221782075253590338593741941261641660510866878011091558883530742327228025797084738350501489908402520028704371261998870417587208999377113668761262458293120641830485856243284165346328488838000117832365660773464552265296022127677147009815045786221072890014509967683091848639465664415868101847662041070722928330660874919807733711741564666615009893614500171060409183508555241233034577174354676599883781851553182831699618013017159259193359323388940722969943001805072384621290652517194009420652153784271386820359563492093384826448101337324506243694010654468548197029361438656000195556499756055950245332134987966166816410865350270745016032196008428406197338743908358410886829175500915338726769069136529362995716066748873218365534992512160047865057611053451235706124273772054470046558430695464127979024576146341069686570297104368185444465088248898290473087101191133252713329738717056445163695658593674374386748904147513049779918772199337297458911258343296733121562465476222641467341760435024331261906475219857195344618497483086624402538476208486103560961333563684875310355962834251596152991439502912035500944347474554436431571667120712628076749837161447153701783355538548742476391578938541634437840454290404696545867435288986252987858124065379447007728885313264003555302830548452816561371949842992209097502990746303115932002674273685320299441155155466659813237016618677425230632794909339190231792828124283062395498419310849030156321326093394527735129314435242224040240955499664306991608757986054422294187250985839879365759239916644920838456735442777214863836614380168845278705031333751465793052745512370907337877631204968797809877436682872209224409012767743655445752997498688822154001518805090169222576315742209273114638552318427376864984429552560231401194726741634876884634548221110527502386799799323283769295924047325904088291603030812594819559338611613907800159659002167579442340157799456583581620931415978277626513384471757764389118902014050252811594980669037895512515635652974824351244367289318642007921844619657187072065530378954467070562486748961264219001752398118968315607895520755126530477074906309373627793073554645730710673921023131429251099356701351690620065648736963143429863392871943699711005435662033596327323374721974667409219509170900993029167074319379951293608384678202387541248100444315636527765281581970567281392288914103616446518149441570411257170223838147328749787922413541152887174599075674479261431875911221537396043589938468575590572633349433532388260376801790087189879757826953018019262941534793241991983460545071563633369245995381708884825914490032903555541761842419737195024461574889242419395409570270103506196618154960352012000811037784821208149059607311485309582868268601071002842276540812971451187318490703152370292009029604217457139963007977457672370855897682038675763456641773039145379204937494691484607404515536608426390244008068268293333345735199439761838914868284244968978180436255625466481643658442513833646769417661653875988071382388433063728453256741157192478287881185890337806057268843456223498000636388301236141918922796587664633836835519923843128753971391547573274348603715494759063418872205242218607855444362709277841077808927399095415277140584270686178276053881705167466217438932991855013814407347436638215467259358246772072675000074829656310872127457841731991840238005613951923969987043813395053613169258256963701396993856188745890402921516498761020397309871832861873624322022325436061282063819480114511374719902749512852077139181867700119825141441417382895305354323160912946304730659243022266187189978794565477139505195979087067160221982118587355724654531396806098990972418407878608644351503983968786166620326814143194886326133690871153560034246731686365701684217613988888855589697593149665793682546329343489553095625774614086951632821239656657018058579351532092516160470329326420048950235109268502715256081436388293878304209713858288108941058830586451535996589148181069059177773502118212827514172948107598522598852645851743025705088679441303026183720717825046354273353828309974434944893187283355377634838183098675345651421962721323186297445105322770502476228151575287530248541178293701277185887979491130601188242319021340265463116548980649672228992267544052447708223304550905644736302688339400504537741458268166504769530081875693208814183174902910515666600092544711664794983279575646394832187893213273678625369563406503642740327469763517922014716623528896050704407343601676577596186710578318595365379278679687124000442462534404131348005371940717096000300086432552981003965312009644462464261139615176636631527076259538452104293733339793505062387069012264523964338774153102730702336659752275799434843384608577652100934172694362603187873429035118085605456389908778380039924674500389565797822017458181735502846887256210659334322432986297290565482376751335057752319833764290724860591956671815545489434008897393091262462361126147349989606327055513341838093105578548202832849336451157141496715956741000774615555316940944226389457237220615859749830578252147340598430268619961554479250815235698382891378205057557901900601634561127462133057174693877395153375582430627503380442781386610865984939908247957521733235486236102971568777639365732226133296590496070458130131003311104775189169837307763269568982182888505603220175772856759361892107868135914978347885331191258471231175074997614522366344220086845166386704029829068853954576433415396899383480120890130693059986470053808943027675087197702604083034973191318944895873463706150817097077100839058257287092076954061664147462851844742442152907074242052598741058272008789400145030743663169083064785779602932335861285997053440753413579920778177647669967347283088337391762805144867691441650282959538247470345381943262815703522708330318527629507691323982134331568634168013044716637286452935407267854603240216325087686500747762926263375320404335116518910859502136403078046926585380663675699330973446417365962067532118663140823945554380583321410578424855682937062678376675482554667585289793665000063309962281383544918621831492179582931995803404674312503823951668767339249667753878588495569898966860136034963031179235548574479470797405951203344737286110942771422087057687440290837040862570556817486217102602644204946945403194558723517500749106990106010812536530443610987227826123078797991182614071603071463718587972248301512747029173286812296242896909815313072916873506843873427470346283537378495999637770722505113019672992020801800167736783500927415605131970636212658553764482628040563475156094280580433860594278936315607804770148250194915521632370486502133777277952726188305823614447857472363622430640648952343919486465540688224814163495252676380940055388183019074488307237327328937793800992017699659651544930216583845794689716714974487165483534896459096818059467742837213236149897159515847911953776716933643946282568715998894172000261089362114737455276436409835419065968033123188481654269793404821576461965129888844909553085296193953683769039054881551098578626934867296372497666010424148096524973372508550946210539026154932064048174069691072522983611761625506896964725546965066194630720358883677205590311400591682290884820987068629346974249100391361498876243635714695318720527900135587690703773314612694192215945284385422946532796207461731004649450596920586675887902956782510432179330209605776833427529935629832311921692326467842360447190013888130510455596320918605376398133582380848609990820356779762938140171044114398888841363984517806029348770286906957123868359072041191653188836465205831188802269567841214216322640647566259999562216751212595900593628395941444022393828377888567649544181211390173134047220208362321832359294814069118647403972187203159700881589476554241435185938209440304865938868330360739726817819662997347683940905962259488467969221745118059159333070071020119539693785718783991107397236549926416884979200942645998363479154994893116646208644506737719163668052015371120873656739336734911514764104841581416659277261106376030980655271521707375400929763443077987969087112441579893900243035720656146251656317214038843726945461813907289789255980309274645779404120229819145042122795391882736469461521536467395608353076200534368932948307247001641282388886822474966704973537573489209073874156120171017559426707593571687964087012732814547823117468045569477904133598910339663257013934055504078230525123650881577398159464335357010010891136770064746850023635134097042653354429195241393867734431330567653489348221189523974308108430888270115120808409517260997960584463490576327601053960663802297340334662649166506854705418035600318387872202813449907471132801130056049882461799502815553488454652894924227298188865410092553487251309698308852702815990701359248583259736828690565703895924334618540196786803510166955292672671608720925017965686541235454485053547549412353355682136821278555582941725074647759085370546694456854244935013887809526989183844515118670781161186170776067420295248466318756378308331137317092045704904045748760810574467783900870449454928403637841758062532821237667363758036455866455395068176395118381407057362559300108372501961025116102897498363058485450363707785661912552547677731883517023686406596921421242764814459412344644594475675241947649464358611855048844878824401628021574426640952461173494816796092593689927878236574459916076677984282497176744628552707866680318197781913667089916747201216230949851312229258560228196957329974498345925615408528759195168546386621566031030818182205358766441537958468019877039997709449736725548639484401769989558232477412704930864725453892678447372397921361477177347210470759500085068109363858091707563760188983070116824108105992247226212606751290306625040237282993969212252617475424243040569120128322356409955972357727235223053812654063367721983544319501969680386733256426230596176179440585842910477835827230443390962356411582608497175418788650945634224057204746583551786628041673321952581012238059215721051109827895406379209982748651634409634969521108006561521746790136591810469503025358543946860820550651245263502213823548633986030577587381277549667256354384691327818330077635779962442294989598322442138246181245149060873673264631919863419065566710147322859413202357711413113720350131403994133867584427163777000476556328384026699410408212180568590043693996700153740007486814649711669170723304222492560476511055503448741244767485901035343825559217440434438130621462909392265419259479157824842950649095729101964292466088770823212123258324888289137260831980430678577382175535184201900424603579905221588695583515498421901209398004711992634019548086145090838333749067193067335637883923300009279660313522286156212219706834384260945493575922308173757525094093205970244014930468887641594600698768127026537590171052814933999548855193915819744372221731605328623169103629515452470137273779382786404891878262452350919129128569084875104387992866892354242395435473863117744071930879214388748266002872372107443632612356845757176047415689992604213331763751154275338183272977810405381243720950927585602675888404066242152060910583361750683070506272300916476938486812555689202790827757058972349073045089905711868036677925175319218943503844930883564967546740413426981990681020596366844443730523150320008612225072021853342477408936861383726878610787201951741600464242862823770054174855313213320832101025884540202186812862051833411819745815457446436252440974426034288279352421965291149989820108163839373596717867367637272832256048649410588671727448148757927777312274624786492450616413803131765644246558411657585354058029319637940618903093844130427115688755008713832454721319682821784951642853801432383967512673736617816454829849014557702554071324404284227954839939423840863087337318481943891462866701023433487559843715760683792718192103609501009302430544057331475961168208077522850445675258786644553120797697417004990187692660172336690975733495703418001798923435291117941815520122181486997486716130787158800121075898329525250961505753755708426884863062223101616643110359251671388218628870389623226580054372261491189598162026251389653194175712376029025085301424399471171297731434449970563803297548767148225065192083933485249174566044653595409302708862457694694578070343591876377486802407616399527490103095846113092287049234497563368427070642331185454348734606575550417593277476503918497638442428950179860944614866223280816647035414359564021547812845105338411554966391384509626971519750220233242046730832545095208670034844767410718036810985983137459836231243288403153630247226510627063625031526000873955078072570487169255984647233990257010836955237859326529450222785594750222824448270218178160583580074531193071049701887261220569331735556605408319004420240100371997566555916651488160867627844651320908400938620118978944241392278181115887929650260757630360157294533588207700550019497164219454999264795673336029988047959645240849906206818502781574696395082786559015404663341162739684290422226802446613843369583804381093483969048532276428116019931390014563892728306805117755813318507142067550964148663255873304567506142296408463995126915455140673217785825035047736654233349498259220714798860280916906790489857828768296376901143052117963160260281514724053961193104709656819036875371182837479018816070301280922432719627623604315326018299123650619290930663164615554571519540836013236755006703657272068091279784423177097417652580457350129963160097524175543576861909378423521491814215318517972228680943866355631673553380225049411199146755684280705237449252133129837090133482339856941360777276730544940950918905813831055200574398347370504521343993031601928053088401399899733520108350341653974564205364973440682731159678566383068444660560947663781657029723450145673098610906587305989223316715827804164837887200292777780205918719440652117856226139253120731422835884837246574471399169556333709039745662326734777863821092160255126449674845481838735944664301316349439298890795083673890712235741208073718185043728821602637615315946167280573199407214183429213968799498585592895002177820789780911412072363494954661649601220526542493671392600984611799211697416615139933166538689587461875581421689223988077281049541233675490290406342339481705821365182295815684773338733270418023045438051131436942730860567539034942347410297110898218603260317429510012897496309604341468919869029439895567851610768977046068718860560471120668369555617516047669016159471576887811216120694447057287580997713483682615104321674681640744577828026399406256244330926411361677303270529634640061640559004475641130823512164212099628166605043105345403005385303002297660368928114879268381956413222628740450205461118968506822442917942419405845506790502371724318299604442477474413880900377289325712660539233546084028672870643308485127653190644023674631227668642706037934270829811360776912560822811402452393671416290278366596009647341441076367000363706962499451439612169322234989984388894498808327147761690937026633180771095821909455218789605154029531194605848258758964187572840154167820275043179167762386543984358375211190502541864347310651853033313468313797903687254757765783140412240967527948512725086004596651622136531218941087980385939155605945572871686730917049594963718753688228236277159694759000333231972443558247752098394119747011719902431479036162532225286913117262457989211684743774769613595732942992286703777543032319750366808705768133086764133934271002635039211353686835226375942729942282297495768516268811479064041145095669775696101442607264516077414587844775722454764358012208176604978548820296470380061373796159923098517836187955047630676449565343009039332264531421844826097319171267781645647367987202559300968824132462822515224935211593576626288743270059111855397141271726517119627566684888298290938387021237418435150998745974266086144942727781102734870683198710188541510048194663532550039742916020020308367000893159688039670082972375658120865095551345851304632597053687258066900263259124937563401332407490561686212040611076544073844610957912941669860554737315956288452722971990050771270468783426211043407692418927551352538404536038107792609744361417980856074727175272466110748319227291251148934127793276085668955834990241621721952774431252184074359848448615544554894447060692961215988074967273158522003239039585291248301985885097904958278537115247555934184209549438402383828726037460504517119175342449813677398393331097398779238519470105992598564773999774125618603795138258322207734246828775237836155465148324213424759469461681415892161452579820666348540692644368162901407016409836901956064943475685059529749628983131010471853698398852460140261766212924079837559102128759767345354729456726646005503214186093043089691382896693360792857479368337156206149161347021325199763197012966047973522178323101470246745574441422414742181157704689568879198946486362841737817351449263574469166890794898202459938930439592073215710838291539921853744906771637522743468313038822870450752751893361917827426490014765292903447143403962173490207774012677356376027918900619662319999666219849664373489080499237121052075889594700077437354126184215245528747501401367094125277927344767641637645554657775054366505384304787198518521727663608529701149363202911777285338156844341921963534661220859657140140056890155995684781403409526359502363707967750775517893711188685072121303662572970905939510038811935081880719734588034731625748311271609261983708670948276288356214835004386936444324277522966728312122568678227412707992803066491350716614239147672292714250064267221571649970589555979399213095784185555197653344613845123570296276599353778056090097032104240953570596402395061836542767734452607505141039891109816301401286746870227138199180602616412780562501231595850946992572908800288531006380942641448706442646700617578468685506381695515357308602218762188539679969041920039396881042837597898734891426041847245925841585105844693144038711060775935176648133365530069585081405079011214097274987280149064464780692111908241146416609227318377380978901336217103157384301002504619998697594371974572479543540070382129029051556322906469131134311412588000703260759471236882005854274173825299562095460928005144124235204530189689493074293895622234659605697766935553885189736804978679308646663503957621895604986573585445995781389143868703652816878858545787093328767170454148488500061425646160863121404448414414658310832729845525297963412237156038031687577217892833305886954276709041359905100623084659210357311925695507121547637435241769965370612588973213349515003762531763559789617034024309872430528214087907933660865930293742716705549830594373182214965826534632495773497962917593937776771545595221619010400707549081138866654855207254756131834441888401238125787350864335222498458410125534180018371487667513236015320386239350490906395248939132465023741265020647122135541154700229978342174982009649525323957461580035561726781360786558473027668690422748577548614784011310842452622920789542776533182288812505543026733103108821161743203093954396176017749074480501909893648016739927065438065296864636761147274192253898744233377400420378336625549596720107316662834808295414488141684980877689983465955364060434883318302151001327878396258418705127150378778511956816394254963776505029681155551901744914203126508701495593526674865320750671205135174157465947728647932140690533959294754654037152241027250434456840090612994188767753798020165144384926711402369355096658382606946768251484021356925981101352268916771297174444531386679782444211227816385722320312725335915492182781500336336038019062311321132664400449674044729184159103888740266341111554073126932648616867828076112179543457255154452303277253887048400562112523403164825651652473194405119090561733582021192104801979657515349672400538951365478039602157501143955241657483678559546962405936106962161244658504462815843462927587371208374096323789088259223452290029244762612082946372592254569884919347705464667779263062717038219122068398567016197003865422758366471614223749491964370327965503544627958195292037127591509949531927156770264573110250652787533517071509703064607493705603843738207925046010664177689980462119632096520973684766643979132502102826655818253206987551785124817256919002658920877750299543610458843973998175858199576539636305717949431232912873204076678634619698486958872984480722668954710250933455613897425644776005108882691012706538969763310735352075049240386599550990699033825048513002652970967981622259192577050595695917950577708170598243827127769060323963902021558572623698133007909463954325690974570067312444323660312855663088277788770225808345593179601677154020073489415073198260680511310366124634375987063026394158666079047283292041768553307972960754992603980730075969428579542791410646438632558856965790641613283210120005453096130504975808238251824471363821529487005604838826599996156965533547665971109861394214326320297486674024753552086402405746940835097907966812568252730776984827451454782371690120050847734726178301370035996243991605946180756487866640392025167329651094665611137111131154731649121141524973300529838304968611013240188659873651140485861738280166049935095915339875684500984335536388144555685288353362505020002884443814137652795388305912899268405809365602408009607828784699594313052793789910729301912174300818322533929524465998412266747989381718629296918992139188440860618161956865597717517541788153526690112916235698748705858232068738133601269280478347214329151637572210626889759020761663101060619296959356279048338609085613299835646121857582008206359995696517421220782979499107515233942404397439796794868774187700387204728581989560243500133794534028959305277370719334308671167233472840798008319931489260958156131730758833576025449142145479855779508363520395394452204872654687789417286432194826189983424677568207753698922578579500933808882586608121384844731551651687639091438751114207356550930957975326350844111168758288236516807981497429328579324636043947318653478706635361391901657277068565900382619869183132957857963922454845473649955522340665656215061199961857429138758229994669973876675550407423523373397837654790332272040670444957150999031300650352329291900911305193137399455418659121771086292649516916573372507873703569358512386142224104591074241880129827808117380294180493115707086456335200533695392154964068555567127818075660115779107575246326716975653112091088370187581746375682191341891249273534359853744796461325537482636853838280412233608406182623032780544051563004960990026443304884440350043139713757238076280171117261896600336389124725051958985502159811789724490598693656422175757513406776387154952403632586156576294574433466600552841629468694767856592159667431263474151981993465614934802003518499458182251131426759421571103286742785138953419125797101313606166537663028022407772011227193171797490352438248908163207069035210656662237116884825302098400381060579312884584404906225110556603931540888189662437518556784980280808097832854926656392532052816935390415635113115660841524062836273715772544401292165304585642809072200279311095210097572740447080239736298170882519615166932953716991756994594400563030713711486187389339169504193239527252609650913683122861402813516585466183906932178391127189184950788451472624918487753837363754191454742424488312223693309712219004676090097274877800602805647128700435739567347061371244213581357904850749661837881419062670081340180051827107619883914193593448544641527403864561085721373584886250966239250729190579936895775180461903823740724625888055625475127904781085972177684612424421316586844109706723617418014128487346448877202737445139011690449239447114230403396424411867615453327798123172603864330124374137216834598096603042469153738954253206455539178469840418009121440099123183379924704096070704155771217130251181122253443072629502732357275911246620885132681787059409688598876743898361526587797562392850074532575803390576108382870313633294462532964570173318388732244632463587038077110297224915178102669428359295350760283570952690986201564777826209004616607320960773201211741935605525692875184880638112735670433946844235022286214395696745217050893134096541630422868802179607016785923144951763928404925589361839092219443115802540347783028067147283421383749263625420631774166457279676804277021032204974762362582453774492455672172390367090129866591649865349993142396966725597833052040442213332652985903548599229732897351649744933418954295283474937704701258657279337605099075012112207600008398201879948564331305699346593449268315253651160374637264637438176691313077873075072048909016892185441203939618267727247789160257196739661759583538200762085119781890468649955881218795970303410082708851472658941719296700071942566548443125700600778821875885489070457927619333059165730233026658212321184812894442709365032329538502298787956512037375326818696022582709091369406575368811293936561598493347656132746744418422480517768683914270118148106378373975661524556485654334802456663058797097697279889413551298162173596861769153323672702902438751989804616626687171942927124152952429994298254343611709721794887270703492923728826332490622183558630085137930658361140201362644447736298761287419408869472494940165730311241024780286642464643922411969694266818964828232349410910358021313910728452650108525919791717583470330898138419878674636739856142646302027811395652014323050697873026442426500188223085438978011335463154951289039041738018658648226266573009304114067197946267703179098379506319784376352169225432157202880251104687739734545217146404110957269253805018352783990860926207055429507346420723865251492300469496705302319023187508419511607520918130141863993037302355897821058627001249079789860986610153967184525351080097695945940618992997988542970702181978362252303159753075087032387944400641090249161011636291051852123105600018878764901787848784323489729153177266086112982387810210577309533144750419779685624812384834935232286692249529318963522406282391194791885390292303163460497136009335136565671260146572923173840974265652357409433868382579064022889573139232701596984529805624166868146292820012875428942800760296419858245053354145564092945556158412783301722617746349350762210448781318470046176444042346060227842802306847428281995529627310730205714998830771062042988346696490405878459524245749608274169609921469049033821137439769868691696564842936157725591788127454052259228150095351368144087049466897520332739328000174107222675302135920133131350293638786899484695710350550204004274699358074116450439235695764683597657723295495122020502056114893064301049191887358854522426586310407341739605968942161294368777820643412129944202254266803511056668122562720336649486398465967699931401103649592537625873233458149062768042845476354507285068424291866042885143867936706941040104673423316412866496947366517652372982231542521223785692456818357231543134817382034642219204527986216997294215642911656065101769344146688805030721286450444653568257938827191942722919490678436778855273271339322623166805407655848169278833350850987726241750670530707201727270529759476720428691883545663750400692116290014797467062962305742302444362345855815550907396193056802495756227924416170333991990369703952794752983622463820893558351413791926986590142967101644211069278047369995107976662085131886258943626486399005984908682552803364850781925053293308177773117865305885414142973700580458681190715429448576938763864337142548001480043172859552322138828145108654220320258964746567751331563477175863494097114870460776011619590081962198814121235303490363251131693344851358449643157497076912130247913853084648368064485176332987605919382402484571972285582865526758424819692674038110055421277969440062152712096502776977034118816643586496616847183796383160580009063062380427061999350826662962749715052229642814831658041314462782638497006082276850734614752961276571740039466332465776424682327749281281679315959787749006478956684526653464161470937216139607599131805006250362081318592583403106678386548661346916781585115513435618147249192405880899000812230804181170111894749826045002097447121089695998625423780113034606378953551796374729519681393142967276219023391452269203734600539725217131676128013738071681586102243854629321513499222293423766518313486392635638652083009458090976657628419546283333538685350418765422414734136979900774147587674568840971367838774108739938678228289668976788605685427208829365205374184273268209620334322068448366926658288275385451525048050804764577497895154637929581107263382522667557372581731593479299297332828280347155513153490071798347750361949425542379148342166506425470233647243507352111246439612700567661461562925234376305748121202506936321802437094341534283073318240603871543458917621413169445044527831126707073588154141733991314794658775307793289617457940613136918284470114740343182825707469753350665801711905259361167972913371938786404943106459588179500375966009110010242001966409424124761860658236776241021365610638762067445001299266280659366670421331206031768436973173419974320163359240458345309037241531184022094580405658527701877508218360112295412015258594029793014924757377132234549598901211285372610591425393760440409889795675276441345633354595725714454681072668492917908872496402891005037360384858334792197851699449871956283256796629023348850164031153712516540545330867642416854166912331974415627620532303278572764792799569855131249896704967678795697481758220389576599464162390256464072991946803107783681408618944212630528755875517188686994414994585655121381848910598128082325278643314038160824000068509710008367419559446357910106909459001996755056275066700663473797636317306510174838866345791428129616940368906955578544385460591095666013164515015191776634125025642909427635702040176856606859290492798032480204077593010131938823955563113356141580272819649279476531579772320307555250019654925674373612603843866994187423216710741892062179978498170780233673531447749019335346907831828900651345559306308642246955206340097436148409915239868898608031568460419978284318085275733374453728312718972310117310097894171529679753804202327070402371484154072588269284360797328420237822012560126029916694152590237825722927926511087555529172938130897676529930755207973405710405633887051448938592759954481085528842914318030232814214259596099970463560441601166248505245628835761085448896198831537193436933933296274193826146552751130015880781632977054390441159805345697176355995538793329190126313951805451380206875863281470644449492914724352102667164798554939723095931866885463246189150739882498734226589637200059176441257539850037961588386632352814005801280633734447623232335206936796319500026112883346426690723571362987831078188136177592146010115997692758428239014380483578140557297760865418191029328265052616209708951652880988283382426818193324161269732241284322999538362611817334966420375761959247726354373105709571940077280951731092616113279015112672817270313111221132581236522286317096416007516580522296488477175541001536369607845562073599359381116113389879697378856383571620865040532403520699660317878585651669114880194346785419754101597025430489670807929210052051983638749086817832852550835229067175520677361490519111026196464216581363487146587691612453793471348237968404420594314616059963623266581178077682077211182845043512184620435671719587285621008077524270550430569289200295419771963828306517210064674616655239954963427617141070524231496912861161173038105446823645077657080643941577542893289105204507997242283728855928076813012139254210323873850222268171559332568644099112313409847947580503240637578839472182190609281530539973353769186508940067667887141815015295748092347731050043750991525413560789382071866769971009389101135074043625301085826013080985149731674258510618981100480392196124221748038801039910332404622578989112989435948878627137259392903326913854030278870438343684096711320917658895108544174262096713232796670985640130952893243359869404342596069333010168024033339151884732104660145878534480869014582147725237819886076794008916851600664608583815243834387819681845443737254347491874900546087816188342028933303221876834749039664123618559131184972619398604569382189993030855498779814204661955700064273225904963761752001955681074666351808368769688673813002898409441254736100594461716740659772071609679214050947366820135332185110632176342103519772505815754770320496574362913233955529985601381288024292805980714141464616920272070641985572317328057124005845914815407418130556444983905322354740909909058740359889416854954299686408339301891797045721056252292777922241187278783156168853690814790080722714209458051371331218577004514595502290443044301256203824396019480133187025179792373644248389914935041173984401670247378854868019974637520382408848589668779753014213303390290886256485174586329927540327573211852671975225606371192027642578424978051799420538429427095345807282158720606786681710717106942186466897859579804562395704390058702553774553777735212229948399648183128854342927440933967289009157961833086373662020590322567723587073165223499422281068208131120716563595727348799787741031651890938714507444388343662984077222492016625676790007532151298049892223448657173971514749518802709293034798605237503735969156263278625713300531272684453437510498278182947693854929112830705620518546299928780792534017404464439556756078691208693032179474592709799773134593447880295089048537491943586570869943364094158128086374698699589190993591588200293418697944850047928556397504589987317309032454734101389869209238433817143336649827968945475578711316137421570853845170745277925590720967921490501476864660451754541566558403238820863093715577315051020969734883014240565718653931955811841403180003521203666546724926170578602692702032777208225425283612242338243561380933918510378995633370442634507269680981564743408560039705302965737366970518023953123600887664957091649703503737862241183209539541302029030724138940194488271424017520989359146753895683566513929882453731406154251673462432977249159638775815738383768113726328333394714030342030096483298969106879435346753605977252195410138936369383319378854484416706881740217081917244252628951824584759447256867743940780888129060671353533087307885685238005371952621430405714600819906917378052521590098056524770654768536896439036875176509815372931888151694157293157323819492481996645210572353976159674555928777130086497125488706177776826739145798763772175263698513651008882112051280716927953129321234958714795275975387266740674713567679330078407037516301679735886145215908516474310550704612799699650798310608561275287269628146230190699452966833051487099086557322389366404797201940082733930070552169814509898799173435557963987038354303759270173827499349489075553204857253910087189068650954668312484043876058294051130041855327680138719897681928106465869420599977507285801612032190737995902715911355319859883740113104712624931944709371687021779158294028883958367219388655909373367680731768408726372344826376345501316380232482332931107729815923909022996484185985078503120054747058780490234180465929726418552668642442710207954336274836973120361833661001179348349718820626780916507102858904892108997668498016551521564888313576128076361413344324171565383892206012811799779661991172654881974816857710676339044947175952152915828257762650546892518382065863548920925493690987035671590676227514843758380486537453866707695658806279909668929972786739648775871810191702209096848565549810560662456359738855030286317141996477849315645526919407192703710571216519927714060386863244696154349805367412473971340816257860317263032860880309967226189964105944797211448443598812992676383586190917886738679395386615993674587898984099440138641064850468759531701204740356939553229847727397787389751213605211689766750049403201263041318802462524636488522168086865397287460201698132154761288136442459872504888740010485182429395418009761315176311704076534393964022967521245539459781082788962805108642937412100301186550883831398339022027178640769293555240472396026849743396699396599252435420345109000062433816401789859505673015610845044541954171963720368672065926909365981196722481092129474898857235971119731869723523029013034271793446976773997052535823155304178026113527244990076991628362271926603132022903375795772453281243939485888159362627309791938615140812067261949361969888111802444178628708976078648127006297400267297655378267208510416265895370447692874812701504845720315519146414675158714817055284414249879062981951993651316382050623433399145744915146037340786623300494472278417315427516122049286023353241072182399462319812166503189593829897721509050790266336272776993798089092211078347512087220888533410285758165088828393100552627710124777774048760532441266012503067032424070174417495504704055501667423539703576019358840974369174624341777176067386286714347371973798395305035937712158807737087590556640128268626790310705537041310864390028972083513724061959428536581148912523991994822696425115908431970751912253300171036990613675411732949053517690765320549113272291914175767061253857182237671887814477585564716479664506891579694292797899886416596510429618008916760909492367486673003279265137774871487945744922458189541053651303701319363954238430491931922618160682102684326902752437649387318071964527962443199747177682772662876225062295804635020176054101336998151516799279404139502784864088033696828630097835568557785392378525239893004306667109813634570471879503488296241910185437282375944433014375652217981235775496568527274136473668954285191466021334595003172680790754100280797993896295690821765628156939863425165963752186002660603174727032261075024832634598156537669905753167886522748674994235965650755415940124776377890526912773967691581589440457264447747025884229976575405572845782431884310006648796804889356896466543496750545697537516366970386899569373307960623170907544844264842945916318738792493225530997526549366324596012605080222393928755042059781238987730707826979321950169704561835731128951824431930158896466236526140301708197150275096210310075842047908019960462713463228520368146249756013483378095926768929284443629454343926565673958703863719891612253530192915355940754087019373911956044004283966562129456931148641881183477355875860924283147434140526104035000435174245974773272588772862622687608952021222009788915840265722830610270068243452221471419146951649498951175127271259467190478862639635182036925120604938390784806840375049714009022092526216460173855374178173784431090638125548181220016735536179530714482479079375014863780146526216083497466296429790461115540644422012245818365468625925310741557513041360444771883939205444413358069665990899061191207846151109895765080575663814974524082178149473737714191090186499467223772314035123891928982151898719095767286155324327786348460656735153609375702720871343550045258682854201576446397781097723398004346794954254024583304045279581115913974925544601295946426675230121191126365378128205841958373313912901022152131879914010231243734918651824348688215051376666180275408951884861899622672293251324491053440557843528684787463044918217841257582372415195694972776778379110045813868799189788718273765107397073594858006731851547908299810672523971123391444440904123395617481509847805838045445601152769632945231839448528969801160132429521576543062285290990182433413805600941853308542644494158310442756056128588326978065429357288321275187602221331860459645984824129865824843594483764190386707559685966076900287105997573060891807043507335170158487466563211198388456192355445066590939924897244283156733680233635508189117424188487818231464260818160485555893641241009681958976924167260071134650119042320930054675928171509978945701832959874870886013117800787131444633051039300871561766400739795757920206841131473909141370787547847622252464217039539760115940262636419767392397552891641468635313365602392309035748913156402343479375713521795289013755870704768912229063033099862162404941895708093198108669818765897407898956001602356983606170005042650254516157686149385512578434165241081070925394520373638699392545063889926932831851175469678120396705674994797344249905784574576757994783884184186286075464611122424743321286612180048556344880903354608966614213135334231193265218165989727876905841793225593665457556824492728790262769312026700499600889610546290971237912015116062160529969862682071994444206108696263242976715993180782592017014590462550819494885229320883218930594460088491790384855737493641952281407596082090423009893171753269237607242819036834461673371613997966447726125555730776298980500776670322399322151994674329758502452761377596667308489133212951166486448256201364643419935074757277692426912758740001228431802670259033037131198941948990966153740180206279703363101323545338369222696393348638602563234736874200003818507196377952814153257617529405055584895229279548964112538867059791431707467382099257682376750656759217220403564217494587541228816835531647564156583281109901174941128718278499551861058089954432066601686097019821363737437602455194988020369015800166444596862103647390200618657084093703060134635018713442796132787035645749774593513698962752167250382833098277858297936281974131363366969104839882800575080264188034962839359264774553303002589431887730182359304810179266034196194417577519122611153323410130490054630474363241228257594003237061307319596461638975403879928075889876828708390665349125960242836922318559842341096831308216919580427312959574722336235717200408951531570853081436548008060821646174693983411514954803469363856259749220551958429787681067996942760507985511972362635697350160269981994018196719110965761668592238594644362646641958215805755329371503982492842860216844937343534965416257737494390617050530692591062046727274257360434285761020486194125935977020059209166082671211113537082528198033214318211118726675107395315965471376450714501979520446333994240689292354092692121899326511137625795423792519801982927167667982933573074768770162562316752626714230860612858384108577734029852275229977504744242573844414657050348133979793144578856378215725450385292407830090704139688835091073156108595208324964653321577265605671461680886066973128949489607852849852403746236244604247992024201306594805604063360021126384479082072239709287026539328178788174873815528471364347078643020201253850394899939983262239950955735390833602918193292844051523951219668136037891275803574593636868857328273009643691991835912559206496850975535789805920388529912686738830749717699865428489718847576979651872542778045237149793226961702682279107570216334991416716045468393019920137478073312142982074395751011125607408936183430498748828132877283665924883085429784006884770477353353159633504702101356423808222214034981380914564810079521525917686520247638985988170906442294835013111778266590425380474388110408897359924974207869361193747331191343806975461948598779260823358251397612039139961938926136671254413198012037446351923495420783941420682120837555077831927732391327605097121126298117444628572100220254242147075860698405344536157140174695166850437440128931147932370505032512805019662894078516624793494083940263906803792218099975777705560814836913959152739302187953468884275710095495246763955074370302834430095642323286459347194581821689972230491485468034561454029704383180992058819708112053416025949205855847032035252014006840372554496979990371515824928199890000874761787084990551778157932756967028209272467810075321813235722026364814008358136339357761152765076312687467578335468827596248539435284713950035311473897439651067078454871561483279826900249202951295361200480971525947429553671068987321355607682425073298300372917489287693871695967696850424222985153144357611314851982073565054909312038902017484255551634585041035058436795796722698294222990805447915270005865823361415314012591164959537803608262928833565562678821614820370603493562461288865923314847868774366481432126591471973014677324618713243431200552669127145421916378602963297248052777871120782400178124174544530506462782425113193774611788144043751132724378163337742912746625320675355897522347683193748716024808928001221677719025617958096482706915860094699179440904635965545647145086675608819038980921576004564253411337581380152967439590573817162214505231254796460513872466788640787401528100587386480397259172796082177708443273255715550661431055613957889620299653512149329300740173463462877825708785826659822339009706434724654583087000293590678937491366224802043117254230252077665367048892136657530520555154876818730999461016710132404127747327214569634396349776876417008484267577104347250761043870916455456250714157726637682190050478035841371622634698251864940697676243918588709135479165525723408490965186157680322467194040547419459895091900082671176623570357197429183042437108216652286156068066980372624781699615331771920992911257589755127006858122790182052504093117286718926291507723917818507622510412667899423251754154222033108174677340018877600296633159494686824660624171725665609383635413148430736943036287694413585868573304821546073177769403735445656720354928947527737250645026594010425144903562859119992138749068633735009569130973816078874860648671262070892221887890007195725373781521818043975364632083306560683159813760649844319546412236455388977784840163243737214603682070178885880711556865290585649138396368225106245560670705380357805943547088180246161983289315802726526148722861089844315400495410593682732125460903985758515179917641265321509434339855866744246958988504068868002540881985157149503678187249182040381022807440677122248544853748054064751791221833351257694344324801815111673000555106864495380041050575475072555903347612283620343053092827664110405697659015072960336535762273675689008624323429389052607356357133843972223130890957643621829283550720730655088828898352969159714357399551502608160257758701401927578421086416645497171264726989674185460766602727338947424349873333480867668695297554945998387630857540511143703150113875317320638075939691953004559670927985012036540511487973893946252405838391467018595972346619978434498704174642524735209717885136271014086453474728618593911987813680391832585498783061699335831368582257933732917962200261732783472126366885356932596959977921660274996511154843885408113082570087078030255219571574862927707303477649896004404208781642894848293362373956244191462194090340375166211385071165003071335280665605588422062245576945501811454728851050959723483238100042203158782354508251081152986413663365878256375982992578662031318096750529309439302418032821805525429750236176779324270048796224134277348738980457028100726117811700885001826767187770719809868920670437830598848235637221748980434988372986249542955009592820275348783316859898502447737416740638392413138920449161025118657648050501932305267876088289279597738466637378053037446469483625500290563653512391553595822772470530134268510773173502222408794790279023003856924377019682383978188361792546364253641129898330374152127781343924206285655036758670268303547234639396318209079361379646513732009153407888895207943328721397228637030860450838588343107626584588689179392610941706014588771932324612510866372514540024306918919940167714452693678780722521845216820119464281240070153332530221344106728438775600326438485183864206279891491584806504281734174148349028205544441345672598109418200474398500792833350223126329322596046176439945937117739964819683740407344196281442288476703505116667437737042251201028815250454234592100984561039717508918416229643560182573315827064207520903012888137188600097471132309068078449670970847430243637619966832110930913460127725493686706563601112714328939988537973664171520755868560738386160105855031164422055113332266002057319152289747877985342704163537177186442452782469186712800647735149829139773962874576970300227693676790792641941145580653493050413341812098157587553518497367813208507106266467346452851264474771919870759907416809059363170687554523208943885036187791988191188604473271727546999503033090878590220030657252940823035865159342753847113179077442102181986830023813055956388291420231152144020790715753370245228723221776237157987194772443438697510672781704156474579188531889147792537907369291528183464712896946220013888385252620001872757168317079561418038116731663973922142053676691259086044825615216889318119037419594014634864530242497843075319984285194208502444898058446733360879609891750382079630892079426315493932648332485655116872327964513773856732080440511091422388687244353468050508585086506321206835025688906719788263742580396354617621680468656564229048722174672348342163885092072143403009677663215839381234683925429850069037951520792784320914849495255045484452335792406880641921313118769581616574968669483035434403814432923787528429101134919085430566844817969332329698630047236660819271579496426991019811659132249296174276990625706331070136936633193359074827204191338902738440897834344261807835985393340350524793298119173650461850054229048095737581055763137558230162035036943757085794129638613679866593090412658785363112389689394193139797874674407707616732887518696151509355555904327837732797151647784711144820895981414917920499707503317902937968616389091949377150757348045462231923367798533216423061549427438945384254760815958384545295170979446114155354699684967296156632829122842454799425791183776355268507860499486250007465234621609922671868886323192071770959444282957641178500973198736719911070510952647985443597277679568745123269407582808133040039730023086172944659401049491291439179995980297725467332627527700018478070071175375209687457829352733647694765029363424916154956433980028255985951540002097409839113801276163842811917102964707382039772632772186068266776553171972103587268597490991320793607725787959063170083144052389527869395734967506473029389929341190507804908633387658870157469730728811926158204021248955639617051711967047134958280691374889031380716855558601164470555831358739293956253376663169503799962673425531823613703513793338047350134967565988977401831029943158809562279853109057977621073664033989510662687046572559486131833563475602270824777186054914411214883108470659334925070119958927675435832059477302386095856886683099000663563530344517076953774075822322124129930685657377558250196066756785139246981718719434613478840782079041048890899333698849124367867874720411389938969724730808013064586691511680718014709545263065000301119018837330453594110780147634323303884435253573708751295208334615426749069158870100717353032515439209868737375087104419299567302009272377770990807563827800206645108614418143390096140389377307559663147019034231134701939727285525558569857227165324257383788522180386549255454930466413349152141612041241961638791517276390806435160121203721041397700224460116950650451377175211902764639202501529512941015868865385874277609340569804036445448307414036175702983598180184823893682568458285622514894473071695291830573977543648792811169098223177791986093721243905864649657796384071224581455109918293558000037305472758458919066842603633388630642658778082843347945956770230396943761548394731018656065109251312859412726801662513829430978838792529955032207963976704527216288978778292318418959353202323399080948216273960987147089105206325643324449980957436539816805919744990235608394148840360864020979208836525131189269857875613575353126051609464344220570946291438383834321954895274019471355695395361457997742300979111115093999219578019980600229504297278293003466849023071546851239938141426740087076298175733240220238879854663019370410445364513477789787576746133159985141724827893793473819043369170951594568866079918842919553471183986271537580540512554512922727784996537965659800885400670056954206630647462611201026181119677000876529049894263204280620918587676972687372369652890777231474268621515973304232382783756125779326964032264006070820899580191616017727392444570538666533629973299649668542950662476082531265527570337819671764560877940851735196817829962417244968788323106416573614785735107906271489320391006933728974381254437194467107335754419008961283255708603254459514389969938550980625917487044910080354143197374933679984813760222346272709367586909151022990553383048470352771546453912826285983208127204905645220729708649437022153610891166680970181790119730653323851558955563644674337270591579850479564191328047479233797179732591677686407122640617245395623975791202316517814161514647100802918787087098382581928699613510816340872558413918257996271119780839445354278215873082857380766471543953139606659152680046375968512171427813952835765282112174514597160950596359420232104778799075132864435671901896812704190296330128374487057933803838600832721456725140540246229679870735656761849933097651513063768631033917492070107871162994430476686919001545051376731940560576988409868860404074118243655750847134439042509126497892424767418975389883529901898931920614581710965674340831683633969182320294797031253124475751935278677323360472514459814661539769512340542832215708116788244690285453631089839874830806051059123535812936680334192076376243801008511284571174818275439087917319383107073000556943512029424763134925049124110926508125287988039249784107985205309268300875572181707109781718803851915004085145502653827086805186906558427157565748738723343809470384346496690010434082415434041416541513135647127010121814412522800424248989468213727423554069394399456453677956305014701625021098111650656833163080768978412261471993231333371446756780978264639105780854700068908545245286156770276861984901990484779330736806190923145837712868109128830532632208608761687784506542064109498860176587911067889902489849517156411436447919388462283968336197824251714717560193146215578783484810832076204965503503449243617147608618857166544659548956742138907660314130823677434049534851339545272777293726717884242663492565949646037120840531851510606056595062899205719845567838196701312645564180395231373904730102938285891678223378146863948663552344339357120785621596728458801576843519942119192458264301199693470938053059634495851090507305259417183541914044884307013207934479769046594988933946357570699879919458458947420257374255946105176465941277648360575535069384381450247969038075552185780872402870225141760311069097955246511249302117858074524977808789306148021617105028372200179244707868219909351021559463473661041154447015243746733801912894221663197454864678441728689264797128010543737378224634646762742932644983632643966463637116837030504154982456953860995778085416782664341795287871987772203767628396949589573899014605176154396581988745076432181804487153186861542217393014291107598750666891379479523192450475941273888015190629910789080720880312583377775030667690607339562919745377339336831630344307563556310447978265770035847217501306199703699105858696767232405141455274306430643984907325467143479646427929804695113883703624704376063848512610417493108562943210339297574835907559596119774720880249032090230861761759497947250649483399869507811219912681613698400475489965645687876505199592263522770629647053292370924370231525290455189281390194817260471882247804914317978844999253368658463786697329132717624481327875382014091598065275595527244304334070995034311436011895663778915437912821841132264756297692358464520587146469789205205828704021386945006034223672941835961364844496245010693959138947196888542471202110545683770006936698180386348048113312736437606923566722917792269228701898863734528889656449115086598427318748170712726116073391385636758235332922154091627556279460179653088857104271813163989586421487710376383023632016993797237103238932373063863759179243475145947812259295988042041808593241847285603491396702188969662760463753225765232836437816561065143494523000456366800370226298938301167519660176053222889645047796451329138494596586371812311929421116061506811687242268481086448134211951817540716654189937061861930358959725569766421474329060648543179162569188204704550964513106760033382285226072810387524031046242136085787166302601728687415865882746774998978979709244359483415973028197194680654174965226592585946140266026539577901077924704176736889547581608005238438757383819839295101666133284320640027623553021114780707236640153842663676087072781520690248111766662024047099080245870620776123570330855002185613851233929692329597397585028033641446431157548812164228941151870135399965151586101695888257488803476186383991283584557631870852230350110408579566735968197940882669352309602865709217139135602953964395996387251706462579395446264473635458097001185439543802218545733885061598820610447644893059531409829720028994913095268624843185827014991641562065193221265681309366790172436831191973038066460265594234572866887580074752390344441317869439298671171755465146235529387483249458013422547561422438368429058497979178005424621811562553762683130712144048345535357835738513099129918962082293369866665631712633005029003253896404693448857631419382313580702215815849884255969538956236944666231419606593368181494543866921432548972308715815954066318597882247318445455964439465688421919102369875776611597641842781731801393969331109869291475279121097418948140376072076054151401068073670984648305680058782885183201299126736481604229978937116237482029327836797596379162306679365596679561736981004299068188054159603187278563676931401958410485519741717988790404741265165337196880345084015853248639135993247882419785162208148272762699615097882695962547915909083207929241921618466692409899891874477271564788711722179265079441246252516027012342333319495956863701809558154306846302530458688421091056328731529065769619355304970040018501397710480787900883371520066984297883465259002222831581377314150553042180556600687428779756819231802978140388477292598294823496493192368991343722094815371011724279920128343998979575165743430054511106637387869802531148925112744749854362975362247021021532192903068019713669216208273964867590621904615648479885687451296627729812646817385328408111177751532766330795949119916813880462871883511860214946271998309151949262575242200956338475829739690841702750428685707364466599130732055344302599676292891722573895595079668908412122378944624833717971494212414012502354183537867350395877095631586836081527974777844162721543682380255523154650033391047906828662073178500574353480572386525144484115441513933943827915084425476028103572082044367061608813554967573700074259664942958472196724612241272099338072853535315603121245059279486133945307255325461533771037446551268312706371371529873087781770125792313750956957988073953312117141286588569696464529743858669885520372151425058696760626886351950749902845951164244287070654194613001019806723562648150796705668452459213599461796126759242624643845945116543397798363275157294746927685706526722439357422482553767499085489043332574119793458255488584796731399294244814135997203858631522720423638513578346542142639472844364074142503087855317629194351663877726881632544819954677150889215296262201085392128341524460914768135933664448867520410898086637048656393519935919562962717143300825716198945694498301442669222883476306295597312713924664890168193769096464929929953645827478079207399288451828627300211811907724592514817139386299813371460658654288617876094568140971339718410329928759518555219710328096414297379938370958729872678276013247613523381223660735894410307969348433553316810633988838907281307699552230614749979560459391500210262344760256021170040273151950432142200254523793065197925928834090016791549787515661322892218905705881967355130046546190704850936443935827964319124225769887757949322169697276740901139134752751150340366588374765523375352658504843613324342267157588766016907197320065914632463366071814123783235985651156373787747818459768489239545401376767830126915983465178997211360085769662498373720065119868542419074893166126837459779043789805845607657114104536039079466444609102603155374677319410144663213428164940102173211199852386553419457791977986778143332376926458905499262018945911941516740323390825108723146023500208081125005137792384649423585010035399736279542591354246512499201998195918305215623691217679036657009736228800128382740205688899747964303287785755589302489895759212500138956564888520244374755575512062889528102338136108447116574964697796446426194035344167433350738456664732506946664887079208762714537160780558705004522255813062693954407956915756708159713656378967374140351190962330433349024652173146496836155786224684328229731268081338829331833275306957050570216009805154191338924845110847071163389160680534169396854401207911441682680644010590269583044632494928321979374830344878992719964343234418879287047405918718474068722662654469631996481521481881639803654524695406489968235292058506145942484940876557551125224762671807776797008874402917820295448161509011097119653464624016671483336395710496786352783448915309525533567100505638655309296809474720020184474361353673914198313526854194927282767239010517309160804088969401537965676079092199457100175160936737011717300426183949715860752536530447767894310289814122194243368310275183628248313539459258107044136089001344316580656011883571556374865067634751426408293379756468658172891739891450280630347932106045393001333774110163756843725530571144324414859606525184344015014901134887724100402294490935998025817417636464185725196314788049642427166578376834377509120572138876900826313892798990097556276522246525817489806975583435668684180480087202419267946817851812608439626904094503923558327295436702193656577649675690129733970497598991132489824566631489550482117586391456422316596573181528435716133078422789184381199725709809085017005462745417099838514467963154290993752981316604584607834586097927725101425293108737512294185844444617268684066601695293794796626247441809368959172201934139916815878546193407682207005290531222212862022683273069351654058603630728114942760645867117083666281582978767180133947984305044833257370825649882503803582809900469136656915703222606942290713825850948739669725272313348234081671160066070273470935377776160687667042337178287493081718957244984493941126055141204840924020232739298169869876113473434783481280366035349894022583846081958997549846106067409634447550773774518247828392600428930946996692465524916587102918190702599130538389362262221852346070649152726144254473673453198922561827291892185953307040551315202192662891661140699250257163366255545588414754996993307099393798970131146891755996271558784458428815322914447055206520555209648155864327717562499945640880729001979465275656900949296045927587322441757236797319412594018621938658514865231283286641523660054074791178991089772516288787303487254801296723134229943911484982057271020608889068355723608085502276073108116649337562279200959498188168480772523728582099905890908442546841340514921804082835963703419550692330483872670859461109380112075492732545369821749316267653675349108471192056988200711420975537184962298845388167957914267586211677464705623611420273997889133004975221742614277311947095092247348518461184281068679062202138407892596964574880317355378989276855428835725048799155132289550062450998314874563513619739422852725247976540336234203235483845496308777067115448905268235385546759442854731754303736448979784789696083466373308782220666850092119333573612348501243012041411965790352010370088853165486701186668427852104977247760507336519410895402646380598003134309578704951463432292526976432460019433814097186431886743350418182954029117294023385036324332270459387154225185967005216947370679206900832451134016004987832616785711549633383587026962630536099573243149709228661374051283677945657646300210983049088773228211755131768074065931889005310052705799012324078453810509262926595170789903680286587972543687163048791401933247974205263592132993612388951093121301596287906439456836544997232346434838113532717048269975995927379828844106146368193500112869744045174391427062798496299833983593449685076754132275503602247026809376976592698037242550110852879449746342223529965076220885424945163612908564779318692149651679856821188455724785149576192145933008691530896948365044207756564143510768945180116287120089371412562347775394185124320095890981986587021450460381424284724998492315650533052130039338722873702982847512869843744833243040986337426591822418914299518838468806622559890049053244688911055382664442398250609535351716954986490857843033331176686840806523395559549879447221907233850675210117792227186353306778351966265800936777964890189912860541292112629116388660835603252745928659957751748523991688764039819643727407148337101496346737708310933357835038812183862642047865709189192175963086684346979932959946268851518152387194641928392837871661769769476394102230497255461838751824605111575672780959845358189285935186067936869660775013736969818410673325583785842091666120646241779125449021724306730436676695961897574896676378361252712055332199548463305323421266600907355117998768820254823118860364155240803218687415624453294637639269402380228125576114541799184593851077924009549818720643509067228841304866975086193484857158165817742579728363487360785206906529605286149835439973070978642608417596774390967389360393484319828078667534340107568813874129891599388476754421825581161848270116719884405052004352137772134295835097716047454733024340086683477748386495123945764825958388763284098558111523442384266867001209834181679945677372859653749486560775675973527730951335635460480320865462227565966455376748344041223725241876949053833494900546617619447028176639742552041309382540295719704834654772253488213818013114485409589996418944318015856416046420459696165427726959113031676985203017598781562923138797148341773006578467952674633399970435199190549331899925505101906289686109689206683519365510601758970431737677933371477402149973032936781101472942797767597909460727892292770713560309124607038225531502696033742072362197690480872544946724669249982779065449398859302701338705920815524430954628343757461574758905271323679405248406582443181021346075744567826783478278586093035005310827628306399262496247002936794504337430594609874646138414132125872081112027631442850280752779723714678749228372209256768329525940206015844420753016570582187882330348959170931836701585016118817200633136014807737111138309130874137135289123095317155803616089229747126025696628947017354790778565301986868945154602728930615803267979840681110185554290981718611869723083046862596734584236204831231936439913942330195484675545648372072870117529691966501796538339850978367954013504312792019095232453788063335559821763521878560639803932595439770645461871227819525619231719833084242095704264306433300486827204928148162574575091422798956222095414692025334292761931204115942054744270946111200528093492039638375187952927949547735599661715566714713614744904288440137666820829234975727587975686143266929739787011285286939020694743352162880562248240762777130845444504562304251358455585193691858513121679309398709911854847782892297031495517426265877543224225016726845165427868206480694086309008731342944326723309324664467833553626622832477899452031996465929383524579096734832892773341225509105473879640079603298877724995841779633513150123184593124903191790816509456831099846664720673489146131708638994469142955858596653723669041326087759950781813194434274137355620937092229476433433471836733808392394285830208413046758355417116279726175252567761529223479376946741403126364460637203690074066151138721131141022960757645120794142785407688574546036763254449983999618697425201602465069395494044373442498897741484437839289487546607425332328220154438519534723150749775053862202701112585639672644168567625473280990657739078230648155086893269991328067211859431830523649654620493580626595708695725058324237532021360195929493849664928618407735321989565070082565608444109551307457513775627022245002446578458547104516851212853802998858287476782836931917566503408109371146797290362217921748618034465467853994073826582405158780892442999841037751970719694333958508817160016690753349980510342635771355751495264119291519331654370297596711471807328198253173026685051973463905705160879815595691126430829319924947035814177820381679781279376222905792420858555860026042894317679819199204407576173659178349359652267646739313406381673751330715289361844855050972079231793199210795848478007441481235804672639127020163927630690618519877663121616214870456535635715558895088139279056229830953748437973992181102552130873392164889334316318625009537010974476330860511277780641409511562172496265214879841149901887402370189344165141841493483902948098588914514619466505349299364988418470418759439475697191023677532668311305156223009593512652144968947760407395755546862312210924821222342035991628284210173316912685567467135341679904777928659788563926689748200672308477824775194450501943584875619946537927803450394648131559472455207181910048542604093282931043496658422519567533337612259607790631819141359917430856840144827433754111774515402572782463812386524226026009680004600128887165014095778305896292716790385837156684592674248772862285370822022219691822743390748757876730110484951883043162472311350073596788922852957990220120085180556147751270906501593665785179247694266148710508788412356586074939358875523449982673276872748450562931428003192863153055558511328465628210857548894873471555716289676354526124076418378089414416134797792170468489915452176100241317919327087244465616314802080819155365395111297095968844778850904363879042807985315099855926457829490949736782429386928810888409555815373469496105200257975224277288526261086303476824471620650679616017505992276448396305721041530407023934887371776055480444622499299273445370705913698227663061203694377850184366915973446522778407648069711775088468676929443877143777695319233482295402413354824138344301029377407478607964268735812621080948312750485487560536022765359542628093840591478889523504138936272505507744990127849975479806573025068511391645117760869901447498718856699589530108224559205803579163462490933754703220449401191062983681942161176658425307487153645249317188384248605815402070200735512332482023703308804555164363430023595968749467395269282052966873690591491878282349316545038211441591301736954126512919952046251670417379091428170017483877191016361400266062336334796905817076967922289148681235665210286414771776108389692257893981347760066673097412020654661327572154994536299984103266112659438726411411305001701237269613215157614556108293264041350469193953780199131884632621440288130321143703085646224602897151554296922168884955145832715219126455159347101314604691379849238653068980705070264917638073205692176612834424931360913596433094020511425363715899421157893877209760110130276037621347203343160192642677800840367347038868519781018675388518378442917693683426163429804472610211367102780511710646494786192616402986568557869369241487098705132803147576761235127254499808661575364465032424032354501768244982057630490100974670807371102042704965389543061692343068790679042182297256324767892566970117423715498900213065784240388257475025200300617828661103460529345493664181546873943486025117373391113552125119527699610762394290478939247803634382850835023173211100651441864635848909100244942865331210718907311171754066899308237973257854690025484785567864421881372757609391520049355590355429485792104640976095193621773020810016201831790761073859016881602156283895127333370392984884925590443875319358088088961789480845949852609046720429232130021482568762795871802463999195855199251817533638698864996453833788057061248115490547630927267430686934331047060004235538526602588386483086137419233095683415943442188233873834490687606983103092217062020312512381634872527704581791213586686516739036298127609042650654724084355483700841149548788867522453930548419596460674168383060005236664554459708435061117286896827127380978804754383400584898682999631836901249333057986626603528834176006674013859163365235164422928817604153547266015876069305316625059396743088856611958998079781039632895541583371114148624877250809671706281937197030397431066362826851296338735964858223674586368584119287940878734389468367597235874074431512743657509327414876987465549810518995403115443362606452875513279838520623593288808809639177140695063722247164838723336933144110468437390409788563462800542908892394719818995042514830014351210944240500471880880566513746828440371158697414653474246595149326270476410645117167051868574303726298089752219164215860197189456617688277500324629208159829886894644625844657366976180405606327951760468164205720622546158818878363900856769678150365297285726593502294968366793242340589383874472647626306113800079178542822720356100204409542273322966118611697665503160898621412863486527686538577838866195557979929509694467833622395304549609952245322397371178104840728066760304772889594817642659492496165536690746378621930404889019963736585732669460441070515208846497889456043991157571651812227815273031427518770269961340004279187455410054936107249011178460711022897116219335140835375134345824371054580885156781561689999236877195277394064978885053271577735236918619934422223131181833558697868675015222834168217696420878089385674645165322638743768971517888292680083186622452988551264971472627261082510670885216715354256257614920441481224380047758978035567781318249507795035598882835929662920885349308862185321982645954504468723611543658247346289498761368508476628235929898448701548406552411171977096637444430661893188832998431449800663153782649403120838961944996510301832907323207549580050912777167272061577810619974226012257830348943370657502946852322507500618587209826882826307656757153382334187196720351021620997978409601771002211151764796665908798319477425178971353297014556236510860310786925457700203529892672581902573426708725798422707941284561453033508841813210100782827147684640955751228340724759487632810230503311466046674201257798114987857721814016591149713619443459141148115989959734746968983503346191852748462215457670391377365170436814542287548550991537038104608596215325815905854374420692595625338242429247752573184348851645986156259780948152060008999261337070152779272259036651839779049884521415843553245786697464752185477085011618931238779358993979434898274206743367690512369665982157505870181717442927773715147848810737728710307950080238123448538518324105128128397023687625701484342729411435294486205050006938860220476842822864860657724563661839192395008801097938464936550361144582031972744310440885880580401267243089219365351639269210101590961895506476791793514664814196772101483234293712441967126211911403736273269824377556169833511142469294979115454516121087409704142370548820873940375317869224492339925055346341262115691374759636025890710239897694289415927507001989989126961939226223332341899964713536077173659055634855659738541200897283298395513467645864815696963034359143569227666312649103533899436722847232842157669960318800023750266989442619429358852132870358864154311271342773742036690459658601675772754148774869990993968786591978485125912618752148735981268772418419807197848980688061861625236416646865244985738207814478231815509305340860377261540255242995305146927138412034949406418284491864594256210153588932843558900984631405216556364982179192825934033503152418130350505495659674577105572826549321078706558077066959919252080474476406704336073824020670250603980064189025899289802644625209200084478879725821435884593661218939095131499115310848935272148055165645847558587785043480995216940452878452410955991479793493931701178940182192527514053146276675595161345894772240229569517902417118213766038096679407036774850723743303535688648617954643887468449028562135538338552938212091434600293524797721193512865175410409909070904005151124270414549373187994777166978602816303573519523932827473424349400477639507212183698524451409030583640457189360057082762012639410264295717656348560324545411000804155927359378133468693065811288458702988838152749173486001391489023378930353009446511227738017578857085966851148661214657244837979588905134849851729311923212648795123579559505717458121339173180766522830098060566706752564819942233830197713629488472759237902821427115453042925733087533286522741856247610747636619810720741857485060301606833924916044195369513647774124684717011447268847741374467763808386988397041428021060923578102397673792537034742376497362804414717670945363877384263851132665564491453759466266974316391974279587327240645680050026904694989748321855283091208923432189077279801433441120496149400453872838276355468681225539935109656094792923157911356132268887818573078779307280552996576306830807566632976947132952545225560518193366311606242592775574811380948510329555040796999735650022182686926129200295090960694742430665025769899829473408369825195248723164790142567721973800740256925513877173829796894402749189623564153239145768939401903907942467478047443569584701567243258385686172796369322563257183429139885030251658492807633563487104876542589372518741248265341448685066424348828750674324378167511479100763247229457171299770756470696554068802564352937567954788343099357462694823856377816515253378016260647333687551701485092295485519017910705495088206849862299063968231611908228551016427896182816049409603113539658413443153655403697776500670737595579087773482257423808532404832328393539644468379583443351372396951592232068135995976723091121439178902699674220518539070886221266699428735000156472707773227585602750013631691577139728618136121631743143213580599777661769272695720873619901325305496926597444283902103600668347101576955130761480837069291574652170426346349588078920384117604204130424479927309755268363593464365086722534762226125784090090348458301005199658524671319877135583240126468201695283890515640501907951660196353323428809569300457652035474616769418987722498509005266222798929339427803154007895370710623194426458316616407723713865870025985787185015265738407485697108045693681082503662638564665263614916870357726875827116560575392372711844205107673144491840081130353516303696723420911607028260567830766445810114808365219649783518760571460605109975747529216513953720731083742435097823501149000689398903347108507129938309175614481498027875908265244962498249645243928262787501944842370472227390004889704240868401166475713615459847142729021392190398731287655007996985816383996966435571269325398263303892476135088262420002690341378575297169633531469760580455935873264467917510743016407249834457130450664670625453224429910679593156269383945328513350256714923217695603565163836963127423772836573002049684679777574242006397782341152105589167513900728860972386918859775769503042264936475027551147156510650662583036467329005583935286273734257512939957915291772514801194106502887653493504865767717294306554518848021417996787942193176673650822879384028378475358598566940509747011582075760674757972261194812996988766536508648852476427191956319959789017362309422263920592354887996941085143403143307481158518303905461318090480876099180851302163378457959538955762627703496465011321921980619767247391926561814119707495330857849886526684713511960440670315471274689276305554248677242284842065348662555372413630659409799696626391732807867272257913267190231196881458148595288210108188353213244818873719131357914601661166233607144187303312918529889473106230670164674120024171570910185916120581755871326490672455176524311603905407022216646561376822272497316733557143032445363684268207294286111037397075966653408528680000386045860958740878355138776905245634384783239042124548277780873935053460093997687584668143807447666218684189271218030534407722003996153759599413481170578193015565964117749525583590458859765621539087008094822397373428398420126654650709022679148148469198084778430319060207588870818738750186180544466167244043104049196829840471626309807285423551051352026199708716590462596714228854318811909252390053698130926685869076794476728837472074486675483010307566742550861170222157798743211285227555455570321312998584873795416643456661300714432534258580139744673709682161889226450880375915031600063202276864403027424488479489475499989868821916248411613729211540112546399235551389070049326444378937587402924150526159999751628200831035478570354094899527180371287538800074080666333832918354242646220818957444022661136263311629305468727192881039171286160818054931769260505448311926664716023107990378376983747597976034990028471683419372506158820028184593004170378968934680441146919150552320342086685329869743590504274645149301433070738989843192164892779358588322076291422075041376367044293099717376108889953024472698792639307032961491200123227848605090077245468334208492958862650570488352791749713066019424328061159285822083182205327192459779213166508112995348308747757230929353062235863273879509978836961537704016159448168253760202397364292914608870147587958515854552360644030511735827711531496817771338519647228191184639210277399180645513259505632718683547207734453339827471590472838187846768578334685019653024540371425752893309516575501456904878131867789087338454419204912597657230967787086373329847955586055159615654760338289250174153643016921458222683133309899645908211837360680899902096499850030824672950161196586018304167923733974261692272836191457764053622653171857171996602062739651840299479596762331556465581830719216662687294634164395954462706221603288399527515475250997526236840392350074116494158886097168343771350702805437397815908231970897264225442711654342391462260598384501894261466595715126297371534355449193471242543990651205070958930052274172413397835861940683802747451759566321314091891377190160250757633802605391887411438427572376035258286701449076805522044100718255351706560280549560535197250077409910744967881125291104316343754655218076298942362582572798287471999287540098379574159749824859358019260951121307361996355833895412655039569890654487330407722817805463225396197070283734541869276232267441022113440810607134737921226507250306315639561553368365225596184712081454998447005694255542624159592845002940262547727530611649083180346642183819031777160208498778440927789215783401266973007978757172686819978027791783627166516627844630936938919239296638209421916286494948325372440771138975230849919991560247870386582762373836414627411664171790781509244343027780054307474710972943940614923994348647979418002335751225655032277972863333016442767460403333617042825053533941301654828240765297193556037455704533297456249724059786373755724161356666780976552407555000234743083779646219435650536838461168010502387952130879909902086556879841150546221817115974700727562558626041045369626446429285414383135559157543420999361659436361302015717507313009565392793557757794207715744719692621305419264187341023274252657988287542039512951717728502674661666796492905340588721018928432460056715668374748791572682400083105926286949069805865714637151841688138934041558686576583397309754290562132298715002965654824558809750300070000875321270486390845386385563078648772755223956345526185398822297989882951826477708585001992715451625971126714041881121562686725385101411855910786778291438002854226394775145481214753470926919330935204492553295764176677103323032130520889307577832840513262202779769137208669936664707691912530051272263342089321768879507765620450473055958721857785522365050742118766933586907726667327737371869817893631994161665694772161883112487583716040575848263928952098861294898642912607927128732771194268570727516577877960424138357458379050190448435518710238821853959786812659113529534258932220925691622840683325012752612848552096554381825005126258415529209803800944427653678763525919573566324582855930105011878268573109917617722092637841608192132564898701875016673344215502288112537133008255702192596942668164460299745097434416383529591700459065766380736835328383131325606142415842526494462804686037668478139193008625796741392995519116935299014524421309295134299649804536516786726343449831251923448826155624059125458713132220715800641549436733568006745846103291938663427039780836905560138456528901239708126517078703966165011853843705865497732853317560363204599127513711997268632819268102968639451757966803742924219705451944136853410629472167251199348560925845368320580243864690854263163052449534923861998949444692709132681149485192112431900182059243636361424599009970273882802292061519640075316118846833811602668455228078771543602528372854153536691893881378849614144836913874292109817730611428145075674388841963856552470667517637395428495334595310360946571562274200859647090083971505509374532629991679676590315412451502968615935485217920812272129284627814755843861822666434800066750589567720112705770400053288928027829630895722195525521757481572639400924475614600590652170179449582901350191635420920046499960619640471626549998873155679431451039712227619842834996068116744059010532848023883207345895857750997478864497363616521684437690923897157750593813982038925125077141838271453184529347768772742884952621184314644223227686114084578420960400251270853043501324315305090750633371923068909638263055799918204373826720974432499513502952229885033219250177948057169124904731005265932171558227302360923270363763831816461557098861671039232985437736883748692921598177109950750495478227164490348009133028428839772143134336318861906427042855613601495117460024785725315981850084167387624169579042139752259690489155754458146805459687506716567299150417054404529816514181002432707853562304479762500344764533686410637148716838729042547754831588629127727602793728290534558001669531471156854953564442554312250993452242583248754072582486913802935833849552078728155140062822756114476145177652802534402709198765021907962867554613276250606538072088518768439997782682869645277179000191924881919360253072373904152539565882791691998816479702467708936883516582731841992840566060939310106023525670998938852711107840970731726965929658968263463336799666033472803759833103853177837974405299576247959470817856446299067702637474051497337070338970448768244830962713455344116162961950219456106490449841105750480439078191453092814531172167647861402455090420171888516861067566955363839110631909694029338040367890445930939271376924550267421097919070782010886721801128919279277004080975787673956548844306823976338791186286540922288938033337006602923692322661050551301435531848998035946882848583808743098251854127579312429765253114146965027834981377655829169265636610280924861654699195916909283855795674070138490319730269108062549482248439628958100338002965807155105347632254648307246818484164742003404348683588101875502298557090506099248010077196280344394926021402511447990284807062989211563652797741482743661183202146737629792918495989048279980762335896079517535764034440846119171622933231959984684274245936170615386780906040996735038375934315146311259109709925839135511615549271507037819204241933382828186340503036514130018018327875339177414561867113385234324641806006368090347209020787206687852347712195050611922676742316778917354234276667465734094950561524104031233236954086961373299355491070302127571665492022949494057369475341206412615434022491995838637417927440832292601853667697201997555311162378663859391290266830216148466447229095300243918309704816974531196350436177588721096345033224801770434714247934005917824829406665216360195803907016691662150927102146928717762308627107321252445938130883304108391708906467155166638235756342452494281476254847256962929072930439401816593380651011497652799680842650643563421407146081288539561392166380186977764735787805784102341601235736717873126601800178585833259667408840684571110296500841494144012559591922114989312772494601902887379014280175067617317729453016281381115237623826259447701963213283695018131019408319847008824889988091847281742793660897883509352430212525553261588714615835666720526575166166542370526426854903583323234997056436925327028599203157905401906242960309392373434582535903019308309869586303799903848592012981948203459521977746951045899082217111219257949827955263405286016726459893033383947454026158846206902931515093448413567995293121724953058094405070742499402282876881822726174721650119638662531667219504782643205153081263476389300115758207292672757160628281704039877881198018069519543421949540844632847490794690995322369792981630264959466581016295773898547868005479285686703653679297461977277706634185992869902447729000767139860081514024444564009265636342245542165951510455365016285891847285419409270070664222852477359504286872137672610485634239143091937185933705280735692333719739129873677622964445604744915876769610482222280842275380239137003403580769431911348409829882099963621786781019827985023019888271849299632051523951989676706174462329732432803891958913270074140933686855089970316925986914450697326276135814461172331884093519303741806392762994458645935141314344096299511235855400095011287164574264501605435699037888541646999074150725705274411577900577662450264715109093154574987622761922478833254905623596088127649645759962747485111401013445506799854875220962566585898344354666718858745648063460177277830079661809006848269880965931673529638867759137330564747646767088499727335225088180346811870365469902845090066524714251935153816286619869572134589554849547577237439151303172111726904403758271176318389712664114406926219076613176423155740382272807164165792965671902429730823958745404834232378661366331070190587398775460565872321735340133097720960851945637073132652990925995925758838377597334249002196210580571473762356000742098343090183744673694133596571438072850516491983947744931187244636957568126932110722009136328337223129471561270779358414726325027069549533025204842657634625121663828900140478121721098189496125406625857705218953096618438616707478220358828955319150636971069300135101351533905051817717643947469728372728668321240021709956980616148715829502750712577753539844274220410390585343406929180987975208736164823122936088471210180689761525090276249095656625894156142395456020841191594890909192584469016056155835715180266072106496145566085422610738700728173723035436139213708560015043116043119764882089574669025093654645478456000827130725154228802169629728474385634410691970172511537844429859179757571528953629326392113198117429426431833413703806822235613943950137095212463980522542010608514407273885599444032164409763053603347903815776089677673267643195574787831270463329503009302418486657454478806403364446391690413199735212284687803438271577450471607173824801755654041082407101588395058226348517844028266444356003318353369296857929423980721010816600236240530159639723409441060217988136192904702068405807140945328256401916269326393882282940604873259512905523276146714286250543789649062461052796518239088773363191939758590807503627423243540662138600110939029574274932623874666491419202010364598314864648313620329889754427193534133323259685667768068752444614589179110958352683402282105360583851228764461463368946634797296673463121094158151912391631688990485754109050908958195893373166803869867293986782581666383883425572796897249319576919847806530509289356870953458930175258180633435165300536951552897708266445668622214194461059231801126916657358191254937588935326352087152412080666488812546568546330948395090018476334712867171591220553472386626982519176722784637303758865064842528821548362671245411086471059958620687699411314277376025222246222687365249603552479656487526258312095730895212067324272192729623202135644878773398459640732842521189967295198781421699603519504451589198023267721132659649517777854793777575017231434783575626135782625523602799196746258104735662946880941112348150643135044207508881232503913305946622665086866845461663328990199545057964914061796832635056822365675040994975780929230236309493012811366375659144377103222337733797261566120869388162774297966389585838589061034511536087128990884926459751386428064588035325950530110513120007750019308670777829677173284924780058647541365528019776399576330568338049808298610339590520744832361220522114828001348487720393473087109240236093386754613705781714649528712575395893728453288541840196838837765773450692295970348476579619545888783891141600237588665935192506983442196710015837328753641389707785904190743957783247752917038192435282252004914073928699558226886651040448584036697927119834199646539933588408730749647622898226515496036481788670592635555021993531683447359509312979155595674663938152283825751131234443310816339625088539554958151556782085826979480713411497810503594243940578788920695920035165631609550390616383470435763312940921626377316210339648189981270400971070894507595161172729814118555085172070164798929399435984076069436648590790904876200917418250646198387117347465843691407911627175936702496160610916785685855672970967414522936923652571673251283434442717907516314216112422604047445429962646738559192804214411689565251976723793521343098411112783492006902366888249004047185162213448782424936656068455217389010188356782496550451109368437752198831705238157938552134846035183396491982071155339351274425832787722585027415424419853252971960018772733766438792118891584630652123101487665434066392301030228210800030308573424590984333118043867328339519384658473330653467267575736772823221011957219305380573707187529069485152254681559031620148996537076081966597033260672405286915213152840243557644100171964452878772540523088103143262548747957611547272899841516752500210116085340690696749886794025589220185866521039247290145826568177284005587351066544546789113394903532541029583076238036156303010523766289277482429189189010902229368462485609122022758262239564334891837090467388763881362473840405814067222258971630500067298257722162245099403743145503923187029832452861917720845262562513160150325918280447421694609857338714740961270115927655532534130836864479200483340514844482998180716458481947513897973995579874914167163188303895790232960028744904327109063911344341920890625070516025412720587104516716559697944148078354922305074777987163560739807350076515940920938344240465888234996214791667137666750175471062923286476748849487568023085526095769867593195105958609448453095228158128280440878381504213164248421549483169763093328481483987877350634792467441305000337937766020937968990582098180756303858374425317703437555013438624443311172609874977744647606403127131606674491708149334883207750173643756262530822316399366616416143157212541745896695958145002352156528133111302669854293209430195356572813812639598218150125045634976328185768597727660691367091601373245191663680914998469057894085051002653149391309350100640778754344610259461399512044991512521208003272086660047300194893393642094058075627263025835078614577034667308370950449848366801298089608811637512427977825958182257885209168600668664128838806417956922751343927019958722017371825091247257950512153445499532356957449104137607318128075803775689859060102868511311787585336829625588517867327098895819046036888060800813271236038715033625043542410833238065553964858139307983080344731289868514072838777427717669783484550249413591142407972768428525446500453182948611409708219990424752526447502345354528660605199214850088734825265108233747641896799118235945558388841588041825788399949076186193732845433406660814342534014361716455584411253350826707160535580888206833311325759908359087677363161728574902962542467617166095068033633089439166171668416983079853865134009717280643477916596399780359914832947948482243327449144325900332513421551727140193505341830703662733869400057947994518927733091147171089036953875806311546318185064360324432191246079356827411295896351017210137418031079520893644163054588489236173987657187309570538961809732058962152922359509993564417669675704901770387436440709394065186423389201442174479386486474881093908346469895132634541120178636023145748521193575015737133525524910773570226763581434034221578035890466181764206521704335315234131942197101277627492466184765742168498096827587804104398765355328564665996966832387884542946504242416574644700285119036008112005343026633526146822573999385463297089933859466337791198887513824230714472826573805781132838792058587052930119052830820330800968955020006432845128970568561958765852550457945362645588460418085356300731538064216542664926515111608062586590842295849494328567146737029106202772217899224091141695233462989004913369787346257037722559835217857737477179391449827260842267994825762472631073701938707036344870526066979058636020090115879860061703380515626558105757908831724824729425168666423426627682974994119926543792934894250508366588358898406458510679509254695892762960402776815733186080318947475753655872743580884143822079975473681884905060648060825205653863052149381267986438240932741972559331879087290390463136510038608097828024109145976201607398498849742453393161405347947827754378776369008686667261112914610337126944685661420217876665919045665771782206020682475426629571278385161678884837251010320174512246571043795217699141853234975543079381016429656187653977694844552315183885809834919722133082065016999298033515837194958309799896029984410519567576769693835810139964419525881725616308852842754549362735946598315829578303552689827283819428421806753091783996129996166840128359477022047711648961632774503754858460856534383706381215364820907938781107940949597448383409063689487565622599486939285328808734346869811177725017808357368247208779094903928757171766202705372325949436023670223053203913801651289465159236437994884399155929630527855354380918731756780506263293807254704701691582804589136983224014760535829869531444676897120602209714471390435456374427862248631853440875189093054164056420846797046171765844035002326697218324884812908819165998189412884688933345064592957764795954368623922670170935474975970970575705036585382887241279686257352852158901569663543281448749952245521907893115161073032361098569138506594803192546580429805129952019135339384379940370019072797564470677448975877548190172645517628544989326814174873738718601346729672353341672859929687965052589176755801881056895044674169288374122797503058661003461321693211801079824614411491720825847991939329736344383589228416792510130411476058651235760138261456411886093763329173062286117326449615492597121432728632523852802009160868117205333649475639067303424184692817623556015822440057150520659083765669960918104800039722198081052119348190226726299668719157619493065334004836429313819049194622333279386508102316596547506827000967139211902693406303844250119934213517601802477640257792235601325058226555583648446360659437110585285473463950419228488530723186112717735518857589339015780194040954048482461130217889736479148427022266029393476080777756931379780867716521058589060837197151980278576713897212559185732156415423042737603777598858962937455427450364392908044180993305278432231411610306016029962624383736500789417274162635260656206224222349972851072555610251409941887995957349220804716055519939317339081609610353857122326666437778928794374181181493491029703842565602752322493540193468792039103759796297849825041822029140301417151049965382849348239138013732584259277391058720139715898244328384354233397303975830863363981484288700897596570312180683045698477404231021550768924657520244264080828278771216165906673504914443962839906066793778195148428428522181427503967176937713235925727316453009583024135677944343105331900306239802949195334369990821281039786907319924862702090389298540413721189890737904934534102761766989572463023364815002582232717256951614606479931407424502668594077818325831746054978548031510916606806012721803804031331540822966111681136323752291814304242379681140012515117833808944027941859414072842524399056310344298660258333571650618660801075425747711244180437285959948830319253853093708141774112501144857905015962176056154577511587236888948092148201216707937375156176029103329411351940958864141387113338050758681289587548640318163516711891820378118823675080691820534072869834498082768892691057942860227692389330654260111262487743659268058488251788561998898972746734663098629814690809576908541094432731617260702570027064064665663407475548884332844063767705516474331815050675776639867021597355719314494418377252325530972520910207870350521530294892208296862603856785835216009453929066688400474492361780654901225986247792926960904596292494052479275579795318239605215017612402549509417313020405029812045803818566423899108353491469400590821263312042214678929434834719556263993202164202525157710074597528098263204463943127550728553689368358232684473478830568711689866330320828847307501279218237099105586168356963159864793533745177054414015299277105482601285144297454086849268678877538179422636812443880388133336508195061845969439166148984713100106124574915254288924374152827354479598889630228093656706992440561451507455180069616015310614997729949706488065911398585840990569822902837993104516969593168445617368111286090692378289222283374954314450166863339093113421555627880211883600703242578757411667915223375146138038671988520824147130403556741595039542340118667572283569607907343154637492708431539530719395684773899518046180412893273190016326287418154194094885361049114022174105377921208217171600596048943756901587135468073363014160618270937121345032491934508864529715197912594348610245445794520230061820035038493028240840177274728580839728989304935000781535576061224644075140000308804797572389087981220900851385495377638681446463871413632440512966900438250165955965480984135172008709844793993847883993542043005121098520905925616245109795938225000289326667678378478220565969826425272922781112641206302853032257969854112638250726722140683326662298088799505266263093039000257850680616182825080234654171067103924457210797826647564220158270515259022642228921276286852051881200927392550216630890066281556061276647796028917094995539938536542046727342346981422432306070441769883196638787662076898195018727040911502393643445037180408024380458939394918272670683945968213781824957327978713536737785395204268679643721868370083072729328114289588016901115680299585148665331613782117326749547195247130087181476759305922207164221259529966584070856257234418504513989187374201482409427402316335349458859474744200251146789504373432910659329155469700532627359476555248934032758355443168016007124696846232621306804334862080636080258739403858068385592569643827756480596459435487208335628738811732843642174087247318293734620695300759066864469150199499371299077200097504033748464635394254992984924870561739890653673476616908199936221675689482391177373831888762297105627064290483505806274620758767668085201706465582475018676262413231012938408531554260336291059437471209109430617599967934535659980132253441707285058350438366022349875688045348317225094574262028620912179314344446144991963029939259550797210080341112076389007006044512812244844439905488975342606668763095101759815400122960440928990794036418417769231636577279199253258296371063620879826359338822870703167651642855246221160522327059076562349516484221798463509134635735314642967722558708833434559039286004834226349701983963543368503679435445721119604989365950821101853870507671711761844958168504014079739429501863271897681869471796913426342317825444822636973896476034602150882183990601355559278905386326550342138182213938928596174833864641657362090886153433386470882286483654704913495036766948526449512041836430267439207704948238561659883829733236403476790457865109411263308444173241908607313907949038064761137741414725121928897776293708582316063612466666256595780712691080297152491580597212124452960766996334043775370786640809451701315855082605893331046767843817792486499194413111472624348417055185493579803305097635538354584111518601371080266552306847495242053896695961414702009502226457291114916515446731271541902678037994387090754216630329450286805267761294159186964644386549800109131283010694134543524934256456776931895603415860953820884694940187187417945500224560964322587634057988522017779672434073786186124997954660743404619552268425988194789294054115107372958329193052516008305675120455851206664206343633976694657275276119816822873357211355518933312456234097241289340582929323978441368213178520385743601449370353787664479005902891420759202656630878807388439491690090197424655158535118687636378174373386386588094901809415502245202464384267464175729121629692596970681949504692916347341490039970979225525236365775627434112473499206752885622056055007924649385471571304400106882803485508144476521932112431780881763168952019963807202641113809918753196714092150713627745465058563731437219438628754800097543280304874516270586265225809133112312711479199200075472336964716972137859962718692908899535764572171939587686443330587338963363314092029910678419035975593676641430788600702722094161702087594481154385017102467009639939366064884805174138428940739022675348891359934159414094541414535172260876573123233985290084322906016140903313295102686400971382429532474949852733222465533457912142512066015768986544159837451053220524538804222033794384123879346563570377721295167563139840783131335799391895329711192459180817417759690088767884546462259688639111069913972576383288110858651328398229289188420459728244934822429042754212481421608834989181398139643490158716590006458897007714347185864052327850629082746427443957054330078613016430070479576608005948826859718164709728867693927510104064892374056840352191732245208342707276534100002728983366062213502636431163700524759303143591819563964647815921577604732963739668799974998043993088020451626376359967390404627386251128185500222097515711467097480962140196151713013312660441087010990293622206331563484665093055731250439819459135755770810279782402744243119956214884794819665065823560049328041432200022035993976655090059952220605341002568933370080398099091350176146163591778351144976293177204209697046958199305408057505436729998540703795309591867988085987909852320056740741773023254871953732238392439319012595715560537053515514767631157295983372543467086887053117550109246355870522961013588825334526770710063575879610805299631797839565678856386100527700100727113159354820019944714281495743551165230545412457602881534781701928011040520201071657645310682059551359619134471844837814819031944143483261679025979775352788399237394911254658220236544631768811221617767441511658085391731303839681196640861347444654272817572830585167019562465090133418688624917939222388530121598845157424631489018933525267209527696073167640427680732806665906963199277383247467690558804465828874823077738636846985410527391054232940525433754842974992746895758936794744227238105597672609194805901848856574075973217741361157522205960060349264935716604692489646730298887332782828116151367019289786502024913312007670697792545968042081758845702940450394032958737880055895981673857689294697046341738236737462304547345028258791777352870069358888160274662720323048766115207531008420757973592137185517263873096946245276443875173587219222410161942835667055486627640450170186895280363380041441634918467509910529274657720164044781412187949493038810439257559744431418113244874903408581125401946550921846682669738291502034752911335493977764772775208721847694812903292401998727152089667980055962384017228434217121440065173482485736660008269031722643540373617666243963712045977456336252767286204116452460481523588609680016360582588187810877381498457656895501390528453363484751003337205880308163050556978323476335780387837084617220464208481679801000628786441967769046388309188087389203415658186803256001821103204250264200089218084316601986719861014792047980306538014899057122857513937894568417047421130958337273466658357948842121970502628094065928342056615754718807282702697994354691785302816266687947744319699100491391178043035255786230049794559943919705273800842205128975441840708830531267312923594060637551259237366384453695526445003286445171067116050456054941728820101860523505940993367260276244466624194993873849054162660905115706081137406617398779365324682117630587909876600860245393363831633229138613708788997868988974320666645034719150817798217634851524345287269420798974902063300422632678046080937527850295857246147749378446772102757527515306050992281544002825843371775407762471069242929632133902309049246641352848444685268573445997628231918082279702783290952998681602854832018585995071984534915140741576675916974296789959609833550888952029846734205120312050798102770607776106672705984968041703708928925721618220497881149840662785151941676464894480071359608639452451650673857448571804276419004804419158074798233739889183320985887518918616118112153182886070043702449579767436598359021275085219121942607950091575050453237372338140364651824211628207546435395117642604253809243714856053425894863353050306005486469150734232241808729518118851706252756545243212745589478736740442428543531895415599318837044574158447245805065655036409762300377396773046849921541415769930118475414152568796963373541176849716644219633779419178791535189178769505313292138733481749996277265006488186283111877195265779934073029357598514589792999484885981428811702202815652513800298654074921746549088447325690891243686708995105734667918975913304793271716788448863948629382314445174438161884274919594900806319673675605532633895810113660582716594685043065667385367979449325870232558643847162511268629140957195377345887660726883938390432602819292098763275512996441485156281464472517624672512795858806361062729905480797279734339261400393391178920565861418207606880865934828843735088290225973681841732700707731410409433521911014793717286749968544177647042824205709409219163356720213663839139149170488294366299231884941572502420391274414236799741905000964925573931872331814669510529490723749506335739416411178993892964418716066078924312075975990773271841332308789058990719298596210297189976618977291349140074232218600981795132518159685208501600583872917013003561933776412274557131533318424254550244807946815048779809287304804164214670560470275598270487044152137556924878243748087739236303678648204372014594267696669759800128910042195982306404646050347502632799059052278767024294086947633513080693383219113547284556474566926794749610834715836018106145650453126352716948712699739750729146249483373207794029318797097575923241886114561832743039967097457987640154336251340036094513705541705348163638140257980236246950759794300428979366698372247987091156778824775323800607545905292949085010134640684890448890344952749826968803735727259204314411419159251029001198021699047306560006633303258686457834805034572884749884502156028857556301048891105243996216635365697107289597644816268045160459452503393566605625824820849907611399594859262316003016827528006320354438458227604254319556393526638624936048713514606166217295920409636227230448340413490564032708244370101534174790197799258209697807628627516618590116828975600025038581588501064482744191698422978356093375196171665551994495974308213774225237255035904923399592430486124301200613371377242503732367348383041586613161232938982970280061940328301602474813507724296334897268498047249207083011152527739227502634211370401941955560842016507021864928349767509581552921472626697889617633416707635455457813292755504764874778019894025368161089224422285761267173986110149293900669222170392184221515234126967438976805867067691035803952782949412005578390623772551415345479355798041702718923524630823649343730450069288536165843141229187899795732456713657420259106864110992468349538779291548475897289123670191078650460112517542327208835060306915175451935514276702995061558483052759238372964904630865725226204485363048921506852380204694369603233181565985010097407455505098927811151649732692309990619317346524237906334804940624408614061451907296257742808234413071605474094521067617889647104106694093864771928507209990413890928562129633472235337310032376243989654759282142210537489871093145999668986329177434471229800055280988994022848968233689679808036492727058810929265503610405974797912568973025507843070160121768616324679362282419098832323371552280141764630670283742464215836407449900765688233075784642431427450514078887852963707642693756943229736688682266299814711471219732589773001585009774495597645743852468413364780908471127482801556437933036058011738337986302318055619568402607185659273917492295803036370237329241779317862132787333069111819479591235432690421438750137371522265114293416874841112182669002357889157323420397240986778014962035714871978734833368965519502581493162459624866122665424806548735210675761345698323502451546767257343424180972206639819042681100298092868101114457028715775875195686788616657860656267016421424490154658159417008127070702207103268696230486731350567384224590736315892198711912459320279063945737061682960988156739320994253518688389049046715830885164181769284613047027759476572618884721300171777435409988212621053004811086132278822802832943895046504439205642267234692532914919686430743087662877039645977804253618864334685299911127291616228769251765181208141012086897174200666397635671190341260116626642892186463579615667746906971103518043912577293282241536062798658676458439624801917708169165886691997031556628660533794239984919356363118596424996907389016881519446396241855003606597808372001273057538549755473331613445751631630769539868813624610117430785400822909484629625964760710843667161357948647858473962620271871429719936030262728517049364535669780490521371783711888089777256205125087887834980506979248927855110736026204116269551555120169401067222435045926308430891231811718075786307537111484360784580521153333411759453744189043093668753925346677789690629092313766000732637599777078049398033653248274789603171999507868112870383636102426160015739628509888939855492368678990016283082908674913676094218774717696846914018313376481302236239603353817247512767921046940816268804754740989213250151434217800281844215760808709586883713603479865881644778934998067992226174219690825640859178536326687382995318354020585169574595155849407921401056870826144530005730798701781686009170070642318259424711607934968558564044412507958964168337621547727645939176965144537750484125889573603252101332279632278219719547049466785505915270440833282858157667696304899289073425249917451344879392484013743600714929929317536795460964987004494053606759841771977614163301181580863280576849457702321889573898340622609542195495976153403652446526853980690649109229871467817890634996588422374978387712971935308190710623925981704714943224816082315259323416660951913690374771917170537323624800214448932402676839623898702617881853869575192878853693666664453035558097639449837584746148773588685502927464907562822405459475682183331334004685543245397113630695707127427816942839595745137279433059792016632107316348035011805201812051211876696802559512535870453741022570566405940415668771993148528044044108570792645886939429130489655503109233848595106289270184229118209661862269645120233675026013642006042112696845455630516493178007161870080621139954625370041000036763701128463293126250258270739948761234740795056333592025537305405762282754973573595609359884569566653410856471148850890230645231344713737096659709856077425607346247672161262809299695993761401040695074465391861893172178380659065103363723340752172655591055663688366754068444211192250937640567084031969863660554647663103510821104889913252979743602291723184086543663565090910000629512008891939004405285128200100820575603263628011059650719213497544852226103703816684697072669776433933747076668564468962802425384588635810223765666581855877460217481195689090140626489990204829992857111557304444631150667782286308255457072130137876845374541473393602817993109523996239568098876047914452496145156510761203725376407245091620834592207887956359092742515516584257057436473577304475231658412317792210089869639379008106542076268571870303172043559306525512103228931060971038326616362988390580427857947753788130643200255267744493810328436053009008190347112336259592132035108215381405759397371618687149798704090862998293460434150674009028408828131891412051591748365254035153672047313410605075060199944411817937939157086396673356399984354325158065829789863358845046489630224697258448800476311035813662472022088345964975586938675866312057116928933459396975552350077317055661644608599426425238246534745115103171331630053959161861420951113890453796234947451124539838756301424996686361051429341645435473310657034559943979289536919172455522396734926769412403741838404551879469607289127683954838531689650722627591459734752837691574110098979251330098869100487554769988829212716455309293129317498573105790426773550502692065018958114528271763718204437929477554301972071880116000142995420091149118929106472595416366722532037546142056160643032188833697858711820622823947564540201069570684349314891341647703553050684763097381767996427582419064808759604327027555072754456700180707785413344626342744044130487514799916730087048900047074726679318337759759601986689935131391882411344840335129593461266649404342811052965772025199909469611458783630870179088834689838765304682898378524494753318299854440528768789758821629299090650317381252960190082562322498290680578105277287567141183010793718118157760006579865250706850622551181808470724745332981117584570894231926447178139143979723008220448091201058840790078081402953139805545114300204803876763893928389506437188411176434611761544691996915555698377968491399811868261242523288148004891793913861686345335156528563871466390795610561340698338123423443766591344258489064734496901740105083244420082255195778602840643217785528437356370347586300103294777687471561102582176424531976341423573782179052720931172660709051660419566492304639200807105972416667554400576352798950244271520171380830285897400198545546664484148516372199061694795717966954397549733461708840031322420530508625418630766068463539356509962313513589088560040972913524202268711288625989368059081559874064510850999285827247518699209575306667183284306712522342759013141068636263389903072939251428280363767330846933105540670822946402076268592519010030092043734018431602184950525770962752776992043527357459038836124452116941530599731914145413547053489572857980372140957183991804573587828212326305105670044221654081305649951195093177159422594296356182943931609201348522852482448906519603066533706959411732338155422495810544467461315703569955464693697793526421095174062123381548521850136556292549008161264474840488844075479876946577464178464263067374829680659934656965003715327262655483555126612635538456545421458048954285759473763535932836114767854068016048436390295191887719444750422011026348257441715434814312861750234403061927324521225645596774050991194501128645174702929359238927257375021430984119007328380924193826967733284132735171229788711917544656420318202235437729692575432000223169688919783273207866639988146831823860104465173019576057004958085909562312009882631674144441643156396509783461992269984146326530326406833454689592890748351593030278341502797055879085137589927931980931141054598656948155664346173071817267564246554441279191621745883839055585010390378071817518335804406088337971426516778347772377550589769893652425509187116770886463696712112241566528509853114575212735578087603794467755985022844605096756692445786231683656754434984606557725512430442239663936007671912551931759519054075331537968459224221555113155696773423346123064327731598138265260278185048427304913992766626414685740173727754140987505816097022431345895024239318111597692603612182635016140743669842733398872618547272527369900951662337841365947091841351549757825906918145523563384599059345634543620835900232452373937740075840746259680627679767349840890162604103845002160122347254212158466872130830075330690078551265673641850950243755616461615237223190919578111776744402768868064488448491072484786214518650822636381895275354736119549843464408665401646728406680035583471967403183532647572630836685987715157418041986867966661317765821834402847062144312546625945215742269719210819904977836701412832750397756125536951694511185854162760550506132663671038666428732399348068483209964252169155565831376977150429895856311818437566122091041076866758513689620004557365134585650206264771114007351734212593400611459257432918781860840202629940856529436687050870158627030710192169161798058191437098534541314284836536082522708495339292675058828719549604226507064388644746622107020814808562170332823961079842594385408190694759811045636573926174048307736251138954666403566940741776859616766861262788439625283614335833873138977909037930424375268275733213211703356250381728263592276437592596408853571305000941599045009701763028207387743152453586529052992546548716044579354500694795942553059183828642281786882088543965896883157467918973515677875774734975544462150787440399462303455211046814010322022550087149276137548022284292454494609587224276283425743153351049091196503468321042092984197291676690652430120258861055370302080471018478113931437453931941498166921876721703876524106079702031689479433378489258236092701352491052811486694764050157055436213763097802242461588784420421311297966412763188225653339050616284849684182874724390904071105697340796372020722819350751781502843068096233623685855739905094893293788905877372543806581442609763473314974845102708755085796647418320296009912305865664197735955821480482344435001896315209580739432919561800384017576135414444811244237042211206435985086730749284059169290811738718728002856187612119313798392252218138017045371121538079451892782141180261195529478948789877831078949442060381127091995126875523849728574136583480922874303030777476035373480022356321346479843624054551141617736544016137550580479440343872655320955152615251866217126859085880117096174613495383801166198602615745676892258201837540213912894436638031117871743819471604482109323814419842859257534445006187022563281272419918193714684619913266688809828915951452203364577834073662122030695029544770091937252086975721365622251391702112787008639234950073498795916536657319046050801253416610231665993257101571682881847182744861577575880840291904118233982734486559200848576829888326543205094579096823691459486133046319390651231234530176750558836506761197255538359699006246786600803342360880778088995832124448003246422863482574456546334979939545168296652242439972158875094341022040139751994955032540116962332386465703737949284093097299984080737184209725725796716276831957289285863210563556700439526389004991099759622803863887778371228904638349487682870318277441449731730156425058084894261455892765081831402991338238566879096664133100968542628110256531603370124797370208448343676633928681984181038685992552748603332948001806305124136470300438900138547489840356706229514562909048395411961789664268284153388974049457860003822201818310861776971680071013832542175814659091774810834288276821140831668410117068187511095350439016023954537377075631379369431082077279888552932538875518386011799993895633908691065134889352969761939582847705989545792455625602049900865028632105833297917720097618127230255572847861131160228853242569247093370066121918937141842197746396240330585586254411137269706186803807053525003648787830494931399445898255004453529668306719880575198950958077276752441836664841937900602350433193192319110308223897765669720933031741050609005798586513852690090078438517295679377529645594565874986058729143108745798720504565924309271998879282096411407158769897905566509831441223177642926744968690210177168270602677857354335503056865361165076454537415235360008401462653008094277559065544195986659525085762641751443950632676682348165405464792459973988040763711358408358833507151395250904643529989062370752444318793689303022160723671631287125100091137401088876828664336438324513979105113281785978951721159907732176585117186351499133259512235089525136685206419687953560857094634809344013117280565950816926964601834334276054302091920204798229031632046555239848217967179191380239873780502799162873684805611942962992792652258131821322269762966198361453373915483785107897681413018203525492018903985590767669523579844940671936249014419887050727900190024743982350888925596679866924667421732716451646214786895749694916647519232443256664345218021776643947604781978867286369175831464171641892811583371183963488946181709326957313212986295049550485031333233685760833432836276113782806062293519621729871650181850633107990263630709630466485686941093672470699063208887156041988352167215720967476267947714028105952905837200316575280886374944914811885745699030159454118974123934288307516624843977678986765834190424698880776238515145237682189466286766146655636429913966069880009765072219010180838121472893994711924423571368037451568722944222936449886311155687448014881350027247392248154252192726690270772144871045188010904317507215703092024947496931186034204344221827896051634477981294991950140902684930250999824977175647161037243747778166538633942281868511306012837088621390165711576014091552038315048543147180722574905713429924200618917663962847927336177651755824381486989253149336577726712315005699609983309137867655745216098877177922490179209331040314005759530952124068591530514313934858968644066133267705846004432344912342456871341767192908862253327394602190298742624242191487000392662391878514505655354332845079626489266999378315555116563558818670672267304397536799472758247967746187702888191709716014326613576366533260554739487968839383955921551442078269753721451763008638770593845256594052501742624854510351731816728622351309354992262957132939819066193601594232857398498648343910543862344582916448461570790663865033256755790998539607041380948308703914177475594575352484508496479684226894170813352977054263429127445391441397573605517902522060920149030519952537229984385097828291361282455803308497067253220600235499782373530516882907654650605915651291210593882382144477183071732377887521809939553558125562291081596732593597879308703084717591725578779227656021654698260671564856985376450444083550055748472892297535454286822990580679106180262089166238666636278109680557121720954368846640291818581501965779245484301113737044067530949151526683559953591090743412758427051277220542269008577680685730362522061407466621508735199642996425679197787834695953376494150319898132515307756038885484510039895071263900054510865685847608416219494910980676621085581052570399982729709880140157224194847818552764063042708999370701604246458481453906388525405106995170644764490503465463979720110093719047286958498014647366563794257987079512032983348955833007292737585762122410807403635823420266126529762881979411088505000851766048224167661979582390336356000213533782316700839901529357559629149551470394717858347896785212930094497770054249004566438009410785613339943582293748915927637125370350311485298780678054800774927192177562557760603485944875176530781093512664021131182903875928144119913495255092342266295913105521444983841029481307958854454446409165214965286284117352037385916530293296765936547750767047491969243144774470764031438553161623539184421947333683623526586531049754052859555128009513165512024252307291626129818715779042407276831697558303452429797385989691520636925775936333902204974395395023058798179523519373621428462178016714286682642042555347880202139940750526797743795804406366374874494243341700582623526524947476704887512967363419063993342874523273826383212411968968255774160261384161583209065120794890406991655950150134569231946937758367811203564044727112172076687893977269897432828249269591949681325169991580925802093070056722654442467405989017462247659764909693890932234841129801362488547900769132242331833273107590152161945468210852535854416991795204393204861169522519162522732034480678259138503868849426096696589091486465704033120177653564769882753121891579857858909071633396782940718145943041766243250599304846243252075803924428663324260703947414368321898109311412013457637900832973646227747332267308146033339434938508624315843147826551449499807157646778076043340551712527604994727565632551806330564718432369555170494336259742366840491443504164467789124129512602122826606003780622972742357404014361795339770794003472294450734195945899635603296728441628766130976492351764360663146953217300057885499230014921196418633586365545435529447330186853747064120445141310174302428759483809128651773000308058192538844016851627327185773637792693033897973670543551480656897705220934472893416019650515871219198418530720124536146643322872910494057043090833333425098314867982874652844103382670732351682838192700584920099557559901536503318620104165899938192411109065676160659540271928461199245190957036149678389130856190084424163774393181616489733986687997007288873394265844081379255473296478573137981510976976117660539214793694054439882693071749825288839280643532612548270103629414333129321590059455710310515162365298732029727696737757271990799586745572877232227318858211652878569982476512204812761658121702740053730570771213461295064594600815088291026500550130308029475183056646166261557580762098465855617164764434179885608729727324015412182202153793494732939977957498741614010750617852922614166824083542042041520452451130946456326658047278922075941833386559852462432341058775885594893785396214714347357256607183474537948616723362483285367899488896172899428004502766535930161472612743788302725893262402384371902368496162037017762656617827872028036133221197847152339526100601357777513473079024059080610893244570006349505528621928994220006709567438808324151012192169274353024230354628781518174608409046036759340397050247258585024312963733757402641509864773425953904309614500481211415120868563973092448182529946009910269573348893330685684584727856201352312893377806826986703206046089808819701772449245291422390886788003648524069928740257041171789367059113025831469286115435710743029901000963260733195966219769220853219162125759486412153655241967248197702018534126444878626444949674174147618763862779211188772788426787161944393916660571504963366013536931644744481637051525231654339732448395785413092296690315545437065803478754564574244200851675552334843422536776235017235501958159397414527781450021002317451458748563843501590001846203862213531281297727014069021818677219926489727929081873815153836512131058300668199064934667245321821808227341381212519297734423281757913691575742778763010762380504622734992590267508427081761577812714863096836396363293874278159787210444397831927601564090650135296486771183175140813436561374373466607533993941984096237048291100687432925914775433278727434398837316184994796547830962111402282654601540916774273460066967425629607399584157686177073181170875158062794013241549877441592181361381272412748124978633048298897713563155029292747658298613567705828531001911929754193776571189825053579718470529403946647573892672319395731076575647435416259823711615581701809890492230739419503856001114924357024845644155366136042251903024178046277789730985919600654224576973485592859714088430585688357894032913073495688482736122175575342329337347609049921242778020261548885059741442799134682496366462731344718823752580277831155304226165427217062653832552369645364061648249023247690450574735729166326852056422609264696333955360157630511343196110510667322495901174615572755112875632660180114862397962416840896168495760934671512993257990558164234069648763504143408163248754528981952722551356479354629833497355088937684515933322476571933048189960135187309825991809337934423052909451391104061894233894162825003233200128057134710580991874031006573953401021105583258212836955838297952938482857425504476528626728150600047003146632906430209800153345764854317044556948973656472053899152763645705942768221665312625321085248943024383066035951143534231284544773044672342463858875520318097244042099904124218702915661569828719821662434492021120389885927789615823064658090121666834961023004874534032888912493410271536959063323636392763908669117109904790297661021031473202355662100348751567290695323703298914104866053927839640381788644368482003143109032635745632560150138034809578405892859650425810223966403803505443472813484482343343937922696542544378176531575132673607664814471297412830002625272582898359425423806441419661430232629821358780235382061338351014217932079472170872308122194889631275180741560331614995558633855616914264409723915667020928042191202163572708766093546391290081434116191830247531734787456110123972184554366188700418240199925320393965698092659060676294818099767368713482817054219222619027009953327163613911465472792117177804254346898981543998604661016743430950584675020684087382253604933068198027206180845109338002779294702615424516563591755421806219200180176661983960424637852039844443164182250578723728994410648913882941535527688453612447390171476326479353617174370500130815467458738700723882109142932909222120026216178909763496673584456124722453476339352507742571483647191227609507341101004690553800112419460495636930542972244030827212513913064258655298397474876180798956378497483536348581313280199340067417107372738865298971145738458328178468921552835299071213926904504158342193953891429544246406187079569548837732826525546034952306412554714071508019306935119120362334418109863870210809645794618986339397039802383733912288321713843538685916507340037744827505024049309072906484972302419317899341724203766168930605215561839690728812504871987200273565699404170061763998969675486418401922300402137518162882411078424729615114624766860901613844541270494652593212079703767453490416452187240107859919753469056070855976094204415066420303885345639700585809018606015208644758530253331695370711120851039785395823672075331527998346548837297763125932155055167427494332357712546659859239243090371338532647617293503324847761490135622644016392867656878101941877823607080244009132031944664724720539157718045515313135268226215700989585407946284027825030885141435118318341023032353745565168281119882290888496190225184739346613800654678531029651974135917538212862245766305574791581446060466379906591017228787070396388233645171774370224632639786450923472222806280677770142325478575053796827400932885301928628674480286221356503717849120956513520460506666797683042836145907501264696447617324774690107117055158739594760773547135238989083496711553448792407408037805722986490119382911499756555516160243055465434673092138604860948738947281005329074421648410387590716275826448233499987907102194710994568687003968353461290684396038665514727591952118789982875215236093006245820888689327703306633798483468186429582575773472857954407069366105041025077390839781529337439762367881618706514743851346695536122634474430210389161249502571514824738040582193691181514403390984980700240954429630814892233471244179132372412298428816181963571188407644904724377353745920579702476799876725159667169844683394179337199145016968199036908567335673180486538454370461336784025597512860655533588113634625413526285286011996170088194187120539115029246563032259564739201633118021853495205198657507037877600930101466366166136102014917796984672254654877825118176180448451459011043134141944440333905810652636673288852886410236527854693696701975547971836985823714995992125848832274786739167681683060737293247008212660781674145621615125266053856750195499699436276223171874348003343785346452816532951832251712075547808280702242601348604295179541701122716163167857443111182754661449280555640469106531979203768935733069637593746845688059140670485001649892199945973948080274008414042962727991890748953609069097336766225424639144841823675609902885196145925989858145996355407171740387883891066216762283205656135329273392970140240203076919458802830114197466218822545622055201121890860988753511277736412115304503105364150905856957001067226340263631322203667041115114725174907325463303778853936698432483073412746259772274943993626383380154211946196886991254225177943157064911187353055258775208771967307345430181309082076851912231556456357461080369377621396488987346487103176284600862856593178206006238318847502977268496893881736612620480682814154258214393822007489899612037534908631279287294673914161271587031265404151364527921834198663662016698434160773238845912953649498130427370485869561427160113594905804736461664163913244995241009359538836437699349244027993213109245197786757795236384580785232186775961455076552009762160115748022650709226076668476360026023939806895907477598107502014485831069351020364889244441012340353708089583074639408764297021031447412251896805521492097070918599118040834048155662227845112628291549182538188504312613390769463890845769236278924509238905537748552364523474072709664974918744851107060364879701763363763940960416919859310804908353038349844434454910432259154588229821669641513301941903409614550340669567260993797575528191779902215982897651243726780127102106512314693336102013148634550570325478553421639745220632810695572306629287301001472226201869693108783042217073375038919796615213707139644190481435348235815855458152088376603061678309652264925984563592496330034272437015383146738300791947643749546738102339688435677462201698814305068873746836932334835978251290315039681584297348274926005242477478050207488615775143558252672633706892163571669725484455447711664253956435054225439063714416499159154644855306291907842486007501703313196305186109069381277590649976433417349349549281747107481402412183983037349261734063441246952338000241472561028913381071130673592346417586784512064656575182076766414020483357679850574664907212081637868465019801241743850088631552845554067256423619527583108922327388320822491943736546456070402241721002736104509748027060135320699696731195215640098291288615828928715378215759003559786281023801615690850034389144801093382506473918613572638950278554188276050061767649618240248369658140423442979416644136762504690277316512436266305334198766659074849046672581525670169592847000130033553467439080354868284406607898795964868902309862968028967961885620792590100934465001254277586887204352399970050659677144852233870563928871673748660353822025879293630633552772761968766595470610655437579086568103574896878433804529410214515393958258880829114760609998524907952593434777706763633289128445566302918534172636490040566741107909125366735882121850169042945260745554591440702670427191643571484297713905468339853131337781281578963869953757011273748836198571652281070374144612218258575725645505577048140363328142694587538686800752263199221413514250143439703925223538429545538743842556992153631960065078495865962507078200623792908042978796393708492671869341033552676684021997838472790879871424286921283552981221915174041348806990008694431312230280604676875258695107617818780384468821578638827461239516040508939110921016290845560000555845558106378000809924200264518535414353783773914284440553190859777474731989793328135881409492682787341866870772032736299643164086424560045500356723791345248286785149849513397815710336540466750042631696435273350665862133812577745628153220843346103245367699136128100010040081200958863812536889254664325857427228746501993551508677237518836560141114961993117474414063147912925828744086987574971144925355340199242028078651253296876211725758413991187024336574765065603363641720156024884624838366810598106940843587397999024810681779632274536433080278878647106046709016632045574944706592622610075431819195180194001608220850416445590883379869898124113689186435110003653549211013378514674925390797687257774455481419002154512116042375080774140736011893644919364463315764622900167198430124112719049139706922068168234334107569533979110487138012482692170718172942191330611996171039583826972511856466685723989595824687343286342244304728813476634925767684975969429975593435033152678513342435424778369969868445058599764249845643745692372950539462364439053597932208049756243771479665231859822976384105538528404425311861645203992301505261063777418286976952362292755018604491352694297140712555245746012211009783300793345204751157311114168586586036151151203659615474657181487543048335997096273257682192555996608668695860629257009857219737593235629763959802706432995712004346069503537966029616273568497145598721666145775029883398367946013754875454489223995374708704509555593866567997964787198520739534964791743568010221583441226703997686957519064729819721329007649455879250167425087728148963990317028360280922802946704596050026174685099193757124826948829957793316163977001952790799513351090782973100963541868620331396059589322675260736454891026729994708361506961283695826087610059364523696676885278047217498061043304228858145849547702214482826062795877498297100624562069326815630740698896281002473639486871381701502475763005312733615121996682543680532296693698823423503910317188212286594901875408535222937969767557802203581877027588933567198909253500040324112037672933798201752536893918328899391109676540584193066579882675580094609300759039802257437023640561323723812812040341546414887477224121353738978547412769681040445990623411797238136067183886812264497555861592363327656215896016571650515079721686662057367559771241285066284713265306431231947100970502505075510741484918910498766596406383383645519251698222243713040959149743799105754953043587832294719464362213833226181193893300292282383183490973822693014454146354422922518642424742282011482732363659886611063099783530715067992762223219830789392884294214270194913221852663545187801489328548254939924908949214454894875748164082083843310636076200442122021514663245616470588371310473533781744116539002923904561892176878373927437706193960847501173939698323950782154953655967753733425000190801063167143299481582321532109518443667950939114149685075163813816112250820750107518659019534615694004085533363270241623959176004313355064746322593750415657929865447638406635801515127636806693001597517389079886559357851302760530588047395325123944576080781271260342208922397511489349324902635148099359750523119025728975829783484994328306735933720361898501997312151818597782003662865819114810182256853107828377919850190093602585462759882449672319316128223494172919332683854625018889954591670180230626275128957635375240095954281082438063178828440875740672256367756996517728751964828051835869020891486524211532300778372788941372312325044307852109576828295961432592664558077724216285040392040225594399849522782990214230304149690948224684913500350417726809595688159703228433389917990902319878785664315373224263773464987783034548653936636376997436377705151193807179932403103690495648165616513478326412352970694278251580956118090012091619245258644850832997504217190501105070011049031208076883586371689583069286477888592816755655474669201557336783600546651420422015511390185862658386257595407469310302989833360539249642544108937179342851323622272308518622909424149659026848627257630666160039853477120809610095887733669281148598737035879891542539705313141473409011888167413712445744205710828959715268731676406617937617785878393177680306017458345587140357345995177818123280096939356388758659514462152230716829582312651995423640510545229957814212668237012353284159353755764707829470793835207246526627047726653888142775363128563357640211777235213774472100064649008629712987219936005430495713260372263828542416628900128447539518864981671593530827590511671374036238902168393821686149262658739670164416939555336389300869314275337491146187318868621110638830685901440156271902126810538261173487496554502733247149404583245224944354252537135202227615096239147508766465235057133670787845889081162622724718251989169039248944743940267470857304143593293994142310294436057660289215442201739828345332857871223336385738329652186978492988583469082360352265394611306667957966293247753214576983821191433033161930718574459059846912364413410123320696696352659303385705147247062922330238548304772879507706950577556948132146807603964532387858563833018516230765177817170254477419436752922151873407349628975446416806745437793625943269843024039018443999851788497609500745934434152617164209908410868927598430512506659311375795109468693886346845027354172995383481869809467437662530202414571327837930248984116565180438589432688330693746338901615184854414568464823194092834878176457350878304633830404943175956767323322622689507748180175000231247371693006398837306347887420549484363819976644203942520788281257045180569772972840883610597812229523130760425598798178280559080661722206576074273994948949421430525323078602977429757045228083955683116367513876515829505412641217495024292833950492286344526212891200451196838254536645303482014653094453985613372520515063393073164461479940468556072883246757282668970882536665184980222876873834328125336702948471024717477321540863221499205034572406281995844169571247598075862055535607924805494157885478683425543617127360721977271972561860367288326853846106499120231404387536668166764847288192360628423273281305910190647152323171201497052723929729457571262066465351175496934824700668945652272098363048048616816643610336803172503913613927366759592328788191691299647384327644569428965466044569979299431365178089826881034696953554727038128785991199801137080079950385747892297099779706880975361269836354597526930050134372241594937340270237369748890819802142356869463463389127424408917114639397297070358965013623530290990507690165966112818940575817583997982988430163400559692504442165088970134765400831658202336447139957113334506440664917468683251206665389740961978477845285666267715636965181621758057530586805565896492832871978045275353844485798866545795838075793443347429431364886506666817801555136698041138318452501013107217590627998593866602677590228325016687075117806304744109285859602709576579915745578637137589528846357102881879740512353842750290174735305385249562605985386513318694599953429984244647874441637000090886188419287534015379693129587602060076053885969735031956961691004294357776471050435957154376935483275958661139719239715944435438483962633435043535581508842615664320284799278750817327473098825235926117240095352186987021218527040669895814428885671910223273177868572284157653986839052436939426952621693319430149042621025858631401523645807799335220905240855367764032003513980741519253484787560853598973290981632627763173870276481481615368570895334133894779688374112458311879408006012638975027828531219734889515521397082276191353794862392971459641533951041863299509003759364035946458822269657821177202539720237790408254795914152055229980626821015413990923754609033772786086605757003205243767583469772790951314851989296608856976078313352727407037576011228008720562580190025547841759593740012717573756772202427428615928705079056474116467524242858328591523485615015775307019045937621451343581041447400078446491698242683940284994544957689318847424621460724360049183958823439512505947956400660505859007072810283340609371524054784019169816243108453950571386162840215002876534847931016410192572113447674166347973721325633656861718657189202729714375836472060265148450607225165727416786043289398871405570557525464538460385425409802401005329106769093230843705277852587668193127861856865957998824738541333179240655352174828067355034739469607339815691232602334909319992924102915965879709709528369555253534745713135939107188823840257983366244475145254351636679640174391763543323246836191921928819687673318698635030201298776241504010454119766537713729575242891683803783605348342071206298881850654687555379324625218983368002230039823923285464075732425703580071643236654763613958859114767205280257971436641394691832164179805413799031922103515109468163018194374437841352981159089789628088905656319263757619177935630016505047990191158641953794087695744034043136209065624268746456396314164449490680134294001270194741262210563977442543484264379978676363644114140708639683757266958866693497316274191199964908743815436667963029790645946813964471507769550287814458470208444873242438583916802705283776559477885372855436587841920971850419876144674287169766775083097905864179117774202123295844073482068951198463032277344714541991853308230867906816516847551264675005723375698789515468708414856305525828123445208188310550905681587586492347236482483901433158128469019125479824835287131134582803769926845333248857933570774500937920694471069732144850495357080333487209057488200844187897035474312502615116965212226948965930845729559344543445333421608449954050638986700805190431594586552972713742762228899759743739192732061159900954012326142873470570882035388181419600152354321574091465381521539152934378134226149355151953890160488839450725302945498119607629941583532412083778003213991814283913918652119337936016846426969293066201938408793016234712621979744465200948770101729191322378086727423766446862459220188560179180652451548462477706803388617109735423746817832280229002496488780278574364556897680740433363998351281763088335068428926721751022364663485267932564254133986398739479482982595999465987763670147037688323480500228882305129597692057630521619320444230475414563587664642212473319779882500708137053832821667218399878044483302104080374788457448473128821719558912719838993621512344771720125487686276240280252359244535387491308340880349224693234332245074444792863340636782377013368524640217526900157119579535382868024081401898169672576973472433510038241340271933903638054703812702589311324160123906063226312902655443543153484262813023783495337254346179470351489944045384782831076033412771818094195560709843908892902358321631266462135721698667470134111861281364673147137556509568701007580279681936293906288041899713506675132642531803841762244911217972092051473868958221310488080326603261015391389416868924988679239561465337219798692289457950771024534864170872031739257202465991463949237252530043795340478265274759843319399701112021446017525897990792028728559019730287406525451747149020823861379116769439789085524452590359073508926921245978648512703953033833370911600525877565599484961629477873677659751247712693967795363185930712977921079873630141534556900641543978696925205569554419407941849527678161417026533904173360826236837552966584024609161890836661263413758653550923357259110793867405977744969645423163865918637089283589889276067296139404370809934561967746730820851608841723770273831127198428390205223611052146240952002079185543907246478487003120223408987959289407428559041145542915822457467511525162734991946326376311358640203146324280702586238113995763690901766477535082841979133521801566932806271963885912363097306344053612336309505415223973244904075300300674967331390780176093981487715919550908246816634405715622901263271704115743478593807449645897809622627473156361603212519081229111868098588080688967965717543758437393065700001460164669938207054637786470234094042748405508823847303019906663748200586059373835964052928781355554832614105952783742869036175657762729332158813061072064447563368634472909576267612482081538014183011766338041382513811181532356695138772103866269520782765723687831398194218357154534524170746483714405958609297957100852696561247074761713529558786191975023288479971688199123528289138072324550314333393390700597933421123836515973677667321174809652525210420961424575206860088012586620189962628383702578485300874560737128838395675241199526878042782527493911707621741054611230244622216529393529863518619295608755123358097837326373098531085212783625580295488729418013783233745831818383134597104724386622509710554117809211407685164741389677041848458294925041138223837973719933485728231098019559491722616304043819452843254978758907435860295936319618935068436185293012576383601742245351715943701029757513158238332329706952561828029610889471819948572701919384593796527423760419797361834229594926928938865706852242983458565286101072077704716746133941618650078559683110680294761677390806922166721163075601381837290776056710934788424001416322247645904647877457897578134491747498445016334813730026312610496985939353768399690171101013405455537360797346924530544005809773898323579376365301490226220203997170616617937960983558386071757042185900063749247507984546528729148504909014156812490925442655605181416878414926967792122241861955613613811441870136895075009664206273400666587271458132346432257480227519594510652721553368022400720133413382287401290646919251116031614160428569569521383535405860093662141008421857950836129084681308056816597712185222615410190274837747057423841874112418544880985080705200822973543175978986607808755000886207140908375425421866191498607322264706577033669649747738056819409230561780755512874251733916813876226392078693737017820832757402634969246762933820888404167245677000695928933445108588106411384621774330772843206862306182936770892825896158749951670700698009984494768323067320048132745031448203579312949282948132006045051155506700618307975230433692300138377276187935269949502515578747463467437589373676950266024124220144922626508028958817832815260347055016841151092785506938206398335908694443662298278583837951836072909545168745119408600800691216801446359137487057365218351519376280356463691073720649278361374456752897469064154662230759055051104703154148489898370467595256753119687227579380991125396904014552320067322797706609710138841120736850591744834444873039357650880926701634990229617056748561914957858447277298642885677487320222322541630309501958967731492664969204666281786416426203150538037978578412292245793123991272494703735350949996631587452840958744143237894583853441634585821765320012688144518888030069233421073394872887179363704009979202208016261854138539737540240562438909545793893813469433825610188586958631333687895070418297590165555003278842209072204341423969803956722899035934451094784028333089096396963428988457921377861355407163066314186518957241806133076490141786644558964276745331784904985993800243210179766783878204337837054447166668291256820237738630849857244269020221396832353807837915576264107885921150912482741615080533058754064639237758716967528028959243402173430170330694789679615143434618813647622092003283308685614086121274367907386777618035081488192874240991064319824625362249707379883441723540172608148472300562587810711805606906350498966711020047720316801092198852411256341613572766571364316868772656997536571791033002477448676932776366880383724482346294440302294575865349149220065639128669416958974803910957170744681578800260907302371652507202170542317156071752801142308214663406308905886712099351688093487053170619831754626767559676570125544987955259836778710602899435819083362144539538657771169062917242296313097036441595623251228496608773373221520931266527394878439949856433074291725799446521327440716441411589030285321995837838319959797336220844992030638984771081578712079534004588688352428034687601657813192165423964890086811294085040536400229004254647522957645744377682717673356374336926534215455218072952801715586170464732686961937047975690341292287732328884367474766309900501128341356177541282086994224912135494152465405055679881361404432361727851221064230181869219661527438366671472900687630206296427649162899920862518982310606380386806218897845057322127645962840658142181592905718335395587966678965580301227218048246504898782271171361499355129920962882285119467693978944658322821242803053624641963830267101751479157794284589347065174828846208146071367884906609119779488822838892192940170940069298909548052066456453663470219639328975986234770203595449481315920279841148744360104269198950816094612440711684660501104966412533214458646549122189519185440129143289503992274051736025588317668445847184002235914608830869001949270542627430810858752095724799234660434489820668530931781928702294525403682872372807508396314521506092284659279246874834741220779976639266085855547450910149231403283905651747823614471850547849446828215588382051158782567421343953967738303025691568148929189054926154002583559183454594507709655532347966376804309388043112445483635133789855234321688553156110606223744687516698057891862475910539252597333365756715512528372331593718333400269732040197584013016145533998427298610857600692583810034221224470169520054817763901566628952469885637632690264510172853680796477983596476834989966348360207161790161267791387065697017544513570679994334110113701088019923108783418247041847454723675765931303669173820015804345757599258719944262836418317886741322387499024017420295359407471159697373361979721625120433165294315193215475477820833387957324561405256773847977655862193307502480007336238875460635078960498938343499506376359390021600272209493932506492254871037121584240812000564608946588457509812242316139170356305810798970223118096567406049486716178489985913208398735777087539990631408851293066297988576158198008995731183730825823780258784140924523883052153527047476440046163012264835219770130721943639018917503190280313421132524631922035797973259137253172290543637065035676039510235000051781456426923288262982752890543059169725445725515849265385477181945633594540575439980832605692606801227801849046865066624029247744610204234015945229111170494670868078029961517369973906219950123020694750672980217565790914987445376557369197820707840821634472253067883289843929200220710589733549436466500857082002598935910789672903219209118516291814281403066143410698866589582210055996978418206623444432978110254991141865036741627588372106209838918411261506707979127619165410109130875417888768744019494163481218957212441696374594163628200148601607378493158574434629482751780237544570344068254130440374384755940611551775098709234126370564048037600200000850602091550830105693020532173333045104117976445977544573127520819580618156482113355367811490856853051741029980760406129317095417595603190399472381718154143821271437173019220673978788284162101808619013537270445682595692783809631777295047005190524772284626695914207620464255535804955399897658898770010980916852883373157906640911411578976251181627710589612304542685503725377261798680031971822316897416081212953945427129704963467474029809188078566729363912759024655675160174376153725262693660063259012959332435264068520524137783392300557100028297051111330991566870502397867933657527138832074039540807461998200808712426225735805991497077730272301602981576376268346515024651400957121670327254142749015526702197463699434154494156697076276168393358702698141849585151707317368396512219519404101072061627469536138466204325661570109246723464105384179801753315092477185415689713730810472626259757039685837238449567921723611624084958343738892879915182940055133643089495376638031983171306405276095680673022935220229170381652175027547333050718106001157718777819936962700260115015584936578942987735649814169131328343646330658048350089687592775531280590619151978309184510062047354387647452315952353492672788242214763745379435666396039775252731474071220826053843866834922988921844127979761747567000295574810874035693633606872054904047606259206163275655222113089760246154483529991956713773110785400469172476873899195069020252681365968749069318613014419852153096908614032461212386904749148700076933732668405315470534537527878803236386439043550140649358563351373862225294843358270635813666012056644789641720201969053902279435750419724694383485054479076204426455406461203016722584920104624351277946938237092494764826449109622894776824936526658408507678481732647217705901662042272477556721157382062634007099841087085313200617470106082599065337415932005347501424047919267034653768005405319582228016026077083540789797393713423742684881022765602655530943003504811627827609832278423960123445332180647392210630976186263031743013242219035408357707995366221116893215698897848500615253237502766002674324529850680036618811483907862757888481078314495741174233560298099077945481751116609469237537540388242700976986221872839313191700680505280297999200413387384956767517958167643944053924415662450518386535778350088469308125242302645824343478983969619243613940064442812794079163543089646095978254799567304569256424110347189945481758777778375048712058565285280407606532850340756500554598662623344052863453853153603545905558764553360541140243914044571713263975943633220388264496883257590881653348251747945813148476391129562197720917406252565293846553807001174014050735478116330050010877566783472986606810201451048129836693784617628830391800779500197146704350735396618283995659241065099577013077165290286384566639409502765660839700595041293873708698451075730239312593182805058661390566500576313378473702004850946887416863306428525118801031740005322511220574639477094567429647957771991322558726216908185273289047138252375024206525427179322639771775046211283486906376375713521119320140529072151053353889820514231102499940323492720718313322871900546759336124129704236211698929050827430877639728403159461807890842118117035711396726183845266647394862467789649831989733845681710059994626188499764664612218237608864029718881382358259062510143069814819106771952818579680519215384210177765146879559191017388677417255179057253720092740418388877920944004682631002175006213005876453328109323638049691328652012720381424537764592280228053774941791188618067306503050651691002276287398452296279902239364431048875650284996348757461124495710431771623552021332975701941603366477076408872840894365290602444651933721042382098877224930312482324200385186946050065691133923710188973495512053131137875770444820371009150845404940851631630907347029483340173782722295514982193311895501851260933587566527907005335573967759459938962125327336081287552205461245107288065964276416277257896612645961116638772840272441100385679996157179101711397731595978367681970042367775001897361074203940672856006741904268058156762475351471857664620506542152962745821321724993797778334322081183334077128927699555705052976857057400612940349665308806072544914312857187680929838560750485569058509559063606396898335795537168768697033962467892456239035818755360743828661061102773195329959094021025073875079854119970806657231173784624925105853378123349115013386083387912337831194028331287441896462853841975937984623811434464163654615203026045546698871218791633073657691108517733229098094047701636068844223900233787416481515427443528259705378341456023799137701965165997717198077591729006790662469279007004183023222108476803215979509697112570583895410176376375681089259201305294542655258725257025037226577131071999776593166710535087006348304616193491084199559786567953263266916170777734550233777863204416333989792490738338254656169455026744512012097853541826445100375065729772608070056183026407309104726653440909262952759182032616910100794877160067744967836721969432586931766302569730086895579040891866406420203920688179137971423475641237300925530559969230900828824691421009733099941743482488944364123430764890582203193853023933974833649974313125702778190279485397417234790555620062523621064767910330530024429396674834928301819484991126744080930197561317523118812855854254400492967746485944008123550232752338448015008883094322273559918917552836180666705963400623564481586954144221906988120374567786719267846945426650708852289622986194036426937092330433043866117632814065546585522775789214591734907496339349623062490400478163492631036712259540880101234037150170104912993129481261690026011096452040558748459647772391965346518138211851667709238879289379140696479532472518517092670693757776725667305525252724873614741496697416544308404587628194955688752532303233930336519258817223816889571645320141723714041920473009785684553355591742624950465123959064830085052262506073877336458085004060263104731920026799152414767082123893796473752696537427016149268506719083637936153971965784779891345851950688525433323502706821122780877989383444109438620771489331284541973121155863776558477440126096309835660317765374680667222377346635100518918095708379028016894936870139411624228283299771204225278714653382349796445552978765934053648163575732605694864447060064805399302823328898272343966587087235690195676444924109335739215050687914963402350499398665700363213200449748007129542345150840984787924164171638246414975638784398769370447285828236358441646639309328688481084371841432455930745962947901820574600046455439157135134582193206698994831795976309355080422928801479581187569403088818962856652339966492973024018525569184328737081157878589275303875239981936450066430738936803650742923759348737478613642502160103880216792201977050569410833446158389561016043157508539494134687551695758367256085114621541918281394021851105686675278339738045511978016644184780953717378597140608419840686376028530109984224676371995091838744964058475691117175700806794677772703496205151001956232973632849804724566299958114506355700527030813981555414870211949439102361438337297759711923589713427374435200488941204974882070975130548238824858209356749402135839992512388821636755136625196902030256187582754050434887547676971899203510641795259514818491780069230185684329388808504986671419591061999015812155052367698416746788468191377360675319270490274844272941712505070337251028301580717328881728475727633916956150854601889839605129806713833748944394738447261936110252144214335614196659294483176846190230406605850951880354126805464949378838229698678664404077533176055843860481547146770540359887534352860604734857222017050930699046731053447191107202273153935154012301385595797129344205230126887303369869396783480721803460766712189538242179891798726769935207498326563250107233267275642526965236324455892029536269274266236315605607184910727454876552022181730235247059375613605927511813922802683573595214462485010592277296898990244910223192369414031337481543829824717322051051729204444434730364371496915305528813027253968666213767808722352587433101585949522256858024880593783775252147118766474067040049661498597988607367746890348774441389394655301713028926703872550710480942614304214514789826453320289433695737299173809027359438724960002955136706745300967950105467184488702730487334590417376495054325106813171721273492347754547357027602672419634758190691754595221556027490952544108715826148682775294540523582588373322223770570126822809799880979466135374354194705577411594354902230183972043380957841898255019702360526890407580200590706449748166370964918074759218601308701346093204477326570379115010098286079016321754142781157087334850783669764694633723425473496359992352112429505143484293495354154062009151133202681056915055651865385610345138734167140935867709658983153500471700119308972511811944780263897946546764592686982651672396864908755932908411925841093549534999064702208855286608776567119268721916262565487505635687308806072285589825426627275004966261414363121057679373461092031198733869473251641353564063798214443196259545552364321961103642396479471389791378476740724995622286361545957260678787172770999992562186500698843276096817753382658082594327827657321539822498668481729961531826033437191323253648616181613212646669835772476264411568211785598741560279113843254573755804191334879533993717526679857650221772859499853403680636329160520700388153611390303294970910867627041199109935827366925310018696867856438644690246687029053536645781970300621531892466903788189798751898206982288535876997234902074667233827009009081911994776151057744541652083176039574776919171335661548481220007969796835192310153197862135571765607276307834622410829992223833803584052738295288207393444601185661044484154172366027638868875449442870116619482178015865739492157507483434678922782513836952735160499899811095707277715560217225391832245789065297803439707041769736684381321956141813265100799285405930735763510182983060566696262785325274225641634742657310795102853049290156607742010136391569163886699768253351496892567473411366886824194795729634002316056437885242010108692988674147614411885089372776763919580343339666146713959044178451311644573662870374055585863386677645053466739717658214475829700049842870274736287150715574634751157045666784929533534926837214759307617855611304310145361686318337688750096659440434438012368045884383120887518215537921938014560915751478689829156470890793080842694227594185293104511792382340406814535670198129359403210575517453769433440603670671954488743058283932663628455643459399299185517545758559535359060201807029069125947075149504519794809845716446560762679816353280796140219566695930714172134653915336635583895038198483289749348109638932046441352108661256142874913527901211316458236878043420841002601065730388045541739790173470796801408439388716147036468905201687316103842770390909625198161130357206515605137277083958592670465230103902501221061687007587912653457797195564982620223046397580994405338003760745748459221702719685942021995305682775991380792710315237715176242498811827915996658701621884590708867923598093724991145386608916161094073948970574751545449594012102021925362315900849545613070705701205145601533851558039158676716557111232516540849859487634087795537067320122652778362005093731680269519158920432407150817837131219556436758159804011820462889312435816197578055084859921695996925208992814878281182478379692661094481860802147847122067695286384064908604797652594856439628843943729628850705569333412243127142933384366386997368583514786721853868106658240525986839569192999630202328544945597298768723462711743613414574693425813037853012891490826933599285551461248873553714685848824798281232759456420497512759789693403413530821731823189868533825529827400753994620525008854479741448496358692933854220651364749200283780866749892450474084695857262465097061435955587516672828801804698494253490568012091081766665135814771870741597114644125734275178770615861488360353293246437991934283691077056996215546445379774452433736203692950388080556972487856198688343180195531564740742867723924896311920489130559873900070980649706772392970004902542120521596083164283728522898272123135855923807868006346396376301050119940552005965684747365129298231043847296804013644359422459301618109241392538747199999312620273714765138527426760596249674962817961541530558135791074026280989355515500719045346748444036889757306646310053164869764900077095502324768007455565288956665907440892779676279822377843216246409763070560319887283286868258024937780593910465169544733246246713137761558657418422047857341347442822186811367385374744976891275892069611408313795191706160153022116343599503884237123850084458354586296679569546264007705646554066670803207971449672243320913344775925178895773780769421410908563959489652304669803982247500630892322748949250645638986808746805887041633161533081235988170939082859087188523050921960357243792901030607120573198491378898449910316430410607882569709587665064534141131108823069420971225014415198584207674235774019654255279712718586076442155817364224772025241578839655719306126326523554780478343993042171994741256165880495657583668029958586066197487089827609580918647547506177312422261538132140970545111445277014314213194715953122781916774315905534442287018701187457067016393499945183789824257797110135702793558608690750108513455644166470957430448285025523412158487339949986456690798633846364756262245560573018285628948130648641734695714567963117040161491570751950738903439577310349471448994435773676001620653961194848482057303021379654937333023502723291510450792187950800785095057551243629478514377810592137247651821401616180765391456013568400447197455533538262270334444538881124462031865999147153627948275898017012406202659283060725545358488560143541030070722563407990406926745545907107744409460186640084024444616787348964439003953627939626273318454254258907003502154475843789846352507510701278422874468112136295146348872439676260126206226297499556168678111462786656503911253169996500561349474107916237862009641002467641261672620855559144535178879986720802319714716830706223894557156727564525280609407922746806439039339644051858716810876688002680829825887763319161264018299986707119632666976103297392413421828569638405620229580056907091943245705979843437226830393493954384582610504645994866814643068406065406196605333120855716799618422947960346228616821508856582870880908245534272298381807913367159703735062844787562638101541152045360270831770118600377613623123143418474434142755156708800065205368032041353578267164999207764905039349783109938897187473053805220813035299996611760480624379346823658686850607714693547328232743309869954683262192145950506408601595288268237607369485090225089835331812743482283384846947190945262641275067043706206158406629403019301849964503142231966167549836072837897464939799870874155311613956921083001214332406617172219636960098673178381824036067343152057897629890815432634865571106789377124323894952623177473762045975227545245531691368564622565524456682360831565393731661218640372200999314184779305822287841074051660012776790171439428115547902107269655936236258314184440565049651680265206841424011434272158776330976459668764375432076583785889892036756919381311663937479726120694650497770950911618545980281367011069805271982016710555283463804522739018918575267094476767022386312207385110708411770991479521302903146642384330425510213115674723461049791041376550094326135044599022819877219912201529361025722343995683824453212065884105716403389658734321258300951655308574986351594179028007052559289859205033047884549733839244252986172935763319314119280241018582548797858960563418488684878336208426355963762657565746850570279172378658154143810415040184393798670614813898747991398359852753432213090688414877720008374579258530591946759650621501620334956948022127460680853690340277242139183983072497321521643885161676097114405035017684733007919821247167487036893648449176767137576159672436020194085690837079757229675522274955565836901413321793950099621460354489030218548470220228777356221556214416136017262526766913068920168227887184875501202259614735237206932118196976583693317267231684405961629035629185364576167854992298609861497589956758508028252489210142633398492078516416318041034939833056928586079373204495861822251497407188784771657218001485570674403841405933784680199239475363379607077920712780071489463773926909488692437862130768063678898816550874748018523693365431220619812524214559427620969370433802092029292377881724837267871531010721163530957171259353811644427448622297884277534457148307482500616746013904805461366519207126809228932543673039462928595453294070205613127503223115287818837806892748954012014330735613021138455091198830329248523080025434606110684583330316126321136747959418879742611074277659123014592828057436415090490238623228411326634945167542350164295493584068509972278464967058428803294517524089255909198395346504333771347020437345810408896703781839193447199458033435725033193624680859570629084780249345098825414171884199565954031404353092253501491202053722878114459662564290904099190177628247713460569567964624715887670496043297732960429721332876447459756166929265088026073779279704967112398704464888951344840748388900861985354846490244789844285510550617946132509223207047139457443557842925400764830979425114925637228048282350346673379643772327049142677428403865996768515259137199740464352099344676034122147215781238419481458241635534765343919545233588683370689265393981296341831011521643151460997113769576372032909779392334771932646179934032775556752059796590251828194836794548412338920177310470255092370330389812515705975056343510218387711977046583403590136544839939425268591417274679699269839185784446721598774858037850794830798556967300465566375557827902994918368137873400387862922911233846451628555508902932046240870287429557344036713202070031189164796184265643317915725766498283332768051401156243472772313811261608099229459711598519613743049277409717331352355130318752277361909772570338187985104098928520626435893101788836259820736190374252891193598021762813552212850282574591471883793862335539454639577366848263467742641047533720087342292265609131586156532172385820267819938084267370984592475173123954678856722185598513966171357745561496555817409225379890179842996433711192406169306946852029819187819276144791429267521475879986771887525514894042298917977207337148907120795362509033129875784374203116122312590588784060367642615086176244303511614074946469230611700704757337219638516908784335425282939275542923692820496107682955109777987699208803155069887336573973261985328743759825463912555022179576036042198052938042727162490909738346571935905423599018323364021037908077166316578156140090488882382124485812794058592612442849851639827385655010381637376108856699531297505509786921007257058564686275309564547107789802914150557586304235586083955380945020129974524346535873127014693368033373505662826320738010028381486142470072021291927481340374984913950620629935677391536717509078163231464145305451633869202900947633849689004920395841951895902506168135641660948366559658922331990348913072981115863242152445172836310692614379714458890098725975786679498619090358220817098618125095236157824778457978071173810643538971078849291795610514191357012924307359838173479743192894300316599923373712411683039446882218281096537651497586643698692525114632369347035158360513107814991559029545970245343380670271473197326962937104812448568187077891742741037722121568558530933924104533262051920384631887123301293346029706964014265725599815463785495293517778649162447819776521822434646431518632909149940790243259185240596595494702589974854341786976373472680211929108353780690585513455955294521556520927766950685407399288309603813855250108455530893957398773519498537250820874395932624872227975031696039295282740147501592634623030501973345792638595121495315710935844996406381768505142587292089464362957265565779278598196875251465922688324730254118938517088632812660137693332242126873278416543355855268298567465801000509429489174545363019673994493003793199610008326632666242876826586183513690846567191344618034944870930821622298318321338377495816559909901835139533299575540728036484784251617463567445547578271661340486533807462652716080493807527138675996638851205502809752181263034981957757929971285312614681584566881796937856195541526315463419549234044829821774857296331066551524987869684621705032557713407766306949372204438969530564385566700069185367305719084274712406979977404768399311261702639134800310505896060418432232150833010928077206597081088502157835570960298146935788912358110618431341412008058608859249119296020529007885331085819540708365992141789851824667532622921888030100871645288262446989866098195434266595694788978152532611433188047385281872007669843432706464670859938502085083424941723214999983237566712111674952404336897120907961536346512885100967120404290567582727613706856403576754011031460300049701359249868716011230254569531843830606008120810897804705252888323590477214045374795189971576129559843742552956338127518094446491214156336076681483340817089287985384472857162514298015860772449502826306521195115169478423954142597823433981467061498386405078069130185514279862264954301531463475302284344185660948439275284149601647144177989719252368513603892812873139704704509732989245562236694124762981703132965560840165579042249830470385492489021516038325660191569076946726170536900524235343476132800890118186899862443090528136200274133912675292361536899704430905004513548949540891803907818828863433066165658515080038463760563812333841608736557906154584916614358743876992156880903341897718882062062661892830080065566063282160739440758612501334584211799969293056314907771301406852888452040503496286340986769127595505570301442729113052323057463736370441934747651947231973027285187490662869381179926438535209349400728192417046730648500150659977436393061765343003668287691974734611001267597557144535442887716826914116694763647526495933983413968501884881733909400274613504975392707157226466082423862037317770287184389760610112783153316725844671273665891688363559012983546650360129911463087261753038013945607464974451767774147423337666570879772015373902496678853382130460440011118365680078379828230994844070481580308582347556906346256178627882616008739138964983113491565647930537734501337095514226637413323424834832057936494525431076315962859860352232273555610208634550359979315091912180203113691263621719578710794239844577735068118033983200199645196691604965545626379805007983042393242711509776649066135362917875582384127784201917254201952935943614443867797132369665997495696702196667787792627746596511209135818844473145949788058056419531422831150164533632270492973640701586853706452634020739319332755524904219354669380000427761188019395512700534081966709784532725290581315779596438742396703283965003169273053182389315778897731351017976577643240224216044674619818497972191603139471171841857133200534050356306802599835500923044475910711729561750983361423174597555536907482017399665482574981828143742191514785884358107594477951557966724968879977725740372509683450269229390094731983140141530880753313117732120533053373079880636831889061653194446230304624273373504652000338126843351265478903589808907585780123369642697277093677244914467289952854195482533215762958180122524812169345290195181508192523418347875146965009270903822987777112930187117233492569761649815229768990546420686789525236615010200567290879981273817851451937098507328134999873601924791680812936744923304537680240149784147316680510304436637520344145613273344824801619558880614341960838064922977453817570583845731238120264119130861646648303611182433456895858191631119902500436649962062139352339181229768179261322356379063326655530722329440035922286949031011128353093937611798034276372009356554855594967738565943229964937335405698969418569935417972065548436118188464016014016290656925100565398327619705910711850459924966945511989021957383718709630349355067299803495876469342528833463492696897629350238641215948850702871121087898466484860206833362783692385952521649093255080308066685580249599358931588967416117757064857351542963906292648578811724616299547209023567292892020688669645663316488444589044295110780239987659466180776373544877521855044062128451609154302992270327932708992169544360050835149175345907732703046669289965136955056000654215889429350143371077827675823621442773356770335771707009116126922896411214548928117714277900608283426641497931777789174331264426327240900942589458133463854152915083654916541851420865074022035399726589105549673379241267449197362764435701792275526650271303568081742682343359021472136934239264677251775083422255477383932697470177528624865369695957059062409271544656957847336296933783940043639614717842515871327838194427626829646912911744667501990761535523301709318697674014684796128919358399156730066622288383456271803286087902950512267576005733872139440099613648334363322235725340002374624094877721336155290767651838417974091224440614865665307656523485887942985051565206358227276511160318040119688834124519015562483305566810245236726742968763210409676539773680279902241012707221747911444667742320301367489540011522349282675218178474535973699887018252538826625384144455030621079647756128503458302063521013324122523467254110739872374747520081596664971771999417628901778029446374896679807900471792308711566734569281386489477939866338794598647582016547360254334994107865471355874700372731107125704780445452236910009996596352215186086333349811255939779025049562765295609311272704773212900144717762207882930613102530561489934315995149501713682394518977463307941958030095330297956675201127286557824639053111608443227489523479901887765532698469190180368179439213287795584553580194451348542678076121152032093788818768078944332039089797001602692562621516888324549839516378658496898547115557213785074392969241298368980546924743701534744787327782185922307991418351051856383154743058509939621236116901418540517542018664289275797901937925767264129455690849093053258825077401345270353149911758268169844640361183388862350974549225478514506168346878433999021193991795584861674811319799320518523983091946733944160993878620339681752452810278729197554711780852742516694358022591714279319452897283396795472138431357422717576391601800890174740632557953636464106079708287642694167475746664083810822660579721408135827561122243000038329702790874714462207973186965522678398866738142179342062968628849040937325294891379842206713587993980527209713752300376341471030248924956891988773562635398896726793815899194480371101319223671835273561430940988384233898964674872313610321256938121790615875768644141184747184903992358911862598800663144173213187796471016400283182836811467420005150668211484265105930884833209731175173634731423868493584378788717055836041755045069150085860074202017163653217731561169146604481856610464861093744827699237577387673958765170229763840850162293411140231258228278432881171743940064618262583654607117899221253514476414046399951207298444592653630610945443776074028480350209315550721382108425399591789547688694157653691375817989672976640970132617867991485748744095536165543711045129091623932632472138178058541099040430209829025585676628035130242422883699625066918552595509771977907624430703818758209907585817811042582119111751096968322640192713704178398136606452404030316654781294275606440325291527651001583685130369712619864969719499142972483064633950377239573281237267878922731854498858595467715981346522713708927515910530471838259895841800433482122197408955962096379946534170508910425510826513829277315475350646394193832004786682100877806059213659571489932313045408443634944000750588442979549567247496030680083443601954440968931371501800110551559352707283960806309760743164575975974810868277239067480088425829308689494400691637415760247562960288233044138545476899062874866891508060268425906032772225758935568427001549206181610541440538369820583121341823227593776071795015524523357816029389598065619041742779094899899625710987517574841861346137301207157371529594334020652707570284040562982930337574803138531858688229692847611486417332055880439389664897192423826650220033379025273339871322307438339986100271938202501767962981001792782848688915417190197539938328997126614829859542331888979851198629681796588315954199896828932411294342378894378644236562070831909193321383020531097962686391545480248137609118240935296681320372962858554739332755279202009039415287144854581583183546508026714106741054416425887327077999012969367395132421154912722668032213340299110974023073366626034571772345577852544787981784564177754354415514859084973267921457407942602295483336649775531858404770549840716142419541557859926264425125695418371368859519540431159231218598659760004378783548370012174624383297866040687038160876729212984499188518961763030106073011661624880335941314828662128589365398440302208974375430807910457575722775146355237368447025738449686608007133719810170521838777228274247985024706831972017599235050384885818630778823553229530961718585043721873618637026862544365120937642398804849813631503263881257638821280744887407723957230290447090375742229560131896590546368772836973024776938388422529965589104333909823962268822578008966592851574742584047357625691965667070875401175578124813001352420629179208231690765215116085992401460799702066900998944631324840880704699387591578207414049448593958531981434567836234756184277663385386938035305676618758932822248864543202251818931971749837243326202819586572665782095990269127927475468456367484572322406290313832687570294057707490341372591384072831382329367778220831280403872218878096274879277266019918154073988432300118861709904355418642110069132607257538678155625986518400606915972114377284414383594079446234411088311644914669363788858785027910764857524798371250103124661262572970086218167344832194115850857662776796137657885911172402017562387482744870917885182587828813376835708499187042090582311519012479482309229211583516368426505164810166209782626281875841093889755117843680640007344153439416999121580253027169170632094529441955457750131295488253446879376916376911101593073556330468691120071979549456195302126109742921667753992650519842357667676426870639448905182720514790058495082438221570914775905179349658518455643487606160371137771634268254538297662740633944641040339579789754225104676645315779959190136058210206927860180820342224298482086781967692847316285979214012593423500773758025742771313290609639932547988560167705166917447570483205393068517695151444782972526582905725040913927580942758211135527774738006940844435545212126646885936464180539184850623193581321492296374791371123135627195324580304353506494743833739358712091186991394422376181124274044495968943030174440834489344376343503014714462476007976188084636273771196551793887348750537942835984234237866313540788470313313139218157862433405212584818167416514936739457865150682319862112034715348915691707306587687530518762468628837461387374672109485977855280616424176010999740921019811899689646324068014043143035294789314303464769361874639325125018792574214393792142703417952270172887420207640453286546656948298524542893711894696245332828743864047783886521125231685550946051298679313217981989230236264786052638746001607286764365280693762834526912330992519550923904970323380322926895889215973406455920326126595881145569474825535835036673357026366966979604341749255503487994176730152299839847117456402991799124806171217610358975407972279154175355436968090337143704721376223242010483692579988571867315791841102430186882678190543070846838074944372511644140252287143580818203212047029391491408394140689612414737909949420110979708443688987268131997906175893861397335824369009755906291021178855291601615377610389070211085695895726408537626431498673602670765791219508255768840818247364793896459380960977212622407266542156382575177549805156421416538377628375171925297738032523098187098281411402719682402901736764455020437152979155858564225868294926411204941334341381555951776771242423637900239498009343283387880038005740361270173763510161011207412874971811373130460440850541457084116487335734549101945431073340114912399732708866074861324634764192313884388114290788370464848926233477163137258032711465867278469452731840196451238148224742745365369894172194311350217140409542541187075663006261259714673881923301566189342303543541297275857447712685008793178112691157466643245219169244287212477522808378296917996603773619334763926727532221409049536893814580959998797136499882860510078045856551146250800873846578362807944282905117327176636377045787588380920908893156616363152521713117608135734238260016439156645408473152616941414683423953694170428976469482420296091011035567790423445950478599104332806145044141131918335689068025254674476913930828268486447914554778949038205743647892119531342732238124230939303061756172118545365958374780150964613827537588357759226667565227339075126614108079044177087986337914251310220208261701827336288990579254727012313130484330797275846005189445514626927772199816445383620646019226156981305647520458545968151738858366026424509662410955798637760161029847336197278894666711553029344143916358703165169819103173507496998190573584445334165505943102543330995223746520268649781667015301116351755836818727864795298273474650811207848544416838818064795330806992223021515764243904933227747780899674229014482775314675616082544866155173699837835471083375915642547104453878662431499236078280542245022098058066234665104510409797737566424099342167650857556957559693064220806084515285118476708011863938098381010585206033485668429001752949554470443239696294195003209257276801594396425321176360918855587562825089716516999413084382946375553320782239270815258403944883925147088289182407829985597161150382309999808087199893447154223104584396905492355265177906717525209138986354263606635794295879126991941814795243754814477328873510582245750155093372901920907255208634932596499793229116514308709170500973053101765798716316190430025371941590120431281393348114969380760514353918255405533737469512965251547310851965739819519626078308419187926592414586974466619815129463095721701192592253260638784305283796558577088274088984200254874515623904108327496860523847069215813083644424604341623203530052891996664479904278100338131789260437930779934608487212361927833049498882664596635042800735582604665336555542510449406758113633359583212219019383109756874986053304097011704392007631246081385543759570182667282682311562675571915076592698857319266456283261682534067414123034806508881591543234546952790051137403526555087598845112794386424434013915195433875512362744514817665033730883152187037476469440131223213228572415393701254437773262633523825791167921976346566208518426286877247057865850021087610218520772071317172646309285890157610228626652519983365474270946271526914291602010066313047499863964363270736166839577052035439452157299330080410316509834373345031352437658444333050936778621487337490825028672418750808964045026328568772984843772906796264230230556089124784611850482703301560565523845330935372817373696694142252671398532693692770803679219060236948750727154800027039713972567348305570046677894567289019002123267001860092751812870800175175062813327492996651324633765784701718242351848065672621551261603416974807722136432557794258033587367010126945578639250318193382249294073462190457628999531399293041240560093145688684173311616415797488280360227446889317709850389522576859888430668411007275350091886912876875214321136029584858997550946309605673906211670840884477390134229726746127293183706103475817216964043567531669434216774426378355608729772244182326416403024335421926029020719350972296401158495703689423357416111344060184552876490155892258422183952384079603866854767180843038973892930680431451344495934467478959138027607053083673097115557952597939700234818481960875172118046303271286286771769603141031191902257470288184613403483434079004000605781245009888045662490861722732159950721709385602617632282570377495125610989848044624905176806588913737919897033690401173878375919013778235039438570434146497619568917889559077361637739770741863340191167541642107876075169465853523651078981263177888358325557078060130337321236227170547233121680250475736227762870089297556400842184024311444017217347406272374600584723733268348238394184505883850485224195824118427433653903395349656198636886682285678348038768285474523382341252302633157984029765632558175935602864898691332103627694536154474575394665482590084362197124926976986980012520045599667586557163068029565955785131872988122404843825839356484511978317283079300487046512989894931246728136644428951369292547323336680282786282788535067786725448706175112233153032789611214136674227503185643194035404254320261369144543542670751830798969668972749608636432641955301532250684824617210013438739419384193602037285962688783147952660672529008276776103159356426473237857675072726419790738467505473723299099130491874582557667535904746910889503396240647429110531479132915024537909262749447924771008324592115574006057420445971635933751703134992694512853277777137498792078341320250325507434065669129098572256317384040901583574394159923877842096904102933679694032827771148054438278848898937744325693802599356097815937411605574753030661781189769029848956481536354458840681281787964718726963637436174195396604730493952696185023128535299503229671849986634819237827779677295586846155013031301258806520351496946569218193568785246544110976306059832211751161767481771149714399241476727892149984569928338903231017451203810497159638718136689079030130491942315185400227955938136244857665697110646609602509041453520677681501594668503266676986824045561726470313686469861014727028262501211199942240707187895575795935794065486106008910331432050707210858406111169719870616702580830801538493306175559897588124906663064330355934406193663023767588980598957445692144148699449193391743841133765939211892415936973965990428777197589427043099628763883425631759424425943307970697938194036500376602580860965104727160861474441338788104754464193031874130271455548692269683254938390257106231032197761552003522248651580781468074350236328637764123787971314684938843915496317371219748774222335811708358725582216844443658306741938038299605141343582280941398526355060250849913402551648113343769558000042481975123810002702426381866798048182739666414834083499243969200160737438638516386832048706314418320882112843319883022829110578572077237801890638812946262167062709650024110823158724926575947247663636701686685578408452255672300619557877596145644909889237342332537733998830707802630085538466754865193050052192294798755950799535583457786608211567596792904948397931801558020817592542077377932249335610989196815310118671433850954542007489165893375844158654061254338553692410917369505298657099094950204567291850355863837328936110602440638596996313066060917229373365285784929783011675012697186405107844754129709944647359660504671515764493766653891599148140780548552882980324545994240140603200485621015990750831824952286027271253287521899494880442084167363425340193378457727525228414291516236673785827426771487412245808656941002416360008426860962177988998090155035181326499096279829788737014328455098787844627073253468674431514964418610115787770364778660973430807593228917769153244246163529207664511270848542624683638231954622760818513233831342235438248157138560110550433237457525284900437177405179623719637104499030863782108849765053076351698490394045225153781811873330202077355641634275372415663755545308918500401161838216030676011846305757671992133887876025853142619662096586307789690306627749134049105862971586853851635514353728721619894273525718435230492854344129879239484168599513057834589208979180338467558433672083716328671521936114671842961422989604023003668320733101857820030729341012250353549623348581426477846019487398042845354614297797257518532728718811766057244097673753014045365072209675585866783994797930292503807091808684098414126539030387660612223305861468737893503145886473383019037175667565453259676731891431914139153103396202222482900016985828760749148052254800500994875206541101774291752284655753205118642779105616405173224085561318537448066923982112182659920309791294768011928289826744206332185896756759415783222871111370760759105232837453527335088076685906520749271319193575327905840246904840083236910824688169065612133307902766140446956556970763189887992519559837189100705517178517183427937045174985134729770800598673750055845923500148659664464378510360379639303503010319207759563510483163766876454779709940048850155074319409293817801452816250819720408347191700355271641936161724817139777109367756403055431098523841060537873552956158426730957660273153267058521822667606016341486404497998752370525168625512502411393420557559047609377184663481648590769108064947022648199289720208328145353321927072040375489920634539864012711978398497438763715594186655196348081208977655237906390598060336806134761378309444426498235502159740125959281674121885888770424407282601380851622905451835711447537213615678024289313635465744093104228671474205083124970474530004385332013432915314610643100082172771174639823376527298318658766669271464472508022468341451559670166356449155266584122788938608875774665313981532033451506164908481003142106906652938409187348335141884153616846806288055316690262728092892107493728239503497321895019901405712997556025185507964549111579746760867197890348614269644768787083044322709167004602747961580619953629879786813870492976723438227377933549047703014059209962894988477316625973515408186288435725602857332023480091684624916047765838656320591597496767020837425411080802156254648526038469330079478031541719546392710080978840554089253939528198460321906944762201163359271451792087864189143773295769565656701314641441524435350473271996270651952350410481157914944031193583821866191192950505000060851073247201534407621891570854266574922613099342532759812775587911628063226047121217182843242981489247191960417611176472206816958778941376166717820079001296481848376293162578348412923176649662162789835366902298787148675635449333157565848444763447436236363307744365882884251673734721318486185703433399409440656498322665466100997521646780648208408003512390070392157914270814769525695347359457841979220466455117786885914880623218427988143537332914491436461574709312109486051370814437423960163376742724169135655728955751482071024630380861062043635114010790173643538979117537438601596615280748422043977502600996391812402136139226261334444653895798287935047643516207944045324547982730290065954232949631826027387242553216551543086216540801633577180723352023024890596067074152667946024656012741594901243418066846852585503434171458433975235201976020242785748834293193185575706056559328692642005974891343307604135499954031820801762984077630153057485202504681699785984794636107159858256587941973681676364145369332339287726187984161841477051862724288700937944722220493345734574334684293372967092406100618237321930457275966282187536161145150417909908290659386630468018893999561808117395863470776800538850926277547040045400387023807767317689441515898006816651897765181778442332865593467364964043137373112099180756506344635763201544111641138976514989345399558606424986547300775296347827821798239482107988631503204334752096691637441515352766707899457097547225941893188680668761737185730911113485145499129394034502402248125422118483650351331737532644979142018857272989090356293463609824737933981896391191378896317396471998760038055237518383893477547417160413183930352959895377660974650590547917500944248647929319656957211782329062368057236139676917133662980373110278920562482362940270331033991546738210244485378224424705949742672877337158220233128816756596610588130769414077601450824804765435460112161151943747294358326441670892685716028430475325194673827063432417905199500262401925235980620768309400563924817897240928157319542541678269336626627541105407463789841891916396228824652914010961761105764861138653222940127281922215197014448992047163644140463969753369524755002282108736640176887566138028874759581570782356496568596578317329244122173233504221424441731139940321678772229265133007707367253125899540735495992477110129669820608584024240084876479336607305598167527607280321601243370023916095806280067545863427369761746221948661405863077732666961888325464199118050523773741906454841259243211895071944458539584434665173816172572230595151400345691973489560861663943810535627801209597098884597346615265131018729783475846154715444516467544468723256667892823507175561258060592059936647024194471163452634815258886459541910442450564369670662680423501674957355165978944961897437184048070388352205188324354650662138523049883472607033853624499806667655118183606589009241910840664930590383050584002754974701849277595270810655505204937799833524908778938169278515160930187325650670332732163775458188422424729592757461857744494387603750408146642365392457672728712925755991970364456784517559037462640710173922671261638856949002307236287511866344107083906346972546546422513960484944086632954428716936071231275275030694811398255959031836955382195075897061521300014699886382639261762510484120784821878227030839193534124031691941075663451492462680687665876191467617259578373314634607751697525183483582970984726304681154088268184037109613190003177543351833653975642881377517424848072042073024093054339769732209768499850731749377741700066852691024435332736711493874687466597432212377633154452755241203749260964325874169356561076436121983913647854102733180724674072340059544743469584535263568772886552646844452410803041196962517607086358642205966601130897983708101035988653970306339771706287069502614927992436898739960074754537925008655691934313070078121892768695193548250873490619096896679449809785966990751322093517225318599916835144895902087655158632778457159947549459517752805734152206840342430945490698644609568017692094192390368170391189441757696116962306945156424425413514253129650667686629644963090318331836340675190258043465430955659861846005217038728554121367566215462974111467616969561209376843424780417021865639253717193157056085538928025455058903697693608977473010230872348184212153488644622949475580519230612648792684913571777973979806869799388074044401729555392314763522644031735737408731151556231695846243968066597788022245336571760360316086284254700462040037949852657365080088191073148144742550353939670420108206306899195026331778372407088547043505804880216925001140783966522979358842149283367501561329022424570548518539272835444010335920305975119978299876157093958534769224470005169950308372217450967239482510061604943279327285476850352270955246372003486778583441790014611540389529172550046979748553784075741253426124055777119599316929213856583836545449760204131613600437112348137396113323966298194204817264079221852331328886457781285811049209081653202861826061324468579403233291887336146840472304187291298667849807545610598500569427770431225404367153867789286920723180579279776451502471358881554766991476675493077858587278718824350239406677369387542295970342839379796407591218722615959483942812428417934445830785062367996559361939453869224407214302457938722537724478294042520051446566653347602920361599554547484514692626267828596620188584270016311433124746046461116926902489732061653800101132635817831294785532724598810831764384899928781133494471570621629893020308553767377685501357337264180700437458159584830903826824694919633974601907326152428434648528777460125671111313422632063173263251850392390566770006578399693012730852720129181300555936976711984822843637985273752157494631213241605719488809286486317740490826915255195186990717149466772025997102224216091647997663021261982622639271488729903466561927430274717981463740418694172769897390003092146664088263540540658665102032954618884922826424420239470423186690368123013499271203082170553898008056050467327125554181452347790147322237871310847801463740590702382180939098328935754156651731470384051954082034292015117408988747458479304262922024770444576946740866985811545487365604251862830074725885987801196625269939400554199913117533636865239605782067108425687739367877475187587525010072391273581917302147049079554016188529015479072469653982941223181921506830842524070033013583760470389176963982239214711741429331964916575776819554062498282009097425588668049883188632484371297211422353732458509028039742002661707784371203363701894898490100958735896187596762488538624486163994647820184827620911401431149194803126880411018611854443299705549483128303116181915738170154485087026673513454261303651752403260481592177407075693388327644874878221763466996153127644511228026193335993220868545177068778967309241552943077089472787828292984707507069604580058390734884684595934120676052347517338804873588748805591537091246243145045307351664631419612724560747527639296652478213063868905335581458411000125663601627047994283315442734872921275620874208215480470348874048977528121251540424126228262817492937673229451592516957426444761505862010722112231298266601833123727296033083816919207172966523112125174078102145719989686827899889697742805894805054799161800815108373619482432317319737485756834530163070900664969398036160171094944680238929654092175335299263310151073991808708691123169598770625626652820573955243930699843552587232129380303273875202370462745072867601238021017271514125245216143794660251788007608400474673737335248375398679488161457079438547719848745795627413321587256752034885339290678604233056540715988282986421330111279722588419952371731417891547296509911908345033200792681310930719230260067122103069736901270062109715637947730756096842423361002584623734544461072014566479101513901605480141376981106157298269467689002138160172142269720645878198498512086887262734425909635739867256170381698546410206998454658012083396170228845034401723903148019219637649713926066883723513419183857219676633021955162437891443112900066119629467887603709594038671813226482675572910787305798348290973313668489167523635233745847399760691829124220639986036506834982344760766861811412804044622648024092343535037586797013645272870334626102095572847445237631695545079670082992312791434134123480869564837866919040849461407335328393043896480225369619322364266516670453962205441743366347948581709666820585248652351336462677815134753504741947137913636048145542182875409278069320217947808058115521707764538575766631487428624373341650595145122686327000583676014355910347281068758718575922814280821318782118152068313508447199143863449307588232092044274446654359292463326072423133956105721389291237011288417730141989136332023021606875166082907343718894385855488753464861372942721823998083744812484369747034474431879094312762758305204427845788296337042885137529611302893661576038205749785692362477457741907694604824886611593350575090612652973886465258396427543707486057217174955109174173505200183364358207172857133391030219526901107062002885882127808441906975222815914251689256828343194013671662672239420867094292253778891182869564676240887821299763318088448798598708022032486942461570207941010474406002459325109019787460850888618875652071636668082571205494376269517251150653068621785074084693637878623868443677959532184326688342871973595792788393286977507401573402708237825541318796818555071796192042845609486087606476723431733174310385119983959369255184213096757340198925055314365029530475527897157678697793675912269541704450875265626033901142492600625572515333763180959259320783398971380728808292643391309339051171421152914928908977372336766998207380683186916675677844717922409677240305608665253325349284754012630718846626579009382932823850197600806246073707105372815374905207292479908368733176132972860419279575858252754463075380551157321420766296440397008046284550285191097423737033367329882988595918889984197764935060517936436716083502059848980922532965033036395316443001026014600568293853592843652935301348056144487119086421540067570703186228684380010688364729242027408261353370629874185404415579103943121046207486254955440668467028409482848039671954585070383278052371296055157017018062022554643615825105405982279749678401734561990348598251900342520705292139872023405370887997643602110790632037137645194672830334450311937046735185952040096948157463285043645404188615155512024901999564375269095026475281186188527288216734805406033026352958161917005681248568578666289644934172633454356372694995268605590145274355906826638043568073993826657353334318054410071713085803423841558210831847594778552450159421880490292900250395473651404976984478145463518965144743099426807711547885493584382972104087970438909866486108767455949694384080288281749041802017420580652755761809438354701169702732854427045135223800729828735793140334426228402694853743625831646174598369373360755393714450816537893493251740047389871061453965148556340460465508913836046814516590197017710599867892604602040239188703790255861622662681183356289355768666786419753169564574277300053844127085496029994968096641950182141249543704400303002255489679791185883981859307801050437264401384837521472009774396030113190856153023898442941181391727864454743152333557034928693678432181032971329091513290709084124353401396232330943662749096231046763112981378613419230204112754049611306392925999747641753311769798821977094666906987096778301368232065563467039722838765936176022336334910604651683634031253598106871286308260249415139900675031449394032546027421857093484618883653718631299629157685019072082247889905357536639754231930688249034184150105500956663539194750158751238392625989533281122615992269206655025231156238259060322288910221155931348608314499754155726292423492047679285319788024127103916661102427862445629698311091102548887969669039148231229927127161202228381866359949197610222626572406716715591016109670796963980227982732592783767021422185346805737121769762023400401995758882776705935708874904708356278135860431524432058348189912660601852220040299846274464706595618315347710225866812083204011518403531161364349248304688619387227357193354800040261969869734055607275521488342712247526706331380890152822320322829211540024293778487927443719177513144897803327986040671597498471002987296306460624527759270184455087716857163567175495148295256435907771164941609407971349319376096288137070455726540038961409908063362909193146289029071534203883587801383005235281165475894268760547305102358624468179425528148750208695615913221122037467366954902824189923337810092810786603294699418789048716415394461277765183237851037534915259282688208337893646956848715359288688686977121205106531802859309672635618892925043515928803019117457901762253485911451875544052871664582169128171077481561172028477427484055285775914788555829240770341100362941576160370847313503057619186682751904983077314700587612624160059417268636058321432050589882344614830777130551585025282975723564406488274866638586504788554735811601734506847310284718116571958461214915688996791069147953408854165173116312541303510537140594053154998954146951364387813404210263599587570009536099203850517049381291852599202176594919276129967591657734733560845816048549437985247401860647410075926269624275201498911406381676413397509900247427746328747052707619900039148061464443254077677464262380045520658042240636385155216751555581834013425068610351782868770756210081530540638842391284379761314443522210196050358580090698714795101828088469075154918179171744848439378128937704828769145589438492874112598632015682741176194368809602360900152127885642912473826292176687792838434739791661355812993649365775280797726114796014061432880867386016839848895970381791064230367630487776597752401846370752950034119836688129641655929799199985205383001752891634852778081024701692857002483321336729463482753066335378766642050167738836956941115052053786446701967945716423668083527204091849260393175420364593241421246422671303226601369153142416535343235730199662785174835366812438928230380531826277912291216323814105003408043898016371889516156552985480746105070945435166568979216918053585321718830501531215607947361362173079408563587324808440809276413679500262613816910497896557882506281465913868237656373177831339078412232444878287731806762195809958808514841841311907317308815005488701270024039586381920651405369484984714961545111873840884480603264234634576844225943247522295532438503745075559537992092438687304300695038279826928792726442130729756277260134818114873262151514162401776785584822983904953669388186000540563153409995079366753465890525072556981739590557996558123693305264200341228467678162418434190109308685760483958149779668771489237458816479462713234320718033126818595978393680789419566595588260571609580895616740563972776241492129631449598618350292293219293897423380913479831604582680638130319251302823216307010958090205619096584572262206255498819727093984117004452095307809208402335132791177741412891832602224185882105298573812825502083103878680736066670940266262623594243928968761680646601051809101952534600246549994085910602755916570383488184056540867888003175043817378741197152834768034915448147396704206207508055087247633485490836029755564244153438547149383109378726632018900007030920247609573854958761984704174703275347079337220077762016842694110202335655765389991668769557125424340991806654623296535289145146889625389850489725857761362159357682671534337617603448715536371884938370853254829773279543601030087628528906646345726506246088332773303236513462414132796372631991626152990751210128807636523320970559659207203958905324317754859665425836289656843102850052058981991635116589692390735852875551949233811636389214680255519655148905082728026414452250365918317292759690569098283399271942308091716255254849630271205144448351986447964844607770880584660339521179260993008738625460305414600856682925111511489909966427356319725412998855792834707933209480942436855279065606728989081576322485051641507274165361892932740502400496159654340427587549225447500030705539102474251196628374392520363323564066212961238485976084613288538656206590091074467956544299136178524791904000509318370844868555072990154803850191271646141574963214514400945238805181954214882450140484028062808168227805883596171494047872663206739672056667826177830219024828278694259576393654453153382681062209663156842332859820442352346991294828465034164016313839419587208823248524254470914530599026232827392668290546621028099279683738300186161683490502137493206320393456724146109382511319899633471187844211461158276754892025650030660014662823500284742746358505333152183108671394914987465164969698200127348113595771456598126819815603630745397141658258556561304126035280754160586191285416349042643369125433021700128619983036313745179566944823646120792898231843792745286587092016966348151186980461183820425070311008939448835743776323302567209701505012658506208758702974219470236967168751887749472678713096363648002449472868666145807758936994794169543903891828005038431295272946593553584332047972822569235855549142461084503758638442483715268174710387230706259717070801757986874253471428034098497054581237528243406525684623306023643722700223517876543047122046141747174031889082384649513910901479803534981595224635455085762206642376984725186126405160194847413362613264735635133132829543251069205206219225716733279093317360188201920656066537608432042356107155395193181703945359081481793201839367581577707560933732235308413215126697079802922114675897873828465199183720255876822256752898920434292926680194833837637111331713020404290594083023750956268762879855576571871683639927431401557959348913401520658300563359653027867974402775766428963920026738395667157284764649918363366625723321522329971965875317667621655317818822437914712901654028486459284150746323452299492118257403361337993221451431074569954562632879911987310530254473920813306194039079873149700758910503035186871925387393246447862232367954008158139340759670701147077042914426501492461264074167279350443441366876478409668123857565939057415245377499300308866037413523937871591645027044187497515205495986969178925338622201438890497687676538073715086787857321062696503481866805330834005605526889977028235309645681656351996119093946097098969885016643126752933160262650608637073136615258486179141824603473359805397711942057319157767685764179996312263203401650409966558587208652008546598614660895482999696264736299638936179583382803400094693444280718225900263513323257169020992460454518130125234861752000135304647451520744804231255541010901598597963588683897130884665487941023515824048213255018664651590633874661635562308952648820161554209871532440359408175712746017691150361498351999424595976093134182065293065994545292032887749260611954229584009791136885740379343012945580146048043524993042673857228261406811562965338261020262067297302189035846860433972513078323457068191445692800276080240618630343964260057867644392868197834972758856668110285503393732722721720091874455885060308983085842993291086949451845319671862166523193165418881909604991683795456718455369878116554599978170882237435710058561642598744030567596635914785186254114884365618723770324931703398511970174527350516300910434443484790072385144716741668950794239248640539141279861892854353529685398925040093607377836734827480747365262245011234781817749427154294172910638163967577112157531356943966117201329326903311399134917275241116964864976162161611109732595439651390432551176142612731832507423693709055430007492095477064244072510015459802582291267528719412198930998045096007316066823578938579323391290462188651890574040067830857008945972502522455707036159282585568508233995997096858589916620209124501043800881139496221302011643094796604476903750199929746282431224535519856949949383781166441074556117018594501989488929791243407811628248315310633577921127254089767522381082015162670945539800285595706611722599338560537520264097311648648113697214315343176776713540844464919983031601452094247088430432636455104554391800552639553542562673534039227836890188290693635171241006348852865634769748542382961234678157697691695325087426145658109396503162421559251143799410015775411782259679510339312227002632028500856550194116177929947097385654795623322941450766625140698156880919825857061641001052205661264123324145675877837854921323086475078657454019361636721946362424633642728126596085377689898678174513986581918916020453937543901254347613084172358484445884925177992751656175157793190219942430333176360169259027059015911871046725572445431642189565217629600312149662720140407487093154469011186716835028881395324724093191450364658906009215973026038858637811974202713600694442027564782375297329452288560013591802734344836778063118828900733545719394417450162727776170448965441622608047607742315768528187710497874307889914339510593447046890450333355691656201753484677885455432586595138298092529147089271692253536482872454275785425411359214490952147978340794218904815582612482593391297526340628098579689616470981757287863616443517563108525952345180304760059335106343264520108559024112250045028035267492035362656938185780471760978518724782958105935464792728241350832720450769317738840249274845666866603452074944503515831736997400021714456963612071372983240793366147736543087856654111455695794237611246497970484021174881998766170288782590066034974682109180052338848918115234136712559608592264199704761837534365801772203704170846771624142141200499883666026411499071574853485533787405469303544997112938756891986733057373758316930827060672480974488786630065901028247827818862435711217579211470799490501399138018111126372497802334215910335783276464674423432269949895593358658362338623168277166452988122235915215795348009696480173342892674009095052490143765153873535497607420558070998910354737613079638076794575013769951285509016947808555101330261523034131033637915697669671678821364572262275252888948543026855211865060155728290764659390467182621662604744424312273792091338448569594847264464508116656810840436764272368797327481855663014896022707211609594930976278155497150323091617281047312484447906649560215036054533339783497608686248127483540994239809541189484484353869529373986101300140027399970391510544704970529246710320938890694859868421689643841240734977336663979065000684067457836981417564084951380348007752571962159373873244278989691090947396324532043164459706325047140709537924396088119029943904889836094522497019919560089826101759186555362125807403953439503107178502163510545846062277811528910572572778034092937579600070915180381634159081398560709242993526751779437839127785368741776535920585954295880325910734596281251623715950047340205950857807497964875277212189830757827601635312935363102305492529605112582013592420519571753872327403506789137532426758548708203429746627410311122242824986447352427480641234220675836581508559237238300696891363059527544586326385581410382286944161096239936472259764539136473513639722889198760778106455495253377584905206253601132606353019246710382796910822190698654635698097890092349415534471337276972435772543994876535053340462915514781666748688425080820383245110615777015638095686077853056096005889719901263665430173926342012493626318601797179029511759503005731975550870353821037667397837770552083650501013332295141788695822549287107869961100110153732146011009454211414209243118180284173353910671498537456544424043389671433264757082655190589088227572523202108864281771844676137380945077491799842382545866646552910509478736133584621680576155001177915965778757079167782487121768936403570281451925315957517036763061667793201792426412869165991215092376201855917175856291089342360778950780707424574887623417731069704481613118426712703135809012066916122936226089818537201400720448517713177726938878958465054165580688606428829847106965057217196092495835813862221921934929654005599198882027792196160804710305608290349023021176898789458387971039583939695624476073292510500154875209543144286877274750875550020045723025760545900028651855958708723079826770833571997650675184209315426525920397487792913861648003289387513125961896587020742103589447192912384273463592272355426467170934984278327030607467016671066849497671837021722139238655396678290932142574476471583064845452218018548737714911557771145235475478259144213969075962718057098860437668623993916941856502634757965403688300032848065857040670085751906771350223995454592464322009911057187034783838826433675774568885069330893148700403497353128236813292189919406421585800473662473796532453305896787398958850983999784939462581038495259940029542872939385968806270006451492893678540131815143854533466967960298804902525617120923512078380678277255697288443940191669919266727190706172193265361587371853198469889238408794380480640674485818045540372392137698014202333966564599807075706502172284944307393383031077122025024807162008668478594879395205587513786178282456662539984867300948062332612914255041120809151678646058453799993871330056936246594289142994581547705885108926001914701334101276308343635850312917535033545781816870498263387961374277269473980267190813513100597648184188947484585869004994743484557818100695781887376566274619674488778107513670805948683414433880978548475838639278578322568674911235251051139024403162413990431353488887952917498232996991559003396348583755952084209692719201056129128620104566829842519124636385825291623781492328866056554798053914491647119452457401203753567688897443183255496491814222202979684380439993518345035920128479438093160201258367262254444309100256291289737544147048371905779398002398334272314555465691079605824638174081099119813903076664848155974701173498505177365773562543792452518128629574265732773099494403058589621199195717003300493165661142389449407248734947531971749087667659311670399073339533894122739174390991876137265728550500516236893403577060941170526242550434240442668009353165070310513231469113320055297372876351850286633647327124925027326434428508583078788703154108166222391379769951727819291565815891052782307058986003627186648472294879987665310310812254383370776993277699352001700701036545423055920589983770423187356632472043211564211846369759911015240439146833998088590322536991079614900085092359255069206883150343081978217043155503146361918896558273704833022083151116717453714278514409734604797147619502044282779666075421894359072599548281215813872086305406735530230087347171247096045235887795519942503191505224798218000097117623253540434630649033980390585570009800780440206787213148435849610566727242050807242194277681316834741261330467591802912277915803101598579633568833244780082488152262946780604150712437342078530272374868818743049762169613885563379008705356032165934917022028566187592447158909704780095160809057672206196357049941879607409121065379585498753180053708050955542233699663260517866081336202999203491242504944002599872239829309381149385073726978694317255566905270942303187680254461114420083285533996375805246336738387437832876923476445237708471842812733645407707372454201156135430018163824335574239209595985655591407187149194535703038326580280811590975839081613088489251641120756708574237377345093761194168808358944391808325365597400057964359612047321058165660815457474153417917637385954935585812018511925298856763053529030517614832600415295850839842025132247457414879072796449028185806359617083482237368404282303222230359560865343590322798165256120134316019921127194387932089983040172796898701367543532003628025018880670641141246512492638518613041882653134179720780724967661336145720456643777886830240007775860809908807591012089649650190512492854943310888332930985689109058079269245677454415023565807041371826870922987419690309392307146276587475133920882497332019837021970175446700823901448396310837196249667057940284271074693025246647007169082756060314844004702485459024623062865859789548932937508427190875531217929277106233566347902301802763937887053454543356587583838910018670258108965993399137729289966760658340999701785474329709330881654696474433529134764431810585869119596784193791831205669590036748392963555549779948466581726313796104849809578285849721411747469891586640280697911852419564570478153453444248200791020737317116639723356015098525424710266758074691323738383826309715842929649972901747417840796685361339303278844448029191120298976439235346848515458955564198073473696815972667407042608045782367125699256734519176975849191112645066865867532203424983100755332056790975557611657735922261077652006252690035749794631067206325884241741085244991594701366521943756907361137135845998234166551725262798938792479024079258009831717862006572377535406849186276005516279201383317052893811970991499433985906442445705229109095367431097342028847308359573427364572204380401569227466958976133282082129016576214280183835796462589308868774101283314463309320592592865351156948776732824897688206777475710007036712788629781949595164031140767179245662342564698122159391389365705994635385462099699899342527932352188375558236471261467966694116824862019007946975978089745085927221567409103054864881339526121164817816167635251205177818612918884390932654351596159806406603678675477972997939113479307915717543504754214870909970751663222771539642535960237593504069943023858103440582196304838630876874994652752641588547010385773099913542428559264159300322587614491559989408768833893325350028347296997987427667232023487776873435400479746445899571588632780890762129550535418567081952561417361694776775924345698908961572715720995547140538745350789871333536097505778728017784643930117444044253156538797958742034444764141388193147020655357249022370413295824153242983818543353917719124975910709100715403134385321674305003714325528977138461934873667187958177941141467197865950780633637736771340878556802038230788068635016498825779870429670314330422635643760185642590224805729996362615992049216391121757871254970612491445831630341490771299283607186312168256150799539559517843464012090428010302096338387930556602692372478479957556965477275016538909914606204535554087196224491427890091776152552353449821806407182120769263063572766816944543049943177773918109502659905687356777557904489872101834524545159407787169228853310815465607432424957244753267013602578676559217341099020608702877254405570833036695253319402182462895586451746365852107519661984862647558611313488780279325349578918335399351212069020688551739633313157358697474322429865023071537991682115986034896297113145444319720018607062481092819089330749206100479010786051861136696296899956476566212250950775232808863974561094403403821196899202105487819176755890641325756871240025624269612376950903146077427809712594267386943002656386690079782143645199192538083615878351452848966795178106568823584981402850901006883243943584985901470213273043630624803663040700589379908113159076347900407839418387928529798104265625582876428149096244806182869688458710886508432533735479826821295670243665717405287168111585700006842910434958928357417234483388007009622961844657032728904388577857027953369898260567959516094917528104876859068968006439633224406360402700305669660343696507186644644736438958114386626099531195060890103018563040237041468146723141867032971087856520696834565235952351050707222985015306076894576597717548563679391713743176809073646903232068294772830169762510467767690018229067179665098548269367605893012302380543871680530156005399159005111356969019372721385728034501462302628285108076716853808469676367309224594337953831104944736426789319064740202224570769967179631915094953180051249327090448026072898628829145710352030015583941043452525862605592700805984774596676780417197027205286773465666006876005061645117655963487505577393079399471769309413182042984627833308257851076486901884239583585252140122207847172605042561580603885539035414395504142260216950822611925572216455704005178599145935782948274148796512380425280990361920982634669360301917777805196329699371529632756223360094248618615271983298489076586097090409965277420557050561329702523117848138102845704375613100370968403314741951814488895298941936843633415274483015602567921451074307714333679701522963590110955829226783468350884799837624163947352726603833128966715335011066772491644428000289425215524586349887000438676636370938961584426952670723741415065224395393639446535078548816131146014052091918432710068550072996348316489373889980865952794162966293872310565255438526122012246007063024492773003749511842528295559074199981967984198324109899320695680918858415426825489871560606519678534104572809966492331731914505970908005616414908948678849161090306440531853956705690286290831455054011345707271709343323939828788063414750805103893534902023599219216314038050855592206833197888335496591828221207270573858903300702893505647069282293792035294105823184747134606165076057733560187315504471115203255103380585814913572951633732456970713677178690957454936081957542230914161769962581400914687231375151904455007241575202072561357806405742602323745723204244376085253483366841464672814208606336700172167152213046214632931318483590189444379748332615618168848220029801452826676535298585593152889116876964258955700471942614410649752008980295650838831279889701387086985267687734455908161253104627780554604881393977547790753546310777490705991138494154276385033820680017349169810114825162942216639785484401074455099406301173399109827338968655971542897485627125759609925945079349113992932771021759381443700136443730650210631120647466947542084186606257158101017111999677812011802294949461891300779699332138112762375633629786170377789905882463582311979580802063336893432919442972552201059074981930151339562773842634668704207731923685623178712523165178541101399413662964043540217048631579878963187745347411302171233400089345425273988033954247693139418917942433648254060591884546792710112415667032459513117437586553848143755628874196260568373922177634211682928266751679037390284148092800530614419117096443535664802908424133306696436296574544444570323860722999179429813307478685377571311117814271821252184905831041098194041663044955256094348689883585249072578377620072470875750240111151177221403268977503805338815191565630544648304082297381487510098078944752934902064726883115821975514567216906832076653182183928358726312728266942870025157351002985685074722465408926533607073132232849456747005197622182460437594144092195645505316930908426772720925270647788992095576782799827902593830883099183055300804886840349811524232830656359762114129297752738570816279801102989878696465231742376517871694997189142484066713394015661215122365843232010056281754574012812514559206031378440190313441147071601361854317891602738273436716305031983694683078939760426369717563994245100533186749593482653546301323142785454845399190294366871814271691804728680391935140994749673163405613099253141971749193620790858071521095740978381820215667261084393805163078369941977898186038532194528018665205854353490612158350964292967477595502346251245223416137755490682462385778309094945398206771411912671301895924283728910068834731971741495799145355204511219761529860960268010896199013782500486597124254978977030685254629344997984274627655154342028662364481987395708182186984249935876614059010777113127147509518740681961319659960279363091614417991263544322625760630787978252751433175314970821546001900943057860977872381880832342443164908702104091328102269265270403596320729227777915870083054983610693216908315681941106002083577477842311023015215564547018134704281032649883111243111986175066664615268760603770706189971407480055098890244690090132988080843835571635395670233853525325616637779903874033190409444890764231477893396323855751511051296963347302472589453758402419670620345002107267384964092513833597091781831244004306368696369985543547060411604746896740153136619078119217583132039235403719228980281905906187955372720058830285677185786198988008232234845763864071591902380951053512143255064505498673130754598335236352882238854384120541191485980863547685808011628987868144015465952236848053450146570268005424077653925340673285874143011573416094248976981689477662425399791407742364029884636401189130191087808071217542925374075989204789758810829416687576504587395258189175278841759283086520022555188745361921254321136947433637471691565924113137911815928569988405897422992747706531573764234194251227032062588710153383744034309314450722411678591458057927472359231110348373266391314775781247295827475217757751234900670564079430941808493300152220757129245341841370543323332914717007330174300190776146086124384312461014896225140998111350890861660924081950107272706857392146160401056517975708906719406041612748020183576265168142054266135352800300046095998363726760733285651329643940893581667493308434579758571549811267007159608618008620418095781898945444713361109014404167956430871188842521867685172034115212478062296415758704289051702741453091016478322567968236119630742662290434841029424763971041783281676940805136580880849210782122045185964136909502835542484193754106830821499819987861667535425210026809539385337512808820725903631590282169246321017775086867902120445491168976599522716002258524005892666289997414021711170654261591204017784130008396946253895590838098312729078661726399667723722038016079898387185946699800960616334985896412036609899379556427569556913863510877451412343602989267839529806948521073779626756931847659690541852231933579695853947502066622816331348504955276074062654738262190682561756669691862208517741645285088152337090243249053515289514573192640463157073992582655902205505759829859762597694239094440116396417879484395419373850948516470411207875087276671611264732205635477690709592451683272378197358265063068165326527331689759330296605386061542383386854093868299548021848085239923265157560831560617286249370675309854281352070458819261966186525198104712919358263435287550418883881237168184110200433377088139865131000926216097531799472910665870757071150457565215700847723898491205952475620011833376151033339410999043707691250523306347776022830491043938197591434562784555568909442300371492487693197548082640760511028361951093311281581052590491405358016524970293391131736931630300015046881111330323185885584249812871377738294654303655472668752853926341374727877521516049907633046556570237188167600259982972225475790294570269727723627526763631261807403739360193069965126030828906177782868442763864277922479894400521622883873119624890846963269574427611655940081117299171809306610386367438744225074280193756346680436330155089768880530038646687994039603091208622312861476730397091179008000997155881143466962657594047214612027580436077137192491856621620578096022179968001722129765484617819039213369247788067234943845360107075626032132781708411275447770719028072697023454169170064638524352770588461337598515485653924936215983340165586734548050530101314623568487583786628916513691542693821320417122433022643196771041137548016601767267847546748610842267033781744397281404843571725019560429815445913757489372855806328341420975988690442632277176729953933873970442156280029124211584696357503944167518748240733133605117927131375508680714437211396958811154860842119709725138365506031712395979583516131285178615160232337399653483138470781526692127153786575635794612484059051959105626886756054201873066198347738444146885754916596359052597394860406451595614882826410212059972227846939870431322028985674374824559854972222121139938118949015081476961908429595770799358544830390691089332600130772267674306261433114143580418931304689166187326081943240538027755978578609375498155971582548299635821534301378685175358575970520632313379640203848616355354766430016725475848016599172589391450038382833533953579029221945568012394151537803965917517899776431317735248630018137851125981245607495577565889725556913841223774562788209643597061988582080858432571946377661134199249123552948615165255761394912216659777698204795814376465617819726249270547437287575166231082120214191908241348350589433968267136344088261681937578133129912897130176413164282657374610357890397494654633526257108587885200755600264748790464082122486544200059542577203595140865440740678798912842704270572116623529542077375415410007489674919348916624527558739172974974936239993301673759410722770269982313561176769460159241080963025443388525977564698874511217905283156579003441590273292732648365766951478462397378336939768808280539891763670534800672571521863885827028904637796853350862083269760756380688802732586130122645410008365855442467968260597844793976716031691063086598094241981274096724367849163079464126748113667783333384507075270884100059026505148891375100920332281761190613288586690768181562112287162411605962690949358144863348951386891847855999833064848023942641874077213268880762860442339234921888299445295122409603994963850508535899994683421618239416356303011655921429283185779730411773956870215867984787144967867762323570724012755457067626367108390115935384679217461152464600141431909521533361093530565838833405733317314488857884895603971084033592517201848760103843670213566454750580356220950739532555529858399511442256101766703649787057118258806046433242242279750880036224374608747054826360805146325956817164348274561628046656666832362081992792331331527371397151329209288822506872325982719306264170533482917637205985556789975270824018526450163452078411829955835057607649611335352596629002861809912729685993073428890342074642175983746037025015852743596546441286469528892520932207905567985531830502320580640297392577623651688752220175614782473671457210398165758716538677878949646151498720238496319084204566204581748337718519665302319883086129582896128765233345000282352700777645436064310471205347385006892194755556539550348654687274798251392988980680211367852660107549898133932755860738784151614429164952205260847730975203406585027767214367597363421527309728372811115125000686217426523014457819828254170048366825999195643229585948053935545536113079814017522794535880948980543858381115439559970853632800921750109818566212021446098960188853000289807256778093921881514671075404664612395114379251008917942819633535027463436808205402279524741969371556572272768069408028960867457467229864813350867517677968782158617661763264981552056957335863991239545638042573265011788957239411233171864796979758141811212080165166356138488598855854677961688345703976990038155409551702960965574357006913780451415038407513135353473697279496697991886394134974472000468895406590738655006961917948821185001200416760109233088626667062806297095755539247235433977360146375036586428671079105846406546380848565884944293799671096003979971948459195787336281323946432801056923141665621068638577933343596943077732730741483519183026576949159488380342748473114590036887619635666841324833036193336433789745347597826642764449786027929066401151695334956153560707040131236170858996642670418431176317714402098785295904139563765550858069835520113082276198266294975208146868215802518666239772966652688138151928116452864868971815969771371911168547979019675935622884997515934237375399692577920623555237494976614762950023757074150841047956280793033140872211429226573643756773260055650973000688090370455786965019274369241976156706735399284042794387375267266803431104031425717779349450454298518130972887215576931492860649623765787512106640620141685776237011287179631038673785251348095102146645005413763548249045981110413962169901359333883416520298849804981508686670065901430527915119141186295250813987417733639964395120531330101689688863640447284544262443433231632676220619663882088052485478884157654614856907840822121186178746264847690373588957502764543199509342522257454403173879740067854143806355610051202722410858222842282002588079146700486443290308069092228168298367386373937809921725739428629741683350046687323889957896870597644352721551325791681042768868777371803880677848060265657763375979914665806273223485655648323429840241410705085183927918684138064052262817303915541268705030054659298023378790598932701446230995151426505310325390073095165465868644691628431385433279107167276308727384644993484868412653292274144112510441256871198196161479159803228203190358769938234345914173476100968997037318277039422780447564794236011200179855437684898271905161912528053363450931317682015397558752057376285623374387307898369012136754636540660970947493169273101454586095710615278681885200979007579382548263844263715910450264359815920081289395805035376285039166848043222297861465039291083897543993732009337348153009999525024577426784113683273250250926417679247323115543522394470063366620618510859941575548130211662440649632664770847530754916713523125961809702676088275903343680437964899932250210087564799084758928347813314216839326910581584214996381681981352340567653417713505836273526327290698461022861952146359414760024949003187755279942023965177296637107305005085643065439183949940394112525047984376871160610249801400081191729813895697807315498373078087105781480108610844468836897749717248740972017656533438449903793283740440417868371054345672969228083819294017405418617622234374826563901409862619786456032102477226933497384376082108967759587556917912854777820966979080714522856337482795873425924331891408169025649824036047419027080426782364460059034805470704819121817356330842054224352849458138449189269351883493902620682534567062883828862974328052617841388114470787554693217685242213955617801029784919539569052526400757679086803138633206288302474595022310547638317001335699871302088425851891343016748609620857244769133013304636304999040581215188191106850052580484009040576715694958466088318131847685204796121376894676742831951065408305681309980063379882204848668998743375729555445685691067560780350898835117496923536471082001319813111379504787232258145983288794039033254488132926282245229713561149487748200806944959082453305208155740852183483178334370149420559214117610210417356589890568210039601493889871126058595279782437784905434725099013705106364781353667317849146634712406027877734807806306472863494484780765374362071469532711880015813537812156274977365482309624066088696467334292504126149115569987050852386890311735735697445451538873318182247705205470170280328356594588949059483295795168949491250221017884781592804049028912162537251587860593944069048676858263196925657473332949168767609698139736799559634225621097118949346565511254371865666869575474134843366473560771263030816719175647116322408792112589887045847289520731588723628189464956142685898071548659493343868782161807622724099518546699116897352896297436591317796897167400647447571230126640968470382539056990652924695468457179225883015721567538862883303453808381050851229712474455578905501417737883951951505068470013193386078198862495946927378013476491775520887581368305819550601359266682152067047060860888965438748900377352844998429023853834523470117817412678663050358159658495279558575377635662764117824083544868559524147095676358087323823539282980249985718469121406503175393278757550126511581444597315698972433366357382065752862357667785544718203633678157714761941511949245623133797744316394886753090766463262950313526161369838786298197623630954870777068930537590141608751211899407296638501799991275401389156988685190619470109038609911861493132982893311649263349538561585886564348425062246544433631968791048642032341275059651203107642218847445443408661148336322970758120013908573173934885483812284461070828896992908835761562563689433427940103204670652983088751691025155046096138121579071662785378660196495924502495553873208258887952121694367892360594899779002716548990338008084274647321382946439532903866549564042085765836793364983881502765933130620749644545277019962838432753280547823910965149651978358692757333125496587934995699103093977135270745832589198209320855593972795896365146353826635081962054408036177849145037428218888892667008359850100467637015274088268239942488218817602960349741645550260518484739081111469629645048770262494303562132794862989912946323256061771306451786434885827578806574173403009406360685029373652949073787685862887579088703542946546337219326324129498306188939327428523998914327431438010633724254735044266191665928871732991993185074800606582171332607103825759188874168914313974433615516368038454849248235776206497469766200295935918894522240890561060732017987140928003909626798695762316051995099344246164373871736699988760029799865495212880241615221041200279801043880377482191563004918605685713061738921186581193168063915677646625705899221011305681727861986287782716917579767534084302201118530013892707095080710527965009040457889446312506973359330921071369368509490661281097044081738719388938460170139199569454307494348692771413172173338721949372764961442154419785994260436768455641291991268931426895575163762966334300462589259540694013507750737204950522307707984231460169300034756556491897582186938650337177081676031628219070143489602794370713901794068421019712313026056268867498418606473717154966676620668821662291081351516328520803847808251547610092134552091536886232267458309808783905298218042318830448695024643330933174907991862375112668279004907926522058492831886755811549556076424730974090733393470575235389052883349867691976669947777798888819655107946197394956253287070683766889917638801129893763712241609127404230241844296211911008646139223619385075236919153528448729906606358767051764961819958785522617035301459992308791259313717450358742980576029486617629884671666252392835732048385079401437806877868726622344403030065352411191026509232102451891320560669805524400614622251694224084035241994928249554219213982881797004109962850457460218097142873274758924054577911078906796647698897403931391241978033957574760020854391663300082437968698600555123885774183338642807611215573170460977391158331239282505454327187330564664580134672702371078684911647933278212377059233896066111624866522148681855186336452911177681619718930559834446296501003131400060058679790606711314925449035267148988073355904765979937206190057310911787331070753298186559642523275704881153102224802677350820623593867346288085985080229016530978586809711007197719184759611615178435049258571183287012510498593002002160752295358347959398525539009435717766448625180579682106085949931977776922442997365115160830039608038423942676889177020253175286173777635527238339207286986382329721188818641845590247946834368176364887503111286230192591526302733018210374576395193385551478859496145348683221622810273378146611477024253840343074621911254803208222145182579499795617359532633991429189058263978255448504401775897776618381235616383005509908210601895979986168472415636167110869586572073886804813048992822932639844697593896259352328818985893536928678888144535197701110101741370583299685707723425110101855668795239106446629900831777912177103729744498508725125185220318742304006503278269590651755317315212764821578542389526669575819456496783745634940111872331263826785150233301156425429120219822442243568332155142818971670048697255257718262569027884757249171140107707788689590406407164633110118196293885397482246443073716747605182987633350326462347777415354836125072205159499402388037577811996578601635520415439121520894823186352991379179248964639312823090412747990583181669668324027695955302779023013126326018374702813619152220654210170597264455598859158598849809444496231463139164843654275481657629502908534253196502149047169668269792442274405707507969848027089619657778930672341822076511442128806105882839805290727408158992443832004219137506000761116186867384112717138835627938430136636301004690671145431967807204393439420708763904135327029332627024213111013153059365100857600855460442086237580871054745695570075213596963031029936186417913477046754978307134576232139519019072380744790587800765452569329723063456802878628923856838598386247614039101858119068893220182215779509035093328424158982972321408074387399412277988117673707416927573029305190849389033655507088631074718420920520499347976650581920347604672983663393772078955036906404394185597733901980972449080565306068439387103769329250550227385425636320558363605638226772366772368272997719862698439869248565059635217755740040203648673819844195964933090040364544622695637621233044745382554870453292851976218999301357247729944817354492912916920923035732157701391776910752002615950000100387816910175101360508694643920989293140608138953927380892423022015730622789072507409719576569171785675080640286119926541503996791917970337730377568162211454259384123450141101330010146322142958023860518841032326535737616264944627677509440017353493400112646875440986117447311969178171661617361861512933222131818101782729570959033046031295237386626866609977522746720798365942329994194989457321546732449327088244909858266794461196766939072457057181363913981113384383798584603923677834781129859600622662416670893103941553470859359660269790131038892162534298238817262993238222276476563410141765558648957151630393285900890461536864301346613751353001741167538440535039129414060265841362410549394667142218875102988784423703073597079063415061511720067603545695019245036933139304155424412205832740904945127699983785885776117649842780295718421274334507451632209807094144808054849522737101589407469544653418637211234068062940118119703263402967308306622766446697261859274261881971466168475478734315951810621689568653522190225024257232000766531406458234840321691279316091062912053569094757270774861025341161523638723988612149680263615919399335851891060847408007661502674982195644322585419402259850368191949291125698392046601273742014009554490360871730386887461427460870674161726035787167166612098895475292935904215113418590739972308269784452057551628039572871484294814637888006618487346513736186821078797534243156977330870756274387531238660626837196045097646907167511000350981119054975390375324103374138728438738844536745782512839982949094830449777830820204880922637492859732114380926748969982147922217393948735653989188544376495372336379112424522175962198052518619434391648131259572120649516347958491241177101974554570658763167889507798705798799729519859168816112439607841978575862289252498831874015923803649757482101688315418781308650052040972727128807498508751319416786893580332848947784604667093316596235663686173953511725849357948652561325447068412770319814660087692640428209663318542825733136354512117015104902850886025816878254860667042692347868097597631855034577670259477984789847206229663550489052900384913245624533400703138603890384446337292175572058466837295064273188293658978127725559342399010597540200790145044990587975997254200092724382259579468285151323363486535636614580418671153113944868938442560787304037075246578021246658963096528260212402468402966621815971339324004580961598582707299933200171107427757587717290453826801513669048456903355864283876101600592178231424610813946666203759425230075255715148541501155208842182449916484090553019110189686356519487647714238327565381747706683338705931824678486437419165172051579650833730484306805543037364380403049205360192776609393097261842022321539501543951315764520611799072722037663950969636896897725617207770198014265977536990502297364723312024409640733434553359583496261233772373479992002620620365849473319814666153458749163906726901252891704699351967280459903388823461196043965175444002452806496721656038324194106676440025647850148880239552141423972849608694819517692431963563853049965913178774504282641676154326860961690444001643665735035076193587113537248106672149190941021508854374454224830131811269961816890690105696581707102283225854033225513575691199378515812171271542760833151552287895211477159065654054446422246774277024879582293985139611267407383439985688118066287747600114611089905434730144322997303146487309184653925891924375458920839307592689859783290109707213757356968322753511514752894058019010454951507136047963312771873777519172301677977171134480948049835504829452701369112397454604338416392843937601437035326280921394774473813045513493181438803131424175884399315530467667523775540943356400551913077682110141896598639100153355744119565436032524160192474248136443598533145123783432420717187360755565892005877099318980466342178893436664273789189741115544684699955924829147730875938928663311015066688971585890994794910370620517113471643152715889207529769701048108257400930625541317406140432712430855271102987703847827588269134760345328484398593355355577891757341558035937811075156682321900482383428081395741339945891736111863339919838139267261921234914626025732946485896020320893149413657588511974807386275620484767859585283141051040863733928820546825184724870283169186741454725474804171680405030707923558389416853991194224131473006127654324934101227630139768533202375695218827582186080127568989758940429297034272893149089978734814607917163629627908845575807584939887503113099194774543972571777963644990845753732795563089778356032949477982424393316745651201476076420838563231256555099562630258790412204090542693010465638215253381670332552782743682056353217149610337095459477019507476720947254750512481567532742809231108215133363157033753970131455697592363172265693325647810487190153276579876348380106087155967410196379490677657954137636008636195602960278476861877274794551480822652061841143851957637744122089155079316205504591358299038774408627921714554643685005353017711121143816943645472912136156167117192504846069167181651002476056061323845935043950286004697780931607003165360297117105593496769179472876499875058145499911903198584024407007958832775313682854754266161410262199757695486948500509527149990625384138316240420383050560737483498020691548022901259859021896615488393525939254901632850887533663319275815509449489199847760583550864234784032275068205681569830527480131026381664364471312282522712873514229456276405991970428709304196668572049804339273367027983314768963721005560003759127424800807973077925577153899152785941448241484292529550660991585444604832127376515970035581672116563081952213665702733858828556197359679452232320559707939961052767577638357292662097873045767105905930357952187416055421850344138050861639393902067398162806673794123418080010382621476039581619516921015524954161131518945310137533809966157390252979325544384439165996818977806987528861896555312428505297089441162254745653336403421727730558532582311712313345554770682485069670092204924815417357007214298122600028166566472739637882568155052997363008362717184056681873527055760737430223050846091068392301670281448606250820253727443447715151192185702375391002986991969543861321037561595545682978850794248123606703149779064530090415615039418653652979841772919687054063279625411218366584331453398540384033015845983641310412392950408819670428210982021457585092893281769320289459576064172095642048073081957079391283005611973349878414096574456229717243297461104757938434901866832649436033492137608474492078038319391897110624746383465980624202383954981429367720313005027934654891707038350296977223572974676735949835798126110221352733665714146143416298582761904261616753239672392704198029817265363866047656512068755518023194705219018876676270843200269672771867180737964311366954204833868783921800879407359912674993374640062456549265087784452538209589264695717035344387089043851781281956793015346827042190677332402976212962729035179882417917396768237749353239500205017833662305982705633709862601221561194149218324273042191655006674311544226677159759659155414477049635046671815031735984261614132751008210518265219114104364591669479880134393649281263224177241408437152589601553825093034207963129755369278177914977222005969574265542528210129330236484725728673834011041598011354828197724276706993216519929856461813804892294407401856052789477604481525456580629187974161726585812520457057710009842839957073138555469872233138748838169022321421451528259033710771575508525449933804469260387483759216791882148547130537235437988052410217616266801985184715539305188723770837702619496185015300506895351533699888013603713879050642357479136657182507292275398088625657935013425603514341924043166245445905556865538568899133462683700471346363719021505286897418488063405087587442242330841358433003415285922034705320808181328900854944266277737108195452908714694849545246291398369379576231286313267630561525528292877096245663878016890273527588562453939349855426991374218310211557878334250167808284178077982238189219902393163890589491132481866387793345437697214314684459411283715439568487008995528756381403465724735072781154140099315028689562298041054597649484574531113232451613148403886747196649898425234232224347503416485962105092166985036032204882855877520634076083780214482749730097256305840752697706249192882301123953825971499975029795032929460564481839771579306433662019621614007464404041351595995101440853631191681693036614272527749711443654581236046598465873840172528677363939046767829654663598646522068295904804023693660045684559987369115051830394386221706537039489219499022877758719222390587473305202647811724930378013780036684179131231710809133980889137373431107746544098010079952831886544243754508720725242798626072712208140174060737830317608151180513347322947171029873919873832825942634482387430672651914326201594257353686746650935448249052506286978080764239443677797842131852360699739858269727021848835808875682655618899024114133805080096277447141696548614420393348277697256424673681965210105899727526181886611702206491441386140848767979055138250739869289105447644844251844326514423198037642318119609948622557701747212413657487301402747046318425500540141885424430110828791411684088043596172373132162857325354084531694013055142547826123310921315149447729097406563125268026659673868724626197095987397974567835991024697570178003895426120735661650550460721725341795466429065504936515973716689546765059635944289008964754931283614040766520271261427393922203624014723157501322937409498483987970237391169674372115104553482357297180606763530222483654977798310421315964852654967780804743134100369851923398507169179328940509987337038332690880473379644879338858335418134355577456384263374537896846870782388608079411550445742486190476627319144300405832288249000415376143856683501220797798438170805284782554918306242212502323137851393953499443064076333884191529778068998521800091615418035087355135979564184450333122653762810512243998164435125045197231971286386508730890628658019458787562906588797011331639996830963773273629486237656295443002396037026280510976959164576085130144789619559689087494579735761934300903986333710459404380274514615779017874526080296487983895963961039740088827758035816213354808984765439206301837214767749350107491843705856695497496241218563472793643140569349526269854800811380285599187693499638485543316224845825064132254215035604711595752621675571050144038687426641246634574416432009834725780106051639504146524592413726334693512378674691625183879391483902687012518381109574104847276907541410278109190767326297563715042224569409290633270825466788791029683100303521382483064759729524771954256583951057882761005728291347394631722748790404189134616717478401686600423032589085941419986031272307681757165143344708121169811428974168730531946813066261173097517375329501536507447565089342451621801185121074634787948215812959172016220530036206941422572100678574807664211844479091307808215920298321297649945555094061127775571346855290100487101499891903810377706164351762336530920225962906779311016832931458294801769001229409154939374437386060429040502235553325628650188028219174173546846367255239370406066831649416498784611171995730206993403337216430191743213786371479717919279768853059841072173292835245008290550386023809238156190522372016826092984715875730049511324827280177430438355800840881144012494259044429013782022204248131088248380422153071023240041046492762989841423144364626480895593236152977406637373156400030345583558018098873438661796831118718007621345268824935103148349590332427225522316790392466205796791717272881072251980450188423930858976375086505427908592708466432247206634464022362812565885985535984497428928960870232489082201574250172823968781535390776974244639591217929074429238382219414628350596517829202093263075408104031366118469930733879619300224791511097137939617578136572022645559201538213562596460628614312803006694022163668675625959883107176835214695185602966542142138017903617227688563243689213238301151274315449594209847094452558831896845981400404631578459291289404809229866750794431967041216826011285627303471856914012580586672214509476830892934342531036961475129386936777939402398798903366595532757814519602745479926041111467053046572574777308175663538890428148498632258253975578864954393813822307455514602405431557843148190278914079039281709242054718626550298572013469850541252328999868181600185014343725331114565014044410436681437300690756674855898018108091365246074184419218801977638358193937141805011837909892906608125059877522852522293634671986712620684782820003138028654442842384381421889536182457020079344980989792456513464014532443282724713920858472825978544776227753099669400921221059944841793468561094245072218464140600819037198112032869060553800712910550196963804095469216659360001466539482107802218404822944832931332795608729153755955144427569470417101778152795104402574640482869412681571715635002148416496080716147504899110368508205234546620001399096158815915736597913529215187937941215413053806511862079720809821580650225368493490797322603361612795416719032465036645784327698724188136611390848198559531336939229037575423122396615931341828961061934021539927728892371232710451458149030886794236621513647760054262535122237591496985130527655750638047435259513966452045513827765094679952989208140133436212422015262256692902633641523599313931176897765475090411749896060737889333130645386953932193267003379832250084951437135161634060220182142189490700652284192514759695203091781180277260113810449005196403041702925193181725490239598008803538597990284604062391997582404045776081507047703522515796853647563767426960091945570379862623089532986771770340094607417605291263702173611622806772454455948759370616452766593871516744942664425033214942570433535834212165763798026134130851460536282022928227931132605924285590009159036933165874740427081404671244830588881626247117000264559232158937068231317897231213558616656317484671835250565157661130983071169607023376617496333871088684605262739814037404105990694336677310159224723091906319900092365975519582183562851050231195404315872267425058467265024905335590096593335188538246946779129864736301452909977133379485748776782523036378605384805003104998644055819208449997475064655657457719943722763870690901154521063578672909342764500784461330322644071256930815833296105727017733202572819539279169400071505602557929764890421795689206191913287614962715384500116883370851138497308478313352918147500203539220189555382193188159165747405241859285347439426132728631528156693545178221610237997257466834533171575415135409359877568565118597325493192170989540828096673338192757733129400995513400834986228221165380441147234747972987830024329052551359361678738257852494175070950220077148962340873724151558163578066132777017293701508785244899689925265564662324492907868044903041208948389933561375067037622968034844599979021936161110009137423151795626465502277774400920487611510940978597049377947154313466437374911367620961648403719960711370804122258430578662947613693964394657333262982701212556441157431429537253921031429594189307836762686300017687086288110845025216631970568438343376528383970244920537258566294791327705189001582859807905151469350920491238229364401994017539853011249400600645720486829160917327257718980769242057363414204502235209355093321718444952346533794491150003809536131573149193314208941775979926901007414992072090378197585722627563413833813687276418820432150519253767674199094245987435615781104413862429219765682356264800584501472023096211046108373968855857642072466612138522036516084321204379165779833109962811835074224395149705849384668940580540716980338178012308967415453310220520406706984056771169310004095221448226589755024015532900540918802070006682922232931567275085083326769861662095731728396793509348099152636990409909733959920444300296824835041535877175359120936244066156999301494100023529603407890378145525455426315905655228092112322009227013250925878484703859550058627357260496983702176084041849519968091627781701230512971020713065753502951946120798307644886697347647769658094563841799031823199783921153402208561204016220561907773705431703445687382518202572221049046411377613635936947653179175587014431031359509977165329854868969464713392415138149373631461436464734973648844335177997208847149961435936354213481754062149716502344277794902924979489014395439201078325938790293069106938255731455505004812182008144483349176472909859638902649679986259601200550057183028160221130787137710493976757097198394514712517257814045606114997256766176408857835717799059848156082715499628813478397109002239287297733781923592065909676686541525763020530470002147103569661529826121408941263023722902626391490341250050784663187951980368518433635024008814797435619679245155040942289866556336817164625936529814905360557571410752702555235641932523543506231124473092449436160187588801751605950054571326809609052467916828549626135703463567004589692432165628655064871323790820269092745410980220276862079923340585291032413060392693986290276485179210358158363479950586424753756872377177793399561116510828817213561444204124236024621694853089999352272112660070991851925619579567930128671387677555525957134485622809817182745098599034018346605075925482247017180446000732861595229380093787532146249156251982339812225425996089515506483936937643442308225046449811261192091914296645515980796748489857061219809016567709403730136919823943515608151062648495541298197656794392975532154572844142100032862564732169144481242267363804483020846257259598334671689004086930554568921309760840841566639285257587699802353201213581456974466663548556625733990061276423092763596934981237079267952723363805972252558894574405885247145266067600663143988821772170749886316556153238519850949758422729114854732780738251580901981549004633626122662920104527891025078876157058688107557695338872192609392968496870344951265614973057690613499294572228920784742642494177467570434417235817239872560892321132893312233042499823932039239012794140343277393066790804971193622353503432923701541479904733797241014535041149784825672557233291997306715243202276358698203528032109037746781239238104657465328590072398154778590994844567710322640740287178456159168690230324232670028594151994698581964495034872518007057822206564935262276636182548369827099111204633192262320864103117441501857609417335735791238236773613797652078677096063284334908951976857213981536774193363464347761931453693213602782514650911510739995784994742780780793866073087660930295703589853808175761886727594461048101026909806157247536381553882523564867880704266771068456712176874369613504299408649286668071513800138307132639263600492404527683359144701918077891264777618935655653465937850339689625648523381108055106163611822271844186745020923239766112115699786660869589251839409030521522800532035731863337083729143805167650962131396236293402996877628420740191056766178360222756256800096917350343745498528879438196984238446346950504848167286458117249769497519432645628629455516865652998655608508543206079563393893511030092251395513696152193881817888094563861871142837473786301978921024681060690335344658449525971608202951855454008665677179457716988939760583687162245852169819826073945072668688454846269999225667979438832339294931695727946355729497810917399621107503427161841275751318839969809185586516936419691219544043270877001953627508636082693971808062020731430219069782221122648195623890384666688844180177174699168287515467574985212904500677422898085369887377657605961743312796851012912599282187776765167221317501504301242884708665114805246529270519979730093679820049674099023527225278995837936794359857310667634971720397177953321773256646802705108919570107235026566528006610012714344390132551328170878052187483287872703768804547417575170276744891532618618948451155111079969450199757045137147688353943648767495771893831433510757186810870000871022145638606075296369872564884113531793688765726956072092492752507012841544498104665403010937142582011283142842182480102495570977437805256756368636644726580623955679616416410804020173688683553385276290081314762363790567819152288384093076213079248805926123851243420749818363663530908475117994423685846777042178749100651153957920386852718862221275442913281999547437078932144906812925247735121828105754573293855272420827186772370019882113119838687022941232064087801885908528774242120178887056393034733365169208073435997616754782190009099086538006769628461398860641551259923245079855079921964419934691538227638665373644823365017473245769639243886619372923915013639013212748008774315412260437808391240151721110874084673944058803578432235008370108633594936771470215932222791605982023284130282505728627546567005286641883863662941085739303650782698205623618294748937974108642422137803470318177341017659972884143442898837988351139780733834023069525126483281833670207193294002909973982878504711600160087105999403594312611791260645569609779968059579741934286944508017038113595279773052927769853920552207938647189555446204006250921654354310562544218190806321415857127351101815615012212286800567926859902555002264553169211711045216588173798953738116986811768551094965900207130944676289940887145753751836290145890000899273307712741556969396482761309703234078544726568857966976412123605460557937441479315491787923175587276108004938498040679556160205427210951986983111609523875764007721285570561145200702313574048050756209818224678927957797652848532005193175764144202276718155027701311716425063481322461785930461750522687630331761496843986775658475230628707201413833141926828752121258416221066483204802551186178585866134562816284128896793648012638014765842041661900709620148803977736585515852255408558317169067973593168777545956359678418829987564217013285162011264785192100975017297525871994138171236236272003536002665470933207096640533994080313694317216809942725788111330197766227474838538674293884025194765445026251571717209561091370475299312398298517886981766092292964011234194195490809122053850579485119381130429684892795438634637920740875181081898856482749094687290810287893980013504353467787322051916888559429106083704570585709867565558256389931729320049236715218083831802358338929673894504236125840378389669949920353247915299900567466578237678901219470872916705271403188556628699256394404880368681424164156979615159430196587944567337365566655666361868122446972383118902228142301507514178707836699820661503233789716605558431067851852597888011639359505663212028104861528081249821149676244609945738443112705804296597076366539980106118751007086657574975767815017273183946182953257114938328517731887234201141758962564285588051255265739659982705840058405848476482898806890271950504301825545788747634326899875523953167234650333976478635766443099391291871885311339735594757111850320941135870557778636769614109941897242508615369128988656503667811198115121647188872466733873795920176388998643999900644670267275244261714805580077492430665999374288233906550918509132043820415844619901304810683949840751933608307646296655598083932496128641251058091058494547485608520056306918937830793834215350763362369052769693647138642155405453480741054477309001517749831535506297314436349268175519215278762960735178764353249707564524006845974153197868850123272832263859786176569174520299608029222127688190008061574207735265425950066971828008842790801075663269227873579829089604690682842167808044115496249120585013140071579443415971791353731622783670065028412547465873198670540797345849190276405450377173498415116977776625095225995950960434126710486394430780281821831779797067870522156289105745124689809766502001749135188988879543998068540364875592972414842002371007482511247110974242700959595662183269755729630580333668814707809293330117653395336113726000445922952743710155306345559416006808013277241679386515361698104754096728025835033002196224461717187424135888321778285598886840895987438509818011250177117104103061350073656041565236272282702983345570095046848248182340949544989356768323498724717411919072402417386702043308931752697201623937875473468472802180758097672970851867296593423263299845249495338987679740738114557358514466003408682080317371365238982071286465898813090115608005261368428549209169922061088771489723511810421872976138775717736463726306473542872888738261814980856809989444963053171648567558382947280161285218818245914994279856623973711026465180558656079060811566955571456252904436097665577026404849446697644309492572233138184042898920698532673287467861209749700765054813477134770923672890521862911819415313893245151414719853072310008196498146477323651750205756476003732488999570388626988171928425132909228531449190660494302806036045285956083161912113010358631691061035669172533429199962860952159566509562238295973348994121879876674793746290385391479897299827857561300225070833998974819674629383239928592547105839423284200898247835097611552351453150504698621570784825204629048218355399593478569128564762736650543610867911928859686201551917371035734154720908463767187729446259608459548018309850470881540945930928579630637122976501393536260523768901327039598920690223825248948722747637065338767679018417298489049077441594089393229639401134033882453285222094213057973388574987327495547693215635184059663926746508217567672732738452566158388739988910549512407030121053617386012976900559394574062237313876178369682026354016851745062705507814399094768773340859684957619396600450802353562552678321049791349266750692493561527814704797086800383758878353270171627557897523441860768339564760048883107165977425302482436123364017953231874694697682802993828838178624759079518487896485541814969589871061384980361665662376911016553261010970336106202310056329131842353695600372151556447832541930722382107083141418113450922510820604722009883044903689385679027425237902767188357100647689125883981661607505987415360730963647485016085243652680558056528050472354076369943364736582289303644357240742151342758591805492276631222507150322745553658888857221085562911384688885265127581003261219737230218990451870019347664852366788057249584600815184316137876523945155341785395960755699703790824719910881388491069784767491872314627814671155403353041889909073763129012517833179972504202783615838563833878716498169996534943919522856836736554418516534420748357511245026625312814240438509868008365538841186059180884878806405075003245074034042399884359476415278745662426316131047097261799779389594453399183895820282631210041360332957155487326665609144039093286006719767186665247178241226729883807668712276503839702513812280176505213170016994727202682385799991408969746623729475313171212171060647075132608592980490586514673230524825157828019570137908269044329804586751601765561285918378626942043776914277391451383664446717836687520120925705795425891734900061086147744860613194177541783007987743425948689547325079550154953716647846285926078049881892836893905710757614729134476366031776460612761848497182353529036126194187700714413510368095577011268072916295913578523659440373111910664760392248271863668894676340166552548447881296379986326587770630083852883341323027447117506571667429210682828562446481235201840903908312838287473825270011323722595835426351493630422706345125447207158615531397851845890156885376250493410751297488805284223734623868597928319951120760114591266623783066870171975800037804794784544868586976685575535326430432134777214177254368798496608310030317919752186507772811570135097107569821086996560524462547959675843271422983523649811311010677019100253650977591088973210496270022351714737449544853788710038159409797179082551813989211864400412286261569698938854724873723515261282241173113032191657414606398764953607289542577164630374594990558083838591702564869725044227737224374540554056215503435048895443205707124896887572871959353867435819118623862641472031694518726416093987343833853053215652386242502790513946305735976184850220047748088150528893628443489096265772876988680967278725569676543007123360985274213360538417990230646304400816621998754657871606154455389943612785987357716327167765243913794066209550580410471344810265575888554582385724000601947777402257461652932182459364274766791879006355507141618227001620704463792999833089144979986879718861258550992454937189399527739843442233636135564939067297611466750366881241676818702056576145174442526705646957957468692584329371991924202215755341797915020338871320672437666716394157224007605117763890761232425604832088149128879761307634075997912430773147904253398125055586228352358383516794892928472070023754944549027736589910545224856611093790101534352542855901466753412198961926191982304501681370927620194032692954478230365669555085693766606453686918948141891045111265972840623283999412872871553921803476278465166418459071841705527132083222060968972368750447041255648989055912153132019774442821688884118588690619942428085896131340961873941422273446942983576756757168951547804917753665483922765109905374583973121625568965594918557015876346148302957816237416359908579204351229313234750438081821395304416773431484755097509115041946216944168097205398832298212020594896895589387477621791614000859188810082967281727337624093298102213005788907073224038094065478050506782493514900655659552307353066084879494277163218705944811651644740177570344131696701043781022081049155483968203483511620408486515807215125743012009809256101980677023941294462975717906867533091686584911921641409392378400144257608560439980315927116703951871316672224384708893860365842955823786286145961919082554916352439660124174561411506732950431543945854793184217038989842995473718845843242739692361668881033337310714554684551786575813787334049175836576929532552507233328061750498697798736157602578518135996901718608922399443689043864416420969258777580559460234656152064513287029667519645201454910355856032620753479514200600800450815364378484437262172467891601967801840626726221002917648157981475616983634482101643563771656999032354729125807228558177091148388444054740793052175359391112779386806310419772175830021300922297765430732623684121074362337051389272714173971127010034958894088426653237016631631848260643858507656688099090641768776049614891750730321532292534221617715271597302083530192135250182096023060508145665687189438245063383053302509446057811440563342828830447928296606398837027238212848113430956236483266041353803013811869095106053267188952341214807317923449171767199695490119158966319729986803088446960749063206560894636755109875943912832257559958882600117603499498008018929410439466706493850736157119669690459004533988456187663190181382712904451131601154800510042209976363523554135283026965425212031486385558491467596060528556391869041958649722647883170322273738711137226914067065486354749249555147978534195788447065295569335175641054440471574540401942995848301767721965169370068483831578266347689954177241196570295586046961149360251559552402418523123930110803292516233285184741165563787574479823225660886510603032137081277647224899393934699690642432400777749296798539753908086567897768440855308761742701002094583222278733473409862516062331690934693097963940798684029019659033527626679655870700739685024524811218122430617537733561799081550450095673478815229379529616568768041228696159678850633532774293845663355683160640002793237396186645209223025506439532593222032699562351331297707461154915075625899446646122155815607973061569962749474222864210106811502515428011226857642020835752907556922640724065617635525075329013816628244291721439799984491668966280417549374804558127597577815238113132811131673083703315232806799995056679762448294818861564618830955945512350489296699983924466875496848900901321099272194104926562700794817561799437137173936286229717939618555489697059341023464966385044318762802233962703087650772738621839145624821230761961324905359411109409142663212110359589743359965197406831357659542093419663027836707213052079465295647334350890254695568209535918311460028689570327000411310393161354251564198790970189595941554660306157385705129828896557755831706130416929932816029268005140637928633909139835574555406314563272990704169658638822812081290566354059304868340070760431131061353012956846263103748069189474097669501781267648738057480805665177470886676103222043954679246532414470747118008896445574769741004629558880462347476143418306971688514234625082938101144226093691144726064308985858800707776034658736170843777320474990171343911898471179112918594934349314188797633915615760333574534309964635818438970215240824747570911240160768356404778845727878144909599895536548468500806752632034995891770345606427452875507029548940797251171000235678677728339150962578354992973012712178372813168089039622418689645396042725182031426344529517331648176008056343623218796028981779574787433811027103496198117165259495047182744122664425202113044536797693625284422062056089085473321630822834774778467712249766689713963711878481024809381547848731256246829009922544632801867617549191401817262826282552689372725337881116453619327257908673294145605205133174122858911663695472549154032514379484404223488121510849531439028115002890767251028063183259996010680448149213539614155350664584016353129240709094886328341216002204313080093235834122956988460646436784666105512097186786206643492141937047837268815080781397208974280154136446007320711400376637973094501133287001541407770459388310964927318638048551371095920032191255196390281013070348937209697149832873345615560215545161828853337874880178806072027060268060872262256417518685871072358162925832297524322728321532377889642965419474258020664292626927712009946127551716535830729261131071855657742917801706668205915262040447842135778825525876655168053846051783219984441702192061485132400134555958438623460216579388066405324883451250238555104051850931635800163111077334437010360218159068536884735121684510386637311463056795602353965893539099001172724476164722698716118000804039701885011507274077284435770581498927850267083917148654455087503211791284319851501844453163604788670472304518333280499058309140897806001427421739629359878333575966081230592869954799414436547777449013282109964717215833781802036580386375757658224348305597443263528628617149579691242822374373906843688591319577618227860735912120769010816528462314229735631054024121737919479994925907966126498659723078552669929511718355843474878090864469540375087373667873475238522353015519640253146312775187942952687509634386223922585298595182567982524030053643240282235820022715834754796043718702929530963632628428681171961465654281144459795899705249910360798481545318443823538597924779323650182945047659926054416608017843455948513149087580418734013990114282539122220806077916910136177996952116562282918752523296068608594224485379207400284954129079705068133669731403063625667217255777396773609012426939414519064312201293269853642896882582578544201260713574259074199614840964147528396330003163491508146646969152028275498456115968004977856709116066053818705935950122506315629912648052043793050577472034473623165416181058848232770472373956036214157687703971897362012264316043299812096273067117071967758527274339758175703936370154132091662858229877918310151313065851244144530899734285479019491403570930017990194678372820386500109119258729219954388464842336525733810623730406004824904058443391919485575305743122853998143798305262295682754757028267075268815716978050443732435370544406870844889207900510628861306072059266068350640741789556322391000967244873277364822407855305068195969531404182863419172943516532016775215538816833218668321852361238065516784645705499562424883013482384506293717184959020836079050873152540214175285420454791313618257024719214696980167804034386025529764403322427414706787550958524727873241782084464326837745166721375796688495806678605800116236290204106187332398883571737605655468174504380584206668761364311118678042121008132867435394388890710497541828244027721364341850115597558282833520462625597604657407694866093113666799928781852880430639578242145089065962064249200209579856341426977300715594009834847730510640259431495646090588559323533998451083586027909301688993996323189017082295532626177151551331299588018657238835235397187051003190071804893151044452530218531110620009654169658732019551726200649127020907187734422272022894645974162147205730956682259485320914733531858504228642231646313741261205071699132539195246615873977167924268939241735910537709105531381036742830517695656807714118044272091826471766794094304520160414095204054742616237311083784531804735605554976706313954211249384093337798916947935274053140457509316623494895561775719193497183174440104390654409967853888469530413154109877428261951493512924114629183251611172254449079008820072341411594650920086163445479109957430343110652426023357108538796498419866827033298786237232035548134593737959289064477836199313756434719864029887353829322654331290337692810739363622964872667156256119892821667924029965427187560359360282493994537067328355694532078205530687612139350636405162972426739864491817419431795246245318776407514569437148626432245883192226845684079308798734283513383847928332908761753398687241659956263047742508563829272258057944380240157105555052855200330348275204244137420236506728938069264934235480702233133485995318009499557362648898778903751315682034687705365297303579745152424133972911023287980670263710055040248320535611126680183459837358674647735406033990170448079275387793663914446171765182964281204084231633829642048647509369716601345460077928059758698088813375597676345434682088380199781053136433209317632022490941513616766759101430638914767056171890902415676072593493068368664613742630781131488804672769303042829174763515335278251263340940797485755424144443245476758162631026757750212631507569314952189308883277185495276609158602051794056328047402446934718652402203793674649153406895874457828839908660694929713993753221587954072537542193064730454454158494540992405603700826911697883630105868886706476932525348423486903705363073360852313598754320551677733007720034739470810578188471341121748834958540243671437504985123654024370120011164664580473582702087153213350427223283742453843483797045076018857600056807245112064963981568820824315191123449095711893738268596877272536351369834069007301833246884620419531605912009223116291598674669217960712019628752575064048879005935730931588287182600240421393197021289994488785143660943017581453467176605399439408261163041709569244095771833313760749264800530694629588131963784285016316819673253887918847440611264767149065606202851214253051649511369794558625717798112132086701785800926858162755328747357057586878458678502544957763810204695932913072578416431559483917472357925542832618762750884664564874875687653744082051191453116588769413720381880146012513664684579055470448537963642036471209165160936608582452164324712704363991794183569456261869238532510400627809188602714385334866776358520750346098313147530676379323792416662613417735920754151388041005462747104450336754633150238711040658434117736409283255454454107913880921719944740460345699152364930093579725906766979335577985080210831230427464825925137245157657056429982270886600986777281806386490882686181264164324532599211354143754992700745284924922810631747990499395763171268697114643596786146782512370773341888137168797530038655837496046451232851068946436569352066592017053386125914221306426295513315902318285737528505534296228199506343785402689773985166374638458922178140085237116965536294079252495819535951917527175743674952159855521140264690891564174932733805427524607815203778493664837931943758337647955444224157590251789759130054355860876583435287804448045126683503500735754703602893845097648270932062839209328065602781199717194739543867295201648755635801028208113964380319950461986364014146248736743871316311685864484318072646429157900027475638839176550759281868176773419685891294213915478624113388923234774702973594233706716430789885015978337772381265535733629180062829067857787059401332736536385780773612884803161697547646517078048790447219803583821381252422887814485395827525635693938854271996078794310504297123303347225685668819537383709755503183930364213275134613030047195304347313563583883744222220210751893389106148043530484816855226250216604421365036773594911854457881144952396612557279658491167957203948280396826289262973376163914252072476220746733367428914154033682409157567772164788136230677499144495023158922539875104864235957764460679194509082691141241316363297508409584377055371665219915663746901071197766077048336545471756326347739883428994712970330737501338119491172734564886503443964187461841799549742150468176402769778814836728938993706824158642022896926829124468442679569375020610562000401661618697815090267645752697305324918450199576997179623824976399778669429666229552569140201141939619147840391121669693040410805138626828109959001318012186621541794955560268832050668294017280188730045181270199735998659933830208286417958536574053406500133515993298851150392284872375457412716518094997464239172147115126499479601924374891899488777353995404721964096482274689343716602372584875099656812623027851749039790206031753150100064578337584409954348712498826709730091149577064755427182417848988957971238818336223670158909642334087678857164207583698220184651839709250786919248523047772254411841258715233717646790246364422621980641489082001374895657544400657432744920285193186565527833128082750258101958548728255865338824459615572742351597580391047284910355247640107790019123645100683713550012461193597110094841298163896245985061854366081555278791659350147810561003309123100866814368431672302652804845040858002323612139219345582828771434780346438637937722706794153779925788783280004800775560266977670126780474164985691120911870183346986349005986825966746059984463690034078478314176080967470467338348872982882435951360277386706642337034788732591780236075946374649520328892093801168481993048178146482660155366514225960539581841744498730934182225147688707827388028692973020965020075681346083317587322373308455091082664671522335888285073639314162686336556150576730216565188215650231904593740784196011782938087251073093570535789522057447132834176528777361782008997631262939177160413145261755414315261917619513211244777126392169753793013367224738038904119483887106794079140271671593734243037080039143896628610190015621760096845762869179446966038399119889835719716658970540818865171489360969525887274804252566211552316491766091458285275942902683180761878404029379391151694583406100321186517856927538401425567521474716986035049040283392578487267066226546613937575130317819075160889640299539039123647119948319659022829523668495906124180835104382180636848921822641635731241445698897192120933797157307931914457192414178791306755686520125421579803331525653223831144902865209291159274354044655178726440000551526282934479744212526466811279877873076855260460654141814563347572889501597448866647990803270694791472161506074179947775781506029334203752997073242595640097988129427152773923233810441553904684320968412642866780836424438900836808260587765695568132775295753437562471853415893766159757344653577621451482048493253301914933841693849258480370602211870328660963328679185838506065805512431043672896097391988304789286964610646390369640816175225449810353235369170405205537941882602462281856880975831536274790303998690820753662884401713974386250203830196038181858968540879623983076770041644926331557346233321627464471813657333938675291655015118399217801732300883602161819610202940719220371585679085209937973886168862679768895415166923308125672492998548049395346053844909633362633543723402417484101886978356480573822918176899203064414920187750126019838864733627983993811451988746615444568327482679092640941962967507493185206337138102962168049376922793430590721440474150642517899039850752073341162139314026661296403079846129463569445630285718637564792920910138865850100556590451353572794059281769640083892046299503334890306613637454446329403526231479141090264833707022358463723158352885944204238472145997690707007480727009499662841466256421934390160308598371877322735759248166407108422861796209883552681125049894980006336396655968372280613719236778637418269058165197581951122697445504492033718827352517010813352894074430664427824422865414604950236094837541366851145359178165503291693085005572605726787954976892550409477183910877811112861421756397033357554355682113095709870839560062223421880189659466846377962191216686340698838272952548812939505697548818147101885689309002151445946052049793197566786075000011127979165124059472889804450299718463353924639550675860208746742407266694583608170036969049648180584688806636791767167190673699844202470471352019652210992920612310086782682192495018324522162032422467947964195532519730279158104697278515836523974667531270852097178997317558868511533020836195105278431035466108233677307923149752730980911255493945039074906019226202569615855786170256042823649295414848105813022915359362873804742971097436971108781942229580049662117564695315855799355184331737674097689836787133904363047814981178819767661591623795360840587775032726721781847534823350107777303884321635894936620469749317227396820316208016734642704938252119905917848514011740534021125839633246813119769832311538697348532877625777553129910144332644081925553175999737736885554842977644435822367385125282297350317190504068370252575622482435776711057873308206407978077663503828869241276179455139098179879339915997037745804168606122467591573334194510199088795185992889183110149350502352673646894977575321503367573664781729226203303581958072749059338370017589193937884013268206513103328245222309744643971121478937353170232613738934127532280422278314964466436895457425494630303006018731404623340637383899895895444460996905558622000481776643259438160651349944087994546964519556300189803639754350736414406306522988601845942231784746931645277162620838009941269049774116974010923812401274663024961509241149089826788215746331129338949343061231727334167414670548397277345748377934436976122050676673709333618613549017684678903641988728994279412661821438259694945833018196961262979351399610718135968666151130899950704867432534031221041184433012425772535312653419388648079046208529511886309352197753333816266377802533839020723537052809585575816574340306884832852154762482545168080660734494982682697275719758074910859831849020045197730705249400410575799593919954890192348425148584572110193801626485226615956097701435630109603552019755563751513703815661533972227873545066529240241731632176974334060833103811455036812078343145062651954636191295117695043643626517954771510024619610725594329089021576387892254866193613230596175415072373308697467758723021089192477013320061274594426013791554052341976945505742157450280804288059349721915687367767201616266717794913914868351081623350928579461707323126492776626791726742321425533446019676370083010197466123265089389678203839424374266497199496967304605490251645858991133711326346180702594701058519531297700590403342574393643356006857532676094389083126774947090620845281899519106099130757375967490837602019096259635542917333634552774811741517672598280553825994271851612824638853095476781956785883654632863528374380392231291212185185839025472787766404018288762560378675926113709552843302524079668900377732391458120371262452063729741062143732627326470680644967372325250253966150601430686520748132125847007933832887257215302974386781423956902452297353083625475203624238157381266609934197785317120788864223896514023586505170775296986907879186835566421631154356755280321639529004671532012394464310454946699530153077018161857376154705233369421276109946833546220406982463833992134710326366459038796808008634261880145584492863586091729410502779588012495736806404315012763146107154935200619403944026661556636094330983551884811117574574697524448961185419450305600875655254363764661395852637962020760102783344857155972542627311828619602947127699370052264768922843180315057222169534092624506323549557106156458700464138564520650859483573224660073193373401717761491297133193279123439030303254557110634774495100285699207433910367968689020261067038806603017662567229338837752790308823933838556779214983373848694275775341563147733724135713467314600721990826910238929469726919533908586712738961913636835329597584040078084756617471572664274107050587952246569477946740046259951575524221841517739124659353792595906777072218466425132007767436419514309440202561604317848556378037452058382162670924079471728930321108699218364774658579492491812900480773774812817742806504777464627950797796891093026481253869145533912782625503062174908157005817741353536357016456028375231855931180463081218492160125255987527369619249483845374429232611559972122950064227472103256670044293858952364112708343553424873755857263001371049525841845433546951449800047068458539185690865557506461389752124785522780473051663961159499288799669605166110449353794645457255551960233978405925427484859626982987474018726549992210501063839349904084781949876017574751778911210251134722452594300100169145209265583375725103442479070238587802313948218038809335048141382079550147241299480908959637711632431372241427331275418983340698655678809754889665313528195966822277403515990992382758262552028088017729303512645883188798631960681846552195417851730806105920667827160762700823362615225463439087326733415216281889914380114641607338818278201562066046104628330499344196613260333254700494440335704531207775713412916063974782726129152291541360918315086206027544936651531629297705618357676801890754773865833150437436927456599735891436056886962995636920402242530635144614973540022969617390596779088916699112596075181893183613326373845837964989680360048560201939889845652583410649997432227014642976648323766969961830985929479192532412491553087042360230622147810158623836052956648594705497412605705313636188754549213677192156920112581139087974820310376445592307641090623178693358501837342858371941615570078270848890297733442354709631206698872560530704789893744067801903259068574344612536065855570957057356276863390573164797521378205845625395766751079598320463420416456592353505189235879078837407268507234896752493141886020238117349310292627251063935556804571898923173593056491315701725640122254572518042273608832514865034654738732005791247815814042956800226164651613569667796287872072705860922627970084208938879333151367181701387159919049368966006482957603250511512901047888972964086893196940180752205592938252782409312277542704727739537944209051592858706207038099852526327345815249574722885856098251710422360731491340772684738954753319206315784941514901649447252951905756536120088866941338773238210171435160342382201896039202133268259166601430150213395284764399756564654054809089772525193885054237315933103613985612379466010528989220143952661019795192991522295589364284172535527770863436946507583126761639209963498001669798797399766382320156423278242284255827515329244780505846642541244054376563127526375328669658105417872007664967535078428988159062059931780612250883938054822677022514219118377459340409822486254870184592164212896208796519403850917083022468295664636124566414886652946996944240503843701880861783711963180021777333708153271839491161935193502478414210894365095868822281496788220847963202627851681870126660551839374268722950590031628176002820822662150739322583692616591814532295351005657218503512776524881249728284366363655291626639672287182832013387308158976378250299196574359048493051903346495830086663947315946893755586701330104029852234370913661639004839032694145048360525601030708999963658859024141121820706338077343989424072412885910110659575140064302858324953025099480294674497082016785411451202532663916561633146262994959402123486111269211225673253392225834816848261879951699428360759813615422004189902059043766897378543747979936454080588381590994613432122751305459402648484354629251445329880650703070847346077214040325938873798457549567680810319285300926598966649307463474146614613348777361781405348460549163216984596915791348539006167312476793535317770644289974982568999887255158399897760005971963028815771585109291956341048233394417447330870231638032102539420470288738021926268928866129687618656013875143152503407292947636165029900761560035369071580114947692274883243914874062149035058586239218453076184177309149981544593551623012324877048078546507193222540005945454582465669102527219991124261567917577588034453714292011870505397831617290297968083356421443426153520758546890675857192915446220364598124688701629426090349582398409550536401386474144393118370656191524380630654803620780866391018624962018446280570976027605836921679503725797433477372948436681963314454806598003744425835694262679028145748449834000986603943893753135461492914933293065390909806363217114109034604520480216303479205949796925371804883205018972408555657527147596016840377140386326013730678931851363129180188107582314596097741757092505538311437462614918150288180449161616298717383880377770330574988937245188791593756132475376428217925078087996958194276502518688742709937238651365937569812017950112458869199185185444680357713168953327192916847918895104795918900427514407036632803108935104126290240322928225562508835612412898897307852154513779820900265090107704172633187649356936932915933649116960990101025068547332328637149793405214659276057110662515263571659265207009598946555861839546880395625094975224551648756751795521697536078236276511952978473959685597181138059444878314017639498705900708404139051447211554831502924975953942595845987178941780770588766646986984240033699000737427460502976380365269121665585786444325320589919014597909039749759383478038802905019306822375754416695364485263451061083234057872412980448797479649661396252131907872623273461638572236277217766600116108928280510463413225564143772411566822888532303720285422145060575527624521780816499385442149566356423276282689671474699703930402587627472171264816127927866256852864071888733122502684477667952908713211465709689734138818153788973004915509612493858462374516834979890469853243121312079847120877450955319926147061067124126054996253534278161338197411635390771258423408236399241947948463094507885412729479308530290532585502562008700513432657128528701213288353791656426332445149955290107977853390853306892687386203049024381907785818013736897811852709180077016535303978337197127137578101959102821518778285471934819235655561988721959775968696785976831208335554804696413081609425348474697336603829093487415263380966568805975028917023995792555944064009815328431685930251410584477389423585262917377744357831003333846702629501475824283761201538453988921719920213295040239565099761333896705202869759931789016554444995637386426672238126978200099072790981172863287865906630398345824659448987986843792946494014990854552114124164730116854848928764714245613556361519933496244153694250874005720708011232252141624493501655533158200871490385384251301017551052488953574570985011999862457587529877191695874308420820403921019114952576037538202264908918970117032475266631933413265491439860582491630381785261530310700218361905189045788854644231632696248805973242523043600570942298503120945121242895647258138502969745472830383800580034016296699751215952545244506760548697908909374217928463194293951348727489408461877811952918292977798011922425546413917840555346149662616679293582440894639959075082863449171991597833910278764329070591353476374353651508580302385490972253116474479017985163375087782355069029713365422590825959280144366834891003220321161862631922358145063832207341414074224863946932485684706189672159844425113497852336878162973102560991544633373031721364509428255092022308215803881635407550813785874832548376726928003390974334309399643791260778944703571463738172087053531024105506861302769031266197453344766737016220834914068148074694281739928064896225062147897512839975366461629327715062402505588423417851778817970330061065222704136282136904116822517524599496700426262793380625547656345725472723145628224768315627212780932944318849222364562838846816428341191343240027579749449355617863716673004407478219966684827306649576546599579455127571125711842710502924375762027647808621436385030641788054051763593496236186638821483245557916008306182663529449257836572910570006261933721483122153118023166577828920005096539436863719375901261093460722286482066056011647905845587126363796393667620314084002118718977873013825793033873773892913119974353162267667674743787055745598911277067780090201222006283932662799389000808001895821607552095591830340831704086686098195111202517289747798221507300802072370477749932985122859939093154371019923994197909960405867488584392946729243929600273936140788911963901877911681791321313999979362275439229364864531795394840141139101850656992590777176919924313630869748779474692492600820273664670691037223468730266770171613610050528557052659904151624442444230326390094576259118332135634209915440023731152919597123609741554644479089400761333748807080556556200699888105896713217641258438641837716917865801531628842419665927861292632467359601375774048865636279354325815500361763470399325584524037507048626154043312171214463715970389305741063249662339229886059139494483591533975055358423000672683784891614151919577631291944532998807653594585659986333558475962862641776025190572804801784304388317577402110131855249465309704323244780082868576477893879184352207618339628499912800276741989337031225972023865349932190062660903436068786259802594931372560639335590132038061882228185900696378395082604977777834320716692770935111882526900519737948221879205824766513462555940649028047290096762242327334120939868553873634575245185391419458218937332974469757687815370972405514428356304049580726296847494082626368766431455118128235869261840508299392118188469575866874706041503763723924665938301665527111488575025091166808836219865098301033604148408980590409040944353880175984030815616065831669820410396496775584360794958556380125712175053186917158742281768880667763960824409962275089671515147241754479446857952000304269415607974376092292266448208481541299825211232943285002439425160616137681117484309845300588022480849528300824946480807048164084564229145796817016725740513416631654002097245351185335680102166587512149842171317780414915474769638548892628614174030167106047242838251264573857187099860880426304640383955627104363174370153669966457306710982738252829035443013979075016132532389416233428723994246423463045478485612476951016202744856056973802031878427574339395559774611587625174349329505128359768267454038779520676771048288470576939080765906782267597089162013882286324979948756509843220723987204434085910887476749365969474764110972660927677943696026347463249455350211336177035600199833303739838408226977896890856953607796822005907473077902589004844146318258592201628386593425484343292025567307492759386662968453105107941418210886344151974001815828681666970949332916653969157665491796929207308601336846783450058151402616132391844869824539768912838575458133877730388192601883801242394309644588387099710683796072779011551634778024888667432195041838348574565114601852456780119007229309733570432105785918413090714086201565388053045467404054890391742541644155411207704786104398736788826793763926396298160330047580898313352080547256359277506151132152563038963219988578866073482706006413793262991398918024432631839591829188722916792770254026874220717336287539550723677809820658182683661678911551230057751451164111272504307000163339668286139911326585191001997417059343668072758262956523502625831235882343913167303146492182048932610904708315877552775101614646178062430564626242872763499764226053534063226602040406500022485897599890628249957200891948851793334350522203473398794677595476800704681659984954658259881591040040445771290088487148662908996803145122299789519277741533586062050869879224598892301998210906932699183995871203147716077310900688305264548144663699168506713445394785496822711269185189212906601723225214031058785789699151318993676911586441790975557200542431456520907540787991456099066212294767482717294153418656018453920165493881091992027162719150613810312417677623895221127650957221508131362984553654231573106797025565428065599868311384902701514400068795662714318779769587396517594038378775077109846007719292833154363679766009425001144335133017666565367662589255523503776638420032713104329468921520327848320494102802331766000706981728731251731323959341101646927819534088622856173731488357710325269901223883045284519607986985578542468997541897319421259480863874477409256892339845867710334517206493162015616830671200095443158789304999925354304774023049163551363254705326361192613781371774423910232677659537281971220646060482493564151819864506303772235173274459378687743109008361011220759091215323817016172092118369358736819815501502930283881950810965082792072703429936741304371194533134918241534953089874354292490375140396680875238347114224659162640149491760400512275201515857948025125415940373599199631611762024126491359558748834295426799462320819009382773007144068593937293374498617247498048354350795110334652755678308825613284644245003420261491311332812390085562041852263749469348698759625510583459906848771324943192948275856068981521746010269139269710068560580866067691272883309761597893836698558930113933091453175904938221365908082852312176979138075518807043041595657688138250087102195955778260315089977842517550583289894369375167524292247412400309940855858344688998315450599658556370802122156613512542428181516608349806374948114150993513703018278040418283505333014067240271530027754178857971219007462738124275955575884795919038877738274760025521520963287078843964248503333532442369772746816549106098726520936747757735794529886946607132788271684527787448533274005432760174939993565537611292459128710199762522594546936883200156826909692729566676468219530649890989841381287253407838377732724746889904956531639710789370294051058442254921455955190533738234893808181886370089784506144955812677893388317263924036329422479225860979089629880054397047325950608257395955523253654978760415238673630178357201185534724829419296352498010452543650737830097308835033832439139910126737133871432297276136528788727594947447737700847779681504442721721096132602168251627916072321091087898057969707394948187424534864343262991310734149447113017199277480023662735430687201257417498170535139453498855662211345311776174583759084464916142566683058377339611058055762801969937464415467114024012610278670726489708092500311337393497199670784422420623877412126804903978471521068223226712104021919252449811346489874726390283434034366200941798042842135115909343526715179813209598732579908994591724477864583165202003766607446970311170419865348998700737333079519093355803545274389413289894688347835786842693451868572299048941374991232536832199902924963777649778784422060696551387869339358785193472285068469946382042823792802452406502427723253714002392523608427122773719464148997651394909491129898664890044267945485180114571506515994238847891626007459859572775763839856598892332958220714547572018891420311520797203227099955935840851092663389439885137560888605996246726840864990426645164460909875567360487904905633058515369215118051502973963168799844820048044805117320150130619652697325083494267881821203539381989326030212390278111894719832206932109446010580272332078717914366286823987079880154282527177062829660473735626388467444463513903729468412342985028873483984067747601133313765794941820814558759359725857806970003963760472551024806314968729331539524523801530217638188549582090091316044907539321975347704889493576052115365225344699375431623222753924894410969813289612413214604844402960159506039931402457785437850543703385849790142925865475023452894126221361733927295248202394123641188303198236998822071772019564591840475981118490056354187015005580802664818884835140541922547529887292829921487556399785304268782524126344691075957566864273229586184169112497251520046457909572291711755903983774325487010957035772111173626691715178865659605111277068749300821176685173600734613380742982342169945402302734413837850963535248616210926387608478318611960095063379501368403266728346604412005874286348394231705247615304132251602889942473821450090580138381261832402168511046880817812024117058056922101311941460639973155194013795391854400762460876636284807453230201414829692786510232469109566348555783836514069546483071053132529357818939582960095195953036916813694065631053361048164186624264642861818132534328019208585103127338668521881203744338202223843034953946390729867228079108267640284750288781540654421153041341660357381852826139451308524656475726408167341568587173871592599459299162413594396835932683391936127481642070785683445351569762453688728099203794754141477310786958105578840592332828035691421970806882462794439899200418253814972331032567844237575352684471389658704171838681939584110966396407901316728804971979089030303159760526808653920989981263569667270471158487174689776532225497692455753857007406477375384736797215323676120146968373815700316040402871731417737745713646685215360032655337156078174524621717185089604580312473930171634131890928093604179657455974770317786205404596578046402191958756065645411716200168225729455773593863421764759625021995759194065460394297051620795698184134807499834493487022913393106711655346249176883856415587901737878923459186968653772967363603423750540399617129721094610522801289464199139459578979538949958711234435742938234421011092869658555326619422964286600659663194293559163698840705976240855020131459420484110092460400570794850546845123265544094695055776707971426648557042702317450153361198993133723775842242698305576289730878759836014648265775647246792613665427091821476161759853015487635646347288955944985358866550957885318441233382973145639060277448145293481686133932988760420144634239862104327141007605616956971217827458514096714567479678679487452864265782132528767114683127630413771181877950502497054995264177537096787403078742780729900878529147248309887250545896325181232339525477657620022512675584327278867795800553593495987725176881984037957344675936999018503691878029941995658623142380907998858636752378970923234825933025975384691451502347310363340033030793237128790457534981717218294382194813035913595321887425201385555475795714820356692408966448809664759123569364409818634986513831918581059291016945397415182423427184569746446496153782620716350160591625831105468359685266730231036183572809541357618547671185907726474613160318703198475075362637677923337966644074367380483600179571639277345335241571075414235113087316879575153839356834298468007931361922662127360980325862996899602117401331220515137481885456441488457751902308906773218003196194842444105519933993692376166376117528773218851152742117566975642181735474840226651254268560607421706981895939015198522261517875072607051439932990512570072601501838300849826765036245066943100880036316536468126314123998456974440268444529011870545789943256920967113003149583169838177585098933424531223755666119000895530096756323657481829906757685478345497863831743532574193212243454235931109269095290428367970973559082544339260906711319691445761348386145592238750646593117188398080970443313258135395143561717590911047757352219430543665803054769998444354468782852735097205539418525930017886433656016363813410965876481419863406379451258953789881490664826948676628262997415296141012854612263053421771970873875286724090524651712187801245841614367723988328705053534508278816923061454122742743346976449264645382229682190157705168632933729187185218350008366545522392079567735870986603450725869831614193991654914850142905438785512899006320693442223673753996329296919230012108239846384078349497052446763496147822789097247809379937673560782348315313922644892562575200816036628565416534095859568961278438888829702289010121656247587183089056082573980798405150347926972078363649600926853474226783651202664114755743627553561922546200572418531493757300968907873847756606290460670802818350096811784747540203047246784013239601202355929400381006739787328571393864780061924692020395356972717663936615769487449263044872005342492896384682853657209281172980357536106765711685955815866293914338993313866290750813062430952203473703387255068157918055224366738522076680951351963633150200813747868994685886698261089059767370396117452913506311330480724746257290323518457024930744918541104960662077781537694034592754105700150844991113053632961841187265747933448919490379962710018226120433692922795948791417216816179779853247835479093958221186722193315493142744172725399440265603707291516069860623058006691565710439578327150365459776718457529243202976293733676510364767986236330283020792567451661263697954217559666309057960381531714410162478217424835142181530875186690634167408145954271433177496367309522520584331552162293255470617870421031126617615684851930171204958922441917609891918019858443881801459752224762351400377909227928866205795590882296675182725479878522422271527984005613529650110817654400768810348288404386688908730579573499285289199559948716473981067894834469752402211956971420487758805185179249868208866434346655616471776616777804460085392048327983317649890437045842018942966369863553895730572520282044397726755426788535576575470262474302311106386732882357761142483400628941018250428154390820031785016620577011512919520607488167779312126306067514746029661542945611468007433794204150644524055191487907312877186925005243404808134232468773911218141448429859511643272936536834406152315811434725514157072398827339540986122917812792872461120800557573607627349976448627906972448438409404774929325039521477048828260615689966116870186512528321709826886374263680769494176488828133896561536358377208756465456819702610536675256481378988235293576385090235676640131605809000429109521106507326589625987743370115785105345320931631661709678690173384239992347608366943341293943777560699154034647051894247732346050341482711178943931045934666632566644865659580083682123305001524433470165968143906910207806797342290891792248043345299603541240338734596364450089894897678409693588861345540085775476310116859647164878362120770671489540349095547628482968384320220260667189126426900326560493025362020037072324628235526411025808085826537030935408126804337848965080709549656561697004796555930274079508187057590220582955827762511116369291282041805103944723233835703554304955881171708099325449944027723032244626130272899255854923934354415776201164345769629536441775443305574243260527093180693622453970364061241198856285142832318665322329682887019791541719903294770787923461017479534877124421786221731179434965989570495432411160512086820298089623324236649826835013445756736784650859679507139435952049253287446974871215844604621682317920033678252084095866377373553716742551207979642183330855614312480867791978773445225896864805814184577276486227803749778817466845678089123450704372424619723824041581214947321564284337131985035847876747188301967065833481574416063527083734781920211350345993008049655391463395015468634310483629477164568035115993229081740662595234299721370171402435080729269786942249964795677196034674078370363184707083166054021060579519069682440252964419031068074479699786345121199500674203611104909292364987176359612498047523978940227146261004779351396364698518742182060964305526725191868440431284000523423737184823050867803813312976598746375983835041392816809085013787564837496764461747626530262239362030043750885967437438184569017867723172194276622212911028583874395856470309347793220086972505834282904038287221686495030487232057646169956173712995630394914527526383256279241226478205035153132979293694964932285134782057325878061784336159791738735002838219513172749202955957542382777368445442991207699008518057967492724766739968408626442048354033868351056562611919362763199296553696557279367497768427608344457395438114716436460811620439447183951021991581557359177767201502969845388466184590825860858443528616109666406363863068853810097325220060216797837822143686838805243385031625589257814227966976611135242089013674338384973665395235183550325254133239259692170337618112486097574755194804563061135542499557914132308635310451125718858667594575410861382801167767574840396521278012337481471052093927676989924257672970391270791174454046779769561381147091457363264623713108612179019177054234786164849966913486261924284601563755385482413233263964382181639818922582288734877239999795306610942669328607848976309150499891111618309909300590779307604713230742263766611743199998485744678293325878719134466596839886620253780682160125665145897721699915021659419900859282960048665287771519144668380526135243208577339736363092186517389845203360848426017736638934113531451001451205831562883721898267901360909482061257032128099921220987636389788176807358679502401075142025109888559083569679546985256175791347564507760624592660260640603041397202778528952708999428068856616038080649068747084842423362289787940639415044741433101631903754467528719060756094241144696198614904407773948742640151420750057112042016540855582916261885499225063470143693253571210603647138140705933575830872013646638575641925194367233642242944929397485054439624410209943342419204007077142831705641040359311337880658649019912161008193388978667124097805068232910663648584718085163607216869126301108440464169015935759777304488072995636437743550636166500909235760712491953946764672901360686963268106321859991945131584659709065013175731322174429115419761939835563188781890325528534938476663454289742758269281392679199010069588692406150826689591694796214443317781155904982112604375399904166683596768829702837571636518079555426230057877526691932496384919746865163203552614935622554999257237079902067608439691694068742737224954590785232894243798751009515605510228458909456753611690649550547049170079399576974152246073251224474323403873692536792089800543324798040595299080515381637989175746738609786507454452222283541756222892771993687280947435629288899009276391345059340204258028099103495210560165039235924621381861657748938814010791565340418222560822885180794922933679314579303145681446730872222764134867929205642706994638975640740161529106438830596072781915527045132872033431729916231425684279624225690569549932069211143521881867541176465771378059425492596830197000968222660495279760908707959461559149564849822062847174062658023087974781652535127256686588988820228768078029244862611705359365944075360395002600901261889009978123696523346512216589936625152002151983344564831092116628453929368150435094687480620623201803384579108289263203955699033545311908329715955981760825868836695462566285795302521938082470336377961130352457644119239365060902871442413420350152286941524782069755164182353693097615820705066295995922104028420150301594703355556474055547143301404312359687683550092902732691245947785171953397339892242982151432053391934231771547372986980254445977481801491757688635081416335358540870579297412766931207209501175191821777083740734287327148343878329034693660654798207678191812778808769963876691628517922556288776380547294636818742688434667210828091566381866822311303510760325111421162068246522389466944129095512781983186211510868218218476635876319790683640850711268416694195771846100400718007815611809171027460279512791696771757879255918072775007015141425450272876789002385461754700540190673634089897117549103964107103636501950861740838707978761985401619772965553731529319072010614516316114612373267620307042747080314138664997909653311962956141882208943089781065134418331832244492474944890396475376174668962298780958046529776828070594204084079751693676681586069423496945591577675507277081997258066049496722141816953760905831690447231725962444362223854219864788247318143266800383611722585413545169150322948885542750684305180187282593506577563741144306592727603450058838147634420063005998346498526917171001858109411682205990857484171487660591194925209222436424248309479807757299045684917323142667162258579806954479333137431085744377187038698888833826897947986976369988805107067538688748354173777272303145391037527098119135341959676014316344070943309124308218110095984999508570283319686817289977801325512750280771261222727548566207385362103715648954234022779472388061538745014389376171236354909850535611623093814512986146419901425467474370525840381769427211168767529939719882470268262540156858427559191875413326316431352214135526999148419119785330816393160027149830202641061385092595045151757174404059948894559297711743192089289955197250834857091436790987909637451839737703591071208013294589762844066413563066137059926807278270589476317902371610642260629156649305660917068445345208685359489554074940200738637014837293426623209229177466363873976768087000979261393298465705064031881704130618832771832006927705968248802030779456535960429560225205511321158823883482072115759070064159785567328159239575593815279050762706229003222513137010760561249413460948719535212336513779200389440663650905620776925395394108601446094888603902256541788008088036488522778105608710174935366085427750919095321951235232771213318709955363266098135376427768200692620319604514101309293180081006591020355722266945993489544480862894192820363284731575277709392210760835279591623683290891236475330865391434556900728435730247461664535083331161624956084828834777341976886509912086255192993894814719443198052583917182009367088734577146510929935495654059680240924014904566577660701944368602671827005347668671931605576642607800409748433303981701124103599954975964502303599132430407133107633544760792608792257085667329102967544911305764548717141319575230003102199309771536347472955744422728800379210877189519073575730458295183784917639159097447848687906253827114351127012847825534743060851696681367807963957906879248229993368849341703676150673268507051841967595812098409782127732474021537076151217709024383774910933036482966203219366621448219032036947367608136473322548491153190457395435547544667126442798844629580462027458207326756217176090602451932268299266027519290414674268674859139524168435851733424729653499181811863263383573385541506570314861335524157250603073888608316363211610810469688441014494477410053706219004002829095457043363630448964714279800570016441637058478504199104156943615931381831803348843726605078622500586972511105515702985047524056479077620678400776228279315899542116450415643754932495631570269800925139631178262174664228750702856806148209785808184134989709920157266165507336583107547112094046214872441273495536952264906767539069873451769470595565396235773451188824767014802100122949233615827506123469658022998547064246199118976404431687697083202684446804584104128326138680533421899289949431578992275207561654635480684018707909582219005567874860681800515917881512200490180342764378401122626276562537416446822111976243530578573056498721020016616345853105282021984010415237730714794013970486165504825554177144990929538061508303879805468836500686510191855370361254901356011123705777582547668223268906565391358258216741163719577442734252223575827705031679693957536464551865905835103382663556819805872794805821575222257587377741822696173759807286286450886387906407543749325338864359677588619067498693030227998698666730209449473591777375645695924942675739049208291729556310126171132253915169133252302159547255681778688914119124616035856951478004798140937031415733106080874422927961659218630436762882914304396505756734562630460234122711497526112676003278640413430923530797406454255544411956340152599070366473993210545082063636759245287119625377221752726569072779997209533593012750385310167160660544934900099705961412231508001471673798387591391836021634163516791668668510728346667811656096616097098189754880880186173471080882802987659136077146273916781854647374906330461262387587510118145005963472934614489455808666433234105652971359295373445355189758111586760726275548073553635508266683899439062207248858640707247686829858275775784815147049046159996557564750051792117706486087259486358106231815411555927474350800279346012520365523795128090407114029254907841463320447576708918221139487657194855927031317955095944607180089080840475621125136243112321018874247215142021578760961168064737630995996537119836990695518874992648937508887568268653900259645308388155215475458022234194341408675937200537492583483442312933047973191629279369796949883739094599834923741239902133692906505073678867352391643545312239520582557364624902083593966377832560918818487881228868171744163344937309080793949228806531071385903025136111373054183936497903809783567253724227820352786748827308392342090783100990294545793506813439854487590430179818452651213593593605901669743464493331387943115251102635706949456439816411386134701610666810299490709912284869759671863696381343857370802610120633284234558487905378993819947200781720732510602972227062172819561350104141746384508141280235274055613899794062543008486175168877782346676694659185022756991895967958923547205932899875878805084995798310069064774689086461323131719567388998503797160100987646701561541131829459156717510753980033147048550520378200639651309104553551977832621336278764173508843189469476445892938112096877089926838400044315485350685241049304529450400587392885631854470000248869295868798547860043962854300719205322814116748015184280738301759755332264128049483414263352332767770375731652068507384391083256347103664170268092121535942262163141715974187515897009437382842717150734864535386513822521986652156501340402155533318237300408626076555786281068513291493892289595330625649966377928031677801593658117580174596917066650722437978853170638308598772858622632608462667507155927891826353553003704584911135260927935236193207414551127041071694547036070704901183918935730303077725192204860238025170425526304651850569918433432688871767769443863883134498824695569724640859983694225011377571299982235385290395512852238221380408841783093210562677460110275589799363614915092073872026261839508175401227684051158625912113791120601725187475238994234026968048912890056872333237197369137899626605144268546351936298982388678139331652199978251301576799001101170386422826609517966878250807283155921499393717338201091580872593357327514732724812501340400285416204845607742852258482819889858914790683288456198926887131144461284685184681645203585739349230221143526083377759710350039658636397364334135310817681312585098489216175549819367997413699262677744708735481293667726188986474290223610171672941065810109200920627142748667639227986760406780550509189941804508200232859784094622682029547027198937357448428474947327189910151661434024392955792618874251034300921365046076912449417594289143407230591057716687015989575891345933300113253830473541088201496961849252851714974433735119335325694378162312230639693222170953866497381293672926575872568323497155267746592388831281998493481143803554621534691400660521230735417923422103258900144183945808327285867521186405545429288517713575850194461511736394428550703220568897063968579835165393768269346303169156332771709401589814077851618534830668045812407609651481574225492490284045798048958305417439558083567077666690625317444616865830324745397282776063324656981334073812886872116040251289174922956192466920704532130333597477060750409525399507106947621201230329741331425370456706303059357080172155860143574873225519173033144017431443797035443510874281708554492087545271705472768127903799752190105030515923204372327834039436488708886545337629077608248755497064849476953838682386932340297600980887278411735905965600686363711244487422924835772844120169806654217127237748728390787993480705264771635336031500835301150119678358683355960325634042718879464962255705836936541901889338713933772218958147754874149414192666179808859190055061068657572186160362553679140880463481823720819427205210175948770287788048393784522087221971801071244261252537327606322918414461339837047310119686430139647197463646985999300302535962383941717634529139151633381847861802086880389987544021459842707010897545254357015424172017044842872550953934283206030524644862060986203714029424575692971771617737106513145374019561205939424177058092457315854734291908714855756588056348237357986550068259082832038173234932609792242632851815952702812798722365139569896494746766208795920680805602940473016231625631499339460484371587129113034769709379814087194989457725391012286113975039801285624990518739735348375018298381786638764827179854527373379953931680081938503193799820775050923103940802030644238167482118895845599293979505468963894247828318437467372884018468085301935359828080569369172430757871930322358096602265113413716044337264935104132139016815424220246760579967258683205812177815111406909684698367129890766445770110927699305092365257745238544827052961534201790252253738090832298247723151045138287905274560491277251256450856340204147485335136300676975528020914588850810132640517927310521334590307572321024775356941425365906914201249054686232714228560586118862074941754142858928298417909031327072690112131529747182080913606779290100297288131339519425121923806333881336286254905331422200307345746270962585646055915253417534687691572830386380424216426480060187634875294555199044709938422037557628007520929957430444981774355131547139675265806432836494059848313821416146553200379611497869790613888006988801117307616144566096583925583697521221839052185108021054171018314797962380339049798541469743170225213895751555094311908050876134826867319485559655360744835928686157671929036982894317411025903957981480519886573204114135451752584460446407737886432187490718427140894017057900582666830014189845238629319306623902640719867465917001094818096870926671646888040396808978680299635463669772062729050074225630748494020962017225019014470800216096380289143930391121549891942338549865280344288902805202144123923203054075370508040250433271317458090425616897909501214876207889589939504658642658997064280863733204475227770759984497816693283068773130212450322458328688335623456073149756323400968414291958198034237595274561826143699194729635912278823653980045769469973516105890829377358178534407864369886697170203959981911800642849898047480285081789825972780622473186420314998785543169319828127503166645196702238359644419491803777564770377904248266092204625047646767206313134380748472713794878612549413761304309706712219062102487621932337114297581654642639231307188837935868771432061436520480896963221550618183750707093046112388468176092970071331550729744930421908578819856885661674054794203176775557185320681847058822643168289660021876488693929549998296375708774613149855145138211108478472294973047322162355439521951709089725615990203338380706804383102827368340518322579657741686435597440506992552342308772513461423967135970689828069344747428973878603196261918778204509487702835877048179229103551275123181516228875916990846721853349528857018974053633779201555693859753588586078073134395752301857907116876435872370696211223333231777434551650615733485452804942301759555819199491501964471797129456619143800212941677079563079430149007443405135837939715456616081705435686193271729394937156747104279397693408880434132908704054490593560737382509807303535234195427465012100623958314064892738164404615754180908680132665075951700695315651125203483370168828886252759033041881005630160198495592255981223130750176444984660116095786703520463227600438378244427288377678396279908657030781922095551347431831269154531524352959070596702441469335636251209956947958072905308187629415788257599001230589551159495336243050121868057693032809219421213905434903217129044517057901282557131591339007638801345459814210373600177326995758487121804148786812151813580416786686398911661619533184090848932515947049467178504804614774390983100544674856793591782702066649032082764120547588809293475319211716708939199393415602144598422949474483798183950239608456981753655258344099086949616428817730605138412300404270098728359325385566694920416790707795611150777392546413581946408699373259393896266379709911948048510256273276648180067687602566845209788141295791762971797461365019692646949001033263251309419056574747522396650119539698846151625877709242714322418021281781366963661912997387918938941427412943866874493782895562031411759820299797345740749470282058976072782386525338501062781253418145871794919717962800489939952670543239864026090233728094410013543207637485407264552745204414253134225617894559656734732809753993072267820366715506153169558267168837311790595754347761255678787632099049177647295587242124617071362604698125819916335877432727493566249084603891365400788120172121125618244424731681867608095507578492106983204700079701684850724020338802314187557904823841989414251981781723041976343421960500272286317789179600707685917680013972303701240712992561332861467536700819775200050925343848267872987589968964537805157831390357314387869497697088314156457649680371072846955700607223537086509388042088293589622815160097213805995596401137332385718777923493742563450119884924627116016463069160444836665635054352843605313239741500769009427637071963259298729486398040943401902748953594021180769465433210981520491486490899061327541674056588400621491145897794339700152241996584351691528091076122826772306492589202702810218360338530330255397031782323120762719163218048965845946742071910706019285826655925109536332935502265461522598966247842073370647943140333686970196105409803608357553307084867953753856967349934508064380822380093845154834471946508531992519977646472742511514351883048311703721709802164075804812089815971605496937694596742725740223882015581294796676495109892764157377387013501860525157844744322449722040206722630996803203360854562710380287003508550712053261610399234381220253198882632675362202238000645197352842822927400718280220658153324064897675938801728979775430106708246648065989401269659827951220986623646181634939785885815508979789204061032981627167746681509763793208976847074816179382695727622698461152052090905659132989636897368856698534344549124891029144021079258493805145002063697242461295756243471259066794117931157320889674108397140840890938570878920471267320791471257210108534265985179997803864135911978067492534444460171067798639164028309507491300519044386277338039936188088526824869897296254911260376340356677110542560600002834021705639124413498990522470778561744397092966831192395921262900688406996170054851065848475498465203995915965741464834712083412685668656385127791644621667114917741644803926885145931496016173429968100830222026706644099122685603830440069370666488584502022634954258434190898212097467103067676598825728798283408194144527201206337658177128968018722558715193927147223954242433792132232717315725667292988617195077310618019804403714952227989983684846687499353762764677959591824050968241345239432355027780048931509484793870422149881530383483637129748028382541422225216963670546482332542440174379391768558558770685226307611989391165997065725086278878013822593671268255513607317467191602402065902180550240201589467115951297251027029446679586824422986576481568331889831192204331548532758043981477011139296434058258514394064274895148200931354280467988071231710814539012518558122630923136014262865754887515149199540526384466676416091744350805758301970528027919761531939457495578670285542468703268979669172561752947805241237848844290297297222751744464060548654713607080168152179921779043608630699571541002758096280403869078093152467436370498178686188389378773433411728656711482000566617215926207973196636357536382497115181400082912126233358896168846518953756122938903486139093174743301408242942606665843847947356699073764169347891594453628552249433542408356166167097391531424655147936106264569219516762755244598810387030492366346220934905655784141015212471297097794455896938353072401477374921382076831226422044268049311367920086802088000136333120554791927729119872076167550593912327696585431337962426328235946112238029421293807836322440262474174215142286119801303851146964310589031901715562751477220860610395568500073593651345226893186762333715684430744054722426671328460773233385789691616744943825142615076634807321832063065664450864233276818151945563990335690614623107030808204856893105375935479554011440098534920944929121662764765262382257995078560449144191591114708233497947865248348577068181724049006937313135675221476738993116292352556728031039021324532632203469239654755311497244721640169182452835210389465833319987193174623065796572087774209471274447641884307328583788559299932701590464286106899508859077705990150698268814468906137919490832496001801636888690365317268045100280070913261496173358428097648724634240881544131281809871699314484666408972827316502547493394183943204083747719054389131406288818717250398384254097455347609773224796376615767769507546585819095889968569862193930572016719800487687963586815126877141895426858906192218455210269873434270058922125914809750829312869643461359824207612840765426927052887725970117823347921902646732768148576174421878868759017519322092664796344638331995958959608408071160362591845575874956658790761325508805518369618428782947195147975559312596608450002018247249686778328556872869678146209960388498160458804824917195312191619727232765988411721018613715158039134341042983887701923407326935270130412242301971509863188721713539475827251297489617855436465311246237801490763623184284625409739999306761531147624019633842587553092183502749892202061683964732910586061322654063250831772168556260273873671766542364206039909872436445526644036427465917599913932469929174813333319942804543965696543130655140616262281786099896983314540782958490132752174941930181544548449900973554678206852176726143495051807076037331403469459566529264360073864883439650830215080593086688209529186574655006850712802088490790941206314498003855740075049498034893221126021526197197718972506389016340385630134614501492573379926292572258487241255190309676453364221645220176030522241265739643080112481944963577797932828357313404000713875610624340851243576044196566398774428852779328206579587440115537866240120167727963481087330415486303049224844383950029822923606188261808787879642616884810785750107170403032789689629190890187281507655151381424126871081575159670321292250061614802094562102827614136990189053109457530354045229398005797955696838286209700974458970221436185661318523443558600327359588114987042375263479841715895938879598123773765955380777925525751093881732956935189347053436583628828002252846328396127948186930495245463648744122108901384462425572365463637401229325699554353515307830035363616845467728707336543380085543667938122977596155965007124980759151550790047772350447756334493868727212981134672796199933422960164317300465316259319352068963750272060157139910228619422098121606955495785164292118848171579644521159256070110753281671310294433343850515854953299976931549135894787534417749576835134485290220513516045020195615564287559278898736717318086345133372977745501959293288267023393995989816110833778389424589638610591470483234401532371961866091484248661971058472060064737124882317921594908466932952535422181627389134821545119865880927225056343608579836991806316194294706930006089866304084125778125538383865284043261378649939548469587103978631341530231887416873830526974493034125339724706423602197106650965820286166545705698240084828099750686026184151100004166828261336519463050563602797899194917437373870432510344353476027386904604043201626528423588085678343060969926000762702755823032629033398076757959783910333842201744801489166628196979658798086288995952925249755968048088270291207462702040835333616783210276923410085512023874399491331500912457840467285900472891832430215606886371522438113732502977970857424446441980349615236775064746858429834715416278658174835424244432506668618386756360178075255016619058572235638937088899126127810102883524768813418359141070146924130728694211292247560463676153999932551556159132481646210264154328623446551237139020103659585548695727355560727344116101551932994661695959124246424359066754574835817036956743763392712249935037427876342546512333617899862294279855726910216209195915862020802297079856207852458651903075920612273291628892171011095983459548689160925379411813424622207904527534022355322214510588196497726271436132820436418294179596408996343121196661908673098547649139921081046559437852077220295313686633911392464858526546003245543242400438937290317272032004455041657221589164314701035227196517041029384133144558607710004326104748279189978138535695172234583758893372980523645625868201228123719599389757468582552672847163604791796066484384914915223432787279128611577206585724881998698127321289388444400298000909064844749693948769791298996306991627914017390185716648332261617731169297855932839745338773279984548829349730570482080770626822778139034047470981044084795922313023967599892444037110113127874978735910087793639440491502411647218870695662000264423627230134421774406719299598229448822151236128650059468475856951163527412684043317506821036012059162909407961815292574550290243209801865855182610363716413957601402429669451391402362503775598454863151013757174289867140866667489970890168414577232648011620381105369271525415687502260288912326439783316965813571611968676978205566169734326242888721423948370803456879709024986770311320122711328914105508907476312674553174054235634188988381636258257461023713415690126419536378442458460141180601797807538818581227255232321739641246361075503769618733704506996019199802176915543824032872603486538965244457874640249882287949442961161552598898760705058519189727538516270113687001442738792107191681497602900227185825718921502056883761236839055159780912836356043516017697117176564452828386394422598115333874226342922490151628972562508243225573291994658227142849194335347522721744360215558011193570012694229281542503580973694450198120005431658675529209696803347066424604832540736009037058369649928676425174847401340450743845962066878622766447225566656934219166983877737024245386482191606181499739593584671245352446412397060933518607660819635604220928894288222918722864312448713382383250843145075034015990669681398244281418634722939865738081604146150128495027801373990654492962321212259320397095851054704394536042102199175095085786839973958774102819080913874451841475022173888223271967683250363808945320336140804334919797005065261055881125456503238422674956542699124864166039417027184404806422550321426601480674206139839846370048453076524053033520586028558298286265066101598595194048450909938497737327903178935604057292891394425378274247246507115751278855838080672447395627754293425062674620556272304480588396428180437658382323809004590814245856629663330001955846784154094998094217143806814025078437632573620586991176073543020602820213791335477955680049356006315070532611799140198272057297907574398471896622979393128760456655433474682737623840198544625443654689446623628067318045143851256533921872186079295046698433752084476434192965357072202496863847059883967216655764992516183184574781507900338502842163109579622313294545254520936962286911847329080698317251602869387866610216476962136982521936031537715482590650372713916917382311309054790548518482105948770839191498539952396044464990749853451158088811936225525368462778415512337578308268447204676859694249416247401960383706844105423098775439584723300181071926960380310952019327944279422663082251070602057853835124943090133948787588144521682999990295875285600061654083370852052012275916519837662658544812536564824978434883266308261262291670019636751256236591279963630079308522397180204612454559166276505503066266837239919685433358855702919650760615003116654137835497679394591510331324510772715907850918023537710992397268266271550796491768853994088608843463880987385711259983565232230147576925657739608053840820238333099733619091822085302316121822274818049960776728065514420736112269621343860288702671748542689537409391338945439213387686790435986586042441497878022788910189566231812454995690252162179252527594384709549719907347092475136841563681816507703570027758682657746128451312250405282754495486968951311304248142908242931445398099945839139892050545074442779757377635029912199245405310866287079345265798670786756293408183356743652555372055615476146756440422068913185529060814841326655731047641879953778361049611463495178653897860008226313152045642757381001111122114800145259051000627653386432307169905587013386160134087949801879341560283920927963872690188385677541968751214182250263265242145780658473093746688117954170520159409601347683617694386816830536094018234940152893464468750479843354904941384224656365522645694342652832757404298320501023272506312619986382061159973782812484786542427729484092472875063532931644241138503091059267273766283298298505891633742211097361984808576472407021904571034212592649293991361019124959395258450530371615997169474145638978902791208100420063942714423356306840407045844331065594165571799472049681706223388776648023036152248125902294878082005914865236969666326988398169920677654178305639742310783616175453479419869395016655326747421205357273220409429728023114540400483586679728074290121164038821776679917027599844078175265743904483656099498066802817814285625619519542988954921787901717893310832588386833874785927600011928837796051104552965162071185305464626725362289194109351641479530745974604754661335620949981401594026397805065088586163833922734732721981397605446098036700710421860453570016847831749218378895542062640639039927876316590530622428044122941495329023873588161241342140955636086965841774596489445298398280437241500126826463614951281370278378790209933960088174704618173020038286960136038971845837284461432534921719122224187355492139227826464700737329310566187489327983148088327550592864462363005620611664340583900896695520091941498254099346387249332652240348588984055610070435922665973874725132095813845313887532201498541992754422633848536690103378265877218173955406480793941115371515832810175137369962441742007676910218728649105464910049122760990842213692853430358714722615016204784152360452634430099404345929049923028665390474782979011611636984923534738321161554828425048223239335361685629516968427219073629168307048978443007800899409856621524983751098095620428765400906629626956772780710080358039641120561297497814547838553762856528218341922775573685031137364025373950358896973127052859551538348978270821724342228106045329700593768696083927862516015341470120647032520146496166987925576129657957362912636521186672775625495015508012005850428523152823731792981151136714519995979530660229175883748042950256737403244096549382162350419359198839510044017520209916639558304555603018994445030167151704233211271540322336026925368780340191480119419898520419708891311658250336212535887400361026511368079639729761667174848668749785387242006254093321438865760230997374349224563446368603110372349345230851897512974464926515757746794474590628727431872153951042022247667100304418914476940807331568836921924263799446810434157370056351027570249415633040197710286832850243127376343604686309588268304802554635969801911221676160726311723278943973898037749983797456469897780672918748978704147629941873738349632440827421531937388119853896809936380153612344214803608537223941250113932820436305363335124276735082575489852650344430425257236573721607489726787042139957481901766715343980972424163701218878790600571743134618891917934237749894885289538742310377299875298357678609322204953249437377687761146680881200727598063532259972574197076382484136194830235800192787325630982247420278645767422319979250537779538856093849865883364523857420173908518993217534279298609827301711871970679818510775471563469854522380681682145151392565541546021829475017632711372915524798795566250272042652639702334861428613867729366428080003898207371812338828023881630809864124399710353829641770068056374790176855073713740140017861501692949075532310043889318213649894861682765158805025109267473353726735987169983683214051677780100356110075564298778832433865554873604672753573529177996797667402280377564185855623895057111012316212943470189603975476440000147816308986257336932299453298738961112307165998363724426405755135861748885047331148017048314092324733521416684852651793110157608511565483007195517038231972327492574784655443009489214367689531682963413316103774008695116062072508456434694691107211863698603272679138060401115203737089053555665528481051663678459241463283783214114728611096894190395570213252024210902095173294612981881992261334200232699875009303277108843399060515964442440444576247661322429305392234685503297097721750348574142076713644134649508912748426846405350085439507103078220102622269632000751960905189592705369190752921399753490719985575170776356435569002986321397108680037780197984353834681401266120749544475702472731343432030149058576986394492788497447728431759276933859975087732364448875074939934654290369055405629016386998878042910778437990392441037992488988632241366049078535914021411716311346071703182056336608422454736896950226380409475158322956977722494966145112306866338687161365094988312360023849242738912196956292249018976880974913081814554427003256730803859166148155532296208701683375146610698124271551329041406706639332868203867822655776671262059505865543398404030770688450316799852588379729485959507671983234822612976468488312390401306817544308014907649431439254459589684641135338413687818597734099874961333779012211935385651739669669376793738667770628986626516300107148636987302806823173313938926217389914254593119615782623190640049634040430859364722850626573220304622984595115086402009968594500353992899841175261597709457850824088763897976087360583977803825925057603432315768284801661212858831795531888933055198644287259159756713619093304792287325362064971079454507875330728972460011281205936835697463660539445282156294507169597824672816786502191662289951507106327866821730850313752070094969631849404893036416206538770148465035328852171319543210884517962020921452068202860488650930035150663587644317780965389929592807535322650797110348597174707037324147212041055973869815110146797651178884169317637886136066914383290013099470038346449967416514388042785728748769673470826574823555202849287994736586352214642526899869910367594702495710007120317191812087287385174960234420183740083717178520814903517690132622831453726775559837635031502535640421641048537256997416399121415197737435894942752488311588836914069142188477426413133050812784199351060238278191811775871255416048193983634665320442748986126289777559178654310035905378529948263553679949702115172849994383382738330959940445825525209852490810630509230475981955420671014726251053601701147845450306093967420990889838375340547854413189581664247604556858975077213982898864141143571717167553377448978728842473286297827715789490978488239173049132897712765646579528089230187128560769915199971580149192146615719176309357137771542260915731855007105648006407691566064213294058362490665099464158013276818603361874926253372592684800139229781427582264042636306460481526031919004193242476163222117245333742468648466624872859596624269085632740236471675258803443187110597071498483522415667150820870521106850108290326224471580556506901662764322077483416492143136207141290465855140891675548036689645190528289207557031198219442649776497353020515472773827783868864375940666696612575095689378734733349295980857630585605622334203757403751540701807440795157665800114035983880956302356890196570301777538045750572359247218006918038943638256354703411825226079540308714063629872647802064814271247784455023295403970816113343625355554812480441214414325538369042128388281965668504110577245251560384039055621882585659641680086236247416265055980215919217871477954044914641994581296529722165118257271842818962791287021133411055185457276091946431331405105105474395458117845014863804374574949050781737707685484142899556983400345399702959632771110669695266735821498053976580292143460475044151599979290617860580096545884064125769616399456477349599856179765568260419967987038393018143631805607414924290910389050808983617391320243641851518464760526447591980843566202855878569408272463550231289484858159802561360061948913112446829434825074830432968777583864080366577064005020091911182157600626240753498611026687845439280511171086173542470671709747598187046617260932285359201350863980570300200133877296374830425304159051970146841406556809010670434649643772262696443942169829453597101758392792308381410476687401573744131561759202123678391161031167271783477554332634808061173305135304030831004168867299866814054903439428724988495625824652689581721901097663064193323358821210026854307568645662718566334609561261175272144315071436640804251549517994744238088890722778782182029588367628679649221420999658112582603928582487243448611198420492037155059258814838742169426684552846870202611125890767261019614655185254799518444302175637448536994478026735398283478070270983722474458473104418481414389416594328533267534298415473998437258517246994747471962056783777094764258528639934562638912497567721530912160397470219636576549786746573320542197841701984896889957356942637430332986912073372230019664100311011031869851516432893519883029605122664389524701837799990397295924464819676448883935148945116145196576667752118920184055265468298934104104032078980130819055003548112009268832162059516649318590549660793937182535335415076977716627357105410563118483007489932140485356035301617951402058436059473734803243588999638788158473260157277738113108541587241212137028589299133259045932489649959994359132042169721169160075140599021204395607197300431321809934790399118196956964021074700673929520791921659586458095263664556744482473329824526375297082701730725315860088325674593104283087582306193976960367037757271799347896800682689486802397892287674375085700753411351975220076445242334201430293842820741101538525694930700759776214014780977330275556333523101646904599384382232870870431274144043709161970685811594390570185171414656759508756577672865129460243845634501495383743853089742867285927797133119227746267828586854729669887808297199538985329730212852541637687679672409590521851181359768997252075005551112042739821711740871082349876753503020690312451517797815539534204827562294709028633385225321467617133787373794099655091538163222560411299703672869470369592629823271498964738480639319748221198345780746895073920243277496024875529227962381803435990974794783663778162572704855331608188731179142857774800922969464607347967588795023842207915795442956311949297573949567422471674853519036967970604869786570998469329221335920088470704091449203840206206606276577476411249673423437076520284362435145321442875503407402326273597050898008837356278376979991361211906270742333037754587589446935137481783889720273396440253766928537010616731757858065296386529563023122157043581746073568084719256946902635689961191780707140542246627628546356405148035548400222382837928016482222181666115585979824300714497818736096069861589291484340772391050612990023625113069745938831499148578540134344460345786523077377896439679577519228906214086065316666282175508344772021705073659309538167900165483454134674120103286912051131650859618190017761840804077750333068467582791178440117440720174000430419219355301290937361770181731812723041125769296268307749089244613742479052040846974588271880605889494073721948976671981160164886824165595017910959216359350239783286437957823204404444862340518596813453691548401034628958113015259894629546876923502207972109965187174438362998518309338463349478253757211278083389599802240612573797509931083193124344874502150331371883214257114025260931546548958162435083533134919537155967083783300569025974604019417644223761402261515264107265756855481543853596983783850620147776517706275568448373610759457166817438837045720224682066202796406613856290369451833937270972322811860962738458140878322828512541355066228484790559043853842680073814308331399129059656327479250957554216743019322827107658109968705657815449028582624144674169520099346450253642759040769901503371984868823201759181113738525125434816606552903862901118693897295937685915864147690658667294667736255747119318898992187044354013377838062332095445528575909220875012770059567699498202173715712170907695320526062781704616851308833458166979247373678037479165932757865752149362655885192253679940552494079550391383343257796348698080390515079480551861541449512761068156807136672192844079478583061680902964991023190744288100816947898976624611118336446342993726530617902043510502008056166809668328307147751710524921775803530435185112214720011421665549337391182394610124571074002521797541711587152304013920222734016715798132137777770687380917296355011258993016791252429997999384998712902423553383043060199045383026950986314261874980410126247155614486223567267761297409975409203430409513865886816635817068285043966141128504471637349696249276510921132429621212684677811347493252378266577484125061879064483140441228499425890229695661380648334332643021673010497416597502959783620116111705743250267454398179765720657146902014844389950824165319351045695715133920129247410303014518635613661871863020683478345429744729388656883125742577846327081635832845530019068366178903242299988291888972362920167572351161612912125126047089412025022373599070117686233588984670326195440587004472726664899674338013237684834777236540485932285100108372270477109615237362711265990382375054199537441662875903759139626497906592798795185306364655334759677954292284806384591631216107389655448490456467910263690747508504026636838529292912286881849170080877347894452814471798011743829196993691396520217774932579236395768015144024409735990176463882284488916800244438695108641291454586814657874995759804416500579523078459088737983121844355721604468106842180800224644607439316892593285583025959107758376584809678922650240541454881120786733089242644020823143894158380762968452083651904396141387945460110795809309967895296744186044776981772083659364296077275401400626967091923439356054455920233172176672927277356340371805165502900311328879239602603208547189988939432235725524591134518704325652649652003145221118235690578988540822536542270128008869227914225845748676077356305964789047096753623744052999395595125115971482014320577491102744343374600439306500080365333947703861398384082333879285660292749042186329518330307528912802447723599283838724523523327799896036351499125000291759264218592412644924271213447020844856239612113736658767127573174711171939427195800263298342222923162662764708771543079608942694062368985439767015833417970111377195967805591984148274069646090192177400726845186377206894298279789910716571538771780824781271638921958606802157217104623228661894170005280602002855510538550375455234601576109886282046192605747137898439258487454007492731595564706432428717984881024089244928048570354512607019716911550862305554220990274791656693054780990878759274414547037278650966677666459424571872176430733662739185188752084467238649609201456487735987320357459790538432709043401276795598211836356402250650823570783789775106050366473338993744631912830800776691037442280315510566206425603893477745174422794193170408535785422903634207292340608283207743254494506124078448455318511588733079945466999939976335126920116489045039550439021889543393544459500737504868657448616899508105030829822642307119069420617403421199164335495455536462718483488146721791491195174300619909439296123717671024262186733369255080101552444510245667787748259157822581730636448582408502035005026810138553157394063279820420311704364556129892526008321999489983554337697814023601694233629290109560924222556605343971509944542245802573914496062526582964819050741014016963756458249898758010091923554950878442990053771247696758287590675128074724277732843639127886206346496225538476091667695611908631988875410542787243054793397962107685281955864670261796450728836458062896763628277603451505562169484947860060410099686517622168987116607924388039176389657262221725228948304931907356863371839873067343312586875635538175574269677397383023488138707250874637869914181745502942738334700933095457097530440526637823139467531215487502762014377565263380863382440467255365436162835546785281355804657495117089726662871286791413780624244159185703946814722926701190253631500775385048900165849847132306209725293488493304564817250709300957402214850623386773842474087295468820616352114535400544168050361494989733186907933892605144104984288495288103823291569616110108655114376491524591042912494008016666374593449350929282686458415735410207989077201541831966600757954315622309404153889203800959567042098913556658066369799949597680909793839987194862849068383479660871826679343868943824863443351264667465856565972833705895376431145064382168446730230003886439477535762618778180646139601207343356729860429074588775054768334335150309125811791182923882421931015831818203702693650445525323558761309216977084441342168412529789619347378149198194541152311350085873071654427824475429532356268269185059693085755512474018487005341286768938269844925887024537689629365277464391648319304004478111716692594048864853719318044524806099592711515626055605168086040730005046509332636094720943859786889296021693268845494599483749299612393131031573679702771485000729665255607840152371103572797888128551501682016859453127077025067161165691847821614137529402910966732163647033696128615698513122141549470046291679632358873083994777955197071518048340817475437029400266652087995127378096690854029580530271510358239775840966605944694726396001232191491589573653379233256204534570750329660307514718651939155271107777548981501848266163386505348113024292506124936143906088840272001231048538139278899560743900729171678255681151390216125940987011489153954059751332477611271668948453307668801162987536228089704864765060667538956711162830711429366117101114665078595304048831165732635257926090914240079925471054317011472512377150145847041227851065564401485252239917943624039613085960770842301668612084394323508712800576671081688988263353799034124987008353920620575592994885190217902470264920837627494096048220988222551526763342896398939448179601329851338754567498716172844846613727017950697776565143924411306660682128464095140023757186272411903230106424759438331766790988783214652830391349654969542345249289253862984782846060828487912587353465398505507521909657172429986883008058456345948019107532842121334961170433959475757005307821560764706186743847794351905960634301114347175983562502705111207116332011206410722904961049085868782343744739826458329495446859805266237723712789177363734106647009969135427348502713280091385524086387127139766611111515556586889575871673068457736299318247291151612717627955028396156108915019072492791072384436663389805876112920937938960717693783691580263002040100102736077305659096651610705945429237187912847452634762005194604641544394786532666838261484744899249696577404919794017538103992438615799063755065361083077921795691766807505164907861758291535703022310597423550229877438131526799861629518865564336420474629540869095010284719308780220105261384468801330343087738106201654923535791189067115864863043187634560970355928016954341785129636422882227418857022373208319126530230212493554370868891006848886126885885830600252657557487421385041799781880086862788113522160468031039682824096527911834883416585381417939653655096494079074420208816677158418569331456352979137467085546115421462619404267323422039647268939523490487076221319660843422781631184450441635787189204255799567438638191745604431859630499944031148236547757327532107449500854084189164585000655345297113267488719232217302277096408208307726780336753369952158464229453837821689289778434080512023454605406949817173924887148056659056600252981071772111484777774051048757808629612721474794202307334022762485659813498912310641671125371491908495417665250757025982137283225046888010171254450093442590162826201104104513036086157248004689169394547175007109624904719913934144152863649005758191625339268205395825034039585266600162607846823810931751200500827001841920410485329002510769202213820660863574852365519324563450511386110850181367693335163362933669682543394258617665947822887459498883586020514359670213005017004753011637797302233697336509844411661545057747348567841177879569558741853363920844377429147590728489629480817659302896502839382811007970509969014362765558918799941785127880971318804261378937130386719935973277895103267511946469282969990460558465135340917915105991588956489979062860963642317569240896235104428416862764444690260533222077293889013626059458109252313663636442309576707630114609836779170667471430359372476490264250378303793278110589364144842107376083114122413947299762768000659010568094486180980676799764412857392603880501192234733031543544107572038747696697428862655192677146025254470845609289514739612219845296512426970279877397343742355588530634863394568190140690417079952725706347862768963788413417016621149765504629438656424401303382347130530721693094353360544170242560498789129731480599748925564719471517074348414679183326494283578624855497980217106100158659497731020852013747873695547397717157362900013636294462323692850787586463139051803422606095391151956122991577239161113549660651188889454784128750942107697960739059253601477574156257089537579939674525846743593274256448446303862526195625936557449333756677758144558542949854701344999060200350995187924829061305042758974326799883481566525902052885859587496782933302280902637588098497220895497183477673324450461959899358503389711562761484549940233200163744662521413537751080538527935618459476215054839598240108835534994577090860605972862860655781104875844209859727651212248009456951980803743182287539366641323296841180185060098888098617744351587444279617994792444254930731317657634641150977852677805808909089335843743636540322581126513336818595885053278526410862589246927926273446934035045518337738316226106245147729715680990437298873909070848276844122189385888055768205300607136543855219157946475728456329622531993123154205000142001534161333059980619994722579391075693398416844682208032315780611744043953106352592533661584037761714248169000737712439196619042591137180613876041107301793784140609942155535958030041177976945233444956009260363711563984622035409451355259828155863749813051698370381213292479913747665164730362703398830897464511400679071065312053796069640343403432234188202757341334279962612913533567897727216278824267086175484232198409794673514612296182535411247778795812675220403291622327570845266365113906504022232495236589092485001712624715466501747752861041296565465257837536156418250735461091142978355899809658235344301033122792767427156488360045183501261023225541869685520340303325975444108180596889255348662743481557807147209693627008588204219995149401826020117345798219300150841777423600843958207334403970098822278035692194013272092202876862614399311467854521305746677006256007730626629623256037715547498133856314080378277863785595261063643236006149353687728188992645761104787930971777591217962885675096530450111995115296964471432181121059736910197619450261314999117355156658067140778838832270250276306452432554022528197033983985409439242529304723583916478193400978432405955488734350025688015703472108556096672909419808143703253046817362139632173856453862438928468995187902241003069294851009314290416819377059931380909247729098115384741735156941223771631059222393043820099034660278018106571161629533607755568879900591433888939366411668239435499816496580636337365822214816488902898640960257340249276894676139784067807177867045444239522973191107243392701381861720754585141072639837390632548834353639819133933946052707255225462129908905056869563639992750294088507861458861353465761962797494995543551228718997514740633323750822265986443315314405460278768528906855258567819932165992517366837373810261038399833094474882855488623787366143395405776953334931279141437466716735528063885936871025875145884548961343571132402513315461516406202426682164854343342078068561777978465525965342302154086756550704886719994950858962442018999142480899115969033116994377719031605869536114681899081729919716778180529435050272229262193942175550346163275185344612299222130512212342970101720667239374045041704648251659482156943011677232165024231755485886210995025396099693892697360104690503387007077337725768424757092869316060790438957546400720803539426416970817872157415063111694753523123594559728033115905953208861415933415944320277787415819793371151024067222373049803616967599275513281057792721342022729778048839895382580504526121467767748842873283331308925081648045891502257409871341057849032830948828167726267360416779576884271320742773218868064525802994957739209868844080058052912984739193791459777405178780058483220076820895703564862833503258120763684969036771064165017421163055839067349512717284139895185199593359381184040836872152197291454341006598467111868935050106751972028893058046964890881073945350504650960781355241621657516711319569081479505191141587029508666479728852378108397724129965885175458834822236695351951428092497272991705388175694430796167704496089388827699277646890078196287681879213286276359948703511968949460443866256784087269239077977049848605081790711517718003481902991115749762782856437869414488074999864069341763091903917985624350718086960922232895720883509233273153477599775586206143669281018388284757158499948509466903268723691832342721348813965954968921270654572111155845761690673959214033407108328130004253151833535422346795707473314326544568489479008279042825758015328819818441609334161854524889503823024330994479125298711700394392299558526199457717160790605012658667754223424892374057057513787062548366206651419212812525461134857495786992766374869537750680826531274095088904774869458446735084044559597501161201054899612843871685696559552420238376219140792435571652280600576795508855622693532109153318633864684824461081442043251033168500340787077387286954224878412484458985247801444313000318543333206411453246627623845367045144677072236179385777945271690427316750558531665955112034639614605288694855912901279758182017741170772759111043806317769362390206085952121729153319595461890927195427073706215356896333131297666915606840330904293510122313251734375726543129405480205600724221954799922858917586559636006064720300155774040023095001269852758128658389859227089314566527708402305944072910758444799115743203430307622656414241964357374487518948066476453584564091391946982076960413859656047412098209422569855504619643511135357126205223121779683484207247867047121675578578037842411480226958141244800200305535744872675819515182457710631380644517167692504207765019748932919736552369649456280965603630786515728391731575178404110478643257205215724634007423946615111938871522984657765849961910371436527250159636025445699090801313826007923078906587981294512486700853036618673675154456038205807777961508416522494401426049523394408146565138635834789570094987460224738128082661022276569330358499050850686318594559320908554152225893390864038863372033284687595859206185154023095868772125579465104027064100774725421116618718200345095437135958842760101533900296029464804911032161857396143975971047689149697244728095592320389870245722353307687357140044746911179160952743961212590660568702265252040569905066631386762981399699727037817864179948174068258646729242004180750738000198536310975745522238938658949716488409753024407339577138214006583862191234821350895266242108246187280236676651173502015964879583505766829699158473350805081130281820014355318771288003716632128576366533677767546135418938866712638880632018954036529791581568868081409299806494673207939084049558464477555553776666205070567511315666801895012030582265341120114438409001372817286908075225529495158315920223936370381602823524209279704759173179401395828142494780066996856219094991236201599066459983012567224386486321191879994155114834285719961844450130597766461273785644880631505361437195390278062004119873025486762968346492485600158129510035904387713586994015170318954080889579847489204531770406672357014140884070763618064752822178738886233589982178315966712238662789864121167814912540866960269732394741817171538117122670925150107457130681850290047775088250700424045092770614201323358158797955679044404325742582761475384375198431676169095726753346272600368886570501481199611437933502499036571236864538845369622424553447759497539458248703437403128210572666648957852514521851534379565845891384235807536990600674049396645716520976506073746194591268528767926940452909080395763704974456673351163073876486407631030235212557884315065346991938735125743870056315724060311361359451599461123918852248270149856785213360602147468720506898112093694742655616768892513896241526044741540484397945939435198949149639078040957032993707670825914401016875108823350161579660972866707975230134422768543974212733786726826461242113194937416029424763335169062162702004082475354487630181351092188502592646188435084227166603489117191284967424614810070371984392571987051913606354756274734626885906795498665789510945752042346778448545053990734138408455744995376175713498260954205471689913754233481554142528128076325977446863866987843732027434027216733862867060470853697297502232964248423554839499168726438957819739561091847843663991099127219077678226361645310936440462210775701154661450615369760566217114957842495572417752299446506634119621525033602846003605589329465644215082111327676179683669692971740974855742142726615108874530161413536287093893384172314602685385907920248439855371192786801837549430126328447672716237016471087801442178444264500051348676828278508854798890839454659920634224255364061126804626506901051731403642898616755430254091035148140898671502602045297581594634041119228090243652746924454359636850494356297104123732928004779610354415536864851604900561702075548731792382185928857212066447883345890581959821567605472693402849642366953421679191210384145081719735169502818165229144204351668756987053738469433101361976484499157706862120651457209968219789426682242721066304154618005062699687879698560737179126478280305174466421074703341936627439880286667039911231640014629279974295959957286784584714777829624314099076409807859862748689427359212585317952233294011949330040110118407904686453490504792664739687774641774533844953040196610641302842432222850435824271081510792259725595712700066744220332240119608075697672001612948021403319794027583088248773961985183911168628761797817195580425966147760252194668560855990609870302066699645458876650311123655462054326904003105696931939972045975983761188973198013258407868393677083253919731399657820782358696374494209533404407224396605605607746067113748820958883094854657894761079833810121336350663384769625878360295677128671436364899721382342833685648026111633353262738890113332843718131780019226716327854138249095436189444433147880187456971906963163926573778920452075624121511296924519602020751053296434677449716634631991786801213645315854454188568017993482315281391326998032100660628483502163483020509791152138412752407822277245615807155352588756314198972533895976701940397051786641968032855454900344645923070958706481982500172211009855045221695946200969397552957001398267777726661814967662229017700860738465673970113778539037822169222564791841958031604491633758711226491747356094153505476311232308789162105495247323615050097620893829199340598480329181832341572072427109742559953820766514268723599896195811651496603304013345363628876641547907699222225947438385430646594832144327695185541810755932577011617500362596082121278846419469981318485143451216313736118427601067563554031778687404727843527978797644242224201593882995715081276721843380010049013321651795787700610930367549284542148952285938673317098688554651197725309115408998531783252100643172162512316574475393445772036710018543261422306252254055322773162192997865043185908170913141509400328389388642477165399323040118403043998309821876162947783039022637962742807534039280640727433767126000331196858361434629849548024481460256138179086481490260327458958808218043598509864113947094231145031550855396444067153388983038369758678921023433433293942874303469296455450862652574053135882257410242490166367490527675391772602294995775782483348312809311249750189708402302834271704924100899529357952035026742280753311086424159645666416050568451425802120368678735879926480529918017643929444323454360322778408630880616716989643594099479921033498337827022423817602171575672719476197738964447328112511499334499870005044074954032236937457226828374299531944524770545602693873132905490735517078787182916971430609614194801934734362655082850001714707725509333988943504369980728715182636149280447829735880180349968471364115634055640827170119696177791542968320311108690287301088398306782833709475833157947537100161897899992814775340493552771659828761063139617023435535368597091145590527736443116253705161568260239975427035264757796869083344706340130764145199173380061945923654441638493129505374587144137006923516181384077774897504643857952137958525818792512880134461516915041908678093454378991952864317782507001668897870024778066371740648975053898489205571934251232580230456199796190711073348784616032962862365749434823241883851087687923336598415784175552569227961055200666087100426591521649202811043486857478475666174735243054366345294240335275752409985116713605789608988138611762933873702964663244549353571073907390940562653004150923859198565837321347881952789304855362356827121944468133509654456444474082091247099151683271667392515342607652356794083535673620446975967435602298205286663834563883174917025456877976453305925906239748080357563687072296931300010760809017866449672926581177270072867801738687726986271734399890373065601444008709975505970013767531431604335621566758600021255189406294542128805461919281454078432143221784923697457506916325771523070047700006964807169499559127304828806527061166469193582798767085499187627051605565403794192378219405525867809266440712775556938854880283220446226021317856504150325895334852647797547837871266697349679739914534405492999291319650628401570741534536595599022175089347398718258635157386220346880844349801269628741124312119969579495245298487394815071846049075809170340615039274221565402570866168889775842832197866844471045405181187193113309395183678459530101928248611921935584405608164738611750565036743244106231937103785277221960200892662389915866397693217246348018132264800586562004290812126589173756161833173585005631320212994361256319869044550117094664663845796191692502268810903201668094352313566945521775369949167715096930479389371373746158315562354889346505353187556380581518037290301788052150689555720139134975624371026540520983807483385276441136647018342938490762535178196353614881489706543460851069610349663374222641692308209754643679451778585770943929226271596550727890099674973270860260357197096794749060051388071138989085993447863472523016591107956480470294382616626634976718510303958449528377909567137068602293053693819366906160935929285650745906379020822462623465291474471367442968686450387585381309127404976369099970564175342414611990202134515666128094755087043970627265388956108856132837995025312030181396585573661467122435556229424065782021483356514923455920374614798696341584946242096562941166105156640621280978814917491675239370947274324509079234643970625913196810460848054298692056156066532497226878136423398424195818216954495568342250733349929683058635064144286724370850293808889570744875456536076558617162590990532320295959320800478634768753734225638054578817694034011200916006210507287614075562883774072576258864516392245853130512293543676531501493951873467764439990949514418852871148054596417745137480215062303956934956872405295849705215909012426058808784182436576027653494350982931966899757672607074153114640443543815679996396522635087198610747273467594809899606128320037919560314523507857938686889905264010191322513826864965496619887960543529171462343417763836986340392322349644226261898337641908250519143715397186938363066257387048353934057015757250307666263334725283528871534820095308560479577594465962462333746247845942183344420035456625608920489574084081999632734282151693075133156479398811288469227147229330053562291159463464159247245002698549650257840335294733613687444033906644456867057298184938757408508829802155282799088301730991919627771682629027368695960262342688553997893013254416368165843077743212494675123471948311320753763419503550537486861079462175595348392297189087969457435079312459001271991624753862424107041310636081613060852878097546971033961819603640196719072064494412041387898559184075659061423453026238307693009824246076316823631476340396282334898867511763004109900330783869918213392676477793965416553971949618331768028588869389180473643061220817813855239363179220145726070219414770274736793914484191846116045833101557367161863845473878273706020999050807695161536150838222695877471287087776172466454203519662208422053760803748460819408840973246434096962970581190286186310236183907043775960439536682031524301558520232242204216656626442504088512635759459805895495839513569227999073076178423501421696755444126943466221980696738917734890105462902289366703000475364961059168479324772248525710606122972767104276583206791699569774155851482837283103318102202790371270901908110812528848111321201454217952196041790178267478472374723775492838284497152671514937409783918304072567371126384975503632098224046292454681484564189060207022403430766563938728849861701834728224460644054153092659695182772361473162445561489890537725625129535971747044530534120127095398274208916008904690109051885727148871985493479571436765890166462787784546630183840951695874681463758344141258081754703547046117154420579429713892338537119992683216677373402123260120763257686404892906786414111842719589373004462971014983903690479325476886301550363140635456379041941854578350380128472508903285650341581374323637856503350105852092321658552089550625041586549451435486684691260234222543676105070534591350553078534024926716758996662624372628491995157023050705227018420693984074215677515779693612250454466024390690568966017438808807431967062578138433814427337999839913178692079744465169479081685194222467058113627943531053933750165838241450401519183933906662040399721899052450366431608903265758063138536426662144398488391620207098900296774623889817503360453651888658904398315848407605529373109953207374702984004999937863466286530906395239427112871298653054625630573408716524533366821169023150501833058390609867052171701797097531037022015926568162254666931700050405800303091063815078617173588890958652782285569936726822293790509792405023167983382384547830282059788019641391352300793514662684166116846119866745345265840580881822209576454457753090581069359396431898293804218154174041743090063393874315361620934575314837106715031498133192035109879839244183737461752695124319522400142816082749841476265674743520282234865933753647388743664746553249243283037299247538289755543854531819698298487968048294942128827097994109019039583241250852274871614117218033587012812316554837719082314410092375294196539961513444432737692022154317994030311288552757755264446563067205825568406750273921945939287939243764342070797335730386462650587842550993257546929309884505789616191825690564650712104912395551367304445047074790563611742929862362654235419543112524796307847718300593119772052535155997317026854214979652582067470107240024710093049693445495638346232944048211667273192807811575460075564897461298858921456499323989321635936188620428326627049573052341637985189490376753878750021381583837145920311666626860205449604288861178776213094751284890444120082252334998270885259504766405982693909709106094865254478380413267742084060497505870755704846682964900052296599426955244627584703681359458422558292278471595705455785847066495355159751382111882586920009181104639085155983164070224543995143940380324224381684630612589833081645497600768440978966708151359756064034849341248811131743858463207510445866201905310843175657985420897871879157102426888385803196108510299532648587813889159763759428848153250428457397891427752970854804520458055641455513410488838944569291628421177612294223998849576660674680179469254783035619362806460910792371408484789926861131241023629291730399586736670378025161347705692422440280191382566071791814623224816837967757094511641343549082531620185663344630984015684575017808242888412968766651278236971754799332795590763399187020426141576035179525542649677374095042859049458401202111290835217646801308836511574486852732236910467643284191131390360917019346347170954479055392090460536774279100664937777838553221416261784406319441187693501264695232703753087090665105966277698953081316563811602477538177157514598141933720210802696263944129810185906478358921009033096426565963936570472226655786347295184371596805707522764311507653362491858551984132897194771014601047718709648633901544007187284583487919079696211037133760536132120241011706447764921504697338412367646783077349245299735198759742726631803436522746046357073950929969903044242192146550924614343633854108195195813660826685635645329466465919891520406692913178675118160493103442008966445310697854826959332436024431478219237212008043745233641459998053129081768299811518418392062268103719973667392695007124544868773328957352549784624852867585862937848524852545684604130389944044867185383358514879202542516033165678429967130682204079648914985709351851432201027475880333268237325637081298154989677736756975673516918189995754024813913903529075663595218970000216344196652070301973506940267727601045806121239728640123674660054938633706608025890695500340140275000823504380818462339675891244083403625030255948864715111974416220634865045576517302388704559948436390814894243270005294144474595919284186195188593530689414600118630798451772649448724723842893757567896771975310071086520916602958430169209767131724987999378133568526333577032062162119833649411918703577126447994088665996680317551184742428409228066460779743042861097192121714078010038682585028905774242450290369993271079890515222787217629415046167539491302854484112810954786956288277924036575785928407911380201276045504756018532532220036066993968026803063521348406568952878012767103824291138672914966320763507592648784256570305746237671031640183810950715909264184928621253013612088610367864100622517560291022340742746835027634731261057038713603180110496595841386660564973833690872265078369588144511147771152771543361666697866154798560274358007591323523299050503808766076663611946769330687720347932932043786034552152762227812994773157702094676124602252510516478426679220658351857060725704995033088947262181331619058674609592116829556032291446303411996506550669378223515417133362098987454924459424265988624180202800719378906745978264383976607914790460237440902753402065919272896066897945528594384539549127738136795995081849524550462185924173237922062487048066964830104957046983929193708064002449102911091130357422584343914852025469523187529814675946456042572508703059529764812639678353133153421741111553449454043030389371043362798422168209531668486519650245799353269957747625890527214873867790001505277596693469714055703676602409604569659150686939661936273350740484491738075952716134305844615771031650749689719248288233252937301602097862368112919213287937290945666871930539975487946121044660359174455466592890867518226341755373865750045808402901771950382677226289445213876704085863627918788670695033744830736328497618679120743497202523119002593105335557627605680129301132527224806300279510778775727335508035289888498797163636601135890542335083220828425162102879813456799889488734623142615966654485106938691305123987662529941537165510754113798500027553152003928408099451123385077981141810933089978412308972402801028610480684023369149861275190079251037851981415079547510882832208182470348459933543057906686317276431277211695225866028772016569677572155701594632197503184483141288519065764319165302425036600068038901371755719254141037378856794324597719744230355327739496549143267173724194201563418724695241469435820766941361195367034981122477197760698442584761307877328411645094746565937460565260737048655076014237714283724714428886160463390924252394104979755974545990057219618212952283789005661584630939641895329029665453079401107016083810902402105388687163468392018390726157229178242366083570210464305001356394489671035403321166406461184722201661722307224103176606455594871801097014803733667716288629133251172811512282952649900319094704609286868067905145845778095910618803065710218453914078725559995894031981372428252544058036213577875713599047347028477421626714156436212227008663417165361108683576610221702909456403328473081154361987999870158442530832417948668673442501719913500559192570719876391375591698851796708439658875119699861612564736345552065317809581022741362724118389366520585056797881383716164387611602114275484236894982126309772537565051838391634908833557778425733460465317832916947526879543206250558872308098309884024227621193941945612193497854375915515497648953374812804827612956490470273503573689533409354365045574870537225058505476443721752818573157365899674580327537734713374580877935687694955616197583621930429753584177242123310115365635804795972470586451701209464289279180928833898540490237085550049258355285338942614802947548106275463285301146332280415455325297803039413383299628979229832841643061112137785293809691652966808877181884038151682577164673591809315986585044433749230634062988375370764253044766899281729518262866043592975627315465904605020614931570241473976961891192326274578991619194262723564856000188167955367328712409997630254632919088448033343456238770111832109714656241406585227122520839313209312233486345236219471929354570061343146322963570221036205066220509513955484022880588821575021173778293710425976446744587711189382042892835707487352322563749524570088378008244835621543329148589374909961338376122381916777051575012952929802669590254529032633470170899935561156359502157069635046810147096629414205130318098122812931369489983397418039399732723211973365017610257110728888070013479280999962379732068904214328809212675674362542434498323463934203600171190149603286705495716204376095194932821877876010377480954437597081877414219811057535335377349806026970797449645731266039547808931179944074777804431970281863633675778258197710460814293292226313428713309850073286575590058529969176163170472607752938557597730695924614307740244280894894865111369722826465023015264351836051041238583487252299019241375651474518722068712490239708403828641918187454367417675495918181049232720217959468680420744894604023797476406278988749867544624677140276139007373045629946845583287803968806187005953450796191082468065584154129353790114621517090512576069399444877228120375742723824298840131587059079648812148873127268378490378347448101845499933786464268148953076270980035942362427574286777999192151773052821046616757989883003855980534843891636404343364890919982240114157716793455755549427261591009040860875552285587903048431545099940778018314854551111393624736191034603038115015436062840082005039477441528179814035566287573622007865327037693269951404065743014412162094128710593516009010596997526340799550182776886900778253649231772048107234751410219141293238131689222542902005199834439447391467113444066365500853951233065281723058761994342976897421663140316116471969550711018243662806670269088301040906954268257206632712158589871093100486998410660605221776248430608903052869716481855428114864545585483089873478064142223132576927568916756291979034874941685966266688015849979763175121013287805176372259514260809776816017734164729206254662353658362801789344756308947590146072313469151915656579271538211140723682406907335885783654752507528319938240060658130288715566905228219847198311333739728368758999886636095336672390726151793259239696581035026558183134955721103647856666883196046096968395286081602341692682822745728538620754007759952853258181905344740590568535297522563256159626970217217091149866590662297746275001528043234815961827615990533307255213435077286577967741007684753358615137008193433331063900725860945890219798699722199989936061983669359293235499344248392486788658535710544394072674465367182536650280002924903936356217631080573683999281151806722222160854437659857902106513582217595537901229309515683632714339759924404860837347818970122864269811505163652107091361486489276215545608351758380430693237538350886427543306725205594626875824823707708376990714868291891200201533559658450998786291969839907143273391670363957052454738146970476192441426445640832586825847771068702546935082740628990126047797813348988935370384965682591539010276374381497287638551087528876334508069139851285486184667043187006238549309827973729742156345114873235660978300506410988858770604148108459662751246325318825978980019853826862247733683502784990378702101323009568900641531444271487473597716000154710986521008152999861023143412855488429091015351200580657337314122164331215998749982718122522949849091754110606811079310271325131186024083373681550501611609620661490471772450122229356178648740174784714628412672357054942658552855079579078273864315006875891232524835075355912580662918908156556357661287533219168552469377507652915355350954010394079808962885885887227615014045289453023218720698803403532446205478593850922968546675485902764099737459100072296865057113378014967574659692583821959195781365121257276533119951196680223382637709806347513044097716630149526224597687553723663766642791406538526668385917652139059131353295976982566659327752362132882092527404234766975392399692179453436758223462721859724387496267591380496551783732163605648683952685172125710586857850199823969421306346478246771911407620687918006633341436645826322024157927052319891515399215304975214150737351538423724276642222671336177203249190017344536921980654731080320571671005319247396139235720821959799801668553837132716215845053580453213998388105303598168443593702941156946700757688969131464718598541011929552176242246094040083250423297554850593960139066987233321027925168158215281812545884206325656723913174219873844181162161406906681552062819323680985091303830810614025283452222404423022956604269121828549532072218983732789118737876269370931432087678898846346032299797202795018359520887424901406543656582064526783780278628630495546701648886608882237133875075713222047791987740934556617936344227603542211453608412370901481648914132108681055799991964304249445587764427654800653457676245894877651826030411114366578706410354380887230052967185745172225377723288100890711382753653557190566071139594260805230764436585513969875920201922868441509219772683930667163417857285867504567892355635853574446524073359140363356648925597610953232737912166888933543773039629457015832369173920537541326717416308892151562831467416602543056969766371139817245496879192170688626826169139635894813893982940222403314151725493023448520707121466387622326447832001705233198258735553663801734915035867278774937607705626269975831767549663760263883040554688520759836449069085270298035102786300169776659493173147163036115205734626354862658096829013329917190954253757556215359295167267370438666427620399608410398683135283687056203781122570536301060796917557726206765588156360227613312883205868621994035562951889424043049593862360042250337702383129064364683396911696564486089416391988798049438559837734976548183416057804321146146099661055176507989766469707935226320571731105097682756467852599328695275157040893753143947297974562672489864464884272785117716686774024208692787808232847449507449519344848772711237747188178012752633134132511328610962289855962378010209300258892590905029895880087953220142535531297997603462546690484287854155407074174291902733873437928297265431650749809383409003603315166776006357337637807031446926961332305368869775899449587902295482176830101505908854735731315283423377466838503444554517103512110760726113717857145158884738498491960500280928102199164611882273740929673573374149268514147947888313564942943519967611422163960269906799705404152826652410758181114206437679184930067948006371702962568291363366064531885281275461155423643806963411271739141777034701357893788238343243855593206444186351752837697391946200417983674837419943930629276559526125068046764020154123141075388565308095030794018695250296288609388165523296221249703092461011143477565436854888958102982062020682690545995481188538807712856362887664178246666424269137918620157509468521883388977006644732556780111657065823884942425100804363217216003987945691573758545139502004507430117914380193897824490443990176654062441201083733531443882741797991464330403494995151527070844583880347071264718961008251107143300020258806606745950524018805599196428973285125622617731695347942166943011498177943452362865852566466583593267812036013839422724374762478863759815978522461235605928930108916190144842831124753541776544261738614928506269659211321591046621551805944807498882151397281925631710646819464630984133763944183614095596653076522126447396499359541134540704589473042341927455587462979385683074933657506077714865021258482143645714512809660869884761627674097752435997440579609518667630174485165511367119637065429950819704931181125973637039342321169547332941983605842644454455362640860764259247982231939817261541934008095843184906342562007399038653769933476136720802950054876537360270769103493954633947735243704551076375031699581949919973286435303766215906043670394731795112490005332428540282145719625878229981161275978479642433717691672938566807637054322973680581132346134404499067199333981432496097820081232066084745804970079421507748174163327996471071568725538515103917492936691297491350429449517485585315804212855483537539823316503758138378585146706309342795169413376832005433499982343796962906754587978865615243541461377856902338519181079943994632319598720278269497060138676348894616184079399762286525363153681123097544432699390551101306123138822548041537299997739958086792494198755394167693158541008168476204451921374987964080410065622865849538192954616988209715434221376799007812552768075502124052912897217082746577949716749214199371178015023712002392507582714260832622156359628373294807210196575011003129210933491205285431524337711646670442970664216302704555442162734317090612446427285773816703901272406249918369279374625598936288678803972872034472596913001133138923578648123096615963654132435740685560057756087725383206901700639319094931850216883473188113329047316924723484639913977149378692107807309393422756208624127328347473636289310703435662893139969839733376458713596283707006316228457647558819444259726842759753814228675968474398270923493923556901443713741052218578739977856231382936806844906888571666462402290542421987994742593304110068264744595664075666837378636155702223630343709338758145540363535448004736147776952750093151299593240362819041008166502549470399858886648318295691913890569764209485829395221441247789811962649438660799205171543459627406918749441575048852925797037874773080800754759563035313344698185985869366084757231924056749175339067827144416059836766264055108662230746530137904334487406603638393543898334262217071495601185583690224562653600065748521286994939617261714702348030262894982763971102368104959845700574706904991496626752752294010460703134188283235838684163330629582113762862728455329666680473347519988634738947635582413330902926650664682694576839846364634057997286683428500985977170370354521930483705480288623392390515289471449508173213306019240088740149065930745693672758590383615345703024503267705722718433368320855133755295671297365936831353638633812365941267979730023148095006897202551160219053001104624916905273823241555096393317704936472633122321224385496972881930536905999503017061392433792242335180153606407396824097695395091218063142109086644953308944879978820287423647342473737776001772737102133990477853147387505312895402770568472793041973179007427824863318960538829165868044172927544503345380760202600291785891814334457458650867852065020052192823097096759014872011367679190970789609972120872191409484806049743346975470534810134492507413835160898876703302520358315978376872929910736427356747606296948948119820239008517329593579504476597924099737075721858137732714267484778786262641458376850259418717613764946921842214669236457832800220766178063428976457167294211555857830782936050901595438976491571974564191564896341450746249732259156439352058255809285361355093521030166652371022751853288556347400949585664882212638795134531496908508166461808524815973491674831422739570771144947052392397000673731766926760612469134853007992496739744308665824915796094032726183075008338422239501169072383666145142078928438453174794847741186447964519537687136626075390776215164663093362659657774088597197355553273584781678286206638317886571892628079065008275204138046868446523759726598218009082583897765409016593480830168629512427077438942222865289236202325300501308289537898541570182173891305193728760193960084340117909098850795070102136331809386833131493915578431823556083280621597092143595831817099615346563435257276924188225957627368386396715587975726793205460915948172134552388895670080974152720064724779963946641299545793731665938805521679433622893770239690021256392678799582041568210775534654991687193925149945312582807525899016964140106437056347834649145890400941606980000051448329242240777190626141044898765067545175015761244756004581179919066428521485648237192046889597632273004530453043228393907547966276693647962585774134735039081026805154059262270002199183164638548780489725791786622407409636822801575193068124832255974651652838449579146868226087010367972695548838930817791284928808335383064659330248933967093110855956543828697548211400300199856332578771063259532143545418457137440760686807130661818041239094750725030424031968848957789602073814545401694193779072149267023033194762863987197320687268348168737310761193200639668413513787404984078797696498924322299445314813348573549181912914730051417207969093197855097740575863308782613687413672073589708065257017773074002233926815183199384042401929100364092924232325070599805844723704711621790466263342499716899265887949227045112411218222883382292540028443651905064208566848908685771199318647391898091602372170273964718380665939094882162237319244675177714065468892571869155064580403264414206921869383201860841113880493017475276869577614868561724964296510639153770994896015926918016829256178747487118734649496687452482284040207930501899098144215265763003504148338232227674101620025251285541820921112100549497222310047791957078408699457523907250038512504568065756830897046767017730916190576978365022191639506021491855098320859041041713371628676443074596739629508114632191345522518236326862322446605620603697005186361440361511324362002787215481764297415077163398311926724750001737319531520673415650879999841632922108070640549504291206557907108993801195992803551100117844518957048714671936757058573375839333352753832146816140219008552635762744304873945990436637284722751968891965349851894574797665454707239462443332131699691907818569316796782478175901684260331101067262311231236415292193582225929187329649033270217189671912880483202941789555785487218488868543773170546644326112317556046760650041731554474565827335322399116143764312213279569028327483059062017809375077124676004139250085445448340116310122517514062467078997649944894490752139098395360889080916781431830805815250226577574252584609988041904710309546541559847984334739785687686734100913106418574307789950914863838772605399414190883361414213066389549663470814579949638296779199831214009075341031143115237043793800366701694888615237128981597271196422520741551066173573717476260938356177387706575220942851889328418187353145662986730001625054421145276575745498212444451714210292533239303843305312630042237736837672624087066922194603231460532891133117683464422998252555780630762968488499351835807437013702634305418886592171323544022366092089541758419213763100724252458459295758271287110071644464477081974342719157248922612060691369842539227483769889463649561891017480487545344560879367701529243591615549856201791862434961651336945730219009823247004306606668631013635530785397473555225545774506277589498981420482645916533688574523478297059711513445707243006320324401279189805618139203907070789514153185787762193431202469140732196182795851563744926225649822855380611378434944422488488413690228202055725587706983222805885939090326712461211944587150488046337438045101957612722919436850592547037486107275264385776525188955894699401353550439647991836655655186936140753489288679077088659364308920102985189561881578352651387590981429299671973342358632991271243068580280334869724562305487840804434950905390023975116689340796205185400687204298616885561857652472823856828518452885432526458246036354905915611244475677328910509578463580692767720759562733161793317507985781638771414152249596068833333983798221186040640935064287683670849077434598961600561688840875454314245712881474535351137999959700442676411495663540541805726753375115898944625949521107345802475816905392031561213444171328416911490848976647746870405308950409753960367757157389435347573810697054429442874237535094262904688758062026806409843357747982957996344683887073812438281947465963138706426259016324310856192502049225552931294356261551827902268665391927262424596361263316536982896165273067450370800554102521310132439996075809896280907731438489382123057004530246103163810412693499989504472021497728312877611426646951877099109135945260638808866840954375144401965164910618391579149928004083647586538695593236925183635217376551565932317107591261672238720119423868362108010198560874622289444777215204064820732101792586802821618442509059506823399284105116080167745851424687627612430742078136469466023101824793008028245081563823391301802380992014333807874704892235157198516202363996961359872262814581378299479794740953299656613406443249115771574939062049661191485311570377930546922231991843855885482074364385118564081203597130057629945518101718727907768113330190098002369909086724158851173521334419499486250822575827453680327028670896751350310702633276421763880628344445838347054256485419264118073601542267291399930809171981385650966270551331249366702975711065735102472077442476510569704323999213140200153640797766525726147645465231495983750820190342840644591008077521757333300891994652179959603465361105521440714702581231179341962695999881790152527244689359547730312456695526948341991101501144612288867724764113595991985674686478404565304991330187722367681483554402547635760695926580435554160448449031515480287458383122252781703648912695972670707583978375397672535349635392110553065416535305121777722280701594929948045733116785054845505086912511259083020891824989879408687747976209221228419642798591597663415605398528511586785294736255081082541187176240801789192073605626906030895358418037670218479023317708812873296812381045661233056444846003401118316399788004751572282903938660950816680339090770051771116238585917411086899850931928720664638851369249923006678826668066926407252029115572882992821171045684104799352506188877329371310132597697469675846851179924200813396185166959543577457614710192771819455859735546564600678680852098901459231885400626801965395312806085189345611976117297894589453547324258278777873821641884225174749352695924285517668696765665718656769935718950060841409219036248701184407127877090836648411230385603905250616679025256510036657848033207484293907042960801101259557646219097264515803456706402938568905772135919645929428415548650752001862327559124242199798256233999530856681609659727892903558715200328592202011121731819817492616454724459988813045016808376137590106430381200428980709080836335282808722552759629656574343943916491982122799860802375195085090297481375864938892928922984905256994372521542818092729711017860611227433543505957598831372567588517739900492331210714371869453911303248931337203266613423111657135468839269661685230000783837140744671306754030917822794383483845004497403239785526402602165675101573790462699541788468772643034587071052459221848660069271746568617061389522449343779625271784809903286911164125482817556530837439023565281223299671247794576088626132525091274175202823355938879758517887522153344104081579256588059905374994474606083946163536138145357350018978699523021684321132081163266941293700094780976669451002421857373881985076096594282514190759445609386397020984656794109239683140707083943912466908995061650231619073110333844201062553086822282480378175845143807970793109596259277671852474031771567993060230389161398329764815753149315415742203825075035594621526036170237758692378561643408061583159727568472417182101464386365380232811250250582812022969913155579105315968150789305842271445079574013080234305170720794611444843041860172594409515288231649299075350793833544046077713802083639225442637977593994527534123248696810678069371985087789278635977642685813527315397587976673984124812822337238955547931366189981022551185102298105678251824403200730869014083219172225288255685556769387196624010658837481821461584639042644480544358820228175419201072792071655982863346634611822696368505502553176409381397401162001891811621888498433058380908980532381391718005580034460244249328687702717773503879721257015466000296689620887036096221357707691870162316765690200948584050997129917880614706593699914615498292639961846846876186046839738043065560544781966635796663045766471073863381858434098009423681255339952318887168219319609662380851030408809558507444603457129730436398751189867202697382868299728452210390882831664684313258149270523114083099039172251440780070067145792130728328835649191797639364786592710849376121053008211261959429495201984609510798289660913965818750555759192905450726969469160102794520388279335750619486631467765620292528559011240797226670311380598410267927070219591056996744094030937575093410447757046259409951756514750460330510680820068984364180739897810424997822862504444478502536472589433901824634489331663370410842206691112195969194453892233021456820726087222511416269791262128472523782183860428179935070850010998630288299047265386030207187967020935157960292680037531677028481549828501836249584353018508762894787049136407834659126069345571862169955380003421029500976897178904479365340761065552084715005023231864248330477230916969833078741023054046436331243818136016847381876647154490109752338318104145963801697328548126875311862143027279548375054842816656765672810956476825980047437672193778031097719231408497655405934647660216496026978161510516047046442324066216845806010216144466547755975953791171875733037786984705251987502524052631751215960972545155223487623941568574151472113206600338913916772710936682592831651825223691458163666507615229665708382282421241246413660768631091412249429703384901621683705460368246087449773835804415050120421251595501725941954230128358799813017585892259114271222430066554775047754744728409592479109537162037534919381470822524446545637691604240141507707598867522200866245373785919627820688105623875186217040723624712559861200274719629612505251444279329838744268366640294459166695000740551924591255471698930534757698889674085316879040168525598880040539932559508558434198043928272501170385275593953760236886178538148327021343967905068856163453710663604755731296531802452657503324228456337165629134100405729734839263276797245825302255202098610493664563749398218243309147331217982977773549172626071729121609086019041623989483432781397196159717609712885654910405038035281093648787058446069362403622313419266912057847556738439325030108884175680989644878052271722510735398566312799273887143282030344219156984717127298249224157483839653549997669221776758671024996649089158220344004886914229683874060621521186720220804713402604697790348842774862679924784920863006557875264411294892169650203147973272752842714656630929846374850526646099029878697716676998001239291545174037730885411006514132771956726484800253077883979259452766497468504347899813590950427124206413632042724407751486246465931077172331144264577320524806368125295435861199717868512434509637063324232536219610326386045422301966825916092774155664147885265907151574967356172819811235451964917738799249152438203117773754445386255806135086537910299473933917897102800487968853974308222562196617561431254481164165641396773364855631838832325519359564068097127902931742782597841809662768830602680375050946811764622053830735317748278989847231934859355612508318212524665892326693023145833429688811273066632515819531078252017234005509726314277725825795323245871194560401461437718457613036457186376588675204735904179329087414602782827327264729504693362213825842587915157155706094625324233390815924292070075431836381555768326473354358237943414541881443366526596975905288549580129712545436524941766267513732288065915673021232272981433146767237052080367524858254235645843235933550733302116151397401265019600612623258123342793542311850163579809148822182631471488806537868878832246883582228339009495509828645713187387942140841252031825665509387506120808774270032320983112932138379503620878329301522474960159897224017850035230302389675231048366256451364327417137599589121986058619950101958883066752863637592654063545526092235418154931179874895833477311042906727555751187280540072955280651407237131244640913481380897514733776216332952054659698463114588515545242075996739918131233435056766961636153700211666559187874199884381091223836025568321517863593403745760996675519569622509588810639917516182447735942925904351811272943725565970208514392660044856924083037512280195460442537879295223952149957646124087629772358258658663568650838062427180616014011931476438389668390843769566804527037056662961312046183638569335632733545317885996197162659329069216981745547289677529960395124473330570234093224654484659322932518014060137374914367232094086465973451212438874780507000380708000362060236323874505314953000878170281230625305099632113268478154249134114137237749604044400841621049955308269920771885230132230759893894638434309387220071069030203032520448025353662592655619551823308733939405181780138036758166433798045358168118260492446321011328890155708244667479438512315452237439727181355895901499017908106161032170882348251851689005429135137542574077960935009968421107196783865274288857780065297003900044481740591960661350323377991974463388278916322836810085302143025148828616225254517073733582401516435198945995841270497501457807758932088562715981341007573338010858023223378265383383184765715743090527332883311983192177140298820060953005450807421279308610677623482604846619705962672608175640775832713316972738639714008205679521723654100649843626106200786566058580401802146051643497275459548356474159860716322340171298421266256065427586902017673074447121408995833339471844164621948694887386834818203777445544298466530798307770719662339102357080898069930447118459488754932056531179634745578789546719521827224874751425060879900867612361170774109961446492611548857928775687780317209013853234258605780289481239895183188876251269264701805542156475198136275582017742955959314493646923391386527904837649870979002096190662517147224586409263660470354956925575364353044862620217449235229568522394733981755545790544116224495030845171421104202772795033233612185169428546640401257375841553268357328050296392646933932797469428005094296333292079951804148353646526937884830799155008603411649376010249588999806530352864701443461696212626026396682505488673677691820515420782462051069574286460522592402784032527957303388939090022099168480946628019114711714129530689091180933787665397912476049790294715105998198679911709872466297019124719601024113698150477153464770818826534304543286202616368851128947661498185920747768461980444633087269489758099903885258920795383099346866071938043166177768653668835366912781933095136849956576929528214933806072611853695507171854950261089891168585982818832098695961851313391350089609534561674484135700426577319596373833103651107045392831649459779606585746166812088551584542208870845038651095276810711415855227454959729657618702330966283400760047211930284162333685919147911413033994997051065286970654849179176455136998022587618374946037709096704042872385481778469555072220870522709865576312124523131366781573102423592782337048949017763033214325948458780826545507977325307153131239830790713810192016359147925232696062847336566892728536662403979198225648612316883781405044504050712634454295234583837302202362470591886976929333482755732247987151633261918900946989855412757225884348600032397201523057123539827838848165134538467565729561074995467051637201782801970092021858299903916524129934390030527711096008469287418279257405635124484848099164518899177028980798861742234387655210817249586491909923245147965329335610283108931695177911791613181192420196529904130226377631468415081521433517508320789199652042688819365605319713410041045929061990679295715883280791036973318317178535053627437175940293347460408441615201841828102292990074014209966099262477602192622988973440389380287645280828694674937504088747088215923612957505031607854392888065286031436546379309741806565600905720072912503633975258598888843456628898033220229952958200056934821329999804095533545447796596861705851003474044375394318728874026025120194303330079578369797125902112163125237749734191592414079222623538642826620414967137060572068084437860859006264345588787155679875727698050681157123421854109151787273529171579412662927471995924626524595030174968869245821906774456583506452460076055619879001168525501400889222556169020379216034821995285945177803135377531419364113704256682356919523552804396241976062884800973585331096096939491598582531622466305271070800549434870444815095863622836344156124599043614473534615362576555937067545266579260420096072129117733629766816024867629093291960613377676652075263076364786028691007168707345147814049207970960132007774038980526483163489088098668874907053515706785933888111138468282733014873041872534847590630960859261736835222276825276570599444741132005388014554104156002513778060109009380946837214171181428479531884211046949576790045890249681317257090545002396145540939791021114816992399141051746742588509842538947675852690552305221166639277607273001728100405969521207751638930888853098386790153737520456410268792598051230883862136509681167437947830422370940529053856591382986325021356120259359750450044021665440912522152150712961029479219138508230355254406841515600248183488217767239506769434518167522259331811013890367588498431438833246138697763208033066349695391937551425323515756628987333632608327383445996743313857687918452189150724580490605803744759992201874827914444051475521201161410203553883222103618189440781534046025012179620082027128626811479102550563232894967445649378534979018659107493726550321449344205220264985237235656760504723409770800281710828445525785900587487465655387524567260576340647069531326889822338711558457032123417520726334468905074781914335295805913554096556777445088929059207401868810470373468027807864204582132344883869217281256223700105197912124235676159043937913163100735487286216081342066765825411851662378432561151432066282629452597962602720719990219882528535922872595666362942726247707240530808309606787240450168747745418409993083913248367440875270077974636236207814308393707159925892002521975476952514348929337547073121098888339764801360465763351204207898969530021395226491270302917273107098347416995228589990915772805266906913207877331150123315565665966373545936234025000896823227704306484785000471300061861148247717944099898453190943291571093059552690838655656905053569487858307408090507579938953208843609376406232162153018109924892654870452212150748056566843123513331552256037152727877496380996839992805394538107186667741924615231080570940447494826608620362920940662935020375647944243028769383952061457688811103976650048375942486885307051294878269140822900698233339005427617422940910168690726753315119536914230601575440377876948653936873352223952451625565321945800450323816934653590954136362026267151843562665460879243027898168060031642992617670023858971790004795120832414799330601625457917718903824369597492461797682078271138680200175153338938578619936741350030244405238275136150469971214854708937439170036196068094422775704466703978779586882521904097974257274886901140340197554783076153764409664302439020620103592779040326452461020760070464030245431406537729755887501794046345759998997448926528455546674984464887527849721456937818739548324012941426805564839662349459516815076456784308862261509657043293579671415445589930142633188894071738994308932088850631399821168645667015974178494733980694053144000484620303509188484290524199493123699184076941935065447473761187587157818475127974980618959119806609489547377580205921781901309945718798360642728753880737640554268001323601745744170153776249917204831142423185501721445348046582615366477080631148673058159371810466570271584550178366522080372778712001349942514074638134850009405437832767390237080746673762722866436581875564199712613660335124559353797146075314472408469255944873563199628763928339202834345610793346053191484089290929917436844051493987267644406145998191493487235928120530734620001735387613654607705577345246644348656048502320003326016575532053427989404575656421634509048261309705214923850101321633438226636299076681655840901202954361794242164167368887314285955842071544957072094995069728303725719063895236711154355294044102625548193405044536522239355613025142604028825689913071794804753866117384326770110277247942201996189845805583434635859167844966168543513827658817194956191897909274711908963958374657659494979152511847356987164978112931740377109851899248741149398344651190551610923189749999625251110230902431143426663326671484394560796494834192658941375497782698323522359125744337815405488870612402112170863090412409771583814039362730977304440381417949778380354622574585651204762494802904212364548229581582930796422899807507724214045443702675367534134594521559954703152713063506029035575029441714216289805228155685038559255143996360945611663727591628377884493284317409413225084592572636391477818830366619915517439117068916189252139076493359991671023448457330529748755017278855109752764523865320859310422774364434314494909035563938311646801887962195441317559472651278703908517528038373910416426208124282468583994340808209940555649272260882702220833514080684867461143106392020970405835159016544318493967370533646334807913409303970670860758087079319129761255295822302627777236411807056689292422888327638847486818845921495181621089694190496227829151432258094561179563576491553722847290697875614196922831766722854301944884503324061637668961622024040818676137001855480404116181789123591158166807096675221188611322902648232207484403819917576605275586767267982909006986142154774361151417958475762451503345275704344826894976095606001064696998748537583060096813544381101444084541794442673243792139409420758906797379687201368738902566140494473982080667867541764736467294189143886006452381990529661289568183872598089795595840857450271785412921883642766396475495546197825354777782165495348986509641688275973868599284031848612441981899652820044529856797863954953398212863954906265450202188241493638170336990509343626290943259377216915019778464250401114973665680912260729392967380199375735642758023769583858332279138030160604079123098331966207825622751483869291973695117519518665908528928457217633411002245703650002961949334869728564933302634597028791054396603562363141668639402416248164954696560943422397422268961696891048323442914972760398497602495369239102556438772914504905145458838690249056782872632094645098977714698469638996097255347334100572774751562984090252553747435168961128951454387431863356630159059705202802307029806936484926767899418634267658439522715290565731119228742282098903128946184519273376711055692617140878881981192295842240976558906694477788902671397845443184326632429749612610322457050733379932155081094147666264250976253256648126316265397576289665915143982437633073929101223240793516156803486919635210594776543566604702529012943170965304885447070101711447274323366293369718313192961278832651810265835469624734480313292864870680273419836784337013239212198414641073425872660914936331858776156098559012436163640311269411559531602854885546437792931819638258709897751878960861911132678860137894336876580899769010475186829727740154725517155732818025733900864688124737606124864451310188692929743343622842852275340282246857929282525166972284688639841602787841986280476170045917104737864193171369172775558572512342183207390608859775819570776384278123165400184852273393332685301874957841382989565164182491623155737913466368322943563757168608224195930724219319773844330358825387528297809642129782669641340607992645167465732397086753667395989453465685498619966737425200475786265492638245975016661149591374675858109452985123287440927408770878744079211145949928172146521051978514563612587056313112314629281614788807484105823517332635942981030844318148353481289352800887526104216938923789061849232117681356555603426706608430468665693455073534240000420669725133391580877645098647629649507635844557374724422069916337393058957375885978274577676064522753305210488839720925170681939793795632226829987441919469122057177371859737985789959107211606420883067276354969628684384317167976732831182553523875173755480316587373152182558816745953913130147229660925830204362975482510931208499668595374624754740208856962343758298276728167167156064353851268714830094038699727855073599294302415139087439938431696823847939578528028806142454317843323147699954339987505466129476267923137527346182625139184045202075588870323900160559289380339642408354469272948040450712561177529206139993828144685444810176117734683481231717776286225322845012205574319746993701460365576439333385876471525146612784338047816288819383342395133899260918208699017364080113994307112806746008098101867340150322509810018972264490390843101829003065712452669218640999346657568528556344137549477413423922425902091685514887455633842449668899180056773574329735755441321757603356519204889275680879986609434645121916479669920207121604143041744881127223344747915685721281993700612200296981813097056798525652614976607784839565828858046807414963417469987817565133031595828044597237302530492993380004905671346181074971209014778209204439258296132124774246587300654485904602565664465557340106044376625757192316512440819072447260790496074388649372797778013621994196601887078887232970697382992644191099612376831251809954903654249555618109031629605942300055810432327094826882409694874950473975735978821782085084891809208622592121045296450884229759135080402293885038419271096253011948000557300327110754155197368303349620246881282309132118423697655743380930188165447303706726204095221360092589890035219925148783445957863149564952820930494282952171829473748595104642711771051025952133882651469575827256140089836094406177357283519964822260363516278717364812218991014451577267607576727009493347392631026238500489351694062736845096105413456520643447201481720947043571768292622269656114292695552226073315726236519331580529883489935890908167492763011678217203519089451133978370081572797971785114618101761410975181761826178139921061452738920734471160408983677609704480118701563630308898488530791255217784840285064266439788412050980185957258476587918069558976823031242630274142920637166327277840121855005287198004883916043617435722943812311153938324494512319986605259806451103767103063341995934197898827631066892083235684908453874653688996073239694201010496234091539421164897842051318969213617443074053646371628448762477608854784621637967332146274948131857722891265555632471681667338962517878652371154529999322154183017515601846542205266325448434993922760430079687975164895021798430195349746474836733815150930014977745313339081320953805714686727633813042284963385376211308532598015684419210169137129196323364781405274857323194145926246300704945730376471419056892850924710443741751517105251385932725029451970043721448017735495021470874443143999779935570274311157820720644141646938450669060008353379155158340767729926992852447495676467633820385056103082191978872874297560797400307732076221350940833349267084976779336068949545538565135629368846495254365347072383797089259164682278317876221821881842555569051544468790413079169108883223434364228084860748720857250951822055897573579937438671521111646396969953908283033826045357232413782341057539770985528282433383590452924801954307938625020622718146785098291908780284468747058664478279404010342792280026101929724807078074231843710908151713699748306623041261619224722922000861501777442512321352603295790738873978655663084176433214769884649459035126594450452667026469955337775903451407270503512862305980075075866225477609446671067246577943152855350871064579567756212038350089767745667255494066277288073414199276256678619299490207163116720072265317472633997705358815514802958312068411414385612623143733448997486837945835994150552637188833081745580259526605500023583365322087375549912779230543220945099058896405811431755779789854456854815629552286588007313406905470409449691948476465499900259547205823400528780868543478237793413020867814990182899791857870667610687828618465876758942995999028362622025285519777428106884181360125784546193758768329561532846245575631165420847939221549319510322437155570083510153292692636309004705442575545480316946540229920447970064714507583208133379639316996490006734632058884070521983208467676840586710899675928666708979028159399368409037544005017789134913822862616886883219388155127287466622910901827729835562685787401339595997863118111867537399795578499213848046383643003912266004769896740342714027742511989133682471325929953449132450663910956165973250274718820360161605082511309971743178175158855090533302593929147508873819798551555155131879520356776693099099389225949762065731026098906757043736627242897036431242060881525316761561718718038866653346446718938584963323910861470173875502887191141094079050102370458042706789257786225585821339294844263449510401710325084431311505327507027149107508802495150352695731066907606195182209814061309476097709280814657020268957673148812675839870666085320971167549132708856117805190112862184298173399686355410304665846629664166232477245678546461930920474438973506133832847677704219774844069893505066414104263622378009715748319486879156168008770057548920338463737010861618451126956105326302497884758986248208779726177949839529388063470086175563474232562753781960100853970230546310824962986646068687385464364184566744967193025955122608891792033858803418954710049554903864335320424425486992402060458901993911829052260139914591689363086821265968288540363700478896047263329172582829560716768651051525635150759934217920531107801702087301671869567635498565748178909032330556372473447841462387672042203062755350794319149544105312241439123267628656062016955701352417551594440195471817682142329852154915800431905538679049086138452079888160373755525797140005786769970793220183172931232573500038342260734238939160732309459744121060633070127027360622011361252862071679002464714524738364508006097061795668516640652413444124016410857609589751261951842071304956235773290257755818014805608053694287240336010868398256933633603116176766603108979215010833608573651117067496604296099563289510193315662634382759208042049907727214689012473190586889599645659891169009593629115839464478144705579039633454166668254525595366926122972943317420644403578042833366101400611642138171493546793515405230188409527817014658823128877065921524106487536694413269002948375383316089126803587753645357081710666646946511097214645093012932139366669951499882986179278557465773168613827660873355527528456392523172414752845542943781873987192040261166411852439189225352504255518320742824816412448572597751908955053990553542763864199709818720694214004637539354675659444999180397793728559075439592306072384219854551975516024389742306049529774172856126230321594314716644526904789907988597102730496425983728743491435907531787940127649227480422912721249753378199732911943472517952259142469359534166084881651886504196310074638692485251090824688516048155122915403002796704463283298226398738303513535309034677909405031492709740354654075588120931819122317793695394708328302765096499082580537495828887220446914765240454741111737658468406949285990169933730562579963202186000268982744939463603011390091194249509110869989573845562553763880835520888474194148757349693076222552531274784597450384151416405645674662261055577282142151986046844195422582350434087336515138322907113943668463120314431358009945081949057744292803352427674003738867708585656039330925979875393827015348715910344574063209180557189435598223461357920204997700014939301580042645458856700436052501641751889772615274328576082731937222255721857879613383457904373216003025990313487813960500164407603435893711849739906032359833699378099331463606517810546437394312364716862935187503787955638024648332968275876245586067023929065073498418188409287558817415921479277791558591452960987057314815394927321060977118208423637214522471728859630620241776030666539978732545403810296065031683016920570661902990828709702181450016494367575243909847768148947221525203688521957368427017911731391966332263330833399353272924352670208305562575484072798256821602922546839060346170992254408628957032120551385662097796049314808601437326624886815013129510632169457361873150509686713518765461600500872290832399064055740972456533500952313384973675993490463206579736089583676396378720736063368184112433555582672123800239755047403352395500002343968068131980217700931976544912861382094257425365318794676183575220673819299048058471828055427768034071111875907526326427989554433827100829508957351870905153330865998570916675639252575744780948782650051854842769226468002745065685358200655580858447325736419612335692343273472619999907316229512344415681984934818203991927264645481591959260002380028053405091999748106265788397645807318747611350135851477749851878883588197701735333552332710479747944321006999605220380010574244665191298946058832746647356244994556028681797664614445182151637131875669034612195246136701486233190067925907921379276520936078264246226307145710453816948412863212491442719984369347324933153867963331138320770227587994148159320429444556742759770444327392463061548514497138132541145663904183292520151642681479945740713667522348434881583041990603031449298519324834899897027295987144955899905891005060092863641795569749872336002548544111410688892997054882838523817012200204959289948189712287345953677921170323155488195359939066022578973479811706947490830164325018701112935648468092813572025070049187524479247067226517569619554403316078317136449824261501471129929847668428740388250782368458568910947200070378279287007430262219651948173538823450832160611810095811548790937197834864600612822937145783301509894662589632884921817463961535661500863880031769455168457816388829711160157548810970220260382013659256248890977912109177492407837635604345108792589365566285510272121751225285810779487097414709801283781709126131389478841672107598211562383929099823811304706380913406871741213485398746147618129909559092222797781949647672511515724002731040688331553379849933865649319259493846036861720976930497141653664608075496257958731260229153026579498617418395362744117021676122629313714414990122265875189360193847027076241476228926631168293171610729962519203252322202841743289394366668005423457644983434702820000669824999759954876238353443590840224063858025876093752526136821305728087033285954462690257171402473182563798810094453206182502733239390658896729077976265409573730834339181732529477650284521112805782455127652671971368219106625316610153340402546724060504285737929812353972913545795541306416305969893544383036274078037820541710168442479795129171155886947010865961918653659348380747022336224310358935967995539318805387605626969424233690776415940277304589806832793634215677600157893204255440381151128920844358212068709103030698891300293991756641037061921536214470742936321303604030888143366150509376724226262424255305065926019667125107469590366355423002485911635243941230843810879402165930405337191335420156522684506186253646386351581329820625171788204826090072779183089703418590505853242913571923603742076961197822112078171875208587122869817594809340395415446987297948566412173319447191232188838296657422823236275114731639062421313934557401642398606700138061680899815853032315543280857879301433995569772077043009983460544802447641198236110434076116646944945110171889867819050803172615227468273401799279151942926977003874654484386494670788923400463095085401698309747506557425228838461758140258612826479265002160305046571858912862269702641686573674216462032970088658508525234808564667675250638409361118568081661553156534460844074002926701807755634488920042461120557879218416154218441045920309730837071111789741537147150835026348399914962672477775523483735534663294296652296915416580698721537295035855493432155038361642814593925377775813169306809983108968353147302373425868600742290400519294801404756104258310463678492360329168831446536175087730525972501762181344715273363078998120969902126999543664246570407963387961161179565229683848149908447363183668536025437551613395992735427512782352562323511402842408843111794435992985583501061737509634036057305798193899369784226259874965107270476319780942377400200344983072724183083540851717203515406275758086677003753318348401297214292782872808678274642307258772047588191944283736822713458501772400854403069849391097129701443666964780064111199047792569776378516314300467943361440529108158749079816310624924249709101481907471256877271904757639739308790539694893219623460774169577659770874943544140039605274489929444147957624052562185985334385793754339706545962180924862307554795790902559093913938059012917246179129553059597271377628214488834355320478695355719087234550006529504036020595311396479318926252174892078732284778101610632664748535198227663813274949298418434988080247770192012314304349246624460643566589501950484982847182916435463306877183034334720798171984266208391102461931673527760924363258288647829075235612778765794751368336036430260123385791076319421912792424656253580094405995244619993915089828671211147054705555180826574656809065770124775409984874295016750147736588713242074439930543397689919521184829363507146792105580719743676239825840771049473468996826163549534800517139836640497689267852702796908461883629802405369281305876842389535592327821575559745242464888871307208005853205580811502965501290401240992514003243062066645562339123262388281333605490100226086481197669170011937234531982582332546648289210521103916740256000327965642432224724966047739553621891980633478363520308813970678829088964517062735682092065477888180802313398780169096222425019457647791429744108945551493601727991901816379050058032417653467180841061020260109162456710189140454518469316750945346488491633025517845257049717872896583638865855505091724387904278752270380719648085514352947860808490553758417968251769472574505783538787935920345965843276676151011720904805086153936860955673999075531301250743770509889670271609600886375929073612617980257113350895961437316561359546353660511067627003170827352721216328556921400671852580474971384913164281003379327270214257549282688859568713656223571122215940105467079668603496780481294033858552118457172056006145690627573652599309054471788745238015519969005419903829391275471785796425180897694222655340168318142479663215818729174848523120146499611620824934735604091252758924441566479775162732031872979138530713199219927158901229856117863238021163645211435826873895219472029861721308118164929294760029666126333741486692503221499451352544589506104292048956600050443645175115963203979160835075685271083225359216120662234512017554207015522171852016765419623060273431871918836849018767301028500171278687519182621144850746401203902907492921387825377762957864628968829446855972264504818759704578365065205229776384447776732783691163341636674096953596143716514049563250916839738679499988197614848158095584628543496321658976569466308729581202051429259188315571515062597050595432551102276446333887496993356637512886579344938332806443633315046391457029046823041833503974573780479850930541525625189809140400208173811560990607853034694638240842293527643782420965974362860514209509426755165579140783219929895681581167571542338412043224819027633467178173887250523706145155076949558256967518733919289878979796062528473551862122421175988520837999451127267280541908521004784698445049312493805041868500023624939351296553319318728326409483124208122981657357605201284778699963761055421807861782867787213407111412283505568211967030323507694708079573124187611797370958446780834975557876144213056978086564391925714877146603301585144922521822932347164501099840332608735707689826826267425340652938308768434994419318408369335260650757297409106864111412925307210445854878049989997012872370470240221237103417646545344555300446484871168264345649477071127786323815399560327328126602005342048077158166078431460985378039432651731262926572522153145000523730750698294376461666699788766868280702953804843907700149434087390040609703169401952526906303044198223335475936211132135651074298622447089753234803834545762839666568766246707521847061591678980053991909073162522079385113506711757336078054199061665964447330557169337802970831209559403067731959532795516327940739216636476969680219731026880972394691081194327827254932567499327555000978653783553036658016069929940322647178368741904269382067642747879872921620088383334751684129385607898813225019670466927973424037591294559264240512935540162714863013776471511760150872975045311243343112432776405895825886619102960904197586390374965969118460894986159328920011609068993370848300645892072978352193853209532904885533547823168824517236236107386290445345702858860180338454942268412687240776861608402629614093550030456423472789004731896832021914564611317394668077479536182901461868592043708762879306404382919513085676801222068929169137236385248464713658593245807772150420393614648304687627106976595818305061382122962495778035956875129043508912742214871130005855804914301837132398773247152325092884483349585254803495300301697938852384464404622220538549528136677966483641940599005017791674492679124524871742555689928057616047707175546201733677658610252886619903167702878031337063866004307050371444893398223234321672476252435678869765974507822524058315096746233449642514929257515708711777198523751114822990282016871422222431156311599187017193455376789862312032671890581445731344512766463333181386313312880768632766470156595233542830018940692815743215946476042709399763739609802536867161996487314689375313445552172976367310005772976072501368495098632267175084803477789427181964649326192114810407515971899539127566943858635112438912689816496167295162540632277589358072889316070007208544615419858545173509313538361200740273493287436196953093983245140490978340691277373692188596732625707221085000987890197135126864609402971340542431602846067704624984610263588467324935911059804190706407574654796603033417735510498137535623387525218992180491595252094792029052851146698378196064993530944942541302911070357285844740314781130886326299528585933439473648436523831744216376283029466489929066378885335310048334258216252828070903839644473394639684035248394949125074767133309218119288670527736648077421611616637295851488997960718372984252447569584205814297033236990360269397767744620638300800850148516361540995331186805029781871805430413410856742228185921064998905631330591097118355592809521253894068690790281193188982196057558347749880116200831361929063758659643551011628802006684640043001647226544491432177600790025956446255986099108455368714774569507414716616670074978297138244516321445773682271915685599101728331123087535380271630640321578999968416458613323642470016687796090330711871640537617054078625023150622133758228334097452743791173363247717659630342585377642523389300448512437359206754250416836747996986067654308312418727332749917012187698442040809652711787618774021629697982985585104257132543600644519583059523282971853752385773451253697807462790762063276029317577884571108392655537176955387520462266695977811487032276586075704449768459429194726841191280315305024272313763142875397059134589238563937992667272518782104899957698708964248030448141931255314542327743762323066093772106381472972574558042995310891638860975491005137085807339337055261478059948511472444511167700247791361951292525819051520251918122841199844892174415888323106547456725978755159878475471962373148977484703387528434457908260982290454697286664233157500371589907691141631616808096804808850457596549468423700421168258781704306206527208507931086754243917501884931543409273413000778531399895686457473023717034997109928454778985908295883504973277955608468929836624430381103049576943767013047927733435329886545815443396423392479249194048374301809612163445511623815756025800572482801155719072859681385808070052202496807054122315127141663497395995281467275709796037376538059798761427570398901616692817498501436244616221913702544283967412488566355924326905280968981546537086384317460668435794766632179110096916009478273587952634520086860110695245752486515624285037805525697436914884010721448982070947796431430877883926204474545064270910611550967630052094859311250665119290649262226548280491247009109983150863425997525636245434110245112869121063204956571093206538903902761488358843442819116701270759565669777140550584572123206230889219250822566793969961720380597770467484946029921722685128228377251872061851527027527922694812551632963020241794357933150990186304745184771607309157433179571443823994901814184048528413634405758679677898919350900961264468967949423561299733026731599823688984060774180748767770363055787308435834273338592317028456159309895300310494691965726083452292571301966539952707244923439977215170266915727123316343502276029747836271295457184501522096062545551871376543839408885770665952099132705565965418671283435322052039688008575352976242878036244164484858662368425927755433726552454018495832516734714663391019991472782714369078486597928690621834155348239850441906424428511591176776746042919924905326295589160356690292628968171768065136589713673640007169382526044980451155093030368081375951926259231297046714478000980618514702369760047105338028332492256603332559210896317942608541397139094225003561300612326622760004416358041796164996948006688510193981919440737537406716308636595202401919647948488972834363622314758950516604585269995789252381896605650261050511631228481492726337070523682106511536992506240892994208667244509437313389300181682528465558885576848708878587641651481867365622655189160232080335511246869551061491097339570011384964938007984116230212896965381932846292705276244628683430003625078297116609977653072798014226913433027680938423810966059988178765040440297195529271350037605964312369907008731161042985582493297086373492889239315483003602081368619424772888163402576280951950857964955678386707352504995897927206664608912825047415949361415810540055312325736419000133629718199408171080255170222047001072333489508525555193392760885316140556364752054337615099988444555688954824003473658126748310089029730275573065975205957157874338993235262802174698311303899773465577796567029105509851473252598446811643645052281473317577967107194135307667820448060269239545198421513305711580704023913043960317011902855777262875962026559913648234869944752258404709514522504922010584098603716079156775818060406454024545469170725097650332396591933159997670373886612305960921348164267996354272930392719905879328914803280923113818081715334056361259441352297213194850948094137673445299127663157939716049521051705475038518243204969172197108414148409486278849210609891857864789060029508221172564274408810994263474046387831439912057995744420193143065925050702373863318209743756385407013515296441871218594211209494489247167160068970850392774291349337100945470516399599709066930773761746814676549195128748357074297444959743101518591638027650819767779927331558205600645056745470353427348079542246806038900283386565609147147437594289606567848220009992749962206776904056878355829782812663544485588620744291889704846911937881021138338426201283109976479447716557992900988272241349103422292553646785071559259271166698892692657837805890265302912589860335924277045274302891135142084134008886344881405190436592948099651494270198180471362395435574121658573555625786518839330539136072427117517703096846646706251700092056871698692089752032235262388012446639710126985813555501911289936967960591429905694343710498642260969408984808823536270873977762201802147280619318569812563554887894205001114068577277862325810813305960029266114147259808589347467043690083519315570065548600917215423555224700386803298208168259178002303376048840337689221148324884131828647824772610433975437980656507572559775812366431634082927570875810633701814387240860470343833855615007201979886081260698263430257765290806525217998212771882848551464254137671418057819399210744954224245087800577007006713528253301262846765469214128877492777023971561882248288201275439207429210386406068023247454834967248348401137628919234926862719037809748052201778737437577521790417526759847602502433832235643371052331417739701827114323367877088396881927597607564919160274275682490836543408755263233201303574794149373237524949292004840956460676487905170522407092146265285365046570107144305931003970337652827662292051096816589601021255404983678225666644656875409004869745874204071746170681722223526243225761000675005441613813371163835679764227735700124442051816892554638896505700037210290964303109182087017218017904989874638433957781742187023111300414216104627658615083355020329349025971303033742666523142916303055043324005066711692995297705997667453257947468249971707842553789873849548224909138145935060816828157459960542663221466376314931720602806871727069684930543032448259432364625112744012936055605031774878313023326921234938139763528475137546524220205397514430631884144096954260882784657217341111023182664023271279240928088795614124302980040463292468000298596494165514963082587277657837172426328679311861009885574060717889195437390467673173672014354868785671434519006073483761521135852107638854971069008089616059396371942317082280131401554159405244224109119326189933646119733352966198855499146662061874246764378546192240608198714216135732261760143399428560174039260952650728071663785857692049422288994390031067966080256176271304029520781581920964642271590630928054822548812070819384914422932685275325471398478143493942740251680811882822437730447999195680819906652448220024223055052537873801331111159368722498407006969835283081222248638040948631618651636812329637016437894034955149285545104131005850306407018973410668606732463095546741568091111515110126852125372789074172588042120476846841107363596886870468808904328002424395623474525848772510295774155183647566336937339470930083404530909340919003452435534190547411947258228712545593946858957245781065201115940607017218645034190025620471294706482530252958317406062814892697313845366625708832449665559259316180859396059738712254350123146675458849980560746760592514373964215526648871672951088329960138320400842031861924063808155097694777716009327797855069376009348034154240104347332623279641689866602815131789011711814540390550205743050194660620144717126752085530251684790916158965827903195869413172093034808582867001199909238589761758194694045823072097040255232338943774372750147422520176583938251105370075012550769799195995734215723962672000834862321930950496503932888037953130562172022976157537025037175011920275133830911152780233262374051112813305777421490397752864440851657199506512655983249606829697198364830644462136827842086782152163942023302348032771092478013513987532951397328097618845962661147425230543969121470717479419189227098224238480676112599666322430874339098472665775574531979706724261103760528590043488972332346088507019391992194000056771747051505432845303401531572864758783305572706243485296093247632536033596578460006608347258675179740688224184380753336205690559583579480311389764197883512054186468299421373310370681726754353819847700416234717951899869784280899753028456846589588157441064790676230854359049624277181122726824473007239109911364949655909324675188663940624917415817337135297029095661758961865140011298014998581172304065616958145478645386671628629142005549938131871102287426203865996861007617684659769349032217625689860182829475340220017616512214560023710168171737127062819488514303063002235663059523047973290567378614360012897407862830361592073541293376317591208554315558378299073662447304635101177514243561059972172607193781504197619593644577034755678981946107495408353924344577157554727274564664096111916598654684297195887550472508481241305058425582289795969343705867140353127851447527982200949017367406260734862430269926052325700578813983374709363391627922039936161865732749400471104424567442696898615916880630916177995039077225099163421542242128896964394791069903602257009298462334467000365040297458315678556614808794148029110977175285154251097782608848143042557165896051715249628870130726090631964993674927022541804547750085302762639006400153875486113433946785827327005833526509012083266107208407965658430611426832834917817879845919983048686415795232940075314981978344901407924971417203000399099558209518847782567164832340178683986958472017148558621402210265623317164668195422965378175470579686138484596114587798781674406446431813370029680340978689308307488573125864869841545115543729363391515690012599337184628951368415654242741022837135140199202874909848772534013920810418008215939007722591898121193722954623483450121505859717803365188383699179667891683965182455057465152565232635839571778599593103307535731740220639462677909883035311759171749434423755317651494310562806852630460943750902763177850302477857575297166307966365987108785654346999570787259974013684333911351605090947545200140503808401473001375741700993786334998012248456060054104005306684676986364248919652970425816777125053001649620795655030058970480745812886221151876982543583355017419350793224480683300371081284260321803489826655984415728343140070856319696231560084039746434563603811664317423709773355191013392678993664138732636840419424133452334691068157186029577693745398215176140362306268710309891954406228399117271026073825857715264334853088906344150448154797452733750404757310978774926869235933968344353393821570116946086582644885414052419118661275510732783134515926918576090338162768913886380282804080652868156616440550463710323674300233412013717041843887330496302501048096967960891123840437584404831543745043142790047545120115639093413263198765823692891167316564483030939466818287883722871417526674862100764930031792418710797581582101305016597917793544094622218783599942323654734427515683696779513897518841316967806503743766098386743824807313891717633983955727429269304879164258397902687830433170474665029713580459706880765110786201830646567107959913146068649369809103666311582724394059040078191004031720294007122974802475363594544449261536748013197296123683833389406661168518561084613895403021244450162461558983587324791677360637940132063472183015872727238459618244986967502522097265455165201948234319641447911726897713651923345201063679178510046458911576393675181948012102983450678386569778368063266193331117618639685734926090739376879675071982262458965896761743212289502014733610640208236450917060397988685049201330566744444245069949651049319818067578083545305326761693322297766118220165004071980755848707640503226489375086101685852045191803381785379208813033375390222598358538168616306868942969014466183247856775026202047112882284117932980174444277416855710385734018600361251920319420540388318117251931175105917274758813790180969263289528381332555451830093454888829993908516205447361154631014724719388935243543036888374176627156387210715043417834627885565138041710777154802201046830160773925541035022248542259162358745089011605741282444995610503146186290523432508477797280387143702038685255834475248427469539136054464106131045249435151763019273870527781235594451488284949614474192129973447703594156957716670360099751005524205829413609409267885455584537836721834895713912533793667501763483459620243350935506880151074144033270526620612537530465585826979152678817212407937132066949005031866725900990627276780207782772041072721923391527321402372030586361248128121302855510204973065700733702545531042840997479084189418449329844428417593897710643952659706115126885511945190748377500025010433076097431849450343759329446496957034279952867256117063882717227275892074077800103616188889138598537835250494688593302050557026323108145831079602200673195625123922050483080582513551073976077592558826191334726310824729153046239899229372164631040350919104583602375754225957392916225289657030985701072512689926857828555336170126480987165820733379908788389405861473378762753818367895177686140143116983770137517638449449773995758717204224636964832410714612038784196089942928699106080388583405583785160817785691783251007741872575372299547467104921030953041996272163791099736317496926541206114119959025101934721536943555926962441539604749330173860340948870950454182422704467022879979715819296414577863594516211661267349726273518153479234155127404538198654278943607104485138634581091528903201852566332353149452856689571824546747167521792657986675481374754148827700420166025622783707443967679781517776666773566500202741421102332851601225515650314604786274760150311554586111373599548304572087993205230894596302372583577882069000252549248711479744827118186478501522549279755649746072594554031611453780991728250901540600745104150885873487818528581260215111124417148078084918310295727143168269894745692887609057891205684259444734781144403127919804208789359082598955198429369582820851155683994610713775284599111346850124513196035046546283966819126922996942212718765796324151444605035214218114846459271835210408810325478430380454961346748108567389061328916720643343479238097731078489885555943984782590995744013899012744021397147747940481746941825637884724815730165146681881870759287623220725936396517520328168806996498354544336757878942199154603593725353126912720817903848539952375627509359853132944527776203443735385423676448560292440852424759658525958895818064651441317450799473471720776197105274077141156679309292148019538575395237763644392172873392799140155713463464319346295096024781977378840332182554777441778387792910355765045602696445057457724559573314514075105810987019122646646898108469408936122784082392940210844354315621884733095666751634301453481188431402776391194320702619315950822075168881373190743859579273188976703498396988951463235353055953470060911044349992365047867705403213841076316823546034922390954793777376923126532061126735927740989014983045812259356178488148314879707079728270330092382701358960131482457537870430357042218421657200382234165844294516857954070069643500408389888814506510520417513508895809948905753225449152239997395205701684578953034921691572918681551342589825332972283397308936324563570069551635947730788170786643520310206113890638824595604629063357866574694594378153116315156847660306301421071800358435061035019875497876804262896521999489159434315103771498115237109370114860274940992146030475678567251576853664969885365021708818313974375365451753192356241610963652218773047990651816437411328087198244547462007369265540730259551790030933743416787556079415338492458297792014395638444259456672525736663481914891347455059597453662582457775020877583211817722799963234502803624493286936422187580870367815867706120344304420085154830099799285006611536585176220500950960537714642652637372861256344595812013722135993992896282584676533272141019566195845644757606239156467455969411061933936201133657758361120453692666062168459049388652919904026389725434466997662958382237985656183758319377593839800598595411032293842553693956177078890890885419718705401450981616183790588699798570854019036235990345786957704222270159307415303829875507688441490398857254221022389921701621032670663399613932353855286637587848134728629508376147737683481691211966552652968144468615076367402829917890050555632921816398858314756989243748412053031535871553030968596284830953187970053765198917643205788698546017043424891439465085041011279663337306320979987270885185645721923705672929805005393780937289718305883347879628139638672703140321188475426923931837890071982319131306302024799155780496690052846179044159614171384973139671575414469370391202387733635562726118334001219011484191366753508584564260185237679537672651329913789844460160382921547646739602503034244414703442292406503295825794351019592595259720397769168344632115287569810841964136340352011534825710766401142467344985759955709442627168326491893285680225764832231127177856172143789365069571165224931165304748582309717999153378849444718115751232181289305285610554038872598357037610685901251363738072854459254189868597029103863030165732721813398906744492802743935296674679795249043749210590150284150770101273541202452851675466867580736516342239018509949285324965306367064483017599234515427107556180521996031113934080822630363391156344701775108415220557032056245558300464966780791232572577060047244913957496180170048673237567567190149292301432151803445878271292914947315619662334579976361780174127989960591089113406694766736791235130658270843007151814277840941441840369831018485386962842539483402006127593078270602213885624587317724182107787582546314593369376270916086248138687174977828010361409331695407619970453421842031102482037755212096966263754597181686648927486443336571486744571334868776824985340358812966216768000537584825635508991390757102898205666595381027181452289097385105223134188730891436234020848080650401985270400052999242211290706617316961412639542566736112363795026939146613429087014119971820695547195323053455658621503418383118055515694035919547753138141428488825478722523690389557669377979211365586953561555753595697731807567134029228233811064061718300438324227917493427200932690554290222554096980343140835906671543081441310470374103843369636452822692370504887195989783667790090939135169434765047113849754057217897082604199521230840175658691309028572508227571879601424499824442576085385651080313000844929730539607217364970186710231001929050036094087937919803746332343090773191177105229142107131964250197502448788601225639840806673745777992126477946961111155565670644515627812751715282281281596094377523643301040556892308308337744859172816987072801044590616184033037609413366634906411307016919981500733058969783905478536620822082242322111590920610389310030839047119622088892735572011700864118139154407343907627303109800105281221543205378840488178387564541531816380615551639350006037562898274446731826892573060854482348372471275748325418482658204070230458466634408616916458272434564810019331501123741560744027261515968646186319119705381459733230036636611941987393647957018712353248833886668746540631931783563447102773451851873106505458063015937601405246250982861079916842611721346662427997767770613540087015889822240286228916208600433284177088553207755405636342221174147146553063720552600839013021944400797551084355868187486674330550540342644509127144564947682901729295318880632216119999705466111305586765768235083832840258464554060488813716768892248201194297534768142072379963790303832922028925753032888193402827888834602410082015217479319633321608864791808986505369065479112533594010912334375005616958304545924776769067776532449866059835250636418866470163446022264738387747676891263771642843016860785502686838300831936970130954182336039360154163043699600234285775819351769894603063723012009150243055268909052657039840053543072962051464290435171339437612265034591282678002958493157817934658502906457430576583194172215612460167580910108916030376823395609385781349832010537658207600554134545640681399149778194278008824900645647111282899673928318364785757842722339743029318273089981913227895433820515943230868829209963825188516378033582979221387647462598101477592523491785323623157476307054292509490539471441892733708495708864532722705785621344764446667255916840555098307150502323740946926583442377544124387328451540319460010102674727980465541118743460631302287355887871203081321180215387999674689199664893646433410551298288285745449829136408482170451399927895675240506502117289387497429159027041300757154866100678691771494348107125331526719410958177909441051433143276770234052066826762024224175926092675420319377345479831597252406320718407216532129896018721075852893167219869256978738242481816064254724095377270923865185416049037238961001424456326908181318445006221490071180400933509287008783737420809676274724653011823738324026711750381821755896797379802953205037370298548674790204153309907334579067423527196424723608656166546777623061892047021731016206636480825042382526771983514075176289008410331579011915267418474714777705367086776797503215707046673069228600347324961485374452780542206863273144417215355461693881908917264620818133862362272798457171327360803279536129402735384572232226839871973566763840226948540919088168506554196786474031222492580425151844141072558345224531062567606609061111305142559747923373067624240530590773179611097038984068484110800619888378920888347309992875934281823886956162192260230014044991922711010841730869042821696173624897856227905795360234820138810445837110687180847234215500218864646933510737147512406023089081008054405891542403339474834728574137026638193500732362654396221440221975852619045504827618146816327801144446736720834248911491576371669810905665813329929534577764549582215606508958766730049050692647984223974307122235671240239564709997032770435770597149816031626262956917507314957962912498855981203993215752512032841263117333924545096308369484509575257883176819298381016438652643450017099671332980771515234554079130016234527276328445117564480962212673088758912193730582274912713532276934677381709574658538117019286481437504095755060825826566820836046945774301677319600928851662615728335388030242076348190431314499145923869806877938249819180636540436394515972014621530144320495470346528162875715446701271220626238303016629913883928864357917470150397459227545755143879184195307525813417491555543097374926376527492476298617783062689912722374969363964473483531628317937727379150288817652728705347566821384196870880966198138470264395294468426538222633786014524063157829769635306487006754183166714142625172164166547491207449665872935988747911801895670129279767051169226358020062796752288231964131244675380734980054701493619973993084411830128836358488371790116060664446643668964334168859066245903020552831409820949818750470495690481823652009796251560946825287716129766168678774263603681981649990216354535797955488193063718260034056638677839079863394037362638511546417075066793151232554589236724079121268758387857843750111561232522664426429580851282956246266905123744072150628641466944502101677310874856163684694265907579785170509381794012803302004108744386151636099887934706354231177696128453521608535061253221883931257297254446338631671466248566629724863278194737114100368247417578156601427663982184013057202809827831958850066503395257810508793264167048304213261276173056215480547946906474332724707021543746276875132885722158915498124408786566707100008942681498043334913555982546092816060181964178835775087008338955005052218231495053038941678345038005983658656176642499463944785800911462789966800535889789707421537154616721278899973144595617625587709671224369704813147836933315490950851618094658233200066411604806513357897050911333065096018165851583493825873129017962818121127889573377786032360226185175858290216321294454152136747858917162309807411734284985735882469444560120988110305243563548507369064180957210934467017884541685456727315818254117868003904533286144601073234908146761488130652209560413839029668408639491710258553463117723370601312373673762541541845914736685094666483634584730203092195034334922811457190734515651603466064957111663370218826615850942918422552832241888555795557167363719015183536441894267945427314843851831039191337510812309193212788063541092885361651346273359347832113633642766520979400379080820957031365360088973952129705426882333961240174936412776366073043208783808219871638127621632889127692645830578197501067925753667047245897372883616204095326792591012833020498643098752416712270334276791997844249726907967782256631658143410205133953715549413588685330955465974807555068561044339581951085340814222044648220035318097609704697091215344262637643810074026463711136261443652300471535365744257093705372291491815505479344655495932350943108204929477153976409220175568542846895146376361119162753123000775510199971907464490235728639196043709445467896499295743935584670711471342359775548817596958680112032134938204164830833733353330276780013232556882547073476558753586100148433901487056381832106728883496694083353462894506393688539914693090313885109030436709183015991024065880776239749920339783785776424625725432961800413781501570343660927252305493130275645507596929105333476778743258325405642389922978418921666471861618782116371638640457988459683316277474185054819697105785778821541669180568358234046690244650150531596307844469451676983314520268983772241856059695986801382897192103276098522771173110407951011180545526484320416064187178448849188774349521919926892670757322509709554395747008211830340434955699148017572162171338825971831736056961274508530419954590524610787879768741754071090217504275886106255304669882804968440106837908330317455656276153612183220334448355250106107096705332276808831418999446478955203569869760067846208294110003002872933726391885398783740883332178432848591557477332521505685954112377979206961915751992833854400260895088873248746288274938483415967147066232907507227554605585056176689743117624444776641317081359234216292255988357039711590111773840855070267784421037750304267210660258577048745353304436881192173478831357272556805631742189461651952329715272392459503567648987729577862833911550215195652352725624065835247630626950997421963070641661849073089025757688956719337373811093626753029891429076448036890028234385717680372287116542489705150022008090359543955253795773348871580664716353090677714503532524288088312693650951724336455155290739418191285462172544822347206175284296939679247106794385790456989557259721852654866399726434492341531402932343370420803845952912071287639845499552358895727209030460873393698205485949474926866574703008155438374657943022909847475275447847330299017945932767583176467494283803176225069894426051332637700106125189126141037605014189132673249609919996950450466993468562972857736219119423381923414275822629813671201892403613194101646082446473472994612754669526504234719063552686207872189051374252594723257175316011891733523748065239788791036035387833633163249491534077029165984042362643672814475270822781424303259059724433183461807725203254033933855035228106207394662598454248760855628882202609772187443705943912842527025766006948592729593908225023248134514036256220113610834563826094845327478355952838731312276408991179084766429795322737972108369226062187619490660668299326540993312190357609577152601888655735839655946816592229636122617803004592222117299546065965908706859568978536597159204774789579249105323250916355194292649723929524900254282779938346484213842664913509898236266251941908245620769710852900970867564012817508660330677350365652002120157040241485794265098911248523461620483906647893322582851280046318759338160201749569667968440023624752015347977507432879801181502890199484079741499988187430867640653713254086756524128135770741682016713812107985682048923609171185307127615711548128722760853010507675430243842183350420440750016290226423224161219353922858020967233450661477535468846281361478421422841980995158985206082201472397594934573345333166155988959150467683314326062031300405474987357316864434093352597763707146882330288626152643171794040411172354528356138167911257480952816784984393725905685135617099844707522049062420736146980008162505171750803087015297556449890555425945140335677049421308707960808269306712954247662884541662558499282656505397903314739248894310522725354944748080973690694213767646928507255153071339450811374396907003167774891633936647996746470801939089939760384133497248165306554295912540009698939414673243720371117564199501042751096842673342540239251803825672799865900405653339586207152898151052785114490317470724357523776019124955859919003912457020921733929556634963536884861468767979607526208202396448656704219409324085250096889851883724232306243446236853232243294397523715635990896645878943463659066051506237064176051250908285360124008611227555909750154056736612740367450443486166833658856229802411675282713015581414914476547611284997523777349761032818828033432879577339694046926069042369454923734304391733347154495902150907621034574798984638962700300484258068940906153275523455857262101478464493398200263714552166933999268530152365268112835077130256114521520076588385204513853559453549762111467254601192023491642832980971603707436351369615761067999670178774059772688106667002520828380377877507294592663759145308837289055863855673579935419398399972739673135314191150991458626729064834292710201093373317161276499763412715720559541078297228360313129991669235392112867661572879930690786374928390815412422061302193562034896767797493093143502873586575676973116429913784386595086104038705275021224984451660056618373288676244848333002279010946801342659942909262154192797905419849329006776139206135423577607794425251123930679065788642413362672352171807604355400264972510397517118627456656757502264242105245251073510587728900286273251286645842186050122661723471683629260437759824158610356305093197000151751355252938794798852746842357316674404104007492656386997999327558032147560976579243569915508996849628323830374417480305255633135016158917022170109998501320072288266055140299045603685397334888261445993456256126278945833494578643238410853386484607461279102378566915289027535956379317082776097032132916283045444357960253152224440999345343693864864882412293809936616307371572732553302533330507780601193458634740028293012654559047762407240644340378343970503243510564847888914564620835246157159573251746475467564804935481820228349469020875924193517936262865368968889933442948211508471185340466314272056867851961702097279663608315526996549787410617514559084605695820782243198397144799763351058813205301793971723593399113975971439229579452797847014028707308105517870149376806305699828805059117842185228198262782035828759408066530285395590200932993209837705674065530280912971716600535285865270909434638204500509676221140826333563389573002298855169055507309788224097596253391103522220247174429603037797496431519369604203060646533766838437773215580516195233044698824399754378354819957587409905847878167474850592578459812086941248485472449112763806005494871962815790070623223100410726121927162433612367855646135861771585446132244130080618475465388213039149586447591678614205875211543222789294456029198154735191911889344528037048342723423299950785467599067318341373353133411472168843569957920810331301295028891098709556735021094518923700200036956533001885050005466362510090960461120634456743993722852391088690225811864228031427467855977015457641002986109727169690091545096028782775805115187511236881751693571587324463450261649805268701918329611127375925234664594410584686029061848523884706172013746455121787703665544829252244856058365437315854494576346770258915419552274052579120884586855275686989213257614048343093791577323600592590185937359405348243148142299344119076593781996568350103262461705566956412534666711593585138706295269291628574683580020287511690146219000383839603559835116961679439820594576620871778528595317957868458220517868009772136521050870776824985498677635776870739795082422781012624486641904108678622650910689024774460539435269763777686722650641094297241796133740056979562675316026989920071546587851533847943043587691761745421300378733116580611198160714781440579060526635244834700014970663802411345398416008781597383296349422422991366208118094098793971509687635548006219977235981519271542740663979630235277837560385001061581226991894069481459852263539298290955860881362242759805938828752278112405974094631359692392933622547576243617491572986845579425378576612055426442451771744383273007095827139963199186036554099907965121898808965507723604516627264749011692969184018742833260502635688150416915642973990615446724355364674663688638544022113421953971032821448517185438105182384518066367713084477355231120737344852231134802464463482963713228315157086520236724179566426676607315846303295416025066385429156465790607129582183656812008640383416711233140066375918252000102657363188111605425571988412274470882670509269509860705199061914347901368314303893720196558902129993560389591091958329532642119224503833257441463773960978476593339040037224299206352499476805876423331989341080460171149425626858200077929855162413722386756853944461531646886085249579110580856037249307318390970475207214893095631783039506612320594397541240888213759389731183493288671597892595313374377158620738979352362628238381448375898576033917578669155708441937166634419239684110858116172639308277173893355573844330342846425081536239132089919689816202805530003618874330341357839186177902613912484935316855632973894152592707218971543532780671190430137439208177638446811358289939880152417989141761777682758365692476329329905468697083153375289147689724907324699215950613889965561446749941446336131531813262539108769770996287174307245392740972251961884541247015991997748914626939298582145735528445863023358750187413291675408308364813981727898503439213509329580942459633162827559973820938781079842267372631313789052513146883842518073938979613020320010409792925287736226980521792802674561838849981253415911048508210011510659117311098309995452402208432703890006333097915204991629186294281971008572173510934037758508750289022490713158222714868707825999107554323697053627286899424857028890261069211842112534952779704975615026958633846041272346645154079983560417624536786773482640615057988978837811450006328633719827908645476845256255373413219822544349685446578866143323830876734461100605805721390852674408108852268515811149704816896552656691175159147424808636221887812646208545578626707251660227648009175554102239134992063476804947075953671429410298712962726758359871240352453978674394861579815801894292733266894316360720757752817793538598186871652810069397037015204246787723790785143844474341586376387538519712266806187420690446530448455419694295630419992467831584017091600954136740991929306223714635832281497711490724074210725226379526000717377312808328262674702380101635807374650607927371162862030734417837917787333686962030816436304189178944191336924682736149054558029863194673743559992609164226353514172210589456333681406268041333935154741513012453295627833190186401434501940659833392394966639294624945229611851563555572318434690893123326867563161010171143907939857027137157217709281112060993741338835489605778281450415644410375326731476704741422271768653186628955151741235884245453172300167191696909095900572164904615444258796357150309049203432508043406775623287975650560102647271426754519318281516335055805021069113024743736575618769619826223076497099130034334545650925436793660045322404064724351527674685992168095805218417415610318891095921050024802455563295948871450814084473221616118370644920312293118921625685798917191220508411437478642629974909609579197494196927801315405730464623804460489775286741175703222397088719095534596408155848091034263179842223384521625310826029924948032576904876465935131313432629458137924452828563089455947556101493417831088907410155618424994659902271282328690068625235013321933652385717708807300454821785418420457252666750638149272303314916865978261751747544221246046695170402469340279089783989522490970035837331708605960391346064126005009583800536051723119550638998431751338019390510907576058340551846469099575542220348314291445732511766300736636861792162854992332832100746142450405712400244625156070292335927436580754592482086860133382037581226524635901243443195313567735874848470870697629448513956416860250201807417325089707873092198703618787975429016293609697379024755311766785901744575243992547216603123045360059791934804581252403167744675922909125076068031166146931112089149157650595079500334491728120556719345858555650505366358050215707045142763509130213042330413841202935899363086423431033317617582679775278149398393755609909904540719679138662314983917149726227115678945178614002920660039532353329906114365857214142712434144386566272920796242279744283871820054468483827154908644110333312452383614547497261694769218217322492283879447115323675588613010943542240793705447202234757536543049774496966785501640426455862276978602363727873587612615175900014561617515833045357455333251935727893712741250346398813625937835722501941115512638670517721792558828560919505566889975670705860480860970893576366174657919378870904837576636482979338633595758104378339682678642377901154647739316201788496203932986448991908980436930087946656674595570530883184653633184810927634884770891277270836593654154865329796263630372531820621024991836518048265030880327100693364987396426530723373328869359969230111547642818812233571149636542494726863889667919198473624625601295690862638199530760101759605583048603039837604260034532284833311650599678117398447415922607541504588950872114957907790983830812867337647413721486627469696707632848432307985546617311450582035304639242470030819094493655839181252254587190333734384458036229153107720505184036707611133125213908176362030990297668953511219051386786688333841469283092881598745537297526275669530032166606763667479412396780840269666959362856313230378255305028382916872908906352492152043023362192261206215713895030963465591711389756736850090548390093560293202223409629149778098215212057076299889153169275616223790200572030138361781672488441474380417705918096413662668932073445486160207637421661679857157317670313519848434546013568675106440524502217650138571064942663330886178451263551463586263796739648013128480154146865441040095540023062990723719366706136883452660848992029051588946135611752474716019407742944876757757630911261317951583247942501705971021191354299511411326726711874027595254311936974912944297727785839840951490475410309579321508914550039887479006519387099104855261146967026751553739929197090780895895548790860320667874715594746476011839569559218799326080529002756022813714439799148261492146849517436938135923760753407162906803938850705697356432758348948991399311708955655376830037017461868915859574035296443860813765292530982111505876242398885733157032795681146201295944107433987545386071778033066553668939102602954608577951791219481678160175814954517692912513449073281562991746836952229475180971149337909795248977495707099738560114833029364194887121882315237093649829102060551144373257137355359421106432364109206561875900743930084919611475422245752443459695836475246806411012181574354179445677309822200203758284992754360179107796722196766068576969902218702566039842143433547549515329472721730953198425291869582744111311201663818189721350398311053250000650500022762822552806729360825744930827675969246724415401062434170829310419011120286695331568004141908476334879744408375206581732489351778891079607513768238569110443304314356302700651074216393240577300404296969064033715219573329032392790349650595299235564715807833893921706201370938116144410681158033444409176433735466322438415685596094187592779739567112794928246129166709991737948073813729185496947998603855123968955379982002508401800995260540824510348157791614032986644787257728379863653697987099015821124184447336995048621470492802963254612835365125915379570269407236188134206342064896505823491180571599630809010212330044597715674455705440267846118977092941260902356720397305786341796975783660270176010678979050519112398072220501966546225569522294287924187468700262936808749047836240790549677440493378433179558403741735732967121807415365988887099025370398255791146856090083391516376694617225716090104328149796898838471317269890058763171650451678458698470093753142295855824053831416991405277290047153475882457638894009101185645164048128556619977006534761158430601421243756478649587213437813285040592770400444243044622112331497114988650899831754409117483425107420509268512302418542417095321624294624761734017121929950715230638981834452712319552288205313193060477712598123497802267701594800843217128156198541287786067651622587527414179806328882125664593472438269757262218629555225417383505632782433241707205756590522182647742465208903879654465259293054841597841317763627948588605027468968697767746338512061077764753974893034641710352115629466306825988707893203916060467111356541486673646766622671841596823810947307131321347764874040295234718190051368237276728374894023384453437793365773384269558464446091538901061576260452467782996346781533048188777312898331999510148038019641244178355914057158425868234779358054178450051403357053715147492822905248984909233871282503521301618476627442881062263503093139140015195529138652886701726396404731232416977865595806581922126765135139430293916728569455743030903946390767530521571129997757726491707842986553663012680823513219126266616636166399379020856600088251287724279834653014182427574268130850745919746646299602493020217895142393076068292423741792690787439551850571486696959603993593370939676791021144693216886473584055202552376320817778314891700082792704148508272988053170052746012586321776221310974324394620379368728772470844932403037901194307185422808530012894545268078485551777407630283904229020946719570351513756947288037270539174862564811810488435144735017760687508992428958957104234576377285622280968846710736716875385912175138150205846002993784758833978249202275660821732654610507697836194163032377798335043932538933826264072252400853861377730335403770970941948925194227774666994511101278877913763742923068961961645875465641505654052204246697747334629969427682631447702769266616308195444315491589704126743296533830791378469922095777890012925311409571554155542054950295903314372288952022003369062459074686929460113600525500874875797309285240302098882949570223190315628189659766152758855645056729923811285771990519714299591975639818839678559153021117198985652534270099864879430443782378431681360720088527381554116135938017337206823963069850242638645727862383938555010545257173312384500104548890243793980288900606971972622379543978270245398576228418168452250386870704438891111296999735229264684588533954796228829588268677950814196570498297611518063522215825691967080459369656543676881061883003218211693045135243236621489646650976800081260585058172315359985860448316786718039957058002077544751943403649782326804965918066231913209786598323707688984932713731285822625996095614334036088029683506549152147711119092086232658116555619485628772258984534232904409317332191618541993694173091530657370176650091682383968702318314734905919643126670235964683951693758299066298223577854892908817776961629568517990505398032778691589606784019139222045486268372695694239485391964036132334977308215583445484627507018254903745762510214618611588692611397437414659854737687944847489849568765759249909669054176200045992376513110597545101681528292476028429543920362337584130334573650541518333798882284088245257992743555473637204538346985315544352341491373700293674500204547484979287664840533247405864639724338880483765472211560345108707723397079341585595495791026901339724399422657542764938737031493960976534597130127838325336844154000937360448982570963727149703792808572814230992171856757711718625680191467221289434274383518612499242297463503666083095914557743324955454103744455629872385156270245686663113017549512930089454774035481275768240031005272571510986570549670414979180601038425236456211829012998283538706863879575409743649718749660854714091658708619685856042864799421835928008835586009652444242068019068743938248934506756287591953024810907607961115243032983512009647205768106024796227940922630024923273276056405812277990429070409392009537001294633527062029816855240910304833516402645003730929632210952111781041258111596038575515285036615912517716218903996817896549610713219851610204773286424581218203057315067877495239747965021911062860755151797083177171218315693527641335681041036583948569391768800188690126137528729172142495237378970483135791045276451429083597621887207663663713569939836399164110015402487588280390267395297716033341813276539818491368755414611615738855880545939292225194450985563453333862511626638813988980018844106618552934366225421472193027448537125717576881100403161438438671894159943444384377504573826810669972601023502682981301298763999351741437036276743222902464503545866023700857641750788230981080915311099917698341014723008029244106749320002943585311189853418010919998262972034134287339389828181924704641391602420544752858660776455543896260409502416981638408380173291909235238765786156753645433528090056293647426631664078146074978382773012341754430970401032353366663212089587393070710856870835920155646077145820918643733383545605735703858231297608118176885296912327799354304396719691412907736264776984650160376980408189890719905039140053162309137735811822833266946358563502355831806014708025957673198023936749622059278664845813802925511790299210818525816833600343914237193162872752878888535830322511871955677610593162527459269393447126342154058951940556729101419336747888555508159922172090614408674497176844661005608684925536170038082697269580530721290125478603249269347198311952166308704410454645472557923641425725000298441605972124962849309220890408895522438221634720333676579809231165336486571186595615039395354982717636691137154270376730060650426904687585743664574818821077046518384104364709838938904238424015897054450784862852484448357275448754712415544208674390290361722406652902132041876033072972948613727756053182949973489129431653196881828966658553800335899595997099089697784729791711277698266003903424054144972347104562997388470881647080565918144594001704525096172187774527239341561862327325175665345888890808588792752156638620736751276352172136058790368249585711335612744440102357294439718695778807676031671147478507154744665421556659175946710394747214760176212721166498206829047420289112892514021921533199681227081450748079166767043248950186927467014274305430335094757397569751137159843695112087614718559402808370425350176012593610690697267996300189014983541591749150373815880911578523957497213462123596538392070001417064562504515949851373953538360905667981783970230239030016007315890757349228110342989690743445562423646381738075730999010058175450725462487954528777626555398609891362367725985619716644297128019952517145918418253695146818460042205058806442689877836887547473657087465414248490711034005872805660255349766303174457481191574967366598916637130757583461742620514348402626944550213869749959136071649993918780847632795339373084554973361403693779265278885948403932316937412864286294862685561609330140343371701926983406442847595678418144787013974445501596098001221648619557588920321306909229137415368965024169550607929579687746391080635895758903157368649040350875024021751282343448077111006196985262915140566343743238527633408500461126875211898099917400244516712869432099770900271132157196046555313659044107644387440867847810967951794944030438845232830080495305346925983283413866020999039370990198430648144299801911864863784727210670701426748020389713620278605373882057568134044690040764989616072123714971820178373688840786517364643769184155549748072709086587180077519021393813104612511046630278914536005651392300612127547430870818316760164208312189016371292416840190748995715137171129238946991877318281735365535312435826863025678955727613056702265957402339085943926641727798524019834498179078572561453130798029614672861629888499390690903313232117312488088086062185426846521695838779447033800009203930185593130197204140628754318796101660681499502493461793146442926144994676780594867425174375370882733382607298425500738911095733648519702765359868132151157879127651567558944451444410636232365167044762827175321868706110003508285824976234543429414411165575747016712274813767415102857726246775714270113124721105190904211039447657902063899324063553812635575253728201793474456245335113477625257183371107699116954259283810175435352797358031835653526985677225101671416408104684388867224155125627775748330936291900580510981218849680314789946195845319130588302487583149719722415864603360349995809363330214931080392215892530820780002349070951229947502033009636214755172813639131770488816383795482871737438334121890442227909166791091871702248704749409082517754861046973750123870182077645650261389453468748537430884581820835327930632540015009501364559866139578749101464829788725931096657067191044714485170301769659556626988774359919591296175495209905776596492265334042943942713296622345209112267452254044219931988357917345513670810372548528549816838944954109307279941557209532825701315087361218816562195250455124067859281386292713140965356574686899023719931079004806417799216039523254766048225655725538228174279132456721421849453363242382370042875424148551357202666913153465168037478024455295714425853066900073770621270543159478390553525396012393600334198868365863286529898579767166272214439102966758474208823434711497118415000174232713758034343169172974708105018533556827571397000976846448205138122788882459084407436044217364592186287786015474452784165773028379807540661035313297636916022156887709397511782853553970528444207251973223117038024144643445995978930704175744601649356408727009086546302068740343643712465939837463864444632661764707577355076089050385654454536693270038640050806741902375305531031659243628396139784376584867722734447429401726188771852063251900972677493048795696567583426389896777970766212066049255735381763302145035294413886200492545583960865072511888481155923567997627918852033531950466824406881078934526143743203733413890625010505845358986618101471094056958285185175859289808891067018120517159242662740784658744554680304703007578881202405088850235347070109146441700689178270240012065065902391255613364442879648076628807963885355948999361440645210597871651671038917011438225871059541902286145481660238807992621066855156302905010212875700775434523017924341669670485514665932108979941996736260491867798350260716651208424390444523977421636452514176397856787210239944404590428833169420141835492763512668302849175516233456050896578645310916932795902713759608626447820850748815041395371951765398351534408387639075680303255374970390602523725978051556577097632245527281160466436024458399699679542831117306197717901732103876401303387318018961802989298942942371751944928292443483866487648975691100977654263797730739574046622334367109710502154500073770932744300525239705995739607078660891086658319006781339776939573172602634917568495218488749485761161747266764831838853704974793656746633563412579070867559815241860087529064719318879673488615871048536905616714858099418293507722398888347402186483895869361247142907448304983651367006523880127430203351138367408787354332760182091388306338182789256368322927506182060231489560285447534283624934407948280080086577580579092904214940180628086290698020636774125680347243174748924278242382399377332968487719150598993445753009058120871249597434106425327945170692304764448895545470324734491370377808717240068352765491642638242167707848091588604300126812163727587182583837247071563711867326854345899061934074457435431451604055076862146945249647369758202693682404072204884974591860890924010769925890165037394529749504492465100039190172111755988610134803665224366808850636953591661679047437241144128885899853758438390265524769127047924797777223976761547478596670697920160664163279554659934098735413653564215864124788776983006818062703670207236554020720593351903309324710258648183848030727225458903772281169562487442993698800232580954765646704667819109416724040634024543204860993519872619269187285662038255644714619774689351524152679434851602538358604592013038336742781826978155870681774220892182718531670955828302323172857362965088343848183864456364049193719506922408945587145474628741583154392803209947080639760969360140334132255031819434896672967969827562464427765503263956629625731963566968158864948210519662364118600743620777579414506143060898800899721649359409008599096089190671905114031992407255910707698685264623366820925453753177385711764353618577584433963426344905711182420825060122405051636120486020579895004226601572984059296586534193023785625764284372639512552616993123989746476395667895781826409354513305365060367242714339884293816176886983503913602562234473845617315818051808213753503153261409874891735272556211598175329539630709094563736157820593155256192491584109042167121806738959493105196800074933024435735875443198799886820972094482930410701948329842209091891920757480406418375206120824350680767169312808326281088502805521276961856575174012596079475573358172312344745587046854219019440950840797762330807087792484860542634131871630344341121796899071079094886277093723699305064676653155987939546686803173220751101243971940964210779204474203926416128895853990571095855496258141585275729198292920483038499504691193985932848553545599416492464219066038139461368765026685749583655983552345199257879544249309353068454841549813273192751382467843046785972794893176823004381991408657685969345294447479873829810013590791560321751447755527691356050116542476529479826865392841728127856449257078325374872442387682621404664083512209515400723589578163286057459883249232782755360407335768163969454229345892922663235202474015712180320215862683148282234931151872579703183082749236497903615152414352339475175280933961510124410666227745663704677970045913821172042509755258272640030833317602892844781258600490779499229012809284585481723708579189097715698823998369958873923032431605290973904318858336606509042397560119175380283978041354124178526283409493297812711797351801822767805165652891934284890037330499481092946396091079437676325515324330555771220322100403378931099927460942254352249069238209060920722040461137951613156620168976393844102266301000786552519701064769033297695460282430060941287806481476984856710315537333181459287566108968763230037503166366538832854760702902571176364157983491013090870856570556954152783808813884061193318749840456805564222575207533682922471470527448674397161856938856905250901907518559498210415581242481461175083061317405531836648671698147341174816525259232289080118408189533026006702905192996504351633245495696642314297674679654861957898006950641378809687553619949064085968832050797475730229001631604688362926408529728076856433222094742848643032553054466621379843714181277791511293685615927932875678118245697409729576227486979561452317715709834757670231905809670858251803688904792599110307744088922329229311767963531391980747309315590155362741027953370069357233873185233912523667734170032885449006892591959209578760140327215115469437792227847161532884595226695117337086493994626363076421048423144706491329908279708059336369002323278717039739786326577851856729460094232569550507005746197356119481489137627190582068318336030797763540203938870179405555503473207698079459101831505040937691766794439326983832214587022615088495629307618086313596668914037739860446416625982372490331636850238019989473378171681872456296039887503749300242733723838802589858986096766062426239694058115677980797916962942795010322037227470986205956025950173954178498552160673577716375274805416430638738413759698531810879411260127101156668944115478896428138471005805969259450928073386803659771991483370461664396489155366526295661064220951469753579421582089862082815319633612727055814148041989109244065148294122111352525561205665219113327602643520143098704877353407126245725779364040603984893144068194323117032005771342868987788138097582933116064429644912416222435809140692857854602239525292865905841227909620953485887195553107520194503414219241253549734489600766282866901054933378726710854298475212722813388993298113172806271905279811009847596292866463211796765364066460759053670099428923427660964161247303529255543160534310203613135827777416268553783642300445823883183020092151952384178213637382729389357786180713001970499553222166312133537240825994757789772608288842812696920629936780578415087321659154370582015681432414341352832098573326170212874434852478320051346526272815109352909659507974687688223964824256478046418552446779923643476136710625457971933069739560779931397253948592765800315338670766438835083369271608723462225232352497232196671168472336871305478918515323245993758844451797707566375006805730744550342947699503506647109464902078944749046728632056463296785360953786684554450351906418383666545636417841988173487347014960850752638571941597685493357839201826002680208654090539412500930488205307231299613209448614826718206749639588369183648236875330983142453240784675658737499397428271999677860992203572577877387153591527488517524273950594505558863573605832320670394520712131981920665298380567068996259030830118554550254491674387272156762406297768609796481654997417958206575515558746806575389823560497527948060493233981842806192437281689918144991668285103384301399603472084197873445588859721344967070808789961311902198760595504568348364080150641962579708593743165327834670071207607578694252812324269221760357894198756731882674814835125925414434944269623665976681727666270026623695535654769556063195671867786352088468951638283433328864088375038990491555224319415686777655337253370774692773310969414610620478091583713511235856624858359101898228342191472691382618988080465276313178754375416032926116694988707941592666724022096438458783352328652022421574633368148600543288885405483402878858679291375959789702260088895613852299049764247914685352263577799418482400031700256914863588892481983005071668317702091546535892112137335646224534083108291825848022995956698705762765712546608121425940861026193117870568388404243972063723664702743273640857405754259181287896716436538560995781346764587763340597460894830319092268416099981998932126200596947044929681291959003445938588405051236100616178693678667597857745039600990338135118135758714218730893875071564238747921890678492538045779147567672369824478279174798197593408749296337993659647669030749106539711180935699093963048949812138922111508188054652693250302107411205850950025870610584614089208584059560191015677364886156008795489397696699009787930593806724769065696498299595506587599666061243664342648240658310511918200961400223281474029577312503157622077530895102170645463930072221610366361577376955477006289351516124111266037653862858362307706909591929108358354906533345076063448439590959920559262501847606376668792794754104874849161695931170567387974019091964470526436475759063615193491033674417831216059503361158018288364544336535970631140508722827423768823158535546838070121872865162712709131934551081114901041264806313767503263927648706031396115718366797395590038509057981406215456551087952166430985015619307162375135519408043053254347803913309339991977703653868420921275578667459951305567187613632038305771609876925176525119744587265364739829606007853356787036142497015652035784646852012908243608712693395550652851765738296449037531771105753572204572202105534735373881693242504207396362084218233798622350346663192223409593752740707789168443587490510551497004269152482040611624695620839582401490177616402303470102616917915122744752386891119200465289387803875531256611609093869183651852407569797702109385321196708800587631682827911826243637324235405324841039205667958253535732107678123315377810179168764389626929610499272120077974815511703787627811048771053521455531163608683286917287686727169570588571327717877712814748779823147353550577018544361712164008014271881376016802326088482032454373580258582060789871128037824339196004679774034637230799668938726354507848756709692774194792591373728280701189130614190062430091275534111268392875075434888773036061985022195894630379861147446679382753928053838001529524633129732380915966288731274496116244478194321005440491330945127794586676345062235271767188528004493196434250790204181967265000160707583555338895919426107159207565368694946036955605394930102424027179616394084994663341758997831839016974190559434375911551996262973783223295292945287173374934168568111988842337486603961513689254021635292892769277144719008323556092762955618926047718222974193090879132229490022776845567338408057486745813300187325216176663416590873170974260339323814804177898343405134395201901456076488618637488801890279532124881129295816431165150853780566440445769452754698011790484542275835310836918471591510673353565059466907981370094954963430284770892699900197996330227776432814838108049561518522991167143781974496323386065766937634346441405715349694012955984339448915546360118338896977313531578563821996079878263128308051412284463131643585217425308200991571915803055100414389217821939770650449152292234259763409702871825600894154314662586408211931676421025165564407974160908043793627712654033508455979132568118558675435754625595697928057413750518706943959801660926326656714793780118980675540337133108380864572045303003464429059952458256335836531391388174853225919581803679638191685067554508762245805622257391739576499551196870929368707747010385497742766101859339933797531456787229566048893714857940486865204574646302700049905555836765622271290399415581803654231357715543611269606729435868168774625407616888443649995049030740349321935645243957267940928411121217218008622447580710517753216120150976134151865984626613234940996041215256111217140441666607578538619101767558125069868142628263354819625498915459379869664670997249723761019698221620541814825373818080240321167801611415182284433331677612534853809884569651673746576448354330385842340251367840195894191126475226553981854433540837881022250494848694265135797549036472017047696765179407954566528042391460440039919133632376591026228296370297793633228020165860188712423518346952483777196963191139913508981147310012516616092351023025849589919134155085988397821203241024440966771205914999785625780344435696829046137095392126263348311065562786252647646000873261472009056209494103333916884529514160136502786139554963154630472059718277366926967836911824249795822014748746236782101287110215343363302778573877767554042086388510257388511474335582645936515592136777873497128083040165110276468778582106738057864864314619157992063112103618778342188446035231513419141875122973931152133808370890120845770484960470113431783456735771323576359549404000493020021522494696874315925269725049547310522992486013871764350630784428927702518193250955685750743899090714006662151425995290720475710706438768629968534459594580560674155045583631615517069831065619525209695438799583851734349380836851996720617450093469516913693982746211640402803722873600491683546824558376368876037310247630912813493318040279866311955651112883715091289837556272198759542194053269039559531129897951008975432731961043402377104265301664988454082577216695511369918604388092271140856393224165113879180941825521450400010302423406362059173129216641518403954035407722595089519910548872284284046847343620510048857096707405594837559909369801710234864401060561833690135943958838883248935838507915997844146319479884232880721046209037581364571672097157553782085739535966515157156628682211437899537455106022239838901281990035710994787875089514934802909422379670879888823206100370364432059093572882715884664696180955214320803204941365248143305661023776394587917984890726302370100104794134447446214045370832382844842412661175274467174356385539450039182685627815632825382104939119977498221404664496472438878973945869278670371174167986528564414695939433572644438607611158250330853132145545454754019556845108683130509030327302284075381764580088262195480945987206273507712690550047529109048774118206499330573164925767665483601741500514692731111421660915650692310950071451855180263723586497659344778595263729210719388757349589064884428447602216642084551202088257881482415638049339846902866570020036892897229451138794666247251133675794766740801813407024895302668796232033303582757847204248061575921370175946685799633820345645386361193342369820847980001358612782675066829145217341981256138332983176034098627719361801258011075796599247468633087982815770003210127124322479083802198760355914195371684176333381832005601972354473588621042076875510427621095612182405054049139606715691445741795202973961739620024075035969920419487754911811400152707034769949560565832930369369426067159627016173709868839827718553976204896599552149702942041792305603587749943382437591008920545148687646189939426725013003765106960951771186817822776063731429486111943969679081476120690732000625323511715698664073685805145613875505542591833453172246558125592405006754676638433215393418894811534105436913017292419751662868476822210860567802263249325669847407167289325015358096403820714223565916281160583289951841797374581590068774950816583049623220458448824139168131261101703608023613714270100575079267578214467923610290422031028351441902001880891392150569871871074859316341840072338974044817651986533900046454189255086866888375531005073400496381483095704346255176551815075715134020874049523109548407495462060249338892891575182030618950993531943228950325700192861638420958049317052804455514417802792280964096477622810108334389543937267126654880759895783532413053035190102580648608996299400824363541030347761451667851191764023941513831521704309993621625491743349046618395099310594538623558808405988437938940032710275335129814576008755779548824580884167926117955322283416032726100553396823859545029038311027525088678700503242578401988088856980809093058681928057785472658344513712158377368262248285919768866915989183023088085859509496416783523802295753778372998286509687435355406104916364602045272472869779926651359701218301212412088590725164782801852569673624108695353487239199610827566399280120038319247877396427391317009158296084805246985751593327261441090389630787459560576479915662497216837800516378324491294192597417303646691799346966172341135097255102775441196437144040190225370976936576232341736376716938723207397454092130598932675549522177580650968751103547931526238338952553560554716695235316992144219026644717663412548782237726183297506070096167435667354853152657957781006344097076559656395647409738505919595970659710576979988491722856287585050389200828234114915953028856848922452902889233266575466689962685307958309670202169988355339911785080961582128996143040002408935456904391171691157278664722645321197610954240200713546157137679111224786749250292922070048484523579311363727037887066162382289299647243856039785639175742648622612213455576798364121452943654570572300886979427129214437493491078608349603272990315665162820581648790071627937731516794420130632129050600833200204619031330874757552896750106888483935233854851575776642669547659565294771722740746576042064386257517991635029636386682030454144787962441862742935023915417526171379398721639298256065044270669349687735492128063086119041793091452527464510644965641298759448793529830216256307779031690936795023328075488767498431693953503398555468170012873961551007238571332541573662775413748107312503420752858160461939761881866335232417621137501934861198199199167874121616347137535739327552944008279515198114794654717911948386656304771214647218818546968941058917736864553910597205779020606799863642655646357304590179330917679688081156743812113117455249339055203403726249157846111506237009998545223146148807443259615002715712649520239718522003269331851122282510009036461662986268658253596107788004031601119564836194924183362041596013638273377909886257310605927982193125051372503051027178316956418216110187799420078227076716307452774392032642030608895521801904935645124815353108626171912662642018044127540370233295198554264148496296127045893003789416039287549691428830866068092977643171617436659860040692296290288362906947582343659813948407490302458316040769353315710635967503757980657994159590929578166890631598196924922675410362006390071965779975898244743076603770634864406054048157851944818544360007656928963912135815268419285549597952694429975259077731535679546169813374052636608135193130984195903546667742858916978374271371395807071435241493410896533109221302769536767707528514466119780332485317156863986072681665088255703812164200401240388166401143268910034512448161700672415983727176006310608769927123580102866493946840422622244698611473128409057072000745524948917920463577252553394195616664780651801948772684808858046246441184817114076352924409550346280674062251530216009361454980405591160049581002561551692215121830354194645040652099195521214922152373092531307202680039001642906422756644602774047048887411170624872366781975292501125787775771548440812510455636532254168154644156480699405775683735467482981395769138869877998804569349533210402002285617414510500757821599322983064408797795022280783335143255422547599285674861280395706473539121057530206006779044570748155579976533783995514365746641454306536147403286656514598352859641808176498493704542038868678691461933990514686919911720621024318971616377647199384416372286238857604942274243523877088403180523671344021442538776201562371691239855587308987741161706571282246398399692167481156102378690425187042740408879604746234181480111139082482034780295842412751581855162832294572936128375189340284132695832261526713824201912593016714717418711165350665242449688734544106492183486544570728063176907734555636279565929247924633372590956337186228479809672041565333149394707968483208204739377317392361625258002905638339998991378496593752334550126389537503987168965738310881476448404826638246230722466241558473623857670995311240783341585602688837798314791606009716250656399759174258151516447908264041078371438015167730138043476869130763945688605333829409391466115777620855685014472009714911133378717988832559066558122938255486303757850391307100000060888368958051865352912478568589326328008066106116503891041724358673387850299761403623648360079409543792113958840720403096263462653081955144896155730717327865006295771192423320989656847764009915245680266308781005850533046504530783716733008362628608227504544856865699832632425155153505479938268394913658017010829074124181496953388903981674729477397289794827836959629365142977611241202873207349098432488464589932417213404380748504931202382989432154521301881050164256846598882019727824609258658823276070831780256561681128998737122462408441919270561822745884785193302320136288882471617111295294540307418133309620862357422503537233430966312780547182612979434962907434760671773436165847277434442715701951634427169248515202735383141430450862248709391402855629772002398033154161987425486269719775037601023110630175224290592162288095226111217085823907463557232951423713839314981264827198582601806077920471707599146964106316111970962553602064205669216215436018474739270437300741243798073678969643471775989101567798584707898618337300061022739351385328729898437483305086329342804885921434685640892136774879396534607858485215646373622441667993482946248435415942585875320557486508465729887333598713930822229239331031806040125260255479155480851646494629948350692052325543659679679387887449333755942345519030800340542031393048507905056430655743763657101656955618788621778827933184203213565556197267773399630508784920642265737773363103832608555580082531907285536492606879406795982692475043004126399256963556271035933064367597373271918610398750940701229245208649898705701775087953642987931443819935468454947662755909351376433340484312490207632273220254853830413157584348679495516702267506979328555674749325590986170714514419831718327460072939582149457409547025972783223629401375181099627059327508781434894602990781341735975076316320124014989904881200294006215582333690041018727356798237763671223375625754742037106820822683125095064933251052282293456874814167412606078016615006198820730173059447531860374089496163712312228075563703111708412228999703900033637348925136414937852745985450462411720381340730285409118586813610733468524241605985535379458725283210835461644816961192002906220994836290736479271220464633678311524454716902336306352012923863985586918876996764695496119630330450851882644835596179689000371401241274378348384266793525960230029352063137752971707997068181930958183716449891211884306485491654591536687792612115871930712556735054081526977632346255984545410641498230521592798555932198301443319609643417599176823826226442708061905118443044163482320493272850830912932813895376561698440846613091572815247757225920728822994676510205095930126487683351630768886717493880559850393175812419263759762609671657642061763845844993549265449378592695836378440012413476227051561562165498768490044460928577174051759965068224206420415286140282878920897164836891563376660736384770969116023188971787387687925296600525056027150209586890625242987811622667537274744926716696436373586111894228404620201989098653821306006232204162130365902090495525459149052834458940330500914664568449631802839881862626946573106718358881712290953274204203489682526864692603339732291088738063478207668889554854976796661580403373140647725502999250963988626667440501563089426730475388962864346225419329439205645325902497245385761009977573434660882224912677380049207432629416275198162743039326581476727314608906508919841267583229988850106358884312985719293598105971977966724768074299492970062845414990204716537595447975623248161691178590620400886101678013916208008682120538531151374872089398101370157623319941765558502922503397855819204349306868059039322991170798914320578500143258900005276220547940439805182855001191671015865419649891892009540370238604349082533711585776515706150511811149013904765266541709536306727628310510637061156986065571036049802667023715371703509637968995414546791468339684647098633481873260273930229190122499115571214785172626613155178742825739557751846290976583848246776938692574120117763824049363084981585612760782206559052282448368690943620672964592578337228599610102392676020895963831076433565102257421580326320556503695165544621179100532363156213533763140942293429023088221449761971135911813056618494169368264754034742400758112630520010409479593167396090666726349981907147443623661697135278936827602092134926630619545545898411169953209953895105840461677508106156634563671403419092478418547044865635147456149999908759209908749324897286375245233931556508423393901127236998642513336728093182941258053812457103504306513521362379308635772070882363550497292828318034585203253232894985201667295507085505467570646837431162880864954937505463852366644539036368843602579173837079319966771466123257150535080248878594791783000309564187634726918710857751014844068014955681526913869101306907645135557047975032304404196494305536897688693026338549760721420424856295233038552701514209492969746103989336175161663773056205893148839887711844987200754327347319195154410306677814235677982738759146266632320041632191204230320350772328092123482996983051461022175042208077068910268989945587461030476914591957201543087495983085957337745842029462260024683469959405192946151741048663611025572437117679802247984163791299896561705164759346287582240177956420008384467856984799616196908988851984508448472317611247383289020980060248265802408077445078682138544308556017912891240952799727953577328286992747875708919780083251326456792608730166549069850960455163382466783712235712813156075833221907321890795785468025314550870602649989996658018515962863142270992708778119706901964744324360835213943314115496421628128312390198620162254555135992390016341493025661358570400301127919249914631811036024068245744880607926318774013917499176373155204049512097226970805571582801250443157851359760716120319735423163128411552782104243854183245000774779026262384495922504100261917479805385783323138046708837695646812082040921176198027388565927253543865780613868559712295721660621231624916328033258358303599361583485067423316374796406201021928801939330906270477380316413351925183760735601191047906847291895825441130482036148249502438561743770279018280446414533035253303807483020500859344599471519950481866684426164673323368217289008359429167205152315568276308589675626771362597661639630752005525349457838901910907367320266594170950835099903521069263906887923801693058241854192251313901540409312414479119460509588220142814614453274835865210062660995999072300662714741014586133259927204881193395946396152586740359279104856315559956777527626077592266971277645491918031545343649069401877815794248902387785432437494716446419071040013376183583473076935295507178288310241940347488182090349969025490633311134164381598742929890443495009896556290055725665744213146558099545640058449588803331844155454852654781951470054761232821239328670308503167330121914469214034699889734665835422854156480589883602695034344514210631593013574761623735788854899787571836790987275798530320044890072564176602705021916226773239259633876077655813481724740548229049515765565860136308529421231122561678233602779017719182230055754563381255019736457493159312311332504168025391525770122074221737510670190306488394694622488459747168298604544196813885866252214558788133193863033700752029768330526411175510864580995150182606152117822545628869965253615003298892362275943765969770508297186004469830812194884722176742101793314020684040166215971221170633512711991919209819235652218638083256980099538934371291065368195616723194684170551814218861325335124413921598020898698689180409158407684949633701378518257260708446796010077267563737973271334572173777808755134280076008453077646674473870130865168720700336358449585553640842771382807084763377473312695075035381878219113615223091681228627585840313213614318115230701953451376086284525870717848212875724477378568447209218237399584491099174766529313425196362843950748254656290881943312840035977462452656894624044583804130616842003762582429869739498427418810919065483735294137150859545856909491474164522747156558699877642950765514545186486722708902966898874900406817916606157159401845429597531264627964280351117631958862402930396944046548525741290744736639448976546191715489052939664507561100266157346832984231818653944688413950526973017455189820935139604394716659288882954444315030638631826275644687569476418318367113074341168220144261458642058343445084208247790057518581707601058219454575218005497377109747308976014971323807900790120141844445152831511912974721265578696515822192108303611725869261494827300541445824676985520354474859824773462585978262110254547821356140968042800627979253591949067367749305575472150143492005227189118364088188484670583048145015999773340511149855639373217786141004698066695131758436770759452512323879052136176515851203003806486012554370281057174444676425309490436898754252314030686142990082081469440362966842284938082501929188145558611660140305881462485224305179560934674402344781527146533062134732873752091638576871080822456679895506478080319375897055416447962476016927544636272230060322225575403116711433297671164409023227136711517025130924989343908979092386257406863297996632354483405063901147843458673950082543835383857804812435156984360977070354254393698067739304949171351924864391144403009511597006147013711157559205318138239851779340144648294765932394892856383428948751934119121962944200131645522958362964727013855164612134483444350785430646960418877292719735085018675189637502001468831158392348747126040834501426495966126172062778330959559480507003675098866710766736090578409050311185490161736935069883596755201772262505223228094977224701107475130955434314439913177153280354050566988033425548585623195756187897001774701846748207254927390531286660820459438514257238188312665701005683487139549939250783067927911779754967629035254213912293090416246123435969846679401483472998976828350073943999015714536705775402735117588379516823248651679806625212602999418692121240001385515824418268207409581367991375965981909839391911733731388701241204002818249633415719740219063700020119896595628755401677722144802184232532961321707766276270618273172119775622592321023666948020033060614027970558262826476243174527803213047608436032382364278506751652236835982293843608832206196502382141374862172851206002995480294226698183144964048141084660100668512395765030957754728712802784936623282566724239012011455810058254025104556404235979236358136870520516353955182235412944032523511071756773855153047982622077640041426642119805557296309732994128476821251411297084852545096454891883131698982252690382190094879740139126221577677352297255941978720825376007795304203064379845551785764470562811809821584195267359702086321166825282856073456097772892961227464987645496419302997933517213138673648903681626495767923322921095789296252745176152485998638456474318483699271606879923650793428884825248195972378983963192319894898888876916174533310049674095699539454198107618672559982255020404341470301230639925958154761836065682816822131019183364530638475660335551053777772707604539480668066025846233518063144297750401824845830400914453722408221678355816720028864869029420250577196681785853228012213042795803354566262056350482439263855521492041333576774313906097019843503778225662075654208040135402901133416188991968317627560332959917497318417919273632461276604165462208714089048567595669642537013406982658275497295367347980448209528458872186476401089959701604817390197593931058142182901175175337427022136108503847519628667116328261729213088198981488549855946069846103718551809615009809139673987738398201496086013580830782267047686199203498868752543172305845118302552866238670760140478979014855048857209002820181607778729162469249143955856142018478630705606384453618326597099390829836559137761631140748074684469474857669908936482769890428155211713462911681364250590010582127693765288392857299536293684410522421114034095877919090800247245080240896796806994148381470779574844776414819963107937320307169523887740085070468266844562291122132476906265992845397913100875812652223771798449660659515769453960929777252846177689608954407577875800571552713301955698687892573954016808698781737426235819069173937193705692263402241065640050321376006000331299020045777884468295867719234382288897790940450629178865870499956513709987152419280502718835608487920967287658615125473418225007325401006957969368654401102375744737911874300699972756608063258060249206016347325882426530726610924136862524588932485659961471172935692858021717140964502012366863396395990576760735013237263781203273368510709821500901697145593110941298035178253745842745759148135231252993690659096341219705133509887673648009096783151251113118943008261365092338426181644361292273437181328221411269749257594379641682631675320681409339730948112124548903912556555544456860066621969546401620469705112959182876634622003564251978273842801912598843133160192138872065131487209621590557229685455844259065820805042224895340636224244563441169029697537039041849890887337443081223119559597356949972896808857474584159943495231447325575570000748974564815428268471996192815805648207144107238349661994979966845037021212267290254208665928409737297056375833608745338848509082869436301548826673301263886433278334662648470693624562119035614619282515954735601767798860925491220556928512176828905892687584780833771616995205397996662505540770790261065085405527624427476028561275762018649953377097764778927742997514057996334186328488424054467981545230739532849062870672460765229006010272539847832483067381203472260318626747036275389924607984023254758047360886486906506602470951001630991726620370543592500649378110333312082710738167625866705923389082403110463685098924886946268400482211533934842735204550532930182675858708063928554985726854959338105107635519865554512689942094218393564668672854120190241227881965552277653789306210503871144000977241795103094600023054415394399019050681069202345272165510688631447382571576277569012008126598951584696306338761487183813036338180867048233931917339857890494445238225812883102060841830116902581584625432975758276103266858979042196668563154322233612127844971591476005522395247657865543040765875419610473469545025085670550696902912297575986606665553160689814451424446191454420228692150121787082062160740223137345551108327831856422355292991041256565172010514458989154659719829729886044993391597727139149751277842019377594244520257440388749640498117587576424257446523064109342494212576129231645913290055256795445216905711219044845725126931537798179910271664035252327511018957755176156818959863428426489544321416512743728490967859730353605804232303212534715545820897984551432417493967812507305927874625050723930290512666703648123321582646463636633472003629046327761521631925846576251024243611360541045889240473582115597353354573011123071436257669061217651873125425039103009844573548268362442305647727114405803896615012807777962300945961363945016248837638443605261374488564325803460737910656967035072168426749666352567382704280982769829541685519104778761981934531815241217246488342342706643821395803896781726094246463203053401804784795663440502812342065236365591682344793728691232395061299571055905717393155989861967174281540847935807171144181624422460196931879263708411567742077433380694822868130423292032172330051929637273876108353429714500332164925491168369012719601528494901241067286147224065458269175646369360160390828990984434244604357906793092244074856160041427277325699187653737575083410016420339427305189090741561870678319632142726510932933293761048880690089169303652020269162971735448408502072991664187493583879933227456556015417194889563938589026335486209573230453279599817910380544703593007115858444021609608286849630849786834659295024963061809720716501782327705047955756542780966562826937828165760569351517889510926551426932470702522686036784212599102759027756561433471134150943876089567503980985739788893211965056402412575595166620502936118786272861752611146548663293676724227309337659425799304655047537517764627388503444672787957653082548492233110731378128182594337278909280923596909334603602568987940586750743476696195472683678024029066809287408068159070447062981601144513593887608478118612978930840259609623226330523528560487883635820253347269795882792528886224514082716578227984617117939752316892441013795033469722390845906237750593152534628655318866252492506410469086564403495566151832377695978171920982631800112717700494142958403888338508904548444572482687353768146810104234918241306140060348324305683237999259119050034389947412903404859171287720993915626250089311640234593795134596713660946624888385434083868837842841435791519503513418288128508334790762653108413439539598416554517082802071279029622723013836644052481429710192161487922117578979652266666175479317447533969950125768828435298844499418863207080366530372335673967633393190729328149506088641144034084883177445034759921984886576316772188651673025515309584458632636286701653247580629204607448537842889921764900400487047467188683318530878214128381671530963517797620955110996986492524574319115604229482941306924020728911337296956241665211210331247790402776671582950585804348833617444917396622724890716225054263892299617458496126674521006823739636973852951511361018014130138490595980082597098755799428571485710751445756466450580425685917519641668180896971769487372123984688989049429503165119748350555719996163650660100677626030016463045323665833174305225690936681344969221779942996078970120191165339382866902823695524074521926024626211715683325409544939418856622028713136199241366151603065216062470224036421778892161499894508169527999188682426187908450518014111984378608706974806750779618577845947212113232039153016288442920775789538099581364175275007668954907444939681951425966836126958929903138937372678324169063482043128564694470995977291526036656734117698616310870636862860095545380121739277966238064797687886584004550309782808085523972815244896785439087329381261667186425878768620210746858698832424307242700271531859543281324347920192598822389523380710140258316113855918286193579705443683691397319898158747193965095480371238569582710787359752994786357996223179998232480328345142399430008104303432934890872006456216582379857972717463184193133262273123399048953755319487864811527489866636479347597086310745182217219866645734791051472412920744897856222943825338333481442954053581913365789419467909044987061330364321104433218289144224205494315191578458453483100339795746760515843993761936846715045490772427778019035845359647167796577682799052559827118308747813382771810066348091019067252161728098471876134982243314229921988834233543908152145140901655553864516893115497065490208223131886932897573957130077126504031234355697738361264954096377432415715991012252728568510870546527910228656583025380157167822423138372379061134002224874989439960982651800376323908143143247698842235618058259684700424451294187627002945824624448338025286761203255686184729680602067664607895749666454937550392176152421638302800952803795868275859141201401524112719462121180459767694706620097499639132396163808170879128148659451020749858747110713298481610797042083847406188357029236247236784066292115969789946855194200104920112217207805942929916736526541553392719735780174972652132046636142425491991997624297099987536951728004106725395962978448873382405463596047734055125753611386133725288808081761213693426853380199104472888256373951560872751519927635219583365442897609808816236635707542060530466961209813906772650406606950658565940240673451798050581333405981848978368540801570867089623789346535478304380685207119686408979884100096219591543904607254058751189196354780322611492857696832067793528428722628649929833695833997525100169003588120803974942622999715442314301308750997773851144940319474788628534588733093559226089705239574183025043148328310234416170998027808577904247768230422160740972398931387794887876442344123245338805720680266668982076811005398318769646496198283432429538772882170363644094632922847029716880854991473418976814639890685388357581264615154697716217542602913984460254217732492165544354394964037243932076361572054988617264528574784749978327220945363898330484646573414755691160192842558763412718736246460181663294414585551568064165220665180194086823422296731092642644888219391108359252382366111605014022079208984007270130880843052439420748826293921511556097661002392288765065548695694028943001037740338132447059704036367946968241911569817706863257870879222418478718568168001367556585445215073881217242960004694632936367158872866397308152717897860620696579642185302930315914389282216165060925172138049375831206092883465282947388421835496485533162151639617899090235383979923580314625827214442494955829894571766972312753638906222401848578922793275787557275056568129182835637534232651561067309782157183818921040964721991291288852045364440360821480251699537069689878260910631391607158123081357566173434497118058249419329119604364104075336476419607919475270625385178652845658400427735937301823319853189629042383327097263652682463237147597696324978962794131098734643209242010946595657632547970313735898261893425797260878847975560115152703891572995360511141621024849578968739535449931727651763863952018928746328782691332919601004985934349428995060120832847746377024050525117105817505493488425516447128987731078327096235672855256738357387798983097704762317529105175560880875700535997914683751971786642074938830049989717195447136579553636873882923064447596854395268645851638798440595054377543582471128669748879036846180107499617896632004701781047650454605948384991962201164046229451612778999213489178551239547420283982807361643822853801935012684758594827025704184352847563944390788789088278100052219716763042089637246609048253897263168191091471624713192822898177431996072805577294207918462771960061692622208462048802401342589536814495418056500125604601011607127138439461475092574140181085057054254803503321718251391176797214519616639384410377439447205114591954648000206207244630433711244476783764395483156716694021500991697081677014000870237977516335856466282225764966615808366483151274358142801495305144484985125054014656634136406134390160824083992635473068251751252990999142510379460416516128627672982927506055096860739737339217002443661031007334443718361332377254950064304447844578823619210323911680458154514497958300005655251329655277051512852151718493077589690248830399635829936560151604308302122742067991593313348231651023507930339624284698635245004143776556403199000048362386750199076992483931944239909600359345636413303680725047414490700190015317792174512172502031977167199861457532317666687925375615549332233373501340702046081489221103007513626625446203046468712316634494768821341153927187975066144634015987014538129602446087327339700286378368454341324117928031014270269666689809017504273021795136505711727705735008910029466232986926528373913973386545287538174243278601575610050712183764063407591714546637173832581719902164630949386490913925547319379757471021737112263543450327544829447918555010984551567224880188283141775483007166287956346172821886056106694720943667543085227436164343933787133929265566614861779244665626564170372456493566849301840219974087873847433694666766424103216589010655011697870770551148424980714020470862115183856536159182039295015530540531780427984779210498803388396289810489466078086221091581179943783079541256507989809466670767036452344150279096691828353530973761918093377995810306236577816464310472002620121779843696198000098899167730544407399101063302061333088944389853649722820236985879937930604206919124223511377647623140701987480402249364079661171008188496800197689180546788910730243349385796719679685440630519342280390505824832460201631441757386284517612800436863499645052854733095673845546650705485346512360954130163633749975076490398697369113787451458281876759749193168472407659005712150186672427982216454594119416973083616570986180363000009287793953191272002164558522521600658367934894843396743731478498668597061354207258844580996858711444508835616805562950424742190708192311805201292709846460735233168110886781061386018235659410102527508024203165344133555543899559417926048558871161102719906276525567811904249803771109859572691259329475376503743982990423046103090157259428001802506311047981503761542885277340820580785851460509052991754606877387580177916551890550480638961260060711927099506107012568026979490603393958992218541524268235634701247377253253702704345979001479548883332097975986664151902223868706166438831592259147134062241174107170745643448266599346217806900164159354585391873964165701649295759714554050583363515097211665010901217849414693647048883575272231268494222804210687987916402639282814316522644355468063330245278682584694743926089322726903238055213717888668682928262468027838489079711778950486838962452832611873529788406553358875820756225920719924896705122292978170514425467887620161450295632053407177835077589898135788387955804814230784990953003720653336881522679971840237850070767990676705669018227154291832332060034609145548791507794210847577529691834970170413662308115875188751371735768255450478668518720118815497319153576291741229060222734195398699143054279442270182628931394151486511419571309221935747090764977808216105000103528168484403668047702959655905759216685868074181943569646941101947431645140373668781516923195407039874829773027125048995414031051847689705779106716313384442513615425894058555562980490530146286194250897117556050033694486214319597160393642268838337107923051229580869379411260710287677996362944397599180251254282211903670469484104934010293083428678086922842498246323249022915159941323495551886083313917797324215229986358278751696202349126159879929277449650800242401359254068991558905000850173039255262810585175592096622348386895323832068074560893675855321175756710443382765507937229901348617973448980064159240263143928285462748429663227589668211235575712225802791410321062405313464681919680178155857954438662553576856580450326673192734468428889763250292876189302188108892051296383691870350778211227289515808525857649345582824213305959783614394473908885533053956441842000140498555800863878740390765863572877668126315648079529094818293431342702485557422779836631285639596307379401797893646211771210678079644871665133103924452491176132054789074599650339006738312166201112255695326832829016447572719830339648210000607720421339982739710587101177504292441186664608090659564711841796288116229039006740521722994540416533778810373429607619106972540652307538197059056353507046215102897933081575871785302877943325948133646614631893212674444597583096823206016759653306062153037638967335825668828915141843031871810124276948395849332260631239752156892343748656698324746314256748941879313587454521523473609886127686945065263659431562513310276449910284838888069456715848528304414349243087535538654137878638794314047827844490819898352375133530956607456096732151218113566140141560172701314836439557427232524420596876362720355493924358363067904845927303959288097843541899632703065145018307258796306461289236794786152399910797893720851133796584269937949722902257944221189843683201815155933133522359877167902228442748981102738075399179813647461236947179525324165203219220147805842732175645496556169369817317201910265337570271768628095093491556768635598343671268200729891426843932324967562557229939079841523912512815341144041276362445205522442485696746471809988580802325772313912121809455372046059722695657485300115826029295270375275077067597242287302192638855607807572619135272608612881110735821093063731625784238038395873461274481795288098833838015716206694220688576263901609399873107724114196144283608318720995548529947924836525048310759468981781812737268636141035167438010184776669580029533490915050866357126400309511752068601882821367473896705506412897984972699064865934435269463359765016088415698107531808966862559262233969837173783981234567180338772616940389471542527295805468985967791534896437982786714807407759554742339927632071283007920794675659850346600354238235945364257349844804988036432325293251734937458628826618595447917046353094275162780216782134859400554336139275980362116545559128150173773779003606864458511558979110773232895254669438048828241940808793668328628094515078780708366792733048699683699883246496908357237704244541607654508780576821755415590296949648432381821369983354104882470283611858134359797623549930485625221479741093971009750426428089884677325824011358391317407207456981435902838235175242829845098969833449860639908494188670700793580926425121603416512119293447482465776210678302517551890222731042843419827025510848481613355197180656901870462388035504640667277784382006144745200057149869748134768668180735714410685492146183240492528283419517094563330744581679934530482486734020520745829564805000650221447464230949587928324225121945811051528186954042447402791948772569194157854442680635537112714782583898875042948947018925687578641620849896019714405765511372531218269072974321454980385786869580713605078240773216446276633926310646814900995269747686423749659885433405211989945895841843585821670676845601672263927664115430606064210710704888350634907356252371351118427942242293666500044909743943920539006612978035773023041914532613604949216946093369805104030818613792262527317228202065267799812585289933124984803014294529461319462000601025022128060971413988839981182272890752503388533320785487290887950145901851482702531906335886901256658907673089241924880697336552577395654200427929033528651576933837682844122169829815362561574848391169127216703728149122127578713554001510212579595809272040735588655300543050271134763944450867012966022105397955672771626459502616570084910817647715484490337685006516592272157284979214878683703444345670976063152406543307238281635944455747779998573913593669257410304043471699206014054861163201046223571815022039175101763778383420750150266152022892913526902030659658777488061254436859771830846472462115202663661059019518887068746888880842723076638814189597967099030451301821872751766840469301742819319650202837888853734316366847601813810874536235797330436240823411247813041228845523267674744011395651576254820346993978889879231377467752910976787062198335680618286900462452377581813265539355743203576335742068103418715672024704212829808892380364903325025338986277472703207122850957878826140063047653719753087334603228839166680983379419838353505073492450648692732724889393119932424933879591065776984765118090659909982166674204222006020813450062515992493025743009988306223308524384591944938953648827976478498182625173095805616048775534459551488557400747940555997517134764251370879045586466155969431285839178205292852799648504524542437339849274416760612675781225481011194130151354156541812419136617379702952450771390222484606230531209292785268641030895071351659488684355202350625804015904857397843339247334263426768108769876289071973008435062635906948226343987403400540271100833354934876964721240067009170617468163947431370405467611038335204061807719425426497559396939361627991497609463644108346894742230646833856236997105557814077456946868858594130332631897235162967766255996357271301222721481153826094183830011641691298667211834340030653119995753485936163977954444774729863931251632480632244220011183201846583884857208635006646251826669428842421456070875915937082096507795675794838851876149391683472504438227217507517744352811211417152852221638916969647719164661808685993070941268223246820047232084017775868035252350640016037151065346700407679198625775043703586068586023654782843595817426693213411447064378073323264187341717649993077756392959233236611753612295468897346589513716532782604410307344679169119068377428455098990688498582154603133952270947326277833649492444191532160426978996103103437413130687348354478906663598155520231662876838585703089441809976994622226878979333183219395671933369734137161280752031909439900955452071226933306223164795124203361881269277911340488492715267196098691564462336680093989683712852062900121933578598651877742750818858364733323763832868812879044681200255660782660541189952766198973773533849736443895882903327849097148843582074588698793122692610009975948145170284801372684233333777664344030121140800036667499631710602119750537504681466418466255633172065102281054006602076579476046719817733916515225390367981107505632195372507226166429138343745329838717673082474126697422581211652821612029712083570260963847847484035222435445290761811292792452865150197550816108424636766254907272839742464393584133947360315841407705627209124670994976158836356645471356986612091990209764561322101237802239788747352190321950684555769382740993339393766304798807666644315691642101782802747170471099456521409554581695266159360992854786913285208627983444990283655319305690430752068038402760817120156471784213600744547969056995556517498150152057012750250203595351498969435913099627796700857281660718733044099282594131485156189858398333682116303203217114434123574575458987375756477113626239099016951704308609640130367429457190025005493463300883442367248577202832886549524157905794895840125816805735492367369971854604259607840728469189409769000681907815925504131903341423538084307458786344738743705111842291211471640919267174340753640612051027239529817341132218400204727457020799250133593847049225763604545034701921034056380270979397750006363275487419644844372138571783819131884468618199764796883432959844153806118071329842268863556044798038171547823210660651465733354365685313264451095144518336485471781390830495406214857524345533778257145452138787150742510754708985553213596449736839002968149565664484514683930648703982125314930854010760466470427340455794316929400791698911473012388920801392998772234103154430552431039733358598573769429981581378852415917119653344428036716600512992549294948433494557250968047258432055881548535150949009054273699765162565641447404515071671268983625305525463297272679135561822087534278509875233406184435732560093324692135889210392927723511982388517774293733087842135573316700294771910902523753936762420358562310577195685758858914324414474169408106052819310548707203427700757263465137643674421569701355417166341308902702621888191499180846168192234815501306599713761033509800693604014277911231185363095336893737998572523130128514736371486357667957493193845230509339768969141328170303043868112950378544440003331728920883472349280942961009845972737761035413644967836717149042342178075668135049367462623700685532290863976949197781254580768597038203707653099941490151765273177333838213517672201640885334577132377503767817362293585918001309960608462174964650925969063475077708975064958556412799113636982294444024543338947927308127311353647344718303763350031208538144955417783381106173760607370937894532768929016580548823514837647584164473634179180562101551674364693036105866524270231127511342064208211029479853511028687169963731534092602952422123908007130659682030349418111636254282487856119067991021573894547067864783021565116494765425573467801219415978796456180976888214524978325236442181113196319032350669294758957338583560207078625423345137055080863246399498821253989277241358012120120380264579528590240354505997511560991728371513720089316403357467349796715910157397078225514415195610289030768448895226555877665061651028014268739057071185892387967658578783667260579134340489805345991086795569158717536247678137914544899380531323635129565853990223424835640200221897068265212079308914006937701740659216172505611116400308253705656797539624400477798445300750413141179276535612857310539179844742764787568024441584421421999274018913663648353709728056989313243665132462584311762823201240983157965130546529072922936016717621140426276290874859824453395278950453435179654189308065269303057286464898805324540440205185963180662177769632599933532474957130197869575955304142047734254842952029590734733615596921916933634038206458088366308994146182115462545198349693645612251150320450556238175547029287108248486064392136652489208480490207016826366035869467551017363379652425973591478648541916649790358294236883211490239023385655589612087431428843646332317858829509394676403615864061047439872278481458293691690364167058620205041068651375889957358068200301058653831626142354431977156310000676535784859925557702089098162128636441272640689145670735995278091579006840627970852996826571848185446828428641841405712427155884953900609912935972334330935129550223798715733226811964102978768316799701357366403376018302315529962917502712657385320587783902346953475149458111634300334810818594414564102810089759312790596417224497240057702958101480169077352623002567364993446719359181639388423325463890137210973444446513427775233810608888141460414684725011509563002880355022462703241109816854933424192539091900966843143700256508552752610421768916371812147414590341055071251742261325119101464790844261704950294037448322212371715289608405066776604910705707540358329172272024715223943738886863535040668193410799222719490981358558461463533418622724015604769230783047141558104530651862521092722188369514029724827032683359226973316699122855641976397138595365083113777697005652088266436738404106348859256218628830934156375689507602271823770973141938968135313542306151715312140802767187302580221498915037253042395167854575130027154156409692507956482084955306935972621547744653924649079952308810613707411227564195049525774533748695134635989729776612745447495434590156179493385054261279782867110674126777437239182187502993710827754274996980600742795242580080103739564571496081473335549845489079068462107179950502515162867076789731799423369714870998977306645228568295075978546968422607756257398587628399779273746397397574020336095321701031151368679716647902654305825892452509129462024701728310278964950748588917811950223651123557848292202586248817569715012356691220530025373106308489616927232527922273297938428289246454180008651254174257931871897981767437951685831447083562879584873486700466980964879105815726442836116450267260050681975088168943107193603033338487911560485042755347495463851514678996636050873885395022857463018207467234542115320935975190028457353268169048945901772214767198429947482969453722566966558506675692334915571598322000885327807967346392872148885082515992180986976063779344509288941142535156872666076286904951868492868770840027623749645311529197243060748056823355526204999190122228732802404300257487122443504365123644953814344282775562127091264398994051514604001766404509582807194375927795778943033874170753113565294114947137657168232548645631758835590253707076221887207952761286218906813307189520519080689731868879940246973701670002239397157562483221241749882768312911996200701934708311370154580863195866758044745864613529736287626248191154891959881410487236117876972803374376203405916305498772517641154198179969029888784360886445498353606261227017908440872913986411502658225819064217954127004054971755641865516536516544071601626529026221689866576346959168743032832629042994094879413081535500215099104259986002455167652027732713767397790069019488591692571818029741212472979850000530775075214547704443681952643286934452047002074151093139759147668612805213133072256917340115988316104522521622718807562109161834531151187902558108260903103615288028020073928082417933275738719673461669659694690965138545269936462140717297479595142672405919397156203598442303188190507539177194792400013901380822977124047348691726596561265076026272973462884733198842046937433404454495478743939461400966283713812245955002533305409185970652029141497700157163753542596499365330272857159190382804853175831536847801873425632060279010171721506007513776112018615853835372119777782838009677967621993543939787887548535768122067087617299134590157464183830934377445752192153037738838508949312361922349972414864146243845851087104079673800640054841261859663079418750676524228348331109349929748757088979841342192424319467888905549954089021255274385469149815993640793535435405241200237906796767351315083575447928306172277858066321194772082366855661073092453011723826709162198726950312187543268597962483055059005979061689352705371413913602353295737203282711798088010378537788071456266879759111713661631193494827633197840272300204260632861942249836450618458649223137943364776742925938527985750840886988980149464968693474192627415585143146489800678333924283404909520327316062355413147281564476249683137769914005578190316217511458423446321689940313728187572963760884275036246190295981426312550593358574167196224876242312833908175298191278321552306204002587403281958102011557350265212485004701726889246179260327163615551138980489767029781509439880807858397055220593650108978992215086854251336257696909289187607452852828169845814247576949476469836360138694270386528954102118676879126025345756403104185093151823083532145831105938746560036865575750749989979899286758606788961508919973916617422743079400901898161451118211819290314488545627070092200040007217054218849795888725208477735712718646696039953568608889777941117111292948035011599340021068102500087387313123117064654880550327171727837231780724832555580458398377631681181067907675326479937079022536918290101492933173610402901574464364496607755300236818503568132983405998114872037861256774999179383673982801179145260610196984846069194779120831283412577275496824125269493221286060059639400413714665558694733401691896340524652371007046079724132915155968511953890529553379449158568330317373743687141080642883562130426006229919648194406241750213762174307466586918513410179776980745671518419366692898556310524392191207133757427255629615335917314403587264841991082399417531058568380102267486332785699157845271705213876154347695300226088493410895168542657661992706877046463512159797733190924805732527898278942612900766065670216146721860884640475156074836935845115278099147210499560304047104398841061614239340870020141759097365845307491221013547917515897392221860771883224651604507437936591020983351802656237962865135948048734985177796200566810646997303418475129211700007564497499529048439920064957263311226731939031341729792784668563160273594152294181300902846843912734522442791390118917733523851388383687201974088528555754862511157985575101113308670463196657061611780879051680949219043868760851689991047529924236475210252127373852784481592917606373182058181036716757237988096614793370904989698301337432965341752630738469547571047220261328580279567550997097988045912338459544912222306622841025870502305257708595565124870067531475921907559802288641751216156122671559148512769066235529791265512358204412254027368723991498986710131410268489766954732418512503781321409006424938837220239442510211497183441305499611871527253535018257143289474122255273721751860845385561522749608909613942201242448666753789989230565291761560670388339132530559195191280731055109623887302703005147803321299317389268829297299430680427008767350521088802348588768048676858538383699732458055503648723808210510242801369663304506766762868253043729025996831691119110910007531560172527285744365321891225855364466224585609086747413160578711388594776313315650594415157270319795490384544220272752971690243847575065946227757251582962685995383720133528471605928171908211263352542991711788958577634186016432136632597099628171071241391026322014104290331902547378064670231972660745954902143634112574800722106174967859242203093914268714987991004649279194017705720652802313534601618371460824180675912025221531272062951986619803514224393291763703414062560294620179208160228885828302293038568368589962430439580783256886806694447956046214121169922484844035481360577942933941045161785211497575376310530372142305393409860217258229269425388842721188702559138234271725090082932215396214799074373506800942668924160215133762834140581232352128947019601655865044261986526013113742182745875214348607208240961722354171981176507648909502505897219231003602494912043732977603881274125417913088602824279928518997897470982007144333394882474311604885201952182797989925964334651463212387845057478742336847805036251802790754378452464533060614702042351008784661822585966754902182491731638828323344160800547681041449730235076576408129263476764404999079981816955985441394200255150626607663526773733708158298022170737909581580085203438733307610570226270235029021510435754068511163068649909455966321107229102688233619329981861176996019711979893521162612214614386231355256221204125944128284494324734509977384655125572438009223376096899716411083547659023463291559289187149691791847261887387224793961813918359891487673835172160064095471587031347584991575776123840296828616235526811575415399349855111458409651327838773576539120259896880007977773832980916038289950446295032911289844883111242309411271032429697875700002992412285535203640545328120957929779628796560286396266010292011358814923529733947136431398615677089356091614105579336201604540941806376948332522722280010178290967139024896725011357653353161040559568872576368648215997888902386735895075220526671503057534266979670821521307190925586061053575503553525914894492776489022746285169872666488112635168196370395104807515984510730683481377837605330374964217969159450931076343731041697029255594266808017046140559525799269376760325651078607495847679932891019301163713328320818475848618396396240519505229665911917313312785096334391828461026277704021309083092414735979448590496074842604590153585424752711758550217315014927091089012566164990129469417473216034583836218839604717270828352229047175213125294605982415206530774401909541427117012165600608870238570543874808874719018056156416509486846784827317475622265755154599294112363375059256345639230895692269942358087824123781238517200813885676559935295107810160785560543188930564129096617921263834777325502848945263934309869958997023804045673336686232606891274646202801533430434573610232921847847581946478120779227295156649077187651370191344707369165124660218723174688382749811820769583619074543093670881797190901803256980160197675833957544407297505425518711654257426411770664566133411588850892953374491076049798353739895591397226152431165791981948990085363975517349742488653002076081619085792444094349928452730215745389875659694000738125388116208631097883401535383349983275850970055777326662505562841450582265980083831404518472682078273120063873132397760327906836524213871761523742876846176969124077562210752808749094460080914120996667785251064441349037640873069730343674008555635072325664999628163684158474034427316158549681361157140983821047804654214962319766829554497147372699649633851466052309068934870793452924558033632857298363534080861374822243680971067868545582781071763109869975208274624111984671909664021091733392030883069893616231957340786909003960438109530046441180770578419266650840017123031104273324452623686959325456618041837100715944859645452617500842458692123462166466218046691848534933212707665675269229873792099514191542831104211393317648358049602869637771540178445479022924835598998694648947841326063887873381389548008147481898946113311880678971148996623161103247045748399710808671819916022723475330406497657857319009156308757452634785700914079224616718477482693164194197964549869134241835644547209763893035461862455766267632726172579914486668902848467956835034374846414066111531095681527236735685669918761420089729541263365086920543718031245327231875166631585264507358662771756565432688678538718527053826395339258264426074623472323625636979321356831877521141269389318498945021279489969514765922715453161147996487304866535147347923977336559721963326931583064650232176617673084039045281763605327608460868675986312159769883180250456941668673721932539818849572290251954189614722543560927143874986133092376456518805691865246247492358786410471016834521165294900375234295647747064060759444530076123032331342886663799030180040390299644908810378605734562198803698478625246254751260765889307978571490060307101899373088133301798531003656007762566447454748119183153893803190619040341614265413219648010512333435230826803608509089050509982471190080129873365411881158522585614401030295033713925019549726004629736109345270130922398719072178164913550229408047661454388299006373412002953436332543490812850862616922584266254991934675789675467362023735400789553145231537716792797237315304799402179101082708487575318123717765309584206253013202102244230011183408309330529035196492020881656423569082854771579221288189218815438397655892861233366070343929544777341327267557961278631336723718078730922212179579458715129597515429823614852398654264455818406644809704018438889275480962709110450385938555393190845742754352502550227269928824374756944916262420971626265624593318245926160696062202799297891807663935465137604014022076714625941583937552047939256234175878362437873962355638362406256583221740569030956617703567537118497827951777865954669204810656855328503789397834575614021182807632474753741016397514255811276828284990628582106248887423831392915510536153097142417684121565979787635881495131772006260894766276637151504342329713271399287953955498777655057283949332982400899821022595648027972746095120205189807828415178862967033559359463664338464431024385835883482826787104890847158320745508688293984819014890316172312427373219851023514650518453693117896933984407882907367560600416727286729522790056153132291517594029726577209807124927698603588131512817838923385444613958684584598365154590797413984366004274645187165098104809804571128642213193102050233940524538548977718428041721055895475016701625267410234605480214307204953957671192579880953522960790252867780079907059709485353719254193845556960438218734653415752448853639851413243599940042888802863485370667783339014198219078576882855166414543069219442824921399287464105699174342269262985921431384720023220334328155238597478211371139681521441552964061091848031686997564600175165812231837632289102397641646411916621140477535410670256777870920295271293218257721875021903862982525886253316099258918391702020779409924340199411563717664419471617565845467386437436635548935049443129636404720616870894089073657292973367986453238910245277144780482748409489252424956954763056894165455906182321304227436204672231861205220043747096964872234896419647929099459080527569287062715370070771642539047405908408230867811174520115585843738425737840073505631906081751347634028961092415205595298541564643835507118531791387704290228357946378270635122504039739171865266431474429665455946223824298087340750602644927884420275949287806110228331087075336142477735036633051489156345503108462546080090312708506992940809317911362491493876151086077631295048248742535608045198712216322672188414967820702835228565591486707457964531558592493984683612020525994856980106100029687118057865784697664090076626155533773619300169125081356092034267068621386604812903674738223792729136771469245056018455016398807558821775753567388776657124765940783495292466517042476145989995300425397767719010145194733794323691549010520265779244898763742154126713697792444906983079711543723701552971842378162072846201571443879059709384498471240487132056344785490460385743126373881770233381877501416650978446155929380003534219533372043148102668475738925098018197827893799844263988772379354645401547906796710863993944545806267392825684355725466561109205444270626857539018735085987055657282031665972391603398017073650314544127902810359047750654956188050571720293517716156598834559972114016531431708244693235509076748647998888906018401567089762392113281854319966946058042262666290399773051048409748998811164425190215497459615646235815310338121107051319577028351367390935832185503215197757305302825699136031396234650238761034918168286208311594905695758189770698271663293775101195172379704809152533453031462647054893916776834540635732808033095185901880898902133260590415087270166749382275476771074844053313657960786176774532689954218230792370733934724583802878895944938329621252120765741329349784229970235375513286083387305395669814584689762788245398488712934488195522398608599720862670505207365427957107161787897297614788588230356639047527830418873025288362408095456606613615903272916465270199939301104578137768930292202555979669108760364213725974530862881217240714378466527008505328490611047394381822989181428559731170394347796148680800165738173405375982853238123052749973526947387966518879358830686592954551874456724092474075026405689568242818004089988370278153669091887074063680126766235806756935004664704007619521542130976254954436516680122987052473916533109132503416007379548728786117962693727668351629136371700881250098021003364593917542398064720207784666790380820327247460946669897612369467976192898590838900373951497936978945364253661442745667789053809075514129447597858783532828793439969299330378103142218559429244891969705824614255791401945053794055479199558250791827399105677324941033366110355560817366626917790144397946569232277220172030663134118685814073995328052559615267715516569796575538524486089403439948038794487747432473055235687336113355508637806212365478500553367275265545341382978999370243237564001642212641935792490627487990210448486106267260286833377961720919857458613296629859096220052389886079429917178710936015010550201728885301848667960025855545395828675484007905549056304266055167982358813132900180740601875573747561306456676198136569422134357773720210461967791076357077480771278952282516201415463760476471954703879792260144296250680030294681284174894745382308879707517745757259991282330266281196419881167706898105658070345294587789085554800335508096155508699410021114307955693720487363654850840925837143610973720945993116676987029708493182760055814348377062541574242633580237120126232646861826539468809324137248050263216717644635873610330257005108084017658852273258190981928000808541271694873493376938701747722532095784983830073889755058573941981183004831333492632930330053961146579248188786851951834251255605139959188099317740311005504107121706951092052414646660962552025630058685397483200325063403681512300121009905312521453504560784661408765295856792952812666950035860800285521514353167315198504515813295533785891017799772787679086175870768306490715376383429762127666832446678098817734745730009042304879589858112960268520785257189504395993953643640400452723767858150218572185731895211885425480139591750424553672082449420144344544004917322175663137307069453056742070043980435092120056332886211140918000848440750729198712479743207666330464710591428677258081173307422571207280642676290452987965092746266128330739060614729157115746142655789547699494811796396279744796776993750581196415392374402739722386715797885950690106289609936044285507684855827767929107691641724421383168330928285696838436373669475916069878307074688281043716978519740958939928988641007514047281349849377173886203149245077182482656474088668546875616551693129781932074033542376855522707619265882136206764963758627740737593223240786543730785769639923042578649364509955355397717767501898875976001541986639442905399898646164357105510238741377789706179357329062725333131825331775819433048571133389853294851321205316843593508178243155608516278358000827997877432118291231782463261946437558216213291309654222048432772935702923773746996316196695124412302391019350741310151193616723056014579372837027221056265825907908868406507456927584766294287464826382259261278496818359365273020550757937163571323131776611312642967551704679541694670415144535431690577630372233479123728780985309684237305287241623420507437712684114417838745711399928394918803790741683719374914804127566721482884281704157034511110336410345793430296508766240787857451772384270542182638727636225953621683729343256347440613356226034944829692218162144636119742380815485424551474732767416467924301031857418399093921930121151177176958140938729029802782075868646689816708084830749831327468689472537237845802668761403894317083770503480138838923734355107351095741495973591309293018374812387557556260273533421280438548126230118160852340523714813082229753889976496332150698599518744447739961622253328435521172153399776859553878744392954264152158031571939044324249542883240622120336551031559764334267692318626431390381526610155630308424489884154306068160327990023844010891599782415117835936326888932367441399066192176830690945164324468422000452383687609667326927910670623830134425496904412414408578520874167521836463984484043738194706529511205862897475069457979404879927624529829108322953357419732931396185485390103134311682716380540275102772661323221542901200755335969305693590402228217146619401275440281698530760501998986964474717231706868124486295308477028006283201243371695115656950499225116046562622406870350667683516123119697575200622430354696817883670947763322153307188028988800170260088339113511329789094535637755198041365805456153860057264824412901825036687842687664897067159221878718993993408545304715130736323857201142517691120819858007717183079603765521242585455342449475066814319350436726239189973635164550665968608348541699854486527785369595030077185122414283981612739805041067415252866890019338439000959329974427930197494567587359194214528182435439074720237888032833527578998503817851586823153387100744495654569780014443782335949297848463838759443565710740028862932652519944142258294496485727482230471185611489784681403594727695633691136401576714244238881124932446348985042837228749165237690755605607683188024568646089536437417035198310326402522539098287519769228710366641540947499277597135646038087454990661522038686196686814219569123345643630079989685719233201681403137979977422312812098308265504403074773857686572967701582222857086442169711041586262411374337773821913185854759780951944470227717728879000518752881216196970620988608874471571914686344498412470782154454330957470633049674790285502630637320973312983225860448736730908882392391340758218583588146012873110983292131429833280802640082736906470057584571254650038334878609558244650600674615944001537283598224607826834543367922892303860856679653528299821846605732252330776368608713289718089735817549843836172574513145335226487456892460719341733609578971813543781285364436986032567654930513635336614592001064044785119155464565265937231703687484984437227850729014634733977104225614856035589917614053676186447491668258411447131276406026853820537128872834926078824680437822246028117619985622141486769241644667755130694073652391360519655997946969492419931942148897779011132894337972648998561201124525275798628294059743080112721722142981493987185038322348931447349078005473320535548898168587056191607871946169407957291795757586248537509059546140249978748911610012534890754715660809181142994736236527843012047657520863349610419141473094091850463961339913902979443191573407804250065830068015659717846545843726409061802039131093461630812511242616654680576746057375887298128719816489758670160662842090511990635200723439715369953440799604494518967829538758465169495038838952145351087356156880732590541806148776112231775017678772012702253256477479399480190448437712377769838154276467891388225983280756158683801187620111632229908427670205594617770337798090924878526175843028699607469052785324340637273202711771350538303551240022211025113171546682259464373226173326420302925255433969399746784984247056806888078090375304183716128223607366659474365854243199962886595916272452337280420439194980536969725982372963085293027767738916364335058045602908466190646407524804568491627838818772184138455050652652868965674790375695061516486002917688812748546279137540399993855885624145189743430021732537308593414005922653949185650339497603883338742636008361439048332263553715117945698645452228686056712656037214821780100964049872026884131536010441167207911037947868799035564183675578072496021568036555726557891857724721229929003514408973362893691597040127934468038260843189815587713547408910271216813377279036509010983519044444081643521570532675796254874249538433117665274312500221118624694482011366664379462269566654517734840807608473216957292152423752200278937012589383188615558600843881799178120563052713958679617235255357460169016889654077913238614974525151359336755751871283173591019686411387916378806598837510766845545097809012414252206610750971743132508221568066325559099863130536743829907862207454696795753148575705114493554745561507191951712603326646813332120298624797317301366273340010878046280298506068518848179154445646354006514253952946092561177091589592666923278128227414512472066256250942060846926674802126691832781735394188190491538949368243936473954169147605295259569279875008794137225738848255481573536216999933314845052692377931098872391074883667776458787277261903946129785904473805470679920717021963862739980901904613679751335338560071473153674825942819766127654330998949426250704662150348559098589886895897164115817965614412165101090990286324236672384764509612810542556575771144162694257056009629931715737985002969857516974669874626898177324228572468199149365860513983837487094670817694809497022239902016166023005600824551689838467552638850339814653442908235990222044153230011024685310529181427285271841558211014132643641173158366203014577147291990378420308171643650004085958074087250668668161284730663599687599913017298916009707914988262132541028867798444820008225514561782437133280060154948891536409097416810406462053808242981503636449577242476749144081976791562874668893007022504521041228061278363463527284756356155913621658344123126429008515538978979939774171189084623945217775768132229193364541801133828723940123842076414975265066237021938880162723972270863241678628256472984065837238301679937368502631887797285837946256694011897579416854126609557001851756831330551592358044123301301461400456840148823814704014934412373567352323988209139389112794315070589763517170154536865446441861226337491980647254486196038596436212712227246128850726612558364264757749122800267814417107239315339529952334824907242718310727515678088812916769943186639773599296080758151295639194994984458176408979923716754600291720015286117835718065479858222491859824514204094614880339591244271470324427814415381235144807638218219465686403614089274013903861744114865071245758869182845693280654787500424147460437741397484131304611098864137436575325580782821726935138673412219958992099642953803038138241124493074768268191961052008890238601810089788312698546374123298846684701172132838238245311294208210141896254861971787956336239212122074000243578902975205224201741431519758542267959375977858040711037993891155636910432318175272109970177598946968792947391712130843159279128587908446084628624235737277283217372905930543253605694818181644727615879523818644664533896830927890332401526101290358717670126467456957078010794589419271234858069194148636932702210606467113369716727541060119252677115752720561652979639643568431656960747157011856260087935308457168436269044744741729508056605518376125677143181364533791216214605362799072284318943054379226122291885549596853614573358088042292764972536526790016526485392941530364158157223761363552440843161167064698518514307255038215899616883305506360734031570781538330976459220389098221861084436820213007126173273381239724144395571479645407799736730081908211061848883779351971829089316441855384427471265673608952042565262969462203347233496154913254759165877076111718077209706028360827402026249569918313480482664734139922180376397656424088260210275881503362868658993506594281902297114536858077793722385772874177339461768792102684592035322773390199993371334798097669002232129537399937101371229260830374980600220050242773096051204657821332904002675196809202630850348986824877536232316592285548805492158750532245958119310239785126031706163455234929082994205490673023271062424453959750279670724502233901637500850826222541945469240470400664005457927706164553294412734759895233671555315450134328970836157578228434460497934884101559240962312337582908352311861526505442552772804110458614328694802107009197490603712594339773167664352393398676704239168384133717668706492490586777085591143563337486877970544122424788692719360035130313616385347511834437459446622312251874920455674790455139859980858005304542894377460756071867167094281983224267604441162719578834131847663843207130266433545859605904772702946614956960132994580706062662940261049469130058357847038048293449664382771900040817008818923074075866747863949805463347666924132103242617032659968524794330356344234063501725649190118877848159067154920343167997542857896087204631763709385787533315968804170649332255285265099711763643948474844382904348175175244203434172554376890349069565390739365933229907190216369606785848350122870523021779530175990489844296204901791303953701327712191446392577709856920381922821282298174882236491840320933569332544107088954682702796554155777894673197386258756077665949197720397489725030255443751886330729026870324918474126772161481017707930736467204714154325907189073598488027431649032149409613951521526899651552764481349242979735239537461512339020099255315624924376493164381712577930160578816441056891935183750737895146265949818530441664302672539758893031619540463857906031715185072443594492497432018521507863257145787894081087219246689388109366127172447597100188997106422983283057063513008842920845250516568704999712380404495347095078969657070842504631018852951672807731886249332925462489109003196294388718991240898128748881067382935285098204095748235804977478605833584965819546882565390026085133026787703341303360715360882451956918569683333123638292539496164757989707662685571971571928414840266362404782339549897101601734601217176884208213887804328998449490776216436156268928533882677871121309776883026762880582735266200697187029852407752364112865763922133582225828990937680427056452262644674891255587544397967401127906372196955640375654601909435153713118222854566758768731973943305502604244175176814535490462438017957443046010390758362856232667277444329380742080659214621930154874028271024523118288986707254350310569512194695976801959093587586612240582526261996199738117644684961614627690307605357062082509712364891634938352443029209435598103378075965010787322297315198513242228927300471101035548000052190768795323758716104781873290684002420750458207271725256266682923628324273905327304737099131442929144647720046418451707491969038769474172190939787570378036502469450349511071657674526808500375008064962381546149441299566149922797042906995210753262985890009596005658354074592941352091866665175976082292177723849328002775779338554646253470304844194924306196613722710600605828139505749862562381521497340300987557067650609734851428138044289535019861225265061330689650388451198890908871289655804005192622999555163922668743100588198979332188697998003711028684614699328706322706846815813995007733565229940278602310544560156982871185170364137778538664075857416105720149796526780076699530713535651270869858460183413942507069469429748312832316510859828378415842296961841603217424946649044216565178850097037606874526045037672443769015714323588904731710686207491247859743830271122625500973993451023746564553792111122328877871169672697997098218480845471735405610504367627698914215898170112271654574426971897387514625380858873547953546163368372562676696820581537753795061146089127129063767886097549920309007824607351507293332736991806948346004802421454457216719898279158192035180229871727869201674289251728935134339204112820715582329379545171914065911830170406297432802913093563217438400852933979119613332915946841058583421808915439706992711603800403881419500988035941669506013405912550171671525143153251149816857507327994893886560567443468199383306388442132289280440984797376515168937966287731171019545226006514854984774622231072794862808848275230363681627062655498161074307046875130515206377942505958823758427750923588722912939325105727877474179828003516620684595683637491218409063986538430471475849089548498899262114962983271366033298213635505514535923778269152394812826218299480493016418538906316092856138485669384694251199087654770286931389466938859501131870208415644931546611460206720816068953292663731149873052674962524379318464808447111697812097384768306113151050023396741340891390626491278562397690831162689155612601269867156976478916370776634583955610936538070044721667961542541489095252236131593100356464375300805546404147730710808016639228354653179214118952057840058013369491929147705538597965188941513767055624675453650091608180736959375103192701160656358489683499757846645654320693361798304872002766311427538515892051179769266844794990813524273985333885585528973478759875784865216667132060901719747643913597228059695451874663494208066545994398392870388270017825498298991513044406244027145137800498098756289829846991229486866779811686533990415318274388387829355888775298819433072621103904448334956249888359257311703148413171364784492101385555216605692632303220326584250938751997088008049163720885286324508929916991320447043711288123044121272754009212337019823616887139009883980635134755996490888439117132748734235693739979706570143663930291880135527700110760137639421521448945861532647937553021767785858527461055176161631577732048674094098266240685560525684350792688657276039712396734134633828827375032109876516210502874248070989455368066990741837634853222774718236740403339602795419835763436296878990456935425726330678962672020407945288163460030977727738520582936054708631116410507368838025056477719479869524691589577491244532289581459192772471724680140279412915449544807944256542682908267086473415106691692260338999833368490326201516849212568334163426837736586579914458717687022342060995197438876615714978915124167090394124657612354971831467212381602111262219583521349560674853715540474973031291749655868881969349205271612998178907853015549734271379888619015115550931045555124109210050302929928346872063918990424438140549894579958763269060335195334155298236299477178934534251877266411316101239476221409463729343108334749253846359126004104495778851090193386017632149589850548689629558411201111911936451975105142654929239745629707569675479340869196315917196809637040420763381711685488106830645930553698489193923403690535568717443494657907547636246004936793997452667404662793586575968320850539682024426069956568342263253747747000582343270866988656223117596282866110617990101418739562760185757367301512984425776160132663777902103916290998733841749932605852191174219835350909190234290573154221467021013293393094244886428052360814492162320263091982047302207418145235586532494254927943942204595035902940066009096303927936492160831027625426883099071845836645001229305117995566475198184506372038164475530224455815321053948179479919072275326801339270240270799471782766678587779412448040815788115568637042494859146582149140833164637943125037037872781602080100490795968867694390714481191405643632688498678224477597894974573457063811681367753659655360175360443699960821235473422829881576672246163423244289744142641994911594133771112565482709642433817973615580614203279040919393112093019781865813697490471959037458070853791356576490859714968763652016706206119376154214258886250701363178433915106728482079841625835277028098517675975686122120927184189982874248728053431150649023363401623914824695846263194442783874911510405556477758165021363222773024719070090808512727827907359119755942653745162178902306901018237958585439213315888917596995763684860318195711309119267039165840338081300521955654378148432790653659827385275124193826520528466240700212486208219808562793285660251258345118320175339333720161999413475157092058135180854905699381512605295388753354718314735389619320802667903636240624416253583181948348579228901672906789590747334984702000034270545702186828263215937586711475935937947900785972543417317706749241308127782489746204828669582562446291803384211053103259842430620300785005194681617605721249430849882461226274789705000698109029806835903137914679325134530926424287232859486374782861955605644490552802477615062720243720501384159696100360235558423706768940958116515753522210613618653580660351835672279968543814381194812812267827863111635967261528779172212836339145291754439779258871348890219675860116141587662092878156119804981005289449622296634075498697121069388550223345077981867832183577279761907124440666380116248832933269721681241964983580213940439423782772965600911264172648329376281365798230434476399977388237692404207804090159349358391438269901962695228529633958409341243290511744974560069163111519373639117653781006449616501248728532876932383682111148018225008767180887867586571618616874757523885039817247324728367307999908170971125614280502501089564427410239587669243139124994528088433975982201589055621973161628566316324510098039615712348387198642425995333834162725777069023376965636244818133624041746263314882887040808103459580540758049824571403144750622999746594857164646505882955684740323632964800235746970627743750580254152508496986820103384095656848714467775041781577135468306394157114807213192640960898482104838722623031557520612934959555753776222971337806456265466257737951155998914385450799632713673716120945095236658484388503291718928284106731998246020588105176989752907113411505827984464163736907975100741923887292049524865339759657465327220064244763734617333197449352572314708149654231900538006700267969365714506461800030793769040423904301616043837172896280535006907778942359286802497320382936316684001924994471280771295368884383313760486240516377075416858392253216453817954522617009166227345620467994739580276286351252570368837000422870818848309331653498369070907090051594282622270413193662101487422065595995583485873480129754194418478350661885893577824483267835014880959469513214702667311546598719185556789573427353359147532802308530288155186360660643582606846787464039613319886264687173678740218209304616437425392697366909289328168436079953685669475828793462661017244035193640758999071867918628410525784620862567966684634909868632486268355244336789793882509843884317595885488322492698843734384475909992387716723813441029569545943721557255370660808014398891809308062515201731879529078328236747381599390933321039755819600150283542013116373769964874100152854150562491048220186811711430465778094574253213386867389124103497645229490570249326337417343957060776281021481137325480136098947323395327968587541734319215396927487408821302775737318391112480344150814737139866059822152333561986246008620557639183504336670866537851704430994977781677291801456758345253673511671362323880061047591940115952858095369579143538454934812963858104531497305852740681093545765176506208839803854475554957025294519454317321269325627049643875939964508030250134589132497971473345895431934959300005210469670166267271893499617248696646307990179971971763663154279333118718970226369144061607056935136577463214325179224829592651433913706349433784665017884031744365983098877076364441159391725763679962234008573048951132834447337049641959363866915157103032493028885341142689891467554834361082150847893190880643692962491694093747827143657269608501624616806138068451939080507325950116111543883969533646450797192732806938150934578474318583617663570983048787988670814469704723777222939472532637428452423780620728948324873804513996449189802199838868154689249305107115168001264101026189553599198234232394866335605149537629908650135917294158835841743052172405930029494636657507557535173691690217961910547959669615366305961609759510398747252414237564872413447502121592930093214558024463683240542585969362258600888038647263056413864472834041343300548863912295690364089151161365441343995642054540853108355342340560084568354653356800785671645295369513992155753280073064624318320811877748123737417756659690522887123805494754932187776732622553456371859434311037810656999219919281732118320520234066813545709529556643027390177222880193953731973403042237967025848887814855223964305387011421438947718552383750611234806582238682304106654302587569980406476634464117016029810084363218706327911427821497978367414701159296332251335640139101700401009597332833380951684895194029729777434202389581508292464128268357638536342532291316601028781142535820730957152040994824991870451628146197621044934067914377931625561224394459104535218206881880115741546830324559764133480468327083410984565334410445890958426170914220080022850186927796114931973192440237368417695772119752664951798870913881412008878251191065512077903303444527528410757599558528404024248454803783158039690300959879029926342688341774769136128871002398662131135839021931269141811313551140778438996651416776086154877963903958006926173559557484691201044106814505612449816039980586983307216178585528633689631976559806296657189624827942647692681558608338863493329887642410902881768008440899861241148416893339559444927403818940616558985790698349882412291881214921233680406055323782740128541076553482984511358665257821346458808952776558765593170199415128445074676785609740414493389033352945217042442427162112851196234779235836892945454814834407953808463207461376952866178568612029412359024794299362888934050465679529620385207711302067905522783578562035052351045804319113684405891974087843200351480915533249920146345173888685169498361002995139295603455359569723114577533866945298099471869140964136635132907231092687912316423367530118291178682570402289746093165239722730788172392904364581127656696387707664236090249588153339453524168004704530191581625986007648633322054964767862009388563170233512893446822690761542295983601449687078082585576542132997721143201643795512865026259888788092776813729663564626576661097625738584065158701555407907141689426168932645921180593162993716239506440922264153636294823699759285642604155145860605132824106509800046305171479300634004091062823757270542350513541106780346780483400315108331689519598907054572644847695092419875425045055743554100760303630231316091180899636318214375142909082151274092369161740194876808839648933748801748857339376460039343692512931189417818549529711457707116974814825290638645670202694252554687287745325470821924216096667471370220024551732868423341316688347831073097056459879799953373931469378790261404782597460127975681587329934460477529009244057116241098582522541898554534414669945299631324040301444358640094526554223851259296976448532678189274266088613140463105918809597411312678798555036324257897272162488658094138095325141074807907550584967308923684028680908498649765927919239145865890837128742550927213997462908751806136127130604153241086444081084703384127294285447887589718874524986816949941356542088710775675397325867486926940204872922009498551302515722688670211096887043775762359907021274841615533939497782061408518791914611009045173962230294543717160516432425174743140068919259050784484273835924627264364929043619641932149573227579184733621615049932586717875442032272663826874805908266780126517812798856791237120795263087480313628752626598493323732011572964312425277600903901286527690570002889466446571711927587903868174430034089011995305769127430046085359419825148310965897553082477507773808141686774189719259822865732138143125967002940293147475020001701727165786954649126750821061615558579738934476409850719855337786819231666693159656113069503521548873874122361724811367846497110698171120879514139734227273459724306184238094014601194309742669947319895139301159002071983701536514786700574765327652911827106540712638928897077324965085934930483263385073191738209464945363597987812228043393265787308669699982130770194890204140323811781367463259852654283065140241083677761691463013867122726179778221716426576170221149110097441535524437597229925571780691209346420934296006282516001134305353168919862489691201641558908606475986685961747958341879089280617736587501000602296633139175806408472144195971802240971862196868458987407492171868903278538125879378831946368868087350013776437644769211580889841572471909057065879713565398909448712592865260234149526935035617907272151238855013054033185349487466445113560010395338628885137887120964651028518820556233194123972247140969411299837542726281003115441898431979430150370458763274097112122586934379769317790326218249003241098108149348421035323061374091895084721666409317276954373637001767702948239019757419071217872213146890895136290157937618435019390467671969856191971599094418424308663110794103348370023151736081889966513984650225068301735506211255792221877459345198226672916685410594733369328858716431092976449162848317966545006090574224844863317161491264152546684510196174942318263506842117464734967889602357510011325827865485102796810796597738744362445872654481295249163621536135963082888591423225569078437943994966055455337509426086053415707097901217674665549170864429249275797663658596060925878958125036829763358524503893018461541123101797217933910453202326538136727922684675121962990371970872880244915070982934490163649740658946639079104935555199945360094050786215905918113966117489035644490675951083011129879392195924361063969976222446955124766667243068680576408691674139645286795858084831713260152577116080190745267444914003032059271137833132981925911960983234648563404912394205886955212113209724590255691699600615824861784815819406357660099659527143337106317531294017851114828834689650012276738157133646457326297537910319859383215688676413630220403071263264026037199059725369098032336030192005849043629307751394295892990353586605144720319116635824635282465486665750792943445275994641236248872262244945570920311458104203773654667906296284053939527275790635317462823833090171896533845062546503652871294237542047675486655419709744972568513282084108043407906683335516706669057806743487337572132128032300148548968053878091061841035832014672845168516123757550412025394554553338224727891698073806419333124244725461202672381787269589426285509438448173528230660306829211162262767331863065066678792802268035982958488725465590761964028916605859064132064617065250822819575272964143003279906904881059007741068565325676191419788744701983865126712836427060400131846159480516741476741509055904517803023457570088954673082179387335428599576745931928092382227152647727227784020723414470805996500190597639851653588700425585119698285838500585016171264347151539480239789325775136364512100792629138260452672417606833029130865395867279057658529186523331787865064348906004942163937656328389897303669674178213296676637590341201337724537258167538112165245236626720916105106858806907364214459378549524822858571463149467949010499978491408237767429159382694945610479256676407222086943240220182380843368726686108557520963628333832304004727940684122861952690563163824146689542323556486240011703780601631490177869227516685564817890725093628508381719502933084286203677114083857535826833812874435838126959140674463292646536874990682718272198420718585159069968796280242256908034896582850446996429630107380680101660772536888709412347112297422095327324436999737176656198621602479697937425277414733599809876205211054800904901976216409192924105116484651354111254412508103641971387815791014212089828211910900706239177948113066977222374579430444294527782005851258361868619990506276003986019921870514823901042239955078525050213317901753689995640442738273849696484879136732757117045063629047466870393283420010480785947748358441017880525538478733894416871468247648880235345311729979977773603763047768907715646545538353925050239362627113307658771923637820100406871887096615819929142782518313349248057306070516841578288006901494113657099349693593590147737466509950251982458959842106088982242300732627869532700269920848754760055333722944209849299534996591039562602877593230550992547132788891475935370400344861728862427564819307090623135008210457899313925689621365252771840049958739595203334260510395074603828718837791924855838111140634450862028913708767671641685239038424330362459377778606681539566762088446513223293053443409502029970199893901686597993489573577901699116403112757228680038850867115364696886706277606503785459692000050549312352442732250038799331452397916895830978105424374546185639537921396274706518870097692869848206475290092668511395748987583154271455965128580643840700250167198798022672474231843084571675091712512596974977732899886301661923216714891711198362978812825916022214705070414009879801580641980517789334455572576178966478533496313662089591423933126044911808748530661631404336920329141432470744815608641234383782922325902122693177298940644759535886324488083363730657503489181201525497260678815738738801121495108459835501636067684922245524605162734998654857103494135838431115715803409368904273355249955207189886543248903434963231431996485622850808080305709097698898500648850116390806341098001772546294087508282320783710728308475822809136283800562103683385585563606895685371747705745524075481627018705383452763140142974155107396753122750664965161244171662479996917082186541247724065868854123696307289638159747371592169726880217030757244593148813093750672381612460480502406631493668552488932836254258630639751330267237501401973625775794924027690339614218995554753675661946560872427975872683079187438524463801075967796285853935221035768454133621533145782330057800570270658238816627750238793150661109092069576348591136086041086816800196174062211892636820894937301058825598324618471597192159640646626650928244215880121090380493885506176394822491295509608555031037254616310557870613182651575756826875238582314018129261596706148838241895628167284338539263597534935749969299176502794113393685593049395840094591915333869444010191490985976544645660070152731664624277402087385780201254139533203562993244411824341604370876633704410554772994541012159660601613979395927020689128740496522547699105740489214226731795387299372999915253347240137909776745479470815613971170883310978737119704685159580446883788437059933676840469346943013829107562146235490245273624641416605025452391845687038363873477919126879558784253576855580740885898467338002994464094297004875556001994306954890575778369013585086620235769856274910369723351716750568842234178833444401783411689986544156917761682679644466930177004750648340897191844929709235509917557698528563528493086206072933546690600003218835471786990189103221535141864065510892550257929181524468512167552120584635711652022962814159660934719426310784428236045767019685968308399654750160750182169562093237805148714387841840387660071691123147043666239015694276752949356347545798944488186097218413702692170945329760218780883057812591979548408638983634139357723551341693911125530392134801801694044497568960845911257748713675860495184129246277540537785087517564544166855124898908544359730604439043540064379589458536863615689539080638888832012688523500418866628749600466731935478310747228014796969670670082390619835312204850919225004235006921276035515826419804320770024586276619069543764150301960262905012066178400152546460178240551212429150623493516668269026474216385815077415271564462137772720071108260264716508622629386765986482790121227492444748087520794445919787515921168334142668657095626187675376196707273068897390311740341574293715649415485023739559421518669292180168449514952302502035317573137338227337827187915249961692240344080128091645435020441735178937629774313054792569336651702276556352112809517061652650039313342518323569431604323582223297955841373194257954474014548146405016157358757753009980895086416832367714923861403866771826935276102329627255254268371884372141326218390357422517565937206697068846580163795427677256211649904637475710765932526443661870708723800913614854461875314389349816847364433128025098851980574821270768262199633852185233763715930407942079263750124586983695006005852334840317237642073960448721592687248612359340247942255732346957748839659391140983090840761111688864796919222064522099481029591209907236002121099517714112534817625905226416337738122278634862981492117434730315747026236014750657467129768150525905278876740500950952239722762864402663811986584151361332406522928637869818157150375285454678393653407254066860247515733448232989194914637010151527311729307511346519315574021786695813229466348058234573801149812466157700091807072109011121732281941054516000050349253399261936614938896682176444599482038014325183868903601062340939165646614073368385635078895833890459980037778067910244999806313419342126487863299642891353458012052698263036158243185672077085914129002715662367741170863994386420858630639389710657391645392692224309480218667700140427702369757312439243094534319303357869580742821986412886596180779231579711825825260308698478720886155678063594242447932437263907681954269732072368955557355996625586973655095484901149701212699991072722253492483047741754345253379851833298570253637648379498459323822233214644523556663865046259099312601464661529818998203053861635255193273012484107793158361871129834974152048657040266955419038316360726721379310482849015495955185142906196237651646931968220594967477765745032001474797983315012878487990835704398463141248799772817460677443208485205655994415346776786411044377908977119613933694811158298120068740430760928988029177402075366424802507018944772955760338390375440812129490735692145385295656688733502817020530459503840216669360498316591145684807649869686130527408596675882535764593190654324649323390336544330226262954635996845467372931392315806935604745379014809556646879011192830331280667678488273485412262103742950992625923622030390492059407925723130559485821324472809095442911165429211427961390615708640613188669332656094081782349135873157572488647207927676806812710258751080995842727929911303166196249823943314479343851292393712278804323356094073654969317303712595294682158160329557961856834899164800057959571178862939729761477545559190776466945818012871894755619765167082193561819685541848008090587089003819113427111687829193207864946204286011796826491977073403391410914422664180475207515918857277402137953218324926394852556088017914353717118865770016959392501149777801682624032786972700852846060491979376231147824225025211990438770692118205508669276042207167251098842696410967081802316454975604080911817554322243753067536623593932216072792835544917679000981469211318800588282557388490038861316762936219922128608986035874645200918479553628254887721282934391541521296726070486270735377498077835195019532080929829720096117171862018360785063401607427113530779758267970425265407895936826695880811850717382338889020270420060427536960871153026347988692353419593202322853740002370608971914134372017287439892030616037028823239736283834989903258152048588759882672191719517592503034585454396700729918415654957596540331656911529589668952156137735619352252637515111993715022009249836808174450989936459792318666578525699140010634246428092879989507395997877614250511280661058292615963870598281085837785187500579464516114425558710163526452746578568180766597976348227196381975834578048670494859088997809238779101454984559514334037397210348671561219196000761335390036763499463520252444555493872560360803517994902052251237638818558186967660166385394279821136324553952062265172515649335363891878586808356208131114794335523444293062256491271708539530386668173212552942593352667444173826641067753680454158064756656275980486798876810167814692522672249199915420813324217417777829704357575931587810197619803148574673571949768175678610939504305289920228923807984334410862191397595798971564374997846320589304698538656713406172528266835173625148835648773784195910820421733896763792724852896442293034791940806785658742111746119455100081762746476670277906136238438454405857545705167877391365352881123332241249294119138930943052272587878456886127147837763410620428695167610659826676606882837198544330609534288508174979167925622722769552944388190371577602175072237611708024353389686617100759346994641696825073022149313708372605550388254366935498899410145995514952227050012214513005355225422650745532848806515307531212995085937165707837057994475864279882212838662092929338039803268875250624189002784588248685327444123320074814161636168099847007633553805376971909445671866956289195102704805107061843787674261142436403551989719274328380912043096161323902376202287538550465040235732003520337535187385056251285748098650467534921990686648159785310657300100653122642806943440950382305866187547172768028907198023652718349404312546321935316405719876377011712166931399655183146829331260481572956496029556948406432424479098344498559984048612347222742310649812151216433326966454449992786764503173498497881848026104238577076339590496849636711619074255532655987044731991513763069350461488704700277098413740017541094272905199682749921644881260358614037951123792922029181370541651973174553594485063404507116291439274512827734531636625172497336751222399156694128779478112014839116637957352191086922785188655196522789760925547523305437331680447647064893421500511413003897525842418353069452952715245859111266874518369760857051892276504346357736835670630104574100230227266627631954720331983851317060556833104267564197056677350722487678668654861799953100147624148182566456593752188115332463338289924465476027112855838629851437642599117590097355743041888595696548918366576390038163663711856666035275268999708647605886560175792461542006857278722178602199453549452889266118945127680693660613490868464199454440219212304584929765352963582343920595252584652566378925709945550682036270075237906138972018045600351131675229328201863664363376733287161282861303476816330497211092472384509040458652647321535572483037706445462177059206965354542837345277163746717875405514383631785483999814256584102063189699664667130296490982808805354597998804678673224641657478745911472085897753642440668887812969500547785202508981075849179253473029735417136643549585566508728113840099792083781676077211233793457874108012177570954295685217122379548038809471297649150082648488549035511625638282100214109209254711979807031054873237427027447514996293759544318379274227229592272987056345380228719389863139120433440807603911807676830943392147105079860863272954803714156479206997911614785349651295021140735385622009649305036635565745516764549428043000831104395910309121344877435967452745139966006770184900831224653868367714205371098595218228373800105155140145967137054691290082447810582269909073143019316937824015440501588012024820944422244360902640710304312178466681693843275352183363612672117846068529589666358541114008725601413539794649756863747042755275162956871240583310557453832495638943628677773035608583537058156794385053584388382487703308112786625583565057214903687660019440037415650695393180884326300843625434026771465300150099591771004980480649783065078254883743089517457005961038349901773194678363855023763877535915221889492646100511741821978604346057301662217186114934311338257960829057325706426420576307693692817486171599627722136995048481259992077047205736621032045386642209444978322423946796575565398849603411496099372656386178530792776745063056689686367746657788065700599665066607673410497008322596295179725054442562271565337832490369141469563874549480956441669350208720026809802478757031747784878985282423610143613764205487164158477568756679368532340943134191623969352664961017003067119251198807940618572445887660664050603322653054575315928299797703470050809560978367835798564283122536995333636603140765487189711683805408020679441505409783556851262664179906673986474637503712956176515832335381498096743494174671935129223970849347592435430545325883433766648029003135753729839654928896342353921043558821660428049569803129433076276311862140908920676464212990085689331799873429160864601935438010560790324261109000930944795573193919113761274920496508248751858656507377523409233913942769628490041976835408140274920382221275076903860614791912227480852270878794774711650287465086387601459645112845308658763905422083938918813243991017827862490724736502800196761645664480011429398068769517139247992815642765813331273790410093328398164526831867608752106706167473283798122631290214463946662960069375101900215162236255075592866840204682897589341914093234836240266640584437833879277868502773222736150511563470583461314622941539548603569844868156653245592661024904101708220109222324088633086067057750351003398276826049710736780890152953722087423954328038730859993060420118472402212167332163326872218286400433858272403045109061017644771927030303130943553047433440024232355066563294791242831829594198645947655383685895594285026467250323853087467696236142498495438409297905115498364747758248968416298443899166914118957625300514604806116857657824548630399025649664455701855981792419883379178205129360939510538737466812238745820803645365734070459523897336251263718965130067368738397203223552840552981069141709809627810303939895953726296555089711085057917275898186184803822498228840327525065978875484613266190544710065163586596596424979510292260211505394732795079801811404024410334176146260229962600736161907477574107680964492612356611855569686578497812393996773208820052152024768196201043068072081549838877629003497120031373430946982295594937426255528525073135174698864324338166576752980130464469448836004586226950265865394180216645048252292729350812968738859079217922039972319385985101968077299061597337648839832909170584521983653359781870855690571688885360910316315244923231638167373008271547141079141451171370672721201602129479542957461211976443319177798303335816661800181315408527655580255012328068449014349851233784485878527668340166762436407692466178713961490806848878594242584042870607672808002888225631088452291675608581833505379399177265733458489726863816836651562586304616908201720921842980849147962796429106291035169852756930924630325246236051103475962118635534084412855946388926662929772799373579045250329669556187402623653883968582552551626444298592306772119478374977127532773692052905445486923159399367598109388620399492744819887236208789117054547784706838913968794965856611666923815223287431423478750276804708649454443026864912118036117085613652153822806878191000147073629113114837627012047772775989333378335463091184138977004077772458930796585598585326391055869613578670881007209523950461444606558104483790624851308550952238391493420183407675273354687459796756894371623423251058673816238750604045755107655847298599368389130007981003501449998640896184042662735436723353660563686327457219496112234852535666202199016241593735477552054778002594107257057166778296540214146818036258529823308950837136596731031710945833336746684669219567014198389447433045931068682259543101587318860782522714258849334811597950626084451695157778991748998967516759939799085651101485571796659447131879569428319284080299134629412570408829317125680438816246764958745547367574846037438218910679472188873912364089591312462159168513647831063363883455395637644214512430482840388766311296602786198601282037599024810390614349818749946195852894766076226859533900382236680514012106191707469215336420673569194013637043386940326439704055636453111875020249619730542952718347240496843080679374918230461383706238679264191758553878964716473245185853076294078492212018754648164669666726842183985264691155516034466944297954283881787058361200674069794698578884074463460533114895558903516013690297252801285469356190481921867840595455389250681088833565659243147153803401066605103201278042181708602094447955954586197055966978877860640750057275652163338235958474944570932538409345864235401602544578411784951077728973726524904132516133536577159569793992010259357070735456658838870832457901245270137186003550883845464970587190775563567347755349879096326997915898696120786372991952029161700049879681600672819151144283726083326748482560106966105810502934631451320332799809052181882143418357041099762341328291295151472797845320166219902328655723809410474065307581004957119251442003386563156461081486879997858718620540509151943819518260048239542611351721762723129003413087403392154783294753872797138135093543760889512995058069265261103750066271233426110743576643308289176327927487596947551316683640297135547250485365945539967457467929842730365492126436482205313969250167928889627347338600704721081529962627702360765987881040252415454660158357000461469908044333976457261892697606549870891870643336957969050520951526915638372609612327762852105272777788684506119021525555669080820671200872706064224243994974947904264864946088042745340013512392291126101481855011223638541489907570956468554920666976543786074416389378635269686942884909483558549361932743905246095176930535466993700943784585920711954417821135883727184006009836615734845434562472895080575860066108114130593934685370503606200657414397474866705035167080843390668200875571866307549013162491938200156803380636889041125906849098724138879731749664936228602025953622556427327859280072683222449759063723880686373693573247218230169071075101738475493871621951925795559411814611294903819145035880763258473973249294679757264853950989461265220001812715242502447049749075080852655667107623761191570128896267718917951085868600970257990691592288551457482776665707120241029865605462581125467827438498088113988692746465566015287071429969068614854351365886380074653047329522033589104129685423777622395499616514829302356503479253522652229050423624541528312389581751326692543523176169244874887877408192657687238489015274029710381766620225992803860679668850471148330439729707278865395040594058939265043136922172495176523383331534783934173217923826516547284840391101626337233528319223277843865408920967222631526617925115553891102147885666565929048393472025150752940224878939069835748662769212703173621392742751527677499420765288918089075294712493507720872728463491126382789519193610074647004283316399073599410299824081975605503472286436552635541421018032023171721157878968945979849981361356380983422058398598482312046811987157304117364116076437924420310615786962085553695208374043418937249265684018932342839212191977691246942122058118933242163516449765988420104909948292596076876844604000524217223547383283521951366373261546543818323141039334208033384974099255133944491201443463632896500180824311786127283596236686645424679806133408774059002012848404304654332088912380782858326176190950563034893455279207019781980232047320075623615440732345469638948926642800312532995483370609074249298419860855664235568858204686635643877016677993614005954331322514956794468857842183515900980474889657229828061347236013084503985352886055693987373487077466999226893697305273945727100053343218339401220089399409418331611983961811504448062802215128566373539413905055182401992613822299241668969823548719099642413440959827640441348167323722333979590453464912538287881246154016054793481667011921597116391146865961090073074302338728034916272761378287566834712186520661483495759482838432176380327628812023636148128497748256930290368653346681119142413840728738042337926907907102258999612500475340175051730340343515041801270654854817313084110293577066569894750466506609663603061644223619055070961218329243488647615108549247701494672976906656811037353406247039440634731978227776558843341634952218670498615568737779171836957460574929927747796648325921037216441330816423072717081433627039387988310733365755767830420498622446289951750867488704435952870345691837277098640511433910688599075543789748875627012794003474351886232674287671361772827763764456212557406558825302632192437333756319959907447015021733522908623348618901143237307348679666440694875179026329200882554669303508462196547047234190485998923947515501043370385885474034458965657646962996122717265211571251856614741736275610108347459440614701583474906974390692013176402232755908812695994405768704335307329661558659361180028658651340894273932478341249433126361800249043124263993295528294977764487978779992394737647639198013305384924953771464760370372744925676489912874501696456653789738426397615164093305053296470517890324535623435028223426067648301754769328536488164637023466583548417774542024036859504668739913501344952155842549126387710502587856944212680091035019354978487415018765855724937432412778791640574170172112174023406374559532436933289151988957924920425585632240452004213833346591048866065287822281018675781139704312520033516505602868844882672566556152814167382909759478626536990615188976580610614892099444201746219654780782713946731727632676189139398122882325756736615592567759274736241747480221186797604164722774756048840552954018483009693209890499586587672210058254735491246082344769961583106299083860763998871719655120188595949283256255141893766545942842949794349231440342515470039162074397843172328277720182799753791187676966069779244081098850567766031493647652686661191567340708325484929094160056795663197812850800938487965136728316199086376053384594119603833642007859184729207531211932132461466120691741429582106939045905817258842433904833848874295136687659656713280366020332124157824827711780297510649803986067528912914926932126961821252517730269031468659400224412585829760238453077650456472584871957149071407997105532164347307536145471047661900125833977311677871438658406225877436731925283105375489865832318135206325752271399215323657554144661667391805991342195031632083876117765115502890522804950396503467191096105442995658143588928708470966041210424561856356006999515879573291854401736786730636305164010324392969617884484528882269362571327151740528690690290649005803089389159940131216535171235775100991202920969777964054967682220028611871014673671202079209129058814994171673176027267366371657768689210973291240858879616371517002220528410422345327791913310312702400412178757847617447691266732420263738063108854262946296077288556614656947040966380514598881398288841889480212403545628144773876210225528801305735403279431998409967389960093086322260715814767292913720250777833378480748274799567766032770348543173093292452437120751390216803170559601156949820052144952493826898962108591057878873217139257863870693739331285479853245821655139572296560809156426219256158332261122489873827380470769496019052098128636526660967878220480317106653570106769479451734150936554259005058776473730639786283048846439004247700915769216966763369434056034527756786012971203551883202865001404587723336146855977289054505326506313879917932826676293043242130659501804028347183526869320479469261819341729330500211627866650594318767345637402872221977027000841964059394589840527851770019647988917489013308407392342587404615864876402575137893396661572290641682633499563486292530562174645981917330058145302755315208926103147744352694721391456505994296044657923933289472221954267511924265591283578772026992068498120312080107632513677322405783626862053105650090585085074573238068133314174647686232652759101067688224631112199956536375938151019324104292457035828765856001623548134245980915987192333098657720393022907439818221585451941257329908452058119260869799695837222597448178072615010777744538852441398509769405410798267689682042437808888089909020303123236368719175200267713762260076312854777029861573846282144234264019796357484181783998974867847676324671235393109266948672238305254296412683152087251755269181217480220535738840647606497356770109109724141682515342673329037230066440250039516063346440112048485123038155905481938718606689608293119203027496996582521572898855859339056722139940456201844203623774335600417504496704876969342604000693170126339566114589694713006405281247060253954142248767012891866352878204424685060209260323958029285728678505804881425455349304744528760297170040218780421034203564264257902452680156118566472430113559899422716847723658336191371758590701771550049908279453983186575620505562155014270409980930987642048954049427809848878171460364631600771834533612801504335286029960758366334127706858192855761339983108342683720804610479898130385852238214321292379870444949537324304097550214374384399477950030903754480204053131050373396898900003322186124041370533889318722575734628205847355147899799327945312219805853835723566634384314645200662784514848886251392153609741496887184250755466236335908773872568892877319522243442488957139783512703209755474945597413754142654999728872526395397746771659455756155573486581498598403432087489671935465952603603567408322955504258070247995832067829538208349617616199365770173614792533247158741975998457331894216459364051043831078458824563385147109920039572225641460794044958697416361876717244846253062225599919336068616695442618223026779843933859549135603106067008793629139951818198218863353022187254164165253524111650941983641369881754328734354280782053868214756581151695730758446277327396309618096850484160300362241375143069075636464977588949857572260959964532908306583915770946905475996316262151070208943138260926451155997424725287136643155146869697481710963230414430847685441721728809101208607619188928543481527220918176225437234177055352771091019976662919489760208091415181120289087771335414845281493116266140658929781601675822510834440681028708400632864176626449116379590297697056197581656133413357811213499830228417685098175126068394535909200445315680965275128073517894595169402314786679979986304826589071902311372700191925186734792617618973952449272423494688759672889476239903497165652181877059399192352396186153282155497053949549517021620925631072947611551561220600955495945740088483325375782330970842993093941493972872701844897152875785742269962606836340349696306860925361153495640689431704307359677277619646160124212688895333014678238504893108497799977258229833778841756929740021683850693196807468125754724747121153706120982237770962564968270322041544157784223549741064817631501702147673114947323103357335090364774548799406993996159980846251192377329962563587139132369545862486719078651368347987034693620555568151225071407998398149201865514514514113009783188101010591257217191172010131851365369757950028948334800527933382388348142998508152527617517588328027200627194361115765175580361659953139059216197227577698472875031122226362863670602311333646423159488258665189634898494842222046639830335340897802772621570929529639119431557515929881392678982663380068765409028736363806177174623076150312962438361733836078092916205313450286555495909244912082729923870216422864378602265483538450861930716382250130804544454820061995410728182955469000689152610517030733374374974397201505222849898209099509481763555468595371396314463447134621949094236910972867512758097205725753029363807001084107992809108305801013778455071479234279254298428798809933171141594865822041815759675978243788410118214668801349735942115834926802384910363961119493523664484105204032003873691232278492489713890319532897244689120252147830482691744464832838814508992864689813421504517873304214965121270343431813482432695912060496350438267535359996032973330704972697550037622600187175513188178798651463449922119651212233690108368876383764579221509875358576779874263335722401673786505894358273279952267851384184738142793523431623048864635204879062317401351598944757383633571099770346334550871105084328661274651329058158119333000839220713528366530661818123429863198823718689584435378536502608213914599577224148417324610033954012069932496431978724745960184625991471976820807747009134139310431001235251821526693553227914813980835069958885995821487204800891251978691802739648936302830164657661756989465598783702589032459444464580030327602968601664596663682410489395608375106608916583431363902744730442015801182411143274142901516355376903530530977198329877342490355688092875093254783472064448779669474313063301773091417209141190020729016076630084144683828950746929653736663350091633471899344742876001343430864749748085467553576242713667890280867516436494336799393435291580153364154527452541741530380513016442954674374049761413347424151502809940266282917745913223481049760588531917802711341563337044276709241457208023395310323864777396863145452947791922040825246034180440987355037092940221640929412055162180206606377359555824008890318572753293826180409127914410018264941362110631678649017838276412198897178123019752908432412468709284035780610264479886655053963382012177723439629030860215384172523690518709053033265681502458464979420976666458560262052260666020303611755045456804039308866117057927481678222184297880171395478797441816850690264624663366684624567924410522110608401468984545487946341218711893254845782713476997268839289131980330624834753818526830266595926242068700329980598657516659913861800739570165444315861488813985597780707456664310499889656901370617990407161730581389425422921312061297644827011157138513412547148819976797777718630025486800617943222809058338978308419881675433631649892029279991440182443546035697655854218065958113252153097553300897360273495294139484191635293333433105724090386545087627954480348772453326084415206766431361544219972678070555344900700495646871555363173718180860149458342068613235301246775128541469395500518323200153336444923662204164192765166648427619098482588023903137669143044109147958075336562748141241132944409010142002835243484085401091023256516604111112387674506517987026485595946616712631437019804990435818660076383520223608574385395461512848322766040646765288442036981186836015250546766324139116218440764154874327413361971057568260699470321776893747344682079360272456481235452690056200948807126240657319607139356500209567495261752089537063169474239416997576001044095520037631546309977746719878342296032975245028745082199568636968228800771359602340403327002709055398292361784632302178663244229715769983264500154826496818456863609526642329556174096885681137406168685857371047295782107365367344724523944448846980995685493377976960185762437172490455133851197313204130160430411509843636107886067232823980352118999727038092868053858016643323968463296732019553462454920791993272259956587825224221134080276661141218575647338503794480592409286292159093570500185266883205589315669722319448474209008178921419809146226721312846736227542244850043655885437170695264026995643870113701878860843913509031297029914812355528431875681662953098271248413398032086504016902608352151803311027535420391838593042484553487195235978949408246532547958141860093809552483276527818226552288519889285669306295446848058376809973100941639744120561422404870055414490630392757731192740797088049435943591378264479931897464221222022534164778968028487300815392786268886821756943107668945171212546992786314408422116681873282159788942386522462148073789257967448690034392109742315520072251016525018536787779375603468126614949250692165783419708968949120739305596587313336639724706837052763023511611389701959630058963150154980087708663961285775248863568570760957111049314495795204898111238816135816722347400490249188207365051419847649961138709817291709211810371205899164461534737056053463974754322163784004203013233522780274649234294289305512093548525677047694578627585339357174739658411665976690565432321032366936724771004042087195657225809207390848765598856424235932694950222667916900606655127292016193103065519897121979492982386520826135448071871457058139172466419938586889329865478964784005316944366077311837849826732629074341989822282425934043649105645666367843711934408462932832447743463033622525533585697922510818204633450899624213878184508929517879819230843419567796351041307874629719197399311082012861578252043651630224074416961105008968318818825497019678440690804419145691433601960015487735255088741445908551150946486949490438099119506694547640414638567096089203538662097839742695749125041240648969654049196606583109033693354973391569709749737080856593325734764412000768146495744242160370084218627680942392585457656399275399373780957916518106796639523475485430461854670748722823704516689389978423600318284739996642695560741188707095269048956225935962334381862813760357818862228601271889265494644213249473283264828255529523280340090880446063413197991892013933825618312422118677174971695390900815614178171247446850202407470231705961316364444436629949946701654429931085634853131773754894399827056345764577152162700940864863799691933934381172818088882821660663591415273409430287538517006378958927938985841752033961155902699708528333224461153339090527949840900578140081315831856406714722628564512198290009745747518096951508859837165063340714317270328926228588913944504777066576077372090546806122826465232522503772573000270682026515434344008091821772773460304178483629256185996404629316536438945177699928125810739987056908138523062954390578260375656978431725063137586170421789711519264392512864946417117737880184531050461043695976198818390409100866115340168329442692941216154747202543694465637183037485349845139777617737512825499890938218400568960240009500554448489266131017744490051728696675767297363523707132555962198415134209636352567260259197853965954553624139089392652943035339223556772530952765433563022243126345145369171268206602481439242928297135618686469970060935095399778364921879851694420319754791561171712248174663208168098807724005564698733389147029806979380828874767395670768786897830564836319313476999834655374379049502816027472859315673384492750927553371275698305011805246599826861191784198958813196410485129317398787623766295985723062151756544634799436617476885326658849234311840685817142789001863978552033701925083412555965830721558820001701303188097860863389498716510734282717165448319418922151825821517102657592878672331895709628328132309476841482969462944715877485719744177912550538880300374989681732677653426597813615961875759293147871215794000054324824422822874191861194443931303665394459083657619122152036483053494358177253114082584766130459232373923318028113045352222363150738636870197639574477303983434291038333219132465497220711651870908092636587188642747496206095086257954821219385300509874793655921813394148523330665617721233010429031472078667761348056721397785275375685331506435441106336217210982341935629870102442680072881137286227959884008195992182282329557265560168776206297833928232271338984391606736545085308894368769750104228515236266426333866148354244201694905313258172347397295283508524669162475220108556848945793536124852292297851517534781650840719097675978449829055620121657084933024138457863436133461992432413801052899534017755596829178682686184293280217139830346151277608079842708497757224657249446074377318692800918367436755401614887132312820413241327734749980096842087325857920490726602232134749182893691831665052202274554688825663739137948660664978686408312672960243030626705286496333053947922480940371421164040776161900953033725348903000049479340560532381984078124841501326427507719869114476654610959197524084156071593552452789960318473025487013329496992739523870833923323638741078456890073277357096878675731443238632355214619949820648762148923589278455729454284348762161645594984381935827464514717796834101830952446554181377464503686395986437193203835007994328448307612232807235139602381159273498826647475537161077139487528511297761079059595089351545257602792062189711428914031223827560551869631856315450849349614908805863441618046706764574153886847450639607351139779806316930766200038720576667464542327769403096937865227361162047151003859953708491108948122108269324242683230400933282471085335194654448955167482186669906779238199550728634588673867566276767633678242570114197530087914580100016212264755791559469772977766913376755442121720813533984087033589858957882856465387864761955629157249983649462913663648996378657262227024456556735023621989744232193954871559059647317090624457092575048089277414183416209337540424905036993208147118212391895971568301687453380999704481033974281853794516406946090069032916434644442983093316155195860966840781935978715357057594034132290166660897039296119527182081549335031015894946787889431031602484342859503945818372261374573435959097401165127701512415343521196383129776008173362588361143527779202602729582475970880065811444972743573046066350080932385098526899950309684551852206019451236557600411724061282100788013313985242453039385790903266349075707366933454478220471271362614417776861080556047309351282272646037517718753335016434864958999247994043005028031843286558150733079139548878103919729351673401864841999790431135714956338654467351024723680465044407738599186064147677938072460322324002108947700465859747336902207423348007962413871087956344847634028588465810223932662801885874936337832684316303580653717473320436470412055577615255624424126058888236584009297095147802553757000342809866208436137480403506678328992135112344650574524454581501006835017588953788806985259049226843308521222522251793164853700953499420412585078416876553161141816935199730005813639004469599296668591104717817128208925775998591688202461986356245780521643639428981205304492183990437685423617783783179505143790343183096686895044594202565010468843738403811613458302628300146847113297140234072830114501657504436116605582679634590662916415033876979050796688374623503003043241028116123910423361451168323654206832290348773830122300397446960408124369295251722741317298538142697499473688735121716379280007660586276494848098127953052790139854421857499014051505472501218088480547396985440142104854669329745486738984626214517202218179020025098567921157553004852255794429852210865991533450618802243757230414771283544701599557469933388705470588704723058439729596376300867104160627257397489217672751831905090827181480263984812706982120219692679256886594652027385819911606592666865306636031818429358711799861117009161708980723647565902518038617271149941796487215777313033337747160930156034012148990873784460969889342107204577219848972703898022511631467997083169971095818305445767126174344195261118814095166913069587803046926270966796810275221345615888129098292835559582851650123738124611074621322816829712207435524757408562400081947293842572231937762092008992048496837279950875954479559588581986002363341553617712382335704870160094718094304179557605300590065609970455173112426686406645990448920321851876610314848367237111750622894335782322104078592646686711944401498110745217818081997449305736474323407890572068077566462098208395717500263208623148836546538286380451548902425563249537742924722747645214877083935702521039205121725129705974285201259912437691941266708538548359304684139157055308512000604073485934651676961103067048207526599294501387633403029541019960485558912131075411531234694204994170362822087248384797301466008442617511895515545684334070860268595503909236912874129197535718576897602250037561497882901186457528164509541920304717274284063638904698710263714977391782702079854399030397300408869380390922344219030312026507240954920686868227870986407856232645068532252092139589897446923229101159966836383029874876233826381024447754273133706925353544278563944448236925210382342601559443589735186806823675148667309400810954072912329068380923538276261031585931164222836389326369845822704506547230955095851513806241088568985331291842535090487169736177779191136561401621403424008848952840105110861772603864503399618442349919327671430002232434006030343339370744106549021711895609265673725231891420022619034243191753292005411203030119095579019756555903543426387027362344941309640966257605963203795885339637418420055931515424311448559531710701570016932014071243146669646484880712341052022378555488534931573792485275097012732690510610008831172343905235596884356768799539229329154158148581594431947852588823934704450030413676232411792266393421168546435016958799095802713998563925305383391699857641399272817628424546657894840581331532081978038155231705479220406540368560984264050585599777766327038514648544756439869245426001128171082212401768872690803239566517086510801020139687147318317530740650780718063111854217941873014161314235870227186813039072977653583177723775273916331471564932861030919338775801847868565925943520185652595466468343841206023155807607476421184474741234403387349420733162030300084325976716266360767779363597013169765417550923208828236984567936909606918894446860586924141763900619219717783854863817465239951001546693541659337821209565906335670295078979237096256121180660529106021565439608746050602851443644627562241694744339052431465806403157029355643243235466980297961599011461067060233332728941247999316985996518497240419845088965212850823596832733258750007763921695623361584173760527737581609334283912321019888901273975933995175330778668593908653574632816503902916464246795889291849324041582808053088789278458134126368416225550813756214272854228432980489717704062604357116014347294030984858220417376752249046026188558149367828353056743588966929660902659051317280508874982311141685083133702299085189650474016339695342253401650451196274704640088643935833986655400633933561323245234882621283078257563295940898203645037097061207690282033532876860802505112227668247053630505841070913632393760700112303688980547866848728570107176864136240403689600114189781743666424347171991495274516954269635606040870822950512245138964957341768510390110652164967666817061815381969524331583287563748629830540287550241309937021061179085902430492356964401498441718007839996626176195558542098569752912433460875439143518790384906846579703972791474862323450466552391272539168696669606220086639203254991965628503621558525852292235479338609965598884596702421527572352001443855023121196101917559176026849838483447385339758840284766278527066390688223821186550519600953319732073546328961964938233148268799822228829857147515931658041646521590061253164433651386781546539636952184393069861677682302070222908106679686341033541029079236871409365077191852750782232573875963078987130198953591028838098535813409334633807176434646711746809176270689722609558337443810853612002922603688311087695399467950830205098982891337428493645524332595056699256808277022730439891187164713716818972279756177758587734844571363038594974899433587680487952197906347146761645394603880189834243197738824220766863023986847656855557426882011861079534287759244620064310701413020969253239435137537212989297032886479735516355337094527052739697474659226984986862654977675062493358259008694541507985436086927196928862993864592797672532240810330351627920270695522206416182155129054731642992127666148191536774162643801699700531242994881262839439881329636812471158677806946764855757762819397770425965120755535624927190892509321059763423450387013556948485370262959640131503718767770077252144220738574425934081984102962653867923960009575563208085589552109661395062579758896541797212911393794982091549419926939348058779788639093328976566509644975180328726667469021297035034292546495945110468249906296817485940797211930278845138858468536342331514851645988558440915925764637316087967365744204958210390451065249437753531928503684140201774614700032836638666593489244902323282986442292777015756200949808886475739794816390063640323998707544081742556957678936672018591680689749233143968307620928890902913297490422153699694256825213631981190962171045416094919054649950697925343455159660344929281389271204683851616945530096929293920010330693509392161048450736739626851254078016338703172832324162962951461556913173722934823832870447973254283045808459714009388339493200756187312986798279135761394076523811708979097353936991676854347255912994421716608009110689695425431381429134432876499658236037569910020231020477514433783507744792153276926753955752203257264365092923391611929616570935925282408606535786502223619766109085065064739199373948613367437018490350944947920615242223272347188962028436159375476656435490118163539482851326095400861170184693633364049542321682647499144915242043761811418391029661101286967281707365769317454955721091269131188082423035012563100743023307837725979634431712790910446776863756098409630968733015655394282642155817820677175727292002168671770281527480197720889647650779587347468542092226450867058950806152920633085171942032995749536446173984397387515632281861345579523452746716877960102815316622571666769444623544526338038557068794934935263419369288664747475115182989366249778447265793625639917914656753724816735201618864461578502637917513926436273629947431110332138852876427078298832223121722400612279920902188201537209812616976582027163158242077933178409403976767702285469533176170012611007925289901647510095848911363749487566381367506552782143818212666055838523843943308737498752898030957204898451369675544342495602200116186541641974831140182303202784017150924885722226537034525883990290687334981796826849269267765497286751108363736162513919182576806477982241236365972113327687881666400616172832737074964125792230399127399024326503979638153997263066244806456927684761092099954866289185880828528609216498959387375916181354803892685605487413992848064367423271973525605304048084852334902161893329580478419857575542460327942427223054056258240791684677925538460600384281709673719374444378607018983332321893411672222630530143465808153359419489513210554278279936609242879726405653844338152316561192371307150503669387854772962603624327503829942364855259052188040547118588906089195645931248874098708208744559668126897132761257570534996117568696479042137858635273488879372286546980576390631213110793883230513345173401143435508386415930742917509602709049177273377928401345677669098724944143844417799119684927460438177584010986959032332057369751539816946745138515345123550660691624871996466131077244768726768261356393838984402417156170167332181044995468635283353767108429219154412453151014212219068660871082350631825585404365816848161212337451136491263219208129420544956496164449999461718155382225719411884775418313298997207319001788358480339718966096486146540479903437331867523422697111237311605810066834850794622860043303815313167315405008056213419539780599710667309742875117139388211723575793069169887963013941453960417905324764474877751431827669213389859251833836197177957361885633267005634715573140434336656339448262865698298481851928892656111718219520067445319054262115687023361714836403086824078976573208311450594751056544745845235297192603592321068291984559642223038517858576659747491507360102567985258507897884076595832481504962010495228921757123797039830001571989039571039488779728643238574136634931252895272419243544053590205394603788216164386814102004562297032462492757435143844650811956700899653042502560277188602030383780218812215767132248385878424523099948732607409974249900123757260439961633235672892827565835163885568967877777072112579470659790875003500887395915788579645628647908208727714607016754047955825758099040137597768588689533299073621316978799708080669237595925067623050789334543588339851664469977928027930149827077904365417279958067518425447508126014315670313482470950385518770123335282481000282699420493753304379678005947025057265684775741188141138141172319671977605781047332207075985303242471834697764688617070308272455403657175904418417708144310875424066816150284691730594084034170029432969794245357841550681585303810941637013234167868213700365066531089256531414924914767871466946807977129854107536497763787010546932552628271937948244968742160390956820460145995635409288869687545303474089669966800268525263870480846535279217771191574170499723655553422330649957664903300557288731435950482623182889744433163849380179729214213279449294869122910966592247589021582917413761138481076712988241304674233764284127332217301520947816906875003947988031497981729917647678207797088441423641389739526886016356327002982148734524325098148146268198241277851381949432382686770610952450849865815336950527148207311005547405918196698134780625708491270489249937361364563860997257513979092561013867238436337573097867040569305194958136871987527604994662082994666125891398593356193227807603559985392284073005654060660039232514501718049006777923463867627836870068961053683573863267638032171004117069160104895881246796209342197174530068656803949820051149483277534154427408432552168208922728291577671999867146902532398889259257321298783412621725145899356902218818368048155317290449439812584656804200978669856742385691407476574390970588426173419897466690197372402901186152017400876621079319197164193183747500653733688375526550483328538708041653561491860537391622620897592407770313883437722020699760874682540918652545135686379898437319584982157895202554117963025377473460722027477631645477652585197143285775648616331517818274427257081077791754253816170374927576601609033468525216045261148764041318842241248904016349658264965397565252717696508696570922846926925209515342070810055501101258111878943835077654427379337721153067199145522843465076489113127311356173374866349016657544463764926752004758401601946132159224152997089809987168678286619976473661887862480476217342506419467055905288284278648817886567935304545994153195191695611965697795516251478337197108507412691190733173748561774093583100581852254854414410964046479660022991688092286650188080886225997999232619299949082381253510622446949182775928397847053867356466116885149192453943083897729980788145359383435424418356235150445947057605129932054560973387883812915783354561551710490534601764756515769359705794589947087054717359481334757526873905521848339663100095925679335965402952465454484959704899281218675915483793927174855808992613658898333180569881330268590201092766639526167416908300065147422461664163920930767205635975266214510116789457266562238500722711299100688222178284804703988150172315826467235549061488615407237972100665959355592608352058617918505316079768345720119910814690258168705208758862051950474200374125127164409857541222498457071494005230405142314745665227040075184087800434711085169338510875686282251256564117002227525734591065078149438192550483758950643221117470514505805554780177157428030451840670415653354401547566991757979756036646945575174950255016666485894677159072214368543750199112539012423924855627455579712904124406464201509365022107026198082845881272164168443787398804767307099330802223975427659095056540367284483209654589614766708711679341753761323144081984567492958648442712615598992738327609911244951734588877310539589918276742826316898188050569283625189670678289779446514585456516184800108081241373464751156326157277092019810131197459934584308869999306804470592678370114020128636236719145328538564004442575214768383259952325789422483655072849720215726482986974735759268801951598197568256565383871025220702593482911096794668425680970124641530498692824701024489858009115486776950900364229850100888585530508056613915977984116795345715467054231455992651535031907778161741788279272167709279259760959185556938901882506142351456762460708820152040308236197520951986471115510917562668377569478247801393401216522338750425937936467700256611915714899134641637464734693825073641265424815299460155876472454027763532740892941812509449916670658229236577983041763236963413256895370719496567905261048968028220227068060634247052607197080803736414040300065641688230339626087649870951768035779186895596858710401382388490789082401647435483571522857026167307362804762082890415177597099248928861901125307615684909158196058905014648445652614153962192863329443605648895908284703951782711467220707158359820495465026327677921837142063283784989709294465605875411553412326566675526538921143881179092202276919621806816158405746839171068917160304794131860885198970132688109874751534555342146321128395718835224305924964799217542490200237103455404347654472234541935568619934746001812541054299871621938386351398472526473188534979259807939984988262417255940534764088721957216425164850849218135887396418371252391278510204263759800055680073937756424541125719670773342683154667727655048702092107420541928490811218241610653660395923285650328420680702222518026190402365635516352376356298916546162408534181475131825653632936399653841479742386388482695632562301830524871171537213728494621322751869272937021493311113170891021694185758558014287953097416213244861618452527492821511285856666606637231896974939980809487215573287076515080717448554957680399081081352305503167456527767843077510858373580544865920101695671465177854534243218885361598932835878098213446812514412313825212627352562963649307974562148145454623178192950487255051034621883459514992129810920892741766866906510160015626483152406423148346206894650800731770526826331993552924652149071433395386316445516309837601582953021886856175324292449194685331065833977127681937914571243601888528360377665647737649697159740810622662028852196058664870212815556203652652903834196911627300430804066429444357720228595995816837372181868503347837155887973880083149220059988744957206136229590556894394518206208302788739475523966603804416744871949086472455899649944240379815027799086341012622612633624117130334233383632503025732457484393017044060666816411921390293065965193852909000212697944596909306773134528860508016617353161673728856540384399458420102915785590247329775870740623613871736093154503876715443129436010322288229895446614640209272155688078489958328629275224122149753358365123397276528463979518403781607047828164065467306139906942376725653687110264958766273803232762703086930044272262068844882393929698644362815284638445038587007685986998800188297397049165508512806188223792729236453648059806163476580226440739909167229774245830210052337082269731963601266258394848377665870364050639412498832316639472188631781697887104793997749198381907042868210278904238314982753919459887326421967729385971123831022828147552088454602997871167549787458360480489598443673471544004944617122915199853134738999723713918478091934166096800708547207373684579067821898042511390059462533250226437287132540593394479180694374425630544359185571741168193612412840820278705363310417227038407137719077023240128020582761034506684528542726005758069111673910322017156470929613612029695002418510893914037011554871046526316420231041109417840819103962546499165554152335340069757965756200296057608044489312662613280609474901586929291807993835616975434953796816351737034294571983852584881506059923244953047133381586306764629680931844307839122735342250417725013592262276835765485585720898115238392959916856785256029795736274380097679364156483878318691140805169034615761642304168319760233742274838117041042707183620566683521860434339101899568077745770185662961717292576933614241964419035241314059267766908142472547735661708063311665747984406120161344313668475888120996799021982033644053773834908055512733552785320025922962516942969766362267270236897352886164109580209042176350866209550034612704378343907779797768067474491538984493329380885223856939017938149109228321103918215053867543052965522995387478531501045971104071109171480982991905642803951644148727402269703816911688415436063539572755414522520337243588197818334704218458968890475295081336745698094153732485902505836451806753804938807284266430432105255808847996503088214992493557130613538976595355545563690645602587611387183579110694116138022352468717825526628437180808540786065840960971764193111966585411747879876025931534635905221840031106529135498573559064254695435811211162717977828354919508034016246361563784922195396585953888434406530019092593010374002398549745347943808976809656981611467550671250110305036516870199455633779786160449238576610991761788804268590087196288136309890187800118633237096295945779068348068744975798685869378157371422541190791574868584977450351609178345181446250797597717961383792134458142857858336059278570545172966256307365149079424131000329601016984917427869447327503128184783407835982385890523609660739788427178876722771406685808661225490805015374556077732067631062895546494807372252305129431459147841795556283294886723649803777423745326201769676346775786709487363716410043492070313885863969123696245240556434662259204418099704693029038263362460497269012097806279433333747671141198934330576446504711305547567025445008121452037484239368880522587103439895725610057933991023635448571140790848135962452061787737118934413131452678313644330053932618196865304757997177474370351795727038271006441471752754755609955465711445154244625096624317765893190608192140027550158003333515492672559019815703003262817096944264451717147301135666760367770259806445135945206245389873918994799915397859077888919499028362808230363498910568135975406257366567313450588826292486652971494048648757404329381001438852499226234865824217873460928758320281275363744964747593464934403032024766455467909054413226212912659690410160562736077458639791528307320987121224793787420148459062277342650924513494560126337246971863724252988160819705882885001932291444737573154665739798210415707791036129813832317406905303100768666122543541824002418044222385490670327665257168029109183061459210192772339849226933380084421702969429645956574152042173105695561091180980240946689243165975402272552659669307969599887558316782400920146096734103182745069819162831430708461803097886141380804225652979168047516805781364544043428529867180364922767208782630752617843883183087643881748950280864326843794685230822572628041138867605839352322155549018316918311427388517001485383283203218874946805357046511315353334255409012973186643708522157644635278158538842923024789600815659471057853878651797049405019895009841769035148479851396252923501239155559485440270323702402499430361447615439407984408382606783401977629591459993831381600900311726172951665396621779613589022522446471745438900104220824446381479353504475342439711036391340728926073215435338244415182698809551305714749789502608947711172604384597993952725194025142941518842577584064173692178988295668956661532637457997964518234637132452020854989404689184239059049286228917256565792966271795991914773251569363158066641322729383955660799817790720544858018746519752765860909409327151066500802444583751739174731193842923084407532651548568261738088118004265686134412284852959450743501503708214076382561003685774436631654883164663514018487814008544800812885632307812671469538396734995637879453778887902395040253615299988439752543089340958641983495641391801139163172773056941519628275796770225362480566589136117626213550523295348885000572611922545872167031346416341769286175277934754897322406137515076620472594265321294207199294387564577246965859861245517209362230857313854972961251189453279171730454983419699953681925765055147975238611502015098538253620617075392971266358452818419191971929320538051315004432399341996602375507010736677795417011282840579259870317550179498438138012896959956588692647272975609988750756121686185637006573332752752977952452139669447215487111298203734072458443829761778838386840898333556687951975194923505838305964100189209615380991991359447372550026762538530680236370900815574685393800954650511195941325057614455490868022442120152487881179848705921088202995676181079773829940942821492137710579936155845044394605498626654864352283870179065963101340147426493071214364857514445639854106672412411314554041637966553166264635683595338731116996664548716369606227066271099821132227526589965790097182498515841306780319987740999547804804390416702968179711425264121831469362996528939980885603788106922445765676816357031443027421271927080534794501385592313793589291979883347677409285307547613992756835046276333184512883516454739141083180796432651512340219397490577267802814812389590579893751967719006037985007792948975073039275582047030286551658552857285525929112107362618964936788211070498856995226286144170653757649149144577574786012118472039182062284540431887923006048740247680532638810488141470246648412199828043280465154044519519604063199382388319020992333424030569393018013112016049207423013696693978913446553073650720093102378126646588302294223430016019038488516798040152777979252947946881517649484035823977710635166008498081758011663058262988991564483496789401566954309765417934455437113489056649680799317655327167316730106542203413608755860177880893440244241324561373319531294470767271629800940613478082416875148002825831478601773679817615984646785459866411318117190488956095470317998265910650777463475905322127115055806028178640693054429999627684167250764563575876232114420305123480378852207797630848580708649342239306688511454588381193694613433616561658119909393689321955120907984035773823760072840623026606297691115137126842758727747606208948354433453533385566040717435091813362091625822268218799702517405727428040012712398506103974373222091551825666006140334239742989316831169366250513121955398075056402720993202952784744083043875604249777059257435646000098616409805999494638723912951988414517547495781121565951885306138401349787357647225721449763987274545122082941024205745630438310227686269601999666601850898317856875171323819831133533027489139757725593066976821000165423646056234343561182491550237052858308870617579124158334358459613953712935104306089291880584486697844113505515019886348657525622221176142299746238113303181998742123919368384578737639906980130186924443129642990044303312012838378504412040533149356837368897939654988234159742452338776742536385310379130390552513540641383941576225545749446050297911736103617414137544137123355601498188913942396901191858858191856058414551855535948339557254314476971455344385450137824557844345216203538375945847426318985615601744410763807432032888160672199512759340727654804917336562273424212975340893061097358236793400996214710319281495031525150308517208970599681463244760964628660522491735349312785558301699594818201300855689506994537644926708765280926243852412227558907585715646764430579024539621976204436727346331491423453450673165973341045977596837901016781971885837779298209148053143280949994866822188648122432835554449845813713948975938217061084432476391341304584853733217678084373364388752371560572992700208192026092891809728265031283913537732537054077243528055080710223510696575273361692096518226293617368029884437399638439229236699913287821543621654203723255714893012417184554442603732681917912105584433709895576606052609442109453673986079099197794670985697717873273977608714979966805739986537010612374525525554235945616517223184006271730656308699786216177227404024582592675358961141145370008993712505141667562180781710236780073885726571822389007195606630054720386629333868080048347255812516276076500461649370051082597975241271502056823246508859555749493728131419210056968073672362125846923025349973069989937389867444605473644503186881344135299074856166881631397717470508370024116303096921343376219277210311399783783162800748574649929655739382834274807803196043062568446829902527326753665513058561205860810023694762960693497383696444703809492508908551416472065798038220818434755081273906388966639276331692786006723591584321921566322746208515357361848894708833817112182411546954473660804071326848023399345828633267244575009690645061475656566783122597650338739978580865646436609207568381350430405765374310034514914331782759129441882428564649504480238241142116406557681100738425645428577134018104440131973079985795821856758647023742450601557846925158231472156015188666657838221278634443182725620451170302456173591720511180265692754563140150412751371251566708149926210270374765218324817304518654286252816994149873562422472443139041569476592555378298287226087525372799568378480023672759138901111388368543902271435707425250456563492203429924590219643423061481743036216630737111179169774978650894811820485817149552589817563140308515198660534052636605093035908173669738209183875645489024542812926148871476994739264733063494095278813908289981721119884878371181421023509126576902124362870237460476692688984967188819927347445529911006855597639790008905648622650089209815906869868695423005281069303319879471167583605212989916141848237468745209371604728798176782512316697886506363147470674696657874875081579351483436089624494812933360818768359655230727218060247501585538573160881061860213684683744649382679779558556753763224344834347376647725623695267485701041989036849002347344907841228010358967111217491674115024837926563005050021818198840520245364524467723311468392669163441070409340468235845918176336288423230349125872048324886077188405522905894028436974024597276678318903051003683525040602540175220417165673649087145967479349025547475008046829372618642567342758886355178838994429447709890235710057861463109324489599749681735065671938668468282745010071008678858034349307163627627260682423311665592190014611310867977325598849881728845860220803454538049346608838904510190445155684548724631526917811167314787468545558096166168949170754258964472644345001892193159549639506378117672800916417652278483307285707680103088124161059625342478225526821091988160982829752395859245609321883247105020836218459171771901029052645531472222345864882177604929921408540890635018345112653170783302772279530696855181838071813825235472073616606261760615937814210526725453218306099743710418899192566027131956446061715404140968379078056073469693209868908866752256317523998916913046667319750410303585040150363409114473065778734483973761051809878855481545434655596693685995322686389413469639268351294711685656471576057203930581084754105449340086921592781814521659961070722572879908050463609034826958777296837357405697003954187954814167187966057555894262845845348911697545293417031747420443985720317312547918663962841718779738903475124296116113248768185923348666050432401256966874869131441362627167769075397928325089598779024588781810605332642220633534523968861549743511409112280271566042753803520411276008151423029611731134560901631062315893387364751630212066399243194736662821812304156707396144767599541169532128088525780062529071598774014453920583770563505181850539083487626068272071599965024290336216791664525488566974261562911202426230043017719577523159027001028351309464434174833124087400664361440903089136694113354359322675065194648924582356792331129864427295871079719679310279423688225396779865278520765626725775304937374346956877621095971528313872410358698134023299715602647026777437280134670897002070604804354016063877747803684708148515701764500135769934099034277749898032703045343110855511722045461246341236960909614673969735577821861566236408914907160804098055942403707290326408855130268995666611439605238551673439820627278748166850749348191179865846189886373089544745132950105842179838616721765764710283847327232596774569160474499293501139942160209301300447289769814987144361101386023023511527206650143500380178578564112332067467493194980383826253329962013019231475235741365505078585958838818153461188555766557143239555505691770605064316502694996584755402884643288468235093725104839872492291998193649277093660912273944036460000032173791075380758846211068495867868755488095721589925017011565095926610978947141406612599487370124162568171549958513283722302794361926219127397757199675552668351201796887815058652812966508004223995176194297793309116972252962564790080287337960631347240747378704089219162855918187868376935520454639674677017907692832986035711196951713784525913492709987447488058844387532533412099022205363476357141024696017733949653318008458134903659911717458020577991054211155080306528797451983220867707196410527275678113527729187630279836205950301714303208115852970597043408935198759716912912030625947214787246113705408853644063020402143216060550941217723048233967162835230309964389366171564792219708954680774697864408251732141260550159081297511649796812074719715936298602057227986549252144229937338801570454992703983580676479595944427784515630704805332437573765962425117675137310732409061301537456013920787364416285259759394731841444795649580986882630000827118475677115017278370982100613209628125754055344191945691161602765795016065750772807561868962098928566811284524826512210958028273259845232683632480465609293882909757995436682451390982399578109441902677067223072476291271958249664533613888493812920568623647899644378087026987672738794355233532930612937936624528363086252704892532209089754552675700706001283554951342135712148510049309930146864515080678484781695198739914975631874090160157588227361498070004260639284772946170071003122787875658715133377689488265820881769398703592791180680807811138183957224667584225642407105197286075629537974858576886084922826587102583624279866160315816376249205988485376519302079355652727253556562186337848213451793193652785853972481198101446262007702495949245255463386977422505713158583094286442845293963647446092353152958260378533597567015075359086475756596071557921623902456459603086939600958675846409055618915663263098147101720662711356993359127116100677929273044546942877721092893272451551911769444208379764122648670703837945102316221949622785570724971812863731090419418418015715344434912666227728627454716601938751309931838293849124192807884384769417579535413143372689005424952579786596735283875951855713300632989911382086858033663697600928146737274034688998438468433808663196468707202030294149823118450049873730306418822371109757509776841056685085057471933486401061320265230521753529169995985087097525530890534216601798460892884196199944114122815600814074266642695400213352423047556724226703846296119970679619975197492893494067009258722073047801073796851006821515316001974729093010313165003873385452449020352159239980096908107710563997045443924500553354812716125374392242768207290002127884789992508492156318434763919282835896147178014251439624720002264627564395913496234525822841261809413034355393291238745742004509740664015897548475003804137816515830935133834258934076582487315863416200411672333196198987629400598989686450848911152214992565125893694881453115403936458001125489479533029289194863211025415357203456125754182921839779887573510856148445916534057247195045530207043812165504397060421906601664580332298804698602599104118194343615676113378626532019129646188144617962755501470494916769427608627798082958227319109086809744954619611318560933486730027912410991589300445964877113615730732472736070547965605659622716386838042845841721396832998565036435123567339250381484812815399865995581500848105273046511155363668859257319892010233502469142304551923390667420740767373530187637194361628140534616400756387142197892972806668751920763145749892145442020068763342331673824872304586185679022472998542784987119372035620843319724093341468935886280859345205521185502388039732837056075747245541375061109408959703092123745996473334385724007813334058815953612464001686098289862540533857192717749046185858888714713152723034617083226105805391008818078123283421501067709416640994319466867830523353360916070140173448578098804986928727298461829915942465356780548610502811901419914031105616756334555441179169968776660834291986520848506168349710198972799067097242968524287818885851488948919790718034539928592473037912942920235269732642491682502457178910582560481326926508778442773434176188352850244048514962170780875892541378892777698268258946514716286404651799538875464101570787190036154977127764378738262801427279897783688852676284059915219467146201379321329388264741410337137127283835689515741004038123708401328121321146230785100336636688264209486052751840584220983373005034811623429540010310943915888430968364638742228482045798731785877534893785749616709246780287999920609586904751396433439267294732812764997960856483877615610965864153985489362755589494180141839311357273289232902295150446233135944275700083293365201288767350845435420326504575487698551610121123800053024568791525242052233905699095430328797538959583256706067868695491010131025411855708027101610973599751665689807948522922282465746436503781191859975970966210352216814445912959674035028594635901795598884519798391778000125661816010782829935168902487687027972007974546670784727811883601786208247661690285180674378206424839372914280608516212324759401943583971864796301452932617815415825540192669557176311615282536350133742869220856897853900073756972102300341876536929916477790518095449913820102266477118471057324102691563196949366881034483830654165359485069631453051785266303965515460086177842834682815419334904097619976828646398893257763239605372772961954983291842202389314124548729490976494826858531860652193795656694451767093753548019634405012898412904836956292837733484931218259631260178455211246066140910158459450877352859924713828348387516244807635278988688094481125565374579015648978416794429315514908551111878995065569209497812302687649961163278697723671419421314424013885244054936661164022637232121529125500824652945460720887706938063365203489305704189328927068835392351322034081196389315549787639997048847533456927286848436694564516939913986945546697232686834676614401413399362515185933416208404659682303761150187975191960337565534005376095653981487436322221570240243351893388535204425251759338336772480934562210914787039166207834144353017068772413087014373944511742705663823344604901225958725446250386357725614755410328089736690546755791477815979679238090821207732409530677782118961621631751667717385307847123119708041357444316866736406450819554932239386040800098996838380799842632251734098784576666482819392144137756242894151439938523824635480741149941296037688645054108718049860983442626809072179921826762464026768180764727055064143421817306770978100885152630137997846080185053087407435340324340197199224304663257931335427549283369770368735726223351289495785340408237659085379933906108569670960660055403476268727086732924264185078199021093513033925731342780144621876640773216225938562901890058176162453151104460631520542305104480435738155667356605673270106602880572857722163709898108245379452239631068478914333761409920731404696776164808219213413890763385081927691636367283537541537602333307917740313293909258193952884651378398205829067452413514405900962644775341296798094864633951034032769159249719058554256378526821112906980978513819688803257447209909729924272537114164651198515535490374464297257029224399142550405099131665530287483946132069433221610419461679291648110342343452596474899748276018058494106957004561772935376294764933770513347990040514005008443626598218139784071686404403741791466330477667566406626996695196243474747621226869174117226179133978239684592709678682400588162363265159766395715057082316795550466953552095266050115854192137499120020885064866010286466777978635228750658069103562236933024830439153004815512002981258231801832683971284017878974057002889830767527636491714100342509720700284201525102789248997577231379308712400009954759306685642829065080857513395331143511638274276775241578874139772218823347571429637477029957878985470979738380945704767995401468558668543206819899908648788372416771089961183641379417719679972990726059813318575411958428654571386187709976360530300199103197631679175386628817928135554655519746120968836867773608314159499669676430322702666227749105132348473595156428887131712873900328931441450410343067087607710664490738048706529759570959456002599868502295806677140049968209848079926329644065862756730008128254582223613572533889322642302148000441420807699655717951001950203859372396896245841781137629746534512114152491534286012378012546413956849244236619272527173838048571773774515885617540528933077442233505756502955627555807406161794638070000366216030516199036551477936172076201888812505702150440902522478737585174972838300996636814769133338066690169471831631769492343054272143848244281626214037957095673335689242235054939652791793232310865323033141763043175344728854139051999483607842015134479892261965365172579712141276846808873996605226968762869767943135115833656331590515638023750783309954534379503152740604716255644444532212279330948620883648019458877936951009453605431509062685507507165797472596845297298417349742193088204866511547681676733073993361330555656220205808707356549363113282464885858014784828868591326450842112796515192320558715611657462144765111028085631808212857695579887946774517621401420753818552573244014792035419615464335960522059785870077497276642649417565433592555935799751039094528544102105095200876058821470042261091242270892680971816356577941015038734073401472281229703871438887006908176678416522905163429685322181969298424229627093173093908204349874391455532118983256186503051188860429335298205424014711677918520581962266289364881370268172173163483014741538551397935300106765793593589602128427249090514219638746559918179001559658673407129910791154768366084515431309048004652300439489313145282830883699356587006968645998584826883142196071837785809171726791366296054676012431394380434784785770556539223358082017257898853650734378673201524896945947089047224862650441439613474280419636062972086248942591281732286397761007064106192983403911142962862787911556901283145750059630084987671619022505083214399617884191537757942002693095304031622075747047261102114451521881807720635300506373063851080324154164009794662504608639088308336864499877580084694333505431319112678765860751276698067923321086576329451753458658906212836936179928756849534132466136198379704511011397850893404109819748144011116606216826501160524036371758832753900098179495247272849207130134951673653192385822790264752340189453371736930437373178032762287295306113564092860658195956849184067656678722489833369298391722406282342701280854006726540266385632369986949306319157442092416165058319543989354916907235418599196860974474812955829906833517136987285314510811326983779650695418744749375051529454239341474126686263414726669119026512138338233158536857074894760148360835572949186552781832317284910343655758099066624380572718906048741812990034254276826560201228098722001166425077813290744654480772900634518522328976304880951812146456983001476342811665240892255083058153677886428965243273446696865506488980285055521176395625583798415902776235179574013957439619426200106570668800985777883456800089521193377609326146015554997374026583711233104377826778594745254104884122499578015283349041048828515474813567648808616782032123466502420241320761966738153483777203682247600437812218136343542332118686611737046366777936038392484858301756730524531733330322728705015726211207133195444039033109593078268817936085004346187388823349770909396776593458908332427229824806838274382754793986686385701189684526304813410808147779067292015864996638776898356563808141528803849691782529181052458353063693070987926528291579827060839523732757333354999188075243733844657469272307832767749864831266883794334629294430485194276958137827676440892974913140839221238648378157204741675624288850999133907927178087570488590334236631793223156655671813008746310639002143579997367259602356294935778148413015769284452508098622231374141086407776301675607995105097790273363995949531489517701621859196625009309120181010778075290934381551678086841843543658743040822921051431057700138984037855681043153320275313939016271986428111801668663974225842593275420364984933825981416201698077335032324103072802236110259860479544406202580887500673945217515545709059429478941028203926315071195159321159396727890934733579130401246465724359414408209947641930225771311562473740247920375089560203776818252418132343511146233401756990169757430690132466821989459517697204815834982761087915308359582333492973978529538356942320142497284837525292788554438530791383956564179257722362028585911334449518426475630645840566473051515585169123729310131344539186760554950993674351435458766103286884030154352770227260002654047065536601334553854744161439797427158208543372782389961292024133806891122016565535464551525235199266103221046298018838786108676382494367258122962890171943429154196693417466116851371510396213945727439739264062273317377055742069808415440531765422246805120055302406285269673042068964892956136027077564723604650957328605836694167541012250896676375578095942765610466299491435246557635316107216028956729690315830199228803686325884386839271450766363053682354987133869225081910843075832675175181148855847719340467606380397165162968539911469999802162371884266402915581971102228465475721079556430716236875392091589781965089362661029159306864085509909240415626168838815558857430976303675956084599029405639091147888097133253449125231192674562949089842813009220662877105065180567698992289075730651997636284985227199431729414026190429934836182970935816483586298856636324134273629447895032894220250019431062692688665466092896805596018302166873071224003521040798395268841020584406514440250177473384966920184801324324929266088967807302707711934741063941601601433940196044136473950694811497589158193639601266504634045358973085739332237611158605044802561638744424194196211103033277103096428998429100399073035567980037620565487566177107391532678900990278505357780711770519538007959008764326917885569076601240543142958664055644959036988282522567284985100934719823593575479692259027516798518166200091148472700633594111630370390358311747570902248243244327538679211172315741191932724536240763793782688238252540530549127136221457765177934477347243085502780909794247562003720275078826463336415312478316304882745618675162871482855737677496794455973000252312361285238676535010373797278720064506853765273484530197364937468234913229844714737999966252431987549377183092496377609381199729703760800003585671248860289727283323637075635141745131927377313601369426382863797500789945244868189495201578693570468090958519992194385269674855024194775573779605177244570707891645907920764216795041148085847024503645958150619409588485840879883391806020397794930196995510754265997911883948229635926941495096925108267970498329461470710345172910947213276228147154139458391280709953300325337264414393543217915563442295060599805583150877910443733226348393326122356087740522434010252085230290477294080498973502612476167217452612678175357175896272509234779049066514958839570024638778113984812753324314558063824775207017563456778339045889779671393148224894028138601994961654218936085195561271870706359378995360253298141661259224053922804334841416311504369251131888603491057107995278985107846168511409437795368079456072967191807548248008742693304210445635232805449639353324043663336990680561934776569990664266879613747509546917568488051270093586422546885009727183621233046649179350912878404807906914684412915533087997625436880255498771601265289079130631043718062823384222807118638541147395850973184593525337653131986657493306336387619248534869658227563724936983803535901520703619698681946029873134266440304879316798673341371600305384927854293439059276733293999913518234717220615396592076490781517474560814003040798059341369670392163834725991724019931863894996261190282014263938823871107727641044710905146636001051215804895816950178645664659151831804816325229232851829676433985504877613935748475655869664188816964684277212828308228181530235242349901062995971725190978154743743248095237632882417455282124072970559439623372804470052059434435173970773634086938108267128411019554518950319411587918632103768302679830902834094747735113633217105443166766599572885138215793339130157931001430580864239809352447206694411481887524634519240244952800979346240715443726339681445141871316262062867570410296633328733740440441327303322683525862800829932834419647468441669871621575533688718986802074584348299268351012358473204436155615072299993853737825670349973835039141125466633217121695139392012102900754301552141943203819886807495687183744499262303582659729832272285648046246736741912436952265288764530710341682873086238337352009844583262748206101635462980723545382287291027542705760522177969589865245387504128233595602597313304390964931820835802057622637629907166049434883842095099814485430821340679319589592118042495259681805348809337150741367769925814443603230799621003266631445989595197157499597691581981223224372459206125219521576532896629042992723376885689009926763413840332471985204050160256572243087794978304331930889010152101472609236929159164258388513740218105490070093255723942869875557670359233728979886873156649830313688427515261605232966030656308545989935739297282535633387674541950804536095134227088928265530820636108314132086427994530818822337734388907442631031981031538303978765273807873908191602944452292739383671324031615423947154699157629142241086632327905918889427759994462503057583971879315756887982665534261411178639336267399792371968223095269820740286741366222009099647759461812347162237927077705214196800442405616017702865196119885240496558903466773640206712925343286356513750086913836721107880998759549597206373787165438033148155817751493410642483713247972581057106921126476058378421538632284752142099288528806923910848752686688332152106452961125272030010666263941430384223696004274045862879968424660350029866158709302744564412572190370157426746511238214882491539048561394575558732310151563274074758361606540566831133266747178459102916588329376254880095433266399271705915734314830865937540478320790883361902754855767404659849081409315304861643845753723192733311500873565903748940365906367413553709724268494015977195207670502470823187576195896871600710807855678218563193368292598959586360840407181093612749124950523320356889797686400919012727808184106408783524607003445648970111015743537174475250169903340338443220982778045233906240871994169874102068134639245674842357565097271338083880755654179065085343102934161105740402494048689648707923711780887545566829637699404573751933101782779419059562409309760807888638116789911447182714149016168893987158227399308940460421735724979861747525379938750521701526350952546540330935223652803923266257974909807048189349353476311851122764225791302205850662208411797874550370283385001037787294268568270104767395862759774785484116777272686797195173816573403459683346791860316653305704381625128104262897799762363813676184978603922283318164781695997445013137138063235970589068919268881757057026903797085545043016002074961435344995110463786985803341897974940935845366981333337915824103883176672671941495111535664705519615937847488824162240603063892911994847073355915579220786481722238659152560487188343306284717057180837358764921078628554443080627276001389861013684900929666323531488835133114771795882933591558651409749338629924489614316360425626081464145544982395409234309627712851837018298054811814440491886094803850527981999852900567196143848052981235661511330032504472395939818032013996529841290776406450609064475129361612577828343103586352566757603705226086463741539115792804044415572146055754544788277539096607291624499381163954867345577760841625418308475949607670328002497804901105604993544650770222899642843657158737899867111644041004193347495256970765701956843927081470376898670106768263782210864096113416227526829459998588975950376045267692959262805477435746632059642593324570174750755329948899383888176770020460107514437789704066228866036432758616013698493759873125267613093570649865564800834512045439395816225082009262294340575410597374801268490502771319760507460072562359639983750440244802642315115912081760954251434442919242479368266860158763190052640527606860889482321336498116855322220328896293380674360902408839330616062072960394807365092018559466023111988864959918958087012454813521957170343820892428441047207884157535595554856420565339443405461737804486103850405053618129179168077549878309334526819434544504003000306081264388903629609087463316979273695746904923832407832001582224198910448994191264284514094461429202619793802682549451002346632380021281176806926583150902754285440950753264535075439423606715443918326482855648250914012362873967190619418295508198722508039054349328668153041468322227520201023721951597876922337450933069612229668142407866957615697305141275863175859383819171212730446420306799030260979365057864583924495872090671768263552522445954659740567564879096997709350993661238401607709965677462735993651886416391543625556601035161321100749407711419328078745334945989840266227611054942791922101524653338100489968468302660517989713924443454244863991011234680570759342391714919858737434299863477338568854181909707547357100941114298239184935239089157783105978675383736837413702436691085157716172191815493407487297749255735189118109126054921214014663944503300829420026905410333517488439628576699558997929644448996741004466780168495964538508334565867249729070414590106273796394483106791364203110704771880240925913314236417881964710045629775181730930724966505279963679558469224311732829571717577665485017245969192152423541939246736274811889835187832108549659899670981285985530566450180759517697388577365315062023310189560905771326686101818160769928083117174470485983862778873576475647610860367650481699724041778961493039520944886674892334653182933189086860793230124800425912302483726433803473490702309849795484980093968051305845573415582452389649129322808036904505881627811089834675172306705181522561747063741001556690435832748795232751763498832248177670332141959418780132187427295380167084651367769797651094079631779486514627120795217250981745420628071948765935857860188031444088077900197930679987774716755654717406370921078924106249659217434880162241734295982732876708846370478453126729558071023718571390776350918880323431323497272773348293632127995024298763466163127565918172291892230177463163124126023291941698133552999583611740569988000828972151096866969059952355551093699922114650024665676481888062968359997676054347832632925100310235884188151953482825097923893015017165078539690177240969536767639356510010900808734363452236667391302576785438646011175678524676533178883941961052862750765987287960235497933271442648844548519765867968582200678244379918425205314684234175655414370178138817539585078849756135910351594188486150848105287501628815436699928764527682877816867253673761179299014834069520592928867797304105907200616447003261342084527222608472224111744760677012600331922670429403311234575655889975062985847124698061568662969536949353876986549223958035038159009021353779557968295691445512449609651322142993559223463206571224821517115066019649922469199839031862775443222751282547938579308136070264795198479617313020019051063255222555877896943239836555679628912582038515442121274566700789027004562694023996951164252209225406188277611404347189252108157267930580658365255362468862758401772935782501792643329212131743626245274957794907260405008568995029493434942351319930366376169170720784325842192752869702819046784368548638514848073242443336087037186473410506066399266085006610407513589189422422389663911872267891595895417641234889315130654315005230991231674073954693581826031106991027503710920299543976384343082913070553703039867310459011580765774560522904295820920544123874355054053296313533695333400987447079609100761076367272320686114901524076905028786728064291192964761256616916853800574350221323032222235198103981212588574141167699889135580614538266422067972178286189604226212867991048252256535642954628004217898008123781802846711162509851389193346849209266463024837886265638179603193159762459657084342210345374360292537430771677701604216262688550287738303770582598332323597461289144154309935240833325987046268803927294629897633497021109864928668082158936266745027609500521316529060345482835798126624626736712890208381960016849935396606651665580973613057007679332379083893906147305487315010067052375553199825615184280329597309207185849794856156379403267184969951848383296067364430396594908958786645242254882540033249855651715573396715891432573555799295298022363074477600580838031407952030294195281836229686326273643346453159602244408344869077393222443788101213849145060390843263210879344371884658560541395988060676896229737165082839361017649305218135478601430217884155062480353230029710943770555288829581419166690293016710368648500908449221878964471525967141463136250676316512618443640644064716571811694665658120167207920869654743052987541665142528819930427002987576948259055666470736468913773136911621908526359134378929124394342119278607711753708816295657829109174657629716182493090964601649442701329775765579210252089745633743036702050319019211936701253659725626213694691076441016425284312057351115098871565281063616863019496819363780603652637393812917463994223507680078900567625237770422646639982901472643208635732139826539945752748577622481491947833095185602096917412606771897871923303096618521178326951200559162239896827922522678912271052428727098666011320120187861073337227795945204848698271471431640245282779030770589983276993195267699791605468340959944158155669472260480246772333790759699372662774648163660804471143039401675987460924830014088265106897740099395021628229371675257950953708256315296023956467586905239400933216988935936936410435907749715718989247927165076613278737477092551167690311452723970949801021127987690291733548726663837930221740161664157652979310040174048574351171335383774580545261239116913240496870334558734870139133175268329453819876144794425681883952706214372079828769904310298555375386073075725354724598455883044889861443672492391645101516267929196110101906401030256498313588771257658819063758505868208875024220011259542734894625921646394977254995437321652216408309191803232763473130855629057598584703158111560496712357497812345506854531815798074514004129147565161389356993253249811418728455466655835688107550968935064330227751175107291625142427514075172408108358897501662230629997186828050212966182700885549538571567402451139417793467116496046634590231625452223109429689927529524417561444951824928106384311570821533148631456061253247091450649008756730071893659771774736579329749275833267244488045840943050312267413497344853820367794450858091080313397236927890143454387354093007862654679282869596752598691917033511859354236449014425927559022582823426168281976025168963373006128796687273795661245707223837773646478397787806851395020420933130060432452617467587019614737562142545756718188918431196842820198401305697740329887898488917460848499624336251983201856003790433912909144848479098009620668074048210870569689053951312356835317214320320819409271768172684938343115532132596351531549573653683010948715544249954633866811612781793743205717342982597040984729598095847845961483666130208627630281928059515331400445121760649763447778760906601041725291128633933969210510310584862588072081776496654569655178444754874638809248576749188272539323952209277803554929548774733984699422104305593429082147335954306120812295106199705698602244555995221578959786629717611108869680195198568951387301646596966509399897843919408929418828868241022760000717510820753207159700653811509508505065896480552488795896404161797404811851585809977364287676182283273557288066434819461601190216452545918750053871768890973549715248253882066442506381244717927091013472822456438713651614108184396563675892080297831303548373376800612702406475437068118398768083959344713351806710696949885987699308673112979526724227809329890163617684373673415041946497446506429828434151192977606286048883555566975462684654009134202067563099176689521705881970357780363421047735949860161575551670975900582926499755555744497872968516691767792706761157747920820969132306236493044057478553488872800586305929985583043993203726279685674391363260709263329534436782696432132064939663473395034528693933758082435848143588298016537043869001536824524236162456638910604783237939000170192176944182923138648419102839637451945899684536643891664680385897843184460659467471773863315007087848947875145421831900776240846135322419696185758117477142726025125667446187461963236538487738935014099500106854621221451192495120422652999069789190659165553307046893141163202938406253684239031508250310038032525470803473989734157059880830485476856989334672138243988503678977064015720172440204872959792431504103710300542890232864097924609101530366899986986581252410446468375356348804342291648101258607059027198512521365308264179822651997709992604847665047151157515680626722330733842103054930303552236708439698100474614947681488055647239868732732944203674535219272481519788024053135511494897514352799337564626690829857870684886126305865308933094525106180123773925246835339507439025427971400720739848496215585538681816365153113967758248346514181235148826616853541739330053862992093799931576777469904523116335716448115084673803146011906263028263737179672322879618393727245804135243649552532580867406070676136404034789494753121537203700427986611285991770705405568124893867154168498631686560475843129728870841894016641727939424249637937971831084823111273302253556541937232336016521319018988439718367257187374114777705525509565198061725837370861979941096570086854316608146596844901911507035051977883542526075318698027620417528212390551155799073381994131853924663470132112969767138832120659926837087434727282415585466515956067036108939011848251349446707137002648155395285859099600747163498901759465767028012700101117746894458006812099159233523045388218921948207381993537516217727332395462037931799342466901555882496171814093890410630999344434685681369186004391741816741675460500908123712029474441693250453996071867819122286270833131176990073337311094090547519201286027818684838847474798469060046297265693117378505484731983604177049450296910329196607687416051507462013439831706165306411094296323258447748977547771954359977934340389747692791247315820457143743020023746971717201376331973296530144032174644710165733377884032318561314324442866583203069291855267780562200154340113174060249238261287159582220739564753076555734044990701936083622886151370104026723137844666430691571637012475500313508014465824700304788759387983849462316837460968965630367261395237405596198400576839911151834305806055347515193770512944466582405787912598741316355297347814016825012046569422866192453464842305040422786898801698976636269458217392637859744052249252246804285305220835391939778114758399799779798253906295395493853220790546439739423617042620545306632374157803226192440358777829229839796589320023406464229693129612347233240905234468967813700613538661629284632076909895110758424359698069377284131182188478465233923476150946081921182431104527600011487434664462163806491277126858042537494890771449366064771880113593320115961591867399900348122986202443896253496916645599186294426947884136904817314745548315092935306748179138142377051987078291454496798489406776674050084406168291772046906068177322473587781812027091360446893279268068301016918358408969875970584099833637751121068921445440629641152418388030852703793161819905566750585357477681682717722656523767361726217839933703852103755004867581066363061938868726909030406799118192705652247607882574942701210107077678678651289817675178909799285525398832356055758217187306872864518095881367600596807064228371994077873167933729538571230695317142591125314960921961314067481318672424806601056992795090434563848954566503257321169287392543724299508964447584930152078149333108541421639371462346485836439098063639079814920297222322630091934631799532557740878514961014143492371348932167258417505777419586786191788736574307605018336873542140837053420045201958978045532627052568211946664268964163326137980010322496707468697414779187181364261966331714749171914328657713036546851674903306957681724224427219154047373863105173256719513168620020127856203150230056477977089501679928641963784188023047399930496114030164704272306885195667436757519822295559324707781795002648852023979767913363599041436712957409425056654321794549154961613408322703208431522314260410948881049892840060584586311662868599637935286925653899353927357897974986887968612798951304319713344490354870029653262077159177318413090489470438520987007585895531206317219390808200301262196819867849255756841675949472202561780461976475253295979055194430840820440189250973136491909222795834570432605871765406499511009181475158273857056311121824994769929083270067184951198746491821336769361479010226003612217670983885183284351912682216517690965381652860490994688317551558581856534217460331095714880147587751511870325705653902234736090955727663552014103938504794173275160427937046043486809762030243299897624202416991365250709312119236647169123926458372320194482292296837065732547810955239821345658953016246367165658859472210846656828551190192683445185894148182790504285091210785836582904745546874230357217770973463586301176587771544072554824642814721602361521812567882153692162066540092347004225877479907245802331431497917807053013618733174363475035987592406452558764486626952515816320509175510730491822940671984793565913838675292622649289145845747435528708997212815676260839279048867847240676863578089476166028822274881354177428086769510904703362528621554280287581819568231921395943861632086578472629626522872223323348725775821888820981518594563427209714635442568251196096320650412641074837332209233007647961680732185960096693928998646158532060474940807084816331481329003066699743274306703672323649551304716455615858355201674446854774138248368866011812780802110827467662240090205345869849654046210728794157421631861657151447023248736336815455225678785746890825095119180231076907269380814428216091459471526141708139632112616259724018972582022342467929012648956377216164418390672216867758152612414913907827512377116967956263922329950873484463892841138021377357875259080026772857459889230254325450104399113829710528758654536072256979010322816764291666143413986557217516717270092451770398004036666497082050511341208197503459828334900587641718907846075031807794414734503678299698451103431792220997036515164419339420984249341681457629751196258592722085937125429590303342010996749635138093794030100089334403074612315882787266358472647950237522648763691575515889722173000175583050827185476445477772333306200100153476251658885328805489012548157878679543478143568599506856138720586472708338768920595908866516493817336481692100898908226408366932316243285514360248653297209222142347504609277397247037112748842788873182399071023939167669201423606534503577163097251496103122615190430902653497216982796357131445921811569921309257366293851340305920638212883533727884661480860831546406104147523396784000587676570921058105163147443969683852325758760841978258016128627717685094003675958414449816792812745891572144462607062747453460184710544921010887816215424414694875905632990511667559581363204895823240760374742441034347757333441835779540422344190709248927116993980479667377893173986774913009055842723023317642700259655904079447153706960018575882044049686563175988326787500579062563731575783868572947297484026915146695328033795325714411598939708955135956440307713628304186588229992221237155184542422302317979669428552111781433798428317237562789565726178511152017376114883530983734116064587203444728450140875484621700847725038423700028929651374414754040425296564587657489753077583044384745522047579440210338898093837319227347528644731613999308682644057225426495828614445406550092215728690051713726019997927732037952397619068728705162405063457859865232852475815085400537335196842842690924901699707126582930317140164075031397572689792407857858006232020027175455576012754335991675241641772666301792620044289784009341912831779164854290782064975764217457006626673986941691269482368462517349047576099120037467840644603365415577197090108602124279488280334222575682172523443563022108850508440195694121495149999035213821400421546481161339299321009639685686543793503443910163480514863662267211670318098428299270945275822703573850146494780292156427622320855213604731666839304886746192963470624895650365406546986184714211912056534151338826896135705424275079819901916568869238171249896076584370999115270909171143619864878378381186846058653261788754328733379056671800573352410606729851502643365916315730863884109543840910503338262749713014158609565548990451504943201017996305795586549515842531183929046868815968730095792064813326886496954090684938223655459603686952802652765184154494711117004926941807582515562085799879751745500151612264931518180912402065086621578342433874558066782927625467007174000995136073899775202946377744376359750641184308020092345450227981420165809671806130251733260304244983813925044258990143113689813986561343454319746258623916262481765339699330292242475728420815620179015321133194109527423006621225862960347876555614666950633562645597696207046807943675883966747916951734268659558710669753087657404297168473144114621432974572886196824523354027437806331771516887354549740658439384355818448615119904411204396012678002027304113121503896201026549960651693230768489776663689073573146933992132817529639060095879029486289768479002405756834234448655704912852466104266694825913766630759120886746635302473442698071351345176712879688358838902779750744193890697474551219778961177779182927440534967449173709350522283976134776267631061903088033403829457235029219167350284696695239507413248180748326150075349165104119570144155336844254681598570811201138274007245104755791987982529127238413460350068289891749694578510118128803642078637243779938598339617131182922788266246338942193040574761322288403469950105121204656045304084087871301069316178892306505070930398580995947598107636408781347241143646253285497910224790898708841828341704894433394681421433522021505086162075626096345400175487234451686699412602337528717642446898431311332515269416128745396368904445152495856342869886880028748673686732782628368258092242566954018209926631205758571424420999799867287477409656431804703145647055409821320661699054970376188376186202200011732471838122565032700579540794792041383736817088451968555313784475840694063252268797707204883006086411662785246354184059492316286187818029512685064963291209830161711127760509195410686810343271651093875837366825785974924869768837235521445945582818127305074545553668015089948707800712797021473743406915171524928008546939711280740372183288388318116824325334095213234424855126769048884747063576768474154136825141601420848806158901957170350966787966989117499986140075821609889057809697927202464876861064158690456395499786457764622694412347020244998137279869053305248215644236181285725013799608761595145983936454723727830935982754745820769555904807212076913848709905121368513939547950411374302951172312032039966589293732680021421506056262213938317749228721103531518616425779872659098693552244716221622190486814443766049405053074869208790532035645817956843018919178536382187092230966132134029668197258239242154978446638555088146260653227596169909716600722693089613641065772723845349209951085588686765643300902060561903138975695448465507712657720401803323409288948761395864432484219323430553764325071742401773352842100115132707761646806906853287422582664976486820032591571225955667820746367301366176088864867413076961741127422501076308585691082541386534309411228976253143792837539740736052323668130726997353257747524035782205943765050591847934160300323089782469867473706461321459824150769933527610796748122076929880719586894649981084489415973657458856765422988545263229906578966608747713335443684903290668385238111657500159817150930029333806259194907963967635446461175128091318437553519827114811564810426322930670532443275923876088473167541015781419109885284748454495873675246853842582010373313370761153685175038699062215629051560581424416755994515894149526189914367953704638953923729353309592639967320422683207463370662443365147964379364398350479393765260219564081150727935271708178168474098396987965706195341441710053162792464249228352486958985841694122234250010814613820370782314816266093396079685207162934775026954223355958226220700603263493280775102245073865735241305540419667727673192287167347887899919908605888951433064838946876496151976806803956439387430823196596719969761160837890412514479039709461677557357974036380776289874718502268275930319727981170084569401464749353278663347808977978730091547221622704940846292961092158643686807373181135105245654330189968757441756526141874920971169773737046467163672291256197303970133651637794480647663219382125520430765016177406642013631482848117979117582846229904679409331770773834324376911814646500624052344308493653395758670546546088539436498305802309753335927704268986445896839060227207352663295235248824268670618277164759102483073414048413650001100992395290197195413609366489381671925014350132452536032736474484200137426810714148751123985571683742989382637291587548236438035813212486794888887112316931566426871092076734898296007735306109090335725334842953278154485255373875708649192617080482321751964607138170963836242046362498940049292685911046242642661611237598657402863390941388639819879782191170866382024608160781704314748161157105005885291824453248280861735373904481235468320022649139142506843835981862466825349311201320435900808172115471656666887047645226676710887210307506593568841382108616011244290288984791412608449972199648204089390150710228460582099650465473964923684021458391000655421415062990861594649959468587435405538258660836537405847459499417035447811007457994554379778344693116069642249897799604378140105588334412287926957201190861261827074044262878549789988903855155867253916678986136844512975958140627132446023993087837482851697634981855852464424328367502942192659083259930647006304617415333539216357423886693049267522591387972473108322502869161242881267050627634224259871574042267273585121634869189479925717811865376962490718653964196890937618589554724310882653540445473257729179178129932728884970375062147217207839607337302480878082293629237815894606024448170765953203552026849704733890899828584486546684041525014918127831307262275169507905738088268909885104491038806239813595319359269584309671597580534923763566286534247953290939989058188669669827092321975866285948031892055926004247805955634086766062780294595569723371342626407341148745929511336303996689786895239236828594955070672014793972417742824984619961508676838222310206297264114381415401363201835437674362270914030341563613427196719408333672398895183739997057140555534969433162018824748169561018054468899058086110267042834797612191082144325502299417257429544600177901703261210451308022280124133572201927713434438693680443463167343806385777087127693292914043083508412469356430249192508545917543306352891736703965567111018245680465506758486377923777268579122218327448649367594735353158285318058934356396835922163102671048521451077555991747056571776149756155545513696251982411617357712921335990901723384220732520357442575117622757931294220559104109929437576981907158418110444553826155779434613470354078280667977025314836341991767467082885747733908309690708417200202931831031926236282279043673528508527486087101900592104446830346013696071640528396982389621974365416146029753743323731307992454915303037979369449242506288770893002467025610123288358066693707922116833062966405169936725931372716547786772733543112341819838117236268035155785876185617588184096605697933879532723936120009635618170060009096052778172993865954747285055117955211754576796784058058656851643373519209000157062873417361344499402033849650086213400015273123834295055899631412261599119756166295231234631876702743150327300549741190628821288505185586577123257226321994149459115917257779740072204867019655468118204002504457725981024792322916245719595676322612145635200342667610144928192407338010816814916636821301707257045869146009179380335229554001825660589455511462281640626113135675230354852411015395711877936495691171722546910134215901652150086065682048029484745164268475546128312066166001211098314922397983477374933538368480312409210034429532274825623877807293307800335958010955612099757420510615916170030685574321152538971442089165280386373827780807061629558980237175815783114943024763495109784006530583716477245011052098666964599849314387135322280455753414509492120173582900079935512300923633618615018014325402612707172409420618566111449699016590630125286883611249168663287976052885986370827106944551319734675319828479918861830124443545767117994168279420118219695715408923987478045821918255028804350419625679466250670677463424536647136528274373468527746170075105615533342000909647330652997976461172381785263303436550405952411461442109965662576737732333976519574578132245482147786663953551108556955254800195316737440919964185502479886545499541882934529100376049051515927171428682053575768931025439490633772204717484654670458351393538688967910225125770398422165815321805201053703926833745223502892807490561899669136357241106936234690574828023586406937579421280803711230457265120168157103695232533439618007105284329919810907315753086587766424062810787690939222569659662905113780889544266370605160218325649820628614226108748786453206278286466543570043776571110053940727185034121129704643022310227143180496100091048204964620435304754965554205006256371682912412135763405896491697865562430918546025253217469579779495158666028928053828050319220826571066397135145916894713211374666414101057773798858686312242020559380332610514534860995828139847529062174748309516627893647469441930010269966831163229838828874435340347795743125831838251684085048692715735844641933993851157433551102511426076219001171686620378094944384932891148625286801023047119063320264594376298405919185265310363699216247763144390501777230766007995025294455170245160381037765953255289173762068609056064531301698501548181872726175207615648424241300604814015837746354896951960302225210803522635677259288611398229080479361032037490670642706119770110000755342145132823932676515478601961454096138099896729025189287488538728890582898661863849058541142663466109037562507025922581337265463683959076269835553951214262647596884656364603195373160958734868091950104412984359295580672473500064434531041707310443079939718515934749660037837937087898790019019900935027271262339748206289568798543124977794632443441130440713854319087455048329548613092682687585713585488009804838847060897239416663511692391809929939967756878858419009670476896540059623941929036566958974859179134746124607274439362668263604883443153783917622633711792792868228016563000551915318184989397116635706855630766412806427871360362310232822196841908711500012988892853483987810477682695743227135662258236759083086568805815571915994040433855002356252886328654228994062746301212311753951177452298737318277773386918628992745119685854865781477049664927703530113131282453599436115771424628825260280589554869160280201881556489976897925942288757352058320722553946805739831399153904822851798870467323490341718168338450673942217188358890687248571953800876470514038542400459269394482957536030313336918469301446295674878510031300076745220869009498094837203085829542582541904220875642014296566029934185492526340771804506640721008061809757243312151971810900581810760391273733573534867703176525498553094449301035131981386484264561270638255128002390558083208126256599807989180482449540177019052975654390158641782265565863992514457147197196048809608626446466518872981834623524200967179471567409647580867475633488963138089489557035813828941416668005873886327715142253515302290043856053509871666930030024575981394903568783553970322034763777535491980847564330542631815069452643384650663307852033576745225654442277447044559251987280478506470137925327870175230765466468911100944343990994299077159877453101758448354714907008273389999001224376018618131162936765877413685717373865147214106006014283492583811739370399584576284553770542731301894385211894225232325047587523732680987777473415106113345196229039093845014319189834774966256895031407751956457507901970336304413506371178132309884730580507244820360523913897958954869372401761364536250228029451497148154422832355209064574396461665019631778794731411237035306622866740241697397485805611591546178863596937670837455816287372057741214419982851395197389206613805495405915939827876239907226800559479765230624577117679759291553222831889089343774591069577048311460828281250619254761288297028019609100986581196540287082083592093864467988630448650337827022993722082571125973755533022994701480220198281265394862030627721827012778007080895153449469389581483765572417619808905294850900391564473211574307224399852757998121583397569958866943188128195623899854690395664826277861931123839444570113159937588938437675792493142425395307856184334691179308754885806304539744164958567931296363976312275556630557538478075405408201307547493154113444676720000974758105212981927742532054323014786331262414327393767364885690364756631275523347537087635572283829003867147196574993228393578419719631955617036897533912983018559481862197182897656268814761033583610947578754886090005491572284363877713180443970364663725268496283496318686326218282739440678494155365141262020777859028971721910961145229827347343791463006240347233459406569867913770987457540243910579141563508219421605801993390804651801274120619633022559031948166508567719071444927633000864135095474465714393562614533375759621179263996752627185744257648370493917787999782604265621885080447768103144348904405407081613060282770491514092025475704184389865432629971605891696721380201413489099397197359333640010955407881864119410859553824949396982215256674127553550233108341158759388544929479895149738669956760178594594552097424578951520789410557404697774709405702888962290218984265327291680858422552439530043249946212849316388429301323399160415076973829146780725519837312673351270170744762339295997361892657522638096742345408377883430220913590418474913044937610555865478317648418955106298554238881752640325198674436786920258189314206829995436940660869795057235955042711785385643973640817758995088729523740078002748712296196260443859809617674328248612646928262225528917009740107669398895377600137717888234519770106699356373627878669212932931245482137681326113156308857792026471245975434099708529970598789057842555366850481194538427459725404965270093505989946110050358609379090824381925714096618531087594587075428700299097023417821840036451407330320510994645106781299554638880457985748161099378476856909082966393170774025848410833887769062795968598964912334837853032265817644844804937871324824565171557187675595818696747802605674488065460248958906339329887904696603448252045646054535543012779462247227455211992821462978342642806284080215061252865802948837037866741797798529944713240161641142722612176519838471296558598457293953005381834568730578964912325615845219311926230036181859018529505251373089328755686984259023232941784340446794672897906594304030114737865775333990350840281744184675765616815794200217555534387850619078417807106504879904456615360755566962342851344966263315575875133448336597208440763271471260907390437003480877726125010254487601410411831624205096585262922489210885946361075905090912217907554380765702727794172096788968045110632416083650060881683012728178594949679819031027592943542700724250345918420506236974205424411460438450345305368483119664498478601543496424201549858284827018190772909164263027836816276754109892793641272281696172957806342338828416072315163059808871400166103499980691129812309124685930349957762000021958430537724971396682392353352798251813731730229652435975441349423119111450977338065034102578662626718529268871289426627373633388075133323681848643355286121650177375218487243059788046845813989449682157338672216457180787559684431787190461453840192474398326679069233566961974087597119500402154846542266452351433628031284600768962350024537411938976553798687858357578233009540817232497806130856019055878170615734113247532774743105581572632959623506819824469608192149552229688900181226205597237186263904004394015546149155824742245325237967865871231031232456659656791559907661505919331467280373214072989992359014850500198198057281173885352568587353015755975307283219863994759139931284451858199090949367285613943298405985248522522958814864674114078410868534397413756356911392013477911056496555766207868933351655723458329202627259856516660964760974183434542606663448120552462215231429966701804616048075891317513530047904960442303045582914342244068958310049902962159594678565333987939952933507680512737411822286072848493846731091130808837378792074921338374827779485640563900376866731485593162543090718556052548393195233758305599440872781521535064872699146884952347170543899711367394056122189554844698446687476138163879985091356602488765626698576251340552343836281651498936964181368629335030868409423186681786652844985952247966361491830697992301340038906431869950546068841422504754611606007865506850501729325853519902048593936720394208270146305661526281719825893541597981633686421992220056457560178476002536547847195478598043368663580650237613818986719050683764952635386476865889547218377706123484732810963202384179732575844095428127275787902298864567503933953405875683297115942875476980239886856036859632797423443305776246194318173264485853989164991265084120692202994484393896039525709573748330754000241848649789617879957585541307497039644139156007050078078223682837750561470304582576308188120859516965997720570515711426443150728655602751259208372576921875386122703180446209163886678499108896336927042477226811895368249743269071617873143788588945456339260051239557350239500959655193114843182512785013921961488890351425068286189656570038297423084992636300637889280174370741656986409340217679771771784716473710045506683587287865746929758506968503700203069268752557075475952754190643950438500150672655611501874316136734672468656815632986719206206530034917848829669964331619667580417968373771817815151321504481996652152106368027972638416809961571445916790920156170942916719067488171573963636324162988846560351910556652385098081373133178042347400645872373926810094562466087048663393331562056288778433969909527921974245522071674290491497134111920903884348204329737861572057666491403558571033217402440638743924368983252748728390584125137742926821341320467415132251275957103859460714168556603253291432680895613906688192672178493264378738611072778349701145018126352300773481451519550639418379081756898088391408675489511922628801742146319109448901347183502142356692580875657743580854259546895736696351571581464366719225437739839824015371639395027110866562975643087090335471026303596720238700430684706729125168833692001234926925772804082697039691427261365823111998571727448044514055942943148676269886946400486587973590382689156430359727390558550694381974059874334948729957836952449437432539619270859387789342838193576634855705651120910256606363329865781933919568895782097998009888492926078288128296705565123762645128876080972142883427745513862482356882382239953908631944803219541643778648374395633458074576435974463260495635387133736990943108418143818133900149374288387384502140432013729674954505215787017350683508647582088403186854660059311275987300168682156126650578985205596882119212313787176254574666829204392259540493621669371834156213009861692552222046437339002742118332300647244828251148787485672930702127347904475091592773166237259450666362703526227540411509530411344232963018109802224414995560615333281313751060321939305924307891346270597312467701165423643270722036868939557740555598199739376342526086065189323170154203755747702677990774572847446361987668812370332377953643679732821876697053427945728355939765627334879313601044285600157205541339470878062515257841547601583709106080550817792070246023982581808995839111489607548446720050256058099413761530405387678867781754540647269924417286337376008685117585763042989293571284412558430629647075126706943351858659474831630732036975437809069526880079137819525860884091289292123174011940143411549394662486123505312728373666466994714175085116592921662334809092699809974924209601574258378194747022849027566152333503776391902018356021213783325737400707992260749147137167607821623531321334627083537926738330128521422128259863546821967382985752707041046314995468194150674135482511368033210815131967917210395805499510690812461821630195471007695905048462081611027103652899073866524016868853879952222235057528922468597381520412725170773123462459414065207232680511680684643971995968257303378510451005968170344408300039057165901558492837741468338482958366674009533267291769545590778177716702068852294492524951836425947736766572157582557785883695405062199715121136249963455006899731865163910239590660753345570178455340301567219068411108263013820147644790662375681583037722772948379414294035607815031853222154183517677952740739506015855058720107298104139160411873549678348461364414634595800949198522543309647924686204424427456778520621685114689838274606932207635553262150804234722908575929726654302234506651797922148813897075400782271819062030148458950810106672063485822197277027936368284551540612469101282402140379588047499328519490147445764060310151452753017877242810035276357301932356456677513317798309183995155527167592585121726876979042735575784841881189927934958292803725460229820115732184778137617682331837261211189648723117951482091447233110274584455985365532483374837860565523884759888468920941988918215973215724978215196252402986490718084317609687691382755067205946294012195616201685839472467432934927039850138773558459102172949994011500518010694836529057147762963940883986770351989622468220971922738192239637015998764313549646661078774632298547410417963178120036925618706684382572079123833824179169664898706677086119258653944956881484707915594044795308035887970112374207267399986466561836392283254486884394262655813296064731153628645064620065069614374880447737966766013068747985454400197560829242554505301218305433214824567364331742300434553126243607466159279100274883837276183436299248909789865492344117078407720096345577903873056618260371869665889477098573719645086013225131271291613061104301051284740915061490456299734835549649514525777186149046147575861530299516405902464723951475173365089955328796596711236055261095932727762415918148559208704090056274672453040662025388441655161412937005677860376506534914849790394044946441621222081681194289159888472063131667934019826092893011361797103648037888900783336942661578435726491205142628324095743060254197826480237380455272565748811431450694368077165859419145508771853651674696138668987596264493163960521995000367417331169959039548074475011661921918396430951351697524854874218685771639799209353802555044559874814669481492843384493463630621292333653466000235285104506224025026659725236537265977039022019859905927063036196237969695507721849865374405514793619324939858595893906722637508431394675438706483945248162032824376921987014326070421320581783384855772671375090123949074198058678959864281500894429474746110196176876133084471115222581342986931738256537171290945577814954221691056274400338068891140773502529940491882306056559748377537881229371131773957850440787995294608156691228895352451747574003963741790200325892208837861998298264877285187304563957955917176528536950841162652542785537422106103770771590272743928883189479448978152786288614589858989023441840993651507937635294267357312277697949396619899995910325226054433649798949891920437034688013599143824350917522467783479176903693110003223810874502262226725463709379325581498992792927249128327783277032771698742035025463592493706436040695640279290810234338804296541065442677836422838383213383417438318776762476857897074429292385705165613554422030264511317599308647437117662684871641103849135202085709216802641271340974981346114118472439794161171761565363908186407640484641988857839234751282999058069170162700238235122568249315792047806110928125015448470664046549714558498310205501917500874345678033728791544697592948593825797987679502841967648920098271260407263656304049894052526827326914832544848306938113245589058411200001767328869455113570645896175596919232684391518036330955035305704035413911907798063060315610083205375446112994115049241475727079606587707742183106953682451081275292374609631914304236066388379414445949775055534891126015047111557423992632128021055521557195614037579058292602163137596251887862880626421738056626405079684784788016945195550445389434539093073855443947420463451211464755719747384057764103573031876958505754318367324636441957389554066903731021893885894002513508105327681987688375250223268026376903670325551360787100806040117303608636898886031488799349002953431000808702657674774511187540979957012952358314221961573176700974444667217651488042494759306921802630457708971629420242272855494834047392873983386528563353964399634916677658049252837449604355429086942505353184832449332417868882646354398253267805802773098083626813026964541433004134831092889522094852992564465883565949566495381317802872932508242254843182595505240539658713053236195545867310827029862308378426747296863856446547622083795990976224004400677593092426305757845153622493940009095557006370205632163935608994026953100806169163837757847609864128177769922958336749253704087687436481578950736793499855338591517112410305657686684782700191576603989858941736665659604659283738456905082002388585478400223960658853482931647286883516159657318580837001793061943461997212628762588368763692463402545774700233569758583132926114334629558673138781912424920286446085049564083600098665701308814047028860674379355935854734715115723092265309199383812869434093408041517204151835783289783627992042937759025850848308463117916039206744062801410157272501846339107166863582047977279693511386040063925768785515981383624129531394069477642540555811966172515427300625992618122444273879452399826443784820818647496391386668460563994785395161886101648526240625537112599081586982262320426868186160861665696668878354930593474188192093406905469782884534443115434317352276991674672059709922915392052946978304888526175886513348185151134724049999179314762639530636000632880809127301254391147396212292649761239976472102990556536205267982010166508221595445525099832668676852859967660056106649230210940895375345999740447858364300960308845364802933328558404918856419535389967677702892743225587924248311428885460968592587683781428785316869652603982952424710584553822314869331529134075091678294419209168108320824372650270866056919707252030511119838714211216893964803782576911321430356266256002171040488752017395046988760733977698210829028160356770222370436558074314840157247079343598935279512738141795769086909421730202116109032982594104732581455260639126399743763355547797221272800775853289773625862136085818261682759338109177127168290461684528492364371384325594562420310693311026547120242619373005486716598196504727654851363999242073049247256750137748868437737344483500412849683591870001549301225407500698316007367521443601501571419431030956713728597652237491588174143275953155766491621785005362499159404398852851283284618001854831787009640787473622257487013605569211963586512381193802727172685507016757889808195605542354807768965241237332592584143429564845407299974264422558240227372539717941972540712468566540195941051003901852236561701748787862677688795388932670587656387677902026830549849174525603569210266356182395510173359208982033144113166624636522069802779487839547468597805325393921086797232881231936450808618013212343468686474795320137901082812137983591032431074585425977646263920665568808639842070615161148189834710223087675539357580347038876237801864218721567111317253263643989172483277514220201637520374031429751596458348543501007173595917417707653139885313027095416963386851046909090711711720862093069547082386522444373193181591400182240999325910119762780078821569188278007840063708966613928901193995049533351576546389351792127765763564339049009264551517259702606301820245847883425145861876373517598509684522616096963556349807750664507287540094024075801733659531643368440073354346792665248943957880757822160273388709482733499668530184258810195546324940268756527294567639639823962829657282197840228248647516801519323971309932125572943337128092635923356473429866223445920201559044868429843682061275943604794766128630020927814057868775598086765126441734204265477620393002982876530664091513375875818618807362162713868618727073147621713379685057676998430656577598614859821326889707558379368414221569711044969129645836931952564815286118706740209363568241406877162648412577520047176796956005125913900920286222715439143070503772638417920009322617358622392240672143901218836365347053441705682501241419886599301187305439926879407687126210675614089171235809980521866546728042065930961620916944076057376098510475668910315186695778154910918928026529951068988808443401137154522313203586275014351856521180586642865582243121602254943773101353375556859114401141326927476622274538252139292116447476965023531007970975076045896503559125930959788011785423751959881929472088950515086098165122377107448639540531179387601945023224870381143977758575286893403194112021055809322958605044139454917947752166477962461587519694736911045571186479631768394081195814573681465164909243134575201979250722607043082221866594567817644947266109260935824139469220699072734473765553922237884597710448765347620501978145203724582560727792511050490094950705305255411871871008009471702433560945721200417509212857995997290080325911383896831110507911884503263864779968177803637189166104132487857884904421374541281021362035834678586905687493143808465684296521200840576496681454649654449005800884916414604002309370016314597193703718547270194130551000870940947307192618777479192847389920401010555722405564221456180627119076434698003870367192536483968747544413085423129548968883136780155074240475097228116668023328699170543489237502130217145713498418035574770258676207196785619493512466528913509065687508708319524103668417874295336724613399371907476198092921694370770193702137231715351242879564813672652731686289135001974795991004094410350174617500619038094383556427984269564734733914761755767585262665006286655053456442186850050156039472247811614475547801693307872710243424819433090753140360810600311146023648556981118916000922098794117865319820505148540187181984603487896071248436910043204272495231530551377950445713813905240867218548719464407009572095840818136617078122400743337851608382235287125073853223232636769093279481209215664819043894717631386700703725641351238751182593914876433484651985170297221910206703122158124874358134986597817428357191407066790140312846991007359430465950302104170581388762726934756431805076104137323704785750974010138208358771683352904312814847924111177391411241665913793830597924271014674221442012907463587334215796989695101584425317010936849319083735272315410665775344075467196814667451837142780288433258051147990274972578383627425324447489322694648383018419539563705465866206617995645540040378123140379599313680105995295332908521660136379824943734256893009374491456732760244381102562148754969309010459869709980012076835352763006878111146473822659357382316516712286906843607942006682453832042255590013009856047769504189899467752169551905488241004946378468478513432010215364570079177808328484321318907429257538927550669822647203719867858094482060255085219288092495703715148269958436484495622198147714914308890220381508518017571773881562027927414884453372110376494513172917897724869888602334376513893168119540199043059021341567840651891631653729475753492760190263232325261595097754511521248869993269582298076341243511270089225765529063357472388495978961371852682437224061579742769539704580103387543871551824072659877988436349640674521446947626718355008158335859385609505380988771030921014328571626789416897286681658789326158318461601589057809784886606527010671674910494540514547870626639342315019796592945377958923695013685344640324413647509371255343648299916588275516040718770961709728137784935770836918052995148787836347480619596383491266020883454595351722301596048820840068231456913715458120294177120049139229314453842531411972327143783495970398489475843465643833302153338551221968220452444283173517894451925164691670680985349582400776276686614817113643835840551357384659384468669991372579078609842270902510447808897681904567310535676489982091892432504518424016812386531871711747598533026183829388501347548872406863700082201436368302991353494742909111582670437564246931014454057671525965138049746768139985044840000557822622590683966492667669638157616177696871798664313358313677604688571893750279495457175974610124910817619616053125930946145813260694101167195090050188063855957306534201120395565621018757339915160533959120697392879717516154173961369269353749491751412466655453723636974898700301137487232784693505538189372965590960885919214284487911089774149264072314266797524408025993749847630307001091916205224378884794104939571196753894812140122243565309401963718755654207973336412421787954134545579573423923901294984768889518154394447662530656373749433711745981122053720553514646842910275764606341017520486780828156946429218205572576584403251646846238940959761611441811744797013358547891452296724719173403100945493112534571568693260337061539235076373408419888534173568490672970076054006100304821817375778542671014622439488415118397864596442600178468692982591569339635466767013416340455262740765679582237943949480918891498601455149967037836578308220632971323407084565026603529916561800883449276838120871961998650053558149451518815144955436028876128267897028336826404692172606814294208251073378707773528114568801998889492139771043296287489991530764066354198481832900328874849804354528369343831596920544605073036457534574175958272181825920523144268412834484017235537403681431197972239595894344400017989093677179843927650947342732950031590859179721491904648081142785652424971795255933565159900819422366284060889054179189539940039149485910083136238438055693748415948938525664318349670350396545929310545084063427378935558600661764107182646028320746864427343568100574490362598981500855351391125684474572844670655964955247793759189998275597780294018462595787715844389934906130410875450733250987249902007263982242931978803644944714384196643096720187325080711282742791492471977733078196618288529163258614141226470467498010152286211558566162043225380596039207862711672862774926491040654183196207246621208114171737603440108967222646910959293424291927729111828224683136165487528228812053752898130080482832735370027763556005698098320192087485569004783904195057203610378865091922376440124684359262816716287905669313601431780156232164561120397145789744315045466246077645600037300952763544898568167406330500040535636941063803180090701212885752757221734995243963381567743067463553500248585385997161903917872832824977259610210357968908141639320945858514426198401503363770146702606073017056467468745204446872923709220188882425193530850769002724916081349157057534103973068337901213632837384675031822753967985708112895885920722838290175556882643923829878314418169955039876079028718385737794249645796108285813476929262166270682568705915995433462798686626265322558493206653416442151688562765632119300690778798427550252734153172453923062892557988839467237396298037462250605745753957200490333168979277952366738798188979179057045074510922016974748540554878531197523095613247245787423752139370175758303234218552182154112962419358651221516037362473208440583038663831813862687447429385160395888581798325286174090068647315488543845257689109983378217247155362466847154024507218876850591854035758079737520606450109716942127386182408410984247406532258026812322853388425610193348748271511433636737838566502662635764509220266561783075391980638802925904394401164995173534469078354032684462264783878486809584060829611399903996367932487327125689055969433673087060038591084157396836556981422433098276672898673926571434136700670401496751072652847235955420879104127393714640113041698560107368647960785386989548125549829574642716374334461789024141432312426855039151972120108199630646242016375089843349477168389201244004476137410068602899359115688675514134232866121087214721298011911346651442448853986820929577726653699073065145224678244498063921350681541209278408656932550781653331355524517599453288139000032643471002068757819144610764205047602020359734921217022160479772766810373730808699262215370494840840284155540875598098272298511986725769004271008251435843903935763313916988564228855636023866912614652975133155751603406401408287145336013331205775313848637371659098810081836971136679180005320633803023071925628049535627593824237760433408627137483770427763641609915905593199776939871377223378763263716921318351520277676020989449561570037983688090300951413274092281812044674919853550864701216328627393077521548254826175331396753512049662882175895978126816442184721504072500280088246022838150674135191179757799316051519821556244354668885769931441010419757451786715252848782702478942473796349164012202922830608833513037200957510206390224480664508572084443995537736108242068854278287067487520679586671691605686500956308907180007280846728873072667716521610222240422313690833236967038547627933331187863896107650126541245360941333227584877982616163030753052776855907654606892799769922780910941327285032799855107693537380896780575457208108865725198281713729699517213440469980987797245237541742356519469027028071097025034454253696076406569166620069811372282792959367481036506464791520025477369748806306324956451893148362151481633440687391992441407085118971833777045768059319802816154523186708939424524845421847705434395389357760653047937850892941833164394656855951352106118050176415840259681532553338286781819839615557394785706190944653085757558107852266285120333234239495478050294363171807123640483406409310062932450071537186207371188796384389426068658904829202005496035066001110116899447146766987670384019312118796118626587263764076034790920913373634386202379652368417975342030204670385228403009530621776061999723468852988195323272807120541922022157825256984054279652592550445975894067645753928978015699531012225923638030192320093635211677495215800393281431764914802367072946800297725810439305620603829963132485608410631601741967081081891136998917800594882653586096170183802245502422853807905915442098922052423320286090305372099445788385827445388729527150900481887544308130288136946244489663791920889564363646340783053763339421306780856956134377640884816217826894504445014503018883854764338391675018723618173035373227171947209149706304662179976738218512439808653977809842547966685073755695605100170764926992330708631147630031911733743804310447277006221899246132869640283598582254334511727388137823170639716792948948106262643234711472823784781745673426263788059665663332142849162351818891906615165562445935946388453293817842257685537165690338604537820803700634491116690877795020033781601927222057275170676724161767704287693285583258733170155410791541094607629775071977014558938906837414710840870512861309961186302233408079090031658969757487642026416065033513616277920326267229893900810395883985115264176612449386360148596790908313156833488168936387950208018801149602549057368637793132511650760527340423677036698553634732123029122303533289111935394336324817268803592618825114197985793525375605628951868343674049748439086121400588857708028187448900804105460045668752483471233945944480356077164609127350992334831313691620988615539855179973901609711597000261286135058855907420282055137968528168385778064539899570089195148212025805966135305361165837985631792002628311969002618540144549001962787827775789361150008024223587789534826802552641088875733292044028060810375385711844051167747918990168448326951955624968070909118224800500265335783884055002415531723068501222256996643747638081946118384098827643138878720140475035795998875838635708241309471958752815495119486649220035949585796283731816114111386989208608735839993266951349807361072227742304081291051400235457679435114606769806808001403372503812837401756832975525067617701550410133078768323703480490121334295278431227585802771419199626358739535704191000496938752545527407001447130718915604369293220913215552919675726808136164514712332448580397439817906380675709106512294805607589252317088582841236212155629270325194775509096988196650043026233842451191508800861486409804702753477797675392716190542419599745371898990008661230601686279748004246987531444544243899060072628051470040969266479313764893747319412139087729631763241950551327998560976466795998165119971793841529944893826334871730905849439116069396008504072902529414067388494976434003712419368522739361330895019339157278116098426831106043927925983456797516070100973948492018986903553813161843552908785784718761361077280462129711321156372721255523140306462188486224721778842300024114391971514322979013018316983491388420631259604320576158674026690932451505901573499716157531024206055022798983939617178578719743063454255422721647503762521320391121579940731335415097865336544562248638098158465788788582714781062805374965066354082032769800339256275289750142444906330056373684986966215317317096036204521630966002373489485904874855497639749346922639109936224415776125418698203788998335763897351228936680014234652605920939645763347751044933825639746109621773598510561937136897569527490978917575890371904796224760665706288808990050605938822330899846549493790790757580759049846400686423265333122470693121478624991102801409345016399752409790293716564848300726784028640227479712587123478486341598111895126059991277842145955893198777317793079063760106915107637328953591930194839648025333224929519730357460285727720952442786002737981469602405932916263143522101866405926719304340668683784177556322254947363997828506666860445143486323614415785146165607829916259200544433772763798003602008879757722053355735244345027255169516755484114159038565979345660609972448628352329814614534913313455695513994636292817066156996574476190200094645274588284948921841936585624456015296217414872744726296470422506100730094746832676551478288543951872162912889882784855734180868198681250371993278875074902435058846011281718183835963515969197568197466859070125760324759025569454529676289900336664927423333539754043939627299190116902972205189921218867663760137447201082014112277280905004933675584039302990737205499174558916889556881524634143815869802344383963485331446975198799513565013634627785073073020094012352487226998853142474197786100953167924990603523146945701319276082245145010665685155698833786974615316499852038254407163852565637375905305010955607639051077605212050285913503593405964509655496565727557504665027067070697789981089610760485526030970114970662413544797409433919929740963063988263316496088228902838896732410561975191898640780896145432095913138723487294410010650816571440557047061503539538688703027351902450162882031935152184058340449009803131056473861082762295913073185021404369485951096989302024597421405702098571171588274158010250702420311683274322463412073027973330235580069243990072428037804391343941507348465909285337601309802672193684270746744598320227034191369969119399489560902132641931567032438202451041174051405979815404697933448646163081977031797298914110470889941658632749100616858757538685466424147909295675705174684915035769618592695588170027537052794070852615252588771467643368542959894169621585440759830705437610450386376535759904194645613245426234534171282037374977108784947889476842575391946628654558123231802864511612559915292582579945799071371647655768114728495064648131138032909648856714261638605296853324142364149833672657876095170262648799794822739543838130042418788787935645758782397908144291014422743898991378819569137654844354658439787772137742380657491869993248544692785136628731629132656831118270711790638221038738095058806145577396979225336188527159528814519230441540300058299087218405693081588191073017643198385938268583045933144307750548411118200911723234472046741936421532887966024567773190989968049800933255437005736452527734626895647358224108403528037724765361209749975254571044818968051662383256246675594020724346149219709488757813644209185381538274383474143316186814879358045303259898118015642362646956477177707793155094720930943667423742036785420662723454355907687946228456341346881834867113707149486395682726693578396272485412481998760958331620879559216348430967063022590001225197878612804875240497389487599566679514567444654235246676925021714478445293862639586630753742462772599303954663504625908699411175813156682111586723291050133195425620585874174180393172670971037178363122432919114052233071408511729664762029560194095664426062337103336404592642520331448244938771526302918410385507752793705105078579287736443553192958204323191733133901283698847581184023529210718718697290909945161069130997109149484293782011347044287529084512127642292556726206787367731803009176344673908166315807613115169211368506352498876038413832408227513471066077639024186651419102547280200207502586168164527752270743681891698608862830300887236395008184360898992869946322481602468122856311330713270505864300994696318864199321018202180416946285263672831401701969151966367128234178355002904885963357915094181454529309410008705811359859213531630263721223483877205225246544136684716844807318541828350002174464711998831310477130791217680677152067892951024397829401163337194495375652059491539310155814240606271917826214441381099557111042478095803592730735129180608841438477929669812797490920703645100501940793981023237182436320797027488487809988730020818674616025450340855574872729465151053949510597539457010088150277431004806955709172773367876910778174485373529057507845096144443698759810166711402116470710094781702275144531477118694905456979367820382260559132558747113301473416869606923287289872950836450518957776122359764054706641025146502846471637721467084969297919937077681654813638847965440549008750993726842019040000212942195532525531447691164351443302655498537784061574495462972545327381933354887084464990626007140633989520276204751272464037175813934545568982818427350143605275844924049963226184402801145890320096137327329105973420533763715394899326495882971198589873684371724046852032404588099819167046098969209176163959921248171672959755518184610942329620220725319336426719458535890744241309809165142317016197916739114988784491164920051918673457668424180194803130427229161152386695443223871546999331818382303690513164380849959692775065896459122252043757888406505030357914760627688827402183329899466722199916641509628071445689146761692844031380954784349978605402430397393146739340536989805084903467576511304838034758024962561291807461006471096970827742261484382133802836168728329460340121283376069867830698987389336618345106291931621078659316017336902467469133292682022611955997157629856230434541576670233988087706764927753066986078951488432415170827506951724346311454328635262968767152247523062990875443293431350171041402336888285607061650050779131166098429555472331551788556466750926993384927284474533045903530149115022645959513034033967929569614170550210240252494601043568418489612913123806284211807485759792561060432868502611841350741869505678871692574766445562135496196354894417373243676898959455722372917592787347480501023131435085350785068946676544449387994832692999639920708689291224994616418478036299012685969032042358408503786187968047113080338313376572563805510392712224711024379542230240397798248807036675537523524936239607049418140156550361654510614297870162061156176175714089067364449091389841864035731049936327742022124761798798176353907331738179544400091295118962320324071072277034978369669751251857664456297186055232536078493662742577545301009989643096331329793803107860331764151723571099555850018975665176511967899933528620025664375755231948768091868898943634074947917676386111864119024885997722080889292298593753905616184651496839324621526310954271358928433167191374937893277464242330143608989477064076540581266992367730314391369434818670413115404347497467257907928088703982498325065671930637933243740826292690471396081469878488110578077200660596816636270022706891925134967222214486979785489061302137613447182708975336297280424301205065851898712272534418352618314852171036750774680546198923026432934510575966711838364305385841325384208464471222072520343142794463480196949069656467104994547817877818749756351503082307353188521007226532483263625793214952086054486099471994764208229431319270453994756015398937852877392501475204257973131710639770155960109016126705614348706735991570827225123102211576057162583039092830231184067303466085742882357054479875021748364441346685565604541922079510279122481106618051313661910360952863491188694690874953891729930424045940967100260389259884373093729180511759594646368769764992463408277417718786782774629116970394229290299727080052840483478306424959585138894553350424708105100987091599979254515695487822368383605933852083994503709220845593987081626629036804064281173738347672121271921055189236064127729518734835653462395524722678034694984140205971811317432200546785236933169392833553337237108225174565079471281900593960379327346447150785356457030286685817280116120939330945841042187455095494644085704529838701058490418451310029123466858475038807435145994796837276046556764872376214599898235958098620243505291834480845115581786968982489109263752618164943630913651480472638361620399859688493647930001258520669742331213409869498898299923316181059306789692608136208974108488434336867763347704100681521502670599632647763190968777524306870253981842171176597273592108929669811385206694232717029076766470117392623796976512056815045528860434324015608831665488143156349571480053622469009582171115489131836006771824912649023238400823111502970874236777032209303486134924060371223143635384088839271524138990647101596040945011897291380195940231958862830181697928939011700225935181005811706617721981114893758208244915011473590819906853015612886982494204180225331952625521129074234200631580309301379948883366792659830992730962983453469556312235320398369770830113583050735195057825339856973782957130267167762024550164124251715345454380787036484983892687539676445863541237817742413092082729613055591860123099925260039110349086913133238642862278306910812631573566945376474359610667477643694713350023732522033700311485483343955337589986362588181070020349180502872873444810024879737676180126486656171194974611452378768458250486259276450972356328048022312680197044875349629413108463003350906532917554587913196211034507969630056999962016182734596619934428041744923703624034999219008434124323130722194437584206329834880688702509832223297358360844559009191488611815427581074237494704328300147957874996483652987101231423936231469482157430160039528639746662334275503864287287747108968497119332499399830606882856929169263641615411592264884115776272771119682775739374642214339998235182815959836213977185599488180454578442986362918750600612817368680164678433312454862758717990082817094180295859516038819672209991995265430602145647728491922239500531196783536161556339066598109346736847034953577576208741646829319010533202848655800169914507481115380512011229243710256224135208541141085777927640030404404635950957919346871393485358747238317697081437397664047103768610074105167023912207926798523434065343560155576506983063782974715717334529749326213867400615121688637140015010133000200105177292987139716213815148372315787323504561645971352440865437402372312253708599072686768050978805315804173607330702353581838537677828241572297658739432660665518783374187817285233214660805425115450771728860848506304161177856604977068916065244987200221140442437822267567891334925796536384856325982198052935486352080208861561855414717543365713960714303628660035618231735697740612390591018468919484107960652451676579220523675510157371999157143029285010381096664695325659736015468856520584650967752557084094081889355152596153082227468715716317381159991668121890708732614908069985508140067746032344601613156935933814945597536151089865440970927762260520433540980238170024480587049758487126268826148745228580757695581283062635457948684334456874675630913393517768965460035139061705557147717535462753503302538700396975725391632249265039518259612096821833408534224758610276666369836521639745821679417442396226485833360631281648454970982387103744132059440092291245831326250398141082180210767401681779295979815135809653012628008827755977668279094851538513559958989500354032727294668848673247226329816807108998884614867236351343851865866828848282800387265480451085931451420399719287763485439701542729845138601572034063125024480811434554329036796242759682845297613655528632004372694311512113834852530427441053723025037329879178926931843953655773835047203802221379884712092226881254411030824366951547574912936405076616941225200641171538636999492014687701013831715964261467260928883281789135320948262152139086461771535829019900915980127468879682061687648169319073672015698683765083433628421206729001697004035165017031182893064530962500297488494976554820996937368448946757446170912922731612512026523354736737339623470442906798687947324753576866740778914614471329601224672777542182918378142582066358182414890946513766438548889270415386721478082029515221951493089701478912233808713858956898085569582924586681633168403368571815344883355662956294902639427795211777173489123698918263926118351046033717259963982033027394271208400784638424810540768659807367746459254254166698125534222201386599820304733958076271773037966188761375685170226111623663023354184106654898717053222754144737418301504308250921815946674999283726538307940402516596817051438780322233363178503829173022289017070975030768342596827263094526906234466213373942051479202517715451845527419268135732054102136721038400327384335849475865158178312298998539951337636135067090876591515042349333226489555640244352308175513215202243930975143380230530638857247853861976254716375775139919335834916789962505149648342985248956084323439051692043591002013740549925739644304868908405601476229632578186464665044665057266646253151617182217930859091737842111322513865203861092207829581320303917657308000648929823147684842852756352865077986300952385017083996337286513475427911602899295420437787385723701588290355805685545633689368671853174082439472766685915428928415490747118885728881496339682137018860026699621066210208911879239470435416944312938325107582871915752616982033137975654524431745818552994857058312160380157046455631508034826314343717522860345567041500033295881546040224450623213670801884036180321160433004976887296349802438613010387075879235029456514062794597460674380013015531777755991825050727809573931018459510212467107888154631481699834657968980133147272834440215899709458722174684683502551441924060812558527610628914963316973639283600068471832997147810373372261482023186731902920127329484766227519501000710689801955644163397411965880753530679458202829018945880424083202405098869042588581241025854127632060822497848646760136585433086353088214863153103788064035008566526502448373369134865431943980984071544376783161814035261541196012835478247999002544001320595658385050358065158101587368701703252787600622036186638185649266336190872998828492003595718124946931586554838493436922715656730963018422023595644385138884231950794132632860118064006687660011386019227837463712522145620379761725228738410213478228967002558003789835744032285729308101265908299291059253023829307493657576907171518475157022164719977984109997375529355704291519230440798060247383049119575614558395548828882030803725168119716687380706887663200784426531081036753444441535978373187847184844254728743368450340231161394825416191937647932535832692121102815924066041815766409734886280145061121351486384903900552240110010652693659675488109475523412451474607476014919117619962468785612025262726920379846347150231847631233334888103541851364427217406752573826198548541332514858880314932217386044259347465891950821027675130787961334899523568013983042697516172393141538817179375421291340456400382350352864367920528134941529254314024528149492423267614392342146839332557303260595155382848686588474488892362289375814870097659421872120029601310038562158067703203891895552432799545377495810740900972417172938026590363008403470656467520242598518859603077435488718671424209795727300534645088848580265675313385518983066140389908937457537049601794571599334675067958238798356274413745981445946540623614223914386724793385869721134876301596853698791779210200231292194929271202721177330678181703007683084675581545389748545339493925055469213167768289218989941271064543075879431538435702421156872795121906299425766254504584836114267535001531707132051799949571348633065462661385488164023885771895882914590757852023069323625407563254044648952486906150643969529181579011396426767850592747766879283004876495369104511471581887715290941238009072529798694327397733693946449285515665451582543570316026281799098809312356829382018019391211351080994212463069763282054938176901854197012238041872810213054048117216142830725464483849984777877558780191901861401061493102551302810994953283307463319133578213252250816222858853862575158201040813010367205736673437518642479446323183065961969136241857739029123835491961810899754062477437014163315045507316452124911837316341177128137126085906187272566837777167109180936460346601744728206694269087467681171033571651504985474459613651715293033105959891110020393759874066587643282446457382038671159887738804703911088157396238029440261522484522091470172531789413052082887891422404837101610025528123726201241322850893121080263995760747327837060940304383946729248250234232593356679664508972985629788704808448775565532831976538099518549681409206101252053180998213506759488343937983552620640019194190673255755209905632339627668866342247614033569462595314272991554711250854864822257644839517218434529451535879245854599552307778566185161645602866275034303865472363497329874021053572327099064355151450502395610096215618541031843483555435770964017018304666801180979392840129260207614179856981373573511053454438744467230258654605555728340352765788480227965704720613278533382954383045391829755483601616636414851845309797758387804394329150599946391709161675242620233884933610823791665221445594274371638299769028792580911424562869696062950632045197973169363851369474474220472957870226625915373649031983459495682919156218283369417005175333415793684327282512195677801162342288766202850479582710890410892427622169260597554804172918776024660034830555741591223212659395809189036782787794372521629469474249660505216043883165256747954557918215017252358981355122153594092976161631568008972311081930977659444489745933817353341890972687405562826011448596920919506614637204015932725028013712842403347708758653520430068531882010320815056816958380063864287461761063218410034974304385040865077887304293290360194845731562175655455001122488317164709096765257456205700643942607707590241361061764466226609522523480815769498151323727209567711465800071476308237337478193694528313221552152893494569905287291465091267368859846760617397770382740581164048769003025731068956093049423112820706318108783768740991492669001031095718102050326411057035797870215072690502704955908789776727982040939933013871971348505346955859161032920607823768477308594035161535727713205282800017619654258353528936148998740246820640194021013822519913341311744213124421650074955639038943428671590186861441776707739094333754455556396530158538765986600869520904570957713287174580007184628511219538829876306879646112654668639715202449872408574562885362842955615553317272866017821616781146661018858225159361240459016469227126914842107979898781592854041308691771611425809572989169621051165605671290140093443193753914657302768933050952258829511106411195809057627106728884338925729131184984050156543093436145725570894935581876105029037342150841325936940290169957864258466181918628436205109282270174588154920113917192032085628910426205589156439019973102119703916349678265840808448816446836561739529638418632967600807090735204026543233633225917832367177228328617239731838151741061015708462995306302160033051654124775599161164232316614632500496785562432269017439466246555305540710349071885916424499722880108955589819380935076248015329946108730665860565269339544523182190800910690019334498671862656871430034249475315843240614324548552182810340570174722222143569107137260590667466658571938643417732307867188508529500785807704373724080738726770966229578551991177931051910647350152723917753025193574127322509725593145311910319851736956740164231747725216659491884687349034123186698190526147812232584095667021125861275712137606579147180777261516115774810589810044652130518315096433252844596489326808093900040067106892507561300121160041643974705678707152655030303259440953699383242950228919502266047623859820980348825996134326515203055058567614495919609991424537035895381291304370401525844697660424242570810910532835719426769526594001354696025971820808480265188723787640352029087708918975329145197583940644260489274055350531192027976237434160809964351910557453100563066289061771087592901089111477295562211277516266425788550115403010900921846377900456268656362748329227636104268102101911626377189433898934634840592887610236753019040312567867282969186749484338757296044586240157398445378895884002850500024369480599593464013972586339353096452772489817579796205355424007934635349933552198999842349647199105323556359233738189924355152509968725892507225706914276652289775085468617685646390269106172296501328023303134435504411304676480857115766228437621147185274842586126955646359155129726907963316201142928815180800958683979237349632873645154511146267072770031792764074914980908421682267873449787586317147149418116857523007775734217183471673847838121568007542662448765002601645435931072962019265806251714081064930459723044262200910309817906219683214011168203302723534350178839665511518676166529631051168218496952937118764586041137801145212345914654183710242174649605517236803116551980183752875959735012467913261549229036697859851418197799810519584013407820720499619501124978715350010017753468668244644338014465388616319459117533714665515833339244072602686650258843091859478811480296769903124712291879833181907745537191964788369275931106205745956563481747425070948623049400199515975010093668333970064378018248845016608892714341745334125525437739051150984353219080577074127394992928025592144083977036884032284726340690622701751318544690149104993466110048409666593931678203449165516762329902206044659556523002695779263337583670262920038806846773861475169639623293055768947147046927919572740765775868172469811836744894923456341859109448676046559834661176656181614257866176809537189980177473543587378366005798816710138088238246249445801889939020502903264790718588054351186910523592593137760265419742625414422647132400205122816647740309255043795262343859525726989940484896448506736792866622399959016813042367703034113630744991718636196208385307839063987847100183579591943862326176070961238614427020912777396751720055981759230464280631158812443683264323742538180812809214559200523459671923740478120610830078043731434820984352760669068055253321107386644853244997067764528609423126664061892766949712338504468928408294578418382946317408174267292975662544692845800424488417622443209229521057861172568326709465655181664127861943547510309707829173149621198528680296845105433751601479992115366453837838913162615727982099649908129738235739052191555726154317879551124317739896322674718224776204285808049541299377606730210212412359958960262207165115134266190826641339816309295093523599667777162422621073173523984780062921941684376328977904001261306507944293821182064727661183000665447349517199585334663914618423989633646155198739122327183093515996150339801226276039472662536407498923504193772340562346134857380773033348392557489069263938999817894380926462875369384216173381262571056594253008258975048122150714213130183810737212272132323801888732951219355915717654994443834206528115666345211275121760310354384101988483689279926969656393426981184174258885856586399133270041360874802789029717937354669311686621182464197434599699617852930881068559589672953266258820632040406569021082450777626671139060871697447991603024744713209816534082266224793150492648278200153776985611190232124923096961283267305043613153425267208939832096876134564218678454336218750706039278440787948949454776296224801602640741967728302442126599664868573993641483475454498390926774371011540321432483789529957069523190066844702018903804740906312759129487180211536989102028563895970694564455910485764007670325362147489108529327305011661009008370243274324652849234558851265365866362768035611194349988118681048830993126911024504952098974565852214568202438259838768533438167434094856743881020485691159820766009658086403072440497563383447216771366101295168711171085136443627672313480406123914403200154951668863822611569970665162629165780926241130801928405264605745081692105178545560840282686899647750539822535680366156342920464815554948921640050407713345436066040458472907416296092974012761617766605967196855368288773707837212896910120454269748476589342038930644746526335814125684624079837840470364003267284501035843981595189373816218747049109636501331667960961660756216831176919325730685822257420687707501140629027451146527326436002700150258365264572291024179607616245232847162044895981452756062486339532861171529892709534057733957291666555267202941251597366266346657246442864962004722557767483734415794618588231383441378230452888531393124071224576779043828731925655230020294750811513005727625041031353519570006719974041764893348673672909384644630578047064245069383745665954637118243429023889280692297362549264647157445352746569426675049282099009897546259425330732515708217774317961449706099804637201492893259157881168646199813721491016601307515945026205705250933016954099094323210991022971050955501476574557549037562309661088557770693972972224364601049202727683826433011466486073675761123341225733686910812611465498054421125802003286436084031928333176160134589967617915402620914560846539108699241046976615281331043466685329551120393220892548527224608332527828374022348493215485042276682499950061845728340369725274526860510522527906855503202072919855860866466536907808592329589791340306645689178999729779379899009503398446971899724124869698169141447368129616798601142556568083959566290112207683996398450247544711115899222084829525533037750278175113919576571892003161821443095752956437167263055729768998372572434654297577838362199005220181321782287526698073520842400770438064003077140317436427370467746886106404947031122612847768932651505837740163059229511373737705565699238105542547710249726204783245066561411500971535740464213488995393757874794211855400165600717543714706599240235343674731104307625165102331046490789926106943734798074947791206580286588043642692702995097653226439562724770163455451986270460410510073343034721308122042081270323584526274215892650918767736414646578431961542819309916550284652265436614999969930076513899152349782887779860010806441134829780334653750546692326957129269096560181766406660871312809859155718963055872054963410697320553183773362216945739506718613805784054215718562536902121515589878460248141721631013972473636844756111869363837375203386280264233642976549677060465589560148931144114780204417681068269552879047156920479635002637488270375018592800702334537213105179566603003415530636812840432627642456277389107056868375335376878198287779648951688994264966856144849999311754139183640887771350582233636619908575806909758507547790938600365739827455198644143928707987807036769324079839197769052390909561724732018921485365201444258134086299000635437663869984926253569804639154920669103688782944705677576683492282033300747994952812466695683798035047115044246703265871771126205116043826904663767252364667234644065125900974829496484254824146802727061696156803387665205419967945879505728048163759272009407259260273109217183853876678033096843587463517812237733854538768311196054222528662460492413113552558930500629821896745732782865381899746008217417820938395371005771625398933936208386915063678015681546366796214936215970703062218942395999936379300528825649090830315515861698261356087456441321664701512153396389820606573509840828761225452375043501648795147613473374640258100737172648967258343252161713187041169389505933436316025109857883335354935061987733520531407758598074478576428810326655768056493805042073513999691409950585726319893810672590614048138075587440676872825793282777951855557049296107766528754412939039281892437614350424409665994931211441715191318785101311269489374303524519803163041142509385817613551432642312553852593578194318817967556530220746110759379353589031988959437009438851215956655432140658276746364194692860002530777840725085205273578081213130124315688121087434943933899695488716478334363296335078898019232830124967640027066095723674904672176769102310287982870998367949662179510380087735306359272938738480556793196533893110706641278510158953973380194863050681184111529531537635193619839615880729956415888079107685427794018230375547734404707826087941123318353086531632419853356108370548202390046203910708673953909929893040907290175525113355409201916944511443241996136717939195991734083958846749288945897315028892698407726256567557596592051803483730646310110345382890942067504736523751952714444376574935312331610709455069381556343976401312565406343332703662727180990343267138182810747503029828097737019104520047895347272322420160657557921412478604283472493085373529299949051895822415648959078698144673963184420705070331835231548458367531485302692803835010455849759845234467253161388014436723091921706504106079079305341075946167294508562510273798438503966784307078414799470408528512185547039002221707924740922716710982297347919449744679810387617030660967089749653712429096509191373590475635931971215570327112812476818776671538959451640887799148358473436711000101550594242379055021430174500671745198298145458070537685363341137221425080223910224358158948709639738188716353474146914139170451185725280164441595041312333848466109919744542405850265881790347522203798389129933524415235279253089329430082694581238354149015636562101469389934215657676753541579205627273039395180239122916696422573852808582985089263967809905764865331923011850676013164897191619403193227453022759190417398038902569892655101628674928820980094074857690326889441923843786436031888750050892920787972558842425280010439113554223194095060209941207502392605076843582487113152873232674547533462903005540368513902883054173462036974796648594048530971180734156839823972928685216099713181346918945379663333929568496586416060851021629408855332632506491450203384416884900606202943249117081944274645530100774447578272177438482576269966594117592795866822872602196514442200606564174962459030967854485235665835835086259315420768617715942297922010406229579015922793740890066632613807306397950593183810954442211172658841577960267664652494545678556962566070464747874574174401955971411535812588231108543202273241848768057392146610587332612215097075328089243135276495887712657878752615500803609223766372459884942282290942054166077811688581076575260741584277385634281342629969072939853901831579096555782515486130590665996811579927085324960775071208744778490496694359141339910142055196814189027326291866028929820536992738081454883824151179950929958708997215231002208019970061940623833638591819542243158463484610573873914747070709263703911158260345673067010365500837038447435199436797231334989188650472741357625085227736728526890188032664379325149764923196035661782622503861472276119687186741175004375945062910831589148111908206622246334384655897371434085848144404863879272579572623876632510159805604118712499333679156954428612483056186729860348216047195085859343437254092953780050058927902525630485628456316807797750178505391199183251122159507980708376909874753782621616191997907367282630374533708427845249213996063630627979070767710500512447565578220716587931360107861141524970058864470622429027518961470348259063977518358091747786282967419858285894425630241265220862487686919251296316187987007593919284763461613862444091133649238009935929278985954913820098062610054103190885512940190792257873462532373664676447960667479386752327313029951110754897233788717747567502139275627989815229914031530318362258835063373567854228024079448033826030124994572767358701765739890343431863896112677932328699252910383420707781286429899600482070817744358793117000494937405248411412594251740510751090367700136860099658583987298406326837883682192739519891351965564991629694222417942003968129971502411068965719707061170306252545385020319942929711509858219676189057297056321902609575819123288229541836555506241757311522003805385790940340928829133410391667764902866868670985417988851624548728610629108742699890999541614902345704787381075721792678306517623281543729928480882622480889817599117734946300823661319760933920902369436836232831788092138019032570501114413142581910796181281600464615937023137218543284224605997363808647952160004283622594741742714028836528684063751812405840285762831562207681800909668310479233338635774792156545452101822629293872124301147068646604088101634995125301292766297058035513037116453004014420407871946996291218280924462755990492826747304785029546280817205004645005046320642376264546303508754680136885878377913015594892055284015458712072121472350653251371887597281786833211236593945799397546685958550879749977984416039812356962339815650865259139218343964079444657221456363219844113471032485549974510414941135600154992963889783687348214573744756623357802000115182473647278836619022847430088027484556583912101024659383460976355582852581281070609104113348935888908398689955216456520332234885278987496956443784536359774904907177362813572806491429218519207767683797366919618220967137539746268301106480241769539121671042485865231902475566480978782601999285309524208185375290548538359271188450418536937119862722751273196516590131786745082371952810699838330221716574749194484684207164966113419372824293373127621652479370063333664021139374392284093133347692108036636213170080192060707081529920265830212032595127395539536728729610517040777391463755881393707429046408921797057497520514378869572219094344865930142304444313950561287766348097997625287396030136099920236969769570326677579328622704431359207477160384756256128197531156172760734612506437953214227882390227307457166618829677398983933671182463554634741668046404926449832037445748574135550336039229990605401647481478962437036022905737540205694573156873102302277722766557241391052753433783942618437065424615187703544303081469553794937558766368295390180444151556888249118869252060074188657178384260374542370344758218658546818937485761524518267800408879340057791703592967591119398682464124558656920018680211508268161409243469802158232406031334427032107003837244067597860322314808945296020117399715215019226217807252872857603953304755034055812711636991502069823365566515331706453117605780539901080614086009266275810652215203074258854893749098701951094470888859044492662399365546945381349718825901200074095741918444895498984789633255884235427549703740992967634493987207449014260616268055363363153498074466238796698416832104515866668655952080833816183936896491747936983648309797627194080535173481027696227826601373111212022248015934194688640685166304282124425285122831027683433432360943075288836673693705572883287026268170532168037365480726883651506825542498606172014699380111441252177124698380416134900656054208820577587514187073380259306068207816480483895987130431581515270741152406773641651578272800055728108571936265941389854154558893713212216469118449837281252359241748592549791614239265790571837680821361236443580971440119756111281848102847296714793455311827074970364433341493602173480869728510817447185995939330592961500528675062126238564874128403842949397677811679852054666451088629559009989482805176375530395419309303965057957090543781754854302622488518422387590408747267481356404590963571815580997527138210846385798493373518281248882431711473409354077674289833672387579520193721045041275149655709019423066343960072521194707885152359207946537892713562378923348321499751415369079812626952486264923499373364150990767850934936382322280641996046313025142287546368028528161882015769465294969325929528974979705804913335617237398563661101103761244905293934015969407502090944718029205893495573126058956440973389757171103465321007819770621073089863714381247268567144362020496201567985862665805319920955642233447742594155757249505275815911630918468439196965335287044990344313940908837219607609673032116874255456668428728696605113569986583643165542650135502367395627408308680132932020721182295360234985592669547847879346073054556377144380440279592853044623792519976696968950272831852905752389930458126190306816165777912627348401014701675278765608152624540583255983281268494353929341704636953337282405933410026580058730502154546168988695298030662852288821889032098318615795050556903288801977194790252312118503660293092157567046352499717037136982765448876190189648136548214172653187998301869389306271467379535996654749508301939068421478834158982457986183364358221392382740308994379646549004399332548963836114726059694244013281290379412185417955758711117672807010227146546033697035528709811916714538830122506468876508322846332346118470496134994298259000241972463837621468293831390825882374282650684786877812067918623286609426512513950521528423493416071127266183009812580861535282561318014428995846191421499871921809313179803196954575554002188048315297591590571566330089839696760987128825707621948989715774499055938473601002354251384158386920389601769266202038725996575579854623368758604908670060033016621690640741642235614277306054463158724404735126916451361682305467974673935258520833402308108381271280895415209713752779941522702457150260181739611985553234154183847652404847455162409034679377419859080274606226225453721123618363338272436553350920895365986080905648960710920762825984968021893252234787595447429233935538201968300846560569997166224949704717269025524763292158749619898671846814201243833632113529963238305168815176848593044039451285738235163205629590265580562528132766307699172042318949067686378587545222896567806775857963479580715353903802224649264672975912420246265240707345272880742819839522098618583444431926370052081881527005354037235505837169122695242884202462148541463943672445157899095402618968296417794426702152702444980146991484156283791214411572225670628431799210107311266502592885782227010722131230073848902130672091593668075439410667038530678715951200929621712197840710463059405484170507204450458312956628117145300758964696214886293031269185821912474799599956890249690128994444730614136412901449814194750947449125843219521760294745692202566152919555821399272397582709428729819600424621277723683232304035073784820376723371230154841752904909239065493774518082062837798763387793337686621675481648278431042236311839211984593608401059175399979220624257812158092235057347450950061288390452202815084383585959387104079508926675655150912345644917605468177414800047557925360827934708238309657486385709270197197437461482923708500901071445377166838659410416432790944492767309831222761085477407104175632034995803759681864710867880006038363858954823270881795155540780208867040422320810407333448074576711353134182705681351125664015600438908084270008703187403849102411291487146154964407893475220201671960133848448356039209085241286477889849723040400478673442846228971506372296418580670418401524165640974826383092775404390762169971156014514893476228480053294591414501320009745715738732255635016463093168464931094809615914381004800477484265949396359905996180436440154389215737926989663956542997905893058727930112635976496556594303577883323024909189244373149499973161130859973622047556053706424564048546564033587410472245573803456443364022460823338429492698500391783857585443742981757525569867541259914996736294838947284774971979251100317778681396215104294499691031833226964978767585922019471271123870820067989765165244792516405079725515660196055987025169716742694992546400312397509549935339635661206574927275149147257658789023132259304821873348573134816708845905048742719411174837593056472992810074263937361208324170182362070185755127696464991353501940996306344336689109159436166229472748798941051594164844181925872195613957966767208586599030558619174386360360715066929275033708329487561394943208852350048197760865338078563134799130173015596584646298774805779698385471805096742770830402970267389749028520997825739601959574405763860384962760738278753480342605034573061782964774719881424579480333396675685607302019909828710382225719976472917427395233150441346991474662709215854176951248857847411292642408945180933255960741377854891948850150618494265438333530452245332884560327479841608194394791489750913144904580505111801373901419934115989312679128306460977493771946082821351395518295778867978450431560299162947404949091297046399754728892371387689910886812297922316720844037452878394022152877549312903168874932187117941817430502942263813799935611894871396366017201418534608005506222594868327458424251504488995326738748521911545195207826879469963566343592730248430471843298071125617370499951236354963334459844880533616236670102599481138796423799209028448755535393243204844675561566206002199861274432830441105777913770299438065014660150760545234855110483551159085616784389195499059684782788004463148354671458494255320715444744582052364660706525731991188511517635640208116725292384117331936043871181979554238188234193013422471478621288984621059346234855504548567037409367236083120583474952704375789776355563484108117421549623040103419629707665089203276648354113163223771554385123359364370579039231170180356463321046565961583578021378265463665717376717927199400684106653818914791773754370327947365675738088246013198516203478031137308182777582550770461354920184482828898050964933812651720975425041475522415320532940271598165048347678432926192507461329748506298674701944713994049256567494546447743975785681985497669687878292433054429634459836824186646645354253174635634955185839685000190785862381247830080618281793112569221962724421814395062291953711470630811134480360595757917304535597124613725708883248700290641263018606206081510540783144240900663763721916020779442137165960293392537405697762735738550784699057906768510752893073384220052164342962546417604811189674352078043128560282422232473646647287744553338410499383355226902543883502123256953410103130166198530372704842075129582628622877330315809245458521495953404399501507039029108266095477803792833109565765653063254495916006524615369963292823560922971916288809100180540413585216286967481476546540338804211857569025789082294817413414146213338593907868202231765198224336744131798203589268178476627714851483816702171564503998908071838672237476236641060321147233378976434065675835765045200677298052272443773101485128126771727909036278779073093712945787713195024275065057936038310986827411060178164258124841002747037524681138649389424313416524254841511787386681752781956996903781636719053089894148084695372002888607569142324644155810456550302873362293792332913493027578954927557984949162308302953580537086184694812543654556890603709278003314257026438077877652511066739329624640899223561623462942658005073109811501142022542151215909308562870277854620433323481918361275939389419447965650798717316644801033662648716191530954997855538799682581958816190413245826672763254529609276550129577342866387264956774509443807076925224776280954731687909407841192849257861829414817161969536948572805601943290539696325726676241951984936480987647083995068001709426259677727468105005551159496404980697407190675869433521727164844585451084160538535972525801317057581596074387779529066554385131471377320655312707989908904339757295767892343840162217349686381587726586631715107399040328632431136045105574134549922529248635287919167466043745789289280703462247018375035858019417360066293878791025886459808352047179005653321241939662263777620494294824770202592713201309397928099230173030098955889642224087629119178375773956345618352269677664520150251074704878636652608349678465191370584720242260612216602592558621894889474270143511762170861533547005062419182632033860519962362270692316319921634606217170873742218904061413911079486477993505257818535979605098516700484350483478374201383975385971141076834121173467886431533245644614619240124136393162327621967057924863481488064971414132184441211426416230060685164469440141507504560353734468270284574668322225044440034760314906249151689694339735415908672612071029082218708796946842735684741022943135045551397051849525529935881506719352161930102536272401341171699431404406178921738137513999321659792778801186302397278926108657801358940360397251967106665871764401853895874428258702595974066356915421635449988921005176350014965140439730205168646665397061634869592189187460091287135698570955950133284202212450398752405784665160756424175243690962837948372501679184511260631309837854565013943020607863826843241861279490045912449350301393906115225131358485700232884342442747722930184466097124565974719358752980660429765507604389621142694994338092722403393101956350924914462509192258776002801892960965577830522088223285470614017225873131415592243315578383085183357490424797769999734240613495494909360094273296281649454517881429007774769768916359415952027344209427663005517352183053800233664070692660111068138323174224837398593932307172987146387661607825627214719239757667432155473095135356200817003864228886953568341775163449627896056867862685462630900352087561269205124238700273088858049353643647579225784442135445553697874043503956863334320255220583737475538702601832922141690326130759184381645671456550271865733832812093718804740058413355731235457537561172428025704170254063500762801287753500998924416191119302205911201668494453269364055282076598670724934218523235129456253474681212743342294176372287493884822125267696896047608006789410943140025163083030354641934328644634492977160877063900263631341962532109041887657654502414469272855535730820356811238109525724705676073851457261206064078283904147742514492503651485665407880391403870474441711661391851377916413257979356244765630414998159339734056747787527857747834921929862387615004049325892201872423082638586895442697327192632090486221286365813573366937111407288509008151151377314518195889389967723216874555956579397837814842935289910061106564872943875315157819483995729918437015800308207484606091467223836098890989269783421646471292061357191340909219968788170059878706909700235022863506794341384690147877277737089610110953372862872314363717712641593481332220555176170225098602350597794995112204695803812530334803530490897327371655451710979309547337151008708999222247982221664741903728755313601166279454001089747931262967819662979916776137373991883000148824327028646950439496540551234447458270687108015766778313766397745926092748084844131375942684351781976057189534648641011664855357604135260139940207490130342148376773418126200898977748134975437885663053119408538046943299301580960454768397073510848720714772873281770073183028571428885089887097891735089417464019582121303356198305130362129437929516176378014680963924190743755769177648893726740919639698957946071453574643478110132669990683899772960371235865765254267092190743917405983116999596846265878804414119334237246118278404896582989419183434258134162905986081999268536488753089883862324844885763264691735307243127056026822314390079036193686965757552073350248441976287342632959718859646204770954912011264742637124208672445559224415450454121006396189965177927527748944805615494335598710400783509845807329255988699797791781387747619730233613607716419524196986881300892352413739901129169294503737410154112018281592340304804217743479135746114290476510872822894576752763383353942341452579418783833285413649737514380643678892004781784646949160519075609732676068321569733814623801377692880375769323764838689391212788838523270406539667074156876869959374012451501260394887302753823529565703565100508346240233470237590409282700886838797235469141055078328579058375817613678417666658667051922285607025170466457103944145072554850736977735462426022528600993772199068700220893480637529656933123523814350646243248622193995232125955268417501785794116972223494711076696120307980544950054205173255428160830501308012212682701924038699542192847162617823946105960909965585762088659403638663812198616730069299858181225078865342913618187077665528687399538390392053322759523864110584913520962824640395562016223506976708530175716189299881896941619228307026537973748366520589287056413842205098036732093262462042734167790461606771272431715514529739730842928193249062819839446416296415528803643285027769408517200252705043999329566902370839799128544832706594265109929916322951454417411567491515759960597168493880384800224779755653486003824577961715032828751686090204021498831526390591799137160921600179738230378523948315580988796393296206173071423598086389506643273027584782726508750386754969454693455297691626604005576613956409839560016371022519560135358809433655359945490305211810501317394712804003220279099157106071708631316902133829564049585834932448052266612913696524638055518709606649850898367390783377035740043287668644848877872845007017424860775517603314332713269831891887703684178119271592019861617232268778902130882067902965650855913114337806186324816643366811070025020307564554784274660772069775473035038813267697074818121917654254642913368016363398108934111550202111025133793881663739719073413846260647755646453651242131190481500294597429744590276330502610626598435236291055982146784878248339327835252416278164941919867848945449450356385029614980189521423756862552627323479340032982642386628250065543433761442799693378604431339002691826613299646650932530064885990587332216857009367272002263180291729275386772602904509982151699111205193152520207131670424485650865618142988206088550844680162342731237581517788701309323023470080877622729835263750448528794470510877662852950392265332211027578660441574902910591957664026961009264276200443122995062578421623414669981084279464838522981631710821836565221029630979041001939071961036955894649352711787783707137796486197791661242776154639311297458877984078240050644641122832071538496685215708152501061100887690885934183327712971572594461332203539076579462839691156576153916203912522775477715255391186999694334740078835573339545340681241221035230014100543057098715728331194711085339229656438602552512131101172941739313424665977546969104849955454517107738084241137253773653493085723812400261394704629357249000188537768801336669144073285580890136856722003694688150574648551457027097030232814195745836709198168402816404927930325204367376576921988209043184405473316667846864128267804594745551161045787796142479292171457907243840155749111501357695304684012827057538835884490749369008974899514706744773685573640401955137490265548376421840054475875901762713025479242500473798439636325108854276391350615720481409844024808891737908246764639154562655738550741762534243615458468574944648284560864784909777174370544169650126434142821132898093644421814728448061874703749365398412244805923089318169186519504116705835301454295411109179633386137184685924929560331268362443627779545376637639150598271306587630959098721659579107493767999389735915628966953541106090872678591895023774943440649767063709333490120611217981911336223980579733493890880630428904679561474808829425918713313473119509604673442514571714112860603241880847852162370579842217546494249456670466072510758965173951169073897144687113004637921663042199781644152980761898741343876293101694004421626292633792031931397099084774317741920639448720371988428984846118072457032188986879666342285342246225536615924358745354408980319702049979616382794660197614403985517457249213764363003148486221819688263333733011371536628917427795872061835549608988498641203989284101801268503465663557141058265574812263525658627296675235309765516638234515032755830801846031993834953075768205477254239344095684231852157109757671512432448771789016147563263803897583949171807817075294454526542981921583884201794649373103430346828614899188825420939441047657711536462066841512866489683754657617959293257910348600534815814760343692261574041437549415125925252030376658023419293052121609059242949602320589790600631215322549823744985380711676440266064150354561641914163178461801407320965651009021693625516159601520494845899644741821806531231493338363035140851846197650596306057455761417977576570050224877075779664480853467832964761306300998084879288739351661068736488043112073512859674647075828201637355242300793287075183196015800068838157430981936783174654496321544003323303740791186127278571739409971093435301089006051427861345288876216799606069495064017428936451553906864149553590742475505117846165887579244430080845718341062845490777780755685464628481003209719681144726270544181938386538609213105759632841241239860176147091331366411619379858237752223763993981534610349921732640151772009396345730668758198653185665403833748570647586102232232039553696737712054127455976691602230053619427422431294483887091378537642616590699439093203145521952605081818454153820176367760113119844544829150178978748645454626012754913338610357556611846531573440500472446847712797153377536333050654693955309203795888458463711555020091003775698473871530389062332726223954494872938130202193450609555539521509390688691056560938327970362661569995998007193451015629869649335164892954334918307701305766497526360415366339174822198144127816730118211296384078947837767142226280049962017366274214791981390555325631687176081211804758029196444235131437510797689796784858503423786645584053180338078399225048893202636274995461510132750185907177659927626530703708097115991029874829328262257879490679672516526687410529329249087960260966213229582662720777308849972798386179631747854653799096977958235125075749945827827457249540297410236371380029948195407647931603967235840588663241140292113700204047020307393190411005485654238910984137327278189031847035491974952477818367073592924486291640471974233595836178690633698676031029372246210057985236820323759609392339274727233610970049306550000726409065993433865905424176422529550806448212891456989815176607287178589300408316313734710113024220156720932890351121537871880776524018044280808796416646047223754186138115871678872247564899623215100676078811543683738429762018155767438714968285106264650500071646163820361948625740262472930725277155293560643878891873937702176303907003098973266008193901247849256651327997412177287241746598499469618887616660667512813264840272035372385618091898864437340421904410424795537716866125823298243225937695677677977181987280462023576956420253920509934042430837549542780367232255217127060815534137940811202396991582939282713973140228606637455211191516666242913742496770630770285106388714091239603718300335545793301619525327458784472963075220858498385178797792618935469679280703533815521548117941524139783168604810065349634292784252906634914159567195289377126601846224402904470971752749962731445791620160712101173301498985220509168713548990894875836180831600337812614802834213645821549624146053358687051135469628463972308427667770058141141703879773474988833862047142939631742603766384337461068758415729232864545797667576143158303053286023496286392672291568817167521465055973083971494959530193004983623740626531911780300205667518249338653244317662877834994408577151453157034484670593386488555219133926452854926610289667410474900109294816753898293605749084679194548288182080137380901470716731411888639910950349776961874373197880862865656239747556669152665516951755057969943007789259549755387606305650887123085058115401318858167415145382014782944310208309825857636780767707027075244408891493603020205303798683778775973040887271198097833800317828066065803522353511664151075325519635490690256680672536702738074444396068470951289203385610458425123510908769823008192453231210020423412122387702138948702941876341797199239110194047025737677763895488480186130348036668792288338952784719186382247353997567233660507710614803641323290926420255190395449248803494976187264930561576698817105871543220897759072075842532611186366854246960589785580772340274569319010041189346669484085862739920729304723479527869334272111158262277751237695076580569845575773448882414644966799560199335806087821102863592510125694451973944914138115377551127798315629347323206085291589529703715480560246386712698622832062833245898487566704033039187472761039599493815873374965330663203322779434445970673994339002185056327142050132463031241563389167986008222651249022626421442315408893301222221271301732390111558816871030956854546572799035694060099884504650568730824728341364774296527259346334813840175564328295620961740533974830329355517706286865078537424663303018635519168893285538836720159619356258798232160461071410727555325756896028015929007911278339870301914318037243120355849445194058835808412353183955019414588503482628738103955382831572019316662333959204320361589063405989710284355817321081834579249578391443318457566792618590011644916311838817541660529659581830579822325594616762770817567549008147718039201120925935277641924222262950472704557969808357357214991632389571954026292788914720158313836794747811198527282754352299604156475297053260032872490005099609795169905339671708927762004937253947651438914980753293327486075970087758652616153485858484006790790457057178810529961621281220115883630479064876710218166813648108055865415729046381322780546372580355621875956198868240112050139245141601081462550924298288029168337886892429877580536291637283987009740039144220863679215980130303361086060651377259362619252237702747783461594882789982741697298471623385403688172214448339009137983643849891651564712567712255134756659379509299292135763737829560045092622943009771609622806989248979935199865440957202008578999709112388968171943564191699959011160991272202545378681120820465485011255165953679793211748277787942773842815159841267767660912265056610265994603794665429345487307118825180480807101714404925108353130853386845901826258052606205115125863830712689403104618176179736504754628814659239721788815100503093041392776262755406071963181205229881394764576972563222767474324040863501570354093055538960558344899401131010792941541331286557917039873064891039058057286106636191263996886089712416251545216942003986666990462321683401491966450118887365103316601532517702195169845045133488391746086482313559151945410472541606867500214215036549917521657535286842428407853841608344203795197759013873809620151955099572563402490363173343301380888196249279904982580756208646594882878417256020969093791680236484425873315630792548096392456883206043694204532793094539955356207860414177016412088324630724956108811516374979273178406399566124266663091582953210431834126163278490164932423594378976057600446592502591365967808598147241195952627341849134115202390577980700095857838304577149039960488273866472353750249297259174166245131160873834185218360611222036842485294307860798627933378750146553382649118606845924036214968664498801329991005304242984892389527648573433352656336538729993391260489523290105157813943972787621960021643431889491050419217072995911354337549794608400046232367573090386667627208386110786280866561105860049580272315524967383399483183838563646102586155129050703669794410142076048123920341408002080197633515562444439030944017809103908179843232316109682057076814214013824608235751338412092826087439358140160509441843853958116579269894017366873554084262514157239071401747572208727218637648055880976803267917898767070237401922421288602982349180494763443954843418527395004467921971930812671074559759268754685637382781311021684759332835592560010436476607824263099428298947525737681765504776347092925403390948342573718013364871566835136001140544468894504091380748241875948295325584464809339358027153113841579946603234260630685096480243962072322756765056947200578074958045952584045094436840655644087819509997041107599341484388308072647355970698808068468277595510127862460861620911219387701708113303115385114172700538578758829274769192107838473783533671153239988682167860654702854272524617479792391996270780625113941389820943322873155897019160897204936974016045532702260839060309336366019652742109670356728872291063285338042147270933793791764494479751528332144252805182901087303042843942291083452624998239729207019227122922731183641884400238181106668970345615279313126043987663440151345102066565895501309875213790430464528978335194123311296820650209503576285712947978156469440587513128463052935579600685029811572756426694298511244400687401681255108760712358896773205798265028941257753163893324841430317365462946243538084192997482753422661679116056497269816562108046304838558633358285111707900234994920883756954609817280836729542650630238646547613666085170177049220046592256901659578172078115047815347677989801797157480496101883155203015386334968815499725185022352350328355269800821831740243180454861959395829082094844016570807746822125142241737978438354250033839841632930885549048007941939034249174134136165797469988604520737368534933178131316099984542151212494431136981803661593118455678403116363376120154753777470529879107394335032355698209014636541555624419049533089835171660450898025774080063931752805370754427416649990345978842531325361865661618654122742284779773099436100971876545021858804942728569327456929874664589294643586480601779545594152944034084809576746610092704361876470774960855178096322129058467564455975455670728694254152402043814602251649827409315755378240420255144485872234797460584016394054847517212076869557267697103334282245367826509782756566214160743360200811988884519095658781220363173049023276729457469797969276827363487246584523046326471350782875677546740230690053088974109212247227135058887590981767937380405366885505410975356481866782674155898371446415912976534233550103333723644572300890028962415735352883806346826867184677731226076621432684617710309297239410977874548151458487992997263673294607060587861351317606055259452733808472283140825401505675956765347549444837107301979095349622963044357586706723638193956283901130440070656096843014416621443234295297658286640297798420535829403126475078727431153040729076766133472869760328224566002600973668838753763091893063260966287540843589119882733888419017935864586693642822649151782172113675289805649745911571339870782939170033626871330908559575239773580246702006548972570900268116530217901847647176520281329505678483460691267919625211549552756612549267493026108220896851441791229236752494540896135105946734854932760760985444667458179759065418002089001272474647703367509083503007403177043908177387782480580519449027709318637789036209803784121370853429691756173817238185311349983154972907259250844444663124209614195278671539262498009688711152286375003130082014369930174211733342493821479900450166713075730820839754974725208033914425642905017446777066176338419948419095837648716798731336579579111744561476610236197134266420585681936676161310177085658356122318372941823879701477065947096118924909173733302461170944471479952019543684892308847713840019860554393319094197949377559547220534219249255317929287746915357565319088146723560846508843065859454528797439163445493711515224111257364343213372373502664807853407269304802307236757315168954563083499779913658712966186357860803626757325459164471685531587701734598345131386164614895839161197713390232517344141057214481787699757402771385118238986329100706418593915993902166136089884526951891071772835853297516574723972114812002909698406955365932643226812413325562557479476545144308429162612310564665892967056400352985005636681291594764913185828765374848579844288236590629024582890515376877140161449451366065287341734774696754189572199515940459762358898100112945614009457086278354581901884780869649458315560935829347686988972022128772682682208097059163557710984819549004737920431296690278210932033645434321141445720053248254878438543069870296254692889126428973856790391707234090264330963896362316647062497204322473529731509689406334967684159300575394969267986145927116677650288401016769979127276921067416850056914574415587184478974319109998485398366184864570731190389676081057397970267513011766008654916476693644716766821664657365206152170507654483702552521510378642484430980440165463046575344411592202713571457280585786413340352295327264964753172031899370225055998003864091967576588053822222822578079934395956496516040684039819663986240805869870089815357999345302692666658118734352096788280485935639401258496642431309716794251551166993717542803599183124380492381707569421991480989294554557057352013630271411580763836609043809475408584455015602525458779766338358844247464317305003706277334205641263645515235476768540494291910143513731256585031790308086160727960596501926138786472078457324577157771377107124466911965977609383745678314362705930666722858995104922166839151315484115532058528522589071724465583638575635812107354949313707890732584157513301648929819079729855874331216952192417094393204387945731528123090761193298118758224504106156457540769679648073522736986794763524252730459272663354023756754341009920839352189424426340118873970286751792649895145930880941200771530786033912564635241258632757370638717554510085223670404218751388254548482199682754536246039872239746601579431051881944706571933410257629519550154330858978705816775765838751172305206264423710847627124061588672341384237137306473497559610418503714598126978260229263815724897014895911670153188781795082058404816495361161097285614862062507234381553023376183203665605646498455630824263210506312185550946447070708084567832711139895665548445529562154297431543117917861625098509277505308725131304434859534275511813724868538131765563444396298050958771053912341225597830386763055373283636213654902764031693974785389087844475765556898871933863279799672706636526403072675527951354514933975113087145648204632875650875973715706512169247370710987384467862778732583666878221021940784675553797243116492162355686185468979995142887912469712606276054900175590626498208061031819263684353480776420718145037641061776365659847027153986087975460113032616097883239002932497424309770801043588600431122217357465784348938401873690657290987881078284146966439448752326307605162920244527543538823188772518280080114005131088142142004922763856979167769451468051647376656523783047765424303687040125573847032845048269782695366487039027764797557538200444982937675338282312209570910422839057922647273482932022725278694755405444309944151889669621464970429735615761619705245107286444380493856406561698349963369863153123586584427663323188204032411986102489670553154945447214553025856033999172530352593015257409233151808035612474294017585485557132590113831239845672787786228104362006755709912741058011131686076614215316201448010495153616587400855728158424302494722802904617894978846747145876862931572080294615029013482204491869341894995960758803934664697538265929085498087411727389999408718488655679727394742467268622993390847567533125771516271341793666486944555973059881410894518386743988964370227474004681246211117606994048380327363044605154706648351397092654688024473765305907611984331408049331746627882292042236086622912442625232015939064676734380446418059587479038177560838613692828523135404067913756467958151757497946917486158781807215956512041362020327478553314876142370340421122767747674544565917410253004742090820395436538320665491461950153476287418412818615956820837436082554571916086198124161196061913817949127384704367348912579101759410880476170289250400355800135827285391330623289792128202523783410730721351196992676351120394280969689932960205352039535487996401094968556613389695200843349900981941451023105283483774409509442886793248100611179293979249306667600606978347853140898685468315848455110872798378666940459501313498523277970259370251926690081723825232592795793048724838735657513464748256310892552750749794641087701188307366094136676504918043096569563200659253337326171889673218326969226891405376543230216408038167920354107051105425101114776186287014805018040817077332456098379506465599221472605753324173826816006215945810531631325227471553331899676856671527349084778994267243886191704248160189224411271076239485491871528555405144576031723302352871990587267628744004337727502463073554328548317690924206833065170513706602817965187981865797924068428825677799882310372792559317215879162881017379316260408495641338065863052354498535184906858705281512767172835939087184707420532379107616602059946397202782159148048832720383526443113849106154502543385268484334528061556256870507393245843061161103677002767888468121371178272900720408299612180957872725335516412202955906337388995446357927172351880761909930281859198092794263339927089797685575222336682746445790085672597503889185687194541490221848711229555045009280519977755726195989509601593134034567604279273387029716272146233580989137011636230850240296009022928784878286403387964149038613318317990689363367202354586714819488418530859180152623216204136157853434145258828726842511051771558100480006556223153823047838944013530166690824433639293477655362970385143831370331508670582899261179886690143562909350810880116114476338979721342506738082649630487478142797104250242025814492136760142506365770344820971123597048357301209768241116554095599628061249002804423832434499355266954799492015376923829768473686076304144704850772070255206733844941018595324646794337297267255772533519377941084273728761350356710584057471047337588683573143163808981533631978315943463692282086434654701573695690749185404836299254150340944575273849964858846433065047481675947224749531009186605992865812364852461273758017043412338708853876453925487873516756608181099311940749016474026374783335853552895387801111918598572885718713486789568936071920905666036706342243863739337136029469112329755435755652264200996411069539403450031366863093692852727924477767780482678202470490498817779008314487002588808494620891364333327334880966015616165275954263708272939469871596090321466926937611497937929083594213057963354000288680346933743711852139628444831770119371241628069590235507801789488026629315559125355786502669173275847504668134406399018735158134015457615806833926908325395069073495611904332691384572262820208847464547849515558756873948666068825298475528959911117213760470600304211705858708507570948634454547835737215494351400154464422561088736513390838376728582179444643367795255457959393853665442520533902900943667563951791160329698605901265251831495806936484625460255152356946987334032894760151988433877509582449272000369771904110232513422996564508657456192750880999160202245168597105144720078479079930691409641531242936365096353562320594308046532081416672093902687328863756479880308656924442805102064849167718951248287142489002245445227013174597526951892082709681569767310558238257495800814374731781534968263670848599923644517004831831542594534582718430807863113209758133324070567331496354368791273056314641741909411556099369962973387912673838675789484606912912906661994577497420847140327910732222399515526015996601323837349492844779765047932382017501164475855500996901618182395362706976411231998927007954396638132897048738879407078688383941644597819665344139129757052602260244872028776164954515636944121418661862339209057394779186373382469339094182166525104252311539495076592361703615831326548251008832126748069188551131283171746809117754465328642744089376280741009582229277402848670027602423151223578208078761138396013832133161501959739195727454127964395000064395887546420489213029005527145931765020481456341787492214986107089789216615670246796315422724750666056642453416045516114301106690378233429016448525706145075094979774192117624118496523208416791455358934773248978844671123148617641744785589339417729330422007383927978149427414720699244247643339967970301456065470882056257690767325088387427383333566523850735876643081690551014017509925557560849476798236028537406048614557433696175169153409693654036710234077456210501815357133119632186085146348705059024922569060545952493754942173793006208151111907661775863442969281250804108662915864020959065828107632139775800781039150108878017276878374759049465177016781262789883811311972304696671583206572499564747844937915650169996707851760011017606625463214760674437850347758426888780318626945541493735392777596774680324717926689966573036374415136228524017225896625011153114920633821998531301370283341926998615215462460586200105229091758041957326669285946554964274933419241418728267091074272932767647114174679953692346809867061568394218557103097133337679772962375226318980858885194555897947605029484296271956052041475542893367584047214177569947389596018359183915753828215165439928940511460790501767224125653774491629358955128647475138570599432081870786180820492112447046572919221456428078209497695474458631801638119116543911292733149267320223797140989165303508190898710343313917872461291069906721325775379908694700468527234849086591003683506795873614514562573194760710703181099394428777928158043793957496148415268174014249679067189819193190600552100066025655958859043832638960087342655938120726889339429437045410489362077394753017470392318319197835048059349093366899760681361432236540431096342235641347339287804793654444116934109805844615655747942926119377814391872446916951742594213498111875642370355665166704234006882606356516860153444781337978554336021911921790858905141111175038505236949865473939371896514527677583983790098631043834170258465133305847544395101773108833197613787644346633246124222215435292846111293195602328278791400342965273300148940072483293593331748168489766327042777349001689151542963937818745502410795955393737492185435932106121141516565206232641025589836746882879024642135142753826675321830103616133540606496834614504235216559125259539296973984633805933066564107585073883792085495531661493511647654461037539842878510551620491653087930482415611642853661605760044949202388193521047116012983269031490203845861549730221871679560191355382625189044361152424126573513445875162117180801821763227986810386384198000579344162426298856304251773695768076703142683879473447895192941846770864977762583798505414888242688039577014552861961019509221718607084199387303811789486557899537622250236065755217981454205178596816136063761483557100066344507100654747132939555397879356839816182686551411475425912380044442204013971617841377038922032689121267088917810581497917407779076985750067700136411546320461276283508987862934129395264226474278433625683956673675331953003276076397566998874692620987259087345843965251783902585288597635966288804492686483594745288725185684173998158369833142790141955613678394136140760548791160950302837168447305297508351332483759533246800292849162971673941896324180739703223963895521140936629428721288652419292303235066790524449416058116168155633341980440105340458743967547696869813652305273478860804613488422060331203764256419279713421685545902962585802535588611004761552252271862899596222466136181545421445655131553977249168092058286913385331966660055817361957864737988807083463236391942115874743525509181063681307424325879359316795510742348491523677779572502949278830973252719975138507638918661012874867130709518626159884243583029274017841566095312843282202701544225632030020709952552447796451576565121786094190411980752469640768033588003645655320836811243562034652769838262903507736411976055192495661178229573220818958318355101546014766062550396097693814875009758762482345646195025725622739212927022694859515241905673945022359722804671662187493940919449315203086796608173347757836582973773731813237800351844714480745157922927114606052565016366612601471539484502823333459364081993186418314326517272726000896474851481215039493211379332564154090201382322259219171831584022854395977487330499505609211021006859376960538186552094183198297185158218676273966142909295353658296595150370206903805310336306467870456055541248918777842799610238479489239674156895784359242910723531712469159584128272585888101452458483191173417786922412046188320513146509460017261050524785020825299197271827098602266158892595304042718028145909841884530597107638284408163636946138751616482347558801865786626145743478465448574027818622143556186338990364276398394051321901612073407645335760490327277791850491585077653349904190265268788835184427034734549955331494680502898168999439071034568807347509014676228176820542279144728049065877877733084869081218438087808081929016523669117999047845964293344083286556023086366359913722304715026195105343479777514418188022817484776509491786698538374788148736540859353001977229816938043228911497673319927845714917111629514842350648716964025996184015673280103050719261799551918351884674151418971928067586603945021513379213590668853241031444585246048652620917926886204005818238912841086643412400874446279830450396482946218736422571828448376853633262652628956752866586352400081637199096091775568607313116204945439981772725833278572752727719972118385426272424214809310322189184114954381178509197028573911032805848975529131479421417839809309753745492072275743461854076215629404296483137578040069102197837746322746764596459086066137338409290042970766436793909310372363805907359723247380531544870713853045260883385605210503428366108296560975157762268061079103333819600545711303450782259930823247354021612879179739509389353268615586637442427028656587124994569227086289122554414119188702924289418546207969856893970561142154884325371190555322895846909991591293914572866280848212505919164796363541650300094232969652710852593350936015638323243013111091300554151364604966222799416505907504023209230683401743700112407113837847577094081526608188705268263804531933666620160660971573406974962284005851981440388407868370784047785333852477258806549070270974980376220319052018569981496486041214811225265032815924890905897344534374192784373501344708564290849715183866135234834370262016690449585997411607741914244188070013415060440915902706188687763402989036509686412482358398547464405551837509062832603528352626976590456949027624340907526758046320823834552381219248062208124411966534981146174046931742084194666907749225087744291138452758506288800514794954417794207100214711530592345441524242139113997847522797609394871709921118729148309361746686192336554759799717769981890015103948723555969638562041430655768851918047022632942480702912993049938894362191240046571771672386508150234795265071429777714872339243089635753848505319430655933513786600919560760328427045709342051630324798311441096685815393589497307068357490084389390921703327125979174567984374469546981651043020966047991018211766439683315499211787753284381266433764587069234840467770193045586234507626395884330606892710399453430251564087791873291875478342307221966469732365950379385709851750571726705487395580772229401190974932671315255217085288942919088155701649838051754023550084437033001535831541736718499741702671016464250154014040299968314560902620369572817115229889898640087710355855708169219477780191600836044125043399646540584397846503229423540831823287561788471151412472395090942325739544126917946408513858220934940979439049792952265507996512212905830258778706056193935027963346435234865194063279991925070465002177779406469141124679217346669018204411331712196161868379687502488633685893786591577207259890369068154474029961708712041692848950149458360425370873992558475387176625727717776042724602986558037453121775852306374735851043719029380184240774270091247932127621018446373503872948077370945512303611696361842067979531331633756758544352148614594575975613768380395085529711553701554599691100517507902636395188186569475048172451996080088082363932089954187618897283970040603756596901904539998707608227408827572341633698720328082295345525102498709147143860709535254415106102453209008281945033393125760288715149833145450419491721064308313264788153005161338893739466166921195185444096135131536077681794841374305412466612526715281222393597269958012121501272205679524829011957216033079035328789215000615826788215501800377691793567870672310847765370666601470397208657641353348671422949357180231423875040731557231103848663375312404497327350127612505225146180966993381021577613915878044925007121849801885149676929606855043050089728462828317304180471283534061669639802918347630550969080801737098566615212037174191130882434381669641603790285008080812191329363267051778408608561249090347445608457074823278619045802712470655503656895706921977325804571788989876324466508732849537376183426319478940835908620630779805654083994400085525032116156359166443425774138123207729385978277951609038666954786411313809903429726752345959844516651121677572766540465906208690515303202912511527641084733588122607115467074804337795183928909937315135084758816389094283455495055647215427547321144410820323969087942261145899178014641736719054305019972192843210061904251519059336677295718374745280312545864317953649152637964173832909021903077217887690505587244629505240602806880826161782889992630927817987083943884010545447156857649356114842228921647640993573519371351781909623878394491864419804951988620792386415719270240843266764625350600134536924991919227257460420915304953442283687144939821656507736768321482251931723724438226510166678944985609955595465094471590851466515112077047062542125627303872446794691053067750313575914512006127873334065890305263731738075834941069793851113683877530197267974931051194718102839722002951129732574312419282970827251029698522606418858773175854977664947678514018915992948661408242626654549495891790504648055302834099212256090408768122926562487785379858030333891642242974113038058174878068607830838321668151074561833184443198206149676493070510877083670077105750470457702837969824235999565111769988795843730718087236083720285635660815775082182592343754857297959272495936869585309577261590595426234234810992361353082459499135833908039665975077943131416803638947335455336990140995405112346693324256631848265970207138660818790333151172585354673146517070052705409606009286116426772375742314951789528860501814656815960540783341235458390532542053134272669198656379633115304238308586393402290304061971109133091010288831895183605997026601548586616582161795882509228358419944932985902840361244591067376601590529828026838889908754094710408576029971006396777412797002995000793748609137007777255198394773182615616640902144589880164435155033522819139098987184263602459458426227365202316246438464245395015821671168807375407723608015601014367198940643324365824140859757125258632601796913494974760362943281747621700271013797031050192154955993816937632136701106815054887582015014465877919243844268116668444748936582452632997302758954601208665362704909299151614160394722554833392582563795035577833010150895610265622766083170743631957007443924556283350744602811587703774068859658020268725921216784039132514213010759043185147248949731629589827342610162993658027692867758750163462855970889459103212275555356525731234850734497910216612369615153059427992414237006619766053368173036114035163871050069748050465758157255752490768010982385367995097444351285632077980990441395518475040780357083339998443463843020624556445159777113503942461489551195605416464920871102250929181209058286135360331803805078548444150587511408838109364477764895545581007536863809943352171501220722636240331546139043350236191219618591002043028470861883264799191662090480698572613425259097690420630118502791794923955132461366629751844678355720725693226496718426072751506272982869426885534411552270758490777693721771699677928910962393829347146779763763886664756361654848339280355103419336489601860417243600700627079214099876628362982352385206099663315162310473213596164693701425151158723505812688685303833698346520781805694019210685123726366003200667597510922815423276075833635122484589945059895252132477948072754209146910858243887417046474324498321049371002751109393833592841602742436772876759793260705052066820920615422550660985082052265249310268889967629039780187578160715302412894301582254801635148706953660899877257158859770200695739790519081683071598355695711711182395951135162747820857438949400671312433807505742134666701966728246448602240550864389327797025996250779136154853469577696148730280893659119147344953546052680669274628246947270294464851446828877812347873710319909673358969878953741407081895459689769944953496535996073726066245128509538648319191238626157337735955698732644045044129878063410816787659652868439948766489444502255405345158921186768436648288905310290054259774565712396007092988053119020574079222965238736949899295512425792792262609547264274096332404283969736898222854338036477737243233584953557003989006536388245926904815220187656152078717980451802888460687895676567405156168713958458653677632480249887103634912003222291771614604802545092440607449435848164265472035836656471742025254202314863144497911046233654144287749548497499404679339245186370743928675093093393049532299690455158423064817419337369829454526101417732823337253164359348250619101978580065105658430866250721974382183673877721486893680163660926047190699794905931280507131054969724741080304195628683452218231909902952125776770496663947740950016663178603595734851145215440428408298627515108919596163305732489608481231892361145398519419692331432768428355287069112114862955258513634196449855622330667091535683783775718055863761168115177904520807245579600526968600769755992764550971929208669273464857564830590056825220679595777755722051429340995864394323920576812666684265721412855115624384968424075700132763674664324916697114655590029579595472976549264290966328676208071555966691679597500503731721682243303085109152252543890466827237593397984903139853421153126641573501945988989367255725448756508549554819670315230752374255274982269336593918250032585739533636851982968943746739866218657325566363008691055780282128122345760468778405513549793123845049237876431922026029714105633285837562228851082419184249266858530445884447031916405182782212226436889788871636396048830402465291574855878803841450873479703203469083988106429276847031024259108341521257078716995136907915631621777010529748480284574458738017914583999197208466711151825875014090493052971301851683448665379489844082778308297393408854374096403504119434475769388993541479135477645288937715005160129088888407711828355247896144053030986601600755250900623782076971189566231636530434036779982949816409042975001613419572840261895083812088213645958870657476358429796298091743004101209262433592898997483799330876667665117385242987361101406874323304939918176333313340312437442363907469063106768369848212120235011328315126352330047564486489777829297500652626735134752914434216426501728963491526055373507099509471101560718751439971032192856683104776223984360547670017004694258768078434280509327223568448741071002727924511791700092266413528404252413391917760359210719611589172918663695743554916453823108786045564230073265100823835457302747997297864432200374835942526926278858201922481544688698295665689743277716166710922618828995609042051547387284499790830262287995687621942223399918373476788603230269945644029252655970214406556620375008117685473727106070041837386123851407887567583145271154011296004960616705264412670266853900120779984675920297985845560131040301009085085083353112659130902073543540551608618860555142296962435532914751751276966276588586204296508130923368579832479949648702029662357680846659763354899127201473114869542036613567448214995350602189939464007084041402773847145732884368379032666628990579948884859626356798720855448218422255111352365553650998653675521211454821057661349151021857497234538415767747826320654400916590078984515629266688362951401343109244760134145682108159487583442242355288173130673875553637701939963558862528389083551789160447183138105357229950874679484168805031223284893545524245200172264737218366109486443140497374086061646221349196549360802146011112932683972074474511297159599998696938684790040811132215250171637423280050403696711964970003186378181663376417368487140285797463329754790609132015442882954968147119546538315572802500201762861458571899835507092487245025257127815025634409561951912878162643210282762458143778024839121175944011143686202588551818549634080426494322097631270767391002909330475363696356930052469084966729671229716651419540376646661382388995305106582958825604544475779451191860114147608457983485791948519103920905182352899781775724407486042361085167747010339397040854337122992983897062782042866815786899002777540333786684562952302892140536969580069423592083091784270257961106202602457817274835892959546821775591945562170295106314808541678214161832914709022867189600130641412302189331041398478182281670306522704679950520353729319967609573743304558644939323621313604637984534156547539544718702248078851201136871885876530401791458387261157463744734854458324233322434677099915318554512613233393193355513422858365880791491140681659491474656058915812874916646991612378225456377695099275068357482669710203265875652819064416141556456888037858853027245056113201380988699327608358995531119026176092281001928652858424619994007418467683146083039284900239785782931986977722745914377869429468812388588666738894833792850526903912225832367347904815824303616078920055471958583510439896116519167240187333251191787392119042631141911470353006015348554760539473293877088134061533261068703366684975536226531733300588576536288941312861889383705540062169852727765171619712891199293030813168127297637037956184675159964098413853275691705475675274431630508109461072432713537508019386355608889440396067192551774757011571480483130781462513358444134115926624461731111830695375432302214180296870197735431512428735726246398799204432413632861451366291144423676850529397116927278388488183910682550369569236633953735354895144131140672479216127685621193281720123904798664461887790318243017765773349484960898542529453043014960733465868799411536307980443182878305618253500506178248594078763350533608285883655370511881700352285717907110141286130236556974363631695567529100253971705744081306445214504851691124123458924703405107652647195543361423745944214443475636187361552473868921403463375009467646591637112651158466350015009945149497247826001324110616920202855350383492411027654028317017575473487823422926537422447638172942403204202433649270063305532466783158456586607238522960220442193253411509215826203161988840407014438947456643821345157241589292131716828118268023051321578780190411576585515309695804039216625894170371980831581903699491090837398471431937540820630301614728702893093968917031345337595378377070180574858813655511597669385810469047246317487855609780427924245367861903593122819805034798700964595894108720927585279719322504777668764149339692908857969689974667281959453184048632936194703748708000563158914504748137630166607440218652748293153321997842193859817562650412464838707531709664294912377820921107380271987667795985426133956739443896831910077992382393980850111358345185006132705325739921998696433460136982339267681338386270234285641292437090944299262726372728618307638172574332706136518563814671601512950625551325710374140661010607640642899817297445454399922192404730556148536482663145976219968053353816696007119802483030030373212142626692820758344048834231685254720421903430625701749132158536688002267318200186441940857418922799259820909579390265492836429569541211661122048933076355915316368931330624066525995041492670329453737004046658347456162736295462661220438275861513841078946965015514515194163558916564193833785974183026022900313723461442402347124195108875995348116701589147329755185688511984910614271244540654730716001928284989005746744540703603302651378688616989602098554940141984336854367101296059999066972084341544992754483784117897514241247633307094613258757275151844747855436483996570513105507962430089435817550531638409930119513685711121240505096660631290555852285536943530170594879178327262346800575237767258620332048002386810652274354898776026028021694722346331950999378203527566236384666912859530900763040842965571637442555291531242724112961562148636219441014902093613840053746918726375319285661283004526907190713052613605732564264946204185234821421554689258589251621584371572734808094846109089420104586469012880098140956226044520557892607467209379857299693369496787661100610304582059667835542907489285264716342435493332123628186651359176857865560915606930257922298236204262590182230173636451968041478491833707175128070178181753198956980083114590014863022990946207229677058538657450997713610376416204367023697956044009207014739001802524623101735607556155520881384061879246741243223845983948555545788251305772811925904631988696612827585985186556953020918996361193559912061394106329523233918309850181366772253702482093769111326034537068800756716703002225623261855427568313773906622164043319682952951078939049326060787083178272609855866326633953907635347767961843234177872077357830655765339344276163149593000201897411263710880754174233328130329072791635086660596989441723876569670236381052410624488789776307657266639070184772242566576455053350505509036092039732494845981387275013564615625762783592052408680880926872001946944662133188920380637738576903425373678534294806387976785220679729717937259252877461716308163777450275022177473724535184154408145400961285189232836584526643262811036266315371997898929447929931392865109970121672354320952902009480828708543518354828343133415228620403739650513533891353493944059978060230789107471329355665792241518470941862449420242182474053426525613747894805141593901434139471167480085701331023309416013005070010756526420123225213034189671073423972229355318058633601605540509632928171242124267888160239683720486708252871526193278848907699203902161165918134845381483357520797572513243500318102261865483262968192884026424542314301581804106593597575193981561586847437978289765686602882234845934957965320599984864963397297261899125712485911453104455697922868529473950669093075231411799427507443886989861667237397030616134676645477677503235874907689527900990913912451584468215499546765741565232398731383592481719415025147035274469194475085756130857830009193668343795274014781913807592574826478221760809563853099471277511106892500854209206940642858658476048045726008296705469877016126162637780869318103423937738794619312212957825305310331915924605645912028294419888499022372503065729107602836065071717121834645020621676790021381450077368419349083145969822110684281907158031372502536518389900586516129121567661941311835199751846444643297663270978400989576187816863316788473321725556766087352855806542071845578704756887983017309640814500379638043617817868794473034362377449280509641655600002689060002961197444552384213443693151544875114599054794993313111740162113394933006400814010181696167888174142509650771789819659199043385523161025946774568078355524529619771294865482679180159454543583054455078567580562999537332735322375661856657041055533877275884922905196771272356480777284011685055844044229964407822774459680441323721101858099460213255852629311265871195874131104283733354314580263862661023574091330588605892363345089738305913861670164448948820945535961008562694927077945494016935676928055530907612197849526897638269965386613518305015356469873757889214243704263093338394434265006177439982777358403778487166755516171500947976959828722411631565627637473747463322095801679643524124825526502124170336557406362477601161320268083512805083221389563182972400280104958455905356110089545834016288613978204413067998609713485929474768338251600313703946108687249807556602023641913666910734784807490092260937654890380831829765900856351444943646131079375704174447379181258933029280848212953542021745781944395147937669678322588325901444156551031814264640443526693876040365663353779823660934038133483096716621213488969277870217108935631953952169244130406749546923094987020483890415113606995838460590368846139234959462854450883709943157980818434707413598402265359018732816657822369977211840644178825706901624242927058966342105565554580449080279918606445057378427531058727551586760472112182034691188397584623299813678709818810318382348351487347172449368119906357600465247711649442458944866931780097652253781031696329283180766938558492805639957954349374063794145655116128665149832967515134745812968870246464626441063907513216400947466886103086350473531496178578367515644244253035694510094718164486482142776211786224183087651500457359516486226438465429089155045620714341177791765359691824650272671003226956143371840765714521079576575623462140605317531948310996911836482554464461993160266909967553798145830965352875834398708885385192737117381429102828471384847316349940783897265105428912631926119632840605488070313407397347177305738921635506427241286488039928953119865798590326507321144269105283773719082434237432589287915729801766303229940610985542872840351626785864047240376503126600816970659529787806661276620798855720805307956101755734132785015747675344821989760734146299359998989190224712900540469719118602760588840166618183800726662144356385987327086235321692646276345412585530629787098442153572370732244501237767881313428806062412922868854789488836108933238809445367979646781465626275342915782154914372008234327157794552669251687274191879796242217922476215650122005016707937815429969033250680541974523976557398464870317166020206088775266618396128413349501703915781553460638662982521851957630460936689336530728327641676116820368367066026295664753275136075839511981571939221556216073307776620965599024718485839538795585811261474292105958979903766373134953612548433408256123647296476582700747916218419963268903033341253012667140525642098082398416502851000786929845156764939090448700689714121813769661797589756975043915594860340600496101477778251932996423405604852466243049054394067523815825414290694296404177253528960118514777604447508433326660850702656747103133780307840855172073589449490967496088757733250990820694078439062308934848428789039739588824160365763186732495885211758729832439807802973038916962545810227971438750433515759335703113600062656999521836207433791091696278086257557703531898939011439037043638569452333189355186220561575067994932213313704282048249175874104208276773139235987385362041876499927213610737268060398969419386743924396918201922046587844411334260545389387651033828201945572416207953732684032951940016884792469606885035567479541509642629770730811823871766276958037610819639262658592282623398023741019012989462808444441448279356457688053291664948253145899797578383124794326215288586912359299375426599514474626920841803473641467808653544261291799712319340773262086345344169260205989180714399176531186456662884508130961975978202855928286038470282433879443054919307613083005478082288342256338350572232803457723835909115663152934755508479115945831381967973618678300900056335648099267515405654172812416372519416628791105389679970173008254764129193928614303840529064089743509877015440017507413744070170188733253642064866215205023296883714438373219755578854175450991514358240808198731616861447233369005197280774125770764135111951148977692094769159117359885857124665545864969975557394108240414710064764818026058917400190480503567119651514783618750926347814790621078984124196296445187620511344214117132415077719373845654726294672867685078642389169364687205550304644150667977788573574295801843771122588500995258253177440073364837819633626735734496952882117921468017676602406107853764121637499607616101755428548363500750587519839826583384995201873961412797592248809406388400452627016193838287485236108953545235290938773609849667082746466120889469497706209764720046789881964755416095608739383798322652322377459480569687876160194826990776692391360373892958933873718179959288625375187915204926758893465520518160336489375574082604009987906174027783492793852507494176725794564637285303525344764026093612737648545186940673149986960430049322629082270775039058358128074947377146860241093258973100706011753141230150942087669214588082465215117446161002705211625625788504178114648411730878226715435720329966047258805668807409737710121077099962146757386255155145084161643975782697644632493974887183188675663727732976949062618767271818619514639081223584727387333619024114955106410895119262972295417376006267480059765617134321066549186602409550308098077402694189287100897812956216005449488398186255203999751403653271111475697455918201097550137573290301608060807740242978851544804098875116077924085038311461002657881300134607505553332584027113384679741650643029088724526959628927444921138140372463740960868200104419019336054922792361935230553062331401312464557331810014155355744560722209974622376311678597107426779239495148918325351687561961924740140774994640255356753673497687137138337771087671992444375110937744744844434453726035190137276776156680264498718803902959725785761418091110733409520670344204343279465423917979032909405400745869094651811193231122777891172448510218560678417353858932966772293022448742048659517157786599834810294486040726944883095268478971366890203255961262560690812886510794690747454025596099172431562896692127031657596069819609476525966765213782521898936426973398346345655654585459027376297525347721776679656965266677190223173770077053120844248859324167686604558213165700780962124990087535151864646074958136932528567507479131743050599870972857383035777960232834550036073079807246102421248434243506050363979608071465963990302563771112252809293535678497813471928702789027904663450869346151405476855972696028271190132311642863763523418320672514803832848959878644877775054862434329698429436428727884891158894636721214037568443496473811878869325838376077708491560023687409773077016003601165299904774033821652487584548113366155716154901710636843790573510538954018385579566225764930434199583704540264791798275468623146345739651949106045376464304678314951631705370332851398944300794791342022569541639461525583233675443485608463542676902686225616104075068989084527413220816014513727158116189879754731616388971443431539530669749028850708780564034948577969909305222045872801392848846634103076847271433063647759921449385711483103548282141638021383279060769311953663897462351098626620961493958048545187010438408812826829553351678936192818527955634282536493669077645305647165491809844194862077094755824038974422365595497932142343329719310660633627186062625188228260900432963089241723170002395258983924092971238814702693846427061071105448943044548183527285108225063886132872827614655059771247617650353436170497433046725283585586689097472166098168515498877169998490809951607943819474526199676995801290676422066601939159660560220356167539134307744813832780060097460699366708927789138436901524218732844086057004954733761925003733821514573047548310858506374462555033816586118014739111823377744055085699805432801735526725259263165846231890726582275100453927826649266868833135647532863005858472969996544033098355930753679109612056274533688860869011815487996544989687380411111061479528006613474714071747703223704218982552554850896084723949937277207417413151572734347269001553552386035721453186771057724591105787858007255937056040714838673175340880605409121408920839851785000731933176523053205410411203998722723503760650950090378837191108819609010071313935792190599205500619361873652365081967276861006025399466866675252476600740553435689161223343771368920128033817944455937045776356884208184822700073015113813202768997512619896284719407217104150617860102038086237531266461744019618568849133072965764037416491728789416462162455507935412408034587158049798179310529567501988568116121253362144765807932112154538564357120188144554749449448511565115780277317326326911956821335951636409201640516649501442430808483850703908434151529075225180328655213712397175771517505489771791264399376308216967586449259871153974854270621108112375126227359823473926896136918046079672742631096803594708582306279394578633233709933113276323702094755176033523639633523209544151631133381153500929434340926027571601211726862937439230330374020605325209792995980650478021031091412467328362800822436791590279301367822466563513323790094977476009428342506010945055584158605725481885049157062708660716697607791058897637851741744238812262414459489813349846137978454982238095574543924627275050458717032915477478530218840815027747374754649836230482175782673817990864630530526492312530725890789018131937491560754051605132019448442156831576234906067203878532270924238048473491708736373312841118381009926048306939006909566423793042437146151355373743576170137849361639803754181042437792545884614601232774694029462563383351423919477394070127067013957300018184032587336448855782640424506851013445423981638936337565531619816170847583877163458335529029569303296032463537473921482231739747185663148323585721777263908883131400230571594305995376610154775769987477098050584759109840342991699477638385109139746792426204373720033363966778675488138112991353152879707078718578132769559393234242982275859951068840623477970774287918539630768811945502980564405134069253363954470135538017221916208638359936042676498883223796814106361641423411985058994897985915906627916819554680340812194306661905013017929274005239334707766020622076183824117363107605802891684379355974164857343247594329181323907626951313284771703568685307822920519048219447169878909760219951098178298732618252844582421307874432927440983367576232102131300183042760416452698223676058651391870595169332216627374575253749989244477406336135875048064949068550455899022677380157450518651217451984500734461863374318759752379493021125090603200465015883094418358648509778434670086697444593704472913682800375420105011024371530241578744033235952326781467751817099237589786143951447259322542831042024711241134832282907183159534383119936611076343133171383139226849025477194845458158039699984157400031688048631229061348959434600739491716240791908785839119292376035372183680942910055385887509256113203143274590253335638906412383350541603919410872412408327280551543037632099075556355297880873263171711194219039337112833240302412514329110905130085291778529474023416393801632294274894434299944632944301561347242698359377572731962962692400586091621928673858703760697538120521085831539285274500683083894114741922615805964257181075911052034930027442750125741136213488265326547321731675529288737760861995840925745367715000201032066268764720991562677828071380355119975677418659435163091533477533329735607302111250783685416671228462255819982253482941477680139571974508208993228687634878618568967318164259100554157610534096681447885584344195594804321747785050743973206765879713530368533005623737428151841897329435426565140254921829658809457198241130344993268872878115714235379968140129917215530292914695094051201269550603083531379565532915784473573093424963119220780448708722709384668909262286554513815600814680951545121929014401722376349731866803434526988942241384377624231607016985361173514669970107043061630566541096575069256863038061102456275874787509755996089499797587104875175788547433586796084626113828961855697554545150339876785858877920324675679191719466854536384047864337974122974601224953029348479348541883426740827931110039232988404169721599847098499899806491012642656475319602394786475862468313915764964364775757882730392914255306627310285405066984624278346928322835488049333239130410118315869873951949027579723752114791237571627151423001390127427784656197849657340986386159799265498598090648809900918131081988301983668209920922420889221924935225664615441216799829535246510652184662609715077192547940267238460580777995848650529231700954362227696136180818494714964905399739927590876764378059813279476543429192877063711327516390573327333170311741607857412607709200285224674570819754423339714272668008145818041532445013241389385349649984904810344098085924377548149157929594719527968940260998154864737049919697364588330551624691342723474585144171131614888032951114332250814617140118335697649323622825431409600954363927226542739709999484038796540656496017695268597634258673092784229203403292156142785224879095787599211263261130764899968767268543344113923874547521154255091349017226259640730700143172502349566156017704770259624849243609695596080117464120235852516303590323574388212189830797451043776866407666499868738750808879662755400419218687243429187355590248704354340145464999738020375871232368796933225208513804158456577283135479351913254255085797551208277903640108976261095103318012015586748134334068168135153604618562359448281095731254621135079351250434643630456103284044731113563183566874243724412289058484029306997672118324822627318148434190518789620308014638685859451156736676928957924003177598520658532641366629209166599104438545856193668342648955231630967588887797184082068557791240976088839330027314222041943562180357234463683378346060157361452898636157747641556872475076810282756877577649909874038095181298407778557606745514202661425588418943468383364652742470211018490338655056181346793368242184049924834100355364229231005609609580342330179925122385256680204934886525392561865461051252707901054583427815011351258629206660498533986452640124513333965621677348834258334613784588204806432552000518549163995647321110905236014157537535445891976548837611525227997214132650748582398739435972605101087732456717355903895015046689821538429111291619861982056722756694191949553008135918213618750387894743025828691027956733639472932504423897952136397872089127335543793252070266221447054748567619602317679065992434117828502497239674691878185101056154409547363892989559666540387339170531491581882190430213561223130872394198364107088113403830926156229336391929963027099166516213905627704338314593884194581272784067329901465249333813290726509969999938597803438576229071155784625419319456777725417304606025390648039896232812575765921786337140656409569346256029724761170357082557482471591550602463850318449734950891270515273220340413039764289490269608018812028259119592906226064302065297563693693248101576870688278319048850061547440715888587435621444725435880392131186190751335645605854621697554074262966079335168381470414480125696217159604774918510329712920218961804596068964780398681180523942832804593879841716220722641874492012657245835091407431577893149705183001256645878838116761701804345068064375845219942572353702841881244844570724148215206310335083540235713248394298966414351443857128698069670959564954100031612382520802132164426693114329076041487102483290120990308518778322168000954536867716509511916343998832591558779174309188754938680301585824481810557648864089049383302281005996573673938825909229698732393121686136005211124130785435225456737383277340338456073704521580641828272124920677229332057888156558496632613018427487782306654122802724908190436724213057059513652930800887440151339603612521716986822640767873343495204343863159766425411293304120000517731753654950591865800018215151485803782072573839857651161384381222747104699156305821775269544938383711937152807280666371908133633575501545802692199072120907376273542675135033919336149534163940507879456659545007006140721426337999328130551197364824657183448901866495726567299823045146314433295731797344019338081036331255957647735159603188288915460916369192032245067811026999350823195207768409219952948438771765464597452336816622017396052581325512123957663457082529337214916917040455766044421917870390728541109956903163509617096521676068578859017136482074452890920970553048501182782635282503562340052149385679186036137007382705150129620632316132090954018249582163812338438312490540600440839026058544843130583384137753634087787937878156531062455151493583314810081140326636319622100698842448670394977539379678579894832206368966995319976027449181348118724343522395939826174795727957550317344191436308242709982045223441848515376747658201244275005567726836970298553493293347689347916728748637101429939962277704018873416012920132065510688076434562248244706782880070683759361496881937778421168188812469751605182662579562612943552698327185543797910245461920009422348422471183036463573924317464252753555015466082184683877147155921001091442093069833916992493830079402610015058291567946836344658257749091403051316929463708734248977432666927264645048433149919760232650084842309586208991332474719364794937523423889019912689767393805622283065822882170748818669761027786660796149355340070396036153008587101120781691725692960317811770218478747387937996825142677816747942207332065746705148123694599762819550368361745921942692387348185494638311665745349352090281427360584177738644563908953338066449536218790399092474249386918125548880213621575979718456723105686603565269064050890370453131243877232745358530000252512230291881204748932056793117817790200427085673621987642401574111574470303041050291471443534001207746121985359303571634568917624969592482440545620954401228805459125224025633402714770745699577365501498292451413272520953872921141022051316654789625968398192582820463926869011583674515901653852614808300725669556963657936571366930435203772371283867729416829630322197980814409150939859362295152826859927635011335055995158866499348537407072302182199537368064179996080082144255967273601957080409267366860430137709379495735181091462899876105197782996060672177473964607469082321745022939179389123347246571177853505313045204920194448556504144193248663120905533306278093888701164065059923311647404962941153156599239297745362319130750671791864163843799901768613703720384377382603658295428767089239037587068625570793943642476792774065603215193700619898715886273087553589021337429392059168074938589262211432558146048640902757399213274466515294279876382395989781730781119281226302296283386530114716916220582828876807260308962446282316718213438196977668064262446094882286197291808410842807751664475183747309559898269234278733705252917675108507104494644595170813215931852287653493880882907711227282153477343576572212023208170740636244440770288413763105939854456342981445438498758372316841870727914245677634032330538786074233078801342126670496877242061365661061328219549078598415217105340737700809251919089794888433490479165685398949578978795251305974621911315250876872457915815823082436793978214534525433747070691849907627617261905955705516985927879445647771329089355303362451355897974765962805909962860751349529601461243340166129614294540428692828773204868743953338526697384226343374083866786532945550709563473773763600406984512709339928551028365656303840963724212294342020596495255884272390213018949980002585529046892352260161161748063053762532015775399743878775021231186514015590673155345276585337796573883431132376022524956833583342785945089243311461342331787714351383835940818890575820215694352732712569530964396452622018488329413706052863403390269498833627012005610017607674053927844440268269870755342305615017632867018886815744109904385103274776211952470684079853209989566916331854812851946370780200368157185771955369773959286437023365031162926313053296970151418262400432669586202666198943420343727014676035386744638372437611191748610640891514532674022468253005607027779712049374685296939078704482168409165105088757609981551486803272251035080911341696670069616361955939848660217798200724713498316443868942738998957720074382581968821119937715143235469767487628121252883382993948844398011759373147430778869486010482639547700665015941328222492536299218394619552369157869798200986154804043064261766541019431444469119545555475770424254429194862145286529724141941402758916219719222771641304370278537904721661145137324331881251386828595745473195718722791998136977666802799846366440643981108375657618786504602981546902410690172967856742424420628939903709660994620033378389780351914739968597221427710979493328506899126802302073032450782596883565588404010569294599819036859592011925998372373644075130139124146514677501763748247865239540084847131539940746195015188704572907364444174501953271531482545255330389083247626683328911621566310945223783450354012598688395367257312687177445945818592617637640103340103268915477349821038377002945543650758295465574049591005851269246038851686948399666790141422731576025190640558441402807519262633529969426928172816112899599032766172140150726281089329456766698444262668428087132841842969387273261210210966649053906666859014054067361227021736292294542941350094740553301207160101820021416034921679265957492436251101316017621166316669921741203487262932520065880913425790268558491415774078124155841668508445019667891962991421187905260294847929068223428573351234864122873044736409464274053462887655708162822268158228392117771974926742614590356115308710697504078397035436406045420924031200706473384160057676538550208069290163912107425743049775996038951352065511326040279949063943546287079545099254726630750780544589941982350217838285549768454593905404662562479075458817966845727559176271172080437144905039030548096947694594668552660283686538421412293104272637059395063552454982410893958631386796203349803389484258735694829021323979806685321371745753786196063651573018425895897698006420651293433270549403764691470349348948644442395685732780170351094453248765653777214591884008601365178942342253642085715347425394492383828909457472070114574526263996919532405783848795085373862524960787008899953547284436549786456179725944363348232950713791628380231532280961062753725611330661674538763660813798920518464057251738320711261467676156546011139428460478480150041314483130063996443945088960453780561600067123429337987707382880367291160723244509269348955036730159564596541596383889667240667158905466293145450886077431350558950603237484537211251069893513976912792562349152571331898789372392325511963096157071341391249897732985046458594339475441679775924496735101356120413802065265644817767866199403584539889416102333185649883450766874547972899738821386000723167750680203954207911194431290366934033226654499165913281713231643002323541554226428406635719575521863607773628673718399630950080288686535292608035392619681748722701466535204274885382634419942851350870416639713296274520311033283573847236330765042053614693941908739057576492871740524035442494213844140083553097059965515251845112060290186654714475372506125099005447280915089223970594573706990749930136218298570157118319706567228809695635559207494920865501078150800553645343777249258896399593558993507832444982390030843641408009468286143127264389960554808772138484623238855822211098405020808876406341599001571603999367983151299483527968483754860299119456912574205811766218905195160905797846334007313962809694968527904588546902791263080341532986774306432530240551457812445647157767159996969147110740732191667847521858849804826152839702505093916881160057823288895207387347897494989810771275944490354524205552400791171131651399571168390829393641090881607505204193398604889223426688305852978064242916231346751648440561853072200082503805602707571664560062972452679037530118368158298103163689439801730060126972412881546861901424700054411643040496655730154216140890059569147244194076841817875180976607788741234397936382771998718811534470589466966813464195474283405849330338597535172177723741239221856017426170642193823269118737438880073783694056378124428230931280812132514349544463187430699967678479290751253101471666823507990341176585994538756345540623706117830272907734855169768807479773688360442917038413647591565475889727373021707303173150297553066604443654650955431665964348594844081702618154275560422450426247100831422301111822518727005389400661390163341945250984630161341714605418400893013777061359355227992510876839751842997958932118844982923988157628729978679081125814292423594039649481914482222360727298638916802344418514445620234454627428776371364276750232318612140493737016137854179918162780937292735282533384051375657869616402510689730581164010782255298366862956295200944167445439441719487479346064416599076993158997105397481252350775119893901223516717018422092629059310520372481920627337483310373564431458254678080629353598489602594218132911279039729411595421898333667809058544398763857287539706744709383031636817594690807817904022832426719667418020202038479120004431288938180106573777159095579575980469377246736596971345143468794747144302544745903756906243247645565185176702397550893511888576501210291619241372300854012236752085668647036057789184712741269363331397719610670124188783759108838998909688172658233653034623502897489593887315632774256613366635871809422397500377002164038866503943525861148389683473699717646711858440994155931049990761938598010751343465503677087074471073528485980295990930118955862419637427303054633141728519898999790359477277188393999532012241803027611788777685850682400519729194109273841521919574521952785089623805731150332392861574190822303997444422196733772834267187825957463458016170297287900990641987901612114675291159731486509516463378809591359034192636800495211429369781304743655804549634329818337688222307867789189424067089418056611437450001682492584141583330839533163596984301146637104967000358188088804133073474238726883285301954746603567437791324899524149076677986982025938540938383183701232851396031301558639537844997503945989810268632500126397014641672100612712482162379884963679539277483113663506830587332147297985994904303811180386288059099726372274660282713700298076918603226565145204127151858723760330293110460304657126716530780139763147485039784764871449577229791960803555404494696489669719976644224568854021392829813171318654898002888417317626572447223661858103954567181320486007175674416672997172104196407554735954229682471753417983142497430340200354935586016608013778955679621562059628968110959176732869946159214876273185428359763914276580494541252320589702399721428944766195318312392203178254284343703779567918566732929142623118808523874387911480641451662621284345259299697035097822358061003162641058215245741359335649118676735182125782891055428231094469069884710722610391013178618048194916550101236584578047956732446618251360481511732688271846204775094580698202755864070217600457825413001188404127404540757013784756067151500277875515709899447317168456105962199426677010233182597109522250355427349716432613347009176415269186514661639214242995597320856691718826907710674044970634016526382590807102203227347449387622840474115530024017790632785168052030870210821852411811326279488574034573575660825302886176705139915263503179425182159538853412242184503295416462170955911743973412723741737913953773373809883006262305687246766768856202787856214735129418498554697530893397189190038674719913070159559868380109433758149474365216210291150520821789912040050892098225291484438556409025681820479102632266962983388148046584039984260506412588465306405259882678839414740847598856676111551316283844607537194125498495692401424589587254045565643607634107660400248315946527279334552524151035932346312730753137916819138616564951778921923589452371968035464245756678586667725198830291456514112087395939542837965531300963105363720939828949169310092087922392521510616087481166734994422214132086271974117004659232479473348226575795375042716768314611356026842213672747377589786280594932310583611763812822213801913899258036316212563507392400382230963678010552687870653565119599824362194862865613696608104128422773096927633893755014570585224766461542942096764093320073266398058002103339559225183226565029965760403577699003423151805485968048355386257936372059222490614796992975630630425423103178017544717323506943362155541058883594249451828840368646926148872152415013755713019397119190023068749139142351095780255861236824680993889536191379429045330177380805261789360383320309671073213205395989645352352219194680033934122462280252567764715047539873732388631901174377810901262013769628933756643000948845086270439330175488311882369007309721684110182737488216447296630831893698261184531406532520069502137647854081913495281556781845445955822664206182653623902946624844997413542294709030516066085144662510395028587647950688337865774052987235494456218356033430936929129401226723613997574091805126603335962970175893787490215492183960904436827047071127656788849542397848543789453409599155026795015069941259073460374709431647748971693336797129674483989878627760375447184179737634016330672624416536254223290946994465194047516426876200289361552892407176397301499822104327264828079342574837182104811239499433312148294412630004781092531073427745305769405668101385182987632338349974912754843224432037169251476232406142303411173661086303324065356830758432615336943854427702172010870800193047648714773526078969086262001734456062303894852139871858282330473699871477478264086719709625830077068151090868178646401457064610583355710140588820224556131590497267261061617750961431182688705331813571725152406979485201674518981067847847019957359996030690730318595402522169550853264207744550010495704606077525547542845308549261166729407911737272723480232693891235408096279755647233850606894969362480837338569142169578654395151989228736200607671436878324522509979947801629272087099065481339318847777208038279931467604200729515730857972382991226042648533884815707552892235165994881119609487424133497361615550133406196533459939363267194139055463271974846443613290079098809642278149515171606484324151669069393184790742742490724291046253624778587150324097559729479747230378214979850583919934244831598916917002436123866291715450531450270361962577018704188281922066613882600526129775079652991240478930362773980789381039196239248049921257231761151784947194161699012929261960191123118685492341788088205239412332211231377859108521658672856255224694628947462289659794201070263022461964313619655644702887572343132567528345507553015635602682714733092920115276839546586558722873120869111946765842305529478793578011028267662408605329217070005736233657273284571348906256074754817413473535345082093530222856130165594726148831707508540957579299483573983302506948512693962033164027335111800866936759571239818671602449963487482751075969227785025801176941603876004732990424113027452879567914530115366745500750634577564467814121841670990642252666471164811807217094785725419724143540991489197129719073512908805746629849612735526505371130779899629241042467488621129177391283375887883050851551211755802178427061624935392445774895604898606339478375706889266641806104805849750648897701903853521506353829926622465600614813152831927124917143490615279810927011505752942034612490716568484053374208966734066322905084884368577757906086382396589728710824859885475822431051313071441135185768203462855505378365993777001217385905476156699806696947799176118527028240358968646631091753592537256474917595860174633238520760207652346614256098565287244302414741403205314411591868863065255446196290284632217519090866404275783263874040029738328426462243652041403716614646873659499256029425931560315348720893149990860885124958386933760551193136357709815909297447777916572435620161326027495770976881521166198442963793555515014775222758424220429005594952490788629076577403616293219505492199654446540778045608122319049418723234503674745054096509072120326103671585587423672122866321935832534134999527506951945206826234539139825190348349629568752190753093469802988999235872466457258489707818483342816533238764642588450251202706585485280504464786071575528031000474498711428332298440040394556161366150120088551413030706452169154717921756590927402052149325273900243345482032366449699848803585893846304231575654023658969267062964145792003210739183610929528559773771875771394012031482722779730174044110911042154686135286838622480728210349381132516166538181677993868576004573070124009446502869154678288808768570241226117657769910902022493550379094526479593518632973590231178564769549509264582345238035413760173644639665951801734382651549725133632752698321223862583248550830504792446088573663134461664893003195021879522403996637123629474623877182163528909662582242985533164698053111427712891232077575290707851305660877834325961432285250034752934498121872216338308425614002266565798399306748428538995688653709159529373703351544800050359142039627503559733154214590850565785415629202845980118466562032319998866415440898087633119526831565391505651530749222898536774133794788719528124253753844113672695750437553572422246878805349784586263567147630733786048694425348609627150533807678288451876752471936932756687514205735264897282504536779870879052027327536654548173995940785249098562289863974275475195015263660942518879890134088898383480265674650820467157970551322555028840147353765387360105465039613853269894373706093186708017731239428644439027117180206672830143183201049393585927254406698951273744990164296920247549724954047570706409386922012698069657914122327048580808462593361952706728121700656100544378602450734797882638772624551855249605784542345042132865216580534449652650929037234433673878086832827545174172602650432758979162354137817732352740463128271782445317842474895089004169809758784106566309846474879602200686967811059716878328159656266540814506531157749213009920373925154647219585736067456340754392269155335116102373346003206964659942431068968653175780826165023002534462050955183598763856819210140463094028757707680052162860584426108050827461654399002087376347661125017131622706857505343209198279489389236133317246408370548432318572292777867804783533124320822346239531909847448468267822307555996556461083311239422007811754079955401544482728952140204513462421227981929740293147485995320660891388624133632967030298079442097461578871715163182921175534553486188960354629712420458471289145703105004473544942476640888551027124431372286382493853559253351505070797400359857671269752781933776646115650685287427145093721800059345376023744534220141378228645838516893220469710041690830765896808199559911679979600115306083853095598986753169031377440238334302189816643608308766320692536657147483426173201535547950221003484678587958056781097922929234360759210944525531986262575305258721965427714459532282072971660548896794996962392911772652887805998752121125857043551472684996742863798819538463466673105454438304025885869955667063129600773987481767548521770839657834671327930267264838716211861928664514498795992522000469405005249911782495079305793287765537484452041390514266070998655537973029786013505932796633203348450571128968177017000846398583462077787141415123589838192372291794587189804553784334872572824701608844383170338734538411768408910778328642796466043347824328036144213857814249105888738653674960560665885364709494792160515985801243022365508263084312196448109277117691174921978665027144465955551524395006977398056868527189850108350889760219533960956327927754890114556901656905023208391449930257585829569160513926995797732738985703578380491143412014376741101934412361032817156082635976759974682163954443093781057606922992630502357979144444080325697250889570083427487404513771824504581339094555484144647799791171893265723306247075732609062441524758789259287496325729355667802951809384407488610816154306505364489533883493930547282670013800654384301556185597031514019387648920921913056800095074800471137374705228583674450450543189109499678819425464819620438369378248528988363327446251474428805005578042160172412642800846989019598270890244611469014394405358347879433367928110653681003911008333291113073345197217041579088564194809913292818522299090671330457742258418136848034429053523861426682126935213270887380958525402064838796285716414764875433398150518069346842013426539988240702490994756013610947686228323512386589168279529243255954569751934348884871310118340842536866862125290654790438232968806971462742023939531378202095689652901618916987058048837301001133426401210158370198154396114988378454032141677117598721134190600007167170946378653119857776345923811916979349565110920020634565276394857891701346479188911144920096270014576863817020304979168494419167075065854815044259474437128990391823124419281356930864261359440922662478076036833623196888701890854761592560779106164721025560086968204753093876389261296469480513277610874680772134183439541479349162544867175020800361928796307046743946821489473177353747893546999496261163744578518299699545367115914057722479768073221554485711842059280994125983934369380422899606696142155936773471194167953350212829322532406243094589787492022949857053972265670083414916911228987683904215113514320746442749902821257746666174850441082350637219092144878761905314821074229475669814579153321601004466877640693012574400493583676409907840062593913485608256586726419223994978086566025134761256751269088605010040486520656456025692473321547243463587606367650593917749734532211926527967256884726884767261520563937487088434300110473391812259904872367394661838152844367571030573669341290781799427332762255965163741506439202737724896065625819753749539985282342956611884678788792518601210420923579451954472950878155680233175796531379966474159991955608224570626162287167604389751618825013576848611841346199829421984245558560975269732748625134202015132030802363413730584944420198939309938700128563247065638909433820609165092684740237147960887734757502471879935627906645758078101713553200698687091909190400266294175362106873014869701235979190765608906198049765182983134795812471607729073501002948594764876772553440300161982133096048079365866555629452375271730457428331444401858747395620201778835766022623276296245264371778826632606733853571786370012555902722582509516910388393245722454534956799627030538250784287945200880772818457669618897130797010643785176471798651307754739334152669609344836726450680202942775169307699667402842800312219909810683303428157091728545168385010755067455311504441104946385225089918825702450308311573459209425107735527886545534346685471616323140259244931421900637569082343299404480779360692303564440777397517930090600049434305622410193880278062840348006874562847139199366437868468995404523896834469810458763367957388150564429035507395763235045023418904361029977893460081819009992770663223849056611289129448484476174345993237416559463753288511704552269210659024735999398393118494123124006587373035960093088400471650439556707124360413473223261487710160476562739885318958946165831114711694104353390680722995562534638300945688012601378142292663209411220797230392968262881594616816455237945442051367193337525946428160054986312293956508416477147085486893881098236704035033411789358821518690919870500097725125831849666202651835501619511569311238718043769365419260555529850519034586112101626935330298296697998319643596028490917565148294655422279710361172410275795099398102891835509956630978498849924355127411855625876548625097677411470255000627255432785041414187799421441529316149780619820599802764840412121988948929993948792892842397406244005996681838367032613711926958908803610527560683871730232486695902688460770045154956050111333537858554880750463796865381991237345469702703012808937008810182643881395375383030551795001416029037108095686786620717503226407347004816980043316954555168309933836783571750609700451963804708164275653214010570773227927541566087944073752904560898198689668622411915782255384502686333694866914188039634529765637579881905194062873900978892324150742386164226776761855527977896489262371742140090223174419823759347433649210901324590348323631483838271879483306527915236659411321591075271382352309783079323044082580575127558785801384356124243632001410229848041102271438868378119537633984070590620511516400984587832309213692002825470303220470667212345935995505257888191191987168442672103012157323405111267941902896198439094420951971526242726372331848366780747041734571081353429986661142952295506909814640174732898341073036559487610584348208770730417024144892697911314023167354042027140067631530496660368858268062462349445281128419277453611409171377154614275702121591206306806405213131940871894947426887840713679434270111595621278603844773005180409686799190268153579227954207407327003122134513561463484927825155203155679678426021456970451003440903123159846088052373065732578296597995721498598536263552644210932868129374875955115797797441204276053943161843467473848644180935781127785357348371122972237749341700820561723659245915488587980190785048119252914731010826790295833441911392132993765553380219500695282999764598271221013014492896221194600340287676727377976716546197151443245762604204663880484949552126124181931763643887476410982065967245875524061989474699853869043417477239322837812708053789334870866687873960641962110318194018415804523630262432329944535381808577189136669241736897746584766086225148412505711762386737090680156835778969627932117680080543203874786337516188657142347246565352223251982809202476738021960498503293763459554268325262320892072470453325028592027259968668529911195800488103607331267240323323057176922499052414926710787590734187163167316331882853067624144247357840139372767433497650067724234880920201383300815390051726479211427995305394771997932107884036249555386513588272236766539915839969246650561532870285139677664106186709685100612176831408987300928980982131546828260059835760164374741039922029048074958158553763103454557263180595258290489124219961909857532107749555559657377323976025271983278063813070911090717314072487771655791355363470767148325640464940533114039153329242782289120031169227610135671167746750568136503020867204672984717238186332870219936619029608514720189218137892831495475529981675886215405324435473249015253601212494680023366976744714489369887272542676435166791363489422815246447772987613089841424897402888694438603724217133565774880433101184739003222628030618439115669657163046582953309430755415836890573066865403496923181370195436967254393704599344138520960856024753141506677332504555565684544156789741295869004444302411739820731631325013070638404136004889678589892572433996213281517485929941674997881011268146336635424007653723965936504453763962002129443001726375146595027926489506149896780125458185645904224442480908499084540690950457980241537452868979409689518009857759445369791593669559052467474576972548532467987068025775816904383731368095882176720955173120655135655875456984623408781038307653403428398063980910587493423545270786297689134795448252098459346911649361647130110821159771618814164756224839366624242499103832637467904634446114693381410657009916867330767801293404656574426761266739882351942455251821523807659669494098209785898115044593764293835693664283528356582881279305204508545072130567973148510008051000362198802785964325096112337851265294607460306036511675184870900398204794220660461931802663747487108000559651945257258712211168939061730408385983249742127263433515848706655610334411174629115424864718116043483953095245804986742798469392068141137787616435858274891598144911471013816637552623818032023139325424459094476053168112811629079873787982191096404608001286742145919883268596099349945916877182837095598135645536675922281186398181947909227073100403425162432879791528887816000764479153134374453721594406271143958881695914108576422869265270544225296871581966191493756561399924737169167737417624860091525115927631556724554449674488914551056737265360400372038145575748945420135163135719163330462361753548219493025344153417767080230953679847951879093397860075214793424070848825335998921432570791233529866147657852896875652205400620624559456740654763738129349799378792126485131897046793270475436466495083490403027687264862390546573440817877284744926808774726420788482686991308215112162809272206481437444943120361067918568543227245991136246384939530301856869895381862693524387716948884769554712082994605134121573429631056062659991004053178087807035695297112852976286663155119362076019375837128345158846794608708009912944922560795725534731878912698188056463198257587676133184933066321373557944683033531195373077633370759814242047707238627256062572303899671814664532824438403493687442608574935951513177313964498624168231142195911215519808974501096903126574550207682636443774613427964616790310191962814474223033696006757693942628560357918869716576079283856758632511636104671964552727970431886738888801073443161292915800110498889826425038389213615277391657260820522461266215368520566870846254998126446060488247637088485026416630328621114606261773425365868210675556624289496757073936807852887463378964216515343857215524442703323571007268634194115532032377354123884517599847255876335580769104283687403065680709635816141960726341930792759251294752476213011839062394137451250562844376944325310449923281171155266428946516938999508389903323814499126880373800564539955258374607139254153048643603280054165174887689172269806788706906665082008703787788875064959775591872819313872505057413108870567239228160809922734517169550822383258985044736036111526056127455854390216578978298768776028240498928103679935255983605952113875271018048025952180108946981741489707088118913169935848823078420242172921655253285503231978076403234426054232123666591014173233777757974085128667006894334163916241623111502975274137992579657284046775153394302687980592095048057296495125441471166046065843645072215439832527633060173831333336687003428866474708925688736013177846900115251839040349212841228359265787360016152306707463873137638453715153632450241842156217147801765251296798953464954014189103951764283582761999907911314081345692588861930983137348433612745073210829023873646171918545148058791648291999184359246859292282161732916781082533775228653467801164993107887027497700648833776002522644539580642952658585835923409215334581338394871506801523015228021576680071454194714961729635138954363343955679462682011665820916576462478302994370734544966808181368351450796454710998657026956270051608109198041154087122019777518549970970041339308240550932470620017111536842820240772445635337901285974294090487636145443249360021260926870097040539388704443656200165156861290207905402298839537511695025006697886935352116314018548338902431523764893274555454567790266919008380281270342838420734552571762340910851196700221021542602927232977404845703718244157701908873978073540584913000731070065154900798265197148940391087684930939699219997475156941398655200180739806936965461512272776969180978444293913438774876186729373462436724481067364342997594917779096815019657348666301998102286684634738401575226853987564237731387597810592537257497757148427454940817673292497700605726019491429045655439900415050658976802865216375431851295118100191232571785903528549072825805968658652276144331732451971006853800674313319982666416168265717471173959485228137011212615685930233773838031780789871694515126066679276410434938274104992124892020723563081382813125796724478155354496565260713533486093965753386957015114596764026242424774158730912653391207609408834736838514202603940818992041355324240147933756354743296586440225094260247797203039688064537480919302264930899944058293254644824217642432989691789508221814630985495854948009108789334072734557770125906978954852155271910683116184810712126481635854083881880370995871826930385718346986342581665686250917081330915084553265902352440605888965103002448373755786053240228917388435850281712112126297830619275618058667570770341243402286314542284375239097038118084000266176149226207564799931704418373308065689276051750074749868950877488146666591206125821738493512296606856383185317590115628024197723318840065032283622234157222096012715212760583666681711313570377987723849246781200713461439648937548019141260112108108512214216766950893562203901972061140788258428723373608655672086502281136856816407739411011284901530451250308311093853804420886996975979021739628443989674423470333568198333789297722210213637081874932786423356752847298232328575364863727342126130512876903273559937004983588464112974977602463870079939391035238537698302977423123656364642584123613971745369939867163162582108609764133643961793745197517555692387184917881484700766635759478751195739401596096998225550590759248985770683983107996543169758943135606318758721496983543862851956077718652981829818003839835191228082392831739030321157763372159619805478391630643672334377097125256085165726458263632063747094410690197435534746013504856606056657409828208433377082599445680490485859831033769295282298217386168464861252370239074948392409255242021141988166453968837178490141313944385282186453752746425068766610138704873609881166524110567632048430800475292593146512992049096303735833743618330093301104833395852608177189211890787310381730850992218185917448725317482002213790998470023669984274395907547257051112487323825535306986179805269591800074896959245378949908609406584344327409634126311231338779556301434654363981769572722671129203543263417133047357411432782658629641520650542503036002821994769188466778735383069422722176508484103466434816563910835013435325198373670901212723252866755366869867107223133614843781788922774870919042530427954389490904529848779099060882159073378391033825854132965339056801140196121998498679485446882120963908810964593639498606778306604920736661703889746136448450372577046665844358019250970757963588427853946460939197709740627632985590410499986911495020667878163077601976721706086768256031798580022396015664783009100705432586356030792041982085891779695891782869411032075941542240162733788640263919686196096778983678009834274821777413807709609213991486828115477881667128803264499551125377613283178639083566360439205025614261527358758032344129322842548601713019537489158276174379902782977684654513954561953143012688451710467340279082511031789034426472983698961985142655556699601890866112600083303089526112149103049243590302850605440958408988035429328344446422081946751528501709879835064337444710573946197605185362654883842348757141801139566238184348687795538191800179302171398544367434763756320460032871058140700355436237448488279541597474355114238794547825924349664158682377015798828375506573090839174561917271332048813606049641961840624894188548417104216806862967940370265909876939833236363346066425535223614690172785371469353066164647358968560915875171778268283854763022765050677529261815002102390356656893918330320306638052384967509810983931894543295224944689536610085412405560118598947066874038659972063204729172704596777985923675837805157725258961830068890198236996974865497385826742394780586428224729098421013900701329624325086255650213697369917607682439510297484503974958666264956587199237748215787579142290283857890148572760239131717174422662474745035686797668022281825788897172018895851332379173487998672328483245465443515820522494212818658255923547051636771010578436559955344495703547134318674033929778395951085494133444568053914864037500730890661361549791684002106593778820612743742131948966205462747548864140960014203478860763461522484066514508104235437111709983009257506475736851287050646807779466704818333409320965827525007471735923847684117885777105636165501382182350117862360722399913706086074017085502922584371075269480819588376301639369165504686706327765521778099489537833917296333214512148301180787129516750951812990429489918424496338896352283763532599448180359208847470861335587290818213756837715381790379207250956596043404104392333432577105169048581285326054201466529159417335827776724126220094675868058863039732531233321089600005159977225168815047450664278242522999484004615933303893941483119881043004643962230352800355139512199596347297677030415697972737157904411205307518985955304310396379815061605354529351500936014025469307600706917386473185623504698002705533339393086392554516031791398749465994769462655083173420675768995166833811322331113354616371081957683232294946320686684641387098898992411839721575126528471429434515905795851469067906040227535119689679668176825513625355848589155634987571942817205149020479511173797904058246341821071993410226398104221634289738121345613653641894890927250986861965215850095218219327531145425866899780785370957585725412615293148005802706957654082203763617099413405889212721948883833921059929706990362981560241345032734536836659959776221705510328038936480918363999082432071249135505559576391099000644837893882937097677742555330025463928326630432763878991996263348910247730391738268434301004832359781221023682268107514956736093987574325246759938099997748355436078612996094215936802425478331161232565688266956696628286551465892469231439939373266025514936794059379063224818728656835855467673329857091875379872013595402486417783518568129349269290174655951103229321907502704850452029119642653066449630896678532627294969835697723782974492823662919369971402936435612063687657905560206947996214580534475581681995473894932650427301891184166817693921274208246293719033998007141865288205366079162220913257788462728218534058529946742321698034844877532944544903085223804743502140977754672917535351364585107745779322637785675711441474144080085034607838652232256609760121535460352581981208816224793013026060923709067344339609781302450048402961653661298672897839483463207297494294350124696555460587345944030647117209048328532782542440174112823543382195989093017085328877412449927834921091817084977301038517627565278614777265003070077309062480367774349081844365638733286498782977882446984936172936274133209541716456898216680963630686204916758078257116839568304945321406197736685398464914147864975340775279395236146702006725829925771797103289555520816919726570214871684909004439659842286069886148599585309822656560725312426654106497072570731142996474192291281006131997801356000881512507445757600371072098307757717505726084994889982897796120097911728628269565162043970689852581129276007632114846168069548642743477086945588923261902498576241777900098360096850263876169275381347101304144602340392730383382124949794242186107252891771077042199668357776927606441405834988898774746731477215400243720402038920755889844926026786458513845336381742785514545061052986178127219188957654217798426208873094106150781293112014585292901455392795729577832297074829143748611547249152102753329789532365280798353336202492664681372716731303372125790196691800724432695073104325864196078485056601855570899476632826943273588406606488043370707871294066637830431531046407801185110241537995540158542667988457755942666691255016554478898314820506484237876439063970907242201793747891653089526511268707803406217834739539135773367211460632245789697632456082697313841209162178446985586801199469718465867394662453909444864312913669662185360782051598109918266927018393802469889561639185752340392305154370242775191694306821460998021778581723568503091084409631998037563284544639667704607342640215218982365115508529232863905322128248942834391875954503044129762966910201326385494965802955747816311107782809082587690607145221905797518543444819064791021179720738696052334485339877611083440565353061341124999880697539145327174790983086791224521003767626206865605462334509961067395339185032330212947766974322234982247208486665224190521581677517154875554110594128205880073641372540010196996192286753156330338390835629539169274820868347705570803629495820468338690433290880111620576297027483681371986730332132688127291888461168124591296967910257776167026610571593303032233483680546639711544001123622121346403373402403405238022179018010358977550216264161244378222522571113731037669443323143305127700869933394612339390284993648814952370942334858684557432513092754813767793997846807471073568858315441537172652359929226949507595083656571975245272718991332252977946443474036649739179908576675922393970114596903542390749679184267961911937194775016288485906795519063443756546625769548433677106145507333550072131953388058893681629054262534552904973530698893168969277091781772135876206306853323654336990871998332559032754888686694103479031770808981189876046170418370569588925961145958815908455707649458094151875810662002769796458095324694730072649428545204002850592057194144161713054843331410277801887747700417054956147256183522735363734639388263128789226727390596975567671519365886542588757817868121675586801909412840810076892899876541601068751521400185813290046856446653304445189783878538319613093983544402586755707669482644968807139323586663254229893526841781332054871724528286378046498502069472242929927638227329904915633622134247402110335575031259024712459515133175530809110450270784773230864475427267839585135163188242993331354340994728816356916804835327184546082738433561166436436893230647756278409105051541881408010063945361066253832124060396003788273627492592799041972457834007124569936751349238055359873793104318827939309889444880461530142800431231423632346560816244347291175545863021038842912998923651901877057258182621096836607141659659771195097156847592746962107667135405341138303745451501596974197561065857986867439736467911223591395428468584109958504248394474761310838857199217568311112236100808439769031848731958585419954875076625154896022073892691286047719066977861122001162904980061695381552767959589113622262400204362752078516480185628164242223904560399945413979071902207551185431332103572157891969133177170547645873363817184851478761065387308929896771398297500741926036966823240032846789916728344032729547030211127147309136148455541992853935572265288824938393997488693850868597067862140339627856887162335280655165977779905464503853912334211889049086016773732533014161932797768828518618928106997375529698949387624613115859487409424559970622328855468160514466130419609790532708913253393949297601559601046041806430768875569142480193408944962317951953766886076710522714293471233322307267278472684035447785699720313587056729403755633288204424770857807788788324242352168360758844189760338448290940301011717625290464795539810489574604329282543200339010664478158646514645928189611974148249240728570142653185284011618756571806788951279008087407288705760058991455602267763548120352802392852662899914623467871715103993117890499298567313397167845663783330378126126884864327586662996355884127404175342549953608218039384397288385552624096101857789537178685700880869801280259738389463125313640526825117540243297615134496548134089764084534140857179229042473279819329634222391750460785119777713246766702753715759930904928390439319329318308616315567273439490438038001628091549779865798309275427560297809093289042632523235485817031964210367184984924585716215864466342130512287265398036221896459472927883302749598958695348288740908656853793455916422684487435417267425671192609027637843689770800580450895981109037740510869388793420509882060819342867181259077986360134772322504853369589458930678165484091810058219473623104377639283099796216166064806510757521488514198239716894383774510965943178398054859168872577119919650072792206055676006492270885986568473323069924896637847482458693148655472123957883709101931245448921202965784385693800480880060868858724496838663172683138556764994594215147813170789426700544096128065692851871292085742992961767840816669616871590331998896975096669925359314499305730011076089353804504743658729563270917256932748647481704719971720599065726485830951909187909081859230168377191955808823593292233860128742183702417453358144741289187116261687949289711664375575717867538154962424691083352138406499513828265650828904299074030108139069336252338124535206856114628127529161181563026096516877807324734214563695490827904770105154261240157224219176360956860239597405235687600149681430913818779299233464360867961678777618291930349679707856164388898367733638462051762873779731323753231987022817678281120376349453305416449718664373502108576541372096622563730988487039957841062667590538037092740284170967670200954744670819185537944068599264658429886096852131184867832144676056261256419039346730694259973262273370117111083228175255826008343208586641790172911735587093125720274486631386232669189056562343082643212542107571759193158843534218720953578836202540180453969753688811971356511879055855907775484397432041717925710385998351756788636266519499213667224390371666755353806060962062605814755897145085447408155096175723139012560242921365071272219656310462664769587537393958351318108396182550213221020760918399480469910584741797316298093116963822163778420832371988980754351798344364986268191039912849845138658028912929981202412730030745058043557694036242180279030096680810309968295058206116643636413668583900089064049683905350724916002947038181992339629619533536014775417440801079138866823631470786887620219655168656227116335170635108816313376607727010079985432145161560847789062149644796801951357172115215612546615839458466854463058834507715290983036135867688592819638400139410887641313559905481493237944979727062549278683813042776482681150233801388425037435443355100811320861249010295475146499799601662643094244860420931924040545508869802965317330345863130925230582440343782317762314760052770782714794649156367933968589409662087908457814103239959799747155008280286062594296022368603868122463696421342581087181780206826380233802060845960331440935454110421799414105360915569315871920218915391039956212703200275179552316771861641856822409222110575230705583315570818771687399707395980023988466899603312399437297125693988590855524709381959057464420514103399218421506103386718188301526994909634950616750955617464788752489245475066686688283093625377792982386709989304658314316210257822364023013408268485391155386298700703764022086942134906469782762304782089678155349903949718050275873020515187713472145958978969985129289497594545415880210271915152908631749782328359596438252839892189894133098720087536415036836906740289433024882899051246184727555696733481609559497347174371665981579403083165828612682888095820219571195355134010788233248070700943070502804745864332948605635029578965561688086768618269809330642661486169195511318924510715583655046059882533295732848644003303065953647669797162292033621998758467803689940524833749914119208917868890172313657024280976989829629469099742298788072577764190173808284596618710642559265620286162985836538746446588834760910371482084004516602759528056181066705231835952687546650196537972509726896540246160994507728996153220081367422157907487241553528552862105589560328673205158389437215085465216379991708444180761609820439510401033792939077769090295074149582397634315694050192660918261945562635015427883714218839668960407049914895182854178198456731563091485247876241398059681735103032117620032603839932016813141803122545043913578101706670019361548409275081297791393726132401776704875525474271654182833646335959516051915151547257235047371625600309557735377967158377849246108614496146215875059771046521018380762789659078339287108997041636760138276682129111654886054326353704241668211941169982202077346237996624702041661385576376997978913306202389173094701834033651056124611342025577765160810263997447688023798841155254000525436207369440773459703147732540922236393685507213264491031684154413589007730618240299240785311842709553742741913219310787168394117292931729873765871433600171785375907614918825082173343677465078363964846707748614565250220126984837570880806979662031871007144188323998323375977231171182928800373454474888227669230462791601861497842489927169734530625084676598134801955480181786304989366710283242929109521527386690355806736957567762511302964279420807807199289098857210245975923826567530456803638282704466586115652678059073140448992650724853700314040489271377297622831922812469315972456185532830877976153727815113804622923613279453781836053012262535468912263642897025865058388160434084389694879247918143997636029540245626461374569466204333386363024666509315513821683042641709773875752874069620207382692931653457658185944711963963737195231328817128471254394893852946763946991843627567117020247497992198324483042157361968619117725677658860105090802930654991776669244262710531216751251650037319416209388277762973749232295741514116216285767790789901555721971304606252962589460336121769268297955060889912767183772209574323113685693379390277114282733970947430103087538003547296106960372551831953817696806571954591862309492155727803941609589160421663668667293284876659316310836248113548564312083423932121677079925886304889557635026923000104679437840231721893639753021402432411275519245120202870479032926577239045934994620103364166374653568271749088941536098419711903210323808922298078084349986817848595360497135093400277966470979536791579598059726222298667985946312788175086291828313837591220272260417633942967944203986780181130211295466232938354307976843163354709804005955148624279788896012719054504846166754438376728124337768497928222844359131095197174476710611487316036007250425611261879619941181299271755298326504043328300268763282765334846702186278960812026960341082465470994469359487662335482030424228045004913510795706894493620188506792754414398152638270244140507888092772673794659511544464828193986376093950221053906982548500719375563258568021093210362979678869866599796582893999705136741042097418383747006639648659822980109528041385467695958875058880488658641380752733417912354126222761733213951231170331773421968105817610724402496965627594847631951096145635954741992807218296887555016589964328205826643035723404833836044454738007857628395512779251869190278189501907314031168195019787890229234989812859726438189576308720384389616026666928246745754589561559766040468466676701048039383819761334733055469410821999800309023393457166463688353042664768090595053268206528059185915276906270474528927071359651232367900464049809815273973429535005107338596328787550801543649968033264131143186005913932666799537417561235007943117745295801692204090695063299079260420207077009577690512079373216969316000320737525421360540314975844638161119823359027913307579858238969788261033218595887319980352346782597483666747988626511081327225278863601035647329214604517040476639963357451676906271654085016275772056439074450002959683577181023874898184419064716036133271347080260282289150282511361105547081351719950311438579553226719964145306965182769835668234473687995103940070198305325374077380722152248071968986976387985385215049602620368859434963245889642734752232175223036617609255173146021993665799703690078598220413751947954010317601997539746499840413247122146819798955024780095284959183559947115460107932705177428085190199889011196622017093271633718059421241359798361252849930559504730030326681066461629922116715099855224913170643856529041389446351571777616936135579510342359075747964446504420610307845656090400260052806125681277305692521108874815246324139309104828064199930212081813832160245707437171151612302204951300924179783313706220199526343416773180109924220248272022818937092409867103706908422287465575335723760938003509409292767062868708633074620494665284983456152476349763378982955073936340031658551713825792794602284518205618685019941283710303557243810017757684010413346378549905236100532375158696674260497189792782218644065547563488064464821430544810712151711791419288322337543751793528928442602088228634491902173341457204741218386550801605204392918493154826988897973982784378976534549787918906345627744925849742736589546648706589468289262318730965670827377014599557437369429446738801631294618242861224463713995722289595021505997250713485234734691253193014184658750499585932965615358917102077457349069123536532045134618191529931851426524169094164480149789482417678851158033546096191190370479941668472933387125375619065538468587343523359907204213601576048715208080497918449947450673673031741220576016006879031659373581397297765595424718971148683673145459221101375345717669736606496754041684979230701303436881770841764669844217139806350974934822168468862904227300031710991861781460002919796391955653670648345254575970595976207429811803816594229694840601674118217957648628026535199440839470565139981545108090192259226257733840093793574752471712437062144319017524435088584901919937706823001331570274888937336207370074949491716572818947849314024593129631958282928617218428601981523430879391029672047988778679888941039161073518793524138107556932766834624807507210602767878534387868037026688814855082464844119373331355905794419424190435125845688986415579871480905537504514170422021293278240564744754512924255308567055035978307983431375780494447429064718787465862883854546406192111369021300358366403218889003370622817125935115395947196025339535295566668761812539081823162711884626636233102573016703549108109924137736761227406562050571023263512282172706139485099467890405871539922552158991059117537252225119906563855849624070079983530235454524722897318950738164607850888547031020370880204202280619289070168855652691842991679226508406474338268857195193118427928578917921051573297161016180622651213278708216557800184334253637625703691572262806295107493944360623944788782211909032033871600475951645200514266191797061107009126532142159375166964703143909738403517360661348356276762479381199017281876107524579236956922748410400911982043906461126847281718272194076536215194795308911525260417952891205485085296381224738559177533611952546750888267278184574669002431966945603001151262068796674343836870172160500213663534586592092641852624961643026658862907977578322901997697642286083478615183235705979563713958919012596158891136396647409353988824404128984644376321088350618755910987677929648631950382795605693831062459433325286249945293614045734013261614813295306239483634602694150677056067451315692100873094841724124956090255303977326376417523626593217466917643920040965891901421384062843851773857958923643406077796591503073487388128183157460022862944841308300296736919059089268777697106266466636952543674483331892548696830862342019323079531363096251743673880619101308709430764188083281469882841231224315975001881501811464562706877528244978057736050139328993697846999615348898885403658484842811400853839327633598484115028143127499758580329448003763030943221208126830021734429588938851025031672783635999061744952681040340960473552111091196896101212331304374715158830616406865609654467735195191588554672032973234765621153014392591856676264868770475251985115184013926083776988335710769849127009266389547010666704863188905497653450171663889149650619080598886161773244011361878976675487061520701592159846918212250670451773386913694226642088816429071114826261143901393571842554529381786047533169481645126542022810774091011955988090216812807329935360591968790182216894926913710757571457887772692584619068783714987636708328983375035354151332342049366929022750631450589263323340540112052656576407703613556823657898064614337095855479178093146826499718483614992636917540638800693267960567294635296311508715456144143175616627565189740086860464505759652890057067603501222012871910021462915313449945308846089635259005905261367829599680035093308168535013798750769573088828443941257214773693457677467691559135916185114032044665615865590289812918818367654224681863976009491045163354087465675951338361426518734069394335965329515405700288016736851114340168086927048378014674094978504776252849957764651275939130936889212024477249761506379328552128811483804672908422343928114148083177637762902370386341593744650413562131519284488221332573266918362143700024419367655462142486761966157125116587485546818676768548036134098740306390157564354037837344961654386667613243343166281357580886685315049427747708970953713726948615982286802427192860917300371399958856767712310387497864293343422583911526355243355712752771123521753693410811208231936353114071847734593891114269695393290076521900263733966231312326132003082153578464400315254751084233268153493540726109165150144215567133726634745981042204767568049906933636278124748500714445881113838216131006623069815071842787666005318974282821699457766782150409339877439349026576168913567891391702802811034644495440292490956647338395160173575357697999317580902392215689470945398856828939422658083098634091414972988422252653707792425048593924197791263711882125336384030766454877918388241598876518048038422786392751968422284694172083238042992833104428536638261146810346020266481788091474381313360167999280668876769102323789001472593171762863952441823523107894089714871403941411752115100289044666089965967756385562918401432695816640070995482991635328013168291483761755440421449282070318752455642635123863848200375346310074842597162664685208395253952678286248885985346566028756542940456944006551963614254024923919233474419953990046826423121471105503866243378812554245927967581409858621816129667172730517220458274299477974391613338942891691293096901805758616819668018907618531045233353163105855639321200972395126122980870846070315860201609262445375270725422392690338072991976381547206948542300817573171495373535900858371851548585254290211236458658107874497223289887371631979237682446532180516636069906509323732587447712009932827214169587488053085410315847534499936798367327440537284060638253832659634965481681312911713893076525475569032648075489581117775264772384731008573873031593254472521017566087356879768980351792012349549944392903863539338085583993729006921158414644979719068092730014349448500146726459369848495343349947987173976527401396498614346192768429585505648388565223522551852758401343501362852653956131768266959933251742306700610937673779731483215756295413056462334230953023395950823946488422923873211140436126257880366335026988027187047398501857070438258932768502550192672709742129122551194378911144969117525296689286038391251310119449247533871933704829486726945769043314143600389255828859179881114084566995038716369954396870541914747641176780938307747739091019397027382672004151285894497059514054322214054121060182162532005748150039560182943534090996957090679477459421465959277549208813564583552703131553589616196367317813535649615021330530514435101860701233013634272959800463375872126488997531201194115156168111440231966636488355110822213110042396922057012778298587810975256996441691340225396994420525356449782720811677014819526563220817721862041525257119525608220584308365585099383938971160474102517054412461821551828869574644982973440207543719729503271567187102343516622873749193924899286403358868608562375739290596230844861790245671101976303458627149017179364765610906711348161181494996782881102306755235931433609275497487375915732623910973166158633063005965963571985740676904819549884395504194629281227565828875221530575151668865056659378579519353398801736371552957716114097918455485920290672055486703841575665931344526986108195159517570647950193874976178244013823100058772168856302778100598920843559934105235004228523475529613813284300282629897408869324882430519806700131700283084039967560294396141661351799418329180170942454065937166688019868776982401939444353536650992687042100683569016114079071778038747140317517209556887331493656218662069338134800551330684702301441181611328658775982820403999901401430069838652926718223395551505866868448782910049990059118154258896615947760921548078213153523436075809605089586896241333209289743161862393186389578688949742311854006997776241907560027672218503239034304246447508587364070071958209213100655916517715840233594592049027072880189675289755842706222715815732100269846496350767929971285586588357523806928976918794407013458400349303132072754353401682799530435888389569602843550764368736334524176490142616676284481966926237337798113083047009819812192972964646993692480830729727680181064039265458159860526712178148292158962183599999079994267857047879451619537805623519357095117575809950016585860024614956935830692790956331818154983807203539857479587526029550982393839570807152469510367517085611312105222984389591880520220326242722272335954639255572540749015404419721077555117641615052420661840629792044322017239255167672100634107880065230752012846328122404795972002529809852865454521570961716195222404411514699946667515245061838945147501723961469438582683613419082955905793373696507377806558355914371537929316760797115701098034937557736854960044417525138043147607648903513014415526634579940567839827573240280383371510746795809327276170586320378076178343340301431615085165561990014192669413468391731567464645732377512735798234400885994335568236341755068483027603002086880615230806527474808989033296080740833923038990111609999657947597140674502660975066096232703125612901040362196567584901003043483110496717053520597272350592823512565352940135896006664595627086258690069408593496548674441302132169745544506496871774017450213869438899058892486187745518534743893607095345488298452969982223854746584989780468878646960028964522451630099611205440718318057984386287205428730141348208256195459128825276818521991611409107573044763795174322308451428818156568855825041657663821327416912584488993189412674605409575510628786776009732955964772122492256453775088146688196000354225131851546892640894895787424600660504681346002620989506174077523434807171355207524788338480232349462506831152154565484682060359232798716961708840391177013702144768673138644461083498990050854727950648722910523038320331649623505526651780499785406459207822306968127081654744128834981663899735281803342243316978739369532169161019589895802607289419068058663680352256981937223640498597945697426848632342137424386510123678568464801826814678300940672354255034802364144208213389424859228856068451486949026816756823564601553101564459654288682281593146901229736657108056693615567108755918343443330646107151156393989376606335301983469877401165089071264223593895324764547946030494547190450956770878759253942464582671201945774186132171985869984078941708383308046527133235827866832009033735648707457756444857134617040650068935409237983011309278447331180780111765989817402529966888090295834289461910128629565261313080466372679218244023268421814106249539049566781893696602261458011165659809100202683566344338772588262000734172303223708020081861371203138364856556532947937969814844858180848734556103658649811106463029015111354752275708649445651762519568096492793366240884196551515153429974141412009140457509794138481347385258680290123968792883662842407357782488035070516521650522360092085146551788034594678367857232201578255519324196022832844384807420414756791770536928492397883889539194326629744967394006230182244371817794925223005708903667366433712726848319523223909113853760523148175507726482881287495306343806772803399620855919325473576510576359190606165226005237642964824628649332044262003432804788613320653549075746031100889147456840548985853777978679586679209983813579045653249443883609488259292483330857864290288316536806057788192849239526231912425138496722641364867067804081848251799876945817126289952083162151175454178625741114247687776100939674306196076798783762700905525774545941955990753236784102653207519091715825139155658280678945512305794996146949366092771435780493648908398776327151230859904022569527155126202535041614496896614846057610573774584468347478033388635452112686893467555281720320821425062574758988795211023900142092381772410047853076432426929617594230556818469829320034388871386471848644732419225604941537307865503192431135234603933690630499052728318118776313326739734420913448941000624896038691080006171047155064789428467133964906770362843470759949051121900576129056029089492253055901706538708447579646660826768472848821313758680824340549297243583242792002459509471920824751789738557277190711171172814460368629756364080987599197193871768977764276126550502785276619167410624651378497072473910835300438729625048379353980701052442422246789146056155324062793232495456733242973807787361524814532972044474490009549807762847161764704991106819387389367962526350013100335077589885196398823727752914775932380065488225343883288720427317548825507396546957422293823180156240714943548410869897909130300406550529317051526417970785702230214263063085626447925573078570311403739028875622773297333598673724439444357345937318008019222273813753532304955987512823856048177801624539137266948190476404308734107283457899016647501324504394704943664360564556569348121177892037549722040486847593493566615400408592039202650367222469716472832713674116899761200557700042152247888645966480324386239229873995045536371273825845859407870392516470689342254688245851193531087072480439383753341903585729149359260011576964468212417757821908509934550232388430650279468855821947295658284817974155630603880372022310038976929946292024045922330242607127011464632364633913361072849345005594664232633562456598556329550494910518006600785682523398098536587630183631516229972424421054940378668699738503551170791450748539321171642530140455071446000445520582381416707106039303611941756753776665304755217367844551313068566466584508155065867247212861952339945018270314594733177793574158729073598054766270524438948402415430310343834210059141162916943790975733408377555170949628895535160957816047852168750161118067858722128147587190257587657626729831481450641942938313176856986037362234611331361091767262900933365047733346675866569566300245041036780327114084056021250557307422254003951495937339578817343386169911055255915983754492699010453803892404416255517193849930436584607996889378287404550920713580797143459449807837926015463402310683541065330281450709290111939384171441574332495255920658245828430837956043817001922353719402446067015806684325638052410740015135684674301957324491188055254762408541725512827483534732036244558368027724027592578602819788553267570419815918766538342629440690093204308508688658943722282603412633979810356637413928195556968005213098596482198748111635713157457630773807724401524709484058934746785649102328311893935003138570408156404622303472767275725435766280515954076508809251665114988310379295099889081322382989215007605691025067022958971086810048451980342290039430806919053925699858995054535237222982025597227104666404786718274460429561370306314445799178049512457083075831158484176589861268065353033952542537983516811218217800462765590212464240982640617281592217177775105251080524596088318185270211794461889683588863378739614802669890829998458767065622791409368687320042057763943812278806301018998416486921459267099224373079458088746637270030667690152565581501716535207344355087854816929812546102164858359193393979776331707102024769964745655886217950957785077447797148772508436452121581053076712069924767444721285546446129233979905342828157736888162231178308805885199823524540210863274991730939403182353496965176712007366385078421491833099436741594821668634310251251267276176385191429184410023156087673382050383966597925321575494950658968940520380481333766873010924834261579775332089682554792385034559312165788166921991759676399910878615895253567566977099913800878700337133161217079672667713401412216797376591045510509448511563693050504319741446251974423521993654663207908980927196884857738346781806015044668974568453929358872903785730413976274905896361043905967602009305329525724388494944881827830468873408778475986455756467919246567148107464127843979186062684130517988970455182358315093890923732665999513658763562777371795284454198116722916218551439368811983171473754265220937974068603705233000512700487496901290333831165424046560452233391731005539095577718151168259894861022919576392228066208564356509240577639030941440796383609115821631585716422827894520201415972900491382301430269389938572730702580521005951231075652942245504964976556219206087624586647569549616786775629512926045139169884770841505234619656863717247997986813440465798046510969254348154602082332288912933628475230863868797346903213474074218212688812039472195572459872589836446458434677767236512583355136269002116472466216458670664199694105874992549536558052870923350829194347299669044704725621732139998319365502285342581435149350997246183452284155860741657668268755546927616242343788919470459149832226984354366909270142366589378222123016502020613313138258942983752090198159428160160882521040359044585644923889540681060370143182947357679590433480365082620139544602039202604898771934395387556614783990079631155177687822823558291540790686562911834381823279489022896197146201515855095203546983772941619127218320971035927869580986137085765064641292888917862720282108487715021778882493003466231830262499264706931641386414829677153140512489656234313432500100021142125679724387089425576153910026787332354439395220797784259953899975182960552240668655136528090888196619127814241535779802650356579497826484515683568631951472852056963941769001005318542873417038467509798481707809263641365800034517556940894013660271161681976537320435140736000097535538497215751688709016275289183556927066904794294639096625841072053971690597873438231157091192126097029308828606919812233012911746443256037444835877404558093493681127652473737096690066156319594972802619567162488532917840098211682584887094559157181324900969454278278594384538694814667432241787515355129273122464547895719312145359356869145135818891080069192861303384763030092659648244016061967494930581239359218198895448334333675654291755034014910677289753902021664492117604395141216270823278298549081606819307008827839759971145295028304723746343756445510117082152448604351558021309684474013317974794482878640468503938899675457956992245676552522128398846006556628278821000274553256613889993809604671268255003121146336242844888112515765100100900466623037936766623940955613638860535807894413920131905678859886735582583022202281141442982550914211864185630881426598146184094068913956392570609680077889049072136394426258518879698175511420385228890006564767632388321598659950996535152798294519188501764309224296404954231369343457393314814935880025263386512336197339640476924794024284778583486753739742967532182184174634961750980629127481793135282382057617338045540113661694676052186200837315051585550998728694792715980507027878438908603539440246495179408787400449674376057729170690361800022207259324663769468624034828749750299022389219396314077760271311707396250178715746161530675995657684431507776672478660320833604810895488849437016534220905653705825525781523611432665634723836612241620604516646674696046071321456584106426784545677115453271323491237714647482336627526846321380157143473021390015323386905173201770283804158009927896868355045496985313043861118147770051121576434625742184646453910134121442230002686617859476494413573703685157412758191384279755551240734299594211743019012478799065726046682481970518933181064899367116676516920551301387316544085068578621532011368418433562002153951627898812689453771429406768085565509285455851502611259477758705574523007776172610304511436799178780580531887114051590452615708015700953367201047183582357933498461222349016645094709096479519358465658186740509051221492224437611126808435669643522766323679452955825856959159647770254157604938246880959705644372088089099841426475214464485801643631638934343520998149657848265942966360041267049320356265045168405691246077273543284486625034514021392841362580103383825726886723793636707095090373337564555108208270644254113087189186604710581059388567458401785790692313192955142127912622178861940326152589132028117439545323997716638793921471779316499254520136701768618252796887706282061156888711195554665929254768997341655293104848818226219118059158334923815003467729428062678961799347354249135078591032253293300296831654445713040924122244610601028101823008525918159817405116722861404210135723981709942886189958819428096340534327458589141077412374981546048775575254588686571842336687640080014238720141273862081045279864589708042539232146100841625956412045397680450267811504030911912503613539939663459257021831889222838524770921179786688005262325661011867155735571316468188066025209181360284115476454597542403331924203592608078075624032986509730571882079012887074634536669696274780082618281186787072426986485062156408392554652023360736124269089809794120352003024568227734213894017847136380444852507788014989013563596228123071059908444183320245458025912349601073570250178400044017317481436698489052645636243261423558044817356218425323727277459747789117248343827035033227478147654810846148855213349831269881935233677147872262208018223515058146713784902386264091504034252114461611690214730837644907655822652397656632302528411792490645363272749691191725597363573194090913590273797150096736428388298674564476819390076186265540614519969571249409585481490977526421326318714922904858070252909967455585354333996402665554900853358746768427263501339716961384612916534456700796839300056344590601823929233099539804651930697058605852545191510181519420136284302188043410064476413387760952698959459697682529294959472568403129359948725735707624395887632222612378604530969229312882848782489327712574632466907238025307935176991850843283203605468983517549898701577686289335048046375035247162130022946855657870658961148544382656491480636561947811205203453075353237172589303672788074840765915749298029573605903074275833644242167141524080432727377952404641264753311195581539993332092026271951876466349630116109020671534668432746283390622196942868789404926117790319022248480308387962858001238261216023607560583065288275632190538863042117887175300178521538696116965666637352995529285092321667434873039832541437888644469890795683598264668678202797117895395751819118995967908256137901018316124024133666293039946869051540152782867001054926999295492305901950692767561266465310386105025079375349741989829280908077651956108999347010243107134221523348928845087287834874910321432117883155237556139266212350123074909438611268236515716969245419725962998259472315965846476819687244105133882967240601174134946955359866366357248241088956719310061587039414884060390176070220627363241774858986701240425629838651168409310413178035288907984638012910786333654270013049009016928913038259368234273060000578997471444305672642511690205421108509499840855613568843711115992853060932936023197109754067809681337165906649362533651860333971408462940718559263421004316590194945711400539652779334056162701372152978571020339697650323563654148246708174611102130789397378306386932661332349206006415003639215684886435062687624431019445254495582620734241296999281731843292440634709456941436339092428269994532781810673582355001216122537229176674973191189668576105192367100143511057725061592299093204722783783706910154849546715360695404723417431511237300306855966517462895525964896453131545301077175379129219966160991451258044680830760412180838281327849077918520777698083897838011259113886245521120627219800121890584720892753894895781248028535405224015011825989127392279129136457762005699754916812278998235706684038794243660240188093488040831577258658780235952727306090407762731862365694455672620532974071732024630090196175847794117858956702934665396256775609552375261981430817271133711647601486190324767976254795998060713123791170088472391471738919887175893899160412376639213940836694537515035863625027287660778193908129761144457757362806570495736349412934177225933902846997750249817464022453442714018864881044097491074902190202862208453010103163675576734479790860549804682229838312676411774141437730416638193746092802555896965425399327827466569267262856978850795103061297687123702168965619784525031741300192140902891878284874895329803633095780966181210656567207322926498680505782738966977241834734681245280514450284853677631050387475899162451827246996515722683397017378122118298448713094501220313643954555085935545375473604446650123900943590529143524829052643402687865604124697970908580792639999372455901129734618960818214292182782610069935739117657985501572872687174974442351124471314986357601168038049155821647877701291611932500742996661600462401060928670277246200757805372389160132495010020002917717099949523804710375325065349416489055606340846808698660956902513376094644955362948387176625967941043734707641314235646483308989530227885973651229847783876817002867398932402121667409572539716407295836969408944260041089126917127990273076780226876913665473738060145067185761767048706166199955142806273480787073923247137007837810466625761737834526679176672150102285708116336710607309299983650240528664148050405973134574183494889444515778562230697021241464271776722682497993176044954005184891480784444361541691033208809713283394604657735360026043755639437680348103531049927844090019438144746760241371038802045404556526164487464414311287861522844250439068593741146316358524677070224828248380667726995341170439815883510468420634408005478073776551482201665694017052442841876649557208749726056624569055274800251623546785561576973696682313823749187484913475306317241493903200509491793259380586889379925241054784414815244112752883014972087386973182464651177622515100549691512802330774318674503041834956952459773598891316298472356108833473126989100590348044474411860969177608429536535469322613469547539673084330062221318463705436986968838149563417592406168423030259485059157694044172850509340690748459347259409958343736130456722402751669780377464363934096576293492082848103295550151271131355406541458595874601248694826001352954806727580951026395128360061266823831555178055405451889465063592411677507467872564103335922038420715819930956769138050823788801662230929637029307184971301593122283163652989425511443666492947667139518639032024967313889170684967073076491940109369689558497882954288225297873215973288482202698408453799905412322331134449976693846604323819174237936277713894751150054337778785846578078804869480679411652739359440292212352244301691011791620595225372857416256339737186281486222067300462251109061814730631746081035405009676468901044499730039289320334347184900805783737155740657130536162798364172516521961455445066992124868829208522848630812795025516960459858200097125965284250007414677718002891407730775035873552902974470258722102233085472906521253025821991402604399119330778131952805980756349382358128562930779709051630968927284368661653949700306375431152581656379382542827989741668450605490903078584041536988785297097222364881681400089791710328444235513950793764349348179038994421980354640388127682496018064592197058759741622084169132805456955421802672675099325599892035040291173612570740058739743003386746476806612646788392682322224975796198712221364623644536734225679108932821829838048400200879833405200471326907716071223677166577067015542990164286531901975726617495991030262140788637164354391848727689956221830940623589541355798399401722611175144081640553423066328554266400376009610993229101993213416597861830340307541848675121398315607425245471580262000358800988295397641490957707737753715720110717240323471709504645345413361524981387787108700324299982981355481322951979264250719387144934511135398711662888910709890329255768887807988277244848031043836252828679031902038320916907783813622085070266863072059487332586946101951877254746500366242361097065892634456351793885690323170171050927284017952036235180422858130913938679720649135274164259936079555757501850976643337180410256624335986697450847827168974621842008773716804036841629347361927322675068495320567376186240816506421303139464684077448075875596609141637008165226322403101742554880183209088074309692957067496800220703160346423519944734737531924673537692518691104647382627575513601126623124105427309627192869701927444565957521000009367210425883288982775761281745073767371582090618728583454129899099354740667223127813112546724832931314119965783770960524461227991450049905986156950489121697536189241110740784008771464261612355679728885527096517580337294118208367404303967886060933734719006116424082418862619952943700401834887042976974924140018445402397040680389384720835912069745328195756178985298428392429211010606969963712099514608830288399626193449021352217920648623539890845958652412587825430615779754815972262082247852373971798743324722261521270131413246756593174335395602345510047365165696699848268510765996521348465452669446624284964188949411872333712473340426578754592625267822674956337806002274546103462867405108750360752300856231148584585037285631093458655261623319255118327821274052772550194333034978655893356482036146995010293663737516046447968398224171512814413909828437167182080765599789023634207579588367091227203355941932226643865234199815789770374275755598018427479616110335672770252157041134167250162908057414029685604907383275339626630077109869203612168039283601902064752816560286476899065530013056430310092054072306118517766533662798571079990511332105113397747047069819529686191027512762430504113413985990854157491259842831798106168396071088043272230139299156318587812982473067879025716535273461281893268944155517161614623401222711445426203096963697828553619323730517581626184996743617050960170885910191179918273733209103242919460141842964651971892041580700935364642194562182483669394830279346946774450462792072088369156263239893692477434634578430042755603761908346749629133680411060855258321528709623050470266436464460116500445700290668155690741817755390354193846886645043499212524180546257921000382549820665759765169055376883536644590407220612951577666384650129593001801244874400064650446369773957237692116231572070330759456304251915709788901980781114574182869955958926442144862936866764887317026633955308513323073496663659232261113285432184406385026267641227189254845531932460237399065442410782840088077496895587588655518494584891386079903361493705380361917875515010378519029972758911479875632632934177589704074816768639236257823321003420475549283597220253647393692176994810806741305006538277739956913438708369031880950930636089244854867110508623854729342311083714683173736563043473570063696527267883782388738279787337091365412358312867279842772935098846222813847129261762341362130854397529515695537492351292159566854414440156427496500006020490646411018494941081697831456336036531847205414832810844559696375586822986979773173459185536593917237615164362663745513559749823989401787558010737232645022040714481570773875171091134505754590255914679827175037979708185813710073316272843788622531713405639117647784743087019249678698475065396644232366474971257354603198329185101262770243267996306873229640623010637728875000708488048833539516907656733242147984659649904524635671203911840978137310827747033186086992971978416800215789958512367608402862230470037409335075185778505436047904187536281566995434219423425338523564532643217411046263097097517375261227265911628956636154215930652721349527114272041631928379720330778395276591919866523050377956177975840109247684740122274492893764525968612896009808977371121286382805843599764015982256989088478659067894633999368739730008089544843899483043031535711719310017226971404870310586329561555241170242030794857592681546763802357955522119156599834412882472221781362646050514709558035411038685744335841250865991856347752435943079877627389335346114785813167492026257016042613885450031672929061021954449959038514532299021274968197095105378170410671888236791599559469485037993118069573867381573204881984878844840456994274116798489458073521072127586924475516335072473966575237712387686732417897636985610897930061577795581182921767677836527466999500127031610546077962241153170442327727066190416278679106694890849490958512059887934974751072996497630618418219521789934409290597338150047902146783680941960096081306042178698392502987578041985994149280753359539898744418999905319072688278115351344123567962083727319381140837164425977709268149470172741768511233890466029926810215713658594593942979409319736960229401230674471383527818450029236082570402486965776306479159590861555057203043392813868618162745541478375422588156853516292690367758021052876804423224648043567553807023417450690347757113455138192962540051141369521352774220412876545167603914631063095283840083518816948794689182277012776705127945524597990192988687822542333807620222159641957905746570287458975815891105361074105358849626759972585327573096225581113401751752619386001951151993291389384117780066535063964410794664689808763521472686785660172178399870271477769446997715677522151872790555412698574413058618024073392152825038424752983751086703223439853573175228623078988227931073069532039233079725485056790217585092745640305830983733780764858157706564364187840962896945552685273346881469410843909126203025592102898308719362284969092788457721202663797538179405035587147069493402311113534736244806860901431809951839306904921161763841314776211333186732238080722901483984315630866255093499029029456488726963844996500345123212897339582664623641721160298419847537038270227214195969148068475211332258283398668070174858484013315002568660069338189433423307462241921017240723296119825472161801237052573806288700316107437519969920436610661439434203984936601019797727646249567002680503805893480601077619206788770587988243559382232040447139204539727333717032049582066509040957017497563292338782872057677325068312757322563655375335388193710150249573045913577498439742172899133319027837278761450306833803527780991381966146878736584614169115746948347943229160669088471766209357815282214112738360193860758026095868480710832294788210189671494722780157073905502502099603272104917968228415218834629880995067579497944872735860248577639573193386010301033442069488326994927479256741517890983823013122780695033159944793960806082379879034884073909415054285288828362522582055404987369862821667915721787953924742440201354786200271745033629869743019650161374694594782093729612103657487726468900915387039378493856672952374222652829797148068362523437130806450101034607013988807466526630186863236949982086545954840404714547590871719976360769778154897949218939946656525841478340990342004639080252490761897317481187750016724781361834277248602446118785253399905627625685669047113546985013358903201357567784940905967356423419474025925782398261665795275235053558542366025341996519769742228132675406793783112768148356979261198577717308223719011676512922827909332693926492904991252668471166245652880948904549045370974733628046062963317393598961083486541925116835545188258902578011967122025321032362074891024105178543562352608006652619366407837352259732896514306521026996876600627046432727071972524377970764392527786698119614568556934676085191810967520701462006245505363614583879472177609992683903312713691127008887629817161207238063457774856726115896622569471884120545160394229336270105169491993168078400688559384234580526826042215761388003617376442329261091505787077159428387581388571747591361471935861544870081024007393267889608242596266072529293323350987069210224261440064622608247662113374555865907256488724805283454840954916649145736281854741043916987930381023487248837381708126436178586186573789462312463191601928902522772016565675824951433353728779204409747290765687754797281155584017984453655488310670339568282369992470921935877460626438149773999394165936764457322342075228220971842959706678943576460487504931888651356088072909401844547553390969087242513391539303797660850642072277887569394169314256677229310948889697476751337231331955819763717407139942068658132436014607211242177537970592466907618358923660116686924274777546338810907201967691509561297635412813675304800448252638060525642306915232525947394946653390378590498271532016809931491396356903380766597630573381270175480521655963018365189250175769084546284661684403033720325157343335635567813583280934720807999899092867366632372868210720845672635544136301160951952312361498302908582001418905058708604668470979198015213695582691797403604883860796203642089164723485371053148381758747452585129512299087085662354368095242610320662721734623371588150251559582763633552118141915500183095596189715316112437294232986894402434651901550518373694246637785622830979303843925718117178942353774670633460614449710106473026808526193177496332196746940845736856781089297275021294515537596411621126056863112706748172617565545354606052017023695345036440492151241062300503412533540007006924747610172703660061504143344269301334728415490768020572762279437555914964879930105156321563464882421857308037227544098038351764681953338304449739706232864972664462074490977276290428947000336142187251240438119289683382239223728490754328514341940904020383590049620423624008278324306947260980262366755355117650635377585613190736758014610735174385116924000611320734176665914363203152226388924404579305943144091712325528745238269801078756328811085271640539452272409469246336532847364967006552437934886560517693574201342504245969374457286866171875257697130830799902454693089410083514600953076290377106961055129113961363858006663435250023442182907866739015589297752660048215395614514137022497258066570066018982586331727751000064560551422023332004484532720618231168383253989091478828856897359726321750282381325928632700843105265073779270695061634202843209976030689816021076605373615329014061507074604565939527994330956570559241074789243448023375493408925578137925553278385193247003335877734559175246550064018821402133656204782558886425476541211722521601094664978363809572134063865919698650314441626305255596338229010041627851402333071915899308878712437788477316394409258768541173740164125265854663295064253681255418646044140826611342379795034902792107694417672205338213104084902995615958760676956011079388013606678879792771143112329117742681842413022565837656856880045195474452995145352668886931174479050262757932254381754499706352779359858411509351505696104731221107514022508952285292927523483566565306821019569700254770504597589486836971964092118814467272998387941198224277168489481525511881042051973476151216751725741694983159184109653768774183171184690586699743914573634776182447409482863317698407649230523192054650130687067670408760753881580632232126662013597317878772095595809029973782148136105215893247618238365756620067982166785583375697668032583830881981412153210924021266441967644474450588335035042127484919661833283058941107334004306294296561287679726396134239895697865552212167828732213687313359749165496368115857257516693235227119087733689065869130154539391795105486602232847276221753949247170347369379792728711693325855275931066707110950824494976246683947155679487472361715662418910199014500974904856636358475726384425316602133472542235687342951236267074540531977949198571526490672109335543876409516523513073635088492381818432928871640722932106385911525790855207256458918712038804992748631097551596662093687935073439175299840904730057295011761144836186892616936970332408140997817136107947205524142901339063329356294438055047657383269624637114640869681732921100235826825445179349764698472246644529267585842472992415161146207905983537224052378798457826711673804677549911846023519219324043782988253993782012048141190919404511728443725151051122915736983235401722156031752788734843968844589622447026221244618302391233218026699464578096547548787029046631856720186138335783320311314819501646859520770306486192587952491326883705528453963058562829736715274825395423451000452714604027020982118664295042119397124247375871656461834293290113471696081617503277836873116810040690197919502797354838203606541797075191634229970242470926581199145519903274738461275440240724224271067061470622811958230530987612947413351449775509268366023360518379595875687739821934509843348465915632206394041853419525397016289687450119119575612500097272788288143336981025539857971436985023665459483199206034490774338730356502390128773386583898049221313439380353692465365270994321266545290023419808424108782367921970325511180833094405628671132956300872351089502050227169098727885397265135314655852988311040594662857690740461942583015278439643726981068446867868826366081305353036849002576965161366144796165494273114860454628619416257465285607824425534184619597445866520995807948899528744585491674882344017311516308150583191374011816738939913376951082895399523103804140766156799463489143907460470444869752352646718841130935575602536100815430118834289710571107436557141006251124655825843585739156804506220956498656287964365444327389285138117093569176218660081139775200427068733568749582894471613926366295346953297721356750723679972357208728455277802136710030616249668265630460774943522636469561202107757469062548032528767715316909779817692617301186587779950858984441678607292136869978901830288133220387830245034830459608408831902448489176099953543619950127454079785956599142188026113486929947847756888107702012446386271678512232267100511816091423638349248839137847313022114185758082357909428511690255855013535950564437431489230647098178022019796866503236684771345924523525946705326821506798071518704687202950286520104550392017162356332099684698958380770234363339889145500512503709941125639440383807610905322663145632550025588657859375921278454017243982990169282141700991543320719760532207215375856496306030284072723498262861182356167013167455413690463791569799762278513660455076307382712521321841223162605854153827383430737045232839407968919324282721976134523231334911871722114866740741263101161481170282318419522065676512510021916448364471290775485531424387867070629450764357077046473906497937375165846544874057594526566623636061842601787420297492161107915559028635691311888194211552854894746947211882911728990145332546321729527106079977137777700638465952837785981292001314877111620339036141319187354590084476752843705803104268488722150914860356895834578285995593300315177153430444501685471880161025165052418042020362432089097978686140474007284374397602434883203180922926894908750107789046144910096474112716312306786173078562407431203783036064701824126612985260557300407586956916868423350360409408322398084483076472175538483079016552649390604070924568904397093980019116283050254229151277598824934612704581602200241339686012179586255695797586103007173479477363464420438068947911339188791645908382673201268713686691004058229100640100222545833047099849282599962115793506818703014237679390071173398010383634775082366109477416770383947184189324976392521389933857239773645340071895581479614196682680626874535657803730209272096538154568290507608816862880177523052410503643659165106631598248193256511521598535502185035945754066839882857617991707936828009886745637164486702629416768025530532427345200746711402693321344497304509925050074360966346781454928462413639499536097230768854379740112023233838646535759894852406141797687359172258568894096353234779242455268533885508927776894853369711261775909999637704641983734854788660550851783795080530683897842018683499494540122565467668704382389891255463090680491463724649698218259344293872564110282221850934482863418306611411856986351106609522203071866494035657096112128375426852661722542452946534023012070602229941700761207804930755345595945520458026666143147705255568546781148184217504501362523977269243246689490974948942790006639871266764018549390332117843645872622706535964486493327738086942732093185557641680787710429181780205927957658357881055441498808690239783375028041992949524671985866765691149682629606740033379972490622828134279962214559247482396190973513331079994037167430003272326344270132363096535504009061737435548708708758361843428423674242421035221389009046626869851651581080540294846558701065486134627194187714754942422308240354861382076411082718735187263039321767411277419648190032180695243335538051855915261122685445946713539613449690061824617902204125684507417267721045166083316733079974900640192620089512680034997838149030492915331095792985421167724760683029069940078739191899526935735389628828433306389504387376798129086482999155033083664089386401382211972808351641034343796228739149040200266290263339929303448909656662093062994943100694360206105009184299923457546529012853474472631779242507657561471549083715924072467036471647896826406225887025834173931683116951273798624601457528902084928769545545214082923687183478895178602221664288953479874479131005537073540560581071164481809235563700815988473551925481001868912830238467323174606101364175356236714763496235525354337104687164917456947061836943985836883143067369357052502023891534627071844653090534733095661998191081193748439958152923856174689684716493426913698750687646390944706501354774485792733903116225543817256214473563772493556292947095015740415761704772358041928960111776383426834303012062982232777724079043345892599945839535458013192306721737954561439603220628181811564091333683427996172461964161881813558852646364002426961716596440709752075408406702951958965681445885869937702617219963239985555566609090047891550328870124427281132403282058547064871929225008914141188203319803237591921392670607915914322633528118584823085505917429798524729879193158683228929844257668973264155234191364544529066521169832217410582562703090423965002820355618416810574640728426161106969384737220568586391262845812600921365930042286092514901902372828592613806381598678260373258807999577003804444572058449943551884644954747452807756840519855504109531107834183429707086221208001693471137946496983160515559865735165780273330335080885306442902391172186800845120401354824858779273112134929626074696696743652125249692624165162039477769741559927555890961440764407645257791814989769448919070417097882786829019030665723955756279119071542504166524796170828680444188361612502768489176452220582258580264607793388363155993173840983722356631269992278012554871541648567918094558205838052400964548875831958835408371797633354767097738756141828465061932964273951166350939475865362669344743075294872111358474995784292881280866734051205365904205802045208179578015454422799653805273725449397023112055331977489962898420500353382562910423722638623819032288562422032346964801999703542078088995342785674523377267239302735585227548904154863248794521944830834792828289762803151139088062749959813359389388352609998360699284871331312490939503208769058181828867969557499536677607490485261257694747166908252884885625451581961485469467213199896690250115131544166424119260632831128181940739414641333493226908553657106706278527658107308845470019949454265485812452933073525054723548749773738252332722530814053646435223249873877757139650469072705363522060014773463362895186236318362488741930786731328681096032942968240386194003454293473052608321083793859576619925398035220614613794481103037140802138049958082299760680875681181075284247845094785996351714731723278329480417855674911689266728195012582286501163908046892214538510166467962978381662342735058485181533741350987221805886502553649927600605180539875489907475438296530425956613647043073386325807664219168754018847456612602195543409367786375600972390411576908501273717170112275062396382682281881917115312181365820036696627259663331054876250738486420550796331670484977095088330126022469947408298285608111492277848728589382742242003318816417723054424106100130822163352460846592540868807638385024030602776536039634284490424404573847204490672696333075868060319846703991481458748674377215675977334830811593205637864616838058526927498002455910199876864343825677058738255112142635628960235182353097228448942600866030886791258742409193830352618293983474817649769978343784167770239051197042409117714202750587260293077899157197146969774885109217828937820892260190362320725349688175837541687160981159753542513183484632517933437452101128126080512921242287897798239082153749725859192254445434522179481739891368752982380185888694088562627731418388048152694126870213406061827793451820411310465304962782752376143568779709511341800746482282654630065970297257529596833872064445746901737825384348761258413704675953099816305452647839814813582483444295763886278645443060256127836591536931208110392633225178086607572060557827241471105191362223888701230056653027837070788641909974941452855848458918590979716792336941172116277726947428271961977873088167435914923298433406007560400189168023743396426624931266868886254734370970212175593197185364358162337914292433271519478089863155612255231026619417903497529832097042081037098131054161640700339466305125268762505787837703571540560283721802274552612375918178522471426220361746945117491218213551108884172570934619756449233826949275571970086354329522698482605798847338768897978314332713465537633698029113718695194222394514821804977325249822559867234299451606648627937698827618328476196782550326028915347460791247316523225270986493522344722576525375703053357869593908675587730400018318068167234572965517460528031277595278946073205937017274838191293713905148105994489709910856542067942001286681350202268372049610966614530936774956706986341836835408074917460065734012061761758569456479725022791893303881254639679723443309001938789170419662151494711892183484023627087463563211288595398148149275731015625759661278866111427712193610721779516511121233114719079502746909449875456384573261131987010938146853423207021411565293661272661184719074962610353938806558288333647103002237905322840936693052912223540097918514711949489151490599031728385990135695409857807370347214234790779013325063651608921711168489119016130420234360669163508555063833029564421471654971111226882313356265936976741772267418120152522668642605958023828316729410730572443412455867580584688010404679411608023332612232403482185900227885603517171283897348098115430330390226503161515908893278363626042406790787642507139832666945879145548267733428006047373399308760114272974223934259655026957525701412499931172118768606044340593237268314736698138833462640471282608494155763718097414090175301985532354859998056227400841130778213404086517151801591434607492337504606178487484460705345378539658492048352909072774141019384625940763960849354864669645074797173043610954394029059933864032433578058281569695328144823997866236132680685100471081030991551002841286348479021747125446914680753469479431352050085001874652427921879163358512853523961465628793692287980487195986698678585473623752941241974530251382008587847291208668472702043555777482099872407264090667902740755840990157534764909838346893421218885319102678577423015296884512697631522679364044933339246543493501882027635578012806208508023565858652442874218280878233527357786409136915561600458948791858678206396230159535051213574659764451612210326042453337771564065337194202406682510737165084028181994457895334506113423944319650345779974428886892201699366898047753157896458097609203281445603581791702153883486371265654250895370933426471301187967868444681136647144625193214039502541542865303929560306427042206643528166975228457497377299580821932142402764306023905563105524656351015220299447543586632264700446819822218431010409062758958989069697760693807382380090404629027697212053769428966644277293204817677206665218040314884099399085720271577980337434704307717025438130752739716802446442812872691035018280283167712727760931869660246111566737184088813871012261991717619924045643071631804149699604420861618869906460220847869147324089826359530204942230321865244493045728257562067746534611993041520571325756011731862963180103894505732020848403129480794394656787653404646125345337783033786318601893114343064297482775048624828975084744112486166219206699813465356614217527595783311402601395641290799465853654341439935660399018419720867857868290226576473758034347343265028312501641875041015524299699989347722866962543989119402713969120307940061739417196019873268615015245354998897661539707783124258848435877028694785933977709711567430598804262856972282108968926612826862098495676792741284219218610378185017564582389816375286517476196280270226973429102918612806637348183916396858770334576672768250024650160015129344106010540124152087935276571571913166246858655704194483451723480648577319689262125336149935021179284924029395894405029481303041976589005320082625289076363260266250218869248532954852146385201699874049980481733757086892705330173610676016226568962266764301614573107698410638722063689134593314733295420033784529500340683682172337842317251134119254182717151505917869638912950746879637412449487926512218059398593818293524426444713150822527352037225825188080691525869001399418433549151883926750896635739433788884518732290375334286433181745577527883750904566913634717438085647592264603767743041679101691251244792095955775070510857011950468497299973612004189167336293971701076355692115865979888347461795198357290596342917419979360159974357104382323528567520048588129973790613162865769299233159902938274270632936433866487051204859186197711212464855102710938481793886073027609508848429873270500018982492655699521194104721476799653310175295275756236989284332132575422925922609500448387351688549275712836315370184818438515487667553695054972566474791831868465621867612455542338018819088690302007278809019031820411613717401157995681968557406867012294803313016345924358490269706350242660050227963695791477403207641712501690408218381143239598525946904931592061821130914961718730089212099991003141877084254367274918318550646325104532694138934991593398654024128710987330579663419880232559446137255680862634099149638941897418225910905179328036900546826578725190870248473408251104626241281500358138372875246338631375446837368249588810487604079390181130794682778505777592936042445562410331144099578580408186590208855012394057857101784502723002546888011690548285147392853799939444548864943354450986867386594999030766842002810274602164845456041603581835739485262572657229824773938638261817010118103147940104907756290758059569995956918784777542383597608445853764210549654652615642053728318894812684560605576795942721228168777839539713385643614574226229094006399257158006274515216187576918308326913952661812332279573672050590367079383735922937362087277270373020308394175806295339622959240248351220890783604732892278029602667249528106476596418235200605803675876293588071323948345259353446947298479283317801109639133894728021160673833026742066932641590889405026748060076039370515559479249207519617191101270425731475237141965104591934832903847044521082148219082302197908071201370169699512461835084815769988321668426342900781187930870684509472189593923849649925459822956484601311744944314364987061862719794434793052879057161970905931993434875283642048410466345377186470802319431886559597455764334204736987512892798701224232006329243552880213115494310016895600518805758024463668466954161985415890848936698805478211199765157202047552482853767081941052116780868325793643555862083109854580848452631297342261978192766993028579496993007442297800970534308509056750157080690708007902940198177802802828480760386943664599090571876962053982147276614095152226057285773638048952110041336321695498718224346509129607566423082430347931048717550600892167926957085425882774648286375016141688956998055990253172378484058267516868731684345410709132998300168429238272545594656008069408258943198298263375218506769894792308798713725043880029173836942494478862311910350425103139402287997272590643506058304499740392299578751670613942484984507422643994117483200466787738138956254316140603753944466265866033081918753671638842412983050155843070846452139928649394249316977019616482427491475568688580776664424985448901516894442817251245696425576451265409354344491566466455309695887818064627908949381677792909088456668993642091000899275709045515413772658726060667254792876621225555737144188194189619461457556473044225699956125676116057161125488468729514405573596595111599645874190621229745959197182468283330846228903178378127581579686600118490647077379562085361070260426949599907812979422797227622105040930434215976987825075874093919723089092233547454609648280020529451878670729357531309407970524537632835928270688264374957110623825784763596281339717995148397756574560397556681973359080114429796928946285767357134166905399356174133143655560834594507910410075445934757843957137169327078362029702896917014997260616722126516066279628881345581345266027652899772835277328991683054978958597034281895845655205333693592485869420958513911574656168338111749034034849574314939525293293482234146732093252011840174365831400312408008356474033723423025676370832335426387836588673589403178104812651890394642116684584734866186408372159583278001177390710600320642761688015115941591364116257257033594126752552991172998546498165685285510638777780300307764884486160525514255351786658676925446849818064099045555230445319536701248674447209321639717785016107949756211293667431122555531170893256217970984859698221643382517370806212254555876550543545844821892134940589322034962517836028123275614506030833645347805089454332177566538885949521638653573673456278791589265088457555132166407328857432418656914930003278480108587377746372372395652592413751663247436738385261579840445563184151364305546068775352385835253880722291588451449819101292222004215784163185693657232167760175372086010021880114485646625246219979494170313866959449865758947763933419769257234813320274458913839679476607230161856544628066328137283071868983228803965215227148700268603052711151217363227257045309522302186464496438427232630903944066280204327454769008919640990791180926706695189187394194883815160705003390982051214734778791923551850297633328387678708412810637924071281904355107781109853206700389067087213852183682271074986846642912135681128935040152712060149755561782385064045364089101094852923461159622119195728603831002021152900584809998690836876595301270841357554798331874180766548900101125289145949735460860740562774258642370760404152227771871106481528429681284345385026216803084164086779534657891480617066147374865994140170445991093175439679219599910851800222909843801744221879483383460136426443537819520708557265006431770051722105544546455953182025539597398584235117453817831203654649108428152148045562790255658452042815251366595346942484679350086156520710862897353608536736496381815006278770724561586188117528020994730033734369073377701258510097403324548166711247335897357048102316567240995045239920712834075910626093195291254454845813186518565717571498873946429114968799505026708470454785694725451175895520031653845133548906494366306155092264259292343720724412906571945369742729894779166241521765456907636894711806716235732415287986132409939755310947230291377512725126599822372766139187373760419507112576510816952987505700761660431408202872395601622603355867429409836051768655128707432853583127238821502279660422914519420283076036320014277242201727673054991680533181915811820155697501826861170922611137131533388744888923485312085715217199056657689570495823850006860803151975466736741617901529817728771050093988297342708255230153002113937337024124090580251862804311377427376913553733577013759107579399753441400573588270638159180743493996868790807972549164308968930223997242983161445448794812534712551283814074954458325077970558019645129745665304302340647812700074852609988363176170076732622074923754601336799256220804045532894139953430842087488036210334338533864106809185895445873619205872441454047317785212126100605869256637780384728574055757051175012256082585905839946459199543172892693550221917855632759696431848466760350733525052109963319731476670714038218435972770894863121489931474367589732936912509035594022298459763500836556072907184266909908330286888552600241521771012457991196343882445568138406984735170136690823163452549180950784760542966799367391668444116302131832731384201614197414125076070646230337295120517701669972145592145551666374310249724452906244665288276718565380817028756828156589092437337564013967563139509124241854437117419116706146960794105090815616740525696943776701219619360116669371634264773371832238207552383021398162012137905797532183848375949364541996601467439877067475556696226915569265846832430754874876492478239235091562011467740986933464707553681339698265034754079393117941909798525602473664666104529190632154774653895801782252524821103404951814897790294886324320363689370139601146143030850424680141752286762249471153969464038730382842265994767071080254504839595120792822968799497334732984067406237429127996715887578737037681921082687310198130255624578232731867114293719860611215446420571930289844213736930566546501305131381574882869539593613016574168399441749129843274729844200625613302758671496535483029554919395927340798544229980438462091333116947520147850072122855703667294910586920736766932029672338485245800929322910745481771418746106192242236451561798858129902952600862810900886622314386875046947594734571756266314552202013365729912946353641218932699433432331545644553012516759687906456314539189438375750942602028700963043355573150254696645632422899352162517482665303982258038423257792874997927468130609279959449739755773674447347830334624278627112046172549450442893829906615575555397210789671191835877950984346747603993942144449279064096295635672010566181813041057735968199575936093735995987428337468968864966604224115861883606702591136034579753302769126011761199266470233546993073292048323451159972115727788028626256408730070826116422386512062320077418524862845878687637876989470681528176508539737260222830493231515442894008295268607881224827997834577213962441957744512803936568224192539790668426467531544942498109665773501488786511601024267119212353888926382939583111668830762884964376552342734224444569033281856600372307512112673339778496840807843739045003477221488751614930812081945027663754667071028981444874211431365964912494981398209956337986161084362346268946090911412150320647444215167469081854886091505858051529390758493932531076423846259534912055042778064183090915242805709534116438632208583027198989395995262681827087872991171240668678944792095953049101383450432534380543108657155798347016650395138593272295932814036152218176308858243845558898356939947998165602836378976434599785243257114372582542154375191283994069842327103770919425275568818450838614905850555850595673380366951614486138744598352807795679286304800354769180287090559756656863012659119791497840562180468818814004997018714637681690116200854408034192560589553998208727421966791530895064326305819772008598617621134851739587988564022025248222615522426581906413618966322777516636079625286412605758074691900554095473777648540127941250328954985501907916329664353295133611101119181969472669658864629011905702306173493494680918882690341376818250632034577959561917282608644808750942141245648657018287927649788694469243515366738672036392401059550852636167891112766009676379869662541699710133603218811722932292036688947126366630595277763757819482689097414493797678974564592059199680871208092562800292520967647463301446889843779405428221645936646651851781775614197098678712505808314218897618801418036449969070774801710534896718688191261624781878636219673467980948337488547764543392842521419519906159347293952382551110047494462340130172986627169311955262930753056800251558912027751653451051867572623942360776588470293788918703346376247946284680059321319355556763084756004660021897910669520446580185388293438924146981608208226283827569258692611390567626505793654843449305010347130395419008085407519424357180147833273011405055934769072855351515824661739535797096522282413691411637942311313068266545518733996327527143197703130159554008179071512535762095619109445686481017932671771970968365137944658320061636908047592651052008933336529605495695114693937622840141315454409121341433256315944625177551168958308858007129083486986857972613906769527381831896166660939596787180105308776390383216053821866893654186698473746149522092047475092031561065673689231411223898641355577968297257312654967407284688330380206650327886272879168940691531727507724135069197130881520027564151301987566847267220113286181252300467141504459985055942440809542937893932809013019228822980784336364198129735716017104776073904102881627111953193441822521359986281414328666138195056758896331493561453594655840755035413144940789618924037431781573044395097357227661899071390746231736872874198129620964141183420191484474473867828889465364599785493311320131485574178989839055792085164156541024954931246291484738951974399464270606995917360681519708327381561630490212852429338910928954400494139486557000512778654935052875398408232814858288107795992303275058250122300372600597006346192943004122153782185653079773575110272921929652072912929059405150276318146674976233536325829022061881365580284101420523696749788002811045400792048742266830790585090576540086034861266411285055654101137526526357675244676641921860491404915317345223930834183140227606384540447550468781117580952602633188923919465864054097933535924141525130028655025635217443816324329620188585931946389155469592649759765228305052259555968021960696054546565947890079483065757841252680969356410828709040103148375857280740540093294243932105302312183818013883750771881539991288910781025349487443282524476616778709798416403621021729954326833023357884051106082946955181349110781906186227660848016820540666218899989682438486094124483371003227784112428199739392865574534710943331785132102481526107788700076191654138432176871955448856488711130975917238036398099499855615677450154170118617376539303719658774265642694778038591706293915562708058680450321695274452663525619921671041503761668613855818267456328834527155059441078252707580177215077085908890973928738180729131288927587230045889365921667180730124374313340977305312533200512983969700778552585251306883803688799627177072266391176746651617823085362538284098673598214717340894452481538943473138690951144716762034173898936222602896197283125000304599580253594782974133572534459091545260454648142811023539603291602677542346177355915749890449186901765829538065929149659460438482242474172320214489935098880560632301630117406040747198331727578095851986287104529418996847675839211542182099130209472035964796006025055162440160750351479769386372515047328844793935012681295366846162529026652202897793992631149310172282288325228375055540448878887706363416509693951325324215468050509832163028341931636242671562402375969577099974469627980685119286974968372962232373403344304594243057832506180994487214113375091402908661098546945105064680076739646848733771401199601710498962678617236467815166241184758021712912071658044311299180145636330787417702089209118835900616109265497416928285804859338104226877150509607893713115589296674930401886523793437436151665767395417582577978116100733109418337033422778892092958265363434236470840240011921739485309365398567935492374128877713435117302054382746133143008712672082042874601092390858698724406391445162839639217963511193784442974260273176346712339556900304375140720597027120518649057183336153703640743896916250079788477496409155965789781836591410759085178935676741187090143266801756073336735039447191167714380741349482485973252584297863364505059390360651012946380628014912613499203790829991665964315581217628215888227797464879655612653118774965780562353505795953663370380678494389725278658321490664903436340411871579246003914666050658909528659781516628165674877396301754352682396583845571452753585324743339131787068507835253890446983819309477398063269756324045336769595835488389265932884421052704846398303857828005733218156796855499169850398837932157692443743824189338434381855326801085760575804482418171262422248748488884373664599226798092977554315256811115829490422635827099165283615942215270642437087015747645570813580213623336906293444523630383437773968095031651140813209277294887302351542713763237741272049766299309165709949096564685386978596193309469825712613866457948360322745536872254895134340412211672331494518940739940079791922045322169317792746908141668112357333963603645964368817392131662429401656201539744273947159767892888468539643759604867951028366466374002540371784390297350364841837892491733323510377853529265203435200231924231467020858417660147934928945675718791807730528694468252875305605213571936941845847895322738824242078951011861381176886179558392543478283458862552638421103020786198439329772584919639063903332433500602886340883311189971153682060037009479060495716398652686584580243948647922149382522834364428120612103121924321904273287356435743722883846957059448114064325842094220337061335542212246451649189054413304760255663908802563516232394058455907501728564334983308420030519520219170051016321902165573994908166058289636417605813579333492172341360971756728300309085069099544884280873993415365649631669267895473981626594915378728629920061651527789800609474380623055742861789503702766030537134116235637947326721345188020980639245652305275587163695275244766757893096092095422474303173239788524466943038478632216402704764120846134073117000015769054440442034235238299641455107656980320640848738084496339564334867019725374213956883186349245511470179963914377017385906637841726025368169618312111922306050535279882593698696196837759330048477913481836227624884943352218056027897530002272221045811453174384742289103191430236975912670642161074599604647354044648072860669520383667480129379156544733790650984396036211766991883890560265141714214506759675549602512179866025542328918238452268230527007181443921208812650556740996466768219321844145149369895689150657339733982258222964821031716941131082468921448342000832582310259443699934650426757725809761211243179034097352749058413666903080043398138244043370831424827437554730354086331690225514971344385052289900710009325425728690730696320663338206046997780991534576196676934494281635265828075860920406449937877742995552764282309272432770731615640367833037498956269396721737737507861595786843584263014547684991026972801346225230646654510992047491587345688979308577073482244796111245952180574109824144194317285426106729818785694980828076712170397948511227593354356076604747070494753740118931338396096935611494458487594217118612308348839686795549081598359135359084156617560386100846225085910491852188152655385889935178110953376113391708904137640460074212669448599658894093615937152127195239814826223948111146042487596869386498327653898801700749011299729204995385532680666398695615332526007987083533233120130891082702211745900677057408539297271284521227154142805651573814163434501091953430130745705545319893311511361819590717473309901270032947772249224523506993762575973973234748465952685988584115228615988019965048682326020245135813654696592342156061351312766498018890836417988896308450218587586137137075160651168723753009568892168434620833266760698229364083751773348001314923292689219100702042375944672837895816134065301343746402603724959582858663008502537507385116717561112115463754407608511722062933004508526423804984647713217891071700260971081182024065057013909463423685447394865917710465394365683528586951572040412115447092989145698867256074904672101180900307716967085117506493202676113872225168130728317140848240537080050809356184676417115355548617824536296599204240018774219172336903205521783082176411453728865257054007977273989495247571882562262581191499433359563965346842689262441180082880006711244000239939923175642883030012435707904420317699730120129118015683600347807749543827357671774195237157360740916269263946753990905906898494265513349347480982310830396056274024208740446640037168997637438757113628542756567890110478312486254878897658769309501140432131112125748102356107905623319589035793832280445444258489163071512489284714763067399539275836286927868364302481303685855498264753299825775554675006353702478132925244979856318404341562182173351340656973340571133872043952620535849500596079566834419120869729154647397267217448443642249112524872894149439373655616166494326983526513027189199266407854365252806516304306159971305597926813512861946982957983599716865990701377946554002775109257253721656862601141446997148668540666884685738787134726698393846509996942644171820098851549369567355225017808127609409386457107994389516219357676034410391719023727785484837048608793766596199911468400792864975392861759610209737911507637820236629493508306527588182333270608950354306330459917777469402775876265563759577154875556154208136474030232054251312630884467946064757762605134175142233196624885821478209192501947115742218327774748310338070067860974947061166849664544433506946930599114942845464170224655856280726762545402087300780861742607394882735074978011954770102811013321491428602580596009428282384231803985963657641182281840702866229709095347308806503315368868544970622032304329978311916014769812029328156061546331465549838055274902032318436390905182153600567609853569382541021380361150823902330109880197876711341336127081178960562434474090409682764596139760097438154731014735609262189877921377026890350178440810512361377298415208344090099535231424270514798215372403301827407024406916940578442756212514908110757008776601202230134052549115892145051785547719837142734931594470416511128677569966386149099435612750154437188182678901369392192850488631047493025156891217721920168938718996664577333900921517009233066663964568384402264968429486347760060492271228278628273460790743353823433584588609686378881851166658774103685620915126914869298434685085625650120007925211767801233258624877795907011924334456658983006648676344065626869911244984106509538135052118857529023517739087634172463218113667931160371696091862968016720512721179540753505870264917479070259535123741378658299658465821764544393393871681842391564292855471193112636581602175228046959857614775519503974817812505594611203925626512060861572431086755077577103347073003966369020870719259938452297134732005760435763231494750982191980398601226180036530593738566542717820603146288494940654214827748077773157966532283114562235221349578244183384681989516671299672321184588619199294647940613041902731890612953386202350307718166391155425002385113202899810476863450849381426249174284415100464192495641879621474089126805404894596314525549656496839303689607748987913867652342471278313173128716428319344112402328737922979591598126477172612173517553181018205385908862616570238098428861761795748430674247721300897045877902624515597173206701770304017455313981932808264838607863457127233825460023371607000165938080647895276184278713577750898357600796012145094236990411703839673164862763887333309793836801532031204120042042778292115590068208383432215018274809174574013315208501058475160588939509208490373534597773905635640342003159083373920937126913048345130615166515049417144102902743177065128940066738290383415436208451818419878593370565235267752393837814897218206093168524364525749743861731881605294010413875701725985815895645424028789752823000683994160315118094040171440106853759838678847528609119802463399374055887157486569082321537631254093794073706408805803580025100601470590501854541570273092447450931033192688625586731422556433194517316879874916985161722755207132803720347038556836890521165173161653142940150204972815058017234285215279330284099282134936175340687349504964552741653509214243617008001978683120829917154003997815441321082199084811292843743414161373404880378773863824715877324329880652280477532889179510564946325613781887616703477064810227637013455915783282001079686672894675710551809508978192023327364480113500130840949621451780075888759925743218330908242161533416874549257618542298688062504321299881145924137505936120926851523378961214378484089175193887272322633442191737834174085482576565591188206053694757119746339805436414390804151934692718324231362799841545034874733096521048962210473565371671254725502173429233875708982697393224525116391749403140875387202406365693288806701097025598033814810358682315417684918376966245898829154041739890881387220635788518381673020318076795624385649778919657046634795482385145907074257360681292176989021699984025332850510266822127940271355842643322592819055961021431438272394013117547240659262125427177526130657210483117202263712466695923551619110812998469403409714773309110726475504267508470286275937874294530118431116568991682630429541241794300380803630490619429639439821274794182232476807866750346460434684806315232368361065108378394151227343554827564635929187722609693816873496770503946019072281636689537452958316526702476818769484337078674426088173474790713237409766907023248449854539310570456847047220605891997757116209044862441108519662503993160839255746254614708182208427909695894438745727818146317633212867575815587908145197112540024694067437617446434240490291606648811423751844036927844101015159523096511000744103645742232028428695456781465462350171391867097975665727359195784859326242351768473380868031900604213595788239715136094555425019211966260610690622802087873575153268161601238289062824428925573531039162768919057337675394937687984395900822540222293318354446528803781655134551772561489241178190189219445251088872181017217518757173193890598778825210763910358990983281209966548726405472454871414318687507657169403706759612255914321884432632388685321797144262797631996671132792459456007586569369510177370822056338894313591068304184614083556610442274635746394708042631450531288655916763416551925554784457951896721015937488162963999962220035116305077696581900240089154392168371083768424523870912007679373685977499138794432193885116729537611424480140010893602484399341636883379793697945491532819902255933462667554515108303872749411386820793951441000654585038119940570711559448597171023941449649345373495235686474094608265878701977936822264662131553293731025251579203598013291127468783175070279956335803856529775024882862834932935701521868970455920725330324617589891358639858459891256853937861181472629585559471475958518900442439722666302436491123735598528109002852005377803506286866676139010436111966484385288877527066246197240944658559081918572010092340828462522685972829945851239540828998666194340717598421113692155999384552844991601019675449215434413937146270655304134608640389414181138948806214010764865305268723015634685212123944788234937957100396180648654276175208813406430823815302855718341677398025194530682024031632359033691465798216968771019825591510359396059382923951831648172707279359599264902230672034914504731190525733780112968396266448196934517539591961979843290064353886031577308680105351454582888215626745687400938193113465655735490204066616773616099248109517078403861283610484520871144104695533683815839342808660874409370178477728018161885991730355268836149391478741553515691709119547283939373063412199884469323833373267980089732434583490392283261681393710390804707295597878650247702935778235368915097833390269997155821679116559855020598768640759956062655526410336613626491921915572215502787716928826237113234320144094265943037654102524371904062909842286647563621162957633336757683054923922255064764180736731594205160949523194722537665246077140534101963549815681658909488237801416805725939341883079911081937308647179640115193006370345480503647359843205902933110351139632501749309255236708825503439214051948370887862083156973404043154559177507319115676021021657674293742999002858439897383593163267146047237157092425407240196062263467381479205339311419988996006418698394787670788431094427602295418261945921208462060912991966668693007563032214690663690796517549695703597892451648227367954588376067456571749253770323523977117904580234232149412655005133095613580311313508919408659831321523099807410150382983676537607554950956383453912119666696816694656728752751827166164760227225297406067494726750104463463516628102089541174227345088607029848183949374084109750310847030197940000768755660039938988442239964920975076758986669585337597551979731585757128151505790404993234489353211827757174303418018495581075054783448334885288669132278200136255507315413825320610562785243175077003772474863016932251800389346108585414514734914284246191157584410861228807663842638859904380453029616039717349460012848589157637274524383595523042024777928544337213331472988147217583777369082540317285225338814072280881271319922487138064730743842766443486832825901384448903445005434908676037210043089587242470188169570133015904410630450756097442006683734450381415510611589297417715742359875175045867028897352057419800602041398723749646409291475322544910390190487978018581121640814030191554197605413840895937924054604403732156295370062631829259661514861432352028163178931121571404914715191730212928257713720302831962178329758257244713206343635986552880546000041937879219114090407683941678437290943524522954739644838664436725457156170042881416077968647601027083403405462424860204484225839334245620951980630240809486490810503799251467166316644397276262820841351863941048713765145776056451779673296084392259599248487081651995401141127221297927796319322486413628274078903417834428711994907441864071261211664111682704443618905517365888835964029173095747838060942237006374017439730757741142151159893767374433168594998239823699517574884825524305458643203118024030535956691872164282229510805946983592613378064550288503895781347356747060182457291871302133461929396782755001624602604834503863458551806169251900843218623813931492868982114996427497844317971595634254857730093036350830337480456921155273015012701310952944288562641811736294782010765302019617030845027265877608081253589592632854921585115826889584550868848945083281506447028811653260745210346064094348165932005554781995758497535126905430091494494026750562550158349757492465332120913881434763729312869520375007684259751096495841134231680158268444944541361770392287409307551077842397009537421319565385853249638265650284061324393331053792310753443272940587148803130979853505146370019040227974290750478766562497713127014768364315446785152599002804085072652822699158422322719482727585789637252521461103817506628205304437990032868786790364634035737157673744243041302993029127444705643403204010259496305664309564685743220099038425532516974923662910776812447873868539482855365032241583541565359718058579063304276793799785804106245165187454134569769337765870418270869520027657174823937511807037851236454106040143013316590929329460605343050099924524933954023972652158436505692329057742553633454646045191008031274534773250265421296139712997571033966786377240524676744878635939453988278782317500875798800306823799299493749733318680103206595608528815919344589153592621759518709841022422353783392328214477284331893872869665379884516143676981741853913454990180052860790473501032070468877722172182192950250705014658660136390084988276284719034634240669179427089453975793033013822019407961166100828528900192609775756062825780001170966424540386867602346046793774799822852977702642631090763405109289795680833935073743632090040371225488937856511354796338019969378920840298705270593018411614285757336754046853212329945775554974698307881980023625409928000771630050927872872300246388787363113342808122593396955443067102519622895355638989276231250105976684002504022923450396252522443345072525399501587256783354317610196163464912595977516171492172375626464519856004475534615100835737674175695630777747526503046369536202073926238354301259722274155459309671673805303397421639415220890330952218806453595619484868974888903742416990083295540727782678244095606966331914173265363690909291228090358364589916133095026448738230131044772262580601442663537694941783375424517850671250329306757321228303340076663731070737018802625039251046243095346458676192698162629154775139863763266239784390289968190969009690828516160529405839297489188331782524179917436403465917100432654431404063553172638169794275065346351821813642125383957210090787989396398958871138769418707843931700576783117719127496439885234601701387141293253042607351790329082829196090800749069574262192250043731914567659395793156336833578798340223349216269904699167196742452845159410730293738827579918411576574513201715779382437301128788081964024396282777764479244131303078575234541099916901746127634725755110593105880977123297875111035479501474967830004870523191340535169889461440916288283427411464614245614882824800473732557957187071567327308891184417583840494364794649193518450803637791989622333973283438749318321916882361709343685523474200733959323021249909064207720227925261683948171345929441708091993866554961584185839190161059264336941065908450121041539802339595718679025876259074430368633581804672636962596509622899564135317084641836682711870840058495878687086500835946305120987610083841395045895055861268187829510817339415174961209623955788284791397400707335197154439820291663705392157376987804740017775688913683373387441312512035725040299505303083712523017301608401600106598711313788636177332527917999844728282473414520497128855569123798892114639210084225398523807070574577837952883527462078412408492774555953718414611609015630231945872172584709873069201741337941443719280308672943334425466798350107212626416352090865048405205706321979008138760367454710673198779296715927729722084466915328782537974790751069025471392435166969460149948638065645358575801625504335469599727326142248800649634117358417020960747416527211982083546574795249968592020351210793742719815379241685094774721738729379203946840123091903555334970638758662390388930869076983956363601379554385318231962146695273829914465331252708910187280267778415844852543944608962002643046249511913899245134365193517397994578185394081206646975418641118529611096313435008804181783999686251602940080630911258682192525663840703612662434765729076515402681829479928449017238846010015612828451502972793635337176942959848797355391648622185393228451271783998710316398829646108777698713895802077051007008378314575165503261611360987154428647404838999102747649211537421082000305310263045487981384723221846573282848551883815610434102334494417137560342391845963882730421826339668807448902337575561659998064665812285055036384828321563833227062299374122441008628460402855374205460671204198510422450187212335657915944603909300694642196342878186551170471054944101217137260243994358390072088032407395556914640515609463193212765619722713508804081364484523167870947719380210713375089796248858120021391893056991720015926840786184230273865594468779445185698024285291363662413559058620855352475445559969199775881788399617635524415266063280647044742481718856840809007691269181986006514309775741611741352994443891135602354265744302579840635167342945368906519439040904451120895777960575840380592937079866123436076578617999667210362020450643245475184143606001328853770690775338653306962249950480549087744835312805598311726118686918624327995690491611306648121800647429507126161591512335234711592944260325558504242137644110027806152984188699529303252445796704476374805374082485144674314864297148758258456872923022073982809150343267007157708823550011679019532382673784917561656114535118855918373292485989898335768256225940047299202627104115334945937762502646646073697061883350416052954515322538228962733808805196618687640919473875709877199253378903540897328969146203105445306913837697513670004314903533842970783913068932147401625561757848601946237363225341677119958667765983536574619027561553509668163327682751223759963887495027689863226827058393225191545732280879968518790805325330794442178462794186056317828304500318376515303994209555231166846354963913454369357793515681503256707441594046857023387785517355798022624624363280993642074110841488341539879714119274749037122709382235060865617054866773842800778946041534289911585543243316208633294704094190539912672330486679710101084797731986097967709363955015578132149505606591568349529803543483812715111320898372547050008262998667189540429056775680878827072423381698486700963207128855834547890175270455679112416370193531423388261980006212406033501707708979117204646711091385318639953606684510582474540841390797619701498879231644015064784156248640381053541412861339857052342338246166680197539617475672617746917905432119276149011457089404284493095374520251663741671491183834680208405731398997012898986649709224942527479054322965913693250432072689999028542744238795811549892660391886851797490829003658707802611376004648922921395031256204988224059195280732579048746856516531964923004084580285997425683722316008879636712286110430514606974668531271084881512146206821457647266819952112563075952787219419963365585051231761591111631481706658776072359945133663235804492164473754062468800822619452168108073004803972522384639327457997937397868243111443194298023171155830901375459863124189282163408811565422911787747124673392437762493846887514296009823625886686124339507774353218507639451273961514646268437948820149925618089997448117227208172682213107031979349874104172369554381774252114612437348421728729207618126928179631618136635138369440998086476481282837243148696651458419072591664651456958618106888830844943641951811247537479334523042478059425088496860740949131901586619635281374968631312813297244619022048963309756374973430956620121044024963504965212868771890175213852360078973279719321938289835234805124182055615455897998555730660644957830349357433089788544954930192266060211571222210836490858948729161002517899543664019968027155670765167681488995700601790732887186946892486507516506815096229016171242938237575882663976052749627514607296004358075838393969221103163998918214276039990444695372597639838086892138549075121811548554841480152041780183381175768247402997235688561608071139725000801964958732769246893913279303260833060688307850298829369626433123573741851092342184555064784596621390522012332658831645924632093781294824530958253060119694817542183841632498677408646183756978920628402306998954568342284571110256615777842121192094319388817487500724379814821186747801358011359977164914332768520337218124677703393598178428440918505864550952113476946168828193157721839078544845099390813042448433860768751296520564062744692882966810475819829875971393182686746384346109579265752409661427413255962925047931236773385738228783244770052611313045383173035101087343485218944600623439602930068253101456459142033545900399677900209715002473449183004197079809109760344035090868173380499609150456990518161433366314746067161521726302473551332028048843286439947538400304629253111318152904825110727833393848435615629002774439822740266301247730036824852947739540731328537945342764361775354687413805667563076219904844694896142158824533389461635625757098747112019294288782437954654536699839020199299967647858345777504739108352311865836870234758668816511824169845912694575924805585244616151142578820233971990262695914305681182827126951847546893895279321351686167100430741625506266631391965091108340417778287123451803350464214968874353642027821897288902286710611107323336726577041850208678159409328622514440052494281355525687897762111143364888455201423037251631308665408724005671544441412151279548599428773927886820990212132891157778592428475507068756224456477318892189711655483031615446892190789348908839059297363584421196026778770120244203720493216204893303943026010503962354424591636799638063967554645412572606058241250569569148725868257068293241424252847772553238087749925685389813427754658740548677613793145711990109946733706150009720394910008686741997591943025840536804351419416188715472520088645232548401178152832547205208298988007698159809604790302566991829880063997176682888231093138595819241530471321668149517145106934806981159949883996383343796246576027830831710882167654562917673295927206728415626181171029676027367111672142284332811804616985940492824551399304354048454382426065620832386406338147810013435766415930726770662481972072176801479292064219757077025433439258490765692243807365693786664255932684651985113881130086260114061029374683296297766250187127874048979602146635356607423433274074751037111368622908989674274911320612509204199432042522941374135338562580958966798272109813970719659965347823856372927540050965863014015368894483685434706432589328158067447725518056990189898460245916987134264577163098608018279898482008478191332747718401038166934561293340921272273115639476661368415934741917573584081905762090500945467221587998146498498636752984908904746678904897429386722153255572517492185212363987746844228944007077262993267112507276933101328227144294985506632849021735281341099290613862568177383047919016638917654923808132036831555306322420340648555098177584062059466954136182378778956778556270536389231294216506297330430384352829437945942225806993718361229528258594814919566348968796227786158332950481795952290915271909202938375861313194085023692748623885525382035101623013615260044821758231686387964253585126012522761653184385422915850555567549855188632108684636429103467150198726215059038955547434693864862572620057222311220408782129363509990599182411057345848933921182404423288925957878934152457903090590103280968193373340302534986627489982173656869156365277165131942807743053086443811320738760240963981508556753792704067951090927855374159439227693469508282673096085445127532735713600392328043417232973429993311289769445453349247934259678136119821728122160357727789966168886271516299301062960776799328459516724443059223027802713593727381036378158258795676080309218135500265202891264249784259092008867756249071006177519855054458245536015962645940557949491310854552820379531690580519773344651103092260780902342709319147306118561240226781365365379999575659465997245965817684116674435045548704630929452401659697502084642529967678615146322520594332738022168815713107441696607962908153827969256278932529824091357099855934084958194813575562251765943486709619011061684091745847001706429661100304606980617128617586843137292151005290296718693986375742210178861666721682092401639157079342654144967914335409355121565677126955326714652304498690767095926187481951151249663120884708430084655206278286226100058384606479489965889471764858654762040628600340190017723594306264455059170859065062061138741264512695318309087934260278431350863486122324504045913488868441344753857496762491616182231988760529647304157784725522444978580207504751992464651297362865616653599768662433546925099091964270591325358619883290777788460660657392546123708972941593415099974177508077382731005838367013422476192140345835751258234980822545424576101757518019964817060657510796071832837576401760206070358571771439792109562611270899438797880086340349400796475609233707196361711579876591637829233617123751205875182199904231498144746955312984837483673369716874988354021796801696206928024976450943276427652219661891392845334733263584294242197655881174255943883867837216672880568977060196957067173355046291524099115537033930494129901142696721403103713179590323863991292299219199609295319565924203666213564550404141030709093051830548798298481195302879249722695321618893345147571407650105420068563074739556281666652306515026980041372810420220530199388230568821599407990198650494955367594213745320812769313439441470595416005523076624160759244318237687293069911662782506760294364577591836346799561644152893693554978479475822515663965864671486354901288813343539889754731921217259508282455020581795305979122184222785455959964510308240106525634701995105885620990260295521511386650550937705000136142748802441943485566462654964873736589180822552006602996359410420717589915536107880606560561359684395330623379886333176465127007883277407881288121743136872086513002843758260224834518025735721568242276870510882475836501501648603162690654934617227098544097071638332962678986270721267879453669899048905144360589172337780806140357198224103974510147125339808044625481329685346977940120078158934625722453282845947044608056890836789123198195799500813780676837534133297417200242106079844109500981524688989280524954879992187260344273029140162637616954423731441156887147138084424586223466778938536570358049439358574394900181903996645176917830282132452780680405470399979816185707690327666217502043960875789859324178518138983102441333032199206543408683097835103927820027425837012950222333848530701383805265189786531953260024657552369583282968319467732845027751200603882340649670497328579575475146130760818421422863615679002669884525710462281549982265344424648597327775611784490623061361640929939405329772925999147785234257092366528986476423146465505541161356966562624652633483323883825011156680878094806871226141972966146684632501409758199747131341518165945403487332916005229319552182958001050454925694252289492020083283739687887396284027342864268007009478102827185301959757891052976893053729141621834062940796563410114218477542463814298242811224239918698656759425036631874202223706691444240418154940677756109633376666361360733639114481005299306573528759895996275403452880290322084206929476394508645819092746098330702453389165251121729661834434778079666417287923055756690607722982158282486675917247517071022434499186516732470661297030106466964149312112739370111863771075654366269732484458651971347230306199787246411912201475307543192836332824327379572674810307205822479867178847764916623300888392625112704398680277661557308907958135854224747457236002746621783772438733671683968558843355614313403731037904131583581862327539780878023401649484242328173552356802017954845678636706007436623206306286471687426462039650621245884225886173335869125319517264871377723072270740877800025307038296392335661644127782585214426015461116100783586408079090346553859555720003892713618244566914236352877877118597823900371410817865248897512780776471442885389755740193840106622445529392682806385534536601566921079883598582004460683091537118835043511708606171985903555331320232712942745044548467213706977992238180221675816341089338445039010593854793655536595915894777581735370673405404364050316259780541382086518191613798883734127495331887898841139488723048434297942735088684245185718451187596247081693983107855437594632186494247777600144849546723479273061524763068941380424446585996998801156550026189651165077589420238160468649950013404192070325257401531388374751455564116541951715956148296800879829882980365218076976634343267640853732492283857684038323002898780710428201190911764908507080862255256674937883111678673032910444904592738632519253179886273121124533446042485450956619773099211528034276006758105449035558230991576593175211781960764958528326973989661398489749780733669275761262759718335677083976793133132499246981267149106570606561349392197964053604038033734360259007435779381351410848321534878758016993357537406792169663492058852065402660531456250349570501294769798276804678954550327273838238038769466317033388370022131469147658887626504478111194265245907996829537094886518747436118975801508729275322803932760053678650077986895278584196572696835509515741081062292192331757598495560022969785836414785393856329810985716765696379334856120142670220422073063208968210527947350163685108065156460097435454795313266216293523947045500410232614828266889456342581009139320944955024942529230380157744672235190158753205916343928066492624216062915972448366840495030452524731157665678005941291614440509315524977109563639715182725670394685551822711027445460378210346336073428361384484209612503024803177600449994519254937602858134635313524693304064015288940249596446737867548269041488798118852284044592030326677776780053178491915525937452890136882089236772385830967519554023182306842817444767982469606926234330941595140682259609391192244940651510935763886509686710703571076911177696604611061078522796654753108379935734596478695658699054750157811361562732779024982175658333111689647327473233797880835066036088599530322823513985252363503697647965677012185395869312682837911249547939556148771842703610216762724965713677391466921850715657629553138069928981312022438741396259792384614554504189306880458954776267515931353793267114053202264494637180226557666966317648195531747737893880664875027741000890776699053437243134634895360926941690830101982428969130966050360005092818626306928616584443380857884477059479275208260625780333690218071513288977584301561596425619560439033079702758079692039888556642548669764470487431183370073258356407008564054654609782747854475340628190909616501508207963660062557859715413607164902669588995508511669537930021497272330506489544758475446990933277177922612709330768981045084704802062257398191221371558185430135731929698442507973548512986928222019308281854934594523033611396512972637568685328550452932342889547452255888167323316710989643502012694054493964520438091978574820847095754570988699659299632817911786732261521773520463520667746000182591008542241964223298296959522803046401986866270367228984137186219601281032534749697759507086363216905329088417013757864050384577212561418385876538854478918656683747348140060227534386449503167732151587282402299521536853698209618275768026427475616680256744804332224104588733681017058626650487722247498336415344619657982299421973410415902134012829735053812631859765141581263473909585128332744245577089788888248974403344947437022316984278808549680891493749371680266951746421991445918670160963398928738252606166967671881769751094985298337014312477430121517756783919304069098379726851664951644406022590032723500555393871408078590798441070060685577861968156934070340585151940592701841356546910052169574744425084970147600289536826725092614288639408760847206405751347989972434179865920108120019579268248835875003537035601784938228632140295977602014881494172384951398591238888768608886868204173788107720089146378331394623998150325995081367587092068597877000032202241949175615892794302218692060837249974796434995024935959140081527488475988871013637850574209662890223338757045335483423568499253369297048453779395385060376325846383907890759635606917472537221899435519823613300866285096501528606622367746381800795475721854908083472985337112016826118239386882644281972978713183951936282422331568951485081286628049517635561264230681177897708238336504493583815963261702554099403753339389361932256006452702434335191994214270361158449233363196595108710112584392377979305871892975652347554692896726333963896742434749736929665750101696014345048258454770127672543621473484650059107340874631850591338940546053073670387937967523744772189277537513376599675493001285822998426835789609871381965033743619582672037216595674824383618758698027714269446644137402524205576306357156545361155876785611441182894640994333586866533029521102714950647071561765912934654674121549247754771204139827698920006222690268037293925706398112677321809809923732622050995978692321123914352816805150762896077038163190749774816645816891883892400134660108138516918297128559731760425597495420125513241729050918766521254484932203123058521037252163697084683907282671200287267337864038800977866889003735280973695928629985329561321214035246646018378505762957204707417580005483677819961486927670441433369328382241142226740188845662732993849077157252290597562999944169127690823874760791015942777722322323366953931810824250718018083345097079641803240057437641190272594020446803917897090530448453127530044798466472462107763348266120843951403605549984437476041458930746573157434962366867381989000148168234700753114277932001462375339959825502092053057221623680554659412536905809831454665423115885007431722827162032199696746964597764357454415762371474446367246604791298144198772051400743035213535687067353475703047106245506031912489257555553464436906150695561183653886730465176865247240286043884004273253155934938926098736553105728925412943383773201897721925881526330147890004577367800587804576004153789898211522009565661322391013129052729428696371951727389405278837984035086069879121902479978740384497879885599114201212919917033717666521520127732361217005008275490183569710616345332395107009958204845990356542644636242265369017947004261900112066300032774617067976082778873573418462468530121604748316654211945838071414612984730168484984695517701293706508420472628390792493813860603405832910007525841460362043646743919584702689513740268346333359785477600438999672095136574374791959510836352250342958293192996076420808715431604603918980739788392003068524797429980930532297725563589413451306491315505952543096965830131164758718490671706250059036794770061164612575143756863145791957131808464737320004953554251117455505957283946828253932507329056243853734525213578848235526351580126829063091707744493294944099738521784386560562619549507680788444396104597909757151267150294378500579252329445053212485160516814153901764370622912969137923615179561298376451940286609939107664510667895802569372817914805887065759991305010969778418053142666367572846134679042957012928073246136205735172625603823020761343890038851703847461512581102215907596058668392480157964804821115194219074314120824813031436585515625441713464775933387083457451040991012709846283104587066611495701910222851936257954480047249679409339206291080971463984495770777391962138888415170833812933631352950715658801030323908152601779663870292229660686636981495135787662912850213023628317535223297407467536834917963814790014128826249863225886108367804829286261236665781530825131190047256488193270493322725708070781213101767875166981337469245489767504271591876458057430361564452740495416526710891096385038727540360777241006458591610768096563637462964835878145035389224837311536473235563995387559189943322002272575404726816440169035451847929512063758394452069027844225040271171216481607685752010121411992714718841098514133238506745723044494744357479106265373619084760724020190953686637395105153341366322864520126050952250173350112266626152368782015173265611084137823496546072995163744461364407477633984191597578068318647504668381783616614034682828152264835847894466261384932732606918355435716464177334178741244903272752455296309283099210915774064188915146884729346736512600244862466227889840601226295183867968323001618773565982908660137318319213665485452134701348569439959037735400116410223133266647158762742351417480271795286432912754706042452493902817276496526142483538667096458501753433135387592170544642380540112186358266723524539394710164956663287093994009526048947632315350267876810239340115344467109113199687153363606580676878105792198318531021213703115807303038004684051569949164886735708416975561186302948527880711687154109244525925107156636784498523381640147365802615807316424902866807296115329061899387000937127194994314971622007237165809101418986320728155842293189417476959930936858595468221799877456740537910745805683477379814836543925662697045763270672960821928145685761367289573183413480272733487570947460531717829685017348036363197752676636508498872466775257300334995732462066821735392224218923785505585835217169103721619927027687134190128478300637429249837062270196346617547321997493703651609967551854182832327673955975498805504137394230104752704435185954408009081843912813961073433303937531199101050038890395269797590209572546541480502481231795359907614045663033358869273693800633564768330284830850557922563300700296742708620134693640676602667911341636369467655575511207131734360641932027210416426603178142416492469942603969978897171389428414388219802963115852874784806533518775567021057907156185550473199489679252507344211500719205872542487883108638701104011741279593070895989786319116759137480677750450706983655028051382751025337457350810461243931515992844964050151869186075860840462317224677528593618174893359844499832511926093570371848010593812826566902448975847276703696795040213903388816888259589874841339341643501519839448213097533465645701269065968517386791471672639144398201937371000777743008176230697651137323155190733283236573905550521617017211058598568468184449937452717002956146864530578673113396126769373704892823574597149775407980852835725600684463627456865730069285396784307383321078914783692682031400863325556436006930763390498305337993477724067362929230475579235014019252633701802688623164022784239917675642644688395051909995026074293536390290785561227904145993488318862972364141276296397187997076953478444347627007306726155288692452701816816925537076309286399018344885293380573882048573552717817508043864399531459874457894168364910486729644561802902636274829654012864356352502884626728314760170141816628160774810389881354487258439086282546072115405015732655547131662953000404780559813526466256108991294729764876638622889063565998466494381122348158446706038294874050966866945089460579548909639911076978710064949397797673784425760713952886044209949958604735066126127362020551852933240425755457899113381817715410252014071455270882312485163027298990097853105613677356863607894324414345249115653957762201470464697190724203273808350369366792935283035347190994239127639586963339052163582756391214603684158784763571112610424031878993803726061783399629564145401288317445346277408117716350653118179614969009543427781402098980191400264474052238154659224896051795380160737873760832551465351299326409436397642929386868757017004589581891885566399338786059954290163643663907321081430900127421949836571419897138356176886810490705298232596043808765280097711158870726517999918191703716816537511411260108948548636507383183744638763379412985940355072812251998099167088231752707371553267529284741372266114488941520811053873313130774915054585236084794647009720524996726189082229942034729702267119708271012404897653049996348699655585406179170685015296708673449705995057070544487343842229319976035684020675355230376135742727888522368026890903902210845591358690025033771375034889328713962390816374520163026109313707955222620497723256111685794257386185996494223675307339271119548762912170373580270449712535858998989822460329771011434377403480108138010750233773151708689151212861647869040566227789219738609984273157556665195169520467354634452049420818691697172100284721548696302361296759289574713611067571859596681179276314201125225386884421618967316691732282034299437678425039433511103400973512878088408904610986234357640205534384228345658548954629898559162302069587152575875206785433203588598502904417681578701562628250559327519979977648115475526070999221622994867874639011902894373197409633474388826678598446755168110113081785751538240219005202729459897558251394021321920195844676517400063887047420697727044044889883802403302278843648136446102805180198222181367879187905794571378540879208330376568774393192428574880190648692179495745605825952573132584275097482430292424066658464939594402011678846095176309162419506429782627726897044627194584885760733880217301518640331238828949344723944364492549621971180912235046151832188239714551834747008543407628145020673354589159838326757145923420345267493869103655401770534592832226025015368180860781923400364163687820073592922963826809278144309910999739988962157431629215445707773369616948482725996748481040083007025816929687428883591483082639708133305876825154172887484639240474623943220921651046632512050141087280754242536495954343258350379073399063974764129548397481623306706332844896772076898939983711747441461959445791872901002477137290872983257963781024229855033669856466639539532872662282585028309290625821289408035245260794004183719117129611606744300848838317893381119544477494697430192401836787904197310765234462392863324469148192979867658028642038267208000904047930889591915391711534275674153938495990904533493063715059636473779572434716577252552414386157391020086052048408585329054000354173687857235671944616487926723565288554429486213987084329110777699500147429060123064897143069016690337863143272338692306794323445104766219944346102750902813852575200359568694704637209018393106312850753951258244386652132583343365237402186300726607462450205910167503622253308042497466872511340733416341091966152940091532647184290379727828894401001288900910200931524794030693273653685883612372591512083880646365918514306003824399030830250730515572543226776608338019956774045601549230191894706530534627172825689433040863175495039967622571918090644311194666040596086774019644270038434028280090549483949903924027856710625477845906259101611489510900582602034588366728663576693847954237398816140524052576315969872152761759246641886322278754721673893725462182738830045818415113015569623821181678164937871635881696381838955871886568922351209272267620535266175478207827187230030674920454824115087036080026317990694009155507002520162209284343855853648192806735041569421546656382607232201762694078052077746701764088336453010225786777867800400947998953254232731636667046354822479655512664965780130494280328670425595267700153911587417636123368872063669422961009718506967357089322563718001945352034396591886421309570175387359773103976464468607856938084055520997875622628408903450316930875062867083998840440020267002505869992290326254317678069510362322403426456764753532854539670018286516457962001059950218145919020338512626487306102527353300336286916742171874691801270578908705080808638923023556105992472847980089262465045092480941281418103801731590815948726707930607707141990893695427087042831771811844163234923603453519577734486818141187792332206606183485704921232126644204984599252783749308349154906659061799665691441174771784155132947473411273398479800010691963251532921206513691214478263513442364105574149372738126440141329038641939673791212097586896491908393695163508586303107592785607627701810770842521112607992237633959678581061880474773600573046024868055006766030737031404645180243356575250837671111638321254607292874113538058627822920223377754148857466222792328600228893243854927915432108406999094012342880321725759106167013060428850284399944741046970570524111742460953558273051921627154925421438343649889694577986017698690551024645950089706008382285279713268563553940436359359105926305648746937639583033143136466355836175148904585271729613382088420566834318040372384047681206683705697754465807109491969829289992716759243963138458763205661142593828459984803156852634657174397779015832621489288599032429958509967626348343966873981144325570627193881680919913197761264483690686981119410666438347281699625686671714533256291737860306725983789876138870029437519393212700824504679882447243457681146980880013374606903333277377312646918830710028669965009899536487128099339409567835455340386034139667796165472665035031127874768732866267641723874970911207919940009706095816259322614999898895445945637632580038020415878476259206002739195749113511941717304429965695776189348156211405482161170628589237979550296306887295895899362569662327717972577960904532204695520766482089172331398621426761079263488657100112515227032184339716717765859741210258242611833565345501064683022103043029590682680759720309056202260863938717436535680397166655058836675252105627892251378637158203156370835308143337004023292886250557197608911295289546663186336874962675366476334041492282708046445603808697507464589270348602408402241805000421989950691811522125940339570242670478322624095070787907367000482499651434275440548892517651490143436189719979948031484994681032387110922719863578542231478752521860913246323564238632249870824483209741052314221461631143161957093696960170588883371405417721378666590298600412077669932435217001961120863167719172055642499452318348473988551383611055474818472806787837700317379302147321752057518832904506494566888230348743059487217623122248509032919623435450223760266839485047865146884942502626747457405201111577940055466401133007660833343642411807988298129560225708380732231521818014674454312575480002015239105812957802974673268774942862977710533287710889158178850478780854249676632702278391562625510809917737449073360538276122764550031441366385623738147374290205656881006404818028598763600308119162869512554354485709081905404442769827648728320463533775103493200089283430413929970717921902022078569016569348903739078940549220325316107327248174891833161023194529268415651383946799046505501829335864351958339342821453074883807213174042570700496559304997139497838207491274159030701728762800257536584128710734438157126386424791173954312321394558488856772648696257171002045514522603210303271953947146984461901272248058429275542730249830264670336179914192355007983818147807783870986710765366593494934827399818626493355080196728771085486417615623773708959636555453562232760175762843980697560124968209073979287312816102912480549618602642664738192982413044900571996200655895592910923241872424433681769097144036029700227873401765107841982469032283248423597376366719240297901161764761214367737023991012715128893885316039074348285061262791973543239017878774784793131345674895893270173876428669851882891578653616502069381967004822757058401959131777117851480346039993799174643210987543224300452017350401239287445931556592825486057896692818542002163130090788817593113226469825782797783102609078389677916202292589422710254932062064145277042258178086245716783938301346649767702330284306258526224821763998442351364058001819454947237474360033264950523881507783449277963851103372056944253116798527992854874675294907877139995865214166850476658870821717407017028740755856191892318207955532276815883852069818404489627035831790747627946426219556150972866095142811781924394838219580384282745618496502703424542563591520365885967198037437562994608101097608738865339618734677807736916943287811309886446982927547406156011121169683594068836876472497327442192460743268565021638852995211861883064214083761777689997438648470947680738058964808788929510830161539008587074359369396765837599479645695824453457899234084211687371998098897018588520030975133367598996678459691047760276824175840830901787983883080981767265683852733528353723849592221300687745281810256846676651286877010495237156325261536239232643684061869113127229550612858059628490996195816842213240292572200815528901163144126703457118949610678271931109397397168389797280999713477840072917807567299436857459114870004735764673024436313315134907545358302442334609005608401231725848245256116836823205487673221684453472983795136549121065713981550253673898905285617746131834241810949422204090284373718835888389180755423718818831441066100589197576598314025554176100004287167302695508593087604216023905691711904082240630774231460602931869938166135872948796749326114731047337478104600289399819943347194095611730729878732025827330320998369119980733523662078502358745040290790690273569397301179534281437233660883292248648492573613186967242231429327575572179675038626348913695281940882402957498878091358373909522867740540326693505014759924570588888884048304025913859272813692609497522935869687964181988835242107339227225455121816055752997651160016213682478964102878525344280059604518039279103829167758359442198116791333930091536379067598403496579083651346044452017375437041896395800973336852545417958592078784378950052606618918113407728822324385329037118981190603611261820203399042843021635678015406863264614584512766107169683505210675414027707099303633778588388853131950525097106335077507561364584344733550074519869858517920092699073011438958149947609550273523147910231309207161681263508933373414379154564074800197377329403406877616912873396939896186665335272347314841896505271704794244126521449431132723731816183704990184967688791892067127407798091512737845211793328820473448677431287369606407953267848027030994991131866718027740442100629499143953023038310781589248750849629875101642814545736210557241873209748480233276046777160972783864115363223633150883325572685796169844222530120036961741074869083305424620274543229944232103529700765448327493554504014042678079992773441178720498262468465377288084418497434608554370366730995767055526045248190097656715632853015930313976017999248411594481904791945202976033718693597790741502344604496813404692946483585759504352091516226445793707531060720607574810516759340884534019717915952289879521415478064340775465163159636720129680853027584303674027094170981447560316468858072050578403224867135119222630422897886729509360843242584222907261153344071926230437335401788567530841896668803525304687362050886930502024046774969248243641268097835397312140919719553363196023571161609654837105627574482098254047140032884712778264405720585721443928076683386630839321608381760251564652752167291500278815926097391338565997824320530382891100788053762389314607832454325343295006657296229016052168405535262074923535626460475405573669796745185322020344030756650321348160585152458237424389297705905768060217561728035316578413230675113055876801592455066962936758440729203136481895463217019027521519360305084300141058510044733271516123290756427265051226227265868491765891153081424971289164261028447793001127082193222573322987366883569913562366411074924518794154352499679556503004936764449559113954806022430527955089924055580550197884613325710236579445118344453592702184711069372398032721697484955929595235042841524317290172714839829207604105524768405709879187818877220918083551834519791943268587925912535212575906866638760022595537051538646675411776810832662338233846211865081135882752908108993398216658899101101698766151030127724968279646982384724069144112958055625951296726807017466844835374524284538017039633899973274184379569810804647452473120161511618085498920321287599587084772326554614101504748389196976484043577259947145724879122749718411571065929949380909098367908861429519199126432716863438793342507177585821959148653528008451208265180111882160083317221505695867553700817993992599067471974358969336303033934742233817988919480987299833571534501891407859515711938029992586491633817953815121531863357888377308444691475050196135897255658480382336880914626089115568393679999390636983463396728824115321794636670701315781044017953379122551527995141810633967124736029339552569374016714840939146239640009297828311148893827180189858933221431430611914966586484026862411678186820717304367507207002414680126290376373992241678468286017374026064922679299075948892582300381553167958423428301678540700011680595692926444492081449116315329282831104361192460525923722282440168749117824040145754524812344824592823954416163384942629819798091919977724822861747232847782535298834158542531383268484063979388058222719958394887225119374092113964417666975783274334518403330869095019257530022636480808366048269385892464405872852903577950822677024164419830486736429771918876946201086456069873574671416548346082507165650006964734963686763650423216053414809390604503254449337481674314045245229891725102532497361987684007094150338647973623726536293336937633097371470705459945027280003132791645765775814581867422273205042974968204743144375015632587909966226995931970937900701747932179411077210959292827333511719949158699944237535844420552127985131227303282610738189797930142307984750072196006389625609015692923359644181462183733016874122625803549962273059258694828753472550850535726251655101756529861407737789323945210773755061033014144770786544584175509596177806736669097581737384363624936366388528269679565403215104014222354632201552225218633221995334693810120576601678156647387957079538497693827434586680964669302753064077938084613843662368819989728163065131590008244108686569420300626613681435414987953124395996895405834686828062435176049852928776739106947186833530910794495862382179741952795337200894141285889014731722470561584451379597577933922891511932767247138148454129191089076563261926703231173595483042023637851011329617505578841434359422025590362361882144386312984077225931545054936206561361164596531787976979400749686342411816855569787995647791107108117130707263288902301444882134421717192228914168816509497750267846190054437627414688159182294703127792008508892151591116882084935876132906345181135240172572917583094954165105270146478586205609895839026753657111297041952764784361792245126988918320212075125021416992838003459967158848574299325080593183775357374202579171196893548699165099620841147275728420774528037635589807752323555698519696637643012084750411796610510664230532051885448818438807602811784138738513716603017506725796598790000234765950980707063671511862216117527305315496467491512929071009728419220631060808000383600412998824224128042711149844288289030983884246061584493430224137062226666570761562084221849342492438142051646314799223181740175291852669127996633546073877519820190382318948976041220560997826878845809744726683978858973534882344305473372635277951148343689588944136643316428246955352919830702331925957373549356316477080652169130107239083168191931605473486427767395360820095105409889338816227069131172880082976049696898281004668152019548123585134760641196800499409214766493603195957648954564738700475275054801476885925355204655947966261880194669737338172900306157181380011379024003120434757087551860275582452253574119921370618994074924447847410095416506118313311570146493816216490307513711856253507594852281192601731143861562908279640947307228853111773197451494639819930799609790482678284010680852665112006435255463378271486240904368152468343894919857058633656767282193591295943140336344373195914334566959404250306982228503037019129415254372860955277204406472885214731158320303621331113957523548922933908908125350638818786592556136602734219386897310413188721482438795776538016630916613910151799066398910852915212347345550522670008971906134757789460090708295137682136280317197303618766250111575639425122354009987227358278075003253032104857774933266787927337216580277918881339653392820402901971669068963254977050903829488841380546029418195523489619146517726565558858014288151222240455485416721919909118819615019703685159735000800846917905540436830292819500801807773784793642241872695997698577267184323086531924469046552432306753653852772301614690868281313831596428260088337576780577508501127329407805374384992943174344119193191982866846218819218213665026121003274247082981382283697895804096212394212055021700206277544326331496971163890330807172981557224893547608763048457468030257477385126905660743269892925644891235451436357035671844025404752945160456580566287760255401316256570366517581584433030592685372366849117796885946750364690109736514333377834624962603002874894817836097350261847871280114930119790150980811829802697518863160707162067656131044762490123602222346596819957520455619865962645862471741684317547972485887101477580804887221389067731793141107111051874801982178651637432016043213905121747075574817195959621502059445674378850267622225642746743322530347635824725576439470901247648122388326706684990808037119452519660158277186895271989035606127412419375340271742973735130678291878371933573607518678974454182860538418239518838941463588894595689837007522869510185901078720140541072574709591090414982037132454838876405679274096903418220469605771661802509255763096185882824872932004877262563525548709319110324809892700718295313866695387707990296440454267588224951467999213716171379033685885674207905567321187945039024658857310713996362212244456675896161494474862946281385062838281924188600560444759728238282124770427878814870627168130175645540106950137682377340670421631553790505105548071402598109313235858711749244176178824523182072412963031665098397571381316484416372209578314140938015216841226044075365947864141562705678623316760479958387964645538398823092673865886155984694409700532074440199908104912490834630798058253194171428248744547990003594767852712473331976200004892817512206632605012393322386679957782799522243403263588181421306168786723379961960961443763049048737068860874711330340264583651646594153769336107522133520590309349540552618283837584888681418122403187479445198987000463464589093332523494631699619898730131829980055499159522678332090392723914266500928010171641562815614959310209485033132717616787945019854899648000644356177717608728017717607259797331156387473629086952947900298563854766612915187907906401078544387058866517953748086392888963853332172617832740710974163737101270006883282324034243511943039683091800514585481314808097480803466425452470138960345796978492957375831211214718240516319819278830027166487502827887545439789260803972331596409674245822222251156290698714661384339977523179729574466301480244336410096927436588348061607636260519992359223425694217225024785995285913474327534498551422548942543660875093588859230476803899641247866678686369465643645620243792677672119466475372290459153665839592946601836852887843766468263075337655857545563137163820114258993678103673035554844352954901677536844932945298011497809091749847217025411923553364454642857004485656882072459104103190510038887512292976927342298934348836565374453623473166170082910654783821794792010302721807011397647418641035402260803230350650638499429604995919291604614078628070533626085708516445674378877634264652691926685861985907422192727127155681210415296147282397361687065443592354213842585281012878458908549259039573197524621865156581218176902253949638642900859767070048609205882223564851199956347914946963295574264348910271916573969196689451756570564314735174545775943711081750662154900548615355567189916837564635636522627601364160286340764394649132657087191679318575699050315246366560484796029624815644253378486211301112362477954961745868476337552143595932500482690401915709543328541109537746211173167050307066965028218136088543410189122022644483868958371476189290970682777001914371067748802888446726336769603250415137104068361061844602889569834635194200675441258969052405439073432994705350337962020357276437203491503656276845361535962916118245532852316906647968595429772531095280321622848428552530312120833782184798526145804048648140387668448570622743931929047937083449171001008550940525320701349981582157874088060465288920438337801243705350822179520021074763992354078025328409688368045451686657095302326813742197315265858366618236554894502085986311929382418794374524992847170889240736900005583394137065264470145006522195854394791278900956482829850837521342377633498899855919373204631228127438887292370160792200794667590527658509188263918481359842952987859055193729395962388735032676374655982622370418911059920898001993834456994691231453411972858741790434377501917912577142691841297491381760850334130979255948716478412100670011042859004698404834453292763118829557901027448926510243380643041525732580740515774057408544417630391748316697261442998134385673756642555547102634394498244046159978555825439075345188416278044700260513077032835039502318600432387809613121584139231161277239059592848914922601192722934549667794784917487949146599203476044504243279048743256524199132807975178512214688133234153324094965285626894798655320866981328222831395032073812819594337870819539669701220031828374466752723347064229194952701110498507216275162674011309794792715143002544056472301131507925782768878559950804938573882065669288874094883683944594398531382569658773430321568598101997543344457159876571095097706674909450503546668713066336592668205361576886889498488013241028098326813372286702190994030013168821487795499662630610564940558642243011685811703372057439272768478021621079817006865011207375433514171036212672812821164024052423905075014980706814982614636056164680849712811273142684279242604988359563265409694475815717157839333136602370683586985092548208974513787486289948892424015344876714523550913573460827585853976320682064183453149411824855875787821937257551579828217452190018538790054884916651858705009223697579246175140451421355129032064453678370512265637918898005610789446008142887894511014326312527099197735167657139156464057128456412304932692034604755769860141533322492367319260996030316395855755331829798220232216315423931901782025521296963423164357325855671223856932735123686891064508876533189576786158933707755323215378515490168246696226447360352254035501776569964320091922840829491438816143627127593815923680840117293133042797008945073895655214189580636580254066208467091997526648636852018779459112245336064549672270537852104951974685224339263600611823715033109354635196667310271026776298072908832299934833802799195818580394904074708864227660980982483714299877912225480748652542215441770939111579067807315127451139933333956722167152787364824701784105133954401751930920211533867530185612050149382907266870482566394819089333898152314474957263192286519487982531644602838037282062966236388896749306414632440079222212750807838712572821676027243995865047947851722649885613516059194674045672914168285777563230068971867706456805312507609528924458917647067419406334349010402374866779047249600705807049393768061690414929447290451542424979660911782862556941644171060129616839638176837627325019130586641864272787914185182917902777617248637574069466989431391903073254162341729450254038261882210323332711998977214400367854441953839098358099320534238148174928213381371456471527383841187636456755616975395930824942607931716507576602751939100552325510633584581490309561861519851456683026231346763075633114402198012704845641944512292952071965377986932508991098756345959566425656398487236080485087927581206832176984705813211766683422643859078109916295532924723929229364371645615557274105207089129843850664468593486303532407141850545362988933779684059071608184485423906121353627015280228759878546118671395504961995957210817175961741731542957262081458632428433453416684587870077488798262042741222324749581932665470606778893179922676645688244609795475891049095477581385783464338414339990822747713142398708495869394863182171101756486429397468156944080910286013317817884516483030883320352811219640062831116313304693961842905430683560264573009824674381579483507763214767019800964857913124842647825936910459694337794461741164098309222800214879510425271634525774813804741967414633308850752755493544616993628561197908564715821219109380614513448781517314220685608565191390630775314464482369052316770028728533742858232091730211740614190457166375544618247100566895176860122143118624115063988650793132365313413180649746099844810341868460804877888386199814476264380156299464246932975182558160272585049620707679405298774217427004275551293453790104732410706402311570359249162826288876948253477620825117220875358138262418122645526123445714804042055979768239285847819623859471020553759059236840578427506666027353518837347678179028625401727925465858035803908240081847455230589698318284775002127559939109281855181706913327364017598646506861634889775821516593190574938634140610738713963516153145032913598725435032555417564125391992875662609084755437179976724600765457203558349592239059017999825214299554742471682562638564831069756546316280453392751471990449664290491267829546996846522422711227772284159585156491103863936614373760931076552842305228466297624638861884359566135300183525214482926210251201701153823784561998670608430263867315572898788887367451026190373109593636863957646218204015722378060239339543375805045437946221085837597389100637295108831990755723718996275144098655099385746804165647395193225874461548387979425247951287203815019773812088444690240203238938820950971174197601694303918974211242719505357618486945045245128193283915796964968004432931266369910714607596367614262330778614121549108740902772165898003303495504586047928231315060344436166157681527326374368941623475776308015398629700970413679941091266106275334537459800948850399882380099902781156964479333572422108612061071674990172375875605745382210655742510463185621416180914818742220832606350689789639682278149065237692293190172879873068528709038011010416005955911029147908261089603112712854446403827287849161761943697675403734152693459437152964093060202598194847942806278738841416097040263516468691006126425167101890454595526596304287731118931981604520959280718381375063016402180304679244134288955346048249557950115342838703811795830084739167524595872645439688014213763859829451160151263494240029050337812296822612116901986983075739102055116060615263896796679834705938077072435250708802051314972454086603858779766254439840815148322484870084342296556802699014658562183293472000717361393871556314404529835386987858529977558058200152737902149914544453160463816423261753321196057745653694999008684940844076206329233924656513817127348316197239385753925248178813101236968292587549105693842013428247374080622962550587160729564024254880226308358834040718711674760918142093559541810204985897144247742270957485029799543092699745670300109888025660018903545737717710988136873511347165847907241781473689142259029661133626750942775529828152641471399925568506029846213847935241801086724127949621116171879706294433931289317033033770812087711436023465398103642153052762679001785467322964598387910124401761831982754298898855906522859408510915061598365748681700263495239172796245992064398859423584055789717101461965942284820577980268226015559161808693225484080830811284640675884233258589846040764119112067332039368971636460514069606314048568354090815562004742226100909002703026550217723889372088213145963527105122435720470110322915745460546102884267909734917359005719242265636958473905095373083133199374704717728639881834702024306236135115110047890118649523465826830173172592748803355073081280986233822046128742730674045825672926547698086346361759285724701650814807073122973635064660784608031569251404819254760764994971795493115310805211616460654559266954210080905031131152946449966822170377498457741917315633300639651747033646200565247619246990684777831083932912564039807926446191956888416330447130858250142907096242307983141925403805215051297043793508054198205698368796480246935602166372529547167018457943148831383936020990156301272391027221405104223688855962236229015448506985302139918312410987883087835722331830627001003958570988216367153685034651580504797503094121156961119625471939439878567256731728807104962153074385270799197366943884774594309563743978918582929409921090392147675819013118351746285864226748504150789769693980143277879925048056293182023415077120529909488007996988442076354759896054897346263545937101594008280519457455819359181683626747614038276978273452254466200201106305788309225431176130088699091905256042412250262822462602769208525943443884070877807316227218673247747299651353910048531799095992723351512112828148675882562292071750413292342045141052137328711902291822189310911961823977614412956676472102651828906167019944438021961977285764631029256849815785416388154052513608384009726492174146617409267616277592062935336768846038152493282634854889308859215279488014109610969687122490320908284937531665579131158689203809858403696897534615799134658547333499948005811883685855331904196039459276914620332880004506031787761923318174067689511149883501088918391730431884158761711538224330791096858637792558670440240396170115252739072254793601595720311208885375050568181763210597804579550569105089851739599523052876038444686845469052715369420531783000846666959347017308495766060495228321249891324151282591360375739728887247770328173104411088788805225819023696245463202386550695915308765640508317709235350343763919894425163655387945722444194766601333792486593611262844843506687950543408121345106134670808983435188649018841337247137022822347274190668492268860178566217924752340495960520140223261055046355880311320882382546867721871956053460037557630378966571165310055138905881023301658064880291092253582122419930640830781994031999705089991045805076591684847084381441844008665155613060094171617262357927788019289922787759304951211227922777297290542254298737126717708920971785349186881439986484641980267810575322074168796473714193324008808917539220023748583497191816607913299518376388754800388905401082539065701552577774184229319716161952025040432485572799057402427396708369185031760349980572377314668117637441878399374873560698250392430357514646102849530440294913606812418716686637303501542373027047119366401740096343573224590465967695477783419633365374958983937245459937621033822050520731408142333472523974739953557474911477693461414329498744163523433365153556280106725309626955352422621029233081543920878728359214190483455823206601239983872932096405731711834617673851521104599059142918381321281950455478964482358878242781312465058166589454299988369257499390946730909162847071853097811832472986800710982160174759083418643357387735887155178977763722945523020294915371987699850075084562445693854554458437954409887056728781530296091522003192463917365534274719070837322601194956844087797248050152849988609190482224601679044050846172573883325165485724628065204900896757956798279068700111990290964252978800082499731962192914212687529219396209870234612615969629574761059186681843108997389491764638698522524267269878468130894857539820345128289215019520502255853144778673022427581760044914048318518301480582177698521221909713643090079654258059983173801584812071611134224337661025821822880168573533709508748055243017650472396114746765608196549715619850538399731734394459810693776161543604181310834197088144600809614771214637079089348337549421633872375848787168553393178991729005661904778222908965636942397781016715615690471676974195281988913607353315127772109381247759272685904011791090703255856864551952462163093255517517724020374277412976991171422206002390702947680398024857486872597415503395275098143266445149091751539897756813847501170418055233175021535072993309840578922257710864655385475761264641590478667714641447593203997605732041116705792792967517144259270979663959512564541743885669351099384789788510086588788466883848260391032043488642237789973135223591195921161784761528902848328610556264479430427929076219985756082403430733505044341018087329553960236672431903138182833332500256678474298312950736355790653005934390090636012883690491885794574618107051011082564412466543796393887559158126392126492341410293977626143550957176000469929613445570860013074871633457633566186647880132910932807505921146690507323953422077759859347029496856086305339283002975803241346173485397250065629472501035305054072613398365577700804151428998000196942900322058385887053808770411628010347903349057143847081989932202752138514492941976705277114818713317449896999103723220835349247168503768594748543325535558171525357093927074381614316684388728647167589779514273338281449887696562723477897381142211217020154662759672910079198194649221855562994397651772088282155110653335648139265407366461359882356675578502279714806291245611970439380820022102285883644288783506404432248718850714941136124668246526831735942988104693835375987425540551375275247658282386230893038645778141193607426710385365131369681952402925187113460292844789178080660584778740379434307362335410860807915607392635300142186909513089439119990529888874798573696846695026480870509870118703392910347344247679377494974874282029412028411008871507859318038590858696605288724707290524195530375992742130982597542150760158305366054348219820420090085831259365297861081592552011964548601531624018196179361379273767363679171299128563506983696389860132906057086754241644524675648338934656047654964904890857192227872368496428861957216295078096364826441548920682381703011789497214751772956582601397453863371074271436784245151801820453169937789002908037866800318003090288872596291958056357239665425093066629096904232130144457747808327742603255618354904261210495573679977962480067988538520609554062575866788528913514221987679387390699257710748724166301448351377177649653105718316666283636165643360367997867133059941894618193193651034674405565723274156669220857028861217952256032284202244279573651867293075372389984846663263234172392643995348012157673190705176688169946975538022148704215482610190613033929594037698663522452500973851297737144449918302972529556062406864507717210791427932615509740208280207710574701807609566602333378978571598183651291555101645853930514491140822857377891409157012857067814746030860210458305906047914834687817063236757549634947619646135075192098812073710364087787233845130344762957069945765366442120114950872503065033437433232710281517384755229110814503179969138325902065801191789592643549589493657898980151425522943409421711791195160163441445591020837328803553315164856453646053827582716218300641820984679715656512506470027088189460746437333996914355189930096708552358585246971158839477618320815098003189614061848730205022181154055495392108508540678948410548565939528840550616143463906108432314073864435088794253796026594211784591850773332120118801198397583376604634683385976037406395286856694905189903201313020090939765070125755253479751267489747218647910125178474179798713629338320624604489086066035121151494236722407604564501174697460794113370181787528882446264701994410632692105521119601944431277496285667464389384229226820900862613758563001745137336997990638720792746872132414301422327844492622371420795902133330930905143113095653826747204960357813543005722118328147682451712934833782973771625992426627785286445647075986510181598566393634142753968983444918339777318803377084107123587336593754159701510488013192656495682452852836944319118819364518569896681645793004217245218351550800623368638010628613656230790617497385049850075720303853317466035085276050220453033235544573439054362330859132157029908298044110273632031848930431217652317836729864982920164154817871351900911758220930731193528302158193419442384609695474085672365830447955992517130543255931894048308571189568515788292063455446914941291357520642153785147361431225622639587550608502278943685439756797978243059047412549243446375464166703499579534736073086010449911819774783800762615177133170957435109902897556841319937172378067227458779657493415929786935604830154688295408792586992199138103881914358202712481672096986375989660111023344777413291358034646234440850471630497266256788466601897049189571799211931665455673704982481372191087617898460709334251479833406517639049308322827034585986752159738298033786175755682823930426333345313337995684479088627922225678169826553721407493070932805300014371880990712053146844016776216754794580402679448830591329537319765833965344497569590968007903177397403998234773787016477025974229410704202455912815518620220264630128068670606656327223835927911036067441624679762715778938190536236155661091611237787523182824842896610208308706344159155299115658293142055349906482856128751160658647026512127363614218823749424358032284984963849444650030240352638659112621417265308526821599794420000228601893351097936512614879806877943246808491222082569266661675468107965744214852027162495138584396382899857742945129365029719103784280894011859123471957096078515150995003363537010875502910937695152914690676656965968859439416696664384202976807809238096173557017310265777622375851044295335770334970242269210436726727842008354951627615366260527112573440692515933722656331142114128259784686989782678070932681107191699671384914370043557052452587753705499536930203119818482620770680222839800830410712225232271802123047216144554070304000569638305184630779678253277859550020024567865540594989824952313397152488416649023793387996662423757443818612750311526651182148012036484638890141980237957887557204374206378761450871561469660966018319106611327131131775803898325132448847010716432665283557050923842660686920181743619701081740631902549047271574059273631697396795360276320269621828916951819676211190560513055047739456237696081245596148297322582568639385647142779647419252824207628359131815580634418948411694312439752042380574988781286735297647652318894248090069950338007973389643744524704145332805281610120706731710049698379891583489689591029866351076514296534010771207449135356781294141559775093883723218461550226004980850111382086452843986421244255567999563152360559545204029533580091208837709369275679691126599022738601311016615256033564154850232370209020859820897449116690174036281378427902086212865226985779937845418845283300295091821408073399060352707627579414012459327336103193350871380718360093362369490582968148629542762638839339195402760512367519217986851428264719324442923001637492855446170686534652467259197500559938375698029878199197102329739226119602130655876913540570784823394706920843165442701624866499806835252304323180786341764942237500889406554814301558848392004650959789655737486609152028180839418971127368421949261814827432263414881583251333191305690666975246200865778523253761050989212326564811151352710036883164348012111491701135442649731529140229133314145842183872212375530685918768757731069986608290354538924991152411908822632255437844750502562830116765140133790612537636116007797080143981966983665048311945616735167107075141966829247536666783158975435397284648826540819967333717641462784925360643665932242783011415483300619556647300933167571044198767606279875419853974559409153070661802707065850177274575754515852758332359428762446698923046188341423731475338095242114316343169907540555612869716500120874492564150050186055719924889680812096796282055154248141479758764865790652400411113151739626857188385269627907190221337942097678428182286736604474572091924070790912542355876317170537359471114018185092399942898304962863603512169205004940320771084748783407100656625744462501196627395892027185766710279200993629497774520443501287203722776952278047547678658773502319589546211424300871508703801806131899447323125248641778052464768776729205025892769789183573667138920728588718670661498362842905822466903327467762020218522238484820025355825132906644828969488499701134042587011679797028153788812434530341860141679644574074716024096965055074630347497099970134388486603228535182908969789317521106893449215644855133668209626864053919637828791971250173261653570482904176453702640772326953881292327461822010439914255102245175076259790771891503514444929223483261917029475849194287355706082967233457314442623856780666125945978072829873807055991347407421315851325174567002528400247644464187458407771741307418681329223737270547464640684859525028619394623283908680082642699210385608331130171772106777121489127340803724588008133452474061744069803214562224110404320780351445113920642594282629593119491565790152550812470090831550710478766203334924180769814958218349421295036946732383426022517916490991606491358071896457872530063902848362970388287105273435129391351412476777125151247215751561082089288945977793978669854653592587438623712267095889948119415505758389854666992939705128954764212828593154868354870137185120118233670719189549288462538496667695968432456142129687465737438341689054507851883290253049710587010531338758086092348747730355520799136698222472161986956548131746744116609385779872233759916420254203973662321727855981328552879244021069705054474888461841906024500623871515565832489038327728348166744144590708660414834894766948285926229868409743738072993476987976531021373683961216969911619918498564181246703073000070456291575968893269194839221104653584486060677578320252329496842504246696224317520347771098691249577063197453135589000356010366568460211179131732902545448932672095646006306198154641568306562577795026925825571833204020430966061770082357521096911075536149283225544403097525105933295151641679260551078088421501766106308177812573797272509530727589591213453226370219460194267476614282671504894973391981207162495924579235620938210600042440877752856427879035705519718654588691484324288677809106945296171672959522482094666048428405186245588263350227231317067906008289398229795380165687203905650137480126001987352980189410462180069309239493855660884242034688959440661495851471353528061950609489923969737014797418074724548141469896951488045411602113673729672172261257489860262729036928729218190277188727551538674990484833513728266120298444817979908238955359946002027962129814308746342129621783767038063067650247256541677826955953295770820394631743426590117154927903863877017536550843298885487591985029843670839279800560044200722486942144095148621864206678695904703077060903101459258266922366235742651573900256253621454278560141138333446599390137770415599159467294459777873407871219510576851950875100982647142250853388133273616553504229284028603346219004126492193071608454909393290439614809348438738433060675728815135370122770790146656048166801845704043526424855919899561577772052835180223551189644317561799244801541894402557851508964602969404157018066591569716374532041155391952527343847892396236303100031313529266523499987901382582117953126892758726474307619932957882854444937114150899946525595191454208974025114024879303104748850249086606613182030424534848524209908217400332530653090364538901364419487456497798403288198835958387004579473061631710846214848540271596910811755547256009992703620507189885840815558561790162388343183559663136193701481390257860257577935883219069676739231168072085405236155356830099729361940454134876661786790746596778144724740516224468246361101114841636482758736752273471896470788019417202749265504381394342396516584311563879736030031961423932092250094613115942601577284365229526958001620941659216304443892113695335203653533746396469226771843713949142671660772148493320710282379112819373445359541406752373631785293553597297099376339070243169363417695540001411765507532340172240553510998261292951576314728462463716843909507244310384623316175343173069483074873888200799899533579566871714712350127182746331784464935394496396246231669573677235796187567227044673447501122479130660608486426606673868505670814685566167090575240161880428529620836843009998285362709308213687458385106764088184625202381128221342872971543579241869640314783196068453132341495553070730133039011658554630181407869837906474794684574700079289481087899945350551076875829380047632683339387847138515321360568868063200836049783294378368956897519932532400463979207821083423094230275906389682247018430690747925197638315481640774958254761869501361094252645289279717334091895991304415970636522242991852782117556099810897781189237113464431066395439836921364646998309457529324697560812417658898671253876869540670523180020509734894283226653136638709290650071987936564418093135518390295065544920579175128339030702343304875803682568953496260598820328994772687923204463433585284688778342040448271309984120647742196175471860525275884026238800531595716797616806618539789997635354108689117893927024368491985599041317859382707748632512468548173106529460642647281825251195849236561123681317877896352723940185578156858816309592269415437949360498553116453853142703668353171736082757409636832542892485121645121100887666988949651957892874339333684583118154320771214165016157052354857562025018542812298996279263820480570963209847393478148591394753091812580000418911107940153968972460217619226936550305473326902308397713924974305178880583442790067327481742374368156260336017108126385373164179932843751983135564134102961507331103492495183270940554995888276608257652657496492731384437800243029899600912955132312423832225097420549116216760144366781993875407167654824427612938970324048497595667503776985806440766354846215186480813326436386231766544787686411833685811138117824116908036694612106504977250075710941533057680099851501756888976037845255130390747958218271827409824039241394843290364159046172185931758890982393804467782092750848412580573789008161059281197116711311383620897919961093772504300577575412167840175905997516754248397487088533060432982497613543791317302249621795696067309649019095225556490359635723075784350488190442463951268787800153460094191313905660444265761537579898661419031606151018114517282127589974852685342796591944148430478483151374109059512792344753506274293723375435466312768091723448740254340934930056943984597649438957708028465163666000072704003207422694759076594356720246065427446938037363317907680714898787586807523587316373824964398802991474822076678486627005140656970681649159553304371211803070391473913199805820443259681644555517299017136642991509110458127434003438470126120727821485812230462178650446266207219802969446102357032481879308813324777216088647967667772242142423323185233812880646747107267469464415445370075580862605036459505434787449998465687088065143583029707723840450693975272481527152519926318853235775771943281637732073650642787103048335598071861187990258767608000046491714609606319590948357748987161468435179013339451705802706142522057442777375536439834665969324534097662612932243393482116601339955300990114070307883120700454066488036328045035049405108282617280547459379054770654311011637131120232238232561361177672926742737393342194820405543640899338059307530131729436857189615217488655481474677480639632437938160115211589416285208086009583749128388572521318758432720182680414905986508024180098461063278317571811442097376109907651214418859722883928674748901391170400556720577335119866680061524104143254936948163930559439635677548761836387001381049071857794785375001218600403314142505639808559845243513682657095142986254932927384529914576976035461868933230066550560277112167719082713726930870922221931917272030525169001074725754387959064145762362166892012891895411131116690853248691070943919350712230180872764615378597288286153551189775405314302324692359218376484171520794899373387409331195959443980655940791500991836383640421111593572641376335078442619572615027225221242324768744205000502046436187119270526943181382664950456139434183012412158837420497027300367820970815063916054376742815877747357886542650204302917143499426186045122015766514481962913345909707661395534287927793155183814529576531156957914007631389008986911082921976151311234901614225443494874241311291424211109922277111792210647758857375798744586497465120677868283177970317670564072700564788517752107284553287758615205496029158657275235811556781873877744300910981079344206505054177705731997343880369334716669242089668140394373300548217580893610903425031631287898075750253436059830452769426514988549710134646895029380104921596799161128217834357556745286672911103330977729976797959103912860632060700484026262246089430220382967548366517849187033377663352243469323988301378941755806381989101142438222080523203894137605352446213528143400337818559326105814107412130564587393455550311472017991255885195132164410569850257085789172051123507212048111518007439003547517869670403643828532498258347176560900669448415546230846810869896549419213438722115215365251455666439776661491164217835037538518511364953071893153225155676197379327552192736430337220093603816966371591218553221554878653016454742667906222665403692708379725501152676869922876022794601376349952003121683280599898467383449578006835775301351678769315504769579701341085409380600185705871521716791154420537266785166910719626886446903955411441897736729028290076242463868335806731718923743399511171606451894501745381262162200495544806637784221368797723467361274779276764664594307000378433285732887550718699747600918855242841905241429266062046389235575619277709897702166782251821047861267189067104100758238826290177690401882360602107925866444516803627947293290905966319947979012946737085752234478771914202480785196875912265752179431324238916825131555487641133975196894174129101055608634755883782537732110262549964205298480132741588454385503641371154262626934709215849503231117168028721445722768822468794547766828229288899172095718808102158471417173042518585936195382358558234340742635640692910089275125234158262741020519761165846848127573524607820450463584621633448045024289551079275290307930659388125455552157335429127625117829059981307947528153660158852877612934143860008883069806639497088289627581411072562067518440397752702438990242760695527253416439136845557036650000263835197363598426160718547029531394506219067016037106295149722953152410346113512228254912752655150382851067522217376992833098135508796453878269968933623474102865798619998158479054125868619394964820768950473181593719914264553513948105000994687527242564334946747098676861533518556383069449486993490094354837122980176266473708001115275449098436307274202923450758307453277123749889951748668636906496181578124825591783654144164798244292674172839800622861432455857816565501012698089524355684044803621460497032835165086879740382467161323888441456148421923787056726602068188644749221859134005030103529958276868416575157504268905125610716410207816632874466047520506830842714919041303681793215268159842690428801298272190016643053982727135310697792322297152961501114031346549865480439486146368631136483638679055368112977657050748093694050338486245206154550606129687857137989843342077638863502397057791271308309788781823827495200957649569364517916871555457066475126038735763111606533858556598756739416281373854938603794064005292680224690152572359345672749635908592442534549848288458887132160417938956819947085652242993270999581158639363564198372298736722975668330275005056361861742826855651822787159432400005900349835610209132188480261579436716714830457257999809769903983223012827162808204420180729304476206561054405321213337580082764983481948332824435925948776759728809479632018111888205910505040842116087077867104598083409811071321864229924098811879249811813487536451143792436547363329782698151254578009199882156808568842723738508947068714962079473732246637536503108756100268001854046098471488381186765720604219601738187499412100536189152211136933135177999184916215018955502741069330340546338477153198320880566813792852355742961462865886169108236140784209851726286534215916784326555143711010528432259360545194954640900663850617484979440440154393949643672701394868631819875539826526166871071004277181111328586078978522167617753275049753340293647779811326359828897837160549800187288746771087991303705693427193400377896365476044593224192614847838044327486407394518772643770920691483926091978826307360524355979298005564140089649589285162100918752893504632422120442935978605629517333071428923705846023508058430040785505884561500441782208996891450317412627780852686306959001630048734742261054498396733608282595552914541168432315603190302968840721811476409194191258198913397449635799250146026287014976611391335154077483804381674083024102037992415821970983686851737600799622262861240246579360031258012966199465028785224455825508160830235270796028008841686568647334063933039210327748180747870038771009342465462170580477326130942022209642178940906387417396003669061490931471278642814307919421422853461599738794343413258737085365385568882388552052028947855499843117978921983855375362714857728861839560687948660885213390471996090285274542356753667167838438274504484228587668090386001417335522312770631923481966092153712374133631145684835380763725377617962683475625532602731089885290211359440201976076707448333605625795494758520855740698870383436997117575550619323358397356074785097366443989457183501212325171515067216102868172027191776163262419307523893586817470006591190949855472404510514799356596830504547970178811146795611989124360317202205818715821390498666335583232575941542254025608822115288878678535954413396568906801160739691960203353402623639927471772487167537895758812874130733345227507934404818889385866053267787549602254149097453643367861247621496974285390562783526263203825294902272552499673846247614467554937074499675758149260221433581345745707823346995638990242142997432527437605210489334098037369914615594464654295478387317042755365192156835927960557635098278170946342008844652830337058985272363738393621743140578938647289900638931304110974559507284952021558570086063893806637691706601241258443847590668571558990972762182047084979778120748075888944550342100448756492285329236506160384653719692293565757385155914164270014669757831501127904837918228730012722224898353525138850076887873436908112647127281897630644561828409850314326997454388774455674406189926503403285480484826059177255374737689090350727711605147553860042247437519774297618035799781162725916009121836674534272315520418401374183732425078993006256334265456304661970062641699988041558049042311096125583347235227054326123392911256530321359205589756508956671594681789543026384073719591193992656213429386405087057480128681142665598927407015654493829183613742259165052319564400609837750139258982621238790181779075917156456141063859655035547526796701255969533320683743614886180656609198294713264103852190333337843455833512264635432979876200938240549332964056403343540197700451653313167873013771251784604253210512554167566655416942730811944559060076134616716351760573220273863289630623978357938070594830452527096032066255424513854480335262169054432450460716200975704818827114681800353243850474881975516088481647568636420519480345802975451482047726243241136587721037026209906227442228116842451295377655527986041384324588269836092234782592420745248009568203898972136580165565271070717357435572636441070993599525219635714156533083083382730411005594512534715180223381508983443345685997054658379220448283650354367475356336703125871136498079097568759791669183822191454418860790434382620318083596326834234532662135639253439664958019792248860318010413683458507439563796743127564739233869304270965304280180774937623968718504468690234571368987844735308901978665562321001293503175596636709226529312512414480126989006631021527691259387004345601946327441605929568766749543933565853785153259250320396996306045965950558033091609124020993412065630541792233898736725301001636200242572351293797212900129865544195843283176976393277403467559944052626610688488105010365272460046465677618567909734793550603544379786123093323189922935218971852326306700216254136499690459627017273619038084570225127732090850729066708385668701023009653437361363971915668877090118990017430261409397200436554288279145618157887388736674374181163480391728144689775737326490762821473162974825585984310581058453776618717965562580430356696959012020646202150900063681949249396722140783360620157446279380758901206796024794982830808382171889069661415335029117246777462437980044346945801319546895041280947970499167593029139757837133799647672834571334831253261492844929102303514006808261004138043118639880963658637061556542309242025082403076864609892905464560018180706489858942215632406738671564993183280129392376338170782524587058612712899832835916563203031532190766245653828764113026979210633246151329453307452724959749245585812522255307420142101037059294433243489033255233349091848604631393172167942349995393429286418443028459120696316918844484560758608318636005814452075488200073253449987548109868925009795682329700013344541936515378536417253304604140010869470777572750779000277112614296634804823336107214100857488424843121048765469331043223806173784938859051411292342261328607658682043159877727644254600706449007864333673457091984775200662766021569215808917283913407380844324103212711574483408972058158758087988243640451168051845609087564030095518895907117547132908557075757322342805476480853836846153140692714273929555007638008994824106447159718237072961199370610427571458970662739549163083380214575744528673808694860364662354551786656859057438884519900042482448610035437072338766885065227526093078292347307561720037847573528137414145397283043626680553961040288412016352732445669884363114752372183379720587163019832584900478343673966562575285148439825730613941873772036487997469203782202245988543422960441388119148739391891271784652842757393236146568063493392028071833401383968114884540111164500355232179386597627672880736714110448071195676999856218186690831410205222082410110957866978418482695149629179965997782321293754825842916975890662667345613072271021459002655263808346271573748891622476957131714115844920334037752218076163453818174283100938285977688696486625781337066965537675625055701680199806528070662923824746202275847047597436045125785482703134296706181681797895542586732391327216146945462154463495969250135801394423046443416271759250647169439728780055987877240613500823182467849946725708814887552954952003843810485312061117317671870502810145971803029895472173532873991332933753096137271362315227110955597427975566464190276413907184739136657661965257447500625294620559994242428716971725842204887355813148117798608701535079955486882089904851205968602562144762128851384061309595920175193130931323555309372474871515658791677057499026913861030399714810964645557938236671517357241501708379480936403955592931585909921895029308601280335542371208191358265442886646114311244784050997797907508144143381405087519313573426592140889151126037446260714229156494090201497511578866264776459424600398928914435579975783429077158479426809106873260147020229991623659778663463712137968667277105516670611158291384235069210254962791929084770428628613149484283087154054260213620684436260666076189601798275503743650152818310078720520766843518857007620728321637461636768205063569672871111872214773348063812346591031185352080448499339409091086189804215213242089501615446140706630028796382892545151043509820803561641568383814045078476167202827973243740245004528490073753292705256669740823364435109628426788596837756826468823779509490614834763335526136261889677822756111166874618935624376439300383572745640113020178390570750509954906982213201660530600777546897011605469066635725510859324720918230762812316848281253411382347471454503422347168515202695179479405829325392575636587697940415398080550533520546715842557878306308576873747452307404830802961667875694934161837607093480066217060617484522483980541591192691863581215762226135739896793326036678170509340190097543093647927424063361950864974353101014048886296002555092240268578692728153723362454166256710200327588975445716107376286610579600201265609746086454030239180472827066582855553037749568445557747921826673840322757171431378914146793895309988603698649718961469829006067199094184508291462595330733009874417692607743802870909170969130693540714407635580330518209449577538104393836782545472475401810312587829314728810565008510558496675644071533046418441911046780712536193078106318830633112405768102743388852453272356369800309795781657777980089520828863664419858720039844060528566008704800196890759559479422161789804151901312168311215224667545082129826844361564542957828225082007496759849114042122260151083848363593300029253338734991002403641350498623316972028082720336894222879297963733933228043205079700195171979581598492974799868302782218054867027758910506012549903337253567849088302036595956343043229616053093915583506527309654467257901342150676085490546318949382286539625718027213892546362682301315708411921326684164648081547943106624277656786109040962151796894669734086940620012854111505779836746151077420647391848402182025088089048927774238726961986282531285124337281988737581104911367117078988168994456739687315594067142969729883130352478337984900299094135569103534626366701187092948396863646571085032572121173051814316045823491557217680132583919989558259994865098321634987120499303480787392196487028510139073203881839763659814540259140608340463616655728055938975636139175715909471320866157740739679256480950079259010242856784342631412768343859845619507733056950517730879797039620779850320736141474193760966398753421188775608371899365060193782121765061534897489807252719921229755865641067973878444846506015463379350648783697234527047126423679805417712788698274483323646966657157900291548292743116297808794145860166986394296810926621153353136263276925291912041952877233110130417857926943923111385199897796649090989920096958001769154596185098457656134548854310213736872427383335638254452827497574924266236855509225074114300404972767267642872789841783921469804818561690764784576946634295521973648347732520281097099786309386031452498983928843541750427706542383237207089599768573763145651252490403104026220697232849127002770270516020940268744339538539439288973120320602647528394991826179797981514778688062402136145509139720747501986442965117261359906939234559077420153574516603626823396349896294955299445363833293094407371431990441486907878796577967575889188959481759954675263640821442023398608497556107276374487058286354129931680476307563208615604040455975621536864047971678516318477342500653255210264917975629859882622764361897143419319710684282217768286385910796573299563062026433367269435702886705163542035109588004922795262077586328463430531244244816387284237841261762375243877113512388700132739899080909281034435421737975621263954193259157314420338983768533448291265062925048094751105087895015910787400743888720187331627100515569405736418646505103436919738959608661362706535405001796208153911186237995416188587233233302488833188262487554206020820782173699615659716861146768138766941868973752021555242060859563588214217116878406864941700740422112521410848621727535677830272418175769807726943133961490801981769784346075943039666669577303437317197099662332769721065075629309292590023735800438062284044193404937425735691058766882894088471208212372681530002784117634616531995650984435716557323831481653165644524403849643341959099001230943388183698962182105838691915604823780682226371059165451667370147509805698378370981920380608823164914152764167127700000366827023920516847544538858561452778048037667226452944425097428727043035742349874559425932066482082975160699928037541909217259120436143892832355559519148770814405256250885691126023792922974315823716729852778865656459725214407935529353634193597699934695164964519887134031234199078484166814094101993959911379394573478511454990217344577264458727642716442034800206540052920399068915186142748425331295485514448286476637960620478253865007216303333877276059457993906669123751354029645327739494600868103446445934356965298386493445096448085509987543122778638491981792338780021992008452039576996699739746618528423526402341046363249967120463016257187077838988288473652246907550079360332160722534498608391820018421076890982599466892109765592969662874461135777712006201081816418986983990484097108902257969754587952841272508716266139648856126242487318852857011987055317231160530156403953658712368750424294155842445358593033954406246717913343611983100810541792450202656340710790381893675495162718714694841462082420344355116258293104888173657150260009176571201246069795256765121114391703629211539286042048087305157124059863523752692247779609345633272720059243525195021804239613847349125105213924542013339911571944100777561041604228108424844673701630574636447218526185651551423045816284802274672365046173623813312247293863278022422984799255440709541033128013925442671682375441776371220226068823785628041536160350096826491828298661866330780678976732982216633775006092178257423098256182871546285262017222109769150468618992856978298201868058867441952200886001159459694650966077321784930259272784805709028412128387654465560235326341505482694428144205836606546053482302577681189538232635816258666346442659375794806124146937922769092356502069881921856086032342038345471382802222650062726310904866539400498386795494078414144185524275294637293547017817408951387784489087159721295347437595489913209144066405450235422758927091850095165992709733372612436793075969856638580938315309637917169429079672363924179926030632043116608084234889049404604286171165545515269536918581724302926128644378150562911134807102255946049947538956764142575763582429696596268459662625819908193659968344504715784317139091891148406006086108159338500938153594186106030852472541184910545096997224660407237174764572154764882840031320143430137226163328378721954991569287870335900769615245806762328137841069428229448438781305677332330633019659537700895494160953324245563585330990354774407939277037000059150015157345049308078402628170604735024849234054743027470948716158109025296416623132226011002287327847881116153659661170287606670313176260982371319129358640615083074741499358583742596987600315685351717681995909628636468862030379790350511282689307728680271840825686378778967507764308148137063536392968912439522563983559246606396311784141630098453564579606123062850601493785050167992619490345507446976654331704949439999797234128089111647053048053637004763565331898563620485712983242548664135354306079311536624325469729044448767469960214151961934665421721517735330840651591907766172765993411932215680569856731305844077354869881781558255687721931585525549908054220607692775722908700925196565555665223551430750700818388975393465972032998609480196705393965988013653494359518253960379685828933779019813995165024404327142622258500720495940068995286040922775698582310009556904030946550332452389659950898113066374344326473599018215593912164322913230193696847222383990069430137265365839074860175430718451363307723521200278535737224645707933179105470550378627264533802151933352593497594179731133112628746155269007866748681916946374203462923594719140325820767221756083558504093210585926427330936848229908355848242448084178708530811083282838667884406958038296138948972268812889623544219841248070018445820093995266003039809825095463133480482205499828249961950854163707239593388693581334353238516783403739548223502659408191369507835173522683058893076404307396903939962155353899730745785726686321924128543063072790808203792170945280702606581761715780412126975610836861352357301928327861719043371863275348906013117891206339911418151611533572768596224187428459939518614524784937436151621176103597444345502189049717727301071584860986445625995425815002372977811800234637925928197881719253582396397724616524619750007235403611295586057514925914721585534758800748528824366619222494376094322534840817803705815437913696483939224097004850950872768946480681407218731860215231299140094967596171671579983186089158915514763532774990174335682214111108208575366810721673620220410315033510498374522476802302527450921068270541537871731895907285841172753127987251425672038769653739945853918557104293735459295208737129107665217760771572765221412675872202698298288210350777449079799271584048909370651358441443157005081647026018219007736282734347530900114884586243067238773638899785127043966438105088544018026876486545755705992589066931790353190633265410956116153032518793420226551371402711179565080323184295930080313301790079038973061825051561260252640397946682514676943171443900975004884752461314145548504255416768031252184934318502678793703001709114536616026372716527114246333865416719774572337876744542730253589391484053701882573078808694885486589889692789994307846804558774605989028744960964168027250722058317185175729311939277630867597646121110068135069367140041034981498139023726447699184735556939279168422176418829872266971326095851146113788263695834545396319789664900542533422682617105014875948192357092086573606467778382273420710631147030800048765470772689224842628804782136647913931208505795957264843411224137942570788717220633098535054738120914514590428250365389736246727626715699053724789037105493725229886291259379256071968342526107906560114330107853976725892187586025809772023929675203047880282695864519785169360683556939757763208181840794593015908488125617663469363450328980251974098890743619099043918441884980024902500628975971973461000014788838700654481958446793771156950597067427443878699893606637780163050998904762056336172631955610630099782503328581880408108181854583150473478415083743401962190718438598787260755647623360815943751334366827868581427549004046729378126836046088001344731644050508163695115015007139814097518187074989173576203643559222630753639095666716153363577680902590865805093000501293273080239873055696869017094383840072112277850709247262454997256559649298984820763653581988859930860843653217040779232725718460742893415960108873385437684650005978683554641259367549449258287804812628229143086002940098089754510422810120647100887759318522936065212521519497045992001530647710442300408514094699124469971575681771397749967741411505339879854602361175603271879778537217969262001796568655617663832074800013978335025097585220731421248582799943998637816522861218276878865367748327972624911938169429020247590980302392651545876708281468721580074529905247079987547214118713657868923989195667153129104607205320220364440000995859882031751130978174544110771220050785142863717273124826602551715715135763081283326198446130858127559127430790406207537161613798144579003878462098818019528548349560244444658333639078588673650850921844089486743826132161486059835136949918577146624318933394906040654138573589947537145184258753287782114350428685265587938136943889767872383972281192851137603465363379365900792321014571662400178363085868430018364474128386795488061740706703474127224814030430073947516016280620118307967285188451856422452670641584922407230604407202083467027010492901026824406735464010241432680561009222497030865962318249927688845309882649239064498701507774680135132909313312290613339692991704688166181866062016583210226787721539063101465276343689902669286627315431247023705940630425315401860701630461222562653432815342945247399256401685056712938838808064004970957946343347475782478398481724578838527131362260481271635052416701132016195325807111844649280493544100865838063424597044517633810486410570134944542770487796505498306746438175281166997013139195262172569117827866268649950419463126216599938125197103377532094179004546713641023439760985276295532369897359082675384497593206349564816344351503610208360768366390659208523724193756790222520540156201473780018124419003075613974990404726226665745774854890270887179390347309668820982699872458133818908634058287925984121068325905812346359980224362411592236672874944714771115810136912005071303584506977896350881128595675244877029900843291988889903419934755622143691453734014367725689680049875278500272903948138802383787675555825174765566311104272315708268113556219773431603604117658461436885776848798829566477605904541281941028368400596472023152533620114116295156936511280844237417175237297580380766703380737595797086620532467485522940405056861084998510675913686121950602706463683720437834208389715244671024554339123526695522245317690901182113911276077175489826724412804397449569265234320363832102287448645887173947407383218766735533145557978489493405765037159829094788003637817696589605586945894536399880453129184676350116217464856818343488523358433859752817778976251897319010877420245123022355750294159904316662855715481426774028065378981935161963005499843710647823783262190259135371887438988119015206036339132295291661893432428511779447554169121442684703012422559840472830474330450512423031136722239947446696364429409735246012984106756498009469757010377264791095989812081322287115731151877192009115866956354163062866092616895440499111994123135250787971147906153902980910190098608423864743268002292052656848799606311658343129618775547984156980993881708455604064664805297199084088631282429474823950722916894791732199947633415832957483711989325584843777120491899999277623541890995353605987476501920519819755419546322769584035491284364408890562810605208603163217915062660499991155712278958435484840948206331292924495139392389461586420394502908550234958488800727662859639063597597969097055969968079678453433873743857020539687633759909822496885671938318280782746831477885452347450880917527441925059402409533522722374051373371390935169587842271349302135226914103515403745029373301757333040122987289693547302264699028241390737699204773801313652311150774203287050650842905380199362093200451591762263326322529652840952637184567053251266899500278043775708287985574547938164477046582295517429932506977772469813818384447718424187738778139533073374806479486030455173069824883457895159603340759264855229241578843094519907628180558205751455621836462873518453914218883167986283271791668680177901899374519369530556190633988986351910990243194293222066002609620430066811828209637625342548937244950840353057130127359907893538516025413896728028112152696096804944772414026902470372240581285358429844444351230084852521352519519500436053510522352992631318011658825189688855105215411268750070852542347688440421308177451860179214897333339993901020938889999688860353444321101666365425878786552787559436745532591545383255601922504403213146497101081718589227208131807884241616111121596089261598223937835311847359163679599692516290201169170602957326559682426257320782395756870135767960184989051500509407989934435619944658153786472088134750794335437653209685689767871092275087026650247071292277546056172790876176758630041282711881867872189893102265703451219028211183119666931461507685857542244421475240813311095194426035719925535792663284618514692226934656326356440865699244780590591991952452514765341044221366166390329126111956398001744193256115003803605854970642074154830712910214504564809331394624648754142142792536449736584338977625385879186155663843693660278269790768253424807553021557268712293008459674057683846616285597875152603796081788837013882108590236535909626090935251135304699480575526375451074399984973981620405595327301788452484807313981645822112481484050468204918211762733854602987189614917911773529472230668221009453468539277062797108911030209601390246297017910584724584153598106661286798388363958824274052948963750181997973753586684377444331390352897610842215462119487508160821362973718756720778920255955215275071335026995710367446986204077837791271293318218122563751314855943951158816435297762615078063165995835376944224991719316103850873872217305698445914767802266848236063084653672677589953876073414886200399961937085647764938442190726719730759944526344447033793074776919376679895035734302925228255090531705454542787661384587409918313795880659578681959446464527318052394450991416096476097627141845912484756882486412066774363945291440823463544757982365049700698588784224894763678152350457375565536640858384495166055681372437107112862488487748709971686978433734474794985773514210268814830504769230235362241964708190319186662275047424484680926861562883570509234747572586921393151462846530968685702933373534187117788601746143498667918691612324212303551972164314785541330073403648998980601782254275342366035782752761968317045905066261470879729853644666867934018518086625259137267425270560125272961160662011180688560368471423772016719464271030653951378264445635125882675334256628923462216119350148633712706775837134435063745718224063092777372091601914548325403039660569375747036782609420481302266423206660946791583051752259820821913043782389084609194324824987007197983390224471747171696408334265079719159299852883210775211530321268165865112517003080808235057328050651744921373517876439053637042939617440173897734133840865022060574695112604437272699721123801802521379206594225086359980716866548317990249380991531770682829522824874717335684123158399156347399338981161129214661548384152980523657472130098054824992847826595033489197234803495274307324707792387033366293193832785575925155050895669958643974598749991798547936637782752754417053309827453917874439044986806948325944594044879128420578458839282385644115601952649577709720515743178302635731850118087370227800700079542796055572325719118597418896460773324540906539049566283584135149736020519246168801732261784061179197662669680207557615976176878233846919763423421314116473204687950710318023767426584425062864519363272061286664003181577787957894292244386699970356541368902001911490938179049674363684714132664668055115209882093506234019394417222703236520889695778788661721260481804589536361347018093401075402995102663727643304061131326198046757659326130008193015793750605932167641988381210011326484277317656080657949138857461196743393245271465487138110124415701691728862257596728712478848229787198832390089816349595196591301238310753637777290350855296941101163861810314466230168793844942104709045441418190035035248982521545946459054367922522690742869626096766738872828398409394334500501401714688584009934454060294805525240723336983258873862651400449204458620202003134080471319647083639367391821460870553892688358944605777559471010941151707889773450946756826022635597068758217967180328771315289347954800583638335394375105473152392275468164226147480454628014998855988938769750302552187947017813197633554916696643913001895358199247192550694222577999011143022211876457994431531135065944639187674677850114691434384561809152605532447471398182625000519322369846997212612325624418956009542533256788471753515863896595960441616544430126625904010932096764023428605878551556841069168658465743429786662337399461186120210525611955040455174479866718994488970391625418133532123718095440131658093729106269004212521965294922147777362811006260567575284372180845558558557701566854813501679100712217015282249131741108167022690423129339779736707794454775557560024897365903191143009670531073455676045842857127608835208167298109741565914653920021335331477449144658393338073205810703885778215276766048568327132535425387588397659611407628251690163212167842896973776934186159475264574410015855341275976360271757663075478720246182572484377822393257071115040167465883728290374535087270471612213352061223020429530437734739451724688988591056224117074019928178640844456924004157438253456214873017341964326556181523268701870877314042159570525671683026407884541603173218638744393822015164402099535800527804872992846102579528817930516474703087090441239185559364374895539303317717703830724420318849198040530697727808721876624424855596649049199451517723688234455836580056434312111707718540035786932456415315214448690469816441823707851769963406986634659462489898849428050947289536619843164078840839725386780385510256218200189319818133303107106309519805496853088241297202259379786066199678342712717047147631845871567821448764763530068377220217329311975686446986544138844021272291623843208268564410043342110327796934466717155207439360517853203563384922733971328536589192658240321618833719540987179879940184610034350002576127649651194049532400594082761132514905735691106342283630620838920663427773814965620607080542963738456466123192773766486934129241624125194530186502280845336353465172262122694915064442760409197953445277160168169254829694460621767265825599628234616685659917648992857504701207490032628300854535145042513205714550295142979408840585710709948515344134130666201067721153279836220267475815580624276052026724679352186588263855234127052672492373861386971750503735917697621432084605503220059774213690122937265641600924868134677954959137390675393111755309890645946674598287875833423276540321253059705950176175349027920271024245931256731837524190038778000014171573145410103093564285792525021244546242646013237895107220038648571804448986072835361314064533933691497052784989639016118650384713137388901998258955832019057476683228700056123050487248625727947868898114861163101115476116946423401775408040977015125601923088789085681148009566116900910154396256812813043619655562691581273146806572400581609173403942115584809944521037803565925506615039348103805152730662941719234396333551568471760363111516609737915832139784177447450480756329071260667524764977115140127257644787369095941631545363376432101283317430570794044117014475047466813327192839446485798903386809162645746800978884045177261109563650086842984579576855731532434331943264005519289401477570961241235836060422691819583791409960730941431577192577713120170208029243563524351594020585213786928578101205104558309772318467649440622685816080883943505355370117109372462048685633965849675717794748508126596321168101034310772074949192213346002467940008060650974091069975144281767818003962373534682297637973162740611580899615855423226052940823133487693350774709524524797870742442703866106756958022839822650196486395028620153510664322047191473020105257439858786914368287455111631339017661996972792521603190440276794308421281011011723229837620037538825077489833819082862532407591960790667959556130645259010211837363327059115063162794336255287246471595857425719181668310097553209563340290459032519660426923059547278941642817304710101004405611435010448508529683140684854439359227225670044109923178215599458992714775840616449014419907386796899264748354052596038218842066511178210854178295700877707119988598876430007761629332292594071348886387762224664041749582429529950457952899172732234031085812759085223891009632405917672479641808713733258574563472456745680572831037974433668629775228183407139450300620946951852749628196698457527956196879739932790470179096836480979320165466739195807665187983529853048353348678894663849571951370681376105585733284319103114259118496693970433892276667926012536153487646789381225233984624794758686907790054296872635618858033943325132234742645864290571807147146684729412695309752820127403613714944997308556988246254032587397904681563700338821026031090599249369141867710262510733013192509744905255669351804387389616961034847678743157770338651369390444558975478821270823611226976290017723695189220303636874510662696899325162342387326663366828922294038925324418995558153088105414871660076447782973980992679189453862384511917539873029043607548999745357941328671155718754291340836787087126200049586479870398895017005868641462630883702546164581895323356036405012212335252927690530377077559918044334021222042757353750321246202391193487861868790443121603237157290512918198767155282685483359680795290704159315355491307282363863272071846014328399326247848128012123871877701470752815296365220019905472339137384855848461028645357298020082963411034688221143069508314116453847757559566277578670842640701838664512703306305839502437914667687912169154271779509293294213061965160175052982273248057795763956848404646379843701210158725012893713909417839731521045656428364024104020085284311056966624430981860163040934326751932497574301778095269185699607187355043286925412085049712713089198347470618749215757050895503177727453715077960489040137761706155987722599423865511894373604161859284907183648022304071923944455419585468052845755441040091878509197084084226485914203226073944702931378312867831496772033563886034402841567008357986912806703333130858050750283753889457661736888548715783935955219909141940516995921662696092153283537182597892832155524919299302131640552132210098112606801192881864334181935005921471312662376887325594307798158768477892957495962545825442055050692810543638055401280997173968179534317923796248043350438920527684171980261473098859047792813925962092310255431115884336696089543207403503389641170073074531631711783259438300089705018089471651590698050276645094509375200326754819987175318383512817313870921434277314308286009612619962360294957419198878105160297516976236137335544770253761348701332932357370113374529684432964542295549777408249082864556952485551616916028702393784009275160636941286277655734697635731949976142564248625235097152421127121096914005448720451082210755565907357396151176560052001225588193349297456770035851122538920509251817387959497634096858771704642178986947324423763185992802268360230711711148869207157881277715577979764812610119387113022920648456486487823237544263512608611765385551951364272614378525593861898394517627749769582016627995752778441127357294207876204440624285225784843891518803552719271061185177851988762550638968821829557792172027309631555245112061365628286527297887525561363487798390002329923861815200297748255345929739560671106480805809405439894156547134227004299687591417199451176216863660418133948377192826529977676050014560108641441597565722809627730233812589796024122308712810584011204173445099909699571643691384238272288593026885116474812259588433363936278065018133443268918755085060229103846891573192156316280637858076935629224840511605246835931266361482664679067671570050613988527985893959811415745022142446028218560815107902531131685958437474934247911596950006522969394976479388567068078320498754822412444825595233854062292865761275372415105512159582481195350933575501738831715120396330011906376008863876857983304630405194036463762665770417533232893069386551285651712896157269448051899812785576378197308670212204881598980933246202329188822413701158195911396405492053620630393078835228617414057002001657879215791162113716653664830648270621110050222440938971566356922377229862747982982547035288187157298123895176856896826992538767198622171842099355912079140746380200486298819489868787919756040307528068204007088192180998138302174373715782968030700888060667393466481442854717846576775937160608947082346477395072509898249240563495534712249371465173787342909567340031322734051862632386677138643453464414775635659079260527199201116273545304051893039421657593806920205394714537824938501944058419411949042729718499590604663727079881543407458491255354825864090362875114024965260870581237745654568009905741762543697692294204156266548220531650341723492995863445347769103932867518595800783753994457730133769998513485198354032976052320814398310352835854214395919580411415391106602678432623263062322368529177993212812232596084427569178206098052276453524434240103921026070820605926510881036336677260209416890818968967280041810738895949523647864465811074875099592596669432832870629456227513964797470454618877929679803231177084783978995651603589092740615894137369079940157949126414468484771387757458506164045917546609648251648605406047082744784851110494674500566419764817646941089743570943661606981155102357646675194455508723186157765785994941825945726598634145571074364762571075903962520857926390103851434421204876054225645935065378718003406712743785976108919629334396098982848267634652669717516292872081811737838263282812949204483727230612696534306940197167080267346253360918016730472287781666962213634716166014339705688233995290364698352762504194305907339548299802646870780518214841792666041963600282554889751883373814386069016685980565800646855022193689964085047552931189346610199677325118271519934880530973690230568417824992820111906910672565741765035801552924752829979693408688134121214804517734156495900669653631144265405757683993640206431609908060220413368343766622632094881940436449607088565593065073546450138871817200569222427463135670576242501680777221073449496632371723463450789734103200319259904797031637346371029586010012210553690272239441782283273241588095429416986351875881779005513304871261237339558291588401471496749091320441534936358076256211492251730905425867944757533346124942749739862132491083843749351412753437623724157291986449936009254972344555500080175633043581272624619758664605102350113527273172778762233345989642526881415823293964669208350569910086154833113969999442758970253205620468870716463008688144631192364903751944738303042373119389341042677027023329174155219835282647219792182462254585534869629804489911799684340437473145301413698377272080765942551466941746494308358341522475859677487048586204659762512656182652441000516568004729985771480901209369038897435788451751343054920620675767292165597506699995694220821873681923336264767375354431687644365497557555341054431594165609859355426553788508557254867782139436387600111573828289286108940340228852592490962631225471651699663310359075427831007856541972086810828179009573919473686563362762292346989941168676015405088357472825320367461041953042382655148917746972632620094319133572586383150817366796486783744862558558254181106890670514252263331104288937084993550322486152712741022480916053522225779433395526558710168587999746279118932880314572479934655478595813714894052692320697199096191213059768970926531094278200947902304616469574694404879495684398861351844796917446892914932124616675459120848816210223669278314578761565161421701213966348499498192361927446855328865827551506744024037524824222602180999406261614496206250095881241638870699329568844087140715238080724767408483569023312384777726787956884914375342572766292480923178050963035066771136883361141386141508878528212765775616473896807132512400461107422421259293923196365943121091178216495977555766247536618810436343709102838948648351687145288389055722684798997862255272817519563007911218082852250961324674753719469374288227326872646853833625257620173755402776822333550453884525574082149624989034724824306509657711982756242010988646225698383230366568014191955692422041758185487723084964087856394534560165307457984649010636100375380572988597692824113991370190601791875392147838256285428777658889030980057725465592623053046973376435042419449207113376775340242629178019730426134996997727857047775391578334109133763090309826616208187222322975208829724224176205183352916088673727108183800168880737304579374780692999672887771462810149722340492336904947076469060830297610372342057285463328895010223977166624407291766382052369888654440708345205353280130959614937216296046466051336550116924240317978503659284416028402773846529372779134977451314053594966638421744868887172823834356242347182341170863443222822024358953889240097436247927127952092930899919184497852422365700288444190311392962759877669765979445994847740470263904271520428866530959665346323692204380594548328781279851243958562281344755525070839511014344984586157743224877471482511495038126620611914444840745143579417932692741957023820270171401628631899626180440038181988439838472634436008823892873828396665793231672296378067670990468571985711707660955274440276653436410839881939399596206501336402938331755372633191931724659078995665534993294110376813469241870105292022126154836294567811932135913699079949219800522268200196514616048679848634948816971407425773249710537017745491014146301988414454827138833726461905453701151224367258148429952666753697051100331357344436989204101442667589945417325811996947514489019909710538272455105550688639360484730115993602523920255266102163856479105558338990824745316812876379341369950382103497850021122267938452547631470098098992677274228197941344341928377387186685421383306017984110955633159980332490911968159074309058578902438494807782348967205217390667424305472382921650949293492861240259238921211767948195033370516345338182397596904981951692713337765412036805512656060571549879280620457528381884965775539075653816749139295140568632415914363605668185387273270287516744642933382366393020836650924027871485387282851048968304585972177248101521619813475172898835675575178239696052828657643783074823311855610685959431493894989762507560582607212436914651258352783596337579642456324770473445524655520048094013516462939840347571671798305689018840623977167529061926875077168796561370795130035418170643942264379948203119618259196209895610051033980490986009272763483245313422819835912603728292003577814315175311172931003294409073438272251768285841038379815061346415520037952514589295645096723371284446488923639180308672677045408013462208651929254011344620539327670429055673352083124226921632176755211994548612195043742866780008326624002080333146971173056778173099007541935045251059016450479429430528564685025219388393491331996441474282354030489361380440850694419042459184232217917588499468050039827816297154295602778178317466169407823684083829335494318254735877629700778540885732487294185784170621979848475663675743244357879767225560621149966751204226219981875965991734398947447095153459194310927224650288165079708736628179933816463062359735040857581501280832757628654500944368758462242884743699137610102120583365840774178920640405602872117870854947220822579684286933056157066706443565041866373101087234906849622746237638593090455530011143437438257565532894070154851019661010608686842140549004890295135016970147882874984032137655106951824140298850132810751245992331495079680037711119687693943779572911823040992411810413345776144687032165558862823595939971931514898747833418342725175022253869314485624915532202970105365683290442554137940759219984650930299985985778619667100720209381869765536536883359029225203373333718344174741958405662985455030208900486604393570174635934676213413141948952224093212378132483096373172934132694627644428548746401977503486366683426241412986022694525992773169178735988149914143654244421397383478300911854126271821209518278935202485228622542628145093074111666999791743133845198720097905242952835361085601569464209849285343188956835206948951948237879188716907074893941378332612178196552968666415728720715143182443681747601195785418072399775444377975352101554784857417608825598051202347065453884941078146090159265654482295975395691333934224896995696956576407559025234643998631933461416083798469978535129683667887727765724076456419311641218895629294849981408325588627123815931989744863508512972492210947075789483549497628378311536881844127184327807228602427220122058268726220909033578694067459265134096238193716778318544722757902345221745599595454303350820456411063608210569138030799792404738010254209761703412926004688567676581093938984283272878765182337530045114175366279020264143669257303558650134576516637615991969680349582549895643772645664191055873273457910903437321861470621347295936865643687105611041735950979900976324733576585509085108037608832562277757933532051022366733710843561249488907894512833016427452496399095351014120390106558875288589814806065750434542420648652685865231887206716837979993186099196910129058847021321382193250537242898020387072863752910806065657525306796510361824379380175656931751256482994655846226528031484075894357985152903151600957706743413103629332150112440930649884378367988621469029187526662257397892020834817071189635448228044582098814267141261786907047447431180457134145851071473373077201859877426083088990411718451929024352913683733618455773713879915476357000764732237517425669350419054549159703335485783517487270853240671997489488028978990480490337928258890887176809092686889290826476255980256104132647466516581532096539740602840355953378293758040022532112558841119982502718892840886111691159002529834170200573730194172225834568070560340111029463469367779663054563124519444558773810504113647477713285536826014648272701015413796633780722868475891423632652159073059263324508982721278837510758941173117229950412783794340426142595130217098740390582309709944038613256408727208726649462275157009863137486794249247538572149075827711263670244993794258649503561648190446183379308885064346939441753728054664800894148427972652158329539247059705876114373250460579088838815665919914777335368249211033859189459554953517636347092433833641963871605536154252832997170409790487461758907523653053991797913728823365915296806264926329270544350731004817039158112294757203170157768336371705340969653752085884703872563882230731988001986335673810000435787010377226058605279525580928799626748558728971810128182050481309151863312356719147070822576870277541881139142510395088939304557526182417476427221652355279141804331021313933997117356092221260696310964464222670022854137794653722556683928333163432825580607937390490708323755421739520581879048966107157813865977800414078035138222107419373748320709826803700657897380148922656982430743082607130072875246320611964494410372964770848362876899143236776597379044530637790238812269666353529729435786172203984196366781465416339757202946143164915506298954775524236611549346167148900422613357822631757590144134298552233664010687092741342520341412191099329557274607441684111243132561564147197707401356024793678775218180506589334266262736591872155790600245963210369748529971408052316574799271688351295736762836556327338334202280347287523190230947479892082399133662654922509378174950490308846166445998162047156858040931569486295618069456171048022271575016680050174541524690760845244042427058606114373986281876104176167508299335645538030120343689865419126021941437281917884870742225428562630786390505796320341282406145962200470739031759054876378730106510519995230564724062820465614993820494673927767625643653616570974048452297105498306011866370552273294792636144297938657874853968811856251642321408499925406790462383289882520644081765807308607068185339585523921486967316687294899970953885120363477946396149384501882925991027446185831797580122094310171659250373147652455492754570189951551829987997777323898107269969284493277115066572557855546479554269451859790331877329699465268034189231930566962136292136761849260207929390579495126681246658223566963442702081108844898084997993845652725470394719086640426273541702545456884961299983126000108809159502977008168429020918588726929736155278409922732776385443476935116363928334045150463305912708135249071251128619911403992384108265738237078767950845201843868315446526998815813496397597847155900802280958325646571185479564542282374994429215906137130569917355042579586572710966911090424264634344181980709565345688861348958787733650254868350204751767393531968349267849675259529840592774564984968098384187346571680998928445275609889142999446307128816993147672377398497521681710571743608117151139469035872020466753380452754651056076244262554057553683880416726181269554774889436541113316999278255394372875788735348779775254468494381479957282996740336950888539577690857568482146766204792792755312985735091757480620294209082922096843752221870116086045482523660359282121519606589602960666301439361945769788032001803538213052571765168775625070664526393015764700588234664368781788385100054550504026271845680041269372825488534554077942636319403690543483744937413256061284018458801969507677387209403105416953197850915552933639855097884269302770854277346560886821639744977007403089954239156687047415551331030259365305481051812295086199775343327417800213702481329013022057568438832036446833691327293602037343501296990306357270009880493672895251604292527294831633127170247611815005453600075307909107245146285697147033685377592061033768442242173523196107645644851220864525383237044995184541642132052092803765491718363240710575776386520176132881370022261567929497027148940968164069918870020460368657852379272950816164239085888869932374586815370541185938199359375008133576786355834703105681933053932993321126658084563559168996820668247614657894580746671264016273836328594979385037122434855435066566927292084409682388681112849277797774664038191181990228979789843785424160755394628352706313375205266134502105441478553905453311778238402017455771566982228498996485948929158738266447831363411847554824986473015437428111341434137306770768556984343578849049367351095952918255695720758039813564883957243259946689160454665856111736204827792333922001653211015011124518278776619582659557056941159993324852163338192624256771152703280537560417902308586410922126177822110205012847381693386559054707624268586325765377594663798622469911670931889872112173198158139023411916947918927160955372158145467337112574895864479913348428426192710062562922562487798452497530451342442004855132602014775166782817720760960326669049277898353063261073712687130190807253387922127784450957403950374532407057015582933794158912150809897025468225165766038471894312972173322067455214223318121770069928493750497717146085353980228956187369729652806920536687146422510040226893306773760304718065919863981476598452050302720584817723308583905941133658962914123267727043891992242055001212394632407982414704882602599671176055214601296276898134432905314288699649505493073476767541723289232460507060744076920110313034240775085022579423765604182762549170385540998338418188114675051849813326945688115216895374788434672983955134350884682989925905033643283948882730697680032227777710859748015146329832144013018457603551996843892728352003173268142662285084214987587410654268699136414143573947302913718193279000001608936909817454699835428234938456231904981039135438096929892928770757214655832634268325920032504669165099828054850318759087047139550528647157553467197968115767629475182426066100998876959137976276798481988458324218413129160822557765573504271843640884650279334904060097765207694808175335645175245697483471320657455800920156309235716299694284789997592046426182908542227921856466437151091230356555056959868980734903570694947416080259808345762481368722912479939574640041898736017054962491360567309689343318306461655983204746346137950528707658717224569080655889827411542991193054733197357445343367583283546877544360558804483050652972761991238637550648241264318352790273203313065034189835374367153142066584418036223822574508012451588774267029345110541419926161056320486397840951094413494646360788061627839526545977153399020917828710149066368766189474181247734505798898663277554939557490059272013248071852042971374204475119610692489729103265135779131043224179097974351220290262634353004443220263274276201646635449133626429564733215085514819196745316608820970331663353521554028029256792493279866154248402818686525325197017806027380420823133938753299319698582292623498865695926798219271424662198099450258027772685046510639929217704830325247563812558570568612580515422336090384564299146162412674157642138380921526145403789056029057181743044623501947125065197261916604317798691329954687358712634102027589749537618045171205462016920324778389850353092076611673002151458063962614101606284968214378033436481028140912404914719702367083473096611039799826870409282566326026682216394668428982683939356464024782582469421587873009585303920533222103980264883048941916544874121701601158257733912631178628181121301010341465110046884145619416542411160888785999772971973906718021263169960477363091669890420741533162062621282823317908588559188684228312756610434326249925083797752255555016115913133430224790488657013534289767040573566765889677478172542976436408136922369115148854443847899838837381795437635771896776578798986584813351428119892282438863087173136433950742631820957033240060712434792692061841486204665816055282068379124688552708896432898854344052486060229023802424396670789366177711229614250712380873221471676777743520522060435004860931016478579258147821530701043890490396148962428280692569210196990819379067954101313525273657340697471553119523459038745580503276859683038187988358354439685773264697745021333336290275011320281926461234533044815369441572345025169728580964223357729930249067830759047858971985976834289121124321043044003672033076926184479304465204748285787175530909685341070843773392522266933584632634232672553237073361464349669288525592799880378393929094050280921539242144331498295288495088662236991981720733121639850596540301403051558558851866466367336498479695259660623662180717927145578320462846500538375128252027200434873838127866422710951458483582701479865350907065573548518795406946197184876019792244299529086467663314142498139169649637253320019944587654078861395282683495144305857064656193316939892257505497376882690792872850243100010947484323441735566475055686711596651224405564912439259074252367187078724746777748882053330378432270788363515397327707061369429138684672566925653769775217645814439547918639618189813930670883301228555391805201081082208819614921203771690014068306392410386685070985652451010574983123668485688297885865637455298298637814933760013947882711211218658350766647295182572870174695896160571971242828078559378892985852088330165218288141673516726177604937518541330573405152372613739589221352922634484928117608428365489304413193678350283934505708913567939187783716132229501213934448984789515671644689723489852725755721524418309315253875173351218113468548459984816967351630562957337676190909451105973060155105253139087304058274353272182481579376575418520146970945492750292790569217923108930682653771328078341543987869177043259091477730118060983455926865879090358769571268913995857245559541166323376761391944454454144428520820622613738749377835473150156660722895292036446259298547194557940630547292975871378196641479333766786331715074893336813762982198486451801372804759093260823894550548867914586695294152088382623608208960788641944369423831788094383753134195197640609449411859869822136600147209383083956425050119775482489068139108286027416300835968533455048421328593135206950174166075070558519751701753738132226236289107648824038223657216750393395017358978539066897887317464136434714385484897310457139520232400480153872998545744163830039682698151951914607370531602633703010198713596764406202147767185808317437284738348709800871864248024870516709780423165226942824879460492225017065504538166058102064967428555837267464688806513144600356620339724493568369996711258706982144753549979157305401509400079409117600161887552749687729645707374579995311748296859214891748642450546928242478181621807405896773416239687131858186014344067116380577261023067427330637776658231408735084651866326289880276888869271164382134995858182104710464130167321241047568020057768422695799401357252951145402761733328476436643839772959298615932415686631305194965138570671426316195479366630462521754334402806887689167785726279839864411005366093867974838336427017055882332374620634096200297722838373056227368797644171414095979131766530710716526555875445218690541322593529857048111028652997928448709354873619241944015403663599851915876097057560521639087293774472515083209937613623375563852936336021362437991183200050286521716760666523485430077558187842076214812345274243208615853862240671744802640194170614034959385744125621274159105669052692936894561884578554561035359266680934746669113857416828095020210427279276430812800473307461876906450699498907654836326212547286216899716720604769745795903343217032428354470238590741794613061931218568088806585327326799790848814263231023329501189138595550510257949894666476538235886263907577713120579025426804493399350555062207197318405435269874715207950539904957526275281546025774351801172674943891247098285956082300375687887391356639507851659362764087009122968717951799713810127981867126123013628042928617757518984471524353483041054963299113370272156091543500506192923846269085549316442964045832640407352667308446378292543613812839344525267314219813372685438264034074218119794362475877535672328921929136777898678054747607633736758944407044337820318672116989229296056797464276276257961018357097083752564330725512376705798624038429599270760718099566303598565034926363891366087935711683310195583064526235159368619094103334470473270366645176802169508482241889056914760492673533493700071456893409005570622085676487225673666998796887348657671247229627840691462533815017182455589280991279984586072079315150568984399313566620947184685883458008771880823366672668248007665811763410423224888708570283027177282468286766377410254398574214735822308424627946650236722278838966514558241724900756731451414749090976042356773038652839167550236375123760507380933458336079687560445553725493544514479058270830280591091200620579440429227509580325210831750514690636014112742085704953253996175855623090726602101319274413334458809180370094046113012287099710594743586756811206601505929117853720833055045515450881280621837177028784926258990794677548946777146293737522597154257599528874432336686904075415630516948477540873386421319976019470841274526611190490435644324504906072257930936474578297348950038134082909835653899038832568150942991120137532810937051820505371161662653557116647051833534059073446737330597559082278294727674387115531835827619495978561877410967703076780615517826659640001892428060805880049252363912771896403841083754142874858155559857757322125017964543631630902752381667625822296575589557366192457355519205393723679165742461673501045420595482064032234467097305754791808997041557661686188941218907405128876083712359921093540737908335578534576476186354786909591582136314944400762203746671140566714665442044938117397397206491857739519326897347485853632747760898042310123495809311669888251704889230811372944954640629606984214275593970271585261148699830841645444453963957646889082919648080879818555233131424135450551939278813814493188378645404504920678482224371832107668060154276353301786763946502371900640157993102412104055357488144851633541127573415735716542370248229679713385534601597081564099286161011880702123928702645258137043025092720639149640494407327997874461209964759010157777762204900710696610043512185637874494413827002656265002588183231250837519357232901803253479630166860767438124938141118319956360962171236108401970511506093407020456958110540854241008365286368259016156323434851144296348034246495618513357049476144630909456449975316014159119430424630306067051787086349741076104601529534362979678757431725460202654107904976162676489688145621921490967276257980191549821143568397542937588531642092437133483597049099583785258522443213064761144835589038242648994112736186982072704429295799481182851574460370742627488080977210825561756232711923097216537142679875317718891982700859319985414231371586010032315947703475508736280321396777896553620731854203927380741602814916385580657327174661547886839443966792787251679852441169010479603354228033025487253168065341025258079515759458676807325263679825396638957615101741125432682646774969118459533723114967557421934147484292440922319202223075364996443703834660580942081160348624514131979642484131873625604705952153978071838535907519231216432135723673568493209815381528879482762443369697317830881676005255545172982025436338062344949321729480006862192724368713169461331082121889920538132730657047594070197864319097945761771701423921976104025224913477398573174843831843023766463425922950931467643162248899236011206923917474469190975826925353512089261533125312228651248955264696060147496073645285239981421010261570458034429850951086431876344942673596643280411760292158727938427995843584379645607042640188282463318226974645218655810313442607098570666307819078107391308237554562977448494315022637619399602972852105706557954527485124311535338581582526384815284384822215667263783462664163712442056036614419802280775822788451080326255813118939005608507431985843351461918250446991311038655680757185613183278669137579581705558460566544309763657877774760296026124316454210684788562766231076255339835736783676459865160618805418203028086995287376514684190505534993921133535010181305607488011980749490262904464074162992979805043180141311758511147091107603755645336389562325855038143174641299908522656336055494551378357965904473112815398039133732379714822171380553395962890226015995462462372425927322608640151700015938281379218686982571684069908929428080715189465506969035637130348525522835813076595706133195946188177440542680561367983145767164050139180133783893202463716415405781044814495358546288438498059023267099808820055539345483309026531589385290486229694109615250738467857390045578458533202367524255378820752010577269783741933589219806427635011577048837648347950382933460699683795232857818454414938076180397160021915027548365821341772638464881935775833984168017721194257594851580391128610108180007366748235639723646937323675589123603318592866489556729172307951280747629709859389044005433487831349521868514594047567309920905799032214695929462367644432848678325779502461511611958516859705883061068322633828193544844134299763833629796303655104581308599943176570624506421534812721212983068625593564428179962874257704806635651569902814025436622042023458159212491281015042706347465215089485179332436221864020627211844407883850061548774346935109617620114287284022570928300446630398665222514986216442647650129033279080522559324304883756506713886388154989824859678997837296890814593123073531391739891662903182051202327500009918684646199796863614699857318357382175121960810980650186210728623215064848950396173596481519515280529686777258065194297662628929578921620907612564973248235875017443514301570125584635240438064956879263246787469569221050767487577129108685548007669201078211784117422037615403676606606887559150098152467444462519609627199217915531396759913510915324622722567580663843361199353876883403390484033048169133177408886845891432752060467405044868374594222523034272811444601054245827268713737244039815279363784653108682369851622302545614034216052235746095968868185269742223796293107819300422859726410501653981693752759126858191395522118287757619591386506450652573757504764548924397637369472072112189292356055878125850742992258046706201896612509342987504401280898214694004298908480804817695299467663051055598215831163266233168402067034119641618245165817554457057119394223188617797713383666037753929286857632647741179162738436918091178367352719190468234070946863655339017645142728538617456484980060100234215583326893226888379538532214831316340222208110827283743927213409981277157316136562996966096388500816778184245977443870532481742372308516173709871637353546521162828456178882928228612682627857315584924352979279939274695034657323614779279266160507707886217774779901310936337998680816471352748599585286339981666156083676683249997745341639409979687594030403548717965739033444679765791088345010220739846272021106005488235629968880963543520211669929069521103842150939921473450361115170552476264476462860533277725356347984221578234155696481935204706269160659330854090997024973999958357031276470074649551559937988980542883716333579098937849591592353004032834173104642739708670756626887934882817592146425554322639323977090459302932343663255271001532907421549934674410243132769974257090476432493738142473268411087090941474081289163066918557993904626073605358159526238161604567128855512652280521303365379365940086361277174580504664847487515895972163297214733412126862893944375071415628608407698304059923478318548947537138308114381046121362594913685370549711658315239562348919499133649777522489123536669138483691781068077201118883833227291279517999308954325849777331320019194533776941104521673432776953497018135038221982922580384774577761391614544509499930599064840505297026547132383874441661553414675316472605569324882252308221376190332850943583885771967828381123767920761072995479333914305523179090466942977623781831125157514307096305291519259406182269638541920156474974538181513865512701770946024825582620246878139598786418793813046861050441685946069591449615841053991859578949669396197180318232795856660884229147240539173924109010938934184601710033439225669880768084236292271095579193408586668742027723622199974447361945405699846852088000678635235051692503469134803351110539356850387404968783650567937349464738236549099012851761188022016481862866309770931259336847171198425050597313712101080430881912252785960922879612131008543209218866899758552865093973529470769045061984473158429092622381709105962286923476545893003012561264797960758738643980127851396933601341991415591554897457887724961525507235108998519977760445635853721792255538690020982055468253598681871853519663102708483565852361690255627599092458195057887081062944407934747264544876530988255895113004180169911272245291787519129882422650259734295612564254125972790475883093138075649144812416947152543887391215017092566748734424209869003492194458125273005608183363498820887466102182304046527997114666534897138560072380340753144870654881887508092747132384285993516262542868704161776840973144484979608416314771297702070022249709788256264566138641310651467186642130317450328733802010529318758488159018809679600123897198166425082799506164529605736117153030652052286074400325863482540585650706002819031149134862231364042356933747583688480836512220291055344354216313354033409182079106315332122822202379788993169640590606654708645618428812503255556006843242692634624385232030922690864158696644685991575643035221326078260996091044476433630112396853072706061301970132530115838781971294719076958581357485771384805054879778429571926271464499237910799491894958029179179456198153871121425842936793550302051939257233815949571806300711626392082974018602584852096090681000345011091453902252812628528420527729621315168939485295996601706935786618949452666330489345424011425130427739253148617535464377876146554232631494939352015083844038474137787432897815863350201567455448416386509241744207553066085802360056449949387942602869589002990558334033419251406306196192669862993083903797125535080600739311177916338930745883478054163618582654160641324481873280462507187600261750677867966846069805263197905957742071678680467116786957804534886128043755441240375641989504333495795017948042241221738486558099974165813282259846005347242900100476615314810163557660950040246845683970655725647154277795976607089087010164925508358144397747322784147584625749934234078502201568130176028988633337079369885770621083576966992562602911968817313710337265036844609971171767563914437597364051020342549932211787105558692404173122261253254466672432976093635224699123648993063356216069220689094402954761772850367396600130007709610697100979368341261283892668462568209219906449887047501071051373921777602690313529217433840383194165353824769606930906668284491664099387242445754053216903593164693660075004563507765679843661628817257943734767186673554280334705283084891240080465641285856260009936294677284476600234920292116281544933189641104764071764814020437437596082150949118514407755619349375500671315022024657413457935050087463935323596403467357443168958067075166893487956524678750988136735714854815867368396685947790787523942966049259702489240398271531598564619538989322246484753357422334555703189574650691365588457160586788598228994343949450262152628364041474865432314315792429323945954531148429645493032051303490117561311072163506780047140014723215163075997332392044895462295906485489520332247824202635433189287955778838865236729148187546958743824539055393746142301681878469568394727208759571707035117080108744523134228160255699953025290070707890224424480146222739010079805941142452807502992980064343402573969964880358832951273684997048110422335901911489335635562941606732239015559373615407551758858566608932810032443417764479703682701079630025964922797950865793720765897785982863293742316851921289274985033306231400465648446788047136307709868802777492620823362238322035295976004403123788691220976244528232002686849688074752902496730526745048082017727464965401990732107701662011382371701598662534133595031100556665416089216254189071329042243069596458708038864621896976455385822124058877625295419779507639660760559075301870526827708224996260848854051371252215622889341164537842852397959222227787785471921463979510475754553541052501377915685283984358425486053769424758053503612237477249989946093147372611556597056857713570582797564317645017866923558582798128074342719922141282371150319909978025593702938695694131369590773105387970405488982783380767838804396737651398616529476089830631065837831141544403399799180195813248724165777296404955413211095977379311429103301582304637380880260729620487046686637803215825821179031047828840310367830602077375194049063235813987420250765496127724408030715624854077775790271235033741357452322317947353180323470477237630037732611802031138990732006948183893505879997963255765363968053386596062679133203202763004212977414322704362583422635163153831147780457007414428195770437580019126795869629027799018409443354955629791738752672117257269948877906516669023855709023143725754117748883609038398374163445100299168692693098410809568419598267359929587999787745801231979032919179719791093951875758096562984921379314652258977679407855917604862010208523663837317375860811803309701307392295030903478137963370002218594844520143360846823288211185432600006456470625671371446051298177610306790111119277287862981736870486756750610887109821402836640034145124254685037262134598935848050515852161257316909193761964876680532185336579617423774663253868773841053043961492718090536833304818977198826800845700444589447225289044507282887894610218186277294421986949126590012074058671481000887657761550973770093768055798233131500784578998291422283062942206014623292558871667963153634778951883986292688605498280388251946213223053079571105097701756203752551956364694724839239539547973278403940096629119242884702418514097712784496733721790151132129724524109428469880117250791746501493064515531937749074582724280182510934767245911466821678765961268955812125490762606193830975942133518266369420385812930550266244326017809824945941792705240459513739224778397477565584282381346467001268794644247854241218561757156467717211263809780520267990456725322777671604147962264580788926320213392033523274099646143034452339469653162777098771431785942314630639427434343041673025778876223454348829642038050073549143893071511672986049203352310363917670313002003691584363535463317522103578618437745948855526210037427667381949020178286215625887909886508242212579249637341025726551084414651697774908825488169123262134284077648543882603513337716028570192241610806704661585728086945452978522295968819379090774431173473238628706205114523442819063729219917426570687058502544933575828163108050771158872766302534166535603494341382139526012610042034533331036940216788520561304784293076123519773250318274101389844164496502849161946852327059349829451137684841254978183112173184379223610174032015303200056976724140814256100625223604731017469527791233026446869748864084249746106707016239221469891455379995303588224655218404221509185851128175745328779832343674154976026644001967008822931009843958166128625848072702802140354769617886854477182284816730525395827481830218455945155214580798977803498161743554570421372601798277174122818825925084781528626985004362714198519189667206454621192220890672237071325985867643557064832166822060618234044942592251767336392345272841636749309404931102472956909328159175699697049185858744297038866682826863650430540091400918552819093261683921370965008524678177861180598377660180582656353299642829769568833031889429558967794203178978825913702444015563329146189372288968059522275884476438366112719096167175039211727580590496564065785039587415487166907697554396756220307787741178845224158000778241974783596953316479213630701995172192385087600868346582984524224792438556166272460813168070879401497959668987176686463374752474638065929688717733313544358127805626371891882443878519466236922106087345033651665536207327468991950514413740260402800411348256158761635829130178722187270158993502737490424731205042889147464279154839334614998673639325822843932584062316352449415293820899904019030117752603875201251388600807143926114998264007149616330523676789722982489698282425989807114018210305074846564463354878957447705382249314268225067060404573727874150449695246552506705419795096520554351726437597316162206719387098488517599126271464506131545587323216086221802368997525750189024872523628614657585892555237958510459659968585966439515903048093072624612906327146627489252600224624360113732443033917866114675411809612678028529981563603008549591362295464086772157762725075168993419525992376492726090432382058256340085653501386916835674822072622708676937517748236899864841906303735947066615631752437900968698923031683650773515765955172101354816875060844811336293120124225913819559851243696399341285192716831311048629476666155696976811525756159088743563700395389576454079446809352237638231018336479840019655960196128960478048355078595333351724350769290367990731577271066610809633255472129493236097975222514633825212754395867677026057988642814134812408595968394632007621582387035316309051731645175395680152175625576795514491132700017440328820091954041400649558299300975031517540436593986832034312870332297436948358852168814234538606175605408873537844405803306722457200102882345626344068744319686278849127259877410676679249299854914983638253333996593691190817227466102801518724886659000120381680102875120022421324583623122585292577705771279968425312665086352272775695340196814132988859935288949399621263467579498651869920985198426011264680410971870231398157162437782832327055160377308677764192388203688731956184254499602039197985071779899328595305146995329568270298232388912576397894695641317106071288010466141757225494918576551855164133410135884239499978787874124926683853201777919553180298507869398581392851566757383828820269928215241044672698914522899555004868202193666112128561213978392178820566155905957561651073582849627184580195006035793621638663327393821701863161761186807057637409695970189597655930033523827189609155143918194098948890697195556345907680443059481000398789436795509306483278003634844232876661036310070262644154865431308608257882451599182907975376073284169864059605755368981283418801510183964745315137565634826629023926119607588349173187730796159302827846754778369546240248715130230091569730312618483429539434943611574107025527531580203412354819700191631879161939054498330916806364189521406075857799479666392310038740533233010273798885302162405926824058966133809657317916509458527094033223387968276900805684906547241547183978750061144379444026454273749760305052123579536564303196292156335307426458888854949097762394522723669514527247029311067617788220933315073410065040121482633366433904114987798743219789574402930327514276976198306128831473843077306648281503502305396911781597744114973115647303868681587478588102680157548876176981991052515869884908441777720802134318523278915465146410552939886674948150270795115125652590612646350765122438849552035109044229448453050669446962977131315141457120804453189701637762266972970397171257552819782005922304896002746418218120287452954170918984468208609774903465985606448535154657589528744374020821174853742571253607974531967649553370283307824484839451536334595856160296708215698173743783346306411771952838528508622952805440709658740813290775328278595147381158563734666240353310399834046926306091869092422232492998393597482810608918768345171517158672725221755408387370245951251138999123423782378688298442261170959719430225418108752566945515585675918546977905705718062522551447019735653604601025707389108028485126639769628445692887866451427030198978614418964600647908119426164316873559712472170326911608759285633451133032138970742466441137868885683986802761489267698001346215220046567882081123666936939285825788995554575567013823933392323268719721648211548476180488699306987977975319144022570457367306270698091715542059891506260822734493927790592937256759950870783393008445316153879582666465051244190114723921567865613871645600736048162604982825332730062770510262943542980754106710869845651206405382557166150534720310658328469312887174883750943905200383168611399161078529848942059243465373100041754377299584041784904160919475965246558069042769818054618589298207334967012702026377633622193191577407270550137004993160250130552496628214879405965223153929267113570599357113032325751688837011004991874150530488100255088144447254917225158204903458417219163717336138637544565560573506018295289550040922293642551656827396893798403416228712906511301053036778006050703307572070256092154350312464756624345995898499427787103295126696320189750074262916531477595823146303009562207796611402107763692366275521082426526057425237523081780181641731007443299640740785016339288002560819399446622789074811472172433797772988468642489465072623164615982531345972825303536537298433195711501430571724841126009328541716156186898132343931836468693044719900149854737256188635700005204172246665945877741690996382131169665716043029566588211740352183330463604297402756485203717730321228013062387778408277051922263570937682184094035300705194427784933231865328924277794949758453384346379645126865660009537077406214965827418268274768171372699815816425518134539084528522226845176551678701252733270372515943782562826306782045231263099358733042636486698353959429226677314476418286841863612861733501728907850372802731442939509681946464774474062245955622400673291361599781288275102772439731944202053564540361001821771172804895783683439934798832367780420203802425818441557312102688780018976159192094481598817585806645309111079866141592120269124212031757769576175869020233368778996565175065094714570222554532745120531846323170405402712724217384153972918565453414752398822174579125792536395156824404174392360813064689622990113943961681255516664098615115750712818845222410696667679428214512348987382084293074948478224456540235717422075056123915728001264743914967673761962477056114596615211966106315931451693794811636537058089723689238164895878571841483337898289710664327228426017455825751801147163918234914280447183971091759058403039319192907458057432472955142571530157856875802260126275573631166622414626064065567070397180622543264529862885715940263314852122497065004987812137994358055221797976821746785052093214308664024312731863202794999525518994656634179391946836959208811007094307655467643823836483130983908430904357150373195308125511423589240820519402897998327298801912138453523269791244568498753115368307976416229967144307134761619241717169505669440202557982529718025968549574720601784197730079548004811234353920508233496406385231170134762319510651148588181008465620024731252311033289740189427128920789940259171810403411325750765454006089458447621069558440598600212392011408250146843697126918057192504169803373201606342698848383075226362896424499495062258211932573250058156392566281330124391506825792675399270037914178770633107324859723264529119935438546536714494175900292461238163542207481727932026514197584523542065610781994747350577987776205722365569768008815177046166938599008580028908576399362030081067906634443462103719729274873408255898976595439421595670642177923752875069729980802779314464817762938736681647831873400717319032274330382704706180992018649042323109509457567081498375864210471344659488868712239418389676981238483161604533863145046871697841328103596430435287505463947761216896431106317608280394419891559979475953082256298014332872818506441342358796853300916778641632244978070539955783367506548669469399171366233609809221233086693121942523626565815222447046385712881464635104057040910516578134618078173946431591832220615644101784693250419159183528579717015636356449679620807723634610804833282054283833570189801692402667516957245882292007068987192309165937136233568477265348994216496650360637389200805178073124669822760484176667605857429638605449407964905293363415480606677903841647927471326218564057842352512508716538689781418047671783403600609088344557417437426149029501804841491232715681027290793398686880486779025549346712171263551746065277201249578948941896359450301551553154969822294140812037746097381896316293486518714163404872027533082148136659265465702177675865927029162778968252554021595272353352337241535875089058843889291309453362418097741124225914955875719560060382267332926745064752880712819927139023004353213806505289585646675359780297853060354487884833450579553603329648354613475909158628183338129551103744250871864628781301996060875434468824099892363767070354201203839205624865778009450869839500187291574957267793792879268680129935770880399761520814666474122232706906585614180113609722571935319288276138423885053157513653455081664410368113160030179841448090959085955239066689813952925074489167917702176767194826456895633756116748279752992949477571471899768854663747721852704862821668063411693823934211858229369211457194786040092163344776800071715062654476642664626202626277676404101970434277548219804897226462763574332003505118278266423334348946036048350569596595854350463470597249615089547466368849263842040942584759536547959948849916755617676096978942618473697786160021390354785723987036675911342420954016478942971821390965199101948898047438914040677682985535600156556400592208481433559513653285891337264640975270941298249687463700298708257739393033772759830726531348288576169067078585866234632455214688983588668912971390361226206172997125610749494287304852498201378439156803195627788232351810055506463793510287932199720739225263554686802610219900821167177344531620356326898268907913435423554504719837061206077510349930571954103012525311398879093949197962904477541119849219817152725231242901856187723314101257102318600431231999310830208066106874312497480531981278137461118261812166057438928161119452672204007133714845477251776441387901592814425728752253551513547654250687901782279268599513210596299859681074165499666805778424917393916444291190822299185615529828890311051009526791413170075125121297020930034719349966315205199471102180555774314247839034762896603190511048187437562612879281963288662844148138950285532468308989727268714958016467330913732687354438421033482107743271227158428513235570735686533966875008843133887424120319357539229779566560400597215149849375384301491214380441267898136461782911179672328186980450386103160540898237092781491052890753805916097267356210122946196999236945817162139715075918449199466763882210857246103399521361027733282176343900324901222632995148762245935804266337221338242568791963695233866564448842674910098521954805952005624141872577416037886556737795991382404758525494714121728987085924364747513772429524779953452448368533575820464126322136413775095567830984077979788069194182222702339611219955093912361033645576382779983400595032056008579872376653748504928945071794126083992732536931523505065029137441822726404242508641583514126020045644838641327563341786387649847075023946727001357189436812476551352794738550064908920524231177269199149790609529881040254632104097260920733462545006438213110858302767457577683444093600037081391508124929753556751751406999483963446792816595671859556401397681946280318070062512811789362546243300139724781926059234405248343893822771834134862812426190052427834702116243310696481595207866177779628792355673781705852483116148468236924688004007498986537680073880305678684738642520829124263642903377145741179854934131550458407239475862591751453831687186551318177168594072864030973127924143750875463688740417451748838308269494915519975553657714395926341672529818697984713965067314191801500208380467356233744975185566475380791279463500797457617507041262670895517021744038710913332430122919534705374589655608221720316373708236930523529176459630674817172237260210875725393447897106598488761468344409097157944610602159704267316994653648191745459315028171654173302511844090659750021711069443027047159675025611630799947885631206097152385267238912199074403328945723186468076968238394317134473604858342166822934305273978008381923369151772557347020949797744710154529200938512182982114736668569143638209476131132900786957154151978605483476490662927118481837191900289876634528779342263654289151824200177295638138000218394932021911022423873124925294538454611267846766699725003323084364050740086004133726066074900634078615247143928625133965750913119722048208327116920972562305413954082380278697451312283396810399653054924376852668355687420122146214977134631672147604808649541495333489976705247392032604297793589615325514677484848887963829592112443636410510598528894541695733093686997930440626586916280895393453090055543688591408838479364227599901588287773042134842785003369440741662655573905900741781715336129865131732538070657008016248482374993106558691078867347255508910879765183233466721097853493483080638710718271985899979066179297433887779775063747097756373590693664674130689662845499546147825162004228485530248701867910536327680156273062227882809105978733741563198488919203778460828884311003149036936336603773228562804752246794510118351633301009058909131306837995972286287551423983443185169537426083288619281579333647288986926366857074067281737337590939814453373265111283416799396183351624921472907258503644272271927343856340506329280470840632787313478524533471868154318656126912730578916508548975920528415327864497216807084929930921626574546267056641810777728379487977101728171030145469466622230172999229101927377022421752533446655383278522403606287298192107280864421928122300961263423408867853896244849452559946975230427834091320406068285308691958517087727615909700028338524543223755341559954143848659151943391903553714228423621978172476585880075354168425181320653941819953713186839283417600295330809924499389587093902469496787758209685260147340933384848449117463237303993336459165366137210222186441160893973381765062741306428691098886979381566521426614321411736758376592063376910183413022295146237040692982470323306210776276239503497478879774050829496454255378060582116563605737623259924506794812709323869719088552578841961668522127546101325022469248591926008594169818639833709994774048158029264862485598556281079366677843762700822771287473725712179822146713257748030970662100569717148165411109794227380277188152197195177208649327943050451232175240527970401541186325777189513996979189848587931298767488011129014922997017593649124601288436718459110211706893319663455362250516609706964366295759668060983215779913247000506605852967791223968088593665901364203418343467975002303131652483462556517978302127177002755335650738670199546608767537010378082079661605786439162394411484858476218971975310957434116738196654019508208581998089965892546219080594386734084201580949774329672636564468074466536120931999568089613767015300891692837690558191559161910645051035861180019010836208029449065082267896538216543494460774716568046039840814063734113706394150291019425119190434645879988439233307624204937955147066551116625905441302459169631568738881323236171814713895786530163838553414986190734432277866070212369389111761395636716810317431258957345491385924932189017177140854360749701468869870193296176748393882423556305993730677541662498141266963493628492713905685915557552672547507651028070097685992053164073373494219289525723886379484046753063749212221162111741391329391058200564009061198159685493439515039378955734621003161996556149068739804723321908690992784241005967683482975027821831043966855906359434257000056737660595129421338692149340426508952868902310072564880699816899208051455614490610584059048075833895273525017111380082735808195339518722175778325111960718915950510824896820031796388365558192939250897599231797417372343626003746270072707004288414619543206904692194802613035308829399284295091547237780593509201773068442025418326391408590831868098418529471471301260742400478764810780143933020186024860330896352639681377381770284277513305030233146984970836065081943313930004428367903956724040524414437912680174255898431587325782804925916487748763714191733403661894659433776582292770738219976538710821290366681903065652667216900085713442373522700464379121555203083273600319947126449435338667248211146354876387109527012689422030418782714032627183612269729439853463278787930600696983278701500258277956965585868354996430687264430620790496642075173954738527499890963680998458776063244210069223097780240821529180506116819668233791411206328907193496817059165992207605543516840705222356808016762527622512290653825537280088508187802732417473056296348208694074016692506063006149848022936231798465977163911678047655064218077143609912306248770573595846641611503626166744791686318787913111382302687737999390034420408229317756216468103449964215862725107766735589714461535576124191405257602432005307508541467313668569053763860954020592706362335587151541564503211608086504264670198155017422570141418922751711858236629547654660587426676320107802504382719734941536079776157831493301554765179097266899065217116443996225403009044985011891277183530219843271103208368686905148347136430953158318787007056237095580848056562195401551372136352232220529640187864234135223284221275529486983011932201096949061990241389771208997151971634459667940113660009745040263344668668305342394129388556472571428726957754375581041297407619817670862079820866657669590471060651441096410539398492397384919642099142068333846907604132524556855462959365540582824146144536725857513337098214810963201278161442973554755441425635742462016740983629346183873690551235593193665024105495425411003436347238442113639125051932468961438662859534314224766567839576072409527597816493569357096437072319582781666514968939962562959298078738087925455879474240579420401283246540701049704782074910427461989918462219756797576160638181997173384770750773841291104820749384495184594136229641562397583019987261742210963996555656720167288903146526556894928876757891321760732088485279618824200712270921285501300546105357874687775568289552303797234634836667823366925552111547138030630100268619063375978327653204745410255622854890802409233814063758794145009098982935210596948462946595564232002042074063600673203839682367559914590945184629489394798315339020548820964631446220197808841337804071414056586623730463368116565845065588535360405206840587923192696719586068241982160914514218200023551519681832348097969291628964167964418161709491685279095960938740115589149592067907704349996016774090149088750633501986632082685189968319914722201428867630281224466909278675310350111322868259822872150161925035827978377493284141708255343136688949013130083519628149224530618907849987408063622261884338941676226066939020808869723933951193934008257098190488593296402785278501248480347656556191154005917026837424561537009021764015049995586699252261672097333832806896766053978397131099532034645996758561235376434843322603741820005131338337207509562023021906750297414600887946539309295667723794130633573268013681136168316918512845081219801733667541072769848073014972979219891918944740158877807564888100945558280991171895156850483739254983106951146298449986869520529786767416454943607281984873691438444773376410804063640293461478328790953787941859441022778088891483241381780263041754265793562948114431233700519849048590350691748886710657675724453999554613062536809001247831490416116919088655919336844951077811535008872625306212761907978727353753069291658675998054537438725452632432533516048223527453139181442436975679255984845120075179684333726486537885847890127715598849679911965900384754547334478670729654129001227309514400411202645617079133213537846392097271664499599767355218091734525181479077139524138990237658889234076421218788462251682825261485395316964283391273904365128248312313970321953166454926561251915518836956811731774134737691058455816717884202899227913976556175956013081185691484114464458562007906469173070626726963799820173882306587403255651262043771981278713394821134042547502380683902115582536872218743699382316520996630560522544774962677017825295818059595678639051546952332071867110479003449457983049876301275087990394449000026909725650696611363001124302803118317388559171901646793178122873784132322332377087469522700428237782330454369791112831620098394508121954626431390356958355136535276165781033733273281141683316314789560710680285350886791497603448115661556299296873719684148207944823053966763392346364816880741300902773862071798573379737784973318283392634367385615819502677864294162669952341824225108423287342569422750010158345627200145488820207658339816910558843636533059625138104441949321104157818579751175643256766486663786898977200256962271090629085548734834809626732201799273614166561377158871401673333336753766154595449135181283632294609517105204034939991434268599248905006408839931770700731301982597216085676883677570263475277437006853244652281082772149715429028272377116064772966323208976081400883993246083295722882333677632007281146138443000370555579036353091668077290558538402219625275111069672095454283216107431005387566259540815555929137616932672715260745627868112515774978227200440668372253368183916306932047345113833435575095782252265679145204159906965432573414141328374100790966051961354484999405088034796897121332637199310552208314893259305925608938308767962193742579904635002582742285585443540183174212709206867432231262416198842802366056567687227637780644329494678914237677670247832017426639105441684847152949472094684514915123209655144700980045965604578812560039420775681436276937359324510800194392190587678763892786710187406455998198293418502192627944742014002190333407567009894858171511055591073288002421038616655478678412922883249205137254525052649007904213736171620703492493527935885406919811877516573456164926309560635680363644802051443368605963609192646918091730276623652957570974635538160872419866962067343093132834778443148929673278956747829060163239247866128136570074516369824243857967321235181233953949383238519826794345275181667023854380559256731676873535074161456288353651515464942449407538574195369917245447620302368235814794915800474793899254015359082432769300909373675478396552250822200783742163245207245617357574716555629842440476838873827452481944356093071832062483933034194889309606274607441149318684408660709425454709522493159399933602854111913210499996851003773084406700463502012782778994744727287986014902613066620350084318141296246407635167554209562453581671028543609628808925781729829950692752963663040976053638774284029493194362680534131875444293515171254891824450920561028180380966479005066954015781186232806337043261475554675220759816660578525230446037000819460866418365463932753535546563087276107788493718892569119316997465630250081081304094124383268961745808787486745443330589842898205487697235506995791988064931920238211225377364871112175276233584796493640513583493820899926995302934070175543996904459285665901520433355307396487359608927110602365407832142004789480101328854420351023850319332837950058764925729613840680609988879026231675260322486806077635339198636113600859723100680455482548745922012639221173924900665406706104399657301638242632128961472169738766672117494815810460295631574454269516947033571579987630778962917734576510229205574053306444209309870119611090352076688172759641469720032301977853635240576579382238626968458855551950584363695222475630332741939707303588778705415458465734251720944232769179913016285923709465809201008678039687269167027943714822442801401698602512084101880129475729419323269530484623055784411983182225230390469695312743060668352132097277315896184924213538143771975103177148139027065724294941699494579990056437203345961242433227999608285197697554002561213258472219427881240030797956339971422471864054296784474905446194255463805966272617668686557045349570666895210953360360407947570720456780403600289421917539732088372547661140976024146958274479343607782938757324563171104327550366222116471673343711889893126973440824107654350861337653499939093080178564768171855185318078507120437857452752667012824095618183255863219942060752249715120309651445321674160033059987666576865021198204098162097450604015547798188625778405022577437544937951769432382516411259595086051443493929153270279341513689937536207150422171073294983749245218537757299898489801697519080625844453232486401184431947685268203087925761030214395197636524128691494091470479956972187199806615435802153475457274740355254786697136374936984694947468811899488664964894151910832054933816679341245744119289328334016935819043668527222859404037898316031477523251139069953379643203943769035695403621931856439507961247044390494648014274189733171560350700057404075608594031369736139071100396469899274917926229908399386618021429128103116776477544262286888319842736568204472153650139888665898737325201292644629888582565867000499968857017996818076548012465090886647954465970987246177178510834615628690519336911095495213688136769720692028671769052697859880536069621394469871207044264713069079567080943765203032869629748281053691176660669674207378923749729585390971805533071785361974651521518268028198354453499904270048303557846695924132334282894571221280111491960112493468725204812314653852158482136307983209473780474997222533602582926776100955477065286843694050625949050196320405955349792113238068172314180861586211866973760226367440619057783095935984955874764623186455956114723222047225670342144575693974442923899913283993792806550641997342154068884357488528395320771536345585065656179072750198788069523084351665184950178934612766146595014441229490359553415757388233498109632524529354603934955374525680448129845085678841506573965798822051438389423224338225509017452289877827603238438250255248935891073071535791809336680787132754868879306859341741986956933891253839566541829211826184965974046669316413830234559923870455703800337087717697699024786725852169458578754064944627895966342592006260899380484617153266488628183849821534280718468001696819978650730706848944725934616288716659333227290682837494794465311156144687419042688063186663582445512236838809491086646776932968860762787098382139697430934074186491079089244969062931100042559994207324830156140911032061934714651206675204568122257856076964038873824653399036393157219940200271669567348381712476484474771433112317096250139868973110938508197421681425877793819930822360619751313147405749899246137821843274622220215922163355523541157411487557405778811632419652899486995138384783576923968201626519900627187098386195291327903143463021099771297371741398586262043694490124524889294271495105870532983010626988586738182178917238353486904374027421882906245286453008396183684447333317228570341349439291729046006344545518080383810705570487371332323202706042836379979393317760662103885866637216724106716709869182782856330045739445471915263157948492010972663060007281452012758028759738649025561613722429369571089897774055616288602546349194405026820855571076955268569435787479110203775081157713355815109131242063527166609059702161860477373262462624436415477908645165455576373309610315022120069439081661366655158341395691125771233499005911679574371427782569227116822704504110194760451080625321774318567563896534298652435768006374278436505345693681083517307444101312925703856225722978320446991927156201579640345002093779974348151340884446933742265858623702830747162371073897453931844292505284837610867453381682363663877605179432516650487834679884925617253609944952456375923726403799476869583111528348865136407922999779233330754536941228283928399636949787573982945098332211688337156173493561441671876644015010927082313904475653780893761295420389323268261708239980030306272523588484504764340827344748864329410616308115689898938821186144920655142444369223314651402398022948445712655863614025157319793033800148360166507156615937652463139181500603888438197199118662648153191306914363929114482357212413802538300557938705454483910793221671537997634789827155342144314166360909467439488438395296854423962871379878353624224162222790309961470217688165600313390453462472517771032113365919848577720831936668196425426027378269610156970034727207320011523381612726364702308888924577603324050813587005357272460034867373367542555057602568555480203544818120582404122560275962161886419146557508138690761004092119802850358520968778046358836640250785837030837383704481144897492203638921995547888540450637107136227900382190934543834604666602329919193318599804695259158207990856220503388164713270625832594909641618198194677250073410679486451284793728150507657250425166638103259385644389846751509738093988094011899883467289628850588168126366220811447817661660563957324172561492737367943383199485010940763553605278428474540164366905355845572557891173204586649103677243359204622393385314528203575661296351492957477453984067510690146527637633334827961768328865493605677049447252694301370961456064071532982370342037986172021704835203664707083115506521314777960051732087063736231050702823557778417745278436420271230476747282514706044500264661588521849446377749505231730512904185467473086383051362712079242570354859062189894968977242195087117710600593895037909154052341969356963211199381834483196845923490135630950105088128370725652216445659825585615311693155663739131399669321904401747041156136760728532791491048658522324450313494500505966271573959640246952141633714007828005274766905970472218204171908562355993509440015664945914424307045013661573841487138116236872931609255783876576371954699018349533544559237461288759275276853290915053179632954668847895173121185741512705344425797005604612186345082625971668680230599294713070469827260712976460176018049478045557041510538318223757826341729342322534920251521719340266897225464944252491472376398085765069583867552617707333753882807614241035027974588893401900887815122940940932871981734660432982509345410809105264469703630272632096379079713250792420477391449427793679990034644912374194435671673913339090612708915234106213520706585303534152980069027001423445348177611506770153051277692257173881818740784316282153127402305611838591190243864425408989147399492199027563306612277440835760393466832080061731574122243577445035960132983447787544307450338141539558619446554976965434757636387791951441017105837253129481205028750511173856820285359058914254240377462688545085084354487311947528311368701922701034585442774013161266206694347874201991565514582161878141881051665805249650883461404181229683651723037503645348776393568082896875515865383737621472811517744214341582686465524635911947428990474926029763266237634761961383932471905452326218632037825264051397635216861735227278265139037413276908224301553063782912359712362376536656701749050736924305212151847399438432045981859381686989997056526031049022013337535466990890564388905113647390034732748372076554708990929104358097706842030202910744772907100989449594546230005545571486470881463666340716965965866404837811029627307804850192931909081399474710745307446525942646264015323254875212935471296224994731082170712507120304796355094502418182550016084994067950583476116681154137377799263545553200636758140075257556548346193100612556238965838415622587058559357009181883632370725477249324524090673265481283646187076724504162592152484042719572180793058893888478609275538684722045231522214676408360962271549846124020077110406281681982833570309807626651650506460912700441550080608634571943203550391147899558054416395281106860303825524637249558039866920406126858631729168399527596863997199375493999417990295776893016446875330025731976990890817824126030394771015800138882594712446085631504388236196317953590980851546390742043627243192390097012958411157678508418205543648149818715563830759694670825173414655188613394138309143964392654667457574954114966001374021075609346632689593579771727697119003941692849749308409311314459639246272845044050707347166570291357498517935954216154130967903797218187634731999607226646699388896687896279460157676412027740693320574548721618749468679062611967118432394467840013396778434394485378877589694940503684782198580909414631353349076505560562426657663472219477968313303446400003238787833194221444546395881430851405628939041340509859116158248675396816676303002852298633601259820517802074585047484256627700924543367420984278561704535721007306786588908418933034022119032751388955425980743246611307784119192049650323553580395277396407411981542626413285469613965154414444738061023858451922657298387262066309269586063470582166619067279150493921959161538071495993322350540159603039967866668720806612200995640448358848774947151574198898015490335515983287953215643838238648735554976974130567441250652721726879940956686493611239452316559224475172084470644293315200721060813017997732155500810337338253074767641017722405952215114345925774691831351178706806323420519733072195469574753984320172541491808692911122839827281081674882780133168133284516214924920410085350566574331662647905378155020685681859198318204831287506106558713155542122810457996357444025342737989847091829987069601041499278206354164169743890952972388276877307329314797212732644907150330781931323198111117069952280574069461367302532542398345400176079869392295913398051654553834537237781532586920365792256001036982795779682563268857465368410806113726924490921413439386299448703176987408120084273845030186802683597819747733790865629911875018396928970417289565996920094777779624820536687686358222519226085873701408092707416336207013857056581560407621959364144802342949171646751385921542919700366934794052016510114431509885657303884371732455219669322227365615746660221792256408818897440016053802852005481326815675764489927441633380221960470836631925627703842126733212218365373902114048588889128189979426467471009939855002817811424809219466886538116216696397750888148642702690372776364511664762191933818014124301951438767760480537046031515487618467656169559928852485236775323560671911468775260719876779160023246113868821180863232870423566361133043159133284959194147436414340877529980658731497564642288225663510954265999913668110772985459835430220488615439687718514654364508288481916393846092749779794166472459452921422614604066322681663344157900412340776346971439428174983613161091072372325538536582355394694109484947013743406435650389612703022437342532536045394819486124837785501688389301119195698306052717759728197390950955625838722569889618912488240857005215504892699008618423430024098515453822651102501111960291430869039172329706407508341932353911496835047400356501063353079803121668613761417187632833359919523017597075986781912769792283139008867427678426512897628722139915175327848677326323706186821964594912847853636297156316961099934185227188398666682224289296161068279481301789274292732086397820721035008560489973767356644496006288350664905519596711997914281909119741363097413217340115698665177026432470898450851233861624673925051219461592036601451611359748740276597777465529640043730573954531230911833211579448519752111718997274830348087781252463928085200838516112556583886512973579282576975120482528850963784592015013634580311286466292951111608168311715659709527727578735672478685614959647145850667704069575813318126363373098912727761874907992729332525741872214329699317678250553568703100627459159957345871500609753354392033334583316666517441450817268262144971099362215117836333349387743066898986646759367318896174468807234209677172407110481815454777114448842041212686692957121081258973142877101924923212673045697344382886816527986647150862879409820549640099523487625307228548430668073093905093207854602383106385502897627478343469299285537336111523863961221687162687459127173384235033924326163452623538054446637458812705379352742819486372357638190031757952692706122407185644373299656063502187560408552149177578532763667427916935385381402070857654610945114370149733101902025270271044628844445277499097181905609902053186178789221331123533884817127495895788035380766300291037627342548231415535451548150366867615753033943053991528914732005491949185301418971442158098660798165331170595178443505220504458455383565838820208937101439863472211462499547171387401821191901893068897475033774577272555646174055355933532800615763711722256282246184297905139653393530379337993613160157231313590544475553992893584993684508507353761162523233050218038168687325782578790997009880681640474484182618480819272463018085337292881128422886746112162639449363942027357804330428871124986058901986008361779151066286995075866313366732597508162907837670997300892845061084014243464951229298951831931785395077048884549534335842452016514504721093062669363701995335753502054216571878481804524415960361925470556961333761952140254518089900817894065894231393830475207491591006746415416267264249801872228039924237152875024493658607038293043694444140792672780590398507230835213991952894516386123174322561302971668549051268929445017368792249114252632157529664589484872648391386824648352248229679512778503781811460433296464795354002823739826162910510261091139206111156354236436799536937059394112965749221921966032415793017169214308281614730506808344407656039818642757208410007594021484734559167600061302559245814691869962399461747707175265540380452222444827240040599105481211825267010886798217909393424122346991828427600826251919345862928216279301104406125762292400068128642075574607054153029126813348023214918813939421881588061368376941412079941366199885467367015165071828762416864626747976781932302071879420474967838710238317560434804864768513866945735898790642781870421801780105913466162110686877632830394823627961754860778599005662553484641702875842416205628460114432859805813386306370184159733054433875014735275825709261138734669584303290016793393324962283670592943302552753387766593640856827251010739211710596924613985502122939399882694270622278642016010754810144906570089708950567652146609555887107028330410855731535914849316712077104680963502698834776802726558306956209489926231363842214755753521179402397688881276808552531384103348593024278098760155984050749862801826963254675731855694227043188066198622504484808027373122124353896640331881978252418147119996922971303634820591882899035400058670564765415509342006393728349751704525772746075991061955894290900520495165027971234712458948539221707456402101775259017992773012935615720020200791150567235903367923655765061547612628765114749672640490994262164543007772118877016359544602386536472102271634410275507951476226667401013905127988139574637267883422710316841104503626515141448471974320344019747742818176958089835501130446985767146350092211984739406603022130456566477108611631760202785979625786394960007246621505733882471606017248001569676605322654669747821510880308810044048615809922178265957750781307104179224746198014367125448222360018850513490708280128111587810037484837120783621689758969844698449460975215215530236684579736116099862249600588422749683143474468457379255547680276599118471820192127088360093573421448678180104655449004170787623872168416886963152527898950166609623616979592951719567468216079803728493113422074460801522895635848629215516452886529800496513524801395718449847391773698703997434854741350696218976210701055063007078160395424062483754810827312036199611588291523514050667893989598012708244380750137866294610324103055481610264558430066528946081634956789610548882591381369552275107962980473276025051184610365152110469214446199169827512784854937677529236414587568468033695677904442717378632343104072449231807291019804305319743972114027883086746388145136324207244347212729057603788529303538558312341963381520621023727533435356690985557935218214925214612759142625217815728510399441101805715959461158232781269289696811546325165631541236828407457420854948926798385326032287449590231515657281103229471270275112411449412800928212228471726847620122897345770251672989542990156836663717789042178071448343684493830267079161048707148315610705670606428913088046484093567317789489410927964722225115414931920027939574258145914546864017597461801757778947349651891485027904228031136732322634939332463272139106777114366760347534028992615521610333638242500099969655437474606300217040304081647562439422552611674639176930878751304204875954825545982478590405735508460420476305996416681647045009879005401254475233285468582439538312955244885698786179161697488754623809992808134721459889528709892135256684086808005074365399221133009482555881855714051450161019943992493281177145901605593674158248984900421320868511020921809752943314794907672917040856590713071191185430786265407687328883564367751426319569907992914262578826408821776769244804792502645470303196367871707814337218296812168247467924062557342559057278020949558512261351463643538874452517251079520924888963094420007859437762415523705631596402931084489732987988342635315887770571448592895966122283653430957234889179288641394367023983290054606134612347509749284464952351562826386517792900236072952939523503065612156396538605717287122535115459037257925994792745383084826515928426201917841162597900525586109108842896900121820481511405867473475050182246638600212637304975897145778422399423170974430149806911695160767004366337901688287132226724811418599831729088104985448669160749866154539022897470261747284617720757846735512956405004643061532588158446346603887321493042289707229417911376875162921011624648886534384545720954291454284407123955611745699070848170713811309443034435770814388371768236969148264248209875816639457045399537480700614089621214955379937979116450666325252997992857207898758502923810734189001736416462948614005724313753102735131872524729487038207730185651945552952651935281838588869766858463837639171146442740344515361486322447770194192186634272014753174282503369252727384211102636225864955434585921722393790567133649166148088872376877580851115036335804448676710345538704473046601181890348619603640927793578375683881454994429576601169860228773961430949829385725510249094445880776462006210666630815984374424996134451455679898489444409650365534943983063755116057790853757117799149313963509114470369423903122525291821488295969797107643037551553939255429368241860929432731419262383606273460759869928630312307753011240369833617028409071763830092982012661717292968305100565783136674336075266388280429589870707546587620413356020918513277855886802059139500771618553047799193397778524598209977396383650222647275628791508245820447916551505831150809174174485429775608092275343561963740425305498877645160900142464407446156808333475405750661355835413495442071806414656586857740820764462932039739981916098530132413704910942817829014407623847725233969837284283429489461099995231924207464328007279666073453302701854610799392171510978108050301222055950906541960010508998124605171009053873082521771297944357925656365594643177427472027007355638580634671095389131410835491364128526743168404258601135050402553808941807776648034885506015819175276508813169145240744941706185592030492635646856071126206969623619108246308928099777774705905979447840386907574257439723822463099790351899379913504735568873347109523755780688272270250401490077962108130089813753451774165567963478715537316400588162992997771860631847561126899290696822758012241399756554723504989973459008116118577884274934210708684225584511597184810319639730850032151469807589178782415548845660177727729463252436417155492520098659526025154384541069045206927665810848751851387478535783041700708261243570510664573356358670474785479200215887401882083634504488415823442831176255696141179880471240961236945923309656782435764235874676028464338284066424330834357137873127028800468151862018844637048533556536864218986573418200154445743067240731067551802151772818079466817886558158423025532445971148332048816702498787797580786139470522022574268068802151641523287184983313327322357552956747534531188112415691521945410320766812068604493643667858436049403928688250238026992484290939970753258959207872433386950855612177598201474333567309780910352656341993810873594330666521164790327101307010130313236418226826141291813090072889767887306745235714939237340775301469612862295747256521715844090544658365153396740187837430361125639968144283162277487513720591537351179575958501931319575462942990486870456280836700299973530946038021811184717925488641766800523801141072583814188883342171039329280667077874740264246588938789960699368791050480020840785113956453847636699851877017949727592941866037206152990161333599996542228144323820777500828792043817905079872219306044827714105868172942488899092298981512435612050336945797331039974500789671319643689302218713864421890293106408226849506687580804264991802600717762158091634899636382022077350723048224500305034769223070235484898682228235312969782749958538291927845611402179989209215230802110030025545538127583507580025638056622366513215653332223996571166741716939567070138846723468455252240677747014672243998329898973523000152809534054952976579601926290773721160280602871166827569873472851237317688367689950318672488762215084459905706867147892772734040049802049660753275544317140324333441799493899916203476879125181324897992140420352177165296128555686419551835681592600462410506685788126690213364022440567700051303174777502997580354014261379300710023368217264969753399681545087791318411655073711676005782590631548967235580766446502240670725874469876988811108345956432077856456925361023447250130703753283164657751726595660750199678850780258605673148578015135216316955230873914900458599199035806693693842862210524560550789055885215152182927456884559424881116317002494864239688565592189983408749494515407611392339218251543333698336214868726812610943214144826073053595152008677096376444876102440257667786131372116868719749047377006078795041640954104688619812021875146841599288897622583794039952342239811707596238938285871389583317529334593315537056516934243759951213958309929271437835231865420166457817809465184815612308401297660026215659834492169516398680674826447440238240559303660645530366395404716626101355327650073742810345386099617258610144222149835278943579531356720595731818654825348030748702718876138109773136644382441835580302802941560240730391083713265705805129610016232677202196531579186529070262229327022881655978801315125687616231062339388180159697139374611882051016854746107188821166905943045254115454979151391716684654804275949138615043013121633320175920946291731744210203092820984060246424197814663357443327141705362308096539535856811740364938284677276827730000418266334305036402831900452795281686885832858678705487965029329642234118539682291490319282970197644642204795781398635750250909153530719996544179738277811485322161696351011962989730990552920885733780353141656312872380082887018981519162104012888730519939705028699414858815405057471421617003267041069240869944903247080086616547773030103294433786037428866671634465608963583418664510441854358832883409525627673620985810113287216505477286315212503197761287023713773414971760936053181508489905913745222802988426832734701257727631136901554897217244235122459241723704893555424316913491781881869077967918031426385245813723818361308444986476550743828577661630012162607878249927832386642118770632986294703275587744850213764691408993493947547517767576325733567415738944984084633202506497833312233747210832657458921406145798575432159505343219571489752666148348334737766463571170645658116182406148372143705894718896206222408334978173971182655408819256014748238523905551132425848166946175088593803933532405760403138416185114825499417670101299247245408093718835841035267573739554749837546375322857923437201385063289857260814552150087401401515747573977641233937528558765188685631061772597003296261433154143359337889717511037150492098690897551634646675457650465656413817917764724914444627663947136551202092819610760110911953703147012272458404160811332022850396081544198276502281477654132328953480928593008632371894799277573393695280148263000813167031305116882469854017489671147087343746019524016754997843030122986856336067110445184325514576340547198382767841329635352290779245614245706264096005831875641873911771901008047781916302009416688870926879219512373194486480957296963204450186260986834796842202188459450742243954252728457189421935009859929802878617835028272735845501612059360191228175038683437034677622922836800984919653861892799124354906955450654401930082629182672468436166243064941960025494614854192739164617555312821412243068876287835926897443850138927372220594219808633226714176850447914675164960243754523823472154456736163399266813617365854120603397912905316689561234325579100118440797847578578764355502299722108261258631227917792025020218411280458345262480884030970312456676130119982818564663105005877730577041642460520219122148605097297747442892204064583887371758643595775213497241736619443709020591932895201083761473071443522922857770690576544600562255855129963837723259474481743563264040206494162985537682331577388387636808882574631963185474354991229881714599570949708429810596061065171231170413181821167869453256089990430592503079313714256732493318752220417705733679827052291422557696179939851147583496085250636585026573958220124313835379217763014697702628383549363348163982664175168320296641851912705906310623348964249582978503430254974497859412372904709702903942197343059728366472916183811694991694662974254251899032984017596299238173119315674808593876379432158318493718386264084898091200768484345961573038283627001536912279771732805342881356607803824738960867727635093939678531962185298068554331583182876968507571481987025183300849718217117096469221502577800256278961737262478877529768612367267204246748212510432744682454107592134225161874827674304857096739283570538231775357787388029730085408743370285766151927418408207366950654184542872718327912015378243458968013774015602872168546285588538140951977125015865947467356718809681853407973274262107849523399143444324561127712991540368921688326988659760593294154776489596921900757020294311610961769642140061009116263312992121888886453788420461381572727928204712795469597156008678784188965440339755274383888275512229337256935309588246395590582020691654163719012471963948050003587140646660200286137422788532575929561862027043687661113192393059350693485217229395663582674200247345136415825974663756328684024757395792170537877144554570649753134040937785207947721553496898456567416611972952103360605928499320542413696378602420255916653285761564473524959321146038054433259062155349096704069061174118716933712992040383323207996457213697716524473689875163518397580832258621790239557726536572532822263973903742447759596922172845634370254102038399020792910204447293256803662584484014526573857296979040553485780051769004488118420213530315810587384852926951012659971103829323259487220549393839289236377729844112782698889923778243766733894597538084524115706464439671843054865245060545875252034935779395603874943369346044625172170012105059079774559178118798104881565499200014210480753027867569383264766301118187893291443155152825624196512891438210732051225882501164870691817413736150813353221314166521477643666439412460654297231362975038305832808230112941170833373552361892223316946684133373368464114497958531799043109022139021249427479665361718446081393929995375061136934937598558571586345760719859809947412378860302303156043766543670649364963340459129920627621717629472981546014294599378716372746365868003486208191313406734417332966932390038014403689448273714584147641491738043477142675412171076917166278481471458369631380117758720659829552138644939376403593934348176790404921337973283288614081656890678590172374905306387712917892526877466985214705163823069759704952483312649797703528961094392713349325986374260735186215651753790997856998742346780491159456667202448932937013215244579090917631381791109216125779892251538924426359684421437143463475048478997322115198777869088934598827103274343945903476019381089505626101078024263014125567780348461521409768587805773817176440921742936020390633133191823750825010164141266004014139863684062109249429285319521023401887072852501432500603468800766072029646872311273339666071424660844770250214903246458175457056145427474004442188202881144245885775810822085232380185723824491650812955803876590684212278759987996809312866020538203726462726901219099361090259194090896629160149921592580213653958264588293182558442984685838061274481799807532153580838758028308300122889581368994660167803753846882576930644945851310419738350666429553950872158794521282342011696324630859563490315037821325749045500269470861056373924999408798489158045513043425244875888237295608807595585083226839911661780916668743897071737856127435056201907602551168158608435037512055998767258081750752431736846314071350476558492786579554156419715912720387317242956590604069240979600446265377206763896804256370305357015527054185313454595272515606718643502463669119368781880547356948388188773740741913562238322432869378267940510433555429244105372330566993574958561032582685650447003210594733131455702307263077288525980615024554578307847568114948462850381049409575048358321548709711449048132643189736314654533163871411546153680621373336726917410681042703555281839522465890787949160014252804131157086306435955101798013762455635644640912420307803138627252675637634398488043988126609001852747241924899129021342719871303323851916659753809361737809810421820721308623533989904158646819663027992642938598313977402383253316485359615759879520415172149379436893182243094597493892183770835388060427423514326320849571472263645099351823488348004190522859045526149188439533450644920209342715169226065236796901008815157665705715575521881496742146959659254409186004842169056023785144913882652128665460173459323062329995499631798388413821967179242528429054060448115998195519510790800944358912912603150715996256718602090277499479627873683163151523806545211852365882233823709094488615644199454340164875255292917418683212269101905877927933295910139026483726843699917781700849686021789350429267413502801768565310776451162825128485721101268613445277736451240597027603041412994376260906304901124181826182930356212881601059556001518113804034519903103967626663533258880029156578115326490152439062194022884896457558583696428219292640543167419474905796756817534060490866047648121313440236602941663894942218327367834426416744706159276208211604264145913936725951464631304966148216407760904885806672772516250016325663029303209769544263749787872849913469615254062237653443679175200433305831196519983598838487618698941035656672010747405029823940474028963371681420165658089625655876776791310051114892678392999023438980763428754915122211227119781114337722971936460912586513633285394888977657718449120838554047500075404391553924601388057458820768920485372248831186523388821564654340371099939761793491139379859594850515815688719062287620734481490060728702318918903239864546899203728752931184204869862753943070888661807621182135892997352695646986118498243915802428961487170284408253250441582032961210669724367292145240243992167982822968122467828603179185809397685264147593702540826847736688924081750673993845364708855292294848870559029815516262665272591375213861272930567098230749944433462894096675767712815507836534643624548847171662614160873017239432992008887963000529724656510788125105813146614022016940939597682939096427857246221452371486350143938098174235033776700306900000670818804207048309268254871328514887770547203194632153997140622133743811506496343474532840857185460450037836594905542745716736063445725178388743683179931965810061727809324711988996234885670229050455558044813291881424321293105379259400669540027789092113433306928970316385410543536593584709350204701666730407401811550978390145524319708530698329745058516816126568697379398859143030000104982813170475211208773737115969504692919158694849150134429423616201148557861741522014059205329463346644371815692193773227977511600131658986109493387840619537030287833220634319063122038523689867903073990527426015558793640804722346686738809755474709551236573866025196885679464490203146332154990389180277452146406574795702623669202001929498088387910504471164673654124170221144440270454542767305484250034238832438247133588353528188261839773012899877063008066705818215496793698511712175480631037807847965058477233630933109785425981677765855716902701328122840772640459072822530777992715744485995024680608017595205554434055485006287207798728543186009992911779428008814543522491981479539267994012801603976722473795590877216359366717192944122501489992413496737514905315394901673410697010734017974038531240866315762404617469634229684676287971663836756038233029416841327256399945626188752326865411241351410351499629863207481995829763060788031452812371344739954734401163352204685080415785295289430479958685492855963568553431710530789062594085169243458050452999694782275108212095054566022671436187570014099463849253112283818189573692653055300306128013272508699728092577089507757523155444419944682101754811967747771620562040663770620830301801411566048697454175244390134241283185673573746795899760315580441513918541631125214307999557097014031928359067470332804761277701844645270681450535051619463993911902607871144031808234077248883885286542558967862086812981859024556227109148793053785352472126557514588502711102194478146268566403056212450827581946506905315786498704598538089497813743046585198838370292566282782484210619587746238061689893659084205455688122349569267141048332477685663175115072601675431074159192105705774066665342037908570677516496361702246704634881305972232760222465170691957382238837148215163238439656138871128777274847183589080986033224379409304229897232528129377690662439889319602084396796314888194328451182568929840149735550733095956286630077502541785660005146146447594079784908283935374474586886335139410361443780863249947088527816663503928722717244587138429307671122292201300252370248555692814797004627072634470700183330792041865891584625218415003627202390196223128600118943552785952907192450185128592037604886172933259429049670516099995730884573146775941156660102503694467956192861478543412282767035994085774640395922100295896977278794681679487754670142646983039483414188477001574787072436042515502456075353658423673316014581031036337721772348661150572191510977044510512017698171142463538244261816573434865204849410876895571139341329196224417586211262454648494059113224477752095444975867043955983122140803912579941156157252634884698241318163219827646388897433027869466692688763119844770750080872807689380872091718352003856144616998159569335437529654860959792455642661251260245542700440778037068795665445087810607496737695548273716797879928373309903066654324016647043768386259096894751478864007440579572813647250180265400611815055802516503413461877548607063499630788937536139967912562726894051749478607525372711528949285648194954967823514977034594969390271585301295673714350311805137486957008370278357310672435281342880169756623357494652206310266289863077602863767559181948891396597859570657933014169057590300833541594685224060131761742525199900797299156404945654499990357157094861467448320269885504364825726669311004947968460165010627999004987674975223018275125118928997554893744139383328058481133306016220311987403849774461623868076228441031930320269007230401823279542113361923678189436377391230276382721245751155683473576245539308973208918172615260995442472537843428806243062054630234181455277423771704019336599743634971271314648672780351401881712202857791538596593494958060349533762367531643958264463345057434396041271124682059148850298532466075630876073959565556911757505088540296941530858752843292562718134356053287915857330278798351782978293184663180073927391189122168695002906085581699711665830193076715772832453580137960134231141628557550988110135045779190756921783330640751587385427959944752861579606017495691212712039041258929948424561307944742497013109672275921276884256568792554895356178062417325477098203651036351245205884123272720659136745312476451295405077096958776733882696762429118710985461624378699391450646015037472649215016893620724838924018670778916734093040319757899699641690169471072505197711705187124112228709188525478322208057234010639283272330635858441967135554383366973719504179424727819737796749709370233381102803774449895472671054603684815016981023407172372797599769573395591995149772845817045298922024637208727159055976810435439311123763650122485599737903805894842431616830905359777287645844823240641901131446549247494283081036268991342167560744105750771431961935718184536742847292000554400927665481902605142380853310568077382087825298644639347303632387868099970262816599614899573036848749684375631109631185947503316155312465484927254195980901278455409312934202089530920714173761859102906632867955485342064907579974459824179943210251569840282372561395696491926803473756450921952351793388552072465686931092090515823482820135171093902315026812699188984343264809762333869780475589399579778725684753051166307759229311766982023145156270748855719012174230878554875562338066497772679625789564360755112515910330216597220743408963277490079705929512862725480410018347314991218792162120379494535707568690526751948296316213694384225683217292066744957866007142787918072233243295062002483463260318127720813375448623168075403564836529083441182488291712608429559299910325980939095217853597203020512122016856603498557675486786243764011606535254956415754635992906495433120256153760774452129557531327396484507234636002165680237659975811812721644365942429333367596017363735359828762037876649688956017781291604494267175634363597032109075431744022328629387641588526619296256147111223157609125880216089998112592269117974478152278551215647093698830525251208590642616054182833631630632027797344954319952183764949692881292378768986725941696749552890519335299781492086774714715734753937985951902589409533184920264832795630486641952311985957245685352392903993614874426387273667956304215874080753655605424267842423560683821136714644325216898025812096452352216411849613442734793928430880875337595117826742631233247792991237242454916649819997922366591874030886334229566776722784489367425286821703693084832699605701845792605510069438464649799403815580268239926830037323807373208873553720022654050900898158217141921201235949683525457158382384673227753022410980341684577747679247071327044684895722646794412999987510451925269417743351688234626983593313115271235561619682631399080037230472094766078268231165056932711428468051107544796342837193280481788983436752453512501230547245037934818723077037608667988448555897458761305341962865070674344362910860696516346077089767272892122090646776044209110498068669868358324948514678839420368835557707903575315557841537414457430443299942007675079271502563068758326582455343706438301529154524775670913036179901990985420062990132998073456958693060404562958534269351694570549531110617068665871901976004240325253480395678406812834911881893223786386287924559039308514694648589358551260673793008134120250177381045301471351248970250355344168567234615192392506408960558086397627459996763083629380057360104175042850401348656202207984756325122098835262078522100702745414190668659111145281498631962333221378022762008709521183066450012722497599671610806605259805396635280169270576975893033631806218186373843340203736820182797513068090514765204113909299314002123128224544006317985357939738301900354603675662187454139975885759700669661327997401533099461720398687172498270436171938822777247291197039626693382348165048755318694842376655941721774043446569235812551408136801210732244367643372716689494699501718140396437983932888219339990873515679680418771016448322283085235833843637879662334940458601235959072192741105378832076996892854767676480657830502890829281916757173188163755135807011210194189782429278715551444321087711888646444449561727093458574150036486515215435105119764322024348350164469207959426236341514585487029871679813104819948446245511909037611258251734987050776436551729829773076884992890648123135777502043873975300184925361297795768999790177854437348759437220134346284778384795554838570217234347092402560543522949244180643459422523527702756603405989323462393595785959123579195248379404595893212764433638120902486259052940749051757554270992198139468541331805217024553261441006456186609279489117865893568160713608203005211636435587191295405825238015230382410329551544408429949064555688017648181434175667354846670623056449446623770755768078701144401656923989646649688089881187427631240230293427520179413482882431759986929835743047993130646368224481671934878941224844234569300719818375319100463958915023296782697388979595553919927530077504650599293941283425203441083191023141451783558956192774819109377078772815449806081416802274099596875144747820341764997079746354840221054270043876856496300523923970854156862900793032956613404764170090855798710156625530522832610053784151306145609526991108640272214536742587705137405253296910372585316066814216025150007006352172911593995287128381150386738072375519592894323843169147190311530692353808423026944043834364811859380086987590317492658177422531059912937322916492955786435656107907174194517541435117589369800557678398976573710587688968681579447510156017302489090892088480525006483574948131611464432145209317938788424568262431075812956118988906549607112942316503030625438514733015644220933466834706374554822183413134221618332105448754306237860603292096160096346707534871954739757947357344484839274554299485176055575372280480413165440780012626830210445260631015588964837490583337851129957213878181250553212447854740012020777634398599457982059077276201494639839779832617729416052496258911360290779461950793552305416630031312365255859627240002401708838918484395424456714420838797289715235342335495106431195305508318411041048267613182237621122795062730493094759810501481398398017247413820616171814100978960624193408930058242820782025875213451742404914239964913139283407993221198211550763466637640387779939051820161227052101663521975423333672467011638533749038752491352859697482150249439310579594782977131789273170834787286057008188339792120893695571250693277776084118466616185438884726739425947338131610262452737339560545346876858122520305137923511262752186612628705218595344039292514763339960938852163843779793822427978700190507495663315440939522280000961502791472283851850204848015066970470541159935424641697027509667732806508041550252661575155655766677795997888214615318440543313206984952872484362932495959232413584499001630011889855355486631461476823184374289240870305350822626983282797278216598550316058602190564918143435024636362730222183137929223747200867976694372851553161020497034910675986356215118327121743325850896884771557568397886208120805840758159691840541081392008631242894858557723072269869347493612152324060664155753018654867062174203915875188315393518934036551786996504959735060993157048032530964403222736597994809862206610265259459650379683974325406346256151433247685409717690476882410338382327102376159899418537742253107341205307406575857577741312331476851414528531134688338740191576068294057233330792414400527808313676119964075871457665250922977524588447937018918994429289144186208377535940225601045138554332623310837394767638334341221822709856627018337935823506602072777028051062250095721971958765436232361292770790001895321487087206673495535995471003094981548475768354207345270796707497534092358727723564764365327006956419516298525007296297581182100026717363260854628482138237537663841969365023501451103409674912576797445494650140453736127254100510985984228723775515027736488098268805473930907431436092097664450361498382853394628412668171529313232277508516659741696611018750396683342523923795671197427854834265753656846267290251152133523742753482417777128195555648571573702463740186840463331084077730880811007807915874676497540886063692919628704727569401671563291992132926241455287166629615395388815224604896605385893341154928986898484570922233565420202123438319442853768316634108075309997552531496709114875430200771460869817339104445917203223527642821045236550180967427418080075659455683988249207067393516740071015682601258484323152839413664093031854463223454853782936477097598437175181437431346666739423057136621050721460778956780501540257746073962828970053603844453591094302100658801342104235428473467625757492683818533213872968109152074882588628446973578021163864800684701692961823862613886573178957930949332632597996076111205847974097600686489171287617115768475789905026536428360170670834837842728964992818251631144547414525312037008724584487949211809644384742985220741089093610544631469920222575656195907768995426053013096794296326533507789974478088865117112781117842927945949034421622182247682363248554663813852133569321533816772598150861542879410571589849586717796755558887595793024106773207989608511958944017829055217109419386133617904566534492307837985284685284507314533264538201634278665084070953754283127761373950093290993351399162437647242197877905010700390013251686744960990324901919372348146882443025515593600017264204443778765919880461378709657329480832264359270814281519861694115763128910479050628069845903740014905325404875994546605373596055902807279373459084534178628021840657173184119320109650898933585287846518696648759757641977287325012390159988871321613063642085598605473169391202474839457899582947472436223656809984525309960875019592190483635269216870396101731619699115447454004354617405757738393502569893481328812467530645077746619175807836029331329650468330759017515019478037567490660000454084165773667163824415979815426006335899289170285470751630377964846896641803801055139236870984283134240530273707529896291949620730536546513921771143403323114860566234104212432295976519427978693243514269440849690756088716182051626337796376579418484803574222181137823731410035236542653512053727151592637927726407876646145546278335269421024558636363433241543065948998065432301744280997870602986867835658476916930149375938426077637920758735713426989945030966105377089491852496091763644579162164441658784436108982513082904685959921903254490440776239407298548567390007921746798128384786950877040933192117269607382830297112041148066189486034751935207110370740255209307892361842713021113750226770860329906447452699338531608921485787478679603351176825775518301484004949088102938667297006624075968193837092497826100197116988884456660687334795395475081747610496861860099043328279796655133296826059877987318680902493975735209899837438931909751593780405614047137336381298157820535233051633081706147346680353021580426066040617090589963349854045937674372220104197062552800182426470573449047155604974763993563252074668201459449331350844349530508657748987544182290611624674396186741869596093894484703390988257013189686035370679694077986036479953334016619782089498634917341084885789770374325176631740936018031394278208172641230210436568490336000112805240199580869547801513880424426305866663221289663601277863505292261497968239708245044331170136808071340707707599490816003829495907690726761102168615760705186959804272975952126011216739353839009667925679058064687347423300010639039718622871307884344270775572380319465739264196014383868655653669492140213928877507313585534417402662823221491465259823185856799907875261997681102855161166403243231001207094515064821042577324782227344451659266525396419660898309470241010740251304469333252879811700819235785921665912656842456639381646126690890653417304653202038815166274949140380161597494471786646747725007409423105857762259834291346743140480282194639369874630677086504486555248534681459534027592422900876559400863843210468107119069199628375351130220740975584533040335759965102336472684640631477942939681742364470717944043633402141458461113033776470670769894709296548662827862839604963670029887999579948191949425665994740639860847063340738510396049375634547563652918130469295137122114787006891821913941289348496024792014289424742783428069112918871971565471812344384141253396494804894766159666142393577960288391148109849291907028847930919182135793402242723486680393909489184909528333943033335659164799280406930154959932835834964673906483134674325067127617913531798891549368910778656255984899184556785292193407628132936600431651682019468760972178092882080347045201104934098406873878718671928893681486651061181198292110215701004950442930088716962903633003044343255177831628530590971222335243256782067773037449827101685820654209907561708497804171345814720246184435303411624508566153833867960107064694572930777467831440984077724152417609788001779641551821695965891982636969503348683268960462604789747695274340794601352488449920891517064551135438587418752188831050115956644874962787504967888797056213381130908522414554241880322880249117746101384020655674527114786516686089506151427491255332231500385101295220789091761371592990126388786732134206486170123066608127421111071926417541916920839395030624719573306486933162921284432751289574902258404813244985050154106729502871502873663541343714235317872903496608900113873315206283684273146573083900600657337630720198846589941764277604122466013448118688456344430448131210592151175046141937107364705688489265624789057374950172070945692257519089176838591191628471047630648528094723483777853764303090929803258678614733445408254985717805444437434359273283294545373792382833759823828854693245740230787429453327871040738361647160901670125568960897313978648169298045684827360333655004104948469403126029247202368477002305430759556986776737061367960050928178364892080627705670911865290923579379294468159607712454536938494290644363278077051155662988450813103896932902950798809643143711582082310990177398547875720744670565671135828967862902023511142087404172799760544636410237599636323532448613974853844008353962633733097019910304140730936491166783118347492662868499497491355160560283635441335244785753829979215129678345484181532763849630988158073142202268308129482042633970415197761978336402417394775392506689622693004724884853236235120119204041812095884040966118163277953314587238273677598644325560995880426180667560828163527816490276749597045485479728357096085940046494804315434231162390781839284043886945113166695017669655581017365095312239833600753115921919896297031724566605168489973201380155615736743409442622382411967129532078555082509655997381211148882843460612352425883014729175765814306255535216503551034429485353619741556401910008965350836200159983550840719520529783818533663613289710032009410887728886014161131079609690960866679788093022393199098499439454878905231499555283160632246472030577691526678586689460194911342191069661875842949049596246719805067473549210528128828867672770858599040098040020320820678720117179516192615831749661759446427717646547089823058534741106615866665712493658271232474893875217536672021789355228475424832245466777508413183825377394419538304254685365716201747205303211592819148225786191580870873380328303058387526182325472628295912126002383568017114077562052326535865632434436222476137932921071016750122186611192288182626995090486517328869580089793576496281922555747930925473916297960827155664672041804245756418950443715144079007792453406546415601351051025867890919126125666388207558435096562398729856464185969647767940979811667442417934654100248612747810946393838342689680672406443273984558090386160390857456867460787338036334741872429618648901263106525642299653594321462731496381145848771662877245956357576112051824861504619797173900591576541376528970210366566970533309204537507232946356098899910493552791160160770591951803498446294745847260693315196524659349700181039861797331222379186944915314441896726586055747560427638069450122083395055376906981531916637464560987662554674517322267750386395220312592767695816768926074209907069690891505293292434562501437649711087535713292198774119581630359999253594170468504894010370260170790305599287651443721113500118372514809064309883120144284115936074630766645849777466661993125820474995475251057368927556810650597063195146219562271094070233722653686961871756280142511874523726419193913981785610681972776987502390639288809704986612614204265386526630693835372317720125513734596385960295735310172910310119053437358885357005872335963064367216195705536322096123518054113866327419568911745129292597298510458550172503718586722920877551855812695106640230201514838129168128456539147460615512764492572764248288037420379319487373206576881695991331805613400217894791522414258146533866393066176413950148730478104963327825576631352702676495155910879832754848916253903615496894025144440378387162503004451352373195813703237653323393999624887520777022336760208800883624754765233298944302559723052143052932158498651858691242088738966212263921111139952941643659989179068271074734662136925984825558988543418055604840161854520009344175703393345356569241676562905317512857176651511232110464901930746421259000681761514881419104843113765898050469351518676116889103521419829084153214822141352043212206223676133869273342880864081289890043704530348072274604949132039642805774961172594531477100178130638819395142823232130212157344666126812765282845404623252127192718607619462294435439382922734891157389406469352296552471474814485246284209868338163396238706027364542935408318268422114597902127502711033003901020363266645843128654428479414943609920048494086931524267721947065632785806305546497745131472686584302068269767685257656721092002555211039158118148247044574116974083825295254873860664157915829493111904661560229017443221338511708159880633133547732829675070338620300707836701217342945169627766896143569498626809727422805089082171933860379736422246211995350336527939150137374137054471531542034395848021376171772615139749917273886213803072104470651928480495014792108191724460576199098093461794610529346741068058955454930066861798007765656256079598217602050833354587003428690799002321573670244383801649684606596881356314104092154167710607718181836739161111907271281812013924259474133150127175867286851902854286346114216543042544436297581255456807261594914011773193023566954786892361589751856822077386015394995111781044044554808297333528767954012642041695532118178229324324281829651104260064333410363812972035764440946260394738821352111726316682334849026573344076310027516700675049521334869673241176649379357129523238385994438088598629478235178094110312542425382471453232856438608595417316369673498556422544120652130056568360235182397672368765743435204932527827165520074444698122525016259956197363799938140803827889519570407503381782837717763174081380935257966461584277078380044398634318812947803807491322992578901570944123406052268475186442637667628290620902901980629081391493439858862849786210187027291833898265104516661038616893220805527870018164962261334107723279121508569840564441391935957132431422353233414367144370862752563010122724857045292958460136144037938379631131933050278001439850953048644836365878568169641778345229225766180344959457713447523821427124501003315322687043672418428559174993925604695291546390384507744807453237582863682965792989020765205442216986657493955128835908682151061511898606145369015210117263769166419082915074257099058509978411734017012783476443468091443166134271458961204139820979503126602144163613575840556905931224121252732153681392031523458813636764117038979721459213802175181101169801545421907636892856179766062913524306681284934605218543115853439827566408902391561147872831731714208279477388279500119322224632395932473132638449848608182305164606256725219329927104119530153379290139152797805125122500968858590363620558073356703754554467228388790019482577702247450313427645300438545273543167339707465196728763149299534241555728845688061146912015191092186350586156516991018585036369215805303055414396274483344172526856534150059340956202337822073557329033028742606057528885720585341776932865275690760594537911307936486293091224810098736853859824263204304934353220958910760773072128288069622699018162871921356892003832835748573184052432729372061166129541012468303299155457799991157601679900325052135394908142120342934796103518745110954618519689652440418519708316695134529338469041540523228293730440323651605650080642092688331151908540660705384637296011510215479373932832907576929957705583008079476316372418699068288517011202270393788162489638063281655299933639238468495572159749325023872337128159843809413478543277857851781744468832367200368107667252661639925374364436384118755579741697243487681739932259680757171449055540188381045969569757380269405942907557846593245777083933462765596313068329507263797964266043966755970804039711472367620104023347245702327181427259361813702895114960149781877531485356458419940932527076745593798809356030801061369071388628927221381349254554305060250208052116448020828152862504967819414880163717024625885227385702509622813390953673869557489749489517568527247481311570076688307983749194205651469503257199417625063871610037101132741909030767723602710688463258920436359164483140677888257785972497876143028196784880709412154091369746413566064971563872120643713687298764193568133922907304244873341481930097989049615486820418308374606526927295732541614224625672642351086963105075931793656798786573990901082364017041167750290685469749220702354598505756848684896471991085427605281728615646967011885712396881272600583378495699809563728416441485820901800259628635096963891462095211767412701998333071739993596294881758716779679100179168578429435155284276121007252119067033855124019507196110631619891139267203151658583443913759599753006308117595701457362447710510767141039937951442511842947856298602847429878195671219539193313139134464369780209222178372716794650437672583681568719303699031831270201951641622025026714341832955250191511314487689275209297386297416145551132419661605515102521195857741408905990102239761123040944214836583125149078515651877151828832143332082683100990327952462249733526618091809829219703266268512975436647399982421332403965629677742646595679028359862883232364786772548914662412993488131823214287300046571754523380997328529352101636302196232924994216301365196670271417959057014339708210890107064102621838596554903970744901402586471875281408479722444562069428493975015483462999911149996018014338621338386030881020610081428941115163318944351827098762745617161600941532866151800268764642910187613670535791210331048191656827298092981482275193504596081428341539973267036078654775997318240641795477574655517236048229700504110781718307929560628582402910651397884623477093197581022133238309452688825057338540969418725459076761459622077193699257075028493385899356170189348961804801731564690886036943269542732687700011670986196625663740244486883553200407569031567890079455223471465783595533696933372532899872905975548853141098921703029457017623994128868792867115670950475673103232509249406562173076258512040773449076548244776135120774172768729721244541238238932012968033349643614394617896143245631696807405712026476083391973418922231557868979671643691850920992538406666389184195068446811417698177531014207557795903982797710815042638560944950201462896792846464205742927468538671581345776272853923251871053260733873106022011655204401770740413703572038815234767422000580207229754326153416037613155528968800627549164666659947997535959682152286072557911008953411283083612651981866224752303612813361985886467289154191799388708615133682164773249476522242191091252195429350468257173853480684392297449768311009892575581058183036472134789879969351118668562531177519488744027459148607535757610577996907712601932381442195016502566533100066230263138703264429873771904361602793576055914384802814461303447149545768416221711637316812463808461523755026435317938594610239903356769193932494961830653460443343912648072387891486543569291574019835162014867469720717002475531732322269344586784853452651927121101393078281938872122489831012699943420138471242592628096484649494478776398955229842129870512147274154038102453027359944840769450310146849009081233594871023583166597380728286721525752634252743586995204958925768831463677843393343768161788174068979452462869938558254441219097498941537291133919632289938107958654695263658173211812783731901985015726442796499722877709541324947399495663295015304283948138590189650657806616431721907629629109448718393028218371994489638262836986234945314946600625573952650832720019226399260367367898905895319291334794235443846070230120345685055495391656420079041181648926768859371115656982685124972276584708529735497229055088168285588302593040184479358576098937798765414965895667375764289839040518874799281139847244707846575783307103162774857302781847861314944631953214659270741974218005701074110059802841140898755925248457117655729645255359681147335213695611490257893963399046065489591466724057334118819533724019472365818957226310160286912905646546664230413135119352882353116811009484814849669146974540770818944369038746834969690826392942522529016345263371870012425623773292606176333608921747417239301649073486858471998607565301546098630907881249186877616002987417423023981456716037193581548267463544305535514022927381974539748123009454972908295736916486374280385903616889194077654188569401946627692544557087138012652367957545542759839484769949690041011483285355259348401140604402788097864746759563194141940185697409797866808780080897455146357416215709346170080127683281791771486243466833683457366448792411954007543681180311471477863869351671380626898306164613080019663907270170586730156031691734733781590373712504524833449792213323592366927355489945072244167800566150273259934236781875957218058809539993801944104823971013177373311340584819322852952391922858419530330187773337642316792086887839258435669149249199133627402229068845003290886246611210452497828596572252385939223336161544789069981619293404242805394837416486617436441207978595963746830795118267224138069301302748121971063354809389741221493148642713801798652002869302627166642742010522181997461489270573747511193743319297645394529434139421847066383284314812714346925822855808817936289820363381543404404541300304328044583788445638831589747452965827444743502462200487638274042568751183846253886148841481828023771936256234415046150793319156520151329033788490939253215102956953688346438024468590754756829690868348990835942256678484937277591407866158647971506195218089060091897854039582026610134037139432193368717209788278055918726593257152040057811058791942692643032285064606240423889277066147248348730401201001638914360749544910045144606846624114142178824667140361886450247719579416926168251034805494413822110358776426603315953797124315754066533122812302221422030236522586346900926930237546327885428383859506384931701479926575261020891829628493635208944664069624040132951388124460653420129805886104959773738605578450527661668697191861318524827031843372530504309314073405782668369782385971737539118192089840543298551822520261162261976597255309202677468321506213844095251900111957366528151891110711195329792081420585957857164912969241862708679887342886116380521704075329922958920018291913501782112847393337185698538987833750684854412995007546305341641531119598369025800451597944218653027934827491376305132535029675037028540443257412885468917354409310789707352031896399964324887394785471885464123724058581954338960121786127600558227589091153788493818654176015329166781523020336212329070449466952317356637752470027756474544421552258275472753086413266883286318040384286898852388829304342404431890775477638236095037334721527369934027925572031674182053064753010711088715735466117452569876411442531005331647837423944218734765196150050647321223452560882857105308674793602133858635189059950928442180764011390355408374419982425647926608241488121033987047311151750941711065755353397211809998955618681426675880209566355511003436282869504384464292235690357147346314742362371507801767919596755881390557406006420506934311215294409438891128150780921298278899552135717515444592302722783007540679187075440104990814096923827686201521724497149661700035626233393696011758672692511627570553889435377601238878042503651567963083986861084321045414252074618112617267838905953460061258309300592083693086649295409149237091865476051674525269925474778270140977706682330153557672399277073154065954790014105472160580833066491131147262079887035566726215539369179706107301373970112084308326714071234919942899151780071702139927032810641362272937936119170498320536643154346021923442094292011553961240578384065650045710830880394437719020758152051302581968991486519267195360159933217046239848341871980410305467453096732039363156783953897828693256793764058028664479470910131956039416524591994451514367529957457805588017702775734470510522836360395355352277001909212449187432566481786532528205144293866597213990086296091862985860762020598087000547625573129635554741438208808289868422967583377417325093924316373723542884985208258274345780921141788076021270991748774251278360587341351793070459262166379934130039696662177796336469654437579489140925956513710090309783474867569839968610190210275747368643187316920499798560586116634657409789232927233849188460388665372232698667663071005087902473742641985989942007222876625927115058523323796532495736282798682827751188645432423290257281580475098417129435987025093918441580209244542564213099222580749890112659290574541436863594185708312356087455860847758227531687540230799854445989386872623667361854815377533721923589835837148980913411188729956778904569896253044556349344014001583653102436753427401127490860844637982719784838956601242914032868698636302364101497455042191038945834638332822198047466315236353205838745596685930097320578813094047548527690114244730376668855766574520709583865980833467629491826829560075375011858665399548387172130139282304144311272363814947935786724813848778735454488362831946513657486197220616079530703349977342885238878611668835618917008618086758192934374386472379263595002855507968488614852845838768591732691917182399762498649942559125925887143308735196154342672831431819085866829740426145870868897789039405624710069102225487425530620550225412926445811306906322895675865536489606618545442427548897564589776379359367400000544311826815640328378791854284201877887119567600952447965272756008501799602560403718918207453482166243592065588490303499827192874947962238141646490334008312893011307094100798010077549964420946046377536320690241371920638841791287669405851669426963326455353376524744170650367946215348035441762339528265381363876285924005136786712561797083331555914494571445439790524283930034683560553362049335692712033834056241262213203671410409341478700261445061432059355384651316057836402038972304211990011159605559932546932976392229639256466130068394875650471981261977763664026605145151303017878124950957089189071319290600406772602853941502373010386070446888306531090080897667986499494262718572013143945005224224848544997372939692306221595203748219863433679389161383821582484731261696654497039263277094671252638633259640683947121887546009226420235676403530770428180728507840955992775025309041516652199116380569427933443693685459313073997126347786327182398363258435153928162155749324952886789648844354594859814242963581363208747180834121122267745887919251849343876101864221519847371965422017213669830565469447187015228741440167958201874173056067221584720070412869618545038344239863848601349416021009145821035923691007879540261321449903721128076484111435296025163209084559123895588329720036755445059794348358360860163325386909399252786129302273589081469968390305905257424155249605462116160791994453674602649488603212410498342158873330128533585340168248927045453377443893245698605065217338961116240359399637041127812481695562656602786554705487853508936988807815626296214274275109956926449044650401878414826218072939261665317068884894962515665383546919461619823743233103217709547956755096970728229859501995711808629560088732074135548623544949425087239053541187083850896545741483261796698649822538230328961043039865942818869846509235424900936694073973786690879638791297947442028271741534567164727890023775823265324948934214358764662888415410686698779240837521466138698170502853648342378072145232730607381370865860917097221671383788617120318230201146354664145842902974390692819775451434211954333472263773174641171988518932377032198283654029592947026407597561574397880544926109486310367374133434791644955649445091175490506258034987151915098111943094991057304723291579522832300534689732273924567321541394827688195558250026638357846711760375002413320009989077618537999422884140567628513003216752206874298474975084956022865094818808497625938577586679777286528065677860131502668125226041491608535698643708255543295969959784301647116300728954055828199685520435870526557700809538211763244498552595230599505340452270270327233973003920677142253764954945805249639095519981493003039967784944698969905967928403013130247630741611187382332940132752099245726745020469425554247011444785945704883071964074482644154538421698230320455456659520389646548670965044859112646911020835029938791558271055019363365499387443995143588253656061251969914107013753862962329121515795683240396241953888682497714654137660049735718009243049940640783964547178401845229340588535879487041719388332335079541493265182222359925044317572133847554248675725497072304757854099351065784359273993080162126218424332509593171726740289025239229624942357427703290600138978168932319395545900206060357629791106374883611756622793272053777425820285191144455190360169987059111658113342625899791696679142074709570143253367667126348763049813963310396125019702607289469697243040468146452640240369309494101192785733820651221750930777138976919878668487571557772128422745739705892880913509120476176631699375739924105361244745525872285627942760015948828694182687187248220309304635243830347040354639497005127205888507766494721532768104498430153802256147512043763529361718572160083582610896339522406177821195355739720962428837172547835113550737026331673945472559884980717487820558720792301428093860054236811370322896552675646443142982736319399505009352307834425842352026360727377734753336495723548965745715082914795807932459291519605147900653410979618465820068560030609079206321994952551260032614606976475177708187106888293819117565967658598171210459566851695647139807541556608903232006433614834780920249082533521116711224705732837315563431184451145183640034184549849590147938462536146102031168272548958458409110499224154635461686935722886117278063101924453901050157319085285229204348771653206337862860757945334316070850388751257230900066806323773283857599324567057389005328162878491107697216834283793569848148238964196171176094235881489000522435182452301461305694046513492630092717423042012260330867193216077753407599883530911626045142731645522797424693238664145979892381014033683152336583970322694502735728593840243345748373047813110613138119527603945838426724602967864313970050480870748827554156333800108375396460757557890338242676978315336860940903713783848785151132968026798016710661149442262419092379805734992850610956292977462259969479579155200973148820342787887869752244373243920958090875946256562879652625094847997445230115004522785104631731549694989227476837955567767578835793715252246118617748803322909817775709136116766271159191098523959112307578849764677977009374672997845732149158610049477943708320803029975883750995631237510589337977868861545207672024724008006904813883959304120304410261762953251065402525451997030660659931343974991866155477230623035243380733531846055847236973133950019551165667803330621240489105305111811433189853213736022166807944915913340430531736506753801745023545869065987482609265663539387327089327045750371376058108698298286741925651390780617385198219920298818077520432370095122464099078044116013506367381580344754266138809969033894102339948719307127238410192548532016628299108522536945462809122844438330375774281979764660904038747436961873799722514313845544810025953938532138075168378532759205113241544096918114841767272777509141490455554487673647907151362889411504607479181878506617441162929455258679002159776624364589675529079721479961082855325226453193537770460606635186562321277079412057800644426975274523201214195315100604523012206499916008019955460636530570459370150915224308790661889131546206875730122547975077454503513404236299797281870312118649378363397292204230768285454033921403140234064670338138382929538800983514216866761542029866975732945751879915945550367705599945144076429109769663094949871477693373496162155876860352470003765284578786920221877875808524726336879119690312506442890435604796502004558634284084417727474524049626405077995124598712948707769286405840996389390179802994715522924985199166884115765604736144237123185676828841860683148967413915356911431450570494493882886011246624174588029175988286637927473440499185884504891824178126533812507785456501802424090216708059933090658888533140760234073285506484333567605132145864883533376906505854948054701071284340598831222896839488988675791388289303357481813467497551582594419688750156814843168117044848656148110152752768693109152145679723026125542778644456481960365144108135823562771100548500119425509833181875720240273404517503979235127484375399908701137265068521556772370158129475493978346103808543798240645848713632669536796660171006741306299900456192024148298669670300705803668743560263148491810638323175446011594554928308734469558281515302054850990377935557871419485481052268675116527251069044457538299396711102228577184021227494294033892394832499769086191477794183137672427938561345793998896542805735236052106016279328004954442455169671484142672943242174331456931821694891653978854660985873965417231125874851242313926511864217225482618501776644819971572163044271849806004475372815026963140239720053245980582457780331023707285328626582848241883320045008352452563188337261162989260505503211610491301284304278550375251186522059035269600173119927852362634568099385524725117667856090428055919891784006207527515776646941408690266980780018866206007062749664934280913294393986225055890107003378163484033861746270878416653031456493758334841732129402238447155292912208815684607505228803824551141623521862734727579995577688942832439909215466530824332615638174810387560838258620326453480540939676178433171235501211961698214598837565525683775718086179593211220341826908657183948507828897145473234958128482900683099124204621095965107839916510851974405030976601960135306560378194923022544098996213366618350851235397472500334742558364317458965312662268055318209232604615838189539811630229092648710714818548551544441391634661295009114539398219804249237951978728145629458296314211510923225486022238826247131174816413269040233340128694344364370542880917776158603473574461472931558132512503912261624583326150269390519525307866228718836931529286318631120368813526897028406640362217592765051118640304222699743652096552055237042450390612934749470316716842668451665154019898323291734659700736810290830463697242897469646016043829321899117263548028947468520190235084434053215034574303934051767379091115347900125456598510451508122641132734132467214870297587703719888164010929643921871819829575018631683981290383910860633351414567801516210756746892258953965529830247873275943153335294552558311528345764359417246558900335766030733241347757004975436429895693218085704204835105624284079343586309303531471462678567587206957982963131215406383952202911880457605062678258880171921134160841063501619632856561449554660872444845837139492530691495233363429454704116485681934823090499982164437264675835083950944581432622969383783744222611727270563146914115319757470546169233586418205337508171042559503680975389900457919787268846022601435462240536267929554351639717239406539558529508494786756621461776230865032587325249061026571516077427575140099665420692084690099153658541810894554302991922143303726726364189083897679769538111636830798005832896008405609810241318681080968575405012620723388373852601637568684352468715887612077316916242777433386118025435583083148489854664970963711726694569331040803193081104507852310745450472446960995101741536447275120492047809094576294142504376125423050324272325710417507663719478837119662455969105501273734091483677174750904165808744254614986005985505250257648826748619566657210250293964116690696658858165417315223350059612493878605484733753316496336512092330597584286101170263320753852176444651117505070217189187864539095694462657462260718068765485786147984975317751416985797929606933636345999103232835508008027505576303573973082624582641137810262582272320470381600743105440131376080447436223536693539032459240565821499032784624005864762199432620424566748376923354363254922686473847146674057038143965291075515058397885498408513869798369708616541029831069369007064118398822246545937529119208709918795559557198598011380386176879691070569305991429209794801353010108338733204325287120991657530986702421988593555998227658981543936020130674229631858871293359296470756602422743522975470158662403819745322389283464584003422886731653540060814010677714046460496692280249875160733008734597875407244089071717667428833253280407906996239354885457312182540112015248743575733845629936819406952262096608577168920209491759061262940499726279968285333620045976334881926391843251671013140565518057729196256101939610624496212431456600092724141607819703359858166694262129069899287862126787258942439283533016663768052501627196679239027861774221558394719890266372554210748128797362323238918713205992773167585040435864541853718680852884821932058879826597547660640828773865836796482967856277479316106085629985368365862764194028289130597111971126415752066945701028339668901074915351535844110722394107846631638493634153202061095917648420834660773266486489309924068868316583153289116139267552605222383952522982315035832984383167403723477308327565212707602060550374241167420159829836056546272118143065402806373204502190866237874779623337017133682653380593338114308522899468734336470031146204363486616854645548359918175239648194245140375649616171798744106885199229856044012783888574375232807729044878289530313473579595920741631555937561207333830767882549055715459374752611633846924603562541838039656456945147200850623517892338124531152867940176990604139396009826361400455926008924381047664683029729518926453141779435239788895922583750308642310407529883421320675968139897651113537626121755372159317824273642842664864842375683393741927351833501719472000630439499906967302084469010676963879274843219299341345801873361497903781032194056325045976857448236374594137237559329193472730308148431870562215796664939357831499338841201945297259878103358497245906235742495704207825759904550095836513326872493840850377124550479117185172424836881387350942587614549313661263650453086508145578009460641139337203370033912711835309908412392921547575975868589525550779370023532175177375009841579564858033191073056397934897246151743586181981743165850253822150822234251526218298891953026149849510492133885923169979881193568290861516605167316588454453107257277982597761746379369718970938316171262993868502094667971121016596864786181064169448869488300379154858925675552945829605937844953315411409943556986838317185009300753980287036674773947200895535813973021143181987088911830085483875617680655737871709795703472871813576264440606086958616437117858411425273033391506117996053108361174820883425251880724672568870991413319408578384032417257864846483363600855574745724768668028319048139176820566648475392751730003231683220448740737348772701875913667451470454961758645181874749391535587897728130810063054559981011453129884142561876959230095146832586085484753290869065499242809595617730287310532419757955918690657511166754167770129572846783825596990737195865188262973792560753153321117585010616614092242370838617807718524563663150010072102871720002183498489280245883028813659067245486132981659046116440603491010587150692001693665729338817397008357719238323962905110724875359367915956929000132360549626806660815260720295512111107401610742288079324336323484465488269734767437547021336612630531295782879993698223044209086832211464411186858760430275717486708044651051278613567216448185422769789775649249377819518226604091508253667339167711429702992471382658168502719263658395386203515342169330764576977565534808002667827179589188304520145919915542131613036312084822584450731532656131990352040236726996660647777954724183220357760375292434859415817759357003121211858711789034319377642215974534074457700543930337329556207168593984025375097492283910393243387611329884667448169350038848753230268047409108731267358428498183985364552935495792444631949298161535676082790011338942631178216792835873547510407955851874612980920313643284588376937061255829853945486132103062962435048274764040420587390449674708782528167155432704154948780595130615189932208918348259853793665564394564399805596830438849918411067030224402399457089143507295649527415652862427710355022799970091128056539997433763155500804429418199466578423663562586335150283619577350134976736801464576787473660350688942880367249912960195737734573474095524643247765432051774020053978016350112189530097900328694364284554849878720117844191349880895178769926491966096082244713954558700648249918761237889435134921709316059141051089444053541286397847290227702353018059617322173485869691645279919713658197610009484998989629071684862313891303116832704874083827392344053253885789824759819910208196089858076202793851042233440727926925673361569181886397963583231852815169309711930101296838914846726537781328243931930826757644668246107534528206133774683024502887670494395305510391400610208163298152504363180906691003333803336565166696854836617028579482059996914612049372713842893529341301825855877343987199460276731296834371233650744440512832624646342814711455882322130533112340423202052326388950855567038232415582186345288767520155124452830819688127376980506256517082465691696520679572408732776562380949948060866855559149734378690183895969937600401753594017649293568421896297174326930067676336842736957755524012644400933039734101471353974555015287151194314407453647211993638793422019071664573889860978269167792388932541018552485630629980626850956883412240120111462637281638794227326656303145314127548534557445210076262209822693824378864172067714632902912738112484525199025650726569513491820775918151321097866019373511684130588631169595733590596109097665498845999962989990851147746573114555249451907689787240061367736308988742384320720339858069957323099194776191697088044596831211788391356511491219161528003748122041388128985589659524881029148758256442092833228237672969425984758941405667111183761123798678635150101966408958536841066015707178025030008145965583617923967255579571778661010300447524661370134160748452963426567900883944581912143130580734241725928950690597089345165125117764174248710761420531791289822075254233688849576843744602721628638468134532092587301995739142127267226587843986211763528223216337346320333868261157313143337958203361377134661049921108101895950552570141181681041941482144971546031193790249701204597055983100248609666519047282701828980980805457638396486042860730980157154354763257951087415277865668895313148544706793176348160645628173315826616230221377318924040716907329223497451642526582081731260625644116129862899087232854813608624076040269310033129086448121289746306268431999682105309689986004686945576758716848429496562964454591585817140487975421532226862738199192830861318583264723603442031562264247828284055553543031619131957589228235451282666343177510181802221432444077000771250245763551927669698058376009503076004622432516745101394958356008174530293257206142393850400369153498731646222160232747644212718370199963514620305357967366512153992268040311129174159351615809238244281543160103538117488128972960525371637893232464918264154706072002762394180125689297680698440789483704995244254094992140706395704704954902372648520437833795237507124187865946052715850883193412195079769678219287704513894195479549862205795906515674154223875874707697367604079571005629350071658551585576231539493520098491696643485789967591547585152534528298252457436425324410402020747105664386550132080629590823975685497362363018418774528719436629748263060577098875796529592076081376953860397978078544604072803717174597253453081439690666331437590363551180131036869492887716582436002312753955671822449718559968246186034926449075832508840689610416395280856010743075899367961944353160054660886974279956523981720438547956235741579448646913802386324377057484510015469356500670694817505774744163738489369577992611378448981200251953128973634020988145309580170632552426977151662752228029413921793670118350393495235398655964207059718352736974290694202860587255170627842547234993480868303941919948939991936923231429630318114075813244728898895304129383893192621122774881665615677273580381926560172864267693729011079518359395101282610936841239516688992877485501368329344052041574657668794880596589432113110315100938514985133838870969610600500431426925984005611944831758322949221036196242716925829374371147869955065537380047291071460170999571856551280679331597584642054924887421143297630203794277420413117226107646288811340103781758761334184097331690773841347173555223236864669821595041885851175475936405784405639042598520321520252845066175267438471426360789376561632270702598448665981912543665037060837323409273494132214851902339929139537703395435123179874862536945342101145357894814247210072171522892557100682172573839212073112072302570219750699339520766604946180749968711104777846193321233877451366364159906964790655931141306122120380425780369946566720783277833421470875403606985307542608534913556651981594208057165949994753561157250868141217883846650659095289059115702746921657418388678754770907146573620025151973375327179685294799297055724760486538939011716601088770500165712092954642584497188836988067898618684253223146568719690290119012649990336927114323248012452396523737174684304775143157342435562596266483015878274297000167982563067627929505111113172889200920805756589669067800643768034566544871341822323620081971937880567764136069817866076430593233685954701182158463714817113877924382667406560207372667111957222731768088486498665550578335972263363946439850493566264246680388252650133580622466417447110744732516892498207535545052498282937858126453085577900872754539524688230319620872146430828264255066013571905939444349309883879948952541961843452115140416854102929978520466821552258306969406519156038493827832537560495956082763310522739378904405863766716590708810374151153835145228309893258587554509879587777191047696283885829576044916776870345058179101907212263142879561443448897935158033244333598030798546339250751970372984580030486465417534758658022092296769092676188280241564680313787703945907345016219383046932617325607848223441820955344424924978858818541379234325514863000765626381531823542769624796565773837883555232016754358463404630012255441686982838410722677958805283223947912732875942395098263994012208557633726469374595214675761163991367489377704926013005861280914373993903360913643174015430676813488484298140898826572664326619641057163125939470583251855617016475507609181609965316138724740708782873508265907560473628927336705274075173119714491912616216448291262393474460955276423924090887227556915770579668784469568482445291893086767459264546147199673302185315707239569395932761171873307086166068749306003427983896483867654017974676818651472330347681143202924382003333257351551001571916708550050080819935840604477554822708597418600565139305341994329481231562994871733631402146229310703457796312387133533403948503953229172445185191305467462714196692473747508449417252204951193357562608286195042369187207869735660221754577812480955460618301278260404632443060516988476493773771280348408629600596079933782985812771067652130499100779634764520263751546692893564914627082727562966006970531332864009783525897798106741780444983658727379437294298729991388890369179905638364934758301217467852640364371603714005377903182475257526709086682261936780212501262078030100449216992805272452921967110275144533551463201651290169770179955869773464275094949347278723643244963071819900792651361689677928451332209290269668187709382132771073606949061887317809048476952960209676970234399133642347041107220972257107952180305480808741500567252326634253059857200186085225651744653110814752797172386625596377386792254426245913199220051064519274778291771671886094695582574051193639452947335644601088864951435060284583532792258746406739689575696607950383189313887825573273868695018567709471224995196919490477802710931396774817756570827380598670675875034162045594598111974562449610207561760060640408191634534884083875813865087841470693096382801113274539701020609485596027687954522161737665870275782457719772390042748419936791999211549357074498468584274622895605700078337137615686208714153847838906968483929041896553893546143977580903511707128791770199886978237522526489628467590443694204680439271313858897418606265714859229656724797231878477659220026772924400025579941105851422295879238491297994804602605498054688632219065519017171099624180924202532661589500684787778374154453384352899980915446696396332450384948349437103426318804518982402835649787617323377231938251098661517838946615705687346263746174593156906342688095997858906320170588214807576363520919558922358428182295722320573264603790433138151072936985351275245314653620480494823837231515233434516941586002397091688001309403392186964408496212418173648698959975985306547638324789029441511031360923325099445309559039852098401262844150123621083792396822593930666934354878663159259600190561235355463550670775913625427794762474487503338413419389667814404875666492361268397858824052628414258079376697305853165672706824936251686935920125530585043999939448750085561235212852235972910149310378616297398806576696253498671282737219443201809856947862213153731645620839500379870606077163189984227302606247083588841571033506860117267765968219697778102887552528166865841299511118190179343342103803087773358414658572097612354739158198193633265800000570710739249841457714812245763562865974913479334263400955223553393905136850007598363495650533222373663484800437026388955328396232306449989166120265044914952593801888637733824504835132745390975035837286375443100596609599030750455348221684693788926975615132371901836778428103724837014133857057201024869092022347605099008982917613046626134520564769249454616603956610773343864838668929334755450348738049963647326230282795745018461431577549736242656765488892848241661248822277488857963083396126084255236857414286403866614051481238367981767699319682148986583209661815641040146325905570362857879684245520628529808631831655593891301753698396958946200780645498778108055816618293608287091362655719724526161937311681720046602157255810888597990379854063987743704549640762038078390596698690264072331861648130264401575020298166378146275317071834638972087850622146198703434588926079597780300216605484396685879912881869289216358025634057265973352789906957194022342147784251335277214028249342762658098225106197864923839083703969097345541952305398186087528852937512213846312643629472189030215385242676511179476089392713281706440931289277610660049510196089411005471949438956672755105507952395462520130748891382016959286794640222638822340298650029662373224824546454145283578862385878356318754700626175350174597302783958238479267218062122599509538598196610350974411039490501393946852375744129435609819201190462098094923583640305392902592858495124746560231720579972503797994652247264922940940016386404490503423132437880740412618497685584885433043571432095620894786602542740234238774223109143736841672070690498674689118037460959133281254939522081188160185231552421653268377954177744864281745943163772107330331689083880881747323836888695869748339186900016482026479559137113719718967608645504483970570637865900322957401665232685323498594681280281331061343609062497866141112960788788000643277724911800306666965387544027459977950956179937390787994236606242154174230294639174357895496924851320870075401990866543755634744338623128915222289030280361529786626442842555199394546563653791845365561630105471364441761392065434535382612562284158931249217258024669648272949297218981987647998331661715780135826593018134614409308892117359440402721737816215269348085710789396966847454242876675518311252705964962449488754518200666350293301538372300341931463650090491744712988293352994992463848063773012954454644582486712445168510571575214505179260751060918439841404910476492102611513959374493079274988264451236675890033335272884585542657622253194972276683987504308421780129924987552061292437781627459609654056780971329997313124836817177303777186179778746707350371834988022083756798254724024081215713478024122726290448312198031023271866345123306478337877696061748804397608952059958299385447800946815284776844953839397808779685378284879006563262914940907098168821229441391263198400429853506108245116592145457377483104825655409454834654510216741598482350420812090441800388442292533018408339032791203079741237514992331466109390902149983198530756317505930230463492257876273745103291990847384539698711894290372155882258021182141071503968069541703182653555011444235410050432773545475177130502677144440098515572376061647361239337231754914646658767967037489601561981268352150465759815160047050247361128387512738895000237535769919300906885828232386564405531069642699079376030222148930584677381223103913253347828897108641323352429577488845451592505161327502452600365001159967056198289498206951963168033235241149619838292104961315717002594377144049424763502609398282420151208510571238947482052768696502230327232975322049053638961807380244284166175138458565040402390076520127501133734078292510989887871283282040891638138811476892519036098093901210556771282671122125187741959839382395674057368332996939983843150662068446846178470724686290934579079993130808947745386102943576914666854825538239434948043856640734804832560989877415657331526286096653682210953002572031188190152308191792514125736191914344740521944721202835165718042064350715590376884632460471716802551113835690289940851347591455040603417857045304821072039244470742970318144642053348725096228923684947116067834106556654739532672836602995919210428996778578668420678385072596761418622566048922550711447135209558325024207449569602302060134199235914434746767378182998267720913695742376107022670926071627544779569774408635450147233596099882425567099451860757142141989380688140585701960576205300928015772781494672980162495904688712277158998768571775658595905938677840287546373362157951596300849895951736169519533003652085638650896247860586749046807452920641434321256695760190954967396718602564245494199981574746603490341958079912568617610241025292557292463544918488016652363533633855351951461854602531386162102613591676793063437030177712244150668290128272085475699759651470080783828727349760908630943909890714104348977060354942494921776445920506756617960507464102470087789420989892729000395970604296721571952919432028752625915730851213997581915268510860532840474173344603015242472143136059704595543516772795337405789619555270256950685201286429023874597879037258669991846587567537611701101621664711320206288547107836909931380749093241753914889763283180349168769039040781954660507540187456662334289816165894264766843329040554379528630185181776505523813945473786376934908573822780959966921449699297658832559073332896055720736784267032870556093445684783356939937396983084194288900314711303324128350498533875337093860481428240277249412070845555132366485479137414820134110494735454786563769494784421785630704892064231512468689500339692033514382076129630124395553287736184602864812865283252931161033170224030430539750437736133669887456328078974719335054216727563907623406586927209281298272893672258728681032997120740737960877939221011113098055440444102458447610155568231792170768118603182950275808827397560251003269720738912783456840687924206109866156386756883657211242484546790470582129462748880453606813313942088136359284094403075393803159889146056899583650073691029253096133896012871173133527890147178340504768870766078692862496070511993057583036856274759645133780508545832092489677061060441758996204626153212364933167235661127978454077063070442595985291504135510956840156793214338013590886071607418906735944211489902453203578021044978389399575273372631978224476047643226653821223699540401040185896818568785706826001340597653619347654526538592628736419550954351786519478787367263561621484710856306087278700181759172190709876117240496333330101096135741795263308839867036527665645220370000297577738780614803915623834562358568042679408736624332138494905531633995745157537795174744288787373612108188547406965358384912012150888286278149382210817843241796548680436430608428189011200040794286279765603345993131340626837061117406432889243451397735841676250048426878709350828157297847894763900768208809014453195481285427847939731569402415153177199593999441467100735130062940463498729351094373436127644657758224771362677121271591734498092252160884485345143000274394546262630707122624783887561547704297197117963472530477174878207778610695020313455517318638118940638836483188958433756385041582213028568089947881460916523622743029067810890974221186812813216661214941381679310768024123454167191222022988356072841752213848294466711157669590538435592913425378628880805606228101659460743243129188726985771119581074798227080990010274334967019556291588614938917339318751393887640771576869734113541662216191817117006925222538436546734900802887559806178707985924585027231976118194877278110310478594427327033509571732124242586795350076779229664655467140628672808543615097743665205051293018766521620257100911006059191457838197897663745079872429217370066250128702420243385868005337737645804732152801831791364216381013837341029949029286100132423562524137428632629898474390226958834215495048443639803487115058600432931932051386633641701610256695535634258606958345692991219715831472743468644841367013529939269591979823764538809009606036539750560426428952161818513818256368056785364402934960280665898675461619519273611076076132030477198474385157938524158267896493145062760755595143931742817895660252135761607689339682716690774593815549801681211664106705087873443018993788977865665165740829798319453392884320331153646835108118021504408019890088183043773753551151894285095874732572360047016152673119542848712765441024570803162331777066473138047714723138018870384978533968550103987484558041669430871030680760338648189297586961236912228274800995694572239477380899223773434029900739633894535246191192697973695892090717265897634387851769307937682567219568967671765738157702219937508306517588826664150411208847605898261924049728559603555299418726887673974973292974447545582751177659908728672381654329765090932389449312434575597697937391155566057524263900748245756892168836958345132187337396435040299017073767114970606870395654132870715543751179355478456011208866714760807469463594489362665632793328191573215240606704324584477140135530630157483797804071827304964592616032001339231279918958712103719729721166713296461954719651259429500602613833981173095072991893354934454120883499661713900218647452712734062159604949587908374584953983725585873326348071437041813427482982263045861049477967255099360467420892937267781885801037327869387835478694337681126264097903765428024884086587344113505337539619109367474274807101993076811105462223352826653041107916828835978012708035523014757172106034331976008875251779299263459989088844895980453427885675355607625216567629961489898602146186844305303171085302243656200505536892796688305112218512395206318739620492291342297846653938873347183945959138925603364167613632155332670303605830777514448331218819926176861800966446911743249482962001581250769184367326276384102582882049421324407346621160319998752995688860608063372857479720438811169055185315923643177447273135044929638125059868020021588306357497367019394767543969610690023697195440841418536332864033762894031200614591040642416307965690632322422579881767948734091853445832100448633680821749864516108223252522848472340346219704007848696982743471100645164121639202054504643768130465111351062351314753233905697813366044336576646609057681396309753473396885580374434196670314184011845188558380039875444002487575196708881431337752600221494569738197684511695956125368720344846630168175910363775976368723790812982252460307725432191112399885690679646121396851839394404665164145856853448597969825213996684963797717821709328571368254282561127037788695420133450913464219592226567835022408016306330718035999649513270197093844014508784474722357200287361844146226714148687542112681563496223076071191005362427928594207428838782368244827115711481671619632964732875790226661334056934820284341635221075133631280124721717376221027568734725667140514987958145941618468370966185243009869635861928131675977271575557159286270648660377957000368007144783163121020050038355306341767454732005026580806091310504208059087995696414124637398508196853476904680595899784657130144973078896208847876322762024698141152946065879382802614265828008809400214337127619899819604658182467332967786276020363517067148271485933720198779159870061571375060964388030136064585860891907391869374654782486609999376226258593655887260776356946118644485709307696399957034848497715214568758023406790594606322161197796653823398462248858651345691528321057700683857775274320565466032331048410790678438162876705346817901391513954673605787956544069092749396002132037411684023846584398606194847040852897959651451882740870428611342616132995140201014028557681907740909688441024951201285020957707718548373337102275620851993273021423167432578505397439204026509880737120965007577454021047604101005893346217735400028179348270075802219121110614014770353432769851397032379054677408139736682273544287921007128767232908658754831870876899242161976387785139817487856897280100088555848183400793687740444355569168560783943810363904039562167091515721409045777805782441336391346322868131485410388719301919031701239867755725464980619860696707298820089935117653707567533440813844792644800548621145098708110557751570671290498112742445144574733728553542986455942149173541625303394679740361056579809267572597781848067651588613168297732672144872832194070094098907175948571143017355109179947579218592062178796292157061174322774890481810837205772147345993282859945835742929027654739382627541961167656617835080244956576533016681464710823030821602722160714768554597232631905184336665097938393132524388465110923876487312985198530494375145614611782186246312417558035552435507768515781596412413226475697745599324827056180397823111264895863663593652372940810072563547183287032617318454448702801594856801312594685836116573790857204504433452403022120473719670626495942577058529059779150731192644784218108568609846622885656900157621262943180648506189667719634702857433248108202619297479281138462306781794236459463839626475855269727833892197544915733912711471077492144953832543916944877132505987105344881540984100800573083193690324162137135881315349162105335432724345643499792840269204066268050617685057344653349125844798602933054319901647886090960527288476607528171064063040543109612694590784368421716388031300760621342598214008873637940733412153370158215826918789054415818683096568349680933680988050986518936589473006413329862335851482028168939651648454609356874960449238798066078652505007133267522385518084867897410220215077297237217842368888513269463222147730045416536911734775692428818263058920137049074753245402903948656603309776224164267910133061640945513845926505577938300506189568098613464591681560768108405311952403989790796887969963071910568755825846150171615022606839905223875914469797164654054747292279944420428489236912649747988389651637960227706427813435396238898528742399191732386546391598921905618959413550711598350521767242339506473655466581015337992481762125403514764083085194349079876921482169715678583068834403323280857936223119399495431055776337296872191732048826837002598147149300709456464570297377745938436552656212761440225288096687982153316802063227939508095345714049351149889901869073009031550134082486551037324152877977380577470916542709810651362778289248359084367793769635180646565586843062745127897997268134585116321280365150799069573293599713519750361198352831979033242778464838265928851730296532111690441044639210994017717123848603926261431079823446544593466222142709176128181608441038782616815973417180901994344313745708037170690002704077193714523198473473241366301531680470433732505983510802975502598484339878098048495273446219253021596799721549079298002102520185577249468909899822166081802587129369243480535518788787610000828988894157032152804667510498983082168380637258488174161136661978253103012950381918154643631886435962805429713023359395002466784158569197341081836468902977101368887360836194107786639996416662290927540448291019274090305017405893313013757420314691552387230323608883207932941457172658783718489017202064239962633478852973382619516361111807230972155877954462067030699665278908922932250184955492103027086291174118439443681534673077178350441170311698151677642838588532608605986475650888875539731723275437514025999517921139754905972003393014933396832919301421039948968398015609784188849223921023251491471172106934427495866775771162774836762346827418457919203972122666214855951734669247017033751879182954556806851171319895659927952554602918414870446947133318780167906034256913330764467908936220967315017898996238663956657584453755951162464499340482739323302902185914299615673551389780389250851908674816285249975160431125443019422110346181270766771604035627696679011987353486441406673071566321019127305471127338064155272010298757842886076063713403390469846763739598975497510491735458361389277220979995317120715349841057843633100406963247185379210614246492871555566992310670869171081155101358080057165148227755065157096626225915153034772433032975703744749986550778961296061475464748588360304956034026653903695337174525285529073543344881410173646900383082441463850472897047714290795450628604575778086683225461509756469981570314722009103050103868919101623974178968796240472843478628317819237410556449399661828730663603964773947615947349968218244138961165060345505242353435907095333016997298702957696891430178568210510498630288409292654121191328967813808295532490833356308930769349624911027932917736976512623741223075062684857066918225141222088508482938331576579181338589511347610199083500636754943447470468947786672933478239074224753039664334204140400491903636794515487040980939901349648873512952232721671091613718149859526669901549405459737699858560398643962199564148859602056803106240594916879065298607619325673889341834049067739124898716674567243582218914201741614954926526744497640281176968253609316137424947202459770356446119414557282261634501887056941013034613386755414344734238987358626457496727165989902456036512879464357765428616474891221733501822295132657193155318416279162588970583438668617127790985839768384371951626481818629935435275447494275753408580797574502254331936004818095281017781276801142839866095766764659855290191413174766859905156172824030940443131471495217068806415780605854540848327937696330089204917930644220387517387113744014547313695893622428047618841816837038514839916927703374180025696999830709620847445290851219701749276402860780151268248236636670875014693956295579075630188784757049260463133046945473549940297091160512239332845855139497219824792028396065483772345683230298348239693040168181586411975937850114895722685548428222980066693542451369718362437932759185830885697956397850904032992119890821540092912587956434669701677083712588179350522938739136762711026595722044164738538273683245202204237873247323836407328883014818958089620042888043771381092325259536159931236699535534945096657282966054550790190793305203976422843059108837712364578059915256981051961468408857843553836948686413417692332401906283817882864412736759386380252322349823846421351280129352039751787360603273686627980902778868681759907721294952115550878383698270922193615003679486890172894811715782818852499202274490627848017739500910385317292473401789073186204639120583622984382049540585040654420414169101887614662237926037325367375728279273828017468703234316322110612825113959540875586591247067762261838382940416754977775577200165632951961951323190719931562304299068817010738247400544827366504059846989728258253633929371188340872102051913886421493208157553740668033425672127351193637234996964138132664043288043485119024089485124481569190130295057600522225667048042448182697460386090666961612715729745272571691534412102441874905215851147425517025521220868689258853699813480945459648914231118483116695418680275897530321768224692522411988071201062649024093422460269322595077736181248394383675491051480952028307945083165421380236331997370810906777900746322898188099176040107733949404730484213893227205958003122964424168877823487975163181973620459125343513823242766376158633861413889350807975334956880754027656438238039628735032607110440628658306975281724225003504843335677649618216243700617365139371948936325234526375178575756128839726940179936059245078618393848363453845845054663341764876161309349610309750566100442913896720917848113297731837142042728115058319129572414964170146451822214423956789543798661155208341619638907168077305058931770286490813197719996463972942676688943295783258095099181017737392231212087411708431901080962724475228583164855654577786026740124438520558471958711416492165820802216378046222970416000069892600651647886732141770410316198492664576938437983536543144778134866466872783003475432333380172344565672272763226181352259446689034749578670834369216179385479974696443867711863131044501038532283586394326349517785109309465871764584131488315434212656554644430437678895886483099576489436357223670858976725494200728665192968200171603352995441192853245951097553414227934794978940972161753992915662480997881626789805521728276697680047023327481758397112367235134840119607864488612646744357599408992740152781051395780206078213512679962420271058656335191224814962595624943345135401916088570844058348240965654078138477248557851960502952895481277620168011827355488747730036844271083255325615879785089540442595033923780863049636343647657973169245214450027792006504216084380217829044159396631348107990606480096417514382193496011052907356103049867632629966284926243036447734460907210530277615960528477007412498087682333497817048529663400276627829579295563673681582406285704217106250630699887542592093947552130684449694425575329980858547734216434238176330063773820311175373402135481614499160398064211043435915211986739671391314813169227925984478078128215790633124989629247868498184543741179224534429615453277036543818245499070343230880369606645429663991445202740023678547579434842542133527934724676628071047964179327693191399789138140622934011089591960628417983483139875643279505666185504039681342537874316852905364650577721695731119318879059691361996216806177577849950898487191584912311741529187836802136718730884056950389117865793377010770437424897549823200698350779603382215303907724423127134885438829179423298868646007491546828629703576662416003604834388760054488409759206464898688302319278695246255895014929348470171034125029368260973192824477593962114728911311967307037921308880901428363490981389789062507893539398347711184284366330853210351380673454739976385330645457951804340783481540400082101861170573551102171536567210617756415602518157926909139953629192590950591961540626988184094581413596843641941920205581637763618598862728792103488780468004479379824290759442461776683288202188718214900412745005328658021412411411519689148379592472880409927099193440849581349577076450759073988211284777005815727154235117813700650427780869011956910818637309320076850586959889496755642163679201039544064101398228310719610279039585821977373050107762247329129596064310057278968770057907253422248452108628815102656781838109120006426012799800352828014223389446339312409347964346166230448818067051007789527969465645695233147052791499694750314949163569826492266768618392493936744892501394107923943118301019747322430701833555299867531247210012419634559786716371787101995478327924579627642955427846009636765625472657885231193144096229680180667201580667616451485553440988348128449868355739962935509353970523676603994171888734852112245430380694123171140539400208858043673576575420479977734858763323786754789882711942912608583326478302682795012177579316138370541813625687616850807617199886332317792346161532884747203188024207188628166130157087365949454313507192283712875954132733066874926093217464075160428352322146909225252835066218171706318697212169400323632463745148384252815842777744793016907130673120979442711136516283373266411074173524297422675313380344651814424520657190956966489458175541305160420816550833152742193704344036784798046705569662947787071831304271331083899070050648037752134198206870837430199933160136806458602693311389229840117971163635334233863124081951488117873225460152495072486695014469475263547104119824933183758754935140642048220751313416901592066397251754669911564586408337387862388721056005318387562830195085464901608271703543282394148979718805771005379107810501367164625423671475459383595426798297073381723433951855928307720380732112334426793179993357752035173085840619716027720781685975789473553443116905897366140524070471487367341850414774173382881734368204272827798993903175750564954043038906547264614927695108374941078323071642110866936144922370613082715081193114933364091688652065909110894407386243309754779716266004738948248556986896791980860139974875884936943852029418174195684887223709930769960297037670928912405192656631746472969369663998692273712156487099890527795968519421327508118057539808027125602163074212808436832555293142681466370048841556981271878428428413114512382091451056777171052809745153682662997686518237108128189462432860653553033843230238126141097869828654440749805270916026590360737419858932285028001650205780982726161995849475854381891581048179032920511896416387935832038747576988753091310903359509449327221172956026272803046889177620223870064928049797816281298214811996958864174407661351410724089368502950087755746753904584091835229742678054546385149239030672159143989501904401943435058275085920119238508920136455281003262622688846804231517629292294814977514027314587119003093356252268098585156114234620445798173589318379782247710409101726518462818749280770494504719953462257436020848174329894301518476389175362476367667248320460526212759818955260071036832666718581213245123362773027121425853184278509790690514850904658116908931005681169023704769653667942545525888108091146984793412636040706374731774033067847018373618886728582990683748607116031480410006747469529106996414046992137650725508155769275451934596389928744479150309744419764360988431062382595521579509228314625871714886563784320879135926243581340623461677694427649021406740817869123422328945048094668620399982777061425030718504008581593802963035317212348095129101643865189351785588460734433882522546309033602695516120287277516141947010339941882090818456570576592293409034622225530645256322417142702459099220657357196825684492871132640464620188738432103847690996722562472016141114277437677593663190273289733917527734487529837633059975246627691794051177384135048023008422890792357041897917828516300231013192964630516495757702136283518821245179703628816222263874084137393828600922431651665955362897077946262191528465262418774655419122972890456406962048692351174169963657862038552713371194089885772553317078577752834848809926517878030246620652605666704908169068633666985142453310393486407259157846111072993883966885084482875154650723892139815417135593498868429211182038494592887100419886641453286147300065290533015745201383915059659452635927791076122122366721831349831269691304976695476633024963340081554262100367577440954306155209158747654937255954504007514959882547717086104888384871939825044324853517793096790782322096583133776045131184033375333785623236934175776019659412628705826058493293018137548524341792697612634267046911507403856120289701626283880146144558808211084049605754824418976692465981930766983189924456168247281952413028839705373855966352483500394431221327386856686655935177792003977776820922834138556693548581857262562911713690491758308241514119584915333619732080394507970961139069250583766182560665232589825644388094850009376584731444588137608455238226423222682554497977455228309733171121295780424961088271483169478126750805942930035855337996708430968984443809177809807474477477313636012021830672420590773900389161558674921826598891115635478140856617562187310798936574699575486558125271443730969157538427034186032870279418013208294586621263263082706130229415553199393262169217239621733560343260386667672524779705913936114808393737917592603594483967287925804616598732927712949787528978119121040824451234858852008416391946139025417755166295929151097365149961412537012721902475994962773332909541043420854946945335176755880041609623518029647585251214764033475187968749298836075658194461082476040525640817221862118950467793014094582775304707257530368491852242479046521888649894354842725069199960396284729877887323058774902232257345457408004359864810341673961798502526328351282622327262374538040494649921753230173289320873702631948276799573284084707107364925414726895971704717768370676469035385887172323010973985603661187070896020132073685280794311655812289849947054323063328568456575684713907699596000950641607881014414746800910468832390415905664014833357753179507710905300451725964656374929427863872026739720864456307946370786832323655342264238057514641405853033126392884740291614095398362548107380004584625595869909783511277369345687649634157055725119747601062545149612436917582723227241604692623059066310934710116820254039394418253066189832143561920630423091720382729447783025439341419095195067173909617562672039895094096564860650669083855151927026266707657138984722134690396738970249322787854131306217787430183977619656891751312952110658941786949238647858477455909974215945136994043373847237067683263878429092722395759372376822047019279966639163157139733504023627435265800004494592052871864751457644827942551701796569465144941237181816429406745606520178797810956718179072762889475671020222524818394012898454714535967554305624426214385886907772885109830853594215117823528607686494486805071889103565191385975771349779043800497074914375106701842996918517581308445939451649467922322038755220553014413805529027684748667963188617598673831101647829824328319008194696182130499248783195769385649885243207017188264483363501300530605790997872767589328054617219974852044034769062513661461243283639730685299725572122324930198581740852897560693198767484010145674542244076534513947534610599483333945852544086063920152708506312228489341685855400077176501473065293239410954647780556988528222703548432414449748754762110084181909534094218661934418873239215670149395921374375103968138181988623024238982245310027870421407803785368407538681040546996867994064358341306436543657025054451308508815028040736891611708884078858776477104566738640263640470989108909143874201684488358585628555869573781520375371606040982886472593197888466492646943755427156387222201213997315083953877029701210849511994042205135082296595466464284261448183756604590762368373200842108119174064764176073807453803119241973661619669349627788794549271582458425797776919341779731840682161819629041615999862760718658600400135453019860312627838856763976519217911024814707289717466716267701131944845313019185853333138915977808743812433075036048696116433574591296619402900461781687275530375439712388355924411367391532211612443664009908422414945639559857380478798013988514230949124137056837935940440108609256885016727090176295307404010300026848752022540489843778865654165600315354456461495005798928146256313630342951335885770511970476056010639870717023896868382230777420324122626285364919445519086984885822239164527549331800983966372384940920190175085292335400452866388162077487525093404032958030946827846537216812942558303375937642513886582714452061513937142673337567065001084893916426571480237963886783311140887929587971686144937914205008387706190736912936288686977729552176194428243144269722541646723240860623397499611978471873320331484419056751264113317886931950740000225681329013745258609030460297912504577904045651411682572424115780242262091196464523315307330513078309268797055554365387862793279167874504181555207546696699801097373905802570961170943147240484769753976247794568434205795559460517625990277510220314601374570691635307200161835945277805042204028094757934248102407653343144878861843707402570464965309815840383940661973863374125123004390170949633385320079230535833672638877000329380119001962798013492653429716275829699394914325743190177262719033959107172479565712385419342183490574329534414310988921588122885950411965509121933208641592016054284145726603884010093286575859497683039887350715526577527232629560992986585887798076573236026403062879304942884306911284096821997720406719747996794036538377450100349510496063108237046829024395789868293698721484802937506157972768361712963046472661281527960223435636395303756108708134049213799934517681019337377032273250721686086482569446582542258489683541218566431859063630112200317578580874867164598662851203128291097202478476928287544543614916963782339303438231601533685527060568823848166617046320146494805348601970027117547427308187319871871422010151007612155621911485248094440916580046896430815502262585212285962247966915257003081952850767239307794687184128770846456597346735959568586646178356542193109559337033738401976377642779614841238416382316944294927277700607003679553494420868679814954940174706645896485404314421842239961945786414311313523347626979533675802443271415660820083884864230023455947187470149588030787414743377261805794558765138892057371205760405107083520193994560359571948261277424716143360018563541964863838757535586990382298482848022956031314665544806310343340192765966203144945808861545036565703285863379637528513306137344186596635913154609969734234057551732128578920254024910940577638091113456769161520778377967658636962214346984421771979978326130576845442732597584731241350759753503001281828705846537258382633375752463668667193960754087801910146975058774020611836419622674009104310035042465866218855506365173522804373524518738090140844163393887048931010463184053047094040399720912736869903689725258899827781892023216026211059786609667435834122020814497623344471062879673764199116164545015871639918752232448347108886178675242485847597336791052298636132761449915959874311199104512420556788844139464164769972270004680852627718121858121151646210685296156625597413903359650068066226172607489755829188906123449835209571055234061689032133804223079303659187505026956668243939208987485989704808567262343315184976283312240666332967345347291220045034941979481275109654559663090748236125561726490178600365000842068739996441625107803583273423685203511813491382955989388879367729107480919331418668023159886007948703885108111554517763208654236556024689679444693488976774239919878448121169912179234607169738395438498334417625997589631500966621846350577979676928519511576683937412765814228862579805637614116184016137728240844546124006154546189440039437574585785402017593124493202108528616338625593264049182485235220749634387028524073858845109104975588019554822079147249396607807699111837621844590830875139561243479174650820134036515812077128592866347503787664206768178847508795831534433948073592964061385265835145368182737604178248286083783049308557402132165487401437011727267967797712903420507429950934714498264718714249087773570347280414455673148149331691871111155325861592883023332457479476103800854913857794686839908022341297522838252539048417704269640046878290599650371657338320627419396194304984482025980844428440382549533140043593224806499019988138138986734274474562461842912128052006150520481180568863264997822296701873151339105316780860937868943263317785770241083476776214587730776330951125371015272307748227169782604888553209097575310698034888435350102465334251104822238894120409383811773295493104664334053186809057209075837178553222123230948628508960304455546902370806693333085200675816928429797772809370471985670725112399703691626698670225380295488661780526473258870204762027620287093771307826994707650684343518723432561367156372126307533939634564911574816212525964779174150562295906384778045960140675744859733132206070639796767484460453783501654129822552927353893494362670886880519303552757092960238138044760456164839225388224037405283286969160546698307389708404588347693017260665075044844876217203147630504314037651775564854426418265571569679294971599897181237745379090749145368921368809666903967939139919424805254110047039521955900381935668656252683421522220440330675633172741758722090842347446529586217903290251375303391509689665957820143962658173007498103900221991848853680002353346902510688136533422599856554746993767856208511848781502813496824850659041638969019053550480118285404248843553374779803514352310677979177270141670732404877283425527574313617873511908947456888670454467458278356530246468560566338602666140715516064293271781517039407272984904104978474437244060934021228939733067849107933181948704931314793499229865383328448271458433787443006484119989406475956109168685800325478387328971081128940866508033373528607124355525254905879819521364396969383835556184928345188623231642491885993298060357417608021746355064821824203545513803245712947347595715606848434107677572176671600553207418215817099526300588828944066763386214645965087847516144155783497273451714737915021734935425380745569490713200067053058416620810185909564787970028105294445936886275497756750960291069297451652501369136336114645526108296155791306114679698970895031666387719301475416563083716753778445339725270728081134750860826886154848198511484427570163057237758735789650603736757558393504466590955679546082334855342233216915340858189364266744462544027103317180366380066086328365160828389189417681101690758863091864794379546105633125318933856613753877999873977088979338000675546300417318685635699505859764882640207959771825395166816090274422099585976488384269971850148248626064527033984311134859020628233520532747668639615298918435814427498924777082305958385613769181428564234771566038517495305563265981050771281911543167369532727975477926860774465616849606708444041196495754009367067500764318904090889242848547686670779945110374408018696871041221492245059558833073303008156302229495522790410075634622244652959129805272116452062565361994550913916487363073641447926840993584624642858744094823941300275892582263157928004087662080507126362867282051807736179682943993216693010450176146054095996282811858014123563520034616051032855597830426063419489682972116205391948115476993302108362226089950028596475700450026817279374215574361017969550445822410982267169999950285581502770539280063039239289217683312604105785092200757371700418552661914999272614778818195004257820572814660496882340354037485977625476426401687230523191712617414847910999381305502644325457262228445674976624281577403216686980244122652202564047847868384548498004632502100608738984193744048493385869222581316620328941637597877850304189068484675307351186334450615141289039227141115181306649197183515031402398193873492686724427685010996140001748142362963669232056349465235376241113288012544146652026765519916010366063553874156498739770241849577163504665731160456805275295216829845325928517017154725583942827714305438967265252658340128580428890909769817416998027058084039885740835351934771717961179279454530189806027845682461206856096906082819584363366012091813710139236354420036784689104178073711657221979561805663127959305991872893231196355446179919955226477096410968537411434356957446142056647255487627063768496964737838989267158653630344035063137003280893162344084500136471311736371922479131574783462625841848381578138165377209809282927392976486661484390185435692019325681803353466772024590624367611134292168642170753145390159960981856267731310316708002767543111999714471543743075704917344902230090089122969439250784078320628007321953954376909720081430381046488558717812101764551804047070625181840567970766435709279014772561755730249680575503775895014957551389648281376378879559378264137097048329847759050037988426096890568071347183153595276526098829814861822116536196405914362373675212225837083677837598192341101762766970979362734402875104896311463412903910648993295901119665152873047383506743495905151191599987113413845108242219356572177193544459543650332032538750975500306240011688978102581812016247042082513168682522763998784012402844761336179982695057309124061999853796495070906008135128559835422200275376086162401128433031477368046319467209820279005404884559574961660235634544835776893165209932622758562095659449329580141588639568799523533676721823546731042188386930596420208056364089923396204792380544485810373185084976928280583131425695114952814724922433164547806356169404418721631138527204267877662805086792432001172422845462792017522118104630902455229817754223287076476730489601095491131467573534692521469899398775496985573002691413709788983773421387345880226085394150446613924794825734433686667662100974185658642386698622921844888302331554831203440408597920790523338659642844414403880604109024503245821921405992494021345761468764977614122637919568275884978211653997506439332811314248309406510045640811092469795663992913438664149820524303433476831398254137672563349151901893768057560146701375192090809911112619724218144492443391666259428233699744911631935930647175594487179247421519489676095202583577021471406968701702400609030821999780563960870389455731173835251245673047447523686851220258208213690975766848317270321251174006728657495245615805786700462698505622293304525561954723272849872384826977732509277694340164674359039540334043590990056575293228209879995249514578035904472307547775579136329186533641406922379526299866271194592424244360480407900518116040600543126415484833488880264417205321518118060854187294257945832544249940538134292263126738704051588620207155022358421252764790816133565587139646428269206884921432032441124017507589783773298343467744585188606174908111299402139389475825879027714729072000248569887437460652725610742550306566358994979496506779126401859532308881568990566624833971999533907316672764533358598107538368082488246927256657578013703159242304839477359777893627528791519717361403938032262471127016798542607372826628252015747925578560643599116380219038058483625899314871318785158268192117454518057467809677052132620287016158899920486223146686344194562049523034819128316839084577556453563715760770670703886988876333960960284768135437110529984010128789526415707281772369796307962250309975058228260831745488796684942849265932298747137887478827644579306099539089515755525519320997591017993634018293874072773137596582351890457435290781554977697011939622811582538436918323356452427942194551488061491723856555520864184959211314583972870069029786433634988922735809526000773848283684569449456519110519207347900697820498079063935537881809729670125022461112949199552333884419483018665714868255674253919845308050412393170221867649397281772260564319297057388771225068344565191229571982707371167986256319196312856528647272862350524401101590702397518182903309152527512948856300934881652843537630831526945159860335152347692430099482095693051544271945993753184170681733751849918941492807329799283844972980804277054280395368571049458958516583811342974378172848127159936872700119417099824807818956873216008439043177121598786269595250426015743701893432309453735841049600556885933888592090758327947018486004739097255589652557548795376385199182057121898513254063114055850133680506100639704424965092407999675736326538272989805947902151369733119113427088677646314557652451354351101058077049077920822794009686709684536115703333254809146861677067283446958650886329943842770531964552165035826335369251337488509792100891698672909059387409679827518974619155300401476360566775336740071429585658606450513789625505680499674517895842314278616093684651515623090222567317221788308674087838805636014598086083887545657852533597552587282609210508142478932759360154048716780791333156456205099962611572060335406283543552047346509662696274730409277278634061355538617633494112079789542749291251841011443220940685412820174173116915076017121226855248846753032761956087074134623567487949989820398541897013616529113408810563332601141275834522463726201593409080395045697195538384352838868372538565244490108399756366562996246163307805063146653228527761157424559758774894490150521516518324406453567825282281767402482111782829981191555667388411121842871953911481982140420066653733369506641063036996540580364647605326700836940019029317631275526524606352850558955030613240828140153185283330119118454321969220955408724585657893855244536818789417662643140604186841467107562987645027701851001777953657885207614166047225715620026347530310840315778263784254932470765682694599193568804304134973691385285992910020936649592262886055845993744465110273479265498039039754487703426539602238882168610025163585012256471783211770171797249828487727870686193634913576558678344828730325593234503041029650214997748691276497775268222263950367693373794072357101815728320339719993765067233472557894034369261552025291839895742632850055686189311746844386551679766568042975330976553345527380867813064119337883228059705709183628976745676729657702500135643972389355923734189977412829081580964094042908688982219023173098843084238210984030861810997289712180634046507559369876451827764119868214286748265264475892240222519722425108937144662526418354445634759755202130903387014733496688132138177532131078743292886745990661802582424986687502068473403186621268175852699398765368775191454988020604592963205195327778281658559699546221999702744285316697443274865170108022249435558871459928642281489164891199006812918370913918744531798958371231916329299411822123069120956904795202674049706441058882971425434157339961799272021084893467961687013573669730400707197315392895251498232443613000660285139118057982212532678587226043023101917542298802732603942651779221034164335127134570972236577910566114694743463618001611352052360359836191598621744114753053643418440699297356337937283909403474132661306068162547068960467525083946241178632151600758930585956110311699844898239879674327796175558762317175427348692351039499270552197178353823746258559621866368128742929043888553168730678424843742745888151003407397113396675271209219039519433257775650837024605662319410344406546078920387196280018791407064977972853405859251372018247011362944606178788490607202388966004126360883535262642203097637402512831580295850430053446349138095400020445480634477898838975358222795855168246267712604830650518258814465726297475762223372348622355717558649365667092122211043283323796714762260989194891311970960230026134903789364858647590300444721726848578781042314446315868058276736004309463438921406859791469709298074198306917739101165232744555841110741515449562301877627759275752689610837112026478192367683612776556492053739234398935657386897664749912533157008049159580613171962347565048467085197261721839738780362725086207578645761587377267436891234516314685663856481921180362301583222280455599247669863360272908892853909232004397218805645915706633683539447451809758837523442401922189278896722462071265927531501757293767815075061424370771359111964109451582565257706279952290780024160679020787532021017336864444911478748181046216442677442969030725744523123361814492392231772559852254855172655559340482626731415973697948957368437494294266644505053134178768618100452506181983297912588111295536279718304458599545455696015719392926293993275628454124228795166735735874291256864898313053220933605649695809933613182438468218158128763187780542402552678179542206195332504334818553900749783168698110239010797425115633463593667994056542251981739376922399836756055863958903200994865857679852817046873058656890149302580963831021711147367854922164015017550087452120345205656596599703242402763933492783773612725531825953784064633771273294832421185269287181047028805331791423406137166878798534587111780789842814930202905576619400920628831004952079800521894414505825674881469653059132379031064091259911150793823455507150674658352237850695249141899245572264493889440286018084743263925129262238912239550582175486157202428755073544692781732689524054919890298576847842265020148942505275895133996603798229659005019392369185395179924521129741303155715890564702576752318863314615270855882693605006248090861694553000992517442334298689001546998169881911311269645669531838888096379696991773330429705613547233307068903526269318332348533729667256297464010439199830656914740864866484061508909714979964248243570890835141209445015813741104810822319845466356989007316307408944899825272005554537548985101246240680393883750844359391437342550471602628235790724195251908150282094146458673525223891220641768541449669240325963806363596358691127278035198753284350350501835754524806956829949198280206271142111943791382101052435656908959034399588695097537325322890270773776800385405405744891728143359018369846505669652026851642857267973027241006036382297195064129958902609982996913021355036913816123471685399445672747424597548625903471547475474476687183390386468801840514056443153712988478984651447136940296267604127686692369870105719875421379026335164544467543665304653176991166821483925853314150769369978717101987218207684906494664325752122472643828849299269955973677451803618590155550245524801854441748849597414927176619604836629562419815007884126588781348569959462028873092993585652906367855684379076798104100406470686541194702923434158867516528961226965321401371727582225889750883365221952086553958066703352536897359247135401095873738306811231888832728559761168787383035879759979118297446152201546028069861964391245389584626370522923134623769810784509417235504351339343346074631144614334014432164977351144244455588832758242887642119770897950734067375955458729680258717885551811545153601979453041755268669223817518673433334212977144859390645545562760224546980119674166001204027357321879607974662119225006629131727623701449487536939064964325984510883987858355316989194609722240987102587315711961839235761816916485371001786434494561060270971702030175742179526339053511642696574055459486509099304004357584572167434384938778417117082118207234034874983321664220743082894322273181585798419368597446017025266560834549151626709458599306739883158619955061996873816513388752337611761537721451114840873560138790208337556743632174975994370164240682468940104481407280758591430776187910658442847154426784320849189846500074798478906506695246601301218141566586870541447636175506222582490649436433786089894553283641541229615688481521987318202933094127644293703123803269870063243148474431063042636385888058745685455090503960523943263174097529133527565698405392852595433979875735988008401363517666303739490639278843568975210346102606629184925314760700512824392260156880875092125236550045281707259036018763415834924095545864066187798327228696197950028203941911480387749519925131014110778564019025347812192801205393803979019714823619268278813950336662700319590397638531387128307617028255598499790627343002944981378752653612442683996780723507469424479051167975519892919923081587623841536202851959657219167792619621634342665984009084528851574764790303676449516070684711614583750414681126102828621363256746596328451582462686822492138435269761568694586533052763086642284829392406741818241666951503147881058625320707352727956921386414133790721491533249436483462388609269126907113180898186080823307824736461945525332141150935837934832287485546551609260156868711657868986577026314891012573230228705211252356139146466952890947999051230549239852083477174731651769379739257519744083693782045770242365635118594551982436147705812140315601049518130818810473023831659125804844526626537854499710765521443252082156656901848896982124792269668456400032297014760790563422088370935712912429239967847214099185784561350210669072444112987019493622284111001901858942031036023343890721610158574292888515289575303971848560343176946424982644583883983108644567559969660525747987082006303706487090900045440176759975170292256241093021303636468817191222581271643500560431342653773612532746221903382121009024416879974689638190585068435635960166323663204412666622728668914101637519238365612729350385164103632328612468414858623301286921825491721745935628549762130000672151921297700530639223847180628084518934075845802735854341106613814007283196518491981814277819031617452704890453219458208785176834349481703153517360332025063906529844289976882028782057274687967932979341930749350710766672697653313923235081560299101535916028191585154335574965711391495483286975063973062460034301903540589625551649491055226855866527506089508224831998690938890129117682688120855126776772054831033588310979581452467357909994564363701130938777011941776190880583555010866021459793575557714015298411747770357871588810667244010664501996905740648178531654844656726704050756199147502831078434010288395023659534475174319152895510909904730503263406882302823797129382970787364462533194997226226409738438934047364146365283410555669532450670004049968904129985675680742941764224754823117519950824096416651307246020085274996940290651358848763118148421686996435270781829061786386856015792810178717621715798423997890438262882289296186145400270922771592217195984260084619956899743394296149817011954379280668219861356658099378245147731811767456509777993663527001918997380344443352198867017223526131605428717018897736747350950792538270936950271538200975014258675062118283888975731999208223946313187151056383238633673818735872716061130437132979609654891844384241875068774072142585083447082223495324463222640080889380926074932334389062234614197205020175839664608249952073481747434918562300817423905487220856728094856689524737109034700189116521615780904163457001773934165625931910006206593220126422805049427688647465453661766396306324993530730840364682588379184206248394996597667889772731640558603771661626730318435174032829806686927943765689772175829432905649985075378227323328225695087781506299058346784579667940434023266746115948546096535954797160964009603637500951252499906192360134018237545495178070905689139791648489042887474576024508744487188444707283329360051555706725032902932594215393977961773061209948341701551793446669716149285559624431070268808030043864018201788099015178373582867664684961762232380185533499416073529694261239672222510479448607400199036562200548222444707296108398645496261323631741657223738725458029417614151460559142011091904953291759239866382651400728903446217833761886686376333018499751607814707817629841593345551821415332215404607756655309982518540623849731175044807317027712197044867205285003907658391294995444511357829852980309020385961907674845050727014744171990348330967971617219771961099621691983405418152856858520008672964955288090534819280697056835230021828976842697527809987740282631927045586800216645601391048493832296331133355328100536998869820567153885880115443263094572223864235088232857346878525567906587149044547711577699840995547299172004777821396861127383879826532272247098228958566386474996934488011956600453853648035505384847202600192081725102652561377810568539764325794584136547829484367277828788490659698331196352033805579590296303176729978135151388642153302558537869530493507126550469174903295683405391999866476754752023136729892674385743048853904837827372132038317080732930094809796504811535257432137224013255388237192218330143475223840912840027879222530732502070711160329910918600598931765512063820673309090476090216652785966766115548417196988941106051846650863404759650069537819818773749541002322981320850541863086901563278722833564238695948249269745131014315065737754419786516029099030081387442290561491271448748703839571272256048875590185168343434696922092613647901292562267519129195958561865768243499733437418331099079258023291639009078163852302462320698630096399755761409761707037662933604243136764005465316376094667239115857861054400699022270390532459300990448702751170595066764444589603928545952341054643517697180450490996968616878881604501127982677544002751852542224243178466804177086521212601624805696060915667114413953225779672977405402639763971325670881204396514299999267430900581177413916020129198918222296261569734142360591508412414969411410663455517232085500591208318010758719094810131625638676539900237764026427000993680358637987263306378015369343857470294100654061548632248258164052576660900894285590519067389623697246490603468689880067034391913208223574535688074763720415970233365524165529483080387388232581976723574479247706996856366562154594571319075810317038502448953410497292604476012977089163998162113720147049265228324420308240611860909114562023003875646534585954262275879647715685535742790948294148419754997945016600266035634367912460275255951782519414868649210386786107049676473657550517293931292328115841347614916848984506053013499797146374217708721058234829019704981940269909363043681227096953033995370640726961372629629709652898863105587052798831771154593160242655652292271630660041058716207962427260413510085273291368626169933478588660671037582901753527965081019271006082176609955736419570115240010933626355551323633608141208833371589013766741179442586275289046170594212821380536084253398258791105498603577781762833477265328788796707971488225623332760136156636607101119657357116757015004020000313174645084817799158930699056599492579587833656211684459161910309945186603146838036362164575728009188599005636528845155869621289966666520288843421482475491978847878293405465955273642177932746948143525810710202498612236759544908965721275445949555107776999937496691245456091833607096444976296603832812841897898679419028174942988020359225316337970416560111451870646618021166339111758194706147853116868222674208051541053311555980847505374961809267859097334944615521946637719085043809558351019575014934753088143732539139629755478059885983268123151018120464489463784940220676644450908902140389284201313138048652053331126006186237125067737125064441519853141010907147273556997980804559269269197573255734511753675675429558916949863546926950287103261183141449855207102013168560630150811740633270345328730913962684472426771239919887252124003679046591061157549304796935150713939990528110201791630188965091348264066468906678753796716203520336324039422114218205632298062007391426403650687717734035701661942584385005816665412241495457252980227791691655357242431517699580212382896218999391807664832534951655235530903855469982678187475035917885126605202109248636087903990493887881585862926079257345836099145743696338500286616083929244024029459520112476899095350235913392447249055647005694886191791850027098920574472015807726114900638178904365793373820153049453481541241295890091392989827756205833643854895685898160082915390536334938613931429206583753604204699573273951791398661725812599310602584473596156690561932633805201249930863210384055192022475561323390795545304868678525324555891281619437690871138759178681578938705052617884546977631106034879347997869179418574725391354685270444564103667420060470531292953474755789795565124688973980614692584589589451012454290087186557419310692894858801834700781625493315806788506168433011897840128464139226401211947273937109134491741355699314643972055603597043346931113668236059824378547564527964202499884904245152357039278589204682633186628041991050908431964956388386240024942561642349129364850483770854106858920413458673767512027394795236647969489912602288147146930111077566008365707380978645737924784800009197554132759559119658142224573299162444939887830077752686094690217565081322944679223323552369267269997982707563603166141919660588027886927278036679745077448729241063729293705645194201944240628764450652855776672604107573597689006716069598622292237558222673481904424236405890750853826803414603925009763138459238361714865068624030498643579800681140768417653423939573594197848410546016729030160544482297279339144961284085222673627656665926873264556786718187476776963402640716041141228395105398115204054602874952290283133352692337475925101683889341179473998923624167162527182951254751894868042824763849332487804621332094559594418516971756235483647652939424694608281596361412388100008289202500986128853991519800141008807965161883924308148915338067976552181623445362781174934048912063605371515229843848423614109466725159830224522510318137845816118240624816588557215980880878813046048597694765703072791298723332820913085863326248134409001241952261858892090857168106310420274624350354401731940607883840189987400271168448425827005252520474570093453359058699151235098882704927776465096844718720492371094274475202191872105867825617562518869587067627321597265729121007318344054950360375402204703737214955118205744918317857989114902732591843528660383171231710791121419313195070349537200319107031151059769525520772375895614926241868548811495359877947332691920789356505083131356040381650168183709301096748712351248826978206871379347011726723804254072870463875067238897521526670776300005947283223721228658414897872224543288900330016665543822586467626427298314604561919612060164968124806046212869131052456324638212907118819817014029698348067221130318377852660595852175705136453213303840036989045229040714055728773780828479388412939973168234766042670313442286875362276351587670916319006293789753018355987224752268776585779719062540854042502263748558766550011899516978661043564297051733899986152925861490022328216763191929868430960172660352463771418860938895122151784280955839385737724790062233438152769754549980490897564147910763328301163105066059530005038848726401495109404061132036085294416817442953616836585777564038437737241876777729046197670539427186094395233537863830811655917179607728946118874385663591295766403194319144531640405233754293888729440896230814131055079947106545270756749864796738430781013869754826363188509338579550110554645116814108495593292901761817136917741634277802726000695547068511888080746328175636778558170034616343595856532606976731499507779608275403449179674693267896732263768895158761739874204742563600584842719462414392511315435985159668443025664739727434400212457751626131150995457798557783405018082293362363467924498904155768512961930386325661636305125176884198031543328080388262181872331794428478319093824757784462921380674553995154428062227132488656152489277241701636994129784465210088660622596615229632410911092785792216013139148030405055767694142717155205323015779157133810316845587410086378060956742094514807347556087558799972703295208420367323559845816787991390663864346637656360527940104658225113692260466847499172503141345851368036618429760541393765942704246453323977097343194038397351851269722240182725796788199259122823449951170464551492979718994133782324353949291639821652407112634650304574018299241240937680906616946938424594606749175604936008898431830389549142211319314269484824468049073208580302473156765913242248462585209124960954110154636762508915907685577772582835053425260583362476196608662027578179663191856130835501460200284648764359616845786946602326889195231118077513822963325230336281386078884019600413584885580875001258279957262198283063822115289267424992002575576804362232940734464782959615264563018670672177139075831168658819150090056740753305830217637007939137798061611853791837593901110749369687584507878438550908104533567815692249769330483578991336678828340101138053091138307783042643987431080289270927299374699030132097850759424194103595085506313976714264723120687070351070963288479574634583967517592144275057290264819010423281233147552001555306686435295912032177923999257301458676557437394700942470873920333177834918228071475188983191807434598685255418178497645065039799143896809930633830828224792052119847684826783313665889961791697038284881948514727637491344582328835553384690686015503738827428500378648763762085663093213701095938988241438049123041362924837650532299337156867141001425306772484374844026619442985789934608388595107991754379061739750591548277043082073177530564623300743176796959448190565645852602431701854656730766258453514466084473705394821795330206697838176155494101814019002058210979385406618383860130812151680190865377799968196437467952937162856848141115847412725877541565746770013039985143679649831884516635114169953466237173800388718740797152691411749499539880567333014667437707942647736778247009782090931961851343062685766503683197174838064721637583397132859977143906814629269180597859152492035916772733240632898462312148892163426054499933659876982501112323219870298274780457097388358527717421903946110655421617714128159196496949347060626661975621998025820836280354066578549107543477944804938696986550437817843651987310125980028624770661506886824933381067673025408401234740122931452121639837065739072154754589980538623443884189976449993480502570284527440842144009326436776515129498785639881006420224924805257507200595069213109695355114867054090867060316414620044541418461418080475408419539016524026277029683632164954963835027075107750439203137195267669330183684618128080253735084971878382517987932561058540610558302753293769237531794817964848692187756537205320328925350921267926456306961392155134521405742682988124080237566333474062252650681755292987752375345824221112744149783681167249065934496102330785426630144986084439497523587085667935212742202439010943514838619250739173881721748007680791491161932020653422546667659448745447158331379942794571333754057308007610671236656633129195797067915041019540598248331776551322161835133032887217172836992297309790204801051618856876789021899527815077862869490195559140931993433230204355707422427373252723327916222315895488050190727517116365750835218251787751175979802934149515457404762295660842155800274603490573526949405561502149052908014575668800883141560529624279828823279356362471879836438520651964671038797265046628636061385122049351464464937046135899197509564043386597371532466433162760051276922823972789478858058941250702994348923808652285075877999305862921503448086626770610325980898164747703824154427487202722374709689357607805880310808568681827896920089768736282754599345893851172635027339851930303743263127034498723843628563886735168316306142592500408205201609949983814667329432901627612790315768444712758863525015344628561697905868450558675277274362998213190784611868754960899297950610593327772762995661174614728919287828518857355846991649062560920248868773833305346738214010631288119470505854440611736340108926295499166883272179449313923865168792196121883385487328129960374305694960125865569724297496748565856575074391072863289096937109775354043609540055852419214978754645926731598146172968922343001317350218978327530021504538830406153631157743145491043852851385328944145881285647834231401597984393695399534864114019654305320093656851546811944392744200894279659498587922655669310660216057836102585724202056244737142438744758345406286752728604568145943403119622244127808569224296261727220675195282340953035507852301290840029045634276270193086307614766183477541979251265042297417090181852275269454376454791857343876746350300025653355319099431968968942379688019436187417996153938560199577235417249255458542324196753399383236079184462803588683038310821249404073837785308166537675419617753593755995023495461361937969912877512865875001576389265538229967867828804292246905214670495608434986319001836605703797313079167469379854588673992270009799302136996386583340595746636483070873824953440390833611090016708597340991201733276886246093385278307013906309801682069988328488384441678255067359241779971123151845557409094745387377160489744429903404704312161746043067911092474740611505360474934675758355924084667899468479814087840623845507395088920745443570831235926500755264288799112665553168330160043014380362635160939624018834935838771280515091025804342991617072202402546355843729330357147469673649312173002690307366542439692058489572206970615582619446426055809215079302617757462770531098937760829649459885394515034649913061957101511473548226912286895767882151569508658826372196092298662060049158216994670571721013880762520029494322838374414906555549195659994594227522607663605649005430392454119218680257193883257295279502585002032617202098235013099761507054886250227990968111588393107780468355617298217678492806447011228536294380740001031772951404968269850178499988790548407211929497135066806078429792644777315554907684152191901302925779286806605074621443049187351009701013267012065787150872824405323498195062988808079799062857056736974846715096788087711825897127945268332277780401923827553928436702139448661755771473586482089959683548852055688474057941107394575971029300648033549095987769803806399777586918511666388537948112256621530653392013833617987790789248562998502940071516934876120278910385306824970692372179772119057010523881099843504994916416896500111665267842138474669926569026215744840020039135319335129012668318886559673323327022718787365696563985994975883580880138945597377119746642247416613741355064906695107586618227142917515757598703565017044098019974343041474960844999587489486804488665276007423611088283843956137376940216661879385940883335654802963302197027946910266082964594703291576321291331321073959885769395936861882863616814521142314084699624644281726904768810804929174665373283331739839716354918909319918546219964345273117322025558168407614278913691753776781152866884592405743397321649519363995492618195460420750435158531876981710062126932309501154267216581900583815370674195818653514773251352869324364559468851438189373868208456868007007019543859879141457090208262973720527561248359445027988769367627664302247045721052765088523461145889541607791349640352589496470437079675001857960069297178690438648346062711803199718623603549576567294713865507602728869390451022836180524824196138949196985005825304888764875097132775785271573216459502483314520125620846356577583325399700422889871204475803508792929016091271754163694333987669942574242029430699587114578076488649475609110756135805515769878433249638625254195136045422522892375357341080962038839120933597972109618152788453876015624618360458004763552967804894227684772288977148617234535337987106823345219438246224857486486965356064021640032949370953771579242983059400248416120639548162971198136926279446645128037453782200862665363060182443569238006513106154832339546183775824112830435514779643547733527757771836755016950665028851342997894085635348599660895195031087507294419873535062462746966807727814483552110417205528970065174044249371863775755680536141917985648515890742408578372214882295365833663268429551137463546509647760195181985245007212090877534086961752211610592640791538487056363534288141616267119969127893598998014347483887173588978976340987384183302942471817551588338614708433849728680064391967392058712981533435696305944608572467751904382290906649918854323386394718574848579019386739237207441477353274757821899798645622773726925440417016610915268933257623766860616937063078791010205577420201139883289413132818984631599982062049084819749408593808072449361736174335330788945015899266490700077177159963393979463232426859499872567316820314364477425945365830810521458768227041832966951311134118289545311935572065744475562259514956084950833107511691024150289429536627813508147723628917477278163515967770236119674337888098434304499416471764383409426550953110005420517141187157343851957963568453735141131872900580141812154269699718525477004414371604586742474307888089050646236947225369664892746140198406493140122644428137266010275462329163330017291147625722867018467040643190041802523096872589034365985536504225552372519263959913746919588017663111492366539616383956401950653221971102523146900330783926599567835368690956079860049222561214851955180222405048398158874362009387428566793933544488247768957059958185716185417734841655359033083802223949441730447508974403599377775814079948742360392786081831436574043662245325022989737665843869160989535896174597411740295694164039018547753522520813842141237951105706775313067564644436737747682404186517772994909206779244215834211205787145607039937844809964122999061824233240208220076837419031652926474262432779975907280508280874943583654756990547935741601541068163779936385088960582273528402104451968170443331243299162397733492244510118447307277131705244705567466902852772803044535236419885078957411016530645814979921560572830319519947759663268467705400684370365827828648953621887393281649116370431108926882554144715145731503384117124405893392398524699859880586778749429835299170170779025641835924138339936849417495166992181078138899021987309252259677571310177892428161974131116579074094554320480761982545454538755163456357195134938806420305866692143798427631843692479597770380870071404506831795288985966796463402006976559253299044715430980943704337980046365125503160940995700587109947298492293185386205293816940989431337204649825041213012116647910911892761796340563693631599979917451278055589597646460601102834379042771557748891906761502601248878695210797730591400710714360537001924896620982623767743913741137547487467371995339455529140359219659619131856508467057722207012301009107375660237331064072627135152412551403087247860891916620457290194108427284573629649387017850563749175758786533455551239067843801708129555296519791998913980324553929426297395007147976247621296333123384117794955515839228947688064838365331988298740542300818549464909294087765564698039754351769701201024976477477395955893711894053304632630016720140638615729798552096410595460818412026637089164533585425049663134929482470064553192705281849036795258197615543699166599086538205483313922029134687965662467399680413655108544745811397123059174815590339172610925741207627851927490514066454884588741983050721866949404178680133349935182568608735209484486190242878614661272176215089213975173120379216612682057194217705608755824833893936840492822113115669079299913171182667651162893885404946848024885930258321751604823134131989422987872075927301102495726438782965995805129534565087922599539613783408712341055105904335357540037204001172561063248363616923037250672435805063315718223025265717318271763860765972154875385549455926316088002022100196199043458298525103105936163716437618311255989119841035452957771325569986077343856844373664656601205756435621403501685361842942916423825741987568616297584964528091141607811453968087310859117898945585791272680549984740176742963549143271720379154718980622492534664968599631284435442330607046255769973607585139781970204981622127913588251098932674327850946817516046252718721299044498042032839971388873239521164454522778740174731756580011200776032440294736371393697314610061133168933112545405198309961610616515116819233503646223081378814703729217004526457469342894077229320388998677759998430018986204776418833233773767093759300368413154611881923670610542599926368999338010223128816444531720143988032020690278483037353436295406019143477521450321022693294876523304261301582455153653768536841879899841955253705103293461766361558480481028724450474032430278816545967295693942374970594959345663093482769110912329066962047556936249704257681714658696105860358093341221904903705340447744865273767363795568480310439826401552987675475738806577899977513602183207230773574378971127431064152969884824153682390657287286359937723057917179883571740408136401999119058042835365038188612384363957972695281656601053089810216844031345139728744729904805567743169603547629085751003986092412231364244545740716249431043681216134086354981006224601798505209428506039248889413037159523997311452367163134339140281224078231638220639417074032237652790075987793795129481349078728421081588886030710653219828215070743882881543073751103209316900752195361093965076124358570977369965698210028792031699566954918596236844311585410051500964556637714091975717562378729381360349615370867026718972082578661187489463869390002898191021150749232219809202768185994600498060455701290357248647304843676196776585807232652379851469456282605770442881484889067247758012453534802349919862730066576169137951675003739120199803467039252786814699658335489277743275019637389910813143889663378784728248730982613538275097424008297916645633772404733418299729017770425792114454745060881755662808515086457528662387913818040099062838740902780447575378267476884761294733482199863612164789147559407068256363884880835656752636850807792922770065830395777386011447464160722935862496023390857069740277788977276585191655881332387419854457285140271218674712251200071627792567269151110446038630219473255201832120796912260438255575978737216029458566848698345781181875500662011019748006599603409251899990713709545618484573821283270885652444409979519945971215087065840117118148247019025079104426041897632004191347970733952695366643538636581770053812867072247412267935913658623427316490737403127008934627375834528518636680895714395749799410220416254889290695587960097449205794585134646479616448349375037389989399043536158070192484379753638838645719675849892922024806120648564066702009903865520832632400878476971641402857469798191438449948180102729717859841974861743488411373868108773584342465833187371770851950911329143037859304703277742784212346479245619735078012124686138392511778367230535755061436325477400851103083736639281923232598970318639091827608425997051340900601471203179863130729643113469900505592390460200082041068081941810308946830274381071082870158814287225965715532456833497652800748709475709356736852249201356372073978627260953171620521188400275732990106222592451505715994746866351407823663823887818804901024425404195859437545620948758333161650120554825502041780565451189883093969298372695563119825643042730817106235271748823993502582990546586636348984921212023960170257967195910394775282728998257063476680409984002366864034583809464468968188804682549621225211931944260754045481697213049306618149134066349184340081201742769415773894305239216633231728465459189517949362260996850058283354650347585141682123022027748107310348138492152924683173921098880801003731049230542371011239535376113466629317638764916895160026845418177915622570706763455139707512817246994145410389958979588882010326028227988968667227410795435779543053938071587879188564192234080296293390108132624977188417953297539416028936970417058736671655901627755795150116624451971150429498751275559812007372346674717702875150168252350848952983712547034466597468549435821190378714711509595780166609642805820060308070598110895913929053136720105612774401144509486482341193716993166484332595152090490292326700422263823881032333610657491500839040206407628315083975663930553524697559400605119617863446010806471637448003580178531233014532016174110192212113073203301984474155493481845936748937211038876056023589273223795693038896105515927337754422184191734121960263002348351914328087880271644439308940192908410083848905922531546638615055160259019822548106188251611921869372198400356768108039123198504980202010247923663322632597104042031321891677034131035819313117327275746412428026034607149756475156858875739900505962579323818549271451600867046865229167621514295346555513298496263855775850883926745903202036584513283700520840919690309653029102568506582871696818998303948808076112947402162396213922292918096263829851785554875812440420820595691922883376485315325011410556797629155192571477889376669450841808263408319804563967124492856397399057038668968030709319831512462083204857225076858621477522912995150199143251489962505125426273943790759455118652498139026110041309507938573515108164557418139604480698627815553191856924245386406148729483965949824580640861572176840145186505742290065778660152374205778324247785135320491670059893875113062665223100237100148912605551994635149035821407903073376303283206214545210446624707549633313355949330164171527037838196197587019415659621533956534430045711057232974318651261209851313457045326677103986126461643845022015914367968891384197287240023459343318239340385272617358669182947275071589345288267766111184800521273895271992529250802649992147052558156281691219552601706404665485221176447680874490222157942625739593315220905760024894280085807446303790076703301886876757057288104760178150615687423732866507205243616242894018695569463303989895345649295575855801664696543966927151022881866826120249873950818929389173034528480592443502497797424882041472556992388055423927082653776274457089837589624747604178593573408529367281301491686959919944620104423154175502445983785272291248229032631174372829765344070784703943163330715777185613330362054189368362106370483136498457713827578076228536915615832671567307776140478092766301552900217929460249662486099660803309909397605902036181081464905255765434863098935589120576096177180268851408839257016209947623925681370046986745461543510671225172344262550269210843157113265419509418709622122421111917399806698552274967199121842058460273594763219704679997295464053254234068580858933787753272428085208684498216331018931279748649887563908677838983553799129547836009528642858339301642633459091373539521709120950107282501568015653294502133175428206969768615168178419108620256767474488135741428707041791352270207673683142540940456733448463582255103794683645368324890498460912136162451207326884091189331171001594967711209542137556036397459750323216803477346951385696927216170032330654158634800492439532965086575865555208267186934068213649362049307242534953719823024636138816189964640067541703131625576031552962686111515317001458857577687387765226534228677999309070692703585704492862487786157012223552743147165290571489337777321238211016386592702643429198466362752655600408452094859577516071186007467741023328000346938620587454241528541080169734420205950802473197151792705439834734343497301854050818482581483614545531162212606438633885338487237174697876491232763480845162472452354412725561942536006917171790164057711813660106628637278479437996502714267209514634166997078728303182300829919993081093587208070349830858932899427808422266770127727271025187711203469236845717612316228779367513169448579513122767848992996163989558288627267332578737304115889263937547780249176537855521684901828446310439097122817274216634213470564520807893308856441017620556717879486654713616454891128008406731800256030968734893884317119141627025347168067953831744859095916653420126213560683088764777117460317926135915025215523165248216181205267228339221233951900398122691394398666945709374339562731869330907429225253121473893325694768254669466058024845820979777794231784787426578013716876844431791590033660166203965586422740434665409041829738324563438529115825382218813071614126335629802020013483464728379095934578783551086085542736089215726242865909456917592403559143182283576648798941691117241600509859841474094253757458527364367835648923347487687707658436762889799894704253593487265597185546120918058254114743112421502204094490266376531088215739870317009684659436242442972244351710741237952801770033374317195339490515941224768559828704881213790397442491088902560915726976060576731329274934027592560756441826391144262390990594456662873330843653224275307925001697238034736975310080007882935568054702848287973503237920590980692143852600807191284662007772817668690044193165902801817875881426757786525024247195026585335458633042642872858437948001858862465206369877877290813923044071166750024292750072139746281149683620231656508515124773936676684597659043662270575113581091039746796403274682969863373006026687937364528720548946696841717025744458110272326291027328166690684745500948204065626506862327138680260447194109524754389465361863858530164899044285609002946256357780850987373968934608055537204677574694151662690769620288478656848782928871591955323561928142065250263289908479413314682965518262964761778009360402744696639330361907822676274750196161594198836743783071678031343197756353042521269387930769580678683263348372435785470114850752370906367649977889840316471547175304150695040784532548827468381657765614358613121938008566574437524444640399626025412611889875271273446134742385061093585217753269580000175403215867876070546936673227473398834064593671341116047452572353938999584783508706268910108843057647601897119323979504843148522266043090684740724568624009341165428165429885421147886975709101859533214879794285938331677259593610667483910113868690969998844766758338163843789190213260222553658962910969271155557172173863719139434957442873674804105429146753428024432730187410617377796669043561887286728156758391639039970257868056067287141031662864124419712505231834706737684685690243270190258767293616315313169308635329594833922503235243422126183876525315893244967329634161659279542483472999188617817933119183404906018192862288177962077501444720274375550060062843307726064390216323908790610107387217198635750323048296595862537226397249376321011682055427668488879837899364737022148388058519834724874239590949705511508155930168539324435825903321660416357034933551203838127951648168402493304300298725122004318038452160910506559430665078789334168035863583556379519653330838988869084310775947467533514545213089492903747408184281186470543083735987865221706519357062708265251572286605346240231839718300750157881382595454108064827572775746578271104251912976303934471109802049279577650720906036781630339130368578438209420463644568577067450458197843684310209586798258462238146036598289217609705618212886951696098921597859127550745212581452465916754556354968824856157669255748174019845480163932655724604377904214706253620189986941832708978103143833784724080540292014098316303694775846390555406612328221029974043258429523442741647021976253518425306124503043666856946728779358943804580547511333218437182826362300676167083094878628381906929079957565319721582131104307339810194544317644316804340136201860593873506588199761188308046959760041683712233783502350476248046325006965434222501153225735810557493838508050633901370608281504391706951518969530393519807441925044696997035192353959400106168742090393470562296297277042354164641319332615888017462446845183411728194410118357860138758082041807750546841113983002385388016027958605415605849535316078752451264079338101303301455707665271987884839037311665100368636755570827190480736623074367848099485582861556937536031563754003298344543910157430369112801890437252948672479628679672128321965076535991292631559466343712855597022067216614220383764185706022425669998828984250134978986081827370169246818144418784571556738817317304871702044743707601706142307076545805698342927349754117454580020631790739746213453934077633518430679974801537748327443314815915497148759587042547506919963278781956033758036549856517359381004325700659749499178430689900943057419807350524509447556078454779116587934052985791085133226462495119750818794812730767635977209665829058809687637131175095192986400401007064695601185264234129919467970097171859184764746247011001117710364075707812098338206314684345889530436985991219376612977151610882944889016189511896686602301345728161201350700148853802717027207896410230762910135120029980398264898723658924543467142061053426166092531152794099619676037246867071630369100930187640056140554688692633982035819499204928871451014323236330985704218643103136597068712741420120005172044388753767226494490871221570810588742685607227318626060452798955038230180527709652211910886248820956846749116183601290037535428438856302392448282070633341045023515842628685945248361536983786367752216364034354562796401255488150670886050709958944569293412247597731937574780909379948762155394356296279232726089020914834579411225046600557798825676869828628304834728684151970053450321745189112310846190896338564942704427433483392238660691437253224541271242675989900386820753945251426727525273929637253034214218192885523155918511986882289002769323690635294624774039458366688377826549895628452097226577059160407878198788525192514185616936322659109508066476797204146764998701140122339828615891663751620193233079502387716655110530667060647207776260551440226635496615649733856447143421944787586678976551975441776162976323982070833863732998415825609358504029884694798828639692294190881705477674494074042430961601543967539342548936268758613056247140214565650860752838523221999004448217851479809466970492608261774881534814943622046239687396021257727539564305827458293851039819726248560315896641372439691939386263860239581442718937799089517014751554284381742041161130115072279788566161691445056756390094222887993291528314872551808180087017809909690364551895720741135199915439782411090606552795884779560850756625989965072045885363948399784875082644534642698062560922721471362912710858219339994181583418920022526432305775982317207774954692552723042836328666885372837440883588927182272097156912310450262279945481384875502021317955007049953369308673389662749236851870480559782672120373679959903430624907406240375957487215898710682722519657173562971486832249599809897564100286360201733050016649739165213111250134824617870677621767946396117876421970669738440431445632775483638189588186609572832635620728209821500102211527002433105111654859637201425330638971165274332953357789552681297309906943907660320294451473007197279980767782874374888784986953606230148346980061590025963240910188960424832808389345847074066660477114306728160457717195009747749722660762458942007421623098717732056957480510010057597005999978827307906778199753590592671712373190928491980715715196301429046960677504303940009761219458382629434807680764556549310134520404189388246000781089807840891703008407177282059116597592004125170066486080236650294587089170538290026366643672449536003215688432337480009483725524053460511309528793048289529698494184665472185722489664601400231498814423352342492774229405010924972882025190015788059634786997983290129265093930321554653015105828720980176987173875830387065543888425293394772304423283835698068741955585811718022461716576451829002051180652955750370176940964340701237835900938631549621416508024411503841343098176405956776265419122638174118052717140125639912350871829893831643960627102645465067375463573930369669032026304516169592218473848032266032043573516656905388981647819445240898149735501001618320785528953537783428379445554865182549993232195345992554000400640491770817959779204712353122632592169232528680104729670648397287631899124672075704563849181018648163715742144005865116638979695857107646596869973313851498786684502828208777107751138447347236211924966106533034450697381665625278586078840060891263407114998592250778793131898377964036823909717474862011166804120151381192967944706625265476576887392521423881809315904711400298951028726685351729261389369054771786412381728611915086064172324812361375278087993732307697585354804048699823700915751971336863854282982135254597636782686987817608219051321898847972102060831980317768976094346925254176077949432199818354841687925095436079039923477782479105241030572041296589771101741355782857747109051314745536827743409973845703383358659116184656419705385731563875152401212460471519058773152629315934930407914139020351996536716035886503388030929353848607258553030034572568755482664696774695030948622338552423265816661864352590225051580340327224169961900528623070327204567519828603270664557321919293734227930545409373505656394595995929493020436697179704313815780862562417125909493685401919183689270008785186695089300834777504902858350225604417314809771433966792503150379370204496816013840622094475973734815972929905408909564400295650170696216681890645729387494449076644527773496047048592223701038015647931809097779533944376057099753271801315827372916047069397087308160754865231923859103049113489894854496207244701058904920788760216022735277658198546597242974954019312205204409407424531918340722987713570791171199512669416216489242509203163571384559050834586407756449141634760331188222460809622032708695866295212549555200380698211334007159263078988521525240464166159511015487631415634499911463920308191910425888866407914567213966816816249513564573748970890078525549150202134812875175675333425745822988771557273353082760852472247108035607803600598207531437430695077999846934404240518519763027238016389961977782131623705360604049835723762151421893274743441312613961696928198897909525650654354225624723875589825355637723691834591626101003917707919308894716815768385276332145843256046094485819511500017708189749803647482175449351578608631031054825875717234105506211853271987038939795188351739495561341228262939880958587115398398507514382575564425841379281562457492897006399990308740891836703611520201955437100075960290126722737134771431413932348112443016648390578949314827193548445755751702661387724226180616715341096457221857421402418340116042048000397960980526176264693256597038924414298587726840359943636579607353713163025869837321495174563246934666069776610004551333676649764330474258037263564803218649753910745217470903719443065094178666271397317555272211887049925953882565041879337601755159417404126151280443303035390049250623528182371562589048828527387599931877013024401556527989110445582445550101862122406237709265751507150563571199266321294209567383551978486205742740929473154954801114404404432974064062494491969534212818238490175844751041994666624725548342768792213173846467961752818662433973931306334942090326155929691849950209012993238620965641836677974797842127648152666887197383549533712890984335381000230082322722913181817201936058264815997148035765524943106362807530422537925267545289636705866339461777685039941598412499642645502335745982974949891287720451236128475550877322303641493687096591104062424184972395166215574679430925430708441902092414920192690279931650910868890016053220885923123656300383837543602168513893898070597655189258871847984639265472157779924552257151921811499424981123504934535166127843497075529498713305407097522882970647688853328204522670038511101769203765147562953227502746384353472885184873218597155330394363434275580893061756277857909148905766294839218436437469221374220860745199853694138572201832222278719775641269294008216178243682069887686840292862997057482646531024538531169556241201639146754047369225750040248295514647028496107527570163426439025468422809251869779105930943141288748992220514920593759354320182087378810272106272371168976499830094583234356718869125091788033178546600781623823458146530338763230768440907462343807066796279648715388656193323761560089333040628454606443641774331555322646721438534890688577130030356875213420658620966251871073674471437217828160263177133618949887816988002432208902199847759463857703696052108155655301927005975593256122557311795461869718638543968741741344714912232799200803494263963385345893729586411957623184309765765159032541736651265708081752633591961915659493249733637654605770529438744300239146662805564865167086205527426836526450066310005802373019858492281784039829936444070997949840160557635622028553343044647351285696760878224492307989725218345401696422011746248883873538518025308086839637660445600478589444594564607861519173504100311872296766297537965848310751436351064396032245806915454895352371548750690197161401579776043204944416272952409626140777371515456574624581854091269517675276002139361138924723523726178027653316891198465120544841470305021408869499447552715910648325395905765780308889226249336813368441931387263662446264088131619808456397388579702420956705504084056664783264507872101949556349794486461860177894738124711179592654122914883295384820757797644140626327937359066678359867177921393558780344411829283945314815885701183021875601774955541603041490873117963573399491469583995449244309872002670633935676051771329937204052543136816061832897826214075511453063004608072095600511658433816287895404615570811084122909241584205246011587051468579534569387438037223524611519018312230280975251036348274958059310176414628717386622205755147406851998269124459278223967144027119633073964094751050240276073923253362687613215026930862519081326812505197790272983092118962596353680643351839914449953067257557927538018073842379398337884834040108264262750959558373310795452967960785107329830887848092603081275110967895549953145051345045422914661144564102889269552075571650260656681507064495071563590415852114739077120006876983526658002147787593934690496092105594001351880569469464312142132820278733143452361456813759620782134695825438877555173896913947997347650728801831616933732124777757173156925723953035806581050308471666782177850190588830774248239459006729701648720351779957111409222812974338196952703112446571516944648607104930423497907628609748109828229491461894267002491952500149490163025897332829138823515559949109278946877227946654389711644002229137096578427687796724258080732158733585109208567433559772987522199697682723456313044192033155054218122788151902376198438242365420323330311869756201296105678963030708441250088598534409144374588927347057092647237289138061269127030425911506989851504567423478626504747165227374492479767152032496155659246197689879585635450674644022557327115807687255238208669856561087138905355963368012798132348504687308941056113787961393533537921761762155986750601198118615533143114517271551228700506868152682795229737239599103726629757229042517402654608356596828578284495189268386614181749407316963533250724928040864061940081844318106160555884859280917216219841580425846619443093431268869887972501279772048239280874325220371151733663228259885210006346905901919093718087111066758413789750555234609565868472229545090453410923577147232122800923284949466224728615385500459846079832377688270389744470332072968411106571989049505509574163158977284552417626680624956365338449409560508353228267004250461582141360561166340966736250249081577726929847690743120847275645301286816082347813763358487478378735264055262376252830492466521477046973833802530307646165181612908056346033924740533039973002642207523373564488534256551835439361930402503147703437149232546970197830740446295379288848109862037528181018660813164089428920178114977608429679690505648509721029732549520364752650921438966744307434005468888188326947965841488008183346904163457482400316974808377596269947147765421507018988744675282856906486225772817874646043203304299785451284089274216928249418023196640596727242160040419630892953254519644371455555970768823383933992027389638933659333978398439644378965045108997930210114346981900090025032809227071644169456263295600097625145632653240818069120477046373356767008156773334785457733462282624486776629248550501529283157932451177585326552776934305393880381769944287743366379807572592691432874019611063644032966758273636361831678008868530595608693198351014720125169393540244176445199102487429168607836630903157183281358015749413346059645572725448436882194188956439036861371047943411934107098414726759854232331140044335498665098519282208008783082514613851353836400200542586630788995666233711418908197925359640682324827225203280401555099098910762850318023972180289491999625495065990571055440351098942185101912842980123638887488890951350940452561428402273870147892873726044603400609415538303744341414239893031312569198965372553700470840047097226712273979874875434836580462693644026991197670861159596753245193968249369515530545919620161289873784209583217672244234022290493324384201882402754556078411679745923200792916470625805591136790886726860604124753589223509145004802896542117947238208605784428648466153086149042501951448394945535473403217590712714023882973923128826633847715029822360409548692548708477604894377633358899339437114136585171706040502677169523973598192304231617423819257417160865589813154316905473406106728290058402290740684937605171678219291219600215449299216362022517022338295232324848919145007771867299147109994840843246410462053073046077963752695561855202171033456307244350322910385393974208798339183043091020332887154471574669868104113145526303511202992240571351574300889863446477012003968417781665936578563539156636050867050118730833510865170781371078913875780057399496492289693689536509206763748768854709178036750308322297120087778187357908401500695119602066074708915254512507119751786915872382882277747760282857871081156497080154923286316427422534381238186626879904985226297137929146394391627990673876280713866407318440829073009540776015073530177553262795782328868330900316048922361334168513370464414518250568627792546564516900121247002854235463734339699379391782061915087502333826534139553936350661276714116454174743641372466535271913133647867354243396771026932908539365435637141813769989400215341266458348419960208761237649944894671819333277090526821308115620265568095753037859969388541565080053618672184275428765928231659276980067743225465188215631103721300886743260792078311330791579984930607150420738033243923330793871531773119272732003975959288875054269656400452374451837636800528674006709554867448101136010324158538781041071268649356908326186887054186719443521794305557270966213027375058655433173760612373949494949724921407667166671492180343618326118165244638932263265043798783028012899648574474975334425139346682062752164770597819609940372321639848578791360135679350904139227149132006389050224378375323919037567673934024451033395137323063886244433581413926737527070276516290929792459580556534704453885400662474650474548339021817958156491433454642909002744894812390775773902275860511044746327338485005204480169315636223009685678981290909451581601965988271818152093531289442226505772114158238786042274085471121614633638224202628874600256676221167668859524406910156951823403278588327633133429095015779889312922841571660234091262307636898701166127204289874469869861114066461583073282096862659140163071336577140846047734073065176185066632402203319935742507609599586355310474073040045992989747161060583179313949387094443208281951366392370890179990607343576780242518568280825590416316680031085276712434724310914191904305784735520221894596309822757278856813977338368079581613197760740708831223931289211910720010163172434695565437390709242812195170837557468064342024876085733746449557420821486374016791908172695549566150123906781541255774259941332509290402323581902240919144357172742066100159304236894153439478657900265096282533633285257347827668311232613619354118552466460933100868655380347632212539902219530527170215630368979814851545414143502700324300775899803006556152763845503112849936075344009784136832044533311620997532661322457931253809083035996309510247650541243321383636504351770494824293780534326146007818694579670355594958020109536367157625078473646116689526208035082849839208254898347073775502156665526356598316052098620793266498530099139702810413107387637037664007390816323038162148534362507908540124936597771801811189435620172968842083271351184415750173488937114488450025011218063326851173138222983125549210563614905181744598715379275553557331454538956300530135804103461641957381882781112360134117217022279842033144940395085646675046986503586665648593951599869351127511013979214461190273971413152763157721921349773183802994339183965463916028073774309446171115415888436890155010100674399686397359375481586031163677325012405225892954235920176102755363862109177799081290450667961363385259953965026831297862474861984427694917258462733280234099433880088014721956073403949720911321659034027482491406310470253664278479349573835746074920905157609863915235229463902671637249849411893790981103344134523448178955852782310078744586645077407633619469420141251840785386529980760072221956959898193951136580904954955874974961836071024445160250579676129113376079973969565868517555401833776767825712573213891150597547613606468235112262925694242427379537224987349232813385488551866929665297415749301017247948360230244196375394909328722029698704102677671801321861039815976296361655031037889319417767840245174898639180825379408137594834235964943188807983494612962677466755544248624007185293687642939676040587672589473672406762342222498775393055058061587649470179882310708362566934524004048136960491303409800554417405524852495598115333972751110272064482531857921220795623912683386885244968487400668746915685696248772583813558167011644598555742441740331046030714794824541413933763602870646761731073114254485970476243717976758134411317385733308366096581706689156606945189135245356149876913380673970886435508888658935878875423917072085128549306061710079929684709158198743674068801760551488766139469854986916276949171927952039293452139857066831084311410411834326637945137757085409199825755917082111208284368494411688349287093202528790559860469873695648791556130768504370340560171228204624094538524088181954730021207614648970671140583127955240543393411872862255787524227203206111953928499059863655837149489997645497826243888886302331469614260197300057841851549792193000201840081724375108468196034066123399710216583259749383470360828835700172715376255523338977562230130434669720467280751923536501929024079342618993193581871521668822457380962786640799311186513255816034092135291544668538915789983764783925554744182387563866395716162944913855675449709234796067485142060699818927276737223939926472042180009812026680427014082950826926526561062523151438322021491504031732191885612421128609186040038463758459070998318671640962389626455855881287402058297904531257543049886546379587922690684041767213896320882471303217627207055868722603978536093119439702181917290149499513570850077753796382096445017639134464674713386653685200632674610250270325399777294511640842459018767902635308515088145283747174564900226980973735601896365543213996119452137506314414487911137747336048643522332639007013034561821737986138670968829231425268793788272329543469033178395177245229942995292943868941600389333142809356680717525724524432291444845434661547937581085186909504187625551473616989686041360449902122417711191787000885728127557107479786834725190072708989656957915486544708380889289389766646092661695578865493562381660514072252433631801553551986959253177776751018160005110158960136835681463037445831337189495544453500281233991646931083523853303756849258979446093108348696158284284771647331699705247018206036895951335417621984607211480456460884421805675096303541659713673114087368488325068508770403442197427883753813045562837218517077005263788227294821433894006189396305102935473697429879434908175440709981111211054990743409147639943922493054783814131735811554152386970385571826822970817441213065622879671686936528499942908049770048822929869035149808645278861347742160250447562477708346582069623959222977356918344263723798621455636962629598942423078444768936800258062593536179065874756036681535338703120782243066480317860484399329803877596888196811003994735692207825291573358475965020140097732666673469669677693224600771129303966323268051384397549622440890062028254121691497304029675384825144303487512616597214125756972157368125368777268803945397063597090545918732527698469215950031988407589694668272748076171285217985456400645421820339909544680035300174128512543208851661877393677749019361224396845655328740024858872580198057193037820181158898394978548529229621901972697014480560010369611203771386932913042674450477893963250149946237239253374983629818581930958882694832559423629746463528913578549404835475456371554736848900486318448501196055610764454151221288784161096165587934906519049944547438214655517782289215094626477847404426801331721883885543378647153662677385875474169339011622038285574098808382671507321938107197611149123588491616838105761426555565749986562004782785943762658280964585013000179536778016312565162844086437819101195401674023440832253936787997766876118889473626752086643761909871779797362858908172524641334480704595820971353665687101746886146524330266459743602596579327817455150393793242317118493516523312573477563679763647532322896849877384292618747340718727171096157122923330745769606632359916003024267060719323691787602271066347781229065569572673117660202700309219450475922398715399814451015796857958711830732113105175473670253147760540433809839031943963494071512188511842351187242889253955904382985273310041977703342846317055191962592573807085418506793304433114308292026017166014806890834224569471109273994071559870935397328722014600850185911034376268353907305842494110603252771399101462553281982599836373230624235983519313439106546060893038993165157552505544708541883498242368833746045337227934672551620145683406730071251834888104455071436430831973429175291995328455056518792278722340349671262487524364977969311805650172017490624828439258262494666383714581133918192486145560833332427304271682050720518138980084954932824335781473406010043035185924601750580680249624026540052862746554824093374427570380070382387709000771621021262130441624446835420046793560037018404020913754452642110901246805603527013451673915829001949727465396982355696989852662706541631039104184328619239783195231876193917257092365389076359314733199573152474729029444510713331402329684168271227783127676522602234034314349845930656329866698139159958214539607160882046211300269713020365405335335975140104120232531901041246033282855025753930331747565640897807274291159988708817762551490186201899429736096289863790170169496248178394310910889748038117712861484907252916259202656024616352840147371082551639368096595579852707894470807466647725790966163801778006817726964095004720570501327202891268273068198412557586124140698723983946720034607324410413610505405907202271155278090101788553665149064375255875656412124963232453163869055173359805630943052174039697898013083689092148194031601682326541972713178607418425888945676240281416766473777441465066598639913306582796753920875800111727091396058721115127991300679347109297953940268294639276297379848619641009527062538479757503509579995952573679483918687570479086571632695398420814434062594770183599382111596878180385742581261693401478601418092520897418156270595493057193312782376535911188397479984636851552797579515676241737796986991622687502998096577767643302525727696330510713683235331606138776944364930951471947909111608545763619789874038356302544969558976224154657725809189276479939605072916807265115864984272823281757590503141459629430812574648634141005465552844742261981838275412475162226938256152205272462729752526109192440970360957793786977190253416749527962763299941693880489108524246765803373769703149005655187959151886307690860815050435736794176851297344188677038272655946114289814448452801393792036774257379042254486204176863911693852940393370264532426491003459920223094038581346889926237479927637680866596338514853382978144778082739288758862817511811729303479405236292749274910226053835585630495671889514915137111522955179904222916804593394878431816159905568373949763780385768324535668149830897025841406053429665638026566732396275028270959141120150293054738662207817749103760351086921310597416029819032626208707760985366997523215708153302752539027404284654698440892393579131233928435560373545566128310075209342527082519220159657205831257556839848696506510854050336420051768893309718397450781166704053554839885124193889002974174447342626152152414412213063524884294274263998193692024321381011260800543109363813556176859271948446097935421466670459167516780331822063173780000898322033841582891843856138039016925038130431703465174964982591061734211133292593156034946615947747066291115154395998983285761164400867770232023963600635426717630775630472207669838021383476474132319535593502356695656517541600926777748342212796355991712053984510765671075609745398539202500917682064682375274163140020221332655588667784340420762118716212468251726870750347991211453267332415778359003336277216959004851070562695033682682568183571941240903966769568469441762109256294819581746287039548038061492442542706177741213884309828025064489457549103620331372719509629700094227362495433673949855592786223242940401122395787895589012654477877209192723956678294496225159179179487427156674179766011329848513789279426121787665769379773247621520272740020233484493544216775118350634700010623475105822131324276058149102402981430109542592811646370554976662297645079710528731216740303885074291547647722658469432681474191429902239246046415395013103332308809097292401668000744801254323425811235751373672931172361071950089758625177336861326113945556517989188668503601135912452487156633792447706890938418461185874360208622071377231140583604912624677606904913740121101570889716552898235171057045348080290468782953686989335692385510718299508045510466666694304624729713696521560044600440377143108416573918708024873192384019239336491682978492327485102907612027342357095806804846443816887134600403332766230867926721319570428397258070437958432592037611993720653500895115727037908923758649486505601266539079109141684522819903753283463295836961670765966185617248633805355840048035731840562482465355464267222386408794676106727977356081763010689621398144919293673644164827231231084445149242624116925915517691600297588105592055906589516811798725362835739912223757371974551739588704288180123897497668994300383432291381039835515226123400025006036136305754156861534378307645966596278694279034421066561144236100862532580959085737151868971766403321552899927424290773708902410837722126172652798957955810857375471679009262324670726253844133296220185927644611049420811093042839854324458047023754100185425359876260398276661715561169422177026724972077673330612331004989551524469100839857111382201017899835652780195467120341710006488899366037824350028261716637312720955590886725808348228682271202073411683421269335002386260306047735620577212799615472344893922477844924472471014494807252402328382951570883253019774190036729618496219884004134015426138786613701098923050620939304230735160048818988464102799846907146178784153583718198119392082192223536030380757353209359111753909955097277395738757884431457618592889029979244521302518890396912837129261298612467722809769422892012258032162520713490845892717455204179145353433403768492043242791263307055270803518385728197391728106950114605784696182754546548861401156529349583180489303996054027931258919270811068967932364906631680980712299440351749480378758708797025077593150285875138320401983689813408597921356433667719295953931706009432709470053115702838997709232979867323984175221822799297420558961935699007682678032289443814000557114386404847428876582398435668145584038265120569730171300388822755022263114727032517322244798381231081023367352236234841959983288457958731370176398097687061344062337482110868156066121321286505986812852444737825439454689172830922807569692340587901211202248747488458285853525925692949807683225648269721085343117782517125026231937601694145255490073129548566142632508086261770748803712781378383064996320118926416922845757732067558358544463896109389638361206861212017459038031685213458608412047142893673643124523459728217002763373595153374021569672576617666430857228149505089724089087705688317817019033638468839188103740000520521022169298087496589753647119447910837105272888311208719773287707749899810151420898686196328436880319571878271422135547267296688153410327454977968206358240887436572648347409691795274590622550122879926679685330775222937370457754737076793326750271626706579851051752824206393775197790911381121789394868161214511180312685886727210346647334985729682863015023856803382996099451899734675084306633455435921223247506972400843691866783668384032409265428429020854002650819209733403335060844229214452325370825951109468639531556101883634434188675440654041482049544712777352845419612028559373993049903932546372604078533003726056443682177465917270813281122232596645333052660504590972564213515143216746712721315582426453948530712478075897858855028574862899787171623524967130699243603434645771649292052393413141814844702078558764631227286294455096699327066265165511989864352846457573941497713835449499578127476962401319972212718227461484942925314766607470417553200046705528266977610929778854634134309046595120470288073451760489409048216600852274918294668160259887079946438686068427636866192187575939483286860136218896724830874782261629799582337250411501546083867500669037466401737150804128718410702349478580357745874633704200494923133732882342637944839820946293263092306037568725687697955358605978662588475187358392637659705854736277465449809923617524034331536834158319369510810215540591381123114221453524376795713613512255553788322485453678284634075262644458218704989865019881401610801466436108733995915632661764404395980748533879153738197473416354683849734760271699262447737064241305485246433909853757816905285673521879862612827909772603665876995534283055297911644162910433264916116456612944608916284511729464058626400181652621884853893938139336106293570501816690969393386867734388175890629987043308692672472631714149022627924192300824934337881712415865663050885165548604749935358307046130386626493769505553148423830607343657079020061627905181988927877279029724066015398353483655657567122278685785037264967818103371215733263711538186067318423066212381149243183908028143221519972385359428245266409054355983262757039241992800375104427002791250109566122224351071674648069679859767560473572585830198750909568491068047890434789553817617754266171243762741540373002883761428743537047100089458313417343847124449316747654962822502303123515905326807298154901760559450695484366415753153442374955953944609738253665758491911691075182165928181572937571616048009483115357524817751028487465301334523352291437237461356235622584639127288382060416346656999793171274084056098858755838582846215041041794282985662819342978278005104382777626095646849991714029751703457260588196345351488952620838822678031552901339532035476953863655772109544208421623628863268198156797692276444951947002946634218272733368238867087679424319558774247470445029777284732432686842324504016577027241775656555450558674342694951310993018386660183974066167795753515209650338128111200818912998933931906273252702287194310105114682032142162119852878428108637412197435956934669811407676881065220933546455235495048649797021294136855122401802618022833451574619023889431014610238363126640565869057314362154064132554825847195453608961718539588557553831333950197223908445608960786096035086045883655370533990869688340014387359730996107372915336052896137789074855372460880962260795867669667222788371903898429496810438385553663810563966208878491382602581031648027322144829403648228223808138230109594002029225051216177103543287949738267900839471982247005582280647911205376838921101014759571661906956235701463083184409149794464766669087782724222321235695921215536680802451982103551232424428763932061848424036844269033708277095356171827558692756664082339490096507650434253117675750950884151172275513853293067077690414091247830088841715991199949358067649517206115138600132806536820874438081317735038348002733286900995825916018548163119647327600810651879410018074971122752238742487005865780487060222990421042845521821108943187591973174631485770213345122245235520665455408886247889111370062339635284164439429478936779866950423320034386596016832542737738618595569287177077799582141411123816126441962685693390894348231700937166578598915391581275045629724402134097071620618362427218651791449636570508178219105936989071363362212780069940873173893804626228861866361188314620890228573333607613783879412486593740271767677640446839870462412152427956834216352394221398400057732027032918787690560332995971637273458101959533487692525710199471429185770405370751186695961466613318615158214115561155412246698238091332814396948706470577992310937435188037618985717614399718645682265994240645266998071070621705311222392655409480722023176759538528000139235417923410433604594014234003657623543397837287262400142324923469405177569180131067234740167040955827213594045694079687001345132386927372701272659312299017963626577220282302018207888419004996192595423620817112838744094749835756805881615089556969771221994902195683029618452040213092054590418412679717750921903455737448652847997452044088828695338811809423081814664536808406336380081058560723783053093987777614667338656008368473183913353207653749633166881105391755254775723221488385504060164568213900288595005759329560171271398671667154034597453109516190857557783871362905130200141146244823336807414507262104741539400850578306240486155790129336990899810151779832279936074114702267339958655648555027962749584629995841822577713098409193855647886037966127171548878271753671564579831641317701767541908265110312566932132072485998087911969988738189984722543652512453705611737649852142122784159378778118406661429581872920104456569210808960746975596649486234371390148971776627072168407708675898700786053165247956548399789550827596086416843058300904960560416178669219203743230099592229376437863177716491478350336996550172554554847739647935697797929458288185879375818951065285607012013397780655188036305573171354944211967240407568649994735762527608739781839965624674655581961428948026492852848749802198720726286983499436306520079722839191575081879681740105760706828215691180333278254500120818712664619881664762630301556284831674843542905656378013611657604552479548254242400134379964099098992473565097346147382679697099364963610005670746366944760996173955208288012284766005646373016746894138730302039896184464250944056876481610431899804761761687204659448669843742694634027664783007355557380062736042042262277735557096744139613864487468259132818180659154606078602776504767807280179872036348601302825975046241513270309829903531864426869469151089161934655899196648749438661062168822308560094106642064951505615679959562774435912849973738852267404470954964792974958949851443151681898490272971644086804451094294177233640151268533666464316154738757723583002898235516549016821458369686337787383656273066092741769934065012811083391750981037627415994988819918257300990962866088404645192502058940414480237484073845700012311437529284718109619500466220817436584360507953381728565262062595828256271623224604105706673403724765917440289843342322857472770682297739701787550807067831134964400086715219881896913538616862927102923893080757687585526887674668271916925467349111477034870853026481716879593070363607854659845136947603121079026233783272693593961306353768454244276262663216725793218720358990977034036722384384771196382657128891149029189698177106320612718523482519977693447511492085061905493310234827242931070104044953908428357904219904498800835382206514253559982589332614665975409078565598187022952778639489792033952665689651796750852340796631129754401639173669911510574636978957870610085692036336241844029293176934911143001831146474793435099113589210500174712659465232634725318009395965969719899756456598490024767840073479131704761514796610972187766026709002384979275226872880198123439757116648094407722031616766876758960617475254928261316073771142820520818026491511278223479522916894761265178365548032430956892326456151853082901152440890025240019529814086358434996533779420304196015770186096783050269336778283408649476940894760633511285880311072830743237815545097325812312391427239736385418347229534952980127698975435864030323444186563374224669469708889529638113665931839728096663504333668782640018389623694123736918088476201946238590420161264386966273157344062584522601165930196180982582545432614399728176532829695926432892818521870963741231917708748420345592811781008688682865023749680551851596178674803446626030401761027690041719758219439294351392117679708501815868711497974790192261228102996860153505739043067053025226112547371351879628553875389693895489208152869663014662213675542480606309642559264858287347973315692053659907290071417299579910310948362067613034363992815195600986914438616249377593291105850136195564021869930559473337307480513850627254762817369291224898324249827420111597892994390951556415820293617617172956761825240459596446349618586307422104319546218304900853878316528470871598196071079755413279072942705639275468812333993672662783017823469390215992449824600979920311560131343615345372251192756662963946763719887283054769043969673888735556795094586983785488835258108382772303228609790664306630351186224389553838039337979886714500783192755065402735817398040912342674378980869005389247267236466914626321092096570808611927709457299625113391668693613719287621313572116363359119029530326523894123153902301490461019624648807923458140689077873736338027172559929060603281554712373680729337581001079272770589796067870958434313067107350364716087208763153207298737720774342065534484675558764230906072213848182989781826254100061723443871162735409714854546277967677176738803119810369635211252940500015871231986330280708184511146610641378997014952908047672288656961523786127534315753191023021409898558381887272711850721279373899734148104214677754336277212930156580191877635751684748374502100909404906675194901867320279915318177212589359795374828374395312398701851237149992261152462039589407733331410729549769768013908964718668564335386349916509455727245550282118189701784476068243743773087432828476749097695111137262249957449158183951298637605068252541983418534931717462555505599495820018865490146720485604356941337308921114910220321584476758847114287898342941313286173490714069205673878512359015980027205407375259432182053209629512952971232434134788761243609910459236808124854914257035039547018989600658620980674846610244449153999948119729004123106801273679785407034293702376618335338798516741693854883001146732408136983610143093468376615988651432441522455344387352099506481327605343711700083694295824534731864019752379781248991735741918467622027586646360745425669575798284135088980393176736532877975920012722658717688557856160712141525334284111076730230253322136121351240132042777599158224928935981282067650642462150972520888983967078418982342862882477904543329020902954548867693707309842080159781813411552558853644251483020790145076466601247216391433630365978271500613211077098836428301273251119496115493867742687086094553594989102403654073985785290088614943173768761799112622972208778972897007876740805762276529371571152875665590235478478096576561737781646123609071953621312531944302668782802080702694325310257041236857419681439640355160058936078001052271066429631389185412282574303081472061596022368314019842764744398377488705254693581270623847968871125618666430382969317589848956308913347326610618111221135621843990610934857686242898218701465115929212727272769397864233974467341110985913059196678059125210651095754636652198253443059326792651260479925092525558896388274001660782583653472362047652904907668261198050165315028915704077633211396986107273996045616228516455599308751929308915427617719560588213664735034128285372352189305553661989931094363929368721488683649832631354467073144990558114019930049602319373470288823102526099791693483886235903769944900394101513675856941141557661012080181337943695014648101026614925146841300561191268720115288323526294986374831236347161752631788185450171351158705933318811569707177600271535185007368937642831868954302752341577211956260880545712473242658535008402695569767930747666091444319538212726938316241462835508341609373541648684643502680249965519854938244966436333578547738151097962907142558310640795821582402505931946083102645630559663746374479066472584338843603509423224649462200740520650608657833944575504119751418036877201269174506870644992366462414759743025538521311425218731418951661451676073891422119936438787665243637544582393370047370019710922037248602470040216181117450525030221779869311609216714086960437483799104257797151731984923441651408557428822148442536128337193350581979138409876241699401398665825677579354865419972167864668770068349479646987185534839484581225587631034871865520611675897747605543633274485042677051898998126681499272652105985511662748329134788938660147717630086591526260708874448444530304377838136860833569171872650187789393410149836686151443903493536538269324802646283052301985568756065800900365005223244086946097009884821955196604437295555887270682435361583321604991628498449253458188445397191467240707711780353858045867995857506458257728120939809715540601680835781244971622533600260567133403473229149667646521756363570906091827049636679747490185181024561154452848717121467497937699411485069860301632990492292477146304142246264331669284124580089398115776548052377300730961911700372436889921289951972123920203622551541585568172365157849854451735126431693086723067231837631131112857732237202258198953667855239868956352606502943883606797738619950763146015673788888850425611228462413419944154564750479263877740885279000993570407308250120713193671521649804956777331756266197436609791928378000370685533576364154248086842642409421397999765133762536341896913394032626307224867998858369845901897233414122120040340572002106729736210518601075050090416064954264153776401968342553507727248236566945693807366350324408452246481186125003307532401552190181975636251855504932427082302589427259838602599959680135597346484283924139535657479693959723640517268677217224646558929946100935626396619204994221695915164919371409488267101670367340837800284965205711486366256559011045993443030690487854832916741044468522627836575157824037202878488331540375762482518354892478156220739702206025984072692153512799236690747415044306767439934723013592637825671046176484372527839252443123819280039847035497037865688548800320514476983385208117685693233743268734927333169753573864977464684536876902212549804502596590676913040151516874393717098937244507688926189669109950337318192579082968682752101501242642478687514166425245780819299579150959795969607722628236487085939688890182637653772486894480606810110743999417225103355481585733141667338682933870486477963839673567046377055091801841993236032119279103878142198232326014726219289428433144833483195058757291743114001180019778659721706741959269031522169179250563534037831079306388523152146869816030414390884936445265005912611671759559977839385639324392452378108228402254319102879961432273960734652015430327604557167428244066476585007896412966189954457012252746007646034847744068224704506809848807224085234787848016610496329257327897425500661256035215388117212017228736650399023238307649244060385282875236551907565516224267215877484634708248685967465420075956883833933358684350784707211690818416401390000979775164411751906085580679521550400180850592383092488333003800506239285043250086221398537716759489585426721651217981557505053357794362006577596757345011030547802169965914874837408110514289301921239665773434389161256086006170800166882937705601254737527114093072102372751719095640600592790551534864177010801461330062758794303321183014359625324151653776852203625534819387319367416232098805344164290337097685598624001127241322015710250808059389449883910139152613104105821271448868298230161488662235835263092852774534190896719413550364613290491177970758240298472276003616160497728648895641238158599419954482697671016131378909174257068337509884869742175159041777219764209075514019619640627156890769292056424848342917565215534699325782993926643973051368772755292756372266384839362839125206252425594218153756104955682873475762250834566018443754007595812959593145904732610828901508276150713950086346957101429295988863670690180004413084047620749907461687175882918934464128542018805394316426895968505360498625034053653498588830649895967807896285069731780615889733769962465908279840187765297668755272236713893832351033235454266427775949809246055122411528310246754106678337132942525643679249780826016664940586430098788172132613607988277951148949761799555383691178745471007906827516956345959773682855943518846711782983938602893953614935950204516286695466657974128146437987108177750921629371116551619652711008031645103043961952780087513255237227759337243177136992656095653108660749524216410591042454715328983652682698698947428792360162405406938015732157626686078401294893198188237615465743123887868235819323548791958821886629147742428867419842286201025968547110126558141386867618061565368171717769937399955143130192030291762160429882215992682535175999056005123287566101402268864007666598963934589580464671103207327552749313712950797013886426974160491170711955959749698308178639165074228403756470519072587375117721782934082300676448559718738016040536313646588940385227484420658441491888917261402669510481984730431234272397783112748737333507935714252576157516062211891962346698057117020650268112122251143914507712201125290691396631628832889626967742367696648997354296960798743888108701049530833845856706756407088210550868463191125147756041006170343193152931474245259189190649751714358792571853659550306326393548858859157874547938555653758847880479889967180438741398349039782661119609680234999431770680690315706653349177569161570661004552655489840331326632550320751630811741363187479678598322940188987936041293936359740439720449066860051532691226553104159384200410238670562688812569870831004938900006714849606114427240284548153142417287319999140828510751730924214545686829145862607206552005711089374721338497536333248195031544024767112484286067322432036989666700008218418481110839067120198058297683592772381035527401818576759660491396397716059970005016002595989020678818153465341578650644460946287161175848665870288251114657297259601664588285389132908689280526748091297935966809636567049995407483912243550350807724967997612632615850789156001368114436905170464086537946181021044969442326709597724931466322893959844260931861622875271901092336312116039501637160380324594104627078097128329455217786253607900210405573071596389415429138170403933099636028478272561797533227881385150096886460428819472159150911271006363340582242958809782405919041889748785599774827261606893779717191634016649393135722350908563326894334224487658961821990965599467177670991621259196769655139145883092014812513520741341222347007345985095718603286907342620889640591373025854685156052411630301000746898667904496635339666774786910664436714657892955062431782398600643883821995937000408916628888191431617114972706058860677965073321589906999674660811556692634669288456958696979369266458325035985571390338148278988436817287348228903823551429436984552967987172244038773534711125576973891993637233636857347824542031944207440341236529403559838563260607209450861681325541755415772375623113651654032777793207206386730718449098497082947345048254502614282670136692693852974947211631740093314745727811516739228506187393189483698756471795884975729417039998152261322197743632268686974904057096320219655180732401760995429681486423443977661364132438286936720222009068366688430107429552093803839066549575474786896663545111639172519752920837482856725679794696853999824085252025160137128453622501236782416144088261843721083953825929875691594872944722375304986901755443011184676440414541578887890081189160037130890701643388965023707184665036893176973331473943444755334460971429810973025638712934995606423008540089543009778162818976751282163179718111398377344486359033444580417515091510035192518912393930698983230071094531357068153296993967211378306492046342546791639921213836367026653340925178389368768346006532399309671781248117315902576513526463663100007412984577466799739845042634495768924897249222018087914912549055880134501320070802545414365365047664760748875177054758315933207639966649850887314146307441852778631556133601676157250940627053650564137657513035826499413874796201524009155568250371068059678460413380373474026091292118695590792897825977984291757409817602980321315376189810325700404850407374316825570800710121902222961252640921680229820605448538323101276339303355541699378731725604378886361617033208360886119402534675796757126627437665977573077089758522323482895035395740572400720773824411389063543397668374266191237577329707296837943160059408869305908863119774309091540380283816845513359630309247321986642761152681724601666040518930751938785623092573788552387864366954598757303051032919831810242146281237003816306295272989769716097225679304460955958425877303052709453979916839944334404053815704873145749623310444410847294427019110744530158131078693272590846389428810118317782767580378878566799178114121356111682330881057515854683621272784305438726178481207800167767058894623357491744339216260225520677950287624485920943179916421262969428719191468407117345987492546795365099838841708109256186622569448673701787994825698078968989909428308591997148720082593014429179885026620656293501444361690325353220616010478955143092090514538041820833491198375729381254448181643185488091734213389460684094906916368515589679551831049817079693889036992370550458167966568205850010139247145177409277053793019370911297073208776813894155384568103410725643919903789883066896391242773777210573033227693455048443782256379452036723831559379841168760630529874155298751360497724505330576103281981712272556814671823439709626243722109210262311033527971301660818608718525506920337633077345515143257303220232541953910066138172336730268062608946050783750924507598982112863780018129507361582277372008795078264393572476161500320782801729189841172533626573994532771398417513634941973490869984301919428848621386628287978538757915380167344952153859050055000817307185660328584747230798748001192921764380883653240772064921952245947145828841244790200424979457904037772963380777531707005786761044704844417782338964404099187219580487705380919037718125205784471745597229779561195774309703313219946184813063647535706788808468597332775246404493879266174753001763453306469276207853700688116229721547448620260634052715287402254872504383792241391273837650250160181621117861759616997499695194404152517165628983924881267419031004100726831056084824571317055768290879332226930628293650935261732019833807531662262921997481699738572217086385759930300928972448926089798394029936314191179718685712997850736672197112502704206562234043460308366328443690948291994699370636038280048261942543342908712624822371712831211527407371189776005535801553299899301188417789487395128052479458668713466084597721595775283215689425999547368120539710530774325474600957748570206507782540464858794839269992818032353182178160624991153640213907726807361507097953649511970882082431304977697374416180213119384916345085280736813499133411277564167284721894179950889064993266305090725698873509560660628472475194266330182244787727170514745615009087463909149794519212355952542982850811971726252574547117286164641277535702384742793893400179600671141410621871713002631472045662565589364663345544727530320779304080286130022413323197717004556489635692956561621626306067048059685529064347686703417701464803630524366207107501855849907649987026020743246407264207611823304584545843511875561627725296423692453447855778073876604621537803836225085741125334316289016650760660574004831211837696624897547523708697347754112644203299342325222860105058576432257458719431872404858780784761891210132256741578446835158424123363036278254912735520835117532378116634932897926079048919989885708447560358531066260183015787129611277470779380930576968315960139264848473741818439102088319058597509821076840772190381026589673801696025259125539620493279674520153764953931759416220805192941980615381660159247417376986997216226807874929989350939102883569932767651600782661566869261237303703345695824308175618730352153347490757279012177488516713839180009122341939456781844229121354705859614516964724707266740166077333810317957360526020457221967858401991915906049093130915337816119371376209120676220777366850666436117895867269805712163343380138149924688809279571417429347862609772449844854923734421395183041695515154153287865151039224121225096771992958433425296864060799797212535198173797959208436217927465180644791598628858689592674908210053488112078656063855454153414249831940186236958387380394867581941571211491957301861995646608013527418862773053037199013322913526481575304086680815802736039559994395617455919275149524243132651016991301477944690359572900957857619685091775265188769679285997760481385713548259955028881588032691163374593633090854258703798913793652657321395829159878892085501541016462941097772244976509944951627658538961916008438328288383282419889257926498883456896204899432405207405987436573225965704936908915989901062808225224224817197905558710574839335386557849431630002508845182612679372366671534884391608061672726567696954657719630307415097571228898758545487471065006300289650794379077689622277063656164700659839057436017252662471969189896912644221042850326443326730208224929716485548719980925711075233771526728773050726495559710694384792631386648928830327695876346561102809234801321714851559976155159025309899158734117796620891405918315782566012002845542967350950094376685692640657491083109496400262952671782179534325180625457576690087724587910765002183475957711544613257046139706510791705000686947510352578874729084771046237261073027066185100540912514726333148669565346255932376941767970040453026635067566944202389049605711320448710175734308463637343923882578210555371056151974440877166786349596254980809244540812074672828254744710556460740894529668359627244444281659361165238011024236386579606762749936289013578410393162743220775825145273154546491853195200491785369559235417761391075655680392756673248881756242287560593921998154309209142693158586997130272072850631247174895088694330495222206177363382889437033858623439833656641649505908257633259827085642081393625765223664597633953899276137840803758325817043088930800273907313337232472209017793685045595737631804412622008136419484336147299069963625022737125410677049084781219903104713530714405557251424260815715665185969292813772172547472065414363915863252481121422812499898397664376608607002756782172950077964377031461599575738591784534820258236971641397266971639969886572194240503536749834955358994331776583945540083896412466586978798604933184798044066022718730250426375298182676358358227388580762716211359341834983390879852659327223062309303085923049480484442292775856280936772167299060853921386972107253045575459089819096387645702157013137510607580163265386077210325446035209226324828224026669244044732103854070237518388520470247138813450782224294124860685521463288578694516383355715771361559470127553749925163840780312312642850023651879106236258517292741425182270712209760220823284141495672674814729787475357955053666362843574412091196620863512289695994898482810425393239023701760119256331779242838268369401022420562798884734352380973150324545346841362674435857099301304570602541014690268263944591899223603567925543853836682260498643124586982502607977070925269085294926343553946815136509020440516240135066670426939930406234852704057458952491011871403041679093309471586598053642533260806969749782545629559960984012361679320642432861786391350669433271781569991637688437165298235942406289436086838277026374375956084461784822192356222212228771278162150302252228171736298628759826583282715129074138291703296310996497893801950472837803370297352278945868632826421572248891221385869395176915665036856921977038671161395521329743236538023893208107585956366851776745959676160790974443835144411805674818325624587940696758565329334012062782303591105175146309885877917399860499568271166921898101695469441049009653504083222875713416691355764487806550688213866427632791916953323491665155495336742522197993740467661810024396732621620854142640203383003201088235929788984068800562636097800648874277828964625457998932850586974514057050549211145430089630946953348440118979379657686394147549109324505183870106279131048580199970434203504115247583429073204690551806057908156221796004562870577673043317284035395825923529082747023990359774897406876445494374915831097088668764197753021750094034671601858051363507085413754913807585175674441225455295249381012561023381866330313608892143352232308289081769776339305244132618033737019527383935343666801366320263378921463241722857608254046993012251011632657135547865205649228483580663689534385497215247874464945580186251229473845088199138662024241735723520536315183226756119111137061127301471603061789893938678729956458506314291638160891157827402380162220128089364647649869957039214578214074329752113313344544882403119905729675526525645495255373138479177174724027243158573379833013644952581258855286116117107673301188605354965632744743367456673052972094993294303393071553589861745350342725277657243947665148906210815408089346148860616506064908407281053155616701405054142362013193779437722607048222659089907178544067742552956936437279844141349164415428604165383787633072376964656177819340807906141157838189646527759217861465767421221077827547735537679399808970536804594101536929024812377598111903559550068053678716097928089147883935187131896551570033211654663061076867603219588408722070118402130241644796855036750482629544791260152686602402562411645376031392595752646958480090654606249807244346337022017753283297430546142563348325106106309561281021283400009543407728128656647754673007101603140543811141204608038453738517966605858213787506526073597288908418360596927538107465884214270068701466008932187269960929876355206337581368489060893756259943152930715409075065123517496778273238785980380279875815270753007924207995225712341140627472060883114305080665575244639595925913928862538363553508381223247507202291099413081241631944281980496055578976002801478404455782945435002596132014664191052449583244940169673798255872201761565220675160367213878085566770907968008586772002860944099966264667203751956011441695735174335539148612031949007093308371184264062501020431212326703131056475396923709603590314776208606590886467781481759176859810868246779861985293747281915179412504746719384101530208845907082370324970815104746540267899941241884330884482379566742282574836416538810191334399765075660250469415924746006895444717749460249052356850855009421667302053533499807576890837618914985637542528759873923232520263583761937905435310013451488160869275140570017411495685135876241485406397169380138162346484760436078358172673708850374269297407875331934279708342928924220560400606815384538469842496161453626508962457210618636556712466596892259369738196608851010133854455125975829439644189882008787692187735885665286228940609885940210494020282689153544518625658464126718868612637731570107995564782220813079521993678909696144821670166929817063558798057579175149195622881747637973521629878638310392528018476674042553153240961856672520867698110028882048008785628144528738989082911048909533313950672113960852192535117868069622479735333337570707544024324892704926128706239185387501317337235724618027518054774395030273397628921890579470096305723237876185582534073256427457056366044229689528356087121719808492405007423155639556901430098645253605296448725961186186849755088752209449729751991202062032338958932594117095509349228631462729757812497817889472426684020201867004641009358058022179089179341833182597735589436756967647806129382281005430715118022046794577574380234242105603143679115510632203650427383037804447494495879368146380263744525305635973431201652648532293102049300197307277423761999377736240509046789931590339281680036173804548516768515936686358138840335918603755528037795888363619584660295511953791353672415474820838919740846137269651986721366054828131368662444007040778706780633669842750519110903210261282601359987353690886699911819680922749672659741633060785260083459771111234410575212346966953231372090816989065837917468505363467495068210107259101630229430547955098825852282457266107272716240514220089441228752314257932686701335682610756712521933834944273373408019259401491046665270072285656078529673371717589294156426374963759821218217887113795534919704188291639864049724077507899360514957025503969505161443965059858685289936869340826576396285288230624155696737779036214023088520005049840995700370109401237245951751919587044699322424834891054393817121943732303263444250970743375664065800610974652468648269686342893854054563823032378921173463889438579080215675903874500240908638887131317525918215103888790088636341666342062894940355278087832279657268716311692975103636370254333832309545038259634874878636787635931480396888523516520069803793287676598241970176122570893277059009981489470939748955505567492274047575228017226799908799280240642885686278392909421045711934341806970427126670191923837115798267244365776980834859241262620215245163022503936530948204424073517921657014667375767801714588885614810109271034295119805060717684816375066883219054063341658162882117683907500070070928495259960279129542686207833641991141185211853014204855093405445046718400890343708548525347918206641188250230124984765607351026430943847614149380658996573341301097095258914467444819141596147644603317398795282944829442632049186050381739247129921206626647181885919650151241019780845849392484752282629855571435811186002954408374662189204826669478567400124077521653838864080518774930229775949352247532047088784889102648355810270098956804618318268804694567994603016248248480973375315160416827171435233180423871333201905976894449244402127338993676341432037391776970881119437296264069793418521277430894375456173620314599447000641791365169962523999210502578071349298867533453949305720757879339868999183156755469821211068386077224813415122133230836593486366120697863503770005730048846460999345185357942245567621260682614771199370824026162704051275411568313489346790853300694623807860002359887356994814546505854839333035361166389057464437997473653999065732202269007501652572616113364185333841589413447719671134528989556906905748091387729726619273226616500222620160610361454060824851146216077499995080829952073549500489565219519860527941220126196763977742528299138773678721233592061456078152207469946945375975857934473083307941286760817915367015808378187321595156514006800962523184291246611001352355744902327984480009305854679089055987138067685609663510479964494791629749960125759355508256731184125317644571164502348754779324387250057253251465745358853068186769386546857485410074083588353055948264263025417935177927293453992869923259204491718795995326448238294862681975727439059366879495465177753020108887762966773897922983213381402817886393136638952204045724548758223787077056284482180648646669745295679142392194807491918807378222965046045029793853274667112318775650786968856273617000971213154635889114631885079665051800753492607237173811805406276778246520521276795577358908742805322939834883757346258579171333127939788045624369464745771602644041490196559416814879286507477847657006529600562119429599720995182095874674222746317166494980407766377384105649146021180487859338557200909495076640568263166029105734290229760610926743201639142934700120392110795859697953717368649177894263821943879378569723894186937678108083443341120256929497425949580317116927990095849690998815328927228352599162699030848632337199220057242376742085442393916267672482259241245710211899892314000031704872670214149475318016503391457565847544568706056538432708752347095849405557445828467587948905706220170067020845349964414672200068783128810325130670514931041332495224011314734192321330015979748545903767838042802032291205644120627321985985195093134246229398285247024262275947630151653814946114849008510273360182340803114666866300514954340235155158951489195639146267063070262331261810105142528402286658673882691525204449609784081418370441131107080540615387459539486234561847188012684373185073811520641428632252372699538067943843725808864771624598962020723821038690423285440775182323328204813720950616808295407818259704612701269587830786990390320592273015851024022723986826031919590789216631817127093393149622747127373138840036946156617037832550496831861442533118821376632025616711131887173336611902004358659953925169861483511036806500728132649551188896181264612159159487327154214373175272921620635952973094020770831836844340488086178613097295621489610060998605578667781435477788022152387188475816294026356346042260147188418344090068164868899765802749695084071690595807339225211094739475029085841719224704400319767544789303939664178761785033121870931131682478148883673995656528650263278080347527618447920590289296743665002032282657611997742899796576768247328958747022679441315548749444352712799089604613207695146656111463349335396861013494747188814074817869240494759804815862839313233766189542427408488489510577242903404347324286936816478399321620493567620355934567375401800270596729654277920463247750512395414197577264494361887838143150230992356854677133953306095528956043333671946202824985420942042745853967029827211937886500801124040127658718120016635796320737166514848502008929884273122682502118810513927880007133950299724099093405676393716872373742976401587707332018191602801418364034260196620189860448436737200942013158780243917953740757999495811455790311689542619767056479365986687607407053493596828934395540021446913783730339979476027488739074211557670995527634066912005662724034804265411357819318198699763160360641412267599014971587146529664521829440083905761178427244130869375838062189590450696013018237830522354853518116219589173064819226181460548217852476140722197977529148917462999442202401668116797604337719920921259162154531691307052857901799320154614629734996288955777489664549406849202992742933647570597209468213671944951300944623051523781236331856939857186503941460398680668375692743249811961420651275516054325585846934933828043450117650981809867915685325027744042134021118112919817201386100226433802259353142347561057850501957963012005996425640292253927170183624840936132911556816548388220558766374037905653869994029202784376280637364758216302331883896219708408128318814191675973986185036478045490507683615582375765263057148591529934893767253517428076101830437101991934101749361886972123994087508926006260938220462602584266051720761768585992791904704550002697252578104905384142693361746899769975851535215230401625456453128978573642958309500347227091264625349472169443816506748165261259257390399277952143031718218145906575066364658656224208452514537732870657440623586729267549127583906965136196982231673767523245826697011365108704159254144955461822955537495281917243043323248890978675238272122673539639330934715216818466155643441091388267795303743081729279756207943090213558720838032743801493149999994928945933831751004686491165281335264419261939387780489469666137606750239225211549200336034846523383604927007725717119967579716490491259604769361522683085659036215032296221490111088070290363993977232054531636632350249356494868822380542224317352157029181896001457889281710205244173311496103493469371887070026257636307997077216815241968543561840526688420979998793674007613434646210828143368731583114098064325374338962273296128617449426483981112765512871804739985438655392743955892660988143659158184607612780438602132792266338472308013920018615601943448119957952979261624540992855517467939997102225367716864814712417255067609612665372190104622070093541909484207532583024312289905673845400300394123977017666869821963518403310723380393384396769582981562849729929960999940712526780114688096187079781226328986637728332311507253963775577641420659529686860822225047156261962680639721900550728043055947442448347853988566583294235635337774422360099738919496291654602132992700252075867985297580640063111471128720219481628248273544062569052891866911120276327399542799086095084233407331047986169866858333020674459238017398454227147071624697091701380232881774395099613103933827056373489597900045545019414309792693792037450168397419875322088177467180391074935168690734114658265448066172320498328258247310757618950022740257242827383545102632099962412367322987203838819260525537419643948747953070907601164887883041199166534983974049985831356377281758484521340881673529198880238032831274078034883932154745480322362431060269649558691954731475329829678047589720732229123944447892518076601119159258290290176498071333871974559931681719519995197753580004122674301023916661021669502437734144116112451540534186482058033016907257241994585205969071093808319997062598964167546601854877073412530872046592747377629525580439383113164004064384766422796405433579118539344063861995710621958181695915423069805125967444051406469180183123230374413731101386612462010109462123443273041230790587986554620600774991257455602352930404645938883024574933713301225206595046748132023060985396603954543108265362766500007710321981813697217885848984652386218664803957805118139139871805276476232381758820323079501560741580286863865598864774198407278649148448792841715561572784401490641294650933103205041049679709251603022455740300461247766321424676592123821426047790051632471417726432856918707266402469570507747707944039916499635900187765507189357234144921168942193707154793064925612531782672533439723566649289767367763433348069515031286471693667357478490979984080716928833273249731103456958215032461912218531170030323766373511865858092732325598247346850838858611422148105183669242748247682704319845658794441750676333451972393081851724639211685040281415684596477759279865510614622903387471168759995405185600570963680758067721213577341636256522232520307811173379086285379247965651164398203350987677467137404382498678583886501814738117541799271764503143085258643066628430370386649965069138366814983802833412390347571112265235002910626264517917715049953928098030900191939693572187647250148509752983011952122835394941194602647480012149666794380731923338539506833282068166466280777718702354548199717151185093707729334974845273710621351207292707295171129780489754372415141180374291945009264758573306775835870740985889942679246655421535134411845751285303916674014076818491737715124044038567282649213622353175821588775062122250650740113919737238678896082204114297675943676316802932764770007423482216068051102641607688893597447558672232534296395393196994129204304778213103757394672120231227415096555053246021908254233393239487943518772755089525309726191960380688757829625481258675481229755680594818931068749327582145952852561371709882463354510691038915216627048940726456616527580213468193659393533072365000675891120712812140368972873823467184627585034983848164125005264843473253230853449939754690369237646019567846005409526703284903065066864285363525104156256441685968326508543878029070816675507956287632110652290252592441242319082741017767515559854738342902163475845698554627038505270110120066883401508272123140959409391475095146670723942355786134563622964210967611133711365904981614577343935265520073713949961027416135549502245810270299598320749562823561259429079373603493904426130261029910116290701619537875572050516057729410206113143638419964000133493872456820862317937544965103587923262796612108539447696969086206501440109866355437808493360924843468761141078012358481594065082033071195464539332995245649381468125599220503307480316128702751845834295915862562288494350907155230274673787923476098886446580027930595268835290978305072731220877571178507530139976378652404792382371569115453709259623116363563534693587848399735561034249820319545986695218259300348309158635608671388629672951575436248639632749749994819702183790577827239618324821406012034147164394226281342480142095530321290826836484193584218436740548874869051200194788470793483032818745243443150642698758976930673165347369560089457454376413629998241774789767143044580157867902759182844243670456138082734241800307064637108966863509870313732982068366892465059726077940120757603568788034440643342268275041284626439300207356859437552848244036527670113558185196803641872179875147881307564248130205254882794476723750825678796506212115585434832248660709391862916891686359945478985452231955747513124954726693948626087463907923730437627543240475448093724713802933238944448465245425763281396865946942622419419834860934994167727045652479698112686001826759364179460358309168905822969880393139941553588824806033916003464268005423353699029914124180052960921002734311868381736390715531935866201356668534257505123958908156585359415695888978178884777254079810688547536281560289937763343657004060996634341391721860977930775657790764652686550484307489173952448281642614665795002661736741898956158178704467928298385365021693371844651857141829022246049004574670122413983711532599427749384027209904036689451666792950050612185160279008405774622352532451503106726460232735280972482976893661096593907949503470483523993332894914290955398661824649856535036472015381607750731821138148927694053071221902523554065382745499780254185354979134273682467871112891099729297244507627442315779163402640726397650771590062430450095354596178081298096108714845130602440997144137152214487716450214683472930866093620882510292273477355378179385197734074499235033800813724174452577239332491539112017980280575250688646162436139779674049162308069384343227931199803691097013605844976031396198272151061079583283081259913099780984432883769676331220258379099882252220704387251502291502876539312491122671891049076240200937254761128839298879399821926467018610290685494845210064949430135099338951924356841254997201952084337161969338562371879906213429356279617767228065713788764144161036801732747420680691742423905435468541110751343270820056389837061125731241091994906832679131971211848242076377883685675845017444875566517988963486570689115312928849737098554083875842587471940623765194846875694670310333131413285012964578945154033526083748527594958824239710911144657723781852844026858721637234501335204398283492548647605805005936148609507492013133436665437498087457170364521711690543500965405258779825500629398916670221893367513749042115328834031116980441455863592320033540697022563396042000407415422542853937297073907080623217765582159303707421397984904826017895924768476822334537716178004985785143370038541603825595836076889751393864092994287613941478488549695846518074162758796619002743506774906224839537901557627698054351961499564537521281257694794104239550867222574744590506308910452071609992734155914096951992521468814581161564126431869471853197456911424259378995438881619002491918736857867546645179464628159100247592065700314898852729925799172705252034444920631869593067321130748438145729426563750692680679376113468451251469242942033122857719013395942095093188737449479204530467469042648591242572251375395832810849294220120408069581306167824925979061071536855573914286302455221748292470384425536448117668331654543369919923910667536412464394558154198513026017872178706990785032345027017552675971843229246305272937082394685918905998316892255381898588857489045493781002371674844187134376804690783873664946897851305414352895618684247536317138446242009108066065244776408133298214121542688305548066792938484504875626663204475178296856226164232371553221836570835083901550032828221818742581810314178024960456586595239887035804493884051176707831518903395755954689775234324678195491758163934439632898863845946810970201624321244189767951276199181349402174087199732225012075056154359988824583731883951212292243751401304104157697503124234672077321289767632163678077151859255600552089243117411008454069375516044802125602722242299731333278731866120508342449026078241858673655511870594473293839137739972737379782632807127173270381707161434908902872124515479076180263394450760700677308128991197601746956946068458808200217278323503598352870323033117951408144127409692832020127928298632273488677310340703274983125172908980709566369590023061094182328733791311603858929330577197625909967043801755342551539642149816360794792882714197931194511451358882319551318204932376746399344158998722650515055502287818037762223366417767771028704943581272849321597209238077478087173288901310138061658321595473071896076647766796030873506233649870026661731521958029436758729989973920342418970069858494355816992547906255105673868024514258441145229030651702010391360075591025315754108361566943469971944182929972364491853622939103468797240059515448079220628306410241461364041800434141264181130576455479777396366921921064937765682963915485617616475141442102229437496195256420301011769804127983286025003871357010733444619466975871791644922315955794527190601638093428073060975559111238101199377769950298785478518441306019355690806180094881565695978232623116857241720894063541027270366052098160516074435486217144174068746249361451451828642996371185716155931294418235502629334122621740652626933401556112402617333721242128957122006132315241515464920396820200879816058070222424143706330690313733554103008372401065971845117092221349034343699295518227202934582127601078952898084482625221941620643332482171815183519355996065536829972814947690499099688592781311966776658469943747656817095434794050713608241178640284647764978573204306832344013316788059396394953322853922428998900114385918010478976327730227506042693714250051212766116489852764250635391559972796400140227856633693482099345138613083122758388212237050471924987480847454188134134376392131806774480685411754893258920079411019734432123410695238480180953499605300182408669164568240069199838375156070866517409088890099354398275627189659008642837390192146327514552104913630170845234166246033370583313345016628512882795989956152617180413933314932665111545302709406551818369993410313465127506153925521693714672162276315082671728339031774583553661685992272185787674812507921502883708785698187837105035460653997025349798512083252386735020773201283639444215836709985804412094915880538577817854719240694819734220383204544326046079064053891380294617056297560786508379359603156949849056153779751987119126160446537942422495181071169515497508093829002316438003040915554710128746469579220460824544797955713449779307282391695100008152729923755407640109086319968494410083174397709568871202600344918120407547098517415553784565113153638132817810622401628805531327238485774425800819439355937958876688907049380306475228982673246788869032203149129016108563412695875202310408562018645261185366902053663071227108043409037246178336789794140661461463070710775492567719124737324668617531790526083272219329611593711287336511884173332803012641968148135647276460682697729874236552632275150986787605660167059867740095237717294150658832717824763398242108535458852506617152535517621369209398638834458040525058367992543317679583132962730216232694427675534345507264012161786311414205264149427537517077655760819614328870877158415689934395882415073625923468636051806208530249292803533330801840195406209089424836330205578417377538191409574695925885299755833791502848168169240349081772444495329058788885994684701384740144482086073867289913916258178841277671102443661746560710440294530920946919217114336194638955381357452155610812422770518599622510579849063586340532314332521771549781773718374624525194697989374248819622677295450870660508931221536814600525674262223615026257270270718887762037265876698451341671916661529830263161229304847173285425516165714808440786981054855142758694399862421902211642034017776183742694484947791560400800572606410574518539440472211822745705578901405151185054965319301296747246593139116158984547146674807227547020858452809333910162032137097094492937644226720732376192121977908441562835676787845081348592334671873015605006116619149112091987650745968880725838641776177389227947470871551244409481969881165907129474294420647630476826835801765442015047096317895196619206192919344867849222197448263778016539563928829335520951856103089574894185744900560005377505744839203006268139711904576543885682404228189419430361141128842404577371055324907761873580094329074611729273967754228894264405284377443946221818199856702626836834496580266372095968015863720093686610043763768471418832972991107301175325785476685073418119782475004732464686679391515431746058444057191646819002988768591254411503035521614390300840691374583759813433284706902715888176706693945041877663006721320155383081949119535792407726582693826533330340509353942525190340822976713538884538965224736689134924701999700228222770361429693328782333760848077108090099314974308119885825675256967967932262967473755484631456227558274817459362060114098722566256647920483086775854003793549203191711877057099963723387713843758126398816366008542071632338174832022865867931963681782598136311490285699628507377616263626150708379857011688990299420948754415810066282170271510325502322851700180618919467465412319118718825413999601704695063975723532051449046400138075774235897278795153679344004600506424027975119559767030415585423922320187589914455548986232957943494937755152653165743718448999778266431970093078265391432035361321802696833646102789631303537198264282246510563787797452651711110735756107793163913930926442404749107586515892914010777655711846671572728344871090968841530485527702689470781411671353800110340681219151730206691213699367831644618378134612572913905270745089062277488458009430929390994483958343024348709334964308435984959606441699184160937857343731207366241499640394247469525330016583465850070377358118497991101813999877337898899026506392859303516469566825740596961084061634990027500918479363879392594073741938076298513807650989093493426706579277045195558820331086170592108579810626353068767061503796580434858702569792595178377351870728774889871988306848327349158417544689318114299898392385643330033169774244968418992095369265588440557838207013134353389764896100433130174481240935249337929922972214965123722146565003386792793449569197785470275770471103631379193329161545616365864614371248614653910882673467644202893755905934856078987776389351168383809738798723613542184311580489413188093781999351608717778355645116101684030782569016003987599633412762945972698801216504254241986559151781779114642281095607181930832565045744710627121265232706472225243789931240261070824372721177524042172918485983445072477855001303883381359814199498250973748524325733583674274628615818747526064473889028167178610253112203139754099360522503624778365862136268596172914067617208674776951335463423222692617383405352548802711935331831705997804613592999759719035164516073153479325854564550080124276461213768112371505780561658359886601856389991874338141370628619483364262455264852547798951501033352784725954413620904424072511017916684000364416917967553993241046013400544260284494271940190795801110840791706146191586248264780598337582048437572740219840981116374603560511658866111079087867303244018815378057244892264028090506099494191016294850097872673046701754461086709305363622907095516324383001544143934107366074107968117646291132006730592556980453810407522046798858302618189382137106121398148524227512997967951611132539527635215088863659367153827720701404088943177896517751112536791324981461369670168993411059987732486031910493544769631708621499281368850642960362641425162876975150441951220702398394171883458128061692749977401766575604369283925219528927493290722764217419833396553950051973079056124358751732053992527174392129815511729551320827614290469597767156298716682425703072799475574187085169784604575585494125887540066976916076378554867657247783264490728182552983969160098962440095894333727627394736866643047396862544694794302632632566533106223513005882451069336391831329280668800948761536736103269801405662613083077246472573961727089351759645377364925345835948225133698092804834631253918532006208480122103251099080065996254045649000781766042520353738924468468781243047462865267980319372084562056203998932750094811508116288902849647623736460790195512949571591308733071329803203308774806340701509611553462506537069024891206793472840019546048204004200680011434756473583962072378587444306875865721617424275741953545937168929519226537594700152145283402168572057536091714983075806834971763790432992038723732561604452276269058457203131471864153629949789112608400820207695499147930205849239863217236826415585691492010876679200483052704424476032339716218241914183424664590692865960344665459919134194419764756262676263745173115214665018497299609030929587037445849495472418186549827481362817392393701636684570356867851046996821044719147876430517077474111660968515951683764776462425222219608734379568864668952760604801396514062858591766017184797868864817876289562682638183602921083386720274483314742515115877325493067723419308623511318077346620572065882931691617524509393619412529191018446055608057950379843303494984022746155919458543702386349777394278528303720956568881223890594415846439761040671085456889703033204015509821857840385625051124058194681331269411538823225170263755522035573819874933460423840266178796777200303027628993958549162553625802862272572700169509397273170158560698219866452986139289627442101979335886438275362732530533690094741130961191355512048108452766351734266747529830075246409624814621602599972286530854096178335758777181448597843745847320797565276999379543498666366008704663918130122155944813810826110126182212712406566912337498675346197889468180772664826383274072969738506083103088041110458167020172507033395664770676556363981557941950513541883501260029574887744917841003845519396253797074494164082243227702729658814988511627531222715951009334085642258985347108068394932690748247937453686652037399589472914971596170647461812614346541536737144829639079378144332326724335363979678661470012012513682003944158408870820256025380386523580671666791549974565743412126335407848340595803269626157795183864302044385904373740727152967261212710482016412812608011977927712811317715134939812941787659303907745931330544780702217243570446160284628957137543861028190969182368711971913365184993251661739996206406856278566453158671116547845366174157380792069104640306919140193384758699243401049685225034928187518825705971855894860936662113170779830024173312310452610200857406787774434753960719627329608331348274978703567098648261932048751330496489700506814908021377618742265547372725007457124721833262035302073076130973520938853429725981994594538683794520212587525487744410716949574252592282071874230580361144787892781922991411713059208280541976233787932963382661958999293968331404930352483887121866280746441247354284258160970252461014453337394096659175958205705935957108236741264441609404316921739825748229544045515098655372146041063312009725507701345091583450332714805027395434194904811218989203672369623387659839776908334150717941085403903469295145431298698573774934227732805118663282465058356651061021651747525414299178995442930012737169284738602553620571872281880761571038381531529401495274711964319891454517592002658586130837582058891842288014489296375827807799635759238052044499325107557313497049485330810553897871300215066185187515020303056701870121115098561365376482860284221632535445892622054083247315361357640023923100540139328572388134339699838972928614630533000763539131484062530843728981195345475223261314572591927058041720604758147036952937465210226534563359716167957260728533124621312269487147650324853160189905524328425397495200085444559675829615949772416049960444406909643803432451946686696567857009273886704445925701474764587853056721352692222568569777003661670541456032489600667673135100871773852995852691224937964218601425400453330522903004118317384064177255373703041530614366478662705599573303845837793449702286641605815554939753034787258911043570482718240275833578098514182233625928948529113932033745862019460309383075271711944746661667895821042589355766762078508127917312505112988894569943889046723123814708652152183634526910320320626197051804912964421663535505231786166753013916659223390544933275407000876495904728158112380599822366958197191299581782709212766220594889319654731138292900604796987454903457462842112716972645741354672070495499612897306235802253623178318502623213331941339706643810718399557791066272783803175200019316402533495691283337818280129758316186540464540385083547248287085673378996660808260198514528915387345909741424449497880105033016404852986508143573521683533819171155174832172005716196947971246113978977242395122480164117949831234107385972329916187953337048155504311834252554668512722980099453056006689741559418763136997342035095546437245207334026526302292153825844408505454164709809580680536892596548263466809274561289578696154364298043237781712762292515228222768717784750097357423545308477438188662306131803222302101930829766995110384643402840465840212863311693518742969062189753150789632466064232585707228660006336575117007276680256414531034839855150629751735220789282053296024195683334812796611417699184725658286278992322563455821289990662689028237567042377399949305731035852931171409525798392986172216735956978896000352146509932186750552498996014974727522181740600966299618710511309011384564506636515530389511801840632465537023425737908808075311107076813298021659174184510911084894877249426508144722593697079336493436036655892138960383696125804066717133029968180274999581346045630397587400849534100503988054264146402675460027490412618629340739134539064533006592697394764389502119309381739082012801485817577982996098774173558355832730261775808440934821319365196386293783191127806764762924318548011358974647688771132307768116577263878445908606299027797021342062591608008478141186061838703770185389451699047038697616980230074878064959771688393651577443320982725913247497614456626903164044330131877582895140640651719785742878384952444597740817951450739386303598142189426676022340190277895559209898587620092634074659978716220393686330754166518744165206308090079473411072157156668838206069623984765343715187916367877073779875029760717645850698683473202200485846789275720621928721813762822888131822297567885430648526835870598013586467552796705951522729740902376641793484314901635519275417273177644446589686131421118349351376270080518178535663395392871412427434700931005154571858698785152151304634447376479131163478879520923675034675897398874416109485016151782051725438147449392949999331580944943415490357658876076240494985060325376550901592350197942646544802652369247798345820082919788706782748216664229388800488180381182411437160374850578675020959940094595175732138616622615873552228733730889593845610555701048340009667001604015939201323589849925726490676125160853448333245785596404708741254802889169837528195946945620596035523339492161888277780332902999369485591521126773287431196549920401783213272270245813121879699747972476844347292904290193486840910552465004283736061516881454733380062426628328129388939004312742486318136924629777709159974118174183178621887814168355699585571913608635266746716763981335522539540432594619654936804717281845504063736091134268597510248830345576747013382905501304389192246435931979092055427534432153265227607366177220689912090198545889960400347891887470962063549526208384873911936198975555768498034890921738903717656215401233339767175764218236572444509408691125166721209508603787832716581675847010576714417542727562158001864613275688775531201236324505934542398538132807383875897636780590173808008542849116700351139985157324903613135331019986075841449842445745819296125975476423785905680847063819139823722321299822640005937677268060753519269938050437023235769638893738671451813243023580106123029593261218462824155328095880995176572252168699328944032699747759927672779636490930913333555827101474359324462775113806866287731603530796541959513441217228530720574350000854421414187260295545069211566080020046647053308294885297712285462702033071523710234547139073649308149853503898932646746361853250307416546960698595460905487187077457706346941286674295239591090045834110050711875165987965188177281909542770398670554559849934414366850200166391068508267373840342561823511264363473688853661843642039555278306470978709942674672977624201730468268894022020925260731431255529105879371947067024220930965775529465195835939578126164463954194979740885322222678609759305135102705746123128123012740816835815520660106221809442279435658486488533155150172250156392188117708366361074316655724545099611111261759167364589517073880063528029594259595284553685367507780139312207327139599755739265267568443889433379638515161372505445147404399403381557188755146378168363576534154619275698393928126695033636362334697765385079088125668649269963868822689280159150334070134121680502940499307742665686996643056499097351664319867865274366810231503931865051791571031952858840308245752980954961340852090049745776391212982890360846287500040111927882062849866098083522288892090873001026173200285222222661891060131571763260011004154835034582385601586338697184198757336102526074653094877679597066442754407789307647388448766232939160755673776242253137664392521970946237575222207966382175928587759339307262039726031226819673474707732993914448622182308266512579932825845058584244697469702488738464460542696207609590889649284022983606820687302296380104102515867625239356038848223701139293697273091325563561410672651509113078188556176575154103270770123638541037620589764184550485309694787163129717371397714286614481647739575844865283147256653395895745672941986292266201024015615844358114734987612879021967185323732717407464553386225010540243136136802380355148213065246783401705729249710371469228279696067089561740565423096803194653234626633458478971750466791047186210941222861836626190436208155330264375019108757236809941938361833046204671439419989284775649084248730619803251545960356041640875593339556775572507015541655597405413742209382859040079166980259098888157846608771184034963878669285333398153450887165694013446255635782196154036535093899086256367459837796146995572022849487582721036121542383957267596416707229284315724398293457027212075282436811633745150792215938061447507742084088035831381019506030257047270205900245121463062971912036040215320659506182850639361715219274035029778979600655212373886914863645235693373951517358426598037940783624631656846378161015216260379374006486121216624809868245912357421788472675106596246980567234217531320227643388460734935414796780618593468057273451325041005049235054745520308820050282223885434676072123867957387398072299556626512866454975797982663536295103818788276578919065063207335111678541355615285974675297766873890599753876111557258415070136556239038761694525862117694538443081218279664186787244588082352808608406322140222079943419142566750132071633743729964717363920050140849921207896233827805067983924228038363198830343355150677202152554691352862389459247403240731886950943783481961806997604855623324050198015875897967733175618574619508282412151248161771901992043790631035412257660029263808662217505680846885863646861713334024233280343719553401957224169264947665109593660567859981143677482627688012251485520699889739534091577484949421275291221948141174790260136869307868422679681134912921682144855422343623059098962084951413747394756767602261381818721289284926146703621278132136431739319494158620483203477508628973917752712357760923049525928430128322937672523461246832438133767411077357791468302736712895421734474399212989412688350260610483319238667259364169871474884890973738828142264039149066709583250437491213353981424496086355819460621725671831383120596560887548079816054271544549825602456901633037607335407277867281064616692260329408342875534244439218840280910432880975554178952666999388619809806932222727960284375020913499801547936049538534349126600644914528297896613646817713151799791245024858786315827018737963986682766686453026505837791318109838419861381944357410289176930358829316936469449960069250535644317792871645780741068248043005741045415464141064610846546798358833199839263490618768351660588059018766740087403860647416253309583098998645016572441914449542676164325854751818878743821282615277114727182831640069908338925572814193126472219776132022189961751461472727079828159566806833049380810744871559998256624837223671096818480356701741444608816560370619635775362518513383827250513467857857496235904393453840218047344101738468945868959186901453277542495057426101831662617097219343817423091511434142672147346484465483293267351527579221674636080059307062036313560086638176710723389973942583776801197105748876753808305842544129479815989413340802716380386814584416238373398827032910397975548858286429067602099901835484747476055940742702489694926889542577901726772036970907510285997951138692755797177744995864292039367337586962707035075923256893229832647779565867588844627292200450615266733856609679620875832690464108453736400877895895929567300758354384894893090290856966934656370788591524194067629782980013144380770300730431850618370618398005789753690245091706762898297591555970251166340158676516275903068798404982053698561726848005658245969589575831159621876065777884159279662659674436835294786186666093886386720570829218621024553721336136573356588566327235301765893798312288044463575650402487905952604617757312054537006166700422706441213316684792318116128589288068861888829698734204322665836313736715210749121530006529904185163243461316989776687561617264323544233755641535585907574640196871937644846436337488646859639932318328506732743104677704381693278011299121630771787786711210692525453498957645458294449093792632815580571835724994984248154925037060818566499367350121213126905329413705174038239756453222869893282094086648591435178041380266198618772657877472830074418459650588461576588267724946554725136617977569150183713359088761696298074944792439845081598214198790072796693461669021387561107171766265710500087177060683194760562479932303517004236769124382632342653706946694626711416544011580927837126360173258715288497719690728476714842630482508527745886960362519093645488588769547694548655073979854913486148276588097991050980829049144490389861091554920248620597996205607101753311700963679915099048416486371969678181271533026949580920492774086757843186330035474363158997672640284154125367041894501373872682619027449920266556920093350713992847549940253984029742686277758669912055993901252591645262861596769215147536987321175225400105854147709460901484588329920817881731555622542630048485331680231899215778971362576176335341196870106861513270333873179675247028022439373005833123898393353962509981263603919101193561971582250464524723670252286894985622750025616453226977749593296455894689519843249012723548516206028737171216471217422455546600874175079324343412226005547177593402070539651657445696980915208979583160597755714997897992122881373463991109942459545072950016317633983694031329320327996865165957242744012503858204027134404153384209839381312536655385242008378567789663125542080022488115081834230153634033124569549260175611832141727633997729997658743034975848188564034756358833473478655558393798872581644270997120376141943708630052186875711007672795844371649808238223846404373492355972732676608769864494782705759144201876404457211691739514265036472772844237884441875815589539566783089682085340491151378217156895136077652625774924471977730179882881513830858749062840099658086143924844574712076588950981966782563507496731162180090235397541135294838009173637151444532484792741946606730897698215467554511396670144477176319021479880115988795561298066697428490557167021142071248124128762256224491699848766838157748777859351047906233374563062496845983410406819668074619971180947342308651312921226689407746347212186419903672115216854080847985937917999423886957607853515573301971849967388012034734623118991715729225893309650810480468021291340956830074655430068510003306281794746244304175650479616231227221402725468109176966156938559004359469092680396079992319667944176085674628432767514780313384121596046220925508817994172276017442977675406010052528388693901994920987105578061205990627925872264472700948171761595382042101538285604283345566756236327781601674585553463924700117594483683675785109762385414248558755080636993951504497162493106546041469246167708389235591138741348223800964748812803949567308106744246176119070395869974791060313257891824249598044931290169630285775032881906527372789479992617302676993487779260621263340002900228399225604467250377668989076224234348447595043556379611500765880986781785156202276284221698814815848284270073812540372974441198768729160967617664488348512626560131317942861535468861518185067596920885190680564256272402144653462094131744784836691617815229389182139821357217531837278233476245972822136622225611004144828106797476732676813713597695778692362001238511429455452915583581823452816050446014436056723865019503428530349624071515396786601975987609574281285783367782833740014046071213367132935323151149498928463694062626531754657928162505862103106679827475082234202946031584761121558618254598275211004831165430550906650725761860915856400401011243996712137509779622116017662238822000477486716086513203603126974973096963731750739280869088468017291863733003879358320684645085886319962791826591180118695038632628933879649499694120022662846169901741522382114654356543419265098696329825174502697281385738416562409401162965488975831497549018302478511692793649600232213758145391907450289830420894086463041713364686870302970606194392155564656075003083340550074413118376112590268739157234321322877535742939717799314385553880182655232952538379850273806059756743931263850216005270371356305367747711771633480360721252346220959212522677930171816423348939547091625050576145125754007134051859046153060589242259898036258395379105800132541986143505044888484624878045284741596696277691042928073232409579644599345741994147260471142273800602791703749151828914040209675223625123833754307143377058673564606030103521407803897652319044595413398263217892826266652380625854859826843224893189638161978394844153398154693201521241704186615019049227978269547152417333960180102230844879815048239783545388557288088437248538903615157281212871025930543612897902884550727361591325060131969410166889061527284040694309886499939665513385081975272782616007928462881578130877202987523259822478987041943312411311314601806984804830211212765831217231434277866629661753061161901161123003834502188634982055687362791752970875832320365194646280712586418911568414638542297690159106029323619611343904203825162991887929459381688724077543881241726197950627449939291770497216181112545726387867090943312409432532492278563850508545627188426339839885844269393346515876697149047945167963231101109020375903075008294713200030925521552854341212238420096283113026238890989638809427463545748395031473538015093347441189122221820095384309991214161095910050852094650555477508737520232426089497537184984797293858282991122785400979529181943524301413281613783937893675699588084979551747714913336895541260029434286168604796757362869062807106262918361360382304344561377673417506302299851566200541052127886779388989236887537526839701069657568473453047766116251392427830067437294544423038507291453251201611298319011222499967835091621412875993683781768203729292197451852887273450579507119946599035161101133747542868511986304016777821391619735708217587968963431643159247801573078232588065716458820536804791166332828658014112797179242090386070990217393049175296059194149350080579421944982544271895977194342519590643904796063816668926310964251255037053842388484996313347386490238783751704927459062910572478188366519297822985420441132242850684076528384155592130193934373942546336029132990503231758681283625267170462124612265162278192273520342811161513877879188824619287726110311879464310116579254165881040485502623110002111569042851737256832087416158889743632228918695343510539147280963361593213119723493382353202685586963396101811581477940580912351709319426920172987457860886498887905686587230473849258312037681873987907971132582117121243976496241843187431105666105427827764209225563118326390511517969500050664898892511052073797333018859000258796722705348061599428775980698610600157552989967759100474101871720965271393313117582037348696152180166495373764981390413922090863169767702429990947001976420366802990221557713352475204728691577566058923445461450465473796189437257674519783787998774745057534398594897062844705033726619115485334310992325981764537499528236079980039391300020574795812970116959052700464836208097902615718849997900733653376317620724506323928576888128534720109148978339054196778798844218519992278005506960482373055254520118726980327472132064259472130137892650422822812486870760647444960060641770723338686960720897892661900589879559470942387050077778024644375813177811120987347223609924336018680615859533820573922822304789559165926098578273635450667367249292063621190571633881148291161310088347433167779082841562672958817586610955643253320633728896888961056162942607199624145555171472631416541803757180591323513229411692707873825990174236574343501689122115949533233518516549376999117054447978930832565984373115223740452656220700935148554760070850607223209536298322810591313296298914878606005733524495378150586744734634610531807893036732362884862610207553416476362562123412838125487275535341870846339084533048972536432429783094420078304837528322428060784958268956124861088685000747831331918738471226985237039916346351100407927925520572965582350553483608290679043633769721281358951837815843552073060348802598239167530630913787184834576832684804336535097449352259241423777139706695019358292063085583953717032288905567689457038438499804806996317474291796347584303976672138639184148942615212045889640409623829782506102016179542751262276987522176776880024850572636270664383273517261398097599450122595069786008606524304523139420597659474346259165453903985101791358386779455083800630948987284669128175998386269393105220639607455397003076883813289408258371758461972372308076377978974166471294083767954642099050171941795067365996409141200344333993500905433040493830584711593333688229511146447678885159289124535564041231589452189773644232558680459190755391494010766483120232114726000414644460668114800321086285529839606938323766015766805226971636046405603670965395075113193021871723623516242784629762390615032292793435352673803724614764925021178092774285659839917713427569676835277553395123624956795456545418562517059565058210487504121356254665996452677296403710876325354790265830559281528695976012241198010158153182497524099968246679897665450855187725962726423222797862022134357478302679758929392020619887622947750417296925807552952496749068735425348081467738828020646958675400380783518387530295785811972825883079005554349826706204036015686659791631488648535064471306683833797069744920725178077692894003759309585971588456338575613567261320351282488155198297384730163711229002695787565524669062191855035153885148156652919570654810285926323618957562136678343555936212854930476809932938814100139530801040234393689653142295883476038744010202091191994614760304047947681931566545009774576067865026043783471713186580110425313780697838453261898893479963231164771243621254464735960883356237688709369687929264308537677553183883860925330944940110201113164640359732895032978930407531314098109427010958477148187500861199857827635427930556005018944333734234020973948624935567436924526314103520480257265932657141673290780752666147566561859064308372858417895776796008504797463231353002010178106377222906326872021412461360658933316727936928419624360438163373197744427599717723222383162177753298602409820286292205642815543310536257745658494275809280302501207965059031075285281397841984499803395483231215477847437785585547305873937203713341140612730148068218165120193839047193390789546345856388712843305809129397733542991929020485888173644481523501299561629132016858097246730582835961493731886079168913910172047963259787593226874332977123523848353318805695642738406231262046078194142635896049924022367583715718833140620924932829900279780384847588890299785534224250702011891936508314462063179986276207350933289575678567931415188780903734117392237936540388823435275943134916453364840556811785880277630052813856236619991059169013787884806743373771967624889325288913458266997149143086884929115372903725235652833171030085082970363380894765618065972214048184726329126748428442989596384873278072082521126075565712654507596730404629051336466164925521992955678168387121265524550003562463861908189447802780478774949242266262280102391173158694145697441013578007619167711307575401540350408123002310457878939241000304567321557107593378223633380777824222732357141460372016351161188227711839342167546859484917114305058269327931258329279448940925361012960532689950174676117263403131440881077765162985661250818155272947574083189688221814509180331247259200873254080084666564706803714282495737211949121551649563406906507559299202036874247174042462561890857219240402811881908635172054845168632065726074359646429858687862531416331518452775536575425272182746166427105260870444125803716340890219934115942731395379275555857357503060578297752696912951993151124857375894255329214337253816455436392839138126090130038154115990535294993463025782964539440857111290465334845230143365773991609322412398759380126644346708471632249222660607357269232373917492490415057817640885544290309122238285925490035293756286442766393329434040582000177321074191050644167651141657520766419695506303796793740064307186410291887707895041789701095929735852818552361310143249873905701591403556624109875909805285619193730103884292586317940868650984503215415566883459243618872325749534221179477381875767771125881360683262514708642977541817945161172125596763956564173909901727346853533788155221854307781084421788867382205510134156723496525434313529457968326746404650439680646375199990730216677692991368805917658230621375551604186994870223450159562635994399864935528150957837047024829909775126518117672285876157711847194958132992905720400487171574401108055948509166323970988158627159399835899899438514363701420015135981439164951994075360221687720128825045416997132049007206904789070840006509393974640593844529252305768331678750716593360243472786050829867924745711873402547544356207433934646968334997633499074633837616330597947006012907767677743495425763147071954659303053019864888031650646133247053212918977143863071528539663197127938941666512354261610612447314329568913147674378727264038221403219956734064099324286746135862400138864652140314464468821763832078109456580055193909265036522732443645696065539593914089761319348765331869097101649158560174995218858544404404274731135804517087783811580207754914806866634751637254157003615468452247962375612725440106650891515248079774500045856167413158558364143069507819683483914302451277800684577968856770875746089264380886194082576244149402907984821348075865073775519858834040829535958476860102572833587072379295519118899714414977464214540271862452432425071885263416144007226625401890214433018360999050586388893912667276656010820232429398262331643163638824436773890708510812956059096881440661132516205603567891573239300512864324851238808886560383138295051526252900510220551399002698272645229253157469436312872275214454688161686552296326020456954410374469292208471299433260239791185816776848800703282021115547907307919637434522974540866634319416468216822736322496184774329028844405874936675183903901250087704393089222475182613174520287061524524354003286684367444534719056726245710710659328034873094584708099905113103779322193500451201905174096055018241877594986732631217296923719639358589589724428430544322116043548695359135082558431212547676655707819780502457124487048959018278236491109902567595238395102557607584221187813709826825631828821445690072705464414445318153401426125551499577859607755569849317354508328546586638666033862287522094452569067029530052479069268880274795954630392483635863835894680632011054771977442281306311983383933879102961097975717131465021542146855839344528433773893490637277405530122888007843973946629130608334344804008102331318404078467112556649411972163997461652790115511824194159229209804321372389628630579703699983630303815661625460011419371631104856943702889976984633657910967826090206681876757843750075952589371213075311572197222506877814211064692655164935635172964744220547224328115347649384998227879397386571431990018406748870110335707675952535818907771529004646955281794798928178499489351113018316297388089048796184014510245129554169145701501635696118203429124302883313086101858480905835221832192715053266963489287107814788622008115334620575531367543039739182167395757376602452035767521488076376854204054183205061282692143921746959597859207433562750242476420142202644147004108072818054206097783181174112705449977795017436238670552577465360989417369758366257786773268070656838572653031850175920741540712426997212264019957572158197538298856153144580187378208567492836322968592620324822759151293525469436139983450975059862389591920141460340414771696117809863804066777241356028018590138450063938452187956853801217416723544117392870387787813715391196279457076134000876995938576845870061896070711017247728201472193402110523859817862252395016017352688740783737147860695334897494883823629537243926982268385053638123534391792861553968014235087505430625532838172602103864887113210228567845245240732494965884582179928918865711749803319738393219611815993655231046483491466676048643704466472278105369337198455292438623867688297169510706207598355486915064306402208092342909852222910554844209719190437204829509018468340247692358143798369965011254319086170007502241324992647755453183488227265878322965635677216310684974368757436275923088343762773692515120989661023449899031403202313637850794120795695832794741612146876588520374886882322065143830118538975924298488492862565726113885730281484146663623821208847510482836682170480756446163412909001290598848441103133786308403394607861036538814215516685940122184184449305916091899791341163613134856534697219891845031255593976357191926069979212576483015068197488732222636326587805976198253440381295803626890445959661463376462302407856698372742354694392325977658225244528976705699478241093049329348165064332124081415001151986650281492249667318023612943406361021989671416954518424410084625971078365265447695766460811614399974363462242456793740786745251633570672169914720387313729614076391540472046036416317022820900044448983552248189834584239694109457346679390491596637666234715659731938077700761653680055560899050128537130012589584203259760378509835815296364111826191139209241368951689567793269673321674935162397036162218388757954095612913152881166554996082980479832354503069465585281842733459696639059417438216678170555183685331780476380790077275792035552980398285758842201566906104042239370259395321078741255573208290333656542130541441142785922135327187292290267398543457718230374512738407578475846411288710679187488479933005359551972876757174186338748709052839140372963366178785542643839607608874401142629143975377381218907738185396183868387166756601813037754616260438539570590626875828703854052049191373716233951493139184595922924741587286669738337143677759311369614206414767085545198513688329411100216991567240494093876110295290498230443981326102261902212218066155860249401416276083238169218129187740668933417868905736460765946497663225489912631942968242308392497043837297948772704976678905438750088785539248405740709854486894912484857430664084393300126831712930781820059603319444048546849043957532779712617529826861140940996419279557714656278494427031049350542315498801970754078603941629917968969010429033403237395247242408884779845040447910958650224943573004903244355276874997717668863330245020291306324031440721327488540997368315642936522942330005035382571746086413166174990895797695494845482493375189778052596767007138455611577806409719372080922253872577074842383526421144699550254702514769465968119991462078251699394533363744939158453999510640287762015837720773973906833831176863175924358100301098163100337149054495609785940477731016089946141193404650975032606090384254983404613702671669313658996140271746778113176878052242368063058888257541742691809999242195655628909948810264703253550126853083642549396238538224067814830143472069949798752751791538174137771506564747511544643837606238016276768339106644137788623426677368707577321456639481750140707681275404605107140408386834559736552625303196900730533744321516876463287566346845996385809509757765024870338912002766871860211405567613607241096241105608574963365573206602486517526610775723181453317463298505527408327628744739210501607986543370167050581288646722089077394227099770071563850457754995834183196092624672691620302378838475494119935858224761061878538822697325752268523186560607530844484280012580558414904477265022171187183062124586042451845017888294570492592750082892599811246166762714875322314280880432890188452758551012997484266127016391399760727485980320558211792045510467716730807540552938613270956990900491475693327010129565728947544378466100766617653301299149274024935491132359548524982561041773936597893612256638360050529029879934108157530180895624501288786733494605015894468272573613532315341167158234259452894511133918860479889557887240879952105916746440102357620126186382643452274640156537777229033402792037170975174930488696600434243181822373439538932582128837310633881276746016067459953644887233341003368200736707686479878358835053061255282477380352990882165404411606869581157252683385773652365793326814387648222442946813866739495131598638735324077200261394066321893146984624150833869246025629646119610147634382074636076311176216808088857771345732424515511053307816890389327582578975137733170788321433742826181383309304257154489612473055734795778690702343342350832693035591272240997180803966820971575412554222492657046286659878576649322644678499906152000169230421575459040086089442364445510788215521480594758845799878472398687698758998904925612161455633680536987586183614134209604981815229525834001880001894084534234315558956869215116099806395157135346448572092322184214670796519248456402624309083617745041807475259966426087311289547449655746021601549028205491972709891918323233905207955242155034934912876249708735886293194055179509063446221833117458786562048980873196989552551059749406726555959980235987346033284626957518999549443482024008293456827994357120957126284843509635141021716569856267378037627416047069075087396499065572907102486126381750278972414880617773013327142980284652230035913555591294079855857533151904872380685447924972562246834302852540239825942252026287459263709746915172624869264550572667053290661978973232885588713714326740712055257555005193382622144052632157029266784391157472717401838280677730123585600782395597713874724871085171827144716770797001909920240004105797749177238323011991305774893933655712183658454140244554885905073540472066563393384394231576033180480902677237378323623189469865126351609455480280244204726075969045367809738952212772368687256909626040074826821441917491929703503838417071086058013598221682032354506734902095936133162831368900946070396147727870061406859810750415715597391493875977149941038890419713955494016048596351277789677340551797780065558179056170166409347204104324477807898949562347829594705010334560205567918887619160228949425804735911985753275660134524069823950599290623562385081301391013022189195738930053709641931924314807659056424422175198055754827711969687511215493604409951536640211768423215111638160551117368199138779554974200120918699623564606953153914246963179287165131351189893912324766944257783390564630017345233428402232502869772832325727950423080332270966379386409070317937967285315754119194337869836479564616664898221824573036987229792708501198282610129665914799995505600609505855907367696820627319426072129638874078611223422151279507400364019489289521875564411084269045841464703549605261596174858011884297306879565306431599912180918586630645264238774696934508492311561716384768104978820392361146372821613672133344973324587892401391721470632044277326578092219111437786803964371942877029818081781120537551568026848893345341299483099162633617096469993002184356246755707815174574893955481341585808248164444993787652312354143633743076013338209119521091431705444829674189455380044506392509907375913110907369457619123001190840090065839405921383031923586439348826592131579507429286589800177822870526435437334681619363373740224647710984961076386876401441837770836302736447381885236848327751493454192701591339623632862632829375360584020926178062420001987776343248542756635438435654868029664925887800342553772643127076350419125075625166967284863720028491381828385768011908461212876640776291778945283987250696667198867615212769835770386982434309031905553488617792791613647835269833334792909698250086217160311707988720498715203278585619127476872864026034754591015648580659209575832455673928335838905190825482493243919222258834435023429622265926538665895413002085467333646843911035915913669390816073038188703553915705589463301112113159804457548766895809470265281165603066909590048339134222394989120113404427784338353399214337133845316992507095943315812943366646928385411396649588098997755803539850995065762008592916312439670168342854098758919639684933933542605229693271206087872574619791960261080122964338255532363187507413197348393282979829512400195013064177819153622236388645000576981607292915392289289837337615173968332182963545524090129816955233333466034439251358879311545831728883566201309409297589899041869227130856315741630755455556872465355583654288369993479580583763918195668701613586870991121842232210575438272808917205209904885480306344900219155379066582943250917335655191266963837464708681473996095391354619773749369345002218382105774551275343400005609508288748794236546884757605026687204509860997095764573444631095641216029120364624670393242262276895553809805962223147081269128211432913342828689978281543659087428261533828669157521887430397849975486384610066084537890041976449665628140774560527784456475224259098648471151690084176218999693278623357552584668337611334049979525062329747281189638027823225095260150400819954301838164066669134978910160277647379356502880047216970539192062048003765545888397793006707719476830524868247128472703118506149806989326392491651947527886468714332800513333584323917665452925616001221172939075517674976883773420021561153228068398048963686837071058684282983365374566808418210140216990888384195276175688859624493179192098585218757494485925244203517025535042729041755021502826675937335998581946715203252954023641218157022155933583880240689699054672542442009992758687245281424976236737156338307368084530992365155865545280718145819371357172383361783410713619969108344489381398605918214922016099577057152442230282530534921084054212774699841420671011942228038237857347322779380016770382499867250824365535612894948739885954295296771176239916861485182068426001244655314847711908128972697226128808869055760315968875171407282811521748172875130402510864070447331610843948465701426747623934164953209785762822284915794071184047399241757153399853527018336453357609559023182168592451111117334284689030178415244322207395120255477641607056567767232535339913301052363789756598725699586915314048856120538035012626195820222489382035389389478563526365416500734035346883985113807955452048852469679575610434937470803978395238660613954714697057114423583565807068449623473228242102902727932549054007974939114712434340909098671245113310089439806098502725678778681937244558639332707785444353217050526364660328981428061277517019455356750906332780410305901523154712393627315974935799758311187298743245807506899078037359339515134219089723861278285263571569239606325813015633145240427428904431388692700411649256057191566602900021182593152068231339577906750179329843755355244877243563940166315915071380036943714482102475498317297643414172330835207099535548554872315454588038696959566622170664608224237423335746172963506218128196414016903545961238019943605344260859362159884491038215057541017322492573813064647377237136622138083776651028645281966082823450777135926552115337669733216420992696274124110577099577447878790876452161442985659758270473990065598876105175657781274143358061875323501775469206732735026544815846997680039035515182120703711555703920365962709672197680898369192930898196765637974706785148167365542767123574962443120350632733296550772075404706057870106282348953345015682088452427663081764009160734002722840894414201062630247131952921221885709742184063397349821952456276952247995901279502208568333620310177054505328249122760140178787051374209608167690040668785619353528560560176189318780020535965135158599357487025912290732354980132140822646188818405886354765226253284742894280784284552910150002790957839932029060252835435416228422006520710506613222225298205041380740214976786214890195378694516650712081258568237527598400060697707719369191177020829197437694497565494699958244934209807942727402273885734362325067277150440586721653527316045210831850853991865560533160200763048929690572220775520859691389518314104483532101762102006860688793223023443270775237653396782979339476900612870315916485319527368591838293066659121831642046585441408372820060427259068548814870936391487230032104825536883626381679748196607199561913471534909453777487813773597881895869625649590151901626322817779514692419875123718144018838971920443267731619554463201281048762052173478464907405084549242670063605079968680236172961921966067490458198507224767292439108950408872578271160085959239362213044557276758091640499162534437284008988913189877487370997903102013840626569646105767026963215609650564657864656871739750556278114479483972575051386277753018669182425121838066360866291166200602119100707184578476268237896074539553115812960044987445836327902395761718032627621974757760946256258150471343633667927824076679394081488083654248448343036393143373683943152078587989761088333128611579034146374632951134610468787593107865700425786954064685726903796036441527362167294661459759289590274783330490907627867373608778836596443441163340347163958704605488051564782154820875300697757949874185093652293426544921059370866838188901500223169862182706150265649863178322908679151715195966828735315303821679348591836775775207301035372614249745806446245406380771146260453893262321777710647810284387926967086967781616441668809716568947149633799748234864306785989784323360504053345415893195307869979163763922759327360661624474757904627374078118140944148390475149223809130397170558032715616826516874626875258701964776459321032926644897997286408150571828482259967281488579008771646651632146698748698687998649266738890089873137520840202378746514167889937600541382575057253370261193391460498053184527456772588260276978224128589098511014196178466643424057266983749317728635800100997691965247275066478957434926584250636003719705063622654910457056532331114519267167469269123059510231802211528210726048388292487540645327636103406653531939745908856824027003429256050580228039160746240172549004881438394102989571047371513166012202287025817745244877406800189844066931454331868573393627618717737506346320579700445737051343905190171511628051493114746570083604017182761373761998838064542249900578367876899435722925014236176095867284057535880112781782731867920430997957845363783371178818830766762876028984600201227060363612786494546171292708235529548339520111669505684561340772785950525752194043706250034091484130054546371960254126972503956408905936454849642877057909705952377792637390141941092526063642865967048002704942671359489459510497385314646813134807413982566231519249442619542167771078428174441715865576469273748380305716710555432712728976560041804462609119119760896961327535695925190304923230778227844917869993153819128625787730779439924636846575787587658901663194000607794972934498625279842990452146455672232640666332292361780291937825525717952094200502329246529137107329114876891989689704469792166496270695255419030227805540695308300318616013323005705780672599246310742928796899665612514609986153142227406212200878584941474602605761437267440131020909477993206067744807742511114007074880941752791475858312128271646243000234126218190309743690882909269792192766655376199923994805892536844236372114665012067285250694549654982132344111949910541015727933955284581752002357736941607107922755318218356588385476560059139957521030736725556202410753549228905698839156516071647595400113552609758111735821735685981632968211435266704313882985510405580417003410207010857852209820388469600756799398641994663096605504427032913751616091073940036528922647453572151131709057088065834892911973377313211300691514765281593822390504940229987859233449379699597195974500201034846536378475010569142313120422627788242888275084053835666580814830536037516062148149295744114654320767123524281154824297100508822488570658115070554567966756725875412706446030226955970368249345137012127162158082041718757351464853398330769364012577313659244197632338290876358168752809993081313418634400038831894983935366962702025480207818436492038745599521829284104380094157558704072487091712115516122065941780019414343513654233342373580560431813311833761469927089146216331461787369603768785084550157238331879857166499062092842457215292370439873375701134107047105029065577103418808363067889171692197053888465825090953080410329238300606034987296356494647600266768116630468758292323226952656651055780120969318679484415246299517763599007833034012245655870827885083448841991361964201207316911645473887032845080105156011005982637278103535153408192051061755915924090807337257686675413831381849233013164213206087605136217233991013710232407586333822047915570275724411030594291183212798768123826637184523053310982901911968722627717368211143527798098496737620995618088179661274721456051204278749293152510116469557554444450515407890094879595072619047927260519865806244661488668079532901451408027861719907312226651271538666873865535889966588021136431657430716383610833798320369384907698242591331495404367444588833472002315587360439995271499963883004715281001532699909940613233526966759385435866947508158807202390458927742250688680250087141761595684156492724497850085939267736422106030033008403343249142581855218369239213825299218877130695384685801215546914495954037874969804950272492108775036803734074642620502153547273961801826497400993726187464840951537147788877643572528680227268764550148362736827903456871346956135244722531158879410897605557325019151631632947192081130882106768675181071604949318471627036888474742601526447443431391543655961967338631720170936263998935499761457644255771448903229828922380844535480213577917524446583936479262840608015986780867706607396030431620200785395488349380545809746392520244829049165953390718086854627492565056860606912227036277162320853752153850688524426319139141167359969013501230474768239410269823342048630750494166894015814558517687831782159606613880359767138578835681501824070892299649272611844457767723132555115126573617035934918817571322014284307625898475282895013920865676270359087101016703995293109576069789964158556837790892435898293648827560968725125917919968258319560216581265507555954043094195882763610620791984917604132745733871104029199084254690410121000909742078207646477196804481457518221770449487037810007339479966273088320645535786766328025886023865304551929740070274904795449124921735325045264365262134421100932380065681567477402147128818035810082032323335660505623712782630461154041028948597873774961561168966782922429471797584470467784498683152503119783269646981692218001867978896412747941826040642595640788794651391120659060397658154195579989814841407862987319472827867625783436450131395629212870774093965042202129883516175601233432237108611580649636862243350656158916844918170235633215210093375878443439608847841445741558915240289125511548826227615094706791914723899538171091403734869386786845388669036062361309296844069042840064336599633999362480645022649293990201553192594897143053248419232057109576962144582365646260381627452731612086191606570819653548045315769456647130220608271125151509048319182976622873116764760487706758408158728674015329612651664489969293515935947780533911820109342930491724136001621674966060765005545326745497411784511160655597599737779373341763578015366607365879771328801728876668782595950249940662502204523423272872914745375537503339249654804289552477689584636997684282956827913397738717415030660726361300426313248759010389085103918263167238797372823525983196671078555996237669184336644000765392747160496937431960393361883366320998025768427803621274673485717347489472071336875250805566446747893270162902012521935993532260161495785046535077436801435501474588857467303207557268799328758266248348007388196054740931016997505301124676704054088615124776487036328801108702461018654162649496731247886166809095546197170641775094436133475863705076555169446194281415323052744134710623729091681204731213562363221326422663268551893640248949454964080264030496535731745942618414191091591169832777498635914362308393593626697120233151642102155020665036358336214795382325865114463256137312027405549589253215183576387337770528850190228638471990446393392860207444336956980593546130346402568413520304182908208256864447553217550722402098938237571380815972360668960961423694509531860935876445867438648996614532652213758277361621939885728629569935962079782370974327695062071805189894736097255661940500728307723568269638907540646473258913513934442552472579432833609003818080312698755387258690859706370315587627646648402473223396924986127382874284430853194809132925529119377188849987052500057826355640525442880859440970989848507950140487602605535074947013973384524013022225656875548758812847694770521871527652288653819970701119084018905931802146514508195450689822862100191085965015136514086194069826326981160924290210274958558022008492209441257817679389902107522431321253560940261838364217470081420155429555741055923728108284384402666548877798988530066393410712936792045280779514202182657475454783220414480773229993534507652831643785335682341928755484903860912401432292635089925160542579660214819093545474109409911170808846262123365344605937979864518858021783785322179696394700228862144977316579968650929208288089734394335348435326344047600979606616528346918972098298874099772788969819595316910439020728835957074987127928020867372861876154441360916672421670842581284237237457884750401687331086106701270276161580978872315533477411576683830805260805787346547984375896342484598547507692276004659862209415960944292355191751043672958363753560598339296593828544006082810067574330940057762315520505748410937808631734698407765948626153639171956535284772784829017027574678691608070150819466513111486967619742523120477157167884398451870032989475079192373010233376116075879933382721941530020539844044983443252147052274564163145279446865892173210653975719791943504700176997879177860424524182695844580259814660410395869630501422721862927425364527660642449329350595255166772552239345431067642841935326963883624593659341517606681592545525453909382096594615641204933702543349348951494309973338137719678034246580745571274285941095211244669013600596805558483827969090795430289019108981301693020596419907256358950099423687124390142499183726995819650494007245987937555979124219197224232696639420515349558950398659932183248827072909523808127232020050914393008274119277789220700874693122150163399721804887292491161087203188750702472198000079616219297069090392575942688258616603852213127339247577366635576748674305456228093601934420506285941221967892861129685901310676749226522783564893089389084777793808401157334141753102115663015449233837304642025823203366632240653256599560770917578414326778174417582707257257848096112621236840515615795988295042387477222315461572285497521701177460299702318412132483405450105890173885982585394883958647383683117820018416648934668846872311445249598194633788617745504683925877270066084625620676067308560839684860574487451162424112740823910188196823958161019956484376391299050795293061001493743115489016254479574237841033971553197460088435824229643943217562911743678638386498186655813905409362018440331662503332063031534100617721459688121198371729254656137231808707489644617318332012141055701305193528063774339202805661050991741731345942566569120119349046527219523120729623410732743168337044918647318656014663872322020786393545917501272434538702368484436463611941359975457300317320185154210676664925053409379557235138969322776573760014681276519033681724702412619162681262727191718779893071064992218000500256326510295950822650034254272345770229761896537019485932926909127113487160968645950758303759031059053377515455471172404959457603000583777816862282111287259405610327903900272644260619522281096260176763329256592634265634821583334319216673956550365698573859609875577816906986514114135553068053277262258952326293447020970812752330254719127036966275470378966677352894075944325066623964913125373165525931298847071117286424500191310647558902557770003195362166366261643148607429457622753127613453501996373136474980053831198600587837456004072620982516426023224416012091743330066960838748902356787617299842728963062963028534940045494656315000103029769628478396820661133912457649395539955756338543121249087295092877054654383201717856088906385987231394454553208909851667510864596042015227031761214996501294770712083072638875167179876894118821914462716330594355197561247217753154583561168916410858404804024576160482073668052233429069802454996314365033542853337302748037257413068136379035364763968145869976441424159989817944341444652611122736198959976179256871764160264780467235399266422431720083221250307165829681188173719769660418553020629461527261030999498104947624465122166452742818780625929496881545141912283322547308992036080383238856950034011039320127431779531796209852045828538157075542377556124179199841493510560858713725280130797149888129342537340946676050775811700945315917132157195407114063668867252122188297479220035822824273846756506060425785632374867673309444528426818147031191334968006460671920790904214315164437847727282005478953000461554124648208292392750342866751855835311088303323836245350410037237984965286755069993661256846822549786964479825356468246744207953232148638839624414000823172781572685420941796909680130886847990147346897671984081328887877630653318137835513009810885750856115279910572172842679863969581176762285248659837152895563926718317202868839831455646315423504353785973315797658010079911868093924746704990793414822977793592883872297049068051430015065372566260987183736261954026888031724890667331209400044891379588792762322171324827957212246877992802957071395734218813824184837896390971496630835601583326621061654207198510388589843965248188412584444742340506732638261563441045444961346031564041502290453237191155711479022566233894244375387337101664218169798962364694537434527384247020711905397819876025880616512420776874798335114236946047232937586515427256333708792564598680764303033071651698827547976160315324388952987075927650138992816048482022527420963504048962436342576494344362406140831909203151786299976177113248492621614375575118957491131504716693118369280617841921826346162103545091176655478193699975735856612184338641783171498039996682188744696291795467137296193142083162297293871451190973297038137437893561280663600744632825036272269529314017570097573828950510543699692788369276799871931995578202012425498943890454197323237934334083688227988504935886208886627404903081632965080255704548864919820395233700098706321524402019872414961944884092957440677545702738092884096949028365206200507962834293795699349316427789830575361960724195471776292665049242284984807787991842918824779549631562447301772769039364488530049871174386534281295117383150569277019679025636219870408487783364227299669422529722347489786509489557064502430212041663280208267254165328093265126653529989932020349507156725604408151686296430003678039688096742505188275880034426133001923961738705502145025705363277425289944052474887540592545999289536475393100460555488370561298607251190772606527887926368854096004921321905643723463008055034054598854592976942958408161840616905344707363211297987753883510371923750455176682326225953925887576806169534434891817918652894079583186458002286167948080146772071311721635265568904196713809860635290813901058370706720858491026227104205329112242862023741060580841929373336029736337990034795353585260669256313164622725988945357466415614970047699621127595900869073583062983301082958450789653268463547594372178461271549342975473292058069477425385415649666554595168353175112202306084962256910999372473807058527429046745051047816091379877555459385067191850841182716915808825830310759814008415499832788259277659430778424792749449591123955259669876659914974929007674634491224049473173312970611962408106179055065560040924757567386249460395984596010470336714669897571624129623844248680078987817962115813511581235437768069650371392154205480514641714779912175167116725957478902540727958850192460546892190236126149847171257314859261355676625639604466407484737835639908229091135415398421643727223152035819863326195863242463087406968234652954698364545813772735477791290045008711283623113286311076918296532150980897765869757348388659669136634742392832627786993278153124942224612623972098200351216700621775403475594265927888790201700769016759133241879692967059180461935773524445832336367077924521306937506818765401371400011865904521317507120953163854093057905000787771407162201279936758529749346697573715392234267104571838019874362649615824844523971402970736611259713819164772027256953832108602238968943919849544582430171956589010080481074506514889687258333644362129671218353699716166388991337676415417005651924938508975493576373467588719797271729916281751503952569820229421278263765193410979316479980719748720864103372778582464988494392277677370708362305374829722604142357784744884454596785080552820285946240645261593804477687438517903421812721180776334602450819169411045014216330595536854518897159160768782740104830716520776570666138423567300711299711801701931783098420591324738699291613145213403618532983878594818167096161488033303545629278368275174948454978962093082245856324087935634531658364758402420412425769983589455232163794411669692975226547402958229302134890052893459292627692202679179012340226706196196921729965692645408124741873103213147751173079750271970909356829051835986442209614050274934266334717497031490022558382888718757724554880360529247998731459290802233705585015426287216260581016556162422867368496577702399908330755738451342086407393943292709226564201008789427085103630003811738654315000453407703747490754825264983386221256991636513970022768651681227096697172534406508262649752438474332847023852623713430700234164556432629952295451795829538971761964122651833720300103156690425404709609812912126483127288564486183180616259280547666184179153710949097978144432584841038401545552368966488787596648118670756447403659151810715981586178067518975993716966826045559863445247625372051968046135266302429926751111865361009907741313014866429038954826287157804452414963905539756369223512839032846165938295089620434025910006918770764368879706117829637795675097175357092181668047593830743529142519023971315813639064137233460586659114843019707504948145590981182553190918081753469364514828478493606704998445603755958989070440719373947026231612161908347676920013947069020864645283488756774525217036477588852340824703717556061571234866324587081661426093290807925872522205030558336387244379823217240331788278425954508728102630635737694697238524807317857427664815185608531750564820017860579817251742854580066183991182202822622543304075642631755785804634313582266821674411973826746989940577051716135249123127522911408299138964029953119038533816275525526604778355817288200528223899502008735547677205509912027339549463029984389615106990234771235229056883133748282379801887592562233571479941775206618622777588810540948721733863876441904005238109250329637420692681289701167658189406296390287387054647912884371668023505024462976508297857710316370761117592252831650585007649985703602200171597215100464617160398801562869006239284260466229430473799366610862796762805790385269542452776620760000017569894417998240029149037719751253088293289339008115865455966126812252130810544306848219082767573559834509127603154803103673475601987989996077870444626232482345649909207717329506593297031353595037210348774940121178706016139205491384231609584905388540238786170551914745334012122921780652614788002197931157414801662260110507485881718768301379797938304374561087507043901496261849434460350269739432753308894003744146487221881131584711753914234641480736386544050271295067249791673738933955245062526341686399065548796735709279982538323104737683567772728904102686319426265228468329351817193828200896574352993251660238618427503531144417449920325236976914102839666083588867896493989940236925244295498934242569490468039420876991823000667465706016478396996812829468408582387850895521890471320737698519325574360918383989693497037822768114143848552324017793292497601383227328726978374779885263991570339836714878095099940230209960865812154175720006170717646095731277182237395987745935450880853311648057639517586643404593355938813987151116666501464313955693125006624293907641284170042294412552264117214442279166798995492502572921939200431742459870536880232735723597739905423442970707900445569045961539762322562268780746507048020550681267638153394744241403286606939898604468795428111272581536712019831051423832425084538641459394517275022251188946077896593567497743916526898341353485158490103710760041752311788164332415564421738224530346883346908161497517354018296919223154260233296786397124848019643494890502708708333291450745980989037608197715298619355609153120765894927787118356162957174124500999189052082377096798876421422521941998224054886786526621505464095189012260435755460958700519457238246926515144371400888573715282492306066272870316275145892765952071565652751353910038709874079977941706193721267374039825145127663644162322411221161538162830906413809512868273034939452266347032001853082527905572566784880505543454357509252198241895685958206907206968866941971877837626748399295311802977302154729499741534739777688078683755470358655537065296025424226000578105426425290657960057131665554380017420192061130775633382671635872593767327154838531442663020378358760442362471486295382212156925403707029916055760875986385709596560390076826683085604119772706808479230549303736083745963421447353473708306582775699978315326652648017359933542773168477418453927539654120076510016838794340185665551408741898818714663945401239242365836900470837294654122060500613838451668342452702022867023203071036804726246194539379184712336115367709525010069593072730910428945001267761678061988485386573178458962040101541137684484147557405529305132939254125840368919730219586723284477011450065066155364908585633881119880867686225845957910697555714035144186117226397779115996329762652029151125695820911790918326008880214283398427457011079444039261404034693959060371901296111598936418942540800904770652232864328985971842541729409416796890150426666543295380107821913400960119688219939210388842742011112538570665093362798634090274496793536352131429270543915490378220317531926075196702733492587889968759959022677905756292870495588799886685873581474220783850054293393558969859194008498812617035394070817969832644423417675479478950162406227133282532560857686650944594063973258801618116031390700270921387870880753471355409875860942384390097293072695970089379976494949944794278696234895304525802110409690879808570340254128709049430253300649168442839070393633488074746176616850028241304664036888531696194563898804532310188965114530503412435886819590556051433224439342744972664156424377808493543837419647625625357949300018431584459474963231368177406283847383368230497202786358582763001889208028729850060199649258094106286971136652523987734705427488095077509085359989217949800224662085981287174569662071554376850796261970230842232099014082369408469363268636967308740247711581560758912544706793053383465303297688283690517144802809402084936202997145762422769677806000826232057306268592716381403239950744130756777233354450399668076175568753405632898985659443143000629928443073903463705074574613692960807286729262450854221574845941445592045948139841655347538187968867475434121057085419293298528610994741730950475100049873499205914792276976461201972530125188049982350879950574144055826128458249685086888045121560697987928905839947901948972406449413633788140608184822802151185643182078641169412207536783049350567706283463856310771840926212201759956672912679310611212847640633887688532110635231191507530863655366584403042351088466471681429303998923236753862638979377434330790098267906081874194680990119927246383554555545969060618891625488988715912845365997490945483572252273382412641297247704447540731485435493644109695479701779709488464907374157255867100662788805853095179303189167436815012268567691319271758605236251520071999134208090453159849339183091337304904328557366077391325595654977887427730823656495748098712566114344242956884854273562064898004456395784842380386841792183120495870216975600647060011724577633800922138124149391340355080454488712075013740540759196357988369484994665276701585066096972147467260691550878730556319726362113325385892345858615792254567591112988913976849676614737905878889557222184948959921445801106206337341111783475722092316065610624919566229439420607236548843968502970303350136726535946160584932850846417316752379422445509225974618251714971028124378600963559663953339944590576916391421185139637013455852416933004273169940495291276976042999258628123533034128392610421518953552019362390802687378511145392765368347677314592009895937519861735123075216148443325993526437391373053368914458004869146294827739784111350967484643743938721525572536514889538087219589677477864194599573515042961930728074531924224102883949706630943305374748368776072447897439142640904182073869629512014893481837789794120316092098978861189952627799783812891148631526223425529035711395081822294157366495122637493987625499093793871725143135929759622248437717433767841515977462221447352154133234770796428611247787812270141931898258884233380456748329462641491571606657672876318997807220578319697430786592657381446525550095928010622338607296554501841317805645871735372787675212177202527242520383044074452054259366456266134982349888846731666397055695254771099943986167364283890073457538662063489169389056756617448882807465648247733438455928285567610069280208276924851728579298025337031285860520222233311877962163696826767986881173339511090387572449361792128008495050275010953893148816859502314655721369683798897653239765007274129357276809508812518140184635310050501868809163795908030831518481430818547632412164602654840927109959242568268431743842838653081913051902383645528473866882151667278421299669854457422492707098920614971023968416026522761337668749334128317437608483741551726861731108091177476573438147690436031704888540257442973719387416044553106171100129795256146506523616485089514929840305042606615615071056880950398611399719609783901407599171292648518356130852118283501474505459792468447870786720302015699909092721939623922229766593480199136991949170983984231708832993884088238779318582660240323625672055305536755088780314821118172183943160634166900735338086675961681962699712286950165589670625220020213964553799456021903635582578057973283819846008202631436700580745064425136534989870020692812711568593067791573993592557059570816388424937668982924541304214504963422835634358258828938444070585148887080346754586166955253857406258385421681034446700228987047152089832499963971112462285615735793496702420157817276756679115770038688898586210259061549125991723258495551112973893461009557604766428346509857674515532393608058830698412735024282966943858682574682863564511513855666783507571768159716060000960009041780969088588728996693101037400004589331788032575620949853489265616251352641068670361547557552850135666712490152389733736257158121326467295041648904163256077728080645493826480554616757733571737695553764121525256369938007848488824459904331840938520229900637854538842033358828368958223810371112243420461569906840945365878248004917573875309209505529766409966120132850355237490186364982889682802469698280213236774588678194117062726271238063267192325904834113356850895776021896102154888169086029970294126933709297513991511819717309056666627718073893101770453270389763237527084119944563007500510165671933157249894431358977563899675261926652054892520856889211075339510021422751257197215666062048921938878393361758659277503766071922668163826793163222741572741747507896566251969908555754878293759733930803063370710183523339427370012973853715767261226147665900712004999765186651753931257599385159515270064230741043082968136968751368300316814272793138774473545324037255190604128993631073242840603536830046821982631040984543298074930492131293810034876507672474953973723980714153866759114681874006490549814708851446523202445662321387465305246731638801404572171575265768472638605102477582876318399030766253825578877787534569860411691888871937321150479353117887033007006972915375232672916009884032534840717304150191704736841089221089502330528662653717085708876961768396317603333813151403622400172046454657736501353519305102534499965549080881830316476836530394639517129498188749260615261561351464009367037282133365324948801771565085761720066662691742375475498617276971265608378696426296100014275492850804539686711311196106521853290212179846674662718922258428058663049491844013772107441299663786017723718948570733362293899729250945605104257588644772712770010829153132108725593971427732667770616007756721397591398088156247183238773575910236593830683702174797156529959339483351074162724354871928911231354419761961824111798047449867148125119602019921692098557489115118067692742097047900067554174156934972242744782698699044729720701112248295970388115984611621127671387310888861525137993664178775231705619569181333836242453402715055592773255435125475755889635363756965061788510508618089339236247355585384101846604552731199820315912553096706588603974185913515299218400634069074573554265076604086211580606639086554914168187709452585182248391224052772793276131783723105588452406276759996110357861202519869151999852544956999931812306098627705733032335625434727003943296866886186940164544729556594709415894953552396029345695905629263542884184136649556382814892261173568617241632285083117500697137270523315111075710906546417202630162015661568015953240425725688633691812102184915943174598309681003558704821830707775260227176798718688146735624133382778892373958415415486545533334023919424531241317112566723753048235716776102593591286166155228556666466987186118171139157359774120371603974050181941204339960073450061096029506805963977506638530549174083471274255146568609797859559115975452147708285759088654673930644954759065574175426804864475079800829271062664789060645829596627308636851645801667492191138433778728358678224189185150876799721249244433246072258477615762727466318313239429345755970023305176474503766107112091028490158686777108265063886692752410581374062561745690001427215499421409244664609247544560213326599532705522689089910389197149194133502301865319837374793241777017397968207097553856540768299511212248475006782462438338866121594512330088998321765503687514000279075577273178198582933645370677183036593264046882975403938170571477235386106635383671483614738364284895188304219808839246410739802496048366776062228786643644795270697014428672394181088982963424832055900015977441604458464238727263763505752488915855273831844874085685558024663087069499730323516573117683449500091943970571449838382484378472591049740453040058498165932230563900806135643898738079696070118814167151199863508871684034601860912785916842761798266051968824456208686207465587678517726352494077091770184106675436433752624374247731608692175607874312436608316218127564987249849613645661923728767251740009067239010440564806417472150971250982786557139604300100959733962802540356472375124570893618702408142981343970157738212611580531334418802396460098019803480544681032769237331586431725983429649449457757020964534606864360514559749130860398690347167219532376192219248296121043635329505214101438228552236408992271882498799333827758608953350126466944465752702269386383962844668248684191361979117133061396186902665843768999260600703230660477875793371569193697080782179575703144771250450890777929697464021563953973816649498026093177994448078990770158132998430229502152448292209858139274193928954929968121463844253094904663005317620513092181147438364070825985926855708716198664644391124185344458031443266847747728290140776991047756946942457890267678537411473999469153793693284415341384300005920735897932896437602569813942643756391220216887603721426998175632672378496841983964546607029302339650423849038095096081977048205289635033512168737865459890189050566604310888006458650253077775782250413479329576942948814241022454247804717229550485592692025827087675733856077136224582627983544546452108957396992586216132916188537518325631031224693162638039029757217524108242595281433265917693844435362170274338158782141735798494971347657365921343953687197302682187769286694107033507356224710951583347531982529076160383679194798515799532533062410305559261153407347698985654440227768574570981104680639284895729276875388165309380334852988517610916300204114805537868568486949945938437842341423853511170877727603953488454329578162379993745328870379008355070501532734092598046639137339191781153037657460253770341242490171056946527191425693349669901371500140977070589387221846607535638537697161049169756496122258478641548778570344079398692001957149289666002362632704799315047694382327353935103280235058343119279338953449929748876047198699565338101732900861820880078544728933275835688108812857439465807955015534858309537438205934511731824118104474550555279693733458877506990591479174927233828118570384660440556742668732048571126883168068577799551445446882106204087556457135632851043777246615645983524396436858704746309029451357988279813426010915598648621978479293757180157698069170767893367726835406880039733200842534588699263247379573910298693818212845922831918361516705970180128152160845461922276230892597117340160662545506853684968900928211537685011015518903310820720655379621218188449219166664104827105869975981464022762942575831262993746028589437537537687309197136180941714047116339190718615805428790104432971790653326071476289746499026771738795561739206918194140374183695643676420495394360397239834661043514468399767079226821880508537279117613906932085139238336872043325582618437116202087202617210089338976717223844671704080668260151623948861454450109394027414038516260239453749969403231343326964509316087090478732507505290561484307122075645218188755221266808616917855912432086426906904307667224243990876410445957096360040727847144470568256894688490258946693257458334460275981710673933204784434579882048416139966010517975383486212049538159752098607872169417675209482784475562852340923372472093446732944862199355675336371347113023438983771467811859530787516899877800559054273209132216428983650030364849525850372570640086670927831272277461975231953698049090637190260727510261288637138749072765329631411970503483601804593133397823474826892108983965602161685336707373807260328555577408677734455209876088183593228740155905826123628608047735024146396125213586826009905381960516154719239836563729306093712347169723886193278238653231048391515164006539119753215742241374075416578625633300409860192407253537882411887381312285717295395474551232761795045345809160944290053398835876932287503553560804559809086654776420093109499640047251041937518674659377664317825164602597992512771664209350797611179961834557624109054885083842752423328443137524706140542125876286310505769332027119045434320827672499283396231448278386448139903828060280428711392392549690757529206180119300571834159458940356730039633258100982436965676003700914370444292316980658745721846797899739021515636577371500250269821348206260940725071003332193134982479508345635486644231798086898510661491665602003505154368325333189379659434592584046318247048111141558996823758894468146310025280567146873422216867599650586602144094719800912836977383640826102254028416737306408962330024548727615299967712763547342898804395206307349732730474457272109275273699319300125897542724793771571074689410925447695332656491652008128953322591880134020700643939676985316893013731847119160818377849888858187384610280171459082576022362090795838250376312075453670208787984531666646905404589140425221259885604336985340536132055706620884401901751346825934214534912585249907604961433922939990082540034908334482639230104186633292668545313253463696108976053427732639196135921358601462054082337372829385355604769993464059205481906753592102355515081023998344756135944450411646708917755996195700437662800207141419376459516384619302354979462462883037929169219686762125352958128809997066079856127109591707829968853915754903641297437960720828101107244177842738579961770722492558105932693672409677999579489465408209820943106074317604766579061084737890360425547001861195800011215289481347687434894161108867448810024699609797896601008773814052272180724835641069365670546897214615691457552590385221368797598342855956226133603993742491798004143478327141527226052224750247714950026463400043093085716358036239700547081110947046264110251451810192925122375645821639298301708324690537697814427338946892474965318313315779344654498468168310071510528335629370636809493120235880927363133419019073593818312571662081068867776319273315679184951556787650779769595575801867089841749461108414822536104939845028939723011993776531589816499564975965297378413102088955355343946611500220700350112133928274209859277769034854382236506568557304696304390111526334109080915723410359298437668185802017126798210505012367554422648727349751644867568753617889657619701981932273975376030976487101374225214290287249331773630628700323888856757870009682158670127370344497753076784465329090228758331218053691139174818733827565115965142507120113512568704355456390918477484787264254254780881012499139052469525657384567578416488219346318176757009087661532740878905096644592028259081960875684163053712748932429083522184264524603839528242712162804796697795081404369322322195847142304853728171204836572234366025884033371795078469569996287630757752598950722741557240885173418598997757952704861372665224863335397731082205010243315175380732903499137696368401568594007594372643651924514071809217259466193981210548146429606111408587235387093640640580230395510485268761194069225964377473671541651040729973795278231503289790302758149253944441220174501034099856756232645286386098235482849196843751334554563735731403092869516689350580759796608519311227691069460512435661616365297544659286337359156147687017418605784964555409321386149207678539165655206338321849587987812343885694261137343355168359627936436534697118772252298395182860705991402740376850028563315493705776587450524421168105463249957366035235218045091921686220855726021347516071175448325725086462334901379493637558044556943871384138208318425374708051072692896356377521148385074362084432506042364604637727246707384807058785848425237710510284010679304375648418448117974257409651039286113898794554776137657754384858346447099288037587207656433185608503103941077354310569690646715303637877532706703283319392988901208390358031740432719934886835215990039970252912816066657941194379490101296791715309444482644675264488918750493890358596694340258749477357844902344469028974453912843787238112290991081310708525141857407804742099368831353089727859813875297617102917650271415481630739527765713192336999802023309356825416200652625885631714840062911405314103107695055055241036331690607306543891138666794424657686245826071692777156217318821594990809640534472533362422999322792864163755636111028310022547692671285839805010435048604848892583784859365175965231373264507420246351380583161404299668584031635414229548931008119807461848033127073490027412685365967169314758279899774416124071548411258536316416009681705592780436090342756842426008361678962322959762971421701043234549997812696747080420707055970774969836071196288981908620919805001794039651857795361027987838255395138666474974714350774160963707687169616560673849222256562284238060648842746671767465757131184100846205964807694478241885295733307310311952379013432645099797577297510155433201409803112897275217411514849990138484951908054351164872336631472954564007524835858821946715948055047832153650624282820968067162940428827215236986922902823780753678675731968426706467044756489466815823805977569251269334449598852366775658417238074551606262827331293970273977056497109130469416021358003148558310094138611607874222548483309616892600996665546227202379870777231451845587584187507146963181896474278636763330342741745164430282016920980235789840968153753740815068857702513667914061665242552222052929091004254913838696908993500890620337978530255913803394046753854472763092809745130604964787358617419401735556863742893463888914253705423758604530621180298743219167043434713211286679470907377086112772271084226212287480941267414014524558773923592222350990117238635647290149164190589605270650637920375331690799216717580563105614719085754263650321748645028257540474030005617177397495978661853551946435138977063635664688011837965844921420659395708341721593282747433265181055217688146810300813373464253596157970137636584290352556155805493684914785309951589506211526527416217043495894348412859213532463920170583913542010098638975647454207189501917544034683399264073543720798646947589825037115788903087922014442510592169659464009841506597039677584460483878393613814754051679589423133870198771673313901714652571604929373974260921770731601282186942380016316996272024972433489081945009527515287920409345524428242583520005069223843457717651963689326847947461193016579963704594149242521749868139600810744745643449010654395945701036599790895410786023780106715953240989635085777396539645032941209327813847755228624313385592824743657335338212061761118791288977783004370957356626936131713914229416001190157915694094776434181284086520185370796248616286361801520878599833666766532057262739561084682185072209090607103575569994497043172672814021115097770148264327822321798012415799153300175087371288397931097346471884069024852217440793367353148826047250136645176177284087001693598136462620531646883106226825456918743184476393836471040623958692017841795495907598430766310431865696848782893381206692038245846836232467185566889902328028351938675457403973372215677967507454156718800776481400002579358946849631394173223565704581143504331836916475313367575023283867564289224480751677782084933783671320381250429364858978017636038530952981020450321177306947504000463699865303103615116592545044090855849234066622227655920340230367982846706791917493015324623551072648544230037586617861873079788030187179689859243663348954573043330136902348127834804629339259929603126234151099809225681923394301193002342087801591304823862204492628885392999453933493928020552095880117398027182707935711568648708343586834106785003307731015452419454578535047373052821059861394877968721805844748117134565683260211328194960743920951147979573967290536347297291283169565915785606917815274260162096916062563294128358656712749237955691846577525214258784711844511555835333102469997000755491443189383246607071355283431354303584963072250236726807446653778254520792784925917067840620980064243200399161825770687704559890142955315126002826729940509582639685194424393741969788230404479225707161482799384081650541259818532943593137790350238837682827489333637728240641456808064484691911560200356865222206111551622288075921183823682723747386079889457898620528052534219142999931466399594575458293829134883399464928915734996716622604635513446303971785240304918862666948057133352306259465616818255503032900962224129198338881823307136820630790713671521679178275978338961290956265335099415886288960770022518878344685575050925637116083548394536396663120060690411405695623725244042452939064815771096831834853587760899600533685264537293543984976044138756803492686952032689595352897585090478234173085246979802416063343605896895814726457791648145971604944945403208488331150314403301890817809674942943069083221668410880688889314331421574558336322137597665443828773947917138684655677990733356598795107490937083375797007358653093685143040993450958606438444908361295110356978838665158234088349090276583239337011076232222361212670314179269718978858760788380563830131865137056347617424619897346695868680225948487439622561127759322466101008793105023892063311611005675190554425774426063396667210153303335210158719441937645703216984266829199787923549817777420511262784861098407429626426731781416335633816037830838833916237937151057344558685509447401322304229674607205738626635444855464568372657261690225031292766595239558646849725508680498513779829489208259410587553988315551197359875224352969008740940968179332045306220733095090261846394058406383989380147469460628391641934073518440980761103848224597490281641752446295112423092028886926998024527097222646410861539799959578128755807105828325006082594834583138195234016492763547996347451911166914489595377986006740141501108857296045337729675593040185361852224111376290770054897780157522025021325381841110571112678161005034619953340266503447252987916535779072392531638437328033916851155366855792314281971699251232405950130225054419526745380767131427415229427148288037307601721695414477799460880444210472443809090942337554314367716047332839389165231531708591597818229361678300883244078849931569509367792569464904854448344222184771116448725506918556494863400656229832930462762292119788754140782750708762940139936367681252031510196228203575538455750364368056968685761893402269391937260691794122554488427823445434375311846886109774973143882240138746720654216105211027712002433790426113718144389249829318336353092900045757964860820519596013957665746870333655479015626519995567617366035444193060482953321661598659412197253145119190683276900572506986577222802952368067397318763172066216101724485491056782855337887455161543017269387819916201682048389806103659012157876048158963391833467757124307805104240206352375108617025688846084857930458470770785456068416961469815789365527603839041699749708058382178841757386460220150915065532015847742956637537578261049649218279543623029389213173607421790818534426686035402552305990070573948616026091145307894228416109276425002822744834732638605560240792049753973618922960030409738789571447162976921657863347635986019177387093312697694008576527080078540267583109994627668209518336295081929484359845797826416800294063998658274386782429061539539539346740378117751494001069734124073017483321103875996107550415668574606005080716287686800758658053041511075572778168371008859764665227756071207055944136621788957767593089413529507480552610053705434160503472087804418551391670802021435705016872001896159929741935894035932576347179491700250723304610697578478105574443633203499883323642533378790461767271270670082817161491752655164596535176104113374814141923358072724519506009549936198262969986964359001698685172522733039685292717966811825308910284448365912647862645100218098509377514658090690366009042356087272582422503686999898135951018912202584805237094181840956798852892132448003594926216442236230472102140740298778110453058782325505616441800522467210488992143933912979758126145271125301280923651681555213828394117029355685958224156401485782454915689113292901741951477681283784607870692261368494126768753068701378916930230945900958698270185399258723868586731659627486482489942528801917011229319477767068309583926958396731389793400965769811420433617776184829961729279427196278701307821972773359929831917456769090456667635099034430581189089609525460635249499145090284603022080671241846130440731223549339417365280973808301550055298083575294580906121536436364556369448029095170563525091608714158062223561162931439787781453498377840613037584805581726208972838016858714389499187680071385771699996014380127049484740490156381840972892396176398882741409489244229913960514010059020125806698195883025380253125117980496747666712447331522770565958953283357329083991652380128590013775059634047381974605117872091767613994518216678813528635928616897866121634398190072076949103855248350566933413844958599815036898819116733115082725091503392817928978894452161302665207489284406072761755466819245391952543982083980757097018285158229988791990567874455760656163002967623175775942621471031747815596373780361593542584813977481854209294300576572703161225875198952170667504225049622775772741282732361930198405928200267819400299729453604158661837327971058935950962131214200826103821724747294121475838151848313564584765619426747742331614363190217332287882806268009538543495339272693325595881692617613747144648553496729502421290966630828011884117902505603447130389616792709712849579153105919566667839217509130563430039699042916907258144026819222324624512127534717414367132714571806423121289042112997099883683510515939316999549770719862321685509513845513933713167068126882756706783927768395289546504164709773340942273789334973769785205176306899769503139905076450874938831602624057157894820947415429718599412889172227235799408766141733014019496473453401440057966126024546775161207963836633530786301221913680926311244458930186769596396468954822584330312328615829498648119169975148253639704297938348960769011907704440957340856018545012321931526228652521410495729684422968855337519770035042956315407306356457074737359901361105081222892858722127952605284294151392472502863403039614891334184518858930655159919329981645048493670212189090863797852141128806877286458385708168624298857065352493416051012367454908254223590245793926108769935837305684953650123032579425689311944072006978693346571242025674672838558757397154695005173481407751074764169108847381374518341189048166503404730783244827327023217902218739651446024547483559822784224991311166294071857966499695717308295386824936716821370605136619284270474647183384936296817229755429200533543689948738956020434557807446302812956819827519650404894329523669956127324735089641295131468578068052472394138313766050805595640173748121521392178501505059015857876273891973683640593829817882865008697664125879855860829022435243503685942209234255602128096859871942698470820416358006355256897832900668667733071781202177194158821832691704300556426210513669203680739033289907983466417932553903569433283832888181588014232454755393087217754197186015898491989125306957863470516581885960127301422054606763784473981493037708558851805213734798430867523242527401447970626376305208173796546378662219165897594647047472601554522777926903070812456735048180715611357599399812789535787466266815474799350601782691257968300332777406857868333645925441024152203803957233365372405293055725163595804897897439552371938644436290220166621238770261153605083042909026951179651149655931395764322816060338863478126896426208750267984515708554915164272236811325888501494034887678788267517013281117260015470484895252619796104433166657812327379445633286724895757132502897733827652316861535100483451952655755598912214778527454755971114562040403375677115240809171274608475698619959892981093899744581308552844827949445853430698943834339052856272248724014082135614208680111223653684672245974948968696022011467568063340478084031411931816948389712595822104736118156625644881280469509315419119941506563888553480165635249372352580084568180422994665508001031275644902355142538192162773661511523560364304707462056652081576604313864868800494941442001317117072731193446297847100376094487778264512975785805350942690581248087474006348100529184203195237343291783809795418553522829819023520708089962516498141433869426834170374684746612371039866374239143238158231107173973256439856168020287763215701287983210821673567160642440980544084457208979981426131778161611903733789390156420139727974716889637664356274672145832125452569794507689759881352270243677186978343916120299702088123331674426850568263222306446142482449306723604249633218754047299536088089680807027720289060585123808007028939744742549756468811321975599327030615523827515522372077857250057954288911514125322800706026346888719234594946127618279521211029910702953647243405445886227230164325750215581529464206868349245440846216375236853872878064276597017202894885467533874020265428741131685000472054637522805077519162003912665913082364007145637100027289027320012932483528339919195161039840099929293932447513009697001888871232369736135459650213363771746942012873039023624207597930565015470630446739810643125840987537035485566439607222501636218952107323903121286770072125342255379300618701706097993218041905292652510816068723399666509266479460218360512862716151583227154748864329082946481558024521587608121634792079697532570963343348204792337186399434239135300585593387617265717331672511302139543772028886420149735228364621774989277561152455159186548880936159114576838580207107791734836180800634694278146101514633887832871511154172780177490588008169446049295168598094237667771560088966861417645902937921183707515017535178119429763880560825246157080422449607048205551949075843752501360496261899730172912104145938010676093691422760915730621747576350849630034845357873431243176334051063734002412237600201913405924303370038743293339661814322650504780545336594375365474975804630271714982755145480150276124490031809556449965810592811583865225161199068011307151191043907432278226188318891437985548126016882166103064809156950416483136277675052115698918001397120543392409501913771780023751810738155546563539872472125069895470714194928880737603324575579470290339267859107838034243250020482006890646970274474874785960062584708326824426691648123119055470164336163875060807200890534522331494337429801826609063599624361977139536060948782268751827207281922150688160156780642442211683233831000623540086487062335507894439489036039306853655574600999399670511556755403079943935674980721085884107470279572875937779319689415801951761368685756223872817492494878146216064938820137872204273504576500986835065170060369592549821820927225631365450875409764883508464849928607935395214449897478814601567335752152200236139944340185243286830608916463490714997290647515425691444291566166443331319956551986467790565537722153300802409348136182560379750922042161394570751492619243590160091686045317019750264611813766866320758814382029050331621380126172892110738418563214537449506433870634178857468604940904086396287064279070671703331873772793266710183639939862218112938338501061064021547031059169256657869298273908159206325258179478148094069614504680520834326762436726090479946232871639758784799163011533067126901257929398898120088101730598253957531662632331707263082598989597978021011700581601423988821400022280413259634879893107205181060824618191903766884381475929679711956018524233579215289776490312748311939537357306032802838193663105277675780486385911692242028537694955925156963688634792524625974138067976273068304888290536069323012366941481986090274762827350575410188420836953526057427834008716069314555453987935869116579408679169394378496518270246016061172712763301013339937304539455057670387572829090747976056860693132717627967323997939510907240022651540392503083111019763042555876674181997403471220898899768722051901645863417234777422506534621881170138947896147154321086883955317577360039313470096951189372432539554000277378135515262748037532883545513899591010975742693011408448000378723511483347309065013577674066094667331394957271155120413790910214847840079959653289233358292008868732406200308922785629643965865011949441792377893790936143046572087095723657357948139996700440209963526296890421552284708734915345026720940926563330878862522555919494659338534721927934521098782619087428296959442610549964003644387516692757801256894453460098503987895278163265759816467848348414554371805673306295811732361620835519396174556547255859981878684648064945492584308653244743518174632166527811971209328673961224066873780957196897297811025996640141978200215544695174933525158475878754234407470901686725223282933307155140300049842743514739441380298823649014982623676720821636599795326619169546663829384204848021249148394584109977051815060131190829675014631935952604548530469136876379828215420088863720357187550615138535347563443266756315930097810710358413578544263753682132409010234716658725924436703874613823468825758753831129928914971035314566396856334782014620547858638429684475254324371761249372978165578192733402144972664952269209132804078152220548059796134855640834999307485908611099968966000751540935722300098634922307107153777221633246177826691290036109596945954491291000596675409863377954996865003180395183332116567018965430872001835735635791961559568044535771816231647003838613266249057271024679716544086880106780318213075151790642363015158804529158787051925680463326404141165207371641260076965295244489884534073124387136252777311396519101988199811639740253293874716154320288738904610358157256891244602458221045302209283613168682146952288503020239651361213776045356389500696355834063569474049430238641640975282499682449343705878562047505503887947095508277969748854724258045331673141007611233179716654761900376896874947537726638499686364336234617968217004970172577251679593471177356766554630608236305347963067814280612551926539823587333127728604923997345965129238185426869677754909349931984346672450856026632792491403001045927108550414229464141097479532333555073496808315659076695918995792340916057697567390419856537712299069767269204062677163225821261240943601776747193999039356399661547728450078436416177201819591081710083985013641585787845354957761652525817374038802321789463716036516965744477876506104476174955849948730554985666940230708357495839339564621803211227338928275422766637599759669377467575659015213764679810829429083869245671398536207663503500237661208679126342246469842954344838188624722148391553410813155125884127441770335834347700714618667364899686291183203878238530443130432357182785413411639528956782462253786882456646302624128303063666098568539353584471113086280111352513024081083187548063696050646218042810476228359124253073887015015083089878073370865860469077458045899639564154615026045809078823130870987650696344334701372586812492778829139311104753927347585211028267582630900524245584518702320956674036633231819981486001095469784680234041256507955845137877630844060565457370860490093632614643344822667980857597911789558124590179131269411045272018524167372481963378477897743797697460726489395518171635984421288524728727429651279102441384326716991095667462443792628983078289358501802046059733982018247760146717758514393951788562561372878277143722011548284853954726580189669843930644221814797710877289422480730538792230432956753841650057436786649290304716362435850864131949207122959927542033354625280786621412262619435967504623400193807808408362785386604048407559252648819631828948744912837417158277985262637675819946361355648816758615848394613728261342823595905956451758259478396341617732861265468269686925765878307280999640568703597040972987479922420559923908606168955383098267827271588642416676658565471602614854618193828628255795375724613921078858269866001091158240294622843420128359224338876923099081158017348843433538694400269315209454039731707367899559717351710884422428829180918715728360098282371465943826365153845567750167831379506368117565281979626268858962243918625404928680590647704337188039992353910206482338196413412986680819829584858885566297974177355105437863783987656631761896377479984171904374079735845333133435661004801861658003016549432526487175863414013090722838364218732579577370149875089886215039966255161394085639520855444694738321851198848669250748688561083031422049961004524163514235062383276980136543253695404563055851729384124535114097547000444681365483618435055998045155921938106415151920462814610044080156629159844277864996485281741572841403678902207437175152777737892051737147332448854274875224728723076403535116718241596954810605815487952831333960933688797392361859876790403180105971596854387544888336299746382798334733064431393045751407499062929242581593194122229731177991824564473334235045154893467804593676834186275753979235722949955762847878558418725418165934286888319356244044513776817708215122798604640066085256768220902016382477533244356916346280586775528873770439589467902322991357100185393133599405758403080471374089395003506273862431464454984715367637396271578771100335780480517285834142785796747239389458288523192016005456515553663644957101305586026601779911479699062067614074456864817112505862937784295120068113977872438548950343776329921054632361313223039757526535337246141446464879760986406896548943413769780707946263608630845884509662099813879086107827218816584201918525188509599442829466771123518333667763954423270809951092482599470925043646167550082102077779947812800935801701307877134653569231664901902496434338827676602724115734128679666095374727786622201717980427837742218588916096877477251069231241888166388055913772180304791136042636956837270405910515011055558656490640734162712041432147413427631013128278093432741648089683972685952895157358354549505712075304673027707292097795660267024493120965084040824135380191255071783215569338921557654354939377001234652636237011631809212874893408410482445109965295807782975116707507004549145171665766029799648354760651808906634352260330578674349558543832547754636079041873045972405662962875098440045834708083880131923059394088850856374420484855134916661603940600415439334507001639253282268318319104656657610087155959974580437250588425530990038072978111551471218802722739777137767554708572567553980067190516056837727353640784103347167372172504873728589732758961761941058598091116634178743931745101963752948608424920964330852655919503487218619189748566351579156472114294288597677493605728187784884700028506538832889943898487136910863817782695641139696368400725415909950954423219405844568608299387563385241700764798464756980283714167142598554254508330737120338983868744701515201185644983105299050881872592110543598611785468958825062132689358060445790623393562171803639022312369439093363494391295120875553926395382766507848802759697027851245225319172411988850844415100621862945063906672105659197203331304107886235909415521651953608353304414146857945686630408759212331167843501672602095117459495267927601789322425769494510922663647344272858828184618583519089939549965000305788921753071170238098663121293406175157441676063448958691028655387046115589838958401652265261793126964728015458491950799988165565777357778195946626202673187880904707941471166275377883344107345741717346882235868981369976244506606672672031598467942842118121404801326528611689098058755449155525387314621798454455138442475775864271789675135059176539848662947905064583895131285674255302666831027423060995962072627456396909244104006896540281909845690614993467208169423079346007411782974956701692447699907643124207899486168570545183956687502797509275688452451074913446304150305279969639635675653885043026605894734129015650129766305856867750716947882523732248883859164937663586686868379834591904272522285906784836880238944290349248545809236280340132269000537134765093822084164881035541302832193482383630154838323953520994793010606025396832680801720658992098977793678158502520598515766411219931473062487093854514783977559032107467104332139402933201243245006151033645873231520284921901828264088650635304642638319416320566924951285407808643992012061816020559019188090140146554780838147612560420004447072765353250678798596119203159501006964843711017408467247001538709535494987290045807365509369659480308667730240977328513558622151761494625109823988534799315016579306896010136819803193926952822253251631536027215538446869851592228131683923074475254803394706779540655702941532526576702264775967281263688393454225744932713361564532537860351378436115714231297219587473658511325935723985120780096425642183117917513558401641207636113043020379410377370826567688778834232595113252482890991429750644323224047070365443167819538374873531479285646507595292350321143914261354920090620663578352088205816609389042507568533102806843962408941994251319174387839103327301230106719326807405831645017284453327520142881865078783561477968033586050182705819141862253707653237578546919647103414559970820165325848814029789017237946151395974023127664117746348597979555374619177012297759420609289292866242759023972448829739647527671480523736253861913434467327386589581908598525031385826638888595998008787285666492826350502324787650390751832081162249562158952103084383183618687644771430154665223385838921373454856296645831881551751572769954781477106698627320286366429480617832305551124530937425393766932504433224491862465686289118806427742058999586564289856469525225334023131882761246849113405360347305296864922705626645564366553712763255812991008245243706913010273890457489471691791307850090024528199604837390173103167864464820559383087825225278484821257716238991809184861978398307476124880471916182760755751670293035160286568826308941570902898568985405290906669165521419886063985495035108514279373136656542620617212078863687975767082119532056887662258049254348220598823107542482319583536882089075828076232179974094674931954732338366952633251910642998793092583727832357298613650504591119215202937815591085970159302997369947181076478478008054523264860413288224495926111885778932936999143947591066846915122109502830681048839016423999824540676094370421146415281229946630111650336607696140215205597980304401420659910356574222615235669534737268592755577099573618151196913525159631995416946737333364563409586087370331714838493861641382288627427090058309850593930047688615491399735624612335369133404665206517497805113352071499524418269369140386810009002618881355224720935184208343934814392394284299800701776677946206067391959732288804876859964875896729033313059214554674728856134006086994673959296087154859950346873494851935001763875391270078773627471802535960588054066692859626028963094875985618614736321003921115703647204979347581900888008834391192594976891948061481334894414847613654039083621495814927804981703296132240635566159705395787911462915924499440684325937926963351464359390012464555383214897747277165081722555249589994125355080885833973563818848593205637619899868323262755546254908592673191440920975382487073135617038484366279314569610470164244803849781652708498171675969106127104805889157013154099926924395601188468247286033239526257556059286687009236374114108277648078086355483836138717412610238094999769241770479072064837966815835016510208102773055196290278366668020739424818653330479150757120796950202424995897860618595969504616908084249422949919850143429098971883135728428613570020762852986384554279088888751556447324092939729402056221580725215600652228291403984519831603702713427531972016891294160325693355851509141501496353706592989142229104473231305868946722805573485137896676689863663697678355610467493806245110771918320023683864594534843552765567666984664184275635055598351594599844295036368779265753189011294355736974510185797261770658700315017784823558799190408509499074204960942381502099098003717057739665911974108218479825708473770657297334413775099632162915391706001325640521490957575693616671055783792774716313752242867803336356889224669764084395448308179135194259261310189315399363118208593360955612931990696568459349474967736577858129280792162868713293717757661511877615493841578557195352462771144848922529699804112030704234812329533259070263164744852900477467706979201540667791223477607424690761618011368192386207696500977388449297044366199190660121946437897052802152941581354882580922228139644057646731384750029050562261915380624573554540570292673887101243012047777230653426833241513141822685705700511004379012240683727705526022389279484748176729562182602633341985382186046173959216524558696627602151115582332282285291912521320519613060126311017890689312348508415497547111481934067684992683832348546121076693107069894768422047278102631312195507047982174223090213932057393996925175576786774385978221078993888689393328869331048624901015752102655790247178622427165810527924777706428241630022162904416045921772268908238634749962037069260367395583495137331533564459144685527625485485017404390358084444908996614574594303181309426776341811005328414531841258024326709213594768334897096394466233604113503107196692532499937083496717226052526741090433892063571069562701326460395874671122734907193461496711730517332950988172983582724259970140104292522465108199302470826582744441401539671585595631240114446640643260825168253845150057646915238750667575191014374041231960202557306541169390430695112692659876509240753837543841002966971400432709850721166860747199786522796253716280724922865915845446625199770833900386354435704549744406377603333158200177438562786108821712536052056099190540021756546033079916364125092074467240695317187014666245215772225593916109932040870840651148822937650548970808718466197533435870005566226262173812681004833735997457832598130767696472250995934685002988981021051580107290814904449701157793937196918664970465107366998781672074464054869566605927231685531667936872347609716604703456399218221318980135993451613906914463895678546571758992588654758925478429959994637390091852591542657811160278798744649816508381591466023053388361949044315315962185460668161371120796469945508171308079403104312339721146831016771379648563785900937754293826742120895832464611255526438521767493786751042533383992265946948742919826612246397119323696024281623960141474123391443767961621023331705794982256606756601258679443937027386235395576012434488955600756991985903811666997813235246095220247906492919780771956778346483868333862593655398103148355599109111634333664438191986811848384597805545101779330858100713360562175438272425801567773061043990040309323480371052434144528426458091626596422454403975480967853266899290363307573259076329868416086099149912922004186011394939193889350790223263169320633004946674561690434906722843850171774843881801445694294221635485248297087947897828349394031006480648018922781936250097703001539664115374700706904848672020814580918027239432439285438850900036494389849180246417442525425255124388042372203302025382252430628145276879536228652090064658918170353460428629638935497175470282673349269217191129711190654491151765940486675624107398453475607417607395543064809117948550453747198921796302024043791839445193143735811172795427369016085208131633982831977239858045378149701342249796664852681899857396014453723811604779412231480595889067999024034264204896791774332914214263669150173876355578207155949120476578346453443131253950510982570017746566364076928297307068091340645501000313239671191530572830299694280488294029759303592498689153400836595707563428348019948863715868038432920134606862862656640484376427348201083577746596087908439538901629097727601612563815102987191214046064576252150223676123298704093281932814560742934355786905691085723485333601795611303599266803401044259389140329548873703118301469127659289972639796606981564708643102623215574962678593823738157780897221396670968754135524188566866875983222402040327325172508246568699656550754902719404005842809081705815908148343242293278744025691078324293692250254842146902523640542503551246153858078990054141130461630225886529402903056907059639970469524381691387941189893356976422581660830471222300942027472904762467626075183044056956640367459139374653140899727748261893544960365879644545523738723479701812847944493077176934594087421798303013290812253911503784638225329002971317878797124026492887892463933639218164539496994738125463581799811914670655900713491380102979915459310226397777279164323105655318251601604630368462692389733564621884373170345307147553421362737638163111507080002023384321475093960342558411745600584178341831759394874019721881666480897299936047504483600077930448847454376727210766897347952897178602458582128922006297543699045573394159405344432221230714043998754497157735874491178245700091155555114560060898460032822302286728619546020507794356963103629523205389058853161144377096662543797912999638487752316105171819829546526738477595705347626436974749883620789618160422179310229777837604732220435216313362203902232161819748200412825638218665268816029028016867104565779183866380501246315511016520062361160747082138165856668125448240826715094356010354773589546825588822631260880028462724767489316187382536408262120941314962312707767235658439301140192430228854377553281806723710741806886392189391918141474679705240463328970594554779610125145684740847646084067520378046632509893400773791524646231176347738410881592492729987340494812601226125063767499748627454522439929839413032674727983227121291099109023428987178791995949043188088230587973925521775335266336227771295680714745165484718227014611118882470550055253999660648901203274765550591355580093708416025192702117098963139426992119676234341282245356243394594848219746438122378883930887072355566363908867495989690863580005354472986333053944767837623461979219975333270469635191277530433174458821250983735173641972978131716839631855730917359724336844316513447515221866751047646148569926229563479838735323868767305402559652641904958074766547792705263188860145416804759398473464338518548444143352352040165972740441550079574312225885783157414432254985425605367451356334285613737842083352612309025319140164066185216056946092594824722440036222002043649771616061812487005058696471179497924977734446711219511529600529088070205753161120075327631930791921817783399107436859180684409392647541306548553077514416753194576260362678741768207109820225168757446234768730249428461715461855885420396056217481268080726392347371891286015939180696099675432507356974758742642394987869620053751260555180544200722096076503955654942676009957407820398395691485120961424138265490275617333079362520099850665527916839168143986276789518504953675255568092687925092607326064395147167844093416915620786936605163168954458258189163785557970191482250433819173763737886953506880749270863194354423962672856649020448993486012152764371751659958967496522169660301653427839662665065443672861540887639371678464283674546996263770074095729076527151305733997692222402602435277925486305086969410331199479621042364293509039164354434692911086681880213721250237401456432556354046043768627830368965690075189576203466310005048440289994274202500267953556659912685009338485775596478020134614608762012991450259345027006036171932806247953831443578208873859572342982482340023939614213891310216771575666748642478240772121088795049470742814511308682312983567083731060992931186166906747008054247507974729407375593722291871161681197906546312501131252485572721183021196470970779915323622273013652791778185345849354186561389602574142587287435098354465528948321272080880493820105483474419041201100909510133011312301577587126289613348302354817014859210349461553403744498256412807151224571147534989405294433944176421955093297089175698642899432737898843149085177520975242122782808175913623960744571484291474845601441431604916034636782227941114173554148733364154211389485349666440996221228738096123540885576784906955705195073523172043624403957227278119160362948676136041182243781261529450000205102128055630596011101556553563617492606256523985771698093644061272568232556521681052781213948235644573607903138729667031282009883657450072611347244278691122300743595681052225765431610365290254278050767971468625087068317228710894272051368161815907287916553541783270104524978409238993765610048070010177738057122495146123803535642160420789977680651501218393072627292663341876240726741205695007559115850333428361725520746923398612029385336356771761855500031717740426281827952567448452009106143171345365511915209060705871402688138966954231665967151324528656022204794586519343599700533724815596505657739606397857826793570287733272335248182615740152533060415580838396870128565599327502279909247367363697828131647661340805667861374518881993040092260144774776630111833951686799689052016241237326338776828569125639782638107551880244089786388068149741098125319098117366519131148470988433561849265255053283226804444134640524411787372509912293224651053931798214368795102862947269200034445575633609639088570444353997486776967376624453960352895726768564527233544798606994126468049819070822123470354343366353975720694783107868091934204773422037472114687578198562216534806158086043460730629421799647507925258408504733890264188279516125284492369408111366789346133778738074154372251926638061521053798541872868855270619756906539454801436587407394332348486753761572338056296939159727447492573576707603463623173525245801117841851649686347154364720816383791137526129748055993609348637974690089167654305443569148357615749940050019485060130528668663816569345272437680946071341763558330515279726696594420507726797326838162905978060361045052411780294437409388610364664118361355244297549384712988755317157606069826453327320839421872956208531024081457861194482413598358174974352391004765203387793632814605683133546037220699563000922575535407837987130754577438781854120786952367341742097727528438906370656198313319050772019684476311219634436522106872603282908422366271303574089408126496989963814320379129527830263807106625877947260286774117994682644116359043035753946704253972424516586026640649676235081317071445532870094016819698606032682727437472870100515386033978167824570265620048395997483363770258404471946646263439720348579522781936829374747613643139511244506163460528559799595571445813846959708456227489928225649524220887840697305608178105450495337399068221787463501838572887410509145614537179714812153228954195661390047225877357898500590773736000520335385828604286475222554059466814470074455523302816119089931408301788916576732659486653148749474317451973601921232028321817454117707120139196163040120771548823955286745549051206121888699626139233211706263855061159074222234686868561637162015423358194653244561983743650567653638787054882484565511086398821015791832707850267076643406476425739108464819889271790909403369381187000881717646647759537513041473116324815404574215506885247465216706458231802791547483564778065719748462620971769934213151605944196890572568586841367136697445334379028384824716271087750564998416141067389926722520078203690956451967708390542616912261961234487433077669403466378266057930665330127502856888247694615509899167108471002229805883284482352384226980453059477469513928680024240830280373820700190748590141136302490373505080597450414949333014583041685415507549565549878243384652460914878706383536194713547297685603717584512518091485287459047595775820858641166175603487267569283925707142878636888782571092817966647101775996854489610994999735386390323303076895015863719586886991959989716508909543473059422270968703139298382985002860515504757872847055429508713765790672950236137248008394698740562948622621708971535985573389376432856713921340334204071672815190806481778520112645099675993604581486249075959087785842717556315742616896758331914517536164215604810989348545638993634211565984268476634696389912694530955724063593028624042296917243830805060706959345066288268607515660083250800174446293610152322928018094151069201339220366865515696968843857785546074624923858979193502820580714743231548682936507312092443053186408686731100994894473399838022621313553664223786687438624390024650209208614522936373742642116383091224467609535260800394333067537579254212729498328186346476406288298489717306104877748914569906830360564803594825972571787841931150788491972885144591100126292684636171652358074595723300336760263792793807386597443061042829372982285885188607390784316755810235226464814296023393326777029402923959778316810614142991109806518567346816637655054364454916133167003191761647331657138938123126361885256540886319406367417419187264285012009172746318672844023743147292405683313361599420373998084014197670951409306526521212785837559497905775544963457199092642145164398039853947782679154405591505009500635040688698704725478722592560970113488451892112168361950009106313328851091574284750409368233109583230717358399740782550138205425355037923507874611864747420862885995712538408892734278177192239951558548602012360727303768824117697734426080564448870005301492183281165226905086040356087699337968577905489591140266972196882142681990608180343473262945531905503646837356671295764452071794540454978470851044683938842683022846725152136228158532703193878957729299171918846260472732404700827283796812076492996014569035090989778392071086439063298113186687450710495300249057735497998962757111653834587756378493495865187326231536967774083818298015634207432244044459497761228101886883080102216189003626186108374835940451172124592270301345338618684007720070174856062818791176248068081027223616261142940719623397979186183587085511363290029087958440091366771279070315428119125687259215119859207280162195146105395198727384224484195603251339148268318403464130963943013951269915197573496514911365943072610594710395875139174497301954289072899479021226525486662268839336317355708333434006673830303899088018106226758469764830906167814580220303590461107374686462903389534606225671212011147034585943173458392648490618790820504178922167917464988647604803806694346896423210378319936594278700037791991882680387649685475425954728753481767393909123097879993609088448958928582847209827343418487363018762573863319379801751817749950074289514893277863113464521199142047270977993371041191155130234303636039586339209194609975207918916464800965846212084387340943938587416428433457909952110048027558165793887988471248312310030176788114668444424390446401657688902150701659223815878012416251660296327682385086067842197535769852551433064254039976141493281828973967605876451565828978032673107605731958067319354276903929970249525727423523039080339911925721849615331611494969050364227715641483767573291203970381346927605464351799019870111380293207109132085335896471807525317065939859044495149086602542040574070556255510726920394483796474237618934534917484333039430310632644718460982425738945518669221284351358391329843226254169893613563911342329888222620752772983475132548372313488591651737782798587571590421060669521926879308740807127037561376294475786623606398754215382148724134799521669236692514173458366488722330870084588069955776749416405910294896983232709356892532825761721438066786167073968863177066812525876440742410075244354468565391428675588352082288330887753757578587180928428632162914299839351811358214771277892186309486607136210166904961460077893355170209443799690703010841862101696297794449870533634175140298349866856681834704955407548160956179271425305608530655327599405148085936495048759186919925067375739597191239026521312198286829619119467602575613495941448926648767462707984708107081634485588114520582860052829500616713792055942559351443386378900148008116633203735184240075443724873492348239033629230127839736779521182839076523898692043534585757093543153854930231988760026939263311639869208670862068869298829386890613831648434504768778223603732839208822327112814311201346081674503122151920596867686655043556438868866727474277383483767846923356051615450575954547591962269810985945929193868370120645122957998574185867435058597525564784856991560859487274300554764520262737249379987741314644103744906149045271352329514415287737432562022231807958910604372116694030836126793772007409143087669513337966769608223373214684772437390146024860407028369452479216261076439628663118389844337369076409847303836402117672670114336158329522656245091687706286840125308697820359256946204143803107825740192650844429447036326066230690150009589498690121883326427436817232160116655800170650697221545848158893306507965974625650161841010080680192940154118393480272396086974884396681663926802063482376229412018029910534175992478480111828652581414371429989679138713675621127212141629939649015532644614507876437060882897296760900165922528694451275954731472837386962729429607735533716673744358267563927040923195130532485668815608631402370997247416294323030922575192273954043576793467464231173940832712068827920951793489227463932564739402695800661967466621125413354453487462762261569621969230719377838855238080089611300947997754791249795048790986555823496227882637401753442112799625830550535177548652334500183624161127274553642275869830075960756270499097389049163300777597809388002268135557221181701885436687140137397447921714484275659181536465743545055762316446725075729404265889731910742847093382949914167200054279211240269161958715395332726865480960946460628928833110893963156377519197599485997223557022915548889414105798317863921022194820804489136450304582820148110357616820294980323901951069339613271655964306692782791275980466064116661022681349808633485046886936107113313809261638049110917921482945132890725298846194659373440510083775035713628130659171011754758269554571578165601964803063450459803788714081043852637651655063631547575064656088988717188272445782603478939886484181757034963250297256546855596404422312637043933519226429813084429757704976028424443498620442714774479012398699049511727980526065822118853281653174117261317081368041974435866367392888470877377538450404594825672578023075378153234254278520402767167647950326798253330766019075639204035341573070517795033498450875419908005624681469844676479628666771572612928835488985101175648261390782042490698068497390787239168035113979748716186333759250533481499408784705513238940422665261662699344396712630942174379637983601864439802767227338757674753097469424153744364498760771505941729284507699022298056847651703137921166045177867797688491559470386486421852681861328093490130721107905667304452378913717723351193488053372247356861146303991997418933285365362432175498355903480161087284092377986753893120716099474301506276733215636667908883216385750670559507084812815543019686700207510421611054459985313920168557543104728207630631873637956468881729788564060096784813348030320645738677725430335156716044543808160772291658030832572520771893902897266014188517059489372354581882516064354332990784887449648030720574377360275636579139822366283513382171333991252961952274349287348433543684975177457763272667004619968427652166539368313255293016193511559777386294225778389398377658247720816483622613372313672385117607135924408372738632484269401598621945980406158546506127753146319774004836339140549907293081638004007073439752092152881188563099286994838344526230201450343640247133363592932021073115407136075668150425712849804738435086202545943844238266795890029495991856566240805420537957574937593712853379762334633317980303111462734343471659956388281760948627526953195926353804273119718817496969446466274282372587806117380040716906981621612257522492606769267760019735684790161426206741914729103096644588724950002433322150697721420452874942436997082920574751477940677965720499306351878120744351532903648128942090962333222045915369250240910890311727563529178816614207142428288677759517320905893349969297279181167691461160331156863424603360748377881049726473559797594041540299907355840222784424326748282328516379117432366548438424349940990790435285730706585967028462506522018409369076623465102996752339046737543061225738683427122705207310501163869973468222242771559263855349726370062295934449124383023275321990134290266501818563795640012742937566611440282824150391966336811698335625380968600856783001427087694291530812636960886501098031102074033260274330787708186097103113765303820824290473720811074030174204168750896027172972233219420778912063053453847025491636184292509251590212189885450385442958683822228001100325439042371023951718431684158953687531058212045375175905004143075838515723391073160848629752216447335418127648721799447479129675673626560564297517814913221267274693287533233207734869109033912324480831587151398990820304093744750504875809931168431528696246564810842795277862528782622372773169716459761095967106940034146192725206072089886141549027418417432715099886120438179687445541022024750056479392313606520954054830323308822579518331127694806522014056975864799855878067144893309958098396875470400044868464160746306045958962760028410398700009913000356891821884880076190531096364280491856130174289122844381979480279088335882483512570053410712386586884286971515444091403098023559013629004833018996296053246498834028163747998718257264118237221088506000056926478625017298908910448350644109581575159807698461414098030569195592941556240306402020161450376155524111010702950384574812999456240746754941542732956991885910594606770090690466745938817350228106107530962621762102370112509916202946510765198779695708003332182247580678186244624552543316155879395086482296911864938181547221290240779254047663808470423766305488160486610726257561300181216667870837103597070466618458212310324704291117609639243464259803526850819324079493862644158661587165842790242833333087200848635908676541691549817634657867962789194259582313364357694101132099963065628710947072673904519690522306093028795967017272012909277840182616920907376054828905378753723211386760403857451927781314661084827773221285281312444410349582027898335145268286188301049563774567724687187215974435064253305652908994055680503505705731634001142305095955842367687994068685483205526138890733360974576142191846672395787971439691842060152933524339941964852208469655654690253276294689507204459116365935295654130515365918340255421115580037516914558471494275467576379235951557684413163049790583441276571179209529410228256397461709343348879386351898134929384815715809140367868783387218919181358383599309553383135990867109426473668503410654217938382866816229388829620820621107855736372140232362329576319041203994242101300818181462876940959710502044894640295160076478682523417151561596500258386063788947697889053595792276713675127874541510717198597951271635321494451404752494661746909042735379138083036132097647155683283829647295771935266416729034201543270192915769750965285968350120211723101261269926024770200521904266541546236320608632702254593883019736728408460644713986090509618081636811173868177258436342438623113633084201783007456380529701378027646676306983641728313297655664417848522606230378474550181973297163599143981175408244662385153882867183804942392639083609807563649963019492085142161003043557078066189891451597173949254129884713491957135841137998333308252242583420861613578257995235054737745228151030578205401479905527519609201866611975247067305256054765844591916085395039504220183168558334528228167734492787960028686925805889157627058791815689234525207298585603288007187732685771441077597553110182935217415220658616311590060539909125839741981347452774631550053698333805885091913445947774616415380275300126755663837516539095788082551107961226932433974989682272274882989829067678473386569595468734665640996147530415787394525028769383046958172902679711045723239227568830157126760254089092019523194506313613700005431760994178360643147184928919922459813174947133953553205395324047199294882382297276548991467631274790955174859399639468469423291364482356372175984605878528061192943209301276701506782540465631169393311746929954879064553093038079476799190108017118811846620982781529175027620899482908301141321836909022084642986612423690603509031516665776946559569649055664442226914414238092520672887962524018816263680922275877431355714869898648294796988977536114116075535672474058884494391397842205204259778057080117022960409043088612775879904171766853513008012246476108967634461903297291225659461471416342553418538273826249666725167496134205070460386560596546716439544317523353646193156092592074608532286068985290558626346728422482508402346533624015830754036511960605870208375629228702824240574245296855403205278471536016817646379296692452975214835880486586843835769514657876148064929876480846053943172814865766824514414734215555773521380212415397786244117512161204533515344064034126333092262112490257939345257494641371252158970020687514505772273461278714487337514607063113888114072675863018969948258245933288728389435523986877495718093538383083627444490525151164520493596304553738799092772602959925412501353043417860737742485817042215748772743416186930390077090324855901070233943418702229301990465471437134864425357188075436476457210716372790539437340075774490328478494582863180827040116378344752463341199698972547040360664935030421006755974141904881750914217196323923564624314027635405523427588887877847646407075849823852499568703926015382608097099041666837473155557005804603840627006178806893944254614938281694241584850700132546205467403996410304419599566166654424426422930558570544642483571898254812614192487779352460884543737034012467138643360150681243174160851997739512880876776316796425590996869046193859510033944262932417451858752241543415514649951781225695297814308934787527578572667308211554052707100501623672108301257740202846445237896812048820821337526583360256987679401567707418758589861203418903029505990664023140281034676281661311739439824846108483544980159042688957407957268034092426811114242086948515630134749937126161461505689397608771614631362604577419924086068434939396079319222926588244249478083572980416468648411430438560997030115941059482945293000631735050943260018342628930332630625560401290755566864969199800370459999575999432345243370126342564551073171299023508514594942947444367085196515293889342611188647991681910545117411822050000129971267635833165986149873039205356990986196616067310914826017412792764917463141198121603805850127969283851000893722382312885746068193128507758004421579255731939595407645052013703287551575527853184277350822942609057211047444142188974650371124925393782088571539582580845751156791669874095502966523099331269580369752974978237659037915410568154529322411414062542272467261869315769906090659991602780049186110250060115470151811397008883914648252218509723667552908320005261805899795453463839090330130093197640184458088332603822609811006131474506605357638838118775993618430810200855042718883553789085785458681823475118287880154996083559303440445351267494260110216967787803597606318987925221180786282541970788956853060284385296902837275373024576562219238398728912292456237299527686352607029329577990758120004974284971109234966034439377564273798725874476577920884516523893950226643817247087832709951248292305992102426085463782188022763712187126351862554455360152268127489834751584327433881387021241408427340416428596304858128053781909914546129700912986446615122331521312866126635487901210382179173430394062977094743962723425175121735692054137595350523277021169709240395305938740647334717030169973130539409132060810776364150957725754354939798704512816883647590470614308978499190342979963884282717298084373461477404520282811264685275021206134108346736979040156550225188372077131279806013409967193633050007629892169701198892231255572916230268477729806403827419225544640922071679723825166203736415844577953853781392568671749661953012677034964155844567803279320163965933677265664689356526068358316143813481040790791553641444198536695587317678820337004020454956135159051839144521598182948723969046111118188823991105933071467480338699127140716240339883188092948620364388863420825527989295025015628955748224590174080316371064790407856714592795998090582649755182639311306870212519228607620562252335639892501868827301302416533564379950473716460248188086303426950320470220740834549263791821655885744815486254783295581253160555699060408384465345530717001895265468588438780180110380298401582511956099548918743529083600702520890941847962197589484691262315714664141402785338343000612910740827829628699013747441058011200990259664314717909471393765077735802843610451653264851622122096409523223915962651809272790915843239131709851564475065654347189903661472595296618448898027187216585454445448960656656571303805576939983680062524402111472932989096554333847789335206275030024324383308763378759916797319987238004960359165021383420097902406506555486018219884620784957174558675160932661718835526973833162675567924829549770927338819171347904838129935362947596795996778050311681174576792131361395403230468536526442340467002716247199443452956928784860431767807628303706301709847461481910466974714960203255211349934800219824702558515515030644539785121044553094508799540594989834553853002907617709955168828661080976288524329920677266493008236956506539618656316352759490240565449829459282686073259672579587265210609409187776744437034806352256959487315679160504273124573005316149288963972882329665766730534181054419160449315647805640054440168429893774672818335978610961949113204209943173587948165896956646065894963329095115995870325360178427129771198371621413484505156754839526944720339873960521769902607984274097111285531917462702171465884246643008897022628566969832669459901667175139351686356000146274356209513593727872628905889383212574059383788315889043376206559136804215996584914083473566982780270096306796546571489508560616379614678564394974905815463126015861315970253555841102558977554059824185292288140662101153584914257288059822012634866933676956442279205069845946321603603101579474353790644959198652957883846454755949293942558447661725236324364496870351842149393579323393416733031156083264081822150905102228249994982848993994563181194152700370413162867503745537903818233144117982367704362560220860791129637611475765994051950614401914244778451496284457876905728590165873933727029647736561842322420560061959836516955372948968061753680567752386322365781395335180528142682866140655476512378825602513320340239523989270441739613793545054930398811328954547665487671071138953467458392377466797376145104023902530811665622342616531311110766378618663048904241378489538316862847458962649045827192444599965161172053067846719449167947625832206565213021447125075746838568149367646529444262664184329378679428672877271077807341543209330225293356255025653328810575089954433872175631563753640259358633901519981966112017771651146693229765336958513226421607431806289818918806412918171806042045804215806570052908203508222338906919285114962620773562867658346604053905768688569771234519211667931363276949967077028176532855909973089449890268767501962506510040005045289791452075994807021907802012916746869351329853525393334659557379896401418814831339201621129327589007595980146549337704669721540681932039203595243004062641594725471193101108160666791081192704290718630776655849823150578805681444783280894896304023664577232598957322283692848296488530684387463383612591787505626800534130523821151076837568561803030115380702315706266407997403240121455088853407518710082839002571598166930582934154074976996062163524432322733757798772705250577914628163720181018032035307679907901431636803321153397803673631707431872694466904686484890047396891030116666363867408436800423162017647240134648300950447908195856843922942957464877868686501982868743962700888154764061692334766814170773326024328978213822790037741342043893681256784860787312162362460157295418840239289540649878150133199837684613016276920645150919648284459187285385982482142883363131548099358851761018824540532470175156788610095383924598923017623597868474084655008892591611401468351941638576638902150163430782712065204046825335486572998161594558441353406705953599086204796922096396335190528220700683729569599706732792250560966315503387072457184887609651585601451382208900270858409665302735977908442446398586557895605988623716925440606362700209228567303532930973016049487873269320098034992908560014186808429816174895909109314681001119343506418682824304151738990588581365784726456042918831406124795384912863612650192086566538539576506958245989515853467790345753447820551780125191947758707680392584993887599579932659137550544732628477226266195110760396587916675985376200398294151492815064023573904935176855730172490860081807232370196220330139891333829141626107651515081299612183540564014232197704969255379721105244327147551601639332961111328971337835456908287721787897253836072776659729840627700084138033700351691676612239534417709739215555352374042340405906267514622903340574041501401580467823703424266433693686002289803284693421220702535808301635108153130867082807471996985860872535142195998073069608980731658654251902360002268766761159816194722693119556493867889862415935125400325087983185000098634641816418322036625575860784728702649776157356551841591717621347313315388289038248404462418937047191880347106198636734527801492286201228485402823708111752978991468425822891125588351386050162774444211405331692851537154674136797785780214901779054025368842682955560018446706868266919286512985037775928708814608279000222708498527843722581699133847063379356497922206720383797324177102027670421655857170439665803721616267772265437983103115724685768251781098664400997679181818893204530340915577471141061830726100291753186797970675521243276008642594182655358872466425625593643595692148796732126594166754573915037771527129346828990980338457626321527920866190424793019961665476430892815846144974132759450711831117792557614605391020421519562773243244051371386615868754812391477689733219452556209003395036421177331687007258199980963261692003426023496304698096011901214527843465231316198324873625627214691153399540385821711097492715603805017013553791525073278138570453986751355218637212507884303882685089846054389144765523246990034476956466812519779566685623006287506110329831678650480564767219549955639001447122771364291911433328320828403678305749707783292467793366795537929251946481805848494336052445117582043571810964194781458673788937714054457645282635605390107281693262580102738229049492014391981545937461399504702197345070293965753417793128339980494378472888879500576314277986459110115722777609882857606767712197790231293991425861625335689544117578973602213252363241135468972633277647260024374306994919671377529494791263168713226373083582396958433369358303686526772755069623389712968266442804293441308895060945326546024444242662979471761165844735705911948374928675927168903397116836711708095912140533980759927827071870203435044772909697217161027072432003705403404149451193158854832422013950275776650964555844407819307149501767964344567992337424659034322072501884478483045753723790374607880667121235051626334793177555859900610643059593675111905090866159878217742670530811961074795084133886058488188364540755210511729574234166927808945845190820103326735822418440155162076000271053384785297320381880885147325613045294606331978452319529026436466169485361567083097912823503980503512363006173262040208807303193763378385293918943253965368632182163678675000479213368878412607448309283918968134168360092062527202333941863281734977009695983487445077130458656869219942174029509437304346466796032368354903126194285193195204233767398238321382740588337226931312152914661936866785010555722608822968729367735448825792321819031223779027370081803681958786924251550844122586470660501496253569699221215273695835906084096751300528848364677003493641628151824983588465234015672734221756335018152423461863107269261802260802331630655341636676981586628861158754174974273450493822394182686239556157886655073947887645853959346716807491529834328475264632561011204470941565952236634278949001174571651360571010835230050705474748444542322785365346035393501676127980970015016405046003595524747446129655686456571860522833879202769738875692668413704913095196650327941693899413949745620901937745090714657234551105602245911684102028082098625277282633343716639116453628478362516274481741372267912526359992741045484534986691524481698115360545917655590011350114534631058420295214982149320061444811467155804487209473256768977914652489909713965114094735819406501562758950332642589495800701242959626883882976544506989566675170714610512449863506811664242501232836808507308803764117619220314727367890512802201314668961329896901778391536188610002889769430612464430523933201459442615326282246520963066035670698833051637568273607778367945764105586111704622503495905166927418877544787910654089005608551686676119504276838551430381226927641869082174989346184007047481109811581904900753324621854347711860046719228269588752588544187570370838214335058309734707714863800588814626957669015312162749124267814938079089661698728983871082241291517476219332281478351873167944755425622870591571421876874514276097672730445052381614845321492482440074087585509055729855244694018596758548132609750506754546877762265158954961716418488347273597433539297099216127658067384693757072853720006572104642750053084605655755184502468408943084373962506562014456209098503390910451576937192755743564234513878822498908571998240045543598498124198527167418377394753593793850523078314459507074183596628494204745632207347541540840490920791350041595318585502508047236856905583139886769330388919320491632533548924542289598681391621098844579512418986848622551277316433142000145962947290118319369737801254878433876928404133731142635624627571277268472399778146924821900284959097485342301476681995041461728572088449965825469813590792494444938940818999538286295741033217622024864870818046789999650644269834108784615592666113391001979927129249847266622950902812768518225463959931794486809372949599819874925260812813279534365130352445950997138025324071140660786638812316679399401711852508276114038432843331044061458947651397168369850387801737450609142468705706161025684314802567116870763580896861238592487689146812971303598714202381246897881794078013515299856032526527432383571728264154457452995361581159964207515391202904797847776407900170244044361811440427289474262587557602491616264693359346935012998827343065211797147167796400355617173431282881506017335863004414204275514363285068103941413209494182491645162285013360640199647036661640450042009863863766315599814625863937597057815534141529328451052797663717104322822093757379731702772484203536750092952176756502339139466653936693845025474810433035527814804315884269301537118622892386053510639145768028888765060262718827280030796304473582235691585996009595967796994177754630895456979749052199204284313410304103724640138123640856791115780850156983469982972236779252810203892021796946725805019382524263679254762258699551375851145354364669782237595461125338789436649808739827263695300476445348208980936231651400406995128350524203576731541213219059145434373095674619530723881263320099459651984786107546875534114814679461975753944314863745274678119972038370137240473714228680711249468914566100438974346478111876872445284325243695570767310097116531677989824279313110497379182321179255602243603475239723960664466725921311007012478145402385702204180934919184760901351636047787974427004930607750954691880474045382886205633998931476766934347184762979507581015032707083580733066318656686735724713999682467537451146127562253917474121973179100683124927829103155288030027787361226285119407037601258197141281589602721039193560565194154566175311626254236019247351527665632004086538404578043094270550028813971326711077665027190751767390356652294711968302020920448710231636136087502761349404622965827659097427681240474155979563333998215412168434513073574165052939380895548975275920513822095123647159857544721791710345007993931336051290284877526371142352468856622028809332313227695621556930960649885990059815237656242876887818646566895866474387439174330612890534623466654310467269812838814056712598284842843787747627856935415464611376427965421907467240132889729194086885849769407736666504213634677843242710546910195964890634321471539926099812827642860864666232930696780657115922788656353066285413742349157091313673841286827055669716394676406234273056068954147329126237935117763696683970032875809228651211186573236621009623301196728463633122763901552319134415068018498783086758866978424471235904830994040883251170113476243217059427654476518705636776479632903793687736372462895224085794586276780851864858269180846808780002597035794910293551056608299248190018536928146248558921495408964621074913772485622966079434220661461393017820529016712697799447892868802376585667824967474838913729680693891998937995940713467881617820498297735600212146973757183543431910842737961938590268059298930581669103117908887361294947384061982832516944608412725479073560790916597370990201536900540565547513205990130400744816425850376124871496345856739922188322696343788888404396876698368160737861635282744742182585300040619185571172226472406739167580390397999557179921216085655456710446476075982337502140964859724988968566491429963947410463687164344587104624722530217396392624206804173016985569420401870727745762462407617977101706735651226746225804943447021992300388992098482248505296084557784137594426966307816264267112429509889820535941533666592040724539191491655083612489356258024915553481610781616385744412006958782527870387516453138718792499194163670228115521980893165038479974838161246510409266589960974727260117972737944898929138213464964046813895560220860185838130644318406976322176776313586050506303252468581078148850429538382734504205357906555633853446785838471855493628839204749376245017899381129997441618529291237479654420416823346381834532848203251476831594567984924805532824509872293400160334035369626750987875293854321131538073967238204541956903813599928983704741754665913088107613177348629001417124930054413506494443363916081491925996965924923792646812089042511948477500388770571050555086275312468804560054198404138851415988553455841029346046300094103975922065249608083024662013847026038917860492369442000726766817071706948348179287520192220444985380246162937752031916046901420047770618431725482316730914944216584894290997714060047222231442010675210809880372132595340060863422574333482779416909623660320816668008059043048821583414293789158378924579585212526378129559326069656752757504568218721630138108244225001930952739312777716689673927491231407250571037496063010994177112450734142007463393826674111768585538355153147854987771000043860335082790424532622529299195716517508786945559020039630720120588115641536663409482498476202430942498881097998959104332720731882909010943573340029837967709975322790317315008607628846933068266250358561910971112491444355167405702655779600234298140679639816622670102982150133577979383220944379167774009055693848753771365018570756738035884135552360534953574880952486709735440306215594625190474624860202771665590989103772199012746167976621011534734228455879912488424907854425989735745587512361150559032262571083258674137789995077690030190654234881614437838700438051718906784035521356730060411572993070804909428985635556764260067088854406631919814743054042136286560015301472924614280851395293689491969685958620552196188988643757381663267342048634594429781257385336274186900075251090836129858166550395785143643707044841088940550155562609161742289034218639564845678174474059268371619124683948713468788028362471248562685235180404710365091538418607287926728211893724214170939561337679487977275086376372441373108496512023800953079748823460446583183349013426229608889405215063365657917168191911498389099979386550141231774972835596779173671368862276125603270019705034286159578195502041310922543536363161691072004893094351745443725523870401279884037585795229156583710553357379451831719822432640655947916425141772177674422163338479790120215073286993461100713465574308292883194148846771503875266824805606357300773048248626280282840887525175383092453029643806301869974185817561103140801727958948691949547351559028453199857298401598945587490158876255899177667975668981083001197386614656381264758350797986622346577547888604111491765921858766905831144067131218881085917436324995011256369011377204759119657528011994523815726885824182905669028701807499136658597297197610368209014276418221832279705319103917388865107673135486954547573517047175118972236845119092088612975813318963333774430195034708541227837163393606583326577951355187686908842945192426432380668361972120491286119524425860772155102444092897861298974093268386260947263276676560382516360723370510964189676703300421897166784509533452596686509029908937069700953838912106696533251167105654534515644375697700590164742431306760823993000611863736756190293809463844412632821226072123669277206297082878266820575160744771261882198900651345099850661687795548986509573696380444713298070157509049558390019758779419047925257805137855053827836900674157907763375525103703627244265070892416180012349286213498188367412310285684263865213447604428463995048610235665663712763227199102020334724452762721967773305763353878948036027620229467424652458113255854775740624229454307832209539261372583558958091382119447719839250529377157410485377102881057680180319787234682765225038091538819046290889139326130018372334427883022379084948003153826872667907353629937171782808012685308542134508926437759926328151850031860913971350456759815191643680156620692559976662377655059829871259481260137499546695772236953095521807198554957639349316197490919063318635842804567273901719286539601660533404053721056947570173802229373510481637358633619213565984491612942933201965912389765388444439187856552262489556358989221272099171720247672615646726691373608527698211141353756762390393252826173157985503928865607999341871460896476682439840281081850122579685378987362429818033888754907901167741763798163203181058823511346272971481222230000028113148651867649739513130112063548386584092016879167909656870075144981593001614200091973194843902027285855517687646818994788558847309981676589584123631567521447473873143913983073174064017343543450878977702564245371142447070558769862257262257739982973551061461425621513822685087565718082525570364098954679062583916405628701359797063933270509016477529629251158129296928840401569358890644313654824644594375515233375352960698384651386877809872904633197962424041080737453662392488608434344715973481113095733519592583069421016652544225775939400874922725827878365495015783333111119496725702726046608895136751859452840567848230997794252101848636178689032466683575184845753295209703140951412548371042245768956079517822970787344314970803579318097151427564402199328037542687835311035381416513955619632871924620534300480664024999045270902090665825108298022124450897459990465365451235722483673066538106366449176400958819416352624595766144827213561995491732586456588652978741999647496990570369589635952156728508369025151114025050635409573059949426234128808508911857983778985091224174313954649494705829832464846176552505103792014597376372121723577229385824718017498402039876075712990893931420561809712099550368683588865154744123172334088311986131804105198623640423170260491421131645740047950310629695548394669731037070796981932378742582287355021345763597464404437897364694969713718424294982343999047718922116046880084419818529224206263749829339243148691527699415282418041913229751242129419015740378671135344455795595184044496563456907808112567189927247516249421059460225614663896283423277390296877786091218495718644292706538733925277489600513788618246645274609982473779557663008228033904646742749370055126475982722225132852093349874589888582731555124743582397648631058504678122062227929823495846511140123341890645975381337081313420685112376034351273180267335339889418012625208990975105021267093054347419407587864820451468273765716570166294801682961058846824826725487736868546840570206697021393818890321196165848164738855143344606180146843388387857784266387168486516792659581354358686852837058432752252037457528133957863659773300828053921155132043083147117298729895595209593275116473199434848959724927605361854923137588821844655667601480198399618364622417148656456404336975356173529040062983153335306816856400194277987656001205506398650522582733145663284715823925460534349551026679862825321127966561361530619793626268065535029085715724332938743393857784120854209287400435092097257440279565757850648150710946063764095261388839151361899848607908297272004673066910232982524156109395763720082339851644252783319205159166334489159690558198321095508971741405800398086695477936242916145193674243234729380680643184964783006494100830527819770293005533381442961682692281656464800729317647199730426606383504818840482730496982305804639968173907021060051110428028957195553190903297695142091786439485858698836150321793377992232079416282468478012082053247628523521367852133326501459918001574026991757743184005405286665977459795850101782226125455244779882893765370967164718038823486623793478425852417990058695622078146225045260171679318876614952084035229512265885262421781658938769807207122616884119711279678497400983433165889033800984852340170668377888678343294302486203454258316877653188142961043463614764260185733195359390894015384126325924198171741741696256081187588388248660276628962560103113696811631514596886873142153165275312435892284184938338820540629385653079950101348235568632215065962592819889293560178559521186230520437214972621752282936665231014399378257559408626915861136596647957809865682169849568335464244740712671863763846960910082785086280373341690245654088195845019063746310050792707060279805507232623274378459330251148400409176946595862329485877091359056233310296625993851010434896578947304376666730610450859330658228046573722276514024375610145351283865861260966183474209742579065455631411138780427509714238839715028633746850672569082678846177549109442291509675715516454876941813799747224933456669774433660034273057845527800527510128711415527307436861391673882450201147145323244182275886942297227352531682269900597687485883618289167085962607420508034495268438417709722637089190080652441832894764837231187977706856178886058400689932453357742570842159813209545627849491238834674870346693686019895524123250533572053929895782744546284145909686713342860050861666910779155975864550893876160716784300080168460582643713449292348315775836472696517107426720203500924433504635374544844419753918161762566259296121366708190115523600764816144482474078462559698921217506006342177705846637484736653814326529043452520944970498097874655816566489925755243968489844380217636985374223445257927331146106589727200241974936650350927828640143260467045620462406304944771084111345520454467103339139426143385799744732278774474508062754681030024659138063100274799698544965574860464208755537643438553767361124251164193225464225906302184695771351992858154732946326156287067678933095466181787739017931488276508631166628240284737179580743832454241909549618181530277423782463074995160766827412646051088318562495682844064364788635565619163488720660157634683454359840679199116156189369357461340860859743650872352389856654961071826490073407346576737146292921079691978590020102896776101494187965994261988989229963126250841866488616981700623132545519923433762971128733990420797216915762374175113895721419508471052338003026644080619659520581222724079922846610418725517124867420615454544920881203769580884852599438305568355562824256103653041740067956577804511572697164500140170802658857892650307294616905784053046987632753765389258030296827737075047750704666091872708487292978876548617770964789417782741499822411871691516422543566314478095505674959122011601639722177066372380962470648712425312140509490873487513731195464737800623681930533281401390231899389500798005592084136425497018402379572710210323055679589014753602748394992588769529442649044959112895413787746353888592753543075165421263956572466935617325183352324413480023172126868557476156336834821333724257220191384662540807947461817209950434615973824484887944455758040257989080393896049297287648001586512468537765663502783882006677751600327909206414692501728239665611371982111483800592140641210490171320514117657963627051976070951911365304787446320952324727997165283390561318561533720389627962518924738867507739286453004366311898570016274651959458011892575166300454114002853721742351872183040272313663774122902317703782451063406723544209434381987862828595021320505572952868432538943306804158729532799748144808252117571440220197339532683193375660975152070204589323048502988353692190717145628971685514585837523877122465146462295559845948121240685447294044927187985882977621987077001964871736973190202584359002456755529175223136182452750023765743163433658349906707468634968541721071507392011458426400604401013810473984953381163761529057386758218505088444094212526586620354137762559131637655353274650157070953898173767163392507720383301468042194261104888613764862203517718053466582774020449833159457443944381732853948018246501959487772641837733134185895240176718398346944060843508922583843408057493001023346500031624321538567518130080452619261318121842383935828978421512662593945454387812848271248799897054244194063012227393742458261492562505467445254216322786298056493753634555031792116237170656393239273256293902078673285662602337368856749837627684211158719839250180595695127257140071395211244417530820184408989727445514400636037660212406412814714651205432331915442655530774334400334162309553129454864814280057761836231508327998206025647145841709074846888661140407413967806732875751557218913977965171170754849360493308609660884716541052172813713574094172069826001836692005144049217083517197483910038324653870378941217032623740653196590176575638950199981888252712612378648642035501285764637937022456358848432362166784737654198101877530060371079631290349037505980416946650043936452765544848575127675555959171394997703041034381421810688498978522043445221385747172353963463968124738172332737967004306086504210622938057194586336622231668644598092900446769242561839147634637224601408576965502625416533098549837393196529324039155454065487273354821947142322503508300872395431031197485791496775594239817232687447229842447469043528452348747483136952986224254477532702503346821094151240602755157940384891454880826448636765187321010394094999887529725705417229243282733908245471579835473502892050765319352908634449711755726513908623420168482121155041690783960279513518922126397791727322295884325942358198139159399052039240807134985449269336797351836050053066422985968180232825120912056429203906817370749077422447436237957983098060964307077678395098951637851433419479075735767816145602097935271327858644720942384294971147051264244044383893539433947584746874873793546397739874159372645314050015861339938556960333865104611157318215292627635344760622824986550661106520152744215423684286456616416072579911013600181027774676685095442861967138741593590585085761445935345031412713145641755263252589646535103328923592535699646295274539157354427590541483353009319235115791248712042908098156225880918719018450380236194386811443495131040397318611538855627186777960758957548965384644983388868047797601917896473704092438808393066141361209951597127590617113275443789218069425073043281640266252631758856285699890798387927761843414696707478929154347855311662030360943831608312378617623456818035538163489116169801239546354635710934392342992088925452197070970231799636598595934247613916361254509948861237143713612386948254732942272437148038618256392163877178565389376876904817868969868767164640815844413683661641361229847516709471118574656215780235996331471076574186695090484201252650696184119462831245855259122752344740637085723007799761780461229074441515492659229783097579030110301436223981033435016606875688901374913611018972906247222854491895609786809900699050817473453322800575967098335797317303433861713238555692208106705812938371579392172952510093865200124113328607102414429737952919371839837839780875173987024355963982300689164246021790556689365481839615745637289239440025501123513240642400560297456297895867420746760947199623201892327056922653031368441318950851971504782229370987243662352979397894593708867564634969663342910939437547213005272822197434136257582243597586935940124692908237375754471553440687802099326699641509756856645846293629478453118986940729853134600568913421395800058147384457877207262620085132955770843398549477584460332719997475253737898462313067995158191621793288588765459814639684942388713204531607062939339197677790670844523589158191928452355737981146103909753270576742933604152059416409191923501650282854172784642569411325606715970257108835141889262590830520323376261497037147373182252179487490649563506765199157719303895009055767984002528746259848202933335995096368827786535127060199971406925942134948684811716720514922898956855811165476143911469224422480512150272129494688872844047076018383503919452726633123145218006725893774636277532159936427921459010863176269025325345685197981433212067347413808449465700807714816116450849130669228647919550953165034227812569575040944071617600503557733458397139985162510712977951332309655690632752015325985098562801854019477119769548579049992968387616054089212491949515046409650501503382159812134580707634566305562989965509508222725433438789171124526348917415064229685278482656486580997614812125765664779774889400558279413161244419431846732988679918261181005906666474533220981284269485856964111852938016625610996924890291337718948177067144140154382841286089157582600475172382937826046237897477953896817860525555318575072972975920737347339504273095297048839948499660712622175207425917078619172871955044672879792175969087627292802041239950963876009615514226205334834599635577269737905993022188418367671488602374793274707551285679458504812141132528942432450457542308300927817688523475367039573981528887319657876217550442447391907545310237285422305078850843219817244721821448768031904551218370039989352276528360712702764914400385324170932530218270910098507044010235917005291757157372690774987640941538208593347720644242425739777530232111976249627938881778218758385646319958829648970185848588285306504560640193734643135990442141892109484037786667737655621892136509506600972363238449231354148095892604500261194172922545621338094992985580835584646471417845533946690097694814642235966518115888844822276656938042871888359431742472117856024496317939085656549666118189335870308155848207470928343688267213054271248037159452429426319138976723563240436145476410140510982106889579606227795018138793872330447219509981263298313018023349456634837007488132972445355656832821454455484782623887632428750867140342556544738672265266877110402838900571779645312397847586481433074980362646829895359223884254951154092163512745374915629144310991760908675717135586941450334007750413386785429666003159137703737296195849511144616784656660985967354733303249396467715142655534965823389121995006096586563795042254453218511090138895177428145919908602567387361268748383535423675197514147481566151290056078541481697202436245817416027010752859575769254193444527026236743690014925136809511620153557333791574467116040805590869961121522458413692449277282166251060699275652748449369884721748022878583447642761501377676133307775946510521830090534106677743996911651351406006664038036571297379972207934634529613659067894987544535594936856989085344991482217546804859056355252239764524520763075862459415828729570443721112904997757558186497163313907867519034300580009022334604818364848018964089914611338812525129521278878114482021991348269826886424448028250536933021493067587533619154098286604201274809307077049671563627771559999363119861166988715989452454253032452942152678931728536126799469569829584088044933021074724406341681640136059289696848425822500927051482365851404778393277367639160323433991182666927796003579801500784869930245341108107673532035435980944082639476666782285592072412027166321027545993452100838223890076735328189884215188406596299693714147518586564677969343514410786784297338969234252320659993054667227316275290808724517386154429369566027044064048919566485252616714224923147231701466718664432432659455325841961304005866531714953721071989640900347335110589404547849280431820394615135500587277145930034415926012023285994868824309711723019057209427422628510422592415607232475237153827837348909935097576733993355351078880475472401786056659536410614268429045270489761488978839548590566290271667512466663640717013578465789408899738786248747073370546117492417195718905563959451229157921198815970597768282452898640805090320358332698052498105416285661771506806725305543735739773423863678473124700845220186481118789967860952173574922544215062936659204733694646658364188785503455289330489280628493649611537856743443162535571281465359935488950681132835934824543162472510248643447241724153105469847997731998303891119882352551961925230839079875084917433843694916643692182277713097115270252515713072857031725642205356782910071248236426386045418542130026926986917801468525886267416610047954672285899365496463049880582117038322185493245073890541940818155616739790155987976674946129564005345941032104916986193770962146253603164433525220125127221897542747463571517342325208028496575990797545325441106434918609853149395376432195581287795342573980769471906467507021721218584171795746752385322824936800652802288929781455904437002537907113294942062720368250160596968130013830606456947055263768711307372606913589708132968570179344703443922688942096642093746224894958494716340327895309341372175955085921437935750020509819712002927649862243197348541290307810596642038307207914891724161551715735946693741817306384075020262322471475430326629786422577263825868309598876000811760006386316370244094484534166549365910120081302514499676462641180966538242320587539595422370654301703775167815997814900671309502121781023145691180096813083898415640101369011523567357118872628322192754081084720127117475749399347868366988716057665681885798209779203202811083644033838791307493479585249351259827403085830847789924052308008459068677820387556983643328973194416807594256962268082027686514563463998170591385150027958886223142817192230248410727445251841339324201416586594714832834862407034828738500965843235976252993121225402553885231052040791556397803673776659764614863191519530821635791479758868463079781608828659653908034148679435352809106629971136538209894621790645017887247557805513806684500338519514208463969236682658624004723442753216927338297232382214754923860272074782511041955054614069812483187931157600298317489325712992454340306126906490326968607422359304762878076023001761194119327257291174275260954996129327431481077374936551629086195624464190590278986757007520062069781785334999376882882650475064489072623617472832217110973570230746686565972733237561918401803421756030932104067235360995909069819092402616549148183914607966979394836992534382608906866424389474933741927613685137811559318298456706564998295968985652029948158173878173806654660797683404957724297047808112126389718321206023367427938412004172700867369473735589123017993253812419864275965508246123384878234589523017067155392904975381107426312042028008213425949820614411033648960325102776310868305597566176163124934850568263283855663835950875750977806194992983553131869073933423172197716924149331483504646472185201144601498598231090613465746076313471483928256391066120232023776781697702958595108953027123056827323448832688762604370548430203659717422466615851596786123178825688743358542674227771357436240964162083686764223575253114124191289275454455866806683831469777803824109857383904534262966651482845020964439077858224602345580596891827472262880459960941697661911935923473674952873558847110006190520410583337932407452734696255807125806820657166664986547873885059114299270551774197009063071418806998914567861891970665855882983212104159886407415617295777006470281471193305008349582234167138758711453562037664991787497433736775882149039203623102017172375633999262588603704194462683603500255925130083218738996328772688311421334247850040041389750876032517607770204231051178146585724050461053597177633956514134111975195917029069088664162479601171430164718470876858785099145638297765951946010737847472305873084737476006608232515958827621404953801228624399987552236799748429951993518981459975344375875120317742064616479109453128537856400591405135386896998014093902907320973837722909281681602604677513644224771592321297919069851351403512258477909100887205292007023153622236841394952386502044951658083782353721921717070761868053436940544923044661024643912500305252073408359508707235300241634596706841742267560113260263861442251986171163855391474257740968654737385191253255455297036553721530392009778091844394734456123664142654425561038036544935301255087124579435407966356376482988311258231556105555273736338007621236854841549168600352197763160226059081441885434035569881743532477384530313429329198768131853424656437161081798740795289153762877981184949771495227156601081639397226162189503338773372502495594428531091495807849394860029950296376977085949459812123548943351787193680185056271167973659348088687139493879930285819932038602230975548978378297141392732877781520332231049228197784121492995875049691824459729055863729693895112149101682916107013263636009326646817067232287635983280765184650110680704032226070135012167880679709147830702525830295788337668709189087163457398555766511624287709071624450002161202073766416327906162547114139180902350242195344480585842123028361966472298318296202949991930819791586143620959556991494344105371546600689792873078517438709189821899413379179774583737809407199988007934143990278245325225524682809420325987378303625703061079770191818121450882335410081084590679713447289762722515253653051478579537857337932493512874566630463444664700500977335055889977727127389206131087186028212231439355935168721377176481350740688785684509153548330290396003328484162697817423027811813481490712708629631515910553746918856526945724457281806989954670337635395171442475086470599523070099219009156968167295416198791495731887984099344501595032468487277729745147429937530658213959851729940984611800254123640967727804662291315551885377333537280211928095302998949707677488474196024869700812206105687359533905657430796042121988824383440989012533479571304000914114719342674734823307790001959963086588755093046523505937472595826716869812641609892174005781152213810381600414790826278121492536423976441465513583023531267700888971484396827794849263251187547139678670057718645286977398462508145695555815403083926971328080610015795562144481701665908723058983919211041781507287101559239063868323518211312360099053031500047842332790495939228669747980814676929008838427612947620042484729985470679186815981193395204029886774241878342391070926352085404356034919926916833643121609706661974770264309115626160434151768630622918148570106444077973122457842942916941421748045439716535328901391910212160079278595209393854141589960091781470241121053969314488719625204148673977778058681780366096521414984753778802697505565702099135913446041888359911401484443227199683688545046168811614548201552334337459690059046404725905487069349395898524110614586208976369867062397277413079737701229723788917803952610060537980667166134847832670058264392877776653777501434439901451731708018683791155535852967174305074800382870604785606078654103198513805412630525013787030056537995945616994846176088710397514928441442206185245780435254229730078038983121494476486994598365871498789798607119863117579534151068072366432855146118937207947210670933764728752356182625592556290971017669821418434055853840889788291478144668150235305939217907858529888276605640389684914174391613562795520250520579152547977044223759026387244968964888790982994692400189782914668457132710407386691434284092609728896126237646365236983415447027302758981114874145556112439431826062080492292574437445329694900813758710479526193189321618600687859394184422791013046303819665094389900644988925117944049566695827131915321607930067244881765033463518842619164126600870034079277291673102313312155486707351924611548325958310859961656235028063288514990049775737906009542479208792665572175818299741158043812794080325852496969784330788953731356531457386864813628177312643446499560756136524615440199463385091145989596940173926387260790676090049656400917282708237427891673712389494003324658979889847156593443364635363863202503367048773667633376710556650997457106135117906172102698520692233547932537721513546900842622709464879567981655016386709887825710128480438232717542824574668036054933772157366690151767456070692041320331152946361754039464152503578564795665739736789375442017828015552740751422201080819309141913919514829625011363986763323491096201174466666767489813845596699942394017093939040780051714834009799573352255745805262606012742946199028212098089148665153514981680938315765391223439121813678490188364782420493977006570155516624699706830192469809089369032160330493144135264357560959994990908159973991453826185782637949329120165454657848438513378987511021839224063232711500099398181154272507847445765129529625825195828291033132575666238043430117830992341383234775385985710564151843214993661307007727817357374376505542798328768707875698105381803030807342732072867634951291488177193866966998112609920675145794897467294954884033792437069666004937154690028991345226184887316156115800915740935824027256347331940099583761537369282475911808739668445765595679110310274444097574568465403528439548195369634044332218810721316562713910237729297814575084509418817921351396252383696125428573467480206108359456706317119184355425071181920072018863492086291770583690620299598052524678752028124601398148896110749362002101449350286404567554527183518647412913644485651332293014353348686031919277662878971515970784025014920816320394442287383336040110144948515937220653768883306649918645988526723605662384770163396052401250775484659472980946925923924133892074109680418028699026988914368867064858367015652950609389104078644222315838810445374148159784078460456036144075142837087906111867296974874004678294812189247000544733586184411499230577476901487762130118383935963316046489286569966362632139286952545933781855163273417771856726296478487964047157600965508318756219099533504383435849173371346927480052377787198664206171920627666144792356657654748838671395966673405083356513833273712072580893958191041071791975391319086146664351190516718530426940570466460404963206453806290411379207919906666886408024223909509703564476044096893401645714990196942127369166291797054425121413329002916398229209593420657742805858747457672924585193399406885965888062081364614998036594189212097993951516955599465868702443138484281058870467971421726187379367907687380331413183286088086851898978020560155494906734528816426592285596775096698785982111836698922547916432718511314616764430275500700140008300385369926382022289797754557127779327504413400244820402890767246802990843588872830188879124756652086118505805923843020443583864633964980317456416872790301657160168241393827658625338719493714091571354883531987185582446474975613046699592653449450070178216794444855526572417159288943078321895348533218218373538921393398836055658749739980144704170731060973051298270131436330039144576229587308580619115431363834750166401887980609949309246932317844924945254846988595522691085336743484052552847970075597253391199621421395131025654828273789341378261007073046586956602117614448640299151539941830350430009610216840487748360112206741459702815578636296235701564317067447270717007442820657467984746974593075986904796903141150160485179731265967200758562745070894619269894106396124547142945072589206712727394010310621925437895115103503625688075526225070783812337799608670087712833724171744194194337512909198679481649746253944262379207706302089754853287829846627594167668790623634413839152540282315103935030804661919751287637136737931556588037239110023065023006141352418153218197466000597302689154977721418455170123552219375649931017840125690713018879855167756162084660843947288848841561494422282330835509676505132896462985705663829107205802250321124111537663869049320556358922710136421056315946175324684509796340881645923189264871589513931127283373808860755971402285320424291459510371233502645375150535984218097966118362682580559380388423388888349495808907277560464789016379966720416636360989260897214536191740746018645452731903236689650227047053433178474354995778244245299193816976467285499092914314220857980584054238667534670275131216418638144318313762724762979599151890642154004682404864940022501798095362956080351397761502790099583432893032791994071194960722745198605317118705387017981493058479498564297160891926530122906856595772780619011640956098579476718360093813406144660613032252040510084143830599851514899900034588438994868852370123014571216567536656359183577753078598484293246741529370343378426528819041193267640779838786467581474409138504096082553293308446227454594333710138388885528746084254682761634500010090914160275518165788409214554646688996315463601602326611067070273800365586531890000893349841812653184340014675419615792170315710859204226492231029747556683352560417271019441276545338282055859798813519359817910215156394403658367088392313712287017821090022456380885637363360127680397802548483907303093400794960289992198155010113698345313617673427757588496708235225096950818048884243483370445708301832729561729679819619039004500006617471668119723458138795353485373340696959459050315259525419821924247584291555801829766799918137828244418273582365451228200877188761646573366397105411511023913323892900018244572820603021514028096371070454687297450845368607167813072949650006052279357258765479442698795339738777833385548023557367235312634362710086757567382698830293176867092519119182932798632872293052071350857589497437608308716454279686277985505947894563243031550652578010553783000824712097662744399949580697946903522449120625279949310230749896212230579618511893114419184211833150951705003483130439378005387528727946148483435559409388919979387429944441317508787301341362855009656169523124047420697187666854360140249348021337175612740594961188494910299048611906359978144938593164452562510042313630167872975297503901738042179584301323579120423362968272030103622571968530549909498095133852804211784601161205326033895580756768968482878868363194085594620153409755707498239763121470577394142691040251581642254698023842202453928897558830835309991909817525833309179708130066575429138844745772079363770760502315528197521294008143824342490082176415175362565586943561304714837274431182594254674894971666917774970662349060118450471796161456071990310996767312134868682643283788265727368505575884679494625155718565089561506105319229518358637973079949704072997372217069810760998675953842701502351016357232029789348810565301553292047032496738820688838685290605592845129910000501355364910738194734682083092727269771715557298834277445096890277626779855615921004425046384149451072771176830697683984800792992121653958125847837173951443142192812437619344868831667917968986964310364424058436023202641603877138511366762885491465162619951941771999451225080799904606373169572644292877619100948226261798988177153752822225064432600925751180205513943295168203930300354077496628524952681996873165096987625375005285168757716013682923531886251127884541090644806702824036111558975368622914032335837003786199630026687686915246252643357031663541687222345426508235418445603557272448839623814140791827423505656241272225952707118793754689002255634222323980893233456879306082214428034633649414573907808325031455045504250325637801020829571025753086135490779844070384622412064702170989505526584493650196896575557516770665072682700729205923753488991674862934022239177558329717941168914445704286051159184730295004877523126658108348268003924780054207732594850000387429068123939281389114043122504321326016015559828372394690544186633972958108350145893808430432203295734649930922783340448974876578257031202367540081783102350380205479160959927100090617477314519923038647628340528788008817976655504550057019713343209266798344242973164705313668875270490714344639460271197484976784315350865958904464930774117788500725949542921163782836033840099211525045750064399822751141311918468266528197069749074107504409627772211846775948369070679027325898402655372367721784268071189228723050484923002891321927152569160481973493712910530017979178924034789945474231645525847654305017737844732743966157077762381775734578089698655707246907396217927352230371684863989690147126102161830268845827571627254720950581182493547068156240755311382016356880052228364960061353485012084424926690526128874100761440401509819927917831577034672976587999348819907789915404198374046935338179568333162483724301870056459548638497113057841017606325659581048878498960067341314232442902243421862831026657970281170726836044207585589875490443498566210032843365396912492604722890262034778081833162149741825157118605138957687338945866944463146154852274074859520145865675381075134302977121952634977254001811333357692664361884260010227993037092931459783219274496649081277149761478061899560348779198018501621334004030143080168391858011377412733123830952450544560269571753828809233657104221911719844337295850320068123621914586562495101216326086034571185604084188617848843479839135556068896265199049117236739452238912790069031603443393856564019732058859482689399185699820264627008044011466317518435329374106322990197690483524371942941633314565219581016536176345620834884244173290091100056488185382774768961856236319676433746281860560590525787139811790391623734308477462232278689136356340505138627360235207700913270848846714871654726522954058484874448424030733689942292445517466128694909610820803351338276337461565031580956199879582887236517117729103038954698285027454082623653360750921650917685588269742199532796767322843468090832465711249847698536281888273467274852961124978290901091495176728191277602945658406232236712374706073354041097192182359395790252964127534477121109196396287018096484697867995599156476200339798143573033597893491495193063812598579882404460549481960785815549649152500763893406023059237241480977616846486376197135416875764783471429203030371510839584715075506369021974712069018059483563400794234882069693363396610742426125347406388696059141703251371672190259703292610503158236355748046588048301747310857583245083103553519211547012645422409380442432748322478896084891290809414794861939255225015783423655329097633223283596190321378695329817934505066296848853691217747803079859725540085200533730363791526253078544573134414686220186007242851127977601764901716256379787524727251096645504815503750251567755074748686205454849072729395080454554029164963203479274602435267688733244090429209560033043626274775308789273914886441089691731024220056438773968335664950693091843250887440420450684065002691300517308026868846178276829959915504374392482526876107342920290169399422521541383671382625087802788279096793482388515701498816696029703492863943389608515200880029223766423600091189288949034946954002455994815574926077308518576511186744324703960253564757994037970044770703257182529029568280424773398974403389209794570650657297812350815540104363304712389405527413701900935564363603079351701819367484793252946196176673668193090542660173445580315215765211463189093658192643505641333061095601636749532684956238022537590845254738665479240978915365953693109268657463334842343569226305325823053691764145526606217040120318587368336220985772148417009781041422909749189032942961098316799426953334091387134098188654136601891660775724576880807759279590635488979793750607329415788483367360196058023283898175400135407631933090226720413166555171095647944582455857684222410891890589252194355251045911473062770191184927375468362996299056728818712447774164893517020320242636217573022306909909322463810071228321777413872155560602153615149494361807549428247960396672834693314026453057742850562734262102915859024808520096722336093300969087846467458261322623519379817671379604718891914481952707922529281545460201375817726280891721106932014082682915049186949084153841160617377088178060428955319261498436207347277363957056018920854676842294792765109135616796745650825107065401840997540814502354481954250242372917275035853297701547683128971551209420816151778530371997561282154460616819475071296477370947031336964841665419943473705883091557907813610462419179039595633906701895802347983393112503914687935351468279410654689413866552363470800597813600887873422978849360054292886384497353426893036646319448376436673735613099706290446736240616145895638860496440849575034753163700888795793693979311292574851338202441625862841507338716805911196057358635469013441686521321900699169887290675577245169994389888182156185394227917571457960187939613937045826828129836043229586703238977240544236800537087016436207302481772842015562272231247257289430592772456159894853603868407704943828805980736187027398216915826034103956810424163852435902044046595785651373392712503839816005367813076744248038093030524518873058483807044278053397792810453687594712752291506755357052169458395412149651814084891980426041789969774141486835980069157140290500545081712393323944128179057251528984385079800699275458269057811810552571856951279879525437943176224504113606196627996183637763825826573094129170938608266828085803469450973266968570558106276237832110877954867202621734331642947178651458673831408761306214608863413574458181617678072008477159688589798231841303960201709556892448932609057973373710667797573849038337282574941230039127161205056443699683767863023420612985285205938099603035911780731715455803536186253290568610393263176143508595945130261596724258877473520238190002713545876485679484447159254015694588089417516775739667717252354104550123237573082664274879586017800792120857590242917917051936569915177258780984843543399964514458938648750053207785845716312311524564314864517395121160363387919170613994653184667084069295595694898155873100755812165417417776197508655836977694664966663857380237043171389697651128429615468011681309008939834403895139643737039433844444052163468249858539483199350392050981634719088840063123365916513983570534149025849387287071735488262388053550886709120648286286486312802941737047186399993077698492810172056140628015349028335174869822453856889236018792147288932018977388016258351555533026463781191533212432051303205965932889238476031248910807323545312187489034205392929199666665306200181454248383415864152134355317244377739412463428258708108643990366498851080761624656907202511188867697336010708155313053393148451816588050581914081979228555610057526763529606317067491310963279772023719141007399698110023027161680727119737263080430011288937205249228435693696001362898733194049223625655487237831327816246988300828818216975909067211662685598835241026951591873830379988071413678871721893759296248805110522855864471227848296683056472430961639648991904786196184350471036668944871024594190763153176058858059572705705581745836471554028015247118453297052379341474538730287459347185925699513562372774322581477532827341141158119872939389446728082511047766813452669554720864643965859136030786699624583943101274840193244475652944418236030234191271118079523361488613068674134055430422788966316166862159010625070172227351446131559236048873869949115423890844781588352283465939064967911435551750634369863142403956941349883243420552787193142991377077089639731089185837095145179279148173839450162769507257968901586705394496088515653351313146322375537720889757957436746436447448611512941777628009481900597622699034420341289754086901892248978312893262225052238451929311346115315077260363447361056773293140822241252535822044187507248154468629785183920027493158428596184645959761096878529051828617250426088950412065191760209905736133346245540880497698458109166822134070097953039231963196101853807259539156112582854330307154738645430175587936216276026818552804153379626995528785026403064897504515120606674134474238209672167784860481598825985482479562370724794246561218390697664408743369613781845133119668677051281131624459857251176506519623468795421124129945671487797596465446342369028843845251472790386183534593987731729205429667152379708657158469634829655859100216164343725535279988098261868761114027879538965958991282056708073794580358761117834936335818076812524846317663597130134598001819615665582803585502175724838405072066858070408581587828346002560740485723783508235654189107236789596454180252454670817262948325970174937463856489344336852298931238515121170042854340127663522245100695020847596171414401979486458495080225269606250704223288884491857218837627744448608182983662611183879918560807811234780410362686143431537395423869214560771807513855528032606484077850727552577456485947683135202877745187207806945532434800607349930419099013271606847476458039848564524968441984719283121749441433069668032949284630241190632082176473140496693038928171601607918226671768329254875688132874114602371215179610902392828476026297557702690483479910155367756126238575831607438043916326169840268903866447694562216585290740458775766809830758545497538176921009056868380279722698902673265069521560488446241926366225741066667367668404171640474521163339434773458086218751923617692777739257594838661987502989818112424575971121744800565252517278081342625502972572119950539110462365103205566452776931477692459130679077652191135703471605414048219175118010863507484884227403061239229337503984211187229703725640368732337724732927729792520964874708038379520259803464243895417054028877489209260758067993950315503499337196465314025193517174889658788306634423539211520413272446197768649273437784900551274101204090864418168664638698318262340484200273998854499606195910516096060169462783613875580226140597771052188475734046901933894025686409293958223303112489775551954075639835894290114668204912682794838563803533950679112012589485021400933015850623824905422221731910734883263877378753928507063122233426302886744032173224293945267108185437751315861898827343598508468011470148931606225863354137027621743344537590060426110520412686272887501547656969003529254158386390976891276574794129171302005089176016390908115505341169780417165326301760191578692100883888536373945210251680575586055365695810534515051182509457619472007749409005113748364849830588209615082632165942489517995309969863148493364843623094506044943808494331144711517555694556561003391838754061469198345436672373660002949372431086061586695003090699910501929548731034623457626266434081529411159765141195357314514154562353695136956869410969621468648689580352040754350371443665487266138823447853131808764431731398391386639265786825655310129717344392481438811838557348843818040219590251088976825522952025959614255819220316070482131448071816614479341594873394342283247759307757142036082692445220094285393571686536597851876790513527015525914893246367122490236288112319855520346889920488398638560833385622934051009114718608779791551144375565279656370529670438022967173418548500398015924151349049757131032199280964676927332939114584781728828350189807374629463102082229529241823263775143072418602666690026659524175565726752825605968445769666605872792924428578253569703248300268325595183788039402435842386823625136279782602778461637614752229771163489877318165466241835790275940361292361719236602556479231740019330233189874255244757493972556769412364404471109623238632496646905481180356201700993058600781573941948219351704621171401507121234669408311099835263744786723600299419155495452223962766782909315978458257855860545698715363864905754613322154656894064008976446065125274261386594163871643864510931052919381296349205917296237477795670271499907162438977884094265081254514862760506912345679136153870771756677196573976106957757613820559619970229486219461406247961374646458046022717354005056156177014018303641136838831525845056541104348243133727180191905533577374805772368526537718775237592229263502323340143894408111183944649874995381832668530575176664655199000659215452597038863366701057146761096317653735010452646010733230094903397006194082816143014961820109642273755947553743964378536061119788402534961430875698763793282004037056208704075044699703645331109666428107531352106814578059992494856814668867690531490754411490560047247061490014791463725819912223095008199488607773056733690505019497345597451168890845144048233055841857694017270695263059471974386498935397881608280977713866685447457067154663061966572301620095268856589769308096574870656869912657538854224819129713432278699379428494390267555040124432699503455657638307239440213668687902654889294038825426928464647186111548296591307262406873026099601492255391990449478332472421184043232701002364523870490808275301690232093799119609201425939746870688838085182885467846893280930042802051959883881774401009315916787208616815134144557358020695072908643547770669809545785635082524492866796444556637235428141196354524837480959361797593244331197547886736981567820698316868246062711635251695823354304420847168473202940374443743735280002254980421555220054594419882599583809063631547144772965878235399965518440222856494702564052922371261158861959861150961376657177730168973629630583795307184090250573714743501201498433755987759867815673699177286696951265514383180592272278745989555551482881804215319007632484907147925268491091734420498818506755542306185367092874953459207110523210552163739760330423610091392920773767927094212225279381489576990164954286067139298012956842869139707700000221223719525850359906977785972381100542076678498477968141785362625714503326985495421114262617701595743338969101078862254094540895552382304751630817030174361859693187434539040743868527367430537851079865501442472098930458472700635862847146897765693044213701680558451818528078668337695427576957737944159649323087695286757051056916307250628480209440096857300329451138676563774521575228086222374398147398984693253618471334076789202756831237469145759848617345361630146886023523258824522329989753271312050770017489768358898180724802290339161363647787837033529546041220202475192676684461498674590712210584041424856581086572523684988043051909474000087804330704062659900661844498394811796123736587553791062522464581894961067136299208465210920361681497758092177906226342893579480027720328955135119024425108425182911002253595099280824490583978262155070092449729753303714954451066567493827593921651911837325372531539824813176334986849474235496257273413437292469239204561255079689326546613057587596841705882013370419112181135956736018195334374535258725672920242630445464775068506077340310836337337449932498585093479681225747298299372265554616714969401000772602516905861643097247157561233521767443635265824687676971178678227829423602153927284914755971286907938408244347310372588867053523416618974377507414290046826354136130880189536304593139667935410030033545206503865114302517913025768301923846740079570879439798420459544782547454961105052374540039098750984777018839426349066458359862324368915605536161930413778531384649736935414868906239051348094769066406176981629940562750205397935031467208416481677805486088156628484405186205788447311655517576345854711715271086530174647228615954061316753190949857219876502078641764410986623066460498764315147180355782652537891433547296840878982526386202442523656853860936757477506620523185588964166358931275895255867013783530621518554365663801607589088323027489688966440211660043108348902283071995192996810555223521501837428786401583729687210600660403204982523629761419237374638467976637314325631901587228146204406267798952287721742992821480692012762376860109309919922286920175692503990098184640344669558797315556157368466711901427389188024149511091141082037102164892955662548539005354849260167867519750316702111046016949390853114631129693504835824950871715852004701455885260961168423014410705565634069753437498394701184050362514717209492566633782307521477573570079544355723152763676778555489924745662934849467377966660835104152040989593057324889782191699105697322173234954894102297611144049325050535019064875238713307877069608186822879046511083972324050196464014243709123243989525384747109773598780847590643780277293779472579946349440507947603410295088247210812550576258308683143680083864986358823381208226111809847791942849896283273840796119563483065084394797792071038853119522064186650382173638056064679515399866627715156355124308205193826431259619658363680698798925153308531573300263018202755829405734843791581905318764132014304495099641278546800350152030251980412669172048344170353127105183309497899782752727155100889012765652151122956231396842448704083439023090439736589386553825742936630013677870913410801682285913260810353509664468746063107588888495902791643548792668088899309160644940404591039291787380322638956903576045541947675680774227554742565910432753546474063977797079959447851380940751164345599628681844906910653299835529787536633423784768252289626700575666280887184875542300918534337769925366132312686442937298127974790811244085060995723087953614404228281764595693864009766146880933497679442187747103204209730897594070317822612817135395188547557062335933730924878022840178318405897622202927705251946505980622106500614009215984222509327332592827353982416655245193915870443085994110950666691352748457799332650883602483759148669490722735903463448244422957339018311730422378558353415939203674843780185439721805929849204789668363405744593114127603062775246367451271116408094722489719175323098137540006812549121022249163553317374684347645533777461998457507162532835568760584201066042697322684292423547957245926884303071030760360158943564207822494539040526527293657163763266347814262816629245585258437560599932142110121789840168736938256010984869028578867213085637837100953550565004936672760835117796199518363822495933592423210450649253402071524317707427221172040093185017826226849115368734924525681622798079883621447111161321425052773031952693796151105637346336377217032155278697004423860258474744084139568118115366560979715508195838595863025296704740955279632606404816184652703143524495504799099335782680737881623176489660364885986784522692821935336702176753400107334026325997251899469636148826431510398538137476291333493820749379432850365857950090209600747897851454223588200678815469290501944280449611977818189983186805581896569400879750226154751350389331894909033701156256997582662399732326576732189404647454538193597720495659452073236788209561840258737033608446500620704800731170718040310172535397703862432446882372163523745825835489092394063221267397775835307866271276862490436006732133805210039640392509322360363893102371318558192919885186884077083651025928423556023717114433111283861766339074955935337109406295675662187312869946876426343066333039632815507354275117826072533279393423858847719378212702002017406275099184240163532732230846981028261087243390040075665712237190971748866795416377885469407057913456094285079655505308615899433110043773452003174944502207260667900977808007354303474134485835641646379724192302036097567533426002910461562875946869272566166324984523272971722996626718017412217485374240670035761392587925786909909850847622834605344947578519904491416081510886793907143745620142774046703511472041665009320419581934333998808522923764417522407290804835791392674964578218595136963735453793180936738352555473948619890914047263533185668164828176383307675629154827114875176653397012392880346114001386862882847402414939897441778041841203008819547781093671050169855335607581187810047409549437856984555399491016915717866546131127699542258792060149822551281996369367136356802124360170556937021395224249322958248932502646335861360612998396757816879176598511587883983356758335042565515136212930539707260899314701797856142170810788544296133416371068184678235363360932684430867206430470760796798712179330939400632185513485863550474367917444867939525381257386828319308383393906505246480794684254348887875077212107678947648703407067869555064815928173804405502214833110599500781971203977574985329890937651710154019875372599875704435070404807818958581955575351310676679971546548641891530231502102553275824228805088252162826753993823899776351695289833400732111599997524372874367035552205524680780632130514051021817207324016847057724495458560760086337234910442725283699950565280137837395522564065703645689319123092287694514296705724650119946335547047079276568845730522580892147105700932784871735672205340812613323969008458028418425491357715101935044827871628640689704051478905761655912478530430876596511104255365683881012653325414354848531170340119196421552744920428640136991098852751325793612537196408604353013029619868616472079820448401715675540695273754164049256994793034173100022178393618182835438882293197227434421064036992001107457658813013922291762854118794929381241081522274244918023523407712686467436685531329244587555224152607036936602934148453998887085907937493599992834550279515111997793089387657779976283381023769639272834416415309065406943320825451735982753180090718790410333562256154124091165973708056043662834579396253160678354301719926602645144787239746097076440285444291658620431371598116854995317307647910247668380101889841895885963157278771457682239563598676808560425167214841220681866353997455028928379489028903346911207311910932686683542104124238522877189946489820283278929875714355925403512278941566332551907056587351476994360627392325873724588714871290162469391257502900415285412293444000927162163728194731066732989633926580229951240012412566097492711485890273995556700856476380649560373136253092628909547229593272280019310801765411439524093071947245560262474135558031675936607219625540654359828840319711730027554136145243109745494982610099534227236528480950142528602112847949910321738293345740209915248582183771033102514956130275227845565834950342954435841797799341348795505389110813620745211052871743418870601830163841386144708286695015520977305575948267273753300094655679997232806055698531115711120916468438911767255796338029380598913930340784009496203447859916508209130398296036464920981631569260718644426855026551573089082447683194589356120032061612682133968553994916086348914277877547270925924572665678067655891446568425699970569646509504107974630141147742076943298427793891269660710044763680318261030373012523109313756085240970028683069230669033745602823891885741791569254945509258371237607201492419724294462356609401954961061363328109486400195833801447017772979550643389027136120834972647546439460341703497800683738356423353175081365770560266330976434162246000876888078935784075836078482757879236328624549683458726583165151887865256289079773346335876319117651315629212142221369132579421593212484710061498972458750919036134402565230494594919281391721100108556934439069421380267295424420692346236989653264279563589893972541448720033515121952326979216389087361854141799670879000825331094719863378584902068271265936295555985913384094476689612908317041482295685335522351122463991874450397373821975791636823205222420450580154559595290330497527969673645083098229530172475062004767954866849193087022723954290910614041398027050780685196073965014258967793989026953368258572389729894146161018270005867596245157995339331053487627318135097802096363342644669798050912020047253687655118200996265612133156937940007697752617475627290280688867756447844667064906452206743425645368264903596493679981061897604513568720161696797492316331501749732732890812577294487246249273821230333719725151000773937199657217296193334610481243988043358707192408445731525962150111257205215018897928826039800460113872925626837432779430360973637097020838107323049136466090719540047679896555198690970037651376825460229049535780033305918044944212681901799506473519981177636405677077264285508003367749128739159569801600932449271714590970439174133233306975540246365062797375626229507263869007210589474101105543384250329279336658392703779934723132573761489462429931485294626052051230421871728311654615114400078996530393621860924409124433110574893632782168804303666122315468178291581490391545432013938700641138121423999119758739756832772740219698539878427873572481993293854806084148777396892668985152178906329824425426751935511321010197688401927235525276797086353758981003484311392034151899631459980929148351399284070009364877625154462028830068104029244540713930127771835855122554366408078771087206592043693963164755709540001141106013960813205817660206382386913032503456072219888815463480220246568049031390847829385212860540611732351393431239018189846216905844537091777884810761333553350527871913369601231043427498033169235691505059051785764169224695383409130060328896297932094960091176253927438109598429354840804719008081022406663243108797867014523158920318523890381450504240322308946990922126129016722856237787944712752883045589458880160422453022997430665644501819298392583926031357005144526915759618488098648347748499645880237441832889589914337044010706408661335921678315692203860234744970275468877990014048604800698442341254087886646626421095712678434499892433591224552783833315976315935625159968756267128600781794808560540354492058855870693874269759374520809473470271640081860857573090815052091477376629283250195811638735645975885518130612517554408219643092865022045925323996524445028238912871766437646418074078278958050640086783435833665458607083331439223671759771144070022631924834073829721369378073099276560872081385664100447743251748741893728001311154142066594280800176244011448797161905660758750640817524519918391150057588677866288988048304591657278621861460827540548685276399550784270469421465318074821120692418241251003619526713556776609013903290380216701489647135901156325722582289930753273562468369141286855986674485831831247437560618961854201980911521674789725836654676054944627369591513252503385350675757738212919438173374422328305802610364450341281603204790014101064544792643516808272177988535177733727577656229188218559682136693853151638584037681066443722564776764363344541112103325574452560228363849819835204833051623679499562149548216820165736416872603360704695461836777906949020943461296832727485971530406656106320180458720068033090464958839710463824376294518030371147285243250486026371079001513639018332641662205249014601675219899918701664738199665788164656291793605573527107247181420581987164011934442551748465291287850954429112642655798104442737147764966173097759004832561421271437644112211859154568990284491272099966663603180472866381099439434554363328691642915671709125070122615889101248110912446178988909970508766936191305282829810091408312522623822407420347871594462956846934119240240546465806849504194366245173368308031661310792942025233572772262658924178089581602114216163676040622905641705904053296627748552499857011348694469586180991616078169502049411675560581208558495681982173689783440237650133192543903214043692934464316233559078767940369732912465978377579926383104304438202788386532455440216725537275208217233128968566713783458244499675770369186407126062951161067210006346649384969223451061758958505901363680401133307436309224091894605964334619445229885432593608599650991084879901923478953738794287471826478350116389532002063544750472223235154180641751953213570089848186154567983062662379126938847908902500929243226919396816709473543142180423625088886211905187693127375530239865266678287820292367875668444977309608652279981207425230165337517209750933329131592540724166275791769340155109239575703067839758164631526397873543031894450375920107779447466032007106006589349081988435757203739767484738950078457034165076741971413740206413587446698306061800401954746467709619179528053147248935672456588177661656158653040254268019069321388162405685106842799571068350919475745324961019155492699031356913462817544184890041591452461382631039429885464873505477775819897839982127089040361523317043815165949641522579512645875350730042037530279857641952802739231185637274354416319252317805499976702089570133239980250427917848626890022008200814163115188426283782084620635084797820260225163239226163318338426939741403103205376752157958255542788390731823540658281835880639450696957906653819161486636969520650359103445260290966087894648146348085325563798825132244703326882504720268617948518736454143428213959049458205129719581911005657457553887057118324973118836047516384660710888599343477982728476158747119250511377100564121958462589460870473678704008961000476631883788155129820836963786332893067668719626642631379327125487869010945502635106405723331209099678014879996756069506287345712483726699666595353747213027776537792135756880381772059825149847270580344443690856868433780454990412028824149158103434557880341514508379152709403463062163564306402438601105207572673515526400728635987068538865750749096732836807995618332857340146383633341243321051312029490341994940606227684906525302679700847998699102592653670668911650071890053306960567353053236463951890903953468202563739667933170502845936388838751511794775730463690493916957305313800706327818488163243828526126888197671779257835986346476799755198978719533301701338979529415591573420469732314707104422855867190751421284851445579113162756963244374391041255392088718076917871055996522537921823552324940223349617903246881940630918470070239537702029604856396496813945000265379816342942971668661684271975995739699578021891450367550506426812114367324322180388100315275652166199764153580128048292567165858826202607739435624587895756214309198589839623761907302082558741756818202267170969725884068644554250657781615597281427326682645360730864214912846239368457656038490123225337574805037235686713555263759182649417592221799454090573147739171215407957605211312951897073839968727255418300246803858594374190956124039802819883680451494179498545701841238881643428448148829850995274885522709267730760051529423043077026663866056940554300042099192624483961657268686912645248355683726208173588135066884486838095962425509015325985621578928736604101586650610132073622453822084564574871976387975222260104961190306079785328964545442154199096867230326014990076605276366858009965059049708770818002911573890592207161286114099171561109070255473071969059073965729576900881800878933132385089607675070554707401227333105643768854062531290909217549832331206129901354581905361917393791598761763223778846106505655614334037172822820121221383477240061572966311821564523004483215966971248690316360280401148431615810789160836481726074834684019086172414134238026437715655566721741701478327263212524785019725427156319159902806700492370081559366351090991198501807188868543065771890900428217774309938446326807948993153032911332975541859894736753798399701067948389488612105792815856495321842532274342136763368747578038916453673884298110040360586727095376638214407766852464777267288743752243848360693808150116479662150345303983390858420739675335754716666146003690560304212113085649736917582170012077495205316174806113576826272937510422677545464698431360325949933913876988997200732672979489115676110856648138635547154935382650995356836812561930373966520779465257446030627088923511641239790275812718113186083174046242493975322056440345522479328650124376080891785689872409035558806662188537313910086187370004457794810143606569234439825489531302585605071067289071906604734990346896722668743667543052833168263746937195224967173280891538006656942995718050034649998309943284508518434115607298861653045682798875813323189407057504754158264994233260148042333851200695864876861330144718990363960950837656761971989993279712595653132013452913851355744837167186749808593514013850748304558536782862459280969958788084930257647638984047395711376914765739974971168224703118981929968499805880975419303679591376317836517867776578782165817025592604347458223433470319117792157592623417318260294398243808117038016088346387208304117901652732508440204665723137424484274651413012244682215630916104330780539093485632798010046604019480355305071924454870318421028734005581633874305537081609859088400021574536599108592455862086288831428837147345061872079905502306282025791304996655707915074689852178133513841882948751965749822005832510627148613040189556673333961257967787839824725888912803978522358182315653882806501037880564752831896731928880204521093863282332684452594354838026442254064307700345136990213500914315844563423910196413361677687218294409542953205243472710127202654348499536444081844606031555473920161658507056934663020686122075188133954238829249444303473010101159637875153175508330146193355919263169292922059800109787189360624394715572249441417361736158674903365062311251756432114874143746748685412635467703780080918618124264935103900712341828728286168427924442035185256916906181181060625709898678205287800594928631572915934161698103034753460966075529810033845921866768720083433639626962637127957468020374443087841433394639435212955494624713112428161502233651219506739431975524217252146796475560450189833943670712601883515518280625545762732972370542783699690711527930837295151099405231232730946390285799338927409131938284388799179014890000668279277161000515224208948745140546015068454250981286581870429462290471115710520985756949819143835922048472911749544631498889733751386629233890033665166612563383837414456460983767526772885782270349985919794359463224001355816726658085392673620065824352630403184169013788477123561558697067840031738642306533392613228797610380825519566518804212673781502224377178105141639987353678732711263400033185345197043295909491090755415426013850211691868624535493345623714849375113835168072105335113508114312966795132954511858701383261798409982603559598713166188609990466742508794637203211408961248544224979452936655378551897557811026120879262342248495217662434738409976066147370330464080126637221909778186486787219986723359622214526307296567095791306221180054559260290686154393665239578695657395038461530290367474951635405457039662063800413106140909822621465150126346600494398347769941519862107697056092110561346797505595716453853744904776355676570190944849574938195419086010837614985294638119812116302603818403167645165939227231289852308013866652085972141251978768798918248096614891091821127432476198214165837766019023062185407989630860685146150702396350763926865944284137699377738575841419257894870943270824093980954613629010207476445376833685537659957848864122108361702936799312326586846723169853110993663350391688363316674063939368456321361553866756086646794214180712414600840835020381458579655114574135948541369677849279640052925106210677132718573138525769373271853256318095747738838148741020321638440970328576282510450041365339109402586460256487036665492823642007127878638428846067690176357363008526582636060061458032737536306420584972188157641922800502188208021266251245517482571284225439856963750374061076565245305925994405545216854315167643604466835435271770814496353524127066410087475810604279895072787050925797092544764411758359979016923884684706218567367373808924608292602031351132894362527716656707095805163857997584158972561468681670067985495522987522563412151043506115178242636883974103845228587215059075906430058068490479628643863009192667718938721402716060059957457138637689637791631297335743376113657201689394484133420439340643392054803875720579934911855469179921737368733766730682238270269947805233907948558428822207322372292236746723808234416729352927513469314333458651107603147897626305502560298198635747801729674603114909838684494098329997217799339641785985465024267069832465553279442510084448465873734763142219778674254168925099392735849909419502382736259468806764416861032837071194026425468286207005371251813256892633622743897581776750358548207056397134446220538930691893346801198423142020049407381668771973528197700741031467252824046197230407336464828259302114953487755829125917332196763319061302416906467223244878666385043653415353489509232821983808606554378261822836048775634499264535253173901715079715759730749247305013311233170704690198439523639377365178415737959436426625179464051549550888857777687613637124322586295372551037114526132825685233527888282738463879124685831479434691753388780195955092942306546015850807459143425797104558480893532483116497612111826417645020637842284579241330704493648053231541213130729777743135002026722759613422025392953382355807298006847026699929638030417100593445992931785523289195436158153597945708309779755314104023822885040638948965596479904713398101330937597187168089952001070279837373346389600194740072479573034061050233189397589348412267697706321208970685977707574178246728341727665318242799288939439438757348354655966635022036622410890794061947384294174901366777716800758621906111613788025370665546391198363769138900654435297693897518767430215593016361149576581295784449362635967791553339961195060472592630042183379658133492053938077381016529519069747008960324580134990480016465324142535622175632989360132439991373802110457396067804760151181327919933975266966088740206524711460201044620116466968821448978914983217644562475224260158214916699827298194474382975913581799339445294045182269273309609927260923845900011396407300027270630671311724967525025607736824999676468671628705200168564903899221425373751629470107486282557967237205585898965475417661381629351786409966776203894172818438162442232101883606992400841414909334183475246767348198386505513141526713113292943140317444703420584894277074195530888694351234473322055230887406948267566687358688607513801888796210131044892268529084818529002774190199617056603093666978002808438916852911659492917543185605492971233495879705954442008121863261586627325361866591824959451011575891747012569985550591474037232632537223216418332501174520660297780608858124589194194418592863400840972721963715393310542946155722888045262364325297854529577914868719982436029483735971076512079086272330508890265049787905535470865958788284535084167748619061284674391920903608503357234596703555445347237394582281353304395464921346736607714239319610381089892913262220265559214147343541546289661893305069786161403458195246005301616599781850072598018210670293017541140875162245266760612897059355418861237258046379816827279327135939509684999680324189120264828551105795370849194182505439635143800207450091006137459756444169253197047429775641478703879184331635231198034171865064356336509068859387769295116639377131872200853242990006932471023682311718720206516590228334244434577291588527184687423387539187699023295644188666985076267113352798554467552969511725352840897072459765771735654190925827951930034078347557740699111473469652565713495555007984742580518693885494512152301163136768922145566149705497280962738512001537494492217933964560419115178436794616601215022136228804446738365115504352954334956598928061218076700940421930566962201295220205857932688933180961529003033274829686491231563871927377835551401533538147178539925417002600169616284488358698933460527838329742574466891547243581643109046550147211486276835830492274051992033185204896171239275460786680701338741380913460857906966636924340750374421759386693651816199808028009621294731023806248521223226087967423694023466418930426571811972341180268580772728792942237461025450619805435632142783603777546016642587234029012486159855126308368769640387243818071200510527706154249563238829276175090382230815954913884969412225229981508348413501290520639842585054971081307144734935553824438833453271558825257198621952684035336104437371238634542119238804409604814063935815255613853065529957333659685369983166684906594524630069473624793465900133201319761541460860701466163591696754885014622839710764799537516051482924905151993305088504053091893622039096016259602597789812138365817588807074159921567213238381445782427799905828488554911393695173234355594921205689130817781303725006484664374545452168790998127937864786329236887194284922512091252959734191201312469553752561468976346352617750803684574062506909788507734203622269128736733768456458838267707489525111961420758871600743846583805304373851418443065780697831945188301153184064387456084847709528969825053001058095061888901233265768511969564425280923882412823900819527191464261698414424604918607180862184429761004217942043466006686367531966102357380189425988439529915131130621575767162540540947513901027865902498240730419770575594181428104240039496726629327905628854095025000625394273859546401169646262955446550412047686563505679795307428892936282832870766410365585514444996645842547980391478645010808227225880921872880016316120846533709640142182203381274608244353551285733232549998454542154865666853072803391482272516982809041262069739929954930793163362597015076714122638187023272836476258765676039662050876943285368920007522817444697433089413479340763644197241434021225325288241752064431225748811264169330621007086511408517443150361604887774323143060295934782762463544875374734542555602789484682898228966013262206779524206351464005237070304769217873032694357346775064554523561300763771514007135824385443576531321910108070942685946482249868999728296976554888710590911919927292092992542383140460870302133586574817616077820685064353861692360733045562725695069677590230963554753624596990343676687965885370218053071484086903690315313037838517946214802892069651599034501870386091293751555685382016659387535370205376952567554936481154158376025357830096981733584558845718791370183064779408375107891497549456735886601973007466217094469920469157223397534213875104177497568587344157825562550358651721050488874667155963672682317532272607323790669083399132813532043481256349970283966714951163627428208578893496205879917404841955822177587095757765891252146243680016247368627074703650072132697419698766546556127010859113812288395334692718302763909282444856232208556011577591132421650119076264675130441121120297171185891952484591551766586168672452664711308087226952984069606208902748753048732066772928042421568602126450299185375339814097450741506398184239915876295866684154019376663859658776155674650026618919369541523834714230078019688125240102269577755220127032206428507946791514376197101670249381938589874928343187015840899123022575275389630276327544769158167000726502271263539381522044284152469317442187439559329032361260217715069759280877902679364647938100338869547113245251648966796427612995372996957303059179116501725800633644553075115161003830160925961580646941203706044842362028728209535038187915709437875466199905999608068942354423529630840000319551910956964968873721971193748971834755920562318670467207118141053022633124289499513400322201222968780985292258349689370021544813428216924585252543065936865988573925868646292392754342501707223842966114720940870219436314587496799681218502162528784825315034905205422972500661354711736362709158455187538024452070698551106480567457833938155892708092192602075366052613113822588910892160161600959360609659850665698483255516016758181203486536982385461469830752072111076780078391792358348177038286469324618245370253043255642532662192734843411543541303225533763965716704655378965834318142909418084953677287977631290486593314291466973043800421315797532395318110721817788868472662895441213997847769989514299227240472625145286888528497752773546601857983729950824101837951726570315792955661145702637944860556285942521272433526555084243102112114724064164272983516900335530249235274292863165497594805933115438015495241587128720636820398007167317028139625935927312505386042197990298230156515844005773766116724421021146235676077485076006463176100548648792083957308252112346029019116195262487739475282076318924742813837701255073068050479442160688940147416965267761097244477939841668067851670524078400473181435567826014614228935700327561203334916843862287248149162022993364076283898000207920939010648249298745911754860415147278725629722925399064938618035672807559743589296524002303283819674953573459692425486450719475686938651726110619074279563936932503983224624597046606698306129503904660606954848625067113219794271642130450943084337964034331981645028989157828740911842157307602630616709736056638683880236946244146321500190339622359127648294984388129342362035940933820436460174276078096744016504118517628450538487695420640701497848461930626572347409356952355263742986633172820885156143471575010106298863349012736412155846528532550122933367597580141265928866878169487496660975426108558855479580749301386424781444886659847195341174870382579900940852664235988248257620581244729071172010760058718872548614171562315505899376851846674330675070515708135236425030135196217785767376727680096782881274342062415522499447596253521052422350810733973917256864370622216288123856714159094667972965187394728053563079108484300642213194248918851131829906508636532722998140377438532037664021744052456590433636248912415386150124894345876121195352600488918337196081225492630187861243375851612978819673684043244954444618227247528725638160325143792651889919321761565354587904991536419364801341870169224092421124670827913583943193273578373860641080902169969187928353619065372246801030739579496598273339337128188690229393551442583193755868316544782838035537765224373264122040537920483949983535933072541903854006474126291692642831386491249958818053041329348315862770368852455405328058122945171574682868299510491143086021890693126928412360054226025229192494008262287659742537610356751100869713051172837144147320061433606022055891114551625024017564862310804920155124378086440737167066356592647561876458323967893338778280360128556273444371261344503248394507336902634593866736133123745155458669945493604584731135947201096179334781083525870930639776037990701348706876655543126861655277452188709322215361475592770105099062968920957982259964587053906107422584903827223765077833515305259630438504035116566978762705645264085771825369218604225789553576970822872145568665699735991069424265307093262852748838466594293367588228294570182665076845641341117890253555283259853250731611422683882795964173511374904741224601189777635514040364728640263899699234461636533796514515515450005132317931442361118762054641466382667184934614384492561960331185023787263606407938888385520436535992175862353291997672924359770347552407339971003613538780422357030012901744340267583790113305335142297970413730836148573319845998364803896077448150423100861235844037935942975584040617189902663604425628653750634336831616301467947092553580278882659280353943278888586901065704933979551398683715324500727124612180065781107562154298575015004413860709810306137902790730000232494025127853466223339742401696338874104277595966390059741568137562259789591483641730435614450279838013490232662602898096120351938725912063209902949971911371390665046348990698241834016112373371324359022557976992993708014375848286680589218025807116369942669493397884412857850000579407738017804651006550922612517092219284072023244989187147046907858259438581355076166041953027718565179500806467684111524985477149463210204661984689710102375024220456709682855200413863747259583299040294586529035225070389097218357228044911341523179464178680938713262826946128314237966445020472719788348857288298793077802217847103837148933050979842998198050517961399331414627398913351837539898132334932310209654353305046339882955381616776831992661173634938416673247204527139378867891002097383844397841282817834921099786740314331412993313084908623774955160377911395332853496029336743837493413868434477603442345042522314012200454506945111858130782829226018618690801814941456256023545273803604246921094148331627029156898017835857942234534679129756296588391550797523017949535964554413847050369654800024560348037252375292393336025251470446967791401323216608402080608030196387556904073361175300020926505006573986198697544960272859144158517152257464624750588917340072012425583736895602331258862042047522225421300434325837834155588847368018012422780172107308360058905953912464740372777700262860860987252978879581217565804453728055915228908573974885680408520955799117549232502264372430350461854200605741188636588509083791298545600841179344058389708829058844819952344555315887431090243602098428942229145046645434411304843525920837151503698841100245469179517281946610471457887869467751269866935053737045208282292552626210146822029527679106791495221222308998566977063997041042411429425770383141529498571844717569879599752228718722194997398277646601520497998623947941848898376613086998677082387556724465507908284353228644197612043596054611039525629531996906782472675562758670166510541730290567213313220806954967763114895502950005436088795262767855753347414847207142949412831102011824331404148432125827109955135747910822901749303887344181194905805912106844910041104550090248202056414417003695297222308690849069920304146178526480315584492785408981595577356907739949046152411557781628704169069816089051903398932895376832683773347599851970851984122392871976423870608341274522946000052720591718370672978648274178795603691314835451428516494995428531285192085898265869173257739583907669355798609614951157718005556631514062086143283817350841641114087519236719139266943589272427943681969746193778241761266911390817072599635701764893849658948839330005900228071467774690979517048791429026421456146628803155427159522687787258709449326002203775982295672301525094752049761719050233006018575394201972691474989931023996697458587740421460660016811758822459764925992224862339940013966644992766862491923124422443225622173365205335901895834751465898197504447860669123803450689211726351782003518039482134045883298780120737469061061774373355562468083932041676696186714624685222799798221388155349393236418305468284152400164805610084770133396780062956304563933757449545033332159061598877545134262869872898620496612717845533768875305722147119047531333695713150910712390475455714013754962725152214494439434594868974930549296211636752503509248539052724988148616423515870610095692073086415019441962877342969049817287542469515198910641720689360028041347413804316580029077551414136220066815554486869782720265370303933376275174681586840419207147351951545247585207154918695173338862529050071987782200052607340443769765638881562014094106749023167599390170628416462943147014584643087182657066669715291039522109999163827502835932374320421231073958955734827190658612853218577136489802370785346602088040223684166600755219444036929253051147734249913037583408001290024537719671523469775880827700035315335643125575271145418656697065546283091537476407305744953944543200442499383476422046175036844427260378400438145342593325143343954708538258098806545323542272120369263924580477312998982957361042984751575077538380137741162475349366573797505484732545090922512649884107950400711487239897201443044010431959732846987604999744749139015611388739737567633477800323955480458828264933278236180739058284575795044358605226839902621652524440072594825779472630383775487659824284990785624480294025058132170829936520251684177001530506061177279783833012006917976138130571787455392888283739540828844105337287529696996171966830929840880302203342845409402363509164198256732177126193449648331572860991796032091004730505853476445901456102091743815975528549075139743165366959156465293959746940926015649516830878748315291050841760246427747588449175643082130712920178988458963414746480131116419319159785785961720885968597200800269842042217939141852259170390773158164978843393526661506742004131638191809452427567747127705025858780351994378899021774867219740005727895693901003529538571579663669207296212321822746282666908120972803868683830910322223653856713043246325235823620083980879968664704981060565285522851068356860671209588452069153297915912568788856563382299231483371895305291750983135253021247430833481403881997612609201977582873182243784495849442316724781029720164718294568698596714809790384008915400997198445612895464906069064220943016847576630111968064917070947879059838653893589633945617188044393390613183589701333631636054935746991424690555696170225711424027458507552279483465681550153883134734754627267977909668838834029221006707335700277510838523441120753794376978194651954671280801156171215763985880272807972029065900812949726539134764106319544535730173899471406132046118502388025324934323244117259854167002828801015113228543839170579538689756372249656214440784122120893191006017615224934525498660529743457439496941452465755612500993982381919100561836458674534975120611146076933236094887692227032654559242609464725755805705242813535792835480937969030153359549115374508714813078859564000358365260323094041102740197054546275542129139999303543897988028413364455944852030930522141240638227413755808677152815828037843177562116342068258335989731037461982696761625919944224354938519107554194588606426392506710452258650647571397188997776813795740827108046581421041478156428520628493705958637810217957783513168164490133331531061187390835034766186997304835406057334341583027262296466125198382038788071227133569459088087130492187245961655375735545422956775162304792973774169680980298838168008639188635556950053823806361272239692256279187893887626014160432671626060913824332575327331046247473584536955815190487729907014095169888793275933747889962395783201201650543581943825369511434723171101652766897064583458622553500443426948729893411599344614860836218622477453483129744155900197665647788437832834815277543267468309434422809520056915482217681073695373531147642493857535372657088159202655892739938604690468953648589168085066401338659184163087494484182975047949743320843129044154810066573580434996691398149059686460886005819844444901294121461661134784944391900428687980258941876848206842545321076595985488296521528665315131539212535941979310239660633853034757864135793491238482801280000241713218595478049222928013352109076885275245756601294603814822574779711507038499577521670109999546162898457471215920693973909685662950492837890683608274678518436933527631531802185957719551971094090428487533039481973803579892638784826664011359945696019688268387664113606304785967899311155354786189424177125205775663383675229898425837248200708909401054841792238546249498291697015804487530033510842970622645083201256507062479145054337241164097446642189689350228440504231135296058645119021437500734508164436461722329558263562605853097392707282950901525500217844086470555294798098254840338610334781828516569267377800192964714546955320123614629498694562771590273100769789181842558419842158735270307566592240367444776428939170774811399944479787731884537889700185832236268370332946266768676544416680328789739590655229770267950146726653761338825960931955630839976385483412206503973101884720405575269862086357610662211236232847313663206034504799665949821272611980967902725797806474616499556533857475355576992072565877785972162360855399387757584998970960528193326216563890840196452607835131035971874530712282008074498032592648766847629016989447785191550714925364643724549519452450397338107667445640168219190726143982592608259318453074971255854727146432037442840312577924937425563928640843624115408306764181890812062840431933131036862338324868303541011030848894061779173314234899427066687283498019130775203566633303238199803849080541622253461182543386119045647113923538948334289805642168539354476639962292127730397591567161703369525460884112868807125993188633003103776674996768683871447196444797827895385509654995378074924475139577500884042379304375600750980845921154879372203795202963167838493209667271088046058366300533866119712229363522835101724674980997873818390762205368369515850412651764418716756808860204508718676454356031497697649215814057773837416005608319605747464621925632910810094715100543653522995187640983091736919852822647115593672995216018380209244816502713063555062395558783277653710133938470993970455050900498472535565312077578155626463616419620136541387382123339769310032654832389054135618500630215736918083391163197792411165812589322366186495375503863860834824909256891226867259353634698467219193398803819394131272113252735125578198154180110389585452046970907874099398410045136071182363428948556274554593354174078253555832385408136319262132392354245493600648014072642513643666701505125519330032623482052487431773984830164769564585845240079804980005375140964860927206011246074003917347194640082600245135425404465162401737379693299913603757984645444793034695162306715453172328504219013942011813079488808222601988241859250313931823155328391740347852500958913024047529831828715281922182554174952590352589076773029038228715476611141013797690154615492266152419855015132863209269793194435859235634056424837237325750589493666047984279305768060451828199032137699373620435876159005772474836150955017019835212205643123709741628779411907873670734197656531076604761612571100742469564237613725563616465240375142012342616668072109004219354699584269702876163862466499297849120423095589027659538338311394002005289552909121955309928596605848026239020523863791971942368823976863773498606052275050767405658884440900706471818528235714667366722362019871685319519168010081841749104293112585363585549452081906076584912750008576868138974735997873280484929463659152098467982933524859241545895830826516834286210702701374772116254447343029555868000379693778738837410633316790371327846592263804936073657916279282518007166939879502169799628454972667827219101855507987479755941441469453991787547535628975665413490596927473326546012721982505679151732226137170416424856960804291844184589361928886951220324665054637786066556763644003561317987329226722286644661194795349172979315285419106865071631278356675359426477589653755190282597930741611034530909641659221725849933090728921961308558907656717359304474394442347509968198929065901586736690990155005190177238760728858951016482361680598621406420577834222732804371180243384096383464668080691671474263494947900499971768156349849928744117103886098316620832325032223081436474051313914946929405913234086378791020781608142371038708911914562749055035647903905502491423684837097592885452708723798894165551492702914238159289082815766007506785097343391952618328567947383835268562198546933200391823479424371308206948345901958438899638726705911751347640770668086229433981170928040393839433049701177858237031834432672112664524403065073969234165645639427658931847816022422245658372334844091234007401166274592876100379700023189364823878376049320100017652721381354251601031963616862328599202252410246508011360317920055083363305573262387695886470623393306067629679785590367394251172982473498834276247190566153192859312854980689758301514155498797635122991032825991467007354959355120440079444773770317249500144546220447651419533610792505368403896987499108209302464309397391166290606886571825563379646186969274190600263688012982073331011099448270942842528231469393748528626836390919237849963396512173957178681730294238953053606822531751705347124443477278603108706384326979237004186425779075983146485093400094581584304140618747610425901549924693394897969992247421600535666189835243021992541608247123594675830391885078168968462341634847651517267726459889674635752653709549666786843558429845143586444857541783575217825111101317295887567886593808207433126926207342279790100063445029105412435743739491397830723364172218042928699365153567604217367608932713366301116237027278642196166836502745478997539462382369546426337223535682421096714236018954943708045532184393192351323574828991855110999692512156354170156982386442587537240901685827077779993342433808281765669063274940293002650332582524991767712951342107896022680526540728947819278144166664851706467685961659191308955399204314947323616617032060507750620360331409054456216129387112124210630843575169193822621438265555200178619440930394227939093782832558837413810022778484577255379341241557529522037292501941015557077939851652813806867573184206122662090114342318682026028174045258378365150612711135454917658612155530842458073518612459948837463266986760280812421838498233729888105595013700563265696995790651816993491043703354230159317208902703445637340820103298447746757329235439900050741759723155406361183239257276251075866917371807797817132028795818050054529270587804357254909079203800944943721820227183508085377257732165877590556653782668624404558568478859365182446496442125478327528902660864435830692950109422378626262506531882742454390756323343782184665711455890590891198305982014329922381354780356348708711914363405034808907088945345387437255456966702286914149498139700107687245952088809240390614044519306143745617409806009897566661720758303893371502708033917709492955000124613912718804750747971910632020601957245758834170144819035602531415507907355635907264082034071409796012395460691684184028518702346428181587954805160532547214115999063421020730829494345988289193203906154745109662121449276820251493486722695273109207158647071877843819973791555556799726577831920551656479408517866406187320517493567346038805643876257021087175765962096641727540573589698190381816887382062712265109489131509177229553635534047932335297583922597884343620734874436233072710637484706505160689146392078665685862020225904624758543178799805831851793268186262801244430573118665733482810906485415398494477855148334857886256820068056229345444670292706749921571977505895868252235695323353775327789606114495464933028773331436029472811480753347217976943125799634054686343854642108454753918983542102183671028972903954232963230559936852767756695213586277518253320140091245300329080572398638940952218025165939811587939941987274753147824470880019350025403537636344035914343192385236911595761875877607834110747505422571018498605158214690133447905215119732625220028972324754545442825108309628843138252213427619254709598131311396859979011244687017776968849546461221515360866427062232059178898685396201981521921976121067067961156178748338241186421611731794306798831395466685314895681781005844667142996405171168774293974575767460266008107197929095630308053973644067890672527105036796841209892111987800999375546639830797011990148174631601491240135896976202053653503075042807514747112717566496526815779819714587954172748668608302817472129651158944362465707100079925602451298921023572656346503408497861576024633719657964613064146245806920835105322701163657431065545315677766931659755968889721107214890194679350396062859292559389570659294272693907638630369288607937224144119466236279771638638207832696016295402398786338457271854096422535841855573534420119808005980111693483672222394600304317750508478441366432426718056490816507339507005417992537166956382672646397377926271190099077046896807223276543054323289785359010432807075926283241968863544976852477840828029963096620454577969965433620652000514248186189171886613261536945228375821482169903527960664558512156076523050405019405735757423749720553415571672046392601584120340081433679784208693807948204290181466739252306573758832485113783891433378712580771741826498719066700146304052101837588706687720730233981293914272876390614058748789877417826628902784996995747760542142539506289938248528163832536002291674991401430078846051342413611526806376219162954125403559439722986321571298780686529110737675213957173347289017565954408198218815513453270267804068977493262299298727559473093439706714674494908768404306649703722258248725115643391589008315549716955282429906802577151069428802380697397236521444407462423612229671389880225495588791805231792190373124137779941491281384509010095772987938857949420109985107053233314304844324578546524712580197634868596691716656880783608179658024388610281443737859769398259414393839215436686215980847251689800646611489952267389987487745108568969885654394333696944487861861127873816352906861645677813023883641842121890170394008118343584072022550343871910032612657323875995268017100731578387826126421279269836704068787781309513934255318758575552577397852648280330779910256198672310174971610006355289427164055898953552935384675570951365095515243235566556483954098463539178653135923196195528268789840708783652108738834777656243361091759522189983720389407178673151745321637824734635543300828219873286004830424351364737504238120068364147391201796006417406088916613027808086209679832571843580105913094908671872002641542440240186219858811850709927931313107817398616459496053745550970255463377790636101687948653571511617829148241743200452529771627269628991293158015089697818240200675415516865896655326388953286474870006354164232733656636025992581137813275817909886347756697801816203384003086991902607408716991229491994716278236333651212348888157897908783675887919526171131553304672412386191845072620871313258150849584027997638195571168930654804862717961353728375311097020657280889191002369831975313153242315863381556429411698925968416037971890970373201537207557417382027701350279035753948059336632492578656762471241073652532818696451348929602269202147035688090772435848431294247204362252747614996623052163301320118650361659368538665611119781926063189472266079316059482935965807783743421499640937956003613068887094708324751490507632483053244698187094184884760845240167042249575534494567320469639466703126225835792429837406201129378636740667342305172369374432384444606878299381722498601799892331655177696808630429384550643978906790760662917336364479882227995124926596818346271599596297730419739466479337589004784310613668137469041961389676501729206675439758532039216816889101386660822826755816156979249659406932286610852282944412673866482284215570238008596506510004765805161356436194296714868916888127671970189033020063173248477119407624043984130029441611117919978370090591267857311328459348067372512783654771029493275831161509132516432884313715808877765389769031711093288847177249622486828329983927231750108619321723971831919241604013158393387244591466164526862474091285396844870170437285707062719612061886080282499883285282409985304127361672633826738712009369748856030045594995933083490860510870019411610873877886072709683755301251041943397736853335589944894068997720833600107284642429706959558808915413151998667593125326906787818892623360409765497768131105854543148773929149263991351831088268603307150098105356339901992867683810507928642887159264158884309009246743930962594585375098234466890788748237564090197530294513337456755047994213473341555830143294775528083644653500235485150739378231975880286250412915926793585431818466262500700542381604472712708183143000565340912163102472354441253335468014585128183961788731289412071927840003829860832749709130872923322795755834189503964534928382903167191831184039379279885114517076142095754486533706586643057832076521862863823151245964582603458514472154705150068397353755976434945625034739420034011726130742415687438865868919465318864448956976333405677088843602411051950491739570679920488236074702727705290267299592419574381266966328844539740264518640309856440175099397085031634102205521575478214739945033874122045192015871088297218032191969757953082950656616908896760842777051569207840481436413848718979694731091063435064200218333266674853206101541261846533593180572655488092156328444438995537081096823803737855593015045013235490276444301597028417121033182964951412066011966578647023047773261191538226014252359062815936341163260608694860400214755247167077040524756949196877843148668370518605956634849618704508178087557743390539412223077351305430400762072382072901611906629463596578303202126204776274247888336218015608694674484867812990834461720896854509527420156535289105794416928956586794823789616976972626862956320704874708191644027082064553850464117947532884948471339369454403685889712142670846050593053916141028704968607443255673239506984091499638683997434434989464812490697698172001225325293489579166932441850942601062290048629651561218403268193426911064993499621102231211584614658149619632422017375895615181491815308075031394860168805433399953459422683338574529519626812655926380423583821259816899375817351995267845038322108325385012521361647723434649799733251601771744133309423516409338458441436228014425901924870482750187983480318603039038292232755538856577687451695462042811785013777242934361639458114342405640222246784606751782849276833785143869526931357965989431080246370066627178008433482976594563280736330859637451352653555612335964075927828215097968814213100526630384762267721406628649889323058671383656448942990963727661109038197987758571874304401906743100157379012196388845916362332762219168295464115479048834349316560243072125188601767584646535431964859726712986471003213508306219178027033400797111941924494994609300760878157907092004096493056922424808712016431013768000860692002935054545814412637727287920342510753357482682659703478929996907566060396318889367000930308086352790683224486742447879731232669658572666852901798709756891792281064900856932710380994943126766004856030662121311620853779974933245237223971101451188538883516682545295890865478862749831935519117768124075467949596960185184437397648195923142407841574681002247833886772410168543254683902570066785674048084499079377285631703087365983274227801929663344413575790105645228370783820776397665768920064493324858642460083442259561651452860112090510856141841959974901552692947567946458360675707877935540004341209568140040480120494264917980241828220256708990641234686625695482184685048542867156885619283245594422670271344056066761911987388847919329130993212561494284271188292076417728741804051756405831857264511735682733136332476454542219500588906910548177232513416053078098810576727968476983792514556891187211622132948605729678400590633507378839399708032863650883174603946550979665895356538067215378148011442787071433457445861644452193535079592085642119025815359292189998030763222769737829541531710746489615261738498084519519990298144819114238035065267488573277014262957683266766735814760070865691636956757267838897592748007940398976922078941293645165126827249618031117517962825097573191337898820864862400379255065117061034224973015186123477743616649361550809750962288186774915084106835202323560379372865912198631500701542557147917497365570532523138623434700801258002250106186311042035415857161309655836186590771599368312597525512174224346597445766783675462970699913003383872929298229584219916034198144781462158665804252026612110204827923222493653281680683603717128531924141045080608436740690524883687924552135819567258491140824261880043272094421703439770252058412573186920882872584725533599322494147029359601848174241876171865264839406883899702064473585590824023784883623971196554424393558314314381732459640865570889918638765849935683104403525445159090742009824226202527216037794353556555672263014308932927074236841041845727609525679068190789892792277448414193093127556618694185902633949890206065507165356148652785846167046056141166963610385434879198740210175233323554426406183601901826528334808843562337441962113357244818446892425499151328314495792922210586987645438845254141556217658362364940166541852262514891885903718376917426526228048749751620558972335203186900644774819058811059059353145477068010242165093820236309289795329469543167769535330622622170987772529842506288051042253570326467187859990992750171186219702697457198440689587508664876345149113848991213151030692293087228898413125327939786897539705194455450654906528414494753378367070492087776079142748891741129694146560014517308503475301480706690740792880643440350816312469470371482698853168753291252926363497150437539256593178038562317548119399757383440204666376865528146837539704845200452082092154661205126105044951456338103529363961637152665469789274826758387563718084958714980166725171060083556709830470363180619529923499454310168352567273087120476558992084957484632473529636157387929833770050970814409283850832322555300818043324087240073961062882062036603146871505106122397011827605755384078378252730410833404959117558134902572559255158625662389707273982207479743682949279027749795651204470697733657435352515729167516424796711816900365625342246349282612074653734801757374679399242051181714426610578141853168607911809696259701958924824732801437781173405380483108056418314221758280007679113127435639469161741673715133159665338007154831659527402033810951240607168027339165362891237662892616210346177842492350382968745087473015288003847866190014655983045410963591279459693788796879791976649320146320852858297779046524918337787230509973007315439929117222528413880196578012182969544715471989911174886935880370658797918630730165077647173948804889700507985605216517499307558823802892347172713508336382310152748141895208759796405685647456019267646177849469707262459078608942904405393204740108745111219068612196135553125412821306428599235324312385914247146946975018878062236709180790126354711618816951389977441106425271789361659473801274310857479797393295446317134527355614661207657454073556861609085237775572744861936275665199512256503521120353924687076427463516940119983129026215751805331485796350204095460108669395186792430681924837570285033607866121394943012255460458319184520507173025588177284270733610651772165655229305123743129709254001519045385039306522794709576103635330128768411679956172093665797705116298463921571450595644657389851341860701909641247348311812685483476133083033195459624122568540334815711770502642301638556367004733051484747341508915988162881078358816296824733152017949178592131577249014595269760306853942554326008151347999071663470135791986192486860093880028025634755669951615048637852805525904031169240600807297917984325408373565123952325990116896149008805365134938821297415250449128835000257682961681919801134940638655860697472512711577933673610279473918765630178980887369172997349937619700861610885552454210143632744888105232487831980151378673622325559655375389307448820241496453199396302625799346534614758503627656830284654990820244840863489008459574861002750558040421675419643352689941302321574310231868800536868836892764681681093895832508242658070457659107062632118528297580005778225872105390672443534775815760207189839152643675508059698317999513182814665044108948507118660552692611654589597481017948444598574150722704846567789179785320557239487042832117940947419308538879790316380240851637960341938505806922287568370067255005977833418125669346581638335960066555080312393254960284865704509576762973793617044350786210462217806669351030905182970629404662544705698199118649885406801953076536802309266679506125711292858522313703496701593289599759399474342007842205146036249781467891318567044561752740824088280671111386444097565372053567413321199409496280795429459718754287247112674549043233405628225702132039994611824641409514169647663833632161820228269705651671625976086890339714223421510145814231126700559773771254786134855920052195025445644338103606808844129740518224752634854422561914681062457655649941136055955940054280518953747875811701022021377654163239945068130805848730835082665395227538954382960880751731424046734387290620278477476927582101940479597919156523389333529942670146050573924077763707286621890911248184629017153070602836541896587752729775223623008930564616302817411308841913460360129871886761855407314293467298172184629784095171903083129254238113036818725134686537474366257799196431573927701611045794856492245956859683944561558361458141658603188311672405971994613807063902952479498516282737249462666377204262759460964264133738512197135160443698289868642973263224975077508318892128306882417408302466950407149469684448274213149628797615354919404840585152910833376933809144577370575437807755488819047227630514616091133058289329965071549934479492306845032168797576315145433556467953853175048980792295306323904721690225024508138007829766491493095742070526095322915807891122319472799045927347382052215496555699333540321703504165426591959160574896408465463582205845223621681062490394170834994693897210609132396937503857253157663798835057731684322197607192607586995805973898812762929576067106260346726566462407391015019873263776581464521309901687905917653604602288931605539344894512501248242109353267196101583629679135693207039504116648493483191099089435290307102826943959578882664118631206675729660361217800665638706908966459320320722307617940787402253804554783835784919769106774321675906605058974300030442452795765775992425712620788033747035274106104828131524986980198246538941730022695034310853514768930837564759481914991013371611235643471438534683828710948189192459421236614100791878628336909405226491042446049101073432010671191789363937167724795055317718380684663835775582018337454008375590122506404693989753227579709366683343711679641319727793456065793174624292887070249835162715829578670767606948621591402769381659587464382183145814394344551937071611551486479122022059588743547492849922684820157716892876326521229560478778255793078184045229215343174290626807170090046216098063214718245745338763528815537200498185475256932117019802653576364869395985883271696392043379926316682362785758165195470223544064748965962182665321685408904699857831100276853106778960935637588611809544422312451107379172158311859799360543592128037690813737971289429907324397435671582585125260668202828413625264894633671699602251121677295463442581991579122120522474994840486913262507851159131365770213212529270298058255646463500872712268069829635558793330937567270763902751143116561552621489063150718052403921974652427126938786964800440216501953004272702300794036456931997391461099817033129848155112670579427307954775630114523730756535549521592258543576094760263022215070208973453825585580220584759464616963028602554157945548175095063815759220833308215680762081984785738358203522701182018166509471515917204032589265081536764174698971530582765855929828588179315431006424017238032214488813709766074616462673750881632360142952447419522715304621943962715359716792240856378192617175627596801066637414122218460581840588595470128103076262480201750086302945719798466152436780456089939006342389804185051740652062844428586159286575841615578417911812844183627945944580039397497594132695177806686376042259527819147115333725747243689793002358771871993509528797097284062767164621801601154176292651724796323864619454841949685473139960275422553927749187859650682612231797048380922834186191473890609360933965500966712260994931254049285660839319412618763162101860994141693485008820276589838621357379198945201092520340777596057506798383559400492354570926561443748760790614589589027555576617736637066458564969709652910373516237778571115070570113326196728108519188846645303797311514987524678515056043216931463376330888622917719398423393314583918551533870017410568498091044861903197877084156795030777243122643303715091949241871624164969847429869592970821053243821470156873632506643641174583788316246622783021503129490623621221236903374051318165449392143930120824684034808317136217668242078838110558205827672428246121946236214805043246507405737402844916557135027465887389481498898146519287309068014230771384041967250574122918764075667782457333491973102532663185394018803381880175682406682363452419152911675005747657213075725747451807021039899377537102036662474465029541874519578828208153638588737014767643080229594556728343593628849780634810136711555571932123679042613758035003819303286336891285887970484531138493051080606138366401473044245046157703141857656038034795022316746867708385210572232203706302305539364282238881399205422370169218926546147483118237810746354505118180076659269166920760290661300591248198785423611207176762903570025971759050929366236609767751216789243207571341097279569115932871235369269961806855709438914267415330319047752305427970921605347168473567880543673940725865491735208852779830625115486969714842552898530370693179297219428114421352480172096329950136975567293233180860692430328525353427002708709199269790830670019461616302692229282054160928199925264151847893112482891740045744015229662842264637425917131884941026947643252556106955325336177604400307137898229766480306558689095986733930544408567794419247005454848380383821224491031634941804957946012828666142011445653045591030848113992105019657119036801969761241771375704897670873475547478208598433843397962423480318238435901308531071961791967012916586333746695925345290433322374356945525723453701553404947618761717455414740169046947575198517100068097569819297363460737048785994439366885644893779033024337347240807533881922002154012442927654570853578660817450349569888526823846333642020286799555316990491426352639452971492193074265338821277646318579469491972185216557815544516538204720188036356151352537965229610406781838298837107750645611213460037173344580023240345341002748245017350140632941772072765850647610223809555684671055795493688742625371481296215530124556980660512087466277067797450695907271383824892065606337481956357979265826377924832734869933972541868143525639019693845882968411871130807730601874602109930863279297842139230115771371660383129483410113450765119514464432339396975644718990291750981534444263883413756293065027152561896919193842900863740133873327386144234467159645830563759503157820933122942262322977732861867564364663263648346719959312428462940399164414125075025486296732940331697114425424311585740573484684731707152898827718505583209194346538249254668859824952727458971097580294772003025689912495287918013620352042433254258111492805438863962486525853440741668841977318312803838182370754593848304116552853736141747325588655554174700722865858187229071649174873107141829133358031963067302027609237485134954893117072269227924687896356383371763293905034489048343611065184416267406122976604238664509618241614903144184791461824240722185051637969654370100987182562900359933552961320692376173981187826313334101773112287029988337447486344008522102493445995575481570013192164659993242089654638122184606920744491750110718508748313451146901332604488048381820672905508249418408724745790018653987120612783120553101448305631564928584345070013616211400400769180769517076981047609304242543935737341250867337770426420122759352289384986037023057373251534162212187348862448759790291555556489150168123859460343192470414096574741501376324925657913535581573489715890079202636094259682080618482402968829599402553503786885943216292340465153315954964790518773342161445393005435833076857952018261065021152293436501647471283924435155816182579868004320508982780663846959262615778522973287046404618289493293391430042776092170673983322573809713102238353876502671833560538087954260360455363115417428191026737826355522255314990569223090207646393922515793967653713325459080922270486345268235642298277803305996317218809673310584647028858806504426940617153164185117413097457058029881936282333653080596331113930426169493957685059348862089800881001069576106738381271815113882379215719746183101339674895797458391017617566021461716079831811329125146906238686711542227886826949224592049891394205193686419457092686535758285014637000861879188340365308848909941260209221538295908354015955338385648510914921376768515276179645990244245580397677185333972241390951396449323316343396035130307441675266872097225172083862403072836749492115550150687228715896040535177070492981532975269053405935994244213997127710431958011621597038224868159475215483403252371279243192534993036028103577405942564370537089613462184380113546472255606254079233232677621976793200093508449835256202400661810171754149302942232777603138879578588974505294894428545472573166356202536628593187402983433794894383886746160930087369101431181789090534669132840360032201361474806372141120059595367486441017957488181006769446749008441034433000897880945833346966522456527485332173633590410221981385611872593930005975019424158422072809946072236682982022256420405419213358218756732299536882876749319959330440589605161322372587360172340692088302521239167848768375357736422828840018614583365355695824667523002197467569399293870428737295333008468186019918717346594168710960552076100455983317586562492691133985192753573585252328518498739745080214942918769279463210354392768390307978767114117191696474691903474416489257430384687935203657034949257303601357835613919537195929770598195857626070069797903681127580652133163942129953728246123427694318561866563298332941958799836654886965646058808572576706710848636479840164625524510335694709793112459048196104650845834988785825294393061004198242487207559119115003700536951864651505779084103396985685277046411467084814043318463466421870037356115423653368918580970093622973730961307241232120010164511690776940807739308804636713041306213110633164902089048758168596365228230832211172907892173379785562866193754604546072460379835418925263034558395771066452837504422914012025671458407613986823049755132923083374702708614560219141257735582627623548587762038517431155241276625448651755878755034541043618963451501491003816045588862338129069883503431209758348521455181745404036473738162385422185895593626375280600111664434106595139651178934392926104865844076152864600186639765746226169013626620748734255725317038987285745649418497776486372142489482957514233203506374551135936612768295580812386110355575310886360427576846606703729636376758961982272825335451990697019092082243520987111355671581452370064811567947730091345442762544402221657553009436351570607897296733106522838344201816960054237212226850310836166832358879507597972320292115979201398270480316887591114374687854200308344685880630298950637458875439919141835915496043626998524886428558836529764759355006036980877039007560664917697999321302986287315132099533589733523263225179796232910755581523848892502290352796812182866824111765379055271455250095496111187107772922294580095781544439882407215901395908099755492665887354324628590898549324228010790671935052907388217014911405760537710716575292969984332672197509657971360527389504026988854010056219183196070767494675404549718020759494295099674919070794067599272237330267254022275843947180326112170116283485371552401544733924804385189851515768340776892322341331732686644288207669849256914616145455489735912749557177892863768829885233477792648146377622268796569498972110236444277110762207276002512570174097056276251222562152757414208281768359054468709183495350132715704881192945207339350736351500601963494398777430846568299647720951526480998608799572901829048793068990488287630384589993622194663447146375680896703540763158211629942164695873766273375304522232557459080650983951480862536204261817586460047578284114951174528032449115284004850531856585691980531344813416436367669196787926630150377420449947911705535383783315745905789631995782960469009328178658102986865629692162675400191999572240123292604875436818663072112647552001744936474438467753584360303979108820048468127955218071433751863046187066285159199878429461131189845773580085832036480299888350206204200390667686375001391931067390612641904981158634465326642406866532620537439994786983496332631491680822631555653272474437216124754787967127010542693766999038378754346318695234783436045253620894668612695971978294577071790581468589040180311298281450578371208947571808143643196697737000543882816577800364631286121974522381892687108216804264076768008278447942857192632551573358900657712666516898366258538922026275453708584167776312358498165614586776646258612692229949381270226918859621179063158791140724338947401337807964988640412221619633761850916328970236938995595898076766490082556667535430295265488361883291470925256657259845672736325950338914715039486632376304212050070876544683903386373178799331803084574206080030081800299437171027802370460108893646108573968965467352564739502070368556866848124130009393952542041043030324184848106478061304767661807560373418929940516043391103495080259316483486724908327516883517142235740393713375787277547591290191883592915251257488996479077354615158164315362627937592116052112789092641626286721011598496658200026227685607280077967787515987773281202642743427705413831207072072492311832004678508816127885860675498483184850526839586308040238058703167030161675872121909616419698153590664325582371102473416626378889325016870308701184553086984634614084754269725647941963470255259295519494595438578972974923947102875429153169521351828705955300300765643807361143627116953274254779385214394853390873452008240295073366812070233801779114165945581204343840583259670103709472863880777912891356805507237408186905298953421801774005784740658333430442407898864740626575830996960420643985411592505925191611212950778235685895520634844951303269582940924748713668116086190190335260641872389831854014356896079933691118212937216205454119632231663887134295715050319608827778085235535789487955256115995687344261098772159939135054900272476032503084854728581690822334079208968020074747574555043313242109155262135417455120892172845828108022620148144572683800417167398128092352770552364674805785477390075355779155408220032266951606605840597657228925226438623357859675366311984982291883255091789945546933727626916502828577894602983876650271035060615956321974615408976601414310945505650433998820160713202270159538605386140600600632554927574223916717619864911069568768212785608793206777168957146989792956510565281098754175015666428212541478232314007381631031805359286793855176288347834853912407207770052373181310323149284217958817151938677595285992396270380771819299816361164142295917988633548981880241988316435517817957007462646115225646127654510902397281564736740611761530670106355018869771422830647966591883670908506911747404784688906108288748277100461521677884190272441464661672955854908713678990118076310609343960212852982849489503197429721681377289334312247884715927322385888145444663461517509573935737385678430771697960273556453249537183450204633044269588636441271492555279565763996103589961772176216171157222453866679234588108690794480367454673613202743117150079982104802583008108762826434115221083926572253857548925039141155332719681678290401343275312508795033970785363135323337762453773018388182633328221866747738115240251267507205762567948756544871201129688794403825922863364903008114169567386347445354328273280118432414474832125577723353564230694934016565625961629290873763826955916205686674993614633877600726974724055908503185854253167615623006840040224286671134030453260600589778095004938221621466506866546001143228710607968860542672557638924309512353747110554009923448225209046726181442369444863389124209119262643951489784781381350156680821902488176727831697619265896373106985187942044072502095328613130890369299320078556556900698750866445801500091374314236716489605756157655875152762163634784616928838695260977922734062343553662574475069974427334452927261713645549915568324935917437502248312879631147799726239933636118640348456100015427655112148435466364054277794359082106719923994298775809822222937539871954533347945820581083111191472601219612282909066063365234468582082504795094624599147445668897579394110466829906719010758732976733850132759586702355634207074159806845205488290360591259479126968139196535353818968192120135548929869574513191764717765544810209364506859405252336352724860217256561954740642540247241084684575629101696783928410860014185263928723461217707961865208078344037204985451176861585728712104988802955764613480534559996299309147490241878737568149532584052854311202826692819328222511553078248901479731850809329154976995757073426874729303398858404311367870458076735841991759836799128350220442508030539129453643258474426942324414256791317319253306054098619461894364987017062940437282768969805274635267048324630573575729481525149038606640766213799495171215521513548962200491697960354440502443006964808398654971127753454647215324734534421532600384431192052793144817668975352215087972276573040873801370600844004377008206160956124867144161815180182634705395128537440523895060387119318283620140447583771594919011023677803158036801844915916505812614209482257258330103847082894983584695751923242250291264161776269929845353764715885766763400187138961238749119255936693586240680776386806789506584877828018409531435653877793307968471384763164488047696169995615890653682276847597740814316343348838064412074061765366165190523219738651693923051000274218976456375695853249087138564936961948075030674233569750306782371268677179016176832030035358193623164016993783048292191972005913052613926122798746156960034381513537611092863704059836194101244727530000368881617631743073333456883350438169456932384690723620837331999691202887536201022383540113651303000358467142245991395438652550953875136178857255022945535136522731662518525766903051441098319835832364487606221954955282092526248304106968287695867414291856470013553572207853150992953996038372043389280558597192764056776603015766160897479139042276551369809112278308778815346756517429303796283744632469106856101540013549597531252078503717301799887961731819896059334896826952615889327088741369798688825958646682892245435844702023840019040090596835058303005274503961289832004399006179350710392388959940823418480543747963589802847644230827683828945184834148554755963653601201154920187954984197350259348452174149477975909078063554085856510041979997100885541479164070054037796279118652856751558167526956756090711815060236623991495554038337452510083991371516693592507167071072190754709432114695231083676790731427888089286640327827678662624552391184268800218988951577777487827221238373606038578914624865161814137801785837641101299266942047451408979746481983896206484338543765209460754022423625368109319726008666260359493000989983683505246861693549355854811949533476329594407832585187604843318265619894489201460860837912530199449472548683965468542594147827703885733375637491836282630850684154269474343873901218348693963305586159244745175309332922706041848610092290726678954607031647988503679170545152592224283098709404064694727229012850241836310520798671732749623484507045162948221667806634967523769744489016041065281672193910455509402752591399636578691726986870185249668785029582555613031321689357715235262079398807001966380647987103778004771704734723745388945833313779226085495965884485455816589175872587065097280793738145128341406844676500767835791629546265971751132853766928939173949291846903481801742905690336773863116430250291294129048310295258331652210123717174898805978117745925777690402666030186959054102158075034111081171216485125632018852294462880211104388647539926815108601447108829178976872042537278137136630431367563619927527244001257788220100226924933320555384995676764895354099874334883122288253138125783950806409135160127837617734826025169513501991984994783913951785310210158217455644130315238671282433473579958900901188884633283227797452844752903247851016820216885046105871282113500386819671057436425296441015656779405605491901767511666022514321332759376440546923962030586627012627128811300888058541721538540678035264463252613635766448311709167411223936721457788819031047164620581459102161142241057950763610773123356049905517774042686934875852407150753168939563831209405167293737539466866605635471089923469354056788332843446054355302944194050551183900794187737107450559679148195943240841424948831651092534354568665554147112978364576886557689321390859792414089871061414215389853154776160284892721954618368646838393429581051665488318188655420796936427529810724223701253427748253663235846293302177698625732985828049142096007807459802505658236483031544104929640017873667944293633782041531371356953771631856918680973287487895375381745239532405006224586639459810929696598555538454855965923291947554737269383206515214591850801754390560021501460423818832057043941449598100715705906379697003964721336478758419371003143148593638753333809738928336957480627953934307144877252649753288757517423604966601586601957682576836345423721762037320424135311852944475242271921532989641251300190266365405499894349356624212949252923571635205691504965393462863419211170562726338606861563478595293295445842394533845513474348168600777919322296389679789494917828855831511715310997445894288213151828848397487379868075015041042289250968257784168729229715412133346034587802223982403958823334767718729283468707199129309755836728099149641761969911771890643502710188318387992132086580959368251664300995699664063182487109123997624641267859113123652226987848498268327868106955165256187200905502627818489287362306659662602202240167444630085087553980235092175653925820865137178234692143329356577971689001574161876563934212711597286872903206262284318303837550849152081670002413046862870847403345381782370632125749096228514336917937771406542895306343743958063333110808807197164106618918260421430332270345618737351745922779015162334371259885357956231976115082115375789848501714971458865299039936951836768187750533623540764065778857005504803139078502477075060128781166796058872102150147050052570312105817581976520208827310411958859889118335182641163783247184587710479467562956263905854660242975158601292964279078109127258415667730322243912609522301804199276708389999882216082266734904038800884899496385506680722412350365386804040652892824310034354353569717066960359671941818655177955358924415054764138261424800026694897821952709928317827666658814236888174044732479708025085599601832631119707417119046215515082289906024412020203960349509712887832264174648680616885016711722945492706835482369116691294626577242078670387633539560086373542901260900367418348927142314753215726626964676236107988869127136718716938920498837201077319779714574514258906484347099196818932005815913610006416214428731875435112204705718778731120335085666313210583622033818687178240003759696518479548979495121957388324198447965292857798393537425633344631880979478557246205980050700944368123885146556089431568034927084356672119242905605342491907688764616358193664438987499029403448872919089585798164025176244995883871327554856639213432283803542542756241057051086325954823579977647026117014923382522251249304576622550838360098114684329060858801205420765938481594513219517564023731720452510522563167036535919537919249028025596122643617816340982033856561677655653548732751601944564461652508090250979371634940574465998767054398765668465541722732664247679019959324846065744954132388705262889570519484922445302290353648757164748394589739444268825312055633023138939754415619553927269279219746068132233174851099029970469051264348543766838674814164401211338834822175934682331722761279377708874274945672428032965465037351920609583464716022267761756151561865255757562234146999238586169383351068025978669690472240284136957411783630744957535047781358888228767383064193768173392092180943879841882888252053864448295361577449901904097816184658327114956086720120849949652597813223548732091960337407473631953094869810677826229516738451546811545883817714691122403530909745663959143316041580268083480065666543045837461053743407532287972429271793985376322764530263448034254057407378389576835853517495211798687210144412479111950283987083462372039893400677539175808674962110386527177347455682761235031744802874506905488723743937285141507121456405825121770802419120853775233805645505646148312559602934347428633437295163319818570954445017365568604181411704185807391384154224737521556646608804719456967136402348702721183292255653174391149984493915349677527377210228360281623834821151304469938132653353204661506317561379915079550824036176320140750801308734690524162522060689641979227740503251329516219479497046786322064074320219786448680259725286335497871332551946818181838111991829693161256668445811497741400296548048833865497101155672759739847445832170880506723234828083552409783869459761131345833323012049493470839013218623793495104466504830980862160768065924795854922261113523685448667022734554789800215048162320076844488266887105610807678511146528749367668452625871095936300156799525799187382311440592459848767464516604134767614271398856904691690676803111514384708328467198122993077485225923772497171277170942115871823261716074905753087504644425528886330251616269154144794702462604651379782981787652976816000393772310859884112066157633568250589150137379310731810009029627893238838456457496158183162217048012670201770620370655649304404679530463977253520804258027531621470677911975606977941750408656578909873330641513491098189336619020654508501680888915582366049911988058213720302748959391318677638243060263335559393576660097320953543574117314822186853554297281213365704977461196610200242821827067302105658959269739940533872269235218872139932923315538940081272853158822803045765170285684890315585602739672927774262642416781376528513305606065483973585902512191500736119351298145252406471009116536536950117752837927751064335717258533296986144879746466550878077994274866052595254740632628815177503255512224960647912533437641885311691174570159502657478299626930804074957355862779967928893339085892081463788158613635626528791329069879250258547234441956227998972588032849582094114350587946128200498352032554854986244038406936001439511547215417329429792886141641967793824131997707927008655037261756152822710406626339416882390878770694208738998630841615078818104154230393937381461530503202420340943388501228355990056674079398447672007179420822651970348143855201741747624667144940694913358028712517863638438797409806711494120637383518645115724797366941720945466495823764868491074738839354716365781220345942155117293506652274014372422737793469531038067034402856069831094118743559745660030273685881571146395387413058777039924521775905021501192389775028599630306795952720865218261028530223168410271073516528943613436846965473485136251856895725386283827494510261983130160661882438845203226422046618523330887483621829725350227996193794310816964917907099175780267469495545509375743135295894948803350010652690099943680805320142125979134686704632908528277193600167485928171868717882948438865046228312743066254503207639309978660903015457096097537481801988897658793941898263554599896808944730848903495130080178303508472749850520736544640755733839342059752454591068630818703601130261126585706046820718164396547394713968161676714339933524173436769872963605226121103438954224020070286760648331012056912687108539201022834212616613209009746494824090520570961824557915144760665984433260550470371414013766250247308652924751176726491966968894450970841408875242533193258878094889260338921634021721297028018905025596408333402881145152788187253613264645872389565872161925167968244675301212157787758436476543573795639938933492732714678745702162906249653909455094016071373615248018695417767283685387773478618384783676484724147183001126562462344417533856067316056220091169976911498310519789985128764175059247139937156639295699496581154368422887891254977507257047277637256518970679041998551555337569913291706825367048932403991306413206148148405770996429096243880021744006947958226026961348358182628429891250150105553696289198175454658161622024493001161517998473354969502682795504672341205910148667420462208170035835740458781138012339424810576274092633352161232770844876996609291604725773100259083052075435915802974021903370226013517101837529511510629289839646202390760923161130341194087273818722361461430055236884485080381155922279876962771307251672320459374692051665807383349999478093870135316720538133189782272190327418576501410319131401931786416266963766935041461843060467271731032337429985158777066984992855817991149101118553515275336110900778608610850889722543756578152299016670117138652056145182038192762769128401374494286070950731954526685114997307846159370460542141323233811667140643142652626323770413234533012219577855445005800490081614324657246739895485723164617396362239855900238390432679838229454052685037996337870738791251171518020529443286420661405329301981688059471721922126596489495129339384014262674355995305005785855855086193101552240372649346753634646623004692815775491768641727069174615921892777627506236200510816649333698651614591086916923007035486091229602306179831254280490899328744985778749064963925873145042239689114928023931095154604454115687800012529280565938813128042827036178436492430662658529491251840864843149420032264120409848680236336580882871311803014476503140078559362087630573156361588219442247348973173808758196357217395849597761084413878445382770764578776676765387072901128627432075968531622539439235444343525403161461652048517796273631055477251831738277292848495229074302654413021789717418481532320010414562357781223425697297468985782621072417704646225668887973935324807337806454981367189035190319659312505511473819877612763790011744682845297278069624000107776263198277903823480191534916275305439011568989811613979959950309499750672492715610073457539568455729325772252267448386729403602705809703504783499938000521036380902308250567951500120002986275053926274679756605036125737192380324731660760177895918407273127101215909824344463978871803903090859297204265146272738040513115834993957456139860528775144599386202379124992141941453398284686764818074421488476029129194335553623483470814057534597539554840972388405111270735878353064379839299850293743657671858157099169343137487531181031202566846148357984169553311942209759615456822435454695524794176201341091555725299284157519788841732280339584799258286806652045288017602116937296746385046858952658690899028261708340833548465027806804700605091220127172844241317621582607693341632144203469271276404619446610306414083726670666870310974228984025711743564476625225362501808732742221272859175523301433541739376341261366853013686781613579699281768373739156710780211251414072943026651716037402348448938896860266675152813566745649864213539177630237222384672706279304813968442829982833206531134799999930139582326522819170799299447922332347458105289847267495080441950058699730470404461502905457409512524494216564065543645319316536276116497930102348298442678212537613659756852407319014202921406615644057714019869940950824979304078006375521526209518384937002064020421983296256656420875817987204934643167696259660572004285145200035870203170065069119401261437016987710271310657334203175730487705934010512388847436216161944462101256589905329799291405783813205561781070329833995325238820365749234808229858949555968738645218576243416173476730373525699960365833667172194524708956966419330809436218506482879830875121115880468848478057773410699008246699596713902872071162915490069080153885457273379507986820332079576137461589411308708838451661060744014094654567410609016922575660727142557934178223912265762965737990360806171651949179848817527088328455974439578634692498229002288474177648865122395305567963306670144636824493633817868361411942295612257463970531970446246120486948289784817868269099781877348634913029775484359505473192267706606975166986533939668508989752978640685953175228912657914521433220303885143106319566072250545250145599826198465240215147603948453386752819612093840394130378540269811585732221972597338381208770945103080533885314391327138662841208291931069312798124770183842400436814744267417308682916984941178119354472811118076078709221367677691108976491928839718299856084135860677129534870498683478194500620190654049046168878790589265187251526188446824362020127125972543470729833807703355185063329126785974356669862489175496593129982917810043174571379586624820712632557300001331857394071988051325995344135217324394407480404075736831649637555380264978366980414780623505899737104118445956769030463550398641361389147958415659805808519364031834907008436501796914916978453834898992309487238098716639432725806817882133375067784986046129619099029800535951671019241395246223627532937583047887322824625547208141684164484322614152685285186852845225412986817318594114013022876319168369468084935948624182347487667107693464475808096965109490678420640033431233684474507059786927590047460165612969486019868945321774745023644475746731666792139038909330665852246562966149228332449275189493654442431308753994932462830398746391589047309004362113169021526200482559677746291358387498930341917337440681660031819379371573161286249053309233657878586689208851204344624914326181091141474018490933108567437389875193270055565280566148313848348421820502033666420386063059424490137745797000707201452607308808679961855401387895734299176059339520274435280589138831816006200022160675509796637475583449888588210124458833316524306592055215914121550115043982895698614513833665029287715991429960118018472502750073874351424423400088328019311969226329317674574419212461164727883912694439761125490398345537627539454152285604267865732750766673274669493355109514833619956162259942995186203791147873818058684789233432584293523589571721722624994525307462448826888218919001385161596006840634397810678211214840206916101685264948582319031148212896031762767859026585373010891310676225740936942456503531300151684691147318795277834504346716479999002402138538608167656784256067545022740290801810249926357649670647042526980585489970273665598096866351809185623133257888094023578743654373586981071117378038460997497750408797815558533133511297950998509946188046793314528284665295542039279904498005604205693050135743549815985894161332671058450689260215899026577741906836965180313789557674703258031983274953487733926700506796721295322639981111851491033483253855494442440045585364493161827548039143709243491833060130568349359658349497946717445642003764753816451007090157947526287998201127384039102108812950100459353003619490695626710638577966417529727284444597640032258139802403986278774663640398559484696739158407885668706919043814933704570101937748165349833462231697792397998857884847320880160002302593168932843566269122644546571101723170286882188700519302356694297722997339098811498801277451852007078017848780053244184415976788762030642298317377573927316970411985490793063077378569721743458181898073019417168374867586733431197185052457146094267739838927545547787627560789364030021206849073861776542586878191923855438889804053387171277155855731208799866261120661039856873115512237650848649448559957079510221753991670216561727107619081526403306377236138956068251831683361389186402630175207815241335627326419175577178310267116299411008432368783192838476009681938229196109206159727047855700228592910921467259985575012361493268732628884490920921289962887753825963085740959166642875183230491654334035080738454439402450729152995500772374645003711795523528453996000796175295580995916172766245449640423214449581903019860907013176331155456999657858031059102227783909311020745148918088136849766435083896972704422038455684804079636498101091835415778992777702554284230344827932674561983553712720135667348424494416121510035021417207946288200766639086222366050630515709547493242354201224225216266563802661321421829647110855823316203973830170994300797649719256180346238114450885561405054190402762261424155750205044883879986826009334706523009294091338477472069340626562528454712610578524031706582686702120986333380730130274065315443523643723607898807949899139516203248919300912458958173203082944733519138912702463237643549121388358123226916743805199030617696977007617717408935706156842778623212055153095350500206416698352552198756248058083104910047947870859301265189279121621984200746611241775733276835201318922411285812481714567706303637375265624689391119833474160051096264257287045721100592284330184577164164654044613744970467993905081429609869127561954412407690114976096460083365694949932571048185808151024539573533253962990327294008540332423581359214174542169900368017294045687159368560708170803803129327462810033020128417964985659163335804505214273208111171136837632057455927634947290937248847231088536840231345306429603138014293095163636817630942588793530046345889400894626294497196661092684319823903091580105892462319475880582956429864613022436403450918113209992978991361658645946496595903050172521205678896748246862213562085578131742014453020018475097975762380178141463068601642699559875163547818013541095337020918197155184338028784024668306058019074023621032885810826030441291434491191403249975629128652643288209635191311806926100559927214786243314025166963165116560439528045135907984931015928772261140199836848568679935292577538994437889741032760960255350073930420270474281822077135811174001922026037007538788205982815242726297608218081928608282523100945764128053708913322964793781401276110209799168165293629980684931173548632238908491852580702529613597924079928885283556693339388071831417018725200657874809061819861066462864214044586447724224392464642584395849638178172845138705078256007428843633559441866002943915614129937565123474239108024917184411405369943605925933439578449120649925077560623228020737319014527590301216715091028254238506105966779457815039328741419812672195324623130155840118425579615067591348108931058065198417875781041908037291342326692987165775866563284359047658037239388099612359173908909460478016397504838701005206705721674129083528030745126554279203618091579163475485151180267477173943298566309454401547714458659780309508042151411272509898343751108514169698746343659639511602662520196558186622065048297363499475003377937795774021684699735537478366346365004343266808648352975189091462682890550599979635899973271280468992441648294281254158468009310472288587326028139275439744991621673167362064379043462191309724788631854628122419107724534136617020540558487837819420477699494440280957454663122460594759127096736260653090500551698525977138371173046546356595082027883310348008924733523598370293280955868020142017507315120831403888523171023689325669465644424689302931787893832861066638849900822206558223370013677626309777353292002830406464550943391588185072790084599845728553015658724146188024423577678392712551882620169708465518210380324449070354232305588232926716629452929185294974356295046136253070450461178904682240880367857407739027718842308052356970423052204080405779217139948076241974994489814409972099488631914258591050731598451285536773522959737444557490844174083194264078574782267028372332388241103507305766215828639459751431635257424656552364310889861200796930941630599616075714805899412445627119243172010657449939756441219262183549342468532185761077709701123401017456658713348595493567582372684731847929804140291075285570116661288034373980156635268789420549009524550776517620171536882324208801851540721627403399276963802708823739874262024781884789959150919700386003758068167838390652663016403552377848285358610814931358373530989578967586028967407854244760866745514743061688046763388730377583316705284352496597001383603240560588458987542317396693218155379263207297967475565779132464784564550962393029412691814156490849828129122123234735160507634875538774267696744790505735434495121724499841675251105159317162645475552463002427163034371977812083887343348290940382637527526902455176546424467522368109582994001162562325546822579707456246826996072957868099826721806561038926101129294721577263963997114739239693905474293427775136350221103400329489696275893149947725219072984191132334175832258391346595568462625109462376117734587384710732008035045853931439980306553321240245287267486401492186844937979832526731214638864884626985290491166231834608611694033047132784399786989214161655648884648986755174524577378846309690737243592783540409006835805610404186502737072466637869317953919634927741490573955822993541388584024695625817622363505223920369449943630385132557343251535956707647366748215278590617750892792558215806558053847341332752291815599849469923849938694414997148918585321006053200580238481070153160129800582400844479431192490751149621382394100333717249525327719662402536333966030537450231153253249483671257975868365556870695219148447125881799789784962590114296515002164493386408227636522708589071480778717535310102191788186623561645079661526885702939747292328387122594320309694219720540358294450885244573273728369356179898012140068027531509467189763390854227497744367306542056978999080333424914814107766734774039601068757341175521076692770965803325584025488150745799923169139368164641571445909068626493013650553911923769663889403598720415293887104303277142898457288112865869508852389486981599732921959989265552905608464339514183422716863804542421829013397455809864666503561090104527389641752782649780465807324146074503540988231657621059292882349861115989233455336262070765145748530129640792138561218969004108569745327599998351815142986899035210886434518673287599706947453038664642254285625955950985120403638333621234332381401563873800094657381096362557789491533562960630647418031018348159451852349346706909775202378145794171262861597242695665343119215101620518267132369351893262157338256883533517289253459290892660053745285038285860483442010467277117262965985577812530349882280567324167846042965258901833638174509802357329233893508937326068285689023319260335603687064721486160044219584081416313892645420291096845358738105219176491067402055160945716702851717126595716407922369665109800552929873890755864005486610986442901383766127095813249636861701196361378765349924494713104916216606229103099208019466842405332070801709225533493339445722976160595077677304552015162579751117673893458578529687462407401063215476727479182631700627862644459427904723791854893506665758006635513043264266133879865616508108526579421398997988506747108078917022113625742412809787359447338465260676453091067195656896034332197253586932179680725240792554482585773264581021348865071911038522905288270536403457454566140069737025171619163742066516565348319486750587089337784161847478178007694346058349494184705993216249876669661484777015389151296021813353625171225864327483753998736808636959291496094524218930844904680791179158739107438911145688603241294225282178072253114362337275751337231982495893660709636217521895477319853162433005546378298669205019266914438002306541544023720566141389872145728593029717463367395457231334572059290726335324451016870845528900321184631077453529287661516217857626593760340812948558653390852532996236940202246277944834658785291161369096900240682945697005427670445001544747916770372684091761449709363405741791186888816367842609352934702980730258102533751430924147184322794678866346748827445158003060701919663704361024015790287901340677617338738192750564668085020146906450396159537922520312334887194037356221039279524030627547025268477432609267548212339321306709081510402772529426189023349659165607352503726452273454005547173433573158300131099140287019508267150072264442633886482754823752863576321377723944177900632998456837401453991222006370971496532934487231227847703590065372831856541233479874314077161605950594129490374538425521240925692999746386043728036158995849778991145325017982414838718254993227178451626476773138118441654420936165617539214016640726607926783105118186722285128769459630910799774720467529975314254986164158181531438215029044426650890935584995453887468129831847941473983394282626047789182859894959921184710616667546486119747541317400079646407944673146478890274207519498013495175964929887874831687672759169335712058171919170187047604830346447945124660110868833572703158378609325334384645405575517695245559016040685607446489186846707559232161706277476808442234222007600611691841950063477172493207843782310248533202425324337521939464443929693491586913182427786623887368207487964596316208753259380842486799171727371543158922716033766198334689208271910646958526163465627560640423103563544684101964061212401732777876583550649902215976996307715947504461317469476155547131997216045731650614258409734458977034101179151175001539100656211627387858333820752601213671062875558435232191252289510932100178684537114431873024583635426599569533373934792593836595276576422844755043197092034849832474138758338499111440088833344353817937727631930754970186810053996523340798630689099753567855837714030824979918977825402999101610919380279983615014525423279854416596042196673075670259463092490507847231426812344688667987841700723155893661874967837537548190268458638760409990901841835357379939754720215056832507963859719185313371141627615985989507552010077946510353872476924087608235853939068014774200521544904391525811228203532005136069200777393257340732360715296193331128272121721416375194193800691868304304090828759895640187907461255745311468948234953988365974120375006076788006595017583234315664901104617036658746052129880082610159476764936950280762720449221690375168769520763739088272176934935672572271879323663156824080832407843178186851055137762459642463079755375359845974180869135783083736134726291051439377828918257671731976359703141152148817349779052708987954969871941234084843973987696352937438043128374470810709092079502962293500196102007743628735763819265466377161288515486527733720922022418481900129759497063825037305811447787247051947831815950116424785748869065786768745097068324667076363136136221976042030511226667116035774686230689465753281172271279961874050025293021598015593017187033433290527077024487432323406890606507497571483981436674889604261094466058034887199317623461556506639747606669459461751291991840861073440550397698083110139806432576209742834639200555866953392627064694927548335365870101683382534140300231464593097334598664792582139223101337878343238666876756228953418628908531597587844839984843748156134126992523399205247537385444569448857084760548992035706534919806075968651838917762074852282040511029961456929593327118888805745808003521633230504953066604713367527206271004408324066620222881479890996104444913613222255921193941793566258993955024143426624402442166137862925128127720347943349321831530802265945139463124848940910486219452011987780039508189086554595840085127982148918493610099919625403470314205906057672109783324483438222451125142978197128661806231107665387244995420942575509217200974677077510723645100436487827867734120851973024467465565160006173274306731013622653910742019636627002464377696412834994532708498077465786350705585330991752909840131546976935398897493235724338016904569560785620837857625897054999584838309239377386920764911426423803466339767034711743667807098194313820699639234554021159578041926441566985117929772339766577250315792856992695929039126048310900810518201441737782652862978602764424280085740231822239744098981931954995506983544982049514690491356996558645459358645925482805922226416497962155778294971653912922320690695651276890685214132023390817022309921647376190418201716933379492970244204805457846377455992580126560672716557577657154635116860312182567793354915218555814910034774563173690804786000968690749218998645982247090316323763282146402634541640539521769149849377186805306508425245850856950064966945179363478257219307036563022039083152554504645702293138818728836804390804348949790402283757366650270379658484442909487098677113090960596765620486381530511868883278690310824011602707686735886947495897640039448282417406403789601775553772452691555855310713031535779139804643483182223681896329827180487325396097446297808330557684078446192079571412443714931275713006561271349929479507812973422857246280535695123223439120573224391482765794189206891231359553841479418463468289327227951382332062714424675028329080272786572546456807829117366557979120742657119152067707458536192777415717982336205927895227849146819974922168024393588491398481035978216579023195421016224537469568051376382498633797089076032723794430782650386606209520747084206716451294197285514442731088085796176846895550388327591421723911539471309341082656938560932989441231921318826455314291708253750861052490132359626173428499107170001063241869252430483013830416326638891665999452515804185456003504072142499307168687626186932459149012891298940000923330169484636086427644701316178211921233248765408607729412669477054839362577334135006995706642362437395732204370445515586310278667864849683045955865284002962742990883452985472188592662778789104038537876919866959540066780879677332260317962830600217076947601033304761400989325347667664416903032453501772531820056427278089360966110010939754213655354461580614831011605347672340086006121271642491909452916160149878509094546639398775777947341996027976256005552271094202539261713472156362180867407058874628747931410260987593281248735632895985152215052316084961606301190030556566231218214479590756056938436984354428640771966455472103473112873369149973642622773599592840163329998962255443990111837418968737707337973686080846419096457245943352323336851895914804772118149456125702292099695751867253238980865279316215780069365696152412205222392919799277019798683312516931627894792608786994298860337546155306488426953556895104478845768543042540873405027712176800246850938521093921011780582874438857425689182039979224683314901051681065638848226313015948890992059089973715370416307603537924452621434561942338827281141336334535982549255546169424899060372925298213930637952056573573862702032800463534465056593144413056216271107353216802133964455357103897268660739407764137463247979737588900826443472009796128399283987082027215473833054764567324863979241313228950030359301535920070635480969250322577874334190711781639482540674762745854600256103868894474770701812183938474329124104566600424320807858646044915812959971411187143941221009426314116738749408968264513504937930545070453036709253992255716661542388167597432765826433256881721490154002207266716266800498472343219893411018717207680607572897050134705645706821351077410334149811498833145211276046251294208890526127567467558046920916347017058111480344885895814350305961916986815513452422943822300469899803899746598916588463042210142586004998951089787596708333666294196220995577929171930774080356364822196564740128894202676396279981369314333281224194917934332375101677593901494156687537679917827517665073592141564264778295571701966846009485677157480507521722665565967015211086661282261801766561299919388976301863175120120266864321056742306873405441514613124587435735929387884513966328013405840727547768047943618316415371849610705500841924088936319686867028579500974758991511968895974343009699048377682304674392940024679492800633160272217074666411532516369653766240592848511574446192611430927092083291714411641504034248938967878143010547123429482364031383028992555764611407688042828255049527718642342241063103948375811021074354458822875886657247642594872808405011102936093723438811377774910581404026980123630410590980537647251499011779188410769675000194818020473029607145301296717661315872129335139251673309306706756189009749433168714830036407054409294980565692930215930968976472354734968181975662044149067432553184323427680946410042160167992212831061246020304718731568276397938892223201084444452360693926935551648116103613461097974907539811447219557759853480783260877449284340435190456283813217304938755621280031117966642996102769718791549823644809768945754088127807213061202574765676135359245891426037783035522627852534987897190835170128864067939136714886287171182330938814378389248182030246159799231265637101716108939410230613619232003352971842165777575486282609086782579366923736829256400373034191225977428607004629120501290823928556875430011538697940168090958363694160824128066881904061970503190441410309892109175987405317653316792290232289292696907905099508787131339423476459292379283360147704459865885312542770905410685473100445761496663493843968402915293684531777350898199035242653651810944292372325146579186946852238611998263177253954255187389771394825751997823712433935400678222290759431495409653399569634457713003950679833512518163477678627538039108155724937756303393518602834536610480484296385313227307114827152691681614584650191847703282006565101250162898339832699207170205698306992248194495245940144010959005425487278311495707723322282420605594440363742609443530168976410678278480471500622527527815769037155462303455479373857530086371351882588083240771411869422856154102332749129837792222792721655745705968252542559955038548095946907854438441541451335876612902873960843432033045608412147966715976025114958624744240870183179858682807192965408312501088085311461983619906880836807598188943529958524124276092453231981538039850486658220853276288905200326307306193113890247789919927872418391236380803390336281568098949969662888817150187671114471131239049575759742390946717391618015870662462676085855395080718511985854283770506542132941957762144582528700218699869852764129643794854046254129333110909116401214529328418091747082164364072314053497899225028355744290782021087486920002105657753271709031894230211231834094795768681651193218701104280187483849485601090647882622571678243886802570174854241137062537426607512771028327285671971545472947285319009746193215263814387513588469419883343239251839680381239201230877921111109010745293378730848557791546795740490213463212856781453153761688541516415712618630105833671229701236136381462310534324805389062725385833877956265145063201970604413756772170428569419639362915290621142395248559673509591901488697763802897995845897231238820632185547241028478928455645099459941041165905839905667276191437244737703589529003133310635386971204614665701104402222276001304582078643861073388603336959608349211029850464889557673308375079006840705063333091336264755424490145953726979458179880329496259802610636033988501234277990628970167091676117673844739883251013928070862813393905271082220148125659977538516259975951993016308845153343230977427448064994521771342699895391114106736275428141197028813728544215741561978813490166484498458233303704382335596826782161512809480025142508489737655498172505769132659952187389498099317346140992052169351363870779094022218843530058422442116938219500256016865322302158066967348614524318912989173409503210946196481151524658055684673095855036766267702017173290511546974332497672823868939655652276410984854722665457389738933632916901148742699076409920649720200789632458335594589296943898808020937270815882825280839240704732703019861334771569309795924077447779633496076692462028896462852179635076961288829338729720069807139165282775937131150538030149070855667936089484910966039790668270146404406425923762367367851788205405198366274856582795212282087103116555225369229015402130761215356278993414067186494154148695802635409085821307334287529448604149709226619328033263003892207895418350095513861536179701161676274188254034002517532506800560212390553273880698746172590363700446528567313916717846368083806313583097492400166601333455265127595275151951703737601588071059606012445113318263584737454441169685668156033115115919898148860403711108770896646250713052680885268609169053381020567286342098383377100617962959810952935148598048433915592216868707095001752773161666436195767747534396797228711236450057120169097848985690657885560884910643344078899060529969157962858041551238989229576402406351460284861248902557716410536935341674802833028212175951696099590668523877803809075739434818077999326972186067864810794714113890127883356289823853864135439750007663346562011849379487393582519174869716819846253479634923639798778357479478067364724725052043405578610486474665821583207786955891012045160276124736856595853604082905914376531291412717997921895455435410881367298304331530511440389095383020220231494225992029843330626129523034400578906590318636606032249539297799569094471332998321398629280739013374757297691031979624650707338384963214930914271805461450121092963314551473676909038029146785354566038832530733214215065673874842978271087960033640493975637047967333164032349453214968526960060120676806000007407698101273166631415993716132547011034129508456942096512397901699154017052438793783117709737531934214566327170348024740054140286173937327694371901002156625346711949073855880726453002314565053057347189389985056830265210959307474608037250573813883222705492151369292972212813392521265098353777353696770093786078674761015182269181096236113212262575310841959638582287926120351299078858612032026560829493301307289923699519967536198428924053651450098275648733403432318520663388319801007897623472613666035854464337458468689590015568466748597883007155701608996048739763224796312239293818130778103719195993115255405730542607196037369640971600047513643744808515279039516450284133477223401624208338145539705751412453868623423325598905812298610334795140342557731655514365171387653198986360914888034813522482721613046555047932251275532082250683841502704337584531245068993253222201158061663820343097918293316741158540248735902705373166866487954018585963299549578604226888443141330074990259583198225549593430026848728843935768886002359020429028393168848339985104650098390577200347132227885243915018598371678950220421853383539119751912064640013738891386737914412575059939042773634805666497638611794774834157409919280734671722604227794202797451907448419804373913694227933980529407492269731488044216915881212197574673118184087360968461631872259817729532692008007926441391419135966654998331279979198147043242211659166554040821728100104463967061234922277919052154095639312839181997367752984460681318295446505985112423728692387413619129375600892407633146097526108211906976769982507310341915092241437027749879678024081796115326646847165304405056454675259751576678021767099018035869425385317025939780079083605380985193073760175655036655410778826651753398287165675448013529337963623078656084553778192103480088347572167632744094590674957613972247978649516362054324502671912100409921186652639220913167118890433646310674009737580870414918103031376165730874989460720752975937066058099032087915942381770970226435842873354859432071553054075481920211479133560160672273188891460355660989182880712238300616507970067203309853690104440895702057609757718537823756280585529630543813323493828990011443421834845350953474477788062423720325639749973939798379620349896193107494780421035745219470356352660342703352519377833824397731997427507280896231383020124610430394940062591364579145492069462277062108058715726001272584185027067306728098508094617974166905000680950476581292938112185661143082746158537288530525298279900299333453786386986560785421686523168139163879160977287217154064166112113467827640737238008252251921924486502300943045546541506773932356499784575626230640681500633680063809380335585670403839843680984892293999653847456816206150863939556870986873952948844601962218695263460968799241806501657000828320670795709012323007425466593247239149559690216815823213595615252156044680445475816609019808247122987388637457090253717043161390947617667665071262737410171453439108594941217355551734957607600507656887425410617059314384865886984256399397634682876590815130256392125965574189482480432880761634069838013903500016537391914876271248514911773287985504773599824053299072670389976239116649295869146540041581126879398898769635790904507686801813073239328641297265762264919099004676094030618702569317953094908735067103501546205851134519540953685477605250138652256251410395828171710827283411781898202870043085093130686310307696298918338186141854110567345546206519842352296078644936643928900749120811125730552180594429375605910140021259420004214298911771144394446759755970894465561061051043475799757684303675872437515807624550038828102059733977523500875258963133758547625838194127626667351482503600921668202415919183852508480036847653560333855115260394352457396923892461232157885175420015933337422313341886367310760340043560879287758638434538738889055801296602079294141005765444511325648226612242391927158445279714260961035653070900289785799520582227321726691049807925604454541656072170725484651608449062722517224194584066852510381519588756139011675160389767309653283489500362467751550532047376128490124687471374670418991925557793895906335967741447899464938332667146868137758355766102735246655718134638391021523007330380964852233348101000471555866404285561502778426410070109089003743897145788922263999092453834536241977493178598515966575683975695880084687884804805101563953705240387639614600113411622370716952782435332782986852526018058330670692896251174306985326462875704652996310000471216380465230090448037219510151874779758696855264363851140858248419832007227125731564778113770958892527854622213877974050765778881371403778996286658183839459170522360295609150133480243689784073502695256010649473952240192319828494725153816930770399446764706010042339859252652873885118472677213666425112979563289564073843892603682521654977908562544439447994880331767037324593557345577400248234663529141502183687889614647941116579312431886911868171641670255522291043035119168088126957218902352725771907682988651510515120901752150391085303690304513155754684256871503325223106620926696413938771730444746073833115152948828302423143005127988465727202986568034504257057696183397141576584432628556792004615691914945740160248571423526712810379028065694998515350025869169506328378849523001080358555118942671743783365382470163515226399309218355921018659098283988083714194321787039632872451291635407373473180158787071181610050688034431568106148229752133962541641536408837007015675222568709972570445274985409786524997757478370430044126859285443650629977052929873851909534742209392837461097444880678162570472128596899634543729824208240662056499707501220986867222315912731586287259781968784638136745391852048875700849574404308597707081249478604602640287164548341342590833582734534655893187333879792964586517748504721887836972487336966653244603358648357779879676066106690869157312503754024298212628995436320128467184336474179553483282524347643391895353656559142683057846641882508278588346439828476089365176066177063384071070976826904101890138013176381840767180393511448361640611460134127405495597862467655812180058491383478644309282040249559500775192482790584813139909475639898317094774684711900457570633303681589765118654829860386234885458246908450516777902605991907108251954358689086672983555302285006200565553947866957831688958665952620827720128291892347556451402530724117309484965189313460288034802645903206953798924239563767133451905667475285896850331528915345335532909368423078638357276060587581466265994500559912210205353844160040668129372137394247503878160485370698460963411972639992569779500901453569686391237110989357673863357769065418563401136031658059014311039962348319801211570160692803396479552883320740849378143186834651572039103796907167442071795065816610054939578780053605404127536598706245467888443319752143693377613898785852379462095624320727769179437828447578899201650428148905622477568330618653575139420297458306986502146147501743099326798789282570821367900997247973048969086433323922678379960510881820052101233741276106502241389724769527167311498556501642239955415666956765418566918971430005888348405392851228041939561188039008404500944799808354729450100935493235618495888490877357936355468726542238848829294682354093529014095265446641008347957833055449442244533304730417676353506839886716086950043293364156383736704391516289934072371006291975441291726752468319972047787920372978074677095073317447014223037281244013584776246422610186733172590429921704219878477868533203664466459376896297966727039011067488482799904457695503640844606537136536787400869112047645138378098042772152011422495158743621494281487050522242398383197981397405454850679725165368822738304345524577035248895502919490139430716116863959585704690834491116088730274581815602743617883465353422005760068407623993281394777459629637208842083672540533663096338414494211060194429862642889619957960914933547213126239353892597399649619742986039122447759209138087012307109245325066388871060622390554238034807999990082606084234254751169876016461626565767303334458346471725710781047369059807680614089199631051537191126987473249733529037472318029062500291622947711247255183624027462188284448613665894765059164334609342985368225666775962138301297817218366320653871433806012783392061698772109214633932115486253138348008451705604752832845053625020067574971640345820776225095422653083251027845597435206033100127679523111846651255264490253973664963769025533888609386886765638997505532668965867846888769478989434862342479597758236007063330299355719063319241039442257987240456628267054906425201212841400421766388271298425233435018142548587660988801797317052482314156300000120790986488559703884217344943688702006390974910812457124900855426301386440839537191863107383959174857361542301161953960863235966044689111356915181731127355231661817607230624982511096463963808197942480255477755688905731632278815046119655060460930101454312423679451757805670277667235363100579915914464731258885978711298369317043993569855535872172945510486489113112170680009395593154012572948192642740976729378044349413836556389650648621953531992121624442554130428723435000606198910282855166731110492789112317365129509105160035628152259931216278307098576159995911814393347599112467735701355256275911407314194104610191973259672993348240595233043040238235420136187387562287887213352042424249255489565844902617936071494546763894789517430841050865124046027317209572338230674806356221577471468711561050940068345881569854385722496223321517614460514402107397221451975829559838049505589523533662570950900169367428600431510570284729494692943956892357009156473666419274059240147146048469520562062269263343192825267079639961397455530264305657493932778521017472598967751940984926954446029580845349444390174026798084648521960082512659294902782858262413930814780944420323937852949562667440090998430164925320500134025749650046537102456703903931360171010829938340503512170112547956764321721928180610747830366205567245343812326123446700572565311269159109239771054437172093760951435622730363519952076430082111618053662006964910558252760313265669307609532469420529848078547780333144789493175161153972221081333929949261975317139304813859201007616395159819014507852327426733665263059856549720843956869809877085820474009747147213814020876717447654155039179202421232958465394870554525412775178906540960803301021100662568993043443961608917579525595963301607701693055489769663487502183149011898506866082381636963762826576334629164730136300387935108156896474794989451006338176370423804652066277795451112176049279786509988463033622613972063816206096591235636075136724921327247863416445573712876574979033948847502677453523972585948371928132472057925770981061426027165191440104575914334579981671448202246028200520149619286442757947265228091719716894184253930431960667019770856259184635188601842739671013317272559550211951857767026924402035476119169677940230129936432385320745461193501280644196851909619390745231350063469084408527650300481728698366511049601936417537794261692988949063347180861426641654652606956013023090930975041556304835733104762778717952214677362482596332463150488045305117619962025404275612753977961128671567375752285496820494768165511414287892702339431180437018598226367312154384862677037032788554243530893641579401402044269571716881293000024422788146674287937182578752586615482853385684178108707135159813261747753889756197378725815387517046789906367758423114218061318302907724886659282193353062551582264814072173102464686096050495648143405862557395355606198796337621565415069961927488489674209631603548517777812403954192056863719847384009521553774914879944760440013921979722787850794644168575472727238578139076073129259672847779374501021906764659597540713142299181356152513070369087143401637810064585774596063185705168288660486149713043742865589094236720866388252397760389186148928740923725643483858473323679956324596716296897100747930297373955366148356725176560780415092586115153540594312050754528612941449483542177984549443635199212249091612249601328544563963479250755211243268303042256782478899603903501962864075747050689484726608329034907630121926707392720342041198294757387434668510442054445701565063531677770314735755988372784063928467198983967115949568268439264437643755756719665556889248197506410195051947619806305540256432688248908703533948189282497368216753321226161293803722465591198577631579559166573553553953464035977059229958073962313822352296262632892512409177757890525142299358347865265765424727376218878619497017655141848324956173789402561701165120645041946151306362266355472107691463795896956341809792145091618985865551864168483833927967083498968445564157021977997465728357187091299997955356181208077122403438601212445399420200729121808509138831127538003824152099645678873438132057814107067911203419991531908655254557503000227207647389620676387849212840644935982579982281637787963890165638162392453492499180997230980116195407617731864970632332020875734795306674427250015771363068005578360635005512784078393836181845853736470755487551392547534539059627430447650630355652640108348129999375021076660832937543298233972103833469512695343038914449749763500866421380029035839064713137684441814491019229654805863143788214390464338668500300710716910578905538289872938802261752104863732918634566548606226170788867961076690594716558798046340250451360846799646830076126584336930720605152026132570545449532613514147129700763288084138978709637131186852007544748164770382276011685100619253450544791638345545824621765663432808705907697044518573582720527210027435676022267082951562512948636138724250130486073453117179214280523649476087004970827618685827670031454911149293190394599967054310711978353116812376444225836794770204344221993457877415543414074364188772051566964690888052997861359877060530711351885043170353935711105763864015189373580525453161958658468861169072203619353174485491008374994858961184927279635870395394454676660168550297237763298332948765865298995075486745716804924934418039608250471019518104970564631324896528357236518257527071189446403123753170094673386227076952094683131052401746659847831228836501288429217340086929464408709373612407220755893227139940247213106753315701846178907364124040480745151255135798792565514057022538201112919917140155048471165365440870053192741378468680403535017682072246998029298235464168165893323828122136218026652097938819841694671548444025895122011726226421657244074093302031138603603625157880227166579943865949195137831133302783030009117752759551093563233680052684788153820405759490268859998566953262095569037720870113061226878181591894255764029830674053913473173341812562407450130762160152713502588720356178742141050869222510144359253893788924475327308165560206807066537705811751850821381007007557536757573175296179954740809914499285915345265346879033853835335241052577822200088442245356916705278154513820659335607866011141459483352201105136438195649117470751328229543218132891657603482400820948121209281208007533893225688230644754748377000456387675122035604647884465980032977085814150088735473077710440958867929578256329821467596783463766398814913736342702379594249574635120920514934647664442804076840976187146520275620922763374906193198016820620655867199803196810249017793718895265498191362451157233928038882794865741683694792802099933401578274573012113275866652115904863064243558596313432881490590029612345862438949490909723357709096901299501788195448285238720481401575943393431378025102796976680864583162046957754210006123851259281034007853416185782712378882104679303356560957333144021712607295952906291416886917869537643449334506625072273517788938295484155100012223353859983317295111990566590899490336219812247050720156166946686738278744173479153947559395172091453880015886249125820582864185306100231475340167018834849247426759407790488078252329362455330231300954127308672125949509068983961517966676603869249215499009043148643274017328830152221745980950915283840658287750382539814749702955114980509714394652647021397174328695212558843984247132368715012020677073434702043381557455077965768414517802731709754544402542006201485953092716966747255254212582071302953677218061786741750089603635699302704054091390548607071717688069150550303133332814879273250817644278545045438082723602130572724110673647530578498492304299759936804602106874414309255793162627847271332680892611091688655972856349884001001304119886873965232491935376967226391362236675077113594245810889649957534919735473036694481555250260996247055477083493196889389435595146497945149672117518945700220433243509793364787693160693070087595489331518438408447729528940928674799423405502113340665261917299080221219669687430380457059204405248249817464105470695015339550876483453793671061350084202540459871090828456975286106090548722631028428033099616182177436433753895087006732199031959534306589481696179789259949213854741824844737218733163153652861895017255334958815136751529201843640221223647268403497649659829621052051048928024408121467993807457607995409383046682819093187821983769104961451153222864929397509512010068024487707269703695970087604248600731225104094033964703093934324696262472399624510070380465020093318798993592243306202284798659006304218895110374000573276156592203460762145126658605959271782809710477425446749361984692576545640770861228225048794312842771377610647471237838029967435951350037350421584032828907287281767479236575842168538276364659400102416827327072978927803415040110290940609903290816851820267773841980562930134044464821319898222957010585441496849879255856867323160780691852621041959934798512899401152472328633492177534871462000570009392190419651966738392408403879447405010835657553276798523718221066036524446218253409430605914611804561321335429863709401604168066939303243600409254911864780819496722037711598714306696909709777695896957977778067025120589037965860815059380453165535415048997496630620561448953721087739993726677116012506239812233579820751899051783805966408526562774131497762838950116362394820471962402249202191522028646191936327488683643690810061960532979020054336956358467117339497382858581840744463042794969487433203114626996945233477370516793232417092182097970028328522174365545386664095062877425636351451957919738594817805171164049628352278993704996016372316889275122103307912760221818076367970083464702622577011612330024364893391355511148065525003101011290640363932012518283284484457783313061311486362690911005271854051813175660650865191840137688538503403388903662029636287919256486732926809068145309888995819822123466916828473708498172060119161034546246751939592026338600748504918593964917202250670967782633813447540228111400544803333254414050054400440278015119575804235621644662818643510208307905636480136323143799204878647985696208713706587172929505717155468803741196877499180726099536961239148981012722524755837680234633084252330688906762624614787436778347428994292216047404778043005639625351463369974286988631549080582498663430468012113004527622052822393196141531938991530228766254626037363153199780323014418393770984380772434885641569761383170114307793882695278558949661764330078912889929644297434656174635254739826819522435860297401492100395165127323277816152929978178217228551332494088754342653203291232646270848920685538114164426474171089216759801376861456651699396006727151696165502383443842705610117967482626474302391328398093673602458638252345035406801038231280967213597808262698515102786458665155459219782491202975511540439593638737942687715781349890963793640767340716329581172585276945515084709790660236564674763613963248149092156062692453824967976716533336557930640253168362557987019359806636260030970410618821764697049215787211838581633066840957445610338509966817922943061088332785933491445114479960593767737939776131727449433698827804988670192146268767014189865795044704297844306767439376023276939949976513615562778800027522940612933161296549220548759691212043495046335201409053267731940719396189330459438757579656394659487813342477280354985608076957017549688801037793478916912533720218389359826937048478558844024873118380708984752874683291003253043471813725809965777864311429275909255885149887462594733699522394270965021579139070284730937316808708087722146455044068888800766520213497647420336548557681196638151231618730265869440392453445092073727434443516293337660985446181547892902434188999408041382155059203471785324751396178297979623824589616469951801371999439224436283065188068409849304173963429313741027751348716976644594061719394145880701206924490207643687420028639723755655114817385028745830123926839000963630024158997070149312651711194233015094885431399190090961651205308729284755561365539976671460775058920520663185081875615621822616625581788038504607135696798601944328032999824838298939906134578857770135565546061940989734844716672316118500131984366047413800799287691784210204018181478940742567837862525198960578104965590073245087605884405146866648259929346661569316218920395344265944180406897898688171078762168276951643685395392836370660250512309658897466000683601355082069779240155200827851606484988848739333179258554317525967864621041535396125238999228457712010646241910047549100105365248077055805063552069912321174127569893252552355010230850273261406489290049324992333953745272237855297984029051230083990391358223581015331118198915612773281272847605193591359944768995908840124578655012699223857000930649056132509498419487558020457715716180782939894509477821500201547804147279669960323726401545280906579844372499301486171192423132215760059795382874324038394411673266212245181161352041254662592586941102309320949971319894481686722706613244868678425469692926018052535050493106205470018799675470678663722336069977517240681747790852030130352038439077383528618939713522350134692402345101898541822974430238916809217563232211110746740203830982708099426269246717431789997336329388731333032073114862832184349516879002498455033916493247263120360822220833376508923143021801470624935496415093472252944768461861307614762972964409978237522387040135731086971441783947114224060264848004547234350867895967115349281413786513871839133786048913287088053792096073709807775586640882780082103380313005422952246186738359131768952378691737613076863846973643841110188198096780687720062678365155123426118481813494657245705917875087486934448452852893635037589505785703482874374931200995030084647586842586065980172985922585958618489152069540000187470045765468129712833780681629604488797150065555866277445553252210690952904743541353617477234606559891194528755287428735911984525984238090684052014952262047778153270721820625841230433870051184481497783154093466958117070052636773208188711025360836237544311037018370861171697351882815838453212054217005821820453070913275143870169267286772881998942508621096778524448487351142842267222343829164384816404513957054797835273125890353421603906691100823914638101549432050268149287472674553601313424387726772617053906869145515886024821615101104361876071770492764145453386707226866679752897679409460199809733099298750544284671330304085238796397345279306434765771345094637189358892202580991047731509097912552732470047303372309265153890780232797149660233982232811864112335574752338766004136715043725954574907453295727216355890254437907499331622149421937344124702662138404614571386110195483385370603990460727129841202262835590209558166466745088214609808364678613214340139203676383882029055303867049500709361482868350558979138052985294660823549016906838561709726163215663090163606812979887731190486050674015886995872588439806386457671063546400820583087702893809367504081582127208896950627656445401769089815875448458934249018735759095668626456546223146268747376013556642851400149925409116839262178564581079910714631716654141995565027863773854036336716812601031015845068900144268017791697666794204153526213155464048724143036551996738500301300336579615904944466515390095772254889467780773545123076764258001499383037965656709909915886785478715232589933472105087307522124033294998521279434684182645640654006290127684536094192743025469057400131789420660245931441703529931642759982609965824754350031575768780600714004736313901062439909843479435743020730464479731677483708587273117545948448914607759449399238711685288358489569493051521273512166259006636937796462209719687558155931235769927769016186745417397071760887556271515282626045465357390911357089944841570606572311491621188983399984141831915144615158507484708888010090603889361926088757305410993226150461652887500356759655833796083001891209026380541405498742120457526481151550229935776126185113613931292408230408305914962619189212141427202999878054138262137458937651831565336550083152661597455958557280644417349036988797646440618999386889385802591315822378114265312663973039083687321596104564327909843592629551994303723362394828825667189503555649113517220226447194314766490062089828412458604012613025155066914401952762052893334859640428920839659732119458653741848868759647389419478302640463252353098934398089924412282613886211098234717305894596488304007181815335216531578439503645400375859017459100452841917958469350458734897129234513611943434684628077910940348881514142047167907504749469904564627772558816988363061091718825458327340139619534853453345027974231349382899043155237090925643439440503008896665497055219227605102354307159442676092927117550821022343054705658550073209364474053946352504377403729619314376550300465313881704311894891639390171117899747649053136840018576748078771664557187766781311430591174033893830041921038901369224880712627239854416967013664174525710228345222269837697381017975273035067599973037632728360290176120667180981704930852428101720916223256115116966922580851478330588283642543390165732233151642871967402249405013531414700280817566674303563649223040310359933034524168811006693066326844552224041849360469112113196927644737404466342090766643777616887200951795348718117959074595581812677804677662266975022218513183412002337177376737637531701633669891921239015610704480157660059319905306840808089927960852536280039595954834346470176035665683533675658251725361518666082093690600719868052688002745665610613344360240597973316920800239204246035333034598107597711517357549218627525122830661350036749509256002927004572781879121319909497010463300655122985677087642457228229513317010967432707853050575031191495402543821483912133713337571283344766290657872326672642340818742547521922264992345156080199705269772934210873597342048680192738341457271553591332447197181579410965731588141573818574608743939124974766595574721955010117818462731193169525895347011334458908067009671044287175173570350769473126247462628255142951815280431929431093917076456508498063072271358692913601749419947608636869922069851005985698375136475689851064504485710931958919858922996182943160908556410160166414673821405965441330833496789299839212877860989514607356425510098215858809526703106987705063914555431871010149728825150042753749152984535536370900144382561467543393766570605238586526464544351923419040853101591126158391748662844068829107800525664716438945789530083113222354490165576411815190769707408586809402577192499693800825758338633047580313190371887953768446596843713078702474271850295768349527930131290564146371941026196225152643424617892307418441361068351389782335945183688371839308699242743247937005157807049053274088968150555886506620828836597045769097580989467444992380698279690517067626470132562518761367874042469910942636667618117277237920277452029339058896079814229241029419368746403735900924446152218033668005029796971665345566850160397368250598500034835546504827408277128812461551368189973762712863575138506667055730623510086889336762510543476694969105416433843989784975690605648918862299563105784617086585756388763802295674417689568676478715172784685272973010646878490586367787381772953467558244320543827409530954704396154528865886062658259635455834001517348828252327990755753803724077473262248607035722435227205667099059030289939750226783456873647842742170648260173083860796456274722648839728540499227532852183298908933134137990171687148295299271664868784104329066017650713155672995214503050836293505918189004866036050262929200717753792633077292157366204748796975026729789826718978718908246178197601344142612190114286358388958744133976460713614051240449692646172210975814708793375567298735317247541688045690912235111408002246678380249701619887609619697513854077448492174901750223612957435419180634664438700657654468904369847588155671017036593600116893527361200881532180526199675483774789060460185897118323208851102137505189452507399145131785064092489111432635186423219489618981558425240132911633283142942821445915447114487893451760025894863302713421863313659794890460609757241306749476628875964284162388108648212781993288427921505364260020580899117316754053594655962545111984823452642964014005312587470897177888678256046710381375044609760599570017332570137449032946080698370881665881625199190420322565400695303770103801091974673966190358423284643133790564642978277498321124058798794986007192799128954391536696400546290817590578354633036934353734595681145882987092202983221970757402378513247640356747468629480940889730142655066019366594952610576697133556590127464729473627499854260734305803392780169055187476318256801296010042885979041016500837135098342641301528742977270283327961358744304655618714653784181390602119540708866515374476151224652248835079935839365393254063208647529380566992538261981073031760975667993839559855720907036138034492480537780438452684313462450637192683019630820306641073199157461721196681387492370021960854092913305255453705700279052794489907141188130099777797739748054915791152086706192310563268149503081843769115713840052848609417365264371023299443800157499177067972263849817803012506114197550877240957467090413026033484139160884010362458613988051314892932268816339004063871441324242631618240758113459734201856495278472376380585686633449159175755999485908283414511630406954314581073181507476762777166391176152905113517667804035092915522570252329310154698578045061770922223260642443862861109300043146397255269934441546680876257389672233124929287275623153232414643292197063012473773756582449727510375457725596806587858277607102646384385200452614903485041878712320158639474692171237363228631767827384279653810504147287521490513608484278996337645752440526505558856281427529549917673738533479680637338657802403696350513642686983409683962203339672214827557003060711536812369708640355924218764585989201479938814822408249023679428911838489167477672122229821688700156956797271518371208858989855403937325569275439154172264389547476380443385987579358152271054989492906691376820268830408214769142100356166716029625165151981363772271138518836338522467244319271519920927978090516383575532564189985759168392464290674006128459956955498727116492793589352584480138016972149018628825856788573091523862195942235200276917798097180684957586399370059384531904032888300558880360580505606817617671230376314804766492764120797277806384254005354781179826637253813838898669354109778137443381831907610882270435519736305133730363125290655837325202510875624164439238934198923094419022205842463242301344662018883020704690481872277614937965925790423906711035836167210708251720369998800787189673905798327349571037173600245518752379947698525426266619637675431420595749520446560951075188596202927857795079613435205314394414770381708455662651842731529623288619756738147367204942786363120722945128662662083834185519566103539869159796304526836201834748530841328883168075300588671825879203047288942116251851082899546530645631832062660548460711627340672109166009824496227997391149818932445097804384912301256680008561531305857566803016212960494059712001342649351928048785972439588986740949841579881820584436602849584668715132069114090115736140459330214657302125819663238677487512194408634260206838283019612492434246872142411555323350529703340419500052620272426861359996621848381853852741118191813935358149829060210336326561440770464768960288950563281028749886917051158198285406638427162177539643556499533277832108038142683806368834938180187025829938750651746914607138582123986772665996007355863336460071456826697191912928744586649767769752689296716597841229592748976817675132688996020777695275672086694566644929691214321343450749894400075839592025403700875714859603562693066036511975931276106742957995805724921259267076698074052490014238439749033221788026384242767740252009187819930935524686243082786222028430911923397077765731000958319364535429743394974097362005274483988144619204405826426556412286333503430640631429558219286529757139896899540563146198135665600725667451412608508349233297866166207690174897644257505691765731536765331868198920751189493928029207003336322940561214612526082610313391064986300065446210376547482344488747581091037630544654035944035716618137078485792888252584759008780184025568377786435822171291542231218658945356573571290866821749524687082440025370719164609801466936541035507895567417905976155458202199270401021281026312371364867652931936178011509423083821767244492140221007786218245878780589713201458674664668477920120571312492755717195434627749248832628674061351254345223193890064317774555637968894116259688352641149628498998348405765913536238259329071279379271207583010990350990038405368319710181663004355558681543750881022971171271968836923259001268417107146793755552227610392333801054377187469434697311648837391887533361384142465918627367085051321426988471168089905129413515409491486779291641844119223817916037508902283229059674564471234306131064257377984060130014909220786475851015359912318421971721564659780210781326188695339530319320844356639222023431321378759734835264075296027423858428119764084284150142785378863650735499438937530028589775387698847460434709562168460649846586375296106746742467232334635982328307067040474601069950280312098473099394104783551792374627506877018079043343552374146879185371169540115277749677025598034857165138102825783052061311364020725776715761676804667184209486904049343290597131895004556820505289281749949785449589893577701714416696800070242043831554271186857012582663383398025175973411491699469828554021877471552743950681091472094446439934115597148048892976509201890979858186828845226627027984759252937096854114096001864774309862145095814040122214718590882896653714656826358881020180577583842735934678486470627234925609874847706767920016384585344776189358127699034877532295862280369140622981250223003974469383696631165408095812420732944876307150096549752647234545208684270014060829183363462648633434135277804794102212737244568080015230795046565243375561539097650507245038059924195355705642621692000305980490633034239511224526117035898555677808415799142011524586505651077406484624875156381749528899270745117517210881850832318783053393980601292695528563796021535373090509398781621367361287227670215575522664590320185684743306051460487272055633693715348842565382076800175564089885799910432132694379167511841883301897378400394455916411980685556684925377021833790427981253955911082182196511647471499388319885895479843615025995544565132898022757236054209384333557387875343829261936768530176120074573665510528188564044012600684186762015327596019712663384428393049637665881638207589312072413098129245180427523277226376844297349589576224769152790251213214397709436570924301484881030387080251702514309907211437389669704464098000906198900745289051962215574928619371346935629104647195683891413429258913492906800846067212062139852205734450292231216044621196590835104057483748212399050102721921363575072949028463161970807843944950988802779709408573031707899544876164052425531069498132528117315561840015476964425867850796696759514369232277822180687187976632568828326904421403283845088101603818918521925347572189497035929399061331428477199968850106781172760071004988247481581117145394855664983645675904543441534164340251822829978499026487796767988583746740751099570602142802105248959842276485088846409574771198702579328094081463565093320348132272339737745306347446697821423446400330601931988172805843585903614311786393734987496501687789723708516894999143663057758358181033383527530190050623251989644762713686525363849093165956271014274490101044009239030264727697574505440725307804543308052855896146471764345609333634721971627815154586540145132299866264443129617847287286034887364181120166416767252992737127900008237565583051750267427525826352313328779757199907298784096200786435135825582738336600657730198483494662575590874375374131871656550894003751622680048171409062354619009494160046476530503999105814606660031742355248874203874392323059334000621051278986640728810502557242764766504102817482109946491421490114654778946618551249376332137752864226537379245521484290394910421073460532057617235030283246749075729102067621103070931672017501317241676278708810329912862610586574093504981829621519466628164477882629137658786992576083686590132326739274452512884084400543863927821183647231696958197249786647938074120024031290391313991982578904647135085104102143841486215918125478092965906462964152145271705728493901507207613918350763194092984279965151050952992938204684583587045377677930600888396670025030901364114411221523982605577243172791254114992696677958566638229239097835147123560092299679927839119366776840226976250900464141157456302076285408245668907877648260374445331533083783666696974704377910675355721292431092842539588465230977331634184945602559323387602353805010040850800338813896142571732255111322750604914739449843625177869374745343775047839160146638995620814886754377450870330298236200308482819870584327662274140354387220953526984033176279341099436859242885979441526938908989358264485682609446020471113434122992605002377563595987932969022154307934112538950953319217906745658546157913484250058936634163581161334556040089003398737371247372709398920146740125479377752361849022676004013895777036335586878709292141252528577285812073772368348113356714434365233271581614197133572114451499341510353896381549914612355957616681392250720349494575186128445158211012262536185604576379328245475216948302865349884065084270248836762234895787436073057951867443569028083966670785833186880924941341088008476245372180087276742258515416328941655433259700738734338513917361092653683941817836136169224931562019644081672784126824520257923052628159983531820000872129148611624655606929017207546291688199331117705354297533481287182738194209848505799077252922973165434792558362877036633056206596488198661252534118008250278789628293983828797040357605090912109589493228621178387950131816327619420085014665971170911857141267921840035311117261263991073989645568802540090723987398846536491801821438876496408674433458313703923821034623303699706746721742238142435273991996776787274471704989591529221874624808778327890954325753527665488541986167603124646165330687365065971155682385505080456929934284007636452468284314752172802377833620723092762553465504455572883781633901266360029526576883758270189511133091027014018444549908359253480980998622374464720198133992585892051642850480363078945188744726320684788610307904633854708680194441561704031531778885063561796323171445602733380971086860136270701305602125640465336584576674181073171708962639781966848679547998799869521693456988210249626153435917930665564072990246420585342988263739979672372204049474709743845694859429064685263547699202814089447566936864962165180532968991532338753394245149535772190596667303039640366186509569386733271755438143175229125387133321923247867789663117263841997269733923268552944853220745329747716839358607033993038642250585942302259485395032832814739370811018781358973643841507779733997786934693640512181026271050913154791340012592691447293036871163252546049817346798341669376200601728085704908022485156275170998747568362587461886786751067959294459573431368905825760923116774486673691613368056956313071095764759837055332726536235017353114707579148035084808574909767447686564932422303384793356467368874510841583634849867938971719269091789090399250811121320022971005365170618324931634065475631637565701319234575921917410914406725238355757028927337227005950654980082147447198229449269382147538532370229217976115473964933097316081293905725375672606821001447065004648503143603523461495685049888124124522204678039970608955096794931220917385210104945334211678838785536031524219297299722663655517990052820622635555769565180735273886242497151541430858571577954130391196329993263578372715850161875103030973482038236929137671376469032863399374920107860147396303501372421029734318864241342165136904164380921637061946260335422784212754581682575172070894732108309710381511813015981871873572867457573875986526380555682229439866096231945960001522183782236136924537523902980725027209577785744407895758733318033723848824181102638742051137224048232249094324604075153259333347751244857089601275895735596382883999173710627667611749225725328609302012974920135884913924143355138448747153290361524768099335382035731102298197029285199510665931797063255927164857150670378945291788035305765153358319252773117000284362854679564993383052268852940069717559172266694082761359038506420999503355423846240952322811380155980050559412675491049616766896965755131191086465678584953841242550698433523010607573047900649608959188991070032691434404507665319102807952981192138371468783017529118606175898884472500911598876649576200116102265477352907810131085612583085623296743760323971467355648188419274642030355781804775598192976439300740343729560114212372482723766919230561624028239506548678659956492863050557959141100210937742269836720369725714008946445814129079759705773045897997190577892622072454047187534973410994911824162263946761762835868119358336384287429731192656148319249911441095208505268829040164801156504422806568454572014734938180878130859456453154028047113747556984336252354626712250387167764509585252141512395311874119377904338406596816723355543258491999173487630467613298282306732132572525645263906289266394379667944494743537779068474324163271846349173102768754333970623977457056985520632576538077287575091305912965121743269851917188047359326782710520809280370657361971907278470034772340500803290583884933900025616820074172017226151579405746205048783875663858939761103888721580563550709075684922688726962146563944221476152215996514271791524538863267014088038992499797812126983844162687677125574081740240952646524751792153545300800551626932113359506800998063557322440535349760940425660276609612365314085114226771863192146001150807022718809368848166842702018717244857253158886341396222435332272957492151029085846757995420316555031136588846566857940266695231074561736196904641411252857730165761651572939911826686486078389888816962098924756514740955307595366229884286479214741687856657688156953809324824770913212326444125683539751149071996529277227589572106272967337964508015849969351681408396367996369823660626514450225083245018299537652417514100002262250108610974350162244869732873540375171278553990862252694825864253752018318040165432708782872433218990565042276479599432871139338458695506256239251110434825877958455149588952497274549133390024884815213299514902791839511949181309472575019056328617514028973393487247877979801089673854337834841583358121689455754228028498821690713682245595360055345666722985534054286176277500669594715218993645789100061281110861853187455410095542080362152613876263359740654128509895075657418388352256817513359670626367589764497369633393897644301832380746221106748231160864150721586976106816688499669601713062859952759644594876619980003093210065320522103056188062883470268896211722724937479062133214632143338025987364854614176190407673263129426894115567184526955625025413949964713343942402023729925898078050876167731924592331654860427931458230352119760045196587128031620977623030343209437499780852547248944240359027493473686617703691291179205097199495778911260178628941526059279036079554057025671939658724056878429356322341904491344281718936662678454574984872761675502394279751942056678821956315897542762871626723975064387354583415417223765461580550045251660059739973329189699049615696363921771764765012678161101028792493543545137049422273005995042721512657332467061534858842039895215831976595634087438221518376363997225105152520846592938297673867587601027300165658724639839255352989932496603350260092731451912718563346578348345880159258670904846945088780696860483934650417653741017567789243894423110364576330549177384455673713178685913504482875381912845635934023264262730370573585027315373662607724843314775320965969567531931466609059543402467853457024590775803974286576989320862590704537066916487236477703081724121126930453874674372579142650663240227136348176216458683776949218350855805336583937704267099313406291874889362300434377059694081654006515492030858477110131058741100054727174830288886658156186930783050028045147785034665141187236862494284615537915519189791505945743047508239311701456224622059779094670672984665595520511831478717716521831919935352568176154835876623640781432635897505708354400157558271585975878398554143952181833245083348622374241691686621455314710312155236352139365956942169578273100297482063572872847527626665522099345564064150574617411292975179546386182562238245000783139891571160287774996945262053513197325893857383194630803147158186655960767187712376295960165105757010453877154071425973537418341532019758429933782609546874508007326233705914094846332601748287556972739880865727509403409041822737499226102193294273225500133323936242712924083886478623405299068606848030639520965322019199636621385954833541972768875320752924766863226434347319281163684259574099700372344911698032161557338274436123269336433876027881919340390391574791399689525409982442577680251046884142196591761358287486432919389030207269068307299197430169870519043675303858141861578128480616478128281031822983586813827538019377733396771800228722406130932534370590851724639795148608568742891697636843882284398241794091302232720940937406531648964078590497936261338184240635671332182113222183077938848634579001925791357443420503456724278629137508848517654659611918395277859361708062209845384299282653907683415509856893472758701680595038488561659330926290146196218170741353013869803850281385509964359475747145487905258524221273606093262820870528551450056397888741206575905240095142143213276837951736418930008840915287065082844388859613249449672673742892068636676856309950408042209924091124369265316775704761422051831504567447470065303848104806475125315695698721585930111960680289845445728704347456587420331599907161503827244433192776711255222559383419481124494293893571125995388284383670404941895535295732686140054317874707310024876254250627686882073695817922932860908571301422631936241331046910753254933040225773997173592097450797717524644542214138976979166441231486383170025076786753821511804587541285294404607332921407744036941979160263259264887305585026376867066868238466670673790743940460857930072596092713960763019557465422414991201305370312309076982684529860646787547725147504061480590455353486706666948909435078963673923687019369285010136979675338788371024755360155935066309860882481242348997591781751911684935727601943019742755938371369664067102655757188462982550777743873078095162102626632405145873585796345444416119423668294168730383475723870878616456147187974870855276887544285733180018396941818811150858088319718360789005272231228271487835958712804620008253723514570686524060602659381301601084200483611974862135610895164770548532568495981034638534314475191066343974358981589866811580500006046922113755738056427909988755863328792001212359161250252213129098916825600590146189814418646080210724916597985725938615483485182928689520000145351313089447420603396465603297634710950456619802766850993532711104904875867270505156141179034143916520578017880299516762799740444930487982838793303226545968010520033147954778455875385229351405703782233996265965438764949780162811270467315876625710769078101997647009679739852318009710115029525481093634189960156765096724210759207194923744815592481787141305369786791949774081348192450317926087276680543767924707648336742216508330007828031347218058006365684109503171595235194292008769306612308992585821891724937264342635515491614633179591924013275448273157957394227668143060257852663560261586532112710950162446767486120954704756825659756481776922345060461152267958908721036046419015388861603439750179405291578270476417938091575449653015882858189081782598718736968052803248716182504762645722559929084516852370243312909919606717871349454076182838480966019679763751303664927210193526174365816701771688665771264947413412707762653066751530069650964342491766013594704909043790956809465821776900107706030500446212182737004952228968719443049075372125785037961723739483880624423366432922231228678496764083040722692358139944104519733550069894624654081684135440067606679911492889577097529895600448406095738621079692156826225029111032781660995567991194292870345680408127324281728202722259189470658518055751369365209005002702416266295482157979690355441782209471453717195200797894003832774585569697249808935923157024457200523125089760257433330491909003085692126160573216357012226668663982983767313660718286107251655208575879776114238013198335984388184797991563661806719620383508238003616925478642056688639468835937405311205725249474932685521424111263023497909731673850601417645874128971839369217452005879261334144816407757651552993918895224388133315464043770615557675951675828504325406360555060100758283722233497409353608710412089710054271126765948339656907206908073538790462451577766866019719622446225082714767341612524046995771682187852082908148540100823754176122388299628655651998765578389589314385232610121981262810245305230698098085937512324862229527893273819558644410313729706524948199838395578127776480430219714286783454487257131380056726719479832985549438681273633941668669504852134603106577902267550699531974357423096130508950481360143503711602759819581015331227823438819493257806353675075437216312586341604121954516036746679836249827068835856778459208890683685172139713247540760080101696813247799861268233471372028256738555248877193782991390281683944435769193458198712718775792158070890293234139496269346308561040617989907692039486465266640708666673685486446481174960788189103511801656328928487594094254669667232454180076606360248117495853715284219087989276952760521008898058192452865334212851555598136779777716645757385226355206707775039164896895599937714334347823828677372328906008025862343967704246456561718687462587075450834749724214913162594758559012143662555004675636446098307504349829960784512567604982179699954869156617529930054522090359450043671856621204568108272762298356821439056908539333481886956976379070444354463478107816219084816950661554187308102985572035237016535689647992101414951241090402110684129420690704121262639653467002983585289396003737048206397391280960330357073294741290651089204780853765859594058361329932994750583929323914408747282423475625956997518903382019583173939723184452820258633052661793606507191882079368542246096749174986354339993600229574647054630135880834690009545994606572233967675764173922486320671762606611944214330661525227407167840853675783677929422623044303558346778738803425839899529970326705309246171797686598454655925923639154979657146834062426050817245990092085881364962217376005061749165840773887486115850544320887605508768234401834027283759785565270565779950977334239972818123680569871225846967288755808610907001706740048989795527947511985252553589408765380494377166082759199779644497938868980941032559772522223051524893968076244574897546554917966140252592429274294841344757627323889007533445465911350694996653251102426500567938836454855617242151987936178690030642929380509254402090279727614757498347069699365220614907660948490008100440862463888350576037417053245532480504278393803064541996784121962171667214846631394899562392194539661900350380434872563308272600718034670911825650442303957702001962609801820120991230825649563902100707093844178110188361738719024431222757459247779221619097930448178568624414220643646848127351332291557060147712493208229350891713642802394157884836665103480438281847423436558188135840143186511597270474306871070620640796110907952228369878717669373208190010037330847849781551122926602388605949125445204659928080151060597121686982805639219758103516654880204008035728791662107946944921298046739839034046218890580095866785982029460211212029085895404151410833606987726717868324141593804300390502377847996569272912922474221325198722196701969554880856432877508952854797247627174777250758451888232343533307072982970563016240847511459703288949018198773722827082302445124054389706281248523997730545883772031066004319825086470315221073732921817868413902605182021043534972004998133667437007377480352342907151710734816474820442765751886189092197866816283223158722874808069939940328921316021021134387489684439123651560298751607818737468119960823125915857095015742196968798633641236365918706661306485104141555509471041256501447624649583284092162820145542262504692634123529051191775747286166203776644974194582274909538817521068663820481744538814161782675571778920740972167010064026745699484876368347176478231133992133431394595915858970009721918233761922264564973484187923362961900759657893418158618821174226645147497890603873472942972089505109350450396543220281243510918687318375860609732346024767953474090704717345554658988546271547899654214819435361008755297634446842137651311480137282067068290068037688224748834914948268462446941087415846093517107343849137774055028165342640299036762997024324084660152954881745399760598552039937614061818079421377968426187475410049061102378216314175440134272467514983985719914284079741868649072352748671491440532821143697496245459252164434209583387550204428962863115931562880331137337466721547107633032473812640443321886917374701297227107582871702516984403244585022152160942625137475715997719999118090136080012728389844223673773511404703455803921686448666497432704133417890687988525170885982558507960191590202261491272827738475443248357656374388396518226364659051298532203082413046214870385392676137529801369058610190263048166466603770899477149589655804506528585778329472709368856327560328850818924350599819586569904862568635333332085265991747116109331170679882225594843014904731601884229443714134226602007129137600648340561448571628912011128375602929414101764057694255992954945922565266593285939545323970499866656371447165001951698320952423760529186156164280220425522707416515787465917212905027850911368432078452130554299329852915321457879584474311285551182761739342787289322323991767729905516875366538818159485692251104801015833865626375822655972335366665338945223190421658139867397928902886208830204184111094061368403145281071283874297845368734230184310149040350333705421789956463662676226171859183010480739388195458476336634028693981955994553276083075597792484365621981604914136894991044772291021514657307562795427671424558702474129538982145330289501932668909770259639281428692681033205109983478043830226486458065646303172282286457644519065556538522636650012490781147360239727429196180959111018480402696270042682445724422629256779520793404736777127864883714854364715027073811335437644761812193589715595002155791217651683303306198905697270855504948840040539680404142921687763172752783408859445347450394399651563084434284352157281373927881021490470532998519284133095083583875904584648476206906652871158748972012120590713495924032493102993144082579194946440124073761974619602078751074048585844178758732310571576050834640665447954731240634539136318972047241137149796907094136380893886563599901854925146565203844831687892712575918999999907375061238810803669100934733139813677214508973744343076628108931699644860764295616091184450256123240070718874927505948990273853608262100500958950627724774842583943762017524023199375224869870494863071447816883562912271113934684807614462227628632210791487396108296212290210839909610132155200958779505606062289969141023977625594183029368761943197315965083678870350470622361194413937809910817868760998898706372832082553418491355661814765469460437377037430272205775851146216701413698905575826840303150015480322120773415706022974135062537734794106283874917295371344493767154414862398270050835260267225337385133661143152481363833020637607946701427237429476740943025034350701615019684073545920837836160992504641647113037492092101700820707693143159896248868297976385267046451078603183132719398551807743813611847503187168233157582110351328139735801188987892008215819642752573492044664240462563662326513790518481581319268455683085401405299040800480630707473046550878299284260183358174048554444475782950978794917973941265249497744239794746390931373890031722396299505324640018318087302975132499439856569982229763486018321513408124834109173228762897216074496065270068726381087927983718561219921645400633250374290048287917792184752509970371545675583834268081120545498659604831831641018361727729149102645334835896574619337393663885914799972086355586701963135683667093772902111753387682572214987191095356626438539235896320340834091738158974217581907129170703177521525359496034656438377904460105764595010683134445447399757837032246144339517288205522117704080718558638347881577087122609654565662102891034706953952413316378032936966189536040043648895865059242528668936037616507256315337801058268611457246980655033914774657163976417573594540407546537275146637829494839067353095205612543638755928312144746125532925610917553194098750522866316262448330826944054995718073556514083281175091066806024996309869427348826355169351785492212984998489416617351167709168359920468888950309196480717032540113358257880476706670253790840076385087311959247725692544551582912281641268550003761019175221991499108862700458327034730505870916190559072633311818478563675920147866211571567098714049942735445648786529006629865555154552488374121347425281728257431035974068315219740348894700552370324893342066930116916582472672502301404967935615101929975130500288657895630962829389984099024163733699916949322226489830119028043629146952086016670073388298418938238701750927997613118510901908489333071536443689540216740234376561392098746862325653215489152072777211903566279953371392881654685059917277665919669843158141621813386829173937138739057100059918907470269003004456667269196788827224759500597668911446713697564775848383264051238120297317629114636081748834178858997713779306710819544676266236193684577875016594698538988537065455847911053228838166883270609998497390299744512197389863533496926522665931030193330677694899924683448492867271946281279395589605727164332412786562364197541190679177079801532569807652027654011693607206043818643426909682330889757065117199577671706964632145354108323486979386348796356509819834392564178404629924641080897167310118769794650205650417110088982911582934108638139351355803108056534425200496865051470700288371933639677999959700264020644245614950772541356380384849561383816356018084579917047372327038778016620692652775756795698328790406899502474423250542394573825216285565753236323640122244478590343996390946676960999769889988374707451697573679975633903304829945535915877102823716136008765179058209466312533730667380513864461920248995365930657838612453602128426258236047641412026600182065807865078294958468722132060554457182740304980576975714592737881423151563292540050177190890181276232512804498827865075448268667782820433463616766072653999940588071737808657935448184095617796637652775377734480709693537843552829088298743386113413100959251484451448455330304931519292798032743017670008004477603542266567078254230131694153502553437122608621638879825208876076948915353517796036005800098703842493073971299113124327029087345104514949757068175025354284108163097044718785213003281276879835899361370504326733160245929241440633618342079610879072764322589807008123768950035794907634521341933511989883682765203661864867194299740669623249297192453609411879825503365038042139004670388260977248134730878455208882121130280192385210151306897794078205229204319874165711657284438650046373139180249375998751809658380631676026699437008150645437336554902175161505612804433166188553865681920718650256816520638343818760433909367332007304669008026883012900481934402376911295130605799960688170082515324976074302240705850998876585933650679308492046071317781332631225953967502116402675417139899326024741419757400909435218592296410654609699359909658603404582630220941354097764508416726978596164131861013118128705902518473215030451526516181317087999324646626658983991050999842504394969570426548689526415163343067920323525144785823105681650356340080203714720307741846121069842815247725427661086403543729099930380092603497271015380040125876357872608827285905034064905825123676672459369784906068810322923155992441802119793846763271161077512978389322309870224573442869858836614021831506455720660558151358490044377288190527388895669353405999033425652990653473330235213773669552893839240728885772533324229541792711944911148995018930907788004415612206859475141250101369475303573789136354128229212839468945921036747313664646223230685834824763577543528356365771029407524597171270650320979951284358733009677412538709045258411985987097821788149623128744234286284046405389269110498551543374725720894342064637915589821108190014785853259280624344096488535713366021986997768021757423432084886070725761052271114884996079251328135296049433728668196348698591667545356748075787622626096478107161628902378059974022139434454339855216735319231488802884391289351121993612360310599022747958891658252186312401272925938295138632095704178595654471581049706042598893665547579644106581441311716018908363693850572475678903996575370866593435598513535904128979081435142543152351841419428840708716387101045308510673472755538863981108837058817745290431822768202374015396453973313193240863958336661720750365024504802606979079959108070868862886261007927874898821514679630057377614804485487349905048710487860925025692984586162318641385961096359093172533364281089218821933515468163713627339212487769340451612087937182450938383581761058120215519317683955789462797647297472955476078694282916949409519339214495170864540547856738825432173323459768981975412781527981645671053410155030631682394366227354053663401505361294562924445708655101195293585922203480313178009958719523485472193297609997338584296919134452249405327096506082995878338452484770839739436890717914191398505740173857510988810842381862621096224687278587427531042981436387349587798971859461535718248091709999002098052822514688436132240335813814644393111696185631781680297647292025548315676106175652845355461643886048019495374104957056399397552398703198337296089514380427423713933269411895501130805813774188989629033102663235809830844127344952650280666534315342666499222486559791189407933729597463163320045392605089871760755457218785854433732342383381836382588646603902524588436350963185830188553825834018179190581400275330331725837170406326088258685764655090575127258673515081619191014276678934565518649002647283040579092075080717729591802971677583761515610350316389925245227779289815445009953894949607222319986660729444744072774503506000935861251784956962844272902241600364216511675815816142795672787986281738786840617462342408556732496656603266551267441690593075963662937513004934325350074312262771299629295258146516450915980078545515422397377451544794978713954455826162969578992971928930502877209260568900134876641253067751640821543281114596728707799312336438441825615937849153499589947111807181869407187798285611329539972736879986991436208208756568495265779056930374798939902834877064773180625918915169141243155603548054695159990221418069856676736448511861118464840318334416786925683459158514438452170659624492992135732272285705090505439840307615709518350564195541634079969285630128042457396611597300615881224932254818288076408619437422743405775011849742639624636173161957738338379059810856899433326663309682616552341881345321624378816913684488817274054533314564193919420408592060496401901884864604622358152696461801811627221804196719117478168463074314699013208767738573182852561065421330950168220463199268755938000264345723827137673409179401703135545494743388107767304172954330794204185206203648393838295840920414930685897749486999718195100685855913660084126815417638013363447899188538511964454298394463629961866433371040121584210193814928579161810547459809780787844107639672791458277308901156802971405482270244322105072872443112106869321513460325456818901583570855924506898136740111149523076355278436774664080112924215945632678577476190271437589806735122288352043718483050210553909738140448944642414092239235215460078242150140943620952483903916804528361537679057936189516088050179065261714732829995298338384613735955921060748984193738255252328142922007207994491814750957216199430831712147071356305550885604155206618578829937991941190687399629425747491633651647620997391413997350956602573396351706926087680593578657392437607926187488103978911886542816457482392218777402493063009455229966560525174490135797338996457720986858417489116094697983814022928535606539652163461181851335586206575214338967371373227083757653050242431531257144837103899827708555208980013830575772012013145161243421063433432281184732352869671170025912518239600127158980236334844761524616938182258103684990499489794339403537163746166005866001134306361989018412120940394925945129809205444114790284184412371624195995040566553906985331829168126908921756612939551092665979378569627038764707734946882103984982214071863304833266775952445098157460045067421703121991678470278587909366499818440349369404902070460377895262530418230442032554501277190906105977137702751753318632956063931307373010058791218074613170880080189171013718547584070170329791096585877868030428977303124446580013056772501797184551322839040606668675814887249764967525380355650164270221787442329765770008335374085985915457138301195797804523468385757102397710288412789661512770899820359369233985468677912766879264794998566548624173078045000526519819186595224925321579028653421576444095243468385994494537423467009870376224701814924011544951447992684389143858736751410913370877052859944628453783366665883682281691011798726605129435404554229639693523759656702808170197744170783952603492204866297299506409393907286457207943535277867844315883506426536446666454500922117799718657079315070563330990250983751537209563386752642572689304919681044428877734749053973447832782156306107825669659988131657033737531187911966050559303506431539219770928352476146717251257787499661146156805411289166099525310573620920432889746103418194354166027199675278207014571090016687839621187832806253027723917533518804531917741621455249602302223670291454570790206685422351515590483907186272437152406369080601344411365171176706363520413966057774833357586245135009644113898414381370070223050577216071378364033438755943377308992436135415223030550766734174542848190725699569562103235001120712305809919014030323396177146485279403458512069384611399128338945967923943721921293019272904715478019328022271697993861589792308317024711195602312998779856280966353793226380810233770712110053671520251471124909488311878468090386934070466405276062743564492014942548025485043542827053502020791806158671275155231288237978539281801177442005309896555199834903475065888672721277353050288717893600831097060997576549266298823558836813359161699173446371004332118006186464283725021458925023449565643789053035315718380633689088727904792258904448078125918816388231033176058263936634913217795468344483165584012270741154327124977059240084981260337221159164663258563720422318784067209551792523305040825686862901277705312351809513735802103148419414813079171282608521828511548094472825604596698506888713367188394522584021190320662520944207644294007633545771201591520561852706163990111298920688315905900788178835752065154423077745864710255681968357225397943693788577806887198410243593512198041057297076376270422343352062748793613518643650699898317095353609636634873887599703929624211688886666206046141448961629769023027254956656671837270946080583418227345314942261076917569755351825518537993953630353291348775170241596297224233064469839031090070731531006294641874375228050537347650541533892276020636998040158709779020349288111144391482707915297932480837557269281073041922264505374394815751999427019665535155921733508334743887608068737986944861673188695710128926690963429349610701344420743234764827776185070875915985535643801132338015044858446789362815993260175448309545750415019577021588749506975173712452117931655240455014325740029789972741979370508521599950196099347893355355734956504044117971452156343558233360185136502091568470959594333894615521576132716076328106125316238948165993250910123941654280093863237642615056824083488974859630114682041708406565332224798518500080708823986491270369010018467645941308324509119857119450608102396585912013090839234776695389113880022204258122771655128576175566830511140537755036728910585870002944566276771137395426027736559378881669521875688876925115251839844656429564127654639541394164328205535623493481472800641198447849845680895459536217960096208171100005256501851810492022613786726979121893481237492056959768063440004053597723202544958355804751116470190868442119593417455520411016874098660691409914446076546307218788620636681019542254095995707158276907493149282724471444418355174898265688021164600390948193770292056058038248141602722279634962285560336879966241598551033061314604343241918671634327382268595982957846117325749693462072591115946302603909787423743310879010734098425988546578050884250034229967169072996444268833374326535140885931247095509839711624824695401251502457513406023600162973633346454619069403977755293499374822872339297130565620010695550157271598360792937655585088493072562578742848860387839080100753628705477116371667180205244463594743821461537067236004435211214345287988561204583476484804400751569617284438947804935743812590314085979197599269253685444872549167100862267893396501868732786805930485424835593743711218697296077836750560262837263938674840183157953077393757231843121648654310749445013189740214060892743392836258747601252325447259192384106381403739250788106470886198688949376504287709440310425549451315727588720116263460559194710694176589146373496255243357317428002509091121376099893441624839741588170549810942886213702239916415746576734305377810800692899530999780981877016776510386029938980963112363387355192364141987862898008604340873122581057644327040946219790442383333160186084496101770282008420331283949213846689610872549591925902970055401350594718694262147247895057311931722872466452955297033936755616174823875302252376140206938641742392894731241216208966250503605977704663560368173340953435464470728798398396247641103117095362440701793655690353122163726586840540488015229109361052842263289668446630237504376018549338335005885622702882986511430565878728778723228313393035814950250495339800496629581649496297914328332882082050051410035395767479540964900644380097379005401805349407315669080054326516876754391697463517786416117180606397770351582436604460713310434348162135088113742053133041078041160950146031509955437937699812611608235033550701976386010056184676411968338512416088615448705235760084713883435486196721102722316901372505728179540200838439077976004651364638336982246893204902704919093956242881344261307082413437405889445783886775668785481037514586217133204960258638070203984137823972058582365045284064317589320902245922653465335009669971727692720029605905153443930514246892953610587042401359965345940955597336638272956361362701927330827903261190779162594561023873965740333710376020292085522706036849534801237988628762713690980990772619599717931702012204105752154004321619884583008147535222696088716365741058235914745930474013141821373356220276330398834608562830951718937729067441247029750177608147127713559667007132691285961632486475453679953264099943759945527346696694012089487601895001054623018628617047097785119680750115854886150988416463731700466437541904814373220471912633121879821746731860379024771555262446569441054955329363051908288840612008128339496292014762606470670609646076140148895993628874496847942977224308961190655906471480203773160059155439068462369642742186728729203697869580236049160456751298860205769231117789976143736385260614924097402697903329944529428761627210925746041362518637532058931725378394794843389979637779148360436622410548808627395475563146181483022632413451668000213712114576846480003761200617549629371877507995928320995983691157260202051201937676129369425159958570432935743061237866048988294443328674467778205535818714128137947741196736687108202638723808163455056440147723975482294225573250574243411691283438277055383575759345474809049816826872783648866497425995430198603538549144117570927075681801455088491882753353568503807611931747154668256766574840807812726398143525546100063722308079849666764774489370267013803232708385595273137014051540094387258912764915253973426008954310691861696245353475893226188778465772020447094185270418223380878638277932747864391491691523954637599524155813662826139699386425399248209301168655910485951048192307946833043131459113040145392734022883348354770110651546496096307104576150847694672269442765735535202084432492262052288333128951529625811165424829508911752129052316296924503866259309343321826800703825395380781220986905748891801676761940657982247307292632719918969335180342339820022151210763103581502182744544075327237442166662151791713067268761992088242042211089453738674979174838875945530511198875841706591578381320322773183436842213541189076321782418175110866613873120897709810606011085679392439203167509634409023791166908229645948386170622307556548957685469887112674744046855374829789358537136460506626367974553017228712668869517972475808967452784898672928203470584665247071176964040450151317757828176948239236228020024659398126749187105369538019114292296572832675890265170079631659226316064288618271212484674256163985859106858554188950442803996033823285785353688335728090040347842807922988056116173172263171695668097613873088761058224922366957119741616909012804062067610943616347289717419830014282197886708517027882037751837760251758847325629308335326592080021919854310989789315842536094283042181552483546246477442002965850287367511100127586153270636588174417954584710238225117275863645046741391695268934936095902809440457161046549010469246373191876755442125359520014263112312685700003120874513784637632888702275904884760626287378121982596915445625337068518795017950965270178922438362116844269207026694379777831631974037969490372573789137277721878642468584778115887531033638073123621884347195995821949923652359848466604880601625352639444434678515627949565401602008072534835478234309839323445961504678048206315312742081421565636178067170898374975045626951572625484357093161240447070668758323234719540146220476833019743638098613466114811096076278326794320097785469046481137922925825329782695685032638783907194526205340580826056420717868475737634540860819601287198846761631805092104085385812019237744133443324051749220973544705289439861864611214622741276500506600205424340765449348765271864115299293304186553838160162123435108191860068596526331858734000842516257345074844319941764072462326437030942970983800043023534349235357065646793222631616714143878812106157434139775826531783914660057031434946910273563229997082245826097936408780754664701069035341760249901477802103761537858450969828849599216001572699189196315478534443250711062052231821212183713103764867343093137901830612081463752961841771708967760589992748423403275357916088812693486296933355677323023596782728268937380795974076130428163736203241701744265589183276599082047624903352617781937153616921792584452955997293951629761135854338513970215765193829318993688693388490544818249225114144690914825842410922981011350904686978680147769137507959955498164559080317231956182320545672239919132601211001229101886181716889406534212699642155140322165398399753756014440116003185859487376703253218929694582181683900001160168619566178435668525238798666381974790473730764072573083379654476920911092276445055478507113087838602838749645363249713268148958847260137522815423515540756887069509624688075768520196678139992621489625794884050590874910891913081914595134334597047706652351521903146684526310178615766093783090359654120428512713129677724697229965746717291740062188740735665406091115494591909314653401922187500873795802956180619898896676919095396219074239330728816751749132589936546022861470328157280717418336059814760573880702481266232900442722942415147210165099970996359576212835579764166005722971073088549614527347441792326428857503176924391312137914567988694524206804629682363598136507858279006730103934103232125385137917330162430146371086780548316891644461300211215406798133603019049782369089161737500975740788734740700827518152702820168458909610965469308275262393636674915641859708093260934275376543925151458096319032325105450412181410518701206405619938055738783550473645600711152390238222657141636001287433907525786581601673957878727534314434101598706430101890225642321725335358426589190772573712112982200295523861861864451665218461849759573226108167817590429312826596032975036009151848073073711378260293977137611083435901323493390499921946497046932107632434927894800942575080153613244798378558189370649274604450061268086933914763821084344314830890512980608941063929400026534931937729531331462486658341901531106582524867699754677918137511834910884721160488318682653481676198000710816440761927613714289259124869461483298836738703060928421029500292593313583246100976981400539876591683417639952697516518581454146549247978334733375835545397150614098882252464052212636080597062178980872041227120761194267209493973938492917070526749852179442497485452895695823395216534069641737887335280561048180543613966969941173350027670078931939860465695106988380255317530071593044214836060404276645131824780110825235282674750901323562637402241102407540116923181972162866868725211512462849104835317640896672862606467549709948831376885513348656708266469685552020071363922646581585866163842353750258724238753093031336343710253214282372378599825960216102568048137405302270831172782210986586275657016856612687920682769279942772969383986602688040382132157379289054885199870209125431765855081976130167816078884340689177985013064652477545598249793308324858961884454341794920456802144684755318621945462602118052915912158356041513050326615901226687509473960493516613884975436981726075428638474296641847593065156005506393016259647553475757182799159656856187448446919971150962665771877830459595046997008348574016328305825355677148624564588733833029933621998026215895731130534872811004707726870644839249847002164687714661445906725537723423741232831990638099270882055074804461002517913207489754596456207170216270086396990782564421796046734270090404580556288047000111674667642159643559527398577115249440746079612519366474015698462212643938677426549225115415327761155011451796017855842798957990947165198013339468808860309365736799464107220965642710199834641447385147450018346331352480268257450788404583158088101015450392503983247529466359274443526298740984313750981383090696239546686597133839683557332763445938103101663671397071340170835383804210159315446452229309602109188139342964003868898861117947497612242774284005336268928291245093774401127007426251033180678074099003504268775778618492662106905548590655207981285970649377143002157483737166671720859205353338267563172205122813036102152668539715427678714212622511832858915683083618260752905456465751016451355664561033391143025973125168872195923550733226936342176286390626407188281658411040516730877434810411828874647135997665554299351617562689285898581212076435154274741230041262547581906731554733062163985044303736785879102085867638061915984487104795498953495532501293768971438055743133139413645155309576075331190862818882048929277242469532666054648889196758276663775641310307055479677693704021715571942451349151448418192378467534060828390656534439400622259539161256701041763721084818024050502951056821298061454561932419829173920975321306892304809336947445548111960412438178615812764269632713595845276448323238587798102234151107287768184456962466324700475215210494829579013560537408469630102786340367640149955549667421372105680438779830374854140622851245237303048335865276605981326608051052946484042952694866270473460297144652808403649430861939196807869694252299503082104834349962860901315844536169844405750878014687643416477071412997069342204817766797302495898560120289371759663062020109189068276963164694158399303182996571233221942588482386511385161996645348467602642005300854874010675898809481639327240747367807736567145393791992083036077202789602472164720936708224421486077345220790881120901028913113117265140418772311077473770152376534925064339062208518201715939059822324553316700574452623936708221433481692949780006986715823810208835749461590432118447734815160602664563455932615916007795861053090222022804699707973521933249308433925639053453563469942785734919766931114052039278980825661229289927810304554277074265325508126645201445153334179319765783241269809607341871588456236067748293534787995943992960991519908978621270188547422429000747695316587489787011581960922053566363801998468786185023041253362976927650807017045854388255275865684045177667752114125711110701111077518810857650832688608953416684773693009474077384555724245999475793249763393548038405946890965177630172558570019896919167977838674578632328836490144207766410389494781008977838132868035919469719930015517705114224302379735400184486988435891668099980774412191696454735274374409646241240892383613234116277880037272290333720766945339786117829542786801774266790693728494859026900151152509824115874617701066154954438104858888057206285768046274248099594714562502241665828478465507268489640612345989996290279979758666211461994349681518100142693137718096292816332533477577679814100099656716287054832532257408977106720982182876528600704833513903008165489175697485654870004447694485089103311428060189492286763330692098571681725875695923111672991550080035120976401989450899234690873123844165735526548582966611410705732430551063589326515881639031854861709005852905463176567864568144095918405941398240552805858534245710764764516665118896180494775898429413520757942191000305429312561482823916457622475608565812955341365184771321939883692420514966113040421449273877371584182051936137844096507144244663764381193547489296118845107848565116797846924227059828420767363628566839503577203276644166861224943052453421629133245497611752368975739920661074718095497183639788547182455633370906091012365831408972403941787265202364695321539085902434341749268365670784155394953096396424958909620317766085385934670332389658252132498013122341502050865703446850545221114494390454386167741328148604979699002186250586901943401393848267619440801698164981044029923872669199585685886654363577898508264543174381895647541275663264839370305264070679670780372202474782669003245729901389316458289334380487095629722479680468924441768615903624896636192241614201757144534420177424165884706481751452116722332405975769783802578000684948091681808668912660907568624736877961743851179941172845592891840106091921774772957650230522938457915420563617962325410649755762349855054334917981262943076225242203822494798110033545200072944110914959517785263361261560975505693118213755820095875972844731382729004241496166246089374151598912196515401979158108493683168834000074560384817854677968384182323575004682433952605582662456189942981968730414781121621310121962932840957107003214172282854519690895727598032814963002732978488958836118804568763902007915815222852199186018921117477543257682397031094674702588393565532134894383385243754887598228752142752344170182880951364140340667921444545329832480890992698464173054050384548200718559732274948752459847038595547520987710259029302092295195464797094228969019463326192964056603693680118894038814290930774642333338541215617176771429467982153191437432838194858279537630993487905161848163037938065350197842761493268837800210221528633504880091071877172116697045450689105053525480836034640900888891642685262339976070946982975160393326786809708629685750355290912695654718173766426824399136969231019582767818226981855019545585144918609196035202878738175466357343841580975011673985519885064018703730997256732200635461164837635915053007107649747741294349607122408542712567153459331969716779834236558294650393676560002420699980319261926642330396523328968680237604029061510434889329959455873656325037246215759095543649307341419046847035600037679575904406232837915170920060546840120334474618946602049469869533193202166196859807358337211620525477562642480607852014874764867338080056419034694827260369882453603517856368533399341280911631546448387557910028173665362205110207358745579397262635079109081267096200632079888701265436448328730527191963974064133218768284875118887049235679230646023462015363519429704733922088338401559333787523946978883481958883118544275436694807695404415382098458288171629680600491281494039338356610509688535317696595867064065348869919000926011894201842040365425097346681840455997089809112119729118121171513019613968598632021613576192361954195673934067751152952921183768451820977482814328985150045615370289267648535591238419877216878251308080778221664235133589911928892537798181301924326899456391852234725630614293591016678024209749299286659964171246142533374742217376697312040921688069239574441113211682649725519889164558795439311486836162389503525244589504885959336865339218192942013064435365429861234800734556048145163254247544995853730202717749749804254046166250859260012076420730050589528519909692887362601895132866909645991572466319257725204573893781319151426024573254718330579956429717678495285387924231435901430521337390872947362062072752815694231897614734849967538165477812437755234042159213603405193576520301421597094527338059183539021663575408355972112720314179457474719113175201207351698969443041484378555137345780505698689322473617191518499802798457744915518414691830086511176878843237638825492623090647895490135932814351149740484149374958343046210385702361770462549005032933686393888579409202116704387690980307036749815315306760085682163518756324391290248055879231876211828865249079343151875028718217323553859040796436716840092796947348534958336186789831685796140491721615698458838042745081410653990763001367655547462233510785626387527103583655689649801418595193479921893394037460500732252919743789674156003973646283287916922243627903534781013254231870740860845121815965213643129874739586050613722339178983054429827251822516701740792404257305626964947957108706913157635668511181850535932105170037671819547313041234937276623974390888259459032426772497510781768341978513733285132472631397434120222766270755171506820679765641809087320516915149049144404225504562008278831894170871469237066659651525151350454072407919914287079079405917016982084795549855050358889236294580548972433812445540578164939072188799764836500207179831342331276318210334292149142459715484785319772781088095537130583439448319417057055328644063808797612172597325942267182179672666906368037563305281236851891375958627084360273026227218131883695350156678399240702874924086912089491192350699716634066219631703131610386569122113851416294884183047530156576332069840007302344343806080547744150676797168204647140469138537568976014174578246633118166356148390593323761227707880084179993297053638627083503916062236491797172017906066123531332702774425651366816531146086167063257967717228793905144241278462276519152456471195460541091486309043579354868210073290642152547687114223924918340660680243363348311893458675825509784864394916902356882178084993687914907284072881982177503552663225257148691578843516876344004780478356648926712903034734849604931462664521839808209086644480099313740726137615798461242973195507288864146270194905957849939043824237717268716368346936160206424611959548984668224939832126894406650357748689262574057789035619794539478548649079460908441181801077883056301953655683926509441374612698641303724720445503675672039119620228818756619263111486888160984670769973758492431217004089428230431996014103146886261958521852452135514407639755401069285961955462373935584502710037982690200745894456030898713753296353563684437597397850116177552804214202448895521480268588792261008383406685104494737170266064147712227896646733550544247760623666196416335265984785847418728491609482614745419833144102415517328240179859422702879029806214899575889067899103539185662650640143244203583939376143285251436969038459517373351663410856139088896189308762580966709192373614027234239267087625631098244390998681083445650360734749056389961842812705217335715430494179057457554976814767688787665808861916211144388686778650779718468724049940761795840669692001314214315185437650024825465610748798067787629909322814173195108168303007878106357274019535691760169932546024788840622482417725311267855077642060617677608746957330718480611112392521685026701834070701147898278839283867669530299153089398157915529008774929704751490683379401784397210925759770604697424936971386647153387504436801582862682234968650260486347410607195214783948911336062472108999861426555108468283434225054625484370493807334068623991757523364319085840131044462969972595614517903761281057256792568160323096194372819402195865216106164384368510884068642214985860601942026305898659298589151712434404635226763126643509555319891369892760044997875066354980160387188777280576804701366306872842014309810798595090927414077961734858536296503519092281822687275020687439003575751075438079975849474248229819761554874820306209087730016941107767981002389294304460388602999537419081550292826933663993427485544162191854495153648500978216102240884344497085785167479400765706103569497610896648423892483843625665462283838715281533024633317994396519273102921415936390379491167637478295674702296630020250671662050571339364744646291645080475230281780174957416380130358215665792247817789372709441824792427644670018267202783189389128649912273929663771459783495242609893409758174475568201649532153026959547241188267182105461976824241790110505729799838485059886164843541887073881115101939829195001833530400110404346150183786730848536622465230168825076598578461112986356561024649670984266820160295018925345592088739640566945528945297326420506840065429852976893536884323608849089853610640715861360696606888488814163818680762111580850727476301111556555387112001544807626361348399980678780069847573497391417760978540584769359716309115634284965659826850950035510873346453849124574070403162734732994813996641314551014487130874079397465292605226406278541625884965680676486492088765480964446748597555729045540212627986443712520285312329771017149504022824795030462467686818652067272924406501445442507464555537952680682337384311012284724370606131645077880173958540094302588944959182807360320103676991642299609458349182158183606653911856132649077131098127150359840140462674661371636231876336030784498125832948158457113970597484908901247368200320624024333610535362033973844913489423193802799225326309821036252549282657855412635141731163259100888848251313435845193931345429400177491862581974001545190803974056551128797827942931881653257628744049932640653237919413149240116079327398073471212951856594311742867468828550031407026906462423767483602228798373998289017808009532275865257703168194044765083776115266963768360844973196488737004212777950919635720264975180417565568061544466562729904186857455490028027781481867312074028732044226084217944929032081955339447245480785677510860405097938436481218883948918702992661357786130632572993860780009813717642926477232494108181163616556481613224896941219772590755554661583399308292795479119225398692039364006418017878525243710106543317954335954592595380569985913403754094544210230910582917590786951355828425891267615233761598634478501132276393396105902917702923651896090155425405760082905969396758344660733825262621274025479964089492779401816266364732827691399678059182795187798160884402838326677491214258593588069942500519306100058196809194443344840447029029257476563264757550609282450047209311945921389031521153607689350744182348120898887980097382143984205535007018395078208150850011040114519397597969310170300124786749107286064820955241994664895252197904019625817367464023927338446768153057597690701025162401536358062707083265778765956568655289789525288205512679932344270287139543683730914680339936291215332478292841607899257463004334733746072863816737818024398445243091574688619503024233714002118611203406612934958862100131522598121381054656453780102865904142385025100204509961679398525187729751782673005690106250745895472872389570748216168935529291089268691441212836376953823322587242729990197521593543675728217945453824488028710749942531539011981090154724232376352633886020695595804027857710374072550287857099649994012591366400437835416545391877843319413884583280872664642829607561226892607109042668471204592231491197075000687126135505157352911441788707996515349179892994860738902780783603836595116161383610988013175549412123456267152256039030437000625584335314763726275629983593681451693895336844941247568831497951362368138899128087321428512440381922206775209841303217920199568774057421280477343535940421378745386063715555182328258248242591706042835546012802470930107014966299710047172158898469065830508511117664882262788913560697865375898104126282678021522613798298571947436900146018513656732028404380997460967185790548709364857442162652294134111289849579190128561438646809517480647172136272724641707897856218950268015533104177961342102221315404545393506541777270274031694811396815410135668168236853081522624367493236804096408315739729617037663794985235229091246135168024421608616761658614606054777674076821242836821569572073656603130333985168369975752210633905045946757120300426367219777988778080338168676953877682639874824299590284597107001987948625255321551168055386660729018239003875086812363696281868325116755754161487221875223139749081782630961079845195172375835081790891044622627097944695107655287401862570366893248119113051517282825579438682489930043314558193362975954172915394398202990815232335405839594030698592960591688230838655074030492503046018593975581825749511248892448362534599301310341156337410503118754153527880390880534321289958415744688487081093960429427458544385573839082564797541151849121863648519087341192452821000837598634141731232098443425847513909480748015655848002399611590182279458265418638789603552854934657131377571025122478233229620526595744608146591793336037404232050054818784272652678866090985474985723475055352286023112869164712782373260110899620727588964743663901604965957200368435290665515434537528172784566907969250673226923158762677411789541175229455274575964098638801980710227028993358073415417571582390239325122134891090004600414740477159895310467142421723845630508675540600901029417234734491520614989947926840569401040069322656462573108125941195282159181388525744639414148337104435927225811696046973144838426784482184303277147349254054451417942878088448257793884519382809911963041523860669920098087638956200975132408532710613156454788445724199641435643225936343076506622168443262772646536103071251529207534339245875199643567311221860072877303334918211695422941233057044524613664091315383094759284004323148170345605821081842957771411749954336110203507688319803073713177926129457830743223230588424270333598455747281568400133863978162119668950484385271920781259672006640622858540214174718863459821211656362012209653379825430004509446449899290636451721024225642023111049861770063331765380792811694305013034699238022823172131751686703652897556787218708366501696422511356373283143440784551580066249923762924633922292188387365645431233421075942865905140159418089948854750420590683428253259900303874094221205498122873620977476315135498637534063421587453518106154649590672052165559549743893232686785532607698455905178075167110077499162917783410466384125884712376255990855637567950952248033828189146239731472501275923213932428677926869470308118226925476008216729327347176565048634630664057170188660240571587583446580950628316446584184646777489096158266783715404620010225768207829564731492561683674653489845839158413129251522529758107663150788600969687250239598867080777139095895778802664739868954989540385195734436850654565580973754065156606967877692715051182607930722978829570921639045379780000942989217109007505683938322719657895082887942649711698449693110132495873717082625343382517253372872057530946354224287287529858182049828815710914725062846303181028756162990372638948057908204397339546232116918631471802935311340591264630367273491118187946945892009472990352677246903352232586784455255302546192384331293698666703513234618858363839137573554769757291131321854097515714087852814440430281758399305129597696199183146869436777851437247341039609886727761895100408133117307264381161339950301792345072457266134372377206152301765964246079091377459083365465298264011669660328470049844840859837914884691669215677567742818155239563419992924605184552693697248625303205898590749428531342276626228516712715718859676179046198664177536184703691929450896389054099213924860095533460894754574754621622797625220788883881889201930951105277377269137373111622090591111153379248211751899896392450547034731248803946277493724799839002717134967572490701454688715230414044228364988102745118349452806239408974047745548321995034323805356044634594751638402117636670014370491385087646548510295457113905044533861162125467581925866138096863271511871442897660085056369214710249960599194799526423749650640599043558640628083022601847367223843638714259421660957775116060747650929842510652202614783433892217166693607392383401872964280998113530456704647920590685625364347128249905276336725236444941612718180981956336778458098063274535674470375151135304313644006262055943149569579324477305004979194332098849689700841188005967653135413966634649936131869238029042373354964377458834263334855617888888047987863246415925306020674281753187061063505386583650941826915229601185119948259432237273057456651899559486967685162182709723491244773134090588263682910467916760777521725494456815976101667700869664286786691386701215869048893755184790780051288017298239485753793669563230325549240610385101955316940641706968832304147719251708193668704597983344614876385512095280172831302959286975964473292966204489943977779147826412863808133792022223788713539869435614260366723938399098330053257485268748716698728528897440838802272462975394562550298521658817558043404293424788948655090502820267525811907273609352031106290221355262039064466163116829637269739444906031987438673911638730671577594874000267967447200740779623285510433477758047042424573133169750604447354824051960023322023946859122836727490070284718942476238673452761871300107254230944296752857398242271244074895832518260580307594879254507892628501679720060974527574435940563440343126132562426636897156697236039128559227986724801066618241396532916453431445204825887018979507988768748790211667046486276320384739174748607887001085232496273284204804714256431295914092152768296119274161397073355019618369857294645112506611410375514937864258346118518810198433065511983922171296939611163199292701790373567261570185682491527042051543267151523189191361704561863682673699045726270985548273349131206958657966153387117409413963319891844107803546293534702414542112940807634667007394925721403077808258956037373010393077228093234289001367643923397099527541903051244006956953789344830220641203862204523908607649079280073300068066635566829410081533423823454049998742041315268849695850270182431739534019727997977870849182399892879540304184493002164552361619357470814519020098216653381839047422628508033690978125121827461123449524971736423606721189309132631124868536550911680042738298704295921631447043232811878880115477469650817015701326844719066717315178418049913938337879123251703164442692750542029701776827868862579679715141996837130582511217943731527204444636559144261290620356850718471269391781001599720170166355112836499479555813896368592613266448963894245601477193365049761586094686569143612575832592087232021414752479986126853580708193547119676258979001174546306863701659186157604124812181268465696975056778955901574703112317669998012947834430242466862087560122540707109533231231304338301928729815762232410828249190096217621850140672481132353528647622277506845658978581671261636506692598669948421796243943017377780681906788182579293383618210500403898023316029927447930973574876740288820719803990019059386019668225282331078028531986530312780717319423427443687429768388191849109919472354656057959732718143765248601476060515834476979864581135783127301851321409622959437028362990242568383718393050820938694385012529266261556284508812186402475853783122682114025133251384301157812851195773123772047881218754060127058511087897123104191306179115904984453035693298051835929439073648144192077022251756702880124895569515550217041439629605014111408617062676142622902766010738372501603880860625848087105002969454301317033365339385631080180118783045841831587155361226047816819654731580863567350308039318703786639647658411858518192293480402129821250813865049241464479356696867513424797165951522057021762307573602968351530928105310740048643604836586828129961553027990702676021216808921243277194934749405011268662039632274835163035817218858042405058155841218006500132338410271899871515834366144059949518921480549871427555276830617793202087418409695820726999002692419469039475331824605123640349714853453247357214924072696489837376794555410940161422191735982435827678109082322322850429545731912882890222964387037696757254339738001187238874068755431775575061683665601253739213066185535074995435842319238417725865143065978802627256257542982155610739353455905510720946254239867010480674081262064731149529855139609808350678831959789919296403226576043961152918641216185781222294092979094587880407299780412930836787233103233583644492747091288931760949326265004232952086417046613383404789068186135942987306225274185874787334284629887225668159583371310908441067796521018601603465431410305404870505957816948560903767895934774090830699089135512676284379244316934624149681936508981596047622335299595194043749330280164154663027147042052985217665779812879819929108143013234147884867235976506956765315179373820738405310266409153634566383500243242453456907860641719384434184124378543968917944943569683032067961351767655980824256949267931436588789257271602990071561459066348612721426880121253115894589242229996141610422827096397301830933416851557318927687767550109503817481245098592825243466386259507355047306939342851641402553230627027784780444194174507077600680201591674152832711963849939921509705479333679374478710986231839743615380819382904656411012473546525415864755478899812700389032372750560195783987180428671076130283354569583406498905984000112356537695707308907201142601350252799427692513444511026037129250396858027635953903376522479750541103372847325461238893600849582939663838296473052040084330060606898051805816175526371387602178084122170750472314186171211671740057309324094868260989898783339579258814686686878070987496448859081913295023361393484724137374872746293250018871233427074088647746378232111565085820683174197443054797950582496131227908220867380603631510892588368919850183065060061172917208312899833819610041906538129265485640535168296518157351157375310636021898785445433618117278573024915160286092774097971956602795303314589669575972297515063827850589774459904699630715575524173529860993182922499401193956991022751098783751790096622031496988951687307820055035141479567765725811543388056576656532681592676449301231206157251954760657029989331388065211114528165449308819254138174020624722669576342683665776858269052394041847436158608317009986924855248352672029921079453252237723605737382551891857905501430438809192925714135393372207303846702750430382589475464481618287916346706677534174052224451142968200907636396517958870907040585880561783393665093407394483373489556377740249790068338901191648577842081922934510694835918953220178410599873501237375711743388885976427353518586510548522720418869881057448886248944686321394906308851859227232272317043896995980887333986278332765787352193830962075893810561165067373821730640352332744701132660893680705133249146930799094763173087695426611682800164527632630529321385290699360462717160461474703705271299917392930508748738875419149571785503470828959180415531160346986613919793713522518756963937755625988294391224441311328416529180668477476342032706863450673234655564769519340987708028935919613110142892113586640094461063031382453571707837593987497391898050094733495088788212774880015355416273268200678935947422429698036691345894096006644823832512672865349295839062535242804020732313699365438098327734299222229870585066896022209882162875350379220162587777328038660864536532091872752909304476786744018079212784641747564241108577781288973036934818411210804418911589857085703386612573544070836239934909129416425310250061770150467243772169637484326653191796320035673491804870676497566012579278536945998966936228941127540456249148697330254696743743586646741020661099512907199882485744656160057942963136533844361981307280155352614899595132377114085205616848638477547284952137931058985609288163268737153248200631879119862981847456652212303362031263688772911589266233995390243493001678484387234707320560045747037524652745046761066953786863961996748645574609669246264607852761417585565767959096968853111535307617342825072852881421566535098778790849860570601720066233898237542456364858784112757595768034820964972981750404947105335492351347468402775465383775956892918389759289146232850627902548010749268211597580148155075074151085302179727489129064829077367814505383048067410603877220469864912163539815612107301607996057640288102463152042494653652529124388837071823130135044181089093302513007184809304456267554760064305485988036572247950829278000973136830961488856508008851210431424320925249886053341399803901232499142607710248836280246906844906774114750946307027303068992871042030169445333134738560628647158500738208949244344486579118899895955806699175403707704279684277949631724029103154483678928252463040532359407529845967848384965131451446142083109564576613695756541683463230811266454177799734650502854226690122684934552300238653842563216886084186871356792617700816811723320605245840782138301448090516421427329577248415607613325607510721886418044683920792103338750045020584492317980068446659856285299227941500339670916420184001859472851912963734886439799243571013368478311825994421594511054505386694736741536644863509754404908067512463881976486897161640461130427253494416186356437710358946153836012958123542929510348270551427597354612422678185934382584562627797575944808523568345506134611131972432941661127704240895520930012153813555939662269662034483672873625792194474574233148187502224145033522468246117597472912230357167784246388413313019938014510771613615696218822993836039448545559467837575950155925896115654791192997246687700589262733865993416694753849213775811569931662792942594313703698343541673097180538817230589092119036504393046770274082398593768291895433951257545304413977976621838619293491777566524281607649770198868360745915959450787682809864079419292766013432074666875712066886287948288521305192087250989654437517037333966704435473830065869165524318514220581783404026233113465526313765345797878872909513299673278091038428310302991148789030655928076651923581227808604000053961411549634276105582499303139237812138361511958978103671326219669039491544148519922115211910271884151041606837289693884974536534821658605103033983895217301806067169520182415963508790446306657237830722393642689952546332425888195339836115265399725185955920138397285998378393012689711620040473653642897044152865547653757568309651669027227997207634596215631545647409376167700402244508709934053051246316770067246013532071407776704596354398715803207328713696269604404466989224439837618588676898796996635577865336471505269011898564351560992925486198259431149942137044414576377675549903870200224659349555636249793246115662846793420887658501428247867182159896840436441537283099022786612174337312010413656520793696072094999167970437592216941715013957319666985878663121299864835808779338888031280354755129281999854512530876024386268805773050124296830543075512718735670802030078618506530042989323753700703103774680928302312304647694232344401818383757385650938908093368263453495298786317090243148248825442628541513658710681924909036350009577926959783327382857929814511147848816054015349359014067528756852349918985844033963681034106970486060900212242870210814523317891461225719012756479897446476737767728418115108101957158324142044202603061862735826387389965044464527931870640767875605136380603114326047992907272457489981614306217549369288733480243191410499038934943120698399493603347682021241146013378659916649870322737413002360612836071486078361449298286987108643518087191249264619581923682617783217484019141630503391069411410529286712047708346229854828747888195412821274380216187958132087931234287103300721327105614689876247291711078802766640455090157375213824008480274182934936528775818364135407154333293108055221034920400359297972843764376606406656410755319965218782830265659257746388496914483130379596670949082505963292753159745280036048164513462681102898157167723920207763725268087482924671746317526102247769778639207159940749614840568707110585886709058768403329938239800394028740742352111045253524593394077689733175974560561394230901335037418326075716608648706187264499152972983525869585922230756627138460085763639644217341324802313906316279528097504148967672836154212670655743525239395201516125346746528456697503685466802488489412680313906436328057132886829083333185775774370308451991402560835545225988982459383226671949457662196464809160405308465923571414698723713853753851290582569877213165493795826705168438625232559185196387531301979853015542760855855280348698764650692280222292414782309326874355846145928934390435419152825616174857566675372862125150452481167723204443652792734079336584333400507899455492993392885724445524908742696845446079854817820946036600470047404107878521847944952363672046710549858555756508944707911359703208324785936922431520794598878596726337790244869647933072364057999469082782465839907961770342982530946496982251581617121565349027153311989120461571001650836307966052388881766566939515082618520923595131685038138860362010700388141627602499915929577702273505165031153966720397730379106640399082083231149209608108767987131617362677415707850173887685004086818748270431403268245804677939065461930776007387967570076050461175526938697421092361395578052407841547892117763073573409784888101977047485594669447281700348959101620831170430167804917536965340140482160088285866440747802051627157865540245482592715075584228181832679500218263856917072466788299783291343664360503820749402097784373366658348783961269613415173348527028601180293373302997476060255285702209223286364085949902263679280133181097689963175748388736594693671858731273852660750802702321266991745756261293909832517072146635120645036003436907911875882220946714266590759984553666665004984305560299032618725052225892244438197072328595137347008455708717518533375646761107607186884699933636304969143799193530607631710468444277915354088299383862518401377465938161796238292387360289720751954981203597705652987775516699923396993607958008849043827268335585722941377715359343639519831932086446576166793422555311948395626343104347655830940541370437490169008409164771538211806082683261643355274340705842300160979896248702207248376667125733104134605283585302898943349947129867376932302219920026497945747032067156740951960612774602116232511227614664021548829279051912855762205671637138729535946370134173398756350336191002677148020133807477743434850335807426061975540948899361572320612815839325691244289418470742009397250398164596371088073718699793542652913591050206730120175549809856190868631512277906451905147815193084578198030251507837898618840480785174974249070360122383403621792536180527002638726441850600365247014086128394993149935893113509952702478101740046944567431913736201486917647707103934747374239909095759764737276708033431824883786891221611503640898272972573080136124365920047754480597822696973277265397317350487029458539322677616250186601283646196820704717910605288684683729527017082814349586481687014653395448242003950185905229824028937915877053292005062218270031455680019807814756714148092379134233480162014269322119902976573557107105789039094441189980171560500310480285009419594353090163404349711888390218287118122404267673452047065243150355941373805294199296682123858983723105303635058378479750263990493163880704228619859589119346881144142800988696731699900999751918557963263227755992027987726070208421518570348664677334685851431062636885847585470622214618708223313470770962064050403077783904751277318159149418645422170613480893809600855882799020664558511218016433668408899160767445842888703315584366540449611383036701784713944135801096635931786998310703301075057371533003409174757867139238329426005701102993362961967592020740219899011193549885787515555616424164359137381529431451823008294210381031566527799719763344061078154926095505057722790994764592585111217796635958910748104068428564119353147804351299992687425816412079763155767731799558557862715589358947623880680454915775011204595887965138719169267327961816110181258826405127405482149761639726153164391704810885596402671238868001208440234197583138916285941144731486561718956374505988540056273770903431137725637325793846150276073081679051995768581927797977529712415669016385023390840443599570424202457571940050721397510225110601184613684517250378971414041624222021792424490956068981836618338212811966448403189328689130913141993884899455867222756501738708791078016016064203357929469871390318335554207204197543423267886929868830823553615898096204188073061266230891667828917499914809272264453526734979407137189326591405355988552114166051493097617807700383250854324523786011107432121241126832228845640861645717870781095528073315407729888755838377117436343456786144838525657812409586142845594276616545221738561242080145928635310636767296775646947736939247810910987652243252564170584118112068850002206717282425042101544988641391022252008150999241046148023781156487122704532737653639499679958867545951981026722358068989932157146772685590406064136409098802255052110922833955372013533726188999124235967085364709085138491691718391139814230456225571358921045776551869848646676616358573875094748463361335773963290846262072371501985110385066139994661792799711231082693656190953397411844959755717578147271460117061938041543106253112199736139634606291461277439804750210216265080862020052133498809919228313834632432028141751516472144547913121620276756207319264040009680520317305393686735974310275795130917890905222919016868141587532668349554916063731787366072987802366034623452553837513199832187695877050427248554379459841987467368136995739451218297656872051325835356886813351459273480558603022715589123910666553691175457933256519623779399719328125265001571850935746590182469638218641468648977800774491411976222214518414869582712531401633472834779343621818770310009819979969879578179324823572874698539583993050039490162068894038341301369959466583997519162162114815166444733638415976825275457762349157422686610042822409380860585214491551937691305686636529063271586035598270218466123994717432105026069408695666056966989059528862919045302858371692870790404767338396230961455231973550124181039926236611658755707328005816640933407665541321376187695859402384387514664926284255938273339135402612725946573626899737971407334053600495668668061059518511779734600943514955197361003347100397115208330056467546977309368574912708410857831740317646402047502075529086810415279901485190040678312555380686145634652923282151522269142208679670069956123795981886810867790105832597719430052224183344642456848506099892017082574322813812582215568444124740828906496803002447991144200821057746195857828963895267744172910037905612812971497678288260676045472561198995889078167392116365521564836310875901567971343075064348608368028257550309676488944561967364479348098040200185486678839914697029576162670599626639491229145323287272869802216160930529055308023424867387503877066292653864840878458347102918574229440749028174043011640956536712598088603713567282292170029912864386013973462016465387083490071438474434828386701786880476692251953162466931074239663430923128322781803005449077451352005712311332440245893591701827332817602731335376562452810578911023174318224321510376627523926717942627617632199623272155095599171868685208980272308812810136751957194343107848678404152542565152216154067882748935254532180906986447129833346961625720384864899903591954409429855974978936926367206696500217238883748830718360032506311069700264407649610931003951372562854914721343224787946064808787498590447740067562718912960775058417113991823324548668453974632385695593098656377083808171553559152540930538426094463873456734969631159899675430477204179850849419522306386967918605915284802797541322341874258350417835357449543061598207026608651027696246741386124328808159654750071166405976757966547557526907256014661689016355784565536535554958574294984983302096750851743595817374622431315742048783800851067435534135772165296178858227626329335619699825181074985028097143377615480793292713928969770175959911717207618373339422048876470384642470690677245896183407734739984548552953145933868183779441377562042009249242454269217412963469874805462584915962190526757033500468272001899754204528544598426178548011735610335337753119019500142021222229636813501664628608110775389513648272149506723006834379162156762307268213876009609630596538407269564136488797178734933963795124298979308469272563349245157411510934627093142403859236597323962275101206135316646648060231444341472231213390493756854380684474342004744239946120855095086243320729317067330615562537693251098381152530777735170108400957621570902309879508117846377068387639187323817874487569397299754258448859935119738155540302663448633367176199858911488177649072005509539715530218038981692121591282571479826413548169867012223033438511687597242649477708546213196724078257405274267022825477494229710759082933212801472467799927113559983511553283894100556277907884400642171058081036353081897504770394033332189464051190841868202363492202369878915615947972250789598311134010718087512971289221268753443672918796014929754999031487134087539432758643598092799038757909651755060483820054019658984321693206177975103629242983824934552987839249528309561173439241883783378213581485225412946250715197619096067864176623988498841133583936036568737492243407232807275160903091892829691189181824277993246548930900784371509145584635979595423077041728535466959536811569930793277972590637180202702946100606463975962193770575618483005893846935897213146391618911565431854227804422390869333897134978867644633829084595294204157033192108389429377109828806542435536079472201543511191658539846852743702682877486954003675821384790571030208980995277990596407631807683152655296164379337894224545925432047819863546671301512374032995146527890584769662905268604797402825261166019540413565543981326573513489742959064012285752392280741768950403155445185366789971516542214948815772180189045720670393627941052769779832136323117277469317579260477820253383057832831866489631831733707873549371422475548169201351257324268959163265363337317587492346049924890428381661078724978094340149005780279626812476946955619118264932273609541581041725519897388969177856848961450602575495577929690146998229587978133831885962518026013547657956881504759154618387424298008241165272365246810195484528557806136594834502092027645129344440958545287282709577674147999398934797933020424742038589436392430801137453719310653295418640082813703854999256008915446120859969007735078113293258542309068892051663470953372782729915758769640069970781305375716854981652621705084728322547377316112694696312775756555989462059760789760583694851524783231975627215457772906857715615017053200733634527554032320472832084194456500055719008327813221142502410485454850993275236633151836250225531474349353289455955588339280297572269152410318662030217362285216725221281379946726945143016267010402629739894455385354791798977561266737711337055189209476294001829290040916303453866396784346261844218739904915693009245068788164602385104701842409840283292119403706184113521048475982882232651626592359975638891063463522633255918010376407900922580685261907210561901368103674250561365248614327054578283831304426443031018142994778812625130854469349901559917561694537030216578802552700652962245743606956437028130234406350590543004036136844204837251027831792521427453215122748988568197565640288476575075336718767168621180121536819156562128066085839429209730536953032472601843114887341693560377222147264667086769888727928437435564600964441892978931772934333799072178517982875664087555953753333005915244348698496060001284979227859708683679783514939255467646137493303558281539350429894749569428425801255690797795782760848932471538282926831782585639778197756995158757479757978284111961474014224957805392466463090975017286506073233329594125980530761376693006892501019498503050840181550542857730798506558127467159536086422998526634815056720766680521194034080438384166178395679419290858082836179353828168700849610360884318501806595168758980385513964447365369473926037581212044097609036805203096960198654669367720098923862344634750010754533441308875531483600483648186961639145711112152653132649650030440126198447928264356012495011078889884723870889618334173939593762697861103017768599552362692769599643948354154161430778171501759679083659540874082013999808998113842925782504846678823812405950999642157878298193653078345703318296731384209014581500410808981693590692210956366267689990982236376724082811065376715360298240654023257482618022466896971610915821985843296793277718045547887145468444936413110061896555132322218118990192645578667151356833093104753217878908219815998335262305738894456626192416918762888287323771932774252235952987626583222517932755358749413534844525964881108137681534697626831847540384804464944285390206998829585558325092529840776574440239355941893563743243162492997724294162906235890154194332187654432385981956143287745567873829726045771003847998768954463612312977637066988547619865247125791506104979273927871143709485804235246993419909567277946454280090115188861911290224857873614919873686377395886141987774059096861791863279959848123800439528339342068405125465638966182718276574695902352576608702794146354926314834004005752469495816865226347097267192814105755674571161747629836205453354940561287795651153833373692597807393741515154383476720844801088487618989581555831283939022615124202360002410551944364353255839214418498105264848948620960378424077956822890737555586944848904525686885418193881075771486833049527848716396475950531225487931725128719869086836368876376542244247189605431960328925109889557047455056450774950328565995576887526602197481014804993343449284690785614850864554190152766281643953145297637676099464269527159646348245697914620505794092094208029083550682187665377527364201531752458555337481028655137878665729307204014422170927175352625840809173871524356941207936570293151692221302051312296710606541737966096346953800049656199200185287229352540026226220056996201971649645537077663309964451217314855065513315591979516824442452532146294107488464034083935922538797843337000096716637396433579518080880605792994080103779780736062823686026532657836877016152698277213976703160057271965975794383209430451191833522628750340609022887306052824939443515815894870565736625592821828776371075864456016421879987190936827381915052042479517924046326787990479737520349033175681006719536943613485412222453862776665961749812896262832252547202358744534618036956191367674370274762127398676141223101676220431339180124734157614791423846530748787764738180503014406807542418902312363838033949046515799008722587407766178033169404616049955739240881392760349585709701521000385774765015140011647520109640898784611667343277036193309367922366517206586934123397991649294058485265389957121002488609064870331083573930054167807029585958628166782146450276296296406110730513844325531897611312092924584515409332630086198483093059567256665943183104617070354892959123391412913226411860412361803719205551174563878064660616078751783957747137081934009361252541469014043461153487009241325146553569575097860771652781703682799106073137576106478643614185929817956477459680279661008762019823993286420181213985616754397572977262893546222038952439152283962111738974714227092104980792556020597149343896276488053628583210622442306231448133177016514388214260143864836585117322828038720830057374942643348181543712024776314267728218325268379772705741211320352622408201195060164244997200471894059769043890330493936941783328713916911546798915928344185178669485941428145766567526509862895894959623957483536206421747769349333248361184543713909740610467107286363729869138091464540341259525872332210236744891866705024674753596852604310313182594361877984298850046248973055656512045124253230462960527131770366668264578876606083033686881516733919978300218959227453271811419706037027951131085455238074065255885313854192113349488788772285629276913385418217077012377658856029334852915271491563533446990668960947271002178803944281005195858871642574066841454095736701349062052057176593853630908828118378156846510350783814995922886320053465615009400496661025202535416956597270910666314377025185219081617188467735819945853941170953769258188418256230728091581672067702002945980091894344304865117763339958528635711621602204298251714084604648950491424392200547857839349658472146576853187277235688638669927215444712621947812580170638727548435554026194801591556737328517297703091370522972791534407640280833517577863555710704878963660276489724752539688317127958693820170270413167162198142833880424392190493012016619760955181547608826230383061497677444591317992884575690558872623681879485466557673733925020504613663857718326924306044234762100641700894985053001981488286840445325548931471875408606745316606094429854927811837919288775827486135691526085048842215498944131315869424816357964887147522595932423970452890271548162832716987939445698703076659231597310022447940570589303557671571544842329266573854562928258114295240275140283237720911347202102457304633117909412920603124056638876910645274047590780428567993554699111101698213298613983512772087069138919983220058042588473768701251472097667865771466816922846046795363141504831678420599394393522117068364095973248500541899758306454149373042238775523359704991934949257290916099631932005616090050443819198233827982048340495800353693765560060722827507207011686643459906481204456345585304341161783481192945829181629924824792463757667095404400002879877700015493908967344728489874114362496559410757467730905445631050663986990999783263276309421143419165649403432886407878918889840242483249053020814661878159499619136668569167222889828575014577778027658597461993298200526747048170485762677932663304280846317272996179342015247426756486062839302437836770967451229615341886903974271958628703477292908098058990398793053127450400749724877653721284015858502509246818412155148715781908975898816171759762591622590672376367020377533394916908496410511601643089585349218657572137077158930304001701854478887479082920660777532816464065082976891845784841897208084843234168803688690779548380514555567595994076281909645227825428477222967486069936330514611442285957155646723198940982247630706121372768784365588236596381130539032306646476769110782738946101008526958321168633860070707364865320483327865695523126426570500350939008564297273867032382399943106959114881638858120564876880601931937974345462248200421167896676163651660881664331656912797130498920368928879253541429375523900813942853950707488141548894055144291590101274386226337343272577066591340940799999937016267117066585027595946493419377610716979361604466246632265032255594569730738436542636500247386189471535055418761048642689524637148237870815263934438263588007931377150431245526782336630429161945932053526698888051571817414089849410675775116007900525213034479571706397597094614578122473745014549099593749125608292039473392222555172424828936502842322811273129081892706737058983848599985149916603502600078693196365946090088593930347015696570987343159620916511682988790449811246793034976551766080112013690663562266653719087446839826654634279786419987127634367909980600694758715431388476913692418813841511700142372374755731211031395842776000769759466039217188634825898880066543699836940042667017966837009645701740341993354117229528450991070507817147192559055836912909388090666440611708095285968031840717313591596088855077516230705838658212537414981094733424551077823587384530960155410698222179570065245444747206705130628229904592945174969204104795790536010312230073173303696365099425521730545250533240194736808105989538930576696205270176631800957668717442355556124172461690001621250933598053096964500353191085035051756813727901551516543794664953871794641599002570966628311904933986199678285718310407320659798814154081697727193271942713810546716908307220115046625174719992865071724498240773366370188195656487338263282648017300737824691795210049727704037813159251943343691668302164758683870786993951479478535975570744912299129849632805185463209963118734860874410752138823030223750949226904057648897490570592254685581209974757074479561380136764110851698203674415629440161499655996307710588167182161867476558241943936938456204045941190071963171737513185007166363107989994753836289420040236248773522044701533507180261763524430018964231286314015907480015846096105021551392210185157973902782065969513076787794406443078895431206661030601846306088520944866269944960846005787876513769932125923654299408154499441766260854800025638265511367744998583793876371835730623478220762870655817713887718890482913331032715824264002704218485906882092770461763897067608399820918007186227648262342827635050309245678446070131304966102997922754815706184223957985611631996155740439892802316045496778873382250611927436632975754965045745630395496839115122203872198942744603902369121671188868795351960647479851532121258515047058786671515816388928491708425161978486299324993609627459194095797743407459429475916931593247985598169265890779234785401629125640518140105093766463549741022397129441095745261912423683884679968857779226501011790173888020388474309424016035208055128049229094417746142729150537178471867004236308029065504978657443725524668275141724571620513557313185346336457998281457860443977623800826732734562933918521039101930843359574182676185291072993960601822631082674010416668343442688952852503745667129501909832632317926885924563395986585662228769616685914291280761023111118539936105145766549432737191896761073773886046683367553885298345154146876133209950209393154984255626238187853894483650662306461884801033920029004681227748553030078525117641000558991003111977765203461407526101833843196474006257044857204250685815208100760933528539153157633457217410680659270331142224768023460376117565431734674352176084601150393792708591668131085267865887860500396004350909562276962823887828648717053971327440559370750572939465494504368902362926327136597035828173721414427258665915815803311600414700260866786471213988273016760787045588524790689755982683105586583278163501024498677355667632695639639810489743871015817492587525588827447333283948769022885123925206922538906813718341596876619619570810614880476243661422992184736478164702166724493340707341139062958031028620273696448045181565423730582692468090608248561881938839644935813626619183356992185175079786645104742353436527435798098375946470331046170067929069835938398465216898762388096863593068279878384741526060687383597177449750613190476168796471072153402600322962284081233780814642571486646258505120380953705660874679072064125244382075374768905245960417933974109636101695104848420448251500386152110314866041384024765684082715076326949844992974042075755812360994854549751205774001219064588778771356570159264295360212101871647086415859986572807613360718843654075510803289075661595877862859700348340707337606343361520950299595781154937861938409570641392603107012320064477038824662929715487790302698952574795287317971078181056667177035923126246574811523893565126186282367222961885376236117123268238849543611314688995092424577495760216293242377174818323086213111100409006381226957572797003772020082477599312146892923519786928307074857299352553882125907109737306940130329850872563263240373978829337634044172828732875876309012467148479293407816814319302787150464266417696248865964666579241063137463574687337125216887451673453544202259237768366547648108466042860166041061839622091050685732316537420683557004861838959717503993859476817814555862061963869365489016294547407278505288993748535092411906111323943547364702847720270383596621894919772296596097519342759435014853208655304130409629531194173316366661497977239490796650663663684389442308109664971111733939830919730420613271409061523778359350713256851785159054007771294566638928461410297597911154304818308708662364152616723738091354216543205601958022071866951606000518224181154825344044410213803413356666569144197314675714310594883390846305341132085969640714335524895781218389496569469505322513204365249594954361465223286744568693981359012190291187822370427794300844101437725026906828876617446039279498506323757174792954271091629150517857210858459987779226026388677044142389041173972313428576208411837868271979886280254083802577020020455616638259542907755851737194214876160649850453263462540862949455032966569519024187768305829115895385353006204871477172254335961253866947510381487318491228940102184106115503335055839186070987353844069321476079922597485600102290704029049167451730924506777407363965233793162045929179342188614854960332928238090458503063707869870036917929411336963549047491350280386077111956378609306158992068691575533460833466075819677793015324050414658425292840537734133570755981455064551427408986646563267082668557881402853565042052543243586143681889743951375423116006187598030045654615557872723903633958993675151248264569585743008271642597412626282525879042451401212714126581568930613316177362741510653214498243490157546974826257939108206276100952412861036145658525596876526155953913683921226717482279021937480345760881908413030319901621920203717878374613784277068916675878519230671767011009603428786694421485954518111554718228391886625343395463949781359619369049695555659750550561228987287367396908208236114564645495516959781960155882171897155086270412832983724646102248665204482763039281486605277716581011584059246581215744498522311265220290605865393954341539015143642236032574740456194052074628646727734897832706622933043659688376154418912195102617814429026509806080848631062080527002337037753759206862554913239220107280211588979598884641817325965684780031378319006446970002333723609563069022715856249859391551517016333196908424903138271948920906264294269029571808370834989661931314742136581879126828090351489099333969372364066083714854517717614334735195033389653605762154216927460345083243044304563363789021480801754776863245074785102727248984211840232358818701909137270625098104316682824426864208919127469505250400532905556129216137645224281065652469960590250944947953916696787163373097353683270722138245273117394286965385044075130612559492359238644992948655549083571621387482267695300307716018134324630558316980736485479713839262376644779599817919917169893914714218052100086502274293737423915732566239043806292469628075588481309489572140238100121896790560715110032325202990350934781708471726434449797425091580591593213563348137822045422504048332837955204137210541344245496166539215150885892567300719501073386104018873077552310471495034840775881032297041831514866416534971473881458601199605760187367635427684470711845244573133480144798078565514603850200053775010731842433878615769972930412445720156290064887512616285932778499526497321779140982345036170503063384438779051236030598539794718601586191259936417487552881740301817851292043671223610966800992080059314564179078488615502941468631971165537066877638931816397801638861421042372539298759830560733018877394784712701419970313731993604223916047219479740390948295397988856833453070734140172255475622695249106420476095745531606216394775628552185391907963559189548443111664851944676481321080147947989871692830439461353599691819503135321824869858369103642712621194619503807847459359817538950467369180704291202543959999115037529243268605053796043624505008983233971849176256845484912357429508566284491800078241739099958180374815124631486391106759761442852704951197080563981499152087558115090935951907983734692772637184303639549247835177996828308121928499002449847197651098774901448569481745586216994265633449350128452518489457187851835297298225216168712492558945516407816616424733092562666716794741515110345774653186675968988025668994015733281805060651776860417002566875588412208783799158391873754223893315359141349698423802837167261716771386199196145867955919405093035735053319704755126180134228204800481596213448942034866675518862634590690698631205526272511604675346037572426870074473035073571044174781257758076570193693445303566774515806261254928291541900614964403435110152228968562866259617008487608277591055034329537724664803321723380415409590494319923767693102783596632952152385101502459091353690565181891442713521969767507446819109363934249764833739167912809467362318472342591261706242774181236189864649722812989647909943767216776350042153986479882137242325476092203473132142646727548512109510566428400067493669495023586391276558594603454291157883835774954541151426889266228918488100116638185152731708445704921369166105259260006254369605185264130229978450668828626934005114426284817474911249569278518299661495960545650522648803301631849771705637933072398206713132906866194498087312084452942609508530050775993498049900385490110884160825382787623946008778274770724492219349463143847398016543503410859174282928113251219692332197235884235311496034596557989496286660407745443596531479047696412722433753870356113580399269086591513348946529315773039417354791753174352672567309551663026440150216529204323482216938571962017567412978579427663225463276760632412507707785636143202332907620471959040317177891550463868184422041715208425297115027920886243797962301381928362026661180364785760124541798526945607295697362453533554134023710171203121629851752526662639284660451741736372592012931207329009251294760765220821458009824146691675999099817054088679605147917088716773128335030828457088889779269939018143891217464100852352479874550634256510189884501891481366915650861155568473408902823028485981177136830780156166475560343854207564707024593911798619954433303833765361762668881659404397717679955479546885473999985312692884506264257838969213048619779254220373928092354971425729935874741839475824126245929741655843791024148978307979811825785087340358668206816891773624655018855103571205529363681190855469424510157353857760721391537415973977908470674555687021217122139157750301433891127772122106968502641154354034221036833121926035050264700418599500812898063304261634821771395417322073089861694940655836835173903697605655340281184001867948834229721998250432007187268118746013618092488762689752197978179839898692157975857788313610498814744243726289901937807367051481981299606128456552726998456688676506064718680662230282575472002505661197901745075495283552810118721629203955961280858326705068862544087562667275316798274189503526240463438010169812433297218620567014141484897770226189689066786427407155253602839433316645453413588742261985655399213885953095984111009362661612351144144763539613245617754061498164901850369193238155709921183530660031766182166015918696624659534105730516992093803041939874683697414680323649680518981503684342294006942490676193480088297344910541112916081097465073566165748473662687509234191763178664832245738931882416689401140511478711081809697002095709153901935426602210730292819165912747121606860560785483362961460407889944606082389863672377819818941329504998748204738450862154860915317683800856782667669946726965922779079377690543489893385769871247667316703634529959758202654279234543129235442578324554928382060651470143042592693300399371619326528853442678583799778349993960931427806184923195167843472901192150432681164027609503441669450820256217225473327285970719585773577128591359219609855295031160899965908041120694824269940093718030173820595118320644969172794562597657166206846752862280472598612550638469536528206650552638605887354640534060902737458256260480298065942180323617841353462348014307537814727391077256318032415206422602074518488980068797349488149490380499994805139362767463072289474384745010412424959395148644696905293591589270952977089851082096031393813336241110316863459671321433221711830355242246437885324479317540642338673286895856880975202409704392519087320113336736693860666123770680095353640140474686254257911798169282347768951467396715778258638407643294432240163317250568216252494043712213369819776030099535674840350909430594673850932349925598209999734771087939946162575573122225189056075804282496280642182597990730874827771301631505099247859244763774048964510655989168150776986775272044715585810474509780737691139175249999509151120114451305273125973190797763226534699563228677972308944796347638957259623485013057186553863265616120064053719471561138968086287432055941594397578060088597498914124972612256188896035345448636077204161062017580596937128738663671723304953253443100296405809274127517119068312784497295498264693425333469233524127205423528026759313172073012031369628697471675085144812941424077374212817703536054282959763922573739658548865408107158310170019342122326543592591353975313157856340669056980685019278905622599321774523338541762127631519025936552053568298633708600168630968563492189006395620720359223941164517674750874297742737483403764067029111742679453994711386653654328222179771828298435011803457908246560523321953498922853301430814527911729543114044032910884654948677970836941475694846886073064563996984168500942449047042029807987777857052945267685920518610972670460654951603896137826866709747417015319636683218535645899621633432334170137472183244040043795525514648459609880050016316538505624065729262842290231521062737690945765809243668277171196960613803405988962481880544688041904524604216767817700966879710674677145996456560939113720036760185299605602556634115271821636088273972471983196637449603457699675785054745262658664810625344831773994677960683550753326823923067898847715366950240247960249560038530888154441124392008400665062050705215655157112954380927136002565559052801737369392484778673503516512209177145605826786950813126844666534151729809954077953474389670694762332525129578122389896774591850657055758494728830497175115952355115520053840371981988343827493697026632133104935141717893139442609352878598158601174566054013103924234104954202019354509665097645847956843012485655793705752132835102724900942004585267710856746647414828227529924307249351390487627873515403351435222293323160221103761196776225431216836886797882781284623858040228949499589194545446775228188711680851553879996164741826961286715619474451959029839595834306578989597579372530878430302618417967587838307441201008883988008889851382179975664646038259787410160108569378301894899508609245305932143849547224855772152346138293192209988905434853777707255257209533087730679608623466420379089099256978792903675340076659436173703401538393797503799543922214730373892502731415687259798867063389630131064296015885212583767163253541047887748737690948559441602637909694424379381038615638109573869755052933966656554638933698263702117119323588449452348468049375488788558898372611797527275058161498476170398538630540345444440382654973404951483089238406906141349467590019527009274322944397857366283641714252999883411001314679784835406707992678797299620924229007682838378970577139311891233967602563080848600932282229574229868639239947330887957447875926544732195509259396958216418988085808263539042371295453968918900247372543706112712141546879215550019758418548360329105417805687578563872981880874528004449428047152241669252745283371570425942849791209220311355622400807157507375650514886823996366330484802684108279520164304465374431970212303724850252597900118057034118771913295656564278267300069138756952166739614340780939674578853248207502851160059639144722937867151474733870428005166164005713432642049357947150055462853116833517638417055792320190958297198043084398626820441053267472920308269721675800504027331904769812777205115041315854448951608199034301971017768308303562679539388654596852978771659344641424274182885631881935698988324791384496617973035529032708458511376600905513135253081676127192117027474086488263672112293893584137943297915804129543059235905605090362029545093028187279097663419067626608145359190374318728111256079113504499323904274426142279305236921659961061636151107227239500692955445219198664643190445227446205927502483028113554654410885830540604234328483751798077702115330826844779495964107558747010656781930930001453905587394743448909541941813402666114248922113885926008888439451352725434956319313728863885315868031764603633872770673146201033235890229648920948165605930674265722151576351219982961989930872004946624517156671052110128272368206409158129982449781593428159910913437658749856384079334789674563662996019431565389815023338362907255488061922611837606114472393699643473330088733107990253052087945712166603272837523354303146727930773195167752192613455133521897603674720212387019889136515685369607686848762894078996025494712728050097001031803040468573131882223204080083686036122554636451471280854439416411763474829726773056340029167792313615631770212055680302658977732052967198368498554415045464043438891250629641396326220965304358004162511802399328891232670757610600753369737386817494044260604234751962797261452322147579745763083172374523296657307897478848509633926746305270789903204638127626835364860743151832406026241723087855332238620038587483261431750981773852973762044665256342390400786129470392148421834172417737164233740455779414688316767398972715825828605005304152701744396879312785299230359028845112926089012834482552613659418387924729001359678809029825215917377733253056976555584672866528949347925785215487201873770841090782691064266009090387001537543250394239187989879118638298566793037178858003782013021916916029302515300964879040719918737895907254249089794698097398803705547117706663023494331318780252210075007381723232519904958751840266436761066433136851881086788592713122577577009663625474287421468964044069854314634985043389217523213797934183209171386672720170040455542903136811704722422495651060639226540331268396326255501953125074961804532472953638718189562662788569431225485779698659685323176779561877699575918247688190504621719568136602413886013559198020032632453406072178768185879509137894234883283617692774654024278774001509069379735667016564988173448537403871558464692820943208429831362548679170378832358668100920412395225631619967752814823890370143187936938572294142216971847699161696896574070610209083893280979621382893623243272044399733411113032165981781418240184673508226964654688787022219444591640872426358506898697864082338023363351558465382795325915522086702191966043939224555152492488609698152362749423644295771458316153184363091605570775002584293602064340947374095819326741433974100354252520411351830230091543485769685340014487882511244852878677034164096036252308156546525110944389659571452919609011790483605437013855516825727248983899486962963282587885955312868327449211254532300101428661291926297708699092959923009297225971348206732520142217568913912828456012882667298626256102994426145271749772662965665078073732353152951678174742925979911386340119090236219817688052943601533488821081926281853763822203870060366590954921753178711277474296277454877707451390913530395951341946378071077477358976188128140182943013194483526773774346412944574430787780957999815197940305359297413231973471764543767727627158853261224427889121461482641066938380593890466917979249102461698181010515460854918683886652700118459954532327351491349837855443120450668227304035082721321161801022925245347894284711024614411113109559517447540140132760389191016989163449127238144559016862635949378366512014004942311533373216559347707496912615064435791221631730623763235929197274429313124305992087115145923812225159549285663355498841170357249527212840484889949751024919185010094626715937255070332806882764593239679156405864180823679854695395781703709018251886012891721614399090252481030213012438500364820255887429860272536058598722332108487926145927737886488889649331222675742743989128249532378152984506985356814198743153457558053391192205554299519301438576389856719399846829386863164529630086635856701678866887537866855492611351246731546048841317554441370879244300729282037071164907115506125362947048548110734207658914589813829051922903374054746550594193912519219704703460503349198732542986641058796494299976686736165967579231321359142979759724701953160665221525562904873916835393104524269956526220380449130281816972192434199547053686427104368061993551507927612839787317345360468227521291527029919006847757450691339502072806288544513863808484587264937662845024509710621355196158448020655444255528282763480238223862164363972159148801131539192968463142585545162441587222862988758597105533095318939159693189977203608073508697222782951006482216550301875052496902050177400754104738476329317703132600491106637861046724758831241272158009860950996578433717850934781772645486990336543487459064549977994881305464923623637322296344090384341071983561545297602780522645428477747372424004074491866785508278568142845398009122888224532207323210816242539823042791912354804860016636504488274244451241085254985486717485388018436858806686207419395054692621390142043480353851308236542802365080274955355647438245218819417519323932302329147740472200387901114374514841924147899430198948332095165425436202650922982244107383970573366906328890090245936784683895052242857375437940857921726945920894968927618224830183043109973772455623018698006726090609391218362043017108463696452009656061844043961555504167855248021964628479198695020022509300153075261831243466853417128824915700949131016288608680013156901590652203339698429728755925073091423038554454906265832907055827240749535586374793807367386031831083236017671394877524604657996086966834448924622000080609176425848522902369432052819676215434217578517649490504273885404821500162033424907014842268436408609311628292153289630531104052870673272279013282086547529912017603684654282435555772058383211629824655733116496966989321375614743477992820049461078202586816397829295264340917216810017559260497981282030506456191313575445937682562915411022069445305018619673299811452381248654951750996588225830650980649673758773513139848515071738007261675841246177069028177564671692253405476951190623190389124138529725139520041297851227381394543230117134864646066310311818768836765629426730984822150960801888250158510021906462534055105254963714309904393445962877810898038136719034594536894812036468199835158723172583983969348283333819879748093435654983512164970940620552287505273609508153567217761538445280574111408679805796499956474791289639506648795514894360796086768011434085240545370947958123598681346635757565462448071948075168001440122973774057177462505135654677094840693225916890511930218626216810647404681196501967348662953497456171349254882295311342613645457535279905731722008701500416022224926340614593158311865275480260726058259046915502502354826282972608854182684322298087881603181146818510054406515345508740492391416174075328672623231493102541903260429508238835817193842129056216108579551315234668331237540384302812990797415773014662945101981890992740432619162410460464140094104420567888781757110289273961573615416595331579336496252985835943617596182695028229477703606062705958705869812673949736261182916147257756615368470396051300589646706196378371828670377922886881381460372545096897216065147566751614097845541860566360463538960906963795539951594950384011966794656673201607300556467898355992688583088782346140963361465304209651060220907966097378874630343174765474191391103361359296223870214469164926991593017624405710374693128540249507728072973750797193379514757502461616889746810989114928497107200404146777410752339770133970467456324480820847694912679837096931848323415197622912769105110553057595000582741546692893180548755060927509533902507835825232546652526876862757113611276659862668041255717415913202596515881917907290086236495420269389362201591387485687222735658869815918018514993313896225500770489241765055284036706483055310251510925408722487181687457780560615347443734345085259126384896073648436486955230819453220435562929422853728529037685061255151490438068640815118552072688006214828885606811868780229759413125494872783999967442527667128982676131486130162926634186775691806681744911532217134710008386471330823327258925762112235491874044626708037739845040813060823131509939809392853206459954848200939783853174641814385671388200010689333668948415425251333969836505788012257254939618208655421338544348199113100242385075294186162883639926590868890676316016773157176454234591341817240481350222356420056393927976086764315522487997547332349079279413395999848804726348961451691155416882232402664946620439552273313777463097310214547900378936037813200110160418739542487182873879115504726281695491288794535139623457993848243251480160080698936399609048537856363195605412442428281103439910642760770753756493251160764396007243262236196420657528286888495517966519687307741537814617886763702994934339298198010842793570481573954823453413388257225818539523718085772689454748466414903496833650048561245559855420619060390548222207859286974188185943775752113074569678443847373845383024409459377239432190970968002563955037739661818337996368225884869008850542157804238033623582187197847415880312306684123707928216633351696602433587230206688564395859629925201191605963586222980805516773589230130283676663233787898922898856797055002445420679417764866680426970125736322803251587811294901601918450365649095092176832280939673844977327293694215093269461493289265437070041177433481237873527597039078375150650702792500031079875016038153559283492624141609005410615136001133874698921636089325009749542702061422105261951626755851409991948619886559011023358817392275147887927604182940912618579422304591749411346763585777086218939836447586332323414251743656489162643400814088458540309007260887344659869524945603030265190171994874818003582041771781953219586485989125013847512893660856336556610403859190670804495939218473213632832067619672366384912794519768542175735265795629033018701591120271924030067037380873584985983191776281830681025133676975210621242523221352047915652507265376356920337189071756498701571396895863081094936596899506333427690176902848216924797814720456471449994609547244710289914678013876328771243188105244610114301012969010816102944050045089106345195603831325190251368297731743531197082499039003757899695966610860410178757103412322596792868902285147401057749120083078816714767087005427980847722302852184620905036761541666814193114402091546578734965088580665258052369078424964544947465897679697194168218327965424216401282743196591610463719162310753359407264213286244844641173046815961291162442706771275825820214792605196156578792460374437688642376905072358793231029806060845357549326159245002611161689885402885096051941146338283913671572784682491321337735207931083719105926637212321508810923643013080562692641017929482245314448375324995187945276084225921631608384592354088863956325672750670103982226558551253470931317783410982956672336087379236097927814658773009278951997369215775067772172224404528262223141173401397947282139901986324984428627075884294193821116113034851750547664230757623882734519829358494731765711260517756563737099009351394103612188000746100388346587351737793937355334997952477318101885905739280032663778651757635549990654071289359614694856815422206983970991192138655419667998969568503889063908350743872196179321311266477274912468823151974216677809021083932991072994045189775956071634517612810831279961010673858019784637290664723302644200198157762116703776847259592424217160860315981889096959571578182548810740559103492661898498662791993957068072647125830431560700565812610256521637862511568529774202311836372538681790822225342006013298774486886408214809202921045142219921562452902370475227419634028687006014645399735077525219266504754229384586064705738160588309356001293262061680201642859563627270219241243710126543415108387388434651268134279352207487535485004406695894891646535513318063336408202357523837497712637367587115483475358403767766342209292422086819280919740071052573410775487946721009967809223855598739417992112922730826322564938188143669578386500939448191894085892756423491694578468425966957061954167460757919960486485167972646704048752206183369616356832365544292938252399179848926594840500019232179733866329839771981728742816657581625576368806723463998995369886098683541425462408799478278558917481259686583666073504919587479212314113199610017558004921956943502837881806656883668392602242336688326360270452599716860851421894087679754469973575976501255882782818675741700253639978753320868871096734798825482601226481310709736679546172345731461111699881231943038414474992090113842338367671932956643212216712706887032409363951216996125060823140369030092445702055253172864535784030185823371556903420974503491054039611888993839831402653526791913103879065924381080341795390209189585112204262609079497427842475214441576246945359996959557732052077750451775245295154362336293468289609114591809235768305474403400118278501732877305950287241143419391190125908110337529385771820523658269535244098542532567898587412557871491689213115630670272180232653614140737765380357394772031564042355634579769496992055811180217710078842445414435047520500880063019079321356830098976043337201213181245510340732337806619006280279032743397440080563081099168077702284627382195456555695601811059522280546012036521612639309859566065430708583188295527678458618333044699767562112755102382151706295891341291870023261921420655632834697646551842682464999378255363732895075731475998534460358538321849165656130782381932763131366768937780012653117347008079316626629230503358778664676782943288669244403529358192573263286099069909912096881897712691527661932634882377406207948580155071489800963482563624089256475937241493105122443322573512205297141097663239608503063631943919681998421786096058253439440533644442987637988112402341271567848101689177687817110500037688104817926473755846382157931028447183375873824839663881096964366565348412454330001799746501502972813385010477084157407058309414243978708285245725199217754806517441034190945974204555751187658901329780821360096615005417209170852652544891544817554935035256049372319767047768377708052849325150816817645718930161697289661377636743428298926414452883285225824824267369901032328344866890371603937290385882864247268683923141841795959282644534880110897390489666231734380053941008448563784380234959849394285894798725880953164257976189882101913258040109313483814638025967178449329710245567609151847822864754712727836841478721825786434983788085172325321413885769837094888417540353352105162984208764075891403122555179498282071964377942095050328027178793876756950378100206023411747643794772640625567568350920073848268307089312026377655548500218438962904573230124992091069347941261280269471875652491656378003342390625350256302345554876663593468481943659888870848301865096179477239815732008723536369859793318904383966566536376441164577007025051901610580711363359658819830019790183411995034556549599946641105610761810368092773731252528808374429687526995018468905926628994942815834884105111929787031776199809791014044884091586037429893177203204044750200568076269329038922680228068792535658205937980769477991548254295722928253446977330446252486032745672930337016605669540845232120745998418716018352114357799234495420586263336904638512859819225316643468870162031863396880779139675132560379209755360757410480843071038777110304400666591268358214414242430811636731745102194265948248251024758477384713330705855850125988649326163506456403111708091827894596351273959491453536193428442793271758710083909044861983764736689688569249633480348672091885059328481649326008464199278872626800855931902204481001432918641786459742809065171338175579232264641261190669258140110284405254882060407798037009284404378170467004337771408930815470560155864726864484840710379958482471168838984974720415663198833079862336324846770312640883150902539997167977391749957823276723615588845489052184125242442856455525414309477504661242293316117019829055843041600183120832730489778523633634755124841499308681163939479246255978992861209889650743645613486656893470160621880985712968582755602898380387688633430991747911156387053966510726489117665870007380298902470275738489182507702633619087127419997601885524501673933889349674228208715043702844166500684626876174869735888831362000665244654670244041207171871117665357716614186406623569606181044314197127992626858296046908190494705947083489219895609784797286421921175412668058156508220997526368394228223280450409763742617871280763338384413321640281089416686534558333742464359822509541341292526053078771898845703656512920347458091760764158003273962168874396569932170622846186871850919943986519405844553235624308067032615895560162381938548732134385771368263451571527792960717178645090351939291169509074601151211289707090279437239674732224359613966391701210703591131822452526639605460852522967603276933795281262853428451730110597213126423824530214479033486641727833750168071133301966749225720882100503732433278852812114901940019313849070110927069167455367024521403944944682130880053525484969458459947562885125360401413000812024390761191623129915882508325813960029800677161687477324531558886627279007469035451388104287769346124130196097197066248221672966783313480363499984027282112427679273494757848174408107378310234854186968748611005145528215009350322643134495170714621443673269403767945776008097139254270882078008281015157060267254449991412971385552487666746649036858569173958504142689263238881535559385247454752942597471019525939439332972392965883141455968075867395653505010981066736173424135883770017781803409601042975075519847668929747900104465478165248641364773608508562368160632914543413991565226599801118523088350018859177983393052186631553030259768232797450446243120384228386081743725801260803694717085667477302475385372466093270017322715590450160480071415155815606377418394722021807596930952491490000543513673939529911794294292030148171361190888963629697773133067208963658001743861901453124029859776029710774135536112111765508896513093897267819250701270227634478837044472182722225586737049654448901341963459320308722988916642947229953877421626493484259231166928795466203323488540000598336630971301608632531070483150194973056109534999580379181022570002790777385453028619092813039946989551199014459516378428386911091802905635822947301947516068526386591986334971184660002349550519237115208533062002334129478372634351619460633343832238261130749213915627472543810893115761220694577825366491932146905449642001645109900925996596503222364438446898523526677199683025954081628768264335540114020587280386592858907754118717231868790538089354216302808579618119148964357517283824140699560810135398077022126953445706291333349124263146660329616449555362179039745929535144250164284375507275873868879771141150661540959870937033750608851251079339919504648665271163384038130384974045967953591002946614215608053935499342113001667831878416511610271828136735684777528494654580799831562050791234423697480296484262162008755745964355337445539407437511271165085257000869791305424896896327706558806491853722217979498617922285301602007958581150074590769185671587483696466550134724108235412541665307526790036432410441658569445345551507708564879304088348970041527699952173933183756780995576520831918068840863371620196893679250920720341413683873355330677468205556927547866314009546719273386128943330157571088628108902345944995895283567863061010396776709795768695466883235689462523042616518141843416374623881788171177106392603480117831887240969553751056278920990201862753154999187188985948180423158372197669024395590901593202583788589081800299815517250665741960165324224514829069037230303133714727995530958008675848540273362635128149020559348180114435264170705833371926738317021550315863379811989172240670350016842729117438561081374187832013537015555545352916636887190911520040800346285001971594111200723182421703300636832502374964049530831970064418032022827595365754405352091139399376351590633893245034747748522808048162345152742482780173119894617206850053886332387031525855703430453280925773315882653737255501902942814138881822457233376323135415580040736925167998628161838677813185983593623237823024456650599844048735160809755405341280301593333832275262312172315805598887071029039840266029719582439509404190055299070289701457582910605602710804305025904501842794075620405172911158048235254924926054883769876843163806564926866007295843346782004073173394661689032332691614840111577064541641692377066116922190039341468584333409224184564691158033946987742068014008657466228043521470772061773304412593570414055312463373004076324427570678746574125576012953345757725566268333176241806595852138385085608538759803018865029742532490393741609295325686812367283683915575848724116084676769961523299100930281644543969516922733334068625877688559134508726403697028197219980311108387330322965535945075898843015676725066232596845684884523536434376389644511330212193494426671042439258667562321398622607383029475294287088066058068935901567905237421423579330181291604669032782825542864289382257442397552267972465435175057326405627882366892614308613344040887568527558090145315623999427364357593186787162637097787565532774245763529389279326366401421943275974337331795898564663906001524661356273720878593406292641191779730875968633226613135277882158378505897284568023531594198145928960538881033415683699154513910862546321929687575105696920860901136736299243319696859053880621980333406685529434945164955685253810770256707027830279291445231260083238287593752599623898990331195747356924133370468117393125055422278745042771082301544057586738351605386616878938190808952312594797068608483530248627815702504859402942276005905926770093123795244015318984622702027817081381363793236722536129364875608282566597975067516047791417841610919194428086221146691419542000489253073119805739935104919270371911781408001407689067876646474703046661595534493867322962546553563228950554355505211519740836256590412356345624820008172307870595581953238335818769359327002727301064577887293844631919003079597138351956413450067815584660492985106963734934307453822889554547729787058021591750528373235356948965035108782406958274337498825653220166408619936836244290510381713360153383842021340630725334516201113635015212150852898531213401280578493211215019689474651164014208448056559887809594338592625192754783749555451933595775229050686675217051413800635411494729892881473480356738422072286172433792042021221865364430885778457839198445376673110578070794069835501807171094749056281749118166683794393633278423136411353790105737861198865250477938019924962984047059709704802998142657512287590512186057348695119475507322708043652679399225477588106470954672416977645330759903673466730830833373157285605704836898712743769186121882670559372645597298133772151484836308388589940087623275453277173329246088177664337662122093819847883352058283072761595735207379543446447293870099192916229614396915436804720581616237522566392325214795477628406593357108007023903265943588811360028146103697267927528323445871113569877411434689485519509859494151569243601965155149888592009284072281463963058926242674989791124046256840160010800227835879984872803085320919522444829030856429549647421130258910893647662092303005040150845598766432642802162045370748378308696542755228528634877372390223995580094841308844282284159348491077466024669735058126015615328190563147308120933247107236349342733703385795220614050176119675937121007445970347092660823451887262205458342418995246162997939142270479658009775486539249902624729053002163273904856255754314307271939834800464011150930846348290624457406190744746294300593668650412362513478741832027463559512018680458466422745848471025685437020942388541879252402224724655278437937717529548372205946609470165235274738584112016284758408681234600984913263392467499363557932591697557479165826907400522755719636641966721559048139335197570447968265030840143374485533674938289252894070839441615534885254388017480091182642514154888639393535634591560809525817508188727726137552951028582215414920946854236878158481201408411429211091646869756366757464104430454624517814354229985010468238414314603111307588982558272747086418278194525028585691433869830227343285698601415759084671809678493412065935364862268735545363287293108632031443978382364100174091897377222980838014893259566847602212921068899560732266114960696528294362058289378683940559296543085013602599298020373432504856898281191537561205997698955654720646673369949772213363104317414880657955242968641169842204465210670083076103251140038624237375877726669326211815901947466121519595259608995383705620366965318343408379071730617776199621403373239776003199150680249199960067381222788435269221120005991326176262215756603057066216851274274226566389708511180580461213864383016772994358300261722161035558278079704620787077637937604036667947697465011438384183378521637713221392960340353912218004434001686665082483422189728117744042063981437788073109683860792208026177458759327257740411709186846848203258291213220513363793799179828888600210301593970396254739164317215242895566553808161007176996338041240159796772642986961739385381339756711335993183202008586771693029529563143873277156420883711049964902514251841762107244802202000530533577877296379361828655857669760581649099544602510303497532390065904909954781719458950613924530140070607385721618804572057236741668192542981337677075622228595349337740197280027292455820756582415655103584692937953887800333705434326082516729855032837124510631293384529786615067089717307365108292599871224433115954796194603175161684513991342507293648824764180392712188748532282591545708095035714352423919625784012870051184006732481803450790555577013227961327712834659538775626251727594008596988681671850647472493737086136460504927432447346260409478106208649579072461453167934715801351118724906865029490925304008374076612217362263765621131357658297854200150791299466769185601831628152366341760487262232951578808680033922573340094794756927102812933441192726119161324156492458764503254955575312039693256219677941853181837261753475671405786177502345401754011369926987830126955080570772157519798652863213135002592705032267622689509862185241450669061042208496042963961807985748298666689493624951095014225165868092114644898632052831462729131500805933646963673972920599454340687740092004934337434639372791941265494130107914977696224417708634662983314759432642130887055123531283162584193442953935954524935281251657862496100716843349241766873246467993871605620234929319420482454107126339180531251444799458164121717094192689535158230205511172881862733091919375933637066563884758012239708061864222860549172770374148110718418578431113630830622793201087611986546249362245378226892791359002621694562257967287960566249619817355578746764160787444032915230300503027222690190647009097122022232305096964604117895731662100233071291630742003902759638249364217828638443171792886117191650886040329918642079079314037201773013334381001182156215233186395723049725262849346770150118628869888144793638999145775628974287188269141568840110787489773686680776926678617297607383094074127496204673893164613760464430701709219192231160777060450510864667912547931012681911562418403353685340836505527506604328715876449223729129409992532665478890760584208719647195770067272622257920976501730786865314816499759269651455807268818231008794337356098156803861619356972325639069627564647322225812990755156177228908912928011546790875801239318541061969826299528150571365414413942470794283966426560775782488039084291769730734217804921906918189224925716443460006310712623604144520135158175989766070461460844083722211845638944767977736513302859969826107574864344799427939067860247792559910711794310000414715834239489670255686691187851499496759704191792588193547933520966793193379163227503537004940452532343130974047858334547021585480116181395117104699175509329295565381339419097759467846138546366733370885493347969589259425683182462887040771093863313293335331415168171782154127187336995615540904426594878701080791722917126551597637883407326816736706077640402648620765515506830829535481927180025910085136240897027661458104854277092032770717557869347520436548126536271826993925980911288054383334366785083294645714336238992642608636292707304538253668391503560851612941446398929861218920149791101726031824151219820941103746922172415552704627221187240968259734850891453377856986942674480785113077380591235292884907205139022435599471010673787835665734952957943405752883370386951063234867035259862839163216899356399843504868602529743385074435520312900060281843145583265206330505316862792100237642123883201670464640626375864830049186338054376279694610135450973640342506880095217200911759241933025321726696585354540713899224901465198023373561254088695722007491602538653132461288312865595867364602261736787307995376631206281847790752696932831122089531868461660095549078079596972233959037585718379562616908594077236046846875589566277971407749460606504260782376470146719197556550176001029145734872483113207555591177359969596134552578894663263193802939644764008499223716979291917055345733215719178104443209972885449623059841727438793524911163193157653785594228168316486652808617130186724136782447776421809569886101791627488794806588356085300370457516541163098498864147222754414489467495547916115681031451579929609319750934560722194856225111773633699429736411755832330418250450769428146085802775326760934924936541525265900855236281215877473052153266408721005934546411536095007545418914619697589111649980166369321640494668896495214349577228695854387023936091795693952989191639858999548936283995871549784511268735991116453368292942339047258928032261315570432380472228201037119966239580220742917517545645275276679003893249661773293025593174594497637347744345879894284017618229692428156817161838082149041848639939739794130421664005942833919237705412003055545752277047324396889910952445566947226035534142803826886743534087496007230146881059431172907585494428341746769365433812484132268041014487066316931981865491577233576945151351657060705729078317799301310171358781958047137189448701356985350432925317074538139813048505459574337500955584858728329910233341783156242135883139571141421961557861512959559072344683510327357192871032671839138548577550733608684950303445889182261396969494290613126546734289508167582369765426194158999319016898907547726331190863389371807118640811872572388200542893968290164694795149276878742972961693093827203027132910823776176495039201543871300967073692578664297386897595133488230878034220675108428305472510720566992196655402712632509839104826086336540480359992123920498284598868118418558149700271545309476465126398341408088884822578049670897335182692838947459808407884412502123044052473855785359476495026042356291992998366584030021324508614759875541927284725895705788018689583124653163224186696508813216850146786445400023542216654668577393475619926432983417310874202535772655173165201568596248369318468236471768402749438474812998029424947970222374414678103604590344119887447388472422295538421697923761349030521510191426727785624890917174977143931388865201381412446825448497356831545029532375789470072768564725835038959779031021672577185292907617344233454067325636839536346162290920773875907754373030884837009875803786117020914547449771693886672280793067317863736466538749540075927261566746235690875077821369891546637362212353612641491511486973581380847608846668119104194147342218318079715112848548303501151211410770059116793780681261471100243102319394607079866792578610422680871200797276024510185927998764208585577217826154662364038960311151651387914158235079842565674721340172000264155474586265789903436733065128630141006516033361885172344530212850411550981690759797836602083847973904083102335947556435981119908305128631536740023553887909384855269805837177185269346458683160860682839163172883038523488437189371551282769035668653467426034567970202980133218022553529780135931117279276845464910635781296757503293935145073026372013411897530333978135248770076781192535418127227199175759009869073721051107288447639568708174447748923278956258913101463295183708434556280695771870853033074010917417472755983238314394061454793593315795025556934831043033473561840408213536355133581751040218272097897408445096510761384800393933858113231740770416207397474379342804517145836712556380099464970238315680750942044965279891439744950232458052145375025794537298078754202623070598246290552046769880551029143896617624232365300353866295801433136132437937075607974115393481390390765601412280134445426188905527293555407751857537536678009488886516707541292893865982626147441752221243201013626459676468894289271519798555704924913235940396080078778630551610729893623856076348462336204861212431050399943444832533059850103714994755413651085154291257060544130497721024033426912063335042621508859545993927690839052931915870000124554609339461507095521540147185466989952869799068348746610858027967250830795531720671999676903598038992177391042394511664494304903665619714797777756309041456138999477083801438352016186952837790127441080724263303226025867407575804452800615182864796757859404529695510087250391353804281579285696066475512908048314206192936148379233531918461971102412341048299018335668762756516740824567592758666808029352246021124654833722753096145113446347354054086631420655818954118421327004077825883327287491014115235113186430381204385545554343440698100746071565523118400278807634212837575635159462900360542368852327005017760826991149906965934245434528635926486328529842113213878082893329994278665302894458045471635862866916923137091962663122323966699674408339321737924341693531667762151307162749928672718820294713509913674501391343222094707974086904160795181585583126666067360603709801943419488352972624628425363530188051616218375865049001683942478525896789330286182877781431303055880338545875807225773534275634652407618608663275399633007958951501511620469113898590700140080612044579310272505061963174332783811755705720649306842377011167885201063550317205893091162055518535306219233531571670104883724510098047556218808848103565905631038377351992194965820333354196377416953250048773812636955958777552307897283676388339480293856546773206592097792910123227320864570421787410034413755133050720393674559529977184786735607470062885851551466103791046063841014867866870727517989072241276316494868124992614038016955090617339233001332211620356002172772289221994439167143440001158246623554480782327542431848453380624750896279757465262253490046068891871033907158537469295278005407613352105686274936454785401955579004344052518725999486749086364754798976408862438301611290534929284898141509662804223745716016351615020521166004342042245174245894713588455293095217714634566742981652840983633790487314478911730459157510378529161824693629541130620228259018133838078392345922007181896319008181732874639798464557310914073430429720739026147153241979159696267522042689479129733002980103499909555473198697376336768200907176564001361695067213707583372995662819269001168933872835500043832283681014859553435990054299157370940761430750724138695080645008498192596140428038283547173305531745596245333389217043463080844608099653154745728487325567105989209192779986274290470535177082376984772404500307345502713844734851688135112375658446446870796355727690751632485016190470655275713938766483693920698662257826911057823536689574167647803853595417279190694835920802666898175988930848798006143541673232951400658582589094180430039025757860400107585176603381566384560683699458605176177785353237072327759083116389604423942321104543704576213493200493998877002709831722601137463636591329410095399104672300309081103506136956853916850507603847157142096284250466901050517745047659052105386820795928648525539666614660800141509914012833813808087998111239389094128192830709046879203257036912642057463832601317841999970081518086551544292754405820114521797272172965567488127073687948737479378975844205769538830022012065234041409203562618711768193483479128078134991622331278560036007104530073812243763926690794071603383573495643475953482113690301998101587671004111326781293270054590274340727919951770503493873134480000849982012890804173784603172998349515139559938696874222477200616786011811926431599418534649491315256412215798442368052996296381938132630679809677835247344558480391116211922594489874375726471652349328133682571166494962936093296603997837198397145484977674198977586661054878122770161412314773750829974091945898219603140862530474175889156487204072536248564297837395219740491262317567464518709904289304454425261863852111591927133512527168942342173204165109181829145736540408637585276132599717591700031781826146203199163914518813928905831497968696460100477613166055538457468083274234985215698777918664979883872078701451569392708104149946379506440011280428276685768930921431820427996555627311732880197626621747624253437085923594645474890594069298569279722745756304868343042050797833897580416925938897785710640042887973148909425486305630057469133646661987043431119897191308643331939930666636805052495046361709909435988608206379176295865512655306965434032545126507305143509127402012144691178104380858955378509907342584499013171252595905569033632544371707947856571883392905087129147116813723044373269625338453538353888037397689501213852295169900838952449868505974280163903617340107561778655591839022717676517590272942011926598505899223281095836342795574146549185904467956291806949725604138949827881486925479304701162563848388394649617184781866586040545835604618284743801518155604649296562266000869331284692367414884979262178857005228135897606991230603570654955192302206243524938376202364948117672874507329177649758850479058032229193962198898488322287963295856306070310207594008725850538485726014674041715898730491084292348196326430768909965725976176410261578733479539564101559314206590342057680122151712108941449535735275792345892580890764424044935182335240185360908531231540251766493924883860271479982937552442085774469757134455615403200591898450486748769764321858131490233759467249479489982942021493718880699013309427598308673314146876864035213268862419302170981890278922687509300776428628686463428499509667690981697210556000280308664819800054234002776016451012117554240260921696336522205801196558811066697525046879236048192855584912614631873049066934172209962806735405621712912059461358295589999521246877773557726018138793578397924173974351980169649086434945902955774660141418929924876473727022488978276734132657195789657682203648032664119638480893733632778453450126866532453386618980566054315103591036696053772506346345918183145726237569665386744133564093454002435248950349008509040505755942897745814821392929646199058066361516207835650860596378357805490129443263821927322622197631873774595114956412511399373004531417874745355294595985150069730960221165122514334594271908068183415110652560414765892135469456047048127340081524199569086380729400478665128059592414788454371122814685543230388606937690664949453552795751393138137615801078556080544430031787698181510690285263321358454976375949199279062436992569769011880829369169310139423590512246546450660599032377955684331233792457205722151859445770769704088687365244205668086806591164546668050508652463637065465623757632706592587640655130470999611989723946175043575256070536023275508771191345244387974399551225928661183322139062179239433567110928690191448032759793000054468551842764141168125462421173511359154834336669687217597675424374646573594335852663413475602130794573114357639341508983211382158258880637726656116294157576991422808019684410510969080317853491220128264012050489941385205740064761931984743207074615718543391807394683850136717206932865716962021627864781774359048454535916665825125725043440904516873350698448072927595788476933706380505988442299030890393413800538334051380907969244890364511909531573361003839735178781698241142613337982223398987654034185241359469989114116958844681396279519978209923649775625115303553133301436084151562782319977136489569122073798453484940244767858776237288650610596270496373737576516033585152233142654658325608738818906350958206475855552789416127848760086641168287162884523382016472958495010470211020542675888574167228101710071290719692068876355787693703789118219644090260713231016770822665687734532618691741497689162010904222025629296523029161387399583492648509624028129228945884355143534946370329560536807694881664912125233234566961812614558580472426835427006817896391969177430083356949057698601753841180036682043314756101738753533505457398171470598996784035278535427785197832907566760596166943031696438485565919912690071714109100344903340807792742379803305567475539632438731522636190288264504804483314331921477625003627840390989630985931035549165103449576758687744597516361904632279679413365649685764764814005145576203090097057403027461336859676184154321628504178803141220134732778535205418708206728106624628900276709661712512370193026784586791118479983282676845353508480253703100716016940319491137686869826266354487067067514560123562240714826066245347999056240747156317198207711084480502606788841691510816306664904387162145243064413838547212694089442696830246907496461014924202796975200420920367638635339818906338888802186469935905594633079305024808431324441670849533058738081926090955942228643307969123553011004518695734167473441278686350152443042192732976091750736784894196907528438942518229964775794446243236940427826194123722039431389160161043829732447695635009473476356126221506237293537957690523901471254466149552100704130895835509198759008536561971308692460161199764671530662881304028999776148504345571518503497778615671208613126672782896117205772986988282953602438509215879176797287993637581551501466606132211618137174547728653043468801800263735462343637903250014864298660140516897102157629722300087441828058290975852469636172552147229603893828694691726824034310214661080707979358897930296796933448559410378364691198077957488856360321466983960151393383741172998345675667729949315778781916554708993573604051350842167197103659226265336072405744603036012388261832704288337589009455769016777044144756030315865345122703071843995872634383482471689715318992077044495575586391956608065101137808982243455585326692739855189256726347488962873129114064586317028987303155693204903435490183091189315178312206293383752464734868303383156459099556681080727990754693905795645253828542520093336349879004067556706832542920026090486721566415804861974834628445445157740646711744741409381144793190582273761025135771577305340765013947043769748075391137604425960657865249851772972379603137357454668837253620127031584159097019104645140344348313832606402098347902538639711736668895170452036443754776807592596852247273063951647075655694181707430180551553647252839904969431696137854797645927882676054118525161255527085785673126669322033518403587882081442767016630422669578695397948187671096791780666269050716115107270179600675381084117274424201205430523787093372374969503832509739101384857203318629824577608597192073623817720538036160851831560247702861494526418862698633350849089385744358035799487810013531827151048533991454743299973778399939160027753476056996359659438587093298379408252089768463605174040302028300062549456225263894318638710455519781885476721624386194981923187213225769670768661888962661491047070652759894012317112420459180135278575748384546172039321196052441145552247488280301631348155609711151571605134961952797149943845092768526462501656770746192851297516820305811714312799886531494974226273776445120577087723069935319586670055988733536707093788513715058649335336400526712461526189468358833694030586091827504344929949903720372228279849881235580373568386255890073560562044940697517591356347474608725110057283587162960374014567627816919449094216887447227707041725563640177021794081883150622175599274377976546852963975522821919513467075903411173240499847886806915473122935066831344706667940185322160924493357001897777456240692791977014584946573096721106309476631214970906707491118330664124450531519448574347138535124544923981460279066639179048968937528908275568542151067823776888052997047747005449179554020402015053193701960611504792928563372280644375938451864643577841448482609706893427577806333050174936481342331561386963670663924130449067788033928934053509445824945397709557474320374290696891268808590028954642280928729200014638001457307323722785278925655868683441375415794425655511136020407298873629501367077557169925844851837502535498283303263917165257383013643948523370656548379866734495962335039558202587028527243303081408936786681258450691853452471217791020919675625592592875588223233669233687343094405421862007897818917063665412741719385225183042023495725559500879679212254378795232910755236753399307032296332333061002893528307578182471708956075078251754024696207760834056247936699364312672501429819512233737747364430902803014733543634097520583859652008805445777698206419474008293948916296217362527169976217222337196195823478330298278470333033985689184505981862333772655330748642756672131592968228895532595244085555170785523086285795270013809579352449849583228972441994176369359363940172774946440600069568877314804419816955476439956125865075898892138826688626412560200275046707437364493776382072061540473576451647151671451222949207800734506361536341048992985404867260234222408097956211576138322523710428186483967302832293060097954118398309366639252732600771880232207308289315396844084901511004747687671186876330186936092474201823965254451276003730220518370024694475707700168326021323272946751865891368679596381808267300210788646007996172728157435293420729617236651925220229833448531386094047863171901329288440858606143228756522657653139271412139321211918070852917492676960893206659338668132753563252220182959483673739423711257081670673109802390923965248753497040635797651998413704072821251836934805712260437988023984583478672979177181415643743595944685108134742264912112881209151980393693162164105740445429459828869114504607030016615117661461159940607564763668829765487763396887268639591867145668972152335902548513026901526423113547241100647888117596385812727983620349849799378833238482077154343679677960180790206378613419879415371819720624603917615263366063799729470384615907969095229645347091432786224665587922494345968125273007933985027386363528850249589944778886259846492451292742290972139809953682889870266779354767206119741096454744504586504877406562108444434064388371577059740093822979675261481351004056325346553485219281098789839981599892761048897920388719174434379276950316448082708660880845120867264356382899030171031757299977472024067405981068148309223168463137301007425804581639364419706996029935876536796450207504691347871909777966385722827711518152517244688018433467734683892906026268387998435041817744359043675336545588904828099148884881095699021951768682617646091537963807885895520900511558540428565208954773716668296243162841833810919833229377120222183759366848666099432869810919144961603713062451466937714209445008898818400774829062313579640537685384295892056247409185301114158982923962285376480784827958126521902122038241371014653515947932411282167045948272749678713799440367908650893995267674936218864332065190634339063524846157878938752106391904059781770508653303999651402652135697900949543585158496094028598649104920546146316873580230659356926713856349959981266678275238649577224088852095645618439672359322792596991417642498991894781097351881371907006298665193668808906751830766686628087783296123592782175354162204428155431519953983144654774657748382838242502694290513372425769220318801147849158657624261036712957073594296414439992173412198495421277871178348976101301801020134540555858699952617681450173192327060701205362361019978865468519856098024309481779634299471087836276722981656258375218226104283427509912130749578676806273522064904666615026890554653294457821232236939494912336030945321654159286955214969844710141978715432168153691193693287198766952246882760364143048061762118238265181256256499676034304161594900715004055359687144956483882875295797251436850832053098744591994554661747748913424925309903408503919336411381960097215803080078609662446875040325590721758910976747706493966334319951557956221974545200985261407227486386195121049144185191891254511708475279979252942927727343690081823348246643170408071646146271093921121440694511219747683767323670664174579900755300980880253106961651252442442983030838491758738519299659837424032938705649897462607600422294661699648172481403776801263174236774794633988570408858375907208015628782035568312052429799920610351674776893222288426831360047995849007948483098364889099878023272934153843463230825532527332050141878836366205458012541302786952796242018164347812329084317587343388207806175697954398492542657354194622162278874928418966119696019544473286066461597773969805266900014727372914071027496457350814372642123078865383724024394781673876668661660933546044172676901776406457395656578128599017305668062205702568373502427708667985250765202550612743938805015917428967175710824029801005773989220465453492977349900437292127002835121788937404640262884953927191182792381659356380213388820641245843061469014103106923597737188693119535496614996532391494069609174746960654890337363929407814220206817220535352925998556460496183204736448461968674641142348433974703297486164968149538013700370377156326275013727159551737380233678512104713431980087965996244943597320205674589099965388967111104617499930253868009202901929343577692294782067442737047956876091044913200469207042698593664068879455324437281181365576284150123497211382220416554355146966909599554807962524056206926470289568541790836826475512690127331033823609638162859660779724739030192534730474045442619242686536758691947069787993568736894502154969564361194366734634768474069571463506116586013291564807748679831276842891884972152653849477565631377566910285768503511627143567447400736856139976751141464316137467802471888863144796264765520861935049647167688067236525720942548118398821282109696866131860543950459051927805180903592501006365689151471376811277103161780016184456332386784809530234881931737341868977544700289675388800616581124280825996505025365115268600648196923202753816601378556980599465370531468008759549748785774221608874864527242012279846268316233260661912518664301955403155257856992490105575232861448740523868965022095456713347527349592810408739281942712144864409366129000007007569595895133031651028680288382852498936812929829678950126713258306919083579338521876272911393539989116194388767099314202914365053662268433011387550252884449122265023549733785988088114807548992616713669747202634984267377656159594553412327971477027597385709691800375669185703435685051223580644034444237652245728042890871402699777405835437828081941688978298909297651922883210822181506636695778016492851479376036192191409041016253942390504058279411294263953059796386109976923295297494881876462418706521175933516222245474247953672257519598786831530822662252231299825262105339681663129879621095731710568823748297921790900604300641769428720424369800558266640774561221703044851356392141281290878064974859733282563715522991397292977083084107803039379031528184138095407951091759953143001474263696600541014747138021809976555299036730167254227336238943032545342800224486820286421836172242311374645847199248248308833463808940584770209065983115589386571481136490246993555775787592450647671674094086145922547268323911516861896222610427612472400187748928372279730272477174283519851817783130522115386474891145561793893320205322023526740028948671434685986331743729775409484125705607386879000464131423472093532190305228655370025343668100738963718551803057291999968390327270385360488512489803344714307913058000121021618373585762757369438225861277657242585386826927938664735743416620079044923459038872818357409094945239289556161670328807647283536515246684420447117954430869788231403479921272403689112654326083316848735891878021719643965992598792002998130613681632271973092767459279876764397839461383510530177461563264449584275123475859410349664230874491337065123941595108633013323220000373384473507851623784853899036947740012108991478483449250320294939252202636762314454053224590922622543129543781572418440877883557895542166371082018585133202784961944970070423655770321469051254430050634769643081331965110562737579279481270164857512630917502519729695240140803288668600547765216536409353300107607750151909667893727344940276432477382904640273568807497449100345282021907326739112923259229143723311534974334453211533541042599374122069009935953540003607593090963427418351406117283425059739304699048097437303785220964960859859433467072374892697081366412683033705038569885057776960154025230399346362867710910925682327338200437790575504247107582521623805838257952345686487081698418293988347427145657124259625957374867085281789796333607551354674546326905986687828056390921141944123470877646758562403047153726283330081215568624951455644385143858240767457412985931016009116044999920133475728092749064214371043376223154524349882854897927472253103694730620064822799034680163846727078638332755230134169318025923072058328915996423468811793548148538477132296084640641641466051102061160507761888515300244154564790271470940787784825084476013821752321523879663328913484045843974883182790405549392719680416627002892977704985760289720095526547125846334799468631213309397801952687676957480790338802684781983965138556390702928293496829287322268447865699816209013693170951663143132796246701076063187448616160472062131716888545348736313938824587802305758477302844378955734322297122848933606939554206548636170619146872118453884698894725035497064390965296410473897769496054946589644164991189975945337265842353499183221627720699365265027896538163556745577741491825479303017707417575363541439305589196940693576584399327259282444047247571803783004603064203544687141094902018519056929065620902458466860348150677017355556531629923198033632290003855690262698685292249972596800243512300041889704628905480999056718720838418437185967266876447118454975841847999317403416821156861364627789203141522618217014578484969908078846971975377195515774648269284890392889968508253281043462209205785133911991415086779952602576496282755728488743472547604407232663991205204296522522229960146556734627735910605498340366214905928991477610567951473467406511663807022020916265071217165183219442662363427694541831490142199268518735792766807909242208515329060815740776798387126316413523483436149178043767460438791775443425647942686353995187492194866276361242764516878397418487075576155920811600874085717146175539782075695470482791248316845846155719165712023900697061324150170591731978418894044020598778538778718508878739021454168612236323445462024836644125816850737642620129468911534132305043462645471229429425473280571174611172413039061860739638592010368703028069415755014865284736129213352346004429028097796714114753852364681202108420073974469773324220192117629064629860917995418074254864071319195275543153917827907226653528836517692587601899559820880349092303005554263951093791474479517038179339360901567054384498471444085424848890887521764097035891273397176523938345148395830351814250596344957829718312040845768456719419944692415088922451581583588655672868858142731177474083672116370684647988609457781384485739861002460754787413988425574921616169524637900121260624233990086059834761939659234377330653339873004409363299695678741205158468172989375375708135874092764210907343091166675944977928877004250877822377899956699132917377591335210434071711536379074055325920830326680409539873945664694044169662819500360881263977239523477746198937779057464761885350648449766664230914951712066092822846383284020302163000494299049580423556061298571778258140763176358915311210157461402196622055751272491338130146563024324361976520413899100587452377709681291352193384706181198546013095488822226068009390654319760789131761152617460583960299822657773002851695180543050282321718951638910233051905421184092616014673498490947272567979524240439862232035932737959354166990045190126714125524184140132981931309781305557036379894718292082517899372698978266103760910969385063963541999502494344837331620837122882534408284598766923704593984595130336852007190865311158472017615167499848599905721389160293398089377109492327245772128495905789321877544364918494905676914456877468746593680284954665188642792175307623022070618850405100871972157647639287883169497228012278849902470164019775334083235571221056539568632652688541533180244580078660474019517519494347144494907175688888501422237777064072758630542868192120556588501139572294917971255357080281284382861221818683811164965268856330868643903020882766800442760757067029377777061720341591578548223708609851358907910106085285813304171802330422503822771825007687637806139760239482299928229883058050520206603583991618998043757754814944781506966176631398736604453872215844458344581838445310144279691720524416053684722114791190046673738339573729719134944614992181865333731747414360327735697347308202051851149537206455385625105244823339491811376219514168805860119730832395115959545188308314914144338454940731810395291558643225605068809311978242875936132321052349308218244090962803083735784152160888031476006538897881526631160516448574758810373777581448962178230475727998918491820857417276436040282361685418654656800714143892043735896992941143390750487943519253608735046951562302269522676546861891992718185365382451026563808452925211442397828344846901271802410679419422458983301831292381985288060016800188303290338391493782836644766407025192922185007368340133234469195829498110505538677440322945718479628917433936728882037523126528928236052391059821551144640344573983094989457737690760305704754233648355311058890206049193532926366904753690295459317006544964641066970744853067862143300492118944874000263567741512525276858775823545766231311360768882323196127679672976223971421081645524225308597443691488395387114511847896093017707146075705281549618908683921736047984354108099143018924502565894385337295670895700097145353358593699842163298453791172230537852135562209651429923911494805015264564053558662081985148991383616258144355159454980865320282756229302538474082604323844811196608460714939550968101906299428231080755154637677203747582088560539751599014411868320555830894328383750343871404143867314077163149934613130815487307108687747603387963994702918078931089837884636460765212865042154574058300553646525592489946769806118573228315402203798325669639683511017130747858316983341718867345912291286346347874320415546672392214184682366524129821191084278496639246574317909849203583321585747583627295077408809292639071987691612943032953895016805378526689580506727016278575030078727894169416902033548274228194262587993205917413163658489461180769406196569477018952814495834996593554956779345068078521865333700241583642548998503949204710142094070219522138692528818992224041082515458377064613443197848309885192697044930844547515982881662432902382937920197709327538013508165175458189814149248220148482636642603020296435457709838757222758804301838525240268591955781085757862978511371739977970692023282304507235263509311531434506578527696821762894100866581515562201520194803168190483483446583292536900268541093889672262461826508330788201189391878438585996262122890991303149502006078762821638036087033908375156927799777238927906537380839194598117509538197482320084459665244302038013406413519985407770478245468876612880365834872690449907273689867187991205279917797754603625737429309163134255367265651743354779993444324713764366220553869380512053696692208804217408133198394377651921608079183867811229583526610956230036238989483074860263677945799094429513231407663937407465841440735912748222685444093370464159392622520103775070156840660168067302263562067381235010694638639201990889834060206775841051626918807941789321479773752917605677116704054613646552502337550392325668808795535568793892866665542781467633565019828093034475759714665113235370994002447710696985208673465366596522515418322108452162670700746224830879146763878073218520909205626879663227894736761990420622622180331060399923880063843326649794584415516247060171229193050500225691932809041029981951080416154291187123562294804483151707249386668843175818480955200421257630315300960914701711721000681074944511362458878771400743023540516429346002629325881948392077159510859003875269791421724046776147755974214407105747532861798833482078625515287815183215219737123077024336441010579586255023425002084572214453730439178867603525181274925570236159990258606332214595434482685902372879577957774330420129889716962393587690907869934832617678270961196000073315651190625179891467860137745584093392119832270664659583326480554066717403896217629292151737878961823283739147892129888839803851229332810086590176533502677750156197509580044690062548721037942955766529237552381964366311920837827963698323407325141065795828162706115515078125963165746399812309794917556159713437885685261334006008388924045785121413356128032255065564462243347449407482084741055728242421946113502965817594536735503900836607725335961843575009288485717322357463679725070250242315061922411916781134886772712545325644402217079415410719326277285349832866364986830417789071966372004460480299216853501860512036997492284021253983802197155540434732760944632702686062934315107698214525731225450102229938488935287792684974831917430219048756343406747694831951342467347512506861096044483521903326366875043767134217716215791642557658566311594260340252186025930104142611659981783220271867200125902530392567087941554687495671237165306357546681894260884241410938050269751259067237422954259106264294619449570335149167299202173373212987755937615908856518639363772253420463636289989532635154671051271870378384853142677894598451766081170807504140140551948512442724370366528353639795938248219210765396381237164481761597395510363171186362261189648793681846556419272393776970829713303005087113172385211555949658333717679245179412604548220065627934619428212736256607397250556130853870411652786313216553912402603618315251271696387170943742373740433517946601819770845908300148815073753508991619640276792514170893190975644424367845493632739472470270792792883702448594825001463777681143385126902881740814284407030846161533306176413056327810412610626516586615207267687376851349808174479645157863488620496691073765873940370956468023749462228507185453408380134445622167535822410889561498797610545739740347254887974871856249610408425053810273478047572727772859246634710125083101072358731023062678488270098865613121396482919790399985226774440485481175520926939881556026817727707342311117178757241440857164510503861196754119301709201648918769790857998136880396343473598561493386201570792199811862080711534856673664004383720695048652221159652389575692508073914630168818527226714659773487941256116567196035221487676004136725422450139863890727396078979972910853928735869582892054013304613270591418298262989838742001993072209328590069786007960080220507621556647145259358319099274594737689897741593711852655157115541095818237398945161195045174417287980394499448980858831838877978623578820031420491738398143622072128594959599181269715978653519676113345031963920084373905661659804218080723836831520165363764577792366759169572225462960019032089163633666352915360611577375222397431112177591863767470794844961748280312814668922502574189413289811078625923096899484382531869118230233296358095180988882670271250631755016798658712282724144668093738899467665798746511234382761899261244631317763437670401274565680416386827797676099852355766659972229563172401903216197340130147884852730990722459948691390492704757241782411368889685435370962073337072408821027029299693711178434101182784435241402674325291271301007879612623032538107176461240324803195892233708581063053702126262269492383127387620755622213311585864862579790141042591132199176420828740192859483560296311319084800889966218555990838866413332815855898595255039960573764959780009110939119451309253363076249216625028549054121409143705153929018785957713080415180693088599973891449103274768671274135019042346031903876057507088557696787954081684699045836110247324100668584966107507575717610633820322874632943764138393919636290978727300540726343537774795188084969171942926425193742582274286973061549137887258968354935990253816158516841601237159834115374059852211009591378588474066504889882853484991329470561039992607090860317414040778996179583881782799015263198417624417037308018648923790284038496571749903819159945720766449716996279165123748047113558213900774241953828385080804383870404880952315919400253006051692947652929010291733891445599045298122200494315963360084923227042256611979307442108217316631908431174709243095721827038556923462336071274002137209467954397104710906610663765535852299395653328490455961946590047962569677672276255376877455523661733532329035357824115814776795544067706188424984243223038322348644369361673816952462324335307167899545101323633842987908253694449930512145542819066964761876693656325464600541023686621466343879342802714933667587140814500857924523659367446703472149237936969674476027136300689128575530413501434193492560917659096123117816990591364360651117364684861395193893461133726995488515943026499168963000005260526241007827673338751037054116512841099898161642624643386786761023509292219876950753262783661006702841686130855707230232101464804895594858507338337456410021040483878840531091568470099692423219594874784881599203819762385122207370824842439316603327355779965940252936535951846704957652003152679409122783175364468228139271903515653929976443510709172999478275504639276523532936670077899938520108690603158412698891753340887771378525271636550234337162687711182753590500899355343521351894756243004602245534193315304766188617611622203462055095479044065471175859816900009014074437044846898490150051033687610594209827660795755978147218220301472693419761713302605941150000829354046016265209523203953911950903418207387797647455125111137032296742736912049094442578072793772212557866618365252605450064011776357079984653710599394463198273590192491858997139492946721801966939893251593433310016002566928011404620611421067785667257531886328443599715023606725589018039011985826817721663061069379452422818403102528404211798895736646270984324751457976313056897399803229943755195064636937579178973203789061671028637345553485642176834307570026587338347120945197238650659092910895848413019209481639598492182787204085357215864402749687974352141447128948893013289413316250898003644121095425525563879083453884860443275333189398667797685166730656219577778505056375864942232554415366215268767378523186288164297464350407933995422374865384478842308995383855869165379098812692201684387390310486776851791207009394774769080600909741916129950677012605634064102293579291602229324685012985406822015779098669927941617734164498206551181145181232658393080561425493327356057587516301358979873111056703494631739959855440847154387294381535176258497028689083964194518328304638824898706280574762258744641468131926482007231763135507020166981922469050040439343225217202924295929411451762164192171080333644286468793185249852396672285857766143504522273052884586179410075487464364044967127080918857611358894579741731087641457972935023436708064264726789770300066829819882823069964039965478034871817907832092074512661280662016694974113684612413977272445013088002077977640571869751809080096080331436691417638933154624533603667687127467242750756823977064516631881893513422177163574614098299256254782340720511105381880934195150350820455750078980052111814584683269444353962374906376476931196758316865731126325502904419864497705901191267460447628078985449107780514277555171535060347410213443252021253300900379267535619269568382464008130492310579583139830731897785402200913074285469432051070663284688816551277104399639261522967342583619714159829671559133335858026569982153823586637492524353203202189675446430674439902472277382903366695353318429993930173245957378663989376391178194121667785501996922513757278757244279188667505789550238303280966965452018405554319813238483361276993834900040839872366489933392001715536272577215701971051387702143421096205578600147373684200673246514539016496043828336788171498493348929392498977900681373161648422736674869029801424073200026045114063223094278136059284239340998519635038146611032956132725406597468660006625150945280450018512589393901312913856909687496271776350479058947019319085031604398599718973262784836562435518095213140203212650191583659896551935059601799844789478920211342901633174548148099098781300870566796932531516065825346017171175163209082396287655638475646105915862159811337670576354288243684623899705138207202536162651143474011905072901943803625167567729887694207034041444285423899992683484575387906105447564016079220339357470604743391392767845861722648112694448969510985293706228229487976291048704028620221354993898738063649201706852440486189877676723559929548123812610625454559286531296555259833221474823838276396710191206826084919322257704345680585635403649950892310794389549362575372142621514825878507107522790941117010632262683330420068321121413555841946464016608383750923879409471619440758130004526783530249035811064267323700589928304498326420629869703166742428575645276282142440173469165443759603819450226603225367366461548554987842207883263498954971833876959158764053352372996694687087044596414668274080216006111718320143105007484775553174526696070165959706800614884919005961669583438143481154060761899016224556203937786489694242648772185245558364895103313545770808393784308045029302221229697490835474042218220153355237640894836690235996693754796705051375794432952684333409047906310716022539979025896845592445862483771090720664235701116227247565357541209923086697697052361356022331397272068603880620973992955859838390253906110819369332649079350060192648227352781927512673959587253070811943287763827693869291653009763597853806993308351256868584089892351441083532813446302629783570129994731377739833046906615797937024097562591613436788567632736641894374004610754348668897354304389314809485802727979552386470681720258723098515638466640011730331179594636079254158852727487750732685421804289033945615347496944078809070862207617614856977495808317178980580923551420750527465154878028038030397534782451422112254044474772492099557136204614378409103643663430179500255303167265099619285990859523336720687597552928551798847185734847632079643683633340153215339241341326280794445206442359199022762492017027267304307474753201439444885404827472381969156915153756652005429277423948041790898021300005431395116978790851878318721520611478390590306065804019515907299645875747474233433315082958555345762448512107823431180109574047349543988948892272880805566883960256579106172666646046926282718295371621451592089672841185357373970624410984854981915380106031379195322647175992836231357336686846202333335620420069207595955796391655775066036334358021685121127668006681359538607841847127691767336829638197438460496135597706973750765834134904613514885303690835777422942521595458871571950409527161596433387754929938030845540240438271752438680748568045656178309241362654496920526405511663236171779362585242421052026221424142057584587407031230286296025831176096810755533906175449574420857472906099222394031495318760482124785147469884987717875838374276226349133097913971147987791398544068488421611603331961054033653278267458853728393665084978874782310718655855954449555505489680339130878210443385835277168492106856439428977017001663522188014098538657575917976511904590600411675375552042030659620107418677569031846561951692259612089417741617205952389139266856421415748261042246912363336722281926345356983433566584904066938601467770675051419293929930769252443522939834002857778862667999397347725519808068100476788333192205871091391545623895819668548525127120055003528736629041958470659930262443688750983091561319452394769817199290571525128862425562413327507609231334786945477375859097055638853851568185938405424338037334469249984533470329875056661414623680315183687372351683723480971100357604825201317946126116935978280388375305010095591812217907191891365093578144699303175750220088421926032583671744335016539084507896531459927609449622803331136442072708693431855893780955748893746691941880203386846928287269884695856861623257098223264817982461494452280279783701781217359754669373627959620136736971225027166141386581937585607989015361812540146335429992403135511031038675657584849813101829967116144790433444997615658910854178068969876751761634537083112093705144189916279319241279637453274067732341679845729543057041528930384641622055519879467879842624056790416321174873582365780868858330617935553707622837048870187772828661189591935460188575808227424484947687669916933498174399902774931473567973168076039834998257420979359203741628718928455492354303329810749823312951303716190559239240037278296245221097883456899534723045737226842963239674630300263635068132308940088856671224361388764851797568689948198231415130683573703237975371665270455147979581190266104756273404400236100202874973713049717638356045098946974192702658173015442316735757467781834040872602614764577597790001835753525258540187962093054479126414632930659713772948382186795789866958094663986574353840436032891755740537002069099225982194525196943385486474596127198971636285706928190013956782502638874832247545367550087663012336047688453850284056339072393632324066017662949565184171333209886177533101639967165306239085386713389324118695397224687078775444333719509671303514937264607916311199355743511367758171449457796797710332944486693202657178275112690302885310891979306756544086042191327665832878323570536247637449642050010161593549051025305751417875741420646014284402940262982941732504217255064133495599566718013541338619759767243174467774478338367720332531339399008553434591123375818506293425794667466898817408581111352031834594642673544964937350005335968324334405409109782328014936335006587045468438882502832990381101113186828809870914950121796435461527439530428304792645732311740255596600366632374590425849542882353781877120090780138367850832519000440014156014917760862793477064481396816575091666674635905993725170057533814150897137614043231421541724304693098849903311823416593317734280219815001815715907334820194759619771179908839140339521631921559767869507085274094229573289921511953947422188715055926855790709036232765831165415928279231333879393781041406538006625839429273278457063704878073801765565064913700578675084822827618086975919681534963062437132459515806104739327080159622801761026170215431442596297602790527732074241981524623502117717171003868455065369090092406970670105444863065859713772382591071043145540528654432917558972174191796501952683191662781157696024904643090329785352851629738699945673709941232538248926940096516854090421239852248113823267317485165975144686825019471622561910621131939145122782644540966948871597983588399470618746326360975188229002803930918765702586013445248941637514888642530628834865077051085176109231191869287534656297053637855603108206206723966204471118349462807182738462671147164098715060159580096280384896260060987228026294262960309396815858730454740598587346887768502830895473219484620081726016961507124627413920549424671385999648250966647933128938016152436531590570934938225443778055476906358870767680090683942779592250879069711860317157339884144721519880279206716941836608150811164078568529018329515819754229463797269192675417949743224124880306999567721209345011119410310446336004361897925453612384298526317338463967814639102812174677068667702567440639772846136634970678523094340829940545855619962924436839420305665233025558242859606463596887386515582505695146498250321357061566494518671688801536843803270374072474798448900718695969814148766380203302481589057949395493569217719253163986173290813860284719359281398015793990808655421483666037101359172836745555122236259892624000324203783853010551831582513759389546346182785325832104322292586435969460798941709989759558041842428704129834720440494266410319503352296988674284053458058951786338750930723434128701383572352655955469602221989797736034621551971239019889550881592420487086375601770991899262057233585984427352364909830737754650928158281696573312690202556377935256078306446666782330586412133987299617551486735554225286759471162828826283312276113609271928113319867458291565347583399374621534287972127344734835933911588833608868795290984856681123197109291728845956676781335990595181783048052620132211109238937224346520771155935010393098292285192468260974412187809495181760490088813257009011660438317445714461438418054988500032168737967551627833472747700374442885435783410149262133841944350045241069110189185625762009892908654081893982656556269516510009773920469740161070226244175089312583969939218394144658526122648286416560153769071613995267927799407988530454585491083655945156445497049204649013649335255188963964377333623844971425765424802722483599451747634526138603866037924523934528764301552001064313416978616401305836993866950480436566948524700723782469953938786697724656365246222671617138084657077092591114836871689256226263497127651463521762268115652497154078978963386160636735161844503261444161940119197713900261544093099341845727456949386044232968966550895367497655052353731971158997772894349254033557741976269032049998212492575740773754563568640634106612899445440005585450409459502622913964047242698647191850757206644044341959820512428855293501387940239476510096464440814148318012506070830584114956559725123709078160628659213900937186129889440407626850981705534724473825837393942739454836469697700462297497205444666079479789407464898229370907136185824447589318634013055287260054391575740629662168357452650107596444367257707668503226501730615980588329388517152520114457290816272433075402302159324024269917021116131048179072033744193878855628367172175947025418093588496456349604381521571239846253929044284417768258187533669740298855611071894099894356037283606458335992789440657874348517382611822344491106056845195902239092265235454799956615324785902413057246155423835940704590250606416569739730147574252977747885277926983208151343698498684636959600613396525445937283172782675250980791216777524832476857418216438964806334464118635457560787279447684359535887838123304756433619852609535974031220520763205297688031494126165971871708912307656087785873379999513115578180802400095513722191370936630760700410362197373328167581303455400477655769891980916015502008528221377800655881971555242386003901767359581384478788711585399603609927458930720106820479035315223498605635133096787834629134575684365905886529321039971019464897188928353498901506238422806472729094407151965639161384243210082380370357784759308853783002638702274113939339339473958621325890668174428885928096232991688712266264176501623719812208393520204834706234193936796550813516463774257799669509979335109588312311320203242274177759254087230378553405249238809059072574451141343534503829279009281348166299679703362810187018063860492651187702007506353551382574582321169606377639724214687521683927191757648360039268529670435053579149521462368646982681449581420671798048848548366769111130446056255523985052413640822026104656541057817976335924425633030389842332594775357408356427435999954341161135460384605629403301920002005058964388936966284080515074573463333715909278888082693714280412077829056048180463582267250055644532873790553490707339075350112663836418425858434118776016354160367850962469933782015365167450013690239839724156646421405966990858221365003526675369240891002353213785827461317309169460005974364779035700299523311824314496752823076829916697771226624646162907110687325050400902383208652154561347101940627638672464283484911579800280359561862840022843844294311310956096167378366967210838667944844037347081210819130646911185799816051897071437269701091728032031097115166052293843335531055099946290232198378140638421902121436081594795617012914748137476552169839099697873594564762448927689821630154815630562162622438039831512177870861728533898549372783510923512414184541202396720616451068736983808436764136326458773266314795429810161250688509641727167027727529003349195628227393955676781221915729288380385442295545622863626384901541112048867179313709617378372512561079015614470887578712086523538694805849489852677520183010694278729278593982143623395438433387336153760257787519236100333768087539197965122482665778245393054809116260781299501189157209612941028624759535575955870078969549085003654796079542997702028599866513680495973867998039633047478198448845003163042401248677073806506744496660839622435923604437575988958863657187677633258728015528261759238364951567587259794595236110182118522126293191133948435304244420314372399182925758494212419973554334866434066370552519415574212282658268500643566799373386342536466118316078348513958113293934752698531464273676233723521163698349990355252583349240093613443175899076277986534935043462604433799810002586804066911631421747055016106351185682334316497180096311691379310085004616599143793925559755210373371890996340911535480398989168255990165761342300655899569651576563018434792623191964151530801249819968251153942883106118049741612450970044847716215185505188059411842882652268375698124228927958582378739991994123890907748307152835423935153693757469973587758102198543432013753083781470001558242732698758819722259439807449113836377307611543182972035151857411304290604576752959832157368420856069281205933245726814580467285396364834846318241168359871019558273543429369626756700382628786840363081004750036260743500960488595894669574878389198757061431870465350192556462637241086123101180786983549260769443480820686106951425664740867706090029350840456239275670822124350254904346151186827562460931582419220263140225553521112860346374169598693461281125240597231109954576211409611028459814488894351462258461899918374784818523758452711359464859636423479611148459898253700323284289825141559813106099322343530917971138211306917871064078321999240021137949143481713206435397520780107944434184510069314413587625210192482903602389140511369588573570971858178036571259271456808523022359229575474925434317697243980680005273733489491764723472247535465181750297185543206074893934532297130585741556388772696900716213519088538380363401247552013460855142077873813034337046016370142504271292710601450750700641747280972429723613539197394516099802508241854402638641212778286133589840147079159314313043732191966999007678318293696197284587156847923351860564424552240966451823213093763330658297216725169547745765510013710482137478836935923249593070291902744096076811188465728790732216393565408189748777676790030903921424268321528353713866743938539891858792591080802088258588995779352460581009523450539902695103790846907862723436614522100401528469801690638748942945781172788075711577273785064156835321710559633843283502983921964547398575907308122419380914071615800655525996245803800875718195865760857383781948933150031935296558847433277032155431784540245666117541584979543735103174537983318052212149728675115365228783214544891446983215405103602002934043477684110128060738689966153707098647370642848920003753224767646105049387792590278193985207365105913110056718358655965576235644581702727390235922619278250489391330390858680371163447311346373516184170609557196622931232752580492801555091690885433256468062651270455024696494849674005278534325717069395182953767901321353273905080503171597884478171047730739064792476237247065851320227813393643295302236525028588361782791342244770446024326585076419323415911063986730575774504910388145042969497928802716639612396100613368038482114900001455098351479678265458717526036513155046353351483858098374101131451151884974378266430707800702233942431978900045551202182075752710186416712408311665116577893564261238191599781060974662893833082364497740555307308210672997426976719671059384597736684054446608623163009058608132010052787847782397953588022107647742693487063437727009862664907264458491739558184248807729617994221925917528896486413869315067489315831704878714712043943510635656447986699863714501609643298344635903562861477862834637300808151082514397324663100461416564994277649414888207663386335934859786031794864894131310433639669284855560008720840298135364519783100609316288401005847921167839873575906111105512386646085236884333915187820658433685392572820080596332911397184197712997679837327997109008664669733697866944670217396151700005629735177984900886730105556059716819359372477688277116990057371711234685870538101440039486749005602810118759837940762521410766958270992766754387648753680511633726430065808334128320607895769571485025231294179884901912023791484381469608338722931642095138276695877882176244740828654787665013644257900364379690864416956593110389980168418691006886272151806194926428259228052624173935495280707939826654330345334185192792909160559991750680486611088005023087129574089246266461529579128392221635014610628785911513758203494127165549959571325863263338110288933801124751945501747048299311764778594221565929730372974520938001037615634778738628905438536938238046241383319372669018074591127465762281175389985956662625638943313538426057976081838877451129776785673551422506892659918525749064668195517106964144754833111309581271734031249113576644260175040935841572046626025157037395300981163901887439282643648888293296089709442913391774283475695079357787955907397566203234100383716660207462882927512059939701334131149758263065638540471755910892747603281678757631596250740879455822288431078267472302904980529866588766001240206823996258224696776814510362800773919015245727765253805584408455939859981630729719205426918487444167559833355764276836456177719365150419349532085916345330788503712376804819451237755462902011249183962315432359742818366167343572931483765250497880359462934657416518860535416197243431387661447630441740838489667522470892685863346630561271038271778199338064074914620251027418608200165442064819548822068374654067302693927070481805327634062212947069507080095393957417745134645175510183985170438319065627294129061041198954938558488112113192467485573122290582949558052150579905270509769532881879264892529061431442648544139558543221240182662374000020353753126832274114719292696293825945879623326759378614141273284358509821564966541744341543953517041988188104849636894580627313166095260661881291967883411678999739925329578040628237646983900842731132670834174432068843075903915047150520665124627193091562833773026646820833836054227917868688929382026115322138324588346272411095184922329446230534220639025352459778023829398615527367630338129537097304254805112972422510753897844468661173287667573837214260134573444087341806029035294605257320901772268874077802195231971169937594898469299075236862316174209944403262986894062932591423204461188408376013872648171703979587943212374729094185709593619837170800047273886051220437121950921693130285814348865350215015416882116478987817654826866740163368739389150969028221161807565846804989324613850368769567375323412669181599120379270981576732863770363399244906132074858643682743645258295848089662066708378467670914369627636862237287541225040430540326283838923435043894724898529655393353110248343758875898382614692542704696499559973237870979470338484162461084502039768899080274961530417094030626513631079816722184588372605515573557279065260460902213766187279413559508349538717136619637282873695476720178148261523678899770428742913415298617718890252655731857864210575849350357449041852483167513498586400862868489654153400055390811002064424298543641815804152946211442394986374860464128782409744084122611223623066696588028908133578422690005131017776322056715473421277046451197845216533710178737498196425030663555707052972143248871886874758481557479686194329558912394085638808516828940514664518463161807047350406586207963818958673346076737561193138964184601142118664070634582351044782969439081578096873592362665298032839980496568646300121922234953524313595763474391550574736986313245779840118820323479012166390381017952809575477506667413761664633114924493464491329690131492739574194898514882178551909178077661789906664411601297165136585725361914406254382735659103817657446342206689916809340507208096590094891712039843721458930635789957445536843873317875827509857363499552053991629662828668957028339795060505211586528950794780112097253863625410689079434859209297027066025795786778052699103980261564197065623249264727288247242220268969231481935881538029813882519906789857572489896622837429086526015421873942062618866057443419927718474460453368655289938789808681885400420132558625537582620131768396199858582225907510967994186917925650678115311749155802202599362453714177191606135631023473224309991278321044714167529388619568964067744753020002474851801992349245140989321969719035760336158985441175575078777477716930980562483695923969082682919213942194345584922934731740796360190888389691716857231563322102230707491187392261571736157483825184206875660657428743872394813969242592780136390963485191329873151113811321819042742056825127312769844608452784246585231893291910775463397549290700198122279634777745203592027138049815773221411233467890494023528851557928469617520851306256425774561613437224679505391839627270092441998279661305433436574178091923313019784024104925073175493201836030064416109816166967204163306436239533585944528362956229328370894567850879972165166681317616050489282620564639122015288346514380714616696195400690787494649491457775092138228107735335481992038339694140815991579543277898974521533694533460626471483527436709354128308137326944969044416882412706421919009363720708894029957214055863217166259112388261628423776250870948805045281671395003428580602598578052403374393987138121614679327647593178517979150567323589412574342307155362828630380244407234373633309027994071328167093978193416817196379609069497678224851777596598708613745356563180567564241264900138188855850636707256513242420681735646600918157424314121622774824522473036507285389933565607249969307681423642284429519991409924092354804665928917728658671258304261627736299622469703535321248054344198310573750448251785730661426936783095606519864639816883389379981113913123867340839275447714966567001252013262275515166882885916522548253627887794664749328587329818826753299062683619608778669749186455099246532950147858135926050234871288447559909377148766620537707046062011022676693475096642497552258616601614435371484863717448040256745344622447943765357710307287602977245944514209959553376050241311852491446044696597676678186269192569558885220697551121442750279360734955078537239361700736215702549158560613053085129872158857615461738437907991620305204047594274003608569291253821450138723414122045914879390281688180775162081794366657801858303802514249173828204020918150717213822417963474788710624281880520456437971271627276503440849698731561358892183729643962380181938303014568998131924342348547558767805718814162330705036556911949541536339138979757391948631537536180415063152566053448053176572321227643639088897037222660401855618817157924673524615586842786376013428016124915667643193330826314942942696819890539937119940690632837532422318779121237921010225581854587008437074102560868432718813983653863438046839131515533103626216445071129885395017290334978357897140664545868461913454908027326500556057130740043976211827464835573268768186959539452566807780307021389295549393328324884066565448728628447532292599759768452892348234581437334535694611821211061577062685428457291203379083558441178567836991275802544092209171705083429624936643463531299424455266441103850531564038645943959487079660064274971907924307723333777237758065992329017663848213950672854703249040457774602425334448198138709705416188996792576314844742497880278739535413913600912516985349751076264050517663851999937413769072685271993849017701167857542018181382342873671792309452566558768685493958703630030511278147666293957838809488740298634388309316387510545945675227861432097540563027009916053131326869441115970939185624519666759271175917758470207434792780548432576273053186804803185001776388905627907549843281804475484082163085784249776668787569284216497060244863684456715092688105834073124891745286100403664179898047003370332279957195026305828248932100280962597754915174882579335418272306587372059607576860910824764627189001373206657268992164243455551402027597573555237198556980101226461943041065505917182889925901820026133016864121783190674656718973526613631794968362116684302735024724674594420567780193588931602386411389447186076961819987671782373866537530850895797349051079438802830943631240853766026072377132477223901945134602232619094402717606612447740635448462960535296706310259660562935305620863088610773367227078335986990318429478492941254550932854030877116137916112936880102214728805626036014474941108814512062093869986575390447520314628907908871416175618482449117147380217135448919413779922726866014128836041204589382834157434743342588575881654761961488388993386611959991933142141659822500684897839999825990207977212150181201097511503451832228916361117459398012942135356804486676133182227360309734384526346328595076875971842412230873950295317457958983347156613685583491353916456938848636302043845481709547785490198772085782254054192305442244345604147885478454173426153103811904301835655497588396870721152012782268960256426337423913544905002101655091309859358566053008760997636245854487774338452073800303707599536754234741345242272441865467438521638764773495440500792376341923422037167271912591395838591121208480649534807763425645126821347513704473509890847377472881235179656628502718538483975792367700893289659148853556112739671641029048819993769220680785644764259378263348295190238966851907261840141399972251441589361161748931778000073601262121922719903198294684430014071176425922044417564322326325943444221663989599386163244483714178165514821987810507166280570936326301159397205179580234609166734705243371140436377017278765227682835147648153683132773880664928934210775968693836604686727977152580131463821405697161269568601961745172799173300604882240209976618452048964335161228610609736157239003598112614926334175143832634142448260604545974571435531207379062649691448327757893225720582628837647025045098847083716125738201535959496043273044559374915980234500730294889970344256310413781221809181990870899525648635172803942564460964250554151100579642601562335642172093212453246888201258252742407069406007102581398137545865686832474866362781706818721424693606570950904790718978729532230033484890291182395010902216987201141272806954693852679711587979280376984546890058181474647124342180715653421795983485786700780259354237072850277432692598185211768279976409440878903806253651939667074074780357243963389792300409484242127598542613427986172229747413200853322653671809326583389133025912665144154255123525570684730436046984913203363072615776293970227803754508923703645238144741618978393231040202981846616593479283870480615707143438318158490569385021295924744241374199632097958321989177880797036109266116047016690647527296574412454004049414538675797119676417341520332011821069680948276442995120503318336943028901551171689981563275241035205612823041502639110198646509238338567861029993065887965788664613258171279843781607059403420566340505207709340916874125797310112018515774754917398628226885171310187071857327710247329689691456188204094403899450377702441008522230827505793375860744938929361137505630325240351245000236776960682844762060888367006130785473034127413942745174219115564351472928224053631640757704136754927324229253007061312523813055343757425300898050914271366503166031616781369123274237966599733512408046238770002229370551551872176231277444808557890343876474892743330926005493024228230795188714411304424699459664313093271724216997166132947034573745612692978999493640172474982068874190359845659199759298066437070126151911254400229576230531680461559306848513861940676899524327503237232345552991680053906487877687213371788221013713678426626126115696995106156448463229451140910930474650040941060915937829831826363983556985031474368516604951566370219383618260642964183165755166805275516187298933444900986131195192006341610941255831380959413333191872926454376796058301049527544069259930218573559732021242267227549785883142179424605560807920558364752940704273143515438554061082764280661640872555034948474680857132924840098690226937963474632301619983613292874735749372651984794927843542286566234392066469858709338915055577847733740925319176588279811036069738181048648703470941723676886698961624552366584527031464528002829054768894913652390211450837290966086711294908611677180798159463026153536826020198195996036120812248149883442261311437708480147973891487263941464667873383214119962930801165368208982591998219451034264231325009414943297815619584345253547556408072359247486402725144435841845817455681349743672459710534146307361140810144714523969978996000051911667544767107773348732513877714159173423740988542260923774523799514120456023831794595336949207496164171391351497545799307955655743454807238597786081147964178604090271889084993162443833414705727697900503711060415345472072216933506081124873136663601765051971353512559655884258591989835104432282034579010245550704142422607423359413674469598303449704612172392678034610546098349554149626141893659357934416701108294632042839679121719107363496123593299340560309957611195921757176520127378626795183204500350924025926857572669328738324000179829115123057393286209918724294248597629976411449098916617258203022513292294172161347816365512079297794423262672704621774885426047442876825709775520991095653023039729099491799297099089069879528585123897551752871922379488881570989078405350388381164345737165796109085650841077260198284786200237208614601528231207965523145626889465709597465673645746492979892442320973816646385477309286746797664182316025740416072695886437042321664308112290819010260501533509059989505718552951249664894485830195629457324219629097582284066914928989777818353075251052362487066541219921517111256184888919056975197778544221660050479585233949167084099804584857127567724380622655110884609386312086117742349872336332211987671309484547412375811958968311921311473994760744508557501262939378599056134410711317624881778221955931005693246271209063482600916585103708838146110659409874181637748725975203298856370996246004647652759528779365650939958222137994553552308991906162561478866457988999788865301961298303216969985706000015250262844704571448663611876156637400675221787773009017844647835544460748195989949459677121997488597244550186356276314379971327176062317998913847628533654772283160673455433047014871052489225497927241070483651894869560642785171717685154944683299802546087034542303720531038478196799965383089066209782757456983867555991432322279319266199352362688899835318910841600340290744660187132549697539884929245152503546687528795317243619681265253314968381970879132926051528260906676833833273846851202850710886494265206396168175587574411742882158399277774530776925325710966088972828381729245128904638722966824560368740269245802193057334794466108741755597915026926671121698614482210064876687464409509596631079550513497646973248779527736396233703119223065348889963264242826730945858637797276984619196882311629629265571374794099888812695639304582667560282731331978264715624132396363479132951673924829125240186918459389315295304224204789305986634230365345796248203104629142110169687316033289432716747257344177723135315307390517121945745910935665088858462588072713911245151963458785593083116269325033792968405697128891843402874772724016671624203231237818116872261901096071694866075171439966314991580536273922027797629238064389686169646314027189267096939635387369107431983753199028785670402507396935240142518795862985394745540311423107695932491585215639104071684088120858096911519367794934563368916137360332568066359040765228267119748189629459852948108600106714174073671086467332894897164752440144492267364662758767853600550901846907803812672088904546390588460492879140752205948307616339359962121613700815106810959750312082614870720006654298421150272134388868535574767367456436181044687055812205405754441811399982128624141705156504565537898285176952649261770731028568268082019702099608532746571047853491737258696905299666682955233854606925840040350202249006830103372435918087202283222586240045584388745302747205157024229327816387072111929293735765724385076693394938384403804843997880934395503579843179121015202493147165747070922613508663856833937068186979891088683363590748518537897445943295762080232582703895516691239219867285223888751839693551772756084029670412784518086847345982761891449019438319917686419388501372453458206464161926810850329761991024555865142000846893804388076987151878989431854781558087843004803446536434874205103483682823546971985188693452897882458495431531591770312052960168382533263654385450146393842719520078202495188637052260099061980205042728640672365986181303316125669635567168321189459349319341021577028464503438320797345630177026963118031646072262402505314407982527295154800513704733434310129180775523964644453846166659880031049883776667449041237193267802036171398559004643480010523228298120679058861543200474470078271032342043510863971098190244683942275213844559678510296103488137507070365469660878141842568404784799353091179805644721686130120871479481210916188376187897703114803508502225516906974595147690658314600745743168669116884166403207902914651261016976593408270849547312499651407253544155038134991370095868768606429697781492916156005579871651985345102572616217277468220923860809500543153569820902458829569749974461970255862773664488055692029576182258586087781666731739607347897025098170088642833941383728985491814318045872395383911603859145470784889957282479034443774083093397403425541099737199802077635429050611616974846137318067063867367604914434293475294097720990799543958383863866343771537307027356529963704745705412849374452412781709659641429299856646760592234762833146384435929026008701877752138949574668101769179521865386392740578481757336948509794258872620391092636826084229440865471027844077940718190156277847203231437889474320266978664625781533298598065107061136970300567719016338327180946811923866202183420500651560605166557459323729273859118818063283460285718552115954211480505158291873102418918669562725425567223800979108883911999059705159882960856150368421137100064012483904720925069027774341989448842157215211777142607353044210558912775056696403567048744986355353588452520404135046750192980824042874931457083260024735806549277588471032463853776570325360525341864010179383838008086883060053975658476935208489449214387049925851644864809529515176890333543704739812088568099334591243204307285202520114767327866250565601563024524971389408469558216845438840128780963859792314221009959495114619373253788811364795871444329278643785620271828099275455965679305151949321782587270712752902890765874917634878599946955736330538326068533176610955879460638532929803235638143813378019439749927151465365562798178082774426333769081219504854487805757197864170354636316453655651299127156314709114074700034072573571061471363974375487736265711834246827771415211652492917800957160683964635249942122803260390219532054162288083704452505052604924432161279296064993153575389227379128771319620486188831271412345743254162626884677589872063738181636080739438468980443333323983436719200006449548349316629431605707634596501690862203616921278755860877504660441923629296453521878239075473257349888083277460140504510460538344997403799114517936182557052747196731543478886364577030292406675559214400720867098594115314069111364584601367788416644893337218631481141773727947635208106867037105420881460782335823940090843302078801208852566086748758672421217122221388074270467068255874862702120323809048549819970919027468486594165018490079563329849762550131370141526691464548259762069724112373970349588109459347595760116131493906737550809446082201690954630026926583798078061193288360183240646888140597417650850275084266505865343128225850127160214851084167313883406655734556550221787363228368151514046379532576021806521510727531048455510014734035009753199536739124814812832182289374448501088107047093422533723661526122798251588618820857142001500072182133180084605733731459199231765597656341630985596459700268407923374358520892424007109090687250124132354051694361420286277989120630709561023021631769885166944431611211628994353906645001089115196852223227715090991041896769786024178304387998129286669337687163343130669829955928923553127293949316771647779752429815814612052153970295534059568757784732124886774079365506296094007265147306606151178275053706642736936734592970288672795092757538446122099642775645112782478334062796132248124637701118591886347601518252094883099653109879843515477465649298945465182547231890550392068515726656227250108400984570824796431283349971678371881008731172934876745225353586660677737902377682464498858152194496039642403089084629126341376267288662139987478708186150292951475142376744201419166100980064395596740546134207670011188097218955024285470102284490981747333338112541108172765543980274831233031486515538862293627542805412781507712179940551272468922700699933338250378022677757024096928584692118674897934576280191482628510728862758865656276803193274773525584160788014764149692930064732006744396804645926391563044032358648927415076445093352402624040013619098073749370561837646861929488132090618212357155540587425692788284356760607412573862680649010734051524030042285812611414797983484758377534230514632647423949219665430382150579843995708633373236014163202510677765234770206037846448649559677110558959711484276879106990828054066336436026876670166370750791208556251190535623817781155092342953312659789036732108850094008344513145421729508038899685008132303015261145917578325823563950028419536235674492963758588220489577985000720786726612780934149614069155150094165163978683036224489102831054733729941442913466176798280812750333434481435241094835577116856619135293646401220850221820862870939483722721954497841010426800238002651501249392659362456387947244829048709558329116224740505458785246093102858605161609102558093663569323818171240914892245657500765847356843794173326886861498492103861468522230447581045747232875151118139981791039496524162465799742287774721021453759105198812628146154485003894408638150102441358280701909325823151327985631311816969251082874314878129410037128598381845188276768906806212873132071188810187343653738365858167655866316552127448975055763919756202771084779934829388349858883850345335524233459547241101025634171916089374164891606923816693781002741298938241361666631515114416118077600760873573733277960545904546239342284331992728583057182733083961617619688543571448875985092301070767815581602550278049949422695938168085578090553509838562393700673594630899616997974663355886017600509320622003290361064163937928910548799812479982146278792452226531684242831134492797744868952166838011760824124300357955734583250534860534580770542988018219782133068198705222299800154310172883580242155781699582408321841861960753562606994849879902038457970003660994044065869467335502037839614628417347713406495859438856956379063974992181712289644814210284889310785486269939217004617500544039773770997131042299538096979328384788272109677079847260856735218386980646348956110830122437652636066331391775079519306036546347915955114437652034570166326639848130679751285860665898163604935611780667650210919005909518660184059503099775420456458036329371740349311485788377332648440772805119192864846274259903772229243000092579208357750921461216878252406816762041180465245204764230053162474512536728767311686311165885891430226071780909594725137923565144609441072577600308820559689162278206414278796058371478175995514802716709066640759629717247906373758354524245823861146670223321875893301545904850464206570021792100822897615900894000564060412984665706569480532877570419767298573798693630398086785758999526758115433697917594008595576034335847103516940908772962182944264195012489043494227416253643844783249819937721394464265081470692007974324593274752545512394641164657786589496948692138886876454638114978981101914677409769065046089255206615228754687628235086773994592918180573992990928881460378125400420997240559844602063497864196243817292141262007076982382620471024778960466864560204387682667809868143949552004549317660877926374423859920247860642085608948236108276489009190495480125873849855487770429717624185713335726287349971275026711198956001730264029542464948207995801194686107939801739954140376111668210262681445930397859837240919508187120153537710630533291716335275399494896236118993412302309105944240360742160347576674468687497415483306819161747792098085053418750357320130264211905709835755620654227061980822278764198827634003364021084759366229979370902319546469539711633377122249696237198248196497521910484754878267250519882180761177979403394665345232797188986070778579691881156276529723261938018623878438871395218935187632973431974377642571822472736813429181331428047744190878225724923995646356646852844900621314378483049860114422025612895520901319257487712144171101171334398659306513992211096321771705914953006042024775269469566345750356448838388040435106605025341289839867746044182528781862881119259518154333832352603799191358179147075412641853004488871155709006484415468770792472634757774845547038524748325548101915841850938622016277943441702510401353249578349263049202212808394447599444459128317444908183299754769979049857145255708118541877994511040755837043313708686719294299161665855725408954056643639232021346360902011580224906607683330215974995251315629245519896666984407211590731522875718478699770030224291180060199498007122528587735595665348166983759697988817980837597077023263496649124535574843125790535086853812486851112266583107771926055962640933452875676109954236474795460798428428263455942535810080031955254546005473114791725262658161405136291294565784980923248614010511094986319689078113544673814239784667127380516195802137444190980868295551866125634132809435416053675233102161499656165146098842605344396075394145046188089946502255029429893112010529723761210524218512780943669440597484758403984188206740512563802328998405105432208993666034850508853496997277096693317918824517419694169109929177198054164024909392458492958720405490548417863413562399511861367331460841530821258068604447091294049796617322692206159417159522681379020516410111773093399874163350428595690851698197069690131140258818722095627128296368750597781548701885016921509276719350626537752715519623732754865529441136731966911706838933526666695708109747655486402594205660527464127790007711292457858149389531231230422322829987463623258275620442880100874557379529855596904420865727356763955891970904685518551264710342918384038038780144727759723889708349315649767448002747815214618113411049342777453667081417612964175677969885932828252969081795414859102079135858565745821686469748080907291026154080731297309262066154035375625262090615786852544786815597981035638622852167105869207764539092564407860354986886842623550628502833486638533265692553850679365697092913329757192328746770778686051164593903138462713898729745814405745107955336856824393882000393750509596045301986030372815364234994574325642374699940900565181949981639044450692145940735237373842294246565386070411772136443806602013850421165795625946526923364484556293582453317327400325460566925551953749588747431558313034440113235898435434188246756072759722548831017073687226322834527356014726973866909136434447975574942972496411405454107610528802564275444308707904519990891960204319153825426675408300078591221339402189042944847697748127135157113400593295209043166756833346240202144783643778756124691880674134012714133671982919657701845197187518623701340371931404384921925145276965961213993602962501694995672803218824099095690320981235685030272748105350144624725180247080382592556478812542814334098719020728517904942068938164527268275963184431382116235537813895486733113605612009415782037334726920488624530747823044169882379784765876747351276891209639774891469956239277613137642312973214516645518036532691239425253831199701195479604279494090045055492427565702317963161861284895657270790855113631225218369345412566549084959966459959440247858736035814537364238403142705187580854643533209048133704052545471180966503717175993949312998801886735813581978058322793824374936005611716004813484789870824891640085643680070991145562898180641756034353102689242024733865737002294718277914797739366776643519333765062442485343901319506717081530600606796389421438521620983626007505591866493346348670392772142319901303911939754265269248563955145051298852699754878710711499483812658021565375151617587795149883068588275731303648690468252868331270211640406289473791969208146186375574339650920243945288158846202372738753906886712615154535435367434424773501234710816988345566621520601710311268607634949049607562652533987482966776894122005240243716412854858833408346914240502321012310192854257626671020669711379915262818905497886990614443411939843631254458602598556391591583320392001644071367662612852393877958215411986868425703514631588732694619992077991744454569837776048530351020555772256572217406955181553747264138234667496956158760087680992674310085431328447476172646542671032139482674314952434340470110879750165098767305524077286708089038517326024294361843043900896671345338061895206900505031838354229116982535831416097873555466123753975622337945023092440557623559220718298560537280024086568874270452609616709658597179436290222683969739237522712952893814061221637722260430119101824171192805180696144023723236706390427683916727335687594445633686998801664639642707221598472541814611590954600853296946124541216693678349160178942839248060993189569385786216778276921540158506333893156688644466158304373453652818574236837967498652859986104088560976973365468500567539709087985756467888234461793479376177270377887106869611607666008532128009519023139414370440962539017958951385281259878920476685585392507522332612401500411847822675370283147043077850001439103094914739449424917125378596513677944063158221964112761925848472694814689903175807548027251547300323482082556585394567423429320652391975501569145201087226262746671584449125977975570520100074754489687238718590153869035929412242307790647758783339230864289276154255088156546641342594803555457304450947640788093657930460116716721716584768468306174606566880276784185595892928962717608332207960596350924985702346627067074442175024757233986960837027962776465371670198549910018298253660552406736591930696820563199579993988976602045575093017731168384928121435844856025049303380755644397177559723036055987127506678674918339767510153568674835827238637346722165707419559054271553038290542378988354829718172060097538508214058688318900588966344859022749707755570684912889599275109160268871294809015712090786919751967099630151804662332867722638756049362927790396404346113019332156845632875007738070238979659600962459715253333610122170404195448148577539148309256620175205328328698941351873075716883300276285527189256480588848742893576533046439354410246531937335682009184007154066440467199723892191003726204561560927930543122580901307712046361548438945275374535463793705361798054663768341642327132490706117947210755869714208035552299438459595666343820115945694124496763950679565916309138456529793387587404537103274937730267826302280944834466390137968016485553103897850701295601224533977596095956726785242256090569005924439426064144392310149106008016097560511752402032237781345075906902529001637348980587571065774766102906425277052061522764106849675444558192154668737940366312528079370382709124413854844080469961220000081232258155234452125595243152401756995933236863403814656710639999812477735272019193612886764365202900446964385343769334932321335746458143704734940014666203384944359443567747586672990046938422714591577687363317940677507056875773854950401100950620567705486168820188921706226049423804269613886417039522404090464963605125608901440816087489130346828214834933814522356684722514263906325836969307368057852282974714575670587591505004256157011013997460210227272542595241138503870207809030073919799929760035956453321916803933661888634545739762658142215292100610422142193275905351624634665108919796569913326065521295225393197632921223053963349809941058796448347157308550323767260322236394609034609225687115203611317464537895697847411899853498107466813046448662305883690298517419380883139373785731420353043080826108566994100603050010372152430002638180075862025225991567719504050553140367677022700203764198475868713398358973595055413331737986355824444601528060968917585837518094532735180550107599153786773879185598168759574473302421973627279017200553786827768090613652394067924051552794475218916536689271872083611830428008410142329041653058048677384843979052072994720686263857717670653646894597847592196917580439987507027131573460820552168892822238947648578267972552998427749145528854594783672123062469427909204846806990559047241214991073814123036019468623707354014019827548349991644061252916301047342482264495445973804523764629960769531098415680088459125203286750694937148926732215512213850133966540540517483121005321322751808686249440222321274752782888817422930046978489143611017586470011977783316630134678764028949045137441940846448803662628956702159570994019732240396127356384234228011003687209338415350205845816497419746480886996495643310344189252251374385567588921036346819764951421776251313116983342406609347767395590570882829172286102328700995654670086789331072247069631784906958124535159852964148700700518846366568200619267183541881614054265557329878668812614862358368735797125605943433711489995839848622030215298691607530746928339418704330227309916523366734497468126127082874922350708380451282487803248949240962425515823039943466472809952691851050701424265681514991331837106282890248583113972043962550098236770347079032442166777523221828228556688212559061675695346302652962913724727820157403808783197394691748869547762087048488869183902788333747432052853198275260141503320413177102271348991497761513038663251573187649404038629082355490685201431458302236803136001482246139902664805931238433424653865031344265783362544345544382717902913100710682354374800690661246222236923889405010857140534819425992973206183167524262934038031194852140823954271793059556117254290623079775000746656031489319456748617812309009854089225274550469964651261733840849740953963579293035008319690605400163891946626954642045579716140252194397983281528687941567199198015990780684317159789734853937380962755152659045548324006735757830299511710601882894129172161856919243632238959164273604924328777223610476228448804318729181417715567923598351018956594182582673122706906342527294098748720669925121156662348063650816927575158103834516083205013175456065706120965238905874540694205058046054681483455471942620707834996333754381472805047777241178368645881363794762194070618258412296923831852471544818894637235100727197316946102592849788943387160724334582959616916996943455419075668162202596127871686513890528258876205390037884702582377970531179209200740709159068189591071908469286993528642034001021795030225786563176048336362877162015606140068445976861107996683677215559388543556803558691110278666471108327186661318153042246807022515767457269510383704434999511977034643287211521287817513901498985699035585169493661780523609483585351800239689460853461693820316633504232467404341094394213074514393047475621753380457502609684378929025408985384592633215196554085255769350677294056972526148562016558241721660532353040602574319401525876932143983081759650591844760252464151764504045531580678922288438857358730579291809932831726911151241880060957449187723196314926134885931131440877634995138995210474489071210588440227686084603464038479451044873189363528620372330262037139263596011186052962216270963011900255072149680703343974463859183579060361317888804172839376066684272574933579554239644995155188833394530590166724863514163110747599269832153421482793755517011381980612739349385397758928202085532890409937624759044075773197191246225320946372687415407291072950676851676173661859977163915859592612128369410217406888638679538746556962661688211474834390029006626379833608385591915455662671787549140851171985852949963688266418729727353972307097374763744070843916740048242198112862379691221108979053053588006677339426330644356203943327606177242761093938421296517136973275836716171541153033772686299210687623578018769995846991405579764248662838571187915611742365660183431875953598199929759041044764211936335564153302281495876299334039919315187675688081274815939140688230489532354935763435693816503459609948197060973424357793261560951249530932960333796275746781692322967857621383148599297281951861935581812180727450027696900298760137305150587016568338555033758703348088381609054919583252740335179011478226675481841809818489663883892176184868993149676703966773837905596958432929923660624276872733580266171313224866708727596209038460810979056562182690542373783746648105419970826068079657841998781185696684219053329107412444314597575862218101266902769151641866673857449048341680972114935531127484485978471278033599881823032708518877972148298113292595761413174004785079488643624064404705458271512162318256831074960055554245196358637664490770390178993925069008723092167626466518181963561105955345977998101695539272247427861217421447767647599593017007767004697019612898985649072600410172685057841018697854373852378555818769023483161223643500527808899460569639226688644879520770856745112455169971187600690410540352933531578443187517149243345671370254219946374231168816915134014243201788251158720770835370061123023533779297204006024637408571071307737804931028992287486165588159853256928915273328152081416904771694091157081375007118126076283290748495972738416259733063273330844391535168646983747040603175801044615266552085717182464320210892567669801690973974957442020592184340994765723306917951612165112940076852305457924232322570744866547421714668304429188094303234341537515442311195570297444276486908629418768913406532116066894116831789736485068450287657823103650395407747619091347913217626465955097980318900592184896347220061275511221075141772853606105515225881816541876686668355846090091289507249973040417287685335077049833846429875800039170798367976900263884476094384564793033569393856440949489167170930845506506274898025371523176212841400853974221284257925246117271574156768900509032764867601288517736478816939417299942324345308146159215220495124960789248659717717691188109431748683368699889382824675127231836075372621305804083187318694301540451849829391831224372651218082172018853419399479344123301677671719909531117708078300469284347076304655524461080460717986318813748909969427069423771089999798719391152534386071550476699393385846307916107794759905238093525347025312259529275106088241679280964018082079079144594287964125977069506249964913653503231781218643646161295420183841568194618617641368735664165158899813842290015481397458755483874189679922940884192385560979879273956955319509306277402334000251493947198611437213201111823421541518597556139398338502738126175551028535276572989596424307539829879057176186602350429318940622090123323710853507010880445299179938978738015584948683803786204113387250751112189712706857446182264905401973094359880695917863629118943203949268292351755400757957393365344481222753308374400535377723427443121969963436815572705864996205920692165057984242222877079082439244100288258412194540991985342950851455317271872488644941297393989137685869858611589490359192735743577485427120245294026280236509111262937153819346482760699302491752306006065255152192898565194683440320571854150978968086894225296382628438855785133171114851311638756290435279544552859469425638838958870757970875920085141944408291136240508022497110108207259127739902246676444091207871972592644472189813308122762996538362214062190887492920449567246542926567921420992874934375987903917587186241750842317825868577301624053703750784281923474820575867968696256155631422052519062513462069391058252825495541676244690120652097341066781455746032111374493472922101127665424369350043114989731819064409703606180545148955248613922524670789944966705335413771627111105615775205578085709165536839380986288497222596614339444387998918437025312644732824006370109786431821384298749774205207748646556583640794478209614134982542854990720219312193925879967926368704185759400150520809310021181814031825498186380790031583362643778054959486410931776094796737895278985787017776855985966155638499265945477820895331407042626305165468321477601546923079226649088363307345347111305228006696553509865973191830462327220014828604190733556410445478043656944708234892649308307667535653413052941748989721107235504197117280815097998895315097194016578942950459299103592409478051503898311054303260120853483041871861094934089690782726475247490893198584625789777879774285212664667337296965275911601233515176356414600349921704374669416653194234799673233902369703322020848313215945725602256308982922946116362291043314346362538730681403310033668962401851774887700388689777625248110952872691022698079459057320873281560459386279489850709265195433925461818782636643909204527958703706261294912648771002204575875666822686570173633946965436353015012457087972498745597292101192354684073492824627376699782322568491487349632476125217270032067773926749509841021301511029797072345101537079440061539718787185996458291501540002073077623893749746517200258875551883279854764989418818394942963136797606930920941649576170255495277118911099086132682433300599171401368790863913849055888257624209029547124998690030183018443049977104948130068343421793757362777386859244978495097382099721129461945851579939351917053592125056463825924992188679559961165057223450416837647443032761475452982597927742681689501559642776972273428849891986997781472285754300419856351497883754521414866305501538470886820481206732380972592811506592752918197976708956377651686007881473820470649360055546804020407809317870726130932963515981122443718337192160028212506271386343810438081140305999362677377986608660950382311910992417583405628711288249471021159547868353377619323831664412805047551941218672719448012431894288847392733254397756941706668685286496272554851362320813128593225589985503890384683758677236806003752357477848651104346135336073613004649202177719126889463817440645864188764763947716277621857597010323019915822957712509813556948269111215642790548200851797066988426581685255766031808491670010668454207755882860798040807379300581132436693325592148272504363553233701455480111671888789614055106281004928387938107695804108574666345323790237169855040738746948315684882475404744841243388176704491943656980102737671130658492435640022624203724371558288083155025498453992136061269615235542488549509980264758457979613715954472739316840605403143507754509954514878180126394517105648657895847501548657603167512803323736843101350940710764181809971549489729645058599298248198437899051149689301032171884397797715536694314587833759217624469571360499140702960666886527318528875532803006469001273031152184267710093515629424852586125704039360889491425622112119690370850569170520798530044946034536808273484001785928194570723513157639115223949381070846610040334245768442318652305090602935547134696267488508327593234493525855142923516576814561470214471536399170080554811374129359992268162082082555978486549347744052609356049090831675267651182934312568327091294031640231830532065741587445537857029430886890170332326928217793830013527216045568886572600444042801527561350122008006985417983992066782517774244871675580085898584097527488170654185995058369104044644334646304737823022186830905733225981108603017026685948293722233128296829931870073794737011233499255022193819755357281104138741487421482212845353947323094029592146442959378982860597919212756326319021594521552297623257167929550668951635258631407745044470762411271576279544368771957003802518014917715741660026531042006619032608696692697304708399750414458964207369248496391084716422056209011452099084485554238040306341125493269242146458955935898729850147036329736439507286911812452846143735142450512162180265104176253289495388640076946826718870812350084944807481230569530518468492250968530780966531785988845937794117066520482578786488953580140665046288244016942328110551128378649280234728941619079774822253802557769873793224642084365999264827409336600453989408869797859692792653654645954972505199983399940021192447731249014843813705141212706166167614942909901119946168034340500801497532378003841752108549797913918560038571791239523211529874414367993412937120933138694934949581157917214484216495304215839905614556447802407779691234716181141682867228214247603702479173624956622648466431920043665569714610869953185751927816913319973346762571697503764412063530000061909864776619834650458861196673002170029323314510281194939531621670517765583040894753730850550409991450334724227083360064821776745902763397645766747596143596729642205468356464685014075390597390927448105883425086576302410028141035981972631521222003043623569181328966915842320098864109280708980856614863907892742765960779110927835296357903514649103778944522928861792888434442321488446346287367767599776482926614168412326775658154182746301410242979656815079110636558312092997952118074587890293850732631940702922323215017514871388699982824803047075674861287061869006405849230362776250054821051395218483588363542170274224784213320460076436552722494822336423102732890190214600813953690690107297645067595098885739891073762849431423217186088463688013967501601528969298978939310544198709538500814007757366029269105127145707276886699378711719032111340533897388331732010183742264729547322561044736838934608397760056124195834638239695418659463934874528751959319172816161043983405964524847941971682456536923073340979769545956811919993955358011156848469664384664677631612202068843027210960693558405214789747624924317216141042428969189622122810865320505300317294544896784643165503822130110254164298120440286257687418604977990213682078230608553329549412096854420563026403657224952134993259088259940934203172828510162788211194245539128819144535834908601131897412532927922516612581955077394881872198950894031389651749945318139443119769792682024767563835866504457796283563335359918861675864327068321879695933347429988319714541329632945737646905054741604738904466028055930744154453724375077375749959133955756036284586049855263484474224427515751038230265497994819699872426286774926787878997268903680323430352520316169018276875454082495053277353000059800667777036739332244205305979592796509262241578557366625145941536292418752382235488196886041181020291563466094822057502827007744125057606994767596978995591207191716023202939906018483819750517985259972185918529031138144317058151649113168995811641285235812934876026155125025186119030199744928429297714354025263772931487004440704922881582787019393287383397637418568074338132843788673554756004093113733807206764876823726881975807614360589840918662367991553699004909913111359115547526978192277675599836696846988828668086491105309034029860491115504618128096064386607420210489634818060608424018451720720549854841555531018428792097115468377264180996306873144937984692911141240291769603449425143866075624261341015143048851221520359196684029036420069847948905922944678499306753706230711497858630042399482759769637494155442505771404912300932220811246275950294513406752750080834988482967330601833015354404896057944734729353913487193115469101634716819076180187908878886995677029976447789238137568310845934505240833256608695945322151876091985865690384249123952445939102929446077861675659027182552214291467610416445644940212190999050224442699143117786645189659101856201480706419882814572280741772447212920314151939781844828408859655882205300010300713083995863409887953865725050475947464853093754843473461709867181716099065424628905451500571231815209982660205333126933267487570912249908394355187467448806128967110909306141902143572498273469083013208933931448717844648032345044774241724595721309347304614379444705249749095636034072432041876740866434935108642265931683767036967607199302396914525395626553880698415419722110331251676721261199228384006829823369098451549024628284292006695391237541969050494721960289070541536085693843037615631227242297037577047847705093558597599550588688582698326697924689722050216105667437722344193461793267981402765423300311896670288212158374253613405009953606627717142553722935763976133958544815872648562666993782629321515580465918932969509037373362713273348589376936400619166448252444939556598153220279384743690291997193165965510026141908389729612738485125630157654293894292502290492840922687065021009512936822342543554540055068033023189825723628550132304100100107833731191752679518390195946746451379751002331605813672743860599627783449457387087793544050420515623406805054002442534925631633222042274913760607519444429005644191964099386769819836469073311069259958159652037151371085968946192888685043599049056589807737257371208712441357185438363647374991985237038134737667970442756020057789002591524580945053213218503997508540761521207836729289142796031320133581211641736802884800113280599841264543130331619726282019094832808348000150263236414710551478459518030708435647541744718003794599138657526033880992463559762532729142508461653684363825994301072672929188330211645856818260506658803985001799232328254607013399367185954389904995689241641457424577968302619960697707024975746442299952503284237547092088797422074558510886057351539233328487405025918412532676337552998471265150092702238785443693144329458729287669985716276132518796465592486749878470738208032436382051059327868566238700586928881331965210411559532721886569477450331110418049037633894165896034870146875883466560387734471125804387907876060709366525871748338871772493958384446967965064925383521771784543029914728366181757021131820528660580618896421516701429923760557271407982954090266473759323478600502475254400468822473248749562084950793309218887619410895720584037310535792640832621631465273178105605637904450840292724105869169722878058236251146758904389372620048187647082550737532146018317631745430243009558229035163971876505811192955474729263271327906132217655007485832345942614457010265586254614679933111198527852499868324545877965028933586954586483170704286196614116721225791158080053637956748610900155435248270692371746945325869584518692358837969560213936430337997875073234097480231138943273213004342413018867178665075976493428826080745267007535852318290787673323248360833884949343130311994392920584378915165604749406902562632024521575948649854107792040168370676392182103188958531371105046552291503341628598540887864705974113017108999089982609045161835672221432042255705042921464300820667301189556383648021297941556729668707008120560564211778881699648974886044880699820194589750396444669042527926450221260072102529136484523986270258543477069404884222483730236981086425996072165593610096463411880312261962903579730234227447063456215488472975273101604407560916641612480638472512168137962985028240277493655337914038136222731101301058749375128544789711372640146813784452619324409792061697268794390176374968794146843769402691812045813403415764293852662504012187021565972773126471492971301315353947464566150404653109737298615052164729362936073221571374119833230028364747797282168224440092990816906754179850642172640755255722045515612412725545767108360307677829189845752893066952672123150312862314591428524628067568517656258489865625610416467455438385755050361541489728210010894251392954305943269307587299706899579613347034309253302772136240122123891331890217466369694465115346597988062451968860790383890843909275043150956593146548021464318627508955823646667169684918322111300741762360858642734280858849456888741041914535502624743023082257711125547808623751325308823121353012835836938556984289307146962246816854884656709217539083196866762000736694989868972239848811592203845699684271698754701718781867041004855757822988094032754639580764386414178109306061257622233605208947482006799268641567464109983241794710232190682732758560390978193427135426431504161631992427115208908409672077207217443618156979400487984109270209265592308862858151213411107663354314176589457359866194594272735497817183094846827323796725016305872909333354534345345286779333089390282956380345622792670037488107452674305924039903458705375921513849307817150890532079368955084609642177509776446233903160247847078427842623550573085790576742403069230495304801351353875011549847757104833114264573467794234056616621005541234178975569096140348129224732106212497543624451457150483459902025142323375069816125353978043267228560902513583423421348317703816410955590723668342093535608418889117849857068597899876529934635986865025780223243802445185508834554216764375904841077734625011946246350433763092475262952609133011005984487896352657855519582041792418341183944117320961666002783545597413392850358187257975699882406960461119934297576721432503533154475641602919305855149567303439913281928192452367891958544767764621772199056721890521741287277359946789565734053565308193099269814718038084183397203103167347420011469378289508393397055413893948503390906626280617417397477782564813431251714648190088259813816175422254970464355036889271338690264860199344380493532206811808902405607316341822418144759110786471925428830098080795754531556178516078490703537005057731857858670168899665168410387141172061024523617735085582655744906782349560769456424901746035373766956815853736165476627309858792229553426675798707939636002446500894330088195420289763623862233932006975129405735251108553338107802039896826643326406447749138376948011930519881457034129761712057482148569020063756212541096155767133479007201259727634720725305824575300942551903845022278167734819244930316572288709556368092593208935516872773381354070405089962056824479163735678653479271974865047395352922958208887578739261056229082966890511392948751524266219650391095159050650122152496964152431514168809146019300428027499785517049327670909449378718174523196470667933980819981822305299412596823711323856355096600860640042735463871292460994428125135912206955504664574734049733908058211558297166511747957033820561069400286432052800013829215009097595975932936669793880485994385058708976804125892547190197652258807893514335700334006736198205505647020609952783701152925951143993639275776585296057311743844548298873827938217911360842512938682568530575514497823113335385778336148748618126835107767568983791437769714087883729991061375739888232799715610716523626224045428638329663311565139670032041619006919013258770400539869863018817944292655615702768137050211383188327264972336745179903819715453183483691929786230534093961965366782406716607974961102713973111749322945895149666824587666387628089161887716009308523130248786258803046168620165436112681827310936363767323784466765321073611981749259043560165348268807941461905133405812602358528478084299716927438993763277443673127411762907858586530265321483164281787423651543604297549295308505242572638773231245646727181794848348008403039567785619363344431299712397109696131792793960144365327281728267439718567834298060002523122355276510818930626766507704717866563191569629468404245155483975314935455816138355171050246949302625026729173592061382581793516774597197792744732365633841733813728784294467069897556914841719881522392536075526239016253201241698450126408826591216708834635376858846657104302553676399975085566823533085254826390106367283931993823230826365565922953833213638172773138518046395815775679392440843414736579679429098365817762206618923014468954898262786678218485955657315537713785269247276107904667841828921953224331786600755232904206135591919151003796060742904657727022201319806411752063117771654377537553488339188007802299069341599569630448510326156956379262571710257098582551783112822404190372726818467226443052351564905791889568051514386856957127626823455138358336071632390331480124560372075975870086117801654716681420723080187966077484470847531404464890013999774841352843468325486571362123117929493306443794642537019871950428099593635108463043139436462053785464898901387715713851931560722065056955598214733475831392682364033413893075882686140537306183225419011460129091504615917677888663734451085333606776386872464669282406609635171702435280722343686433989108850204632115257979377469629687048070140009945147387776410708514770197122668132447511809046387380934160679595000832272528863937743000684383429589392227668595756899005056843603635800067021558089572286041315807271840334492912745377484025422652452872169855826486312703786604703824362478286002255420738459147780672041618510525070520225001345472622895490714173537020422429145136214870178235441592344956875157340456611319599273654916921600753179911980452309852937310179642554915402540016349861211604299058283908052492074754678271449351409710853650648123090325283248605734778853349650326725620519620876004105193630851041654158312052584250864716528452814469034672673563125549335313868310779620357871220243117650780231551790430206202063522976115443509851273351899361684815151631844046845514354335592772833624101735431077514718635537327337440811203766428769926632964140373858798607152515167732340509959468579141859198753883627470619259200924803088685372218649557280527655148392817371007407151671398132893363676751529983726146005793988479922597960178909019161584633930229120328157951395758551064067725718978711102644212600080795355687999536951241670349000755879555355215680103052467637118630209615549175680721920509527073366664732214115853080492612959500783566950236391829194843467624408383703850224810128409888489268789488075364366487436930000751074999677658276919670848466496437890118740406164849385273516847623124948617251102329566258089260310316372047971458001298181869186777568650278213645760907398829235030063820676502072390133467437991647193654895283476831242940671942441286328923514022750598852902406957576511087605784858900553260859365117981647970249271403335560461984783752523371060693733807698498036071002572981289995132882690391693467224131150684190722441400795400429764633349725687975312249546333470399366136091167936761424978291207958707201677824084767169824869170178517901551540494137698269707774326020323507262054395206347355917721473984046228697183527244856694418971853759899250057276786850212448597384703843558421573568122264844876665486017177515504036190738707836217923578688664716558587494789219453353110404045195920625604419005071826094914446125109228652181074515082957190350835549327526017869432940262890794981449402841328064855265231153704435578559604442295540041326028271844618850194351226205862155587214362899696767835293312039962938009016555084218131276182803822688332433483062076752329964461149463611164638208109403810304175405659332499705181201199684197341860057232067319106808901788918532275323523544923895842367958709182882973794699476846441027274231892602664911528564903900713840254404161964841987770990416436575701685682409107821284944290492750762746320731401388944372936634958420641025677879579315622391212959519220463865495519647311785474056725156475522228444251699496546594557652340506107430572711997664371920040870264509549508069196389403979463929705245550046138818235983662559196074964561763657238773509603677463580547126851885428442211787427805587136437518405854266423473020506868852225415240787641037725310497775555059007592722745994519780414721403834566086103667844036319667606024577135105456931383528324637465666120493096003187218659567557416141400976613004994522433104684841625900317934752542653604684003077526454441666064135605951424665124801278336636274781697968644511431404411943111999376698165400201781119375567867894999489363964707041386677303482918291016741808042615498801949511578711705263092360438463836468631866724912805108034161615565629243894085185891423154280924466692940836800898664495799142969529673829504650756247174658108798055443092167506917598537377841759487936705291514535214937400848029316358068649188539327638923942239614698707964329123391919074488442910489323981940897858191463218493703826473214420227055892472832198685874437200878956951590467565703395603086025768259317668253277717733632458703440959841171212056066162391598172522089677001842914602160418148731679093433576388899593180981644782738805731405861061602917954585678654644292684095243278794557321708698878626412722204954307720034337852381398349970449751036693543795927410053526194868525879497591256531135224562437716608755286200731786765731057501356252588559903657264883947219689224979263048064870915485458757193611191807965921859332684309940628407874420322130130950322627077827095224403888855256597302890391517469981048155186152439085190435127273734481049028934132039933583821844286005111351509885048726587668609000211502889628726330698732081093415278665862706919297328608116398060178855388874204221363255635480502171956833856114001219994699842765291096827535602995872849461285093903335502897425309213751326995571517573354727539542098192093828595723635882938134414391800136386832877808696197371515084094743559450339887028686034773884531725140434210934028744448881724118702688788040849520420934937203436159991860709463464387648151813194397098264820147760321073697149850995858139959759861794391010008974474847351451731628435226512785219763049781198671800552480828898156912170215772437084571661892938378069499458895024880880520462455175292810372860591316897485856391047601085946076528937682415659159285442692341404652953502760485599524496341694092706972183934568698024171774892453004617310425020948311088435160873861928554462623479505367964990980389620336088095899757940726896895044194528722903113187926113685399873700165318156163502670295957543166267162458180389279138003388686621202354531209278498858299943004704575126155741369811181310546617714335287982933560674415036362217065986203427119117117290096914844938614127030839343584592172546133897317632506427476669978545238874122357437235928984121564893037975357576053931823505376452200326584622158133509824355918903288882993847168312152182274142184673657854317119185682757113078617509406914899000424317443315197334144679467542141679167494628687597001033706620352311960847384919986355581554639974101379930281944759425743417058567315480482924078165531335264625985491118749393587710092661662839778924672501620830264346406681419363906534849631856953574087847966032851594635082740494696910140349222192942178215149702696854347514462107336059005403385140246905158672570662682025987722763461506585188135424730195149183786437622265638179305413632056517775982105672072250400123241304499686615192065566345434538134433134975672637467264535440551189828725582307188972035076043221049547145693816110273864808550966568453429490762717324542608180703201321438276705971229770007820416151397891709921182189789829018751988723490407190258430628163839927742071754492129771347612886243552217783079060313166766776959295842288561271258707862810267028755928248631835021074378858340975362389907563248487711794822069502044944229092473830138418646897554551570837965609534853518997348493952674871790070545293452457348519577266428852409589533823530397973405953044818307028913141590101762139950494235640258772392042564487719737048803170640982344222099675167700745418380697446803672044223479597611940666007183420690884030770545275756331213299495383246902992073352880916012809668617954175704477190396063299589526905572651047543590933907214746516814490390323126374119381089375810042871912156988046334554333164493566305637882661867738417749419114045903749687578082111577524423391279706967478432307118362379941784743848751168943796025190999686009715786436315751506722849650586653322311088123099835126037983100200683011472843949690901895108810854421067960486989468166072233564465364032820098711422185668964261337936776158863420154223247879183223533182554581108172272579776934463806334339794148196653437102005323708386343260697115539276825416717179815206114234100164632879218236302605869055281301864217154122102757382428672698681895253124943555822590670526574750363789195395204047168069844973370701597670802845626851915516740617370528063536610819078944271340153169326487908709978248758864176129214157377306595792009688640382787066570152763845097333188923754560047710642855645979802463618288284253537819551388271926311594368141272030306922912080749331284657963091070176803832438191270253714000656950498905968483030310952424892087398579758049605710128890221810654983327709533189967581462594734027690602415833168571816273939915252801465540387252547844070231252921566982046383485745459519123922888775536790093063284334489261303466970756438115572140734199152492178901283702700876662235561917467614723000586948093056643996434203468140569516414587659808887275707305851905148219958468732378553044298483942977880098602832312789633612305581357967670414640673015748965482311931123319364892492784751215128887141612315146726169063757273324954349796430671135637497254773215806111554736142993001749420414521066937685338426761761472617957247749568871842422072165680643543522972650951911785861961676456166415969612044783056595779792112464957178516306721862385949043620921458827085079748773057732897225112877438880309738905082197771455305668583408462471472753199171039043246526347737438070033621580006634758286623531136877638523713192956470311418723981918849542037727881721675298292061492017883006706561088877568012229411254440278648196933400336618724095110191407211732466434411177587526577604553975716883421574265015721346298173363661803657732004709807893000332782428851687451885245411968319934633989989873487674517119545778936168596911427578176900062171123211635224978162077599408495498307254386197248470979470571390612491236792909474025159985471833637649559267721770864913884863075623883238042839571626100858525198492632456799412507382600866821936216631703185058505856243453772285500715200690356146507356978079134046633194529652873873898657918643795297619060102429403510510363309358301126375115588301435475930314788460717676449360412089562264927335151137850311195168199855923415642181105167431225610506482903786319324314219749674044120066809554401241073764823779169752570366716733539679606046596360965464323054893347600233628111826450472507855149135322914745070688970482567477982082895617249582425073477902539851794160943556431455936736939142338861296686174330925201154918990147374704804971787779708304745244677126600376423549159199245648981499443854096649443793570956823507197194075543242021892561118571045528277094009127149291014790735863255040732662355401377673120713443503859576225226833353058973672904563310854153839189515303990697600822985002774184111395049520848511908252816675066999145377956241638710258295731115823726390839809320829827915632097638178182502729678693829590456236977735648331998327816238960796066360882348221635564271781736473775890634687023516709337308756555212314108642343551027626660300537163376268790894554092801885007853387271807591924999594106487841257552236089556661729141797046067383291500241177402430976309417394036796037002283423422354711399953193488615318210390911874578287011328081513482221612310799655438179145172585217507131708831502393194401713250131504204455891645448544556412461730753056354434479113115454329335079332918825223366522496348627684479974944344070431792362833188279526470427843206806927653659099803139166112162173711779406471452038381699185956478002619146086075888475973832331458323833963392152676097655462791246210681601686263003627335422826729873138868197209096279898232685432044473877636989952466884341482804808916451104137824342329234838936830292185670072145251516519247426860175939865802493582785791332131074961385434487623217523509374109527617005649490472639651155564928043806473673044759686610172095709236754707350687976158149054841197829085928469387061014552262240159206479536606046223430901889059366079370136784540476093374833242126224228647500857089229241359974879344243927599650837354193594864681425310618934750307809156078008991038486353825246986189597241863359611988929540662887352721703646325577657753653416702906249777280677653644751410562508145479441540956078529675106481248361359702691944384701536031056283458617595873907881901118233953049966788913229689251893652961251660822697118534056950112113459480901118466175506651277685459908251317935780841882468310997251588092173383404718160830559376664739660069408179906073700572350915240654055363883366227655842838791704147283986878070947111906648453020166159428370494090689217904885247029280196346711561149078954605597594117076873858322892321298147319312557641377483403561296632914701224724875647442262504481579610647945742248286243419186232276754704820862719924155513774634963567391490837398999564247016168778895111345487337558230269149987126624637146631901818803023394794853730721669740334653965696858310199344149781640998674190868667119159818859361911210876958903524794455171277912768882015248338367121259222045042866940918650286754415535661716339210239761848843124709660092030872286771575585992054997839305712337180823262083086353995404177859752797245968727158552178881344103890648526687841271718715332351356927500919427167480844006988016805649900295168915705533757121476531517780235436124270103553415733134019572026251219951704561035110302523912617802018804735772697358048458486552669982726914978868865561090857849023499598514298956934128513732530923754393658164926335732769521268211989228892598927002510050478719412141751163517844437929461743216247944411586058372768388481968311124776313786383338436015773730998346469003338210362334906391012626826314716327478017440134937728159599815363483358124110373584041755485418361898263773188804585085128338729907715425219154695965240736077381813204050387038511416593988453221952526897631518942105258777064076760541966109920382796414009480720530976992972143986996680871257224708971927084343504564846006379655541935115656647806873787646905875050292546646499783505214508666502598445787342671236173873087208914981682137821235514214862611252769067029881700634296774674774777603517083564123953902477079590948814789266234033346981873620259322648727819342297873708015427526683308089359198387373873545871737950788682608406508303102497267401956369565939156806694428244536338616940041110059649425396137198898296756261697837817839959727497187584769327581331100117332931047693591058327733542823914483557494549573017495209808981206130150338465985593527764991547397969289280366543735342977150208004194677772256693479097265694004295900136518912267774623833018740824694764742090494200157203486581537223502595883604765136348010210620610729502639171741119342546827843856915155940555268808408749630791317877265167850184012345044415157474518599510235383330323970662977978833852743733645498244853455031418555588074595594742112029522895934394085844804287518984978643808844808736542504884898163690175731122809204208223378284377576661839693644770485148050757818283393218118345766203282041167687478741171865022947849680168037662971562227487904276936581957982785929907058427848150311517581148379062213820815973962842076917387453998625064771081699544608069397846549115191287043176296875507247765538259030109589406080645543304266849763831412263339881141690303152513070841859878292036909057227414947399899481467850915281767917612241709893757388559973029134127038391445320764138713262600727520462451661444831200823645359292838080390777996655669464484834053851583269628616273808688080478765637014877593667516929955323690012878570841866400783877797047935270844899260946003384572486194164390905143149428187746600934811168746330693718818326661703090150044192164345651387910000680795764677542264572581911157668378044995855235134849930492667237078129060447501174795083971412418170734725129468359532434946311026482627125948529784080935881209487970398732275791262184123774204259057653832133012432334634456943373135493775316703963208077845838290493533796950833956645369339458586541268598707664471919332873936541671800449444231614097985895058867297192065255099391941315891732915883005109749169260984314196548255286768300564673479826051020612436122102146601312248989417359432006789876112711919501310732077544247629114914166901328881658574654594541018369395483592611387412426120270093022258165903459062079379529864622050727593320847971723784591864129339543472358512700421103640788267331329463335131715413745756398108618362556199306408416780311636620741422300578611290399765386313745211507943350797306461432637662723175529609375967227182251357518748723483395361748568827538878025695305384657503076018505070924023316168215507655883398493669661172716882972139446670478005479645295207706736252399637803497104751526959428084480648673295632479046243257387394512007469065953393602524392870284802341247359807353951722039100558489391450939469583122007474075577320431408585786409804969034764020716657959168878352725825574394986902716910156383413168810123625536086249348309985342812154396046210619796464670836118209913050849676260708905216440792822793127699586052405245759925031337489822982044771462501080290109828480617663826767501895554171869214003820423589410689796760508841914546932706509864098214326610381331492317711205455851875886416377982395254273484715089559456804497310234013564724081472691237955406910313258036556667157564048882995996800639856537681268070092854775849518988807726587958488730000973236107091146687029403695307852367934346152665651586426668965301384961129095951793169973910377715185317496721669802831051019720878024943160710011976392030170187860441683890872577815453498062663264620380749397826463836415428782511482539414530075951866067975811297447925688346009785849121435995211229163101059967646527988647801395154759077981900065852102643345793699286906686673785007132235228037962487501802866587613331160800975454245197047548372077943767746294296208803622054313429173148972071553472355640871614759800655217531286959217089406589928641133301866089035872018026692130303902381350968625742046879169547675214248573400344226234434271058982304759017810145637686329999672296261730016405748319151386428574768792679782795392084932356384616964235896615240118805623716262470031273814403222319901545593962262455894205506383200855897665133871135330441238474250068152461179222416186928288131213209067793303364206168070482417582726223554759194922849055515204843075085791809881461874652720907719543372365059514000626331807666512286691385438805124537466459314532117580389793669443654417219181633356445171445719061218171262285776565973616488224874881221267698019945674257658098282698892584494689846539319890087210655284312425436620180963988271613548302907973941714347372903978439981276680965495949805903010928579216699828732383762776627160433762464182143470157733238968545452037819002256537041000517034860834128132004618824163162077922672848530478249452897247506247206027846124221012158720955169743446798572841268203824523229022605567849544778276865202550545359296184138500990429522385880800055818760193412687685350443234412610465545535961010320772822577470933794142217546298283178368959216969589340577012525397511178839443651316602365070942693393967310099709514952033982823500265303779150589212655895682620450298007527584579820199166314579386811986426290192745520454425284744252568832096308703585894539560514916825544421852310107489206715825554810829122797646197536498633232626148895868018521718096758922290531875427924500887549868961259000657917809113011135211302224609744953243044851236811447345619150602467488127068611119312372086401802201522499090545097185799616509594803544503364492698106621112813109121471037415615006376329578655441202046341077448015225407107750099837226324122626192216417869811654605794430252349740141561450054318969141451026826844214621013379945800145784481965107670950665983026581433747938842537115010380485596267828397147067260793096094445032277587771595197861553989482888804877381150205116175152956028815879834851334806318179649539666679721298423461062151225779603929576226494856097541149665687484567842128867318236069034186055941219835550002673640209780852725832446383146414374006220728290450537637702414834665068326585998233340442227782687037056514143162475151956850067485192133261734750345603842225528530454033950778865455453043547489011057831564675734584191808274325433413997201375010935418800415335590083695700478411291375603407138894942778595692754334954435478519158982234558119303571697808689193102816989657900886116748279413254045778791171209165732641168831968938514923019797331385458830745858994867858858641621941279751578232339197174860316920636076751615238908650597111717349383222375830116135396690883600079581215637766051037150517051219007882803074617315675413219689456685921618302226408599412487472545004396484037330772729290524746077477469927640311747475291099686592138314628693190736429782588811422021765685536710942029171553984382837235330156936624151214711446620423952587886417593542180787476652590234507926543304080527604408530202895336515442117757736893292633708964966748997705103784594668762418670216032908444080013697116743238508773648258673150500181163592488713846269814039493321278539762420747268319800010922023165635659828921610772398181485510418962683264490027484640350257893553632323786692485637871721976415417674221739674895410583478333504379380673203748196227879756547344557455163830744519662539068946582851026971035751056354981816230385282148994713200529172170635487570958619769156083977889484765230502455061103328345208352160971754804618005849031889390035309746887639469272123101400785193194580655556526994816602650766154529735667305386325453409558357297510220940579451864946241103384046635952640539746444882155274676260836232458481290161193964408222029677981735124609917265528017062175963127042824830758140615585139559144366484223227614126217594193962502329827300992599337912341345227100614558501853367746204024607678194360429479348489218893849575597427588638028628704355306676046581592026611326915943098953191233079810431362948234031882842283435953338640020767732758003171850912964212985291612040983509164982663503225996402531393869292773092923473020931305998732284497539508715021040084130548962903137634804940401895330476788300571140218324279931530912155030351336002306011031203935357782927500822783523958248844720643736511108194832674152439161550958057865072374786304441165860653995196962335795269251225174436435323126188744777766902750866040427279451057176748662296829240245819410108627475672547369772617779805317137941284187193563619757836557077240505691767202049421214664432199333133156620336196974983627466138628225696207982429239721279790680102455439359344571551514978077498945670092848221313707055053259526679455341246904700180009772936434138370191242691808251076412422715445856512154779447537581454889155836867731524185628021448792603372745550208266143699090430087808726201956302682217457342033872424564440891379364909373863612116104998253125054415622770139567020594275972276931954431084058179055732540147298046384750529066921456393319118829632617171268915836101335424363136015471566171538599735503927544006846505450088115279668210979221367826834612852883440117453785542504321692438411903690617275603427422798695450823485426139157686361569163493181756989321886456174337845520500569813255810542431690133785158505793550137410364337619838529325195421658291064576473180305990975926642185772417152607595580013706042724022945507296610427876708886478622282990181241792020263394250445930363255539606024541919813854433087313794511379307825727441591411195701103679772009187180620311149137417880906907906169410071533013186350039403009209345050527968810374907168337833680964555243965040834510088080216871667163516358968414990534540505648958621384970460536060953952633089445195646946193854875116752301975206939086834134769937695444725637428566828815957541355781179197687523334403728317867459812185211154255659375146263683680589638246637054708749721884349276998825546724186979852953267979977148569414379238444696879809665394032320789681171765767022558418778499938459841726544932697754408767535872336853475842641194590658044092061141098701283472569544719470955689663296218432242847234040562883901691159332900605667831392633587543079966283181150492715465999368165827183795029154488393116501186903284533106414043007437287221986139648205888414205643564457737001897760155908590719566598797330182468236372338421643050031714601335307216616867520504387777728853811277834393354659631226043580275056010464923346182119194920111858995988671759492923919533442958952028107807260132911533361596703299443727036290904976100365124219847791346198261298029569007728124903350599598983855499699100882061162708330735900783410756356278308156300819085961652925396663304358090495705275125609214286615334393486112015098108862866110558619726131450762387288301170654437226019523722935595137302398340145323129743902756315459661270312653693694838864602855411440433926644942239026297954098860529155157210314384189198844342068353357184025912358244939582116783318327054403973838052070565222206283924166486698133858458098905062465940546076537362696329707559120379218817464893156876067081316372934419647999048166355410398350829630773607282703291710199099903811332050822915998726876509244988311796305183004113707911889177704184682016774182774747258540692661605130588307622138854285645963461261306038593593806742246627421296973938067414052492432570888791407854001891609406016144877456788065634545521851760410134560436468951079515001845602726849031919213980419980471098041737992306312303715403583573467277004294269402203979313688112799476207580549233931399345075855483580112342230886891704876143865336063089830237266031858179415068750176999443669867370616452201456840564476008647336690088209495102264878345974222412823847426985378521997493633447721943956025158663690510825287586575527407290101184899375324759922917385220766030447539746852397823195647382001190986803087165079866273686124685547169335925425048610999289590584344976189415775293678085469295057280490306659028294699151981151293283284373680951816223294751920055865184291837634947648444984176332141844539314493940865044701846929957948472019418617458567670112205266145446399484086253587904127573133871294152554503652230007853177155074731049762264551673823539323904974663545729089028850183478569825980522085199029054373844646283881683937853490620329359112111220896848700012478530892065754021434634595428449803508098752212477841421543962626934600938383116373953350452097937108191685892219121375358359581199351911239906141145783154701137080980819012091433855347426232543298492391035920917529891116546936168423596211243191951201332678496577623773803113456077010898963458252510373712637283814524215991206288426660201741911462381779347378389392792082364407880814193382850942313105062171049431807019409074506091440308634407375322883794793576999002458253965906857472155583203071391069205565532398676343919501375348356937115879528522576702098750483768001133513329280730579015444571120987769993897745652194944424982455360532457483916309528413459845564986154180469652453456996878680020038653141758042577014395065941060744889963199015734778716540368739804442619927365173628278137958032722721708014674250504003318516195699112585399312239485510212410546032692673558611918071282614161574220907907280768592593356322341833287874927955686405403856180972204451765419715644665332384069910373381761303879759845674919177961295608841625632200580075310990833259940381257866105388986081413799450111183090512065073445025619212306056022234023194574089714508968052218126990426592840594213812997719639809817098493670609220939616783852447556790956863583992940964488141982610865040342326266619530321009257040239163776679349111490066286569236656060962321007199395882466623454103935608303515563419145983236898514666534225141797546987907907814661504750109947750605764760814192389584185068908355633727198279920073261234982742985536524747295996325661924932555696198136310079488492667091017917277979251749189821622320219069320278459247764543658658140062099462468595028380051380049567182688614878644676887451699419935846696190856414628434591107967815113178905684559488893572247796029421466964782133652178403819180262320666284153388331246838516681097353693882186838584479656504332844300959484858485104166162125017742876136104281305069758114841986198000594814303936037599885340290335993315396314941634236130615007138331745879416928327927866303751705875595706064310179996975025278885453546718192902572892558565547592426922870049848492669804583742161822553462683945524563573734331752530030561218790706475841161424132568899074995606140642244518467230863232728130668936647176317456746707745683566853940323971607565351776544714022396788112056162996489253615976521205541607749375008223350239550724421262858493904067752383417104988159090421972231937999721271205226689491449434974622438767317500933594887014721917015567623315042630709041921828833774209805578188621153913880331796724191771165603212479692936704618863086214190308470562938858080199998562458207938217771991043148059807933096962378130016894275484580997037608290532548075686874641681749263947563675782847299985503693244668214406029688256200238025777122497466379187258418737275185073960060250802798761088415500332468518861862661886788076602263997079167371835188036644574750530204280153800098842879965114310011461929034730516628114067359744737218192182839222361167060802878777218123587902356787850999644908763326479186944619120065702928995245663853767885747677173216561643092742622442834111944762101557934340807240532155163546247422971314490881118735641313511571089257011922860175136328590145721302648662973737148144037754381748720925740035471514566109616565120871687072607762409752246642268331297602953220314853119293953295261702423093101590311581195322129442508939588595740752576286940423807422633509171613853133233882045764308462696044619664098241406722843965978287775506878466335250937360539409216880720212275060389833140091668935973167612762159601666719412659066381948686885784169920122969757123493504437366715686576893958472548960469209390529618859421572920332874936176878767300194340205039920165987938741874820366943465422473071042262832371425592173417229093029813384542452325283548300930287217413410827210300292380554873960417251380254692359975752481224445268443863183423129657340751406020935129045646412383922636767596447422104272395332849648511779630209652973379493718583102500390163104122481439231602948420799977681132945083198217476034374217133886653584950660756095884912208953757921636438327513230974150234219811994177275148459915620461804865819773502400650684259869670730894373178814413862893359590297284039179995242113976108681149714643387046997424264825822653171763724054680425777016735115939518002030092951530043668084185040047978893304758257160909660480183329940717600514918904414674836540449600320847532843221140356675306018084223125559806092299458887975862945454854477951589662484826377527888542784623718480190078508599817201846730296823907453527397376144106647112589229002240633109099287336848466601814782623442794771875530062024856608994763710492391036544486970677967120320228879441044631137809841122258083037801493228914037041285321163031276464170920898339110507282865156628700962766824737255798697425684429558410001622682755711845950759335902228875280663179209892077373087628239199473250046373666778242218374548333051649433060964419938923175586749404408851468991368373092090337104837709005118767934088634176265858901700895002419182841217432391517641139942562099877739397493564350382844635522546916933840832749713257462695828383799471954469658565739966931499968845517930408808699657953550891790668810327813146981528269633622278793868215928786112751945810668254588702281001225563887585403487163561660968306058634905875456908456272020416666908110389512594174578577702154813646966418145807166585478160730335440882297049733821572802849459841617105074804633600123545951043089445715961968868073153711658855227674038816589607530143879928498216329493407274624336441135267867606593593665991338752755852647427115751339423827250131319691101447155337338329560220710748801695976292411859068998304420376249226060523433591411513052267321954492727885586780902339274572516754629644287346649275955980284306826305427197869859621528956412443947300261348799462471366912681820216705799716246011772996147558756262872196100321098166200433078181595461840309578955706884887312153674453750292100421155967174394745880066185057448851387823137910908097043583858889527448408526525416030791624420031699405548266876816577085604872129042479173938187026264052936241704049587926923413892175142564849003938397114452482515910061716267607831733580514272504901403529886341070540089211818518300219651517745860289878115721716562806144581205942198721732648552502320627820779991243217541469188361823481124355849814354282634225137859885709301485054992944652625845011668018794113976619414874556110749131920201760794188377814730069817705987057519505501011762763636914466807972856663285008837648707281339288585108640949275249910040210310770277227987067894193006366929353168123836558082410584404094383776582916528081075158142559087766175236819934235202423935622964357691355391562020502055533448699751044830244343301152481556695178296502313869726446806444609258204726526587074327345184044556163145285577775483679426743643339400641369226836138953084497097821620983918695791957170149815948824060734620091107828676413362478268831281371286931794593669217032520582242211579069056312625719071152549041850628694850607164418874867288464993414021790175664945330026258232592181551692667661383525197292871971556006273569001649945486123143262622260223719774742218887575490091189475464337713544031772519559652714546727498587289982915527069437650191626924779967644438180979591369109055291751849717639062574806998046891550748910098090511642728182679106885293784903329488230131380477912001686389316340586251591501586147891648566928874857161470652309653396981708886299557541175913046243820894678713453676568252232324882133094310805727709250211182043648936165244999485610220348951825150480470042081753653734113302860867896131261767325338875325729655715350625430966939540822265471317445761770607489688447665406559074301711373120925683212539385125413632808512035712472665683340328681549705863787960157545889004474931604345115502764617492520120522498641406046405194808913407270314646264152192022994375701704508482899939619053858155025096968883784347576822978540302071053699792619265427425542295837048270251384484899974266908734638720153135735531567436983221731326732743075880022427202893612298821419449653218371348122936417525626397454726288412596305740939339297014723981100104270274689152675956095926178694218792671792211181889134555187667358514989526439649373642912147642021566713647285023212389108954774088309016615463166030707314230398887209455417513338739225956183535889921058719779949738658248662132116680952138560574397006966011541204665278309387165117619466289885337153266483824023461785641934748471753351369198466198331035677408835727872414614325987336221301850818110905229223471145758875429534447676919483114535224425251258995492588383014158311784285208130995914497811186937283780781122037042293723956185261856877455444250239025044638147851279492186476222466962659356996691165818884952707610132080516891903664606506451853116582296444396349671065024373463264763804229918681885775516623096332648015696957539955755623591762098326636637474360982617868246191473713126247626624044402315931085059722196947627214867713227927612457206370377905528835919998204752372456386985606929579018534109881925690328205891520999833791936403842423234601821282239501496551433030350179129775879668119426990689022138380884192516662400046135012334240101245717120181502093098969824610931924642711505512716378872834288450903201726917476780715923065369913355871675872220080918165595079739588993697093436078010762811338983551472262168789944934321397429178115517208953298670746363902768662824541867784417397229514134558060936085177510979755042171734664717817163989599185596339736963460455771710247665464107808649498180582250295205216098876809036101562575730097227576843789180883389586709946091282566446038730902873497515965461259202522441469665409973275720477500678596285600500337850941861766822841986742956479024312005957585237113000303350929899844745187910540740606015444749890901905894425425143380014497716339625485958408890865557584981244950820079591670101294192713003506076805552492384334784823428156419827684279945585694921986914466400485096778648062182452977996209441488055670380593232503321844573097269371842744008223247879140047205924867637301967400359093543768114007424743065678861668155638539019558498812519271688696848418353080870533434801558470184549321651520803302466493186608472918945880504797750824190622939039498250794343977368486167532041515048522980535490594137784048422067890160831030193101516229206723516381102038205364612727104682305375288226248429445107007309277912703794931733187185490972538260388027918675658022851416048116061180270019922224087558746980590690722887987128039972272480779601129915491705743579990286820918447275714442586719845823219407839457933857652009542546572625190624160754943584083684478593041633554932915721751783479172928443722236078495966651758716352871635821767775416239205327271069849016720339004759484360306898618023653437596324248485965044796700109009108644329213209316987160356404895435415911010395942764839085800774949839597824500733015492907734945160952400216795033375047920851550583811376832078681603311632938376042488459121227356998045344270394323751762363709095627730450188097540376413029379513205219582832479118288644826893681461820757537712886013167055981166589730245748339482466640797692923195687110937656274303602410400091907302354811176991386520751926427434054977124657562998228240607999462760977712163648188400300509102939940223882881798163772843093650566818216505293766591671411149746361704590979324210099576339756940256168927253788714329790211887186983882027705126664680699346562842516974827652351282344581131491010514658299782071221875841887790672288185943891349637756319228421400168450339780483588950537659744566244337692209393539525831932827619597286216624155467763190021495219607015753274565865769968262078929400463727364879536543593865046918603430741308926374016942279466785436249844226950622400609259208656029933733736417538723679060411299909364090019673181107250853764927502776131902833147604741339223158471029252329180972548782833285159898276853535608411579246711675792222048581055332540191798121756463190090926757041067332072969411398406280404207486586339563649746022535630164673892090354410115740686434068757166797148778607166320858495683004052203166117663643003520352197555050724966888369324871767335455850550997163920190833281008414815939439550334697783655781743231017904594222968691364878150151188684474441246156355042069987860257259438542226672382494126388200928132063139630512401730821634224404437640415118655998917990806275615499287304127263088033711328568499912334134413865475648247264309782369665744434764608052676567834536584142877203755999349129125362536909885230270979670077449123665775576343677664665455099781670978794070399744607013133692510881397028150057824727882083674958270701034928944877211341515115724011335465582348135219002077725558336886563371700860769721757490783898105002383245301868256869206250124533312421145339144096281717556598056498249863135677722259426753237632994721011606935077549538047320010165613140450747112236342356906030153564438843638238295572469959144731590278191461466470068324973109056103483199793452797415944757185750748912285846684034343230441769927653811160425575859352629205057093633255775526373500613575738634687900848493259552727454970832368601269035360081127216160222902521315101322093855873000281910537391555698906111857924401479845860405539021010912901433520962050704521626580418437177157424688615183753580047688111509296069438394024497825626598224913588047417123255535357860653760433990800630454216227064571795520816284839618678680833921044559009894698031048875376958846775381705437049927725349628981820653118374868475705679127662204062387718913671047513897914892023568280536740373028235218593774470048109709498088299733265615678135122485101588302676038027685994053525074656820577551158877674696896003454928785562902467102281650356074281559017217833863347485395663992924777757009975039861605225412882928525582442380346770146917473270331239976737004568292860150049021248047237561941746897956782323266934308101745426909639074640167960945231077311806105205402195991892742063418029869974465340331128131249640247814376842593234995450069812199648437939690344669592460081655433067737948522788632047678103719929213942041480113024786820278249992667897103806521086485245063750499704517357021027280351323602843041288226793334659121167240044480436993296078973352635943390704209747185310853985840146905704469881997116700309022142696815085050552321482536968846626540982645874284391228580070517271398397724969271099413518668622914731743444838478836535892398402944725732370497996855647353700267580979613490255464278701591511316383995883158932248651164800555031643853418585484978105825429569320882701433300295368299358607717191212406989341288489321763728647399472141585259509127281265768222371269721001906255213736461766748885302384244299088326516699107781033790985099241063429814608120078989024789316303255991570425711202241276790813186740858277584651227101505640359589727683113174989811085877729678753052740679653160164539178617270414897594973614888810819435767689939966376985060455207863481449778478892004596003849056825945300429099013499946476783474808617922375688917707841713844644689723525377335876495221312043451748288698809091258825161960790226401275305421735388865832670732624264796221347712245390512631854817859169327472008882288633074289697198352288115355674814865474622188850096901184972503768883952756213477558889901191127489104633848604293929762635981769989594748161336277661224993449086755960502031986791948800972351882882822342753010107162536409270433374870884104783237248306216887633020773000165485500226109245819198290341147890175870300481791786055690493759076032261394963225957829951505629246294156553197827145181796246467505052920434341017641443555404969610655661160236330950479967191343039248439355398469474342854542112736725909305818060603911306317583544901604459454252553450637485669602121120376290606025529653050494098410347629395282409250888253647654926288181932382042844800972945897005724951523200906383242643175360010882929307412709194283775151033568609156764295725220085159730302101471523432581750413382303576204226947799030381054331452298157178599830210395927699684259053150125348082422758223591637172368462273501008184144999226683998001793947837729398209657647275214455561001292851528456165636927269943097508450398185380692800350178820125369056668450215283356174694820827998165132393916790556834177069798838324564844785338425102017632596854238683667150192571200214835134462770533668205460436849413916308777518291914180562518872588102341437185109684974384086550650981614410838123644488330632049967102380703335623600781377942699808641313611189157077406481755167006304703576756596976601304828693564756663474609791984258130282039625180829965295799822142534617721174917042988354329555976305455376346066535042969691186872000106514536421614337827362000980427122288132061135312441247222466853137677185754211941681647147204838833919594983013157174924198634044978867000144896894259980634722916405927275412080545355577591217683460211565571844726749894158442263202997082762640435738053197294930214726982480217422552947584139933548099044920792447369511184365736877512833764117643603258580988158624089748979070831216037225765955774223041503222357644537559744937290469532826527715967005295790789169875010780400720389192966542851499947328194046895660663475255148873658072230460185208422523949719607751880590014372793536887148203902992927664513470807599787727620755534765046030043673393196296108915497545099810455103503649316118748833701717807315543340023815078998341537241465286228573799989048775649158814151999737119537335775895164506704758518216088003024585035724131901711961250417541515211512465775184246195264543703911822860464659515958341255928253894599357509626793177511992924813760349243619418331427561812348624365945605873242600124723580343750116402921366064281585967379764867189999970219966184448487748169138785940332855113401128080471522286049213858411834014122011748200797032148238650046828363685607522505124968462963423258665157382873036351301828150448161824964592241240432180953201936539765230918133212591956802179310036532561199472414947260222120717336448841020483376598605324447680305111144161910504751195283422558255913708662603474593382030691737294286137451966163522758807599587748633942098135367110397601899690637279301546970209661384715563446638877972844438007316790838068850071461387865739122247244306084325359063651897231620601537936258518277801624887277371494786474923573135081205673508685390057742038791491424401192562298003438603061458961671975057633782447155370247401398743780541120084665489807774166634385936745766171252424677234048962171863717581172145772125671253494802663499467096652605469178477138843876592981407351696970211910575510464099973953237164778108307277452830752311765655318108653345429500638222690193198757815453785939168014288561332834572108859879970588982296516249091752682632181264394904057980160523273187925567434749456537884247985954160205572242234328397358063022352705975018990621986959671040097513855898287144610703730358256993275701319549597411997458147257558168025513297994221223716470608065457235490924484088001580779253300664261253048489756818984515015451419214653982861982220850737663955694760747899494712053958732278469229486751698148697491728002123134477898995208473456536547072527265527580367079787979099291556782891520479051785570840962664367694075405400138329711868910039717126924770662345874268399908951183606209972385747615212333046981214494137610804913825487985287375641789910554119926359961212342990062087870720308333420923869615562909432276430463939278587415041658661699720512665563366982460079379473857603824643266005540039974518886093759400613171264653197962267453539336842128100464959834069985824297645049980898246609631703257943473501934410514722265538772195829991731912939656405851307447382778329329393471376363029274471845494702753153628520324317669977915240726928112994895041550363754046045639728037890910195396388096565458857485248927533264350534103894269436258150494134544250909918911425897397378260785249621174902241694668596399557233373314151384511170323631695255433814662911772729037629810736803443368987764031677414857245766996106530524239053384654688864337297751982740921053156442504123626647069960257911118204440041320126142558224003250172249737590541490578633192207936481430716479977233672940310760195725369439686820226768550951964151848065573940267148096689911539739376936479737393800055937431629415602487422419942333895862702690491781720340065158995853032203191377443222878604707793805521434114577878178662851748190558105397668557620324437741112531464853754359851946077005173894154604714624688883850013415399936967043135624161352584951489565679706973254186385209642982685852167582144990436104145057446689461392004836996765222102976058224345216100362700802486991992173245455226118929799935308406929176703028846379531670365243040809163423004097399819988267284732001202056035233790109026761344748663470810306014797323604964395380002540339525956265782156037148187175427335747210122775741366926070582781827412107834313682340691874153731515042534972560318854383827670918641231521288767693146499897741620587005660020643322930975405712548199307271995383671842390331785637736364928197629646627194346056210443778110801530441757848225752783883362728971029363853351918371591370880807277487721450195902436183986735722973168718091477230237195492884855717070137533677324296275946152482456806720163922233290287943268390902497489936974476065083421552552774125940396694697632806520775274152359543237847899391744871500876628711284537770770475433400970961599983504343234202253140315429040159430317465203024972762288719535109121898239011459641321773706467300985176435862690972482443324568355582722794352381058285778098150873148306616660823020962069850539500011611555096007687274687121943411158523280027136289884255605680987891905346693959756311488918441938832851943261399045842200322229817584231870268406233253275593865278679059024628025677778742842963791658561831373661644435540473627660979029936837578425682322966865576647046563469430518277354087721033688990526914143911697120170015979390700552417080272859913524240949543673994262266652763196956711161368496042593833373371175514596141522608948129985892478430246274990963380848912252769939355515424577153037050978215623216606310675547222728994245487081196808649192096292255898409164091013556085555362371231596324123747656785456658115625011113087877520967223988616710030945246181275976098581220266505055675689309599013417458451367910110366506353840869282066515294809843497664117731855168461442631249776259189537847629678941037403098481779381676529500833468121462592580392226824805794976258876407158422511330587340762939091898167425790027244718306353323376466229379764657936673960474949559639249060204091137204723815088017642880621930011293503754596535645588166901587882469695533883244068279768162619600311137403471790538469861003433954063575762439365080816432333988916341595418579785107057325278294473748091024930717003121114347735787395207066863864117426732992838146980852761171703654969774227128879209391963582065046591797122422890338074009154662477315861596278995297563335462579039804016790838443147462613833387558197309505056074619882267477504697093634404579738455657652977624362681389667190878090686899617999101735288970292009063416884328605895722875918357254630926012047409084839412103821637582820443825258999057436874009449471406970572937999283864391504033650688449369413550241307961465174301627004228372160733243710849825519365719690930347543009648942088928546062905704814788794371940333734754864810782735137924172711634953307247211136540301216190834040484952965215894566741005295306001367889650296201372714901129112479291812578303501705889531310756336199734831356210036262835465772159930268607469484494056558677098290193664398988013842719776483762175197749226299335083397545775129585092729090208579113819038646312732690982766658588606734864353940334019905200027135391813608844785156933236763330514550776274401539810928844205218169122474013962312840520350613425829316132473804981287333303377938066911885192508078952434885741315142688735666075027929969224148046823083114416543603925522961094006078342890446079748463831394193160379588142055000031659874928094418735130217119773992125811359976355410148811921983297096348813970459246779897456263622365953294949974161893180886846379509647845747022777237732487518982007231120780615362045407357618179346926952186119048089832728353999281114241528778247245744535905995647147567675572069371178647213084997372708425401584980041166140594522322676867044043188098489542620071991408469491202875162971912361314774047270375266513444952894903143244015075488354965902430120784272788201622223797415439160864076423528427994596246576704204255497520507590482209300277734551782042688207707272969041283065948961674030315443347023663343870622571453439009766171064073761848157086629722239341073225242284000261469242519589283803465394986020133026100672537073534586959756059256114669778244004464484541328221107097805417350233694232546603398754673663705928335989421344344467506862713632489266156291693416928307924483302875792997728177921618718275516176546381303380353871702768040271363747466108737276314597892766422184140704678509803280057064263736909331322661840162859884670739175733404514880414137957508532031288716491906367337069576576977016107982930916028795073291362381180048034449258025116099188801934625453052177856057010402729864531354667058628446105686530021917961790539799632928108119438306917543770257578506484165825269400615921209870595121159154952959705537760357750655979554805747769248768593604491096757092446609193420867222219125311770473050078683990011197391575346537444301562960613146311007391570280339982460919477945323181070112463536318460749291096617417274004237179376538968068023086514668513592184806714067500463544011351201294938153347126711716110016993466083957022967683447379670008757967830254057937507736194058760405162488003243027754263769770121747678847223835635045394336976702759879210668552430333548789402003567181902806049201049999992559731075813412002560630492374674420534481869878419615955738741042573255520333082641211415579639942866218024917669632086673188078725939330845191776903514702973529305615824700785593532152016406002574289864835210815344649865635618026756335576436062179232480506079312471771982241128679956665747118911125052607643450796637573619294507585508657760129013957674103072528040762209069683262649477010191403359502238648944923134141848265791814210335560419159074442152541460504825448641238608305584132396284428412579359457130615699378740308435051410448823749782246132261965050993712022787038868581288457569811719057741193823080585917426661011025214177532881970917772541107455267495117619245681085386571886025210322509929950608726252708207300573274569309508145332224200662425856324776776370530439438915150336157506666230991531461032656468761205039385840584601898503208949856249583813792171933984952972868978935893722323542984053978005306006081492231643613326246802368425582252251439231737600108902868129630683690425764571533461892051453713025615277055544273004946987903185796907638075807468372105053004195146960072097744558145010598326839129159447640854944280611721481280460574543723861219469756156625307204481092775108395322866485256503716644478868133574734111151227129976763374463476428922429643349490550213059143136479392091632502627281160896141662341101757020781014512513613508435109332401282596990039610166821294403468475701549634980137496031503619923921626436865238444513967567704326772953576467834794914528377173271146847135678312213242221891485513526775336832189211764519314601842632146468236639801297144644632013163340484945245042212586039122713154950286005467650580385661236739381100486742390665674132311472984219431838442917297644719763706018366550666034736879688091988036901649275702677048655513270736274630687759654991617979137517418704717310946589669376136325173426368748633571008972119893492443660865018134463020965886677457181906625897718770321615074958549716934057131250190095875323960477691449885745376494161809311316830342469623651868428943364054089301916320371679639875184274539464343181952731740503717980093166259597426586251168401897093393600286917248816679686018116042384101525136489206929883823513920187095676475419467256337274141538800953543847900554596010895676660182877029790036173039883460170345791390634969579700449972966904243364382949517082752722983575825941059627946935249219648156415883604120391297370666077089822592734581004473206746581352795294518794158699356478195475700165739240916815994359649545878712501333825859956206937066245508080129589185705473016496767177458915755355908044369095518022862821243668197859436644894765030861491183119064558772872969525438322727266972246609208201864645237429666548623029191017543765528632443603956434729177290324772449669589198340924472206907338905995963044613291435178943002592783231425770891029021159981322992703081832976731440416165385893516648052835903089967535737285070591958792018975920001994891957057646718416812153974543354017208859800539357746306138686970021521446815156669787028708712323734908955803157941491905286853221459983413474700699383332040460403420831215792664231646531013178799814639821992003289949282353795169593182625302986752721477054710343372621456672144142993712024572051912432760216998469467578613180213839578449261556383726806274147742551162090057449546457585114290029105880387559395191412543574922291372404416030457572792013651003916171393821885530759373604461378228060764289402675047681746637813122449910784333607286629601880087310724689943849387487555614235450121251914875572015207744443073655185576043336508977907985216801838129925206789582188401847748214003379135094672829676214049051310492174417325355889308704864873621377318565145412273013676053395643328597912528407809070992326857206556380249453196776839465146439211528354631952082196971101665340647922009219867429186273415227853160335317360536574732540908180786403229490981363085480730499151103922010127320598092990052187494100058478174935473146658593497855234076653732272021019626288153003068173589998005474113692168454778727961695951790727993663642728715360318581131070016868124464076801298757658748179458245608008598955555100639510123132838551045212833870971489673709850497519932523580353907842085405736660385913128455727188119888056045322734420311638930185195430137463674878271431990147702723189963350103007272836038706312621347338229283643525147187121159408146913158402396439786423982738270892543257115121371632265701138219430968677953696257195517820421119321145269690697223576436486626433285566426682524163859774573352673926687766330119425157663943946245853122473447046363682360855806830518817086942145416505593595046479136112791930741026884685785596618186578196027005914023184092210033333821137918087092490639448055768519412388152191917382990629618617513590314172351630444744595725082430160202529015374658241882577569437149530009779643459649068498730986190590669942581379070501123556205875745574967560799034712271304237152565499954978358217304264359077329510421909470665787507252565477115482939199759316252878192195383333080616220525410005960495358336198520258690398824358967494376386723501272199973171223532928738111262427490121526533994582437010346598759938143569512109568397562310536347053326508089082735511526081337599661955826563117932914215442702113913987856075755703171155671767953207294993792331525364285695850507057798480659800979287700133425621381340694112729640272823974213447721258176462861948676172189431308906990985903625197306897757063107029870430125907329274178364430843760808587133936479094621574410074300685284259534708709219074189571938610915912605356175254391021438060712825335100908849784834192533376151437341504048240025053549560900584653295005500722462574335840815524221447854960670210249962352608747222467692975499778209602612517466082634879503572389863509627491209346895125783367891348226728050637797024409222743890573019117366894896698821391668842907375310641781697644027392993687075261464113103521088053764141959321891047639500658508613207225299602291942480384321012269571677948945814145842807996041079355321525695629276272381283987312691314460789905806651216303456162602612068573473436598839946322203780439091262288871065058227840649718235232928500989806207107347412310567309482198717099175335675969566749216519580946120863760685924875016831906429423955966661261701246491042827356381987997170291263359636992826150546061855024389180677611694919295298749989197248351182744327491822685392369646065303167846084718944481134406310215184263837516667088396894900335228922699702117450459542795394536693607127074441692871972022161931199933379085784271791090207672636013138242802693043037008635187740890342276563953276199857562183268875106040712203517476858526527986349263747489465005273840642846126113452783176666852860645776633705002585031399237366458857852529374315315526570563547766672591739108924322631511730619553118773916830962668073415705721050916928854393901229634302057101186753294673403338203795787593169063970302251300371959132423968447265694138146714367295758954547709167532577548721759878360164437076805587754644174775079076258530618928798853114269951963320257557343842362152736788912087524118873396918845486178194241887993462905228515014884402655692864640200133641029477439252661727150967111853929718972736956259667225959188189550177752566184262946899397955028124021596060068253117226515362788700301819709912185586670511910063437190441194885921229036082244362678181682883161258169912141888406717225861913892212648509481434440014477531366464680592049478363955864243860615975156369850266988308509435321791258438986743560097577859658315841398257246454885260012056786347684952084692843764181196651135857269712713807304628998578818160411159742105381920140419245903700629066230640259354781614755819403381750447191133435430798812151318193827447140972073070982319589383094944291752241956291705723700973913664136755335008547055517171027538486421705399729079091579563591275943883886490818181983807183341830573525827648426788919433962672028515731757216666115272558021259658504271075220881917313088535371052613269542250646831651177691969610374596645817890904303031288785542301496416714940324117547147720372262478963988548374870107476562829277944622514241351113339157188957374544861232146943255626133694866106439822454260502889896684895817359053861465149616320522592749302319404575828027643058002200242288907858894425120234240105985035885232219122298912776346881300066637307985426311911166607855233616469907973212627861255512537540436135771271991949401112289777028231498271764590166419796538990603939854731380328525656566308581865519133047975211146541730787191777862365946316819422841230869243632671487557096435248886196267241004145921903997138618320874846848579046807381413982509047582251266410724377936838155892297917646452342949037919944793594758903581255366947804144361321484025484851352946525280928176689659912454373715266680702353308901691890689698997001767521832398546589913647610411583666707730212175850815926473171507961403682244246291566949041579587748966233757507940996194118611078981946105649043410321455258261206008636058101244219927745899886929337115655473771856869249730231454660244845904764352863214483594013404671970000130622228707405062935865351606119957514576380921139881017727476500029938647902376570904436463143419896631623233045815859541733978262232108458892495459391215332865728515897143395501448815583598657105695935032431067940470605700974960822162823550431648267814239808924616430864242844303526914804033361714652650272466252228837381849727548790675044315600081073955777957564542524436964921760381479712810366103284784474203272123694227478509265510313516327863828457757436190079871260386590154490097530874477728283564858137706148207262915115932430345346454453173330810668837342403302157535415510377615763311979262207406729452611978197891961321327635180610269416719339121614309790406025608453852937295362031263336278546118124375957777209007959287179377862419789288461928581388169710530341988350015387215852840250764692618779829806783612750102612651220548583053921758713038337726536326785468091461359055146256651541845488790984950024464020503155461669871867071496362806833090442211919750015157840286374475549389579734490170489574977002318303169844647464760235349389063502433821560491109528912054318388552832384262462006272692691306212404009526777807565741518675685294837798775757975723373997522423485061107083633600899551736682009853992925197158079694815485425260547150835017810704635555235795686267897273868837036538062719917318345586076032224506936339943105629591608680503383072680020320165010397491144574527168543300000593170999030367028387635615809792233143125638375846076175411781507519765305305457804793040111240426395469209104576692825606253280723533145624388969134356645217246786680258911899425417005735571750512561530176016881457643928447685613284716738280853732845277590224286311844373744417296636215894816777499957123294949266850371951555385223515460829462712713311459157997921016319472345392888148365859078990110609162909919337648139910094210304158020400397863233373030540862533077220766390679234530600802918912250440951948196556604236641893307741292431564314359862238185934631067642587453913190785840427032504058319736733737251854838775588668041134063394126895841746204757264325880711698654733819496151112751655854147106095138430717877087396725019636138670561263672000532864219115985183927782919568084032862462322540710462917909554377994896915300416576796100814460405488636068999191441843208150951243617791919005995798984448559458486147884377520462607606394261565868778634092664044876852439321990199847777416241631368290326652223528674581252222264636304760919313840359637942296991256846084701282866318927933613233090677084238480684044239375363691885840663086125091698393099540066302043044971042320726924084953686544877779590231635503630367623417875049695738334129049958990870624003490302165179251105939334257521049524094316263410452034002443504770534861028357501906546909264928923973029276545816677315694490431582999260728689219509716526995183598858401265786955244991486210937109801925449784753096528909423888131446292351681663001825156166501522200613744915971772677308167688951063329835462561783903885758798449273712966119844692300891764157534053653697855615255335993084873955806184918701690087995804003432232186699410550432210688776164671980278177518685319936856681289047983496109358135666970229444359065441200532024678782945323057304998920018392249327850763937070905871535171202681734217249601336491701694135269386862054348181780331767442711354590510459405703623798020675361671436365842533879599753968601481291960783304259655358174105296688494155696816617966575530042893310137575183461610690094001027330057975312849051964107323451059664961789023394307134730403929483375296782504750418998201105533644773312772228198707455032056674793260671925205620927416093182818317349115814607451817035148441462787039989005706963999993366674154432687590048056102792726341976391065860540611587357716571403438963746343176694221295683625596803593883644587080974991680276049323119167596817800816572697250999887343508430352387959511546848227030281965133975558100810230070660186458060851655421718018401362443184320557920005354064932014552999809709388073962024425017867786791509559617760986222510815985885149629938240854250993796059674800183238466230480114226233643322714195215773984394587123383188610594510497108172053191758589078040150386228876662374080998241717696661905729893134883006690803894746390224974612589896393147116104501169374828142866627045536783875151609162555981614764285495300801603672908700171303493841285783220714347329241946086095600385580290338403317991236033759675592395510069916349228956483485674135503834029840775148381780201381979104992149836687633279586890742941535561638194822046851771238007920230596313400826972270246199348315514846060759540857168223364114353898488039546217627103848483252207130351519585092980205982688861149702117564994669285049558025186458389563918511339356268088507891927775471832483161255544884064092020177968677722865168388144933903667169891296676166818555949462290982625298034582497883621404977923266544953186646176644788508034494002985137994196287672621267992590144544400600592456423339495924080146321189747472856297647365849071000725221720538796043668802456863023822910587736986389599836293203381797542682994259992963074631689069248926422354424547941819370292100693356031026566358142946145903384616658037341091206662469231592410761865758608776598965345043032605293145700185241487108213781706787601025000982872488981835835891092357405937060703547183811644551316932361991523842946138972937573247853150197390697407681688075694632616732896295095387812957900248537308132419079000917759297605496921170764645288157508574347555407165108697459140642884523981957307306629838263502421887156108385218131579092601653710096471967063585439012605491374807627320848294177718667553894059399906011838457958076587843543538334645636273644911321714590201860386125825477885071165475937914364649983181244825797284009530091346256024952172501223747555640700466752422068801866220835291095913517999656687183847740607945913415543363378419655045758237072117632653851621040930633078502395288549078318710436007528183533606925197683939976212256834650050671534965776033157238078979020878283680460212430993298705384468552687920761526090341877593299247925741013457274089605622302073934814409979017830955659294261908757154787339808936849828478690410881945034480740062005778843311650616203930204630900809843686170471726096052759164948720403358139381375248711517311794781430330746424023692268511363671927388257696013752323234465743072124158570639230871105167103304270468215965283633325387394514565827153880333653719848789719859771285422050350358868242033635392098996170486328105088285329223511512359699212581524879466551390283263103771784521738268935725902486161900798882600140334974521129033763817108538003798054508193942975799792390834437994203640740383055505662489186637663867513842135469534721456479888412991970844335945141505493987574644727152455555428352229709438224399985090464463854313196065150755639379215706164674904324512386647824174921716618891114572884895980930844011670901407310046094802551413706624178493151872964777848775984665378635618407417029236447695461998874616435998881356817203692048462587184300737642119672845562365160321331285378055831177786222480786178742054021009015612651926046454369667942543532160553035335436168091595106034696081736997904861926739494044198846184972467241020045325020077509121463186297029600273402468200719769983035824043122492625840851512916593714540069128988221578183174801910075780905171270208856402515951219481561729894029809078100089365774716369117097153478904992849421526809996069696911481926614401807803848372552454891810477176338317884264183401639010276164739437808727976007679095142179185682564288146602250332467239567333081230779279937415947355614012418481695224692676133668656310969654089461889112164691027643408352771695142768349203331136272754723437827587581260756029983340961913235881294319139199778944001563347835927107666817294290336627646240363230232524202931402338382504429427815136606654616314105496762376424780914742622230608785086997725426920617433855526891364206955528617020357393427572017421774698541329737525193526265101534070839275912930453348786304916858151024676593024489881111007924405205678350481782435411388327314180493801905583672736580600930319674053506447193848543093898703326387341503570171428775046327314387270277168794602412319309961119837009043031314341487613742121066698942951881435476916989962250611681309209703140474940371540684721706197444458125708243085944418739813644734019524805006962988310706489982198487185424226480529150612419037408547818884362132354024195163052997779951885745782728585258447855013841026965881498381005672064316713375537313392533103900387599806643459924764978333992798133377696231758935370400250131286162096320132510368338890721655133651196341078173402863455262275058813629019390771884281488318444941818233011570602198350133222890976103129417072683836081948057406670895445827505016357190664194571516537038876667113670855297804272159396584058131717017285089454354030306837546120278635572730263153349812550847434451582139144907836540382134292054525059244858766101515250210612672674364716931694194880067588246529405569350412889859354975910271501484689376529125884191513304002277425997821897088788213177209490924246554304688090025998711826996551483328635620238259853684261409605764564696886180647042134734996229358967307092247270566585454297579299762483320033341740217020136990999808961860290168493936625286411354417292214049371069124938851681712086367541202005931264444319944472093757264154708593060920676023863571174229112548139151434416072069495363005305650700519266867262523282450137598524032102037951353558958952734999607337067546236478961813101405606447160438749827139292264981015554048637390569763448063403406334629219336047560979898153474743447337773201631264552425308601662978133918636507667746521279553788091601725155323872982433755169244621024823009889021827825453722894652940039683562478363068654400072468450002930509467646394297539012113257604007964776408652732529899197802582565226969333596316076962016982512967988428747403623929959880327480384088675706489590935254042107577784250156565254993905609630240762580368161182330615042471946371410050503291720378949171598056966849736095128765207748895474571839145016137653992481474153878634625870142163674864467437621494935521831525903402708948923827638683864475443205600456117405557812210989865169963686762077334451015562620137687785819462398517825385101122635081192707223348028194750500668067351390973782519407791210215725927149454043738337777134012176009916331721624237323260966104955571485648536224627093993331285907577805221410857643165830533294744070624788476652994111868282401417098170023794183122191131327856905228989000476395060602014907287352940642210095305517869880506703160593543879066163952938035147715380660085149823848884907217203307170068826348347283513474110116949492125471329472305291776277803268488246757719688092679877571940572654370042626230098343632331070210180918914753284341731689955613140205787613283289928994524613331526768071738780664682935488824920900422766510671754357589331108096049827093454198852649732452932771757777213154444606807308792230502119073131222119936732071761709747380246620292520302733921891951358770214385118893761316993600319462845780843174992774153959153493781302335740149387290250512242766219945749127289228410101384967044667324653177500771130831617479373836308709027892270416398182708556756883533829364318393519531099354720817719791185187571320857651742125964236346708618964047264500703592187040264877265443436801730671133454484590251425803032137727178647302709295864715229485176603760842737061971304710627424342826166616642812812103453450074202144935224283031901908811109039099018899604755679136600965607066835225406279804140745103629598498660158532929314332368579914543741842081434297046034370510977104498639463250400135100235251153518213129006826045764090731844774060315708507796903628288885733771936395365559999974128318587702481186359854433546005027640184191515038599317242749969156663432632723822728493597033753830334743322586228397514716373105513880258928234376043884758854473751773163439535485684234079043355398379814276879962865925089880545720585653564406772695342957123277215912544156313381832489943644241892320323930135292441400370574834945003926292216715955007988910022045584698862041382065393926094297390679866289631845130589589262235020820605443719469273935385929658096406752951178932638903113635775355444405035267475520695551415727254522926191303430822763757170004304902631908083641609064478049815143092440267362086562359482650459995690291047128767757927709302163969739091216718785431753852305373485644732914364006435931457466965927213443555446825554530238819512300935341149874311864771233964265368602340978334196135358505108857655411229467022872129480275501544093224068375332337069354935775976545574783864303437701372820628099763373704410852529204549158799514003414546409348513431984189253226441369953505537012362402684023746942404923850501172129034682198358986752582349747782773195560217815842761552018793382308723021647097897919035733139349890315566262948898464206695038523051617558853506943830324989536118823431264807536533070136852148614518555119557707981657146307241776243602901342448081604860272216477356577009591316264302940902960434336556687703088819379258258224169493175724453635716957900759635231997148900920289298419441644488879668781949819955554995917444278518210169238518432735103826535386196483533929085730999522914175070646696362197910409614884106733192490746167859472695611688809673953228217532324261408163658701131894856002924646738108097067979736375559643966239052487234706191581927099134951063637044059845776649859161982552997796590360450480695369015343086376368115038624430690422458567426557282508627618481263421556092084505919975786855187571718605002659655914678566565784772370425028141776108593094077320230191537413900322110222664117834907341060567689977701755541388849409950944545854845124135817086315911772409723485564654465390095315116296851824794329115678805515161763388804600482718664259438671646986285043240363837561400094735686275215224961147572094379238064171203017643194832990699094449847458796767399470638265552350080278100793785621364715578541483162917063129327398600629591294354016288490440865268782695484500457661126827268403569629934266706756485588959721313637379704025743789611844414174249201900412952696810616905453267557013637241402175990090263521315152793338195513856885591814725969433465133686769750357993886757855623237794489145877804408503708888063695397304754583166546791226511735837562286435970828057959829321823317755882553532579870151472014033745860562006441166180680952693645233947837277876209950329072062416202003751097537359770187182623799378247975165204112359681921658718217422938909648296225103140273860930215822910495848363550640185334025886019267549065579140207162796750432423608996747292394376660012400863636125002634265317877895766707686832499892671598236349533765792705132514898189688235024350585392186483782739389769921359493627565546459393999850762279389144772607076863181769561539944209199956421605901612559944283451335679690604332830478167662810251530222918448180662343170597643738516290497729795134136590851955063510736720976384241835257259413510251256295967622947141662758681193623231078394725108805900008180406313092336713753480825317936105601325727085066076741083277984573405817691562275841678218725221715083130870972002750448222229469386696463987278703832395941592378166145190155559910083764533613252865841012748542279266155666585684310168921413667994852454452180896326734777710001346964835571346230873200229607185879350299180546836179991423143390466146066716639811932436313050609868074579379160066907858356188357039226099073431735806265449144065578673786995335048365993118939019314155007227409632801658255314086068816187440987767742987265418413323915286389055388802604995177424694643100377352769498998446919044998798785610682109826471088062240830071836638353865352876181667058699881762671334654361805878337302040123525146630417522227247021459096325820576891780712348656047560759207404937536142373070494312610355284305665792937479673040939119690597729115227517858377216949940657881069020826334825790341024908239643613356621859782431751297184250769834946432845254338066675622471987950154519336721054872468171766584693311684712379470662056067515975028542080290244486376815690741496929691042047436011948537480669726253908666913161914367225883973627289624934233756042366795568459002331302643982813484481011636128413157018999796363895824239380968349732951370394569589520733347789807264832840545735528950223741745352088505451722436051505095641116911287288570076249195077466511835440320796747959121150909713438612979108381497610009377027162122636895611273618298244801528751747999044774865744584022995269135890914533105118290165822841271732556837661679150539962490317201108404706452577497193593704210379299248129424448165354587381692844894978636827218352240943527615434392810701137932419540536577188583433785247790792488444709666284965478240088137857179005445726769110002315012773349626179186588330812269644632071958030858749841092894565149238488106734037713141156466644539521017947076618374491750063127316768065394655214452894340259575766964989752193593888221317010232509749309684407424812539282821563369593790005440524392621228865052643184087879430648690879723681450665674230151314386228423770463734359932728919895040441581785678821230390655325586579200179135887978432712349840352606795182441653755405200562616788883055521380617584628519315770891081623764860621888377597543008337937112024746966765810826483495357380902352381372390194135046920016133220997246596032015588986433719705443981546584638378096128874177930495669453775337486318463640964427268953882283073021426338844229095080489878162882511435141217655990193138875146248412195784674061159322537291731106326334971627989109382341199837738964101800456908443768430739592133999858992210904734110596970513618226212686016798757835272986851026050827688518495683931042326529123644270975047579324364153857200236535783995185501881055967824902213408622107573839664266121565187905078406023420561357515788798139452826330315879182330394590180420443866125194998285889491500567180936428598759984503400424636301752179707691644558092971174949214509372074134224580780423162755082679832655695480280530395212326328932530692250224665576956388697378075630518011440921176721698482757411415678707592097427971517489874944437494436782714849200535952960288240845167092954326491369326149385903456960323645872131734203246067038920331876546561726774648632679887572018212476670318323997642129670695269209130056996916737696978376392884315471781740550851356832827149307205875933601304090969129618981638578228919571520087241294231573799991790203473185065249776797272414474786064082050552716249373478444195272405272187871841372075396027657930230340813843649901283733454260711206931760957802563380993230695485058265054827896730190986970354422855220258272192947710359061624423869724526374153119652448964185305721726253027491090317796577057120866989013680410837540224414945650830866538858406127233988562051335336433988125558680426506598708284303635637260753056932470744952363327359976376425637274258675003383341959191754201274785982759748227388066594617669067484794559513242217526627569520863363596131383001947436099019682985580837765868158688261487221930972048876131271646308689853377785598965955505986928446952605096684480692833318990637890845103361981130381810809018086166598874082590610531822433813586367847959217930747566764252090403518468398464912782892044674356270978463640561173611128774505735410571889689133464230902382285440528667031174572875311915202456218523134051873516079764421265339803893846236695211215907154645240783746488096082187635556577642150676688982828446954210359413528923936441188015723324946871334929897297264110558809466506084821722891760847643766520731987649412743031733466806914172476039297306946741873282494657934145461365170226063467683807985353749103864681606492064958824513428831347057491787426362293262510023886768254619810991192204820067520146729738860582601742578243739340227914925082749369269159121629602615175564357704901460242787136232639712503816021546830191981855207682880216048098242997669502537012964526998135999533267855164587213975516814592739878758993931458353156208074192635305323670004608790098929179964217710307372205137976942135192676935316465531205609803802283662905319514304447330977221795420149259242269684794803109456108558077006857523624008913312243315986032256635715743548296718991804838536555295350445807759931671083006976678742898193761060492366733688324962488231548268982996668622008528341020559279044118473501706209105266267181696596446633423049259698553430432734962330333475593153055493096501875986019539845087947359944486913368402958710258577279675451301182485257729687354658720767790818761349405677064099870088072999454449765805464756200340033623257733951209229737785195877477789622210531230179713665578406139819551476361751339351162747848825367610819321349016681305890298167436809079794641687042604064246106973215214844005522922751181348706074723817112918648397137045336755624921568437649567133338899362262781274402248097830407085372586079177651808162700444464156477244490359978536012672190609243473763132744697693751879842473885819329039484384695105445657868213025459343799051828360768098104069957394564301164465856917393901043212451617130899929297474494073644159117411164823199845857045500513896812088701957474865223332392611874839480442122728537529466577086073620353622844238903099773268521814291856605188468839874170382955882183653426895868836425601952255480022714520447000351672061121695713469610903952418866571224755581460971533831788257828821142247882950022413034844543478430006834486743793988807255190765179270810910717352120217220159828182413671369132085444411816739881882114652750839709526108421946959358388043620463781867733642353458636722802780000748975742113596278724213560369863733736828476753889361079130250533020124766345707642792779136463352245283186402154365671459253123099151619039198743310905605969658633580024403613364835903564696967750015149481012417602811963808932665708609523786952986999590597907792193586973852361521000924167323350503779895663295761578418179031153455260499117726245696139765256856260526373743802264996973226545277119643063734265297656461383351291462452998972136109211858621077585720793329617581995810691109917274069036126475519641298825446784052121875309143732502354595543159577841567485603837395520630458170863667649975252961641414235737152894938097629187988068111036299440248997753598306633178623053653436371996855603240721975500571741874640083820791079026476460202292874965441117594680944322426983195685751570411369993218119260296138477296376863960019198481555134958206376198469221028591542621977330967389618746279400649542296473332882544418814875648739110868158650184469054149357969510674522319992530908751791403112583673960848663761602804699195419155521201442926026452951948644419839602020766673526868709456922622188998227528342634148617340805926877848432307589719336432420394279128828977750437385292101669150554528772743649583583207356211796067884224881306158355212811076675891721529177632195858718357238995425703276402567972521385705279702343733951220709610078505439564739620301195377209864947578828423969029249247084345293919708392744273814081825550320159852629112001734548903756759564878834344374275692895173710691996275433430369332389901216141080022719275274069120627855616290006429315461538732541808218517736876643086864130724844983072769043878295566357431951492206815169208981905056329120602856800456204842929283782951417347603159759836188715412291146207011777366508207457257606861486974266873978555131995103329070203152058804153606779128228167568510394166021731246903862994394317775760774272613880758885750932055765403288945752552248203083093048541244021509841640477366766236439950635902582500636610984850460589310709245322412835266979964196434335942207893188311781552587556482934431967094370990498752437378242137726430856140569783163928823370426453728576358543740095029193188417503985547172946148675720213642285671041772120585254941832928805228182049527774852874217250762429205413696601288493793713699097801821153073263258533172660048799866403782185558072193150998953621310808486125133847429863032547370095392423739899671917382930954393065444485575963174763557725972452629042089833291841370014187778395492589653254662968063105186832673475512608558198355445843951529699581670218960807229418308546947261628430700927924077006563607929663042420859553871726494279404934087962267175393822630306912424136854709180189482500617212122540841905374527914225291896028875456058559855595565669827542201737912211643150703450320413514629446851421716329373361289788720331700994679270346915869554116048333311819020040036419806977748142809887548575504306519044267778557698272250975169608807648432399422989870564780765205923733567551266927737313614616521662166703892158910152329590298556258056504788148681105733354714694870579153126655944429216260490899143470784972381701998349029150282406233597290650086027524021915813020074757274791597256025823074647642451708507052281391627759583689722914073731998548898564776729555898721552145442387786101382615803396935065751917118385708593044430837311559749169865530195332044241947492838569895588737131721074145765756931642488669151961757378768035997707950752276796746616026185016024912616310754304349635457835452878585840322448787628718633719917114367835815232107579318227774894626948801968713393018861659083216208761766566224204743584820293077495099442593486673916121090267733330481666579499683350056403601608308048478258939742883081821158916499738995291730811764682285027415548839244273836897154691883923269107156753373988628899019053595677194103869266845917990576893875068157770009400097922728935137853573989065898278406623909058821236035468093379423106410591667583661940987357384143207839534061858505700889655627711145826420624508673443931438831456076270538143938699904194615530666462479527654109997183662904981681622947186612484678561273795913471732522495123299369804821613933468838105248421176744191000704285356556076191344471191144489799054078968488596723672881546509526907027289776883199594954886725603168212608828388678819738053814430290935463091739705587852899094820690264532116358235782254876597617164075000794494046328453000701282178782054160533198065928317084434283916974106636144572225142613686464418563539654426283250084099618584960978766234120816148763861325625197619312380040719567920750851571902992967261368315542288816475435175588910553048121405389423658726002957315043543791657092949078892376860206696932745704476513142213093591933868007139401726658408432802817652683723110662585928524057540706649007748814151530329057357726279382973991481072542983960545326268601132022266049670816848622866100957752283033043466201266391069477360770581041860590084342377410564226369085832457812817009070885168907945938893117406766683599246250248943332913322425595594457669642949544292376967481368763754640123769970883910234195484404600431705648624519190644174477201223016588462311479114265678952232471079083551428467625168725077063064237968335162490881704480619302001233428437094274227841465497936105971913116670776635495450877484888733271017407009706862766217144334572748857293704553371505705745686080332787948881762174039127225296000636909564628615107652946858010953364912573239648534792709507731769117540381726430487993381662686567115572902918315319637926042725003489387124378345453193169006100728503130956416849100231022030470279954366960296647943941207807238659051202596914421181809250508634156870406396021604805355797405569888131349956652084551606192265882749937017854763115068597232299160086771459975389396919174484994943745329933868834783845305132054718538717726930717278004069017460857375780003576540512980964249604245392060675905087604731553506753910042374185965132537323963270260736032224042518980261068781292191528967896897641055855486865476024673789786723347177985482555939461294075356553864937231504009874706948417957383775654200447494274615479507412012187373373439033708239854726576128904155192600355020979783690762850766523556551843888798945182747020894608584878222032910144240474695914842595344351962803736878750490365477332812536955525935103958176238647837680299446021188975788255643745439525328893173146836899282586947559444920960645489507374952508887648717392029202628799775974354178843162948822596773648499455215566812674738003365760415621942205885099433590997055632185306672167119211704702418992767840838021595545681469693102112733588867847800626635956365393723009942935767675076388740229746502986201121661428226011402747581383029894984967751432955181766353373128904050431779607569483506580029753570428601298270843161837762618886857874518218061871476208643561928132366817775192044700076267145766307021223970981548416884151575971826460220481000434252820873919883226122818936154021408881837164310752825017189609388624211289841085103235155075276228196160839285477681692230974143951892111490459072676743926154556607078152846474675002296421034969082801536950906924296351587308732555965601496389749897634391163508280931671927158270704765131033570698351992564624629870544785453896345075242643408625429062946963715407303153449282846576502816544855935889461401120386525169050653736510203934512124548030886029021688884689221521443419107395192937881323835870631133302919808218571842921372477886006375832514597742888876472296427507936917765196143515741607678014475078657482603881878410890165307240706451950112593133998736728660161325357060346930576049917110021983967105727025814099830071968169294466359324305017336058605134627805033385983141544092094364399938661481535517481126736658253791228452181223855594740566171772530776138156265571492952351805936587507679188996338887556840387448870070749440210125898921008127736432721500788320125727743703295124013469832363764532474016386295777888659061512428670389229485196057673889311798789132773837340329102242718043642377352250600815513106528035471566969075070333126961158720395326150688067050609308983086814741590123949605403560714388926654296722362118541972195952670213617659254165028290060159002091614102111705180291591442882447497119114249752588628982186055678799970209508670489178445041497267915286889691006318521055410605519508953299539002393431118640508241715737614131737758007596917824646800404984971364068876903837550151566924181732833471194105470282924365488037724646337608201719875545509411734185935179347205573583347383710499535552164415055868658319674864389935101594458481707638680244825301512351142603199438793647950377883594843044640830960865539190452039370279935879976617027407967737936929175425681440225365224454784364678035705201860238650420851715089047935278356748759442141047724822202777559427460856408503567960232448918998980672751877807714949135210457546588556810818193692757989140179337711559425156717537766245584567151855618432821091548722360026053685146197914628769651651384319657244274319477555014386999173700527113143605138420632065521075667839234378322003263429483359175311735799427884863469560129583790988190822815057974947155251879684736189836690921723830435015461000921432930082794087063814667622793267849919824368520899022096202384240445462510829748705855201575944520871897165891870102499311412179051718147040190730796748004160875058806252705952151308879691013630541843200559972477981048136468032888867926590466162187755242620450174064236877109085471805004324697378990602323049461775866023094128888959476368391797547086912741339150653162109793215238097614028266367688040088971410101809899912258976523794339169559569678494328753030628459339055708483306460405367653710434653859959086390689494203959809537795983025218773165157305803238411695415624415844503266428783858286897231513596056289168689995736798003885880773425890850661937572512212133275012229417510358211663486109222253745554563793366181683091993391114354150412541474305736168512961727132633387833817893225853237988741370308695335868040768440549848565739494324312083188508936075868611568492939768036201493881576286631371958222865785806049633095023697862401465544655439898007596366416841946162090967994897637574645268226417077940003522449982117000188508617016137342971108175891694888680377107820172429753752022600980249441580508773185624519766353525614054411511557522778609359253235042798697600570229189262766879266054484318389711985151264694426357377041424151527491871957510757798585694242269061840152343350100305813942167333586454353575686960356929633186819175723249246671506962994629766831549595402488818807063644278093983987110557202872294925420289858532517830392216949660734303792826898552751936580536738497020567968380029848901470927131145936141041009403663857819108417802193818701896450876685955373948952355290248263076401586100209190614863711118523138324815177380285373750735408511372106374111951220490501094379175695795312419035447835524944747877376636052354356080373720569513416931806182624158375662395356381501919207626264699642286939711687733291928338603082677803167849625079740669235976631519257243450374545699609765231775205279254803700535903357900328656384986652508015965334109430430895058771716271985626623090173972579107405617017394915873155922128231827295144851606302215875487284571587003817264194248992670239107198880739319537478790512385981089802005539606189887863794082405491603390173496123984843441369435782665705885833850596024493098419153643667674800219066169781843765766759631304217689627251527287251470170876200416115208029130207948701645259399415135580485916806664639108310577025604087619013811117606010303004650725959370365680252049270560518494574264723413560273080981950143513196153564527895904500007430393479574183010617786021570004778077392464509726945200251623497829529467325569805479386982770830822225641303264262514098656290903356960612062364587178118884888120124133142298879828618125921065236872443318197771510611233535799655958383662871043008050260744670100677018614778114525377889552639226528040598723923987834104011345774108574136291783733185512488926520787091196325123510491039405738782027624300572446752946385113779485837249029010930338044598768722366897213774950330710409667250061587881096524958351601085079775073873747981026681510516785083917487313714697462342881585243249960401755536037142656719893354813485506634576576749383093330482462248859502344220079549400402233056650619339119261545204995811684315495699268946731974300010682095868205230582142423340170610721183298186980692384348981290770355803806070964104967507561297469659920784919216057766100126242493940618247495369747195867969909086106457627391217970983770041663390074629139713300932998307828857084981932854567163654603666220784396992313292962678185711228892754588569907353878629406182518636079242195566114392891423151496471556506008785998024823439345195439402570645927806736492394104876663457060260658756012959365398250832790371661561882818293162567748841157618892757640440331866908927922877582894084046227085018611231347752957433339684405360893056467747559230931712593635754429251731412422319052611173922100183465687802589096294714639532769171056897130554436212881724973558683303239202293449952365450547611882373120267847356168699489997316242158921515726862407150357411095281312932507634387756118918198997662696128113532481489889683455800911469298864529502507008946468851452507935512836629682067589211091372951532361927783366720179029309434378478617035745625355803195672500526898045897880732857353124733811989119671126046952370962143831642935823588790516858063099421945973426924141008625303278606665017305869255362086722484347470453693242937915331221272433472597648570391582393573483996105577197377373803372731122502426349957324407207826484801447520002295764861620150698791825169265547631114501942897209979520331266267015773660071641953529450501301194707542958198146353051419396393332664127119785861069079405289902984452807326609262030309489467905968626000463942360864082187539571375615511964582923722870569221606872669644352396503550444834951388537592099130844285564574010527682972063959999157961914913210443077750219333415757980142595988268866509955098115292909254648521895758430787367227627329187982036274907872804174603446639839937117027551834707660708403085177643089108812413861841404760340589452083390475929204813245442676440688569046687189951420784869364271503548151054968917628186448855518039957241774654558858942588796139171193488232678542747282275034981285381059823813054179652581053183729045010844982324582148992994229705276701234168737503367014311133338752657266215975836331973218605230756130566383404205760571603031319914365063951170859032431684806688653571226386510247243848696594668553632257974440826861996051180753528299299766075739666822150706761694108559776650251808565801511025691632329307307460917805131992773840067262331438537011684153449299992673916849720555697313437850391219970833409841904820317014127359815509542545593045882079094013004545249950484012352486095172778786566012202101893174835947165759025048277787956458927584952857037507565821276080866310488613552255064018715351901175547208087044975906224934980949662348793246696087447941657866152525474083308657752364210012059242427318734498396429134286948625408200748100861660877188558963580398922992818628596773577924411355150154506172381201947182820951385532187878853911266924748192670596623107808770045764573924320410379182861755503809930724955858983974035784623975955060493393481907104382954590543220209431445631491291290823783507761990729625987499029249883444400902952125918664836966964627784213809002788648984556988800250510244457681329473070860725775417551121360955895651526586850117765495546216739664175457220199394332271309131746769765151294342298158775259477877428487711245309754336559319226886398334829782230196012662784705349139975489220584737585205842754510286905253440629318300093683978452710923292042156232220888421394360183227977146749473812063897152352658343097970706666481275468863921772076689857834686326485626649332395833486118799774526050739471529527748805025575545066531404780270810549576230064511909967878380160927691848452083446106644694684512139252228562018268685958288051182559685198836268994669949077363282817220100812715121669365658481526759597946654858818625957951608246642157903071265142422476391110258627781748953923320202720887086216317075221409286798476591776044166274580738880168877725081039491128465653491450827813700096539205411263354290068725010598361763789701721818342410812176395430172499229329693752797756342976330480401082421318510376176010215568319250087274029269757327525451225997451955729175844265691274759363493849589768923075946576156938412120693097562553221736287872920460007767372882312379410989594498859611663469645070657683477802161078229748401345763889464625130427586388432471232020340362829966943030469628607042717597461082915747693076370261902596629260322459760757854693759706331485406978792477344605613803264281906700267266285028632748481405799071195896179174442539965195122062905249656715936825997072162848966758384127021392670271114110351364712312937741783296921848178638855806710452980361073418506411646478079711229021122701680918637844001211027553388927991437878966407313324110854865185496351008542682400218829451869392240274348768533184470844984007081038429527302099754020364106923403064398768491330304659550209046282357329968260630340377505784681221181051714859511692086003104162767366200314798208373849232067063955278502107315952643053026687322457000783854508302243524787641876512741175958068019332957908090497875043651627813980658228460784799900580286007193691533545729507315600612527630942587096121248267013842468328798064018284983935217489357403521546106354648821485354110846970713433822563075865326036579267581150463238652477280517861336689112283584531236848902826664912606458631836242348154015679528007759798307052083066282653145488010292391728984939343444258658685049921088704049370817866029153200521276358816814814347323273858740602809025076837899731142023700092044936572643099520766913196821056685816086089371585635147387868584503146240407235758465568992851370016568983514059154117166944909245634623552068519737731583686416490969562089412230441550124761880393047194030621788288657283500187972779195036821532059195597341456473829751580405091814248832572949831594037518894821672386277435329263364006209421605355841900983480243175214269137316519590591097750436803013135559321172404365118190688613321322612644259390247372616069121337633704672543303725243316708792476420928991601306261044876176768069780881493636166422529711083086147490734576059366514659178238200039177751473116910545352835572567533239236307893462156323494819916444157238855256435176648668766105834526226109934520071024613288295911119503864118619971131252484160660311227409446624062575012782096172223151536756041166661679294204044239470843446159771432814512355786187497775887669860536518888083387554822076942760543552054758217685510342266522460052240460197608388889836424333705034311841035166250300379801317536308893308873034318604199629641526387149665418389167148611802091644009272653857231782876376390976904595725674426440619708727804203555566964339697736336720981968331009658123949346157947390510130368914405359751935127622793504723881974270195639987709011596980141942328711809574974332503653947512956326895902127981208195087958777846014948944193642484060053784887933718017264799588595836891371678088958458086635604721512405147134134606621484507236252061239120484273962812288747700851383427437517486622257296737574252893881150022108193573511044352945246465995798413775810820615051067322293824600065593339631044806019759935693430387723626609385801053505942082378154261063016401542210005424499134483311766313890160331872062669426855907177244408865159697058338978971270138627707569780593090898801009416361932224219368636644785682808522214098724241563068523922388388362379003445949220727415863145528090692522228277867181315319436702233939547000999571795901405205679079700965395021950799544933244266508631183751937462941937358789101864639487892607299958959594359837612918412832844731168618397508417779405867652020903497138487729395258974848161697879675434644597723634555426170881314043618343032483047579192812146714761486104278532343754556582232509544146038038665519437908388148679598775774947530478362448422854324984475413173302188170515377426662343144142957426792933127355309381470522252504275959589029365764274512248073486276096583482032954161031923969509339200009631515985622561304500205425719734262670668355294664571689721001378140744567982877677766615378697171147122030217504531262725302297737325814555647059234016947109469052077641390367252240777717548552865131011754816377850747363699266508972498285863192317084769804058268358517812561401398714471947359622230327909107680027205406011498163151112223499004205678179510254230549468921806252873705586393764475145099076802969864607883181594044124482854483904373614794957531909485151397498079297069447105985755624693881818429054660304251714106387786969349826613011803215040406547887740707802114207701458637435635847623241645699296003890360031701015269164463503775337132230791107135823933463121118866654320416464957346027532472032166600227833213494908973181868030430488326340498324501045586525944136116929396724341706618313026570910622146025114809750245592509384401357336732287239502334341592053731068117419567145811097065795775532846428605676664649715263702785775015571674472129029790440644933823974987966387925954913822450683564845676427111208836060909949236483074343933493232743382918557662872530560184159114352303254531376951858705958198271649378546380894865023847993628943135172747330260070266716414571854837400639500018568657438766671790272266460694510228914611234958003933491393535319067319769908754679166327071424897541572424781628851674361731828858738573384462255708888916856165213337369892641776492249190833495767793434228875336873254631653350287996047442228796546950797696219756120370428908558974158403791111202998364162114366464752780207705361793546602885909076877149820803617871633054170938100046266778405341397950737064407406556942128092410448379852951776955168959500103985083676394228192576227765051648451975351835702816491854387199477635124936433654102549101855046505032152272545940911681198960234377058451485754319867851769137258988347389772127686048114266539395077834196935519201208344569734416496234227238459216825165404847543903758988380845183671341533799294478721870252223650795214192925348096341624016947805760117488190519882549276648385750904876790760693912762355238882717783665248927081369295203514007290456485243571494667374678843818334506377333093330409539380982227925739683097114453538597216400841272918208363962006952282402321241300890456394016796988460586690054645220617051620993438627233600606236628744131365307154535803347316665350651043890862514166497942294312609863698804077707982703668599354197772402265558510598544799531839175297609100873335181972219815942603954475468167630594995219101568384533081072557815245788250699957099205457685088392723872535666108553876875634669334656206310040806678045886618222210302036487903946833001544338128641517831972451392641504027057487003837423085963767063454016761698813724843645848693213232766293630030215130990657546320277990148995119105179797112657500379314734876844917404272890028531829013963284198542751379862596593593072089640165506187622301679402578530293365027908570334944290630151080905695189906841992777120759590404462332992909653836968666040547195944839818045232300101282263240216235251807360293777364430860371150254210794325453856306946166368562784886576284474693750413310362312470374295814085305442231716532568537444193550744900965961200334748563509027662224681463720038563952200697132286889956608128022042162540177300170436310510840344976469020498013078908306807432284146850648107871915519327938998848382910176499940357439886804073649834729837200032318939725982160146908116154514959469567468933499546762372154806167649053439494948440178001434717254566169788812327539912040017215103729736830469611463243284982877796852392488747570244198884119753288691182679686988346437570071367755260030868911046339535250005846165557609435601304313560311484549358171603496515646674615343828320735496116399183011770892329954583803165553668753578179033267374773011666850502892488361418067811737334850416319757391619601534942418900144824933059327337580848076859054517092896885980814750243870246853421224116947195147000830268257168407713179536263981039637606586830517852517880063887913126721949892994762876482937650491404937253574412638258823285189813606275110400873137145532127098851857409628186145101719365971338566874265510500577792638604032991126246847555340452025401770925736988625583837800893018639731877165776993646511370687527589479011048792082778452919298843337932519571114717746030328396439021305043373110664398867575792260172527089231913944651328404398437554192015619352417263383971341877313492933806847358513915900714687410752151187098998410346410246684341535109677718021942372611491838954167955283635669807011324559019016728593745766487209966604599477220379899050455302777756631599107338598084739725266709083561851702387769377757662537493603216811593282326658042958699291262824606458577866506208902269317686722309789059926130890954689933594056540279693601838138018384155591422802077297230300517186941861796757220972516575547454192388106365004888679841986843240609901187222110969373757625788122489083158765215288615379007181681481100511969109436909910620036665267728109468938810875756196807468829435574897124074102715224993011128270492799863328899491947313223569465001567864629636177198623753689442034679488742464051971111000271779746600229842380033256771377599038408376421660244560714526633140353072422821129434861656150895020610707677553362417684942111080290556703837923502516846953578019499064073646638489700160588195202018927277799991025019909559705310844858467343211435874426226687862488551487961547274561673980706636163770267789603927717238728416923588091506268873549116857546167441467580068891054443197675553093479570236432352742486792384064044898186881017270384550248598592921780662450173402353877858528022216509672729168379096605258162111207175637335602760656938734320143319389526437708208185189956224106890158859603989627553842116962632889462305853256363665188689420521369195992028623449526165143764073138705662169586369978890834853877231840314137578697136800165083296207271507005936895085698646303895092770771652300535039934354584568680178845376956927010085408439379936952812026083976376295771561081116246695147873234005339930323660581295254241314079778561893362957169606195961564380148911124202201442659991274649363260213697888142249990574156136820489782432203347224976631599627996010201263121626462803621499542652675157903805360267667537039998504814985816829723958897781775562423798718841834036732814480996072784570913562658002983571774612917561198232757649648979262919987535105382696768605675272941262630399677009608937347698259132935746726237361336447101884665240227227013157313900132134759864876714667437108400097612380564297960532810227200398704433068675414021128990196136531872074853065873643134342495377308399748572095070885168492519129973499487436832547938263062946931790230856696474283803912222372117431599694190301776973442361477959803252957606943103329488586925581589306275303743458694703150047304695083465148311988937391072157499741381562556143160298662883251915120106602358949783963009365578233994490401118942534420103481616836688493543115918196212604947275276385085055041656678666487655201249798311998602269515767290648021785997325427342122270085544472245763011970255498964596603355469410360811037173286722478505387689935397298243987074216010553118402177194312525254424836931622746088443342980589299220672931450887065725975367636495379081214112185956360917562026338222401472594725481891485727857596249804925115340764826245924389407231493842189521690554418552083456318775430836239836032648398792499608532127227637013768453963246928335578831738283635993284576602960598335033354848985317315440260904706717102618070998671008727349146848814642634731586857035528115904240451162284834167790427950063409013666968993555583797750136406094713232320124392567571738270934433228693178988071403136981298098582725709877549754881083659316065537768730381730074504012404013082612896769986674292930617664127793021083961674659846929642569978736358989339462146402799568449246853754965676134570044149467069245357017798268992379989329192387340290506154428773855637623455662765353930223412912329245339004142459333271220389293285988048524321032928922751096631639794724773902021405299373027443657541571891806243755053459458280361102536047645540980906912650240496119116861342846107141464643811774671343436173463855043738417027569904559253608123195619164080220915458861896961664084024318967858255214715905199931050922748879731283848922698333749582633696379755935993688693249034767229679077577341967018402372075176943222610458215329567775029861186932675064794829037920003365194699013447273825954149557606240404750804757690423937085226965205785738800607016046772552502765384331489357602787144949461369345437055128491755794058998444959322816075166501755820015981718882472770910274819072634861536670212012302838842859927455889503245003123802679526929918248228099971601984118206712811705803889125455365627876836548216254860710880395905995534759732549935824083658549029539304575247999928921654900600549741603759225776073058290416857372494140509747521660987013272461715907341334923104247963816298521748883356433803468844790187430430374203164539397512675062791750712864879491377413528084694627396448910571601168595094679311115792846438750435567772522855934952814716815316202515038769764038655193570590301056858865716038481544134004705789008109177676589585962180817481050514121794129358506163471441844621668043581858249855396074711948974292646683295049895023727197274916540682739707433584435420877182197219835051878373157784011242079661032427362979250600348761176494755604156052876484735440249104316888106090465966802616401184014057496008343178744867096987205769605316491062001104591548575875097667151380415111445858399597727743404067481183188604723505591587206737240771241161769279528417437513406668970441520452740209144342941027819252948825941076844141898909491670048980207036307501669724055571297239651852225707512185699442239311159581009201349351941335111855447289245921612523122776384521234286083680294090837390231913360678403333237890603553905186095595398335960366096939520097029459255200543930408079817424429658629034975156401570746948487106051645641305865230307769780431563282642889547237427399712667186419690565082777709410292939456942695505275138168622117122755772460704281876835371230670775063119626074337095347214114088865178790276324212269420665347458258257422989194285407005675990726623503922701662068915897212019662051429031806362356570459443711589498505462758862633135074398046407481730114314697186568667355693369202491342462182065975958867860553506882466062741436814614376138154918051831234117929730994774156004726363115622200681958057400014205914056323672236786269805243162874603477302511789967114792169743247328613984975819503653498703954593559672498447475883779280621994577121010452949313931660801155914849484622643180228334386748786617208507260892283345812798721539660946063680372487975913611335093537962550757203524104299045574360813781991554307818132206367626563708159716759593507693214824752786980702263359124051097357087070737577596915026785757925026650279445200042912792129580391852931036419992134407568006929957655536170348298364933529950258682089727606003229619382792141402582239309271706962948095568003907959262795285144650879240671590487977228420756605810847214523917196707519824749546802748050506507902164424061772966591045026643437217404152316561598109795934793633454638733446599229013276457042024628032256481965700575437198544742153270259407977992708238896836040760282668131070877464486531246227479052957836039499146268742419913077636992775504230532350262844404127356293269308530916709703488861687204482369247790712665251657089011421736824844298120998795500846977588290147596959567858556610813253103639763708165157254539053731459650417409229870197207069457978711414319072941550264155213324332281271637953977917442696004664666870651234633538179839040861343743707839247753094402085622647668323603639131487111201374440645107028755422439989415980038342746873479967338193891630579798765569134139842064814186321079455027857887232890591362993646975299005083089509759764464410436242534655854884916824154056846915559578211293170141911433232450045619518425696897255357829270019247004755010764931783607346667726059960977224381416989955845064673588686357831377434157222150393589801814335160946450047331351936486673888043422122190659531655291891464017347483579202591419911281208146205614600867155102738912324813609773352923307897919137745346943300943212578476258494837728417409282228341482813490632889560149255630355820301282802630319574101738940055321177811243214480965503793374594462259294922323500115412839163732072823104497271508402040732155052165658071897038410969564729117965799394515675699888554664866880525066828172322332236637918028287308983179662230715060733499686499811098408379780172061046813296395633035715822450916777650627041780682272713115543171968954870123272849061997736953916393806838990834873293513023739712138172308377265898966713591163467180385233339697168204222939087826630570854512455680038499039192103575868442704673164205838540621096793107045495907406009605776616077768289028317623836506075862846740892897991148297472524053133725499406196544456204721945646470019006508092015576340237206122020161658637356210404814117213733698738162322782759012191478247106813599417209506071082560834848111972518011626640214462604544708975989614177544615724566644079971056919241978115151727985862053411494443028800083895308574540381999890710118176754412568457306371861678984815426335344852863899030185967766768810111064718291986673892941965525301334572240852107589322811720428063626697431827907000534108486508902113450814436537515415112311769001497227726351668138361364645920768182937187334831419319570495466004417830753472704946137411600208014332578108779362514476526424980538247861497756624625932606273025752380220151868870381355977519092287898988238308836003936506300358513976568067388038586015358858747119446477217367625159417675409851410479223934587455071404485851347679906171022773643016439506967854253766372980262174784033123348530258051624690566314426421546126396822011763571158400574184607559879108537372459185714681605932389838903698257504773311918339489454387551211161691525178432933893312905235677665063871213159932392669077515022772069328187603245519219663803105200259660633244102978631607809205675209931316245846026516498363588479836897728473713768053529463831320688127611987321980768684161987191051493362132819286009417566601028284303303066015906026476207717734176645586333650032526568207278564647034025415785567429848122512544950000809236866545442047266668150941057651308963472821722550915700362142326379523390112845722639536640264518206184061364664372541194825350678455533071813855181400587046354005756978647745008253888063591557546673802305132184009110356047250175859455038653642154123471752938016235053303833003611239550988597597107898970994510819220620951205498119892140383037112833993176451708107206322425914986677308752205831373997081521180659832054063336025417427917570062606427960148851388818032664266530008913258806410430753546860261116424185148836970486952919308914442274585659704167346970714863373038637047721309777880819015685924094844937256117856482414598110226215351972376459229454637710555209718377504735742959216870749984658034479852552534152625651432756361982556474804463810001457386745074714798737994631243418030093256914565778790299752734377421954060952364555826142323537985178592020854350652094445946755454332691402940570314327278586829677570120872507613179522752909071612481858451616305854433935636879554576690958022356455147301232039911686731037554328162009301484332490616221934229918551988579072716616229744859357844379559725428853016444702893969138502080227723164612170193105873383779928013623403643519736207582720724691230068519732608608407307214217956476834160355398454095165571118313887897736418097450621695427760245381714267573639486504774601955757100724690738660416478005948469995370069196508821756568236313984519299308643061644415786345476943971715182784379002216183666490076571573026361547460255700746836508594488470088435312301077871814450772532870179379068169637768015976071545969776813494758318094734388590417910398509216732696715880338242954565238278316001514373559247834365332985692995905591390357701311728547190030435860120978606670031984618549557785002561878007341393681520636716968661600088797476043194495816204864031894986268297305659529878638547936538040795296818196412750562147823727976570724234607771033582192668196487090612792439676802089478874328731389319858012994721548996676101133662773223880320980900215893277374252725197168550230433494134783957422579577287252996705394752708704382136321605629614969294886139382631159596082756803914481881783528849993983672518013547319436287414112000838502682785979632259984566638881035470158879926029954579433231237124934842248159795088138280838743552380038909262377811672788686345965824440526556388493619835814328009042859496160160715917854111851811640458328639409705643342825876091596979004531481737208592436293822821743644160901121690819130548553752732918847359269819930246000488906625655471984849217564702927214102356874561752859320768417447068624819179666518111597622847141144544819050938948755486596554494380465216556146801586113293851832297996262719052258955948858554292758645669996106814481625312099385568053887112082431492931401904232165830528867063740413029664396843768115699324731001601156675798232761199806291894968529867891220609168340301504281205056601690648106580268319571098547745755609942966022403853422408660896120514007410786899327195039482327874421197184181701170658003516941750017594762042047781780842835694839854889398433766894824203838279034574515990104254429318470565007751952829235870170388214056884266673322662001048569691464714859272018939590557764913685165831045042596615220512650330916902718208651343814410934942168743224711211447732544934069816367277003880990992387237725745607237283714005689736507863465738051043473019763688602991047122839271778438888634909318795284689983430463694806591877356122911278723476424393266995984747520460324881369930611651954252708785297656582634357707635983688327891007630412514643435075063867457668404220792624142089316245036663164723619414034127796258541050650676067063229216443837551852600781590428872446492073473811853398712810738919095915848660049584969915365198719253186389133815027476457277422409985497718662845290777191615507493734531797717744117559248227520391314227328318518376376424753037619350958234736803070389624313409611105415389684195755226587883632952302210694281188035521178990571242847052997475807858140248185214107417418039304313156158214893283024973641270486868256354281486099866335243241274882047681913693798553028158612871453461782522147104579405594394939351415676570559944669548291638609619982577002691019865910313907752244603408145220822396406588280832282379812531030550234222390264077722859102118525282001782101158574051900784089911741903827185857210732154018791353762271316924154536310557594011078788542743376244581269071360125638152628549711840510499886165682355514265868252937009052632306519210934205258005610470081903338741866924975285984040235893463838044883706772481988784184351802599248613591555039593280583688880708631973719724547213219952338718361498856702834808358073664666695288413088409896704077178101340281423285870199028204717989094379774916445940011723276088704065181205167372042516216667880118529656206953010619458411767757497677039645763535900272281744924621207902789823973227762680521155116302375320788107989191153865359316719343478331739509784884284872210822932057218214421774911052143742191299348654811976970775546402255796800509463559101473952353097496292145554991996905257817162312165400153605392292002134947654900871652830408932833340962606562133153686664361485728628743296708179901332287268180620110695810989883368489365356538736808772547436174834870436974171062270877762019709339509781655449178906153062480220613840826475351750428680642273497739138989602803899680880827231063102652799562383293605687065121921968763871275990362273506704739306327680050513842302734167928195756872131402694740107857230600269570033536069146793047189823681106589270351105293120392618437655014527253378142905220469508593799905631102742576651718644027078257360197553538374525550951031812126256827505435849366541101072914153937411934082503490864905602339404255018989596358897158272036600228817976567024476406033668679729554929491222888542377337110787268557295965708424048706077246315170229016694270839637747067243177359376179460381753015730850167494494310647659722700864188680299793723337164707352100731494251989868013153383315489912390597879561220621923430733021250132653295441731699981948376697773319567400353536666910878053735451345928475710144961812065480747988628403585775791328437697510453424842738004474111846265107859926867304163140771960217255665030939483739916489814554739819116422315859763312277242603946614408886311925479059969371253621169733773539260902988932273695969566459986830161049392456434421730553031280390515031475629890998208461811689540177819032256811337637563005314254949997573785870974509831938461659170755676332172547754688159493980007469723452317100374980423515089890258128157270254995593689349667245276474671666897550604682541844706385188879757474216449879931936163418517791716448905810780165160058480488755057527539517786313157183307889643423777897785544813048840466468127802003426725514464791040464761512015585067756860037883459786557705619116666148634165414904725428883628501918980261511278673888621439517443789031020455728410187073256741549066264989587471756017521807548449961847188216242776085173478176736081040716114979267980059112146523062560340530619696497847352101865969894968195462449953773739514047080535551969859288989855455115942280110177183662935549617633743777136355569214532017003558076787234436569682073887721778848751441168947482843210888524034167513600919751552927405155119482315877179883636609623151814748965990014384967060511205814140787626920798520116160842748901421676877962253571507037961488441465461730724212562026031035451078189511482890601143327838759902052138285657474879993359089471299640981762566254089055182293446956203500828816626322520095186805292024425036925115840767536177999837207583421094182069948341608185374053680845268381040988994095832698183278931347055772289484170386710559946677410867431371019316319928939213254779685296516302029243401028984456704248294494456556191819685029647511370351316798889235488650182611035622866299870464867082519656512906815388911671761536261214228735849777571614849274353646170975246733123529977663832711116734791080904954059651962531348454440236935031889654355615745117560454580851753006952232679483366357833781888402710706913633319601901570175989897370914677170062561621057527196136833595811865305039074665623611625866543377650326904721516887674296027952612370001178847557273564299691540080083487803242899528056669929063796970181634856300321719148670911546814517217831621023890341853724954168220877806677609807997500169876365570064998807147741762688729714813354180471257946807519541401014858982930347568902823262868635540083657196151016073740059792794774666475233164209104897457102452640927612324527715750484752138046238791375533452733125788085691583292842197834751046161195963568642158670443769537114374777218075331959415902059262000478358726651682829381774627060611231544599756832085122311431597424281735869604945858295685884607704564142337358747698410562402671131406390171253953459217514472824498278303932416726531867379513978297940194679415844187433896121734513934178652502584938200715623156823359560438757332186785757821507378666219550162971597580733886230494495742411461627774863535685442554287877768774617694590544601030792195626498675170659704050137614119734677973753006989521524557531187568351013125520211974461235607883976830276707391963972679833273920315455825532156869494426839082961468670385945071886167640614753478853179179073158412701431895782912028157911590321258530729217162628844043857100162196157590015744677530303678817501426008946432387357498358982633207781980765137847166973133153988009224450654370064166703761919035405526540186047751913066999865093975826866453086630949956166663419842522280638003490343847433666976357017915859021674441732964361729970465827226423052619187899004214066940302315407914874691400794690710144460304852339675817168480056741763709231325602750258117544470931762292297720754117809544918158096285868864738858773915974009163887883786993682144075751589349158494477612051165025127859335504753730984642859119242895672376284096486232198313839126494547306986341340693331597809212783749436216080969120639891754669831894107991997736692594408335833168433967386871220342088107244308454612457015778915257917270576581724509272334095554101036581258834813112251560210118559478412405098471054936897168435049812327331146370169240694654755469331129756788335897981679098080125768262646254782615600276154143783709283978807739777836873681093909088775430047672064463727881880309747056193572510724534775561421396617458565858719654594975801485951678253988602755079399117764239501922105524899881344295675188005529694910482994543177893481679704393447013815305525096451294430303672220229542144284645853165383150155020269860876951080606546592553266961418967478834097804995679351057010496259466728519451771723751427340737318585550725955314652671909778418561165229380335144415348463860051726315879914313947216393187355050481508217844237247976340039929480441249437176114595716582625461749022939565032436556579962432831012812927837947214510290308374914154967944100563364410292826326643591388452460477491810686716965342887193227644010891645360142502987225260712944736186470426200550577221933987462732814262776495961433525608234809909105557531911791525992782108657178629033673759025146634508111600775944331997259312891386593401545283629244486136828176284120954561986719592683617119787971320412874820003321411460358713892471943310850343253747461151772777094127105624699731555435570915920532615913687399476609714805429412634213854112020925746632633033568864450677901913980712415168475559071236583423495959080212062670079530350093556127843021391178851191651070045133951739137076838171489658164955829264359192595851619640420409625616067077957585677652867278349365002490600749070211097841168231768357410038949025190298324129693742452417855951360761429340298358347027784545867706803990573430652939219666725137345551942215683881763519019171850740570994305497934537935063786275619523713216766895281431544679203474677788321659678586229502042918992825663925730529943854328703366780226866342937259067663813012516356029872457290136437052697829392858239698852537177605809348765223562367113015934750426091380750446311578802626620160509632725313462886896168316096173051760756806284050474671773937336557153911765652049416613750723171690744964736955390561902561962409338614798451145955826174458607436585898838935800240452370504084892783214977719839190667280295803818398623329620910986535373947867596066368749671670331878495217384627605519638643661546658512131448742738873526242819675373506894947301763052494491011541426913781459561530808603417996572971817108716373836308989316164771601085103530837096851555633239898404916973846079359394556258369054543000832448723306011817965518371315233949088001710118064964203805553982013694160056027827432668434527415959636144050596040187035543074497755398267117778212441001285877448626085089014930783063874986240762791281818515814745154510139684932530752826466908928654521412414187000985416591071609314486581588745636209729039026925788976075797987586323161675403857935701594378629396793418458597290286345218922448059188548713454271354680310286928769293395292487176071288565426426595344301692914640547222234984581712477442317228909475949660409515170932638445238213753109105071829268752925299429382822771422460826962832219703706689535453880577246411450763936001489706577720281736801436616574551283265185349855508022970122864039118991111527881246430367832730623788434935062569199731510809329176897691675730960613818446390516919900411862586426887570617083260312180854834248696999342599950666998085766851195341679335384507060527201680010482065458913445437300942834210062863905824401125869972970477977987768669463926212255780298490109770059721560799967105887635054938875408617327251066030188012763710084589990398220421116249088227694289766542566121336172231358375232058840892332948290186967119884143276764188090564019970101945914893416740351026548301720641472899609920106301567907660173445156884547164163385755155056734930862623604959610127945098121432464989402819259524854004669611181560778533685226035995443391512725592037464379726442228886963318510197699567180382322871146619501364188334989767931932857039026653429533876053541309150033602711347027513649840397901338521251248371509859262336754777331410896709748016487905953010126285234801224163526695698214014872763919270049845940037730928684980709643487885169245798166889704061587729765260926758735234727738695881033886950761356201362242585357823422159254580170844168168605694078726422520266296485343019889385455643771096612668109353616570262073906517325307653104862170203799589028169643362151321169062702501422439737386825046923300007078346879937763683466068355834726478961500256589490057327820757470703546108628734343540361812508714101473389441888073038628493964727536185350959072706410959467990664693750872654211900542626668093967175475706032984718783136725289366283657691415986271086865950203986895185606800405658702032352076556460433059791831321860851525905407881393766369248372485854702161517149278653922291949067412811120546260633506285159456409645262645767440570179420580487483469027222763388417123144158417264752537235285821276571949783382731120131939806388504297971616234718457528156886930120710884448383690683955076218704962719232374526717213000444314912672164144651931439852073399794101815318938200104975461882420318417806169908390885640264204223549469771071644896116139668168044435585457350493694088154687047502726846756316419558565110405913322393891564055498590652373282909235782593983121321792124941152130216424283924881359532280081021210916561730412377856315809449281176846067637306014833891145671056826774684726047565463004691833361763603993445060912012144243510096444897684094471308953055603261068033300431172795926237361416943247646864178370652741803612339531488205772374386987191341067084148435373987408079109660395693270350086689806011820922210586771878379479701622697094322081359203219049696581879271581973203483921471426914397183203551811147037843123946032400714723513670331273839336956313101992235173272303982984564414773322140258065071011351944067498206237408549000011716951063645458767266941131662408288822220022005289431500426036350171565911418139922840147675539914305195384924535676015339657350492737415543993467790343073163506543853119729358640247507822368837610523934585789973823471881765509187744075848174155088889376739329684676393947605374710095235939059498240132018274057712857732446104040107199073914121583748313644627049092057578494683576549313735169573783402925680288127190461442808040929732991389917552687664504227093937249906062550036653497426447304277634373693660449887219548776451746994862136957863982827961828762483305639451123269928880104148920246592757313040583945586583959370339524758624928761892001523802330731835237281840341337018469854289882313944785284702123416789370198926582383994969130411169718729407116894585374124223038995577854321629856028784970835963018649570357593847299216127508007945477839687197320760534786320935488266371975861169681062170844551275233650969184239868001068881812484020580957578175819850920600798809263746859253703572755029151896616738644445404802565081122977008254508683088213373186844227260338353034245157983548492060423709037560631146667898442158011478844889307141787468599988958250285872371336894113074729850269515431992198588730308958887599127376037044732552137863540457531445818793987215451973337303657633604983677296162525992481213467645462547005399033579054225961123755794976360848481533599668371026066847180311324040200100384547245709050468408442730851314783416152111442467003094361486331715118972731616017654736011318899227023982484197356785473598401554568843079168626298833079657659048891302349679984990438952436066014526855392978687901224519961196638423824522994670725680774542160510720955921994424711428329572372272543873313138149152493357382977997653351441677338883062863478757954186875103589201227170271451606343990508742309933709417589668168774365565817078975816024202483006007223398962608109358017396762996277249362115941293399252079938394264209568299203075743026346981164690976774012107928957659647940016739171544829180328826562964979612354960447196089951638427391907169487787716284707119687176297394538470775997474583861746709705233778576712102164611766181860051354939331623825068178989653781740094940324758311827548889743365573533954947758836764120673594262153325802122619826241796866456075660731801540840046435901393858109892476821389506605739620859032563814400408216102905768844310801064555881065667827824337563893734061657866763031084901564621833208536867440047241102410392436695387176990049797434202748997482239328811623962058006421065857935606115503542611427088617043756784695763883290805952541226253772143939225933441021016052940622648488507762156376712991293931629260271413021856637389067255602068234195700104630806837704617349034613752051181397090154774135115173431820872973556504851182154828090352660495158525191557834369814381125980512950017238768948748422568833669980874009444972988104355026357052281875689026345814559508601497976558931768579482567680009176453576870643980088393086720264250090809819551478720727231280454542661636906417929911989063121941260122592155613082388181777543172278014245621020658319053911471921925213572447302390916346629737045518601519008380748530310393107409708954608382627853308214734261729377383758456260025676257560504996372983112526648373075872058669389948880392439061549966852280379785853703592974668903008549533628910319874991610087748975527738265664928151166111123429017006696259712602347819936276841685853614627789809005644415332301765129788649148028280609079316451238171176888766867250372852257634236387618565338020493876098350744326129274081438665276212710719139333520414861160617799007412043080813418877202442383917672290552347504757300810051472601723411647245764984295090408889483043910578872334694897606100069261706702484064787946167161349291898599732900465154593676363291336774975250075471544753525437274614638669115925294636139917938294808974528004964800112539259735524181539289908985736411425096059212279039535940778742320086188496832457261331545624546747702044393688170235174610246243900591477730436307818211856770383406046192528375847484357547199660081079319793190221910923440538445835434608107256379314606910088124079662252295600944739382384521566664519980968672656991844169265138103040205981898825342579909918755938589555178603640841930487340803245618125320177212669120849740158104115138021912264328162131596318096766224755329570002671015938640750965118042863021568362102649503210222877681919859118096045521224092731409862033923892414564533751248059318054413108015400951201716279869338857453628081434097218659988920776179749721410705753124735718021895442452231927004391222102067406357335873870622096458897205863892654418014864458954012858526983298606752822410394716765025545179608679372278771298564431171854050085511887029383055402235853564993657165254616692227658638550027527468366773677715350536489282913111915195282700760743698117183906816435534591500115920221865814522242139749156195007794848942168031138850470368094485123145948435515365309980137999684299251396733211773933159801895223818651309405245911614807315086292865603349079558830367631738623397935544893437655700137952370687907428239874944566514412866297392084384136782420091747644496595345644922394762764381451235274810272302083472792514962595564390227955505532217779765222489795912723681042549346870332106563931231348343581029647440438001426588744663173649308841104691268996974164267568001677661577152050409310496083737693742370805542793850166548860275036206378975477848890128296324943521995225300670018389777012511406328954904094371323181519913976451352432533483510756332832154336111526458265840045734233134322932194780634103784468176298174788461806370821438594082819657327526212826591396002055088445508614142756879897060546655507081405629579961175480286886661687578555817222214457739889250861571888060105945005949884548390342798811594190715047063840284175582314747733538059449359167727694789541763970587286801382052108199934154340338685790875401117706916329163439965171729186241914600804812915215322425166908494876194703565038738317010739510119512546172332759898806837349897284258732091103994424466268430272935489595986711995616723657898091604526755683659606818905470387299378811542087355033664632246709723071190070713756409926981360126455726447629140785371568422505489579161523714280317592191656441535954879011556591141942460386134951397088256589638485484707558144512515073012847646097652708328172676845038408283290968484289329293748378811590872995325330570828097551845552047459490165503975470634341854968545242602072354623879536944930717476326391104481185684898756381625646456581718575550138148155529936047290863428185627661822764127093600330969812026382922793763781470123226830733389428086901671517123035370752829720384250785185753193619998033143577524900696608201657717434109884896807040799378337046197092226486255008548538619751101706364555093151364695760551705116322874048344491369414251591509487831097684112905566201747266806321715386964442450658718621850790040284781693526469918006152998510209326429339781893004482243588263001629664955429773300263649720652300973914526116616859383623937469853935417949627967723681889994585057542822255949064785399924055582121023813371657211819068572030016474713373817604770036594195486696783185649560216817208022048883790456782585829624123003204640927705378501693214931637150541892365041684328867119681381715946989192021770631478841783264957326445798535250337455599552896317752353225440130062243687587771206100230845011830291379182005007441869098619831473298817341884254977384209207877706374947819913073109714378629103635840154092007856828638642543520597834175817392842175201632519439707695624241461996867734336859917237155980430000242387449684374523679072718745718823496248758965188846699229853997312713485195390543995798280221973468444094192013157470105542120347558384037633014627744284616233486056650254939238748040673593730390086948698992390871245266808740156673955488935704287848949762143128423567944557537969301398044945161781850594935243286202236135855622432700232679134726638280965759810023300017109696239940450395099104125195225397974014662313588574560532909335426325525439814732629292183722474355012770458550816216531365800561330323276247099323976378087408841777238826005332449611118360788495714660699223939497306157279013353734466190284240888295042680531281837016487237185120902722396420595189504980365178925307832945127976837178904086233581760409737447223325365251078693808853836347800094890825437566641078428645519190585701110885375835523354036386099254812839612494590951344643955023299852215645130022456696558986228401534475202962530379443786504172654851782520340563457522348886578781128071837614114590212204351111777557184213120908129567086502312398155043333724667964962148084827778579603023491298558495178526840868020599817528087657091835531054415082238202007026146545539412900815320790580012362288593776111827517762993426925561009969490633060870039135334381116600167819635148458996089599226679760747489459665484837530697759167754044308473779884108406981175981453766438641328936751555135016460418606931932325760226570453327620339142392578747907243486256618385825263418474705150630799581930717817586592045303543054591490244910157376055261033922848034180740873404193792302980551265609071264240554221946015424979418779551072418202059906086331609331807801660021895443684424863522315858300782858697099816396922517254673874612222875566946521801763266046180631913358407811356966954394576840319176478079984386245947595511824561407317294122287880149954780437790043155294973303434410630766728647424531821633924456954688515678965492884263232106064743763056327126867556719662510708283371656641248164312937971011094815984620080428002864435386058204693816521409165046564841058149553032505668011944773563355126217636059264672663972877443746066126870629719066285294075196808421721184188010175612272272010830812735485062552473176625054252485005572552926755839248179269955021897015581566196665239578910623255502123779644273455138059820641052807189037723403558818592432769856551232300302729075345674920865854928174081019920697650528795426572771350876780437766978796966327783259849854079924337688139897234151647073070063958727123685375595611430351820083356819636115849198207545886509786683425860804788291116556843930347471984572134442623616174768831969705924355612720129693844072267502815445558023530622997620571026816109145183752998553094974736395386382408180856460485658908343634233841564904471126878495239246589810608888121344046578127220845471313713580859819825024929300676738399607939814341100785544314182525094451919233168104256613905704611981637499354819993473497521407380131953695215070788722930514854990786311455404893451998738434968438271311355566285431280597884891647337928410223498629768463310032456751323921389441340563306308111720126310116014143085955118431589825234692341329188248555889765344315622439156866977061911656037142055802113482793778305196163311378867593810500058532079789474854476772590950387788889437455828595675671938341587710866380326845395673814365293708675981765931770193709441114556370118057508304163331615070329726549122148466891605131103957967183399130593366974222282586173394744049426595484069820311889529923293452768155688868969632695764514848700908857612994914259402974198046475939677901529101173142751759907714674105841017688807292006003217000452103808324072638746041788316257512420151624989770477677524565024446874698717056372005366168989407086274888204877644233811830040211512863448171156545938039540652819782593006298150081129803500428729547521036139197635026350827549804133754905021002879006172944446435907631525202395729250852445445387923297583912395096544967460234816504342607347844896353485831641329868529519775775589726045644429921782013329550311699483935467845739739016883099252010745774524098305707538963046302090634273910604897582974124676872783254473502545174781791392693995498084609023762598340677765233919276748919548862153658993998967563882507093439788458735751531672803130424859314690221956564016312697041132021420374661423861724556447012678101369889301360127139923620165658769357076784003706778077170300947911036239083138228480434594929905249979367890461872823905789937191718681839163341895681400931476338273439299034632493442739226708173123444901293410048925163760512270970795109655406122748130514198695886371405197477986323915751978181649070474862028707759057080451163095849144125978662761033825501740435977060313616114088564199981663583207767070251482470911964729751411401148370858205189576397026568149601876447196060344543137442269481916020379680356575666440900586676555199396957615111602677926340188480998754095441961425639633109524621983841135538139894419178671480695132831184632339916710999675978690406953661610109639438492829431703656015366009844192764004289902402386282373009451892819838702919289361456725562959298906741482583261575493131819483970367362364584594691075275349067581346588308615490149764593209907089611618293438580641143701998578792929303729066526942059793307894483525193741187690441065359207400286940231389617416333681872993282596334779153610060214736644682109697927556554920521914430651939773836125269028608093455802858923465285442323277378228267368158099029843251505603038435736014602862428882332351089095346238343902024776948351226258759116413223517539203136612920667409451617805719055255613465634610583936230101986783619169689882294696453442468952227543284473525716930104782757849050800910719745544972051957744117389142845855272469486313826937408664438015263380003237612729782842820212119630297140260432798992685185916500921344719592510164118109933987178770389154005900192848511038223391593014192324607572894034672866312089151601784981959895313829127707149997655442185636496345775873376938636514399334081909535114005692151487406795042693030196756390020708400467541593551275298926056473066586962693370372800027567452996154830396149232794783975974051343250038726842605799982892585702272379216587565302220082994495343216647714913861659742148460415976278252023713792184281373174237964010508464579210252208045125111544851963731903265248057575281325388124539563714794776381994798255264980184702079578919036960369585438356607284585076848299922653380621730963373369384500678872915060101692822674099656027178919706290962007402721849140744064076412456844429994643041917831345831554643372333963514840032362323203462127182031420886164858196915658264151119225884804071838796678968766533539109070743099658686166922122301166915821551703867205632264954993021577105734673891505632294987712747075509061869655647306616016621797025971625566876392879941725888573625824069586751700683695792530109186275860292044161593993080262066007909774963985307101901411032010195348929010260841305815527399931640415767183396216706639627370765043137342044345935463821963597363176781707296321625709648732000643996306623553128538245728740290956396590758121632093777998617897068917299763787498819172543733347562594411704771858890112623671628418396239028415098658460599990078106749685159502046889105573568025264443667755809652997383576280804840719947084135842461231801457377134498963055211303647914100203629470389837751906052587946276023234386270171052248220331290090234936292969166425453324916689951486389136780263000238718984271612654328383802773956799325232422238332472595764028115310156052666196643955687358782066261468339374181755930577987460674962450868832017019769306281447840358481351665516410865075476551810128054410269067667942867732460880690307408718694023333858499632348094659713735023007161596089189940681386726916698843362465862766022322268049461176649532550295254973022749660590006379928040479871588838119436184412336920898285057022499775064508242109377735618951771629674515657294617899767333903763012223547184679787043374088321319516806228293682874343323477403709261422957236693608917712688826402860304635344887234794966929972193470708701331743098105177578032655530607738592324185904824042124731384461490808963519154173276940289104073118064154845105581276745320732170499218169367826430659018864244929785177946689009962009007544698918522916109376991899131375264194201513936495164993437087215524849310554429082419308893094106244619084495959685646811850155790616875174170976888865389539348243317883651148422197575927742429133852501064425196035078151602051029903224856567786056376788505169013216760562279973092556095087271615836298189141517920967326397018487902945051896582937812356396121273093721207295781307110187806425962725510748787773472734465274486972843274775180484687190289639989761356505512208885375218046185691825489608521211687248170003929654848629987693570574352723973402093178758858315585912441428391032503649824432529624484150470564056265559688137557352882673869447896615453912852686265198888058209011927838472705196560681755737678745738714941117824675046417838152477170585049958132340383652197859596770473477369136558646450358762785858189749019975831254257080469290163068650723404120614924830857263612300010306739447827899721700617586094464430718474531361947889618040171109695743631711971934933965188441259375025710171142794284473731383337908214965248934731636791432600412318334434495226857728843590718826935979392236368772367006406541249230880902925791399925671609354248158186909152589865281760304807374909478142865440330619716416237586865327756782916917252138983514063286481845513236337887256155053755927725013209186393007536422926578281042230211679289402459506842927633238316936201002156860730154535047823884894148347355533368299406731515118699310857352629645313361970131407948112458306332996551740766353942358589168253080809762846010885928938116126977804505718972688043313081724997423032659661256095787942843442218590149199904722407415082399428321759864787631222930290080766971530779727017229640073822174859177768965226591196032164721059456634760271486264125927261921944490521374768599479768266019278851836069245961087487835603546721937713074071587137268704562526505628865922841976329147801499569103262640042410333066169391644245160302980659825938228311075703894609590063679774554103523603708962751513525906467005104553087639334267579132200816376201911648556114492167646805126963972148937519915424186830060944932387609738854359087096505844595122793332218512738989571100376115597562123183391905191144476218449741567654401368101433924299683805087859585531981467633869768857829639877147938576484178865296401757679478727598657331860057739588841960338916812869443254774899088967297781612187410415757068924135178366085892584377229993226895137963722432610815686307412238029824795392177448451050301088105584527319282660031117760128988991440969205606144637855284570635251832427202187896439198374713069384316054705853363440062350879958514543363312074146276906036078538491460739455167181698881043118981806518193939161727877672244580602385712456645875124987976472673642216226804867792337724322420295506153781571090017913037938696699559939922258845739454987171554584303103648961009223659625942003816827153495066335351089596649298631277752202862016803975836893675236726714738170572612244060268341861916932784773846749268573546590934037319315788282432050072733264471518076356953424217665738160103476800260169529474842996595702170436811470001222508933960209402880000093804977152609827246912958140811178686100580005056646793756639057075259720907941377835887757245367253062485739931749190220694634033380390826979721893710524124573152542616556894520701832882586448705472577495728377800534123069019086199763716991026596474631268511306178723765971439985511495386783634414975300307513392970254250478974182553273746539683555587203968850505124118233291721755736228615310050716855156309056158931944118319845752239472005192082056855312266096377474644301508710604804229483010497571732097864290027384073725814209471205453605139137957328639492319304250282619139518793167106626514472136280444613083550924949996943472214632700223193138889001861041221416715679442226065222597101010894181182386358366712175746931903122769165729932732687830517706409587916889084425196252191967097973614771460665922797173972778381364765772121454181774680780331867000438521899446660042213154214816404505859647856143307784735878851229787324686270915953839262610701444773913818769098234715122842711734345902049169694826584973991982626923424515730085224447849804059039363209783175148028149969804533395840613670018909489844605107342453737054799105252635774871513930148147672585317774227542733526727305851046136530750363800846048369120264363907864486896670846736134805980646728253562579444826757156007764194394483150902561270630672796495853269492982539093209143790119575216549598789188246312963227617960497095252084859665423521957507103093047382528715745837775753258770649636089622888922640408821866223806005915250402823641290448766004296156225559194071838511999132930496734326917707007714337452284827739119936651184129865734632410025851771849258582719360636288321390149333796714483554072131006099472702921584596763423581833848624063449486777149718177151502333577860285770113538648975275334683012292202590768132621429697455729524063581477709147526467810946389351120860423201953787128233699228016309547819421785933325227355069337329809990428120780973641591023334408184388390880153868333561355880747961884982066229052390597684364126182964802892166113675172292274274785730522244650993650897883899348673383914143720814158258625440806824348748956397780855086454082354985719852997468952944237346894632702594735197008377044823166443376723495302923740232120206775283647914795463329080169427254328681234888609643776677246467724198902089080841544761193006395004159758207742412751441152395401640551097909403844268059555743406128522412897561209843624979343998291448462499960190003365732243371824291319952049501195248184884010483565158369718209344653960460693262604010824279933631692555430842724441994323642911421512961882129359049246957279056745271158577078286272809276287165416966226979929683092776781966293137839372242771280766364342627063244201928935905352922512629262506485194245236904441276349814413879029460100835597251026031612310621564563823794863007822574285339859605817219546765943609152168101355922915824452306177194191994837547041303392693297562454386728610869897819902096439808984519581130098353816554772919124870433077082211454209066034981916424581296288336764279813894237614691968306805253801904479153047470881006204513616383189518592208699044106612950810995033325075128244099496824399831695969067604147383897833933744070439488714164014820107342963129335055136415104233612545783204130649937966868448268351131229286443797345656367258178416580656796108433847470239599895868089111458932531422619371263432017121858447163236135831123521160363631190482714535991121087974182327104596950367904943768703353246687972735140827916454241806094299602699839744633364235005007490823958484527582224284226730424434092029738217286522111041479052545397499828743198535843795990813446892279465139607587132651796412612181693773729141335656849217806998757025865121730036048731869939322760371282122323942766793190487200513277797170696613882228498651850206650850984743504663261513893355700675671671457228019951563631988756548396022480977574902531271339019317599721151387218614096486933662032480838378968930112518509547096545646226853482312633062801638513517356719931748849215753527513670411666873871782305658098546116694106469099315059615339435410319675880190969419521376212595161516245631270579931682286378768645443005054005915830057072699596217954074208641450816474647652001840973624115355829345417427395810014333686488854132109716826700197168596859616372438374999136490918358080579518340943720105179442027273387864363492402048855845273181592651924016824318932892418834633337435942495086321095397235491806001031160103498892136019137879757770136664522563427313094005346109979797452505457168832101229164093125466320889834264441497240934375932714275597200252749205549686039637384755687471756241817156867887262938579286303078108231235000218636256221161885110446211569403234330667585281423635600692143021328160805167629873696751685365586769745563557959927062183154248800688174755694644675329831490866323935596296504705498549709713241957911400090287318159638999052051929357522374954306141163761594017290014361700119350752327756728334595362168438897811492981477947161026007329015420733905237978841319710107569957203250141517059253431652097942590960753478246604684202047799249986474356588917055556744785281598481004632362911405676244633752273909933944490286757339923509167213527485253183563962366767297888473686690336349294450236032546521908241845109670269157558490717878011674815390770273030641332728167855316090204805334791970626786476578630943951003677362316013478444972814256966147320671893818755582936101449207023256760332892028891842374347503353828357563413133775695654749573528949686197326661749614624393431394633415836495490325034505990236939909280045257378343555023028440329212411582933521129620559411493915692952876691872770605048985749839501516815933912106801561117756580371531749242403662179375487289789119491206740481938174661408748626631061228629772694043843953098246964640790083960603742729763259384786249380977669992889312723372231886118852147709781644926672617484194127271236952748542460109307911461687363753644165370382594763106354474398549486478167822452130193087285454193084504099465299189711905851435626836111808659702333671152941671764840634695246555833034165394125707216722801683287442158738639292835106579627399628405083761636957795826274329586716300173139207308453465724598972511117829374048981060028761097605708002808682317173752425156482599896784765834946808693642959853605008595578378490168280632873122826840164999538290913277462893301640323850624876920632952439761923929875665226489705253450550293421442528283909407248189922260625847429628856590132740508797081594292632911219372789495214949760527141726358268009070142047829060717207943503651315877189520379781990197773136205270222217314043028893046911971205732647018380208090709646316378146144505419916307204419038251471334569121627248669822451462304873091400629728015598962911106641624223254852188788106944571745662456572520612080706956046656744336757696740130448789854876714881391711444799463242395435270970639903275305035975475249912131086093664363850535454836658054167535407528002728484379954253423065011619313968588451934091067379601363419180220700337508701717254873857639098094361537794072513481753955825343122126962518512852036861401293674111013569689296479652003333985906174842018473526848845858698161286205110765065082571175261803082516029594124091078168739710430181894276350430165736543826360481954877762170290482881783076786753252621728256514237837681610679370952314470339496795494320468884740955962345531406061772610047602015716931660167243695704087035776973275631558350681942660051865518167576748025329634720849701426432792113113011222608054766025124437156690212549225605650772811538227451417138101404643841103255276377474707240492184214897598648185317854458981009433551093571640675687678451788276601430979492075569003422516361954011080713509369019847488213476926472356527135789168536182771576610228604173922795831986768710232471412986489376502196188131880039655382556033796313338770053216352440606544080594821878455774572277665102084796501748624197105796752200075787194084112527241604918047069957004831890551782259233968528852503716729583146774925297351319337350074093824145422887659989259969207911442469289931186403436141725019471461275264979074507268856115031920851305097978056852940119273467087097530620506919978620639360183152011309346510428556480993100931392904623924843712679310161515238979735983399615920282716965737886856937446525932085167460205547639686135958532427408301212357728953587002464733467604023719321246733044413640549075768186905700269427941418287431944982556289066906332469570083907522873895914023843350099771014743034790883279294295308284503274128860288800816220444617915641308908692806150909475403378823042364953595052049870516868473395732394811368772647660938193812067860247000298866771320524118972902939714060473814030402854433717767634843758819386162759544840560257119377362607870090467784097382762549610920336739063598293750848881200007365472915566524859285619947820122876643799881361535749227061309881004720499697828725921504559078724969173851358776659973056513691069471365889395563708456860246548200265690616912730962879973079980090576237418047061191495353652570458662384040002635187768291022325524223197179012010242885545437559017470928943994500843956470645041451916592027040650837162067197821026128766612820556057972635343694942106958980808146632687503580206358143008113825090093511384126755961435930141394609521360604780350782496428721939410971859507827269049968308189941762720177524219669752025580580770611125766748924204807866414268127023964802159254389672865443543751599807213627392203472807310850942133938746594757587712135085914075357851108720545528489463835973454224014009714620092061880383562268134572005606272278582562605809811770000001642391888101417862033069804246657712772526949826496985734814004109747691710606869538763092085436071596987561521526635826322808624623026124717130552318340713845789701969021638222401468749920711890974082787092970499760622414026603318502007019298652991025584408117115923758239513720523702608723200188612173002166966300756170686786843332425388638775966514785807060250192122298835790583096543704646106524335993351333091274794856360381847077984745405590813774988455466855095148157359310139537092399082258409949159282546752642168210440055088759996766707961975821403163634463729511886006691397678284210411706421626186251521586627316111709225519054957572071042214695297749126287016996940863135882363117390263355188017570701952619652549874785802792910534977853081174168922321925659598696620013675807926408989568520443389545690550339073642289433767736454252778130268162499654153504850881316296356667100376506931594630848462237775639331656579260221370518496260612068137540604774213340185872125321583678320739293410831571174651132178880275289743095244822846898130840072438800963994529090541971741166490786742937746060129601177350012840512932264625981640521186069537684566201705391244911496116490769684163449712269903687654113145537346470032927928176336001815598203157523544209275373455838943591727129752516693576001095619908394841440267888039201414356048463709985512181201869707214700064386137355614191997188751100757046104906459821148313303516547778986316673042795053539674914093632968757447292384769985706302061910263815239643649117756038672248886912958326019319158478061477543091578852090659614498393297276804828456735588580706714314284606322948086287588521096134740734511428818867524700560344512975162301588445593943510541728810808541611147583359492793957214615060504662521403700707974949594793106593071463903715418062260684436875457391609572324476934529531237834328120050770196973742224862428202717704075799613585413761620862339781640203437671583016209822054881327363721677454579428483663517023233622444402660839536569913630008247112428709200061919584395668288519863750669508470705416461151589869104072842313517787196702858348512005097252746372201458309829567686085624573068485987198122664180098230539320426773326533275920434943633622245315865300415528184659698789635061975682081338532099667535800360796511276086175836629933044436133558112354009732105256037031950973659733087033979237676540930602883596813508954938865025205865485482760342014982821272206869980320898569418541477780225038547090235340000411703231549163889614538886261071141121872985216826129730490703506718795822151715032878774855821594037110803583813641169142398479249760184208597929196231297247992105156697132184282976309833536716147079998552847465244776363941366556163553496054258519625206539837084356189082898567724964770733824306836722749945386322800288186064158200495120520187794631244852023837726776179321583237211013717823197754515453468193191405419668713337845527974893888443598505276519060969062577462605861857920981117186996094473940168878853167734932311616969487222883828454473480185303268459850587291555501705082402571197148991199619538732031064752126405316354392773422175732504098120218103368723827204568281627620885662472719900578972449685747529695365491770515575580641257918231736378492791264870037000732987022839271508836221837014464533174994476684483177705711581706501026297458883310951968162845965134762851217781796604284555111820079466298770958693467798221092841467583992494119262352580370812819913474090899976312888267473041813983036707152262890207600413382805893076766029603067742382329219818015468463837828241715372063742466245009611124847087774317875161872588413253871951923749257946899335230786603000223158165997126610728832114168933320022624378035736282177654701524822852857872123517101003060711564246978448610016526487351448915246896087682400693559364702896545328630949962159781964681593787639822508496754699046643303843073076595100012248100342561667199919676137221663025404068148963383775521829788944006407302575962967156004703372576021515915281291012785568088409266144021214014282302101816495787660407728486116909683629837781942732331786367127694666267534312394280285621901838787450049262562933887106184143637579940830852815164842696486032667350525779006410379742406907767704733511808293077120414796347834853746889862202022942860282867177317134652854648627885031311793955513287166314607367100441705026535653811356216405436192013085703805753151470411865737278569728432896086458336610037157077609000461167089547965397490428994544782816256624796265169379957624480258768652157901326230441887539750164223164968647450533739360777545059715755610495198929750756034104063958735785736177310514879475532279650192044204291240014794850649616613302946689520001504265598380986521113518249229923724015204497369357347053385245572717850577415582079087912585047937080565163831353581617133186154715943047408302803380054828111807666717744127694125398477230524290806986971222479339364885440601767748174912255886963440196637525716246293953988603893981115577789036992343308147502417645979850825907289183947893868515217381167115724378189982885682901639535721366701428309880618578894668303348460569321365970592392216188203693816056351192473164570292337004203686818719554857698340436434922136522794168627289642600522897472595070338844771349844914969811724977895817737949849346808493048496246632293499869289910914359824833871457461909424910124180666997435417003726376465738145438223536053937614450300805718948662660608613805826544462846732924611726439091064397602716106384902117004863347286112112923108485842661082701079693653289475714824389794497093496950380623386731841689992679759859343066432467379382864085340968873274605506047150243961728557905934594654824649425542519328291392901846361094654311700779775409190381345838998810746870941236321527512600277236361551868373893048047323006164173823074059449764056791897262399344759193423032352401433220815281505018762527230653655279628786083077032530086686615283052930498530511824978043124303787224258032083992718927681047254123929292007147841102262425315383700163603814594443826415121273461203589808681404798185321021872036138691738046974113170039010130327572955800709459979190446180550440697446256048759465322958533607387039176117232458740732648584305646126014767930956160314307056178174490065411336468958721972993708373621544135149289895521018476487749785198400596896060798404595134670348920151166460648874448648345619785091739962521735017507599605291758433660434614113250352560071831370912119492641228211758886684565249764310462484908028673882350360661547452082202838047949571546376023918621007905646112629302338564302942424078660518000317473114926805457271556613548632287164812280109056813814913321754883581652277046827876756675237039322690998091891615554405837924087973381857477404347868959151165658346112027499159440081624309900035812436616983644063639654138500121933045287557473883350941200664310008346261749725099500615995800123789209886778712155468725391378089208346204725920392929814139843681590682731144103677167643288480813776389034783137198814607243384460768565340306666149985333455016708433590152073363486838806753012845249620356059104448735808410632819314466201248191312223755318309454363449003785780527788542882901164052769715824713808467910768038467119001896897790006107280051485104507134269295892336542573212519411131656878310254228130844275113070091966649932332864038590813357133765926746557033660588568204902631272942490392077212767330789854283469295517614541910891963837217876425596075198136430696280746597458092956627232650719741778557892763606553740996642585735174425079586081108900626394938043170296020210464894340709446558446662427992061158888411601895942169110651087725343580605835642942520741433607493659373020207538262342593574706839702423534953239506239621356221778360678176176710173700216675680779707078694322779778696196618938125265037727672248177132464607135626210997198648478797470517317471570294204112477119645020573081678525455147998982919422889267395424514489742023526962573735884212322312831563943802462097225593796230403106506339186459969576450466590220612836006510881853883118923379340819203711713839143219410657913982351644275721906823160523479845219595512869543343478084710596620829404776821946540743823503524462271819313795920616793815479483718801501065814236583938384022726467593559507254917075894911154256915161952646905557885748990237655596617446411656025995177681423267124766878992806971040419855599488137235853269118087428280372183372242738979848643098291462123491695911246560962990371139870000497817526143838591671856222457052741713798894597902802510023524268013635513587435422885918840650084678365177211516776657207847115134401556847842442882737277732329514735926796007914163288059626755906213638166204179166876271498405797775537481788959338915501510968725358326347309234765724214133087469710476769419090042039234702866064874527387609656985002648871498769032507024704201116191175341214366768673214284531507527443312164912724763592985142833359353572303144849794830939996796128072797023384588714311789180018973518280450106163002643277934500311884779075758250405626519333135943015547998369112955979042855678146764092279727235502265288932233307455514018989715547579273038436978912460565695962383193415152606686080818074542771798505428939943334277996019210315272462176669391961073707304652270031610321446165380363773200179888173044975074981895785556487252762377908549175822669775344830519202785027188991046353680835554429476496275060307074969929469538818017902872504295190427825861948721706948967417299649595158857619623228040387641233618478519806270542355477438526910383903852927045189134454014779935952063100676150890044804315437479293855655689116843224978736690538826984602543879329726281145508868515155838616620120303435430217091134324609288858056896772845774559785759937428036195021132381746307174864739481773204958072727288836744784937913632701295856037272132349718147597827116396311122491426838562505239214771130833569083351229967918594637293349295125710915225817047349802729168064674281119853929072688617910850527409638642555828479184104091837980480458172761608416275772169345555557879222061425161677960656543790866372107418186009990138178990967761813933309184839464479661981942484134196418852930733459213934062416480938560498497992314188872550128815038330196612099154623615417211196567132384443664741758341625019270980293185359706393505057477886650404339437401439742180516239932696526447276673575787781875525586517916308094118495651347193264759129517364297457630780959670661366080551985862279898718692051403891778256887177884133324596297673663228839937860252172489951264414620906185372993648373816100541111932939627570440605676516634639422171178562361469369189642083722859189418365359557209336561459174344142592614402674265628040537119648744801064334955784361044998580314503875434247624198195649444741588635461530547545664774393092026285898039279428248968348453129262283544651065258374724839831233129641975680697684369226554782654761938595377823977378238006853221401695985817337795267217813904177802039608535285562273399775024702748404932701261477085260637646972043494901919800717222653863204430670535791531242259611145045695448023903776949338651520660171102339006453264089819054260283649481769635947597608438077711845929110106623018985334475374472152234471064913558598996932863633509510797371409168557982921326581676420654954302860947994566985057266605038241420837173536951094717900916503368876424372029775370112279866809579911404234895108930610518531327461653020063053724591949817997573366713087328337785128288486251711324811837155396958661616899373283045338858685471367083639407844153915518992072389472098018104074132912831204331696330456224786194282111443182103083952731980920773216696308836952579240507710474828581605888928298299866396109264239824772065172902476935869239996394968587813395743572516490039778161184082344167338905342554483790388671674849303898728690937053411257216648152803613162927585278198196649066347536867274278431591527068227586689360213029416701165636126731531587381249331489092686103094713959081883618626396717697899935347209933768068726736891884547136224776253667284059989603230901902263209602260987315312794856611465202025171972049318900482020982217444854728478382746672611495001586691675159408348290238305524741856883894159700149748874298171300385162463424951774327829055050586885852582066455791115486624401973709666916198414063587037506289561544722832309004793356958369877967334886623038123608647848892642920592715166621481762219053356660562750118041682293134574591791672043666160940305380868624506508170313504786232208752010872930309250935820722518051283301900601038412674647673690726836411448670575131352359993065247255271753718989136215808253849972525006106299617455467311244156968637613201706207362236596665954682469435619546990327057741240081070257542496068739988634950210530571447086937609054596687931131187833819982687975545317170578366964966537643765544048758319037249420071332044384885003918452200080993866959283663063816127118441756118877798125948543586848667386229318184496543155616252869258950236234201316761595890435801049055670036838635745259665628197102929557232855358539668770560527320657168820498339868330594425430801233838948369913264322501296170822589072864919063715166671830657786711651043045149965072131946790691923306835490048391907488418290167680544707420476406285877117374534610492387034693006614943434154127782496204987972222722554266653348124688152630964917194973972284855910411461003291229954608941506926091792894313707118012966815182649183508946891143290173201992379208558965645578731013055465840236157192766234009561689680974572532762295929495939601485512718256217050776223682329960868474043894323692603118057490222104867369194105249580634396188500523590103914351367924728215114733424737002736128552722606912262923614176034754949750623236657360787554930800426041718504743720301790157905092270423424621876747004252117050126857077298043081689023638184713509879939672873547217553474993660558658442155953445336544707582394355985307702589433940476646319249091279268005633054793720139522504002542946477481304470571791344303584628464692696130941039321201049391285468454136759802621165644155559452773633439734199019333181431847604303744173518468996235611630551902397599701547749780185504441364395871898297116411854274087414288367058457010313055950170557659300458283981271827006918397900496542698012433920244251231837673151296501707406008280702294618521375364518648313094224494693706192008766544171882246773454354568562045398502626386445500313055706615151856915840054050087858066893751946172021265057305142442906633935674176090967376348189330063110749808330038524255313296507739990800610560125555489920778805858212869973438544208523772078065190444408793483332941103161197937239268812702558095030882004351641807113288521882531428487263164423886479621821977679143048450664181329905820012184351925500150780427780514925522129645696071808385305738216878942204202970507600661286533836541346251294770818005373974854177697347933985048350683927224998512086591393670257694666915745181641493417864650233919748897801933007311855624056631143651752690475818028767587937155322191828971972356986365896674738144029830188892948601686365875118439902119018008836718980833417855604184841009590359218697077518362870062699436974975463636319158317501194499781402518092703195514137051458493065452874624069780659216738824316172171381565024680655159678114458622166927030584346760807518242919452581202406031029348884123332423663546745105839145189494411651884962933439412050598981736181833527870220379370691522153116390625574933450602648868317487133222976686101458908137977111022819448014281706156393408725757376948657320305415853363877406025245972582661669402293812122091406406421333140286640401259778941288027650332433922813768012255711971686422804198942002338915862988472592589711182554887109466579886130660481343852218226550930895119244996443903083042700598026438290246747333766855155368285769937099845728199572714675019022014909231474260181547704233548625873817871413601468953769955863070193178686422178612368841274458817484962016349157199390157891472800954328694270068988914409588609402932695374615751069158387862543748810348443357047509565580771881879709109359961511661977964576085522065757716031658778678384287874474075818261926404557112528197652762241526838124359925392654911666532433688997105752678173892899390832583594005195607249411092248359082189722298237080278228877593478910557053555705545464494102379061603255130507871750191698845158766707280254116387763079978644828209160926801087024794907932939935479298056908052492422689991385791615367691377266342267165283101488187786631238561014048121464616318402207574999551951463370640912571000131843669827257030601645836490753967120110655665519185944128872906677130484533864408951465909545496416978071977038883965550569616693843493850633897170547961785005142816342725814526009121008600846446849580990251184080795597151887533320841451416312988547206231546328868489955705044315040940150936362118275869777992717865434341544541913928949973302082564617054144191553680218256967051847439856901575937596289445008399936345183778354845141877012741906684334458977054805226588659027360129385597556895267613766055008748457663125437208795656989221667589004594021610526045775435864288241432851790570466705213599571124355717176262286557002558901985258867569186129324864480944284816015339960693379784505692578412595840759258206746244506718405114382821508390106638614835050448310335952158111316638447793456253720445819439530758843357544221153627195285910949259196980315945164104344339688356923473263533756291169920280200201040077701729484302708962028068634212827989037190664986147248551255841191701309471532876579375581203749698761369234756679961086552916729646351270100168043358099669082316359130796248408347907143518786381929150689651959544720823983031787584868299264717328230848359040913839156660561824424889223109839985143130165627605758691768392237334083097039065871181363607027267296834650334199721923897902284757310974610058302735177723994245649043084012217391099800888179839951021457423093674885014785340165952119661945123216377680423549380589264389447376141014421031135515990253290489265345787304069067588504545170510765908788216273323339445170900081096878265051122369073431625007857994958909751944434557148463434463907288059617845040443529719720914378675860091608708792724206239341341046965366895399544002110249540006602031743354792352403789705302078586415992983627554765303471510637333533205607923840565146799529000692063049451132150164003494145782376115985789883817013415981498248602163834288744079420420788376923517200027134076155439281101389871287242865688016675467359539723683315068191978912615810460556983108234359321913077477576543828537005390425600229980779878416254484967398550669839137269574118763521979557902895281806815531165743129761541807904487703413951391293303919364780560462582623086591557097441370527467237585704786913301564200667981457779351291273824186943574737849084523345953083103089255802629696112594879947288941327419939902965506281580674328776492221436169599460586906139841566702772437451631126779671284194416385990446166748263934545172847983132687519630888844265567600904423991630406829219146987532639351444877009886886725801755753745680578050859539483374079584875061694045359168182077616377016981204869917901597038235307657204403509121605493415335923377491445043238991978593543959070373388854102461393132561971529546729070993270165077904420431728461649962715675294154839530734794173030267399582006142283201315625917520482367264626072552557649966461141578713072075664926065089615307150245759503662887826824756270799495321856277756423021947041844249200999504689778495820111652666077243897263966526054328964489952201226927972645489769042155822988250033364071478009041545655578392462534689714115596090764088065687325993776652870173703691095505567117743952200216797254969179809279659044085251952841110642560237645481035039402799987461728725069515150095536498578400244287757578180713647241526231370279706199955441197369526304695605059294921515856889270812502894658134149045046469596981242944255102714382311154557781363523605753151570069232390791289084718219864241702655855311230762762156552026363034918186240959243267290906524562894848032508009891146953922153098137731894104967768025490161447887695317556290932723007925195393474392499624417859003632426287658320675149984931728095510211955820477897753068529525016411503804164974679330743385932876898009889222186945638400396391114231360241079618938051416654000122189287670431686097595037229982753519329163486902031597709494263315396584402291807317308803367962509922118240126427345694111424938793995816985318149000923874767726205840357818139342086542924087701353294569455951403532799405967655944508067198010583223087548858293574315001116599672069701440366654667375708381869900039207197729603174064728908977676343216206167845358839620476904584273899979247642636659460219451343613776306819910448953181446864846681972289836992925290799021120712784644079708226325399056196870600801862557366141783456119590695100007159579759080936447265068558404737474077308811845643153063570399627793932179951198690890944185427531934671004148189349971103626606506892397720711652513358954990849483866564206909419171051280274182653230364678317548408668813539319246117938933028821534906151303399813098175702056961383235681209895437789077308706555688885039935416598726114134455087592117059368530122857978999856073242440993425872750281754149358817750653136212724749021033353525335570788845984527526086160074470653651532763781334731970049160775105898127690552278872957425932447132437670090451843837775330697641408607844031681694985916142696014554818046311736128938543919547054414915771875697982906266041520622564794839812916118309263388531759087988783091236932785786845150926783898936537584156914851969093304592231451398553649531314887378297120595047446407984552726782417661477544932907696659512777141528074272345045287961775208622311595639094836895986213241005810858387681438904120949783210272663883903978417250323625430741622538225045316550299938661839163832778544737720920131323361797675329602149097047937702967543445585701108259387864114624922691810496361197643572775624804388793844453567146017643606660626492239161633366422504613369555964979386307263064979111149845349394167850175836361158070457140240121362628162787121012079067034678756431023989215126018679975668026560354911191126093892965517315893275260105639296437226640372536364082861928681810200434682212594109741528937409712874260664849739536547795832984790477544042133111559562935228714833187347346768157125315064739178375227629898997045427252131663900739243909463178211232534101423094049830334247627527061361816091847136967841334949216200870229397193429130664804774542220251205359336177566629707896466288336286144467893936808045961615700505210069549804768919133249967697282899137462748160296910958266589253246992912051018982788032288258436114796869675599861034660024243107310311107186590805849244194303858441518978979671221402507766213232507689447968754683739503187161460187508123321358783761124592093832636398430127766359271810394220170457021898652241934545594100023071899797972525780758540277098701388440204994430954315910208916813857494739902394425025023043248698562856779668385377790276819528406144271687430250169473623260481647494866071577390324306895614558904698419723025508541622367309622600395041499346787954617696825503579200074763240953549876720648468803934019754390464338098977442068708470572533550891676955122611683820744213186550424133740508620634066960516409284889210153005734596002249392329712388145140968047694691016505424564066938617535857628030121358252984218453721233229948873068354890731044043080281574460568123112333426400427377788011036314916490756378500241583727568527686385245681557912742834389764999748627844849217712270363981089720597989294227106360822666932883355973810664791970036344682240192419155973330244142185890095074431646990988013864227872042997064751937647489585540958887690351690008837732200178809516382429421720489181659507041384971040207725777656477614868074515289604347588001379540209417280957206991251027957087830586706976463575502087094835637735499459299797551327573933669426433566250998467188859143722801900274095217982169202447137827131530586124729175921348136652903642740759630490639893567352406932186997852271453261823303287520095621766269206826942114657569201496972984924204017114967868266898742362539398315492202379146703224750873534015786470388147736984769884895774679594085884499278907405829242601511896588028508999441565084082061511043218822708443776812720293935200645766699317975026600568083576949400837810711028611725393166456698999677198249536393912751896074553167792185199068036666336960910046023698953658128395387650911094585420284497228721751053745784527667155058453779826915444604920392689702756725223126491457238876981555465678575093621245574169314786948161594764797572053592834873922232126464759078969020876032100633148453843161897736344712891467434809353367777904076666338854397511784658031303148596822198296445175319138232514738707945112559274656990837130054853796740468978778318013190910938537448391635975223934052017745480415192262758860069495910227927271843455948898605002585815289803442795286018280922873602454768881662406173258652125772947276870674942369782552983745688397267765113476829757117522201034614269865804751333440000992251355943869713662579532843995503367641747935585576109542382711472859745980268011869932141362870784138921710451707007401654381738994776030188587792913915212873078210840181628255118691610918819997090250714114542707922341367357829066335803962728257263192406895281755731933643347448607321043099425006684993536367718539551973006776267313469895808292899775284332000535861969149191726898550591092230139840775886240985105577252073913811605424685064782941851518279046669196121758750980683983515088968184583628664366854055600989908892761000081461144013581250721933885440688720896075103564327982921224270597082434015551332382997162716615383687837735750826972538346479147764942120388950466603240979698362223300867002300712763506549372813657291966996161914640002608809968127072215848514855751420508844896544465882633012555700831966780756961520097061330912719845741073648012305777415736034380279196268945982599958329467654394466408302173446387061350658638727054856681769078817133161534891742162335128439093526229308104145025501247323420055384285304088373251380185958224261711359087078167344592656891503051120790953463436465762812940832095960257630526385468792493129002963058727428943256937271517208521724907449366130938864350810440171290211982929185092480947676740691267723500437263855922841627896897259603916545632760236665216592863448011797247759453397814572254929720526619995534674438951544556024083134168393021038140206320181704223032153453659354151867825613821538706736569451591726462056004478026406246583187199294844654486768987982021182305532447808002460693488608107179431796245817280293220588884986358376594916636226691937777968511008182649331586133428806953703053990070278164321214442896560646081961838172880800054640926127071150885661689127100246228595849931715707067979886232273844144406284572113648020803863970070771761083205178959678004594418240766001783616647737080487966659672134167432666445102957146265117387256808106001470883107071692697030669901327767409818469923935251147695088042326502890941495735367641008031040888488408869749933617845136517698040338754768128023139039260696642890049858282651572105395973142242337280078368819257964627675337385647015400954463398251138327531788483375945699788977949043579036768885591692585004449897701074929138439932012412876256488154816651390336939228890041890024375733510488644774908987791206682171604489698969971672153670598104937047241103144613069565908016702345299044000780972729621210726500631352072298640452430330001295713692775105482882313188809476794687793329260783862268028651518684303972510841870022721340785148707442368688078283882863221700954290321392786192111714668675914836052115400449156898771199883762687886532330150744806883876652424031244233576397156626726667455175324600827283622472591276822757140137832767228539490292983629573670845716839981557534201967772813701188720708153746374623189996340690158898237607246872133049865985685775956502776077781086022266888464412871121244129821395093521736582642724426006669761960971969518909713414500374918972652811248555695255254473087705484532880541105293494265277765126030030380314097694616507536013021246483171477296394753267099765646736337883213249687088206797351308853585396221353205395665441957476119089442802865640774331204062555144075670759852424683101895499470910146176420947666511379062075958415418369243830028726294294674815577991490763194402449372273024158474641740313405204377472890355593776706436418796766838904434162341380365763061969556476623997136017558595688233629965043802019796145164411954254268580398676356760957196121288640988492292147224431490888603403998523151864443582452177520871878312019519577403494671286492421729070273353708296341678788116639220551573924713465292495575883911050280660291103865047539715036166952507091182980128092779480870914325442062932696583375063048965548930681299781219381317293346558722485879748114263224272355069688362844673782187175702981983044747780190231522910110508512217860351640315861454951179968310515875893178230977925227363523692944296410189260289840525971173249749535988906684934324750915782525239007952068716816309689912736727455211429757734288495331467952466255977678073098197527134641686703471800041331292321901555526118602093507454631495016838934114239399760689994528459965822065256657764915768366648028491228197259711386568260307391550544374327298053418526879500695289067296329017182240745880015862005015031255459589061579916760275820410168928303144382423411422556387072620129444489510903663932915771034813113041629379114299525768209374282523960947204822555070731208877939442981562399040727167059885607619842614959675168428251702104666001830223137565923964512414940195673307072169193386567351693971108173711141019723106865614549345546295047858298774252716807179999069069854273076660350892437003737226262382500397145633864120094916371780242636429385067336370199827289039620552685064171734634092224473154667973823367446226529379450867827819218981357210160423818686422697903768076920857985112063958729404470291445490119201267202822788109318392675467531929288711826156279232458936640553994940227407390563055910974852642628918999426943585558580230126974107463199760111478299851179122842714199498844807816369467594635380231740459213931608372579469673160155168049811186904936766285000504883634464963226008412938077373455735430048682986205096685115165588798779823987882592947940832376394323871480485518550922041719938822954540665773903203715695530813633269660778111291015084900978831897946576272364516887416730888099650540825830948758255595996116082142961897959226919522600666963546285832822613787057114666718247803177632445377852756970765295788915668189346141084856124790402195932419396162378594892539453039773091119583719506314934044615076652117672367070108779966605134986172991161642489254381426017689259266841202989783901557490483993423869877682930171498526434017243636313057564516237673030729572284343239604030329724492338908088319994389063551171060894841336123142703644109687373377804395207945474220680907743070079547598946387447830940731589565009669105378072332334349541195379999958876641012970110884419781332964305893363034479063687868161931148927789688986043039762791670631901249127860206222774469281538891030055070346536269987754968129874135564326782118813008900834966513893486958464081799460237055591380580572149992085556830886086775199216389240905580815325862178945797106789541550847779133071684339410757094592271623225344250347916916560808972928847954732623744814632620142886385067590343547211293671552259298328023350992852901887599025168708308700984035230433225159292309223444760281264375269936342899336629259223298054844561060064564645368769406581557416497764888271512905726397786673260037441105867364356729497421476427896231331876355524009677660033417007104663587350487707302609426637719446144935607093193632780997049044364284995058554723687098568585522983129988314242300176432551974444435902910641535127559124878117283836065867087507675463352547795736246006311198478681556807982022575198575849644493808434783971304763115697017026665138092042083704596121500640494768589176483881658177758523206357358337149205996324006483846687112625010463206062237273317200084683303322194138261179643400142298390500657708896305360326957358195725126771838999101873947277518453885562211644967344795556073510118171324693001075972345136404109518177814714957049417890694982870784012644010680343791498079454435916928507857980481641086420429799182507563046527634070534402419535001394869046727644209037263747618697945576540667464308541330986623128315377798769074571682059812510624660451819784544557115173644207015147533649257575925279652895216807473852298678644737880317418934526133980094454847972047148025650404679513592460581611127825611152128991406054890719765461938449889798462298588382038321349726297089466225503611555871434153619708994363585281375839809895409012960127673954812622454346803561065755364409347456902683640121982442658975370002205471547591371150944026308527021737793176388850233829369410091556302265120241165848955904463562848731672082633198321933647448450741534315265648377059731610435395301559721222726484508506167167243300550373352241900846551918462311090518986861537030109648571006358152843220470249295249062466019337788017630145833486819009324514355851800079550901907824830895549791364741791214442494516021741959072001413617878110650952378147209781002131338236164783146294385270242741118246943291210811144646201359308066365781593865532513593252070067376560559258769673039521590792724252306001561194475398970530272751737587640789620212249155259935536998185261127365328984221403640482364735075806817147168553064359184520179000208877242561605877285708462685260420395019011336021440186406923922769393405023600551737936162949498773233962340106962847085864960547928619974380306074918709129097111897230087879160441416570781791912170246194445646383596457695674165026288590075972918590051458513574909536430004985951460830045081009276846215018441443095234570717245553180891173497268745913729526445285238671903583351121760823376873866794528965791681402050567585816335946783009745265050460422036274267313482701584440705272655759326322098744569513338678218560810756139548145491354426595366023493576107757019521763051526125419329943173000985929636976384949051327082076072439640671139999626232206488317930473921401078334278536471419325792964042509826235793279102825228078773875617680537753698325078871754491876857673064764905693740524361745038311518710659567801957672058698671151039290493042551188626924898788969354630074664424710499392472172600458154236587414029619621815256474358023872964302269498738033397441419665175064894205258289973082579576843514120506957574412890189033639962638254874811280646873819480942467560786888669545866426036803592219984910066748560800156576303574136559609563146990591923599752948843841566778442932278137490061887446490076332681006858648862733335568403599598809341678066451877690407370674756038792232629959386050608541889971810919733153630252669234542029079557514580663754684284424869712348622012547060271934226104532646701221253556249783508448891274118996821507006060770048135143587934387810649554157621663868123360689992335606975624841192771802932694180364940618770806669664990874127562752486008692081269324739915213123566356316619184089794521324080252083798726291256955950508145721053386189875661190187516159715904420180194895668853445960588351146534853045609360792094097631308397113766731169701378097110676316993997183041916201000425999821495902696505281088211152320461756182424193382988015855447764061206569372441533788668147724942073092155322142875831688017168959813545723211318470820385649604041983938703020784205569822150984931946156743470530696220188672789942600313604263119414902712058002423725439042741901002689269994821128245124014677352894282479534733194626949610680580913280568391841155521480901955126875748452860220086682876137077216607498571503268499550068331718737700096245058992697822406866638681464890454300889667939452940492073158813241890573361703449619658900146773281699246086431702125918564238391551363263328598222405161517081260739298611543503223465808808298994561570488187521801393630965162607481601630869718853534836790965539942602222283103855216717751943329395071717515095605153716478910025897514745691155917778593348435335761331433224318995926466055328214191433679991011091846574135475327241250077399444275205545923918766550298545668112494095520606817151925361248641079166030162748645472687127749733362030474698515289924403262679463539934315164050661606784416146063244714516414797520547518027900786191046533943835397174218998984923013563153434306973979697714925391724415899110618341036653532294738835814922814710737214126792185171739701600134989431395690498963963712585545373561565049618295275741223284695031013512235299661352175628748754523461691512230750996644448081392604772996174748028054651484457650030119715669087367015422058632015600782201480146095243993455457014788689981340163430368480437233423458628695803187215967652653087860045000186063501457126383062173851536336874937546767819210360982648009934517838059163668379133064334942912844214616976030574454439970472115863907599731554721743061063044391724628225508003896231044990508789762988332922477555201353598606304778250864489956622843875009944520085749011624192329305006020165267260884673302951884046436400047059726175906171323104736728930436852680714533840453974687850174011851620323497460690839666674028670949921407955315357828777192096614682707265900753235502790651270221362729622896543446897630764528974806248673205528153885726630635245484829147068326376762302219407968600027703382135832638591452943710780910072311360021010724776806350801395563081914926656981760396170143400809397807569432810046930233269865689570485832479318055754445697449054751155569262915876525614903256020285452270214661484900775343003202729300859478056519283735327770184860691048463819038485743441995019525623796995967237267084893361105014729670348076725833189291273259016395226824949295037296335540156136613019654809865309081651445347176666316201419135973127363626436784398920720986062825787599442476078007402028002448538368732359655353307674696776489564305553078830500530108663490158245617502341095892158302228970918144091346571408786473022208935453053570259662772817859988624039233163756737603808289223429770932066888099718880024776535846736608713286301334438154275541046377639121341468820743390039742978159134808951719634908008965774786205663164853325294903477306007270459626239826207238604651572728712197189996555951384319978646649014883413981885930995899410409058345025055550925862125972158598006078423465375274304709156686167731192259845879752516877816162119295650717450134026468397957023869646614307690239807839371647654838317391493862360965842143922040360008753095780256184581333232281449521763354550414960937159952231237540271775460121114694717880829070185991154238596997640382048933859456249603954577902479960329290016232622071704216115438616464947471324003735168361372251383828592031789465496595819734091913068612050073549400225547380137518191775568748582866809976019726993578736464839362566879231249120537670716669143427695560846405919497338248005637101494626977683435973987682759568640988197650976952254780467673520272147529994830026849543534465255732618907233911357957342466924720085444167574748253981843109024703714623325497474676528350789832845017401568481047282683950270320155111099785856149671883844492365812186516317161036630578866323469283735572420842760197093585308902357197415361698177886819377872981679504530548162407513245852681289611324620801424556242529530137587925645453632537272773813854388259432674264293903316983446600198422292961590898476909671651623305347098437982338805433572630628060675890063912549136272437720910334028727906041473089893391786301364196664909425482939424524821233573134932525223775466592488332658199832675533095704457964163090662792102940058432292995928126706096162362970294903861196171621645011123075590723583168477680493297572249137901633794799603724791251148026133756474187157729680847471759240212916969078710028229976004659807929644445436240491104761601636913874898458679830258090350328408679817952018595207337737562068585470851002648379643567798124464396788959190412699038499937394817814845938584283874720954372977167330782991588407647740278688387010470104230795002818984266840992708458674143872700397554064938892374556762296753632145596082476130037560834083631802994717001204282713454313182614547256438140092368776094925032791486589001446866753713866243005350718989895945130281415464293932581635187376864347564287281122121384441393704568582380088810234462279597301938253152688123162480682064093264031041347886686155237203248882971938702102518067293570859859072874436453011169365979142868444791011830377921577885023779356707533340356094245941544009023930714348961766820515337937403999040715179498986142577805773158723140617985244934488530914403752826550422033160277908322439059564004595863658518314879674553539335943393495130098954897328737461395487443695780017367748652839724037718254109442168703212659965157832142336567946736462889080082261906691684555326275962089036354211261300282751131938051328858353091951387757963662315379359832733162494228466124942240275461829122211211412168482816929331997169102140855945931553319793047571530101216310533775639164966857465829777724235455812405058607293787656304158431476737336551366812855755558016948911686904066985233768833735826734304406618529956862857684452764809043067810119264863066732173250633960822369064433705544688329038238618428312243400590811525011317337003232075750387346059261865821330012826873868148514385672528350863570869833565882416474064443194614581471474969830766049849291984885695757835449320792819154755203767154330129489831377154253334759317699790291664617809516712955650226420206371292768115452729811253354783745774630890080067883844891165060601275578115906025201411433213581353813386926986990813400716730057395391496592748885045428576936502299984568062040087477550032516734811575383640398826853457885922684866819276414357057129005854792498773518854468099910622561939277765558191946070768459077169917156484321856754077442554927673238819104248442685026200196454328180349590259060373631766171511028759629910459119239783397467439821760884272997557883927810046917777708835298585615656591887172084546911095264575361616158780406080800012327882285960999713225807528018551112918389208470992727608437563795681961074931580917524156027403400371446903529102798315017574633016067285835091450968360748881762164288065605127735169976876981838293227265548423563156721947521116809889767672814911272476337118854422904510500194458835563426848206058308294526233262204860555211624689420281429357949711795263946841793925949831228516057470959691786363087731613905217358826523920010021261847427535575449521894689148928270282711096374697745880966259487940997759046125890354320174837293701578200599815353031379343024303199800928418126603274236046618433675467736668435736486013651769192981917424221154150032376722914619102351091404854365234686289700845408603620381728155452111862750417824823966956081281746217748499008005769798826180163446579681610760468464510786640729807076775516673128129148549867375098382525134821778376984946410835867484113002716221876575649076290669293429010798080459561277164974940801159469056386975146294237485272876234675582254027550525215665907082648845495469120395932853227071045568399261034971558695416689176850201311079349738638117226391664589468461603872191217747360829653755319444618451249624896981509926148560467854249273579194358631563680082052167969058236539739036543224294515462713622810455515788311652394159051909290413582912010602845216732361163859876214173378227887692939631658758634011858025312484253235210162573989015966170009041738667191574045646237286816445572074098879563248231280209676909937983424624319796791039116137472092159960717363057066863530894795102779699964438339589134718269766663644100316353370955066345066799916005709305462510607232445205981164833989035695978541122508926000047473510602505244312563717483405548057462027232857648687675281675974998795988169442018683902534455014462590804219106687817287350425701200623392886299048485829800655150768725755849949944420670268145410505393084527840803942904138178967694815806145483865912883093770536888329287557922082518310393987355260035495211781955983964250497521150802254856401957346937555945063986909558892020058461743328742747888682359460306913994236517160595361465353813001021440276070130565210846230750796396569433598270082822837056138515734656151145739088029133392705419337041462786937133313253982453838798595226637734626730355415997299343126850988317251795079276748189915224762478651994647093059810579373647198552267804472254802952656388364208334304262742781353690947393700057429398858191271006083757743511765023112048162201878012111260190506004036009701523415846247387425477976304851972703230836935266310354668554016199116460432591779983205740482857054588469413376201469873944734864865120531324581241052333314921677339861652976316075165063259343371199954011893905357206998844867070897053848047767478669423323588867100942003523800393540663746014610777786354407593096949327954624702033748826568386763884362177925392986132960103182414213495482699206396157969766060357147199207591586107586308914042268441366180433187640815163579280805610883809336207728812631171412512762426183813970203513572032830968734595555910645149658728782981859050611459654102779446394040633607487589061884692529672040300433816157784295217406049119979991179152590962840607644807814043998039737563563263104318731616943485497591878387011082943750576457367515153006152317998709091465695801705560922279584652061780394323398550456179559746069374366885113938425708234735818850016322789452191436646388569262236301323817438805998633065326942966979422659371626084321264270857229030756727704854059892232188800012923907721766064820886092645843828614037785705895027698835804842269525440281297387041615842351644611593225229704226597703554726338434417716142965334396832520781681279909883461243127590172348828199393087489555750508001860888614965806323662628029977484251739635866067422577451205526833732048733680138089617715304743365699308814501122519724863743093260243439209331368575139824108274269819629128586842883120004523442572420389674059448380321000010727609186015034851341389197088148076132643411752627303163689650230979253556363978656634045457582151533036221390312850634570828207583710277420010218103462135548917722180057517626033109092830036332480532169081664974717614560712701026379635358135681593918884319076584553433117210797976980201764209530876443625714864160648733318192283808224380075801882116579210440354159656794928483521522581983522192367044679337035941149574680773424054020545056816739833616517628028996477520870811633449142036517685871702508354915079617779979250172063399023494565225776660154078526602632739017092510980116797872955167134752913849245066435496567111567716824313762562374840354730013484038931988281142303839860778345323881831215540693670629678596973138075390616014721460616410488621893370838477552551414805400027856372770821009186384140653214901613355866934199807842222077279289344607466160956726211612275427707850947597500340846864463891257629099922109451756850061934785490638238527577267508282076951050922160991889944117487439905980519897195362323538595660919778812994457786735288927129218093890857898312142542700211465574449986735353578958184691055271938010072276072414588704036304750661393485495929693556114728725132343646843306866090307828398950926879524891894928536330147740532659093719741191439411843360191476246666740333202406019096971266119894317788966082402607560585985299338230333564616393628453018808533549003456826844275771095238830344733438244256859550541415890299314833050458887280062760598967962005081201665490766068625789780376082814210301250238782657254824969666720701551418222831017025810733990532376621624415725048448168772160404344990499771396043340600979349062933093096475349893792517879970712274577007340526053707048566613762457545456033853293177728869288294394319224972102856491273984063237304186554820531811874947002203234949356703580603478920277271506199226447845730549014728555428490907717235979798352728728766088380589927382177072617785753173143288564322532706925958810364347463282222326848808865312458992774794647719276142109803635176129591608242677460695949898938308463190782034235818103112761782210451615092561076961934888277690248213770125666658078021636455944172728582238438330950384041821170666215799950135894370445740627855407852446135937824221588853404840407336214211666822708074601758183582411608713808497551395666475195431745897250677086034818173040943487852337765776898305940862695595440560628048626633878418762129719074581760309414870899120272171930335631601953786946697724300750019345249797429490548105180206801512790216741565229719546779146611584270561683121215128707619053094743948738719867990401334181997210294266434341839549379782385244705410108638570588274802558399465253804121910413768538894963453122652553269100292097161017047140938595415444177599125361981121168558567646968352115615298860737513549380220427865068966078944079106090617719750992947440701146956420540569449725586719042806506918390363366777301408973011412032599160257199379136107351014886673814493466422588472575136597525807409003395336149952096412755100636265712567012785776643628982018439848120911403465796348604648503286714690190217271541014789625817419926410583496212138798062790770483636599583101560000957679191691172861377806849022797455862995501436492607797522133904493743024806801029102252992361616046476119978977967229406456875337820685924985309590386762465397919371924542456279641739262343040826387815176519635403842847671747651393438760725203940846721723700161577219401950426929008147336528803765033474099993035620811851433039388604521105932912066673657851261368238945754357373019274319703337985549790596594485086855459723010586938924182845045257988027637919312857627203193472572318402536866126455072037923881449059375477220159474951711628580073736533618799137798956354173287257265187167310783083529675120520773561895349171425651022966749183180528236523933749345397835114284785868669610961811690597918502488654922425241709721132997645054300355693990874108135367041946789666953697011949026087596316900071869083044993168572990003416057348583336953595663361042678124705819804694677809236554998489685809513418830736832249008189742135690247469214471138560628081519248202922470390459475584996558043842936162468318330034826391444389136562828560907784291552185781594305234730039039638501250913212174355087485008802815119822536710515412981015977512288235149245274266611496028140321149427440053226521254722897372993250824751318632745593698856843350443736890306121732167139310264815768734509480665163781950579932633149443356945971508337091174016393922205634830194797574816700796942873963555215781595056206346742657862350297441587729932609796768492996933967324118490109110175484286249649296745552321047275556568276699067137823615572780785092593325904057968532472705778344353178874004474834719919478641226417632410139303326105268394502674380977577747133486300049739667566305913779924050660854299869689794403632868048737654800856446726486090902966000213807782455529248527532862508898451419877191766455465891484233167111113878919024959060482622704663428392070300974312871541711323366799614071170769089370705089654193526406332674572518810262892492671455060016878135055897495864508308887126108082458375111781035890241589378571796140104599780930894206338472171365279388583403180504018254447526645697040112424271834680363563994623835142838345552169986332958505062714078862920123649087532357739414089029689316721992851139379431246215208701268369302637314069074508947774516752141542931843464612636367495415660284438575206608483102158763729280748250750870652685828759628308458744886276777998657098415143712992232279965637739129254394415942208105638049786889790128836892060491371241247160669479690793418728661014011094830116074404905082454456273742021184005528772568191282222722593325111147779698710374788956956480952783331294932183260421582308383719437718157974703922415900825612273502302776447109531345760223529285814649058951186696830916840863919689322371809839602878728908323078617328362112941417786030473825455970498368106355816055052295942498500071223523511381340721019487411572729872135122157897056551170879923724454542108921566541848471422275433835573491968166027504286524694140315463997184605479390448953721960969364097288902811371661933378340298856647079805066367874508868953049686025331536675511981509363337234813892328782171663598829201320294108118961795864786587207202941771951402803179094843460844650227545932326290448299962883249441101679493797051341898307910661737700971741608337053071810800656448285263470064030448813636012763968971675838928118905555920354990976669440777167440097595033660933139520467784629110609896003125928654588793511381061873486479077241603326446449402843932547572964456070222761283285714065635908569100869324643908316693503838158110854667108129939708725595778429930105547280087312446711909108923317963688460252109299597843369369690912552061119028518090669249292388470927791757545369303058017283394215886534450994390254690364840599881093805773138720630634156135784835719134811757077702950489090598988749015847903996517258258720193740771501153492812019113610924762999908609142924656263884698249037020104771855591872847135066516853244031535150915494711857894546849769225079798788567189008431339911338618899362603712834781714893779556217133900787825675392930337113947119884383830186303775452190834847402340840586803084734594730039398733270683335987132948429717486141616152313313413757577037050151941333423747632766116578937834811921184073272427590500513238972682082741196403328033777591921763574443057840039016124085229614240877150594688006573088838218257929683339856047046629755648574594354898288514256714039633867348304777173866385254847546098341671692805471653226351863890952006701769064952496351076389491877615009111535628529717508945833476669480128714377825804096668626554800844924668740687341672221060148504863760718426663750080840616387522550119789148448087254627758866914023415684004023123224180078545248456137332833097725813285232658730701552710805971776123139468198000983075285498169319154088049198308096238178447553069156424295560748923196259270762079508060508263982842397996131144913675787325612140283406010129842173554739094366111180409115848730213755504257541351258209295720773089775704404812974072634100321792083021510353544974255096962370639013102313231394216321923705596185378828612712967142384545631826406978718672605053119697190765034487503956903491894183733340424508177335413849939278514602541561123355330032639973134002010972620388894575087830402263393173428879272371050655248153147536296110987790780205961054652946157733688787434381053836410288670301156314927140159632242057871525331581395181917328260678563279706061326148664614288303401520582036757802795848395546040670728298633532176891132636577620980925598564473409689609584464522112935380965696797746679023102554550235551312258827073817545882708439963775424720482052455705685378800743283960452620351672190274133392962453459615059000615695447967507650463380376437454476385249705322800725330256755956042411842282219402435583958448997650052566112726302690014414753308104326948880145107037306160666218044990281398915229199557146850194510038971995852875083936918108380438312146745759135493634913944478840350105841283963207252457742675876509863685297278498597761130789463023951378025559101185849034907206530144330235361414678355025897295107825858998408291585714691396011249122543424882379906811117972488896652864192140198153333129285728283921823969143671223706803033126652830376027294559876272823810162863039489960843763519854853060931034666945746509010877746249767512376612017036445563669344871990948393845286927335460609812414923225026345190622217051314145015194730729832011091194835533626466287267326227251846020010049462012156960913373811844073478402150128232852771323200174511607986395239553690437588904792926960570461370585029317681504297895388079181464860310401825942418305260982198190397062195279298065279532745954812566355619519206168701856873211694991181357218276983047161310559189613866737535939776430197032533762598286564722523630614254862866615817554027712545045299551641705292422253978842870738807102828145887928255816211694617041475786512000772504106318790811234138025390159233188392409976093874419874470282229886404919275060907392789254644418503229903955359308341793574181260372670225086700256417872744646557506246037110572956288601994277395751319837282690711415636846844879947402225629172554766176225591023996073951326877174631599324496746986755832482457757025895149411379203570421686864242483746686124869319792872149329649092430924680184112591235020333173254708408394760259814193049793915332221442301673240746899795610448962783089923319202383130086551133262436882716654188542204165518807667012456347892921841053153516280478080520400947755658341935608362738275822584075845231266472950329813315214279871032070447244129442511066459147184549957310350239350036815854833042566374323587659186897889929185442606609617663296834762114714727710214573414433343950667448664531781564446646655148361793541732522106320085548718458741444937678071955785265773675113018712864301130285140027621336250437385534612294079436126751477644732820771652942846133478242456308425121912052931056771611148970364703828982562564687608144898397398400884893020733187652652669646147799551496625716533584029390033344230442111578416739048857141948722751628792123336898076677633977126644068960562469208654009572592827828723252033123647345635151040231750190958186970330613322171618737513768413587034774959503596653522061706136495854531603739287269428863951007128986982767104418151645547811588601146821487063069178826285153655117947544907269842354642366778025959330465863496165471050192694402710552989778759768074918767051724796852862434834085199882260066220075619248462608450085169694470477250835592478042813605181709536361586524097585044654127541831458707075442112580108215271138748314424971158942668894262282768957754616182691500451136110147973502665702898906354544171248919453982600674770596079977698870791590731368701268522885277211192753011349694375648827675824923833131598878347850235402815640109474422314012047046977331016943754034473182991909594183519507878905885928328906549348661631070664357423345637306151250893425131835923696654279953461304584820733999848553774874501364686519991956434059976853307995906926767319218050741696691472840816783729423191710865001898217803829759534426679405017319459574305272533861274956817164963652494223633151718622013714819715117723413140773733696013861370246978911238909094390273855643503605817312531357363729353113203368393204076594083701575052160270860672510211040484122455238613841821909395878915061775140475531197864696749200472932368195738884185529066807593546636867554437626520859358572118066606087866296754350307746176082907254291475105927739414784512310995720619639560048175069364578137721197369755808764681724754075054668248841920616238115911572792083618969248287422311384731171825411702371752741025807497798199949818484199418817976496662320012171051343218407807064396120375512756858195837125855752933702139933612670803949197352547911573547760041519493488863417008431815319040369664475231699678558592308458194117869180249653429660908894551875036582191935496339049957056066502248978978030290436837606952199721922604057551384168958388490377090883679150084400762961084327738428467353486580664412488026469861880593906094422962963545809210862383917488887366722594764758963831166691840210567286755083500085962831119886082446587216445415179560662833661950858811323783630563532260388707481968298636233059621582858695263462208870895129305618923941308904855087456674425638235308731129997103177421455027201847123850428582871005640858876105257758324392114229997962370609417840558827561930628763963315134720669511197717498470823056723576870861550042959511251458692044618632103407881748081027553441246377218339228192830347785403554895439347165961355792257611139968404902786556579790913348253658501708626649284865989339508862017064495898931883385067052786808614911949142014523864706592414097560091188805027657373538247004832444545566888572505297046734606431021195992389718907692441891063373992753009912759515282329164079087946356473786531569000634569276796874972241543707026971384537293812555393736326810473866790795451305041335520429433287665477202745783941020688326358306998988782490319676863641247917903115221716261573726981121409277586331498602042936135345691445177819825507103233069260369590430376600149423263294266220273181162927715524127784709655692835183050928089223652810939523302385852171865103983033171734612962670082010517611951173267829855559218860928347477339276891637374371923662995057293341920339267472894981089530784914999500880857968242491661337823218253544968185526255812110834914361074994333336193847656608459028572836681997285786836025762391141611840592011330883885131352554197668591655363228032187212481859317973058658108059171280244655081864037235722031172220919818098664065915637075794612359642227150654234363045112709305767759155212436728083297660188513933660457833586185350553871293036538113326992229448722820025656439747921097175100403039274446055039307261368207326834261997232126597567226554410852861390926050989341875996690853495449360323064586910883325888159405011645539454015766597144057564241504124909053076213721822678302871188916333504421330114956301779645649791381193943382980895998028845306382393871330186490354021810574002117838901799566665569322723759757252068594590936470937982579843774975068255213175317414693242997014255189633883038213478943166613296987660996646771889098499068140014101771154893489991027980068306095421848348652668768058240703367047157473564004837880097177503311759742082421936725401227561379213548826455926762598455697665398211818818146444520772927129653476573518930020815818161575651534371848072394686499338569134945333368373597375611092099913303324369379332838570053345977206050172279298411149531648576303250562266253656373743459133692600937833568649975373086198207981848539557498470840707453062800781155338073529144616780721834733315233150396503919258051437870811403617980836224988912727867371270815975717831079569906391748550490150826884733662563674122352209444155263188536660787832131420907392493011383519047799831719298981950223537311137633348167614321453069242857669579737132877211954663662710541149928698759739498080561240097289320812733145420766595048142217704179756068925311274457131415740740145854455943040071674720806548532984575571064848393406496356624960784024603702009201186186777343816455541520282220247946147024534529777492718084538841406727302236091573391834467655740419051931883969151366522652121080485225406331582934421975531570645805356696129886502512490550810617966906123001182806307976787676562360963701906381052389779861331852093705311009449182650679248100028684578795514453075924727590824369480303114762788501219081637096672573561315145328038524301463693463724989120858227966947096302121800859754884085847151472613840379947776024889446083183095848431966695416477976769209947485385336938226299218360067462380417981820767134273972939064785586219817047534294480427447484112706550620969025075193651918715542003434079600855950113480132656454617772221596566493169329382262893816122651268441195962044428066672939780307548374994890935576346024146045623613482124126432933935791646506728314007341033466317407024124983545762964737716846363712584900495280482165003736323278034129216582027293210411342975061341783150570312076150524544599967976977066504298291155729688896785358764702553868852412550955537714533551319515554771716473465786789219056342021769210121401706214617092271462099990396955355413644018077015395109729303608081644778640706629058805839608127501796693866215358361000003315325168338592991520382247375571406268763100400482709702164355114377515961982384061044108006140694157144602404571012940502748940934665178749443106187480067173588210786999905011967568372370193064628697178270557687626800313187495925280973059312905289155685589944268032254497241808679578300631679017737251553246670407615121590827467605750175480814294263896905067320524409943841134351047828093117385556807090996418497780794218675881299614095931334186580903793906115085724348325164434190645947136329211411494453742368468815829131897939660067289810490716863861816674352004814042699297915688668819000516155838177954384963236152524966699925639249321550793452976596866238567588205914141036116828445554528026224831583092414248741805155896330883409786424192671015551420936119181827433319669158841310661285071846275467790724566432892274771991242740414396899611279999503100972809055871717088269301542469070570374359260706503492012227818421690445563164931957328979437042252616173805982009464408275324698987137676745811284850543179516991568233029494336720115971033039158841401281084110752357247430366173707021344401998854460166507845108078208852387506344188555647234476390834512962387352505297883310964296535562206648665699733932106281864338698544396773115100856395431298349307305354708345952706511021223024521681315269519031680616921828898716560227429680825092212708466820810397882425783895873610242745723892985092946150180617551073805919292425681127595807297588347945668303268249350132135117424906694501644733940436540379408353359103503087296626454175930292481712632857726192533595650716917364154809729309983789780024386146859401489235912364123031488491693004040700190519658640480511211701981299342422090691526098500709710575816889164645311013110100262485739310795135725742617581675751224062126850520254029944619477068133587231334281697382407214055816617378781888452036893681994836134672111820973971008580944861585808099085549866776848625052434837028521384736605310807758306790437150460875772182955653076077515201121091409072902246240438176907333173369403885984367251990022197482386181308720962986239873514059518803135580718711988254255305235042149584483653167756886992120807608002472216800627521091354924805058267456131810110144720596861684566815577198180818591648921055356712944214920712846675964290074178938624766706056153789916253546412495395205513115203104967548706817464983010053182988178427315082182796556731634056045737172082111965528079416872504025700040794025870667285168653293087793191239747045599940353543443371631184120741104673302199827314889020538570693856415647967703973918240764539428412091630268243129697894581676109101269018894658378801307910251266454525833416446247428434090651447103055219888608804179385339804674743563006418315242871454559235485613242256691382059808570401393235739361442406275482658798279531187226585103676836304384264475036419603162699153142066084984407568466838031157616972954634911568404121912246191107461338169841453187008621964751695790781110372753358275871298161696648186342774007207307860742253441166626117065253372461566580630740426216026044031564399943824913379945390285223934954644236753821049815378525183386808892580201688207531978670892076320479387322079038014377491655885105609283153751813010064615687275373961992998387173120320233764292483363301938984904238832118009595068708525971207118580991756376007384767302235414473889856735973695069443792111522650867750272920647163155794264566343563881124288131235547043701188410620447117785175562081792859933164763444275791284169241280822945778288986255597479741703738060772093969141900716770592447310935389580910264712867912814286638630143775790161056953288141700937727571678906260761453843369710932902766191910275949524676655814795807410793447845641395603909061263451887018073720220144114825145449990210034151673598218974486637428400698871138681574673202072679178827434010402787592419403459701741185826525355717816946529170093967294384022556835165387723594575072592678416966857610651388308396323166895225381996620054353458382214973898698237946118238580388247272322195398090491931658026855577033077207551703825314749088906315022049204290197899715702153784907688499370020188049750665481717812710702271689917076287254059327909821325815463981261473613218635863172206626096608275922123332879274807320055809624795545467574326841939243067667011697905749649374108422024365953443946022905388225287333141033322187811904175712267007342212842291062968057117492917370037060497030548962927624705011222127808469497169693330224335532268439582883664504982328902651578593500579464537255161365630411084695996990578546463059513582425371300430353233290009522902399588267927372745564762289003744292651885844578798866766414321450777105705349748208098429674681879641266939923905658096064567464215850674160943710267123632017634858776715529079759732476690478052826303307008704006868069912481659749513046438005951728934744252640163247689557446684524367477165706045334778654129757003299607240958444070176473945410912489082637090983081230428262262161050662255704532584229476285538619302240787828147749059836920542016373871527769932300845272357711676956540340052385703794014235729554834669321405510014394349241669939940188068674398613136066250260712920237850275725349154129953388676583562324787030127874224120045974260611829654044367587787771610541886178800230558405625149807418509485279505232986398368751020551737281980426893510125716758306368536670419234342059267704834272489096253163891743214665192175934118775336011707559139857647481393681407015860282371614963410410456561219787643802542690775725954874853650085220137398184759670509880495379904569530398641976294442920484605881568850172769781907003058787873831290610945150448203119936827674947944632556785200359283770869298701477861385001056209671123309896571047882274715309889162401590153781031286034909997001550099851322807434193193129976582410041414041509868000502739712821619282935664056736470518273641689958766503966814734237645827652066158017515218941087462033101822480360764102108431494038172160693678695477809228752003618970709202146242274105974970777506787731068241369330902764312007199421409056308489448475781037491235030361501566840956092924132572703541074155037741676359169978413090689859980733844329147282627602761638618658097026165782621813609831935898197963612402187561021729041134824177839248753628068589538930824794410872595246072456388807294056359517773677172910339570402286969120521573232403876427034176765969294897946712979690726175486337064649736080651470537169476020340687200099579469294001081404239982521532006510906392377627823797843545329192090960374081309547646237976491948010335220182181598580745056098398157918868278371029378089409055447543740041292698295557861663147662320066543134109994555005717280276377110152054485726101735881591252611135040768274770261562036738911555931846009922479810742390395666545529597460921721478720581225284757655073271759688594984267662093031992553807108751526445311430649502036498893303633841227740328604268237850641023699035587779692654080248734872070199905966065689941668261316099134950510821943997678533039813426617883287804344094033197041817845182403375392046314480825561887384536359940597873882055812273810839448860594829388694043232251745344110532425906871850431987611344150436954890417971381008463269308607717118744951976341885864075410926182113146691351695136144406345986174908929790054869321664476764444252768517810251981872664390342452146736795580313781120167111935932972810044235561895718360240959447464011843302014839732712452319579402591745871214242741715690505931198966103093897752560956600430971662638272295272643383813855444720728310048992753077324452743748660942102800937847249990515725803870956244795004982700496779004577636401498994620376023073473136674024735266509610038167144433888416806319192634890223710823494420897324060036642113323229798107443887630900507971364071895580304916669428610950526474923614684692619053565425679383425819351369511729791818949879916550825860208747905311659656111802544373031936604804225732680836857273069484358309839578745605785398478668410482044944995651208371388957953957400472488706438041824568769807702572394287053905757255019215633996148589207341450196471914863906472203024152534087749328713404250903898640953339921485614501461111642171496564613045137251924758911487567754274282158287899550359888692353249885605170393492784147517855903978900026986888598024913984901116492931607035678509802550008059668244274968475613284845295072570132366250209924274610928146992185994699729349734181691927716330067016944660934541900203064012624373660062445878791193786401299087232268160579401334813765130308256470930163628582471697468699339279831155970943658940007600067594803005265107742115966971882140290853101591068731308719389635079024711413904103745869357680044141105911936004941948410942203254199630515666106135813123207825581273349013731051605471507281162359837954187563038249234050513279135506832237528687402549916379252444279687219637809823618790126305961497565489913879864663176235917853369293236615006096053003170817052214727835738932116938374375733087032161290753031647174045305791814834702198004114791564743861670400588043776666442340196214789984480060832057493436508039278667817320965131301246339388625253657420018566333564655209081070693067940759545428040391242727558792313468693114045883295180525849786178758158584785776204292110050692641136673571049156929097618579024053365603289384476510756953066727069963049823642018885595102569200265208687045798278511418726168855525993817391181986377224748958500205371506433537336044187301248185252863769001531325922901182010023987320572029477495669369314231851343638253290731477067985680213599300939673321152801308370292563703054289754590703433522003404061603059954227350636109025554736860467403052661859439828204109255532626705565002730802206368928347437818780195938566887741677908730330737108423429567126547576410985383572613486505099717996572546057625666613738731349249319690911280851236710358434694157701449483347225032914528062417166764807721504658971356848218407059149855478828909917449136909253751293377433020599628949269815534564891083342345455690836514856328360511731447496099721041916882324763770625028503606233471777910929178261400944078306630649480105062940216884148524795877607899084037243614552137222614568146997131488013073194463067651667058564966427189207881036472714627162207746591478545582448446524642681698220697848379634635091824456933360081867003431100755920411981522474949534153755485868166408983987674450053927755076624569171769145380076132390282020647462189713162810371883390798459895716392810887350519887005905635518646190269807495694101467318871447875890322889896603015748377615658750314061932967149727270396695062020665793305005358366170024879617979589669901955108567245659846998014826149348892255796135647082834837121880534205365702006899159557361550695326340083543298335514296124180318935201720979474831701611496041407521350457213470892840760751454768983369084747298810274940873950413529168294311343464472109743291924116840681457802598894225154729833812254572422833324563149269603237249756708704389892228320518887046742766179927466262381115142885742813248306977739048027124102981721022154784612208644851771690455491331675876370314555935929986837232878261475672423982881022914931263004736612038116965093052861611942339044740003603154798980578062451508575221411352311959253969447271683477720135746434151666333721013736870686733164121897853864170862291205581475251954620000002966188077278897675300547852888524338033746889727499643875133027780386470435949453203036743722092954173056511019114113671292589797659258452098410012819834852587907630481720745173711830392618301668507331498968384374685816333740905943598985046073459364133128007334238737089699997225296277499844134237486291203062523395186930908390324738471631381700430964933714705836091154125632727127414670995076989884022027680585133226068281473707181783416409345520272851865796444960889494232622745574406689793431027601573554165781778444297500910834005814361205700324640283336922573454137122854358229511768811861715960022166336534116117287472694206227781633853724150579123149563903619678907585722374510791720583196500387206549052640961471381090021288190757789872469031280023466797615523773307985304214956164245819010700947428765223179993025995483841641151284110785803730794488054786078537534973554310200664080175481415078212982015860051551226440561964391412264471373481188609894273162536767282667165300780631969851986447373283949311981756985694165703315359031625498563466638215183668558694436992362253915244835053679674920903185585873520332755103370581963402061028337614007548944208054013881573959506501027404435162898933108083837393211441875650370981572804729406972909133554308147781884416006216070971379398930888484914018690602424348101690437764336878148549378710310182597135778747930310300448540994103142588919338098252049184619764581136707867273778949197581359822423875587358878620851383403293486757420516188345424187250440424348795991387429646289169489686386912720634069070795827396975965607033937051311543140357951866758349815049517696864795120391368752882059827431953074411150087535157039841263164241126433312575920511036095379064470853796471346962795995276434578036912395151271619550167747762548962108281017274322973649835440547673963722422725326244258779716826210082737599148873864019506540715521426766570595920763695216901264421872556461235022025710341814177190059553243130515477242533968203838518257972968388504444123570732531690334786491910087576302439102441662436395057304052563144597260759237964980312111464957347037910689108107462851311301137419519352598999258392274501727047521140615523414692652549788311708083128702676277630207852106928080711563998909466819440719482218921222909755898629083978955839789617204702796638555036902325960689371233560573327080296863105156648970335518692928750492585814945415342032671019836232718363580952653042733208525608155066325510408043842255398653005193469819312391715900355151835182543100960655482291354046863779300199499111922479421356942426743956057875156305852936518901452688262076521116761096878018372180292802188351751643071076190215234482682672085614243060972453225485635362712975101560660678646250678586056219046224870491431916465532521055627801967740138342060439282163824522413999962776324577083018569866056715777840850883308526903343887184107696347653961726058024576487482029769634726173337361763728942714918749375442827364607731585040401162291981538255600263768963608066532191871729466687638776308673973303369305750453232047764538529524910410640973082074744201200470941059323077840922380894973845525734225890323734303096244638268026629603707566785156324253447556069184298257122389375385978116161655191201976585689394954391526594750867817282057761244467338017974115951000032592969247168206566454305585061469324072987006854882652146694998323114688437566264391619095896614992820160944174719204059309705121548884253557599481610688936158772996460796182887959756580901404902015093990770113460086105478849092616119619444990751609366606153702328665676673382449018304108763867139448343100388603749989423496206739005599973338291602491847016230502836569754023555406535506058892803917118004876161693722729401478621832219820601451598056251013961192370637897822667159136772100560931706634574720315372263779641633730760658995370780804221430525013592954402623322581087636602508752955269882654961754499046372025450966446997826796544931789659698251849691825020084993004257001111752915767438323437487423337735591420433968875597045514049025255328551375725773793120460775583885293244641812183558039527978038417453692575620549190662912148627468217320717077788636985814154574274487394057211479481424762036945052594287487115162205121156853116903959679363474427233463049951977396949637294284329608072249053425767328156244932177885879130782293795585659016874752353715847104821433173128520191325845845708710812077314296716328771271756128633173552201902643669995760843662071562318381351950770901801625349570589571458406773634878486723318711137604916923253124413336830467596611960607681646614920717137119149460669329714433732469873917104696977660671792694818178801482414709481837426264405913187286869550073165934291281794836112858775789403264286294201179013804729903331296059891218880882277641006258519155843643921797570743061090031772341849647873139304843770597784220251945636221696735268521710054854157134608260642669714891924206612417319729990459376036990718258495646268304202491380723348504075406421200130224540285480318809054561325035314306630677804473263123622764536184111260875456622847656608474225607480128578677820556855437637361581972209370526624246005720980782936755315604946009874045437432311285478027383117173745765807907946544426937525844430779364072777423228522617766508607077743938280783360165808442466718220350353913491969650167625852610895228237801380732153553092436390943097863896720641162935622563930946704147773224877789296272320777861505413757696253448721664028074771928051573331151006383284161807701319371778663363197698994782187515177840277851056042918447293456559726062766703651181611520726312052269632429549004614959814727509717587658527594241215082312699348074966737577020675689372821061205797117981455372613928649170356013169047487983154120241173721240937021946289396971598234227077236590513724555771417596388340740128570472041248114201810052545858098065843777678847218651880110023055464669735279128128670895764614036026488508682154044386260115957000766999855565824481179559884884124215164322505150395571116719012310861798293956710555218578287849637153533428372725707962464405247846256974955125147871251744709863059731901085936815801233921930464174790526192207829116285788130467427000669478222256021993370502926380565215278529626676091309998372796784670978173463710245522187365170357300783219893026863563305260004783245473274791036135991177861824201029978474857700637682153593017267982494612715800500887182982749908923467591661982107582368838514948964259909258904098864919435032981702780353169378709056341762156774293443961645019368887551563963021130826626772858101040011539736106014528533448257802076662727031420865505210601032085809432585518010014773288734264385319487175383953559029066182075037283292219089598346139420971474821158213744283935156778026999980026259928337768844269003517092221220629239535336466277181881372498105613250992786836655229975504776046372108143774746992503868024222241463122353711576561095931216067476396146738490978326392496576789269560712850738493674564174336008687763201937416629587500248865783919934474056240193789645924376293098629957909987197868578916886913490707916401991323621674828754869577440426251645214862541022205495056731094500578422914505535026014382488835379060976690149734358220210890718905172325073455125468364812675094894245037566342066304553077415429601066722017413028193348772117756696535789170366511271572741167978948133457385490782430291708668218539740110565370519084796176300701608601288275905937061336225131948828326705542300366020737493188965375301293535029575009552622180376228425965580824677682957631381789910346382656443588898919615336602889431774451309487952087226878055127224675572277781192978853650312226309263622212587375237025248344909707371932438834744124105694513332394138841955128170359339871755920490931958987630386936985331477555985315318332378772187168119598743301639660497068982747036981061764450595211799263545225451049843784311575436623020278389688042727726423811682618137230002661861262619667703126614292957508601522924175466474455291426066807821817574428470351106617784381363147897989578963136632303158630477984580167396716788734808030401139214610596911997415198074439766305180206259568101075183923889687786417079180919189001252960178291981808731350187048069192036000791564756616837637120618895686876575428876645122479046645327291041868034741969388609308207253784822362606640701687886374450220721351467864425010865265490019308249310115428065105229712191004363860272432169732785321652410696412501079242942704477485835592629747786419562956692540489299568333895228148004237399356058593540022225101024313706617153910463061205388396534037143847134184276143341943284852442311798651083121325520542688003378999093146036984088437602238302586445426816549710855731178609042894086378558265686945943837208588904582721127764259227371353586232108208619664907992306665151820316476807674642072160806759130727579821726930200398857382888559405849378257397573294394684498788170427814362779785400588489272219865809072825694172869761608878765503112669225358298545089482901968506688203302037249222641799221705030831561078968082972748876660559214952413125156189196095366497306493254848134623936047025962170651392567884487823809333812761897660684560447683971963392202939031755778860053102669358880153503192969391663764323846395015200786121328743647901652356454508469662613315858286010129468452008853534247823432873989926304472772544065182228816591018142763827880244412906591246337787274386421664062038731682770034531826256663178119370613079561809517625330704095680932084333501935492181355949225221349222473057400720630916531127571651967180690034677333936148638531483552098347255617806410582282923782562080324487724435007356847453447719328840107338860173325650841415126872389674557274200092983678502191246910952007013883040021588854858708130072466572090183627010006149353869413113915542598175515504021795441122264972160977814994107901091157562718494954503206423885237324679686932533379196616477664599236185382672166525543452963770783282868115927230559162200964439464828160517305283646285158760573613676377014716210153712569904719764185324676056557614723445513169222409473528451874783107593240544844657880819307777143477657020708116437885706323615303064199415544395430759897741920379429757055833283035332416077570290145922241035643892186253786791696400132028672982805848569652698872331965995178090821851214704998590007564019890764472485772079060197189326216708218429607890292926627514052317035651811384715036021088043786423987155089887037971121903206127383619305185585515072379663885985639447634133156156899626624217198257215362312596520240387509903118730441345209643706148213335089583255579634725824885694078193648198438849535186022470746269665874822224951467610166108746620707049773249346819388171242501368879887667488420433693177702046106536206159436452723867468052926813778986071397615405460757353654760432826157592150379665139855854656706650966305602718872722100184834110210317353819039488801561027070950440906524613640294639985262656453842273985189639838090727720014596228001681845208991191292402133085421981735223229081408333235873443589719603824049832207598169922815845715511737924712529384346499038094531219431604192430949420269424810183978647742456335327437466634083975566546542099951470088290758447076096130965089993051149775211917694945788064305197635055077635947095588929058609664254675823795376669173117438952815156201623020292573247343743188023236584546246349426587294093680306291762667523774060889594515107749291370453417763925989812040191492928185006543285828284396351679024887311437076088700476824134069060292393939799349899799976690026128318984086395294856413904717504918818496250082957506936278284498391793644785273251208053445201687763915310999023993559834050232422245688185871347818767987233771268621526541358868635908773273102088690710364963833279996753542491273922932696068446207818139795197397405891434220200879759927462949255543821821496681124366986522390256014768285404725027377747869638930071507983136858078395632333537865723161558828553366661575384121833519591897968532111111314930910969534602933203621230703277721236342046235650878268535855696807976155684507268737699019779253341625433955919746291765468275859596025027076517269277850978242820872398694027470540095150536092065210452051265546803841250660669589477079709854851294149697140119249920230248725933364950651741628547670998824497065738381236718197421026778989236283826647416240945028027672811248474532177815895073411086548289971584050806032399656204370317409233450711587108557544371100417482144079924770599825077728865446666431917615187093261680972275700847990734856373877564047524696409021920578542070947521167115022509302356795696356439790167871671110616467363205970372838523698283133331966355734727971956681720249133483267309191166911429780909062385732868809550689501083907621869522107064372118878484829423846814549147603167801090058499147073680433336049611248868819820423929887987801781283621559950457826445015982085054728425447023270602162755516099621130795418477474195461404824585845379282091559774333798977110521280945998301440213354476024915890207126957142476481262516291612115483190646610034757703630717094842257672099405200096827948607568383328027724041421765622848819091475665653411756077739809039100567036068602626778390671638979286203948268045925582290467117464262523035793619632061942329493645643801413315170170236608065648975807719987488283839784292768094901753481683578625061509493664041878857048661043893420390564413324447451222859041841121188590745433126464806750079780414839842986772809277592662021587393448039853506666667716826676818958015759396701303879457515224540352973799622984958008233899462927576751134350487928715520441134782020431575045550593520735817782964233937557298998252824137948133825937439982844848136448451102174632722692372922255630376910279170445500271674818557229015326975436643780590898746553665185088014287824271411673000196680947486110279784475737009413055162368655670389986022302564138427388431166431733196274446715248596655481655877901236918704538105375281320328256359103970414044607330103953311766073786928957272368591145501676774905772430207322351028950946767613888593942499657836207794725864235658896113879623469931177782966409953841854829145552712548227858857605781791979120657414632356756028757109731558156417296459284314164050401237619340192904292933901149100200408722606422836672446406647940873429687732191878062736647648385650133411250583251225660247038893759703549752467895395946404532550537995589822719006646990946182737471665431342799200005732193579153200433223265916276460422028269956403847398184879394176572422775186113862796273453963721601460091858428527206389622546122739056354523086575000343535162268465945288104372504408061498006457497959278917755319712358096313724305835019007428490959773541909671785957848424196251733006205468419823820346499578435817409388302550550600197337432229588219365016199096998431082559687004270346697046028838001297061309138577172191129678587580767394551106428186418886912390233778080088204576953278942730493036790428724549263657969946163556418244868666105232334134396017131038280701955022216824866052598152626401404251868935477593756446333818784710180357283615375989266752672950490378331001683875861735123959546052098958153693944657760463392172908400473995062238476207895412267901709732902040999464866271986533720322365697792610644527520381677333946288514594923787157759743403140928730472168127778528241967411560077966118577390466130447397936095140378758475728182172639651381788344602720694115801779750452893274871108297849589631650604143131927539470502329769854114925860302171350677320574715319099502490709636054495525816595076434802057010278263732515619503191291640506116927080950841563263518177306888505395152188259238301830842440948564168465998246925812078021025175402977841639486375877373506745622267206738108397426475410227283156914853804713908378536409074808420708170363729575659071261651128620548641832486033143812639151623579508667711960553960163365820012483883889729960168540074286280649990551350003129425548530381990724077945297304235323415244948922395928912345021755406774636103639073874815450578717934990848324347329285120734831607894327983241110858622152838558229641840371931758044534798910328781217801760817237884641936383982994653936210887631324871472054504881170537765598246259754576958383383950901333984550266286065774258643702616637415449646265637880557394612487067616443120842266726878620627582937854115972957517609574881726928010073149467581923120345641153069506126515870265355319288959392776332668794706532527768221671678070773141124001090677499796271101452339866001616212929072641108674505256103325759685738600568767668312916001254916840186067942909189193375625974211947808285477065008997534661839754093491745665574657924781031445304153236120450182783585169456283863131923132428100425308981470743534088213481339673927260961522646890998586052290286236047032452487738657412117000166967939747693610593634048297685013029444820013111973930465737605976377348312894048611720198046109237830483894278995669844627720238778794649901817516927571108645132443216558917508542472617148606058452147433877342667163905681655068498671904498849916303279789465616166073051545759808971175492601808511064074989814738963258009022053414565486586671972030534774474350288237335265547149534509132883900688177151190664825324683952968099121651481004099296285432450240996469752335974898607637813999247231980380332531326421968547834132252477745973972063372330635422970521058143128179507575458248499546280794540677679513896271015642469705208330818359044179897443217971194217526822764319874233162266798956379291376978631394622316328094146857800326722507598734733265232149820203937372506013160996017837173526241951373279704646973506154156481715092784180167368335311727279507504981970873835673374490680565265287886391829947347921412171184324429967635556793357620136846065558300110579980814703947679395210513890306209709479065879162598852631337057645035846990041892107221149488183996098870427228891312250695831602579055073962791040871658913849928874319363629180581132628209236633249640606502943993964756796062637004557888729928179500024184304546421574760420389763372281264717113444346129651050829614618073505385271951013826913818618089345954384474263746284599839165667229689336984011413782582149113829294482228975871928766269570411880506997545442539666934103236190286514099992894400103776505946333147769445246836392775975924000925142569328131616830399489370444707566672687859954786087824373712324963877027952795306704578902929434222771215687251636215143945086396050148788446138266700169751975955820162071715230356137092866157715267207193741006748642496808211825476567808671133636615815470880258093197507109915081749445166185899024854663447222920324127382772977951437545564730437234514277820161958607614543144786391569705951924874703059481190693778970584153416179020140604830654780449423527225290882773620664262701065719480663644875151311613841826366413231513106803972799280299030248112509040452683835105765333435132826214181356198564774068787100496255308649460686716190346485930430345526084562549123763887400067067647094664761133407271150995971816997901731786027782896740747152461060590508134811596555102128941121149069239445512105183725374524872944458579503079964959785472964051187934648056544734222569079963778383931935439227598261059013611661065010618600981926757686135389630737978087993761781624704442260746629374110918785185266975617598860352619683882021053509819479831846652665133646046231948623450316174151808128475643275002541411334195712158833199026859200310484523455098908154416393387348233585060647363221336452816407884880725816769139401640605050842348124993265973348493748638813585475540058722598267309262419914019646599719630666709145807181619938871069097145465953561154931818555025071623914783818888324949761713599872315597858414008146244754791741427483034693027982784006681218347988955576218315504604620005610177784641553402970960948944534088679638323025075743712951146012894706675853972682218031367258778086126643104391545367632476877108478107915119672931142049505245271956395591596218434970707188383245582006042414856076645162147740341338412786411861186450690176173868588657433665865383388673506689569977275048747567137818178693534914738122895408262873733739313168251256718963438624523548363459120822704849007032694862035838627335305020557603988719764473900227712674081797365903724298917580406827116187932218160261105140005823776983171562116037420207718795190000601490912365366971821097343875661756038429028672008679409485038048499647033748561848106885084254526011407809830016834257740603245880050598669518999928385516042619071377619938068369913358355023868023480195813883540431750371734750308915803700796599268261213483424239032688327054668202744652202382364325322706491039737818778186353736144314228968982434013046715015062698987197273517104410568986115271032115740580668542817549460516614375292142096159917117351638916380925199192538485734301200442550569931893093596624463938192038750903551830103718707638713590933567991265545554717338221623728546302086534410110220849314204393670919700566433181062459374680980758945167538101813207739893053825417145567462021708047592927735475729441685257523045654340709522826868145057383945465424354848746871919777530179522490638710278490348384938318028981777752724377693840815035991474703291383547528924488742155398287142721933970111861169588300093049619537588289833018845733709492166707578202035395630018756213154315240447315213771856076676446820714335840544732904752901168256245833353421733712378862990705301665846507952629372085135839840023313064712949463525062586068547121188450238761639245813683428230586323450364088409239769675066472624251581381919071933982005678668813934237963035974731022631544916540121585949548735713970834068636491673163075318389976053140181333298061869640475306187493217278036575240434166585604787208062521143993254141816583709801771042984981045272124566448900391015286234861771572873204296144164553757057525766404864213675485338165383824181942205180950094657812765970119138410965775242729627109064692058502805556505706698636784125669728889317990543908688802721868050847444578152683123384892271606955854385313632836006799229453805750090673703849229572542447688181263350323669733402538414595723903883225966556984801535619973190764924941376385208500021414378879717833346395380736502903317726361616519921231082833547428736162030834542551511887212033615698849805961433088077555572110531922553245280943208867343776987219713023183994539881494791953119693415859056524578135651572441965536800503559620004564887143746489170226014711664287053553247861087505369247547812820487744810979274880260209029984967680408240534051238837215192306384835931345660056406535576096562947415268462910298657246013218942942479203455112177802040833444239545120280026055350415505339165514107290403580024231802621158573240110553070343540023361241798363738069136669225585698615116712933908281113011482376969787240389063588651091747574324176540880326815537405793184415144226004757422531198697831098575001744466570874532637299580840977166163953946858041346101009796098406744090998588281087417266713378576609552594785063635283371687661326566781193828329807858876543111704527600662064707950534230762189318887600670874562950736963441562897147843342189631558727426464242763513585131715443218478085178577441846443690670643978083332974211471267191929235229652712779931380876902107278970425761071626304619797758036392594747916386239627538835721208092232791411863807322944053261009566107505807598386039847940063707793272967567131891330732850812688383029649272199609933839602048894981704647220021450161125432433571407475031697336042884404008211451006761132975836980482404180468570937137630441649438109703444891489534928269436374322722356750868272444946062561807349801658320135025215275372313434165743785680881462608251612326910060776805445551163800676069378972076159145309770411286194376742375749101483157320421456725286897118919474434927376945287256960703809302133474426590382236890713067284479164240114559612129550034165546868670984103315881997595372085865551841815683868910424391776328385787483680960423896353768024997750463010716771470160020341470742993622522739002283533792305539078790942627634934618052282127803806288120023777599433427396750428597929054460950431291581718349574512106946296134500826200882045788804004268106044739821454229549589736673726059260595703273550675442070064690270836135564036600796642665057372687767983078378714675377354989942610958067659574843053765467420578842248441242799778285357416723049143653049851598101813356901333732902180350705694871298386728134594279377250016598674224616924669491963718113361264373291846420179154347917269805571427370496754290872928926031764810640793183190531204219630984663478972479716155922562599632049313738388332766333045238007510898247631620694519608795030648891411743731850192071519244876146574505478623001487659108093087656195772997690882714530270741911105810955839566847338429506946698062858576443936885904063170017665888108394220760312941191834713385341894458532201683407963291967261338019023324910116535952904220186956402079253832682866566575424068492375239022653740441592652492144993759448861779047275573165096800782469262745121004794557225699915877216986288696513782162640250753761859777392226437002743126170970277391172001796042687221318098728621614132613712027489477659922414193007979138488332143652883201066374846358934773398220995811948133968727986222399779534615150043536409101063876899086922392332866548039205846723036906503827420482064201967767822769875458561000826370377899596330141313538143400347371381695987350462884743125493870110269570922817138730555719659389914704777219567043021848523037649704543195944299120359088237258824905825271049370137755660355147930701659591779005101420463091607518564275427551284674269557025813282665068902979405114436971299574266788048012158245130746178799049651461481961053861976978742886624048631122689142400776814705586093598701149579094264754723188725610316371723655115723986332842747125786019588143431367609191685590711988231902930574320979449033441327597964334858932036969856423098114779583356242420762478464932192020709673937373490580254889540936480728798470854332459636467878606787060220372905973018202465827862895285116742995525692517251059400245627930996997868990938040082052885857895440953150482208754199537074810280635227315791484274986935292051856962827268941886258673036253113467147693936209674898765439170254220257459965503978957135927148144809709099693400325099791800169274525579302586321491073608106670721900152499490893241849853936835763704136790985691278705461167793189151901849582434922520496947583302897763216089868807319130824186850574423600524345627072747226601894584651536350483684874470246187228466916562098957021175541631552295969501163451355688450584979798238704947168911544896000186246771156996930744196300819670587589262699273135388298247248465164382572549087461171919649505953111129274702934931905021321654300159737466580905534143055475486696203818759386074191124746647762972649844613185761533394769036070184584899567656976753211904790067142831788763809408335903714167223492800207974723207011978565356504275647098885881319315057683334426701829254495431293459865033274148646044048054069962013524266335526331439906046812978461118148920189235112265215374052473440745369261525615834851543985177945261587236567170492008656956171278309496841322599414891510654198424001511768169709623993641129094705785921769627060657493567957409913166192507021896002387857370503802058817933828309709755184005105501171799196058207582430886083301175513246974672804776468636552786730981912482114283172943773205267852608236777569554715858831893789552745024252776093265749667452686238568498598504757919864428799102367883258353418981697314062065505248974411053715242008820773104252602168771355031757061416796075723866226647177111240584980086877919849718377646920326337229142337409731360688056389967905394287276364916164985371872592676088554854972613473048175728026338808055890538826522601978160741665998076705670879393901417874681046858645053464805278976168850765862005142892933974219627120084282655933940319292995580953932873368104980378448409289456788571060704367599027653972345826521813440822945953445734033077676527711254690800709703817656185196917082848443992682322749925928838005424959626438711344027019613571811970177550107719614615735230768897912394788603056666049518177358094224558933049728810413077390158891147433047925055985681173660646653187145990492211719512489665389165627687339035236306381562666422524198958335293623430859311680491698631733701216587868626331761184226296248746043058736368146668322321963391763947746150938762399712040588799749868126113111194007211988218095371412585495049802575958311841572372689212151624287083672649449059447507640522159803073773854443207109981769018908986203939197845711692884295112747222032284937787010195331857168211701152054996209781811610366220228647890115163705912229304768233619383496023618362648246200809260465075569304407852854907297195574259479818824716300578925744836559034590681926541412810780506850799410324120844218613198628657687885634373974276928674827892654031383435045402976900785092992916001525496156556956119654355914366076714932947571280128473325239264073862530381073832204919292374349550621783455856716874163288073593390109890774094834816448096501773802872194768820532328445574598896991014387302200598813404970578278321300911564886411851717521138535402518737271850617054309534588622321802969930512437401156179058554986010108658789314506721764377958018511752375471038126981669533005634254443604579107824267266689659157322497488056943045173167678029162826343479724083070864823020586320494924911496365457602997481579258957109500332687671026400544985234787737206993203369673767356997751144815647556854700756904432496995968930637645229311968175777611514223575553930152117965482205313286224285374460669734708974866443904773441177076093170466840447191448524049979147053063710421458244093409070344165739257587252940995964731732542457876842442413096692324447323631014820159627604173794623941236485343594447580141506783250769063390386426589098697716785436670578823576352672754581886281541597363637121420646802416620233903339944157500917266627935808775142287099136317386111760582188559612453945303889151531924762335136997401528825553762529648899107009304053342618780314681102998853658263018846982143218262337581163963557236377435733867277358085876998837169871248680061582669905111415885486900523759320488831898304351294946279385406063777505310858610756176251644490187540045138320966311771774723639859031536720013168063057045645255437242888496056901955036149622049417869380319557457477371948414139695207658512529270682700152815584895151305357767843945642698366268060560189424884488464958752170765011831198523231736328997406183279461994202493216600509707465113311237508636708626082317618987252236562037335111337043389931650231701139483538965988210133942702592113339477994749812464181157245688806836355763551981410923381651592923381864526220002823531465253287495895425626057050133185780717358588288658504805431450123502086597198163476157560788058341034026284042793261525351320963036471651005455817871316416756553250704672624854860528746112317144020713275920499795716568228528384567949175665572649931340216575719483166068460886299164069187405343674877620001181274200712474049886443247433458448563828887363362788649350812739129638029945992541314526328707813531754693030631413812697371833649441342341217791586317110476558159835091383067425749212710071576025425046999906143303423666705004067328250899564283685485096986088437109897325455716098094034889271920590997111954865575988269264258971416016458270378361077411154886774233423298217837608308468074010626153245401807242998454461089442286709462067672080760986285317628218376975865133182210874062905741764977333245159308629612988092177494277337044194909327057963782134006753801926514845494178363813364003441220100121135188497153750300456475157734949030247299447434456910529944101788425752211721853706138304422098360306214278678490650133298816913521295915910896887966722772361080766435155352729668218562813561055822639367497892384526231781210853520536034579208349461047157421655710794318695318458270620572752782719760715914080222489290744530018175308277799692799408379648005050353097495519027303988341902293769491337340266913072618912136091788685758544477530384423646411857855810185723714631469051244765383334238654773518112088380506303981662162678963946105318384995912465915339985907802572200360483602933957384783965828833845908176978710764588097702652281987550021377259487858166795732682286185719581032950634744952706290058551660844676600848550692772642222658268332037930852099652642197128272301078896917600708695844512222321374516673267297984313937275603554659936391739213951349962353756837055307841071358782705115859597873683625940356433232907823486653679582371812318861187642753478924345220805765743069944114737817938315746346482844295942579156501752956394405205359821297175019471871885124064035025268358514658938879080621318614048204438353854494034063611984960100570199868194004532028233378916948144324118246744574145360362008033321761682707916163415459258912223736373763138357198654758678620355182708233198632028716604048970982577959855036077309203217276249413959377940307308801662514222334488958439122993346796346368580660651722639618238495075757834113377660252795580920935174833047639303424790092465054522352188233228722473060053454612760336244129700888632144965392290035963823315578035604124369305510113208380870761250712833003794324196402934717979327478071291101170088771633245176305038259648887662134294026422997442275283102364535463672062226231831383379310628977338539036772797735984190510892154804866535405183107543203987360291755396773833886756615007031154894352227323185521176013387350426041233683863097374050031430687022657017629073059554477228221283603172662149406716071477944527237227252115775058596823986325897267382809537032809784040884142424415877083426316054173690867175551223150405642959542662963229799250317046627586984099558604840151056895971665496779005481480368824342244682026126715843038321346120518948989404671477833501119710663735213255227075008120529369047658964763703508855390006849022867944862160683634046448319025725768368019290227481625149384143294780198566423718014677772980322420460868779360872677537969682186740449842868628824537905457387583089529439945188100677996854675661077810119383629156181521421881656584490203598283559150362973030535260141534662859025678851229838095412454436207018465876445883423988385234648805161105151072643136189199042025185464520367869927187659890926774915961966291517391807120696528465205891026138537630575649224742307421587424373248123252290478213872619073029504890576286603852503698517417273894425814112282527906668918822367040577450027855809217795114114397587328238954415658739238780628562431460674313546919405081661170757148415922444171712277702796484169327896083812802975900812183378846552397515439310377745885927796311427018715668262838646085703183568898764669913732743628672065760484042374474496385469039052513373148336069698683937146082467189674768966842998822431917832328273922122573271300399981777716675080115724064855752924394042781261402485261324181427223020759501161401731232595705863934741212620314422165180421611422970732500923592419379274927566073657911799210175395018369608107858023846943281708141451219258133211569565169269455072465866052947867490363928447214602721232475269878490179479318785230641698942942447201391801347614679469724924359579443313966242184101277855572075355142517814755459545243242650713879724737509933778554878009465647519944354752825996542032045433527429428408475882570296732490746976075059523046748236068464501890485282848838291536907528827456318479792260651876474470580711950915527654130262738784429139732318398153670218551243666816648680216146915615972687588082420835358279768496468592724119352571808030048198768454865219876004123584207141657450243105670813184018103667364348642428862675459791166112512324170717553097391876364591303198432257340549674294048520852542711122835852204065381189066634729145707412117267193115927275078268868983156237261382093649698426958754055782992853672716270470123575688650619659048835615333435476380259902873445622058653242582479658527913038513534938442993318808373614406518879875798923829106333161427248262143679202859039863747422382978066792247246859308295872977929629560260083353527292295490809083936378750788086562835296823228269273079311550131872194743008938903489182291046116258813314913956295417790677576620532500002165534661808425969224605606237590194245304707157068067171018014647645941599921215379678098578820636388592338911217368186774371006729845703663621680494068111217135115639038127854735877166738586351268347990613955479913842712852978460788416618420860225356158367356091858935901688726344679996439666652164453891701281430323194085487393269350861537469406425200256476588108883509950304492632310510219854929018520685633401162184545344496910418496139341903064226981000555589118183126428557223843717849866100306272504979851350010876589369254003181134900926310476913763225686899592572808648320022216572058390726239294470050646600738170583527922214402243154738406800942073207727642452566528404845099073298949417227486870624699797383317067085023199814599217453394362695137746396060734849733530335953706201959641434560909454608545474405881214256054722243493874302143501977515705062502382302119053912047186014397789086310445271874288851433311366517605851751369677876165975437412693622641051283377025820529169831553270226691518683088456993308268906826953968170568350140596859812419628052373100914784159200801856834760094684607925655523573075137223018462735334888030844149937272833209916189318586877681346878664813027766944563181846103342995226999631603661246347188103897686149468586164482247421263415323333706946718494140968490777915264498809743263457071947901595738598910449418054525992630182732312021157248800989983618834425289870862475683359196796070260936804207960346676337767792983130049283040631044830588583691696658156431433860339825439579277647649193135279284322415450366084220697260796923057677481441026342597429412723212394943572393575383632226466563604846866501883271648747916229710901015336679978764054889917581920749248205213612493900051909961245955758227929886126376477081938680963673141000219989331245950172156228667401228596584806074826152176575800150842823097503340051740475139804575180684651268765139468630333370070160643914452467087101706140364191906472483012093117087142300726813308566069105165432669339559614484213199629317260996982363582468964441513933639939371480101207794019277212944587468712844627552347058531578542619518857174015324050065546280124670615431925815321097732137354944304183189713571903176547424254003482528461933734523993703523196419581728277818805665115506336553170374151175716191007949084003573558490667247191457374343648895554188393093989442794186895647866281793262806406211254115672869539500951350084887273403811078377027192699679155287009898716355096196157681479315951018101376629081472175663814837763562280986698170787185020223118944962794401389982083138100385600504796582897730975033668372776861808491633958169101025712652449086751082795087909635626846568559310296882085972984736202439042906491850126447565076306986488912044483067937035788838332652083872614506815051871766516566198323040493004030218903156206110635894155132149465027510128163772958497280767742120491369440953082113026634848560108855176100183330996686204291636109795476351897511876924788564265442833166309077628783282491891316572892692530789330283701531007233742387334458970522670810767229714386580822241854827406703592570094371989779883636807959570832557482552793630590459622429218893213489574638369006755089757805116971378248769362702158468187645221333223341760514032012813961490765037192949031016776034764109072763931945619122172731555804272319833242197731323879756825187054983111740105705312233795077435617151792035138760552246323166895396980416161415450108919360864447685624876350407188457973226613989287373477847318293358116483131134042903366510407616343700507766918670715011870161218445109439313295957745974683458368331239568715811836953879192029070343118969131849868381841219833475239672603711456139060286152620887459395985460562219955464765783123379634736455280662939573886881524780976519226979386493134402279212620175532479004746395193137851597002122283442874765988361960580531015333750549089783966276148611182903404030932899356188380880612089935679514826936026355201568181937191381261096942820981530381079439494776082013746748079541826784029749597720815437803550156640168345777755826980906881737064957476558158895540188747182866343938706019349523702485125958833280135283015439608882442914929320456995854281510689155016619214582989452704806217601609595709823040265659676420038094394941171445115771549758438584730767032039687866957209292069513153951280400949584273448904871703279229185699471691409639016913619442198043346329790844612005514925026383917239303113843661064136310164308851168115880070943963397926318770618673790217261859481716409926050432770606658790613048659833822530197617312768754101880157615524088900921002958513754275210291685486758054607820007239101647359516011080729072360392363692270723217373238428410614044508470233807046060196597649782264847711092420475005398387086668096758504663517279877069386599973360344044010336891093258123169746650225616980046037245816890591755303821371483817190280566146973494284308965153853396882974802574725054858036588302969121185602728313956217770002409270899367739521758901795948045984455638495454589974745388025882776755957617749736810005754320341896438365108807451650737499500538167677977900825952937741142349331280257083082548633399098573377623107561618324297424982924004684093093682548056518659830146998302943351748555894649859288650693644150286793939061732788746120261145047795949459262860053874530743403618806677285753004447360332332181400913985132487636632827385214502526997209815831696034378734797102195172093233193120605069146859850282114301351153952039254311622611505454485946031543512831222029008082540134775367708486184337041219338623624206030285335722900142609645977812775001029156609027762596627137596271026751110970063524725656580229760518999834013657002572985318584972784319861262651382223093804122559612918478683973671595734549342724977356285749511677370546548419651635659702261641672652558765766414552717303162460217171542905959972966008016703321331505120163534616424313379733792936302191455621333997251446567401465058660476635896512911895075715997460716235246929617826869771541082544944517995813264252454998137308612999346352010811485077933643664138124298673388824604023703548008390500450590391839544764219942586521977645093686532002056586198130305190975584323524784193473615079516085841637055288305254916069934635680305367482896349364753065527087969921504442061272021774430024760179818018594020655115976397081889603694831904449264844272565352157517551254795368563559013440566018766983724948073335777376779800152126826830617366367130651317859327203210076144621829499611137996128585126420336537622281486257821630648941639665263972435389289375116691851950824441327236076548498726841153490948491664701007723459250885362129520668716540291191535811876569920081459964204643056181817390184231362398621017302920524478637135367014359178697764680642708681011222716300479972342630865009414238951498898960166798797760741532873985575758244343154099218364967815848862533655628191484688981814210934489538460143327403118794136161326441455275497871475373823117848035998752181678228887325631367279102566854689067255695203341909286526244434492485006635699083940764841317181977650465201241116607940539689854871406315543101807074009627641461776468082501688059293332169834237622930360947000400639767388438953497979544497838277710506850053751813251560410031476892872005502881861196869880598543316538936504984310321508318037941808261560811030917782617078501459189032330866975575086527785268798496918803205943164449022005458665222806864856214620621262010623498133789025188735668464841192446608766468715490851990572542166266047572724474406341276365168107179379030671544216525866876633048716843664352451973094080774306522233927679064477661043075894652593356987489209538448333032716538266547770647504714484934544139941615761330256992325719643985915646357640813256786232036920849370660621504720614690998692928035607950214100298223382471480883991963010385967708810887822654617694933032800262337532771861306444626499014333162681533311306381648079431120550407685844529075099002487447483058375799289379118151901325683222858709070118743903343487543861054464261026217940220409520374593419979682047464790807342964748984100261615032397503338386708559378205011408709917818789605594580845468314620835974241240740406508723550313939715836012255612326956688130638249854823871806707715589134975417387151644562382401025764685793492765641025172503386185291963000886932656382092396495533143418727589600745464511364286531568088389307576051719925802784770294911511729012236898776091942395388538500814168806402791388431485257456506759416670415946934880649254388164321958324169184377650262617684430871785606763824631282010722991077074392062156439021911458375405006426731804806279795908996967159984892464100656143561502361554717974785788108304797161588192158380298636546262867615486896700069181902205289944575817942775780770023425909779137938980160931241019595055266500684390403425324115136622986676487768956997230864371369706974671046162769446318739045409199897738251580739867279566124215819093644203187097570679678776042480717113475622230019090885005414344866114174062920641124491300440096503704855600600771889953487671460014431161304072760751176324951740134657548152364053132929355975699500926485249505496555663231390255590822673942552661992949787828250105031421195970951675796800668032103167060475419312599953243448362054980356343457227138905230037575826461542049077146913260710010067810103606822313497719133579082509593083848613801555602467950257265668179967464136506548599569341261671994881680368610880177485421396227048490767177643391934375617191921099882924765717375031169314878480708343638724970336838218969213062248999289895069807404560929401843026643317630191381838879070341536261965475036887445218546526286846838444578633222888200670173434797476838929505927636179272560331809464014859708839098638303796425325738669387808582827518548464686241421631879783353566106580230277083188480312951664779974972440575921980618511144754840007330894489062785782409189435173965524545876393102246946311062937323344752143018588513104953425034871498070927365292642221383251930722947876491165286204639092857862321848470778201228355617752138868370918112197828407885920425347871581837285738038755737127728572736705883156984467542564054681588215589406260765385805226763102991703371194277129016648865178244453207906184050843089883862994931000409603142625209737694013084119458819333512085910231122105285944894118986675151809173403559726535960093524288375970282382189105480856861725698091146236579366170169904210688370197253998098144136115597288798876583369029986136541815654876025764019992170227747815373225856591513564019599146987930743993033356409336112758414385724199365261118572321590933969579122687418516626133822054914882833991482993124495178312545178731448424378135699284153813993068243427267392281696358575274598088735150831688467336620409872668215690801437360100248627128179430364103876624927506953564011888231615346254636888361282499612398795549980488555529120970225670268592444691025311022095574329385055441942352890681318148736064351376351669741827036369003927885390720590319462746954087828961980002163119165269024591453354444739704665301039952707395334261328585640200318214727956972892122603769422267254628568945415689736783664003499066444457255317211879773964745967487603352694331161427114829298980129313501087550543043304347806289863570144740121675598800284298996436596494220131733363358269729501604064375761695199679836441916719193746617746322969262243714783155645275810189751449150678997526246532041491084012998906569260154680252838382908788446121038945722997677907050715741798837130603808273814845970840307873210802174887171563636405932137352168817134102347068674692248442953361400655187183676818609427592925253972157451644026791665193440114000007053584336378629778072125868798959704130528862850349946681825209206175543368344077268581013634698626796540651751619400935104042556642921199118047583873505461277453771519680811834770211510419213888826370680730651449589748027460014468589166805139241892062401971949622173094138367336821015913209497979980624858858571074189883544766072360083260449490652528641231580106859309971131474737112495566394809678708186980774997806588177369449399271552497714574211379716604239240086532571854175021746638497919795891068249103012358091449132141753333234615774107479076154969794274969682921646501847727446236726338526180170233305994924017180108621907166140811357360870447093414731398219227018055336065073184306529849456327943487434296991647576494032796101077994967074430823988001968547519359297603687276984226769018035014199483614299137103599379665943567780137101174783806460762376300912061103956644804493945744073192033985268490453588526423713202968766687128595410519902147599321338585053436042499535059303751322428503305152418996110830303983642674147831317995971566922412203989935254766797590147012802027251805080717774393368776025771807475398009018927580069448851916668606137009962403953516652202935441413323698078455725203010401711626528388828263942855003899215662342498395259258459568511822926185814123575861695372227039096294728995505330549362618370489629791819767576188712586449302925552334755299926668049130474834431945287924528654247390539308256953052510143034464970529282055900244270977155882627240423975220503191674770030818299910345626832000454718034408572972666480567086756811082096616565183064785950071042977438166500195397224813499735673447443811091748721417529206588000685653435314667394870032323169380674332740324247699592330409653388732810711118078089358105200443183562629211994498883846240803250251471541876475356113141110709207408888376805248377331472309609903347257844861183344181358761308300804182878551289346462938535647142353271682903308777165704407308365160025186244511043862574643186712414689573317253888160548153463790685778922331016353175144931414102132916686768427668231953395376086382303267718109896413084648591136900021410811255739298699101495610748254121482413739135399621466760891690458028725832502048710383457538024037508831091597700899585044495289256664623024009670912499441868232739710663664965310204277115797062936252588820152119019240068901949781200574782886448756011381870055092743411617562305274446481184115348729809249331401111172201583333972300199321588007706327588489480770077403649034250749896057251995899142851137272820041278988996139778661396723934057849470667790156012762487768307570247972367875943856908513581946800426368490409839729865112814143182633932582680654969871477174938280292907823647919478697639064767417438271369339872082046005321847142654248978566255522463592346171236856060478090114139320103094540041737769879685409932139461723593164261675065851453572310266745664994765039495140652936741281039463416507094006795008396403593997250772445075749788460331398221819144443222684143038756383693455566330298473140932526132175398123940302714233792340280427648033594395399206271260196087749631397236595714285187921531287898119805018974055711386323550629542464612308314804921885610331186291167325528229198177619550592875979695748341629090846628569248585950653505277734679799273000779044924210473791601403510574272877900445735903213728853242267691798984729999941633224395160439909753107806245712007744944840763226193934719295294281659567724662520241364080768256511643040126931977188753316787400083087544487130598767461044942116843263368935874626274421403773169527901839855653159719135753044936788486584548707973927106291293572001790560472046056726381233590170532995694320952284604158175719633974970664912497670779331312787709876211762152684093563737083147040287603812421297527214913521022846919131608032572355228036190955916814746526950700797285689177759149080838521618792738872492570841290225994994604950535943182303101814116760732350897897378229324909466131677079362371728405336501541406639050700611480393193616316947534210231915317793896264711651638982103195358591701438596315023985004686170101109953707128397824852525947994756826334079978752533856193696604425410629721295039796600596236479206724922335411457341847390612246309859141188484766638137450627482759547814437544626471833373262728018572842548598777047802028914502034978217865905235028621122580658182094540887606611598474218081659636193068306837829836191221905418479024180867571074853355978278360942279176537732505090070359295113107762869252418933925787595964335948054671118497263920447706199925691590246241155976568410865553123370351288524550134254260348575157646527754540923677844216833704437196604371729058993897221088405243306572671618521941122268799175713719881136028125252115574513170410214750760729977533278463813344486715248934915879377255985107094332071918939120504967432993700356860174529668859171019646238346298064552544785958269101080949776438672717535718448540141261074153805269991413154168022959292410622108572904424350919993771914023757677744785384635143667609625953399105549154510948831579244217375169867998440564944533929518973062429702463973316367970930018146889500636721085425618919619500389022065432356926093541620047876563705146769801780406007833301152899621615039567986364222447312810454717081918601215982905020593064610315898405591396674765876231782858746960887711094465141805075622126688054063128535229262208110415574659518007447779681386286669864728474442730850117401176231794681514320410589570913696835391449849129780881523008607293090359745559775374369999923025353076377314661695662115144761889947353079572428585765463519461711712574332646192849449012833796955319202324649766119907657205671287081634013474944018317562553877122315173079348630109388957999984495855272145241561525405960537439059029906698064842865375474166536701788011953908985310632361147683475323740005722264354324909148733275108559739860231778775007920258807194980495504828403731603307323582124997048115594875883422921061027412430192669110405100980574821849542187948104382027028090500856360759887507343687154192426976774170940608615500265717120129403568714709291918700115631953342463675661967814033893256239737127342632058938664900403350477340832187518758465712039476314846358309898366114152731281536285166252257335543990377217009218604122201125027169780292672050100386009801174916873064825338554911762821585699945667385281256099430413598118856199299821518078391796849520468945957845546336552638130588120880373501630326888187676588039812227237567947472483397953519786872281017304527959809456410891196594253465683177579487161851007932678288100501331083976619468243610372622586299994010069624472892946267022986178886066766242077749550884453453251881443062567422203368400626023938610308716261505079830839625089497739534320649489727138635081465373647550781417544903971190322755107973755773655411721669412899985375794332369305405151570930032029463002395167566559356046364073425456111596103392943066856933931456857684038516889220467946756822272646656158425407455539641770820912336339886388873870164297444709563475832445836272458343335354164685422514294632313004159416089101704358345007475335861065378565992606683693539472925085445290689819025932306602610407348011713526801807994460467925372072579114896203755424291744325240999747942392340289181894942994190640671313991247927588344047453734315280965388437279706715944526010193335313118928145770199326531424736121618895752467755796493157965812182111496693720928920064742202247917754151520218558659040223303782257787168573429563068904931098706631762950577358741949846367191179424554772769304850364285080395971550151400479256677043398237673953088804845218678359152660812821837287053522967669423237139989523610545145000017896406842694266534382100219759864272064100071984257232192448330770988314485994646554871875449126063923625658695945669288700185577849132890721138176726077931380224514504423358902067544300914186091180631266571548049109381668417068758376514280840833757057355925927093334761907939655472399900041415420526386240156050736975170271226830894566545279918883899624392936479010978689146965756466871314395145591676444634488786998294512497099339050270074717113536635555056362991952154953895857528382720373420127467144935532521613182344115955479007345652154164948382712677952515419387836675640156528201609149767142204188516582076217133629071580966371994786544775070393845833442795996049138428051791988436033846221162716598882198599406663363474648629568646145709192199645237828154974422046571209740646490750997615779079748642415005635000992915274606725774896095279763806000876106851636565477047034275304557214194474071944837145412699143053107434112146275274926481548378659591337270993776093031327574127097497622575015413437069155106761617501025969523979748458775765811320436697727085149805438513446557152320300724250304632674011026135083935211207337099485514680755236275439738102580687083330554420213210218040486847573718242975701629497599744306556253263835983154657309080305478563872448073383072117020232612185478788952231241100150038495237853619289532942002575954862937862810427537423556294972745032032256588605437483186707642772826597483705562706551202520117726493027679582213900745800576450364555668348767138507975755565762622494446953865724441974747075723060981363847693308146049637820234904177991650577988282420233589604963279044480269835498884730650736959783253783621293383339083621156080247462586354743735235356147994349253681144022518077648525557260206353292504635746401056079220033487967188966968772896520985276547522961422343547141701170694982089640876710546303619492616541397775859585893389005154586176610966618360773230454115346849028609845505472112522908352134678230497478200526017541527016140180218998072998479032989292894299659486713851238394305205645024650856539589497360981679363578272636759160587586898646685203089315736763755611702190254215751835480008894636448660498420117881867212596929612864217547645539286241783688573039371877432651887214735428176468246833646533960923983934621518245699566563801399270787390488428249239261236949221272410669883003437186303537447522759142229468768908936990216614053502409478006327483536367742898321090458978033247508067003685306387965684439381135677507095007040754228831721306764015568159655610484503860104052726013312534446993766692381889279861105629605288564904763040852321833270867466747807885483010881429727897038785546144597709589725570501897510622627617551616307925807752863463023100050848569673110034474831453572293939155607446353494540927696415331210310917584666414674805667027576382232756846285130335085555710331735809282161497590161003279110587251157650972477072895182856450291934709647878298151944364282676767568885832153482205000622390008456831290896607283553329154229485262353218985953933336800972425192801578680022892350782169412081159351565308343123868793262961495393371277877923983292408584843372871477850687995775239756116571515369556640188965315988877607893164569666200436751214396300831269201085833782563646117778583222185750000683119695921069303627126480800656503856838262935461606365721206738268868167436258956632464740465965629372849049234193828894821239633780337865417490439909554536263849598198705887227328841610544065627745778096599629555479000698641114785942363562415413071636752112340938390184977453882184074669522210998839423191113406765522871891514758262992844394370500686207367173835732132878088972773939738495064638501414821422136581477434554034793188233038075309397573213123685654632947213964305451753019461734037750908578651871901701365782071039369057702022081863362510806844505410178646580924183466534450589951140154564058322407471927346346910130464495659429774656527729284691180023571621092469400793198385804243082773736649745596985203755249731687142876107671233028140128436748372357644184541344483903848906323695970473109893355306092944712036022536061457412247784446600536430931381176949074000271077518119976932277497234035708514687211714121360659627041713727013294233389683653029558177755858601171038147995722055707046274988191939289953202421828869679727513402865071115751843388226999517599977829119381161441069486834819951579724636326051775729539775410989079267529091766779868747041005422889436027141272625169502347630204095835491715085701784620895492977273655797750813349152036064578700497751465984934416497061152762008560744426466750020590102592294420616177724148398307439310078648470192057070445295780659123718015146605153590079932361798844466902311927323061615364701045770971387482900357702948358961076641933409001481395008401525366993321860665925881743801153760232666741509441503878994871610166767726628126838324631837037775800145603197541560366911083718870104010056869044010889468049139521614494835528058463338719111757870954358638742772010645332632325487957139092040271364841403897746837083163121494711681349035909111212649468589802688279252670272938336723319102378047666575223479072964097886530202582021378768631636460166036859771481240162868950779592728279310219167272308699698419600457989126236565338052483992052551540569001476283169849307629219824606787302891847939053079531546020377949738254453199595143784267943983191856115981062975961390502512877276907350330158699487432285535246147306761534551722964093750143195177588568912986947445029094492000941629165576639238238777424459612429631853160005614477927868078203423451633128465594109186960016646163532804130240432842595074940137723425171410499371820971969467603154627440074749477082776506110192630391687294509774105526971229636624888896019371024483937027151161664388776555490055468959874797950260321291269398905898948573035416281032136270540388343782159897460105147348775679822455282813532952105765438312931495240533443069816464491499574981220582382073549610913574825063711872638522551641058232993524599830033243911279128905490153517930635179510081559074368068435686059428983901734088463663747295328808045644158675029713708405498870832103834494204342711425472303341990484730111717016652124848360176624227783240095451293002815908111137113600012705510359457696947107767350253289149621959375723054716296443196691907557574920575876250685831011654726764936742777509697728390704830528237681477990735322029508009004310111096683409019025988510158142514541327244110341413989412958550964067409769892989615935785772890756612196638616942003015382359455209833016941196626634523611726733048393170118688928902755702853883646017960542137162941400329053711141415977133341701251824550457760080420671966774508000155951324952967761917268740684677505846539171404170214272175170303256819133867671030435226530129707216303518900788045228122944366929039045497290134053508420349642307686631781268595713405951425375711147593795084815198797390510397892683969237909853454289575091803612394750969566744397960034083609699475151482551998636654007134762135976667743876793092590580500042507329607729846202554509094305309432390866575672495047963560613864766181653413997460193654149670844538357220976213138139033971364468315240124598638874923163187037546065935344924146738763882563207039210098716048193367454932132464565647530741065618168919673274850089491024672729397139971159731155468281793481802603593399627158812498743808868587011587280143035250345450431039503525400741314432317254644876058683686242110736527903442727235188500159221749883636213520160747063158521170531315760472805817681642078097599498994073590334591421407263011299350749925246816857530065407973147394655189639951635184592711083536459791771956183636150859384110881976046549723455220761141910515830063921031038602493874903491298363783779211430573411638929531801227557418251275255663752442087621727367046472357521461319457827728872844189937891366731759477181385255321631714073588886667229394706528855978638627347580030589349186852185811970530894378705842332508051572837984362715493959198973174779863813306544225451965422767325883400442280329262380421085207518888284320607239853605359614016915283090737219032294653193816280511174139913631681420542243251898239082595010822941052187135434607315662768640340101862664515536339810676488477605823333684107849637243736316034351684407939774777102323902398924962989451384339296100366007559016161230095221726235431989151721676388013506865448599242358405873204369212596337135096371292578621353522426279960563540109052824798240518339537660398602837415825949428832018852996041820297409255819303007214212363408040259446819381220149093933703371056432166877798627434841918458931272442151903624236439563125916674395745992872559756018722603979065117107660082145564504329542949119707252258782171925878773085063270802174806302297464547316935340581930699729567542518101568203611838822826142358759875050802962929258237650974101582889146605072598354365924931732768263874637569923972006360366242489753996688298094915895660558470037938825142014675094097384872304842940467434212270405328548524951250671161219632626367890560685217413324034745732055421126472446175074145584106067569110253794947928589192328365658019245567060696046622156237358205660286175248392341780963312459284744723518565126898253992659407970800525623875320593641794482382897014122116877277987313947678808372138890053162262956979863989402269656928244956410625850855448708056755287124417950202869076131000034910465956209162456396866456777285050796237740919670004989147155582356265368946864074640377223696645463555065731634697591323561312998384605634561482170222297669847553768156298187009740629698816869364396084071356766881407378136532476420941502459750942383635493290771441764683265182768142453226032145849676094584146145553448793073877018822371000272855542570614312986771305165948570822883794827905716739319142988113459231326235483490107384746331263042656247092655473965902700721205278981087181630474387828226019860958532918926786348223849494379017368071675230169244970184993670916816158456500986985266483514110364446121845715737878744318079582332286177978950813514801580575015340553738525322289900607507467002886943580093170244299967160941319229907740881644475909681212061306871374725172924696767881497553451770066571719162875840587771559752448085456688146212619281681917513958512667616292562100635562520126572559301152460634895628636573144234181469628684552326332282385198422970257766033000702468896543334036274788290066793933957162688687298229814628890385236877804232243610364578294676396671700853740282906856981882734106579108468194551971192756423504217536026697523377094338000411622903413279968357509756536333542328300882637437691338025102589397521840026958880550845542117291698998640779960941452070255707202407216893894970559041460258510602026070360628471035976245769360304374943334861954469755547394869141338945699421427457237839202473708376733295237900716000169716838830312868062730923224536150097434970605981799611715935563960254030463257339621152108353133406342491930636658134339104054428873381862678830657297359329658328006411428846258770601750505063219763038999892775038265103771313845260887024096759718332491376494931586163219036839103756021129850097064815770287205733706951670247174188338655451027634926026868016088591923779419690869654534407517774493299360595908125919469141621416304614488550083967258104459476718221353863305986546802003429158029902408940757348899989892282332967246728395533831779731507072611171893001300604600922079262246599354200478496865802216426294270944875783640851310351546441777008866096094576126347140207617190403305052502535790415645640047333381399949863046141758524261624396402436419195621470591097668821697914523689285731538383247533526739640911318924911105522495619283313432779704349096144851356128276623069077455334851303675953696626650422779413583552611179897804425095342900391299245701472976043257193425931204062998686478015234118321710483529502176752325036351746074446551293163666156225847673874961489844787811084394792073532628052035854839766078200600759346289745747045192473800115801759417695766152399064597291061819941409233390233846134708430384166181940559117803640308822833813598484087915994252504195573775068467583709444733474750761235650731382738155880176380421640400223676478578680479837209905184489775047813235746125114411195640580804763751018306215239546906148481317122686348740831519456706528016869205753361239651173495729107670476014167912072376466139431761500962596566696486204735256372862251086193378035151308810936977631039782446089567126437371638685669395655018197741800284805070484264419580153036498049257307213734699733803154622593123163290175994473860534982033647200388589247517454038732528623277567586183100691871551595367122014877017964887719497054246534761823497536142919474357123793725203705362516695178198454389758764801364678025447184445042594090965031416379134839572988171112123299868409146533371882719479779835324076736355002755933976843836120930919717659305179527051381238598286215788759362832473570136122644921192026504138794251660915656136024646954247613563230898249447106016890937821085864049829858127022801281673677476224717224115140979276761194692203676770175079435030330275076241796188409968720611061196773315785644461753561564568264319663128202733025776407252174409751183532510891317208488394150978990668605574834441659116060038236219969520835290835721589499064966422857260273434045478684176628527982170988345688129905209974423544582761829555364980853506768857037568941495723995097864973615584828079993170405645025160236579215772890287748350440726058856854222644978019305012203690203398541195267662572304555372049630683951104843626062367841708765344861308731957351039407138803647553888821805337077531598726330213450554057008931483436102431673764723024709484684547980619994392772122231409646406639202014485391451532717551795857394202874935892848544082783588474584586915179071535148249273555597849791821826056163283779528379329099436034026990134343616139185863653356145280993434441845019315016402089053853724636875751337882247255891884557804526084507304080793434664410609287262313799187411430565543587368372902656165111717688206298918687953367668434936870860041124003660572808564030863050565758073829922139216802018469533667740456783179054731427798457599577595161231369839689842526787046319094476439572227537164383556876795397061263400279786352918266137368315989339421092511139334091594885938473611275016031363680607137270749376267435790250473129562079428983333336678778955509147650273755910164196575272027777183743701438733530638697987146964526735521815505988815711215755398861414086163971377139770034763386597254193095129509854892983056888723028577915368234772608470074734980727244648824358331609492071422401018690918621327445177659963012250957299825451918889080566859828400570932044961492427780458075428785216367064961188105389558711302971649223285005500720824026381408881059465396419520633581974999979849492450118866140431645600366230481098981167204951740642586824717456757658613709341661611576086449715909644963483096407907223260665486348141057333080962825701630671447592222248673724368192365163325928522535570271569121895115330943709376604421041737046793048865866343546321836683962722445575393101630953201671013892706810960539147987553517354037633720668468244605927087968398646418755058101628225276233739346872993414373004377251042052659232072270070636010685942410369960829102057687200254550132829662896926717638442314968250238238701833029064564600085865189736501645161413434741671804286418731946444638138084407875050218898033039377960808270676191697030852788311976692922708438618856525159184528825307322655676046040666208259398167541786798626925644422719548120611531305361917748347211559139879193782047737454483282439491416223392818574400443655008418555461585224998658108920937114304790207343566766576670226337148479516284626350266564627412177871058247367832714967928978089998950208046937568238652743858450120220208522579829001912892648723705353522559295918810486032244996996329118285322909483778651458456527766144389938622272191076347807515311529682695403796471085266586212285143840422386392695001095704600726893083612716027353206505069616245891701837907845501935738676560646947468424198200003567219820150247118026116386847644841560409991372502043595986797092722078592032175624468790360171059729253997967272749258569769385535906381328025210941666946428693574010396378768081217547517612790404493282597827386924147331308886044176669988007189695912939128832612396411888400201754893829757357798208183148650012233307205705849496301873408158504265616579869913826010044158915921541022630568246297990572508582789573716442431339102312442704986397192345552366801586677899596691654229964629113587659615841025140599668027655512966004769889622180865079365118168751680825191456426298169410985858243004914725403399425926522654866355492694286624165260983501705887707861512886779605696421585877713467297496642817847558786565442525744115857802521196811878053819622112774873630032463639017094731092926780539030453091444531725495240041633307392476539225616184382925653865013689852705582061067696510305570297242854782647212558643433734233754030241845290758285555610271901429028347638253463882041279334774864804023891171108437708636249967995182750486334500148137980696425985594067390852039926678087121395088316269511858518022715503409506458105289304869889885992091260412562566966290231650742546595489662666313058423036670277941047526424584142973612697527556971895895206327473111596387294545582758364380209036543681992196961350170023269323129261078001577279657188824664615727045090364641955129405347690830298963728147949493634408393489833046392806322834555162954451073755215094793227862046377130652812191230632697219019406040097627118984702795656537274995354222036502966507878523233340947531315435724855957879258691899978660422962279743879026905802587968879127302568384215289576743921779001645923848400612282964615913140920280950480753746616527533521418666103424055410915065097547660599397237214358516588543187967608119371717855448577168497286452212568387266693060564447678455988286712903847997409875898270292295588245584786560473845229924086257264345978016564606723088437001247174216627163592784466180420020238006461933026210423144534856624790913722590391373347753508162676036433298099845379653683094520991733807002123332664357420728132270164259033217798776137003404840728978864768525780952375122476644369478991508493196989838112232763073694420811589657125207735766390566303449336590426026824349336215879066937587279298776558126500337640996249623453933067383868696021434298975797736592689068117563064046261261116873084352785081036734846128585765587228958390683064097836413302478523973047192964516946342191677684051761531604115425071608829361648404238155733353853138912113488855251505045763191581054647531454978339018840295329675135177169430976336912061893255555272913512811051133432209404990201515656110356593099425388044198456021071214436353236438918255196626198078293819116515011508230989463596005765497249178228466045645541492777229717097776978919250070588110870489900300123965096603764665107038226226843910300730041143727647469271918733626300333132746602125715869456823230095195875917493166534431677227928154976402011544176936569462240829089703160537971157923586059243785895074611307016690352927893926418526104762632641817819265799998208662888678816945966786440435594823736936171536277561702474423431574339176362703891853937595441465167693992081072780533947421588906455519374722054280743745117955303852435754703359387553260441122879975603615644450532277904268383790810052936444885569611586014746589083222584444195430598834721188279217319057984873287391561755185997441157340273717981923452213888560907538906406370415749400424049565945029726732955261925311974031842971274680135791895199525218157031536229117360726003716148388835562801256460106038378737647637992454918753938800827681832519723384971553653834702495095490069376144596927455014186066825666800471276828500943982500730827736895506151088963180109506922166782455670781717258956964922459276561797911787662184323577902298183710381028847331733017769034620880992596414626619838823685022349907664446794652403625365235490509422716761741614843868567831169319577931531841917354037532881771447788959094791952212949643914851182160592461611723381713527540170672092421416631441567776757490448170983188592130912268431727742205567579600223514633686107711992642180508977580850606372316235763712395165271707662332223076985579079973204244679755758166119571967304894086842140422614653095970264297681851798476893887515865061720357553424256244292360773714790570377751502590651729128330963886923290225870547342071897092085262718725089474959450760684504824346474655492999334928428519978922441550008170331812046634960972950083554678319960700093950491418346416768049646533968494973654882818971788342198885679102923440244958527662753485179821858432058670193274139981483808037534775155107168724691932360418858789547205782556474456410944196797658643153002996653043503728269043447498722892790493949767157063992509743276443439459123782003099423165767691313334130515643698372384315976321705924626280918295217355107757500392007435595118358082487927850172699515525497578729886866741228785758281695345866449181046810824974433551120190094238457279162948628474642711668464727548164653526085058058899219803779749603013869935817994518939566768156166059884596578424025102844331428223160234517597293556075019988006876234126726306594081695578742282919824387962845795825086712630334156450482195006687964969420455666963426405162118840908137736380197277169760919301099604773394743413966505677137811386292644026037283287185558557090208038730336494339301174549204464127657087352146939804687518404146948796915826138069009551401851279171031757929693550664417023700224445355322801265346632250018021948811463950223720045369934534198774101958494809775190304094382837923462825893036651197177831019812446279313235787262374994350146062190071263547022493436873389465795558701718604160523988267049162606378774665495136273697079985619165337042020215828290765878031050806467353095021331158964848807919254031193047557311474753438560531134964520243011128898122097090950725746384037979251922668597125725801043261343391101487038520101936732105567414191540877699769906873840899649024155600445033436976397004722207471228131408186605274808136211641987139559208997320687614026639890819359334623249793414783604663179819860140086716589970591938822057081127273956514185698029534782820745485629537134854421165758740006239750737943507181168470638818636357510580894379020100214299960570185785698334832057324009107231469390342915837063862411413711749955698686646271394567025797385615068247369036597176821385591015866228463025092850443890680781913988900541224058959096245601735712139054606992784871809720349988376795295582682235648766513849313195952210264092203011579388793742908598188523507974728812281413599861236248133666953554268188257737291803877549820563714438108135105570860995935125044734109008390734746914186508114375528182814603523648089631013522008043848972966795820789017781025829111106623840320342619092276594310322301520117484703018208715720276464864771898978719749746897190271379087582937165169285192387814625312754780119847406658550290863239897000327536407502363745418270816439102601216142656604061860934585775257848050283635277483651059024905904265876182247586768518953624166821081023957082325386810840615952753227266412093109546131220809161353694450622573499867939949080067660689024897358420181923844066785277447969308188317590898995950351449405223606013431212748870422926155487505425577041198293770837670922297888159942075114909955677438610338404999998332274722751364243825346368996196585989020162511373516631211122129315080970060373535684919512552311339421633139754024425503807571773586523827479704479065936706802448328866269041646622587775223227249242850665614700531784236891124166679298877440497157625268880718410653149284767521442531506682768843091650286278240216400663764528207871544748095549784642198723411155674574472227840864355349471864537247559154472458839466186655120795407863886760581769821166894142649079920458684735938438174494366556052030788383855427941943672022085336004934403861636644242018034633538480837325143478434559133299324914032789417429778624907912216276327440832240175622665011070695062398242157631885376852494414376591608405989575421239680437096718382556662490488215416653842126164093202830154131331272757160810942268838850580738328267463027415920445688635123233472938436457079088297285259464581197120521833091012405664571091304666282221643234450381653684084468721646823502470347020854440131191476439888776878903271849667886174007845794263059335153851225007698936701193788388752527063596620323942854564320804973154488892770199797582479670117692356556355949052709491709624689195954568220550191570493067793873751486299858947230390586258551204060505468890718005791387973304683883296517187872115087307823435078494795524324844317364083777760223845853044523553908205065885257889829982559217338907843415001925577233787831356563960137171495350155993182413760838586670268872217964169757626473905492899918785215179847965644155867626924798627836745710407952701322727405054887682566851821128654055792116748353045282739639223419245738795516993176914705169039702253211430430605661224833940559183360696938168719958621280120878415782842097544111540567242568914770708711631593461829720465833292304762738445167942887854135309711240538802602361404262160008607717949361990705715825101032596263543257994343057857347061799132456220810502041753593158532192259149607039686135647922315641706917445301256006676889533210811036283553593008713023415278429666302967261421858852140193687860047094656754705237064033132129652624857907834444151012849757215920530399833700649064600711622787874981586039535878595448931537901753536994731480937270602800212183136114246469743314079936713808087050704689732065241330219454466552794961916567931353131034403046352520741191965472699137354157887925968811672401220181717788348935032975047814128288280789989868751407232450798997091287818115672526598707735632323190364927500883674508335068159878079916729046133278171294133919730699769882694012055967734171369513161804591395144806660766541877895033024011688339611464403916062478958817473139426450227976444542124395105319992576155850882693458675341008569722716670752733725901009228006282089992552912990423691712397063405027229361025967274876435658686768791427741861098105954449036906980373344776634687175884272681042383920509231467283660299529878988550787381872133419618843400360585308981272799655180006920614479788271055486217760775323647929390670705791151519772638133414027291471255415456534364633292728023403176375864120973322774423897297245070407767856872187983712545406501636888961717018331054619605974499465627208196313716947116617013212791783936941756639854135317134654332396597820062689221933474994179030813650913187567489598192412170814088403735994257229345516872495421690363247960921295435931292460006472655489020155799800518986819667516196746468531205378685857485808626290398862663055392297787259688541495420800799020794635293587766344843144391752061235201474154634893571807343457899246880919578473457061701857210801910308723511068572468171025343608097936208393489337541434113696413526666958929948470436083536929207039056979172494505434929479024917872248201714217901987850200742214011788463953081697871882546767455108739052426372147939219684107018873264885097828555183381043203290558265968105895783863162718896175271315543278304106699477480399998943811796742349144519424926910485906232339742541780946421755464776041791882996838706351797739194771191092932016130134567778637952034234263917078015714391964340747259438801955209112363407050048696486030253017619814742950263246965482076898718546353396107618231791114784797152942837670291075051063692004241210328073474224114077642249720121875781489954751424367355663709281794778911394552964249441608363921521558094947175531047286585844137039296213952795937945026178642324136296461895221806706731486340348215163511587723535291495334016963154256148780251316466261502603963464718951881037976424171739585523050838694264933675111240808046987121071516328823047653185136559603220268945968814491527515955813096850246007429172298687945635382664054228405250261526896965142436065204821228773600063665187527729298054076982361173940521402315311245656358014568733328470713815048054825107409063006343451555091112376102192319825718153253860807931200000698834516818473383400430587024292388843496599825427186765453105041119125501111051461607339400148322822896061591524457003169377868007160150519015436016466791799725929148982102927391120571896310824395538965790519546235616035664230091356284740010146471713459385087288644257113550339299741523132419970033059226824326850681043005173794236050460772634130371675413748581998871585027814774140097590250330868693220401862350420176280676477059802605078546620299899947150803364204438259197887492900186833244505812304720984234912048957010146663484377912513591246971888245092781066945562975461872533111221775650428133013495513781618433600877694901979921360671053468526472774212830158592720316636199302745639653880753951287575567642772530108269533055526542405840494328968565755958479320114293118977839642604598937873208530072978631097421302431502801703630943023529350971926540241922360122462837605365545724288538670893708407356660722315692581122496812895266197752499466676889254748805864165127760460788106385638627406941797977624489804651178339255946237240075737021750345375284328110409357616450723995541356147179692021301716242771531976854788432030475728156244117787690634054906163834198079551177826546292894468934623306010555965390924809772573812909457856583888246296190170394786794366321211458471193789738560120077192046581976450465991770003235043160986887131947146501823451208055633708430914219989217589925936178346449276528391129102031474230913196097099555191138037142012370524813390575112168360025345289876210987689811520425638630153640131569776371623740325252719511427552189379913122842726377071188976176008556147795688180761792830040168575758315369745193445936383939679585146266489047144476631264149656806004262678626045408226576035632964635215352359473947321657206112639289280837328293224348146354249418673245427000032556973660010067975561725160533127685303236939016409983062776093234540793942775738498053203419379885424562457866981423717638022109926622783256139173859531200615095693083922163001975753641595923763557885207372852242301266680766854124994562272580923075161279276603573385344138543860679594933192404320247307586593054736091553921828954369191266748573324578603400863156994352320642414377538802685641882255045073279607520869764021234098255850820826553747351344479628809380041236061417382071092688063353880027710156806668481403091113829862341718222540231330936828093468217214913068166196040137300330177623135335321752243570998054815847067319729689618612737506923006348096119117397103924269534064880356600630169129680040564111872228350004674453083792049315444973788601075397622767153005917473154139080178973463388326578610249395059991075532943768672724601417302305902461137621578948506661745190808449090411948872768925212619032130151291530340522508048399799749751979075750730509527524301732175182292471857006135189219508113856221760338011101896843548297783707811432532334673485241053605464952451743441479318257944974721835199088332667162487414175113910230605535476906831742101838756785542823429600536932838097349813640877459193942631845011024783098233804826887627244995023109299818804091087894156526687333254554379447832563656739778436119845777741197685898369025173025015448792367935319415730904776849678853153618392524677006122056619634456355461240993311547212778139798771519459618333411004156898353506606946201037884506674633116216489450244870591860165245460085655281122525182101722022269378577395081421313072046661996995821632490420268657842107164665721274035230027167690106140841207935304563206085827253817042947832608831694857256321361078035916111601826802190378440814596845500950443259187223611136619202062726103826295077836243484565081912524416885659335545550945143285547241973504116336572466009316823789551925756363550073532644286117558649733140324393157998478516950897450748601818709161274037076625897629874841834355992638620364844823036955829860909892403195545568725633721570663555827802210764601100978874824864088639311913504004701905774935239755600538728750375501120219245767295803196962443063166567476983754576743336924911077926694076120925729205062080874681432463358121073475583109513639448674404255520011003729427159636285310296145180268531624173100924172294752441366671452164737812311382029828285773597768981091708418206278052668745076428651707420903619550758002088224502332745562170339597088985414843485666526508749343371361484964724439169135284326438783983929383428508089708535662163935630493562850509981364605093419397902925786669534131581813467615793104088227312228488411265743757170156703440626559907598966666889376850284846421373787693581438379753375267680814501250232011827146606914090644000992684611349268847204001617804350502063249355908670240053490069105609995985290470578744190178241164390881591479571025428235585902843519834693706551678036824425807998674502676394908862839282501657112586418852823439010671393095881416783667843971558235758826773405264329857099675679916361801598647571803242900447097167643972894402591926391624054960855911150557826336789421114220940244280311775805272080918018401249617593139893274943434750996928705993795280784484412932434397471480846460114729011563416224844540370258640444386630833639312468693491523146531079795470292614972546851459566997398970578295299684163282741708956934232878259106866228241242365491006500657541194076108473385069527067988843499998635817997902608544123065451600320743831818516187734079633841040473768076633019199104130637034244008328153121053007084400705134746102083333304686819358952704272352703727701616379982553748345374746309673650141781820388637203428513294489951544399501852144261401176927945531262566983552316200288987897568498637396593861458070233266492484115751693666577516023993562362804696132813229997427358933418943248188522232903356569928201309499548345777984857016073437514493856926328723629061178257432764122398474291437291072919174534011112422523531085704917043887624291401899849525690225804432545574477478635834972861913090422476119715699767581595584006926176754340843429644699206268378338033202548213863531002755343701592056286246795580296239373588936998874186190857042470408982902587256487479889258696751342962219875658963734438580503291105000818353046843923286796636076180165124336434528407213954745130606435280007053232936355154357262117519645193102690291706119204034272952424686901714878248588040634258580343148580288297679299376699744536769734108533600270257076392664972603292096500207333598785130702109173857636706189633851400282041503405428674323874759558802622757608910657192051129837720020932377045459577416581615803369267654237131982235220186274324864000908728031885233633950618847797420012659051951100142255925862883290140072731350841243368046467421728599283209647668079687498715443229148126461213637462514519290850831434141345579779160003989545662620241314242187482152398274452929091892331919205566167006314536849823244382989541114744855756971901627152953645271558747275779903041639301086608326174270589106642966577674761013252069112756824775624139586815363112691198109637392685624561871242059492981559178981083780771618676265186446538496466122189403328596419631565056207884414673305956318635430427762193981526753439080281346895516053643612326227408313104386773567400739440588800081965873932409660483358939868652074897271131537682560453822941092641334296370707463992004823933092044727469866275675546978330081890930870724701396158100676211831971921863746757909106270264961642295137155567689450799460428389007473729649130450273742242114881202675267159747076305213570762991267457112327982017426726382176996507619177667320287349206694670197223393536110702319034283858785960491999327788019087436074398306830186127375155273513879619058756958796147878186100279413709040242911217099456089349574090450019119143451279491529735951586664032555155925639521467671386138665308824147473638963109279645863300492229131590862732609491277734665198548864312795811376177996157394084456860723011260595928242865460153080530587969519527456789549205326267828840307663046731097929451962824832761917113377043145342718308209194216128875154372335735099847837512298392942110577415740488928663898202183400420371074447175784976905734430461497045417284317947677869672913303677809205566345363321649632420459202924548162485906254235010399139393432254407727834358741956132180502823927363735873670257234201360608534340167684816697764338737563647306829632084713964530286141696652691818941633390737874195139084283689699544130675272068142272675419997362137170534703508928486663899421202475702748793142098549966133550627399056702640900107529746718362421734201623774992167096784782450500348191588075954819595320237773901394489817499204712369198236834412884524440169046578972504963635318580491908208059713746145380393233133732842279302043657732014331915745095069406592900613864557376454215734511949226527230586472576614796299117731335539193206456857587352036284007052591480189183871239944390186829328412925944213799843757914892528999343254262846524627516228837208883159988627466102645806545703805331344542560073297989883260189339524139397046242885589196495133780386878537521909706184694767475547862757693175305678198970898676242370735362456447295851007015240576541322307557989078633688827906623435006094838479545284539675552653553881495496410646321976100487898200423476299241906987053625525746236042750969259320264384077170672795074822904587356049011322799474862964154608554146426022824650227601912165311502839697063517780013047034737709817457480543449387878550455858957033886254067762787481432797686609183455482191114269618749710282356392202255312887242677941779750424638339184130637969274871986037105316412777474782214420410617706987039768604372239610913404387997397100215903645838481616992640328639932677616359456290748290962689624721377937277523699787860725070612077902061568840218174203452998361672717605510203292474021430851606072342054965790505931636698561797730911789506730322950968937891408384543911946511516447408131364326649671155142064225404153348517002193613089904590378912595789808900998920396695525195437066548092238957761145214803312612886849444560603568504245668370881345059285265338124823087825035463232370077579283002714902297067231860270240644493910587196333000026036040869867698394909477218112910829001570978000087041551966700679598340512236570756042709060404631058721401672517749010934412816668870745321971358363111441941909237292412828068352850489385144118390812545452661755634039178921255574625713188962312711574170882593690845435838637560291265390186595862424046240165379131048963917801558195845184053273888273323103031964564113119139382812974688139315674585868222307268291773291969136600143692053751252984581189759424357985350337321205267266690620985285940950565020396460380284094625351867671743583899847857258783597631835418700561079016821063773127284898392100602421916389079882028542413521495786104290122344360730912522914363620761556077285904992888538317764864543935967711556474083391393015225576587845608803566059430309639600547095003062732511666554710409835467272364166522818423728044550056578723817780862999185634235678199351947532985214075595920916822550710190666100566940836416057789305376049936731234226969403016278152338727131035985133205560809002105080765867171310055848441138774370265731776989952229147062244421890265309572193256242814230803328839143915226165270367373231754105062108906878669209568117427825320751429337660086194864904587494210977724445111831557995862155452884864470051630126731852739128632791148493888039912034889833920815567085653362596912702159895952251614026963145031863434406042657968045660932641930771187295139431825708980200425735897722540053681120668249040845372352539353367900581845475119999592703064999755846956870973075016810037667397699456854472684112414773378462822783180134065824161184031270468365017741446582191675688140407594952982836602447100544728028412449264804435271480452921075281766842268508853391908738036012798842090074732656430305189023377389866601831588048854089904191510843121871640029435293884116024836260028561176072401339004696568188176116989672204379820280078137372147356527945128613328810191469952359096687673266615082715774462665123235353906493492695266903756510400130930976243619546570845654692326949825784327618576390804694295533409215995377901335217431658639646431098992050008216313932793324819141015112139239339807251062868863223855818625822916079872325812698023943012827175034965542587332852311100432321093517926653782577493836762450615089095790183090257078607063637839349822996552140461345208543232928728118682406183870468550294906677306765615228896770218915354540594221531144278390503213570290588574651124362320768276753468995145286850755256992304410336935736691882198877466668807923372329812614828336629452291931299320771080559218826747769860533657941644190607566568242564856013848210738901665313807225035571232185084485540157093821539927650609155276316666738219409937374175128031228519404365129596464195677616645810229762390636229350387835867228958681014919364449450419025797617941360805988038200890952221196771349218632642783223912125053574183238360949175310543022088708792606935028525244670898450834093673840539879663841733398460148314980280737565192120256240541577215834668123566838173545028730274168177880687720816813344626426196290567388246595135357583227080670652318957684303477208115031038186990918344488469651501749285134138251205490779487955197324601776954255128542351149288210596533575889138699942567201435850667624471877833283027918515157751507953276227398315802393475671625807661777597795875834584496344351533911118174969892568975458913789063467653842011241520928539629858593370339697095892228042342601761365472345672065434717559400653618207307606989400295032695377974688287715265913198182437642672956735293188002551081722725761808515846947929559117865072996188191344070012119860111887362626185105407180691083428506965325439767039158663460858994496305412404216683356450703286932971174268078929591753499962421863316425495183832811517348061745450169592921582011640887633841516358655829061288901909447413431463702952055729027099331927559796882763950083118424857619532442834778314736421208499611293090618084190500625994816024514649236386560450965284758683884390229401610566581098967400365428994825665836239499650497846919628509100879442432464660546186947092464345097698572070626808080490644509239776355706588994387274416569953457868651686585478673466503797192431100891523204070779580743684808312679616597534414670121060192817204141248721993009500027908754410489131566594421511045353987337108354711352576424442786484570680234554399482869944035561752258836867626620269281493256819503849036872256919322483881891329364106287897211817579887492773942667162214601693836155586346252308900697918178665427982321231014765361799312749760231615385107512499573466923271574479200024238402606179068206161913528870553847403627267205891020430931309139691941567057334605548183691895302868725216814124874694217050383252907363205903205283564924648720151796666765869646510649334049885526048436947582111408722970655500030851330691597022414420807328862825083782531668053180638806801675015560525455519456415392565140083692391727341319130370067611134484859775644068531567882208403413022305013119056624324831272946244992910891627702503698852581964486298772011714040914596658916631609104993586154145894040514742978484155335097707319358818953225824774710890482131440779158659744854499191099436536889608107707936835850345835262274851829152433583836565258034870099469982028516773524101666146494911761468719417459016896218540214837487960585657334373676821159127411061101786463555140883209834264748182298418442969458827381695228717698796975795964957466390154945641606944584569553260691419351769539087533447688829893247748355450462691757610840832465242909608655570186428413617176170969199778632537646686711280324770055899905322941909426360373536487673876164775945810356996551972525195492979758689376265998984393971282124118321615216657089755472444331891407399662537828530200339860243682180102768219675691539681420744531851546143324357903047312754898369094403125910924539842430450139603632853821723874308112231753117822430265297243190432893761525708397085521598480472880471655400345106925051495787533066395973877194023979990867279359759419248259852691072700402906346129809722312329595838764618590427894055833715801467039045444885920731501359891992903820154804147342651839913780169084165525613818570648236755798458170589910665384264923142580141377326630924870965289681471120647718294038884913934811463680078692134521164954490748244021147674028799515464497830205144934720400112390475970378646630607296153460660109930346605877725481926329313936484956388114485927257347445596289974172966860085675063792978544375967644764392101930018934635861126406105602252217330343457072323718077248213746966445108632812291161920693032027918992189589036522149025718355514224965480977602670214586797482055351431208035943278501769026235005686530299925734740636659494096496568414864981980637508964623784085698154639526845530294549652822371280556276476425342022575603784676351232539543286629133832563665245896794715396760301444270753761212719248392623826129646702921980992632381877952987969991929524949357416389251019564678700854385254352082198472255977669707212274716077812682678763071336522998922240490192126824101618531064994676906542333077762632841942839068639518972944659723869065752974004433674397082106690869330397358420567589405084534065170183006324838160409297509355333546173414429989505716339995401454160907726554127609732157389189935915170308700865843814000679043086254547044384128250704937824588862369410740930296378323925091513812121687281318387252309980668056452988380789890515569789505490018695933056832480999422834489086870755410274888827139524926148103232143730346340342122347172273759038002581862166500316593398058129680685523442225125203179690365029661195757517856811948608288406077656260679317856548608291280983537048563526485238158574327517423968303777768753642205063354072402190963070630003179234533591445470617803245408543624639243592582183411901401929059524742580004644737256725399533174084222663696728899062028404387383666354349264183124560967404685238167552737665755551448225608140931052729874598119863417323624592264498851425864432105264685396965055889835451882015806989931393120193081927516704067036241179408119848264570327039975654751859395768188709126475494858429159079534969206055827356483887863050002584962900410869672797318636054595268274437782922377185955784851046599133530851647809695986720936231572581530190598647932937784066757900161289629284276912133002912508137825555604541590195714251324305270869796711409271455326829639923913226104622767848724218025998240499537158770474695200327061501357081403493009800587511778533767214907673323686755711913023194210895797006581162379062441930291130092823075578421925156856442478854231043781684981575935613265521824944818866006373826397813020046369269966404018293220424184687027248178363522724050866530063430032780994351315436818325435837146026268043701128327487771587385717221125299775232704709479362606678593257288687447063106152125299256030863410022321833229929826440070030731828712518277242508766290294572915551007319978031748412277055268516230125300315823242899434532097236015413489975894115862116383184673130428016517432809879746790341139967230426367013444482681950306860618283872626397000164307316531306473667348696969243685342165250571528969191867124768740612629824479102351234418268134162353315136737401109438432853910587379791048835147892741267186530879320465838989184864209052922357563022559148409282384302125645870049286044176129380553754315886908544192960725121947078629323914256510863534519438665441497329810124064584371193714359650472804062117257684778979498720728838107985625254930596317917216005143544114361735554956997956461548555097518809631428688487065181841867894779974390777683305250833667806875932177422293691055326514624065082841439507388643373075915492028214944735188081681802233718644925851779534976872293603276990958911662304728202632995094846119898677375909009726913021930725093804035522725087257187356185312425454985713430311035265280289621001956984054613566795971782017276192273193228211150164197227689275714027896863249149096730632364887552852202236430035112521762561685799062377730655490503849705614733299191927920087438109543140486220414469553680230633958353791021241327799103587895378382371014292192384955268084866429945034954851044944690038873018363434765616771282054324114483183454046861642018805745863780691158657323156036461351919741458469603616813366711495442313446711948628649959199229466338366168997726192093325204135880396696957485512826511498200136078297384101666622252794354427480651193407961708966489191668545123004597993738434458150232968190488170876307829932537956302230182083080418830412601291971317019643206457171629414921429298874406896120171380095159630976660602629630623342209472268003892053649344148189607613681961490634113934453578957394345522042050914947592280214536838938360689767313680371565075276461138808459450204230869334905983549925123975974882861579973947589137952658861533774824587193449558982923943055427101511410879513196453072769281088667522476008280705078343269301196299774237699758142786357371814309312430956026922114531592609346433939378026476758925490876114539509157292348313530558438120821666669061248588091717942642529963357062372259177761870055816892149580649046752687236770244121720751888276954739701157702994473057440254497708869651198994738120842860442253467133161596851970471267273772431490494166482119854335927916375421634119664563473976865170892867736889963679142246947252635710694489447285189773543888576307384622344149829824250875701943988789013444583212756500633589802619896381203853366461228971659574200741036712900212415411168520036994458682145742633826289366234817665885346856886049682166321515508743760039369525625207834820659157981338999040920482731837620619983222550257777862736271898425336716007272135290058440659447404490566349866377942895262681216263534282151844680116098520159695212363910110510533483757619994695709852827177686495898718283634484945946491693845326237775372362968539358963693698121910431605847059875812291023964957745996142042775130898205189501028888863269799512158377483655007169823934351910543037148544276596968277601340528402573258893020406567712141631203084322350227577121736986156059554807748505497250940676512900760416624445673403974083625951377832671193508610744249220475246587901374037647142595253276359222323232348530667937748459649394883843320516364977649950026786646122496250526934641579594563851949447077526117487463142005385239840840829605477835218065687678638913049759456027767957644285074709560805292638122212179545153765594766109599737507372827121116299606666407949297739040189491871468511852545993593121883289412736377918175163354084758357979591479036013624943730663470083723200984512509927583690305592958062021386417316111299824187762740824415979108269436327991112790589148248274930670004948829995818079114000327014581861258703698539332229185482810824133124147987499328563235684847258456685305367306533015231903312261064568288372041061145837561610012528466878045825047431551258641131224313849507031638164826745429085744810417731403343983644918132920535707159059571500006274778816611200861112728122144700419119221202832644926784887074625294234295104001562311262759205870224544553590138010435869833197488667120832853180667566866298352730203844968828514722563848270524822752982178358924026289023360648561497269695729738704182066277367963550762562765992665499593108363971649727667902931570256494705749537315104123813472748694659561875019704445001439554365224191322376689316098902461761301952141705484561519124192834099615218617613689138156682611498679472304883659484484839817442791371940710831513048987966321713583954544351360046140050995343195035397822931768713585422119865049298082297917661731325193992984515346638351569687117596745310777181976689688806121129656006883024054118986106281696255253005033840784669655142904549792950518674799409367247291502038329308961532959396549019582517062674897864498833157483850371787759843913235720246980623478330746557531588458738355947729991461352490792493740384159318177567664890675550995846570136695525769343947027539871072125276710507617945280833296796183054261196562655122994219871757310212369731255711190791131916522906518807742198082560152539929845968806854354250752782737400815876169788947699183778432221587998785716309517772038961273208464469259599835878839056599752612731185131014979557752595558628946623290269405208417889484763433993619544200501595308518968789618918205263448968860142619150170306479653846124029085721573998822998192086815679472415829075535391155189669871293032610737967202215654291880951039163925545550424583565415004556353869126470393216098543655627874783063997661536103940628136049254114057785302004734069455481992450648221678246977841879405187561541467600947322510781332307490507874143601072418613836320481488858930548283827737340911327235710561940075366167840570173667163428813811628244615589118688639779599212234548079766667813269523247689044106304553446494986487552963488080667585292677765584985775308981062607232357541212982485197248841756579726710901389391542968085465228583168381040239081442342320091063955397434232472718039713956011238474573560657107268446200099114319497277378737010192747748451145633222603484447427020458898087797173381011876571761430870824877470557454941542299730753249037788389232323709157225401008394600599048484649033061172530572329226369704358292079842506113318395952262032693488322039384279522074857832559218396558953231095515894017500818086916950995922668593481437010210565071970344283047673524405037916517109881136275802108740957587507337222076935678548915363850148892017038215407366121397609052308207077886806245194183784731695449524827356970460919023369512771212866646699790285758586762180090355488821351442661108825415304240723692356413994647770045479201288973048506780858075957889001999759117706276779283768146684097905089105726806980339742486910486441939083975441469340101749974037670675305772725266357706451685854557820908814385999844582162211021807610150040409628898465333873918386793179817167691753611436625303987986967264349740698824849498285323120450987594591747226806444600010512006738244046999952127488193358934389420791130663860494472846128916160476972234354208127800378985731685068385704413096703890491757366182773337958537877196639656117073205264408079173015172723974969632354058437483722550526999822508202551817863430692690005933218073637009672029929199971479438618980813264445726644465953360413149981809689082503858121841965375364911768993631981667536717211676480168337684880161762830596339537052820523036245314226649646277706815418835541803164757712044155737489823303907477627722990148302564033606875423072439160469846755842096848308442460369749374106625300101787473395796063006924048668200864089675894383787427694189373878174429029522524937660746211391190947816305490192998413935840480271535038211086406803872798248655116507380438665504162093467079209410660583600750230501661876587907634075160319225233627019229358946934032607561559989352727574236845034916276427486782720549355776234376369091793970523328381255545319668349630709377599291684237851655646452351737176123784017712713636537613894880522574793149097828908103818518430732980225239849744158786986595692108445881883907918274292399048276328233939462543947644286591813456990951807356841743770782087679777683305228174674068279328827295698524987502460289314103204135307765930921218724167261378110679791755667226983335814435843889396957768572668870872526606507580595960035428437272716650372510435656544032268350033760851364713318276500333374767260954832030936232533498664808561623345167870412274150986196185891991436132012440959888324552680266404433369395012990991977977229290406892568460438244977398798550031680133776927746312672457689756060926046100397019875666323824161865474589385916020356252201661526676507714776856668852788498116595671115419702476884597460948487132138348188174930656480214395025791436299538683816469696438181087663293451484225143619314171170835451240874215650830977823162653465490117167935325757951982049696944697493469680098284181254248527635884154075575913102745005138777087127156526451773464358614482623678179546779813503275487916953404796779699936501749104530746182663342658031381650096907352071700674157889360877358842631563967126588017749931652250946425327553588777103677454254693589908962264084723125327377492442249340087045306966618644540112908107899770655283549836859163545312436215892645045819697415126148927344362362587293484059020203178621456660287470069508785738907399560143787210123914925012558221326047471362610996247129237947125941214905095833808586742155046709235703449033342192651575169080777050863337046304485121097994895618825492219510925086036463919570159926073182628760526337930320329289373818759433021788685448510214541955277356836556295015298195694962026798685994760809420258679241586856949530298225975394982217754753945786907912485007461913868030548569001280895045164525263159982275652830675932667095943546751423304471527964381337832339804694674421670369578615022394699848652415067276950573156577013482428210249902250085125708850547795006720968437285161850307194306844787822462862779030146285584253775097420688896220219007368901068928038282244557840500501553208998870073724902729638731324537997504057077935493577455336833082072386964180331527750717381940962081825815762407078772279568342950948831618867927274896330586443681867680432640546345174816650167233359212209716596368476640653407568514232160773555865059651215446094245989916410567984586235200641890243982486788904111150696401724463259672780911687289817622688421531553146174545222529299286620743612537607463553708115532068874813120224129224029939863753986081804890291833575620781206053366558213166096250933555611613445887288855501724877043410364194393398834400933262821457131189077526550701980887574467794546402871252374886750982796703700134508192589953848761557932794776286677082407532455449165403269475596886059564797593661906606570403636030413021144935941287249466385251009654817677664459285768154644787167762842743361030831438084212104585854020611728472943200279192433419334731012818294259181094802633502417705232023260891050795980837903933512775924753672075415765575020724325455197948251354461635404305766198657129241192404402414790174736969829725653064541937555815237160465211593117515230238455611302477751482572159724918156889118914632102616344743813675574637843185025508037965524199692105323256923889597670738001936852166773917977415328449702508108058125425823209234935295406532233193808445535504624676872915068163084591388500981752130042261214125088790365237855125961372233019237947782383699972137916137483830338474559864727727392817200962229120367023524841365945705935189313416767700716404774502423045584769586910560822574627550114125390193111403215852259559377659229745860841116778866025491879716766372566365886983981980135928896921920922448505174091504317332655537437415293550171535557501398570424720185988229552727777309602354763510977594552319685209275268880955003767181739489304045006656226395288139834300532692739627522123222509105760881058205577613565904785689296947359889444460642828412644378356698524067295045992225573207585571756025012097412744370356294652083385226718116885513160359817219162317340905434709539455535831745889495483179103492599390001567215623512395053577831403150724253429380693600178826165446519251564585060321341244565654793132732699337579341148781198621496553208274131546149108840027789298632705061447596647386936939600202835262286577288623803895043330363133050838437273655850864422108718689189319787651047913903208005681929766970874315390471517056506692809597315517254024803882284491406127777121377887573853832117012346693357458337897839118048739336116904417422683742090818500394404359757019522075739441509943404256051847344799951631021071989666338308179392026180609405579594352909953172532216209248917209355044723610437206353502971140448539209099324415357945370040960047212553411114507457449475227399182756537941213312552498011337118040592372048521830350026614352096431659679990052997596533822196550916454392431920842294159839386238986661895838076221117977400194480441100899294930300952069567934439216098764355003695157544092938332489269183693373420230782490512343188073301253422832848246296582246039990252088482206034219361139174053504221972601044074380595654812376856611708495887702383843108342772516068224511689331096506799978120485129455081870341365381061827598505850145916187216557919923380311968479160409930155515603892926420149364690708906784180665115820117626892324246124077427614146588267924326532733257337710633232393115199804354596942661029167419119131796543534242044165794115589704892137135101200311227279420194452675226217920715376075567593460927266016260663734279637370238759488648092811181756315139619380053961533033631529910294835568455336691575266613952263740676475238782030492531061478288405371588170333768646736658737495933267955237225600411483601858203645823431185125863496167294404463403952433168351835498915955204805865926275425298769141558658768125472327928053076809003997492153863707981382063645259649647117053346692619798466113029986130942780318600814438876584784208332553991236866506457207929058057070983224679066304575821240827885497376472852403101826840748501619468826852271253235823896725129712264885220131948103356294376435997147384323932913995949087258089891505030751676612160280712004597365498111777544891386969152219527931604795787942364028445028623842523348079962323366140845977537873363566319191117348183322439643701888489062374554515485500439765675815237831960630596973502415368962969877468941067407635177179133328700613091730283949073266847384323645970218799803919469473971852498474148684642725781179730135872335491914709441558767475586675653953570487655226874776912664597550806677824159342362293509162751342901212321048226028550737089756916465702964234500929201811057319182282805513537706834841416767428956338027715851391484179704162132983896165612430015492155811227757614014805685361957278096690432427404876894174624245084431542899035060752346081121193094911732579091504954535536726142408941760277987688385003003350019944071328482290309096714676291231707086546408754777988031139662057771980265364122939195268826198081994143119434621830253552899296758203786347123178327924497165065470444379663246058870384911083893049650848772286487165875852687142321272129559686180435511058233402542254582017251688895528745128602443465175241137232370616488676861972433850006399091356796410527628446763613061826730645841525807298701308197497307081415230026689144847893049571458521258319116148325260030507949389384963643156829609976652329173455339494387819656167412561277865148234306105891143740250188920007362093247561584976297529766839046424537070412302289685788257392707314329811449837436181112796021104300679657628135424932028399097658133287795161670933636492606170871079583310538962701274097969863672099100662292781795400636549435764977653581701674304474585763006363877366453564211564359987592109413473855818154167982080005897712209441482557086145977350359938112782486618364995647007012800032182581512197954506149673054591345943275105910457927810418259476164580494202990563671032290950953347827975861020484203520541918107231330103425364945355497221661443063590440558632947438523062513421572118297739531360225015203324940542243721080291510017099748566227012898472599964909339381745392487852517609972671635596033769896685326509978349562893625278698368575018705198618223479645348204233200085856549897004661108186569631980947903181986609302244081658247649612903253730630567775509712675066845571035697221681767134426795633332090764753180276473691760301181042032357151380247104216433718082328856550927410609588787152775804788514009166671107967503378376106650615833882936508138670187321223413285098445561522547643519022354420233990865693269011940708716839866538763279169735736779896133764410327318931188379134174641983801574747768835166301270803170866729793524195282569962789020233208500520390939005619188739005303845857370516432128090959444589522669918684171275948130067097140799113721234871641294655941477172600753416328124175411480612739861644101857015023226427802005451021876230406936420666955911798715912799919060843032304189932973826468884979100236999232778426832625708074877618716115646499186001932849790067735115500522747600394561426678748251631994213716437961701724456621810711863825004456637672104477515377981697967277321767364212797066855678279568940256148573474691808329896030073689631882012843400737800623548653630789419613952021923571783285026755508125786262523648031188595473104269209792288416967187757725357253404148029594829659968981273693757181320833009742064914236826444030210508022289184049531564351923058517594644348426314890054285323298199312187748504456058580372686161723071669030537612573663075962785697172196505159727435207056463864076815132936165879271372819841155960503137826282900191080344592657446157706210872540712850081622968561911736422964655602989190997071194154650120802677564452761978508996328261877769821391868538576858564254631111585523857234571748086638090792041842517053130130074265382970235678641389959489089603354611867605040957043569750482537730179403088235894599172758642199161208823975719887591837083101823204694767628690208855450287593360136840853952219480361963168712262955950842551380345065494406164965105047407106303239359166346912031521094447847889917515467254843374186137939246944485709421610589110224199894796318118964874391346598970558573070198388553282234710638039293803519744144194189912527441900889227103774661480426935885021632806476976768122759921282842681983256208911547197435753215844676560864344226770004124924625332169390418555952164834846358849239224037294722573806009081226655657985532514842642984842941941963386328116776730361261266752523620287256962752747523239041005926527490910922703403434134941881968056442812518240605735382689845580281261206825141907520309916644403532847906032232254305288508829490436732382074800818911834392171872211317060568497153278297411157231172824851922715885520795590347405899035736426905833457683118615447168970677539239301336325692158449694599076443062078232004478998173437886837622520106735553750119920109015973881919603038175363160599884066140865334008718559003689656293189252591240883356498392675669131927370764404220664136247175127638434811659395329412796135570435568202980531410835421490508618106595029538152885670067099786641330951575531207176472218505070506964956426423167363263979975795546883220030363609769309124334594169503105101610096903558077747603455700321743113968231032513013436984728053137070037145626089714715507307279009127428882500634230947652515715485657157564267372209436329394821826693303769933072984475684644083413359201135052730895990669548605177613747518386186348839925205231150649085610030788853162718118145095455367473819875868601476266361059003389611338947842415172993067968833173244036834111598737311238017106508713340497400263411692870218064413227902448124648979400705056496762575947162931541240229986517586093137615447652216968199850670158117894462628365683371732080476631599970323847524740693993708677887629697282369963913307921104352480998765477076122192094604729581842417469976640367864157880614499388769700911339138157476785243173629682915195227296760307017230558611675541662938877261106150907007623832558118047419832930552246140092209550834651143101512479204843642549878244079884604395128881816326362711285092348604638951219691762651594100393981231355264349806631628041894760679731162505289466372159705881498565757388464685150304674971462744695153384447426274983564590427325169237246224874034354238400268597322488158777993104123095222782194291971119119292927551736436023310328873877445236796064989041869410901245897684729849639390065004967872535915468552091501216289971169083636606014573070156842385073400518157316432062263745823339992149640261439814346851417307082819393068240125988344461895766750439532676261410316141536626179814796903890747992226070329832534494345616348177526071603700199157322340719715544152550527495297150486167234694241112878570703867431637049584937293766589167809084995029729633097633806707985631351655917076648081443269373747737296496848032882401330211431800750512402088421458077699529195956055652333507808728193607584888112766736619646759331725960642519409778969268369161064111153474442193721134199457177637639915299362438196190858014986980866064175706689515263851831163956517280520369719293963303945499702873352633301260355075860195089963997668305451711110415704062046471938632499028325049380821280813742043168501414369419399664318714276475761449410976637530653627679589131373285041430055751538013517043619439608322369006107813670909707398444238049765395108285253319245529082858933170647195968753015603123464968814087776127232191459644276315291496079902725085792798401308039376041920561595217985870579504291013817527543987671199618865818983402871386967045267102243669904716328643070379644851839760912867817316061490811506066150895461735213687099348515734965753135020907600014626003442610850078488549929613503554618026530877635724724077654553066386595472253076723814832750721170914895538880435499814088874273693005956858082880957761373006034544458248251555922735408098298629727497520410886742028044612414238892997150770565081311810346328247387711614100859390171865171499839866639537406695660088544082146034031573257902692850099854570183198351741423075421484528584832544121349863542832919788113572793734811547506476059332472878536742222325610050362346289862521990604696919661719071056233359066201981246773683840674319470977763914363161852129901222231780187962096999003205692520642147246764204152805991384729526674393486147701628539474408196455908430961343680211045323483820632338975693436450164552973156780116008885678433314360263854026964085296803818561984508538976653664504377009063605694665261835760478629649786040004200520546910649294149118189471609992621850892015128928370129085610330401682633700927908195263871639939106961695173495510812045758995922822253113545482342332531217119706705042941026300009373049172858738520556115791588822509767463585527008647506575332965647767188291457646995890280138768597784103034314214441916098559231318701383436036537625434965513411475572912246515744760749115935438857127703614564290415707544084179113719129409653495369398430607997057098667298038656761955738205664996802543323839146669534750396224156352822201484979852076481562570342787878965349231009133611084918679989565214708604379330022976563840833900906142561339384434420902415500480333206729286154960707986712032063694219688829818614005910296867824574030607480925053697433005208259795474341822712556587625027187537354001413690359103206543844584343726567479573451583245817770594908224172941238011212090913327780999728627828888178442938318806328604384169344909859631838180954252817043898665489659068382800821675704737468903831987894630340290547505626217619987810785274849969743363437670880103420003775581245399398429320522178429035648188812014872774358359922033108676148904426091657735470576024334382352667251618949200107949669021313183418002663665543439613917738534786438852559346621506617086429512317599320900989645386014275439162468223230637617160912227137428135710114151128759962841001162003514484050788079550207114238238226175224457224245621645914704559117378982894062120917626731031014773657696971920846450932438541470090078243504800327134885526224934173265190158037585032028718688369086373014439095456636989122206663991419741753996168486763054299050975138964836552545716438483127359485762534291565838686451509404350963404206609923912704322274236940039471852755965928613489993269348949822552703133562333142817944987678663421309405767819781070137037369544148424439730420642938831173538418972913933947443469087482783727439577922331253085373215088967126576514120508334180668130634926892009216576047035061124301038106321507479330734345969645186365807346957687447867362040402025017485854095014219041914458591339522956807684781159564884940247222406201402854934076532452025004379046362672437806570775936620042888497761073681756380189593541601456718397674236378410858407623799795540782402663229307221380399094469125661130469399057345843437509131265845902555848687397042865537620780687146910840668734335219781393562591102759210134605739833762829953792954121866109660484322658705806025371065690090127023477059334589688682807540338053539106017047314134174420133618245056983970261929521691508919065953959438350683508082640460638679234887555980320345552419428825631106559534304754051252573401065630253589872442989031184536967821929668570741930129764692808380922655572489214682044641585860771648999415965721438349564540133636325458288665583150572123281582507608614419387688356304905419328881302100133160905234881686593285878931204824079875655385837119310680809895990991185397556810311208737324614318990615597542177550832986478170061978016319060019775968724392020784256094297851472587586533967437574683818558004563412602662781475670378295365240095541516734983536602660848038441600510690232917839653562207897929015566294531278855687415756033535234656700170844849134738844474348027103321372376042094417562541337963669572609630073291040842508651719554971052260525914998196338407442715830531767481221045316360917489066813670385639317333112434677922056434562892125214056175974631658601823275165107405658067518319574532121548366550349672671881157586130145808134773677715873526559729701949893341022324804360468688524657077347701139387424678108335046523668772146625736655410198263860380675986027501416329608864655819625874204294561213143535411712657300620980608940570787754895732086761432732635555812620303783697524580918179637459211451827006442043516853713906117188322433626438807693331513144646447533729488043574049988571930822582783411693565149919707424845587007254093466346483611712773522674281502151768082403194436577444890775785443783596322790145773761158955120166770919431911894680410505570915599449838574809847751853690269780534964224261766341733176372325042430369127727879937179608754461869023666094404070273629410323370238577438072915209537502025076989546871539055669951683080518462213581316016694736863578125719441503732507176258303533516487391215157656261698298324056536644318796549953126316766994697242300721587453008928493310421643524725256763094689253315639356165789310516027261494359848086422622294728585617338414674327088323612992291658959071190841099847775452062172682671923011483597091755528396667370832505360826369872282815341991505728221420399427589858891719133517475795098627993491929276296291827537334611663689062099036491551017731368332706422608536650998080229777827991654935995758874387934414353649668408056934941860694470150823845045731098316578036017789867419354963937569156488621191647967088552772389994727871590692680379803333086015720617706212120889351557134173280171038549195529695047742449147677790497817799907085558672398278044712552698097947347103193687926535013438110079512044303936698444183306362195239696963419589789778604554762780508557028619217250440823735223201423629188462040410226552285904332620669995919435696376303896546852444861379803905822471924434407052816413203373300606977700282115785277353804382412203257998428266665912086762852728758050221033600606589845169310383898755901498168830283516556621500362956603277916717869778436826948741378216731484447615268340111672231521262887249242706290766367604698060527680571512685905489351161701814058681611083983523982130118795642168123092162168454378366579120253038233316495745537219408844024478809487158728842062000129881464296142412920900834176054312557187835412138981700116738350675956587567000609252499377704560306534142366050282464495483770549267400760788027001947823836621730419522960365060923727523231099488480211357621241531972834267485781169271424330426854692328021016557145856102398773350510020029353542877257899384227045415605585701915153180138509700457437490324956018077862345128182398609822287480134779240572746236400798287828496273796151383113030875919833865308228340377670821843232686581921448845818988939213491254143537301655852203008807464922729389897429909236177021200310864747445877341320865924324766800535404735695023021711233534804454445592344015677864807393215348727067947876319685014393431388779005649551056764203557727274981008025873426338865500510044744399666185318063225566344846568005466089923500777301283578115966768769019703920923334921526257291561948548588591982462222140931004182115817297148852777511602520449261061517036277608477107904483406739970252774321440793872565462199812678064451858263973393062966321843181986153007240509216676668258571251017460745304161393717924836567353773464112089027150788212536685084450698709519043981834214344260914042411341708004416414605696831558829094142996855801301446166388224224767258880971722521462448633229591171033803659181170143542594502669269821277967380666556843148875448440246241727488136552391935838016282068029283855995223344639369509305989235395452824771112438045296502428222779454416577817444072506664454414760574779796464707330519177972002183712260520030750489565982289278447957712823491408040704546599575226920198968164691734864488659634432482754584620959389180407160841502967087668722729576983001544527052697189151419340825061746739356121341539734297166730498791124151813930130036951893918551074589390417048401925456345712339871097898777842053926053239642385156830425166928291433171558205557857017041187365499473832331856386526470049070949058891390596568398988657161390830759411413726252476424450219275391540620595754292046445238627927738266209150708349115036534972354324453822032907406286806135360857225491995722355823928938885224652641078213778641036154636401392540989821238885604666441320114959844048917265051699237100576409706315485053366504813547888867848626193899959652608342833011181610289877086860411888853561767657754486735832562858395417338858268444295292937986052675567026516026187359614767004288002779804981595629254795823876059713119194985159265368919846974675934618704185047551184419745939883767537084176700451023741921969554943128127430422332232311431080074546935870060874791734072649509340514800488591760953754756504719574002184217879193004748769035314581526219307984675899529341880901973388110507867054042203187790148792576581965403252893018319194981683970361836111582889484452312888764828739297753451539052709848042885151769322950899026801969527704487534946034262904389894985749248903536213092048405183888827812119434456057025605747481269871431069024841424021911677453493414165892571597324463261566749202549901129335904443495251275513954547695882761309672679416150616927528252740715580025937906028063582286706427580505533970618167332900347350490887987268764104848539100722490654515998812421396511545179702222572920678769580029399926503145034782061627775383184120804120767752938815740448517549559142451210662644103641249485999854299831833454305753615694880810942281079489584842969567216829695574897691784423627764668100808540866256898527627646560150883925589278607290296079399495558892522639411150784119922612501434811496610455021293506700770328084687403858613931842173452551493170197161759832664915707077340755430955906456313706903364645487843901658686657451170502025183271884769178522663497147099035412671894598098941896202890280359841957712689671840775395543399263636308785119178778387959540933042606280058756420531689771088035684965214599045399427016384169297643641304869158409869758582390094080705869668275530731543672140735684439502970569590230998608436865707954310151748118154093714098858991138156331787233521201957066878721373491646926032452208558610626316140115972486272234517621249138045490107212105006409223570613462602741242196581751315971879406709426307031879982052880454978900442277191931665778434758867987657657559920247511379846045780183412920762104320073013193919375450014390180087727015222058784031026776950737199266637138242999771324986212963385133771555798275771888156724112843884320845160320099568607318513834360883488710767264898632416874451339840150738349113837502834137906421196624002767758405936083029825009052004123165662949513777065636158996503374262989770549803012894277478199354543948244526648535485782100336955871200903482699565611086836836770024919571595400686175872932686417084270414418864365929832351541309956658032750877562572924589702411799880071190825316554435049697224422549022371302718793348948142615117993783679744585502212147782153784462083717347542999018616982401924528479589766317101006055545481668741865244932834363154403908375075826921755329332263966454580465244995161041649369732903589916778501565793729163449545128256714980391823741560799526891960916575127227926532087061165503810096728740991403226273517915266528361083444757683778956794660692848458647023009611340131783603162557713064413578336005369015400483838298139456668180969705116808063133292609313876051751724962174939198330134526828393054669435051712939562263902692334410353838209246405912368515973750919931620966449080662587397217902796216284538280093560855678316090876390850944295813876615596544867628965672281360812200682617758332293522526182430067701464090056223757439808076159879468191209314490786128510060431232510265759298673725245002178110165246574064368565073781223655609296406195878365324378463759550444794762468701842248524601362707620614986601005468841565088193444462741341729676043040371915701800011488372210628219633443140507990594757944270288083926204184819684178148878836767888653153886164301041199241296223927794979381235554847374806128591810515017105560814957266512461210113178275101430819282843540435955454877256235488826591607588777744006564705248763550190136858359649830451302276783803377613229618848586879501263573516623040522175355879955744040756423708020887965993818295130169826450209075405598913295067756147634815428621079181610330245665314786834851412971996526271620998243970452328285577079411729286011412703554138230646594577157725130634795173085293738837934693595902572263141615817717065430810767754138014227717907900981014465648837648630246188221168497086193818459840606344279466973464621287031320185455617493144406759653960315425112114207109037474562642701839786484379428692536666463655877129104814458972026571207834629532426550584739498784508538084087908134396849250143639951188787727430026291105067156596369522073448100764839345222690207752096480624219499072363051858468008247950527839172480036686067869015278688439836763480607877738319566831870854829529063779151349053333101966175405276136452755812780000356580456937023976447688552813582786593531577990175643295390230123151303268595452207666338668678389632648466103783560893082505864063398033438406095326451241685720622837603497414997008281377256113815394591269675948008587175195223485975423789648996917369602466993700668656843217317276867546205539539623844943675660485624803171411299951161322484657755223582954112081767527726579734332912994877402387450022708149896696584209425504273358896335767828466259039525405631266375945972094405546622420623469866208430116431252411623074302463050356074985341203063673500534902943666076292857784345085655424901379619598126641385559635500122600769088279845186591456108553546118078016313529008118144609073105710747941937569496977026830630272001459179306094891124591942663567376262996541817703694537109356480668173131710284362685092659729759086770995588689775307169767294737884575064489199320352212508336148197187703571919136025434537265101421969841513248732787882950295033202584700094189580889954901333540598801546347246654410366230286742252480284770750890154103680659095764534288074811595648796444177481797352977931681575604252025266681447626814920505278364696460305322327673340254465937942825390485277560316134271228234602553430684795966945578099079693033338870121491124690146515883417618609283835022956892938818952572993323774099026498327026406447240509510987363794617785656919483886720939472575129743277467665775099443022760718686324989384762147644548601967953664965896458632085896731848352238783901475536988616073938860211485391360380990986125410768975936867490614309798219705114483987905139434174356356606923024473248282612963101776632052247756018437494642897721904291221589472519569491414230418386723127936709960003683070302890930000065126575837985634921937726726453469987220235432413733958285335375231355255394820360882642998618762209640532897025818523007131816268238015328011136673004129630523061778621469052033303796998595910368117057576317922650045886978284770596788583937501243670685634053932091784219774403575431026837291080292205335462308682818222648804113058118203470020167689152146838563684444666296038973726541486122903920727717615575106900921412526014717611072508411887671637788126444181599429512092677445469353183724484837377676445508830715647424639729591182505796823776763572523471474996117926951872507112395423713449034967649687870189434077650199834985637811705307860214130603248794542674091138510811033643793295145479206964600082729678859994892996522074794908453515288941022978336260202156501769693262103708957896493443716171191883910492214374426112744051186513012317451263960753035393470922755279345737191732129847796958488686929607228839426556349604579791428008577912839078473370818731509555880242586424556490516955642988666191823083212921778276212285799781276109339649740883476168023659413236019222155061969127850855054500300650685511669308667776675015386837927212369977009452146612459942500875042158376849228197568713682653292462796303394356419664994594160685041924971463939748747291928016803066356476007947081254261968763585301379934440302437049916686177172976419161888312269625371290468160635056906669563914401594653549318802983234049351853376120215985968107315831137291728167486045245750863131959908027166553154013007217436869758395894898931632355863630154315208919128516176539154039812059109019901141458259543884159080744478403036621846932941939129505364263843523680768176820155937087961874493964863698648623364441451899773878562759791110096783603898267946198449960923760804824538631750826709297279969081052486843748345731486116216303544210913113240696569082018878210593843320556480078690526488183159689443740138601094188489017788547977354634160940989197615784666469238176341922420776219114038022913382446449442087824770669159765884850857441264872020946588984003114369329181194866432077156171988009974941211860739266077266514308052627790191544567440397618232547460073151798426152187995699789783648986007274691492686191777537824175783020689184667170668798800974885098748211956681302325216304351109957734555256466907940147584251842004444625061504942440119644873335360467267890265737114971632624551406555354690339332698588374000384723056499243172719161858903140941415810916197960697175679032221643948840092492588442757858565052493952057173058984317996330238014921236490637161551474593171238191635846198763549964063524479638019770892348175411704886498623331402440027865850625881619982549539058202994955401678776605328990846556511105802947020412468563730176282960949193324371344912180417497707657850912988508713230880764070230545772995401108126624922466101343218688452228220023910697820763214110990088871968776927610807206357215377658746234140758881621877535079582791010071881526463331093742671646698298528392586626265359858337262783672384422118939435539636338273264220408946932115166858148353183746288132015334855865255658577388490115751017752489610874544133891711982810176920650804037998971474577071204192425359441227466896850452813525544712772760630815812053055215690259174184307017732648781162199218742359730415421581227558448036695350581376812867610265701848192790505983154691794898410388688717881059933373221972001121660840842990514520018283121187879839564788524659412463505917848284867775732915504437006139204971818733607324535365644632386926748079279741639179639650433689352072405497276045590582342839874201704827970834573206450891253471400267170614851320358320172296340425329665521707589586644553682889498846090789018025278684062754157416058732898385441903947866632212869459280528945734644045077082694639199112389298642980036122738003921427650954740136065986550127862819671390107022503933684905546271912506578339001895283259318826908954372106588795550595113311251502152636574015254474623598391271052192229120822060654577912837131953074234040094379059358894265540270882857623176858063388420927799010029311873857151956121726157820862009767650435094935252326761639824684677259915185528551111403497742480992282710061177101817875322807484977129357097279931603251006441456147386861918566496053808101928517234425263205434835098390435805710595443370320959639370424812300608215245433517226502227691929195163244691321336421342555661507949490937836674361870895509643466004685290852584009475307508711205692298669370336655015432801689560821174459443980533587463085934659438202932215608800778791348318942261360856139393343636694403841916265670435019995653482428062297036776155199918911203875042870721358468669103090910519516671888297472565555940502037168869773101330571779947203995337349428003413549993975809875646727294528063445533970756295931054435902161404721875801424122281608796651655809470911476704277149140003278209371624585085816062462800289330460190511539691027267295853174399385946276523091066036494136139823243983811306883683901719518376047514790726247920548960303454594609065377311317671729764383555324449927399033630895602566991157694743777110704541119885926165557928417164701500914488418325700726166940209384390459531226867874816558308232961386209421287770779430454628979980043545804809082387175536380542090993711229137458865275040808445082911735942957507473986803494265932548016605008271722232195740166856948932359828664301476709988111212052338045425864962623304336697622533367346646853233882327262627260684304136917289960565256538296675386388049624580971389266082656407398730621810120024538707698595097118472327545653888914934241921296767633250644616427997138484099839913318860096265796801417018820420626462513249547340628056453201612153684862622331949034370192404134058366793719600429917053220630068772437767416948928509812126467396069105716693544705005380542624115488126221454001106555122388606418490020704772545666190410327259535530412049151493400778801375877955210039679443009772912504870748386254511798544475405783305444509842691196728647262001964393077114357798886985896552666456020559738780746254969548610626078168668439045342301830504172601135774346411263280577835628018136904059959430096135099345929668090851716134497991891361253074255353820887054414190887213994579997033202633766841004996213115096507074504185155320426041463269417896571156177469183716401169574620274370702248552162591556633623681478922001520380584881679534382563199557497134810812799982409213321410875294316695583400254053803080752619635557584790186107368681255578017721318252851416590319649113333054363251848052227887368367956790020750331496604220592628709768302031326012480083057220248749377401366361656753934899361942895262342902900132831876620923583391696940614382601652961998697719337883489375825932759651220529702632465890621279571530176098553609434170069653630870741196831537848314306054860107018955542276428137408493307897469776805514768635449252507525824131756816405842115140313431366743260863662086483514130641169170000573273261653010323655327767720911228178011560922978185941446900190062620261347011226557429796036543918585513542309694808251295234371021387188123161351462519437997452385137311461631599527813524481229157984247399031420678272498193121007039008200966299415723845032766421719333162845827728789758154153184743864564527359854347569026759401305691692685100900853136440008414147067701221061311853060535781402433628768376023466578284411152618234694651763831399503091054334979385088712836539760840733760247645688365932890530278490580279171806425061151285476724945414370157292600939171673681145661796443138794288476400712466122141750528205673422135156215454196208724213451418321565131904880140929410637413858290067849723463152800850546169432672988865172274514406786601300230797970170491980383307025891495940991107874722981009632584682366394898058384787343204143311316351895513992032354543666620864228166704213494060667067239476378519356392470188350795318398885618646470019343077550614823739181374563130804406630226244474011844792439293603076449139217181832958342585410931034965070673631027717214338548801812161574781428517278814736072398479687263442163509104734376614256989825094851953714623506811331362903817176792928387055238248848521599633190380098394202119745588735096632922380199520087738542433126026297147138690197663818800318750256495665215743053912143201751705601106423368498793526868247969988482729508759068685300639526762936571320231154597304713552116018076149362230765973028919280051348181043397720687215310884989200241100975879968554906848925360142934878760448249825369946100922161796008506394246398411580122674408537688192774469393073421615680628581838025483599663765720978118461419059098305995216458419821069082308156130817203220346499128487286619750951996809649914126076697817690231511263763680461364029740026480376958207180748997180067064657059530005434349842947037782136227986676174506610661779106805896861775658983323354548558264709940934929513088261614301002610200429060316345147145284594489463175022163559332821893541369303061845426882624561637930494166655177448970014788042625904857555985907108962337235025209594501180129951488391698948407107071735198456176442540477215483650443803695114899735217526981959616969702117596766343717190600690090518776451166777021337887093878281395623734047428057138487769944319697676880174275984124402296861015660431274698325341091866927686019017090627899129538180069467697680908999478291808629342891641771927439588630057693704008072263068784001370875333156646287620117952626243932615723945049295732349555904331686029146259363723480897948361447124829929139490593486890027701084010167894186106231673406826923842492665002609323350800897372966215323867065800297028916801980309557059947160166200915441494854759846318439790533261817634973868097390340015584574484785316364407156337847040796915151792132981484425182591691769980978292196812617782443805211005426181643589215664856216806409534446363506349895324081461597789012007308334444754987215480431747113396662336333112460190350894778793230101024278079709915839839711840087559299690734201008602257860600521107744951990736392825261127786852418313608360285339498645237233217280607997835682306225108102825000216626370026968166775596461825962532974737354345828782891463322806796778452934495162653218520881014424943147690254339168642060947753541185654483542885847852820357920453411727111824796615081300799089262938673596201036356054617861570373190240899081957110577108880352450061278079914221826167920749073945117277350261017609363599046548786225355959413774397501611727474067068130614912275492182163582411184752445449143663992597001288793372830112547582668094865571006223664361441920806482864168495610397212019959810080667227817815318783749341846675864528508316748281939629896653404717720604323442083915002374455248956840972462328783143500926841630034885323240854536062291575136909593191588123090068967330520655208766024677268409682758694291418062320241207123078888302522771315120102994060085603837171943311813258071011984916616701915301497369208269786972132987593341911681661196706708223890116847373480077750076005547875454861304192311203080597993018391387633526510188749291078452634593129869784784777377645016708448402472722931881368558588505365960054659755915052009944418415821726363027647852704909066760407480485577950653297110818535824374777010349737457043312976329556441135414176596823460019923856695213230042754931636187110852460130408123377156426885259313272852320401303916441874996722177938416613754008199172564278339727499447404658819934301403557819521224259615201730702530394285173432447484467303735967606296960930095145394222880578978782716004766461346504435716163771612266517358516822051769324325384400078183283492256361300454354327526373585181208808004426346271614480489287155023789273781115247238958865519088845173592612287329766951115134643252639884784621136266174707178562101041413195644566897433221624284565720768242580322083117411557961772611857984302115725150263838201080325633770052722601193578909721610720869357321188383822462534839824405310095531677671596562460293250070195505894802224995310727518159884473342485343295356066435709129119637748374571919157430477261135227841393434841091651943945107854333121663002872990655140178136825367635329766457000458918409644246144179632835790113324181607707082772914142441573467167920473731184306973929591711779763078518032669759885742221029922332237363889411098680026131997068711928397858231617332806558950495271363813785693270379727475021078479584157693417493607640542340985134245787212434971443272414388804365267994054879091835068171422411949586823553623250963923828380616536748210067112429218935611839252547563816623457633331732535245691131259779174922556073713828468084566726331813984240202175675275791524841889120224513974069355911168482926249877795019297118638402116797377406600808874371661316666916769989224821770678244998459687410984192531536726225663138053136138083637400709638732117100211692452039523787681280510655366990615959689556017944623263987658009783837402566741129944328695851147817016417038790296445106988815028402823005342677364142443312130225801855571371937530005044759924121971035240737900913003635822294487612653314787211759013555646754430824147655129230326279351617432378442839964689422698779144471827660048876657231431782807226839712025796110047130198885268467493121640974458554309239425293712667832065731432683725842241387371612679863714370892013559917478121830792070670219092262191346230005098026690519718704945050946998190582768702873683918691917005653129898117047987720065964387453858208121530875979082744162409607477591386943221169170783939502043542663477286259356601151012383827725527261060994140609598636939033192346293190004833403741283140175688528808098052836014086483620273958374529873790686397796551611762977205128955208653403362004345333922697399199646048475528684703790024393471611486427270655326282282379427273389167518492360580589401588836319343323012463632254128775257354740505553365238269277882021268503966615501165181754679902050806236942390406614855446499267486336774242544401769052285359398827963330436061105282753500798422368243209537433330304392810683032706484436048456977396598779946224417966377725736433311405474081504754052848210244457691821726132768764188026278691553185278919496035980950531050124069746171201968363965122612876999561950383173774247653261784446885766244158278722577241496292794019149364451038645923482615140009721168127429792268821004065957277077493535916786294919387630903725995158581771270728022887021421155535631360883232564153004782447371891193912077124296423410004561977136655151605290502595891499726596544498628337595695920732772058929439947541640607352614596233745395178380149029989091591662069763707120358355786789625648207989937062532990546997396587282109626743731097902715112489643747246664690897277117110096302799668873218307581505326081589700151870966678778949374329623394461700990517615712677449198999547176404997877253886802846224623703126486527223813604175947791152727498039610193318894429252436367656667062340497078360109010503070550368186523937395689666473324605335059343796550701667846721383364590795936369277670225797270447503610139130864575673752681048482470607610204354436950542015669209776173234393473114131802366170790834246961163118493769232141204679818960413193199991076122453793149282369314975098780716479987094459313792550064613359062267836238106348000154177683224993940004846737397026133244063648442934724949589763010868217484920480409207037439080216668342848837647380048468397684576195204400569084099231575991713078711731994021431888988565400238558314160662618990889615360635870428430627690233366286052381079291746243507712039568531195084608418802997465321640266239078262316974450105912542409531942681066668015410311937707369340898978439711008310640438572479834849705059573424768220398932749722486963221909010587969253141035322878371402630471468140176847851892170343231927867158752993138715587507826774703108706467464297306628561289468466344890657916983848535464554482414491622923937329704754357803268464800580376685906633508662383768003017853497611824243531440538694070650466989812418985961417102524744786909934815235797004849349294780230237010521173499943001576242048134696980002895466919484067817854372289627688127509530009023953341999282652701614588055236516617110782954268328105703061523842882810905655617799877876658861366159863273564133082983606146203125640509811708897414491386393438176473261643192777252959121242180357768713911882289927289961752707798535225212536751503086563841304172045044714378212027392070068803483147116855988467929876325511235366723713853167359541717487467778332639124665557835568693921629252013007061863616370348777967573959492089995191632069258703926766854304170711795836264870006606255816260906791119727661898017732344078914558771145333604034496634690200898879073384200771579019777480522772955308015194356809386304666081357894017265469372148468339522901474593864581212692751169494510091134395050019306153414815966201635907097166603087492784797078814037875721005621949978156538131973147376343784814476274453370313068655584159007645875243363383978068784179769528843691024426363187162789401374739524403612182442305476660262607750868618837066981197933728829353427407655313990769484146198405851931890633525475704904569711587754942819658321562053542532305697310797686151212277318730795197647113076238576947433397805398287114730779200595514187198688290990715701901034348118186712907863573207471414418335692230085249987499800202559726818387712504668346002397734198113115275193241918958983591320760021018022191799786046892929970246187364983153285708261664649077999997517696417691131300187855545014517795957695770790885981750007369226392219883797092876383804235436717806090504942327604177089028634410526943038000570214346529771936995979422706742263545394159397494013567405702874063953316494537753725181511243947027430234208835166310936579095084088107421561592881955469576866284239466208974623001090548908137514762007917213231384280777837024959882756201847416030107641021106445419805318060321203802438773414979745135969356232841288133023780142706864559900394335173438123210335838355911373134257996654325787685745709646359272237681921741913392810738894574639124791717155424841141197203321536441444505499710382650455748978587355093523849124944397494628187933348113425897124708295094154382676488261589762283265142562834412016112982255357975689541361450298684545905854800021579256595986660984328044415165756868230530448485845936694039570259403302980760813582340984560938431882492412870302452130185293940308049543723367893715584860839014068247319973371961171566927391393137089505560551261710756281645270273700081406468608920176756418283623484188307524668564281879837043273909853315032143362010039314454868300870040841815578762128915586231886608856058531831584534009842676675913544912293910687022422793723204452805451858761288236895949676739998556880034009638713623611140183139874991030996522126195784539513867701004817839451018108341770919704360753615585973488620759973613139315280952932242181568242838806250605182459718709227050748204116788171251257057915484798098396678480161353848106665458241038794929351836866400229740531863334633260973822303231636939545278259991600353797136631152811809187715008781286731005940181958234126771941436541483567234626240356622459319995083896250887760871527094797885550771201923097589789344611634781532574623698831268262307238024421471043161959770599207353381746118479725261992767244694343720363808953929787598119294205982261921382647384765011258330233426589564513780151094902151523257604072114919083203518368425826355723142414943298782242864779423394708861254755874906690212428002402821497757904785636055096617157330305618211518394561422723872176681239155192535663763453066271053101390608754833316994224104021776499507284766767485884785907935954545434531144996414588208336203500655658231974162504970974443910989795770167425217334261324544860607938934152446582175025609392396555239152198003696530410690339863489371155503062279553004825616477470156725438509674689774809626398119984492851917206198539827382474610117194766322194660735641906860900987836672621191906204823678858367165864907597499811812205218753808133704216459143197350695717423993960940608070724091175835125081033943762530908041998953956776839071300167863846533766405633264714038300209847514245612640631618408772954087104049874194087751424679524672482935932595223261739729230274851349948095480659786871088501321251388482653097060229390207957704855630611334075620524351747539733639400404783488081597976824591113313158016212797473001001809575013918325830876904492437283722970858133091140391445669603724574937511155046959900739017018896281265685698712735675215336044662948006336107632951582708647397480937211733524778715302455620752936351822704045644863445196457911690009767214578426808655349980313678052790540244821351001715960821702608898421399015276165208447084791914196905983134378773422279293008118964683339927811963125096977238869839953687890229244694098827449055741946491944190270001906883022082225666968436076070203764207791115080925126055362561672889038583788270986776268395069815357347840922830115842506977816091149370784119613864830450514039411224028719109539034296198298418627720347304636974226956005903100717758574833280462276744195516061697646528599527567644181613017042170576677855401032868644865098618018281781733452983004088298390693193605497333437244545047369834194224210572065308343070067361493784448892760690168571364085899363099976974824942867975351733967708408329838691551672096341058078920932964890570825552914574453989479896495536756971799442748550124604405251315059563167833609492179784809596048619323908470232103459984716855871009766765997128417216488347814722522148295907858155819961259610855562318867940198471714026269333624911491236264997905189999618793718109573028717669086283693309537907438769568842779439687562226193795658492198687247680329357085853593511417647826858950516182589787084982040755013042877369970068504771694909314786983548387227823441764565228832913787294361459210586041650323171264778740378723161555619710825567441785174745828881814408866979495113505845740398266162948650476284026980825795198395208117217592831215656209397194393089344855523525402120184668059244539438627819597307349199112023015780096247061770345114324408649598947413012664995556616590131710987485904986817750438572073775354231827653680925930689441430444108262446887363086690711243460983385976711333253059420935272705169278075550455252743437262062004116996808181223974165353458542294201594259983502299382011227368861815304583198276854056996905654129795987035473610849449054971520451062742255717844500783744338099977194475772868984379907977397993418996468760596543658277005957714130207802940726619667580243753382195834870835576168644874984682483341169124053734117934082226017191810999109555219186095115936258066701557542346392209866982625752730732521899183900581898265439193615779955724880621005336906284813124787223620285265682887327538132553304858783887617117802014141401083777380009774607097549387471223985535461333343835666935436708046266547587374707719202146826500593596134063631548852983883918886841214852249762253088631712763701830175349873720201054187545271537536372266873032404766258776451656463681793801696595067207264678860540186839109460688507601310685039259853480359024524968760791641252808122085499978573498186360385729390229910811825200586416739615688463424447498094406748351250898188021329319301124476715582948855617855246084959039227300414471866158735054823625956228088615996552198660434388744034753894513330728647450367837902540146314734734576688411001773924905250892265068439453075351148649044334143735722972051529924197031023867670668749768421266128705275842502336131403069086663170200512151291199883748275556218601640248390520885037706314080617406970339290300122636706386160103513103939403723672534613886805314197583784991226959909444695155852803218040964783177840044942377992941532127409823194864454633321580789998925285198438757198382840347849619528241097916966169891650489316584503683697004502272211142670351631286412084353623794742838602635143738843280906707908089061453389032812414010165542251234434280485377977048999832254319276111987408134112105239607992624668845656267473965225704954306969888084205817591285311443650831691533256723538831092808419447874587323761007031019292449128531462936914018771078879724597728665366127611637811631718283425889605996140670397564328684707206492883095166477026297859635610203002338603131716243156105437652581336589108876671345181628176579656128352453187181247864579952763471923036686442440612463778380174960567819256840635786537933206506806116314600835538254642716733369648217295092305033214405694098162549796902035993766496236469664746873862261691943193070843885663158912116636332273775102291746561545423750692692033102657572686098738366247927547290137484150447930939196620326304987252446620990100896284999007534865567439899773551704648643644475161066132598121946766477792488581154649967923102854672201588125219671552720919211009223731259228179638280804341265550122274520107907582090259930089851486982245352462477346150391422162570532997688454004334534363817990215940723485333065185652795918288109750396019795612640902957838427609994772001749788820011513210709395883334084497140861245667192362393152624280476315338083947343198302085662949939445162180420787108421354823864618292821417454026371035799400292471840706041099804454588386084252979291604023207937022939299562029228611441795032037592310805131531178382630321664658487041023558183843156767475290995489675369119629282335005822581372538375444147323925495414582775070272222033808447169068985743792774205588640470304952240510601773377645323492303883875075662254748787715589052391626070561769149372180905867015149242629758169667106290615467603247168417471042075619097117275237725220299485001539639107756954434239805021649871010567506928144724983580643270852614703918770715607079610443108713579976090719705161795531286600549221434052952634323532972093690383226053254023211766658563245550547536196440325912159368537843177167253789423099285017323359618891316000205934420611959985594715669222652586324787340182007821157011187572729267947140128621784277078137344727657372738642656483223852057548510942223548495515238405106667488533733150217838938517367569764561171776654822530068889080338842593179073049509783307345749817715139691951407390269693785080803785923089825492807150069081156277602214504530032494803630174679493582501805224131890773612796215806699670073061101899037130546245077485144599840830736698362326988403746857788357103868176315793778453761082915109765529135643636138355756071081548241314832330164272910481079969152140092631845630348888672602022464212059220098424660620456133006704935755431067239866302252535107684049539530989268706870568593319831914867441932809136539961881116560503855723770861242499235403158868882378997042069664825291171599973353972612659377532957589728841108609902339416820242305822027371792467923726954649382717240589880592825099853618898079546206825950588638853546846541285920774946540624974291340838829545829268811149332659366094012264404759130408753614580504098109163716962345167605285113095871602187418219825514312863645093984471131833174410861430230764779980211663402940926997880360270083715461485412829167722485978956697342741740790659698105675032971589496722494831323415430045110888879284119248825753192192780045571839380147801426673931244839516267861026672533846137216368614951236942864321477156088140348968235752139395550550734315750726719044670357807431228810061836837496398278372511479975214933679774074212536107077551192945131051560526746528631753289033160649043144283661386653182492647207339934084718234452985661704566057467615614435455838004578640047185070511093608490494078150899519355680999035390591996078701347002566286718112838365299373177908928802854456506196529699063403123614743795638719463047742385414214223034338324378968887749898153761167259179863881588044931942521456503527297849232589231730871564113031766802935246037413646186516696021437116821119810129854662567481875010802658103255723656868411505788722618917003647073378616793600920090858874761149428976796170763837104480253845355568892667936515967100743576369715615932794744621103706425218095854346335914659335020453009156908201053211561710828721666637847522394381033100733992582415155108173560547284835240404548300226384316899339689042808126535657571279426718508595318718228136514588992288376256829362243830430190112050714377314922802941722428568737209271725393772028843803314915663697233585800397051625758631758262323373045026565592962402578869046759694920809170254961690625652880020864842042316183933435167254498751649008032857468522633547317872549115398333334014072228472386241215269298714613241873069743805397353929740125216831001025918848365156057947195278934437390738963280687329384907864568170063705916691614863209536657370062989824909697110618275191794886613715849832395842138810722889742132283161710547685717840337921879232853601595243977433820320449031813957456810335395572325508889593595487856565220057852948480397987829515383206939977452397795427475812019235892871955938440263285154714736910501399887869467775890535387287292371358850248322424340141656385491636237428394900294736380426748086604642561172458547584546887420505063449524271765278882183192346809905510066620339148084185517883815407053974916068901729175474752119933154204059408118042605398537472846608034210963842645806473828842863447208244721005776397088992529768741117781401237422263270338108628051004351327193049135178346553402973794872473889861026991731720376238648211731944945749605320337556061948522710759473723933246905330740188247639725286979811616138747323703849163911182416737116054089718152777868173771029379139349394071584939129562514439100765249984392542757998809405201208601188287497157512357408958449108926358011670380584607176352243483251002356940463071017727454585648003690899563569574168017111895445732160998838237048352701930573995262962610478209223875077826863505281898342885524468201454456924659965744290125196799803595841974031609340491231253719023756749023679363059093213021540048323781379793693856773271430310857502985466152996786751244018067061565619626347764067674710183441853684927120016719005277490380834058731392795149161062167750709595325593819986982969356479387735669724570460444069819903021771012353407843857286075080276994901450075500195500011907921434618766642507557937604795763639964249658799773973969536799459205066746616407306178367617966290956050728000701327480548154728222357941539502198447280572617329145347742801313527456607672448508593673319202646389756559292071272196162967266470121924158055335693907510142560692366499612544431039774765904423449819264044520694466254590814431616451888576654951832866338017800419086316058230246252086835468522055604343332729314432299857519431992284773206787254413029052699616046439614197183460146779212177357881768383647094933666277574425112081751087964428346403873736834872765528100945437168922055947432308369861978049306157567412169599484256383159567070031847076985763727910948071313098469901126195921210346950183568208330792455054925506165240840694583878743749248194743438469383357817898190699590084159867684833379805459355213651656432594475336109195113643024943346287273275798988913055237434182017455526742389166449094038308871984285299250137384578346834249996022434076926180368866715640330136501954609415485322572122554346907029014609020808091247873975003279008452293514757887619812709375187622868266251244499232179687010742972236274891916586221691603287409200055404470049285964699880333636377151208099897736302370335198859005426406991461068086613698320603490094790324779806570091741283268242181075266608133911143235819430345600998367463021741663040787185924321489373291506881316784698109712546112901721020525838519590084497986238939820066384010704747405083326543413557874818885253514569996909708421906816612872416804775404357295717468509333558277189554648264303977116030380618906195879027377587730452016525509767490378300202108567967958708842919257554733199281819462689123314142859609740740756035450464311167123089057086813905824932273489005983118413144484214740579034302361365730435705008982936107281875784992887571742106387666076998735622315296367683525291304618415231020246583414795456574272495875748157088921492035990602740012274309191883401558975660596380369013758654484084233558946903666432308869798302637103949154667890065125873308408288735966944208443245212305145580060500025139438387439422605289623295121979275789898289334686466893634625132067466424465255268785922856668682819727460259416751191845383606657756125871533616986192978764419766370725010461357382076820896406912066527837397339692447394017909970194260425848207636259693752557305252776087922680537385000998933412683227058621814296611717708057519378551592171891865542944119990329098350430435720069396166621457561029800573493436986266372600708464008555891883214196657101707349621464947170904021681074764070308088674555200846679702588889982804633524363890511720784577973123879636990540202130462997942786258227276585678750863749303507977941850919504455514607862108727300390774154441793119137102654233948713937933906832968639196359596485939908667546766643282836345732474031971292569288405016087077060207251635979993201800776431829972349094011953682272610238266763680336071936953562221179294490541107304875298373693694325210055728065444436899143331547621941605092247402618276427258777401446449663905716548415677061458629285340770602099363658040769628371429747377096256503364885729345357564957518833791961465206300477446616164744433682105701232115928804587663000313886022253003215599610886344475160332975190276233699956022321634179845275194028614188616875061518925008077650660344848365622089780550816062359333458201204598501557339815791978565393681384412493580341009981190779178934881470667167629124986628818886217857967609678442766544695794690443146518636058177390034497080624957243323890270969440686875895537251524497148066940845103377317828166891343218125165868120627319083645854881150811791437993161731934369675855762992823100690517485543784076756240589063524069878292000217149720302580237550105027336918409296858637811311220261604043902641331916433386760278613953235922022160123016524825075387271624667579332327222787293468940505329985192771366774743235687826063428011743224599603321108647834330131088703040946570138944093783766288845525174199205932158921755729525028659126259181646865982289287360087402788475463272580386856608663829968029603858960384086260210387284525345410485124171612695557245272518313267906556525429803374907517171372451327630949385907338953827629030574564443891922977320948822349683982812415579390457489517323375155369252543870658807007183193460963857538251719661005149743341580657335879998060246756130267033213663142192557310696442097674910388017071868414751615818736402461852907967500540703602692206462499929554628984261750380635627465785118705291767851858353547146306455931084432798199214904576537862212198003398306961785761949764895496148157138644163971787714679343959686419625697183340818452556289785177719169406321994558428457907161334343308018558606440923934133365787705655099733534586252726961069896485727611319200658742622433317069154297683807720200979563632494694809118706274809339727090769460964173560181307843063115916301004840219166102907610822330010839593976219055606336481407917418567016335983707791921355028453614531441933241615484253768337441523767030514668044918151334998615927254600377530728403214826584914035270871692897623372457456167839152551789027885801853494133928909356198979341537788401918346240192034306337063704615551000878743032790973060757726150072017520559709572254047322845716256968651327929462388323072385364662344416059250325892523150893102508626550611890600493958122128627833246742508276473310984302446489413855361549281900155867807038306126714822486218921826150756146277380404368096751759444086093450237192993816343255020452462373821983978047793874284664185858792045298090142522325734972605885166843102667945660609896349834321309751854337557931429964792473184682881827394727684308183565224208596219654370225408612345200296433323937981068877253324256669310197275085889762544580154702140034564389645412359630914346718562462224864837975789197465982469627112178571787535127335893861245776394713162635812730887130571141507732999948115265082111990085662260997107268489474667410369039052995749368617951284045041729623254285915197809025842850216786915885910429034120984802945734040149139526244039130468299182123359454015223108774149197918865308105598355588701215000169937882321039320052927515562666579072713623420717015453253336008968789733680214508639272064142054084490636118316282717666993098872591168529576501025115400560894761011488244445220971339874281671175630097258326390935800065056662559312999829380230988329077358696007800545274511251963841888513380486805770081195445872970576234278687382551000034987273270647952044539367748502199537717204958253696027639067615592213949564814327757321700649497482744505318108192496012064853069166238246419495165110141039693430687107400587762956131374143370904188341312108302540087596817680450643454518522240498596715773450423080612822397930079668434492443810463027727056563440852089126791396689043212289127351988999416071572193695900002693750383439612066182527039634861659586236670483274642103003006807468252141513322152370625157592009182901035746501355234201934011546666353337913725549017255532758648997274374293389767272163057720813101395908817092498506360080308293560988599910386894388837883096075258608012018834192173697337099275374163512091724570631716673529187427316224791235278270624615472393720218412024748066857364757599342134951010087804799236036770296164330017517627988807887955436033091267099100768553283236086445874111033588199368657147301481477732027554218929920060445570662617600282030383286087164888326494703396684542080676706265651422853522924862054638652770848791029084133485689173198443702494292020323599946941805027337568542900467307638892346210429469495901004683804028402536812130153876647151175842658649837435734819837011107252432554947489422266027080934547120130095302775556138509999614599502633222136848465772286593410069752381439536284521423832814685020413104521174616164397890085940289098181117223644576102285112906224971540776142787006712547850067663928993178871414642648580987296391168319625601020676934477631740181198851049265993946430439200992645098585686145562654863191762477499949285438957198056365243926145232256133400756993713259584137382353535872428411459711953024944922115765829913000352209525681018571854315624438702598085915058643217141316833555596383944453416671142594978183761343580990833790746881246397392451667040846272099635792737324913601653158167220710716719789823234641638992594732229517858428036080037222481430040969200530540643923032243754772556295350823308569041900728093442764994492357127301442554487662221349848146147293840250884963524621093879407869148288612131679803927498252212301660323587883322599244197588556991609489155659289034875979900421669251337355656415826726395565999128795047230863718238756054704609327652456624221913460401949763989665313690463267351670994632699589002376255572321393422039798143641365861526722216309981432299252883754619391754379815687686559262082961546777237867522026312169042182300277675135741242482154817775379352725767648696435189438902895954097282911469380419355546433686396823683710779791370217140711337031282395421678638829244511880202417218519378068278163196516805444594766676211387877474380412752753860964397610454761834505014338106215603364620295586955701077235208611449610038419256365364730949564176395695194607698382577457797324764590649453970842764219507334488628357344280264808688013466079601169670432604755261991737229900388662824095952294462275608905294983960788477157437684554789621241968281090977389644893148094374327635345454574444956939932633895306203900788776589254721967408353117340782521135679380468134840789510090314494669832746246188125391163227780275417942612873202286903573119927668729676000690913516935546515364294186723394574519284160014580194701713391217324382748665881925712718654219517325440195345207464833186640093868578144840413712758492098466159273226865961986137126198786786991621751303072119276994070398015340952600708023034387249598222217973209101074319416456209655706514211845214570484297885731224891627785878679912911724334561280361338811310467468720057133204832390310690561058644346117153518703705579599490747382660981729697478913297494455755334702036908235337359384108639763902625663546851548476757290304959830328251954515117685589381533540304059799727275068998876150291701293598065688493975043123725077053397883491692461316157964827842696603539045920059715398074527246323288722647850250271310026237083182910824478694947179227681728542723791559528495460991779454321432484472367943558023171309151954557640916684421200490638301214564023522411127683045984414260476776432154788017158729376321494725311400805728457500911834889707841242072218445352107898448146222753470028401038749069074705178386380229327050147252665096179459428113202424295088184845706894139055253515786739986824090629367260334410127397296315825835828867830481336586754120055819127112790818242280314249241962458322199949518236696022355526767799584423761606203168048277733885929826294488311845374540012272115630670942174437103732088782262968513883925724011634023187330992744053953416912529421330424477114773920984823828596619751766781092173870156715711354898260018948946460565802695515138197998911224290677041074926873145297123935473899929063629628546671084925904348500273397223110352372804933917416319760310411557006242182009622830559522300026260056882141263580083278879027992491739511752145859117786974871355414741165276970179551415614595526374567880031461724709487650803004740634495280177358836357965498321138783077161941201349150889309716486687157429334352654275024681481365422468054809887303525825395892500146456174424003667011707625761939453150695677161343055245406044867230399502876196219527006713278559708765765127251930367717972762899590490751069272102493467810649783066016095274680523543985128046229030219077270955822840506854603342774434297418728539080218963210309941345583746287172940014880228774919102341138918427791983201631367214822562937451198750158705438437913611685349391177906334218601174571440576793154737881788922320231501951644752212684514639272495864500832613513346770603150837720517530437905572042050275726493673748434904184724517514958829953673532233385565286082732550140578239396837268178203605924193273385746562334618723814497771416392552881745503638234958910075628077081385012601741409580865734474108474760405858258695649322835333697179656700003194044030338386756745008654665899374664881136899671275947974492302903122038166936967940551411645032433510915221017634185577238543032955293658784325685604089893036914702236066527967522360392198506181314686514864388630371137908735734067365478889713541376724554034385800093700068476149764154087619069719726271556633641362253403071303545583781799569903959568935110500609492226642562033382129578028554110538115840272694752782282405619474610741813783365556416012296833234205718012581523379692351556607735643015964442603714506938947077738429190022787490004942281273133722699599886075132531499836709852781540742874987120981634442703139228272642667312605059303278315687773365468457636813237568849944714694987779723158466797597478754813100736266581859715487671895643249937698133765329902322298293672941596977320132617026983841731685518150470935234200315184682396973524850449009474659084523353751796546191960431957578342773920466271691221014179264159734745876517501941148822364488252359027575214781573995986043993468421299875356251743977098252532994092153110796833916156640981865382623173982091915564380710414552413046050035041813487176943392619067776921281607555942097446362424834345695774094097176267311635382191407551252171008737003634811620022618945385504561201961954269931818417535713911147985837387962316445047582064518372740778476272191118321757710304997777316786873543279655564998767023171616712702398372558697468435735519076799085835565637608371083357516550125444761368165541491219813280982768308014826382449013455864820386505064877292612320768626859679333309826482496062901287285106737564028737624364569399143587895336043020553240599724407082284818859827227713128643878535205869481365507645333258363777859671646069272492586242280807352483589075086138377487588997754319214100509568120916329126723215231666812049423204856377209349074864399087189298150341623268327353018725265411864007262177609580337752557271212666559182143549541464194771174183883438065251735358466831307135613389418020647249139944259008570583008200765926663032418878007455405844812303510782628617262511967915123724875648769425551268856468663559069730682666180663550821557844217923025355281634069420454671554717501433216721349232460762579389635144607265934202835243444537806013790855240907042373758121149067152760748945919582921206446417100675947119568788637648293787069788681466046885005344403673682321679459714933770850518047775448923085835198649251411262551463522001359842285464385856220387367199243303399689589591635468566373962131660242541045035893757703661096574015273632902688121637799908417643277887291392804516811270279452879060601244106222540494935951547307641249755558817365458847824598710789797407550112403628924504916752878839712475242102101924318607855746088245718047652103525780456069761943182452218631179919471820416299963571515191125738724076747080646789706145859997554465819642454965028126553438812125025411388964730240791101142349133023226104635050126806452321497415379075822875998350131672467948367590293353305986250628479083521544425555281436573777125118716258326859413989648411470087114681898486234513046390668252293635508382722697906566867969769975690846758411382768781637201629389569500943900825717492280387606931824689734657743946765457547037098369810329084143718690234766061752131762109286361030026034833918435629059770441802088616568402887270950961577259773356384942371565677273175238346685768714398603521677962975128489443784475219868071487787743497932088864516396447113640627299360009178607388120573231948691403617136889362450432467125076567848903010119136843574770427393511059667147364782656434290542664237364597413291010587956233241328988304558573898207597863876114477047360182887256809851088679272947648098525867144971308717916061011471567814354906357080302771607109405300413958861811454006861326183898094289465705736982225828356082206673470947765758963193588848913503715544015790313586083398814478408833044402771928364788056242906987268334877884533660356851985107740109605495060862413416125448900259888186107840561834026714046424084263474982605650336983946123182571435433553514026821210499803346539505119197454801766897730338253408741272360670316863808623826456104882880617100748596025420556341240387743099767751571789405669671896608549604014840045547751749509481046245572830150882495088233982205178788845349165520635394258197129085466019114312095151333395107636133073129726326165379259858808934767507319797442134205635595675541124771362548483836681032830486678160131761071168714299420107802733711828612221214416025138726669474319162733055526763638966505269944271138758868944114940712538602834939165165197544440539896614465446791407764224564601091078710734037835612305231781613672599576803123793562140369182979084157149641331958937225866748815786067597125324724417940303948637843164761885265559518556012080212715691083870268656666541446555293833786165658440127105532745889786565796884616531513868539616825194731128847291947219531540649035592589509236843162080918774014126080970546933465386990570167513594400709924103110985408317753609205497962780093312261417482917465217970000480082941377383134034900745557615563610108848550349672948951040730518644854385452306163063544344902274809515132780597651570973939021610878237442653998930294877866601143768427137621176133292613708643140404654465503074094203162242924742957806525985776120150206685201672515177160975784857537475608390551493407121449065836543989513716985854934343370249588404945188243415159351293300688213100049849426321499342245173915377302556388868890644813150218055089639644589172501342357051733387503710818848496316394357004242341144450228069931733368949125482387966699394695963018266606610120161931326257543922277263761369522365444316842658964346307281783397608537459784203084028533671553452719900310558540900725485932380844871780290837574002262515106099783940312756048561013144187696451839501886971097088080673103404400892845499456155695292677072130124428435714253130624292970327508866938586846978081223947679781688301052671408901942270606199901769770602475184685316800967391332968542955787662515112345035283001845293348079120369074278600876109029675494235753240720911098350638283707548971814227476304021149531003091040476020817857701717393390710744855575813782798804623783629926772670000652870837230463643552149459565798645451541013965150164023124968469594451810700916867415540662971279680607479263163100813283884673953157397944556521122638801724255982101339157875422123218044466313828432033235643965546194242310443132760419381341292961162130577476104244034314784487498885929046487112493984130729633913002341249637629253458039518837583489832794716768014380100504225911269547411257033241063551721890754124530349827144057622294185269520866313243427829730362991640871868803792481506834686847105853826936326770056345197803080188898762306420536043450027587596900460005732103621246633642885460853942354246138422387565058472299912232369979979371192107621893822522198483002662739090732829143673386235091066792641416916352720073582310876548928297078523177045487791997610363074011316753598174098268851851337117119490629917531353556674220661117816876996490732279274184629823598524777433253480134210994023529729613540196588457799706929783803699659031908144113699240051872181752762360568626695518388061034799813866200583437765437281627263738297795833951799820273671367009368364932532994952744693477774839138341452655616557346190173872126661863377440895273370715138519949467144418516592322519040008898668249750147312597599262033252521604951308750413466462627903241505041822386450634788190068621618711817589124257674091008840713934703602950641046150164673506942430277063042181360674364729657208141117346277105106662105100404043112778546684528687365368072676729045564413910001828117109484359936131264485025542381229100908339298203723066496883624026125487507274839801260020460531064827305258883104437175102934816491888280507914959607806275188727853585431934500437528773572966828477654863052296813684224512500460872514211424384297535112018176477639304486314537503158808857310343501379525231526281319248801777742693161232156277302741824030423153372144747640702365607918948130562903286750358401584450261622263138126427448159570426244597866261580743924448665989892366433378180417193393837897534730609221379242490411188862976052675535830830569698166030999213750481253349423848326718023050857588556548138829754377802153006308054558195549614192324120093595890230106076123130667986905109867817589623670277570002918824927747222977475856046543600514941150103937485146297316923494868364560759069729293353196129583446104131692385410431473749528488743562855304721883528833617027216528753687467367731001036497247421831575432013546740467962158729292548332186348376044024035847837840830360440563261966359032459993113538836281334916883989295123336121631861321681785439700413623568395050021425158575222805479900517087728258077164602293376237972723571814605366549849607822329639222066402350359616689813752208128631151024880081616294070770515275092607806696744437721082824780402629616495661079406741435449298535575389821973683219212650185805367870863239324938837409452120556168710456306273128836559795280301652560152694208759234360351889185254577190271696081984830136202312365494466518781215011109524203830813772264659967899886604589304543061477381359780638412753748547618846503888327835042630135996259077525759079450005869289098692208576698635037050077344264718653514380149980751117432019949706018972917115999158954425531705849424129611931354017635735890921545807849416793709624878726617999938922675149043843459756097130110397468688367314553225523958697156722064005337795316126440391186023858184431323450503669398999337032808906770704738469959338527963232761924980097693898111720052818913046533356126697339159276297186766517287139621300921232587736607171097811307616547077956300864137853221302525548181846022814325316231729559361841880832671280300471795984715923417043935178091591686038356788510695452844797224485874984511425865075199792340090134035879816451881429803991686459207366082993360997843501492233443360700502260467988094434675290099657325198618919933217653165748345626329149386565427458878253673511622588479867285481454588090214667952619492789290911907350906836968149807294635378750960268817823739319994811519968391294573288123559370714109495943779970203105566319925079303557652544591046386829729015354838518022327525692938269711976187753411816752795627868282047243378455082559603961726181199833355229010349265657382516659726950976553725730017521186154103744232269633988702768388630282701399865487135562619846257008872237575444403885777730458852331964084384361166671289790222026790118881378804410666690650803866660418091393216706159549929683689593620018813710605881384891045655252627246920384081626532416316868508533884063285180399903186010814879028491785301603381197561827368033117587339608535755240166397413893725183867665276632526428604949099687206091805095721686167106365342654804518201767293928114984510993275165007785088804189888227519034360031921712448639120830587743996120735217902567940017646458310322018145353320554028567500733594978542323129465321518840690841152326265182714951045701223149468168505062503924305221037127486212799680224358260003473976400080660203227539669898290397544544177980577074358035383807245347751772937256830209986318485932232758628749226953206990069374674798808151830818792328646350386305976960164381918135378241439587700811099765747532738145815183209125870828089609318685272296157438973586583095218027372876178783543586966741946400977468606291064692766829683715240649170152629767349979666201104349589735122290103486485523406842985579509460101583567033833363023840205902930979924725207327276160622650893447589518040670957883540088873594354889859221847558159695805696054123640317222766456983867661666554725845702619329927866223297919045562250896901491103999852372910976087231642009911971274186058120434427105744689433747619071514720125287418691862293853028730017164080196963682845165655294482908494543833205020890808247923783800056140637574772203949477560695228079417465827300142208262822618300037287707743015791672658815740128320998108263951011096625125651615789277810492008553217255258199837608110518384022163966591042114907577171032636831948692344677177523582892592563938794853854698508096428272699242964744332381174926627884613772356822896161288018324669061117059416874383757903426300496790806135636777483575727930048103748575355835105411719788415712401909389826216801310164575851041815505607277907484042841450396904811776613964344098823654645614175684409291915585244997499892569171033890399271216473736519556970167279820602176974377367801413351386559034307798002191145658666688860101852117140166071358677934919792257396026122213036588431551108843863394289109484683817375312516981242944803613702986337688516227760991811129617594328921556123935868869372807635678250670243433802794934512771109495831401161810436200036409840019121337847765380051065040621250291232064800094439500518563653504748902740536750195604921973668183352593734546921884255636737197031097514215011337078018103460665738008304078084612040027407192981787691018323968350952457812043244786585900260775915547556654077849853195014766702720964010214677898771416602033678334740579331714189833815270958257024987061180106681261470497540795780851821862169551609788727440706912388600343441717138593596002457460061860508364741978055868482038341763328940857303261033981137191142043732272480001481396405802434392945928331996753315870650140341161941759260708478766383962783349570256314847036577026567164769477893107260834466957415855926520847630727079661880044015600548999847373433408902046501353020063297495985245067226373717412460309027381521816480904075166738622129995271875069290322778451463809856505858051038723099606432024412175769995159321427602555530444922779018732498791634546240001144304413748373930970365057249616637752600485473844897956488898607066127104131306472247711152178947584993322527899076384176552723812174992792726191345935729374132500697775932646612819286670464051706161021825208911561669070002632276751650148403251152515361738864238504949248903974348066993218963418877787381353600116697485562534413325510259915918670969537394126491172313987003098327632289798150346674299823601706032571931883376092227761480483309508481618658091336137502485552912486240639164702336964595483177029451506974463961580899249985401692787231236092792149353023810519164589444808666206726919995774514685075241157983264897071187013349424110687046834217391254478150195791959619897812385955425271916432958207351735086532580586777357285225903393165732819422305682660217399914322969883919708745200667029402035171746202388757141068089722592008209923502217032936606757833889431910937638234561793484629700079711376001130713095390184879931335507881871214163389934313108251691900367703798007942443737051417131299460445049523842666748225414975903592280047667510005096908150599388880255242136042415224798262188008912920099453589667096835751120119327860103461286530140176918911552719588486710799557465626610630488612620129767588786100563170166103609347807454593577345303554954874351852274289500220711877085680714052452958941675797890178336837826431899332574606610242993259785967975776872089580336897839487445357122827428354250744764069741104193929212679499830289165822766743226926496768382591488813425748042240885163421354801735972439205577710263122987921618604964468713421282371130967275478546039102640906301818580726740908600810872384083048219908268152488989976007933922177939387303144343027992668891017326853889582332835672962589130822456840517349565603778906944534859047268200047716169181222574047553425251080389446321035608824350628390225667770214201158526717508254723369692561881378249498685129955193241477951603625780314131848100360642980550978202664586548974996314583366646976430186088419953703912941806938551543914777418444900457307694983156576410436157917127897007176657376274183682933474255881436746737331319324628451860902790726847082971667525930276405699111686550174682141109636533458683066776786606355536383228362858165295263513579810404081916576811134085879321490681497371226271889058641598110811779653704050317472387897976200640232891046910788495081610004010058613916411553608419948346825985595112079702363337833831504296617183640863593477759520732203223187297057973884484295109960894932063353252724638290366059390478894058788466570084547991673773384232425153679653376766918278459505939964914037743593413295938465481267507683333571946231813888660273310271422142903973333362205701648121262456184109810107615243776360575236149303314500940375991269492567630936939443416084663831502129564049015433161088555547893046206069491588445317693712847275225309291800197989613249866124444911465801543876310039053926189390295285271083743636301711155461326753226998952067157257147062821240432530498463078134309027735066237408371513535725128437029935223692292890355403334664610919460116806449380075798810070569616203672708763526918154095140286511432613473654744446360339309305794184562060484536353899174330348370435491288469336459014846798521633155492808429787526018082972410893338642476676370395756071785426305521953750708483955214774000336063878824628880751687472977281129763776323325290049711963576969940565652620523734208533490795524356452824653908495832097164398648939117278910513446764721381583857549662435005816730928871754743126596733401078141008904662250899452689034987023743130726562053974124692010895803065600568380842597373997192340177519269045291941365367690169916139486815004813360196588877945253785707265015299609848371029790238807320056717189691504591995175949365098875569602505549899516677861855585859794493482620315858806860143828956353439304500925400626531585374231471549338905234781451315004598403363106037969797943873569753589082096979389645291463003149324548718276675264335108845738875512864146680360043867295853271967348762499517158154507381441823917338465567598224309822121487590808637158898025162462316426943030312399121156875521925183852798426133675667725454796799697156174822909107714512624397698573899794256775304338081134084903451179950951405604976532438579742225112333459167174735913418794670359107863964230535973306468015481672735832592848214157702277578591568854924730734307012423928667586532840524868806228238249217377034969433114222664333572139786791751845360174354148363538732677280464052639870181542307257144149200267118920078227950751116420585777745912821296029720780337055669543922331468782948139367905447097091857964964127351650124689126498913227263144821213522032545662877863541613001227963189966923321170543908141614661549080127404974788096269015675610661337291305063606108091155629027753455264137468024173035713856243752434050212195403267130247430123091693211451524171219742949737167278849955489385397342176954706256653813822225533700503911193187523925633938931838793212318057211255498269599731871816917229440557086841784822510133050486698772703222567546631138961879597250278432199418500980344590321428366370082270909472153120644597481386202382637876715806124173258240059691082862929388276031505545973676216820529481619536515142371173371807137143016734421215575713307588490226222557787524196060383731939073603173513346570708605021879743545833007640436517941186070988255152517055634448242259607540667001181734352558763709786424551765752311253696987266838305539236675633793940185087694928373527515295584386347582519203239243568274737389717036251142493737063069086182644884851131335227428790950433906567060527047223957134923717903932714680565774951408440932804482483497477741569379167421256274697027316565861680906280582405981547535691920177123479848774443914829644187411672605150709171495747365026471762383880657275014279894008280937934120370895937439670367592210902498341748758563586181637293090120812530107082914026296321818210542844403820173383563846550627701880038608473733682960600143381363174649056196517356003827099268583212114567282487529764725454830289628688773074628824263301164688329678629068310900427479858882407936414674167001637111536353387565309553870069953676319324012834082973429293342789566022775250596687914018769152553601352574726129322639030781247323294548845278198700463284436242788880533395828240021104048770657113051063622605808692828630286407008027305833659980186931064969376021291281313575532743181418979575024445011655427709993878945649063878638836922960134570231605456738045187464929358275489067710664760487796505686631191827967593547479225420219491870219481969256831154723509160955505467404418762988434006055307800399696389302638585351282741249880568136682769561879343222435118178919027950166640836323216978943763239996031546441673249974363250513053938676940899647693812096438623918872429134687745986838975370895351840813372936146676743480494261393698439150493288788911213678404819517827320878789303425089249581895160786665808370836973701507132804475663967480324014830398426012984307373293191288010111743159868501086385627869413981137388662050055108144144952377838110891667829084838177529707028743181273684767160033444772847512405360627246266855343722737997666495697718691224827002938317504266473689210623993020941253252325959346499625730885821455162722446958945614455779456583558637998894205709152240840425149444073326496858486309820588459991261350834397320886998004048755209753451489265363638553192583111556152378166947663413127489060846449519646833085727228276899298524622501476328373699427801635382288523398976686603767100081171108992135483738138819357065690740857281402012714758194847094577448236192904426639593850432963491771340036872249143124978518931626421784979467633611040573245439474140493074984185766153638768739808710647103469728505310358341875770953313116911203159223871283319247174145453071706771660685240430494218519194189283409285006953848466147536632618598249077921959034215964980045280485695434883651580814300007081084797066606024520884316326897132099016647912659305068668680474194516654732732501682400112883870066100593203809582932775965124900058367663799377211627021156284975389317025823860735015447316977563110686415247629015387775241347119715424434275089631525801462979122294765721521763292088984887562198572204820917538162794099865929490590161534912915675941651689146639348838234726479751922521144575505348754495548908564112564168475290538881450254582265695895040964458979178926947478411593967062023856669978365083799363795113059597306028515142132399725836060075053020088853991674511062082970402755884460695201250806518872272275723763113496444483054760751861172124413176846440916270789431626029765970485949228854887760951129811057353653355525070633513675911000197587977566340958217060000250464501859403550421953434641105418097005848686591005761885621219463542201439991315256792805349844390805084215199357726755173360765487858248494449696593095889200683119502773300691364876942511753389605018764838499886546799591977742750699011522730906925071371842798994905144053482267865811819652305408974316530828386696246096782910548307388787299940456181556272809039909934696016822693539887536770354272090693136751312565025603638299718180054761270361925543092911556202600638296828565492583494772235237990992983660448641970505474471303122455260272800045404566758222580344057440844660567223131397498101545264602446939201558788918195106138680682958819313669765059936242392417848713391921057269456684500738012296052501521834219909293363309979306613642731442020674695505259147703140237803025551019663918085094633595762716839926023924928586495989154745608948334717971035695974065611780647004374290256306430849916744584319840941404098309050973919762392493574992428719177982652172600494111051106942241677670789750376767863420317672851308498957173572325462753767640737113761856426332134047716046898419502291627615107603405413529862136245046505631722379915378219330241385250450435778135471606318644759342194897795716971414440049876560909146372604849394882813761051702737390224154120591008577779154073003861958495761310977157898639587053645741753739224783062316126986387537748910128817967698005650888573285598397954166649209342962900721797736940791329421106624522768819152105095755814983178286097275064301247060054181040820386206422247249351244277434030399020150626137048345347336646816493115263358486242279249606721774644820881993798693111745907002655050575176748487938082309895136200990562189753141822676906322237561380591698750767513503865350495635134401543766684471397462530692642652069793001644654530490654649922188887429037470720268885252743213943976979377935264990646100230799064604941227038973617254282054083333562583878299827284446043667263581510601671621612640762934774173624147488810100737366127160692996277990961064559937923761788534221069787340424630426408772350811886398570249141709895008623380052502510852413869214129295011105417781761601690903172946244247026755959382621924236234684221078308856301654514416176840636417386497302529468646037433711404717822428642302444839994627361991406275120541881449732202400779424495202297654476195675995713218485755841517395486866765149239708152553904386661850099442515907472523392121604819981129250180173710157028564342737668283349120591930130568087215666604398988475693982443086774110738293383522256003539358874159138380555940484413990837945898958204680317889329064186315855126727856589286774655348478349876222010091853821374848823059546802178504020506708378642292309604512764583589702178838846925023594836889823010693393883032193161832223764340979466398840751969931973256179773690433558525885081661622959622184056404920853854138410115765167446079605935198826102575072537555944710730992949792289616290394669961668478472150748235560456716784327249623510511846682686885148819378547450339547885747777623798486889676891913741795397844549876379248640616699003882672919955586756139447829748348292478363227272057921847328711344613339048278355970481042781398951520977972269468511449612586843777851625896530510848983891512005035674123445149431196871497250386436170692216065271598941341459132986731841279645076689472865346578224274359138438184442169676761739018678578580009670010910325963524832297500752360529651423449545035021721002990645324310507295248752762479067039812937479472558804202434289301466619523684404752173420924266515158555330869777402055120779877758504592200926587097323285070116848934491738201613777289722347155650804505656130063070798730657870705988134080828251274470211408988416825573279734024212211560455782927403263714047658213924461579310689288211221767909575077988353950711487479180026793726378967104619840393953511594721501702501041629274168511058038188940684124149869280629178200741424846117258856046015129230430325397980512074145499733647682507761183560305117530745211160845280297114725321462269416706223978796963190843521022797763014816906527219037423569544657824898931490396354606018856614847986908110628976117954187432483275822776968635125636528868722069376448434815325629556717687024564539446186898625540450885280789101053439765767611862652722675785008157846230528883195597538378605956517936922000792210381228899006157761041741034562730026331854000499092169238916808258100168731414926466813324763054952622175861972980601490445724658480652542254578424657575086051065163534346058331441288140381864940360618650982404513142438198086878092091674329503486400678219715648936642913994551306435520787215023440600151662352878398042398397633394379317889487892644163087155322540189581405325757570853013637865905119012665774727628862133920151761746044235375485514920885212867931261675182876365814602085393005712392634280406809484095731963576575736598078567488665868144394831601817118100310588115972411106254011643099671794600781574410798255313360607624212734217263674594270160085115334370217660418000985650455840278402311732675882582827394146655910941163789592330460268084359523034468674672687883569895996563091050500796346173744899287935622444957323353208489899371045438777771780810698751092930240442749032504488050537217049044076578527463036011702538893948771033175887803544986088601852698896018559612350240473272194360252500737781055750254442523272660929918675940061175881112526640288077746799715644352366369943197422022336486518884192113975122576226928479146282216516011612892091238426923630671735594634720252028174795068504020304706140053854809743363400332622824593694027263827566982777332529088811624244129579555077913343394439404089216911020386171112970723865320926355670897397786033081354198789602432011323331676294455296980934666056239764707119886050919390666824294827462912488589732030064803067405866616029498399765443883793118164574000892339960707873537661009259253042696971846117646005006672389725070462729072222051067584887085664732794625201914756842473350727487184595774769157534380117213973111563695582797855466614310227049611670052828298944339892830763932595930411382276663437668808554946269812392201353133652920144722450141192548704287317052141783399733279937783897171552046394845495262845618745080260400025150658727292816023411569845176582927368356152490998136010214780470295242893306460482300184038366122041671228865492309971697003436854073756789370342035879105202276538757223186366474715024314363997991832174924764000801903029422100758862169136590464064572972150155028683205780196638302565174185364434897780156028498529118567682376741021934355870472881246863880230614537673982893740390554130718225474008008926144057323164627071206509898403533530634388765072724598940003252125948214233751760512021296343929922663615753399072066913657785748810609010786536867415601879857476456744081747059489238881243120441077275842989867728509643069709068808358745853053462200306164882203647782379377002726749816904051072356221196728624053816626454807340741210049977372767994151724003215081571079823982695956955698672326090605412530341683510928105069130442715551411092346335662277813994657695801592892746993856037891053459659983387669544506857330823982175438066075338944004951443076313431180707394807546118604342663077480789883292482124168013227322017388750217480616331218407267530960817168066948381775197256585663276679926567666013088070961581620545647246111510704322001960153345486896428417941211345435245261110939600976591795073869809692909505235922283384321580639640509410114899663579025418775236042528340544827232879571336862750940104974349345886551827335466107848648560234866287794688844905320185879575326484593296254219152292755776774214404349633479628578024478549384410277845664895903694118831751184729225263871767682674917100226991814421181124426160111632733561686668855028808910229302439661562003522965069606771203027956472292472115768777714927081730357983744576033519311465667323774410758682028144697304297488652697502190278866733484722821821004404197771543005610469883612362534183428298249223701600379241858042133517543006159372979333113315871780516537277250028701275856367912439116532289248666145903193536562906352102740007054391194700214002382806944448013721781957424051003210561518333817785662910686532456111765748710282407133524732444688157576565749453123213492500152586887730547611794174405719387351465167958684462957752886246250842067181710300871212785653740106919384034411162579520067328472453807330373302953907757055421935279978356730238333152875289068575410219413179591932382631422565306872907413416650896366980668510012129586101835287900126783550263147753770477777447215778282752161252071232405381877769425722388684193314090204566944515432117856409021248403518298994631662681278246319253191935817610037916882174511169739183553440150754584840757338250283721788220947739787132116448016602109378939028238357614338218093914592763002855053035406650592227439494575774356190741499198406426005776787842849418008525611829069948581532785844941009377436082368553679523016569863831267020438783083900994750092511060369344440389847229660692877195966002981914078407469057433052454457233429754379860830667288623944006564244477684239616012310757919536883323103206447054013776562123537189741341892984960726121260108354064643181022243877144495733559615811877512920960876979864653637480243300374449808425115614978457939367427411203562447121462793259088328448605083216761429675904343582453470384264244117682941965647432761432885067253157830113272035731791255170866584029405739818316500668541562835691235473923663647899902797555631726442549417742454611511008490683116070096245061437400612044744814592401125551597542576559602509495656318917405578149363140643606247954403745703629071336694239482019488410555335805462303540604008957452353119940170754485569738107066321625271211740749300010699617232307508907906186500322309024996965582986105942411733841281261976784859371321864279357596426999764589568132229543203638370975727036519787491984369025065451059597285861668842868514062226236259909021277950734940568260682905847488768570198044104888712658180603430012806633339802667810324095578993255140361697234865362471550151948619559050197230926046344150171133482331919827248335909864942577933406975720797848178308847028723198930290242708498168373654637246194501290890686847549281203702960283110022249547235569204201732553905094059325395947113774585681197808439410011440131287269538271156061146327181489005361688045591379746858140908517495092583851390451454315529996112768689005890650532641342524035166959070634964899869227577662295214864113249046456540610181749476888585521300592778935045926251131468589569263282811954345939947463359354027489811861774161436013324428120373519038534768158295961015251334431336770512122608105526856773867727060139693034715124550666233862891818101075356799912438563518099493251368753762028078540365376836885519326274488804130321226315827352946012925793476620587290361132160740262305627837187544395828453470334930095513893785500603098776169100232692076653802762381637082307271807088916074582829470639379192094762188011153603916338338990617755883119321366075382713108319514456328120073230110831390757348077994171015081062948577062291451872923786518462370072023250150179040236998619595005388967597305973590631325425331002603974933337813787829058209691607369556066014279048859290686548457367952488442818414336329977734202311797995193798693217905395485125726649933014137922385654289658620326238025120288678724139167748652187710945259012776067233820156838390223699978275114854819615855870810424488324778322614055970856471841597450266919132617178400045630428160613161764904644296514698450346928517260072063259075497214682705391697741736064587769482098280241409540445410153782233621413674613946268939014725965932687933390887443238846932049811787902834864147766851617423921206344386637606014681756881168510163900786803817818330993868833319560962101236368767209223893938276863901863599934869672232391785500158494858101188438493836289830436930766846643788796739160976794799695221955362409051028969264534639468543330472846298580137981225715560503566613406008940252287422102044412661243570418194932902846082432055926776704244638871278574767407019303519774471587930994359895890700572800093069612679173573832679636021036533696624539700304756630221396875280807908845458364395577178795596800058612423635193576639947973612959950005001819951706687113343326123452254880851250402381443939669413053701912942322911696908165228820561100307061142663458821957067289257560890958071478962342192338577214811262785348091603719451406887439886297619294953136628981538782814935227520302940929054170630533024701018035449105015552952581285103778818002009753632771031304234888935393422904481166180920005379884501800648266350455043514862819701674061035663111862932899599122487427795769809052151327325149681981313848951133589880252027551709652829736836605873680397073368675808735542224468869842704617105335739652613386271327764793578566378868071317605990437552869036272187696331870457496286831240375744574929993776093388209767535323028338461310320294985512297492336240331658417038503869216973986144936899756930734406002292626130710510216136676474155545220422884984869024057549914840172348924011161823136950240617422714775958017764404994237190105308035982818536030972269136102310803250130017279134827450739483810837867903909988680931711658937810248486767414977189317111353230770533314063349481634434342970440561024222802988231819991066085183478849293519047226641031460506233600156794946386484828686423666289427208185083234505925995174922831094928635050427743946510216478712169972372240039595909179668549746501485947088710295129534382471024272301157614895755114119199188860280096705697877659041497567843536096623254637511522123904931669780920684981793353191738254081425218117680498893033491240323281365841687275665498378518437482624742684376497018774235099165718906757263377066305797930145146615699653565841699989257145824813713469621254712191618754177784762814756172697236804543278296358862739764243322456910682135458101941617313539018788065052711617313374225066112470396078324593408455004760897332149470831777221777393874664929506191066435021524164851280400330978719093458314364623924942826346846851274110099904457007929638017536369872769015170306583671979703492747229753939464743854577330738649004720146458989749168631954261330195937963836522475850121682974458005599848350665431583434908713102367051585198775429393820227983685667701994342736908920226861496532505697702023051578048867035055659475457618431212771599337091019645041041521182597644094082664370991681724604791005154979084896489734626443921605536320766209007096894452953055090233045377938203832894643551848476002905515033139256012023377460819763015135193390690792857104353748883573309868301404154753612109306467685173896631014942839482447600131249009950048107284469334711211728753997742375180027509358297327599440957345814751539881555741262532450537245048084624604913914338552318763498482062101500255418017436610093763278505841291000617090906174679599588234634460476223027140585281017357966128928380113504529685579439410482960684855382691065831128131945348436874032130687091943147843706349328703444309368202439890190267899252763536611446496649360681409557377608866945503695663818351898189916321066434943459764225560086338998863488727038716020606382162193300729738886792735376278990912225020277249776284896201062324177115550236995675352971746403665491786107485999544396457464779190892048379776508726803725756363319966432442278469453404998977221994924013888597025486407785475294786329132703062138931754760313094722991555257202374417104220122008478641192385492903388334873270768798342696517395914662200598572018756978393691869070189568916535717738877525325986317624731131764738849089250710728593057438541400992148297877205756069949436206701924288514219075845158019247780306469997371609994920758841525974525407034522799364709634071514353190298239615285592851317868428046945579301560468642364339742585045952201570002644073799307427051003247392192807810754863566635564629252420796383080475632804723189172618594588001595214735436557124333008883824620759777367951259170576838213113431143018619947523485634975740742474725577050235261784628558878110078133349295358102101922141708744105941042853601344280426375647957155355214007123438135725767580048237439279452472845350558294043782456914033742356184698804687147572642925660236752619765425516604926391670473874408748394836895513846517565170167558293812148395845217833506023246632505443236803644422838487613134141574762688858488880677291649558507511580441855398268936355674695530324781679389103978519361592639283285842820610543580426910610593132009847965158524121012828434086232849122649467254026666255191874870299303392662259131224057497450367991538461760507972755992860921133685413194863641969009183501859618297423411329136897038470931836739752678870541092378744544970314413271423329553218802867059808706544928797544380209530825134342261895096877976318132800085349452006803781068604669447476657811302830388793906593508668761374768884475642531019856799747853323991061654088493360946294952651231693700899926881852115758887341552542478754418359941534256337369144757427354558813437291955816975544506875522762982393788229869924322040293115561022766870270438383544603539573773874226318382740279648532682111692515411470548628467555733031919554892513663770198085744840198200520954686223220168448553774609529005826239090610888954148011686274446602326044518227897898788609659696262275690032571030622831463030056813244301847862042356091131120891861450035954047537926191376848420403113337645692234246808219428470551515084908057439229916668968822524013066354772627873101958386546798694795910070889217675863288600232509328235304854346469758809825479396655952138354665654691906433969858070666552968102103574248531056471497617347435735478443294027412975032627562086111279143807517223861604666042683126884369620230322288233072447691429641044765835323544831187189826378465162433378400522700155022939501201818634310718966390608669666457476254923618826764881735232319769434472066483063134764671226778765617048222903848483324284523661903331850755426922906788829381495030008517791201130075217385835506480173266440929009499070104179073855568944461025343076971682523344433127180863732477365625725157107986077808871183947110347961444543771707646886539889967133896318632276545347563141263123534558152146372554488710542400430507278449480257970467991005493259730866396767135229395428566868774929285792994665050074303422809030717321938744586525886548814077309141132565481748723270837292069132492715654728892345931665988392336583877159934033169405834994757596194867751571202216165498692628810056184029218387010119894973411046305426433803389380236691116361087908635088570707679549574793762764849275770632347936347484924068366388800294819779412486821407215264051750504894696215967493938767923348826462814125327577815778466946953221797202925108139104404421686657509568869378128057186296569382988608352268398365723571161503888086491144991657641164624305493293247161458885320247680177269565092011956499102049083113080257014599279251684053162068600946151672928830213653754831385618628168024991569370235022869124010949354164804944683448476546007635611030326132495204651506262999921835598491180074711762136165800377130867990265871797466075414801014372454771561220571733106452036705677063695619121046535493751185321389163525060387279449799527038183543670743520113386371712044557368952097755640217200016922036741613081914556531853798230482328071651765730293169806363853583761824864344943091150042486115082298233718586140384401099056830073978306764934736322419824003545620338600215013120859583351654369183870859874236554525655011264644967878304728367974099545779693993708242084678094172592762158694752019472406432756218447876670069642460487119957721043621879492052166541846116805461668233075667570701733226770874613816454048969373356981345910003928869897527067455814326140783902602383706942977613590690077578995328337233710592974581490845730258042694954128950827748199806923202558549327204546701775831964610102945535586466572139411848086099027696999886642184446731818802842658922462745100016005370314787010578229569659078415471163200480487488463292459308304330973511315441572225118396606848748466209047604904175248539702015216825190301505618379443249174113016154530419193843688112796527813581510747177897056189509585336905555929101528687930679882050286727661917136874179109541642127827487566079940130771561017290104644902753800211523811641161331096226395001457841111658486659300264962183494088431399843008731133275367965691512515995662479564545507444385036904079241292335040820326409048048890499655302738679575209441664274242401754760318820721358466754607214925153232548206618289501470048369691480067494012073299311643719827398334968881119527931262382828073725118953961847636991692214963338505432752108985717017861320058233550890298355588114729650174026212131494044163867688383130088167230103186708628331442456699869023976331100834304189258441383491934032757431026597236193752041076144510050115873897196582443181656871785926496484120174058562135377676184168189296184728761511640782816827227890106682955815843719260741955821777961805466480937849386501241197784746725962319853431747858427501412156155039066123089944033086279681375959912151201794343036399113668120250011420983190584901957856352528028358095761131598614818578489507880648505724555975501317957616215236710129216811541683532242337850513592822179635336746622158183564641731175681719443345445925066693061559679937365748549472122430327423744277466408668103764990733939237248220135913852813652640357187650211572481369535824212263309085909427137525462256206589350026263245986148077815663661728492921185251833600648957737845677573722167711433356370472051081646482009609311474270707728484652016163575433652069426881310457648992411887531226426570674423624019144826055789375756022538384869038241344283246390739458417214044436709758764584653795375335318676952991870891992980899753493727186500324525996827322246579453151420100811444506881332623529040526400856386607543839723302927494908307504597062029436764316865004884427128309048676694994974326077253886106495921519594054331373574421519881456042639026020314313209166919278465822823813171077091324014002730221720092127235435393294674732326160485155662190359067462669511794502422717704504815968468945208844286720158105744263229538285186657128701921596779977529686133121070371040586796977715695511761215417558594900201269640969267722912055056787767924123454693693384330210534219080855015505222599007562735021883759355388864107886936846817770224317851065530763886672685128399762334451283657228629899521467080111270238383831280232523148904191701244910743400112954693704502484424473658478510850109532291614220214281558153047508540586095097826823804939809329965705602586363478977258199633002503504753127502327837552485292538530659807581181700762766760262586558495309921739725632029322248384951622220003828017393743540523965976528554121438766880175020771630380418394313308700598575773248964844915797393014669410722679111786696107843302252731682252700639908124833727514864377537682736626526959547239269253158408707456804089157008018542877666170728882458982075675664176125791150475018687768130670825262233381650316448484417626289357027067561142506867814115149405903280108870038426619973894197883475947134011604375041275427197107128009333621340607959168462042402833348882388607124311937586481537595144441334194624767476795788391989487963769107169086052557455469314842101113117236750646285882365280875565948427907137094888114018636458611208899195805471802915023140669487481889623637208839929727137763269055727616245431041826144955434979686020289901246691085619997333062644003354630817392628126348839206878573699245079247793902291001162318219500859006738752261948675208701541372485612287352470228346230070286332109215448167355609147701441594189308798007162338101264058157391162244116132020976075387722166915555028997523770231107944454176075805841772217817850660276618762712716694740442114701266606305952982676185102057401243889851639014035977848626610594829322755620208149808632822339449732690323828483162771231879351142614869586286808944174640675641649825794814651016649580506691344717939088089120326506533114311969968284098349361340513425600469452820112950624403589212987864323111927146946084224135575753768632162357997138060751846734356603768692339398295573048991911780412774543956182605807002492979118958850378503293376702732265157922456622451074173241636109920459520218679017477317432022371827405326470165094967388764938468186306340284120844587689176586348914110967308751054282089196776722324450382702911570191140778235518758244519747167208879798081886521798613073398052571109196612565722141631701259161802196650406992659824618888301049459264627385591256361436039862825273026303942380381413903381993285689487086711268711040041180781797721133464262510337945874972074065238609840615325870378476655857389984516280721058601951191721198263963758026151677469514923521140385699566730968965013569518199599215309440193355247740587105055821766095747468870293541748332293787593077201828388264086131367244339363009201221414332470984578356359014066197356551330064126334717467849553678803974661873228244603381716478365758163515561806491368853630303501243685607402711620837332105624451876729378523607699071935705245120378526612871881819891228466256425167453979046016544674780283762387019924108577291023461431582427144872151865688446607206026824553736568648028471479580211562048310612963259040719493565237390558232655051088168131528181636916075592584057814189764175251202385992559433098352764541344317024564271164369700047673926933536551703201007098571928444289881276027222385168820459964617742667521594267436319324355736759038969564001583660747125692618058261587912743789886883733593895245150001026278727334749077955032359413806403816518991595723234886309901883443121095802105668295883225386237838210423834914805150968579487027776051297893596804610207606209430058673873169281707301368175022242973419484333365070035704618515738176937518549200267059963555223960313052604586517278268913171053666647697211845415567630387352907940249061803857546191644679939546428837252070578892300612299623483409694060051865211185596749090151843514385774899251961576063860963754734041089234671383799099092284288922123451764351432682840504474157193697508550590614783882609594785202744493440868489938848389343272937761713521472631147703301033246852049275765003594219553594915043337591169884019924607047041186412848445390085029059882520866962152608432401749399632786645118513392029894087740554064027376800814492374118072705339892714789755887303242873656650109790131532209637483636409080640892564926700584814740859548089364021709069186883068761088585900716562852463780781122945565390504551424590306266846355106687451390131608600956980168493200942854039101324318152101872367339900055265265333297393765376749854683329588464050942242611189600688990089420714627933473806601510150044777852263348777652996303604127654676910869733656227304852760718332866432340719089006817744529798460379993364032827397963331134901120150238574764763053794459908272305353284855302215221209211137715665232223907994123910058375015573534654093963858904895062632469195401086933890131222800914404161346473453420776393557199024774428287924513480838125453152766514873782423248817624822271179984399383462993082409962370387851443204357928791666719580665048444614711518825262387664704681774665090192893598829135003081660585212133603962782339447140263913985147856881577348797456638796614668691539344965594081902645042828018676204803214153206319714200770526490318185640270653431893277455059710771943229861663140523448119282520237608172751292346928464552025670254633795038609190915742113467027304990377620408054397709461234401335852463908283310463545209067060968345350740607609220394673661585489665282261994614259387050258137220649428972785246696814619227304489323490271971627431694715950466707431061842051259257721719751397478975194528845299825888024106795455299995992559812190885342122001932061533360702856293346474806441584535106274692292404446928915891809408530892671228431572229845864424004266263841737690921061923288462985364402473975553697450919210414317443082578425688454512533873194625139451772537768394204921025058717700232480512795130712376221940425429901911202830026682041189277910803730665385918317485363020900794937783447217962014345225175277635547896194492636211452059464038276104575159026590582770336136688127851849016062019356925976332930598468901848302358804884137599456853614769824733052057990235952821792993811394297311003486978860385234150932074347028761663388694677127137973600051047014469435856477412342104111896536918134927264372853097517194514287399506098678915561931900047484434247125297592346435379797397286732397964940242891748058417608168295028241605771388354111123920062020925382120268757214489021332347200703619618119671856674134137464161395688399568168961993497625958516667734789728475206963359908825376148948940389697778373010580672780424032479639742243636824501888218727948975720301173227686161336395859295159091794543084414148965600050057737798761099609058541737748200379659294272897367619550606150966093592989000433262993340469447525871701823754155942343414748601666826255052290495032507501422470239963630017833373037379837858920950748214088400426516633191301699257732421717822489986360987134888680685542985828577309893342263174979335188292093080349563179548058503190924362715539306949222638282995808311274229329034924663963489798409323933196888129122091361180683046154098380859925273217950034893486391311078561632704302341945753802835067400430213597219361210103436971321827412236396789683747549935729129986375406230895721588042758796112335796099985212925816478325762337622682088438578901070097384142356698938975119797406280556359090727373767276531138418018497823659209100659034171177448124784967329675812026040702631315907298541509564606972889194103689084065294673716184109708679052472970512584597091186081729858933073123275750494285753672667119841061147021937881133717305950139833732675606084066076854406922377293567227461744341803652308104517154175475263613076183051060823189428279106848356018866903622213466151190124186186979674664939523964830603544180703222029603646395809728316874270691043561182645369810421803652003082017447580924135061725672039539256950367921107702138367863496144407893823891966550555241764001627755820942465736455377927336795519386077071133109442350134490898743699288868031105370564051482194204767115343875764818488354267444465859212298549254331980403588916056562053871854643759819503616242363417108383379552982845000723702063183300993029610252828219694206587871463188157910129208318088011848470772938835703572371312076632098881493216378820326088585953288350638861819335304945761456048780962177272049330516111465059362851814499869749787016165822808223575807571477784995563302595414926419062475849832812041553082736522043703433549660357287561415815560580057904501217869588703240926732082644106080551667169643800906669100054753196772894753401314580906471247364083550312725567254986221087760392719065407776944164679258742066567879345955334641531494593746917221400280688904313940818452146043140913499723245370167098446548099180822354802497363280540521983064427762687168526565857882178446734463606176421001128937906566866942432719597275972962612761948084031816988249021447263872312937455153839621789676748284244286726442991184642971666122134374484361405970569425770009622981310604766770392464041911304335039293662796201368702832604959858626604444718120766899144338147266984760061670350565721714610688782948405970332266114559691876340971154992354899767429926030856370881904742114401411933800111272582968895220339660127834136616802877278179924165895416229871890413946023977109537094103368798357578048285224552980351286862588114612675097743856511184779159718517090580108693754542001017368073365836844993693369303729041494454686738284473657758279233594769736245319297854788909042982574097764209467620780956282403814559284822217687765067512913547921128222868424974713149029036472125044116462450504616659819021438505281501962679317014563074083609739174961394673822960396446786040768458225710697713573098955154201417509193789456141279827336693243200836462813189111045909618422179908894359579255436935304540194452744784649816739336837539994494511510795138025729268351919195809584344123656680449036518067777101978885828831329597660489411073503831345147400261770831079207162205929207250733338012492002622093145104578920854423093140087640007593788889244539845774339885534146366886129340176755134216886460424543637448307018252887230287065450381552927021563671025848368574157278874696954022735604466920726757031630849801349419847687159255031181481089480915453833082815279998730516032504724574028483267485246143646605361897218593118013657077193642944706778576253763537469762694356565376703899266806749527133557494059473666198354364299047182561605359582805427424476063703967090422691778232900787386039258617844160577568549594624462964933113714189808271655746981532729695578428035364702595231333048161775416653375303638372099653053256906866826566675837178055236310967077146992865786074595432238317822526919513809319888649888866541204703030496817075489068354041577115605005501626736780217008022927229737760888060365537994233998626926605346263179985195034865799562401149923518786758605648579011339526818335702283246045708255320212055371244272444818761123483141517340894505712233231298979501629593881337200726860540537434415440690006331451459028202124859051180294530483223789624482523551555363701466569242527835569634531372109549859372661113555238905149615204192562525967847320591208255322772285567662077915232260183337594998487079952434060154963449472075151613628486910422729287106574205496552873435957959923814364834108288780934426353926284829770192815655837877496578429263139859076872579900761369690181231229052933528345634073622743420525368841960490526627486719004469269224444105053299299287926580340786605574140601106972810686069704788399844917390798733559395976570343805937162192619169689461255893258164829229522219681013054554178652240105684263018605137068312116045641224751246945329750877703948872256549183029890437663082097634973515939945219604852624107111308773807268578554645135721173310000424425172005907289881318839859696824998840530995660084077995255354489863769156696368164461411709122644634276700284882047132270310202305664133921584063413121390207251959749290589064526647722599817904624650702142073255379794696604439409166839103363066379737371113822738160906585014435932695296126963119813535837565279599245584636862364931138011805610671611658812021069651065514677575084183848839768829245857378458988528936471949803189358566984905560161827351681302422105983053251392473517101606642363666033809092682799162275867447763495120540591383516320395635723484063934241352180716809864529419289479301167120371187398708704594206092805352777042081085632140266333107903693627666418110828943399837629876968001332031630601572732885526364987142946230696794461964816527514868824990726063741663649772659380909337641374385404915034003670359581273519172499471899915430498674457637664273233877623893869328757660125500098553723005519931047108166698474531515115581419945434870271032044488383451613179363545809329557534554761899747239351225221924588274258340103181534651538349088664481173468481628055523126303637159247288500866947104203821094593395539691291928002703443350447849136184858069827959896357647351971573373540850927265282250644562076806705445509881309845077541838649333245408920409631535446029493921868622430005882311748407784712528169264327225279822267846453413669936355287791205239771565898854963168278186408706810256946123500715249375127624771735874878125615317395353195529126431105082838220030920586122351000422179977495668157216534926059690342831910619006255124751715733860130958235897384830413303917775529389767605568629777751068692016402006926152597009772089133785607713426385120126722106230212386662704256380105770501165478934413614347944729063041091849922280097273060795239406658519699781461410053582869097433586274727294936785689155579566775780850865168327504434740887901371111777751871387535387601580508612628926963358952462871452221545010350838270121178485309919832752639793895678512412422441910181705334016301439052625985263053521483929910158680970196549630043186674516095598467259470499931017759896685698765847331188502500735328232299616337305285311166509962127339201526748920468730225057115735831393939492412318812987532775188417429310779068026449834748829931678333227039666640324358443945547270528678237335204789884046021554142008885653776114942631354583331579023731941591475075872617124818034940799908254778163615582156121305722227235872055062004869052741645963770789302315387576881697768631754859438145900999617621253375245238793287360679262707729558577192859635417147074908080627450656498970435267279096284637426570612792164100351407295672066383871424976689975172384211151358307354567733609111812890809460732145536638611592422509644201988663377693514771751771177531888016953422105454812764515019486077845729638708441874321746648242606173264486387207250004261895575210636241632749322777880887873623031984249394159718368418316457705918919999456314641707511913434158165953636772652278949894713430158584544090090792525634280577915772012523872788273702917818855979740804453681447311925743559131818127738968381197057967755894677365378723573259818463141892789195989552899670834311542622163261947914544328622051403623122443085584783301823215453162418467763377083024330136447886545060355380842071014461061088190776302481866721921132160915318561910341031169268235280099165678650703662713800636471433449824007902814572639514761502404822586207765092541452227786257514937061377207988086831309890211525217171048964555890131987891402540488343253177334466606507825515839151943822029886633316208706635499126832885964458032238442776097192888283801995326375795918604619460429403726400216378886944890154745629585688071163280138923935074374065999410740537744146543180865627618309522209655853174867380327987730381152378218586740190925573079138733088137458621727395977074534610916834852894252510668500338445908538735024997023490960994467407677065989437675095800989455014231529139144077726430976996344512353408086638655537237292362381173630166121312301686195347974256507517000431425677331684988645844727333642055788993500140196376360397961091771713555366784710686895608635931104307890614162005342532900711234873316114518536636954964282590007146294882315290894056455148324209005003773700730609275052266387313906630283449481639044928569123978169093478606594444071297251875169912363241336771801371332428520357841747629920220996887872828710509478779424693883154137133764440205253177436559880507955114439950324533454570461531880507800262814024486591229668230013348645517083007249255667824436774475972946584672795998873786223834609566972958499287253662985173569212623592175746337505435185700812733191582251608011274651291886125911537487935392375571526394624939895800877015012944735702504295509821773253769549718027410558673130616085259924132042892227411099835255681450356987238562168154587307536724331959797884321250488353945426731042700941088274514340336264394092389210622653786735352247522925366795308674802485517010201137718910845511692867006221657900884353411882346586233625800233510470325100499369838403613866936457009685612989046993770892195894236252838381594392853537708407546188573631923759622795761430305811259234577699948910259242194599496879161734973653400679799029940321342553703611906075303440311518027053108791896071158752746805221193279751689189013653219013284468234378263003137814677472369601623239136060138291039554164959131850117757927821838353879133544609169522121609325191862954101247773385858505446119888470749860075287438582826828578323617313812578585177817959413713040781318694681833436477061716898547222279095529317548458564340128238977974243418371174685703072504335632347533565226882349346335733802816455150084830185913390910273430079469454820292529541314729139232033851503919225006530837066204503783586925327639842615277708921583555251036695108644191772631284637771729262116288254930248329687343375465297833102369506083931534939550383916224716532031771706002705797556975052551463279071140711181040255113808136223155397998447702901833171836415369347589356859726457091791948570487379120361891203475867942999683968210671234788708609028078965856781590475124379511607142859598446197134854989367891134428088431542148836557361184898991270956843664796242903768830197860631128040948531624379138102185700000148697119054279391012979126930091096312681050877871172456719422001742591295558709478843748694051948204531117459474085955411348147804823279773243140277641376032468164006047756108987922698691589298603362591537090188804066106052983889847895575791460767025743863353560096659482802459736740578487717151661916936328019202269288806119652119028710682476665733542885617430923404803088231620184085652748696473725374899869351282951369932609464069401769521264543523242354373141173492212361266289192925987667445573188625266688690555573746366649822712941514226100679988434708329144177184764581556787741052894555678575742151662426380131078052591963005324073060432092605440458535459886474875640992937405400492691063737907322737348564319598189743197511147947324347831463863976098644694346499596258610897300115630621223602379765487135419313710438390774564195627711615382646900214835412491507625404060907007785838663826882271016748930180411821660638327172858324816134131388424433092804502766096725060297334591816300019994238813860246659449098223531531276711026419754964715543719784085456403829510814846631436301627246707958084205139240604939184816906849520219153246314909877957230276808698473829527488093478640857280143890507597900272458863194186554463044680440067095028216149748407976272303221320462753450028812095448728809173142530849990549740776669341890937035828836668168674629629794323709369549833455948026698909748788633031735982163034160154425411756645913903229542150728054595643667060308079779017807131845173437633677306731137540430611457970836080607249738903841883114418143742719775882507461199929809041912176709950644506944082183823952691050276992570338872844358197969682171605477551704585648417079765048365137797122228021242019988306618990934307405305469680611417242924721576103861021449686257578687143553360788143245466746483663887531622295753032972636256316077535204259067001220423663847856401329755931507223639340314329693481179775509119017785839473173573433823589006679586948870655250390540760689333023145884934325687356788751475128446579530838021098381182286588866241530432879282771984097622956659750653913080655770594068688665755396756049898818801594908581882747461324347675802530673689570852359386463794160790799375510765823153637449588315064986312479254793845416370340146172465066903217982563686481049764133596562361077133940424689104579005352005669993278806137150500340934712636667927070507753365130440610990646710478220385089427748582230029979740494014893055568403119369451709741633653165102823007471485833440247362185595149751250809041367310041303613614422020264117245752129523437150460478965843641091066912051008894477619536010975221447659171298587004184074492603570835019220444789966765784402546158041876012929442717034661577032287542500007053953825586416671661315242110605430957137684773253727667914156875425442367310473153478588799548636087927551035284892320022012454913102429922857976361476331698465672412676101428057525819710140613247142874193176797412750079891100203869017472596887066276435319098793968820146730294281758719083426180295819895883332169241568010220322686074159567889585397232321820096170896985654937503933692674573630957125980662122647245334645004136612663158876965978547830829382167644138803126486888558016217067587458924079492789636278432831349578047211340528557346639949987999942379212510539938394307028044983785859034562601158616130666250023884167238235225624211942376921566618110431594969913114600249984415513379157587560776594638377220409389978919695091504462034159149794418376156573015183031689847876206224085694889640744583812700158961340744757715819337379039137688176601816705250746104230197476807449280597043312073652628296651260893081347076678862706347306345210649911384173646850053135875125930689541477874866609003831516917791038940366501990718464595484174834941515760153523603225791886539144663672487242221111884413012554043625287743989229089266066703484675765435551476365291446957275973254487123416005316089214515874919619866848086906704435732143883245088227404452937011744203326902250027421543701315144401912235073098448184194669675119359723862930723354670517068630104156862663846413668335072453046948507834801696533016313469623387294080204637035358046138490449418055895104631939241077843908601113048758655700048271743693723290558895886818267213479869632213786082573363818702882928740305880966355484222190903166626170927319729809636184836248135276348966560299624208236062632604927487745397721863366923936510857741204945738695624302815222643498771081177025366903302258313259851531560166847368917155614411090739673179733650012708311990335474336764626812473858426439689181027026226015597791795350759980114600342062506417677076694872538376647491941504942599765473415353632243739113674983655336894343761868826082648370168467944914455340852342284616577083524799908406507339873838256279959283931480196643167971102479362127872054896537258943933683042824596188618979544309464322935658336992745960013264112867664142344222342371019074259570218238589818968444979149032245888982890601663451816990896498096742497648637739440249756014525412932309212869193734466626935794106316746887981234647010145465418855048580667383044717306652839386679561783655022190517577432165481064781094140745102053901717355462327430303130764565468590416289166767888674283432837408538156218568981769197069858001859672980946585324312102190185379456898246961287105598869371306418297111119610212321194586818823065905317063612126617638252490422744438101094884379076328274161239213431055975777425873723515978221063795847115126089225918165008961145859520225696652910773352510541393326775872111942234521904176521279579127637090243182640547247444610988969159120568646319353976800432614423478009048133340132718767574920005294054585097073394723148995607675401528385474673495407974505961045945878676991062712966350890952851463324322214243310349811540312363330954081791574637690968433225304322374256286321248431793941151141007445426992302899180265264576082432066529008559677236620538474419083602783777442402354092890743967325791443099996591798237524991163225699993114001113310921584933442849145913149534362507850493454776523356571163038849712429109060461153756152472119675285373191497718619877620883739222993706253432308188129345406572670039603588945703056942591423671542161201853219786439669513061967247191489454001194587928152211514257375080204886556786977136469551415593620245272273038151885776874267302485833927768041906125386091984790614066869106482997996062726420833697196021819045521830077561647521021913443991554652172568700913791971746011951013810168409249812448817843042242132431144152638466180191117339679075703687655751254974158029066102483049145939314851828946477212223678130281192625723638901433537359163221892862417998238454542758719730750454608430398348688951477174251325796309122238067226512303861542113331594849461891625253205605618824507460383905961551784976065552440668203981639246945308526121218317453836769950895413412626960331729932822464870382692500678904836061522140138463885672791303330471877323957763663089956979992463079844691498482659098530280787611324920813490341814124898527795057619837678107178506950599455072403551178907156849327984839627579799916116735245476693600663097969928637291497689196767729524536078120416199939144543087283752589004374146231954252774990024226306939386035916278249216426677820972978234941213738576611682879915681772766157455469462160099102200952267489879897369073506993197764322594705086850539107940668919777358049379499842422598216936338822452541750483817193725928522032979832481345331210118729250820864696215306335458966501662101592521082766238911928236756228742605984430225517471931058520756979960309833155016267276657922211742745143344011451714260275490733890997506376119479992147486542171818820502010263718441844024199833510407955584709159106371458463836520475507612759228216161477172016003443894419896960018304112825150068274698979431501639672049859699342962138890592714247328617173302199693403089229628346420860918694882295977345823804764538081658118775484126093839884287808218184947133962643098401417153773391263676720972597826993088775751093839572864831074446596310325784411622711663802027627430349358880621928531162100827130384441345794414184808479172892794631905248125244518404978112002496583944716287020096245582562178537353366669887746250347182186692528314224613833248209179776576086099106138132913942566061388044903981605281302958630557183555549139374963059513666649171538014359465356837867428229281004196234079492500531022852810956887627173931705805199858781710950165160300058621157893928446180852950410689401145846852263779320266786288381486754145160183275131245950775017355560466714872148716822190627538624458054706591544553567247398575060725211731429309361752269398851659496205875580867446812432729438872600734526440955423818247503020575489766639223325516942651055135683397933838651688909555913514831514725563278860633748110467704713059972907657008730742733819471046873988076955329174677858282464969515938515330433894444110112033170303929523445159003676928569392510328254680974796138577592191361920843211625626210941028840486930934731722998872625317252420632462856287110674172538403344803681804792490033248533961922962608901968681215076228038261924381007908659892737000976067642563921596791933260012518823901274650826143642107745680206381350805246913281866991782013874895358133896745205798400355669367169851262764128079048051622218164925877206770272932317366226360621028730238917973858379215909265759329550567964178354460718228515152339219341204090484978703200333383787167852169368919274775374407587299847745802882222181730643760249771140050883084493220830978507832928133570758943690540213920218287751623571778933434339975144881542403649047678082187698544009818064963432226265104198188354277415373375494771238918365720480575531175487970284665849518057207515689616292689367536925568379538991710216299355787405439759718514171152922390320473995295887445558194250288751393142689765178747935149930901710355558434008330397422545617491029456711803849970645260978714810684812483068064253037732127976126455195203633389540998751996725374230217612476082739237468135805957949911772137991276892832892051947753913419768792917338866468088681958419436951772257302862488606685069833066658256320526308793077709197546175488567941969072141912727668363269868684970430897834883560170965135153504622235728137858621438739625503176745697056117540150389119083178563358625144534091124552765750680422860886255115941309339709791694727727768326733105610396892978779289037128199046260997358005185887984401421491325949260699061800722083113225952732376207996367752124596554286965990113285874129168053793598091009681475802341875171775792684909600662757339285915705966364882446220917466456675583478820732731251530464425824292337782921489270371171409768458949635732356691982391221427106168227076604184579677964535437436136900957545089493945127160423812731750211612732868924552009790831757878393118886855274036045851757017624512128061701667920648450401325778420521946790590012871597149798786405340143295432492020688187177461663803380397826082301465345880565770780803466662573549436800030732736001071644763950417035313244152420067484516205623459295535937815112691208739308487680252477441832076993750048852237277412683977005676551695674607733041739517258345371225489955595002992803498708161125682580881831406714417559754432622813319575812776374147613786267882149852972736022104205576408044549786983590472120451418745592276414334746055247528933127263858198448987051607511096487975150567178079438286970290434580951240371201278835408980649339909494066823617376001878103588602311525070313656468176418365136890561705951876152825447342139719761964430897676186558007097537459896354811209158012763367749375227282828563485752338001279293287236880056358985097321624602351634016468799254402876418910152987092280579105574765301311555975833388578813922319539719709696206585723592823927657511477306131553019499664043619695314615213364545850798799980671418087838444853561640447761722757597999766049835725447738229843242383213423264334518162796604501263348259521167951082846167155179221193602729557396082199138133682775291922252579902038510437511270292110160271181914397255140767871911738200717524117748641147336551926239452348943130499047612719138772043997136879122404624686996809799959633428326980753252229790819093933404057023452978064035709230934587241151304244704920041510464301299570124107010957625120406148877301797746241209182224527726111514214773335290485370819291934837022509896088664060942006314846047068824233596939432237702876579045203064786642864904275415492652916956476196678058956682865796262989574988895245182387647024652291228216176384414462773227599755253730314592985506704983584727093426518169061861238009196424369279849895239328711590977259320063180653423793875776783565243721819089502760894925905543068146124263008631792946833129843032545494552178104777259644293060522430336592819798285954272522176060056464224969931267727922860584612389763547348644493974113954833978564351841381316063051766422864921604890293789471779131936682784390366062743525927122747952374677807122824593989950629575199324886474374095373008807746121659018632203133088392073105879802387439074177089243131200291197092523013275125825198411026661362520581155736991837203104134825495557476918180425895078257504879172050693030693574969396978124476966120164349062428150822629116570539704025251883258222513228980485743421063264334385030998808665714049817373149710249773105093398267350534470303839737275012900892750872716954607512760784914336029495833702972533984418044777043894332784297132933581912466305883534784420488551604861717996095911469013494908114251494198181813071085222444832371989165112854548549270196246139174134818998843808002581052464069641121043439616633466545213895352544112468954623521560880808737987474330114525610527065560609821993725906466343842852755003256094780826210609749915198581384337177433228734881985963389253737771596105980497962739948224601139670716059809449842329051225771849838137148578950818482135146718987759060204295889309728755190045094320223535865970358961576444930181256292623653308597636470161871180764831638073055492872898450262432000524972824300890872854130107234173150997460192586102896425216342729709130538579152381912179663805781353548661137711290744968384752527963854899159466665836404146028687144356834858727561257821083209172770869817582454200554884687633248655001798067984306057080809502456632683211977682043154846356572050835800887466640814569581322842641710998530609558048429564121119425305763853455743862314368125029842437599985025090376589450094354567927172936291671078127882043095792014459845101465044632264561852136439075499139545500723577451666124841058600472651225175089553772954908526971587493072950718274391839938222173444126155529933076990779412960224062461985781929807384236333899953084453214582377420133503070133763055100218938571814062997327279572832887783382667990975213951597225909292553596166208598076311366345913216987483905847092931888779755555597844404568492216932684019428102381936278734354541384399084647651879416080220826084224088953970815194279949304905726355247705721234965101041758208723760234562126397106462120716455583041236347859874296105068841132914451433950272308231066123014744762044909614826144851243817151013159054356833889685295308877423483203833089811359468541295899110934169133948005080498666001418915374918161096868454848739928896723707746078655092203742321298340439304992736816798704915779752231481641540297447505341181807771308787296213812430545870715735378629435295831921758227682660699347365550524629021447211827101317927205003845342837792367038216430020448248908037110285015116252901763293596824407543790610484426998152342540798234613622797175438515435171529895106714995253542122401586367468724807354444161048471838680665902842378137245837789234283535767958170437829290280572383214052589877735901002805644835947333112866912914920602055051930372324317383113080385948505862611580813488263930509081748224585268354018336853589326181559986096113426770517735273945646219005501202616939418648381749533034329532674067641989914236032888445208606061291202493951291466667849003418658305394522531899414234831446423705024457446341831130358523930600264860918776116373380251776316596575410896472154518189726731562685881442186045382723566606959527503738693836934625427920133888393448071265173452594460141353847336147638425380722875269092912890683093696481156744156992871856592019499381309398554579969546256112767050780692918330560480971711289288489338198689395100492017294419580487442373751509014687365788644077673819628552442208587482932667082553352481959325828639978774022902360053299260151633240963822995826218979485786683624596386931833252023674931953404171807820903561116560287149536145406681977653743977241648425131404416419150228223785998375793800223616136794224689028896324369458819351367594889383865884841371948640491988612295013049050121661474033278028256088859891885789189826175945333553123089802602518567997880556820769297405188057607031858829463832353785718925980809195995077263830359583803577281191220236612989355476368744297151642648918839813031961931534153646118625182097143272155302352398990011615826354138273660161615484502261398489098332423028919398010724948830913738234137613321554934554644204850381875456323496553637436185970836138324257522742487375818778174270921783828836525933325954129466409386800962311781377931095224752074057140448409362562614815232122544904356433483116104802212885402017074127207219145323662090847123999779864399355437379513718264278985634684544982877908357228560345395021016612122345767250877519663611724130076134226952664022408062500471185395991122434346011286987153006915375442664674298349902776208781028605589504389690779545923290068460354921884843815039922539409778826097701309267191498541292973580552147761882400167587816232381992274585545285470867187166830334531371737917633178108186459028133317122480949512398184721245145256027903617993546410801053997718200993119400938424009616735274907429748253222286540458727328708158369882065264149616804200091142974006170834095898320577543799406062240239921042556794382056170740451841510982500553639819938439733767325673901872354127866337058311166409254573203880537729545402074526387781230496298603815791071170807409608069082912638735469369495897856685895900631583415908944278174266589097573843818890060221827578604617937963664381093528550043485610771965815916824605547522849486106569679506141779304654928122593076311346565896875417377086781568196734871423715610868707303485014051968696782983494177074938568009444625006544126481575615569399421423001303190916780957365584904040135073395583901603490100754952051637351713222147094708343771589440878296852317337437999294216880262494894352726760731107316599723438078662567753953673293736549972388907169467578672573117859943616785797007928552178755633163855724504429568521789641078236995883875075641035208767813217331733642797023446639065133668846090179949907458279555700210603466178125000351361352089260173889976384842208436905776627161994603683444489139552660178052155076346450843754943416339987361202491623015854896567328797296425843668277335957311262470965690260959082185534314560540904710266364295982156024619505643067208648507193274932124483381511271590177393889535979741511020767799979629483140904266158232808356973996735191587586577923583870843092047532796468101548055017530407557179172652112516129167024538188063034120514915797892563565980548352826679872055429546326937563596994145976524417853501070466853242296378275318525503924722021103796196271012813368492205694077917171898133795296780257415748119241258955132653423049571244708405362914790084736765890951183176434864191009544218503241293393810496325237571318207406584588095581057296020338102050486313542972544552455437036766957081365587332224476757331036609640163279517483806318843173914688528144878231773890008885505417896927993418593497260436898197386269396188308882774899764090881424442141541279387727735146208830131966358741594435608059051032399031744648217791697001791313965386693474465493218425018360924150101805537597153882651047621329443152137791025790127796698149334937955521317711092793544677711243415708234835583966733772760283146983134295143461902489825808013567544771042408225058395259936287400254822852816799125206227050567522507522716742100174148314024020650043435805916271796265866422790635950165326993686522914670969621657955722678881190088970826527053832880526782267305501918096797600361360914236643322783853907671607591666716120835026418350413613449545557146653095008358577790129958691583435911588533051049420050708628535256381358708432994900427676966088584059604368295316571566412958970908356015428031384839628282051022782832731719725309492363707910108018456738391265272464438681104366035267169323732390148029586517100789235924757014843606319257261218473368794934319786986134386621246426163920023987070434533037335090988468827300044701919758552819875667754097915458304720359005658036460447440729726667600048289401313089561263461399254546260615967887577081555691332237469199980961632933524807230025890765519493721794138962275931940841155142900167430393226368559726244486450745524215793538559838531704099620089308699618954508041964059752711583835786391385587244492573439535378856823189728290307567135625036847676158253152214325243797433170117711985924622923755836163617429709681416321069336158754945873790939265713069685686405674306012508096800478696216024044585230670208809129659235076042351517666800695850919390629695136686593833920962438545333401360368949092682283047817053148436308738493034792586466320497821919772175248562270031602213548872245890729118044976253575163001544083509649394154773481016368393014843193415015529002250577497863353274468655922802736558631434212470782454463229837939713113941815923671545531064421289088348006886723634657362983304703814700074450147128606572404684473382226988644378838058241182716766520598168931194456156896087753719919242992735767713914950971038998561155447745174074052128176002942435655687851990758365063334192435338602289099791399818983702222070786716372462185347999851056002914942252461582146093654242851202604452895340773297218531431205661093395331321480674304343349952600492183632135035226094619468040262947942469290081602821840991895989322144946418545151777866642913381151024518038873278677190949585465080834288338074145950817216973845517732148823731130211723637580529944810328166473525631230663944718608691069694759030941806810321415176852923677693778271681538737240345648986266343147658149642668327149619591866933611723599525384738503274480325975463225103851498421486090125654101943297036115526607303635759165651702066532039755345673531168657984102973624849474867175635899862107751671714421121442113712381519106730909834648253521550924659877840277284078404688574646425479737179108377518931838372686943936665955356670116511050921673385710000851031317056052113535456267626915346522508882561614621079928305253955293722511192869126921347405071752502542808276668120062530990329742830224476533271501799806196467203100652651395035040726553155934507101951401726096959358597519498420067405333781470149817644351318936373497030213351257943017039462648649059500229404459874815601173394118931814841796504550340457587352070099644182175177190288791099859506814622934538803657307956729779743112307063787505641097586802493541537596402261680683809087244674246424016800720054722351594044001761783248360471162090347421706643369382100183497455539794480501292454631776718363940695812937354675203892236918677633615078932359285656395199661436927233628282518569524497465122339328800266997830470475653525934429581365939126962291359612865618510477707335328827963996456632832752350783234883557229141754826290310139390605390599313579246069353901807540891297455974692051593069558781232058033359993656486104961782090904472762617514167900699976530050301624470739216815104996735801521220523656426685713227586895814624800788863855680636122039217909527763514397609911505036923937996716946391475528832003810972010137588858948868134258506053475035136342774447348588794824676237421449945126552562029777164026524511087470604173789480069670281980002251115428626336226404936072648333367732543056286129697879911691207085021476467484367050324037894599077451341333286986635287044799927737531143750737928035155128108129861675029461756386218615644479828291628776958888561711090757352473713199116314755685393779993361002258432224523792719807343009414148595380169179302715899412431981835002731993246926292983812590354968377607866299716968137234651453074451471950556926371562756880028470144259040949147792383700000523100937160619782020856923804134396219867174144820314898717650016424927035618728207107631392723243765587894183261078660972818298383306840328360437680599709340558743727337596980640155290235347458118919938374586710766605769189090848971396149226002054630473752310901805262315702777394843468235104486622659604491910102234500631966582138937055038145655395891812245634905202929925516396232381524251054711862022471444306999993717373886517079767200435141454863628836137869793385394100834700180859471243021446666383416383309263617266034098412903509632494425855942064784997758973356304168718717270204405526027898856034228517088217708875242413368375392076800357293350572823349989289459314360053630406738118001017973824380507256543537357365067229627765938872453955537541838569885359636844964727395631129847436313863088868796229535916597655477982433173384419474544630418165322653779921302280285908440420284587538537202663291039124321550387855521507068031548489138245625605159041014035843243233227309445541132496789009839665686855146503427314349781027893420969563267695274889715300018961094838934954645733175752861864553250421043144910902733044047364421269853993858630861772183128200906218630302705496081415321682542671471931607556031837232887569154160570834548462755314524533481635759647139042779032017762313172006453824179066810723655377961997237473148715146195253407718924685750302114494291868314350742616689006902247046399546543346819479746997367355850669817172001061225881556567165639056762336836544501244811857471258414791733116694011110005157373435098034137580845044212729332370198307463374473098288335491859498095650362355952476830719709864081645610437742432998158373090316018581969047344766209363123410250307311863466757044798374212838694839686549214493646693130790600050540335141146297305565533441739595818411201347100061903214352873597870247177221619716321097294317956574603416125587641899500311936324646938944498426084352036148528960785727244590370914063847271310963595097029154576918691013818176982441744792745786081867172080576701039788954367481996249532502641777419870482600709659751366711725378433652478937716882856639210570026895447770380933581151804980126403715081711521307657322764574945240136555901788669494703025284753376688687169197325843607157815671641931921283761461961762512547056540237611201536952402247450721192479798470186538650587293810757920276019408134495501025771172693947149677557100112397565824861569475510578912680678673631016493581090612231336655207854862817040434041958046825996037226668675958527921426486189366123054493573562907391415552765204716039261095268400498076293131041255961114805317998413666379943930967627972913963399390913444690314896522658884398724388925577991143167592453324334345702338377571799047780239792753116656673678865212909374657871817633723932205803517752309522916063371454372697085843539713361486749598424346481300239366560743728218539182364865115204254452433060017597533456082192428379418825328051084737554427669616716521882867670008385968090552306358375960670598585628763143970673343424388929779330137767957323823672765573590892207742229152525743008986291445810584667672204108056320560769633855074843637844879220628473193469586267629627332004335329588197760158099079882632371259282886639078019597775577364647072737909146178780493917613544923439549943242769331265172416639729450514682326213854259970795380549047388081813586243886267371137789915616386835989656252884728750989876089898725106389046727030034073477264483362693559492099039202741065270446127862628177732800592258015436399435913964153944324167247903818288949192903017387400588445586308480406023136519323774276079547610803307812290468834030344854933509353306070486179505718158960060321689815502638372306210953498449618958577985506329794745693253773408351471854893254413662853397054826543045346791343781962308088161690009928664838941716095885467361233690101484765089928487665046850546909204274255189199838939920627620571221317397440330873112314796937513065423914613344731572182843192910318283278973267566139053146258815475819928129625480976332772627231089554551237290602274163909895533425858445526968373049657840002322824891491148681071245718183299586895344374567118557464062950107887388252501434641200095165391469271893680691640327957436866179312034895533048994978685678778665931081740627431904270432784949082153722100762962319615164898524383225362552149799459070051672716413673261448705221493798024441660067786690667126206136693870093164287115070300353174475119527435145951769724127057662144961567031167371704412803388693987933347833203425241063638833959377708594968183068469708178386574142729570065479394203224219334730597581093702418932979799990770697642581324349236491976077796669545947822913833031305736811290415639508855699484892265434100107706272510864772306300057502983856056242337365489006630926438065608859733141633687471575134536596241181640143604023155175795493430766272537028748893312856541535087921050631154272336607438390634250343428903486424263583949623908751061536318830667474466658706989668984177339035289052607694905037737581489177644586785395735913165386461469732143571232668773031330041853346675335599294441183774439744312950998511243935505027125661721164255036506713851408286090509255036918805208392880014779662485788699559170690838402784769659923751815755864663065379281097336650475697100236891747794126243284821585940829441430520269493147346155804596889032703918628752548879552785232279713744538897707903590596509867201237658919623117481927446517262494156890866116932201813027706236779673128075818277938497023606988013898329907279910402825739483315276420310946074290683440865883292750434735953880670569355010037998259595986899172512822707407687294817086752452003505557822822263065802820037254169775335894384221199182807582936703089509109362582603225193557790774366585445999630112776785969603534537094985759750970320552213151620400112234670904388649780172621337819863493554973794091361074436780665153811214565249804680692497154081600022888367572490625202920487234173623039544112004511767883957725544768867645670677932472239503216952904047960061986055158399913856062069117181776953752691107564091099753879103873044744769759890926939751962415655244738827676785191613451600307636381905661038349137923910299129113332240425886355381675992862701201143555977793722737238040168564865232453146210679303655368565227876977934198565024175603303919015889845402092473240963576737693515491056494236033920738715396038198138256009268194339808639162046718619975592665758933402499107761495458411389537408190611964106167721432322731605163529559161465017584964329254182886357192135878873656204561094953511386994534866088014757312392770106077752395818460547221712484989186727348539368548297405599573505932975991407243678893439186089210140517203823680980122006347587734233941049466882418121808470431437220556120418339608473382390227798584938416518501854308667886544976166471160438861103606891894974925313738015596946205930976852642686397657254498765557206156348550140103815943406704429317857326121610173499940925755014199683875932336508049788292960342783824113282086046024841125535717001852131913204824540451688540832534260647600384278356839978732699288128010130934074656035985910272568419411239341345679253821127223575407061523648841521356986025533046177748291086791228488616240238070240812204041485885209158931737315319990094525496968700720155169712790864784885456282195781476836672117418091453046227948687382811636470842960294150149771450719207680048117919126313955898255569643799484849009547278829666897891580923487271570363097600438253240035293963469080991541687375827181448817407407209306612562613517840969703580961331106515343553996931554122219692163982608382965631373334199851955936741291794519285864127234137350519620553292744885131964695808812018335126200077867352480504494328352517153094888708333324826678654239797039875217927925506031370914891994208379241392450953688763039643171992372179635455438606552000583503254876914734994625366813718937860791174305379338645798134394119591868353738547096995605674747000646879269292601545015666545776094236325424039627093508946323131326344791804536901860835556856658981024967698654574785877899401434812135628420105020023693198819692026369525538887977465181281762812188296505535879311032868229022578334399692082524585662814654662694859711125321705886501546559507631186609032247069473338990227623466665750578720047660786644574614752242769231325120668213479087126887978679543789501763660953017946747011776841808914082092629120751315735796306241005643137552163825382434859710115289972145099323302901828566472015591345475759262811450314298480530009095541176613853694534351642201879150329564066140112955116636572090183462346035064589657747854699573082627924893505281502229370412072154996011930657387900201978256039570293934492130923280321358611794389905699833428037500820012612646726341562763647962461467049917213628379233043706023376505934293800796530079310210132038141408156971588962836439480404561299313688632384289868287431994960446588149355170504548823893552606705878805897090724587662200762820670938336453815819537843209180839449387833831737267768922946847877980384924960523979434269169215381723958253543282362467559272317869968333801554600264123497558245936595934919281594759849986794870105787233989214921838709220225996356440282062676501545638541082393115676247009250327620258110113859358775636831411730913667741585812880218981078025653483642328365392003130699751631153050898384328407834126801009401310681617650502712525200474026530620301788765354139947386404760188203446336493361301863723612410726429694021953201074985095586388621986339790536285851459729699405266241301809110720029928073350689810180016053370269796060494699972483021698571034065854963507501842632203064307996488243849415532767330588899651820481510012494346706502972408157073949196013950217941275190748267033493037754300972009312509499606725871118321915873075696180133855198868712918526327837474270011777861688948593840206036440801245830551272733706293672611389583994614436425370647858551668887138160278179285487414086018787398076820181269264304363367053904896017773622373429886519118321997341535415021956490744071475335466384969035196626697020395907425544327599396295124821754079526932587850980003377322431178749937687216213249834087232440887083006523643818660186368149437160355437664357788192388318292026564831134568762963592425178041071825796354213023980845333980949011084775252739697343424516097543437338600984989550219649556775113052754750564795743043297418303688282412722798243207666498534410864133834938075330607365250550055571052729802104615525377659952385982849928119314736269504507091930271889602692312693225289429878682540904732069091684286282312182587193201772150418297573395501954256208232307942686874692820788611258799875028907810570864798217312698036809544810796036456850530745016579311486916981605328504187339629934724496035161961271698358779175106776110472264109652372376913849996298658478246698442967835372765607978875478059732584520294041934290587963440458210307719983412230362194511986698420933422576479480162811886975584927436721320298279815645851652709753294357219362595752508144498531896227731332498295360696954912965607706775286009243568770003525471856934816693966783419558768365861227325227261297843941661952262141282852586035923059834726293451263670717642025367854927612150848746449649090692177466825859581406053948769529674377060678400647861390284958143229388669065061865822798566526657947672097167147777521770294041718420892534292476274953201993462200327463104887596035327666742723797525391691384122906989187472641045876301266626015280044486458349876645187559499956743755637553025501658324572826018980772055919531357173753802200658815314341420281760240265402308033340369734170268080853646002291306231442354319804163828477914718391125716089977835812276501779556591309911589926562673837683827709819276694343594719586156326672853445470610493269232208275729055055709417347717811336056764148988527842153641387813784937774527513122156915753928295607269657498920923305651314238504132471986520648625620262125516722943506644462194389085524190014497800631775658459602779980181033329259181037576387971668966718479536730780510385217001868571856386459929376090973200669124517816822407455643330848164122658278957535289585957343304959359112127390692338006635663758918262083936953923459538067414110278008793034986419180856466510288683064282673032645281520215067225531138163119934468335063227804619022878251224109127127836299988825947595809894422465700951546422752657996474833757281371727543798215181423859460162388154554673980096776993769884679597379135431889281309587508254306266297494994692555708024838319681412115494462299504022900957614833044166047431007255340559480819921035611315955647777552259829326344726454045293209602941785165966330249767597305698253625596294261781732443540638747399256523689099815882364487367209415949896180024763357394770209677247352490374154918461612168100473166900034854789677043548195416930329280007271814029111454707204754215019702016932653337831077760737962565640841741102541781150998096032575603032887861764587375495465514300788240639013835789603577675190056252486353834428191670870342596543517728863227194655164201749796340454832766783734578331455698388476698426390385428495675970765556094785982266594868533472633805166164856652851731562599411089955723736364747478611797043550693044209978782902270486859599892155950531021323973491412298686175282722275594933298959925316865356759326154721308248427406271641895272336574217408233318089772884758941471419178079036347773205297639018993547296359258784735054587662296594947798466524693866599120161740814250489298980481988045631535578508721746250845663253292147244462593835846984108935957262148397425342998400798518479526856245502474220338488808153992840286206365034995069904483285846769058210335955023087110995038024816938589688618929685377441909581827821878673590055596306576748326838140843698037251492260532609953142754684824602496336264010518370597669219311096639679540032047966503769952855086907547309427728397549045778411137942611646227571948761724566891268234805230957029561557262848779801671568249988623088415092572046251708966046081471220873683141201972823641285079709963679230380040313633156156616057976282902742930764465212293174202101572224381254384517879810307668999075347850290370019255350696287858438638014641065171029653653176944587051649962904744795872254754816019127717666418191095582738206275155550070614238075298056089519125766214415242600992418163904831884767609112382379530348991245389181322055922862021449761810590996681603641686289441037428012472763724372090159227771274406575188047347846939547155774867887844028937492369597774172569752288447458513944994404279867893714473295825704323396488636023705795980660657000014463589552257547827435510131622550371183261816058078997935234231712209119492026261880645828114402449348700018786534630920141796133451873961600531153769547615512745775025275270489295075381523086261730772879770288811078348383437955860348083515728197026623928959635096176316589763354304277799660206555045146475476358093867712544081577106163821302034315627780544921733675199362632138309385933130984886303909376142467587651355578326961234576465559170454962153802512662812929781853740028063193848792573005179226258442875675411826433877352223250585558625654099756387205318439662264718184624611225876213403215328494503921029813749289863611305729868197990292398484847568226523622558148799040554043452962900640125095153646576115175794011513703216872948030614211214147215485455402930471372533628435631838015369176984137741268762378971621196534775839384192542135801834684879002499570880516310935124157588483001363464903696058687775534848186783801085954280070221163193053915823509727308466573392130977936210616915321543276562096661105900847818486499947507690850902744761459231216573617743373274255664866059758845556038971264859163523219436841941074644829636363594911989242342836463265730173673865283669544831622164395401698908623536034150388554908637228858130637616951287112031860492558504511887241578060642765665922671309321593998438005131507702962265313482192075206149073645015342227666853125795581720039449102198133691613756771682207356913430840210591237981860151543447855715196569078321632179113268619253429935068140826410445046576625351134962085269973870115143819226517863057257955031695442461693919074507890192669744307345579369561072688395078838715376563715181686929381092791541539672264898601242415657457764850792101954904071661001760464577479068946194503723950807392417792480415421963582982721855497160684583175990761402019261785449288877069580770516216228513863593734492341095495857033063892392172991371667061081909448629569485393114839424810032687770907758103645036386948974114284987731119852840531299273586725314517939180826056149486591839707361762783124530609188381594253266702270599429746855661740563533690382138122567918246657792511012926329803810843440698687991538773027165532167804347951649320476016616984948140715886429943412696559642307049808912297471650597676112034784465403613380736380711375334276992347573927099976023842553732099224807238055952216753260139729119848999512809067190784994607834281599884894775022118086018422496741263847604692872276134955054211791721263670980069651389345716385653140697284149348543342612449835257695670829198255958646540599779614006045663787807040663135722745925630908037984335125619059759230742785261154181829694236366285226312891714784660777580793214672590058274518196552627211738928040442575863102531158857988290740584992452464398063088834174697591284648091180685211980342364318034944309601279922098444091401841373567481557889044380884303920893079456262521366488063339841747794302981307910696410034434787768353375881058445572949028610044815108664540444506979207422729894596341376426504086489442730056962804875215381214764083960405533065890817314532636007479383993120594534277043702794192472109204644577827136866092039906866624726549344212634128264991685691855492731703157822168560228861618359602597407133780275480021741873304416528132116314901023410944283030448442306331116106631105058668096273282249099930828328722478040016238801877972579112292309545443143506578488971988252442161108818267136697306770243683549790897998894730557567262330457562572550055804852734963775827395374403669348955491048212282102453568949478395833490189531083517225868924989713804872847196343242405067366939896768263871268453253162092931034818745437718829365589733205938094378826784466079512449904391535441452747242401984311937185914417740217094466599777973000285979231587358714662086402478258711995668519203822575085722340933218104458799323407470805289570582860318113384580071678245736330217883378879275596990080280501497041251567715203660064503528858437410674303033435580733286454134635368781940646475805246452619903734867365385586620116166053895579859842494818794310455284559898724536329589803351228567993396948492794246476107169778661799640597420757431664956542082753107260495892075428974229254040287462657386110147991950302934158332769326186720664544170856702809422090315339704752185702404222159607159273569894658036162961746451214526007640183578914981781098299286534316136466710039856298594577786509581494868734143631197478957368770593867735927598580855821262316246165057249059734092982310838018150517829488684227741506597647365032742136648474108346231051888221458218280776685145450385361550323224600679071896608139035093235654569021305234639801915474131925391338028866879750283811168179615521571615726564957627754242681343657432517317279432983776589299953609755047997599707141225611168508841951174778002211955514058336672200169398693446562572063057804400491800518493713083523514665803994535003507603733506212476533628123829345872669955663837593324758867350047672217866728066664988615663172050828062442185349197092174457035441447889273925422488962729034376923852120823686605622634688583971903656734548276124469000493809034836547999855221865735928703601461639819219115194627156109549372866912678677854764632395994931225615103822854426835911147844187101712640790144246833141163371320037024934207160233751618543582158954639297633270698394852441836107920615171637329367236508491035935624819248329929633409564355707714980769434051450810150981446798683411792721142964310851839651257474309222979287203577933441295106626242911070618912082397499785425219057787402674462693512176010252300036846415177785620891808229953854731341618976400863355601051809740260437245284489010024294509091874132951644234841456867946588573272009123002439535072969229738062299547147833936745548648278176439345822824278491265578549391903010118665114738895075483293814578958358671903297827102402511022117098086420001649965698079877334747804157823850942245356110843529086301629713142106474100669039900877425418401780377644345459488849192380807524598442011755689201210575010360053519131095391833248282762684033886003916571545256723308496429061063880893030586884011173974478593348861997502226753173605514653151755077162645826408855414944199309791022350233269941569178170316797479359421402908198227764077751864362613667918422127576882028158209233462140282907555817023083810091432968578698095325881236682135270022757556718493649560621968088281637479815958249442975637915151502112438354450854940283332942477940576726930862740429058633247032404118329669859703047533807856297955971690985899106818547703645207218596272311680856909726678922672622558647508750954183445413249038008732929765926911455229404760762423369924197702868865267311828149766451436005745657244602308548532381541849693037702078344196482131495245880799343864090476675941256374593370669623733696958409151513132351041184343268316233966520384516920525837591405403307025373974248242109551272790452452522600041385742896398743198617887962583405078813255703901869925031009596246270036526799729424062641826182932089133855208959543950016763619370425926243305657939446370667013403487424988345988006310044444222290631821605839749527382352772187476262488953322538356879373325494637307306287176291595413196101533495259759801549582718084816763505472389447029485292055382935125692477683980539823467413574329406465312878413151674006204303569841876340240082523447868022270410054064665035590807225704808305758585506471209211240840137142614674010983978135467064624681317940744775665965945128056352555054220797288251187374621331004627988218045906252451207364464486192123578683419400832324313903334820995679217311474625009065319729448963370430017475703629581981906883496326395383749604433530478036863378946127669339643799897117912262584182997081964099871060060069231784581730343594371146267477616342805341077020808160422430587167810978032761413014461904332866605677673744037932558356876874625342047738292500998195721786485233341327208013006186774365694088845759560196758138508026335771647951394518938463826801177436429611174918438824619910233896952413949123128785050699624202140756423489357112334829148673450234159539106114279390253918253041465679625174829309336851861743306126705993113762625687847930201780848463301377316654546394910141913216706172745928775406816754912373251124121783741272246414222491114813309008400503710323660631018406143630900002726274994225993142648869837341101350374286819339712247723814111209535039573768081527661313849982054035783266135575991617614745399689058187511485767293004201932190999136901204602335212663980949875945676768062291546334379529901224761890500346922052926401059388574716641853062451328657908021993539571476455157012000476761807493234537605842438614099360728241690867760474074934975701543070118584537862573678810991529885976620061055365488218115489931553389543331738950920054531512775626602570262597326200959949970762680147184472809697970499164309217714802263228318461958483412897350377893819052299346125003611394300682298354789948561815627400486143343583254178140292136513714781935979840064731734656708500939026189802075952142447853588469366707093887738063718940235602208559774740842170015714801569477022287519501009156201296524731991388476744612162489656414627928343691123210122996171312558017582662949753068903994433727451330709882222771218032315955863511763006442679950194278141501929466554440436541843689856293624566195148990918578085496698259026277788971226755033046550422222549968094203839019021673388053001514744623723831394603430012096596143695152831759053297350390892097581588763870320943806325736762604919288084089598298009171671654097380964895139185235710685607473659239471078337726061210843108714383044294553876782642526410073159907780292108970164855189220185087654325115445721683744489733710931380191955475371677005988928227739678721658170181945547662615190040284693204546411383639021161703159241800836747288327006141752559571734792835962436664697169759294159980605992484765487894877560448677381559981859652952244424325055261646557093626832648891527818350347572557441184371914840247916846505441109588196459948447675088936554625344362295662210854380182094498011560135839667722892574030738371578263375372793259640663834801339194738328782000143027045265871995605183730074499111139772470872847129490041797515929156313629279398328013450898912105114204436516758089814049883327514660313484331466771779246223618047325117368396078276406271042674403145608813728834171700155262796998021916411054442236942359617242868067195040823895908174732866226995232937089148976358857471546966405594651559405774990947691517346205807253895307015436769290722832305495889837809079533099368593276666591272978588881219175245046811713065134161989572899267432356674449161423842242362585250119928414307054738610963798321492348505532614484867404981295535893661708104106835226129804114319299417530589311615053244438694118163378044566421289308197836195017292915432481311158958416650261021607061698138696882050636003601729066481494729785964529449972128559951333282387022949066660375860833532105553232432831900723357925019560849182552650730640732916801543627408319820081314502899078113686544661946995919320625452295374680208518570243372689077854701928708159709958974368581403226253848543902783747139373378577611068019961293581368822629920133352524098552518190113711932474257144639683306005553186898760330763323856900165221129892235819852300542532239081682356728284219500098959198676896250993302884226426351271502750364452877722416139345444047157455781815934863434341170909011672135573801521118375581891618403926899084345713094042702950064911004676163018073400799143951882384654906640056653364603386286598698387963434711041929325502771602892668698607674471994706719995558724859801939004299609790155258464106733501281365695885591646886156946689582236787480726977114027713569922846147744897501672471093709367050565600938900993070922824661773708188074427238451929263790051548563569518464328508136808014825172958420801171361181560495693474546848251171467472925931100875792317535388357263597621902206399706811350245287672206699433045999937560198870950973606831403724914101708364560279826979969117645621370443635993167557310243959441780481973399081268298298723614280810485780800677428012350433408220621546695651059251344765705303699252058737821702455108950538865025661409377219322397168366282763575769896641974138341812147162690832649627938454730250678420827732786583229506319342453351815728919969253414216275857763455177853741964014104780906369828608265347074133516936633920990982228392261266971642826917515173631600196573855756258976228914186297113985575830901275373482587847131780967341136187142461615132316051834490023779862750148622511835405371261613863667278095221224177806957279781956529475772921136889626468210970101817449741524781809923185228792649218191355226242794103260115453104583813525186048020297748025994654034738766921398422250310218873994597838149327545588952194933123302892673567741383375407954060300956310035375466764703175141636579581388162016535410619360228897657676467792588496134330176427306144253202704904441859331506043226210849393570365750842870620926583507856893085255963007295628033033077880110981527088754107052486215882903133622458650451403435649733251618414531319347050880794315341549758339056249049391833912441451461713696253959922500963261322111668530096885531314516708006976166909629807561945800952521421136408299045211845267678861393978898761896481140560968911853859928083491684890454155123162758407610003943659001928159365925435979399388989814130804989618344954380619247944968970046416344939014281815613444190149974223677812409636762117376955001203591892398492218894804838425233750289560694432534955403082661122410248858152780733635871751028151605325797046009349806170444277689028221734074463859330453667707514013862552351757728228242048227985798650201073711411836885985903158420678109470339362654641245658149712566084887137466502696052270501915396393889232408832947641213873945640912977406209702792683094600284337620755312981958842733712485063169265675518235081694360797678022749435667401988429981592445634013638071483849479539894170490774411447603794835450996597101318327318348996380168332148930118910492370621316680807650451599236261783710942412275293873574432218374490888898149790901850474623931176253125242185198037740219209049482775172021939899785577158483488931227880497855209647759382048692777527854038438223563424541621490625896143347823928538857364704121329767551894848940403772523815932098559200873855278618258657252609325557268164540343886689343307896479856642816173563754805739156728395497678753203933457155639004428126254859146338355895400806688237567409408106528469430210171546432760555511056254046423264326258380091686325218341872859334623365802560622470707014092628931015736201238521725197038088053738436317438653126770843255117654569588379239097391474501693388793028811984341712789540764462755499941470548189230644592687921951390973793776052753671861614598030965405694231740261913872355241017546620016730789502347017494333808772678544868881544549391015366683272999975879805208793611287664241958736646011432203080579309655246386937953659308643014612116308781341611093467058154076598152389757498862405518679901017043734942518915999486780664318939939122743605173535548142748565734861702841071205136135729582436030545918002151843144033081799857940691715182562899113206302310674689115935216187606454936578105414896130277638690839723485397782409612467122603863661790257596051315987006485528636355218981926884910515752296304203750274885971410441925855143250892317385016859218928089596091721588728429528178731217473548778902485978924488357299907227530476964627422838057276044342253818407334878816351221991703501871563802366421827606448514604028985190153474793947651058040486444972467184402550395427860488214216191326020597521346189956682805274071451507054409010574686555107242217779640284082723286399978893102659153238690666096034927008443292350018784632984602278956827710180356137711263764121707401804652036918464368365474341246437826563679903159096245078838499071966712590158664205367315391622307909417706250793201389556522969112210805526277842283579722398354242673807985542220258226399109140177223902768184709785276916544658663793191324939936514270558269592000567314386893705393083130609855942517961792639945434298075933380166818000747556107629383937749691955563446641456884600279533880472920009063211380049732374699549359547321874620278413167754475462430182329973453453021857709269641336286508532810253141339429286896674003101787657287452325011411811532568684382809620318336378183514485452764950845178209262233212730861700133538879263140662924559679348629035736687913306882147949289864239196020483359089565053529419723912931469615649701511553659987572566793894328437768890758707388198167244138609529948692358491110334392917313319634304004926598532358049374315921387097255863388604390114489268625153068299900997111029860188934529609817481230807999658472918843597250201328988881547979816749588930020944451525758052273838169153587921321925724646009922187084509342486823249507213184267111081850427664906760097460303997927404521244985523064857756256801076483816219416236951641789979502333110300829349878024012001133263544955864755654773563329097974016905759104929399120432567741602144241168396605109354333540137267793088426964780141676721940550466131817948095072987006194106275712646032102170765864195092408449062144066494824855401676921882112553701940134657406561092312635278940414185786274261753885779672136743458059955113156271193448213776969760188371314950449042286362870255926247938547617251056793172400568051074583286062812001928031064191901870070046294096833478404168426122939068044360992808291558415496649830252453749728693111076867898580202845334839621934455361028233765351506330262662915399745548466743477162443792775185558457766753433563687564968238521738905160700540909912966202883590383375528202196058808846785964120549724328914698586952240843292664034877952917900250015871353684907789821892073799552586147291744811768472192941966155197566995289048475781880478696388818937968660978233777229735361055466179413111488078289546616195160473944542344635826126017170114053821291180428724279004753785075578357133201324957188422904971254362857031400763423289463183688909906909103394240842397110833663479004953463198969115548730998219417483348627278102299251835433326770432456206163793833064388847063372089222796519768695354726228675618463071495650247382877841030377820670663642996442213710096123666535474891783925394882382709503334759283082530575336936284289266815999597014180358960280339740207339707858906395816241797694571305195218751229810700291271808304147360773366939935014284466229690827878399831330872183015295528325792179169654199199262586562973019186829960197328186229402462590941945806529764963731148734612451263413967090620070463879810021800130706731466685495403259972378068003837118306669598913122265136749856663212128297208828656136439890649073328740399634243813880089700492333186031143626320139196681337008062537194933753562741290013867478642909853234155256818875694961020577666668419420817088476161500974170473868973118744681286382592785069839458501538138523392119759236648271978645679878437600016046120551853029446748661212999477279214981199961937163172693804902362302034764612364645630568293043379902653230319888289259623390451562218219060362033642554147170575906939551139027518655523495454616783360213634372021993145184005696178554767617573028616722142850964794821851391889790555323266665468006263655198455976204523537428899099910067084783532561794449959055582335999772514623060096517770771992581300788839266519509346227421792639693345905183207707017734156817636131763789133330615061828996693824730854662497517652656084504997653260219756671991762074378161118790840487461830810655086973659911043642247293142720552187883012884076089724548824654360560645153898282860435256302598318740613016521857832361832118454707842098316637662502227945696751120334912064994692398219172738995807448989316922152251370642974042469624184189001954827944754325638979079326237474871947758351760458888993783027600979095984936027911809882336812983760918093557544930599274914284592816214405476213009440992235389344627275391580151965275499689927901532928626367234795798491320643479268168379658272532668414845524720839537684958051666191416827852779382335548062664044116133747159138331975264039054906632304604237254533776335017316996203167764342449197526617490126146550527598366585781851710367128847838276070141332088519375915397915939961675385343801503465458596344702550200266916821463421602654878714158615123704167181700867396129669650041210606623377961771363452791041945599700223057823378104517320235770581375784746553433658611951474774510613453202905343869854381799924731275921089797396230903924484051684349999784098329021937922265772754571770150113304250794274392246308166840003379954180456936601944486856780135558275497085496226007826383419137880060260017194083998304703498519327290046901560295976985711263736050048634521784812034449275245897529152808854686626988948385943227803075277631011489733412533328582580955953124703758950023452982737431450164633857325626058899255136424517339867486048735905658744209854724713574300383808230711242533476556591455268473515955120257154476462305835346813219100280701439203472485448973216057833855761111250814163911830152457892225443297420691593299639304108836814769408834845405651168993617271346723270165236910305138625507869860701220834267786096501004534239749958918458198323569585485032204838655213762159992339860838937421000670238387054925316130126496205200237845112180880514307562503502184717941942536755695169031988643207438123586385490531787305112335341056628367646563669778144017354881548652581964917292131955091702325147431189264337425229503168580753984572902470032724449033587725540462613039323249136183377015477888014117606515347464614207634764982598658550040813761986965357287893233686358750871002505854831196600696372387579102191812178046272740357085818761511873066136890408873654255631106381196926933887717273167260322020536733381613580818660141902474166132995714523276858533183128903156712654089899365527948927588558351076607217013825681270653862304268623036902965919229606659529922643143823854922667045690763840333132969081151299746683839671944345372307028712913272050223438324042107477942442405196882834108819238005376993080344515724774309219239733089876981245060104590765787775031533010546515090567822690857967567804466146978233798040711612647360953494326725603994497837649227742111301834415874528097325608839339342801622680415027538906249280440822163714931072138825487817097274384299464469442219781841961772515492695247239234480334297945454919983553039826132610268256530145384585579409709176780030100193292425295866770889038662819012343294270937237339483681231828186583718993540380871455736923616062806164313166164912452274851302674579596705869715874772766231153655640370053789288552103841963762540904332544878650108820005363742615039504783343707597765361104200719096885394781384565490810719483483988147816579399354902412449774617660891959787400533563734469375419880447777593047452880908637888518986596100909704905356481631882785510388344367161354936762579115456666884926441587849035755203243078117973621333015351824845379709137968521190232502708770845286623911977753240822795445388057115234327349150813407509548638972346147069941635617016827990299214465143144275258819298435028674836937864741950743856540996640527893195081045757990533675489987175536913932078470188226043038211141726384775024989394754423738363837178554757325462835011035684316867677764975437743394040917787043825233319615204023913404625973902369654303978544197363962616027432781003957810780237059472493257102960352537126260418894442694756185081964321007646225714278643285338764506445814671004631800152002996668975210921539359979675947965194733926359308835853100953941883436427769220444096095631266652242912851533836111563096447118607483374265385133997052740935805416731719236512002949448750256049075661862799119719679093247130020622060969891957110259425268962493384653499893344318748859954764389532390357434141065292743636777299369742776968469691669396259915570924976113291747821169451324804882851952284672092797527415551888937734057900662370633265347217365859643067665142445709313184353566328990852054207227619068425711208465599426820771018020448961390324523869054198388141441036207840117749221005976778995816260778648270744893856757204428425634430612114509199333005264379957405849211540733991361385144873523450036494832974790002328498855585416582653750163516161647539682576317231935530061490994450249181624020734880162350123535578652749833210499139055130764695098017681421527870223134949548400375072901350897272193873358651340781839362930889227469790007962767772739484488219624124280788011970104946327210417260537731501493397913836213152653135976392973003909789363639993067397237464509203234055528356703911439742070519700208687968612580124496417110799007702505244168431116878832333855472903652120166845234236172244514546700815093964365413228057353304158286454366965807273828564440395099246083743292308997216345126588934427703941829005399536061915399974719606274528736279155863452173362537659907514714344900963688096745502744022501486814498762627201101198651587838987337500493126975516492813815050723596465986121840116695653864786664079611965340247255383808941645955621337894457187842669532662702373142416278365222287069749338394046426485056996624192810578831928080391571800140130279075169174552241991565575881726055405535827156269803779845196454012917235750771367599116635402811011550462959592698402728939887628359849555211079708024936669876988895560430879217780254135014885534285847004615670899695075140576488173604578872613837284439039616590426365987159482428167404347222480139256458762031969507456084051872547100322414996153444847607911908043188547998517696584876527195888230871990465519505202012848229897836100493748374446512536940872999225592798237131984640286853026763855583726323276178714233371069209338115874324472736820057098119340641668186695412092380533495017772916028996626871083672985320951029176686369388779979486874766760700751018098688579559414354199393703242233096406988659234464971070707524284636062699729466853162912782174953776144393337984470439111202505061905354513277684264075869958620215343505906637569361615700105044246091193911033375975165422315105092417097347379294632620237166776401986949523955701610794476675542283886011670991158174911038312216861712451443844190799530391356780243477459262678731534203265838881347298861566317596916989436657918733733870082006638181756174599812294769796756325043804686114898450254588780733896950174479867524920056375953107320528607184213243377238549079586100929653558783995789821521276584742238028715201076537259251302380598844585748882357330585878481513580334873298033033891598680576256816671652459377378355759402739214827086669722435472742363606145771188650256128027442483735604678489472427016126231192296564529338757409605433589820097838312155847067094718669181678635734809405340552969804709437569022002889079334479557199545573458982245538398592294830045192192125390062937986076232221183716418635652617888745916224594814275174964515907799018728980216564780258981546082001546372280318204030858191586881764499130914868278509388224060529060531284711590929260653657881107822633667999770558897096843501894095164434441043273488210633552765032661692868413544360993239537888141336995708437994360329416953761347186538547787664950639889222539186434627202534077454801994824445365296541473110494583676263251430405280181528069034234827038136227920007534342609625044766769826280899821250015325576076005491801087706543900571248751000259377072125913405513033079318216134441395602779033061952633208089262028278166719709569843496777192197975774515491981973853725863264993946506328416503451371078017698195074717925309121276766419290146922950033718078868058896206160507322921719936681546387577258415787182678925025850554744290110576040875421690187614917781995325341980347724048899286753730581100511670123772700568384352816537594267071223953806965874093392442997071303328043322192693429280456279721824439625042027173383921976376272944059277974464549877073991527112223878330948401562450177821825215915474132311830640546633450809392530633636960797928538283431794075954697989083320874133110695013464002949141030455336913583999708590126545857350079792000443639893370966301103230139972397924216308646993140315046937914977768758893259375669409770311317640504579843202008325944196953482369178443189506912749972871360811403492387841110608898641166790945268269705951328935575337688895011964317479574768629807437467876913692461286815965972677891275450008716942206774510310271832607407525205872314542864416775957364653579549914203398965691978485599511021179749760021865369556134404585808077410047664466654712465033576738797431876823214257798011300889739755981035786600457218266014433486295139505079680801092518376305855209935544197178449160743617842700457021342401773328873159568386786351137452550623826938890295929864092441792865676225825661342242856621596164486383435588072081323921574771792727989822939556807526825850750165416754178997757640923762720630316891801557895910932548302716258595240625915575697162216975072798483576868834113499353876810077599230661783651378190059052616133527888008065529715667479070725549698323223475012090669667987814343052715284966121083917207708537214923427143695005654892434927343583429852820037586599817828385014546135919870041044332519331409130278152543701035621930299666438368278578674866784813716376982355232300234993236355260163504589786055012976375170621310193285202615411620776606048760985235152896141066319520166150388871551285295561861999389378513986188790455408986985166996775559860357671741853824692253090596913914233881403115273935218094417530457277179047758675703112630035026751492176934607494412551677290894677810912236320813294079346690335717696052409590471177571632855694939464614953566492679991204838701106545794772323147177818734820453226496744690979552659360900664321394408804685436408503114453985793921251355059316457496714723033318403036090681443716918104520046689291365772066017622319706151048729917450949696390782368086131834687865664283718380516421811725144345082548831443827945423491297491511497437226547418480047480401455565341178639563435333115898807568121754962984237569019088239012615222646831512247134604837891324632936866085721763706176516515632608698331422301391408239773814239151761127996090613628994418206697987674165786001005656874751581124958851521384610687450674076936248554134560881634901139080966002149481625393545321292694326133780064826264781051434560592512437611551804313644336724344111328413684336295385553216319462082553533442556158936238836072742890861050338692381296226274533644379008197108389282122007623268143503027253017573071478024372169214381328340186131301813323969009906698552199391982758778963781004100651422294457326403037307834865877502873821212121744146706696334397955954445851527558312014902726913929695247678697728558414003650112099832057831451670885856561801494889229142904576359075894732957619201323027243941639368154348014472206632796592515530696328180586627776972273513383389106369125866331092410296108789062866317200853471188602004268165685590002697020263923652632013022683315752252838025805382598644783261179646823496253071088053500601253248682506215490746016972247367003409120968268244455972483137207000101706877324567782690130225171220879485304781476826492829619606450243993780485864277199125564600692142079209846308513938026440409318494249432565460776561081123705323766835545231049782269126690420925689323829290675665769073519037608095796670047406821360367121649898967786921698917481386491710986311778314291606359657871274066278403652097534999646241595043885309702147343859030084724673071315937544072588872737635964017459668093311214589970421850115347258529410095736531222670008340584562405552362346116040960346392880375954108562382724806065708285068528033153973598960669061607364663618020161547183038882811841920675882564616044987279907524001509450234889805475676042210226618087608260165990003735099998100614555650704159990096465023365084583656690212610590513823018694699997200399772411163550081635394053745218301851205036474656591288567648968117739852498225439061954378064302238222595155916288535280997246088592838458680583693058352395433241257658633385215324831892476354328160150307494828181755139990776101564723282438516667579928167837483914286619748036074267860703464695868298701501730862426257004741595806366613576433420883095164526596613330947768485241828322671385754669736609142349707166107787457032425539305317327285692437531037070274122528193620138980914851309748874805669403313254912422074377560788158258020802413780624212636720679353488020770882882083298600346525498466937751889131715080242526872362351201973555622390982176929890755893639227784803077773071973210125579094688144057637365026631928788920414144219407458897264363449930125006495352242465576131661326105596836596354314720093426288248619789351930896516046671573611601491325722744757242289833857223714303927913847699750411334174718860653531320872162606908984193893322888353808791737385330026071256460430937192547247543644399059066947772460544568280760287208387731962015274761917291700126150280645560888124688094936374423813376668638407880143601965913803596781569082090851578966903582309922436792172146302840735765164444568665852628931260862758724423524917160559509126775241733228408840662418086192757041918806645007666891190188301730545608938141693176914262018000527285546580477061580459769953060373787337773187834933402588651104211757593750542470686467813524370458281324061136110018070329814857595795254355816469716158626698877771647438239243886113630469126306057518859558150046004907537930678934706293329093248714859421427967250926563759099069154689195025127569556497524777040040268469255395671677531998910323171173998917457028318640848534042301448635310177780756162307087329310077704771182957215945429142826828521742242825764860940091873916267342850718371453124425494996378449461878625597778867245509903813656957178552105648158233926982008293960329586531070722154662251671273341557762065640224554787478514593352757734272761153485776306958294463559015775073357491958537285985221455681777811094908302124945015115800859806213866481813578214761772914446208575712904880721110452989746175504989773485276461231258728351924223237628986800954526041995344009774369655116605690260366949138753122076349221083436458227972857614742495291086286357491087267044839132092748727692747218938812372650622437433531097150177090441528028209622453963872177782293255742294650745274311306885917540651493820837017034891580819921691634520781149574656271913000367184390901063074238525558803883834710721398762874052339626507953091878661246265328802481113166611098881493191193752960290776487406339877482592182985463372611648027814953046142158244279432599307928779458048149229766885765107412784185131971303554967042468571023943711204397089605775454387463811922067811303911417539965741329826872471358581661723557108795387519421799692460279320023804498303208772529832906752350007055793192362634560024825522507226026109221871991501338708873429781446983046728585644219937932934675368784312455393648054261975973274683436367068083943161863749409278865360199721147429976311893570827657997781552232968094120902071207186518070652277950079647514684654780252363150328379110170384369577361392260528654768400125472653543171746986436338755681250020311404504343348552770156610192957728357622574330740883762835900191446744246963765768709365182468417913287472868247672133433845228589871081146505038241140303694033270223152263199450665388770506562006942565989042413782942200113956364337425454502227823494381191711409271080771819646827694446969459005582139306535815403709821976290656496250542092301181834073440020355626013547976867973050778939262581108957496731380487143889536678147816483555661018353635170684335785717786585521009368145487047697795154109155262208923794045879271258792514223016516598929313511310256537428400904755338840044354469195907773804565739211776179262940844492084974066640142104645649090104845555046004412857550306188477293023446598294868621703884593120475786383406935323626983740323352948770683816613372889243198878484490262583346098142784986323537725501649097618288103946508154584791088515128232378974002199367791979638304321966174028353656668200946656489769636726186367625090549165300498868235204137153141414065354231902685328792614634309090833462325050169634309754567697198211741468393799065655320114307724712628114527710377717830477335168636631503358353345045129844910777522514821006749391398728973848609241595493951432063712181690703962952896543496691738539516096112947821421207507937103866719693668596587730419280947778716133207123292605848526623337968213717391954153020407530720704657273837360737079278834770692279299904194489618031572211862481965685962400891664770560117374091474479978368327546488424789752789063498962936649189931668071964439245203530668206897637744842117555616536629767806355139634060641487985894510336286459084694279211063693252391908973923169202831944485752683798401276360248786948440799217690745520048391097058122683301539754585041102767707566952716222183968743372951906223151246085399042110716828722577728465185246898742897509682623785135024786587406613785398132913650872068612225041027681869348911170398963419586419575489002961487551750147779216200782400647261874151626063905239139451174557803895577724885615499620133891123306660495634326075888955540117703404574250767542861319861659529345605988784303777456726377729074526844543506259770385915285054008217030570362451625332839190092879548384503659634380146005288053040434325738905295953090213811800486942738041632209264327910309399560719546053589901445415723697378315425634541485257238137597451880044067222180097145194053274517808372187590507660202497966906188257497069535131880511497430361991757026334188517954826213191985375025326745639503853825792020885258166588323231296443811091511951337570624982994534774916926752463861309255101050460482362511784290111387165344183000464161318919885782093740129221305786636521210543558942531307934402584171248699343535134774767593446347283230812298883046535208850970297108290605374596355291912109451051925937846601543900908917982610526430208269273313081032212130766807774845432728050349740045978332405230255299419922364631101404992764017780317024399405125994786095878863627345631847343547656190229418636293165857539504045661533529147932561757012630036966854036249236761454709371882139401800087514551283732457274406044698673988964643476888967939339860882068577892334456072535883395505223087801490159614423406449565535463020187491090698381998817608523370882683524984381089738461187349028550637342072548174518097310665193103149652806734448266270848276090711005511097906293382813835541783522667104402897671808286674447721859917296358595730796708337221348295518448417857345512908006762438477828653813178994436904865562218872393845302052435212998068554098069572108691841332316263932871826269037935040172136840689441542049787022005412210784776172199991062891618252101521129329421666718764191498552117210858938947737056086456492687909428743618161634978466521577531686813857297013710470756364917984540570061117465516074666313361900857406252656049216640437013164339138171488571966888622195746453118326451559436040730882348445938671704338018673108528231505130149293996597251290517519439326796662837805330727484500051294164696183491478844480643424691274252706766213671466440431646323331390970640484617136198305442978833289546347181682825085329144558412280489356687919150171846023386945575488680061489393055432205422362425441330174451741277011649910655828701872866896858752000471468598579644712770040901357413083641566710800879754410285030018625271034666170418166544413534867194239578094386802288619480001509932348243202521453509809575406556451964333027385270087610148070016653982278780051635441691941253395400036260530313274526579103868677258733121290116325173309718847857761207921438514887501637019310714979077488456262076989966624451295011877200217066859282457869254024677672678891755569667888950673203739990725403043406674494398995251839469385069241556107383849632840319439529652854848865703885416488670363533411183300421385498989879938219813697126866018699070581607155354699981765352485612058370816782134113434158991534643753771513759746900593534921400413492467698624541801913401064427584768752784981080173581788811833700526319715175091840820511045707230087194399149283596486683195383815459126328703198919827973163805308085475217471407737951056401580869098397966046213584889968120079204043058218688214687756725768404738774027636747663338800733145554136880942376495845113208330288785558730867427885471218454399780168538086373953850673526874630580593605548663760883695785075203385858321943280531260156942894195939045628130835783358050696327784837420641491005634573442104859615224966694967304617820017836438489845312160568780173017742966791737734047616574954995071470713686395541381833576392765918456397516971802775259455114068880595998219056590526803803908590276597823382589319562304392521704115080172829817315043451760325914643394583441846571920507444325194463601620529272201841139859077652567491956069836717000037797288597404490338645173606726043833414850025070778451233027125160778667142205363995499315687194006564589635340095874774502500625317820900409894870944507300219441546394046576251670914495688006087886791471654974672598355882875034619337465282103904901158516614383189231895761010515564601711128232946934126287189301503859349689756616601355356624173977346552454560585631411455902643638852237852257668877902103629355925738618729548302157854466828225488569613295144031533310693339717035859381027110541603485237351119213283832440252628497080388421322049779980701729358653355713344048264226476421510533215575352089417402645629735488587150552883972218595350287106469919281709364865079181077416696165958821189480503554412082096303217997232305636243656077230139179627656226543810734702896154403417143110077064543583096173432497666618118855953707006637287996534157998761458214422197817137046150800850550428726217695644036284706578327734640093221158618966135762443246175481180070340531448621959268539492921137068749484252307490640290858370136382667821995495405272847330729952655910466284987172045503820383181854780540758664503994668666290241547916810290095161020704478555750239291893424631264216001502745745167387755715785299728484754007064575757007102303823008513758084722681309176056792298488166436001084192504932679675155915145397600281036684998511041582204693904105692668542021388754482985094063952744698630818283037223194042204035297053255261289414683032456284015895346141663902697412980789671845616029097577509725709819593313680963972107232761662260691980955623495168304403374703345810115138657917952766232107481826644932396281694235121952312010392256591450754213869078627622236552877218493138501348489169345689143141054423460744694923426911546810040129264144460593533475684939084808289796340000101395473052736220829571899924237868324176353974399509055272956896097031323790312176641038272170599868565657183288859838280594213493979599287290715409608302312513467670909819320725964557128217400312957441309930619099869023172674978333149431322711397610834661704409093156759701359818900449826458407944204713311829237727383169010588795546984536245844779140427002076408764969399802222842954884811892519034242623453207110257113245784562900243720300696079187777439698046248887280652436614715009827977733627739181817028323519078538357544167742643146500134126684508251391869973890002092317491945497247095147271519036905118446800670276604611021136712991411050106003847024424890643613610827941255014996121866720647028609224391215461115167506679375143150375040439555267927565038549868546237363997258386495733120406761741736269800948893326061632890143205128317225422903031802334405885561828722696645306129442895069985039721063086142309646734816724083555445225150175855173990535954802074337879616349383411457450704832825197492890849787791552230529958796446852457794513186452925952807982089689105575925011915403199016466816685257665074918046023041954909348016712114020155526279849092212337771834506292465719876476687758054767913497145361968405584331592548166270101783981211229041361057699915393069098738841430377505111397454010401814699016042469573696704767220783850884245727257815406552258204927944384958860372669297143920645791381001278437650186955049686285710983564656129123856563910462502389479955434440493495172457131101340970267071280646042013285113682219432105173130991626475706002512726659584596097178531265317453976003087950307521777830676740733314745607097799896259356012303207373406265992489766840974161395462280915999940194427298641951767454057034684359670795059534320591091402844668985174671218599705997870778737731957859815939879205692745499757871498493373219860710862681403928184003465919415780692599663455719827510726139872807213179907302047289042230481923526008567645831529222290972255020993811776069387215098463477800573491590516596593824416402891104001521152717974345678519891720443236777864925205784441291987655662913956907022012768554629160974745022985241351638201489968216538514518424092816866109979210783980973254454090096268197440403550980106636778234949401575646447361398497464579126424293578523274370124195302711647163382656111030534393105074789828365486186217458028747973604552627831005741507173095565177594502196377444988191141142324160998469383324192496328581307390234051277741382701727302844864951847161100275040563019596321728522889114886822879297540575762146222372368867035593667240729231275064338986869503009064293925993192036259234440201989589735606837437364298309656018480414743003553705048689534745063797232961509673634527083516708134335828960177179840619263551386431110583252689285458047614839493196094367209962339348086530928813753130586778846720637197304349334615599786765421207188221938477717483695289356620768980516309054034159407240036499837488768567743180435017831115463423303813557701348150612253222130267529295152495700885254559818074119818047511916169109258361494563180999322751608423731018447970176534231338921234057461635395425403989115544483335946984290589651817446228122433994039773674075866239906870446668785599306515225895519632747620846391569779717533585204417324058299612432638267411609831852170077507496015128744022472415144258327029538671797195038053923621538486717061609246457624766974418116414330943219090928393514263250512030760242570086226024161754982775366784987528918504688222571518637736538490108824149299869734293898573350340433580150070856719163083782854951190102645252468487569311109374357264457080138184490477366667705995251325047275158354245611922093714968435702854582775151103758137967073105079974465357420445559977893111498382624718266734387818633492464348069905427753301018719443961003198941373373000615546509218309841146369654487099009975717731548324232507731472260696756698760893602217593711629759523208831003100622644868996242058896032273262419352750931759652556277233875618194915832852095430175538088310613228746552880637939167900137963943602558408034633649991195288172191063250289213068138044365611803892574590177527880988185034993443161799863067724331685783759188151558806929933899912158097495026839229304433281988810177923603346591528361108818997186826381613037986874850886164642155149846681420406430872709685155261743012769156192595487553632164931160487591732834744196241939678338985540107237364114507978559091595298482805873906974545639053308551282325228076133298248528206429092991628826406115803807980322367767779435366778782576602438625477830185416421138624127721120986426324863062115293420864340961596006718469800396201292080472288742225033602248956193397279914827104004607930720587097633858203897585581325407304675003886238335654754693360747376126071658404401154586317594597348302751990012131631662189724856291046117895446611031205118768023205607441022531751790328148748179299251041496221988769908859914882182399610146409201697082009012536769927512683629927518994804174870671143939347998969575467649676945267381411181980404311350038790864239656848363877622930387617448171891303897872069376536628831013878075940454819947362060554120197444151429394792479202701772712923833391599636529980932293967405796762367187444904269979312200514316825561487336836295911874087596530537477875166777816489380031566706354091747519082252613476448863034643470761113663993273378934061993529545350404536178702142530574720206500955788928452521650166693194262263523327810640378140453154743563711629610105689675879388230609556418818736217856698728486919929209078486367474612755577850243594256027210945250251757251696451063510961158971017904792754927884172129043470881856133473849729297990994876707875199908175935983926460278831109785029079586400398789784335002519081579573934667712245924207425500558575214620799033933973930699915452452763148955932646338802909785062075012242676262610904735899401630461850638186509096534141037145287752790381652775053197405580509771164175028477521101530814407293030392760230190238676300608083259186578450676190312104824365062510284232513733314383953700676279981573352587824388526149133631244194787015267088213767796158167679949092906264563213478468702978998352774442056334614973112917812623635490170024229481299674656304235630436959513962927849418806946436394585748529783875492420434563158880357705693906774713677502896763567878712819880986634470890403726867644390036173555241349524627334545609536998298946680971436457308388380673723862348099832916819580845924323071227897022777420475272390234834104411694307524889842689173337310725639679338172411536705344071961658626313418994922824656536386018523536225304561022592941509766207604562052195936316897136351268568280804520934470086197303913616269494639174294760265531271575607562755392778983501674696672717696230670938265462642247040212725853462821975603283529782434239420723065200749961756098992359308257321379195186379424274064726631358127567330775548518079897587256406909454290720369482236871469244842578111223515461437571295881996060640748860725764577839345919670759137301523459328188014400862869709683346196859590669861311776463967879725267361494097408935613605555151855408498423758838456937456578848804479988483421411480328805695914131396182263313804081369222179836039208311484962012422127550823143005187334229756401150511189502005600739894290122477272670501392818225328052959925471635814145252680761963179916453513443592728252170966740656246049694460238608783007663013916648112651384434902265891480737605262979120685012545309091168090876367864134819057984490693467945007491308161824261564604027156031671107682815014604646715207446059606323213972699953954414660004393290821466577846078183284800456298030502739990978538914184072534132877180436727674323347463308776632406435802076481512887220064336535140308629573644644611868258686425628026375962355751812473271017247154539787213900046503255302399435350778957945549354416414112494463104104587201645314581967120181975305491348016967561652457500241386302063957753956424135391436680703451249458336328407437268080791333168317945828168396556948799497843599554788371512583244392695040588170709231457484419836004805331369497743562696167941047092899440991594789524879423607677869902496765741301844629132026220872166920007526363814523530265806819467965224443032355766093750411118608884132554747139274613214410819395253289203134943730084017351593222092684205197261961569361688116591972110507303073350929071410823035588584871924158092956122684560721692199316001403022023309073346842217127286175603958262375476439232873875290832196546770214638804184252557068014659037446652043605263165986905279838939156785110703730158981396677841187648876940069886358534581901742351803794095082226771102295996014308081187984259373735669701717933012044996016667830122288459696050889060001407160342726920041981571959280835158682386745291479071784534486227749971321764656443885245779481840484938178906389344354148877621414826099889404863855566584284614784852365980402448217855884578432478827221290226161647091472384089053488765271700345128941279643950927983130130420618310800320530555143403776357544913666181501156774984272132804523373201563763697142681482080381719334355969974639272169942499388639172339763338267541281848059799079519592170681483287576235414050146369574822445006019666591083510148298372557535253407307783633663383735720641655171734767143828237340129773544407783606078432010523308261614155168020820040229535497455265416701253706571386653704917752343745159128906315971955754359282709670633819824397792002877614305231062066998290227064906655244549016419861382056424339120168824883741859761672132866609196094497819780521355391024703125595741869939042745793798811027662085984198104360135006431512258709881176269495571659598349335198580807384310309564797635323827019465628679356813462117467353695987276093404630763172076721130578775962287315210187828711492249594687816971240804906284227110141051855097783550509539982777290566564022490612464748054554782193925529642415090355347695763370922486901445999304536322628627794277856998052228897754253095524888037914811608822050696129630910946340187031912922659821150306557688044198802807814909069757432117702315152979459866353577220105827061341887056543617369696704233894055907884083918581186230334943656313936182944155031048302935423375508079456057732705874191766365144818906440242131510230539265141086916552057232924838665099712269359693796250622311761582675758787955628630877924829210540298929657392028857268954566613910288339081667164926804393278933857745935981021240153709291774496838452707717619287283219793119814037902861749099453242513955686393727477636439380848004514023737918593507111885236436784666168933365608810912188222367202607480464016623790222006660061606362186325039137279511491842383486176388002398161400964808314594373901922072672575106527163409257635197958420107077599133395084938300190633799575474062366808124838770684333920700051796550605885516177313354422035840691612257823475514971819283658120595094556749518087336174860028675555992390872423848888624372289158448449369115037930135724595751015996490877291214720673487425833928641763983058230002779625623057088965774831042498939681500876013554193469360436647551871117061215092426323488279889614602406544892144862859708364647390034907440206433221709639203024644313678455659267185727326788332205926893508916829330610210812223271190068947296285599493802643945003409507647298001405630996649118875714313629012686068452889192893026738501891104129568534610153122903687825988754607274699059105884137636692007953964586608249677672622644300004394454329331524053846193309400053927511610015383582304607247656674903326545009167381737508316965861244080485227524204941285165990951004253675561849058944032189300997264982489594159987550702481134331541960804304944889495844671089225939597869009469000786790042947335108883399594787323944423307612210297949425406103003716558735779102161238696999042714504773905224344440298794384137903593800370737462632613338763983595873007722798848272113468099803980026411249188640362833221704245494164504282514236462529831107326372040034082562273208461728298406847668938270851041808068949760482709383512567023516331062991837542908173878342084866676525198496968995861324923841439993301334041433812598572734096186893654577061204827325481413021815097611169095540510617936934662357011187178598571464261269060544649809289673331926241590861876447409642662774876705251585631293492521407129864338217228998628253044175164244691424461593227660220191812410752490441221189244851455536804618666400894661621532242744260096560581278667519832130486384994415043989931239647020430480560316717379446165423259772706492696083473791826609013817627776929225876460115107131201804132008477178026522791319197413213004833555527900088092950396225069421079294637021274404010662479910075574240287500749495311672811707876967141040632326472382037632337227198508465256143584511325393316902747419218362367151153990536194654052965768866839647918823135514562785419214233796216353858174702562243258038811518071310334668942311119314178259367195998581139225774353667545031803600661159870328910872833429519607907127714075958299973943861063884290510286393666061500572434014063674520080242538625865720105711007197566255316543184674925496671823943341605290022624243640926873765131389860037093229994956555271278164792202304958210097411446724494903962505803100163686146362599958780075666736258639958287099997569466874061615303301499698198124017232722863207875110962358285319757281643912333905478634522029945946655621637330936735302889269567503418616148488026288674246475990531568037655177870765500926531701200678603697094273283195377998215144674816008798283215572910043197041097753808897829572398444119251828583412663663758182623090203635800635166926308183166668605087847414702300676078894079319238445884662738284658899109076944253834131431431510015176039785571239022476692691511281863593017404838810733347408369931834178433275098441471572409391561262171375355134733581414283884793751446049553877641195403807148938193027729538493515900696300777123647689491507549454171579978845685384008021950639044185525972777783272920474005736251588215722430255828315203058246106980243733251031754125170444461977714719467824427283555534872162085589256721687252289231800781137042719568084091933876391947505011224569958530972491740128379169770955348588521176753099972680824596148337390981006358292194510976797573835584801287502961393814731799607282945898694873600493051768103557611474874421487885275769311012903601335241112366218461477100215838250222499237720571483355581819645250387443263189773286525927319713798345209095598725419174348676724532731641643967645774566550541456904252469911028089923174205957303758581851212669079776877199153006284937270451282946561537085791830333392504684472155370656956490927404300006453251760611440060617522920199313465467749603760818651960866809730412534710188048421481115085977159794277503549384282379866180815889528778396625248662976396466440464239559073908414864068599117409158964381366530632300009128907554164255331042534889558060066345488962881976679780948061743822733471463499066103937285484815164019853211146655789725007532425341068723950995751635199900581704164524693919349177062216925502973036136304193994723363381074652525501739015251991182567120422203696782231998402565864077448629030256320744439858668373426873164147555587010549320497715406756918022999165515658651594538706501180944458126218331300571531797108080046847167125628446687303387498986619273889545929980271694108550870536440872735249079322179108355537608110604462830091985250890595893887312859394189856632083717321184167993463579599544531399544529914277101676613043672300809541428231235506541932409066446960651642550134143959050160148449110439499701811344093696450741000633342656938732202332921241868873443240949711768139305027900173039138485521857763620753442831541047899190013518570281208189984858151439830119165986876338968889314214853182838100207204686669356885682444008480306906461716007766140778185470657414368439715970097485417613982966289330294681170472479719461613471965860398039869836179967453479046072682293887251120087127379594907361526943471305777345448169182826222742330563112229627364475208530281562285940816688001446213908032904164634068441991171678538940182557172225813795375485769528079896698832776380845808591586834581499626156882157166718597691855280119531411569858895085394078648833571887601792385917488725785976337462682801222666326529653199216989467549137723970858629625444183875277171722874681446241636521343663846393831852191099811836964654162971616856860630251409467233148702874524814272529978223719019647924759831147261145674693720850339494797573075287892940442325625382091760756456980352502344485681678523173534164375061533340685185263891160485461405668343980191162018988831116115525515130203322234240907724254373635997351105812909106129551589502667853484510808027344733963808506551656399273126873447577558610087298320913787851531954053488988538962313345129699184741555121389045056613377795759680380964187084770122174638004986688261037594434607868761116297104969442317512591067746685398902749036039027015642057515536844937727595290186563825383754903069656182055208154240587478719992770221053420710103394503874886119256452442063084856638314022662458496150211327677780134205225639853715098366525966236353974934878940169401256026680969305716243037205822107034619883818663154470308937611767572435287158226386433927288281549533609444754824922224651345345966173598173999244076591819580550884237407145760870644807235931126220410200207096936601745624186216389847555815430899774368319429396509645437812120101691319925667766447957509887786685103545928506162646768674064271365941902085657681357833459839661501307847014156085331644432141336430795579981994272694755970096498633622115108876393097115541222755274378734741266412559399945486158130399733986029134733589703511835471025674806507748182638124452002920908515394114163968171193314401287327632601907407022600234674924522660018046890567731627025277657786741481645083505892081171848317336575552554222005767082495904077018511596575663222929581185686744325251260714126612399752792245859409064411845028501314397120502637172543199745958592931013362772719446118092734269801512076085295841859990727799608674983471770820745671871893520792659177345823263170932375916488529780213822880946715138567680657681397015505848285993058778142901848167825060366715920960833564188471603653162962703745954144632386059957704205297000385634453232389601031521370149533129386298875427605905294171520502000664463109798079381386736499665011352066285481011488760791086629016947231365446158192130650936738688292509765635728202050853886042643252689270162216490939688054718504562996342810605414637175240417305853557637984967709765785347855615405558095417115562531672195001385844513226542441964092027451446484014459603953143537595773985666184327443902495989624569631777898633435205274683571882225011982941812770562118133468671622274636461936533557400851694703434444772360047166560961890787083560036203236962113705334800476485467809334230431504317950647268313213606455561616459379219694797488990227131682166827177922069766060164112021267321835723782991261186989660084946914385729092746751382150708338322460608398005203564914393015096854433378811506171442253591607218029091494304060199602671302165568298757301357829069705620254433294786176916959896704869517303609967432798392714016109565155067970601419508284508392959242054840136821393948854143922397674071424626815329525005802614132112563312118734178529970836616320908667880254097106837493222839029321137887191628076168784170404815888349577236702514514384074577039626767398473721774771608780774622349107316656662679816076581790773728268297288296728700637808953220287331067241967029436088319825045529617220236976632262356393486902750472395041507412566547739171135972286143696071694616101791870866510008042581469094023238544994698264347251108879217633914285313715867387078255363589880886216439532221937037467737988998181536435342145296481629530187607252337465891271993795806848913587037412575352673362603238122489256963292005094000148839258254605347582956181150294351128333704155352190654656786036931959594634849275889041717995927348919288158422674620557383936249173357539153581543692643015037339196304127269653692178142518006550855823035791571194667930662716033984013368537396965644438995269849518530010488630060253543398489208331828477162662881108045097927002975736614643077289266759321501896416609484654816787561100066843734129015697311410738780949439383996032046224349739716250040597969440849965567530046373508120611455056175508230994678511693690586694541930896962342732189810419358159741264587230513687170792909203640440037678430112853669903249869318925313022031210308409898170801049969307495637809664153521910329262357193213955767941023297745108753776207504254943242581540806187237342452482372581201145076847940039536846562069756472672151613864827202073194383570727129357564368472437618732728732061479807700291442862360133123458722697089933693490277623758274714407804103319392506135535516805739599079323430706141721556394312553527754490130297184726647322455128398083026739490074088067787015134498561094792048277103352013062986859468700907060897352071980611973332969088228327271514084693478278249618357964279946640252927886689151949087744996274760037281469807831153399009076799210566142009026506587388416416678571606751713041830154011020410513902467706679163283386402817069248431326283107936012925483783052736530549753541476519431027008176105333892316778979095630225740727609656360287110097659444890646175237817494390101612573112284053259709437618653697540998583784086517901939149496405019003943597836445425670812795426778171230100022189475770972677670816234108108131991188647725585846930710580871309152451445704651260927461401771761187981455870942838180565185099099689350615103310840266323480364917228018289060533636975380998624849874354547376008536663222298966313706414468322588623743234885411601118191722564247213378967283724930662974827801891542553008797000363375630066500040809130323576115439149533624848645537914767540742716812153076040117271298668303459546551584044367927409459098806012091107422726337781349964540254501560269991333162419067405415978163150844600874243906386116784156489541249641383128900761506126716916825037564296027425256084728630931469267775643522996773553184232176341688102503944423072367400596735225412995441472850736181428443866986246104177444038045843962630698928452335626633309207163309881363697203114346342109469989415163995986822224004890759970296032743328943550808488127026230119410676988616895083943902703329102038147326332587951428717010292327117370843768155327685753053712623303533048037042847874182049743673960787834680768949758604539594500480655638955408396761008948719865182051599520799290179421586032163490784862837171792775292347992564118593903823735581345249011097229320682131752741104741241050016559884517056539403604293620757995782940193897447235409002752530229991852363434848542609984990654532888148828678115364700069405512728913173978955227480076470400343974996966361786519363968460108421402437452750221692415165983954258983436787583884757938867338004424437056938124548421210447717034546560898773161322791552487328327922990283091216006614993310860728363825012546234875485437018003644721376512343711608997529559943699541233631511720063210597050429768476317855341003594052046054153028754833927725880745092660135741651699099541395103809517987110616034407621911677462137194207670249741305788982879712933623539309316222545408156351228940134345080486608299404528635232604905488671416932982236799735664218895127715605097280019492029081708942393582993543865297624349170674992599334972339568725851340990915046384432483971844366962927231444439796329452745495980767453877973219640484943382850523120245704946289232738437518890180981165872979524093252927006805256523964327902783340960347878064859672049103267551883767756512029794996855144978574220041324542762179393110901832360928795598828854111506844219653643085444751343081169434426625080059412610282695156038868960422964213998343571640707182694809304118936095053511605901484740506413425954925732740494067070684199644682752479053062850177171710796002065363611569752120149743482849081621029328670999710713652136790113294044351115897806668456632309950037033197726239622495682244679121039521570911401099313487136410206279176045494907770589150762624418931682892778034534326721006789832898963678339870507217709914379183097108227704362062178822043409013747796136264537483523838526410267456503805449974123539674235684281253335923589755960793493539583342278216327151113660635285074102172571331664391521975819945385683267549041041006592376340725067894086885126570089269545558690853950807732379025261303657895711401350298665245412875319004355142287756064328331186429976665745894926541546911605861449544648989162019629559091281297098723214573400798626768816736302036926057252039052073089720984407743269940207707906948920412795408648176760985885431094159837379965641388205113125789517594436049018017696671198008067285016587813564871449070506006427916149873438147509123828483626966896581815164902119582742365310617217138105752799074332537235713086944503397340652210619441879430758113311303428257036317793931182347091645295035964515829009170575083465539894219065348178656048876364755126718318701588623598036970291695360460037610682149411352331914105727948976577357155069852230292767268756610147617708282163773701635025762154144940169970683312490579851333853808488577765024830233724031679917526711636752594106129605825227982301999558782328826454961169368391513986011326790805847008621772885323919068316956148158018108571391863838735549248200011033695010557004356025554637346329347741662356714868057233667046815925732994864145561467431059270511258636327749872301516843009259969529414505690090274412990331058126226514048054347161463929537777394848176190763567711719092172479645185270794047941890074969754491364021811175373396200101601821954492059467362387325048782975665731153050252689505732695867558653701724299849443820234707511599222987756083106685944289267117418496542688526200103351909355022718311563744149367742605801091841304192502412424664850574414008197055319852322756241837001838916245241883863728341317828662560428137384197571616419210959122211648587730785479176135236075309957782590309052859798905787015927292982498376834301984091568477304324736212999839001736653224332356997589218694992985142071019541678086698946281474637995751612574736102974107215151575150716104709072876861780796600030477801437582604762893306050494886447792499781038032513455895917240197923156323408734474427800854830733654356282621263545291640882581667100256870042391088409920248040891101765195466210233356887834894129750670951334965103668273319676479968462582333829532236803580972191736171001951260410629424065236777881501196742329421940385979899040382784961010746106778183151449170109455705297593729112547610551885044564483801147891387146653946247885916371288706330071661348789613857302157088815353546720746336738428809353245791380798406503790431645247553372230692712187612266219221225457825384187012414628841913863892742960833462503316151247144535741831548401308020447827015952385939155746023004735355199347562796321467553844246399176883195262869402107780595409798017011641782059970101746948172274360130108523883308082635202601543119337337077636573216410529602125823947533686410413922233410552288801599941042267253685935694240196482349814872972737106002174048917090074280415030789255892031880403209590770961888699655484111083473380507707762618681235524030806041194327509323723056259215703694931914025173000588964795977973688042792835077407996663743311861284442625579397577885186676386245385344346722505438186111703325624983469980600508080136940028721576949815372669997305685395277750596265251750137455119306598158018087231917973416834761342895237812306178206212043509391713684972237883924375240604787495029268483104292900578116143624324636119933600936307835527253576513741282504068722676044341833075917095009332537686280007742714661354238672682231900661248993974483266701027665731081917714532252453996213125909613978496006064970173561300661983868211312837349131537117763645542164511642318923987436651402318925128267900528185966722381541114499427735807853129249726341012130988913561386668179297202143859591264578716110145825852177670805740601186423499142787343781659668644993285497295560440571378142315554301221090273577142898270555875356164571010827485151572842629082849351560485462635008028047609093703735880400895497926041227888587367106941707212376174945302863458735618082211893402152747410354250369811850066030036993220706864478581791055219679767675659883732063793250269787082821891943395111683061875050449489138486009597810197896209481068151118103215389097171367481151021083520894793738187240898152571103021985301319858077080343047901023323425592193122591605459866792260456200835431885273162393577531099405330171889234349063791801420346010480829321309968562415849084929186475838702902836943213401704581455879929139078871964251997962793173169614433286706022253945885884055819404346559875132801877969079191120163673263843318109840309708459552416565722588264669033537577640965264225422941561215885567193417473686785089374626976428921899924343354554333646248102790118530922043172781934791547791137634692069449471136055002179673720689688417778516999917316479405968818458475541379876498342194935219449265021473872366475304580578815096951992977911716108572759371482827369809462204033176056698491779931198074779566038671584242230160128783371317002743956674555391502723349615953407048934078908592583185365311767756631028956878503897275683970481053374030101383525007388167288938787075873633310277371166495389834867436334973303958391766996733559959716011164338486610994074137237560012547903793983822734786865976728781772764899949220341123195877318849328443300373705127302646049560111775041641883261754775388196890029943065571143362330494027537272172995475017334007754386036260043991504384412104779658262975518199165731491649742573973971037866709508173878699328858727743603777956897465290427770734497731131528410655003102057458568853413933543320784051373382408152805019265332701176697943170228447809995275934718274689806915231320998385275832190014974743614304539707202168102585768257389578145019239962653848893641599691202252402403208272737755163404512841683100777960714265054602742211253173602596417847256286903378967714157581386232964064680472460723432664400831014060240989031050381917743148212529645853042527561615860468615382843472351734953921473732942522756035295441456652600284262438122209475540247040209482187562987014047046906613143543915653913344579835476690128176290160498766081684116300539498721894187632390692900398384978204479106932777457992551625134210048147727448394838389292979111476024938996850348985870772546404202527355973052425995560026382973783659587818494113276800357735646487445346017180565324419123829357037863691383660600358883495549699483357929815232575210440471599710285776319319125269053138492013036655564081174288540695752440022021578583166151539043700403008224623538627348109023443967725793447400210010382511307036962269983389424004236748985190699484394264956447325176440235593912650730314957878922070133989146178752478799155288742243125741577616982613246357349746624851270653103172764473487407173566639257004215346594321619027535748255358689580998732235296483480169451554103471365082848569018490296819098432764018411200248493968069924917663053529095739557095479861964051730410140901532248162934495888603151254591642857897731574282409100521983305854383260497761016625596593854364634597226931302144614211365777480757858821490658284214055057375357041250452459707932110377822459293776643405121374864282259202193615311859077909962987772204970649061417739079027567579350260032327583552204156424605204735715611883890636870261816924889063797923419524698432009746876593362376645189874835163640545971971585460968543637628960408805339115958450302508939076769401165931174295382014280603428574863791261629061865851218541609388109931007744242424282871752784493373577333948397156650466661681492159773161009889538974789548447457479562153947387310050479780980763414165924548412033806601323173212701182528489196555188117247583660694168312003985949547078854178106688354053890133614235062479510661984892027432591060278417635473383950492460806992862335709079380636121622700266751921519637173777226910041463124841723571007835523183060224250105544546746863912474029830987866493855486663553074900212152188581207060273493533165723513493741858539912973708191413560644239160419334446050202467884751069482111433422777530346203320771305988794259428199976949224651032953288474228095599248767732212147376809052140532711877691916402816688130279917444614957851530294089828359588674174761631014855832882896642421044840116102724329052459444887312237527432314323439157976408456216918515165805773741895383566114442233375457263986584352372242969200176357402439548808342258130160845747000018472216850316697902904099577952200197656631662000878858387595331720199321926748212970730387616060265477200433776976363604889278683080603518404442899896438146791759378230985740889657717891064200266877677158631733403356693638660099089956527793624390516352105461957162740345513229674612136105579619484308301337188837387097709870889656092289609693434154633058362115953433629368645122659325024548926194919130356210236598230709103822843991698795181469519631579242726125461916880581009338722151154372875163288006288179807276426217896783534395916445982293718647136580672919127871083121082104547008949492562206088442692108283133045214754948200068688969952472336886724485092364730657213862164225043688322234634946893833924596736016990777290239051477808704492526328642839188802760804809979525723425047755032102013006329296294772440520100159572304037271420698695634937579480203475792674333090510404203331287582412050645196588866569576289827371290814688303709861325566700035240610111315421604617981143800764770155162645554373767751254518577962649944477396384393008374231821992271387899633081577617326655540861310696529953299009000395218376996827158172648383671469642437227859437197177737897457278820763036449919814700719187335311176061627538901263986287478036769575969114295821150842325586615032026870048057079367615704836692580944640796120865606979806192335643072306893014943228934338879703783131441091005519367404123303374391629856312779167874565525051214485684207039847686246502103824926719218783145527749887459127463940762369555235580868089076136617498092350564073967375421191150836884635110178634902867253323981990763361645217309390034717059789908118825028756365949259564470162290878411915074665165403700875927105775484548714534725914324956888412191917744562565555370727194547622009543892382657627303599979458535854411872024478803811854156623182500716931706851258589443344135489092803522474588180977327723768107240226427203095844256435505926751481165703602063400561683108448926290734513952115180257339160004749379106933871828463581137954335350842548476955634356484062711292081077408931993945051880817380040596466186578075064567098228740168198319219743185195389951391928618150494511308431824186514632377449757743317245928567220954906986896268920171151118547363071555974444225499233633543214653599566142026933957003803330593999788417193611538539969743716625200119544528731541039243132542547462325348392516875716326799716528255577072214019598841275221579555497730588818137524076960068097222020595228085888519944736393663052651451498519688693070945811393612119977478074391503662694479817931569805892637752184447544674510135406635541886823838129929729133506141442559614397804382744025993162243304023428963455217076642921975133622671888245535548498464935919932350764265737202858590270192819099971875100145669329716627659494899282019134308355770503166673943449649104193809043336546903528140962673259603136696637740842535571734346899751054149360371056870536405639669725988058894098752371453204179249025505377197645714399981545693548209928050401646163248887405857695169202815860629898332252084706862360302906297268599213462495932509052449639463534302445213906494424971149848876531773953122497015511619141878813521167937691747361176646581361145797927831508788790629790898206638629004048551173080667724188251498115990270585269292651622583109956377998319001096829346875404220162610800653590880259881899114996426164134368873736851051682606204360140647012797782703992218272677391328489712424412908912416335081777866343575485072421231885346390171067101441203332293360138484230011113364727608628954080257053102068022561432005402267750258317574783019159683099912454085800441410621571656123063087560835331514355614790182533997337853241943956316847925272075591940793228245764284908923893180559438554091730582427568113698758965072034085764829706150264556598585852644943514612587089696059655435593186348271567887174253207996941620230165576893521999178543913970003128356641474619235478664838129630917044084927411578214600090410488152759583741500270750063778279418917766602264374341479898439611502096777766723853649591501792201142598414046499505573553599325918308667710707072869341660402107234397499147252593998010809226256620204338973641726134123893771109006677785255421384452474122634765404857405346765994234178418298126292918504296777592178306072619829457410836613955624393443702585739774414005804872430347710856054280981685950513713725481504830605675595572476468076166999293319251749840589260973914035268781451826235647388134634316116139718654826001082363265916140992586582390039806679119539517280831788575071081478740531700287914053411754719759104632615942949372708530623424008839196590847419696388292708262354278891186585352475437793363005225022786942645125457201428751880164812557054292667729224926763719135298601582180922653419081566316794357896119134358280083851623397023586569523515024474688472318510616989885015451038427615384308786483072589812593712183213692492440024593601579621495752551339907328680769942879826856888919456185900187956638062730381351020845347989586720750689838037158130784054599921161069401161502224415518214178428114512163843007175437074290656770968940721225984677497665553253119641647386098985533137007455300325715848294539100899722638935997419925217331189698050661562016062544700748821366083553044427804031525380612036322684051166038504138562793017387763583466451794014623148730275209451193796335585332667127093531753040334281444463462048785725711022740867175304197166308893451706835876665996041494150193047817154978747783795304584337545429998406117543363596408720912081210195122016038074207702332166006044650842110798671574115160323615236866260646818980804133314929156744729690022557500930473552087627213799909216247457084465281573798074427660922237216844198821997857981683772536048269360863506196157576651253780135848625348849042565868449231557199506800702049118018181630773059205153840620449483291636525948816240557380361234817183618255481610955441409528218305514444780773019639055765956325343137845874084555520422481259909626842890896039475240619874639043721580316918063219607901140930506352828793298567492738704586148429098865468992787809964269365327900964217807290124355108216090079502040582641942630300694149204433016710984382460753037865387036950620184978623821281884521616887709367752142228340430172144515118142809838404897010894415294849428508354552861714735222943768032222253693601169703466913180841939225394320855918300107110329075862478304526803484665949617794399885758905591781947700638060195051956414621872000969415189417319479091874072616276017268218114034748932196397487858769577349802910195036651366308835265281261049422892387414885104775950737764378388059388036021253750040662894413146358747992249533290808281025351835696457779998419713970777237876174061057663027393322158966728621422801467200720918770048443665818772292652792880799014734779504994080686431736665680625257899993645784203075701459727944291894589738994562735575783323857073121006483833858248081812295070806248437320928070055980821626824803729687455526512046113997359764905987050956133520491734515423687997530548513621282114080396888099049142312312242288671987215286336208254818570831405848091849987727752828762595433297288889148195102929596781923188317145736659267442831785844238444409820202488125168158972789863699617201507963453957541663642882834710982650132363238765230447212071414289324077807636764189341843341479616775422538667214773244945025664804638385414099373807768953969910070248814083038847572419517588706831373537076900359763893421595303164188846241832972761009272318880912594712076845981040827981436051723873703722592040151056980275458512145413498941878168436375568257162432274191111307367389511053537487314671112848119203277070682510229099051702010989861940801405297687845641301186569040968162305449161610348963093254944149041551000254438187822552213734520158175470176754394433376431008651778975253811808336146555828237623927951309287800594025053958263562284399676290427803288647244334318413561754267954829512165775584391069526270238582298744416813056123918056869815717410255821693915294722756522177769093816979101397318170853841934181728891622245618772303917283990000473127554722610965690212874594240512540481924976008312398026032294981632010217122883705001435680685758721726005871012311472789247790238491095104682172246295774531282208024167531104465721431520266766994464301127267881946391730910307031994586796328597478858950705130866628355327012668954694970482632553000053510752499224833636112608936980346881294996191835037721326836968183958129811141545883509891944279529680697017382900393387900614513151536060319460755350956938269892175242240210880614929830770071889439274010487498404310908021514270533400570987606815855019785653873545575099427873774658859760952220038243962550181391257058851093376225191745974263100124487187017432878292529159912230874862640231148187017897741975190327243459255658154374421770058678579318302212647230955852218817380832905214523891402973789721666904397454063919102391600836102711278516516134421821709427540373168093529004031093729971189781370817274807868265822386641643899327553726079167179853605129027830539989817666625186323000862608740153579780008004927320963684763129834532729872037959978338290878882444132931740181082493986676093550044745135832630468042107406919197641131197991611909390260625886847063741358923122542675635324933745249232440968750677664077515508431419579441130737068236593069645727061470090194907002732362593531528475133861149255486997291031097517373637658696415118485914727041016057553227629177387016638004353951486753968591710361435776328425443776593814594744169890855117842505629869081141447711645070395318569847040395688307764385213890593778357417994759559181418950108005591247307191296302652751922942818430039588867748786070665928395762785183188147056693830828431347116807576520738003384976216862087047122430926095661141954506343609593490991084489914935041177043771524136836048579671437040524202660539060807440616596571802259890718707741548165218787409474888387192708017031969398884206741947545491544762349300744413496017064626221285642392454978986372507123474102545585082845811340513940793949861378902382605800652919664250847609251985680545206565678451797305979915464078003458282774216937240262881386195328354713443811300001804959873053710820438036791120117677564113852922373256542114555952056344877481215853961264905191831772552165432564593920351747457133375628744357610913248638584184550326245379418640405349851144079879176119228733522091226290895187425545768816332118423768969464190760633401635217548761024294930829876371896386598542533754724050712970699694113270532808360437300158781956386742074724327748884838086411408496287918839171520575386764373690318405928777872363172666203507717577196332124973678029620328826619161767739454588753401790300594461752862208621473981937695657075678832209247908024950759868359150599446113729474707030173384023825149821449286899064536054196564834442580875334507886144257951353710289044500267869357026455160444997813579807919990630028475883975992538306811824839007519209909422885001574067914228917592005515144840664666112639463916210642845882848378134672071434160953787814409595692107823552080222947032980295210264674346518058128515160478672855007004015041042056872547079488227661640219567546369350169949164730997271034256216287326802627639959107144820795904817386172569068799627418304461142857065906565021497726558821483793765245904397841691829600612127253321328488986380128567435148874544463295764451104408411645513315645885683280728867292651147797234227041782527697304915161960914915576302493160029576319067689141541014827511882546398297135829025122244811772577640585481499146219324655464059095402385075174451777511160805661557390920327508364097736288123066663396490612413215740318995135389103291624406685514003694574423707624403589362657405266379178707302443383313754061135113244262579170550027068854065141178332006503961567823627333572179749093589241665830654385935831277937635880203920673095464147857950119512854398542333233789071400828706378935483547778409530928642367221706500226358673022491832502506834185798066279438932479716098706329176408818847129663994857496124824737781417803447480364148164863545802454518690964790890697480718107418136717580103229819524852159424109802918006033511739170719947541594016536678305728730348656008690247830801276764627871813934111060175710573481594965810832656811944238772021625735888334879689774917474908347060234366761224395935749464426633273685631187475456640987865195125340310475751683799625621017524533102505990385864648962797966436588520543785623040371151795651448223483432617357131665546305321317146050137644972249018832279026905808641929366484762668088391144285817414097076070675657550489060659871506370510301884448330937092641980575903549485873663556901256750952223909185394310622565767319754745097577983015442409451470952993243976928456678168788869675476403403024480151896231493860766269404586985501738282524656528472397701471744096161457642503508131989773995320402830665389376116046849977655012069860174179266872413722019327312210528257586402068476294280376755871365366505688313488876988869060180144300626829804868913631407284799936461727690560237436357577897618195255845016402021539144445733840354631005372131364994902576953363070331578970591028129075787064916086561301112195234297637267691636834205064470157227528871335864613250200470643678737561413676952318390738399800194858513140984133436599185244982538591600881621477080198368341161980375083934726052212735313260015348126693960835434531375017956230988103107250827979716596361050708753003941693545100927429824448050474419888625507197000565925901394774929044313200901842731632538403007657087662477353081857242324423486916029704502763363334182375826356269095781806810880781962036362554958300195696621086102842565901888387731487710951840535799985193179663670473287775045383284161390168106219103416687503501780741064044563823181790562194662890514941090406380604795711996617906899018454392828437806581978842534601658877476058403395235633593524140311022548419825945154518770906217085980798337359510711206755145246498061584941314278690204970008449097807404831170476214898378642460636817619074367271597918660738933255454910079753133825287348487167223307725324004917695552131489737567324515094103114933419445242702473468997656856001821132456966328321747657632472558192218895625583589082791894756378311340049644302268019788384832606751746869309283823067712938001577370025337802513706662682142059021716070778516979011226440868013466805654439499886579030404123859661917963094518552408813580211182042248420613555816709314177740479153254441133803078532595534393094814407709570706157334133643238412875306648273592324289022500767349813158293447886050500598036183483875637705975259656177377518509325754574034902158020830906936183086636632964707219035049685450934686440816962760411423009440275136626234498918039062164014908125564163525850036609973117701197396946491820876960522517404893816760333259038210696071087427867120185471761896775016809965256551142875702019940401698562115930354417200085807259341281231969563069193070618061111889202721426061988737002449950249713038301711012754664273197505924055758344689490412082041883303961828139891674872860184237165712730687749547347457947747101164181349916553030655448603542775384292491268776758740697515807521811572013871665570979079936708526039361056170544654835530528119653286457122604394190881430776350344385588064303722319361305418099409318030380920431107035203005510042154161900119682488970963024710098599625036899141993730185830599309583358793010512146692523487288631760266625604146091172585921171037215364315471688055659212614353785244438673519869954524919425891505928104350405975133668753530412064581157323870036785434015695670104685097858242819402530504694055029496872656577657559845664996348637467344610563790363144846814491668923141123758290275567599196033399456607979494813825889947487431198097535041170348915005898524863921093871900956326977538150047276497579628596515749662506945971776959303671809299360655058017658608933387308484470285646108227424417834722160646109322936552184168413394259880503202420035247877703629418903262188669556076045275713281279461411293884974698424561793118191115114460840514033162438729402267184012004618277586535754086433217642856144024765202796325851638907773784990804327241086215201676010677905259275060298058021295362247944450889032159378190803274506947859307090534672875545834684434634128755400883527652917494557349790688345315970177388978914330103668659886293893343203263653957658804253099352425060692009095359527063641388579556003219362316237606645394854128927049497871376307804550772189640367556293500174957449672894650012366807774357287704044572794450463639893554475882062214502863631654498262609847315813889377446898832494804687766139033682026597953635978940364134342526971115150166806498025763554866069780894997972221049016051453600020474640973116433156208959323518974015030497249370641642239050930132162057373368742448825618831433252967378001799971314051592642787476626171324482397136630329335308152976351589417599141111546481603888608549394658756086042729607008077545478408968295567807350864727558463561597111367915762718373696994914436193645343926037484237267673457805010945196901951147564517090646162874802928151621036270060420295479327123728559901323102056452925491019589585529555789977705512875608645366569858779424613623648442223564919984841676170396231099884252648584175511549589127813472703408930789148790154903837576791861897385186046200878051687309582397221638338889934327795397107699962149885615347459981534654998357889553782423615561311339312536946753158020520300932895152817020115927981007564233820459539358022012334720422868457216544595096520144294548524939538321610957604211903097494399829047185178754654209130521521717197917679295222850097260606710950038621735885579322844727213255523471263902172050654031629299732856435000665666900836835442244992656635856024116078448079318803846512979686889135545236085839910364728358104859102652309106039774708484652139772412882277348601168009409494252884621745844775435797887149193243718148422713775865902486582087576706968058842918896112581170828679054291132152187069345539727440729554502998028754940484735748315562439509591854941110356454189115457368836577796740245436753537424732037201704639587473052961540449897492991826153737811197207080323365261877698201904897975382057000091453517203626607618254164282431466614543218156379717399731220379199999265697611182786034382138692180252385967026049686429304118776893884471831946406264671080878711528690476784618712190123059026979577445853105896741678836356405666290415488187883782751958808690533352783128257709424088617788188055219671110893603118365802446193795288007619920185843780508467248602520934800651439229638563800281411123510364163335650436535576157053364528475578249277660703157740429668381677385513644437341934032683135809128727936515737228420859865317410770382105190649581379021804788115427273107377052287929987990935020112302180446064531242492990985113453622031235369027914442789178405843466931413315322399486774514721169209090036910498695358258667093236363193642023968355860731993616306197603941508040807105089746176075708634509104659558945763926015663009763832027233768878987018087925659621898768278099380874011484334223348595896516640002125502290916081900859577906417370058875795973906939162101043657965692207202958714748092093752731198063718328321894431708091936965124550780378844605506880407287233169140525598308356940517783431583951845656011551463589276347225064691589324324942177716484035060016034651550013136741929942290076509724979447051571761100480009929245741829457054088678552787646050069662867137170409695665300530487241826422693429516443564699639413875289367964578410323807951403941364125211412157383099469656416183001840932708404577671546058450862920808598672176895828262682628291748891459358531620890323745483261957175414150333199017043597770430378858301860392642081568431079897171514652431133360185720884737387672456290799289916227157624540824545950506913819387663926577070493823305902700542877587607303753256370816556598834938582783262358758740252014184290339131869366022001910882069166650539887658731067517683727804730714672016257957727405808294697837772664671906604195696759521980381710848421510621156197447222514670136183639041704109335264081307115452164642907196716308571270320696200919185191201600628369265044961608492831009704689305073358339929947170984805441213977202016498403059854151681840255164637286004998962464516347259728636176139346523639234168979273643738181289311600366381001417398479697125855356158770221627756088850234601787498726884577452205397242119965812811666017496555758702086308022224391058865420198241101595780857305831448193453337788028713093259386348224160428506794561143500963608864574259240813435670745482146832865909115540288619565027860092048190037250980607248221142589806959577494608262461311862146074544662545868606222512952318271032466653450528456155979397822499745913955394223515634040371155051918258341756995919062808494830168967087654503285305536573758379717626335375321262106718974156283781819665081519478177845404505461036407050162840923258771560673665037359304735579211230542944534793684678275590653612208011675639302700237492669384329373960684598206301610311036110384458003858757531593538711462977447338322999991075407245085098975306885695477622029040568070578011838119151271173664324277682408962205042733172343438954148449488626134130111039058861988459619608343869703704472043456023153084457431988549000055255217291234542078709647954192393170074565218591458727429101733440994864448265649133470530964573337349333394088377739398658463503636955854210120439924687540200137968491697177939480081594925235911212605016226011897080784588108111638712984263898812987334131500821327071600272070473176120441277671425566246470045162819733214781887590435220319105790930451685047337873620176572211021697268322507213922930354958839214048368366487800382702302751827669539279893459630862835257653320971290612686778391226855142808824062400386147200901887662584586732704571045946993865825081533733490685188495531927605536028734270704616322933749287521512794319359840453089532835536493757879961762302596389229422349796462724946723414581801955576806955022134542514601544835913865528361936957850570786021980975329962309016354151814003147358911411813540428551819620636817445683602567450333334273896598712247100838421893211029527352917262497965227099536420248410715515168792824457555627172188560991967163395639717510493537901118136101404389162044821309812848830332742725275694236614486005333826340409817627168435992756407953608173804929100246825160183919576855703052298025457713660743975299542560808035155341120053326862254454502947857369898721297910033502498298974233591320862283808851138388690781050338452706244866439937380330114004816258749019534184579053068012908429910639581706150831793218667159248825275828253067702526282500935122308307026561453893214200041521550431595847793939023385565677899251380928074603020762125480522979975177213931161514558866811978767264303380585808315187250700095064024839982947376081420178359848920929047850296809309016514089231245149972496611313480025158783375579033414211027968910250881796228206441832322522704552352660582799301075026968050953860094424930113389208894761778733808283813170362671268785867707001897624562552992920171643812391995901160002314413718894437981409968577795124778637437849844361810374135807403110526819263539473245792637348240674788309659123445467009365643015422059038017633616797784692332008699332059199248681422006618588928725010948051936448455282483812658910012769820975683159781892538636750746869500958468895119006122361231028806012223525964331652111728117273915958292067974684630518684448815615530752651953504359773024886687323772568389173154780052809913156250396265830847983637535995065549720324542053796818655577125639758267122330302490498665922807113898207140344448677721242210777412394922898601411365407333925515324624300174371864614551575205485172828900708348420862052269106941480833420629323711969804389519899913518475597982400722373337806745735211755052547886516545223894927757245677515181783386388282965085946737885245157272455120317030096904557713953586508732704596992792222574845741245455961324078035558652573425491627442503083793796812071722194690827297316665571613500542944585291984121662101640938659613386503006263250183013837463126209570921452579946811894771223688399103865731700446205504004872947101206709083719800039028684012976559327914530351502222378789487833166235675540021302089322815514542006576785376160259174755297350556113995611986598493856275116233913833433453648097285130228184845267585962377207345106427577674291077853455693054897730580890774033268170922765263516998852748495722457887844745212582852500197484732863491316678505403045802188986612497171621744304066257630327597379904504155385260318367420347677160820073663497315383411197551729995654102827094981580956119214119708583453762987712846477841526876860588996472747500380936389609114244603027605316842550921281041183985337301246738615150124504256499235503313663054747191564727263867103204721433462696303938348812197781199380168076738243265223076393388907892514436358575517290323790394243116645556930677370484578568405419292304905435420436228261533640696988155631275608550408188789921695052400691049543328211948945438177068129225542002767040709724684076785869194898020724139523789340246403653527867315240520561908110945929762924877759600340514421124324951841176252187926781661901031389496497232455096943209552369845246186355506259846949854843346497652045638394828384287566310263271823716456464089044446410953517948490715524329838217066046368452783876268707228695634766450016395617317492466451996293218312104180038390937200275080834071405064069219849276524849432762115422301272164972890183865323805207635358248327088305578591230466870374255472385019187393759026371098469263288031149209757356229875976513963516096622334372730232782464522471423902146350151690365623709511040995502070266403033869448386471169259487726732718421994447915622417713528039475448538347545386972383028766323577463460461778154436739368824396647894966329583459087697699871683117260341988645335335649996724113925131405477502216297119358716832363010379040760202004856689979371244127969169515747778886260262292730838334690208772779969765029686160973482017108161535578981190908465713981007390944311060779900655783124094131210345850214586041293041038448227077411103436504867508789613201978642007731516935521554556637016301544186006389607084236656886935711907636175229274795189768749037691729348808549148987869162109092755553674100886203732299947344883962059516149266457653441694286303378540499857443427350814021630829955306008109469403728303455410960194348429106257450325895489265170179236169168177122692952931548131759440466410285960240256346069013748004841178951375262804022812235118299014785809106625802162751408722366150555813590999717552515682640731268913071576970674923979004665474164362215169189056883879755485081434310530726261624097968579717973384549331569536363022970647911815984373406815668442201587313065483931674190351496154837279606668063138308679499734333238167228203800119374193924498407445136272169150158403179610162953453456740011321727445492327306485020907529426309272398357821178425438708595287922352323567787276044048804880983128948433036972311627964454447790961395906442824534406512115116171465128128419567802393387632941939525383722042764398774325907265097918548344110569352975651451590502673523687908057804072587476485811359592442013033328392465263388599820496937552894581051345346150925985094023017759983353948881386955802307987858961885583742783008936766761382022820734890516828936252611745802677093158123731210443292050875551271743004709185514108485240201509648785781920876548752975988874268544137126929169956197683415540807555002991295328977437524118352367423476866122812227164239504756609047119052810053068706263890069407330350880057133145553035342290204400917902943063294278232093270037994272851525170722485781793915759615179198409745521593908459745264329052610513225004179809531452930951602632059771889439917307059740716758967482181590007142234849824801079514938815445940603885675827929428730277935357968947611163235901707265119906642887724937627830489541077901148811952329196380782707064704815445092695476981345931553234462817828317232146028190563762051229252567256805073247995487055164581007410928356802830299647452567363077526560375525441011297135773867763813913367694790113594567065963893385473049587458959781606251781150003586999177079048827988214338736072905708433940507457259704404816757114901882652997984966200002432903049899353430994371240321100636254895752891022342758563540314351986438007007694341564118356571456154481996733862242714362352995101539081698808079652316285809767114678702500401312703716543632489293769203959257906295311006950876490564155140118166186684253155578899690732002514635722920649325379931365045407519998183031871462120420433041946628215234443546978208948788144890502250470580721074866961541195073193491810161991287165475158496077573161559791120697875452616109305845085691194135241097519001595721077523853914902648396136774012653125673355990358963558704998553726736440556225776820978563165718515126819292743815389547628491902652716103696825017168132542576155988999204059555870911706880254717597881642392942763472526646816632467915995927367052375001317817528443504988217924010180021615493449005872154501059988360512091428634037053110454652332069576351925693340697044789471695695668146291498386459762157725148952826312941536171032559154334801646984442257007198457530284512150075162577797953612502000318031041092989298030360745971750223116471531863893628686335166642805532284990699277933218162429096107803850958915929888368865845271721419232144045706677168329095097745267817861543369584866742211603567889146956509862297175339329736269656294889128702095090351221235169657602472811733316719052103664868525332476985768787620729851435020161292731955823149009006266602909686302783912448041017480898562462064654089443953390261607317379601684678443621643641758863468446875519947569152619648594959906388531498007695291550424218740404562742046716182198387528758644846666017910248340339830580429051481061226201015036884454834291896586368543158851251119842586172541113090939493898689389147707462259125287273337335737894634337130090760203001226980239134210086525737809238909309975589283170620256619590468135200602765841631760695116463576174550654325344081688372493478728627284358928058361255662575302535446039574093830475743123451081094920003363484524189982985537630368363619891770177252118155656450012478852861984057973160724785688394267565739078995907448371451735736037734486588159304549071180195018220110170774953388675545233152260844088883463288270511726177399626275164909667196659961440635521333875321532964732159200271446753987225106412028544732794627142353078803561305215734728220350169435961511616389874294221793898035928046496779531467872103416745232519620817936397147094225981765746283294187204936094832680152683130006318903270547518827309509626950205272060109622504997538526176884430881446923819186774158696700282384961113625594236454878542818142343680309321059728460099030627033217498547295009698632004547236085621123305054962538865355516625447624441740139990934158280877170005355811649099557766691022058440456629868673869517079829911489540582200937573185199704140083663366602845120574050723369549497102115201475480839420369498948087901447953403317042728900955872786957305641064334003564866857011426951753589126301864742573889801790106993391001167464272291827941686703977006076475379621019779927693128604444002795452640830646429140424560877393518959912112009981226756359401655001404711743337936256578703696125327493938866067287815536515504210303448050992419503340038300939744652345728164737852986115620558753400643864038996361121717106269729403287913244269965177099346606577866071672701913931152580377275957531181128065993479094347510753260618290519128326078677710750350796445470948398392018458553525448148951545740870654486681581815114069106303086772006629354516700920017694309507620905404822765441550650999746510147863451603509382818163545544290406761177710616979126985935095481370116169544974918869579469741994896487156500786652383300329018890622659829215488835826959421796435885695557734591098912873249309867227599676843878137261183024884020708009951356801015682605331148348266914919468575457267734346447018092755192937274824338136200832052613967709025372814443686933945738909372110464721092637538955160664832243756922869701991666163746135473219897448715522945312840036886091167224733185478320286258632591287411095483693621227168358498785956903519749230825321649861988387153655706372259351761488644627559110656779902664171745235344335467908829254515178768261637217329495847662869774156497801897213347920849861378071704552861885161386050830920689455489480070818864176478639265063749426539146811962645235865899133954702263080409725853240385029975777370656910843880108192645758731653062183549421113993207612263049613006895354760220987750295578604008825907081769989589440976465669656470260486124745169281360498443016763372803074613687544616734870641823353071835337562031182103149251952140924552979469638838234150499211137598727731620677699723321461394673303863382397613380503459605696368046357870974793883239380950964077058278547791322075811392159931307754956790351933553997104986980114741880876150115225656213983847422973958420613942224802128901649394527724576857643025498037377779711946223486285814799411430415683247606728596854213717373004028817714018876780162449210317566395985498533519290497708177980355949205600565990770140643366874373745025179104902833533274279698713834802669009328500371664789662199773904369540934548642030634113834014150030499108344271414731144961931202856402336942952559597899222315118791098846342351808678147349024682960013914553822500048631224192685811164768505610083867714902971033616670888675301504578003796908473117641533296035313168815267778055666240910152957211331171143057528179095758138882383560358316493772529797150787219363801298891629562918548018628379283428909099462737617118010886557372705102175612185825884995036202171804840524063399768039405632434363446682097941753724503544637986991252272625474690786076016367027806189466844280451733411415009033014383486499509540220383033378373842971048691631410018205893037989521395800157735876214738561883092771682905818009307002911989546855614789204317632261795761206013938375828178299695500396849408908776648369076675596648002693211806131377531384190276167775128041617326660278952452089626345774688163908475015594541537745145708490256116307044613535940577344948489799001744597227583194333458041934074946499716924086409574619878710815408836095553670010341355803922167419215680393787081152851388064364358388007898747286592114796066095292434499615108240150846673542640634479155327601699394541767625466190958690838282834547638008894395130546276933409741463083399502300825757982298814714215625156618037510801656005113712648396351714037915341236756241792952957207815834365465678257936725501759685303122427137323242548258354600245694574685202310038182835078734732079154454288609392328207096251469342885906334378789236776570547461719018410221490559659011873518681703418303764574400506737585486987404035332172873168013471637776012882927848471356515603423752474278648891271126606064749734540372684598536323622554003913292854117092494199765337763833485238558501048162471340066342602076048889105629192212539951377719962098929447707902530034023061375833595800786362786838243700805491235606834361129388126510399410071391555590365353646222979456206543540991498362692143225230232862747267813817091030919444398709649593684198185894771769280084344767956960098922662070674810102920006589833105879190990500002101771261876112760491370392075851591803674974477898711583997603235263864382549984975147375414094189236213110390679190880717914224605931528240950243105438739381579352238171194319540018361669512995413137359949172766677495707729011146726398034651870805707253332101836001821565001874701896301244204571575900738706335640263470116965449945075821935510809773599649183192457777219511000531106296036786576700045284420537261154209579319673402214131861243313614832543036323000603665580332613728979898409516833337843544044620453369680598113126689815100664534090820580055532068478707650074630164173596387105065370018892876296193558022805052275228461978487845445269575721588306069033824031632058347541896543972873599300439837257197978324346075635725734845988270509535126585123907994586742462810511917059646098142967613098839584363229319810403427250089142168183338991628185720654471820870979429330954107623023569931873084807606522345881750838109344466020619374193867743970159621446533141019321644411129075804661930883182231450745987554324806655917640894535088258907477015698453177955281518354000625943455310663461831400246320759236930828003783353578843622932490084499200425798537772521633622651264303044102309372469707621057845720044176947359419553867915063926797809340693430693090054272625228087255481468774489020933874931725911808868317795868701732196959871849985335924574900670639941619799775815604686593140525967708863294057246452428256770135652353613304866116160200884680676297516708094801371194795556093590500328400095569072523389074186173508633060782220045595771779270523722457242152779566080707604012749260524678912301992186542359281567461803322569680219082203486831198054444203216785779244031809160802128695426593458525577697988062657314659553045611464984936178529752997806223900012114937755154578487463454662187234072823285153191583353786182044149787760015619915804656948039694744733819005892395427522734941499631305582629067788493238023664516337355333313265930270359774803403468589462851700950570028113868169941126884863161578911383594806050589332101518448371677970237101962528728645887703400874575131704642219479056463620398170627167726448812992587081538011690672724410814446153807411612363379058503965080498563908501186953893896834172778242170087430454155542011124868791031737578853169751009571466275056501799850416157016986776094023584826493308620304726349315794762199228784619889897879004590049372711847869824622787427629491642559320779813092107854709265485064616938212480396133602423312913463495469731769160419681974180693663415452949728716030104490848416703133321852527903661449876740954345028023224079658901939160717882938016177415744563507104827678669907419054748508180644491334794124912401124790988693033934454350231272716461548444229949148043018246685724828897818326786912085288758670445788341335521821399439332300776155202147520513007779353461404924331184207359570827996451477262785898851271399973191506358587627997155518281246099504848756381899669626185388151361554216600788995598998711320127788188479568482717471337840193642787159375741303966076093692925696053004465058303866328338995904894767554752401872749593678754903438473527047329535922403815670643304264463014299433236724589597262682212374061789267386988175574849435972486681251081270796604311904808905096483281232327169516457065047366585164472236162417326123972936198750643407061478768368233649209166150887825347233361461579591214584476206946056705566193086309353499361984528406712402884901354734796264725904359378388180274989335975745172624727388992841725322419365868948312846094974257310904740870799995588033712185155060495512525036573434703750887536744973204858203830129068643983283440560615313970929658154857905893959086364793698944279978106607682947995059585382048650067133673290141895628508741292898163084163963861260889278231224922581164445630963488828496408728282537886571947564532595625490610788078346156904423110947620912565293583786841422371879492148580104014697690565467181794940786544209032130468293005319976063213014711681910184370270319749576320926844254106468854018039014018222202157863299593617100255287137177268372877844162193834527681331442533973594082356542878983017672916517991319913241154870166213154084933651398792180566416065610994320563783901263372942201071283548361660205725551770860179319037165838451423675715144421709183800406769121062058013824741965033872160877124618884234138066766544457984339977443087017906032232290585331736016402923397039940325048909806663033857698343338747227417838975998410971442945201527907785776382076434457186376620578142343919690613233449193651614247055936681836510429221975249480887223449018870378561813231938687214955172804096624781183008057183982769099023030147001985901010230859259956034653003699544990339476164451230358661080838807531190842493694115386868314019150084796139728762068041382597633049544092637591800765791691958630431112072907012670771518802361614402407737456967421588677367707941190877230746592616019496257531720386554533211232307743535075451698350042221163315325381821981118731561549645903211906649580052667770712638829455626146974837643306921845381897538851841798161195699552739739255449182342978524574052512949170902091786067873943663867233916595445767237971288539472742831833383882356439828948671837590406877892225537736005458380677443006970462135817003275209164341447988670210256129220402954565646695344557695908333910564466841070058708106274189748784500853462084111680583099958912335589120154003074164560709573227365418821847759307917128681988359628095199486717072740101602565390362011049931383938680345621349929410618297347249398216157530380990444296241240683986876012490800307484312909341471709961181581220187868943762604450012135043796975706252368030876827009850609279187938785408197891755410444081749671688088962946862006733989426443680106355501410983770961292767338953872027395491782859798372417985236600419949325193475583222000228893467266765157744034506742574984914715981176035557719193839505909544671507823186428950119562354385233566313298302369307251873625574489269526474602003056662962551133378938696742730674499434526569336069886907809201694039780645873747978118894834731103524507912604286938292505977963240854282995076573685292834550834136744852909390708208589358674137994375320937494638237843553167683629453771090789898164031653878432987242542127451068325496966639925001361409618003447418240030763297984117832906353725382065809412759618117763587935992303883954673488321906934848294060822234150526868718630034425199952688597208252892937979598789249871870467452511532010788313265709201513785081650793260059916418979210847922017991741296916041481983117196286228859448883304281254768674117468961398380711968048459592801754489562340497884298565603188615430746939135216981285133709737166234623505428647185681770813290599767103662062212676215238647139262726466497420544662294622009223224231001786338268382843342009995459504150322799513138281936752493611801393410457272878270382359636996312190505238058701419686306959954201799053942969469494794723172246927018921630256113949192050364019764249595100071829303953644176529938470617573255781089630432995475027158036329913410307391111185752076901237019655688975316133533656598329379674915246179413080996400487234557790566545934166121397758659615852386914000814106773335877973879993139218437650678555466499683684068437063187635551180187350313713110209505296896949574889458658193735989860181583005039709839649288012154893767525390816094723026138314700607264008241108896241186456427282268981094634723723351869863007335667278550160967401110444594553557226521692175110970620472558392756165648524718966080088496869583294607606541138067391978078132790449688312452291355371383769366376695965324076502579380462626244775215545708835332742593456191419116963067910843897955593253535117912060902294180431384927714441722234096825404002248244445443912538656911290183001477363087227964764061626444456334703485856541042264729113132687041656604063540504897760721405849419014077254842324044275822018672874682136399452431582663887707885950224377992719073155168529902833116467880241557129869179016022585629149360249684117374063824512221204708444396258328277209158392735953454567260141738298515636457475718270717786994979812494969591077169708308232225823709663580701874076544407209882485780109289582513356165268200816872776686755003251526228739253064356018914210793435769946591659795898951641882606256015899160272270314774694302130757349777220812123393300593756395918732203310831025075279223755601140032344720438293377429370383034647981997999556859307955343839236516616918824814611250894663852886568014945895288906764413252693482921275154615502995368433468397426930331625316443277465770024918880025608136451682219899701848458277471144092009654649302295416467437472724768807172933007399105188824220804457925085542473743124540996165346742301198272417184385440576741811702633639051284133777410441348392521634740448108297202128718055826425629886062193448655037439320887327512911285221843811045539812582731981908073145190240991280055266577234878684124363128643708397791776246764404588923871021510860864539995853389830150371979712366088571193089244573596565432382488195718706583761965979366417769522728146161355107984562905214584811956087779864244348695439729162656008318537018819816166566475683687608795333254626357270306450367340365313707871495383659414775394914310298532274770180947082067478596276566116304580011265264234351284232213830031264215229866886910268924813501180530362066947612115745279692023091110948080489904054328985750283257118680883712703422637600632698355787206712645779591239892334082755434457775935178923962917214287415821179862556628159104485420840548018632187589249293144572820230407797806216791149954497182241483547596420555676844056210569885313005120006036424537637014511371272895887939460696835352063273699810098933390293745291077198624528183193282129002689272674253584046132076443852255720073142309775099518317356395023456573303660503914197713044578602634171656034339036646296273947433605216114996282204467050780190483691750986667606443328826212163448540932045594117356094119664183588776730560168900636742402272907014067609205326986296965062477598962289452177095228419156859907278232653635906055450821157100402092609150961646754458518128226206122799208619573654747262516228767277759498818796916470220726042747997220436263857717125159711017925739670909141689614288333447167963955292325193849991679567412130083894990629573178133433578908284835185763283876592726143430466681962330928969743877486305040481168580343788279496247301786905791437858809164479621481401334904727000850809297387476356604715777772409240463023931119277558260730258397275457108094113520238291642000679980340436997210566743992649646791753568854784251969287274983807577865270453022380692390097159220701921385919026877120362539528829234094403410575453708724588141744200270312676400470044933434257400768157859400961561946225634657100090377427704879911654862799369777795814083046541593754496643619306128274000358953794000417561023936752508163586907646422640117207976837872555563411674304579294608349429459710031137814787591523827736146283649985678671397636023430168541008051394453714512364913317685605090134997978586871721982714657311896366793650292100479286931173786240092893520238589294280222331033438126590843405531372905438077898344915881655414206018597184317019223570262886807670150421702384163352547144757482696185163577133523098051157901822434476447855721261136276786982445942871489429621746109083453145397651029832329552852948247450306121746843075647841168832671250647199854638157800374499566438778786098276475800452797571342609315040179659283337794716239919499698701428639988213323673062276817453612287350533129501769142640704159616006227570330870119107592075462225326292410299597194587021558953049275506980639391350585418838380084357503397364933185411155794024914049215258054746188448013259932617220270617697215275820910127296122064248195392992256079547415209663933756031566624342721994776614332249431339702459962273623837319509580007438300267477195231893854673396472125871877374602499316252991744736552240003241679589068888588081970197208823391809164658177834853858040551242231790977004536486470081742599700208315446164521513640980500395005071780424413501917948344014591639609000535765658334542610913317729911390256466800370277667087875168258383699322768873056963892096114109539509492508590370085247058902400840729966589333811325565104231196399209677938938036068081392821018124313497129240370674374544534689649817120184915228655570549590899279822147800732418992645490828915263852221068220234087676371938595480003948823148469093819390901333604424805538982860949314008286570335914345119044737807718104111920855663149369011740310783356350049722154082577902178377164416084389785256146534991061850583075875630105541731745837361772659068029237980068170787765610203723869489532871607743159446167407296952539992274162219283870208698881105328866880265290479278395976322652393820038792010155213659708367531338994400667413650623468824563817385996339611922919334166270533341935314960062887229273316791982225133763340003083249372027660091670548211497534159075163481516149927350187584754119728144371651183977448964828582228276939652783260319218878023530871898628844259205260305588616266977988859084402242604684368502748919077088928338907762310488404768178073040327147113088402734473549984441071476233364284154794774159534014719381680212438750898980226235026489994268367503175779289831757926094774037652816617662658613694819310294526581967643021463787311547137364685737781682378385422454694158424869983100447401435900913679236779975950493465378859070642106784698636821131781500531424177200682833500982770679604226289789608117770122742384007321798779071897853412397212297932767474639713383633163504294050587964483859900832389968408578254961900739041128611419051282214001841451013260131467018669591977462852142833329225148589868760005554758641308119516680890282476426874644808184451159200399967411236299354715104000576527984942409722451763022906784355694369141586190336019312440770901009612464812843914456485253657070890721259648219291299779259863995556335936214151941125824598371611399880420257117038753331553030522197285487898725308013511739151720358737533996962817169933867860143831527410168098442478553209524745495070856971559127062509336658460573432368902101589190915651675895088180316173525613329586887352789075648980629710505271809151773002012269720414732709130292958623426294573072998458292025408005031842077278521508977644223652865417619592443746611756476115590680750087144954560529925654783476439875570202829674621787257119126216903382009941197000484837733126873282884663230180464273645448494923736248918186223669945239562783613186888379605714514345183778327402266476386295626312430503678429804236560535289568312420587512192961311172715587983827669896096842941431540927660610004036052905266635549364157996442603876897795206138542398290708664960481214068858377990376651060566572807354816783576613163943393174517855322222552809222378653685822883908749515800991190611591632644735121279974834181042061971428007324586207217196408441538740438330893135024257452256098087270813684863028182395087390650596966619907188032253161089572083816998510572789057417214346944141199264056873424783668993713275425852909456438451788606291072906967338086145067761389725393952240775849487005928600474613897867031324126795686237091501401466400030817597608811272111353292325729744522090027478251605423112752944909854282033513915929405743815864088797307788180737049276310176588276468472646780277168458539276744306644657113750617933419210354471789929154180360626251833023753130157437698787525459248163746243548096624444843835892874587807179538738476447757675904833727791371756323999996620001663170310054026233732886631550447463480236752843873339994952294320325362943963249858004715049376412979351170089630028061712383152439762838945441257401161006979933136453015023036644327395886797010653852163400819322110451360318486717378319642885237954908737888789040888629574203592108957650523638001212508805981446172451436313899705878401593421476175217055054491141618153633684723269336413699933525248313422452432945850146806315447901528264792634677727544442586890664186414034715504416930448769315208880973664672930252120812413764677619165160863406835931053824059803636483080249767979879661700984841863349588814803032309567588287919865054177807858211740221016085041617270170014358212643060182340675416818463820184031994391780296573702577432333973272634668988395471591823573839159475183260092412112695227313191513589917091854454764527578533589855253667489441070975848724023530595976357052222783689228111744165453712632334126621374453383351332620769182719565764452904505459189280518327607996225346055418522992857645674505924878354698217618527795267468785187189336676919612365330442707179657658789273855929110780128651090580272199089070314771456000200075589105476233418251531629613139621168250118637669784033801335620449534686101175589462380367160040247883241971957569493633002600275356184551950096561913925136162791305767390273571555066684985785822239389820644431288798823553047582860419499268513223100068100890186507850412182750256772071242722783350624594529998873914956284723347353587388926674508689627450717917684389860144864254105158460625436405031434393481245958535474686866058281585694764952904761718539774219014422613056295211090434848192357174253219950611062172168158815095865114844602939941801519933186693436007697165164420426794904054009414004893110277620540438956786342228747714430570571979821236954408115632774534504400040936380876751143796700394278591282403676714203676405035439159216499399628352882862733550979466538521279138195854998090100872430522826234772064747839204258070322602777828877889612078688572280263667125374544482158422742396294536952919183298291954744213216582073714129866323834823931318174961020973733610369153343687043950812429568796018026859652655375900723683266165888653771488292388989979363626699641874367466692595605289918728450716878536234813961254648215946082559979189723021714446688550542331869881119211026208082176074370332410651226161192147496726911682465687154415233798204904551280203685555082391956990894839879907582547111664820118485494323559310976509849158431907151656995089760819278993729130071708403138432759218528225813805770656668601950672934622005801516199499418936764984630011213262115523308662945627111753607394432477917868136245182670260456435091229560330409529853574981521536187868383168839720105603238069933574240338519018993037105642437422842398076172365949450987362750721988863488453609375613739393162207430743852644387920207088503866152630403263501554259279918798661316058407287825341949944513090762320774423896670592714721136482645002117888545434168928593674690907207494457223650735108416649973914546196294672879682023037654285819761382556334539085037589063534592378334331390324913843785701067782567301941023287939706958302364106490736178641320944643755678837959555026866406889094409879767997541220930367151635269496129739043530805126303966307322303876595480637122059558897827207744810860126939436429863953197115876988431587485270214531326256724302988977837903033993556492697933936325617910949375891731352826796635639570192563304266970459958175838973877019112576547116067950428672391291877030124190286360850445510354618168700324954751206634900972210424852177002811681046893620594974860596551672446346136186038944844087893221325210396393575759731539803538533850861905506485834195676986680747122451166858087782497714505898253519911273100112033454477424660227591531308179033415848609516285145995314217940091838185696038711357641707761872107142549890902994420757529081260080790255341862401647157615859375675523668193414272053485783735441065017078680132133471854101233841419341638904811066188312578268408836882112999359750109435262006291091194810304303948415519538832404854416283527560126439880602283145180088876093168080438747529935306868539601796556217431516563386512464967160334864862613265678906069788496081693951948352482021285225227788362458017797421925472108099209883748234248551493426852042298198910739180326009199458664436925833858402714809654502021622134747168585083897582290177442687189084863923285942264669207357594593157292467813383356582035681544609468782595379075911044555530674223499718421500297014286806653287044028370526382778430691062312059876175921579451921591635729988387142827843063067654711042635407450267888149435009117615096221195512796958446132145690873431154361959924315176219172194500695430689519902108564836957156395734841109780236877216950685343827601677216239132225807891240764372092408492932250354828655814622738191742403100112395966866201198209098980254850188482940428495752568920249607433388150925628226879604005928850890050025127382225258224285209382387685562238779373353399354745917723821770003094965815675109766499905621621885458706916320841187996396009320354896186384111062701801842955297359338791852938977672524514684677074863611102562671795208746159972094952381601586661922506570900685991270629731366614260948321847124948567320758348475440240660156966855056655546157746454954790002059576390160441738703221820029593102687554140946435833147773266005105419153174367772580005623611117426558655444739390065280784478064154283434175191684762693693379432078871551062393096830902905221856436397737356840832422275099019467666152047254614176865872167469348870042270245795923560980958110072634021690892810344794864433166730823760205352507068238563569084177918272704110102825010398333270988858810003097577393197095494084994095212975708968031978212412603931929791556544588208955135923731947769147760920441940531786933752025586890581347021153681345168769654600740802929503352797398313989784383167031371387183494126009949908621968310095441968196630618177932384874949888107762645367408429371649142289748337229026697756522917484545946979782354660894541084518798833013890223797656514536344164767433951518001551977493602972586893720777108437267892928926105431922832747773381980153902207619323592910375942804838937453410339544498103554115142933102189105789272638613108788718062980542623329997996983417593010225809409918364444044068771925772773793990538083476466416897023267679112188834403542284989545705138985582477855074249108887954802429564439750057626857687902228107145231258552362373879096688155201879784340350470796912611729225071354807658849624594565605937770819491232401909886813654999198690193139419660605567724891657091881548987341709754318763008858433193857044254090807706555857836355766007622579035801282567922418076560179896306358518543895113284174437112822615782144435839074015055781751898205477963706190988705228447940453461195682029187775471969362471689490864496587470645271912736153740039367103495470620180485369972796675762806514673421197269926667853966711059215017176801528391120145863236006178554063006543006764255504932351476137607944292726834189142739773034447322799916709901262591359922595783967376463306942334993637062594988402078228863674253541545442388605046008014265296978840342790640826962642266612048126238433769350485028801806761901933400144791495998586934756174941769668992877597252690080233459610319063282437802576095678127085957952961873242258662256363399415772597921309528776767429667306430110384317182026494252813780180063348176666131857921544763691131016176960293011731046409373846952573789237430687826618347196511542678310337262161265576522410685557010762765606313434672443245502840891414498276762536626688951889247284395465514556408607232636594978308391014313387170966812774173770711484817539857734727179887896543177186172613341283768631123324654260975405078248790014966210222559709403172761353116408439373020600264983665335874613348940514738132529343159582713292080433270761393634672612149186543052397317989816742850492920204419909132450152077201784663089477153512748298039646646526226619038366449226288390756396118052413155827200905465408562991994946609294185339941086267522995075102508985028130643222370038676023261431298784395722671307230501963578655851217755049850247030718926583310724799209610735946241733598733004537252279834710463921272732074929759239488233479198160539673075389686830447106435844663972046609136130360052146772205059532376213174689488322120864499789713610718139711332890511846087873534205264398203606034869351541608978609832570651129315667407081687991286992624661013329698828066559919239617577920418161053358499237102249845345123074068880444827251473837843784108471140668830038757041385813395294634706145462375052417569859925604357482733585619293816413560942321247710054546253890934454177852587799000432294643252385126415971274099429388393072054219090539280555876469817593884283099345137913994766325350347596428130336654780800267216505534136939177997390919292328249988119101099459540844310895687773654085633631926988038586895811461120822751359505130840816427056542406734688161627847294602804767938332816602486075958999177782332775823756926578327114148935004337871636487313843493578187923247190582586989950807926152690894720398388588334450256224114163050674107722132132141647583430661647147294773092661348936208865488385734309311977213365806425049823554530021698988369869473356327210088042486390005854308959725336415127242580816915215704205213033578193831886159712069076865002686357871196482081215302489711166679919132228446545824575640186334533921799900738373807315253989205864424525283536758603752883839048307309837281569257135453275609428145673458489750537789387050991878246210853765688461105201647992769055910122951912175106461620388173964684764573774553707493538709565252483271086323905764007589711492977566300210358324503250767968069535667875506482620358359499459240210132416727996507253012211646222985591612314796639285678088955995260391755559453536691727829246560594268862469069356162379379685651933169902113807707584951108424812475013319760578803031639300098516641917519877706413657066070835738899648092451798835093669899524352540471397111607944342968747252462670635236938078398083131176757721254647885349850941145602716935040484941299115305373246473824899386559682438735124958182071539651439375176810047110828905213182570964886997278011236261688943231711625651791772374755860799084965617498410927549222723816261605009139544534494071227500742044916398781453121926247963279462976564286779881761213715346593198152763616350782165470932169415789737353515249118115901360182569796009624792281549358725411908748620469718107750853905511986525256017180704352629712278918487179128938700860415397563454477527754809555157746728478505226921439222527560741643069403429483589099109792434115036822710559325317456721617224800285029630605963118690317933738572767197941660057856829128487895980495262081876034141666725052980471287299293822786875831246285767135213684621214514101886577200849630245583826595129708668001553827757684050087788956797552071896699523695069469033218801529626569713534727457092574984404017387342171240908668986456597338396364682919623847356676007261692742186744434376537818524508586391929155574800309096378368684363600456357868474932599284315856701793922047943270386809032027800331127928405193608654300918067619434484580728991303051183182833119341135319282928906116637222382650401629466920756073495202823232811967682258994312642408287779591517729206941890495251071123396708498940019784625592307707720145334461256234395105779328940849643098973611113136179038808383943884358345174109614943088449141929101197832639745642051346041211222501694499955673930961064297438957314981392927307806427530794373187048567742432522205775757197508309539051255849167532876168470608934860729358331341142952531058941773808587326108633377796532268679186956029577220780772554366261620526380868358258027182282181356208135517364642824715754122588036958862867979756276496019552842728959499090075153934995124368148583703308956451548693075022901636036095281503646407713833406671554121048398642197629971831810255820500681304904810013356428063482867647456082686502406153947252899533687636256702582883559583803533848138695697572852108081095963190955934509677921764496471765057258239574151442876482177375598194563183607798529912006120581848649509499672402024211108417470490975843622923566247575730040920299469010706523670239023739356745388703986883043258312297899704569588232103527071585116867264146824790600859160219798653490248693210893139111508738306254179495749176800862473589846205352740361275515107338785002727884395412860522041721970751224803174325836681449278959183643350808803673348637720764296518244144410847743607321028861954992674035188998079398349819233628612781884172052186682984511021518585176927011466193192600912333575113147891722897658604047879043322420587787208395622540189124209410985736807466485702507455835992574736402609463324079728948469201514515659567746856347581995327294118648638909205806814420013492552162937426357818989852424870813295178419488617169848489645221147457944854239860543786344336621672939489700369678335248369595783048475233166250979335959691683209934962110368605502148822211490727983454911235674850570294536755221551330263644455530054450699638187742174685268458578106432035909964429630511174763046750004325539261384306144321210111735230572086507452370401674672170576477011448100650732273225788186096832091397947434757430689265338219941609578912959589860998784410181375510392545794664718178483237696572200786956813706704118879697138891660145032831565823553356571849951937836205234520852883408115606870543695312605863140978205749703870948709822895595377272979527369591417951027107111594933289439895014965848696998016980558887782891656402392510304332602521406288979108497723713560794420168401019255495733388429382350447529340653790660294663118673051389813028120997611561596770109797052218568436986034507664817332952297038296921932238821895280630541745363831097952779455557769835816239362685741508648653375230205498735554693349157848870663848835715358561460858412542110144128131999667973116976400114760055132123982273285199176803920050275112546108708750478431089432313076809514930456139681370468296652526702694625849398730170419148373872385272644603850549341697266098318250903766594014762679237294017976232062146786748997104855411344007008934304466487110225172498279220743613305300290912780271623090704737930927109997907227017782168104330642269075536697426741636140299354842348573103971600132595446054368816182103207118898522461957240107629566779684718068820151651336925240470115243477226122370843661184161146294280729461707455573545919536935740805426302654482116462164378824578742527492223490125036347300127531331938063815532683056688106536360420065372341364397656087226600406516408054109828666275248170072617008780438013283647212685257943917796351997891260143351605858299775391391190141836409405549624862644750378234814322640034773316519922837593838801529629578675867579746793915153573191092711009814350960049325445619218705242431597416929127709124110754344638946413936791798657425477744144154224080843247870537980012831079351446032441028608636112624695901815230593213125015461467140026246499448994754398930005196224615114096179653537702818593838211472641379626428529948891347325837246891552949065788609034453835679272525318537713159269262186976874381995555115487645303768042599124356277053846942725987142174865084111933171376749999082930362012705655498142784299454333221931788471888491692241363759765025701541963101234416444412715331532953857372255420100955927905188956141334617903018375169810676004683635204031380306102644951286164899470267393362621298734455478989886436137856985348810673579679756594564918401737518897038158814448477444112739166097374328432588721672930923454494841558540845980236624869072868449286150207357954999799634901257976793900417895035587930163832616754896466208054842068806653790222998203921161277815023493770162717304160852051634004853441668215075267743380645560507814316629693111427885804051446607500272717325226344878080229890625017608323053075519449549898735042995200660506806658008883704309806068684259637212013031741495295563159388779502728672362235627404250491165286524386672015531265316928668501342792228317753572691086457062868232503822698572935274568302677069924558538316047538945819569171283208659455742170266102083141544869371463799127315857397350315955979966634348522505420792526546191695239467166193795554436550303975300947237276800398093370382013313599645798714564691473285977528167487962010741930012190257182006669559496930954973545738752778542504237369376599535765645473067369162762813452537819421344055296521851192631481402752223447289042312602672289192730136289227907579898929151778900562672147794036343125576087724406014619009036487012871558089825117961711717078289836014345127920245350382073112959398852597659332410285887052188438567915657059597448074903389427618521892856469919793456760867554169408874358480424569434268199625374792602654731748139299865106742446679364082790986354901935154943107306468020720054294593986022154525625269413265373483108115674533718477866940557461104118769096146950570240185293097743082197141385005152960968992945363432577120334941969631005804251090869436046306285438202132052300470834241347083673873719953399238749408929764576289517476832741712975884633871437415677355083611126306119431519556791736642582543479178614365281081567833967128810593337034184803947826589814772618728659843890064280199423714436033350070574698009268429495506652605151678734875045931115249722451555298662516938627891034631038680080676080607229043273924327128644747081833284985445521009382631464044577586113372058788731382951357056308133762445730248924409646070693653252375057121152015286238844193573527728128251241577003693794295329386410053244335182622642025306587357098205144549196478009687704326541546538441091447016091764886516514787220756893518512827033237245661833635300210265339110281266499122474298662373507558825610650835283037528383136622814897983169514304823529051157196939500842671530563664471463218155697739908070995644885143662839978066658022440239039191041419640198834942169625601757572739794093731737228813567562724549965198169410982936009866758789911213494728837704356568463974803366104391084944518575279251347752453377865193142868849262797989860209445776601402645754103879744726778569103811347629355452661622833869956564190788824614451273448346687492194590802841614030382792593752821819132501919171715005910018256790839255866695540248054093843724914083898897625203951304427499318785525226122006386407725710827434069739342958234494694790277297102594463141144967523396214644536099921867602344222803799934894135276562061327111374178873764492528239545137146783820465517023785162184332959199119734967860408046571758153525390058771441715006990620951589165337765245663571109889089408331771130286487797270670274831547610359175014021110022862180092527600314277354395086229163301633142178696501966221845751923534052915740159750829787988974308524639117671365101515845161799311767460027284612932185520874955994449986808396381958717566359175183862983171845921045922859733636144113056981253795176045000013760816931171763554602702542064901746603386884372630727405479559319952832410911233875485734324014884614463673594089653310025647020940966431960358935091616275542065001511788738929029201641133240227212338892177526647799642032984924826317448019734036487498101197458412656569487128138615636659473001955668401065791225637162562522346994237389433702071921156398700569705419983951768079852985690437592200697265438522849227284509201729463420283983233644802878852427037553255768414029115609189892704996493181668615004477214445813301471896505939666976620723171045801279548698199388138391582592934533108165936178522775512239934590937404376317317902113028066683892263491112445922524363137495149608342901497449662602637670010067993618052415999589876963937397283134478353335614248541481206826737852526319119353998402290505192136602502469461137957111727316610752850486468717143116671201763447575522122484890757340512647405285879619093056704892695495296625094093405684182490072817622396175049960292602224363983418350898028120665502235943258080682388257906520437024026035638376429162014028043199367546449468440286516832942613350968816074058515898246842138113670310855592104370977920190007322300122763015137292614140942765433578074086204102263258311710465577206067390805312928336818366656854786729250602187850251972291967846111815326119469408457348426820631509617070761134702892985957471341717888654555709126123434451242191889449114346436763363977706008037302932011687309926388907047275068749043472615504037276906297346125105705062573314566415658639881161127176325751132718822983872184897055193246802574213515553494125371167217428824773344854747715322103812579835918848150166536591953966188150916814989706707399858427712476017324984977807408532196053278702978557674206984162471506878593919226264996270828196790502387340496369522281294418148420141774079839886869573684435476996723826809474063455614692182086180634842862618441714182557683137399187303150880533755882343979863488228896353422292263327209612068991394505945333296190892608139002719409506074438382122882651799964518214797628201887774311473683229042322692753924353884081415500178633319619096687219574825339830594089579669904086750624035943997248469168504967644085970331936614082520266838428444265893383137303719847637789268576388767635217458034623566842905314704233003977135743793472056094546384365523476645848319931341804147629557140647172296844700643814360310459088407334049559209346517184750616761192943545517330788397621192518108973928282752549869436966373790239643581050378685767247874007733668744983805742283586459833162457555449273671169897042605545118788695382541375975861006622930695418856056972009009678716509465281455964504194338112233450301173487112507796684818727048728246023138084201834510829092431283445016567040738998622635167921101063030681689049643251148268495344247298495511959019076655704468486706673613332796943313150963321788425238518438470372498262790760294098980101856877009175927133292096675068072001880623188468330997312502100600178532656524606004435595082497224680625161118692842439104818501307758605556226465830912233949372977797220189839150412457982575219606210749389274743342490050226659612797217735483770454779171557522327070806526729113117647045588179251573623285224525405011100544718978220908508819671625867964474977946624968685779224975161252056073457657854197737051616300497104431918264262195629468017066575394691212697839036626673573425507540442324870743106429406085781661728374029433439692394788264024538169970274773735621256121406724569625177325385035877805001726402922926686130923834796394634764770794679449927597298054814173533978997027151231763960587334956998509059379021051537755284624416335373361663612604920034049596018814802104459723136900227836832507952408983924948140324555155313995900724037150321931199534499869867231851936418436355605564322538527216367038426573304329827610590983427677343181221966364856785100827042697838171211213502459463735637361050085141577966298080083681111230128721706152058649418444780606442685571568293438886791323620149214364795330097159079345003823554918715572342709172193877134843513453024996722529345255382330503909917963189309156467403657328868656052754403524394310631554231946525605850957104127135727108514313221952209628817009566382601467917077743738326443553726521500305874081837307844619729641973054556875421990785850248400077202595230472885433650942297653890897598283703072934306967772898196038782394169031111892325774132117450171592471092412680486663334924951615442216863820445154334082071024892047061441554806845064334137811578976841474317209525705140138614951935044251455940076593860777806474518918617180062732659348869332818397648088098393276945584970611857593258215602806061959736106955719264476894850512271509395325167490550295223648969955301838372073765272074432931587869900565545100363805268161343442598197767054796815517828056799219207294050217659199909874066826887784297499038948247411049600155263228070496527955328901818665640900058298295698037792876772931112937915378721328755707987583581554647305123645271126590293476658223198369019040397750651400794441107574394033521519726907424803721248572315799620557268656795343960492648582230049215831783766937051155166521047181770267503013030629465665443453841826107179681928978844344799578913512140131736736229570430617662128368572870641127136302041829161292792638230928436701016715509449586052535471346834504550900361133986661492729963569437369320609398850050461675162132847834821437630822145876280011567083913611384795403223897184437319938403239770104122523118721010830647334990904218391967499370783172946696516731927282829082856246061597122028231817651081510696858983745040828228589117650809151232805405633359437333908264502622319420175662033094308174682378699377991540502278648879378615456418692455681146516373571019823567679184908466558575600187103068753348755328378407003592707418717980717949447737535673421807195906249457428343338504128899915951731940342866336254126421575005563593032780909813478946892191846378958461130843279734722466523424112566994338378347960280769722966255568183411833171317767050574074998721898382860783017412038948335976266619668304192124576901812327832233178745284649064081032485464287172797435902367040460144116787777232128884853301028766639088546519701033402595314243627274901818012838277073039269619326811687093617469183480380888788295191557941664374034430169337698342951626537489470547338631759102567986902185438623138898998640378191866078803279648843343365390202135697530314564393078838379955497001937595360726887581901731778783972518413467170558974778778728281538553689537107735798662314301252813928507461554133271412961944910666380959483365306925801333276255262409528420194366587426691804538441845147046320528766284369035866221447403842621658182637179090295119235230745179074078123784394351157226630187097991061491366762363445175703739280941866218261645897206513784965908758242789579668692826826570703661958788067388542671212049217545318804436991366004283068926928385855564317472391577528053060880444422162326511540190475511386104806889301657640231191994716797143939758290928992561237878673598802371935171879456224173665157477218133091247979409696165032994102832819312462148457995470715013916557201606729090316765741801096891157829827800373958002813599873650809306763046426662786285395427192084721191459478827391392970162320199435469261125121786413914584397128559403070100219901394760401566872158023153893569648535269268086787946694449801979182347536976493797586330836592900464011429052393046128944775043988382070184231503803171368507360751516625716303127276154502131267910068740103472419589840096493539147013800692081697495336373674177623324120223650708603279457929726967826766688653629734201273637017905458795079110407186367669746694747453463638604066812538780936563914650997503837092053884257926849742743872006558233700879698789943648729220395028503017428336030735965794872413609388653921616220744302657348829927943809369150793968081764573911960184436651839740168909034192799142337083197527433345728669043916799746905681455269047192216765609495630085692946900984738379413616609005653565515588967180159789224693915508444395879939455587239513284565035845409134760957784798428766534746942710291107284661729789154550376318936554651065939980691837673041771873501302129568830234574560003762503820184870832034633570644361124583218060177201840562217475649150453867230418926181054058955520846144079294849017942118675883580675307586253719784830171072772765781607349610430274316683110992534560879271850640539665266288177156354285923315951174900922347395768974565310759594354806933223869328700701001379335742385762606874511084104181221005930373143380546215273824290194516883334268970528177554944506660803557773156773337710782223735601464864605282147698813254589222362058661887258468594170268667087714609813567775770667684530804635193026745263508624972420680844939099410662327002681668311832721865552406100139618474151442521074390777796413038514024227129458213333767870283552413800163858443098345805486819675018486526873983804700641418929734966378622588492269230940702334340862416299394337921311062956775281317758172599840300008918854042391438594886002839517451061259311491327683733956681051092795555967976590884068732692345640402648869980957222715885018584214344461997210814208316163235684417383486771535230029411685711471819680824854611893785330108856261654910858087004974417171685009503533291235581349133962820374175230178125413535748044390063860831425541570393430672051688713006983889189465349312010700455479953760784565460389019782373180429348305593398732058923385505657607782478048390867481924783314087481733228816097546768428410204598020233503879985123244650031264714422771823849857108821977738810237644770479019965597222530554361156109193921768251726928120750709555644970255439973622385069921646625392176502234125197925296715097375881576689466045018581285411463994496886962841395388145743382626965539483405466288883769931638845462750502044594311522839132080767271994045766534351102710609408951232457969606905782280761083327611764317863525796269221686872634234682197827804665068598190249149549900174449238681499600980865466176011757775499530689081550583689001986813031880622792894570257202267303160178204190843956906553526819037248993986998236985283276830003862526396433563118412698094144853858362947218095776867217497674097296398174529773193492748748185034967698527653206672135265031427590366346067201874625553322863700605230973835238786097856368013753777460366839806793974129131359043858842404654290006051045995131703803052959650598452679706303355106473177229487916188272222336566135074094880408562317283643477860826237288707668635359977977676365404720608483732712957933980668410877812366978939632204371261099255441469288702939822697472101052326505023634355617162469055379693791125397196645904189699604102233363733725384410431292233973095667647447485353786812884747547846795151540485825608335048677167035597637606826301624934701196238563970897330331697715189085339915915831322216965447321410475099326173736880670961037945957611557724256090454789246861455530759816928631191959029855790040231807365968507725573387646333984177351101174755553731120071716525536942853456575886086308505326005564922867325081585307197979035062266773627827781641305243700509484952289660488820390367990037244645548406250701871019321558698801563594284321104319743777844926743021497689395881376639130026623323905161879968000018851582557778735201309589316409500272409562522163751712176446825189815015253369101350569168238374247444721973591387469246437303184401584330320620990948373817693751861985734372042652453064378935716466763436562428215840835547282563909544935467568153349482606202098114008009264786622133490622144175831067440050132210714238086424752842215942085356519472614417904864625999993126020577036388154977040057506019597465936184441132559591326642199953481219296166501676928013874815071155337392238114568293820256845720451377428119528256975402145380345033284792534796026925707087251401002724474458708970457372243724771875443210136676523971709127276618084164937041155847277716781726188997599376569604450572608876957022137466323899432883402053668081706773207559449531999629782590756104892327454431489099481439165035958276324633916900207561226941309551651537712547200530417292238547657315645115846499821984367636287571444408921531522361813316678487615832082925390904701573620831015837911004771235147244394643264139845254373535425592414318589995657334276670690162316192379618178002999259200338902122673780214118221279619899117320959592836418794713178781036585614270703226192219795842233171159305294199570601257064905464686691673884353808235665987335534846980276171295821240574708743208177946480503785889805072959623842172250542579540089091694172421064473552324688945978282934109877782279743644205667101307455409326646397315732898854734634920301532407650370573083293117954316383766851025956302705096217112842783133192734920698188940514631987913297659798097003303877374221625486973460649908493999066448705465639942120896780032937339505713252566157728856247690617419855249975115542317373197220678549851872031011962773982243695551877148457222481641947336353709444794158316508385258663147728789088467011047166170602638918136305127400231764191763613424010002288097917051355585528973581958715452411808943185460414416058138020336383314079477858041700973855362232268248360417690182781906606762203840039559348700443770137057143862780038624913964821554466745115190141332137212600651864236224763251039231667543548739929235368550844598715875932328345477249306338044128433542822452485963448351250585989454695395746250019517134151819146144015724185380053866554324346525991445760421882727880463939703661295931919322851570352004386202037215455165250087992788866901650529698464474532772522793597184438968924193757783815283678961784376161486230131862369089291997272635558859054520714327433225556590028686263226086454958473227943554694458545097724872258103311588156312316034436747040084770722923597861643244499943220571088030712044244141523473213963859961153260554871566197955852765646933937648174765280260540111584564113090463570856579689645272937054813913197720924033092343606855485179109507264728252129195133586757490498298128176161731398948571853738451220125997389235025926530334201719851941576131540541089885130496852834701758034635760426248129632163239906057921697398527933310305109303033234317372937304153438925835007863226992916963662938266612793531307654474776041660748731930721636790868894134448673236690225165557920203023410022420034228480330232924588383507341658260107687949732889824041071618450313951267665500189225435531738857860114084934029270443868413216824813926127346548747994216161039869830201286838635672985154529111311573568179921471665231250481940417944135439763197020814859902256338215905448648141534271877102642199941570374377096312751969643812023935482155567598485808443351658073423110751114843994340441044952888150428111117866570309503831833208347195816454388374323617758396068139428608472094151653215449160400556686297419559063157277401564503124750922344350340789206580313003354185896342411127018248852661959889887022909189256411023612994188674364570288944849691044955101673973678168272720907928101680012461559327998997182245854915655566312971190507768651180618900966452964955013792512694480323334925053915788250290381497348115592473622214561601632896306820611464553629964602676658500875620686372646354786432774583661045661812375902256610044916502668307981254943386817130779005828923564724364234927133324999750329565781529913953411704666875828745009422356347145358255453026594666768507811052220798088020337227132603849067803274309011113105111593771546710748620311114128208065040152735768855126354561204265012377993721335562984656168316923298794913794125668809898796171765414735622163424424300953439474791200452716539212115043159918495042260913309686565406586442267400203548863142124241492791168503140917686942644875876287791445354274167581026844392216011298315003952269390000443911927751486397591943951778608737513840590276769101129803084201474442954169488129308054560229552083008055631027403117287877102234264524347134347119763165621306269028155130823725227093381956321375973174001163142550214877655775949490578014620771319220603598092250213669742354277002659066079218413187947706105598605355003957517552556033283602610018852145770150556465553086529202089376846091255316019363322573825413316141592267013948297484041406531057410215054218818982926890238584225510329739853142374043058290590809415281328424493962039575360098954923893646868456968798983853656034333968049853004976170410463170321488945247802416545718514118355876425296115695464517286029193663237472102921406439351196824352059701729126508916116022396966136789926304217839617751791157350856360811909113041420087250840252321291783759484848118841017440682132875458983282398327123729750215705435049178843455887216463779607770945772739131746357516178237420092267585940912028607013518182804059210548476848108039627633399225783189815514926590706013653980243306236027419666566085022135019828172114765352971187729222794162282420827998606060552158872175324236899023956900915086455531614261315622059588817290931615406205299284607347316040098115571163037659113245710101940408395417595949695579190589555364964953685461590011622705466320891690838257651254254885045709794696718162451787595469432009183420987641904220748261260355855479662229091776949038220233105126601134060109016299145508535687645809866378401624505825787906925589130187108082928407652757602240942759779750973923420449623450351928545831045074361185246920318069225177277354716048599116050464817902053725056568505409944107440360567105052286331232138093295697366960408538331114224179230803332342093894697897707236413824836297837141637320994371999846820272875045972003436247865942900906912017179065432918224676477176576683394647216864107160730626930387301415291097785249396661601762749923342386623973419978986052400607451437993070259305737512422237027593541998113511510278988219668766757918740751236634459770189686980327746178104638925655394139680649137240092035760870296469394669193923390435348056899375603006232370065118353790895796286574555048090255990116640149748851772812465448194941323177975767894844181495929738647244460669487082156129500127677479814691713125064712265651684380839350169251787936813576770181569781965061721320137641040415208077427900360104033288009100560645336561126116770922705803288650318028169025309887110254682037277883549224071393531007978500111020615092914577427901796798578732699301752080089025819162489842081714447119783429880885837015920223490063576169417275749116586777628873733957667344476049445168507678407252173712794137306048387152778911643032693569617015095679793162805722772630895691267760943197179690774131348876827553183593335576896369975745223888032458595762705527232833986988889921124939090515006727555882655267511178563580751036715306116368564298911008193637262978492830967602140297951116398726939991654513173276550851802243028367300021686680851059005110710226759864346261350223466320536078787864402053258538316354449517099450199508487352481143121130589003108077475928180572110834381806220038037598374037266191712344335908249043386078451380779877189315254032572326850148597228067107248037062535705743931215353777296319176812137257260391664186972330430828776565418368393974405190249886912404383503771770294228613301900661178718944020560715349663541977279693192755690600428832787045429473533706863060095781809386954516096311772245451107039829343129140257086812220438120775923781435875773234493074799598109441381647752178486363842345406491725129661333223106734116014677316300618685987951683059757538701168874422465363722542308747388393772358883859038888707043325422206190296718232109104513523748384138250226732171109426682568684198704854517267366393515477254008125461127647996274906174594112860150272121563106926570156335850396531990817327817651546242372400656846368341422862055503971243781455438504480971151475217695810893693303683211679086918784385363036513364435964058468360172049909621093711964712208350327526582435676052657845049122713850871943766796535859792070148973904115722346907869940904120790946600723972537348038008607303626646778960013165686121226469515600797204434016139287895989132277035859576374893601723357593408179214371856099576592726972148842736356349502370314453744184341584310466195446383869299957406729033034775913947220776824868311582595596897373372981534756400139168537225182143755233194845890911666957948355991679892336390382799027562025828292258127808169744325295431861346888729346121093349501183666523812480564065236602665134620773772352775134608873577576755479790277633063207879724375222648533290662819444903269704966465425665377197582296168415179151362571343351392430055815487832286787305996843942487497704374890536737287277523499244956049156463271230761975897244334238683401048351018785745620262970777995131921109304575060767103399316627681984194843535696973017968305385062506214018917377358090160598101026642454155572694210777667480864722834705110461672250681255083327161828160790827022605797825588687473328761779933854400728416276462126351781819196503150823943013056396762869319761219546022844009234032510828170419650544330519228628089986650078093119402623396193425205789037073232190290740218210972678286773812587836270122060788571387535491357298551738528733213304627488749323720619075523387815868024805542108675582599201059742325404475830937624327135415478387110441152701257693731136135573850390377520676408555129043943170221215933627738751631769135415843281968957740438915772270914617988099993966405271375793957667414889177421322873774615836540440645014249685100978181324501708301757747412547596613062908620270929413863520370618610480910660209390603450713563855745814278123430602146611254480576794062566135092704773694446996766384641760525797986981267362336274777053187746862949697122569801221053728370164682859723960237882559671693254896156433166542568111858654011457583484304801816492118971386997404027516732369185343527695646288636776057304294842878852965164697561391916404797629327495946017920828544207721267887129124214230348872833310440847789646531549819483063983434668464018715601136192570176451106562046484941256689188431980378692809170446246002812694391409913524943016362000264844202462859754440462343386801394492811660913808918171760057403031938159997525988360622419872804192367678414846965439392321821999196108939293626718640535623209642302929821960397796923482595997209327964641366119023061552179723749135277719997643754466742927306709860316626044262698173259874436053204104769240647180010322484789533805739666322013696675447552113111821385037538020466793121700741638253991565946523951276117554029421302413037740755916825881082605560446980345884175039608206685126098338063845555263217561832874438138556394951437433916087664260889870511041804299000145093517451440982978531936759590662738591215384789514495237667037081662117865435994841139617029891452445375359472256778096563795480828879044943408006342166314105816598654918339497824909064892646171522355095753675930984250121959978148130789026117988828608842311576756022338611102016944439941903319028822938309950520271047312329905899324872927611680101247002448507098384108763799573519763692084969879063175695313722069554862908539357042304322323893731740312932227442118250571412671236071276829986812402233775911471322835312762184371629084319676229347346028779985722868478687080695625948065162539783693938459668422215636420548728222209613456619269768285524301288518226375706373214394936026638234056012143569292138465059752543120342609239303370417545137420279330020099039812337318374614534257881709406103520515827763701291074951215688633148615214664069349952821055859418509362568501061904739148067215968339268771513598284085467259374312580885425606545684235522542959560101581676757938024335377098905075765151751443777058185764219248153313194647495572317165026212355879864659332970107917521164086111882491426702807895360500450080994313088990523159496339483726766326048234209739370764663523200483785723539070304258322232175938959700439842027638324368346295746075550352610701997820548326065049460859292094515458913459910967107605992683066712855151983476360014763436494585315796952831673647855285787367586247762794653492972534240987215239316963486523560685527901325316966887675086664375860746462326436128806902847029866031523777130836904896305217251822155541890678304477668117684119241786000015514037477531018359536014153638851797413004610448429380109407841099950692253681655609614349193179422015955606298298042483566098107434900544500105291481689874748590317088051842603209845080692883447473073037726935450273850125575074527355294752899767498163803394449405496797059303053222117322029300569470235521648439121810816058179858837164525954468562511629440419213711754265479705007749345925403008346507919903215952108698039609496522928035562112122898694609122320790247244575537276805109653398524572316801596126013400131769475056711211475668009761436939961359004133577861485269824265143322866490405560207686925601775450350497676689821050776468187657459704600900921596737041125934267916165219375480920044922391173788096873237733933568133474438583321501702718480658907061321176608868479645395346979885473869758834487658849157141818733358205910776137794094099147499584801816876181371081091494020802022502086092686797126940927096991563747079522798241352594861634352271426952617479614816202983282559387352794936505183877072708507181287169315845906308940691091487273490568616876637782742680780515282703641903511427311370021427455728663024088948645820638835680641175535316720315083552524867666606457685209937246994297177188834808023978872949734718476773532838330729398210070244770043175759588807716967284177201350210540783335553245335445697032756825610582971375268247274171847123897103833654526902373172112767952963830283918914032176021033737904289299588291962313180085526001342521698500204783166276961968883535232907693673558959943772166331473770917209525432447608372594835249790880945180387966057141599370646997438401753695518371601515520423570631104170227120118311349236505907373674099639554063585382747811174142793704136012121549184979238775646985199001753024479934969600693194865097807129196651241225601425224418236895696990308351676001375213930606222029857614775876640510810152581084059219877872286498283799679219954518393558494792287272335040067895784958780006799863159266114627269661388806356555716154735368135935879100760925376782208707808072951761286971802952820761837490364999263348132026945841451411881409247792199294412808149232504332918157557298464103950492456526800653063860459860782416631127965128714705136436266308424784979928537997134692086599647062666760699914511086822088164373411324435314458015114672442066994369973152074506887697620500069327225882549678623575620791147116932043682897546363011395185916141652794232418899334838721058105051865013699336026413926327436248375369197653291310265642852090219671961717241085144166922905917804042578052383994157083427610264156937145546092521122383407999448041758588518576535082501820425575818720414655820214187613383867877353302556840392277041895047775656924618408553332397910786862545680250540919136299329219992811117371762912138212649196691803778678409358208208357911231628034477444727149597186158306164482812719168829291514962877477498587476843900966785079442679166144443557610609244030867462652608693815752499467364196090358245275868896363095520246432191617995091959894111769094378831699223767586496829127485879100876986630348139106582287146904613511954328938411221340584757331122654222101426972169907406187415413641717733919983780538974374401916809862016740840918382965334289008785724557712556722699382937124090817997716865465144342140889827016678740361796108357303463952076574357518077234641999771558427965282325845367094205423591323282091641541991068668241104284716965039460059247378020041738815972500231190432768016535355453223879211384567388456622255507352609142990410882167711819193536836190082451780420337857123189254673237209527332398570440252620407569410472562324317371747045333769427103334020180988074344172163812589743361513503663064951829503887215251405618326771195396777388295609039056809999175073373366606731452970460873953836986813358342014868469389099997730544975360224593387436986841918093850931478655017830319343239919591081107399861525194396655815563429235086307612899437588193119695302831676008996464141834960362669956199978801334633507374186466887291495621964083930893383841679193202698578217571663745556724282987534818784497598351373551149146910846680739769764778981004617095418214490594616065880565742744990037329066269061655184535316829252352903710670447238713358911365163750837326828339983598860871659425564606003730501099700208022126428810191200910817434943945021128974999151445769963871453651016176233073154393671918541742677152905264232985961278747528153093870858230173348715119535838085776290350169693317108946772337993751690013590163116030144036866334473856732301010274001806735093830627376703863531721384193395198365782886383912537381009925715205567414443517970627530353601604765993606098138380578011950808719311939215804952542932830101309864566367496007841170294346813275590146584288713333153640128868693407701668725044750978282897836061066289025130349969590368599297491688790093326923378638608013180091517608683181038411034818792771192890928210144709694339752629989667792820003285953631155892459401381711776114021502582023441252941106529059381894286393915264552082090243415743960990758230517771870265100635206248604409764461515075629708347361765417653041268687284538514782115972203238572272293880302386944025519923367742911679601305348211529260051462515363086032971194346472215238342050643320169622877913629097676851223347328596090590632023623684426870586431117089417202012053236426754473864040915219454766205748277380130190920383462920487567540783979899066198053754092374497953477162252107092256845738383832934366405290023638444504537010063680731129861045954558496375561694407297087335334217143544918579811696922669351087286066554532107603930918348279288808274171924569629339146398874105235655125118787846891220978972770033097733553363003735807002681768771481532307945550417723507194500440677806648418852974594161805794430213954946027603977835784464181968447270995213718701523644145152556537296626753589583413823201814816536710587549793823507180447403691153269687231258104024728210220212458606144632230824244557062078032485931934888052093736423575567075394764226260810203607233187741043966689484862415101657556392249213770768742970563355217968973939230290571886191320286597082088894577571983750714750574443615618662799633756230237752882272370449341897688811842722364811233913320790764328169218544512837412833786476718890051611792720645947858427081850182950823617173234566240006375202807793839145119214600049410161179109529054431324417425146801548143281931156569981297554294215286570760012116410610697693459192511859446276921745926689366734953515519249708873452922399709719920328981253136219730770617680032905433019436887839786891805887665064272507991919681242568037720254555129292241588535777857630096191406249947080593008543751820116708231072009502439667685109694739479190148973787074978036865896610565604982465395895159962674249591722660441985385491777473389701539553655965306990656635926713269860833538752010868892397909413730777518574302232442186155176168925220060486725193269606907693667486158825153443616204258054670566029969311031300176838819077407646970648147548249601593834951967307222543314890365845691994688109167833659173730102847085340244102107090427283856034115138660580089846198201601878921276538094237610246894054809395758390323155045782205777193189205203571634485874489619747986725050201376063419333978722619658832966814176249678778955514642114400265167977654250171457296959981174336902252894072288367525385438493446692070018060116867507751801867917538922370409327383900247533458519395642097560637339289563218470964270683123880828763527709656161000243083554631109073241499424295590307799825514798803783310067070448899215805708816651048895312542675891928247938447392639916044342948289967377530085846780272000103767574069164043019393220867695529835883349784835118844297841207430137999057970465425969631928865332500014169974835035258877891939734470646832817406411443825859690986273845648918146600680588646820624961601440653318525112465131540552983889901359921042121241351222633313317221984527484102734328177742156505970000530937097390150459875195833672304415835564730984167034326693963767430593479949202681235620203467473127626081286092374162408996522583093738638933898742808639807348008653009466374916045473947792756443340404346909007083385569250919135198065545273711352550676251618556591715511633394418372979179895897602637613425989819245017180604817505373001276198246742865587016317758201676486357210943020819359422332357617835902709377843629857653014724139878473841950216569952064286700089472321032495269110973635211725491390552516750950051170589927837498920238410971157581288155529923281540668183705383505224117163034051631782168636299873466778822141397792008348899606210435401918558762112348256701419074424564656944685669066210632930442129309298467765709976469377777422241061133345499632862096656298167407854086938110638776196771065361428499606374496762846576813107684278109164517793994207056659517984648097270299162100952448603116841685130807914372986335085674901516023605094066195702330698657541417908194741323769502735956131426106230869407902104132446055710811868428621198977737537459280903660552891118952213478161903976278615950893477165305909132903639505568909368869886596530971749433656766021539303894163969235506330039960885459244876167780162063017493694537971707685518145578010032084548047873397872727833460660349937083526455562277360247799523093570235775536317309845986203829881650029536955256864369634542056591314135355671628671488696402929466169781019958820595457294527232960829633670241809624351858607573122856431785130186642519993408047923189967846180612205744937733752656473495533867998493786185608654795198429881681261523223863413033389915040182144242719690680587076249885342611145588736719169240440963558179539331489719353644718737208242361325976694074184677594365054474978432106832444453963968127107731964812981532546533040164648412695869144888177250246657129517017609296107874417443353138599903031933867251503672629679646622557788468959832114520910713314928758644092018947950929887836614609205083313388957002659483342652468896272207125990419409589039278374952740467332872731878731766464890771602946070750663173621661355630103159642702510263851627918813723848958250729945228258257366711267590111222406051756395129348128302392479915427573252915943163142407455923595383646392804848065672783120809194012448854600537980681812286267462674195038701225894707627693274877532673436585721811846080950576620478351191041720664699796518912722876417520797566836279922523728699305264770091934796754430669477057558645354723469580308250603165145852948553482852673535990032480140186015298290665156981224413780592495485358349700037667303791609966341057377295786874887584236421016379888503024580425236831255998059656063433212669558753437826778233585670480167641177143547112634210497190042691443077823330570284546533136460977049595073282494132325822214061151069523455496454086761291524041135249764264314966233502207818579925191060308907080724390340275427049409647784196977790138903519539345700151049682940676820204075352997707383959797781191736735672830876843490077061552263626303496409568464285989351620869306771075666832336605391132585887815548427763284254188126520528635764606990263229072822457712796841936500039678887541062333749226484070908956752332554006974784242899954581820177142388050456948217197822179115218333092212198858506853055847261382417016764541391426126207113477592612265215135587898116773158517795942297312729310367509739861498683958353873834821933781758077103218154261769466326259314252497846302193591543058277438773709380042319525644935690808979615571808392823317436328382283027116152944332329387869830970878750480623370992370839840879107796343047555248280614676961553017012157047670698701090180610722923727271855161691622290529532515401962654919668172024106633563875405945274848237667498159097027630207583364644999420358255993456561979140050935621495859340110660012466016982853908372120554918500738241631133425806574981479922806893171464710125396004867071167496053036057171544891621515021168538315891890484094462097806988910846203169707320464694773760758060455986137783082987230108686616214710251511510216990726667686122981063161071362889150820639570203112157265583896778654316017855314757214584202348169465787802356400732566026749873418290096729315432171201859703315211193498826823630841324655831218957929932050269784174283925821535276291467099568230008579811330437690627377579063356276637200132935691591325463351702381774240534254210790820372754784681871475637122893085610833275975352795670152148310626536508684507829569170156591152628634250828168033661557777500908653868566187514318775634094663559876092542737700072784753923075065601679715646758963110331564791884986883245106404550268998622728569157453468119384262338666765951760808360687738559874078612581286975147312336107679184551828649467048920526760078169576735177857953181146276608641941114755791806884119122311675786944560311749061790010125426387244137733048517271171508681573443093823424978433260001559459884691697923766573751048118420529791085735553058467026155665229948351240958289783691963153257791872784464040593094650887734277963413925693761689815681096437125394623428249757118806978615484767927358296175641279192930419371325461439295826581885525625187717153678334363518739558854198286034440716691903384678595449249593615795730567879556451935882485892697061302272511862183552837199494542318530643076992771729422140584244655393401173018421342491910165160942048049150487388366963577929466258550884414605437490737421102879756017387357053743178334505871744358616148107600586565266971309952272311868200147420952542556132658090130901655839816696879979175452648635256450062166111204017410948194748517268501876965131540495122953522454658935483865734690540979244970813642044044571815615683748095691300510774802201857026506077565202927870826173755727028125645830657685833953069083738751112755645888139079879276126168696266401042192118615696617830635522894533921409338169555739303234891360044519696358945866918734857282017926144673377160911609742676155908841036051512480186971901337527147411637895521005309338999181947560164945656135880528519676459027830801216208144754967918818174271010055663795288748461729435584151853072487305825011706651092687900203202341406691056411225465668995855279341951538821058168866438550138168351609041555864648075784793941658095456655174629598737437104889854197057807575364505934206054348386098834524286855819686873909490438680131644356178773223714547350742480702319747485600804528871907364814492698502735495282262824920802192457085722017603326222993493370984203758249221258174068312914314560555712552402915572523611593061367752037045129026241755187374075930236823678292995429794217944235330100343636087305972539893453138957109864306452355055873041811440623405238381406207464440583827967803475268682088747235219221351560568036267813357625988134664823900895255332890135395746067341623097731900643119460362993498040994213911617697235466178037910077088948087136770332687470378282042237593659022975858883941385539809709155416604350179138364607652527071979993808689463360476295115708336468062071855963290722208146761002675138274343444430595441029335916053585823826433985592542651531593319266458869096024150828526974413270644666429114428247669819904738565033373189755218930613891347546244839705892884323289639530036869854404485701800148711150311631648759540422213749292344971873259011715724087287395742353651318263721208363353116031800044832292467719643081129876472508080267170661591699432358491149755478654757271935053192261371332948461210520763752214757409382539214476517960548022193388220124808729439783117879942414097733287348410012010615546124280886578110573839748584946741048575213956255430484966152130887958112087169992225033015686456179189074471836707221015480072902019844076202517318945830218792825877949707526085784444776808405417111485856526581819126172189519935111065594357702202496869910893591582716024412197793852630259770488215593840022318754374041695504183380140239564776245930238635242413009406736743187751198443454301837733748906753389706088209488580599580286415456246306787962119941920941451710936916465482717501311248492690457438363815643138968938976096885007624881863028293872834054237638569397569933108156403464414156707661883007874911279158645417579921392216139015994667748663979714420151451728803912658195871224821495645234359607801679997151320684553880612940114621290030271909130074191239092778577386486003843134291652047497052603410619841871309024470182196447034749944801887830206183471772063678936884380401850887286652796280092189424581422233638855563347923628196928659632884521213910288632533357189626519962140253797806978300538874054917897240854394760086490111037204879269355902599280188664111396369104764178571793839611359888630650491192830217249522744607988178638532324973355708427728100693152112838761526285563318104675615089227320603822502252671027112894017286614890450218178766388685253558284369850371068383033918657115853133013827010173495854505991772503984132172989956902899528201669077487868292327280031844433714669725794513522431606819586822334526044632342669934048867763175069837995756615262323517716861050720309739179272040712523465398435119869653267063961726702772546623991873164183321193888815852852108498377298015111241051143748832310347879840187686277337718834779338472630914008706426724247845517380336756521755197294964953388156372016536834458973771919065003825932385168799503255664173900660772580950064912506990969144620605363217756062201549374363714468120287741230790827234633758442486784754673744506846487821413957442001232572858266867433007561959642189854119199766525926222745550191217742547787659462431362285433523937343086509140006133818206283002269315840361301862972705220684363339861670319517714524131787327566006457854072300543344888798725705678147903080254998214824789388271544703881543325048914005824693843173292829170616054547328286772022015658768838478895108016175390481807487536856390494797291537664298569718571003648229877555790428211897069482435996208667083124741350238326710503260647919439622854350363018262193150654109775395434868595059686276582528584806648343687896211821358992525403290331964293077422364879330046255242542474852624411984952484019886252514388758450743483593752671647360012970052553839585502329708937813244383820138540294733932566994613216383007440774346630826078954805273487507359745068832262775386201872647453502743758539863420584226844422254208968335990384460091495856088935997874027985200172626737941122535278970762294556959166709201603303150059272989663059435897652602551160471114913503993397376963407532452486898239671989015271591912545782087542989186507317790121206580534661111350556637873282559598445060657161169270506054311573228963670254383717824427260890008965817142059107331371257878413311270816342906514966847633289737058142620734585607742620270274544129295407027202285027336382584109958467707403014755474244868586278430200139559744829649105841938800663255648729095754873238042856130470142203493044622734657496203188865085596710264836234386637529972136773610692025612991410690380543055757143512840377790050413749010587010957628461653180498794216547097744537156518190084749504955215676179693244676258167143260809321481593341855425487475014240883354199337348559648704054492107906607077404396358146733488031249863495059235582538952096985490903360345409015130183678126578314682280784028266932115768260070551329332810063772278588655672792576130354218196499358156886152942548871776975917354517619116751403513631052292233099852767798232946228985564679091839506670855798091556708555258745628408629842064503188285575731446488310028039309493420397766201517128741529651565748814932971396744490894538007197232009852844284351983734471683325936031933671846066728272587866719757431537454184129223672664334203064739579353660111791707510395432506292046382192396258871977117226173796061636754697391722404497032780001880368034301860482030951425550710630638981022528990550595775476246064643883287249696367442716889691525991879620394732171503298672793930532853715707821218883675371231773597154027887283511272076957911720435892273472112696083318087068996423992781775437181625223541147355648935129508784605170883669522788195828442609263032048624444538665425402714604706556919051021230923464589157220570912134870955313440438282106734165344671581868759795060640799013574529012660887015137864370912557333149619937307691031478555977580670808188996695805181587975850019359770602091719895449296525743104348928592031250795015761733149769619450146063102237562530358171620643835496243334927679004762265477563568244954597293971430552262040890185226805311704929438020481197365075760637133165953168109607234365935919157501949902862303770603223360410713312979000590038293240014808499761725798513818272088148272734631142826237924965585367700429926626759570822197095909076318844236880644899757426157596593931816469677143813417293842620481614986493823472487795889820954790753214537238963225939215195896843763716829174680312146811097312854497570686020807387825145704471075167637781272876185296109801782905503473838097303628183202998875090146273875244072843645426456020386508015403793814286900479868659336555778826209007637722717100466297862053178749780665358742635195121255470100463020587024438937245143484668486738635068750078747723457334932189471908386551554430389749971150760564697597262066455014105252299606592850028418818040248846764076825379020981570640101311705921910376219509075545709684261537820128643656903446489302131604565035314777138211205658848458506111492450870655325121826372603536657691989537974370210412553973502033081983062067729498584426912584712177072464458057115030341949279812044033280883879396485467010903435979102118737410033169198565232902871419981552893804267640339072196767118590703242882555300946551895325295294683807600144952020605933989894559096008848848869570143843360305330124220577439934329374639931143621380872792103639213617441334610105609532711157617203768284142974084776669271341039979050002034501469019535673183612297406892141639613135310311011831895657251729879792538620804649850765814877594099214987511750773431265572030923230115371629586131055665018305012511169679759764184643882456112741799160739084058271216730812266359459084887175971823697145885551065455075451506245022730705049577722559214387604876459066730814651261454795388146460759845600185943587212135668843812467121050174667706672210239518731863564878773673298634527121055083505172114507962165952983499132700654396034863819947655538797357074576471276353589879410334990681322300919914746199422476522173899681575355458100893756527188290595584258138605310482437402529878866377310565513193958067302268203622790289052601718949197148250768879065719491218594953217369489810723092908873036635284121558097222718594967664801307576596872996952019891561689833476611034112019536389704144742771240963042447874525796335536405682181838114138515198722211246526061030575154961182065501267722396694120560469881043605958653109050506889413589109764648773447064951899032311786660206497110847281937553470481849729486909423397267360897335239092673930823201891320860404612510991278987845861859962089821151964995139641951246671243574016316256530515743050957098389171247391186269820449173473171775046512860284713261935257185075977445809897870598321111903120303124483704292602866858412931001899982260963992473124349138420305439298866221743576542534083677885666669630316401710124991248805416821430359008015958506137829777118993667802765626299558934972630345152530055960502401467473467275469866828415491356283854814263670176553010053446561846060423557433255938666532969268936703089175438410018802501136706587501163854614890910163233599293080916140002629169929939904188273205286098206637703204008366757935681558149646969952647072045500084011278623433989431935471775642471183242075877464303293724893962094052030152506793395005054887905801778327060612463986600491829522296649907053814660800133171747250493908409422381597773444821616272862227087710159165189365057927181103172589525133941849643905464115736852825707890941133527727653582872414145638774460364841548067313575798628987161619260426369896195347568059756278925161150870113377468909433378734839235483461295510803872703733103989860241349345926806626469575466918760981028499619669425513893018735978551075254680803721971022629068360584485463566230326083404752219625689022866290714956532203529398573573114697285636964657972198322561370831622294454390313675700375264983637923575313678955153950746588395899433310665841352599156686048068173837093132025574537451752445488460082533920576204742662496089744237108626523834731152219322328664240134861506324836023369553217142300222184590901221760136578092993589505146269537799299333306238225020054694002871477817546798638718642079961727722686832474376873594592253016007930215415479163837714394772299193918113178389368634576572523826018847426424623126818473738343909861428884857361991558524302043294953257197130558443718148009966708215717338042813240055320443693394743342808660221176144815356314210862002053583134251179469584634908925079250543395591740015299079618927708377947209336303961279828713945275621288479925497701148113407907529465210737988664238397295779319877353905782573973635883119078013139270135707060669882109243266284284180731976297168317174287294736140590961828419301063378721808454069170739430011563859346266726127541162257319195288674564945087908118050296778469885989878882668704732764204596216720400738676710741541987294782619299853009238686554801143879543588627718664887270447798856861192847433614487479687065753586610183701383406175209970789465721738970818903863554121336022062674435845339738145396864976801123432841337855658388977443702235410846156370897295900006124543327787746485290355114999772645132874828126252693366607784665956523469410579982471587052985297025986229066937355737186480843124059061205319948081559625770545382426085529808333824289604131690735770873038667976738255790195089411100506549498738907341003330594242283550551260016209055553694668128109558328029824728628854351963878257753460649722942985969489080215970048555586498298158638401213672550680186246374595036365373718354686138584739262302830618762426590873649406846728740093300335641161392937702009363939129124932453483742403368759119290465151345788078686719585942468697619138553522523351748306823839048337437671921795243043478887216738752973710959375527447868623964116576878563945384743106310467603228389417573494868973603962616694644789445445903836123540950756435017915774236140103439967151487551190388481274707020127894056314166901720948452286975152608519014000856211590192958594909460432378057540946049418375364636356939741044761977725933695343164603001194103656503213778379484117274662865289377926454452877687813959456121012480575267739935785642129373983351391371486518700008254957842640850541550192681087386997580678862151353539634609460452297008125209042858631434667331014072054254747301162436609268249774239442775554425029387954087629582574138741259255287716103591859325494271281283482481193029510414702614976380780724265173192240464053665424414697678844729893040212761017128798901293079853789694722513235642846354171595189265857402681086455595609242247577193102501919942448540488096676116316857167430533344467051356719051311935674436929901061691147838623450224416637328886360062442105279060634190295583331792567582958725794560398412256584007571529224086587914217311359930193162920460529425540887802241011075245844704087612506854467543219464111612992205924593474131180660568744297514870549323044131882700470432784495216994816223329744760595288357110800967621577983310327006096351974754128913218377913615844842798268376182626923014564827813922067077544185905130696901427269461035407565509600402129192375688162692464097142222632361531041912375648386841313351433111706717220230139327740320714590949302371985035963105338127664393878726046686659689912793597865715849585253594558088162224299966872377201507789557157554082702944958371573189549950652388128548793225034377379717264770639456182228751089711367441244637056864057724359444007043445265453957123021149094742339162520703368695073399732219407673390536933205855880815483943436213729810406718952810971815223983390777816322306353708725160629307810687934481546464894221075051343926540626191659875968805060189221437072735359975705528820721942095774379479322677257878748377507395496747475105559638157540087069868051943952527302538536374961526425626585467516257442297507562449608785822976700434722741060456999870036641717894791660568224617995847218565410214000832501178381323229411464980171465478309593639221870513189487676325599979477426258605161882899070149760707026866560523586332278914131602491427061112870267690883076827324696259716837754603099830286391751118902470197703680798099107366349860181085128385184199832860326970249405785447594927987906475035369312667506504007234447583151382751578637631152122574000023335768912807382024233045138541524136652482076285708444311260375113409092187872913141012866973109953709637329071187194770508581911762299857278420046970616574338165595882784242909167669350925666779450360769591321367965032128498756680379825464245010114352193914057727376282521281013332351851438467900837725585973702474033190100742641884877640099927809679123538144537494700828412599330484949628045803014719241632600981131659882643896293116647498693479393305015441729620844006411589722883119649401469613773026794275631562050415145115406081983922443927265310799819632834838255276262263604319969931126996710887573141420491783570362398200174914524601488437442426717562704105942842578932138544243093604144911226722538969181677009560979494912883359357505710948083655253801006314622404611908747394170124247535243213706500829205887144370169336356236925041660072764212198144909365784711751773998648120813375989245439866370128819275346910374277611629681070091691507833659897690005743595549282857706518859427030714303248277431510636174264719830057899121683643481965766103470211518531408224605866458099602338236013047046853258908772325154655746197805923937264210575439458210788920555119060308164395963309243805758263669281658827213438115568857766722722019387898015641906638288749140442713635173384125372074707476167590143695181730612358874701527163575905033709551630792764335470041267669275424384112795143074260888969161830656827084004678016950293688670888821412545814378557120789885984816937749473011681728419440914161034564264387156802466699975076530591064464539046855777500237466501805071337396763014643857740705645679863441211182587581396494415946866612280674240079906390898459027425881019491692153974073739764323446411530174042179410442681929946833229443719274746085830625996313110135560909755137603937723215801332830145844680277490047850817786488463478113510409669144655126193114698863737250383063200247539819584818353335508612792139704155430578081941270635393400652190422366495791678589001086834622453820534116864505941152375797388230409191398999595847340558097076465846446723639792110820284320861065763961345980197481457934499560548505939627805552633999669386024985949020624239700198676445683606543687823384729672564627890580432899795481595023703985360254947902028243699514398581798416129393315788637909492342930114752425588889957251878126218469703590296375663340607722651297772529847392161363074255375960128593179788103255090802648892436480429119130228787047065219297472408639599543043860556281894428248687160019190954845171809001704681406092421235978542315256190262908822629784924258808562835019282618975929855093296164019254837948594068609288056551854171687935907299395218606943274262445784402070518066875007888477630029589562641078251006413623974415232767551532806776681678446832171403791801800953467459949595740789367801324862814114431002472967133301620057465192977912047851482284847529942082267330729491342704768090997182451641028547123742851234364501370919580899144607338291862841567449607045202793612891837805554379057233970166824136426087734423391846421276063730700669764021158689642944951721607596447116743094218346922670484238509595843372602572351922814035586235548925212384036383771321795326234655366963761004870609020288349639461055633276144772463182120257616898114976290651838458227872906952188368764326275285018561271255820313954749505650876201046512309294363803711781647748968932970915634790862496392034749567067293880195786609577345344382786179228643020779562850144349514532934491033398463675013689801708180618523641857922159316065267307601566482112930128929646197364314008018358661703215871167654849016151231503300805250429388203634103552249671076115167937464717409285140454393133592915341684401594966939536630249959609355659914818090943560532678679962618675101311381473098028336219562882901083176488978975380543092458063581527154879478758083247120470291427231202571547249127563289285458711234178915610848537739202649068291058859985492430086543127490809410515719886316686176720112926435829206519921295450306289901347064362262916170017281691722656653689365065722852619932384244733368002315950035722413169405919836501669068399811573556491549973005072924445878422672805971383810036273599645046266305249488872912078541534724589093658042905379846250284361732839821308262076187417491485083915584866112862419767369749006521714776714892729192194213830143715989173256210446403649492598717232688253323343387055096276923994100282375408422858532396121888740221951602144720779718902455723190507150553907393442391928902083797067235731001706939388811865311312305901320349771757691881391198532081587159835097986586296149196440704212259381369495520433382459827362324347748663769946331652856187292614021520567814371106919193106565984411465490275195436574559792866760058868486799475358262270161412521206787721080198053616527746089110202385161875071629136378885933797520822628819953431193192553237182076433073839718503272461339977183219504581022105667340220867617726901614562687466050449819941051970511728533405869704375770986488115576278148079040569937746770341440140324963274839730858542710890510085666338577214209276786801725774800743249889195391160083011984381279301187557139441522973352930305649482281001901382935340979919482950186915819761502661738975362292573483465063386358144420429984778840586277943422798514474157354629275236107523803461541423110641246896747376496581715326319390981022139755798950344287228412670086628259067375244294403087782030354311857982765358569200313757012134483058247515095335035295288561646749274454116064340605509392137241835143301241176309911706135722044301888207689392277031126754744453181681282995040485192066600376227768926504341829326149210424302480635221203140307814866836037647638753373802623147044923831475463226381910275567262017661834326742886028874148778608016550989639936883023131588465193976721858135301267743325667921515385981150434210337537127265961510425269176104098596919970086578176844799839457387939450184654554046062830602188472513069084515138921230140265793412518111428615317017318436476626146092182435420505174619619914148427273065456545994568018565370053175326893288314548308126938541543584807031511360400651249072367452744986815677469113475784026573600575728347354782127235783014445261232107326953121027965267016406322614411930283890556209237705388532646946353409616761631620955481699666711054955822705322048472141506385305370386634243909064178770608600878426765577363572510211385264406455762477087270080547630660908248169427133399515396668843105873389843854366846389818535152741157790367600892707214596422807643667108351873125712366141199549103052970727720232189837200358626533136714420271679990064186255073440824540530144219525360253103605193844695992370693119332270137334387882538923003652049298253086380948348401882611784178888925011586522057105702230778672669799450651556971418010111644438177553122681972205166466152854929090541163240085582365776284723232131965189958274929304210764626416160173362673512066835554245230787543456219264706149081477320653972461687525199770789524649408740379531436787903572423026707144221410555563880913835978445526184511731479169057069838584630236815856284319756133334313383282950907353535080062742728469230171357163080800375916052196525628106834657578196176946640965109129969455579710507651961111041353495585378838700944599661485466361008440191340135663976966830900120315253482635807841686393125204014072990478018846436686991658839117033615844320081949218135996245616727556120670680500717096067181979570004568494451653998703156633597142364683960616547305244885301623514589909623652430881547950794172529560776071695650904232489763601329784059725047149622570964159271253438374539808840897028675128438957799833303403724067388373727493973806309239816549096833602742009478976840851412468334295319542445044016347734353205395098780736638336937877457731249543455268665950094065214090049552139410432345682306983433213335652251354414004003914364177609544333149486279454829424173330230150529143063457088154273255449639228819565923026497370203379155962153643186710772053739704182805979477569212595647673408424476200600733848397317026749800471992543951138585614522273560467950167102152500881649230284223594624507166643026686242930329091089592382155443020953069712684949104900696390773716960498476861659968887408466682963039768526271611657708655181505016102818202901165634017798485310401434017488587842205788182140854222524075573552424576967374504284958455850836699629050551144203259593511089452502828935525382069821481797815719261510967159507920295532609700764244098691363303194730160881176495645029835219105108555199054049350710264269864013497030249221111665148963812520943545604240306935848741661891269791603244902178130677744394926383396329250311793289568380513347544197670478728977874949489768103840990111822152458497863707787417048968079153110524868083876732799749022692734101983252752988096828513994500691363401581455016305807393596563422988549019148109649731089846169506705876355251939218669797149150927730551768054497240304288173390211111499022887092361020591697150826257797893162753008607116747811515530492163015812052231543014498732480750731139342043516392231997026686978120381144313435670349678181896070062510107669413971128874167696132905632831916201023678882854927492591791889014302836213939850989476318151405685677633659031284502996531313228915073873476922435943877042161430566161499746981393298246113107297025890084323285651634248161573418074370269409161178988024605923482876943670975742029294546857621770545661914795646394302125913813209615824979289053035937256960063400796333554285935853564673214019999499174890886337691428679661968774720245182233637126248757955953503914994407062902908489046259878532271207590324567352288826359430073017077687451269091568983837958497118756235476291716082196334255687692658240163570188872425263023439039730138788892685699038711826679514640804056180523915465289296367131167453227437536265054953430895177115071150984013273344880093962592804335786087425061860644956650152655868470464322132389559794606230690736114628052632918196992083314798824814585606428479753385022241573318226780607801390232547119707613885689007532870155504694514194732425444489130704400081716116543845164796272361330898570415204439622980498807073725801248111833614818709659143472736370043672161728068729915287859858612393254202600601868029941326624507668979870143036695836286302738498107904073425537939959684482983771832206035562617471361802124883292454842696496381211814331760701991181765050489775290000909837120829314606918292632020187125875934372412359571447061632602014313048813709471634335196661191965950649821892702533246347631502573284737182968116046169674441434122972073729426191487639523295645932818725945156112857234863363849684051913404109077137372571483077963275181229654146902028067479599773287176116539528209590541434802942222887259345998180656543774260362171645695484342108300367783587300127881089471888922306128139310292580439868146158935325058609248848051817392122350454166527811692889033115215219750194661204180941473020351820482579492264652050822463346629626981147100177064025381478336738402330689042226535560838415278705826741851834023692261931058112334979789678695141256912408438002889400796866241311061416581558929404044495430363504597616944334302692471703115376076669179036441268605386891001676651330394381405278570632712701983349203825331629723299745287187190101298751860003188285187811883035772687498001845674720549900386676344794591154685368783088479526752545163998871403331858320879220058389579241011421918222918954038192436200615619790309071907271953561260789469499099956298844064765921190663434900891664258575559195348823946581651076178732424191728447551748489086434075156894846981028819278716223417374135269626996601391046646205901317950537529916451760311728452368785740019938514745906793373726921748511992385625215101243709633444167638120362050563764778449607760323932511687771336954426030226361001320856633590748023419657689385111468955937563900528137917947131376582733582855658366714766764590986506046470651148810152244362159631109415890795786153835351990227069242442793655178769742714494184383313298676478450356591210074661579718192609799225110966468203735889522934213142292724609727916522061337866542316739637150101769899852526541820276268975529791244457776159241066262863505621229231253491284383882639330934032577466643455928850373219125268650773831592883048318353556447169804412353821594955093458282294190663448357028890009668313838058807065873861344943669587283074391154853852945429115413344695202321800099762268283098801747041293152204999955918430914192415531726403859205346490593257762541941138558973005124257183800494959476536844573581968343145745604896197888085693530832460921590942016480218528087698247298003128645414899146004351833351417669297184049044134376871991457751816025685828488297331575629781956564525318372166716320748024494241179440160797817499018200818176359290205594967969228710566327442665974898683614734449361449477404387379229265776036099995371768386201523037069708204517317444918031154516589107798551243203358784757590749132081410272525202818816403032440409446411821321736937459743849680291483065621868128590747535669664203775543752689005524380959799126562778312144869190465268204893008057580920782438960443480950274181632242689805147246368733640928781471377517125249973353471898315403914910373811153212013497431908666386966043941025178800102910997930607401048762978427399815584493165531087061626034546419077946478742459946941851187225896277942505542211834473785392198137759641120296689708224698447908146244894035368915844958058361251636199434147560594262138694285273906872705459389489192645986567491140500879306240660592260884601817968293269977877379573398266218563776021151938274786126922553532819970391019241695563150645169414646711656617837433844882077026477156766514640824893225785902299365049628493315283647534731755392929604213203266916836036635263778219187560764408253996160814097637688961392985080855562761268807968911530578176643388348274647881253207369780438505943703688672162508859522543339806134521705226494738999552402916775371042642690379892453751304973075169364370074709683175970035573149181311983120632023611267679575619541168335349550161124965303529881418336404590880505603044342730793748639966471884241337966356159114019666831635484498212123768457412797858102444336661227832414613419642362969252255132434148377743183661982810263385816756667588957139163923317301529450139149082439173379125327324349969730423344187074526547266944375234700471729589269511978273780988799920427182973966928725918073470334670524017473815801707399231158494780899483447456982300435629112249099918581942835495481407898502609508959223702037517685877871775286810416882154503795113725327635918803231347489081014688002533690174879555536017721162439858885446488345818816615065688035885805404581691299016567162340323800489421919641664601766948537709391915615376401630933502123800630124948775505596531399810733212999653314090838080055574034869722942472434142687636715655882342356829144727368171232555363839471203924285697242475681459446238071422580325411844402433864258240700477504990219160312075935672274072651632808384345506553627448203847850581877131839535945852111725867228249332129143716873230658190793582839409712832742441669680495468379283102651120702049271648472345370017293842231108922584901032800550858917438441666356629783734088140677111433596318518221543995340405616209514191521362535996046521457717253943559145654325620723231903166010414138051722341343534507758530493184528326358238016380340477158926580192365188453523860920903975092961283256175795525208938465909847321620546811853412268853889389315023947612429242466130000650553668405579363082518615495919577930995362417001294776806851393004762617425573012146095544499591502740098697093212169277802161606660821251921564215593078991159498429827189145313663341449304545716838231940762789231186865840070048117373353147927823745695557947965055680247133468913261441539036731776710631314417156109797672345574844591191452297677311909309513112532440633022662177199883153592616707231860088700381210634195236879986831953752980737305691356291013546563506836376113690343242162878769004125492947678030452947045310015201358238881361164973928176298014807694173627880027863085401814614503965582839777101056353155808711161741823491356742337379829557965768849497593842142932455074534928581042088887800276014464087629192204816883054499700172488552699661962051377077888974799691709028224494538947361004529835092194580225425157561035625840134929100841790647713539129294888211119825019612742527462505232990772202710243189429434643213678359408052325774970840902807696581875476793840540439483631352700421713283099934808170794649792734755389974392464612928543109021396439026470166091759224919645947855143919999195929615404427145431527733653709545515056019327182460080869018894416438053110185706505648168128385546667174501989805221283262563591353971441764189218127780071623258241275199426375354046766270516259293576996874612273981258514513791830343525966762833098806092014467557847268511026650525226820337669157808044062595035537805614432078142193466029677895203803273046494434020906508588106738481463512062709206241619641119017369843757057900973750695695296887422627493392891534625763008448096152242350696091285792518466087905752324183956080502309940748223012111770298074559106574830397565838972915831546942273081641249731020718601234474716023321169201592617723071239449444601335599452509431998642256383669593646773105160170113158364553402640559408196561047038446869187143924314854481046927508150106059788218085305919780841046288050998971774894290934606414994954623550112872666072386519837875219755398119827036022319184676825267579040092443038269615340115939739261935180074382318813046291241204931465960606753130043270535197153021008625441960569366939054710126389957196262129938023825549908503891865004232869829208693336542296966246624796893397192350854341292570837597313716090286070738234577536204437004590775172398455973630320924356510770179339393703245375111540646428743641756748039048581946346059773534063483921300996384236380583978039164447158031978366420593060999664851915709543032387557936635642634297280757475157672529902589709121819189504775209769046245771637224110465749449086645182761517816804220761494007737882859265024136356853539780145075437320243702714568087473690981861769218914351958340331458915685162807847497264326594754924544449803003909996003890445013457044001288775847632484351770507801107334897386231840855875980721987479921209574933371725202107027167494901740983184789149938107304362808300799657292629838456878382078063182439391971743515905806508901986594529684493447196227288867499671099843529984478690217072235471053113597659015163557781912569887873627366609525005209702591927879372625835768097910491313044867668156466275554915738590822204827375394483845197549995184297916063129314020002961790475916502398331449772463247859436902510394101289542875556797245792597207979287224604387780611384558937440201250242358653832036073556391106637642947419370101768701210720083396231133176863783042553498559940751037016946418205934867720093752498501351646767546727267332934647511761704447475076376343337209331292387621629567194072203802526987130298209721556191119286523648457923217594523478555328689556632197820525953966517965016299548583956629305031185498709996193707463132737428082004827499576171006342676120545810950040588311592339119328116305965974699369352901750898717773904485513120309786834498290948690637169504705750318611710010296254283801278792631591264612059419507685497279009584870203608628376123319653949896256068911783277637325101464977994427338110651815250173675979130068075028228176204741563365458368824114059604140842581686030701509974983406840068293281465338761338329999052288862298738191093679196600046356839682864502044007114574873212293454596068862605161886777291141583344460867874144712265100837053620476610804697862498765525256031130378452445469214063978780385882536369507602295428224180319654924959212266169592581506078437867866215366308721429421797966183220520784279828924586855664030674567074298339991659058320482021014375406300807912318614165047334171849323661119330881060381429629539072858276108240154919516636877704415806617327327402534822116490862203240253773605915667190963879990429165750547723816005299024992603260554869151219358054143264092494207672397888035861605061820690110611467643401020790818293231854295047451371825060325063244386064442397879103459554474497931054464503526832091532737851601916358463136586097675763078543513722200471338770406113424836777489930776764293351193996210376154135978317213818631328534015681628411084767020101700751790361130222789172747078942301881139155581062630101147781013871954823263301112509829460382764401744433889477672724595088998352295605646898779663338322676734544556432002884100352013632677488568969739481524593880657327165937887315164848573869875324559114905141367803934636157124305622113193859972324046377732487573357051252279109432851917455455947513876092697534154144661463666355837399805454010546031489513999735469454978808558794138045069985420929323218290439543261131134005781861068895838462558530949077571896845315731833077386258699789159357044239408709812416108419270341439306905331753546619759860682722435160545316928863369883905972460758962615388870742566045889949337824147234665635134144056337475060481476242762231496416269524084577446667791503616078935634033507693368293250486388737183559415923386245712611834074346890340879749672126192872269160087454823007116697514288902871241352061216439769086343959610437818125322013845257816680690268955009719127028079171068551365404375097473000883045698880003544496356555306308268169937111595862026840589321298042520876918223974833171911447085926294115586480508240106043202900050442027197420247600674776784576628559121641511441543329434684108497439670430436642308648982004972373797206534427939913052273392299099017860112514225010610130368412884061128076334405909863398811258727187042244658292752670938500343955359683791777418473405086702280675601273950814269321672103283251506052842001740741393957828545178097502444629870194281319314335732540067398626937126116099256003925867275813351471371411208927314081620067312436548885586428080291734326792429001264100149007856635711268456445275379975486275656901449916652526951851864290336528032748187838950686528972350607323899866817640914486959886745181823371180328846521949886450667786500402558155864505862414336333598823002682114684284865993170191293007320437285574509025561002315109658893114970009896236523491133054578622256559587112397005527047114821292438076775738772367295278954360339467425632989199952094304024819714343971336425666380219919276013491040298368708419371844790323679011855753613749106080399414458599297545071489715926346217845735291172791306090932885038472321927589251032051221312620204726606130482167087679990311905439275672054228628540658181913459998590587017052941398478689315173970021597124216620514612955537782584766247758352990924818688857452028795359403280986995134586918994549936430447004258224737416547876521182572273628016474158041133582230331178905899203892666611093837789595679593876265164027204292758140321952469230949060802420140874027893013924409808515721671486703485757022700976578121910785288039596436818947564098876983060286991681644331666865663155097220367275837508442575525226775761997790530951680720692597814936442614897154002499739989985062983507848972722857547724948672645115632593830590434081315684528610144882926876951623267877501458474981910062120623696473459540757133157698454904457245378351905581740035764895097748894472597214995995863256101918092162724470719704429938064503644541353279029976103367872732327420811469736254149140401829546889344209893107203877643719817279167177179542127301372866983389900534258941781306708846291218551012154934702860816830180810404461006467991662705684756175684792937131407982387312793669889303333432689341814940011465912953571739824917362385222760148579894855368890826759027817029093734954028852684987309737594159097433705897172995856183495586232613196954907337842394525483909307014905870934858403944961373151852444468533205271648255688127786765653475202702002220218499560800786942465925825632277398442022580494205051179657760879338914081081986668943267764374698911732283012462762664882337516219385274371139411076994728390738637714787098934534018739306686122831100622559236961057982446111843285451974792187797299295113013804573924409336274650879563767180420912287033653049244364817626566270215188239013584440228882589465121597856851664009089585069265883624537818297933266457173611156099431696411272016941598374137498354136295381462150771706495454832420652059332769265431159773521337328936234292720847171044244296863075284039486516542032093296288679490491004110020358256089299220863954918940458143381517292819202942256709211989428856419004762110776526315393015290752387840772338599040530685658621879418990667920225401972882317682748085555783587234386187330122547083657505153787014101250982354259287859984306432703517039635198676804193270156446853390752893058076012068444357600027210052995673916578213671642202522245822940191365505710820817835278449168528607169764417577913489217197481277500595627930495816101481004422469314760502910996102334638773575855511554161027830622256692915017981165944099484949276936102376442078918127092710947084898510201707031125742666441432615605898068953003911760748355936974957970022573974240772841055986474940351144398477187256735951599633187805530645488109196271655187291594521475254794026221025469316719476871676395494992195997296829157659705483352124733412775148533338350903582851345350424775874865433697928911235831433348048747856537452783588179463919129747343622846159163371265145864933318794665363823108592378330413603144906178002636906519683193443261370800840597892610685935537636346710354033336553015477104520484849565015066296349634360815571796133742102698987314529389219522170682898226693366575109169415201389339245662481589376716673667066055582975419397802532287939125330044167958292149193663669257773032359583244509314000683449179732258709863797635978401791185953724401943011516685979214115984475923819743889802988959053017770263213783808693001806930525539943097899203016678663460186067667575918759432499834983526783556344634947049199362395067952948883587244347209094171977668634280035576309532250929326568069283594517713574086301116000887899952933123756614630197589306857778632865271389259059036905062746683922919678531725607306725424907469885937205176107502192886597166515017021612192919974709489336064963163467752827186140818022555814918401332369251664560471935411658574639185853971496851919611686883787437160364898353029197416967988084965374195502544641366642374101906874263947786756511920284653195783662983114203924761678351429704371151325556517610312390291095558722696604239342812120448341557127239386126086780878048339528310473028318369424897817430416443908979641072688667116591876782863911674266016263598647866320399871021890571391618089799595862589784259834294158987849878863874339155719365556694522888396797339199902176321790932578975378977228237736456042007044802455792728657613289294579712377992332828802460083909907245381125253793408545975536818396818112655972342399940639756671300083520545873212412650289295165488270486820202334519716138650660371721382215778976286799640472489993949453361183269678254314507187220122952381750326592262552011904248333360142250009526319386065577728037713750776783652417500473566279428876637052334929106119203054588915947296901014246857261968033685681167027552495846561918908592711865862278548541953183234220995584984149493257173735871978600664626120358309382371179152661678659437941339111636656408858396124660089463620893983603868308074008946254010168529024443444647864540710967827158432485200307216604881726348433037127356204636128980210668617314468886226523252203993041955116774879477662124429752912390946769728995037244652205330726613410994491432265546667977810772862469102418493102597150049562814958207782855367276280123351888314918965181256506511418243960868476472353873685544143803153374621479399557165544729042671018054007269778762347441829136518142737011328424690794757742810894252240635461404506462118805098990645370492585243777314965693334184337198876232465364931389212059507787357599090053151150251506367222322751600002302317466489125488644878316670345083340285489342879635802179115484114608227961476704126902058087469746029291361939132028653219793377110982921921877293555071855625834369109237728528630979877085077644952255518161963698544024542565752224924776190925131271850172380104310591875096824808285413935942752503642037454993030358926926613420380286128084511291251230163329028642851534272520912880164902190740733016351208899527131200890703108487186565270882252726153950127395635053505287840552206108130494338732980194414630118679034365808161037484367529327010585944630978379566567653615363779716448228790008595954755535517698150414889331560417798703919273516985059590186445766946533316267204794845283534770550669929650142560797405130673958919061962054931549145955510236071577019502944812458449757005917343083863252734097696752531442106031153128882788757431876063364026106312355797591854210061158255704911963014915400447305740873792834635619789749132279500616137341226981467789148736496387657584191388631366659512276278750975138524598609103618134652496851989191157624183015221366577296309330396386904520403840606920548737700474257861641272522410293024220400586390577084542368328807563832834052501198467944604781932913728665248595918616917135465311321388716789198230362600508195570576187724569548965234828620877648673196210597805739913896167438716384133831977307699533813353140199171134165637835015745486560747678778335862011538412714211341215726660052666248179565656111581782164406707217111940097119305925786496148321328591895527055688228679358413702583256822250104957291532630619365886407040881236803735522211935144322056743680804973135049683529275605044868939831477996309575659338166750289227778844772452542319233075960353454804372452888158027140669467117525114762270905219017326344925184839836978245554000308926722904656524067271625135102409648467964886382326291672626193123084186828928891804054753531490213533945203758893950604481646466524845554708517607041580723868508822715026442032608756698958377076957718252620230597632721658920813909894969177230956853903454033401391394937731000818182230524836161142330114351341422118805901545182900569613286649660026773891505327230326624153565453901957440253682448686681656045095816947795490589306065417241579852327972327483653384166549766742172453129840597075665373260648923635711096437757297647427199119652004623726681631210427386490245765853532019372414385564147827346190034812603534432748995506791396990130544351221159481953673449042298624475603232194792141085266896576998961085315787272198792782307656061138420725775030284428350048547758415003566257506717339029242836580080158054583654441162202218699823386803833653707425412625569462112869093151434194872547747727632080653195852290992656987464600242949599702500956698214448230724688733153741948531314534392791500051761252219232703437998527048559068341391193875773006746650288872532755115039169055449449164622355138338269945726575532448637690563015027630943936579069112290083338380599741995074188693538415351214700392906923682803819112620268573239757188571865481986743455751235774970578096743974663082467847724449286386431903191036917403037231864486928549179919099955072557718090119189726350666485975142792690561445437181675954711029843032978405677725415794395064520370796577953583595638711969961175722186421723120422107862640142040866565577780510929811543903460514746627644882745273370160648701222343231943643864779963047556946315664614703420675312878037510861172994117532930606961703935190934044872840759427701118066012689263845278417779467421633900358160623609140222614497386169739918163128989221425646298463512234265808463995455032422745013599324514222899194436022727452603393622223894992377595693935224687552246745899512748806279049349231002674673564253818556467046060238112097437877943103502799923219758475167040853660729421665783804637760255558367652496710470734420922761923202261057334490557737576716617263944382906110115362226485862046133723760281690164950719468935325433605338386190291115728421000201424600753804107494335082538675259489112768799585951735569319873922647491507469237390253762864662340621943029968510230382880594558383225494108667970842071812416205947940149057498106409882909973143380214146864858945289556544357020496514275423381586589682813936292710145336345061026396609840881368537419057335693436215428748116391619959921296521197434648912505684618557264578309587549324678865981586104895890380429440920482006799120237707151306482366132010935036227404126498305983050437376994476900577110785021496975300333677967706371757370094422045394145847048133054702463423531603855432060658081584364144811565224318787951581014851965898363548875027583809453709237772390637239652883143064208348590014390511792584954952907170104408496683553951355512701777937553442131720256870703924869157820316565106138013365952934716157233647520667553565868399728172108484099172541883584662176813556753745245737023848611011393287846298956535616849241923273344522989728242453811529306659006671275475977854263043817585687415801124694098817318557700818825899613255301854829165526037291818340819635232899912921139777548777347130025245947772643423788811540045955317034612020925498692316987396192021916855549364915645537356945778386511676299083408182215250049751914499298739865851591522737735950122761495850692309992986763278806096879591017935483132911147965387377078942565384595383087911927444095126163139795531299122824894353915259774331580970108608483192436354831789929514189754479508840212990804892566651350730892810076106728327366900364418711227884268759515970615537281304643748507012697167460801083760059181480765050455892819001088570052250874726624687522133197373952685760479585419607312219070406884095732530870020401926299955485296792205107080026886032544349986574318653333834568585202372103966211811129746049341829592835763609729756423882583322146694760968325874921712348838479019249471266076078718381811870172404464462027896971796333129036591944970164526620898773699053382838128420420697576011001296663108405858872236311888360194752306985090037756914073032797533405660342046235087317251511452474892026934428853470494728877534065928705242276453454020734782364064955606583557729897132895282477776875820033016182633680083089347844397766257052252237474094070468589065066055364992902543750108707069790102671100187490417211556579117825764327510392496172013164047297345988537129792437821073451153378738229360666464732611647115398461200747408109419167858443175695805166399055507950843788195335696369187603454747981406093473840394582440461618354733611868474914494417019371227749836148773346176447100471604035237895499861496032446136578492549066469951766709745446344107628187128009193781098896042824019822558557321765935682914657305119899189777211427895179449468616326326102174732349560140086651752299217320639493603914014671256586784630301149830149010417906110838483922124587765246104989333833567713190227108992690119566464180753114519961588937747742007788383268497208032708117889394708205283015949841412634565274990705309997278223305752568557979759720333537049635290693109172870828601878322273553404322261849332525457992901928270731044959730130843502890746084495144801268280390270613022379856610488268674593931320720314238077560429367487736983266911030520665300532567141621573938171382567450021900102432343926719646434910765542949097000340337050381093427976371387671981747782678401398574476870460119270591890423730385205410620100261986973857882999251202910166762756686512425283737303241321907762757416322657183387241868653066723718350433118474571004598903402439009732255831759413998948777949153088630295890571420746217364916467401795703101790202887726335575399216304515623495265531332275328810299827601524053882466210805397531389393785568032700187285858312967657292416109381854110601055068603768514206683918808596404349543701536256855567168799269985485631900056714618220533595723225392040922984868846783494345681798255590842093233778618571273631245024974260495927399106069773985677696565278594798676530245973586915996641106170880361060204456536196346853541586179699254416596023468879649961765216771937932281100196970215613065816968107193267795307144166407084744875562506502572151683660766551937379918304591264890018046621872313146353044133923681297413421486711205245974327427369613388003866210061419649963376940875199230325025619302049284644009655947105291394606443599752105682198386670859832948825973124239776541211005965706452922652503034168649399501382380094830663820867960945389475024969193141922888411640882538999011867055822020536055540356180609998849486166038831423937440262591502398898188364240413181201283536251848648676709706621355551969304771042545427662145361246709203112686932549988469850055924545570347979952638972318424092077482935175588952491162990298480307038820174360385676248649333749800402050352387213768082978743909161917832729216960505138290055732100691504817251699428829396686810848812327966185602775783549388307412246906922599620465046478303256863116611090358727014726828673386994171289359543422018758021849983958446483727766633219554139191024956580543673230310019082952691284468532899418393061113211332614416433448750799918184594473492533934776881505476140876655911749314540952803382250461067217585411622360100415987429052381984162121659200192781678561407208328163053954288902772551545185478796856129738471939668206792556929236803938525221884645118241758598417170468658408714274750318957003954290122447311647620404534139345612455209729320627175135356053951887426574605403985049850630312845084165299485352132722175099999915547303516423772004620130588313437923255882960239252016508631444721699877303115656982181117870223406161734358792517429965016512177060246937454128996202889621373181000524614258034126476122857551670389826716670952790349619772523937240700694506892305707072115345362419822208462910317395931333203155530608747867239645758025506427511479489613995076998170018324308109011339619909686674429682397170370330128498038249127775028580280446629978566469587795986206054075638842508748764055076863076708229825925280912446815348441601341357613734567489303980089510675840833601411892558905274441345130996815556832077059870448148537330015271429107596125582116678735419869880353938691110084932367990618482025135420776839574361438198862702996632444777296440404840116751340845634933435168152378355650502742641140356604006039956489731121215688693012920628686713901226544286697226758736291425190644163066936686136225047024860017321586874256851162163745470060918427271243251392221044640533433347970032259788148636963577751858299374254973076588930176730176664418763158867333647749526568620291396123133955383846754160028623846786371746534026983042223437707215805553094435510733929700430901641836522279351160727847572660217658797422514959601371465579062602273762343573515138045097223878634194771085542020687377067355194502914652340478600861048496370473345092798516665298950940831662932577993649570153399331395867500661015234779571456707548468008119386439450276806539647582172735099379763605856732287266475290185760659348610110524575816535679586344766389282212928252269615610056231474992806762865569739308233763686640481265476177453174028920232563310653918105524377697212221617499294110626884847771637461019449725753877351693740230786348538904782507298390389291196801091712268322780973259983061143402663383890209919643796966845110247073009190351059185779401600529578846367834441796313352802134155841107055988273580152109168413922689304367792582056801186648206656823076884925359638565791511444451793379340127901648028298504241444602893457186978781227866018336423326565474757141263633621079080171288941601190420132630177713499619122182364613447271686555748738696230647663179219559562205671722863604145778506764715370925032566660918074698717631886845763650933545278382791293053432204156879929702654373886759187324852675013172921315935690996460493930556513973053247742145984229142001773463095498420567950802189515391310854626221920995112314926337242144152366282239520931243319967265123387445668335393578466645418253132641276005177168290837459809004340345687358141871253360405719913709360087763910199019857522719293232638343169032606590348067319231872831712379795050952436042604786669781105562789829835131827532141079260260185642955834135983283533853907435767389177500096469516054346693584549744710835863334576765200867891660895438154936670350617606881407750866972400017639892657604801540294609949644014396231200759267916286331541786423780884636273858658369248589101416440237351266976295455502632716614668049985153645896982665606862815761032167736781636409408463886744373538691151451341403569684284481960699628320319384605737347852744361123420659205890150292598379220537575206856695400298235625850029233805180678697165417250041155089018023252385533163958069791377472120176189546411234095255336373481641763362409508941787090010113004704546217012830101112967717936818142632275806168439550113006519436589689759608670472420292822832619014257006341661029684571159934575383413701494366220356665642744517663707120923588109175105624283288976205741271589788201597476540481378582301951371757441138563178846451085042551951295323486916696616192932586122940582915330133166151671888960950026183652382774694076707611465042960529286586274324514841561120579792169288031616899785627621196926026642737564162716790569679902704050878025848274133699754073977734377105691989962053458699665111018878234262162922930225937350548078794947192684851078211487070138465625307329861889745856395628574600577807709148184427784707556567290247950759397690009837839791103418961003949411607667174962280038856807103756425576399488638907946959079839442765004355958259200072703701971003692427591000527930699388875162197013558376466874361919954242986431042787182530791602614781840644179426354235194367012155762137416875366673828759690606855800109081365405831680647683838904184408579973000443936700123552948219652301316568514095404829850015423851054997160131474247651578829394188761741169697703760832580166105424846137010571649811678588365804955381097074898591549964660710522216306600772712779062300036915778529349694220067483045629177000255114142948263195946103170037242947102983395909370822404475468516947419858798570796827517762903582708120993596226738813527676042844699268873783071499355302397968006161525622555320520582226652815179776064319021981037403478576348533467933665612968221065088386949897676607019735458214988394799199043680422535829368527583741411063063220029692462104222820606683683442116476975154391327610405792429547137578404623399707693367350508228238876591581778708870396366779681551500323988658987597747618993523936353229288179455918906478175038204254368729715029053334159737607856271202187923029871912107354575430805029189896464145234750718217125563225867267873843070769626526830746783474291662387279467793215870282112833963276022933846114279936363456111870446367568608860591693057997891723423129997037077822073086627593122807473956761595826199683442602873236303906147804411528746472625552184708030305148768545735609997634481461443262973764803851283489826186941935445369271091267873006499735939318657234445202123625153821915706636386136391685532537765902870250917405200279930207087148201757422648207717401821888187243483687726215318337846836455313366945656699932011719933107156653033744478344837512899631645229958995381123826436375990684548007878861799808034528589711530623666404056102102460614858435862094141531077671218071259436277538590508694452710656902339538056995282146287146187128870782347576207894394105438362296619760028800948760646337152770417081243454387427213734034856074778102089964461839625210221734325243081339306255694749415091260755458710748320783130356349381202884378588073182755359937996487426935462540440030207892474577208195031075073743034742940019422696895441186290150187549521481123705224585940844089220560778444050500241326929493599036471164110563339912632001419437756974752507107761588990862320080793814077120284987047855946660816676858700893110910721054572508263221153147027742595535679428865879225103181365801598879569036520049544224277507130892886732460163941499749647812935868855914965102674202120890540548072826618301594111142666695569655788686406820308266293969754550525984669087947917550529273342557179788571767603850484102769109942254369038804584621579551174415938588753967293816854505167638987634384580461811663513516561530760671992236987406290299558563845689930415837393119778068524954842565314810299592122916040240314664463881900641406689704803209494717801888432250787112577703254769643560863464024195826782925803592531675318878959654766755950929496045986664681874667182060594843327397025024004929620509983335617459852646821905837239737965410306332170137578603565640041909064726467708018314480833420485002808529015313445185921180656761910126133029061530008176950545510103394560674096129750938627740208016173819105243151955421555476019046982732488489183270633640352679278390545414547303935875345588937158094248233160996301589511919470025295426934604711355666003800896737699695303235456438606780531513386562364935453954744470409671400204020299153161199244411726247790023303651409216754417597955543205721305508942043711094760058084636902202121047229615859523552449657657734409793463940466082983358858437513961900445739040385329302575436520440245853978949428526639245975295156007992001634898915678251442942770948619208631644221293658390197768080964230850665110435465904716058047865257072691646458502904592107031371579069016506356047721718582041643965038951034754425753788849188606581083784373483756665238187363214427932218188095607528925850714722112021221145688345128540065531435384228424696730799021926591071736209210808907008417179398648634269775387175214132729044717912257815531480792143035199315695922478889390321892071032102271369379370295596770546991106689725591055555569218346443715264428912316777615885940013470564245756040011546114648013405436134469328713005344219153396174142595688456014267094973644862304005404048487434523036518110794605970396006037948416204559423750681203620174633280000386510597698407765933821454697070176377313664980947982517478023178180048469684450679718328383453504215594647306574430587515956843099695663170187335023219235062708434972487106531021140438229970268510158119455029646717298217503721562382861267841536039234129423864966015041264608639300098785999457121876987669004160526878672114948137100928252365558093846950756238320722518420352355050665304293429667939350102686024080501888983699049990798057214267532453834013780811952838176905457776699632334341212356798702529488006403933007577206705199493139756987511368811217131964903601128543828524882969556546151853955559383138870616172026596329584493829258152629185757081239764594779992896363852616968435008143895646873195785255081916058909292707384891307805585756277118825231649382769052555733940804978840627728539197475685376115329562009906932565793751751308117785206708183311664021331744115159761005309177603061701570148975719716858156166607049887196139891491531071945202379002635475996736274204268160117911858648527488297894177191728977744254305890520498510290466332845647875825813124605817807139324084991168230513370340315528830743950916224835855032211339618851349046178024466524201464436900624118973028733004746380154843789119498542003677857323506324308073638643177109611265257383597289035915281194547574231430270086547526241538418534969684189478145825289895986822024302620393699758476187636281801794749477299126479098342678383357756092740781797203477034728307142534858829275377677065612838251350389943963341539998829311511864938862657395575813115893571983793900508397892107890303448601198323983527847601512199600734737419492162605209936209870017785330783660565139575288345179842763919283201341767941831178530511898185214801419397902108701182396193541617274111367029034952426472675721644102693148431457544590205293608129333059359367739648928564326272403289632963600109568192719056821333471867377343891081666935393769922953448203141651805756789997617277867856036610939826756022977982985900469322297053380504400528228051657618205113080275136314016777917194731498528503949840124271527674745628895664859259719104966397049180230550941125416288692218209737677282679719475542559830926201861857720039633993762000243752990464403931260405374358943836760547428046855981451953575546717566227940809338921477972134768557192296622168169199902152810035727121567058461258956858837096386157254602130731320030627688160572591904953370659938620816120698033326279294461226005600186454798219758486375506572595263278579639976200394685295895909525626286014362625021631557013283832639052483360293891700926922887531962658704913417086608474356891597342191863018685036853835256209375439530779088199490780463801455836386148886390437410949415010434574262052514153028311683287813285356256188201610734187621795888013497731353378752018266727577431222776886471715728161593150442017252847142022016104826411660646417012636566357536672310094397396324561073696492677167752908583193343262676458202769305051818273600360064196023872665659945793450817344964818177351707308390064742778609534979297779431450942271981851728417204661680941072500348820992928362759068706624720689527737423042681524312257201700074168582982494633820605006955764179616212687713584982427444849928128630538883314044906757883916145135594399731021401660168482224832009035250864261402035866092439065978385506200431366716657322677076860380669604613784701517830573729730430978871409632310878033009482298249108448070177988693800141962541110950563369309778320695425596666682476030856822648918801836996928176900415659702132224295254460593344400969745177430237794226432346654043730967820916900813809100114156968246451692360466780315219248299863282385770101675102837943751034920029176504697031725278439466657315478417342335035421516623749185831033839041705780874009502109906496495013670121747655027042098653845468021969784092550627053124334701237467245883380838343544894520189629837642310181209777375712968623941886549758096017410708678325259915064340467888217552200143550589639239631282426399963228271220936374175755931728196945207847519868502434310381874394514375810492760428430379199153129356394090305271442198060242672073877982360915898982120877490626272528059360287248895648634412248074946548188497167004781972257977566218965484158489397662178095451301772927061171565739711019974144644023957142494363312346483922851177318818716404280739670439568144713267931468168917987225439500357345275378904465891471428912170831418060781752974231459745058395043961382779613324845795337812749599312599099289764600821569094413336915897407980685613230385655955686754282773501049359735346706725036715228282735825270930952373032457097324300153025671533805294184283508480583335043163738945756010653238388487623812855323688922650069943270817960380503438447927171179378980466706725284470838609469275493652260368076963339315139375434069974050728292035491690170862370908039695838728802135449356422158235044652153676734300838330162806282711934003351731286282157600386398279570747644894780308848385355643236302382262777665892845241746860894837355298068788056752693091208036290238428008325191242745208524157796820889375117201766915496445853117433401220546859751835929646185167310329028416125428074924954250000459883210024497628738035871372697960502163528542902238766466173279856179018349030993418315579875536408898734956611463736606813062339407602863270244447130769897656612159985557954285110703496462518856173811673758933897562921267668454108487395124802914920461547295415861402931687566842870732633827672441920099008330022182973227506666735199526428150254178307302829496110469237598043100482584656736252404737024263512438747705909650690916406971674351625665546435166725059759195831439160406595163729610640992686195881927630016003403664106044411912272260735562358861367301151895301789517156780202766264949037651435117218961686505840138720061099771913381679054580463412328261329955683250890310374529133594208690008618349078616575931286317312963469464867584637788358853526906385247166472085361844708560357996166648797094072269835183176207626854287409566748993855575377476257332693623176273529727868517020731951638124654058747080097219489563486598909670429131426749182210720232564778656722432494436067034574615152083740936584471592115712426821560458143291640981478254410735593429977696015727310430367749811278259819389742380225678662424221076066216239785615253571510548204161608025616926892752052390652242171529770238772939689926740544178735731460721184569575629329647346475037567516994928252231531486345714556616022451877492594561591273556948437176713581358891672510372629349127864534083103230347571056340838717719497972142340177038852727742450337245290059617059059936164088342778163560862961217730070854987052458627223779135935526182162801862519200906504298688802000232498389933679560258065406243744516538456221222126765554721057286821154423668933064736969748681768231681260746797478789349033867878819039142829107790167007028922069130026765813534257817139852107601158911425318784727069738524039738505341893864767096920081530726352512516492831798395916151600569351375161169431200111528167841953405565117762929833054087710097938366892777263672190361985790721943587486171566860937215877536106564746087979579364714349872607972099586112900183918391333158514947042674958379423257743626854233120136348464090788360026553073112296606765608655190605418990467409358857352064149697458296822214081190810545884577690864313460045137836630406829729216965837563704686116268798386649309298112066795823235155702043688658593757589468357897989408305398356093342137183571424683574169891115178501011418290320617866972932382128105418401265549963465811582172370332785148785527567118041771297827725390779866266756396169062620417192552408116393440816663408824957322339167098907122094316422292695765354853241783521734764176480736274821634250248623391424159957358215249398965123060029799344495911263212753262948623791622455269341226739987756857901992047614389169513440343515488070507509282000022627473300706390258119159727988188518001976395640930015044499537413719002764299177854804074385468087277230325829445027184517328480774419473667812665775281513346869714353568713051189747176626871671011664613727398721520480686547604808599414696105989803124682047497194682853824581961920590228298840988926965466168342506218040052801107653461751168965703773454827034033293251938527129871153491969040601805717226785096107534643813463201538976565190482434221078679866874004206986589164753016576097387013518275062198634920946379081726382156088594660780630224457264524832197301731217629288480276567925348258741217082777277335323305008151572996746814387332539960623841022540544098549857727666428154272759687755819988866118059047546785371468470359911339554118333574833637233339628429526747635436938136148737847853968935830765128395064576093810553488696227282456533216389149517485764175005606632234227421518069304200249073841359872990322350617884887645248271561189525267715065151216970199580713962998312939039537258106345977594738519779544062302376090149699125332422469001390656409697187303866027945753255556695971813224797686332871918826771479540173394833165389552298944143421612277832921422958808704844008290862264713778431652951325380192119504480698103632082207799170184224526400890993584186199099611570348008906475381200043933002949830684430385975274113106220921262261617537755785171183469324616877343766173040348837323770502256874679595979495842171521333954268025465646353469719687162465689761922068942811747703615295203441582387729724504319810097917993172286784517637681949672625813665043478755373087820130244722980344906754147054112113125374964837191493926139658553648029272109657015887324129125443297097911717657416013419160505534934795002733297216514527813230150370004781892886200965219038712788364759466102272342488465517527188189907935450573785448568426312400718220415578857362721588670796701369935574277771877766041260959506907332269172790653440782182211351232494314463056456274946703899304460973601096158047736407022344287888625922292303574898787263894667648801506593541785429128616933330756232529456696344953487129627299446364202668563323901425932861027153626522609472895110566350637239114200483241481853754252526335148699311271010561878687487339267159148772359991037822958330507536083617456669170209859755245895623209519528493838978198048099219546562231795678078241032648858737997851393608282604806148920761295484813080090118430539930338840887002191221160698289009948355794773639191087791368852653534857789194439258333981471513847821461587045321442998336126313801711742201363385420722457209122193853690651701891905748560755616879776656907333448030498556063407163452224032540156157205561648660724092144376518042846340256202414170059971253266659072970887250780690638076133929621999478337367818097444811733116117733444630289439679093090006146365951634089995485471829604581480316864561608775669330665318706851140740374655935199720299512188806063597069049855824817702033896264745498882011307008747333970576883772681934971259440540692230316997547275460412787674632648765109124225519554297842541159704838754636314284574966349174202105165911140110230544511628978434229864751801409020021086049921228237352767942815203044709312081291311068808032875289377933852127953677951363248560240616138313841174339684961772045202858966680626927383685473753830322478850281939694545032298571462809398564338986228530335254229094841030154037723157630854512684112920841359682057026424916424491856424549048317775628507941725229454601207367688804056161130216313152015707740853536488743933937589161982138630018191337140782463477253932076188513808575123073549368755332364721328664119473233703673171390567203476107612122917322716024457119817122666181175840516221570342383898536418646877732252534054664015867120926123734473120298620430088803451292571029244560641754163116094515676046130693951802488270995182681687576864150090858120479811264529687051072700237517054543938826670752562884556855740122095742817624212043651440183953055278283965673323788778895355119126181248725250429734631888255367311059329982349348161187964716677341101089122157158390230969936388204470102079681026753226656165891355954253869335075704531033086238042485797072184578401947189602812986673550847054234239132324287787985294647763953630840469774832302606596440907384169419796907456886151336310224156077031794831026414030184362313842299494472290633298211561034213284868445755268223986536014933373836917972282765493158105866975421441177088681113899151139701075144557811213095207415803443178938185676343950503092713578272868209738305992126390927226470595879845516059700038074175200359224341941752245382701676448402936431382876248513567295690989563957122027012449461949018470795679866008732567047182136272098145219031284870958438100436006234964170495592540200921517698910703353668183628449766941105209026116287053451715363744255549824872230869789550717565927039126095176987127642497152868545155171402942480722391208359510683586680391208128683689358884396106603219947335351506915715388075902900801182467836073133277469090998913080817018381126583701613995763689226701383820979166973563634841271439684602632899501498640214114269297007402652647352501107235847586306923631692611847493114936850177361209587952116184892810820438104390430792255217468486185300866492534816176494266120177696321048346206481231096376360736643899277290873415854556020298655442497022915439259942759192997271855737038528138592954171329500936222719350712531738000438291668266136922690367493607644925499994891774644154012805742731588011272328143701751941953381655628896287435160626583665375380663110452618425801023843335138492075328313418041871357704979000644506591023425925662321197309112441295554138131388244257136022285553796953669367141432613347857651063707791918136804975695560405575802376215366998873614078197448239420556678140215491269900570455354891599294332428538224628282684846761260355033826539626426464517703959794874525428595669234403464208437907897268289197900567806323128237989774832996069646185416473798311436514728487176394662155139756282465204219166590561708493855642687852289875655225505229915763093160957562963133887937636988504801190570911670201003030062189203162059307396381365998095282342618688041767886339122628774757445728732652080310065187315653288586458987567031546148122203636934355556879821286545819745336543563479560040235883546540979961128988908917957433864311883598560779373254205675517907325345308621892511175474948334702792409024964863884093573787013464311055196927081172461746551627371756842689083384811639551957196099134660753145954073916426495733106705708944587055574629085158256999796007627627443502939156896768786091015789417210304453690815779311361541482065472454457108029932885003127123663940060452629363560332361018071447554595499404263874891053571162286555728326329063777509823545371502514075132500687059933655825041678369229206649191286782557969257254261133507932080202985034572932157829382501264894661202141890391230918624831742331242757737266932576070688573195258415921847386666341750128308314054752776658567088353932219282913250171862402842872810284295509645948313066526349045016878441790441280040871452453820805096916688469693722981361225330817387415393996577489999970572035751609611802434934442541530600875588659919263997646122834773152952906974716202735756573405784091305809331593400974865597357873421665162425309273860613033276495313496693891852361988358535832165797364206871393069936118060034661833240196462047809850611471929420788653221450233624052304611974661115147696655366714672297043466076533325010580733359342269704280706072811498187422502383581903574063409312250744136577325175514863417491017653997334383929841375092476327277089841249210030706510242964114843330434638919611678595004527591514692896285032112143803731977465791590000658398352077766024326018834416695695955446828998819142447426637687438637032021509230194224140341857865605415798457202167045393280062145029332534761713743733119166603587463553199864533494066112891390702685087839901490649403394977143728824179574148483174828948214041471200833808262687869717327149818455667894045887581713236289581809098289609876841413900433752575413742621837843258399501965081239460398283168016404617305004237005657105476020186192109017414725110744523739629637558517611832849209841727826624974452077636977257850077603873721832600586907002508416834639897570419274661114899768677591392106891370015832824969241237535552285019998019856637023772247367808452214806148625156871020807830710140829784274881947153577637475177380666137622415443096778067288282193469359379910328742167782248955110624455814384175612591886760469191750673650991958053161625703973777788241145225146810803724258004506830939306651462265298531492934324768881701783812833369666198352763398883999400287343917403058715972094078320807426090098413329978067126277883283818315571519310127957294044521733727132199459919802260033301827826174315118421635084289592005513262983133207979548839243424045158540130693409039672714122581614038097821746380725617921013783048085563691963355390814323662979495210749986625648289436714160442543974655364339012540298788892637411035011574317876136750225807868867090784344163601363821401031120750162601226916288354388731531659057129284323540500703188516710108870735132349381721781072637588162054140800851480917353471626596426709948941902717400545595721295509889513246395204710087354444248077738289810599706085192454417814011251481300104966526125445770037597743463355225695277472426712256032145710535625094125762506533558803529723414865813236463418925024236742635706954494760251465543150707109866702722545900091533271071212582402540311145681848467091654340752188115852980756736599657153023970567280802193498306050824957209672754290912097852278428111229980541291183848232880447910145597016080938980619010671004406161719859213513740257898411663325758777974217970409494561507257571574278685665119396394384441221385546110795778616857194194500790451989600288203088659511993969317101338988704383350153788889320294003272805977831595452744559673473422898991725578401334003628595659379660971368122858489157498187889885466344782896070516975552204590811158210691260826684907403034919753148716086720929055290738681785875370693400102682109860837765483879335741967008968084048918490992161898433371984571116071944461989443966488967486257451568402175742241514448630631962215298351634195675034703774377935655237439227105524565480859083891672287018136130271476034359730376669427766272289011925033889119167076607801591745169270331449142337702732194547324458648037609577186488251172512221556156359776642924778440403503896428880016579388952859387202091561574870547437261918635514402085626421341185121175916207089273523707358030524049302382659687847093416321410932989495093617368042541225658920798903097800846571594322034457022305398417919277427183242744593402898758149839548983687896504601205599114495678219583640436639488353341812085169937206920287454186816600738109011962780593673014639728513546070829963850567716055768237727130463650706080302247730660758289138365471081635474356417513848434713444305112738121776509948164936050419920710207547995221794378805558372632072766210401800210745478431173173126222329100638641983693495660255055465222865037058013051061066321700732437915177347541843784118549076640031596306470113214712915539973669379188496611125119746144327554067515439111786104073148083512731437750309915327458455629773811137722878884455864264269573111545283531434172774131134480754879595831996695898861576160566091436675588686190978883143307940826974387041712099044721802292694917890802107716590195796490030405303307133108902446597461380911311631544455726858803709149690962811188742436691660921097471499579552694248465335800083310017541346660386942019183427921432770869471001121618343776868092670248235676735544002795146220349991265203017680404841817456708304542509424260655429776524911127743105837579461435548011270041259883968310587061498604637640770152581031046648597021366594585947850034706375602558603540051761339135492158943463483292118951247902411600762449944694862350989259124720922372038150138165827433055819635993166952315243422892695414139091010037595687231205159014877371608195323235758410873693914829263497930001421301669183247331416916534651647974686618720531515897031188322912509703685361956028400711591193997953850596558413278409732316608668610596347713568829429581539369887186785544486185177730929163544539984785114730620716263539424240994454946486555217059656190407555550131477104135994867835721679349063126723301401758424989503013332577445770448498234540542833521861843804315712026439368105905431072420834855594185693824319091632649032889900637624094936403456632894707099729931962301467883664322725370140997117183608710609887653639646951152388194921108955779954042935770127503038662798234060851324465338697777536500101680778671214899992344827872194869799848857733163415528988162527915831138477626113556846886187958699871559014772641799650021912395190315360371262736850849965969661672144498106559192537840453908278582589031082896608016930265754998188356951105273814266447741238774625260254592598905882561448565892858650851684608703614844615536969015268234739456113782324629505215317189846286571650679353345325788951077214632910973711197733971607357232481010017218837993026498999171297909232765456583867693148729188352047400492609624040063335217270877886925986245975993892646353030262847884953640499478593245910464993037804803250300723060443680335360443267214820901780976276835812885003169893429940214525860625370461933777147085511607020156837000157345486730684859698238376888317665125916127389095096916008754803936869959317729439987527240427407715668275748642307242261559200000085369466113776619525953033160283693877061745005251265585729155425245806448822894768359421914373750024190406956057782274798795179287013549063542223931870671645432082810388191519273428664694378818457546372932796018636189959857455813864516940355057397125968248911969618426316723645208356297781353027931155749720292824991209008243928479231277205044243335204643282917014710380614159853617295110733803519482556368892830493532715938018492939744857091981809934696281662018327283559201681031844358306196451876995777609309718232118345379774747272580329326947101070654628385393905827813131085581547105864837905315987225750915720282077078882168027556740914439947365263391134946709721145671400613350213211634360197317313718872529361103639490546647659259311191589475155806587318971864049428837464653192743378633242243777630871216863688505656184518777517877907870943089378693387575981323683918843746939680293231400103695877057683436766306143013795041680621760634961990312512449634695011083375398585228527893024762298340342282797288136843218860240611361710669550594961093293316055834208089973158389323540907729014808074296762740310696303830112618471013737571320451354290511877965095310776138960185574562344408839066629451107168209379098037753135965116099872052739477888538685646077997212170097605309778009541018038522515095328004485344119696529840093864865519924326028817322690194241422642881967786269407644442756984102188015227085459879095222919349947829946333235604161201898124929654667376456406944779087514694063573432716022032148585938537563849142184208524019197525652192529173401410494070009233769844501333928414624880944971523542585814223289546714644373960587630089986911810983155703896787796410442543236226135719298739396035281908085884071676917956490711262750476971217167522546655697475138826306003865187012699608819730279873968917360187961766193836560677955076114925119811495324032673904007059247371224000178224391701985694418620473730975555461017054979829564439226239730683500118793933598058279660954432106544053902864566394634376262690593684695342405511158356065983347415237535895041731448292135112314754811046387196084723371923315057700457263372149664851516861265383831074004874378401914426462523077887426370095932400350740669812535414407711028611002163649467017313396731111484825012161637470975912066398724729021013839994907411971528112997288346578147073936699505560101458933060398467695921436262975778896636205554747791707186496357159348825136359359855516933665331002233258913516526299991023925773020188911275416461731403432969456245947735235001186273194908876891213564677102820052211761003195331981750390483171288567273646928712197605203959653944856615982977624666213591642687461760820644914926777925846577225813547000884530937509826314272616459074894250568379684911119652515944442909043156501702124099197321554073300333965348371141633711906999433266830712491185986346569885208327408796788148428300045914222130350592207002901709912962064082491602738969685103312143909255110239636360662510678522362677901002930667720750831935488570184898403501027951131624018629651879315503289665592652806128150327209315745585444939801887917844135349799748458705579475351631991892122615506596227847602294970850419664103401199212583374336044462370691070062505480669084507835861957100782689789963722451994636606978848098544423133805900709104750655341579224323268258839523690476212062340566872508894281852011499029240499909137482913395969428644078100289717448204568953526364696833257989882453311476646138395184145632625386675527229445658204157509095963773098496562845097049917653062217207278847156500775678245884275049730343135075821841089772917371407654317543485612612201087700983433101065356761081054614452742645862941231380452109456667768565858864567320080701143933678859121684412728587466444525089657915998845580665707940840918802071247547575914279045107039511295024012931481375709844625917659785118856482958997358631577835806701238048719096424162854804898640547573361159680395120284071785315977270387509773240341267096722219731568704603588806301192369164887879661317363401569411706528388150905271541346032809151815647711668732377263407493981952887999655717025071113391993431554373238805762533150119815531987041081838227921440917905564098873333937422204781193811795115212722820086792933092233518563787730698455492015052150796678444464842583207273942229862876436436131857320450201366147741908556542934293900049670546303434356680716698446960592213881292642646210783606487650827242253475134799622439994447772988927081686131850312651023946103054136074814333210506345869234301075385007536098746066430734464637018251479662292602344398411057239951638592118948198359920577468694134956367614818603011511923282719888381253019494588495407111969722754983209692251172174822921969328448008801192896788001899495564468429441674727126418656735683782219281299969659654044455982777192641691176755827050563538288404805875443545067374263612807520547090054513454687966514900554795382287566111059615690085020687251620158463358072216744704589331826684813465519459338653991830356542843904449106634984427800648928862810775640697637085615951450206427089988439527945273813049441905443384440698976850455723593720715264823642425704507352036238725212462811680963284590695107939394571445398862985126545850945336903314274221272246480989505984894366122767802594409958038350301644869712803087792550633228664781967691598404866825416828151541150098660344612081353192364201226152020976024996122089050103986323006537845132110117680788938551822938631213216957350368327391190297988720463968119750403274436977772602954916094075678963988467510560538122716364960298322645509867198083791542219027544392881616119087308592143323311998234685905204683590147773549457352312840812527113548057415668631756650690969606243986481813189005138881052683834155925019837855311522307408928053118188614211143616002384134128591536095424994352770019578730848756304213941414913230713789635456886264637570069323487463200675515123286022070341776227683330173930080935652917384574588796654152005272483635889563418861640067923403807129967361656652945758901772128586192154871908772086656048691489476793421846381736070727588122290368917661464918323470000580044461640416383500939960551672938481132923761911443618379331622804413130902828908671271850218675060231695109862367424277126841809397071502451108355392379105588866752845124941354951343260749190537156292314622824098780211794173880526544770782678870482707450344888640546155205832611258713826859987403996344408847661134307627377628839277462398029356296060831781539070557559988918889252536112946505313694914558040969179609995773083996875922890346175375664446023312862764981175402438443306871588210835149247482996093879064588789033636084734672210029928740442903751040651460153094980675228863703678022717828315753893665068728766117953381850608013088616189277693608387406382636795466351536353276427657564860419139027200071110752316022253500939229994028546084071991364857949940242877974838481658703185130508464376684332928706430213837262609888299641869962297614673852219550502621778023145499359665726449423167563957220777168952158163837379713011490801659360204659400346159156942997166717695921082348092869697144700980298628768005774981694345736646842918923281694396431054360364395445170493286670151201357346093758194024386896546986338063638068522159997975809679743785011707666600990328453755701077728104942167321357858959388550143314381688713485863303015752769240871951248421401035572877088615413827481137752545881926172024045905063914399245322808745686333912942588238614681152864479677618086995642149685365648364176242086536710453323909419548071951149932970805923234553455565518116217034435714054830891699525504677620034343079797841813580784330378710065258706803648568299824615052553920332918676088818736415894578903789029989674078498630386147849226296588438056250321138778561997262353753838024420299224469826765387665497057340046043330641930912803206920166509950623858306346788123801768736661881424064097366638459901747771843465598301488356309620574701940202839541268829331037625404676178371762601151604206867022431004347607606188416999354622397746688514547355019996704485963671157222338059295953886962820608998419150018503989784468635690524027534240709003582449539932144664671955824265886159233082063988439702960754994000105814667054686239177787591263092512663649133130242323204008445761995095584834862128075292781873265977780033775292515474930895769842118866994085934226661519834124694315425348602690365038630804565191959820939230469979927516084719651073764364725526070219712019084824895682588041634373184593373378444272982014409909493450275493818785230584950441331823970667016080886903612224900574220930484949159476465483905016695082693529639322031731161469953026617615287266767736469105882987246524068473490140087269187921154064853323654771586103398461084335277751322471383914877912807266825298211074796730687074611073357187941837216117267790021348756521221937665711737148651742347604429203336042070715151893768065859574947726117488934798121394431079964597924966688075875042974317509085832090984592808142668823826920413919942602801107919666887425253223126901028015351722112812235755871125312850447548983569510542184702759947514886336061027449926780892579569165333415589087683728792488604862451477345397513544325891410976763435737984939769128938660114102666211109793109067329734443765736356790501793601232123980578618227145582272613356152716543508360248488107733379358445084885058150160241721768299656065907230765227202639498172651641821787752810912257288995450070404181679895893495593362932015375486692834393531190725459464897245428347752800521807074915365206309512777866936013454982176745346809346941353032282574601427477792360094097834493034885276545155245384778642683231797400522872827343004786280265639195190358709687945306946735886719051133985822604959548964648714221204694907592672843247937654868961931682385340206209536291721090107856985096681210505080222708844201819275987692644460402136280259994051005937551138943916334133424198988042013407872035235644472232231000421085861471971463506506931738613482987275569038646866350934903118441833837176593983228779016391495229664547387536216842990192807590987604494512036467085870445471203489884785275956564698447784732621337820991282056721300674516459066543101737073973737707813682046993392710566502341542280759419077123172993444430391062377847444226368612888567302078897832860582660693857110425409887915779440262933324290790659041151649529280095123568481809436344458858636730919029121970993569357168702625537993870351586553177680438300478571575300148384892142441911342155174536440916870653637198363846171208401780824785262022388198380843578487413992450216069594064837175757522287250036100970840767255699318987688944650430522987625468858777107248714946000594088241219055357984812602691636457249346975051839476226102880388308983800542911258764416521875131887127954079646649800962615842839266736972779220216973589453585470320480780430260711067081341418733809901092799164478979955760241914860240832423401829274417781783824909502770853262465573293485020780783700510266104877435801397795311006650410788188583382501544837713982459727767828218143067180584530832128344509915708194695704833128487643719816230592821438151543555252341766414830363440433400895565610235732512187856969638131982039240847009249874100707225960121679975996454134175839592685252909240532418727802147794428362135726658645018402305682422764205151602261226941999194615914690022938298196930562181348930278237308303656339586850533822471696337059105478152796601512852230413544850292608618633428231195292562661369679708291527844040366363911767216643770330337650084974890209035149223718875984643183174196687792856050720357595753289607578760457209219599154078022061631928723256029735338438279416174808670309943436399935458341676972971803218265743997066294009328755279292778230641777144445012389187728575085353288644597253534077749795353426152105061667458963887484018610145614705700793618334307625624116324811821692367355446265129157953371508373136848002520412699422658983425445206669524074026616354391881292371442231019905667555901696937303334765688155523108832921782421107528333939476557773529794529836116157544980962944495644367850311571204317517752364998458067298987626876533795356541983024216406503891306895399771737306281161993921085718428296634934728991115968566144934758937914230593060017808347756635174706099427713795869904547656894968222030761141334018741646933252892920888919501567629132071515357567038557674382708256868483324448855193715955891397332675453805316774083602269634351028242368552523612637287326232033376108148990555668180100455685571154662905902708074106765409459485342832062290061728818385400898372233580336688617633086108708384472813867523442227695033776154397486892184239562517319621110640512303090993892383713076540919093696142810290596185243735330137217530616431759861920466238083833727112489515720430709323657606145500658725657661365346926652292563938442133285547103001810056442833940306560880844751210895470974842274061120932844530125411292468373094580592074234785831229731880660500556539880175553309697637326497316148010100654099550268998170615667278449657833349588563335292802336458074296902937516783645124639196767026232539461459966325959092372003759167283884852903994914903335698608890008000153371794487851268198093521617683993525955230053284643711808074864761051894182908463541527341731573191140915631484650025594161643948093952521643456508866936540084216808955292593326467760756316737250676612573717233336625364639115833628748856752060170303745420783375468753692594702693255037199519915493596732500779185417957331020826359263534634807561552146781044265061305336632055373080117560778925013385233849994016895688950844600744589276718482107893436399604367394331941938634746125723628117198391307303580702478498945294302271274125736602104180678949962465681480003514648915577173879774632199272603649294565117664793593780511641036139517040412310919224187382367411795645259874616472587839953316211918812179054114650807174673087783166916650464886840942345772883602544365781120340426836992554290049546684242150779154795946097296239770384799150990088402127934209977061810077267480523914256361492709906337686134004184402430596107025423577686507959673215138238436865812248503787316183619829263366969022711127352720543946648736487531650961706880725931052899547981255239257960458243884506247114706572996833310828061500277836202081108889817994097623073573828020112555733842530013781861066133393729163559161295904655416707397218620363135121705657243013377974731101650979317997637313215767583391403455924158591488548763961249341378751630878206464693693052618526675734711375600749698258506645726292954877844961017841085620093076317223302365283612548520671004457831408887035347450004812919941534778567902655286198853025025413386913832667342723728346053960409866882019939205079169681200269406329194232280592591312960452466143706241802448956615755344818342507289352251616237202771394353222863115832511875841664265331137345357496757963428611129863856380164617169497785032627678759771099729541168568138256396640017723548689479216230634015575556632057757953528994946627382027226298485880826082323903505789530244994042159247444731368074483723636748445168301596581795008200611158235510652040696136338490588583904689527385114651497671878327029022989769979273059217949915208491201763669869754235592985717627899473253491945616504693141138626588455292012044225867061065500903179659705034336566350315736140018029072300520892387468583422066296964533919256413516907793694940156708912228691030329876714638017426071705306649872319128142573437416192215585893803788622624140307924108551380421535642887218793523702100110322711564233102112665021930742160306917016597557568042999576987537961188479367783009102815711769723076175128476102115923522577687457013378338397939640562565140212906555953618348844224580955826935063339261700923749048050372892712470251760588954115870097723144239977218019759190863221659089047180016301446905585777018997602645757203075727785388818737538440634945948869474055923468755980510989916424264160691656030648693623773429213678575621651017093527305779344235265685601050747484785017701928195659925418730496886441541743495984386453097809986428867611947216867084818034913766901991944486631975425827517383507578143212150250547624085186497829543272662015236223112977683667253791316362683249909455705312938416574307608581858783697683611956455667943879923598928700206806482245700282493635042625058037231441176768876404020138113714528997305028941775337235524727161358604186990121747368386019146614741812803767401571525856389826549085477789246228006001738795353905683056622708276590538183713984222396255830123315784098401392422441148273213142592709476039091853630730220783117968117220266449777828057673553703849665714046259566383237818542331804616034747530841491624623567833238743878595472530447007622538726658217195228062515304545848096048490025724851812366547912232257629508575682560967874507168685930713011612363706726229487032008968509657344966036831866043401196212816272855642010141848480225010043231647580871190559463766471807939375977347037459047048245587159825819539248761324169325777441298066053554941095233720740493954605266753393688972352202161103750249558130145786531343526043809131766054283392898309073030711543700688735294751904744423243269279371526296322742476039843764173465965967269131629688877683870791667194605846211074695278507837190885906411029569984411110151309987914724524969316851272531120681001349525267530569741256990045433416929384830861594637982934605777669841905077982636705259959968724743307546369375900274856126775634205710680163151103096474030097122036544472764156217689105538347946358496704087728335474305758390947585718782818154820732892661623581539337195224033660489851835158773541186263560192867575235981116938749112972350810713626830073005875804926286049319147207665595284920748742401844809213620473324288654050772951876611053598080578625837078190690736166393328995821288248151375802057084554665487694944076463707602745739740830930763740548239139245645062839752269844025307733955366919829662052667390039583363795410598201131414599763951510713195655244089060225963932157028260996964807089651001269471975056312728269480439443732022274194886790398114083978332702942856150025777105954076429277985525253516718205997332423450852651684594074468092008178008511142880070358082019703652199651447904816627629108889024230253832678759197481470805710401790670525544316536475580524311216458054782031535242483050964642070592205938859479148603711410143309582870267441438453883295184104983328758825267585315972577664621155420960072077457902796783610970176386606241213245636916704567338431982438899552791589660249080292296748589067654782849959885737312808942060701544127505742549937246331533607339502265651995764980217478446232181610885954788307449547600200965977655052342022775962153440408445923551384961988777696363198349032932389587149081834908860601817841933945111219828105831948431997796050985868914713339198366948262054774966164956490766049088811900355170576216391200491331661221211168669141890337893539170418718965771719864907772971153595934098803394703763728491881141614950451518585424705122806322690332037355284077299300658066111250738413232593606652612418767253693168276495876615057132243422855882720580480246346856790619015199345446333896871326687746572187496326407536723324737456303894294773540066867043099892254336900224035169884440366263700738626419135911805004912111105598212248261740415167550225385473209880177093189303551482595862633395964182196885256256693865749282074800771367168114026520299697015383790057357027949799543385134960556059455119827501335323091917985722582811817473400920829212349893748147518191285369530939584002900145971845396655069003615919948538766778755935320165884915740593517059976635075772863785164621484165410108660066408121528227307726459960609602170738693625415194163195401362361440171136265420610544767748393284881253021677036442163748002112200819458511623488753627143365976650135206273003510744037325287223006474821132972608989150637577355362112600404568381315392341634881695702634859105257324207381287334123136331444057971944603218338470428882587369578646048695155211139315769825689180816594401472121244834282582196662772747756570915307519284059884788077908147327640871625733037604189816230584753302462042372221780620484876907057719196718908877343564142071269112306654569994721245923586411997617148073915517027073482140430697323533779021439800530175598549877916871934930343894764406328390382718484472571619266341988043600733533687930718687179625212477829915580452786663286288790293475854475064196853150926441983462346673580871828876548939336474574191679754001490772530276977448839204343283832437240251017734584297137254218925283542368063386665839465717422049549109059400602205253011853023518031188447473251409952207085626997506235509866012961523711817612512029836712170501973601862125337618857861965465735090418645798857901818367628525498995999683922181688237142509979207749886798027243257094128767632950443819686653547871007761746004704086334151116158991004006878841027734709542403531882955581296726524216929873584772150597794912386358830704177356163982445578432059235004838407195250135639888444967326523752968465348599302247075877908721433016129164310638282084752722272819922024308428169034688926446475804919829053336725899389942922264692836317390918830301265033685098113300998134876891111976110711739100370972249918936341902134406442398020846395257237031333939627604475923672078204579293741948870119321509732072260242729026016223430150380848388772542613648973228313180518032033172993035044326310155998790403785458786506877504195519197517253931232213984365738429495845239215837081007125937919330084894221017149801639482931790057071440364598855593657765541164821848119361811648716542541027290923440195337764113246566508441780960144318927017622110674335528846649988324675244932875116918561668107430201478552292358586679886571622687168833692021072484161780502572900353500932994359356972020689456326984603434746845399721592893747569133521048960568755027074697906693500305576565050494672963813131224414680107696555734655492186949174505150143117701631483391552882760780724999213856721829989762656490441917517172438819917521653816955578995577829215243334799525915205839228231963383096023087079777269117338793948613702436983907893719740931202729375453817398468560891823438262672715336390286770689436766965570533876468652935210379303934369807407935698038048661302641189242987906164946927522285745677186492001999557855148633914814030914899241738573626846886383497627343739102187024538455907052107260560423179130283426583224949675940097205180887270251166482279701772738578493345919950356020067082525317236305956990188543874343370480945532340241128068366564839992519620064194478474371338686787267914120568009231602284572166665409363482306357017856799653490018797029410740239677731066123614424016827112918684547417374740885047053602223582231313024696365236052378676399751266826283872191517093307555487245261185694189591817975419087066718345165497201561153223026780220442009195772333213221264368334963164035045780917141814860770164885358056024099885487235636088211653931152014402492396547581113149495001107479916473834609080755891541800711869839527332205011596062591442052321725031028478129635614379932470996308706439892213190015293712029787315657106367665326760066398557283980882770159474222167237813424312344387583246238779667657047426783187101727010254953146029708563987271315581825761320576826163864494051799106070736917223004715391412798137080757565669198432028884972658173058995201661765718786527047051262895178176738453736919738348960915748953249961585701467230276634562765374440511105113329512051625184727109729845929449759866092547753482383660357963531603345734212037274676432388805595131981656618905694705662798276452504515244861664942331542323612098377137656940482130356265129604532795949192713591456085363215106734915778018624536296106424300600356512634861795905323979611424230323829334858493003135955084548691318504876094464010988658511356244534034495907811557710505002898006652512021092697979438134739547274184913597203900517806140978255550413636473322641539163554940960882994586011226159163833979093607172477764970156031805772715990255299032200454394217981213545038704270859197859233840899987903328499200167142608153290701320211105377338318393216423792436819833156283109766354582021190244843712916346566364268277405726908055182755996798248916916403092778935170246774216121908417813936867021363599773712572479099392123413005659432909796186395229137133946822687937420057594469705134180450700874985210247735221940210328870147230958619226685483560860046886709384226768008837115503289005320747224731367201892466648139986057609748736392226266930459163578697440948971595416970153827529533512500546324578894755753661351386122544208023409808354032318027607260605040900198238608374072557294824030478049955158297919411094524420375228165939261221826238178950417331894646286847876362518319199003498698303763594268879693196699577416080330043377254330939539206943478752416647270331696162076985026005538055212540931025256727864505471434256825585771018142345852901845817921677869217187262226407429352252054027547108841276487306940999437341493670394962296915143050435440293532579481721491112612787936939841023874647059390435900730031597150877281751303779352492817480317421594017191269061866748933029488919214851502238124041198786923606577238698792959916011234083798697525423541548428746103507364900687688276257201510304918186811224528620672096872393218625841220526659868861485456570416406174180446368264085353654394369563893985887279189670171573195949422149364794752996242913116525332803913255088941039298502235933516888981837123216854880678760610372438417882336428572276886938005652503581831447075980223123365261695481896490103641498665667718292296137567066222110815220190020136250365950396773974589617978690931647500403679605404010446992922467814836172637286656864054684084654427249490701472566020602782413962386640389404988166711271878766174644564104468679796560034884152980042982890264691661263597112420385262985284241822470126313665694637191670340257104293755535112425317312988297843042871643244585681165840026089526553481813457389928224875477824219353584050670030764266557476403784549738117180482555400637934895852942548785298636350964126926346009331606995998747804852928240608813097095428489119888318749225383473153539403601744701141488765909541119585991898270623098114881317546004044653358637933663236660230207871135678832613551714565980636413610219969253897424083542760327462736586424315335698429454447913204902283255253970844927904145457736722025509413331291492953540066080592015898524374338281006460870344684692193574209520962718280525579490462343538265620661587699095784918012605353830831069712946183837122181729879644917396951744299851584001507251779468128275311339565065351422191463796612139632092717969038002617488160277799148066786518344569654112753431063073494628033570648828445952634235535363610459185310868699580526328031201279107153963279215739141038262471823896585050460964495707009029588058323209191464134471983140755081703448958054692893066596425277750703105596686018149494601175659176178300239278231540617625537657875112056207001226361339145402328918281301063111625360448099812355852966591521273243681313027471898562871500488522710641712092233684408940019686584690280616369427848739739957870091076151457093834870498575569863218261817428868304595823185877041204778758680747639007726235433190211096310624077670496781581947304115100845368086188816376607562087020670024677640268061822413456585222767909844150983997860232409335062636371774689983450950462598094726469936940399155425710473008693261145060851778631602737228612860969150005362083518508917584156109967666899164994143289614997859575814943265820168671342194917031962749584053492430481524344370774633171919775031624451398051197490970472339949088295618979395102719585711382953445588183863950799153660733024976317002803449615256702432096380725631366752310411996391566737216226149871760684929524925706865728653185091222320847230476073287405194113605189511687005918230975881893232221300933609633906393829476834061372278088062653811582445367848634827429278161011074114262534480003324267173978246591337654699482582099963295704007810460114784330490160120969328624702169627177456096741749036483556369362764426811192691319759715288354100458395383237091763697034055635973930158218150067932793130814676659146582460849234429830424413496883462767133348184487089371751973047055544186614763865683342834507209813335767059860005398957238193723860361389124833399325978797394750531039763762031463937814848033288101119434857125320685174172023459778964788239931122115702303739025700617182087190733553795566055740239604460633640232721191696759395390826134377133024056240880996756894053589076556605606030938801074182417302927723996606651613192341786667932389888239763749439702371116431338786820750190584522713470679305249013044874458596292073925685939275309401795533592236515701167984123463430618896190895101714243082658866810548817520285640810812912902144050853124606019855785573642672603581223239875776410320385637214414113528276321510089808846446547358169324487729053481690491060003062933032729598457167823747798305730374789243174891983545375327692777865019114551556504073504749400128588221704301116860313464943562576046385221611128903024822284245652259431165963377500373082447200615141490795431162581291521665243760971284613254436169844103972908061817279268995269736454334920907342826276781758605042841461225045126953950271334953862043957340475234534603848004839997309362156201201456979274512655774629199329988052829442046828400872531661821146348411081525949838393810492909336420415693754259190425067831693360853636137362732084446116257315778821955472770144897072662969103554735723824660294279900999638122840905462268436241050656979884200009344625114392857996976198087777216242843240981038323978819245792233189881017288136471375979493597021437559010613599193839247105938100129778853143545883485082903201566049800419308686784180503191869274937191156109444387868934452068861514964141375075613164380937953151123517072327772386051392243827490402226573397096973492397405434890953964096776203177563555284818537979401167061394124544104313532608745530632445064088749772806286499487638097009608773022842544303439727841833831235097130359328954796328810865282420799701358254888383623682638601325002928479354276105261493513422156313887603205542301760964314037346461509971501754423552353169712929286612547956078791337219233928793720860267383776988734186385542273386205596898239923763391889966385513546912586928460881130556048776881504926498208317152632814890447187930107580363570280764184216335569638879643561925932485910614123258461272912075278640442350045981636088537777944889051914384328877061557266745685239407886202715705144506966421108056801594856140430791112416045054626608116734075391148800676632070964206605033221226836309119355597212188022463485177718681358615282849470638948381824589230200907688649358175023519857403819652109287616686559374861671432185708885148511514923121584257474394578962067568424132951649513811497536547785824377191005042715064666170076226240471184637928587309058974994422282024070374757995503940322777248055706378135753747204045621790585133162131568303430641278693517453100684052313146578048814198950694137634924551427541434139007691783113764612499903479974207478433401475077571971707138360870045839765852188205028799533255387947461876964905779634036629678995301688963163535406026799382747493755139321945584775282374783053842588092082095676097862924897917206824985570713011953464303218188681841419966186590505826165032809100368327401558253519441579206487686921291505843469151694964545114801107828708352673377794830767235545799826690009117871657018036481755611799623662157688676512893549449805188271083867101296980856862105841592286217234413341278962876502615942886093562271055134560513752587440165099034156441604808400741487360676646850725759156381159639990411290678270464302250815374752926661172287100944676231690871507520538578716502092383188698563297438171155911617803722939390619130367725326367480868705773932415883824333806378062958846906504463998916981371080200588145840006495498973724525943147436809385055180398573398170160271107776609302505072398928584087206107384735709539399923068048345996785302304242802451850496772673754429783733160263199079500720432161581144514587429874426178766092028571170728945334069672624093581572298357636477380614051155272515448487946692046630699940859921601625578935401477875850982814991971619358230278550869754102919214405696384114785430927014184258451152744926813056929673991342040041329469810912311150055130714973392642640791528455642199406515237255349692359115008157802958162180346957913399774623253395448667491835652968366440485298590599584828910215142052907643607269546066082410906468213682014575198605910971155707967293388880500865087383415198206377070200936206429112992379879801118178301682783671136911813471015320099919182819683554919276206068186576019926867664008914301991760954802852344933372989444810966815440980759274835063043717265239199764164495367241079096689996882505107471068408259689721739889881438169314271849480795212057022355062826629042334311811995048493134203697817180944259690550559512084129112740434098104978067677617910151768881873840967918903434671370491479788038726024240856406648610160989113408367432414481117497364476718575976509809948281394730895477345340520026484567540028731830949196307393948347838739938502253454274852058696925847602861856434191266007799589331247696296675723754907965223624329309766625749826801446172950975664192708069694433386559786976273048082055499693331516899175013552101279272898275307040380390674870569726217478974861802639172204213224386091372998627379635686565984373835324665989710009969235865854181330307240244434402738288720974487692236695157832956576573975393416613963636498904028349956792028367738279208114776823926081567426788750669155519402553330344732558063348847482166247964434111735634506358206407971885909602749534978906367586580577964877028199542368366706104320875015193306049479984930080597682054846740176762552110623261057082005804359959066304821920879846886037529057049316821949028869525742914287890349744800912440150851979083770018807814981821246811008854230579463344816104223062676590830758672672682355970797732144710837530586573799333765373981398722493056464501872882382852251776564714075181839116756144076478759577014489668271894716962122656487984506506764887268714171860553056597934518558423390877443245222088085179851128644577013660844596428813519472278000533617043977057807305157180763133462098027879509526806793241513152850695777887427333875162440094330429435958276749010699132658665723978997335352349868802731788864258549051017788076105083310859121015469838761585228797805982312910246827803569832530438837916967860330265971335296136704430991067794588853865793065206553832149544410967927111145225788834777782418101104483054026779391245767175806677294864859745730080386610187133867159424547454906039690790237547970272832631295074687256860424114248301952494432703209808335131777123175074167562667883448567875783996325477245929550087276497672782462288246927973858480188885029903552030410329848128929783560433236997875991385555439830993584467752864450783889363912003142359616431188433361959035883547555391523215717780877986332567484269363025302018093453733532404052682080466870361673510743421679002716949174349896015398434979164194941420535777903645177478286079982828414631412401556086165109778438680202780990453197233971681544888206988795967979431582195695334152320333054921639090025975716906747256183817720505434106451913866747292078273415452307423741619173827700283406992334151423366082541847304365512112465635808484642883740803064983887739922535465104072637399602866724189635851770779820435617664762722300892326621033279171598301558467767017335268568741468965663824923451864361181787328917497417468170792347384929381585164311089935106081126090433597142865117994373245006884542133011439266300565899786280997930009383375448894167385735086702953041104544684455690692176968833002436710748578184063977584943235669805308154805092134641093530453441819811108851935115848838982323009588762555468744168806827076480238753517831105521176401989427225657777649082847848727194612096556991210877846185368459355996674679709562803339040831840890355604462823455480135141610298619544003500644471515401748300121268555624186170298821740854880331384904441845134742759047134586323649888118560048201621060820513031836476061408438531542048062820704802510765821707550227052574492097063463324750952744768236428262905685731732731179043778138000680902517152792135749203908466116416868702831771640711601469028771364126211897231809223854504053045808147213275353101276621335148267351781641636726910744016423481671014107058100174321933963521724226738829981051764452363492836890278460705305006444909186170415242416547224117030732724032999549674441650330650637407791477388877010167962332197593627492620082891765770768618117942987086740182774706143312088517062655186126446311983179008395286749379321149044045037011407784168149466913776596220701289022478044317657205469782209011274880052592133065172639474184087994059172803691934857258060595286876364799248103262376249508002520410756877372864426608091076781305215965431987693436391819757606141602925714316310646823669861387285316611020091795459338254982562423317126810052202787101657012800806565167265410342703418453085373265074163951608952747516584692758125804783133129082355315072031013479195156873041757976105840141279652146784673313294619023609053299884066904128278167207958421047918451600344139787806301026672320122240963372161453021566592679955754493615915978576349935880677043970324018324737179800317228503635576367193457625082594353550376308274492825270448930350036010797797184834122582409081119745302977013892354302924102794494570911650298508493110139957211745773025147802175600023919023051374115752900988153026352961553654902158722838769705766754715823329364205556987263484610170779457087538706515561217491101799108741975840173092606286205351469148538134317086934134017406989629552438953900289029007323900550911676460919739554488860030430007744034940108313109746929473441479018601818925244322886068780802971519053427450699692268659407922987653000312237563846064406016622751024351155258611113477070536269627190759989917566621810381449850312248786960740763642185372255209982130758578012042045973847352587536296507688009622575495766418916031017071194619767643152493335895953970360635526014712348178369753977915987307421805153316213649111887897332541068730582375443039191615816614879454648091829162494544463326183324092991499599239844596217392570490155453126562138436337031260883565471445242109675104020403803532377287844238675642323067075637429370141561227878454224791328754526175779056636286017282746359556609109617799660341520723460214165026667645634108079905067214034501320659704395510664714421082933593041968840310852112695525972917141413332948399068860428147344347956903811293973067884797096879988560874600147023455876900855451338169219302014587029055727911797250817372373930549273473560073222471167784575356751436164285111944471225110704901062875932286022364906546963735243361147330271126553827575148928679425464898742502288326437717539266598972311659266030078510088361202150677801262231767116396606113358980542715887590197791225521223894750107995996995216104377514675078173435405460273901278252362686260591649353934849395803052973880495727564330963995566469912092485786500671041898770604178678770658303407223161341509993467126808027101504834499708680428065827898250134549122139867840383436643151117178966873325407998303132069385988277564550435861372503804015192317462521662269608671631689404385453138252413231493614684970834206401511476318097218027237923876635339579273959870232511964053379709731716235514959572292485391875938761996871538825142601853835468764534321055382308174432849957112480587110697772718675162897666466972238642661952291916376569374704821846933132641784751720221074341020685451358990787961469106024220287782985682095600570585074403531906220384105070468445545921528074042942096396846910981872855377907796501402207989731339962408371441335850865953230616663096086205787780642316778533126315880307406218615632372034146279323563196693867235022682672038106464225478127430451523420070288008286572655659398393854536155212048697788647957526027034221915716274241843023116662557575787435974807456579634640824458523953642440935037881400680087295872228052895046777846080889179928472988731569315118457508189714610567747142636278970816813438068077404602612967935210110593477267864366352174266254321376816062275633179320031508865844530344059003771311876467544074952598337595868225872821239069678684406278411338960990814594183991652086022704183762818891565789557545367587495421725524952909148366664967347179235714880009689122531601653537183444063472612724970986325695178441305736284387690229258624624636330001936160653219863622796116572103528683011257225230361866102577378528887848210815934219339287520420767550097956927329362457158057829667946344612014945781388128922602504981688383341141078424870034567447129224799604543057906778999989938369545890668962691308068776481770787189390251096852767966313621044422471026589722443607460871129345793566939786183697825876498710300078756458647158945428040234334397338771481393941464229223669297580511457352663876915098987391161566559099943839879294691252453910780114664964700477182454881843676073763781492523228107739743516164366757315624423440733674383237527751885229097695675331267186312165847025498904736064890425566496108717783839631563391762960833535670659801119658557258321565433819721980878680806002475548992766210447467859212250439307129607338160028256427225152734777451142072458450873899582841444537765970902078470796290876595288481552389377563138917124131929324114202620354831101210353419042447352548754781327921943044164634395134330110061781315216308511331656058682284890705603915587545685793045131543297207870922417659672867576165624945083383967449606110033262324782073647852812841913916132679982111370074391536442793421360994309686829878195609937476868200191413783506567924473125113270652274880359391316640809430741596395240218229160270907045513844902901377652061931866395424042614734667821305278018727397612492821318869267559928568654444406076283924869022728268240659077556708928874951138921029366798181856836325721966597989770388920657708351049700582965562418789767898665810275673782740154918531715999826350256074704206418759531816972336896456142874293892107740172339000286832622330823804166793902354989261197538403506605332512899410213764910527847185108020689415423295561205609910179666378086356245513583335205950273394428760809681658664974708380274542408097106177735458680309621266354362611486333788019911963052437565205399528853168252134411552373696794645238826343201153253053816913633878582284376046718450830657859442960617147960526707561764138851899969910675342735486010674461163831216784226156642552822848757736639655664563374685194066077733080496038721413866540756124276006394579331326018931763271275308278607460980114810391276044249905846422767464964486126812512578644474800483442080183126189659851994299053718932048652529938519285509218135791527046796012436765899874183312720127637916201644846994459789539819914550607125720530615176662330754809712587979545946473028485948584022974604207331668666024523512834096357838146198955718140488908773761470198966101800673826557057059477439086731498493181119153622913159001902053129956791496852110434539745288829936849630108055442026935011998294119179680694930500805270899080339593309153737179584322838068499290902461462253102250035220649899261736402518178184972864189311264836244410170533924523304066785994751867522739591154136240895838609737683537089177338600967233702063241234556146767950020519928237504334554854115343700025478041251902883167136794352941292259268422877171633330179606508664883935314248392935941625365588227866941839382149139216465264037223666589856085588488519938707724116738160363763301570231465296100077638456699260992388922431143397420745189401785808586897032837564549771703147257489575534080559857960305210925348940101919732231292122102030531291139478963373172721668710500022521158606704520954115505301788263773357860962792677037254104361716738158342492330966636937195211599608558645782025182783403859469744322940225871178513069126738933584482438333481296921672283119635785383567387877108039657073247677960008467152860254433805951714277000459870381699394856778703304427139823920891270180158904931329770968742867111950104950215538591556227856622166369668222441860289169081298878641638107639549407715775743127135080324970768015391014285072126115598047865654607943697963541845530058339535707417662963383884239257120654310164840642374466554108675893051537875484246132823803217752453077521591258789234396387721637300522733400114659928921756931592105511536489760041476892114270068769222720143157055024231659863614214657639133751471040949753790779632761578458338805255241463787183155328076834065115457783992429375420719697892171763314434058238056425693302926791331371066739874805805461736589173941483474847956353038133459624193539485597801800729706427648682349616799317168050442071132066435273171408317706678913094410246921335053878591107500390970683835857041299219702314297536518666537727048893053516801801559203532905358094565354277247478746138673345421888000476795218405840805821920509565810157311689791196968006165375553529943532317017514948830655937764579229598629718171075849127519239702152452688384998589578485206857330964646127363813983326045160043307927148783609499690298006769107621821217137440156791646985152287419286790271532575040003874200629982352667279162788324965104311385277907135432814604099764449290590310530902786125120157787159892427611260777931815411673913869370975324060921162480884191814778290369599907331234305987341271354018830555333692880983446217561439652861401317981093731489255543854403658792250787643591910805260900482339487794065429364513053032785452472668375216908870677753660293158864868264167518992552426562612817585706788656302840390605402513908464106363009214534703766443478970866750480754508900041606503336300804239324077797037086499030185006917718899147574233870251545637782227490943274740306333132791014134318275519684086187953100792038523707094205356062617918746417107753998385926655753375144626785906126417594650641782208166672567320185301559446153067245362046255166546452354776741871273327643372038597114191666168891302681589015796304689635121509889323230959412643122160619738039033637146731020792600810718563875000982766302421329241022744935714343306260227770236783955905294151267090459528170712781004109185681515634931708393315884120833668224118304133405405040184960627285174305832213004410892894319305694352794620092545893433933425416221076959606550202742025253757239694966393518003697251413895507585812993076556536865775293854138892673883999102302526579560606132480914265004468875305189392169469558588892656843155336030409522676487471572683374666855663220301515490002178236660846076714451841335519826528087711463295590437107130157645638108410165548688314820784145026837306732622838392483585949645984288795399352297199252719799779001788570540060703643011690004572978488505078294382061311009779085243436616652709054593817340253434337616383252062333187874596655370603322170170917523954474915750291285314486982276864050150612210370596433962050524378871798809443964795738592487142868495186182361891983545933739517338652246251902005252519917247793573259647976112668102417048166954204447229582031501348437287913156758094701768504347232921969874179819942722202949451373452873437419047748788475894758114555939087175134654094443270395220187796582542656441248282039565725071319884163797213720975931025505237338323333787676793014026165559715352761379720117038822693135730124122776399834552886626295739082699973763615497717022483765581286036897193644503833933445867366233424801964162554743535240409636219630482164438907487124777618299982269682994715382343414498698792502574692427145322390540510831781679823950155838711710136258983523130605160939943365410189638867473108953656658460778603077704567611016564840693801101307850176277059938614722267328410080492389080137472611016768150956295262701062871088276703687265924597181483257879036351294931262215669245999422844026877412331007751604590289685706347831825162460088764022905279584260300311760362625427785158188962273777505779790067686831562063651463015232718914199207029675745980346961575671596249576981637530168365976607746634147640223663970064249907222428487460582489670095110104312893381922580629607124772561660701792390213068652885937289882495390884420858127349117424992159306087146355047880087946882455831687558924795919562802993604441549370937042881875037701539234399222854758550794150132228493426062430540059740141723622194089786642136960392856042671253456949672854964644353981245933262146082392440699327721105696816103211920864951818118768304146142421632161797005616769103902548727450544096362305043965556586130397564012550353088158358853108561379525290614176371009350931067266051268981181071532293219525469197615517103934134146641495775484025121340348073811889380821001300568331624031733569144463521879710847968651269930101682572603264122037036244436371528969890258721924194068187702515857373600905283149740993511691978224045527897250847139787571592684675952513936875421041226331686836784144660359658815598521958625481529130861428864018608451253108287697748055394328329917192397945047725534486978659053699786215656759912348220183071053323200143007474117354896161238911868658443877463216100260154063979168889336461285062549216443122008809063629616031433945999715550629168543886313403994589635767597172144102576039753031704300970422095726761268808384604104649171382354454323060439220520227561341640373417035581788942753793185092856524753414896845112065244235372724198370689002790009446703692445581777127408317406395319929023226390784554418511517989444258079935820535688103888915421944453972710569245085962363733472273134120860021407888731577773030309973803405904038512557907922211890367784880638193597218780132144463246294249298357329228403897788397342480987402393999752013163252167474299096716665367367117146790177711011409814217429486970489463596164688614648541644749299770698870844530294735972699051152306474607898802836703337169012927185098899114183791227968578527015512490859305107530786814181604771848202808309635840878708951612999953482167963578527951800871142888695718998589807463507033769126170726312824529712325729224832733974434646162690358402106796696302322681927218850951369209198816733439070835236555447602066734359163822179351976857352225616708280848944618241844583709349130818706641540887356160310188937267361132857618108336329450808446342937767470086717837741199568393565183772231148205673676827760522758257074026457065019083216308677492502102485520780519049783040951066590524407561556333599611753811724641344833435951826488841411103229533012412523410899347089326987919421998967563253989412967628536014345233744940746401483648593346735882661269555139342953255677774428534675163653354380883104347533068615522303132711289798772811980072363165682145973349854917420626563498644967242766219062142255011126204346303054451931027344054059752445429912897925742601989120996908540866089758072393516695426064843456363676404613734434330083562565016960980378059111296139248897818621279290970541289298234120914992935869553882659508448522885159588759409730745251340482563094081267114637282249322618379126583199588182280692328295996680291277006559074424128622135686883928475190517323099600216977702543876156412705835531861390804411756456099674325813482508337828782644523964135536095117082648429618101314054510904026528373246171994707983484193654404633885640516749704924307937850813413671142901692579157634969555419206199742238565174859454830837003044092966972313581284809141162101665984570791749902380279240730289854704010492646237579777386675354469148657578262058043478147972749097043151747752764519457490794458491417177046155714889162946226585764658528780536260539584749268200602020399319224436714621670801420361517575719972827097447365750511955207360510782154910295655043167518171104285313757619142868759843402649282386349891728676686351023468285339408591144335049461566749429191021812324549157769830560958948605636087477743696490390506419300199818502391423963122629304988629082230257241887600749375748417079199217830456564101038397838556340019510730742372921319257632786151512580956847191158505813056622089214479119454918563549569962162854967909081788996037089261623395187936853346437332082876443421564880496209012596190810198133603263877194419228290713211675983459878268887943240084953170252288888215457143927532696899097403017814260989764975543953117508805566421939253338287364676419174467192100144336180838436442351340440226581568534935687690689938011618439513934404048767198222769723514199898416435192005608653384876615865248348443616317293648365277595423665056650279451375495035198223202703973130428011129740722843803742344118984422941015099271299815471878179886702036122601176020289639673951922934059973337534439504013768073011012361310447926362560999310665419221850173905891425173190647619732033047452475894127111455529007983365737336860117717870091938180751626411829910597879710203474034774983582296405584199478702999771006256920076839925553199752919947110540927555032820014257638477791147798024586878384780868308814442759997393705279261382992771025132902318953164194368231326006071672086651346845455348921789936496492464353943241873554758614842545494059809400679842024251737250647394450349265627624223204085819412993397252541914285397561568799576731624960778193617051863709594447767511558865992795549461924197863578292097242841134407554689084277944494464237107932522235782198193739461514654626368179394320061170324888866795359911887073958385403378507278537495011720898731852903917114387262645851790615937021193270500882033434206949204230450552101393345853485914539091398425723919725022098243681552464755976114262589578610367498878952226740914626506194234478797763046236417513863943678414188889517739123211670437188229196301080504848847277534316901797510775782388100044806926285480928039212987637965919953926785834906875480920326021719435569117969853946654731112258078927292957603126503906731623724172128679025776560273026911921557564050298540834873736755723893836886764999360054926884851227800640400276944703504874806046666158697416432307539593058113720962886919829711284238035707082113465127855390252698873910857939135653997982934260031527596153884908753095400404158686333204130162187041739776769995891216041130339081257831296987106986325930564070117025584488963724818146847194275710272825885347682067513762333251207887671501155591050401298387882711132868693016875595602008375329004106457616753098126071490576335760623407558626501458205903969326177825824887953648894994805769504785008255503718819807632973824503687077914146866390204640098684345290819892715956530274189997929269466164132586310985461794459408572412302559464446813856685226487686476354268286997539824725660696135458731724176569366449529023396174914649669607389409982112047783698815341834160799567533924234512547272011428267820828953267788220599262359915739880271322095045786765429103036754125997241447352676352026174966593144685008072074527203585599004449185793575574783146962709921835047207634709534558551490563154784815597387421254911570774553133243936692653749371137021511618990042979043890815259643074625581188491699344038668539061146908736781699866134148906343190969654161191004476629688570906856840992154406413505304927984344313221554406499727378582315972885735240012344071851258713471849925423318052153914526086524334987691042556937600587618413074239671821796771223371062626772833799647263244942325054610813286424962155138461771598287079896583562174329754626113760610100944911689075412949482162627669113252780032010804432311208152845531655926698434128746464795468648328050446843441301242166093903744771988972974698049451187032352922493969351386619523886893082932241906613803951128748666707435117194704564303282620972484581752595349519292258820574067704514877876110443366538440265371935124289504187458705854246871096535622921341851750889388808012736313726800718385992394782940638126384521525421086867879243343270426749470927749486232582654759506595460612793249909111127100101317470345328209079602906683746288896287031440345735996827947371893998785531263237178080656878242130429439231518291479501437261919594815162603462012911649311978621864518416464768452685674987859778833332668079448241967416076103809542461281792181878909352563816030447240436511544537024791688161737399736464964901903868707910195465732159597954044485685616372490111869977805248935475075383883061717296939501290773797341699071942592243535777423363785814488428577734964662710993728819521524280784098475128743478375973228686869617009132939931169260726524538914013551124104709958834039599085629488339023571450073987310153996370976085064138471631187650436702563814584649749055532953450735688379714269353279605277269780665777205468849768587168585989652149197507452808517065683102749611802819999136966167534176889031621057236109160802057386247544116574653698754891359592322217265130444610485448392075749302073625425445995966499966136153687926459343509043834375989601872783297050378924640317405215445924759256521229040822580404868445964025008548556688855567050643508656454944449265002021711577279019665012184338435021183164848540076064321656520141195630775809220804170226939785986452868867159311430372283252005204575820155469833719476540366572742292229891476082103135049809573631610648204455547253908443146308339669197010752522262055027980481605764980824983314981936994967720076554988861371925567503645784093458451690912267000905802588633670760227150967449787827166068415528722621053316032593403179988840806933358912457932572175373754546036874234837642878859885334682007393897367713508083427960240557723163237123360855442841271646792639178464334393555170085168724680624623565608151196190745878080973063325390397439458933914329235334358690065467573862077823880049015270060642196435875107482861043612486964900213142037022404742654168698739045067981909652658713236691906146027086731536643493939792649022912168151562410457915362918787169808449381480938965967583212221781960534281171187328781863265011493051490989160601829523951538499218635469956660739923190701202383950091341370547510207044833541626600483179293206559824044181485686460434356264530900111818838497021390665699079654272065574793062388749520749563549702494383907809105151868092223780116485365112502126985669110743346163109599255872853608046584524338964372318844557166667827608446971737725832799142593310010171499866791889971684896229144730680505037600640246658573347845964610943598312266266145518416216300065202565908031237732657097952957417402725993164018777530648768774850357520482598695822836990401449220741327657015742475482263169857828900841584007476382581844451227818828055331212262855959550337611125693310693807804145383708781904310676072064945068909424136614670585355429058112115536983173864205723580156801299756106723394965109718454233879771560966268370606550232461902819952274387360747486079748435129419258056743792249007945565495601518954773211629572832801799328250240275308979868823996373223779725744317740476103369179240092421776900053267610694536882328080444974613983318644708113869034374554562500289592336766809302488882086602551530794067598306235282967490689255040424218395171889123526158075817121629081289549523183720925774082817157834215302925999299322841749221756312326533578070005730069452058850202600617469503312702760808157121944022566775084092519923666533175150703513475195865336253480422959754114065303108210918460696308885230804696414425020443593305462662989481639453550296088782413585612099291180578922400477756240243165887811187020619132990342065573709461553828110396214560370100926124868202913870233683745822556235228902191565430684734456393016297005242021751718689885663457494528116101148809786912856951585637899317176562569049840113772813331630046464506719290827348918656491014310345288823650944300437336573862466079995430632713680091608216261069572646876646893426357737725687754902479043937991899736290967760094118187089439060979514360035262966130402035597209320138586110214309927623325158127541158434228749575987450085547926600652466546703692142662837518096187876788477984870373943971275175895207070007163362053828883711787390556740146117600311799705749872721969193701065725402008016077163735249772110177386286805647806442036998077068037318549631402176909054385934459353553085641384173108056560786723049310002625128392408979722444952037245568941850296809473287804832994844865729356279964646114994114396497312480905345214458327502279289420061389311750345187709245137522925448392805678605829808167383105756361094469367852765764402325855749790600030549103381434133602002927736017865432531740745036244542522666781804559190191483825979751776513899380734882810332203193039723942519747072191398490647789038279481440783141133801519639226005818034826726962739803545596966946315772445535142375340713577115658780050086234187107048546072936439672294303740777076994385328437627123423704569523061903393685177963844575560027007573971124253277690074055691350276643554877387198380153648576719255686244268485304723409298392129176528699149887950045586003578024039954171345527481208901227591296485936167878012714509884988975481015489042533102466820988519948711829173638491884856297585293645473435572401044927573771237424915420954599139810060457313948945662716702151803496040973186640831636005743180154010055867052989413869525917459375097715863734416246494011901799489873758395019325821282747809789387073008547603902622783507677595300681311137856938310472536874061940720380855519379229308193234720811616244356008414691443563977579080646666946313102732415066196244255354273029899709161153394978916063721235232034369430911671788742217362934039800482502132663525710441338187038924519588851951035848236612365961286514412186809426714986780440215244169406592033858351926130524137131977444985326317870272412379187380249702122529612590686365677698320620552774558226496791790932639482341627050164739858741362387327410003430010378353240797924723052165639503406858702091376624035610911936983223201602453624049228792520438981302040402313465632339874764106742969206323485353839408691417336691056568878476269900754534987032052745919140967230322304211817570997700562522605925222088189989251589353882700400502954516957429584492786254784937412359877279118357939557661198850832919538152754995926741252660356827357377070507036462185927027802796484179931804479872637313994364102108451458170335267576990550597571354641948285768437552582441926444912113255148075784957456545593686455728429219472370229389910901251881981588608473435144156260677274104648936939878985470883037488717769808166630888225065207221982654843489782507308294289312276208048492995579993207133105045675955247565690710225589334053969083003884009939141823740598265305719288475011658337507558406501062990991120167446235172253165840692012804857050208479389272905752009024952971995076987581585137837420339584003006871836821111839468929900626890519312697385482280378442658744351879765384798149755486212788703526297361149299899362563992948147810632286033777028809996194118795848555290318007583198421841912819618711308473890455051290396145499329182146544205885941597721883239350660560016022696467167916683900912070001648982645233328276443771411505933128779547767689648357021433965908996866070681847831297906124168075309930753830591007566588465229846824351369587518207253193579027588398213052343386658484299669345772390453059570317207639280308229565140286028787498238528358531993491865724291257396213283487367025625686689161863670162916421831204603473135024425162246044082689343487717923263421522731560842929051732467157902192535129676939267434297815813966462134873304479531020104588599750991519417068981716403531353430149464724506868346126622086985891858417752275929053390587418972986647984542650759779244292611822941758873219319689576931183930278572041487922637104408805969332751565445403417577065501885762819407689252195950611850976508483848515618572893251117134052975540226170193552277457096527678559543547056770816957898832664474291486237325516317328846945874963791040755297138382731463149469600525568923501240794135784824839716760406736929256469673067533165795605934787168608670722601311442381469339772256063592484064064738679368801225410592286345369504326785101812176063019550581187373718571681363879860174030496001733112602108540637281576515953256746152747844532237681638888420991063956894165658300678958156070239675668428447303222468615565740073895434151502083540553771783630712431220333226479205166449696530240152877602901051663007902650755294826453154087866277895457001310426359373841145221791970777361579795383126626776028364719696348408878149790616563880768594199525693839320327157459581576387822806417337521559210196261037840107628218689681060956846792434917639261532306679296607674755038138881707659577964312267103309631477228607161124763320350522187435829755396598991615295490404561647373248565004939772643996917715881516431996702876678598848401766763776009526477792561878165974361880775652576871450385280681398123718302375782765525193278048006157501400271266069968218641458025297323271829194964527534472166291409848794399324999297481331409071524729634546047126212780234465026691917191406393205771488540072696399274155476683705887023927916037570160317832586667343015652590569266646487238296571706842409234967974895259768097880211124060328012859862812811427343596862885121681711686560181306694790809982883162442157986774622954168370350991117532378631418103704579824212048643570662872732380756199368574245134967804471316153717238057876678858797800935413924744662799081842910482464935293379936638781089572424920720742794776307216032168544438904019580954662473240275701613527508126666284353473094229942941942452287220287372982167798059687987121154374182881109859563605315907448693189497646688089264987165773708394560204178036576048388029748682143905482241012484395304929243227779865312285950149745801307967005930488669515868292433294365267147359795837106586277349894868998527414411957895091865389814718137140405651854469586915556506961486895301551225788112823463641101676995808818020917549100986927374356378711886360413061766034225975956777949366608677450469288755443314292086355020287769423340671394075588527038359153375516809492247123602083373944379021766723940682270772390066925391416246367931884136762284363501818099965504611144795780648579113579281606969817616534949744832544049458397837568607901453685229555591112174945211140442377166828345760082438647285073762472398797985330744374256359895016475318279953427392544468107478743729018174105986155846338214276377829090454443035255068998029837424405984927516949293548568564077741247693837513960940960285259740955232409482362490283839570824174235278763730477499333102764829101266199808576874739682340250794266520675722930901883911012023665832238204723898512563517324959569655528967505537394238312437526449696769116687407787136325414715504020776170231614500073499647188549400412342996729460621545162732157844173465263069166997331527052200867220773178673732378416537905139540371470772317602359688232054643317201389349099429264579962030000431192694771025687615737715811191776104294064690007917364139285267813442243120403971760309295572998496113272634268546682513297213602237286646181931463307408243343595465834497001708938894732498779895959074807226638980287486407527469187518305020328852412335620384723978687342882116350694673459870864611185502751617009183561676935015834014600119657005553264225865328198013430761898036229256443190797466217741496330325448227359218042188732960054046345835474601870127729952249637016169751452696171101419843496235367432975552552905273890639478913246300723277233041770412879012158963404558595170827926835534905672229865663087938805128332070053105791308990905542158488490729118604423753922056943552757968086604181876580263797966556610246018231734584142676332402886972596054608004455870024733588353176069446972750217982454829124680763433985270928838306106865800232117884090586427290240288495280710864795568875362653659159317365531554006559462412175531044947536511544374972377169033084596705341123654306154417139126245494417550165822156211100800154268977472537908641431455596865577074062263217852952108843171075917213896622011596182101881289136470423496750990764627317767133730906097602643518916666197519969247650501695045403054619089376493053651709122937318084455545258632985104582962042952736595813869526165276210380886987298253740487751739747183369086719911046670980537399032633769631407871545207534828898253377760325585986110564878492843458617220690661209388360685687957143796012197896175333684381068286345690774049104602705164319781171175213655861907883059003882729667648531964786049963251087949251591140249125274152382595226209934699327559953857728329912817418475206201272246788854871002908683608095580004724716288539312936512664687752908439767675407536101185663329364823471620374968967113615186630776799488323425612320801721537105099355177189962145226389201791987766219248904983335414020710858534324744917642691851590052978598142334192690437810689130652640965142601203343557778440615586950477627797092246335506210374586514382165268450706232631549357000963881616894368947356241781659306836174248583069154912758220381346539972972227618643286807048629589980862165379301260915166262718304067404746876545104761506306507559822134219531565649159520832283313310604314695144861904704419573011436564776094416704675498353758164036109297294161928928397211350050069275890195983120525153891571346894513503447613476306290979324053268079595233451228186893322026136803852514616173883584397169625520729462045411404587128005712515480932768178215868394205665109861399967489767762813103442342785827495440315962169461413061090997418707297651243661568121067573576072510940408965568498192233891415671219867360745116224531936029423155349661858922757647890478628770636843516618671292285113118751008549028729965663448478596663070325623021535897816875326378099224429173618914133534790248071585034962949622029173659991695222235378732724988072569680017355846637888951803525508354368441483132053641889848428008262940377227523209308767351978279001051148761267374850572878414578762217071618780745059977745078717101166055682811850731966999633398653679699887730912505265147377458471862987641752009175239157425840128635469230868709305133162394814009257077181726792023730298598544503884685490488231667644543955343223576359637485061453698811540999447907261245084731662058573044931390925615536276766307386973028900330847456947002462865081584995074197427429407543479910520124217274845554837676998297780706519456850383883602709939265591113056145439155742259892011312901802722276071826344373210982718672165347733107343156290805233669948455997014773563286950841851909190372398025848103824826847881546757815131063701972716957739675707303066215659544552497637466413037210422509002067667224143711386431259404845653097484077187537419967026404296299962419277200444400356044096004058645051236292068610163701159432348578475627599019116710244114546336348209514692955884504449767007163034151816566430657862194319230600277703077113507752698041216006895836570356446470246503141892401482742811216995244523978660867497385725879862018951461977097867508322290358458310847740709936275421902404503794084249268662469356926170556533358306216244192386978607882706879463385038480565546365636807787884321994026901322720938451928461220691457956944235839353284219714976873598150246267074155146204979602489316677517071517911030821383680888008055214247920441391553624533612950177824379578437954599687165817136866120431649811842638663310556819339185565321012980141585115313415989093979990623689016066522706194755638418907854921414916330808548242310544719367560593797681153436637992788550103708235538040337658008327663689081873645227565367063704312155220165745190530209075238201071502134238722944166962386583607137431153733928005243065123090866657327527160136366964849407780956652479243186016194653885520118635806332047714631569118120179878086663548120785991036794945024633579783833207296679384389658599327164974206139950374998666322000893207805855491649218303035845422439023008088625270607525483230932692782762777497182776771396415643931921516150830586654700806168134574976757801660404023874074896277855360020116942749670132816201312786362877871695250418143543630860471202737609394482303677994485113164427710761435997228760002912623947778609393018966812343988161000407917540803637227036800179812349534553635361950068233006100888974386601163662009978808899159093929475585527235256451635050224958197586174492906932037246438393781947773921708582750492843848177935724145867201303301805503978856488277503955466882959651648101858445189483715643276965830914070358773627408493131289045209087706572069364658982447070611706990096818596061330972488670972189200129305969278249182514348930371145947322204390963437900708247737723977076111809277648524930552380048374889563880449778244200983855787484914584487152444762558821696459329602396884055505308485330636105097663274639518937586248446151180597971439384920232210605510843843797609380718425862389750122437608279621530913413231846295605103480109967054364361561806591877167785190840547572949065031974261636617519887250634388831920393458417657956579023427980494342980449459420012384947090957566831036260755994618203824768837926029030920668309058926222557974436741590076579873050306620795622772277708003878317889189575499743530217138568687566213356873975783063858818542558723555057459575152079292656402865159994366515393353948982791321237261632298560102009880489534384940504430769560661072722790985686404061944240330670800048622213341983413100240629334224002320038526564087831536384265550267910344943858051560068020336245033280480461994871397136012744419533872240062410526118536081051748860650371177913820639677896768302029572425646326347982279608026528946657715182890832969558494096259693344366286851982889404035218700656007833544805219964829987957542218158502664194449164630300534656065844276226169321547372075900770949486443569135811750631308368410248454781322196289142517064657663965619683466498839744398112275873376673616301390029122483833197095965940891509822136234009670148361641979767454040212325026194444410669484847734145418758942516278300446102761002092658967212784724205420328244931385856519009621795281747178238200850485750781602159916171818489548696927695133918694241947066837985046937678791039635591931360015802880461299166587590394128798757372367627587486363992258296158190922054687591698703624224063691082355127217208006956898035925020853692658140482585986880740184566831455365101073868551542525504054595098027967789313796816109542948853606266470763859547396363010201000951364729673229016989055154992671882773105242508907309817232293854236591313331429057588932966653119276179933286834355758954637647887076467390786334881420539432659918185588504014726138890850545224554003087664766246042406107683292026316690031365752982824321753434560622336026032882347052345287522150775676778616352304740996301607787883824533854195622949918899243819843223309624955787778983976904808036923098264668299604104095608461878859465802590990007935588418360062652130668405452753891815474267820717688880023315261437507438790287276786096529603049341839086074436918890079346842088694856362968303563046037196219907914947710719070393243918441861981133285648981675969991948345318295362450496564652948406088562059166768181924904234736025584937382950268439683797091343209234748908152418265301994043888703615814074763091312741875739983858125455268560004997014575379093633592495456880007501892833367053107020855075798671015156244039105165433322433062166762041633049280699726693324100978802162950813300040038710421337546823641977763881100999739217526104453190317589703894895004462430285896042006978977471997070316046712341735468423811601504337792110956014988575182108361475363404582237147633411099914207584151699991708970423573467540542468240846252992469587983633012077438813794516124250612008036905679054583907203928174415388913981747791340647723239594384439236733325269630202823018387813339208993634702030122704809207202261043980770774441271767559348043368077494956865792381265735789393489446379044785873248741933483379596730910329697279790845623934025678826818588775980939168496599753455717424286153214068482087647671890706405555606916827887185069812919635521593190154547680653456006053689768535340101897929897856854517254941957042904513429287576776532106124391442106304015556931770532286746136270030126133744384072357335879731590215616771112282244560681474629223965605121888864842940031154210099433239941070632496688117493061930869862426132240154059746634361230474801876185456803478903329378729299406728231253130756806666469401933110167232903524877331605124392904441762830583636700207020799806543393494960789972993531920651415985676072406038317045293355947814750698736942294276931175021393470791548893996789518852147793495427369996506504682485487781821678872547899447947959586651571255378489712792377356138236370753559509307930993959074410686742334842543964303914442792259325356404236375719972350771219045651212932185072962665342530820186367644952073304995737768749539884656244202674659811953875549300811860502521536442166007419323175736524144217566648041950372378255646626760627818617556475655573801424802648884319067219227835864917180435682827485725005154246292086574894410026288959567673623417743513748260187539125669073415022801318569016177504326734333296764263610136136478973388388015388643877167449459225385312935838129042188560517293441869700422409759095367447321304133543220225874901592527101916445711633632560616913451238049030919450838931895400302596311554358505524054578533690361218157213409144308542408870126248180408058598801842915851905772120066306378913992884036537970629889206624068172888407454847682944833973174583895790405786786242189782987175144617731418513387463235684830029463659917933600095353017153183382039463618347541616497185064332370710679814026287731170570956399816369147044112150401643795039970107398385287912100842389309938132545043009181397505020775514931255741873514965280164215926694613574354195919780199772773951315153972495481215306576329123691929555365206772076001498689816379632218114944797118818354945169082812839431790127925027850748208163335242611482343853807714590371301727596086423029422648071651312148059225583355018807409388645377124441192873406346854798610348971962849558949202027808383275896388795564082260953922172774125749922103604934791471998589017416143310424507880122872519069923067383237569772853045892077549054614700475160725868626161818714900939058467823341380823269079030037889736228712393415084806969181512065898430346086727576162304086348367777630987994470653988000839052600692436185804276141196307556305950784697893058265063458628003258252771689614543124640664480644550953794322366906608839504531302474644010020385108459883899200512196737434620672204542342351896209881766788018991114159366889691710955783675204230821248666027857466113042992315686999459570756311438626895412848843910740112999108479077989139453462903324210826090150929638620714219194597160913670518743637869302756540124857312926553955574450175143402690996798744460293732770626434375547142482066610173548746007492754010134391928835687534509225090318263708736333670682726065529832600777220109707457872935452807150464269164772552765506687490586993828027421254977528111104707203170772502343380114789348757559348799194525924737646805195342844151359014986752762296093314744012792570093394920227427022422589276260340164261613393868737440008063620912968806908286049812899776837534146584551087181699769267958137279604065737008791181220088501191543552255906174850312277724219188314851980202271934807836801702237894356840513747743508200980819304128137624730195044138610760047493520193882459572655989272917428651707516765057682957371112448829803793101680933692532287714308212604889399086163240499560236287663943610788006512085505624337897468933340225213521421441665926594326283554543823380814345075060554415332360592495275106132416123795195087604453175637614740790019048313360337433779678523279938109842396435526410929778574841736017545974015180108507636396240487905975639547470867977842684257738008241549894547171685641813434364335339741760155241589255830500989730888205149176077160664506462250031016875291192983012022466698652870325197465090400903435653777428955249094322485368659159804343440776806038980781557128655482681742477899011293651165842788405461666460450144143487011833167632238722512543649219627242239337617734359886859476712029468828695799864502615103319748066864081883904446898788813213495954356395811220509370464433223401186513701974290637398706912478164938791648896311440509716311812717130115753794733461328406417950441232174783173339041289825417408049008153512098101580276978686261139452178116190174836813989026870987426269089829838082372075050608792898675682301853629706167216496055524187196595295875184855958494640800248953401159501539913126509008102777346546966760939705099145389538148866342203402896806518546851051994611051492651998982639281980424803556384180750558231263904707599702991355256555851908661144514059265598283303049612659233319257817190419852573096626807488087015188246312914357535009960599251855093851152433694985059394472600007063907676051111607122630761963842240888824176679696657144504444213079011103577246334502407951426478454762226759675471754754234888275391070418681109180003522959749860821141321945343841076954243669921134364426142875007926345883959706436417829959804247022301177880459488937005792444284244348693782713294322339406791244873127614857487578564022558867271529396209552671761719628313258663151840540212984977038671348830653110853980018060711253587364687303630004200400178954072438605858431499921813684539773991608304400344258059730263981427159831114084882286592107526032266395569077685682880457246484745953281907352240261792739255588901915467893770653817073607240750528729554938250277329388825784985713097104834640421994549206525760075618002377913614439191630135874576350206094646748143805083324665384183282404566535725044738907199046436940864085644171704664281456438464570803040587248942066298105123121761374203385210930539174741512196347957119908904303911652933772903749410996480563026039195906002291772025640076767394366406383031629733496168467089849977924266635992827569762192752691152355686831881678556462913057168034509336415479383608017008209176050757030780426828151348725731498238139124338755339430790499707913338618212364961805027411730810978802610421946147244876142641726676069968796753702972735237606534113872900941154946937314739894471826756729041977858665283772148921874257302269110916481745440837282658752810348642974300257942848594681011732446403112445147006029259466776183927398551980316847434204292004667375163227145515781243998733137119920593863555480307005207098523272993521024479393750014797392037982579595240120545214765029538755949193222943674208438031265407122133970348107881523049244436314173781074867372593771973142832634571885831774739335853095011376435247530702251577077936015649722524924051238678374439162464122048423848819372552247528005361163368474511734201270831096041420264137900196760445945303209437859554598777760644684051687360539964809074311737198780338011660571848779869566977950843956486751809249474287436626404976897298995348521544046132182321322602374273920824874720890516846122923687131273652735426189693468302902489610318515319696721134163085619136458423453560725756630509814148890790655597205444925536007023604520427564850212489581201483792792155729494373994016087828717583419054620917613567892510336092706804385861396967239326960536624483599841112800813510145863267233617058646457082986414024586080593275252677975069891034841944741435083972971042223473047146356748839434197487958253986537684125623700597886924150133463109023508260568429480944146654500551352211748176692430716270255781521804735488726086510781080538941279103081707360668743021060521143624456298435142057961706826976421488620111538060019740861929524351028147381970572453109255505057597090978763575953347858063026599699025449202692140273344478487141714076623145564076535510714882689444173807056970787433593970335820769868666698626832841730764070341861278771823656721759560612246847019739519385602330042708673742537096839448734838645904562880163919919476297554408301888679066457127076135053840108375668356688283709019756878561475616968225432064979262646547371524559357153863023294207976065480160567928574058240693139311218304719399166664853586178599613910376163920990387485761948597731219385391170985569005942473720269382832375019684925008841806416829800742663066525358765866834933140058317274360670698968347117902210736811241316441753036714964894295520525024301318505778267796590733370214844042441288232398769759875800465190302494820046083915703283023088897595040729989554918890420374309332145358233319345446735537090105857857761051506706360745158866217604481882386181847820747708168906279889731123567291405245293017472121727328040547360604342229556325743969441060238632374814083232933611666163193466123565547694165248465701393767082192713159605132043298801378765890170221294300982340580453905514455020937107853371892481147970207332934719729717268364626882246495569648342204190636411431721226872839015127353233480949491056993819870962368606244167133148202416972373111243156280313601451940260555875716321956011902728853640583315788235075925079763095015810569705209047776679211870407361679501106059299599635496864750890969757524430127064442119390900101222537973684736678220838436937508964772216836703858273148167824762224960861749211828636481049295538440933043137080517886393272698059196225821091537548036734893147307655772574252101099728332647901157608255619483487695837274541920317839491916169776787895247582025472171108521722056720192288170776584473943796595935251760226928410925347395234151385042863235618440570750909329165722362933189090625978735566049178179098672653758526259636597172440501737561287036732189096579617127659569528963177205624511386848089517724856427247403832066773605931333808275905648953477632535638966834270423841545445014530638771730129163360840894943372076918862233642166285694628095415424015664542009838042505704975412328259816653329596586459363058656171128421051212970709202541784185488186456576548244006443818185350657121328634356140972364613770138585018218095408073297866387198064378462558967919560404319039590486691589961561710089164052305474626493534066054759256263978356727615900032064091170280773618870411678010442637356364080319687189274565723522795465033444561723387129463673045899056715971901536473039231842516517968799971521857650423665322253198213799573551798274940922771089981317311077652790965520240758093150132664735184311038582102371495518695801421806952633575257263366420477847165940424771644772529658296679066537794088480044351411737285760371734516252546890259255049305130040351864052792362603318585177887927693396578841020664931874232494714597874910366781801930584821503657624243744500346165629885046819486371022329495955654975222809609112484009297150698653550985541850976275312949957974974951192092255896788688831543698213395021032460296191112347435306623939369100054405558929488563650730025349211952186482177406704729674591755239404957775731561375068880364916681253142185860436756657364755291331834943929096332755645780910349830561254317720404572682912722994422501389362995399331011670951139650687483922653609307331100078940404188023905083633753027410293854997164369675465397781095174702278501431120085430999450533330226520745659668471367231143268483889245622592054466327264959252977629362043368348223116791386859428724507169052223329428515461097274652886442783524774450093541360730525782005830949493210818139540229896322307694022650870236505560516553964508131430834610240410787094898629546734027694823798553775074339685899276112456620468695201957966684408731537870545707043298137943256989764692421260759398341842480435615323676184835427002028182413920119666512936810903549650382095866076239712331831919070911807815389152461954822717538775351574063223497374360800415441775590736242231938753688884778760742003736594472442758530408794187324102941207671100885266824305978846576331849136231205349771555161648496652198731718159261389934755081288928191529030026872929672022773818706491508345051912558441795421265958869584502611951810018580984226085801725457162413766692981965443482113285834778167421109025793072579304411529778232086329590388277555647164527332188274453484321062607667826991970722924710996311982784144773917580933484111707782222444859512298109214233701038684078974820017317579651721664175377965978117742691474186333285072278094989759272409838040558007929268895090559238978729493304912803528292724945420874406569142414966815442039584559155213918329649990308657500636869484005646916113888404575690274023234351759529127898253232680517554654277895429669165271827535330435727673213730468577036693466940325484129814456627336720079256466741893110120095272259740243640138972243559749989752485849571239886175716826305142762603555840910098449024376629693322520260108937423642484592005139964299552366976088695499461724731273604653480198644850475355671221435340106785691989779942942598698760563790876855395435920156046435647856467071022944358259641873410423529002879886395720964424809064674971784033776934454568739074130642990625570389975657066381783511328817135622453292243757134932314097893923830194591070522117737837741228990603957676347982404685398056539078399931244646844578901174616199792077829897394696368738764515207485012525067937852826235493613293183113028395171189399617600701784005349470937417451136125119598447769011799085530913720539070374646984829045843889100826488586328901622633492590207753033523654414718293350393519006017732252375125063887494559069621310769366104597022505905157552516995054789725944056066578861776799710016985098313881799785232337932850556171635647553704575204062830583311630748932869845720004351532071939173685700705317523426266181105269560365290695537155346405092350728674234278344571839523278922033399633838205470788090150288875739803670640587732541918779365280685419904000392300355123905491524931778712655720508336111471498534081609708437566698605187940499628511854849273464466581234415073789295126820157371004529217742610765435143011918084592774681567304207679511166081452296927919307703930212076762199983711546691182282022375248369065707730231708491375998621249755600085453762843993240714003339806389962078635931633725724984097175362826122185780552663517301452600695612368786108970342989188196019812642245452979710168225296321601621414365957390233890198890521950019430303900597521268681782478395791841789317953337579346062304479887912907090951325416891259143049177722557695703106507107432943511395869464314195759205772466084027115060820083650419845437394270186310121290894722723388717258746572055763467146042467218630074354624178226298054406358717802714597612706523972826928008936832697148743592383122948750698393066859937288459266131304847256593616876496797642400334438686005111738394733431886250408867585803889578924724731285474974060918019760208546078545979145612941648068855505707402111993530400956797364029483380037205131646793238159212937404690293546145784970147032455990173004935158810699766249633774481608216210515184946679013011721670611090974261530669201934047214052713433234565012202480761657714790410469514604286826378761431685727346552599959541600654637649019855344083056249272468902255028288940515540086172217310872787161313137251975292995014503988308151246207702746519925696727683767541593284258529131761721342148709681192575850389056552198349895217224606291568919320186792314618577850235290821502155204220569871921325445979978134928590911913663678716034943168775349252423012344827979603779333273950913059151949835688093392533323967252541248098473513456989211485887585727011965102694254451850558027543061179725459345654168182732635240723591962391982641637732242492007324602954490229570336627886159264172329756034007656265658745545033252965944017734206943837692085071137820802730614111533835443999982221916325396066496481467846821944630177311352282064807647408450201586785322325182424276633583925324191971221656582055308177030070321451469978258052476343210326189103530204846160069892561720220373520456824053220244181878003288498824388814273820400852455353180031693761506477234598661530491711740518914906526296900899573905865594491015269478168930383084229218836106162750005340200078031559879237412953109347225067189031603140410959109106263312289016079830370833048452077646474803680575345864886991284470019611290910388569244394951685835438851076291720043711560082085333857916720368814135055513777055433496720893333096224721273043883613990404401600955142144196549944706605329296647291468349309107539821211596593194055258266391369512467951779923629630779573719944145706961910341750971014586569422752511414711058819336069313449409948134371818193251384051496054681701752379273816477497738546669173606485662073650492688965299070255135272682134847789120872881143707619856532203824354318869358499527090400046650347699696054114350128587211536317673508454652529389568399690717777336814290716173914042785581246512631522663972048599387749284204777035310316172982312075442943152057621094599762657255317480761731765171759211030913189036346479040964450901532750671245758957254062385294964107388376313278170222225116610965982277379858881464427443796350686434107717121721164533565313618161283783669352710181566093204842081205559530312074078236547594858814492392590793768153469819299300940177534950640737599749726929558201215370523965971880382095963361737429975444276093154652063583321887170746599733302931262362882358061714919129818742096236070265991090494921975239311960723304126680933461837836632386510210644746125785999932838418107886341904050449748197571711347749950340558191752454788052861302699232819715803038328725739657655875551538110675302530753552406536285375837627377172972014548060204960803159467708667537975260301049500149901269891268336320273844829573153806515243049725071402084358385192651634161319253507479487516047395023312694175308078797230036317501734422673365198829993558996606189148953335195527827236455593513622824716439227846098898727510721932554214428488838340110256589608313490951650023694818711436584599609541819082757744232517876084942928292202747371798781657744126373330754706935979208065485563002909173411924685967868060297904718705623717266527912823257336280682547166821430915162713170077838383084547871277779516978536501417415782592554048178324548745675859684252535961159627408483345724346416675368469409574385804118378823920151610357333221401077151728020946426807767747808661830981107619803414389571648825419320982623350518115392448394266326270977051164155135432721789174986294130755753340846049744752772991940150900452438208504606204619317498678298618986806924659009148040614288412008799517264101572751650945338419096510179463022107812638220807972415328941693803676627316508599352574606181420487719391006626893511548929028577316154534304140640148618161884297953683937846884949328580566610232049407876733330754785082608452167272356560779847900912476362515008261158371476430245132468636459816399836846960074652125659477745709776502777335883805673048837307544412979164224164005633894687933459975423834768635499016444607669031365566364476762233668982271849556198249548305751788599490615282025152797334636855906981910387191207631706539030220634068265120630613153937558827517932014263250853730772732007034053220640216909749139473115467375053845919566588962651957989696361664042622140016987085980864698428211619489352641046171917307669498258832510064736864705615552097157968229535567760233191803866021256121471052121203365418094141504058785545338163239984443830837684675280145814870637039674729467092273689552853720839161811032037806507719643193982856657765118818815271359308936122199611732954336298525030377535505170994291348352008040958202733169375482126483862732285060280159708371216219339157307316741630329679997685260857458770455430458821028551888480843962641542104155596274728810142771278497295760055915578110897538670747416053514705584335740280612483986900861323326085263562814925086395150603600612103375687262947871514253360641722936256690985318077161011723172690133214993732095666894868116326513140086314832216451699972675102102589149373773146689008935522472767872473240899540859879663546164577260844654666866407863231748729611420762004520633162244195306290966943953192909007417131430877633578857520252988377171537305935534015392078503114108415383331635923279696270431537599284499399010580988603008408905820768648317429349377287602387483828032632626795211965223123679151754601696603062730059220526278318009793417957072200276328855743193413973998299234753425019313175153543428985508301247374789421898574752028978650419973430108009582222746733504772285227656812132978851011213325991105276998197749383774912579572440408351429292058666371717674918622391678290096696161998436627274705979080253631334888419684116543036007172041396509825124593403487398318104965747208612361753183451941471827321613066423634673222142848913438320212262265377855091639023575049371576283231269430603447670473007518824515691669662717723399556308473673019512110449271489838555957038876258577446428371534362342581377867267853480315949013704810740149800723515166142520778499878145819049496772427219956571941502799828109763561304819155607769040112108822867409629227490710912349880914714529378793879322064727932812713411142339785806449214360711126960503076389749855999472099922412328574992888773822843345536193554889754478352106683324895288465739002336659961642436454015615167751232614489417588460920203499778865596590053502317520097707128193330660759003783714766856389423227322052698060471721303476433098456008032778074171788332394319408505784686058348276983157400299299788643938480337978621185733789889579839785681377059068811415644684524696077624705903824370673006253468253408011501975335561261914975936373101283822513854072886574157295177824217433246576042497942816463761419890439045784184426490950437934372145740393459163148448923856137769340347479950724199606160715193190916630561303857601989932635756266593912251778292853709449428459572770219429203197441103800317478788292250720953702549205185856983224306047612436522239869585983824690161115772943086512962870380967074264589632658771230645189772736924075468974201259065448611477724559977088369166792337122054762731367677701813094349613907557304173892167199651058553334440678481589781256603833756589628647549975338521171743607794260788275416838645419490719789277223701643731702317540757050712206261682401767079063276035929623420368191888069266359989622952596857907005632294178890172548147174020309832216937828474767354415796833565309072969207732556531253647339472310934945978586868829032528579108006964258548182384487223313735247336323054666285129579598734562979729752586314712983978949629946428394247482633128145288811100853386301994596775639487760110537156288251836806657027670160913325567767862124453999878055347065734900758928351458484444768098333274205067740795999528701795693833951536162463054794656778241700924066683181915270655359526676814596588999197905138801684776239344590162930011457290021116290570295864800514483504622126351422173101035170670003450435349272749054198800263348655623584014234638864483846596615242639404532125762210927950909133250326209054045515088003775922370830158362090322774884479737940242600621401971862968332938366125163006719256869178450144121098074330466724251350467390095327099334938688931650865560765049398082334371842262087029867788524730015714826192339054545314101260199314494773181804516992443753024989879969844649553781914231855571092768760262752521594886653388527229767739261029642431849099605766999522286234954440051453688056170116020243645140307161440897093381051402951298691696837994348846169218568565482303421134719156717737375152770391348410082894208856023402124234063724460209876211606640390755459129141829879600306531335356366358282681565955610533618273024699304879711489869917951983666594754909031126117986761468297985453636800128232125358365913314239776199575235966992128592579643185249246686147415744991634484418073957447860445352896480605812830140336160439150017365115441114803439542655266343201516148581748861749920820333609521021884139597315667126579006041140550645775586541929693394915560936371617731435888953365127337094662827658091885636236527461350455990414468183609184169090959024848272407051762363310227582459158361607865375214918466594369062239296293772425016617623503161534461554382876966702161985248812559967564973729556213929295322158506669947278308920732944625868773609449864520328751039201939262200472499266891795070793094801493263496007238888287234383121769724347620507879726585916826378297692298775192075423972896277863489702038153174613932165814821771732322145039412254254355383443851349178663873716727968488890913698498238343238660672326466522487141180223275038073445976047489923036622474183668618174418952542392675897497479643405935360594795775316297000376263191711502941494441409415951211749274439431749286192449987890401291453570406079196234099610417711485142984845605457801085968096588873774541713205054082135571541784075832072805745406513510773386663549573645081377069243741361635982979496546475122112821423430286859982193633627023354077323872814308977657868354312803921462860026621255925045951677067070894273001472374360033316420853543512959071324546728813874159750333190587090252306944332586055754739422804475164601199029289356988657196132195365922761833110440343422833236166208052075329566720206776410622163472491933545819802639078358855576794746652123660654641995039640331541099326888091703632281307232027563643397303596503588898353368175771533210109280961582451071148332288002658951541073808044291490167935601962234921243443273345478694394922555485185622031780348312157357690123243163080052573518083176202315174084526930791191481272838072741345496790151161127724539393975566087560167929792381242827904912920094453358339806659444311746042362765009269991110769925385313729145609226143334959993611403593124844204748273633952423402978079849358201918320526602436347430793856379521277347757795242798511837812659448218913853582593832851537778329037057892445160292263865215116971700626766002958718954406409026329220358116420686270676975548174549264144161686474110181618748968854636533977199307418052253152452105492913998442188129679165216437059508906681034761892489719637122237163531030422918045483416772263277196506043874091536415919875735513741305448144366593022659525442991442226350132737533426050547537128085729753059407387384995463352858836262873211444046765345283424499003532438197865346049825791989946092519176731872918018194294713201977812988898211248654750464916677637862226642259163189509060978078127256569892779655605009708726078803587354485266225454665439018621979008481946661447402592931077597083043787691884977572235451818244062440187082456425399529086883646643955754285047241447386995717493054132710777271264264055206771420502019800850567816736714882252673758930991759870132866299332311538138007098502940147339447101364449544932777193550021284907982495222806753041775962879148790832533338484925777701132992934370141308685934406924488514438298452307696661133588542289135872954055188427002248306482305831526630405938918823214521060411768038186528823277308612447253201782826757446442119409010012496552627012017865326662651055028670663028046621521459539044292596347940356940716175235848961638731237996717867704141601067247206656709845757967820915416103708654177183512815995116411509948032352084203347964373854696074456634640137748927182679693970573841193085249160692847673903891411274661506728036008520519843111476016496997826312505326999637560581333929592661986655571211660994304497105070374389309522842466804493274289223383990802842014600919914822836875120848341350915102001625976238113313613722649609838701261158050897804691040102697092161069887900219807527194306666919038075609626397599807847669417851628064864723065684897119948092374608100212596275301006474991585324491951818277073022255223358219771038775841962325842656402894519082310895880698254233681625175083035507909396369064498379320620298818734351161419394846618880914186854951637437649335975723783035233654831128146780927461657937526372428644059053878090988232609259130567034269995406560497736889649577420461835608426273618165252259716821933006104304278046960756240728317141875336469796343431340491937828370656668004207122847587436039274951084113684738287619019765587607000046875677784630409815463500994922927886907254414840615203851170776010879385265973848328673129262370481312645499611180704967924057469292116497423114075411697556736588844756444618700147626301569563451001284689277308517906665734972247370695928027827178283292197273858690400183052407563018922733895068304682597824370937231499470856701001563377086743797291306436903972990807511476513566640386104356828797373454407140732256818286962735500313309261941498680938166658021917142845307452125235502053215962958669274070206161068086378638646545783405080916954977043984005889131039820559591518699311988278541905148921356479154857097230614030370643384124333125882543753568426930627560411874474491143001217347428241413942110241810779845560713686565392148487269495862961327133837484445369444598245266948930169360130543397849739374637619700698631738315475672425017675188126834317167576932450476671389347829195355335853745056190694736437593893694671900639242303325754345374478157949548694267776713108854711699088461493012652394132791166162557814187826673361161273017489236516617322286042625773761489265818757597692098428792706883673810642331220931679838551401725067160422526321285633427197784733785070313783747660623974907540749212606457343547914297695647298343543107281402469239684696450386543813838208024475817157984439322767241771871794804398882693855627630754899807010637219390319446364054013052220613267316942110411816919868649726773636481804608982152840874466362703882167865584179861006767695716254763034916997835075653110332113463501171835986241741843440105976131891808227115799577927048434554616976553156932617399410221298303699210005543375714430032148109309631550382753343000719236859067439312140866699216459319839291481971186858669356226247382407748300468149830458948144580512681644382477585882660770721482799453565697225597503183086687811405769968759572520606607528631058547949437246281793047475886201461561448672905985815433403857109823187736148988772604186311886468045506004003636804243508552658391977823599579520481596733525836881401459654944006394877321663778637074021219812653673920409124202177712879688983981716646742547871422371270093488804461400523343608611536342070402513708598670526123368647345197046433212260660014372987912333095386455145210014151022584424365953723479411855155028561627487027612625325249471050328117600463490416411847485433199010118702466060435361869204103050477385840932323697699634694293699354460469124007106054544555930988837521880914988800616403518488841281443251158618092464423112574570146632883401966591058020084777303107501092946659249037199878353666891407021328447683065614678345232765444785314912051568372309306971228734665291933767735753899147570584943941825158142869883945086194062602812610465663114100785726851444024891767908121255947972998142759925516367652895308007797696569621061029121778589945274434525551439404953406771268048788975755845726924456438343324417117293802556819808729730095248189704255387519840868555442662085194010297247832410562873174018179534845972592734315607290559573652973138654931975105122885751095267376342978078113598336877099680538525502385148185580390678607780214354002546918094797181982754021627632650279997465577739574353790037061304813243926541764770097361399924575294728195956007230795969666859823442292939080214144703644154204550114258739887463982979486089869664546343166633331138506628495235382108164693175834907274398271013122948363155221856417850307190728600364796962014329534485789946160743871971711450491212968162789509081768482431666708086596756971286786418814710249291406431234663814140509294870473163093811883585675844204575122903267338323542766397238711049122693748090390493251276590658822833060680755430785647496707301621066624941342976181171991407691839368194800539715724881635292951563296730959950103015808733688111323612494534043788879233263107013457894422318891771095018751698319589286888565471028283593450808402270901224662780810749389931498322346013396475517573077310900850665658692989792224719370741321197354046528439671478935857930591138008081893239515074604089692792143732104833502770575908764139682584749811530335059712133373140232650736169783201740930123837043463397786089303336935066069334915212476882809188633592356077024819224401273888754524193033555246452902033420929357041897457390132569923889959304527167220345249481595822118463162203661432485981937458568612361795262503406445810159140076579069009664996454397137386703779423084249755839470482809992926700974522171594498188070753794650016878024967305279259567831697869340702097084970227158019815453472236774023484916608923215301168740222459467962571824125805019981391017515981719017349377156187144463446778234189020765845666067557550110125240078990685870397713106593318132458706094903832751561085649751307868815992137421095084575538141081395925838097093478905108699549087468105314425266907994085555341282324197595524859534809011403701778462161067445475188745847767246539038844311813187392389219427124873712319767798964300838214781772833417652568673049088956447153506754929452524877131667199459092497946169072524900603711294453511028334747099779790284577419418835869811025262077863503768003663369677636272141888225803742196141406635691585212999591062994686826395972389198948628734420868269328451294340133775525752034633692892185797832564527563407873562417153870833251816589382585258340480900378442668312684576092759102778928335972036741072365498007708063859816298035204793146007398722332897140426091064519359840980591494509567514505540394170492151660325080802339609722140894032761031169081750352593743789818062501275556840211586328523231697022914265674688087206838955225079943107406507675971176773812783349807258440891706013600764832960138561709919586106531151699268546051417357345909698759748694355667823985958877368636006355505793353964786235721907553760737491659985533780647040295537742625621605923887463996447171595330326310722218873016290495907017845272280755625476686162093301152709751864387353908355045356082066041777483667233777030500882261141745946925478487645725395016422749725836830345989844630279654857319816848383381389942729012431686733853888950814594521772740759115051553538471332521623910887671346032674891833690959256498362230848399454622521209330170977310724632011132188789409333796549674601983844704626751844415586843350960027731550373180963456070822105722952587508550450978313078128930979852373334756329526888774373679364609490654138786275251567490059811673076376527867742444129167708103653876995578757327326983491766670257212728209058091525921348530623960265387076870925201476732085400241580199049123348536652022830454283787997832125560444571780468976985765297985452867366429148648702100770328448963038373739241838145521959934497579830976725231602838179655605675151589672434571429034483461994468385470306026233606854261762135954966353494605697279779686838285039902309245132557444040763128215243881363849674096194275061842269141929902644894456393591531809322352563742830984119462353007150251558340677502177414817873729255167205574147302996045797879004902618839000300786205619529194066919677440779742968758762471165486471976992678505648194208551080906947209693717537527910060028894511287304185716272239730304792898088420430475513396174288705513954228996522429366924273905054265931403242904679529691176028741719505765491517233494628993842448978640179198574542135599833828899554750774550242251497390907634117379099480135180050145867629403448419457565309907770860058277881443618008109589989960955274072939061325908005229858616540070124528524639470065605028113790506513554215833609230012065143502240772613029628931075979261705612638466806231882871870702851608438210555805422765032820423417017516885260204083129202287156362538382164012550935488369724631086791331765893257927534305162231680436103251038032217882432844876755874707711061093166222989805228154198703564830558505541590763498748820163481628736309248624536651354667255478905412110910084231511246251412098775641308306435429911595891253369819612010184526848805784609668924480716888705097797206772316290558477388388082626059625755149459041968692665103978832876815347995893364751458089640794465919873388959088933575187519318269923875945938603151268823412601930867273556618950387455084265739828974563466224421087870326904861971009946558327465373631041081225563316416753081145064568558797945880037223106696670249430126678733107938551819949753629337779533370012459258831653994106269640733545737607434019789459398669135306883827796260582083495867856742250240715016390617805832100682968658948110290248640287767626422824233657321634042810610691067000208438956932506737014639586201826467768609480746531046433868883712202099663090535880980049050405073286408785892226094663870656029999808948057653185635436004036679874324915093909147128593486776060695830537978369302918414144185125425745408707734938118747004959597949368084770173831837898795018491330806977798067789669644286635649792298626722563766228697931542389610492893295386774699132784510027920794791974055866199890086048867153674877167094533827574783319214893014345919513170472279859354000700390201531069878825941628782497138535314555155461825094479447159801245503940127472887463231180232322953400995922849001151182281579966025983186894336016733973486738228766596198414009637818264905096495347925073139651424808883556108921132472635620483629464092250613179613094258503132789842975177848320869098803133792782446464715928245012566159881854616569031138575119200968116574171007058036261683720239636127436270475191990089882073693179745344977221997486421961138867212131379687046033859766209951205120383840379104586496370775445994418431258506385279445910749066701398173877383670064424120974776729348801728084469245994934615587347411453583899177894775734690681083468906842267064831596416877609369659622358659911458689987602755779344875096532299838968536814606115327898314238543055157954630045258929012634342383197208315268797788461837596655430022490489854519835991011748839642710109330270851161300387658355815857139502288033244692682561974273082417981989447785108937745088894050002055693639256129109128006694193464479979391099133851537057266360496024827311885708215542872025707687438319022352816448134926881551100323447895855210705497930674251004052016612038414853419652418997755168733524167574686382870212040065515904514374878707602427054475028571170176932251370993073502718842828612718168074559399644852121350495023655018467179261356616485582888348886023676080972312543414601317241155304146453936971620731003145773766905657338963331556979806784236684740716486544621005604422535389179570270279534735222391095229213795206363217098588205108478411383128871556589877285914304353886216636199521614378450341266158461648294835969016709121484784347741557079363704463405202612677989028874879385653855628083313947951373575871779460331774623934155748868632652568025527471568849733281367105760587036645445096571025170380558097963514500415932456458550676001567034406518777301605844455133240159471183199978551514648528411836125336786977574465636266555236079013622257032520300385238092637807706362878664042206589173856626788864080604566276588950801464369317247404726357939095008211155378282793982725706286573479143896676034990519308415417527083807121732687658901828384756617023642483623760586937875595866172252490015965434233675766508495888326410329390005139407000574053644562477604364518986571558303389062925924761663625485900692504061012174066117071715699755287925091803083494320265902284970841795356983523944614834935918599221214116758279657285004600629222308860274991759304857066215338341927663729527763947107321495432583055060671374215499569328570468314623125535814558642137753137544975697383522710600060107795030278334481783860168332446163176260762041845069949276449790934168957454402476359949471068275420816685937899202872431454388807658346967366028002965542148487145493328485053177170277345793869235890427369211228599578188302477712302879005219974193550040530656510099677670490130473798943933977549963998566476621720119667959649517100131805134201724382246000682048080571987674518893551996446219116408955753678962172742026039077371660968533697384392211017014655915802984524506871861109820374259884890966957395959794162914657774608062346138591908457989015202451815373798564185429327166885316958771909787044771128894926990713018639015717869370388322898271997183063335347107860387655240894559374958131041615365757523792770024280218491095305626020978061922427704850124763833323466859477608122951875804684984555685620572602480808657016830730503703200597965930936979323866372844058438986720151327800066578123264830339898371521186430664971770517045746974314123773282401362607478378975808322465831005297859252179177972996511561078770854202720730677799773695126238791513629900971994296101990388460592758113461106900006520341227624118992825018325948755216439349070346104948112072200419442860259076023633016423650649045750815607992317924054623039064492649653193040441598151985382860160691545347864687274148408517019892013494308508585976462903298709047364073805493579870770244836201502192637843532176354668833866331768725612256951706735091358997488634341396620461961048413595369854926682712319682606737329388621241086572550469027342726411255743329489381463513447498469237275407505352274224762048578858588004175582583170720324067587464648325410434039069852098351243218731211060239060519934388294719299992935617799250190920325656819748069521166569593262042752941379705431547795175741868603223276696808802499485841251814066075877249497047846164691255726191850074669248063458608521606763915429789483494661201084110277297621724893439683513893693506144631803865607941887983469701298693010629248301034073040161252620465009637684425333788250175943245801819433495520157623809559849794103184159026642414014589234019779030961100962691978405590767482376170836151311784123618663691139027358951584832033011342870767996951205447778107020816447496335180392219759751554726483961454058702199845496061906388427165357268073377207218790150563083335325027430535106410500769550637327334787052457380364127318193904782243860746691464159653486565859255684407773381023513080854496663651427890806062788080800069457435342496757457199206813697504001112072397162953499614154081568370555795135402073428059533806054090446708632029448247999103650376870888071153727363822041273117502494965498167834643629430552916860301069538201450709114412463076819961192863758848781491199814090445897516338740085125884985290721657125710144579747792841813519434267630011721985142472102946003669448605346512705914824209697610389082239793945776531063868432689362330852887726150817406983749757192827426741690444567573244262766286862008373956686176270223334790842716619429925896479844445857744883548481391212165134308289183660926295669499827637656466410145870419845048564827632768396498987832035819733411064246628025711453507815958875744175615073215068946214408860647477665661759049231117066107660161000058659531007010916504761235504460602222655483495829160634763749544015604951249123558113713151614627818084271722970982559758140106223923112145571955690068450308474652304284378163093563432986104095834556467241286964825666034720391818591965365949397974218685372481308500762004793357934788870586625004480253374152293191259173050671758376267332932774316163617385855718942801596917067407145506187789287634336822397464526110191412795927256428860053152225769732448517268405486441849879081983772997523849902259057434630155439676776633995791161956009589161561351561416517546055259270738043994233420975898201300780563918294437910588772641095841048297901641562674636964929852354434834765857734887893676673361939619913293035147908886747986744286349235694373059703333708356262034374609674522032040898343990045041078917267143414433766736174321313994053574314194146323751965326766309532604597738276010925769657435275045259885127778489851314127422299073737538832849586035392119917315669431360689536063381815755615489724239541081949560498365812829144740109130666478548762866746261269180486114465203013368896999845727899389305868032819359855809951751786833340724546519885631435768424671471983635814693423828053061746926929528710840022663068560711246152598603549699451834751119042284607673513795474126788075059962691804325983198277714988763902450728598171139258141193604145434534941492410305366494191369143490420893310942691009471380180960324790375145638527773867932219108060597394585772649602908317141191467294360944278608245386996056162333134347003852571978738539893058782155827262603464660243765299392142366392929386932833501297350354753719757306662232740416048059106327678850681120208635663454771535960836949901057017266835061963523822116045656649372715701543811898825514149122917152754805130677981569177258764446532566018019204446982177313092815326464262540048100383912290844703853315180927831146632245486921684704206704718091007534525963235988352580022907637624076516641881183885971069704216844019312301407936946585007085793092290631875419474439506550177148955667771364990671705227446842285201888074935203774434706530586766111953398757511263102108396406146428317827217148380731504709967160312791682410600248760968889172495884769937767789128833085858793963682058498071744246734549880182468980600621512412475412335842469012705735393695263887288525339822842185097371187987785532081267281185384290489590502296633161125652967094148269551660215590169425214475156363160473864737216004954194767639031010539110089490362386642360278895774927538785789026551756101958276416725955628213595165521849964827731083341273831487520582603983424639570868484177001647987387933501496351401807189410072375904345834894353952642797364071394696166278977140627337857675706351307614619585222376297839696142393683546810567224664514992788188645358210414649408258014703627210732289852908205806976615211240751309323858192717690434070414139303278567811520120927420444926801889598834663054613546838603152249256648160672994281995004158957140882732581608676816266932923177362869777117637320935378947373912086068099462745809219516606738530903975719668019179754725144786148516743310045026400058100525945089486079320909758891279096019619262154743441350425692013688762222309129879622482418282036196074282711875449523271057947751960747755317551564198849681206874344243724877073311375557810336874743293836298430941365764910591736764214523217631607311801781371058471182879825329498575863443415377078142520022384549072109369795677320695563913529416466321911323782392782023877370911488499389938995094865965777671103971295112765727066589976825917277595143729759608294841702217854894783517986154182940747101267962522121239222395095492301189877346624825953903716289999475998948558056884641095636215027327601844966886214376067697442635044528803011679290766906200073586048279029762608536651449538655038579870461814106106162496433554229583028460423147435301335902073567593278105195842110185241198945143345531763585192646026277391847733100534593792477016445480437491673016351984561619659902604706907432774476513163055048805227597994531523650471080674413015611903770851914837883123204689742759950669669695968190194547072792692212513971484152554222131497621554934350220512780949876857480824679762724001846439946866811723498486338310321759148346410040046497123445584866067069289197125499146548704241057175236437456987790889479219144477963244351593407542070502112233237809365212578820366905334027456945273655534060342867462686308265577025634628799425213728645931568922852531719819707542129341112507041120018056820092551301662528286437384591817987644079930411738823789883751573691956603376815167303019695869199185255416679569908256443908419550387318538510393609623880229895073548393904633926080983732657089781497525711009591351814961214923256731358940745833257061115756151800986663465355726411724642538500556020551039202870461984480922054881216969515337420165266403363210496705989134376372859818660339822019406314500133292101071520100220242168952095060968415749778805537822765299957264566442509821519765123585307407246620691888895581105259738145375686963592726122593847274196279253847196364555069547443253419612156227828506013565121589464291013415018239743113721371442847810398132316095031056718564339291433452856705493518846640042142438418425973830111860461109320242361399811120813875820187630142097186689010185869184000518581787202999433861704928659865049519804785819543297123023597351324049195621696093901529714106725129611097986857429442242046899120274228996151058989724684539696299909045502381617860959487568021455945620973904390346829265593239642654162461711522877557897659483796984252275756221228747149176955745115140035918220604793872708966140899419757842554629783881731893847696799197645224533769627589544612276447944723916279486280426217027311654628875341842343326347687939190063599033242540751037477786766070647325684258190829576265223899494790063403322602146904052909777258666582002575847238155583957257224692096973624776744352791930668247634843145093604798799044008498750615258642690798970801308076549180710085053600828262066586811403957744392887608785521381663627295761793387424324651485477346036620297372963476343425425631032278947651199518405122039199927941847631307234014671999950387087884896010449276419102417929456130247374526425017871852846759192536620874101193495513889420825536953534385470979127462378277296439129189807097523150138462926747089896670561062214952366221956889362282728969436250447684988626147005604504720967114127022080076507108807414980874290122281158195110609959207489638896130066176645860846221639405053952848461903447516728001708955043932613881422242679331577641489487781904432265148094688095754118123072953533628009397698153507872828304647490528623411242930690638176727171797703747149726199607465043400713216323313512804933566500595678811287836788002297524509383862783407641927512795036007694429913770408712635798771290997215456862219450970624076361922083506455157840760373182895828109034991537631303535206357726440411811178542659354780191556191618402330493877969301837195356968500283355074997545924398776871427473978601968119306250545881886232432555628415600677682067343025946054675763319500026416965422372602579173444642319640139453183274989083464342590931938996580611048273725701684166175690653691251104549569645611358054095450530953647506003605208962551034737369221090728104423078556487906098063679174950036991359845273722747829509366274687813052488592188941027328861592476826238547707499296154411685354041903986530191903888246423325219082515656498694955778464418642407572391492712491797166470523375882245982145776418421412500620127420750543991121655542925368007694086037576931044509488266106331882049592528367312035789486192769405302365180327179422437764317731256451537553646002809942429956934829048066420646006209514064421425296091566849997417305379758548043311557378645759060177237169647232304589276764083175639189945649119772045017228112266948744322585620248074215375108215828206268262496391568618965051470584863846672271506283496175933770275735197498300979670009099436597438872719109101090690619345167029917251560380758953765408498775710657329806615830060638648562534192489775027100137468045486542906932774656383303263130395525638730167004205717314123407911442571991248246769881173081279259966603614863463301732144876936498735619598356435371338500719255075481647311488194372659598181426893791164953831231134184773346234887977220072197017881462858821225674683247130548947079023268741475064188047537670844031812099314043783073693537472321654039659972496371745054507811827837154181344996093674577813202494109414440051221411889756525852212252971603548981203481756248738775570739243396368009800992893722003490024229664460139751959046677193381949735333339439146789810620708962783809956976132993120815394830694687851863245566106943431295694796194856609135263099906601913216065599045801639814869771367348434472469388787711973472941285891175416132725592279264568853319507282006132669650252971411478083212722012477385220321851736398524348330754602420474412532877425939204256417623919985545956294370069010217517593509271730760481563502897748842086230230077015698518816296851359458040461327997656302447635817797790546425219616433938907064291873727143658478642324437833635602043413458585741660366033636516504864627856065416607916997483821107358012635906216926317296875759257904737696990431749558473087297826510049793645001351686424914033964532925374288689410392834893148443382845865353232902343709042886581503527553811816547776997627120601333013324050895078735258838114199918813801032109312463215653738439866124433885662298406017759905623328449488120427224992524814636855005009223403356047265386415345320169976054408119877439265351664624427304573123929344390263267877803713651027185447786120900581476645294810322953705549683087156969789799150612256398630494231020527046052716746190151762673640922341208543722363784992844188688422815740566553845070130203477291989612336291377940920407655953494788745064706744068965229875935126839784321958374214042694793452392380080289554224113697777378332901542416016826640731851174462103195492735620383565538421079354113153908122891581222767332846492973003843524905325762534561161862106951409694094117259912366038429496120461991501073836294695681095191883385920594328628636708047402142021183708651909912595369249844692392227011040940847186595786739645298734783570838900654009639109033429794859663366759809899385823262915168358665559317916815859076803418608307246066210901990918315855223525115929488293846062927850149724252493754828972890809485500528408655852505589369706276788448677486577647096738606285258737291146731460517497682776712578472301646291779489234105050045543161293029330197351966412739893070110760873497353708207173946682666104489191747194000845881033962044635478303302972705825784837887167611441942518228764965754047585360627394784270824360454646193485740021690175529462147676826493295092966596863406953127836206336081731197490498055317693961420866072661005760463173382223096421154820350585366566089650837085425137092373632399161837782777236322743370083461016224333609036026704501850192193457001346589379084610897695538704502339641902121005060746481602727880674460982770465314977419580219133829911651392913267736192523959176986155421991849359636430246871831598581793677337001584660956708759435021762668231880720270514881266203297537454402510133638503373885210924702837710248394498378819979649809417750208178051396985357910366379220091134140919321110773277192252171108527272676287741586928613619325509631675768075258531758632971772735627739878577659813398954767586149138563029496189734064957790085305387384539375490067173923661776919418022236269481877437658864113157926014484647082959768481466274528957127453624939303063925772823206326581815716621484649134495974023329444646648739249397100163190598120564381370325079107877289048272874400583227704891958387891106707145780818415373605141233826217173543765583325470100557959505034978747789556766260820986004036411254646504604033281096817470835569946243802643879358345533982991638981119932093231855000089792374301437839745809833988013029843131036017750100907832863215100838381002371445580082995446197272945997481129817317817834242249437192665522770134769056738117413216541969647414715404228475978217325659447590885875053084221163592595765377294812565372245682296603548937251684913654351074603935232857378867578510423479885395902985142280992367727781412195770118455191133882344583195377354122585941013120571466903801911168128280086678103265313405398197576429757486382899518560734642376069759978039275081414993764232036663033207036835123439015194270994739826801960457027587232371294423775351153542065548049182733493487769191803231119769441491078086209666156110437797212687758872297159936570801382913894814166130047539816132237540888910870204602945661597051207527255135302154396112659499720259676761861880496918749699136019050811760292970025516855104149354928499534437754208175764292858374000639345839531617598485418772891681574992143175108119324827569494622650932597093419084502610161309242009529451507456417892144438852167425617366492848728286429882274452876656490836118803877252699496059259722207456405366490222871340185451191680990364243683878039847975550025042415170258553152920832136731216582775101597319855126508038771408425467910003892232947909874937558582519814313390714488968012558227333096705031681484366763683092948069104671071798108522444876374718711594395121488306132744049790938022448554271576308649663906007223800135286810070845931748198769717490036423597258481660744323951113088726099081203477226516122978077220240717013581460989175201192067088165523897759597113646310779941378981419535924218012486538198267699189508634108671713942719897442501322404311197772089310933255459720589831813921879350498737295619597547378754024469499386233170167887048291132920836791462670812360711254625480726011103279034234709907831971273523170407628094368190855375512615714406355511135921747431793610616062709836294965951268056155362061800531809566087626296566154566083248355711958701401216830749785347617546435082732492859118822453832248220393474224852039799687709737268487360261716365914369381839651430535477997849579923048018243064712233765485261476190447378824212437855250349844095501651329644054307944518457532954275400585114217759496576835795962096073228473463865396377824761766676956795252160881807555526332743471993599783579572180299459299608255485059357472935148826516073629733882286183517730159049481707317039122152275341467236654455942484745921124407751891026196427903070885580226204787203465420545681352059521567516332405000597047250111106363802747418614478723516292679250311961306831525493752019025113420592234911809836175123660545064633741502398758131983133921366912619909829600451861024551269807125970815487059092566742352899807937277174389594226305497331130156245427184139136192629511044953976427305641722906643812899177432014629784557061332604306228689665531129732927360695941614818353725908621918595530613986764341650539125616087890138388572800806404061614323110095014628632731914508424847708226405348682495877064342695954876020122281252768152941143571610636946541368150034304691859444051324336527885954783787001106159442803614487191107846776684556394176802124673651142280429423553488349097198624532412451740171220115950747150474466505061892912442541979021819195665420873604704860417812945557028668528605632635135227066394458788556082757912969480682624434145069668038000199089401792109917821589472834789690159189371753857009724571545758577843132742890375530337542657319156028142250014213188542165982783304785771380310291880023755977554952030274709305396131162677942645628358253955084022213821189187681818465504006133576243651717712735826828693925542932951956831040178625726423567514226357208550461008844922540181081964630136450177561258612800685220105087760279587389071087250382068418745994986579755016671551598603080885712385744014945229445807933849339745426384725017516511601252884909666561318139698992013539606963837949112466677792916521051378724518969732331545400828232442969256876997260995921234226708614561850251440387413329858724481013379419674520884298871715051621837120468441636486645580586693385676206304667163022965863592977102039311971008967592718622493943924549720738863602396227185305952200288691455380399112859428130635257949458736579364417911877310732126913043845826039645448666309508981653015379334684759447489016082247076446073770922275418940806600107190614177852056497570160668331141901940766761352241711202415780546783340468239523625494022281968813094719565990564409050213652901040669147889301593171142676934309913095203644661862781138780693606737583602209667871532129478982747953081396800372749501093673258972326342772807715244040059889669662886344929244043961433156897381040673906995236877685525050827791303771162066511322990117019326339769686692665397472252928855608442500531694613852886999953329639995535028677619101998707319513125500651150490583489060284586439833709365582326100246946754450957978061700273689176640932117582921338708296824359997808052365313543980768721057320113168921625873222378599920650522751451853756990905125124963031756137704747460278948894270367541371146763854516076443538994983340944122695433759961056007588828284555064036488235718878741860733015299844801272229340792584992548023480427000863379486482567397822980997919991337325626734662247042270652028979784697552965037420978187306637866250205624060982944550897441785907197930620414185695858034210715702658291525731138355884537025729316852621160449362607652159916023322152749565122159913866329240044838622351021541793126179500343947922727962880213447938431902781457891736661059897174182703739708747200130067342335952701674615573016921847118132828741137520809407173174420130061265166108323434949144260806614725050949810305614140168304794551256014364925802193546171367396952423506099076131006119409311176284650963481350167192958623344644076124207256542295332097635653633979912953328018715475139422458599716378555310970413575494093668075483360236169373048184185329858104592514286739181417193675470313654586688510845681125708869195563354161557420679647030619378071043768897801386666363073603402034171222567337592382193055304831982768137617835034856401313507525733955782364622134426170154550310361550873608020263203590926830695336047187526158508726224851337435438644347154349299268548263961115663657496203491299509983949967840848752038624502521351817784836544080473141187211795915342737897016945396369832625307994279693899589036159062516984261193246005192272217983556365489295351310908676633640964865566714046568943163721550985086323058773283026421475624006469964772364623731785141409301474510941718979256717454519815746546202215194295964931334911130209716286536037708010734598334480822535692833901577352402728015080222187955425948512638819921370376839091597049031257193213332058884336914093052582028654031364107023461333075850089074096651178364879504930290650625212731576484323057037459711837282605501602209950594007306396087157943452650574808702886367611441450712272336508415793005383795281289582272039726389694323058464275136660634443644474961831336432198166453642829371254482955843043815182256694925142684629042391764112935614298659302186400954024653509089634963942586483502587747592861542888061977570798109133167221280792350596162564200795739883561638384971296265874239383925578308228166521256704056736907377159480876344072007428345626842375287782681233914519780596687676736739421886967012164012596146229186589177633765592396062197287307724518978419285236800701008967432664329841814019484127555332014055708793136478747107861932647818076067003054256803222171329655627348950767672254363184828158921774294410148182820226765937675910570496294083298166039797328026634629943880810122424507787050470617927007699655404581569112776667106643214702546700752947363668836970238791153583701338815473246615369058976352112670547776638174601649323460481157844005953841910503643579413629704487494084761509060518194664406479552647688695737246117980943583303920814302735000330424675936775492220820594519049760948014948090645497288388446498494724950410274628646422971601182925611133755933977460511057128510721116267459345344951707082395718886277717309315860894406258656110191256412217593572913326236361120222021536094149626398610850804429388184145286717454631507353069715928347069898521655480250296740950549819065374531187009502148830078997760982058765914589987719678296666965516327516720385565752119315780129749508869666361852942262190862775935465872961364997032948781627951604337873535988074317864588956525615433280749522193228968082371114236080254367887824825895861992199902392467282125830408598151113374627882871337641122917109834316693009694270600432431079242419712481355786900918327438563004788770404685741489289033322214654580907186854452770778307187972114436309160923277987415530560016573403384183857772097837700464482612985681495028937642798651842434692444406126118073735770764483534247580529899413403751965913911930585979096366015595628969129874265772172154073294627889831910692041460349354848063767501389168445499642981838470963821475215270223232686669978593700870174995162285401533124166738497138441999606227655390409254994234239009770657789752403271717596727559052885782683418531074898909570965566516965739090443409352984431928838876895346488044221831703323163658787072227588249201560792454992504462517313245862065501500634074349836708728432197474409814008685460583129987146835413823980318529188911340338787893129884507800757580994677512580992162609560904501712605468127074636935537569121569797585147856915515026448832039666203013082365644010069070350781123772810841008665122239493764703690089677726531884964490904264109504847556017814785416296893397819353175924944321781274659202012584925075992266330700762388636609171276451820279171145403615460967289905695810781991503024432194205327659589319822556777086778344881235576067750793946887783206163967850139845866941017777397248956127026784475525256531173856303187304752349671735332334045388680367949668993865220850534169702799518879400622004449405131152051893489527199928740960164442932768866011271267818536767522486118514294600676819930587091813996172931410280171724849436803505151509892805806320524785399968675155386441435391971499086048855255007539541582954012300516186145931278495615454785125176864930508703608800757304170689068879888555100549462452481184114836033727447420267051039223994358212212480782730028148737310790095864945738646883290924088067014007031908056461262506097976076773549833354614338955667216563658280220829798704754451470132889313639576663950908640772105294476489919116359425718377367785130664256194719150531505420122053417510147292141049622371928423403518130471584876191200671609441022242776836940109484382908037635303122835539151256664056633152205703677553798903714122475918006431361632685807678582846484058691720013100947334807900010241415219033059854026076490749988043060252509040698818402147272844285373504116538143527980788343613622297982808931232196759543095800738965498044673649795149382859912285587685023449330211471885511944803044671641111320895031178520307873960938653098982606045601889113861069409716206577546663774162046647005719429570440947736927344635529928983003466307635449736002716929955829870628520634757943475771937767537798514532481230072844376673548192231323746437245249495555351172007622690671315742137260865630365040656931863912578993719277114243912960277724571221456783319859086459831975990468390712514525700011608979657257803671989604082462665779352739642286228726872606175424074640087927180528625153169118004470820137716604469337008710730474380305472841451894915825645459727158269439160836373075628786502605309942774976528320706985800072157343955750485294924695261476876044397486060265105320602190018881201700449075043035386151697540354709666986151743521535978117076827806112755843720512722839119318731581294039291812791925492543561643240225863638760043011090188589240310869571244678631321405324514012009505523241371510568209355434658278167866611457905013691402253347734556060952777004115234490322472667348205213736633764756798294657700619891100723423313105974424016080213684806318301087400700104650620638766733360884178149262320667963374207494421388790007188311679759751096723586278353264024517976379777253191766039816695854503922322311801437731941209556268959344896053502451309926984870613062429091907292950581475495161687782520430832669115678008567594980082428770188706446348584136331108792727890897096807102125129759643185113874397257410329858509634508121722718694174284518094853026582024914934493314816773048609371762812666320339070086907341533086467259184980316684124482640726610198427718791285441802500976243677566557632662939288357359254886581482803379254274879215346655758966142177469568185202247757435731500432189504823288208717320780121262789895199562859335181983555642520319291535680607099499683900571163771311035860693576266945144642299277724062351646562985806322669810957134582268422700228368145025402401116332795809084969172757630087154243371640520683378236552718509776328859584298897122942389751752832382315702406644283650494969663037702462229532931267303736904662351669182512017965933460676195946425034788117471040072906616086962949515794262940362289923942136151804569386898014241531160703509446439043976909438365464438623835400347222227505389944516488555618940512568325264452196231074675473661389183413408756411183187589929674019552501194187970601850514501755153770961921719864992600762393636135575841056814469442548563409335769494032800841720700732349774763135088607163316595193147083669532403325227605034667279763999692849146954435572041798827459589352523016730806764845098885056182920170344975888480121596682426522007714230353423188918089211934683860854594163695367037843720342936050466514555361209466933756636241195947470462488115142510788836031167618453368849553386836136501355047493614339074042957694726958102093489874232057375549534811778547870437717971943905509263860035516811129280027144735454839494676753577033329993109320166064637300635782106644757605030241445318644029339760541174050306630984991749240107747813426401358409154312015688421202075478837003947055143513620813711082990224591082256561327408850914834225668018641103008761595698967141354620587694978806485319947352999971524970490220143680412218060557010501617653959293491631725673098784216836160310733838154826034899944476598343296747853153142468729186979843481262190617247556116105523478505325015844096438623490794742226234120141036662820064385448648328653227060519641317894859018515634113677582146954329387934095635161995051231140602194820567548220751279353784900649842377703386171315171940173527706730816467970457692948637962592904188639725035593294759699722148844522410025455016689971103057688277272640508881010032004790194004540168763665640036738949869072349996178780547754810058022851159150359076269778783602010392324939968451878178720110643467863771247705540834650579311635621355789157504942893823675633565409643033149060897538477038030519550783738221392829886869606478950908798146468893473918554853107238785243711239560602488674227415583078553188954015817698825618164195666556414798873372509835196226967984087729396621511763672237359442264524339833574337165566596880167019020549580223837412870438036258452601730522966603329353948506919130352226684664002160399058224169849243581372088783187466926755926090043647455957968603079522890401504938580560708329648185924864994450494770186339830618815767420833478014054961181662896795114105285035924071860166410065207728988666335168710526141702563850208978442682401437865602303605883368611836508858321303247218686612372156842386631219814929584961335655252728121551183129382310885066764128322566385798262178456783140246873980370567152646199918123399374628560947010899843606320813591738323371001215408671777270115757249923721566580808346878519401899475467447806771408629780247213692682888345784433325349482797993126802912898549163550870390130538190869709390492627837293528735174239941838491990087745119991396558911609138121385877045911516577887545157659416384378663321622924306111853099974295193341565085311440568982076222371022749252678439127350617421721949989710538930353358945700143771411017709945549484930946163164400917372034862229149517418092035848540798940049790234624461803097488805718417346115644489076205963824799946643890838131527189351857612733728377748801855033321101582843466140299101085898851315411481927339459625364061251531300812683406809036620938702242633494108621744299836006912929922754300365933225703738385497594602071513434652117860948622610804398853658746884325496264727064067718016092258255800213070189140947263460314489905605657623698475388472101055184578547471411596131495829496852555369146898221835798686081677321367684667649150964636605039865209334307772064688954860927313130284685996155808526698893953918366084822562240992462107090327023362122818264123105226149204125089683404731000809898482071392039364006994780161315073395396347103646606311816197571854338357806654308306681773808199300466656277048828093322589949372400887967107885379477547322024289128383385696881993843752263467329989253694294483542298209384854291130167163314015105758020507659856940147876530698631700804669923019548555880289342313886326401307458272603644664560063019627706881778957608099504939945643044805351267495716493052832278043345095853536005309428711729499454201632264074176756277358333601258498961879682085797198038193880534424800526411775490953456933547889160794814135190830972979872663164990026086788684470283362934815101420603069246847161656903410916702948363410329500247709136129446006106181710543153259651806967719543202343161785794891992407535752746804895758629885019713318494130148417251542487629857594806050457107959156164249107037314500389474511264966013277367516253969693159477221753237904183846729545773921666689174929335479587422708869004417710025246839960432100103087540481352058932008521863130973238551405824269478267661683048077563627071901493033567231594932057975529898022216049275456163051744847033587850126572949121875333827557921100471377439814960825125593944215352492490701966253629953929601218785170037660043682571261403143332747478205958526947047315033528568689980224174222809600037877888080677205321620598053251534775969897907742847655433524074281793976646043036516584178066567845109970318769241450883662960549526040835149906665263275612205081061817409553423769817153861520103468489753475055157177740022490635662370481329447708618109057794508141439707594326276640133513530010628779131154392162628395771127673399493171461646717008712227266648398074639019901136595684629691906388657326862298664773140534994181633994372445798155022447514550917956927558792271318697980442420507345827157607821052892310815829340607401491753641392665451745590767539935966913746791325543122184924743476839084723802421680327641415666463309793678443825001685943383513909550139860802975538581116243875583106675294678075651797269560443650653799692336265865137657101348462842814537799670428286355458224494749516732095765444595635562981290627296301064762670040874123923948033518629240706328569853335474889860755014501319145975986310211500451806177963754529671794956160078266313851661681910089234324738838882627688135324117709449499954722686882126496080352333179354930642003610655017980382480275468241392982452096572304042281906101136340381145386606487704157949111797613797908727866566378973188775671803328563168170888736124103226351096780974822616393228911803446077942577388120671531135603460658028721418165374905237210704570155557375937954884246735455135955079394644318503534799313480911760746531628855102811439877295317408627322888178197033163896881818189426393062199249062077291267970442886887773585439943974341511212226623266709571853745419178951614853263865924728335451115646739215659619880084274539234919108249555415744840093191650676687146530833948376668668380594976949667082592857598301882949124370821151853417333459464953549501482651841645132162427971553872719766330134477115127850026128547163665070525788394188234916164935516917866080893267294471177960365630581433642432520344895195481633496106395895319444806031071516052416036726093809151014802073886788963448968647516186428375294687682443940658344825345879845065248956255454824465155292826220880068403737763329919021801504277074395083510077078981701903925715567928948123220960120907100705904921841625080213746107589038216040531212686311884568285755599891783112970718297459699234261931069648700456297235200160619918836418000694710411623855692368960475031082779361244439710175050354051336668429086446321335212358726435144269019790170577657315583132675152763653428854125196941082526790943192185787199174327193866647839131123717369949558079762331550652759696662239162350513209617128593267372690815368567590473856401958948396775660565548853137472314149352338965718697109604293717846093354234525046468227847131211218414909892045820351570745257214268861519174101489991816581366227328198271865702385785709032007200121693075591700971996164025712101933494607370668864591296654501391810660087798719365507281237321780315198216270706140685549373695434477722132623259409710632757894143211350926074350452888010391632914639963288226234043550227467552688263261431482305094210904264303836836244943405425006480917479947486541026552715815506260936223295142208661892723429819314367907346409799283799254547379143367334310160871409856526028920976826262809721284169087035706593830995464571586882332443804593775932120657351141984654932452869023340294214532001788517693248916087648111088760726855688814693121049105814907305772115371625610787782308953414095851097268480915727408998718710513733153389168044466604461875218346996303019385976865588687293171332770376659161988372643284202175483828095444232157810745672633376774306089883767070991818043379123419916654778630955193107984000069373644626110523569554951891885283566189298458858865779491183297713334913009727771724727784360031896484507282348609398205440586640862259322042005081838774219125306915378484493119546199872453333206600637337417416982488657409904593653783084835793437343846677561669187855170822617581378501807117132304402443736191077693370588536291955489584476765558275148420431988329810296254803970243318406233482099271585110024249310935876653818506057834436025567727618324430876834968997106876518303051170086669839138674450171636514906739968303037724725805004511681624230978275188520530859100695025439814281381424215821076750021449472618668663124954828703950141235422077819337146472633366011445809663534551317594990560735620169770160451243090441006936236143793528216536824635975355754231566734734779390236435107179348648726188477063285592517597772185614947561456798967508533364626202746942456217411968715044810660472216058392802121427141326362556148271310883555434968347275244481426465119311617872822056923408404778704197295717590760945868772049793752153210091701976858632969536066465377435899042500790492160075605538236373468424284918504927615673568655939464865722011294690222679899818022941533771682303970450952375882795295119480014761367234141451632901715951753272389711798491783261822486554481769459126542275799026894448825136132739055673623240834536294358193318537239308323957312721564172205715657531605472991752978244761524404524382531002520887642256705977226732473709384809882272853339977314427897495157682011857887965853494554146426352550681443273963800548491313684330538098678780632051463204394374137557244185841683327526384184195690481284554608490250402870401439169923164936834861185796375273519832588130421135998372694729725405718414353755621916428977556527327678018425600520622636774933318264878505340150632921628141873565730984582661122382142071181012303303034788276992536291146214453925522193672574333348002522113737619626391874191932404293202545378550274723715496955287878969432786056432483959481994362554661114179504019256727180862795022198435848563647723680896345733068856961646072233621184558243278575129605026359318660986513345415735113723872369533414886446497571298996509862524683716050950343342894389903074641722421799839231163538424292452216772519452258731037769829632213834053254141642578484933149909298109070054649159624618121490201974178366789525624117437299590894758562216632591050859585313230087275360338347091178364458878987382116107842332138372639695813213799875055856237701253700144770394441439334247928655208588051793793699720630510799725256248640504569108014269510800914171051884060794770165752552844617909534458488833456121468611709373679134466099993960739716590975352146887192791424085793396418627680326820570029620086558601835738345124494831495572054512442288424530360523908546331830445327169327689866307768223470904089853736775379695633914560026372430823374124299627886043874059998047036494558748394799057378667695610786243306818700903441036251495503015697458083431906465676260412468116242092075116011380140881704743642850708291508899696802152592940701035063998553890114503032226413951091004224625033397531467005221874522333012194396211611793571967707498920982104570142727552756950576743532835759941260681879038461648085794648188440524500352303865469634876241643845504304478189245636508992529380619059025268909592811749413600532985316818480738360607018229315345132721772778477542836009079667680647648589451114645545977424312068121112571080408435386090828397534486014257283723408061992599125632965523485836217696078548813573365579299098667626694329002311514683639860526475105595554422329203628671600427238506619975396233982302460624564758345155006401869645939157681416898970089650639657427837325739062157932134946599786553435289203198143318667996602185844078453102024128131211294149175680258350088049035441514375796815733666021557991175803368676476007981474786823159926188893853535483351786738395876328747627192341364386256310630106423531761880426294658670803189626261103412830958706265715440260288963420021112684159884144139058551910125084349453366153392326250573488613482782997667501205579566399735552689159138740630419514125706868797489010651387383036796560307215077229578118115716104501394632702698307624796372897168805416725202980758964964655266076283592809145807804026556162546777547317275919147847275101481890165826209394232583685757514565011193518975935770012676513857589025328614404272040307109770794719408501409138911327711317243052036805783077615615542745687116051985549048093910059517117765585902412681916955996625226462805852307232379151199214923421054134697840920484301700495361754147857707374431367671856916997216500751308970999936639778827408323908186050780593972068735949328185024322183463237878954709797214339441864063245570147606119467308509023943293886683103427545977175631591902429578272181621602945102374765366576853598437741453073977408033372043742386078889687115536533027625176473938365114132232300088419168270268936788655771840536056731999109018112189741547462165576650636038587643055054863562527609701604431641146133366673321243731517195236091618088066757031383765320675380418882317651728988872387721438327977698431565902750155417118068903288752266195824144045283345417124109395126547725124711441965027290540038748502576581703489052833385717506479392217516870716810251671387246457467027240092547678221017556404406914147502367519889696163074088320001074370219059372597083035706891135359459715859488459509153354654189527284109901240139929556038014366878986700701038127265379079071437505110542639446441644229594083389043059091662142618108809863696281636400755249999380627404386234615928751733243982420247738413223799888576426250851019407618614205392755533413044867718795306013325515152143830873105613196255919085258474993891477488378611995490372248808578245792168924530940354229877611677523771277402774335645622085188309537645882404986468064709633397067188126639233954984927083551654590965134487289804534758766421671673162249378279763670154365047061339570232638047060379750998428624570099238254371332317019195503178367324792701346544869135409217107482330216261724575410741508375053660240321092910433594913230129433361778063996564969724770844814496229697076327922940796124775241840608797374341422845438366452396645376297650807622379390395789264172540202702372072471757459843855158886272577373552309992798749502836588987100155347628401194532293267750301152693781966350008156969976675693122055176835959973847575524839630227975372948029896885257325192406266507162150392681814214528560149283347273608487922344399348695389230633264413306817028199156337345989150608914103064905942848702457594839869855584365111018249920393247699788161474577028111767141711487271128246097424551779780775139717441734504941613295784023536860495807505536309610102849543399546661146609274987468137906689625249682476877858514431775009421395109049658365174318159362678863768714805362198898384294147860381883436633035612049153885183722843090492337887005522182586942273057580903544537807324413587760774529571828768103884930713607734886359934493517649260184712802834119404185155606077132928618905545658984724688909957186979022130589632067823411417563340365536371328745712162067165320929324898567528186371225964365973946815888011501268967880481980534070144607472435272908017878185888663982346713186342205920138063376639596336698759812753862088279523836496271440130788293431026494830780283585501969192917755003656819019735372499594440652202331397810822720359348345888045045094386155553875191290542484436352918954159268477792431478467038947560414174035584550005128578386448496321069350471745174894089627784950789074551581196034946719973985369728990625528005903107731202642302895301730034831368175134685956802743364818933885194850017724603093965459935097147382728520031048602976923610511077317000514578924431660614216241040999704293298889244389448527104014886627887142454641365398393304593415049204575237621994747656680685011092770699094403955766556602545280226057377556834775078942775743071918995341185040830261102975897437838978496746953527622046486166376222831992312056664225605093327142424244292718752335447816683816989434466045295810727715501023541699434125434650019578863893817567556968276970152189508163991457007072171410184090248405099374480872657555307002784722052856024775707349217281594322318576304403958178290236615065191135455952811158936685906907582576706813817417021422905110007238857108798704854316163155055853417531500010760568992634418493878815290289205350479468474274303232056535383552499170199711954471898208644813021419543963050246500814433594895863245641833819980344480371788321010401947897147775464940939019706430945617471661933838049010765605940215546003938087175560151804346867378572465143813426872889954628358982333125216042600889589533371652530326489310599279332632941938631224185288132793192206441706315140543963199527599853746020877976442392999273507601140815138781578328238957760020606569581983948036481041888415998605737952207614220948217228112676476538582420116325070488424944434188511400881099936090944292407266729500449996296612634659751553622516847307111499108297811618337229647881374228455153402101661391467399964027531365309645120608039666745749247829655894141651549615050566326267312191469109913418575572063812821617466826717879210360035342260934976768495102337980630399658717347774588998910183411444548508635707011820723496931641071930120747691702902180786136286969511997975857958724639919602121093202030695697197411952898717320724624105585169329169521931360858346427006581360073413755799657442389275428529779190101876228076145974399668787097525851805980409419655150927224172871359462649838102197125166727650327358692537353102297783354365400394574401177546291718854388237389069327052181046443228141511474085991890373902541004175958430020037718144415253114424863305563483950821705860611391006595148426725146135689204829777374748265624571092998539453394483980096959102220507423326187458041277250166115785307953556405506581666227510305984349028339723428170638844889092013331964588037222285798171816855948220988891399169355506702175789630997624615317471431844999965201025303601903173693505419234640480386167557934599463510862203735033575091438044182555163237088955400772022390303145263481918049985633266905349552088395471309247200727082017622941897837347318051129560180248275277028444565814853355594141871544205472661915787684187051808862307292401414029989228836647992015919914087758573942697039392632607266827227897523256825742495982358456901894822149607390672968892993161289343699604523071594714748711750132224467388729437099403996503548211722698637487816120358882539015140889767594653680154804490028359640353643513697803082599037082181445876442282848113012698377819543056796452231084446093738471733352046265144534750181564519876002148028332545076712599288803883039046767056210863941422638119156316639725056459036869920301214356227349975966003761474611524904608629182451239780415865742535439718515366845778897699737234003679109871417098366271888660128407538673319753642546626033411733318336935939978922400207849815685557608191744057854017307154399738265836989537899103205013281118038757532860597142587627868576560391006331650501974551948727952335907087854633900212162627665311694901792442347080738907066880540059869785412679850582389629751849438096230944401761201306770261680800016777314306229981868006028623302782592931118786299523675494573299961864945318596126165080332506413919119795515441589102815574507915189100247756258748849141347372727872710843199033639812872728419489977950500214665943051393486375242633177496296140941974248756293243432505894088429208921299147695945382726864999490638632376791257252455413595654002970273689121832170929946722382260505628326198467237712757548357285099477472937750362047270278876684141222059046679336622380315402926349065756621598336312825295173569513094007468777922052554982610428381546410484834935306206939711783031690769079269899756178787845164508453652199934968399564199754734492300444998649232943543040425620803032682034000060513966212341367762845678125168030390963687524953738778461473254341928522703074243580300844273753981548069018038519445687281598260092896274169897222921657888471145950088642208386761590216759002317492222022901679991847385488337631142601328748337134383725448588463984019208598443033246775518549522690953567839266381877709063906937527574430654948768599568457520533834505776405946363145908902348338373930025793213571283680130852418276495815615787945820285173381552963074085532749012107489994883906361629915440526240623714823682330145170655646336070588212496141385182859782032134385309811820227400745377391859381407105559625445274418093971923211452462612339398854312766349050111512670006804966051613082025423705766487822298435374039474476843568774147612850038602772989065756227273263336730855839213266578334400660648505815364381032380145098627211649919498940294502140365537620661306390878429312832124138924435723596338961738551140024539181979885201710740547018276279337702359570571412275137636755876951605814947580435985345828837871692708568425468486338307119978353818228834874686803167534779584886247083559993678856595752323194478642336462723745283808549063152498190533418550580252417652808871242233818746278212303540830709517266712233752845230186674665160775535273299111482134074635099046448700823535755333946791057874844616532011617427285245641069480403288779829958304196778985477768143616137884603891529084602747674271118005137077966156626147470739720493719516070583445416776975297148433703578142248184155304905843742218141666198096071188390463381497219707868687029223652902156590523403668171688578341433061970876432205563999118837887950859133368877487680457956700645006337795605813321435249967573154912114187468260631128729923566375244840901164620202082107205431564527956979835044684877977024112108888328217313710803682046018746482571958676613528770994561474808495743748424534102448311154945094330203476734634564173367989014344144033161183386555403369697009502213674656741743941851484425654631724863814456891411391616978526193743067277370989926903922893384111075724544966050057007943797867390155854122818462897227092448233826582430313323384511478222003787915251146197564001134801807305468296533853442571377897148520173297235604372303909775106524239771456886325748591845613961139740523288674338349790389387428854467466711724508262174071141317244306058118499553422450823566790598585123543613043004685365103999156504266478764239831120560348757418187003021090148451592152884339739311062371951073085184962453685525377737581830328309173707236068539449172556557428028710720135068915833520055420966534324871368337182994447453405654515749334288954922713870004850735386012148306689948265079788314156720040365357219197835112211959122390460072727382757100805839105784216553498217768464374141362250501941593737361392292613901459932862995192396700472240541882584444922885902848220998603566539631965670787046975030699215334267101390940961489176703299405809153981302642938315225476947405188566806017806310981373060477863349170304571527988438638710542136897967954799919998696831854315194742730170192489248744827835544042182308612316414827478428744488255792096230717495810844148259060020387523755327629552493568233209030764224932735654571071975869929677392825516726094844729033354592189991199667581505324651741841877278545963057691766287673580690301043610608274236576413916574658092428194874796338479084592906207751968394300778265363937588433451421970006778590281643784206244301186967113080230592905872357021511681848738295619448842573358346712766895986509877772194110480512117378722206676235955100702754012868479949475972774968529337662396957642672716318664653910883609653677320976679559909150230403505796876643863076476983991618289996844377143053754268966590777210944241334770827255741874434403670126067396124402106509473290613317015311179634326522518150141480175864304574325155809111665291036259930972394408491069189488120371868756115712522213896974325488266061726056959142957268193314780505439038977795681459204195433088922733378273858357219529585289539613087813352786676443900078039629902438168322785245343796780895597534312153776696031101580995947009602415219906846748348870061972058998147365361097123954809233954173005090620799990079828794534668915401706087079088400667511358272093625277900512082237081671527653628181751060660634948959708763307759195306857292662698868231057570708703593877131192924253071449350934244951894722097879573974674715041611339896020288196323206302907010252107779005108065224071186945280282570056500056313722577932501783769759201273839597947067555021822293644064124524228841568798945590714013372143136379512114392718502435506415053661774771241633768043725000166448207337173010403847657577051054529703784772478886624800582727961668471271808979865479167651344994936364675042389739077628504029777649949740446575475808107150882862783247816973973797236694409475672882657236520936375462465196999049902539754741818912810822519951704029100618622187172450896246741185890737288860054272785181212286216242626580727632334898990356363551148163624978539161437241647878695393187393147019304590287134220024425620336631337407875508526268567644660882253318597632239431751586088862562571574033845889781984486089576479414666602079737514761894092865702772549536334401569127264334750694690109188043219028418601977035525235465640178341347135707715747519618997564146180378106998105936698047916028636012407643348074027377102515247952723921857561372777641442549998831677563069359918177870545836291533959188122341728825731933602497009771302554977669806007078127728972892278282068164687052512062907382330192160009621272131997471017415999044341767234956836365969794795934152612970203989050475659714498687317769683808151257426585329307319807538792135137444154213469174105004427037486978234707990507353567109088183216453751092435820940395269681441830586246738831647311518086310580507988846727919374564666793414190739291779725288584463623771457082152151185653458000857587860897919617604981744589767623556202928111041519827782642149282115753589691476595621625068250360881563021883235144845550066345288265348249527478333203680454272477884812604960861380513955354335610242992723137806097191792781699834407531755396097868702504309793680283839441609667730169309679933927143876891408936005413016273833669461957547222638736429792622518569374913930401224505622614675279859233142881213780046387871658045487642957809789840573854687212932637011059659141118811675924109010717445961802216382984435190597558307503527327302101124936809268978165364353915582635477628963257071475157891486269703724047543900605264695429227950372401205161162551877712297647577887632708515137170051708357497856479267631534426475521636378728060883856991243395876330584936610546351496654354497721191270169003729358284681178565612212039422418508940104118137746880480161537301514602508898099376813939266425116531907784303292599669669643772416691437421579793561015008042539637775784725543106099283694632914783284275468348234245185313834430866577287835959705063791293747179608690605169843128696871864941167450679588691423075733547860114312710674395953880642159360161189872049019654223549230809855231738894379531890377998531456973041606264797675348407073396350701208227014385906552705062241098524268436369997806543751277909190485516862163354485683367895733410979446927790928564603611292094777778440762525794891043599570567629423145070621081287667106572683367790058921424558152788681295965854474374439935179971134424730707124690021013203079034459775338217173721054299386899378008415506330880453859256359069504323832735261301424986615049605774362317637653101822176242559124823645529430513900633305969813895858870605597328743930612199310145559333020929292143398748818322099761886033312592426855497042331780413386745558429584993783346444608405015053906982007568387801646150472209364646841740793293241020667005054707036529238551892768013875342292460106575199031784620213632771648276878595064940222956716339505650214513990350850122747405301701741520757089768047665892918677809843940401250286555874140670915877632756240049485402507455038961843465047638758866419136962483144362826616864169921597426313912995488079666731112325009580793637009811108746568573703724963525093849014906714965660394316097303660519395243095879361140429750955872619961391252634262279697228769911715298781003194195458392461865340697771121214616394451068827975376204736683530210318141384958198641429821456900110146539531404053300510453215160299379065584095088763619129264561650209323558805958340639665833626178946521546534870383230806012087230909571380842498275226365880504134858509812688933825236356756276366728922903091254557169118925316139064750773847499274410954504245956863002518496459014157485900124318184345722118802667416875318795031539663061325071790381104953486828502791921650406850443494749190645367724700759903086598881434091086120343896406573889798966489768468775040365246224602980300895095763821227297839171524278949259291244708000359720769549236877219633803808749930282951851481309547958832287886248244009220253472572270629185441688350447396199151616656102246448060313144350798947189889171490659210128501955138827016650158372166364370387986135336786887706718014373263209442327939187674028125670737540560902264048553865143932076263380332030730328278451202552140844327888560694890665845635400491013595288450632759062476222137329312279894184653190297063434149385004349539514399820507418157770245467162035932959444809490946203357098462724320589674350360195587124383478518484860619454619564707474716184390976337439177362878245845338541868509536343155335387944502880387848696052533190206524439070632198508195718571987998823196353543962280678929580775255456843804524768812163803862344012774236423325849125510514876006921455897531944105940572399250838460126511343466142823795379585108123612343197736725930686081051329055896089230142127022942021648793603688140580053001236884962046731499479335670413405566747092684587058493410512314908835145598040526298831975943929422292523778646189219728183959004715510685959065775685041503676093327604902930644300553310243104967476559484468538552796744693024175000933340648602813133248656273863064458115038942360247536365327571895895521462158823514935422792552583089217234436501484403748066216917327181171330957483855133563273003492962477647196422836326075310311826796026731028634224613644341914189441410898717722935453388414249543822030840791526045714534678404719578882631637300919332709014844084504017217079830694097886225990506970357876482084929255524416666899312872009076413518793016385597371523597164919683622998111088851495217419882597057641253170474388160301073311595835498586497837971275386101977055073299716772231117384710210940801920737633555663453608481478505850749695215553812506808288416196925384733920775448589253926826442223113680666507794194924023199770379735523270175138281875367947818434956079863091708992358325783074180441590888297680167898367557896592672056193151505203989757980147328125618291965055558402809792216832774869037599724844611718414218255043498769582776386215460034373447974050439095204595532553938550225839345603155864664016971783464484582324088671974632113969415093183696483818554633633611781282195534572158182570613924703741449689218556746322871307962373215439847636982584510635355858235849595891909294145328461308846626471044637718984146037651582476392091744334343079307934260646588428910188916459566961564460388701637624989820494795388503046871021159696367462211193793125209254827597335039802541144577905206495580720859813894404076826784316956597704271153844437469085066912110076301899586727567737304445222614087788548296429016731355814483170441940959592482148377487485605252773721371718241012038583592745880723363123295081995332829206835609360257547970400223056222406833968144101641472064930283356048754343713758254002873051881049725319087575282772873538064510041169268481602391264930112085471406707404369864049809174784533636958058091218607167286089015390332339804331433952581351727467780686086911368451971476946293295566012888325749816544674991054658488563734542035918190068843809094591673016462082818507739936860110795095876296501411798575704621746900407029938393614000438904962576379702087291656239026944058704196152764090474268294208890981599089527517912986258259446258139411589814160110127262484864917313669755539889414741663130196967363648755267284976244398323541441870269866534417409562495426076502679891726611005073498848750282639400636316545252134801303033714007249202986090042250329261822206428589013285588399903172066325181616798443123134700673788257537428314591086064232025200387937407592179111034891007288206352017065264091859304528932445286834243515869736805079516691717283914994517934724436054274365423749111022326326461824709420321668106116087040731203009285282656634117378868466374443185778241886680403362790107921221253282631651937655480792208683720883188898438634714267015986752519457184457886124667914740586208002861675361813169180385166285979334149618767506369827438871142311649362503803638302517739215031659561541982150532648992026837285193457582540196508324942493074467544750606359101329429311534135450744318542061507303899418295748647413219420165060634485498530094676014015587042128431520862445046307887915188604192749174549330811643868307449414773526935120251082339362806756129388506809332756022743757481380981728503357977175677457564454628648344450811280505327919593149766715317337548163512776196025542076561320820118551764170126706482612020649476504886004497073689768713502509336684468793308950675889014222523032354596040205362071010584757991894022004960491753784630942818239627015619836536390642809845105469122312481913888755869864004373201297975166896965786505621570677083313214588478031869910933331009946944916504363310117912298497796049526676243428398745097121721772680103475854384236329693246508747932789311462328385390752314780749067938366140578701473885834595954634050483187123065608518829579842856219278762744665044055014179413094643300692144385314632864986212629326200474231615007983562562582674945277578591303414669615280757177119602629183408378807223885427328468636396916959789495862515153808995885062337440009537876755141247005240309657063004902294613977839999305689266893559030416726198249262661277565884564513112148036137441142570740825716613661232216282653530232440492786341996811165725135674611497421766812830265669740462786020046271447337785582885766864956678412310207401716862845780339710899246370777532842693915195630462356075176606480382666619390587486264599593392022262954310839036749417633251878149077061087827914880063207908190999888139296418029980246825312532359838004388724749161995112953952235470577673370964034134885688504499881556108021731975472974303829655228700728379390227628623789011222942554070737329643149346636554991626243647599196971031970287127510505035911912917831950316416494291790078261519044674617860850568887147511654402260245292344616054122279231506664449058968304088928170895452684423711434742317899753020156864944831050904927885063374070209702039087184401681498226579119037456416740174834439912105761896948196346953694233899513749529729272216930845146051272747493963787174348813224503061511836854786151126760425246014422863139877110102385974248819813093238171817246889703762820656374014607081863925766444704948678226248145616537227793955004059764193399817367110124206263864892815377006574861882404963899360044695710017460285852979368784840486227844017841109856921893843354944608052750727486801128837054378382564552744270494783447926020162773586401391365361978234873659952913431583320415737915793418126327553180607172218002513820764161321596371167803065786292544425500913765706409500557833975232709878610405352115398935424877536946838762857645123068933493966195894911839111157196773245402694286248734670802273069259687218228265286001927363506147932330984628346153183888237744078336053278380504904483551645560689368767519867199631257612909681570742464718337880551974832438112476125400766800870675663730499375714322004035771801360244592239357100938264387596777253867270190819808159436941587350500393002034176160362774742856980196351524115514767174111155645210669639054692621474683363712352731344883069230436373476265782653682693328351582556129259580468430438173347093547835214417626668474873063239403171144681722756845097283349044447076667540079586998984473469830917297187680493719038203765871587924540868918365630573705782783323427574951224214877110355733670512561401503365443685427175654174875005302133776005000543619233397906576782313855677256566491082249816668910778351307483899600418602292003067235219575612652280627616049459307514534951444656965406982099139429250132683675627318528484649917529494153840021091376376005934026762257375534131041053056939065749808934728353820015211234151864050453340419726534037073134766159283266859833709997506908280027323677408596904416071442011960919093365420027248163222348040211995021061469559187346455011924985014436407618559954960835357193477956846690560287353638402995123834460069153413464143061709521792111394297898205705904946710897010758111170753983773647006235799792906484574489774993016998404454779027825249029835636409415419605456706285246582113923107529262542289470254597961058479421842068790798291142187694642030829725412697139869459509771755483192568212951768876983715073203422507566129555214685065823835411983815520566702554689166445029367605240618126626342743068471066451136058962461055559252897155012178835915566117952091300435825966438105853247655229617764170249577141403893508951561205850977479258129799725108218587078698282334796442138409073744238367180508833282157328788772388832414330355479213835526638139028414350056255125850939559028068490779757428091866424466275327050503282202908947729242133363894890920219568506529729485250878071279140430840518613695057760919944511817197081811349057445189435925538911879128968833092154434662349625999851218618778555462941303723275918864692112953325872090809379833056602208225306606121071223029119964437587276310890035863940780031310151584156804822244016156574775236070611887233699623772209867747941274680898537973245996002051174851654656414414310880358683734574017327302854548986847732773336143473947191288789644110751151019318453153695222303663550022341744053416412841713752934625489142138986054349671125138831668127715549046579984182025908137696044997466282462425553880279368151827200179107997597234550345927321195499503535690596275105790629344543966112929727442895766993423561665439757009854470715547107355553998646008923421785991797602579343220718632706656628315068830140770014539964056556415524047591508553708210905846573347482616376484871454603779618147068722281211766765368076622586166488014952693886338547905192308889681973707619945601271086554280743793702765937563626369875278011764525027750283202462886709493852526285137837658446214623736913481249906339722139139807442784755382481918783425815791666400846345001686667071959027397202827294970386476132173058819353461781591355625986284103559093605968667555506393704623470781497025582463021809517827002823523939124287729446291958299984124783933139330677236524752277752866197065388095958848218199328021746699681542770608425557338641779177164757447367642864021949926516918496878575667483840966367879964409454753088935601970478197849749634887502117698477291768818576255674240673561877075281781228071286076810009970338671034831400441238846166701667751491018675415535250641775210617508333216648317677431623129407594425522351658838312476651443404773990490986971630491666337188617241140115121016326836244870640992876728501247984003286316950739831645764862941475316856795261414019201400385687950186485950882220811197988652579731954524446101281505933117411657696976781387179264029580480014846987498934230854650170911238987278309053944218631264939301320552770468021051025634510940982817934766784410682467333969583476796612953926939496759317805101354956554609133561718084085042233160769376349170875195269098670440358353155388382117528163526968319011030703785347740053737713932500103340242974676560895675411966014883002137840833592728824110914371920999305554414587046869441827377320335016134325444894277976055091727702387922097832242914067381839221732942889862606964111203982781172332376694475824263032836506787679758889226743405870320079050992446592891187729541152388525449391151949833970076802940556402213336987042860772487912927383638949418059647228503615381253055675055934100514177522269536857452172335252092780086588170396607679735985190103783741650608798275244672014755744612616513019045796523167316031732978149208813002317874151153376493146573716853867620190102133768705180573358398617520133678851091779028538707637670822076879809570080862663138883716858921502979062740492587060178649085230492639450355751079728607256652078085994758239585232241715684507224141537941393932069600607722747592875982191635718203724550831346956444963821285378892199190080162689135355306458526712174047211103533047021524525773128074718663085079861656453540897570854428401568479083833650849460297919165334079757695730202923120732332238561630420543520554973918876138104978209605876590551768009983917485768994610908216394743583250270671053893328698016699021728048537592822483045819671009178400983354674651502921373665571707740013625303489135638411774702784507738315011936136964802825911295695575735493003317085647230167240660634072133296297169721718856339551643359668137790944750934833697789453283928304403573088383231818406652338331540902224143862033257020608932930675317179593279187287001556920176246879673499071750634484926338264674048437308558905355080068890017455642761555327308809634721205379410280090582627923460220214966748640040468821258124114239479853519406220101679787254955824532088652672538064951587498820473536322302060585547053202067658100176356860370359537909012609416296537087129899586065403170410870803517832702567752147246623741830244405923577772550252133512617640546223643857244244271530123231548037140054703045035068900463662673208893256150106765071448620276705510477308834897807093754825238119505156349958550168957888446267350414214269443777643658765128516405007623524122136020957390113517646688303620553994264571447767219768502499328271910642180808981707816440702192765725908456419309084856627469091743972375498557673298909542178551835922992000838733613769964736999348032668334753045140897619614064616767529509187248674770489165456219049063222408149256212685142538722055138168594346470878584631947406772104219164452042235696960480890927204429744459613292788822008725980328122056671712309506346583352764656686200723967104841925289586229139661423274296846718403822571976800380327430728503205017646295872134675400729557176747951381156593227263259025131778375885544767200412423367298102132876641353406497913344873928517408614247655360265179944542329180345659901135502745982838080623863454103971669665501891695427646414862303044885290129062891580460292327184535729753289593482135561561350459680321957117821139278053608551673022015320960660549671674531940711609178329531663379073462076127799102311431610967837537061073421964549564660120521515527628171657446940662773640702313582435541346338248348044385911964329856993434230288565582631634678216574228668517162120498136037487333980873568323209419420779078051989175509339507070819183740585027427902920442573967332508275938487575158052567453890911173872053047451694333345854792488383579331009922231861087760848490175402120181949442245556872246493874961386130248120216527512504682475018696457937450498520158562246395999910769775458814504538545819444430715530030715859802975300749551268593973066156187820152397657925104707172734415215207299606853937276981827737936914309111854191264740153241041043577183322716884109181819035519801004527988878798594662779222165921707688966657716845043679585291848846692500003191852719012892088631787785783900945851967849714666281154837761638064347962176919098129843513020423171366137974441794287033289414335249338457209764992763079791158045554713084701134874784795163446507101039842614474662113098780537171942125061648257513088691504036652575507395304784702612415402303780992650294257303744061584637536978193748965397214934908064052849725326113556168303549074857080488908066827299143091515760939042179093143464200041617891869658201957305771591131388193584714289065131584435474297075232131205966551572462890661292004685964841101044427352299466915696704459818385586626541071215149950555174317232051517580053891987944593520763483259536649545765309762735190228862863757563482378675899898837512076899572598192766472154668397264084998673121319686905110036593571636283593352551653474635147032259496144590918264189495665836432597205213549521825856481449304250207882994272102555816276836508536251051677225325666405432445675654177518176838288560712453094432226846468208957258156041058691715889191111309606144038691301583893227526095965609842515668459488134704174894374057562529853990315690338580899483117125288501308632264239620735772546657729427880172830835844114109390639261036674562471722030312215250417103210325725013871782737403638391211233787755297972758123169448386888192079668883083425022146929158566226744996023898143489308388372268769297130332500771538816867025089851193410575400464569789395270708173465034942971828450978772866443505586196543349334439746720354889953499385533892113465282969973335533833300379948463926931747808248613555863173376294125679741272273331104424419933613854673561798425268409637698482567808756476283613123352125222887590738281209935338571332099230566149836926741838058069694394490871759988618324187205069231880029057595375169944120387404230227887710031497832620397205693273436649662250991107042687771951622815843968756427570517960272793858529648902740405814159710987335715244949669438170944660538978531501653115777121488847565411885456796111313155161077514662573908184526451153096583748786757486960761192458837222121625610792548575589964651323416803339579026991994966496433712094348826974387326794776126211459098212748646489568415040330892588994735730920888237672808397560291119942010773395124892879269606569085646728269762196186246719554660947050260292090352373880393382750987567132548409141293328812055099709756012663642426560057101480879762493081455082601632777198816898459997292130894174218763180510118248659694695058093134009753855177593786971824997995867093933038019920553057372346045659994324665521752273704494082710553691087420476617635030445423067189563484656113256020050704155930483118089254802613462460464116192985274085801826901094059524278885193654085376074948891634579876621499021723161273848083728639223508072013269656395721494421991078048727082887686655872063648804087781597052348992178729089663701082470445324822422971410646552021531298217871260700239159808615848184156124880493897246274822521045076168884054774153557182400063279299947453812657019502482711009553270963889816107207828617848041937590922228067234442111164611834466970739487040034883328318779879044654246260975870881327428479009049720781387001889719256766572850322835162671601079062618526415788708407846171508329811586136453585819663021825629321625764973623028040749802358901984348194889525352967682728474012805929135790046024216215878764034249806940688417503128858222551740177541903283731887101588483376411328951093311703139775836439620894014704325405194916367436956095911027750489510444413632488439261080206277198264630649029679342617582368388886973227555119902573591353078802461158343590758945643237629887757713005462622864479874463000418772763887843704356164298365630590125963261387801887771630204906687029789441095426172131355855474040525790413992208674102544893684071504989269011021184844060340389414297185042602935427649753442438698598310869730301548014262714639089429873613021925517070617524326870403673644632135278125088304474881979353447506419391427609950677003099297748307212241137689159918918655092118201032577791918699597118636149355648841028652365605086157330851430432993673613480718582541415545285980688169637421710120426131113556957605239229311241090779779374212111640266543568606864760208523272985462493236588415337761115584257500164583534041608847250006884517927952411169921560192743256660276969480545700501611829638578024569119386600814654901370372380750558687433067912855851650889203465490933683987321508358369872516443669632445768716503790416334229520694209274187811610310746779203891783083318671105241709504337203302356935924649688066453521467116216179821181434015001558664073613481093042808971450889544304959050832413819076648370874386490990378525464198665660112292480521276562920037087592713341122225734688579052605451942307846087476387977068755828026343620283789501313286453689325178250299017133560317502600029693891273511501822877031355591281441821003587493068751799455664141675885849300596890056289328240779541142008111431334550997985083608634502969716728482942640823597758882742979687660383109720315401033766437323198998844005400145407936483088806073219834835071141514733612243336311646471390457650629451907077714642480479894177078531199269344618386513424977372090776311119445570105391923118576302747031630672134566183314744600869670179303550209314127433546004591434705281179737341505156470474895366832268068792091339811824252418988153003531582474169588190527586432259448907486935432704143088675878410484782848771285061646389395497668339285701818219545033481919926302755730010449027072846234844928183870330115389786110836029260886567911378048644490729709729116044117195922980515166825032543764542809400172727931080446884565390318056201496862830420926142103019807210841204328205998199264271065964093228836998836225745334792017024408864361055241611500828175978947425040632873511233150654576159524606121900672644381956720156871478497998143208628118970233301857484520683880378223935228805690865789139352809196021144863808331920162353816550636300519939526360298563934460247605230275382749267383884616629873881544212762766639184235969814580419433520315646291365465996340623551989443989396419473390282833773565832422179880481115476864817766796065233706600568508387202302204291479948713433308331330891059983965667394207256012435615194037829699971078285732101364409999423823717916593380141487886588318517912419537562860507891254652458120004978754150275822637400163703851301104893215724878298126972717607565711836834912175591455821776991817640613276995414122991779115340545983272298906120949937690684672359787081329783614274098394150894819569180280584343326332795982698379050625939245005006206817408712685131545712828847463059172862257182026128053500250721163132356067636021925248703350482657020190992291151741202498020167677226574528674506178810268712747295189560155466593364493536653780120628367852320769603418842150171933400294709806523293799348784922507149949504254910951111250414683519366466379169004202718798637715722009527058123213550711409644503449945448988616445771485655098304884544696782228611790644122965116648872198675450737548809780743858998199823984245952573364859587114395598418896903800591354236279640375181574611936369500686819797185831198568480870175809148817912583772397534621384361967559318099949751002196023443998575752933738924085229433443748021058920691267823661807544967441509642294633492325998582108291841665847521799198008516181000749703779411680527235968121895402159364037414598766384159841940857757021494690846133214963711780328796003976775265660503780262903321019679258127536993097502476345516157280042006662267824739643596858098148895127058713328244184588875217782903772812576937557788840485986992039955051188493872758566659677697766160715874709640965108755210041332793833739481229926221692393202246972555998086937518476190438031912889044170080124396149631729520834788773146674302712898263772031246576220342781017397610579429190289999456731863527778162338124514144303143969199186062909352170793619895884850219401688484593823018572181860357733914482928102113060012257769039897133703396254480429886854066505829902189639067734293311504812759704618616829572424843961826015047037260786589655347494493965748426198658394855113199332557721218640993075942767104523117066807431515359645252737890020078698928774638239948315404576426829819009663671556187206099321621332856951076754823659653236261424766438309427335203834500607648266900598758035148267402210607137605324547592414226198642885110706911621127699450806119710753981562936556560721231892873821691689502665449306684905386955066354373899115498111107040982147357153447495341671320912213095757570880488724025127952984888957405830893252435310837354312405383180380624123810330102485587526027289548631501321626358779434338441542708029246987973246274894258436654713941764610672305408272480015562535435567027715571639657085676339783633942591343252287070060600627832272233576871578497829292693451041852133781554030202935874070349057536989303041519267387425123603257185928822491732622366950872479589292289045864252952075606624326020404997880000055148495237785394130497619213753117494085362370914919626864450514389816709107400397192953641771305646176986717106875798301520707024179099200541659045669838881202376842025827439491365349964223963746957015544370228839752737851777411060235494341916200228809156603882737988866054698734930522967627658386832843116813968869595608774939411513412035562148534003364209055857588178905250794781864615004310308943310186603164806309740296694700935824898182119213670852608296877574152030407503000454486302231074268720873393522136551276867609482658034742263575710556819852834336398772711678639237782863212950367163035847243892172996257040730283573049235868846160973456592191733138335128448919389108614983543708025916324752399442250846021284025032664990133334065784048680256640269953149187904047778322407390696738673850299736687281129343983136550507972489184897390097877262222476028260544440154072424599089861887568671615281224349193398971444484748881778221614730191625711265624969009690388215874767779787566359881235943733797642195287539366864536832253469611169201404932958101484560635382849439975340438139885511486222444414191474367470486484346518875334695529284559072783342557175499062728893361995194087261887309349240266253124939932203425998354517444550470113199540164585304000336403811163543645307151705850969273742482730025177622202644557066200453457208653236917617920351656654143992766742600947095010771753590813211770308502879066184769010011738855816706120558990084236637128021985584170749125850133724749170309929875553861106284518103827611725079150048782832906087640579553258823859987649209095026649717745096662802433755658539107541394703039168345199119914406961227080909145329928967460647805549262910831718654390455773279106529117005968781926638508446384414751412753851907239867526274029555739098472427318291322085723250986962587874779314520700197800474823727932685532529865285946490983863396100863662835168479755886495376457677982404029547918932365167949990004329156046451339720541206877643503401859197956945375156369799797223791618140609282713208961000627897026894036707491549764228611780621192079358075768796078110284026442577882604913469522305284099934198526186708524841245213205051318948442637479940228944553113287148543330862037858848360990155052147634704170922395761205303031317928210671862917383704509483967194459339446742139812183958302829812865879873850738480669954650917532427559366545487473401443680217023407071782835718121615514111075012026285478377090279506518904651933196035451175940455532042519505862773162470997872542974997194978768698870846127124079397811400901981610473750848811771733248220484176556558312796952795344821895161142853654520211597334373184929629682261846596890591319701393494825776865393925540862020410049024371735488738422744706256288299099823084330216228665487024822733817639060523941749195659827175444195752923293654436415624404038311462357268028203049196577792082496002626031908971465596969196591496018504668432292445517981773873051704195133054735405655775701098509030258401082007587898529461824749550608855453710274552539359156824423457060809313671967623760239410233180634315247372403128745457351189886280214855716904678082566007947262837003411896084365415656039628538519517821744925692483769297268523080683933526252687250329407567832469061377950663228630046238419692222961971290803599381880674524662492869940126120276622409603143151807623634824766177676473253554876908480866223910343149183015912557390930967753656970524981405996245885470165896453670408536550308151544612452083252581482851704391776762280408425881933051328743487127775696610869833223862783685537705259807102985830946766989773641359666822416828348168700643909241548761547050373673825456412709749938517394828317944507409564212992203135383098100326588203030805023906118731493174004101287162589852597565140464800340453021926734744251811641246328504034366062304574904374700431277765852380954935378537792782300939745310926740657687672008840662664305943845653476603685875290738854564451895241532040814385838486093516494558776730517648459407411131227367971791711186488681767721070284404220017733550289742644341621286660146360445912395420276886105182807391068366568718258166865297746998642941119615846341966773955195844756571992564292728789123098050144242975652842977633788440228158281868002874572124410692515251850440674906091894030206507860659517171049508503226822514790703369684398683228103445454982377839101216192687557241738748477790511721467477821207346819303022020370414928538898158714145368258453617133465294384810204170792109024908230293696270264067610457510638547811753638977979225835748092314753051810441086153989564126491232657012929425507836216298876377792817327381153720788802108342584163269387784257750636925525530663199942424069653252136438907004334999416675670302809757014955706525493409978168306022922028075260196236952121457161926032197678345388066129771545931006129434657670970619318898866930536159291505016250371541689931478027184474199369846990127042255870504888847710294501910229450563359476301448152496040883243105982450432818610716995777481467972378470478276227965937204029334876737775849858309486216504889540629917046258141252702361324630582507284816552302011324196727924291901373279274861101409572759843454200443734302900964857126250445752224079334246914658642291601313185851837811076711533869152247816983931886225672537448411406485711588989610953999252667870452608080714329238423374130120774050608585149156693977237685657662041183972596640925846716715321948272964867986395149560681269876587412023527835092883345597791900884207369199202576455249693146340923372410217893749420076305966288619033185740232321803599005209849759078061991185863885054079830915434539083694890688931927532398235592931783757010969839802546809114012232318736664725616973130004207764705479852075592024431247016971688744059740131441637844709767013681380161973362785339939331638961153038907337309312759404547536122239099712065524491860483385666963527586683237312810147122155742247618250763455624478353421135785636668102899662670651395150818631298507127458378886337572728811829185496799430694857396708303549268059765716133592818498781998224064807433458607262938769410605435770648935586995269760918344153893098393548353746342605381583801338608523265858610556232845235908779235601855816171400751758938888970136652462881743581217128833201377692848276483331792814826374716563599091562701962794885603942420272157955612012080925625892827834920452686767871057863773408595343574829529904699718293650142316728201995120488356188856237124118171722315763287826284834692651266432599320932617568752535389286955693391951090333598087124249450182162965708871062434955961570226971699706931540735602779082764499092328438915675601067259691105251906551937458606513745972502639398680558944197328172610473573509329859241842466255169156191455673502405040477682068190696901450208915552907582129124107304159116524406387001802329004557376414232900100778407734103851793663143733296550566303462062200141832692640092929295535052170425358596339629349323627826072565145412907327933053522377432730800224811162437607052829658692786975384592663262624096807710929640595483515208693258091816040490369307429809570458083631894864193382915491555803284690786535685602118788852508089967281186129710382156475814452130623103573110826622951348096643292913636887495525158993050135654817486029084283454783615388544828211983025711621145122163536292177087759680929972965793990990405824530493988255267989933279564517516095702622147178509197344853151708216872714409418743993280609428553581299993103070874974588863616880185145954465483478279126340021009109328244555064294588996669701997684703473618907629018471010817999499117299878175467612644840727580561978706364986209808029150959025550041381404811228057180859675868147753877830070950659852014148014097348321236742323749355366903319612059634519558561903808444411142830757309697968775018811734753357976053777118465537012582458927760158373573656115596118432991948807844111052538926962820786456265065819480910763813934757049831821515369277582802728790634576807301693224127226097245145118939727981423659008262990762491854812551531092295810296655910567031865255751934193174154370595552023289257626271904858971549389024093750862169450248973478678513644477412611200883756074849233947259721650825788246784947871611054465810353870856865042583935350065754878637599590354386863092459447440842725246468488794227347956255468727221823574989153620567366972600050522009187623562974704855166345883533191587172954359834565095800313255188257868910236581426290713474318420893435163472778990917622955217915976801428350155678777864281564672982281053550391865695934173536162933585924386207820938560810153799345330064169937079350577887466227117505400009461926302157675040402905693692996944104323818722500974715458656224188735575797478058298512344320485562980310389377872118617080929721475091979719448523440703619582637635110762252486008578811127067773945115717841560650135470153906596828249582392216827036107057856688658750529896334264248966660941080426332542038192547554146882791113338397775535676874133355383159453213143266920025418686398579982730777630230616420984240431814044547885064579521067865912468618496479367354571557211883607076749983228556391691162720623533054452962705501965393046008062052199098839610201072971857220950178701708357461270215943730188507135016810459474948071867857572720041782679040302236941901382135373844304951577432421862804819011945866068756219495767735013728501637672598834312359295999562662002429636069166354793158047451105047717353966230331301886261496934037923414761259733129911948764001749917035821429120870371335419610110115726045368096392212946915989525076254013930536022777083080867827909241641123307664869842640479414122403854744763808744483022902020438056578452770037300772336495122423040334524230860486885098221004981884544511525498145287365911001264250644164044987180628966808752044865131390950009697825408728393126827929452426023045793233164383646106301149209422892566333459720518672748813167465906436889129651355572784973483145921126761053027867730536038657606407928590771933637210627266987655357332990058981152192416377863956255815271739445323956355685964402736105548299207306374135552043368373958800749883933756390846904448212389486971413860881981025842525524193413948632068355590303902581887501000995514423828771776056469071610048281372231913662943614441423810240092642945277151355270302941156042204570009292677407299916019587856165158837949440844142518502416180228304659148114600836047287441901072182201152604319488182427981016374525456253180596536700811623769651505022938604437225163377922459442697720709495131185240385204179627444826000710755509517783957930459559098392539295604537575260630441973267993487918274293348294253434877829490014456052516158825080257335333299297038109100844331336678897485687527335809656788109676956466818015075039990844190166154079568010659344768031542684639949979907622577255376488875257138146783816616684104734460260459881572222789121398141753290146418352623575706715696260146087569796511693590142592696572049456083427347487796599342310680443986293905546075693995959707509232050488509093144706208517180506317032629180664258481054088601612487567019877272100513350169095352567400708550366223229778379762127142244194932152693853563414410976592459231188356527679390538677110264862582197051642379887340772239334174054248380079267351904500047019727512864432007518219148037844603948141474782288762780597194066162293832450835028738598361151263531153073125540654878481641218860568611518560180429257131072603718862988649013973055169159953962087174614307256956690839560236907648074427846798612689559322695826056049564560894215142020742373613816084332277124290852640437585442743854635491502284788730254489117595556922983618335312792491749451965621297728810278213136740001957472530574787690497434553258108392226402164403897081708612283320510265388052339784438799576514120669366819977079799901721762239894848781336848746583618207794662455284542070153341304940958052711983431796628668291994464277449332070745559384793759365770337244805169812785118199215631093379944984341090866236929969465178768105511515037320990649394318760030738190265239679707676468259833092609685213788214849868581577453167363658596979805641415930666258692161301474607023968537524897023942654049177031086891146542583201979725017158138695563439709212079725233834625817570892902731056875540258799734448024234157183615464425956139674927242015253220817160672011123193274467243446515911457175807437581319508331931005200424666282212805709283078236250386881322071644788299299935693374051241076076958081282408646091556381489732501808312649975307305336123045848198209148904156308678068528539162785232073653735823829754784705779322069236731933247245532148608624931174151015860501379580655453297615248449031173154390931356557778402438329672803666944077982499662219819171762142093777784309070326624102084946996299399395339014230132413205029363333529936318207851474914119630571280744359774850609465329282044526690079427124305478040428175351346181074252698093832744779661519127834152602346714678413416618016632508874674219642250048242402440117049233519484147179833530531558312317446919616736173082663974658502061994545904121656439222379680767410811429481607685999790713765153059374465217005605289562466009569497629273537904682392249377583101751223244624014093120545111146699183129008317687962025074025051796490074291271282497537494826935983535011304026160069896915803514296624040182792830394365615935807556354815193486159705448890487398974333351220923540609677820946890803064030378453301937566441162028503323366690372098277512043246498145618151005838497650521109135230764845842445540134199205761109828771588881947608810285152313314526423158819880432398283203409367616354462336972030970565918654633938930095772209012463743863358096290215079900656783682013253168875103144037552221917019430212798647170901038582489379623146226731037194203778695123349077866228674654314797042098806572354065283556721765771762944582541449441960475618799601354129316287238314669922771463120074198840012139442862395306947852130765273360447789362912450208574810719465482649690525526910944309471079481238349445847141052719604181852330557072680535824191939245793757244114891586597883929791458965664101692520280144847969373718809146357283926601382239053178862556055480214857915202139030746050574120204327636291956835896792439913414514246927724681338068127115990992517128459375517128544737741089576977525956790772122190868788365653658617766083469652026149789026017099680391415266676269875827956115048595702317908773600071053166670022090698134269293247553207254574267516118390202091712712968938615321646530819277826750453746126244401526598085824653213862879097272420162015834344332362891282296554628100669464216713809727560357678994157713501745047588051754750458836134876926992635909367907474458982685288788045736416535842961614021246551103398141444728573084096265644189395788750537777184682078134501678298380755030715131619613933548019473133558069198990320388370591241663602789102047893169171640838990971277299411626648049345939728923332914535129199831591883509352454437046850000194737360910305742366589952138309509313324723300293267644366119476181938933495873701982607508960699688767178697484373397145366213068419756668771289612802158834243420508385835940386147236639156921045481453425689660392691083875790320430657671617172997415405252788801424573604724570848279771871482790251605859606688662831873819017285474013279977692498450540265647048171185903005060759012140352428108616098099405053769154519459136174588808930435286734815035366573953977761356432551050122653522611279756618239323781453418918351445031751794428455669239441508080630528445774736901680623941470952890864998427033750172408436834234745089926210621613851003442050980503529802131111419203102047542113952257687629436378473653117197886575366094390716926180495448566090793614447027701342247450416872046765710526862354305271403354087966464741934514200182572693895345411108851005510503848018012336034521814608220949404306868749464524100435487950804110958933893602084099653006697344275919872180028500386008929669697333043354070854776908887122387313317270272960995559553044332673782994156573476329266596681882940138479784200957050775794959416975963826940307729405182876561504993482495827355284794085096983745725426488521332023069800465617560263066322438393881471168429722567767478803984628843286500106700625655968943264751611665662164083758086458942401275599353247644475103273010835793548556363244908780815526006303375679453477213760199917082636304535939950622103272448155939054610871303870183798156855714225747275100568215099148762205263037927425599565751356252968605460005573537968178118514723194723150384953375926161053838822472320979342082772598720819541775942483581421842559742941448883651739081661935130203188609641806608612972104487608886931807205465149011336393693289359369650951471350478510045473850416690656800844830820858324484506398641315739708745751268104891617605808091687659064138680372982986548240341921904654766669846487222221848405025700519943133529713101256652984378728568769707261068006947908404460243963610623991375545311377063052602958311738182177482550942760272209581385208439792894971439696251759752525884200940739779125020263342932473269784467398911452599571632638912273915475751944148848691625792821386999910497593222064057507428687246813905204089455614250527317603238728148084704710406806281565120533930143309615875417126382709232713523858012356297487043215380402007840471927493108158701353476558932778169136841356477954385638396932858871026072063240504388062480664493720108076249362363696695109543245961224532691369511751633390517702847745335035024376788293541011838552565042529912278070374707429902671653837378221151391398793375811622114928545470131966832701632619659672902606508052123410162696620105963130483168626143405958657918050306991587700377364385881609392265393738426728864867175620370471641089128992678502004933499828605074575772361094222957438707492163146259714453785539756119385163648596130211289292662887335301491165908413687785319581772884620249887793969364112823995092149445666575063946181744278122012889826145739193960137365206811558109864980940872966850824748481653956274278613709954990678824916011372400937215006387346642118037365247168940389965135804363423640164314822402408770824078396318433938168738665560634201657468320928168233068264648179043419205686015197537416204719791398285846236148940968934501415175149377127010973208958986826600836510348735935063223456346444287865679059661653646425344627180591987283749542707685396805103858006442466038193797741270531810133081180928782527194433086298054304499633703045202556222025655044668958945338882713228635494676097928613478259100230449159203120839309574155865797625882837589773665300060723090926526139171978239412294402522920725731982099055795912463703626644448798157000811725570633264147733704060919550865545013180168468657529067183905417444688461982055914683199346712424042855930007739284177274803641290202184607707870597941374677223109866675136846383804850069045042775457522458226015554332193995648066133314750072082622780145356830690842028706162200956664564155735089278026389841142158429631272638184314749878700084723904179926295791859486585484147216261345237148263072097506436905015213298348857834198740442640971605677109846339442827053175950141989401145429839478704385360524339785556580502351723154080572837825281070243146095294552527873337879198571400550544975581113043402955746583480783825783309907771696396455461403738284689660946009439033614467716049568452894496346404121747992243657464865164365177499763758784250291068056980907081108747233269816642061652090131780680246502323461752136315087984940234393959039651908087903114163666182160768794549466642040505615546942592815765581261706943213007454026711473749250697419071347645320953961226530592382502099193101639051405823001277002052868134606430476136797801470076882331504791810671993750274350915449612532823783704046329805026892945949112120525254042883345069434797689449695129909248535632897262062142013006915733062676243320597282614529268353430129483797275884184216921344026231073934257583975530170272885730670893366930295008818254016769423916171520421751865829097496000373151939994315301991600889467776086440797682360572143878716918158762446739551704668445771313137862677518353509063536936662294636532571159499708982577846603126047793878005573371736898365996429766398756646109616317096346986776158299010177549185469683709999913878299265853337582581039328421325868394616967880509966042064069524075288136031230790065125613441006071808842198294831957748293917846550031032221462274117617280700910932408127774118371565429089219355554197174272890643737115286612997435873072906924415769523286145524496071633793846447569751382616111814822847982734616160738318636733276580113795882644199900092349635662823016027891494356275134275318346483360956645339194989139993365843790365348277187918344664878844692616238744928882269106521800895632467015242840309541249851703328405935338972779821485279437549937517217552856366280522774368196853350136366371138522041094491665876039385704578544431917684670772411950776773818414049200185979244209865959504583677654387294950014044622983586325216732246983603133576372134682304610417867196110408857534754495642250103291791218086748721998443892884354845026756228663678065508385417963937608365888462785133495304751418301528304059194652102402364552276568469164741226188773657519663881598181202656510941682050929731639755914883446799781171492974295346635646808117795027359491860026151937004330154002907989112450614886994529787445896594182419658701404861360700864158404006780402563466006482740213288543566483179011598486071880176117040624194748703711045907455428386435285691854191642783738795623716447795529863070909969482583202921358132600159443842169598677631599590282724731212386613851814259195733207287780163990599170801840150536912734908959637163633842726996568848340848737647687605842104458741072490934675624399592549844943592931890851477923609837659225894696131818534037861102731202011592554904503331015242328729795771134362894427411275657790572898818461843145701748927487705201879041080734523101032970783565388525894801373390701064060087863476635513018156955965302791482612469292628305812028732488404716617175827011060735645902688709070399639238079427408129198711327002118956509666525742280170891100630116836617517211325949997034677571574484258725882072315624876407186859508451471360358631874374236519817886747546064642640995406868840697356319023056686520320775352738814741682232430442521270514537344281135715710853360947430779597879370309307110856667008519155026985070095976357552401600459662009401207633501140001964795085272336531026111444373964584812012265477128254745357965126756928592800054474686271156808464943014833614515865443358015089434049404489869270390758535617155963324580265470526380143393637880878369753602453101974310153483837652944253135793677954049139799411675790517786441660493626607455372408817367377217098702526666339683288664573916884330047401386650091917566537450012477165668911312272174232999786175546568850840069069540611110867852356597422488662314712156245802469720762217245261717582689617643950137475651054699687638182785754096856092275105028977252432770788588352175708558270411821747993558639790429761486583218308098243870097496372299151036598057601630563417573478088053810250863445883184336822284719787885269987434003290270356080295186650883208502308671096399536767394864778394627204675309607356708288770496591988521159795204472944809360165573329027807927436122830903093546204514893892854486345292327745385360638375874140389355932745369970752589978475048241838831068078190290210677851408773608851001615140346974022006492361174149796060628324607853286791552114020686205881426935338245522989461270448318729573062626930459850579686370455612642139298602631234849615681462683405998049545826845807853655289351595497964324074111809430626327127897292780145375400380140972904339192600526371771820593050622801526225279247578668625048426926522371582208280861587797187231119727629566714735557222939164508675650410011748745543477318344702165985251622789322075336573932993155402392287088086516840038534883859187987482057122493438420615771347316510132207087656568913824963327188167808032578367564997787278211070671194582576834799508363007410595400475896515583074349286989712204736049015024279393087165729239882892597149646611740688604640817385794747001178799147614810811867539064067673233250638014407399730276935119253699399756944146511805757088342272572995094436268082475105637045275071768859565648673542525861928099245044289998406449925105496415444628217779642471246747479494065126808693155828156423544465521354599038587476511708947598137173057666000870950755108179192725867921205005809018573022883252506897085300839639581181741404458322318027105315361000828015547712862563032200584757711364525845747183597942474917522964742502336386765516004344177487851664007764306265108867783885272077506142072733434724391063875116478352121236757428923451467000988902206106425280155334737982434108914687800605003940210938042046155191023250662149955902691385710795989158415215497017024045963632868258854299792681567402859016289190699198816232167229196855698927299768028048202349511612725321576557144527245568152660270418867149641092145303999659672545818884741926841021076512832593894296045124310350281752929463669651054680114186910579971311992748270384893588919594144332375426440568621626910379901265821144376605196723695741285176234610763004401099336482192742107242317344016262851151013175924156643726945630274818788589159054319389366403010568182563922824784197949999859945192035071457627775989854466574463073686468211797329986586150614178895610997831866895553981451716220154442672606496906135418011602646826090952110015042184368452242257003445848949724844209327529057680139568299234992399284602220164597892949735139673441322856890321570421231678380805202323073256908160471373058900012567005459659101268954225970795493690444557480140286367464320329643518408255960907902195046149000243276304952820592040777564400016406105280014162412045191767788254997048993557300884891156837201176265019351325120926531181692333716918000708337037367050903280860483499848874498576413756536916440593735832328676389006765536908337174137575266740753520708179892169162935862173488190981480646885405297530148955308631589469238975549718307019901065172896977255281249187073996235657355266812766779311890555665857400308381275741128119448795994115108149983215821166261052465753814398854939207969366603877940574854291991664072297526406803530568138616505927952534254295112959681151085316681890640483858029296106832242115681503688603113849803017164293579217763863696521800878225032295367057480186682229663537027220147182555233340164472785467257498415161745698932713603036819824004023451970649892930231930966500160673476692569979282018142095700602968845604102765939195496059653081077325663827478147138935249680351987546424165414273779946681417325656567498407764602549621282346093848752159942312712170230177946549854968289815828850587639185780783259091323649592947437499631909565892657577935421962420818963433687103625469560392752120303303327418536878060104614056648874332645481724886223652508082147304800306737926712620945521568145669087053461417259983387876265836867887017169164349606149239373981295548947873957716365797888964344791224948365825360836911593021478967681842791561877625752230276746191692201351483238770274414278219148059981392067437928848097885469442562173997372908164459426416082373072625394210744464512549362743020025153360004308128075109306038169594212984860383721627948724736542912455324411986780714746589274410474700838778808306080483790298245758115049248948134248182435903275057794426258479827155489726656182929327963010648533232143907712202399989507694143840200706391763233337262463733370117866207614857365838081899668692972315465899565270138131275535976522288503339044051178158703614096365353944639903630856030473830787052788655552946974848289650070223782953431331428882683241023465457667150081096697155680715894031052398198627770855277174085785945402766957009336908957283805652395584931603780793644811560817776803796112690034329812843419942512871875586352440208701375986729804701367108270231905626457394341119566129006476830925009383117949925700140925736684983318240839479497924261150234441478635691917643472560418025712436047991862901616879132567836119530504817824523885096788195807936385071198616146983337420859930082164218704850413121523438423611526746179699095145441005889419380275759123181801781667711500017496411785010113279822916971265792557916546839505644033462449250115768231511946209861061117865299748802547741501047108893658306992180151711338904054740995018596019840421161112560754829323390491676930006784889880109525521993769987893172112816551383489977867734766552521836257693068278785297269120221963679234732588441448515586756687907145833410216947235655181801179689502669173669641314571252668776617718593946230845882773292736167837401769329928726543064778525604394245138710315702988001860529780192786845286463442119107355950042282718930265228451735482699961684275441455681287018058684665268972648582171563681810595511986264531768382987746652830965115080124855123874865934422989900867556699379383480897451674639712268862914438460076261423370945414776183706408658138716794218311570771888297484627860232597848481301648748277837157309652735814146778121045367943631797104886726550264172485032588667492344918311972458834921989857100238305990241510259966785461413640850944382181482187053939080175701779155065500346423952983480326846563368932061279237020038664768640645221892692626952057717495291600602797154596301509208249541688038641752252711831866824074284127638144379288955320912313664149834880121348783882684453178795146646160373005635387551744517891755302493135587031246641443626081294307442927367802043206847404819508086934559756690331247204412273215368587423990799871465337642208362565908452998740327032657007975150568444482624082571586286121867092380577864946225731268828566656540077584272650791172403884931469381233091612358469459481402578779421946000951120920059114293541112200584237909619845185975190242308184147869018106599392461916848754711835209188410841393612939662356878133513891142967554606150801882119360130874114121366119438621813795747224364639664239961469366325522811161825330484309979110323366807599545751233003477909934300947473818690211955970424774634236066386721849818508127636461449586079888539715618209953854578075904499281502141039365316335731864568460396244698065665667598813230586322504071584265320997749746010645709706678780671564661117497537716114507985327947272466641292586737925176127306226897462999912851851343513047716337675141737222203467596191571430622761820322592682903818081928891096229890264749511502752913060311132574981280216030885930085556895646942759065914461564415297051241840697273229118956878895081268609328988973659437413042780358479718755725564414194121007169020882215440885394545697197496110818907415384502130659660895079651485917758946943613214053173694615930940053470420357381938992267017037876702078107479840388717118782993637901837163331674880063112652676258582626788270451244421509936831626000384098922674429669086811707162145274256247258613496495827451156641454147091965795577382188355316113352921376447940184059620721080435808503982344975721796275442924774755178301390141676897515282977728179428442744383083133916612666718877886878986195160796825435055848602845263494218229499650759293875226047143849895628025517764939871638689479650006687056645311815114928914540081418259943664534376257043088202222942164301005310225397804055856228991599691509942663210382932730268499949614361652493462924046246865304484311322660857284822089614278655179693252746539194744326988123180068561420112132152277473634503844953396947456464837518470806997699524457385868160019546043536312519213336264135523876337068198013829890090852844690165456082151263225214173109764231672503363809853223319322010722590476184171424502868044893050979778150890477233511520842586218119819499186489198108109836801153714359650636150693918853623477982956359628309020252798920269265975672423630243748452783800213470739729202812438494998389587393307586730339340166824325081532541395859269334729498426655812381361174888009637568010112289746416372872246395173549881860153551264278517993160142890548514134918612289912478286578666583169567654816740265760416065546977752346713928378052435305681942697820707696320467112010616519601554194164332786405564371089446280518731905033226359830999207808736784939600684612260617738436664412925213767252949414022147465681603728157922799093578558573842897089743297057200674750537724955356636921852830351953093008481409311440057220657871564575988331181709697202566719818299571504441870289329856158526003864256667347269706197834032493194469018917329636501875870867056638335712533586097599073855991160604134691191142013979552065327460685226234781536310520941596185132007627184874879496608514979886371046631267340224046260134966985059705080963050238932886330501050492534151485325911236798133324848852124179541233721629480060803479040378626160893783465895589360409960009871811016664162407059617480341226417344089097839424267463221115476054872687460514346660654495537294551640721402052069556084683209409002897276076661807591202857532898249667868855626947684348973422813870880558846744787158645084749154613391188317236616824025515158213166852278261693309593668368016237974048165617103689873627714747045921662212673200369436924538840181805804068174125181404702832109480647978016819279779060602668454345711417016814687904291282205923000754731117250091024163799403735267476496879964218685019554323570729799460052175048206623765517654817406042460468682226032479975422953958581557212170294597194227605374538569344390356349988904231217933441299608976511002116186325425540482632575681137910195945534306097111792071389585027951655742435907032789461089901070698132316388927176818249943718070748798529965215724278597920885624854676039146869977491709624586092836412832483868544268822749164202336006124499648568053785177310958722210410105492101749088026791605691908721028440609994915979963035610318120247620744554954626970581963288943680212079402633801599019362479345402987871372800819601113110357615286063421555914138961850316686191636857029894768827007302456999394067444639470169210889655926502687861330903408254462453212534395854725211949121125862936737108629104503717652422622361897188086075139071805696524532678180696672288990789332530047502644276491797563001905985767293280834829421861471140804255989758385563839183520786879210978049615581081945341292479116241936957198601662089613071609927751592156710375482552044387454052097894983278201749449753127314331730373168922733275899195160426176208259599514399369046807947082990073785827681391561877097829921465752246049660510961169334297572580536673348243173629760705401591266904003613988568608926257979164122776074388233921943610726425607153782822662087494857464084205617541313812017181077033005240892486902085623570638167473062104640844077520934006232392947960929896473633069427481188086048786892643303343239419777177574473219422802807917264019240450394898180792341087566176828851714103304316422078941549250470213025877765582253672702545964345185203241396319882909429974552752511360118598810258219399721671795353175465882390440809485774488923634817106373307659057730264666234713478481773834619846347977478544426227411399042984227726864202411723105159194972188881885887401170559838965433250327927558879884688093824839988140882552829085606920661872546049790180290697342800162068595613234516500737460050697121094891485937265633536240521870708503879936122409590123099109571565845314604522433369129734473882788802925891025964985970429852637227460503446425501502553808653917280792399886839958013972334026822067007342629132769626577410750993375063814544296874781773824205217414233105075520857815405106128089020986345242583697073548414340491380904844159945390224231776423477282941511657241180699665430857228156227498047832385264386262073342416784327165892147459795504705124797947969654230993260663205635367188225652730602781465849565406436466478322450965029759677768881763608659789872781238181257607601458479534414110308637197105301331966581982729126269044747382609566406766899935806008182283298984838581008983232975347715474921169672554014156013410499645418611454330207317501734514319121048028084895414997110815936149339691433952547691486081034469674396212770537138541658352045474620780984301178666948724427579603510354891236441201505262329619024794685948156875419775519224080004851069953772309287617429131204559736234316819370595760538529642036338369817342677051684824388540852735272555128275071582653913711547577705789893043038817349042482486203893654707109717503118437963522920778254757441529116374716034936966433588216037370737660145642332994770526236592084617364693075328050663807795000796275823416202867875530876067027754737114183079727310154597817988870777842353954865006921869215754189085898246266133253047916319885643799258233285150448291091231018975290776373363266959507928606788651788156207941080238514771901510453150024055994434115541306213858613608284829589715892199741871168067982185120612562210882612752878745543516420437164766285496402131970483603371738316242894243002921500200948281460384309332669769361825309851251783415750063961570170134642084594607893430767882955277999129618949230490964140013186305376885553449630938635382071753797658292264792037830617620462302422162487645508119178359855985402928630253803522205143684365910622700009030763048010024936398109580921332207826930046980683023115616161607750692999206261502064248890676946733932473177782242741224952864642017643986365511259650137538557853174366057355781198442932292318773715237827372682897073861407197806221779288854042837522988587869095608507692755092568789510201803676268777913921556753136621301189248776219653913385726901326508703294044196293242980223166952491481857585966728183906655558827209709718081259056587380869031524401381616635887803738113402814485887232716176874399333169861167473652237744092798535498943210971780646626008739512805270313625750229127852018227324520383971950937935155193932000199703367472498481961065967331357252514332015677989594589786503961554551908604270366458503648922834353972878279068002024350819154070576053491097648821449290468693463546389979706290942688506320914957460959781967128887132236649109268699568978245838457796070673915390126837579086967507992327198049925416104571896209111180500451569538444973500429145508073782511915652998935992908688480964540312653916566193455837580095098632898886345209846718110602622975260751397199230158151693221246516730387629991459319688776945770587996353677423882835329041627248967255599230434861848124098251028786847631706438438635106076160618163753092234683416509802116126255117263390167534458772213783780232738442155511083804960277474153399477168640274593696414992810467643881410484190137127166518718113423992234127575745260137104186592015052784083786345484741286913458507295999967584563018192474870394495389828888962686019356014113727184574978315361334339558061528781419434230964761289201178076162895293247662578832739326368774411221260663868591405545965944209285441825918703054938819137588098097287429772775247219912968276966601677386523966658272843393460074683361392406731174518133199913336478133050768726956256481784786826157417067140376270244749590158833559905634645994149513380867444989782878806183599688572730492321749033300084677134914042788643407596368194259178893736642345875314049886463131136695925033462871112793124993628107018717496371050808759783819642279008171808439147927273770507763669515674730695878459550419482496470645932181435443075720817591888521567318402089712407507308813409914996968128459446483879081608808066656739838102718589083232729750703350713864232339509242560737619245714116451629632591400528413969315996598212133697508137734604915462304419271773180134573746333795430625073812500965577165025066530130933270693489121570854043982681287008085038793849991526794082723003427808854925460625923270767131557208742512487501685203998908247021481266490713065465509497197671772034100846277028816520794918098339301183399797399471558734926636079531257497939460855446853562459434492591089659161972516051367528092180600340938541199223547667006481221720753146405681008235635989542742795514710256647010396903413579475015057177038320461537349439975771063429017183828282803013893703041719836733656766777299146052884646861107283317746362337784645893973418115430166156261134305268143405348073626572394619154172857450589899675028773127810428729643063075363027465512382510797842319080407576694263317392997897148491688446192182913840213457700082649329905561445704460228814262782841953505006439151930550971234664683617203967574691884507008699819267687547645878164170625851714093643161175081667326134475637854441934880469723409010339831326149276696089999607244403562094049678875747183348751585954624236543330456368308458539402006967550914224690547897456371749436202821065703423765184338890349831174204373284089409547363537337421125264195003906335363231402349853457578385432666130767421718270487385600780056909067065443674996025861993665403553708919608122163555089384798941276904276608605503040187894261473505427382122954121279745209475873027131452354840406189808864073617606296514485415883571964907504366461695693537346870950884806560178259862051833646365553379656052130964504247570917546429294377251979472750343801032880613314246305954193207071654777195659889812495147859955298943711685571062134887757983411913552297816462923466821291258811473696765935297679179451288531333238521265357860317684740824317417253036442755999749097637678191166700696738222582772470335023476704941545267524781532207273299888956663933744445097023663771843857066280684700340002313804942984854631720480547368965315226651341966888789677689300661083555613296959933756956927573566663275970270438612387077341682998432677715805800942664518399488997778589630855144760743818152114465627168941419627491390757051370729990300222740687017257926996008221133739321955295129917078212579672607608479637662666020385531861689076975717710987924769261133544381553405464250406548536223594713246740721918755976159399420582102193047761767840241981561725362744900198996594996799171899419126220811575291058722428006269345791705605197166062076146309905947142628295489128366751471638090223349279762838081668403623249135540371005145429550951456633722839045394674746761853777344866790431789161156734959881075718087734243315065492263794741159747877831062775990857322073566324923666417725368074065540510665697558950145440755148378467867054319181459234317324199829450105823873680867221228494904238748873322029084733288548857214299029264880619538419542962886104502006639368771684744017469246665195698989995880083606482562589679665263911420578763676909720810000815335863494103355210055444944686732782729317799357549062429824325282032206408864112335893700563428465395769814285213563421352070423796074548229483244467998177631818394992707372093031111724487744989894328855319373977485397591134319842679614076919766509723980188646594864861403512806652599635103958889162371940411013783730354725432278783750296437659611980558243426466941176258016577518020275026214139645093826140258765934654306350225352090047971599705173476924602910799965031574677485760085014947686930705457358276666921880657260973367216110123122603004854680665216330951940182930856662285479698775225326285276376098552777523451572196278022312512569381894539580178770502372776579898899204570451673535746547324041524187291928608130102677209769423650733301717784693521155852254076374341073218590530126820495267419862622719145499585794704544729072696518331089045056290305991687486008055679830986553733080424833826761532030213091510639065991128657177903166452417417412222470007200487636758796153516454138629548440347150848187635020717457542654511841939602579484665640339098200061457550354620799477311557568218067362247085790827454034910828992455144354984242615473837663437922134149945375251909670269148583394814058125937094149303915997491880311195573381491984511164434280628525506523785854809405128084105092416493914704209113162535143028428622606736231054064156441808054088859397754980788151933916486098654872713367546366599346640249551611225556577997985384312358312071350838688352547165140174111969218990756097055291880275798018786752780540563280784132001907736177217025601653554628250524951313147768359459355910302727543426833338993765274724786040674491136719648628123944506298414276684176247015608702527723610177795855051951523762994861742258838886179839299341044829335433675702412433348078629931640481679282881515941027272278586296578518700284230396661827741843317453462061364228319242586533985919722205926507080869912539645559506175874953664547703078772383476872160618968636563592050385654623550299726781750316834650984947779992410204792935532896106540772480428792623330522502725953814833647075056388605514338107184675422055904526618736162695649845449143220779079383611072737666535888990027433735550157468117053834848389326386315322477869665465500696289782324545212202315724161363662170671074063765515431915076224485590100762368765647693850195505080663167595417742393310828744287114051740136308694684070519752248311012956765018559524124240062511809713115453661961417654895779268424362302054537185072683094582595245763724046031883417335015004588494669906209460161409113116373427703133585689488843490330392271842305371398598825536713945231133772000228628715907934327052566821248443879728621932699577672919897160099542621241312489076004394132402881708077365213893637641641379595753497697694512953687491492434717138198751550080777201094356414534432794103480946060033107895294070971173243541914849739613030030765655053438732504070936657503160764165198316503077396371667025466123791524651384662766500371084063937800444236212950612505040260623266372237412908532727720570301911372648710938016545117966232444464032024063095144092917400697275962948230825351472904141766464371764434795296575508651999562376101144753527384975109770114015670244929290344373141851967651440513175253884684804714810011320160687115832743681449040759732766121765955940066056033740415837621455565890955666692797630653612052051088702447476967523579572474640897604155221424653818290166868812858774658457635089493213768981242043510484200055649457991967841525543893952862033217169130999897570660474313959808936876723134048466186350590941532258945447186324047469984170726109925029971489752590684236426478924452639052021390729421923650007005770233018957428930835022483524897865951575073453266995222708606412505371762342315810304313493331289918360967783240253691535298615043949020164335872992783267045138832081028203187558417651931209040543137533749444994773663062472176656523171765165426475996441772088003831185549372099745277896321471345097964569857619511996374765764669495588122620151292354510718119106862801113394075804055683075559596268139467206811843798216649917204537463377406049103618802552536697811352531291637399715927371465589913209346460344458257524301870688849739126241751864831802548885791866308776779529606286472098070889558016437027902827996675614959513638366204519976039624989739298083576190911593275988232049368439059431422525107111078654191008402532327842258845513445395928070116696269255828641542147697774802523062147913362314026519461534417832119168893541884882467148990039220517143409080096976738429288358621156853533674104034948688410231400769655565693666824704699411705573710249438570496389178801672922022002926765339887481464091081308643292297284267333245778971632935635725750399299984383270435173598097000521387994300420732340076269272231445301429668750247619804170350583951427217748416658513966493675603766312015739558540637881255904855034984087945893866756176938264904276641602603824559452768635524378567710003826520394364799522934789246899544601971005725077398018457378265952219334729225418001336666484453177175795452136101499652403118519871169728754863848738787889122597266784066815230077542912590650440242187093803396666428421285753601491272875104009007141492841142456522346572312802566545542933760023279359416330422386427372099428298363477561785650151004643325772296969187258043260232984844845638208850089871316977984355187357619513034868625840200449130223225579715935909328706067769445881327647522406046866793720798761310743368565356381255791347888615369130311255368731767892637262247730880354303874957232928202324330327646310426432876566244971037763347151937547945363914190840082849123277786467678846880577323884240383359898983900253641368004576302725571860823857385726457977189670112074542587558890185197002672780551631121533248146927190374851490690093090411958824576447450289494183014145589374708299332594203899568792254519876629113894712679820363566470014311492802830332763300085331415331662317422558425522359464721645919106282741603030848283786214193620289724492584823097531853494770783138790254102905715542179180554680199616680679271207563986628987681182759915889786689597547524166602776248867852819824555415896188857444208706973433112630819789327107978300724432500466952702327067272595268906931922690342088834898528306407833757116831966261908809582670881920803129456600323880696667523134951992035620653062236445529040519600609717489708550546035510038299252687927521096047548317999688076068471190577543060256898527429753171776905094211440062259487521472233737104759721586021007307436769944354422715747963709512570035151824055855878908967870929788720452432152102938073130212521037010444203563843553716685475621434973134602717655337194182671796174001353685697438519131620336832445711156777896620121546250861420563783334373226477801496858037096175710448472958197837335601606338438041911075382314654135010365085485802417242179829482133382470519883051588432916312566648592237404330336779565194149031175562050514385460112412879121104612374478275260970234350604841309215740810723805911809418665344417034145302089273344849365100862989054932486940199572472075417735999174958584879233303105361663029647025726706651012680713408581540996872411891172178541514118592272943898835036761834808123569309741781735199251652866637863301633992009169521862972421008971678004684059791723529141989186409239120171428161374229266248538066427425253478581288851070022437773209307669920388956278256612291544925181401624347623852385145978218383992660260352599195364466809980307369357511002303143189624402451272939042344521068822920779923494740451492005018044591248182455341237962386918128027321102510796025618696427767636905711401603534217908454792467287069031923383059180931777911510485565339475135959515644149195106446284978566383840280646322332093609868067530145372591912254225056415428712938003030610138818836780017938248268020012414542382782860997563334085721525496983623995405654207758772583435338962957707294966089192792344569246076714490715029405595895537152846298795371558237303371001425749265852328817969774666070193831047936010837538005886123561124075009018375052170608384726238149504441643077182314599404279498472768120344765189200315173259243308944731583861020501689753082805656363293954352812258772144652116674389294155494934168860565784793891496177544556427553153993617825022347250145080185381038021391085251083155000262867912003734692289386938452607523856778566330643678816299244772893423957616534708674898592971315512789937886174858993589939321184630041644948388861598261626216920223465733983575588385519040154442105672284547306410673184846431950124569441962523188318480471550098328046661693606909639156228310535552592044988634572305793090919386083890148953813965016758055854807000620654501044135134043290798714413154634454040199159880384202700258401767319420563256754089226241966089153522346207271852686927736824220074771666585010408229271591742006317992639628320670443454900115050239385816297267358765629331921457409861000687217948111789593757858696338164445165864963216012273623795460981604780983947171642099454680852659957983804054143593286153298637120973027443965237634059327297354370855181752664728773756053184659487173347151233383005382029504030837478983758834896971155658922726919042621602074890177455201841914191992291832638634096210492754845341385059697294631478804875326999696726846734637195222912706472262714328694368928086200292148643862349354432524727959172575183072076227448344448594765243901585883966240324594328012224335513462191664065452632018800383057111859317396244884599843688644646197441940138836092466957781906940184062000742581819760163840747950639107643137237803217968102718562557672581419897668883393897793601959256776225207546201664487867025522083744933697387445468529211778112119856345022447701035296964482113450142999824310671531479981682290599166201185461445997433950049057949755454089382892098365963270397719194183093393095085272588663848328270148797528042845981883329748648929284752850981183548832655291677356116462777274877573212494840858082584368684161785457342470417509924972380038732064999832729620488797235732027438037583949386135379148986434784926346847101120612214073002242101981961356490980921329677578193533032949089997170049731284899438863311570828785445790028898984488327093766539601626601310737858289541229776386644434904445324702455414265276471020060755748849967635613648959595811751166356271055783971010835539053315508489700858894317517069981557073846311604723427247606505311464697363222310124781325798720261234517116779131790715422095266703541825568172481312865262217613656601650271447611917506514468149693548934259135039513849797261863496897455746599792930386325382573179531274077805983535715140609898915837964378908316088104752640007440434749954488709460428018055881761499868357267641971135522265482377652115406053755621050984137902321072751309910137962841740552408280048742840271088888741305505149112590905232330817042779018031123789200472295394319666862004417340541225399461221228654857924578153401963271196294899224533379150056839331585309267640724065238031345383374624801628056218579404031064210537312190656369986901763828468427534635211989464754460970017904357176787145680888685906542152870835965936291762757179954208477028247771297143435275974752491360234727634422821652541432130495383394767043814052481838409487105928569358086337370661984045950869084215556632095276071317085795495239267252788204972486914859972454107416556622881678117253344239550174463024759551377782446139200672176978602462036942710153130678882246748252832869907323284309938345968975726930431175890627251305964178541631311063279529445697828937565753167425886808092979229969204653366248907835840846488881683861273762407283592749586624264844201424833626603555028308509106246325936301065242815486686157826820379589327642597625762149749871408583643173497783010060840987116404486583242426233589551097033987885460025727845692293791750672125799013044586722378979107047322603058377506312204508830644544461715955318277210092080733473538793675934909855014098014055835352455114628092416162044225731170977642209028556083365388165084087562501369255677921345882770919460720548073672238216156405714908425559299156067185245034133144634315859341257367429037794121475067004902303584845975421054071995374223327445977933498103584481964136722799300582858365406501635119690240525678985488740913145789066969390625790988157075533163820250387495517310340569979694153197099622457250458795117200514294231835889328502017903337506717536167720203406808491198166639976671481097478535741080017382851880945853891734642828333198935158775161201195255078366927706028410036338309369317524265048887482103191170515184422418490253765664883030853296866156139393326429663123470793404124501862571331906435978104760844195295179670210097420358884352450373804321574187817817024191889357405036881422779405744159754533576698632640977753610114133221099393360053780233472724781895600657964272476938759470815363766308220437617235726101694594877757149936644457365871696014423735757623058260463036670684094515587930802243803101030116911934423719479822363761169228870371320265758159794846220488597607242494173043715521369591300961993075925012714578521461559998752512028405103908686606622130018065660503623719817066070592046079425710780442292647986516766458946457338597932399644422761533948402586056604852812820588065442974416105812176477377152472482539932631810078362551726637457578976837905983509157073915479986486448876214072194381844577629718867668128483353011279846305430774223395517418280979925955799932772744379247956603582863412915933280767118597411581888886750236801787183407230530356953447018214730419395205329277242157363069153794290108272147891714425992941926946621141080422825000283822673801789109166815298509953686329094380594142630363277327913823219439865458006650448038766025290758922408611537066992223447510199307350826282896015564266146769284186268676483359380627745322432623713511931896254870623256970502329305879365004819606084770003228063945637348917948631725329622812552061285152584945335439965890292569169344213899438380582180708199260046474955571727364206134725431293260790212390660007732164474016074102115843366782006799087728587489946249242443337133805893457572940408560866354155801302348870621391333505030045306788182238977277240419457664028029715286648265349019744073955579299055608263967122998582819356316393088300303253434180354049854762705677391469611252926079652881011440484051725327783434611694433399207424321558270618444646889985124264004824632609615918008487684578318402295845731632743735833570076601026922230591269428281574906793629557813859170201430400438452501294136151819854201517421983281566505906193181229385513212184533231237099371406819001716165334139497166953635256315302469626617759331286908733530337215616729445833991444255652431558277234660380885989979324044820172931301505147565191760514166867246938715388904268401494640323886483960278229792819098900015059576886159792385820890042794941101767730831812996746192032261889228403037299247064960264485863083124927386509495258687394449700048049351955436783837871308564792608927885433371340389092152499392522624222519431452193057979193674425659886258266543247861473228010253694978702018139798567439403972270685634873104604262295002041249592919230135872626335241716373939808733797095613329977886740484429132685113349529504490829409826896962072929778790712714013234282654356451419456388585039265106379216011597440076993687155046140667938919877215290084409991209238407018105294045892276769094890650804808863483258287114473939322349865309051168094842070699307274751077213328667513278797254404565278843428300542457350252223661374507457366604817300667929001501199921708549408413454172947633902410989810292268497370929123351304024872112397848723216592567201165901645713594906785485139050195022887875968381452194092585193697614309166884774918552899298843716953351487245869063332785467893815313466279880391576345280237613046015476096651829870590152511511012613190179105564336928011699750393789954191296667883767775583493327366471835836552564762384279560663849031572667488973306029773164698220252675007685511711064580076497896231274404514521081954551590690779172723218934977603280641906627717557064800084389276344472328545143397087236318079818005604521769811061308370683398146392355587410911636700290486645156021923533615485942729500898512536447157441032386522211920884420425305828481044288899498771973830315344207119474781805309799104334015423028805098533405121582457908363051537285390163408813402560462983960423918168821155165429830803225841923613625155451888417595060645057291749210129800111156390776908177135663959142120010036893889280007810508042376411206837139489882322080174163490241579468314834360264639537657877504993217927088926787440073696065359762310667140734984369952075762026160155329564799317840294162932088057331318581053793624934623755652696331108069825305031095393764930105327690605104411079021547151516444422118385741358610818343246548966530782013799675268756111821844834052395222107660737777567340153323856409001838255792857780796979374225354330069241630232597545945776348562714609546946775833693002610395789014055311994522785685551359982611574753050478650910951525596305566271173676588536851275812034395017987247482531142382189932812799574360082934216677541590535596053536261212214834982761211520313050211722836898976450562402511487823093631587584696107408657991068629489699162623273901065826927320059069163875434326580251822838104834906901194434267071702573570993606112922488920386940914761307041199592767792218939651281332864972165307583700964759033425181466815990028818862345245057191671395152313882388857210143205708637006124300715817567274154158562064188555718119189346063115584132490781564691360408605406745917274083973034325457560151808271685862507441313077171536555504126901226920550441750858371311804765756700067242828755400996112408059062753626348914126091377674339076102912885451679196091523031751960485233060645775756583937880661013243988344775846880881540710460714632768255324368187419689814524840457405662889102319767563576409433058703627079665405485895358226074739783338363204586663297347382718903705994978338822785662624283904277892140572916264212695138966366841891056870828552250720753373426179343788479224441927055594921180171223651868941821624129383740471368728818798357498536960559304431401750378951283862467049664671129810164474429473239459541231219528529081597235870322677348137433839900776619011442500473804701013814184229670184058142480332674966235810720466995769981367258394761981569833296267214328379976501963207734691010095628741696485110698152086607746437991363228350343434187905781185460399409861034661511351060944179133336768304018859197155760221517753757471719252969140269999080124513135705042925837984280258355752556515154080149174796029962680312359905858125848120942095594273099831959625408418191585788093029737132775717689194796446821996044341861461600578907435184029160900164862247024116066557913471527641158678457685078350387119247033748666767612187346147270541575344836418819974020252918809376904245956809539064810284325505654998491407748574774560683846588900722413284402983920998000408527582910442027548445206275692764320003338834463494750574930064410641596411618092275981099981718659466534608878488955331364175747002393225610966733550094428094946970770602639485121706903125145191198050566954939320960404095895483136434257250221735004699696756737183213396288377761127472435883274886516423790661120494946447069236905674992485524920924426907219570648401593696783152313507517360334058180610554326772001473956491007237962201715844049122374293578937398577364036353634872421760627134572603421819335878563492911362105520067209492608321045877000399102627783226176155376815209487657610108914707840305734724805019444124194604939974581813876909390466395847807789601320011247460166833410934035488669567387292570601023654411404548713521748068116056758582965802950881922690175912924231536244786105046624575659144572973429626189409724641244863711923960783759415534692122784145784695166264831160625856326144372746487545045651718711750353684370080039498872302726889192265358559960337426116745828580247871272412560794891456412653877097373737167217028595064082375947665762099395916533136946384134143801839037524677367182451233775745635237378505101084958381450851458708746636384597082863552608940620163365685064915670450035891392363871992539895488859434661071279803918079323475857746497872662711963537304801446269645032182891930449369801748804371566113660625488194951580324821172148184385836533725934430381542243434847777592101788513888095029919605826039752155933505093355114776545355331344307066999129749249046374604170319462988821288171832685129517679177800176841006615551871306683871826298279040460139347290254019781926709882488570139854325405307621322161148088368786372971488241510946654667238888980414235903070420038011909169367746727857937662807374469210652951387857095150250388339407012221580529070341333867818753339497507173145259840571599951170703779975211939122546163592398180106724013750946606307071581937774155865945559514454757471688917506476524424046974946525515759446330811234008743675176372696721448660557028994578305858315425337895812632674471204385917788483667222898611283840678269383499264443253815682940411008617307599559128849613785144597469986438930005171807551398735173761490051166649950723638112593165019733753068824568820229155542094035567490572059976402947167480240784895301548496366215775590942901965276908271990440689933401552035319077890947496904748728799746490631490235456293186703318789966935946228432352804505016215554463600273795801869492600751203994228045089020893451810359375381149418190659065868841951263567319281014408956295337458785272197642229738840968890539160242643563354232516777164731190794880253147755275208863944941270518724468099417073996094943735512573783034667379643437264847562821703553521449280966817360773144707956360470557846275667235336669115896329987562776784147491084812714634342782648108844319460765935718054604817451767747606473736977894607576870872328214627970408004033356680730720019316850860929611005518828017863751433292721256932654676304846849769230040013838442640515298142210252915333691636666762958605250371764548648049849334540051435181986990920250889760566254391338920467446053157658424835621823922356138210863577674213098320361343733992073928891261474644173792609990408726876255445431241403109222194194269037045727476380627960681891174490827689926567216302488562211241405240965837204160823188926239234610142702731162686426376998736181890971598562932260082870179222308941711491470136030098270051130828118965799853737572876990213038308273003859978247948252914986753034789840167932425477873219757167195343025548971185936082450519555691062188255331981732464936641764463733664990426050894298407703814922908496143598002067382081476984385479916532956605306192555390868458769241759171084098757863554465839434115893498310102045610581046928965669458854354965456806203981386142709748120177081724642285450090016028567006129301694955104845700053077086301086108749427212174693866456742783834412867092027096326999531408433690963982439094060487094859081033376709820825120778925456851637299687791751487614745026758671916199314540328446171674854063204148205624641222799239759408204648453606270399114384525025631826073468532132409314514547782946612842737842140665940075533809210369585542910840878141275974004543291816352003437708356847134611468650127835460173987532396513262214407128190472451025564849728828473422643733934634646482559547140272037603901758310602107130238290839306921250969548040385709376065541430261774484253524092319427725110076644829747421537755858638826803241542188405093098714040864697078517973331302326021092555687528917945442467576375332339561292737114926747023077485302800633874430176655034414311924041148909718911034215934554767955059171377721584399616246581703792581847800599346613452411290391455096387024576757433626539339078678465711564018602033744979890901943596396502835100711842350936020195225322016462486332166753440504795273740054384988231076089501216397637922674777672743813093135641985852829632008574612206345609667662721153483664601045395753669458399929025588116722672833641712803494420721461682453712145304159195874695894936337042145333626986767850981473890157910224680564849247335854495625968060017335667210541116441212010081319939063798953002365989470829912785486464421555683702725274639350592456919157025486378324232893658162885241912652324489890591373024553645792908318591830936328610886150875820033039995663056400631366962803776995392447568138931371368777154332269256365066127144360105438782774093343409232470880677426429102700143695782293778928445035601454540640959295469629460125588892546641829526993411445482995094148489826116998329276002927436708478787493834210322039475364586454207367343240483473710013735759686785192719953953024286360263274707709153925587616502161966301249430428417770784456898198626035142890563136824567691647561262008225650221149345782252113726378363353724433242538440699538754410025447764256463371932455937348041246134395169472635160220729929190269994993577956817457849127780361557553283149629774373453032252673893915993794477093779200261249254415484017183058693541071718264042428915999641662103307619015915067695501612052029583119526243458794763837821347643943730256598802210146686478972342765022204852063349324842447375999448816905706792169668856290848205910166829657176536495080788061106722838782425168702319701728319351553868154626887260734730742240149678919568835415761450252926142348805099732186595633063395289102697767092330500298810243638961691943510785042194102616875266024245910943831661981322211759274614667859887209393031683865816671448291780263658400202718432522176495866591329347075569798761027685047089665013610232421016782010596273577983834782941988679638657939306952769691391747242995200384116553925989722542222176517042256503630318866223903554492761403707930959273407685579425791733923266471246157490972898475484490524637835781291839498223032289910871170597099976028541231268345300846899710331045864534314989447269505038154415918056402811211023602952701076886195886473248778883470497822638298291293101725785214712177660924468127204285477848860681604742571134034661836170623036950376066693150609385939392130847676926848069554846270788850643334404978712185445709096875985511982784371194487246202709689512686532148868823226024501274133718286172229790828411689076879273967619257857686358552795948030465065669385628380975202110552846002151606264667820132503728252051971918919190281793976210400518202553878459316686945680692818008358811100006365044463438868537293859947306326310373260628548148759777696771970762489781286602912839825047695328256696513116854352954072219099884348716349675612701131408164416831951068303142111347336132044538357835977010446167411749137225089142750434610045055144718392770047530901745729068788460939033906548790006250263146599977127747048717748443743514902478105557355375420641777535579648066838772270263986405927854770622565027398154579748357977304708765347583358064921488964842964824376799259360387878083791433550102994524263159296086172871165989020676616907092859533801199790428861725981925483777903079336148636793001985948529763096009083108037316404325338990283589935734150418065254822989863627420391288282439994363970126475120453785157262971881472993393854343818677521763630552317869213887206277678579316384577038387790524295476215213696782819980669409547822831815319280375290003878043150610430488867391086529451162260661557088387242093854086900383193749045192429026290436008630917197449894605242311581700397634413960857018472228373841019988447502806035777314772313147667119192485002416067756631830581847204491113317967908247811852612500065033801371799491211922182181265487637140678404948797632201418861921007341609658056582401873598088549407740634708427963870247341704079647075194325079356960836189872842129083717125476067681917402012462661882607403293024422649168692691154557203022541285379646095900981691515385934263791977666390891873455293632775536615644078844739715528164510930451862505493974237210607575907170127437279113225981679618577467591782906100446973057219263503904146620807137239335255293636657292401672273979872681499794315182189394378525947418550524488901483350311246308642407575928882506039797535805028797722114627670341963234815894637901652142636643116335630508534630412590464208863390396446625051912706680561141469905124262477230733977898760196784842302328408063898280972535738521264339311157030847766147973099780512935285475804583821639126296953557204223732011615690291926048794884870726305088870125459961561027992459984854949437450526792709719274883488892830738006070425528287664033221980279669581504515723611679844895722688633570694528490423624494891612335978004327427714098347375754890059374587571574241210216894529769235407299142643202596459989381475794298147800420543714368590337481809020269898887457871216930051397363993495473104615640778655721054904510026149131538340725132180420624178896848502125889469812613337819962551686379742463721257428630818560859166633291114765506006210981207411382108801047995126398450181866390477850268676088231150269690242238507348902980630286039576809575747378934907139723619359410719278563056661637806904170869362444903419314096812029715361737597316187125035904384800222754269832125816703976488085478645946032488986945092785588452795217084567304625896153980862468388602128785491386453594167027030187707915255767097235284971521216041844225792815375389812784871458993766297042414484392695956893344432859996672285563006465149955755698190057996598539195550626859476634744370717923029308731008979257052910082533948502142045111220095681056398218030476492652150950348475951131003561392408753690670853954251428739493559294473510063521023669561205836870268533030627636441236981075613690854408328896295683509593681235486988438511221895896356390211179978688867837305280491240900899920783474204109295340369438998046162425477221615693386353693567591857601426509812876597347964895320331220033023256074466065871102766795886427036480243923505124851355686641142015867013225510166306785649276040495401354672735651124281957336437434416580044282466282127675253908228739556668002013906163071979749626033410631983278248345239724933527693557572301441540942263020219011681557464319234975828017786422969735495414097811726973256245579659938572925103940872769208920800895100653075542598709914691997579061149915613469148511329952521969226244506155717378688322902038934541714671890563454989854623344190742621641172287151266020439094345913868192114156307311243081163140668675629067491573141136842884221035755191919072909213211384575816405363561379469202308603359512037625717133709484067616844987824290835904232061239034461743304580251580058745322826155600277711719834003332955869822043237500691634383681593094569288285375566545098296266950809174881493157557233964743958479727806719563613880778892348936495285593529162984224277263518615374860516228833545106841762344062584662715507151086986461199055470719129743641160997892098547244611766654573373435029075645909360435439399360090317138517328767270866727676038609027888217511077536549718225986483623480719944054154572097921296339089016179793895364395383629471497103786665308559261118361836521232602143090094144976873182856502449801313864613111663929315885869648338714476952716047343921874514130133542552659846955670568050568059186216747277497762408886373439217125834111241098719091982699871780795836438254766399730680045052585645821853579152981693351700342404388721558675592712185600680193739499687939765325277828174439998217022272068368882884097802242815935414450290461682711710527524919799197867964599127954726994946939337884271112284978409230036065205725259100561007150254753813400110877619148758749311520300827939451329354532526712625011037913364452211587368889044869483465458502208073430594077089672394984905718039597682443842791765232793084401196989614485117575242728981982460537808642261746741837744350833586654076047168823841361133175081617026872976514290680675363904699046695008640502460668895547235326173136418191313770564933357507771277931981937575009272150296421677682513575585853293264501444005026381865709273420941434916821141968085164472920677075358669785078939080308737662097991937726196880305439608816738742964426859245297565619777883470668237649428431860027992947009741013012322915366704428419272168810970914604927840775661043529780309963955644879821254016010262244904994785635521341473787978306258336004538628287123880023565602197469829768710872194710243273423803057493475702060334274760329626836632284863717294598138355219021727234440736383736104443711827900380668442241856279240252612436727065445778711282545348829456008307263613274380247980287268869548684048621668470677644566887557434807493965887470148944402493941268008527128806267991174667520945618208367660707019739649403478083021832570605341644378077338791277064796270333335642505274895665738258020099070882339851886367110655917712113442069526993467953386515818761283375743516878712021223396160672833386044037744552348117579937212957953063290510329480551046247952671522017587648865114029590733835945225735238709213180367019728013937930499363096451322456966776480191154068210793624256740788547874556315883979591221917199621047812789063776066602176722205554171769545863174033755644748711216181650568846206649383487437177830445568919819411290896288362199420040540400379586298561438921133499075199524455986121211504898948297509191973667710829731425956448438714981034478147213385153108874749839725364683449636173451611015301041026565030658588916066102052494114689442396111717278539124826008580229707425593840503429543856258716186582984486756119006491498661488884045012048705957960547388586068541364699889673762792485172830178619243639122681531138678629240818340185063167175125718233600068134838525223132503880598339337627075379759598068180058185675211629911065479237776192708668264714570747902743300570936379737403636790866896163099786814361279172290290395057529886326834428042591261750251607812437582577591268400597474651004303646022070797518770286548094476447110603778103720116073648060923195085247523487405799778314063753446371850874795801947241456043744068972231305321147204092806275300012833832226425652348250666845133309215581767793280250589914281043220530271503561414102767674163367481691830371707284857367714990262653166942465901253279335650297862918675645067464305309525020375323297138187961744085012528119045316964408989725348162637904019696880050030985498283978962480790461964605563583998612869061936678006513963074245973850694044988045079380232955606076937692856045181945237787944284709172780068897390748818590918312064892876339707004224831106820427003923587460841351355083511484229803684195239659418292202794940522915655848146338966837345517032032351882440989159629310459930438883715797004346025860420166771358016519074158210218563975865813623199554384606521085434921195043800127231388726396242785843546985794307156790109203869013795957150006268207378819788278572013778396334653841491224196657673507268511560224208632167540278647380141314795153093656843209228142460472590398890523768783646494439401106121708425728269211400811000209241889923242761596560746360572741215395243019776617805082581189359132664204801175824336134845282919458862391839051299883558528811312992454606893447375822693730958534077998539078953973328588602195850348742489990570002077601867971411366390972149984810396687783068339936089324900890566651659819346725281989650836224475842508685115684207272527137892122938332397633992654007969006705331695268650442783018130228960420799048779903863450588859135377131598161148874748063288217817216391533797442142127207634818378978918850860937718779303491584598344254454759521429541023084520241766525007952853693368894953082907711970001057734193788090044571732937468874020289201887033134922670756699881462807795021182936953332824420846493073994320656207796519580570506806221993787079417921451928085791522121083053299900834962325748824573718160290348597783044990435189568317204353623704282165624958613319938371036893600724799408650691556220429275787348964375093183380173554114317522118774445687187875987037855469700653974031740006983872874646687997483667226630876906263992188477699054984914572937953775431810791367029325684521578986002812229538000808591606061330273578275673278921294353896031818434759218388870893903675040833899102969169450857924312421014192040539342971225469203781881515865895191587084756459622979612860204903995698714015370951965550571285500354398333436989888524942004388073455008569912078058931779230780096688609564889616695430730426682849742728062499645411624416291648436747505245974379221487708611682334225440107026664994799287050265355370383081390954394256095462242776920440637741860442272618233173131718940989307023390474671521861758853002712075834771853331315780915799428563614018732951825953592044585420152018923426485035692015647137224773542327094216173767400810370409490094598316361060327108884467570347434407705283459203255343185967022580105291875318340483915046334612197637745272206636516887687620245154714784626871896197950135703196102916364386768389918615460337173950647527507617350801017090216271316975241530083512141500725902359396930862611303588411835953611930212806906290614328909673935122274022113706549042363811864560860221494294708178344024351948789107690725742144580648966902487664284390691301040567094186366235200818541571380040010086817716980340476316349513471444271688191275158747687137481279642547077205180953156584895286175428634177025462564050692332666022065553122888449236599129104960557142648358482770710219340059161484089109784490349055359245138227267940144284554569738198980398445707972885067319531657204298896691021753701497095700426870495108141731715479004342069324245683661465398188683785833329878523610257916893868334555485550161321755398294261115207008387806607463911433025700192829762559193113878749006133146787813647120772569859916774437210327669856893942125514675915603838402849859382197030604402019116204734230199478615164739308854343667617163053506968975054251220129926459895225184735175534007967357007098030206612047843024528477729753038091095220033849207085640036082716816531204366797749520983484557188012677606966585865226846513787933179597622821461023135595669653461939754900729931817205084006779707500019858330306417498825725990842580481602026623715616729235936785068999787073287965127125339457799359234173896196421543815114744481392397460656675198605439375272883191535306357296538039713705144285161135824980420533307599100428873634297202271990653114284955110770568699341006980482530035792887785691607736054094364278345119652719177914458109225109309811518842997335846462780684604111698480986206374693041172099589456862761078379629410007168637864740078967964012106303545376529218402497843096106395480999541440621188337894192289563279382411876928756972897933854502197856541781518723806682844136065697755686331048936969789200456755221722597118184760981299041838271413910944341108204786025776442928047855727134292039873337517707710102974909122832598341227760940637290953073740245489501910190950070062255076705130176436739949931403551516926729750883348867370641428822277538264968336434029939911457130290639051723343048206025716371651812780574643692580373988589088089724662536508189225742536654546650223644913527337427366833387609668116379420419979799309263324414054274110262376880657423024689355328770190263577252733788445044768584276131135161163548396644542885554183901472363776491733009091634607472834476397637581983659315672124077369343618303320023986124463471618697722732547187761178563888507476762032011359301715332931956936443774600697400819587584116807524197616178272194709779970048421225184975965357338675649048358391417502219476660595091666282096948435454377688092565860892604012453556231769758854537111492165302437300883156076765364043369266277610036570009615125898634839972984998081922457611030247909564179533382126118938166430755415795216921421761401651266516346112370021918435576701661386800228438935136425798265059604917981747925749055521330136763527188132085150588470743913242743536530257894341816949735233670288565949633388899602401417179647130923815594852467140928775975532268605917419552131411194767228611130619783589755243812512846360766998052328316685834094319426938743546084717188684893660794083079637135104073164920664801551815869655950271503775666202852200370965514792231335055124807396679873685884837812421663991214309671480107672002743056442647714218230499078893648406720613631861016023928409658085547498374384486066797623403779820719199724698929545868759840724814389802156060909545187149880134687896617915528167368044418356121950847239302482602098467072919991534160800381888114704328365005863763645115730455186145439496630342546174337813965047596609934532150496053400221849553692596543101966370968981502030162698009155405214024913147464283653477903043652304115034847681198309835568930620224643328697731296803441340380534302921303066445135324782685099525918156602098669337061210969461612730380417207255006461046367538346762557865293033746628903345599013352301808927443753874048094520743459676379573762215194533846690094201243415029906322161332352525064359301127245375853170873439521269594431697973468112742536395432235359513077533277365990454029745395445605529460074640631967258395324444584063512712054059382800221363168277405361067040698857571484651654710321038318622629052782222192034821196486696179325241648009280913471276972773895762899262787138237284316918968825358923516498121145331455227154944605313827603931325712411312419670098702048474529606427072060126730163867036556277613471621305265522366347887814884185802330693002423077626348059672408479016579220461260864621555780585177393068017405458034703957372440576746331492012072353213887288607197881869177192354102136859923017470493559367494189328205817135954107617182730671907010789952883723708910396758854546121543509367750159354981890728833032861960835071317157905312137055999638060054885003243539911497645392209874596249005812511832115528446087555325666812368313739501378319303748978739815018590245363632848934480084897430547578520569400984706348327724165654199987242197412800614179845800874675478572455758260163013804665213466380240742447812038678311802038370830059306615064080184976645101527266298610029194272847561200352929493643223374956780185549518124510190960016616673838473064953437977460350465710117522522026167089732527379829572467981600989448508963232555026830263936172922966927341094945188182525440331450955154238072623814662883386361717370288648395827678097021069820045498369898200711640640288356003273995917660695738852307936790889588893528059699481854714232493537162395621918560421800472951379392870649639121282549093662576544723839376907546478512033588419671313617056055629108780705477976711569087724335660438683806342432027969122789330818143161674343539252971518790814981627748398949161145286619151046370054764922740977129471579789719419703733402432974391338458634947157337603432017116433595908922680010803368239985346839318740990339846222815251956567222972444119166664093077583497543843010494183283128221258822061373378082622821165916302869408732220120859890057043974916268404675454690656232103752929386816966499948231893727905187592680083592752404093930430165423992787005868256164570450214479134878427257285995741691366606851253986737789500829911175359063124112616278854679797817000431886439114945339731423122109642136586191205662277468912971687562589707404575864012184612888390193839625406036061086829486314722007644221105699661681050003064642328453841357087137141574109148244579815417463960553780693636816141943378789937254138476220605557155739553948398412644888324597908121519867490387335883101857265456768433373184563572479279558274818009546036440902899350955630591906464337344898488180123232241103636945496540482213296679031548415387749007934377510137627698143409388511433925489061380663277274343232156997141290885526582068220500726040558622058602138549046208433204504035982079904702671066612416732100741228775051273975877841948344791032990147792077822575432995092526044314394405387880881667042345590113474880481142550210304728935313337693954941723379136466248085973933711170383088750367965501644874234143766809993316269238643628124681609509514632743782092653766103565628637510663873210072919704960149818928630554262085734270921961681401386805500024569326541895754136477670099590733612859554176190813200908797879806581891186944287303431317904397378152280114750743268002649773371142806162003358587605236734269071411791213578621648350823395666368277665953784581312990986010445245426025991965473161794469950288633725338852628293151204981330839905802093811399048765856651571521773050865491152021277110111093178620972913227323097348845662342559277531497358436466577613511702014997425765762602013158083141817614195558590150832490525494770690974044735024078455678153964025834499207322822030996662966819990992122792847070048039891696917793998537224580360733691307793602337107902439042272079615258243845854575600517830975782665634942265246208301502108721602397494024162929914579679336321183566049585341758304054477943736066868204975088725636237091730916700184759780079898071672501638893566681892636827741824830634118144373184092472762920578587600901551884144219728278513549884258341021765052227338055011668587165824048534057527224041933016380040285529766471892166617576376692907417768571850569032967278684006919670836131395061294161301950560538476647443599496384773984202251340070838173639838117747148854335114144740272958201349960757057386930395932986998649141404992253315195383547115945513781331856341709784397906612866532575726643470243115366239517819236692138375277860298148656391812378285378462820394981734919181765296634776932500063357504669590514526448783869434274352953653413319651498619536091583711063444886117028144970644555443033564970127561823035915313999224981532031450968021143976738869732791430489046396523093647398349936226703765830580209701073800251107774866096411822448893783749781756089542768697274923718519532386557700255729448474555251191102955720640780620889488412419316101877255604923561227680197614338952328362253064065248244533082234946346825558205628865265029271143203582881611010390495781640316616140541042042021606668859579529447624178036658938777333762077895189066498007032341856786685820674489957193728374495587705196310500393638068734161255774041939251031461548760523300762346379854069341046568103852476241007912969175897935148135824992252710731708637616244328741473092801319612776815735698683915466584950686698319065792338082572776049076802772312561934404883071903760455092009696068053108746001834695040318766564471832860035236183643073022400739317106664353261079821236214741125118108555173957548992862084768815872864357043284353315837624612123552886709107053819383962771061214494560773856827544107470368430184734942307509955118862073755137767605952945976504559052625879054494143012367620165241142103815997532005815074770889975423475495546381455059959772679695251099162658080169592138588856146723737635991438306502516644500502069401816524484324309334003167282864398098099330256485695743101855730676053498699824307631695881542658265074581849965764550243106933867249461746182926251493291970052273502561961163161261588875971097541645205521753660915011506347430535855171275009957703137446115880272617896323496721665393187645288877057108411065705660776726885178232315753196356985960718624331131580864178123034460445195632411028573334953057082910472002757005733888306561003407299023255481002876949337122150501691878083283575226093056884598611733431103965410770520919849450205400041779075742579008526809513178333323589764052686635827738151326087667358231519327474293510298878354863876815079478434486884756698006421577399172352386801672292701709427643565703050262492073680452867384517801752029574304649031265862007040452860873713055976234379612587248108526879395205015059590130143439600486816378413719525904674713227351448624522729596559158807895400459170526297371876361539591144072774802650780789535470399099320839286812047911639892122658371924947989028462664084928770566205479877344571601845282306490169159272897416172041876734084504435829216030875352241712349767223286424890953516592474970454668373701200323339172411209316028360324665265481353827963744658085735690729004312816286640967097509849387454629052515446876463904099932512238746783118484910212249454786553837153107736050986706106875527441466219505681076632766477278235494152605790245205783622479748839983946821060963361862855211234264991772682716286774507060489683356411314612459397265057013020699190290840054744504974111700606797453796328528569865587784923369893726211101981503069863273571604251925192161774426391742013661034203965568086679561896951456201583422033875503357741792232721782923859804694252497308536914455473130123174920737734933071428812902690349405506747732009501424534925648224740859436162142865489821036118774155657689702706016704179373324362771109502766477393068848641424134197940915533120045916496840616062888179282610425888507251791182474405396955366880480588775980112080422099699465303355442672278154776515030869766599485106108972080895655256027272000176738048915345788907940817117463965474658109148957095840461343511300702493344287270486675519237144356301442187878277980177862267188931330434780887067941796207689960566989533695267330582989172576638674682636757469500504301958571277759186209121056809964028256920589473369596108408388336506517588387049251252985388056565626065787878192537587722117759475908751523565610594830792027752570753298589720019555128201054979674716205944331449261121260840602568193226782868802820317717488456004921129686790427700395069410972179907682477297281978545607290800369758618421040680272773789375054134637328509574644759803087932985518356955052307582607711602729222286725890808498752993844197050385151417839905148225243189598190906477116175375660467590460103899101673279732393030779713936591184114104564470731842459563958681183255903248553174791486345234774373615202108282067374932923183201832456833173348351427207733650384692488773695458703683903533637625803512448041714597501704161377363530409727676375871218071841334523318396957337515185117236082297767036701901948051220586520834375713865055151445367368791341783334545762693045020391282360469216765131293518061884692119882402442785071425341365886437114598645943857852693784248737195565249069660905693337585873366166004909367640183344489024654598615769534112556866251321904888651416336358473945830325482166193150032105434814189496324851895096677628020354313277661767063369415970554104114350077000400637600411048740778694314940862378834882216293915406931975610544629934606366932353077058393188261880764569031525583268646381784596055988181024032855884946785917794160873233242246968626054155815294968364581165358950934693716349113063956977294204341277246388554582811880951747993346475758981354740344965060491456085976255360159335434566492445554300366919873742253391806113190499727340187702077990063720358412035461813324293222193870405509667536396345348122164448078157260235975652782031371887667080068152656530163953268645040960886521319911403355035442852956239722439549298975032865675951059549538444173047205460351434726397570839850725995955876300323834929956920012841170628231315724964166007808264708405832148897770236578468223440951029664356012446772064901635306201183267651058919948487145042527642076921521848622752496627994367352733675753636478859761408622845403818491704515722673967080799047398580110310352084450096414869620183124370212169444763428119229995291690707800275742895445581070492742613869064850555077954046934408803852790464672594543160639508378337890995076899762605904188385761212972277776609229448483898429264210023660857588943862206448828267125572148568585571608490735694536945407910473900568068489120138659524608332937268788347215129072956140189104357206414293493093091053307121271395665997634286683216108147421933337026766934100499032008855349426138949064843574385406063340406953738434522006476865248675369070785272048136938596743644047180208613319043830424362869776391154329227613368185214855518205490410314239212673198877924407845180137565873849203358761530090334098812636267796415765389951172493827409541519509871890321671891506348418172384693025100537813899692320219864613950726882187014125060605857616975863503659159091389036197159834251828095426689904750480092366060487200210439980481992674204920419045399276831264185212891094398809756320653858536653762285865580811415646952762309437746424424825169402199230348995809083821342899346965644937541934001687506347560172760170150487583241546249264855979667527440525686563920878539092757910984225584758775088634451827342553084822532789541528109572053040749010693002866094500109989209738169492071331852307443253866425116333431370208886953264400971699993500433149619039644714016284002465986569689215230859756436669949036286442034640742840414240962163580767570023803289076197729561622309856086681573937017788571927672812031122796619508151061434569830274001011590883895434929820040502001883959345778294871375479521260418462943588951346064689154179188204559163073222981212632734671598269117977604710879125627267233881533398922714589885939909672602110927763826993881358143380523857193181045162010451690784771962022278408368241181843960451064086978824213752654647626154424429125621692973154835485328732443490781396810880837944784021390300071704112042080929636067711056136443012542053718136079894606541630700323343144673739240694651964070436174101277630481998242219235892881223260381363081366551068001639292933341389191186128987639746291114995448176782151301822702534736421542475436452483740872328567485694405913286950206701646705047258799327821260535340298181851775145349651511528989640286003664651404587763308499230490193837442108837284049455743147652732792490554193388787214522690687669646276106880092570625996702394151200370294158936785991626973927168991224239608779155010593666583427225659215937099129779484711504064040328204554647254584675865815219864246807545825043393830968942022877397610067474668536964619583824000581613054361321720027059405047638443326529290282706287829533001803859428282849494369533641193616440124141356401434870928594198452604542610189022122194534021634815332901599750246595277117024580260996372901071923822965149254629989962512874945857054205427770636614581191921635523393807770851906417263991060730443904739084183978922456121477447721597086581742806184506664900435079114400201619800483392603488628560134966184617202913546018881562470031890092576686502408881756378053244128947602699733270498227410656834849183353556577666222464321735531629948454422387495771072758898410364551743399544496696317186471871188651837991011694106030550603499668643853404586701626969335456602503632036541658244324683886970559533422297864699073658874889500537414810411455439277435246455507761347651994034973004557073523246900040212737527097743255438284224644551982379973031605307308531876622550633233215044331727741696720497034823566192904661300000897108543073303552700428237801996767255432437143691359012513002002351458202885696069900994550420716933420712649117780663320861880173320890165434209749639113871629682740281183567080887336916476463538177951987465821231697331484666398521657583349911676067527918278926733956069352822151194588160658410402607136719693894245172577945579134015530536191966671509486874434679353036444789765575555930228479232691968347361002811125780626201968089581047170902830533942354168399826511582924582533047457952886806045660030352154780027546091294921760677462802375686684304382395469456258335087734385265073107038902096747353364228261349015802138409729218537066791869796421892497850022890299155823048855319941901138176778723602949196885352675374213405885810576522194803297961203166169706642507817543938696649748477931317481039492680688230605334022989039938147481095891478286749425285196015019852337733585183263846981898935536871699257476063797606986537835956855604886422205144240173176249465576888884336236860139743447858008044896759719555349511001236938209250059007006914199212681558487434828334050965347045162920285388660057047445647801590242269692212284562872093369350820353818592136058893683631441677416693114552626509099991202093530069880218755149500843845452833652683801969637521434199550965403600185203557786031572023973960546570456647596785405610204939217288808379731235581831048895784802510725392971576045831157350316915538211265440559894613547443033344624684310619248829533024093280243667063753689711935026615890501753765262725155647705149925494748705070949261352028242980204100469632102431953960163443534371102609679430333732940127834861149528846692583575615636125706537950728225803873569597798868248667350027770348895292692173360202397804353150060080222733311546093302695499960468459871163270804235977903155893523200537010138456610148292078687649749556375339545547897484230756602717804019112753603398993234701551191990534449297862746194283460084511593077118627662964976243810304722373718912185172389693792882015478818122732689911619224432089622366301187626972679822788390024815677451433839305413726469428133048606085150628934068663687539475580469215550376237940356412417787682505434577281755191638084550002942555003937808009703862775965384318842822406401202287635075559771879115727791514101163906276998457708346283187114695893628863604684177900749430014915798818078025410439789264559998605672406809623980845835916227810616300526088904854964620857695789742299471538187059041019335566781184090344368832564537492430724023101902163193082584664689400329578383404134525314695819284327975109559127772357963569717567301866703114842788331371365792040202989839521706495250039877056300325977356464928898915979194676786310556883444173007591294885922272898497784028155504151381755202538940746260064256233423643100918396600297350110035810536010290313371051817461182046721951820556469059651026535624873142658356957012507467410267762392346079252119492566946924271675124552700360564186005193423902193335042680870689427206488349497927941226832422156264377118461931974895123385434315818078515645042656834480975066073003560575029642265050223231007796760674160313321981365214241863012950280940832713172742537851749478968537407657728776898105922536317808740409690394984350331071698398134994396330888409600775904138657944826932337980476888378600398374506807897311078792125930643825565392810885905021629086615263539284949269683245093028818267451784216012012074924991711294035441545940354081822566268858462927144462128743910378114347621536085280420578737427494224626299139480602139065386143083175665176094006645553118528556086175715406706560502864248397909849686287985556006980815746672516406610571029488880216651807541936331495974054641587610611398405048982741631971252548764224186017323790259054905436169155511837304235515281671648175214004499629940932774755495110562382612916349378512542373869249286654085938120639873610469702530750854445744692459396457439889509800943227980946842578045905560244656252352776937021607771955852550962308069022663766978009148754106417923984209191207081659682581537091666826224343842992172847316389267806466618256955406719309849110185153655230165675222837441085982314133528270079516466081781364301752083180132602681991105402173118375775519197206443609993625202297310373224160394698781648350526826097113326174415120799364431091010589401087545770333811693482489832228467815924837325594311479705248403248333570019310606759452197667390848800954393679566361238358834396358424495138496200835528865953552778049290166055108923697373879059207791249116645667209032604099039254321501003505989319309223185351711590672439845909314629560555297674771017746794624927060877816524402634703691919722876117933474741279633284290184912770410981221486073884446323083578677204691219443782902566537427835188440426475511576743883293574166534082808711717221661498698349237087664470283524202834333230411830961879106973101085623368665273973122141826770172687513862310279196068870976316852370748622836750886874700538306010190217279588305823544891907977875070490341450938515233162326676253672720336260680684411673692793504620276157308051199074520379138631107171215608465221105273067607771111342766134254026953518508249911658298411592695937321657116737152267855768479091870771619916502798975424425451301977441826132171861047512789868469394276977031980575554187142048462908206666922706969577148320504696899183115392443407069923838334272386373839740752081290361969378329725870774794601021963495173628941013302946502992533574160597623005651751323567789734107751537986431467211154443770711387234241167309248144419815646080375691051573333607652210042657439651549181210470501470709279982424140196315949715953977063942853334778328548630333192798703617069478868819187578861728635777770494053596057197182226931616798592512367784790637990016948902650605306810587088281282517174086084963552054977563012568703427389383490522113293021824533834835223920745691714967943375624761336656173764445976154346403122014348804876584314640261196943510261168514802904127275653882047356656014963184129301136046490522923869137688641621066326838062205195567085779193575085031755035536150877955154884665099410796471050518892518747391929599084976517292275505603239823425964049332113830023935972754607785727163948953819990234935446965292300119356987607344468382807276831625001617239742733588411791783828351172176606297845152379487177120858829122200730468743718348356425650708857171527863038220790678984530234768662451656510794067081978537137284167759361037806818502401698605308347251239251978454701586425080450911262248365002285296676321887880435021091301022573611004275977623844672130058605399047983788419211185564161139170033541864435688004057312147821427002020343042302590394906194981265580998624796540238375707751728731992398195253461603696821335508228713286735589068688408154955917423464941004451534308738941835849358764941252843471455036640465208628847895919980062609905461121350604526829459607244455731648768899205419532923367721862660042181977674839129176432098214127463885980771593613189451845820689995866453103061765770297205661070774154002777064575403231985161472495927723672761913865829762301532684546571173731731686184286721274843444512480997651397567792937984521541631745526572733400410416166674856497383748803005401341055293055470884624399202474946680815981467781717254410932781284357065233796508049557372531769588542607502100785784671662377003086346275662769526428067227298735219198916280435953610312461368707450514260525538240183987909475715424478057501727648519486979155788860084443116706780423188897214770499160886813172514562886007866109197971468950669216866536522771253264585353650819150266207350139060868211932091297433454359122196056346727852454533172606923199427635806590946576738950102777462482567518665118450918862069340516320045937359957948124888213280312121622711126740652925478172947693000029664045553680295574655226911700549884834799471897869054926379246407690676091402991566327985016732979823161100254726559794240239910724640593319622625000626565851348039827870077603596788482269288401034657190355014779174685461642246419129517481972498307450132562983763439335710675886896111778863388589340352182598887165878399015067663709944993096312820447092648520841024219176260006623649095779840071185115863521000588002077107708509774833949161574424120997148969764824699779254846888632439559129364027728242817040353091499725108038258090696493223909552819202497668974585643413578233221456265634127799993895833012480894544530034402177458002137941291418924444203971118354438079930702945866987459931248865829711896575829108858665422187566798909426795695444123190898009964809514600557806903333214420036619090896729365192528805454187745459322068269460863738653617556677372838499164626597699442885502854672868077725526764428431694441760886306186847754041121271770475949420846820607221251027217973444679477824109227488636995632062342952505560482001086940532453968118531137377125376750469782519281220874970858066936223159470319269724919053408324373556108322085415381253300417772356833713876249531467971172930366582509439631288345684164809936403794532467390628654571571185338692381930450510154473693718468915521164696426562047273488904419213549157989578640756920504985723466901800068413158148969210551711024243004966901219916369316330632380451161881917861375759308772139608252873311249520355707040797289006505881418485795967206137369286577218027666472777049668269672844830524101012179060563427628159754860134804751520296285442758686264496692523879451016520346180580125116024440043673263311948634805032359268544707762471151657161232131265338312279510793673020336874740494713356230827418288074773958494561706804279887485506577678572689845386103278518638708416113989809586456283083234232808438929001903296481227998666416167352650237969594742629919442468653948993235101970683480372669642215300925387711094117352084754972062527141537039300834715186764350705112488164291408532243558093335220940793044634253196001246587088920069500984217804608957322438264327852344357900574277379496222671989798561332197867007923537630530983666138535320879020749154749368952754148099954144034881692330684156014877409460398050364578991995646774397807496121047177266125769990192538663135071462346960539587672761565469192592932496196315932729499321725074330892799164893624873951861973876074110093391419756409019210270942339975585708097419931249348933677267032008427580303362664067236103758629798564535197834894110944040645489210627696180557133009012429428608593545847947586617770514896268634779711824625893967517359540493527054756648515365509596881722648774938506862926683662748551653395544926175204723976218512393764099482400456819482915836555285395939624447701832336557808886506568616814652024293808793600367671586863136600294620630500123386496868488737261691915483252980397533153591838812100350169353836974206363187487172236050754283563306487622426131336272528864723143326173590318082399695541695244688275541382372560351045459497696422915647436278351835423387059313442082897955212034073241173004427491573958774520006687575407356774313505543561177091184960112825606100733393906155831658744170031029316271451757704696443761447950131106371375733629655302523760309742832431071694651742709724119641061684289529475171989113782176975100511710287279092078175699899111430570460362634383079659019651667367446389510770814573876698911925053681029358235100112176624657203074457380803041582426316245400151446337626382923574549781185004129461918463928408941872693980054290880260683382727080338110892420986580008625695264151804218243179481071286135754441698823007913356440407937387219189753792444662632510115058510885875241289903075121910687790438804445308677204529720317161827541107037482923409321733490879137594020035799687573134374188911138890213367997576890623565028375571213587913546391255956689612725308835037362864472418931599991509283576762776088461304299326870718962307886486608901440620370971837397028058510331648942252311488631064921277547126547276190244275621010994047926066557319793130863222095784815258254122342533400606378411872717738801153543454508704577153174017600065028003944799720556441864699414604412092810719802127098790505311374008456770799753799626510852381188957605917794126155962411335581518678732106720489809125607597091888629996278202303238078054915847284208319048799746300566877544064139828190403482640769179465673841839089819073264913369867159236521946899585964399231183799469173550928827714476937055174102028562053560294530049253713392319837138198038603208219543357235424461762275808351226664236668866466421629259903397040928260134055751389134173069096342984957367153039093540941012117265970005436882159484871066930379731246763411566102860417283201765491849792651447463547251111367492779018479689196435579744326859068479085015684509800469366745576673386180392984361314795945685221135188101357270306234341577319295545480903130654328671532162440518542949575259751820990506047507433876855929123419777796282271548108438643960740979152692541903178148816690473315188615948378295350164546171017496222684601817112371391641568571075630194661960053837192651914851639451700606172295142898204919575693642294234608390653390375748625329646364272547091254526636144175259836158518513708609819820061610574662171438996007571778562641935138619341259119747544952190143232124035758295201513932465766080321329018048213489244484209172877679236938070828922937900272412496547204137380292534339342514675019184476763760030019831771029473197024455529775135272137537659797855089378613709975170942348491624031377727109747927133919639142831247526084589756621196035112084851119247580005367934384292220740402258171353866690689781635429309723348544022199438746482088552799246465133883136747036370467779529899210147844966571678126950187502745979331288050588674193594681043527041893170498829470108649826075982478572087877314174501844150571742120694255557417902218975293488816433293432791718476716943790377557253020705632393940526944017087685574280960332069122586049005735565431163355082725419969362310545131641860983917313377845207651393688372277660822678877772453308124342453659450102178492354083076959798231981803414417872805148815943078812866189911580590330829762577957296963291567523979377281107985677849407563600607951965502168607668127816174551837674861152445540381588863146595657344748509592912548503668380400602474170920907869243342866785876619875014545872447893351736195481055803378456915133294854850608877830581954934405546661630568611559646819641573421779136135851859929172017543654672399274843392773032853734132038208043907849214883987068640365731254989320618324412932640602672390722382299878976479675368672228867654781413736535350441277367122758833395391494702286973499169345610047891178919941893439643839423053738471178961324451544837059139429433747360453139143632881374976139149847487228423493292467627673725239456106331069868644110900883917096190670947997923153138576387812360488672192706704946646652882709396860198205391355809218954944422231962701683535768324041741621778118289546436868897981498666067523693377984325820786324593268519934915323985847445315196861572490209741127403462097521156889730746721725840117456650175163641614049072170204403177383277441294122918961516432474912385646212175414949037592061041802261321640860130338897821223555937852079439010434049549352976619313294723428042507664822642299158490446493614469169525385259070735453195908288551158569493082915877453841062238255405156164357277063053828005238877291243051652903322849675189696483506538097608808506743479577760928064307372008845214514877987716083194242342989644553968883173296615161162078326056335831792869608173734832348811615931928809711831641802196667169464983325432345261475162949364100913609634917730169175355292747902201695781432994688435931925966696050893422524755508187329608615877369976257402550364158982314186737015327483176874728356186404485191583571755348788535058206322236566735833394204828464249824158370822169787203704241528893999955095814128276572085398139500413033700912330156257927051139502355211872398320583419436843106007077201293004036970741007957067829741715458799114495091136369204100291095840229860257966251009469694724102872168840392407731030949824226605380510455884134571920754523178921820786431669539069179348590831500541782739503571367921866860639383083105251498874296186602797493991362047084282543954269729900629965559416905338130757302329544876492092092670746071863068624134900701262369947652925922134412424253071202708658020091896744699828373717636895774098846937923865111591475299123795959385985159798564094110827701050025597832288447939807407280241746372265108088396815937440750547740471215377065271635895051617945153893801136681205921976480073239458233763054958384323057679791832800544467673965092480573344297798100297116390115455795213744235752955486304611320577337221357487694174986668407006972790904239792491707445770065999005490493834196036048901121403399491812166534948965548352378388804118469298677996734018830693925572354476689669961425746678994728222908777714599038330728785390598189734758000771300515808931906492225853802207361079282354485960568982885805702243503577443461113731892023242136803268023362453340802583360170167175415674482615684951080090342673178249982843043975194437734195987297016869051109977215649424026063556203010143619713085627159229356411888455522159397631362378836341400547539396083108456707879614560346329554571363846061627685085029244757603183398506726795143254222828311875133775744955073426817843946217258683677957373229315295914520847280411114439499434979544584413750773058092058005359157359472326078582884672276181577245581501859608372190439542176999829414904788818539262358002243234097815894449789590335283761996365910846093244235448944976096641642725202184428686818065147954785773451732089843614228402099466272233028996226540128941412430163103328288776847526895420380515556860879417032278246970206371465942514113642332568231487141893881944063587087120029375394787477540903861496463543823025355511638927361477631936718805843174580183300110814582364515917807541291807686277923614474300858365806705515666191137664485063029944880791399718901049931353757108953727557938768413166801173300922363684971853789990544275573645521838372229343121353940557992907107865304550682822554755243699977623188519539397383720250357448680318684250586676217358308894221577919858243914265091725645572980601755307024412424671605772590289801699486064197677910884294626073814401480272318868109176992234078937536541292681818259955422759418907487883590008231158598072325746205771277244974660615726646391323763269370544164439875086540642203830281922697824465915647819792952560735330155496740935922557398192519462259105309652098252295923471588065791701124146600913892529839406190208180900348533303890230617409966615815085709077570833782631507740820257762838496063567659964791467544031313105935733257474418582367429658403488063381751162042039012724360811195782811980833789530747290550438376068671771889631564862489378557068551900342133107460899064647298332756523546829707817083285857546294362001191204502413588577102458941159782698625885128125684793604187465106607622206483942170620921159813393858704759824659365800365179356457980470876040915411738423851440559495905530422719110091223110473838403696015105629038223964970923608592716361601351373108710499474867608128515016966322624334600203253830589261763546397030929494418749985426697839400860987001662953808232005518603326451052765482640411008461355981669388707556514919714107726925452769529874233732126317421953174286129979318030216925389275239268053298676777562280345832710382464493629696539486365640505192451128467580452207114721643548367056155483120682433665219074611162393748306464267608249310504425439289184189868955285728809579190884537442906336733837390338308773463686762663890885097648686075130927988205746516323509146705281936874394602688205879322326098396624845747754767094553934718854976134532317604840364815849089847364316521111287221904118558628516474294652465247594853222427785213246517264416640791042190436685491370026673623795894922163564565268605271392291737998286870580806489584286126195626106348007909227798986931466634895431647572029853431149829745323047321865920043728678566997370656730377874371448759390936649667807532918106426819691369622886201325375490353694496477043733799828156920171668636626011223932040082987258653015214284461479616405228661425547412561070517120641264620667871788411792204379261722994068117123744079100586818226252937693087783783448869870685096010605774292299814919729312947803190052083158858253992156605619275298042576153288891916836895899098534461387483979934003112868824383971851590032317460602052595293132287526626199244743077429274070181808404166690008098550573158704949922785856325470869232671816096719062987704989991737179275409598105230383595709697136052627045618471422952872757384115848898013163428961616040826800872416811392301740203615796034698975530353370945918817524724962675510933685063158339415109182856993204276146852552224769266904025845294391738798394751556158422686955935151765871386165458711674819856644396508992325715700126745000896105890111022829600085961981397440138768347286248475594687138985520610013192527970623211024487332760098902828262536985704274138881620775443259973344581558596688795847142184552040456946780410764834195858718688294993182272005311108595795385419382225096451428284429628300017294524953640502558376005055514213453692749544547997658509353786423485546899885714016137538695327524442366101719814900290343799772160283431267624362160894573172920163265812558496190147873271510356840563566923837439088984795453272785111916677252332835167206981123880608527178644876694524116732438730443273874776735638696458681683709013413937056903939336943906980648651815971469053084542459866880169635058212959476786796460740033133722272018160239120649724846507286069087967523343621891430979981297916266778710377016417953206874576495350206260016857232908159577115901367357918998415397418982039599876409474799676829383788413872706841163005255985439341565640261122180570248435523785132452327643763775712617619285333202578910393063082715305587321405483293609942468901050958657328806085817989559750565229901784617350712232467940248521974778181387543535613584782152594296445369379557054532820776642945918799728884074359437518444688214300016523263602440799446406967667771217038703150491091567983510134374784889313378974639449350583630749568252135566908432728852780337525630314992050370160146433564698301216806575172831108171360582757966110453490623349886972749416617097035801162552763236016678523609533104120754916091228799538598559434268814053873490261122140267651096143600981099967793786694227327414765053833151309876209352838652877274476849544353497183685376577380602832060241077324458314052098623598504908423259202982573328425691102754576935999341807087215302078627445163428683198628563793381092084863634730018976479069139049031750889958260942658426641513619520054001417542733032956049518714779299256656691451683583401213497604346100961291774093836991531553374690362940702488377329082544354447865333833650527793739716991951331186677652040835489058013714336367779599721377560172313710483296953756624614941504509054589708723839506053440533061131485176024327110397462571803234684872961300562293685690772273676038153362166414103430241422710551615656567219968593734137773941089071424029024795874329886032057010312001061247147439275594360540251381892695402851174976170496399928266481379382051883541316733490345448963323335250701372298942101778067027520156280768903405596855910571318267739474703419470326929365953671282878886013123003482332614813584202204371494955843846130558719169903217616726749321035970376187234274120285098449221729336741983133193728187995786231059514256781729613366790911860874166763518353415200947694224227467985747621379454064289945211720264368972000424341425187035437984604409135932749472106820127730920663863118043869985489095110925250257328745514992490126388376453632454192088519004461226508665404266011351189158030203863589134634837758574436798220033498495984952547212708940555157325601028659551750574767584787355059601093966177886922311605366232052747192249136724245331026160769482220378760929137655863265868501208871022809910276157065509678484216167222492406437797621785410373533006776479470695744916140982168348699727619335832676622396235321146049137459546929143690822744102360364734296413615729228482509990928793991512264407752374543589097409801109319354417492986787859158169319660844980585915390829778292902495270409480176447668588593952464816484205758837399466541594491750671462161636944548348022702353217533787098793930704536956013147544167802056112487165609244205060065275423742888031311296295593440491051678869569503743627607890517294792578940532747296232075920877706253065044825541209780588730040745165438695430827294052215320096210479401314629509505045799251602681897443460661229977738060183602524370117694642977241760611329061337692247169489653538873472313844455460684777951697233543362495061081176698755535569451006766566104519408682547558717179244852002422893891592913459842562594787599239854896250861233990354397584679600205593883007912340734342831223729828841567090324490923365632425266374525604428331758344421846130527578436899695461588358314227744203076093500932088563259998546216649229876894105036012218673210177371508455269238764115562391438531544688598302360148977488635514902027400618711499734284034239907663764107205083182130816608518669235733680181910417794181211871038486289645058834178592630633513338101356892737695041626047594140812270326535105880277532633522952550212472886274601707459042672155258932860213219664201680978871402898182820606554526281181853449677522335616927328355553937614197422830450829323803446280444298269821490725720610977540279335936069036191213994964964138156723664372669420193838110402647212447205467879962672701943427230331669601693619969918208027657161149070749881576007535249390660632996825126825767607631826849546600493259419670710799652447353103032884215998481128442635540065349781323541498352081802765536067086943852243822212135504218790359754409206039035681706175832669782761645180355434939408925773672002482020449688946032794614983977588273188092561505587635212841605321546767573339414114041515862963448280912188079693169857405140419566211060732150042242283714499881356452531636113693707725646421553323367547861683484624099693816594771161783518729054796501328251616313953441240305830211687450003929199361697574748907302445790632125883719485004597421428652199300889107700187622511901081431664056324147086931999638938318800101887347146859932690261252425298515515185879343473080355990395476159577778390186370613032120196685922608279073092678361211159084305429781114793674842558267085130466956386521394429239534021823165547768388778476520765169853560092069396183467961742244106722465815466207544851826986685855232505501366539328198120007572045709089801514364171412607567036111041127750239057121182050414335802731374869765767912825781541124457977269408801227118385628517463157349360192610020872924941045855945809178389957860943593266865811433629435063125103171824541428232628892775939906375811522614418793439586657507898993227344455422473700290230891589142449240538306541775501626294227968682878382896603327591109131914564535310460221958490371569858054310335279452267405140700273437391435385852928155502545151506442414926870885270134498980918107893341021894372407483595565249084006621713275456432078276289569663889653058837303942160982993757345101036609782606790796273455764681256153713971869775841646764384115613805184505650571911005204170482878846724005701090209085001514951462286705059215808301775449466029816186858575157930310935925005500168297112158479300933984667730128664854722855965394327511214552699078945484399687021483877578661581690735676912833578454613250000821509765480111284940093571199172002085683165702694475754931512040949966665535716269256736513592582879064520902672033625822184756972655109530179376048878093640919058388633030136564320186578469649870895943458584817886472905958499203013659939434158915547480880601603099378902669488705784785819125837195658445703752864763194148168529447915307494797916105774226965200057647093717153893123504396336481708451403692927402184562066265863780969353949499004897104420563747048448704019427018183591928736619855633829309900657988195264286386457074800423059122200002337715951508335831011192226322832294819929459446399590470245143918886276794581080122068061469044407230917496684056325976114047730922965499606579457609404085136761100495235119146132073637701126483256050650635416238432456649480426964427937454096132902122054897144612503738557144929044459600812844022419289061758916469635046432202239106134769606258377534566013122703213341948056288965784402716662621640642241917396368930314153922132590346086566629367733874103961431002077861343213414746096595845770855458268800919941282431943489712540715644256206429281884465380606285713857702217350215881998251140488924295662648508353395150312324460315793422939130120242154971953475723138481997639757852979190488768001015603017421262639885157692439466659665546854150835971620210485070533125781081608848470835148566447017555659038371384480838347838568836235503470150084327447858054130257984528796699748016642426654904134112927428008814627254322212430828457874078554666798442270005522935534414595574757984009613560115557859664184969694395019749811531771626407868663330541293575830889529567347295476856131900618459497825011957725903596124930552793914197420694392590667145714924032872415819308743517812627828922778341452351004259130628549158337386334867153875150300558180128485010453982702125086753409940336383237714123019745297336362327634313716164388239875769673049057038109395447485429804240137511475701633298031281186296733284731798380150183402060063573611523359676249776740885845961613569229801340423771975146492285786980687741261410434803867667973079268976940032459906848236071908405727597583863880933484397209942639267484212433962022040223488767534266290989053204150313152863004549425780476116522715079376901655332481959004914816996521494976554433770084201566806627844322385282522636630368594391813479822544752842508102553063538127747807212020775691545915816163320041623540068014101258182008109672087165867604058856872613387669119414916534473944262992561314474539401158254544294510824468768183444407945199941732292866540990937705580398429456539775031848888638317043929159206804296481485425101188286865127484287127797184705164567693062947168262305198355165104902822192270147612927191046554478405379250079236632444507945058035324546380203811021601592774016848285632672412852637906875685913088654769323903436010512677324770747691576172716879076176585816330413424460460249478823556610344723660618613750797890276413677133165419209219116735450313523581719447220114202696942397972381367305005012525163245573472540740995188899065951322553805031132980123924771116505919011078136837188653494658695896224785564229452036354545336417962359682677876023023884284194001444151191410060223603339067965666627594004695261365418451508868126377859650110874969726797293634982041215406855489768162864308491119223050741027855115629382244554202082509799660381240709132718554387683687721642610209874087005744899780065408460027226439475983833669914713011901730198701240197894954044669598827676806561998452715265740656897293551456312277797303141857593742332826831854879404349158046321920919017429405321429404675258696766175134450309254001412984722144478607611627999909247910115035594863182677480004426244865514473633875677557593111325556309049360790290390574977364998821754907321630595900727468551224579101370385542455313479373613357146849229666985182416424231381907712472199037870096420578489680966782010917765110275348211961026676668363200891960025553735376318709412886524307400680813608518556354744279227439338521887567357227463677628538576805341346620210841841539263578605460514070778600530801295885149107630890482414670081219076486301416184268565240960018293845067875246446784029143352735260380690654020304171601280145849483018588212689984292245921325138804510915241943211564737978806659087783652332589587160647136555494404717271599474823142128927321240630041699733577597680468136271547656942614681253207370042855879916186273129567744294297288012562601788524114811054579471562613922601500393029590656308019920635996864008989609557072740937979455273397561988085152106960647425259417019793920995176530515047893326242272017867980392087692039128216848094100501035753652549693862611781235577425008652114285735061038149063155765346660933389271924569166231961063977351658172973463948054326481176309243804241903474957244916164782070418034288686434055526222466695336002032535294842392569269819234082347666089933223157368663613460491233920114573422820668161344585050169965780648450075405167950592472361454255922415437525182479618360395302183227952560147301757960517621436266214616118825445232112256586056908078509391661654450072909815905600137049768413565165257100847181736257590294027094812939345919830425399260337148173977845575665639577289883017735897273022342391401339239769095515239438723526920876634061882229721678145056277314639268240050366127789435878930417832143442441461251692032485317476801895101196477683022834015089480789139011472537372074319743068339708254246400627923374625754551598249310437419689256791298064466252219776437182013701746707917218577935027990367814110693879649017939755083571700234942514438570357258685099796810009083944190080368503410508841773204680123900723098826034009307509561760432886418840762282614216253566173495682258530084482526773342502730745930074402319923816818582108763182403340100301474077406283444989567169151871315525423585851977134678341310315342945369399491369026401959654239523648820849432884100329527104157022796157044542355429386950714310604491151902403221379770313822871058017024488870639481340776602235502698926131498004341312129222966623629397608661839254699525800292627382729244744077998748943211171509885085450711396025805128114053680587676594108006614756142342215498181870849134899668141656011019915083781561989580022900775268823396016403496165635330956889487615680990849767964209727944874852154019007843593375647145162171293296080271456988299019440708476959910058471496554149055082174861528908346482804969166031653163363499029703912693497155106310495118189570007754486975804548495895561676506326127553005606252003220412098653949964973073403286208190204183993812621722139738627099924587876981616378076806437854226127521841446159341384816784705505504839870642474168455911988328400595981462276127894284414585934689445003254779744762769838309946469997079932820163045696273874285786254358044429520298351805019327238158401874805943692560080646230214691822676418028855102254255386446480943416963694099773068818681464416359933167863130002196438714792578106103445342445344497422965003187936857644235783127876758470441955938697330778552965478415031316746504533195864066218106453202088662909567332182295332153089926422393267927493448933780382446594897846042286464697710374149656984536396966644417782875568803537126244202899116241256904615383475663377826096347327006514591217510528244972961736803372097541791788847038109284932608577952029959463430824981855949863449437066906622605675173474315659160898608645905755494382993962070534865601545065579852937295234457738715040085991466650635721986050404367243443014459494976940333475208582669780764133792647891211961504254843293343579583974635109216475268715064304915948651595664340513994153798392080894674924246140120601718691178635873217897010551233109088260420820938861799006081135926450137897424277766628816515949960962651384050423644881874501102289068184556930516389195144365913417386956524426644497408602743961325369803688772151144595290208025115739425318003722131738778601966549543896963861133163605798704435075322402910385258542977316630083145202155918334846324466889342788369836841459803003179476325412105954125954297233930857013792387719543901498848909653458541000337063874892164294752742139385114171175125304173182560027062809889323228418052798712134086275007012408221692143314469832863946378556148150722193673645141101439069233814567461747444057855461903635697645031011020364416011520685762198145513202176882613217504412759922565901624252123453755493140084382203144184764229127273348490993534131876597290635561282501453446203339383654944073054853563164089453806527125841370515700137953046439327669731213394971349599931742277801597248886183298552748749776949238086977571811055659266131794881763097480408465674556353689519991024367416251013130402332924926017818559126501508758185348684037536463002404215369374836718683626379662219859355835373680490721489780043799868042594298996599001368154147302176512435268806405017589951010136576609679115074174137772901166978373709251396205316272148636225910217777310374658648348027385922124573555925595914915488100799704698207000122552640864923290769819614006780645383600650808351572024104640126922605242991206334299115504081243953178829153881505526692389283489769191762904666293904306965525933491989337896226803998925817525851170175105202721484499207513780395951029349864982004365723402286229836730963893373249791229675606111393701214617092043602138867819385235876747003232951523811957951473575171830612078973690904225745736722845477230604835452447298316027019580987506197347600213768075379884500149967014677553698454103133037952299415642339682134908472031982050169268729432087849446537516234129906351498544832082206874695745281817630006388187551808533535231112409787973149272219673919365483122821984855004548740896631454414487905551950258134032862331046002234477376088410470334628842821085975919506272874523053270082627431043698300797955931046992691079679070187208584144759232999311497752795011853189769664268957268661802157130734037193154586457265857565860730047329287604749537866006826074223245493380805677722198900099753227595180114288636852344966788755615695664251795872205315785047281779477891489807377854853113509551600207455772971513507590851964465701369173974021786762151730772909134390009256735662534067126160073868764457314208525247550865243581778465234231140572547385534852217935407746914418664404326831454557339130385714125190739737864249685331482258512553891178727155652087374394978381550694872792256060183874843011949639520022559361356954173557150656308076754029832354140472408019569699106001107752703226577177573810336701197152029947331680148551756179606220138903511802758380704730197796339123464175825430885953632817524135928255329634882127275659448060784219218171442594504281482076933035177994746131341547996020952521148901836262694506445688181453183091321959138900644725913849320141138929299410146995300323268182924761301410581983693239618042683149622701808082966398510817318548828275523400675790297750060845471113994216112805215615549051099665192926853983271273781101121682037104000761733126053887708088858153126286074849095066086993081661002914395559832123101918620415031944841972802723740790140129003596076607787893068367188557455422280516933482123919228415056844520047218713109217164139382788224328027566132708626899283400085733663492164303344110568360941009684613481780687418222788149577523574658149086641650042074459240440902081391761502361467365540948531160569000263671359261692781812100684945686516751813157840024411461666016789579397290306393556557056575380914369722109851471036676488957523361806920865690349936135998645479968660111333539071512034000097592078767276656379198866745843785958694365185044072067313250570985537636363832848418094765814023317432303586713526052837721524945998215275095178047326586832570344906243885239721761066545146363996888711102780026781887085561677060787614490995499031887602509288587976925877069788974436651598908324128611665716358717168844390817644245138785627032092171982786020039902371842726220039034723148916584779436103803823195791244832135135932254950204028891543832355578921774242597236896813229935730965979202559536399251275396099443151510129061463535980317456298069060412190074531836739108194397051822923098480777611319687766703291849207716578207340595124235485542203900519213253718031364524878884247906943287107474487319429331090378379388859796007163164760284744249675036461801597586888680547764787343377582330818104854169956917491389098935568631012040330175946635856799155803419196644083957242505864487043720281642450163216664684417455912177661263154537247049942799196900599369593001439447372814730125965070053635817586898805448802159038323789507776762220506178211027314121266945593549535907931998787310224805855587575077403242620290634188864267433302987433674431662444171772793184253391009938726936671460118113642804198627760464139969325922720284068080001404162299563979469750605756155906454455807194502957134125517407805847153846471036697219109657758214600917058951299106774340697135387565899833319460838094780111595629137199782597067790921738720475463164801430532823093068759516147804146391684036982307191930722541850853642389094457263972374957858248386909009331593991190070797230926551427931497755235286548348220082669530557286671357664510729995334326775259088959835464522953248825054885956514674346472805482302787600787967529657208418151699254236775796265535925542386311883654924475591378313626021928730500264826701853433911583267109808778687560560746013100327993697759451155836345107478599823275710696034307140488111981989053305700709392919047105554397107194274081266932231914801863019579317897175959013432831278931852071834839205720706299668149066102032487432969091659636403669070828329596446567533077379789138804456631583713653289676653433414743227382469716646203650728433570804315990560577998528555906844780923918346743449256811794428946401433105299692537055613067700156796242251489549495715891484253042643825310950214951533689984563286274101201204711189698550251625935093784352065849666365968707847421237654201694459430373695958674274681098662556413108849382661429937770658464137212241506519383032652523304417928848293818527791133833682186430255708693554000069945363478798255568001875096289119641247819899027441767636895860361420897697703356147725333071725820737481239945067953577135827025748419670777887130645089396139186269947355952596710397962250218883361886528549730553678650974864118174409759356279175135369133195830771907455178395775157938838758772021679928499474837414945687405714278441729138695770683340504156362034194317544403217881527888089654635392379391879054007046402109803492239383659074729107962896802457505134485722763619650819529257821044119793925385319799728340592233645119759166039313877738077335880106836638026704662363919853313322166250968239489346539977894079800832706402215297402299937379193026598005602454548841971330592022071520990526717770004982285061952265078723217451544880407939839320115696797094485491123028738644384160052987191581220459306353019262087314275298760050499537096161395676707809682622819628739869291936588740623111368775155849031881718770058463490311470825412949454190256068593045468739220791722681572197255109706210989916856257725468947770589085116577370391699977777586722484361205530533787887873514196015552047398351731817487076982880820010620901712462957709134401941517016589050859197872409047739002684984867388932383079979711560892695044222413617061717121593853596300091790009836329734722757884761317138149496543481284475985887369734040101853149152897387868762742914048429311844601543034626453165305421063016394526813589766211723529953306311033575887050536249928867733040417182662255019403899020376582729944361714355235420201366687169201105557342570338690906480057577319971866925005046627765955973028299994783392568556150415212888256694393677701906678854196201772111401908549612004716850906731914630874996662048066851929471123597634052339588634283585261523155695399404738187452924030176517144701975736618311294806500151447170674329340212386272088296207044258998416115031441728248182926612348327482377596856759163308471263985057924900807465578588117639941665762518976493627143923122867003881446305628533359221398480344977266490447775591513990336634963619056175947642565712180303910133402176228202113458180105412025800037670648409055687566691723409272839406383308577359131439771295740750923088311809719187298605193778722983438343512082477361514372946418307535373666109697483769939952597629598312268470343013168483480517534084421339422954701265723139328075931719138708030620260719223771067551123882981210830479973353464514137598305685951846318547743892904916332302512624555937132430998140008547113142362450725405872035946049131914755066627725181883903663126562859554321364741100256854154399297120306090034338551872753878047320032702581434632955822497321796632832891565833414745425601434649227132593838121100025849337909235027123650918474350250131181809631819883193428216601108528745315811219419463198572312059252037333511323048659923380651516649512488707428242687988659657619450859615468051414930203105472114954085949439036820978929994956874895399500056672953023739375396890408417547198070565352837377249018184829802073230139632784217364053233631372138186734962511424515700274073978971816069312799575944068139537649852885859430240856439367239432887295133766063003808043419152398894595123136030409589819838661710474019837595905897678618840996765827348839408863246131406354948706919437317356255406124262065514087283220232855815680565517286319507678917080314499940512982782892200048870157598481788303096008450377671051044591228047953992650035946048075839829888140476075458458994354254989144689249909320896023859043462218947666692278324641717162499432988234136581095266555631779163455092475268080084530884698055655505981897293004548715785627024469955340760488083864096393414224516658448533919006672799238823442677201332163674725933986986614211798444092443046300733034143006789697091352329846093728251251837735911937076097501470497458900057793018446134669587583156105711447842924673758868938617370021166618655660720419787753278237234504244655816602485085402540453314569882926035807669394357937679463198724007306914343249753990263906496539210615713992193655724905610313652195544243011267558317335804393122857289191674171119896678753046337334273199916952842249722105277248978936651719930330939674710747098014010295783840725294029124647325094426349785728677449809683469751096728397821057197227724429529569936289548035364881582188734499282238382863956751568594356579734086788578476949261745403157175812263424505575511549822628187721489941882866986990100261867422031570602870955641186524430183663535333388890890216198918080754262069029228577859766265033940213268294844286937754194027211494909374754081589714227277476981753558935319746157460144544062453230336740279758713957863673608939038718374915618621857982731196094835366134564548319461464359112842860160740114869137882820738460016236907645246936834089817991542673789469488035604039726901026863090146775198439287891563018337175731743582325872136467799883544734072962703571508449294413839127976036302166946334971626198727250987990233363877991717864570085707033611865846513337349149593858080328595177455269356625986711599111573593370491878836472379348959437810423137296063345383897946332466736623768668914071099317633267067837058923327980935954590359378111784558326815013921415005546166119385975395155872651571365952455802249602005181978192404157435765407144488712632727696368095074661462617619143221128761549294745305230049603202452694690547021956841564218425123399437295434444188739066313834152787734901190437471410155262441599681828937484994304022406602257425007418610890581123632788745101153028876542688853699580736550084179199942102012690737291698014412842973835993549105346232678683769457145157713562957740767637824957691653163334150082839048873303959516008777823474017594253040905629539314399792048521655067567891323977218665377971738287804816688652878092646461095070872561130549516429313724123914940183251134608141712995155471098382664110134209127654797486850317837998816692362561554927460502501398265888776415872582697727079961712185629532654237758514497637509314386584837852216708125953767096598203122078740189526694809976036658890185794510443539892960058313605730889973720001005021828719611905817353206021644645727684293008397821389020023544801131838607501894522948301756528269314062187863552446303837468116672124717181322443755465364269670209095221968652702538847023110340717741646714861612192520609923160354504404352502533773663724112653639433054174615170292406800773208373003212468419926444919741951210695327386159333999792736505783968164732159254725541071582628275508607122852944152775647541511340229233382353802854283173967187578067185269958344394097635596591389002608696144102073148656315596796333524167150501900920613815419426116632910163453278276552104616162074482566812915531386994102086516043164500073822473915628836662548905284497836682358778444086011565677203658823295989314554387987197030736079662900838714465512622545776829619914258217667976067710151733055874717348603288747092115431114896643266735321151225005928640913149013072228902397489745269225085437109996505248895236827174619478116979376209992367612515366736736952770649298839805051620480601883453093850589223172710271852969372686056419704678255198183350386635933254486024048590545057690335137028898831747866616155847935780892685628087348143435300523333111047706429677485915505335201664744868105450323910212845274138374582483709919469205413248170806960692129171992735874648107798377250774265089715775775572416492641122133424163054223489403824087607829237671045486892571170845449167325596974371200234778176703111471988670294983549929839110953037703944263022154749116819412843903490836141437329782925016661196175954397815069689094653045972143957898100077535338686823179865066865393004496223263451655895898386862858262698614972753163528912790852196939991916507571076980863200025633496377799982966667954207129610913098320319416631415503196787713761931207461132435824432559270843534581418058171666424024553384290822098270490412223016986205541293292182078470952782328344101767264067791143187213414291054514630526375752482818112696946830611357249450782017004953032662833298643125266766933613078158666018984384872020437053772862369932461330287012427706002777771065320427599829303746301324604442076041108891511994568779804348052255763985050950187941093218309174011182936289221146648136859436120649395863409472977061560975884496139824653857777767626608017337707067507308315577262670327565542128730175442984257970747223091590129817518556559882090659022501103683303627105472220442527257107309613973872708847046836824277838308549189196230087426903200730322317667670366146408403018469876745996825486098546920913862246797022574515255707794802702279957457879367144945130791548521404168491702719182892017361606908165560948452587245587485532267806647252137897372898374135217227303562249883832155945143512096681131819364380213501554987579435910658418308015164633222741693218163143836299078976892340198912187900068098667664876148447323271188764855438232989091686404168307345372176391698731022771192586222548426854483209721766868681262487863136189156800209286519260464284248682739238011481012706693928246549529405800240792507323599101842980831315332944463796627202200134297672972207599256998733655192024172449766636022656892171662327922839006196163264584718834874747278019169348919248151151231916101414246372808592097096137407915028281380688875590676034211028795895521222939116917783077838295639220759700222221162404926357137136826682560487871272604490319811987308945850279227654857818840807077326297487144278679328601672352689200302040475044886507276476784308633748091593939603121862241932930494851414778223616359310179507662639411756707168644569481605815357268896506738035836668279032540174689496932480162610987316283989010020768366010198636848856849537550582157114068715306586082208905799277374265813492772095899664719040813768802907657591346656521858181968214798546598770850655519568407596982147429054897408429368728513993154455761105832194231591144944685276482241550151843172226429262940085836813695430912544678772719461641338277368517465243429885385395794061270612792357795341511951217843677994847331330443839006981067681654328150498944931542668082229189857003159214637977861258014245986766642233917695167323352210841477883999330508730220847964808914928832341186097892573283905878192278843199657108912727444596567099234742324489817220162357909913428096092015036330176218552189628887234696180436194976472945071464522945992145103160598154417016535216390641089046375592621617836757720773226184019017830054467186830353029266753295425530004497775476148884538095981893628799504361183041687548452969175200332195506228900587866905728323423959436223378111669229378288555243208602783730205863677054614135422116846854546977275368925231024104917830620373480953181178967560577204674728926530228081887385349879534304256726827550684148105300045857553265000826425955637982400835150558614867650617491363755906513029947871076365694127640831093221366379989783473327707782987234973264051414935020851126053590111179429156331867399053205911646902233135401657523591956605295573242907553423260944721990178537151959433254261687315763104422002190884098027297233858839732338918815352113614846669309843475875660645531702803424180612313172789146088352518112883213994969022212632709209030894063716368836122464942839109088272999824448642702964385018817735938814353132879645693509869706265737669506408700607714228322875157010230903813282076567904314009967055096714679359660798358943333608239829201645814787057766262070782099046014883412419673373155563085049339112008434836973396453764483747866408859307993354561613635908982573061554396707109846419397399638770187013414892465350645392259160159114057921597280102611881784695098276265659352567323354398713659354889403970987552843580760332333970826570761786868974836204541483946835726770680116590071530541983062080106394963085986148159993977031447452363007036889146558953749743091538135335918929770580971520710049293580333448412232311882966120470136482316398529682720961560785105452131752276607946291644034792220755804025171116681795144880863728415321185194954296339942577901035724464235064232517881423595451544447572900310208753951219541861612309703786334903562151972409191245858760221630570507071472032019369655597156794711071684486841721017466233861322424902316093703325786200940237291398616836930861937715845203654740709639612524528915520935952676698857017793180687390904386831481359249318272423170800652032556298108683752846630069107863801427280383295497536489294830471481688754740285163271957050420660261848052626554845768976881156550220023262449955200938895378106865413267786220716358432369173866220115601638407060931162359874244935505075560605849311198996757699524178078694614345976469206236804100435094092383590433397123593297838018432390103274169496285234287761722794761056483490713655790280647358398207127017272207435472489318619291791464228499100245815972539406534374088178843456431063249936919714360281497403235385589400500148955686810047211893756977904910687969416757037900091891641191844045444687027181188493848796698683122911081504825395132135353210534150547011124117317370110868914338331804157315468754019128452461978789171628973812389328320958351514827455744461387194940064314131004792411573336025446275806270763601692202570387603018997566771630452468279779948877201552784420092897944578781790774977767690533366064885805572716579837322009153515241201984750114332344979217491490545414970257048143499647557401918425796816282896332946461630606309481370100350478289914196261071455346481282793577791235885106319723428742052838654167242498328859983588368438168942257763386937474632247086941284415285066870863929746176596075195658993749574516383621450619975329958747135192425769092896583384828138178009198122726926301705296610103041729478362603918098199167154663428584087457496629444047204187827650477701106721378079576174028584269234711143180520682743314643414872710141279349751722099356656028335674489708836530790542174475906994398506361108259937675766911268965618367428047469555327932277455165627337046658472705545304167800426846569919815791288541897957563959932167807522186985498492753944192960108732608771859388066309490282769140616173354115321872511263270990050668938741772775440851005464608215362973925789561446926052012833239016218716985941563382388452808009446636634444675401775614731865797905505094014947351224006757154221828471276623489678785483686936121780112768650010722894682286215375317333037862632749950711320386676372301035984672417864232472574316538190993832959615986853590261040726381051533620215979309042913315300013041586385426543611438405533798552268842272043774318327487430119069388517893692987664736844187777015200526792825648008669342287784362779946754412125793694983145124101842285229743927551802950867878940439099110739488521350599097170357500996016588485501252762052472849834116712786512733711773216746174465294452423903517700320904923011666165180392632017876846106611546303061016384230391767614712913979348770095241689491401247856536268568155783283876585410928641363314413558147917228172366427287360467550873389552241529933361987018377730033074753101846269300936145477817900839500138850254343201844375680230248459385817842756619980675026451439154971727939830666127922474832417672638565800425075609473663191049564039477161571342992296966680066959158121107970943078803172310606241356195817939136528009588690297814513295531380592909550031224207091835836715356296422687574069762661295879966179076708569780501504827354556254473748206899958389468197452590151894039109392828075337965676331280297358203085856394154143680127451176042324220797624831549147411349362774180482415339906875385306836489601367498641453470849000566353919780431704915517369551754798528247859205514256438247352934234516878091637090533043693699564108599515924162234705768385615496157424252443999081579433758400371532989569024572866354159092258719934149940740230463087842701095610811280902902279897257405022888036713136805589761591948056015852752782501450571483216603015310707867960665717389446094697872486326528905393150154380771572917793435572836411527982955159217582315292329295883522983323983564074982542048515805152924715984797337676936648266203382172312133602537786680331197908712040766541686039522742070113294837215333188652288416630540787675460620702760289102245859366547805496952308392455821554643619437071975670988683655870731580591985446559635392264740515092400812015444798851661549641226185863858164005007980179732718089467864174975184447538525336243966678277948720972670443620643237149182644237099595758946714285233699068874699530260313409269032779464088489398553220097211741061692557843382251896790852374923481495973158267954126527896805370750252502896250407663305147562128245157446267458294335299779660684421835246610101213708575287041758625180942289409440943283198525512814103213207602100930190907868749523618761958370563216197059748499935617090563134063614912698698664759485815326062803109795166867463977260562274303359987094641360501126618773297346153025975738703514471977598007142354269573252017472445509310278184766625731704121756697858469025063890092824433766817414938502276111906648361358913991093338141211813506963226321336281586217553238627628252528949266080367265546208781927744572677563394843667260707950789253490233233455992793559848167475671750419887349517097267377130193383242951659581751201026152108808359133510081229637271886454532717869173050453602430966846933460205725632069993295854462984854563610714553582489157451780155898205096148740389189968879459524073240180097874324038149236235129296248555356799320574618388141389497891832559133937706875435649985125024215636706188994816474849585093787105375234650613268015954638070483076461279451897282900044771808068329474600609356599067047983766945994935384720476020376910145551127485893399606273877288651820840874910288002415430543899712881390790074282091895941757943498753759719342888268558193487715652076259505970308429400341927844957700296396054392005325822054503223912924225480728542185419872422867616760345316865468068610589553193258235117211158899460053679842240591522179526603501156745147943209714963901172685271148121059988973045589540489177745917401499638845689321505148885014560655278864885011012139433259515600919586176741973215209540698233668757330021645269905882463244884921256554720556090261338170470396437206556120020320807947699676373509273760724714093212867896534428778353493316517853416556804388241361398736611906531478576405639240839181529036548344044191750071543424362723000364765705223020533360550888963904626175044990054329179244120228975034435019451474537268787586745993338381193703774517485364862096768345365520735777607371600714748000711706600450266564039677513535585248585129057018730291103659429158000831024080211187386759654680590570353658536566478039695706893715314988139688670694544205566397808577435174036451622084627948436713349028322994972739773307720619797668364212451079648111982916593053853091846603617674231046803730304152800959985613981590699109847691981630593713017503596653003339320180195899896992942158493221364170312214370064834260322983892692130702312614729951998299364058049064900231633086349693563461024017283224496411530239767738467080769054849529379887277363834950413193962148782205870464431334770358165339796513035819644806998932448550394964658651180203046997245973693654681408753386948845205655306018727102845449773838699694902715650277949917662053989354510549860668429425164327066573855936823904792003532981909048869415681954587365634695758908668254084832726104681388505041223980356509431442221322446912236863850944441394451676584282616836645322195016686044868448775946895670085643618874290521437663900887638809794166151800243425137827668546369793056031298273804827798586124409429584292655056741337152211274436560716995705078292850269753655390521218353995175687236916790937510059741946408124975614148608492187732626609227200538063117826069115972580718041563808775813229575416510978731108738520445744116171223091987455232046031924658736353842530871819160025002989675486675183956046118783426386337481188619511060321942047352571624236692073078272963596938985182671202853926870108474516604772816885467546958624802744338406265872484139238469069983934123595682991225941422492500802344820673656804620629027465854987186432348724498268440705187091690287259965702966951495531867932324304838874990143248326840040586236261804698689018820799059814832667088269257205757968736028647674035110317451008377517472504210981561182184154737829058325449811960953441236781414237552487805851373482292930879777019088070825725895065975879267088903545623807531766401225973695153857610962307354944598794091085881562900270294205619666191792223779745029138503362571163910579633918273175868924839242729430040879092306476105425973656855325803164001002243550922241263184424105844552100632857446381168187881526082948061343681674272749081556181697519353050594085370333477887659530271454858104245544290285067768086074606630087364017237774455701771584255813510930593744101272463297495604878518426161439578537512535405027328061001764137583833943025383950486194876339759787939690062986642479803459818244884547262744931628050554207066296783891912633828165590165217330713618422175787827652973937160685043488014570068870242231626966372156910127966526578050635910736980497568247627022619902457186406784671350013136955020350652930700477389634748485268593676755637095940174520778677573642297049751143445767788191170585148292021857850981071041584930535545496613694367216577902273669035781130589819449149283906163914392998428624846721238771513856868261643842049245640923738403963951938338549738852496809238056542583147820176825180919482808079180722578589960321148431715655323758807143609664970129742257149638309015601055693788366612661311872098214593114051323802035775211695259675343775231598613781876323077798593390665751666894439252198749275992258774178499041109937604084875904077577901577467269609025205518291471114055309893325191304762841260122821432815873024828419630046963040410786315853361281189615215115853774410283902494977503332061758009197362236476328674592781257704513037957414851720615185217998905832936565175992904022660735774749133212162451990756162683607762365988247464060986508449410399228015135641973714878314141899149062091747283271023745906583589238330981370346324383235331759133747794720400589171596311000921515390011009159057663437968316578907255562250828373014832079400346826887836083043452365232340022626326423722206540225649750320280415087005443423165737942341775885911168899331851197168045693219126531652576662679369864839584848531748061701073085036019905599790806755855122150503036962163013111141681861831476857608018121429055514932162201001071696268976879205995998785552280241971793125679187137423461102969061501845812505832933785910804073199056049953838336871139890274824276012843336979309793179903758546371193748714603914622239504417681664038324076203351161818888905972355200178532586880607131775440705189988538169484389885388570939084166577901701917833666122753480669409102878028763081657522161278943400031527239296283016973492495105834654210031188693539836691864716279969603245434078053547928324040450021784971282543868171094564104695910995218633480955169455855806869513689130543360068316156503819581816077086736536001857340327957906561958040883654125747108639789442832547331901230597619343352132498301178751364949880567682280980561817781277698486273850613735895682668663185168952682033091743657544473000718309918380716063823298918449917112356304767382211367262476625433119415618391516066924903871647636153078533853781947715484734299410843296274150290253896136785897121575509603300919242534822781659296161908816075099098261403530415590048216365745589920765603373404342380272261446836370744829535539668576977448153057858579622369436750068472269408875461910798758212983243990698522053407172459544923373673366471050778615324899293913603408847101354328025134573022132092757917335102479227989487332117667944913745871502571446539383098524308587452690939542427798114423424269916257858107776147805358916225167216907574434562641653151990994464920286713210926178191693598680085881307287531390283816728501217770380774254363388005207869746353445334681821518765886760784331432462128437575692133250174269139666762596895848690409543620778874173536657069898484881511207398918399918730670091419460698700266187508678454996605525818827069274601735344268006890607095667409176979776505870748913585490516899850865818777462386930557806775655477618730717188264070404676574053413365417437391876669423926580956487563167641352190644270991351259290208725570456417320227253506477796426854252566463103879317522559148202134010964845725743091109508789642275632051758374706158349529267288795924838259568404716330261272050386007112366174381147767510209553520724792459917693011397612255014113258401927058134523730472118411005118566902821722239400027558503867774735974342667452839641080114509874934739749633036670081301472401893916229421430620576099875865041090049590147373792067995937725702931586618749443273951949316335286457640831890104093296952802761820122162330173144165001007699731226429491696567010037793714190528747494096115599042894398558002739907797482566517002510118262751330016109054694881089711430771074167689005313582051689942724696131497084559373832821565150524116413466435702819985301906730473141005212709820873344525713542020948743163980692602838941233560411820488634407025306032122477630554166043994446196091061992598012107103779361799509928201771796544864160017728874250272369743234481060203991961279045110974384789221596813664303055746406132171248154024428312840764522912953429957036589522933801482810492975099662241282371298802012257637974594109019444834974004396666480247662759385377686358805448553646754299424155623907954149298154913435969096053618827171833473615509190168781903487844500875615615031140084184684142476766729819034986603301283752557898450111212652545534551314415702941575497411113749856886270975644522693849724150434428350113576725496290248420948045034968461365079593189198172808487652164943725374895314311971886556372987990282102799687062510587774415820772597043917870634638563552574382903656457248607826087035695105063972449334679436196950284999664348966073455127284467929684020915225938489213543424124922309682987872186100333266018941277000755034992186871263301056254419986677545856094919351297949736016038393826872191634343443882385616639082513578958968764584557798688405632394515358059629597229678397882210128385128568793232773602746865189397782994591234170954422887942593147477122316218282567197918341814432091752428798555081949498104350970983464676011367225510844452256790887004194522670543647451895893504708986264203367679152282048459644831021112030635114631131851030450061347705415769580272469528266957347373651316178925867650920892651914450627846389105546448184631285461189453570984626563542915055720634599887076337200565376491166550826354509036105472130514777015429964866674484980097380599913060074793534213785607317458337128099195108105477381578121260900811984300985395388987366567895118581933321221053908062636046524410376389001804160103130372801714120714035673338775817552726368785821059726133056805309922755749660019403755889007391364901100709119414225057971016887507170131029311607993881502229442782902693913349734510268128068089058501566279891214996578481903175125783317955603534403949107861314428497498735476493410784513173064672125556816093666790064942454606206584097840202302553814795906959646246839114320374442819103807820525301374372424729040685217986900958224378332143708310491313961242596936956420371545614820953266001094633523113639600194336103284964459958696687424130699104056836395109835662469272108103656340823073392204073560971130550067625358706946714689406781420031178184783309724037905047668861025808604881457016481556980170660081508108152819742055517038329618345335902884186229185543732127552188070276009897872357356671555998710445371189098185904713069288332519973524428275021185023127929209948082137825520419349104317934674574507836278636741797284188023882489444788824730840204772229793878222109126986331671042051102347457819100793337833023059732788805754751273103211132972268338255847524567263484501098191470852624395413332788473421006197049337488424064975269863525899103732509198928276367627896484221302909507757837781884335398937851874629612662971198243860531159563049656582427831579367971451150215882121122709993058735742924531238555098342384542522513201901009068926775347236030366503508027586276894341515290262693439237233448963756108210577918943656750985686278560018622430769797834593938676898015254414414922976203686677820579404724924042621425306053819290404512149345742288598612881981283018296885927055191536212200815278441988133690893191058536182619230348104798570868840305660753189706244679445598408141583905129906519978118880571676750402610758140737405142303437422538701604539138078683618091073651816130578351884806114528418345292469429422039315441678313435912820290804215652913612942271106116041074756039661044567346067377663839995480144876054623319687180174132517279930137460196599982325998014287685194209721035143898726293979656856778110545536268379462256763076241839346747654347055464427911834835016119681317935336935494607689249071479632909194938005034239710299430871745311337111990339640310512717378804067191125076713853954986019968343943843877944327989289717833940211011091143937701387770314438697355244284462872132747228446800747865805540460028495294388135951175237025234276948879264394456949791524430321428988100301258405376789937386406790566254772765761530513824476357143347559418982734537344744021437636638334612973771593241698379148298623525655334433958976859732594915979135833824345145673696890956166830816897679579296821985911570943570121083114793447417687665256442752877402294878005576355591684584784269415687759655908553755850662562971197995875037039963344808483220941010046476579836558165412655937713465460379508881471364358290920261593727269105329225145875340578238407851137525945212645265424084568791279861211749178321342512587609703941300001679592325077780344956370841009048303984222035710271287815206720367957790347908598195466274579974584821772162176287994043090306748049631232313238132009197215681435605056685309854037170696806257099934622911108345742570725017398307580424797611728024619375041691823957172102113715351018151574062958371165418517804041647904152848374603637243093270645227948014137003909369752509249710863056142650247644307287452571471435226511397919117257368576769740701502255871770716364171046223420905887707408332207089744728926762781298757430427099886107171610883680288524045002563528304706483156859053969096811817722887195418914988367378467641185051513736393096387580199767608376480914079089685744169101940797625670566925157089352060409657562205104224563571181013667461108862226833373741167589411307649848943781996581861190362261512439445301891002038492727693457987322467202222700299023038201030408551033118675757099805542943837144671397617979115462072375436413123364045203997275669899841721796258397792469764864422410701131733152285703896464417146132332969792534983244985664748290231854550260598490918297777612450440066616642452009750661810091780853624330535637215832220005036959243384358573062196092556604171546886308756864994406243007795961932053544542392206692517440919710231764249451439720389794893763141799992807786961947779209589900782675142352779755261735858423305203754401563998738342531060822090287679598745964208401658720746622424302689432584122955941163387217306035040693139502551849215816814926569285821228707379073158252321282002014925768470745683118249974235486421364577353215109795330718386092412774312012039245445216251520195637070311557005900009470013722879096351151236902470983430345031879197675441143959905206075909781750470603639908348342794718834630965011640522631976423992505538553914222278828510822920471077976399069558543960251702222496784477136776142838471697128825818659058489533290226604155297193258692663922173118419548370877867095992147508023365998183250513954872723890680424955833983333294149240115963273793674012575584146137633734244491187989259436595777140866245596730938228149048273637223083427979576667834142456734477355202322949899332576462679976974130791445992094312454991886580654240267833574330081718216159129997613722169706901292463571727668901616364872997578224449174044292969599712249614443778641222451462142053202801409259238493931806958582573480070091806141481719939198067697880129758762971807399396580529850601235523021295659362958366482000055758366496374469615505215818263990066391003732054219312982360834216551252129725110952946304494959678851924072727451434956653942946352272744278967560375367077847088189431581078432636277841307973327353836952730328315826929251742023026487478833984326129950511822478961896572797410960310754032655443441347707294423489344392321392964903180351497635899311704608481729933425736232606889371069943176296716403753856611455656719857801204485819100120371510802529936454086695601245152567266707684125626831671491593166528168781150809116877849247497054376161345361604745417549851649526896694452803952827481654909976547725154520087808032569691607939082291829505400742846245384331267421478942237099971229266848334883724237340151159209460036554031860215712163073756462429460107072651305418298305966085533760919860299867671366360641323168513714908393853268382649680371825811654266811220559286274804129386131635124870280974495388779748980818813301208832735899330296694075049778146130683225241786450460771030417330685269344224273292332963349134004701658501606980428790093347011876752294162853130802380043043934555046885115112374851506017091166775893956442900596398697347354457051320022108647510733855820089897248874939638716578361988196720310149798334166600098205775555832552287405940663236864938089558806153436168861891202092254446161609454042514762082019899592065977314187875555438755038259537248014134295402963089391802515792304329787746782235725879055491678832718169436601005173495493592721059572494180107828264163836746722290640740182932064307264258182699740992412188839786127686505581832781102134991726636387535764620258682151869762115050814660734715268714778284106672148852917940089219742011651255457170857847232179729696124307501604949439919308464161122955592138544794537509069784278717156532883500449458706965709898037262626287277662698727826347483643839165558431154409469217713019528910695866976784638591451711261891818462919043972174838971651816314636149753835516307944356143124756753311353627523538531523995327604088808821171810865423713236760558022894103578563009783513792627380285862525708967945363766817795876769058015460442131655561467780698128965331106231525819092746240445212208073278614690228412449105958909765649330431756675569762775318414367052610478920645278962087991662014728100525987140545767917318729191417028288796979706744084692235653113079393444389004509487488658667868517741767954854348476871406890377364013330441492154520119123877524043199406862137809600352659408426004117571397596033751349252745749258116144908661105060210580166301396091018023951757117774215023842086673235071069861217531926410108316609400270922531593660718157108846222788875873019364761468148836919608370477039826894240721894456633588789424103193536872191648078253709571636541052387631322779473835520052052147341675939078259415468614234137606403042302195588488997852048871705763682621259434524213915635759429490030619874446947422839366943417824313876873483193167465398307935855648977851473481094767023494523188515132793653598729771923578139141351552493779431917041084970538167904581470938278101274126197787968075990298323504017889705153841564969134736849319480722786370313144294645703865842946027820883942880440417889331901451361063289836716903892506631318955285282511997776426233414683157966504600008218411099095930197469624478332721146241418699445712651680024659543250932250346172107196614537132416559139821145634396375405934708485511753166226782708560705597681086426027252196610665364479587304320616957144418606133105222917280932682194810714636153841815489435164723343206198314752134635438518926483346018484067764678304865485701452164985003365944866288667104236657714572372915280682044496714792825183036839158582886537634904936674504270689787494719418407297797427126744672637776087091926953535342164124135822380004198585231077066964694845093440966510123204229277887524978150530805360795946139550924217050056968791510961965005487113531024944927949107454086953458491660273230942674849659955796575931880831182323398045751657921657140313749303188820953224661010097280424068079954972339539552337668751731823906755535745166685983484777976073141462415457578654170372553867234141708717301272678629291301702521697935679079324392404542506023542378635399997639866293530313340296722049438463206416516129352940034708440664426453948556987267269819852426905089010047513835163333552248755845957029918006076605281916837537737493149290991205822729873763959158767200224944642403734520476525287785583952615407235336385016959024988071674963867421898632692495470039614009362131786481220109721446354388449166019659037391709630296460173480752421578923256954446427817823921593836099220279914747736819497829899022546290149111116998881840660016746516502982569851872335859889693569605140619674697359729604965059103626420908215893794708291652105017552601687948484435559503211360227884473190416976490532702890099084667090333285963615208810480829737789256548904527501958978899106718915522768690748708774092049239724556662666263759287882185825436821536259736945236310827557566842738344430309140984183651403304950117827579557521772917675726306201432217482552617496397623526645617937975758474157488577314779739490260401612905528080454967960854237158863893795358040134501360375528845236805097839243632334838201985315944462197099810354752514481186282616870095274313582777036663689908361046454245665135585951776691729983318326150928709701812637144876647173939399631472000977189288754780017239463032599519038278926675572784317802434139913908514648790852830487245063071598096929713529323902521373627541389145731547761716728330042875491926461922092686738513696612607371410149646021111160512936410663277030329256083485706692317002840246256915830922584505895443584785249512601984773729767460116382625309257429512498786363800922804946904575119091489398421358669998079616786955128145966560409898222182445798009938009073295033635522776511197257372687589832263809418107765984988599849261298549665251565564938911605188257592589143923822539147585486322697956748739538734343840580023695295738450446990449366392277675303321507610095870464266728648846419160817771810420650326920639441943913616144996902228586293129224941610646213120239602081420453458352838016042814072173100921901036012045773278291049610279103677834935441455115928582348308771265535695356410952922526801340906777959357072079038957253399048618307473802322089361060050617222656956637358811011565777406661689906838072054951777119020089258128165219074513506936937389452549777062431271965920156076041768080145203980969864825691722214237993005913730425787355280568017825813651390190317137556408676608622808544830291941013264964037972776475673828828885553333254234085552348559164051704685450821269514740006290666784292878084696119027931547219293164671934518381987409160677450782959705199885273449150412363072414142007064215893125448936869127533132685448419620538260117011639988489416146094504754275370331319239355579272771692428212323587458870254429565996991906950758473068326683296175485021562314134015358082596256207023291030684234557794402193293283582241323519830294370144336856483777894943618260204223362451819422465246573450959256295495948239072859222967755403010954148686050066426275395598423802726597211293705702097312488757134489889869555924262075352394381214471346897664478508678734368917792332570233023732397181322607450167538848112578784725963442841023058116174465616541073881805350936046990803741365561722025271322761345264028758146493951874508154445832409806951486542561903774963114771940506458484683314006395870159901203086723922264728778478498792838013389262227278448792070502192839612886606691392608371010800019134184018867827599412731823936236959313694593409671840188722725295923004207510695835215117322087780968823494329781536284938171498832673653479970946182269940971724366263421005716549588305984241676265896455227305578764200081996272779097846854800516216468305402174016284979081416252374339335551798249267201069780409103321812988653859789341278407407666463586326179128835062254312609130460155181415319301570261397542208248902528595803732125124542297856206488580290763313288609835466293319716869605699655855875493249495534155125784914641589205841234263852287290904628553199101420333167568093776129808620024731440607164471774375583896518960884757013332859935672196038094076656384542717492564577144397828812734588125624813739968674422745705860009968597428905450222962827734027704303752138443629566428706442517426386975502032557573331327204514521780277592167249141245266444464669938378274222279384530336253824178171689756086465368010079695119807974535922728031088717039739392472809701049938150912569544003908025730492696640657874669241557260184845735339159786637555630065791757316630720267278275689649192867174878770058994512108242069521615917580749807267371014753951919595399169527288189580843823891425055065343197309039208662646098344083557299564609790530663859495867831360209902309544876390262757580212470958141091881649009384808129573912687763886711903077597631374652339906302642624770281411102090757265777544095849265538008284021205228946296187524283531256041452448725859411997225336752070780770583461806069339988815884428457687427338773096025318469608951430976895276018452595234235045106050449048171173331896424055982558991730862456531883105206319301590606158921294015669120503907022411733519552666558343052534367932741391822103722404875388275193657476969570870315616562281746747503888869350460191134297436937817087311910019854642944212614499255775735243493734330682229901137106132912546131207597735781687612438634205501843900425196553172567188031394370976982905857225304318598949832168138531891127969523731144672523451358240289338926696846852099309530419685218077147351167869987389677450710598776578381326706305368337804002749969460808367982023759887555421262450682136539853557952045484243656826530980688182172769346562524702825341836658537309409925224873521594076266067086239667161915425662271519409947051931308569720920427950933912818837066735267660314733821661750137986346517007226848033224479768796396667262930287255721321656124401633076285321151546226680228291438037567954776627622030054288547289841772212727280624064493426843843809895128673964823038941687427444251799350740013939419909821108847184925117186218871535898954464947852809463001786548266013435258389432908369350642577353432335976556367181357072829842603074213236982830812115794021147320666603912793664453883146535648115702006271253446797983652750911402292458188342992658055582757844610328079503944523969350071598374445007155806589001259801411373936802176280053462343781625159156641272271174533110889026353418857966445043784745771568065067688036455921959103305490971806818864505749858567653200940381093216029286601187892684436224937655167776573293168527776936059465608170263126565651085392812481313847841454655405104779806559100653472292784739563619542009503147564441710719178878340533462805860770430288032396030772177469055249037043680314563283884077974877582959834779157020824458068909319621854005058610041341906502763712548178618341483450685280494728786947386008362676462350083213151089090337922299832826821536153054253923010257842977169997006926429255351497269556670624047328415697767032194184111126779072034529176566430066872424002170718322933342737621415737232890558760500571485067433049981055759371051780088115461862004924237442336198049268986793864217028269211859932239861131091325092797727885313712024549177735734417496921808096303452454206271184063765745059437463613167880748256641838179163403751732221974782616087876196261640544670352692055748538978491492953941529739624922661370671883247756048817723254703853045024671269435078317666705370690489785473580236619107786289902671196858398969538101320287533714923995900047416916762927965903294369815735873197710196201082997713599568895603681419950452488521940740598234349112054588805168641713005256281904851116113151424122997983214100783747706362909075390612741734722764005843495853421050516838444795878707628486776491760105101763041477966121930453419227994209425012166608183375583142312463932316041460274150500404507940509367068368095901392596778859901285387468759920143909056431382346885676169782268712608549908464694066387485989703389406722650705326923565306802535979080865957757675962906232633090361310825878410611970052445178402407397774050911187004577058924126607167838133438872062970357940845379185808658593910285143012036806000067186410921895551821926512889705104458796712297002865482798275338793782336032544690066896992434267852464757912850828685152578988365326036315078312937226337399480188085895009379696651170762374392061806736395804000070636139069997932964829393699800608886688128140050238053873398108287188456857669243654472536276679533906621373629616292829796130777301532714051013625997760217909318100704996540326847425448742954967632581492671270396268128390510536198184521708644187599856665403236511672640691961866309017168352448864011455834360145303075949621945139638579795301303306390909715188301950887925265594798192460296327271994980283859028416595193486134484135236090022044612113136975749524580772798277844641191929919780902632690880184503497237562364352355465684188970930920957892910237490952325887897437047579377036336806877929922214926929539354827554123107378958179942988294028319479898309121629928768581907224992071236360938698014094021584123616481838789761201719088096496518408890664772703108745067908273470850131098255487177760533897744411671739421479805261167973455776691462901212993856503165802606984197379321626767984855017917738565910771321292651846580886563929722606239815415607238384582223352629291847939324157292948506416755059185128543151215265500339156672321158693249925063725725878582340023383291810594258081364373173448155234569992796589504000813244196735006406353922685369379324558412865663580438072014639053091795801000286119656574501630559493353232306860408463644375912476033922656386115161856645423155171880078935200845493545042514393581844646062458262316286513733512884221944813492812929995925698397615738749371001319822489938581164503381761219609156915850585615614045257171963579107676423765384576241627938295639887846534594927963041232915132724581683877716105054207673934067378591790831409370138264392559149960623352465591467199319947813982805631837995503555880603993772412992634576763795078125738760345411805075360707022443803061229577672385563073255281059610751096448521954266873143737443474673617027424398719653019881016203243200449752191716094497746706332150649077498117088724827394579844025074924702110111502172347918724428587379043294761927819011276592274745641605048807832763245518738974941435922370277285564873745055893266444850650460055399702167866420574740571123522988181509560815410488176111654509731909988019433204998613115895419946431081691971629201053965802940881370935368382197159442111337372138407535297007564866540313169569762677618301286836212293707807446147998852852420949099177923263440692475028480678439904640564949021023262186636650494922052109002524737957436811840758527558311144411946098425994344696599938280980613204114615240413821417214280362299089178133000589269842585776771129305560318177074688088861102042725535891962391952745337556891501188364811622974632761126572549892258260174386050763770941755955082139813921144328782445483149986501095034277190886648643613846622527189808243951394064490603148163540967538930139320896012594417352663786161957767095914118226340490431423759264834041319612112309557273459413484744621016373364593701443459226385810673544748725295786339259336634654249851033375166877864819432502314319302644904830392164474919379343358215454127364940371803636745420966285934485395877737985985174340804263665948145487818245349951370809803203381478883477269576881373517167636034662240941923516439592980114056044244753157680142805047336106822919446115707496341280049512298682919647778794604554998402208453673598925739912940824532579044210723619375470461012187527643399078680286359766931909216962255531142398999906242781737873620940180181445832658238532607442591958623633481617822457262486428577784543333574121227615525341371966921482046601293412787085459114557905160812277305636658559917707693570434808660442258330280022788901452111141403249755571311387160446157091600306700497685659923305610792846357780869827374772284896949180415835012417582812958269623752632845626848410451445162827007472342866207674270214724239844848092674835376409788341981900481559190216377365911519214354361930656503422016657500423999239446731148711573319048733958118308153435951513663534772712301880884399763902738451180183459210090419875003209037798156596369424536435449012143952508066155220478034152679075741741738871064183678900889293696469726463283871970040241821637585188285564200656183993637322196762138093225576237140776038318697054048534818927796149706568615913413358838245922419785824015380424061185206302015654158387174576675707837360775337042580351672358243802040616444878075768580377121876875669979679181796262272015439682025864668076460769358720222768176048686040033226799227332888661604463600103604029940078027932745437475334734195941496365426654678063648954450540751198862531199773641462252797011665130694307790887817833573425262509278883573612379742946839962493285240526389131797023719893823993219967208289767595396244254691336183301846012753929512004476221207588768545634073361614176662090060095038900461268303211984492583128668787461109916237288558466648219416458198831887670134787703300577143376207916296465153596941785132287812244112482844496097000605833582111332051281244450701968804674344225046074387439841468870196844138793423294027321945346649422710538459798722299866616165646702471221974587042872862461406054823493361456878462822725938591854567555426669681472170130138249921101168402455865571796464467416981962773609622841390165841289123401807378297886479272271187833852836115499169038019392109556728241829504156376145713159194191570863455325264554455360337086156981539376702085069012588074532244356317104121887476729437347918644159865774294512547012253615939373218621245529718799730728424748710952870236618537457366902863152787950763831574735664736029169126601011688962883969400255296064663044530788075748260163327871531378949831016653706988953310776993361582131021338829080942247438255357078082309008327650297906968529379912400713927611398792147724505721407193212608267476974569584313523246861370590667076046376921608825469805667358152180329854312119039739913461560459734051806971296939470497411195089122408442572283218123407894298152179138982123975752819143690549732604869178992445360443016721243417621456266441777564960022380295736323644677129612213447645010326134012630605253940868795073227766664272398990628957855965183991464285086432030928516610124733351640283516467914331487255896321687949854889615610968555672114832398595139933177633947177367156052861022977554059070717027906247376715089098752961189498277210180160617737823900476225773123155334692710624495449592325824040794335537042164978034874259482225750427326385067338122787223587709906583632365654460601069172533274080524434169426969603485925254942071983375106208255301553813290321236070090529956067906476423400884543398959655193840563003871014404482986703463081245701251074871538448202244718338705291661771825567510967525056538921158554281630830399046887355812774994252638351738219121355510112911094830410813362512593118931085763612831756653255049323620532396744789189028250375142145062134476150302154589165945079937792735006901956307412498640286968145951466851417609931973182049478232562380279246076152309026273839456527247436926855952224519541987251668592254848865719251235842216024568201940625275944974480429536792204597902305858036773056315732694351230919156492976301111411318118150884754645304116847108062553217861146571406848516940460915527329791397186027654095760082495168158627593265001693485872824397814469954383773088196815906603157831616897315507822921214543986162614212544197282919172360101549991226917582029798668074197619309420401547184230351739019224019219520953848994324851386188370754048817344236806279639228581051097337469468178155090138446683381804972896436391874418852992979660744775559413781965029903921910572060816800911234011265817559561879675921522061336225452278285013201779572063102366102146389576263624496712829485606265709067653971221716447090968478856909500499067462003828114471961513961754154473409994838013457259413836064262342993885742470356514548613228012755003689042870694037517560358188968124429889943817583188771456919666594863062416393551932080025541529959352930831656822431027423001767317291701392478419336966727691054595244339944776459083970721169507377220752456943034242153603565640681872681732626773270915223694206423957604107284557638573721109847465678443987436798600339973829927480548167676956633267153540864680951816725212419287155002050956537115654577387231251353721798445658384984874860686719367909126081904827095141782390915786508477654163121510247182434763572438371914063636091982353678589124927852872406317551989188270350495616898291462089822642669354902310611259597859785635573812531315817314677895945917020907473865257349718415158820377180195837395850711372236232625453127621698335696232042579519192388980312840221453295903992306296539145155141321089413150725153677733682751391123957861812116390347301007443810544401343621177414227174214584598134393815600127991692109213858426958686785714763705255679427721314221397422167864436028323963198536013943201403211346475202226016882230975636230418380725106677677297196992683620003527442423816989509794428718831785490206437207909619092909600822063129520568078220646700333996999002903377219164222057186502058676299855083870963821043607429188522485104493159090425388091309750719075790460129558266169644047660964916581209252243178774966768213143622195418212062958484889276184889117807693576093607944822798052534366779565678021665588318972652057154868799719796122691147848924197843936881551025780102180750996589805868958397041660497626469082061692179457365561360270978675383766382346431441554067301360162631080959806036071573453591619543059718142612242349663736014790769900301712282938563306421027061940834250769349221584917585458802919107357381837259289082840123612467287297388566107443879023468037373824199956278754740759334218483816147476258712336461129516341062228318350612521314215340249616575828911936759947141670118707760058848820860515768405566105083059854679244157448339225276688460892954463524224417934622657000617435828945700014307981172613989719113003700721885522096737048584732648284384125523435682648841741152003086157410963692148704422228810329994564174955682573872009074362848770615113513210848496698972046447694286908195603818832359533028623945549666620008496709592996530809728014900851638809012254672327214489033492307132030360450984309480294031755932420916591489633768437693838639221362776647350903071174238901200395262423018906316911200701411289855818795950237723073566797246680089255573483475171900537987362356873821316849476039347098140151385400296564206010055325025508200178889562763737886672493177665860628960555671558539560369075208263805320941809783263516789560043982030257870981300219636911611293873897635246215302088388061792801744028240980203544686221849608888507158824502737029544950379755289516538131536896115193628839888167265304266185873392571298928546645499980868850118886533327649479167927927873906746224837965030594709365935168476808676881599174279626159301401186085047400699419763044506467384564319525267128787036029578699124463221627536375628795295845124649672241303013720211362715206145984408653327358607678223714442143259775025549869550519354963232259691460127460138807717398758897762307417703062190263519992599956590682608485176733581401010590356925083504435108032117347557106864163956387738185118433502956768737166956104401285079607911054520875985630507406014461893561172059527677880998073572013791248750042776415025493400828512169748167629828885138019179942650864935487050153872896885276413792664869288032725876329415849628497962596762237018796710430434058589359937039951350529811149442315668278071129935850160353172768646879502015202152418031714092451832773022422958988691976954719381842892216593247066821165336893442332105098773063969412056967724591441246645965431943519498706781962950315925555404890538973276642293089997278685294469734513585886050238159252464217687005977967791389260103763919750567136633485568942425902212118447012313050207696383363690556145918634671365693885736920268042542801406689857433769077031225321623709638863554044825241507953272878366277588281562156172822276047587101502177569723078546344932792079150217218520216343147812728733879478246832521530102685932098622678948158852547976912098438262013798758356587071256134241821671546405946412674206908597739008314861300720915248016182002816920828801349061743380690306296462445808759465821902705658504181002353660417748250173475362863191982816004867913916921345942257573904787100231478959627307140170336914996481996573017358206417918807564285626140690686496257158796764234257940116193844558039342439874528577663535368819683083188396885869046104513885792079549288669783773394958209750393743476410507337407135694294743475047277382505009736642377832120140855701299509413494421900413852049957309048946169982493535399521707787817307803236442329887659638986940666225691107055733037460695639703858445221834554777613745673269062924627865221914414107881182643464657813429164571268781748132812026959132082213975409804974219046341454598178484186609691803754847868419482542052124090183653611673940255024345608593741024166606395515371191449130561136249649369671903701894698507453322845266778347668007258114939182237726722302708393350911652633706325649512370335856159276573701978650869975517060865541443971311155093246682165892657185150799615114222982098046403385549983763081306358477277923182034361604300742779358052892735173972418904496076474293225613018154900076490487902415223349629556353120208517363255103208108999045972184718651439884182020001794079948773877990783954923295902439068832093161816793534728207044672978100988788577645210209169883646734393395938988219866372620801971014706260346372573906954127469165037725174561536063121293522746368916855748624552745013042003267269558004879504493434533280692550696179102029796896464545224952600150316803712275249383927565764299243611554966928504888047026268980489077001387198146735735995277580304609920198571621172563420576395003221686468502534862687190927226545608331755975791518390781293576520692944944780648201437960660235157577417883969721268264327381787864647416970638298362197775997328821351891032857984262434904889654104580692334111296859207003424562656248618257337682703936313496331173253610178422568976505708290343909107791807421784820036244127271463093910804466452696325498191260321957565728623771739710089349335121710767012960508506225098564881949220652930114077887881032149591929517285963186763078244791407286711222886048827831343895607332898361146939534872155314097701237372609979182856228471210912417989699505385558395970655786466352307939971322345448579234611586326417337540307225252428536872790289034380380938399430591966651465862380371302444382384414445082949226278670929710464288163216518025660882901849647165058940968292979502354084663359757959664131125443437752665007205332219006782295262815552503994614522219673250572962217381947107201923574829140975453477619134140809317473986166334712159416583550266472919025442605868013594357925288632110168893885327488195415855727740838120185069735253415124162386660424946487012787346673331473921433176831994716111324717021902202286672623582858034289348177444867428505177000143861485839477103947008842700466280315468439527530102745580118170522700830725704355011993368720551558301523572142954600900461139557861816528999298930047007635041477391382741947367265158788955864503716685021527988961021140364221958806940560124098938276062140227933570425522917583074732661876068666989517986819540278502481274970879028123443555720760913938034333876608846631592188891987923840550332451961403018222542722178041693921315385119441196020504877670042542681597094033980189674800894435688476816662852144982919558812059222324098434651911069333658141999920794308854843785276805579820368418267371482862796708103925008381028624750748677396838626698656320312639309209881614695967515484876674462711846043445595291484898541970647428905772466880353658467205252849550272793196827708655309591538578852161939125763677418798886479975649099746250062384875043296434665732177788197599043588225807179257730777315208622835488166414904427129179624900316549909928505954892663436002611381776605391494890638395505492742617005387751317809337372331724857389103102363281306632174459786711321378259290053977292266755210715891324174404030004139371060838145465035039609857415807477316615757333684904268236956186351943101565631618171834379978420119984662041191385671836530511171123190947422946459068482888332714196388714358381974400988820170046454897805889456687011579663919652243032135076241622759636281490936696583553651700502757878963854839937105193396135770412649099122737251420694098433603967705362834183855907282575482655368281031841304202962055126765389797470074253114509734474017073588337081805083515374617765741313297285616753326749354818703325337936940583442808059710279616538856198931650874661111150212881945324654069333454184987290946804118005972788587354849322813223706267856344224124846872925400895145936622264249600084562463616820121651554953487158617997435634277557326316119510850535944797704771350098237784580227996652210227863351067028159339831036723719378047140524710831674984179372790342124850818756423972876494590320194417285305279556739570081595877553201965312700740280841576824425876526346606330222590475929703041000840438571990531993666566200244366100757157788935371396235877190302235574855218173410617534660003004919463391330865593373133903150265760280278450911054644195968430834486781104169158754523141237811282073254676037654129962666858083986148514155148877377169514092864494872960316716036209007985697489534035806100380320531311940757861595261806816899813815363073964065445095211001716668659869878312669977641738566587396109559718942897290246001560657201430851641111385367830596490029257062064146955855057864222499133243012744291516715539714971697562195868975077438981602673840898498114966547696429197184244805718129227056991652650866253298649388631960199223752750627315730952607755487876567007826184983293312589157016691780878046724379088356972972815320095539362260324569114222701067771739226392027918360315194384652157672317740901090415388869552742394618260613477245840780712289542781079201252610948059237012117253356053279106172597853339973974056542621061289210181121175279396373420640938797992985746388314541222498631647584344742414066081239524015284369614000192001499236642952715406854219079232105518373362934446363045029994458888669748035439434596892965607130644387244993075458522123428984165493566046957446662122598695762575212755304284653764084663890034220895556758476018299196067278658466091657595489176771398529358016911161160921989161984940478558099265460531910184658986768328678001105690541129403229595101380964980254282012986584515713168620079021024142000216022796485532042050669824063020424345197198021475860589044171418469257474191852817826284237996017980743628748292116509127112901090166683791101188601697341127224898189299760790651848348648929026280598975959280355769371319732600307721215064523839815464425925669982525995754662619034867923290375374495408382002687144648666043922206508951914387565099750516522606829805673841185950992101391491233273501943673658441868699831629088889245466270180354702370711564823938938228220005981403963542002872700321423778666340884327781047420143129477596643225046358777744305806527601226106439420238416109228807649199584198546258938976105002611348791477638234312627908483444654541836165909451489593738495023636963166963229823831221717305931541265046746940706097645730942611341845444460342285151285265745205343200374245836508560769884048537741227547599680643465742731952536096029798871485299923111599127228568962644505228212425086437256091738306336202501453760906003312527137482002919611527822979017947677366051920203850442385074628707632932671980538096563485621499122685657125348153560546107126194114868980707438107028935191386701581037097699371975698113744527874951066391277639109379288734706286568494425233145837368607523860043207714558421089216937740663071146873186773838694427299713829503257635943864247771051151919605348662838578625307932646451746371218075402660422168850688142776366408481124899382125983326938141738324325107975277902526624181138658225623039216540828626800118004979610623456793526644198211350163103070840527658914889403029381241348133296459415050775604596226439278012613463344271626354612819014311453164362707466486728136419569528278905209480285329218095659863771643730263362081582708453991932438413666788659524228485986288981792060559940075275918583156651093285540011982940086827601302649173786359356329184603133910519212829380139407071780255531551427949252029979264353890888034749951138336783548405477135314361309638871310277918575066192865407033809426994873231610166968260077275421375604716514697113548544972915388402575152208416080517958485431157197472094372495666608339492499585626369306568797526439856593317225010245864066645488105906020292007408602648381225542784757771798699915013207872125797423461474216395096539927869773567833753725868631037480132652287931225935718501633188264031614916257571435854903746306051860282578671664233057851515178185482821176572341631344767779995451958818599793733165962970853233523030761647181107756306549254919895763895324778605949035113131840917008128443390728616182061748214013278377350479536609984858024367662398862267251235527259787850474193641178849769835759837419552010405864178328439996769176800443350029870369422779007277112991664840818505001903162710053505787326249520163670780738402568084063884982930004204019064437991402671200823688833759482653830521615586643557089590574577678799860929020762217460291253737289811773614169966639857356296847811696460505409624026914171581653521575491123749252434665029660501882895270809219900832377604587742697926078991159383571907060543565047626358255834915810796710327377112738987141761666728051810375228631780441135541408172139316105116878830294035651559353482442673441919667084059470297997111448080752233288492248153318030908628951516233944039294983509116093698583180338874603894843452709523891755240120402176478587174466449336229314111725153250170226679388733620036438365813824663267018913515546255390694093087444160321796181190844675487941869396424824675002059629942850262597855273325784108923883547155347214734245846580338208789663065659827872919198522428968064472766076527409031840033726571943151131225056193631758608964562049015623412855387440796582752839032775268163190862776079979205853209367250052612718210545904980630920497941838263125876083710862117914400081501727891162891141532184987737729449514174817825610894162994774682178116898917245580013495049107333856063919402991388327865311482028139086660020467872610294922605679783561605345790763618101341476975289104284886612330174689059502473430012794969189940970207237441894698482881370833493357659005429875061666505042741433416143613652416641452947454526840055602883144037106700699858848434546137127288308162414613740191234507851295506226209355604655754581389028578228572655546212155630564093517897292799279987564173066232835279369343201292037188392343606129466577535631858080685147128647674690452230647561708285018971812116262536474613364377357926605092615065782326805426349613044153898762989641103762083205726677667323188043595993156809672970199594824616368653567948789341852380946730944304084266522769916225601337962151328757767537721490936414259322981690581722554424078636802957161059411624967617355585072338394927154230479951348964156933260512913846097710264634235397103007007613568227301444572438087520095421355112152045707230997856687029620615436032890683875008580939419949144764077576758018366452810974980623751392120918588547634260387808366823348703566757871952689766677561553461791194945546516124933447747360307567472859770202984006196706842401102944119758390519669939273564404389694821597817475655241530491794623051900391746066061167989369204290075259169424101524903776989771272728849208503293123751523469228095855243362768764817251626874798651819543399759799510621971265663326254451382432849622716010797403591439671475841715982532663003255494941503055983973702143510955662279005517780322577248815999238521142118372848454804184699919761279024611390467916396935795429047353029712378299154171808532422676232408014440189680122608994368145121311737588057916621635174121162398918058669823278201627444130261945678278784274000395904341164318411451388942756749589975086885626883621826657899035883071963882109881859187459474907149874156417170926087303982366123812009075777413474615475912411707536821090356537460587483971608465357732928224402140320298687233675416974357897601904753935517159738478150980227187504094170036959438985195915033027076693071499487850363307176802406423369895440771782816386676467133138101165980004144559918524256601167753043554822238637740984508250538644960962429998922846544666075009121805758052081284831370783504043369197666438317388540761972102316899763914811352922506687910126856349871075079093020507448438494498089974833145600270498157150999218456466927674425658383048277617516207396359499301518466578221106965524364355357539767337218907948739760045668255380555298559101685027789618889240431695781430844918275546170723127894587016712869139980183600892771219469156739712245438403965559625312632832851796128955426610212876438980511878482288152284856077287783118570644613923315205522644495723109681364414925296135211306656561638190568171004652076298344022402131938864887944859713412138036599634426784062985956816772580511168988590538230234128925538523776598351513776441093213425671928860484462887961886951014173474049277995374957265620692036470208862617913632960476973946514676517197906714905490240838597643314824285477002138716860039026257349104016438913594310073446448089990237130693943958290106193334449192402499437932624758166397007814723449059668834996596177955367214585844868443219484263987522371202776903495459725426235745159795600755266570097831679906808506469526974473335939176355111308677464496389600662646551417337845794143587873105834710729117653508780475651662799619916365060867295182833701320968820682028568633340641315333650607067268205644220076264382988841022119826354313732149517448223821977768616302890672891380398970123619961760538942211439530084230814092234990065800436982190090905208682141437294612623737061929524149872354427510270339065834155648592608917235494464879006253237058089181919313118410903040427671852213957381853365177902469456351890808979964517749762084811655001337265531593516247599560040507861807589251971804067290002498238120296937674751025606809427710294738130556447431326246284074070703282422938512425932066638697737495089029811917758468308315524681182622427470557797044906648703218509787423978093635169957243625059939435865175927256521649705183686852458914692007368442205514925543765815704028050373997893506521396595330320124945219932462570206532012093927676836795119011739945003667346197337648057801719385948190063870883222008769981592316127276677154584849991706721207795967546394341410450916209426191922305957234489448701345874554914101784965986323943946535535033894391591712617687300569637278762654662164316819391709763036197739677812358369179527431600718055946738137120986057940652025244458206366081504147814911617392245321887221360499426580091738011875320204398505536807152139097033890358578580220790029212610191220333873966402228722747932247785652761620710838940755680278415408188913125712315474037523254964342023718135534753210911464332416721913160835927434893680191897002431148853923818349890931085696901630122824850082063075630138141854246231125816787510065221848330668913530531192306663767472039394151083565164775102416832947634789838054480212968574899498258517679931103078153753217866868848336816194246517521706674796548824059424917595835154912595524699351315894372648985157008121360813845372658799264277415096743279744596046358062490243843319950247481502083287526422163683145386303071184996726402502086531314059538018926756147768724423529712889131310105275982804202815772524546348627923325556589604295856772001110523626230420544359424027654596822219140572549660071749265203490314223048500664564288122945103751795364373224169445021922158712717344343679339817798179501749949788931996404550459385183495795912287510341156897506277766570883395371257131365337024761450019638156073290672844646852116420404000069014464703207920790235764087102223286808399969315717810110450073394238803217599216327344279517273314885108185338375642081074341937508020829410855543301396188008874586962380326035815347315731258426950172881006408367780681294068812369502632582623128995566589898444283670342898164267306992094504847879056850526312604409293548668227225234313231517562355495905704871260774670757956864859214822619628892027804588371540496926757947658387543913717483030195586774282933868317969111727150361504828921974393106820748399644808092402176859689461382149887871978196213988532585026210206145227367159129748996830375955025790215044150255203508581821320773481902879985066360822552282712737989414689087898945077883366083446126388607266808384090071190604521209851164511061723705556634714639982072731379784501393669167778444101095472036327764279800277136649623339467485847108192480475329266624081188957430460631228344228033997892281553441238280769702503686616048027391115290957429456180263816779366683662605580762447881165163557815179603467436240010928785474037689113417197787450996902213762543041133441157099194870232553847453071826251094420966036811514527028998133140904960667636579693301775469218961648540863744497188718223013287251658014540099034273508744945026928781144874366512883433784167744052926740080829745604107941250518217624019199404178414612515747050066311439184173096734831719954219003364115370815641914691781297114492582989945547285837044247550261326815692432902390006058290548210459874141229345644334569838452605181238255045742065813887386592501283163509266396724442810561600890605406579091222213605159426697145257358217974018410766709790597424295475598522282978906288404292233376332435264284694759695462673889687337438528407716992721029237821451257565571348968766499866597100162456889641509268306647357007456629640285820606034615396493418883258080166040259059637901295157997880008022607850373671617789223631723108740391158515943174847360996988078515857476948962776092232755075822049563441214860560773910161612935219099061221917165629353429746406272318440317058309162568865099685740616811243906398670270022405680279224530186237813147100625110560848401979934589450688968036899403216170460274657498038444513937879068877940226923811711396607459150964131595033931093929285781205085620673976071521583520791563163591894302813942897681741593303389107061889982481081537530214097690415473839580349644749986678208593318577895674429546361450081899147111954361987911303777643698249899820614905807442371884080362582756881262808725552363512292796318528255757774472104492410685441308266862539803269144780686814495060569542913579565869425067202498265844367672556771852075612895469866772465227068344996214402057835476066583529909624572940908883152852901202425451430882927812040250755097287879073030042424643166908677812969020355295842051158417451942854516412500762663894483563034430427610152558067362327671222005746763536553424234489035208798504579476506708957400891873882043608183616247120330005889694200236035175564232194416414024283153161060323016617670257873097104051333446431837818649806309169567930142474963462400162331142507680801732219198897878406023628542174889805813764358085814434482292914571214483944364226088763196954612048738157194983608632876942150311729975175978022348754578918586802544435429678260662949904605069761126650849213058305064953346629756043190997696947642905631077614134054135182286499062336258958570704332111844622508497476771976895199894510053616592116892774765409263647765679775821793004304704492552436412454925995776809780730732273792970121841027218828409166417967436521026921200908511367409257811311672947733875748498260656672715582885060860880130936679021671090405465607024460873107853409938785189033137371417745477698264062876708465726726489146562091344853692484560411981246664936834289128771052769106097572471233600716808452004218790678344574259613579919179292493282878517053509358567995194515688153600440910604771235655308107421332673103419740136650400507532379691049708920448591203095327144407205762780717261134890898159722229760337184969490268665646588538079328278579690325201109933870613691543920373251368829286150587181400626134229183205824088573659136135300990843474257497786716071933105579753587345581234671555944256952269454141550295399250288135222882199901308689818522505709226762784535989963553347694442133354233090306337848072637783971012504670040091285550480605012200602617518988530305347451021876448176425271077807760723936710103029171461417917216177691990647610692240804840053812216582684669149021267239648584387434962508165556081360823241673398336242605069357232103742807092345707868569997561216542277705379140148204707897504305225986293747713746014845441279157263440605029132132072107423830584892295630527459396104821372067837200114248592730453766666585986846252350447354869437513907910708429476282161106997502472025327207164856450629458535505017971026537601018816811668691953716286667435340309447981668324775091559131968710475518499814153588385219822959959314577922691878635848200811890637274437589906300114578602744084401160194118880997206518460722696922305538139534361966779423909259905298713564765886898627253282719214792989459233849190386932427363064692331946422074254940653270007198136386883189889679367698917413380321369777798747991539709221986742206971536157557358401206400343295403171229564645653279487379010769763641931521109830349676804302344509855583921376783372427691157926264674466846371337447496574855519576036566182436998736786216597496345147188069886476552012627210505123122035363961764334075254077374081989403651070320196221354856679882914475784291937151133667414379790975022006943874012317586777711534655107726998262401243785574440565285934557879646139063638739576410478043818563932475279946029365108901780385412619459294303390139999892358557991220687257427377769522036298929025710888642147644462591887909129802676918088149954093424252346458212790425669728989836320237708785263930400564872498732467730621545036931074365819939981765340822016233505186999790318576587005463021296164742034370935254286455850928446382269449507650859806983757462518282295498282571111342360250080652956766190297732021961801416686284019053010797668969435485928031471960820736780267841767983223050370743730295981027362822115401034526933621055571292979283600395622539873525472201077220095469500874336864506698415169642540449237395352695355588569517352536917743899767722020289034177578423799722765091274181061670120675967583571646726228474864857125372738796184152297440614366353103662969258529198616245771675291670100553849838443039810101226626207315157966183365942270797934959742561570442381474667271929794879431516273113128378093957584229182725071194068129193211930313891912444687472047481934116497441722591788996232613169203438509842537750120416379488054135789124690779587314528886418663411276947290973234269360161197701786688721381557770906382613162594654919574226072507839781359451283805476812964501326734886976707047068997805073453052365835201352521506675526001337959427789543829719051248030022511661087486427452589714308195315684304654262498751932203931201951420363955079246237533635359829450938282877497903853006007903667131058650919324191117201149268514673803525006312162579544199934075172334870141820621062203550872238763005361780262516931332837401432022369584159447896021512888713761857794212454476161699779004207682128471268210919844839056916581918343908065992127586843193742343339999681398807109924105166980180515467733852389620982529647499739279460214675552537710610677946942131337793597312709475829678640546112087514415020859205021413623944806543263942253462105895727655589111757109768802597471823477415277113342677136440245192548978916118219044799307346165542817226411302354174206004556739761425337830336369306247699044705730985139164083491625626845819132545485952065738358984239238808445778970840980344232905865389925749427346982153998377236044684104802232946323202127263238348335837204784188233176201918456991054137278246937169766232620530689090139683552509068082648230701589431389459123683120171534762001499611307727263825325127927328109104994640397250630316520517435232062755260942578768716912630251796991330715088959190414442371304372554255520177680109828367187118845362243245528428471581183393427222215149923313468095315751376712134364869512587376012720608513818728102593192301329225402929325690118561163716346226153530452170122104352645495242023111059277575037921532148830220115405896111286012358568360182261606869550868966185304298118534203227408495771631769621783041274331711207296419405675462650594082249231372771096711746886006651047910846059677127243690191339995141714595066775161206812742049113523054836873919588231143045539235861609838276902807260328802995791262672591031626087699249512506320607269761521444869615783392313321522651996416996150320994319460382836949320163949124345694727976377488682562631599174713083205262109784761320233243795207694827462916047510718760272861053895329581290188735496148107844436533825579614577349120108312779363416762676103705413540758618915465536730763436752474374890142007067519185340954727711954559792822081612924532894733279470496884875565051255134844595846908118572063743466385807516032492537915048879635554644950916707770475607670869526091378263552360418728281171495652014720084631247946707944354248970707607411310825196545722933563906053559069713560968720665992000827956109578865702046372250189001400456118082725290993457675773502372723512328286718356737942293766833674847259775122143362474036406076895026262362003766842993727686925913841481624082028106653025829211465754361356275937042936157481078776950315848029616210196803695522830794394807522056982113826002064039701716661651832733914410419944810743204510156476750691656458790195107700632455459713996083369130432002649696283579207936616188554507380673201838726462332687806236289228514819121058290687328711515390337585462989764586343511060957838043247920834000691696265702209548279127867509285581806454658335635718096131575287232391763793608543550269804911767302976953071215539388743413103134057911058356706924661737990245768214480439134791656745916160823122536680427527753019019063208600269322835121953001730040849341656815325078734938359776041666879025962330127672670254329803887394697976948787444499580245301222605736290946994735747583293092012208326506798152530842088927938405916811733669199501735018556284487306398576087315764903118642989163986173506556518544469811787100201125772428587611882586038912588072629751481612555015281234483877336794049133440924728161440561904426619061517021195153935679859268339774067968537706477918469675631586432215989507563760259089832447882058115749542248930767614816339465682093841724829885161003449954433307597319660592773911373741625501072943174530107686984869048101748439476214768774779044841153190764942898992337814679468612663088082266607573297535696331921849985352583337180879729058067357699100414004516160313299122597747803708647837324092676959641176159795888521993079306862605430046477784257779013789873459727736369853695973936843664146624267393261751292789057358392578608391870298916386187288708415481933856956323177675278162741157219965904421501668927459212006328274975910294482627521298402745087259699617202157734838410964765303790624344421114012340326032233477263778821977854054895467596288528768571557942515920682552748425874479760524736706588150510307098637909783565055988293186923670739702481828684028996949476299585027241195250537261390851374922923690130330283613090674671803100012151557082565563974116990923170540406278705618082726405278718916779051975317487631587179291194614905971598391002284515565049960070104319317803413511635285775416747426118640527270867534690646788315685156750120090363124395522409630134183726329781445156467487352030897690711692172532026955328416828385731781522716039223077094093007633773894671516413764532942561035975038848946840709804840733383204680747823674609964902635693301346058062311574649492497670434160754329565488123680882778153676153787833551864255640601540872870559495832394060492360913069681848414478545317483754112536697379733123477656311476333601030617772376071025720207064629859718266061999917998623410481910200434811780010047557361104915157175188324955125021147637856984905141937345058171175095019401972193310570402763318710901871427106219987088481294271341582372733674973093292644058902435658421681035846148604354140571010373643860389264283542869416707640613633199975748950663646020613703400549233944072206426709482434403464232150879764537959128363920648133882814291914108632652762839001139474638941694651779967185493151252842273111323875321971966710438722203413574889256421465755687411283715862636730671738542939998885155879240609958637492500371864414968035028809024406850231446454295416467744626445875400628431500846739757304820492721983136499247780324606028554739832416270675148406765241725538095087604953592030893845608404027848932098765712086761862701343719475970990697533785928873373510035402531775792495847764984588317437858430403147797034569988632758731745182580550846860781587670604441726543950180978567585480682916554324200158753971643479435588301878462070023682694736047306159520693962147962807765108105312068750102657565536442510436701006927473415365603680092594805799820906723886389261654440341361578889746300736207256455830813113807348071915852420346280989151862105058692427309558859570261448246668449438966867757450993411696855494156092692575975169268214350299395064302392003162673780256606755398437125115787630429946894463415455595416001155013895386761672380276262588556415393945818960115865952455100952606532041018390827382223086757351802031609690939717058838059124645535956813296076431903298170776930325706330669682654748628330678935798777756648287583106733450812123066763861989287366584421512225730110098802006805615924028456972085505763540616774464001168260695817781216260811130204667348133923865363305348442523430228590713062127222590877997812615027412596726474902516752374238299992390206646193410966663105668966483938519846694744336214291252521013851126206132791084758081163026848995235217573622568324310945006440551184431668107141787541807070686332309211345164358100221668243162521700077371830534023550851438321698049816911807954581828435079951853425243908623728193181937414514103044663304886890132918776774478448322158565463359303607890989623626003371495347756431056890343118209026862856491843761037819485355336637749055355821645962965518235650610462228312982055980259714021100461291775276199272596975968498039582267501222349132418054942730077573778759490626388997413348893553833947366917455091349419111891169863848277161396198406645659633831922682599535825994025836181163507826168328038324580484217011131295326804275842361551608286146000313390742771022399082213976497104335299740907048536972029273674918861718448539314664722882653785034992437025514818558666010548615064961717171305633656129540290370828773293085173883780123709638126831267132984746543319278912209908772752452713521615732679585504288645041387883004984203471758951327088119334816024906878570936940694339230121897508509789855119384376707850639006166116752851409028077170401273343228289236805176316284006919712728360805073803199340696874957422890130932415582399445822135339115515173451109532988265834724735677359172110806050981000704595452534556053343635584189200630316361409166111057885380872067209501685641795598510081720222507606269518113503613970574666512962265340553012445913988508315303971184272380036864383767806304746421043516993915858224829506905075640090476679595637284153596896231668602647908538414487092979964893998279514500009004304253118116807906701356887880931730422688842594157251532189863714729375765354956275919332468032145408071302798926549493753046097471728855745838715321921998954208843678205206076674705527471187571680503325948462991664417293221495691834430696840414353026873097498561885579079384930704005955746806877859101418923136587471540571237354560659056035418720833810959470311485871328599808208485749591635204501622820393427647981548388155266561840620334268118879638288348228291089139783254083520119809838769874699113299844841448256894625281471365429887394660125343553016911676759112180411835182743845635149000986320653483159279992963387459814923392687488478481527834106049041836244484870814980746593993371884436908697692108370912494807110231732547059288404587308042067912494815905694847058603759872207730671373086355992859169287434843823231842304829885728169165825411429757442432137743576160959376635752319852396550062443759093570702751985292477952428367637837574591900621252821857896251925504511902991848212496389437285120393970498158758099895780810048606639363119198566913445008344855126328442749212261763493086927838761911189078897869504828902038022493550431547737827829991714898487547937593395214640545896196014158149369243575855961863414838469237625074666343953240968067619721699188180868456806229455462569897851950560522697481193094312665606746698209994900238613664985183686704836319154044129431583423954965542930352575862700840936906065868325683270299446718765322920214503602661269041988679964605013504445203884404025026070501892592628250000662801900574171480265593439380575055361706071280053228181912180420514435201420702405039339315898964527159465716811706710570026030150644865388421783429530200109066889396201438647855390826276952065703449093970842555865391101546539356915658390705243331217300597800721058146138403718497460628954891186647501165821367056749800210270311400472770204214128888836675805407402134523492067961767785285101689918325877528905493841880998428702824376140510189741044045784780365354678374962707103848938541284152118693670141629367297198891466638234487948234381857825656063009838146275845103246710619009169190927752296011853857555864490124171064172440938065525877343956301863519384100166770581302762526781025337285478127259615753135733431416313454346975068380311429721917670759136450297281672719207594135136832796185073159340654484940800592443336909686151384515818583701864724920967479443275038337689593542755698528851805345894663941077681388119779746577797728749757489663248120684914533985026263254196834758536311902142694280483155561457644371057692635662322975982571377700487210188815324861695970167390150283363645003346315497366026526158688616211672381813972357001232418256785700343178106168574088997512224281629115560228843231945981276830002711510511800328477646907719041274916581871147846033395829638920384544646158036033095235102464790513074190130152402987053277666131864390243622089213038356245203001484505985480392687004361372484675732705069335814433305126266500549611277061543751356126663942219168196588400538608639882983422656842148506285878194297243349345472508083955684389913208418320553345263273425134131518455679638141598960539971404260174296904595309355837688173942500271434664624189116349334689516176465527861814777125336483982697010691171923917546633412228317484261965733691885516604362805720580927505915549024530592715493466706119168454521529577984761633040992141988649357698711208129959712036060931805846242827040942219556562660672171817383659427395159014188068933728590094005957923915402221035823078306894897517423754396906752696862659439009583556513553048703466484966310630461428897772258933099810353876799808046470772701215011292687042861940018205096393479215476919271208282877918431158752032671649682491969071253425307297897253607817489591677113290755866402320049497476898342426479525028881776629006034227682963094253762367702147069245822808327740677537331697985703899153449191290137098613383953283970459584459064444867145306590463550170125291174141765683674248051253445207231532132975631138449672339761192441290094646952348243133773519656770780049597645508236998383437387858939590309576936029563878619511304110628885919499756884011254195241482797196426073459066197516129312062917735001567081627285111216382446700059264162398262261754584438602925459500999806931026290855480048152361708392918602224308505949983224444069845142586567889159839218744151812948625072462591825436882492740420334316246786569350325722959923472573200626872650175547188317623203102857251282577199084657548161820536430178457933334489182977542618880796769989931647790748808384221097418075886167615574697186701430716725669150972598142854285885692976974469093660501324991138419029055755133364349685110863347997229450879710428431194116713742019311326140759436092619241970412027024752145895738551688939669451013174642844873990141109989158988254417442713661701141744729246356235363119981488600869594743320990655749999278159512388290005283602599007702987177493313473349910986275950563142431380418373590585010482641927597851593507531787002263025711864993244890530332325231380930827477922641795843934720989419680391700174582911842541831396526743405625901964181061536035801269732760069465479371059807502954611345462025913786016131570825143703499005690554531405191746043278186613191573643655835690797297779719847932755972920735184829799563450409186841591501701431742761955916280586712298122988353175733953189043924737878467760547722415570278428235071294514682104413362792788098586318786231191505909702435233283173648468561845883652970509202989855967008079396333646083997872047883915582268080144182479178523914034065378186103166292333120487622991292292408178151146305038278250105432441314324564383946420848769021341459730690098810004165900924368800141093176481423615640727075144833189907983402094821326031138174084755657369082465111097161896179835143230256674774042406558043559725594761938177498818521530773712508676898337232927989334770186190900260661008153929849326687265623337528172215055562974802717162787961828263048135088332960121764639717498598861717444161149516309298608375968109016823155108398643776854150228744821870803897468861338684489828674477824666196565827102229527439639250185739995186001184806658367672287000779346805551822174294962219137918311161114704176979029727748984995245636783923840595426915162329376068293458448908334425074849400949733113179859130041931200909663715112615927645117177434552004366515900077164575386283759336556666150590014278431117482997079285535360381402325879570444857257866302016242706897775651395649712005364112145579210017105086165612059625232978374675425893968047273053033012051540197872379254327262065872980649659481006778583844394308048793675080649816118034687278533482290378843299823238834071578338186785191819651296561690908448914553533477026201688342199823454643273012168758634908324363625543175777079130800545590674064795072308300518963546357373946141026772412645316005850230894613160492377176357918672504231899236869124707645469582808873774562533747668650554412330327974610398693066605914870031293994987893354238005800234246346835791895386027523519336839138878488497121838348152144497972270348402861881074591455651706687348296841133113103816056204485309599760667520203896244337645507306382698322998716676708556690462310068368944920392817372629737422534128339985863171964800644704959939132000097133183594086557997345095090630625428019193137213837093631508407512028339182268545991852503525549612497142447402656385348864122984720051137317144526713732515943525632175219072780656412043145370162568434168370959997485448253330365234502036341533013741584579095313687149381461405594541012322332646504840094755658468136360819624247662333905538900245418321959547892844446848626874746416443964641787711528362758547582541846170232794962090241335803714922264387146074422208664200616529545820977228243264108629694223939367449181207838320098168082052517416215807240282772931437599433989563889772582704749178314115908258133158944989472417661806807330159860127583149344898277048586801781843809163314015778438318088183207471262245027464631819371507125448183982858978138699001738733777078538015636419157622884667018018590496854231311078896644974407014628782888393455123323189999981526380860074613185068050497197065083883505811702059066757661632029067817899105444999807805693633227030558123563798625112838618224456065783176393048695139191240120133734399260057685079564273995783965073854754171214704126316841117382706732171850539049288606239955640556710425065110231950150456948893267772852510916538003739512491725458438813530423764091225430491589787816530385758432327464815593360599667285320428942814905178466228009349464016481708592697134172564557422219322480103037781296581824313475358646692754184273669925763766207410478840154491514921058406154904341920189181750103244465588849294074130215619169339495683691837192680003220639627774696654966413668658088644805830181133772359281233763452191308432000273600154958194793685797874534942977406826936409914826600178398999246821447108947480704368022186377308162750585628344158007432566528133114735494524830099959806241279038317524673893999701254261956439278560765328267926265902158051606745508808350081820909273481307717141863388229844196284399511478167593432576841146277099850243657224229070037899685477072407041102554807270678965162505229909043783653339368552931607926634780656073392698622222596610016189339614442977445143935323624279848883618378947042718183408263998082240510735595336437595708104864603544248145820079586174587219450237860509498327467904949523823002240937433929117695607432348244334602422355047773938285763663549373721064269575145578458770204517494656090251938637403942807123840417059342437456045400372717125481198538359532763752186974906491371448651125360854490535577004304338379209119639522479283400403342324128026756949688850608680519359514927249696050585473128157116175110877638111903894711541955622001665428935459889551205997985910931307777549357010676918791853660849348803508590242958155827441638150168250042734862881613915616681769964533082299270717135997463540145070476925053198530126126639321597133505495902560158789966387082622113098373710689073895530127439240244797991899118018429535132220246678661956965272043961137967301987281842760296645059101539142840994218073356281667187572614848233430658354726890801932612560479819642237776775136663282662516292604100850037836321698194185226012421180065630953062914755088495830119406235061601737407990518528563834715877320282963909079506897695496655155608772846217428454677895181126029656107984088295030410743611335158192161815474513315400938788335139919368589014281089230493474358386529025863205476338995822240293885229997703623323684551821486267761441104033920505681260020543689433290832717378504396692074225947259534346633266217495368369437928437833742024548914147015458163828158930304467999131450065254204095267368297092426309614156507593311675431454088700391938278683073593078117724855877336594566252899132681927874792679116711853924746532129521138163679526705029004655584252671221688510384431429054436225178153230771988457988293602239447646352416161035296303122625371941524580162234337893784079311653039433436783475978378926664404290221817200649845607867352734142696243454874083304680173683004806974842351810810019487647129849793217424975928797604462044614723755724529492916435417228139503574074822421385170328419905760062225708463426243007599715781949220153984015418784751824572712711625892445698554900986135064951973405884584291369851136174767570418082326774728596028394606904768930123403555737301663087838402467186121089908331137011086759001146826548156918060676497861579297226774072272613650503090361932899097517138730080498322614544730516468110319387601235852934224695137084235888554143037088660657269282134943038353660493135356676132455379211477374074974895954236379291645179011704591105600253597585209650581911516892326956070565916484680644453939338497583648959578614026772724662826028620175588482506065967925653383031689375638676385612080480865367862877042476962323215958537307266515938819374058043832671377653477700550237909409404862737582986835111056618435732393777907466112822578752582148032487498196141993598860120985799643208848287805943802337099841437913262178267607330771841378555168333331875025145226105567372675006140267953799458604056789246074517187578487373620621674617536226976147246655032970532813192835482048322420742230367559412973372143949132919576534405208044216694239505942213833452475335749642396452979364087699786789074551488642925972658490237666822689045527829842880537106935896136406435798653576164797290668212956486616286796695789062629998353662616403635891047319382166969601102707527898926139285668156075751712277592453625295983681363886039947491059990156579548220244716505668856147196894821622272030751909440329890617831604583342510506108648784449448131191224073511945475656584414641832745632916932470028954894785420953055974936678814290981503469373210834622785683524719741059271744183268945092290530557234163431637317469584475862165304066578966373247258429891249765862212933551608491037069356866328330649554315829154387576651400060535938973768506312086709134644021087379844474025871399815315854709116582617185361337915909785251410509371484184257408122530813387421698405855412541561716012943787617094128298643800215776122711176552314036031479483313811665258758625155324701698325400998249486904119635075803716801431717402030566278567933475478299716764465643702487564836895993617054813691730141761748755213068164073305101687940984150172479464946336574393234376825487793407625829233122149299883847671901931751249463898458920787818761894081496437305129797234349245709317955191858649041450310570712446118240600120345566023965386704415653619661773413410215898745710377909029895001850121952718566675827585107689021260479041701080631431529356168361438355063974981112393826861991945158509501276370535895817923691280090802503042128308422673192811770118127638544634344081740279016616379390634249641897201339184332671993643149106251385246873599718976913466026598025632368817156569427774379030379908183431074284940098660377812304752015465984808649351212088235494188712183469500761057876078445482488094853045757505038077388313539680813866304009043432817255549464910301357017427187300277943217691020784939214967746602534766467839236622587479840075048039676526568200966508337670715317909442524074087167139822544615607833056202019465389459383218421905161833786494587286544655960518682580840919322091345102057959171450739900303847980061214809773687228545802315228711642895452089241929437099019191735617195716246169967240679184871089872176888907086695856143664014786900186471512541596838040061335340158894790205178526077882020759125579858028855396378768794028714158809490523391974747573158977285547378027493358748038081115050353367119191425475794495417653650223756884082012315683686352115539098959486328753075826562012651250932809987403598681469662627516059652681468227447019375907909988941601985746120835824717573098164245793840647135050962766656348924800412739534114594078153311744000456354498946904744212885768435164880979611789224315449889758560501385733085547420293945209792788035134679452722819290046202297816060224107886807363771688340736516830646114567052593890205182688946140719449024744342613877360028448688840494449314293567676809682190050924423318465196677183713339086034510221252078316642109414752166007514854358332045336181485839406266065659087285115345336651755500526837432501282327726120733387982970214982197491543802742371373145338040526793364438446143180674016579131087924317909667284217367527838769135909922656367579045819070786911389651042906974616744939137799656193685306066007538275451551244997305005710432445899340620684231250082173654141011131342503914073300294717749903527088834461527671669933377482933328059039344761202544694926687291691538284762567976938699604333916670809188989631246483274252227920608083968257260980278083035245335880231371421307560960661449344733344605463571998689617650573381519967576934509788930584017244894255073167675988798874851730154210914450953482167937422905875221466536344669481138141155299915241179957083457250557631447669785273028443038852714316855459069498034730555663381535142870721848299030221399873750247690875848184491458807638047849413616263829943119970222064360969091754666597435807480552320973602215415738109115496945525354896040683160859908317456368525180367755285525603108064401137129307036125705682340796634089456655579847759923530947232013268393243237393967704224984233632137575938617308641270916036988803965863645093467655463891378999487468323244761459444093910072379843858715160342552842454121226828934281071342045440633524041275728854798954872391412643901439111720798045470162946427927488986248563868510324876946712441943924114593871171365591627325115974318743216578456448059808894065589451551407929492150789660044281872543357214765167156916156581955635749092935721508234759497293398410329889144998243001585215260329488731311793416930595361640189569411338884636640453189715344824013478409970555189730682190855473755765741644884166138930655881285773158013584455402117633230492998262677356976669378269940660434847869879482987337680913144298438583398469318211404942653165744064325296738293623829323662532671417170108081955550186105873566305766384617388651992595557103328359142191539643087876814204738760889330049030562215665125852419300578010949030159025699727706400932404970974660063165594783938740553902583469330814139806996886412993980704636868911385329934328525089582836602382158122379063888839941141609895397968470756244086534646518815578669803500546601197931278613727940870969043253883856130008133084755919951323631266547769697006892791731562568379399353696334593649665870437178703267101477781786545154564882716461402754359683170413468685297936261272194299039199426484987652590066264144784534303163086351178751689969071123056372941133022195600949557688233568008468224236533030619803588447755113874831535154118812950824720527463918262270956608566737979637566712034473646084634219910509220291282632299738189642029024332404866112441451325254800093095954389863900931482076705093273867777733937939850659869795760370313494088619728923955271731953110319251694609258992443291171254398700538484310537378552520206782650257039646721904494821813750783960494807606936471462297460030678229828602299178938850892939985629903239051083756291292101414039359838233182571591703329680089449985087856395999423712461641149008041536725844430223966695754199760065639999984900942458468447627082345948490114436743146231400180941764774581374681702419610405400102634191042128020219734844104505110065519609863874412843510655804301969071795043629611215116051308770618542546601293230843999485379238657319270004751347993856995114251347845147966186310980034430686468666466700026311331808690887112887494931458224909510150887597431078091303332640186270067207247896787841242744861798771920900349431885047885627454285011220792120086695686572183571059724137818531490322203282536026705051359279773101347280806597200912288880096581568793085230620802271828343737458336432338809550319041947359436099568286689149809993163036027194811459093628179137495468899385102718930116937944666974133693476926325983787869803904216494132650539542672944374235124793127454433203452321544004569940219325207557740358095576331691318580191038538310369386206152360322691489356747984819205377576384392854541187349993281786170721960697950131539998913582984987706449760488240578677283052153714677239218365361354105176345048778931083103003734325105658325325656640547267687831089488461233698065531623457446166218807787698322886318333416606611341238398693185318661520393803833322192927391007868748005411039617220737679566592404301587794429573952409937320540794808577121127125697994754269403448594513677465660946165231607088616309556763779817914406552600851385365991526274337738682183458462876737057358343502367154547456157944102474889916253804024790151516690205424718611402545149519309661387540508733673111924796742142234428760558354699716717041101177488233970585115434609961761488185464236524545299966745978830331158481971850502583613672477884715327876737937177658857275433222475778511302393760745106743123043635932136250543819889685181611556683963198758809460457377547564173773065333095137644296350637124126453907446573116333212355277746285732114758827821017709501434890832854317076994102141665392656646884913626813161188134636342504720885061104702133215203143985349089954994000895301891645340002294210922190819357291406202854752930244796872272765791186302121144077525401444080613444617767829823121833056099751204575665540799362876210871069410392918916510180955848948642436261516192637586766789794429082737600085811118034375156829495482983324261937428867759434603128780614084535054498257957876197488589252260473966201501061611590040243473706826958110880123144961316809480341483202182926644659499663059031393805933379069436244638125901779636994296387913898097950955883814936520055662632134113655272833256659548731985243807691096452919739208642598262675193112655074464812748786072077430287843274956491918654624864410046837707459817038797733090818785337256524173925470366926201192834119413858568535981626777831112651798285927954773044811699557802732714933116117710213535492041061001714546149372612153288413903007515687480187016852345296251267216735248104679867489308958715710711318384410506386581167305844856776738759229037754660873235961564216268708278952858158388997491917726721046049561176354826511971770427210662260842134688583680080396000291109760772205438635817873491568291882468530619301200578515871777916163526105992508921017587734284020711802359523244979264337074282464475683696728552011970712608746429858658602334054972190808653039226616337612458387325345696093949420652724038991830318896995574894997133764812246662190235354812611692263358797806066524860985141034092767014959617203811676771534736776513655631444038938677304551765754143588557711741381955433940101128949359306537221025820692779814628952543344078408768736676971259279016712427424481409486303565916639991320419506906451844774687292289612913959203013406028020250787941478597706751627788994219714732320982870816631586051911487183681681132613247994474882058747560612165896748962102001126776266071021990544187595167257923325632391559594685592761981186261841371205228711559496036069360044054445320753669150012961268434885229961036267475224192976183380474598361659462358474237549495215981671689018970476219613444691586961787531019664145492102957845262433343934327977261418653059754999341216737763739998465872963420218902460970112800415614427153756139468540475475305368993214708453373196473895326779372823203979442671585283007043480852097745887132471978652469225502567750957852354631742209969774389435548772450765957931913510533725507607121712732971189342323025834994230186828105267453692859901297623391330598832757156612210606631238620517358170539972753497212866951182472143980435853125948009581978609730850598950168421298107838597168028069654421990797581569165472913562846207556456163570652644932564049216248438438066161802346174807835966592564638753045561072193067603837373251687974122454506985467694697425948367461751538703856908237028683194145048340278759173771233595872915253038396431316223791130757755654313908207912183675310169638484755062430756919015918751562144569232547748362583678736745782079881777958557492959289381509951944814340852662761997280416210907603342187222371553274865035450457784253707814603246393051272119898583409550197442382200106269307345565301269905394777558180940386910745265263540865626814313864117860084399305398096957950156109307755110190708000557898485599659247302882411720564078059053776811648822412189594298056653915174711861116983511354491920679759697113995263829744940417581521824862210572551986229614519262793949141978406939625659243730403991400703502128946688495777189873455971826363495357026516478913746610441455152446278014876281073032783034711165358647377786891317435625932018175615651817519797678966107085707673103805412742080839106974824650058901569436230463426527601273423572743494939826197535557887818410199969021400284268776140430766365303960164857011317725972644785692087663932103086583259397040423873778202660447926132899749108280313323778536379789478170370203978959060515240997961381679421503014149413212638654515101460674198158543242663791835268893576312347577881153157732378686063376665869446424111607854969468809494812409627633341289665403586006971778570774444937790522610832256826728022542927837599314749913704931427642820309095799360174390509855872046654816065609195876604091482258053131094721086137201269946762683084893240309121299087894377600383455691917806665867977096305850945884687187975132676445162137585005408387911505236732518338556265975594232396345459314194764661679873244721937427258980842589137084858910766895420825235445427304516419319352991247845718162864267619812070088447075943986473352195206225741369547618900887633275809952385212198888315062697978067182743116716973661151319382341815043513016025392093438775042178762482252950323929147615372190371755197214959051408745336600482446823667608493311210375936989379605889503403443967667238734402106281663912646144140351662344119726229273656422947376008674565273381128601442898921411619521628072346100680299312185863543579032372263601462484872475733418597511910504674627536292040644593054787855830631924071985598422972917555122218080986831170133350425869585722342580630238665034601242057536484746321958621589971136918318106105219891616510490564249536941630527769519311987555863493951158224395647174295842501439889634671998325882770827874666927636858988586936690001329060388018888034582105487424373416578940171251310898072221915625018144047939171353548177941825376619111672918551380916054132108890451606627817246048384368027380560716790005909031554261047775937143037536505316240371014607983376562021375135066586756247429253019475229453384682239377577133019136460534272436908401745942819296187232199890127902480224578770008828375725934992550115700354650753069109585018647852417976787460135196580309195618612930520007178649398192691038398668985924343300384012815552999139272635626186041322996536949050155447296791545492851207991142566939248008189450276335315251197010987891877342725156037931259718985542909541508202304316676277635027977285784244782348721617073782892442887068015797041275777183596408166143760138716527563792892925115714204585911729118375877898642900763439888996594730818325584947361771528153382960981824257162803947760972536041655928747829107118850901249928693303997344926250844257916940212399630250318963433188777783291866610737953765859247291427928681775217246684274564015245087856717019416854931365825304757055683036236847964507800503560937559722675240838068598285914460289972184701115867541908936144308071299609783298687070223321442535730303263497368959571002608342476543414134120893552806986087910802875385468170073189958610599347505947507270021633870389307340030216306586607012158023567437228203661983412504655522686642921165221602362901720288557874886752168677047291623128242017321494842972855046011224431432273247285984983030778620984036099558751725264031200140284189490190824432074035308843916045231989880063146985611108343354716917539716566984590595724880607836258246311689191005539081818571351637521826874922851977210050934906087453086970979389190070511527556610873709258254679976958490717256669975042809281480324654376889910749255810958780107546018057163204432684352540073377005880325599664251479574372389398793095602922031828462068573598086441708851242130605143910550502211207390192056831411786077920169790494072787520397351055077972357039136309721222191275353825157015261511710020366828340571709688362513158677928540505866493282933849675568640656205236391553333898317480195881355879373027161222352529836841209883081175992352931706681124396658546366979503719441334730147016256864974240814602184578656954956555364144240233227392054226005947966984061108808682938232532628150707434631078934355783401648489416188950125740850333864296521861714919748393484546747169556600417930700350120187176106845509303665064932756029107718170340846623420768552973043780196697042784369223239747197546535268205957807258460676475689945274160187647752792326780275763890786035886751317807058277901091398973927991465553778740908502982956806310963971695146159660462279153440178890499849213799192934314145382108272733522564289877733587211960319890209325122690045370983214454227700169527511896789494855436154620964237055946661665796009621777947564105539043571168759258136374479245473139392739504784020757375364677878878098323236752281040202734989675175170831047531013684181830121412160716453618733494356325342540010284171444672095159344208148691088235149106288893788613345412599347784123603846827843364528144888587410469561820128502553482121839722593925704592151487147068541192615275384261990478525220808231781301827525575042874353061415433085186889273541048340056980819267268487184363202602287616553300359292960112383140507261579521268219886921757156978268708336260787287768909187038154614344440277728958749013220307486776269839767529943134459561322557974269392900476190141552175718728994470863468485825218776852622548570677320660946035576754693257879498419811668207085713563901880716702465730151078239966574507148335430699421787807250616823297057122439188171360388818916777155548729714019549812119568678633606568093868893929413672304510047748254337675794401738217721066022397177545734714355355407511829699673423774004300541127608559790575731934945330196162470445549421211911062598157312054725001347219384474060037108897445726664230464993530634986191242736422631426317129591686846449653331414320695723786701046398921107983633014178573681257541796824962568839921457462773518072715250156946653527505424872314466389771903096032067689258518267382099981459628080844447347080206195271424423828643305267816192441736958036534888980662653665335082380409876262768658431710396981969545260566337176013980023874152904217166119058235845941765894468461979711460730412623281565553050316065460478541406700045743850321492364506565001689532269486097481367073299487104221794327847541842276814576811196552914441436582908521302078739324035273179985236659908467714654584509689712363159052413346646993200083664076347641867278751785224681828687057432202082175361934862477380784131100443048178933029215952166639017321986754356167778398085020049683783492032172446347677993497867843475148949410564793697241001812516164780246077781096205839751627332586505701228321928963063458471579188365395314567217889736398819268625329356916716933930122623252357164036963417014070770643165963455081828318058526869154995076100206605940826343755909196345127943049170100016003407107928716638545474948460435300830504291690654760620060611877119097313307181170492728769361347568029695696529683864435937948965269199088890037402371593615119799163581007792737191646889349237805487128318355565078484044754045400636793850279888590645078601419571694687813899545645483591282832015376482399351071488886941910254921268961101566026541370276977457093351056035999039207366811123073226029045616987217915469862016945059506819355792553685746681882213925580342595989156463050688977333799143393735403155703590320130848472228437430444799230680545496114992852633829200322555198774345472384507550205531912378140581856473128851222770448869318156134503091289499180711907602430023507649716610615898575921774524251986150344871455350949271090754539174121640493919498444280661666567359450026781674766100826634705216434321442604765852411405173411302144472826941304256286004808270222543508761993976842493027895597507859268739891393955817742249370849025693326301629208556160888873522770569644501591820874661033642400960066413509286904064659520634363026854437636932176749255915390022222934171787587355803787913443450050411361146974052371276059320126798034505165795350352497656091438537432882441509248661244174326675773571768706361777664609663509833698311178033360213975645720473816754718987857576612446305245526427934011456773228991406978726244706440195575642500392629939357187033542288822313438122864087979909574228397429188923953255831058549063880933598950634732393722545325654302722022491171138002887814535511055343216332596691581345574941631551881801003639036643621353761210599436358733773712269022084024451990560797044900511012449229980023794973597907061896203401742274952830984925919772315781869828772568276632563634637619987547508396264680890231183026571949733192692896342108990029355724409576009188579039861720858511904512126902048692355471842432798517391853715388368677101510878934989938359820076367096144901117500846631121605992472668259989463861542349716646988363782114140324422891885688451874404399407724296287057273598796213967868675235242058540370329468290645265195675051354339210477579495858570590667330477593872758992493981839376753866656200397746265276397336305391624851264623988035550058361437134048205674323643116282867486849907629994721170801038701509971332670103677066041693121048302546653772222656792313678108845427483273347713488493980319703438677955287282069527873183847317377921624048221939363354756853092494420819082084401259436496019285337394349595035397978424555775864259237364540564186344629584966969039359642802040921491419663221940808553160606836744247703805537722410553494193829380441147555559699899535281210531934496125933114862000080303594860556838516053057564030491288839160137311909581817246039264255339338848449019389525804151781129332665997979977542532696654871122259481168841808438517667731885192900281568837313765898434486517523947770562718793197262314560369841536803488632783086376173712319844128029035238602218638695917461856535563082939995091482587968170306815121057805613021613187853606464870932726208083376741909122141556298096567606363749048734330177153396581786188083267372556136645032463824059092749394839893647159744078607831740302151317964109692780730154219418337428582556936335529000902893979542275134774719214180957187912212303342997529208173305140699618456159987657276234252323499317367505878153435528525506912069561890829844647755786293146098602172235966500064646974888277755576183910463385046931089270809604318547405254864241995732609392194719088866570955659457543345294571087835017503549818304030407256950395124250893932548931823737792798472921339702046823323181047358940435869386735066766245709947750813429993150677111273560839321249815510060299523232797033253108371736077828943985067506188587358870511548682876159525077867095021965826944322741122870030505170981019475513997906717619968474594682401739368210048259571189384184115454490933064585879772078400379099197710398424975514668882790847847332874248595342629356482375018839908356172384478134277075129493380949105404586719084225152385461106288195311594427099597012827929269022760423251537967671318099793691251907867607328655891330760171504858718049286389451705254618822319653909543474463777167505009457505511715032161157477975864183908003204029095119144016980282101070410591778453713852183739236115068294164752559930220959103773473191142790936040700694889322392135618395366128800780196871141904472890715350074010081692080401788387097532023000139908367843680253198778221567158580148636891184345812593940508655062344232943196164129327742412394245784284474045892054071654794536432600945705044865859994146469456542518950602428564167514200044306230268271191702122812447914567215556324805687915448309021181521613011019051946236516597758299311611681233926856821562101214589368437143830377593233369316946810827180395878023819472393028168310117361190333216697851931370592305952414233706492442721821782327418609806088556314903348753983238779898025667201783903629241616677723798283386055168587137015679128853144969725421002286734146613603685168904234402464303929949026894393116269548077038966772293890684195082016955341149579862525472990920877876194228943870092804610188788860808655908972394528835948921846244258602584602331142813822847864535290257253677015532170358766517269606790419186101589044591975808030313867414377765341531852181625284808501806735793384175962254711370940768350701720908686401270198540294579776876224876509916073831532186515640861122857386543294033438725900724563749850809817901763296485777647747254463205807678838318403271826037406543485905740360645721846367021171963196670301442469120098723358111703925680599572777297690465622803362785790421317169115590756062246799566520379072297771440602017238367164570891478568871515306365618546118027325491678798671289645110323478929742992597076979272026874123581192357649240829897983435193323144959567628053561962313166474636226346981211766272159392288169965982352031636787252031845886011065999472184643484200760841799824875260661537725344311922281871779052580779453985675036713725422003758454063145037057922975038282461571126976773637651993485906304061335978679373541136348400113925630155101613155555581998163585126804524476790867021312013730472841860405014789351188271004944297426129671741350404909755941516619860021198773222113149426887863327906619600587169531429376693882369029055747476554664616497213045438806098419986965458771661031187864546232651227254447159108003665225668507588951072604246422956799003570245108389551278451006982815461695398943510740379481350120858349446117781787111967139467008950541776484978959168647635931615206461585827190163002595223680073427874857348652163668170553786327484697282086019719299906581136206092205018858936477069659751940034676175964522758586144524875055668354006132861064847371006167672344967842217785868511916585301470062301392047735776313197656089417949011381425933791652559515442101985870624582852474464653599348726413252592383445385273972216775800639460516703426874767640162680827647519661384505798347843475368055527825198494983590498010304016877046648388324524237791783511037666284768683748337002235270793266815218847234270117349084679671204355291398742846949393161951676692813757877379081117915031351085341329147969062924317981633531338827593729208062013489046501315826992047467298762716879440325675364171273240782384606499922066620859588098815964762210182318201988720454542713410906959808552954101980435920187197904337617943015542058906645618644557837366274519235173027420733676279543522218838240393515239386925608918506732297311742985701393756366151702331818789939293913091829312739572981019677915362407630028176485739860546270213504872849591271857502638686369663851682043149290551313070225153216861691026465582461888419820159840614906350610051271277134313982428192604372902552934722189247711156983417881952066293594012240651151110516050087387862980792271910203027611767695854277661939162052939870112826916375862626175144934389881296039062612492325146604881747543609172421216904498131834694867562898149532573788496014829155464768568984875728080694603410793113564397995041065738980500698344202070970894630333414301133381554779251554246551155282091226580522537536275873135385855411415953007121906760572980830921137611754012233803310750683310860145874341171767742585082777471218804985896702460507502264145320565416030083803088848311633761472228990662635007789507920173681740735356491929622888801303176717708823615422170839169966131603013034989863964685451569196939129411934197618249086291362873963088351956342757458443014651631242207814626531221609702466725016829759065887712941210442728397261182458050204752335187781236322144964398213792368183596368997803892112389414901031079574767217565042386870597623853835942694433143826223902401949402227825388231156943970857839753611060365592739122112161548598241578124987618907257046230693526650870900885305471715387485885790541406285567873492278523922588908371191700153415112249982595317157717499046012462670380200586929316354830193559493586154875858046723760614990624313357114928818474266160273502315036115027023242783929670291136587550614170399843698738811444853802270916948743085765157137375911217205731319900722564410702226469760449422760754721012233811785740061897036964927903041813770022733432041160048458150227468148087245365514161454719146047464122225954619339778451553954920400904013959189872094013512860199072367842107392333531808214578514930304070331609655279386057175496429565003661238265946713099382881390000181390219330176265620878039153076555071450740997849455615169348511437906455050743249452612680200970090123603229414215702860173342140638608093848244415947170302710122816806473124234717431519768084189100982398299601300855985939704646996618884603950574149906318266381326059644195153384058958818094701333033764677958509044320468194959602880146108312882416307271073185440579854743769780042587251880563181017328775776479162231095445845190406519183543655542590477609169798146799056084023369056044905996998876643909612245631488089882977624455594228145780520577345128900676963821677005984996264252746974778213818563695070421322565178778765104603008317301448877057644928287776735731774356903760255831285169984058963866828529519477891491893788299521228589662497354038194044907630090146908334588220008352299166507521423256482865018402351448606506639251302586903129414572523584772781187399041013870818266581396667843017448222065124183246087918668649968141028410704258123748720498546464887559399754417254616530446649861449092619121746169316065855832717078443973245697906309360243920692961931702950266522265063940239225259488425852688697351529060864651227197894807318814378602722011348407112318286461653208562907477564303640170617330975161583226406744065088590447494174360424765242077886991476899980616436023860056392127345534951682077982870800277731144602636004229387397332120225649991116585140877000275304887908035998148006320650148742314205938458718166174419517949109017546133756673981810564500389118205831250219493519705023817716109785765193325537813129120418949794304324132704338606228657464600993988262591259992066854039204224720644270010308017186305132068508138471027163946347324956725802913589522739335932031572382151345631712296832473285208835823210065724497536311517531934904083405324764373790719837965863234545875382047898873891289318531992679937768833653441791102920176583422770049248363684381917735747130784315353483531799482590309594583782567234825864676261957310894013575662737148880029223460247417794915787695070737337336862060490491875501301025023010002302567468537696827684246580616885654623878671766905357300726059038211279298141445902681838517397000077551583094525263421918333569305595250827666217203934252130665131236374382548667283390839131875331037130552672229182483719505559388924175202442779293897688928561662738437463407492699910372013080584945177397565747702907397884260317023911533005237816418006572983122522597429754128973654701892754416303451515736733191813645739297356277347497931361449500042447376085391115327168933971215438324111650122680584934870613947429061256972905629007000216137150697958435517366849068762276485218844543948143385876948676498327320745724414836207747018883534712761925542570652689832995772131827730030817401586527664623396652935055274408839637583748361402615198524637147073601688107931739598640678169276104955435796876670370217263073716410769735637244798188204869457923901863622364719272410317158957607203744311105320860008211680846875206855844527418144609149535940300418386803601905274517125906901480327499692831299216863050876042582801495888167392708481163725045478722293072882956300592876240503617915997531543670481717081318763023704394706611176934258324633753254471566689576943953689628868889472559353905290033057689150200711758566456482173726286650202540604908633564028046014032861984051805739984761970470114307338617709231123397527070804928020673360593490367362133504043776538918895759649879718018255239478019878602629479932892853738430346953259569813076964680620580192297607569988158925019930703174374725551589345466164918043562519133786655932776610912818040951524860732449822801541713168882098444622108502113997740132596490095784404446841275401393835404727639815954696971836543754916887139775780728036396606268938415906165816502380185989497877832968358776520522414506519567745124345310510346289861311738033873028286073679538350462440424203175040566356597028101116708010081970071911379270992419176269516005911905529672438493336230103033000635869859861295313478313644082621624217764510252422875925809039177966866081277848355541576528127935323335140358253083302314600102243791375872166468932779053564715867620550860611586092431025262425007426111273754489652045577775250101299253399391950175664509255458051659896366239741551467180478472316856951661070933802863566662218423856956554844735601166649720065192085224782691106852741346761020741293708783592590457501278806904090452230610583015480100193408138441081836530434950821649499020845507189695113031680387544969639896992990464929964552549919172484831074907771804256778539866371022412164966304611740661321559159224233091377255301529564019628993886173248730468855107784517142088504980560794992692457486927907112617713977746854754802430183019556079606862129571561855349901894694560902539557896795230547648684510820832266770289121755685977905527910662076720644161424691521589200396575172821792656132442570349128204169561967414560433833511044681926339863064610684088169042501223399446337764612809740926012459563634141772551571939171820567657846081447790174149136783228447864422600664901473830754932640798900978426828320399825651396694881367910353646628508764973273325748128128274486123183305891156835681448479941610231263817263430374614451340868103255809021852246785980449424380862287843268913985323254816043162758212020957165442617025260041302889341797853704176197242029679989389926760708489679881352138549640258726884945757680332626270139366623408049936941535125256588073790542031144062025963467865423347806810855060224140051819849767695936738398694101464138131463913034524137043299032692176297307571253608499789897502820529907752497567741329321759887691244994987423718760894159520061331301146615810063743566392316784892883939426012095266620432727986985609586470427438063695193741501402194356558509603896741024717161436953641894158916732822975582219146679820802179085745452299114555013635467415620295366413035010125864267846133557604982214445729684765278695910071118923049644490033433560554410838692807749115789375551795529306173327351377981672918665565207568612941100725200727739404551154340549367458706090870746826165560808570547378647871870706161077011924153320412429036954735336493282062644834278752583960037461928826869750799582720605376739297689744506547160338436779218317207834856034163788869797468038812500675606484223304279532311026265463452617424049173363242076193351295488670578861630008523770844532098084760422531590764348424793871040438433822304798735208301292505956130016887079153640451175713364944231173661104234703721267519261182714668244264997025057557085859180118592368883624216918594925789137839505166771166145250989618719247430858252682041583066184977636135557475425390528007870349511841083859299237517529103468544181285402868146863526297005577591335722214585796028000716379704816740794251166050581417695942952476063003576724537076106984863858380452628683452437184563903405786402026561155826287612713942802921292106743247724944357170287844104477058992875601927352179702162347322075654260711576188392649863856206766981361526925276868049380207250661365366148390014718961200846898185082955378165970498580558185129639738899562779636299848183898421419491652827224189734429682401933885394562012063676523906254983253711071989185981067415766795278762122599052095090611788912655382171749392649841318639490460847671270105897737418006082785966113364955004146061370289603166813051527033632293725652243586865218287304399015158806478891483639579040298199508495725373320721831935113878048229619186461519437757682225245000184254499138062608718579315301851589126306505103737452011572672120576678505172881672385118036782004891688090228304924768809667921807606637629513111365087843670094139784778536058345819890059100025940356840821989747879458368368629695025296251961909209854158603767529419572388495394992940047159549085386040042541832469900012172366550647698540149556826448960815175545159748400954024264528378272709228020040263022602224098863572577155408904518011550572697837090424141068365769491231544010954474259700283013306069736419720362788160063317392213716864328461274024535728042423396891184599008911822039290906115022870639645933247842719401857282292568980205168478358755757551247338837769312177268056656990707732266657534710703998384904085634794358669655946888595487313554840286177350359491474732851870697235512691075809106255420238818825573311103796718155947243509762540438686228069788086354323926777585782525373584031986880705261953804109699318305190679611531896615389400224125316870841925058812103007850020846827788699526667505340668510270620867521254456949652512736824341510122395279682381163579201129525321554312403823954652485237317849522001766375798583325975073884074220390641655164869148253999388430877927186348974525805748876352657789770346632553808317816978828048885252863570981903019013102487138248620744802513222416694472600668385757866152829974528433671837001360251677952245611441519586427765322705642880378830572066656424891594375844539719892767950218164608826534714074853384461399601564229086265287315200145584831762083199570333953779138270422689496584162883882242668802479050989114056091563328595783451385961076950843883500516860836569955000271195694815671299120284787286243654768265949402333218860404912025757802131437132174996737789303973983716489020924655250194117172653781660824750207130671153307825195243008848522641413680525185146032299592816990634816592112773178912283593434828673488234846839470053161791482571038114849933754172374396662574910409452636880330884727902202440540275557446179580619882277241856347829547657023717002676523215999169301188686665305217195292270004392164953381015991240575207125944750639851920436793589986277804844415456415759176525566941266171168500465670168881202298326979185429829546478298456293537701712019976368479726096351929380758940513593463887783195029049094682641018185817176452097187802678242797284356786348557162736897784559266589687901336645165920499324169949013914911245251709639410704573817008694110475629492630177096372324708937646301636637985795320810317831627348564150755382924616225212611106836801545436701871677527026695347758172333075704092555078460874679869558572332572064743547863361455752482617825409201742429880562878584376472326756297376779668807377331710961550900814308373669971618209714473698062624178642032157193254329178885144122642498992020235651503808580556400948968690399362031675611995926085514992366172985973280223002535255337527001030840100348272578213432650961291465806361035631531308514031485015384778656619338078442372583121422621113757496933435046786627607558873305326746171709878844970165053522806099900875729310999316310672846835630961965559088575478383563793782094392733925272455184790379770241941508070790680847350571091640253352772192469279685304054572573455702734780896057117501170119475091635067769822851804531435683520635891276757800558074321787929078222637203297876001156472703340945020355446970211667159677597933864108711014060244024435747416010802288370144301690776510727402235209039220583871651371835514070503001287940658758536813828833805133734461781639479231716289134259165073304970249540834768794824606867818140242589753677358737366854833263934094099967480166711515261019219576411705063311613738758214420664541004075799173213298319609664320020033260502379587660468365529931988093422829715884576392130290602108013726890112085222721840927014084790451049897211457924363022582361740589809663569011239076788130373994357535515687190333394593634938463382850070954885965418161405767139850028454642766254484213298633955213187280286349355375975667522946904935235262288549779683521211254773644969932134874545542820102571672476815586841703791657285194719478701189305063958173323407276897019444274545295169490924368152373395296431558298311405871554989362324784228122021600991848821461923332540598579939885098156223865147405522749765463887186609933625730295434248840627122702116138152046366257608352990043507186046189767711772880417046363397270466546718685517171877429900465704342861030140319066954688426088112076654822477505204340965947124192798539762643968537246734171739124868479452016434330199240030371135289080046238383745942388962061645170303923295319084163376497428690133326766883810202172473022117738569448256787172217979222051121062260565940657488700750999035344922137634521171656856365165675203936377598955805361052497576237744439478618939231809818579862935679215999660884021649235914398580310753046781166957695679941070707269960294574307976494541210572971019863860443146737253311760907165626975831911390759251260700302474334793937830062837940607170147987306494249859036491190582721064385361225613148736784264183105328389503518369174771340565942184747476143195473615242682594058713715957819695593905086683545738110883642907085488622166872795295692487189587685276792794344314768872468606492591040362600940164422287183808992297784948134672025994639635888126812005458897835664270526357070754531111842274533587696764571847922492981125941882066277869735651334237158607142660974765677873723373505417449637028060803386123304914300495813141978500906218654575800027326917150631848878655959735622664646715756256091887364623562821860296889234242965710442802461690779009481503981891507401268512984105895255095904598764158461430394797920657433980511256369846231749941267375711765815254852240614179010389146298817619779588341553060265970642104312974033195846008156427242523923166216161533426081582252020081218997372070511433439838030455056198307260518954855812667755882128047759405414003148933385745623808532940341266931402032831154047047416193421721543179549468698723296138726964911608539544990032417292629933928104184892501178939608847158055217775319292833293245672708926266779997566430558677238209136732368499038184955678121460679275544237547068445331995049199301279325165313883796027598158243955572166329399726931142320769851536761281705411861730756702473844048010359606914846690930554062859183049477729848101785940773017195444579008570251685680917361397417955703181969694614459434685682666793605114616159720054677742737764950050270098735069280221123475583995121222640222339596784408811187356344098229604665325372226956302369412399793688449055737395017250088690685739647874139832334661345641883046074731578577587268248874128621173288529195430517623287030340683200312303066907911939806307548150154898305334036071784197836803994610653941207837145945846442577146279862376243363030551389970450349386619526807213221720898005222284568825029244757267220360920843523225904445455175754933206753762917386271703020724553793751995715657473100377090806486178641669675014814805069621254954128742113055216473646613882133222047585566566720011644796001789470726414688178500627281379036098684661543776335214247006103352042280259109476263750189414236127078879204216662263386728240226436266121995157988399992554058209398011331858534435793542089452947811283068866933388376114016663241213270192993011119717748659043308836634447010782590672441063833580922719964581587136556148782295290466820343799779036736633310205334906063393044420050509831573967802324322123200990722590899592990690010724621187743655592706654833976884089966360110840347555635674579425677196240103509767147754006326463453084127822272440103715535699948500628052645815335010394932524018912993454434940376609823628487363884923788760446203737764833272566811776927938598127270058704043367491656182833367558846313449693477425278356282035258779143737224687257602822062971839794626456355610559681463066081243414888964851683671136843630805710694819426995406567297586104696189413283513708364141575084857487242036227721255323682093391802759304343772228321325101912178144665977272962762360355151109254440317676291710499152946085159291716896873944753999441020885695261146775364325172898218437099594929260636226087465913898872797593059354807935901942033336181758681771460576250286164646553860646994004960030982383583113791774760976736882077761556136004866284029313997097620382775490571388115348812804122419288948658448894437537120985224919259843044770054549121910948846886355412569665678794904016747931514567168991648255340419057126639599149239292844652493534713240846346084712590676155029256234474634958243249618968501401005048789435432786452449172945131367435531196459699809205117999886287712253848302039200972429154181582996258284452303293547138369085256330122997262152884376196136816373588489941640961113898574713304955496556879347819825967068951466972106337556641137353930290632988148881569039587502735665272590509930841379711216945235479030380423813568648564083193345410768553773907207106334585633497773227232627524595860497960401541805172674422731730715494530509479181169789688146992442110158142516864217474731101660889571548037846441687951970432902143577777301845060494249089553763057750176502566884648912718618801319289853958911423243038444874717803444724910555089093721600327427722009636494609810275058127392959828821639873989358703031772264020602262722319341452131739484662459039841679401293360339546904872145487240929915077260265099843359462432934915187383594017809172750269503965501067275295205250950717645884902282138348330421354472402847788403782460363941555027592463099735689310749392049341844590717602092662322263663000381559974809935993374008926631896215449228181855789438478929957037510154150921524349012407874545398098682603095600988371584231593583591469905822987858253071586490020745229056429561357507665289441452422382246119875777179644987467721146735924059459696748113279077056799338943740340759982891652476446851143994052030148401878546115653100734112484598669256760880181897230919254027972470292397972639824694084283477753290315855382081491742681051135877025625617466521005877924240370608402859162443061622507955127689140142233100091796965262882256784843037877802674476008825463063208609294208500511965589724660002987648550270826861337232421943222788215629157692731794744474758995739959440933836520148400572353041183869178497716568040303778840870750332372503983026867635077735850722274228018023618393517320262033811704143387840097818544255875055595934342224091932479440556610800900600846743853388669356032693664513129704800765193360758384299111141740662877541345840521429733459588765839559917991135212058346891358181236158875222176777619073568072743891499247802267130131081723472630964012371748531737976681928675068306927515038756117373287346487720349864905606482910897544589890886547034816050921183377655459673733537565174773925923620814126867861556572778294910209672201115746509822623261428091171895746838059312932238585606574766289291384313461320611114056287309415304229946803305446241128788606153380985373723804240728038222459110411334675101449568670600723096698557160347433081807496808809958558819895475081429843436260799868634857497138517665028286136708827246898201010156334529774588547123229275420912385061478873710981115176181846515924205105598818024386887028380527391312296122366059558174813251631096134775514931979828061209032767056649663194265978039960285163182022459217721400913184227179085415156541691466987566604936726556848590500913321836558553141519469640381839281248807610559689778545906881212947463396618693394356562361965569530337788098432216124187624661284140696397944396294612213134986569988468697467744574249057242365561166471023053141700155236830477700246806492289179779211396175879231137552086808308175054166674560622183191533104794129027197522366019282523053130540837568821204068008132401807740407314311841036568569041292091492914930025395998867358934716893748487892646472706654450014918480946192625658722216252762949709479774847818596965212705993979578725146349083272680750278582952399664694234830897306771935837475308694293155624212058740895214634877689104212137714010346734749212472143527327355527594454235461879650672159744998894132159575193273250713545688779359876312774094674678460286948936610349776238680587891228058211300707013963601045794957566409394776371638206360155285511149425066140171175445305489744866375374602862536834037202283016148206927294143685840387952818723236410165289647247047417652198951354414670040337465643428479389135324365766821026470352828452361585290843376243657769096757246437917120909203736712154290092001454415806020974983966751677614344454244455382415527534736984782942605092314703683428123443934180663772355098750517908295701720021482018893415678273460336847101988825682879835495478361521170233257090132727058817454396304559450306083612600820980869461759169189803626350039821035013915490563161657528943168735020345810156353830229469347588784248349802206070384428850296354450932711951783069981333500276381967222361750910304732212054085057317559278694180073975793692748690145536403540673124013581775700005254832528053004144928697351060079790663646343738658360224112289843000869927521258449048266534751747891503344000574085443259693830908504130379218280297579838668751629623340520320997840169806142307567448953097239712695436259940489137731391519739253574671115783725905143376671518365337147270376034168375228466754120467657867623866031055653024709991310446979488462411324183397526978474796726373190229712107819744486243264960335160832704334352257591442603766300826510923053035931259620687782114407315432982202195853952016897431272340651241798596040375486456486944924247625879659238540536007544632264073921454149491006243060845560410229964958252452448108425651213855254332667064435685535908222646053264723015564034519562877014295244355361520581940550282569742587584886672074899030595599206038277887918197022165713721258261682483755536816219614348617963592083007787685414497342082481415000319159496507721244008115861747564390223613300556537868548946762422068942208125447705583516523274636425496604118912417274544489574434633647829068684267888282846731962133030044820938901184276377668460612579831003829454674245733614520999328610088428032821425592882660685692944597866173182071309113911186967861318815041962231990505532541312834581261893478527414221069748054443995280033546513823553007720603036654407594068075061174638371057111522267402322847378300055319854674357596481230846840940639628393781350386189199815845980531938688799888419715995444534308417079512783374723532181370506266396277240400319031949225041551833048537352256365167724283651554062236921909290445446670192294931923205348091726107131246449115779083007212033242464623567806549189309039987700057017147929797367997483369503157164100958056912352203759062969925984658961134056478110058399322929656717214572995472291236111858571898153213983600208088502958233856316908557022452565685880568680879788232251076364016570325544212892042266348938578577769543825293555685845564108987478840511585153319027394280438957895421971484627962663713570624260572987099337774292718744921252330787817658490862456980579724692794483064604093411238523968583371313494345923346619646079605984644183031765745428227812787586118447252475339410565039225853885632189272258378334439459587470424979106175151184244113754866741821907631192728582280067108957763030449216222424519152992404307093139255987742263943325109773207407932012700258945293046475192213321996722944406251713643910977592695926485864819573656316343604529568361982581238930546972683058849423413303323590860719797519136818027841809926797664915827715570445758727957413642075592527133521975312226651864424204638863952666636009847668478985427291774943282273929841396663987232681677518814944083626018893527071783418530872185499439331098234126623311947997229453550861838257629027564298062492964428830555913393648528428430779200327259408348839485682595343720623594886830182007876590153909166182950077768291223807976971443287872589975907176647472158365607318707969014977228780400735874941021686677977629747166752358088895818333460190003878345273587445926808949227301243162618008108890927470762640219888859707136363152847364672304495324838072738390740781923252942892992257700754907296629128397998376601113460857821832252543587671530709486751892986302155324453071430866601249728870514274090458001707972059122041068908811798559385051993842604028560662158526040160576042031405669305538838250672774208620386859561098530392424759279693866911142178769470138887179308514260155343043046889444379627725416735538419008812450360865959056808822559847880511387784110019780680391366682505309758465400876348883805732591377472859231293772810822114749446910867926804166722572949523738916019396730698824277796284012911849148797725972214761455831927764527287106406079763617893135576021083967565937444672084273915545480842770921484619942507081523823924504514289463386123744818533771099325335315848747488288122792862242261887878988938203890372981846227766007221710820564200606008201342916425446094081582801961063791318679456691835783301042603097633375303969690303909107324544342559388139662936004041910637107470575340431435361825172049855979986480263538133563303113759940949407263257737250822353172632881697304214441405186505913667144339155830783811120933573414081525154538519846359499357816748842532266402855383612731783982244337205080392513209927803184789991990503626568232224547031793746548293430355689266847238625805373370235569779836107346662419735488620337682301493723103038990965448880175999335492298080873536496874153531038401866375372664213515543903810689736830077071620225675063015530628640372884463313958643210562838755030791484925508061784312140811241232273332519214509956381018703535310922678475144138567430413623695077234717574693640254612014553056217277230125444974129428334306237400178402174738416549671234035130202887898558322398461339870989369802368223717370400920363622343799957736800555648103953289370533521949243492054911213431397011667588576681671644427250427041537314775694152158905614502164725935012450495620206612811856623327400935698558987907808353751039029265195189547213124850096743838378889159351246055496300172612297628240983443847469520801778073212688571845578848051366098846612552618746812707446413504580873448381866167039655418333746978048423223542288160224372521239233540100901607081840433199460669536344428809648765461377229412711176300727271645212795162136304765825620932602469123255199646956219633617776546228019556929222247848244386545790112608970898362060393501528707250495046418482280072755486476648921538024011233071665758742216686266288534406630069170284847033507926427183086456548301247135396719554938679511427250118036873710498291187072595473798076022330136803680044624822862014361885599377813003798967109630007626018675610816388869672742602337910026700140375635644742548856564338948979704987196242147903400013107847857471122893250069788379428986404343466100514314107371317619486870722366863283789770220111956590434438957150604782651599699084128869636106620719374166499299835103770556633121289313728459195265940536252872503943623027893490660804929141927243192548562718719964539675983423544682410673750826213426142744528838668640049280407510148088925415355730444231052145155519635676559381849318792418252961368954992192852400677553252517918698998881663733755891904876069641168877881282196068717786362768557496656367458953678578222163340992163716016928226266990523579237984299703360468570189883005198748710793502252240744424183605738867399850807953033859858557231318267667396888790548948990616430925844127307170284416662909264258212043535978881748915079500762927070670550746979963007671325820065810751194129974774296934910329125559350906379694630814985364238499285349627513039710275434737800433085485682219328138045078203639829748367187251767573154189766486037421350182099249322469808725782437185696954969208930582499766878677379588132425747186312361518708346216376742857131335596364822209813589672469543691781111151728808598642555794155125782278627450831473960804574028472647144922668497853388651641663536721890493730220530842588212490056887247217357552097309703678424719447552708510872097618941456878215096617783710264581332434792212782829888558696195098215379437583452594496715053850677664035376904680562005808214774357807666388956120722001704512936114553739416955147129440855529528350886644030989785778695213209712265248348824010799858125170805586928866167204633295503018335634491283672456561562587101715516742565658083885106560513594673893393316038392107721322448624711574699630297134368361235647683903293476772501793486872707411284461855886360684646934685055664357807324231256807392533349366708837431467752417682072286142495740380749031629364542189077787560560649119350843299605524776019470268186488695645968909855794715088244625445931753287908121975864856781029574377948206605234702962770468571254901632447877854018024435723065633058004824532713511752945754353669917440573579923073332926076503890979245206040741153123385331448987925709680526332064502291227628063807445611575905409325421382171049840164559413954260099233279712819587295942016121948061117170727123032404125925937221881300045983687812136028244904396807104395264324200023743492794758694047839156388634488608973875351049606984471317405512303445988372320084489922361915835686057887314646171135322089122880966439270794174878306680007230236477355391299366232323823385005099172926688597656572669049146821275388666722084175483870808541918902890784462053617487974081965349007267413187506309250295224613750757290429953081692082194369342834352358322789027396386966578452257329237705140107315365673730363392703624759662311541778024925435643775096256232576106577131407089386266804414205043765424830379239035902945377723769066399419150887258143756003540377511795357872576162785410462422263611377539747148144882754755119104972120135885697588221881375223717728089411853289020342304709157499994535359571760197625248000922704087560038944913014908663592108152246893864034837644011045496861309717407734175240494236980706679340632297517258422300053077499822638487246361984505374832264686910842408157793550799083592413031706690179886416575834396978425974898570356870425610499040588745647266247748269894273229561571174565532165521901799581267953233606288127549476470894320712095292766523921084982796792603616843121785041202698136706180247884305141303426580395580643019445875731439797895486376164280858207206981117807631921208320059176124624048403457051417948304628973200344541373761467958517787528233007232035413280883356246629399807578003713594006111810097800625352803874829613416117749766781096943527669141582947523039598617522028095099153203779580270865349619949672391048322931685187538375664627721047390731234934408567246040097569739604744996397240944411457747216409518145711130832773038171169422846224265667392157915213485312419435088492466466525825982261409895176334939618417627444158512492926972526882423494517921473063085307291848857242764925952889241145138605865355359574406004571578620794941262189439907683104821227384134106786132964714036779747883921270985984149636447804450998722451732912813018441782116648060244650974403529914249123533438918327697410005749308437910124949497604320592579502316871842342182781758164891536493869917965163416056973324329906538085044321563902949784265693842637107201744755158380763187904360860851795594585001695324515183778722013069628028857540158730754437266704166861301338286741214721845365858371767792691499777654569773503857109726121404935145824905183244245238129803158921688636265743665746294372902401407568676319645051197967910356896160736153984312529701342785342868482771159327521617236369359813639305351082144453345759419264920229949051239634906700051287519455326326165418328651434560274286101605656908533076077719652553010874293207832202840684215504040834875991641617194323657692932438780508269654587413589028601961123917060719443700341379679952313119325765476418039365719341314948813682358195458104609071175411551253203696882389637287623658350313599269562905265432143212927719371436041088227440529601599375389034692235882491078639519433601216978983562569291572134645224636767319018906204492663272666840318914976208542357907929015331544158476735201431152469052006130105176515284827538954755209151690592351294567434309860099996143771104141871375761274748872171646570484855965805221309297441091439292189075084006247047239499979161983542860970354954683746385191846706800837299211896890617807401468104280797458579903175430464976460030756338291786753040369694439727641822785364330290315371889885005193886957710077563951761338673567587356838192232801771217077138697647374012490936996584976590588386933289230865728209462234577115290122605768474410130086385131293997488033311323320937772244947032899680135543648407404545860596604311358046545018173804373471712487507129630677464838191569428440769287637014531930866459909271898997898302552862136916654370544347814220821797696113907459484713252068057695245783907323245818381986219332571138342508000422766660520723686694160532983629322880891570216489428262038480489685439877279270907330136325881629156687527164200367949342073295668864483361266330898985580387336696400565701979970919593714338323235796835117829260743710941745169102437348910006947027551359605532817985619113845392824661562776778646305264486488441616877613070590653753897779752131439087200197593070916389529408250701837497468290957750963681960626799363938181686031111877221955086663253342051862739358057855619031227965519890307069597463786080283431127341813755140093891140662367935836829167871579577362789279463684473799363814179256271706739426110597935959750732734448826602602091637051553391474739569387699659292658337878040387514437579670741155637110609209025166176441607945953865601791307930432042902159343457232332613446450459285646448102642907916176316901210766624281934467974616873095077630198325930662749243982166078055732457299979344861352167339248590409308354278228291891200150695132678291907669192987686247736158279990634058578309833173997339373447377435512844960325846186338814483607570941926677255679102118634298191638612325203547420874991974441954045121463908077910559932633627745522206105917655871353110026611221027784220390450989689360783366523096347594256449091080807680498871460848055915137693826595024697962991741222896714957592013919185360814457698935568293941112149985083554615279654621533055294324736593194863852934882311547501794120184172087857495818822796018533534700781452897224805385918605696659689209430891480475621416158660997214663367761976215488967859528083382959180692769171190789560822664087203147637208954804748630225917608969765793290707079779093089899102208491155388434601757763022195749063124100031093486871827390030729372143116201690292092648868236284607770250751868203196422381306000546341654377035237039770475486880606791483409355365216608796367725205222863072753226877677412184025431956795433579061644722109512069149521578249903276237387537209062026350832222834638542539454998875147381197890556580068586214562215989059036187589559387472929682094335945486519244032180279602097370450083122158744785461506970650842554047298841897132210978381541203270345704276960157525797710457758482014348646585665380361654927431895284178471184781937394050855391288696708651900906608560832441164993172391478475859130162138431811920431468045941458545869318839177818906668730837127345179307202332335053642075853668842876705409376979802926440688162267166160281364940416529567075233707013047169282905195212838213680377884918707619089001820790322349903589775660844907739533697791848838021811311832659508760084366971547574247199305912664326060572437461478649516244322920161818989728255193649825545890215846539968500736029798798519137965619968868101534275973803279610435425363993396632579073082473122320653826669385118659561929729620756030878175848859806649560918894395752237803185605532857546123789619405532883906735492290637343611369618253906889016984411440053726999865614397644215485724703192842484889697372771484722057666741315631382079690385369579331412028916147733617989287365004252194612352412756056100297675924059708370256260348248319032348068517383880079721592203935279866391107396269328551898273325736437093228918270358650985450819387675148705552953264486112257953053136944696484662384201319357649903451357418961304162740431751033960210858209492998888936486000243340068959600991521332532309060881039102460206740133173790457963763321254672982878837440934130808687151108822825276047902271577529905767325489736633118299214213368580728652169594327340631361455183529413535837440984430954203998706053099365610196324626663037115226787814147577232643623096045482073486569075120383170970156744383641045820594344391925317179327274016419143904816976192135520273534435837443122308984260587062543803725467267396727391622659538491521534136210797517847525524564173887306717164871070677242140986021416732483387945619212566110618446245822651427352839406009474682828402624824769317264506884729294584211588912993007619339501325039064066333485978034784353952070312318246585360455095068156203131797812858650502305300022837946560947396518848025644349870902251862766247282466377966197957726494672684131466815168988211820262473636122209361153592061254821012020532634951117180681945958295631424909875845547087918720489904159572362647877066118314926956946319559775463104636177565973089109699479279106700869528149704543447617521932530283150433238667160349411314685149776138861148918815840216776077559901812701711595136964587945974322574230096795350209506112432323398020336345279997253903994745002352015489795732156495196324138649428559047312030500126615976117090682700233307943149863655411171662901544010268930878674799408035853749867379050572086717459797095365048749979172539081860481276699012640677929184014917920509182719385355509797360974287551305856145234867572607198330353275372266768697751840122631771717685519128824031520311973094669703830983691817513886936183393675723263912650755031080726000631623106397051131534488911386672365841109088904225621170174660504008999356418921285068871807111338562671932489641179104547467461865345838934248207959824573519272349839568153234714874015223497206536732874762656827529989910226612281352320581432410228438152885150987248578015650895540558689494971183397020092279585401263676205070078465016353247207012340295682554678832957555359999599473836045143678184125713429598935835190298975476622821181427270934312306526808077606101717649453585859607835216077208000291403349966746339852157084341489708093609159332958852158929257593205169366105077181287124031294666775677721431864847441287124016795781491668761632476953453986462459031243975778360339908928541104999625134047941628409984137738159828145538537655296239671534255048819218155544739114085096963517664212251643987794619231632089022794250344078709080754278933180897784799486095655142301668754580414849240049209211975296800225999916102519527114925597159260333531461095413499056872104639485052973684927990570788056420602426178214890329648196776832284030481546902526112818732063501477957282301525880709210338324541773996220409189783734300876266228512827398703536115058949650222690741097297043364056841056256641131839533665068755413416777808250930179863842234101725135331146336008748727854751852985324864343758465019871273734831514720298838319709535040426204683453392731558443285764540956315560379247008851037914326261346781803022975574586242029809745307189944069682313199773299005649961041710371024991832812609190022110799689522507318498230812452829064000163152778077337372734986854021601226034777792085996759146995731022524089968053389954552189858504747401649770139302741982124358176330804266035195528771062433999659580909555519929906199560242242095994381695689337530300093107836372739421638639994171606276150655752558857268404982660604405193323349439801705366626724460348999315490715794703529308241679672090844521852727767793765011564082966333322853629956246107682576009876327215075646737474170003744616503072404312750856382234816362974967703063685463627764539441077431928644390547000166721019620379057955566161900819130465511354100610764363492407304067331488755882550721592153964862881787055532207988055168048084928707411776652036184434376454217323224133476620529015701156595873553698288040548184304039022651500717338238056161939039151602063375898926146979394874359548648906538007490908215194013333888937170971378309311469503602987844483637781437381540946811224404203610555263672108216678374057458534652799061873988675314848991420952352487670469399013949370695195459840228782029790699493748408998402122836959524107288937563091014909362597011029649365162576773303035030848795595732415284345981492546536109963753744477295016806708088045641328912166540094803491690783294952648739148026969405465118522716145295412702768409289948577842841994083721370128908422732050159672676413984419657943440004651562153325495597772925400056321065492538869358678158696041117092077259781185924972904626853987736261393669634042737282548753919511726763122351428044387158480119064183080583672516137813692419070890887336344811423729158751580003700613577764784249773311466538382860068443673211990266856252979764036258798290885293920761930715349670147552656736692024772337717999246554666353957592151255608339164381397025595144874043293164408348611058534741360169028720093946048968559251133312158926439503675191341358166859656750211480729166949226574274402792882373300552530348240544146263671800910904952663164327128168476858768493209190439313107682252700138566677481649082688303768641436580315829547932727530313724015422295362990657543909078178214742807861836280922035996862713883151497758062237558179387044887261100553122550433589786931054455180376657688591183847437686795836365605040459302293682315996367191935467679500399136440288218901787827215893946383190717914645660578288223826478722333363795262362374091297607565886306899622670472541426955608911708930752119054611654087817394311809932513129343769745522987944491210951645098193325802902209337684726145745568748202478692331110112210139631310093230358454004016999733017314930393873509105493343658749494315066103261722882188940196340506855621299458187434745705417558232552133714218925818288313420010306392165616469972779096278331427207110589152495332721587407744998837828167387228025310997013048171807257531550429897417436205684216838489635764814458321991506889535031963921332796298297036934426141134325062601940611972771244414028380956849747173198079910544756305603690566519562061274840516617460980773747371905839466145722768069092379238262735508830171322167263305427523518335599733357286359004923260008038091284436774609205002824689727009190414791810061121385126869503277283363586486625320079867881580955071976243609838958799954075378159492315865027459572239633526690861224079784051271811438125923221481334870016531710133752339835613228298450877773868890705389848238234221727811171697490413164308624951790650574613161568646207601335297154113189378729031742586307327858634834773389650873105402113570866980221056773497841020215708933933267959702772245947925194898133259855057521154990259168911404102804330795236960425643240327902771350673226618152213060912230995229042695402705543989446537758163659903431405904190151072881229603719899287902395810587438253472482823717038390647205193064433363767051880820388405067006700795604886592780182044142995861207560220960330825487040004429673037839661361084084131439577849433257227605769855386139811968768967062678621079202493692829629064258549927093593661664886197152737321453384275770692932375087147743202075090083273840929361447222902738994189203353102664139881952702197752130649548616118713988706037819430100026547775646832863359375057434081431704796788096610812649986207818325693000664619284309678521800644241554015268548870036712063269703131047434229903233095721909821765100836137145135518452919157904559984765180846593746136808538019935470247631824276535657470316435425254923252625527987087892041139259855041547419208286199644148823072105171111887582563111386593417677592657414921267910267968433952976277219650433115366559841532216056184946235923215569662389196766544733229051299792273120620380022467003953373641123832560774682566466736772019470737407199643764026769921930927224484367527815493386751435218179835430973032267151343552185541550678032737281766586271014037927201460701643902684407888629832081945273338199341764970215858071694783683476188105145302842752622128959224700572358903535390138050791516203809806508380903750118434530126355469949875752800753468930485899688545200206687811392174135088766265905131553819010422097255190208964396979715446394724413359916299594336316549212248181239919387327860330677642735341395938913864577980451664813249132573131986735357117426464882051096034788831026135604449799302472400166976927254541219449068280227011946853104234120637621079317018222771892305144446876918621095708103190839250736515693827819323478709847148309486797796299445399194799980054598081023717605908086687708329738241844930548132418319765577086065655524545670274332195024762182379037625988056897282673597069669881052037915291800162387466640187286247017965988866867825320758428633986417854773709370002512033287739136110148050849124264789577419055167613192972320799544045401375530925480267259272494466805759860287241305548564417747886952389356599429919905047195463287385193350727440863691279107801787026293565529923279829917725252755991070575702291306064531118909393983400862851993918562929069102767861883692184947199277316174456442585688292126102676432763056847656783935993225936803934676526749353463142704158162456466665953751084399405464576603955099706640617097974974336522231334998394813695287403335113433837755646404234769337808336994661636061892820038534690377333835521444766534827008833330868136819060056054165721286472868881839451538868733948492129211428897003129115643678191169936293092409789301743273797288091069953665095338266815461955165047356101700901430324147093724419139586843499713957596371395557691629742862679998899397408361879249756943907572859786129618751496600327200941094124622745968658977426976486041079310490608884442811220782623652575158588011887160757875432429756657858245450192896653139939711009481669346061654376317921666778640885836252590656050368883657547749232483974269592801523223314332451475445664470677628483132046864095887743855229750020395230804366706279261723323375442445248759830465553953558900428487845863580516821508424450011748944658124993533769469517187294858523875572485605225256756934805359846048749262005800229384779692265054100530409951394017008785836752208179949326070947887722388327377466385282414486985707764045199649999330350012326616215099195810319682549231245890932413699617700043670038416308764418632353489812290837952550018201990304805485615241800360316784668918331013130215854280386535142836881342400571599969498060943955363642593726436359971083720620133102562595141822771943803039613257268232815517829716283955134821672153803290017758497132547801654517940009462199420566291437897623866763889287232624652459649696587300319283631499386497320159714551725293936918340098679275381453461515125096276522874025078271556904582637529746770913824611278497878788224349622104568532108667155557702377451321632886173358577381447962040927204791413703163241303756748798886927009217025408716461314095345994550194128303264683465829028421925396886848706112155165193274473963222953534258749569958232866728475990623845007143986363801804015926618571980934987252016968464797682923816825298104259459941808878325538602599159999123391749711123331406349455490624171118684588440814141843276057904432828702809454790666173596118759751102467880441229013599549121780505867140379683665410232970242448160411465243524958242443561640572111594130133502396925737722138234265990302139245865426937849916940517476958902302453187730920099586304509423042670074243559379508182932443882779897557526645883878505962462131947171663229635110911370622095888441465659174338894338200486342688618639527115462757269487374661115267653937724188896067799874272280128820382623698190444085210074501376433930878461421213782412215879296769072227411256313662750209210089880337040246541185179025686314428165840060971765785638369136757428900085935338101153382906303937146108775341102760903465218569719502477387770955816836798034354213324476098086733153136703995328986442583591416520425376922334774883544858212341221658507510171638713592610581093359913405113367055172490234453977945270511319047008837702125447002570280132741580815622887585572953475712681187764128714498561557555768538363880653018373936208116980388149634716127147979113068300885379710983749937043535002074084780485078252197803539439231999236954443725375852021333712893971249120751279804950044304654672625084752191667141782200603837580459683792982082758553817532232539728602219907127014913911759346367047289160915863019386365861617196827099693152962367036175548989795897946931120940415216853957352855509516903347265481059902578174804723007326373184601868768637207318963002179153477372943901918408764402349786719722929210311458817421365628667960616508665337659239125311236106116147960058515485706293237880441108137080243236580561458233722911276808131698373422099678289776497641787740282048528812440286475865574882382763001096630578496172280485747436057806885482449518391871788421944079012425944218839875879268939008642663877442953061443762898044608030821133148109576378194311133559980951425354670106183884589585125915679932438137323981575455324672306099831714119335380738910016369007455587497226589755642383290815917543246451446465102986099432064896919113798414340683094866981135590171182550454729323482037548064430752399367973915209895835849366293163236326750172934833006480286034645721557356327096076396738003837394288053140950470514356927688668476170984828478894502535189941526151968965321405598444821475922224726643266079693660428848173233722214346198712280428962978908885597625076526201758379568705158406245012991900211570097185396684145534149720147627087792404851388333265796146378896957290420980872998925422053154993862360565467139855436536623981273743498802182907232990347135837847327230612979798298591778660251302317257168491825203797220595407777432901517900670789116564911366757270915763067199600597867383875760588727805679580076084595434600776316618806114823730468723849875103260224693616640086028862190175264102852435241125113418055302022500869140459824096431905716996580079381364776049699165635975823442790193181086433867570892414053378810882551721216742478226392231032410420807592000442932507576634934992329272528808443251246900195573679571044309568272046634371454689280303030764722535714514402119979819442453681638297056940171938303301039443273931729511319519194021513238062255636485894898522801883780268629396324080939462179001447335660248311217707824536433346014724530191818422467166639307214669893046355856866826220845271021673763409141237856494109946700584039545148243198757468762313592545054870541075390088674136317464523532123663635171234335511785257678432213277704003930785443362141557642196316827146426468415935457892210602356070211265285313678824790736474184946016861147145380926709967033400155279855853439785787878338776201686716181329230039027842080682339903165897542395829042983014654205653642719716837402434127803387542371030855116974249719525806402883621912226942226238466861251770714776122705160983880652722780754412695998157501858685793121723390746761728763096311939204571963791646525404614590658096560849287599395729136525871062209519944401827143172086504376532861482895025137445116339335354952017823108234161736343323461862567765129389869046782377760062176667479246557113865450409900966436977165121915289370608456641116508457119909992364678534295575825044107153648912179075017049817273639573039234441030887369590338755179447039191359990216013297256929856316056060031950437084477352526856438272958152159708017281715782208222718915511501456428027655840262280613689967866317023457208271740410217597552440836554539567755762831570084928019089087018853204169692314295707103166088225093662195206055955308359841933577213102316836773085578371062102101317584192052882280018623410070054133319600474389795753614336809415603484566471809165622979729399730345938544469014347194979765941303935182622393187615941790732387388331143726321079564927234162791091865340254299612501477342520451647613090156040059617647178889218182518537126897252423529404333338637716997769322443820242739984353307486370136438945488378169546717807685482485118897390353235133332903524515590272141884773455190727558622442896657296531454240908164497908573686950172202456362702103823903298266534270245709310020237486803319213028436433139004303188634275985074551128257638404710879095628498997146514775176074817637775971396542049526008437798097035635097893741681642872935138003956903337316140738866503640212564320612030210977659041976714657829841408495532575309029524628736309436424765703562604278449393658959797809583010787721613079440604511857352622954469138329414383900514357550977095170839156250539944188083448305464451255955803982826888095946447137140937842591037468239040854404203836470534755461737232293342701585538336835011550027107676048016535917160960909951820239286331674630932769573945490022751825004995455946995471878356593875291638269147533861171597670735326169451872768163638876589034517214332736079246997753111324796701472322053149049068392145936400980367176920891787732354382526833524055423318105646958551393180814841141802541905177647669265278200890771308250168940834534033555853720429349106902970998874214192654357042438370331436233537792113680654101673007717704863033335643339524685433875990446811859377783210918405509100673277214267993686879620718824774042126063004321570302985103143464843384856115485548094020400621793874280601560577422175265448646987220466776408602956300974968654518268602413543580534192034671335299927181012694731574192593357109982797286873668362848840855694651853223861372193402077265584637646194235164063105463694619343740030057572558012519678980236699111433579515032708586728422784078125769971031008915514933635160828214970411454431975045869097856535685046110914802305976047912660951170656071504480027067794024444402940067087817684257983174284182064137285492559255373290575962105670811526208678577487190644543910371390153090374316586709077303246186963577836446809256738121485727799582830175532550139394171225618200268242702381539704855381779473913998432059019818282140382151186139992617424523589319949773807716512251707011790646624543893276515239507982586762457494708459412329728682510810533998032437488370380887288343062462025489808765983512999072722165288015650511790802410839706921113374167651524575394898744524493080175685999146020680832225331963193812567987946310508745939898787276190993081739193141542364888785370188230269615092129527208373485594804762512945908004687098720095096832502723352071439520179930477195443195242316298020745214186104731372902263913249339729673885584979327373780582484548048568929367062150446333419820457976504878768232558664693476847442940242130628966989941035821366027580912664303162180271532867844534934507165081868399523444823177476759571499471513068590383843742427753668795398949610007713743670123770652626566093315480153211539970943018333823603939022803492565370051386504018341428988757205113765432936119634963752159232539088616092663197089777705063633618931631238480557941160083545866671414848005192196942769141314663850588810135995470136181818207312874993616189795224696479163852916110577967826072429004302341694439060872449843008847792248585693401968649257805008934707516455112739777327384925981075038110373180654048790925099133595182307878926089156580251260827443769357114536049781037224315727588843658609145467443381112259610165505152005625141277931633157552876227785310445961781444228131155947991172094400139985492109250155697503437712506341208117145773063775647335604279338067065410509078430307372210533669435639191323954686798312686550090268836460420989110671882273764823778398022908096230174853013512155333440668563077464476801270621497229320211235083457284250996690566660496286368957339494278161146214213548272385379481254085863345307344098376760171146855981741967008305538013117050151735004074547226886179380623798397502334940621951635222578267877799757941168983872416386824576110405184165555251034689527757552941909012985670172973569010993836231237333087775424415543820404443604246486584576779134418984103449005788666954018794978456084191633498510528492092728949927416266476024953303472629081448091378843210767113347120764671998909559956426833854609319289046063387182193053329868489845207789703848043816767322689109314194515865806607823458705334724124271987519993230122562781430366430652081169871693386191494223767191984616723044236218027929012328032854248199537061863882929407169747375741884252441360022683996478216910642096023575612004371065354189855836882464186569308458618957952850919899663375172612418885835160908462626400382638385614884655908416302001528223218537692620060429145926867576632682636227323355038343857159766191740486271921692283978411979916539411991283572041932693163635602989139697866743280102002852993694798318732939106409460274855063001704993173828391660598626301681846599073550212853710490579161655610897356326117157935958245205674821324878395221332625192764950651628961277467197144935718959498955878021038459640725877276847344041318839796105893460222052119183084350255606985372902733067866905229844606479706777093677235520011271457191500668815780216425957011558285194954186747800543068524704238093746868851141510955390743494850034370432503419064926955659883441734556374883742407756069948427390275661272091944024665474418017391364195006506541544602624132139175012913878692232391584786906652204268963414296566220676179808429050310570512924892814529567300295687971523654324889354454230907596330243359533675907504099293432630280049882295578319487118225913468258664749415283702131337269164892782960216469182309003272364135215297977579930431672446791629246954329171404563205630418560728447845035591370412092920930430719799714916378210846808629592722322352548021508291569465417443322425161497780269492064648521288825900351059576995698796895342746372844869823512452812105558754901630814277377305994141423150836295963180593976123835327405896486495148424894535082549751226210644432783580901418330722487582636603300487616301444456230429035599844736158747057201097611785099926576619705519000016667025181104603115066829011857460429911435530221630062712015397244172392642546450909063052328627684095736892609888584261931741769659026395782868067682643205053328469763419157896300973866064501243153864702473525716618614258079630765375678969058913468109673711113300135002552048672917486410876861010215606118848479597925216287082251630148278335936179982375458955880189545781648734457212163774232494559496197814265765198869334246045316503435262872789085946859700406293368141406505994051682851655891669731626467868502481148905268968115616815142166319836818076438162512101411119312319669922853205953892729694411495289650469038254664121961172908284720356266141683856634341127847349898759344315643116972945853644177617953649558101918266900673912872735831499133736363783237714297003571061918024402923307542853347164278890677593968448580039065924013549456399146662022727705657734299326873108370825190438971417915422748932150204714454514653559974892335183520472335799591600402292569630111262839211141069005869836095457447206301013125182129175799763299722147059468740090260145041191805363344338172468205918594167897342812120581656729709997830393755238182488748101942296264899708802437103481144914099655952660075110914479921065317183959469156554351172087199015912712411003022441393985966508852854087743781574565580962925643091601136614386003136385017832419199016698381629283935977628294149301268146813327371572868476232964944815401384784899179316588703203619768911663529123764689993036523218484761929524827762805594286049288685172560646690856319346736466143384603360869779003141865259663037770407025847031304041462696814387618747930246182567099588310540491366954615138598289209960688376992430803083813971697219462237793990228290115374114517188987980757570659768243684865388728381302107352447324842332025750891656604799901014389751861656016348956595928286354723768064379268971569207377335990472565069150718055196298580831198516242784388973834328346892605446381735500993212563428437572144216816744530997172296053739882032373942400391056103357464738965958926038707217595157826700068458850167012106892443331309626058852361453204009728587379335736556936290206845198419748754487798284682036915747979649903572189749986229911527342092966692795472083408391794966228109104608015199924841298709555810944033451298323604924216570133675020016594325059545662669761706304789070385901257952137474483658295152113434445120586094558771972846264951474666860845751130157967872078145147479468785227277470036825335585227607546986144035696458423766912082737380676081672403318388300202813312068432577120538191676046624535404833583313647228931156414159097713403262550464720555496359891505353765781989786634309013031584089399804548206959868727920929963537363200565810728112671225888426252213303740789637736033127185552079007384073108716592146034019288449402466316125118880105673583588711871707480680635960226366147037544398060139205914370030394315385450752230446185298838398579725552975105324167883115662434377180121229693342294489293850907543172648896178475876039728539050639584136991650234835222075456285548389576166453374161419615171936582235388196643036436930849599623939041296439014202850693956403088442800488346596864982651870243614303404053826410287107360936563337233800215272692164949622428924264371988103583742465386663173468037646156169579726079228714743817276826587162504839523644398002827048169607769941679536397632903236566968148104656750975145945804671160886120690155236547681426847090768268899122169477370530260524844819428583078314728619463332397139660129643331880182548259469640215950029505933267438599732579995598473656301640875666618790829491323597526662982915912345385482023588540740027577898628541214975104314523283101030376359931966742064600809943679780366674321615372896761269039370137580569999388387081800673495670815305211195533228373452446928153419230222947285871680772169040204715406319895803270118083398491973314197229108232898241614745485358195669827310405829959007329589898137073123264280260555648101130295913451301316755226025615025071514998671340253231586216147575269325457752112237354089535909542438879754495267596960774460022857278191340509191527543534440974708591385786944255901419575141514183628408524692395583743777822272186595022150056331869676873445069277628401326662832218443834660203279584218147744139839925562327361722823486122512752787371546172710764848688940807006783499164366339768055375583268154900276841748379053186927601974989185489900316207466121592394771577277595402424238108231246935127604126378909498513282220707647234845426946811689127977669204413396383481218447187193357843218658980984617315775718825616922712524206999427902494847307364558877831232840461077938511300726471998744568440041316520497505546365833285200074876553972166768565608166756432320890376464674214541640038492342406594091810977755189082564733033160457112066407291767794935776379660201008314660164956816821646182917137348977800641901796050511322169419036091678156311684851532147831635964610213299333386734346844223851288324866211128142978878819021333602298437526914044236467578100173679835308048724037672421825577002963219245273469046215207110629330303882177542613445422120423141835929392168298138451125730910425460978682911027685492555766282916677058939487566470434936173389367866213822257977141975487981449911436813192753620423913226972036697604814560519443010043603778813233792492748631307922751934164502220809808674437751002465198551844011165548749039072042707053481849889425394599015612001037822424125753402686660045734511219196863806790340322624196026261622068319027267871810785724460469086545854836074612556182892084538216204209795750433362633704406673433320744228362644217544383667384609049291831804438980890786889871895164888455337138893019984233635427249485924378591668650130406295800486740662634378357191438096823460430522994619352759910986424441553058547304617621843538852902939524347302167627270943935421138616399962852432641906589550623876036547241293824064037748940051436752898501031909427471451839042798024237293374215376604530883832890358381038718127562077215604247271245887681420373780182705377769395977745039154864887565536894911000168309628232575165616760408996081082687210427945991847400598858569862342640273033435239805035570444254498395823942188109152571986350431890752358769468361871097248833392464678941524062941922099842915237098322592516065813108599850070541075257034530029440345663420245522720119026538210555001578148646053124894846074714135844965101521696713042051895845763598448603635884843602686424816453795615302180883276567861325632781926743446474114902113471013911078669853260958940742142977966866605638913297122629065203805651102142098546674086118933288997356068819584324383008818513599148082613656326885721323871742711297613317139179344208660646663621745197502540449858141144383715951618109220275249459160237525586117726771621405625194117660348706851589079006669520245202149685579666566666558620184489593062886404026553076689381944171292287158287800776483283819513872206195000634535564922162804374819065330512340156299108181090217413268545361964395943680680080845983939500143308279279693752272125882221454174828200192258460312129528703869927093650795923313683750163380688127403456571132015678975073388501703782090106257899605316640531896699100298240827479349749055512906351728137285539776396148180966983975857909192971892849507404171483639431799330829423705728584791444253969587285890149316882756976316805206898427881055103013349040982898899932033542596954700726281460262942846085419635971311284822545323654602204355158096385161862409296518097460156562299383249018218910273883402546064150405438505478724645487600007863979917896787869903551454605613857396551253407507175190004117257502287811914519078599483940213001175843068963601796530973413091176319962270315381567428529310631910254038070768150107649991725296288749448868312601857026219778455077087647874906813053558826347879085437744199440047148060927842636092802855227830902698212281168670456541488481436658996910472244574320216731977731039277468080886479857341191534038432290096022967145629826160415819512974642550260907670857213177588950900081303279744707133348221209742142871002724595134669818210247916041730779847512449641244759131890846233909112771480449370334219008111968977805499422376153884284396899239592785743931369119507396429527450470329689636944291644040831109819983911318956208951263924950533972305545771012888192801035866002436163624709793449728535185500175852240005595020826933106958249195893158742370594987364737060039298437401293543049288277729736485594126563812121433501395792323770322561240309679162390144595345324137951264392731260216919293218059590198694409775463527245262681977257408364724542986957223639815188411127262533518797270204486552661273419641634095045490524510769500497418272881238362770722350903285053082775718918855218717831432881268836450444159281610282963426394710528428452463918539106948594555773602461049355366021877452040252366300259659744529651115307006155103642662968779761424802338934212906053664206988668868317573197990195251648717628683785846763624535490304797615731549715599770915426860755222050682739678263728990276899631613939603260696521449674131850479548097432245430228216513820915146455244870454548353177042340441930696680027651260217469458689397676892315172195935421160429216618396906136510706327983744440083046892286455387147860862480460400681034058425758614579668202042882129788196160803486057726212096607446844456125036077353129088419300184554810355567562026138113984026685358468829259546996708340497808889758874575119657358256095628474498679076148730501102379220518664561224871980549441478518736715695905063269118901829898498171996798061977354011289023009212488107348565724392423092552193992793064357737526793588873260575408148918724535909798098173800633748405254653316657758366813402348389186012534177575101069604268806803127198054250387743508217081147720943702042727248421223322992930792245642698951973767792079702972896066768837063030144435058035291254219505038128977744564052581678586262840733728036346758378805184484458618496594327632211250860281487318897695368049927178094050805945171490924915456229138305400750871856742291190854908727130835758656782504916752060379478957987043293848361424943674619187199182597531173239225400712932175421739271061237478439146471658588308729127645350509408462397735670957525232676650953097157066995525682719081414166718439049691795085414302976901022871799968293549853774958857285749172294444263302849257506307958334130032976220942910544300730597481662111203112901698113085924508377123156336417421181610451881535780567729072882519004485966256000398107910751758271675529634099424193535275510541683881148596371428961656065383974740626320247684792782474463314715477562804255842028030815862068474004419544103582124660587379891485014255010824651964284726553682968459398478280490533408532591413643766873015376346858949723956188352494471774810879255249187939100363157385605361648365444807878491933634089349721696853342163594210554268958540285098153576114162814106114820302222128818906625766125883494634114144770831217175582201678432146358456042647339566802435525413148752129105065645805291803135816156211183862645637530781812542858431736986427422962200260182385551208417326227157971458869673500241114274840211175228429711788471782905306026213717295311127454088647123901726008987337241835752950973917364168651964262702622218970894485464316618373751676006128958958592941268858291787171082093541412935869616556000328451174165000117133111825074361693117114846425051150593478316766589870744969499542459000869971303245205406877440242264961187557685891480723976734767752284563471691109077315806428807700425508194665340589452946388939508244037537608918188143727557621332081740931710093663942275952483904214854312125246121273984093471289190393190908094640662350125911318773585786438426552993581593983322516419072063400114867578865958145278780249427035825246485511368251652898554486112629448726905392563934330627217965015206062459584957948975004309731370818867552660975130898393971450749821245154925527691193627116258665018762295084477058607263990819586058026160617920050233291504257170970233396836835911975861191863660067749347535975714502476052723148773525242740232367965132342460906473740780562796673342965238961942419195674083999167258958334095879327444297203819626629126559728569026857611636746662154904127344060994347785600898663726611163364625993962640886404083996558808812086136038993505058934791978070716186690705016391541567766649495544528063269338046576706353488946989259474319093565543880777718638318876926786720404002179872829262891821942063733281070237392109277930270538648476211879244671071433228479805410812789517938322957853595188832331903378184449385426731706459299556515340316686441434947847449469055045995808151435773189806784141773956971432953119269494845399587024289716486785758356626514122167817009941593009294462118113621396086549063880639083446654793789940914638850731104270648890306652508281070818938247762858566298204799036443337884904694081508806442437252591048034456149088101816765051165444571756382914081613737906850025643242584470562837757788971867447102676245007942205153126688163139519856005348087268561166689062112678422290035918658430561148210818154264760559702797990152282623267366731876012741925750460793467149340856502765381933634784748098100744434132819803602002528395977728073385449984934475710976569863916276870938373082303796061100969458081994788569309259794337151953312965511404755905743680910348654248163080475260862087331928705634862568812350467611108289752347271588975986479635891497694456876384908623336437515447894895723924511870003504560195730759803075585829960361704192647858217385122085620507122751372073373434317156504661707034605102422746286468317885648187555266043430181742178290861601480020799358912883959140219017177852600732143164782093004176465863484214554436714344436035889789013420418135637310558192561119084055243683244226551830295860801479735225161214849828110695014598796825438316786077687178720396064014796522160387577179478404676718754630463856044831769001349839447473816405084866754888668608877204821808714341961147728720606029246639305579339948162880793100570064505947389594974491847651309894263949831263020564399603546961866303236948098425451325683059756267804279420703197282552585784880142236806319371024690740352315910137955332550724026754468746565800030132150506886735591623285657645639928377696494403254181893830999158147868920209710275805155354636049881259706910304833263275084046646054720232667706723205258311833699235791150548869438771835370300235066451706653235409877213182667718799358974716817088763239201919345574007612553651626242434580038961028839293371197322047434733151404892278920023686469046166897071129261176090224242862056906865253800554760782647466581564366350361921982448898546879080649187602793191188728442803957466140598244315277103420678092729319234617482869636700852687920038735786643832914185833115605542864670581256922799181686209151208969669161296279255316301388632105164670391142220193854984664432147535951753609575397896550568861788730800944047530118796252875370016262384757048722644316112748043565261512566472867073880430939281957725301306032413967428844149646620339540508007125223136803642428441759263734143967013827870184585037894383619309962479657148642484580241829040726254977436786693430764893429913045012389903499927099667561406382956164872626028202328529753570736040838850874201860659442998149363224717014748674281563856060062849439696089672984322234234475581367455665405187900263288369946731579167148075012489863869400434098306685892157231674499047535749214750188128849483301781357771665823535192077663826669637030865389574951941790738949249233116511181173875025293344092393546206819799703387447937282875500371004899799279416954420392325736908754748443303979764059991226520760263123399198510501268413007734615221304049902956820235449859210371880998963750192535616961435829458361844107902698334776371322369405768388998364075241810509217471471133837219547296834091384306342990227139786896349592676437858196351946912655965985867516438839532763492480486478965537728754386874565985166103182663538075700137913166721471358073673364947990110418866323835599282180707562653011285808884280218786176944553762827708636414086912073076539111123655082706770258701834181595961039711363801870520154095892999986559226495062459086429892199704439098561560224064034151906001194389860467780362832593192901502099643748372748838500961783700025094760438798158439529360921275489456198726429114676856504525239265808659616251522193305965551927609900550283787216131765633141832143724646964941371599500117808437387910231434569695832598762802378334344072488417266766452814713099201812081397052713375554521040158343341297724310324775154467325055860210381121221580645582725795654599894848825721296653032444212461927399493679275820933645090057753532776486646338662182694005396223156700163045752065058118299945319051656417039570760529321149958297935884542957905129728086347702433006477675798232996619535167745057089398860976766493346796367291496497403762715653480930796391491104990390560202732029491823724907664590065445836842999367447242200392892866184910109697493930525684348770015705804656408265370808826570669595982909111932955562962583496797003610025052502785685342535920237715400673154850453599460978827983111026562078940935658866977407456473350799571574373228610761593796220422873987037610816300720023980483564480476858478567039678589856092997351980357152526751797831272736993716029196140081576217980487284935141823070101332645699670405300133210377333726398345322340484374285734300289859668771053760308572590304656925641401307073296214032542991218483742787304345075191970274184538042289298389425515252837091638766802164624708909638779131306509570065191103876423734808012361323511680893898165138442114286992658675131752414614092793211588921338919493588948792587997621064066288255455501552356286718540669519842229941569585244759158434714833348735926948127900157231613571127256187887953982903396532532482181015354249900244356841496919206750637853441553424059936710186569836961749039447119047717008069544895147322378777912167842259222222408736515600528002529832871145687261963109743822409019302359496571466842808052626022333231001660094135888841133598631350421584978291885861238766659061043836342415161623495984130710295671851668879517119455932392356885636049895363509480667987060200781199113684830072234092737422709933364201345712978172227741260946240912149490105190869743013306870829537398950190019352621077442726784127828975808991383052547036918510438840871817198381280045429548125259283491565250546123246863417426778527275987161705299449383852499415426134753933796419897077605330161552774020667150774914809489893957670984822572362841238474434716819209724765478273051578638704618728556665247956180808356426858807066115971308639566379828019545934500793683703787237073545579394781733685856609644070270145108749674211673693113418835059423890726197268189060221544015190208627972702166587012690021533733261857668477322476967380340744388094464187641900320784083965372782743006925239731558834638983494098853304657638557760996882743106342653297882134914691408209841340006920168688003984758637715270154645496658594008770646259489331344140182083816873113564071383243867090662849512372798324913571057696652889204814790955567925035206355052217716487827732524436109047879110067492673152024946418902767932743974611536761984685006570841899347469621562352898683829558641204083738214481473643744751329187974251797007078823117488511441402830656861613712649232455766898416035316889074954068033971457681927259930417933653869012810219372640148406057049650533777092800315253834654751587939675852932990857121087242965021633752934447423102751874598656294281714634939000693450684596133721579851069884461091359449736035658883675103486394633800878320386506305504077883236716383526868021260971356927741161696144125621940161696256529610688044229472280990844062188064143895032489647455016779096765769675380029042726645542199628711012256343056155178777613241803401234498962708944679238467776032314525084254942735297884076631891298652209576777884533481469727937035177244469819947693921911534446543143134600197608462603262834726607399493174566585774713715624598359634691148614865893783736478435724109056333738812429728535269793152786384660221530638234420889361271503260961129211291362165977816334707090537769703423815077409343042006502222595658470439938413214968264140124624485013173175808852671826120242887091955304981756336627169665615625385789977709059411490861439726627750230477189696920822991984883030402211830457467579506801696773565540842235858055835539513774875487599313764851224357114550352817626937844838542465324769199408099633127733844498449651492099977211883132801298019346174027626626871883231922723267392450271019260149329364864774221411211052171164563656485040546317068381268766703346486798774353588854276583279187585495352056374682134029390362587755105581488729741253079641177848680662208375971279863225492652956139390044104992156700428673255527057361706042756695265583942672880449808816021054232109100030697274431508231998598934239251358741033813326342643669248339973888002608094403344398962472872869443845861318200470455586044947057925980078748554351555811440530181963428898056192697361056485648209124061526979153692894690306531858516488186060853957166884494635545291012989313427792956645179058060389609030816456821130937286975992869623372777935631070715951232395996948764723295231224020272653457784061375465914070799320974069286355866649714635068171226091441541496012930617529036878149922419429196552735727344791115951580457618413550980066598219369536867799055259586993882233629816385195805909178280794180650654032387076500536609417849231775289839018011715814686265026888412571511002585967558865320149605632789987307274871286143490550775818804382913920774264619849220120000809952674958871875029865234719861104182170941600274844750562826962909352452085361203811686644412673352817739158693065991335973840407380633179428519959096845475806261608172626773155079104069647940631321386401658999520968663756896377774741346599295540226115695251215420878917976060613698450605456091455469501662532800647694857834719620252996612767836738760463489321663344079765952692911803192465687713261600531082236729034064003423466186649256018239641739143736842787312637480050870157966196225871934566639499944126208962417124218372225913931702634451775873600848528389801076203255610846314300575253638472253498459746295992774546510415651112277818804136655820866688267800882038900468461297261286965012476186955258269856847322075298451179366052451092493596449429345528718516018588187383976878830364752499931000585392033799833125342162032836131274363165470366161863331118795609882817065688755310746815987785305169335823639859831412388635698809060178664678464779451157802382153024588837370226144902604324088975523117482722951495480980578763831522744349829368372501571421962845519292256379749187907515341908829141720432325785373847895421636224600587862544149003759113286682912415216189376873609700949858891109769869637879665803633221392974001455631743437897001769883564822308872343261525948402478952703582691736972336865440216836581175544587413199795260686184020540237112157850346896145413818022383252484314735831733011254264106957650134298273515475555588525155129547226913510091094750787956030735307296362461288619746816600466235026097535653624928850406819568621362939842885215530687864022640578198867836539039826258495464708470291792104155934887159930236960807069997372428959733009893736565571951312778094117111669337060802222435454024059873767351064987424860137996714581515418518324717100714472592645847516146588038932846098909640652896893266696947956348855108233922399400317602923723797681985678500009030644479076084628556418851643397377825604691484587034659483787246040466992043366235548034263492797533013547463267519844973917437762642421812401645349459429979048508857256366223772986646951905568459132773936084129171283280852569813254036023394915613166079141635416385909476683733720565176734818614503145726907504681005485402763633087418463771504025715653949539845917091211606102787443623480717828607786108943318407159761328991220958862644382631206075122435674371791368318225687104992555595544580700224018271020364873497489971967997255072549286798933955823236929290900541135999089940257396498225615734897705329400701117266382889826642465994996365311754128883404372833590028895318874738853756453938441405257815367926684191550106261950510622158786015147212140797411698711033594388360760045780121263271016156028080452997190507446693667929841451534503581193768564312660181318603252529831538609175234290412656151793276129623030076307816949537139599391566286179713535399249050833790058858357996119326457239284058259962629518182891332069688520383286249648025377845599724276703709498759138620559053393755924251919146453635025335481985537233526697713616856750360262029390030163257017385955720362453591428188299860321433666213536006705836434071699029339022166735458724849310935200248560892085933298748071052031577449015677512623481465205045372438305436422020814710246223492967762071989588382249652711080135588579334266067191355466355615056688267335987438461846521143708014598293513481832517226148060521919882710945558050441515998474032124103434137362738249913738679794352323243102967480939453709105194981423771166507999022796738396441114466901507541842848243677439340106822726773158829384729766760764587795956381890755729690513404152979938956133260085557085065729222059298034072914340882737485474478752251371762796897116008638218470324701092414646055533839172339083454053285087006384303078798503807393167711810073863885048779173512597420401642525447270972729214134171950090496777839395315045319659707150340034840844779079710273756817663596373150781742643357720217312915828896282128475722054017440900507881012743995122936882512541711627564887667888398930209758368030292548299830525600025628034026197420321597192711910196118436930584588070998560375530048615678824090187165492844474490468402801114376506038660128720012703156505772871528421624675442353738277506781198905753892191308279986776510901914835938364841391823666784819550581700741712850714015333646719990879625036087570600367671062522724130811781418186877018929451200837682990519829887780475098780706805762977113840802700684778621452529127587476838500230796744462530996530110648820869741500314687359309913001362230455313878900792146268219248109729100960105866115251607703116836873424000918474244486261661946975103034686256260859565614361381375778623669819511224838440067425212271794513604178036968415387756968358554302681163401409420314685110533375014396190290778211593531952885034498924740718375189114372620727849359499356323947208058252507791190369993864197426228343522913551148721533807853353552142630877353973211281730522136780602142869331415245837364308802680736847183508135373219693586284739274516367625701594335070277803172821104003910978929913456259371308707226852692339935793650161915086709520475967472149265422538114308498666288941085958381106625233532566191388271395533971191659041225379440205090796091525253871854356385338279564904938349901076446097397841730635741742797226888336258829648520159117711371293177275570038895106407136826325861835259772491258281434823229021207268358958148200895036633268203268729709775691497511990071016063728833254113419904753623608808027199721192162895593516752069864738417527618794740153258469676251001027835117800881184347318166668370182341317871207748025336169411094768666277353177767129301965087633901995093657991378092269075529321807966390014733704604358480957539250972742948596812531688957249700066867346447393442639922716786082916560625074590126275791832356411959358400407350064689664918709445105859281440524215573535883794420284657250969193929773043724891397067956916210044773901326589345889968980802370972626142740000075808947293699651846422327468911852838717885382935202221605971693647504757189255091439505807804067517566271368306298749397296390389924564930037096592662669658460303554833371472745462515023122845896090267027929978246615721774578110596898471533079608787754097293216241877801611801283581267005528664866870495747518542508196610426288783091573489350014448702404616698697355610163264666894214197347691177596595839265110581768557118499395270248281754810794259128135069174823270155629286328143272276990228546997493811752972988363173555851273686127774809931967663175434839456673947415518614124620534751230930994403234028921934042210709918606887048686815668656476174114168186577873920416873871941638499791804874816352336514823699092717336571362861538617514446722736040606790084601236918145825852255035947219620870600602086347025658672121524528049211437989688338480853783953108647325301286169280733815413949122694180930675313394090191303338944640592717439609718434493911945245950557369304990259476587775579437790363306914843425994569992046469218480601545344319909536415821156447976608742292131624696922564369170766336313053121876348610272154140852942883569483230934926411913805414080198336745261677639057606390724181304049260708337614411569940269353765874999116676844462638339972382770563586466330773964209041738445795513696507369428842789748279680045694887439792387348223477146537762546827273277387536028423420510826601033165092019140388725346195251332863819583298942251560172221572728165798677684267619218053294965819535032453430883778277911413288021290072732216997403200538578060926121800283766339243888886641812953116455648628507160052603623135621774134285316925042673902706033896730822250637472627095766707789786421956385190011720347207175952108620964405676849972626219952954987536647411386078368033764309213990896666317579477402634525604522315165011465900248095666210085081938488783827200556178716582325571346392581310003781398085820512133708246736270306788513977066933993450556985603148165620821865874970849538960215710721316212043506362650122032317796919409208419770586834252355283386555652774306786424198439439883987569647713382158319447178492033538384555558362285215610238203993347013431260555432387047091088209937846741251433081527180905822024238903893035217768780026213315278512874131159715985557875316551935033354262837345002338279452968442873764589618914110472221306803479389487404168869107892434417163746584864877938789020435962430204411770777226417831463421303229659231630542334543882446794830167480828656277967859056406142537102522998164590430949895855471453339421809595693082459250589648148340580922650174512688466484318050569848439851648662819085584494443065560550939671488299976174743666473108359311803165276715485309036879884921457286900339003795586676302993579153257526335209888694966179393818378412735553408530920591095717489973733368982739639060082764483695538522905316096340585418865584700197573503923752117376259174977456828659178893845546081441109042601428004710521197512955127974787634486711586133614102285510003217286770444891834842976346657532032178025590226042187094541715609361786444989951986162028648553096927055787723195349438845595138187732197370902102717260763764370546722475620035106187736737843234727342722989512633672056705980332153188976064795622158445534728085594747513865611921546290217345504838349845026366079232827384251647639641250235420257262042959303456298034659840502116906326712247543509477431552670690761654069427188734781942565381391336396399037667866857617172635341842599061531101853994939988109559004938981034553422911358228631830015186135771116071974354737937447282180565603853222271483613484089968966516484752292919257081837010794794625420523379822309844004746078010437428273425034649912125628479398115358700571788858928748294309462518998636873949096398462841722027805092807590726987522390468258983827277638483280853692163685952977231547540314303203636549339101342705646431328995059144349084760541345967210129929158901912414941485857713421092869796488232398083889800822755438014677418962833427500541568548092179073486155290511208180911407725760048973111514169680016684104792532546284506168128862639572820238709100511513675183849536627030080982208447676485862843417999413391112116941251640730730487276090572635211704911957761001171874734715914812903247957392953329785296822913151147133814441011138726623142117135610166285940240246789567236721634058696170435838972717786436942527319670388996269650538915466934310914592427405281621371204453628331428697639084532471097380760653808663835688639858888280168875622062423097233416222485284954057127253311938639159811290399031463276937523249844673015413135775738651916196025807646167052637984056394951087972596647509750323956637446178153967203470025771509489504039164240618811183090003009920892094732196557562597979391743971649809049091168472476531713682835801040216409474419920935803099082160832910149539757393593490104627023968360142770275017907878534207765583623095703448454375692532459272875290402913721150742090327701100154549414542983603229978391955442074623946737081376639578977714998094266147388533790228000829140845442100038423139771476645841778726150079099743281301512794043722205120865440153931327392457329849108886894256448418400194273299404465897296677602757083056307004746848591389854726044746924297917047759517065853875528284567227575359581580250676920116857044197386272922616611050094347467090889705957280016497187038112054118623448254143183045608521098902446483123806211265518260410706057558372095415595867216935356787446237661256646803534038671143711485302693135400134404948575504963506998199040873778098499460369742200244266322405055155441971344577896632481439655336724133655410572664316746999774571473525349967756736879124491578372156339607171503260005754433696503227417209010310628211154535838481470944306913966948798805307172676924263820515813658936282643254568761697761653290240806125990197983580580365610345057642275339320202498442421201563538569708246637570095999228149413989818486289459598158155259839982136482864905716709754586534077346126231749855145364575818979475481373966789380640938302050744064170568492255571128381415487634825397025128947450231538791034442212097618096228263829054526848661095946696238184355306478582146431124054561095484290932078197437252202988094421001060257797457730628142320782729917779310257144935306015181362593698859033601690044726440626915215046673676618237816290885571068161977648658739707552808089405835456702561979234923270710123295002401577216445900693353197680983745039993513102526922774958532817395473600816832990756156082997312885148990384058122883820602591667034607772681951913344865361435980300081587656816102300348766377112219689292929273772590544375371077063369928240461746714230055420413424339294972900802478568704698847552406280932600379380840210669224225374895227401641640917319518782614220670145749036444144962801583974992779336987219060334067854464558515370964959103266182022937854595777867526619094080863162165114138354252456646278853834498265465960820471229320192787975422069454854923906871304474387810305041781978371454056004351242943999828337808293835392486281321147041786720514218988940267948438885874875337153847351611608543304230642350617778966980191842499458967942498064961620791416970315750798127714942852099817585860387674443514703848846845616593238053868986435745460747908254478462992919847368750779865986917936198423554351152740552631257027780472008116017825640013707623602793722587313543793780369445187263972458863583699357711331603047143268086254564297040814141796652964645987395596065590035777387880082374133263086861927022950007243736612265400982554795291312816184453132671947432834987973841394701831852704878104874009657574431076582573641675756296288944603779600779064216810724017411992572841305820924060976832366373072938992375671923535110897541070790252459795108434456836888983544489004281117410789596532591231561177694240661281434840514910650138102210245708318917869113034027830853719409436746900124983683610106875275927800793443577543248481386764600909537991184854014412622242788738234930129804406236509607501772475976054031535621123132017558521582212915615888659389009951799869097514101303751034000016772111720247385688556003989708657034176461273832262028468727752806687305829997796100132505078162072115937198944387511617950197608250539151589391188538694622020556047243725613523414679298950338250723138845114095863440854169670759778178473401451990315886278431365486745447079420365530406959867450149973055708986255214459998693665575016525826469587232312983675920786492105912130676645301986531776821400033561080007830831795547511064262657270544021155717352572445489300668297354736919733139161475849832916373425809597201369390270516361208674689405416985534992005343155404955649641096739925533227130880463184033972621154735446970606163039613279145629488190630037377810748789572209242153220319546589391170858771696058814451522344672594535020641340799684819802520453588353593361107456012018340320433366142551147293276672948805568896006445063591468086243537052529724305999306408890332016878944504456379826943401554292583823212493018437594252873827392828774905473530117903782213684001241410962516987930312821332991798682106327305415700036953352131431917922176975493986722104135269619786072123225871892679613182733899983206790172513099155676770632411708013222067085802286126513278380423574168059340875533205942568363980265700625690380245889567664995395984109305969208144368888743877355569347345179489166452409003914160616227145855637062679965203554596930300738658458235830453940212592668817206692079212504517119689674979900095634904720005749841799078295107474092871706380078270241567349953826463136484339870939443658841885793964939636399460969742875640679711733615601267492678079053955256217186373917107292211976912985204068358485188867230266957513608518430998382815560357587324368395171769841463845455340621338112700217386300337455793375947918245078022648809038629199828336131993465017946050157877255887214001109197205403652441966685624446423605180780507296894956987586341501545398878197683832598394043974220512530236494243576520021005075669701431698801848397108691902050853398689857153801926420554052499700944458970594281087936120840054120678234198633930261219920178927648283016707641744856781807214138459169323902376848398587561190944407598856973065025032587542999941439198136269638611443717021777672642971291486341256499122471593356481666685174577338570802147759506429576896167211167931614008454153364134460748107556910714846022730379077185794888125814185457821855681861907166079729563065548770073448136322292830317411934490585803125527544108099430438312180721125743190115079148720302818783231245347800682281771186748284020877943077946349957493691561572916021616814291745817527595350313066015727430311170718490484225234825662623123346089524688418392003321890504929544453590201310932134960205301680438868520037899831960851851342403134033657232958252777897127457800107568216442590003040827362422372544090294465816331949916263584733841496079188342310230335172649633790803231997369602099558740194969411809028389019880397453340480516191568848228882201365029759054491971382705059756577482605376965940512290736012314015262006533187703621260302982548217681204022956611906707861287834261699473403347643789054537746004375988337369422491118958235193415769042871733355300954572006127413009489339698822800564661351403138316610803990990952821823354747425440438531985449020708459619591266566763273336988695207891343596610656662552664036372152781393361458952134888539305855486770781386536769064514219138869358994705131410238753081542694508319663829518175205856802453225415775596955286126533815766783258909342032753591552289544619613876071591269071573156776280555878656368878689262612037354800729718640872369277491521657102028329879895591369631416869142279595654298876402082432924733069411039108986910824513932986484016650221680507826983220177635185900279333543120261306032569588924968305057450915567123506340132587312338571726583451481311954276270240359675174504211779173047901830205564180965562918767975900789572931736536560577520080395830801232558129863865481114757383833765545195674107397819470616012091247721376057220003574929935173280351144132927141106135687302424864186832751786757600989169023070178647820002028264084327562174814896490353844775459075041977539854342142117613466537286806205086782433719146176740467914151597547396270531727473773830342230908992666055076190858248261990035877649350603962727385266066135808866584146328918155427856965893611595483287802249951921143294299505921239601559160147706478320328199286633056392175578483622708023887395540499110887064729778998581430998366262535590912174414271202601930502776513235770842981873828509248506984406131630516348498159048920001161158425151506808832889564920310856283891624848880260375041509898640069622579405798209513940556509132770276484127881305721386809480438343230562235539598192454103054803227206044449261519028237586315870937236107229514279100653596954392084422478085587124013075315245532683221844774294084963412427165445477325277177634156888526217080816995164820792956818876040174013847861587018436673250660114908536945237520298817911498112348075359296689181889854017882336589556531475886831584519800348660695101783150903056179272970181602231221614605847560591473177323324562804708319016620812226035298095539018204678005760124323501656362820197009613828777095280284250889380231689661103793040999921994288707419302267677838504006630687416260899961928042215079150774132036425952004368984995567038323142994963870207456374198365545002647724517532718826545777546202313877026771860153695905171505500393419237975024219874939730573885107777479374884303628378220356465560546672515696899161179794583253822664372797663063843936198579087675391579943741580403311130408723496895814427336569471422474171728201297598620027571353327235714221453540389647725602453980825478838705293617024230190866587584041646352157800250257334150054652327772171443599939068672734365541149886935035738009750128873128712447845490483208795364519533628451641001299689359970975985879360044577210093624385633718207907500346594699019295873009753371372898057406257239704477440975109462114550678859587226140638731604052417633088961190752911598128149519513434593032047381211078314931848949556355714923858400488994086119042552402295468880601426551992791825137927655722531496887388283855924010861190530486773246862160635315637212296207714764408888703679980446130388185111867793905982830167868506349514971802651533995677963019490829581837788832865608188916207070085003793258811744212317090669103921416829424767063535453266835483534586436595496269733344870665044766347742702785626771172935944306251747074357801875958778076885668992021691866542585951989385593223091018046653445527559663940320971356826372942225138847364027676647711373621103442646157019299321871206367199645904986811239775579888857246777956818776740646683372317482200572201682941727321093019902979177843453360472076469611340598425650288576426090042263209038165144438392421972754751190764224148114908889361653393644041869491685039325739519110939289257044173629882005024407581334124550240499073908866675824434776964065685876573906139617068511359294000499545390722229632964699588793894431544072348416237137718593465609307161683013862284523678306400883682632706229767998356469979395948758579386271051016990630743295885218002716353566639532418515685381075369574593112819679443691683032229267301795592330050939271110182836659787348786611457110838011458566520044648313888140749441357624930793198982174442138323748153144452141663510788586727080531030231226855292990574274679759064461977158588285859310361199607309988060446850965760554948320250602665463986559047286911901853970795349217955682738170382827371856250454029358608457871295964537630406899618337042523947471083480689355670837927488444909640148327090525752671281218578367293050611655372182515582971364145766466045104557187835445901962727736664218612141353654997054373416080067879315145437762596083720219724200993303085400600144044238954970654097502894628555900704286193335727338745052628774802014672281262600161956926471525989867293907176975431535418302370842234136720495790455449842904459731993458831446359125427927538541312970269680200264612154529279980167599241603264456761933748111439754916117768973285860428768265145242558691796678089863129653393341947300386365501873431140900791103802095015975655497185568874749203871765886197352374311986800893759615405326955806361370521035693996285409967816424796718134619143043471403026535903693347931039130334061811407005879760708262876464382639426495379195040488957120934903752953542265578256845154957155929396066352144813597988018677246431842676475593961290210864115316891423595552403556292027829047389400863408743490516416814592873683763411115530464767939709125133807404295815186698821146033657373599113626465402763499067626536553345645589126300700500046256037664382857598147698912443296944463635299987525764220277007266893675545939295450477243083383684317983883074402247265379389356390344492150091403860656627738269618278523042227970219228801920293482798747115497610853327809379464911424166244434820515810935596825968960256130498059825160663254199183095029821247704790378541775218514905283093625935988464313245062187871710700260024834344750527183737086142952183615871837413859522257375724818367473568427272141614336510302203478262690058832980308518825234404821091607788988101343268294033122621534450759015766664663792274279754170281246233030697960931251351062741219861520837636647613019517530355966138515944534140380570940210185568032769839118688539014251099335600560482572617251354029888366392815454170959430264243263535734931028021141575882574886094368976211179878050371918298020453541603693592682931797685102221204333290910614905822691664009652207267506129405628857250396099651694541615159270979394464525496636802027880239032698388123145983335487650798700070581079066808032012268424186099813894980531181957786607005667540687409597352791706463255302889891298170988713782637332436458254547518466477384396328394989421673049851575510001998160571371666722437172717847670423165446789578232097583363321000973804004823392950565567083760694133531925638115169334942856942050706990739159524722343667628874962069689987224658475083711602365332389124543287489990413616188468299958883252688344867138247480436023933335066750105698577793690924477586124779617819180901803520304646475504311233675048014550816618691304984112332223278004132762585012483638787603051217986923466260876651621504643864787052275160775114596785524881315932846837067550821428913895125396373947681481529647937749853621782118039282304273084179060967862362968317873607288549127957649135972382855315050063267758592701806690748181787612450168101280943479031942480477651390638105277561806279274074920902946271777578710059836530301200695233583335199476793406883856578184219763418507779972265974633512710626234508931779507091004388029997119027601314727726328215420196709238347144456775161748627484933019826392329668552435576106512254536516964993161418151091416461229049211076368905947813485273326195644725966685602577366605163454109283198536049782442322263901635989106562063716003986422500296282676527253658011505002780243260192896858322193922999166225142361699949588031911476547687906106135753721341063171619675326943012475384109639496588818902757877356655048587871964508836691964594637300638570995135808689359615902650315926663275301710963843505070391317383554839236420744332659706898996680786268595963705427244481210658135020240098464931512218192380334106846345944867568162683792723827696138943505349832417702946606787416251991067540512873143190867090073240171102581943908272561235172734779493304464235180474399571603693642813515526961141950370062644588370829390979935240433221957334360272353884938311489556427001720116559499313973163280766504823452152542033008409545315562528898179652259707251763664892512255465446668705788546302399252773832373903290936747156137061667087284408148104370819094332218085952092499315722210700245861363130139621226353156082650485841519455264326832678258579244391299729676109531913674653334957567704418580801833086022969888275041037811860028234199398823342845408329573813500046338334485101607667396772191880425222796877839709214866549860762425290173706144885150661618616928161629330299513555122252995716362928131116633269569686760163098856548304148145844727970706854307096366481531187011260511364227924773684155863202392818790830752730198026380624623552525924408361716366828285276811677094058761464887866463502093322567696565583354976708065129580597745212332893288628531851969460781275767149087287011623829551917719149874901914280858609020928264581244830026982647788869239882095950954012199227104122455091885470054853857060516785750375111230986827977880705563142427769893831951211088287565723636505045585197705678596704211034277691633017889099860438280990325044554536260813637772500737431466605109834075597183946509035458281894714207186973853405630508580433014627966782639948945750487570727057708886496946554538194530202610902446246933397744687466930469237306186122455978305719266597621831490481106354901446458666308507465026438497366684596346310538345468603886902011248384063259001878435897219617245398525061223427877540100564578918485666233989453112193745245135430316528955574912477902548569238216271448621369686543400766483803532143872336767748571593294899862591601196163425386662091420717298799910156369385259324487481884870507624478255177399665385837701807409751739211055917689035628010406799380594802680051220197100084670467787153219386205376286802489309822001953450114444502616107994563588554488932872072404119924795841289482508654252954846103881452394633958724632018790111565145384604730024235441683203406233751786155438399127920503920925599138236756024386090904756091284674542450315181317198369335114054160552736233913798975088623460420705293411003408816254713437897528812397390993061605812995002039339224173163878384881780938337385411629528780987814693204906801294947432318667466797296940561670275412106859428346402898498824363088089777417988379711227014768802011113060241851264216743820144177027498206559414672260420761519910145706427266655817560283974916185099231175409096422221277665677998897416580041284221964275377161484971924799567720597915656179994719110055655226943761261266142707310214135149317703695490272930186081877156809345338401929310056968548629210300585066813685002320497460156459164416159801207702021438415362909291671085768703858798763467593015872232336089235298215971366232464377402561837047213763491672037435185143421877224935318328415529178174947374667646154167152467306490536956426861473696005887226001857873691640361247091614055159891498056056526071509715381397161280726917472554865852643248336601845571455388722264584830538894302410862792408221729209166139821242933193608676000030718247690841603728397538593638129339838924536104975382532325224675709414120396904288284720281486604544730726303174394625411344266504536130465519228111152011304138716431973633318491626590535754265603346316061526282652792134861343608527649100581523207694796342077829987186000445247061645546693054037295376705209259153196783773976075981661359092907462687744389124499034582066396643729163092271222416522450827971766805793507739412134399759377939116030424368733388950522939041920091043695195403674187900191340350246363547394052614779496810482950174821265098205402800916997478972548559659228181240468728216769890923922825125140300722925719810787223949546131016692521330143402477713670042419401442094828001812003788340861153371536577721080903727358801878474359382995913781542009680886479125139661604836741664085728868034163625000748789256339366907565064198174228668631938851282152866575053460295894245592119600568878111703850007435388091575778486186272487935277334783081595574138249408060337157107019973397893137959796798923611812476766765395700799699668259484914763477259874710920330539064345576773766381120247554044036021295108747719120402601045429237760915911507701763138062513503096200435345159623020008439382360533132998908446498987427368129032795125704392117809384883026370938093748490156784880184747511441351077766214850439099330187083027892682666209078431930224235163972657422783217019774800189757611942825051641210099610553513514691011187265412713723076144991011483744717680210687662326033806477008739634414014326295778018952652117106169727823481096299447741482187636369410908120741293658930674107718478894171392770317793738148836337780016061417655081093690723449755223942352136627184814733764121478327117110944592478026247843150901133977688325401917633606827345086728233791396306942632415401501399308359274775388444807535350047205500161613020320487803873328429021366786404563783454330248709387802665284195873858133453991591201163806580201098639085441825560689390854844899045447172172915226474171003786788115473443197879886493172088662298728215715841671522234920115595911117498763829721222747551405741481630435496736158520722484285791666067352261455093060347221094205107914273153642027755596322900502824599938852986644952255600882488174643710316373937957012057070452201455988486662564044006865486968086576052379652676243324944360408709296274350439706735024095440492157899624288918041973010884074568410911435862513006469153747720780365390381797647241260008567745600115337738568299547339152302387010909987652570844600051862876349178528284554034577805705593159710381943189881721725489232806180506572707652897161409560568521554825950068808148530061128871107242734155048372859422073085268485725915780498358432430759115597486225256935314230521518878778718633818595850025521067439793972441248690491910468265463494728365795984918956144216583650670631587404867051611448159960248077427396993360120583058386065838372732061781993251878536219333495075396225937516261754470553708496099044829731326522508782367058246852836144750626372983370686537198656269682083307764008637115773695834570502336308155318288362084223258148352142704384532385410839972898471812535613658967698246136267263407610647156981685796043746215133438539657766997813181792211608791206427139028478851393849746421716232470257038919614336634522045750550566699306165411216449663584148395825581089338363699329225487305749373680238973781011054029964936003372280967632079863546065511109569663524044070602717450161803437330912118610232672057178997278093891073758410009806528836267931205230441984495488127433766326664035825322165607488903043915079121864953991563372663192527541843837811565260561396481981970617669616753511279804700306354285094822481004183256768479433652370896211471935646755503791701163254007805959814279367320059623637742601338424530500774199407058339615626662691974714179390573880660953966923333363239912303756720830056749998388382054965019719351400110201566153551773652112221091220591393626174316469886848857059592453472760616954733676041585364538683409760630498715124324567882531900040700694193993819798297436916830056266048910823333023617288417479644144210545371920548710746363131133843730180165816191130895995716485257144357909185849984741224121262240021482928575178361434267584195828353656728577646243908955365204282718962426492391211908490198387006963147704082890519575526813218578700899390690702790649538607300996526547150335423839564596371772649309684006389025945872898112718539006192954087763652509212128052144938749572843363643001861908360300244594357347458869014641848434610710465716660246722777889414176879973490504474973177794422235040397659832543874007432539744818681178604839226173199614435093342302210724697284355725113083485872831394308175296951118992617683598396183617822141153837779124207371344566803528640127849570171528064280927916739234514880738921726812449613037939527263165065387304397704288663529380159319414357710425855247932618192411885076444830152228958002553175841798342827778864897800748283301978133613853078088607513543863569164942192349759886130322075708359858070228785865846519308829963947154707292984144092387798221415132158892018502232613077889527578988389539852013185397250613141372833761405158220050716044370833336205047602510257114016592969410215739938640872146153099184712375136913340085308563371199073416213896216886150528916892012172054643689432356241117277560595029840733307040046680904993191757585966041489102928500328474764581571600334995170602067982237681546933088599441429933966424870267921017947082151546285128398610788542399384476225123451909360559618001787461515278173237398264846194480138329162984759926990322897892079081001617849854329505901451518165748025709134840872673696392697350313950603667443482055429780461532256398240517625032282067376425715724931301962838370977236727489325796655921144364291330877077291380595255878857912626531483496913226053895014431115693930153816783963383885188542709052713483351378965809527972942916804438371713230533638297316554193103176074046452706451316196313963122926453505358377830732144453292407629076125434983377004442240290514386813650569881604454382730084079146777891443813129719733086785452416196608986582144083841354683992345924131746813165019485066929239043280339736578172438399154002081733870877447362868405000621515661060114612748093441100790886912475229616614526675939586877142254733807060347089012665684438979983695221836445224967530957347646577458370987830593475632453846864354455307368293229171517521287973192957144650102556723901195044871860809564652454613063264537895355871632437771335817315478785927378700356854006705911591675382675877486854821998852657503320490883943147171837951784431128065426002650417270351379797972231650386704820088354422221898147194045512631504964063154172506041855490151049463233517468617450493524062192093325781564430870091656589700057060541806366150321070496871707844887317818522943079143006699469721074700310274841278832728498637840599372964447242129761387772866566943138740970624422572787860287651329316514401142097497218443386086306902306109191521458358405549030417332528275451176833222380116564927878836847756167931665442074347206225553641537907604395378803012833397269236166602984712269292001390966261702218927602614882223105439410620752647785492901285336030978883802880569722365213932395997954798799806648776441271476129100194711293796710562344807380931067441463271349124231819080924850054560736004920041534239974095943954375232081378196111869861430115261645286456901421389934613564530945235453403661493945117743612948624605199762485427991871576061890561687812398291345904150893816794668593027058299617536550204717486372985541722563536675694578541846506317264762438093657619297557803238640492127835054685003057028235259401086426832911019700708492968537061931521091360353863113506028838391861680931723356593044952171871454087233706221388593121932151689262396767653758100144865890866324874384824809357285894164341595043654367520315213630799760596810625383911759964461130266418606808382167023591172705248930149632306603466651709849936979978773279384260794136653253223758663401374172167697406166224600317612394472641848834390916774753222914698011322176378742251283655428688619300196159470162435342499894762185756001049503009870359897465035897402494160681700737936986380001856251432756196185344764747758082680902376997136604990444717812895334162151525777816839425850882494837789623168827446430743463345553722174326813857864534149761889130371673246091269072407003882842583374204412507502203854420261212023903166673693813705729457389643712800713346050994110066173133004651722565159677424607856930428956120148350287040446896348642613481431160078506969791617105327561037168791214251446003415556026609079437807315342675726364296665821707367179169635609974077823271538875912383998279620912931059034899465017672066736166505501398315243592056461401551503210688752803069350261129177938274194118671186324507227689914150813339118842144582526984999980452740049763760012386010353291876809059505776398116915848005811471095881127058056888500089218496298817630391516997213082544854233380339833569295455538487971694619206755987129998756220698599187112784071143375420578528724732263660401824767346613156678818259506188642704144606233775410070512640020663946951648558758186337849979277604123913006981937795202244181758435784166398734910254305018840075698975945861937451864072412795298532032986524974773769204677358127795414879306161705493353802053926342756971195593683251344228460382199834758917442366896018737794745190957227803109149209360988550300057814967417474404209954511075572197980069287960765549209551247276462696557767138357903517709363624360460962759030097330099508577473999866155036558145035848638147095123169924158183588872395141251561206329478402483158766857171986520133300181652006714970474281541055025427284950557677212318996337473548084273123288693208059700556704438510059366009739793640507204949988932679072431736026754239732588479915345011948088225439895097559515927041012742007347539990645330955075243909250073764095102499544076351839771934396419979737845997244190448586114183521951608808415084954926659735914610071014238516600947959704107997421583260899601472391832774188698353668281701354155495803071041446595578353430525510798897542025709409123274486782074107978651883892475477022405563671275663653340542978000860704695124941419606774989244433022909466498990459898944064761404197895602598713939901357770403823050403489602415847038147169059436889780083168012517159643042374963227259293971624204966514709577467003135236989431437987316333005282667264617538650990693793257898176692674096362895685391823798109334482963646970154041870816392733032480055499971328078324807673391977700461975622276218082479176466958664846518559846203205131595170656037845947907447318275617733396785137198358937984467911676300889545988565566289277756191041309332281115756502157097886873343052461755110933727358825692735345057029253306364475968966035651470793256468424623278462848716078149061167906813796116839632641813658261576050841463817237747315892299735542607742872377305356214599328597624603030682883351289945614279406326936804701204079935663393961328503333892946809817821694082797816047691318508223548765583407215162604474174306508292111104769884697899433320499779743018346951318312440899214293337506470603636320596152375359782766690608732165217488502229311185103603128147978667118930834893811748542224156778099652042613666836342418943694375065174572692755027083613583750555444608509139059125295390343160830689995676789297405955558069143588584212345005562002401149768239386575208426050287834246547690971352017284958408927680124421355506263191626878361139035972560851116331354286412117245628718873789340470376062275702703129387795077319076824521548369520953439243881653733727080718375994110652345927101054635524827293623665187062864467981819441982826878568730439914659473828679687055569103662300848561785161823903399561525628608442964516734615993336047899119258230442192009842305976337712155012274722708503576617155569866942766345358734709186797354021951473828630175114893973583997311347185178543515780905455833890569292510378462644432640981670599192560401785415947086210191472592040652394006302703560250508915226934236460841159357971317636672360803263105284730358376100984399918853816364618648525437127627257723506580301839633705572898221076390460308695728311828532859612902442463577035605872161164598235284014856999260657180679297180619374024517377623599864607130722706329953410413234099285801139309820650720797213430762147423962752705193461423368105442618305213609261849186177854599282430825513488716073665677201244749695080722782518819636210089718107167171265529063836238119050171997790792650610530379446125858975550199077892257834996548369606043270075323712881731053040491456864972061160359760852561967630795699226245171684125713524285849848478915178771136355543116504888044309193788268234433388589792266877399877802435309375214534526907541055532777078602562862057606573589110693305809609172315846551608470318174819196097145748558697774901184451106684166983439023065017372913529342614058298976293032512750731928592484275286076496750575626556844931444433950865154424746023310884758685653595812189082957571035278348283524222700215499538168161727829696893730722670729964581528236609625456717940308259370248970902714618930872958936498895796386071124301609188479131407075865258040921268152696196410610649966961342891901325759941179281864455290415488279701559642790741411996831236697054898423357659667712544367681104319923349365025807205276269395923505571061056096730056636604127903292972643838633584283748020723087881969829339368954238913830888882829107696262459135786313098764681641754005415640233694311959320406890079939212243836127653313102397748092285196150586843057772136342504149965628860735667423515417253416660890025498925690711955870523998528501339085931305736562044344526708473602164028675398978849607546948207999947088020923361329134845269855275959790989641897315101403404844555324766382750906556731587655737342203478077891591943716853871975111243510950098062167859273214890257744969429887330400834710658521146871542260393877504653266479264256639309873926054894015523571529049577960550245516723662314172083047421812196878225290544964617057518907013989832535635569200884401752676650379932010152008591561903081902986980159935016380585351411202574076245662654867009486798416945159215579528087261865036610293929464066720207114993754617417763974512873596982690281549993736106211875035094796250652256120098324330943644114840176234562002392260483016078255377193109447084299693588786267887036112047011618879199618094853956203840926603143166733295311769939853354032892128049437105752552748091672028212814970610650182828468594399683475192243050533673416302483897515718449546919103867422050721315338969549869801714411430675227450764510456464374522241535729961932816776749647244168539048095649357132592424313630252399709738742227492501733543062475348504613702714533095264037222338267034301517545166092479858086854921473650972536711449781268790844198048269373089016639335387252652089317022986275051573138648553802775339965832189063679287131144650254717858042716013779580156384324982066742645321730582238502518635263830066855099709449414034999675483822390726550657376325721903228422231860237977454839966995872271210310952926365163778970181062967315464379173324754345980232515460843982277907555170564520119418694742916150087452030960590045787179102424847883891798822849832016323770050356853244013988549693340062037326593335576505416511966329118942671435439468458532605880603237548589351451896559517002178693431594712812740223939080751576001102816634944222377476549644275248551683687442408623136636667681655239046080551053034965741533742992859250095252300152485369554225447059627570278519325323250595047881874883947518191764837607133412086538997486422820573271020227077853116346930309819545461311707345108661636956556368428087908620430716754332479093073522687288126103349252316793594033944922598176763158365109303379066666112079168145990988897782861436352881847432818863557438951631582766258645849904179348970512072058244522492198944942908693388062705726365174618490285151900625382705918624222946679046359775237998959641589730972499587753893765018175340066134461951933092581558494446975285268131661952193866549024664325228323189463740345800173363123136248108678603893227803638323592791551886774336219947580391713051463119898052127809066062444622815547293091464445627945602108153406033686959222433494484442937719405708928454231331469746250289458389225966777169510750610486422488283137548673439598440806762141097484208851442582869905277549983463099349142370437581627672056996830044905705191162586194692082368831777110387241369615193029852385203210178258664360048936373810585554625834106411600737534712042121235681245012968416586435717533144170681902468990521967836441378448694534656567662417905432505871964946678756710039093617152763795875792764799399873428054599532740586371004794981660057167749922496017673966584286689515530887606556035416519628602821266456513982594785650903716868542386195884199791511342060133896143988089842804159026153722250301841305659211190158462869327028845992444665884161593518673206525516545890675273873323104545332894418825272183997826854065167932851395322124607876270781590702383401369143223940998385559985787124403921261149308131743527313994115428089497205739111935332287154014892655569011048867809965641965994359878827104348226399835688469762554597931371544473344969371569695397176319489504720537334190882952916813193053469247631916907032753768717887491458385808462381225191697033741414232427539590335268117815786468692950529592613099004649375187898388401944045461956795078133218492610452757236786265551833722983391514096909377824555795432362676981590905746901028608455891012919000304017560021226102625896720217051979952946727826904750885025657705402880040384178978388716912426171792176415102787264632220592367014568819795850375082406523338273049663097492556858481998122195760533500691499712947057070945704420408681820564964399598493646976399065679004502995135503049228113996847412215373848671050849237223185905589736255156774353254887140211053407116190163096358259059237571986236956458920664662725698604704654869837642000416983914870774259261401016704239232795491361734292005190132926310546077686599234275620941786858615454748195301596370250484793210187394195437264874540782058728404502033953882080633964125119739077671519630067070533344321765518567341582855001315830134961888380348207227038805077262355011893741515096829342427914122915813568157322644278184274797205382650444877305424055081069375110173430376373435626632275972605696736987062340942138541362563968662946228557899906949406587939671793134675962984925133617533926053823602602550598524180661206309494675813417693176728796999627246096187501702620162722255687206657665013792530198048604847305288011764906946209964641567473419932676964721849410339170720826584828788367799772242193480158853703471491406746323179493516461784400103447236468360355396589982608266841001967091115625718070282316800510622865783962281169347665702753429123283065432362885366122248573663260050439084423682703846296680826218977739917685351999726276013079058792850105064722027807279802825796375818418853659320151397515371910578999258027887984048257863002575098636179125620918181224910677846664450200245671222511907350002375565813998826654260729774986355574840853119699309043122422730997165007157884486832744285066312900665820899391897489647519554889933323121311871957313602185832214313190198041912166503998173562395413388225739036825274832398264172700448499324349581994270773435332320538309270848373935486490561010195377538721209806880720461385784986741490391895458841147374984417687885221090645682831083589492662401219023371201693299688954925064860756595617669183199405447313928997985879781090256338717543373303978071500724010885864521037965292684139840519237326736330386527222625534749238842736148222944194968240215718249785836941843318105827973587009602558735173161955443204923284914561902235581221939230727266965028422644710202580249623131538069169267484432331761611977521373454214139031733159454506600708142667924702137957030671560854557775753464195507908622625962363426707985565262965237984197293922853184530869424089921879221280359488685892973788695295367997683395831477844671013068454244145358391027177575431298866323744926550287283811356104263329334109946756532149563652465140520835424720391062068185633836862208235719345896805195431294253501304379226808802108311959792996459421904979846359016557516300091155015873007834181337019305703894151929003478482501986935386028445282423460070586504233133868007780517821322573158965401941441580782165106584687326033253012608272696798431881959182252446402823079688729764198900721068432212642397776667804501087935378819020865522736230721997117393651311052405730523625326390056342310859728128828016260291930404741227554274226616253351501883059402939945110990056827161753281503470423160235056860220994465149973982607543090629683008273658083522878907926088744100335795646166790379552422467938319267940028446678747677892032654168968908575740551515505209144669711190214435701318729268239991791322178391537424301563347359417461174738950389505583814631421495977937905530506665775747217741184681878062401534403730218769413402851881028007875286492198450572781024228570440681387899432925626364230937090055767091309279120666786004769401167568037168951314777686669619284129872712070050481017860645995739886860816225257304103757374337660803773167253022336783499509494932664509365604410652455202588997056099882662008785179123911457826201974961222249932684809999898600831950938911445745169611115746421687144041603923591264707184310375452362711552768191573916500984369812073411956662908291012104251097614365243430336418521023506522557330729537603517335690718199688476418491671392118861467721167362776488244274891393922306145884195479379444935180708992736361703731871997581932858553376859196449031850785281726344170951107869641031948539634155169623815184596436746993077458504608842814906534852231415409193816603225612415317166091156615955614232659642506830407218656068585074727189367987687968746043483836325324531156556795982340265078291085596069370150818168491742317216772244332810881362880886021293080106322527931652086176893113752011634928750311724452800283300389607844695566433416722847653888011021498061202704104414705798394869437859512862717025447516367456550167636842222907341081124012366422658764765811031817440009583708718381270361677653807887527825114699633146871093241664467504151297602132314846670859518510068261120144533156457956628458533169542642299058576404456073089570914856869310275079065465106047584457234426499236347615955909464726592845138172138078118051343735226619602200468626818240405858535966721896815176124834377037857720843926436820442965417645057688524624571380480545682140386412066791380446750449595307990743640446851997405233651940230936202825011476386169436353732298573660207847033518083021285278024750594518657441938442895362766661009221566715984028578789742001063324705750892651992316683712459514286938484890301951330776977794316457411445141366825975350816660337159733615456389800996430660069342728765791676619335936889756879030706463112937075532427525730060780398555261061458363465642615725710527816393168485176126491616567454570119983805305312594526270635811250604764127695691870403537309784199820523886668179918907372597448531135247747944507615155884987125255989491984683503845882858183406713517920715584776684150248776761273690252677090195708094384715361193519703573283040503093196779772079104627770575757541978438053080765016456474382479468894591954182659235110299893074321746164032035710885593638363887964070585061105918164973209953979987650617066926601805494830810919174044810529737980640626516266207132448726082495668177996748870680922243779083790040077403244919467587886389281715210206888365647778270014682090705005773667143687813569379037726334165953284986282290650290897752923730075844193434585049441665992768449006382312158952288743190235309711505198583566930096767231948756790576212438068040735906517932482209027944133204883403687011314420230328948584847185389653653958628647705266024502067518243298138854465589061223116379986914676204276938808126290670646786960790754960222512736134161496613281242343606402318019617231814631844087105872520659228034623448427369529165700238698440856465708892510307767947860287276710465280784888441401497929584744528488764642280383506781851709361051549057728453902863749973595603181367318719133125296532326165858965495577124931994227697511380530590231460868659994117789609147949736540025606379744190755328883384491046577073911936202721677713433508422330708308959620172565611543997678212577092465669350015739076268139406610766862658697093558205660986823158682386821945570831151471326961252699433271788562521498747264748916677330023676907263979053588627530148943809469603747085142981486538358380412961191311387047514542633523176474101442544703839505649347261634697171162848760576508786149951775845575723924789668737215621068607731081142335134042267340647186680592568639953220419749540265670509810861539324999117895226522537342885729749449947000825409875311970827606949434223957565317080077760402150891346144254805321147779962220723551396930685899158714618570967041804000079500743138039100044501622614695158353798131089493831284220187392991165969505520509318436870358460840276400559792891726092171222383438146675851695834219582827696694475906833155167156474060558508519797093391494552035428615773816615943262946216012011055119617131890644567456226967590277745666221533324472588857712118201454605695378579615477306513475686177986846761428640636740792411158823126717102611695847570115694680245059000103388521558497626282225191817751544541808330456901229094266208820629039850733794316170509821936892753518620444919288734570457917000757778920633339405029095476100474937858909338385597944649225407115577809187388793325375164140416207392500124030783016675239885784383025786452026856121208774985425896630766413926359161273865323641966426520553016161712506724073184054460271986876527424068978470761409557667744833433934748414732034474120144042426786238973829438501596918169259135980133710223131632433782109368413135773375657310771849441244760186524995300696268105846776829352270280281981729666984909367660267412721236917852526100336302517549025981280752388107305873810001287878219280246383692699882308035261203618398215872717285076501473645933636589830290035901811691209847596978447663230252684001940121345434804921890158473239601827530985682967398072107072608416202104549597602741904739531055779744113457362762070047734902471307513514706119465494433051874037840802284311495491375154654264879690713239036951166330239167113812524309936961650277192363210514456678662878104472601106716846075234991411609569481402689162289953255886886984570304622829528471129602751279378285286261856131802016015362587822374921261830234189578255937672043583886486441614259071078380343504049819733826237489412942428956765758210816340044508364711261196437253922616900522312235871560184361695527788686385931400104424327485824336638471737802087492957637203094844783128567521261400895956040971397390052203742501115329497497719907470825632758402082350927188830267025039791270899672221096359927307344453167476928940753941649137810887564029162780422403849143556650379424420277951081667775267174163321492576870788175337949528100994057525565094033170924501338895807744660364974553862025052043107520598723479841082019802134132602822196171880592074794148447518530402553063316997952926966555671321097474344539429266812254414750204721009381731396014620616213512653830555347235692454588233434695378169764864378639915558620833152113614276120370170621723335431516246968789413253662973348566793157468106755826065214015409247151943277300976600477626728808492461371875747789238242597283318867253822247952849318457404253652107749677396321111287385073970798123915356984978445736185184030374972069347757679676103586784016621576441222736651364105495164758237974795329504351498584353826044625146195605634040578904022195115766365223045856974803551117096971994954351653529795307137728782613557308030026776680527805250221037467278336129647689774644053882588901228860007248208827731829969050076268393863834099205807204577963909152404316017117725270476604936351559137390788175420899425413008147828815488029233852965078197129762450860946765587989597691289608978405475690047288013699602599357982372292998332734566384139632346321088679054608475788060028030738106051967063382287748162684606830179879656122080958148807460771118040863706783809340761357942085618071711585272071509569039418326859784372475612729073385023318973048641196395663579514291222649013443921163409077063812919281809318261014941491899072249149693490580918631484426245996971534573928244867497356224468382274878195515518794579401159521545154339263724968300338851787946268516361563356774858908991349509981039024181342195671135784096915568991965123834401945161049598326483682095365486038085945631260958510908864756193031574276414221811798870530479190971600099980321659914069497463553347069528262245787988753933284846130288684539793212364548886981615682959124716170110524684338033554134155574803199560370251481892492483630587508890850280156639047121013331939757930546327604480380666882358151009713720452932415711314170253542059859075114522834841942773079398859140629206191626444200392034227446894970803874325731430346010004970305238733807486167586461944201186071123730971625482042657202251744281264546015336827192022444938644729435353256693865984180231677238092213489922122761698413754092117700014540448648502053501306041922140240353351257656196015322067505600489821883675374787818514671552507168265998084721198577035545225222952457241219694782549497753279830774072018588280150505227835471700638226291409663757189652722146964081919393806714777117178646167553425355842789445913164647894256237712389252170498539373894629768737907894307113920062323714297891368761918972192868836623459075368364984321899272706628726748427943943733993458257300029495785758551855998721707308355437519993179229478375769105807347914811361376458883582127581984047838481262227561032881564659873023686828993436117469556181193708312082149578707419737856982853570151934685075621279128951654832538931002267663941662254335645938272308231058709066668990878257912381442224984160365548658357965616196222364564237526056138366437459928693936442482416204877234407836596509730812586561664727593447746565640157648236953051631809576721645851984312171642281466808987170407166332180103323538787084582945252735833517089307959778630495730239571011687216863916875527819101881920781376922116335537980114790778547217165340054630375388787826849313272185780666163102138931908417098631217932842950600188840108572249625587618274781458104596634577408289822757945204606111271897611151468580923384406565182335199672601508665759882139599909740646938132976080530924142257380161519200965624690877952093144243541085793789572931900199977124629568383510380660503978557495505363180893977185614048018768563039025664843658958192332494324463305573356221098676848690557324372030805226142421007953998489766171029236421268812435546416104055164454054448035338346783365918276253924086448573927600851321217351738459523948145317875346109819894839135724007927812296523803736854173190916805223114772979395667757756072824318390725356861560741202545139999954762853991349164522506517119095226447015824999320413682394568305312510720774371337394094203585522301943011957754152683385956205708453668519874070644376738636794899373210232012215433316438626503833722323460988855645033958253250383373468708240151385631679819786944534088612135806832468447394208613977858669730465466864097509620865147976457111872329628524289773055006499808833181685091769634206275709407351779954105443188612170502458202411230079502334935737839850255198406117677771364710483426896916756327866253572834457052617115390552625585769456477337045198451579013456927544125251375079369273593935446644404145783955416145696533768544135485948825665178296373308577535201931169461263106974072564353327233476056194852699871382566778247126701183445523277354614808895917074988588980976420650282578895858461518933089673795562830220522618164961599071536296918914363848097727312290159173781363259550121238053141767462373287797838099464824430407447646924651083307574385034849632465140605608093557607475499086498387311676532539980663173781476664830429761875401519010147833337282288278438516146437368942036622366588945466073156065689274137512858137713146715617186402755781505819132252210939986262442130182385677264227841523972899795910923695141595396800282355843144168922038547114222419372266099266398510355974242725763669301463824981362153632991732295052103190670056742237056309569423753871234939032074618847605985804309674050204079670944996068825863465950673272477062784094605575947837827988603487259387927801410409932699262607033867582860228287837562499091131019685513838563494103298904912329943126536488789405053442951047836394484303756489322468677865140008041203664919022508698880284892794193034127800251578369814582957773534029370532954840654596914590194172486473627217647224110223371038716116253051487597072402505074817814276604096821727335753995746058679602239408015628418806698194981486199701773511751116542638991381650331247692348225989862045593868769884007502282740845279182911125446411082501182614188702228595821631101182501806484455312780978553488021339024684637243267457590203505512293833950339862981209514047259229080995338909100708822742762562753977203794683272785734341654822604632528226315118051748692330223500053459663574694187730660320304541317875963111597605035747401741136876602673088852019265982211947614924503060729542106780186937986236266180462058488213972576993910077430893331325490974639984135107549010626760567279318940246402515749229326203902849853936807515521780400812007111175773173711586081204595552477873832305864070211357049111202375083080710414196749371288176703429227010753187600932419893429212770706911043615612001206070506565442017529960547339468322757828948903814622805914749407777483027312719063028901612631817111164627672840697023368666454196375608369548819237326905930940318870282419758220574586585457566014262773871340928946393499696948616474207128518155367269348430635377047722680232218600473172450755128300242496867919453355151111735975200984340482566508557159283971056596068093045025815244272168565312155525048897841064873948087664789328759428600165052029820966552077214894503741160238337345861121231206586759762282311482575397298240827408524197585695829489669950335200081044933417390752467492238402022125778111943844544215320041645250468984915186252047164619718134543741218696101566908695450178637809993681260601586497708901256752860217116860670795910474300593584442192785227845935209822035598373792311209407960306186570866075305255228281070018507366882994895428351337128102225845102592656945148811084946894187840346046984017848666649701959307033133459600335233504229439769719205944448567379806027085549646615283445503431908011820495795977629580246519162687637733968640369592474144577019056248614742983894745714920001060831874796499371734943460367354913013363126142373672713252005086715566294139615407936078382441193963377815623626697955125374673772968766334281777723272357959865570026254844024685447113985121783418602067088721804077483257172855917813336026818294437512502812155406288243031006247814267925734192856314487562510425595378582798079901056402585672602248000771844453075408570629240163643715883059818226011052826435891680898773657960665772644839453316918630549676077493400520540506259352363595637636327578792908681685906953727640782299780813910296628555428589656130314065903146669522203032954067259728912056275192813149640735534864167297791688957531801165545482458539855485614686748692241536126996483256317091339256762704314533932774239399242934651080664166015159032284817210759733416871949289693088015544974826672801558992295300343595801721270579099548956227543001367531669423515565720622120320062451778310585782853788359396419761482058625261488720586794176565683046807061996319137261905592498552693268527929907898107788075711526050239451070074482044479234074721851586151288858384717474682646883517512406734834805822231307391619453267736005535599471899599407097851789761340676663016426583173034127293728219286445406701148419473114717832628458568154948182260578227246772206433039664819307052712336694061746113064966707205734621573312271659297716353503779527972336480263999375893161289837705431735848311370228002234556305711586817366638135242866158862390831780844352238529163746988214143275834908824783414713052102230664712889327940936668546171209973655019983602908067746643815233390663304062783500652492112910134792709530066959497033201977843560389494505998368527389878787634791901836582264653705915903532659630625546706941454059900116254372306481438960829269463739011969426609778217324765842443675809070049571491160502253217015888979067908427646408794297685922567505415199378107772495273121972527339110096408372344321503418780433245755386182981994266070828268740377807985196560493306765307304133766045489336361714436780751448293335539494605808620800793325997906425307798354825276653676119886422169330196559728864574647628249637853590793611372687468612505385201450777416611178887768509237795358074913850466632969429108526983806846802455517487933055699740510257769126886310438308060416871491969633772047962665941787126263678755982522493763391898939986774106312569492196272262640149745497326133448949942567988515453406553544192144394906601801616396845455358362301228331432001653713628124927211737164467252774196435647639189017902417131190358748068047041924338095409774015001666875515075345542559168535745552918669684359053162346168141458283111088643720737099922849634088076873607247351764545947897390053228409750437046884576291043448646518467883644640267382410030822217878046899662010620114722447239307376004310185074694037357779048549319624770838619324494233999783471007251850315357145110307457580906725884118059664316380431543291598464695604832251575949648957016669762809420455222461830400769864023403512460598934582317855807410747541838286276697712767721169271863247833909504143025732268810361836034829610040985124557141602527715265528696163694848325879861503159056476821132699302379977646987776805911539946803433821869075259936724198662397263585838405130492354277683555289369655029860387462166655040587728556482544350379510381457362336581459576813813395783314437979285876497187158887428999291389561154563673504250756377428888853305951676651831519961510563919960605287479937998675514886447358445905282976024328767852065984111592532837522475202963658239357811361467251257573338254400411133303305276088994791093165433538223790654344409552380975565496318125025184201869729800438929182220593607866441902740996343594313487039499340677424667498784138431148983893397668989527155436052202099053494016103963712076634385813442861138245881322946982624008161660621711360285059352188064423093981942432595045416323278631014093749734844908901572987218328845837373170757917541805060606437503015626508050901245696355125991160362283349709122564508286741520855091877442070192246136708543218632494146504516639537150698472303679541082579772298217184099384044521118817059769477651456288129094630530531778773248936520556475319804334921302872741649457638199474411319224959428705027639431461411549163147638125958256314358361809497622820343563627847113634735541462286853239104449946501422796455442830507770016861848130986843515494420397696201173070473282377760905258848207885856853011733699579397477929691920908303094323830190183587096662251974433961290691236647614245462870595620431595121123214017486235425538988338514353362547652321545749648894638083304812549579017780002630282217614606239687235522159978102013067125354780150950050665059125697948271588284596753923632285584839139445773253489327910252320078214868068010735335979711691012489049528373514031620921566905696662056290021975991885611712871991100542851288268598715358668706585801454460364677843064625118377687485440773607622644656464549878949589623965960277258420988218818597368831712439454026609224575480482634900607320852268850094666186128797043286304433349497888747818288650223095031672062282394729113938369016709531608947855933758831140212116477075896334399826328710149246711199746033447990964587139656835874726168183723356443356599835844598382753692672702320802166938536822758023791487587200571058377524526165259694757982934078645399423854828544840264290934252508036706725179798447796656521377213173407917811793739772263833435027464128909311715721284441148657437942539998979606371850141859707840069302991459090220898057905447336738484695237196346776232433439083983165944212771683795074045708531234684176871657684873849111787634973561557547770961548149403388402539953427931218654923261337087934771449225875857694263697295269537224409248705838675492498935950140040283482184132320437336005537784750630563362680844441784568694189081006565657146370092191486977900405657543120549054351416091726193831318252154293219044641105969144273438329060510638674452625123253785980207435055178988772288870262884751176888444305557018651419986691355351483681525807631019952372437308897264905152689856112118439587739361071901443698987383509285295412326001000025313285419602458682674590016171203291333465231237657168341760870931275904565391509026110274604805893197745310913423339460322071198343004052476108643201299599285374180172333501171517782994688608795771313359609069276396237207088208477122307003646285410037097217264343650942758972229762289477288739804592237927468660664258688526085244131000381605276907350055905151357262254379521467475646012080210456208127329016471203852627701235175833421864304160050519868410926610987460165905392430641225173674499271683537767546149056262533022053026015969460545320740561095451294819718796627092067292878944709449547633831828323839234720313415762506103305005085385486546525794442332612730757141841505167302991284012881948743814668825221168771131926439659456727158726557177623236255613075072294491387011068102884135343923088449744218992256800980075107311052977186063818863307581030848932595562064079977438308098876041549849143747895238709672760516321872908584767333504080168327268286375305437657611679295213297223585538888883976209389452885883309893962915071490559454899000952808021328813913001377846987016497102502414343781064224153494981463579585652358716123589247297865311238544450184794841058134335239175065996703005155251402377009897355194428293248803656399620561858911886998411956110589324885569473945756287799245452903238047404652316293900322518890549763429568493335112781430218027066724285758107649541195370726295008255479176310049889623308731272523251539379698353515772646273896733469770361528975612417713297961582617030263889402593995624259807554459010470481297426277503005046763959371613182129533829768377133231598206271279467571507895129145292745377773351958863931098146583366392339706715706501759903825337830749541061701353400671536532880975430629386220132413844979591531417635416270624599003409863989450774009838888585261475290307034606650465035417211014150270957770329165988033764094325718939179817496770729598327772739333309681846410837437241283340164658124155104674633739384780869324014190768120922763255640340615660566337909648655982123053324046316076773445212577885284350706283067540824927494065450811907560210112994941473363643403322574262641252569491173926012447539603796423374600325064096458399121793667519618117370130806467296509034169739801964227165041798265095111622423168162794598029661722269207117901637091103655518843297933643548457035858559964800947528226891361733785444757101138835705017774470811498302261595172750177606577499141502403357556584424442474413204713346682994196239581502381258997325502409194981618000893764912323517398122809036187147635023691149779576115398303602640634218249800302515532784197608607936363400655759204431010518502883995172352103207562527506035126299779186848167196027809686555538746027077425778388072611986645211278060349088536641825071736768215636670581329509898844905364792057485020819006139447956285142428230622880250045081636534877897777734414341784378234693794811440027307366209632765754373139938287148094958156494445563832622308397926758771390165278496876080875818014931294034936826544862859193596671962782125959117346782031348972512532970879860883008727776289593938949995573573506256940736096966456123620831035933699319296720462959075639458654915959926353909512230140956756152435001178753051993185451595255915942711196977880120833527589408648567076576944575740519475345709669943288984728165467983824872526500962562486156546014286138614814201411355199577989340643513417778842235096874655242496106148761349988506964094246208994221445822144023243897884591145789046743628717608154669614695286123100666062202623351929616024367063008494333738741727053319992017284445993687102921761126054120891443876195686723983706517111312711353214529052524669725175956784640775322718888953866374794709360072744092568565090198017403159079820567636289708542234468485044250904488468716801554860689208023578777480571378194787738664179787399215536286947683405228670031776696841641966348284235923432164113863408896708531507264146764724803170712266832608067743410557272463668287376751280698341999715624322885482948510702790680554062543310670712749422563092136486321162843416749401856122184760199187566674704549110252288290485705239702275062056242974110956883837889098141987397991621482303249997722710617058672619581418972047407644494244280028775222586081605575863011420996787694363019691547250188085681300253545504396370887773581647391193828756896056956438540703195792215806911916618268287242784431665271690218606596723836006363077651750052500077214666305510803708116216856429921662642068298804876765242005278977046985448990834079718026876083764662082281767768945575011690574337101091546631506346719300342267328223563135250435897825478918661043751796379159077702777075176080051907321094316008726449467892123884591125361991305241311797890669985545653421313050028704119495966214311800952554046311942533532991494806347070300657062882165555126094566340275029697769803937626027930018691373246689311284676188382600959064276022207921804259374010802497148250689996839610394508015603532883666642558574495450544705519033354886077352233043601522267971557815769548609723302716682486583631144300964742272601996441265771501878601190439889612776383410146067362386150649937274525894657828586696636499741593849623452826732267629544622755778387719962708267028962510588863283637016004129900351906895146759331993859898610441491429857597908843261456833777612536572319986219364008325115007180255610991414967246058608316611069586414920373091866945405683863671653603659844836120671432419653268090568580546359015374170333392428083645866195392990435790063858509680663384847685900348058162501326929783967890081498065822563855576013953541540461820907450630240638817760633343698927953155972982182084883485829888598222910607168668674781820241741337348145255003309529125941371609224350656009867468067632581673484808738723059257435568814982878789419386373207634456196590721093285457838056772271995631253433681241603197370454895392943982920819967563430669218389664713372291588444130135441536640409751533709978842473335046075973804111075361002298953959570673453679108118661808497707421585207126699392390434718667026621939847932987545419445282343504927125914107733228793165923828597465520461762279427067429861234798971843417036829134382461495730861781565765870668008022951409930967586709445168270771553195100822192808953110563442013480423751274513322819054321341440103101152290319335414922976914920451853618786983827563624742254666109865034064158721661117025574640187492080544521513409348481387954416882981257851516133454403734953245958376305636652009519829202730419271872075711785129152150433670385911170681857469283182373086563236793527541225608184716923128858412702284566517065382607607172233181863276801063287499244827978729406951878357952235152794375228229479274594125497125748966354337032381244989648107465848765368851173615755826833729790485834546040397163070357553882476389914608437819661396249575771146003430670639522570139751908717465045161653627172719819538939517813464517190231670061921499355298898771260269127775451344164866888643425048519610191660038213830096015776163382484357575079585906991096981395885370934993581208891446413319762878064599731646650101648900092094977527589869538020418079049545193687575344658116569385915519265747658606976564180367912842209985668268851401621603822580647921494476293358926508273708161849683863554502038441252726962910812210697642522942732425435012394203986962110585188008562903193983928823793334631559058472847862923179070540540914640973660795992046993788133141264664817588338266010745469834322094883636393189958789748807353260907878027260242744837312375281085545405205980183883550143280430787167189036344717502572248167976506757985808189679419561546957797526008111629630234563577315956346461121119096595549865557734113588000267795234029220355206353079960146694899853612038450404328305677169540110531022172235961385568544745076695652473133377772464595901083566132517075144610482707069054056589597557176460832689686418090695989002967029245813970003088346042982391635930549904701269061266639338659171842867002680696754316588668651866056160388388351054076911181247144175469873266392682732142358309801635177570256639174725604122495422810908568373040222752046648677369584244797415717681558611312605207475750710802707397712662666648166859210366004441363380547663945434013838009138405822378610124909675843405520905932228575431912431721041520529542082226591137963652171887885254499507589469876137098332709676901993028963868516021774077104360720305991613373066984657415615723166343240990934428694832771976928830337166399836782243855244120595782230093354030378916013894928851521061993714422086850931484304690329181527515333751009842862770572536822767044970550530037767500016769500592362413865925348682588698063545443660347295996604597452719674809755499646670650623131701265404108689101209599594534609481931945457621200439088148489420927878579615319440855808709288048933297555173842073033263131607455879428506754660697262343302348631048248259484320957420491109369519293143884504191547767224775589223642463531664935520230130998616248652454694068257618999698536406054609166654392976600810337630740015421589332381580963652833572841479994425033847445580923647403158344006680041691382886736012641850457659834059321236282088847977941736101364637804004439790987450401718377420066731851365991319496233804641686917425807610890728104251006377828802756575623147155362255711830144189142343814115612034442123538101735999038217659685751732211975910104559021333707384551000747086783491881609514213225177086752266785830010082975677893854573168298575741472995870450071296502515535940423994922004721056606546429929710070294498880247563586269969109843948615873574939582331370113068441175913299896561172766300726934229254032449404590375684474377712325168400322934024303773012940103759599721783844737943614983668538617532454766204537541062978281257731722705395687525687983021621628378599921444420145799463855396450049614500651241864206262806379801430113618203513473027475810733599963958601675971001478482393615679579672244653868592409042712447609306784218317462764038630476152965017170856153309268857025551325393894813338390150309208281407316335721605458475596098748967632022703591482586265861905912089602958795604112954143746015721497340786749943376716534340054682055497270184102908641837994284645173851594970035227296737185995189387536663105934459942160885681058859069345831128895812076168351575632826740644403751956710885873997757697037426362261004589839449989046027068456859761372522475021386350625999324949841680052257148873474676180500402092875030703988685726246018256942574419595601935336589838058587416145300749032114644994551339529302083095250412318624744600379826010322061048587059998870296280504062201184088543476033454008438314687260678485540300664692676834867143371086877386811994119674220388432436863766382508784360747086328901010860359389630047120516180542699942661957453481881502964244067213223137833007170338643027773852756406045444775663695188960227419043855807506880329684931521559349590951977766474719052195565599421341302126942298481413135512907013908344888810328487634576346519757501196964362822770024607817553818596547884961240630660002909253699626053203599534081584256199383119362411418684677245456720268659356567885458792149388118168849198181970121697459594724066450656152726453791452949020899529754400074000890255018714397957113007880150745566911051675454358930993936571057962383104027421743748773810733274815541281898696610597528098313497549974483393135388255353028687270014968450036092952866907872635645324393991687284164443728924248985639104865379571071394773334051035068973301798303802311700264960856465247045382810469442559012956885080146526175571401275331849778686770184615003008259234593614832434505714210619646061041487315098445117461332656130752564123167788990654423040510508381942444796205555123185040644377462751171942284510337465483642012173032781071548086472121578111686107815706467658134061320110455976906855532632378142492761558866775562303259386452534202707869758779787620978068198803474395923461620479600164460438865705071540076402961833594917716516308878513372733657539324178691395393418937269874349407261642727726286915405774455169541867458482305581633823671159563120485001394714302273538336381470044601115903080395702789460898893669781261813032864326104840611126035837551080849425552674044488177419523651950270483531403728262938658340238443329475996035504344292515861805969367167648662786257290866345632312922394755025579255126876890293412036471205990310276889718051127979437558507819745242703483357982010205837967090718840179377583100161939298559122697778300715480521099562778023813230002549040336330500704011005141974919357130708616430485658137299236222436214677851727001791284369519914849823426609760219636276372238782667073281858487755665721897557617535922307397206737278160592035630674012216409256356918123089942641334861904399327608706912229106521491862881438734326125377052261299356011787014688899296280415527179025930347247458718561488130761541327237510589758904859495526268435256292038105772519444576932330917815584869493813762945790203680027172484667644733314048823866246473848533584807260858896999340775480140860848507614799734400397022567815460967324376878228757213139472868501957737058254404409334731654588927891369868217409714821358070054857400287680044437564684504517079384070700288653000237875413673754889514399031100158172068442097793586396242645124496469689715455892844219262614387562538683536484725114851495184190045318089842613291222669430098275756420918667684538502999844165679725474923447934035752598390930546753294854342958059964351341765728416364661898592444755322193151270069887508204669618106964841238091016972596478745056726690705380194227775488941585222092657344391311845925188285737371769271098053157263177091721898139248336333096374269594880531309142326159709358022473773434178373787857747463397809026063513332949101147174973828763513661398827012628009552281766100340305580468296207245595430083035418950814129074942690778487096216604039231784198004601115561184873630217818119281262360202689125662672746387827560297605321467955380017131002568044624816370503387456941567805713017602885313326125777774484226746340244922736228798116610724641992668553358066750312219073298210263421985652714584730565220559632887737899870523856558398002496973272717160091572208767577307936076671702636513361882918444782509146361763626565993976138472823587032335674017963317591852236982740509917261867718046363163278990664106058524630088264023586566364531526160613340325541889936974445969343295979947960349088433315517042627517242656910427137338388124917994959176604644566392762312075635208375880799270125248769231781551664144466181514792258783426601180657156229171919169432829455435293415998046034589029112422854216670055024265001871606661437654397804859927249874935295762151071147693364129351781748139385988400225769107372705625311359429836744488799350537731571289154408150863863085514597231526400757896005764082333182053274441513613511653278686041488609126154939896669762118045515654610915866299492085084172180450308734406855675238549706998984290969732125253671736596477814187949234787668629187228104417122242865739757832652233098091796182159212620971348467999196436076805182004359349798659511768433859776716238983423586360358030564914755838293553307601293958453587393660613798785233425313371970509263143799876418820237600034548395549274602406824501462050065347157347678029865529697210288340009074655160132045912043098366403096509813950924334948436067270780687419178569133327990886286064727960594609320093921865880783690817581694487807113460368999585633218351507742144432357743368559184532519465893646041677236013816712352165149866557208259187732800092950008858261497773044330282851127993365579963012957366665103930323710491468476602962077503870033660248158851003993305718004211378386629555469887806025649982805475735460381670023537356926674748184832170939077795802469968839499208446827920293542847978011773581915859522576256518470578267098728061323248437838466033179266161184666034011048974482962342581941633150827426341446310777405467479363025172329334689258505888834186833531317038263085793978085683742684146313274174852238072328535452834510195849776267394952879603847284138895290271222173336426075095304542579013893904375791544565575893350380515219917638538312223942998949862560448129917309172762793568758898192582632383852880230978134812383665152674926539069543248965082308473543752407964931712434845803365714796781582551829876845658117805965294457172124099880261168907749341018549210782671071120176095750507935323550490656890295926691605354512323161333911358497457428966978108705852594743194676533139127851678987283879890502960993704822666398732883693163648311447703076916739826043413255182769680766952803952040505698976927577030740801456481435400549344815742791614172252283045999596448197525019822102245188242816373362960752083499887897185378676993573338625796758922998819180124941110615206730117238007853374546438843373706137573335956489551526790524426989621326004680996422025081823570208058116222290275589764796979520415150657705237442252523159800395560291463900590246533490676888999648201401981964022067757294709577718972577347333686978612795482317796890649606237082845183619918707686931359152129563381606313420053434257874006804918854639980549684877068149571501925321159632063178078450758506012117647916489215584612908386876040251499354143358593517412980000441922758229615777691813674603835368043866813401793161592747904755643546028103425344245568445099705732249807446293239443881614508010308421385687052439590343592570530478588138520507177983449710966298548298254588522762249638871898795929226249644926535382739920901373839461220154660753423757413725586959662805187689500539742775705399406954945657492460816834576634797654625383499346890375734861020976319886521405765227772131029127614684156926902679552922573204181839899135324881830115707917222637056163677987501529051205922915823852846076388096579131973094439908787912006234470319574845441216990517298012406484426421087029288580104300732464598794347090300170013345897761343471751529876333759827726416358161019333686411071644243211636663688607715821782890774546345151677771489510666516157641775574816397496499202802244069296586965611693388400303465947368532837722279460255309627343712759498108914028521390718566076996497217429485195989311428445554504623183894069413587577357173521546140570471163541734868771905040573376187868053940519601673617862318585271074415192762728381667742183413609301756359666781407873548440110405930770416745595056400117601589112190542370947426588153263270024859238574092184844362345247068676126249516941612088707566762879519840330438057934714017328050463119570368383926014288815734381025317538434812566513243279167861195527363730156931101924546350306112546345066225721608652930850662644307156033071080264575037930505320440863762418174629035674859452593692060060277314383894533030132411825235941562375762270321190880689694621943596446702973633215829987868126750452345328797231613042410674911943581282783724908522675416039298488894425651765973995638858744406827763198355909957775557556464097904160342176873654632337593368863721899827154967969378671202689685446470658874670395019694695194831649385954877590355844712113986529420432265589315216336463164110647489006225415807320554289066821041831093576003155092459822626746936702563023146444033046079106798131714234729547641880401164382759195151498154881478783337972309883206492986589540602540165726511888993320084212297584074502948862967141988346845353798721448046975944183466316638735715906877214343633962186765481624128573985856876130539839229629240570512949438331353547335276744177531624194493550941729121536423869934633212205935893712915229897077765608050903565608405073349973952908103670173915861718668475305850924477053950657833865174309158463424678110413723985221901429781430918116534440309695662866807864375636385228075535262017583652095276513169009583532784407451662811160565942075597829662405457520541454577439632335175992733624042075362126273357447328851550303569026606110329966196854830380474316099120879071796939606244529928857180475093439600521676989107287806231587018960459694680239261579909318670259561892672532753520062006313779386545705752297263016661930028065871919610985154280023564241211844616791521491203760186326252801763967316590096951308677986353875899084187643362070123266404561323196952948684494792260582403891709876460017111613017186079913462469899382774947640170681858042601270138610089463675418720186175761462588873755571747512766857965952770884301587903517785472318132888394351535446376169058650024697102218634832297937734447431969775395260838013260263150840385995703997324153171264419320375325022397173358250383244430862198714450620994504475099461719021353041827434879333657889995661132804280121439351859654910261550933965638590220453786831264831883573377065365825876657439701157324116327509629316430421836076328305574836434695119192561453071228132747651352064478639615090335990468490109298535851493142463709357090239411694588178835451483808851102846477998220861473112733283411314658423806518456322678868524964488088081885870241725228373891178653781736304974023078568700282473654037949042228946846850041311452398880268322390098478303266839960036646797442443118045520895473188191835268928901726009633414400343968489778445025013365818116659744927387424520522921144646315357648485085180043434298131995229071716315158474642494211751052066460259065960102182281248213873299121522938509141460290899073262069259966008228063663164767426112065156199896710846929212305737086081174811920697335655338911547077437468653680576904387594964802818014322868300117301675511403225200339986290362504901172525710795650895553284800084231114499054924824668339173654492544874167127754793305390116728920760756022137889524909875373087341332583177814559178076607893542337707913630623035383912638963816419586900671998127139090358179629204405668406702851107932647354967302953641072981729186300797130439804555398213582563740273653443298083972467717908708329810605858467891599030634862921255208335441040601265049740350907000409602158329764660194227837681559797989153999664302056343218049831961126946045989538240866432173736990990550556089656823935528121994021742500002722850085276436166665466506523134945922228709599082387302185713206296165046001081668926417101238980540045406785969537513876265964747927961657966706276806714906374988604918652743236793384220399085859682790959854466179801564086078191252091102845433930931071772784393562759067616617476641565354929488237975539449235599852997508824579917841098326583099884456044457602721510408140169349348144211615156456703720507833335588816407806414615682526976751003918493469725631700262362917225722345704347100991341258077767538252873908386434810459592082391129941797632558429397719387837934709426329309418042921171765868876409398007221856096140599645596014077051939155729298240802017998257606842115155531604503983160329769661676311126928875898297309905041421086322538718406617865670326083378979977162950547156070371285624129354107749014212851566709222330000045264583843198630262188100131225179808777292057967269379771841011535792503833137820925356653429543923122044768809097310507414378126326666797660578750858765288573476414690163192436731256618655119905562447018671838098514928285083171202628618683589614222049330688900343140109109493814354554405864036922412969897183263910284903844872381427768096528703303854015142797614237890495594297672413519714938142745887964031011909768102487154751117877280975697870103415942968119483663676407942878019105784460907000469836505090237455598157033919988756111711124222157821483912670535370340948951275313744416838633379001092763833760649990031454941904544750195999643607129981111984952761051625786446740562123503582655370100402364644012373859185242423749195220819224333840280719282740102335853563110331412485666167390751163437975371741602136795746584611582481299871534142346779339746797214318116475245403261002748769901653255094366146168802665703189167632928539386347405538058536696457875717052849637443657005473091036359082694935133652514469312796114915810022380535546670080192735676206573320255504891822157435389227327813134553928988088962780077744567286124684714779676213570094039556491274201071878213011882104799309555624950080090275823657396326343523988523632610142544704948649262839740129144357254949278585297108924907976593657877386956509345566169737559423817567744341897747817124553804590718409178672747479766565655947214410053089275476254546253894803176134752237155622259282800399170096782476758285896731866297741433513626245444635911360144024358455025648485881713244611799473989303848703420904466736060748864094754101673910254648860391575420505301085513788682627424996091671468175314429599443614570550777245322609470410497887872404358977736324605702157556325268853057941690642156005530874701969691009600907362868142104638387412147957087061373597503662689993493825136095483426403058819026560748830358143029982411525832140772120698272552007849725975755115853038417302961581312179945430533087837923107371491163503086167566491817833579537998903719233851191115481098660135981679128155828999342013751786890540043497008514654180272925803146358432038517978895382368248760147444427904240342928341874753641213182283223525334496341542655060591698597854783289328760783404059458065667921597398611421093398273635488944687366073770539020497303248426211468403426965306300448988459696427746291383019342218661289229180466556354029460483438771777203348536072941795594736840813176641934590937875032252767598109289042275987244291399569967092308736426975050262831340613376254949062356614480359452757929712449917075488145999051675398041108411339703299240468544424466804426201915709159656681609832973533466844914981674724817117267101048847813513371994180688294702048461544608174987917188179568100292158678804050139478858514566500820864123891826985348154131168917358938185281652100944564182435536206460618552084754206801767050474976459958463348130203646256322551684143891730090155202970427803911365712205321807131153115530979786453834252308855878360458391469324922116223200946110738138056484224881405151518410468615852936940283102478892440324130082258808919597397403663318552616878341639174680963722029407002979908650381644190873999317427848538142397754464247986554761362200191975265403431718988734806038752485251151766485080730476959976486687836157053035399264416607926571168948336072744421881740742727557912773807088639150149278784196982449039774675943756375792626835399996300705189990145091458224765871985882807294734686416300402024962755725956252215961343142688112211785756192368858532145056584210860784801668551163452313374642281831081236319399924509711636577745505837443398221500462363980756644013349882702554093069619223210527511325632843180685330604934475149786873611784620750676303877984845000240335808957877248114361404743350294953430946428273998247135561465913234146731614489670727281367209629773319958568963740530333839284447405373896205016311928545120181775627992878980898406886814790665256881817818762135753437368082010980983621268589487779416310114851728223145432643596886634877018361247519774327861777379326988223927618962269131226697507206747971101128892471625011260679670369195729872073787223151208872840570424803701353024483583249776582327767779068701100201912174730443898388185448368694019861322523162908871533209737251122934761458898902701594136717929860416794434792894050047201459731085895567388399993577146190907535897769394905087861848569182506780968903357687154424648393465429870113630236235539238525366678657612123821602560716791521177506290483379576626383831617027338443956063013944357031656209315415480787970931111517426589794343635655885645641921024918904948131493329974716417006704190166507911960521748074608094786481705714464516002771317297276613232892155110253811133266415864866247207988894823919870196350686730049179101745308251751432995834336162551309328684455053145093841850275948795560033685760059929902796029718825437443570347131597150641045752617104292639449593292290351467260768869615162370541803345875270643112562405643476985501544331697340650400013444520502281371328712254271740711278732615623064475102792501025445727090128919526982508201655312515115836198511159372517375524975202600803704854841720376503982833414404137500732749557080032968224908279193245927820688443733877478404905670662504207471204598329386745239215450096747232330271039297699125291422475326627138340876501331827681732657813044376490931517180501582985437438403030597563300480935734903241161549033032493794063590921548604242152534815708140578975903772909220860618609938406608434117319092524912495814218577548296025113362760725555334438441905741320504853504530348019339356185558071583987730740038251731267420402870524611105753070476752356470917189961752618794646415190867709269056537282966136985563517232774408130864548947675224828635596305693520424097140121822969324235911773552084490830087089830910556736069490783722449457715302662739620506788918589591711387894969372226298640528273405987436758924748307022189463715817400199784525923679113620833581329623484560073983394987713530557834849169303525405547075823029857141951669622619069508020905806750872798551472257922030050055698364751095535399276208282665185029243079389466266921584842105856430712284946566110233987705048079371208140305583750202437125923936038791110247829155566717309114849419904256790119215640772299543664179514216150876547657746464894811843673733336249982630065557346243224419561225929452325244155902958808376668726577757022828431171845616204527712400416659602579101968931167362439004925987295984277778312391068701046718943427656323883654776800185652548754025269188289328807519948337872150926013500860292201805816094534147597828330520804541942350576236251274226406815918138611116872474276928828136110107421864071251229587960398464023138434778808541564427460857836422337690140326007558002985818465976706649399847073697200601282116911195034505309360411833180784039593677255483118936264055666400755914877753209318517258163309722298332970829619313363114558962494317419424903501354986536234231955512026852423985730887164514020133158017374977597795152521102044673061850565173894512379465843749284351142271868209356988833605548856506857594706223781136227036654606267537427925083990050920850712526406291716836432170017996404915685126758641278621400400799664062004212048015163406011133103676036275890752908524189552032754831920366688564071102602004277214082347200907246041624389596606893729589218488636417188260483173848551286624598142862882424688470049408722849110384346538423066783968212420184398705853567071500759704906339207191380666137388195738535359816288262362753445507072700879394512631031506381801185571203328983314330305468086850597136103015140991018885947481257269314099728738419259533185825541837245764571762574568670814937525882930913002413364390088612779385156078361205074623231021179681220691777773030983908216045431745305572464267686850700177824326778900772970152581260428000251886987530153125832502781139405952309182185540436950178868769454498190384029947134188486402266806038827249137133130747415895925215779214032835534606829202092045964529818197199428903872023720419648432152083498731816263957765952984391064422086223701819095100103806349955529079918730657285351555149324121423971630653450059450189068687631816710185608751948283958632088274641945727319878393163920938865379823921058640917097790034253371168813796226399686779804957480999106075809438256187437689283794722534335541490301844164284119959895459735547899700685962480090620446147433778586441908585432543144290156878810934839247181293743319488378500987124540328703015246148975850658287496556557345083793872513452279440307862992890247613902438169877214839091087844350919045733464012918309574610234911628656885559112591444021973711857846196054601954169724389331153375968939896190162421990371506343145230774936567091099756345879347305392954267754280403431247633666608791341537295192756400310915882103252799578302216154347960113949670266118047421668826163607417014931454705002113087726527400931067301366610391275662344334834583874788850321099840986080397072259624135948119428437490378641569764817709856932166025082554249999737294016611857309268569360010606941448361559851923602450881127387988160880242383926099209281555746788267294116311601028590499582818140214769724729383975917678480755175936603972706260259439092292543622631841967732484928901642421751338602901460525657883978399860207907856213688210977567056027813799164077616170882340631158415681102869435526458623672948587563631767643766528844708711922207515828884042003530315994489138629865531328450062442993372352077520874845262973927108726824148747112884031764575884943374237870263818793408929490968519251005205787934426332030288356281909741477336898260034977556618745588840835730125597844530227672728708962188839449146929389558986365606748014224258763370058100744834679006209095283491830358352866512149150018508183809292921064563445760319630748980058343017926409098850913931068524015503093373802963324209264885830138816703295562354698660578017884618898698386002613160563518167705211836529115039692062916127471702710996181107439279238160196490948369885026637377097547547741448179827778599010676579141246141475142864101223736988378984212625726099512288983931533897003718309864593436922192615091496225622668622814342035577504797137176298663069246430215517941362406072581462607573152216259166801632937625295299576816578279459502646889767392051146862088248417774837596678760493864013296825248172218848110288087242663191903760096551479001344026087284030355584264338814495378808938323905832445031218755162526024227186401299300592101629635153442961577605740011768790652536350684298315744576471009851970304046063441220891700959475183291942125772636988315895760456793682225192614698795239119609771557113830145523752133592836435024668860126570259078023317685663607318214787187238675199914835350976725448431534207991255106408207961879171972662347116803830895292440709130461705034558146600474150624717292794114286008273014930256408632143348494003788662493431253166232445128735099163259355149005784937821390598245066485847409050723979763469837396502018123827011866601274588657574293986014157979558195207896524538501415245680628390047265576658782643861830852425645808544800134354939864529445349853026740148433198254844343105267288556635717076575417745931559680406345294403310651095683275148947649419194549853164136540923267608516612620264827841145133809218405948064675521842100970927564890324670521643117022377978218269605828463042043544151179967116615143058482101053115212047981414683434305401532443205009060392828255689049495052570272905081340625944362960580827420083907112357012611131056801090485626760836861749774867138345517323772658591018282401820285089822139975587519778286706175467614798259726174049365915144766330596941012287955286355827865422950197957161037799328594269127629644386527874930151882158295639988652581122678959787068731193558908559998279076146554424058846010827187362796714812033016988555678829568573078464457245801524771996539602068784041294782394592272901073570599636473154458399705192473656265288692652790401727636120038839225234534681042358915406053547816078262484626925897414383373840121894311395990150099248308007405935045874838799535658385205975060259458222251164454245330369294945506205745614215698435656907770832151486666307694460479542242455447595481983429331700805164892029713557567657438768216347214897608942164140579242795257426032165878849397352921780212987343997869704051414445525140020416875357230031537222996640183832012989948072606522744843759368811141623031281719433012995237831642893856501881025828854648460065526569180144221092383359764199496548524201759788715424079180323681009836293585407063736169649933737404351069428408567898150297868427088716334456549737960540041757889702549116398399171137406820598063035256533834554073967800528226427301695815882092104010657167634872171132898364270265882584256905027970687287741840919578577976128106804190975955656600712655810558732616631822362453987993218600539416641955406497546972435275407999896445418931535309392467720823776094030339825096965796368000873853966668118128664830419576892164459947159317810064573844264600973971434995159134945473584620808496093706587795397423850774359930287546395889827018037220209205277372353596836747680748997536631763029946445676303298770594351188957126462255855038667917470148898420945175309823017227660411121603978177055915741826769207154327066569039985905525093758729181883120652155222959779741622022566431465688509033900801176384573542794733436826623458166275672878395147255841952566785713944080107686271578034017054615660024643052568559348017003684202478313308168995121813732667796227888256483117541717768886626215542497168287735804583288768022827226469046315127506454217716858350234366024647943339552019391297018352147391703848995242810613294699024637789785796380739957114161736332215575224020922316946398964144412095574562408600721729993282297862177182319252519654746976192473614697495419205526095603776017924172687001163063687499327408403692734052624030674635459460114874867265386129541320194003397649824006791684981478392794444217636579604986234008418082550836252254670461012056560662356547239151303464574868874846364110949652340548245394136124551802912385149932707451730566588159133397568347768050951370357645300309317351032990773248641638450808302262143544778159390265842122421462149598305866735407580169531095293543098905546477909061008798085160782468669896627934456647711053176783547077856840995516418365643995368292410568277976654379590394739194300756843579603548502589835456086407001749429555747277246547153296808542209858816059036601869523374520213468932554048849928454695550430158936644140885463042461768090036303344555431978909340736736953998122999228187209094790814166838985149439551271939567395999070867254020570395675207812348284585273747570957230945582870969025841001921031906607672941099102305997249158746764218177282653615845208709999681731800743720174700288480213068069537524592055074823338327032340346158377632001630094082499504855280141228316848249846917541854282982799221959816684213592771849383458911417138171536203841260490102568261616454032712570677829774716560323628813375838585373558567296011652384954544090214228860865877439425866135458212650119005408188345777787292972958483054063484055079501555456100162030544317210344121858177877408000840123723444423948399713124742727467279784751789643577295992538434265471595128719443509319544522075692802759010726046211818309601305591430695290757671273919287948269183072090662896080794961574499426874839001347598914996567654671040030103800206185744138614925903116768377633479547918117170859039095730939879169767374818746562438697230370710639945746695105123987640088220953989370233950319534368633874768100588249658287545677457106539768569297217687560779695807100962395125169006806048967226996678232360631760086463558112738895647322549470679787546780882292845936113455926696400351879268696097983952370813957015057899437534973415867779451435618147386780578903595513533920831318506661140594709577634255800034091194832918781177785187616788103680501230440607586850815157874645454535332930975603499086389000179983822751491807102378849855842073516514757714250432493495346435330424013346592601676996649791288126901889172683281917198330776077997767215659621303711259710496167855893027945946333351103798693787885734799258571728455816183219242678860803652338963522665739439589060127421924396741951285506170851542704229043002901322102240150689517980997308670951968296466903151977070700076368292915323674547050355372595302233633188149990471583331310847945647846173610138727697614151935433325308906359779163751157673929254332848516552671355588913607960789338374584980798872563285673379821145156716945983366163820052993802470244359677898330747225222721131700758027820229617795656541583080532763935248309762727499540459458792802986341449185816418253748766534384720216196422781322453290892780699971147772430758452749261923242679367355299412271087879615150163456580851343309445769315855874676318931006682004468624013856477455713344405549779793774371434475107432273100654607429016495628215622396803717621186675370898845510349597232919744673222752269366881053571886517292869662341126975809204923309700953593110859725511101334149143842321831432367191939379924808018431457207535447979880303905124155768015566206590365304516448567646404020238115639568126086879804811631354582309167882139076071667675487051369046835386757683604215775693659050355342200210916965994673341163711035121083626932868732728060126785821936898516239927466428826565074837597915486198539809817315194159033812592579824620378920997435807314574455224933988211830431788849152623456243271680659698586902957401003445686250874622708806703977765159890489542839787994182955328523152958873793716404640817386772592910537758005104290622127600563432688323548952244913969709043989138731212817405335756989609362533919312565846755862255007776893367130643130339065957393390705955975059688750595880335087562052854906125136069962373402297369698769699765917468052045018656722992444717142870995470961158216228605051946293893460717791279221373301712100866937883805921680156698240298743102440450490476913867645662086954221331662932646537507938687322962681334774243599907832784797353721080965193880723679578911282812347392220989246023008281892242018100841705807855830617952641559113357789629240334307762843427188753143185211567808055669538175117715879469563472511018221549001063276803439992068565472221885383122568161249438000895390875666880037865507164070629696015324312470638050106293620832312034248707011558532676217166590056241128531628976462029028127674011215242726957985870481327681726831789221921354674741246498596882338076841429925683435014497942257028799521909956819445958933129838788057080256073126273414952866550824377469459614075288578885750720699715491025289470528923946428367481166832448950491974259407634722911428879084569535479951317751235986057073639723075610353704380269727788704004093168266702818635392773849853855147029746959432547173156861473381743190637231583638526660792720596139198938078071414335599050731747368742583127230438622418688454649896531469273280734905757005759970996136814444773499755648496362545722145798743621499375517978845965784326628427788017273622646033524592181733093936372317464905590521139891690498943952974260854984752692841625879183947300845136450962398665438664287505317304732246919176166486573153667518419670795185397904866568462174842366303462562992381629014869553639233830831116888253757479448302639546721539724046572176499126758554866435118725161170450646345238014040723279548876417039134766063569445814836444288539085228187456314239142288172828712735853734426583269904143726271676033055145392379925975590204071340319415875966235878920235173222750532906005988730951694851302627467607036339240236003153838382109053218258009373451810270986544404572212251376516921195339358768631149788747384839677734587892677302312894272919922878448375284264839292977296207538846651525842707292156625712428205790275320873842904987038923196466191054864276470288317460656503725795835305100979490990078015477519914397885198942448694124009221482030569948433795519691359282709707380823714602848641619529571602529088018931804132471265299054357751763116526281713305406956194785457981958912682450173250061557065963394130242072814922535520213668617910316297291054179448132872978940493300617275269745057409455457184317534472468515296264245998132038219620494207946103755663680952128802339031319405408520339050693912640932911408335374628245271067782878630736250164306406062856871820674550875120380969726882265190184422344301072031063417580819077550680012735749221793361966301415060480333605799474603680898060221552564312065450056071742591186068149035039217167975833231751344037301219583076081212751079909021509489107867854663250420099730832431549265755385642132423658124344369728340732749323931035422046026512523746156946000844983551104125066235412443787342495541185772075209220349420477439511195939854072490481292949044901776772441150107387977671415903087123269493116374315335916379354088663149742381027389241633136141323835728514593723769917011970387308477204945253392769061790193908733139706459340193415551362435456863480386406855326445177869536398523205301040783205348631122134841767718910278519071534076976378786666780889336970669695405732260039338806576829505775708434161484805082156394444962474460840127252900869642024939851207807543530712990932854055179260990760829384855278091484955003445404559160704022971869985955522811592630987492565760195227202257758198686409969324938976861673959692478743160747323456255342164992974875079968466155876851954782628387332116668886098148006206156278658849339760962478836574456891055629930472836529151706230900425299653781798644408502715811666659391182866333358810089089667990879532878114251314021097316357715397552217518574254057702063315394211713591132475166889953838541146461982835514602721961447699716507230147193066919944582668779765997365244849636208527154237974676135301275683741143160462978443855467564929328641562292353734096107376885911422193969153836396539477170686224184000228476742621151496106842664456470208612523765065926188552039632305716883621572413623132798217881030866059905496066808839258168173515678468071157408399408094887578767206579233530382544296098296289302648299267199903138379232633251196416582726424813458713171174571830387943926715878470642652758207151344210590405819245619535266941466792738053561009899242093572985431887322427446578203560746476756163941138125450064061899873523016347278589767549062633694052052119303414977784998487528504454642447296519485835228657977982671162337725425408391869657725621082141219533234045643908907797811807576868477236824721181653672589457036072258996534282118480652703783539865598733977539641656326612788488062731385962099059166986494675188925425556677259654996824817229603020301902636525438646326931352963160905908873473138595475923052357316154278805428474873654005149329937830239112879521470035800715077281774453383341247222671328923550920303357656477672464995040355286082535080819922950377949899704361324948886007648563449976119893249435303831556123115811881816319601062508204812304824951110991241905478269584915549406110347223213558694624058313084539777133714112931626392258505072377137411130505484662196988650545843081918031951667301760520839731430905949919465096083235307796124571374590791047465160111695976690799099297680104867149566426082906889124363292717353163284997814125523605856970111508542067799089790597341233690796001277362919418355772120796183271878102757095610613831312832784834968553822379229371112064083112304129803680398306931229787290070664944660550023614657474817459416439602284211651676683631223435194146384635952891257293355134603144123673932456551597818250317398861059800371074107344674804210674836820865156449694662622223944089209328293701656775152563111541540718824507801812416561177913455835155648806058591157751253862669895013979189676276698033060060914549141306746805151707875985039733305098890143254293153981424067828309151668232595530728962616207585050339177464735696073684886074635210699562968262288484603189707097249294448979588329740569292038967472195393946799256374947157627109275374795391798120988652027642428729756229408606656785810977375461349989024300022351530837048692253085172633047194897707218767776413757348921647263227462288170041360084294577295348242349301880243629320935191380334214215173840468444151644685097029594638500800630531982294603960878802749933816125086251193516160907355301017827142429766060526344638674636930261490348768456936039092000977995040508550286488020171056178342228590879288700610715428183391749696796283908520690282782698114479813968228304713140391800126851819934668070992211166894878508856958182870044263471748170262876697456084679728230291388963638669589334474159144699693497184727933934091673967809835337333164870859904379918706163212457510277359228474353027894233703022750210632175876854853104220167961157769654059671236812695951715099814232711714654980050252323188151944892102628248766002875827068905869981274814531952790652410162883509524410179294404144966437437239407986900071215096146384203913092288151925707076678953579926405652476415193526197612307676601666480641208331273837727885000739219009161842680320241337523263692689650381017630601467174300325608508394658630708041741169693246591860532760784443651471509449008768105285749633424789073677240464236012726190177381072346540696662670230109474690990284758508257313902230928893748753597529757441306159956112286970837231260758438458842991000594219551114946114151942102336226981489191077850140183577066114604322025566763828989916163961595760031206225873072564305559560260111921347701513459099893052333407306426763207073636004972517721954795167463298872874337571471936725010456397399012588275360401834581505723542998379277513188412051689143447464833020450266837534142976005955286338141892509295829183525674646657156020562383041694966207883727668255994266386037914862859426718681960792426637899229658150523641575235770505374209567504067777331910057022326149928770305584324314553605938286511580062752037433523828869075489293408225833777695221980192872291513935281546236960133129519270965258981123204476143203590908635638483555290941226884364058713708196530345075705862782449168080908828772681154489910498371730367473691928593825029565406118405542049058757281732318348025819387893743612685748368474096141218679813061105460980355485507202607963829034841268283858949033133178647797806547225962804259657938879507255208368895765834469880305884908160316069234714416976512100135770177570747977012352284575585066671886936186625044299358805533996296707044796019126834587884031618401090021681612771956358095888011555511156046020743043909953815104187637651834731729207862020109368289797303705625097805658647252911542458060219126646018137613794711828992877125426049103645647072586372506762337913402940325923489002743872896480694802355369638640786585081412868892113593271364095876740306479251619409522899205500934999372278194524047362550290852774987641126141885219118975356154618373855211453562024172893015335807725687004323473343309703860734324762456439129708311440137173976796321050621804702940524815001185030542561824635261197471169951524197329153563626206650557076756493390564609643928460437140913713404241707646249401450831050020492075665984724838860565880613772857014125638224491427038176441186447171878917879762647115178944973823676873590947864279121368259797254922473693028888983740974616170147336642112990943249947313438421002937406111623675404032072668055015341507939524830504114015904638275155871898100129478531838802940955612400740406868685170708404279025213560067494871719489936796208592097709153930466932691990036433603521287528701259651651258019149279275765935074124282909329159030262687021586036665451695564580616924589890154236720875153724474588830329986247186963125271096302588770948189550205944519455187180965441515367117769826278008258397363694791065612211253497669541467795116178660856566655860996487679700439229212110801946761767098909050286608492855535532213456879726645377776531481629895850443795263740820305874675276055513080835092015173559089007896172304934278136334096745832745171841996087926364739680735123997366561970158221111604207135760346089510939834941471577530050793640436903790167861201811425265103951117016535150356580599194539014776878248887465881421564157996216001084488254355393199899618609901708042553851597674237006972541884805455901330479518825187608766944870273096663908609353825332334104394242594519744783474069324096078704978107801182381592825507360441363910940973409031302660305383613537403576050515231410440105918279889164037802515887905880911165581389554945110309895041126237795551771894469603014734010367567280783733466509241725766589318583014819408857178111065369167475742248959053253160450412784606540822599615037194668147213133630514621960008610305956964702433629175842690061407872122136975851355946764948657263499755452512991099644295333322314719561409850580677970936029080931931645670914382098659899008024163429720578937825471018637980264198894322521175788837196329046195874613420762342390966903919401718288331271881028703600373209832100883626511025434756142743811193584464470094619889217922905686290506667053495393605773710971793963837823101703950371510572029736797216670768927511132756476916172381533253473269046760029986130789134907139136307170863850331361629892769055803822678839023336322965422882008444058532855090778920932118504457797871885388788687060781141197698547174318261446396465443166911545543411073921323079955331902787857364613520311566642393117806560766398385103056326654231565674259527302388613550515744131701180661877615251092442916751601932439968007998522140462432188319386495221798146508597578556468798807496973108479340609412565888637681918597719653416505103584321911890017071451668071229335132495310104507359590746754102372947155396028223728238598524372452899912147401315151498514727562107305920574811884528349645982348316069925074922888614300913314660845179559318919740680230627324493985656539163813606480941042034697316985253750621633168377575278888511543521785587171580337678516799644513010966633407159105411844986179354833633039541438050825949475761231067158553227174312430507184716805035196079271318021972391456719906737519750950954222604020105529489080609455456638143577632634484093566626266927161143389167295095995615118142069185423735539057725028596965009760967822680870450417969888245845101704388331260172185172509819674152877836327638726445467764317775427051566499640132742972450956460889327156639198407075331908897738980885125744807564033318234407316172447491345370227807269242024090152483518661197364355450097998282532206104769567454500207427966532822208009453610357356005510401599462471834393691226605544417477312916046989227174105981327546449321558911654540149114467281713230326815733792453731071050899767909249476522496298652848332064990854594414064894031328338552218532662879536382285294428531883728193242274760306941051312981520409051666304968243040132078495451763945980156960251315066120563826118431270928316822996005974615486691084514873761998657569656391675338572656018340318199890824210331306788230012748227846733750857119456403753798505555233594080980985127368113333974764844489554994855185242509456176322542424944615510900111384015736739820050493373755116647829876573632593702959269501230339456196535612444466591353288118847191460688098240179103452675337425881935569151733232236750302243896865962765812844056954926821170491011679159673445972194198004275191148803243941584527863335483651739059643695724393434111315296197099741052766346189181005558969588649003893567076150650429885533613427975038060726771915194408359014148022503063937881429123959624034304436305869100127529212487971125881736034695980844890696782682059968983582071123365639401930057892636142784343905552502596559589282212040854820325449368279561945265864457632133299492493677246730695402525848128887618744542559423024043214914846951898716571311469234265732825499198055029974963445272155000278559770933613579595004478949525664510724565077318385410331639973313621507868866592690880586676561052151400325014582037789865764765656051971151844817198309079215689669423216764740828758256246295679686888770367911813758132040242331796729961482423075262853383094645409724709725210474177738173755842725643727649397919793629491806696277065470131334962286902123939735383277237683395289759382459765594005616591496087401351020476981016043382658126984101072557628205263902317036016761880907162534517934453991342511761426681499225770735104443560007072713861827805389344335062427947247964143681470029017409740812672166911980197024605393912886245996951476779353828018787637114703452413401280697721200552846740265327496180159965964596122894427986789559974675263346085565301873522684119352303462058301350970718987405925739815737752467188539241401385661083954053540577239933012561343545586154640056533807094780124911750729538231802322833539283474925682817252579674778866350694158767977853670524216990268961872681850705635238114911324394829305216800581977620481229687638456660465872516240158654923652330884563764919848056247096861317337388750401555645585467635927051072388744175814108189025373361643361344141951517271914282668091922515894439793139467573733726866662832572905592479558962306908601708574064505597237379969481230061086555984307322722564294303249493225140425537916702839352539631678018148583412435294915145146403522587755152912581723695602460646444212038644481147400055185556373355114638888999614722714669422729787400126929238430431502083826655696247461236937429376006496362194528080620899384704098770909063648292535889631284691803073494406378653367203484475133548513408811285121808446403664881777858448222393142443480656231076100570362486391479447572953564771540685667574239455527639738198383266915407904736649248640786820782593578193621418916731892788383697479645505097702912557989570471463757904713317714783640902373247571986137556460095424276788774696667609828457187690665543217348260010508464017278190180158324467096096127528786120356508534165147674394828842172471154324611178098736128219528923408618436704987344624141006303959842651170391559301078456785001171860159038416644022943837991015405347599842524278886036156647120025664381833379452949979982136589164937940975169126511306913687722791506848062750283005936665975706977611996386922156450545052420230241457786258125320036601392869294398705740215303443509734956925347989991712540102604165736124676331117038697330722585007472220418011969565024510420878858468245454938397545413115538176559931783954725821907019389570670440232110554221537102680138532746317707632821895433013009710919672254732577863388091138404635606011281207803505082805463405279228714267903244138285421366138443667678658736208796720023305790187651514411612355673281307155296512661939213407405367292447636498249154535874954473153144205066686998977835120125307162861981072104364825920641373015713111104246242082474275552060887379753344780837093629625933304554006982246629448194598561454646847628376619609383392061428367651670454525795755672586706282523294556737387268865790859173763022636856793151351288949255337144238735373440271289054836804982807919470154040563004398726534692927354481341999283845514625385458706860131194630866767965683246565530020320934910695829359321008386082223845549308953473407088904698933139674944978037903722297926482365990557760849572199468704477526440809626318025586258620230869480613716029691832351261489260798446374983007717245524631274294443138464989996497607058632066009646110224072181766667898147164317671636795492807712953829642935669203039558101335352101991935775279800625510986946136223751230153436266987885899654602798423044764220650337232021905741458205293303412643964934309826204534448404716270035895732882760506711183601872140136277294558096812579171464384798670104836486240193368261316046220636690302213839785847452373804616116469735015979586650686628584302603098462136367416591030849669904145466454206641625144375597836984552811176724179217263185116967459387680243090950677627849478338891005212918539355060963291971397756183912258655998818247675269499845816007161296590031314614240240456883673259419675407013940443755792194832238017617407444300182491972872209986236115718182300607743109486385576793411449808251356647545615824924686689913422453992172413093506840561837372240157165390309510266225800142822066811404308542966823511347170625376490643849684989097327272216136186428453301122098708473791559224781625333120802843800159034506308242501200702013647527607384042318050232742509156862065799369433615437824860372238409420331753223618119149496937645651151094523789579588422280011044141668176486694314509806254260525659782885392910737395602635403027144135311180323988303830850170147960359801467745348306996711433039628833274464597631819479130064610463093667017733764859127454032220520017442608879088585258924686153984653988478374608619822230755139295020665947327557217059951349126958734059610958408297792669125175878809236200553540729857894264225939947503611267617355243277145392453744524165825105252705577897764533123017598175951385549735598006122499471767457165861679909594254788141365193676406114578890738116234170268184719971863344790657932371126043049790570213180657458102699033202190692965185690501981606503385178560878431081509445294212370915870675321927174495724047662086763849108071341548060563554941108019843003473253479199482860182146954815489269422557834183400313028503435537656565481719421052533685850415745053628056497000482422248854096894574803921791184478375585952315306633302339601348853205444734444111596379221782205620414798304805680970539137563596311534701581117720154682720524953005480792688676908163540129776535182633092730333861256459521395874549424889671839543221786941006761883973225557398130873086794957950450277476545532716877764246907775271349889537316952228004478585273811830649646147340487404286013719984699971115834647226915491049346522795415665272913310635438459838994712019740012193164941881273358681271899913344299603811370314069263174764262564309739789684641823104427123980309804493805526455238251753875463803493415543809865873899961932841557379718312280700347994848782059137658979286157730194213290287416506554823937682402194858826163325587468475367461473931045412913634992260850370993673626285326819137173693787232034155284244048348340015663596308547939648028714170478900686782913828612162193957410044904158758456858767887687642401879906967787009467872938890183303962047654584117914852035376911599586349114705731309399485234773275483380001456383497167484216115748169407625296716757876417555988520462527535571339471425218188953318167367781799944994379685232316662316423427028413014981122443011985544870139040439227885088718056239823928493952397342328902067831399708353112015815656907167310245490356827965319407491547433119451378764562718386215989027655883958766765632327867875892577114048387271179415956174881036308331117170179790847592828764065408947278380819327478185782552315967660208561582014036602959524489516574787694180830408056787708949497831320063976510230207829011668865580389035760921665063996935574385729671583442500309459016546190010415819478313502996202155649086554120202295483295286749952963886899235112933635997407043964116219471063101499297313631732080594463965064719881828317450506072337378093182966939093972541941066832198337841696097641237463883769510127657760054627264534456672566439404864467226707181804008801741698371572736695865621992929374780311911759768559305081398132467828948893237060641860852630133994918544171005450462753111854461103458073470014876263283094708577079524754406296201684121551824809147433998981312397489733121384193281034866250806895140625448254123160789197829988262710062203318971011500677678664770397734193362394806697324629817244043175655940129360095266933808087712577065662055549313822884542130273583950872365039180515241143281254814989558347358598005987566936376864921380243492795595758048247227081648061584661297508313078601698617124429777295817884331197788764510730623418629499381417358556079881679023880434995976051907740740713661571398364100190309912636187162782812517706611312777014450088721232888600577744639405901730838151971395951371634572611699960763893545140431197925080433667363803617073862658849640969897701208164772685890862965778962902066047299929308231659345434188988037787547850560922032930380803889564277002569501629315411580946413040085763555655888889175020797331870557578746715665828465985055551553333045319073007798361653613743655375394906911385523772442473850894910310086491759097271606040375355743905248585288832972468236378496513321567624508148035477039384008500987014746427456765789386028734312024456750845983648080882662027247539206846116215692277373829216611041586647098514833315957481725371713201277922950083122209098120308895915335466568280409373837902448263734176509900825479890132221817005788993744251273511535093482820157339209194581972327012793494888256676592737899591067551322102616124332316829238776807008306055598788148718093147316586988662168467193922553396731046582929384916098160770921397588951235668657426508374489325964573543480345682878067207373255411671002103189710125433086734330687830155729773181824178379375116056100759861070155404246751262152291232423895506195189894413951700872135669886291184426524868680015607318487990188591823041501709216205990090498013425660298176153826303272090703220006309573733913189855685386120438845790451103182703360371570145157468556492060603275673145372651460318688269171637017349845500042287539350550039855264660401938344147885829631737020069761393385219306605252794373932352309177538111029493965168186065344726401104443573503068778260061712880484933387505259547047711231127949932740019052743088387328882071545183143980597608359656162276802559342001976758418177504930832995176625970933178170812415282986813520311485491912370407712150267290663883405961649238499914815633371225142365095622144266347923883901016502570855046314524137679644986493754711244132974170165721166203769611157840456124892322465103516040490534661442386657012610595724515135920996121992611528445480401742449692674989117829919502698298443409464411975363024414871851177098098724467477188236689433431188321254462317515010901710614007202277899778481659779007898652018173947688996181418289564947163929635043454448333668432783451588412133604866760764400286665476929112601915978113158317702947534312119095312969818762777438913517736819874595207811937294770221975444773796029356559871920483254344139950475560060049816016909302166314986529307706504300215474360911993511517009202571224540998978139725787324618687668067683152684138631991592727403839449314285191599983977333968146404694725122661801061648467839440741370841681432532089067352275806919486480981109565482239443476668219824970710806242489124162314408383516081364068595111181399016879785823429782127747066548273022242587836761170469827499991218488294088661550777725285241196193638900699074410149858685931066699407331376479061675269954706832813325906640847166873814179049865465961755385825023892485513111028739436140681208459301761512448053819556404485802465914892619641988093580645042477798531827452419830719686753394607116655335454288567757501179296483827389240649755052963268632210604316993728622426306498208762611727877903020544103476436517392828128001629029920124050809037198640632246316544413746395707094229034946628545159937517495503173592114748233013836127462775765007093056700257210656561390638138919904301394960421916603847992822110133541476399596530685201903681781667484230268205550733736489688918699284191453103157495012521282473824683687454768706587003431990353061241782200835092701898325615857247671676256922813457134853705285496346483118417653325409882592561705631788455968250456836462370596386850162671919458694744875235274979769576839997327361322843005225658928841511491430926177074511045876408668118225258160220174499854827162380033803446740325379319972629751671772286890573633945202858798891120442817911177976814383489180367094958321159228192053837543432773570542333062891418827673642405735301354920668403899564899321484482992026323808707880521253418764257500548232862511455739963704538813877671253964334039856547253557621657305798148179700090534041635838773180471978573985916059395596327219958651864326349325208805897064107169998202809335234267333474466452526193089450786208789103245740042999224203024690666823739519917109229093858411305502089325686755473710366316114092235036529898550760565850203914632417493748865704154518556731893035430192613426076931340682233105817903657411512989803882901413460520078367497560118805964222520850941716960521003489035540521496372065360800525180822712077257778482918529408695866824945933941579542130497218981591794774720633276954033299336481584244982017401470310400551314862906498562785616677899204199448209400507062039517883578102410721950474446257157842343144729855598483901424043483842943695041573861324171636639423468724464757004838599977929359009205023278993390430315369395003291538244107446070325272626693467698993750085451301409707889173709255283852397140249448168077745515744457059899040029502206541710944953472539572984189079852659565596856276376682449390773484620853398517647624729122310820731227646786465598781032459644220762622579844354158536623873408170153579010000479504270528642742122112971003418114802231320258123069251658748912584346608194553277283506071806382843745797030955662050519094380785513364980153232609748067629492631822706008683773467932917842020949515092079020748640070439146168716319206340433994178390875819487982964121780575560003214910107314434201317822813795269619337070605078979910872953619594491003873456499307251637531040941722081653224565706703573061621959622815767485483114983538277572022327473073605720408263954163224531226960337287264409612876522351202341977763487498660836346163343777581402848865432513456380643547962339625492040965604767501343421898809237893567363280024800275726661132787876463740836342557048140856557958514442978792928261322800646612639851051036660235474992269510054007217336249165194811995732219678468157676749864188375825514278101587969573648349388696446227923206130047414833226349695005755879754464740120629943005072226039614113227197935417345178413189230231234053807712796562372659453851709840192114800505114323580127279356579934019404827473125591017644457320519800818907879222200618972733743593546375985076615405132962762686652212312864212975497482879742417383627602599091582130158510699793505928402361090774387039971292255363271238997832976001231921346375513277548860724641836307501007037241392226644334101384643677887474224152701735620214092036274017571165141524428874764329088789934679829706148501940338495060707080324259273703020738553335211123202658210841241669803071377389350348344146244708154037660213773618768662835178566825655994659077290289186391084285561932099633067832537220765193892447429609391479832374864782684963533649107462074140874767049018036840293355859661211140292112661290621092216780435902944525604581525610994174907559642478572832665595304438875867853533191196333385644135429355967368719973862876109287007055985035653250093269554151623780616592849580133557527481261941896050635612179675149717182891677898941181356309498198876379625257460233426680567057765820692866136727807535297106031452653489598338135888178363693782812127645211122167277439199451087951257700660610843446990896091666409595701352751702134411640904709930801590458972751193492761583642762485675937126455289384409489316928428799682693195648838408932500054085428478766512075785809476464746591263486981332676220471621366288701031018388558718830651159356438268629551649367883074509573358912055419738433247250237642776560344116931936011254251102054700109522159255715184154751013612306160797285305635662598388855224921853881994100795730299928073307072191025021852323103212254491281463970301050979177210662856664464753379699010091220452978276825057842237142135251955065735576094366917046522223909452233082321592043277984454005742581529312965542217444865475907674835614275681195122950726966521841524607572643747536333857865900693924687299693331157671209692879031738491045416768558877343078627328537711993536649236776231693675493394347860449964515637764954195502126873363543855789867535084721621087366848049471318043559998019174287294539461199180573958957350151176177441696052285166234078352276331949703359273183509286363988451526627892419068721621388016524142467806787586893317633884641034641549023190970426926773067848019892748968061575096775480989789386173529088749882287851845218450124261357018444440045642529946652749260075659600028075392330373917390556203886177783953050613840565645825392554042367926245483870172245070819853260016380700573713395256753321141786840637833334174684267869786138735436328483835882544561487128640351347769318420492634255995597821978766209129788760420171700472435547316056556456229475285847928031952475429993955917828588719182799310463357399978260134207987689088070012183209283863096925644868004337831988740702496273669796015458503514577938526578856906576486356179205221470119692239814585915524338578937543095139071095837488781673874983433696412959139349228713607200625530439206090416184322609543951388821080813642839080243385175005593119240936883782403250051759775485339264041385875449271120880494196853411542296474544898606456406343620219962754002959583460190521534286876854245029619301439387659953460406712908123998891974284803672293991899573425309682682139737021991579292336427225972227288580064571436881538498794457659353963318333427918361550894049729465030788688795202203954698480324831081353746874198716867268393677126847876072117219455978734966118762069173656183661927540854729443774744673915389255197700053110039990982294102839391783231574418513486922842015059060412683642123776114082382613331022113428700538012886599622803380612685388850870810904098593124510341287865276077342110534222084728824221465572083048764543721239927080781050790467509102344945842787172588067195184207996326418239176460703886052530846839807634647165002402547142638663250501737639210592675805746841390579311095417493161563247575615321881079217375843228337019051646087015976734408969129147826082642094142194486103291499669766224854577241334837718024764975032929964686597761778082118412740979527169812462331937504547608395539620148937551213493536412397756210289031255462715146019607841595685667715255878251295095525138761639453828017560180084473497349676969894234892745117358014445630800122944201063842148115348847212989175548924894606725244908550007064918154424198447361693243446788319869323488728391936293604674953836401244985356905956156215694122913434625151645137790907717941141785415649511959381259101965973619708830195670893882435177131995636051253568796207590334665563219071236663826430263688615163196280039652579312239070393234792966234433077784587951808378952189579471496055246862744518139569061888889738648247980854675155818652349787429072302935572467726418822816667172169101429694706180963234827389109754040190900672564264607669397635168682104822708443654602793233231866931506653698119937651829036734139419391971467271317819945894130412220555625502839815925422716774032918338479068767268854274182742077599029468363620635325156747812911635808889497778243319822930063006973038097546660349549584683935145643126359918177559872363189224180978153051041406098972209020281483786852833311728663991814503241141403115499966185020384959942497016778366769200677252108241601703680297039351361176957661830302722045093715737262374885023557381085086957610849044318983693588646196481437581896606819606595051916834455748053012937304654136136570982748954821142116638277706258770451131879765574978354202775641929873577635252238808571661280700759453926486396961190662295607613235491280988098556967557714126474881704742550226864047026559787487831639914129096021061630343858649917143128075602920258707276293682488892530122938291884484930456639142037968514682189611033843340852766396000208594785897913058915834901160323539892308757063600432777761016969398140461210177406788570842720858199547443828445693374024245900206628598699210059305822410497918028459677155447616680529880207870464872244487874233495136981141001026795296995840707204643011563558524631342709684063043515997502205389608808947619739874516974428162168810615004615582770566371258489021640569085941809999626079092810341833380208605440685789733427957571971949156758604142331325354329409578771189535484301240975978143043949961480827912362294646643512388116225205994529819821516531422135071811775902022546166075425848057149954910127965051599486109869001343753371483430136064188365872112040304881256016104034369242745002223908437756125659382616786069001367683303622680934857115199585948447299217459448264929916483305002854427318927347426261874839282728476319857066255768640391465384986707260098203034865473122043919602019372195246972604733779164681217793385817110189418245008357124061071235313291821373000053350842007445269840223952314043910082098357302315207316943965105607592622715547856420891163297628930954144560195732760768808939904159189848894201354061928726791875821588020818970901741990703256809521088316157169982570693517975039368487894484218172198652000558940097839853093161631440122323987119123157238165289542668988129432725985869353464762318897978233452488676572396244618628889658654470333820296020859478187921083198662355142077037325955359264018714486420659541971432329793928364111396870283220307630283507540677377220619127961654577383701740977042262486730403850656144023379916224887170677706104676145101692002060740448710823086577390819977210300979196344638771711435780337826501020899032038155895518922908872759622905807595417959711970729130795926705349911914334070417723899559827074824544574504898936565201442599350622185322079955661011471700205743837751915773178356162470567537744956774447613857894321351714489880053049313662619742340195670598558278633103225574447052826899914193218714795380201227313725995750513131059742327347586252413428819245440921047138873992457297927772277368904974841196092602049672024656373025357282771714989353172906010182485305993673368977896430705617006456982242732657329500450729070873266876693572193565473748014177688260746316206426095207034378107975940708376885649296009680359861177977779196070111957959223407571956334394372574543955169818485602318778305231219569408327787541420159721137338042870140700350774498392974472050989369975248249186845728082655673227792064831952288250227611390641836509287025987422198577155996416475802227216102020557076485228864524967373565585488968071236051774165579806708406477623920975472506701052718582421137486481602948285429336070651647498125642257608183772018388679028371921789708363474318701490776947323738830800718643663931511702214828945584625885008567331174859488727690761229309034391969116767133539978278774024386181077020238454426551276058050962056511017243577230765534957772368572031431560341438105043022063040995345307784556111199327037083988176884304399623265358943175448775489434462938490752309949669728709117958911603587758453684390977955945654805836607133459367203104272650020405421969937560267002876339604064465342939716743192949952104877757308633924173946480334679540880746597275129364715059517925320424738351466774547985948059749575364481661497014964083462597407688583194868623056961948327546601311360052974951612102081740865741360468122010632892770339703987671774226490549612562400378079222804626209240535712155032603811573222009509186550107459495163038856848129137211417125360191748677137430212479834021874959402565849072222340102957565184253150081319401566131049324051996133634826626250345095291349142895800386365708798409838612569679556161422897899921417800061121690234522701264757394349592374083479274382552353442060326711731119263323164095375123601161689907675541636171621612701851838192175954550695738872139887094296457956517579096880135334647127963969856337544803900125746077204287324664601486477264770747862298125348040308732112374094973754989044287298728285087915185760118993118567435119401415620964881821833081218682989857112942598528346916425702121026226795360477880165875342418025174720495837076559327730332764164733120145727266569663297935851816763626639678781257408189667815342063001202013901649673197113360554318796924380033260735458061246789209818676598464501283766775209931688846788852416007052249539153994430797796815991513517593220925273641320009281269421729439811594969100221910524131306554129805294857947182402268056893497732317184232873057155017693804277019955934615581551483787876207676504083897878045822963621029284496120282610217193567711558808048904948763761627913787196590461063893379711246503358554381505445017512789481275888693692650499239102170599181222366822022277778936809218839965981411066638042579299994521347296077734469736454577370636518860232238211698188544846747421182223225860114721456757441120109206629611307590994458397139828896679686998225253582454498175263634431664099898585554302301571442876178516946245678615810583958368173077495434244731564219247732478611995055158291671918853574483916614437980255848024063000770564432818992785794753168034491390955921948047854498611282647331617522237525065952164540314885319603437171738852214908868146689430239579073796989169172049670763112416860821523091257714179476860818791800653530017011077405949443932454264476411934755152035482723332964032958157014907417302832593427109685054439058720533511402267194841455833681000294723024520472575454190805667568707369190766984797376771554025152312716003581170111755659659358212570979660640222840339487908494118425341005351984467449240905130283648945504111874744886462851070659220724918456280544866671867168003220517230585830749031376708338283939229287312992335917943525824689687613387813043701846297261425593599870332574200264435733249093408367077233463147441559751421492658960236966518264022089566720508131556684432576516198538441357746899888071924243964547229769315433945283944302491868881366086266347409261802324073180842098940570335081588298577479648102288727185419399819414717757351986720180494809531145514888626772116358071167544017794220266939952589054440952730767607457847093159721105804911276439302020183650612694628728110756807006308776625010400644425698690270289495025576415050283534242686033863553608916067808339134103036280374308640098279972148222269536804579099055027073379730298592880835497251032181865029852583932849681939145125507244787736665842414733538419455885809167150365520229356943696962603818570733723732663911405493164295408785623697688129961567081854551210218427758392218730135291152987822985967424518201240597523535775461435926998484502797068160330248183124759594024941042117710013482307072794547673180896366700855777351872448569022688730331696082443257676930830692238249344785888597349507870741531818173591509266686340427921712279002599476856286987077064353351810277763466932277341138477423551226575963978330669835069145278419642306259739501144857976715668739568434164820627611443322695943602759219712329879361843246989449803307934693616739344736711751608213480444646029656504164892441572584840562988619049154997278715373322165787682532212387870883714370391865912685904636412654299972968584131192394008793413234082144942228038564815369665018812748436732710147955491386398170536716267043814890245540296646447272337754211155588416585175080078165865397468543980607713151751075174702183117429798080520735262832453788384940547857813711201812690421059260065159956416162639591396520576902450169440394781119733302219817646059513643935644892586359882474654904819913446700007866841565744697648992104389008837283174914263270100872737002759444853267314697499018922655354229958405194307053166304821578666399734904284250142611819601625328820479380810742444254742687212276304412726483194011135829200012577846058741748501788999757297752233299857850990930344017447554980755199366789089018573094041742306193277150802142432561592871333386465093583817602370704503842834042584874744631276192882769480423619462711915393998089308544985685514610418832932112441330627203014933174156157836257449445326033350535480138823887495093740608588614078989336403526409166675478520796976639648856870537908082956829643859938715760968412432524658710697136246325399760881309525036163153292743146665313416579620913211069140029212209073142540349189169238599725031190659353642326545133015403317561226463303844267879004768418605625016837201270119866596640268522660529895666241890755359696688532103934503642638308640651754255696309231590644100145136648903487337074686258818890397689150858721108807032963141679746230153058113172484685529937912463968377280080544834988808891525614905859177387856095670148367701454342164040482048167385902038084623118508095664346821136731657276116515237532955244327931391087150789274926505801052566984141977438822071019425164564140647936035685408544562120651850619907345596648704126879817747844946367265441349229497744885666443163000249850213601411269475016954820454297140671212728494441402897054218231168226059029858022788296134977385905147051002542706964932714276623586719447416423435181793625218812656581428232541641402706265871278882039141704103621124837238401843987071428864133690607131321574320397978744326474117155389140852404643363874642092660682875005639202722604741257857282114052305711194890869315096591931853948451765884872050873105696554632004208308636395686872969025220849606242500399230822968593552778696567188084151304100791930798678200466558568715726410623531498688211825903524991564871515721122524751103843478212246114077943592785128490288004333458377946841281294053721973253111320192891838022893991806759167432082303548986410228323574767463685989798542944430120783972877390225531234927079040295295400436737843501539537679435848449967309089515969812133607142293661826882196336486727872554985876714217898445660329467533880098826160969198068945215829852696929339435574435159159425637395608243872584196706747307786106548921710421501125666998613907154251574869323824764385430509230050223493897892710423608391140995400589322601953090621163010459434462385802607727715059798879870207294673102295726487605035994051753897187216200620496086889959591541215647630464772281178057842580513529262409978766021940245617875176082069411044199796578259382546771734777109082668993293150912468645641930161796561874271572275883098322792688035644487864489727628119853351974242827450991008778142227342650128578999326945393110520885509163939153994644828066820684758586694808077104015513101739695317319710905422378556537489778225310623385105654772880399759402856007196404666320325739066682541911964598616798761926072685155189148667239824484842265623403323538564682195765988752804230084112099978856590543351481348662135143021841115134589545434307468489142040223102821597809241973973063894641737777806842009029283325007797036103879455694795379383549193751663703881126031737728575356091996012286351645178175555497139214448983496636263238476377623526616206523180309857816150851463079618888786133359172692370090412512379798543617182347973052934936401878799685569225996577185607617084675170604452852479197300290004026420238048485066265979496859787276579381434889515298474881659752567218074093609196372163485024572752215609727245095197648692150413027509354326767412035452838173744238031473529167576846508323961834983582880602708220412036175991670555896131812274320401555174625241294247847552852358013547824899911017615015150691787823395540292015101381226075109431191510034840128468362202097777162910032357680417877100920605992697666448110668869471398696978561200539119435337314111564647295252617735478100220916232293175065849111290790329350614280079496350179098084017175671375490493773291479015388893197993174144362488875790592105198860681039895216409518117752474377089428410269962329698354033012544969626334007504631920210127387515123916569426746130082612531831794765035269134571302904310024924597494637696645930783805520358490236861408093761817769351944458750127993814471210098327224428332042330007685008423012283851647509555919446396366904716834751633881909706046901971499372133876163557293165300959937661195496124632799993786101285856311167792655308245447921026004811188404860542085722170415965953240718582596516445814050518027688811913920215430226992139560799548445098747014855665340814355953473737806541616321998407588326675045058383097107849984697752912410276435024475037223661344120649048373315237939068335952580877074362027091746885315206779478055546328698777860974569546022867774484938363606086547202054937569678255599848415440415982205696734347544619142311277835780672055207904104215675681336224037504906559703270489344903307923606222242245680922872971995517159780435441375307765676133059730532133613174269115077499472940786164517209836626812440940553788977662280029640213779574681284536152750062288759638330948567236720536832767502157381898610025509767254723021049645967694840905151460131565960585848342824454987669845454658992034585608355304826695956194844038620971080326440616465581379154294461472941528237396405144506045325943225191013240773872999889892824065145790742832107516274735594091948920638288056195771476601417870899969786454233086833584435565628496993861454824694572444960662982174070028198929303840049594993919175211991196927397755772104402660120599256977630849227677109557257576558958321774452127556439971071018455386809786236905036109842132293235526366366294753019663708645277609062590801724995689961457292855997261267522399383887849063491280710016962085868714920975333314095216266734824936544076438154882164491383083925593308937678901789659655573486802973367872706702075143645164923151082982682018672996473206546577989464336680649479442662820042156834495910527609129908446799117015562142581064867061488619360419806279919555770871047583054297352489977230578099594288099341376282075715866044621725771787694153173421965640416268671627690518158914104861176372286229924524439245031414591685759255014670974787294543910002802508462203170174114351891718645106470684347182690603685827855305175648633413915054731861850089286249855572144403595364854374009826465264572122321223850138139046572947357569517284355823687013589337954738248639603571596338070293946812713897239311544281251495767281201461276505313685970571777956999775613903253178289084850376773252928714035003678975686847362548572763464737568939503865829669053302558617925532791563544718680160635242675093288690408251876389473474502781517033778803168929492299041366268873120556855003521874077739769486274522571267290079983530467896994432789347102087494713847263151477134823865645443864972417191764790356699280614632673245651674667935220217118422393431653802484826669416926414707569194343763231648872215246603376552721756574904467183965072851528276835404041285089503798309655384687064990625450810046253049050307387686266636163255613024756196851647124709926394924776885389469765323389145593783219187878136949804627210044870553572309260325741254313545864170812667942265384090722005335479206468911386153105043582122161872842309703087333202919816992171227986495014315719600087103338621192930281169926082367694344788339007995162963762750101595190339176277911110691705528059321475097399351455304965037624975820561709033891095176969778223187096481848461288168200576050994985287658117022633594705604577562439385724736639937084216841078077484345592246959993440094613284419931277051275999697590979110912583451720777096913930582572215895592582831347825328175466279764408530400314939639780417641701666265413549680083886814298079349761654670815549321263077892886915088108258628513712674063852245613721083427354019599863016190333000720990791746915933263310083158931075942880022344202748475995064087333747489053663551358431185027102881962713863143652559003067527244182660400330808341290686014308378473393173204425838548956244489931710357504620092935955837957557092107703385625890317905438459210024296008244979729144240955875852958739222279361193731402988095141169529458154228769723579399693932947919464223052785036929067568721317853161420576543614621146080905760245465982199007967547575732882712227550100881257009112619812922723312738161746003170320343346666630039872848112741726602339223015237485341503161965172895371563792575970896725341417767060230455020470605751207353016469103337990280103640240319297483542348812811086439661326457340569286147029654784505027291063558025558119055528710498582505796173859232359034227936175000677766265243761141194482692712401422841982529921551580672102439541727110694307508810284909502150096395670955982500953442905430154242844157275463284051363233457965851442194490580240875392641927155473110306436259458335189877223255439757607309286939654807591683982858769075219353249340459385964014143003560565504891132309581833204134434850184980173054834913828452764602201720605672264147118248041040305089151760326555532328777369103996896266794163234847857196951222556189447988555419145276773655559852088569257042169286689400866208272976614835842429426995213993263124583468044176568980435295449678144165580609880674294243449262838802961685732495314319972238113702134011639424018810661010438169905581538610799639549803597652267590362470271677313899582363297724675669140793308354532991327200469385690808198228660102288474267032721123112384981685400920977679305000011457244695105592108095648015934588536526793893380575080488374455067689592305652355194648427202214717173362084340361362490941220648859957719453429942282968869727093941745949873277944098510331494508067467076148748923179380867431996335794944135376512488201583902304729377672677781741253740046432010658060788910693680384923931830236259923271041158012631813377699894251689298558247407475760518909614624237478594112179702389260574571440475047291025022158568039398365960765586247579367440221135373154679911557391557666633120152261719673425767179581922823364654855139544576979027831998562937395498220427608228723219266155513018354969017869855402808789043088016488076319986637374359652760201791952373510975376679906649170585277752233901871344423799592821158892188441413868658398868373237083862355674012338978894105151048213884696666135112203789317823968831041126387748394009812152005295316671382466067643583930682916872588286782047317034279165301563543265362398872554840533822261733034165093718773936416485276986668138173903113369943654229441329236096994062465663138152626110028901807616837678484731458959020048404889208154615572433519499752263523427959422584216877068001066508989340779336004796626000479268713812415072213358514278521456975020639505807852454679269467003652779458487625235139794891176327718170118425170197167579252376870380844999590497740201221851370406629895864381435386546737351671713200490878889409046248907145921222292944061450114224064568838802415942774194722553955007671328215371775222159323857219604416610510603115612606194460133434886618799583629189358043897684512742133415544278967657026310832761845063808600560250362774423669354145084740604382191445215406172551536307014840939815926503054662792903045268203800988439570835615988281411109579100675814625195244267139592348802220334868563265234977847801129525402675875953753177917431407566010653888752739121140874826932106710053916773263960035716957294904831795829047386767150800726473682336275373442073569313552800816588898363333193614148315824696834253551731535511458258599958057197613966784530174597364031207776448890070229931014866081767906354924169435298932441793622970962184569583310610198973609592073709085558959084879927906754608533732837775849913011583870561941452755953163905830678809721896648977909832307077421624547094930804986593866772468134258737023042586696193262339461336605469401340145126707130349559520567718507122797642618308654298630507913932569956346295517827661613466191729583127509076851069185712036918292969800242899015901526113839526620613509210097391636253805739050248114675894990205280789233726072395304064209615308372304224984561910871276983161510059294677038009185893138802114439458796476203378783343916387942797439416547238653497931591147060112482237833814850154453212153006498702834360569929765005454151459143077140039943254421987566949532594529638844534633207880630911239668589364475628034627041790157618337389009106795381031670623301189372886235925666523956117372570281071642224885206269629357464490180098534118772180895858412908154184962446249052283687982966694092298304217792368033588932592723347903131288172107928099149205318033501625045771172622049067387993504834716102421317538810219820848262907968546113193553196144329083894231842387498975987910816633411703658387695611729390682854855031949174233493771634729676114420986192316219933180874977657720742290704794624169831502554390760976136437831338220056056565050013117997014572042961956436417239692050021715420341025653496345914627682793585090450537490491923681952949545226956283795267915121547363210812470889167651125501876254133818779895625259563439597443386002312902365156727967893370138582632384998483372325501277699898701802998425140762125518750006939853072919489809489837495061624999299752571370497434513943618591266328528155818996118122732658810964804466894027945834135811645554491363089652487713630496109007024235541958806627288223300824297083220306890641197065036087608655300524494054400422379052535781706992281737929914838721974576349371761714457744436241741881618527499303741881088849868359927515383719107584986349758541916369720114056625402945913431150779553878737393149935397001254607335027517831138011688723099140242577584532244886675145065702377586158304273210031050926868381525803489474701161836224980733505577933282709550474552039883271341601365058107155864661921824853222958761997750778341246914893233683619564262754882953432034578458060217031835807717471221598808547289989124364611385873229755291483044400499437099829894573922497469829074864163569070865299258003308410659478713648648380913864944613177392856620870162475530800961067366317054639978083990981898320159748953254299930007668610166305383319663059642035550888531651434807679528227658682604933398738548888711007766903525581482417548524011861944912676183849614511489880685835389358106895040785005729777485152866629743553287173717614686106887152860577291094329723050486810729251867158901009019091328598428801755432301823617284977042302304661049922628231056198115296969392762061149548553950073587887036572504696668997104698243323251693967485478198286704106149498427280789793483062240741331021119891689872644567544004769802913195549101703232813182823573301452236256744174279999010840838992470269346235065669012088118806522312787775850625923671615322774020272928294876514243828124089997453605193660162701348765222060101812403367892009267210459983329779034035518576084400142237744508772268239927407910450737756640094095424207399356642929897374104074310227472152734846115510584010397969700470394950759771644866610664500957818369131769525492548608478291702845094015008228593766633723439635935075044515272206667111549844192100460911492177284188100490533936584051404329210776389473317034496211950166485494311948891701391189215955446578204447599188851141418920836219353053672961230073906228042270871491459374131098019528445138277279400791337240291136465091823117721699305959408641211014010651047021243756124110280302371253967354947229238557655972119584928320480364604995806877443728117505477094584345781334415838088728613561653163096037552293964277670204138303643231103703473263664233425985642162951689711239621955363016691890342914896973628371974727863906583870445003904287196646232332934719102414409504230270755792175639838451038831885445792514081952490131068875026222586404041030146859050869647308579533221689836043093773483583803806005822286605725398800541512033300274187594785357064963906332636574626667618203012101600727913779491760734633408463479546010679511866686223567011152414975802145991506517805957494809582042426093876055448212868926905540876986971548236190520367609194555465863621488776926136507333823692666730291083985318922426050386199096514165129132208230216563121722081234020525345622587871072661490365163128095221574394567283841489912144649117127285040064927129065970642814801309489062540717402547053836825812077726301415944769165928215094901705975173032411631782043292835300199481730039186688307634877526048773413115161475284663135883946353671469620111941022607590574863388162698492702314591676568808717983849276949200111776058379578722382958581514987131026244526656229037617878881003899398949733150545737081468865039471681039906696034564494477022606021599471012221049314973464920155092450327931418198737982000105623025393014143869146474294749302423576639179789928882276692768758499914331824260078705730729719671450099361714256040922759857745822652340596032927087241067953504427354050380930438377954610743011475654731083707104825962588265976010149281842093694978750131312468942563399996672167579688313741641964289607319815959570509053759991023590736763864299299864605708648892357934267700613171592800101918750125026457520149248722824457811869730746241135995696126545859913684474253989743240830473964702374678811744792110701233467263103174295897688616237026735564667308091470687214724120380732878556442956395712867088539995165335820600972911137092660557402489392859048456006457434729487834909308341170305274312684692582971010392716519701591861605758513222211799948752388383970019748798752945978845734368672038907923763707790469558453784737708460806358596882084271713840564336425169157838693856021662564281164345112860213605671218386049985640161954092745676047113124737900543908780145782041823544241396670879912214018882973704243750808562824245752664050949284073846176728281764897931113222208427026625340056589067540576258774758278572753618608215026117626752161216166673612761935138989592514329735347463831511843747613505221864280817922666047547442176907821879434950053197109625797137620985028362135933292769071756517268552143399059091219096730137827176667511455211853510214902792983894981849112748511925312340489769858819986824416910115095231560612061032280319055743057803813991858287460346844126541651689334178579532377141498518546343551764155771410906917563101786571164203613702039589519254070981646134695965817801864299521668321666731806761504186023619302036237394188215792104846124436049335693485056616136667480016334708471917825706363688873969312988166562045987483766450792577247838217114705804603335981644323298745703386358220113434122226191080310372688557023127831344422426038370542830305415359711766146708767170478752572254951413960357170139862781115886385554874325646215532311111073214032764630009126273403408234237528517469899743101760829418102489481341384267799366897509372531277619552182087565639801115684616985509157371274409467576869522167741567605816047846662532908821612739822587735078044935161598617974942806674394648097006301454474705564580132559534888263724080453041649205471380049779683350726953274501365184990395672069324201733449294250428937976436470221627068392338759795570056554171212876373629205910621459278720778192092099091082800832390015202307633515372843208885310949411491733569727290177422718868762364599190504538826735360303176082882880222137089245034098536930053080757913178117473791473725217042179977871167869034521328343360266140011081842546076996659141242466390762437666688422128483016695367092147934036576869187236699910986375454234039650383574924041557189358789803654580244920963897393646215583884150369697826015892401575689908890846857332483695877806657568701673081957710187979207060376008371070826718035044804809240839124755737711088416817358356655228071814743061835708404978016135005381256613349591915146307196919566222706693567879554600306400630835046985862570473311482065847941884967705385318999148680221413135635769408686493567299582766956882319351425186649496949819964228908638289886915588271936216614710747585568512343551437683188359812400763819781676292301078008538790916095135248500515382108425500389861061168633488726024207974558939981295114189704873282584951206006476845542254181954703438722293375436098335306996666859086474980884752510040613053300363297355989470009313709482992535890241519894203843833572789840839140912668469293458606327162976504341117759250848963555961291022967816704190031986252963123319810875290160816475817561814966673646396394172752704915690598504055346606506103865945297408805410183434293232159345170936268853762250939839933439072690068561580992950690863031607814989721606781477387796590265100348196893882114887407131068142330437312330852024707030839623396867424986467123942308867323799149061938802049046692311471600197628187756812527278732934939290273916446716244217925560933125354962428953905454626014043129461899241353707917939591193713906613454754935878533266116561982886300160252881084586593264039736783971866118133062707213919725196525320257655647076334147566454940589555485065558023486176361700521493316820131321121951974042176942876067542275325362927508657185283489448024941371193571978901402168361415824302399179342791605925799799075678137188071825143841999019446713708388587668885212642621650105091770727166768044687001132287271866833462917380497566400620985551104535705587769393874170599906987206832642409602536624299572968827603960553556010401579657792746463344989717989460162758662939762008147885136480298151080824111787283698676702401968780408049425098108981786603401059674968222561520079118479921860199267908224563210841651804975870708935498804888810745954722749655774617674206220015058734551268179349803230811764423265856759736811763098981262501198273912962430813352200048726951829394637453522042483012433114401451107918624326141236067287944973454864477273895581118683905266024407560491851675937161816672678634021146573738659495888760504051925057628858092039953394546250866252778846758198556441056424098474279629889624291193652563637196982966663865637294283428776294796689493424577168251264165390269152763462004734338140801206593767316773370672487674153704561479603733100785518300702691941049117301059408032928493049326153839124925418535380038765522890823044609988173681896869735501034132130425725795717114259075798218337250065260066270892228025241352762036461317335434094875475115517148076573924862256092004746818663173284143288479177811101614966898843224106976650771774207520452749582328091296342845598855868181022163345046595256449911328753504303124283482052500544370003953791367115740289011174318271514132366592986380247883386726138595709942618948915898854720579359801433534680336867181699286922728252761479218055120580645488920442726182825943512980193498216564506654971591639198727295892197799640365110063752763566743588547188218681446197903104189628785044720724651244650033861651910304516832546181110191313951894451734521322872529536072371835794793676258046666464942796037774243738838638661601662241559332140456421008687636629155357928573965653191753523332794756483710067470507310490587124471811265595277920903996015908495724327780411829822084661093124415497817964452568754859014453923726544435377114112338485270623262963582603937636713486605786846919644429525637614004986076012172789452312133068567927676327355143414575298723756647953531666517155050154564032139192739331510649165562595641613499595201129328834064984475734124579434270956192763365341858576194169673413462641498131466545752073106576320493309517725302002804266278730934999928792367980605251894634998239441680905396067740859433724308221275748471480942100332715559130912290175063956175835947806600920447252902433447866764280874777049288124946906889590915359305539556627641614444863333985645231577349774223276716562556795602698391510938678455322768841108335572004363196963366100302046766269998622877313113625570093329759869315907352587515003193712246847783882945572341964764896762888153672448823240539573998939174847956581661956671188972232490954240068676276930474274207799220288583495292985756661431438238631129412650223785145901721961100874759368379543283626420268494631817169287746182846930287457376925083393452283727498401049211541149757728465311790527655505102003240457528847566910396816817297474917215286397380083109431853123417564939958336664415209466957674672645005287733744623569951461261938914485110399825410449213681255678324241492800832007491816571722855853741299363710992598459041925610947825076349265669967794322263987415224129342544473252591393618803816945432290183768981677574349013105810506194249513305645977642795919383364845289877376770509449311062181465733865963720418207022045861108076246774235386273216844866361656476724101151551722396875856841405370604365547934878550626648929214047579689371216229158799233449949695180896374639466986861411265512061090941903600932463269851718186002491687219338367005625005620713974569336601158887916721589688109171086525852528472951453938072510263725346708257464540779746060058035191896167638072169417791294212154811869329641951952551750168880387629924084117602222899068472181780560982092353740131136566759144426734421227020843064409037268591812606584311452995963729163770892406348027140084221606344606500556050234439897502227441585382339133083288301281043487861755792587423884914043781038609637486399769099244468775549851438475697224298419555673093354995011717224581567521612575159114593503558274484366116036679996330465152347354328445519739266827169206809541107530982472317544379603670904098867332551393313267386082199979408896440975520632554367869023785564370130110496372174839040930966118817525416098265490508366337020762629121702536220970213575555864511557325108400151659624651081622010079212964811385315689362658592115742877472567992543674435559019287007805146580548154296364740995483158990338861613817884689059869183148338705152154223723125792397746102789391188044691080301368344534418840103220106414268055143687778376108106805991782766272578191750458220965895467253510998572300479884390659386163334542800869195170578025097973078497891666210175148754012949111982587009117281860798578615402644543109759801276592085809278559074150664177609193060565788301471845467591138758756393868386689508845174871364709710441215490401848419812538694442022681315940272937635387475887200016709084670691412953016740222195059186353874216498406553087043857905059669339208002190499384958678889153431934604705189563258463754427480077258686564705368772787660636908690993188293711965540558004456132135784578661292985968348825374881675310481106548128767701676131548539161645209904471381520087497603219612395667796240178225999957106082047706490287184890898535874594981173650303140996986853225509906371870620892410463773070663269824017622495235472775084993094667136987443874852925165634794252839351757586129030844781778154796954694266551568451285385388990654002711989681590299880405260799038422247370678436113736053136750512325770046936124294304988187532466652062181386997273323455868104100447646698889831806175985618946663112129609571988862130689107724579171930275793571495897423858582923307032043540010860360131164855789741038453587305728215227250223547281309262755239234396722162622069712574444298510575378278021914378866646234010153265813114698698549088716667608555072204214815192533180918579640205048053860675033231601992025564763947384621100500697172470732775095116021531816764980206991694139869230790568351720325490115747455545497072067202926127580980135126635041760431836087453287410147660399287698538861780825388226769865969480510097613918863017224016623658709090160126371075544143188265316180213867159112317847461737578394932148225313420067381087233504602249232299975082773268403595643925622372916290381101218262503420579956463834290796799642093137860659185899414070150078340392742301079777303281656789437543624392474774301518837631997632463147835934520768636802387613714109993191435023900499870826943337191156967606774293347732073170325101065249571392795787899956847649515898623116074548870196719401956329143011227365697373967713734333541717900196441038742676431584602980271411519844377600290238670383593976073004527557134717504700716992116279999269544366184459911775023776890030070661454362070061672366208103646705449178024092346099461218523944337881290658228322429006794066028809484851481320774214408102052044884797127289343049767289878378469821642450663415269903482342223710196054708429799024412656030984744974190840411833572580331910623228590101281313670249582691254701578821496483769450269011833333300245358506876941842193496732479977297948952889961752620976631851959119614176385780201035117799975918967756944714374682477710190440102976736954956599522399539200915105293426291316991976782988510234570221611077369144859631595144381778629299668915833421815204411095561100800508034288587716129713337505282360810148115431009165741108465882537508915380327327962971485700519192013721194200100896368873195077928001876598435652716075945064324489522643316194309339188261180131644203196733597359292019744352660061775909732553643192904100626976761740868722911310546796254336653902710554686121065629751084568027993888047881439145769051663042218132460957569996987421260464810168660762091574779087404742732305029813113076171584926413160602121591358885543579725780398800549870839037125489017701084335344418857697175584837001384460358725989527067829380890243166975703207658373796309175759870433144725189629445994979982166543767209853097111989552400414770028894224019414829350403722479393995493456506592324803276483619391151777022609704154723582042065958265490258242764492814402862414192207955872927734243644621285900516841913479327204291364921780959924111285202329176821676230623411951586825551147404605619065292002762846512590645750010594580642344789442653109732233127592639639100962855121524050023064041953164401629426524705459066583962964115050733614693998824252824429165457453140064778101884832775352251393317879824342611232772974106897309893614352464183136931334740725587257087894867508186171658387607311097090948517036766194711452925580885213097497116010719974767191180846385058641787772395788576406862302516261268673570505875211799348538255033419749239681369911347521376790442497153161227943448525085184641127870407706108214348660234760837955663773781747415630378903797629686822240448233273924696878267129541188666045126183949569493889891505643528016240176503921381447241909372472150384640731416481717215073592575553713331968538987674459975900189640915487080194269659503161636799439321248659414182281237853817585949286817004337364832192279249469330578814247569284336951833312041330308380424210456432899325873885122087755642922346514782150986029246689964076812791745942011931708011995259963687859747023124194972563426387416737952198205338665490351113020969798343127631680437525176180709941710624188201265303046397390994523073228793240187705144108025140302272839323528517767446321956706426456045546414664394300650216574506178170801591709451278981112759585537560900112624956397369088525297241705972892625185690427862139226826329580386269789325283581879675523814862644620811046029693707220004051144732228218849390128889572757949494782399080631492866611940426829168238948130493116583441769065139536092191282825963602472771423408913559638555712912757181039276616890589909580766263126543968954823465617135666336180735543614688796008792644831910310702241837975816570830492751628330382762806801767243868737541682293549452959518258857253042279030288753320796400982845194605631377706476576472224875984936881503483377466732601872217979277073222599569788589531940518481016217901234197401290647866909433379875453956311415452137406946673374155934526963320713188665854209293328131718755989354164433625011295317840747444298059897387675690108629639115359349716228365028244588624012491882448961551649648262424966467581151631573957181020425945018384463100848960522833310190789198441935131814038413837074922874795039416514388575007125096180716472755297181662126357546451138466814001087422075816651999631147619869426328819000165801482331910523587599515378553698661590692832890010573531989396426065379239021589348659694430232869689822655290028596435879970546890388482163900606598131401112048865659420968718478204756812043872338514116342638453663197306649097608814943278855569095594777977442739568908775417276326008229754853332020422121153218072761901427001028851250993804855113594690323430963009151456602192521488429139870216344582119250480261886187106631443349442283325561811856199370447354540338341013199401411328419458563848729007069517936866984264158112238570596298782352770749182681847215872501990587395202575622025089208233603394298524792618411061085410483802585867366509278150056717539390959307299031050212092152815641779820523903296998012823515599833732584972879124459053570464968078172109161334990537096103920227439829828454467997508068538607059451777298238313229629445528925694993011078802532458668536987852809806253578938289063340420423102469219722934249540494226006441010006621093203569284107023583941813319434816838087310947172006081268041344176174788029302917587358511560963517995671615906056429381357045917686579869317080102811325543915693663733358988304910882606817395883856046402716771060937133061394483912942190651296917380681457674145405914705098436972006518254793121025319192200023746750295120842184724399511446260854743759422001360844640658087886235586941311618416658996163674414960817458456378218116343906082538464031721337387373978929975702172470391090323990695659152056670814053197210685941382148856566004606616860965241039504804608983158311276035580543816456354761420937394055299553237859880561412082179301433473501341186672752350882985418921535196478377899971724690238752807160883521726946230362575214169047034301927315676452613389958523767464482697138884864601201821307308360838760552596908633927310264368741086680625791242696008149870914124269134949793949713581163956352331197126472669331493546114969938363675404860563343435733725051198430945820415756618413800003932406559676423187648544524798469155812928699318781253355679063910950134095940059162600745960125652401134430106268348292389324202419915382686317621497042457189580403773423621372879512097147755900700770600001281074587822167141302718374949559308690150750321561258402925923814292817027052690430772721402328297504835103858843305149154071789875324081806366679921343939443782753522213199730889317576634705526303739229618072904126181718188283937921337029443132885197009888660723518776779891872970610389992745539938341511881709075777179334002629227791759418612636028917356597249545323347033034231530801117146047276537272323895833266837454486621899819760198946722614322363130622238303421224881954597088919505421791561500175338155006484319643158383349262927789678434124880960710858777949389361316379524313086527208713324780297255194302230963135862788444567297956743836781747699844151436131246975619821904334011087732408508815690670893906107104130879652441743237734218235279189640135476008553792697565177793976559297041073008909972448023915650909761884657363397155282378765301341527992306004929785074942337170043348041929067086013375861817355332493869616405577851056848419061341557471118891749685482567108820734481180116079821917223911103010455358194749501195353319279855557980456494005869308518323977191052801399957774756027408288415781162151990172373213304143413862701884974988026858773862586915957718781958276156776095666737689696076001214186124269009175276632150859158322959984594139168826976138137288476142559219644838174978418410635528631799726795297987703217802684196559691441309366747664205077949378296980029072171462233053287126414627622656738554211026171900893656367275974889779405757212982486255354174132586222547348102657133409519699544708184874467611719455611279941363451095671231128663469163453308034575504634938454298858148388792019716640061045643277583793998289872517852806920239202766142009900668085600703618756556923359802538441380009286800575727057382687724314350747544729815004198817930103317738148250195950112245748888986267617723943004179721671480638150482673139426373120240331778669495813376591725036181266099324963105422811282754701176476547541572589502143403182663761290172387388867663167623676030976769820737575027554894045674372650761670692431226966644336545456932169828044392742739199041836871782050363379495116987043098073825479272396987884093609417746426177205952036580744422064431495759775063210946458519477486259945313378193547146621156009501086765241392325682773596967610554768364171743578194125035187356987426337508835761842233898758486687023024404380288240854118158740619830286497086829056833227117267574018130217470454434968268882558794358354339532614472439396625226853633363644289013758568304669745333513217707938457072156339933327843241794712857360864024192080519378406285570704661509912792324342206089154553640257338337207715594048218637175544531966546401354369276280491420063061509072060600651147019634969147749227050178610611767759953998800472212887675084871993611659856497231686104157274966715800785260790838344185971447450411224931246865909429896777553083955282173449617561550160036614684228592172907849292811917268509543265260528796380326072167839591342656801926996699232535225053201273935810591481102358828247252853638708029561433831369667756680625067198814784939898362228340784970002446819397565780921744071639283721880581218523112805398061222002601135587266189336280033354004263733713841908032119243780830412292823471808299017818864414813404551969076231257330742341738858545278341810719404034116380965957873541660487893706945605067730823058855061097255054804415540584425894739951418143636087883042577959897144546614107640062335530940934462537064365841002393755008008102266319894060100919780065047275359601123173388197001284675383505187648517604753639994238858949198802047461555433685747801098777822168151525745911175875232962886183335783540970611503240151342825270446986932839006841083140139615268276543901572125467193073548593525731385636105562519647694717413809230123349950096784162635250436704979684892011200729039251451403369546947043992417303274069557279379895664850319015658538510889551477317144980304446127502861836065427073165131668871549522315482861152497632272556626912789364381413825767320353656760645272984998443589717200327329370615899065490671324726042849145834807231007012706555673263791590772384578103724029166816001140695766080424167347299959828379340852248768965735777831775083212513228164790319401848361443548543778272633665393967981924920917093573853035601549032299282538986227729123966937925693721663260934696940293648196857820913534146119046876616151237289081122001527264320228402409501342356229474517474510329299053676756245798269380609758891466655468143036420884460413536702528306192490719366514622525715176762488963899880384242452580026338381459888554980479308516558209736943278258987726329922783298768257367966607061073399110057903744213111672164919519763166288805586392475978608733278272770038911565863004680927794029504993716215093884111988001673538173342729660915134371788992151717099910122299782932506627863250290371528766430629499213981212218115905753024531930441795193521848584964377477985408314924529694877259059178742683825589982443599410912192603905853585258844309831025101238601476579270911784082473346119692078818586080238613265433235933011557279694927312156763362242407856058447173670660478742235599614463067409273422030705518244714285626488328014271099044988248135946035773038844197686863195312120034468312216763389776861150550305922959904077138432223704079485955013379910844237464009839926963069207056112407420305504564855382106242766410523008781731246522873168009918445768126891236065708811098084180218000954933686139427856746497517637831709978466081633662642135972714903042022615329422683894015976505867829540978628389921387247561840588429333161361215287423008217829145962969803728112329902650597940813040411685416327004010944443140267888376483905502449739195001500738258971344205006209256641256520580735442878193598133716587223417081033036781378482803706617151933925377738317834736301079369462256786842685737968428251740041343961016350510903568665460028463776035090684911383415130219355018483627429284117268395798796267675632296447278876110053566573148989960560673552132756482309475462259070751613610201645321825646329854813086151712473310120215347237489758653436718289741522135699150336193262220931180151790258141154790586909262970892451951380004772411477286749506978209390002600534788436015065123433292302419863634282067336848433204809523362550915309713243581388878507967573535770529774183030303182213191135679825974170352018312345855507047765192086588861515944599217258011359460527254966886802823075158345538661535443762547410874444859515153440968007291667539774055505611620503434287742736585107310481425743555555292944076734618622009065394345119601019588237888551095387909646543902593581883533627593441263691439551179343028430483069714110936398828672668082414945441297334972389075543767739440133479163810401940441291484754600524501110557070604267667195568838203827485899385306313108634702977675601606794933513195854335803614887879273581504636945169829413785033267359004610137948497750520090557107735184301125763707486501703543680104411388740683564655031731864923718151004172261746227973021944121148798383061182268472164748620836325824322404753289541117266243769313014269426425049324571961957512996924233066774472887891826543671962114507511836655032156104183100693770117755562302672647020037848146485717861122283066593695439861939502443819542438787880972478416276818573445140593993540038704647862377019115049103757714068748709393143560922318242818552220287130650414048168999033840592464226669508872844631171541117842952128076686828125648857119578656551840469577292876859109372007534013190485313342940187291350334170235861308724487422811650287823861779186623567415575400145516457425478267174674868683567133237879526232291826772557093468392843956593078161673235884775237023747867247808936115932593284613457690458382407367549301845565543525782164557477563887408531457625707539709889819770452104518467346626169772885990233044023636547149721568300581226338760470777701782756081824622771011004735031298181404852668607983577646752684790835959571108789520563090415955808548149762250241126429314917373091534928752988974381383849512620234253026479569536089978041265480594961978793501438974301068793113190545031501852912157115640062737495298294762543430669833543615690938307980394611388788674125695606985998548125978320471523259211807066340759502464140958155903688930675082644114750564976681771673264524412881907501468577314004894858376074336804151943122485661059570662611599005665228406081926177092677247367394498258496948901293569743267283817685252987350655592147445136930967362247538346956459792837020136233479902041637661432479548040765482812557414178028648962961455799690002065782935559894216756494260302811716714834274550015692332714817090762717788389352654016518338175759781497967325775859763867041184217270441727346561376791818333499586211275094099551446643347139046511418486250381119305632069237904212949466075056083233399713139154862203454850102992338468222785123575418573862718867699939377031232523155647479879417552225119040786816397186568779669706847554146719944877957369099053299724929297850029013156558246972388435482853070644986331185922017667760048407502907805606767985662279984051901038296978505610153899854858641302548505146648799712994021782012023913773180863170258382150154955368717430880041077043293591206389615338585584646341241286266889121771461727141260629439684481788233214349836010097201084300795649935012001931680818735291900595190090563422797144389311036751534329331023183970900161816840978830607240791384164212612693922379377860902528155007651012196426156953828425355057393951608457238395753864674354629690154547740921251798129272399293801623114644520246943717159569057078722631594300496501854373552768900514267207907158716032778347524255917631615921878267746221560065996767006633264376878288671762577096233683236181423117914745502253689288420684538667372107345032157681411571003341144650094814628557295491348905957838357584275826565543708586584528096293729833955513253853657380144353304063918426641391453142776166328488846888443006168218624734294601449593185161447618096710486256227226589402715007832890310311411817536262118457487537624656513941525492292178035024123216874035110431675731471604162099036181480195821708953361218114257238930924962768343466080114242097613279958919068398507450975798013352979833876808280357049830002113366171800561104737861267638567069727766731562989757804584831318960321788536953280034351563615869068169099608527022339527982582559253448325867394288048749366128982833420753394010152621472886351324005483749750558541071370114993058120046937034507493829801566510063943348608308012578709164624334898847161390617070789085958313962155631707250589856868637643600912670006704258856703958936122803053321461357259482666228908060842761279146401283550504604515392542186337852998764179042837447876715781430696044116770417355556452895377356402204827206003771314545960049390093004738793887160664606401280231447439690167595844005206833767908410829837562953404405229548529887335188702845571955371625148186880593356157960411521698271671011341030240576539894812830731186213042807409924240403743683540069659942747354420609466486351157628585785837635694284542751200036786121825296960634445605501324284810503244082966935399709021695232022164166511437499724548314344346743566172839199429554910577549581466681273834930772472581040486547403298293841074252679585686839059199018387823319778942638718054280230195018758588489257959260513500468986444705783690354278317405132072034406423022827999869737374157419345529392658924458306664232696319941557712334044123403195868755121652749288481200670803804545253292536460791915715972988267280938884458890009316241711681349373561294478645955612078474731417026150911770352638197697199855048568093043478988316718645000129945223235380607897897689175178451018769104032178709492516752290266022176225433760734901103434195649295625999663455489175881500202642524548356121045793577429441666594239593447776863329918832311713552791051881739190144880944358379071278776313952007726297100139969921239531399982679437848016889622464961947889468048853062679296754643339208547007913669428875916675874260870130993458094428390043956152925117073454615775331857091449493071206600578321002673512556214258777479177309453979839040674537890864812106157763044289427144979523790836695400864637867953780684467700130328151304765789182049387489229738827174742804767917876882901682488672258795037999332704335894336582337893791149352715741392512926429714231359893780631572453785563629264289787682279693964950634050724670681008928138332807996927287825249956793453933815061811797592497518413405898434829461420424939087139632790206215055771296784102146112662973450220431805715477222764805451798838259803925399276325887659001480452499246328971122952028543907939465218487291407910902535350325501934748906924615318633833714361091689337282845373096309198103180355815609792136028888552927322920251200722622010442273255389027454677939623530736879375818474029514014206694480355710870723451396477106736564470761813630573559090562106529809273883303039452956177292133047767324371835109232697355165937757922250180333865216923461876288064213156952814477332172320563721254906621773430812304983304610703272424505691347208898208588196954568845501568746816851609337377933680746378467571526317438714436736467257237611406006563060268937056253271247645101624564048004770772922757081202718680869709535818947315340527561400973451136982393525675110704852844220689968681436193270462358346939275930408441388887878824469336168092449021228339946895053717752442569557726451488279458229915605342067254113925420670487419755287541730632514703816386230558241378447846145872324038360217447962910216495947179855062948042132433788090617566076139794983252292642844844994293420932356107917313336647864098561792965868691209536814768102347698917658249581344726690798235614650851187203984090268216784243660560160517398747528574270855437497277349880397153282813300229059726087786224792401904463414820363157315898758796853336503772821018614697392518611713206501996328078476099172811347321819232702008461940227398060438266377011362819755790654309537973416940408830781929382423593858545970386978356528927928297576882423390506690571845779968789691733185174966432621889280785351478957789160753352248730367534915617311884311455365440385014239574473288947166205244172596226300358828429820785263108050252030194351025373379692499625007620840398236137761412265572726713544759659273605420666853963209253749334479650420306152749895691757724267572807631714803550189267688299220616567624636899982312358747468298272419441419111094042438842751146082319108684163674810031796012378341152977279960050894961190378611974108412126104778489701911459015701365140744480596981578829855508435557078071852706112339860779194355613645752926346975025821985210115000484684524144797987533059764189691331135870718796091687752511205851890547330631502877225113686984251793819730316941170994461754631428840151525562851586554372349683981168544396003170438080107267973069183095160781304090715462006934469763331762002591976681104394987010977104153453341244207966781984202104998137054281700517438591811976504405737711442936122951846551870000402047129969220702421118650829606162409967500398717633885215643185903090725884423292981375331000528518537497298023343731262511558717629464136261804235141201214104834629813260122890780246385754356541772681993673110940498209570590563660260535012358880193069319259502238501388871090225984903286677125917981417781151364839001265363744388251559926119701162549267039809432898811168938730071996555112698711009493667154518868645111897971390667612968127894466021384124084328629100901513749454823662169762341195785266868972380176524520869379550417836347804115262834944050850490305707321156515308371745797187864588079515512585600197262463122866311534216482317770068174163722125626462464534295729489413472551011956745062436380464465705460806188900005842920130683671173890613108084912620470655244898116299175502657642482289000408994651232422738297437478233581781082324020729351023447528207785699122997488093932184666269295420310800056854574473085963953194219064277245394786220260179043085532167966359969372551896355980549274244322265750753596826624824874655534893094192603728085956609728531925038309436900205829957247256452384706414514644324864092926150050649566995244041775494101406891574701418035409304901186973615443643322314996360192499433722444393711829192174114190418551306109939825791244055187299583379518114250299333597110727597166100312985399568131775102507299834081756979550411282986374007618986252774404945042544380788311892563969376944984949569557276059736568532271034239517172820705369842627421294137142457571360090607052308942467703866487647801632651096654305030240761024425656801313498023592760215704693034976728525797176432691913944884057425706612470289109187985528061243761673709381046260777629405509606379587039757695044488019373209539607225978344868470754594736620361442804526150458809573060474109279439790773625305565511923220274053338723011397527550555807542900385330104364693164639049688917902939271294103822521980333958004994125492603594896447945102360539533297468817568177191566933014886006698461607365091567900118943362407475975240535556397325048728533568353779326237843819587003535478592326424113476807860038163674945971936511864592096073444822011384213367279550914713506461608832575865803881890008022038148088105806279277453220081690337128869831915993406101387282406103564194974497052151086701357352725713114801949877706612496752725469810876449257409097470686667011310316400201858813259468979801306855773178251285499897873996229446015658418552969445845333223053188840140404128038464036589946813614270942036463170762679678489284915250704213970311718520989792680544022834070529552363773679645979641990358747858359197817440136806612720589924673721087055878411196875814074900705448819745343575610730082999945610382694300503077152655859038677862557515183608142230444700092123494737817287415448044449837745415906897984181754162361012865296145339658488897829517251944022200965803893372609014336207811713028206375716519888457543217975030014352177051474853378156074613998072963447037255906327319990319898171019139255313064224788302027710955883475011784587562705009462198849420658660864198271568305434752782454078296153113949089894804132422692645058857586700103108491007074621223374264061901936948399529699195921184211100789210675930360674326825136698963159302884751941524002159148837842576196446349162738065236180120300849891327324967646844963828432409028215057908570871810641265741982621679287725299480101928846146540487117164240627114941239323059113052151695438045740870239189561146286196592002765420864510063700219237458251533794803112239513563101282968300916986070377821438644438396518793257408766553236871071894066804282539915602382412360620759092178535447618072270335917807890323178189393174902136977364645447398900356987223845928065862290194209045693855860936884563046606572120179846629172633239404674047221411878598845307741966585207281271242963429497871159814931349998073165823492475653898096539594434810993019723992643131089019053240093901177669392420599617120112570818537059184668816964103042619840864732473534047766124557449498279650585770314628500513629749469878094952818616550874530272378068886132272878333277923611489939958025956835012982276783412139329042050598256850095929567414462105571822878286655334846945652474086405578073388561881991456722550626165859296776988892854075767766098829257830749737251352113944017559739408435111086616184483909995864969235674139604207001828650668029734145363730755580743502001431942131028441580775165986005091699727154920232387004420317586470881494081072306152442737337982478496680355155742226269033126950088586592781721172485310032176585231528654158525877421497462340954918416527923824096223138920045248490205933942414523235210928645451004105616934736696355659358474019599207756163049253822816848016284619899588695549253196922856801645110088958185852872220544906765397742660674403405457567319479467897876902351429908704796469963239793953492465804879058729796217391598018653363418090206647679922570060227500953635717926126634127881955885709925858176457066814995046091646317682582714011781929507980985427106091260878808708698526885762175605639060855159069037593562197139666576504003444640072442457839316519365722576547734266809362103228734476164996227420847423455900205211119180344752153922468764716714107502429102090710258227349474823046600708629232477106813863374208418664551852337784583981215795342610220052568019023939304084756676091902313078716874961367116133224216974420438079707720839747067040106761347666796560802643885055663674591634351095904967523219313859032669772655290808499045797402883408085268703566044347692832583711369711675515843334947215290089752327997576872741378695703880532085651147979853880411068118157935680112242292262818138662093331167891958379056836394637835670596228294605954346762706505712498212060169765021265084724690641463750755157878835656266484389665348009087943346285180792763082026462319192599779677973692088211598031327612349944261179365345108349152964006631667168835293178121937932680795976614288150968213708966106161243648941912783969183841360686592909081759702788861503766975925911139116296291343842517851616511811100407885234772222194261679716127549015930889378181175757277013938198986942197361311076689520534098730633318387813186671638347774906808211313894406623840327785466838443343615594596018720606293015964730271911275657938988808432933146550255652946468345090712770217508019079799782229019137268439120750717638813811849681780030647084739781638945456794805273979844861094092609779903764989963250568571103123559495435995934744844015985065565894357290167151677441416790163655886181369062830779623917913658949292139223098037954826764021450822217272656176816736782534756480267183832783775970462526604397109422738342603726912365072295536493399277142108048814645766469849393208048719717668831692693227487025290419126087704063916540538017508249725742964337274800435304918394240911728966259164174022619840965252944227209596603128892110161993534286399860403819191050174959619293784444327113012716978255445326697004769176425718500105251542517419038215502175715288836497254430935862075178507957998559459768535862087005096738246536342341822360836539828724837646846327906178598435766996370663892236372784447275783883941007313415141061537548749527637060877320788132097533098994819458757231188793589400058310930221387560932293650460904117879343741020374739955481628095882559085598518915546239042262076104930211899112646822775173492975151435035708810683275946954997213382628906783500931093738398628184895108469189281679530510391798275089355778216401085635926246003868476528814509769608202490934256664064608614097346515585835126405983390196258294067806613074965591391046078433839280900695450712172351480255182467975869952664913138815876142428416610177274737415632185314604770996764373640039498760008123382041505333135023349847762291581252532315219932816755195430129218039790023160276983324063659572590191305047056643283375556771425926584023299225428653315731450230159448006646690402965961022307157874381148561372697523328955992354841868868593405561220478442720112908031170603727315152811530865436101654422572449105107015365433951697550195248232276943823433353741673827317419083331884922041225407749704219614325506066108238395931201818844340988876976810300463878945393619325179105125688273951916276063593229879019484766075190730011367277381495639130052077408908982659044360041626523262327635662498914940806559548915709024192286395684781058459996638568402921829031119329657519801905269015447955451556258165551269394963838888031440120006656848684761749324945900035580534599390009745585921311994592947743947807034116437556855189548524773937241760700386943361527651988899677996817782102838915213393551236599805113610301124830416133161248968437296151962231938263521153768539533881192433443239411103428131608144759347598224791670683290521837270164698870506034225418760929086931171875279229409523168012727343777658839074866086693067302824672529159771209462676635130219775737283461892027054562642509847719424024438258085079091091437227807548561673510651566395625637055670718314118429215199317659834482152086778532430273856044617298357803480338758785373570203284916533618545511234573043700314061233343760436793257239009805609912811484266855153059609267945612140918669158068617065342596824310443278769479724739706253079449404830376298929760344343840175150995861258966664772511866147404825970848680220632691429940114491215912678529944472552964827492123498802640768446678024061617058896517311474320310547629851037211836338526227604833243069561275903385878624271626452783582354645850618313493365267360452190026546615173831358398101972226004586298093163746221994961511187928630786458992248710051461322921094151784495615794382137105453764392410861110961807353643419850489066317741035055947745376369070792141548059995161881302117724554242272234509842744471665026280162362948691581348229463707357686343281964378989498504976542569262765129356480223065179709400883445815658454185067024485140946236047576914700984442437720430737542180449466560604071351722420742250096097301530914487713212048677166100347527575050263066138748687447117467842463113186354349152820639799124875905751332536866146959622196804768740046322305896353362372386668751813567369239200151208126619252923582332999355297414920217940279502509442720773686551330533402579176118830523337286450066195616760535505990506545803432360020411422177999910685376261370448453465923790019174534083581288530690772883410668505720793445332745625110494846461265991919452009231969387338867936033431098809436136726109128413037469663234253938022764561319298510127060146053607592681697870452777454842442874973978025648302105383079894087183367399784449497547902678176075910196358776944218128405794435775019537767420647622773509806543383712272883479928690173021267217765917459473535020060319177114783004781324885455355313031443349374532522560176135354375629589138312705382085779119652824707666332346226571324532996434858677500385581856836448891625646361620713393661877096531941055753241553049143598375108807501240712438791217495651623773668848756625534732129550407493704513759777760736567332950189191130764795617443213693355833894462017249206348714836365742995290928156055935390939774930172156278927440470335099827949648419133559822668932380084341443996532288322957390766603401765766366664096984373954119163559024676734301676201702658351577665699634565208421206128085371646545590255975227965182916534971113463115698707353768141849974013987907101570541430902690388943004451227854333981671421205347012290961257795482754980921080297740281714614821369037422898344384943920974224922603501646607979525981119050098303703720815915246149135013110109525092902949920736898814808596387494132012946410894593999782769442061732844290224470399027986884897295781531171593434349677957359349081694770418981219207288724805199544268392038917509820207497635908070523662447992954659236951762515994923061228105776323342955821168746795320569205865157209516292747569602708216116680421103948757658851361593132323732063872520312359244346985935340030826019106429561370542741941660485165569837233474160397082964307961253843540093472317674538839528649249254325202406060742343939423176025827041177663391344036376863302656210936442767961972550927516366796860058110216471689136002137261486082437618464753255523653940755972893832945794164080083598682908296447540010768789357309451360272671847156388497749975900593257001658987374573019482947581567476373390956907947207562641049803181239368900775511891790347915010588763889386458018883236487998083316976962525119017816807716252453549189756518217982594344542627138742988720245468274800501454824095412471125233259387812689862263307007800876760353552780311900148629001891389249810294572482529027343699913411483492934242717899503622605324768550388807784064942653624385719864184835708332271968526340625914918181387046739313987702939423092762993834551734213553937003177742532434815682363324195925368830419704355923980884449415243286320409911824239471245963904663146532557375233138272584478276043267756373162155308468829288406811347243571520332506094804479197651386469573203530165548993727832859950459981700217824731567775486340990369957788265345389174484479952774875034943832314902621488694707762266620547083259677165819536937445582743942665070523736048906861208078812192279452005603645851269317511527747368309355468809353597351328788760837584256054165831422240340359559292513208579108628297969267044147422233024403101249962882751648380129744086184735419859725268285292915821131081660129176756947253827572399308062204951685355330477338442619829494300922335325734846969049674075657332003877150521801517865087868980006093509295521361600226800887515905948753513545757438046133307866259752242219445894542321209593636750462750480622566173239819422378386651687911722427823531643616492804542083153551535283600093537043225768237169102288332374968481907687828442785185110746679636593692889096419284522995556538662227191542123397703877464196684299462949029687811695145271236431426715637410740784590325973833788813282009860530606128127244772721251939550603102581572947542979833076316125796781434679464451878881681297072334673590006380838694059861936165426478204749232548431666263410626357399139941537563023434192841933273347717327373950873508199150197660884236458603130531317758793301406042660027128964848837796325614181900298050780592785760527393495209096347762039303360215344187369121166347156601591881711756832559502764655440563326996410693091353742819211112934651785791023457542716935298279425379850605310533232549980157189845973409719985319165015560003418961945139976735144043374805917855423200749968113045900707986938261441533239749239705409377178503267987455341630083806711807727865331716202953827080316024726752879927724268304325310455261436740960898569481593677476669685816192499864694638145480213170627528775103923292997744480338634514925617312019186708327789187631186016409126032140759678614407883320294501128030607247601309254263284994623978857647261952124859723613862914515936686758942382457871403899452706075824569302064587799921029679057349086213583124381162497056914594942551696641055923981880692689780493926738011697610611068006360855859158761105813604900092987848251055467802410445783849159244516688202245124692186533839580964955450145478093719760893810340812158812240104833742439544818031177963657098599702848662491998462519820070357640166047297255486021188674954548420363712788173326938456500420805012537768491032778194088094493879356236231079103645907735880878685711639959422632182878061048499153141155435528744167092922004492812546505465473005392007146692097697754917363462552773785061479798714701589634468697543198059918856819516046372033017500635470022057881566089551309894272224205036391034784386877262357835412261736345873867167384010727166381690333886786403694196874049309690433902217258214604025749023994264201063099745312879577175952493875838132642660642938936970159435485629497936361422007196822612165337749430892610933108122666068701581899358087817632860923080807720612563624963023293050892521117679165046543833914001835354183838100527732960824536209866297606816000216624703369638561820112940635620594751385155538807889899909717268601764309566232143654285559177972528694569761649816332155519232164925177264239920436784582061175003624260808468752265835302853352103500872583670031888637917851225226521878853544138706246334189895311699286778695087294193217913079489118652474862373312037757959894986865292251360553897550959445796074244545823875109981486799496950001660921890816202489613026292766396925085420299998600899793455178501977890368878571309705490463406965118639389489500613302067652077233150004392452686233751903284828721161321179293092733507797171159481006580756873796991504684315416602122298639636605448091605714723081170116577242705638980751741705786503443115735081830628735475128024378951930762115549556278038437778225995358979059553424957876061859569512632295382277985653374098027100508456515243643103318350622716611176652449627347789202316551282735158848026856436883622233647063478711619820873660804985419836989826977271564047820802596318195072599759516045945740411596788592845839368799382924105190705621882416385059146287081771236906078994535795437206176689493244244802208127779652791279355875229209940677063871678550430188776443643302282647399001169742059015295603084649492433931315622800010415933769607231578374149861307939254100169275076371169464233215719946249108454845164549952691847296203511409298794023815498813951907906022620555911321715640767087264968904394359239444119024415533230631003541503644093800385079930011603839422681397669268504082471907546662704957972766305119034979149815892206698575900595951285179070825553792633629338472267676931992735509243478843416428671931700364557955433155492765142869027675711423160584428229076757336725859691197256092196840615048033006067379568110211424467211663371357346277159927870595582210001297023811113809655768855735741345493546766033260857879219373490977710017708969330836822826140914017301135210704311377076147686218211229605708889282667471953392781095348511626136763810834335830086900093049766481432493299128831195398379516666525706651410970333388432457218175479348806321096105442021484399926838866348286509057301374463309875335673136415771702458928702311547344945885472544597263216047859646610429299717517712452132445889494740593695288828194529655480037288826808534088489951390607317775813938085068514524023829038435755392639286210865300086615547376171537114323433694933696579541105493626583114624325554101121337693705790045945403157448274646103943881191588011832919807834560414974453965443762951896501809241000367319208414562171532685651583144493985568746456831642683169772586243055521858285897859235239375620579457398895909331273292191180041410312255037096903847706608424409816353891430608258337534262834364093783732552507261272868406009473364607861602808442668653664676401113893762579639337291579875495655650457567639783142609697003541822522820678637130865803114510619424819355709171135530243379328196409983767067609753646379980454663279601722498313535375713560156484185275011012144824012598205309634365191169497600737175825278524528660817372852136565344449824540949507067170006024574097638096513434647524301740349387380646386511458629157593316702748332282050706675757344956464409461684357472036093995211254443913771597595860248151303282844987894660460043759417850874150994386130039052023931748914376097419628128889293774985990630213504701438605879076722540007441957142780351075596461479166558259743538260587311631393942676498831267546464605864284380989752973288019121989397923782748037668839746449206049516649581756441470053648161929927186102525861738775595832342695252994687760718236313722912078511077422717065926421973757844738785782425547908622637770133809788962737390587204280811163507151076398150420800249577899368258301532379058929118033302132283884911553400365313582573371559868163413606639418840388248666594121871577464364380051866879126662235593378010821291455260769338037733153429477129644429316571301677560967358812065247925906237609256789310750103055607475708946390817265775909091749382773648528940704838184097091891731080408843417657828131117730849379270581552092395703794144193678596320138573856862696687627778794293670633732319752372765379607300489131666355559540237227603073147154607661244131182678189433570275569695775582268705816793088235277831814613114397726501582162159847441692039281749588202859225363637796901110773550832586849001105851288942868399963334101830452539111215902023640264653099437708179476561457286037141309372806516204006274634159040204737058243264857239127679597714476140786132339895257274433660664914342098399157850522331787290409769489978946158972854451453288400895193095259954076087497896123280846648029154822381749914049292721607284100458144249560627477621447069468676191103537097309913367590617061295465607786806122788055490620531077745730288147063061901046121005063486430291608468559287736973861176378102439754844224436168972101815007697150630952757231022062549185119004885737780931610678234456652799425483531799602414274853008836463475075008516387517134582350511316782289764009963770414460478508236000638459263005265279067987765459144920334937597640235507731530867735793496901993321770287722816926708073679216895314271132635304232769789563800164181822037474721723288962484000467525019226345667635800369224058219197730475885433729489298402045481417651322796395218202745763466582645308936429198048379695069282915351975352039710643838800853936976455030313252183364313026307289775649815361233570127129862828392361030661242918485585664908863184889521404567818650344337269549219651355802108649940263160974845064363798998126986265099613779853862496527065320869685987759496834881912994757441647169516655484588956447565280650694690784631554060460085591060349985278415188794058847698028192311091404027734910931102828639324012087697392786094351796965538322034141833893071320795178924145978674522285783210460551927330096333377900119917801462877886612010462043455905359890240989053583776092664243974831794554000266902388910203560453236426407115046568004205074286190901279302205486453785542907124102165175202120380391553149230618822634403490610106568809067212408439662644190734390764048167022646907352195041479363264420946984873638959041293490865981073755312521776517367490201606374265813950701174277077038445490208880592006444166117242564186101380222204110511085267874465575194873498189097833814433742672375099797291238343161947685641613534716025265259230959720677640416770017001522666772358947190086788861737832722997046619350145959905789254252243292765939898117081274600001001736422966543601982308054009224496319053212106841829579777758352943977714685849151967385503829045211064464446024325672541036634834420813969886231258270178410349117956116854493095722728452039369946486356259854322018114996517373098305476966336236505603835538689751755470013805002448456239775432118055512046704326330309424580501292784775285026416864900745406447096761689096720328058271964349609446065383657807156976744327510448460104105806270437702286202792784330356174753287922211647116280610360697615251085533998133121922185111976699465518213360020474637966954444275708716140923856165667005775168802298774675881007245191069072209413125879295460799135846487770406130948110389586971504186866992349681170313074911946419364331524365216677698411800709329104957993231059307792938955180790960856025394238799581037807057528648322215753873067783313920994305890022167307104396459480403364947362873428882534102112290032760099181974201048805645329746098209471452104027269659842634196720646729645059507398885903839612962552640367996012962026914471148342552322024011231287830702661844955806588970253188925486634131485071384339953593828604549191920161225297035372965458226757192394657676174410215228041402117106648206276701503760590230378289583771263862590789209001744349012736726821615385608356240479729067047333647942865474136264990514659709809980481777955086170663736918194323769629597526693494862565520074307755191337328728227592465817040835738673852446626909493137849137586647794363408931156458102134222020844040532336668682978785917072265474932712387048446384102725430440040600529701810947604937521459289942729154953039720732313913395647272798396314309625651258232921095133256325798938048005983551349895950490440817989276698352965028069987916133180551172845555699644631406836157094908080783872425768939906671230602818714361743041043551239195440749645149967270013816550735856046606424101633700736332687552767237527169707250328571627783816996814040108347020795365554141954047984510811208764975915818599904833247327987584459166386471508187416058032047178472339369532573230342647034517294320802504539225764867764155970195055496554637227838105910869275376379889416146670349127013868059025094755324061466658267408331554032165001699986591396166489528896248929706224322965664448234962475558671487959904963211938360371047390849089249580502502394450674236219667003394999555123968833029571750084659259614077833022313308577684975336669378995252303923920688338588702638600728436888441636957120983210935174982534628208300129907997628798719612308057621162320312619794753028772597196564719999949395015008283977578495185215558609758768064635769289121467392116672376057924813374965350927249066407782313805801397476555053923102028523005800857838032544683192869877224860411427991925139527249455535777112169886640933081871579209853408531663939862765245179835767882736787377935892584158549918900923042984530042319982929756773882518751698647086130864149420802174465046388793766438573941814294525136571465206298748652705283399969526336825781171336118616559540952431140617571186793786292025122807975149175677578489775139868013681976922540915984071551431589963248339726584684240948202726968694801426769253634777173520562379282613815967184525799689992104462316521085493905076490866698680946165030042659543168485523109414329046698503720359086424280259359783456776051972766338646852902320698426746713331449084002366103259015332076990034773755028929218437486816633987360182433324541178914652860405001088992243767209891120807111991737226853928804113908983259093526927386871616126746378125377148908248168798152872388823887887190444017795301933000124223043839772047580174561951512466743076972319702757644356284050560410120260149653390351742798860594664299473911197107856979545127534472496811688536034260505578824857327328185872872591811275085645451826970652512498178782136324852339410702741933227096570236409278534765366438400125558523658241454416728802186032994767202369390406600285248840054173286243402168792065745172409719071064711037694272503141966226744951927482111541111868204947272115956063335315251602182544520674186235281103456646292304360601024440619004087319056736905990054297712135491917419213479031077021620686717008362146837204063681238204693930487134282775108739245139068369779048172639826435150072783915897105558176791840227206703094868454384366990278562844719454240089032672151348592644519587435759771107240486015548438579117993208734505759234576684076556731963712493969832362339490374928962885306986993394090176931228581017875779434847845973897819282947472490528167818949782791019576540792344339394236177562037724761266227101557082216249583664694753766817175473644412135082832323354581305050080509997800754308466195024119758773561090079484705868227766292803973515296470224234879635312185711301478798891359033716972302755243455768836019154293357028567904965566287458123759365661594346432741826359652527252234087586702971462557019839501601380287893663991052638898832256882419845333271828044024268856939861623350284543761190171566892947109091123857760413461437295692003219461232168024268092416007747789335696292568382272475540187430437671630218463664708561572185335872521979211402251187257878260516195544415604113904711401557494289048744242002112934829971993998416076005156464452788789782011296112379216374353213818855874961334868199519457120461208543556399825957673726101337526644886966760077994261124987683031229680191403289820098987078537510002523494288280127919133087773798076639076546357905032485653440944388866460722921336167346331172437600627164695850683367361383305968421282097022165667688408162902209635772490181172318853537865065009329941925722076499760155026082486909903462977315775379510887139350019454047524153810729130288873166880970568718104981011617152231180950758324621701965178056989367171527103371250242429465027868587088999636468687902235306557332131921791139214790994069167100998819181115058807509027730540043702814433026420553942068882423825818397986295151967226114190171672806722253371376001665455891294557685229454059045135724142409106901717633122781420110036016682957433639667840961823275615091620411912323365290976703377008031764571051415364659384213796087337677085956033829609981665151388772306219382784974730458257872164935168674441757320772768634670688453387061999926708317993510359124065038573432563275746294064376723608490998681638669916993728336998017510012229381150452504545037214418636292307399079587084756650721722244419340442627815528559968808392862801657471840574596988906061371289487104054764097904301242446870320964481345767683563921023734023547449586783854876073688309996258369303227644236484880406427490612815881972216867652518319296367472006104236729056176287180329971790057457990504927685579405552447004166626877010127136272854940713460065135176817240163838286227796212285822236229878785135923097796000328471291846047559053496528548020459429720385012232459668273096472371753136023930785931750397782198880229450997869589369014587730162801480673667151320305533525844167583516224734002779404633190681241530638402150218265838561238085102362329686069108799577410167812686805795001896677141149031186072350016576313371242110843464782771667248665874215831590667779272449928136915434300975810359361578496766129727495558454386786235649591603691824976439582880165221920738077340361507755048595302513638845077525799095671390004892017663330724350582830970259037054133257195034023725885201015226394720673095245196464217201039965765883589462379933415926284171668922086745493890042909216680737084739888113603474858719693361443254079129350691046175484691721295394286285651782646405429151425067450210875080832802395727610349479082206194148528549453132641861809248850143566201186237563982019816817935182636601701573881023163255075779701508992572773706304817468809940514584721084148298457122208666548562194479423981728516071601315374789139694453235866723181317985964280236292044505316719774510310691905265434459571216133820919844952177239481047935198776081236323507720169467304503890899787998372743768972922052498653292305179079449315272214343061596077546731587589571205691725172401733814119346177817753275022521136731922853208904330121777079930086392650572858018136566972869489436439560496634872815318694674717013412013154013565723149659786236387730963577769827739646018165562019540589217517601289906750044440350087118324672645394425758019084208022890976774202722655427202865590584649658546710977408892797553327939888674044193202592527303977740007690201110378805400136290882299065483873630753050156587351002423466806137793075657612196685558630273531184166489528253938198281959514915295852933996415084085109002011235183979320027020579650157757528318463104329525765536116033488081259374867805678031406542404100447430320386724360563925596533785252181811154901344526966149213859917469265805398270958375756111784107709122507319061274222621601547383685097241399176298983010605442728859741391236401299554148843452438214492181057336441385836054615488582766225531102632063061898567580309218241341301297929066353741929883044659708174478877876851515871466030193931923696466428225569822286902943638151306894427074501722958248690474559237639411034603069312990168093057523785061310950814646650000529184066451541283416982932560309287960358921832289146266572340163096505054503521970609235123960655429063346846058055614598931407368195415661130840138290113545072303837886668358846024739984567430922667823353599044406780729220036192299385111380252710793425356887155735980693198481562837353604032826885110654171583339403755917058357182422559517985092970966074261753499787479842975361451508758081895662967729544078164887808396806072644360054741724326648494980241657850976630052325594999400552320959329461314653997007955983343833749256795686826801038059947244708952704483609783711474512330720162699233181460915176838291476461274327636941632484985787174395969157229779511101138802780066803944637803548216183947096951479866569703122741749845033431792070053496194205476576754492081540353730085612130958871497366992912898291720131798842353791888538794146410343716234344130197533568879915226817587359308455275147973714798109944941051600229771922155941810505757268208777582878530679957521143796057597850679110883460969547353791843581218611273978264554423552902743510708166295277540332514425598607699928459483901798996640361494273740162381713039906831834382295965744582541874702869170311964726174144288047297066824535105994802433105970745385746658652439638533977054915036040362514686270676207471275011768915856654890580691451823178866827067393416263181654356202423440138073604757136102534957353443223165204048336597694411352712498961954982287839995260429879042142805914507143194749426711318202480533951275097148222524238939972368869860798429625802200715900567473156119768096524946949156990447383299081401924317045650655906788879731488586468404206432722513997638034213377605778384814697060712734918239479779345248789938473131161703049810827017670531128876863935768805439722745323727354819405242588853996210763571533306805572836308890978302217197114607997774859065736268520512542645420698719868046684609974286837105609902346555903280903305183777333241251451282095964914667013801194100536921221521412933096731690380061871879721962097137871385648333064213699788987716110462772845564402065101604230691999527289397635931947075907231604450664606655762557114089980994318179755614620500291684302595569947224660706507156389597708760287907531904613593885746729231724917108304567616931115247400666522715508475264287651946769726410724766645367577236333127220725769076171325279890564348480297268030772875372728304274846253001863607320657965972286286331634219831437246069520609552338556440742784866738745195118883678563968157903939568596400056770750782693482752218725484632712679328297856397632250875012717487489857695614151749353954956291963771606072411021368790601382847239132643038731005103175710602265183834074715955445403313177872184135252976099000698370983134374523870158815698758794372136236204262495192765845367888103385924386840518964783620579561644575411621400116239420618889132527868932040255880644323224391791810811042959789015483765836424237034951515286522892922010408919332444146391035195312554673536321966228836961133216824652636945106836959965361889232417754559638323626341988855116024481555118306452484514149590068363548021206500856890057962331231290122230225198627080633736867770786318266242142579832445522812319533582714960265674939210862689621470861518597625677004267930605616084077613184316502963915046065196406511691992737232544779844472426067834127295826808324664426263658814258653860156526747580839357455079623513844528735465777283208777846748332098379285549391587654753194094453487068771171960240886103960941404061140056906727667935371756404529347336886918545406255697350184879770496969239840240677700844888251836774186579466508028661733091315887431149280301345075747983297342467705785518640848527904780352331662467942672851220294726890635227884044122516757686272225793791590448045957933799540727640010726734254551466511878792407470657199675019734649485124580386417697576680652980900805636681078814311991358870797115383065581670984416564371646627642471865283688938908397273153023256849829614961803777090970127444183836394419646410407599539276145503574621147609463579739503708714457291502207147008597767869195247923696004877262174000123575025052055208253382822671804861513284189540399212533515898067981591303348992129791781678923329578022617907073229894561019939157444160281229075414003144618293304848703658301539818325824569371872338822176087043331279730542633251952649144780356238294185082928956362293003732230510723937108897569567173206428318118799799420817110458612125654944707496107364523007562926440594226041177786863113531741218257007631486621031497387593505427956970852158840494133760977014900435326811652609107614966647858400714365524781433408121391280454837992355723323535680361911627806604841774157133488774589417028460877471295824969100265054189453659368149048856219166004430789274323281332160874273905158773219966385818628014163222369654331571465653350050968762844034378148027003257311700829916542745436832654545873744044340589456300209111195105230284755112248600298092519811178001815537566546068766084216624873713362194869178578840715594313659005549082287303119485114879874990397423446665519572464092178985825538178884165449028050278279831076477550715499533291786266611733602181053000936971964451169215981462486342106391184297750594881678260602584483814731942785775139724713676260852711243031582281541831697495910775768784412534078638728945073193770949944209882675102607825095854482160228631968740810558332098624528464284770375290667486811387859136380838933208928085675889439016986930338345800856221566367045644169752818545856286698727226218530351553534174303590732431900662438405262847593498444294523461260299874392263395383400159103006430609708054730245614765044801648140094840513641233268132475911765063570099063264453756827387159556092219496039555912111722571380278736426121275367605174674131460069452069180287445671932173154968583533388844805430787226343995888827489396078659347808361781576082341092941557190396412309496811720180505430642205452650733238326146458705978298507417856629829191351575800318790674129740462832289973692088707220838951635113016141449072622355236689519061243874559889504652115742819296881292775105332230851617239830268172261714781356075531302709843033861811827803734616107733760041420635664423051859251394628306975188508513958610661985529602320781617834686366411582288735574151991004960953447072873257889894543383898842144642701540025163053874643014417077888418928313621032426773377630460897000986127294889837326149593256372030933954378236936412521958682472894216379158879236938332810951436917588647467373019041683626561363908253587204379527583139464579109409260763761241166605355858997348818699681173627090054570259216768680820011811312256142089867541505483442766465640886825689229457376631636496484360717310712856860076917545111567947854357270826816593078038768076054639442605384228836588194256692247723765036478016903386944821455948901147727531075418464874245763281230977323555914863205048029437532744165996732842151941424942079404169672248181039010276812981703941507559827980055832698070554095677582822947854246491848763313801385659524143884630568450499158730796229212734867108741369898262357265447429102737688694367700167722394648118876431269499158539717068023840460525470106501152578029136299935370701589965659153135212080425591239113968149847959443444151423245797475601395997632510525493644769967949215609224348851639656310143563862530884087730575513066812300243288433624154727871307509968816857860842120192786682861248611504625523137274070493626347788457615046220936328608253853828057143120337215547609991483200632760100419960056932290697753341358269725794497556269563554953044661909982009830248242305857174367330573514182375308998014737961483598460524538995447283418405594559817309514816769819838525087189602828357900558581781198848092536888188574833804055608619837437374419949230443942798026281124087413443483040084047187469825972673910754372201445816684180409657416946828222110598936153306713841523572514481463986686786785621369119498040446461326350486634228357958237406167487378587601146997993281588659914510911397034807826925142997293986374537081100072553439758063274083328095516355310861266893838562396311620927080374034036962060218374945535739601426828816540922125105547682384214348271393799470651564450904572545998752295894175404374898767300213469488289331806049800054101341546180860722915110855956553173689693564554731049055485609820513073915757753470225809405423976433235544929169450230289682801055977894892089554281611120708854242946662921567450828853223143199505943927663976379914615655032070391287726296903137722979946695245120993086009784130431524368564437457660288146948474730234487786684586443937521028013254211570555299948136389228219108354620996393829904822749839374153761642816920193176034407320081421291204292893030930088066222763118569612802736036049017510241662993963947067022342536939157222267232171899695491065240787374509852323207090076738605345289797739971132350554917651397417934825732334785061963947295028435144402150684791928144067740421427627942459118974861675375782037802146583433178042524622642587420194052258826410557896286846828358435332812670422274622834442391336091915267551306403590552571270393905989377270411016172657016478642679040348375066521207577788060559853994237781606947672336668183371594309236759318356828420940632101374023257061449895278398059049463590258500463986001314694684720481654050695048640593464929528136918176155528866278978906261433069731573080400345883111158661596620970414494414743072976280198228851156364783348713562355078720027805924629010202737033887956649822885158897246019550497930849819547507899984920272796591772497937016538444030610064430642364191394371781246211199044247398795580911254726394912647577312799884878798601280218496408711622969115291993537806816291959438240967192027157676153183895132769000293481782689467280080918707551388036170482967264090546431301653469255933937648759050735184234326877539677190860226441930336272435417929836409644599125713368106726455019706617031605848514532443942881663765052180165656083359430571293790387955225964209735114342630133842719000409017910508485569076246606745960723113180893793153922084445441661262084272367636849762549188152215354947534128624425097869920462840048507293343946718315685790823790690205105743860622002185555362907978658847530614531616160880135917010513282113985848530500266546152918172556524736397317686847183624328093478820415258343884798752044547088028675379426065667463379043695038192931595699148271032397924718380545373403251964885474880331519975992552105330275220615146451904034530818029180631397416864603565824155461393159714591798341458557190280511049211748052656964810301213159146162636569304861923747529743250280156958181886617153071343710993401436864015495837195824265180125361191029865851861705784403526858549509829007127901129114564498688282776169518339455800891752752497596033740155436844360672923688188007374618901888758177886503878457224114973269297834505321892037863068711509489791455699766749312788821590861343287341906508745230060959156717863877955166015215964124592936435070555298399128043312091523929161791130689502981979762274285766388053792132626443279456629549530064779626040918141541253975248088113625836875608832967591029094755930866443205033598072133184838448694845620247364447684359045874394512834128596514116718942665090724625597105786095005851279017911038546565426542140818114314548606688184983550220071073998857434680979139196307030451668311505446455268800121303869185933105956960815102201529242025560175541094976565151218940866101262930078341318587579947235396482611599563622075676017767064900862029468019546349972093610885730527385555582876660373879688029225785971498113220581036880791698955123345910187026833240829503016283490498696662776549470286876248884778393586686759235987111129179634905165637958169123367751232509331675973841869365598614400655274905178280884366437331481085570539690106222379598793034850203673229814796332973685802227295591127616490009346377497156676980661499848384088291187567014016187475739049717820017002315562171227448342889005479669441570390850141147888954194903215590167393878289138152456316356934819575177096801657580067224166984055224817352920600032246008207651617459846956742947686267355682982868683206041221478388214222317763216633985200587938849726258829417997576566082905316670702957958301793230425296438382393377898094310127361510862580355440990942090926636287351093213727302651414747948511146460694288229243328781400099963116916747114846682821058624780213710672492776888396532554470547531078412852119404102771196929424308351561121552374163357047432963450851428026795365923285174204859732707370354212777882881098847636042517259021592953182159821863580876586475089909705233339702608588432041037684344505932688552239074710634346008847534364594557449410519343057387064590338173498086825271694237315279719809442722417092330536693649910026099106223276915691919919678544621527586673544500016273417292110050797618222957683639983676821484428694299494994524732293752720313155328755515306659760815452325575729555889498190913366560535316394965129620904954757537031911415489329250103448022643669937459563145435788414285946064585978177105309010075539339425423516868610357961219585591223500201547194776948251640903780279180405920641254668275312152606063550516543050726753832226713582262753981445920506381233619159022785492095256086254623125080056734178698439143104948043431690391217290878995247170739076261162914750980173549243265604780243550786020993833142416368743462117087302788992756057691145822560699825567623060816599231706618558249204856131407213612946089217151039023913263692951661243589020194054321756490384022786213050167419424421061980132922040679823107849791858783999965492589979166697198455185529114833864976597672337606876838476282929854921380276933491637649334821665064521670980623470276103028292944035944083359039822962219691132245825546508470713040412597518994780694577384905554327997715956655356456423143521444584175188380878482360823960454909806244839124782494900881999424822726421632397134477235092988910169624503632195074911428016382258411042500360529340600245327173012260395011642353380832596402135174841103903589842488190989779096238106773701577800172390783919646706889162218963139195310035695764707997403842164856049419225365466161405089632837041655896520873684336730482214005455942382076665870094227013389627592760021392717192055811369144550843708570270807397774485372941858510133662865579119562756061537216697187112534998850064338402198724846371492576063881774461648520782483587196626689434309358446128259631105169855001389876096081042810292820248834047846711584771489629230532692435517515936443699100214117032985425181852576291773191744101696545701080447536884106885226694987358623869763064137038207511750726032428050611074661003737398188710300578603072968313027285267493005689432625437990132756332744010702840607463988132505917234022272385255065913744959440307459315769380074729328573243188595298553356917219386159712619927451285547806930575869956718678355865876185246202667528113470596802162414879512937887134920676074076964806664773684756865828533434481794732734445643038379182282276539620921480776768439604876239565522415595896207609484904506283695460784649155327347753552841196903412225658183153072090786322286079776911996934949852759149211420666337291959526801321137691538601439664311379451895129407558933335927542986976770185562848906080184153962881466874020432466382760441446384684646849683782113016831489218020152686880618150381460388479324343460955647170253720253380344273580489991595496276919024218046064723071009476896482779118259463001609466792534055111197798203097618177237692651743538242914388858677754223055374750872910340073702324569216642325527937611974632107258762830944238064698893734661642282172039136881245018941705529008152350446854167048313434193300691498213787450051964990349608046025308509200152208993039417475673618523685433868533729592139234818650172423356696741134001680221339291657942479516566111250852816683688145395335902794694416958103596450821866596510600618318189629849744000709343649666306202113156230112024917859551705888820761774981990038908494332885781323364017259412147231881432304113142835254059884883995625574127115282595120190168505796481530059132867902093605580607547498986305121312943828731409821247390688777849186332552449522685248129096871964044631459112374662582392045671851645345685579222377968290789520204357099310435887641870292681308217983490007038150145910067162127932209153455207004081022294942902499683611526450621451062213308690194749128929050307406387630474251058187166967208586387817302280232039949308114254286651515962547186826557854033268025615183773896848411718522985974235253380922232983706350923614273236596729557549786521378413133909113127715210614969705264346384966716046582696191071426232000178602586417622196515381065644477517167066920720175071691642537724819695339490537521650700357407077319431792741432534537757251821166108593272808178476387488061892048094833535083642233741304457227730311290935833535449487485348747110670717099010654422855418783679924837098267825765769555013682810430492071285364358274373535506256331246508734001340916971891422406335436886618076350713213213541324288469320753049516271925810837287534775577348222935614013976789289286009131230435747012580224682478795678817238306550437986727919257792512867791207485879640534936123891932585500975059188247607790764740821704703866895464737562548195746636768201952051277441428682364456387129947252034649248032113520418588853915698833625766214169348147734463738172110239297404689294919001013610934081150421629462786929879190484076562114332717809804739102866365599610819527736925985496941899951873959598387549305074127309805191335435330871351810120947495843016906090661523674720859373027369514882291138318434998122519615955746305394962627978647576904956912082276619070783919177572633609321202221487166272405448137047921125055870347288388506753509199949216437523200790256981676326606623508239841405927253283350257117683833136309427425000222882849373160271421281656294089848832704852755883721999631164784594768223730782473649430997230044538994589317305371846786437711265046504922150871911613637989900005935332917339810243366130875473861042353377673228309639719164979287200026324484972331534341693960709499586578496042552122856602574819163398834000594797961280350446019583750398192832552663610267490374056873162422441867551752181806352504040778559474379540727906960235121974401303548468964267542872238297392517386333892395737874574797356191047619316806884189357465076505813762358851196653013283334613848358978831646587566232132316671494152918611489628118345605419375190779220095894287415874345402802837324845801669326801352823619574454369904263846646104954057664133538681953530491568531677015455906002462937453251673688090572733769634431067279259782457392456035021212770530084960745091320290520054228189642797802113084777449149450750784931487037112595700506989080764050213775056291328214452263577572283854785881391499688298477475959234412408033918512140431626036213869531414633527575686742681323069342881519406615543101793504511919361326572502162690045068751873897921421378591592714305968315004956353691468345014529355868244010200203556959996600354649641194124597587901683136003680782321800222830136066070328976254467178375790877856940404716352170833736803641823027801220967452957481491487925573936337382822705251033343258343555804622973045628343539478673483410686863661432757817862435957076127346298947090978717198616638657502512280394133219050026138840902752905591473281248650993956990432096671366793042783057288722699024313718306244392352425412443426766329663365241580702178880121704716766303909080750347207742314551726232834646373073277537955670395900753680301647028055848102838409529753572672548005564711489045630500804054935802642508146829740794094964500374753057778965799568689686687038813558222400617433816092496684306025716658416403422663150817738826572757608612823850015482621635807466632307141392417248602439537527855511726211198656252996081785892933254656088658804954852290666929886855362741963807448015998790161402163276865772940447078937623634139417457046034242255284645521361537551465739528323724928893443607442889751497439889220105702160583353223066796619360714560211953929770483876675232564287907667362261781859913757553069539763602172460843132028346509980041875047505500460320020733807055842840429168383813432644262752530225698802925164566384733505411888075491914573200920600319925619426338744991534254028045109936958425699644016772763298102140122300382542915045331841538323996064741389193015580151235164836589706310086838835287351944780101577555698373934981592463200262449589349142179052045508872494495764963120368739496388146884840240554053329496355973080165578919786543969213521089691768187236531546873106518774818467386128525431572576917620270771465242873849793559588652698219907785958389843553012598832228886558273863927632309913650886951671778877821121942166188454905230141104993819111362596972747373605950525524748269059120783322415951948416342949547065942733936658040725278762998867662999840277760619537999712108883685973330967042835185246076618887577839419540254552874687484356920801592384518073665082812278474892652944294528787331771202696826731849007131101116353016536073056809488724919943518956788675450665140973432857126185563724595924851448817260363308955224984008013604128214365568278189807857521030402593644757214165598588627483811104173024373863934531332646812621994722592374181738654190232336592881910870494850391083848724951076137515506183951658779903102900758901380170039509557471314755279710483636880209314325776421474596374598194667718057120097389719633755719472354296331538728692017077897483065282013218292898973646795125253029466709019314371044902905242389058055400456006986614906926330092368285859707871186183410386961118293890164664218198365743561932817900100129958389940101164408263913095012271013793488937560485538515420997973897965231640274459688446156828011297688230693669571238272285024988610847406876981520402981572810960249020924994072160220542686524678347175691927931071910881887736723960251509947186979221511207467842027590742489754638924947784109177446669679791573397687832729806851046116234570112796054979167358519502533894346244272871649888497727168597027335907158886439222265471593396529656471813039994967407522790829106254477694346143231392784188388815416817620815015623904736476855369935837924869840601873552489528023047198127569446444772002568306273156633968941419433901936043749528926868462189931268555369202180772350208573927681031438528082467547857508333521529817057761024604510654513152129617113615974561224290276344972759221187106318658886984188223415780750574694865241656461471776322209301717652910951645491092853013611588081795096845585094644739635539895123486238907920964102426211245717145419621036332498498307603527058480436076823052820880406500855945871816331597322861670284407371713941749668559842024322611909221547721303958712427918861067991384887140586552902418101033422932852954802310048308456619485282677818059366947010160101548038573273120865165847060360218444554995795280204781901851770064147979161523360394585701570106033544490463686660385597033027884296547596610608732652666012884740184886781777084685015803916190050176669282831079139860759904060789028276217380248570617122013345896342360025009578799182181139982734374823188833237990856747529455053371282080161295982558466500785863527407213155066043671343053173925112358597727510781351920323736033681520354511217654190253778688596486709880914910279931009388909426517858950529442610442090909339983817435757030441301698109737533283817458424817278313082797652982058736212963166962053812088244408686831328303825808424155747005284941072718301237470216809057465207688276903139306053032180091414273071671534392960415064317811228957150594247562258318976385873537238648446687124774434529185203157726622582763670689218793911274926222393526639499843658116712160444733463277307743683093946898768661820141227317381041700688385852207280059934788853532623547147252160394386465236785690109185725212761992730635929419195959036987965724287561252036125509419161254235600823224098409641722675098555000965856447194929258128910273553537835246863045944903707537078252836644198663347243168175084076814685286434054284817020519399796440075656901057627186133687650081285169719090632590249416145558063482736881796468971134086951138057111907632868734638568599801019279924428284494054893563306802577578050450319912056290807001002410120619472725235426244616691327324522485590344716258294400981792871867677119027945706554170347971344007361542230697675844174453367414430744160261728348917747908620202940692812002212843578061749700172262810403113962951879758994292295536892405397383970654929745208908536544983686324517339831530067748805750022888781559554281509513940089412115852841226349753554859406105501574351691139367827028739190860880828348048660832613205301413272984194138460139492955287462851347824960474483333013780155797285169796530004200174584826750919550216130681979633966826602369207451219082675894023169969131554042343309702472428129422154196560548830297008275963681105740284702730006217251509448388565743812889908830344974203346185090111189326971410634930040325963588594051295111883350842620126142775755802034310421779641670494030762275735298448138176060319909209867291791510206685702581161452646462748974700464465667852757724086279658272819292172468183216773081694098679121199219223214130052836432076908578831401554443873659500209765679552129499456706248847652877879661352296887492824781764813821416453789525708633753970240230672983650620260799132844522724241032218301648437033246573874014641276014910854767531558303080047244217102020646239169491593912993121260100668716713823700501284220097963655505603259845965611258492756972104153530451612886487506120924732512298145116902802347842950628597131385104832998771884817902802040619425342195187443302132779016363441625014610968311618368501778342137883599621291227855345793642201499437847465537783650948541711155074499019001809140707497367691370796944460435825220171168736485709779328026914190162355880890939990033649539372082526488516913479087013551635328441070282221013760965165115791343785250271945818319835318300809916494793193324296748169353703205556699542507110461453714223030435013992917088680005657622324986107383089309454721455024977755318120695971134658673527699519444501201199907993355568474750778537179421798994770907957445671030810645521802536511222621137747567949988605096193447966999968841442024069256551741455318276758830660620258272659396959405703926610009111393346661336061069058079088746595364353510029876966159966925419363038478660309774783807057096482425791370793181211825922503378184120087301303806236458542813177832960581235684617803414380652979418055282052549397467176064970784906211309002075319120143846036608213008265813748952805046537591708397875226966333233340297679568738502130880852437395163056663651714025692861579184281866725415714451342477458514372144669123947001356769188473125345341106249479871437838274694794546229983211810938994662924640223503254977184603120292552144558920523849562160703051696138069401065704387296959411405595299235218608785724497182625313716324743449264425816086969640070525767685895457307097666528113107741590807449818703281572455175673190379621307805442583834396342060642688821072600672279443509848223097518175037615494879589708309259840481807082408103144112829913608034043555117687606981315691999503276197655119465390872857562329261670795168269260891305281942802646447861644307459650183432378349572336249379160069942012428800085692694999561770384041528686774175288656381549491391336417139164461992350043619929500693910750324641030082123061666437399366190654322951373456899934735560724556951444253713880588694600999450944877722879911780068193182406444360013772533213694436323874562700937824247502482137578323162914211230986148285417304714079413119684265934118724363962811101591665066962145778532561786182618782358365174744972204968413454527054914876454032043258628357375659307521576293877576382341808093062351313365500992982418729106981172400647570395046563051159077324017642802412997781315784103835060354402182463863845549920930588628207944068539853825265115047677741635297528388461933109515129381113484713428967000572228364471702042734494029135059918350261880219982064509853567165543413190213257341148965751955631616872861175127230243650995288477679712571398060699774614722758735879334511799505732928720066876980077327726218395615709147199661407810863271205885705385330673221462069776032405707806727409267906180725564195734074219694779338817447258647264986054575906044582005699474152968391988106455726983164788297583600433376325127343680586310676073660321016218733430016310410684756530654955088088308904875388253808100468752008966236712310972546383014801722742906668710873324795895441077186401291999653611947445622870014058677815125296353332906745684327718926842914607265959905773556128193621828439135470237563324151668350666242315463292008134368076463043052228276780801071255934203110695497052584105739731155942510632965655160227806528269672635868174734901557993840001173522269906080307596471958530251268495038519554603096779813435068623620766429821629589166322618497657374239903424490485510538548499127684812976232429196237195353207064386037804853453678884259830271539335783213102740105914621269565456526642663328954453853280845219380388295004631438116213709089707453579422083721116722176071139216488826938592064330040005166879105977680996636551676796671807791303954310378644813483333325807680717363127046624961763942485597426127562875204580887862446014621151918225969875113915757786401260251022069051547271876074316220220243452061497882172985474084620514677681008696491233405977838450152973253086060797936756907393267479806950293367822284700837587634250913741066588659641530562066985962523770433208340877743999503001257104876849947457591264856026640380878491052995876306850284743322481778677061483745268168684394581627868851875776547745839250016379099039535602234516481927716320676772958595474769184841670200767859871985535971991754725757609909988355777155223734903351757993990037073324481541417482555458815257861504278481515412296676187749867445699890337800174721643935224015782521635279841479388654977912733662490499865807529203646990447353260609140085001715050904253632318711274691765408493457653444223014981985905886395301880991981909273969249965639624585021583891888626678076880369611788070551342807374905597929172990551362679664525820794112996388536169176367346862235758396767659152112636841293295883841967226662462047839589062246369076464148873663896579842539374756638096867245151795216903893937535290931218587553200432260035340098748948081986195232566174977562831967986285714004970995513938505593767258473442325281451980708567575425745048750574862793879091433727019407114455797403734163321970265808148248203250562843528856520061623124074656067998049617231209828873934513126860030818834138498674173259694074586979813875111159751733841604135467830128960241468886746545450804523878099533076717682740091241402541894597076849951727872978730348543887116660394221033154327547020468713318395429569532788517991168921281699469335942713131064729833957332201004988788931377017552168754790378920590020793729575536262533346142994100422288840786990393973551224972644291739641325332788324362047818122018600567964677195448401702178348945511560159840943153967955219480959485934671191303034345243500312183570536247167688817915738042105014003561210069025433464879520581752343900321938574525723213931455205330881413659717232037683614973715267754122294975102227288428839663083050056273211776600142668701149016778345959921413217100228235194839222426348429737357967102651906730970158253149993757256020924699552725263166071638988456554223988026719177437020123757484876936001322804519868571265768469345679016712891925386217179962661141022996666721051256102436802114872710474356146098480416337293103006772957888129143850979027491796814672551838797405941216975960696324993275403622462239672455106053606702141950761630516441071674694968891175741384322176552289400513465005397108598725682150834590149556534724885349824193279489967071210716353368855229998303852834878790737171544514586120582121120186220840009494038882898476291929123215258385729227237913390189256513507385931663402188729570090783655061406190015280196108911314365897631169774602657459709341114951297952292833143071282924303517649892580853904981006155395272714026707645614993474920449072453271214201855785561957959484321591044271538300271433461185258460268942130906114028925693906410665663794812162095843889679955443840128086459688745542162027788398935840015160805292076645708331557828850144787444781773996132177108500902845620692989304914928781303700762344676939468876023315100576100446050659335189663829880652757793109354170706571551949306334467872684833262342614062590859659319589661978203604598963465328100598183385009784313840710873664460644352362027953869374488929634272112093486835210017335649208428872915260855322396823149020628906058251949806929962714041456509953435127934264912878560905508214096407958903695101936855613719601085390254372672919996888796220686398815190983977024695953090568903008198153167168867314037591215568916214194505450572052510457194722433869452953500767440921925719817607347137743705194731967677000301047992473215979504408334168493706231729147070945278890740543463585189828704643122425226200627247132591756181475109998575674772191029285018332142822947214657570219519248639875464687962681776796296926831763449722933250094235412262225140395142892542677265427474167688504685586930160855249949339144712792329062655397464397766683554233400832812640203714211343306216173575688937392486592574710200093477833727715116709495504050880418972672594946450705241574987390775675769083400805258146918495124517550252395705066471437598807488970436186650402550305902868619332032643932163801413152187549888413217184246967763444294026029567169952051542788966641983636366601413991722671277651551270110197840405009257666897415261895791083998092657305788098316922859372509602728578661938041883667397213174486986145357923837713885796387980466469951904341055812958901347545613612027426555787160317890920167364080003799232201929385887444327070646249452243200407685580035293104948702860200485202147739177048015869392213187475261350937573345051106260458167481330492038032659931495343435510079532967557693607437229928907486220977041407611207474527276021435978810662881310103919278766132940003021407822898090742604408128053313480551326995583915774209293224838139172070282489170231185273996688556591779876293427185448751471524250465340067427797649535273984419775967079295061300524492923406025091985077723601316421620545451186971544209135831008255850748000387626309496864352020982555842220435970041647611519092261248317096735228263059202791984858492229482616657595099378082775978570750658055045456796879237693690663951578136810086542287472393683057432818273854582899689090450981339980040481920939327202341928097559748086329293633207562360479752892230378382330214820705317082297952419733550487591737828125181067081777571875010837489155056505343917724628376709896732260308588650590470686061412155897731675102044848923500726245368469623657015928583409079014112045342538415238929684250604039218931869533217200942604610929047008023589681518305343212163156818527436405994974435349339264140553122177639223126155030510769510461103671206005930662428767618942150933514433989514493125325277157891328725406653121777467379247275116546480276672990949857238517184221415874192433571306274866683024006380963729682295805141297307822525444855592566621810288939010089279327951130027550293002556063073248731988155868360778903387127607847905323298950886323595324964875655758211708062250620453227016397683835188964501979227238981711798130118891405129361326291305773070237968997308945821841696659225447665342174644703823361136695356074889291124254442864195950220981967107387702460935057136608430379468424375107593528045045270657806063042758847371223328594611444270668284122731802031499095518624317618675992436972304514174029170770402731115038829921717996381112028862676196474968511513950669138424941940774443310846012584178011678343447756132358803627160357767384483092790736985306700771852823413423457296394514413463084895526218851065389041186999123968496285714317075682022450529526953246795471273254545322824260819076747816155678146150850951439856751879912352406239579381124157772501706771122665093157107589138805529115730853636360688150276866967087309058449847679399205795293041641934416555733397272008200965366058885592956438760248828560764946947192168646808272672851637008555317851761286606228167558797781403304077136268202585860540564337255011048663352140430096650946881848602567931651785471292912119322187012314594642261655567757642036238317553750467203820903604805473092220267693574169569067551399955392591482115184991095407640249256878541980769627330370298649305566699748255087260764180324834869201792531942023323824799947311503832681845019545917523083748547611307051719170783416067678079696806387958752984466259453340502525304880787435392789754115100170711660782541837758659515898938111565935412264572023812634017103322166333570258466542566566040417250206835305846231503052995319583229102153008893731923414021664567580019190527321285829383407389294946442595506370388344928436812971189834746095490014237156587744378278805405946112613903587996581356959131387223621281719537134219457460925118623594138092775314426842531689178048805106982665739862488159796495847330654069026728072572594673322339126602814716922473577949849801199641502025298578917496578312313478992302881675656862983738854524326908596967656607423339854186120849024029552082794446325868376761240803376925535038902169608252650620909784447510475382878972569160478082483894171808772609005462104665389499863916672034705028806106832634080126282905886421572061676079929977053613770799606984470696749192661442583868180484268608684107409166088891438111790718408649894698194611755380164883621354531927067444361748068447556718310903381316603787693203565200023166598682042607385899180455398312168908940234716319930735320627457944911757080944985064943194230247099832873383710568740619461967151247819758892287344835719167236992296793301844759740784969278272350831737375680309178275964978333088576240208085564747653830555058590641577358253499427594597971046437008129789982664765664455577374864817523325674623595192986858439770684283435969545561672911372952848683565891625382732215223961704781964978337928999417583336687535789742514851532189498344694455427394188795153649808930373681454351080234136573077574194233054091543958398629331890867580101774698609775860661652980604526259725966452848810355508863739707620676031924927954145498629974988636963376571891649962625708714836235636513585994452447605796961189479538700955663758993756375332509789321177696217868072989873191022165249412133696443321764864843396552372189404075926106280165531437294770266343625699392400435172096183729054985519034390474278236261926368726916343195307303282868574139818559097745853306815865734438075303606111207794434633476774610867525508941812645902340826528359098840071289257982721036030116370643019511478226191721778148890287388525398052809835613864382570903693092716339905080589139893625505724918899508630862978462517170935942073996947603223012850123506829066556127884825505507439366214435077533348857686878129203359493921573118988181985589571642227182621378008269745881225871830749485725006717542901505015851171484408234930463800980614181035602752211364988363005965233425757848268103079647088563287405426365924646065426830760974577095391225221347173885289828090570194057338115297765674686941591179109498828122259539984541614669316406960939282694751966895402807148435686147347783916460525559839877779685090554125628940732939834764539718984922830479398494103155628443385633113312798538461646126153162021042570743696309323295509829587260990629891838218790346824607232762284512555915840947068686322657033331901910667876128060499948004079397905720776868149658069542075786264308895684488902295332982870794656244107486674757273842146921920122577684473915802390936208021009930935253789308320589462025064186677994999881372755363183865819584188622454813571686040931627169680266585646833835428508353524962589382814188195849577729837142479581442091221769960391478672598338876989035269585852260990839495186321681291294431413369040693566676936913506812888506775028385858180199010886348829052762669902952354725672076204534370457555460024678944459105848224025362275809329389761631676349617477552055674797086931481329095486456435654897863634545353093682742580643083863850509637858964601387852800280366743376587248401161574902474265127995241095306157121524086760701678272849453477886355266797439867528646663514614297751165772852130007286344750112164522581959127965832165541888945247503716937402010410535787195498956604484973477596327434392105257303649240904413192700885515550840078119344398233352456484908494203003883222780009182868852302059216977178573597252630785613149410575465260182920608249476340070519684507918982802959388515505566079620040985646614825464419667161303906595596928509686494164735827942118176566344797674754773105993688163658914560313398709521325552844152914222115915920272907054636113071081494260390966964164553286208637781918838445058754189368940331171505085031852822850781707516065807598170254630902585881807664201763541861059450620909754929639404731739836737826277864232685912156906852088154046797992790044636432538348963536412864811814859586636358462409381776923718181724975350505775035886587607072189138209672425712818262247401527642571855786621241155641212187094805268436366887884243888797879775765469697728965962297877865318727794536425162012919119184563810047736295271625953693995956215593221806671745460046957709671807747234392209460577098144926955208718655064499467921831074674253690179597105417836609316263502482085850753784718488079043117588475167251233706295501088393798550213954881177848840999518898513744635276708010191323622349654780013433545346171244407476635487526780602658407949674104499815429724633332837626676472979985364116376332728229045459288574816384722102079036542821070477741489912614800871451224586553148049093136277097352221183744719421887897611611084918888718331114309660894104598338163405128283052241799155160848984437585623855590111040953808208528281287968501853406272493449277455761626807116003409600964980198023438414186789961054517846389879610400028001564241059322141269092130914647479547145424741958046162055508773856088327036311720085668877474172026997484443693615456719785288900024712554691428743101055050805093696811762274054628050419364238070931759205722690001786359422751682314587015676117989575858055127493061325849214894533056844650990156915121554226834742827513364270745401944849946355414776270273649071311755687771424892093168513653037107553130741892836173706123941859889892445855671006702313476992500250863756968170587945531414791966483226702156221559835177184410811592723505302473742111477588536312438481468779191438983261879197743891634103267602149152056433059715692122279285186921275277829408203699088079632274765296042219175289789306885122924396487328743953724366315941792457333432343774616897034380293646682216960621583672522597876922196141618205282016398932456562761349172796418990287553033039999682485881941325677518933261777691061149585536384619683174216360124258810557388881126489504408772027105627767675412901529884544143742153837907309631856608337838693390129004164266099956272709919060886229826341105574118078139451835722199553929376120184840921159943642439508414860603396595210288556860687766159313293646321472329147423735900307552881966772661645916951470714467530373196572999756282087712870395292553662032811441498260281934224993413485742137503334813172753833751980594013071374703298003808012318868647059565533708748096827854418970653326676619286965965822842268492123645910918682356092939320182883149261940440984011473970354167222499569528344576535504850389938638139623997380026043228146915601108112007021711778950670416703950801964708931102181524584853633480281439706084349143145878182475421358146802591415703705850396415141987909988585326644946210518322609734313519658483021430287645539331270347693705902542367484169313442040841002991560906923641150590843209301497846296688246803251951237174824194821558109187240836779611877375300188742688649016619799153242504842384715138972576478734704863434738174957420922701424063276496810227105727636494808269337894913350184238697238628055657041992640355143168411091013829975497293951972349283426665980861363123613051963098204151629032855133153625514497225300906950118508751830958817400434799202621852614500672832123264153733722217423539478889866386109498721323307690399692100644354793435667677057819572010831631094464220010562636427604406400067760226816553515821365961923334049708322557936780505755451272554066011920712162722533923171696108383651581100944462440118638648523912117276198268092701010573874566266038632140540348934787688083960536801265905012030108808080800793098936855609721137920443443598832452125846229868165935547075140082366395387936648752542401102963332652976920955967146361484392507631109005157401165727339819870367116462031576623419481903631506746837045444648308015070449116947386986283842930356913415322808510222145872250722098586358860989838236269397799947207168135734968022016577791034849634629007758356003900981701244528667139913346630799179824577013397925610326426406486866549880412280774939390026631779855073685200403546065169040900846240581031143736304265846286599908365784184758312147293938557746795613496516907802229013431112780924234595281094095130217315381137975456316847722560079586775827328254365246292914686496132739579465365376013278487542113186348944079839837283233831415343158834698838141494987596130656452973381043341030311274618336063298185273658393513430341145377128544852138999586595919234442868874857022305425732168244238661232309165920053119753573970389923350431856850621950068677979849620405468616830369699827350735823892744905534013634535201198268343101699404086177917418390190302735484170766503007843058210568059168090231908508223756478677375140646240200638303590388163632511225340610559773687790097600507950575637459067579171386055028967804237195310894200524400385056393946389944490617849367952133514319719792897260154535283811304711740835346157213158011741780778616078947670157731378445816770963866730974308545708021485245357662640872581274364378291480357671880016876476125304586995859526696643190422892596896445908237245208880039742454578942817328680831784393878350512544055183318133911763023090353254711538467985653146404810140140851788585434817274558574640556909363328962972368490363150497024870452468046052946954359026466812341642975798696491141994455278723274545747339962346822663371596456687176627457845590128006115341784005159192365321955100105699782918854338380292895462168768297155260276473726038813164607382896659728628006083643965668733505168205906488736712315385951837646672390684760754062548314691805011124415798469917049566123543565740195144978390754860599280077849687355728806713741736144507697438603189387537528040716685061028656025411356904775518779774907683181160297025022451974123905386977063595492777803750517642877923128836200546346794146532513324612982047601976364098941083670822582964584099803967611770586367429770456132969922007909895080992185974781301689169977796196443049527265861833709577068221336376824597746174434806362621137138021662812148001783948563049044503937023705185843961684862125235974507734056058445961487070349345953526825570531405746630148125067526644539021550140955060910257119293026914380715194239536621248927172174682504128386186302674533533115102285777883953980102463890732196172884812886043680817714033115562637010730986159750597952110375803764907129769627289253152036019695652933614721741437959933456684751099750905231475069061184017439909098511837032149797264922348183990603468973249691415871952422071180316828428133646076158819873903517018505630476929565873393499378149551190441113017620253399284366284885474321075125666301926168584669042916711168346283097044045577189198335462814096328228565296357894793774684868385851782459630127619634768509567226381601139925447952366575429562152794993278650405725212832008918715706077587498851131849201230870216601454522779458150613226572426809428834870016219955844316153250283818510833404448639345335411118644011705301233208575506094712511548513650560311051888521560593260889609075085165824120938170881662824313131344339706204250521642361126136622308867101664234483709867092261666296047430590531820763271392890844951310451052350370465962158954001775230962183802592662195578521695674641964633173386604131475346945923298001700358089537806508154163015169111978084803447689451218336415854417758675185371517944068839799721711565576493430505931876617788132116064836114708528268187962678762013116857116172790835753047962638523283161264170519145421978620489628094158625561854869031895188416083132207170963925911446615601720313746323149990885238897648229971047126510242392701329596990767423959884113889737579572132930643606482737700070237345739374660961184096718889715026957229985627977698129582087558769403130766001855090914918275837793441062553664285941801020139367216108115682576793490552807226683935287057329884851050834135231323174641301193082031595266030942144119934747172284213872098770681029464293927194378817425796022628948596540528215595579142703442165068191323665573735021124200255049152871473868630222209775637924979941911475161595928904071172330047246855431365481303957023049219683713371869606057069981536402490586980135413652392839169424195406797013468114970895369605068118688047930747189870107508183929981476535342508800868088786267064421898032701297955182115748484927327317934320750454097110656966421584889937019653531085222787258630917127722360744592022729425053748237079483088837577058910911167670496594995568863451433983026651551987779253353564034178597918904790051856301749227698973365605880544030988005924671121560745842989516521240889399602530830235287494431129453470857821460074615122193281868829623752058173542018662990564474894812665106235588345237490673062643592029490194643890687453506622758676081769595100349923736151523130998483050989591877620347871752376806081846110455700440677951986601242630541525485860005135970878482737416768102107381627746063813542809530440787249411334060404266192159400587515670625565987265269706168208308356190240114460989755525530591620347889287055846496421568776035929798524754751452457180045469146818120773806295626583384402527554430905330160441012828875673968460069517634924939691019950237795361837005385206432773929236441817223591350375497910757991593139825353592862496455263524021793664632805591476218059217248142685438715913145665956463498767021685093756326509969382622892839831016211197768553544105729182546094712443422202535561604078600656194739797629282409677740895693468254427513154238189957462336732121360711576118817384265212006905202662612543197399487275148965719066020834170657197284458369516029830286808722992432982196013117526777605813020719741327991628877895733443699139992043085437350113775426355882433801842843429038728536516440786674290431805029852743728998980424036181521633273080627746927200893094618176639629888135902856564323482108875155444138218057050494819029389323355016327774337775490930368818946505381511422050563953805700725274393067868616786214697516453507209090583355522136991386096357669011423492128472464972862954873262964516275956818707893360137016799958325810525210440250670712304428739999251766902392734883290243036294350458273295100890758897497723989275791741210233211888859054427121113338012602273131984963482926199236503638376738943978142841856535646040333362032471543772344250085492786013032318115560453042164578347997114301284622606048418616492885821178192818754681991168860395775274352898669226261079785938786685637378920778600806251359710895734386447243229563750354593554172774841450319813468809808721991201069448052461766425946731638626835078706449321933420249894149076029305829184561869249674703628212752576917411484815662444848654581944540126398457700108196487810585222085201545497541606759564379030983254125696316859318221625878243490184675226901255423057298679747209795709822937231708966627874950028326583744284593378563292496725345685873151022622735174604155712274759416237742468155912294239409343708369887042525180252413538260400992190507052058012696089514345047914093934578998337658749369475864230607310625383243610427923346500938076427881446416724592819600400311660447325164594627217554689184620175451033916575823537189351880025719115961983327842711625794211321190505334327729624629525886555665303098774529475187908912874465616572754173528115107288555424677844255471466461889548826078209138761263483142906939039610606968225138622626921311204778813363460623535267973019614250684743033314082320039100171818752201301904515112811480428700354564584767344775175147673764990678345491590063869020203960956647829593899391505201475619127392763795367324546053641604465872060147279433323693435440481150319639152929012365979506522091636546922380696214087766246825269082852072686118678354762356276209466242973766431896553021878295400331536268819082251113897372538443855310452618110723773946576389728333931000704891359340138649200309330542215558988107458636203516978474117838832874186245188162322177768575571010025319408865566645808193090236598444521010004987981201758247664576267264125951375893535296974554600573727707647408840311224004453300154574302707211091904414665259390136269548244030854614548283582740238898993646126856427912262239735123214895423444952888736466464497453555911532316949894046742051571971580453787346977071469699714964692529682338337767757814051512463937784826643237910051614323071497440145476778302406277054275527728587163372512101246307049168245644773256733961764540401922555408549519976074319341999414145935926192626712962264531603915639374082136509049123991744156877634104573420502985167431284335062761495631067840154258004538130338710314745730948484171126662472903590229168281106171084458739861770269171698682824878844518636354939647078582196908885313262057636684925389991931399404713137591286167725442320392169821205741371341842878410456034543161575857449076073275985431914687700364603026508032464494989491345578216047037356853823770144907410003177334345463218318493395171662759743812263633135793774816305647658292450622325661173010659596349242014307815452040951494781820609060176033484274161611280698465772561961965620939180792522405139944870913233267671492848165248563091637400648325896674654794470780043166302045987807609750107011582210112500884373948096865319920783780250488135761743109354807583872897821065029402161074940526439404124201732025454460983283827300297394649878935762857198636731997263147652607439806092553758344129562178607891133825512248323899192944053377767392662408728236309742680512021856386158974941495490718841029821445514983102037523016763219311631837554989391923622459334262725171700607350741222155590128451236442024736887332743796441424657596542054565820153376466015820164298431344865920071577016866681772492935894711179839673770659632015889862564150857267220217872451048985532010758243879021591934715143199882818376985151406587433451786673862508395002331565687298422192182897463257284805502059456325774116885427021560086053154549747328299145047470328683919915435913914468393509416477754392384846695131667856410243226393015035332444933703370716535474012791146193337003732023246004793744247634773365575259278336097181540897682186128368371920399834279498723878508560623200244141820999787368887256212921108967275956893599024671062632951766784617461840137207736160389675451750212199439710830947788200780273612878610962266724876533209978437707379216360948377743215035428881943676991213167847842462897143903139912204163405548747426712668595002343626898046527002023727290307950419943252389259332889027653260069009431421333058132994504611400395455074836326022653669826054023198878281157585032547289352234434030029447271536608318675673303335608245673487814991344434362782417335070885038203688650421082191694570972354677890213745710439376362825886060093668098676328456437211944789517052380627615922048342589137781209349884397938951781608064689643673883701884525550834102507967670482611713964924636965912371083324559356704223200823133465006961568557340754238594797197914579555054137118359270817942167402146555995415180171143473116535494625855786722932360470930355863522648351255035230813075586105646485472537946879332462018242093604451990073891901424997152980452926345339617101524714876427688006305067791369098285370577206394040277798999908645650519124894650132819717847995319327028759610454605377770709128585072984190634394281598754813549471164017781062712231300672490024731955497076370328219912046938882671836929747842961737570278672515404829785752798932288644114608031890741050683336600737327248943163887646003162189386820783994112977621845242869361977327826744933352129361514618925848325418766483562572542321305048947098815585290502703600607878558520999025358233983771391610745175234680784772398251885320923336523191061414136350923652420372811604702060898941780058669630398973794756829890322233258897783143245344023124229498290123897761318535679440936619300198359327110621288312865098115143794717131192624863918974277695255102759476193665793602463262484173873124427632898036370085665626730978275554749864406679834795231797815271474522681731070318008000870222512181165757715970188986135890420157989767244906831047260375758673451006298346680248533571145553489424866659198786208999397582984804508378457682344414749278318550016291272624391179771008994661690452633247286634278418788571231753782549598953110489337635849816063736749852168291460197090207834583328508127735671630888772105679793731467399252016318221787385406457347863456134054341602241478567573137641399212385677909264262549992642400297044930050004528223807417616761473068344268789481978050616825941187744433024050430466031519816863074419275513540273944397613497444600232602605599467449790121578541444105639566556232994496819648147032037448580371176683968108127725679023950766143984482354446816948640947750120874700791259336793104926212802419773952205261493066122620134864330407076189117233078317976823837561076383338994252173501101728129504152574859280958657999837622365554271069542722675943612379249571092180729018507684090158503769966479772375102158328807529379562474486080935324001629576774355199295337719939990952098536612447250855891814150796952001548881408153715286875000690148338288477353473376030848885943775498142860623661327775041350387394298412519160251356395540319448572388208050917321790871857918154136411353325789394530387754208833647651321392972586734555697059220087406975745246343597979775741458681982624684570347068227554582379594423213681333033157631213423602347783188105710251452470975347791971720886808047403105414017813070192655514737310003377050106607356687680148293901376655539272340630718578679877833962935407785918927278592945368912592024097378488728527178554852635182327498127430304328286262630404252858996756971414776979934590810543427283025295024200904336038751412503781271335994838277601948546558914536689631390579706363703359092571363985232091985939165337727174779271097141121900186586706913934910893803075811630576026369832206499281414548113393972830868593471976105745406226879612829147881192748040090291854897259822020219626685775619562637599270681354760234102197669701425437897530361071203169374463755054226038842917917863189544711852752196259149729523476588566893017596039078547806865680964050146041789689975342498591180832587957260787312295353708920712157745058316178149507485515417904694270452190044922846837105721366049039490292505295288381101882069337648326887797768385717570099663349677740243279524453894227427337123353372669660520503639666861091335507727917933701432355457418838844657217268944423835443519339044118415403046124143516219613471985276256860281859909794254961830452430959843684456272075753429620691718975226945530380427221835681879873799782419689675655004739072068514518137429533980164106056997130323272679568993894743207538439960524841661897403060899540681737483414687528170958741578792845433643683117445484368350447469083010912751127834692207100903804933247653020129045464379244573326450457832870661839605433051201467525461533818831539238788145996207813305739485705706550018260178902153127240734693452544801180057373511825987833599505211307428971620758272900388311979756958065975032401744146309451380109084400795238460885769967478602940497575582473241793056021647628787536924931995460645159868009292653842171127747820225763226871876966489904045282000001926321485965755138189137893563233791721728475141358748460878901168017861011834425411126206702967217100437447244233424090305860787031293301952701002194406309792368101384411182028163203250831798907239486377366793934853701612837958934200754469927039684792524386387211397662005303818800285101038752684423335929761164938223334203550553222856035332414372265288642482564155703813550983139597981926409267158471724456195228714409018824670436775756344532572578890763870254315748489343637511817637542841762595628468089358236361494642976651489135726215583461618430644538116118538010873244474373251405986409291705687499779065216993362418115990192390224111039844266686442087438809183125114426363818026752891026617753858855777616050802933718558271761075711694247096390362772893319652552003571745168509413751746962437729697922521830852751057810637054933846136255360133909633300207060214959568881714766061008541578979815754264685146629175196901534865095274663207557509516643699338096854419716749690311701609243082339318365116839237634173956148946931967595017241134299875650314671448127212038080026737331532905393995208096232025560716348425499228315086445809482729949058019515580079860961375886361225074544778715876023712241771070424436920170290761244890528866000425762409476539233284849275182923003540637820707782576514119704980488040835193460243869615371759483311472669678446100576420075072235392170755453742334445609132054430055077564529277076456741058328147584100248975934700875238027172470467685245323118245306968075491530721113929167926940585548784488104436148379846620863524124636507641431208096230986996482094655836576434341823917340990613022344239838288363811376835125426289451795762385661927249798880423819014668014644110879624071604113151395426370094044540717994058967090665640873895559245626148043494558819368498753370623706662384437320920033263969531093768312690270414842145982689573230166065651424106759163282430853329179468634212463748614271994342139971587140135543243721154879546607904125828596549496391220433468261271640617707882485044616345462293438996216886475486003400559534917213359084307620149269030919813813559225967372199417342953383000865367684950184841565441742389575042181648726815763908817269083234845492981079890656933629068884526492706382847300638585649543505637030196735750209171259081853217031566536980762474274889336149718835430343153029278053568990377112397231345931932049112965950165945930795099787969684663865443668142083518175647194875755547732969110385453151068709832789514634202615295459775020093232851922295828185155006121314816068290356323687981173530213929994630616730335284476361669802864299854683044796066576719149165062396754138622964301936022295884418786244124864315168147135558179598554949499962929779446641406539158170833707677395498435325348402843607592958733764670942956405049194531097082740226238653332466140946071470900209962808142321828739560974414858262412077445265096884191165996833130489190246850622155537111625579774969258121774693168115160183016189780623795325039579330319965496086156644590047440934832473704348916730853671655785742785609246426550964127769287256729430819015010976443209595802969464944472576973245728312918419532667932080043753399989648572599619153838249363288158450647422713238334859152699634342233516119244343228078576216876443101323647060355064734787264925225009961350981475990122633640484760392156846856225014084071864207415168072119478099420652093931290495909258407141464096082077372266803363551857181388649806404238467977962790740717803943535269221455944728272636513914744351808693191769566606526613657151685199973029019387702772197803886020584590222231006975936977524210860296480033508021714617282452148077325695682819484133239745533936571242689888130825571151931356216634881783750792980784997391779129337102501866395304445164985322134666935962995526916625652181226997854279349724811213441486447452477365440526354128379799881956487889295308484915597999762366510651246999355536282693157636035908659482323471315289613986388328187140402108601871688955800159954610151092195529759322475242906999102523571199119250257674307841925820220943246371044316762685329730335659416224550274493395464157764592191729889892307830544112380436568888983191174624374013639861758185470151436238714186764468969263119786239175946757840444468914549189193059518298952864515412632929461010704294450820297254274997100712509570133919951950880620924054005657646179566815912703304985351246943354969011727153915028549444492152717191597098478934506508069980048071436643290295960749993687155358017342049539879089835073612745456508734796076138236793078726654888672779380453156661802697285071305125079290753130238960051782232715576923721211535926969374056991436981295867976430334432437637364385394241160307066827463004289730277398788353271103429445105396876048041202302138441546450809152088028964461960974918071310811340781544286898254971865373956380983172277000567862118084048980632224681420541924653411849029254201675601430305027828711047608415887852575161629286481203987776777269973369068455780398263625373394575021091918637200096364771167412744509023794042191953509065188930992469364459437579136623727982222538729364171632540072248562259418444978579320092111829786264627726991212078266198151471249054111076586195880380958459193591428542168379101546604786720997301227527343743855900477540239604122616783565259631036157807547463436513825513675655566388427539639824327474857258566159827948431580571436195061963636175152611375181635229991373083121998099648707207560036165003460039884229010398148108383433616224201525982712871083746486836703195841945185895966085614559584520205449566869051840888836868294098618431301875323715886527635998374726030541315046625946667265555775201796907139802381003696545264202029951691941911850904241754371732926540613003345978458764529510693477990205517163786780329943120132854272568551621252804396126898731454291270679895608201155089340541322555304546657112146001682275807043170467667328577626229244183248403957229415432089731602528178245934079547983266283745713431704004490121952872515466270746350105270264737239459893539071048607599120930507553146474033189480937681829083873978793739667769649926866920592727066330777747482087030580717517159704086030343186880329556153591394158061745891859876511807706110640500989168712399992959794596582366282038164017056139411077518388342495235942965882701852444717360098777420095405775101758730386533837267502264803863016252788607458551249674162285335174744499402888311984771503216081789878965127880275897527719171594163237738000601793321205402212770734914836388587446119143583848449514303193551019031932383027449001693156357489874674443938947637701146483609113642809563488101612336280688121840516534143400065050994082049890590994440539246724865697487954835402936830147018324006785076289654694845391842533230550008843041540883648941390432035599234087085582354498025239133740799671484853004884154279043207386969444476786115582032174319343536158352278041808333992624519109858408525496198469930269816226470678247044666581790148634504406687724789099217659736503601051498198119974972077991112854218387578363439168885670787023792036463125832906538317067801079134311897204447247104129459094021282368775524768079286188429534192286438595251324318419206547302403940413365586970055816555455300899419411172429573207848804286925360847917258664451434834415283404984078712268937862400368414622461222544257834898824668062068418153818465364434337518501506059074780712970275675181174545985409877247960339244990384363005309733661542595306063150026830627676623821008738965012980518468336317915827714150031338881336347218528009252525629941258340832726091408989276609601019731334868441121992848437799576064942004433057525450286430206709865696315582383706411796186512431073222005265288341174889035844543747003127658013244395382504286823832681073452119005195143745032439707838269479464027554825687719489662607693495448639805225864768968273595199869830294645776547958669886027376023101679856309828486726511660571919696071405838239273259441510099397319219554027111445469034285371148355399407484876937718779751128174105633337881164230806539669068253247439611666773651481475197472476486255728593817476533322687876285278335057369894535591821994767995081275162797687308971103303372756224704636760471940624707997553242580306738832603355084382207677229143187170123802834720521693788345874852500593106532044574210695119652158488499372023411448138510032554074364305213785555371311184712432748700763781136652348839755791068213460603164863343001459975748539873936043897305314082868083100614719945033378261899867965660888050587203228349549880321992475428277566385540803125273342680999311453135534287012342744381364378202147089031089696512874487747371270246525309963082300768864624515765621668981180080659664557236131215910166937077084131660705163225534571345673509927725734061794016752912414133155373606585330006934898030330641952215699012428502101513175919526533694652174858671299496731185181080151880307062300074329865636227605789261195999999632319126241737466139478712272266841347247721222599408310848700921491172951572798644556380892631708045119780711953558760985461107993734276839586414050333009894630042377152076818032870911819245155842953675301970304258413076333265756962557917850916421017582058562155889319402846600220847863976510970284660810127332627135400339657336048398842976381558595958170598283545562528357230770539073522147577615189848106988987881100305775253750032606823177290246296061804701058715996868191158865602607436604860379317888207604640526827479536604621842968546255068227752374687837687063172032864704834102422873866241132716331152639046480393008636537427972419354635343999461838379475863302154570788397652288510911394568829748776592477037954375484606205166704211166281725373910212871136979729614619552347132503032897333538417259640084729232519303911106080776058800081445580353001568382095560814787780744095020305627307123874074620484968724619029348743590142994945828802141243547868083110997428279835242038272641469180671256527621260051910348370850045615963226427204397934518310294697748810000924429942876260603003209577332796702472613980387982508341590783744662776681985411490040270630112946263620260582539723858569580743213308977358482428926545745641804627631704440879519571832770446311870964105736138380182994427105829354069884944880496621310108991172432805873958839586214884308300671076362839581466677851777075813579669635836799704093397880811921233169666875004281078082115230471911075253186219789345341552317127428314407420492597244531035777181936383224450755580967590731924828178250830396852326855175993543706251622607598072404240854922512375849372001066624338409043219314119097752792894204372933098494154725537220030490002626839196522230345121221674001963424600793879433703569314875020952694403292939983841941274736370638565865609268647535813953517234165955877422901859294289594439572164500665518132659862690904850477621785327101084365634348802096307182100586066430681824022187194574996991275899982899389575367868443225621509365231321813466465784258193306434201467898878820785978616910222505873997455174122397057306300906928253832416547701487988398694063888377855549348189178890685962400711578357987687426956826838216334411675033483236242680117700345233526561495697516620083597280860972255399270325165563036022667456331564690926652755862488319388517025820005188239668368985787261102209296606440586721290493163355700552941613701193394791311448200480538399452125153816015923050472859913173290519953205106035926318045694136624514118760344558736178647848127768988522525929438416853119981039348028438813597813170513288918608584869228055860273490850976871982490540329831481110060126149353917149113139322276356595393594153358788341265545474807197573512870578137552308521260395506400242085949258236641197964810864438427319973065528810371733798574959861242055047799948072680925324033230903496142915237780604598655140411772153259998603936293383957372737711783434633278307029010326712238360376159457612731182137718435147886414788881204366175742449831223273780356351160124878319554310275972978862198918732156721359288663224660124009949969493770635471888098928887620331292081607154336297742448826555907986487214425872610709492300167673032735038459298350400530131876620643768841226315258697446882165356304204901993770467647114221702934941084065703213325825138799812189806741274985219827672699629560539673294099897808308086377752763434856486119819708341071796633070407216451265623841007133126308701859062678157823461576453801036740427033358988592849718540713765229651732282060780642819922368713276850730516798326411951378857463815780509405640763763690168042358888911087790573701780028277641996209015735451070109738609538308254356898998762591690611467632591288508752534707234359397066031094655463784362998971538153189007598872434086489899182913258571595490577799591251490179947054313993260320876970317815289919901964263431775911076976505643040487147374709709275973881084132188293923363803612156522259643647046466619120176631996547088137103013174695870108553180963550487900222722250566261778226932778219598743042774263904515469698506571524687448695441207745397385119020914696447512834295269491161910333501547151675487696897059456756158499307169884340171035354133930800864384631044154537313487504339127033791622111459201038212179350283985012202149553769859955577981358714609609855710394003070548078593770647585411882968663330741827736599876842890220755647452072455510469520044672424079131467885703970431611257422217838530057354133480902644907719969721037981177350008192035292017432373127776212400672371357516671672999852203724398586746779668705739013123407898741062901084818417790116258764468787304180433755123634366443986248160253955585317964468824960620287154697876151762167962095522164635865958431871131098399034247978123101441593288214703521849847791849497110220984628761110870653013438093124222676862404855812135824326761826668104790405924465721846560553213627493342001269115800431449997358397556950698739210896342832580067537510172981070685294974513418329392683282350006540300854369831620851702004585360207174755425940216697934262185497454155524610719878418826786785355653596788917265538455381351925741832074634064066017585044936304652475512536035303063764721016054729755039446465083575473204342385814710198293385104402929126634964106268763032567043981597371748049602725539074559731449526561084101102697384900267484674355430667882204005841814138766849416486694795434972502102041554322264360765389934436031466539061243959493628775203807346088745083137381703083443735163732514492288620398483146533389065623363957842028224980315622705059497632123725765474520064851514974396429777245943004459753923090022522612469805286571750037194050525398749440782008848616731150485547606090744606994168600211752217956155854771595585527419978014334508881236904461524134592862815421072797315105869142713355359831767228463757106806366632256135318302976083327596364970309207569661892855621516519024755334913523451306184118153565988040602182324643018126137168694352661234050887391613466004592686035095134080305732893659837051965931689216067685396283226064969938831111650121057960314946706281259025376515486207201154422494910115352924482981739635590738947570986428339218746430331782971980637843693876409475923984515414555687367362361550723513296231576751675332835608636447865668876542416589043394698286750385170446790933424806267183710131951871014212439712571051599969277079819004331219483422096041664426724248855898144112052278767510777855879249799282930867224198573233909082043784038327588605824513657440837499858568892761472483471083873579508723037231186463872585854017767067482795493993388636863293267280164293956831151572812997866035702499230070282842939793007033018051952797198425959744761980078029082315036432921729806561195355048628497415791379343901039334528973157391310528287936134554729669313295105519489690632291911947412125650330688296792240257186569736353455318265111478811966530177125591816764336831331291677071273649722001849656809753902486825239497009267925150304684783695830936428267544105339425003053781003515299568877705336565861612082973220823821047894061063083608584694532686113548578119061267527261095697461546128686491803700251787640153390646835685633563461856198424935372785851492479452068984213615529411941677186452764436358209269057947373055170596365633136493876579719412244002844055032558411594491706557959906030354221317126565267376377638314141652142952677533575743852874819401655572275345356533130476345055515069693486902134571683099697244475469028655721596117225075728524924440291734512202263671106414874255485870603933732300394313717321027434648701361208119204743306269818775781156096260301457449597248669883086041836540144617583013024475127733660997981648488728008229030975678577416463992902936368720291563815420263112056789835089702925246677683620831898438864524956739539548303930381131125792309129972926013205584598620533830988254070390730901447159885138739869626959399327998609497880903937876799605395195633200492844498856161859892437985720326329480999701680664765698489239510259158708878744554867030675702309593555127142734063496895390438896067937086589534360524842553562595298169213083234952523481634564495958055736884515276037255595169199002141007304378486015084528747729223839512616960288693138889314122389398116617421767360940380723494673487884087403372898202121551670719011588078809826027756134579693162247491720362885068609235422842894618754466420584602719498062327453490403204898460140545722595868965725211695207949238077475322761100809778578060438887100821404320755331885490808642159058776951818128124581519796930879529154668807626383005574274738448406408146194128273774447335420255400469124630412595153143196406208086396354733274610308761939984676428137371961594376308805767750824274987495976661510163210634231264702628724065575760012445381370807097331099645603973687443376511681134039202324736734343367775416829652154896468312862235747341754199259691670183626896355252524678152688938448818059615491033181607273529811414140677487029083905836406666325579287731551119139817739537420172768171528793419485635696041077732344994531266331254953905049691515613757563493428557093501070348619755976922882514981694685830587909641959147854589624433882016354343683323590137786453464971955445873337172649526582548278819743786931598191190754225608657989640832340956924244778504787767322691562091542430909310647266648548175880575185919995933376596291296631827034122362648605835782496462242679374637493920730548432688246809083397325015703680451526318484626849059020155128072714622020709477096774457727257047832385002520033470868309730608136742528491868032690259584460031164534037338002975434988172571435410805464735360360617686390283336216579196645845354466025832963875630264817775126792647821024580454659340216695308366699872539496816755761719763933673337442407896120155171687235468259678384365456818439454243367640786244523523040290384046969408933666487431440600694358890402802881382212854903421130734425794456863765929383954552270848024563933689107900789175953838991661703721668169685871917175043181229331699132826545658435975914063791632824679566937791297638600045189431395641507774753998572183359398879537472954834160564708116715394772929487852058418240140671133771693402496646341346223396377846422370111077276996470500139876773590307113302695894999496755320832018056661145141267695449490995721913195302620893116951406589840284834021745492747449509821869838229879838156257935344220325330087717660395638676353097128384970729562136860010112566278001023416102970765268232548980232375499080683320168669679579981383012837148512570239181149313467971262747394367541056241574485688939318240741881813173930976874751572744222861240643363302681943442888482445743900492520607085110657958561641078119081990375738293557680817175741250737368442707433343575159102372502138469184415580773055778665555798076344031267706659234292462013146179680975054002798425655064310179394726545810312743853876591821735947414453055200855334270368921887952352574488948705054750588428824835849618468271804101288383600535948022076895678193632775661426234222337860373359413682972727274288446744984735002286448786096458363623247884460128430511678301744632880354340618642754822917832603407782004511958931864770230882957923550124220011105777167067860334083845055039686740811996054877344075052031723342631528322189232458655132308725961556540976830434322382869163245494646145481902608251448032502648822207223254156170367671033171052073575353017354103506762531264032393499482844766536389474886673819404862069564691421929073005463694190661640003770639734458276902087132550098161613002015430564694818324238020478941679811952996694360387453531630975033127271775548846021935119442725659341798961513115246998517025465767383840478141256369268286705636543471419153875506976935168498101954836836845970961257318402731608118763184184521863714973011235664592753748159055580804675841159680648606639174539468191822357062886844850668922061233028591479274472637126240348186884582171731638501626770926806479219963100967835265073282811299136706523016526560319554701985827755390653827838262287132160414649803778573145334023432706783216973031851849738274068438652410853476734748858645053916984410792734038478879663276054526693335498046197686230110141052060828069032155048186589338953979898409800671030392088443950165710557208053809792633679669813884133311517897481807398536823716060727646559103290247260395860598431398125812463659545301284237889017726296162684730030049541459128706903053365367347660275612791718910499494747082005354984105595854250441123917694432542361109521795912891728564138897260258663212165627882116913028232379070476236492716057697029609139138071574837972828649276668696140866350954706768609659115989421783538653261537192106350208519062614748410677582413818836976262744921021907982893776619453431220968395375852105847613748222472914108197949243283012998432332649049619531110625871603831695203070920388362484901908526140383245339660024830516856015566329421515717707889080678321212885829297593241007813994426820992612013716552357644835100424406943533962074915516159247586494529087246193630794502484855110981625262170094161092815112540402191375288348994309772785395627098268909622486704758172202742656298426273515420655136635133061458156680441562900096145574600484277972135054299136679912020572161138021720955868934978768411662173211664764544268317862614623440788486640802134444746542075793773828522593082403685780062339587868064699556955222896939462445395979886667979829754243250508896055715296101445295397312986320997995855009132896762035756346897460291738728748369268038842822623262028784490892415379092062790405382883451517651458319876429371974722847279168338799050986826486334272221989183394864156841161550832168207527959964323702293590387591483079499486223506171140079187608422187796302743956605419220689256827275277477302759313569779619391204155587491163119655491703608992830464022994714568406050317846834980350219563766235797348942649058735173116698636074516082601425321498272139379018872824329317683974066650541979232416941186643588237340955701273004292619375702919410281736524485432832368801878942292448154325835909118399455540933990176723688445576174096307246971939828183230720749851829275671060894739191927479989794806484273214427956086242324469625806543761816437495602077943841090625217933291062632155849901741107080334645901223159261797595726031073895437030337710693911303304331515816956104484482889946731057580589347705197928863198542104481879587574139515539100743239562180923446614722199775696245592059905289007467705659560040930261911222967743147104202600514841643796424219522990593633208131279627210839832420377710192414257594387604377813989280656831687494214458978399219325640275433133699187588105339787290858103016266516355471629650516715364120944624349499161579929238846625252507447997075303318359767915300634681779346950394966461807526347549509468805157676017153371897809504018743354290420774830941291794430300670395271803955120103203090339269885547279491995415470949905344598799689103038909150402322844512375822730851505623380864441934969043703705003423586611279339756500949509872104124823678797516302515704992838591216065631632902097617938884284522789373809269853235915129576069705653729073339626643201266240787285589719709258744208917680379034578014517229406294842528046795491391770415842349298725399774015910095720149793697190690983702070455167301539305366789124709678610896902592161200005884635725620629748633905417649881585911921536118262931104939413565780271136043362911443147644525927991228630971914414635105952003609559068787161826521075291117322438409630741143553654427582714802492963562759112342858698868920325979394828709625794102253613131189838926070868962640731337536919017751530383759735899540574686599257865781006746129947375277532655230920459884370495310397602600932415617207768466319690917044763048220517510772762932246712923130866377181040291413472397503081511219768425885014157924615766972454251985321386123815402719041888006213357580818197328377884910966538554153362844648716264437114204599651200291881302077117854188702109928376891544356762780510100742839903676607858865234046656101475288447516490954472249441536552986973790942446365879503510125756602991637737907637484120749710835573974939863452686011384384077235465377108745556906507985568558726101000841208518585988291894346249105858005743201991900764311284401411546597887525581293629993563376910881258569823214014539050562286473621210906176762061234158467634523588946968688537332436620488752387602940698700387782903916028105183859508744929026681904950093534465256546333610307742016252522221906616781804701111522903236032512203988376862968247211428841019938273400193479899714747894290246472676282188790129257570779042557742255031051694958255850249092644087505935773637457298717746488012207813610457303362492061213162255502397565821083699463726239903980483957898435128025955685056289120831976956151628004448457372161922678800961576089437154937587527554405408802623935219461844725029825882574441180358419391185731717355897585436619315475784326148680540027713360538743258927084134701037512675779185758007226633501259447682051100611905918336766946266992833602674598192872414106410952965519431340777394607040111724944411115749471283060862521512668629357927122070399692137054094520815929265341246510827211808582354172161387157526373277830634927666267795485468160362609459626609119609248404373150717524567287891955601320893329317124114060495960492741961500685340367373004900704274920504102840857097643811846350508850841667251585868681773159983043000829821088061664172297428631369960112878215928894187542356284799752022816492384567291744827334486118344137000398413747744342762289660052351807746076785666987797136120904898345073233917157938851840088497027760745532675153191457130734036311383543982032761024291555502039867241386533683606486825281989057925628771700416072789854192056457765826566867631000684094321865195780233725043493509803497628753911032454085026034439857459392516182919665661718052413896631593345862003622541285922612139707033953003573853841581077922249893539227358191288936122629760585049158418678862073187295882545668457499594748696536305982457116575356307858824164406458164447741652645806296114010564285956830967914396848965559719875931529990636920720482190229310980663628139124933497707524212416645215525571175241568210084799002617608164096109906555423067592685072777669444349192675733848168164554167241890330232775945407773495024898226755955312312829479172106733608163243548182295293981862661329087922498619502278057933015294526090960184707721440907087834129524180277447858397306795007675496838154080749731089648707478744154099826310468158231845773580876849049683278333230809974129701232485964231612818608061194920198468737499918062464314078172552992384355178364841096082706469114619492484445791155311868871565792250238718556162805197188250485076497187246262042318923045202019724960375331200321370912384897169153278875795080760883132330851797056155312974657038973428033134059512928643096664771831654038431045111549428634169897562708540942891073809213924716693315822111321925155490919560579799579373023880037365050972856841591309298513602101103218054661316074693181799999912985136760654754884685608148790098008427078503415126140673695883109104022407767680859134860188755284244181007053024120018778923832879320728697071232867894751765527120575567133523478674112030807762325762545785048933625152424145978847712124114985584998174010259383841025457560567016628591540523831210426765783817199373942942077221849145014633228048209302815680570955555939519386119193881523316564049310472365023492823801932264468468855430544357044225754052179306980603957798895394428595556678259534331351669195898596560286111602457625566205982276270054558803472763192618624339028202871918121514245157909474301915581442162784670574298282556452940252063262712760802025631420345076475783633485883914338264594217095123884051927185850151290812658686951981482999156230739906235120540909674499533189006775955950311575143500264518144326726259131386254503904199087842049715451960602759259643873138353021685529148828096150295141914618318885870520149195907111253568148561810668594173320683793453750147510202789275213217483898790188546916251102240024719214997108206362855474827618845082692512117076702767583121268440143061895264708368911261912786326410235632666478359823458549401365857409107612194491138584602632593153185937720963342969061898769235450708507987163775183641441318878347668062264339425410334537546798214057070938034088231925877709488227100978483457693312900596929196281489359392185542765654993672939120678553011103414014744023413784828897812511063876311717061093380325531440050062246496411830411095505942044995460784254583719245029051987605066181434275529200889915595846272233216090883235087748436164005413267955767680706745627824729621510781004161346396927468032429296784947712338802186576977721358091831692220809117638541493727483290550498510809192766517635536994243875995312493382757830175566169846791459644824179262584369648180628945868746739651627816927754495350875136221675010335007164333520909361053358128906261634307614716506218050452004133201100535943025333185003790847351415790821978448397450607007446592536026117742685900501160206997731181365797938533609217443134731888711899062920305335502282895917631982949888737793391622658958964319171357096720652177913036193523141756481491108730843862875292586968924335883284631892985017515576387741048940696241237652047407491155637492860699612038573153133664932344270388673046608782556748291096337429540157471981515324776288903876067234430963407468905003367782698120646132554530389792844496049642523592740797830099955651723765174550741194961800825464976317176400834189634208279461152333308720559424250710750550294046456847027339101418619275206550404608964253397941061798222255349355651257689510455764929166585668994681474463325575982994806817489201565774055506256663086261489667548743507569536031015324386160287000572670914486579373766673862100563388961844534814734025321992598610664733216725547470341638623307040795964582907017233598628103884731042028216340372189355602406395347535087157940116108734439660602768386417532206990251927968922013858536195403554018751532467998545203765614435826420541290059466318272091479013503088217810112324590512260507132753369775853568856933354159403519556902274852024275695513992280584963833635199503345931398730547976858821702941381139338721354993008008048368822402481916734906298294533018725328723254609302547402323964886132830457493303320155263217766475535538073764199176517548547691400362355183258100067608618231196329486933096127978523609400315291224530096297066285167280067074700101035207504906178827555819760425746080305891168876970107395053841876703055213254626931156324918141713769308429280825639236147558574143178935919695175143742081009711025110687327433785838054785051440924399859379391294057816346684222200792261359072424973172848623060057911955628001881363125268974138174361136526016173049047050605867941176883018206900094654464086839859778625499093963264937557058650095086998636248938766728560000283311692508350800855600745055319618389398533469738773543994603839805360497200805242727009352965911987605713518229381765572545854533570873044184206903416907423909815414128364280122549469133113328004369455254725196333782318297543683645869385479517219214841794294885986138422704173088294670472091381278947813806353861412096319528031977470132907480509113094672274564539114606205405968798007279410817063725406064663623423389921232745443049562533930740701037156998374742618979587402638889208547563924315428106268823658669862395926244168694591524754437790074019296508652158925469720005837534534168360171920624615303607154518073352032258758981344715293011172187638404537768684921252497630753753424551433154181036834836112671088258380592834044467297586670555970152506781823261349937366170247009653150641289553653637664151003207871382187038553446896202100270961869436441173138508216690149441195284225134975371140278374583730856838551581683697328937892713017573601189050113005423810427595836534049284273873316466991523343964547121060569801469172862938352328177667079454570600816084531610562429357557730171778972596180826567795586423448168680782761624715333772903168360687915982587138254718591698229702919506624890870619229786008046157011593272603332390416344103138885356833313758782461434401975814063242897187720465573084047485195987718241186504950228570225026402687258136498153285696600571630024609547403542158465651799030307893596720323177804270845245501509021564888983803254536272622173900580640951137682421408137140624213802250686679227024540095025715678983658692934075352345166713891365848899300505410888295087057553934781817871324045334604527333303860708135170235473824897122982138860165613915416193608741568350176698439300932927710634537844814337878338116162478089966768434460242150468374169097182814003817929425199349886471119779053811866339269946410676630465669960633820147499386130851461498001025724368943442496632769062205495308508964415827899396778318403015203028716238577184366236129963150349466108926839740455165473609160537941655029210626897438583200193221433020913141841057102390276591988099254235536180089652937897100722729125476188971330529378568649673549160790869358530933538615215667915309604329082877437769975569424042697595776530962555149829407007442507870087079322650329194116680071873539190130771385616620746396708104415632211221656869695090019533841580345050595694428149236637234491627060738635241709266162220567067822637262469297936992479000581805419820200212351457018782135750954322404886840021050737209249066511903324972482797030896759353561970115005774127889882114496844971570763901586194846650832698940594776503169799685657553217608959440695656190473027849216719433986325080457917667698351964747186112146908283836852560139554921541491464351580190752009534800487731222637716890757030118136106516837269939725066301927184573944710622098142316921956317210748749811419774281135602491316906836910534298784033510882764007273422764968710679050868794515224752510506433999886955591181186517619699482002971794486187851141472574239541162937055508880611229009404311361595045260634727739437246448591328302047839286120737808534103000625461466650155027161023695442624200785471999697165508663352596045575482625769122187266244800264162599395760866603056837182490783015790746228051543443029224909887169557894995728223168270848911925969666384510253319842181429603562678989608083749401487040007036525819653043694987226881904974719061761068128903454945571453674206291728181065274386490858829824913702682907244860325602162319536667679656114951560413577486919428802531282749502414187735011289573352790457692651443535894500084304920027902735581179152975241210666693116683997767199034655366184579943124943848017452783032165683767155131710958991974857569561960678809769761284584613235288145726813958767221683839789306903933465594628861699865077980326759947132209417517066920661944339869276602579681174176682813164259510667312592054839920126069949478386059640735557309657876204581149120223131087139846784564953720953975634936311246617171155504235799947978980545085585665250422462247423455124942040055168168363421496735179861217080014054999376110151433086138845246696439866459919857823684860463576038593365127472221700895246085134663488798448888632300639059923621632427916505609936165622740732492573845707659548917073432482983038537368569947820875379576784664579621249540455377307105104632766417373162160629139712666895433324252114983172857177472655582176620719959309865193982855213904039721104123336347695442981087448658258245754295080392772113063134536076752046030918826393330322173999823334339841843209650175696156718239848151236137698653200985725638830518496733360821660206246569617323566708376970733661176853530733239527849397491052734840187017563616730775236652957394926996642314453072639943014354787719040615109958361125225256312838531703830645670060786903698026193544853799127655875012969792779839231905018197350900101215607637825602489228249916153663605406893744421511057724477049274036476755007802520140334371550442781454985138771619789181437247193133315757330557988908538987002833342543348114326976298551961876995429097124861076821758799719309046494785611164425339126800624201227534525553098964895884964448393511775021570934757623640972673462455319607058766071467413205854390985014032783716034305654025703145339677605459927655893076291088563362536115685531708566356732519230909292427354331746474161793114819775170526449971073646734499581040718036507573144956409638230181334795253392445297722626464769312144641379075026283002878052759164052410316917502657202762215825478262749015192481861902386128275547225989540719239019624752618714774998716390766195016768403542179623476162656151514686558702499121466202873391699179399262147981243883783234831514209883578847482409922703589727353869092220465409608627809095852421755448659965677590474419419478201166121111900397426748677815118756277204091130474059546467075237229125512957364353394938113769479572606404888479469415703331319268818309990439627588970821763059687070009619365811826457450059410399421649222924803702074898392196510077696814264064292072063298067828594431393869602079884931729518605302306927999865561749005458576839186479159976164338964016938919549856196306943279182352045929513381040502009667905544208631359417676242294489021716421294113600306426171013414075740917159398562786682797524060906571229188650122380271154738367067889756315781112719709561566105294777587743225276700802333392519334299822120338842154460819616885817780984178283282551273307645908282674419545420022414176983999841274486795616741356892095994344596158657438224066917063762195680932560447481664932464388822835000929577306104592171079775979994979970338581872224012322220129186977384274494121920506248231866222637157343397739956819937581978785075124241497273525517931077940877172464095671251480632503249120036831406504262000498606401046141472318634377672578030628698522940477855493872313216302390068130464923679179872774056710692715767190099607371446298467899977961606755890449411651076482457428008883219761514337145112891692908039779506563662572672073440738251334513557907162149622379073129090064994371602300222914442966070171748525685998140484260361910131575478462992046124173217880980291354658296181968637545728269005579609154477279174246774844691028642969714116978567922620880257860200472699508890382279069345882281980817136871808322110525430687565890612921123976981349385727893173095311284559470365143905906559493255816344758356283141797736989420862951256945501002270225995334426720007575808151323312139907148068624905864246195129218199639951218613051647434063587185233472585096931519292594283843147520458985245497646710085672107456450729724432169061076965906552315957338563568137199011468735632692447514474303978229932667604820531968093570330397732350198383957558312309522090222071293748445271625048894531557074712704751421050577805018898405403287692514276061684796666684088265534345330692623505769520728619705022393752988116974504308642441338491125853588662682527998683210901088092820629162126709571640652621453798044483772060947311677944368157672514289258083923438756434611655145412772494263271087267700795051903132149811890020285164955147851708279190385094644977863936678629375539100002946043319165840460853669321586945230551214356843961102762318902896421974055196947167630312280603657828664172894255204760833382535645459541953472410771286258687787846174828759234074155143271334625421253565088389516347837729770900394679825175017810938292947922711067443898634139690611136949941892158896769212844586559672719728699369427836363362319118351225498520871976150743175712116296132412529514988776130429130630280922239791987537967563205573222857777737705736371820852988007275894057740064719288486306472645794272395623147563237426635811811817952020788422526797343256844453955343889686351114351376741396321653472813177702538998811284674274573747149347007112374709920186031122305612064994392689458293846432220432811103501172383376397108855099645565089688397311783474079225268373803578981004869707370994447332105435410234741409001889395795798760660253831046309414959454186107090346050528362219154804665574061124679346258130760220670900399165826129813659923154720783232569411949555517578353372398885267536880532586358165494111125281354880315174143090575919967671029845522555635229325079860170181267397918515169091626085329970749512698442248360891536436946837752903091745148420613282354065776329647214128941257665265706381569080883937607399193068115945182075412124087698624103324246954447103143374390513053113547796480883208393097556412269780765323841619720347672688847645039253792053639762703816981640051950614163537183014848932346794414117931440179100854433543893183070103763246080116555420488266010176245232892664655057702349881994031870332019008440535224037713962481215562554026297594968715609813406275359506759508847081239697882985976332776472392461907754388125157158013015604656170572869443068972978897146049954050646003815569755647399777975344120544884836123184639841682546127559244336782882023886888609444860202839982615413619910949736207303327195431904878119605657112796255554596883355452327224986697363606540321281354324824269528966904370795054074914339401460058133697949525181145046730696928995816879923053144487090393629163270947722529207561023513841310159440609370075657884455339838626907552204922147423032625479262625027355676688682363560716987429802150758977232367375602677815625097699481606639016638955413468805024329638585206957731968610306366069521754288424220648056717686677513732637920310177930097787550076179638565645722882629166580818834041507510957305429399639157064062707762685542236729624323595318475366251486595785434765934549092696033491431031850535060936846098606628180318727147453544194103659526855160136316873171404937841149724149044165630644932525087189317547502512215664749377098585411824737555790388943767806376974936994971466196291274799199561053534112912760773152518064135106519144193465877655177387636058709915196948656895919850958310973002698131305918055156452533087774902057389284129057914582328908980627118132134291282845842182547851386689287050799719557028828573662746847595490032017009394946650368074201314493102296791852680806122548563868677239713879318078158545022698673215161776548032446005967291392645992459505848530707050342806981474666584210084632887282103184373837939682294363308804594276561537193848224707045069180327380303877379085028996757964429946654171997416691715833093990183203477925722306050980345534853150624497970799233889575931108012249734058847086088760970857574856549521942381198751006429613184993729424665169368695788365395544441441123309034523081298578698174951204872829959701314244130922037752768776408200620578767023726400170849298596110817773808667897392612524545985142165060221905784179206155331446768874652609498084733915812954119514691078386108486005659923499328431819016857903026930045042752218530418836956710664555212224848048460357867386255616816726694625461588135687312653832413427034823843798515150674795310377676273962692705179196243324160031564011278887558128768285879305876078288387863537870586817353129063698251138199684035992875148040057542073314193855889528072120497218519872303421484048390814351073682058482192628525280504069485689769751030423056575797968088611937357341707335431790651785997422345848506975223673926703672065365013923817958299549307354478493865364210055162068621238357667311711891596085980971221398844043810405131065553603540574681900414579019773762529697132450864010705826561735880199043710927459504165262517175741821693807033252506595113868553753013680835869341498642617230656449981763060331688758762470468983413556449859922044194938406041800432294597275258425181101282236578012378067953356424336593760888298661380740139883116698887135527176660770216347296052447475704955553327989950460100745316280083294518398121334936422085250958366604932587518573392672201360555117552997517201156575876221667324249231526990430747091991112432481089179989069260685507733230004038352208716642196444929435806229948036131650039862866154683360647797689053504999676754679022018734529336040848569749048956128084212722936918896661802460582794038753826662253800719941313216968813197833581637227874877646500774928411673476273705113277167710967259927702126952041891720984107464011089148386855489619918293567786699238188162440232102490989733469092624508285933721727432301804538039822388119074389596059429446552265792951167694771845384000690517275917904446591210224291420969853680241799995476111504415265772456611071661831440015978541400548021967935366540016410203588518143506285214733066900810259270256707001934898521363136067862481793101723465690147132078547289755803169170380674809493961905637313264788706302315912955456532664272700384956533532321150435370512479449031009087674354455023859757302578598912289362682799662530797900964709872626621396511042297746151866676407697948687196521261334411048694762315793100745030992538151667968053840829083791067237972786027936772624589968358653957913851562275979857912756668928731153583137719182243878748620818119388417527130219198974160670952923048403204043202751303296983349950827961258724120540838264086453040019283305616638990088465625725432963187160502490524358994993115716257116519088385087730328911152907963593419707896531590465254944803411408412957627815807731265927514043439595759393507348768863610766474845310338123112180088605323253185927514151601442074386277357680144165301800194105624053198428501787658226689108951676330785893335116423229586451419233808854335934659269247838743629883822932151357485254982899158439096777315615012721418684466780447470572885264603879454920512688241645787253327798222539890873701825750732667608821957437896768577103763028977519826921794253764922129153235266328848094215559290042380660044692685091948153378566751138698381799125686377965749676749436911546287472115618294671582942102943128758736857268462727748566641451278983841824296989449785141190917856759093989771584972831837368266535790387819368672527580675666670830122919593752138995469709532604330595494572909169801696069141593171349289605525563526880656535795711734256975421483863764753836327315979242244614046080055268256166982976393279614251222112382118083635339717727866974045313693664871502477071102193112735788414074111340149153375577297850272043292679076977680409268081242174736846297944920859117160637867839508652212145489495360021205270515806126603754287328136300439277651873616379384312291640308650526006176694567714149613620191238422990107203961029263262328718442390727316140323778116565872683817186761512481705135101676942395496449318262709001549749767707646907711338619370497078870725230005304388540199232862991872533480361246878875799912818830588018532722066440172791003907893952420729891181986382053398172410328409761037743362991813815539174790363144733177580076580515843532937589382837363832812362583070761059820020135135487987138771575034007142173213805333275818151197465094160850981493684085136458627596478435639941945007702682743665980438534269903322572335375633861384809706070652058472185368394961625184883673604272343010736186993281900397629549395347080874195423821958484313628511777577633915141207733517667664195692390747263638655496643910241906850904860910272147501560900231320567737753431877289122419541356078303036316666582503604056685543355522945861197706626135761803813084675050615643680281849950961973008453400217538488218238279415383678991945710758592545838452593067392535164142837714722935352318345675868547522305592356409601959893012119569934561936296656048841922326611394533856381535860296409424460532265908852730413079406604175626069066680717671539875356712305734104237944569120790771161400272649853725530087167775892001199567798270177820069460802556995882509695848291089748017009834792541987803140653028274733212390840027358304510198637233556488804969362017692676016314717010244363049562780802795110998791136345585716930986535308877445434543930058901408482541899045418271789718022307539671641969357441846036679413359313291789715718331939000193296512796548464113137988805839718860373537420139353513144670213486135011985173407556782588131893671996447866363709777187191522119035291526532826351560291106483822986679925500925355145348435260584245747941227025235683094186573021919583226348697367900804232285487583724050596955125334069790986704492046606829313219949770631506044017707507182559468759152165537840968038973644700990272543916639542932060851744743394883427822202716679803345338457775255530327272484242522062910211994737290237424104553091695265854264004558107198200425976659123065494581466872008536246395173197204391016272921966462040824961095589869562417097666663890651814001615050062138029898501749118019781479695933164958170496973266860299602048466095725480528421654306558202712908867527338324295912535994434216893061877320038400504856450697792011911232582621903228214746380469218794268835554662042134843855249395747800183654599733678187132216139277934460848579169204519154098417138632734759456985730432073367932534475244931216664398328316525951368361908229446303234596142009692811962056199637732486445334452768677507734742080485059197640213035038623700767187470130627288497139985813441668853301701858319884276837081934651711904544169441932589275611038328507214587443171300014833609939984874461281911482387275191291077794397913049161586785872467773444664732304069069408722670101374186324722961120889191306181913212532789025652866613462365155985485354604086292239171154117997295136294347091072046196810630554659452712147091746623790366264641672590927087248054715562946503060590407343155812619330288107162372321567015684699817331939223122834428122552934446537361180404073969221628281856324790944158970260888291634165669615960510641863874414726016013029534192803754644668472893458578615656479904220157228095997729733882896044777023004211592553229240399129813566796591372265743133766562577106225905477296598868728474847673537304152597029884555138620131664145410591164862131777730297982872735981817138605788446799167319306045724224951547210233062202607437110922038504983925499415935231115745417337213449606821208499636940194285818932204855972008209736968959848027493999826004271975166356129128965502148203038236001984586455610013244534909988869516858017020510946568586804771758159420210851030367328089738974195716578945434809389759326952580378697586009530977909436127145946977965835344068191931949780658815191750116370807255901219448865898915979619044888300628719208584631940735107569967355321139968049494302581012240999040861034598099137319965424581868178426050669998413517197803862317527551749145087549984361502254396412470267478679405071463365213126297059505244223815969030947817702283780892619184277806194070213330524882537413546515438750519694236711390575939120378941790796447036118773011044575207749224477970372565792586948858349807930528446096059862123298590092938664222887936866254695787438591183108590665998838511024110975492001079120887175559133194028131414965398136545132593817658317593271419824038854793158018589781092585752260502898222688398302754509222939489005478966880219224753905973826182862907114821681016995883830237433406759270575134320547141069423791623241822931785974671050550099943778419915060182879940347186876465733579948363922764476151997702450652826020706183206958846227111047151685251836525635034108041225860086569031644719558200403258964923198685281513352781960442616753967029754783371607383055523113090444027750215109851496489702344764665175095140047242922851780288880506738828205203900329985824072727398076027471343329983292551421417370418561419495618409959210038441311424816900599280454775152646647809472360759935164942435508967840944209920812585354316519679430376430199706079661177439961909136277016931255461199060972859457424815520439308350935091667125005554347141395230156738670830917957819354775607721837209005255281758555804413852085096107978927642104714416902586834293662519659292626659720318701448500449122587599984984117053180065585917410132817418957019091771803507626386881232970496814653953548065696606832888873215586664766829757905164905130345654698444544798150954286015765987453545843331237387979194240063410481888869841780460546535878004068012551300653170920106709372450658930047193326192366821171719309046677536366018838444216636289678313477110474056211189261270759865681837214414686439249591843887560076475039722865573035646963879643203446636314403437263451841127589524975873703554087706848119182524167908943395585743083096717028648051784474871810676435450330757320898278584285639848644741523176064670270590058702921856976009941600517197685730926152697708348243958908015498744938400237457480148162195586279874631210077434914793787537993677550895435573616914837071293287798581260132236138493134814938051305414987288181312317057107950016770035212441352295091411023632429291726388477109661534869167712525301875423312443503796331736947818878544754866626598198501093185019009000194371868700362550262009249906528225819661612960419056845162858090823273880903390330478700044706280905225486307682444832521480076589386032201978893035968129456830836129348282983707698133563105977547208682581185792282466154709179415553335734871175170925655951592210601093521446618564126626399329416515909368502732784790016330623962569080725820823015920305880895926708850656660116716496859271147072396016932491603583069289796063202674862463933789786106997598485606864632236941724973832535701592484682947757839469129763941663407186395477250837767280818825129650276165121582897012750273822482872000249879136787053005590594469676384282010427674448806516407397184801566731390002380969952914580644334575345139943696143300135442261206666330430147488548006593562522893755804785720243891986035886468886290115031862255073696442475247910320982226133716952436174747476506682042368867104463993492162991543293905828897426671103267745864482687314260881701721315244337868825063704841251224090520783004334414821687779304158190401526117321371396141205651732861599136876294010403275426058521688468984743082718093805950776768180314267682973368725088714307335840702262482458817539085827161159652456981866315857190940380430718887839012156553948370845422097009394433376918854017159186345362247336895961239208379377825474585662684024183260423691473776682163054503790042250807106442070059762336264070438993519944309609728359062223544868033640073093814881569636359309807436299940813076305604236925510307394603031050909044770943149819794877241223443276108100462209884672314866231991281976001911514538189180508624901780747433271371432219777984276161729323397876480425494206909924567121853356178566993347234630854473943082825433480734958943359046112088442461454083565293731359356093802805445379095101040189991022289535991343237677861350364884587600884178523005963014980035387751546180633581646800984228566301065118358044839091169924094433108702775598682150063121876680418873428983869655007880265380174680434986832231628265645378716381138106338563775202194180859763327660606935503245223172666444995478897227285854588630324724034853567348133716802586068271290095290788558930524335082949025994723974837266081994220992147412901529480239932599219147441461293540459536786291463392510679227946114703403043949270354280305616043277778474188233530550621207952914348861810876346955607450628983091212703858231712090364778176269329275720160119030044981412839841386448650175111765246016260531521508692499058992891284917652704447832366771635860114632595630068483768896723628661149877577253787682164285225224386445624541197391871321924858225302459871970334972757406923901658817927251382256233672839780323447722129431587084816965691512240362017110335549539301228146980583820662968064670657292349646455924787513242379430018426842631634625082160513133191912067811034866668834911573045555746405801608789234013846809922137668438484221009838440036326227212569442812291116110573038606737088616579218040117678264625161829899180562005372228868170321272927920896716978475099089011419087219314896221857514366905344474822190539440045842586492967570537915641050439370848000130372059641740407004127187321093164448072257149799574971435065251314104325229246583984502484843533277291681739969916500282290264061595213377547490404872019684224023938817389039042504451543225757241928299133424336449018333208485081286110281513370930823836482063778343733280215261941103950822964708370595128369548461382917043474937139298546351056082329122944660432478921365497176500061942313767212770265016553831564714068829033369203542318978022504064890735577373353097431575126498484477797066841598311252351061091265997277658885699407500763367718521690529471720328016616005949892612602002204478761992387062852355206708234833029940406137976947092830213741085720476634447211114611844365008293640341516048848990716098060309311247592453323645377921725984915219513381565580731953812643739025214843900659522523659236644598757384134522988176201585560756452305420774344238621695656484298856001725314013149177281838534666337657393010600526619272232590261084707110415452611456257218847600341596320805734102403848206628659710419415543440919088684011510391091649711480931129314982329132455614829909989165180693717918994237989491901644428474112017272662291697092678908570993895919700126736091882318821344042228099819461499419925134893117054480917673522963993748883129966320235207075307652832514733403735366618920796920819210270155471928508925041152477149491484788230622906838179596280826258478688688269151097600184267209767980897703337918305099059688575790588175567924014048380207395748211777561453025219957265941784887554156830123120929907462489977199563587991001770731628381980361148108179204362432207792029149530350147021992008967223592856931916911142900028476263725351890597663050304361942869300796055066443979537260653798562779873854971463777450095377106324377330056892219863758487901329856725506138020560065495144159582649880425684484351167369449116430452215412877006018444549325051677224364018348723493603981610969876596879240636132015148093182557453624767959725956073439920672197052020767349840722604880335343523153701806030517545756287022979590520617733503705545658619998084802584709027650318642057419180283793254503230535361131888006323262756949351368982240439027923079056765914293494266172141435551450727379062283192508573970779375465069291150956744164006011387368160038589024447651665597095792447685583270439196100831230583691886624128358894641462028676302396140701250596802072834155802555820199087946833189682983791738553301472381837882297700796186601788434425686692262915583282813215526397638435020381174940387530399655820901034064470928705302496192518123109920923493143016842011644692458953699546487448467711535265210513910877469738160986702805309966121839728539565811886457667947350249146840899657293097795973483399987866206147827249526024694103393044380782445543296925607414418869699811840192270226348779599185650343024180722656615624651569044335565537772422560864174152812684472454959990586044257340462980127832009354472999811737469693996574886901722390951850309875855236518893544448480253350045046811243065701927416726840215333156012002660326587180467163202312073201410257662018058600351357762731094842161744493893634316716879343874979738935903221579115823249290492121742240846988440980716603541968157203247558269487868262655586683109582646400646087655112609573973539806633924757666896982439049559825372813785764087880901093474857054399857542022108494514901053214113805916769854029642717395693703689918728340641294536072514110316376969649848394175401453705538058520474670546008778614338158345793613513496808739197297085704866252713137841491764503702495646349317483271781867841362196515344569774294269745318930246607568861524821835343257690061082052346079535363541533063656373501826711147414571206745790648230100349028950390540685968298344695082298892370942298710879096441938688212863367119812253385147907927347939972289226514801888151624902620361434578688900371165193795492833251044719498471485602634653899582626216887929192908879077693363661781335034419237167413042698498215238996139901295113609076052261309221100145615474010878849341761687493760376649986981973292682852478144723391869907997032582809581933866711168652496001516543743174836849284172927614837970654659385795424488192525300918535148927306332066585960534969538955140559255676314783989196697503222660397854944229086277474695005129997481475152220033294917433045407482146923300084952000864522211743086822155874116290466713963024209411150784318481106264447770006536594828731941760376254583181439528125433415365421770802190527732040433660552613513202898015429551256947154642141087604096123675373647399271989105793847176036248073286886133732497888419773509807192513855832337762824412545916303188060042883236155774689521135682584427037720421589512998609525048426682278672994810238312043768877217350966383868923058789815293753890239771079612396016932404072829366983529599305823720517298417905499318980850421894094805220403200045551947840775865089882040635790641337430209949581672318196604706852341484915863417243215098080942751277033634803602865977127054545473981412780642381910917515985452656632824966492395535399741144153196486102989832704567713303755563436279377931482871736612742237179927389632234320904272496888964670649688117957206045845679015751775733876512082644872127751295222123758847819581594586468334513234028605176528983958875713987605714815667918032519251399070642649029491342120356922069345417438337092931847715012990492742961742039217624161313366633303336452968226394687553194737160080489216833209132712891141607848319655777478820504171288861334294573602351353934970263612839238098488181215431530318493565324223477098383339636588114784032892950156796181701054090475494534288676605566005873097784689765794623618857526750933881962319591379601378422695091204914419633573294905844934651494617938798570779088200678626811094291710346853442588469729271952978056091163255566116964470097809476133741402768743293214826460572486690989084264335935916042879191282116422624424132749243753844450669351395571845965661862888116208147798902596673363403752573688042524208348150747021879750138482168098695732393788712824633458554840387178523205195512530011712348543598778192507727073744863161323690425761112885789059042747259084904126155040491510874418407807780799232035117160442143086373622358470780630348978164983700539261915741549837399644687394970913877546578142487956622071527244281050509977014451142004117235252846404426411080057849581658026008298785563062840478955469949589366628234967429353838370397066265588500285105271985446149384406180308465568894151895540571482716507900352812938072991717922504728488530587596689840220928940854520089173981349111227691770581398443632119645058634739817989830654489856928045357518151177140896694953785657165946151737191396019437049171178303953294732739374887086471666523383438147591155241074429407904528008177926940652277720062353957801413959368231453983190994392194153724812009876535635142661235306242845739094365737647752060457894297187751047001928404350987407722602998511133688825357803925700926216028169834894022043185191927752663619010329609451459281383302451491307391717812268790683931914220379736185226337896229483260931441474729174533798514530528253226193377056415303543419376142470428547098352099755962759112896932007176506442740157632159015699264719813537258510127970709863877238292998992532986186078052802760709817687588533931466593617876169138673721968237909679949873468897056980531222259415548742981611650923139781932403145436799134123497975641858296230062582534774541293237326480064739689601456393037249689282717197238244117419268125684539531391917647595451882849614432050145746786967539655969445839781001259552452947599155778108551802910197372227859113140998597518350152999063467661963029349616166037210668429331419000494791020991531343099731446057371832606269655441207473866147759145496120502031012065538361725512315605208513987983175637731155571175756754829142199865790373609868129939918490414132490655539723430173298380247954027962011720973612347339351021481115480405548017052428171538556812278560522762894402240238923353461867389769610749607526912399967610304424867665252423311545110543770562237448254093458694742150616518635806942576212357549100237615067947529058983430781140519192829406447081665016958955199992508775674872599024772846097778649442261372071030206130956123986471267385787924114476555594547489585307257666191909283467254952562786887955680802689164170935907186952260220017272886554285756386200685363237704529399180563240520513104526871051466811746675736251718989502863342714036483024174223368706401663305664618480453362195931037167637585201613697236974111618747196257237494952727726824791548171478622210253935168871603448211627254454269407431500989836472200504211147152171036635787724367707933942500459641583909161851232083654932030912716291070808187872115644198570919340878241994687499194136927632010112910820151018634020732578390523696979618507997337761982157780423919193689763227022765382892270796675954989698849951453493165126867295332369395733504924551166793558371158633287529451119345798612892623206668212562025948415692244053737659413105034658603570349756860308047393415468387234871317879681450100398257212566792835861004554537667375784126095347965901306127101251535718450409173199825291545210700747857507566435092510053705401602170125961129823502633820531663497532399603019948422252331973591247115805485033816695581336807545587798767670768051973086092052592437671366603392682436822398469447344454589471061498603043608893461955329110360556265832662740527311833559251236113647202566332237237265702343249395768157535483868309820597671201630937207605682355527363264179329143374099686319388620426065006619182250081390919941368529737457060426321798453014117102588275900446525055214516798084464525594740100090407994952859465029255118923671455288806517385665944978560776886615343061731943278166900473824716603733049028526066728308253487772235237377596995356278499855775737506395777099785650617362298214587553831825419542002801049516226007336627101792641377485471586215854207031363321677611712052100580665032045660680839386656829909066737038026802307745732052206785502839306136453907067265727701505458770211685849219141345051098750082320908045026065410899960496029501813886843155739320146360024195763723539077810608738615475489251334819033126245808121309753345210653412413193896903428607045281950327393470230996278781814560650968845242719352322979003873313387689304949939641059785501345616474474685353488452530481483880775909410503630899958429854447631926537640766868305538733855016633219611676127449822596428873718090326188075136425108992489531230388732343100536769377699126712580761386439514650256165523536172654608831286441851240692317096184649150627989789356658042642871944158721422369698696964657483948855519522815617347347906887298460545410387182013587960054694427488885696771115593596429452731480281184237810385502849821150803792734836775626011462858828344474860970932695193671014574178895902781053141140197247282218258565955666367082853681836246806272193611183862960716284612079586272092436770820431295785724113730974239787352042536501509039654754674913483635345075127838481655345842692977278370890769766952171481348258916709596785327156600070181235551475013688920463402890470393853215331928653088190124393283478498476940032037204659476795558600171366176059614572810987734962583746221395277394192592780450734808021314567334893063385954183844228836950094426464183029741593222311722256165538574959698106282019770406584347545825526498233999645547671951891309489445384323373347278171028122401649304873791327049059881222432862812036508975889027640399606022978367170783694621439678973188190972952874267138531693747517326487151907622477657805716547799784288899959211824901931381195620129007313440323843588395803153316672714060663766905024482533172865592713647459888235815097133718582048913961397917063619903635760174395833447917467035197769956748948813803548292345669529815878616270825738234831120159927391777401272682526104381235823318902856436936330239334264652178586155183399646037157596240727006070520169177462182869675197013906435304218425134231914435833860652762082549676397309337299738437799452086018898016870434567383490744858061685743808406054420245914777408562644095531570204710682581149516253051324245940062573300253731685711254572772645862083375796810258955867583517272359380934177800171916926650404404091681286709208904867240562133440857147489023981253598444033904348822949525356401385321706098209946589210088112445361554196895869390508303201392717724589932330746960689558389145908979771150501013861884824222157642091617882758318800424225201045899988206031497588951530741046136194889179787878299668679837347373894087983462365832717727902301605262488506142572858282049383981151820167660255682589137529299371955054450333522099748811168998198289762628484036124331092277966121612683874679577109856079552910725441479315743740570464903255316027079723143411606145760722526886956023017571439391068712136168079842733150812912511587411023251142577895566129749224115709564930445916946477285748265399884687005189961949167783016280906504304887978871956875977381461754018750895370530919059225403652569416543666429702949091537812309879282780248342020887704524658099542992589743829794021143402375020533614892459112656219307255800857447065784109776869200827120385691006622278188974628666813627611307758553038506322462007731188272938345325521309518009482633882622642617693117967385953860953706242677277695696666686831508327922761286322195109881985168967088133465497959987353971574536875212933608367993337302326040721814064715113628787198511971317964175204481712785999382486530855318161682798452544171042937354773732975686755780241304852755372885342633255360107957839241563426683437397448553201328963640879776802576576375826167893797495228138287370299119652111968760527650296263750609454361634309180932145811985125959639924208267154877605740868476590270696561172103613462740748249442044467919099589244387770281029822313731166896790481606598630269418464345623294398776989569731573337411764775511030110386207182995985520007294379057231575718229589264067952566005973260901887914311190511769885277944100093649562317001512861652827758896979525680698719229394987427314918822111378374315327540975352691454904538475826513218651304010391458515513079663095061154832314335672669065961949537834548114977378477450038310869290752116832325335622397701966061332073510907142892719574021017676284724963080213167807232599642892041004855725240125143970829704631408499674575341919910966502004586241493275813465765594462249554302971539054899327979846409539697665915461254742184885342953628816035829226186880065328442855649052514675092058002590870135144643875647194735119396524259437405550020412237739503973497745897373832650021841672403260234373893606129994451968753203456784949923986691096255925479127917265843811582707386213925486617586650199046678398695573147555073851872212241592339453732674171115516920601542320933631984599645866744596681288511312579401493516571171997744145553394254294519769272791860627157610485384054345083935242795454852388643582361268547731703993363210684575842951699460019764749505321461224090506739550675939613449774814921867496083183145084857349284594837126720441052344352160014395837352766529802524643872287401611189171625296846818125587730702156026117271624246016199154917038542256680328016164792948409899716906822688735839121037936854162491721565650389737162817502790851666034663278140929233722042009525383207312869605839024265133271028947045310768542209830486229218458888468974525507827633436836637924394162025044137698333769859679561281921541859199357586248197978796291800988250667834637489503409420665169022976578403335189700205686606433697945889379905500963697185349315611271494713179322602739252930594941922378865254155722822051151984768028995298120936057694779425812988820467259128832856731879789344567991432934863268629547440171643094447746024544234907856838416851001128992705272203755731841688800004892127963190892514423387029574451134623816817330373830201714714129176036692007132988657430234393226157509473491725792120935484283601066382848017322312383657445783845368499990028141336042758677853847292369438625751491822263100459776888705598150041313378640167867089655559019533602481537921686209281288413802018370233407522000641312380444575348312346457350928456746535017801523606417439596096125286955913010848135827953000828946892634386446578460525833349440784625017489258352432245866361787624425184833689972876146780942710872352963241263024121347802033136040460900185061227002763530186107612989212012904437122050606603210379800579432698213210105907980760959632515235517613099840849952426904085343477370717100914549800722332683663778825335635026301955202775444790230630908168115977510675772813308871453315108735513006408724287903708522269498934209668760768845904797700607442654249187439006045882188670149107784247849591473153541969004072092677082305302411494310721330222665813286531993670421420356099223306006787807145418359963158643445941137677246537367829398818342771642716934788568575353567749218484015774211134326786614325963350834153586665097336707483942705791639422401085445803495148297341661703415591247315741786036251323237821743391532721762768210448404280089026706289261806316143135250934130108072833629801879154131514470862649807201052705578475836710872709629559995283897564643800873353662730104807410840764030043892492036364952176663196437870322373741530087440716181826699026128962203281881934263360241309290017727733636642644374806291359634654753534370482615264843077378226000926227692517223578252808206730858025154119620530558780772392187271331054876173080049929511974011024707308606100324894642562055875305474604398256102411265251603413561897731022156956714372754878968560208636986880918367324140871605987890944927098025652557961833464664730186459420420659603763976286737367574649025888631534190790065782233400832987940128111405684063737331754421648931892154533057591959223788442951900230866905214930597079064561282740235398498682899037384904083962336658550777534065958921017270683641302836082626612915335579418043121297811589279572586762937453848863673744630943195828770041019419633179411805758452486473976854204062078632185835397414823689225664505595024617041522784294027501679576238819285695779570229166722978655762868041820154912052407266567386683910359472917137111881597329289072784734829322409561335337747945497010276694474663072697514574921829418829461025715851998811491464138288392150086716197519458617684828032768584397062259176725345382673116650808126680946700542959809222500001078163361386947275408237204805576483969066675898793419142355490375469509045754071579342883140312718723874817570573708708510359227511538493637689457607439019605746740732340254724672411814144393337628982875861619400459356355245620380096286036056047013341189595910281225524714554314911770641844749126251717644883585861334205617560081301241422053601322291575694447908665020673325502130633578577685391975754469688074257737789432196358476696447970201780610611838873530678807766492088989563144109973795271944146791910490293217511969612049926046827371225995220381269988138079551094287608661806539599194120970565542515596805212655655612698316384209516521741945809718918478728432871345524482415055660611165255233206259309419473658834807347955083530715323254042462610485297135660226744270762656642928690039895436641274902815716586200091729726131785922337336272472004046483528568030687054639056219410608740935028932498416351840655696997573136719508754208444341603126083470506497752528284726418187828897891213019212559376917995543630625882675215281636704830736881986962528204607281265152143382865269755566880862533152841552298763427892221040275394719286061635500384168412544518628602722292686000974137962116243655770556740512764279001715538144811560489835231589392270079662043629597844656396293808561929759640669003134693101763409294067285036009356768999247415071712037684527900889477665905685035253069781045245058676462843552369334040613311972698312078692580130902758415152340763831209821312048470730710847041936473754763351614399314014890688497655988748290721741869300104037028146408045701683300967824263342328290295225100644290500863347300402482701339833448727201883693297889192269120789224479880713674660910825767073501066572960575809747222936081595160666682621148993383993081126778796954138071809090542336548583652929350925276563232299003450922313472734280537143848540284298643336919405414525379363786786333478167481729771440256944451058193639467861202187547075658006553512605109996506638078005208709993670982028206288888262909409558428079884627891246894373605270222307279986827784698175454962378098971496712966865692885302357146680840571239609333100405416172337076674874935787357405245971613731415118705347575674108930919450919674376258400636591673671562342203401519632963675961544108564945137961149387905735946095534642305052091169976631743780583477222093329526007050238056299976908404999232900089682438269938745181286160662347859882634475005002292368199986081293010896006648577254202142449363841970246822090765807380519978425995980841938367173024886443791550764101320519707670349435728479057345213484330366507844092329442274770520679057750480415036608792275943094637860697803690051193994360560607903714257237073252420009993251956805664085392869262384805537496568801531989353480329821171450605814405211672487345195079810441636622741835472420485205243255099841058106255366646281666392868412259766680064192919310651027926344110507510825788174359351469193590115252926349136835811508950699551369763598359280070173597945379240648442563342366640741929292651149290424576430792379813203800867249918126789357321810652538239595240359299069313333995598159626430262753135630618484551185587800952023964628752682357448205675244521764757566565683278675725208609736086530066148059858282464462521779938509054020856962960240813959513084358864724391177455735198101178772740046969547911504232345785936788632352401148236164190306099146249615726356191825309168233488927884945231814357123492502500074433477013076159044666934989138633344733407019117938179653689429869567260109414268395513770397608300106536364602283457427427182609933238471523299906584324402984477989572746730758059359367265330811686643940192216329686500173074786444593666053161292391948718664467584291443445044679837258466862003197419744828578278057636332469122691909463080785241857296133543473017229615703800419741882065397824808190556979650304290153955927159709715603685084287737490664051677377966522364898595700276652510062687131025959776690180174720256925993682363992584099678759201049685488108426891790250790397683536337283986348339395388162500783292541307439411166743628813797968203917101177918554684783124170357976285510886395432975279492197589646632517034594562925648836094326736429105618262585574164222183198688238364298028767953299762276905868550714331561452035766431334483269571217589299384900188654168087005802189024238566398719199752129198978095005830637696141509122380980455405543289773998414346630186317350426296672824939883785175946451096630384792724733153745488384560541085064581214405957433745719345497605422124018070053657461396070109937283521220793498050781743728647751807339015866603783982887447660648802767852111558562970709621646619025586821665982114898813064982105958882147515471565734210021521837299789055923147374652359490471200379612419114027377900674615895007527035034259330667717936241436890488111854705005147027855251985911889545838231698382732471106461346172576814570396180848883426470321412155206716289016030424004200767263397021770220082482609305064494097948435258110739304707397618175548756733686246194119931409375875041465520290822923075609000816994474584860497294930045696259974543774047640257736487467943772078362346007694805794288376951104965558221193386552782921119419828478709086116037465575904564059739356848113250951053009600872994576505798987316445421817711288027929743052497796391939564205877263136310728146992501979974581517949541174011742511394390698375155519687427503276023692021755147012624730075804622311595379348261679538160359152984825715609444661627085046713763657378895586447198539249905089770832300714217656317122435506722014604456732104812255130542906598845236777309359470327750059024945862075839413539640798824589848719156223821712117029532859018183158777204243167475410207270765005418069422866112695888344269910780409309571008873770033148853425547755757786862611533839310917300720330653231400104937517105889480547878953507042810375701865790520252746247816558870673556146495580468174502788266527832859592195687984190693175892233387961134089645857022137448406768644796735903700556768012304348934404703428784090811760685075204926567127463138186580016002209658054402950375824005385335642903982868082679025990369232598641962101857356134204920074522413328964141780205681767677799616123858641898688773035141456873158942872727558631952751808899036233700712580568389296193544021693195315937177482593389517856240134813284992145088395858946327632813255226128253277887510260361341153013224833393559015511210155836730106493873342734962858685428833117863919250591034001357853575311316755968820690341364637378915543826038760873238000411247558204459926335652425004027685050551237774590183049634532755840717856733452379910056233363585455955760539865221322221473155400988854572518701750282417950907107929317156455357635408232486537504956184735789314554433336907652380557593877603854794283031498733320456221025382176685315888281586818762570385330900159379667734527730662763940674258873655794036119500796929735721406587560424612528556252893805347422247693761252084387019978044100864261027368570557436304538447411638897112290537781257253833154878181981687016861788492401746785270597548720062194839558999096900256923813714017307195365099180337729463710291242820141282381713303003438263040101434750113620299361232447703743061566504928330271537556880967145494381323502906255592767202910240638522718568432715193854511205841667167718525616404219453755124015028376365399492895379295760753128282438152373013746490038969884487570874203592493103548456695497824656735306176959150488115428608780879588422007393626158371516998780675029786920285856999073812876865123330233828067629461866997212575153145760247876540203670340108506743259240840114266861042770068004081838116216463721444112320896977868324335289891704272082230893991304275178346645987097294472172556221245399779862323088505529580746044126425604531306753108937710702131522982820799051444982577980965088903807932583214948522724067596772229801779582468031688903688623400832617753516407442954552904582121880286783463144814514213225708761848493792650977402598596991484286758824835628216374302273923702574278635325948919386828195085411366647859610642826625494447778736804131014705455608945187333986778707799660511482240515979793848097781037903979968430926605476867607632393836085877932207576249981330001103585915805462376912453982710455761223205563733232106839587162022379308043108314986680797110288512676075842882336266434835217477701038031687090385774008893388622704296969654465751494895823063738591569513460268597460392163005918062101187660048044425195751457011071780769976779693907900734156760475911143892064043269396817369421067710066463675725540614039339469680843430461641488418421059041342934087935252263629873026017415517937840294704359025149899100746087931132704317478565886090679177322534680066859401868952360230105150944001608145311828615276208399424975860326705678323988488195381347242139703680055409883888056875589577001568368657564236548570725788635050025459794142463156355429031168863642959790589959516893977033726276950958251196022439365010864435610179544188205573449097333871413201867294703335588868249748565706791630459125852470428842595954112724553452609773544571272529950866027511280698638240326957000589245964832938658501041298559691515562502004448644084990441608709907459597773521689243640212843407046828479153635668193080235373967668107553958721612479703160193900821603097895767851632156632211284121544822628121873968429079299888118881641366283980617463886804296352652373039801812018586077169284821474257973885167132092014344871721609128381922542622514334847241878102052807111327792564092201263326957165238781378660203816655917808423745220096104717629910638573970151811979957733257256027460535865521803494731528138475429811609551538019267375429121205934179990172528550093425414601573821193370352867369203431069538236164549664650476541109435706523260296275362386134244280226653852023371109703213080748056523998656683612496444821873689512000535108485105253725187645188428432877886069665701798509746618928003454488216823348366294977873884944472070884206830162664388358738970222654060020547233409152243897514418809008240244646289585094628674413016494356973163183251250042180498222461401389677697859225875064239286532641631160904732664470120395720176566435510922108883556168456233031975078832132090008313435019520690046502576427139068705571897096431176856149184968576113345353284462501649039746367375166410727841947530747776525208623857118800043743078616719971913149214913001540686615996730591952198181556208947072692342606156796022762433324931979769808123056534372801376239641767150350933035298700284333589994996310362581276304707528071388703737212542461639130598454840990689568759200494731340085570720911048316982794718896000154524706696429207558508215249037414281479507876019854690390105135829622631594302768176196055685002296951286602282043036023982769076334189484168958984461617138432884958187381477215505091605716882249245594629899152768534448673389053268932137769366060286186168813847294665594055881471340574460883469530669560322625193130593518645459318764375357723413832473704330632164047655919903570265726864524397995777245869793001893191101698884232720979388652239051896399689542834613437706973215086577283819547310932142067866555160738873745043860178092126344547776403466419154117845095945942181889125975140385943129689878765845577227634280251848172120273259236094062268629205399167339066962303454301059042436599011286345219346540101595863665663640031422543075239883815859353722580291305959745995616859601238191601199195048815356719495506829980829991280870145419869535067522309668205964593026293615232355465158672049921137214010676968255287543634110011000678903273443809333370495033692774377035470720807834630985191070736638344576163953381311465336191387167992264357152722339859293529445363072206762787190525550799492372493309620102945049347293797434273451922930578213417882407819716877014927807584745958398161435141329270971064831023092413365068450527136144143877022868677221360640184646144086058016437858122126982839530060892091383647151291257813206562605156370840230725504462841523683228761020698514665771652613278376858272966051261722846356084108252624225875490716249779948519434683676730742595443876498781962325489831863782980121433753811361541189371714451175275810296880524874462278304963000305016984678811209672607936649644735706824240438280965913709753956655981901876698496704018227042937019993957768099779551889257497553128463993363070438336878713738649590580262701546141162858965163726944632846076180869028720239321188076360640038174657500110348106754284493687886659887757260871403399847516418056963734797724703793881548523302715548309529045973739194766173251833502832534362868636515972697041985078944956541411079235889529680912409700472156813383582927820970489303685820707072066186543091668242051220460633474687571795714525797399910575286610349011296293044851382261384327624722206547877018267501576159627926476261691789664568615526198058686642945834426409898012126357560054463978016978363098290137017632075354341203476737942029706584434807803937100684361487447989760558363951472674392279067411810910112444194976487678739865727083044829106744321247931680921160723814237112055630668547894073831076201543061787930375978617052680199603596109078984327873661269053315566630445660311093328465169840743738026807794827283269223814742141077373685012138892897349210046148284119349945479210959870343101246630717693628656230225508820092467538448324067229326327373712495917358763809015122264160864641605304158130078599329573563980817167585476400260800321334290325410290701765573142524308622485951020829549168936420048366709090100588368909689696534436934031415374002331733585898554193043425918422830834701168459350079653358060079852687681632376180106271672815522754932400988098857783543362508246275674986320137716317071951273192638336432804984753733712336993732396918239123511850240007447831557371696627103038829139448389806606170930810539953985104806830786422187528347336516171479542683482634380971850703268049850410566924791391229915095165474276315847720308018615472147831899809053726003339152833136891497179679040483951634177038607254158613344751022823087913433335277885008695704137312188673107070406965600032798127263266996520173735908522144544825655575436688499354120146625860731145465474443606685175638812337608118460128321711155080432712225976430005609203630792855327421971129922631150303905258658211695972202297975606674427867065597722131039103637311452016621860113372434168745331883735605604644990069585062854678387240740234033250956372952796216580274286358949970016087692832224865241713470434545933110380557473063028771471520475639514275205715447598987382971758527934985466852470979138611357453486688636394130945480940582437019894788574041919230487507632142204628891060580033647199751340301798720157977367635827625644961543128106433813788126159422980590226851377950842740236912243505134866126191295368660014076008406635472874075874953383037303015412931828294332539815554508666624682452662035470791426771367129386129371661234258720547116040389658259020363893170811399065953941088435517082321972366797068964515896000285379495810261736812208724197077006943991489326249801588972584043340086584914818999164730531804993937812024056558933303265746246375016942691452915593187574897100268916348226488468181948736752061988736924323250774949600626726283143964404594780605635070415897346733616461947457434841678991670105707721125434608085512046475345340965170624289246394412609903439460330340071744434000234883548014440965433367986341400083578453578723531850795504433729780567280621923812648445154695816407321266246918463659942877335485616888716975620275354099031610993734433479291787370073375293375928033144899846287642704765165485351672516483748650124919961340759619990331383699587583395197838213377213137284880380638381576526476215643633240351561410261071864694009706220422531160164943748214606414650198161587208845435946210986415594361149968866045111226790515285310434697324522887133439832592672709955612856124311678575711808644429832832150212746688153672398824584779377750215133402854252141333190236830514029683659665936482223576463965873309014889822394909263541330335490518733910290868668131199107101058537220728404724172625275305725661720238156697191032768960495743695750635132163845781114865136037568606415576514254145250886043262186681726826341617955844686691329197618597911015668035197339461395993960107089107194259426324479186218595560543549664052952255161848396650269630908089010763483378666194176477129615673125817976278841326590968347857122554188407625796729823657646871549097850482406698261902363921411655605504722707543981480349980047150325807996445714961157208988287210294419025783729845289727621223219750759949146195809845626527924458283407378148726883237991175376520349489393542852316045014738798074590484055065912247903941120159412997396147261670814783799134523420978102794368724357951731756550930446882156965999981446529586572469841747731464152737492762171665339673624376047317851300276185650115409381727989244938203318596109983272859240004834611925046038102032712842198046699679098204263544982839220848568829775133935318800519737461100813443668945012769896703408969324729276273690507471578699157230187719941063585132164199955574832582568009027272232523087190156168401399614090549768636499399746365214331173382562642159841606393812221809953618204914144871810915058025376163854487166265191972162953861221346810072895393936450343363939048604701924461411862577088904649808726032481976118178953755104093443368972752520604870326586179090417536229522827062495376085770239416092571695882762780242642390643306349589673259623194089792124510912524426078142472325292924373869151219026380110843964297219867046256237704453688314949636597080382140245734776696654763624936537172248104055418444835106198278451771950833135073821521617650513974649494381991646612129266398327182143169538866959654715886059275270568760713205791848472968175464649690217746993924252201094085029382897070162985414982009477624317538263936154460654194154478804221791751961236077740252159420950050130929855205423754130627151773418333453638159446798073508480075726250981746671111458730073578321251980014150103739330230914710231630306636916917307480126187939037000661178757939460142868028355413486414768628781184990516267764584443808157081120251884448920977426562180592387283578233546227625768441980463819677245040949184734845204894523295423428151131496679962882149262346175169871255807643690888111877423887605898475661331756917933319198800099340572602027172730499577803169949989025087182791460548974459001460433906754408194414573861955688780969908945050079061883996546682005216876549933842956819271191601145564906936704006378421380569624670687691993645982860855324993185877367777973770565447086037105616088934857670293447833122221401290572102237417468830597730282831626620252817744197131791336264595073653663326122784823661315431059185684439103204245720080855809063985445204166837873733879648531159791304352712906347110961109536110455244721261955411230512320885380200990295755752733679202845646948995406446277410148607592851931163028672913970049546228716029301522707965923937075164861547382176056414407636376783827028930818531527487140271386474593877239891431784275678582807216485486031036647650294957925759422172961357211464312028262567880969123625883313011619330061943808959516820042080451854264654635115440584573628626648673716534952048580526181537894231492032392792950486096148996644435916878484586484264922975325339162152073213337000727597859054706872663666848756074633304931339531478961456572554873599380808548911156210058073250403103703030015405299091016442165204411627501321568630182088469424012723010829284397725130485720711762841382242303244801857797900482190251361616794341542524296990958828451630813439731640594951147844372546704856432086768572669816305191657468014750551026489203122525474202012425131997070040086510534722776591395544918742210888879160566512798328639666469079586761570363095110590201473676407538664943686721616382754353874924462126469286958886405012126872283143325057358862586823733828057277422058514220881552302447057438009649373903930249826577008573277807219111903962619677965910646283662290203985855332308005557378224093720731843309363487907724787156316852147261438545923901918947229551785719238056170171887417174602719289229873223977508416833009972322860039195651205661518278381967795119575347386629891847946759199525830357133204260622731090810709966933494723065370492675863825338765491836465037142344578539742263915048865442393947607903909397256846845758808831251613015014294664724116390519553431567298262468961793911061659629551838413606496004585162693390373744741960948249226739925318395925203022930263130113418007303433840160201921477891247396914173120779856423393196635488525574452753525550169898915638611501894488418923872218644156071345420983607452189931048809671428348592442974530514961583306771569276563687214582925882808399224075253821077606690416476395307965260551754124859244930588656704915334887218547711827570548606971486422116771924252875958411266705885707789633630939490020196544958857791567059725546103690844500181840249929272671821760301809478184204086927270347409504956527629647841048091072261140410579922279556120169178869435257923310412258303827373567104092452550925374598257132340291352557368704845400577841725957520685761443627640196674685079478476927108777656535206045858215636592999498732440282277776636628486950692999300533933823458717088339487215311280048401198196631555958543269011058011114278049782680369022878492663288516101223315350932374391862200771062548396283524415784364017063261623614631605596541285453450219550086663318532249841186437419600508476678013554163668382440017200172226920181929252303809999037015772281771101239905261475526759721762992149043608961319727468763848640987252045961924951541770749209493853180548295190283393890489454710160795019349875905371847018343048423538195188592145345188380542725676683372505699144887977913775681231465269331391426428589780847454938024181862666491786498027086145773363093795410769034908260162196163566227958906481953536521334239048843283519942542062733437322266701127362521472113533871897340518837203339588595371562214707648264074819784711055226543513243337123498172395445376761847651104045657816417540574405633286615525226468093747535271302710846278809850105813514610062239606437093354204569459527899560302087135927805436511430397872754428909116425058163776405902309585833586964572816680838864803481202992013630790972320163097201704846766746218537633408121117814379985294538704084954156438946913380055096821152907376225242551341181755774033843189797980244765362078550564307285954740616080313686821214221727470219084552524668714478227034663897042731156162238645984272550590658766828537215144859241873499546109753700425498134143462969672909905959184732854633511604929664405368526383353708753452989707454563474233139442846671341225157454623554575947010702813752720830740121666125541224955706696159452146543298909217658864803132215670685234672590037130537766390128460394773620504632545501984188786600101595805116268193166990000526687290367188657160752289042059512435650603139923233509722241138566739437861145876553416973205211242629449614830992240187883225629229667819413474002358143432552135866902560668177581586945193441774910481071419063129270950212586019758338735774047061079775938008876555864340368023288840371272931885903079979853390419460684895684608363672915241854015560818728514214792610559169536982017859346310102007693946086669195795768398728738215012129971214413457244927647266673283374092351180672569385845330886642354437009101621864024043323005786241635577317095065574012783236660421274507122184447547297819904036054315399183146347574755763862413714179301319916663127898932723648333660418886896567474870952560437811509683783184354158373966545234937792258190503000766338919492768574230565589348823200652379133232159770212287492041540117125317868414059714058254681971206951637465084060726906269972807023754502181055230505610709946389174227860127113394023272586931021632039820815082981117812152866324623361829724748645468082140827615821717158345628090844997407053092760746066886503829191659510241903144830502983600583525994902610148930734799607944964688031582562638939136353016988198251401805577420139631044078180570519747256023480816260162144858750070624558563462173460511602280341653918423981322357044953714996291347182081251634893709392795122451739678281019624405553491301602535108091654330578561047089528821149450594228509306822319779749546667456459580045599771574546216416484577671401154473975184111611488055407980924783424139864788077406092653637538068349330888151793631501403545230553369564776467285757834637429244706499106817564759425144918122202897412831042638999306094811335291243137028911136375674709045818510790231729000434362002931775476832959529575199517259627808861412463477416732921020624337762483731644672210282168478668927750100913245049832325819078623824377283649144040029848235803808643797048318552482140726716961357078154392762651165538850143759461383923639515134549076907903313412752809785834994938012994949325763755872029374943215753722606545377732385400470124353279526364406240835606434952989793641973969838623468530075720507886405173141443164794024512870395054544552914376908924261774539735210050379369663104982990765221323244989359485834158245836741895905836645244880801679131372594022893131741605783166785964256809184593172736175818231577875472814427506467231685014757949721779598495787957548796266874231846043390861853834020073229032642167693047404455856045367972055275563812388821348911178084087784699652909314130886285862011807628664485170856627930249568417940059889816421526056874965910543495861879896629764411244517246886345498879593969687495016236071182089296227433263061935080749347177886947559051881366637147638496544144245432145348482889981333425815885182772644809922476522502662403184283319276932066711620152031290575900643341207532195358071496176361150709815514541279719127411685071397316256220403820369501855369221746652822302508252018310489651750568119976573364099866065262380584944328792336066844571602469157011083828114433662282548228088628431893386022077975907163163965754202546791583255437434555980407602025065185501498891776518242578795133319243792087733420746183664685079448793672283314734782541167949972827188586011712340088294112796747507716602084728887719766167377854744672420345457174266076939869147243500709243616333345564027696453419785718779258067982125302085248189631776200980591771919396196853730753390410842358773372801754958657221788186284561634172757961561141513064217353354615705533995813566845369828462957778221770373143871475199353518753249355226860885307322298129871519611994042373252053650981180425914876172758492089422120378402932617562014784089696141210869326977300038042566387066627618183962545457218174733454461818124850788276224347489846026590280932606545571543835243793060916106230086057327443993846205030388003991696204400493648909300682351882688353762782873059037632542801277248215789380811605822645044300316951113146620029725707061830582998398041381600122941363037419582990850487798424698196070953463044365947369650625079989729389612241299464140588012747275489547945324024378884148358149500317463760534145194501667411012549073491404681472963226404417774699767180217871764829141559305415801454788374026643889857755059501025106785585086109849104632032171932524141767055854612977873290408356376005502194460480551675654621245061052152841825744403384020405852318456878242688769868719011988108732179898394168765521505842156808803201292468000220576492119414027725170439483960684432798709992744938606551757375466115108246197938864632055588470748840255452464255963789162497787759731715542283228895388611839224867399236178791170130080587119164493126574516681421460401740156356507102851521321684791919388428289139775718497002406919466970566047288979199324276730688843127790721876172413102369887644244338632281430342275573422149469244247825823256893902405638093524465149227341945407487503985326879821872135465556358087594589020822270942563448942868518019722942551691911373371491046538258618942024546550476119706286624498376366764492805294189209040395161170807762907669161702539500928262935062450673990288234933386522095660744336366817231395815301878824185001792283789027450757161261835707422525210079245697496256450972321345173988379223466806509084390296264395876805287832444487337139607461311369712081230410028188471194233763485298183436588971072013719266044794366968268901105478164664348291664625690254362918609151902508013335994753883856111173185661396244696102304044184188803174655749806200534709457638865261331735308651236342441357518603401499041101991137889428906504422729913535573725484359487774787352649598292009802557185921830700911248003287221471019781096066734408633646421170373907638599909706140992696263957398893157030832479992129033351495815354342141901755911870114926937085107377721627985292193397175787990199842803519565431968723098055088765911427107493667153404230217123272841092519976038439530502066134333937814381320702340279091102219432883238695056231192371536160953243018702144022555906225792462550330042371974528691076178164319000777331629788889185577379060222132651158194385213355872621747480091308802298209876488751693195091223697128813798923289264149622046579546018657477694367385888846221863624026644546518040516709157141034768963630856956122000077163282328839545885003808328714767038685863662133244666083817800079374528783191424162381392433755751444295788328675097406140299925503621306205363713436983767820401801522990706270777253841504883527157180705461697243694572167844292280279418009668602908433979787117803029999939269162544448403401815728045233285700276042102085713746163104582495643106089526002846043791094243825263139876060611032859997445659252388015396945754758080179836889812001855344281061403387241115062175261505463725347842948684635149708486713932914409463588862299280958650391444079259063348330609264948704145321366592157062311122954701035187192099098820209914738675515138069410775984475487695078622060464907947975041382629795098374142454097723232596363833977132188781010651036951202005611192274530795956756526256991113936087210974954829135552677484964149367895034221952247454384684629557084898345171112505207889659529588707284116594410222548223545863241431992943916021344141965077675399869432289024425813946065021388048417928011496105213616789602117846324027339984137025722561830559204519177179225841853009493398372360774635713638686097983991465452554225300296574596438597051364402884302807826209689813870244949711682539352220703754781375414346480790983785988094615199456177235288423752139184245392508094786389131285210803828872975781055497859855744938555960404900685965360408760985014008214576742024489994167407646954631175632156807606163692486072300321729129634948491157737074270495709379926862263382782089134059181363502873247302252432879103148434437916578528001534959450706899973372430201837443411061432172053776489484166298169790853580411795061811902812400846971442923570871225574560630834896949426272254457881352377102908458690324316706039806882733409034635414642305493022207115782912521701127498639067630140575158699342744772037041822377393454967603656147321016530080458651070888720245043683740371538344945124718491181002230987305412264159498575492997391095955790157027215695782507385426261390831043498032200719003142895327084803589494242175435351283105563013320653397507046663057818747390819165768168125283792170440042065086088134911695993171919717994144308229546672450753931904230533422505178334659254919943322303858152131490248383397598607935115445350079466555681047916751192206987459705263484035186678709002714669479459259229496151681406504939711056446377805908018656340199842315147857621635109706142684880849965586995447616847019604832370946651489174504029321242483627270928311865428387727862010420036967742435053187857180087812007470885168661157644483036674351048792661081740230631858019730811421237464220817805477796043510429627021346941614537688865351932793898760146580546075769970917026500027545068722135076141704700278627074747247764802868244305495740285122512206535281297896571801730293727198414797961305268563781892146176350583273385118252944146867427681285591061236645019571052460976968187261251616330155369306738298010258595947512725979656801196948599340922730049865205153330394105744952577898442664633348842422912454082394072303276127650501549785887640825494162574042929112002263732260432889246991032165478904736253480880267088412119189906122666730670446672947868164927722772065163564035137101949642324116230433926744562302291255075887135868580824350329636673447975924760651100966588724927667626263836316782355043454760169814265010051967052790458180638703880916068893374345467441165951991232860798628079848077890064867039779102634657277279207812978942249239070438279884447270928209650725956756393085933529514083968059428892942473015663576842937987078488877437458739948579800590188644052220565966843612122212208221447165794102540731081845295204842598402191234824596060741560663672514373596525200032457422331380694332477523964467105278203184971888812648999853366425935391798097507239208567870461827090474851276951247401779467881467111345423549017102544671861198596429532634102447634278701987535319762547626622115263291949298526328783794046720128144822409036974407688593037487178198117010802854761301284912554628073085674964771552604106629050063654865881156650964784615701235559047473184018527284635852944860960864800867899121043375293117323580322073152360070579712082140449032543679935037410569471236312301503683120539797906308184610153160695015037330732649197105661366563507783809936143960500455439517248958787046648828838194365697345538452727900345100369524377548654684468950905855622991858722954554665131939811291516280988182443677684255095491225789792360233579674497556473009487332685830315368062339034086003149891447459192613165170374621127215371341343273803040806637419903675904598234392245741565421645653129814372885720566187704278877417981869876857837302708812842140678525120528411562610442021673966816011152966757458760753023755389361014321071636717393632743444810400127567253190749953249772961365733950620894538779270882785111239083937426869866661120788995366486112777645493645055942445915918048847361494863101587904117902540579280669558123085038306953019393941119152778485198566294032394050941882865185806739870700851090152472320200240766672259006667055730148254115781011734657171552080916422148305923313201642743143641450457549509937896958415008666507648793078784201521579506874208637666163570659807421232654537695248499299976177901914464160764322459925941586710582859315997764623416088465963272143268851427266804507221217145786832688233252290521009766373887627877451643652931471743276944813009469645086965741255197119742923094102389724432436822314698806675855731869753367127754359881061960013968161040025547109892296957768549519907610555010085821650872026561325932315175480439117302098159568526423894829710755627112411802248958574594142494706396881017414455460418981431184972860682958057080762105374464561853010203695227293063041320573229929371295550368440244152748702752214663166648078162996730026937974628975977827961315042395679467635209960669364674639147242781859648241391819453006735691018984953984681871726538022291754168610979840538703433846447405545362831708078115903067013282500170233970684172427397420029722331703692193054203370411615529279028558187061900237349126212271510396046461882383707999950775454139558006078863261548883379349138118172670619388163917287896872967665379037309325869818280062547574480353121384551562247196766090211101999413010106496164490396751911035700176078856381779090396202500803055347049629857341123131226738300640098238779799765599191337025016825313770407162734900318517429262883978430829112793281320813058243735619421819390414793961960993922940954658182347031883857996378226637800542132218834920282968772274058863755763302145885526515263974211622510825932452127370998930969620466019236941937108714840047715135954264637980597982665795465382999003587351803486560805209101215374205107411332541307400633502690871206488663451999616274485711301086295756824430523464545085588283050931170023891406822837582446004704636531994963467136245309702939381822633418807462216600229294381573542428649390755125436423360858298571241092639102831864310166139951576368125596464788118977129184756897274363126070648064795408934561011470229307801909660429900255241255916730427511605898013766310227668710889311979975422260852417426419196586326108721920952313163718912451375761057389677414661924147119082276334128376871824601668323603983136214334337490131429979739096339634765638363038240356050279996684375559729902696232402406186837631240220191864588401230323911071469165900606892126361766106294274841225884927294839342278124086955917168661010904748115604115154044639517306955267994179562835732337195509822527368628663532880163561821054411591976217072745426191770153138564529030785209677247544714976836412556366184222686916917374662951552056644692603008918140195780919156069309941706287700870654442933641715865091658803127236832408609645230612917534264355562054000545346896434502909493969274209031497814393261824402670386135250033138750250900244444793739501483804195138667063113513563549353856820035873523247569478795688208325942343955346243772067435900523042387086877322672854831477843071599053464252193837248687798044936505347213102807232623016744851639997184809171796628923953370974311131503350005640135578685531495845692301893772246132849370022792043213613063916247545510731541612126375937844931187995509236910831272257735110450701848383607825370230241076327531530421318983332353448712003129855316995210326741577424910481644336499084831662210470251663076857198614025427569866015880453751147381377494908887901852978049544897611963395195390345322567486964110974880444767661248512059358609018260986404354332411091163853267273521122928421903153781171573881557863039637999205447361667046143335846954720730221550887421497607972153807274254249029495252455843917754296877428669293696713207660980076902155447181505850557735588240191830602114606354718605138388407393521806801351636165604698674753142328070605790701770531330927170383001673181757417281472057674280928805445857699978365257309438888730547946302269138365731859855926183867703724813139527576474213976168572523310872624863745378123671309464630316450306709634136813493294610733200178392729149424092655391031055577114162757594206044305510537204148184496927645037481816469462724913104715962847330606972684321136434388630570088331516429737338088302304029582116696960539097794197281879760534603507783224140216641208454383901087861705084510978705841390962727159784311467858740182774927079096211543745182710746748631943536088445269793731696997663869641569201923018468795772490678243004989064042333166126668029373442257571768952363933274625296590337793405873918481713294359993268615110993855286438593034109383825537629470415017780125151567772474851209084227863266213404104608507729435702605121889677071775723735966314667661528858110563583768601277813624413440285922549095944002058401422815032527339170058129172125767127349247306686126328651868605352925871381900042684984014802033482733546109129190541566369031335051257128021056667793514178145957649848917355912938345636549882324851140925719997557559679754145125916666797371035624900745117658977851543823620252072311374149452712817957647793332374022176378769926893667012969852742189123023905148486757801905768632139125377018173434528241692851854716740025948096384446792551860259704659826247998398449829862816935742994403768438255288609073987568247388139789085374409829468332567127598088503176461532454514924584926828091818203926897565332918620392637103638272333694727929897812505355131786652237070903467590924265217408726275371434311981757621587211843536305141607489159685815948546739342617862085327308310675548556429838697902922861442778786536173470361290433156330554522909373707020106901915812158362638687225680607617767136132516814031243272781589475424770064636278242465257260093531311930054248548846980263782235924761840642043067063888382000299523467736540214057166135057472323872038521694204401281203682877560243614005799672506285907084695591832171525580083139860121369923029089036935280321281325122504358089321641569938925214918648434586600417826406602072747514599886822105903905185448385220165266943228813502100788778861565064481908016717992129518179691708806616822097362223210434818530806599366036034703684807403446793488131103377614401961736577476867454338042551498214928683085314075527070537364249332281457011912914002193123349018226304750687308116776468186968081542291147359805851263405306505158956094541106577629572797998533123003682866087785705700337570294137718070224745853154591280686990552810371126951414513821629422284983565702783978408677697622960913968538465191943191790654140196073800014807310278090323392267386245051810547953639404358214939186101110732485649470482254632633959204296898766561123305321594820293564939178973503273449542781475952595666253799704618558209262885875573766841982282348820409202450500595999242121717899552096140578455339788209284983995907020424188029834959786044240939191641885344080996178933318356733005977889186001985410098776561385547571751588590118674568214262515946434554632085642887186652470070202614368052780758763070755806582547267143975439235173211812960984477197431014197391625515891169234817557516841767665562072698791129610933745108210305709530771501279994791254691875807624735870211497351036977335950729205601535261284495274224940134188509696079222005964720671616848606606588049998219205466449465834468162572342329761773719883233904303040336778094349659335089940953621557798829045181021032362997257418289665530951770833789467537614422509145532805281733360488476429023592739966499245648302209727910142128870649769573483902481383109389299307949831445719925455466402394215760390404360208017660130665971432815731186682135165460846747627420547594408007074224799217065769133799154485117210852671683464989685846633955667894253003783693600070638537646176072647909649513473365291909607627549193424146691351607040124390129107215555072120798602523196751337744696369042415569393964701828388888435073519577908943340895581715904508803764997935133218889739721648033390041685716466889774178598648344858526563556681209979998191463703366653543338715937165421111453683020995372770994527821304266020290172280089611774254646879526863630626660714087499697003442010628830659359519018282146260000309161372673175092969856949784008077353565942234675778753313003591563640314703102806478890395698749374123825252737728171764708233422500624957902488549094637741985480924331664147198920531155373316336741745800199317666988804301257080115713877138849051884428229325518292279903778529361633788187408120533636354363572721208175209750030333416275149443361861206920794862580572547643639140850058265637816394207152655041543787721575140880707766029407430300978328590041555696730611765775981220766193272296787980203802548274419176115049520081425413491838064714692226217718332346611187742762717624644019749229568286950854740826323172848928706522697231055661176567757025451923168532894576235634881936744562247345094564161495975091402776621434497443854329436451465589039655272855526241383156105274689018687906190347119010293763498504167487998393689317649442408981164470618900276273933317864484631420817331294896658188796628710085367226136744157695451950388947881408652140547967874325819469426709986284332600067180307248919018947173543678095453308360899435917973030388714487356477336328868966440794432656449631799817463202859765977984203081849928411370005832433853413761013327080904602095175528036601947966164967864383380155328631351987445098397873513889205891758736276367626576880420772864481919409420872453621302668245250225435779037003953305779939121601185289605505695924993972405865356618172976440881219286757007856446549751370141511743516920569939295174120231659188857777011530688123773872702377985677282551757047317554334411211130422349942279703795059839995312563102461215146674673089811878684681205441876421855472094276351813632569155682995836914207993074775767020335052070355285188046313132616054261100573287926422384131942170922961394776572259509100498719551699138702714281408170830141820501695300068445139158590330500302471587874516574478769726181228377573927569343647241535221765268212042293489396665040637344593295271911209495932123164724851934496855541589671789034254702875419454483358200508627502353017048195004712764611335083207666798696675729520322152654490456241244551622265777598953190668888330411227415349909433423769287762594582633622534221581461642143615851281646681352313868748713303001709624203254158799162318764517927689682995065781219128056224655331508896292069816240587697591543240101272382501437773671820922118298517898271921133176068327833592894583525701122366001082617737838050514059498315209532961744912014943339208239169304819495712896463639398595700276185146143661600484493795796147811006954001389482221377954482585683145918623585594067320231588319654224779786552660105126921958949210051924918018734908941330549548324371762161442064984529619122394812692519367586334649782319583109845052709672399636648888107486705032077426718598181213954246504098336403407838693861257018875951862817687893367107507021381153797711718514297186990446298082650579028305172309985833444496455901429028541984568154526237688227523922663534799259001934733573547673202238910112648862205723185520236794282351046602145921427238716880138522657816096266725601260633629768065162941604128132587994474816393786983209602773949877635155383134980600090751195705337753418164371278653007567809712328059350410267122039646155214050875329765991854658441095357909461010713281674653611551634889774088776223877978316383406193401763447587477983061295147398282640564955191202007751800291788932515331436067867396744416926730936707130839441790153940859467646143931953811300132988267157934184602627527899390398809391426676254002562114501645862379949165626305113645361871721371860239133372901666909831750153146479048272551542198117416633243822340659328604823855670445895132588166957704130943393708571987713298281075180632552257679817455551170755109656232351114540108014208751569025171439377235425002576374002367627989926488423528568912806417931831655708527209678027363593185812373942188320329405623141732747280216654900217591775995762901046783237665003976395197122734023788881437498822492298689752658258432188388722603903218086072903112105351228393227952196587020974718563787094621042829570440348747711768099798728149873061504320822437845771385672228782049505790379647918256492412591932581402536837105785765991216664251291605283326940934964529688047963651789681372003171996316972697869104421815040929957171349890064249812623678518049044250625357566706333331258126992698603887557845352133396402226817711408204158426205865411781390383838239709951322136587285213405660937181468646601634178847279902656387720512726785646777518545807055739486491837294783168243835579165166802721095331112935783029840434445357693005572838839845479801600677917544571150415451237398633548437017339129515267253993506488327644542692618452917218238843393166599821939038214071836272634669079069338718628740633386034997182674617407018306289909593487866624304832691055152418127521127878998124300528324134790432110753421760075159108445828832317629179144559249638960398350991127948611099316733046810175723037244263975351179457709232396253319968887882884734184893021814954387115647605862736337505994485624418280216969791100772798028988351910326263440220282531406673949464882095642437756672014682561731630256832683634677663242459528228725638835039995193431586668736587186827855294418847458225057155393616337771777103406340620024697913628852050212898550537543301938188354665617934025653812897691017648599847126656862872549690402762480644015427842455930995377115035942169572454474709048419305957547673518155352090103980494387915507026678399496412302758794264560408116925175854616475267154108728294913505490905813409702221629840885227662544236468444719466587809730520011422172095457148812010826334138981065810962324624274868402369283083720621986551380219618406457601424555723705221880111763474116145071177975295685145886806309586009382598350224347315420677743522085965991803520075013201790456467793770740359813902583158069247120159403737203826004521080532525488391545459198461933451212453042016584474864592416849819279854321542545543186848418173324613691777719581049178149596930313126334835073522345781201341921889124147761969853838244597623757550856652197621801618253321049390390853785378393661128578337736837126362218937560156587480224648573094097755989606924806107352815055746417510304564316825015107086019105884717975697773028032065229903785207403666656515001106810697714093622763797467834555601693839961633610835988046499105873021802225450348750012225696267551019797958037338090745869852952372670098214496882103753146670844490041956766026488280468733283502152862009111918678445938266277441034156858238520309640549188794390123377657176241579851237085533722170078121712868729183604650451191056601406208871169178710757893287260660184315076981642207867539571332764620868344678921181196944515165481695588598669930637456399471995228730380202724571183895985161501745989116175116255298181792428616064665022155279958973588041883987794611443050228369265745825373187591388084922117202514886223981050891854141173934689172365222300891513185158450722838982258831779378521160661850894399039512959194727635077261819040456623400398001035664393074351360311245244873475237543976071607737879785377445588600899127482490812193818021993842364815141909978121101302666672008140940961107485456457244536296358614495032141243121870473654611854068377852739211281705361344624591597452982258900427777273169013999409354609665285892587907986658890922342501190912467649778759977526824140014279948918009816853139596644493144165339814221017827887124521792695090877395782184690159653483948849596269372450292659567010344535987398735570499375966630323848280828681715616964392382772347413437895829872694714369312050764929889365794897751552614155908359571400928738273965201962750139639852482646605693121067116335663987235165346315136191160624688617503702657243325311551292668380255156445140189928372548329174460519978295975248406064642081302846219188472296302740462243731975862451080718999082488106745280229929207286346636867531646862795233558050247014563549366961059707991694386953784692988325184068109801170106580553393014151991406744588367290734358851876165602977774613629917590179173919821361779231925906068404969229808963709771521005356868831638944665232746747737789433750298218432627739663703328654705416674596758777812161818101455086345204574267014340217470695655651460350328733570281642419805493951246519474014020398642299879089608874105485001023650075748508088078035524569799423762066593401659514802493229163574935092599161473618065772226984213989598911211361294510348813703384305042705487185467714857451215240717481755863860138318135011693338833366704214436912740143895344287167975431185957587149273168649995877108891359211848671544492586241905656490593087663951785584891511851948398769069462110910460049568870299850245823606104502392063266270883359927717867247401045300007503776171550714454282872375089162188951067030507778979598625162988816254691022830815293781406312829537699662826857243826161078506676326109472583340766538787186723796576471265647268166730650415957246275753701676457997757689052594968472360369668087541938827761001611140291745693647237268582157238057269285524383436392539605720802094769591637195184299547064928818336563080015554193265363240564453343291072371383514572256890270991794894413613629844372011588265118126090805081701078580894804834695684124768219290470621656431054509234011322479790679384749481701153311254758157420832093127570215964376275989972178887605450272943033011353239068421695994994795985405461635184575018464268653915359409571447036955834659855454184558895982887712575363033990378139491090572602455128905658754745305822370924763897937743610020345327679997198191148702483092258970766378775639159382459798134689877051681842924861388556095562072818290825002746839497842935667045815042030583591288824458690978890532884665347210468672730408288407915803161631291056562264650396850841362368409002218908937384041280761497975175561300185395319476242894981243381547437187801868499639221153600524975352862824728862022787103600155546623367188551426259344340749466994726978764728769389586762122972069726881906064340748710927400006498217312379908664322846816466998193468073254726708523889590977447415728638968323576557571350557915450687443794225542405764249886903120238753668598155997424064853007817297519191476731099910642144846949547731669620350824558274493616368200790925044797164614722406610781144032854092969760865638376541425104413035565178892670235478504674561863692414721519331932999028420861777031071389270784085509911468283485549529837859178332168667257371977867383980238134625607846651776148301487550968752562321394686651649540529502901713600559983648845836109857020073433809753408481234853768131506931180877785104385322557036037616218690523183986200449032831083445389944311048483747001181045534501974019814321988141614541238377852208730792942267638357864680940226508586907133509663228699903427056210859394366849507101257292434564441510260965742375459029330628265144301539087878771402586362111067669790096622276534145424815418078555252147793040520767626910206899760462193550331048937607219592059050432026249670911020242893387849460941824434293800726401271484035177712868911137451420113089538582834865370161125645445330953519479267948522756040005581002109510061375685379845180462484645608803032353512441425919780088029107592643222463076815869961412079256530727168854264223954207641555611447507296486306063239418771408978958281051086153937475664658188633398168323224177334513339668403106844394214250094986619914842608215794539651648717857093489486677008876465784153479826252559014459379407491307540730510677280940381097666604260629034677910400469716054021524742705599902598829660958750137220139082012272469447511364557538733588892109649111123473643542815346364944395874847176508315039684205654897623238022172254265243773947537798468773551509515266918442903360619696415301937678880870370485786852714699282648270599263957739070500110861640791710353197799699161716730634461075618708148096636447421429358306614083097147085124882003066518134710108507614520931659431076777209121087467402638513804588664744741650165901176587108295340999433651255545451127610345416634218202360301961488519580148730209054459655415781686892925170287495669754078873560709947927233096086932783851417544132198265211409031496470837824314573340163111030901856808123906107760187603181891095384309000200666828850450424600340215813895413392939461957504375837822381075458509135144525241544359104306268468313025491212498446433634568490915747142120471647850813589639508200087783632448848257674943106367360001414714355927281306962667662824716323012469188739402639981504794965552875574691164493925078795092584795356572333293019870418091603724068657280147397803136739467130271033910064402257626661623467894982461888095190002683235298046220141609083789773794954216329349980020826371615926086843271323347225833428861034935530461954474714130505696109561051675731860103662702976585992945526101721627914376027755937184740824765720815824947689806903378179958824422523819307874445105710771177813757819739430485497037759755313536208817946368111353868649936107702989784984669190520116217203000940460317938348822547178499164952785678767998454781774330217798403766000087266145291919412816571004767296090819946255586986552979267989390244198929545178122125422000919543457488605498127858006808932887426968462552879084453512192954878089741130059980368924380570943753334030249822265605399742179560264305964724209468680432512025067662571537544385031642838407384047559897980034700020056694600288691164162191673084932338200575374424355706294375318403583862354488783030914743494250372135410052707648034176716534328296017250896353118082133201790375951718442829295025777795853959291554730455689189633032886939615582644008295848354766428242915612168210209679288989428606621706454822063873106701123889577503195205719707589873374340724161637054019443457307448563767773368755429781141224416374242680773086094599757037224585283755043073397674490076153274771148738744396407143563027700920280297596936760986947135774001766600553259346335380623176049113905822367148236060159671074426054323796949112302398304328431406315893038109764731734277118074844793312185097008536969647363872097718114152485255866153928627702540711065758492838105630067853341938815352489128757768151908011445738567649683791313430916086819289850876539647533148496491087997464467480415200065438583783219619173049253262867057242902003856335736103817192916349915492439704206004333812673030317593504181941018964956283050210789551351721125238494953597860808133303902556072449941253006875378881966840332537326249715067512887701326837594652229052105282592850482517722588688044732185590631665862636968976025831847875599225207032651719918316263819071537360507016357250586081242654188345537170764758993796957800646381620438190313489739972350928018911471287369743398501555070819234507685320382718671380677861772736347127017647194886768910780171057673102563230586041236219018594201059454513256777498738695088004696757815867490565090002985242946937267013888620392411221581542285146162816902638011621350801369414025140227649262035261490170063424506954327481475249033450449355205103675393765100227418873666869387923638257476699356738226638515834531283515444946008132783203057658075257459084698696080287605105150671502589273335099154103568568281660507816404063898793580038883970959822139085822928521785081464678562238713244327776395860590753563256640831224284382892689876585308641048708512651060791852156332684581847575763531958927670488165210146327188958405638641901452842732450599331995155233857524194055151456224304658199197319785336207766736905455373332757837927304965105740729965815236118448279662695143195167111899454194734276689127053254167955454469282512297434092785686885300664627277536413120254169294786726238196615542481953137652045542689564586196653075295566451780425264207382600171662192831978584709779422127423007867475905012051296247388932123047179307342019738654813569860988775817688049702911114090841758621276960092068805399659523136570974570503555634629196127880766106678235967049632103197567488909097568107351029975220071541528454500299566742681451560238680753597920652608810422439262068916627353175599037922157220112510093533252136022955928909122145323073455148969179362120276477758128719325656186797401650087191916749422080826009089995463929448388835819641588306413453412092106229532702160966247811249394495104196166299963436455188625161999716733686489487651399975622381163181965896322016522437305327509780414135427926725522081919247459534245495062774890416893805808587733416532145711016020847478939007325320113693481990703114289331839499966665464171353475499062747215318131780994116087157324629174590928407167590397347960918617273771233078924353013781695137898245551755476554420817856909175121630488673979886632906210023701512824898373151347005561997306551618534046807960631346433625827773355008572671073948014114236465286632559344120066218059760315690396785806437794271550558904084209032164415506376923932274318291794295788330181899847366199413264827207837641563342593250413044804002883102674491213643423600475644459359760890706616734795792470876385530630018396345794621632997349634533494740219331190774703374948176503481280507001751999077879246494092676180925364889284314816804382484745495494636738362087615456432271302564095625460996540244142638102222823345252105839916514371372649150726760681915409196619472226669890282863974266553494692052279429942725835456415588217044066560314778964296425270168966466619767324861079834886962539153883638780027700301363550240591587109138449231176808989451572238081561622636124687736949189338245464695229226214077734172858413306576061838844762577143021124398002789727301934715632266038685347318973113714884529169873971145134559565175160453397346229416153085213209536810784992084351060757635504058667026797855501703741815325922949616857325246161001317399039934035888836806071384091153995294874335986983080481215431464276914902714858724349854226297650641123417089505563664356075986129452677705529002037835572140805165940064237642399392138446013753997081303337467709733194261696296167403203517011845963648091267404146504466018717862019747944323075832098478318257579572497324706297318950925087396749003551194436612016701980259514273851088373587023107959732936710352542964166151559093218931640670236089267279605374363831427978511320378506902108704820025249140126498673448592402569505158565842206050894024626337815806517688283673492713850934004025052836862456599419832451122467830310993677584511407819957446493714731331894423681561070728801173434761494001731792023065619228947014906360088140905121360982977893010552793711034645720584057663377320773327914454626795359241424859050108959032517185699632965666327695370053925780488641309236619062615842203705017631084800766599838203958670661653825779165798639818679729513393039954745564620159663771985149646492121388420940363759009532047253944523347679195858041318375690615904717033564310102008427946634587573614615244317383615407637077616893813624285047752242390232231687030360238028875992895287144731044989470964489370712230207766906914738773255967487342672955041803905238189255835991213791277208140065281465342403945307552568514471632709517839097330178399661780851098580077860369341903876533226459270333092324726426704180576316194485732374894598290430721092796467232737579460495960865905476211893837137947778241403352528630105066994644511629298285332850149859584576242747008644613941426279392342038794357287345767830153109487019469849618920126125999926995644299362453505188717726103631006544417894024374961211595523905709932958144871781884216107945327523526667395571639527706017507570947299957294653349637648447034250145263022732955324964032836967819983998546128441314028472066349320653550998895377908822859453698746407761922882836878577447876858658395728186019623810759146795665689406453062836813792595971377295747972662403324695573761325000253819108640542113547986546696949985666182296423744266783238387485085706167743591495073682432238732363452138527428712331998146739019063948941346406863684126995350931909850467375014522591614829276187518856212636813424428423394989845802191626807305780643129310512695195934272189978427941503138473656178280407663840371232514983124280228854684778165012932467641158523235163604488186526415036780031009637748621394204026334366257949012433960128853780944620028822031524371840442769050281111418443217222207982757774392479753779992607051341888869561728840555412696380029392822906210287687408881310877228720482538268063155665674358675269263677037430940016435027940133312427004546935933561341388981581537238523816333493189064223550173076622161633665323668356500876853819716474663574695687162579336684362264689083860195146830868775177583587889046136221828248323453258149131063417980026975798133988943722229789264726438304223821583394675042225239880298895683745291270180094091194863833095393314921154454359423838619264379132054576482167647535577432979940439110943621505733148770261628311046363348836197079093942894775411613172072044754405275256479681800770744094013035939141438578979675036540260375769884810198075003901315767718549707494474176464964770476941628050554157031071260519561411572462714510598318648055535139136327821625935493786712236330763756550814755099279344607122240906433763084302269840341292333774426106723214708249166126974075019466764985256426090926228891135914398619313996897875924718414263363414177122570154849479327913825867360420615993644787713752409263632661573960778596277962502134773153183796654453121555487410491312329675892882701408429408228182003140764682876415452249678721138844081391468361893054380210263183410375901419813223607091881669788262493852899395864477400849847562217115144087288749515643933346840916565455380007330768381355696907160548673413736049044820004679951594474158359036739034152966004834645347166072621833743363556910228121895934858827935988954251349781869897783452134899942540330654774003567793317629788659149975637241112823167629231852142332439079643372241641131790793734051084461404612215037378564222296734807119799361695706792691121265244250552270360985828081032840480816627829366010529547638360806504778125571987513802717185492445693767857155422013683600970289166614352069584205450188088872462648286841321863112038018195018558142135377486513040505014022048877545673339106608302127435642420242928021240193325278149167619363934098161496900972101736326171634458436690049763564577537726744815453334259688921776470225607163925428558798400135594190394164765867665066131171537050535731245635355383689488863689556502341033510097881709193028784184811171316795375564296329263846976231174457850915470994812992891111840134219461906652985391568870637834962044811186467083190711561422930810167462728838552854196085699320379901306333159451942198605177953836502818503921689937571147612647996667006908941765945268924151733444582352903411972938076008707118612795068303471423068721746772800597695460291178396766728506165653309181290252498659899216347615431186436185838624605036053680914693955690958385463727939553600857167444395691746145865396687618397187228213596315347359143361613926868345193911397072317413512373099495234518950913618967550411507473788134717841103963083704768502176063530960153936167438613121471075210375691587418295758014677771702742478212348977208880074430258497725909660062530741974405105519103661407849472022152972441621081891204767367495391177843015373305011236677914211039975409366040985771451293190606502223183581529581689640262648217252873692723856297401561690995611601077451124450615710730184076721437577296932476817211368317089033649078945721929962838423496143346763770075435685627173216550934575414668890889435584037745768903136085570063712137895190121707767955907080664054391333251181616662212875111906193311966561685397274835021520878686740495926827789530525652025057777088470234885866857411534697832138063078633287952654432951650126227567802408561291666780442799330796976747652846601737727157601794959943632128706124823592444708338932390614500848004975093959755493005166315752395321218639469496407113018679173351113681889456468925971593921615189025071993838260840481539687174161926076030682279394971145983966959175761840368696573064023542799851847589914086393046114417958687209889935001287843729530920531457481828883018760779766981296937831789357950912034575499113600471785936876435144488814663746364488186134838989973966954125939146511528519136044490366711973328186390854275319051758347122570996285460742613716501943479770527283087238094217859019373030641092154871203679491935253076410569464134598597730510467685033876212400483629183739278256452706938909735927528331127557237603334651513637804636691913593468463490788048469680912894980706430514751965413726989492304709067661258463414072984565865842458084216175392157797213329508928328473756259217142857274319196386055453490637035068918504894329322205682058234487755027459657620117896145182983963878310806414063647634700942360459503512390353840387058852658439356965500659143854170256667400255295164219622293020823532096558435938245347029462121018192907613417074633904386340352202816150078179359624093130221635347629415566834863322746366647555603779185972056160456506519231753799027552632090611139329600540642093082107617338736724457606169242562387196256038618878745312548970376235815460844185297530494607633302000294371115066227425953174970559987709090278579738871638560538572348473635288907749136526528808229410242619017180916752600037455001869757696687477415104801972746539518502958742603360999775721826828093165052573012141261319566921678110153905892487891772374014989644207018187931705549684061226226220839732052850357223536169194935117984504348511472417998544201014509511010855328953110791505308446045519156826292316987285677776230587176813147602897252789512084921127622355169873573315184164236874743440079046951335461436215459973539447317919403675686240765981642016009623180113298678908017281969994161467449759795856532179388571761500136885144415869495780514841923884891681786417235473434360203129863601566516266192660967928423262136919975247018351276559144706601068014996944623076788933442314067608985343013145624802596186355878274375340498259993618958881072385954644349968751117695484116028473664051917712583985470493969207297311825246601907302340597036604642685795518755093249078507218614627700807766368202686211207243802838559791122383390067950455107743343586804270061974324940257065295964330056745066170642641252474707645038344706220981191436691646587874336177681520772176428712334938311758997744282866525675378746961601541107317536457393665958089742478014712588332428068066053313562445020995192678737739730969705501653103770543876375807844270681777855412340216817029776002436109104880489303013453597152962972101740771418372411722208522380196963499877308078915585929858073674671315633882089851214496127231295953278059890462959428713867345947873624052780968359753125807051730930502625497030039779934763981188415385065328827381045107963895484480439444267775929233978919759033751565018764051751171289655821677048658414682660616167837807665346636493293133585007423324286870035621276048485208547044508598621144637014138995882915929624005087269874591886710549166775556319405062412844405721836158560877046028611430346121639226078485666441674715062381682390211925747130540298237952474354759342587792395859270440577337775832248684996964368581272801272717467811506284061906154791634288049175918818507645502822936547850135172798304643448052144478525981841843071336483437006073444830789142531386308553344663919368184777827836543307131701895555047016872285011179745759329950836650377400566412647654138857699533397236475472130536782503075917198757970796667711604968841841420322032956346179732209250783997696952344490627499447244600870490411387339755654153755617668353579477974124153368116295456613112832925849773305270933460229332294530335069678721844928479279887619171825763622603009210368278075848835052047062195389509989584033906550026280430388006942535872210059362147658696288094610231737289588252341095859491432375657549929859969812264424501770528150356067767816709627691408974823899078635193861051002766661509572751319152491381120357619765003545459771903683906611964967794370223271335570918039572727791854564726439894349129051461441989885267856121593299563810567025415273574341510487577819307802633840205002752972759996626623719286190077980326368421709836622777854787067964773934031936263169921162950635712087417321336976165253382143352755741061294410401470142220084685232591415425049145332982428854397524561723219114625873520870724348916004780374050729401671462578684185868677324981355397993039978457414732528029309533202774504173786364418622691831572686230791704482708795246669794339587714667395499941577128266676871415183610184496191780749685520277977215016755758450998815176047563632215756182270988807959053694698691591523123999940569785740996026996468324017999189838841003416774249149157343568330763712657352575967196177062821356711531907794611527118760760745430584195337471761259127631449906018939113331151700778062916354752417195282914954721394508275251161377836288802550196063070161083989949996184511461871859894883657354264997567449422805738582713524228058819248897391222147711974503451125006198132903983173062338523208967443818282366446214610438296222274580836521731065208162470155186697417379664202818763124806944129235444909689746134007566220685227334572094598228546003144175057053328011806577680538527842217073682655576088662603554537547845349284008168918997786397305955538592315706645247132312213339128694295214406023754901635997168716257633565768832905630892879397599621674755671745737537886315217506507427492409750357148601574312369489237520897043914856482339455090743308967520967535092780992835389905999669307670712587535478311470255885607735965842453355847473833467682468982842245627554900223723873577090727467616007187634947717122931010093502700101920100575336968892068629726550207006419203858006587851930134844290890669511763868475048938505306987737960231745604399406079580049423709128646392767256599382580275623812545868581114052133825335964862906203109197045491804767412255365491452258196891272249378733320141928689742150132067690383148021650158171411333030317049278217124047778211004351577779386425162520283757945777660391288721956297353659905151643155675822911331575596838935492391804366688541612351398414258029209798630332995865430848941111405008485011413872087793258637774336439605298615047593472779411752956815744597440676131997047554383172995492240363359792102533995163361075601942611568388162883308590209175831158191516275486766284216653537567944240504963143123023778682476374570743351811745091409914424405431023925186227575089629600052829022725150217646367537044001338901389031243550457130845748332684785388729499681182558526854250572697546999025169175005888377931108063756176653788334238526419972494505803191521660261722172343335065586962942519560349917966060150010034742412870188051835258693942134951074404095434182682689583130899231560924451949415398553109613690492881548486769047302581744275006746557071559612377352808994441041157007104289201477025708531073335235627923888149900038792374036835753704580026354536617953604223621717677426289163860903481096710254836389996154997586338722368702099436311666413226273209688657219694426710960621654315560764235449839199626895838199778786884599570696393419002000681929987785055997623060372675188094143503799659369365159497802839388900638818839838069141046153177768093495244911307548988784595315737290991052303266938051168273658166415026131410963287811245777346518892097985726813241101452021871391127606512580389200234608518211277401383481375458004162042372435491237841325390111644398797608419814592194343255758250828561712467433295210638313934305581643238852380500966872655304875041523120413106851406210213374347892876345273317104653428297347958329726189596204470121989187643220859741732931512199883175604143664905862569712521755656797011004151370722575810093562096651888122421259796524355397571324698986349849198079492402245453553297041607342697735727270996497476914667667852466461338010087105751250104051920401765885753994297424974599242744534249153822849701371708977102005272696497219755584146936559144730393503879314974989110831496822973035447174650121550352679375990953818971975272920508295273874739625682378495811964291853614969840510398463066619543354829819358685365870800573054780200117355422348399144621040451102262288582450617268845733168447080109681716209541870235508698255650928556282049497308137722291381020672541326138062592837404121131932104477067499910483779265532831515046238782270838373547925074269181276586706231677200346456032531226018991421314151188276513084969879153747176666513765546165905974307171551765974453027722818806831278482668406309395233424749942338208256441933308593627437221126543262461143002637417945054816504018648286328271845098345592827109892302563900938023581161878743823614307344701726195483746126801604010484200723664710580027167282033359613808793288042712948970987156441539660888257846479004639351221679238248722233006020386248226016551793555969051580626807847168866936471142142058692158626190736522862464888797053689044276906833981994540200370983190584895191045195596999582277246916544905211967814264357468331689310597548708257649493399977722091404114477242984520927971759924870466968680426442723880930204076799608589714665889494462707026554859373546751407748726163717200838462126686314841189361840286983555559400910822530447762204268076605639602726518708749396232419373538781956758828157476989712352750084884233203846675950762744469940350582000875560893027853162004190196943477556789867580155817272280209836322220194845733389994460975940234369323897190197737714658524633599917602256670916338233823349712083177326181076531165501028827040596675841088586992807473186659810147564990958012110482891130720856879527297714406550743400047935020696343516070934345551237566338467668861270721211009109543359864081184319536509109594715170316601784775581601092606513869127697621666023540051167169668374705931781375428380692228509303615539656148054616558296645335503533681186104418346696177553450681684624710873208134388098312296366341157814923714283538784895225981807437652523352585121431819041466231702910430901494590988891025569579586179458019221976140534856198484687227578974853625050182721653791969848879201914376056454730128299637426931326451610680336946272051449782087989703119673856808437486165252618640768949576545685931973376695031121639217039694075027423728920257326511610383432381763715252596351296996662630969961718320564929115087167800091299291211129440359003429674986907140138442769804402102503231327295752466192074672125431438357534288756976000951860245497436923303863473324154685137936672054232502614376614429203619535256053782990678417646338905622958381988864194058108075409077006782180092850108885268329532516236834108398796036708060399778568286740589302053900878713335773066857921744807274084436399214323670075348412802128634223303196102364366713015704825020133536247615975268340946437025798116029028538979445443692835612426666734783448778119501262577127828385821696408275485614807825731708733615421922735895369350044747015706950560528237545563133902625353691741648291434162586849998913776487609873897688607919996722512729649569915800124754068450652079005835409840108116968555898793081186091995285861307387968758362376701867127040664759033404881315674500247195316993483748313828578731177801225265907039785835287095754071610416206963717721473153730798662037954246210049633315229304927227732636058537056858253888471891995008581994617019019628319443267267915439663684070097989654411258771461253570737999659369590608106938899596382372544139685553718738930698956050925426183041669010989705566384065626308931028085882638472387017420891912421633953184954033302072813146637375031741932848978784290242218092254661620252744190978449342121657485981340740587781625772254289029879138814362779720253595908834688219640156602159647642465151576088616043592024981089784377858928941616903058688721956296648495329493971522972107259359620223879236367104786865854880914470601366986015544709855258976699576019867074485258259681614888671607176761893602042603750098681433084214522480779680199487688707659746833904945312046029541033064606924410826668133863479973035666482256391040492600960862591448024048759922046830370610694948826654588411244082431060988651369307063470908084614433827827172977418279969517714136792585427889824491989641159977855845264376223112871619348007015764710374661284011429288361846075576964137374073549657992241347012390889641703257496919762991215569338150237871630044584834103663017793674536866483494564290981534091118399496626333860000877316653704622437028807812918077384690315015758002048400888346133799919383959687999657863963229342890629053390856753119229636362636850649119461174193764086287132397910431668235176789744124207885944588125848792794158166792176780845573282919888020619043725247876169152418689999925258644883684057340895657420975623979653744438592628080178448614422952350867222002955468167583547887723834349294874397215845259191009617384624351045211951748438133914672731820257265190861164340098858134063808234852377304179127797877395238632225279564314478477467253715653801178747977150720390691457390452717599571954885938416879443378475931458503375695130668394412942141683393337127536074626145906401129805360402027182689870895025732142298212680050956065984007387170729846491119705169738293758437521998020322142842109728196102770984238318750374215956910135181704973419113337902384428449477953679103487138054824054964604825481068592310282518107934629995899161026540748003258115650263281480303870765777109862082751436732463479293749812580875842808794580063841277590227523554918543567467942659481114967883282134653257099380973771493219539649525568928208358271157501036978205309450711286386137466413898460008521130320850188945689847262059471061221029356449510208848940575678793768697602004877151110573872836106529263921785082499048247885936324496453896468064126678877182998028546861561731286749960313307908985661512220171567210132826245823344252386801228245316702477675171847615518547596287950332415189253649225065068419358837961747104370985755788745374146552478793239725650540430193876879800365980541499599116744862523743906348982349049633311951367982343048015890024098779475995607459798248053659161904308147634573665855708897125703359627229730497441483711353318503799968739011660908367905620634679127816102405690515490748716628105755839386799665424629741824008881897216398978662036080616661545513936691317075189909491631582471035051260618367534363119596717007277904537508205485717088035483291107133616513243259539743410842468716615252778270421889067034168230565713864436933112367617704705247791824488567254982787068664377030293670220017355127467232740870773675106519873051630357448505178106301047607167497437446020551481621850594334827515877933072829052596581921734130881507705481774356197232950646784862582830034663591965261572775206197339768171219718385692076618799524270479674352197189407391251766497808459442022825775244889479587778298829642480223680721693595253885676330525181268436310309905091624712694618609256967511028789958848184907634190190434056356785528206834531493890767908070927122066931744474399786502798217237579571015332638319706553421956933982814766492565981974961514054669532898187284122205459246046065189508981227211970351023304820131266721739761380656511206794489415225164449280077958689829934440568959194465070867259172447273595092449411034354695004093484352685294204686713551216471515716400626240892783881095998582082535145054463401960476413055885561202326853926020079046019775241850168793708179555164098613372826124807983970844055323471808316825258420706321524249812614428718222553490599227310527265643279028721365446413439347977915792441408411767176622117564630109707070738907157136325454178922135634518562012084904379202127126936507846307760112339497603141113341626232534612430413712686586342891237719912332124245378691470555671795282578532587724989462111078547405312631702578102359144506094827992746627404797906391547706225855189416979420128214963640757927818800639362010361167192357312755515384437253480709524150014031817576061592412592108662170973568272014548749029363779328065549341566152982613259163565025179526936868267710379608962397773142424614590145762392328520604315767132795127971201353081791298509617928673372029657558524220830364957325693536985115020571984432649895919028768027108662659111801700490967137919128747980413956658878312885246548275565436414385952937677274807598076461231655764256106126011900598971573785584089485533908466002035669241838756825236897432753193434930592942923768321525680385266661455730174925242944218275970847406851724649912548007288967237024703522027952301495033162818769230303043447383269134038548117083709578814426751215841524625070238554540355625785880198013857485625808814506330618208520139699258707525843555418869001034104246576439718623897344333969821817298794846967028724739368569134265623384744678222283792010784177617037893297334850532259747077931326344479217635467092641170851930699339942114312829786071273585564410609434495339341869679354896125169921099493123743845947188799073409942857938958447104765206367677319037115909268653993245035853538778779460129645301926457498652893873523892824517785906711915030083101308504073600577523857132696898879224461081445107048894616062288811697859645847023413572150403585439585830893522879207983200404988813090848472625308634313735869791177260443916705559124863177434937983255873732331104412480703572446935007371253097958643549858681858435659548724376199034462326136498546826044601689741684020271491613808376510794580404686798709679238447672626392117736200255984849969422535916277687315848335223102164805770678721667374996410766589737968473201730038085724115225698104607713305767836107220388183497143164266396511772898966041372721246705501962126675504846162424389070249687740626029369254445298213188554321984047278610188330058596914986037699402948259936033851071447050750751011754153260396169894680127290878289837741001663892976126293128249327098276955301549446428264879525037692531406592776381641858088513891654306260622888867820649464977465807676237958473902765942427155862445671491748689735019447001666320095302479071737345304448147053782195422630730190068171949970398903686602163687028394096124135046492567088126327075373146858628180424079539276054577257953381306672255344381223241271473304413871110949990506832617262135471785810491882801059857265378381792951879702774958582888874787816235465683195080326093692557458261398570565607843760919239008112804721410902512183926194690870749583737575239118122562503892503723566947618440371837981344610280070215314445688656956913099623747061606853445971927868667033720679667129926690479222489991604938684883827007712855316776336061748898270798626973858688518896369090558900866392590513777083454581509045733777056435878384797832951905842772528825458200613253524524661577178071248791801283687978511528326653845023831473939558759155551599444689271220258087198100196711349537997692030980828928376431073000895967637878800156835585602293452582534304654814581852753849326677151712438013724193781450140393823407692941316924643576068888698598039898614408817428107137714997748416756411793950684771302730787434392687527846899376129727769672231081641754469536338726221029742337272700601178816176666425641433601483548704105305142837242312966336141434404145932365336427727398134830752571289419029602639623920766936824941330822611503490079776530167245254441169740239513820965966678276353886029453345406310441067588465094393403773754699787856404544255271514617095450526824696450718602178125683591483224695693388939944132692630338876309684879215653237878774709919083862012729618246974923481782287405259396284619130537302342127920473313791063252011262797524587148563592644859883877040420148721350842008046131394857915975027269930308561315790371350855485231407071872799273159370838744903100346875858892670230407458428121309098465295417081987692385303679305138367361090743739223272220152467459505596620814377694383911128510740822580650258021361394833734020920256314553641684785956423143580518594029335927378440125064855891635919504928216096036662350169072072312395635983138980355037397401796123813926661518816266172873967584980732127655393167312556962078926004232382850030928758858249165645924119685852311854738851542759037106528226813075803455437775479457196189975745487439213110511280071984790895974788496048355773121436408822900574629460406897421039173247296187324775622191483485567522331813542038618730792670452954369177551670356232961744035614280341921197269673102852000779043003859551025086175086350457810752377356591858584075911437307647154970312601536639933356648818933532809711075757822441931015821292061741563975602992971223824774996792761046552373830157538822923579756289710714087746310072489896619779842329414924683620021383707439164433845442526872818813885115215329696563760837464773228679008676883069609622006155894854176826656183889704614905950781521053243561790976074453164213017058488863467224194444498207454881635796633703926480266724698633152632056156469024775366646372503016249133413776863508848304836883819917846304736691414923571341573633396155732817404695991209357755121524237983670964113867135031089061588127198112797846382209861707056290088422966093703404217257752847347039652239640358430200565408609377661993567986229059665270027104863374185669630375668966567851555043633039879210291520918524466598170755969486109517253495217407405761512113911721881258801722535486977593358065593739790854653157221795945615255204998047551246240957317845325982913652984142185235415546459156521819434065324568730090608536011089890240711596454765849585248205735975471154998791037517066014331454635272917625929562942431107784987284499161290754682662711868628374071085654571877020132566116497811278062297856171636219180299541467216374911098618653180467580962811550477959264333065443641043551725272309242042700350531490706347739422647594585466677121640564627124803612412854680145956371727921967075922758368070137793826736806702620235192036630291420468801802474297633604240176209737395561938005958931584895113855241483212413625121939167865612909964659767218111032569091702888347372926740442109128135530515676743369833247902307593032252269737167943146563640638027753463301758350622520090595629773166527834595517111693832829780821304150542860761604203527958879180268408161539574544679003000237705642390729096825086789971438104038769248621448867868991438490649839392152705467125975534404916821322090402510669158140413855365780550432246337779438038825577987798308044276962322832332805289102037262752743930858070692318642879872357755254097455241199599476025571673525261474790101446738945554168821725524508723098361457808036551911501849928231492606454538686574018758123545532636045455417027896182895690289369078304664850470463912414399154680919566170315239193136358229570332119685252938769925016634871574195849921680722491142738598098794112376902602804210560091874928529207700541831470732497611457366427450524549161651524913275392788387094358271951899972179682968324584026419159029684025096471038593081705145545068003061050030849749280161939174294267549083839084676647088438839681986798750020765243121106089494082984905626204027479641899620491308560832546601934161370497810556974851122963314784887312789322552444421854633766386857537976991461913180255943212781143398685587445400158515921153867724576318538827846422664693321181558277811380767273917912070730353559423915480844013019883886375958890301903568845313252497417541900286017023298603762939546296253423405345598540388894325222860025547606331231110830072702312717739477791955816027436325351299737292479925915727988514726438483544481451471895485768409389620851081816075842094187849337585901109616209667606308430722209633897352438356044255807547157869713687629477634813022795436949904536194605391071921042714497048280550424560525690170357051966635981992448105666437156797187553519935243985697519562726838170207900963365838262601356902890683071071998738156668401339251278130554347401447202442682540793109037469241716217147370594910249183216201130814243944814032250999350592063199204715596119669701022887393518706787363129768501925701988958206732151836347101818925848370330086407845499601322568696403186196763835413565115364699619584441958095191465745939771565828240099898330033690180879323387748377969711035206729757026784885292750447469662281458424100320588837079361727935890423148842547325804913390930105571746295039716889710544073742254305111395006625903330517112798470094812263123891549170041496601840210019306418912875995254326083295468597813922696910406616627666827175027187666194608894530745612756307766836558524706241428162604354128144371861721659675796625228695795722147501522405859475954094537939330740147851708535723347828002714388591903691667887200657669289999361558453688561033312131996229145333549152329174944763041155560131735562697932480938121681521122885471804380891771780746496231503541419452145824289412826993095810373234529800501507667013328836444177625495370493897820963839630090246020339193732177999551960975819985343679085341848700383618085149334791381524321646568143120517984823300361731305349974607133337492778809967590751004676569533919212908610039639832354396774535828947071164305387321870318560841109082505865830722568394894716289167669566413639380930999926380473138081846514471070987077216218261423314193914292415355173534660171836845186362160593061019302313078094803086252567729964167711665531764191051118010954097540308771749485098411479996362644590082190511617798243862261933641076537998548010624210124140382134627409377330685561172094460682129752813839690437204970258198440414233913756688014843849014711064120474596847859553291859141640990579150933158908676773824537688824154400938104140025100796236990917723389574546326435593395665341699091026048788242999532111838098383921559505715326120665738435633465119578739854943200248629500548193846460171525828414911849287706062597051337955048918630618632393373454288150394917078582911759622239795979444189273324553830359080955867376491123735623578450014839551022017468387937524458797178859746289655918527761754885481894124130033858262752946264348626459182388093142846038615171913947513660829700437687671225955186270469957450080556719280330997690705746021738524517604652709264883853235261070138702882786265878495500940150039347190583655553119633506243012792933232063737173449251978787533045249703359797215528607148513996321665709658073157875689632833743133356254801558663220163036103319189006393652989608606243111978920363616434940654425109998919413738812373030522809891318128873002073789226314910750471679683610555443743886373168900271186247641666136443087270178920630269859913074102832282464800970857885456733744940792044798869910027798122761399083842179107814027435269287490356487922091909234478167052726808010875646370401642176324309853891981356412056404867230426875552197574358249431006682675300039681947927271673692706301272322697009077904285085685829078895167777203309010035373915214493947651900700965135515392120039503587650746083160253063714324669676125630795013108181640834867062548731448584338183210967711732815619452541179017100232638683200446963295003553593460425535683344335722947597644572023288862392430035007358392453194149643652026941128748246648686363939943707083286527225527097342842483104551622640326940323796783968043176218534269798732728268141349529457735120485049880930117808424889739010224855785695832336639074870430025430845644992151764476526107826808288387393464307482800756950092200054661020468240899035398186725280324893139606237809916523551372254750391397640844263606653108279812582568771142070315685596832313755926717557444310019393757110561507775550837647422260999077300430787357071749292557257782547983588375714190704413253800452334963124692731842045154595969051528080499631402619669378712868676043928771117195549552692174162266595938494259563013531492904059619299287618647524907681374262511542568329506166302501855129713757940364453266901396494147173533836237023781274274453739136312226108186449018055012066930304462088009674437503075023136872995484781224742056022061216688795764282675008487180232905044812572084202869431984229915533036221357195059588754332461531774456816909537637875909918645946478589407118839336729827720379316186838578834198558859303750202590307165917957414287153307788833903747683792489822375845383643434080037974474664803899845215679746456658401274606825549881692194321319810491853897301797780495284733171869208885967106963090320806344577286282932932349908758467163193934256693384093019981693120913641710911857764809593810170301351720422882979081922770632015436567874157256452374054503635851459693408306725904419449274676891181438901593220148215262554266190589596015535434365465354890439350361800119808446426878394363951424018654999044610400966105935355348296307665183328611841988596637946284019860646691291741766732048342897201755750290941712039942601752270109854598622293117398783985907629563246168010973820994523209434511748689749230296900236174345952411222470894784440694394903683415784500987060813605109828314805062790193562939971288617543656669345226704215093950112186432371082533430943367419617420454667929182754066954980670791720618466073333287665615165931478360572361808721159345209556169975929169087869180906540928994857346857311863319722968431016631513766023562805572998084534930106859393108345793931272231941593174211644182802136766908258958836352692002944661192004718947436560956242096626747850064205709865508159787247331633262426950722157427990269171510052051981972019644281839578362237082505223236431746633572714937477228455117259792520077149830350292502377433245400128750976440202177348640286162822764196168266577792534192994544995150479570822556786050905240551965302211259573799838870461566055834304245991260374899985086180350644166093489660617633182865615217908875597605162274988347840627457901220330677060482378655594975275324095919797015536340569839261555881402130527781668177889065615286512750932515736237282734627043011799854518841998495091032777253616820079100228623854200606613772504908005340444870067873225253488432395725411426688529619201466658127459957984448024433095189795537307975837961196852435836528748637853151859789838496759440965113340792244832790068051537829275199288492851749287401705438892295220379304485568041229296810510927838354639665043111574138821649115604734609756358467213030160590136881584214197122248009610947486277092506347999125100150097637985035333977741293180232356361132516194532962353261457988933492801862605813070909696865056148116182327259774304336244137294594033130652150426250676255815281531743350665959736156239642508562116536575956543398187890431310253716501746600686667716927079722853871596780268491960624849017284573821654127617813418317973295770108864992641829238557769759983837549649749229222264040624979249837010572336927857199992179758927414566060477015635106605738255551397933156676737445669783539693292470938925608310608260525098210909587814680006287114007400903264576238722946284575100525246386064803484051301801881207146602865212437822587798677239281978562471617880048302829145906204987078393646373354925484554294460856572922405431102660705646950477392636326560925045979789944460013027552187613735430163685706628397906689507433992145758968254598623194711499473588785557463850766899027177623287830831685635983421562606536331999686750117788624408499061316023299554919850759474151191763299481751098309506151173224816439359306185620892427678100268230193006498758004388289801985868835393416430985510086037316572192551271879912405348835507577774311897470584369725249148046953914172158650527353670078831093855365849982095786043113025289744418885208891075030276474623003586039068353888060728131870059463079124338927361791505554581396729463024426676679240752038082780408829888426204176072068964837200344979458620104782622852269900292378342997625800872345141774468572181488368686737558810557861747910664867424192962208542251112857557356447468518441027718058949966841539848601988981175027556877415710263985287211450452770312602057997179917867512186979615637492309761719098195218148758125850477964340247889726350676201220111222417803643142361815103207266803268621437539408627991961683872509116932814874643225936553540779415971911115828340360063821773423767177308699617719383551309363104352680949944180943993933930373729758594651201694324498602467016887629154201460934402151904008298957398401355801815904123226126579755738692764232114723075582295583145891754255464625493415313457946097128151503917699627094254984081787957478918420412872292770679136811654949189475818046103089955401319843593933076555595476661943506952398440782227958264611270349077541976985185646855227199273015976445127747287155777725067890779312488995911873276666235217555672778356554242968886823374137468070224895381508199463411032868390643803895735607238005596832732406562295403739580473320840672838333420624690098446839027500679638602464823873141194262169680942848813242619111630326631639849896320405292509519144130204170968733474247796062259779718794414614828786453048800172068974931262412922490171473487558698689849948249037327054908101815850863613261839227225935023001047271838550537717852530717965580641242290510040067363631084744741765119841660686873945137019719756012820459715870360103726282575912239399792283655312044180117868866404333756166925824183284517139762569267122034184484082079058741360999031851716275806745533705636492624247556899616621655054869123569424125920554112427569664101308448401625226878466814358273305204945606346916475677742601950089940068225046257383132721072364475663227443782117989600240475445384337583600864064061387161543958001138245505245725071360183883530496885021871138335599235514245890503308614519431531131088152990164687837746363413685333523281519967406043158430555672797593392003629201766418644292409268335967731998244487701739154258349133986650601728432862118157711558255203811535850160978081755163507302824431435397799643130268956847012951396536502521547842834156286442249352619143503157113111652027320106448165595589471358970277264841608644376713064728483555818018546747751635916894150304998026067966023338330721308215955152064834016332317478386492159877857805420026841808091625282322604640767275720324494367726281849066200360493745209718690062262493207343881670136939910452438712695937730832314729322112200628874846677130305370614139468027425417236597157276359411450840364248468555270329170277337889284637437805493491411741687989921734388086046738738830113894234116729425077266854571617316618358686824965417099219834937433495561915312624973871451958294041309118350606631408070557138718131067651903784330462171942694167839772262480246904173319577206888995307670973376374378108361009032027644567192403830278678662277816102477400469233640484277200411890369323664474853400786199475505980597932370034857936069878222669583571069165719054958980011732996574989147802862866943525046296179511320054666052985566872354033231694453023850198073545938908529769533056201928530051697448760479850320119745943869595508750637518098588743789567527894411335840304397061727788379104335969083802639187996877835838834334418536128413689785053840682312272478637114395985030040509035754376224017493820710285682395284978439938234463202190148303769466878701011199668861510103061037480306139001745888525781735505286522310723509877327054253584609494738678320208365308566398691579858648438886704976235882223086252814344293113419565407758144491821181393716852487715897992932318341205931097379226946628073276923223690622486322055303599458639495627336470507496964106007367082134681835026158236182856279835779496647315594191878016690528531481078917685258278600481005109862155756104953200481441956744577759704344194662466629062985875812463578695034676117595424674675858116172946028145398314885092457068125119854185157873049160729058390594480890713430646576916438049131146526760795688658350654092129083187257233058796974084181324273414335865150389373129188344666946757038939137640620168154734250786446020189864352882813093208128670994114342411811477016858915034207467932484568955831471756722449479914279987965506280975426852608494466821927099959656166247984073482688641474318068779295986616181001835188106984610457529701283752514538791304150208495972439030844881204602287170534795760658336022062191050568657516350433592451330309210643429585095388217806545958331180927624846880709178425175510631229892100523525680386560316068024937852662317077484901258004831674588179688715378205730037458829176475979275320421658386827969929797305784055368677794187944113354107894937546874762943909662176195192004971658164752729966261158597264720417844232966121950769696225956978143784813035503789832428948351692905288292595863949247218203228653791417947245643939034800625010485955973287663663673766138906701608344620537975793273431210883000996159007572725488342956959029081060414625540635224594693561411695082382888541185020463830044680226813197892984486070803773281895725871697901702223526552517396940584494079408455912181379141336383510040548688152333998670097391083895693804259539548321497731190053742999320076561764848739563392516528262562014656524006203409842283207815332258132539956716473083990259081293628548568379683555875147688516613767486248689206457364616951205171347553349179869731652083007220092283057656331555935575662428679138663060282231544950026144686599610841294384724440035088192821013897081544789244804638942553284385615488652004936225104113627534721522646923837717848552050605325507198963425446565385528947914202154394761493423222649231543616882778532115808157803094230656328925728055505627090791643480318870075183596473466168750369808230786509234909488789769355348996452541821846848726193083391269363198387882518958657680338328398354080065698747085594406734651856609036067068762282205099026724222440559618407374598760771443451251763222308682003312073038058558441115435459314289817071159718113589899464161999527303981473746664741127998152669672300168202516189856841306858225642161402928356987722291754683584888528835700603317090632162068377249552105903455982935050986689919387212098013495356771144990644955515589729196235315716164578325754525570876610249916262083172971873411019960432255329277762307253625201945590873567386895475674779140494954270300050367366468751752095023868724057269963510258621696724029447606218488564848555722363776443901198448683322230908009456980234773428743136707589240847122568932346513815522359909747592614777358543357839512724658253600758816716846230369995915079502732619331317673404050228951086782341211181593071570435191652197959493054290803573486606370209214726520118991209136690356836762788046242140821106394572739841179297959688579314556050536359506098910625124105005262663313143283351044084313254385154642434404021590721658148435299025207711589156297124770035577527595352762758502506148755985613423492119291313077886286008982640810194215593605529474104838459763033849498507038070845881825520968302217865981409808565073619626241749861861428154602423713445294110542592439494277859102233574201181590575852448819858549845607217593139430945032743359159504586602923682418265326224696783197179350736669875029510674366466047807862467393805931020647462092525432131856107278682017079643973073606511052571886173564756239441505309872446151317829101476332618627937707674698988875429780872393584935782542197752248424376895727757763252082395658692925729061068771199712043238762406773496115892066123239800324843231430983480916359438681407839427981943748039321771508930694172952534451736937764952562350806828064687843819897940945291497714961772735749137542915036642822117359560512696558957529593732156348035608062481343527275584667978297361266713934880119015929624732845808045851484392115261411806469412237225027509544102333842804590540175304989963681774207001312249833468293376249785899230330503749587465115462392288487792440590558525914695997527122891281483227169823248408121215535449221728452396794315768628651824808264706009417593629859646071966866324145006835120523680158480366427904484909233403969545384200588971243664247651018901092073511509516535708177023792184262856592427956555876165694996111404686943823640017586996688252840493726218987057974112033888523636003499527094832700279660408656777704390508044194860489069493518283083458371994263712001363509487398123520010092485555275940994066134529047577772918464369336705235037347235606047340291992756006890602459893448425734150566284372467528755492526155821761683992499095384948389971842357818800476026420004336772623631743076941147964693249011629102221563034732163463469754877870181621506979545250766952236188833003987741078396544224968273465888723597161977238672249526777014517206185899759922968950728705979894402910551896342237240770108772981356747771508711075142593182353252632251830167710838982940873999257397140750804941826940852111477046277238263046059734088614521808668905265812409893945775688349158565678281660698570331068052769446822905157456751785777897110606852764728255067001760605656530570070198811898141080303220158024288008554423001746990315269905803886669968332373743421490391001048813249786510391028877485520818959697306385150829063189373958945688255995203461282176878410087461694456191607062926948133272578061326443262996040517552973188696353928929934380547438759322756060928078696078107157110739457311271942610739732488492830496067268486683316722107321932694578471981181903218394838268327063761526482085281820667264786966581478752744990367355161680793360315399925754109963952234639561310419175397688491076914870798000331656818988522874515071198149596381559210542114627130091131120967423341076030576367455827112925868849408805157661144593772371208557768817212149281810376134406063180392708120613854266914600974732629553957324852627863128486448934011584400712096938200498637940046836689108994181349673139805174823315674115416984724198884985316187742581129105073133510139189042142827484910401808397665958029926855394034201249214705175850025885742414247750492915101230256795353385268282462808328464746127176311572142438737713076883675430030671434553738567269382964026021323578025337548541754609086705409248255260561576583209308799567973449111088379411943756170280345815370706563164553009265719328107438816881441820836230564365441084378821829464372330508614410452822890720901531970503614168711527418609793293349382418393078703002290800806265391133567939830252825111308953177790536912069569269859053105381785794581649586615651783630928929428447044007640157428787121877773519006193810400986217654403353796272387433681321295669125562345956325274135740271369220998615257280544036625425605952681982347902704273403057345611749229505439930239546517859423004224907634117458316937143328139118541011146268498955984077424301586545404832113815354497813369037299777520855783642907735024566504869184353851589910835720230434166677764992453913817050569251337239509144734056147735493731669594761099547985610177583032126703858336545385745627791016697136042845331913840001053212170957757177437591313405834078536869552533044994540034209224812341487081008433574571307060436379849421861636685824685805699423530244527311717373835296809549076883509808261377121845075928819554865206890379882210563657721730399615379173537336501089210278012164783080680695957296671562791744465871007394484550863091218747117883374757361691732560302686906673014065105616838586369044911533792592655146115377194097860586591053062070071985472366862826624012676423406824363461229583031157174238001223571084598722493162286722362769039965122551425818111152360873970021500948006548687950192079054578977500642722007141906837105357665028656013477403702840074243278142091181711855346910989355473681962843263242938761860395371093177263626402300524064998046295801998693457587253771719602776986384342882847719815067300575386269981520867211037507833704461769166950647492885977596224240747703931547351035622068582399737101471147292402189567992736863268902761790056496427422553724939407099623206367466259461016352584054271106589078522977977301688451687215294438007490961757651273133576478061893386908388256587676077347161704418574194142341724524672413912679079228637378488414638728552800456934400515768290250470336252357323978702284015557277074426398142331254316551836537822340937846737473420777938831351323704446120982160152147526886791446954778847693583672564769086746335291550711767849096166739785804798974424196523102484553822205208380677709522762382625665131105433442888130553964749389829894937486676750880210578831502331866074586381466368662858591041497687796851454557081914597155030322771278576220820556602441652646522869643329755673392727228995987544419454053412717802467409306702000274146762601319899473689841260303464313429221595556397417631369994732866292924392489039973804526612543415448154925022071795974058473460810635967121284951061907469172577088293183427423242682572679397851143754876949711462552452020928465706778323677643092200524716460360763123236309376210714439407786051385364413995965218818396062876109568075567272560360819488214390841577963978017324088887876177893120600298285286002640683829886644424435747112623526205905522047527122305807458762423546647269672035993183438655365700931327417750602334405405021897210087238931149331557734003273221476083426407535103958099261061803864500072308257478175723110641693092518183291981896790824728446577001071963547001027701928202857666929173415927334121468420166528828612900723574296081479399634521752255666896462733598300481683627864019127251953392536576605485705806137668245744463045465857895902073390342003076959655640248048151149398370513160569660175943591465151085340856891442258217672614565817322804986112716769801958059729402928111023637018992598999163061052084132374349688072956988433714772079953047111717006950384035496589099986571372694044210002640713514663302931887715387898199159717494697228840032953879872023120093188685331395782008867230015117663798305884949919691283856949934717918169125050125201729869379294134835429489670152181095428487791115597890488559844209609855397715327365884821821650601036074454326921968023525074981469572183586640071315741918087200248313137361941862799155168330529967110665111277066213072112658785154417884000521832358270758014119709840570000719805923988199391869382866853374737344712311229284376150367880195329457358762783399391491593645445653708466996863661061561051645257171840783778458490045599140382213301723044520607383196155457089716267763270913784020503280881969720914142237941471652876460901110503724316422231765803961291662058924932454781080921067977298918985782307737555861201938070707133587796723508596031677716295364059084752988259722074946437435278385859876480496200218562199533790706053018558457143274730609317214319043294490118903596184147818473665879076084864450660131108057733387249409106562033896726988711582709286382956816789887268749079679074693149771543315880774081934265013282505298503286371331573354533570748159098689302253252859508709822652456290546808881903852038380663511137039759476503376949729515437910188680573571575936879708056490604672472495968355821221238126118419480848126561840994114441232503469777329268526435228298835808620338982695106450961570163044268529763321758521413738697692878201278796396601246260200730460983300939195686045610705842427757871220123370652989437853361988086422000043703984610779449896765709629543566736689690597253816052408309891986970277615040549159920607642074187527564990618642657872097163475125535522006606910365334401081144083362805356945179342143718797097044332895142669783806477859941130232070181543116185110337601334985710535037054316851291603453010709580468731564065506167852751051881218522516307449332919903268300418022967077544518564507107066044787791353100549958330787098205428806069157556123464623681078048209842110431581613865272032866865043679398332100783151594851048570960780149034773032506926967812667977223150572095630709201067003792235088755217927448246238871488648276133561022416768873259806475962218887094270472924372413447038915434526007358422726741004131389204720464255872734763335195994028519593689054508860842271356590969654741682402289659735378743472934221970523424689233932661000509534155907488376367959058811189109059183585161637277301727114538489001231314007083483191032195259815997187744167954498679663808744331036319114847237144894534163727013966848462307976271144234117179032195805820134702315989443233368958488866076522389175265725302607131607722166495441169796330563057002229374724749992724058061648250804714284617113005393726863488403691799004945568349891230397362380949670806183824144670154602792422411980404703846833052360585061039212738474002623176375280692259730000801263988036599094837955339927330809524303947043319431955986158841868871476161421145133815528833087993698384799171460079398861242495114629666157768578812691535214879867466571702597763624397574157742994733414969497750855265015116298667560140483723555677272842610636891612640713245290845436724183821251034280305772106440730194999792514857143830067382314509750360359119575345658145086005591719025937048402796376170872828690249355043269059544473985136995373732156703549435503725696796388004424266974036341273206863225517303514869092905756004345148165090517526427631387647988209272618421291428655498664009876971787674390972754039367385472696695168471154366936898347111400012370007460623343654469672708520830973429985801679269125418255380911606543637484011664412183938591933591790546367176769217139590223730069495418892334469734013096043015792132469718236194334049620570063232446303541446653246503346716377734898192069111323512497677877638270433844888223404378239127923156864901861486759991646596195444365240085902724503180306030399189602137533470708439677006891943155392025993427824817850298435459653195623458905635188639080579767687868675345433195936558447609456889335263216490076463746410916701068323187846820844464322308037815399364459603397378966047485665058752334779455998964033254022918965101130078524662061141273945680165693894619524016010449561523161588186297179493601429741488383592802997014630067736503238537873501963925076556250028191531580237832688630587253251841897068991542697653507935639551231373759648315541037370013608336717469401155962775844674392927268607201001489965603056735463596010841329677211396311996850569838401786479058050719218578620211941374771619319005279213809997436339181769512322992687301241615891970840056698974505393602653287555143038411801539695175472433819426185399363579654118165992891312451861836408051698610922910839158376022638724484058732836721280077248668734705377930843599448368303975460278999413681589939821417896571092797691819155597645791357761680238651816463808061795577320907821492425070002383080477533677349133067177151572591695384207239705434518467570435501885302555607274781180835945407137457244638998114609582681493291671445837910419202645702373530001047021905617877681503399508001976292991949113967990592116050759969783418061712709970499725588789189578349237486226403949450366136037443034660647786003548577344801121781715833543808928851081430835006502209075052364618659021841521718010174575810323761026729410108655345440415576377286977739332986013912101052877475864835678514104482427059658140584045892174593193198078130937338530683873247895070866021047345742922960874619964930989112905642339269505836625350138395444376498666679716541315789016692642801809857591436238380475048126597471683427415171711999765583219600018422256899664331165117852363082012695943223185606392839311676570488916073887290670928786430225287197581010315404552151031971860362814147862366194682323349720774883528551215670695217907046252559779150625704528823132370867487631844769989303866718673704856746080571419480029981078965799941779028277873668793924848222834485666745050731328234105962542258482505181411474440131592121328483835792060148645175306881539281448664051210005886107600406689717224460636483674591300476924623443256602340912634603967551196829463071763948590924331159040059832746004244768128352546125101190313944470778769280800596383152592795573360290137881243504081083803729127409150790138626388636511578324599065553745494946608828611531206489428777282721312654397601171890533824348972909352338224154700988241777770473569694870688252713032769471405431913896461362637538015814306708366189909218598164967095419188703333671729931980245907537359938696436885821694539188021890401047405978386480934323604608620137273815117453897609825334543867300565662378965117152273024218987930185353729595988604498963718649244721079551501710439172469211967570790285133222771815335282626821206076019530687751324663015281256568611356576922463395274426619499113254281874147745381280882290677360440468196281707308641335123544220662512326681707957524764278568983932032067013081714738512054123681692787573446890371228255819926600991661465040659265559217840040982155983783146358395864125658997416806074256902280296800606806546085811792017808856370844793775699004991897837340550205031093906167264956392429873820999640224876373596842671081972141047323125713087529168356134672137161795782531517295913705204036765373289039791674408618465645793872292636157992778105504504626553362026282009343842847835965969166659014123199270957200458695958530548096480723312880749491109262320583390411217708537247950737140357753228817841136044756231745020593125053473094992593990771396273003089399568156107008711915028054695398808712728037046992887997240763344926723449502117284381261754701444097319480502946030561232193055635125220542951239580787087495321134874177229054485616611093567132241650634498278139272249972311604182174516870687000722022886618138250018278301120584970447616366950840888986429543770035821746808471816093989007054622711382306620884659152219284428024704896034518778674507488721900847519563286027046836735227472757942457278999731505001694166608840615541606656445242775382555317686647646758145167964221293894381810107682884880338370072146854558019423566602811843807277315537667114284244780108282706164468182363716193139769781592451942180897807138769597409500343151440248618480874272163040245327299452999529820288396651587828353202723434920007674966986519957216298231389370062649487387238010803635261359450354362884590323384562093772963614336818456545935432343879360287611211802510458899543323634920459567758109148484455096099145088220723244085631252678519909325950674884475379783370567551722964350061927315328816155128124488223225840980430653053595616795123439256350291051107370077693674016007009444840476626705894635702002201644280509269918579320885509168398708331839231466336166917496552043039214773070076270198760094186651204293908542338297340074785017345193956703716585801958490342957076211296545614634409183934700715225334997689528717156617220755807048446811892064559416083210187425717865096601820184605337910631924545285771115362350036821944445120366346382417286681067501314771995336468878986425589878643498513591649384196394116268347632526924019033984990240345615824304074490192358733719061059902939736500162280233330762896383454950499740607586742282481954242055723977276396856372590911990695005858957266912434834199866600234873309386639912123099637669914199251901463164522043828583321088846763944800046084185876170310982176966662119068464427700585062297497245819928704719218791287054243242985375644774718760885384970415542804676402416462178150892346591783768691136836329891475000055866241588585872264592115098247427408861246458073076302370598525459720763610121934647524834532702675156366190274959966027131502992376608226275716883017186320771231566821744782249741110086035822409167807120682015834468693821299326133309603591466066787892255406577240467481635776967717357598781855687258512470036956052750856317547706070025708364930196476213299189541898258959591981719996056227776697037134743716824603094423733143506406033760947319140407441320022093179248100815015637677336555770904849529951183298516035523996588195722830358790902775235988115458289116045645850152267814526988721398468546103991314889105196349397201163615527863824024964187879824695939658527605889350274004220541688248521337577753902262309362478211391248842252167903773639258624271545188141433812439064893789084582498564020816156732160003618062447255962798091192030414620780802103919383613446811127726418790747228403671150910004986151322876087675682370595992663131206581906490333922521137385561652271110906523278150467430130274253445784928324385120238309851331266440329562240294451781657263463982537359265537380890391978908835843705069004777253756289141657568014889979312586553407032905110736557253392703572275263226752276082614666269358518287195297487390264781466247958267492167088293006345620305155024323154279736113282937462250008041747074864236258846093047938378406846063704965308718268962637651773836580074532127115401552856081198132567695776343904969941163466683711116985862172575277318178693428352358123907410587487406435487320577879173648432842647817999141178543753546070999648572945861601410214273950936818148632838290245257282800096002619056040827353764501703309455876397223900027300261962141425429695220101470143182325572012754160212659278211539610715680639042788913030095756023254322092463095282378014222085582225909648641302616777305688251438020881355739666478946169151938403032368805412576767625721558263889948167003032996939223744585874524495997109017316828600471960207293903419492939628345447021284726165532872535047357314007138969358249967599136516085782085903083533619945696995112997762748987598808288880046654860818467385939983742087740611284838267036760488965985489968289176985275619300454948727859008291589859530250652964840014051942975529084198263220860607865694768478959291531047010642211166224264733117552834017547650089268506288327185924056735594644398591683938304254804835049461331487878630921350164166704081391433719310344645142489681764387632023718757463998739323078053243857716952172912840126593747336984746495232155936320741615818657352346457005865673906464207152712700590056735218124628348104685448808827009993703289869931302677257297967100941527008692300185846129627599222298409011742483257006063389507153840504689560283457644573815239814190181745497927520120540744891582222059058883195791776376664623787971571626790759591911171205865046036998445772773725685432339755122268773532695046362192210567178806953848102239538018068817291934749807813765686127344164664350616461039296162565822670227824955858617836944545135260761815813051591965506919213140136342151800059056514207487496073321779730725297537585802972776495614309445395910803489668980042748571105825909256999139402570875292411460794321952665898246589643891580436026369886411485779944825819397604837254515119511178291024189874975614765778447686348612924257306654103714822582260638686387148257760152847573471770125394304725293991933426679624998555497903814856342269166900048444025238722025356099823158949795133190352229141342069851351765112779208311724680246775898299324934982692797605247600036991751647238379106532872385964928222364232727524843441882210696209483126555692345238924646972329924475169367015832496873164700897450228133917833693459947661914219429583201811159707738571175395693075946799003517405799025573150799751556687045244335792271323314298861919796483936284929008890371131433385527335454869629775128650196372492227438922033243365990367691383424603137023489511537148239217300565034026367403126938960825510699849262433453991112128464826277894033033228312376772851159154349284451741413640002231502322652946007094915912935799556580301693836277639963074371613878676184071222801052955500030879824006052750636481513637298510866277900117359772189103199326484528867962823297382093976298217029121609193803621212924105211205819291441066760546237771664753390920676275488682515674209138268089191602326013462742906392601060393175545120452539526092975958966568932400981658006246811252473627738776552698335645268447786558010038541887983069158569545935795212015437467207354830436349761064579934289737983760674118000469603226733803687319429926915857349247220383121616322065200389454645606697131502941185897103074116731443362291889394397596652170820572451730741688547145974544523617727608611817051239603829468450755355083915375395179063587895803406470115084868499151768343269021540218011495735102940379508604717100636079024058685439734290394111847585007865909683478929179717186400337934967350744244518299415537900290567971805179568637881080107023536241289132880469170754491871634325400808377742202494014843344700203667642164050652674255543050252199081286416196993721158643240751460677801098491645955898259687606444487153021969039937796671146609602389829965291625594762734080495080216749612918785444982254451920751143406209180893616179992059586316212968158387510602535933483046069525250406546010826861658189744380178103935912829167246386087234065477644197663956792700204602893897929727622265252691133032503859134844523491171433189786522219530390560713013829496691994155774864985370408657390778729483115315065642223552252823543534129769522977244926645192020411592282508559215896096385783328075544756757691070604632733249422117847439120617297304713376333809089468895950790609880950896133470311297394083948149127215062975867544457586835377123246201079443518206428640786506524057448653637977590105286259876119476957579334984661035219879001229386774102167996701371596638406565416872885552957129573933093424598361124941255328477670970720858572540916367079789190561436064910978040477907387365603877896415834268295324099190718601008451521940712746292607771391523728589548995197738356539096982157286869227624584132638561141810899380531130822842987411302223231146893376681275879001830197503554660172403968515671840711360853872356245889166331113778298529441552567672679523426736825119225718273353660148723387157534672224142810587119526103116487776405928129697605401149540151101656421689726632215017001993628917906594158355564495286791823303634940267718753420445719325349608209977153737781772069624314489082503337747547424552880969159307137146656599382530387696600627565296284608132729616265561183465151182173601749697703154432173787260592161614308496311251399286504708536979364040473441185664400660929305066133023619017702015978594594529429496915036627078192805602994330800623725612748166845047184449738319784438042299167593755548677513458346149787736902144737310862207433148006912951479460607091745501600459103900530394858698533336371879720660080240558210849225272150172648722083773013096715593466266887477100061761744055461211975353163069578361605165708620961715885539293379319803736815631259060123176192016358740152860384966281530475636643273791236179906450649921029171347516907848836421530957839181874895917123241973034610910254855198373018144060821503650792353080546009481686372581627258745042378262364861845427189153485512027998787499938941830396702746645410802206587452156124605240971393068333683503054415616243210071046706178469123081070772238611286168157548575051621354561742747925391540606423130820733586474288337023691475888881840101544300021294764941512028247961151155969782003807357764799282178484295982482300046806607536814341236204110072253740095343339168521557241429486298606949041923965852981681114952600826297280045336580136223451961885468293831022561163184461906039871338515290172535862033580942976621673291873665548141065925694497302252396708524924067297272433465867923040660997273560674881300395517631130272818020705715399480663843390921796989181762286415184663685687509542894713371206866602526045186923238702150990319397258682933612659204177680972976841998965124178660333742879859555380255168936246439206328306888873133066922632503560955099096496914711712296371304031728661409719758698516721188481460222776860143406386681586108827979819403485432353896907506991087473481131894362013370470352794464420940406443281064071447222258519129972896185941416307835425260697969147703145364261529601296887983284207943536653308025142926576747633491271390106589651940962923986115433964662800285250241534923507049088138357610879596943609480312668686093780983059638250841592664772918659378178585097796260314896204672743605435702871168048686020250929565125364590883359872767452589138582039975333855712470882445640557893639366479756646920927812688588223480479282806240993594576348793735006542733613124171335146101512833123249171045980453748626060951026551997740619530862777631323774359480224461263065739370215757194551550473148999881857353869878862383996522359454818554850657885955607816749714426893538803937511550863744984026639892227147629978600674810311474337349754444321079298717349843100394087612822346348079087176588850906325324627350259255405427629442781373740835227782008734333372090703474227093020646329969029152843472593641372892581323486926029785234883259261005261513742752678095491394049945687674697317775572444763812814303504297444031354950797384885786515572202315209535860664376698256338220602452663185166042207631983653208963563224603639599913643654246515732486928727644469314617868134558771525157628877198169428793039548159081896907910420276735917490322348649709826158411996410338278472244550310513581358775109757465504492559238888005836676483941854732647279164815050047661885808920974127788593035533891104400137790574960598061979809937224216864318938325989380283826360119955984448904166132555532232054864151231887104902091619770550673883120003165624944359890304847232082738799302667089580212826280788924463799728396369035854289539666522873539670940459804859450593753676470127653032506158845902795294654489849565608519095827956696239923751054656495949271701680499413565966266699723086425928832304168836206128416812241301367330759204521712160363814741483058922931048025629504109042680802036760738678748535102153717822812788796573509832150942048932485478552966543327996811605075255099335541167136998871692106092518242033971222841979693376621352787027475207779985267097901220997624092077557149613000892483904400405157496711964066376674905907415550151076230165193963707084160561736966685265284517423639486564721731052913449170876242308906065717296927823214794012988499065866074834546809716686182422167613549888629748835883606969357230900036702912955191047407727258192532893040355090063384462766027514236498737315596547599311850582576091943033047290002833375355081525963427554502505907873223278250989659058269659997183258253862060806644071793563718215358682799458457097459279674657264826392149793100902407153186907885125987104812429130636799937165181580910230382632047062732069594912717523326341983860387062918306612376177181950156490357764405384402408095310671121890576959246481141441863231842883262851153022463400118720653139758835877679584099846719420850118192978520637187132370571570708719262305485541625103305992895308776553550913278095453337352987771919190808045499954088584363312172496301771001109134381605883124964117169225881219188606325825859016106680448957467543772152914333133683378533310589318202265489462753817616153803782118359705547157521111351340144223319529163134062250333680803652842721958834029336231133594718552944358263333934422083267897677751867100007990965144803068240696263068231781215088730896122193305026271705347189765456853984618079734752229669398603235331578792715617847896930151230085800022216420725167977941800426658765620298888531312706771290602679762891166376756269239390098426805394161047031293312038788826926876612539769558429824276174275562759356794307689722769945109373171561935358113493212169679217574677968974129452176785664259616755458742441761039085918073178855950581852524559235001997786826992410888981951748643191476833770476381975231872704022811293134865438064012019071064263723423600665922404078966228234136608982301301406898329069142518536054638777425155105664012966776764530772807024547143399229234379000403131044162731262589324581116445665328183426736410291808400548273431303443634839841633502278372025998827924568588971422604070703058697785367142247501585761177314396216982708193942793997741326255400397721156195829674769111791749225785408666858438021525470402852714941493847513627640578525478194481900493807034803383736947325868067912807369139632087175150099318375671520940233205617209410975095222934749426823917318079818859779877126967641407371699565083597696777879275235878485219203695038968127586502023412346363845376477176349711823317604276964219909121514436554167731559690463168777279740964474927273842573436886212698008093572975674182171882531738360828257864645175014647013690053327764425233291883412246454656524513713018571791566470680201572440538855906793945778935877601836220422048115523906230182587401299283384581632293086129264978649041712751612204964739019092791265725280023530563073300437914190858860800385687236788604916149046902902012941069710831319779784897550306059455847318593070315253486886926844956976933681854863992700359383367850686635783482564944703718072396489884668185204872983943545565587851348861500027034535607322080304378353334915163188576748910819546569543208822220059143504179422974804425317588039462379581134087969858017987581515755129344793196851823796594490944309465854808438916423444466716537375673846796602809364483277939308470976499815270162610192370495080727551183940949949955222610442226619410409241186129687803591123641377470857551532633973233781274419586716948126967988742505533618333723480285022437726988450286342810504528379248239544312962747631645862326278791501213420484214479261394624219163636074262566658767377187038356614132294203323250051203574351223806545234780917525429691508782569180147826083955147011321863067904373109890204406309721919204779461895759077742833973435961821867975456994348044775224580631449414794021253456832407651753228131601269081664106651091860610395800088322232750257314318851108008101999069633764061382354978509635145457540706207757726748396261561347782967438255355596528311059706725272027796136416251764219873533411063266657986179248483460546938647030787184814124576305184118154725198373589157148377124893922261608666141983311952948274082431989427900019269562820555821464376611809281660119682590452936236176452208052131861414463007111101259566231029392771118606521016795897680261550965952312066132156872261815925092690002569565182848187401709742838854133361193400164786428448055720885912715091711809623389269905081701463340047156800452873421713284633080707993994145673966767484336766755314438471521479602410329709915684128381985052466051590278618601740768898378325639561289559134810573269373481447143726743098004087917854490009617610145757642960423668911597694787871639533699432276691289041397844711384617346091064780144788420665948836470176059156169916332580038985996182725863346253184455911328095745230136125032612770480651855608218244777764114088584350671085837085310601203442824395739655177918479405546944311713820148394884402651305115219165555014506026702243806796117484401935002269429940603209786639031137149055208421153436487811834669690008812284844130454823308696783735252277295959566164839278449504433637312931837223017577277224680924115079319424387519883423106142854208097036193140502109526656154553024988584344793465478243704437947706963284962560464317228831370468076313661449551874022412918487701204219534403885514551850796929635832967047521431308089719968207799750797124566794480345723966529194186872230767509819562698302333338648655319436781102992356289239678708419625059306037409695567256741756070754166941567258126272354528448922510242017180497233867435061546993983069716770804420559304393287424778754589122896025937521331489173456910661776623387844108531865673667905119206165889871741799392814371951844429430390422230423447708592621183349965881485615778455781163229410989329552337361122030418975175400560869128449375622558031887307716373895165489116756130882634696877758382388350891209858276302351059053726550056451450400756590342501574180057164209169052585702253568447229405294326180557315275075505317103498728729678263036256413490464000980408039273798596286143546670097534905884735151941584227387453952714453021964946945555247765479139210555599510939784618021985924470604067319236173378067257174396385865446101747438733494565967822492965643102676313768819036764572803069542804593901065656108312189622070809668101402436116086794044513008561152780915471769393049330297936189999024651663026307322121055935103411985806960582378198125585942247236272870327084353445309374712304468598812572719951671405903780675337233132246553369866096462356135352377750109068995339682532426992374996488729461556681053286005695466563844309645500212938260728016529065849844228872317976278874930971928217691982535876543456390670699055686106689675464499902600460797723381178989515417139622461742533530614375491115985374294524537131220274929982747940062076480750166303903461549028992985478704257205439501571288341639167666174970773777849203766867339359541766063514124040260575243062516655575132948567105743058024973625130860080681740773207321810300995481171655004237534458902429581254272890086333395072234303843722068045750839311635889232314685772987952218940178191266600534682094811805958164592818844586780014365229732314786681305963032799849788447208640078472305827736661814738313953843754325441354466034976489149524842651269985113962964114430094338920774469102236072993130002183463322596993083429987112439956342687493796716721953587087327151829129082287490865293694754770404975541587043889274181038713617820960697868667054853117111818342292761059675489894619581910268161969284406588202311600871744931333030522601576564780882065885523278014379896364346004222016693957281104656229085409780393891241538188893660574434829333796710155194769148624597054489567579161909674172651382409366866388380190667776806442397946495304184756066149587634131290115407465807829570431185362795425096074445536184620233590646980837189691118941619995439167544047458674172441535087453527068387245114004713161475803466402460418908655857514786240411304813508730943950004152781889604320063546541939820874038614134558069590877979442046845127748924866875629355895926979388858821140287910847029524003363584281486992075366759089337056041090462673976837634626996549213406304324955501428038666320365383309660099603872153217886964509177990413948562669822520485270794673991430109061983557109869799390779048346586014381878248053367981061418053420147329324113068092087121688786704902788268147639605742353136684036201272044631992989728426305415452712180243370188070739417682413418635482219756966758290892262254316382116754439090153598933752560572821044293150495846622468443375812259759371098108947502761058500783745163887672187796026213102408516494651917548982529911241128816058884374507305449396203677710670375622559882438907401157280328805396862332032003720223594993116375231831877425822194904212877985546368731931430809014759222705023262454108360627778905471727495055950649450239691018152642873358214741799893375849403009074061771033467396543335429711863481411585145356865708808823001074786661561434611088206676706917833976596335935605129152163168085417002210801305037196184815213026135029561435822535714640552391317620665558277694662607541437701776830499891011939023099395077425122963274984792705595830114102740790965758017708675905987594951405880972437316675142456675111240500124711373882591982526405686632498383220219744365991170548254392602895572864329648668591310035953592826507203112642532438065806649974359364674337797412690947748476693423724639623577611943808833794814258838257707612802667256181679179323182057489536470388740410639157868713175145911856238363136635957437198692682135510511281215624451042221644813121627951129077505492803732787684708748570287041233667295878865587862923300927969657871371497599819376849005088723237598409275616662771087264565730536783867506515413785149088276514933830784043058300902105202934407386938476715157388795469637744358344623283006193140111524125051216053301049737947673547950838280185875171107866393394188220113632133147602683135155198710839873752447499080557798427835754956515257586304487489817300626751218207047471883760189763912727753334297055257765559326910585864376963410585900910349727322501592217790146559081559679727895892691825393480755570282229253999456037316121394957466774538307721106063660533971141990954634147453336728613395440503464237839106224172909186045726403562736167225044306231748222809197648094450397221072425421836840401895206862878284137556151441270836142967097810439700116200328369857009269362260384455471987400211809235804228239744951872715986569066803423321572217633741144649450125573875207080934149281753737249996506731614550873933964209527853848033566898306987366631575373848787384689244462431841779753483038138880979201511267427367057520455159622304648584717843080746302737746763429684179388962162171406364099234711157464937608378951935726649003136226318583171244688031975237032783751359251230299896964167196134559683411393874471525073172984146968799062465581782416158133212323657350841285012808710113272704182533746856249974317014387106092817843149705256379586600940017573338188503926107181064937705408478437252989367087426930400709319664929000885364778086637754393957297838415903502727063936121094432687718699033404348610609083358618303806393368436277487116731106519415892899361813335746777810659962394306649736537517182770185402896620870807431148563432502833557823800714866561408631161034419926576554610388199048868636898338406418679334248905962972957661286002196318018226520179140273610974297178844010194029279695538403315538548804134093482696620727572445435493467218349244227416407528085788346744534722484825689781489691997911759521367893681775126750935451834235111637328709497560268476267091234405904450048474348786135710892505705242214578280311178007714212496157270652295882006159046278420834125920238143841027809199465273749729135635387688195900147970122732773883738710670820615437545305560051528089453769814449129701009034647845413722932497783510469824594052582427893605055976305485242669187487366482063978834806176775625496671190704512625997947199488687969358045277896427322641548794524857138018704270610194236568373733425578180556429301471848799207696720946848281087872597759511062431835829258189623154698661689906112801492564577830414567911963297774540198095154069758462469345532395022726731143974254415467583275978304192407097050645144977512169605736022125926258178968651348626942119004659264032864254006116843198363947847062258992895103354130288800494219077904204679965716535881206289573514642458454181047370414604380763418631220826813945086515186132071192803267245348752896978844401683020405650715028327587826616538580240974507061633041331518566835650624923995226639552514897078129763699050276344207007107658054541379066527040360020409271853053719106255775556620131794378291806831306569268861960675570362155747059152133075125029014886716757084628067592836501738301617787495952295648599564713649321667590727122469780576169469130653935814697007819729907704835291222043254690867973014801561496881607338270666251565191274376381644974560762220476074076969338698729171806358101939035061448891823093354129633277114480580308458502592900909578952143953936827716305350743704416034176882826264084984828136902848850650793195699330341702144999509383197489843293994480942336302147817724470215411263845429649855062410255723962796137964558682619685065371047936628357212921277998432063066176221632545719730382201413061878065114652101569775566197660361294599841819675816572666481201883744177272291147575038652428720318509006500504466187891728782149127669464752467635335309552967088682697593502567758492257762167887492153534674808172548892628248670796866919088085934709128805168589868818895838185338151277070157708756785246869079923472424597195278399931837391495566469713961863584681859862725776098347515333171038598067361950642166832779527040497923122374466674878932849266966512133324278517171589192576139661911309241932127107272002972095906261383308240362016898062108678896941017111268880273849028882762516991754100478569830099419840493198746152167048075506145221484761845838594847946037083048669970408783611723725145089658723298592726243702941943933540238480136865348469334068175820835420044617244055912235688703663283613352563969019543945714796871087879462267706513403648325025118216981720235538434655325798300750891361143314352786137368969357990919654947372330229352482078420666693511443619211980718413640492312611486353394201593142030636918473395910006229225503487031190323800924812253884943790144494111569563081568341930137287042657028723759141196655495672799217924490244277900459524624262372535635913498554757443732970712219023688898743897625741658457773277934928708867659910043934327896046952215405279426400996608839331322565476038165647165830331556064527667957601466183335356424521160131773726431841078392877118165977473190536749126805726696878843934413130061406284213479643227813144329140616468877100076642501520548261348731441341994727492331266864423844877257276141054663908783738347844506692956690247190539727415431287637629888443266898824260433398262099527595850665364536650432666283513102260534364006262161723930393176390581981637283069067392219324827169001904587082562852480926539075519183683669538645740613319582969607997915235178794357820837925314648670638039629548217873552485355029002979913345747551642962427960419690850624481273693517237075037551717794722097116341980441658484389201536442197067049583570455027002729914394647087243049316116322072413318042928296164340713969916881021768873101208145648814161109309512195605582920874624459848064118078760046160508494396673444259329109109327458331970866794349532602994192141355547132287477122338297083397219330901504410087101075454107597066014548720128286179888182681947530831198291274269335361636513498142837594921206424605478404127012472788086482766466952049980664946247268297487513337151249092539022957279286542445684186150177824834271212582931530388284667012705454054557994370201777288793491880970030965701706211937489378015603060498639444361207930548348649139012500917653934120912140904922634198011264758024586305990266668500900011462848078432091159803799139499509967004202090012336294878897779458519688838280766989562082981068200514970027632783110170104801331370299545729741712766772637389203540278539506587871843634488343953869004794646097029890256761237762820864827959135800544185793332316898010884478510285298115907460947195170854717433364796613624980433041453449785375357396589606489275279991683076990986508907221608336369467178007932297907246535953506080906412783022724763826476720355968934702296729122299535964201928299951411384218850725659070331620357307753683740909194800203698213779618310812460513334486494808309170946234163530493343282683762700315271509822895597753596883273375304193776210114561348139465816493182153346590136813555476487945901260573875582330351162540620524245489061327859916169248366574777037582637733171142284908879763708178601497840375657544873851082277479990184666235501306200202026053246336362870389165254746924563835900600705405098844479713937381463207569753648641460165929403512166969038858842042402078813597323098245276950718879369230968746489305824634439826695900973311537945785994577335035297664062094080680902648774522644082284926652591019421049360918937974022349458436919645657516903928185641094945025176408572891856865851285964971254863411608599928510534127855069863841726699393791221141531389744382191132945954678693350164730111334158200911495993652543147098310036407759374462759703608695719795357092146399793255220702909700144950581094789210900212751502378453752989364391835527101233138366912243649828739803183680377934407520620677553428474098370371244633108382136371779395187991887790236881585151660017356343212466874657567551596141622348322558244482480236324346859039439373477844908542984988615861618825820624637947616531986849941031446299448940017468155279026384329894952375779388800368870081376123122516856510933999987586365943067048834449706219031935521476564217341434120842985268041664806659877277442491488971087655931443851752419468723381520067983284756444724242355091803188699191244312662024726025608398873101383405170229001153946831156638763839310784061476708354688064973739078658182169811188111639719812394084491476888293009271228955751210320109303223462537715449308699258609766582160778525811623529151559935553896292807670573715396540929401320537848467422503351728695128180316849373624480570321279489867415093929983935316704151951510956576481110902298344698670507498650019718987040310277486899802840252664487626954727317817462541917405999992995563036268482168556625434590727312693665440797359823868100898687953462404650789091698506862979255337949137584799634807560872518664683002606335382871663026904391550016503024185236191203716340808891431839846194638352667744034544767185735133756176694478354057214693851006385692121038111274989926243429945256169781721474841109465862450129196714703418727454450572750481119510969403041383956429943605871928467581466745734229019747097209717509319403710824180387440951814770488006959878639169469384630784733192714383494370720697854584550506899854743105458948714482252938378580187792885530813954182767194049559557092884762928819802898495048090723316143430766710192674614597299922133799614175030637443716733019074760127371967803175938480741124151088568194571439991292591851772086761819898908780065259328183819742551411133439680097797482395146490937799972495277951535839604324373972409422854462527746560613292953297603696770595805444577037454014770175177340478383942734257671643629808879976114785726480965350246567383903087254590934172760757715545211323481718830473888084224314239671312856754426543525932785681328960032046972579284082925192857142871093921301856708732596833678230319233735251569185102494702596474919597010406141062343661653029452446088315523824265906116289965960308660560010406173687354294558249198576333605216297290136667528720791220253408045557934036333722511694147907661508430837937691466829038356266988279398010281485321801430455928359645403457896428901374844190642037247584368292541322228182030848128130969515808380362451579408955335006210890499641756089676774812745111429994335504015558970932990654990483267271574965451609940300238608769478058946229542086175893281083469629374887722516650536475235951601301953432942158967166309756865537223287225568235630701437574257719445323930453227340558751613775001075641660718030649734539571364256210308507019124608255819011856376737978132022013689986914310986166986753914626066221440903549893811503362751926585352650582347532177286138608256529996581992552653836835563039704939291941305245554278611308692306045659821067105861095088494963909021558576586615552683157280079791179408968211298422561448786323485328496395332017456451019497036784072658668924899600618236691046389257710763255233280694784844866002299141018240646130620912910968333939255252623471329956475155443360110673711090183277200342660323173900034676863220925953491830066348570476036528526682704930998753377111464014201400035751678286568234986778206307107201079226806228883510818412561346780813222717497365027658262840222665269290709047685774280238033792208672057903521015239213517058476442905146812592363758860276516302727192169136931239846279194351220763162992827695155042091972203566639661089030744337435343472433937208641223748244856646952639600007046918831370897880887806509954334230675521313456337705822506872220389187606709144558876612084192258372853649434471126454192160322700578432085939597161373388737252447885849726495261270396464803358332082306968893207983265568930020724547798110857425114340198522366333090689277202271921733667271330185109690265975617757172548744835638311262138705525881242741007010335049408719423114380374142150594648035790530308656086784994706681172849651008202589835505559344188205252770359969116376506140387364340844482338054351266620693779087978783212380524644748626799735819338096175927780757242683916134758281605193307717168293238950764719266706663449517454208681211662262295881632911180485822928606861650960252445528463922438691546245702061984487891488515759256643540814536098869029914579634251407197327360713307118055172259710495802120664236894912389653999457467567361167681509815695887936458944599448261227030800481446196815193680911002348608165007343566292184105542149521207371355203934279089421796563263355668576337879079241392573587605782074836833444017594385365942410926018761252297300867936693425728928835593450023690829937819825525480673953919140956512961533957017090760223374851868920467992833014682034529738415898048119284084245391821115980365838664964996491761196559402924835610462188342938289261010194876178229211799276498098656600297195689123427633661644129713943503106065772592231846595099912904699768690875653835447422789095987186418353009686982191452548583021125184377491674249315549155008652883380760139150023416011294278923662096722220998256752585339919642680956235220173765135721586491808828219003661753672626630262273734755078764054284268172426184932112533462917356698675594878383267994959923949633689276959458181485916279739425277067238625431963587849475574679878981455415998787854384373861528469170842832689898752205390727275216933883641972936377172669374260702974012787095365298589875575045921400976643195497508278082008153375209150980440367034436994321243224684989548437585838729777692305347048959867678246838038049582256245700012395095036245332188050795567771446065993253707353020490815895035052518349960941321456513092486236065537372530580501305884737315961790736428049039402224254655590408627029310555685636524824004353645378024791846349722551155051935554719656889542964885370805848270904202567374203852458222917802012306269791515051861376059008463842583146809149018593591959095074944218300759932284189518802311982112551239543582593990191104002367354184513692406088209471794824975723209874591678964056896698003928680228916098281167462525648077595012734966551429356629525918824894161129916698885007643396085928717938942677587547744648769817396632334604553406504912545312464130445927082098028409784286151987885932665093520682883923217505356138701754479420310845954529717586324363151678286642652177162626411737477534009884031855780814682415230117374541655450988282878715423534272411547804099793674890449013053557386488828326719026822840449480551224654845135565744337198557965416315246672253908709767845377967957343402934568532935523225499796999467123030907197775288059056474174360636109156213498579346874269673420059460871191752390814878667306417145075163694563436338893358488272702408980764775931343834867366216605726504339062654133382072833773091842586734364705259362537854314933458428705877933290617454842174088867897337004048482026861629678013626871325987420404581547335648877373587465118820966202532707897229878829106938311948289031278432788637489180409771088374089213324345120700112766041697012969905323613112180013192355917082232632804877142082484653223925256319231582207347807658344200854979147919558809745116823079433638245156913449270759270352459457096713002779338236348534322773127157452063521703449432969106047341793772697888929448081023767311821519513229191539554192921170529597773372922244217797173818908442757489407765613639372028585127941931364993874310255633430607071169095592624700510940799712404249930859318471814930761035811319258170271157469205070686994248218475073790240881043153352718783206852231239163074643057067176845746221649951637764539766673091773851807416348564311403704108563084819056432433403276566103695923853747480910688255567403362705177689823338298419922859221746353752655805220567440265371442914957276094142572835657719811309821795432873694385012398688870327353261452437503753600479537899091614144814607044361804991026154195594021311360253549431985991513218179236583711377210270613407730616175587486734363259440303284910144046897784397065950352218874095958107027548268646800005147133494746953667814856863846688359530661264748738523278794624338516862062632602937231012271700567829733787173030817195644164876423505459831080847228813438625555237808177781063956271151817223896867086752935568031856267383352078708130176788115979194317521557972568508665529710207041639290767524421431390116538192873508940370950334673138675813606135781930945728630809889670968420924327858235763652913278540724996106314069315930801122202331179907628016860203679239192423020307563925036133426886366043384520837880557608060829430283415278843235879112652305466793570725886792303401251285089110597512268284401200880379012909339942417757771473573618513058534665805429694995579499577481428627548199974256379516349307561198943683014109425639279088149060612991560153505430622766695370740562323017182035701657664640558145735771919887160476954582844846283989283010080611867271959314362121835520490432518716881725775127897604071061318587670095007424172536850167347335662397713831537805508273029146292739118126174998609871629028956968324902984476891018364587297010029797828372482127330707459187833776583935193881411448699357713522842152203697579298184750213265704843276604546024327439942653688710492871950768211616099007648703006944760175690324258183620431920019084842618152175270674461172826141415590764803811543992731976792353390791780633759931778657091546411837886598599760520915606274761671233744798044590036117819409968664959991013873853472590287032580173817192556864005991450923359826032618681726516613435267718262704775363459034072753363539505103880748095474392684736527903188565810500537701466473456453098963100178209993563257484052836857308085650043595933337438622097242903265491986465445746080577291595400535348760426536958778129543245748865371989754654968483632389852924221557330328965328448652708143006870936594243819992572508313956328766096715624930864089991122916775436101931453250795480104905641750731594391758171652067485219028335855410031005367841013908787255881562181425671152209106934394702903077708150077020859806291108781637357897986370881775523648981156932535310895785861465333451886372653950886619027518666895001142391896456663857957481873121907944639061117894712497298685559330110381065899669194026864147204941203411864023738460238405436705532250967084092568108447316749836228770020952988343368530003618090664517610347523945560266530489220140947972815008071094885947412278284657742390464112228635795441580311655284630195816831763223702727463975025217551430235632918274321808539342288326093370424211972520727862214351007405595473782788286493612491487983650549408787713985590876355440854776568372740947376975374917751311313771524761582445386244570460498836064749059576390349417354518809389585363171605663361201161569427912273742757909957926156974976192422136608750302882167710385512334063583224295740203175813707411632602200059691947586678895346885205632021605943628218652800382833307947093510358496876164204021266920333200320647520268402983420889834150437828141532712202068503688156439133051762129651731108285105712523083532127466929809319313878291606640056139260642625764234691938159253473660120285713429259793727609333508429760428656034710252556671850881740497497122451817733707601162310604119525903609415733121161679002006800455461304746276650204380040254156424021553054891459162019326559809766270214341338737591234779208252707007199731410543972295166531603774336514212234595623299311682885040594412395215625957252211384723872602909550266952783234114948439755978110017143047363250153050873204861494314015551626735379133714491831827420642566566955634450821106461573445343376644250488105069497673234358721391233511907669981249908011408203911988675439178481866756699617840219749859023915627022631468414119443550780569291073846052445567252887517282338893941557610946563697379639317351096339177786582721952579423524077594927551435554367313386759543557211667944545649024722557433192726816210701330689432373065378140463036510150715118890490474552492733742377762849193061243280673893040740722027603796317414083675191978151994288460854785262028895645279051995848047395573347304110378219237448728147997170288925142615813132351570922374804504277416515893083693589213716995976282239694140832462976920420823863257726053644666175983553671245570258432653078307349605404184002387721388218634241529114324538400142771973496802468930561853635108208499266327525693967933453338455794959320323173560655962673922615604361278094051918495772767309770533282002880437225758576642834973503629610936760355303991769002137949138454903338151228092577020291506672578661393679201927279377243556924437319587146672825408776336440344923521832560005899714248270975846158914931954189320865008568102399245290642996183279675132257283188430500114658746931958108965899081126655088326062807858591744476762408082354097786666547144174335333732321973669801300045129560068063481472815888809805441875582252878282635845779864677974064568346037398729196755713886895773074053749579769565699796011132452447944723097251783940872307423351325822456389659623480246943602764528832607411607572124069622049682342904046875351802477187466260949005710715594828413075918704283245707782920255866953954577373648508399272407972578866591723347740341989333868789144010202290192859287842454600596885276772548793651740526078173121343464014177598732328479439055804000957733708725890835048582761814418002061562636302308681003966570344972129728423090152005001826796025448353044180986794493591641310369644456513989193790720325441665082481979914895876176719524315200978035130247297744814229478611516549767168898006319974693058811129603492026234418824236701645155956652481568051680638821173084471745659454942615675845231634144974672008787088218491557069897936015427217987001805966287014723674038685604895132578599004855975299222140935480962170984570307215922495612220373194676676306721317609714785332251817294727699231690178909799824741688714136648501839786488062576172121306892145967536028281651613933840506985589769870106453531673152185224586353396772368848153766732695298372180897451587178234909316110388874900399929404998987735289170398807432272851982347068368076913900350097371287409397982399702079360592650724126531587182085158794816023056961388490180693451452575457581911953910150144526103580079784127131377320458412528895470284684415613492168623949738242513220048366029186524235593004149060392828510814133767647697006914078412027982030706729327001695495060174228060900257107555291613430088387803865921341833294284400804594709919572918363471041708545879448816396815984847901110485508861749923627196311377099671365008924624954336746423009156689168046498563585805528159631980273769536637259596721032929281687691737619971852567883723962649988036334699011258388495686642474913282987372262663883778704324314135076240685625234306614208259850402769453980227071094183534984473865725103552431165089369314614295539272407835575774291253697091971589287231850332332480738990483127810599165720943900915488110950307139003579992889161561745066491602234587990011648725873256878080203630546040521601816102182756011170679922313138251408584557509339505548006352987054284952118133626040763980412124108401585443870095971044982723736806313086656216027286711028687515705638732129362380356528842974940551119474734694320005384344921331334517746806436878090452395343307968071632072821967121898571565724340171663287464618136813487651073718704023720466513650378312665367963211098655804279899435021627704067061809877784376118676044555337761922054145785123096983765071498518722723487733105036295504104249499239656371362304340679518694314415160137963661777351457757404278814520849476550456970229857579567917302348276407005139274720319113578930289871377356221916229262572227205287056462684416648934818961429442642513020605285460596144164089857583235143336689950313732738993152716635360999569505725342414671888805934348681396608042954610531784464652940405446436985098281729813868407780339123162037117174605396103125702949826015099223349883043024683606747196568356355657151205427764472678652672629368393823989997796923703606786611301108486490068187568669652871769151306660350331175169782723449925331371292560966468631013581764004104161180507005630324177999143424847476418193879769086737027900782163358612918813488901721829061696196461218435363229968429934910655165590221364537413514667225710677136815848561725346538104608057940188683499850153120818914890790706032154469725839515379133368375888195486297919479171194413157821744620078102279826099973961184825775453323388149329594169563348065242640869225312907734458726168017611562934446249288178882124964131639521293245141975160262977725845401987709991928188352042039158485472653627457165062929567028153405166464580730406666055743985036891315954939130219984897105268170393823102141913292081775218215809676019365678168871353145924977329681672087088047168967694064588940912132313966447474172217881400948709872512399856300960440223821737215975264197082272604192591056247193364807616793993695131581509458284073545072249794407021139133897589823406881958485240017731026061740938553060245571691314145911504919575570956877372852755474862935623744096904758083500555415564374910760684090399482668622570620070353393767965765514089719316593801637233145118824648969124813183587523267380627253131336258498422989817067947779177148179851604773272927027585718900017282612774779817928837981243946458111928079504970111991346702846339102575245242385662637269572788726555455506600324458726067683177860427513949422726746535339461406257024087662572475831376577897814840397248255991272335831572331984564265846996167903205452718494167760396905909128856871202386082402179416994024849146437082882233863284401513421176212343604353801727912733441233135343268495048324801804513526374473485275241824012876320925104733768591058137097497043736695190782361496180225940413490466774515600029507463325279996501197753857186576620013330436536092059194811372608904538777520363733406283207363858770175070937873066713848952143993847774334409204995687790380375825820695677611308275375890222743490450787614153202603869377741336659977259880212179829082603634220126045470612231279190777281859925693042246575282441282041964905945757272676013108631320900667587962281944758499649328736720626020119419730026938969295066964691687924910368824238659941602965941097827566469021287124395287251936200407549674188865503433764186544307073608829825082260101158421543793864788921603438371560127894800259293104154142307588726885369844588587987903513377617315252313436128791892373864456021465462183204040303110278665500627642518864646854852160796468695211062922785777369212542531156976876433053869835342558103215884116084090044951682919608685467479925686303000938054017334492353140944268346113486836049429013642462227334804129106194436916740863547730120254134774327247219526275210602945398113794987226904465637479368741462445443015755056785240375522419090424642081153800989245906530155032142952326327661418027135806635409362346237294491276002743182016642072020255577692213954204076352448967974719629740286688242287099000840331495848113455670591809982589795385610949251667445794944285428655400650062281794866675851209053596237080470836486387014279709815893635902856063021762462710742503141614482292181356649865461469570821137368986687333381902060263749578194166709622976713442259237765826115622367693130197135592851900749334941704876466122186360616282696837572583534474416778455954558058721838130129599740852917947578942302960322160233803343895524854517519573703796454773661763333162390882361718469684740483944596315085400016356451760700799255397409310387446305124541547021550861822989018990351644668147510093649953336327223016911526058186484893612946861477450111696356209522471456716711089033534240648601681588335294885379558411479404033969237350786303150610473108730401276896095346780603130612286175165355373530150528187996130025700354919006910544023485917086494250427993548681526340760765798423120840474266969193308360240393995247624631232734390710081596632874802559364937789088993747202433563098754626065595953508846502776324229814819922160085444042937465595463704991808575712523119991412833111343324473938562814148613026741686581627309278872477955483917171575224425023173230967691847209239801374985930074086758002298786882013508579455960110373847577633038772943770616250879321971401509377247022881153504483915596206697999556178244273855481630272058301920371564352760421397799141335748274573626320368597172203314719629735074782687037026454728284680205841078155427379692281209673987232524839885528844468289194789675556103212682166328849865734364196258266949359677285829207173624588341170735948055910786706004721186719292607211199910377373610088803796553276319902946523101051332657192376570001825428140952580420708710376661090385674673088559514791527229819683778704684426425405222369931963325871468227499197177696760779175575433452902086698010668603201836120994123792382353811224624622225677725162171228923121078360421079374871597389935090749029177759691489456899895100951579789052730706682470574353650037001077086908842611425365974562876880594813050329196766395347856299094218451139812711480980666939039404166627974566693489944923044197259761028228823008244656097136980320872871003925492263041218887864294227326016073052410811682453636649560566478564409993051407379284992320424995246241983765219376300111210578966692248853471409876797681990477728179267535564739795138365334283767618554674905255677069650965972395071966225641735923764026893422114117483101484583455459450598095896378234895449064269933718267813550053409892517806652670183706497327178184715520410871529239469487203301118402837466217027248756475514283435200381271062231295793940565807464560459206860184772382441700977477323092787574482724147684708994478718160337887256582011856691213067766956920735057004469758093980747826859867089518969070739263598691044928638033687844896759592234935965869761951341054996669683231516791506585447873837346463178839481800546294228304563024497056520795588736353733242599537095945776168284448015572984672081993680347780561450686160203431203816694550563629279653441835149788965026266318886844081135880199047038934665614130387658770818371966187101366121817830549068761152954155244148525461520045226388107415429150132955469420433234395769494676006338934291591753524732556700078863717520997422524836184556766263848543604760832611030964789394754496454225224551334784909789865036389743785325423196852448145403619228817881022926720413222598299334667202190799864541786167335153655943508366118406147100691869097000442672641607343424000128453457949123120873300838272311279885401126635506306693826647438956215230306426330355792766077793533792923770610981262810687407391817291031208390204631208944135580397248577001285394514018557874424866781067944718703613514343120893569858044414719701578358607843367982205156939237326742620753704412053254820814003772052009967437450550873491853036092521948716550858538654106154214456432656258985431735855502532003084878959558358413832733914464541376317081214885679528157415460952942060091141886938979360391198844536363724352393598468584357794017052259950408886830047222691782484620875775650770403879294228243922872064927116734283052098078284932926406312193555347536392042023417516991295449333778834500553694027437373297361882657144678963663839050999347229317583034808124976090651733631791369769282268218893188208042045038453642595750405874653022183363407281366155658080918363917210207331726874582451335200905334092091708887055580161495753352343481274973044804637114620723732460059743660173131465104362984874676985301434116985855336332163110396705233189487127940296491597961576400124368932737958083336977210572008073200661777484558076979182482136154945586218267238467171224734333822437118597247759384168687439098082127687613826135951479344148859212586302682882483127623053118647618255839979261476466537210622053471011144894900391307535326516545751144339295634190618275423605041387082062062298747535027572437658102381695846930312721691096791446968924854402431262577394330911290429078103401341809716053740214313318877161570108628386984944848534716672987916251169129950206770060307799331935109413445111413716236203692402669428954276289746952587751086143197733169062731299389900060164324407648843825525333488789625410904000574987582243765322117486584762075502725402327391773407320577455370812707619228539293398759202160939851754472234902595163888280353578234662405687521428803728382499299340119395308103018414697012461939035335645364309609432362358058866850710297899180707530110905285740850593091162211914382309536155320529146287519854733024930546900207504454581760590544420732152797798408385351230298839523676220485099933486098091546078747949364183460002216646630013099659073698259026847162487944779887029045445904795231356285531558903180848485058238492304106543810952612197877781040819087426932274900002480091390914345328581019405284000751372260434033917557393574106284364896730180885492533219126338559254932289641904902320195725582918360802580780644010565009535606965933478156340963218969090698672822254959575102491004613073390091116964345384253146920796720498003116270556084122310679862410584578297097377841064500745837943091587955577182225510845333021169987706433301487134614283917236345511794270150303565774458798944145581087233515235264638688004468847445590221269886517817152093962747146933413087739959885934821743714400600200590168382611664893474554374509675665080002092149434068066558648263758126112625591106777237285338192058198559754616944792146952860385708772705713399406519737683242930114545249599087864402172201770323001086617334994787792344416176397563166998911700881869865808127955365447949851343657186802738388782803460509172640238841171646211623845787933653447382490714336084131480370332702352876699030527863652421994771492768846865210552373450741764567159947529482395108636715232953267906660616864247034622654737832860934916694999765811321181310024513175718902279550678639002664943975576474832403348799346162261673971121272982831700800100886831739526783599487982242646401179802992124203263301820845193408721253811145741151406631566280909651586217495807990112093068558802286575959270619238970459656949858537257413167379237016179456709360408020901362723432094034738137434823441384893023344652878281855346543681958349936337815596916696891022419880324302161581683478507336615548621823263992748775232661508177059788718515916990579447702581517357067404803732620199890711129113934165790865903816528390523542393905758428517892729344316434025176000666024553350385417407528144176306610296463237167946217980204266533300653595035526677806777502390525749328261615139748259357754517672137987646205780173147263485307473288586683597297356551841195413049907041440549579021960644788373859372839030748823149761669377837775641632733292959449593511947735909148424749223437647064509458011668230647989457133046183514078608308589462604295908353378874877335303887105721667872422587220527618702474290631457848862518730977157421306907859103954118615166967117065309134323386978109064005086793210439636763660059848678337054874138585996997520502538913243928557027055500669228652858252978160062203498154207841619599011905193988625834621568687378269534828542116514597533988073033893858812712845777490865131793300972228320192865104337824851038017010365602992161482289053289007077017942275903239113418896754527629170865977157863660266849277182147160097708029421181685272455130857557371857960768709392207079869195416910095609931688287653813060469472972048650244158790534136202049720636999809911999328299496065955922160813261762699097521846080972509069748747979599742070725304513395564200568840998522204035105487968283175551420762401210996555086708497649139710806058603305529644686712314064462499612383805577130851098452374032853579435404363441265916899145526933108909372497158947249256029865220434380384977776065661030309885823096639310969793458637264430078602559942228346143127131221500446968754017755084297112335124059597501792651870198126713822917562168269459967549237069268570834195127482771951700857203801945512173605692055908916375713748035562782394718114126027631423960867499300686477147195732222485405558872996891878930267757670887173315424455307091417578361597059970045459508178549395036430393852110513977566193759866198808492151675997967770850681917107729683871755617065903321685000856047999417067035903088887737584149624518341925875535276483849650450193233391661228472376942662115242602871970491883567575035722254715422204830115353030140218063914264602556556782279385889718929762715988136210525660320445452402039754115463302743401781153732257447685636578000212279116908646810574296639771030614175708031108740445145216509197587952754388893900629192799947715981681360995881050266407234481675234512840245570955309087122015911820075988659147050732820705590946599729124986766228012143939664179240928889569851640562298675511066483983201435479776206605073941169629243834857654246890349309749029581863472572838751225158216440628996728682323466824959993135750025779716714225405303665492113319791829266568388327194366032088051187344962533711464916339573525422280569828148774402373017531763726822463310138766093498646424235816490851252908779890326051108185253828513509794695931613970410935923178608177898846923047806616441727284458817126702080898820596309040879734946449936726239282799074912235080480128076178727154771297480969715713959833155673042936632550536823864253762627253340437133119111522253237389986774987603220097703137534840663578726541120537517744653016882193990453182570916015517817201699326365825783224140954490419879472805844628098550857733332975430531421511098979245737196249487759927109900597889711188435491775874686902434015282692104005999732391420043808240751907064150945972772184268927403167716570662721690289271689903738481383440114037252959612636091884538367177911419765919312323839882562409739833095212535069481363872820490037998277427267390250584269589736030083023579166312690545530731143435473275285617788946802948043770754990192668305864354886402349315808997698043805609104423885497406776017996509877355910084895510448649541754765889233068786909257062217483527608122131184010807668319189450722881853516936915056053104695628388866410181911675997427693202310261397692308551660116969376568028781907752012124114303287958027023088663982950370664282726342175672285118184810285498807656001428219318644597674738444095093208923725345748354389808967508680160197620123435966146898943563214345168880753547698781421560762597429379998251893138218578449273069603018641704076555205436610047048953053536008077405869189475109123056696353437604807227390722409671551351449081192971885840047100152918988632339286247382580325138574879517527220831105878956721276875457645583014508366074337973299207137032894618637980249381858556855989490358158357001082331048342835180282521482245143944137736586671258660612443451198477562150527230829454077611557970351237583384986740761647197879065599214247679959734841001429777212010415970315797179869624317106188490373488156761452116861701645036386992559723175307493991237183755916952017912524088000656512136426592341192951104829978600628345950972588394572036556260270676266558072835351000102007174287525067382629604139831437268937466368209709681199930011032681593262857432862719215399246431279435480869684462997273751223864606504403714550779368065376452149882305921095635986694712060567210315875571531322092358773112958997234971189413254064807274538935978941832437729337355207995110193409146322136488580079890654948363541562294538040959625978979004990774561571289526094962788677416362601159748275195815042936158755002106366320284863636792050980552954148746871096763343413838920735147911071102965330968692511544707687551386238671345080562474769866955146559710960846115048755503677311734596568178353584685575865877577039053231865638313095705690132802167101690925174811926897813178013776606945726380724000311731549914723375246629642040194816162436341515912177258310902613632284102415981288934987081222845158051763396668790829620834065665228985793557941903765310265176427839406734743065950134008775506777045270841944716234405918465037543308805855778192093599664624212888087278762968701605376556055401146905591452699316594895431663831887132900621034441916001181193997821770962466825488709713432455039848130174786017816826740169107891729555743255158637958607145114203090994313852907140064174788860583897223848226228314586287749443041503118551918051646865317370956054432551493840701657255752595744132077941094714977923450509415760248750775977688319795753900915887463261524423379460258422847248663661385183313509148397141729866150238491747637035343790803553812765986605737634159346802507545705922789334262571410441536393599604542235102951630125945206024553488609650038572214242529487092345196012305786547362151403103642398939834207330817292437931795539085907465147332734548322644990609359546148101944597503476771887945041420136720426682324797962574360476272010501003151072288911709257833361463736613424013822333837341195178009235186505583172294785723120956700405368112487770199189363264110916686463527513060168269165761208109224574661518030290745920128146605374508233380729360777838714857106807931110412399357054319846860918236166471333087106542557119378891819558425254546320283178343595442198093655732013973616423190938287384070514218939654767216101629503827209391762635640653224853933681534903252324620546282324509593100053231356777226596357379919026563159596993918358174579679245242632024191787728269517232005442711049216859624126920526267638712552711447059958423805836050855031251705853512939776005533868477682920513435579213244149377747362005090303671055372156429364828560115909985873840717777323074063774138520344078608261026013254971570363987980068928328945646014877655959776639916560231782996685795918597734566982555280637850804101115545964892542438185108149095280682147629506628703245416574728612080066652081618610779176624528709813157746874530083727771791810681455097292014234284109247925307174913170371336441552641990386859328467468986064421881146554837969158581574128629898619685092536189839493828498797904276381633178830335114018023597306879059892541577662031598528306963255691926042236448279821130206922279373313632836023842286696723501645457637425676726665528369508605622084024537101361849639010631631702766961881114874138254181150948413521506353245853599429626698290738892961042965431824325976311940980902470908557373698857205594631929106981257511415971639208117726766428625738655848510143767950896388959713330168723334260547927545657318714488753124916628992167618292790578751616763746768226856786674311502243370383932072522319234022981088146909973612666567277582403033688451198528464972510926064613852517262602052132422602479571804570165380788154054007588779761297569663688296058011579064226068865282840447484104426755121159576797344097626969766503834079397284154326725020722528573317832577222959346053220127939431536955936207009649329435272337032675977152989425342809540503009922387415289754851494762897956551218625425206934747659440700144742474354331018716567759508033152009547722469532356590074919534488644040450059288273190219547865889089980365147694566817952378604358610825471193092555533214344179782045043371858976755237995036649243066369426280682671250290121603896053853843780869244341751584552295177988121207287346255315108262457744441612985328580013177335691175923643692085704571340511602717256461558219970918689466552777830472300803137268718804889364355124619574641754135428253457045151277223340169042639013563967497306868358255647859713363917989039942838314252163255205641304686100243710343483872196404760933167215522306860545664987178738450058898148232178377024458704336785400331222080795067471709917313217346299826162808531435208144790959450066836791084080476130085518244269171239070812961361713689435147038510130054739886437377194239400437789449306356090364003098084313572177756918292624938354551133134873996215020222747374667866667811237246468852736728980379337840867583714688519419375936662580158510132678022615777303948507043104786826381700259530254787653483823182329637701705396093988485577346780235133206862204803179741193288396878425987376424442359300971242589778875519406230986830319028356974636416383774040841716489543189563683141890625551363188096919572683957106945804654579322178129665047339164129851587162642148696257402153935978975788849569977070999756215953761485688965824430580189271192868319865343218600288077358654897103470441186415870474028697746535313984360667503750782234799639862517169767689376290459741048867768472618645278801998801300966626109968635652875020223253483286022944045428172294761188518009464802597704947463878007942852296353829638475858314637379505995314922979109124014444733386122668134523650111319376421434582427047197550851462536411194304310833119367562001418689452710599846901904086352132392560062143909731081190571100856886885026547799949103032487016027840569833600826346220410619949883110389869886845535879280674024878077321233978960990452006760198371487149276281829425927640065645898577267684518509987978075274498147600982585484458619286858277871084787224790113906294257883278049792560223092587419427099758444664059001860086155040730697834045499276283488400309490635519954025298194171333521421593759550979695248532530235611892850724827477166265803169843388274999191364627458199531018661899881031836617673964857345666972980274204706995238951544937242863753300444093960208019512421494281234129746806317188564332881640425194821860312377059522883395988919907493519245100097597454803020088931127411009015961005129596043420372379674048257638808533795727636551424186519438611668867468137883929910397849320595617274665904858629437236803488975236686256326690105295662004808088989398287419082445260809184494139643354447356493155466483776497156826625764189733680319634590335602757668342075338517080488065837023627396121386102883842191452531501822355859207387512435788757135419439885013637287007722277647348069409187425606766857226667779173843174943056605962148451791634614004832344340571707667384170865808536433017432160793762691247185335396202515251258702491569841757437050651361792862862465297737036524470509655639586899379277574315369771006587945039607301170221205766706140348953153823631465931127875875643244828954353186379492301659068277115986719085583587078937054660711293820069017618563096274085289216035890470837460965263206328475680012644635597462720956453547643784611348892627990453179465622950269335772481484729740999346117715144854499970398020734338611285717326814723973565933056882295326088429786593049901471200610221795785719645441884979228803634243984324617887056454973383135945912078457925329232927647277896604010589667030129349571729435246794777882780214125963224596972260506557480553387275684381227579134115792627223161075856634588426228984666507131000450925413325682448995257571658811351907921663204462649692641800258264959587464625429406816385328346218703134138169316703994455129337181859938692902943563469910662689069646340323826655386698469149717094208225856584991589290386217174108368893773460700714412026439047175710915029434284118805275651034662251723834249478499387937585072213294188581060004095835788663863984597667222905693107221345699068734963850477590614350417993890155312777073653730934303843700192966536215668127194695437876601750439761197659479355083907787566448333071612013616250616552008322156424624464571534910148403071641367135845320114516951683099112390767304968047028023268349543534399360161589603118604654337165684246240027122918754167783469537736903347256866848606838597112116393533856501667100624121971595971888062842274177129238783233157632297045668806959841983401902490624561477316665512467112272215754615838632452489948086380273562877713969512770445920299382532303258251551751647297066573729195734209138461754478636831523961053170122454077171098269598514483753313429707968599031396212036512901794047078077986459925633127911197961378393431734041418344993443986518919993790408357435429245890437220360275531945284482057890745828093062660426106329904432438580378106923664654200844131941845892891469548778362061198659951228526576183104125496820130811155207732338737380932114398313007934780807187561642491942025394717797465203743012017086018092040576824782504088988650073520778773937011731372210442869511256096002492955636288329443980978957022412828700308258703975226434408639135065093460738641428819332844551700896626332407698449031693486384587370669998577475451925270837031134826430018493490008314863140351176340745756731975442828404976145800275934785926868055679970717714441828264265048497821641055671269775395093407228173475551099553538550993853876906166114691143787778732373920625312112738451756229522972465428853526736446760395858399583865138364386007366657795345215819044133596587621987506947988238227638693370942763656889370510164600611320144376450150023790870274383307229970868371007916942454715100448579873465397455390189523663602143266764943284169930512613836392194008548733549397183667219799526429457762409106587826669618045391465673645508100002932856257413312066987217788641279636263212179386088111084954442907411501532391116247256316397083748151196925086632385873760274493708931632877080382190608637738516911757052063661775921759814481890085827734599082407581807803562849103723888841408733106820976826484575297569235481304784842364685225412206909540895951183263110638176472407708104520813474704869547584890096547019554538254691691991148274277766716794309538439096566874986869968204277452654026683899894205360022311199864317671404337760313403746320055624847131873694015937531642278963975109790847775665984966689681074636725180935024226426269151152519209787043596612531460509849498288056853562870268148789002164620357832047481807885466998928232623747656784040973475945123850435417666666127409803573966216735930175577162565663295914032822014834394426918454153845389426774685999109640971348302818445879673177959335123357179548217002061709645993966613165592498505618231248482976583006432711326479702707917436593954468404946925939068668039721861016085329088111716707411714220317826386630865078527576846240458429523920760618489088798249279083049187957840507031222682416292627679083156605863878067635785783835681573879086403746807188797490997876020437345661205347850924139175717868408671588823709722195911489899278517079735532855680774435644024694697251744325880754654572035932114948206187198025509327385777769642981228409053649189592648673864639921558343996736901609012149236079870589575707098694585548121862074648191666019665943455159732464113290761796574192897310351443230268576797332413104792940246452900789075060592278619514190191806230279182422643983441840429574966625174040382721415422150791627529287593450925539270048119965562349972317441259962002044664281477261120236538457830146174812491051342954081441662856566842990154171463161836131469685909669557937906451919345297853100112205300214482036234867993422939833862855727873389909114183679316626702328987638806085774263920359088921861423783879771923606307276816703585621186309690006524858658682273740631160777195759080176612805901545403694863798945684753856275758172954522160955572364401745716415309143654301821818431072888559405281058916207771496780012968880505230703446565737883052908049643914553351680882139313748056811004472644457402546454061654596061649899785004719558379483557307519026737022369347041229141443001150007626379570321903255066858492908284451177511166352423573098941800964528517297104995487599602273895312123679361250974024388670897759439573818929117729578971628377961382961263946209487221283543670964607272990477429808928853081849986234549985230167850041904818756808888849650157707735644187128208736000523229413400276339247077399287956284689931944719690664327351381081040438313833472791749293558479000465295922579116378395936749671896681278910187172520254219348391599357789001142688600509452588824661937904344064114065518586580803543718871163602362266536156922249042008127804416523491819972865933010082998943766001307163884865461044026122953768646532779795277584695810803945462387572865898851285424298359652560816991158242449471327406768086859671127353536058405430288779976001853527996539344317913063239561327696010423453242539282399972088423609200946216919666672563572314095071550660611238013761642793750448245075036035492180249935276621804147306166419520858969092764115097503185562334082733491538559950576972086950558575140770551830411663917136653969644078394965585643437801709776409011313522225412424131862728286291621127448358318953221453788603798057121642990316059587882614149427056673452390423059188075992354183126522109219546116442815471811779098225413580047501063877871029571268988803647670088723354328642063351544526786576658698726630214768304131819569931088375801537566594291142086769708958418922846151150972561071326033069604483071731308513692035966419336131862670570704838781233628444373095673505160014444617375203716778303519100005143870956419326729245159182292272819404014395375192997810648024776446599362659378645835350553624273140814639575809318925743176505810062877387166057614999282915505440875906301041847129904386908284680337447457208393375117151262551029484828499043943143638686925412942319156319377674755722357853371131992450731626222311353963695870295116302786742152550203574259283322027305703402440148722415152076320452265415203085948818920913691058834021839232148116750863140098991889797352006639762283559937016469046972023064258139116202274014337908460133558682163680480221852311263214084382419720433627222026084591161800567629739020778589110133845484510991631873351197068090068324042819567242792547272847823601113567221412261425984786583099450063818361003095053518089454859021898557236758662439969847114884748732161150382224269253978935378610930076665701630703744123609564637348035652009967495379899281029682348779178414454608815515858034028352400710905191067577821225975217014952161343788316094288029700643962620041970610305019907781659910589152488102649509297980660188396882187169088816473973661857586543613239775175689859039210437176048177533178212214571614650647518591672752504498949309117330895889701965965045209053762436941344174457123941858084633493315521890312968498635887833707521457280498310910316857679310662637510163484688396398066091243300333950887331961109070334352711544895229541161981881913319772007704521518684461317629638791278513630262368202219189384821522622754295264862122096041181666735439031889217995499288929171565356903032947718094293303855175153570890492155549860526933549617978736407235222673670631463489152796159678194604097955413607626907646994484627961050813769606949337075402199145668920625495376872546898844033956082026983268367402291954186033713429849046443100451992448002766167453899712828556140094409758947358970572326494485391781066073240489903761333433816534349552244901774437074355604987471699982918585816853474611111960992175968484007257001917559236201614614076367016516467753394722759328849351910679613309249780053496241266883732680688494570727158695421164438893218611619432630549536329949490429929190087670851864274742908213343459887173392268033016881294182112438407562076458440359128235786823155098639181557746269770148816552016495493696291965748413111186613198461321519005760933946288438939442804692416063780693939903420217373133118616754810354831731165274754602773749507673283161482965199890199429127765572005448486348061842100003936970561313089426419733231509243060546391175653272852444238248015538870290706309323838554848799627164828700440889177613926095368825377669671276203978441897527027090079831415886628418594667766636560175950542389283410362787769916315970191996157771563914096820175077063488068937495377293377626249216151969762146908809627830081523919010793621220323260476144346638839831924509623830746238516033776128922322684949473839501356008771631867547305350803337982630211293125065491281296643876347421703293026557589321632624940738955569830488368602301346569005573856453715123633518839034404282821926657818884330751576134829699849448664665860002628356957502199710192617185287110465571709533510126332447287309872541893180203280332568773728066060861429772355374620730770023630344113126652321160488557434847570492372421093843898895557400055608007932275969300839205558172636477832476261291775949122458185119833777084564886076394056986441836150999065537291240766213023668786294381655028918918330552839041611291273441577897151964385531739415784380197151085535115208717077571646694416905300178007797593445865682451021182009176856927486530237091281434951766640118055034226318118892108011089209106482776667583065897456327796802097348918895205489925809417551786828516582821008834098931496935214335972818085596920138828151016183658381380112872584077305362903126072450394241582520153337491617439886843138927776938240120447694907056470970965114995019293748432253090489802794015764849631656007490764432643530556271832595782001845029646572290907637879109739703291329196263213180257550141457094284375036780856755622781446062918281688124751483095540332334199970542621750354962145530290882981290891856083826393851796272420303524266286306584110056394795967560362583158437651195995614874210549632023193628294265745552926912759966137577904184334367643691590517761255766381748955714062856369126509456191451582444632030153496987163409934248197078583751559130431235798922615771412253582472416843665210989475446489983038393127620282276513531940755295679685579176908440259403079890989993093465665463914018202919961777665946954736677983460593237474089046874183460684055618293533030570138136259350586374018486139784107467229674497325713080847862901815311087636759626069920837048016885866845128507273425004848396271415169291359055242657662301383796945533552968502455723379640127261795299744195414443577772182703587903501297169048399943230596930919896769144958413285690936153251592464716768224575068098262668639752519465975542040726187982263309536063621730371293357592625854838590987974351785437253894344503233671493518959652274703284900560352145249631480264554258691577538899497478609406234129658504744039973517893852957058502351434479288498942265621410985940088038171743353444219320224746164120141710330891299534503407837785441580672239489321424584291458866246788745256826262366807262402666637681175564848657834264920763822771311547645674131903718464721607616684093647721193060847774384784866959773296170004043954965375019575942347922176607811947133634417850978245783888485646837171980368824576506525147899761326912454552682485321161388634402695881550335906919414373198845199531743615374934895410547867332659458112553602413480947395835886596429012087235780180671978958544966391418929257621421258963852229289272150290106523868760056617025758201598763335910415169070574369632506793199152570739785043677014829702548013688990573279616453091841439135573155425809417991241300482512037124340895873485185798649446415637453379127318196943100552514370540271207363232257589774988015161338490668348683679312904923534968133616215792719286661913072192246818461625874479405030130035559981753860945620461122880183532020661831681280272112550175340736684954975704364980900176090808766873463841787011064748134354520343283906925069335617188254078125777561796452437902608373710196922356759125253439250678523397458277194304061535600412493481747159289751110532046547840751459681495216000599785094420981103355484428952280318286845234644871135140895045670832208207669590934161083957652896549411366072168879972172818082019244093287463730746082471344385012149757724165999235840555276954233742353376734381978953593170960931190169742469630948040565710449091552583835392913013315018671455830552962405741800610983278042656095167573157815233095787094910399532801873762779391592906236232411589104576187892396916467760828041979067998018867115516042533609660461109614399054063529484277449344637214588326200541173556520885650616189328711555596481447140432430326507246271448651720567421398259811017701429440920203612815497643976358183674533497550456683023621178835924832976465441421410281695013832291940573536040244945368739970439567084695313984501343780873585536153871174358499706099779040028989848659220316413040720512858869654886013900000239456756008892801311320270420198989186894785049408069229060028288982503291723930645732793427810401015328426141984823275675978953665576078440846660746232840620596520152571183861079917108455629934504082601804896971217403003584602323146673384709205399639333938373638345912279624197680843325814793188637347152136692916852797451862539681063161227741089122301775741036979942596289733348232082685523696912409677068542556724872797584722306805360756236745753484894917421839723437048772851608417573539342142018556675830094413200578381647628952930931441976596087029950935666798428793395939581510469873362225770447599821098535122518355991507821579449890941884633823111896013373429433867617533941907966235855631415350930456933020106941203492541771660241344940804230107517083532508983709807930806835951511541225705746111928807367707864418344945406209269568844004426518426604451629579044474636817857109927744238919681389335927995998361852505678858134853077944512617104496750921200818285124057383686588609161610909570387808666680508659833201578874517516251844889438526346315196765938591399414132125290420195333973838882511778732974345570302153964203222971278715453272569044658459400275276319162954233080518004043683333293563850155984143704000585513600988544427484190490476717068113084701496052883228343221413572923420395084231076088722050069883482663520019395981954660280119029592827387625715235841948267672797605304637155878615773316039702574230597091938634717462232407147658967864044863389275743708078843619291913302068565571815703576601507004799164391873767201263842567021581801454587642613934733528134619734124773715676242929671228811421561717902349016858236161614588191203560531162790072377853913893060626787915397700475281774788614457471446445124888088987008699961169040741021449624337175741342482109527538605045192497456437770313996532789441457689251599034535492690352860645985176859003590072491642462524760378301195112232024468009509349726878236172359776043837234902849964224382513291232066203563826048433722191011831310755175119426698703580722554783156483143598980755248792537501349611480895560158244786521577856467948158255678574660870234125506623303058662215523413506299926122939139892443713379202772889634878389439875332823589122267071834854851631658474362343249502936967601278955475209976175763689188805597076358810886945081290401724415095349219039094954849976882807822948771077374344257397677851992202882747372167994989370097762893923491061116842385974228401379100645409747151427040612451077082724978127047355910486402060496459056059240215393030027818398345910858217362222293826386880083513409076265849073984733992419609172171572855529508159025062865680253828633048698046672452245573787191836555713052523293349183000584790393702808227085403191005110455065213447413560060466557934325768556696049962505357559426701693720523586421038919111908038145473648270910522895247394838602676317318853719314068972451152267905360593627021154095063108777515375392017614635922000740260324908106722658414549941749521103540779850688955716198422619521452948653026545263231620908643670526026177115123570617015454854650441958106818044845702355051940955785269709859410615865495180968177422758496219109794521029056960252275593555555209660898691843783433149308133567231085249747427453709008248190892751314830073412356666397073557760490506061849614032538429059049260270986305987364158990707723503140490149609716342466005958186531144414547301966607993660410321031324007828934271050875177462592420906555866647027180711571970140477796568530194896659605837197135493507619598876075889934107060622381947395245170902861027157514318954991549480326829464676979683274384586076534813216348922795083841000061800230577621074525434144385376241321315284771236496156767943204295481853931946645647571970755029848324801780710592646983453156904249203681339967222075138569679990546390386066135135648389127737787449151359531503917780513921283070541840002828901632055097968450373622645785552181742654118047411149063425518938863056264413969295071253136017733086730869063505473677238305095540674891850660609551426867287738420418397502708432722636074592129613943534606880523387271029853605766589379184841123121042100802154706714512217766244468829104289574471602087718039466215001279010939566195589459255239641153901499020492372096670077527727666727231120787485099558796750570123422813885293736558638144962794520919437511723385227813506620702749667403978926005819365655683488588939114101351123198852092826809596110810349675967103164393533138670706470558565333818936629347923158309098113301457747150782754350581692464237957844011372702855764708913809150916403779683926546206792371332958652959086262521401383900104782143699215389669832530338196966495803524954659272933350555447289073602764282434996998097026285390113330917364398729795309428009907052875496871281921293832380972621032324879536755935600599885754614270837545055810207519951177536266408597123496000875218805294908733275753859491634451893828723792421539580084276493572732154415636898297439461268907587350613867133046835196053634542301788574091173721122769316593628005650645734002914758881784626643937622910816791701641972075973806585819652642799318899956653672836109393496260195300508937444375347558725721677569219196615811566534201177343512156419550725650538203485702325253353998106501461873230771669370471208802059336622917123933073315081308166643593128213114338170698494373517677344771979214083817026448471477137245090692360072114905368004938389051301451201990637761138388881428917781193139279050482852619820102777243640027232785899034016301407856852064954482660640153527248953484835398134042581156311416909612171139991306842885703681408331317864145709433247541805812446973198301429886031583158806577515882134181821967918363344055783246587837253747937481865530581339902819338362054440386255314029261567005958410588028178617830610313928223702089008754350577503090880592027480861747780188313230825283333229304768595049725317115998568596979409282163758035371780109663449816932218513251355430487177558455747966289276869589351854996868376430704673485763041204002367043701905480711717938956533329216194480305411644914311586649777103301208452705323929935149794718503357448455126000899812856948244283661110931298251385206875945681285929275685519971437945653593431256608883220772095212506087003466468637069494722382582792404230097378923318764575696637085424175869647767809791221688601925500086115842588834643010662171011982528846391837867970158912767269960168248422216824361779254951928877183214767743545516572046179983091826660305453678778281200348315178129784179980581510509049538978734547493108613585365908862176879366579478285211123581880759975382792985930323610927543491616249577880482160188942964120030923343878025428864131151808615266612121980209799203580594399627615224941922081386103860147806506953378697549671323037744591080045391138525810581543149135290999157481263051549802710701408928907389582324261830958434836430216139818039870508101317201450482807248488293591305573607922520181121376295971030036163115919968992515741879530959807277012998368384200477654493664844601962788125503432448143536737522704310444828236819032328889534658111427936349649316561205139965849416787287346131748604510859930278052182816135551315644927406973050332355266056617151568782607801606113564062264240315715172167746717049999681300314828920399876877310837803507066879728616122467083627429006879977062399947896850810202830790040553677568661188944454229055538485520145143077104359738252879768127552199681867996491315275217170200656021804902471644243630995165933041499108423705050462568069078152042055338473754788862042297622090000531672279597224301398781019563211134019406778695481238727205874321094369619736326180621925219446336196365238647745178343354688203014317894085796147390124555236971805407674695811058202414607397560149283806136280566802326737673550974625275361995185294635233492503703202817756948728977494780321668772547915299545250439828331211460622262857724083890891884413358303951250936491065998750916095232304382217211170667743728088686964473338362663712393142315722681818468415487917406178684058039799714966874688200760621147397265085679306085011923156032307481133023106098076365840475518110878191009564482137440979631756200552267937144236762561770464592943816676351958553075033403795783289071377549786833654623454264410960557772964213825814165204539717556131132958152659196471863064756179886615801732800903486240599513068361001436026678114744666028131853798838721028609511273652485384589759860412386222717352126697630951137732322063314825997997645749179989731109037133816048387748896240270523658870203034221947647725109091054667410838563244778917954701546166287858573964279426365100852289146369593714924855896914314995520241452352825911208588467791626157284405648454081984199049540554810022127317418319575436288793570641033718408690446078685621563709512009479059423663066382647744181830729461803738771145177057033589881010849255635971114836447840455776006195418935811378095626133817535496288643280979310460588788521157801107352217065825271854354617258165438427507564807406715858187837435480817011647160056412496518213852331882550134522991515033060418276422249333975200132759687345955166622052310180193626625921630386678612423155767882815223800734090331423081456376822783992214646059753003660169784595485332851176251284757839865133571155932188887787111403095359598272514731268210821969012048097541934120081139669653883483141596637367843853767424075250146118578170482598812799908474840421285700754748068543930091782899410178910600705366937451339084806176226603454727558180948655386496764410453371998935895104721654666898163035543125048898761692134341401469535595388046504390611215871471844462835408753943566506638128022734162377131359416869152636210920131933170649550530750089491816339667034651424011314102620790070332002872234108906224534214246318744571990632919385235935353185539257375193115266597421126608316173762506242611032197867460631246339119812716656553275492699616585660097784303301301830740185929621722803517262434429008339824187138467551923855197796620266826874834026551121174477203931968096073966225541242364116662362226883951369292003371692903371953088887793938647210812357321799328925484248455890759642706822741146611146870497456430059943984289864907947479000763144785903009909614239633593376123070365956275797280220453614030096777544216496801773252637547889158549621033845239945461516518522617328409546232321790505416410076152670555006265704870316733479031353031953942424105293356647931124923951794312494057030016997928051345771494249996487948362062799172027027143144319843056539036453052339626322935898430107481863513712093221571837244655522087421828235273008341999530349647846933538640530557694769164232986169965349351949242231157128386883183108574387521989084640562061447163978857077285566599996603266511512003192780992494508001603479634436640794162902173709948917541047725237555798422969539867242127383224567713265290669358910048031772912363516911446946782262443558392580868091937567019173174467253742936696454079369756059606423616794190026495190176313402609882653735582928011489154014434571469672995288740440865116704012569798391616950966135006245849059885757228779709840377973515049942945955583094943093316512892000788101409145804553543345042116255237050568896496821977384685922977149251035607111491861209512423446726832272749371599436781230642449629941051910024231284150579058948440767844542848758421699620259015706060785543885245213119783941933684263235186705767457151625798689883434007329297344366855021685669044240971828638569213035611860043615919726047451724802864722546551970089736408573081080558947794843305139526730800448821710356783544693721311384438120547360674371092609065750813190111149990731667986853849159627864535672674680882137657940214741273451430949228044894156421185615067240277302288358375622676588914887513464069498401003190787477990293383317834001035643215989757144274874385010425726830477713958097094442648108646779775147105937001723682286914574440792669377248105735317109549753667553654745209698780820951215774727311265822826252248723034657531774810622746366215516519235713635119921578778742244378890479458628239567483314376976962758602002367449363384730857438955064123982854129672314207185515075138133904730766436041398174758098504437726577457888611475476649740468612057750384768257213386100262374675312360197718590100607423166021648792633984564677505629041043374898452533038302530251941202031566441426660019864310700487297783216466468569132772491862796290964347054126915652973112319587029955652292316155433681116858861117008501181107102740638340023799324845629697258593277759443665674097164080170017157430798301945568346345203652274075406477037869723706881329239928894576241941737507371377971796033156331324364999752088186846416442923092288875689014216156935946864032324089828717318677314960144675517695850220189818193279292551591718619344953637713563703946042033938623920919776998249625650563274259504452203217291546009355525695765061057596032992121508913128729470512293056197282239081645868216083890562668998341547996147892586858866323594320638984472832589294415773566494331061357395988383800455928397860880741198577670708848086806430494590330624292675248361874784081761848448175715065438432932523865350349348372707598583357107014271766529054551912375581123307692429178766277954658316330813966126294308836650014057767494568851048853281861256110445299806899311987823368999141623955169962694771030018391993499048448744314780677996102220680292212272022209610873952247234798234375462828851288934852632440953696766459305005132256977997259617017155511459428468977954348440573377620910051830653599799523231777296555598354201568959964714223289341793135870987109999211816105484440643273235299665553324912467745296433162903678731735788641989263284280491940696022263507728258602027953804218363070379887833421132491436090873713321877661206628825265800362346822615430655719886654213119927962515892498513316056031212892998314046403244640326897973318663941754639688682998193875979504825523934679942393961883133418452341700607726687544363855309358053096188508594027986860174096777767256252316571148937767605322733578698680482478298052463859351628448502436220831761335164142639776740058618380506721870210189110552376008438945868630551652255346177697023674660277545503133508097573090274140323440228254619642493447845893936818569584100675692878992164043094103039451728903748236660787765204619808089060919969947296517358306963517965540187780528669546337224235521530441359780597190409900419061569002899042736401276607234017657941480615537001308401563719701143661305081308177800265640861755649480968644522291598122128740408018796662140713602187306426829941513074768784599977873548744838011360411999936735925254737281923214919983304611469548716962394348276594463730616328761379885690960546795135492457697755232854945592423184345752232160372952509317198935829237932157708884218365590845771684859403552770556608539015977356671971064896346015256628268296523796687669460866795196275591481550721791206843300325992569235992612419017115737934469957928694289121241588316867673844496179928778458142218144980578384796657620376795684133625180087549909950058095833495420385193978998293327022385494010596752205641444091406304298607791367254533737686622734225918920917145289565926179100304605367487627703985256421115703265542320757806746037192844491334468898877461905779067260595720825340647274783795278373589357818496913483905044508379185775544462093776695592937754396558361149630870127264665766812243832495952149905811711991828269898054931705432656080038621085967280189828758867384908223444528594191248072728790569030248549890679230158203428185490874424028969328599976834128878557620285190236700780451260581638039266618700322618825035442794692109205876252457408433826104431724873079497268656153939901063536045540500277986447105344199810090585408763932807769911083710780197607383138525936204372596318229850092810285796936577254869276483179833184422640428215281814569660992254300289772877431558820584767907983527158645242828491020660858769783701158294410654101904075435211711856088248751894480483861117965042731223080926002154067782840409545787182845466952952994607296822844591609955480089941721097774312674505518043494031799403066987454223931356984342984260664444516997762073680197992634449368848487113086381102026350318941049984857243935216278176629054360319845736573700671066927172003633611823817384400561800597182400992213649636789040509908205407677020720472116764179453926077959535863638336154572152172240968026333385276505880873866416832485137818031596996095151819324414673687640418203320428357356285637959373563360448371539498704836429127410806446738176260132330750810326976514650107437290961230903564657318301623643570471878428706583038654107227043468518692459114760322571096079813983223380448694858822964665966579479836361699900334630823371186057225716355716253855080108751054785135646508731453278885409389673839702679447881307428067116124317016138849167611971020111188268579455769516047127639589949131741842839763745968982262004750411892933998078512869028236994653548119778941929960794964969282923901200491350407218585663365587326021090729499358543649808022923564890428433062541722501180632937478485214678989102125432496086139673613185704305883988193229387975283245694448162850411279256187501230856213363353352716789450993735972815014484863093521845548493740996405255327551600002606228262713654455982642684468682639483583028181661952935210651916233956605514671387150244491101060178626531710697519105741340003128736376978900107499079482253849825700204489525496623511050924728172689754943929914600899122086016030864459534674008345072854949206085564133270300253866435454404514662878921572901472212727187843034099741922282512391316227941988008202306951827525331010614620907542027432320257749690542421268733770691417670951549788256719242454715876396473627669181947821095665937774840154808311744472320417025977834171535986022729994151709924694527644415030127027174108386738337308031925678340182599868289606246668625477524336489979558013304196962580733279220942101204368343623664236324196591965570051704983230408167818777133451542893324276274374098190453723266762033527622199987178112862593368829158070123746887577829886704696280540930505625909217438756935291955845155018451609130197267751957930689398476405175156692335976139610101216413803980261596138824096661262271286492204977581681639560461979931513992000067571315949247049122270826872428491616370617204287821274378222318290043390215898123294223806208200151752885658235105279781231751626729937533471381259104104281771984439556568210095723411039566597527502900993549179721062400978900673040999228067461634407571301219773894439772847780563858405110528937137750768536211936397361009496826678040552402342489007161035034219120168043727837692813703039243518576417573578555051158671136417594761061637999623586445419676172823364699929328883526404445243583953679353457967291339349300490987485515479766675410046993812101625925555971260904629220203430394775377239132729262812123347297689717367774520079722878158197436535397120809038018845916631301414031421869368711605155395181135349086796672993087075533705246242361172243059229655865245596288099199833911885126413975113067696629630420436195308349005569141106038798261075971282508720744174412725517618443887437393308302495596871995912433379207389158472939244283861881374629540632910883842662892015489502885663528573634468171778601739542744747970391790575573669680691598850648752084521219153909214969345750572869401444849352446017184716113617187148110217664180024474794966072596663090217047726623809939464343710826677763279707074705775510236484834961248645852668478701852663979839233088191160124758683511317661168251981364851122482382918439430934217440351963225240336592764973496587250829318857337683809979497056981486575115219083122667927647357232590915384585523601572156315324362118480904856652087421885513378137917285228173399898016928362241096241743342448910652449759501962691376284735296256932813067040275539697063617721214778776090288386744250759944826777050006150184741743244112429042853324290127112091503801396203843236578762368105679452291676532802662227600165725365659975575528352694735886654819079386109451766794185269458856546578457446304228205875235015408248853325580092207411279219419334039608161293014681616156936319800769157534739522004944435998430074994480813818623689937526604901433377889415350912996372564355495906839749337633802286744284921720248889562744613214636478644194625456143992861044348871350387711898700455259631912805701875918488770050238335720212706611768497308126077960613343723462104620839338223269468478026014942408781593577599398324877778900649628556269596415046202332672222948784920777699204191173515733691642009593440724842838074229864583601593014466505932700387170138282179091390190875396886146736228894107104707058349904362812291521063808243484032520304924005626400317737693593457438006375999224716463510881455791867948476439393649012383260869363925755962823433163162192462288285896818383252821049557755848277339373833283362843094623886897638577095896035607513958989607925793892498610051691091695316396235675927849539631589661236080174537421363055641605580329681467208551008439924022812158487325650944053811079585654565914452463279863023204662581358815795961435511969784624349118418115205247933684624685506159081880683265013709947832305632995840725320969346809502474476441151846699476497782554485330607460486917439425877400614738192457477611423905543675242173586090061031423776944144442043603601412196940370852089149592125762107101566496659320076322359753789705049955775088868622644812017147592745603807982039107253323211796024115936309520983401293181726605814014637164765600381449556848705115873098616694203714769862119794598777925036324805802908159736594203785101892751648066551481166840985959340906931377385519501450324476658262296196762017594810588940997747315238764446486075698193247567072462837372863005168851156333845157707654620967199079514825475355701569694149598356820616263506559176453759218223605391627834345661049011032984722992999847744047043432168491118893556795375205463469139356736304184907469837521159401825427889884489608176769433472687394965360497819373729894706994489654412786456818219142355277011410199401173972169508019446718019294232036105510806535196671450486753332252745426691700319643550761619543005928168168595527144495730263743079812676229614077217541884281877049516094004075779664257681346149878557255866392626662250715561338496978494881168086650697540275384495340306323842193304691838433625225885069889460392272629792442727927642932499695674651051428537454796146493842763552186357055561385904566748968689606811023512442088135421680595120203281444607830015794712382577146261953743276033841983176814794795599578199718940617356880383129378910150594163070077307227076771979764318565584235740972697922323555757566970863402381235877501095895564527928969887859789190445683563591583764635832617147096287303150979752512705261251905038476886831196451300837417730186240994810159511034287916004796521869098880807758162263095853738420117870408057440524508492587619723958341292868846381767692762834073810108373027135645008547331840928123265241734235161092549326982705626677957191377614201925873047338368011285661907837613671075137387658191539337312447199822987153192836867095649804198702767451570435382308837580167358769139925927581565987087724812910061876911388846151308426456811164392193712823050984348714015904091155831932914035581439119259428875551402895929919529183068477513892439980531535844863915881789199389701040633887834113682482449347819313759934702337227174289357365640682355446542804726723884374814062211377065027044847414731335643370311500977196758264355942568010952244787641094299669323681079262976962087408734703355748881502159626363751379577275003113154295770044012418735867890874223823970124142643822969181496635159532798627043754473628517564568431914332042253470331061504415119496780621051301263014533149496707747089355088727941613331455794241611381894580237144760987293280929876445474162602084613263337637269505164283518602138665139562602189814045670422605421458713763612255548653951244138903077146770115706686343024590892041130265594291371507185122123225711422457171718056088739460184164838336489517339064663679175573322832049690817109574737991394094317364456256452355968091076786698824009689889229350811689257741389251345922423486190218783374531467807693896442536141228014122139485882117792735033772240649714268027061250633454659174893851209234891319758129761977968350275943252690199979566724249103727456769422474783248544424118394947270070577115967814246697624476389265677860480308754824313191782070365836997929651457422806569482707394896849907378539023830492982600211261175618731667733231119647325561081058936240321050807395774630732432487872124490775506231415336657463929439843354427191500184809708084281134783041936830900108534073794692314786633961851758119450163119937740064733500254722649747358966936955454514460963351821364418130746937623177537907252560180041083119964272683678551045535907790057459511416697241223025833898938776876929426709130992607581177273680258443786030044512894802746635178268380642083344747486540074629205811607169145648270669017396999623437243541451366878081610018622860149909673869971994435279820156200146230385069366699715180480557039529266977716685019738293946721186393427089029850653938535147668353147231090771731300927647692649700674778792632419627277123524144713678301925134061417134773480829931985203153443573847057301966960444180985505612062834580290210700823296816849034620068855933708826157428384532844339073493503655316441078306659144186536824812555791597238692215935503434277762854009447401289362835432206795127483626429976098115506150717904445449737707408084811241747204887445425954574160804854179226608602894340587783294892117283661208392795393336338137764441452853335303650894104787593113022210225365956397998731487399508493555393091895886483893492658287568416956813381165486310980031501335998933313988440541323172614216689871864627417544078490726706401709040056499553864373361425740202413424580931155598935345439777813543456875780243509361538848146378336465587777276964250907949826982932858648489639675903671081220657047022260922698346893517990832361373912815656912519857291416096411397652001760842752726580089802771002260778713057385971399308328219074695674098417766643860861658748767714753634035986501422237013684653024503665912924692053667890572379291045752374107688046122526143702235561140470926797193048508222328769654371150250423286586533082358841959231340981728036004679669476967926021325150341026177291690965240662116935123583655613128300146636844902545363810423135988055769019788282705038149508243795112311595877574238731376963573092479455230355502203207503677274949333931095503007578323935036273391557379230466040005335577592033450541760471066080817580523171760144059812038270714155609526658315243476868415667039941760541445713270027023144994681057490008044347833191963705055150550210782733942209368373350408474620601713176117481260112127045566628303242657628219685530996420402245461181858018936120955357143288058543058520602754386758081433428547999247978594906288515220091925634956956979022404180160477071396739503804199730033213135531139430457125648782806615742721597149489274389810943509803472490054789541564972731226954963235411017900393348768297032486468985260091618339550776877007704116888267483102454051746657543586549259540450751367436462833948736810817826901697848984623163975906718657694621725937308842034453519734013757704981036592059235231233041248886164328213202550232039741990941824648208515645070296532280023819629984863903701191085513566804095717381261399041403074510554509260146714757323132252803932317282803979027778775922616680006157010264907844614289278848757610805190115215162522955371967820772021808773596553229885877067592756596988436498348111812842968207760317776870568482018882091131728425632273826466173306500169230385323488550607035499370520462376897878284665771559405217968411234289955557160515494675373270715024872892390917670991999346610852394014566093301946210843751666778369943176742824273480492812664159794995657704772571647441145398977003752615093037356888973992162132595832637692826062647034684852419425439345446358174136325915878727029398451776697312605728033390280219369865352943663314023205058599734689331872533291964497984856404594832704179764515903589141559348112232963168409018101634974293904390256754739986048143974009545946506074601122798594786774658004616420826210999846063615297279781557822547367045430220288179259380213328959814347663840708046624854780093984336162609151312374019342404081043625875641894014992759110184745199309717271288454709578524504009315063305425006102181588425608311780070623390460931366242771823884285847505647516823131307496376933160517395070630898595661245448064425959790711417068928183963078058767955267664949889594292852069576203590192705853016295539030921243227848562542043165988892837811914851664567286580519565189135968837368193178585736889611677331850737385286853121505870232194109465983133902508468078563365644551321148273769817503975539623412885199332180860513856029774317352365214596497989884972301369454984595741550764140926069418801949560602953013991839828607544209124881821273340354708138834827785844859433085765461817162077015788967797048731546897228980319736260299981028567953532146218169774949662897352363913684592436001614567818712076864051888522775365681610177787780458279475144388227507045612109424183548713103867049066841439305943721462013911967448406644075216739107313936073604964249257296620700015604544442489934414240416405978824071706152789160688542931572825799354703715582464368372140147725311306620369965154694172998437200091017227185238039929179495367092596860761921719916405157570815119297077493255815161445728517150039079387420895294551799322592552859482409158212780313931439089311639799234161208621806042694405845868048013144179261555469296441275563323599369217924320445038529903753691947660452803368551125982609559195165796179173105335783108919395202350194008194578382109683330071997896973448418819234125654812525014229019522407000819568995308910732468000960867706803483782490530837645716760768892444474845480840983667131639164730014863838192580921569586970129164982367863639294562498314204564332019383890179428444907359001486029824035078814105402760793805501977156490928215427000799204137164017767331037366494918772800747852230261436512734858027467090271237862548740447658517987552271019464808561101439085539848883115904074744354613624725783450045281759254839617103236592300757944786174970198043525576947432123389873204138660746472833390828559505568491968771742752586394623109153596732976683342036590246972258465010390257907429016456816049270413159322948818184880795467942965508378057193497997576847186788485827410200428918608315300096809869274575746963322852350931658727829051387733909467074565284580520264878583587985521113240549769737557871069410643693678940454269944041887520636241908026457261842882702565399278461428443255855490022207434574729174014737111877534538576358414002251126527037777565477059625848609292108598245023021989649074258464306815794553913297063491138285522244758357830161330556458885524749502194790294883501693605870892061339185490155602679813839087995552827186097610427474760505981449850898781186336983660022572873026551893349046630879708854459753959650292369269118103994090348892441477421557998997488843612651282074300511416336269384049244853862055791836681776059956883528514274067393514770844439291394983960608192612471346872666490328043859052916012140589165160769251075362598044577454264885977247403726975496808096461145748100024522181428939400603876905681598685920562651836895756511324025142031055692555923104349881938700972034246641707656408277770955642925398389883687950636664506321336978169470498231060337998931955326132565709237321997825802728249547732290427300527701737282389925068085947091952503011213783941505983587073639738447895962965042909893440797190538552763489454472114584611481663842295220752922913586507294347344461239249707865288252409679540803548713510651315439229424685836292416094497427665862358674179491108287455282727638093045258875826950843676742236688261099774109238906226571624586575970718935938050571409504950340943586853070730353060982812007340083818139562321088647691903038922317406450490103784425837667462282880341097108193908290579672874132895621951417564983710374860966810418584019333905903373612569759253625774383441224768892030278887481239146022827884595995284938934746496430014343574413938953069180173651219961536690767638253969969525704824415821213568318699752043178654043503203724446260239349206319996469681929999359738061614676303847553934585921095562273318290937286517765355559381221122580285489059882933762315435517898435718158360534259269425137982515478054979621945952325197807649039170792853009939351756239610430986522160221633348862747115582841163864940698566344747211048629231018033009126480163284697388475535565503609695800061756462449861048193545179407542178871504177465502216622271581866994944117539570270696492079156715368557680459623606820794249230334000395207332103364406531238961613787045106793454259246071897322549913779659497316460320873962211906922982408392112313702472859795492906894225444720290424934549405296812017863826801220223852310652145088331436870637943576831899645180549554531117500248758029662338861723074974249543033228913215204914136455986022325791225303447290535763491044730688460582810245731956484787561819664611452255680018949236897000275854639294382414892234991059131009499376988722618485087362240265892056811158351614719695505172129450528317188181456661871333312298443321302758875413377458818738630034941138575940300810716170677954805537966665675998401753027333754962203833312536970661816010136074189286053844036440867836661898444306754198092410003470891194686967511020941344107842784596209664849425048960443715624525067939389884891444629592809528330567542495092415892104732340328063438781575406413206350798445352557861712227655964375601028438155210683835582417101734921815530590569901150700713110705613638562134795657530273519671433601189434944024844147142682466492691275983128682138699777847738870062510355383991438659740655078351715280197803379175452714354228911312832288317855985071839268732521925617275930908006389194214706144667025259644267391219957042788009136934268500677956982131359359952150364440645804204302019230877735305987076274983046202943461059437076155284060110514844808394486452440202110949789334965543555856389323142097748013033111643609357308420026744398501783609178164506467307414324167249514639728362118289739421403873679049906776727886726802940510859138412250376206084229178228439751093499863346947484175653896223563378748015165784405876207075654986157835551993892811830928775669014345605618320069989124797628537212461948170507763731369703164210383026557224803337805922546055384756449262410495230558627550234088282614393329644874359440858637040325525262884716768682045893984739455689168321044809591084209526036448449829797151419812517459444597044613754242615859067210705643456535813855697145994423515660280192203595478249891918516242786191526147602498859427742671459318962114207299539433101346729496128589743320337897297183519240796793669218492097425792085530543293268622856605030635590657958519639477618501287524615507914739241250348962317231577604397943368299782618318011724377380887664453318899658764310995656599300626582834563463153393968132127754724257869951306075276665542041777711494567572648456847658222586912940355453324386051738043870218107174848226270029573374645258262976492193834163823973385794084457576119327741371248602304691142868225423478172907505936554465580077439430927986985951630411129099425838065614990736803156343056497089301267464822558512690752646640366134398744633073214696196258786820025368969584358550439080680642065748423348223839367198781962758359776456296713402209759393957157894751394829165741975448375017937885863742429637374520891900231296039841873449268720587352617213227336110726291309042354906590801178799055595554542634892278419695198726623132169103187033709905760412888535334001673456312870387786871545834639822143497985406135538206407784676793551918038573057703031131824573406688173072071926350202934417977503185170407923884856913092202191377037615951360312600007867705614494801513107942656955572830501825729735945211394647501265252070805499137734989625860872883845562747661110067304633164652695258796724153930048373415692475930068147599179068731901349423797734249410608216995060460406213161823619922781657497386851735847080163009498745514007427182738818374286548383548773383397920498519669590023057191005422329208131442384302554163644420928158441310544174360981970491080982687149214352360750902274095195514812400319678502801312575520190440859000828168766582991070378713420949860188313567193918687260626866434039651537879133487438230197083585389546936338188884938012176920261709707244242147725243920811831947677993721662564605527775153978067967669578964246461060883496627230105648134143213372878883391290124766567551640279035068947340033129251258037876117542584702564459715571704080457240830717309820326141757320526409045966749289061340050556000706462281383084924181446436381258662901420127135914440070853622120975106289357045802881191613610576637779749525447906045236033102137835576378143541081950481565312173802414223145002533905098910247729871475408438218865541746976561079860984597235474349321599226064374347138047693352765207836665089146155851610639738627604386312232570871792772454960693723387688838160935993219062962160275389043369332542988736233268192640856940465045335720952460448895911353050064517658592208084144539034106319191286447494863438330740241318884438292509290118738645644504666390784718471404379406198638091006325714283370029575922907555174692600395222741300699482000332407825941656878563635032063709090098562782366507032497192441218594801614536228258090554066201870096355342073663778312986263395910711456130468485133237111002126545400627038062019121568181873404053046145774409761459410922375551884293444068966524414925110569121955031107392235696044136702208970091770756554630395530708430536598633090551895743813307464662034209207539765072183440944289314968274705162925386249376695086500274156900612030347692405427927630738202678900209928304175510431693056752375174105898966376078523325902030679147677494855680025164234928248568798853744308147086617990750429563142311721214768921079072895363433769263054575075424497213665027102835649220192908423806918980538254174433685668904183877104601993697176243480991786318963325197022329901013653762136034376183574644890323677605853167850715434607583409531795140367174598912344458931152174923932536523695718310179177790701662378592829476284609436244749664175334019056650620401249703373136250657186914145045035201067629512984052947212124018045239799935110272755850449490144691601441697018920885382886215717001938112287141994890398066919528414731556671426882378737520770204737156696716452311501274508424334575432970828756171615796779033310422100072563527682732060607516987088967575762296581266102162137451815711688249433650529607999144959087003904611251255955839733544972133532965988537062846772491039873460593954890359531277008154087671599052085187099536782065735248041919732834851639963142592737796279471938506465785231395072020836350174919230382433902294223223676759809171546261972605381034629481340160611808989990473464832100419149120328625081353950827966302760292781001404967694262368474021229602963450483173961264118469855946171263699406974795971762347749240441892518003334546996554140304723603410836041752519287105588608937840242310015140584859499094356448708640303532453078569337332312148793718637083833150619207315446877840693524748164815907445257124615607135621218898054251216726801375704280819039658164328720446352304124417710265609685255450196332510075992866509645676011718079049973333755829814106288161134274953692407891830461401431291510147491540465446671951492394251136322942174278203410701533832012780728404722701110568744853037169074547662580772741559815162898143076751973330523442125871916410077315618877054809743761977470622985327330495285645151089564726487275519724450785621868125756680571810611977541572009291627701508336271066479728943355472482223615232470908644535539790433561364202047738487028658855356851751687323726360606767012219795566277597422909968978921987007056607890330264636194309814861115392873704575500512832694087300272605202091711024054936393571892359246194874732928499920632668231071045264996395628586145054268877096389332801043661771961028363122447363868871957197928652697373393992756308295061551027329641819044835710310986723767628128898763086751986242993833050641623361733613109247810289358975488049466293584805537691253089029260451392389385759864466247689306644510426105567108598086024655862825574392609512548494896250289209277605147477255542780732035468408239895320422117691990659015732643959563655656787351301319931321476444260534385943355168880454000737261109534051574582376903061877349122507678405241396745680409600738605470443732829670111535683225803673065788090872964067645069681253674449965181927076606737509246554648316550459870041115661585820510707880577777497676025866038755183779252250528240054452803442625149944879277972539458157749058288635061339128070761568258632205418689185306649726221219039978975710085725449798063174439132121528333003712366313704839060402716806406122122039851114157820435056187092512772285715731139243028785191912697574848059849834656275673947156247928870286567229056209552155592226471031579688251230516461957245572699702362725808582611515272960310855299582525899769388128447961540788242830892836239565463865175448180243607095898673116404139862861594041729539617895165719768391877655835924470240091030021019404991990871338814180558349778858263478798974681492017137410062621234671245156821976254872540589527887299465133240818124989367152366601528016849731185934247577466569809294702888907412185516456711547049554451489082258431009568011208423372310922431709547322246182659121017815808915255213398097637526308300177420638141824521525311438547791833906279447713631527344059174910813687846271014149457162373788902037515486742819963374847529309906123599367614645659832857456436766138890059756309467160992429789463541730455001353633115744848142364751754614176432381410438348665136563921046459956463949721538062026467870721545754754900902735037992184115682328151750580751977577180556599810635494634427783096090363743701341230485642726268776805340789802057290515934037430379347624901624817332968059948939412516432873752353071533615651312216665232717242145919620856020728594156434534020272077589432048738114608300545575805281587514445452325957313955703015236852033537545000297526354634554215010067513261816467680543880239642974200457591967937490005362942523873889195849418713294419301375536952614953688303003133082350943083133113174167191085374800784055099944654353322882658715620680364204922835040915717899570719943577758893404357958688362327185312180360311523620477832831764147893324394273530165910165953421034149511202078500993582655363925872927268877268812680389901970479327285828324379173029903558824453709949451487971570933031913112543812008416276698288396092609952510016360358583608957005411089520483538012108014177502001516160729874500576032710423209480755413926036266072531168167269026978516151086703688735581225376457536692759975649000092866433753818543161909476971703081057212931255559088965956761583208944738328491682866089842349999599066179653454967181184322556704108683416969175468425799289435431436641034113831701097712589508828220372768601008176863051976194831636466152924621950979176689259936458365665352411919139220466810651468193509531599077389799096536729487669619207582972254383072694050476399368299189694088823748882498576034878986500323750727553677563605905690477359984840479500790737848898484996118126997632290032811533626360157266927244089768004757068014430272487110207715037130481657341675862861121491619400929120249545395488381730831228741803863306332644980491631124977116862766691781577113182347421543098766526384002754727397769257998369341293148853738435790826556334467205827930656623047982741874634675581203628155067194118051721902870607006317206778647723484979697161919326439134815172086781671452924462010943936972745206153879588397772239122214992544166716170603549869649071395973004301628110275725267546619600354891105738117878932982737879947581522339396993228423850525241850275523513892749092694936803482310323498676504825009089368337853777330439218515111309386293766585271105082370596799308152684252633129234241411257318399292473003535239424993524436783982802190530561266141532807311139411043548403436771289805405351900602056782369693578603053026620492461404079637734669558737503412450517864959201555257939917003370327324313954133569191410922633826368852937062980034029755019290823675073759568608037478135055628112237622080065333587716197851141609117511189426527063745190763395568409487801185069215541151979489692585034324170249527730487463318505938967440920295795101060358723356732558333811397042167486013056825792529474163688051175586087740704347287687883751427846111587539783280245240518372144273948499436718645476024080134154819527652101918618560947939330041155392137543210974749565881293706448588898225261618175023388412308332559007929668695764868072242423142813752611320828602725598890310963840249502952322020271409172266822190015793925383952713650912728726119769032355287391988670585009537866267617046425264990808317170865624681526794270736896335741643384236773107478343917573983467298398824806290267798762902155034023477315701303111864667598319852051641965130489365208296882720769032276680983444664767244434803803493028700326838618077662012898744688791249352890880465723100989961000907169436613113826126068068413064860679049842361557586184807199352751285765103643567703516733750748199845809819209932027889617100262782565132958630637343897872974489220891826125594303553951712973692125919960792497806474966688589228172085108695514517001892376952233994185527434308418304384190010257525244367228196378386709546021096027829920293714391421208019722945482742497312196376962441432474368429952978664233604645879871323648047539862867957157374336912456311537013055081140200929969870684766857359570276417112405011211320073046897262355125553320140197360024973976296489341916299177839969655653173352811320166700904071167621744623132059210622644830414609741965298726679328662635258237381399545368367024788626276711148179867913040826445611466452095576386817812332897024134014079127785064843928360230595637958680092918766195037508708103591783868052572871035521792313126949862237541814379977579349504486430798978075392859409929881889057166934925836547306216497057577263908374370516722826583084705953859472062580186055656665948128994993820665964390020426037381475912627964192392369317085524780717536866905376604361588518425008876707161204726667236488386065082819782708192896074464381435621638709309101754188883458692814066483243464984686331801295819618685846315485593568494753065214994140562964498057223735620245904498571668004045590437716020775552518418785154060432357958779746501930622301343704673704409039189492737773147413318703483474756970595654309924520220711012920803579747120300584049611751601105058594135979031488713944819400111296178156254200011869256450011470159991734887613547814216770317885853459090231734478094824855362862137785279263645078302853029125697244440196074637838233249442453438156066862700124913697255266654163322057638773492578962514208839922390420268684908456307427020391265552007016613676302776400175878239972294695410484562893714875963895803455315345676825955013709330880695629320624042062723640441440826794743956890493827309172347032980220020251936409969311464275674483558409993940303164063346688984383270170285063454116406616989232061509939366540372473183425495693491446328939072515457850462402058188855307390952823015269627923531273103451547140143622094029269263456376779048891402832696641738993119427791983101057597484993997940911238430065673194479206218231978974649444727214627842083088719618226932656506317034678462699877978663736677633332286388811770459544622370417856271243298721300178286174687073356762389599994627583540530668752326175018434002088649985563919842727603740087663954072523245122497814988554049820901947136209799135218271403835391008698384548197990942618868759261366168990832478557694128597000202649399657909399671815399420841532989360956437561096029023731513228422673136967699614384883781549328596108438362949426833805799651371494398248430831960816545979043183586234350551331099260112192597333866371973223733661516919599937898408716917449276154606811910258620171173889826983123542331884295749347991733255854776631665794735741183919676563592358830250751674435158672261068247470636964481768987054814015665488044171707282097480038613635132884385517041234147554338410396707499817426433306178933294820031028953629135895482866288965851643980644619550873592849407884352655701589799625966523809246712683221595330913069423943055316524441968978885570670138570318943782580893419698000849373341782277691194251960631016262610108191744830934445060221211084977713560815190451755757429135181661834880930580283406294749799188349656618572898221060262997399032948407141933913906522397583099651663734375019026004295634972792801969437042873610922818821965059621518522487703080193346871165869010956026184246868728913607310251834835359560216837666979394117792270699056387571253963457349601613581953791724192719477894281542271875540138576839276145604299546863251516839850337597116292553703492245108472438975315864644672830956267260250577789834912597771218114179533631610736816462712304006297065317129246886409120297901310398980215362440640469054102567003775225638976031107727219191323038623702535029959357837152465201119299315113772869218975608274384154931243212641117827593722909140989145786582355092282628494284177771826245130654289141705517142266896315334410617325534911281338289531904890910373053140171933565730159645753559514300736751515071962587881386011951938169000559992281006018074375351509982597677499675650879596691851985166797862770068164512975932202693596251826720973268806471641531737946451173861110384683466225093764484687656677275692816280535179179852798325480164670815087621696858489821417784248817174861336132228302367836148876072972130635081450454955469803925737666635172151866201240930166713271862897490655158734320923621511835191993620715892529627462842733425593297374793143365808282301321645998231947148792165195044080961321294956354680345021373717544161778248404007485631402155238058257260876653159085370207778990783488615884420713386789529127158244607279586974473790556121399235709198864632458891257222070226869764965746579094036380314128822801862771343979796511408974496128284127663758387243618195480938958968449176910294200967147989206768378267777067094299972670970383083462718530677753458579491084799888413406531700896292623962959612288437370245669341115267212030584821456873522273258289415547806904296314418795406977366368812929712463055365406745868616048268624938468962384966057812510824292809417328454282348717698875389182627670546878784508513726260292920244524739391104523849985169936395535499020223602720423919316186803555646355972592413678176214177442962471121576326295232513153361893846661497118296910719368159130585206442519183557451675585596586459033884311295715669405656670691711909150471105085573715817486162329528823182747895400361731325602689580281399164672852209363784655359570470703195167687556846358936777775024994531545630233008309059420612441290047034479025705853073824590147345160447723559774202338137689965271774390485235489296754193687731565659186276957003081049238065878363814913791402139710227722204576192156843217494965309875570266527341336612902291527018927928539994786385220383056362454621913897614693294921168431503335348848812125419265407672878377501726451764369717842251955605820422656042647576414308950653254708695475078118185247200728158366138023390597020745149039660590836120847370758876908014623051000577100909315606441792113219182341704601077624525701676227577454306316029105208339502408620319199999441417658321900475704279260709832343457156365434402103603075815766165848348117311020774829142470087608143321748259542593481266649538119854223149337773554474618250950859680834439998306488271108072957581231631148242804557984082918400513138345478072242873306106414822596318097351098374420359232531703639556690983839940527382439806169810147645214842976132491701274189016300546041919593546624490744404910630304453506434958042202721297946934427232281732266622608657603259130758316660607910435283536589500538498467564056270604190626389454857308783396872647161116998340584286566984401911847757506076153816493650492397873939708639110034929494237569018178788129257104204249806699207117355654009268720667854212523794807344008043968817130266925412841913460472660383481953608223093503801456034288179018213011204945499136533390911384682245747334703252447185255100621096265415778089917453388073870310910389701340915498587776968555017774378521918134628710622349680665362007274347988183303551015114004665285179169808765439541515745267941385614030128538067430492791444111097467689069108277915433458057996425318863506434794860784353604741076367844410664517323098636243688059380706612611418937148917742993308908642965677584889947140024721977568731713062916833419948493849837404709840081641529562176866070582992442504774050423011896211755901184904074611028531137083518489723181445568382692349106908137357540976314545338104619663476502829505207421497388074409024773768635930211960497970511439777088208743708946124383610514040348723612221262841193204513207030070449261153475482596851458727438877184108925199587994982298397243855952782529800770042915878306533166498167768833935763961408191699732391857668800275450512206086902084045945551123506629490442141188682607398432923001106501686690991057726248526257858225972434864809405562933607638214087580019749386133625619675259724559041870795114305925730027205806039850343278531624108044665806254270305138680328900959169664562953109739174886936173329156150290066244465401530461847213020285278704222574136940004598249906901372028358565687180547248680490047594441912450595694283689186267392776698892359385688209365274727675033836057603961788994605205827043081524207733179146219896863637866316636982736827582710860111109154108999651509085893990693430169926331220260538408871225276666996522502409201329182930828548651918539228515511306893714861345100620856704670890731935004856829663008736974373891036211982568539973837962132787459051808890858380687393194557228155347835482307641897119602342729362445296717541401399079916359499461051448819594686954248750623786168544830380485217654119588916753042459926433172824268103279613057250378565115869415192084639602524488627384682211182732358925572952121294842250863910031803528062693259530270305329040283368074533321669823796509481679787174208670906609220446092644458219022045383352479449555635966788760562157694525411193241951789522920168055992488890582542037415977684181700563342439585924186417387031199371848343839220381425465565759157720593329150657660489064873935946998339115287839841653204587949248574259313295640653015633308104422075618500013519744885854487881732040735738779141811887232810607899492411394642947862832935407535908736698904174669831411984529166057690930961960823406157571201112961806189216452844577230981121079043822000464073266244331647824857724045274452345158091223053143892911959462266123483131775100947202856714915365790630216170928636857446064365777603117976306700868744894063482888114996604744378249459868078501506992760719388279914017990649372283116969339960906423232909192502573269365301689507934689343442728247696989182195899389334213584527399198935337202675178297441169040361157414307675499029825095362405349917918570829198537133549721711441335021558554236582761768029138427887919812700570652787097304630112650340836583807395987075431382815562087094574449457119043288715274638070256219793618755503552278427572125190042772474678192035325572491566182185830739128622303273081094038456254421658098626683713130492419234642751257958347476207901674917796418974386319735291509405981879109378255323050091299105521668382534005021634381047453073935846945040059360062721772120787274877279770993478960468151808658937458476969473973162752460862536788498390105662267603981783178016517716821581729876097158256744718922881204031161920864150630955142591659341513970622893060813323139408396142946699125221412898198789129248169834807954550562053292232503391417357821526389589476624443306854183054826142497701109977706499304010663450316233894357777303781087431966350365689785494690858031811034294614468654857783871892250632035279422983788558875484197696989106793806959784506989157417440155968133823200146768798327452737231270078245601986965542903720161457771481689158044640517306177946747964054817906296556098882558302167268005462302640500449112745320369355080619213043333119567722452188776100176334843487962380007423646104972291022739503570648736650258066721010484594465622038338785302127074790735761031875822978067346669735958850827830984036339130592322850728944680501200295397563109370716215565217806393682050831424914312602464915416457434343863415466478156805289423697770440380444511844824808055223876990446975761443034517116187654345835635243292654949623145471744751487305400309879940737982653334088689523778599045799825610645341000236110698744867995602780292525399061224971130680525978688409251409046009551298714427703445403361889289926458090906271367453422577530695571341385783360218589860132716006699334422992405717943291394859703951689989702978448013697671274849103327378714532945104635567514725116027670402645471136066680547728127662054744860820199801778520092922298272403233854848821594436990079124668223624913935510168685944921661263573669503242305960992830264167492626291243527644484246219493923635777266944698716308637626711231100759598143460713760088367819067752795576686063549190252558369090177473577926012208901728598661215104276667758188433315731199399724907087909647492175097482228931989086412257244865796137353127442353520147655511770733244531842379248146723833723257841397503778884887212634330403604012794574913226247549693762718491598870119713013690744008638670130575129772199469266855324931744096761130595314450191193036655559245029605661660014565174361276793229381949730963623117393751162335355846041774821021633616899742760683435966608930650265116593322866040810763260206365788052291513070552258202310476460510391005260741708575141297575509482716323842600921521549043883699357861377433175127951970894779793114175955701646493745558560995969937535423618753267339396962270998396562515998163613072260150431503858391985538321876082146961000068926780291933356640310484311644972810433510657414817964538766696680179177173783264285430741409773992692429271002642195316172683891640520845108721531204291574612141472238883301491616324970431601850012325373438353046621534817944669091588511651562353183655440350986519940188597482375999666933600527304916532081215451933731372783896756790321355438867178551838881357393750433661750622491145038571787659915685926444958135301489296606276109341302117731967345293380269836519232985696592430470873566504460659845538562501831202740521191025865793090473729430492946661787032458461799276863746850364671846240055577035554364965710210543284059851930722473791263249589382806450536690520506976363150601320212089805303842213251608940493029205181105582517361152205927249543841310228564214855720756290476165884374039799948713909791605450730477566478855486475197380414145575897277890016253548650493560145766124559163028941674783466979383035597818182291254138494171623089558622870542808156349383606297786726598979576656017547175068310178451796226285083238306558277524056468498776300331770441010510680825646560042379780442858187528198722219189011768155059850617115211219066399023894143199340809602848101696739581602758918212029885300622910571602112983189543277406420842605321694259895101322794071835461693270139236147360350153830898982206647132601212884290524366777192835848353153044321728642582481120168379829786423452371247127072016637023475339296477191832372357769400962786952818686951852614238493266157275461415912127132451558525846926409304614034246497128959380437429301219331036706843392674320828226406755325359434728527507339584147508384054300083312143751875781860148600982601167766409321148861006743894137006022027888849284418846058182356165078850551750501104380080587593535638970064268844373957208751560735420922012286038976834756114459962560990868928271260011093775058088666426201127046922171310840359677590510962288633300807573942927215266912259931403229489015221774342492609691231553907057003402304354037834320478963617810232275585443504048440894227864615331064853277185333851877275023528471133540380854382801845217428183183683737976156114966485263774515406388371029924199789048453959483155628219241465549589546658495707752130423594986899099060988139367802677004670264668623963594619299322711722976552789029272629109950606914209547853293848985712989950851659933754774603013110989000860699162785442427756171635922924322086240985760477606252560813911991360958352301779803181053366486820418408813870224687000987939715167755266829419710220934878214491450791976309948525135004110662688940856427853859294364464917255188906992726589367123478834925990090373039452302971284086103866223839702361737968244657101470025874095209416707787290733936974905706459579830485185701841479289392767435741321067852654803236240662846395877411613167263281190262582156988214149720058945600278343310573362834142714556112834653900287057224615188381652095489945759372762545543759084202906509736419971770117617174459213032071777296430744835904708863665619193179224159984561108145438491782111999125669089464871493917902828641084931345098282835786038316697527407763353091801667930023035350968245717181129982363034443561669092367858752631227659870243062054509149990203482166611092705260353728039586884232724137374513540583077660005285889829649441921692700738374308382570658658610474058584941139347363071028107227467611013963904829500564293100716664071352818559284763835724844087209218171770955303015470677529941598010381028068040030238423501936376417068548497153441302536081378451489982067779832720592275715644206262021503933516867198176051890192218698638772937094522740163852645001191397782465453753499327199960235067177425075093301982417882836198014187503682462827254783991136800863485032487365019755430819666868822387485266064705405239210712773699044916459262972944410009031345376717398346858857086131092511300022152908682278336112106155867635430032765395783812053734401639809565574597828419074873374403998252901125171062797360094947118165864468439591678913710700617064358152472708246295872272701016987164852629407964523582135213393761701748055475653385730198501582219396366881294087638507615234996327261904421261079210106462251918557131424411064491402960953216626527533494184284484628808479436865455420188727093230122458181155061025377836806961543099495705892315819707316159114697225508042166493681774223793312844808118367024022741110945688343824073256234559807143509582847609785441297900278268471831873067097252611106796377465604514321800651668805314065213406029494278129126446546568116562043680924601670696274995917173555953844087669786760764842707972901243742282848414289977584025521102390691263471085697522492843250450840850221584820544097943182828340867679355684338768063719816145698386146206157516734583023034785629629045753999693544764110959687876613541232291956762765883719018269403266114529095876676974407665775009576227281653857662078046192731667870238146678043684728446730695344351986936534046485271559018149252206489766283922280691795629286745441496020612170578752949775954209704468440679754197300454618632214703551037207095112830762689443253915604776756171266995060858152308422216541616813132863406374489226637762794920223602839835906969510868239406335274405322605995465501823435654332155338436279603964957101499336002267912518093041374967331091459639626762724345748766391395791830163110332502496621350179857403632030163422318121183257502171284517195533976956519125999717551302217750473384243755177610596867791583187407718891638478470043017890851425765828646186316635647702220172235762442863447162753146579289964165330226191065519242323912589149275180494371855884387505442545019264112343660307919569666963445476401358323190885482680532486214884770931243522560248708489189450628733185474737575538369083192195480827661563378467280214409265086698648939909031355317522608397767820420590207183193026051604639741169566587656633485773260165200976740535793372281185868585179229794613754214286566655301255131329046779517381844659839030499241201632017593987310307285686862815637270056538234071431591457053580258461594252436206605455603895079107441846730802353174521199935340785187899662625764021958140950428317331004226185454169213026491038747759725353825044022856902260190262888228370449842023592934996173601611247638531169046689799660422045540200561025409220259945122185204929459630014102261089631682386036264845264284085257022370883414910419958495864876184375639671576719659887115481223072431292776490605952676325531212375422682243457015237122525902370038704018166864392236670689385136314561597464425362246179628973267063025029284924425718349270705378751247191158348038806165442324991089638272382257460452679713765495101078065368377986241976796143768125031922619696430926740956986421239363443419004112442892963404197197843885504982226846689386261110253127731837763807082314393467651705172461270691783058755994551677808075479881225649284111610494218864410011828180502526283336934496297891034387969114592788122356587133150604257882170401747684557244633999915422966345083619645797501895177311591033557568295850855618237799290607285373773720281616307467604325971797329330554987687914575653633467563361801490026759431934911475189041547464876524694877390991123356104929460216775300633610355887431329198927899067779217172271889679079307654986254276936341499613944043555542583701215264204700793428014069519740469348721915830068680957547051553531940138557714184664519079353965943521433025724835390942274017319384683902013074580386552469136825767240719685662286960345641334316895387627650855665713871204605603025770052493605383412062802685859382182040902149774259121877715411634914308160838200278886528050263279354543585246213297761536191008356226453152256547145053030641049968151151828492113518707181700546891593307163230780334745606870420052813486230400963149780390026023588160366422306337762775986918344944170816870398043122513351174723996739200897562950741758747650566020536863221211475980888499092002431785607669324848582485223076666610020900483683101139238757240740510366002034010756786758796938370067610007405410694108670181230134214908005403611146029121982955186139282352731070578222275290547124366734611815983229409918134658812572671983417023414367722731166434869324736333759818134803888842923062560716060207682039348664694800877897499041521450723143768197209634735238444794301697354839524169652440673845311597945463700616285762604249813562684409076350980117107673620103328895167278457184764797783445841207678132510535937070565901711069199943700276500139041962194233252345793619494266747249408914444171148336768061439472983708510549973148609894417063204106495647022924205385122002005354330178312917381949562455243611615991232189246834058308684415496964494799949487777358343425039420198606669661315198424124384229714589642130750662641124986541836309351511335929367103480406780268444503912779832394180318908565247374837454717257284832429641512737424526729751664939275921843765870298456871811871367990187546837100178978025642216141214260655082961018504484282107049146827851557824440197639237131407216699625424379725927461072314217136698318789412581208487957958115013085473232780913356049861904825582963102190336488704032621742384412718254322079697953481232855304181335269254869690488882160690678660814538789394137243954113951513165546833950600616919781943338872539283013098300173091296739880614012454638558098267208455531228915888256799394109707387766534251629236542907810143120923160337537430501489209763352569844200711798999037501186228047472302217293899470029132059121365370853416583885853586891033140225123899485309883537434462164022832163466569260027256729641565204437455867294521216315069722025517168360639152078345288162487093404392714274543109223392455841747041845251272727354024021683436163719393708537723767557257493167908876813961739880174955980258019625601843067559429342668320706794080925021140988867258412261761933641402600402055711755313997073078192047829214598674041155357221484729412278725026406185709465179120434414598757082157928054470969009903990199988331170203645646781273805329882783578521051732953965457040692931115477328250759317628587735197713544415932979988888436088611405997323546598808215271556336296428756118020814370315659426579750646502806603061132838674967109621047746610538437880987524881922337456626108978308848936044772427082738554013164808416697419665416657776524393116412420780606884122177046159701156247434779119294261447866097665328671845649736656214189012611418496430443574185677211404071296416571095325690044325799089678616972007751387872663573261700076878790638429567961098926749199413766629195985340006121050620486568253266905665228188974430971263063354623139634396531925872561527986893562475199705745692159910528415133999376625738582877738830026781714078614132676422323654851875646977197390087102877081698198193853375908533118345847806906478094378382038270773969233991736154721490229631051401026925914259648050497545026325759845384569209683686639940808713086933864600376232533002681855284887937344233391471760777780594305304970695428943764546078311631168322514464767664434392899665992139692728485812986235166376889729375150989547230288501290867861715161111902325308545981678310336309847030256420010145486970775955180474077007989411177498274431983491711726043370518538835547788706420338352758587218693972800397571435480727213099160632366806203884897630470433683986365507663109148225971613987434813746177195499696361639954662949415448629462253607034684561463713259895310780722224966739157859608623174661045753748261618589730342028888629399672785848810692003405271087173254691106021231939959893780810675744396853150676365008742233431104312160601013837400291858085641772631432310463433561117047215421906331087578131666900049967893409183826160607293257780114116947155052757536269433961186054312842827563139979618760282637196356658702607431778636066971213160661548840715371819558463926032739596114664676473067275373370622796544507570565133706962600057180762333646435187119469838945897532638719865122190810405738489738274053339219083477801469005929620640736572532566447719304843909493898836149080102073601405470681786853486411439907087732456889582923853332747132521139572905163351457386700805817361691386039584219941532659319940798826897896571199079483055734137863676687962750756164843173779608518690096552637675374499892544963819059685002936659501095932722244690857030969250964616197092044835629644535647318449751568922841286010298078021801432496615839272647264132317093871318518502262851952093654386700035045973415982768128738671159551951249949466646496385076630829951361508156563289246520761566195011658909241220509469530526032949166276672151456632002342178255732822509814648066357846834351957870007848938642863172170515463286544544616481903908397213091675314780130060226043065138913673304050737794682594127100463263292058639987718136367428473021750934853693834489727334036720952864529908729980419658062230312065734515504089531613139083296660806457142984788708384375207447232069628369709579907851000955264752420057803225474520500773425359445045032745917985628098571354013766930475570138924725752296911358219397785301472916559435971278234030438178131689856443945242464431737264308277426317530561892772121614247056387684875818970012994312416935094017860202726791537652613066563299171183196043483802337459594252114015616167564740251597575868246422908339699555684350278166655893045386379741512882885388783307647412677079334021400568070395851992585068272878724091180251607471871289138611470603183255504100236780382501333862905272491837607672153488523696076418421873559531646429349306615309937738192832418128656038243384483075851997436077600236721415963005868234809970772536660899980805217535074509256428877291169152086413353741723437238332445025227598156245113315865789938382263313210414597070646979686141114528570890813448202869471089369141695835185676084564111626143967107589259744506924235295761149485364383876843263576245205832367271590083255726295660203444095497198082137317711249484395814895419841476172168370526703278995538575196585559130081313148388015990614104039127388279177798502797212252167844303176095696064069871053606943514145956792014511389117104342468649276232328391719614233936590297914643773044220665318791589646285269065426707851964403872851452343803316921226969215614758358693589815685376524783552668432833243844154874690796020886928348353436496018239418302715321443395837712620560862697258767420152019519756187455436433406786839911614372735434007846682020655007038792643026135578572494802933579958318091227826203739232949406210664921807356718229518823779460981226015085801947019755278548219178486130008270508966597082193380175601978479182377860931927600520961152889990368463006238916192357492152851472724802645930734907672549581394798474809723333678176594841288114442208683036170376695147703901571827318300232960263118555557465323471273114298613150337060589842097004828476747084473892604082237427227232684849842715470330748103518007119053855495442280190054025586808253628460070245889593959703321438635079642605069430206617950540597768484865265483568903961720250079278716702548977532131179160337106058869397205941290414957771861155795458122701363990710773791949850810725174642077845304377490524955272495338876754846103796458275467277371457469822066783294993282222657229822758933854766208057189794059957014658632532695609490671829415510542016350694132957298071796137069414489414918093707301792207815090818740439725814759061938642849702707526077505772788875260266459556601757388839198433071721126461750957966704064811985192434453116225069220103886282243670163182369533005676112400834205317922727910992167231372326689188617307056723055441286529672449043939002958407476303807156489474232747194290390687206051340575250379852852366228347906037125678196803711608869752174503881660870179275962940215234698827086200477791887804232459975670015146716847067928574043923723178607590736563324997875283185463781233046518655327548153422771422660506567985135968410703359077683095694810245077528368897480983125055212283091531421445564279606297173599280152045560508383358707874318796530814834257978155457981981601038187128770699873896501335323735569184227413841566825930545151283511746941977589236457957407580222106050601044984876679207303818922441663380629138912479147920441916479197025337505048478034406528572920130873024925080379534592185314701226148046289630681050210769523445047279556774143622433513071529448425551554687033306121578980145275726111574964477203988025861963330846009422227993181880252630545442726037871442970918450747636149464144350252643297478839434878552017991807115117887530532362039676647432358069690374562687557746661180323761256521336044729555147494858678453166223776398777564186393698164430352261161088164233923503572854335044771521365133001922187103209621627675200324233053266716779030824966506936062024985536548551297805842259473376346163271483473422642808362839108965053228930410195407703432391244900050520799468780151871194839397167349849978119151758843207938798635326369749526903512251389721796014576079021320844965937192352625759663935799805339686675457103869936017084907328686172146674427873320113289566535519623056151662292404590818136275169476717510676449363272168729984960095678276449049483323731436318357075549644568905607927810421891938169395437455106771503045060233529565944945945195185723730207295224403901231731779214236165312707501530845690050392042376084389438879663794513863400898670308345922509635066051746661199989221913176937630224070821017191011464694557966814384882990953797415921655526355445838123320608715298860698077309562634627090353831697928362916422458676445767019757727903936039909137736571158804025921632528626648988273999662994695897225284412202999358467391716031499962639256452262136542701698724629583183314168616752883140755034046433988412940449602694989285974146013322819999105661455200872577775906348471758093771566162593596200713418901556451082439825717803628065153845174982886307831645347960989075472289747641642030078626522910312541798346889194029657940662896753275711647324064976067881201855836692546095282505615443654594322366885785143712199035047912541019063455351491288152556570380444942485914364714049803057183297065568132013706823613984458234770231504396658936707922986627100098837235092275350826554088871952820018751060747262563480721327817612229818582428676634524465477120174427888824334990873636496019902051022635845457570596360220991581498079127448759274016597439971452995911893748031397232431503378785844867899194735207051351120683857569658323362873436320109995403190789354088150272143857598912088121690972537774975266801047340341988745075335477511308300390903893945106784642839276915194599107969581924643934947223743547793066900833722835746657409367492231172492185206055093291423475052339814314554163929112930807783100486276807943326847907109858396099106129381620257113032521774151878513793471938069207279662370212370137349011209019550689479734158520795497707518273948645860113304745355249470735143806685162958381111558457266791854156388458712640547348803942763639363909949430001283868110921366505371297711543132448959061251139215116928364248502238323106609251988338183524188238202867169288530472884972875930230506145655941554498229089200012412412825043885184404432537872111053127196573245048244709630460880548158095764020264178704407618896987191397495359460604215530617246410686043541885955246494585325251081826071635085278185415378286357114350705077098064147687482160479581537478965658490046300741259687619896176298169645393918181676589465123320176618216961747114977938290219504803996069137520546794610256934237533336432438466131579698371903142899759791115684711045928348586505060513658397345481294280752686675086507388834766955590211013600003652052565100078344722933585894260840387297673942562053331711917146401932275949444383732328566840300533630503583560245633181038731315642988504405746010038870231573553381137324264216967031513850583927689674696124794700589145078815641145573439422878359046679632520225071689869805787322334459091017713785654765390585725608370936668635076594407365595105277687446481598993682657112703727289734366354283270100116545550999220666113957932684406702273959889525570492766878450775101074544651567007963266509619146291565648987128977004894395822479024248047419992727150918630717675076222941365732824791713464684612884936634121546700640172294261408551026510656821364562173385296672852013010405442642743907486788589221474429101460028056889610021894884690334349916112959358199852442546003180418344212025344565789781018285445918782088835128956355612844328978051235184829246294234701241469828784328372002459012758691595567494781759454816873290599030696508146557880330884164772100210336148995286569164511488148581954831274463772480544661890682932946443572204199684668628057845995443273378136865868283416321211779355462282383746177517086356982355454971594320392039724120120376765514324886169824477219685281611128864274307797448794269968120371358564311460065223335063078159422223369585519448360219992006299174392868452284592697048051325566283629010167051440535047857750888128551183740194750043617461358904927272375866481783620317401075627897887042497912564121967729531649841039463707326264743328491566240467563222811058991616666455783565393070070739480384034810968908745910791307850085780743283638460050899263988588980728620514357624371055414521401903467739634005196134330915505514654010173569751521720931737858811581236650522174581599613766293884659291586126389930028640696884431927874883210798848308184723146522092395124727135587370109445920206803890366796251317762141066908305619281327972615856866776413814108479613595101689467913725757794151078604386112470110911717036229065391813298890755075669148606570808547304493607441177608977433150813532733806567348395741579083437725989799204752823200959864599991093509627445444442643474994073816086477111767632739500847937390811860333969468536878290860270810895549490364015962150321425867459175555027060111850116595675923456686154445192171712804217542657938850101732469454319013916550666656353348642282367456156869467576209294474114444463434803943438431667738358469088623092569578797477465260983688046196893005958325585990802393850855260905755536125169745119688291161023190352809724223187349166668655087554754774740916417571967365335456253707352258930043296321096828087293828819994539921389947504941062069390078967970183415241742857784498027705534771059448213570021891091597126624547426950937630797304247820423124172723457119266496715570572054509210599734088035994309386034541486457225959381713081797664357544913532580094077602725173600310747875559908656159829686034972467688347784928623221774106562922918082649987912865927359362401235817864256300133877719100555046395264046191158193374657189235650628820443731014475680994238766144110485399336107498486863632491868699517553569584841442516120873220775915873109523616360609946626520496631873461697306633769904975975064301882001855190401643643137669779907144817380387900379150904007447562574920307802306594592674391116933787261017777921467653039017642191798042044920464664512393275070239842299149844700927459678856169150665214413316672154119981436012447722029959231963526637196311496610511593034433250980238545775037212303041741940791200545468998480014178439146754452063463492665323278860712898286768230558733717224846346411114976106537711348810106645860278024359948562119098274319772870604481548462936029278878663113285040298473113645740967124854915215954562747948408951437319106129392250428474243881908720674112012503234827164296779652297324537223329618717591683904007082161032388949529708811899297532804567098094119951608185324908330185397541139263949528018885196930006760710135507290646248932276717467282890255700408208675627884651334722045637377572487427730465046393560986049350883447429012176113378420061824772582420717867347586310414656200929298648389437834715292526379281183954528912881706655591760582464854716244725144978886979036803252645668918861329783878894886990187753620094338109474742746637756508682946175968328927070986579455896492781880348570736798453607378367029749233412411545608714657580135254070213798137290528164770331774667664174797005272156603682664325065992675844552648162403750049432576179604037445830168660626682864114349438962766473825027329634993268108246705636800439108703296512171564604146425249377500525435608119510683183674568461069118622560731294083245078672587182229346057176430302536784468875656282541129513523131692839613202423333335391795838694750538107265438515781626605591911013438094181504648021559203802586053927129778265293193919170381759659178642112022343407672839479165908997903846573785452410734005860915130555263304674740780523636433730052852782759196451658494248555065602415527350500146097800230809179840177177100299615699411104874490613164698584380793386080388564624659054337404175586722441120313384307572850703475468840645712533863042312465045595397154126854735137307735037843728804698844879143395197965850526047612969338793257151202536583654721255643921042040929540486969484319084787098872183437759290925190517548545909072335229837302063029560733792885237811787902951317484320984843527602519040783077704909821455984036482828079917933408413417986068357319446169737124184325715391622440027152253658013356255522726985081298738242681175344687909762414890476906107066239684447090000735696479382083941262508107418849345062874740486616626937999741506467753344657158494493768704343114291896801918027883812948941574343031679475770805263022119093169413788736324180326766870199099476127738354061642164842796120823513204399921792377963416539856790539993891290306175641063526979831030429942809036194392440244594461980320518045068640270206955058991979065154038100168868199625341783621535502914573144911094516868261758184769760809879797859032411659640970497752986404617392350862555027546434825616617668369010402317201914601889354054074724518668341360753948708114410925276183293987528642132353562473422033917364931338286077068074521878635812528401164830302872297267503695298275120224525455792194156620558394599690526838877696723382868991073602054219903615546769664031095896950900480926303779967185722819766987803607065506703750551096352176672476327823214746464154040079161164085393142109399222160770728007128545506883479346050023774014365343263245651089315718439647088346382356847089449853414593277944129945737347285443379017687821687386970761275584636585452916067683413253417476344742113516853892040532153405465928052053582239987994702191543927347716657911992346693836358911136657080004258219724352613420812788513214401023225171857461942784489195193773930924592794323728143527169139987788379711992613497760760822471102551962300368623896940143111949604382084069392776356269120310257612988807678844704318757921465127251376451252485781090675121820552259851996792563911066702649166795560059976491385653558062667691059770598713941416346439592281684472171627959525358977565870309309984239785972806045080088158759837350328296659172882577064308352137346250419381546465694040358428824385068272814709079938266478033626230554775022011465463549973413981390500399073499828260346240918232905740496006027571747505557472161261232257265114391734428414729444715547478525895290683854245938923370238532687939337676220107953789946763499186060637891961327432795126909637637440118283225229150869972394928973581650418215836014479394840113510599335995052571918750249634967532081060985995174048512855404705624841602396773304018251436451184836472683199490104613842227398604903711908511513429498559600354591213474050929595285351050149705130628589893959704865748437186628698361779720653192151399132963083866124022225132831338418587405208464083073746004306832739678157935441460396016585409061711016873104176590185919290300535161196409279930921779515851936997182104155835225296649576740710285047701234004138116701253531133334021058812418602506148511971706551638931629702896210493017482715568863266402432532020552765357895481490022383060755966747768330724680376473665799604377368115462876229098602066454774902563470871872920642182027177334861096271561219518534332497149610242505842625689984501887082663477830276277864988498225326651433246566645448656108024189792931390856777024764862138637494886668138659725849836046849165473712164512242973957632059890354842119732308131450870016751713613111637518967690514973327836421655559291012676171988018752024871193404962467109789888586957235412147731489064528711184305124156770821620382829016218656563169135489275199994064546102249240986191597616199622023764943677396566944360726076580550402498833204835855877632511161202057653116498487978134451393848210754362283856946305074391938173640022841475972418636639731939503313877552345401169960245940001319464157813673273103549169313049617623995543294578870827282910435334950256278976126930151254298573392807494162064653033306873902365478890362980055612108806446386915147202687501630841462335913662079337329065963122502331078442523729705340061944227230452080951860556233208821825816705024317318273044567710767296515833797772169133195402131757673583618821219853185319426175548574019135824886170239077314024421081083262879895770167628417809952330595555804678825848109118692899641966752757295829673713917829788902768512572598439046651109375968097411000890452973837472388993726343328824178518083019437133251012700478095952077115139900759939963745377135006003428550727672361080861067305543263474052345723690933565315068651458448961856938170984352608212065414097255338838558611685679606697070422020803299338337797867291462861226711183922141192530942481242287052576926666231330466559373259074111225945394581819898377945775272653629510542678650182569551565890063715235522622935048005679403759513041852381103416844168545911178715400141557953276817463546877312621028973204587101529447935727643712757131068946787266576206989912179864686255208948774842095363033687028613159893275573168884576627325977179140315826044051990711741515013104151768943465960889902925211285751473876856310126970428643218069438585510528454893458941754508836844788472747915905372071869201973268558933952790278308005082677452308381279115973071027159201461313109895682366371294255595689077042126561379816830701915179326602724792537545514184687530708239822721802569650803642110276918679209105277814249026910121349648004975554956593477137936284170262049265341546828284260905625661618974998793970018152527262752554689846152877662840272220643042000074730444681338471915091373026524425301302244349400789703548811077519971334988962190222454485638138441060723522629772555124531393005998028806465207327260592651652996287084564493180798165825461939730140389095493515171012790319605026811984017414862472359767850704063605315142039244040251232772028968795928439043681260369792017982617753113702430819504169556266182802573717951127178461433471132715615860203987071983233323602024845102911279164980780787418645201268221645654045817559763723136631306662039166908731883055440724404800052858528342584192454722214548508826869045352969371162219250580362334021516589995450520997358570734465951570484865656098889583424652194787538164520699498101934339824906248432383482988036259807012900725758539928356342905054757740090230002313453945790116822054596203350796390527791163489977011779448661716866898149572705602257972298353178798334767283045361265203670697734826399241264702191668849523955027069858954124117681840764072496438243324484833475258808129819812767251881109968805499036932425380366234228523580586411699505784601169326599088456405684343138795580728861859711562048822238207425892110988330337140617482573232528735829310678381209679409969006926537218943122831631136390116012779032705610133856153371624477671331218012027003022865128432046788087632982235961132248156264939872393485600814847715511757936180231875170389300756520922134814807718799243217273883580317077765261877188242424442254031388215126670614156464606782533300852012827807117199464183220358564312314049344034150553434325805663787743908627751557416130942134025475751597471090066746527633874390211219910231552959170628473017942055815206649591148825723464792323103974138398937916340979742453528939032881488751793610576760367087953069002843815338367318716888803876013867383383817994831276881147755016624145552117765048829855651561905325337241010062160537594401750701816418485605176938009258521499451070874237530942182021074763432769102406401070332094844841406296364288460262854672038915618928471146120648557279029141928297260905501296184205661292220390122644925231072786558863237609544477734138476623853556865979923576261936164296305430944186477774317413937268676284883629223021981966833566247618530388765962467273630045962589874872695772235060951082324328305124873845609955284505407747075064997092053113187860837494752241309608206673065730651975843673446332329846077457972129098263032457803325396403910939499962686568426146734058422941473577637886607754680001264659373648595872784751042962715855792930990882946407001492088931352572965295363779576654044012644876935488015088439355156468385337589969409593979457432314337113923182193672795121207117927146456679039106580850214217356373619642900872105567609372576221510403191995487573945890270786174833857055344685676972186007030442256946735878959849109404354205325004274974325389936387507374682617471316837688065977729803685115846728063642123317468530804288681030111852900640598687916649943025517541090578140161651179929554022532784419791965928970720407710786905924996529870885870213234757153525028256221359566069029514551822248398927538259597627923938739891126852882614280646435178325025003122685834029791070279582054116723625125918059365687973015503620481778996700554002085221350161656414646047098745500307247641873097493813204720419257911328302816063484797520413303831470999268139761927862084606848893299501659967675830397580147256965695727062427231031204432962807548741041818819289026577656322603578040546774730428184635311315249266424107488140083562402593881941232393334763419891355932532655781146202703335485986276600610440984551454548515687990850107364452357602341499610236578054700804607756678029173360362165318456531973040531395798097112420282354806750334698949185112844081793611949395579048198592127669362051913905062057710702285305582244487397319936018909408333748153086616151995646446162742808042483334993618799816753254079069635372422239958791692737258119143962874313829529602136186639358747607490516236523735481452637675224110585093193571847899895801462551789411002015661669718862888428785742802659268441096777075551228180247019708691427088656183516624217160579303093576553832530067795578634672062660365361391312576809824884589739589248348965816477809914219549982948397454601550383237378397865908837329735795339394295894107425158668060596939655792331582872634078010405265635280570180243477107749683974629158827809242675023834636647829451259668184053306409530386575342231528840859654383280353061502433271654475593733117576373481949726081737922846436958870123737825287917851250673092981639902334173394741750351317458164600866075927393065853627384024121931070760272688802709091278606416700662527445340068434465748965618105373067513905698785245420842748541159221374907300007313271492482525214465521373629666380202340503623999603254056448719966467969220703262743875261413345628357831841565266359839382585763873843297081605910748481853552448230353473018819282245458035605104587595519745799595982438692131739735832785939065395732328761681667466869857274220504991151500501814522247029141754671625731265858348443235803506703025730037907040729143604973626663392270281110421771885736510711767328167080920329990258689295026420982301264605783536698815768276354911672576282415399737753864699898402307747170455227196774477884060279276120270040351591647516025263123968198947184107422051847072390069112848778608792283147089114669539628365938362463616936426782310435957700471623742982539270898670088110425618263608188008943405555203851622295043764309093896355671302268181589381030688373290444498836541501932700331611051539677162661442536377256499695149817584134505719132928638737808585706694800662097024567695615988392001260052790664848115434959215177966811255650002657230832086725086094149504973854819227057488184698734379907490356229320435583924863755713118554841984027323225936913514969259897441094427628045399539635093882835164789758648709886133771725836151287903882331895413195351522790448253806322893994161335071660925930975870984281259451415243511667765590192824928617535908220898473569325306681656055032132761398970994729518503629288202268195925170602030124481755614299426369310569244424219101951027455335186178443697504197123795640026010286136679191441136881502729684466750448943786925336807209417877487147337084899427069037803236602791395241070160306183648172870901621172622411344890581467420459237141441969723152411705204447905569531922640703021295199724444451752822688312616041637575648972956337059241588499938528133617983297938816240935986493405248279373848431273485289859369786156235204247794287451459998090811961094856374661439516476023994150797638158998999694401861384664320599274746651877521092591594416858496405884489179434429350907473532646390341787227505951079618129175261672279432722590967034026129958362653649107625914760197021560083172785088544513658034658532981500242762641988393672879302241312250254619620768462935470136552352712457953816053486667841368273737314186807296466073915269585663715285615798421062135951015176728435214310835850745012313019504925367218509440571018483869793488058244758295453585891082675850000479779350268053999460525662048964168615312392991743755403375440563281874506758630028371619622294535569639826737965405705132767062466325839005506328917909109193778752787256170151715755477133543861301417549456491925748000620296274304739214319594213413921986738071143458716574299924512301103669688502242225179087905322663640287462837479895513238096177248842071870945693828573357792883900650684518144175950038996304461030131122070699765738096926617654392283562054876174690187364381699339664601447874137019799346415254555143247915728778660371133615517012042937449539267283691027472745373051730305064660783457766271552097458655832572328820208809726459538690573719215742782960721716394654329470144941651407820946238584542588154827069423961744605437983470447407958981731956876780782775441510540431304872282640254765248070322927643540939875364277016319628287729855650336734365576829885524323897429130477456337584106117826109551405648656788880901884318197454825066791838907227017202166695302581482467787583589191481488888396607531570907123700771484946990477614263553589686999556253892218722140095300199814137729908594638267350266039388543137661484421566813364663738988067456005633259719162577381713117033327227237277621653461165358029957309592755982123125115854696159091640666057382538521472520404607527838601837288063219014963980757017894206996716576123694437584402503347776316299206973948101527327881278506181792109950023128449873978734343687634135546693391870025895194565875397310916817350875874923488003307260180333379320431248978105670395629291070709026183219688053167916781817159517841939965175433443244279244698564223167185357939907786958771082229371106116432505003440477199516426432666728875080983139809864789170464428086884405566166663384436664445797265744836508968176429004326468874906210530805366147246352317610777882326626300333529322742420644324519591168816169036461947185876103334916147451863791271290447014278983803375388299685217996518404136280721916220710363563097742298989932602331318356147508900343980688716831569850230598690477709027259529389874389024387536124809213429199863190246561316670844787666501378661436213910574350999492269454812987034657785746915682581791070698319773986341599604502894132212371253622175234622557194203151968315880226089631270057492249347509512482417368185481489004745219619309809191400997051232144589732818351203667518093019084188703385698068611036519417618716705592628574291903324983948205232452438467563834709100819042239175289325816739938966960934421508729718406491264485039454066349280234791399602845427754271461811264273579876586940691973175051022316096581302835331244546634681149983562716573929322171525991010853053395126095240536653559514875509223286921241749335505506087842542098737932439084108542631979686134305887615020883135863362894836240746880653981281987122581154766079497623730111269008740121224584349324924967286868497453810134467729950517238110152173735163404792451637494757902161833006819377898932974293271753428350530037028710688707417419522567325223793596333101979261304127339373068829501277420370051805623489042652059958147305458896213178564532879120505283724869481996635564387739128409223377460727194668148484745470993611615059347041683459837801586258957841826566330148957849920713976658683526140165225291987687127055343819291312636616151438929418646044284823566654064317316345147996447671311547258783338588969204849069099849327266282852692130857986875279856089839010658791961846834142734509807884263347620628694688278195426539590622721850564703824507523604685684875000345604598579982583804687055071024222959481443570116911922883529427943677270600767266169088854393309108656664907520857094506334347008978013746057804985847176407882332344891745353860211114235341286159002290516945349456448962948888859468476679972240119255061155202692048734590985500520509982830029202815617593195554735035229768274958286776565905138603972714013036718888935608376109090972890716558370705825532879465788912044141256905817001811482605386703032471648054663069667526985728051601702136126672316506579567167507590833176754868113181662088685706863820349378301210666240195702766459219045825607515104383452170716877154716248370874622458207186387792739996914676035343763005747573408525723104140153783151362362176032656293477709981284284212869171225231061126800250861532203666650245202478424245437354198467875587548396698269968946895777195814798948449994145185362145231346335353756011079864033098571804427759107701067567283579633605306714290271968201778662175533831552577464199432310728568224167542513519143610104507874460620545966678118599072885028120353235301896427523353857115946514066205811284083072343354792730808110848474933151585821017456719751058197242271662279590550484965839324571416258569686972719784847703150649995750478872845050166570388304966708067955276838133616179140986023251700708162541765882261271742690322305779630060170651568900879779859771095197913775008391361954065880025017913623686592449141209216909093753656540433038186938498574510854490530387370366662956796097604006399955799929104938583805812727266631609372715045542135030290638891631956176490518806955828541927831487814071990989109324895831927553541865314497819030268058074668486542253833529470990607275006807882416270080905369560523174360359963685527091352054644889779238149041962511646388370618022997321478217366753139788365386369590790804792828240204337476749738595572994228620198852374191624555888469458481581459376293202146188003013973109273115786536156183874530189718688238236195083136412959354947889683550933666106526179649671403825253138257207234033066248499727037786582423854779281360780192095393399747659791043398304691033017543017340499105377164062494365422343214244792217083332810369264187369655559229992066483176401957982789215805760145750722281117241655232688018780612184886287935899337051371796799329415410284542431178819324740772666770832880823590885947773121336058732434429354496674036734104818003593122694209958328516349857174565823184508286317981044965541404132723041948525575853280144840930521767825684080590871590286585888102274642056792719737032330410346960589445730830566223999036546115798322441466098248228813446719300048089617954978778740255663935130606702450533600503293149205226482611376680018558464009169825397523591712583995090988821789037482814296685688014074673124298581822140912831504873804887145163878295031058748558984562854777870996797099822113777976048068637174035310916028850448694669882387313858773668550778644445348033571860073203245860042422561143329979462744699977237823611216883662916305889220902926027112902975027212660281365392168701787130628885722072012185403918529518629557114323110164312642039062203004732400311448484896180191140551383492191002778324749483740392788163253547762742485486478355751978717668289578624195605251731958187918462301280900245741466010756021160394495834192047308576838187007259526260608114461311865466794504938312507294797849762001902225341503456531828553310007671621349022171776636941349552874838019034982356403866004330787877994682821817362702535622996706845450166638725144676892373606710079889487217097058213368008472030011364701381778630433138915943616918639997174290829902459743103930374904365098354863996332366132402803704360308505417419434384108631864624459299548960423153814369160322783788798563290134269111275370325791316349471461928533451744718136382009578934888836770682842656731357022733100526180539212076310539924153596644490656005600227073613518231070935428153436484458682966602073710431356875088522095758080804470036932198934571460097867255752695409818727598618361196775225728635039366821912093902798824701538537934029750031171168252545620650084091428409316149023623093144877589878556010640996580992910270417541812957424253448024222978260272197104297048936786960112981475518116167258329649406225381667541451671288287851485784821618509954493896860594873187140990474757611930160770317283084832581169249879009491647113273759367987711405862211634257669444806020347505429154528577684717788471232269678233610989484103098571758738003031632683478054232630740020117961257392782135494359111143846713620747781304644724784589544216479269146380858748540143194343082602670232020736153495501607131836723649939610715147147877171712553727277075954280421955528795292729229167679190999493433991722342769557198458542641852962417529444541473395940499562445536473060160964068648157660066606452841483377378189618983587553764376189793745737429327472802560412772504603422458846850482060969577947485608363055824175815065967909652844442421809383077841351135973613351741532033335084792684674383132863806350442472855211541546262940909178485250199497181443494126591322500454211090660669396654184994991489071655074217036410781872457338655467744932124608797375863478529427471324452312092845322875921182891010898747099745653148614182198701619562339636534679366770531517159252558022567077392777256116552432833514326687246256527475827698819147234086656144267313151374558831913366060272940864915966939843218226807588323724166265698742683667956476216085048558351031392115581759333365749569612286946262948810461311999326156971706497236718278837002597264491799889206931834947551359958982598606214236209550356373700489262821263511601740307169393961188782557621257899983086910261933594835063530646525971372155883606202573646582770723260798776227637193885518673574046204286437426005813674898423485644645281321081811861223227538732960827879259016179605134939717648646489724832145755949270754719499670905271469982590805643475736466119792534114451354366240417802906980698406821494613726423264295602777020866985741913724183736160325389835383727248030302843468155562178092018660252781384108275732358986880907988266726341634299115999322620910403497364210311769137427459829561676864437976911663031626479605551537051388128460268928901689513517069188071423501326744025779944082595283853540027266039255937495028787826123924137712428670158686801391662348533585280506646626741285963225306720426528718184527647116803435520236907442556086487618073135079551783579065667206122186327643214956268753074198211029697133002049898640319389351125179178325830393087290141188311482041455612620462575859085824904588690968149126927457103117185624872159553037603603102288178082981266036655247603726874827714024468290823865628597945549003183385936846728292414929902423399453999416093323942646656482134370915445987334308713781553025745244111029639330409330951335980742238700392693421521877576645692786239675055866345413471453198988359365945772211358602684862117008055257587168729905751573440909266314687346182275983286128740592491435529531221387704841052116694051980363326565219444055737396124091372836149525085206652334876596463022620407858833549987903136987702370350356804007142998686005751937444243576283294000239738995744922094395877048981793124560131761318976193916355015491830720763307760772789137389148627765715425946346367136407351469744808976379075371514664138803199585972026256854897315073881137923512746582030069756843277647563576329746772772618247048958593470091060372751831032598370252579923146032631201698710575999080788524097364187464455707702239113254382147639645677368048197481302956283671203826698713267587468515985404772211829082975237865174429289344225823246778753206812923991111295649482469259936584288316992838360763127289827678850350404221031075722398460767286406361484185778329900846014310792758018862166648732483414789840017497168614976797893521685540497184102537290799545345168461925838569781594523752116714564389795336596750120570925687975747491419500062463576029763721408726868799540640750490109195177353484126044933447233236822089169383906247750055895325962169168164294138089019327749200596995154064225586320710229654855708218002209314500422504834042713706870972117741012846699694740828665643373896529419558260966027182866657321307907180316817665027288155414498802211685852531705224607148864865563043182459188694514973001353338206947031862128008597642061648478415109494805008254612522133271697399138033546527747074915643588987088763675664257062832761502619645476277720370771643726610340504164663332852165905268841096455465096491930063226537905753875872115811847254891580461560554315370139350352231292110948722003136907923016078288740309671526165634126671195955775421033948820936658908824281623970535688410876748238620915447400161018592313462569472322361532856910970725546459830439519479843757188601096767674185173017810939747439062572397402107725154072817870656061160117549816178561358050481223732035131062440451504744508385699987934290834162569403545451872401515440976106043054505118444517180205188792892592875776605312915443173810135144591325376420664737480462255423513963470317244152188993389974782829930213503178237149200371147103830212435349965240736266443632548521401642064574611751616760970214909859927434543331546470799495698803718510779453057122324483109833228893815435275602759431952697880798749397731235397700670144367644037585166570615167519622549397911806413297348614581671282751522719975634972369383043760621712039740576901541848953876096657461835380817713255485298805748499159498750368467957361018205939039207714051011450808068459915060392612945098406700107929010185579656640400014986375114967492013223896039578621920773038803124678973478975191778190323516668555105370194087075827102537976599986179842969272788534093423445131823977961323561710400027902793827080858745750986695627839942615251287697712878324773776466613453762324159999209998099931263371828801863015033168187031897233296579623555512151966834067015093163456825911266075508483894201383555028459551716277483984463157485633420329330367369930177568666678646384751733514020889577057793173469244509480258799110227255812687401132479609616252495429244349428535142575631497409105037503820950305936726291266631478019489815265013319114133925005674536831334581197577772454461476241900199961601961012995187959888001590071778350346468677366037611285270377404399600452610414497059974763753813194182698413114444140596062243483191568593085884770069150963930073116431919712701252444702092843079801854270931729766095863838796775458840024405252184053232951256538252824352432961861776725243165358393280939027254962916303031368617585488137416332122418826015124747853832964484996951768049787621696774235067500074802755418401430126376913766664424922884113117321122916885675963647300427153483071236227820846887535210678667912116059302954169104927904663938436041649051898787131592295747609745895826876366222911192300984076748629048985607721684482374086230932703788074590957413526683648154406216601044665550382886174380269765091626529163242325342173191850399178261082664547317564023301279703402042698710177182054581304866353390877122547753185564743017749916055078788230078814649026300024690003305192808368631226302561617831612667096838474234430259509423577815391463578784747535018995622442804050064219732056849304688024337685798359825102509510321414174262048859406604223236001589221629264617699749017244199134283660878136478583476102910457279017578577405207551420038189105184976012997049186940530699047514355030232490973476669309357991539247523736399291236056983540516697568091184588628499143418955094383000594368210125499754175608198772969201184229095517893607875543681698855925021224809150966541601413760897955060796756958233111918044896641876035824917771944050486326037317505520581464191597481650323151533130734652585183994358442409861877412774638530279650698434741783499005317654614153188357160418554147333881555752653587363235892996921276818304011482534012934373455154990151156159166318493801843606284999362461422688549612875779430670439759536609367586225618913507448531174487786402492888832564735097395423608852475418154012611438266401408007214959996807165952634104606873743366920100986073759025508830446451529588884511369501197570100532936465997897918940609472429121981054668947995491032738483264080830773807121728197980757543092466773615051328922182316399112165652778895212391459299396113317127343596909331891598204111506900949569756496047645507567661358893011791570202537125585200312589078768727923233042192338803511798100723019237952698915115179650279466165743504770880522996771461956107438290293870465668055898716627744783876222053329680827210870821014146589548359917824625402319235627429800401079148988460178245169329252573153690659095819860677887704124166620847225305358776417839619815059858246236807783303499574447550094170472126217678206426353388360627237601667907926491405905190240323519899174459305035173936702457559107129825959408910548110832501199194364253678753987859059636352735191601366838757378372438714433620370238704976239475276975151294409870502983260671279695645629815232668356467740129887080957608239519196051262571848483236519352173988627645866464829540856697157051875269200068953410153765102126833798148359884372400961933465785059066263355396524047385613884691664346288713124540084612277589731055892313682929628028353161444153471308431441721593825134699270432680572253604916241710265304511658700124242561967713689325203370614216198937215287415716471251469171650982907247221365386632430477888567114471560929167442680181065152787588427450166725971745688751992509663347720741231448333553027122885531994283455333867144441785540592135125058566005487732235023014289429484250482556338559306569041673219842668650954652260556534464237384832670809864961504963863537812197778662333424583009485610209967548036465501995245104171033762665696268076528030453576782436027050890588346266898205009213275653942250876012655824953663159340549285634620780987188737238019681275515984063854454587924853780219180171843813254347348160986982745412891905276758424492531599993584715873932919228186328646690279993539984631976164308914128030906810666958481349919698589736222170074267363261939535275854153366777619680753995006102247412764529103399857140019466835165558771727623192558651667148038487977488929232009359440842170602044830977748039465449397461478945673821207458468879971631387150584539357478082332207109426896190917925121189513021372635012283237445385835808519553686038610044267510219851720435375696271385586556224851794814763557074016892308174304128191267431889490942763212669538324422118638016085630048672404670381657389961410342446432371063486045244634974670797302444327736792891808473442754503693071236376248696720423131559054839534613958306014206795086535935812253987604394282657159878531818407086965108249787608441874068547905951610473967320925011084565159155066634911989340541265835578438296064261273191589821457475861281049311801590287613120431854081093121107016242517733624526523660031316326077045093904785772188834082855132044843825951029771001169345907583381941558868067619299755552022561962020691563619643878314631936517461765047765370161761704534778690466546442690932001057163303018011650920570714189919475788903042841302142723560619102320720859040865293250240825811663298818967745592316123459880544742294361625903506817597057594174771967200060949366854191657642024566497383068249337205927117737469186764242245285597589592005781667364560474319921835311060331167965117340350358221724506301749223907917260300031516645303503349894744296904662384358394741825988701680630778754480591436314990912470646267736341405162390004020082263713298246403072877990730266808551362069514027831963061963735030174917907288696799118384270366938044432740125895864412801944097425751348851257768398051540680270585443749611513976516250773731741370516922062328650077400476272011881682828011943421934577913429828233564770986985692626586610377413743964475982426786395211558500592061022183159756755439602077958163241420576685254999760055125186296562059025229722324342880467874083332876161110764766383997248829072062345510066368490967093959336074009325672082237665582547626008147937197941581153410154058495730949704539902388268302729078674277582204286394610144432826084714076844511289085086210331857657796597056825456869187478112122935736581872520189793971711588435883014027910523247363186170388970456581721735286526223287570599734962146839431874058704425447036165128803823012379255893676224716344065407166003225286794384783254952128687824682711861116978628819701206383917569696934168270515212096145957541350261355634115616017764640177744621177063953676075786405826602133622581616999893711453986349685765331753739436528380319581937241017544724336031848361486797522936858291961574344184359751912591947882736554889341074066720862479493285080859292648156995426345175328736773111132105200084688461444225407308137326980717498255563912236186789175229370171926432825379974266226810953382078226748069845068685473771771206016278849474892295951541495533257256603989021672429204783786479020893693795800013693914545736633474186174098365564313054078636756973304417215385047848102363182432191094117696889419435445053218113755981240177959776236326461394990955770664143201812569623704013346213508587643313613285057625379104809772266096814023348876815880721221045247270121531279629121985067374251847457768046294430315874489574997575061665442155786298783783967457462270703863458522758159220260845846651409754004955174726435004157967196492379772042091032594276662991396832496859934223130357469238177773080482341614954522287522829861269407994744198503181929871969772170874133596406337149154085612125448134488598415452630510600631978355290747150760640488846614114499109619597369165608745378285073151973529969630967897654246512961852015332136534009052275458459170256559124272516268944407247503932168675472498927916253419328033470094557535273176660140951482557092984269567367321512948748810287556412233294455843570997317259833998738694770586277184529350321718738531087101986116185287543688139695771380945369173511609680592081978060663681456430024388322657794153872459052708756209584700351003811440823039471237279610414640635821806517116842722837482282993739385488249854192466194811531481350584054937759468639383481272887204257894453829224850007257337515442319299796664701241438457590564849646730342335230604306874638435142351734671540465041464829919806017675327866969073210274661549315299652940723724001142200902466238147568609186845309430001006677997774447325241238088058011495935358012807455640891196893220280225287717884755551052040388331118720917599920197410123558053017071607500819151460798996597181780744517128863670184369039228949347767248391011366719041110486350113091937295941079928712168438408372074799901448028823829014247319523291177250039058238304624821975393589488330769448725862508368526487805340147383658346743022473009057287021338853432050162696437528535613790892128722334981019638616455814271227209890168737520927649181929905679306636479619315042478557050988194111122401847672445345515990371759871825559678330854333415941612078272885002994660085387200373716697918207298400121092313157935241158134261119062868633553112580722700887838913834471164995496994857854261865373053599670366893369148972263934330392193898566097315411761008070433870132910597769219765024900562034777687505758475926829264324491391072552869097758535896900678084890507484064614920599270368269061221485706001336257571880871743308035335994516154823287833815644145902686827883592347281441184009565822623783448396136480009024496170051827511847416705121815282861811826369555098208521372049804671343129584772817520958028345556422374891869286165563642734047785447688316856696231697566387117774682590655760063140293708871466520545013528214900214500877279699243091537297535823070900396100488751666150364474771439736796441389113255578757560197552767171784237390320889796198872516457781808212658513199825700716845213068430083061145015697687405331721081670170651394588348760709522768227767230070965621856782468366560976656530399972041006136173939468665349405198801955146202242044062214388906561627081093352995482311228181903883057421041346587557905279288963674916762138836539933803574135920974688806786014174927209945993842100363814656879632218719725567305147708318038889320658210732058298380287844995840291944267934174802315305716477137112738024298041186063349655361043508967491169031795423490114781187242632092203467253764865230552211690606850118856037437217079811058047318380105661438431388276097736724436957224354678912932929141426843526333524566684547026347619476638511874304000669863290051088366688343997950881164513859053136617068522324709099683911067180008769893936973988437654083691354376300362843109843357738095763904842716297371047933213793630629581923921469572725078615622629122116139944074770647512170975369473903485497119083911879354194142585674646800598774382167427712171864506848872930841198747386128790674202755810778461950097973561881618534931167100317719853758080526364169396156147492833362028220696959906780366575727735241989433898628655568076849541907198094646188222980862475913247157798480062228546950968891216888823717404459034876672782238798356890450173399126854267001440507718989315483917471597719564229589346906988180488890392659300927504207478135880920238660942547195456940736746787953047841009242319864123672531339556197534757300217195973121558306691329059635091198805862011659155149963696563155439136633144309704012291485994462017839516342455458172349329442345476587579843295643288024298769536289549445276294911852252951352381440889236652306757759843319413113160683683313702711148681482833691972834113350946990664957266828647021859432900781538159296391086399035909751819663541162964991006932071469453645432918988434177444361258988499820611089659455693032441271196386601013079616010042837079485474677286631077904462364228400204337068547021911289481818554559884066140686195283024453750349363906717240339170448718167927811644040584055949427826852990481791991763704329915516599167988564208224962099684090511731307318567167373989189635422222613492537866349839068637098322467972123382885450580146604142110530231919351470899510128201322520563179127606441794734997304132424554315888705009005148757729432423579994954290289600697120756826948182586266470151256611565673584846092144188801695807781705056661636469325675994822677290483280127259540234032006419283383491021010593408541647895497673793867818570976881697791144066926706298138588979338166106890125043385379428275429895341282544100679223469883177584296111641728571871410157262044323148029247514084699420872461237016669841905972356828403584709529620503061072760707051713506215109966512447349153901404199922201988716577774314679354888522950090082402244416542809998235163914268315708865817600321387464758196000396860078887992793270757395401492514075999285077871573452150437197883454907129847479322903797474707210647648318284942099770120166076661041888725194767009025621017082874950387007088369319904178160574864657972996372986599362263402114435631727019211359233558212209358045753255401679266888691380356103797911097018107545276230403011312204780852518409127682749598671965598413012730777252705451442166467147473599821798286995390126639866192851716931904836919961097433983195094392027076933407501890914826340483466124343730776678683106292764979126698917058248856740377747699553924230506996831319853090201432052759439389001031111156130116597643161884001498112758586864146935080792830153228831561564233114776234348406795240121337795443536207783024699743862887023701003028576116440575119516043173982232629189302438128039883358958529097485642049913285141886780220160705195027000949568919728425970172823141118529741403353624838632170803194285271752202674444636972627367479995699352122012563957545956529379338436255578161800024065195753916382013370427433804028664895768081427048862810395677055527529616978900943844340848989315387253105870992830739140854603716077087339333726468059697129036505197364307486026299499875576456996000926224545531490429943871380263547810738468189439970073817016070512051094304847832354409632216158557506169090262810429162854873366591692053462919022876306802716290399533922985726312942276810136023636122885633404630032961846663938362142839360376906855490435310324151220764476474152157868110073248731607674576896437844909127657785078405619832337119170889929596060877488773755920023780869551768703630796568267388778678266689976710722431177376466651113048399989196498071090393442729263497685349416279998963536787345005987217511212966950911737962393463267888537752143151900710602790190970090566223788000833669770985159166428234267579573603321897533966508768199576980074200982589299053741534472066644040540560895827613750164954169208766685388543443635617057997001734732072909723723556124659375621731010983653507388263268284131235833162003992279958772350516942809356447350760886205345575897762401202929576110976969080344846584952987154992943713169289422780172854766279351206550961140494672908735441411245726795240741230103180659783794124118207913005450756437432679170528359031142899669265753386003274116609155030400623590403088735843726625704599523489292444454335616193378239844791611976145432203180657104843495571441044494091352814603413775586524393635899226042444515528568206871733710292828393563941269370330246935434109879952248880193424911479690736391732493826990157385524034681755238222542707351168786337763282205000374346146340989332290213307068627270459425019736372888152518329138256487840824923672898472217753770325894421801158889647418045139784230843723663633635131677963532191410698524257835968748076159961329552603834141771122999007651439724537088550759868196591671138696751047120130151759274699106615917656410584097473889307787464212523490680644300829391082522669758884821074215860989744207387277853387972440202226132208599048843860472794794168085627499004437926356371451713179684366465814976614137159115866705754236024759365429401777069948294588141585892957878227571329623359719073289653327857570468937076585895549055432464943820940471963200563481718769331671173606234623927580200464581789585962336329352727009506719931246063288846724186720998612479745633729858303782167796726912624529526165584177395996369881335263901704743351385587775816590330072158287865641285470031162941942523915644668157617883383948098961877559800142196082743100619505347548599583404030087029260485386381160076763673252843540403916123694547844233093480184894754601414478089139517265704259910177588292491832306794806617881556645488722584145075110296119974181771758745711157828654176677444794835107177901472120638447670681836956848825554160850191020973834767373931246334847628664241777464011704241998550871291169424886539923911221584880206037561153692069553251029830885749693482296041992437846178635723880517018710933710644109759434473592979461010704495011455931413926226345164836629265931011641269846094210145328821445523096274331250492345616804107620693970403146428614059193536018223954363604316319349092264675471493444290555657954394951439029199552715726490796376426281699863194235287587378238120502953252164911678085429667867404389638241917509580418393737183298998419895742768596140118384767908566995371105798458740727498073738743642616720964109563064944106674821796143443139962992024842341009752408993061013157147702446086497337353505189880865935580823682228601098717643283100684343100480418893731365967689806213342031235839495992907691018976524137269320107576642229499750516544099122365376042234126954577463788098684290587524053658504454327751069344544658720021902750071459175561079020222451726988157820598866165983086575411515300976491985962777755818242629133997749482325604215527798215863578945283858970571924494993383527560636102880637079678124700889067379357953285878285170084240257848919693900526469999559559379787846433063512462738009538820517048455441919104840942969677005904813049568086550291311684757566612235045955348767966837353226981226399694759105071022816255595219849855152748067945563920376997219222974138578304878424505042699909495888586766586960571718632573000035083044479233417441815160769972846729394325677270003544551263006978543828889608097789369685738076930258888608963612455420064365171924918661278173472285219978528339936010403002943920936176294513522442524217595641756592021409836433885637808273344827987420090975360583016113171880758848462319212378301161842110821544856557977385417502016732134579816666687599745115516019601377320973752997932041568818152066370645535380500059502129234715389591086146516437619617641299192461412992176875836339040061696876408227922688447986486656597914040987634025677333548438353680889538450819054177099809285662066335285517965502270012360629803906596229948412208078741539458031525326684338629838374618938507156245205607122826160978493450222968781034890225805592929973041902326523453824586485595248801842903113044098541403098150130084256156374297765842790382706201615960887019417209207987034295002222765633396615931748301330199346972541432281939835524673828737664909362457419132868059243630236824610650154180684965725129907852943916786170241380613984063533805446516891371570656431689254880166645249688416202546707403658217918443725890126543811057965363365990381787477391759562654801774273787805284847436362969666214876728800551601484486714097207492093458831424228341456785438685542689120303248836571884554920000877609850935256759132325833142472120196606192193448588739372099113804644786073572633923074922256400622369864384499537197846774914590504834072489841123930041918190900113764713332582107028484006814116649568425791099306961156805044833555214293328126457568045877130492869522819839400632509889875710112013406360642991868908451641974650945388223385531245571339957553216364668174900006251447388992922657543671217719818877882006091777697655773000521772842588044668990747960947687298065591334459152125641933109971510227217463340741651963596985158383858021800595715252498330934326728719872465138278565814199409323783862326538609544355101659430713379613558489742614483836147581876684317469638714104964685837462690583740164503697429063715780878644262978981048243938190152405098292584874135364092392723188796973069014235918023925719512939761900129859399471880094665885386636547219910643210532303916567810345381703392426748352692059472162992061143821932626998473048128458559134713120593034655259598927948234984573084163765536187159944994297570411742264214860943329777212530007088028656457758297869949071026515204583975326263681645300972540751665340420248228858492703640057704817095565278882835533786787930586931934828124682088306460354516944427078873310898373381622264477985477438941462065859287688741819079077506959403407960175487060196700037317222235980163806188598666002074670875247076698676547438538367940005229451576740003387847831863218911050931511790705350393037706391135520603336502473205085664480628281745514119877674005206929678649862516246952560954077719055232493453971565016487604482536612179662744972403525306573042654310602673376620663903285662230697533807880294801194582710853625747614240470221258072816565193883335882833700264653447299344773175727760707394691535755463129178940038500925445901897054787177462280834409773879117733776125607696806642225954815325258039404952257427261255925737835717561929454032779835528142934012280958533817741439954388402572544057819485760588849617327066807728254819553150238816068670300520419921372629474412825106173496718773325371218021947578090795179408177534985834687345875470735026350872010012304373567108778201836411533195144896749340617079836814978677638354610425404333009215410728985742952342129150910146520160655378407508572282830544020312013119313913788681557493187759301951700599478552287506400330705988376629746464962365070969733419736097944671917474067006841187526525525894047139582010919089163605600775325093514844931585560152512746156024812412533898488018993934789216039183108220648458240165447001510200532096014950573611690923118069955817222132790675536236619625898358238037809108729951794423137936702941609704756819810845660760693871761482517917410008902425912376395342588931213962220271178316116101074635865027200781785719735313628280075675385983381469216099101944198115791224943014175839888374140160246854115056551182116907533737840437978703682903167048345294116376038128311854068892530354746186783190061064477740140856907978597616919727181648032743503527301819303691681911608799169038329250363556403801179789089206865853972081330001462396950728906943808460965287379239552105081003353421843270538878923935881176553835661777177358350919416226193229759454647360223750246756109122635395767473472348131796923743330091342405285337668784067440351261475885967547270997317264798918405169038155420164904804386753485144397033475465767537596214177717485803224201175885020235555382846210232537367499696686843857385434337861965406882529870891845149610119593623902372149927998519336042194318499214282195770005810919511697294028834598143717029359266085614679706889481911013648528060806138187059581758908695875879173287114291365489625516151443585798346998384269558739130353503965409620203547920496424134607729973202662775260619782422162225724818192337811316325241137731182713578801264074015259741918472572502344332472854144844495004112574909590324779679809869669301448868920911121084390907371852453743690602703669885459909429566302100295022784134503997955417354715679284085592688284576207155668056661440693317428851349865709611840659909120378170791535250886891569307431757689252540973748157423949624059546384162267067804742406585262647613221525484597233533704580016523329623435281767219266246470710597204009684336539009902457022153629452369436067716322129926873267249214082476741145174243796671781899110468799051690226706110230021986445728756809555914011647967184357876905277541989510763863364476467535174764763504381997485309045310843704531563006183581982410093849737723172483609985055741610645400750548984823285220679269402697739150713802518558098191740220282092924541148671486656842379401672121299678006993453659230425263840355528626556576305922232194027937472281660041103855281026239225358948393705751784166161936059839594697335868381912127067752905315188200388710851716839276824095978984276983771939495274287357419878717452587712658560522932060483288663637078515285826788810757879137161047482158248387461908365128009378825613232651458994326986174281949831099182270873910569777789676495068215639613469554272618356365625181271009093785748597122458010907820350541618984699509837203724769269275301865929029945402642592971862719374092724254065066455089465369438714629346919221042787132267802460271508207566086763160561600649312840477624227747421169411892714532639781581199956491762024389584974533288037704835989103227244204113216184655452796814110515436524723262573777635336761136571418164807319221681356651245853815462665263433851922351697369376908109766129886000349155092198228150164392526765494205644148525229173393610980393026815706577787378810228663813230497510980579484118864837955700871050194356391712929459950603057943886463961479034122366975036899702006710511398315630702097994831068953566125625709294351202587256407274094568381583390852939493967759265344003073025124728762643272185145210771770378933015293186318765212165096635775635692716393993720644479930315662023696127228209345835165097734823004983110725287585225089765356087812004200774152604860738139972878242720835216064682197067776753913504227590663783860805947882429318595364101388732173782901811219724743230420077429895961265539078038270108627029474342565150574396743489018045471161568620417146019771773888302597990257350403548464401442861344825176174026401297572956264127726994824644053962936146258426376711983853420400509410025940638092739615002246743421992345449779243543469890088658746848474549591181592677376269669085513044680861195966697664043797799088813179704907654579062251733462226708692900118737054941398517561747552590837801778533899387502648300169619600197026571808693093990699591083652777035104605569157963743755493292399650886553831959297338817373395545159363374247020819466952791327626517831647912288267896069011044519130260624823821492443268504338317562888146897597605621104316199193299036288880493202876990179933471867154267498515283269566652041752925653362661270239787703483731473988289663580831072740116003893588081434764226244784136883909304451527355014977455147614266636345978554810051747472568233765866219173215565041312306498468193546116311226275085820692860860389224024201933974508071884758325118589953401516797708798012593688214782347425798180852531092180192052298014071379465264407780774287178684050088926593529794802842428451710610555138828413335801569612453008559676037132323406862217735011449087351908139014113865964932778084169375274261245348114483734783219880023881174844787882366460290401818359914085315004620196602584490964847060742427662154108973536211475629779916773983888864499074235899866704274929489800676166778314554821981083955640660719781418910323908961009795428062855125615794708917651115718406077063379174904214450036131953675846843272083253046540371035258695465539583656625373922713636754024280720690750846888598802592201643029194891243733627300458289950668847986676933994337214693768567789813241586065283072205810658485619201349590208078746845241888594209723777598715860425678838888143972271947398334585408200961471607484379704104590235129284681505493952641443834691365287895711471418123531795551577684682123744077637187903005103628060803879770255476657055657466535971577339138902624822258165480412827742840874642599321819898021466906494282770518041341732481972403076314005948358029718806273964025293690511916561236912129845799090733626546446655375446017791907592124529534488909136079942132392158787306343112003153822127763451312838976286532650362332568663123665364011996868794561541266593147857804708315548002713145012074643116141875354559148491968501486859723222635720509518820099482263148033217526725085351838033616692087603033318616289199168683317946584531171410503372323788225684371716097675387210700617818966120368032233955395254163229794999608523024335235993237543487739226225735123349865441363951458480201757251797869076403092966396372145333803453712160502518637786400415896639982023859444492952153206112281024999877118042196949155876511700165246777629428134796755977674868768485589182904308451023864042341775187505163748718645770370686489314502986064706599811699827741952462507357376996689172609332693017670110678384270628449602556298598959981660964063860123007216778045333146043634905964682187319853647750087357628921017196549317383327945121308489309210492324656507666104454003330959617579429483822194539791568105179858430189632939211792432251127919189305632938455412368844374950649800069024103048060615856124222055934522911907926906690737658527891761759173454484642540466787987865720756469505338518070794163323404601207879457295868660801787571940889037633937664186580098048782785264814306609588412131517676228530165029299104607512348399544836749669973762707712396972606543515899243813536749787533733366200624242100206356551470313706382872957064380747359702026136253913781020302403364301097173204146448753400459769748010148874270655112299734067630059374442913001305776953753488825904088064578264439287792804315081149981835531120379388944514247965085643325192215498434936875298095296918990876067250336134846472693286949200405119241743294020598654017920772696958520988278478840297920846598455216188084326970971436822460977763843389751379294253199767076984258050540185232541418517840710950846769422982390569199143660746260408505547023556463532396374271654258852099917902205234631214464315185102130199509302158633182505526848987300012246589128952078929721963930519915901196359812040400410434994354342047421699459970914772700139887482445586134045288429881592293239446974562125851803500794808922185940967582617865414592684927257271496999039165870811843348304862639290035124170878860691040352390472586335820379374672704756020185708985900865932985823018188220323546731699423632026706636062618846206044138504645367452561427256289770678046589146094435665856826259517350570193104027993891070863916838292383783794389410182290114960573070673796327689559824095570073012714665593234669728501921163084663179408658906750732559250902037376806895741924384505215964062133842351962370771976294288733895574920053552028413386240529632475778725157572213931176516998271803591232542902213550411894302139195462385253919833047656246727788467907071711672832116258729518912560113936575154032420263996101866398615337421110735416890262956248954005633489482974726156138129709744079308604940622752315906056746649288024084368763838830579478314912338552413873924613894311965214477171598481462566565119551669102093031573759766728535586245174491202515296169520168142049696469839302331186483938419188849028673380218927954643348298793680978278366866568673807985431623081714089938047485029566069954574964495303589757114427311857127447714991620903242493446169280295847500961255258443793513509733123440810731603368394826906577765551073159996505532265830565964570005047919564342325485225101423913787025610178818394956558314192649725774069492858034647010714378452572043054634255505091193837783142461368210703596549201625793716265785338855000314199159304139061145947219572836896310127850108874365499132963930236515504753493822372564914225197091553879840864962813170796446661863757177563409515376930010535739662345756576991110177403007589819962639604015806231293234017427102060768771672420944428234715975663619826556972909524625168469293068583958288315791062958599910203803327576628358208027018860439605778669869929686167761207497270000555094873528226665199250665918541658066362856608460940878807492097057074625709551661704996635291354211854734618813810986665537601503924706975663872848691590044258617454894938101182246269648052897628541846291059115617150167653087155042776961868561268757948237562035484423448977336565699628960156097831785588106325108977739250452892468816964711649104654046062568679813023339355153371167138611209124481756581282887814430669263566710818664850788258416120344672686099646640793324151161599879750041230259476244050650176697456806383685084071168143253669227835328322678892051212454804413583536103722208124990887318799469154132387675770809826429063341476208824437576554794394576807890268016038550448021920363021646368239135612831242341508376372709803267922196701999225087311978189225025891394321320173399553741457567611461105191882054475243467630352703195573068818146467914107364628232027098749692360796323096297351019458395599138918634088906354358834204093895789163096390995348670140695190927203001862436486785157245166844002378814984813324397904433095752027729023805768649280807855526626991280344485372275528230156891934669589552818618951986787823171347710378476784559175948704761225284110868036518925328632002013837200495923927052718944160786167982345069512356317908343751805009622156668685170297531631175734098986849802333348133051581029869531214885690901405089482730654034357250466145550799291760998772349251083448091979693453909425559803717307845304064030525265802137370245135636653321498535442887067074513869606106955281422537362874645509315013176912854795451595664061495864013887528605549760554220615505305269014388707473467902867103090111625214133865500233274024699967107048426994769954434576425640876879018218106864479255890211007536474035385427641909527632664466570711289821490045897957383096889992043148123083601478235436904915639341639275448479706071577699415314532572528663141256112197222416191637257001808962441820149784923249822118820046675146081797747235320472477679566177430823149827894986806790191178979785708594179579323694014868965411596081771865984782781335208652509560809710800855065229204689835385769018824550941276405764969293249505984756786540362675321984259862492482119617236806768641047231616510261232526319145072615690882434988065991456745124876370835754871890641563359179308672974610888026606876862680568549193883849881035109603085155341082636578945298969783925136545409767336276802263340636079628987268826185451494026886145849028894881253961182894970300377882153899418066299620791213630873670012907453567466290100728764859911232310937291917960859674967693395246190439440914355524814143221157695367915074144580111992820404164944518961407909754890305185727811654376333601422990333181855323511916139282546918364953100227236306728598265085691200033747324829705709729797747225579521427791344880201848028005060385377332699914485237085887676072158763473843816274139049598237959617257467397567837123970848886469789365004170457525562397607765317955885643450970011135512692379754236976012048358426231286527350801273037303620845110628590963544942022542363914914988693989689090711602168251388608116059542505261438510619981198294950924944288470194547548810348290360115766594651693193934169939714819100272958598288713440618666778553414463775831305135063139797238294831535104436307685108098688401125469750326470363442197424884315499540874223857387449419045106928379075132565939175752372787415355061801251787441242610231371055785132958250819131197506976229192182478281514027520927768267675650103153074346390388316383492766184984088552478206561355579926319977042827459259998515834596137000507586557084409842690558823056859877235080511382002892921290898810772642458403479479496320719273242141895809406369259294330687172241141616421885715914139379311680622642858590886011160424117868138922801496046524628135768496549884697159996267752965905089353550892816674169476274313993711912889018413131697882795073467057736907847197210732274488262126762352464460638601334598259627528911709204360133559925001148185911124311316911331165081880999390322189061089163568555740130637806561901282132412982565947584435412216213974118934058957136971471211733194849247163093835645196045758801544960392567491153327080027634334300999418455282754270376246009763118926967370264724529776155222351805460204726265219756343384691473038539622011189455419261091653546776758526669486247051946040168778084251404078667004982392840006637849189330326013557063467095686265540929812901612815705281824618795582603515211748603713114476649896180670960929198987736823880936898528320766077732272272360866423739395408968705063384418717479210504528806260967358988551813591735282761253422142217536641174908626249454596173580914516090452868961050691560859613125056545372198139241232181328697926018735984927732172599734243108583334837233024682344693966380833933859268657078330900089339874404951411253132478392096475923141308614141548317657531368271252032022923606565175029851460947042187910589522382263062170253772850560905629914738603880764769808190407586201944703468095465928590378863742962262346934157760370534231901846583905210197463429166636924787467942096780321002241940991855448061343764412342232777543976057437516409139982038215198507034870780264110217300020164104539180557013268669871373168358203417591861323129201462513896449939502938445130281579223858806987846283978248574817405652502898367642532665564041711009918366337007903392311410739065473139557544034874058663975577991945246953294258345996221808597131529833693842743201802834820416406117321650048158813405854186339702672626380372319616444321333061680524978236888943196702044725943830768584166809140534114639493095625721250825037727157216670254431075145138540163041895578683806605782446786170449371863854193179725445806615791812357437409624033528509675178005834567347907910999278973600592120061121832353092357491869645378976584498039097852784507786245982460990800576805922149890340350536558003632514222603101312846537672095314858313098194480475418475580663730627173207106685319455540253484377726878891796970946158680183393401566859061943711350701304226846747516142831503460377604582208281909846030661088700908940920039149850386753904872517131742188343683984070736140136598987074620352464750972000515547398043769309271383521727223181116691782882507287301107310454064202090337008577213093293852748291463629339491833057616020999414740972446109107959760782420906078722679205149803318211588151222623851814883966570021920609773705128437453433601970063234950090521826810993905620464341630078868226637903201960327707603158405293336092951995264172137341410270892436644829690901797416131046760693184712487941643192358647517812603794373932017953308673109524595197223141298590256267356052494697101985561908828665833316578165802822911503345293832384859384393871976482439270998171856415930525397181281789566776002715119843508748080425084203420084306558063444147411045288877457661349600074287036709838453374347495111194411723410380435892933286416504401240546940105426193347271573869229870069706871614393230270645941212982358522341383711209073215725676693873461041489207559012206631211057588536349183541908539131363912938042336119474083190319763679088606601969692745643740481741716667667853235778109100768714749257437879150003185204132338803498298014060984636246899485350922746412060245233723689862098120195154906043770210706125543582796138343597996637959708151293718947655369609543395715477631022889444791068389034305176520532010834601927225322090961003052166960630673935055079763052691947843886992744405688976759940151100093217031509960320898265966868245953052851596809796520406185121983403497645654348335704197629855268646773649609344830067526590897068090276424605539829329047170969511761911112472773513732502170413207133406801322256978763937568135670996183592928477157170464127519589586285513213675938773952201565247917624886686214249713619056466233089987105772758011992081887288024602141024408751256290972727646274042383053461315990544204706004939034112892225590878067758521364150988502328663157052965042272050438616525376090433870479032875369920401381794875660350472382252393360837747011093978177924142928130857158394989794272873945933895375541256015802928230602756595968488038997054905410999609081986110243855286038346342776934482009839708838703687389101234186108536121719369828533782504871692728640474286160880270297300214208984581148163388257523188402610448000568221835231403276463592933349407064577533000905484378079747725535891763008492199923525914910417041385343722866009744148310505863223915765205816271923645620263693417994406034975039908585624656096311734394698682699246493096499135023937912275253157665670872554542213649691921944632626726660914809805731373917825235373693518134077950721277951066091374260877793674805682037849242976375143551143233440445593196009896366988009161350375602450932955148955793674613889232808368976229341459628038838000146167814378013977053447235711827845572111765693426656901978000571468433112097258670181525593221066214130330719485601232908600322061169939601591072543426205942438232731589547438019090838386961175856773664419794025594479660985381978911727219643541015669150247195737308251833760265051287527932784971389401801804300434763966489775057830824711413853002032764898446984346238428414562942211730984110042094726228843893217358041550835044734261423081233401108783570961278266628061249905589847669060806409561429857011068869398881852163255646825102665006124541986170584944625383207304231571876248399519159200609712115187279267658241189700969962598307839414358291286270887297414218429323613099996655345668922731999830213034720043168945569261316238696231674206633452968514632355257306282500439151326216930469262548618866804424211274905232175279619423005862228115991437604046983102236660293733230895924077147750092938492209736897651898304015188164211212640078683071433806675566899996139166481856242445199773785625306341261647963314526267039361980770536040846978565426104849859081820925700537534251532820719945334874389977922387087276132299120414114444585976817156598428508991532228881097495585311486034936408394741788772121772132892774542151766234209855769044126221789385960817927538873716781177604394179574507765071981844611216744175114875930478929514148034269328603883751372163583361837841206740190080836097507514113255867429393649207695043837939837598139338799449811210213350003845745581911920063703625771096767341798011908811020126726672330638699178331796657625157636733953735806609625198374043555853698731827278360847620993613469659885369427448499954201252610623819916909623091349340249744804270664606223183607703362395825272226473345372717547443946536353050626645290350630970999584922848497435414516604474035970350188146536841707367254146719055212999693750429941351941101849722846193298555163847053092863712116567396868543444587522221415990450446900569376813304778158579480465433126426722571814991127162511854452439445731448266764574361202337671320401633750772956417023195999881319576404202904791409306076825381390804544755016917391495307792645288275932156416123940339596351891422558712516969052233791506050805169040450152310715843643266847480155387466650496011513456694092600750310446353289186985771726440613491658650372860471891762938118308856801202818547624310104091132927404311691236970871264270516506164316291357822306647729967328740944135709446518484756702754851022584979598561495203904398631252905309403041646612066709851240750955414040674282061276861727588675936591954388229812777108863980062995843170281001791073406816807424729630928614259742369843385611163773768275217911994500105234459135522536683962646237319933556397164465912897179041456917851840019507604947020656515883035515269625753473206305865491643399804278095134770407844515578170613428215659617770784884190073301268230518431624933558812636176248654750494952872899045679028587334953358302154142621544528365985741180953661273313979844938884642230037799814598959357213187902634270667726019677704119624653870528427738646943126971297407894650711755981114008304287932933484421940058439105495327077900697990414997597753364264500606322814505933970543490044811172597128788484123004111422130310705273248992746104129256320513420033790520742406378059952955764043038127664788705318698320330320306582353240478799584664025980781849645181285257801685160533151326623350815700444928562328236617526348967571560086361300887649334285927432392756276445026262873637625905937345364657146365073708325244382909380611904537323014380815353493585052722619456453676036352660869073204991069575844865171210858922108006627023783181549103837649352683766262057296789605477215153585710244712978638957593122029136325594031031225655917238914796328322630039150010654227316639769003107697418251180172116664346599574665472983898645558524637983402261346460989808888654968574674281219703890773762455789565193370505346634659598093062102867974448195676752251522840320082738227838265218101657921027266099113609737911552233549383623667874575233765360872996750010731118818710622053853610866749146589891176834426295127669311087901749781717743055291145463937566825793665620680115653629443250141385408858008371604784164118726801794886077363552993948733449873674691519925525315695552361831409814500247617495661905176668712818107398056799037815152324796194850481366192804195105804633529186904966353308501802559612907910352000583742429185851555220773857546157142414070407686639634475480101474171534000329641750521220338103509174969804033814598128463838939752712400284862900000842733611722191357013618372341281670222873497404944977766828470102145048943929946073477996007548585604720213918292518711931137125298352660956278927990646659301278350464968207681811374916599736521731738585094078237111880704915031553698434788940822978819456383998225212908907918577070128776581865316217482329717755560761762813030432861761497868601270792452084653721380015902100445490133384759074079261761820208227348290352332953771404939594161695621258427891075858035264110220235858899039610133582742608750189142496090891560964686035943400268407844345791901908774154383867556926280309620741244295606850536206363911025520394675971318532050136720611516154521721340625776204466953573038228447442697234021583127894710056965387215020263113979189288970663879274624434218595760916691750288389532457321315395394057751858770489946778666109630219462347463447516659435486902851861674864409257515694417934042774801134323533559049937364751667582622495557317246390185381472402815416876028105459233994694415625797817788381939599727978137266044571088712277801263786561630216555805988297686911329903709268081448683776184564715229229484998764885708401192864523418394515278295305092096324733689852526071048426618759572844286287689346592590973370627710342053528882294300967146818710880417501181356533838014179235719939789773983834434865701604311192419493823104846454961847807615631075234784458397361188213577614632370869907882581226580074430896002673876120443811941658829117900026347317196493496987223697325754518140393726362050587119955503754534166436277688530664988339023203268976017481357770441892857356668267607789421857762949449714383723870732631158618311798325477085259818410453989385857045023910301063003946491453372080882365485634682569708104115551293326787528502999052546171400523983892926834077493256279976950575430025614818589710735933507684915459474375815212826977239584245025766447087533192694791873399890977854370996929198011907853865030054392490488892111042223941415408952566080373960381308119679661919847059187423421192899279475420938717387672349243575096120629566731730918097432605541270136519355621762842718388434163890903215307473958679764144712168516736577599926546497695029415012700956624902739755792990146944247846905947123615288143829959155437702064346550352531942262399971897914480701296040837681678559924918067608095782965669987072158224752559197050407570038876530738445259046706967274443041627763815776102617240097085044647351424909629876053563703717091914218732261445232066998360718840565323651086792346564526384450046836312462647034075443916218607681909370913674249938048907669956451373491985384297925872969249796437832943132475670535034014222965764278875605104720639580448439796320349338459099797792589216011854039776128233951352668378115947927385719288332489826124456954146980234413319687711333111618484565192670339686529785182091385067645153614014401070168416436959756230217808663287008106018767647026257977842946782217367203725534709316534622552501964427320283041395802959803347476754190920289394687371554837891925190641669903443416304486760411550634546152652301472008158479978262437282986936649428540118131470547830127578470397138960418431296390681680580946933691814670401450653807066110017384348246444323539091760532214155852239333517018293823923565545076379596198403890124904486728808300515765630076363533317645511249925023018592684778914755306220328016319141209313920986301514555724937350744820335593946056225048211253172938951242046157958402652518914450424259423973199373404519362837466598625437688513896920396309555669026670118764684922043599718140647368281175131534072524619457354655665444132416337494364666742178958979183207110900186055715835860149958809263388973318440528130739781678824838866588061059957271976122224312058073764868800082674639398316592937119592443815846766801564849644334355083637801715983885482580809787531869436933295467214289997835170494283197096053865240006564147292489536781629999562184659929480712500693537609349943507843803123556145992436885594223764547857895562858430199650860541797124596095806935555834833869593967982186508110842774607183128767019789762792625820395273908466269357709284434951038364389200171992684330896801990546013635052644547092118993280411678156861988710194883740518327041095409721232324958223209477198760017227843475708835452899374201276998414721064490278908334477162159674612270826472067407713391186016535490175093650533387785307100164226257310747819130816714781430740721763530228057827323279455367439381461785961496514547890860054088701806543437716157137831216822514756546463814100085580033454585085155151873013153959232709489979180182471860892877335915617729796503900585495688493201275008383882753164775450975445289152211101710295187623597074170843999758837404982109915234281302790924555673807259536392623776179969988947312783935211932773495128000705588528615800426360718814536048414820784434644006584875306782311580838976658261828078453465705218949885613699544150193785333744606557740976294860992279420844928659922932150646275322130790144389643987285289365519062952286635095880940873693630223875241579790917459654499258607467104043614448448754166283304189097153916581112192102981504770424427444079743285930386054228084390813935161342436173862326743014908026553621436992900543055538511375095417482655615968627517251233041932126290467234487514344749493773825199416424582994671909828710098595429532401171658745674465964152728987086608892460095277784481818333211368984687442028833913163463215194654013444468981974277248398743627886038538921636691023596861467496661100428451472890536114240548986921335940927010616303575218728613121234303542467483134833164495397749457440813506689889939946415593020562653816606797971560154595674642843688720393678492680394694861372693595519965546006685793626729092985348095571419506739571980619890406066619761407039994612603908672083303626140596708201528945559869735548944991867671819205848628512888505197961908730300137556364011772270800365091509415223540106808615259172201054647729407238454055164332928953494932663894119346414542892268818028932681537070161353128620772336738532580674154757695703444834976005209422276957207233049079753630287917281214139256837616182256456229952227305442139724719379913913101798308554631714090017728006459581715859991089740332337151095315770573428017788846148753511128099052991699503840631569967254384720590200746301093231484195892805688071520433951168916952792060341131187229418675325032379523399939093506785112533686132944474623139911846574355663278240016809280764682577211479360775525169753901957639091896932655523158281675049572117574508609554128533690493480369643692786831107438001119061748864409601238674968124056817007731982836114795610811008761234953980772507607845289134385212384781811706124412577940405473962021915003451803681370511174253230293503562851560701331470762916106384091042212704372248140280564041715964979370548275023429421381601963892205239536330456280016307877109649814076659418843735662070433171280476284036393422549501958029003989545798351870158017001942580693730082318645105632753601309280967890843453700054228151126586828609289291066362473226752082668792659200735860141891738591064754463541821974739368178098492358826256391250799951538760140937096938323302451874040917740807687815812403697101215318385904605438769076100000136534203636037949589593918763811487866387714990696169162427444947788391552011107565432459655268623136331854672808833453494217446314303961550063540672240012140249203989098843420311567542628372468891965753089245032017876448056167072345043702565745628819518010589509615622862188866837023587114012936440816014962126063405393963935359252143881695307177954721391733889635720024297440439652220766471111442385160230958323362066235179038220026115516325868341382387607543605072069567914417452056345017799685130441277879599644022284097279557525299063668265721149707735868357904058197469155775600184267246969531557133605620340028593989952949716197607641946151486695124649647500206779121668226630775793929068045701031855484623229353001044716493327882126770876374142086019161742971919101260330040595675422701321338588656025737351334709739168204481657771881113394410526880134468025930211973228946893594353815882080932865853850966790616871849161861406653755400058457123696845556583473382521558328369369902358308713737874906113500441828998047432761163509344265538013548228108253314879879301876862810624480925191150270461714956680933488235748048064563060384830760963840012256580421481379322184037213595623925406744383362226896962583288437179929674703677209617924773310744130519886833748347125034210579810064006083551145331090020454912969199018255473790286192551013683902088455616781994457532027825517938003235790129186730943007649237261835328182752192901349761717582826994146941804872723146913412391357951464570229203853431590007306810206046007860615848413590751143095254047227617674766597612950167732055907428672775051461571370888076848973242942995371257738118748969329666787402372247621243169920245424531033609885802257642529469798286763313431486595453762271479970956603714071438253185979765143524092700015648730197091597998542781911806611986904339149767044192820589234411529676503828918901755859890587535154410315220340410463715369256590872677599190677301551746549403690863112249824197195537784258010008643878172916851941424492713994253768897675068771050305680565682101091877424193575227061114526114205142682259544232909036906598611403363730601358750288411300041482873301861698495260393587962936171453633683506028859689761940141323196115522421980974191746403948000090061365257508948040001195061083908915898087575146976315122142394759965439212950249713544344567069601963304110635614539688692602298918846694060389559150795292644764930290945380800847262952840786176271968537088970526828061221965524508547461145353908061809063067784699924747547505960829651718589631094009321553450324728956141692988403860751510761259650803788028309172515941049636428101657610993830998530124462055809234554333175641917245436219493976629353083689128967384089532667465221250746885276828056338905427942718689004453704916082957812457130776767618824047669336806762137750573703943157093561756187269383996618515401058106444024566186161849241553607168736903810876623927502356189384635822897174323494707861747087776683284690440385688387450350767385038450141253088260858347572537142757751014741773753982040093110078289599449851166425369161744090004064755976263862576180748236990233791930574460423453587416430406619099913217294221158320727788711215366945327744509760505811100565065687786387224314419035572940433168230698859335875682533253801245453942508776566764362539312847504552909813494914177756105874359977882102805658009891497059741368133561051898313080572078738540118658433214909501497456062729235546331713944875899422836560807754199658816798299211789957632538626518389233878804424021979928764636268088237131694987744262063911210247725378427140986668483005640898041558989112576348563075735493957387727910626809560215873086755996766485738713815073241551343673047259119943212158455286871960297240295142611753485427005328850983357683601595329325227663814408635075757380338136836267964513131781479351176531337150155503005228118094069843212225945776066644243848534194958561772176812178406543977083778303090677242160314472735172491528018001312550393518544830907898311769412481593137708388942734073150533349475322400017184246173048507058985279701781608317328159613121320362190227310967524403539611492302001920339735188161186267584686816681499467509760894841253595774049124164987249071087044565577854421813648429719627229975896068443236371229032243074546470317333636778110964901394712851292195188244759670233540837090058529391904958680585323337728087624748779322127420592579168298819772221230798720384151707195321443514100491741454829714791266740633927616118006755179726587566403649780379341083984685434672546078333026831769133643684066683420184755090931358801793655963569406081286950848533601923038110659751808447459507793716230054318909625503458392143284645279924109953493251844331150509180326939784353017410217992700568168246003363154984434740415967553241524462301132649799943419937950589251720548563722584935684730215909594253847794183835355677052701519541042570485152299883775053443034378716142028438008569687096228276052619106728397626746047166347667310776260829782104795988018126527732520704100014231691834842828071579383510335725490160000103833519418028507716824359555310789504050178750861951069098964159403928459790904173348878887626345753414525487633813917983544613933549084548520386530414563794534594158251693203729650789338892977589078636906047001969332660366617381722098196773980843559236085907318269596905767684877848716969763614277318870838065539497395516476991728799720653391736717559878752788396230885110578661811579380085198471296917387694478035386718085426247467325134155480294445760802278557005643499152963315552133540995071143289678451914809582518761401064992053579666157620389102171876181443678381382104020074829696591896948416941823114460988063061448010847154050372442128753735725665967869584812286546208011275321869717567477789966303296355479617354928278906761306501816013386594709340205320100504965171816596615775120864343134753056620501310165146081822075589155442832807406419533891308082222490090736336456055137704916841344033512808435468541082848566382253177742823981876082360923388882011984300253515930535870200577863051556307331659064027583781290374296216647999916174538958505793255283335357316681544766332448397304739561775919379750169880915030166954616884029348016650516299695105126991082816734870236011549414718384919989314330713929589221822740692033740823892427259495560461622466111804663190412311039512477084923937761917282783608895073986062119753744049397579384374276134269192413779462253636346313774808978498095861755332772578096081132044310685233756195807428977151102371602565079664197517735839808964946036588583344927699147622627530051578428099481951720729831566844986570357652765287588147061284767084898608524947990289547602137117476669721731819510981265684330899591078909841500016474681076907077339596149128963727759586237429639786222681375825521223573280873990784414684681239820394576736968321777432975055818237059271233314144348930012022999183287567648056406550735964677863768923863644141426288394233244225889544807197247553739337826169603901597286527143197742552400481316434644745627981010843413362588938484134676498507706911762570250419017204005149318108481650709994703621271933114159574125696957983710716945947211445935729684413507301340629298796609195574212656575837414778409840480984696120987494416957757689430947443552539193130473195758505267551972172778292045235059249505714297334829613730021795026153843750423002117590353296727995706102358539331159955601571793131986348418863031162516001553977307416586313285357919906479140300522573270263315977424587997550735431918190792960233311392461257346617454689538675130189983168785121355015542486127637348182593861615007973882707860552281135860420059558846470577613827360640380723684728551152495817775858322287746540380130670984840914433427102807687626942462636939399828962948519617569118233535970517275146805748268696433535656992053817677515043997930095096767718473392735668175782559639945063618821606101740053063237635840406773195411180330228839096397568610085642355151207369038009882347308968050486490034706491906221972643168437083351677409290757973446349030315396876100224261485919857913720286713594499820782084401515950487609653738458992628783540574434224218414335869181769059550936946888780823647287078092708590812243424239827696598269783018991652540020133095823114764711360252119893267535643128791776462407109952332669306343305571622959506004866272493598478543208673358455585963295131573956315181064805383384954541572059734513472344019356821811746276037977033361993790206551515754773178726332525625134502063118698993373985009096043383447787353046856785445294234456005479165298757902096365698494752237094333217588797441871954523466556974842934476635906998332040766054116567697238222932410881615421916495996236280349234886630503631065916380712094272201692396634203403584840654384500841443337079995941144282149795036591630002855549798814953294462813100938084139731856421805685858117294393804390706903625224298388731500193473614925136112808856980865092184800983204941154432351473612635578514065161419110617192518377105295622233502043046299570783571916684469410910223588429695352569594199350316749110138423599161174538794812026293198412201885598810499538695484543775702027691641468799023792617203925797900277302038986854679375157722956365276051444809747832381333216265885445179899481646655387969463233164247368154655319972112056031272951251066415161616894049592435787456366667532615794221639547054898582929393474132172567711326566253238198577986645997190707219190286079551057813537462497026514936115403022336481476095894038164721944797380774985726635849724345005606862682663184857740034098304105240257198258042855675633570677999207626470078224133594491909686235957508753327916980952615394600115017002632241377974209695829458530010095186632877823121139456958929971177482948873149401637732357836144836414933989901516071716324699766339820620479379407486436800312218761157813871040014785504057065444101663018716238259334071778292345792246976070314749667339536471086756018673309840474148926658604879881649238549292910009771105511028286760920204093329747154992851354346133504309647064225649875852424272130029384822256700002239849618976110721929909328586224244673760362843499869806385163634019490846624827086185068988340530391798785123925679230817144802960323465416629547432704607866021703430767879744015052068949559201106307769009632874321323489629854413493356361364358715829753175128584944212006899468258722289876420954320635290547943367618193357372828904886376560124512497235837992537537348155340959067554415859468561515684768905285926756973515881435219674188259993859641876335193400328581053208129753120634684104081583663922119262500922725373513710166733638745890698011323014572864915214011716078612838054090379944980244027951613501001190928351669068840601898397037290424967613192150173864452748402537909387456310091915933482272824468471377270569285695148490509253556984006963152726772074830308399145457135219572820252838491167758676443425809013277262420552427952539736303488728212496272409722190600397119813778298577483413789184053051822682184855359172998031848760227842483532854949673254000197029111231211476896415415392993064697620573631711198276338372365365936466781168287829301859224497539151066881521705222929203677568274913430606386949406111327962359441922793781209964773022546083687990254983384244360055807043568658118181339901024941615605838320658569089018464625228076543812005565295072112631092976823926034554816302905883515982360576180592932224067460954168440773756939213616950178762788986634004210006322266213429076559013383480107519379340348059942718615202228640410435366437394671832039220839870036855220227983462638380132014510941405561739900122247209418465353880432668473283009818730659298991199734919330817023451048048990448045817089370447510563352601557934317886904623296818376939891959970600935628718429139085319614732595182493427352086235237949126417537340288515782155586763877860931860049925491765700300716922282693122125432675297384106880334515479439779279805395268505738198380546406208872685783109401240169615597983062706571882923819646837218665516979822562049821904369560323374790402186654998359690954611780679059018638488536348692556802842509567279990154753962309604756345745813868082916485025051325730343890981254741440971781209275473949245093743414278835742822685478043763144205987055596057724697485381087062252176434844036904424164393461978576511060872688683565638106053047839706940203189876572566573913602597317754277871790312896560931529452807646033073676474081472248122704638199985941241492348301914184273356185750426854132774230607644439416333703061407906007293857197260071336964112583936020125887336953600902089882399341564266864227469673209166385400937299446374676064424149948947913146832354671486082589516721773040816742832471333462076583036699416057572334724608407441203508241057982984216282434831346404423912301246512350942317522267562177296065579260819143497544003372211179739448508171643559672620105429110361820863833507493427285786325528804928561405950248756954822175806817194799463509441656530888611825768705269446096084820306070887988355708529604267636751213068607696721249926720184667322794382573163653061745199166116851414578250583938315057617255788913837951529146736336226139479481431461200669990368384572191682608176565348691088070385622911108554534457923208222772150034035013048428652683361045231074059124512835591633180942240701653599952614105320306835536342614643676438758130488192479283295354128049802063678773804389832766185135356335957153304988275162653886293831103716508713769303070882624143050637298258224647143745163213514038207776417753697087207553290237034257251374447146233691129559523704469335417323397039172973286158219720277597391662883782215032039892814139429246262209077206420077711792475825172634736697896733263618447917522090289511926952331771407178706677945232676353814236597990235293873312101390694969590655340266512727527577748409998730173942308298774175946717106967130756191210600033664391701320228091468423563724322806679771403717340906811453163646986320459475093450992882124125250045874728149869882508154384193483007082098321462084729118354674858326334129948058375597885602607861069915372952179382653352922890052817018781470386837577873200661976383761220663621477166714092985790226593728927292029058935000520647034547998549151717741645158331189403733318934029879394689050685393539154083253497047926254047972735072379007222068855693382483537201893926696825295214611555864669744041216420188868517212836567812870795066836228678094047829633733538444810344113579384748525655151406712604806065918378347080687371335326937445450919284959303515366867045766615647932147470068577719282529544380101094422695072286594992724561783874381788728690319494453236660126074633402783192439064563935747371476382978247004430805187706997034196901824557975899915774113897348293619582600930892936574037047399460887454686130383350306191948137273761729457633751587662908665369939754336746739072948288489409444687019312607654840797400815942167302552406143556142787900489771558515346359954371240787484976256368213299620425752013283814184432937541915274429953532349647832951130645690110111538942243036358470078460642504141724727630126290205573845361278544913016966622509817201206795682767265122124627166513129728237559196451674733520906527082265704492341457683051499681597476816763971409062956502594655370092299624365715258318529279852013509779253418351475391034185580716780919267528215846415837543116153262508654842520529915572718564861754316807503752260889538785260219308870986598944644765820487796860914757363843783113919776853726875190814255853932758276423239998352447756189354465031229024654450243010250369588991742659932884219015396856192385199184090781930593101206620008373120511864530391057629704840018588708748973895593825797129952968733988658179583985599494792187753043111356184981591746573783569816637187746562502693793620395993750697321415493154635390525128208582103707997408223193472109475552726283623053051151071300325497916676056532034228173452284898016516859373703091913627125119927667199445441229923510835503395360089844428551875331994395207855989992405933351299849866168547972870891243647731382052483632259210463423692638569729785566006738672216318714769486505792532532596875197136675292611846764693764805757604715764612377824995903001028532337479171994273889214847642405695988341263149569045896140800129688175220215504591827499220648630428225113719758695652759226153410440101846666542158074554329523489174114074967337805248264657979852042498268330283825270011568378547484298402187707221911215703512360623244986663534829296738839010633221649096626347880196629260101254713026841181000093254575282889973328435692544292867822661256815149741330908460999356584037201962394233191200869341797867930487230581181840032551548018761327306987645752544471822561978231832612453707311397543261282515879681300457588323581728949633486547993893127704159760820257735587516391848817652887080438685754774852474588232297165451122496853634141223871980612016409725477441721010643187886662973372511378997237521688826659383697896255070887833877579562019712434138367118029407916924515186357416238288529322095199894949230761074232586726776898285198043716852794647283806202079177250793485377272328498915233004076385230805154066472347225816899557475422145901170588214697081253979250130372205051077052270201240723848276027724202793691117166729653726221778006115522801759543454347117401230278052965150746303944336980396389354628696824253970674303399615628313984217127814440302043646246739227798547345574680673281857270067464793645420139392313029412528794837317683002757726547398448846028992521783492621831833758945399270310446625963793388193981116273470414437627353976233604400158504504535030584212819071518162542074967093637958165376853977332242049112786078296345599413732706370783573068473343917563175799590469303902976794076873077269618952687357027049155608289936058286428636026013380963824517307700218202614827020131645781968113389725809597720723012068362743525767810366030246814701731908748518011682318004812900639062206152798485549401936939186583842747175940170733539589720919703717163839848891940796574450804294505047350693208611589061303530878165114889924029254309481146506083615226844839229207770974992718522918720852566910739035541550257030071900359800771162346213376607431527019575561821007234946510263099288485836518122035359530138596716249649612877370702337842482433294601608420966002201047514105786017966276753029332614655030555496479085369536002089587741558205161775405210273408404720855322033109221190458751367718908553529223641338906345725011289150485372927569181131202810102748195840961969368022896556650171330256840998364682732437908304233412125537760562603351022764080746155910249165494589544504652731837993974059810656540034456110452348273827453840926855842602868490177572553374719251036386498556997146853037114382881031817156394778317402728780910697323610742346320127638553900939435136963542028566507322329132573123457937528195584903063182198907570108007915334287399068753872848761789162016316673298133027185320605093806077872111493523102574978739022561772288547120476471141653148749142264501233486442041626340116073049770479922263808972597412913690324058474380562837097832815355033302930099502187501392297579750492277702075317275982747466076091272920367503881305665564967159792768485025585513268050472997719325615043661673967078601093162721337995326107265574511085356475641194252108027456269020386349858406017385010713292882053991260393071230449544100647576637948251475481849674119923206039207532523886553916363776529386592666689073311914552701143684677946908240146396944405574540481043215310999809436852516286320645557976766288967315983694456952941346976948975335588104300376421751847475265880053178732612287181711177355291603975469534989585261356490538681390226321238483907103990258884439351294439205207433747751199269332420474137216503482672220359656804673156406342229904005720810372393675812414994385195409963222261214256979143166210953956821484440891143635814967370030813398625128090315900783908925143230743849865324423988733579707912393817283344712453635119138540500491269949803273856259903741292924699932873496730744857693069279290829443604487069881183260209537995490060057327634829959967705146494413576035163564121682912879949692230115786194635042164507108148003813606181265654616553289022640747783410270339813635656437112389701480851467794099420138842520555434265144248600650511454439892763113594714353315209461982843663372176133731314723180528057975465065387922995541921935584766595022856826303305135917278071886651106267900490382061540145429183958086235230222553033155844033122985824652488707725396065235614672130893708896660852762504762364962043434000678727856703720157515356753477757432240636408940796535358928753269673475383968138310145703952093934146576355374168038394106403968175059532906519360371996150117651506652818563957329276676101521520849378650888999543075588619119207015947043941272676827303675179533810483989228687414384291969915759157501828822033400489548194905009815336444338133501550374309011864148966255364395518609159997809410533326665549587199375431550483554476421121789551935397081936993657207662997785149171725856378143061920644787862544803183966697939871362839415652595685615823933297739760931970780466888682524636255678097273300697600619429151325814271895115724698591888758515328012830475283127992289343200227159554447337345082805621252121853823715611002794686753688060511081342036573778024629298726068603633606087304097914750447342332479342852559034609066272065808661218204417095377598307259981840817279439713364647980067857148479813344916410274329361882577730980682966978034800415964448912986986909754365485417496758361529988025852834888794833554185498952871826029203128785157019279451321706123226410040512840703211536531701844734684570964972085206171555284552525289674545024795043869401895307873776080206797382585469810832920386992030858923659390765028355086403985763035447390808503724865239664814177772749270318544193260570810489805690744563104637333030900512971566258722420710392512077889433692554710254394055345626418852127161859094733429325368830119095660942304544332255368599493540621003044991418838732986045442124944246724694587868289050837429993901611580703137942613375598782109277534984888032124812591843524029840152791388018945072083833091659098300779106527487715498935037293621440706393004842162689470648223100520778273164779718656848618039766855605513954636653684499197330202173633967305088031957292072376634704051720061505909380269849794159474237983950124814654790636364324065516917076291231542498926015811278388770136376041520524273914876101569438928406314072567778684196850857828663785584330515792257998941634796956187645537804312683417939329634182736386107302433046172530670842332272263250906626409570404582952853421918063471646768524536067171248497853840816186707658084427929836153284025443050610636669141543397260852240389166619298952242413355292121600008415941183154411090410319733558732839133003984317429449263747180022382024618980416836539804298599275697783424479264380492952951379736396682895417840377670397265757172720948944180942816263135911415924899387585092593882582816159732257432624723949990492930012832621486637659833530775658731164691965357281991145918907146567057435095329469253828527498486668129538532076068419042707572728008373918938479143565620483977942099273214473796345323745888822843957143625644336087007778228191139449451278701811023014835588792223903928143720557735335290221977474657284244560294139662197359079822680023447886356930408264535031332253134833921157703621289081990840999202231834866909131237722495053171077256779133192342023210127772349225283398620698787976648277223706042261525419869771298092707963995872095683889429481207922890540230397430468028227530981556600271430071067410826766666884717138101965532237455459484032148680316641409123895544826650034534754357635406481398594541515414244374311321772332372280023040257264617578019551277894605011211093462854688148351532997701484857212759170087771349786307747133410039184531427789635517878805272313591011093234039872007924961629356235316573169748118625325586872280310593691476223433197887642002948526527496067171386151182407653721800939109590938450664145645819143902069760954910846400705944641588505609333534341514368431338366401445188135781238571164375262075923882842045595542033825851278134290054125833249363175799415281682261553140051271573324968889350211401817128834853721335035945026177140583694213142970916907196691344024804911404458296244236852739857429239664881684234246211056809376473395021608689118313911723129083514265651244505306713998298904946903711275949609995902057197300299270409016947296998966023538793976118278830917535502770045254819473807152137449998428991113415116808549974081463556777248983503625091570400814806888996512925657848346357905147942045941216958998964896351398204308275261590906971704579383839495549929609885126624027583792794304368303003882491996410665713605275893071107320532128127170895437170512755693084912106712168452530327345678743481599149481447180517682040248244509669924504004863251608242806842592862895526933006717229647415247943519217411463260927267973406937227101211680078641716353958589401454625395134782384631575625978618634221646961200585266074585389519706305560273382488146317339321795114211584213705495298532696387814652465127916080147328664968195817013273869897663465089354797566460266727592533164597428996345447808311717918874155816208188243578940336016815484651314500404747507274491001542345071768036086933097936538168860221830169481647791438694554959299500590697784621961406931691870140068471610039202319632692751407430076020323957111389717209828506315124254226365433084549520649907349328345054538678497030227163768455600545163658728554469723598933707238201786192907821494926316160936898968837835310613914326232614149250271938755852363800538470528416843061771121372597525557232465138640637481428023578509745687983932300563462463829221171481143159617384915914144047579152830936570847517635897064291746727817335144790749369399169354858535257901006457574377212716260622692788767355785958091618311361690313186074210376292064962825667459433067650056186239080357223372668783681296467560241094003920216995216969846818763762735524032633151809068469598724207190109786528756358391716775976863729982405141817953249348399100491626688055014108106918612710911380791638618026247063808928981312147687020422056683125329046839059654780963223854579604286972397640831921590816534672245155979307833706821475237498034488484226111380646586558408975045680765865651977102607846181092524267373192662453610427321141305862855071312008018482613364436609221819825582855453153422572525331103067906342984864379404094740335152501761511376446040123738325555155037086539781652349945643199303976077971195016874214546936482539558849132258583041738422858179043280977669034400398799080841069487100569440480932069556262817133343095432629261841380218725199358021559795969741509697471024465337788953682397407038052361371222092911478249592246225207940486048075576877008725476124677520552800131873667388768668564669494944716101782780428900233978736778650422958940812717467870857899980365382870873583382314834778963028560625450157871405297770460327331007468842246079209511119985403534328764303753722790012045351053929861203730964296971762576044503453373902803788432928516739211087994698839492709088326176439111434092597396271631184575838468924498318395680115225479443303342615188439655946058690370618135686903831076228643876931191577662926416825053394565757267286640494767932448119143604398637973928084704748391400848809972186200542096746606639534828025986694118868348813965932262602370658905353827771459822598446330491937003397456031732809194911383044343786792843526949097718106807693155244575646923226438223102947677368908496651361137244275822127684002120386420014726847352303325154039849730893727630158667618014077526390938607418175794715914097551778604168982418842639529425075529859824295734529704169840651390454101132046293059324536785829053810547292429771781889149682096215938716213960926292979144789584817264914387006505729948162215406303689897560069505963387667640682368269344929700227675022885133164836836582936506864920426208255890877866832287766247312979317010035178846010451156047418516692838616932125821424567206002498099049592781684208244858413402210074188644523078694173205674012765226146536293054807371552917253487602407864054307483327342507026233487806985126420747059405026345496197839294096234053402400643213199187955875511146736982238614740540438314896145921305536950181960048812215746164302714404036091225548290565693149087985416837938939664629702249542845005868076630729873072777692433617057969395439760506705467883230046324363945343067044143710920060815054562326618745362066041899638552694231438625080918192369437635564291023332087032583988459523686347334409113287238185972458256645201276830204945022817335202134784237446293076911727527393492095909263241933486859442250613033811390229799991572611445991603328220185043084488692182691264512168229919236904070212546568368888790182069071366374352095704001471273112417282864917454515269696738684863172037424357293547684588504128861368948810503192863377726240635918073563666284000085012041784912157609360476683458446890586535956538378169486698781846325308643949519028595361657649677943113221784402394724387713694327225430829540578574434992655981257703084739860125059906647359874809946355946999054242792132631258318866350947909226567798698407318687446500420757286497058108997486923855945386108270836523061588910460632682825634279695903421325914352255514524583195094040926290780073063419017292591077430424263317697085026567095166848268691770564510574622978362955441829681425307175276243619030369044244805375147007695302162494983586787299411562563808509092620358837739136610849152801780715144394895484044936642830337406637279772561760157083260695253068013998455160197438565917935637122663889984500677300489440416627151003318212373972114890316514988345932598216275178767583064137974672944089787840130099353447431106232770976239002600018798582589996901046087609406746914348529558798015609596624874590466186267525968235140357436914833391896712350749769043828354786363677364543794823255853383723177897865190872181795716149806862276408221289928310291424679884882220257332672333731227959261080778080031254465940635609123592290188344045045120912470480176042107498151994314845818178059382715432773642999232055071555480937675567980507800838360399621492789736340926531167598694464331903608050986404609473386317574346312594102543204471180322129053400446675684141067715384709040002729401770265437930598246146785583440252352705441926957718401561393835590382638111912638783421637827865671199133262216912234146386599065646449488321879366916267081959597125209751420539163521206394492350426528964742356906601575436309266463456768001259466221748559957982849062227176901720075460201009034015807682691624847358658080915577164379295410811071527863674652326422129074228904688943322018652444446732240395248464234328397321695187499851035106933825721888328739352206343808316266548143225455598090292913154821316629985133680113842799686868937639386737104091014384367201423109777154304262774753753196711956703789078447088610880858131724647986203821435048107404727279310041566185996016521511780594831630655682407010040411012074206743635545651905208352944093740877056639136680271197876688995833364717844997315356304964107164686569484472865820855178160724318306639989149930639463148768371033576891108141903676851737115100201136333692608260747225974579032023655871645415504962620744349698897067562997955132871500434738137426539359456255024952290804832170233778194944782228764082069273815252886096466804167794751820547267946534389304523115922246774105492174671277104838864065362454258275814948822059937733755402878748728262465232391643301370792385765315205303135427930093590063577442112033233590163541442295392832049139325618470547078116222189273834949991971314473454651058650727022105926037725228176312524270310173687036673318708159545972260577924849558610865676851252755697391139227867138696086813552422804940195996347872171962609122123987859707537739804793189625274329454543766089895208041156576291686879414646936232330372279975783894216931630141445406017498404902407182021903051408959747673467285643556478661226382209890699213874691853971934876413976180457096398660771725167058469927572567804639981560363422141861488193989302772041037319831207106969060247976637085843649753082661748645341646270086478964979149549489773072871605139293886975993626186790308369275734548424299188850958132181202747598992217635121169662924256329350812123508404507785705216249689042074173431606973898968513165498433914302858133316192252776853265554130888601335556303464590620800227276217347676923727619336469258052856718733366779986944893786138542938351737369841853089710353248588581249579094000155499330960642696656272247671091024518303506309396710150665625864629960291590453753013461525517504077918155199820700086385712732289694034825192131388455049370614557507126414194467275333248981346044295116418679147108742871202718077166460701737892443043388307108352612765882330663791475560843060318980617289608990660620288186726877977791499986222395813032416502805563683333047679836702159517045065322608027641609546486408759958979803650123249552807601336115013313779590902528776003214949205436171743263296274026901398205066594753621606617164679098742918905631995718147709846466946048823133142694149074755301811685215968069801648356475395148535885474270901580140851023045246260137102871917613088563814452273371619987435151349486711996222962298186065231843154641638830914799445050074670346959684511668036003243517756124175092048395041251424172019425457448853083592519037475439971633291583693502124874683048614555308003675206595582332332984548219329732740084339167957452775088902688779178788005639058456141201102334537823711037260348878998642733965408588150736008774680065934492378658508025212292598544563194582903127660207780730478796492366133570808217797807690198449617010209015713776482611644964199371520467029944854544828256565266830243412325892577523581206586339147616531749435044012018056255146246073965062318712871032076042753541732209736256134242024204054088586773415382967321327259710770084119424384530414728568678421782410288549365070077347658099971394674721582605125217462498110112720508368191350842830250750126512472291083447347940740478135810525087468775968979853516522447725525775411265710767295599348882153886089053104499771572701586779845282276219879471834997749048935391467569491641781538907544640951633068467879257736421022433919078075622633985720995804521603826575905937879673149550907374809014602138615028543693375582205384272835518483433870760524604007951729767061617947657914713758642264808498271043677589204672720512189827738612380157192796440396994657542469766002220988443068036479462766857874337480334995864617805043589681465549940352507714340484547757527537254908383378976798542186596985055300035251724930084835966859627665471010182272348728779723226756078519573774967353079011224269147444454486700398545940759633556161732990930448023613548977391830027649767473722142279486515403659314012797941201170820886407515674770529398753045550139188752917109435195397836134425414359117308878465030258431374794417214146489040744383073696168010705987626002483873584157582138052576968831553949458304446699221251221986918040193701822253479693386738278936256285847928158150766506128315256192496465517983837098052192491534986115763698369806839937239570108609582683176598519723573314044306765841586463146602972748517276696979908940943257736541162145355644213356107866969685315139167739934677859630531093777240549815322315341902130094254800413245085681464223982794107955294674677800349110312920380625790526177721433905598674116032517348179466722135407275491557659408721173260242359000971990057293036590045258753921630017448048309196830088301464149116398716924146080638555325252321475145495813805514779874063987009910983415454012516446739282970791858136206357501145655939825956239658947006098480882235309647113880307964088900682608597770875768974988221576716994217516273932784376566832826455573168915931525405974095628123055735286768480924966333027978994889023569034382526116062911232882229553016939886347516815773174739811011280873945736891868621616211716585939916381055200834944720747520419699613811842569839922386839039258092126119785096075751605867641046673691650767339382676397600433401366782781135329540036809413042307989271692575269343911439631281983651669871628328333406644092328317548606634682038529221047380735355743312182011238320939306597260176638251761609896409352651547087165057228908415345285749372447270942450732228343363634532372851002914354545688202499492530382959808787728469261459284775764337397618207807176089682684605321305558721793289384124346360620116292466602041481967636377443259533775690907440829795708953768957192224610896883303209932593918855926830853831420084344255069047409365034436171392267634480530556327355168773792072115186217009001163512015026305201769578256785373138989184777018751104582543117463504634235451216916411613087189114223717387676418138860914003293913253358179324293127125522832881332427766751021339631220762027755437909728818370083246318711620432936574105100669065276856167071435896553784183985004180946791904419158039444347011785950351237171274834912973184680781143109665304209385264506302468115990366817516133394317847628060572882347687711735369984311484485806043693171109079342174749191768002476729122498519233606690816386238920979591404243943061614728795503985096313833666654802237867833434841756928349306136123390476772473857358032980209706528295746184751966725658179480926355933028246783280921968410738546963980564909449240996730890921760956411762929670574429755173876137257715752312813312850620471038437532359518631150698342310324567989146939124474980821405333121907100058287080662195532484671758689054969312962372849373631071283931432530140965349597960146840381560357304912757454420602003961495211408428435770680716866390917719910943563278872186197500793937561622915960453345958307126028197340926317137996527774863323403241374069952362390591722030309073278372108693133347095635280308317149709249224861837726500970711055471952268321155630140700203489789557034381138324294288605086913694872049255495321120884081006486410889434316299947924205145242815964002458051795489411719977280162881885578893733051567954616735506387128021801641656537893106446318276419520276195346096541601622758141153650476229881271886663280574556661862929406925562326920093720144872752161917339330898119436835461868422231809064943003751547852784342960670105066873746349983137183348187875850536518474795480828758741034792710638197626959302438138283151533471297115859228192298328429168309449735279052936285870998732362992194087815950171567749378310289919533715440918446303856120445368337178453155274174156716702423156060771708914577785627955258829313038324708411167508192983081715866694323828489144054231489397412027467115903518101465802400407993759985013758775096873191641465860313226769162651972952882084187458375779182322154328074211654766428152253770453853953896490340609528452768454061479708026928646623641571839092485800750388169338937541097733881373220485298214010451344552018512646032041835250341977986554987128986750891502129296512910451224868490439991265007996171780520114536852402725176737824938001819985005687670854495976688597848301935943180916072791413803653758988829491020081836678947557700365213721262386409958137332009668624622725391841997344480353687279636226255122221566996293227686458145274510823150074349446744659476337886821286048313797391969514951912825257623331353215484677496787219438971432623156235463946689920369022833430826901402094729761369716885798938554644261471293221666898169739158303945647948623327473653352789471770487689206112236261455814922472603194278327654034957035320959156277792762854669220641960187047119563123565411931272549052397753733772623486456299844535405211167806460305723220306118163241611220306966378328182753209885732753677551900906444330869123561742748597707665544276572855144514302815763155897061369561799706192470412628862423650200388077953028382216831263312074717326028095627323092732464448527287600794213506003158323874296502528234125318964786679803160822189410895467178853181145932712346257921964491758366346814770501509926874281961446843977863262494515577996022306668826214515997922279189198795699574837467280121742369537975475869403159173947832520775595261609415859154280319116828970551379134127061387354346616671379111759628862332555728865598615984835718123997492408127417785997741008574503506284945084608208216552746991480260327880218845625722850827601668926805822281583040169372776381128584079004788274667013847136762163430871916127092636966927755038582034930583385066849211585603761274350152472621834441079085480246850583000402606015424484124632732799585563962044451883263004212822209216287802805583144149168192605103138624771764876902328765402969430472536257856760892067704351721823564765319857108429030184979318398185141078745336304250933214958378747684125378224854313799354471936059225000999782129288470411657019267253137372461244306778501000370459510409564470685393355804646332368712287848653152131906363921813938340794684334906833952447658201440185834885388780736685882003346931518521902706249584890558195661269023609657034609623176107548835849507608780443728623176846724410732256278050042622640854343097066762490725957475917388541362359999516922484448002578634516453278383834175023318930193972151957615872211745245275982219284325051725162880653378182519998513818560582788580754148725510454082474253089812447930698682633357646161302187158865366488221989587323455116534464278678019805245300709822565882546129498983751578890477450999190601625456363424691484825319726756012404713677301623938931230433450640221743335086707805136845649276299866437712273217706688817898349781015908871013122964725721973887237902069299316211699327317867771813681043587898343085720813485994065195728462831741253302245085096286405055308840378545266872294508868937585461789288501732217087645185011749545689325539773061961977041745581823995874986691718718645645626701330259379163140037240793120650290819468527043324316507344759348150512351513485905854350149183595369646118902938675088649294577333174200851833690402113488320366068364322458582200588437380371460022445619801582002121581922015509168916403012716117671503261937658632100507944311709461906713389657240016614459663982189386991202381467790857733064757052384473101771007853300945290133735522104832612883789801037643790978043996434159516601603110371737654175625657164099257259097814274445966288914541120739103188922634692516726767497784558201553456336978545415029983639464801680519956913428056899876828458842270011982952133643654427676663869643000681710353687530629479169308891437439979271360686148945463062124913324182899926677278712307718837999894441969172667353277937676797921031344860135376724470442904243044846492172518581532399049631720693027666400225307051411496761873327014369015968651161461242080349369533041313492582323071695949917402235961935080236038570353112154965823028495227687521356812546939417273749605364169138607728823345756364782685310282896306628603281437811711376034597623670118091270618087633248712251171065194124652377780269791245386555875643986940846809549583685763030705058489443306763475817860179086373981302021155013205421538242616944526593919723498933569452380651702056445208804313676191749435729579914381875595795279263581866884778629045296947163802796255530064749005482618955866357290759165503641103913817093880385072010192479042154670849875748339146770943946364806747822394393339839443347226613370854252333918306742151596856655289808501340137425410174217857650543858084318295767451298492620908724759530386908432446737154927179805263659565044175679018019765343711656096655594376364791261607535894474413267176503420352628521743280792233234806566410409234946171070000045422888449016469740607940784520484197196599143200233183614571268715413397792875592628290197938956129260978077768939420242079208684820436714883904231355848741140623712168610052872300458734401106705578680635305663673063801886770324074623139124403113238344212799793889443745407302341646273830045516930433447573159128667704856681749676158027139072113897149216436399464707114485956015722639181033581386102201651131105686675014665591490510561423848898740204382763016436306274548757385409625357876603282467279128620852270701592718750319703982640733980278245377860308351332034336758174383859945281361262086581927871592200496920122666564233736940180055167112770480494498358047317311492219150087099987600597394083795551131844342771837626318231874745590522419269090802460655463380440656570300459128746454674946993675031859234501253089305927928110658127085794397169312390560796650833892123204096224786867058259708499334458824073996591298623126782853109686439833357902934149931179075187965504841776155143129239532429569180947799177769663699914666394733670410790707530538729047949754631752103614851006578698097561253734284228761723452041990335285677749187917584386590122950342306208085865352376661112666008059029945259012420333932785984156317431456648695922672728222248586214471264447911918747456929784246674340788487550229265509943111982661751727593754270793010567277661879304539842434167688375264432533512472668470588702212643742879103369303824795187219933598123394435078827832140377001174914044590570660799094924901510885010398063030914158514852131956490440783526817885698899233266835539160432551155498953775133501131989749276467566585874231395779275175279300012504116802476936345909812552415626231040021959857168603163072391778668557223675808399301259444631565267438223481832098742794247965396507076439416377273900182288666017713084921246023076396203632212510513471519363814432291682736489091612211641991022835561879161245438324447747187337662045800632804537036159648484015252043228844335537819245150628386490411586593792453487660836310566790929822147218490029089084348566414151860538754874518364433335008707085243936971250159211563186411342749059963764516526892732977448221312512430996536977480929448477425756001955214607204854444629161167522420872332201660867846701427607634880619518685841517768964743336406103167223484004892912387894490062306195398937470686209003467445525179992727748668869539337657104562340420347235652680197642596714212062338609384400323528970432866137540085043093105241665226249982034768558606034775750556429536325432349328433498587916908375982439752749154183189413454395784167750592769385257881224571654792585814603483041086771905040460057424161810980078774682854901948452423618147012581681807998174514463620560236283908070910337179911769559090285776688738529978283774448762047300495997155381649362927978184574788864628617721427222088864290313192559301115519844505925989001369981652292769056751278174236277953524794732251344150362837920636103598973870531022190363711629836904892419806646355090181863844457629204088440565993350246513532576430284662296605159763755669748924414347325110921400883322575433503303635663440185812963327850006908817029126937917152579749175151864327165886041223727814561274626938372242306668142798808322180679124114115615078110334396720070415922002960305454510235242107195372157887115088303712444936691017767613058875014674489037905029412888831037604604383961732216316788448841481659083175839015557691314601238140832370841003781905135599790008578371608905973995038574056109863540102766460583427951911749705735417628079430213914793967790572294483626047657421039359811128850400104462868072425148746389998061173670434397199165631579035136537238639671029737517788802649779636434731831213332043980929634203229736987952086849368350477840968865488402153150744259757949068556791959236085845767139260173514869585254216707693134276166178188643159513495574995900147087524098819185887103361987983358036065173403507364417667236383047281290194935591959054860737680039753324942707571831434480959421610453184968225747595173530950668701355723861371498619575315170612716761457047956030824095086723350193853348931170075144348155921686545389786260886844123844570753801911263611707834387004398411015683497168811098970302977882118358925357674385894695409758822410121818198759880481141455195097384227847620769006679580253089283141598429400029137418019758147949299782893190342354545916791704007810832077283277309733339501135805078201600417616591605962340126350271138616476003886858042197583040160057046156210122687188039826206691314657038746378586401976154585215201775496880943359553243334138256348880335313786980000807822552574931747373873423140574053827560406892758638829263723786675497559280287651865728919447754470225513664174012552622279307421026481372243483049525988571052520724051758552463741449017839763737740499071346988600260675096515321313319666828853332857906496941752305148637553986568273309416997936216034730497053777384081343414470759056193923700798797167719088494399407702168717671163637685161664751048442466000295965821204609819123775363454329395573112978563829092236169057763927003440675570381868568511959872373211012919126404682575502108604962543448105707091301231918742899165775682220173808967140160057550102203674932661589610408341990422952978716811493468769943866679812473350310261829506272361191280656076871173711074166758968380686254782036254913002194942099818371003346297745531500226541127506752871954467813086268138049517410415871697120110516774609918094567888897173955049260224438621296837905024552092932063731148395873472416736771082334855705154405871893747279955044451685034498040647128936426019963403206399061588175489823237289894965382829243372671166887673192228469062621672514410041355735623748667999788056950302384190281968669659931907707985553703107569628681240055342370481092447788240455484768648546644902353645850079179194103213424003045147317761035199091861531658385023155600841800937781572190840231760209830534218894327545677412599492500713041844889409278000641369251162455395339658842257273102476016568669008075513092416246282198715317770185906382768245837331740035415219738561821074712615078544761192711316828967062448549642592417115007717193259155999047181647586937829164603814722288526613669687592079250309258897133789098478801156263134468269923949584809108033561448214072692299568983855027662945397531473404707270372015769311312179511063549283717910339766857875394752645541857841716900604955333126421276400568929489570738648679134892775037744782147605298883829162571898009476098156776599436107256811329490853695212479373636830327112410963209432724500774328797014077077096161103026557499597859388130760215355741957691063621582232222169459015974787481974244087816507419922204474788648985043462147807948367693711996504325780994318205073696856636194633443014804935287530635241330179987510263667424675696765293571112470017015670301838248759581807838023418723355458703140659287660648099918220749374205558973079056215782020216843122862131034417748625235244239791455063823831777506439090088383318946550077952918772217559986003396608807337627125954963010629459553239334570094220074687744248949680675244171629730004707750927372059072012516488700086525679757904863471967453053051672317079913010093406541859575446688296069753671906584523661961517152308950932625637965130260815797661988051542292296871336066267710371373174746630088021450428762022651434835439272488896537239418053262879547281298304138894625539754923313436593990264063295379080688692087522709892451129462520344095684832648989253585332700705028331481972810887541742690920875219972750673761186681976733241040659056463550759261894834104943227957370437636971621217916038336863038213840678767577211660364090132565953185090956971697299591423088175740685530461201658113039044857845440168552850282244132450458313763105875239004565641628020715323985573681350305202210522211837932122072255798927288117115404293712727543903835821002461110758074715418166779429074693940794931453956243474726276612545120774379605228175886435401739095592294198519538242371841382700258769818422740459190115046191258839212733260898180874351401422226038712056019879467078316031635789678050675828402781442799194060036609408689876536393058698256526483803825440919337948611554294071154700726849520179745593691987481592100983996478527664290367475417068329998995915016517062572666945460944809742432125616162924732803840086857510280038425514438287885918405539842862979872129665450629661863239824555826289309546012594927494167616273296664351276657416906741462483868738132692123270941757750751887507458147627144521966561731192307000894117004229696934177431308652386844626273918796390253969196841925617653340338581225681591764276987488835232818777310043604320673493052117421033404141517449387988994494361103369858921899831452849270738008257049299771109818507588796887110880809342974930089422750498761672248492024936472294280183826777168176196296268891810202045937603619016691811743998856982755200828309908847561206763020340837280538090311600967188661228488086322102889538934763364442617810405738066732518517960583286758311622962858504687882795422940945900436199515983235602685037504828792724895326722906832311792191091245866577395771760154617728795194329947468938171950103039505543985914895963920366203660673351566755659822056567671193153251938981608976341293767679537580636671868388065611254509682559985474717556337375441831788476229231384312272222538859787547856152116941341969088273428659628187597643414344748542750654395582450493273767722084950192835082094953804612150725705438438415017518618950523960575754193978008657944396573186917659799577745015392958348650979500387115105570578277269431488256255613801123151898001409121360189500403225526058837910284825477658767052436540937077556234706754865361679241456640794755131064009130949260753437241068383918287426219225312603891709632115138171765430328678456618780037172199770617086081687944883547401325082798256884941377620756259645262336507425660904674313251349969306679380551561180849679754888305252592738015153499580462970339276419345563748324274905450307280486851791074709320377350190272513192182548819140636723888261812731987542688368211788201795627851077167152503810355791328098797551009787734547198726711305867325648731974535085138027457474709555781172372792330588987381917451549000929191942490836825225662796997540499347607195316199257499359671515528784475587667662945995348678403373680062831534353221814764939710018142312200296930518513643063587427080229076739475378030645049200727166145621322692088376669184024050673379039043246937057646859130068025266605032927244018970335588476113986377003361045782601890590303878992777802735413986332012960924147451949947440639792317771721255389549203557724822399056032980189802491167867239182652186034773333005503053698841040498347990081065700264641980709966719095560862476574729280712270352318435596313929738937488131940272461762503513000534528851103257086210845727159561957468418819511742541858741753600951260818059025753552614231722079966051751921466726741404400078356855299323174701762816513326469239039836577106198670994719016169230895837353903049247106844026105719805321814104544508630943963156099355003976012295439463750982339399170361670585848586737966560134888010154344215360778556403809213810347718397490815166764521305638751900285428219809397337307771257221187480356610140251017643352634178667119955020814286359140568280115758822419123496901673725136921196642366061781039253049880801896012469532174365526730089757867426088268537170902438630623560582642968933259099991394889606077993817284359633853393626080415803133739610181025347872628248742406296130239536490747004058993311033128943575792845279084494172041405727340782386186868651116678300853750257539833520734637528912063598825189188575270622641708647123227023934332130207730341482857664348975961591338590920124864912107322400376619209260935505950448281110982744152583905421827893602270751170414019892017640988360855100823812952964435134208625893358387986333116762343227446654842341543996420802259312653896604675159311719267124315298423709759764114891811923154141444744365706908011240868318118359172106765335162645783128005293041304446118280132042021459725316071979478135032450995018250184331931715228524933631666386618768071562163546078290656220432066797818748057248624052125257268614734675851873718344764076179395628452561173729596954358414772795090943681582684053486045270549373459335959775022381635958803645175556383202315804171285096143319573348035055451736094031398318936202415483510971205683234286773360768934803064856598814848595128268925538628167948189303696004995209687730172555276818271725005520002764874523068869127670144907536396130738943073425751807998936621767390001505987155671682901410859612452521176111780291561289795723095303075953601578491187644878500130095145091921197194457489746225258824371904276451012065562171017024656682875531764556894080825203703535698818864794149962496040797807055108822969564895978108662816059599584598023776043944945241409337372133641931353851150445614544268631148434371246840728488467136859086978112137944429758941770100805191864870585738315762029769259689650858142234121969570169911059105830948438758981095839497670196428741522688215430529666634696409250413611545149924804288290125124787677971200683578848199079821394264075397312414917865959039956365462241434190849704600529989475230917067411071683293425455191783238378079645288650716649995175655239331092736443606036308134497240196825002301293641451924289174726747513875454257125726014555293283464463760702811844915306689578671011023680475278627303937010066375742887434362461697297869104884952687378142780406194069770045562134662510505622704883336262023314450833351024719617546530033113371893723630022954499848466775382850485200415727394889770972154643540992034015694393590107270679311272569661316884340232077577183429375656996995689864180964957653582104339555165681196503430957280218565014080745286810705532906239353832184460773691250794190626019689368301573354143237083842133629272838180900529940270626406715691155276717962152697547402236059979169866340275773398416077567933341935774937194423549292282306432447594495369572600403288236836239200004300577565100750945402142269427919313703053790612533992275308147351006755283701082324965653648999772098116258363821553834465143655447658683539202701749330438720101083185849347044526915168266582983497803874012454842641722640153151763564205880223267908102046951901886342225584421555225489933652157386607493983003316831307283165467135714294739413000435663693465092297210919835941265632546888468760142563879375457816587250463868833937453499511051349219617672172032883358006515962302142916480943438188702052956501339171267329834902219939582379653582361388779601766021029918136361837682398804783981140165575220259749817194760573687197243147537829010564843206304497479154609279947520289933874666062326912245881661734715799714131623231573178764591951602292119859000004903427288475792378261456526376559862742780077179501863804862611304441523192054787138467537429479329333053493767338493629233231753446049425650542187067501753976989318967658202467879077800083658297672264942404846820406500782320122774590604775621215287416462510403572047632883932387909082721015629425775621284245526139726615380274448922051164049122038245491729633045619291915666372904990388719251013785292502276876651343379504849438596915321294717194405279623193960322724438002222744280300477073558168358293296789184485612975903431641953591261918080345222713771224018018388456854450231108969540299536257415734558520038479449153784355146186638727054386625199719531779518133726029598925977606147597320064401638207575784046720162142012464756851910126817954608838867302061520161517248979724687032967357541490557982756135696357846388231212625020408509313004803207972535654452575972479263332130687030683877591833047434975538290052121147644519640781656861166052176491016197752147179039412153952102440225349246717812723340665259956579154409272192901029572929717279819223053415229674008951691467248220475653656108362760233601593744579640231788285893466693579253790902303135825317786363873340102946612147444425878429865105607559250494189396672936405032817355217683567082384244921462556420233907398791344469945217542492078443864276451604452882040078900202853631100618381673495079741500700187625270450547371893871352292935510831488426313029379475833758094177002241299434765698247330227939257673337776439746646452197332488002182457511247372442561291079281094606912645840567495343446318975252222361772624691635059866033147508999859468927204512660658540857987222632163755446715704109416880919820387549191652137493485747901396048578411739084492167721741498022572807878055125443897498495766785926699792064151673349317104942667107275150241352902943496347963404008633885160796683522335130514789374318689617822220134426904232277331730873848710757273680122044944766438746579612067003840859319525538378578895116306408902551782352255532453845220604748575434401337602075263686679104540368289702842470385914406018885835905484097783530709232405605673924249368100554530938474754082182895409305587801206088166235536556816518143690813977639080494551622531996435126231350291888622795767766791333366119528157129320857608797302933118291204499677655966145418211999951446219191125669596918312922211515469268405156571724964476842150744143902829715921827780380552300031851203029018510235334342811679598007327012100157039751138959304809544734973418650374798134064146360331370385333453308683425658765831223173315563827102024956437671915585522693145803567712273992178458907330031650760442318959446512173427470166654148700688462729034118596697634489928383085394006111193306014712861450240439754635116787021992188348597696455706345089941784274962698198609290661896236270193879804395904054445848469788642784146631049308856606541466275316595671553569307614242137875518551184056761841954847451982328718395406089816631653823095357660744528447445349628643813599606090261392830068546085626616270404167602641688368846971640024359633362144447637752165247971471764814056045564644102076162631476542746527537814545993234427652962807834418878005176538409524842967253252688045869072124473853815242981626509503189396800642870949345309743032535416391484954102243818561986308508448538023473896350220713717499970090878651336995775178364834948500902111383764402008633889050688519609109207010810141241691478580290396838778566384020125546297756259461216516115652228385914681905105974109332113307807152123872591146795976450028849304896980771520855259087072870228782468407873442950422817077938197217678217848291367332720622202036016443390254743093511196657008534293673150442199376740669420622783496460554095737130768721688226753556795472430949857899371587101536299532569999455009569860067644355230012161772213835281003626319152389762058452563780313279100636818071134277093411500682702283897747524714156427701580444753579142675018623685044064289116220479501662795868431456898151181877446980313391214995736064987747200495889450164605186197951742214814849727170756342611105033148978271841453990344271556393484611485765462649446330782764675409275917654278858644882735480263705735788540867638299751638515158413745700913235212127500167583371286224613119399049130707926472530659162812287590662411129846562690794730777159938768071512404322169346493071161842646906326883578407812052869265919819586875983086117589048903402081467238261349169644310850989749760796343499762451757118101931433991976502720616840749073193928112970364787970374181143905319045404691101811308872713882143132139072359086009726380920209708100579485180507911733323110944734906596072697806927082410169444181708561284405188142534981827899439622189061548896430248461499091735476075392007409262723820031202681615896715189820398623259908806271099342312553720816799575639864095887892008943857016429813092027556398001537874009141812081297331256845121924685512246027172540880747205877603626825824141018072414669027550471253482124752491724158681126841486901337493362766280512695133446639163356913696804225695865092844192416261923534340141080562289638392490469603840328631790793611225156407325705417467369886960686255933579807309063818807304426336774112706910678561782090706504915255170210183370127125994384117319209771344965359436642660568075778404673523253976498068259027848624391506264520956340057932391626948873146907392305854504829422972110666145229822996554229311488826497432008115317208055745124500055869263509867787693419328428279099773050795646500238153866037043525799249307896025186249869196572444934617370833152637632485825703196078044980487146979118636468378013607195638817111403023020241433240468440458890235048860233877826071718910557280352603476906297446073965826787961789529412522046080076193560079134186571341321067655832007751005273454881090993110420764965529168236369847232517607657506506015234209680307401558244531314734299576238461433972841211774290223595290961123543669308140393190578610866438355237489014850406053747689362093373131959083209967696863642543561264065251734325827578636172352581962796052013141027643180463030143494446055816118237538950579217278093708089946814746189845919540528388347490790695031774439272099291678767559327166181046494719947896358201280705001060555107098267327200125437739905048301156639965538587236996536404688712580725836401239325154281384806716156638178020511358407928061656274328229941033141727338038516121214401318695071079156561138256279303965948008650216838849282788123593071308813459844186496234260265693379214217652159621449295038210745910045667536664251165497614297419726732863399513111011690980866605512720468170228599193789661712400383437950424348097683475575684864134411094054542513450015313410966749419847179214258088550562895135951672845701043258493237184457111436811675945345360595052797830470341159771851486452113258457120649151415116147270106760373613262253154359244710111847353602553711210142470012850780374789955664623596073543244104255805523177513949361236961079704374189514694844732454759404855232124197694420983893684034806227114717374974347923269571292417502394320532310088382988693287936616565679443538754589903849610721431266477869240852242786689458284634580362903063870443245993136330713515572205407837382594017334959395867505575300396149206290393798337174632368947711542708916760138650891963350748952262202243152923317357080038017143534064920607417661726433204431864314953550277842745443303289036376546674304233999115671344111809317021267270290266939642510105061877257812087734483353921751621590093133517836625451121551246380870522877223946014858805705960959927882103944446402964813112015059025796683843348496114841898872538713673758906949471889180444894962125444818023170125142486598502975320025691308057678190747597254027320005504095414975665426769132424260520740298555438454911665457999785823774144254333623286384199487908563388938797401398987932061175181441565018359177969626470648545395853896469332918377387986294548333524577561731963794383016084823109574697313738172737483719407076231902320530629025183276114936038497151802999870862314147508487831995629786398060169194481682870465291819898701856342110867393861085731471502852648991562362646572283376090802100381682114923239984889919465979711044774000865044338005420494525358211926589569759352567285623579903018374515524085021531337621234115317615911151450872184154163494593622245767644442315166697149567751166852615113764851254890218620091514957223550365711331023829442229647062970820860973823433741480717104095206333492386506457353383272722188361186226866780625758599748114784350347702053384015984931555091717479294216042018146699168081608313853270869066851334036692531528459719384844986861295871932206739616369767019941401694411705707403843891875608728498181286726334611959193347062145234677233006058191705215511870430847988315946751396719774615997321486992008214014368899780307420230988279440388447772491754827344738072795862007190113393593623314345759679261727478110894665944866614178549142817323165614420497425941008375197785486412356135798717148353454957284057176225525095261841243700384095489136037772080183823284693302167514918839395374607728136439794984217486650662439221243434461675173494936697844420470491968167186268184738523176342722174866128850086987633936640140422278571330153308808549321137019328770387419647048636776359294593980250624344720882986320989494692090461119982828421162525740264163243640480893693406481459421361586314410061995195174972509932576553699993164615347387597327210039773611240506204237311205902604499271149083500292078883714034178193949787141692602448917648729206349486145035247861593061016000130175858311934959057375141178607715468946121268089166379800087790606070891141788543383085080799186153577030135105819963603342751301574124327401959000917052181472961358233459747876211021642210432877350579690362806785721970061626021036215097757143146529576480129115956978409484869980848448372537950504816203892999547546943162043339477351200207380041699660211668810516281753733547095557233101396630541172829345055816884245643535420477808630106524847928619578844465412961847966821191541129691246758500473511571696351531262685450354133379563978192653974287310847825947400694224016615199479115163435158013505525323525583476332222241941196913068672131612321760059598432827864349634272970344021651617220708906692760515874294830116271575977198499755308312358176828240216068411852279521593370480103431634216248993173164549924549809818277903474966450556441096288685514255031319172698863353820085511439434761549785144913758869417634114450091585968065396433549790318737945689779571106450190521159465990882624765187330500420885654028867152092601316038161956944966715905334024945555431217920314205225642509318747552762575257608315890222700017676425611579183796119754342373839162643030336863923612623468530963864841996376471405822741611551585095582364078732505426285639318413958914484740257971449405632563736931008901455429320753284236674295721743894963831905453882598980193863183436289316229680666965584681080024898536430155424626185342200310499334927591750261305238441620413353313679216888053061019104475133635096786770892032836492142478534036076452571582072380099405058830901380886538291361128861606001907347675168817262384118878639895698649297270421015884540419244620219965312608355301390717531924128068985826022845811922606159247654272642218524615959235986610492469522940002748620001307069508638462022256774425410531296167420999045334905378670013818888331668255082560791073083975381817207214497711248275322818262590673400889280799106516443604000025726604342875797719242429017431075269476936355988156950740252664166459800381941507939546855605791108869351168029948252783857689510861509898367902165148543347803979627170336322939320927959208915536705154564064616664528578434047621214421721074406004125389189556856718595766782395104676804031715528521000967741818791431465632977995531630592147450635448810047435890238155730237360907423255255664957480946610476196957363804864406693331610839297196431597834073526890228425714625993707550391245920944768360719570087868086688370190852988084130697299778535628613249787142724656164484201329524157181661690290233992412891501988247642898774561360244842627680802199648320496319899749642724129599978761300582374565490481377684574636819696477535592085028989662217519626090542138284665779749364666760081690948713496866197643475275035631027056822875530403256524391881875253424582914199176957049494976829115630493119211857063903705864508991204342353318317805255558623393603487841950194470168417064446756130024038864362171185744344088336905798942949442762166603479341026541549320132077279552645658529484152375407265355536858023570822733549503493415351827927805130884967857497205763129345263726570929860351859653730766853947134157281319402081903800805541982699013666986085947965566122212050947705245984320681561832926699208668226735319788948079505081460015743177804763365237538752055011288737935589910662084212354804233170863641178610217782325843023596085427873967608894399908072555668741271462724269555086534421436690062895976359922765319626855290881640228015731811757748132141860484367846274952171193726684727477586148866087490911456502841270676266725886178760119277462669185202745101333738675968263109573095517109720490468042039874722841137678553701690061619235912988341331030201134848776239509100722338751804998076290975915295063453117098184195463881551299604255703404701084550314201231936234857440736385635411503778674350208027057793712444818410131788848961142832146740058278058106243372626332966068688786480330914501926157780473332350983501556755448976876786411422168918419057940178190706161400302031049921796628885071341131560981905405903184173057854145646354804024682335327023009304860181069089848148729137544179008476685554177781555853306842724532202858332878695896309234864183644487395245143522352347472670881664665076713732782132452527762005333302872360459794076047287265349237836096724475262431769541733206685582195232492296612695874460065825059118607614077647078423596875940090857219146365583498676613934531708413326808666981868633358912976574363667811551495218338814040476958265634965024675375580677753685922171419937982063754578689993165986285501211312444509493957876372539127070484073205371022072110360402972516864442518194997648299494242459522313203886203417935068010171732144164947511543597311358755461176432541514497668547797864057400980987444179329328207772131757695918542019044655829716048037435464441914834835366049064890236502256487388519210866563786755409838537534260182538248394222654741595468787168660199953921349357258074579310655481985665828487283475202469811020384773103894916025245485924692182092428428530976528890739286173403220758971497772945907227773433152586633578428339243440209421289120622267627432212847349769796754205816203456598505230609529173385878817341194290562208150956033739056644638494807191860300402370447564042925667038639060353494762115740183449498537781301211847939329307236819140292947785486178752292101017220242732836257352682079198576542227717836770717586370749194722975603291390898571617454017367965979212058455366551892864660841291702619755808701889263172418347515588652026060629635744102303690223953995732893660598007168689269691807446204727192900010806919743376617922553752844258490972119438888816265837564144220001442148848188858260324785688383390315235208127267330171074681528579012930414608139255215800094347192741663819953235510344496259587485373450289414758418456315358383613777516461125480470738700839026831391895418704068920066728370488212792836788161515222385853361990366169086426102430799727365966474773565136338424790028951357487259782487706173004036250297403229872273800838672307396550728271795284909812528140491518077247321603083983128972321434427188168924684253682883967966346645215885134525510339781072144736889941784677917688754953869673206511040754035896550916599575058582254967483066875584011535835639365982100881052397006802611061475024019050311344217791942916106620289478560854129217448282048039500379479568509659344543860687921858606931421983983552627797379292193129021506599063078180458411676593599419507046258838470668142563463371370730706655951446379112300310283449341496369302816733574286634786407101871475344668425186598494530744291781886476647615199602065978212619426235412301665914500373383019535346219215033840299180078986836747964788270578981674450558425225332160515941354169243981258369746627569619528343637899622111122817548481788352700857202618713615445171193443293784616870731168620538849061883711469710141948329947474326133444358024491134951142849813582514351597381288910836200421290569659430674230097952848904042520938688891981047671366855617170272879736338878226115087789579169739328988179437845313109573027830762408851661919456625234715885569228475252497730491632810515196228066656703969060656699252117539832044545704527552541495949167684634326399327398692474063243671451862926077856758366070855805039091092952890339762809186019350405167168993367432400140987245347728722835343639450278659725216396758266442765079139473721235292351056646386852187035205585535801145803675245397882747207413082716792365890736004447429470107173325389281018317943250905416052141802026618896234819081534643187840640850597187891282408958624276416388605231703893017561232802052621881796436426637553396739837526350627095084087255228487890035480829694406403706329842919981755427928087313563100089771462157403883991010687954378167346522639593163307385691748071836911601375904209035456815187349831463368632890877723859242053661155683442607794171629741973596846116023867795823211575711439499525741557946686248141150173499100078699102103307240041236586837386331373046965012695220433972793017607048365120269739178985020842595194102859283680493937949838157070114810894543484604751017255977414807102107462354138520464430890886622752702105307845696268930887465441369693524477971051654253785089467508614272814742302907112881017848713288142900290100941039989920409729569323992168580277971523414776629888837911834104452004120151968359347219854212005836434981888744125071414408587853914060591092126231778787690203044429527166938602714798348579146253535613973534056732814783517247238697913952373690576779586625329255675354475471801730753705420619280602523251100991772155480607953797985431938098869030610457103843364941923702960584865172060569730128535416365217192089844786645610276737622261673999372176035815594836994965139149456818778967057090809903323616406008236048222411106932902259028322193409121043307051827046610537070081818323866754226971573310364380877252673782817802878586903569368214299976282555548868563265096030999796817428668619719877370044626561539094620910806379307889395076328994617748395042911803417647900115581521805842540465773630858558634504863267011825692539214755588834493411375809438051015999787567133250831657912723924441774494659946473246931780028885817866978657290542393087010992176942909829182522632261398944401736547799514519934519327887744869335666221724127074103985145358438964047187467458287935922113840668033383451910483474496361477122258064844293413352650897207287276513795590956345896948495166645775306907187386618838330657256071007512996347401872926636140948765294508218653912705669703167867723843219393196793458713863074113074774394779342401207692568582701794439741572215598120934883346510536702093933273962699375827915301349350503000224074369887266260773283262871749457081746670490291576721848887554476701629906925555666476041008074191255438145681837422123736539438916639637978473044656717271389574421216624754222562320152235344973935402355678073392795568022478286358669963299147820567858271926962735414241106580004035581662657182738014864172491864235909559602701850809978774306602437961447897396736060205919710011330221751624315680810670130269588864201617659955431152736803382939093785625024535084452917935343985659731411693484659521126219337311682961080606282581948337787289424666422712669740462085359316722772015797713912785270174334580726649449980822964866203383998398850092916379022536564975618262318915710175369093644081409904817016921490113333252729457617040986767078814364183856811649302940404330727617688992093817195351692340990703933814406487551870014615013393897510514998332880154645954503902388958517777897448145566462613549530962265427857948872208474623991172795690691257269951642542730019059663229633791514037636647750140748953030547802103418599226362637480453716870676989563755337715644566342303919425830817573502413740090159675256040087359379408510692225210452929672448437559521095320032924902428929424720015435012051378299021425055996438384757264049204660505868132152514926844616670632803820448271464669330210206312378148791448726313619595331990224585442029127486140806050769336137436882484237195966987238355571552777897801366463846641133718643075626090456979917222830766548716479412567718051428284157192186001086596641744666238525001749494079048535219703778201540237232864286405653507183809642997129929822865970839909152693386957845684690589069482762079834572575562713059237172349938119667913573893596954210486589286024987375167517672639584384809014163919751320685955611675801733941156986082620281057555758677593912136184922679610006511171194457808724891128288361781172585609952587999938302502760679160164108770958205728708479714891364137536339025839249696576633911148071461683727871915050629395676059566924259705626993658555179283113969358682053957044335852460386905054523263395057878904400664913249259969272691448406274540319565806534268968698501858166514561622800690066947586476714524407951889717670845492156332301724403485640260228129208414053683325060748806966252247281047631712277608956565032262574501191188306434440294200774231388973141869221949403948251908093399543349383771586897630216956899241933463270009543505636587926041272630699157534379393085524675053409598198370435892885162213004995815872832123989279788206852408416830358378326727734988656824250456101063770630640473871527410217221378783789254786885497181167995809700431218322344309444402733482707339798279690148329022742281762740146846736489326431327782413359873205628019547204101074775380912859075209729793616407276430641823885140976040617030819338875357615916916354279321091291848263665163237441983201244531411700042768414731563870704574075249562385978560279042349521507479407199068373807770897928220013405002786613212267327962996244145247423797217889357527128924170838447998424435322011321783949035666608442027515797920809187961975375037210679158132140156697795188781363780789848301072566374172037502226772181680664933185517619737059923756575501424770517444001596873050206326161117601792231260322107360779154164399732032316739087880478015033202083949474450696570841293142055172394498385207922667910876353511049424208944773906573049051493749282494556762156285921875200451789618889204203781493068483976041763365034729475997017411449846046369614657052373951308136486993289023363695749994703496637264120162027556260909924764278001627925733636019688272336394957978042132163395865906420519140923732609355394461780622971700980519729452028304143635308118956399397113577440560849880813082601114764123830332178643247579219942260940446684130629719623715319891371909684683318735429767058453960643414099318435568187484965737735351825499865015826872138824787859733581305589488856582968402055764897549490383027715225756537951781428527625312881359654416209951366861067991987375460156505579151482699846846794467870120818873293249573999028087774338002159665140734011309889283426876860156530936358466738559582441752231800939149370796324421911176156030795732039625813906841370016209553823548284128070768044856579134511796027733303517001012201062854659897185873435271747947587440627018303381216557107556137649117042649256505861494976750111334822817862118509798377715319293393529558121542446838030016398102302318058267316201492171187311277852706382404333985602277019127784477912695403517486572492189644276219755529033069546131551444980241119098862552278418139237736517644068345458787275604052619021553732408701837771778387036507434436328159132193886349096470851820273919832426078697954531367644133003281833688348397879513044094562613711698907830848643050523469287530527252364269408692474028817874676677572285596191127862854699306432487092280124997890346311631646092600541947505449900246402648638062912214549837774616897649445402221304848248193058077849562963717182335686508910467673203290295570088998979365567859174619081511439309830950115158773577423713574135142746980726791495505032463543156257735299779525023407131431739252125131947203838820978611322987056380623093709131586379801853747542063485916101196211706203449132774612153547001783905802778154425803189789332967276308856894175940216776037279571253446653753414145746865446546971961282845464267697748158610024328526560646018833796443264240070280771563201911985024700389194944922075563336148475327019467108987153040877606360663289050548454470657636841834864438598468901837316748163540644605741739809449982421629137445927280747023608522641294700996472186317396103209831608540738052906827204513074545750832595010880143590774851336976956774052349482129478046824621734750897613416912191489027571405253273076654424483654421114988913152285371776178886383203884837827387360751674220297503169095819876211873642184306034314639390406282194729236246238774177708089860575703512764709477270694088296452872102476386019757085654176921178352400316585540881049915600410818306698756043582505432021369721131825484359771836881419814123453561169430540639974278390063882329889140056007589389053638961908384009042795504003415264999716447433630153539362294502863944358616942213618421058770060391693770731346943336435911050350691753717301313964972031465417513319522495190968162550653165634426337489058913251436572960023897385336605497830002828709461454543506632440206065528098630527996616219737098440797887587206013735905488458017738205484260242551084250523840928643841093749485661385255727254074508458217513278266507514562065916319007969875980919005418444452860939932534048699260927284777239200692651983610863680817020271397400408345468976332598235421416052052213306644989356960121033869436976817501346107670223377182033974076909135062669128143501227527762896581159493007971420764891106937496635139116063680802022564255242913885596213563301547550579069459243040785874319123196571533920642979166152689050223071930262047386650372901527441557428667633245221323409045115845825221259997026449306498168447324036588894085574230581879756811622198808402033610823962911273025056329887054274251093913450199708661393437760864673006138800843669676754545613025199998639557620116026082302412850290706196194136307852381952245814862096576702887547496605878599562524034260589119848329818103640925239606281949913875381307662780133666093040694245585691983559431412242844024626619092507564897151887425740214118758996688413772882928986535693850225611045636854513155165627937650795277974014945842001899567120654957270385232283860748592519082632971812084556341916580136594594091261358674440498302503671355130379306563311511341700015394257225951509014918341089291240146184769964521284381518473515447783383074739352618982459509292395422353332079057838285809380186955095119516880009687522485506869505977112262609012704289291533863752904411876157247789096223975861491622658071297149081782800067215663123046204430669863072177920855128310652330427192631822100128934255934314389617605007841384165732639086035637153695431277533748636097372923099953667898549433656796729362194282591434517327841234516517774799884080913104511101962476495287386436989491512482783943416069054196419800437407891719403677485029593158844805355881831001411364312608025594698859517867122654527571940542808872021836203923139641370337112171826665473764959539819968651769576131203076334474215469820821371564670709203535799969466800197186427868356097184453916793027072012571407764325523587344891725324306999840668853399786868982205013533227325411430663010175775248463530870296812804269112271606769253845513424456376679999558808619362211439246243738579767487701156476988553118416352532597513180989564002673456086854593010114612793543455974347580513186763889332183044033034838752976022095386354248751259702986415100218167845422412157154876888620913967773243888342592135668262416864497741592184645669054404217391741646616214520304102342306683568740137942586537303279405910986400888003953443284005202111234545924056994414577946510074433824871111095389993514966732844402081408851848763723237138560689841544644502159225455294336215282850399537789166754180975674427205529121335695357225046262722417401985836663002142901963338269117978496735836194663062253039006825423853086417123490486646734489046022825702370588038601656215295450098138887885038203984653850974746525906353456007205098164472002665560240745100129326082327952911779525490729460181958621698766641124296914191735699162990885997843828938656317573023134448319916772948753959892265650748087930289450030943495615408991240967974122464367514497933960797224588913855005669999902812192450614520420043529327260760321484400057057889954127937344188030278390413548086472671310429444290724815789406843320631847979216664001668367315141225355521501737454191202650300883567350034042594735546527939926022771829294494798603122551852949146311686604351900220894445004039837213817789186056297988890888335362203057815682540540822319555064848457208069789736444662815195949788924389551200095627146065003254138744363052755400868390087662827619024717459304251412561047781706519600152652259093116526824119120963660163400718952495400195662099117359868433050965600823909547617534993945570005702243725343937804308980723709764618255989803157640694330462034159912747507480522527637350059032090684853357299254764664791069851973801424141287309372134787889946307940427164232805068841002357735665265882512703166242885654753285826832107091364729037352489240687852834485020567600241409763386773079246863177091523186978345150004714291130480356219326768685434505734585815516886658695569738305682871868399029702119546436967124891157675510596968337545706385428626202206212655367239416203739151628117427607455804061820698548412122834927242378434144597332154698859765073008721775667288688891085365761640726348551861587248785282558330916232031748815684310885932457828228133698163645030242752413877433935232389203185840731457560077453171131876195681542712888471273357140495786569194267425500461199269393909111380217742441481237960478623271447317355580541136123231236255431760704480937284871590061762536814805211020933935306449718044805487711977873248129712620345901379568504725974232190573459955486415577345849554187158626268166417805892495496527577516607650163743832275497217308154496390173206218019716363364714185472025193986618623402623905722781079556010682375075121770323455676538588581441983615381382564056325400812041140992720158995934077673848983909284771025494573198203135837520049953952569138544817375626249358837455672781746310750792965469455240447920932155112001309232426107059161524404667345783553495799092839438003645144691717083502706102816203667199076888249377611000506200010119412980280850056510117369093564966619216601518121544616605290119926359502159994500660019225808004037680084168215975183511528515285164106240311806978268138756539825715420039118467330796468732863363524363603148531023325879693221326269215051521750316118204762540369633800862110228187208538134882136430372210529873614174832205151144172339698537946548928756537699380864022248807899464528187072426800968000181639393120945018408011439898395299370782722450553578006848163694191042822249441266691719835223416678132315350370637126555587763886062717767889080413610504822005803226960758985345343823433317602071516108387526380239956948342740931561091725120008028400355180870088032665027877551599063481606470647580029045909753690482295935155884286081102053227116325936862417640995991955462023017284140272025588948089758632542687544957983553157173316792071994379867873993355516652357592753538782712612267471531989198979253758675467522618182024237802954344796802294670082121600455682178521581009378543862341318396485068007374664252252081030425047892529598101670666496075148780872989195468827042109493555838511668598980540838717562553520190399656476170139425337790548835875318755389043621918473670742140912885472719199470795591732242772469123442303919769219082103058236219748461445654798669984089100899643860431421570161583665324688063190180672941776156112245316996508766149701054508291443598052829891167844685634265420745087458401477827460708244000203899347778427546304881739186201068245930154590812698014983617327694917520865037912960239435206910155190220345877747098474984496950287364053561549045977392196707112647162841747118018082335278789773048057391395835878367454894446475842744902505772727494779897607184326323491783963533097591441450607846486732207824300746389959493855087601905456960777518621506101880354121436327030190203230014047881528992713658299876878228651225967447399694259065572118070694767766516708583693405490147085882304650041906855771015289430425944979817357499732878650389516476163810966336718266186954347248650887521509730378898697841739936904329612303191987719287499957371804076339572347612486075205119355032410833399120320707172283028653527562222998896080118072971294131199433590719486043805193849916796299892083011344403570698970113149378689117668557317302703519965951939615438022828328030659327143385723112378721027401087813342877946075786161636738628614274540177098487483483603372857109721101246857998460820008006481044505535294895594103390051029294880767319887944629445485086660130161639139648983499065523273785783795329371989244837601193506145765370459039951779867397666523357263627497212475368763479287203337314020788108821120768198241690177881533996768929074651499847141511579905280405625965129881587850015347702086210920773535477966859594175319341298286579939316267808356294223056693495021283543110057615392965222024130922945051848420278259490042119529113851271899695735531616490637836518853232829244462287648573488402506854816380842524466271715906817544317671650376161793892472476605726362579308254408340474029432385279529058513108421610173817620815176150827062931314946950252118801926971456415750558948509680887036777153701247462823657375140849422065483302636689750924609952922580907936500380402233820253097385823145354260319115117901903902539261546972660968302441239198370358314156506410878774293956676969356645544722908702975052974401406454430421448207586890752536530281004280401996885734033394472496143858656562083412558756947641359644746598676139777865696777647129464959457903408979415149327000370384328255538017897303840342395047922470785527863823235174851556167755541467520204635037753188613311741743076812359638897702066773814026244932539563290767967477289910701987769195747842733014333786327331541926242810578689819283909164077348447204346135608932080124797789499296242384298385434100342839102990913170507653726574964599784600544925097094178143066134846264003219737524947636373310988190249954549863278082814651732658706100785357531060084505683667821386972443656907762451845850450823429135751060884663367756545089902529170894470425177359925382705690661907921018855694727083271345046284518384513392455557500283451090462293064277955735317080586899727218780984601592305213986396224930743455219067813185869399903951661817693115499527577168427363770771387036605666763262353621609646307792220140414640889105702199789082159474346327066942557206263120826100926423257687064336772211109702906486300896340617002670178809643014779912165015165069970809743389492832214930774800180309943722240969986394917259358842762251250062588154701652700026137508270410830535672946166312115881925619034072638009549347797797430035213804864470267884805467126071216827070408264483953361103323100669512616352427416040190212688751491948040708207118979766381504386035556516192704041950921898018988625441416375776387352891158523235421104331871644867238495150129009602841071307914410662905623600788089091367284688317699813399429419965546361603104587150355466407082983538762706028191473203601925326251234953956900432232742281503085951806768946427386794471938554019933486299159405700289591443234424062036779614266316127816292037255009370342937304759679373991324387053286658373783144303977633116807447534041386686640223837889081589605265475198085299990078674924867569415674136397322246910559940425816096609915773613318245075228612414149985188169597380329477890579786138465048130673801834451433208337389291184942020911163315133005782373044911732134582353241490081777151339175543854973373010430818399327368828412660076009924090509194710912346663515163910799141768976124949306840142841045989125829634096767559539583575250982167365580043876388900797808510956027292420460240397092164635319261943771541709948360279649054892677050368951949304088847743606504625828350247190656365155921766295014241237001202504625226150002592716736796609340329834901449673695349052818661212105405286538424468061975835278906216826793476539302291687479632914927643206309593146705241828520936619873006256428727689455620859767279529142319479274648430340576030248809163724002031853575198238772980229056490827521945500972206896906475063245649199949365105907038794015454255343964749903136161356120849026272732091664427041924300914942830941459482957479376361505378543957405154266741855764481060435988687214628772994053611659152675797408068578801861719457287453998175996870458342883023676917483508590929008318453073125103019854236147964822607759259235391859961243517322951623639507529251168240476512529263329830080356662974747259573518595094090474564330502591107453971037244541242498234166375673083977289142956942525963228138153697242479065564851172487421691780145050056056288758481081400006266329934569623653888299719335612838931518047987042536185873116266601300967268208002357429790852323520044347760328394241017756441045170378909787187815686096285576557222146893784619971995310396615557589381017592325405124165853505201948217164052845136859968436836088030548602146472099830865904585069355059747816017275181133500987285915876594027163274263058578484078455685116509299641383767949062760671163268038560180585714552415586082074636156122022981438981752772087829114874370442572786623685827179933801590897609463250967685458151713867757627186803295923724319949007326359637959037959224140280882301074858601989008424540694015512305124226612581536491713432023140102269492073865918585998181385004600414472675659281603226465190599470293804846118820917567103697666177124702172955586157694726017880787140885577218593962554556810630291966862771072274679584401370709764695550599593080798445636923029869689036730394549925301242289469284788705284542119443305394564497738954849212423618672729016600062946511224966282873076184539929040677555363279619110322487908828916711281809738254737053599516206176009173397886360578557558689923096958327937002455240847769401766616303071262657926963014063637041053079968609770704985906627589475993293555606946998763971186004236131819064907333083077254081135338305352054675974914783850579802037889694557544460300116371638770405411713557819842589230288399733901750162765588454657374984813332328299092201152611667570754439476580209242052351343295008771600525553476317457040708104875941408046998844884902529328298960035304702711493931210452358409195083693913482579956485003237885967828043384166389809059617615988680655580787442108363920242966212784977450745072009272764800385314012775105778920007418413165708107110960170682316520919437662333879450735595464021258298962088539379531486300375683625391655336283074284226311159168836779593367248656375080553474079880163006452930574286803322742728418572430118866074878884950771655377646777527512239854257756827851625467432366602800016158001061695596436632469962969765815577935323216274796809265270567570705976806532020785567897235010768703971869285757244707010622284469310192752543353485036773960363907178868943837511346221021618755636104151308417934342250765680355811076017689819975102579265331983063519246121853831404842792823807890270978799174950840202919179076306930338483580951225441865241504054659686052500595555030237426783689133074412912501566967045212547939210935653998293089157344431159425225364327461551956717059358828623886943260339378369128222129307508351091818469804545705186678497928391441240787392753036287005836192400464940970683860088245117664827898107215870305882969904376064202907632474367495527937374205996777205319871430890387435702192582169638876881858180173761929062729960040036891502788444206269835107720678854679792803268757395335476115012078210139384972873118254802599075346967557578510710616556995648017309379043695794493518261087784509089148033971588098429491870078857934713699693376811483014687487610503156988268173497921849564690735831587358308930489063369417352650630579073060824457861122749606658238445678751971464673792090488254671210396418996900536913214304580206874514280130772939212377986011440993438148000389856529294406889328884933259247404061672820162786316813885472362286876128421469838185942119683094418509283753133876528561624490897179921217951087964064268346358906800920319256223525822067026610859733991255379590572014962261411066131296459367532054880458076372556127485653055896094822501328459184882529889927861086532925640294652113272829338053763284869055891913122662350175967739774948056459674752959478757864438962174376994778877700498737043418238017262852351747842645240470375527704626427744055942894920927849920179652344762413533289311337087241297940745821233826856030836483745806712482458031888860149668083289636309998167814394290602607957848295853211837240139317853457336883520469197873508200060747206724631226597544629932650732942694950709541670807780981121534582129534711793950486808451383961477859531504237789924726088705604128769928598073851599493415369270020171658561322800975221434921453889356943084636414297830470847468656679419840197848583493891814016031449547479076536651754098250244425036920573311720762765022342140474395891222285268258570923696357223056561222189757849425729803347422033739405398648115745966429913754510271976607909784458771979144523867643112945263426716357392579339518235080796557009532544612316732655277127272437710689688601510347158346934858594707833924708855271271227803450132028517921914997236876235870979462156748219771948682044279418133969183674730861017198294638539074853076956923732806420236029740844521622163976695110179538078714089820173251283540280439672017620172012826385813489303753516335351034444218909621061306308363390168994951162933449152186922334780634470868065165067268899655467687417531194190889685618019065328051143655793251935213428465178904110094195322419898757639311236855305086232110216912794263410954424012863850728969181062340546951275251313914650364132799103049982776232514260216344960672945767725833552148640834440968311549993691465461503056098160228946017048377914534818125204442537984459040454997231466934153883867838005049874835954212835837236567263241686141881915414588677484312335862144281262168475695021634273045384765468033462270097234539547502681467856333882645810850237691411053955965333583820449453463936514439515136355206195696853749437256633792241565802954365232713172048231723811908116627517218278669222890607936491381331768655060544686495226378913812594351366845216673386639749332675883493951156380676422463121168761996881578712800363017299131636102859666796424474095829890208772697928244690761308272985047777966499918697387091019716503274873729595798084009131547228257952352180508851784810226697212957691809817195751197056198691435650916485749422533495891773059512576810709872647295144533284328681244331453377145787573443360504093763208487842229401289376564835950305834429560443707236167702637755921471154435421210916530464767154906383330614163230741931400607398408704141703620655320957104556557888357855283266876939998937348778123990010102131487081134559314801986076565336470090581886993133792580721369762449448358984752515784644978138111239480800881457855384644704830867982043114861168281151361443633419589717802465142587461755298082190484671657877638082586062124099721888941366577715058185637348701091892056636422180104704383574376865997915621413955898104415980741540147322342824231914511657296158272563013764590201221778355888709390253860313318722792087873842551669736292273339976313082664760083605674432709354041140037233200161783320688689850645199185060881863122644577695903954032023886311362511034453831482936245017247550193679563130978534214935775008533005921038352149829297654697901388139590310922872577545219326791806717636471564365079295174760576737669074731138710270800304851278225977501972887541281865242925684078848408064632806259125572410789908248462709401716914476232313185589990744652509223507471639043468174685211683814562910575919678660027633877784655576785075207914360606339546964051307243784551909034669148561804733610608823046951373254480307991786619206572337808290644880747756407548999240837550759720852413787665235779176567738422623127429466085826639485181853664565939302224176958511902342523096070053499254062620882705810218961694432000248222527552318804522204461824890302679158306638916252686517173428702368817186689225173915394303524651315513532130107409481187885630483109892460540423263570278150081235867614651970162041838399950598085937189067805575848206220232547988295880346632873967507091178712996072083584982108016797592024820683890384418368765067481387246785324947718588158961787437241052099963112963634777753762450800826249653982575381237731991178370168736346360236031575993109257834949926473379139232477305616801328454991639576955710789641631485179387670662597394403741875813074766622678421705271068526349967243165879274967287582448624780992047390322736531610484285155434724469940510853199552982712255011301217298433539015618585044456574393628402633531584974861775323789053716223601617874057421888315738816299597982265032007142295452671792889412099441826564230460863898061021930626270712199551569121050721714744566183371367160363487030527487665918497263740824269741208421413103233074964766839130888975681793219081915322787060580034084561719055015847335055902433179949977386660752788595275206399604217105604395560650218036686790312489170829414461262800003124164650208016334864708343406317071686887430551646593290029393475386472573602835341063887335837263036021694264132517180816218596843563279302466950025532258874424418104078803590952016840194356199368837195126993530323758330624211495727139558686387891459571350707906187346152220555265086754286376604277730982843854330890766322219908084634868433585625613281661841177972581249466345018905534899325976984701220944383332660745434660530370363130849980916486447745105319506474309553141852460968305302011087377405542859044691731493278909529344577158078701296163412696880772946441794385414541971538789152422354261005347495889576197070212614107467762389074668615167038123441268886546126837390347761917959251816995306735751240953967390660706975562233158157795774857420104419854596087868703392238110717404297006281968254302607069897484766871260315522417893850264158421144856730391426541490651849153960539744867925005476175986239420887438445782422627171423485955842314914309952493683119374443707165383197342284812388063309937149154150895045364721564583890688657814741392602968769542128599291288807817787255795517757845325946260975234609590899426701714018591520390419346450576345297262979684663171258123470428711536700281857109485742237291368576947476668183033393404238072293579834440410527806759101071373431409377072705729132599420395108707340993111226623920480772804296007461813959085203720507632189020119750203239467376666900685206580181136079891829727719742956155575549967946068490493154653744688389950921016447784508132795298014219972031688636273264804123015889124189084944301558835423325501020416457469911813586352920647024823959808991279956493602484614240882049569978202381209558758872795880209615987456133611780202486370587331950394258860963299741661017297028889670763155926343894185101366549552265248615452846579991428475587122114069743429657498968946992182391119682186303940943459391178320270855168623854872390819934585722855967410457507182745477566532320715465803919092599219795488465825026589087826574979458335260784693670600162949545860560670282149557638744111808969408599550521448144787592864880893935806732205081694480927313941653720174507528674307569740878323490965102477644648789881992695866826473437569278082963387731848918753982026282004300589237460465991039785462615251511466989334590476021407383019471986939891958516770661090936061385260564871035274911655761959196452613480572212277883601815615362077273068762216760929844715473054048333434375802915004685721272930421311694592291906951807197769875315242810186056720474026824853997447974118119293294935648678863628068624595565373514767300283121368901777362242587811852178035755800040545643744358078819116758016469137156346662465392684440830944196555242124741238402812061321719397649610353511415230741036843198847581376853125148996784246838604914953644672230460676876735698915355571105515721879326962100416951138664385682875323709030053013465323123208484757562305946196786178169432139535342624638002158684446920604315626495832535204924823947690931302927005655760382818158628026340035138592657470741776775691493489798193432862056256832590227840945739640121353256766122238093749739787195330056473924188280844920393036448958886896176880262030250427183910732379390946840915400321161954905543518023460676917312435512531715887596938915301735820842567334099718471577711568726714292968002903096076635748020879216063399713014102173980233444252962398738713433520062038338699413128796212340209769048172111694045688733390669039356410958017794476970115913928669430837752950746869278894297185793001502373546922713725327851799629210757914160924999386070471432854487283629342941230703583058181875157706154280804251918675518281904586339219845737094318960284026564444846312710838838893020400895063079356785780468510363055315469004771082705858894007148074539657878632994222340849489985726436123196260917372080619255149472202013468192891119801202782501434032844604646812468746850688419554391641777671249525453929437532667979041411989103659733714075341058606141154801030815245678886495981678899440477386543882716988596073459203126543518525747869240567402161595881451700036953660257684716284800419695537390200350700411869855018468547218586249838854962934332640700339352375818031267815156786897985249656698299796730414274132710482757815004820446997835001443024042557738314174470976371107169016270923717911440393515736186365950472304725115623436508296249592628583455295169385502432718135187388628867011249778657466403481272094625449134982432355330467940121936235178594353105541874760400728988687016258796212937742976141527085082387983377170306842011114556476343912327320579621310257912050156301649390817136921302150698959188156409096685193922641575097754196049189497958282779769850109659633412585580014877792564108347118116569482179173997148764242140155479678775773240216758845120423357650148220285968575219938230944046706748718060373908760390157896130661027839319617763909957148089807793501427050034753620225082707168511701355207582900832841669270413506517439720600573359422203670634072430888428165890823224091330099650041656649143517697473421475164566413995099566839791235919852625898219256045664472733324311480686362155682424510878292211459151634919316251885352689450030808714668536835887338994164001547891024265145967842329638439983042194060941019906594875997644925361124514607740937482397381999660302138883619507138244193628862342827395456316459806124863766569119142255082358934707381495050778881587701362911338176567409721940420767344923671784119985297999912401711583684203119130493932632538263390037641621976436695872411138191230191670510141393071450620543697449472268971336688420020646472856792091778814998683584354876959465986577761502289804933154593805848186473038290955271881325220251494371023422417739726852962217018676642369879885428866439243604711057187301996134543353917974900762672371725089659166644256837082107828061125916786388825630547651976800678510283258528836599666721109271095542209349691360258048353914869205348837425517330143967670438002743934829938101185754650264899834861347780654589390480182432618765211186552099836161309900881331656740350348296775222691892275340974723524008343910455119702555283575748640607501119196665167178563356192400822842500279041495840160499924462872216180206412326567334136699952315113272799480625659125750441572370554687449734286736601469117676081636151789429090479315083815097421820734333774394563766637223185295023789632295272155477643524406938908279256585118039045126398918250964966228883766761588572937625601470012986302153968407250030860063881880985731315150546362587950272698891696714504464932518956073202623214118254665053663292819706232185494918473775488837148336602998130706547164114752456690732308055220233234200595501069541858605066285352904796221003784403525322984477500871631341406394619698125425295295935429188587262636169674444717273182584658078304226095525154182541030589702738354590196610381537051290545228052840944147821906121920931414423586335674167180210608710564200514456290498937032793182495589410422812026528277823439995473271043176070469092602871002908300212738689384457188774577072012912945979743534901683887597700560233293131847799081810370253951515848257670997280814266346796196923246802419302548908439048934179876263886801544008239650783442213806847988322191432520727877210362025258858355023163017024270657575529852503314913068226854193989407281764238219646176742279203610047294071943071746257197990806468486564431039038521366636525359748630381728008722150427967487249060776629855089718251562643496859377816389643431094512381883532591005739636103226293620048560906079832970295378658569665212512649242772468904236614621437595343103250063786611236535507148459710615218803634787605969276121304458372607581473233703413061623606460390751424281503904745648954032417365849838284571536889827431408397588906213900220382769964773582295965739636830392014772897728436364371831548379473468801137835818467888958596816937323053948228938361027090014975049960522380329347747052664905288082737782837390458923574899094804493321881295317557827727778355634679974604982647369677467895799812137550498035468653122219122096824349553141256289983592481507493472508923377601639942701646860848423860922893628592011618644841092617028198269339965664799020942403008712380680703262842501768837571306326122305264407908488584824023543516797820803275524268334714127035829016384580648803178183728462222966549804985489247382962288591749610531789914238381802582327409989508047809071935801909177497825302654267474940595052573948178239613688710707106104561748085212448442938125607854686012296738201085954948567200820121159661064486766001716078486761793492103650131997972758347801464763218504169821468067119434961653262346368167323321934412309757013946226559137050608209401297638077281325398428679483325589678962528167286609669396366049184805283110720771883629570249747992838499137564006488665886913922457977227424843132460877672198583431442309384237170891442039882222504710606924661694971147987396812352866266437253962896633737289742664361315551169350851626535994422146802109169399300010374568858486628029861949627168426621237636543513822174748505873920406134582685074218986994306789872663538173010417466397064410103121892335763895520212445493731370603579746638308165703955241858251653698562385405905806713281887795561528804852890121930815184497144217035858472726262584892754541061048126570534983447839947522776294052920458154151611059233278510556960862346526076095311233618364533832781181352182065678812063540268403844898919821338743789264005024902274331095670091058052275103802712153267050083878431729128786162079363067451484435037022739713686544229366938461873122772076898722547197746921251933130491391685642223317378374590965069093522944856330142474677209245003669501997570789299726429062967408917329001746686136998681691875645089389592229600427934029625410468564399922041141702133314878685595023312349836493201612078889430515516241038710944724377976258891439661376439002348646562509899758412973028107448451962065173504537007822037275097895436198002183583438981323744854091513661136197503405669983162145405171598211072054186315387049149382146135953088135917522957148797844503233410612127751087887786239068787171698017901722385141742241278637113375951860623001218672983328215578476039792594971297875453280485227470531918935230089212847145551027417876914122483334952278664266261051759331410566534767727802308351453788871415162957064922561933397423429329692069656521300748855397479565434396486486793738223749786974566857232294756157248460095462675972939244551161775888655845213816625904477230981140400086127641201393583012660078725738814607186295201865071065777451195954059943475757825799512707578040237493571257081287243696301073359494732667835910722962518400215761473097426737231227310360802480203432703961722096021068613128969510913117244844971345166973463994324256385881731462698996675677010734225387701480364608956841095936170976136340981681477684973221692514684296730039517848278220327849898540176530783200729599947074622440393294142930327446701094352852683623165477579808251204168035238460061516067382615223132259693311897869052363644674563362854166704874158450225164975435080068224647471069326342509226012658634174706033879461783370538922217085600741932541875036068154187419695285283384451264944795422315525070758123035559040066564530786353400414922817805251761312391665030609591396655157634373278224468046279680185279327403145329948744572765421298012581519076417726749026408772653420926448510030116318880276285196165687095849536405222215147018549079120933029341103825051247809418125792618703103635277328781632622961907230702296567420858388027776762959711339522742350412262001758588479884523977909596674839498629188393732857798150550514973594025180230679085544753719162826306404853259542762787673740203301116870037100761874901508184750281764410875989859009112230345862582752135307125330394045970833684989317095683766647728062898503650605760166646187893864682411643435703750104541401235240411963990309757474327100413499383564497372954366315440042312990598526961617593858879930496496799779883617497502061192792461849759349404702890814780568018285873210882885408834799694173225706525678713820768905407252633222487490375933571447461141872769404851372942282287482605848338081868059185657348467307345298414880073251803104925874299110456870028151587770888097720865432317342311485626483886509357169564869979249526694593207828771320868237064388185083255671565666570689491797018832830151303380019959896003620002240253789806448287066444597984727495060871474253361332880101111910947316777094862280629680099067243240607247657070670079873265509794011458410985137586607259021311060959006074802145131536915014047498826976462378583358618030497545655517211707725557090467950961258688038839987170904467620811199924134492653064878785095829835143720998556020214151498563407278901873687256514646160003167305074577457519877003678761383849252385963909609858669308709226224146559873349548935723081512610744990216424051006949147437654949563723313548946772522917882798569592271974121396488224335262887750012308438367304644858573132447449070601124440033088641044730803938633240650822367964249131657402922621095465684188204736765455893646318285865313368474629713429083135227200676567589174846032308029370865238816178608428117683763480376239062675753315120676740383899661317701192416411218653672687321810843845576601969734177609095549146477670242622455842642147355051813395612882367290693213300106359466915016127334881504899980775150618851151289397581476211586226478191919832771532932192596546347799332475540492389067501123960386807843470534779635214131821894503466759576753706276748084556526945903151118122167342154426630058036752622016766279005346550199253608040495221448733274911094759591095270109021702126515886478953008894904889003235037428633288387059391848529481570696159737668970115952596531472293797859107710449726226699196958276446819426673275159710761236721731491407241557113039911689398875499533306936684234431166174724396954446832866505176005202217781090131461289185403053015924802038605033574063610053915364652294014177335201879006808742812450013543363909823947263558918967187536448521720697885290550091672643908133098698859289708655674731230707215702659614537868658820454520373129461112674885185320260508193977456108412721618488965051728027139432893732017970610184977007879676406763697138367190822912172888902128671667215201059019643921985146027810799827894793397350948898561873907539939853149103715448314112582909283572657689525161912919744620760177805881853972933814911842928975697238619775654856865416232411848497487143264649128431878562474865526835424061615222778449200756174962387525547261847940079127254665326351359329558517178367178701791549395280928605921005434338710476323124194815415985823559018994386223020749028373420936277224952573397270901939875761748331122221036891147724164862144397119593284884964649397001086507347526643156795128833269576093557633972867647156671459708115648489381997983179573496516299335206670793273047451255770084603976958213550620599668874780737442989829170178043832410569133782661241269613031034118783269827499580161700195201936242778313486888117531525097820597823410146335940803595986240805782966415327645294865872502037968385340435483122822970278008324712662480438078518212354221574303835126316182484969538269249400558437875465800311093066435621298560883185317249127798484228580178170718257511378772854486443283020317124541281102598486403048065707716679190456248360132902647612156979728574034193780142457549991124097968466239473533718007529926051276010433877281225374292907871718630860663484475837726833146993010831103277773739923371523227641948326247590339403996244307928235160678261182258293149112628858516081324988527284249290381622185130554078002246176897135099929518537956329567622923099351048920920361977009609706416439046820306149397734065458122137936176349374206150857895330871882549219711612805067277517145896310030314396324572426808235080891070532078087384102455207977752253322772121143234916475368883570385677017995233726531829920213801433476781567839846820123815801619356527243073293625858094392348543465719376200751925360871100422219304352511220678161326913413522789576353021254713974943156267305957562125438818043454596879522386399348970711076142264489757926422367753128799200370505850427087471718953405322483821561844704025242405344927347920079484322536338766434140213035453485202983377662335559933019500550142201075967531099796165542541732304216929834247560930648668046732871296575953638099202309288373687764216475153435521406285421565772085472243908794675342157542856304731039550259118785290589280429961183237293873713104261742113126942187042629603957977890797395249124072628976193909827905461706524849828665683161971767749003065919092285849493205753582079058531939771984725708114751334897428452053299058828252290003740703309711267394081557677328183159265452009642039943132407862777417930199033616399265445426513209696677033131123819745989699864160831855934688227349289240509900911919854298671479444469495455756399152234416425641665101858372464565436031005773020741178471508164416855744184383970558736061938764907053978395427979621296575407063410262302659482427194992961488687647107998869321738347183886012508877494373332259508357046497393218151226071122269132456692136278478415809240067713122736354635638710988554309939738686224462424626881067106349146507817359452187663986863529040629732289152050555204161559043632749603509117936628399277109640945253989590613820832512897816251721923753140180111513827847486926300201357903728006196728268732108974277382982652564647892665370176188531971855609433534861785458716929456049658388459408807160961122775300862775794606555870627766799478635330938494844771271142615369390143375774478182558515313210013750112837951625529435479882032438602267545769366696319576631492349729328467982471731541693540261689867409040349451313691775056538990541960954196915055048175783430170170796929580129392878306151313048116953254410353271337955797130348978039856862612434426286455540026849603194228133682309493757798229158858799077591681457585426151380188312275785994561960994013781682650630399486165890530467716710769848131596846992244254572900939154408291911896147300294002741579818775965511386380773813335161856503439827104474778198730952739580384338723476202341485743896345780413760668069434266264134000333757434641254722208855957773911939281569182523371990800982053400558877877100864100319977224749016945814806426985888502247206328891752898250273029598977165997355446299951329090968504631484862833542556288447562706662275070550435603673716408356249317593413064852967768511837128438456424879930277450289218730768474824368917155941415592023752778614628141307711474782773156761707744788675129752463699118765545156067254669190716830544062776297016365561760236381787968282741212484029763839443311014427610750626844813193880561114137990487183605822789908465105023092706170734594866682475306643477333601586632445167574531393207234984238236192799449771220305263143876095501859612057592539185831732011663635841264986223802691698912344377208040942376738644333889749288060438202119168405964720493611855159034342260341305015309885792754799064208344598515632267979829546326371732732798404116366241578318261508972042799954651564261221922917788251260977749982170022542750599605833703584923674562446678640782690520902593007529941274654462099009807425358626225372774552773003296069059827755317846554249319014729638066318842475064023096111666979271798655518744177218448860575903451590990216102192347868727276420375897526821542726596922905645147654749000184262384619440290141824212836371358752795249020213723938650312075761249157222196084776209584705467772036938837199736114201871259701578431523128899510150303882406425405188347507868818259813937204656551837558355114046178788405103456647705709786171769065443922098951833322479480019768974911616215124898962648176680921601050589999189650346760563324217885787403839762173573912676408725008590341065790014252278162498558339844834129784075379717003139764484035688991792568949878198318254794499781535268293077444472941846727465432171897986294012094775728145379736482844133862226602166253356661728000021050004477052245269029953849415386296776424462173825619821077019117542297074541321442726899202198310828501546934707041948998552998463579776075641084691687074817280658740647781545509723793564082312158922711202055919403224800291633616369499677846852509437466664967822077192955661708629747807125486074188738214416345245717923237599669435658072290592202452394282127087441013797228722921967957323074541232343843394863249070564922803282699161292515880143011913656873513375398819922849067410696642248145939136066587263743956981002005476225352303164045696808813654633371665528587662122804237221885919818158809662960429816332651866292940706118206084784193576561657547423918626268279218217659465784768121126748305538692261781204010342719898231167690432746907374999885686953877540685156659942844568804908574978500571748711108258754389177381399503945351294849222293557777775399103777420007012755022256396567303088936204255299303803234349732621646928772772357131462550798300757268559945741993176027279450493841678283745186419792208291934621153943629356826536691964965110349164186577683359860628001481771304058424228582843516891079371609809495601246623188822251437336207729638241498732012229471468769321687637122781201189166052563739061239041267979093783238179159687654941190097640760670226572873948102382380798545483091531726318276041642563960367539031931118394095208153710486613061366315539734151216831714664367514943320913641732578905542306399860707562047175144582313017608100933501400434662823970611619634123502669318645023382968133711405345147156909531064821212709357424834555683480565859525482143964823732715992814723558753021693966159147817844819156406637500420355534141111305599564201538227263505052296602534816310981963312429428119046555343704692632336807860882848514274946108356760947529951824534317569033670663588500542804474334225446968918323516343133746230112138208679103986994755101302824706982667838857609497783839523268582396975914167230785682040570451001068845893221023185793119848980276985532386381137784389287451367989483178466976256548129284520667256685470613714860942683541332223318841333841149777478614506740844572626546322574368698287879964005433395072853422644599711663213035352716604447968324515191273895514036096681238669850265165108634717361894091748851255670431440985917003711870119427289276412564035777142043175043933387679717687620497036398415446226845927086756862631958634936470534913796125683457980564084087679042954791406661771401010438534168345672828802600662422720689229418620210848590113040424137832498066498713442400847845890876903836185815383922901953649117214244171401924585089995494897069286699782045446716548031954346373630100543617526792859294977623863599202132924825896295151855210941912782020211074728835390303509174069995826522536195171573976579751648723359539825724319911863405738999427536038451710201604908089702382856898241616835196084026732133389582938586177995933126573263233057026232849562970694194367267547475323918956324565064293950875238311993239308232275018101306833797235575358759671276397684051100120746910312187100932533174649858641743131333502815669070075419673961958014282353807973633621456685543601416973343575050392007220775691680768876009349026216120360991692657333917157556975374842814098508910989422265612773225706488574430801539570213034036698776893917488814829548533216060762149152017287158478157535335462909236701107258241487972695418930324896024234816401415098295398809144418272166985581234551433694963367752991125036716425425384963821053696836999431722831443884596960140217070365949903671863181813433154281702680973419668771721509323277031289864603634333981568834959502293436916973740852393806608320438262192933359480151809671711778796854996659430560986886615410893828400295429563206522356335064094893190463193369160847150797357987649042671537044482384722116169639530172746987329651519152400255274519999000660357543295818115719943473198068230326710326321872984352799272659790120442635076568504924120489309960407165941490543666565959501696680657255918229523772451904916811306204762837219452966055381516725809236624300608861589241579147916555704907538518886090014858416731572780548295427373658290263158811223424486182137230768261602668555259536549321919167055051960834619145133827219716967058165889867431944824115543766316635015278559202579190908306146326754601705984565030006594509049276971253974613257682334662047201245491693608302716928014409950485122035504995936808876996299990811286812167931570266036146065673221156356179048258716027798408682527712718748156047273069503019828665792235723223430442853904229179687478916508127766761536168250774360010367744350858854554690138464055065282734580141632549950432475739008020629427717901632271336671404804944267921480107881553074310730450071659008909916655950753676583285512096597155373223077101005750161067321167342000235256643394563802576328179433039967100072659453962013305560439209353848951525483028567919911399260802500974168633623943468427954081556087960118993265276606074900351649880572117299434807032247130823980295585168889737078262163670405222353460253176891189848403995401694638886259931768531125540660160847570086244897761789638190149780782449487456158196203716406689503740011084643199719328540239483022259689516192849814794196112613359307131496995374853474059864500952865151033178119195367201574359541325067363262643281407902453031115944061435444569585867755428835989801118655418414762060559975601472908472026225422939380837759235701262970774505119189200227682460625781524833455789254520684749071534256159677953657930071533147740328770412740046244249707111430800981422213158824302623180343481400204627368557839415658386762712107393872328621281487182706396601278607963210413569908181023746889226254927220763903505831460334291329646046602891993776777525837722391370595466879844884630704812671846017564134491669898000786734600041467119238045706134335859151515860423319873185774090113230883501934624243515116348341793657057778432956052728322075462873074821738084990667967301899918163350562520037515868690258652865128408132493652172135559506174163470073130424615585748643619476821807598075931274402587235286072129969473403643190979607558454653831200196302616018327365873417338043924540599046047232801122921507149626921917623245439918825184179092215306891412010113432097109090972493248571590136593436536706070200602865462194406916001415340566714820313887810721457596343154372183532075646496102883569500549489643748003069509540144663973086151810371106743396803281993546183853525720385861624424181794775054029881691602060673342254609964464797077686330051721765159220990958175636594119864179299738401132153547102407039153319084626715200530496909785396145470540750543330941957336763932546670866988940720760113105453996272388329147160757207581298943562829863498344227475059799150599210209157223628854456958946562119446599480397621644574786199563297061819202845504176239133726162574881401242861324177319642391338812019304983317847804690644397237617306409554139637313952020983399903611023508765376287313232298744582919863370385947606166811736930220172028478917190413283106770351789403041910523875006629124724864675006634656155434493348969791011437386515668256121563704498046399835785548685166042061922731749083730906260012405197637478922526581110808886519494127377846275275669634376255958556195065681878826237244456545455902442484069971672583600780954467415849938004684510620368124722146868786791025750759410045513071843330131249228558021378285797755574078003568200166783832532200007884589593944933306028103955559840442061037573342051887222734182331024760098526105928869565941046766971616863231827473081527516303343254684925805888675939684410072751720286095079294630075327686718357631065578774064661514182501070789608444536865346807031329211169553160018517447316680440870526429437360148981455173184064095140682438708649354440234510969034509370932148524116690113261890972306298627866660224909075495344926238936583290262506030848788241917048784887957962957092072188612599474215377724691702374595238147112442338379584348057811597742414614035813350468099566934008051307796292324056937816683161857984730531290861319021451443575118707167740445089118412001215454180656710297704926189295430913962864306079360176372790845780973630834868948245111111646642666493760481217397454811593638910129637617513952525915288672687600515680334996706883197574525754704048843826368247031561031359098007268818168493444972364211056620417183675253475017475781269651617839573685715839992307242855222986806020151144323702086729894210044905501002004755490049686618392769791267907738173641878278786777651657418495037436409666857873873968171222398293234174825482312419410344550514319185742264721433505951195988215527065135841551427832361857194735015952272563926886411764939395643160322201133990999861011605168249531755316013616320833731857320230166350915058594274472905714758341327736802006440420628661645705318316192556898573328674889892078798002337483145540900586627338493399948177442748501937922456041736532765890381157726245182561303345420465833279937582734013348229386299838147630792606986968652272831891399408233284270722958059911456973794980110031321739370182767961820600937667630260111406529192328803794339777912795836835096496080091079594639539570467919617227112550512887049935551101663225373185226492543580904328842971921744870069109328098075619413383322682647987860040536465458994667965742956222172091036332872790309049969543031402725070183158498142154739692567482041323997077511086321368400100861303384471112885412272028713439721440000434379732160795000208765611888189329017135405671048596232450596697917674295600513844881706465754045906649803245463482590766325207724298757678513825957645018694019713611075226231639176210484636032669575400734072127702248751604162566810417728062924562751086581418693869458827428241686330501050020708220402685217747595668319912161171330443726816813224265292569884926522320575075515130960636481658114040808006613441853609733702828423442460814643641788458331305972331635922141865212014251213046577765097271114871502247514355978394544604882166862314955500171174446812710132433345948951004256140776144710207681031321315646697342549742859326311188321142972858775049357490040594497412339689918564452874726391439161754132883678264640501349874652191449701339664868360985013190886754752583350729143423227357916645463921519515426965838332776384103658172807346455008501632613079436772296584857729001631530382357459381671334509233195219409232968792720932908176536625921536976584006032369594358812842126767838488430442549445581818042264974725000330780192286407845636930815973864300628590451894850717656295576594898072214323922981325742832130804157518578861363030401526552733309059785100936102080601821785596161024223707803466576523448934688613843190563995933452972097100342315607330246034084654904872729457924455019588310712988265783844450164769827504500332462566127772290683680003667400799626250556107333886193969163395791162275577093689435815629072718071425246400612382739910773773461641445605559431333075033304377228291663871999326071217039413534483682000493161222087450434599746424668236284368304196952124013007971061638508340506068202067842675997252529827623676760761131349860056217431120485053586883370843770715092640574694895186681989709610023232381688379544803268111786129908517355949526647439220574957516355955990991380726535379901239048148879499642761282860559927581775088591147982616743685598452484260699706035283245066959677790554507295360722309451361704723180906634578245625756135979322684433419209297100554538248914087583717440068593216008332099538028015110137692999339207327687894921253501372893503333355196720296846059896460087027048575928519643875662525236188347176573738251025993345260589055182845279432925510262710905092514181790759610754173352583533537457323241643720899328364875629412008023857741905120459679201205392104506400976270325219907772550251653302306489272041700562362794696483213838884616998214704862128781568545452382141089046959497150672773117052978899873200671502693736683898880020563730609585734855043583828303465777131547123032282836251176142995819377330300611224552412595091550816863406263256649757851625743343577275498921527235531788724498254504110507659594263160151135705865036102297936346737627633861926494098590403421956176214327526671910057209902560178564812401981501483751478528096629044615048109407381158551818878724702218676875972851644069201765234483721105633126812101707484235859086532487081195761770167232292878830562406422107055609857173977783043846208925881580242723374142485930450372645149428405188585992842710378867068359151448577422170865064513056279347674773692302121895553136097365488793318844872007458061081118707677190318296007697294426415699891841532259488693737784162354097253915522674936760892386375108279717113001004153750192009733826715407794346242542927022818385195728363311783824677696590086116002343214945465081441544628170748875588282805702135261139613823317258182902500717613085172700899302635146055802914626490872205274305513432437889787995162550413424013718937857252847539669486260742865846596969096266964394866734339102398354011060608918429773632954545113777847110437409540955930230972291837498989917805610732664587818448091726062570238348928619316486063741573986387840181112786638053892776637913031505557801540074680607738505543344258238462154528350959746079973815308855586521349959219495900073722343640068857252056862005402799830611621266390977723235940363679906635459427862773770302377773984339113530911576940906009028080814105450656841435099419768172477423107209138930592973710541027883554996934811647940668376872117574315936125378175935297948152514490136346677073627568012000149603064191033310724363011680087128198575469754366592839097234849340133161670558178688567935254175161316919717214339308990364242317774487800026368520471278844450023880284126650692426359880294043810736379749403659212619233152697263300007225042575664519732170963875408831934597080804330000449623512284216790761343490373141137113028724326153766595459487409749564141940913839245305298919789316235562542518127800300629371576349971412866909167548265283969959597003503817445375092163526299742425673408914473264357854425107380324850531675622163700121006921372606150277629817727277519234956593118641978220493134532775722754181974558762165727362284151613497141313595891445552926887698315075136918910589336357628920083568909546672855243043395617856135652682170938851970781665837954629497524783577903948733885205170131378932730621345391473742855484076439440627036551317130254199833307560235614478184909318973187896830427184749107763682834923491426532359063346009136187951900880912549270469945065760474205402044015764308736712189129318036487586437735587324194945781319070695201707412217409662111227392580208272345629704827671769224840801134762611384841553831325980114366702916709026403281463486444367143798823681593325483442269182659189988874700829184701357017037142257564110574338372953026538792053862719322603179036685084954746439174083493778608443174705224658276610614544286252732948398109616474268487446145113210281343327004327418973165631025662165676208595772177799020441263754648687930532272033118495710149328272037607907367718323240491725639735021227168071928333341072975603702774693386319136586397201640643171968166331735595587362927441916328603264538674589299155515598761606600875146259409796792425234717853161634742168820246579610560540031558664265040603483177423776479475512271907058923338617427349362384984125411674107056999715595657310052918285245388150081642111349395818450094018674946795335188138838255675534228329358424836568877062410078745320517155658753681269212152562935094150309283229776369085514967902733285133033787721212462796510059959236408504066320519594520587204520449373362837684765883652328342165237651856953801819427598315729503449074809347541236744141446402113579104051459726705466849681002287733511717958620936669883189498490910546293333458254583245908626263465802783362601627561603439142409526172979059231063150401828269478092996171722335077427755178293103716320266410253890574608957435620172827552475745512850224918263569032930820028139442223541582543299802000344765641244643337941680222891292179465940453855981878217380195524781290916903369667675702593712028304161393890636775006064970782977897777278385296404337128610394901613885736675855039889347785254248978782256304003385963992404300012751837392412589729162499243817194981522042812624728885523433764151281998175570611003309284588882504532183366504102379232983212719574144518374899582687042985064584507610572876773851533454022306331362122438829072022362822945526304986679344950434670432091310480116024385179909222934201412406251246734146725076755212429790499681751891585834446837815563738887359813561757031785025401738763465177423984596488830613569101284009130077819270434715074003704691218754161201827012419798520965572816017485657388820705268111756545237531179297279710094513667992978145305708887969697206261967024326190022417693958733727029937371917902931175763748908471116400381422551905122256008571687589036030336906074415587582117406617272231046462714118101680394485130764605355254447323612921491891292106845573426600975320418179695096123994559538081795698353971568695145854559468014200697318514287241031827654865958552938653727276621520786129383762782793910300144586393493613208167981937782399343169740265185733336544851197385806111329886168720991540893684803578649313124447765240899792819357914462419575889529887110829465231233915818616593007894131500388031824971894095120004074059117429273266499667309009901977151899876321965653185461862376708036354344060399859569982585829649980249013684944927435417939646738520776829495480331377770072821297600705915379375270914933236253170179220308802704735938748756114645087085240743871080048586178896062019724158102809337660349647353243919744329279797637814598093129394780435338656588614473011967366412559667895947080501165349908924954515534668365846761599333490664630738485267408240215006309709703934232298895166375454995633149181437391257820769238341314117332620973599158564119999554172488053219117721893333964183534319474657953736888536932054266768176984274107144342460046409019104169013527289442551061804560876685800330718189038726344155423655722480259052491665095396972707544462253679540233205114289637354743354195836449428277679165738393611904784643862615471463337254244883802834681062947567897249599161791943227847306003241777934393420590830725785858610573912352387915852746789736783466817954011434400905616516096732711852161403130478745460185082996948610997812217007425547096928532207815031728525915904580587601365368162002935146020251995958410862867706269102647152504034840209263980013521924461877408943375231545934899561570293625883427442770823588826159704068543233436287606180320717732455170719609439009894233439814603327572442443891780288666222304192651345643841016739592640418656025597969190863781268592500984718382738256187965615880175102391819264268414956312382752492617468163943061734132242291856662539155594843526825100010007840951745517305644591489375843897842171095954341268767455926753876887724540416252357789915613983247162422076580824342784987907555185477377322636562953108819044638692262351693034607124087580210090672885597451436576802576264703434440598795292354097404378977319228722543082823094841742117876679711519126076826936839297145269994680064329611415069465673845042022758837258038938126746236710860393880965987109209341106555855866184747076722113647259373165225231104288472656026809606664022671424405169614110242590401460875450039184131930950760287001315131064436849929717289593443736936456436476908368430930568532516149182067842535935958106118855704479624252528697038620645780194539260399351908103472284962869304985650127045044891603421774422671810237748344945203442978943261562210463894503026450404046379106599519319383373789998064242480846526999929124890805873702780695323585724448097363120990588463424175090900618258738975002124286275862496544516998891934169168282449771487023291594061849466974053577678356733714702959871131764698275204579320524018456785715803597998024475009810865436426413257161955264328566377409331870638446085430744631749354258574972251969126064282579675071672970240945961810850527493404579770559141080435371694852441702820514290264166695251066654428966541952522809905661197973014707398580502831362163967774256343616548738478262155932035781139933222284101198193145886944740538860799119802526918658775015991431222714010723010762553909798806653188266528340168495350031004374455489022555334090474098638123437854164505737367308301995404180953008059949424616943315852275023979528966336931103973329877257082893079514930499628349633228836091652165587778427056475306865483751575674085116872152462636714186197679597756074647520550105933360569123468450295642699087646880723392188160748428153945020177860020975899968324291182390038468529916092093827571650504186285834515352625560524737984350168513413917828750202201480260321763035829593891858601404256177926158792330612229841938517294667109002504756870732453784775310808737015254452430532728089855314419435538625264520475670843961127981322918263554362096439198483441417940207858212996472099368981918926362815250689109630846739450292340981688493314010393212675010639760829976333059645026514458726290606927022787434765189966352282480160548581368174858652430039801909527483358177919786829647361097370032317200738060569279645317986142692301103431154350921368243516407586908981662523910757011028637365556262170785386694213338532134316858321313218194702654445422750808223857944541033655619786954595730629919334574043332731249354564904998217990712248263439386668810727714729369767847902181465731285625157137453114615485163879602696377025832342547369140174023245011434007282014767933646015940103416326927183409732448841278365213148044573068345987518751717591325910768985172793653109731943209201066038077161197611663381162331035830699808652019091528243528498913160455738441148256751522073086567397840410294780303726887930258152618116305968440113615006123218445509644602233495869711921100105715190715247536009377009802912920814305202078107139621951076231474816565461522297687598584591903530543259651391613538602648741332947795482807529805420992422701835030026795311488679916409099591599481423944844231085624538294016376607505939394118167332151473784647784721982040162639644828931618652112224974600819794436819185274091490718552458986982079847292473087478845625850376927223540701023439651806385502046937228303689444583474668985322527376838084252372014320089311150592987454541921590929588210092624045795080468245441845441697442229185316449568910520263284590525465403012033294895953184886141683788831125448683170992497469721702925354115527250579271410468071780471137834545834370596177798087533587966356422385698024029641219016272021385648447659892506529334302698516500068207640894538009594785277527593315008807562268307120135015210021425885450069885327743901065613570637728571155533526285835878640508777066401915334087201995449999264053443755099211392093788758886482090166251336558984011869049634893014452999082290039786033193514085476046620175589606873170875030108326944497178777921844917772221063250680324550947960550076491529489430407239034343498491593211609096712631721956146460303157837522838744299098737642403338118793499844501886634874560682289203771909527870735620395772294762591340330194969670643476614625593511258487610686208113121393772949700815761941914676308030636620043504163008942638000674149618115867122085657252045400381754401309462164192637243225353666782958476892885584890822062269621247879679518697249042586640588604665440781148666850892235039258517417847714242640159538302250567519237518050615942833549461363284126965428699880066591603976593704023572211403711132395479300992222766653158439666695757740768891416134149693005012808834444877736964535399126116474393235141201024191321501293668940405302296438909949684418707957671660751315353352691042184917051267615892858501476115892960954820777043272014611109833491728907362181254594248951252155757944918386743832453077132766420593513534239330389315664554397455785248087865833060427371412454241840796739249433786985843971613783626957178955424961411910837475658654686801578835874813800383148474620913822022698892764771745730177334983101362458342723858736996536715374612368771407568650779029697677496715249663720243802408901941998465486429351626952762830438700754457845517761833546217357568092941283843488191408573379273782079501622296964355564469785492235824631440860363339611403508306867506188450273640009439230259360236051418365301963769865277083939076917685171142439541909784755473742253167738528982043082509659871534992778542504263333115936674401430309240004117507804353241910767563251548054938198428470748723953758132118991828552844188072222174437360602752276975306122216018222926455804057942126153583639791609381931198078358275556312710022119843606084825362817104174688707850539281406643356299258595180423684018760983093422228345256472417675386842800614787692088995697486764213271973254452940481092762172169952826006769817763294270031822650989623694222918365501860925726832896317406219516825714394900573000704889010073273084423902928487299598851245556836104449697163577979759265811523944905620959903973391444275598878948848685288952950717750801653827886073037783359742822791163546948240564102000283797725459894354093125295103494232909985972288814493004061460923116641818699808336834859844534443671465809078086794539526487449916588476319236298705090794210208085232038394814143291920691666710766092118953938351998886403227458174245110359030264415269576374001533533208794183405213533946445543106484152713976141096712836568552309190307513045557446770926837325445035988479974192281291869816645486813434654656098113775187949686314631027031892275827819593786850318241430831116839932488969911505827036146859751321396236862780717725462964995862355208156092519200562477185240877599399579176078336250655638467946126369639582943520721890086149037627958479893549182440806327874659571385941118922388932195488238924891673856064598434985287714948379791485265846017714263193984132162509952747591508477132099717978836711598858897648571225795562495746401716511659843395097048143335704193420492634817454682090711235359222873803086421602426530461084423634808794225252536986960301195202809917668025883873650569632593395697864027825130221831999951064328921397394281980589982340665920860666459525238313365696064423903403187715964269888752797343049462744525682449579771849024114988733927056284051457060553674710155595474324576657034958239201183460480934681151747093079577952616454565103560619353812471550724913893167572103737674953185732349460740783523106685736729820379163838589139551410842406237533097820772477021153842564990103354899585393316841949577313955313671954998200270433937828393853572859463320431130449259627031993562666176955660513195817379319734545321885065392601168392893580094038475841208377580990526219057262463980236173182647705993369433937389052450659514692621821784065090088480610181623404375998372815032345978785418638818604197489770246496425888523857350966019411606600978353035813265545893576242786482709611559020896926527157499622059710736187598228241317178684101347256496507036831780238892017908118204237103986640960363409095835441082583924326968424362926845606707008883734869128061412338672374451012949616194888866903369391115549656195680117183639576171053043173822507063182918637570613289816382915133795756072984687344415605829473946609375914560235601683321816507221938123216141884035759607479462766336176491170397548705151676611677060765821272713579510539940974822057682514952525030605681678329468770926687757028494745493835854383600903316055079869360405405709025111713312056841646163190656177244079962381525017567402966909305782558320730707164730819149352311808747083409399496704709342076395843556718601573534676291178111437420825828140603633330359902034364253294620046938964175338971150068185193492105149538526939439631216149905753533846214100156750412208954369694209415128300756253351390191702764615736464072676108676853698298988451378226007401061396548194292596770974799348994458769901693982686693484594680831866977282795045697891045218368474121416013876039638701527636513416643082455700228870795412245662061376529444078828461288660774164897826320129667090279558877899569621141211332838640855646550057171508314774872763961238831611250094220247340517715913093524991423513960165157614642476481185019719764767013769705048809938247296084906170299632537622029129208409167551677801313615552084467803319445416669246317916080282752531601423658098470614938197577124377068762739461287867574194204312324397687839893040527721821156773284642423259551969820700580788534796728640306355166650565322290845667935570431865937831236954886561590509427762778959210328446746540372174472949578601494831955968329879785127114973678260712232797805893397558533148924382864816657741420404885869859100167219005246491788576967499611391999463673084432005982170081676147627681254815094920731931478491131267134308042300284907558558762110749898107569766852424445488772904082721456936060377166121692714316103492732974550132652382891231018376433179157055886629386117744419200243961288815232533741599638729530606123252042407554754660319913115277167469335034201670550822303039388740415082578778642811185800135322887829624733226934861935071311946399686573600520671363471959195777827826430453685198197365158611217512406867129418106360525488532742694438285163612874091441012845023188177163801323368946963537961338963401510085344304072977166899518603585124765408006491280670621817365385056661815097298227748100723388853857348775799287178224161483645214935524328048516220189813464007793957451231694553323720283074606083569515841673272880124615611745611504377060287540613907294155075503148328924749324616341426748473675858702198730854791228668684822595639653062660880401024677854335006742485612189648613603684501987098184104143282624405027157083912538153371973631177800820806027919311581970821801192669862860444198996815090575164172064109024912275183516019352268942665425950029172989225190293807887998113875494479977556829441545099054458167860246083093975771296491090847942034268609835646548988183666693888259403254060210839631311821329375839498273373042195967250775902508227957609112277350326638395025477832107649031408214549846098477814483935232409405865928368929603978548528592510869707593978217321033547575356629511032125318048412628000845443770758525424828974567284393370430456893780000998850710827580857855568506493159766573280107361374077000085448621743968481236828685917137637110188967737837087999079428562824862535080015746387815062849818282940634629594584406012573482525201814884250469730648363182875330860153639044393429823196181522484853461348964625365999185419656049062158542137763602850197384588212780623643317175810240919459460800141205380526883151227870367686832369287048571946710367395377971953476428525615026221520426243966070696424027519383286109489020719166565474902681326979583471464593872532980763955857057106653689633586778552680137127013198133537733999050832630280938687398711162516203397867177316248325472428799267868933571153766614096457147140576453259117482345703483387805236009142501869270093192642051334749106698988197428868410682742568921219754891945829281916693740897803489071691797748657895151898462260462363289636513857681876437316434928227967829047355852137976755964521337160462346186257425614498288279154273070038973721217721678487759943687215032990596988459063399833143749756788437775357729796749664328809434782513736367154911073526694552141210492393715960647417639279896713786958420755029960239953801723644869396754772030684158985446625720068113018790019687204394227690131214464939166250845543989883922552311749173177039434445793831845039287417464228321027815361659449139049010566690434374268812233490890519766774717495924927236643275741835145805280849726082727811370203916306329405613776603233434466695638894762233267999762312537776496684296969263874449782695037759091166824871983931047350982458577308004168539188590106890200090946741531205349365510400881061012591214185462768332424476385337456639778096291553932060467149793072163614926165012742322134441535043959607006778221534545723251669180412646722571927974319359488430242953724558623950552948850519942690253621164985048916019737211573727670380906810669706674856982477727518851699868839980803813190709548446919258924504559929551269022590549488475905626941900344240961527276564739028291617759536125748479525536393094261598908445151021675652005125149470972164138477924902986521528893765897873124588663811482037831575675779677977545324084371376057427066084810951196653117730904135610569450572727650269814976233625969672859550939803393765439978744968250761323387000274358660777200635961524570403490899249311745482157516795310793876013080043778828023051465292098983372240366891204659795129149184213418519874524718246984605571759351414637904390239871569609911972658925648466040535487891663511171420184590447636974613561940484378133588094386765771597895288609380867337099351190985924814200192626596124254638473502714207315179970083170261883017439175234045471461293915633618578821620317978714465328302639891116637882276392630000076021249258457344446160436370260945868806042823799777010016013164373765933771873636549805151968371438610581604077526959565250616252300800450300793453642877712676406347255300015534788618138132887021247699198745473554196428678885381989829611079806501584329848884945272942396536469321659635427297423540308155652697264352245937776232247440052273439418720491623408273247464558820618422515785993955662013590556301775282087715006099175895052482569378741505158315674948101598138248687824281534505390201800155851475714687892826933183930961027679954059049493834034431161156678575663998394750639299481607669778516419209259905880397913043103100242967290083382184578836872426003200597898833670034926797956777262065259429120532647529468023078747916942942606289296018925377967948961109344842353271482377829456170848285099807341776645292694376426687531097301032369710657941236752043924678911930030441188066817570608058377955231475543338398781549816289777211511013614863029221806591761547668530829585136556136673545635630859938586371179784620479443320108920652671204674169544542687091826881319616591792118252613332151117021218671191289237266255177983586667968262156571414926906359100077159454877915112903357843181828673279705836808819074127668397783075249763838668762175690464778341820076573741341134397111668293166207439709087353750083716928185073078914365693695631680823870658513941410457676470735794281424796793465939663540737602572388915899516764810613344836905029325184803554577356813570807912701078804342176690442913752638600571074714928587469851359738057799765382661002681283423717085675572558361131112752690231105173409825125692156411495341327083182360855738687769413533668748499841973138037274527990431732172455893362943710293292853744773100968322623675057825350307947528095789742038994100457005634670305920479083408044635766038011053764129273152541612669524226787842043275387267281621077359072560864126512992940256667258727857148659934093447068845980238068021136848949494094648016592064136014470009885825323356034049470834588772741658896242886644052829448784874273655135157357604680053594425745269971905020750057364382765729704683245238376367251956461418761886294474127738190832215895083060491704855857847575276117312690176793515581151434098940234861333016961342912858718811556491943903353596644865110905502941046603170114593256072494419438364059738346210625386292334099279447324960504584353365621006272379367479152493152250378285075288041832744440377041275538666135781440708756438904937080690263930753094541931396882228334368670019389571770129547743407484977226459380750663367354181418341397338528356363369062673758387129034630655135399921736432437081654718873042851223542237573421802677299266430498803094420247985025246927753472113270381435173686592572926187168744688685171440323922312456908064081744202463745135698204440551134397645633738649103294188837785602657009647525599098077922409109964741506967700725072299548692083782056883710553742030056110214380667440161048365523981332620711337393240420127840250426327841279754734890287635677143194623955623950435178350408233847549333131304705605109319585974105308525012524584535307370708335181048436970072897286741220928247372701732253301817329500465815324505468139962418688433470219382312897809110532779405489234369110350620342085354584588373096762041696927223880287877719047566704845876307132436201644357583211606074677339710856649389486350681655745057227252295759487969390693810775603367991745286536621295862359542283711982646542679953678485250938671190294753436121013099057107176829970498927374283204368252803310705374972756350590993710229854708376496366341703664066953056952222437814411086499090155695179457040571954380041348500158749135194097486924944943843845803227925918476062139830654634337009182474238549008316751281764556896725053911173393373393801615372045665673167817703183086202058351115333152648530338731464844470712285050527926067050307589231319097265480779650635291164028678470816891844475690365651882934302520898561292122338033419165899200413519283506704391425765556622742529918630904027177384304895019977754859076818904461223197070985635517013037502743424240219584841193392415810892457507873052957885540659079675748099130989521231000776597913922707333678972429313299232424619449282169592003091254484216149492967625290700749956703176989076235470516778943735187277783917536841757905007121194247746232380562856871326170914494226752284607210524371097637433987161510350185673233083777696993553324397484279540133567618717946890255907752708459585466445818980168840116946970642119462829791402661584846456546043962936099179742363256866326554174537502573135593609647684326921595791630458928159476698018420590531961106929043198413304260557077025462056760508509563245833740347706678400788318391275312226280650421047858772927209296164211211378976072184239700166615497691512797616336939206441753665258767435940168225231241847815382371974139048004873392294439167475185718952193777579436284111477088335074822948167240244180562736241258237663624647647821359462614420861505837738892398957815609158646100385031123495657635680811486655282456713327263149712598943351524938833772020685105831077220176470801288251587085798193989463731936133524206433865836833481061881197032755535322497179450370232363503340549554091191928082239564135387061256068987795055875697780438709607523759801858469183671279064767151295460922815480333961540890858724817295597626827564394891697551998029529292982339877473285147207022186361495068355292345796067490679687839036468915925539429200800322854914215256921464049981862894574273823360587957248376597760297703766888095133859103857184766675898838548764533910060512282417351473814721004303905656279858631397395043982710994042874910666884530344977759855318971174483733249617028195168774348236173985155676210508122589913653904505714891255708122418768612385581970819529448827927496993423996617713579889311629164705823201455891983189034850277831311356516712193203663941985726413474558040040171947137159676638633075245865295532897566204972958266068505374972611828947110245400927072941274695243458545801887487973547938874600987127231030999289654970710868642254304560662188970572456884907549866048762285960207207256433464699749832836298742268715672127333096723682692769222636143076061637139409337414821565818647942756516878308737497019353378166886979748715924846901998495584034215905213130589335056097405421327604627757350372933038659373154669139294526053529832992498956407392275897316920644944876582935721081438894968342693787576855217346340465967713524323101737804035195226833795841841651801219031330245614873314804960917984109804247342448325526294811191696761386072227490709741278861671786402191391572752220884492771024124067362752211282427106933428721036688739423497639309191145318251608424746307324762421245571155280892447137617380541046744775337518882766079757120271517357890074623633562801040549192132953417087706591764126331267900595997828655400595304706379844895767695373474709045582938059695259946261792626224384271202125165842162160970400944451672402303584209115678610176470111555151878238185840561367635500262832052209671407308918855850041484138258358222400213442669344176837723033611836488107032283176551580645014732719941977157101437361717015176342821993135106471457173329897769571861440199082835000947211474164051573768918010414311376540144790279472917308250661996798206283031338423809603045266820908133497403866738767121871629796648324697017209886891004736458450661315362193390237395036054425923340721748392414609231196911892218473121829014418652390739533530136360493940070240600342172922016858677461608153882280448235291464510345045042799070459502564369026022434459105907599089223688025461735988230145406798127675249243608798517266590241294754347025038294780823232092848505539854953070248651675766293277626938020200770425491450857111798761409270990013452906603732513818001439203138054869971330727954825284647845240149970448579055328316573021193825447920219597394676322494171103757420097110470061864415601484478114120018031354289458596673671394400764679170421096063008619740358681795458253649674852457343829540218830702998940554875918061503704964231077319610273639145595323824704482572337662485967139662646875757320093011936812606448481833377924506726416452381446876205403373282351753128852071058153513896872620773674381747062413490905792188294812335006517919355097512360673849397526502346672008899204323827220066338303545902447492298266746804434152166301042323616120555373708736747567669323884250401994526789096144974167271423680012347803036678149157841288899990280200462041098523082958717411283839707061793017376610750151532588781054708933025571061573317673000741020550876850310623369495180451225563636026342592306353769671720016233769497290002435182608228824319803506183567687224417204386180911747456542411333090985931591084188981094609300641750623882129397969360036146557299209628937846882089410371125485397481462428387487712221201472228908352663479087142168133785951730071670621144398982209904668591596972612432436702952665873750646322865607077918276958965889447810848494129210828512633372656611616407000816496624523737608975901261396392820768315437716927824889226240130434991354334244501190643947618819809969656961102866718086264572077411310467572005562070413226033643239090027100972973684268955048127067759607568594897147101716452440076311459973371100693087272963964303203335689029437513293546307561751468230973018165060623515387172079164713875866638350129820905366861695267809032764902122361385603952484057387098418970085963550796430605862749018625629275805695720947167167406659518673801926553983076075291609444715918909269138502796536879111973516005827819807584239047277976127036684536853925670842374456855932344153597614754984266008789128709846800676432841648221555562483689367338130242042682598011893076475805643192914120996808053170408289502529133257743454737660101833629946014622358536012308943665281229004412857530586164972229761039620503365801492678194101127998486447270314614383730016251479786577556624845063276658597146288260346272249810737019130080531143474839000233826461351782058687847470622117067196698042681792345238311793618827537880103762573195404343538046535473888802682228080749832176015232498959383957549613184905424648984655684344570652807566415993273524978133327682330667932432623584031325441223012049170877596513052258088281758364379691331558267375750165659052186256106910575662776511878367978516524243633836829581766993221219220114531633998390345371047674300996219587607394719873182113201066260559684126389391900838369016516483234928310172564069236948901611904578367612008557152918146164649965029633432022133619878196204755152750078947441281508078796267658864139838670198343901143095692396873484256100197027864506398370903336967818492627859716809097275114669372482467257498385781244081593572380582505658076471836084439601910768817264948616142857901209962250170027812630639471372354658584053896057322719932407092190970865367555401304016191045610811910547561399982961559401802406643905309441767144600532385664314166486214876735622218712919820466504540971065999635963623432799886848173133994624693761383815603212312702000880670946502905905330808508603738600417121005168632888915749144467600898369545448907687002056452382692219981090904783457179699424598321611741652946220532119818204682310332067641499253994123203471835965569290764492478956858139718397129478919966443734529792111587518950015628404098267313099167428827401630590959538329338981387409646631381849899835347805394633621168018519402298357332808826540709946534044427295843548413511891335504277103265979770533582513707647660060646143356712947050988351650623245335315487518022798364545030404076202894786495290045857417113161444575025682174837513274743905197384192471268461252475707982099354243394132390447646543257565563389600469319029725501143453519656270543195032264638698230919618697558757087991002303762971671727476635663675328203610535738470258325066321336294472870448323503626568089351368724073844309319613895371228789457785297901205928632541496450233532528855592338003596937397732341261450456654631542895931960760113211477737628609010518757034582124473319764736799944156466385502449653430018008463270445767521845728380906061524281747068261159859400991262018070217011876577214465081196898143562978642353773470244650803596510813057142505336571520875056167067620048139916792511138110856155503558460214696301519345083330075905384305070296228895140768483275332109678411220587466842420800392465531070522328746033788209505515771246384594763813737339349168394938152193051263081014454974138844159130442710621651826166494748422420235862284928613232052402596072028923948612947448180624571212688963065094119065461699737721872618940261441684042205945153493209469213270535440598108204999513657357949657715381201168272607081259486197345793940409652120613636902976640234663074525169316091925322938928959607500966916928457100919643370214555550476200161276732837125194871572400094722952469288510424274244890861973640006466277422867285093481504894949782470463801741536992479467327606787705766185498557189066659205276952213172318788065657454491939787494137864276715813383606618226258648352776377420537953782805749368125988236478705026634216124022935982827139883241739615650224898465863446114161621252307078074464690081950740449734596890692901364600802069337449719389574711484696560401365487505301347894096329499176239797633441552712312484195635674267822361762389935221403438468343236740935437780953670495432022851942793349416241936894968367593137464457583204704124563692232241780640935070999417433912549108240539775603666873258496952505872212875232196792210626156401749165970653510800131356204260854216578700619495376758551691027686801688335140539937768575037613294527821257744326917073453947208150275605090926488579737594946908414309876586155101510649436935336027836534855452688267504195884215709258913713633946801544233715803816290803247232811813538594802647760733131193153442824668905311520272640185252592369861860693142346296161500937897558387694082555198064688905880008834847366017567944132055948777017517489678611572800570092349211266570707716152798149031795545112302524221671857597586609304414156247348814294165704526840555923730818769074582017263729960086709959361752948445886134168130883028232008226674519183740894918024384576033665870158352057079867628118904912636701507090259245625870771283818391726883824407079940977393321806394566965060810144419595584585411334715931911005683526964239691474823161506320354941825053823062800506319435139056452485881551446630203174204244061879622446781023218548035304944256509439119210330705916739743735598626417433390286682391215915851563831540976479458934380791870704757289797955236980643971161193229925279002225421794876769499362530598718225893359829166582538608298026219281354191110671274293383945502150053641111422392014841666662145683683855158234672499128907916456479905508138113588650800712517750056006507830050042198000867859185397170434979122720865711892582953162812028723312495522964106769575355360005441563442026236288038222707787587301360756473233107806008519104539464662843161666929837207082658649730920569604916459946357484823876648496027789648305829825590293132727231276175499611891287275435101984460202843827188143924966274461046982335481724156595395526894354838295920613292757070223247329343506035813968977255031134741598423714491852231939631745138422021183834023735770744965243728813519355087669898501111545333790020058861719408913996371785046422758461893699491884311892519863977966560421937513727164691747693704772271750760330403180100801600269367168167579701954708180657287872422059395959794230747200711827829837761426959466675289086244633448585068385354791069167325333104169117293731872253259965825992182806906582745379238845118005615589858499876782888756395039777840022583263273613861233494310831184874328281565531836346023780285732843699996932170868604805072369505456711441665983667952728966614693169710618080679625769791394828519622392477842975877409867778216528678558427575704450432462993620963862773771366747583792026711696890669642318705443834017526534343637219499514249947251243433764142944999353399008865958904082398100528139712803211314363986225583979380628267125609368004860993979124663629682301929035415714638255619297897722672491732007198098763745768456226206980657464352061565128410210788698289047185390146596146483466496554784585187199434567241738451987976652025187017301569535193052870418969685378011383389948240507122974295800603460756653517073884945200222901094518432865511236994630213588376057322035186081649936120558073869625806281524814068850356852547778069674005453425728672330580691340882467111984533467924108940760731723974993205444210536311495093067394505759650769139460886643141942039372876609554384793205706631463584548263243881968861418133019275209188908767144761968720147432077109362559184147567423989287651779872792290013858418554067958747367864696031279562784160595110321432196046830128390010382048700345388520543817947300644153343088705626105776979034990281606743799183507031746744877216120221884433789153830453333997657427933059862709725854614186715261663744214792865066897156015741586135246023974717481703192082921335292671808201225425565941915088342092299611045708586036788177511395926485719900281233598878745731599771423178494930910074595251186417918646131811837822651796706896246135367804009418734933998509504381297515410622229609963183077775509360676674110854712005641628410687145549898998681539307779212700109807358625910303651918649383684111417998764748408341958628603318354765955868373209147393683080167785962420689327344726545194454743024444862375020206141879107383355990300050561921170677208978039482634535587824444355926618428509371682191117533767642951240792084020227930439078379696067046291944734896852789999539320684438663732028120224964949781065545798453077652297943021300711609767562817534322319519773524067197659160818985964188998054288050193976915852894154184636389465150702460055730089220043982339190792273248195688283672122977046598282669911253912899259658737722113689807752303829876304748859013896602259958469466806845365510409624709779178416353397996719770787622954733799241363415612926134357685039453557100248954555366490907875788583901502892355974118414988370624380052912134540246182327621120413627522705843624814155176918808842284881446882670829751402036262963378285321005895760681819371808235628884116730408323721312793647659197176909500997101461015267543529282366487833401782425850711880530353525487653314425468288403745046656039814588180179231734445805974188612080523700754825411119009103798964668442456062389175479509839576020478321776767080182627175648845737239830043966871020743521174794582783661577498249181928964099022901699684871790160168143767266166097587595268735192922649491168227723053121084395564777133200826652633779126131629155617587902200391754793909421047684652364112354506057462643762707104893575048674380221405151033182147917247007193266113961269226124976882977446302310935360953220980227741565476439848820760542899803684099236715025262611721964402777033824847142993784307829460167391650918957461544873903926869794751488919525947748321604633171948443997983079798953899379778607797752393758454323148333877983668672530440425352476078015310244293360972648648969608678321328554429013612772522476579834784289106717581621040198303286081900329280552324793797108016862764631840508770191339525818233950937653444333106513865421078457970409951755282695773590258046136505221903718407402198984886201480056430439363043371880381817637736760225169259839599243898398313674753819034926348575935612456224167426164597493483540583104189970468792146012595553683442951710778396822892509219029446680338110909336696502169743559854334142988790824287209898535261209436421785245634854689099205614440167032658155217710042534301462776163580346594624018812847651578759966382334214968739430653696545014591258132820593099907007018503478864899791436895087649800474302789451555976079231442196303150993214067508875559469904516471312394367474551846410928626661138602254332435309587425088025111716047035269296142752099778295652676306504967748135350245857147987675867434288148313282394021760654237895909764181631696309737945849080439843238697819800834732063309414608115744024712196142570682984875769812827764642479867203378919742782219299067411495669182153784252259715584437454958656317733626485212094417944473959459478232710616352088785220833644909112676592604605240375701048861903840018156492556392236068201075306838290851654685989845428400688686905746108519359846716000138188668374049072223521446555016533380916704917405652142399127554541913315128227872557278545494122125154950842679091519792154338881378081485809795806724042992932094245490208757727775999894413575649237830441699953542162130921499416174564667989698388388694516849693571015866148592232264312051363072074299301263136162813119527107171184937866282014744437336542595309483731869639772221062184815716599064463964197648495996764252413456852473598907580386959013584195189489056915668875048757986387286744832997782671913525187826049409146576442159787374408943461759571041590306177932673553314954592267621847311394694439288043473680385086083549589041591816522091266139224982297378866653511284605988171846370332626478930151339343259868331320093938593642735893761183463940198828285458145713729232571016563652800855008998108746830821273764455078977786149604544842611690970209015395138848178116708840872352385062592529218086527134926988490267549143982727629065550092693181173939952964851110073734757226184757607314009918941773428835962713507036205430492491828281476452627166078005533362737170086906694677855688240702707427616715588416870540991120098402558600160850421053689700151575486380232305894139447278476147625997009640536858707621293306226639832637480574735096844374468735972719921416076998855058164628121557051225058160298976216906522647053018201735299200070906877538780183732130223107955474472781365426749484133958525387323448511528953739166607084760590040074965751914993519859491538038587887341668354817764509605438647948982009597201639696506301953787854703716352748722584841156698270958086897687883418447278679015346946717026106509031409638359710297012535226554826636613219482965786832593084651620500454205410430640181894922274963214864696290694578685467359490370983433017255176815821988361498157925064547261355310757866625655380530247677695517541521489188901190671806640763446963015671207851932243587489164481221766365332703705233796049782712826479288514514203427155059045105683129277150733995055474342360687455215579969728119582791509468288139641198701827855994732256141597444179455403962583921973951675589853033428064172996711208684063672194089990074143489035465687922564699839862705722402137978866554426135935033513457526875498482495704612172517189792073534130960757662953635533335244084560466746608938233685722000348080393471352730870087016545065236156494926416367655373700452041649173729719275322698249856342189810214108955319068271236385568989378447541513622930680443053287068675019348259823606029721079625423852186133168145996108386128204766160628003288671449552962425933200456418044525164441761749402685299624239143170483595261486681973909350398018382223941312250397562344774023111870067410208646609040018612220115702280281431318655796028177389419768911541170771481523490979225963789411475159755150873347707535267565721133225127118285191640886986045259630517298392205661365983999006414663638439369803022915916290264219779126684589715613863318751978476034068530482001539525502271039609386780832164063376529476962002149843885210455820740783003246529113601263206389574884334776943271065233295902417217827294183705270502005707228811327771060910279465767235990786496426488727024779497813734359817222737167452368309369573399800621112042196691745759245595760591474685548397910833720040301397303079993886649296922938215985225807988981010223130317808606755295881358740048897816922069572048639040467267772611088756862098938684934656587424930775218118368824053547663522505541978756178979802844297806303761347049523841245903868130998648673713927505343345887938440121750753400323318671038644349971677341505752875107008316854891438489526683273730354686031782513921212856227181551205755463829874529353282512602091242307241356697776849476278994774519363060056879253078165979996794142218498465596494859800520970570916416308168401401315149034464659929456954264541403852128614438955147750041385050573796484222506874575437838236413182063395306432040138544138732772926740856811269172213065137780246373225041811245609421316303343226517582528414974603399310905585708394085185278987051037367770409091788587875503382882157818895528589776292747417794610842288766413208865997474451505720210971358994964053462952311178472590601636929160975369032436395854821336864041123454363891824100390266653912955606804342011294015257838758403490875275790980709166709219716836956488812031125059256348919424313473971649494631068124999827254978501244130225279194786575217209791345218551305811301024704530758505628957376948507236522185004168157502229377864271276176410257307511680505284557847657516812033828278205508669982152867881197161696925225815225529849426604339240618786912490584310937169853346360159607559053192536654252595985489760427057210836023372869644333916557054223415454037960938988236674462639902411374249788087135235431934625680559461739330903999181803863543453603226594382147883150612304099735164424368186947709945512692866340792628592724738185488973721284512599687254496166039590117265022177594825170119678938994795953841818739267601674858959380071118800991654325225547744716872566748229077233371098410539880879169419798608548007854405860506197708986765877419261570897274739568080479225718811060850072041695065025825534809944360814882643631373320209385924233889018981192656049923916889893977557213179570753415516036241785568780281466244843693881175200540291338131101044987141800550666905714629309316659188384833006070108612178645712630014733308898434741962870905468178434475675113230237227471841847406498951704208139116356267103389914559209114814702477642720067579307987366761313550967156046772563036534760857409210844613592655125181157997443647619367005568491406849670986188068880262816442861060972558290098790995642584622450089462722107253785904739220246051916116883372251570149555179647125321012810827534807839799682001639862258276024531695066805983986410311634103775609717927090542061897322036549237426151408052392688182216787870828053754742317065786700850937118958571807858916773799998091599784681162782066980032760593881868727597397656048302247147647984077467817763210187775322967634806252627095127119226131221781816950167077579364289309182837175198504446057853134561302825180360534335438382494878525164909520908362212879149971154208460602898827782901493078437784169833122867244888080097606344372226489768017876054999978955309798072512954700011154542645443621626881845145615283799093812093238838112661710928268371403902372482207450375822418023791309995596767399562843847903459127105234090988409477879204267252921837076148395199228795211387932312814745905527345553597171900517948598584071764884979992291229157274880667769963769833203245694451250371475609278328792573928347651913803728585988603946909395036236666823215841717227483733073870157456579037173812422109199203604192910267125868684565558438372088173384874808457849735087896888291935428274742159624618413434548947326758594913892510810347590250039289734995547487729803836672600267878322252628660830857962154632542004613237733032060347701056038114236876955182623453147035747917641521388281964787334322238292758598023602227190920856108942064669300381412211997669538871514029417002533939580928781359509571413945858465208040616232470876491739259872962967742333072170532878971131806890577840928685617780310360315763180268107322064139249295374013702395031357490465518005266430693954091689895947849414138135012924788012687827637494787318058033216733159647400092616916012712607569824154251453514436642515305040429416251530619723218768066810447006613666495288573743362523384249944573282827007990008028627689834978027379656754150456921317379377251227195214985588415961957167247200218377391283380323465815863532572357751177894108604743902646584680614337098399301073786469803925630603041902781892449992133729379674781771495071557936649971749517335146638524880557218548320273521405758740533264890918298658461518954988218755852203249346768331188598423779248586718708441960168592111752753359239310429096008229465051653198526770395239351358711340837034989990613500944570791273860376596088501330942018086108206035660355662839242667993373438188199458469815608278205539805494236983621148986044740198065213135978559274306204243871888968631592719819062707797686351473399070406900746794015861604322636219954630659684786093472796555329354332208712592422701849751384030930791466954321811424841554449869511279225256990106830079381608287113843505413392431981853169924460640125690790221080586482310276361835225728036400603381550141265938484546631146884234354769536032712291948308146627939397080821071506393700211414987585330992360400329166349980564665464035299497180471649413086354623215320437762974200428830956665032463412349845237288331934944603795296287443486614529687076917050634555555822690270618752729570715217200262538631524280100905015918446254228970502155724235727433998378855592666871726925194257352594661663431696143573572833091715611733632945622187735278943035191056958468789288304840698053747480232890439075837817484247644748568823306425799709357543596021695918018968291423180526636950516496093616242956003022445801291906881778965235892353220648319063315604992324999011669041235556229538118515586267638037541673216375584057606545212712331880462633849953568884610353075502660153208360116266851583915988351269979668686590566922160592283947294613606656983122742842458761126211771030078947208103315392509872281385502340692272598367505452748320163380427850078661037443057976577089397007755391015147902942273286637656004064971782941438863194020063040950538909483466135860012701066622708994792866413326280556881715628398633149398601026358956503454192848353157795200160168831308007937752078105190472546894990224341636897404891471442941549777676887504121914038540952422466451858729221894011014408207355339706908818257000554743911513499104027047594362867295871429675326299806518277382411336533889488014750491784975163760981526880332611547188560382376355011809810371052841187758484111372468673035805367809643809735803045129053918019215013016367998202200153891016130772156977873919007345534832553306894859983662946213708921560925442552220085539644162097656972797320350868401156109524076041793386845707974650735736558742555889235200131046137013581445237854133724615532995002238791320268856618193033476405468888031146405741006296663944778015370085785797037362595722161567317030422336120734233044282263309850599895201562982043518502061966552269193887649478810560838676756222043796996322012011168791746231276904907374436815924332413876964539624511201392810524898599346988518911269954662149132201698317847776417648175320091785828283415173211672925062115104854101371005017283526290615174678218778712074034918992242111076701851383937149435647002664058870056069802551338575156885159774025315326209883036818296457493252141297946081682585354255133730462633245279349431117629708071236210207977427144171281168029481411111212971387836238806571221990975880309811355721334076069345574369874212118559052732296124938546166272327587079850291824605790860253520417975040748045966407107607066582908156938307288607944337236880170597347443513094666366626326694140130864858080581915041841286054627766905133729435060693893269149635656663002949921174427314292485840295712697986890653752065928362404877692688263205173031680632289970240746718866388138469095224367826402568743281690579429021494106329425442082775576681850553666725212509725116284137306060229840525177828338996544550874999805008079880415043252520571325291855331031770720393707674353937503311503437533860356010964976065020223057174646277738363561341651700256035741063749215515239322139212243301350522242518730531481618767405770288638867222842225758908910410586777305239112319405839640915934984350963490784052992449260278880321634293080473870330241262106489644170152427606282699392393830077736250684688306890664870997502657287260641759115183370633480280357965588782755122413436080540400753709404756592463605311586705455557187604703497406357773876714754179578464800320862893992867504355661884753471036490634498671417477064264831810385086880364669111819331969415279806959782494402984572890765686478397292416057533799544521941865776610800438281433095658968658820963456194164994285243187932662422978615720098517108033782131469394930992559472966239343989642566107991938585096179179006471484078216992170521076343235199947266977789370330297429674982026913744417511056292135745890577579509714056042513799383091661063987260592063576423892833681635800037299690001753113607749320647516606090142510403349045419621316885601511279737620026222620369688788182879357990114548276200121447403855821748737560098354554805534105781255201321992757097106954269126774565334683497194818897156340753203401131027259045547972825791786977832532389664379411782399424648771430715472906474744550747448848113491910642276552774543383418871814189152217388503025979706228339609739299959910754885797522067867753372274639816808343223337899431228741289996894404856630856719674431601717613959797029245665917502894995756245156269417683912267409404595420590206558141967175317902715250012431944428329172070867332550845154380160774378499270106225867701544620029245920258190022668477143947354632454709384125516738944037446159242952191290713094812054445688997677787625943942633468792054361495118048387653250164362532563622695500300611553924208264950343181042407343096992877336114222602398568483256067508787252888843967100734214645512901436518323572026666101673335970422780325626593108822129215909322358433332604081247042619509563397888103757520778320195358406756074265105612469495830589763652315172408462289045183157360153342467534826906623988302038002491901858313333148181648942301524178691796918971118846223347209959870102296037764805552783896483671928162818445912611526591915116952301616150927303799391068666921684640523718529106464931133121221054172350959629483880794216292048945377763955156480540034010703054946973295161730841817246402440672962092697747752532100072805839734411591617018345232182748231322242613683564994471595463610884968145041939223866859562315354328553106604207989123268389059552245140535746593695877136955676539885892057345675184438645579813444930533399693376204407310159838045321655330947397390975855315011324674972066071011225986020149159986560045383870819209831280657287554452158548546353033963694049637359132738844105562587346148263993214404558182101457089104008014098463736175398165256386736384934459356869593021555005500156397196713264165560999251010915001682345302179588806224295291356435506107752057341058367431140417892197583197206969272102071287044493086092203614715857425059382471720541874179435400314364626131493436633486015535413391707212257854608854846496503948876884448343486597059853561098809276390204071445777760239415166954509116125410527562666730009990145706502954012086866743903783382862484373966991926685109283220847364597587901158661361234792710777005240077233338296369878496678067654468970496691314219790077327969732041632709597180792529348177231048239163497522746068878126016250504501095913543679154517533012949753341499420415342014678315067647338797333645817122467699504618039472596352400361509819414733924663951949031885703188878184981913823504839101371368345270087050042898289217924649140823712797499337055076392206706476175278639894049910432761073259090628141306317712509008899201370495088714373788111655484823838115558735391426740029417026407478821111834102541828219722781577384615129324914942368451470561582221493541328736584474087939058953872941558721773730369772966918772719501239680282050156173045654356741263081321865872294941735675325341740074337003650724038843012910505808047724474837780393508085974399249277394922311964247528688352102845839328628842715414048166699103287062648374030740320226525745807256043512148644166408910662389565348736690492146757206186580959368962379093021320034782916367806355122358784868647405966096686969186964383756366847027748206697847655228758860359189525996317558896751334655748294959777261274939977696218191510755951504773773222119809988160822406798986998101916761668778712561231492689438732873397732615913878892066404771707723288917043972012773408663489490976593463338100697636903861938026973656175347090197025867506758677738696443790158598801733692449777549457120875753404860496861263811655945053017818046204423521810482550171702378212729942641805824226359164124019191460202133514251362331986248299651237735085661385296570205610385790633281549066858079019012230947024022711992705098131806885533114459769539589283694310286712871320108876435779594348240001226628951903880381827704224753165105886135623718357904520624124269682958141525605095444762115853523091392869668532399072049599124078276420579783097250546636745293469048848337292379899173450039299218264737928027766331019971681879105574282296174306847576949231880690977886930705513579439255264149043188495863045764523755430586288714554678624342524361819126806520204187139109171694466995181596890429298251089186038106987015761097551245383563565291922799966768278302637534768800611834427942819434942744560257379283314663652148340319598435000711591752709900409562688560437261219923176842110242076279120525093547187222758068215070865991024792329987036157185714876848082785994682655155639589152984332586545310646182107994523594085904449593711758261423422577489964876366471238171306028195527043977649879400844924540205337663656891028741525864133702052556230176683602412973074514990436099773047285421617579322703868329282130542659440681475827539374596169775521867713138156469884202931435275161887730763735389477380173405737555200702119786238731873092067051174763464217095675644299466253868532965661110593325403629382085662905032060529313767687553114848262889335490822693598720666447097521789211384940592883332595703681973654764035157309318176263583806055129801764831370587705790486175536817031266621027129208640751683446433694231205508205255061667571835410479847359903006529165864508604192627275408373094467057563679236595025086998118227949443255940635880404656553872075139225838419522565962771815627221027628550258749675916657598096717349525910749689448033386227133337082080556823745886382698094999157161669966896623665430042100350843093938667953745318471511254459965119829889220683953680879580895126870476626923991773848644021727254397595170514048089874351570043959136434015239622046142898937217823409067982067884654227199068048106074452191010954854647830789640627926149998896205506933842961776015010661059408012163654116396254565156044111188666437285318742947485209066036039708149207356519350515986234065964951568545099895024421292409583007021070936305080391444824940798587249051779134794240514422789600017827209379430946304024306155680926468311300453138821526514410029261436038804073832400916654015598288274825026094482609443729743643978610704139737119376740859362296355364183349613795072860605392214391080471548791940319627244772117190392939377105661628213163173945141211017149190012591759809832722020503118376571847690171491944148836680252123481303503558232083871376462038553622553450906633089584718158462581690971869015717777151968048952263989065559310262194438213015179483898428304855108176418953860160360055199142927096704450809297993206409135482807658316938205850995031132140670645234574024231486494079435480073690675357373269911772600597526634903587605076161804410442905849382508663497317009426431250766274968498483087228842977555033946679725185557226863592853088113630876932022175836038901430075613472534963475321891205462166006376704503192168513134196079801594247824075530896076182850317393053290153947134066013437689896058418654701261430062941628568445677030655431359915739095400263672943435035107035195203234088837278083568959895580851831016036052952818530142499553196657406880947279107526367837682260459204845930407114614830616990853922931359832692398744037303063351631147527801790399462761774249384868723347912782712618157747985398108934803955481837481998174671333586143413575481401765442502114843413611544328808746924586867172096819636045535756941768876522310573100985204595362139533237295170963060607881213224702097574549098990467827399864833103199825265720049493084553406247969465990861703006960616971373668292449575813220814678242637107875898963721477823995414323375238503601763836655650799007307228531034781954261603341564854738882626494192544554157494197022076513327858525938162065833586218544585028646968746101013448346957028382561270493674174884770016950712455920924634730750403342370367282037104125896886943906735748704917423846800586358490012403884097322719527168999853869084606175674419251533072337184789670682916783121862056061969929506401299624124516077257174333604262562997202222814501852160320852470771315434677080372277077911293825103716503179573781974933888424690482757342048806245465687609190759173578706596912255270203472726098779848999629545260845744997999472509565651818056065899944378285196035128411540137211331574669754600487614212776486467961319916409695864731971845690904778089355947486361422382729898737567222408509860231052053766064289418454871596197832930632469412717663434372959042229202705398053733287008821454884141492398192207825732485232332424874572065809039690344222403530988654324944977508408024330360932428452880793461671722001150977123078280333013560643758332558707918486473338051495433204764038317170658375899921157289970504308906309706303250665525550982305198159365532799664929637374365821422479053245437764452670226923218543755967116781499332449310289627871846576096449717134097303712204501136171100732698630920491378558804478958722184299142562349834293765960766727067823376402890717303410013549098175847422202795141645739641039757877823195234545369009135618519436649363347139308121047250051650506027026648438928524270855413897916493527807511976607927409631962151700254239607132273697042595082874694248887627151953139891381835112024101206264627259897719318298220214247531747383829492941383382120643619932618898477034085174089061357000092377165382906830286600092823254519017624091141498144258674847659038672362525188015770091641422996509953488707216726894038751571325100710512017431083507972864152025885539156051600401890706552905966996854132667073822813948827640576507202757297285028081494844502701752577044032904777201373213569628530706305594954670554073449862861770478803926339158860117829699313209420136148107225979589038604874064838867163755285211023002160117749809040322595766935942111363563385835388048072397426862181200365500543151431755852067948521044955168602266693641889567614494401349361782795151808315314217223808522268916023737944718567330790893641507918251627264068340898267556452993120810644517747088612140745291886272197586239942157983546695443686158793323095636055589894785922802815243894761607679239065679086503306333827522215643209996291674910337124766950942063910133970001143280786040565625838741900232143166777831307526910658164168934952268156774074115485664659995441713836486966527191515097495819812528762941277643254933651071945092761022794614879071533120608348500031182816125519223901244663047469998250605090785491451910270854941082386478375263415738126113555823519818552288211813362385703232738935315917505253697123503973672029590591698986244828423030337526111575387893984944480633779915978807729710671641836436672489388465688198685909082896514952978924419370740318701919866728414290692823894926707832580528971589340816280445981365048803064056349633279328098070998426180885712542632357947289761014537158908430484426815090193666166230591517254721063835291564016952139885610148025473420244973961107378109097463737627362289730650766045612665059387243168487325073430188142563876645271502467487367483393641817811636743846447080771340429374737093243963918980754346416649080878578951101821931991969131287651586542679962537878511558958632824745534080960105462239059035759817197878937301813281777028437057165088200545794549470458133386254954350192663976571527129845780306435028298652311950804487390349116702541726454975025566198246714611517300540090695419403724350552973210366805067872390777541811225543853029306751096348560313411860328271174701058799983845186264177455352714799142960966098818214671628504864508861964487014972145277610038257202973812851951015259971648186528383436440720294124906095130810092121453231092723090367058893227784299832417938667281011083973106546341504130224981334869295339608871246848112720688018411144527385904646876364007551390366549395370626269113011457090404953551358636185920599100380464135307249760044075943377916304126091833637729500414152279890129079782272784282124809611511879987123893923849409474800979344065997781641758474773549283279564228763729013863533861208017582087741595746603968416184230994008911399080039403365112657384040799913955030596749065571742518772816732758522084844355639448261190716243054116498796039909120156175837889902037169548581589294215105905850098191252078714596388868257154644742230836608835131421563797870602353188007280920060913382420838345544471197011030340959816611887494138284405423685645826902565134698853819990150980758404404383013817797911849697651123939924779310205426158572565893619273392614941075577091612447862445206496330324872925336202311672683450651845026501332362211337091999656042202944199296767621064028384919652485352599976080970235447496901732987764915719985733509178797596145340011176444516335640921931557965797828545446160335239022414767010334996867267844635416428127677085859529772295596326303076410826576597752641975767778607619468228390725634746691102414153222035181428541822391552411723277173762041185856931557487848900625683848503626017019034124416602678140945556984219112342383816648037040057935973110077092851811485200214172091734436203446902355161341804101533563809978355545624015967977591178871235394918995304778678771824360745843325224812573866443987551491471574556982595005839586144398750663650405409711736667138230509719326809387815826651705910397904086546647691000314913724518206515321755151810102435537119669133474141851595800673161853381359708238466056437654512544588643781873014632180294429931046712945382390551558213959966868158296650883748139472143110538814108972165043406699048154383760446514786280824546299278282980368010760176452097243103103297644510993804893927429145388123940658921554184108345123700552077556519151599198023147492314748414817801719491973825435168522611661749632970239754647368717132348108350787176143015977041120918746927121650907955525123907009937342921757474211965916687316279615403057332068830118287718421030195993162396130839784220423194454179008408426025331227899450125360165169678297962497381525900969372212314880441036950850160843477344564109822453157919733408302845773185063682708157493473368727902107673311057379748651786275928847239876750256055461629378671902701852666373247472878961134613701114340918392701507609716857271067418033209642459296510106352371941289450645393362556261244245138533340564175444919061997560174673352325599102192083977991288361297522343651021866432174952961890926691028440257594330989249396169027041277754644674434622337004587433731729386474323908887476991674984106047182838632061718721500597573793524221875464950806135524729931072351046587347711459163870893877537707776656358418910049115790180144889387706696919355485505128554057363276851405204982195428665582918757616058046497697778379486373016282636570853469240391423809001112072531003191130664286271935417914558191940738550743305029370695170127675205759473388509077725764853192020760381152933565328073553715036843898644210946772188987394177280987382142048962199882428004621712029438724501996990514612828506637018065048337978035605489503324814993866068193625249011788129346315971849270117303560713659292582177481789181952582684259469721290734542511041480531218124469145622503932881763602427647519380123845475599281318574767590250049149813480560434016334063201441939289792340635211048940738780802605391901427189376845792779617642907467759050809213290261983045796712175833268575819610220501216472867488276477832023409312266401911799493960571323093185184572640093312394399961370989005002044654515383162422848892311809158334318873825931597978879451919657020069840419481004822720425924714521976864086613978076571326532539034532068255806824048026635440876940786293825871213194588638377927957750858357316103622210243611393072762912229038554004336643884437451827090541675345258547434824054123699207001637236510257272928975465738449146613615089038238950468884035972485680475893468349650120785270406100730000383472251737566773055850105393615038519071198471710349531391018856337096527100349350917176772018785866768354684690548711778805185160616356903797215548423841744109967846012502133368388895488853720588236150731249454738323546512599592866330861016729171118511740431008702517308213443988253651821725406979073147948883325050474894820495722541990310712792468666489317854776080841266106640467782246405428171116428427542387090213114304269712058517044682312594759689902152472236441973922390525691748172571057310592276185558062691907279216794394899482490499098628437448860442139947058156937017860474960617255787444214376083631496487522386001254453130084705763382080073518311798337934626637262478634333700647606847138359031945721754011879050146869457145362663840951039240064339666516615425508026826594304423027614525746453883847424354599344856461272088750662770477620918696670954324175022088422560415395888863707181151450322819777793879418819778974094376659932717527674752093037914884677619097511473882272684515912906121443212248089920852286595334731714270824488800829249962943651998826070557968753368019972255719860618817573373418128984934075359211324584987396419941402712117721772388505645848747768268445658267667898071743885458304476632601871143214624620727360110379805759515888428058814598831408810324675084294455061267994455082100342446967441447614104225124993544308024183524963541858777940728416338612932727924501450059277356742036155008676738513831782506316718226988152418855496526029180062300295152411241697766845525598195163752334335812936659488320800861724137325560734603259289735289452066575459097930245205615842954917372086283951921106025825129387648880413653103991937320426927944422081356978705455273713763223480966185683132297178468586062778358351098347903944605021300968626675822517947847978745728850592413073141760610689745753088228112932152370483238996294209087986740914491931737986702520228977262470561856112383180501070484784437666826053378476530470996532731091486766791775258225921194049107676111416882700645411548336818031139456998766411397183927881152859425114490445063395315863013225322168259377536831079774949208081501966339879476544905664136418806854276938187507591413109724177828733730715543676638978665484228229219308997116682672912770450824565499224097454478277386337913554409750294794238977227996683697462524956801580275898316452522438696472375812539430690964900939607423176375318839808081175827897092557381518435791956259697495051004052934502574992219725797505388021501056561187929556560351154385356503084766347844314436751719935089905518557879847827403884741936511336160172941099269896493953189194702540753875043224978688698330077004934863418924111723977711234664873454691430122189830714289245488280636598448619242037348990528699615855024381436485315960552131148889249062162915760086419175930695904252684489584057176106111360471487881993172879203171408621563244449747093987618121613723146717575249150656748502036099812279138137793584917051421013082130257074287577508064472143164355661474941022041982388010996109475627452995559377140492871341305703970742883829838086127889125175973306252623396394635583328604270815301970982826930198250693068300921916923733902296988335106941599304246130061905479036392230880454877119512173881490098984366832714299137328819147350460858507418987120349076154965747170634552080078239589633254343220616543872318906890611362203578692993088366978993796328971574371916135015857443916089504848461837475943617557431542673716081913041156519514419068559969468470687807095377382334699345951515087708054579796650623038441865842148269005682893315149951931004149701361603122569730864674404887557298294779158807257861273911486473911432170705909820014648466231823180049305482751887474291357607956991046995735733428300208404990505078403053453171593800593811111647148258454854852266092152394438615102027360824056956713371577806397006852514382774450414588255828160083434651928972128926120781214778008740565616528195513652691465240017935675246042802409898933575438573020839736066858849481444323395507178846864404084579460378198297189092449847968220464516369678361062131014124932505546722873366380715380744436264720274821307794691373742718777441190125014181800901889454211106280877370609646586147977665073044748905827407442822495539747319075508735452382403237062423043085073223261960280859846660113771563152626909236674107383310718514882822791742630429143199417430618427851972915461290076623807033832039100868385757946655273810913627854357800507564091568946755018788476177635633136443277881789409887963177230130152989643048137946414203949731635908005018999045237932424451123070845187059378070318766256687131011739097255189923415433341122990483742322360480236045448920621303588095322546715604746701036794687571575897746443340038414490813215594100344944744536215016382060061547801952759430614407979031766677593494962958201979241134028688483216999190736029393707314128658253594280233216980957290293784250477003833148028034602758445101734468139869464872601295977372815369092926955079963818590412818559332596279784752988833365810971811549651457047742118849667826778622231512308573259909913973536159368407807198783320436377436741643051953039955916918547701509878635020548132610501572271610934378507470572167396374066780262675142506580139302036501390842486499115869666078378548679886725382393825999146063179853234931295473100874204096761189879770209068431452200518192558672357699598306222202018378429415052043005064165218977991926998332077522027848612949294038314429698464401029627156107392936118576597176147405543457446483790389813807651015537487274707979005173199351745920821791461205984210609595224598686276675795027650922373484403802980586623188043698913217017508625897308859208383196812804165585168262945752583052447514427347169917408010455312341015429197321058185269359958682668945402604748097784594455523360121687501939242913232191598045250071388525512121331847978531795861773605279981313902662812324739059026134641378613629328669944637957543500647077118657041885277082421581045351450132216989993891341502175645267168636152174052453892726696697303307450866908579302514121055638084989382021601912145498531937312686313395749606517961278554801801014296212706372924197167447850697581220294976489453775509175339000555567314502111149997547897580962278553992521057342785132433293636261370556111414908506876339616023314503322630696279108183475153060472653971591624100857608480642523081996839428868370680561532224709711625541402285142785835791414692546997890743259295061894515390475812641883682506817544327678526773195426105550291268412534933942597768547367178248721840370512916819395040789909738964759487660217283579181662075410867484083528831951173025774576526940269366367177096911287667405390059542506983454642169914086732685810393983814341150745585132973643695705020929792271109311945254681661279672026583005650155243831980179124772989452764507843933096766090862537470239392390980322101112491978835353568208268714737176982389250727847558347833340717167002478423378662376311939220248923709027740592546435269870566030443319555897852762727825465185378522256748856025967582081570511911133386533539876690368958854519756478084277554550696275564705757231344156862084902171919523188903379570893674424427700706385038051742044872380287498536506083848167586717187299493577622739357572556212002231373525363681942474696177421862391512068186238038968597771386814626851556194260991371825357304358313028934731144456341579358366283643596910987123008715977753281710026191421607241461288706139616830396503004802485199631609707957880721484327524085590020711403420991113743424668503312037496603187796410844767848004918572552274186390881802483990363984871469642584861794662050860554234500614221003081797251978394763226114195680276582102972545631208904006011658769667981580920949260208344900357191109276192829365015967614177998094512262356340358087986819922457554010547860758598442316414219147504721468175611512903842891974840181873485834176420575146202603919881869362259183619792810874410925840097432092856693199864019032211368404771608222494729044284328891532036541623534804370224422810022678616112423867792207051106186478057716612706086725561048174879591456679960541793525624229758249128807479598698752258342225265426876003185055873715659522339731847122879369630309566734661609349321212045711847160364707217785321506563915946604885990303077895768284412500237268075263155033714220283329218291588989005752152438400130273114843812367166490523566901947054165294884771457534482157169803875693727123313020573989665355881183746859338005827520788487856275660346811425156463682976501679393371073342050151837421172262811895827162469437061690013221980143562229960906985323427973843059008850635316300862598668527047683182269930075938042822695132493800299124389672321697865745604528880873955641370806944366864126184263029289570128548145281627270976419025386348202184839048756050198200452824838870495070947910883347213599548108489536703200714209443106088679237968388866513170407380543988181165050425352801106302117088573100760218267660507143410459942773249609993101475731032528074282364416826423776980966008235568457720157024255151925714232434334126030594135915905782519991136564139430232215383816133053663435193474859706604686730019654533088857998813880563593782414194774814970838002314288168863260151714407010998659639611547329540647408170447913613497427460521061399855872295568984236759328602635288683225427714198949774887694482843783530823210113430476618443873849783779806581128628869744642887747803928334781615419043974505277911644292234705516925637743714953480205575339885696018184282398715712150976544615188233650014451166863753837421977607182038131485329061880393966224884095264925965428338673811253815744699463829580646517308076915793065851138129495404200495240858015181441405115671600440217818140270178167046351677068953388439096837171250382297216641677033671416756724748369390277620668091571569228455309514286069484025906311620787038133329403710739769781502873556858193632170831754739150791855670343929889038696149432251425756396409215101631411460895508682928571482627327256166541312885199876085944023030781821656294332712378883880113399062504588318153891656855500967915803843617623084258984360309879486308967338505728980763084488671496181296450018312437004929978646286599792598111313034548487816717949122127182169245489891726312167859838751801097076998597045190972120709894419186656415470127141708572644030741739537908891482245656107948846261200555476270157735827877883597715115234003223712288282089018108648158529870721072704089975159293360087582631560302433850716246966389218353990196680225150217541874367764775889195156378641288949173662145496696508318384286632882877976442499148303698229414802544014654941378650084578151186878686575364368639017218651286926122231013073302895590729584288808839354929921251970749084313520391062723469059544655089244053054908872502509669306535978464803244762386834339565827014280535667902447217242305166963785780979881188534918166082723946580630697201250605559381782545765735044399904629720253019636686393511858705182864800568515666223483221371456446007640669573983700523986783731512866773994035772901604558250014403421175161014576714343515983223501831680490442084940571846127557303185618941445736991484844205229558750992365465572939363676297685288310228542182122749212748412977752440137674537276771795707967525320457111419847819634372970610023605259798296489701131035188785006737071241078781604289336498806673990116430938250834687248599175943729439889573786820097646173024348707983309981606107220115666058428147184836713718042248402686913009171298529019079028880600655249379885857067558985613248493049100695393030291249360488393008631516696595779645769940154186212654525649815629159861708106929871728119195131400237509173016887925317282463796085173851833798279997774363777982229140446403205555955858853124701815690565426588068643581650331276470912035417858034246347787416165471179720188516508135937387550541787219249764469420045123096562045469989563767360136593798114459011581158515224648114454707495990925954628378567577948013352800335121442306409637821005798291969339011174554086857606427816113606746792069439204978189957879511694096653327897466191030246057709572559457706617625028336790574421146461899093478113999133953421943363961760030055403850939546027109233861385359981335848543266879863010532025931539144765147951400161163125732637189971042353787434726202056663113646755391752138200982890964959247482527122760150794870140246314194155179703686771687409505627443479079736797102170332849118846008722210948831910940021251931662389660360489963151098738053698661961110761518637759274190914903204575263231509696023024888790140863194093306864819910496696942949504650037308450993431536794127404303627456688895301654754751898640116264866547301493758929167290464049166130607316696508678511374810776452572958043106746867642121977674041666217055582042303892297478683884523882767551544855716157102232924078283962669471704827119596501105782483763221804154997349495516786629014319161764664461388841333066786995303091089819140072698867432092790157518221266788208060798638410979244605498732761190146547403502505363315656909561846539482163671704300473597040622706288897994125738678915747297541452409101113232803317552213927560662153452331672240449411856219788623384924464555250934450255962919673704824768274628956809510921564177325292463598485230794984146841334965295169634822682190000656849430015304789685399094092499111050218504509920801304895299890788229498888060532106800867981506855513212664269899550048542435940422709258231300311013784562201206291245019840722016483443241450810186749911721742475716828005109244856115518078208564147981436435238385652239094086023378911821001420973515207814216508490107636088892764794601915556320339971473527495507258541996960910438518584707534514365809070342678266679279352622610958361930914484097576163656291782823432248423339858220500281391736961300852229862060121245344666941232652102696040147248332328584671899718185497135684813970577094120410796066990787879413318509549813784825808540327361582480127744260564979866060045557952489885645667967923255873445274369429852392909301656004529950754086705552624156531369472305160261172719598030817749420827145906517003674121970518994151776593494705043916473481802263024789813096526153891637603174566499476934736467541489633667016781964096983981863784032426604917423264850649006853310330225629036718581031957938296587485777582387350318038842582761685548747679622630498606559914526616533473005380487909231725061790231341853467134660435819878616844044726976807346715676107840926485741431712155126474932491384228198709342877921674532198964433131720200557535351632654511945491922196563078563484686722034149235348729671863518216925764253016281371820119630354580940317706546886988456409177412897172391479152672367941649770932377767074960826481958233751492261215237538846251111367106617131760332222666426322580413886005036390355816714128320837363907697837344586819117916825665893639826835265121661329553027803512086693457614760765623350012275470566726028806354517620758879974913430306452982197347342004189645612527462466274100104187793281081160169184531314897047199433802384999917540062458662510563904399677805677927725979738344302340056241564144781118101925037468142006852866451717855030349640731431574300924092358127738075858491191635588008029671030699030379796611918215760355997661846989262830446460423418269135225685755347704517279636468870881902763942828093156068844657113478524998618946991586023544405789686916160981809095533353949179978694814465562101191810494293770380298964929418433408297054676436099367731554100655329376415876133980806029824996956555210784172792932569964570545253562442242437733210813999579377630116991097388111005672341367604727682223926083153158727907567967834079714681603918981365038628521657577137866585933468596298099308097913862213257930114946432923560695210115569287106132913119623085186291904617349753272734996198550353471254960266532713429188115532781637720269310151775199798203979111810312093754035785502313951628551682953500659446071395045976764887764865734639640884292197081670573256494359063377761864030360483166163556617388750201521358654500150375069944996956613474086147429959957674661581746021373490720421457734179396176010843987684587667509705956176112020082399461149921559071704958274679768060746380761921405381033340556467155188493300649386993112831226285568529647409597294640274098512575398728724642341141313640181659793205728849549794626970574892731908196479226376886830441898832581795794231641740378393345160234171309231486978013092481961692808337081064908467026366575077762339818922555022761136869661849194612338213900038782908230841200456115910143148286731743176851283787420070715221489629309216638378658075875907024008084916229147585596707200945727396534478304753366909107319836459756729308184175888037816915880757286450124187681720243284016175714135299270451205890377592788163283197898091891236381427929309095282517187612205559669421126840193366599451463055178119235817412464723447860797564584891199486134881345516041489181140246811268084611808432821500827706920250379037572839829849131835954552306281717427303563661388038205252587110285523008342265769887484800187273198875506550307288962274096103672182352649586478904322963964354201751757194886046695841878301833820285565049913003002819867468490125406779369537398279045786227374017300034672136028039450557745056073030823484162227914896262808716463949831168898163407258034157933652095048479218502819722135871110163875720349894786762591049330210632298744980967149119558339417673785133324494246600155347088451524614463393485799156688897866679001039238368636280968950570897155114017093102418742421009384332580953223604043168190579523505928372658237267133721516309204527833525808310401415844269478598990626088447487621984442765770373245743431564225800894408326011267666505953796224207896946864525406355496700737039629381430971311469073199503569893094152350196626556660087834523659208616710317605688420387959308276311330784866035986206013961803552940027825226905106228586885059913753235540820959498639117166004540819344379181405814105685018364104644302514294365199802411932458232837799555163660850244814066092475433895559763687040308629386546321787164098124192178475872383485174473474478780527042247991847814472880507976652414990218493612682366413671606904462997789138307435209757564666446817727616562389107027887933741590477578720795781036258723270076810779928679280163696097740448398340626619397100126480207925899229013173277572653898748968298099130425824376905619279983801230948322328667886071671558097303918697902993604298219130487737603040993718610621424399318735705857749637632921943819725098447199651070930489257784443372030170781935951165527568605577695511731896069751707337292644467368734864913934018643065438107733577119471283168530396401129553637470786888654632036768221566252118927652056878481109492620583644202376807719767995658749225205471554688984418175596983194578373557896664579862929649330693524555874242758571065263093053123457113700780282410945627510540700213649847997298979905018973436457069747151230576782221767395506528423310821497015781128845543380215632270729284832670174478184413653327003638813122349947793464594293907622592739584161832227095233501892922008643403008858587105557862855978271890838188620327310222632719823721460182237923160922523127765092288999164091781353196758070936727513289206727856339644917932653942111526677578183005035384980815742051038109621063549288761585655407539797104758486286808167236572640562541190605304051290167118286456606999281363842931046480985248682232768666071136192260275916456268423856854537704996792860797047727076290727490554675257861297702304818849195625736768209972270132947970887307318539646180884296292724453318774449912451721243302161559136222695788342221997528623414871045283562173734833724532280956121337537712049529034477084035491791792220340415857111875429985955505956598615816375787762407332285219178814430821646070388129397386330314287756850790911469344804279193892482648539935342180889418343521867857318617029867793308433585346931480290437461334463139093898755043333064702639175921940652969601074678746936785438695221672660363398328942891702429069444019637549113571597256340600006364064214737416775312576103422651869400156506924120500384925287455997115729836004288674485543114177609778026588735257420942880860330855855262720114392350880818268987523026222977815801421696961917157055637503244620578788449024502832135643860505465201252491490557461994429583481921374989949615917553161448065235203884674852840769786685785926856473646330353379207910287948415148607611439292028954636279265415965275432290954272589134753925772470283420431883448031415114307282200035780272543171412955021020947836348915865974845837736337854187284863438702070742695693647410977770451715106794786109332142703235863917365426848135163719558514484263929243434488152977842168571517995761822128280161163885775354872777109353684439298333679237451299131993952646094093579138298774257045051554719665177114222418826156510667226780861936989020907327305085159973010853987048498870747346760648368709507580887059962492450493273320292833921142160629479603711222823624752521572195966328549597703995049896341177846550635039608051729547020804102945248745727045668767137679142351352624549890836891908386701271949164077739669694518699839863221541561545958518333270242296966617435493475506341897121321172803604693838450307087365430239257626029991935843610973303893509434624725719681916481659839131680774669374471361944244369198731524291409244462314517589441002601043779281142800908595800738304089998646204104816426825488682085420771735336941900914873136802139236923777254901366222873310191629477369498672574430114004338173192681242047659668945530006674440834689944571186188774607909830095045364009498884509241092648752876245563210961979009094796368723277285601018581574101795650050128603208007615579681750492478473023157781593292106363886623370883121009095950939436702645525965396581900283093737746097722060798893985891372437424279276932109163977129226262707104932807841901532736165061277556877795502409360758522013714854592104025080709687060121673970531793238768644396708389948932232453210240943678274019721156522727188078652704155244203583041687756866994546015207650489029352304447067997391992899129047963705235694571247198548549636686502039538423732809501843525378357466348471444838337361627314402701079767159260238798903316783665321581217802313405449162601188473283708308938909675504099369245815350051564212883003265135910678950448279029676103005961440553221537530507699316961654669981535503242160736252443484799766132873986328883162700989351269677260030881114193730755019104756779055644059637774952149268878503981802230687286449141764147838115751616772416973578398504459400215481873965937539778413182219369681276403817334944800266138807241308906986735590188936626159880597939873875061042951438240951101143809731757078883244563361018414896784802660146118175498412189819089660569337261967171261610290802156009542324693800605803972585742320792448169070674571922603285757467392717344252895957697925240212457729241374467369130683233117001237835160702415399752746139894119394335030924061603458545793501217714029539823541527848990585434785010489455433166781420194707895919700539664584376663084423863822150897950812948381949884347263954823026107807230246179254097031504634822818906287687006975247634257718188859712478916915678759542135344304756002824926552478347120828834287240938695547589054773518629079255393136500037275656318733951744289733557357189571627651619120218904795498763034547378974376650831929530801914432155103715238650079137471604851479688481101876212034560196211542988185774063438453128350540142213499734791990252810476657190004474096028500429139794430189568867978395535325805843135505248166059272675151607611130882540239291654208586486891271591196101052092356424539803310722522989866820916403284304728498640449481232426184769314197273734202936846226581876472378792273799106321050442405546828754447925258585876094010597321955169877339211193449696877937851211341288224325298059553448163463755219438229150167132363055676105936715618973429289312332162611694498743025541589686599751564724919381113174788863242747701179635478155735753340943056131758596628426704478964467384653969154961429085990920920551841266934429148788896013116138208344452572095445993817938446254206639675255333460142512521546015987315203853573458481327821780160976601491682984271402860597397016459914346695776848817753097489071073676034814846866701308469982809649199917301438901387488078128064919680490795819997843368517743395108636513756174016636989762771714653540345466725106470686102036233785533999169250519637936401285524043735493638911191841332573146872334581459709928977653356119001880507249131949372866969460967940282750601864602776050495632394678101134110973395075863621500349146118642307171893388871805063984886622109386693968883131194802296644906972111681501373814084875684393217274606450538950283321059751459628525468804529375909803519866794019509179599107413600759343046076984598414884812047038804277658902130989915446544043440479994293899386827124054136411729127648112178561826649778873053459986551446435223370281635216683698404329627036435386019962917315039848658555149795581021202241317025243398444438495597972502620360172034744256173931947275808715840336557733207396978518144382588423717716123418863026089820226854737245312611631002104939173769843194584938877005189718182561632692443825823764256600316628841398888600723498850864851965067387677787341476334470144958234479465529538263397962934399879907197205770073765070396546482294207506547650299883871374542913463895322936315722899573742544848997306759472805026363701697301149499784049445512448770575492945509192220359364078484222013409407761173859435542434239890479218861234791961048825137642852259798133466441202097742979791217419078776001437405689877769749032460750658503563381830772091796572420615406729174458892260859632784058955754445610443488886848826240930240129791996686808734673781072664767926069522844802156976789183188644156820582536059663986014118880358874129390702293411659523999605008983375972957625685275443723530737431373941250473339091551646624889637071836226207479147793352167779863195686133897760355195788969928735339688893557724529470046908134412048374195713322059449813721768993610589043689941425692467975290518924306219900830743983411222574606285342300626000418706293232915303268965646467356731459291407135638770596493702062554266882674105553287503292129778018518614255587231082772852296549506130337035612712775677321075920168120264310552291823219440551398354976061273856187227139214577219100120063906836083363957231000461959842794518288580776306423165711673346309444250158383105212620527688080181773582123750161618847384252055607186107713372962097860175400794443776618581937793206716373763014411437099883443322434027826164208640339328009149563990172120777679643620329944378233046801376895907754874233807510119887247893334065309109651406976578741532109215789869804185677197631193636797142939998506425538659103683842322420382389464074506442765936773979958038052797266536704464963664753283454503365148186575695070658651570114763717002622649886625666307477787338207436107198443219124370411010534720686243671471765173275943437215638479810130251062077275467184522560494475113230903093533578078106898787721820851018591226276056760100625044319459381597679692234964517216332392828572178170640358976314135426965414924784353296607529099033753939449833007284663339382526103835091894737885723154739067907721039113048045890877104757910208454880679920609895725230953218466449965791412600869886630248954996918716640891284604033027160242076030610767189342521277983462004878845231545719602649591670044777621411477548271654122651913685254387547113653616430368790803363790207824892958951596287144226787421033984334197442331698849870246953457690642349215260964693020348817792076612126185948560466444161859342636221961132856580470662282915137846778277184546765061877156147586932776739853924829122949059126934121460645709446621820307948729368014482187902898289812504427239520979112988578001826332729539252561018048097337843398976990919225073524639382308573028183985767397544428334221484281127938547087952852889765989046051065412756541433839493911112889044585961688550205815324769601186034324328766579996834093482551631562191779311215571037520580945894292838228391584388250014010614243951103587919083390091395941088526368378910013582587884069424034335369856778002208630980852780613577359702400013982624372274586505777604091527531404410085261097821646208842778248402701653620782318358989947224799479500266881361645388676984762431359421397870908907734452730426721343493599773618649643008401401457230450263426179194464412812635221203342500675156462963069350469210646642665924283787666710550212411809935562291572645383596616386736544905481696900356547330864824400244252460862203856293334128817270945851286029201758372207503031207563988730289029527012249081186353886279831048658321480276061080811011376779492184662651381032224548787179740541723475147691953373760185069283419308835676431109178371622888145801331308924692886809648402939231228284738434120665401487102715969723823313896322946782565744309788822470085163255738988831806316369059189745041402808998338376823583393528229795525515267999820851586307588089022924725400718042719930854356336509052517606075420269052813334980963593664231844487536102345413411365089528035459917684287927938190381900418813090871886421322058133091431445831019355340864143632194714991973137619173658340420544080969599318562804926651428157781512760237732876227091389606250389631024811115397124801599129867264901132020903272944541071267524472294076117067348841865681059118354980300291120431077853947808951113693300812224207040431432483286133690395167962783819263392490120610278603120957364576423356644020030195550872053573108418034810595316192023040016419252872237234953034036335801262956797428011799215547086991288996758386656414524174561498621246074930367664016047703775204335294182435871457998071212786997098169667146444135426015286197973851598501946912435977634556289841385358984404976261819452877133109854405681718097337817368023315241125377078925079102829994153915276356904109964064461495690262257186299985785454704762627406238374979733130400982143131724370465300447421138303956804380313317557725362907875424808649616514524035684516182747202405397322066327672046792287740330787897773948972473147795325589296532676673532883434299676011546748450006773939863826852596749548126258472458453791193917809026612391388566272419026689600221291375689341569864925983548901404579372438043025580034132607958140521538673279241521060205861309054107658874617478611931485476122155521121733456900066254558173615829823688162434554168708452497878848012257499419391244325677378753589396928710709619239576141663890115118370109690912374935905593087081815497256201911468156992267877446861866257632751819494174483375746047001625846940244150053270527506277390150953574571656364962238535686877581650563212082272577041057727811047673243047463714452343676038377588674701835308144101982295923409871785490700520329558206850550317967895783577245220856311782088822575964427962638326711386382371643516795685662815059923256050423705671734014946644410767425051515516637032056325997215856625079968385979588117473989106461825394547706556072378613927432028990296569773097822936357993343392960377546121050687640336083535236855265902224232035104800369467324139824881444478878930022508040900681058480342788084762648693677558953052760770920014930499782453239162131683485962381224270958568074257298041108205881579659105447935297457392209194763543311507980554832465101120613292582858441286482299010199769431299580051175072497021530724902162102481432510961400238077904919608269677858745245351609922013204658707162457986609067230364350166650363441422118980833157832671129600568241245017416756977577215288282744498312903083495601448582618365207208559164180618262439745118801122526208812207167441266399835557716436392345426413605083228092054652879786384044113640451993327409070952478197410730065525671037648081137068090047237792840116609062159041302944137921916705721865356182409267842629699585516344413777351543325255499791996326812329205310062071737367153851464294105207959519139648566905973827767705120597041042383833743110210638956863034205916014533727625831520697441497072143763565217601765822280893027995532711774594304476023983240228234414125726139614122867739401693428705604475540735193173408648008717439433155848480319896763558886300500101413846360098001922953561048746971629081558048810073929251872259520185924034779311975681640939612591878858071778373299084573335858505625823539648235346863457514627898934551339309375416931420159549079185583274753831376892696550795205355716673762271989580638405788846780502789676725757063438095655391388197535240590066479592257363865771440385309954051242938748606923997588684594043016918443734264104521989747147200950371682881790369960889086854913819352005167012123278402137095890363830892220871725880747822075524004635807297058963562848785144485639921430245752622616307758636452285612359757189735510598115409225565147548988962930814995301594239057120650877100296128487409001668992262918989831637939377947365670452638489975861070268513535766266283706028663225083006917771607365109941075519114519859889977347031030794766475586657973930609730061895143808063787740336553999979498113372200361108502698564398545733473808512080640200155130154804582838694587167391419972529528150793217702245171896655515741945992920500463284482809937469543395393305563427487386410794686608302876529809042068744741323521521716763133720139469591019477254154869664998419299269586371880295333443494997418304799659327641773640254985399909113153057136346230453658787235713423571727371121502478699823377704146434511404648958528632467413902443602665345860269577688269208186224472890320605312839606394829764755963133299871675340273086988188391421561587065908374607151056562134751861732906682916433966509210935312408478649137584479996437022341671431976628510779853491205634507952700323507015280278515819084259006290921328440345653830051000229521692044543195324859057905834557829261033064903010814291265407598754626874615978301343461356681655521596078708208012131850725430459794466178931811889017474979757790849702689610796173829030833745184836067934799835490600704969881826470262298923891691920806431231539338643047101735882359647094443131063054883703784298361538094496818913735304784347638107843126858610538535735698012661907960675474816994007480878061915820963752526133754848665468984523674120270703699833597944863117591407470592119001095595128542503634343169916601177896943661042410186035986269077852812567022280501125291793368206777469365345145677037583344875276342810130684134212634733742530141505375641492278618600346815338946391788803406431152164401432546629923118426852580302378289113332183053378684390756047998379294034874174950927915971140860432210772346287096491970227848659321643667607990491122361772760603566257215407556818238318801533995916779827895823408932779639510144221924052871108620984004002249139600840606525741221431243253857303213848216529048058542433085658689837368449591797373787426405955859879294609016245092646343234186654205496872755996848702006989682837439156026970722974132045390998547282090512339239711451128278876013951933210874795357268455295246624912686374594694942814679495769128401271403948813812968452195598814968815879472372320463029826472887359355645773719064912520119315224318074116943479923320967172499654536812879162338043192075054348135296867132275414267362728832227460306747537772916771858422029772923008361154240885007740221432813615005389144977604536814034306861691359990080210428428455221755326109018195491976874627543574136003681057766660175174954414767434608380994756640372684765673001908018574962064177632693967419006632388623692209990376480758013296406855594274823487631180324310468023525110234544611802725840756627204974557533813050654462766922322894344162456960743640445601338509757595236378139279377921310346121577390800641429548400242100839366975108512452316844497490258785874089588428972153507028377317622749452691822048424360727142673018742474073572919951240225483113237300440388828981813365891138694465434559660212473184276480169512815811060817944804030825726941863834230748716953390622053779874972437322126543330774824912864854398192498650364869314375858440025463554169870926982518875525838154065254339981062463116676861294909601212293622826865145051432871709209917704885668780457175629491301913358313958330250605261007808334429889591749971118718655121381239883301516829073707296088257005880057014711012769250844949744926994257813936855706408245971447651540770893322223436141571725859926828684133706044209495868396069292538078650559468041019882499762165983099858183591978356209803746643907821235059183513608969463440140558859662173630971119516073280659918139367022460049992471642977351745006222541757676746243188127690206964663794655745447643448874402131685492582068038724472894417894100888262395899711675377909464584338828001395694138262860679895111429724643236057291371009764569659770004721680130634272314472694346132652175376922093952088204645862525242125398206422501913449854555601125815287651489215916982958207385329715125392073616675175684819806509492359805550721567918556211483567549310202086730614794628666546811606509225078357189833856066019195903768699440750489744601610894074833181558399405283976741382314039087314171654549646589953993544537980896012745058538530928233466936489699446939352282261814874008105937998820028242650120176375555081724968344148031340369401429628456394707801525095977347968641771510568318291483692557371823659657851238802643359722691764710473073115680212694654853591456771494356872408218198144398554380231417594246640949624080030771891773862255707196324512670024776433448564933972532860054406396621609173597478326679757751241126883931568536180862282869628915794985038081916263616342054644272720839229728080850430120664928127431995782342994598209465243542300677286023974522726562262651981204528789510072678044134908434279767719407109747566029058780006128911401247211224378812440218199227738682624098780448398126318452882359074382619152128017237662069145919034114747316967315118998804838304983875846971603244821495159537790416989749816969825516536358506817617404157491808932449510141621128909668611436765367718014879052776081134983411927500659636938166913648057375576100321059297995486147527469414264499619064839237753573084156210511919343589740664879404897360626614337042601350790999038856946064827662538051668190417819919662227231430658748380034057002829355965453634194313203623939580796039751354011272755244218388569643222580887803658978289372452165092717593090151932034338590347529534804209463358280321215559400258374880858057064174542225067330302910398416906952518831459742828374005569812753243980838652018905250182466887824703436361586883964267254068793863362845171972376920062792425454058691488867323103105348981758695049540899841777387896794178105621213122221635472977764691513331804080232869446582600636445537602354930450061374759218686392051909569524522129442598445664117064733691251720433110996817151260030395491351220303795783008477771465871338186408230792288403843057127054117502436628174867463923543604145440611471318405789424073199500463095992273508573187427636244025002820517751226710992172241515974473420932487825729547048768729561775003595882786595182738665795834675741871236750893883329153215126643165099078227040966411171443882336695053350590754350092884387202939497074877927008692873237672268200683646789081279959947497094788836498495516350961142957398350971384043306443091775732772135526473936234512245561174819367920889055951136033977713732240860307770378389609897154365889869917906793502354319926582239654234245916183080989295587034345054296963782247359497714754945332508393453389594961813866579179713979585996488321837619216400119509115859187261244764568666743411651470718304243535170288275341457517079413007249980210388896964710246924662029822346680861738493666248609218198045325356711032171157925157904990856850147294992590616691615017046692764518575571024361384319886941941716175789401769102163812118172556911006996096373675962398535107738902356722403488689152290246670374098692576957310789735483624485887884277714213551756828383136769953608448127055021543862690011271854378364835339560740202449842543631521879808503930647353626977253562644212359523053256103749018018001041802794494492155184022436049650407919021089032781273839567817707532102614522103866028680533401650624892502674398415006283028602084058205313956212416767578862031946226682644584838751705649383267040933593604008985953387233084209560545237760043179612726603293700827073584823720114050165924583979446185552000069472500642201745851892385021532569877267563701243158440187286398766748966099240485273378348929169049604309891789683746385843682989308578390575783713319755808669146357882913263543685494242392243589441018534014565292884354904962549672994383976737643727203010682374835907719576960619940021806321699007778467260126261009317727131586879525895505466574172028307640493690009144038358626169700466514459017831064581021933333667702032525218855480595299298248748320481953336922023592410379781975798261147922454175530965864952094159903851290533158793227493036357362118020039467018515726865312596065632502989695340000114555848449375012626094158231940620447129536861911402805212807631077677539174106357300005640721452890045393137467816534362396390833435533740602525930829195896171783990736405625241741769237598486186860982364476262688976480980395346187935999170518804939420992032108997771585629704874114645000530004418977794898780546005235141263799015142429753057306055681871738099497814762646681787434741885091075736378554717902919524111015016305795729748800377844127115428804052787281415751175834170248148199861934573953808153404267135705990443975386771088294149693571959789766087164720421472984029138055153284288441917813960840649308544705641158716092791312834890063316252577800465223954126239962552953472020529057016824857073252177156696843207634237236970473094269955700541851258410029011015659402653897635863594443902284263555114695476370859950191215526231546440448560655142311580969758415509377793154756017501872696401433256553359603097508328689375504125502634093310766943079794106139552965617462919223080220958561900484413069405302076361284368878706891710295889002194494706218433229526102719910238910989140100624282069179404072760191212205209830674106858562561251881444213203724818237728893846533761000492205368100167267056322892253003493485435360953409687444176344917675521687617336010964957618888610716325155631897643672368219953741472328647907354554923688566551232533106180209897367574061251306571772861195838300294647996866094325489999305134939476810815554801471389033656523995107336293007122759668712567487166692461612876661396135609814372625724652557960252015093709434551561730195568139201507176800195469251382681419652762567492652130991925697613732497448453093597189597210583964598227661649681153405265524324071275261167187230568106780892449657695742619657093598737411351559881178967491558923238240620285964939087488435494737476298132499811514634440737615348007686577726435230673143883843717821336193182804875319507986689188837469922105999927098815529367178991771544148102470142841033118949070210655805903556386542692416335940342149465828437708642514881285374142396773036678735941346339770987221278530056779514941868293357442612797989349964449121880198709317329086018848571453140664056085844872904130427809924968870968782889927996284397955319252905529198607693703454653482178888590508932342648220902544619129278818003476096376736202938969912330499894828947575881288452752738776777604690018125030656998735351260026029573550124153133454606003984537333891857591390908729845728540908147050401925125897640975392068004153527311453988157299175659492236232414897438598255020523968091386417362740223507600491363074313571874780714696290606152776021072994700808231886213211928296665214488344242333769713980535690598867747827025552977900454509588623445592948024937005573443726815665417586267796435496287174831078850469177311131744017089031468893380718804538821471076846186167225906288795400981325073950137515642833634616543884147704732599475333510040144574955005697292443887628592191378592662028307331295863320009241514746239810798839370812376496863309521128358184653368952256939879923251846506010255082907577134885641056601319073867176701499019416725546579374088657348115644631249312424607822773323768059139904163225507709953334615737993613445767983509280455161136222503184302168699431929949082705339382210909950941218883227307612815298723883854432684115487918013605870159885801704867412185928744503615808776178054114608739979613410023946077758622382879060227352556692303211875701806580161771942037103312839136457015430395941773950392939421676961371425238721991674406964685776728472025637613990199042877530963450018449963969040296013890953745272669144739444876510354801282008748571829140941925425525789894871759151095046415543204115336287689499481798220637642271918507017530847809170059586637965191494489731839390637122974237025073454028843123761681079948580504325662111652271815230427878087875034908719759413479812988590123712772931872357894350938327750002187712680117187055888089560077426053262425748830685413289383318715229556894341622120915075923055559395596388711096484280712152509998249594523539503580416137518632743856038142536033490096212406920402680580867975006474600413625527033380049296139727925679368616809408373585473721925596612731433589560774229551933838962561784347776146049594719301258346916468455459384510681777009892992481900116713390813663615457393660979843252755959475056686894220477996763887651576284225961746428653161706930115100748165842935713708130257974282333736434567466635895979077486903904657993215109622238141914972934803687008652838138040918034832089719213168504661925132718278247259687953161818036178871883155581835061078724672922889078623333183783584919266006143361882945693780662692106911183572815011178315589588165279915085091868761243875109558195581235440161677527300441632337537211446336224662974738398434695483328469928806233994072447014591528724048430448551114851874160821878505684706117568030642307878587296122281011224085227302905603341710332537040996834228940956227029605910939929544379019307137569751960910248999144989107704399329925623224565763412721115188856172266144941179584329788264948473225622366914698518500765467797559466442883973699607980041026721031863798820442887051743736079041534767467514574890911742601096088202325252000270243807542306542354983164269872183089544969473548013294744079080098690293517444566919157369262683332921525598146220723953327121934677160513494875432802609958142038419194624068686002022361538346452670666821195510019244178062224010060228151182131832685167269018728051948930628150024884445342334212863579802029054609562173896822659069562187650564024120902112636878227237766134333682082196134309736736135995673662178429651564131143857430705538231200695478022635927721315783562116182082789967738292493668901438323740536560084901256227262201974298544788057338008139636983561790915886114818296852613733511082096169321565409998563072411234408227763785480479736057912834416047784206306874421469261431958238811216889537983195737352648063422232318932145343717491239421197456172921266008485426215608959481398351954651175113429785745921184731095756020124136264575340361654294056691096519053608730108787618199685687071682996485133164091140765718487236954344211622367006939604446708501044404841765001986425726358768091073550480338071932991363792928321839074608538613517587753849174442176830740171166507768112357765440207085039851184995439607211356900642147073734923924318990221017319671149236377566956067496839230050948326018234966449067154156416040924433711511541155025926384490791705509614276452821708440800508465055089310671238870229260549917705494109859753780009720173019725559765626823190640296569071406989926851640264575388766994642620471137035667358853200422383932066638774940247940483144100319297336380961087878801730282058239409405554848382012675040398433676284987588954549240534211204953141812496161670742034266234957222100257829331130421515586711740804006555044948903048723592972323075910127261340150168207648873203506731721533615067205371859449725221241592985359195391721726861941865242579983183510952031420843953851650157689047712479685293078546387499315823320284847382532996439627660495231025687985842618509626826230426754059106732568447951170225047804471006978946562651292266588446990545842643536033299642714716473673119597751301219310562542529392901555338485036323800864617586704295493866510920485018084086934867756987193825485119640934018344611170534382217780524253951870072220587116528524729265687312486833282774074889372918289195134797379771230280004283360340860626223914122041326663732896499750182042391008502483862675844419674490702761238081350907650248222655708604560151767758694198420000098918324202924662746412037805438527887852250244043148478842825341883448780210657548229329090281503517776093016488018598008540571029637866552628003755132368707595625664985273311171416229017214113784000093947658160884534417293179562496086668451980724792953167829069712622762319193251770876750946873973506839445112851812143976015446698738291913743980052762228210588458741706215522062174694741713332048092203763027277293465731491394103984265574598005707385770263361307670339492538669704267956858782804945836221972956987399279225548248445722126402993435300686892637872336970521713743564817300817277895808803500720910230629117720006766804685077563898043562904118564832751802972113359546363256780364415728728940064117369599552364833405931897953859391189445842454148056957221961901415089319151127412292478933871083055731898181950184969357830824983669499761970848531531276556298947818641795029052077104305603480054537676134043240060707099769566445275587144270686070220841142912987673959244225300092226819336373883763437622040484368331238818063849157108382954219511015266891696601921611200998646189807845092193820871635337547230085616954097965886551113764311659570587269017610955941826722504034524738166311193518968885537130771080169650283322234403996686232360495576979824477067156015668286384473154339028108765977425155072449567084892538533501103666950783694740487142942549614808719371735286026993492706833165302644875006357903627504064257462042405659789577226362083961496769544937183304763129917825163068919808119444235020228093912689773263262502570605728003844400757702278091911185565098733278413221087294165734039328285525760438779667963944613900618895872135239332187452717801388909015216294257659032110792897032444345729525184120282066051284142978114814409204073843872732560395294837710837288882527486691822491770548019716056953467228193659073262059803804893655603966001686951105051380430691355594877824707876661857297570553824567274904097691048663264679590285991284929660142194714238723012282209371948292298208585706262819417578376738528339253094494384796355016924238986059605164824029740423942144359153399949467080714055572266737319165128898639436694933614127104540016584672386225722636940974967460849133991750207370546497180357405555273317371879457044955975591307814551638329286657163042100758934966201350395076038406356501995435391729758625830761302350095228030172273927806473681547162291460900753555066741757788097221380998864755848183300723690938101743287037700106186071825278128225910325616131146856318081580716344252058578739859227278627885606864693458944076450379548013233695799113500074345655350521445438710444236970022711526454312587500935334626806181350549245627285042184879291855438656258173391864046354971296523986997932805560417949380667753605184325666684108608606572609245105963890734794340449472866803959660638335711274518357725825644455554025418726466217871110176720656136604489814216238528070185167166337566362051105332205391540841226222175367805255022312143428513258441854855455591720643646536559237956996272186910621007120960258915847471716418261566820292510019233313518582149805154022041082929376414160696963820674482659707910803753069805781401584341994993255956458089010375393265427337368778793532574540792290666908277174238701095516519400940483441252772238343666418638891574541313654174605308056880793880372483864829613210431001693063622887002651934437088235163489090817710353420221969229093509883283809903509956046537849061828167420385110336190103171652908607766201454190811155307306878266162518097107584860234162166657632064611956878408844941327171385028018586277553799260313122785484405364334687551591481974989231332957033057814635815235841147357069668440121027804436138501047144375137924488457586404334480392949108316778660015005737242033957271470763972242191006870802107113750519086330633838032124153465070176013453400187784818599961379207551089660820668800118851406713368742003525224284595839476357779054557684003697646914572053782330592304065570362726301908019252895523343585873981235631869183820239097482084776507758766160005847802475374522772209087182701205792784840033935184473564029502783531909283918099568760052268521282157937798396316051110888733215146770285834243582465189207254555453170464517822726799815457086656941207261828289000891733267980947258190641250861308299141255089383458390450249892408252415732913241425735990752464777129632775834557169824121077983601849003802362439081745807608389442326434548787859187564346806950454305016390547591198444491096632010378573885546376948828669494506278058893516739159002376860777171427471017243284974191867424172215294313012373966741389186555927139843514859110284971541352402551521739033145601260462456197002083457373754622859699777963035824714289888481712321100745609362105061620712090629730635414169360157785606950008418304396835270692808379950217819034472481165145947687569259056201069383861248923501599512654198510289860847977139086446176287063534831207611237824490180681422356498034965374113408646311410707243112758337718661202600327178733936163496139979357225640000734047231238623852603897771329864628886683009679700429814882061791390978098115637435510592191944720993291219805863347886199050247098879174112459988777549650931910792299676755818013830587412943508722846218081125365906869610218086168078517003194495246868490111000717661487831334073505872371489783895839884971094215150802430143929164084450780684820008609826236157791773601010118485659018633032357731081651209486754164399329345245026527257690987939092024094425038535400453157031536057506484139410234309303357281622640283408914016995728963213138888308254312540244558972472775147441183183395514078336051101173511208338042295429914388865452331011412822212053087608190270865509521844179902591195197917237785050569748221851346390688054322174781443350456831687666512421769585073114410778348418944465543333611750421379756279881031944751437941512749462020758936023890246753830161796089757396295146727635118977895114496681832366343546449031427980191649333215134993844300191945872894781763639337982052935682391920380822094659372672862448131879393581941875232885371219960089127801645924467051133401960339186198245550345590037483822729463568736333066293147006026308672063950174693219384264506051534846266532293266702270134561378110731221052426650267211873568510574082939114774863597225665426296301978104475385628094224219954403815063927801384589649329867492409893419219352192319463492901721078342626761922016500006400253375315222731839637077656160000883907072862978063059605919630043907870998547131214370542748256397700837568248618472381704161676504328209052476908937433792055296156452088770930497251601491518741618910476107128215479222495992343539425233634003891408881998182501022131702044208695145149259531716386070848860504290042707383801518276806913471804961681717430747208359312830776176268672182655718583476316007817846878186609548072928162771889173813966126566606870692975260305952312260186397754726389293758567354893345522374564804814329217168797413706553563763228646986534706126426878723760387251786427249178332241849326328825027749683079192926476979343756010330633895591167814003691565301835624414911367103917330938488889475141741249026570871186424715897684915598274496422774910389291149170905437200887519267491395471731484700817814843808808972330226042877144433181422369651345333934886093163522537658152892841532520070826362894018486891183520121499648295450161869698093565038321478015078857337072490127661921319493056817720942378213119976821427159444760015302196425037693523881326153663812765657123070830778787324618431278474875763773614671759661582657572387029434622462921166268960001237211528529166800821978859715325267601645187755862126698719618566898404585206305371015200230001434215369899222912729484237966325789674898471743062278136398194332015019099007040523677895674451882507870196425560953129853374592044157082067637641388303150139877922330545249979906906256450419579628263636531825055948998318799325208407974582613176566781801132284918831012297304541989860829886014738382032340421885081376387364030300264520274226175499187570765746712706178560170799408208606295641092428860548226121535572934152542675001858855029072356898065412646581548624619331092711876560716208598500813513499517977849344020700504832699090284946797143265527755881581246875738997200657990365341867718865601584192677196547054754255855210850206175635387143758849371461800166378673081286231431750397580932848311403043095262995203631685784487416471016197736307879029958661169724213196809082030937158465812071380953758504343372393571003424990231982761780188709834311987151034724290784132203389260160747742465241634780202568695109102422659871412513109915666262089389275272288914819746566748614917862619314913096217000385569775406153748231048617458323233480758042064919816030748919880716043735730448579149306001243234903844085859586282950224721055168340626262009825549345852690798285776379049043707806102303069035070603804266131630614486121039300349810803380228642707582499008841996901601945153985968407665244491936765382226765544781464811386979566195824338460828018144847478211129716845964607384336579407866325882233450806399382392909986007831225822988069580091759855590843552878726162857962539130047567411993016768223393088317810604585353357986327636813437050712715551738738938835864646357072764081439408609231621258058414853862040455635037180348372452575441402968239873068108805086923291185223747863252121244488301243141084814254726254156199052406073477244342428820797125375803494734457493654801417504681467799804567594996207636941884814288905510844338090931553307299857919089622486073086642774561892129853346271622896734012271318257440772415650481894039362730747739184478532929438953850123282046365417405246096120179431917611566466994766770486687429746041755798708621708535024634579266806635709389172099432902980917024977774595131855242198321320376606367526549796012423214544348621162029116863520100699873271720386690906827838799421038814182785034350606873006345680709889896952868002781364671432519664036359284811997715341411164245190424780424466550996918088971488133836011826625245711413177391986883313427281951692066114965644550061562142381763535598209523560005535477416552745448923286748165444820320763095221744630617026236182285107971129771659051592402247548830059637417596590015057244680922824724834950547447915727906598299986113372165588947572066959362489967071280407266471673384988430537103971471413449178618418816705773333735407011214271120023265060249915372584840832503195518195947525926968497911639397225714887942019114680386763205363414146574480795626917109758705700483709112605434260155257950089858589714903605005829164198971666387974910237273088756812958922455898670276704464810148813199880021970439065804914212019258257829591744787467375568213843526694581898163724981027496677140552654270581731744923734326691356287324789862890719797035531699611761293014636470568794171124646647055416328154701515976213799082895792098174658592974881957740908706599609981704935116123409395136235139948386191203743316485077717414218990164101023719973687973833536629882767701650236783894835359328030849304967500411364175695227038534895221130675880311606315050513938028864687289064242876275138364924241673054973872690179790791945674296163717829499308394117818093624815083850799138573603512446866667890867150647992571405122048948116165926224238716712047721015274410302483401572068911007060834365231511464291529444020373252047619511400260854256237411849534359639914735409569232659006459948357404935581815029100796974542614714700475994865544132641205352963130874285493363119919600539866682535149884421529198431361167374947784611083170978651900928251833737579223575099724233572194665703792283940019814961797381280125789969867207339388687304344989858807216706236842890643810044423436569900405703864228834969234795513161200142197903421155640178006220721940769076176581181367889988308629358539837250497540960559051849515268367615038745646174650893938815864861829214499533142515856723213947538456967394073982573337718767439942178428819925003710484303262219018765847426206048663140380473881761968765244391327824803724998860092261031685094693691637664508592602602132548370506630039494490148816834245995559105134823481249109610661703391117201409444352918591741338960697217197296673374490654349374198482597307715837510673963346087730729751056270440430588079598408941151564379246511945652553103903996439967323936195724829819066645262475274375871680521144450313944268060616229157596604997379490776273299978042417758841766556609836689161569906129652796821357258236416640144391869820612572806699010618704655041508285983864438573301805389850432822209689401431538978309172277980179011375573687594374721928498853042861648819907407226517860670939168020615918179038901113823892858186535448933416887662709425802458949749988769313246104558112191243397119797734850325118641628036926189533777338625646371059743930869624389786785138689423749274539649504577483910887060526750157327757250845531560656756619693122893577921955511676229943280995888201709066768722168037167380776613145546649902381232880655830399900442987927033784865938011111619007441802692773664340464515561475386615507514722990934370543211464739687100821692319171345562793103269314345803324015509385237486115641233397035354061733792158453341024401851530224063263522971472137174530017181890276362765725535042952931492050746203388741465484915648009165373122836380728536046292501497233653142914557583157135899158526198744589229270795487363575160063427149486460001279499232769554661549170219930457143371259918658904196049273729389219166446589136627050854566635582873207807957142972934787269937742427024164032556614884110080233736740215379402032288796797285311098546978901079627119876321687141751353646251594052341060898380371429157342355707003141090412191910444418084752563817259117192773816206429261358861507559806052680343644912387119610268516122937644008051411405990374644178714888548130004542141606652863323714744076130658769206155497068749055499439327448317995174843430235246618586185567682784021319041702664047853419889539273272220249300785241357962290269352603677342839728058961116509084928411882501331497685997649962283130843229961674333128861508068122331038219167095591009383233141295187164817927661146990976663736297781956028533388447659023157576351694855780975914214799435610282015279555279900022131768836586874010232301930105120290099219674202003198874594204882510020679024824329274066087454910252520418419257559819988659739704626156667020363912842431469429180606285514588332608131067434477330929945572781741001668203574151276884664187334126713351105365415845577358900019128581532858637146139604473204724566319857728282431927375494248725870188603067905960564283652003037745613410956467603792020811133054398922490958338168679298688992197501855955052930920440638970108916038739163969059803634649436219909127208046385552841522751723373150979628136812735953433892214199502329768067886546064458166097416251913959523486227193925023556727760955124399985488143668560656008058232945105909375630921783129426350648269302288187419431202435617383573105437697468481971454687796287475452959894416372390031876495157145692671684738055420048814628258971921447771430208224576681521885639639293647083470266189485279734071401513671997380423739034670717504328916563566591767672089846513426988397942663769254814952819644031876243524547004841552437389099144035251904876721968646445868230725363287241568195010488464281684904759116476837736830298876060644460477445645667535143376981094271782087259516255053548580240846297547923315598913668986943465524091707186585137423823516315877639078718879965733869576968977176105319287389963115531348940752394506343257060468728803607779543866062997866454142604239556865357694500922417334168902631381371811836494633745125828414781540427817997596358207533054919220803259701433337420277486944116964633197130350056349096985536493490646083153187880799699205668988797960776310607167538701141283762916715802829253431321746776654373362229741071228261393799667424870778872446602152828128237790763125953255629047985240376554933826402209378576555288949005742651607567836195969190610074835531776696918321508311735453586918106221537247776885742881928108946424188839873616430320760168567967704436202844049653362916286608636829812796048977395836597107170900033457983583675499489939599943657348343082097041524650696849777915176315531110491814659793744558136841471152819714465715567843346847153932886872437635420183967721272132478236560706702446542262304159801630234571805598061126814443744818058062527546349502111816166230381889651826260539217430719081253622262626793251652435906400915494102066413627236490702595095869809923585256052556340697932581683510759402254325245028864262731407013161714955410001040118159611056782249254521850905254646076575527984800779928224285681183507466853956357491562558857258081775848562245609556958051141109961047915331169144566058219565270280139002658344773670888925913961097258464532960052418346905585339084485841138403474259492945825067061062555300780630474734106725925424002913582332483442034517438789844350754642901464180207819699489169340521123628380763284762897135544113037102494073916255075842950383122029493739681934845469364058822334744221300702935114831595796558917460435490510250832704067619509108047570622992365054763397719576278903385184712654636258711443623282845745964121537258667825379803961682271915327734523087142293947729447711583256883457887064115543638698086112505721089860070444406975855971390502372256850424954775666320405889056424019018643384119924890143496019669509747138203728491933274685650066714394556740679077127269244408348777755294228483287965755562263870032057069256803055282465995566516932804880040441478067149006236144511407285646649563983295381686389581536679790796987139679045573883115083940502525408787780607023474441754631164391310442787271130608584084012126283889712205716080132114647091750494243486356238058990525842202022447741600303904883622372372364688674993582880071190732278710656639606310794270176723166530498015727952212475002504151961790064320602505711866766852815486427335454328015668743330804570050890597121741302987100878476432599410300508081760197005365155134238358012337370232166277179384840576609252370931641667030889224567971670456432298060781148870431587717388289602420586542558242509108974447732511436820107342642743964774969540878254591338740998778718865448682732411556856014290308571192553573953905018260366792505718592965906308520855734572155920537912520615559352918432829914601752406544706956118449236056822083337569525060606784021369209045494545426290598389841331516200116185412559430591798699332209779464117580896732838506379010450318555191983380589962864619177116672093152049162652434192043256162082777721282002030119133571140651877598640860165615795915653312534371092642617019123635859902904615647514624750344148620067841965428260611057885783899214398904726306800785898037670892734822745199235196888027529949544519080220002708425420580699710679871077359163986216524249082635729108176382399093389506262100316840912439103285728896246598236489008669397229764175502720866835636980304288120305330513112879573541940390617628942505041034878108483065451426843039948829217168844948389519792471547875091753906200173540601945256958016837186858133365041437501364078043325575962066848192143395671734358555123301366746847831146366066824931604063655660147525268319575563904717258670234167828932513916716998059573370259233797084658079377111065136289473803199067220925954605920045594084568458515547643075798185729255555237619098945771218127360518310957323782933688424026906853703175348769644499337188426302335477335676363532521176087783229575156819297393855283052940604187506495451228363563584206124139630661173631267412357699419656385545949204980426463896530060608474086131339499471287788780842681692286222108948195965293029138871736659421442394730915778317276426393056101121964448979810895897781056144292837571343984860033595459506503105081317879708468516654309063157171158829744445570132617381875426620185368571646277026416306304033195926667745923477435040571879869677421827422432077930307579434665623821071509249953453318756161919641934927872203421667033532123139655716020688048774473460141896469993865537275234384169376834295656265951868680597424815779268471899530774657921569089169123501331985945787503618962024557460348278197599541634562638526513064804856895508721611089571897025604031176858533927061489858878132316241855945719182485769318987250003326302779985131609040032020380234959374689491251085933180948903538194032080057052472746418607996693602377783768759793893606414693504603113232880084204880077866355258996857137666764886037559971908560845376315655553875836426462339292111735291398491952581748955372363171225492119211012796298193311026812834228169171285081764435755512233950210942243889287021457089918067844574951400197965880624874557726757345686956382868734696728184057101073563414182111781715682759388711255741895553232459465918412948775231478016228380934904502639784210548852753612486942729470639973393894474830101655418146523510747773110842609794788042636400492294480714252762598099654145292951000261622767702287180465610288594837858165163190380211812503162724964829994896399346890687798020029995991210499137914501923436641449735532602230459402991548242693134390096926264765381366330952986452035648039850071836199715159490283280565143262542461287711294949480091192286750536858566890333210808985099849150338965022573933174357225056860576780395627188013779418966008243698834638233194152811570972955287867564654550494323899103980571050099723109429004871684912347152342904998828222476363859887220063328710590267993312611046356672273626597256071082597411933744676246653276936792917385305285791873515498285517034484444338939650828798416513367725494974418880462259797215778532992443191265166968953218497449334858854647137169944806145953782993716802338046342689054248939580345828567672942642791423102375755964301712258521739491774082093112052054218728220386990528298148779956069593485662686854607520014717611622508683809069089669512483118963674835109765768478186918400066551930213590118526978042012526757554126121649030788688218423069182489602588573827608190378951650378259598952002653150102807337019881229396600469712142964277918678092949349160235247608412880293373206013622888284629478084827549973869870751983652624099549844456924268500208355598786709713697913096210132850648537762318459741347286923285772035495744588551210655136941146340126956328649792593742649459692250291638170309950899028082438366293555115484079802882300041800464604999744454903909217944653651746756549262703298358839513797049218825812515308793550414728150425575406294330069891411525061637270881039700670609598186578396397377572037084996256444001107764805313694537514727751335338270089991898402228295296582901186574779277726917929703707873416372526768386390549665814732967465322644428941980702369258595556526351359138795852162251982148952899032851077504999513711936068679407975563846408096442190057570518358896833919332991249712337792707533485833419609459686534481458513002065853134633603291610218035690332082378295785676172163458969461449151715917951747211017516240077817794229048153640510367671724315103605368817208767585834486533626383766966401466594900478694959355866953675845108975846633553364501968289993396766904027686082518369205988536198868377189570557620283399561520749303363183210440925517875361990595253096044914422566481985959721331438433549589202123840469433783077408398376215861797915962028073417416407772165884810352019778096718618869451278911953585502710715853434449530829751081670106438648739037594499670990268142895307581687682616610717435956304027786106207188253304786943042704302426064170107013892228783404447335296733286528931813297546801774556249802561664654247076127937986042746679234502630308534505676113703007545650592160111121992749133245473236027233328743641075360327230827294858455607359941114599589812091174809385596561911080030426349668525572587968488828685836906503996841187327691826413582219370254832821621830422442689072764116563106554288611240028812740755064339241211365665812980891494172169330922880898269360384071632759888767371405513593091714566944406777601766183072054673413159995493638572797098140210070499734525217218446605357116419238958387079407330549503180936994421259526435842174376019652716069418938740367230405010292624241787888968736205233971181126382566781900688824581585343971512665823230845981279615388678787873510911919845981402266738033561364375755622863211250431046038106997821231565299326974778903126546393070948763573808816386731816441346619900320009098692870097535287082631710159496846380589705681037961923317709037201629813910038135090066740427864857101858782622190743799753397051124337342153202307819265193362984094086506152767303124473700698895335449671730836680584281024056944760805687940612086122076876303137198457821676309862801506794036244831015454284929084635434834217054094558241898143129829192338698833727236770486055524361636868227558751990058417133712145072438780667293947487772183326648907532071436351852183118712115498225159773967489549828894844918602527516933973177654988682562065949362360699628621886119561302899696600590861851380872428859040797823146396561669876023729820339069427562599722276606655752347136250670902989130861960506098248443783926521882716446417995605757958899410686310872482049987441020829243981350437908721578348345998607974496682904306997624312874244901006016946721641869911151928830396129664582267770166299622254595533667469570929271204843757693296193949233436931140236759803596004127351158559883768185804789917900043421394229527452122905490464468097794708716160108408300098568360961929277262670304645679981030588641768837223379947883814909306707425116052737392159048394529039520851267023855184742318798713513674423800364916241447229154700586672013369977917363878298777240049500604675146029770905453743065290712041422839389606389077077828088135225059214020215293499545633337729893228278490983231542379495557635446587636263297421656741329136561432439197505857782095179648290501029369518020933395760542749227732047735459646893856876922405108967525540843563556420355080527358813451168994637708253640725958070132945499359184802181133257343671045353703081118506889125384273222369860969425519450001985832177343963076497627742397735337582278277148536990722134325205645584498154685276463554165078321100601931465968905599633514940850777464524582290053636686115331054365676032464517986768003339982802420563412393009739748798490751273785364642458406591590286564925639294123103163922605062973951260641259014774097178333906191818963392750911030935857256222622545533907129888521965125144453189745809159708147387015505626816771348872415154358997070328117454581076179529915089235602116860386984504877988347489213306533633603634237771629535416535592887366113871255440348706443728014330950186583897304036216081331355069700775671431564126477765202068518111524180226555538354050877672701164063177440788108902920739695212842670523575131441271483907666001725053744167264893873231624394702031729725454027508370879117585063163933269428281987643719921627702835566608017771993000780912924770339525433651041564566471942431021861709920196354967281622018736876438339452162843118162430251016632322469600140667415709284258665222098252572295369612691090113483586553965001549728306005862193718323472439239946183768530473649055102543553661907667690818887453964440966361604423004608077028842679506248311795501861269593550529723386091234720496444336200753850291963385332778204500326172201229011932060291559489137845521864899792099025841132837958984539973992585809251661913510269963044256727098889059117086714772932178024804836663361516254787899631438862431596678308781217958691986548039092217810405434407780259281006653989755014375172714080492793171727915241345866184627645518637148043907250102616326210553878280551787629145056891001844839851118453048536425088537071227282029422170657476628584039990193542198995052945797850688110274734184353653992651903382199151999228818370882246571088622651615831668425518160525915475216351080262984613817278911655155327715663063816555368682302155956848411355081265728205691543974296195763989267409269201748777621081303879990787325101988964800182303932870877743290750531247854663932212228607483249154915673138132404571461518544055586522824909183604420057497108221188747469796508408486346387021359597907832449235870376475424135013143763136086290023813168120507475315594178173311348092735297387551947007457603313131339614334805099667932015619572706733145589202841942002653383453364020445656056530908171067730836396544508550969730879819578467936272139454323607558852376855121841953979548827922469643296277262814659326941194292595630712465291025546298559398967141196306676547194915440087474782468517632725268895187248728176446745624328052337957743802623201034955895181130334657373756863888251261855398105463899625847333801273525960209270344681285870507433747470736844253224722681638362290298029336861109159984113118622504974855876239935123227013667128272905980699020096645161788724348869192598183738654557525595553939964908719648649208343213480103138454248634318252239327962802811164612621171383151117000453821684998670869276043304864612493444322191104634902711898385885651735555963124554177913235518610730375844413478013443516463498544316609802072453326920854528254523488292791188046107699769478965073069328853404545788689169936887405918678798315770686806371531952126615805518234779618207444452470439095024032159479103613293762945752632932185352632877523175609859484088853760413368180135351912913207736495539589839923057858529952852573744614203065582899292549028781029703563818360722441221042499671101765326340384019589797230087469875762719689718481556352481520319808786756607681128563271391485062033858398380452802365882124518267377440930703101292847981244767402807928446279173904598350583487237747008241340592888588663084145578499935281478160725665271990134300493384159278450136853233331948647699846696932964754590390763340512054401753320435200606072035096402021024571336280760767586388008199692616640477078106552398159306930463450503034040312736247825234696780526829517371634479059180375959903329593467802722737869952099796645485443985084947210045890125817084026886591456228166719365795486306815318913828046006144799840411172666182704975922216633214589919285238185033450334476476090970339630355125077073975712481900120143556745172723897064216475479731381039033816122144943397480926293914640544756363761670814859753291828581043418206003084972338025107440429608568567952305629801506025917459536573993122439657115336133957879367731534332227737569216461413324908550567985954738647202803274696018585511517236053807161489861039855729952035143394223157803740799489059742910150304920789251132481653744417310100848153193745033446730093118890493897672521837598975310186514719073606151357355559933247394607540411634175510620088514435874179100199618357252181373679380853027469249678814000877567839524018210332222576165292453901652492573208828536381377241472941487975856657610086184274353354212540061805167517154707845040493815331877611140735648551248519505181928321321312176596399175604256809545468277844267265707158631202854280510135901621868665448651186876270437948665987259084876016757821750948806504351609045188483662188122264921030595852816579377098480359238955070540249152182059104104189242159231170018601897081364637886491170188966097098473329532009144201508251756283446686049472018958617290134187640710187770340775860471569606582389015701162155892164573250988462928810964091158785756332520014864381591860837800208750757598943112087275719865245587377461407907551168642423476790559507271496347890227322152587472775749748764674754938813635338118560361872834324037102765808511257572998744943595729935409980169539312324425256825052048937744227137143885201947149977119589568896941800058163798368299705793037048919698001945195167156777889761584633664656584871123762665391246560149646514549462572956735055143239966619494038928103614990822356875393234249509110247450556471129684133274809278532847649544602353303162830993397513639561171458108071094778724729876381732232422170605822625636333650758491379674451605013073005939516386640140529240981058256466587523578111556748828311451224766879529396478604385588618793084837553029003132354113390881364200027955831963108214096067935764354593519545556137560085122661589744736865747132889572839177343388003364290617765701181815251195020906796244377687728216911897502000107581007903077925042731097522871946899549520741208056838563739276239618277046016096024889392668859987460978121083989545408563550131903085696332050128295507388861427299562568880003216599725050400527876780626322128197507510150892943059788177308391079902325747402005067980056838432442062812646735887750063278142848221344654114707642088625851381768237263507883757280198933517910899094737117953985955221261813945799209327887843534985948263112948520973743951147667063175466047239879260399571720303215740178248841423062334701563071676933752225085296102735075364001341002279408732626006461774305017345051406709594222475930923762119999543560758248258390289305829292098691953167263598508166151546987318438029616244814234728584618781198111183932251061144075031947981612861045997019603703700133863323129406709622194632616901844790847268591333620829975787958903244539830488605616521654105688271191289011564413841465611424256804262167314026123347352943433246904791091572492147966524012418110365365262852711902852211019513765075010456588581585564792598187118274134534414575308617695487996866837783855347912035265688475416945762574387325890091363384936314481652040464018050367030521769936679834289379227865954443838280275167792245066755342893984762063419099408028746377570503360859950029158860972356571747645160095310111106403838287222011662493199482110760406305052116339652691400092836564467832920308608510171513033743067168565141557751801590897367741058702932027727130564044824283021779389026363040614113520532756608105083732385291754193281310240947209021534277014575497911302341214396489923451180775731540452770759077616216080722795507140659054198566511025503808761388299315848473963237753096022941248964760519582002181668109458087209634093280771462574149727654912950624825394418847058688857987825961054042278480503626549178659642923033484708931779806941509122264668859152923913230350791980956084892278276022749478805534352355139730064753430902723102425227686907135525075201979299952626006063434982969440675365776550574594015016237235591989771446302971091242764880099221357677840995538121273867463462847377414201025621673326300598567092019350742138993530386288617911502449493255556303424336247597520276246147232463921429163788777129870556716495673078420171266092978394591351066525469150487095321328904673504071137291796646328557288687502291861180500313635991889745255741600276172936161218115005585313467314088701465641833226353553294912561307593152867443191338892951760234938749598525095430643568389566131150788305299671858152896001016001813662751926637699856612075822511251908150316423176317568224474927358788293026998481398652570788178894420291388147177577131073001868378276629315898838068066086451345271954540788565071225506004277071654082144174191129604964695455854805756686214832278250900730897949472577834664833510544225576625840946400830522792831421208954761124181870196186670051362883662987801467090470953617214190342332851685506488471233958855270018175758558042792273481008972558500082153751010181626031484874509772768747156970526831465748608164887231145926487710927716827249142549257688695864098388813301807397462452305608617569097497507006243284124681361800714264724135110950474596423968768068489511416289382953059181463317357578923054686570721464876780859505318931242572569503841362983084748015127116812886626520939496861269738874949592791302346799007188875595642188213097263700334924546549650187539626364106202994005651120462267762258619622815616024970810425212189234956885326607513134797054924505845238305592457968119410088913569946807680158958860845301670913982029702975371267865825378958688192943581101745160988452529969052313518115198750286697900523977847059268562400284952275683054969103157383515183361743725978396043264084686950680637162950011199649916312310852532398052729235291784498586204846609463924032597319802508290246640115106733398457277997875025661056015674988575110386975925892564361668471222283038330124262425878549090623402397518194425540386767276693207552802225845580809254620365530112314422090535535478823379662448354510112936246669462472318625062005023247312946418158052745619938852640119980156527093954818909219395510396715051723029008689672274096920607820583314222669177770969937123946458751734391440338986632625250253346722502405532575526837878832421033928579298461377829719243170230310221127094935134142032957796919216913023129932062853261903187788234498311843840901721406691346959981024573145023276451512408484243305503011833655609361095563156475728669682120005482993731842128780843150312603574643845839260885699241042398585531640895638783972551628009537417461576769750338825192379968684268132361753766874397698609063583283923248949387310386141033668840899222252535580656814605012010037784402141624416082907447455802454223843615953416849052099518818104850707492220082987206764212464106181848231639847820747708480774559032336375956660735006351402045948388369705314499391029970888797670321200173699767395652105268219105694254714884527097498785222017832980454088240705377492123277262776461088462347261017880414103474802219060909478481175264290997043000824845192074390855580915926687167594813858287700100460219063649903945028006600716744156940217245314684292468116343245971210073052383949579876244914834180897573350039397164354150974232972073946022495013400742827017008460074346072332791351767529992861354733785236061989355610964771708326372683392157146951549524510069179963375216227217140724961364571576989230124169582968637601462363359945365755337448208317977628317718270256827440897958303555824728078044617822337580611296979941422450468363291363844416285652921322806038142999472364652831043208428632038551336088005130167770186886965337788519176897916376034845024516506239700178255202734269947317115465836335040330947400572437357515437930735206382840503750691138631331192540186038005073463253654008530022759496729097930078774848482195325630302193657798917643955981472886605836871615610323526040683515110795322317936173301323296885879523738547354936967322511910496977709086665600161055636541940425090647884880971098996299739451826392437304672940811009820937539422805494081287144959251684882099484854943099884986326312837011871092307215816603177509754143005094997940082797508616770741987495422553863934443879084121722071416613279067720636163041684829112539568962097629780380219211316555104750371711047431638446588280083623416141377987930865260250936366889812064617273262030045448857292622430915168833868013455369123417139559857311401340142151649758493640504348559211444854784849961822092091248801500796177474143626487710232604317457919877187921864309033040125542973822382975247077854431541017007924258321078105779144926332946118682922972191734320258047368059021275667486812812337150448809532775890598471293233223099821068667894441678501656109617341842525667696859203866932203835966921805556628041461423065917203389362424862917302100934554362846072883906946061596984880541190385842557084148292293012308550419194277655362133244745549219804279128340233714541971306204632466349972223283664541950632793510775734984743607081954321983548669216039670537047535752811454257543637471055890598935785946524564034123441367245799676984532181597488665533923270567724810976434754497568348692719901841547245841616138056473806705558629262642446453192197148301708562919283053739411642839234322179536559593628966759503416204007810238242285870581860023703361046352280030251916013769725029212537190318524781771951799044282852889546958896711574496146290547557867452879397470045521200962794816423838676962360872389006685871730147137670782185898125093290598465558634092489505776805699276968719299353098131989650126877245282056057576310349944376415763786641217732084047441065477263486583414996702603798626803963202372017387486477974751707422175138004853584218262891267921469585364023118915889857925508492605608545721094823666268704162133656066125039355760773840985451199868551141887596287681480946853254256536296579002839142677109862603105392772894974147135686810730888669815647769018133455051605647384232052839314641737520997879746460363927926209565145423803430004215079815671094230280973407020147622152627858998224906988762273299526270640349129146071968828971615701601058990426919334173973238113424855180722302052223484716055155618564347817494573861084367120377154774533445530042310389331511705087630911751642729188801837425380688708167511656805236875939119473926995480321726381141747680106073806059922120869844706161253947574666097782219975783214680416759693323023995800318548780089939685049888759225151865125801922859634345349724932828920922066791370894136569232784863522976096562513680263837244064580906082520303893632068208973015227730266663477496725051495485949913727308196879375474014977825256237633255434561753791897379446906684864313247377233315784480704792617605630311440836670911470837914848704952226673882074586057578099006455254306495644785627464667223074375172612710445741046327492615396710974122281680440188188288475171381480101123227118605196180612127218782932483677365971962991139619709451353286893731308644965248183649149575634008934783901982492254312479361482994396321297928099657482239719829630955778089924751977343679456346691558700172985004074516346314928615871311250810555026788091685759808947883814859972156658527796380053389243820666721600823876469549789821588776531375127993739376458178135789557371438512705484193540402821796820776640345873264828794788815269289035852679992665793399311429114212164607742926496115063315490958626024591081403626877820829095748797856336050936313241854320121513509074304420808390445142957990209567967088417176757467079084261228053618453754210134576912777276866068928039761077750932314120620969695542593358778075340563741567000275400060494756558947462659146110242771644499256605229133997551576079388831206209620248517737863765220463639906647736545694764721485561560219527234549868202815790420149538816420775814414107816653899118548004499196759689209343372764807363835326974417885138083752949328543708794538471674757895770504092842128007704256459229487122072288157979607604136928345703937955675401356799317631121533494429581681639695989292776969850685964284427914953536449960262272766934884260157755836989421683628419599215228235764641690220967558188494988694661515593320607657917162347668354727395559479454615080351862450500734239185328201394864723663198143466462950108326175696972472535127426849122417666292402473445401417132603767907989333514468064072213217385613028364574240677758243280009828916043607473369129274850093231159394096375219358656765453354187169908378906621192905104849116199122102327572697312671875371557066880675323744374698951686184746899873891935345267074653612742291724865447893346221773210758177567901269485457764956621988244701764029483207946737959573046689875834287509994450413711668849033853031903909995473441031088082730942491113337274320836191062975261194036037612148496427790417468471571562239162034848381500157277738595644994666735462047683460047087574869292255072868207169455922262357389677243395479060553431034072600108619873998750946115357208315889862332939723643776530418153264182817417231905961006883900043066367162177128364885791536493060300694732012652828998381601711064738680647508823805613123922858154700703650758787989661422765123045836531874271154792593932367007404966425202118571472460547627976061047430386910522316539711278531033670668556719487770985620464195097397363321090877515273181153359442360533282088303922186515790855002540833318216228769925844168221777559671633056094986723872909648852325087096818765112508654284266888328039599149072394247174975891392138952627652045922901028568755553086223790048163605972891858781238556200511849083829672888986460194880456626623771317078705191276855245094404082053432301755945892452426902687769280963153295771586841775606160825460454201742975370642357701985483851127483611900152601176581991168814716644308460859781433424469777142555623538236080836910389808453957071231228357812413188682050462978822087640393930446273794797196395067264960155527373779988116699961836457838890072129048173330580947034621279461905193708702870497713643729403792991320527046444703560756296296380223085645352006943259343936150807698902874603909003234086889427541770871617333506583469961886532142612222279315804522398942255953992227910320211983667803874604488285683437479062591017120479228967941422783311895932619499454246791304714769028392633368010917465148926729525713592386142153449446957495732250819498564236703841251527673521851617175374264376318622455825538134059194913720798984294607547011136246267745907589994106275931398034510327474751860042982196873550980098098606044730483175028965661829151003842575653074902615950377155974353915698117759586811364097716517616163324915393557049152876359271460898776026286047998992615039119205393802012341263841836560914249863944451949722916247196819349591463698874973479202093235164498137491717393355386889563196534640474712970175473606610304670047492265624273715458341907685820966147219371177805504239886504635638214017926575611373857917992921296983668260646548740913854796711370068268357602081564988009005054360220895707385244447062003324360324478835189798444216559747770591480675387217211305528487900550568898564560585895243776445357504890675637090312188332423711903880317637545832671939769860402258450265069108067987083551527628712012055358048932387506710253876145702019884956945913043565959168929790360662514548541119972349378392488987775286339281431788831815332283218591794892254090310275257736008844672765043870849699456076590713503767941674118011170311494645539860645112325802310823530343209796769905302279435671985302333549369549938340177607536493004541796594092804706923007258111118449795509322297084709799453308894578063596121424151195617714286373519663320103534645363942393865834158884084534879972888249805618952037751581159501774930183300987957463022386954318932934044744501811345080649314014335904141177998415160671119399963581471174856304679646098254434432444490420730169784613083575154038821728413249834285774493831671722182876298565694597498058192487447054073301720742381637040659400931631030369899029249334520895600812311138704445840935116358779171376237044656547409255308769704746709470321080347067042104105350041656152761175506446335170730971411552458954783287679596312322247792012512421047078393989851868097254637577837029222412962194754526925606675271910850770840183210553507489460505487100571053136434373990946910095355639570613873030645574745795184506457770806085203573438137668676854416722296469849561786184357414254350789361592267811534908235735286533179283176435694121334717024063966532431562605619046154461457901312842640725045111511806298719277228172191381685974735981507984586479196768472572485108578307531922302099454976412264549173712001891218473322354678028421094757000276514062616539886922566350972050269500476988054440233569765378600602383772505803448541742277917151427127154742245735419474956363464111938203905424863051741271547835334441437498501362134579301822325557697902261001412986119296847057022718438941056740720375546672785666844426558510691991023163133383682449611078379608779553053778729474928111268147958126463638340318949307722258863679942244093528387428294386295700747253175743294142100974578031311621421423733367442025191148679218732937947291199322402519126426157363776656201424679445247856874952818277207735913330771248143233195910778664240273260422148851517568907161096928959494689427291602700977424496252554861544541672885102586952179096814083217209870608590109434664175763702450985378306799746162869302853574134306850760752716251848821854640732977723666493641377273772132289356491092783505283226183410418302132624098210554717534335274635738119093748803074166848487767488892474315052048178355180524559681271793018957336868607135945074455595622140294672873027804630720150651575106388322511900921619351522472989734426028564633108120414694046065636314858242091693014407568582223319229060753753988741350293006116918693574918507794955816986655548315034789835925296134902394746191842845639887758270960367008132492261909402995133962883054058847533500069846246013200210070135737559021101816068261609884039240686233415371415684746033461355255696999449810769479027116544935078844473923350257785158829801315270204257907881024511714579239985910559516565245454140949240304033719045401484608799393123251333467726571221621442912443591032837093661114505441826181760981806072753444364416989163717285433313438362573524087501429228995065262129871282347487727305919172491636031983787303384648529421914470986033385973863019610878290656155133496151959522314590871493559449210405723669609792632746332860220678276750608736112163394301898735293202013482736528871223266823533844708639098386296878991696546966266267545003676862839501535222660126934583985187764046258706132572925109620851265725733861197228183715909030041973075801562372030097589600475054746748130914561584801418105161864153648236234078440459561588297871372832847598648286867721993516494230409623309123641801835701625443307891438311905317480377913538548369181198185635403725054027301323621982371768230119231108731316432529429489868931914037811876804226619789656727132837526753567856714427582624309161164592296814892369023579144088494156354796712089501268929844641279399670789259077135627961087507665801375049721541638868399703199585200131867231837487042950313260051708145583641020685958446739656366828055783452283991147260612772847416924125176470271011039566959080426005849641725333597866820238827105810376460126885189152069739634067509846496785416232005553592712518557898845653754413562300001347864301225284008880638567141358759918086930585622231609981389948828340780573789768895878009152739071715541354757493107414183161634192855413465440519609929931183349160449460457967367228746664287691573489274891664128745901684066245458437123510262895853121430307107400456976870758804096181105080952980137478333101176544164868664956753934809585425281348592210510711851758686086298824826442396348064638315256025055093066161111554014945337670780270746151486330262100370207316451323674722103543864462228907441275542946354777892796517282370872318915003193740215276810744451583524049465266908218802201216499419758152903731813079446691370836491200883272755147868804007996181021816295469239597803651904608052925989816036986677592294400846817185397214113916906097192255703168746957339136347416422056706179412904626652492635879246535228982685798594942789198501271699338783854892059987694036444356775392989444990833386904497750027334717814068573878870972635952628378710184995751516861621929754989725321511792366662718462378093971814955160492051367008725467451412836391657307840767063116299352441325825501431337133734479105117601427222950721244192078385591371754931282779660883750099390708828226959219146722064944282985537607668750197210464010547218903145352233106044679913291696749259300243075418909092702356433492475831538084161598234067400313974033306639778033655269193133028491661308285642655556064294313938905635004936158926954270519164717968983372859512022928492029165447185825068852732555415576810307755660895580184019078733519515651275127132889598211201388309558646140369279394802785762609605219122945889269631302194503053130268371592403597381687672393952728073503863410900097627310754663241560232144922130969171985846297573621572262451643443947157787515378759802740331901332561920721080887734624034696892805838503905401135793276042337273858517001966817792803360706661349125607338785319625563407123250163619993016536920033169229623592565961349145153409501806926457761658954133612411170480781450346757923912625563709934349570443264394449815166545442906073038530460261772398199139013994851857126651590933618055275481919641319695861465040863537811508395925532240103681552377961528764438740728954167969944281255891822719022101484225224891161679995752225800108937380018310677020079393545271413219036799655659932993255357280487740288907498168164766130003735639979670703094148135749790871025802289635820576999001627408266711193944984397077639008866046672637849256573242265596203316695528012757785710983370210802338396272026675384314431848365286211040795792385445670936905332158211840455878886409092157900234110559654918037726009156012431203033021278603488985802927962681996340212210375970997893721309865996895760595943151300378713694790280864726267929026400532330094292655860338249644379363340293479847415127124381608274235018653197868841011162560587515053327458594708731892411397531983434120492343660740178666933829806328509478319148478912977796907432712117727464354104107712092119419694645586120561293762755655004653189931472883250597272189714979023517379333699482329207591484700227616869907923940296258776231198548070537344827633808199476963420495614816672089166392408008750295358860117430527288837692893919133184794185270241534798923660507528792594497811889988670870466537469330623668548286430215744733388626427083380106250498684850598087649197582770869745677720539926786316205728019173416540968740873940786517079900805824079840535815790735873659414511947124688517156762693056395355151827001206115134926530221695180254812006590467423777015314844351756683799737592279894289679574780232500464333456769369698352178273195190252276174062482843090933526881811917521117131455785738827596982441673380286929362416257466061562284900879929194828553820363461181975668699644728392168863057908847943049363048228230086011917625859746872896627322771806383667804626482369708411627119776608751124496406769165288876634510778590874671258734678857681328637284468857531313550984446303311194024890118779211296727205582662875714088228536536423845588756173591570492404837968815809499676984514818355232002852094535833184346174736583510226866717470754776752810105095549490537665299240281879695009932262833867991230854300502261459968851287306983321032999059843122245155539903504469028788924276047606155128629865139594087123841626689055111354160403308706417153678737094989367320741432882364897527626690951253089131845297370573579488445972571582540933202296569386299918174789728446212650081179647720704112309357897135344982300266661920584165363512683370700639157046283064375300667533968845066428263668405912123001673769012022015852124097611211675912048280983549066990191088420162810828721817039802897098177736019167613823872052993282455894479983171395877270490620112305989319833284632765004118804296439029472820614438006530583223570205462978723424525636861955783360301917858167703022044841078430947253172636529189618928155461280154867310818103017042635839496351683073545775705121604924144721106971060663511268220307088734809776531185838059147274385245698316592696066254653072059644165634014302367093226508575294439933088835840061437299990365548979027789163920292626433165812157113599267056931446673020966430394738288017711297543499702799348131051075119429915172993024776180913279277639380959912033221573789150115947341587989520447066426736369260602422085722764186850089812153414856376207111150832966785907611699523941661867146576949846215606295501386330114588007408700998892017740035722647687963974555906689084515070597716199063098198620170820056441434874887874334463467966792558908019318411190674930731438562278816427861559644056725285852748201861019071502318883902200259775377792621920817204913240881049204856747509497442113329242692248237341113056299439568543338817881580356340599501999776743383913771885265220028083575644320010634450826766439270098900095248823198779325902279742523891526984075506850359153020837803019487125737738871898583303044691335027291758126506825578574095774763356352781614416574088758498670154934339155293095474575770423304879405423842213068935616292380605999866161079617332255766527566599978345720325161493013172542930932956582593774193593853208049049599440351663826060482161267670995030295343678403118182791287697871725981325768980113143438387854691213122308026208905979601415693504103885105102696265044773341540499992781552201633770352336327891046272742386028207277732813274058056854630367210661216149323409645078153543496999644373929093371111482581273890427090838909180296325409849390699486283465048705909573624948352959424896729506844526351409125086480036998234474210680984849495755439995205624451454464795062681103463411556507740444800181300094459528442910229675414783555922853120990301428249020706803084471384941881121392181846261066590750191796092584098635340934185815427934735070527330134622450855192632947729905425020171670679626557717096225828456436388781779348073205771088324689931111996191527408118818558120054314309944155124650686483732053842062467646138542530075163952843777784446997706106331000622050169974779069780634062310388070046072263222764117539872405768768258420904655153611103468992125919986072913828240034272198411279644198439580772842199919138752021313974801796491141565375778777805045414710699814121847432737397525619479506408949777425073996492381561402008267708349294123268273273510039300856541225873095687505886769860587740740634374558174067957795613288400347049578352393813515324147306399439157710283184602771535326549760805123440817026814642934702783180234019884896288904163076048819350913000835114811908933340873075796003865736889425398577718773342366101279367764421362997567005587462542844763550421755551937114834403908543043078693737263921327685803360020171728575472366353787544661888592320871514434770606057764004654927725134182871768804353224494763588411586497119491495513180629770592591024472053979105030622384453147832354525619592093887593015224098956904737327746740182343178314657712445262261840608174659809153459980025795624685431814187977396327231850695341597517226381130045308849771193602339758615402067126094732733683120366838951320689481973328962311317371665002892151400122707761145626590020362870879566386166804550181737899821557679604541817760622509377613537315762891079471871634202038008880338373173024392845899340430451871956057525593197446871383486989523947389652689565666272713909747325887339243532349164275794978156125005259018483279102087696683080873993794845318990424532469481824807154039332206709324462050343804921605094793407013559257844203318354750318548781567767248160829354101969436811374119128589330295564648900687443344105709234798283050623389868329721092214475366848538815067170529052892282188628645254668092497305676268657086532366081828819840654045612971502985422624118715250106638754597466822763262057646812209181039347225098553550918371770033868742724191355199116157287883957121060455088589572668359640431795592288003556266955708122975512521220121680638397744123214690166282360835964522395005133603622070494903210439042569714935887400273712508557883068537123288951724715240163898849018936939076099103323562297771242992246889477277722231458623985086531263422304901393736340888345275008577616629321604489531794005829724932688003347126243234640378145368798163037627150044963567661144890535148846735483041580330122504330360284136791445240343201117520073366287079343430015517517022930592927374557765677356922133213932335479785486714769830993607882564017194348032287641663180932896046820709753062325584116924185174870785104537096086596821418399182054861284518560900326220502892661780676123008510981400072979938155764394449464831841669746017987508530490804487433386723235378574710100900055888137142621744736873808258472504204113197694519543849547719575110324999273211700683217218513057332937533900184231913099679467587362353973384939181209012634500016350061111651338228281019471706528901361364166975848450311312150190642369230476770457634712565850764048456064864265345104717608117389582425230177489044644629757854975628295251353874442034742423237717229293838454518500329461444034966596647130781495352943896572042107195124844424472749438902679433760817865300732793563431526189167189386785059954826927713256007868280896041710594246981797591502259419653016945188837658332418158262839873179250340297883583026936255565980111038288858797031253108758165011385896381084848830296960237649637616881714498354763055108828992984390839420416058958336373148874677364134613377737246571201797401000498960857627820142807300055133630009754165319780411616259164432510934872171539686807258084325631842448531667287914624147179192176020234156125017339903462562850230843275068190437478625764490344908525085370235019497319796098144042927773411586155697566461456822829689894172820304289663119494996678801432219673046452908481385677966865115097259187435785548942224746611473705826133362244052544556144568191566663546540051310824131420403781068929986177501309193118561634250676018139356818775373272623805230254315873036718577879063319253992265046290210039319689124652318573703724548519330105193709113960635861178837456289359637726526953085500924283513962718639490637244352918883111454952237279777042607193703812407971245451696098271437517987244298858067258987890961742516725577449835063841827521626485966786050755754706493222717191027579354341753059931895176591712242788150277465530318794305936523319112419972424606934114644950262723890939548045379640184357128649113964774330690262071299773123843196042194523353654198490745591832949162975061547453241730754342729136973278380886584984128814275343840099712806830506314115914519291881184194417065152825418556444499622587290543425930791268367790462221104958560136181753287463281218240533484208266470345353187336894172901141186180372786568254735801953907999430122575891237375213244247458022490449482179641303894161798567900290857095497726966028165021643309723590640662430027773553037872740248995542346208802442635038981606408134638536151166314793840805633064956215672470697994177890291852186862576751278830073338555649849362670833004396206066324433103054414586428080614834026719630011415199616347003476419116749267802220891038763038145749674896514445220749481927210269868408245457894612512176159528331342527191004870351951540963289116044103475641676338274945633678684832845230770058205518974405790421001188170186513600213135310717350249859384215346513910824059780974228002343541724045534753917061719781592171520147723328193493557974073975429510856758952752995683641446584408059409654202498195130690339659083488644996487540414722687775269100597036308461634522912651273050081031650149279608202551385661982683838171931866001948474421409268283411533138299254774683574634121352838378649892412403398407993571302303976490332906001787181317349854313414867655592010560597361118708485890433345701742502277797157148812457438918263577300891748032075740326166999908448839213389488538874902416218318353811059415066677569202897018792442996262012839961443627468366026852274712635218900928290261290952085597600785878007746409699050047621850945426001372356072326497938367411574129448104124956365088738744526516639212875589100894749486295045313272257891051982096895484821045841217629336253146876206632125841517601963721988320997865342735865657142663438065993912679511815184855262803426617675407279397181769109407857956546511696457754076641242264239453760675071911412274470894880110714347312506646294368159325967966671464677701276868132504571924007782705894561798523121236631030059976112749157743154214134729274487419168716834929859441315628430974971758627583895571513572479593399196160746375182974252903031921393223238613261766133261248397136153893603947287233272263881015627111518734672915098665016529064214052576360736314634897827475395900898608141220629700110326442579434592280310267097374839776396645312819294687629839140550223681354148280064410994693404442376266250258126513644616967023972861682259328123209078384321916463682717365211785928978433806128638615360192663732049318764509742853999023554781022169314042690898617485214881455021951646267523972752453725549136086396846261932474904363555518051672364762556602843914817168492594199611841543460795570266274498368312576350016002820283907720366649510712980454701839083994385992100800761118509054693521591434156923140964459711249802969147711573672430508953325502033796876281614237760286587224110179220217498039441725869658265739820426884314133163529700379554627273248600712887348559844110263021466088383034128604240122183533500348629348739072603494646270797057505038385052531664178856454882044628725574073118403553036102068074233185673683687058715111711027244971532570585412531236905051030895677363477495643599164053205202519324649423998459626636074434032459402000103827939095884743250387435201788298988657703196319367124865390735879880108502901221809129588553253787331391655958727136838219630577611414480595157156489010222248506965270757118124883684175314833993019763778349220112378380687918237001151101813199161245302754973093334774726571475599874925573569274695684387480927785319827591520879242911975890731754553273202688862508024708999665068104488917869839085933319635901531161910580618788700197106962206460357560574070404311615138720691882542104673298127782904545465971076059471898015974032654592475907151750932765291560020025804511693558165773604998050064740961219179775600644066440217326561856391061351289922626027007268823407652798851246585836607427378424497845451481022076987217891998046007844155166389139890007119326053906735926760950329154014527895167152488462766070124230464108547804746987579804183446830597292790601117012322812656749324443936830650662496694720133740908895466163023969359957390127989947413115239868017538484052840188323934820849971373139107051365857351592682836662295685690258876005736455259779498398138978942256542018034037891339509255763568194302615678068163959897364787356300536343840597344725011623901340867286479013728197443597829755049479720422759904356169644192312496835434086637411079354371317445162593120506119140649365144626083364654113327861027397584914324602342715415129641447634312348417911759019534281341911314465333481857295528611629701007261692010990416118221904096192202551321912284491919491941672109504101382689149572555100550584235056463159269330308241909224518427774891827209478227458827425917993476940739043917732520970773587288263013947454322690050348316341997176149532564587476314456357070979615998684381004701936522633677427986646438119135778589214416331990678009038902618635994303563179264743477949243921729069117669562866453317007126768816427944011266706921198925835998938984024892908607300854793103896111152518272517134073685870197119558544280227508879869695481384201651233500216246517125592036197843776894538799687939476046917318216314679074549454905468188457177300476402219697979477498013184728068657800273263911918603455061095337612605010334183551766043422582676566156362904526523227496170567771635377026419404965640214518969044092337040985804360528271366763017325588322872254530660394344690239683358105151477652762261385707996347670767543922715807707262786135244421497006172198135060535813345653291368390851988156697692668875237670499491272511710944655136295731526497017603994699142703804439133078286281526728360737549667156746375260987280942028069625410114938364623070174531600698092223242576482250045884292704576906854462537177354620521711255379451439446327048763566308179123596202958959083743121743987365832453203547353982798337694540077528598361462051319864485083975577094748562111130258846347713598025124306587248082153836792701583709432749546484280609606987425760251746825840527996807862739543059574262139038551797814712808047460947833638252332413028051584521966970216442362237323803508917634339556498751714559974918169493334625644603704421854369394176862047830765785243695637959227389294371993528385779998212205419989091466428696447928687779143900978659487475026314921072230065029393503690153040468571630024229653896127649202849577126053547604981248130828331046972792657186387278760792998517295377947638618794334128325410264055583780963963512071877672078330523535894605110006044965273546269385662908769572968687691281663488273951366491839988602218500950694197295993878565225672986154639091633021890001281894757588512666202373987461579573860486803273698997823680430639200970657181329158966000216201240651300667997499076614078471005528802656733333876893874133379688756186053743788602618612412836302707821806157634825384262203758069341180514726897915528270875890080017877369626323567948810612259873603981069690342005265575634455506663170973449800786234338410605789612998027493265266930540735595786127779869369703388218147256222342447139004923656751773315515039841519099946763949859745756663847031652225817197039458864430537242752099984758329735310493081767097300661340369584497168447235817230914425418200180042107823832740214032865387214972061589877237670819710756928886954050124039560009224565951744181852515642761779628638926477441069813305482619887195373743886966742180300410154401687117480321063089623357909739245501316948521675642195307926386947400533025189763252836402730634331647770217252623236927586136474249933060779551233455276668282848854694462759000138283011723028851974937924970068745118352463824164353892339065692133155871567107659279278245149691256202880702593029130723642180773989162396889283510447284079184920740748463172842435168773519274801674556419712759163357867734532320261818095126731182596241116410793093040410184334163875962094431617093547305946200878304314009038735021813152844549673775462869128577141442793005811112012291957236960707065315470085607076826013767727821550303637927616734982345998754404284670406780205088412265248592276600737576273794693296705162696802206914448399500910371298837662869649281650698466182579666979639205982334412152546720169899711492454718939074133990885787033033322647958436902488207574388218428052626252355743435095751476312343871053920071797005821020496253250833228246921737559454306328598727009921370268028075270448763993840003770402647975011522913927501282192300878382071541309705297187894399579057859405930823913020641902052981258562979980576381543783770520830409938801416445781904604425434526479495773383291986306414347045404952533349533456112720553206689242168236582232597504708009845264667668964417645497137044666332224962124844314150777315841388500633194803063260438531360975228294418203447704992445295166894599843773201869270418235259900969965105623574820742237874924150879021872942318512430105038126606518552232026343670540613852921475298338271063235493076202509900522053545430497922406592610761924139159139262208804833580998109937039807473189664277759829174974053165203129199595168257565930416582990152031849564261095144386023214083304780388389857975159573199436880146553762880739343256268905292029946362002052523443413660455136755390916188160070882955412161268818585228798690351534570347182480602101567316685638138472191519359298452519801155719457921126154464496693930144137047629267838495077929054988052818053381323551210937299469477950940628152675872900841366044646849353703267291457709135374083853397852621271073572009244167342439540394889160192448285795799488942372339387300193990675615318828171411052630335528409797352474894098862265707249870722028378444971240059795329382382430551713890163770884322982594444797510281262336241345537399551293705460404772993715750243253378439975271675159149244326642318975521481331259137254042356507593127819043219655383945993761750417605446959334711596583285831906430272235627703016678324172076228144764628340956858456378654059175811239128730493175256840443437062611555598115610516867975498713523073000509305139802090813046198653893300107829595834185193110860276455392480256701951934403974691777376880167647675085332702478664896001158691329034213297419226175762226809508212868447719715277518988017425506747322446741336114860148494352685540126189136116521623809297804221829999474029956689618184784220543269331512140738798283524762150850622391400890280095367386038971681777896408131258291669476275828271956962948734002400667723310532960503625714915160528502374151150861720383834425884973244802060493649523583836091565227860076671705692056016869712103002983350162357196481024114954960449317989199344930004209258551182509147297374244963662202293665198292851471752373601105931752749437195411309803077176708203232148518189020721269441240157431164483454381612114223561992097899281447576425124283826025328356149722978252274301608227294870589124248401458432844216540621480121242768899219752725121701973234733074450859415141562680626240158595557043142542565098063495309594924312238968940382232668805637674156305153884991076908615536625448911742743687679825444228071755991594571071958250796042585319225038426194916342278287575401937165541196565336036194933434579093102967710611894672866087603882979195511087025577865283879780068068865255656447431235400700842173601304100233908925498721108821308246683835729804160006836847126916715236686640043513040176011365444972767587254456897597282207982670850104378866983254143409993868613751578409246099672052964784643606831951882036526115105506354783699070520369790052262719496000684787683330204203500102626030679693598250397219582188349190973272085909549968029813199304408119908889241463228866105125357254137634020188217195166711523998922849858219846234913733002773392564527329580281053205413788635108049368941583598015351828028750381035950540930523165500220029788778273099726890601161367283879044089268802856351830183821130793119999404628754250407406071866746094715036616636610559532832102473909165518422794326661207751649850155424052352971155913722342446417266944493915953176679350268898777389273935042341634128876960950917767682050036147001755964915439207758785209570660695209691764041821978391100619243081899576918984787264498916215578408839201388680718560259717059071739696545813721736082308516491612431024116204532429975052084083543759405073672430906977371126349615739430781927261054062531541375066588922547151745028811469448948482632063518286200922516029338163289207663081583172903013228364689780631854300185947563203123850980716093310671593008888817091306319368080595547747616636482684311909954281808523735100706251448690642973450397930390760941815114402099416241319216960339306723954930515840475576467517841889868158259874065275317483760267442677575291052628906318353680798657788599349760779185923692541538013283585743121014644821955265495215400940094206357811927975836862754819982075968803877688041176017325042020524502670866990545229871547055531217637444720497831951867887097576949426656807113073440843932357622428698692063753910897294756562092016588765648085975459799936172826933073416098179020254363993276752093630846950595061814704670127790987827126852528080860120052462467677899324045217174895758954370454609216007637133120399338531013121832029359535048937651862758657712589948397326951325462403909256729128046482453705968574206726050461651922523236619515660075518925004477464072583632842664432752199132494134269956969775368009872745217401541686511331802682825327851513074412584323386068749271315279115589952626574145627735603085901518590244410394105855012816507960501060659310007349512539540700705528134284925943196929523200809341693212109173803645446032432526433355984074205129404007115888528477669676990262144767158388292719535057699871679892455481436689510353851692486501273053482663699955072731900151671295313466635501957944024026036023735697460046961937340123742132542126993610227688470196509080598611814543086543829913437164892406400274341123860623028008523242557657310819343849674418696058353659607396415282070523038110310722776381054981571648258535471862118689819810700069028872480447900501918982212747125817608257582003541028061738556765170645434608457932781565793905426415800477695124419874393463680761282895501894941767266537119449270119371412344504447692299805860227277455047945860736177452987276705151429779426914608200079376661514389639943890196985235858590897997780947131955815601027920089898978322508494364512984400343453704605632548509421988071595670294929756411442641330372578178351727408768561604500519334788709880222323070067904816679304076782729931428869102703510093669378181936496598527014187360555472258651905810608964463432907839737114642827904514562194842231887557751083334295172862714834638236277449461752003115751629217384427209797935540287167371715154646439348278304621982122920586257547672830527999152260984621797934858276337956035219301540877905400933356544731821923333554160973593750743633418285280807071786003913587761340120264492292890949762802514236579651229520913706782892397516681161525211747346252040324725160023308065774196614492197909788247703629307535377461059950923805479085532471549274958461232975358460749924825069983629307504694061478145750707746419324932227246451358429090831938262817763119644134662334157982261145425162652321546838343481606259862145272411249197920898758464561547910175353759126795943559900732529809543877340520851205149181098073470553948263994767000792602791158612807362144063338059098009875149665309976798359063988014394417024580599832582186273801194449988978870194698799782486236953244763822785820191859067425224405748664394968748219870024698458472913153586394878304172797951623838420748859038934531708802591830433333947705581794459553364910283136854626468750643214920642145452083542383540977176189265189800248981772956055953837603396321814732670501828224270547939612574390750227498065982728663007218486085159492261223104938304825004442764953470777744411426330883041667543044681411178151656361939661442443546038491165986064473021828434484172143734474934389451329963799639271963097745555586874347732699676909505407946535068162749319243544219174487574021335364067460367123660739923004484154222241242393386425639905641921649549093157931352196204811721410098307914190620463717641130924930577310343933223668042480411898647752212901963719204551112652737584216604694987744181489820279879641347647990400902138337956394224920399818501162861507488580570830545230171591664308034632133536127624489717399255524126895284402443076084455797787322079491869915187938179873420018103361137375984843675031749087844605243047081481379601560732057162304595212592797129761005853231566460373555345138406167542577995205930609999260024788353794389645418329570463616051096880368812659897886896112059093358565712340445091884667586113712781737605092408123569873771825727111275191430189873279820668972450720567968160681427048943172617185226404666309902484650175458183308479945002992808640346751565754337454057916783712465127966054303119688837865574846248061565647468597894566274637336892396658795642915992718695614380706389857201621132452522584336948439102277539989790299420227552291557368419568051884971786614517477352550257842559448094137574580169452719594151818034629840351110099359327886601122970277609816635496489026618826442868003100580541722404259121537151444924842698187030697869723818389945649416884051788157691932944299037097769810949440870043013171790217640420914765758129993553867078156901251011101977345685717120794243825684558231535142276537984011284301785610759294012687084290050906055001314711956041263743949876007143573460740352341820440405743496526999730829890767281083359958004148085235452319005646586469213968938427799832114371887222577769542638531852637025932719506923375074963034122559613884425772098981254672561515900248025910552475388117511621311945456647317276848580805869628283542756686356777232467968716502172569795033535598590215522553903372918843287655352479301141914518000008226684690874465660850043150836960904535387648739938405177762554995989250289130161417079316973642154388087169563823732253345213782660562024814378218920973922810876077947923720045237133605869486573280623799937537378034794063713022355313253024563530999388302695412077631983236126011788647338456522049521739893953944467408686387726973839152572335503713993583883746566438891001522800618706727543670539420249707843704872282398581886240000709458035697215731094957234496987118471707460180951226285442832436237670584156458258143032499628870647609774776059623101450615068811607792478582743025826476155103149248922530914024111551394267115804288967469895064171290078146527408254777251555717015052033589634897376461000493924254696693220104391328124216781721345333597020935429265725229105804683973220344736499636046278232754337282719474841162350619273501942561587063930191138341499591509853339212336139308303518497682884377884128030890581224632667809167733750871854511799584324711785914219242447939994175180955355501073649598062361363031581052466113511998794982084945671624295023915779222063067616688263772981514975829881136916240885171914457614774479868912675473932721177181281981420868937472139262455775989781746399914333315899271360252738088774324297992458135235647286947975057213416226049986663242360372165075045161589321168959226525916469282504793521586025339918451506114356264194741379144227177231875804404718454877937964720144283446147978281033163823738835446513287307971378049174234697503745586296580641267268927522996348641734132700871415759810639022476849747997634241174889946080266896648479417085131854467340254617706962655721632252651337366184741171663289737275285480615548312873546560733512278588830626742147305513970273745575606068397426075701423821345410032290681790179530402706737372683668756937676164751020732534268252077053534258001255239604820504686363666466725826239412891265580501681945046350014814753493138717918769086270655116345896859136886166857792111266421777893683270003992750231815633128100421210138675881178499573839982808686457060599312133202621530812350989561487007292329202123429958065398546657957887429749638992844935322012689938894175465629930362064019725977803969043162215676746877262014623237407707955896039353171257359637542848509282280233764365501757910929844467924053485051389149877793545596171651155278083922687487863895342413617949176256638072619907789427133908414917924670086109498944123483280238673450438199533519883985380899990944942687634900568994600142522511414677585446498688006209613395301816731044055561841874671555588424321294456230419193851746633091528155678091183823699567690425615844901484942428568218286276718363177517972934358013477944508937264679326648716638533061859693710602928058175159417325998533003456204649091930250460716960181178658803711378207112324323912116966872655095823756752277832621657977913552606843740764409876774489572450648033809983605582332383066185524922828523543357161542306187175660401475268348888474607702077748596132124928060467484621718910248243548776029813566045339833060148017027444620494208913882443029719707003678693860395844296715896888229830340710664605402341184521001151154891556576406235343879459820137716479989884486955455790502240640184875841024176038570599912383531271630997438479553150215273882313263544361592299532680186113661762636753621088678770747888140605058106116558962820815077528377922737447493918995102738074474746760246408689040616059214881563645502347260192624490150551895945013885216749984122534061062447830054551659876161233382838239954332615631781443005441645846274387815745445700078825918683391539326365743827852125318618587502696008739439845756002499766335650815193764047747320802152705102358186306863632344759025771716123412592071524616452490368740135188237847051231865766004727536718657263377197963108933113640272893837759942116663092569047096730449984110704343859106973376276800806349298990277295673471362302576622192744363428725221495677351227106595212534665031420201988319966343542996609334714050376803541895437756406674238960115907264093478602154905911358282868149326312714424449364108260255227637546140420283533288577473846041203918842357402027496978494664409718314790190243249604736254945520759965264509435666899401548032756787537649751437766388004630389007739694920875851570673583195150925734830211616001723875909725584435689339356374399250038083996438449890109367581350564428522159134406605275602251142355540472112248381891151910210263691536249524164787465350284113066649480438658197608603189009604283748926597412064266405352271320166784921895291439235321975975570542732810047159277586764546538966568660700423432173987029297508091372454438280052334329737383007460368025710151659415923483326148243625024144273867063377883635475899337463959682815805343383325678106163231334210144808688550424046370358862988640334549835273569586448759940592318530014650072210584247823746968743798301424134139795033112975794529968352969994839667642073389319619828968528689920702441313618525968046106651283957222690060078761351910409211178044102251619238878674215322803445572825950619521062577942073798192317825028222498579038805671835555351937521709043795224067986928791046253864775356914479338912590979825510012760195342470941702605984033242023240682515216631032653729363649765515552968675226610595222865399488150519664199261245074557896976373313157818341599987076332147051395142269410069260072400961587394521022110159794121502654589175084641914088681204071321176017847772350564101391496064495445643107397937290707965992729142113186129159858948360570824435216854104010743080353010643873288253123435043396247310534526185434282055799694900017564756470029236799336935991654752764834032410143263963933732708736347856035314547455259014538886224557569310033010003585716169370237642000438882031316451600838159786347211161626165832230372889664123453644798516208206802009880343570504376672886367808931085108169012109600772341692012028348505779263324481419018953671848611343272252735577728231623966810783835297167126992513643859355022195585672413983352421159513547328875586209444939361714596414271572991503550532797669385056862342807127275260898289007358152252294809421794764450059221612083487262177344425562967394512955736643535932882848051534651709018272524200742547400919169770289526368683166264377390859930398672350025892878723270075702036492737946913911467640251481981904559590550046412383243683817497097175663086217734961422948208753934550044048855473309713213293738435195753982388504831333242113078416389294771023584166413620328178698897268134412697663087748807742553215408839405596253285324687094422904971783406079843813715922492237790489305877128988247635534124113538264739765889441606333808842131504382737417736365480692496360743443712394453413232800344328415176598907083231513132073486089177602019822282466478382392322103823784108888921110008659836705820225823088978553520461648354444502216258023611913764599729174345446269633109657176441615111542712900735831264958358167335709918738107158531994500797482096639960222280985025407874616960009555552497757836969251238754604844258282059664096428177205748496613934649116139482064258239893798162694757732844178303716777392369405602607297865652376078443492541371030813885204365982171582063141196658465735781163214748023888269267049394690325927621048825223064079384113393252506548550829288984261585284930030126755770835940571883547824724232620405134329611861208617806311851663877527119834230468906187439838967486790877412390022962057574351690279862116581787919080275615252946620122941966569112018501994931563474331994328117108869780095529830833697789251759211396759808899461311975580964240352409452552215529885619876688967579470645389963295390614338737617524412620162581091348031619998180219120232732824234207073455471481124692477085698054454874531151136731932323462497261586211041354577915599741558765931785567938033749654111587344265636899191390517982501594020715800894250017245287677028223309424075606127217870066935081527984713806881901241067571449781782996579128290593813806514599767506540813226999024494556035768968308549587084912393875971836989962630478178954298331592750232285025384350001204567481039600519821771417260886413312135615043446674913652294281437179102827761212885217076973005564387729502294615472680957663568168543199731056541161102929722302197149957278750512577393809074897874703420777445601768777748705149794089397093704548544015145636930365469488309217307393821493436520113657964123543603524511147553483321207140269526374954416055018649743644625703814892460858814819213719378056359393041336878701134041253005256490910943673404406265370596068830382063491662861611376500110827688869957337528712773287973222987359305795574165373987885666463685753704416129693169216743282273472403906534114270029601019697829510861885020630443527545034543323625544133464555762987397504296853300745004883011036229659240313972644960296711699554362767366811236567715671371042035446064875473472182113287645432266265590430207590492951217545240721089286212311183601708905297877700674827126693044609545694302359736523243016361418008153228546011539697122693745767072227900702725603750672732095268374753926030722555924287811348966769666856523476331443003808303204673684130130150235956357879720853746402644952783873343501790794174684292558057632629012771090696263647795810774716601702206737040553947111192094584288117966695182921028452111474172815820030526527132153942185916098441680622291216489594607909340226733594558886682982694430175272295404755855631688582398805472735026175013149267241577990210596234392106836613554286467900396299139629749188897759493292129506247014503569592316131705869237619964307705148141892707003173463258778340076930546059478699498233606317801827040440548593073531932522895627214436169071088774321878738288902151443762973803956091664604255086245743543735701013603018174200926373976927760901894663670842270799583424859173423756482953038857977293252702216942788279483040129372884954647745473162900496658521557559950832763431900925135837620400089278280606036731472352047696081174257893133932362575490071771904572767647136952229016435920614116485481426458968779583431521498086793978715139976126984961134855703908096087512778113099970335325507245865079947220114085911745501522722928197001033054193595419288223533710793133057010969418702328077841843768712613113162588848712155015349929151367479496128938523898592235493708249332457616580769727598746563378995717943130378389655313599507745303230643118808024952434466757650306662633888314320009657911238968493312491027344327848442768216423726970261184992056771716587752200806415389486147679167393021172194999894700772150971099089472334621443847233795827783966582360052167912913656971815312420076987022417052410848348218878466789982808315641579232242741379022009993619622399885504971010736401821219341765104242512422513010175687478019226764207993147292983396128473906317324429802020729579235853784942082661227310548545837256387627953504720111481583040211737557046927410599764815215979056458657632474530659214368461497522298625350126263788263400494490038694082560442545556533134456780492054093277106155679286643443628787954421662166386066603390478053954258862740247015253936300800514941509386090550853721415011878666914506467889573074090263615373948012129089150443486025356357215991907872653560187910308522712332510590921976231630855777502514876023829831681741775723603046580079473468552354136643870934097316159343197906001101558960904513162706912455786414043440260157391766305274318042696699164573206201409699851004104836706996671990270178568819736197805336586925191132591665949232874238260182144938410421982081300141235873912098207251637292903627970815724284031925780728227664629259847312093848188956040388551959698654036408805359353390115591882957543359965916927770097440633694154243009996739187746960530916805129668407892999751788743704442061961417353064834040589201194314899629026896366495891652585536837990155019201681725534085500136339254377740639203903041095971843430546086906634670648914329908549487900125260451753123866230907778462583508553550732060156514460575214333708771705515762986787934605942649316136763162523470886691618471935109163392836123753759227566160672911491036414699447887387339378425291200839368792379908127509895318006741271921859568488936945740399785212801607126720815231630575961578917036941070091051477040814307279831588248952294004068357418988181355635658719825071248229074773776540046825307154250031635129255589305863125623613606906724571368045007615260603554165520499101948595004593120516648132528288802833577043241332810421463559480109573598687084965219343298620520197327741760662542070027331012236130685284990239304344947712438123304750526884414729056655186347451081923998137694584400301435903946149964054615194417483799370685391962555447211259876510820809598644995441241183372844627467059077365649846106627389105905377799789669648094820579806108866311291789375137284391371924242868121761835639482534141792146162633138270358370150898904789065212731751644299108326265001651403006602884793852736679305347429241686209115447114020020257157462177718157396588574032293587617160521913088919530373351492586937857848517305697212261014831453803432269777401883601605636689191678881439391910202875753514619037624995809629774485788560442109631912035087874229796976127373767623353972315113478466969390048084710980625951898296793547331555105862057413615624327942163498474482034086101817124086663140951499342221105715846613944616184792038645621270154891666875115393843873132027724365839637449395266450678605917582202920219337439311670482699203440059438418417341712465547973492788866784781108314421757776066278872555832574899881904700634561019402147629385649833660058856144724458307434094155882755003217284621768408732248144448377937051363211750620808194807117420843492027186005259123653940618167130003147175362609828378829338508055001769166948308336967148129809907540085154208919015462449036736521116542929046139873962895253163798203785202956827787496122480289352352225017230810444089437753623585907108142488438027826538513282811826629836102323249316552753123398749522507108328222219254394492401360516621255712321187009663042296931871076945926102984291750428345000750390954609827681631623267722889641087561890981776219479026203326422604021609169361816133790116550264915596291888769540913416862372715529938790188436744325772996474184659342533259736275138941381328526079550855335208345425274328231738620689813901166673577879842176101687904289956093518222811655518854707974379638689608456016391813046319276633891096542440321373963541598312765618952414257016604665222415415502481004628191969484309468551129601869075270051105299077114986574660188085792226981552994538666899255983997436494564505105321890601128922449867274407304264942190596749123252497262604219942408979347355544496619016192062892562678753403250912304795464000295585612136912053060849997380928537672710498238379627060573922213620436357226625532262542236128397045752491762944756573602123425324557728757956762666056352761157526492136292555254124136937073668548628086322757441499232026910480548990152419184539864850300413408186479167660863074023569726667943352129434568459965669091419796709164697548950222456545436669777809863623487958957165808525746803838951681525422611292366174710748900632157408852051257700913998084643653011038900219181902279905342297441264291753741639319616007036065227676439912171526976050252846649914432069499830124494398341745743751048266733646915999206593221376087600995005223953574480525718131209639168317952789955354984089773938944944426943976834417449582435376954138944897325064034582737788895167604510104590889744544714461262621059720804284760693770908139640314970662898259681831655957472509960216531496144097956739526511705596078575584284216324870118238750023333206990460910593522491826518580374064744733683020828854065894792270349896887883533110561250727686923251298751801197495165777042771844801113520080185279762128531832470279763597460748095537712363805103432940211496475031762671240354014444726350960889674080182165867386788517881497752942905446499248473315114165626933678536832967395240205979938679925540664080204792539453443317861273522146107029295663213976389810967581756432643190138839963588384379074279290637755698832489349237911420249443195016157759671747153654906586030280987737816866891258845589368570598102705732437415575402797623926970387993413650166994488815479401978765034725776211819069813463282833494660996948574668538568463053343083443115621827899440157492655536993351975124929654729376281991158546950224439176958834996371330481391300596238786400420787854131002504952744973222059999883858684174313456355587076916182733643304051427616033288954252276463753552192498967514080485214014952229118219537829522007355480982683275118229281632690354621058924463480781607626891506442024491552454809430105888863182422740907136223199006603396446230266990452684507356501032270701431008813764568636684813546062759700941704148162474197951764030838746378207083666554796399993585659446686041176193021599248359904220291823246621057780321149959105048961991643040522502398711704196315583662943228213096275700682705088401170305803927230429948063827675610938997665351320477249924304751503804768734119330789069185754561661979326304469914845610877502689244412816840998418617286427419310560581807158103537323526947112888278766851596632565376029152567334635223773964659916129634895644883963651429865080865917769805325358977278210825371699451563113773997927513662250973434033457218147159718559680128988372807881157733307663819929521600172848544808407814719896218553423206468783343666816224429555196273902261756821797374067403573755753102911185059098838414287978928085036926136685757877203386127546375733354495288684491395000017652138055254112373445569592706700205844092969083407220737849531618764599921531866581169561214932175014763055826216291706779510211676427027595429142991674183047807119594679800339568916248677823961393966276050302613159789598604694349796480526812359841122753744103975162243214489520872665825676793618560305472086249453352113917068115571111709391668981319915328658686944410094327943176104404825174577749109293832750737850611710087227842721905359602130247420678451640367369371592679875577674283796349993596250015489509124180229013059606644769281081222761789987191494398341175633839710899139149158703221243422760038218818350363870093890902962592058870775671640130581005051539991116142524282626279100177069841944979539719196028169369585228846346091222824420878937697744426284098830460567757801952852227052331782588290312602780432421606738478694239183918575385995511617031022287444405631397673984713243886913044464039976281330855223088456264668441589485233718751218434777362490587230125412264231331371909584378955417710805914537926987504395928232074087304973557372435117417974698622081319819750421541307662231727094351021584122665414159580344171315997760566226189976861896196681848190251970664979796793606268109502640327620770949047962912792198794387722392197426420573395244188424745941770521748339025672194156097477937120252049341366651215772757345043800536473140857011144552266964114042080926572833043855974412319525669982600652086853903662285164205110640922810993247936924901248355311408977235150750374407504252516279530868239854801973014705598076439111463314723339570870073437080418995962897618065160991275838397097135618863454390867827893442592279187397075852943547624367199420388246874057183468990628714947836596817325306599753216074800264046101940825404586138000893497540166984260646702582520221891474963282080599737953114422251074663497699423275844762267466713035448281168881735638326093393582238735563040822280267448131391081090819412552987548262694600138694522841635336193968706904480594098863647600793883787023008961537665565093557053172080665062207349467890065729556343006445179527463898166180839004206657006726527385758118446483424686336100334378138600771621755402952675320847991960143650522079341700917965826945179894389988287195865403658610438494004089720025152544426234128308450498549373117926634354259998515262028312495958699044457727515173351827689196731050614702390591290098201083613003156812728774655074870541162995739287538812431853027435172286720103065430669457838493928138415572863794121420168847015760568085654551045044073190885106540830441240254989344383454008649851910200770651751243438129794677325720107002670978740565079451457563232847843001945423934533038770389293603154912164912777848630823313691050747404666581539268345222375354073279730554255362970710311651592429033232322000742007031203644639380934466171729159959662823106569165585051242395962776745780559239688051315490818727325705777228834442717010413754652592016531615405003532870773936465821031243071334628583409384594953490130023571329773427745602963414203348649659750128018193279412112092530968802297045220613423483058075591902106068929937459531715557672822765216006215951033896673421324504880698033417624065072095760483855062044157221133829203450053266778446806848191928011438943467358358201940988754907464144701833103297646412180707173423498451722266071110326127587733008759556353361296068044999033105851823273398006381918484363028513974381472452523173501515434908356951888023135983286821864600222035918718985683138246362744628290105049860064482386853368967028527891184368353477188973289614785417715217394888880742059652617374370148780052597565380436310257026927810830948722129229443027821805655338593937649553850850535194832045571322586910462529226561719560178704772465487308664612604242911903880595864653629096662100363505511517613948416767020699919014024424961986756271526481882721785984123533967274493779832625883955187448559959402212100011275363719453831113840096574062272836282832412784703464054503938038715359718143687162241560831270800219789295310125317230708965086800090697056518442910600907569013028429859123849605321351783151396410237162809449507097206645885190799952903589284918385335018535433756575823028893514057006990676767811734577583448810067775528702650983211388714022689892463967744278398516056514363578414818710252818543778760529104509142714505084126627637738921400379387262144604437501812875596917741972104349536041274046434235247794911835394483413671640276369368189658019556752576661719605069216824370000190284191169275528569984120235569448991816022208769796366962551995537120461402362488339587808496332031675656337641271481004011018993954459384497469774023973435996097121785241819293060918072409830523775117863854239170400584376910335256793919070913051967592871116592711014790755549006992980548575820347612048076847902193880844213872745133663441283577759329078363885891931364173845108252273240191150321806651517068350421566468833034568271043525329339902902293802978932971104755098563520449857351831284064126546966633762934046144380542779402199188175357930256517311756897877280235987314711140637254487263267597764371122751923952534302122612469576392839259013706122516461961160753216404744225609552525411920601933516146041558184088035716528805295729976923074162174564750423792660277757126326906337927822921082607020872608690426907048928041295909693490864154941560464659130548274136217505247725716308009730589065106852381553873983406999499797872535460523959439159168537091021403677310644033287413702085046730379453770908532884321779323258653774242417685976282864560284976591561334384519244351688598127041326125835824594066091185431018120144414070353747652643228651362546974051282264637375627039142318845932785872683913222303434568051625586959380113123476147514944510578405248074415105573973384438725573600459670863254962132482016434122816074554603101809712229825005230171471927422411940146540453043198002481057377467758766729540672417454325576098927492752753806838595863320696503702084433951177047043080496194031147746256282623374303024365898050398084148726135198684283127677684841277141040421987308906687158273162277221461993216106158681876744801614461189817551316442969440198439408064516279646136833408564387800276006555643925796752657097337715580336866050497646647731053844608651005005873348859999150296720824270254202906297989202790419659531267350149985821768090437376031380148787388903937622506517557443079888413416781969043646369534457958053887590491815174894089449427513012624263446363158597573087470774894578123389000304047308523037705981671004503956181638530056304651653038225257110728923261184521749924385727860970686028096355410878643236033494025996328668267523026013396382731343479568248601770156577574741688464842252528619609604197147564325583755366641464042907132259457731268514002530455490216544766946154839811300579307768635817833996715966933252134242508703401939529574966635630273322943541898482737918075970328588786182381805061289408992949878775331349524457332949592101997815413845913406203124807716499222520576360771870858522946447385861084914562510784266836988693400500254653372137765342347902331020721960463536695841739783146310181127457049007965245141547381877832886200777602035907378402762794514676297539214809900118487847385574272408171986324099476516469035723591097289724272937984682296644881278128887500806878776779635661282246224333250022069344673311503414716840672281980398798585798761270035784283429087322771490200665219159313802685377905277813409359654961369178071217305287078235473255633366554368769267486908780917554873036036929370506428341696697485036334804837969375603914738296174647261488710382945880257858618401448877592813639878767017182441592457754094185222079772244800872395513223994810393850795857428579188326356397843277359327616625488004977612268220994845674198777137396940434594575712868960774485206057349104635581596643049301858393594203987904322705895880069978161666725357336987362093634667932195303876945774781950183259033736958531681351014498288258745155979199176187164068495829262445116322212498914986036685593572864690687099288576145102684031138926185244588982054636178851082114425900614201161259559535913580728506913342223113708208987396161545018481321938732230709159473355689768086945364405993678525090869868023581129185215701140372348499071536002382181077382342038448127263175665354515875074774677302583413381629067185019403836350188173739851888479276489891492159957985476572766002410517930668368650696949438895664863509901911870938620639615849972911687330476709190497108878761888606745270493675597451194251363868076041708753570092580819800746228020260277469690099942260128457033757654703686013191140007603860041685044802373833798107878896849619781561628587040114601712416927125173536010292728795222403090948871396944049246571781883649694281272276064130219058547875979465971791274490215564579469258568642862146811024557432834622558238323782729054749908232189136861767605799747335948322079446709083988015798953095177802663559876469295747255785081715795475815322101325390009533349169934144945460576342842380175849813405735037964778139022664157716241885501401800904239411858813667147770009252597113314707308218806261480041231900514919826312091296766117401256905209365977820047037299234133656799701558810459844571309237488838326417658680909613675291122850727847078380415296752792704191468934381123024190603192762086781321200779605260835940176096936208517612865127862392204750004191999120072151971737093852511573105562498796914879362330875567343337027011791916366489384802917308457504664856267030879724844576330441982645477762891709577413573480101087668471655921278941115045604103404142291649985538455870632242450783117148328877122994926301186291267593344980068995080892018776345347295053536768105511650853705368829216893006226200371202834082068989236614466248999988650479062163744074856613325451769232043792893265263837423726325263181665583015175330046299336681693463271232555859023061314943631101110078201242651751927849233410932577251865934674976661769949658147098132628800962200211636107710476540523097008112602518431959751915386585378530721999072748276245132048418870620164684638493756980812452871348339807985747169959056286772413277979512027338656144956205520294962219466169262909148582096967857043459882180057838309023619358140756799712691638239114115144713892359369164284220831729837620335775632972061184794527140987794617609932359316881955100023377490885565960140738466895211441135769039192847672850558967820143998258235303116485046822730183882639405187513397462319301224915958353887366982207030386975070484493731290601818730541190759210277296463615212106419546572408681256324085089859295026162331364211773859418513336975961760902148396266014142507788110925161902813088817746370408481026717562708387521816968767653725455220893311562377503092707796910285829476289393335246839568027334651089880214291774314753937719486063436375723903885553943303269134385282921752947329552322635234742586823515175031373947668332375972264530100673206641238903210616903271139546631022402144371613031284122557617511189142234767632847522087954212605758837484101163455326827458397538016572459711224499631647828862250301281268092762577072983588675528085515330187346909840780664644410468306146968109890778248916516542793457242467296667074215002278522290948257267276860247631083104218505335632684023923781032159634338139265239710103940007463657169585601567286042557064507610073573629818380509824725243603172602842481911393680175139955454274767262779350307529645589255919379075244237153291508649934810209535845062624686554914897829060079634114061510557066332169771602034264447174618725379112299517142549631956662269121146711179086446908030566788264904695372043134534389336352838873838877555395582912411640462638016134379649632777098577099358935383334893120126758982318171672327906947098555671548473400676595863550708138279043864128479220888623931139429682785989196997605257654406898214662910381096836501664628826777625138547429154157762094924956189149119829600541380207564498379210370290195122045833813239249849363810785370962907965809095953056801374072943041780465181280241284719386024530568077590507963547550051330770246401709875029153414204388582318963963886193916380861538582835902450566802776270121649878081340194639910960320671006019547133897244552686844009804686094038971812009841284580515652908148859002229215539545395705454750359497065133430253834101551560480119482054273606544679822702512969836717295590848075469122243694817718105132613765301056829574667075430112204220127323738892319966331742086635464311481744095628228285999517346939849776281529641951871403238860096998533854638496913689043804957304621880100179705257247765417643025231975364089903187962209822160340848939653985635417040214182598335507196443046197067330894711921279918726388836071577332230918611360581755747228198422162983401831671186728521181892534589598845054055990233825750464139456719253441968695564394174373545901212964479066856216869960801232300778110192020713816882268928058326968928874400060056325549543084863624588525199963476037035940085303416344857355205453012299289526121332328685133374345082558945902707994428050116726615463430720743316041626602436979804551005373205532983930357904559161467238342665747260052459793413551102798256636317747553838474533710214036919921900612191297345696280108155171685015302428063359354694712937088026438819201599680540116440208948297733000776597737947434023711062720437040438544452993447134605842895955216985291440024127557476185190986121913506829545249699474257790231995766327364941668615129361939935054201485244032276058871050664322160094845806948663505795004812535140497537176143456638265633404733948576676016414226499398633121960675950315415382573734954618498255237220157263414887216919712176453975909156348785176524243019862563807989431903461909906777325450329036115333556984822955733265479384480907718325136299318120746013192036478310226835183573862660627165553671542596999773229006516789929377869825548146478902118491577214620506323911125464162180720059545515368375011656098233669684233127530705523004030781027429931103862868891490880987699027150580453039319933504811975684849692265173868424975690143434902685209292403125190645672314170333077759387437889166437238158222366979724831525035815851422827247042258611814593523456506034538394412772670584192903826240153964689562764138570860568762778245525860789362055513972328780333256451433739054815331256727629291168367776949209237698403395211321343164822712427805495714250001193850784070985630141401822486020789074795181216682824288729177352924287241317097396642892906153451315034508391263274497425841792631678662162899921857795100488257359739466961184696037761537986452244967643196977171338212736820483965111835050447731724279684871096747009753472083832478949270940881441833074051006464486572612440059005293977123066051735243648965703193758635786047830951354103726831638307858561433685560778134947381748625735075309752944555417440692601181436283313523287749499182628000246972411886407418247446964864807380202305416539293817661513805539187822223850881498556147959283044385779989699204222626474404488464040577545358144373959961265101341478436633378778255655281535229385079141616469360387612373370062502482950245252477489239383690653437473456337230535172643159453919656504216324161170577976314565107281232187623237843596205813782520630116501487328488134213182483840443279866048967324714786726248220622684204862902274549876596083213873277959120674801117220470300960668176358795133459070557855779562839938371076405723163499325407146907726371864591199065277212251222693888977317787438961919468987646780838866707155722838624501090805869579991944311688527097046729086131556546992061558312930943774893985341901723016497961328202102462523923128113816655827856299170107233194057269925484198954714761862218995221591346128458063712208406456507740386085973596337994251743484340632434989203743154621423953552256454002321606148596886329848438712552050741212748113807717232627293277921651887542512865656614832507780123597232911546002956036656529085631970723962550034908013911908959964732592901018562067272516995057763776645784740994334661402333900049340847004360950278113781855762215744924972264332332885923375654037694524586370057113567600785736550471146105400136077149504008421367039555869787858464560838440740877107140308872775185464139503482390424278291871214190851548691934355392758198782498061798363976580774080996833904877568295722849827712099160734687113566535306361845666190023563940968957546902312309450173358677601861439176137506495640404336166297883136555114005991397148616022143757312587480551252681013750443169179302189632783010036886449887391749000509288404280584214227258574042030563531720307590323637254598727219280022571679574763275586222653030956776418590716130016394144308112037533920732890737494217018029704528695291403166559186213060586482518472606322438362853431869392778650025017609134114942864933966633098775139728192215068677350455920969538734179146502235817932182986328957042787111870215590944958020341824549073076315099552146152145038365613279956359901464999546303955326096227912133161860991537677548925128558126829455713561909573606910489791013961304803600154008903542152761760510264671613095773361654164453332732689061395710043746304398307423272809087670442914565304720349745063136793198273040570460959451305316441963790854361147958757975634731474450549425368277997635561353886073157493188609766909486518178776127698504045450565147721129976772729332798137142001037943160060610235667517645739236276588157690227865616319552340755544316479368663625332519485897494539607240639599766273928375018270252181980517296567095112843752087792839222313089607619298836695205730596249657873382367835126981613078532241624485215118037871972186536243431850638587312612069508240653135736330844099196679211786433366377766138967210639168308250083884659460762480216355219514931265581510395301525953583531663177486516301703968014227949682920591620064617955714220327455301096334973308005682555014180400387591176117953878270197532080876638796430502642679297004818011283874280644833090238734347118084181521622056158259995167281938214992617574468862076073161720997402173133716544223045635121238562779914475242834613152745846368611050867675525540602716284014022364531952166492095213832938440519127525983550377191081514761754971748520338156175633583434160961846764754595944460436702977290156844563414818076076931909943512096417045896005542835140886591871372244200100910327881152130316525181030272140484029332768569894787111404598143327177485818328314209048549542797117453725822133708159187335133888634832435114418946420825587202953883265006821919390911544123001378597927820676941971226157927501844686705498251482581147466912150683052453548090561879426798545619626643188183507518301840842162520915752116117079778924198324389927107127949891007971236982445170766390948158654122067851275464456015499185140490522916904687907485944653884808205492635534835394641966788933716863491767282462334868004442727868296357451113941648187520950262784422312754791263284284571045123404089032783832839496233821201261619920781770653653492056787079532389572066090020664791921015343362750246880419196673105394042274511266312704120526587965630697305141051456647307874512645739514892317397709514841483247827514985415385217016902449017629211123935337632907284918598860543284110815902888774634286203009014922699476703211248072679086216086008703047566758235307518716341312875483357913040852358947655105866429364289695713283765269050897993704401083642514550349186297031813098723791090771205501818585467059172902119647377141313666835533456557168944743121284339071792421605813073757082627662522716491926823313757685873928235491623518629240169148988848062113357057891822509189501625927667889144418771939660482819764286676461032829492164040546231525450391221289480432004662841136541995907943045366792450888393622167506444952861487029054128204885972804552417935301039276781781960673546091908600749054867517426350162480494857868569178204721326853134034947004612615402454733794468243100227885916775414020424888973810932376203263430291815400109124279510453142072883891019840391784388805002352261865581798556650849033168766334332742431675220890876501541146886239661237894802373518303331618392381237739608570222552671152617874408816823622530740703615119771916010370670309101981071375704152590692703684226119149460089018730960252994525548586438963439071233875842668119193177257893489580488103563228036714510895237743512494064931658031246389949989141168503271963920760397157093014539436627778307945594711252359157475873192622793912181142088942843231309359636802644943841030247274893393503590984069602376999389333150861803871403558330461797809223660650975872417453130171705035042525251536475131342186462089960003956888486204952194579759544020763680327273297899569751541604732809086052605756832449527851338247723333121904560642707414143486728752990558685084033804265814199941931485704033757927100531489076881994216157990927586135546185282173633265303124845767321104252573566891211648918806174640602503382386873449421546203291759283749161014217887584435767928916212040538376227942478457142172038254361840148364631731807380956552484883548766858668129057978022481869626384168007472531433673907384157930182863833021523392041899957512699752686747491332754226850463451764743646452458140198707469835818233575326414938403006405452109423096150653856968166916460257030744248246997269326806404916231237491027534983639466862735180525212342929460134028222084419845880738623898564147612130708835111131260045243183562842359456251510867718071708845219895769462521713606712530549216095231086212559272645181021685488785854980541825798327471379005886181962882176831200399797416774581148467133766419887087413606338140505466599418010153890805984129156712980251802195904931217385902732496168513926473837648136733977011301668726232366703309188986474609904747482606636266770402698030654917046896815132524711335616787153551792265088941742029893392642057862366245663309335085839022816162678248894639275991130497439935550207075287298329205922574330854377429560828522379346044799629352655690665436877260185254338964801048811387212076681430160607839421795367444152245526653774978355149833576314713363371844356319627939702479348908119779135771660297148977191834506998566655959932929759319864719879004599284706619867527703399213059129988259264061459285662319729884593255043719669028682215356309439038233728595503657255772715553638791735276475772908425382230932718266710969609876059162184930056453926031829395235335939907011460873818683138862842570655506970031547676024417476498964631244716079379827982965094510616906724317824829161150668333010832165398269216118753487844461825029544546338799055679583168801163541324831087142583445802580523028032037271850867104538748323452339898151010433238740467391009997615291425638029417706027630230826920283830094255125692752409151852371344678576953940896194188984311681805867865020862044905649968461971804985632224136694659696969413523915461229419391384972591264140454964870069318293316075269079600112275677475056270094208265656215775428208363278694159939689805492300388649318673968425686644137413970713456685609008800562569630707894133268657845724161529495114070645918384148747578781188674716799314486490158582897228839301988839519270349955558763773599065837310052076890843880517686604242131550000341880595657303430570011008657052054573250106516555484883955518001004290759098201364968244162722050698145821783689364419672294910005553249289088755516965673750417140850362761156081520437248315341886668120962238032219695190812619208360722845633968474573454412865154367315683030404145684519307044160681573308207421041297295720704289923873530674643321353218292850432371578660726941619338991343522046131266816999480308389327963411256715487656150475419796642144466600702452382556072195140657143597490538262012936697338572271995843285388704697282919392448303862152814483347225804822629450727513123788472662131852659931945341815621658470236208170513903867472988222462721135360786600599836294938640325720357166131265586455363983098497088356520002676908333959604537987610853156423496809517666539694515821685941849400712515539973616484826992068396089355408520003124935563723913905771211098112367494046513631043049505600293193102000877825222875559907319621581247055257106617088356125907604724853840041409065663007901162236778916787224303691645934329008871609102141682973650238962823983661939687750411653481614396959089771112160809137075994577934573614455683315206315478155763448812048317620599606050343736030577447944876328064859701995423862048444839347885570347384816388763432174042190411127958880189579810023278638763215964871918642600496269189569449566189626318492360861529860312477854730856377492005087127809684095881666942560038226024127346829540662728157915334671744324422600883728518640594370519192208825802443108440709010682265206332195476153612105653440873939888325682974012721030136664094647447471051992160094493798478310764670750160525261736943251281665241495527994752597892865022610840781418080689241708846579165108603449822204889353343259031682183087788394018393449305348006021807220851699236439594009633507327552373915903257100323453674529664341866516472633607189772921356519016864327339091757072063836376081205546000500900716004625434910420521740623819969403825861187564601567545196603110329235277098626796430055847122812162326899308884479313461523599597992468595556115315997924936514431929900678301216320973056560778224787155361757438250014613683050081070146496987827219579596942244986167253082025260843568602639908300509569466639600556523223453429348762603588353573536705178858482656850864184613106859339653748650078203486910253766423603839471296602424521291152468089057334651219171133344580901753343777652490788600672041049887114897571907499978511862899321118838279920333751512240721007053936316979984094183327412410865979649574459872209576070688037785397849245803795309065514009736073454899422874985571648498475915552519724086290949261683228911679883184639328276750600730393822937119418031910758632492323660362181416607942044782788778948493490654679067659351437606347898191510347073212298745270171785013655060885921436792770501413910230963954972218091101769362069845593349137797582666509599095671391943714356541025489548087258750822070396476520246513994794341933752949146890217229507711793048621076902289388326123321177389223014471595297109491754281139940685910023049879713405062897122108150173500762402158880671448264197082375132167911488213737548155993947838869292252505030241845837709710100632450954063275532186818518918874146253026474206515985094758182506163289042988967780102428274919337915864552609097761924272022615753837779829075360023222999570286783817837170519409310126760613818973106944325627803656734982644312547869402443553360102921963824449804346528252761693472125625751025024259877975208030319225422246418401455730879508418917547415581902500178464674167858508949816608898583404857298226774847181653634858245192668752597872263634678705026010456554126906062752265667601890884176327788395020507801100918334572440850009467881214891898362481178452462495142733056675997826257403417189912402065724587016708332071004891363441109199523221529708216439793927846242925986564011120342726644181487651989209281348844879020690208657790842691979530106672103222420935077355827043936306866212620468456620770082006581568452688525114292170896744904966973248793115950585070859483110945202206672527724813652678027405836515686979196322211526225607459259200015094189291728922624959906738591298286732635037907273467174862371274854647871031266890345281206417877620542211101696186890104331494751419061096729957091471067385777084352584462655653964879450830389313646427614440496796535702939552160037150342858510723703025720662858557586351162500371963015858605526072847447665846554755738137789134001901703600982747986136001794994595293973826659460997754312929088337691229541660758545341176439644631589811100505478076723408046423740150292680032877285957988104660182854147459494296696298865762842488966982515495202071062857099227223587546693333033825403868652410706916433578061171448941851988979700572201718823185586827179995690149223922709800431271520166259520179573118922877584546741050752409993962455033534671033529172399872231765508838892076480821479137494725254956501466835015838825702280376663652630099670106129591317304959118155396492808680668430404756756621609614094826711349532451643253662083013229526670146910068344489783431168463074753329531617407513407125778175807450095836520176945806145001393971014060963095342435250681404668090329856929450375115976763639256224937836835394702757940295119455250307610172627663267040983512633447893851779104204363449525319447011300378607975871846025209750347274407692295090964442273397208598694173421491671550654737308919425737993307135720893487187529974719151859586001087515072069348396448213229516012159876655862185981658003861868677326031562794101962165539713579055298734716486156242660516812848433932921884156716038812246218122596395803780708902475615182859408915349034309610122507905517930164210256368633744648750989700532399390320445743332016089854236197692343007400511477209414694867397352936946153697461424411761660795625870837361019321516798529052427479548874724061142004038670419215118852101820927054180593329753955371248105940762444052988607355448177052381376566365090807047753990129592936298334596363375912944973060863988461570412073672956141458217037572878134078960950147045462255400108910458203679097305454162742740168793073154707699331513504999799039890128090068935518847756889972983046485280289603211580544512299695732319670214414339355670463828792120945727385328683467130248533632408722319598939102064078940681276305192049320113641042693438835356491096949453312293227996252557114073566478006625444440055075018343877848271961035737070511871350926563100821408896478708788774713496857954686072067160645176962889957780600207826657990782638706028080084984918411266272062966043524626032788215726563084549290340878445198529260451424553503646403476427179962814544650700242100546684211289082343373413651124308889018425044480717803911652940372638272005710729213383228117280573591690926819171072945022108371011287683739818751899262781987271859942549529033323820963852405030574181935880712093262194704605046185424080537999533602629171878506759192152176830204933392750323832606278533028699454264806854158056687062301144474159049821394827658542668493172654529204128126488614255900473867468484954526130183156734203046170297435173948436835611180670027758948901301069708864224806398403667031868896385559348630343439086431992664693253797388527173593370917746571362896945166355184696630318647442020930922203030817662764093428224786562136604455485665047363670340569595509438449095090487772724862317508783299713864005600921338523148927211228442856867514657232841970197405802580497052469227625471761078114888775363989354154005884382743154687126471899451102422152677607865744685494659705687664416598664785015682705286954271349242670111156749785091858235037932078636021050620406168732168216928328042346077115037207589133051742267792242674027841831041457888427723124688538637726701397581660776385183065144604255346633048845235094808414744420654014001661538907631477621202809248101940320200580657251280570651208130336781437108411642887402789931334861370476115621556962727095257563725574501226679392852092090557649577943091726108909993570290695912984994648774621054153729217143618258513770748220783496633113974919730651188148554292558949652883159966722751472932395125149214776756600792556396372090331596304619177424406882442114955863773604906584488911887460795135525002496450804057709305986058752247711253434308180586806920242123173789679226844977618800204625686982586660129780082362632037685918614439184675007425378571202242154578880733016185603663298099809801237551709816898648176934528768062626084257630967767600915907959740991969746240540773741641644236422558192918714017304805796204839012282812516619363722186602352413558993010485023880205289309242100182984233875277916603453893621094624756898199239822615660625507270214492499145695234150339787282157658458825579957880070425847130172936664939048885627024424873360881042387227963447417663159935428157926149583318377425748543094534122570818232836380027479412993213792839857828902765403055081691925408567047103423208438788799709903199799702934072088771908623787525723354589189024077505002499701315042276071985539158672278258883717881777527861252038379773409006507788234110248050825521770321183492108148179279169140089022558896864873087082435684240464428114655085950100660591718696772487084809389752261133334690854805106682583206998314378837492831741252738593565068813288820064840991551203604896390724493514295811596914788057665602322950382537823201759539983133142534394684340953720768732217223179000351246341279108413108977184711974345574496392784173743521637191957115413526638735646735775782893371558426545301936248662675762404357636579161332228078639954553383698735233582453170659122565481630603354730673623379214797868490562541827280254219785959775261893096529358025274700912021692622836452359823925226846949832366383980432169722520977111440118078218216899438161712285239180752896964681283280915730480559551495559482059976583340302734876732471430504971670345280665971373046480810944415008341562131424120130440965176145445902496097428936018736534337428603713054933953460369897219330457597496517341215760946079721442840673772446843634938086086117227378334907623173309672590637167360199109588414688291345959745410924760883760278424888011900859692188305209378816208639716926488970716769036852000332212227678839606656714203416498484243866745807069856494308467084958889746873864048165728198232649001876720747612570017850487094591511644848617647245544508807095773606886367959673114133824817574124473536320765024542785479383892480161290629951902994592704600185031128895017047781587284171932147003919607470714339443465046958762969342320772013126240295308514186789380686541222373678066126407271971581111076897339017724468946674516309340685670347326888623271621342725834935274414866950799944934549501127322031269331469621190153368925801604648842409396189629404931419441133107340860857573487868407840536161160889864683525719304719095797458616125317083970602086194543576668464465314970518536892199934073462815165639264773156099041038844037363815343963338831553553729327488405539500874164815602389750146205682489766604405477239967471208332634206464838775855409447362427447077017368874901479614136230549760357046906580783064304835286691022693324999466567779985869778810304663587789395296590246519958818884120925929177442072206287294077004738989939884792132155770930654227953706081892819953424731767893887326664648409502017665875806402473648209742117485408386200901390956210188207314032267449553744039752553624473900162151653815858937887235564745423863078044561871425692407565894145707045561606602137296369361230913520785027944880911397544466427647457211013008538472109139236771920743077679668421176088033672280038820000603775551792798254414116720177143335908599989171468358010839003880922640168974878012435973838621598118957044763601467391930335543577943190443543259457517498408489836344248149399732959896041473837928661082472486407625600225813285034797331375155876147803311205548791407951637973427363891425256642201145740216659008182848951772043553552272982377267666557602877282239625115545684696935830500354293446799866474704015724409662215199395510461094617581703787231726889817915187892693890056472034590093711158907591147556819578154235357380107619988328341915622509186726689345501318603448503774726424470252811495191352651785110788426953898737293794925036609311111003412946678034108251029901635170029697444584673491032213921935684651581508707929213391901278878612408135421935453736334408982671585185584100583102024981719273149361545001903096206732554297234894315346684723487717641043803567117159602166629432885426765724487598914950293672516976317914306930271114170419294607099056857561417330043997860386300982264048964352468809183066346563139843576608169561529811276227385654412113235996804201589419320181517010049404885414903009326866856120810887595124794750042664445458740854908451074436217332581045346427621213399654163461094796225711125194075118773811849539208138563830872951160366368041932639398177785742157180246791014903089267589262330014112366775733558694378205374998554484595870812661186918950474617106133410474141240667761639877884131208958422281615984709865662747006489019470063354678125505625010268988436520678213407611234966841326368007377911032446881149614103699398766370414081943776247957350318081107327825500414897328741232638830317117911344476251293968200729590115910685907962029026680131272344803416542156474204365377778809329914028899984499004110642119718906100297818652666197551801830495683669413622852046437734004867473476087805333360083212310184872671279541837000463274410522698833218921552538250863149198708825211104568302809560940458455357574257062735047319166328591645496455552957382140162886548779339320231791492976741715268569616570255049423031473676165319932521598497680736408055884704775995430135909007093532159915228345292673392301148843386089567128479677610817623953653308303480951946446338338758746292177968097096934304507022680425940004938688542269724404551981613284832446787286548343888100148498925368968636787598220056746313641104428768138798314005395735828562603309742571424461657025846995159416416853036659823420443124548795354545966981605235476925417720225384455832396424260087112784972524005677764220905946890122949241421321426462626144868863170105294173117885176511017583082349776007197215580045807945422353021867603726731984435021020555529416623113150608248999876208401159097155383988938204312500494639099260971382821580390072101084017145384557730433697078829896560973627569688067586409884237626643669683931169980859622595514705686528795278248182428100947482313914523643595204750203168383316356031786895103278324439252794932510432112750010674145341743009534831900589582131562523027800646907415400962911440194964757134438810533539084567157372205740208567308484458062098536331397863790568170673592317448425497352235278615407344766754249180591841582231885065115832829023842191723556940616310270657102674181121525165519706762815923428140019412968589008148171761708497972366191939490213289783864784899036355592762841083339474622914107561587435971015140339550204025053034493132977711101469405427292976055137468636652835152072773084822319627447250146238924327755861632717685823629254908852649799836345093093601374051423643230719590311450141642046792191535240738254213411714206975773978370483547332803643030918030570369057801057321324893264083587487951990564089606907958426080497159340604560215885080425898458280708750199680555617540294765020334997356098236066876204937213142628834099953430989741778248693259285664898144649601572360097534859936607647447719636169915895009297483112652404820884760232039079729042346972050731033300116371598711449277061655603660161542465301726241458285815400587355247352249269078172037212408479850809162894438070998364107036691674770478625626863134819490141573974303981048737626314537327628608617616674947969427055598409690211524048302218152520292041083540559852278366658384223543360589101603072366722042733730233830547344537274413031361788481972294356477239802998337910569255338462988296610676953001070739129049883829243768135693144897865101694242007034677945630586270523735519144520440824820055205663989552730972333430366385235719093250931236184917913487500717022710428283158636827080781301419450670399370539488349404857071142954531384901051854444277397448218229299034632518095923321172960035483480557286766267709351610493068445716947106103645784254081600757518444639427238156810959248539249879628631571718066955606607658722811272093776325835904263469888941796031792354571622600387704227392942109670629200139834442539183936356264841700791810691917152506600255759407322468295084504216167754620176782334378283962004167645339126860201385086879017294786763916100855745484927831750052536195962721169606409050326946083063516380265222711632750076334369161157602700305131176899883112677459717621697717729562144524671423517987573318164396395259445707565379970965588546712974124932363995324701029500705038797416989255753775414555508327096820338634612263336408344174176851773724075357379171728095431462795677480004816674320870705989677892749603646632599462486298156131597418122110382933026493925313257909920737967047238745821103852128626544072483650131122409897892281217744949017222455485961135822265420127096402491207161180364966541211832055209276355863251459047164600080373525927920697083857527157572739739019436729242488089660071126166654782997795721181993878864632747306883790847460285732690158317104469753837404983941842524917381376136555565886465190361311998919095606149243134996678318088484273269246163204043882735886354819771811722848159001562466237248595400023628274441061293466552497135720947559789214823266131814892606477949951121809422838466061559879946992055956997565355670397417819711505888833657824147873045682214848248143244748609904278170332300637019462987589957959418187804274881674638211960612253690816041463518777146237425125065944224516358055754767621359949127524382916808457153267381710960917385741879056065581308953684757909862569388311091599415963427730660303032083822844192199036619918781225720592856071657013914690232871302249922726955487084369332883488490026499937138185148452321068755758393904079237119662001945619927283740854857394819089759392926705708779820074988816666669999387473868812168686580014938384946004595688161399160163709156980120179598438950504494044437189487348159124208929343811037313595885936662590233225035279692325505530357508469736276843233798384718252719185233337456632039553714750110320176194870906830754790106886168889202203820792089665512534165482627979579997698413638046776315412276631931361690291381081694467461580238881694859597105034694718609329889021001412302995436681179257716361907990647974823369172748862507894507276750914789796406888567569928985899343312105560101070339573721760858694167517717650331834937911077903769307441894097018801723021852860743363173657920100581074842804838908954313928065694030577010320623832780314077035851549472465308046805080295668444838825406085914855274208931384110992946979575887648323333066682240981623659242700235411745787267650889375564475260897142990778899399812842075442334397125736647297002163726442779125646535973437733844672151081432334479353893550167245343512696903655812613167081401755863644086954894833800285242882527782711067290706688665575285069134766351078258479640708317478553101912916780278015809716344622029301011460911337665853966499279252907678763848883254870809113483221041920063803442209526979154751284794904902299815238238861198628117647060218098543345010675241012266208956910579181869469618570976693668530643303520128777893801657057817266375220309525702980874777387849008128238788185628337970215303212825484708998545204188291527081378955195718364888725251300539091550395374021057794099303769402483105877309159390653229969418411106181112093787455059196494852532282608442485174868614112269952504443133459661514988868279510854707510645593709896508537378677759802401192258005290017780523958683634411344141742153840488166355848899157516573810565174979568774829408002898939507526432474510557007252057073911271208474289255556526127900284735564673291652800165704571886203648612557171894353216985479930159030088555872670218049529068904711169555997415085365261091919941136062172840929036898712975528908148297610131588999923617648342790428751441951304976222667449323526714562405379261410385997777541016865983632138460058619751338130371158358886338834882994377169403076238101223327479711368963926364540373113818260028034235350031844796600992200246467498386289145500563637982543364522450400762123614876122516006470888656264487762035883081183903275606821772463604986145198400659009968043057559895511111268931969354733771641821358422743705402053989879615459248911219602902819766878877281848832587613465350626681037674168579870720161667283035909100470413814084805201153911973626199962492246074389640440873421908324249323135064425188249111649765963150528605487035815982904125364127055932773847684866225461895979523943523635178026683163631300153983422164678926879156744090849200995259856874480206404745689859611312984048031283833929709078467793367038387976265821316422163520448454209168662880573878227581297309783353186500636718357939920837453954395279842360568020716740745980001006401139225520404348197754480611928557163173113424795709815910864206192983470010195247125547183959771538231550526521231363702650122049372891457848111127483061773479422115410724037880682495356656757890087046302375523587292175852432352673152535776714515027292348127058055441902528719759346289853896353649576247317432787530034180653198780047879511796585002471421280514043528096011509952749400381308578816980552817226069319002781304296433267447387354996170985077229227868653695704431661433587838712192983982810894770694623553123859590342460989353166557363137587265751439015757232032133255917322358650201174547242853269651092186078118909503195198295730506398287382785867294661792843512112703949194537886854183177022424273532432385832473752958229923471935243320822104564310758225985573438019445548691983856205254692839386487749131097629589687679584217979293577976470767237522079220348553826484450213499350349113854820342061717071232272064336056655746388002090157692538745509130452359044807940992593665106946539454621845422509129616490507198751339371993796920807942113376120036951402922513389981335211191153525224457668717037081091411256585236219166115880468683539699690828644977876687129688460919385463742852010385196346758276307554887954345906460122832569961722430152080289807921757538377132610263180591816997975149218888924893569798717788599028727531415856571481014846688278644110908720925955688947229646619727778180489778849303173948148993153648508655121213284439792695567027399813007746795076391415803923364655902587505777677489669639200303083610332017714970440279970450525656732886982239276818475759198859595386277518382607987860111089110250439955057041678468274552802457158097691483057691670484759135845018007626950016596382274030982702406286265194979963393250618268736711851663108112544245945998365036033084284078848742415623675083048752964248728301476415508589558136078428182937151304906510007075217088643499754463581394453831775433942623321736756819882587107087338554174454790250540866966210823939350434730776445207190171089914549847487594711269478793203897523598784756495312976542633216949066375017123228371152179668324310367738437502167390229710419304039771691834180901146157244799459565890250478868904888335372266858656975887210700363346045270172445737164691020574905356465152284633404631919939226152390828931488738012486326525252942938658669933726198520832963263173432240814046720364996866445578086895753293547152519952447953652082959547002754734739047008174189364238374962559532482615512216130482389603938777930131315534527300217162759585227040732078410857239532728050166568232235532816967896752321260271716911498067900559028817020882308795198716376506026710849076888977234083072473953503645268711519867745126630039865015856692886615876566175385977939511224734235714057935541582221743116738297125435210824647024022332487841265760788744553068948087625177986710550002741037933586243832372877968580375858396152583676750811643965900120432869699100928263705843838408153525661268586738880061337246033122269896644301322178747436574914801206578633969836380634461677596639664747676959314996122940915380200428921055870775583819055977946222574643474932944256784550343125021250983750581364009857536087858888284420817349032342187256196947755712408172916346035991780279385959886671695601669062465083797614933709366492254838119897421710801528959526293978962363782699954353112892617433971711336694945321538508505822247225910751074131800193310833693761450120302537410952304269731430429426678875972567171328508643986221416398566787017092104283352416220588297636795108922522507016625028404408385926081315230519191359273969135095507485829241553972945002613567215651042343313168876756132421256291591389032940246353696512407335212668330237387291528679685088474901654830788433727202688327349519705334027762598800835946184393312981216920901655571209223104003122172616735101207093856183205619419806249360188212720559821742703300755486128465226436728068792418777778132658528154475359181819649506342622227786321727128149703803374097279137025917396602780301760013916786648961536317934283959766305969641018238434485364030132178030770077242032448528309437508162062552951276005508880129330659211299638949130233904223239602869839171252675825766146516253067356369186267851847783000654711095989845967623825572061428587081302820506030463134971739373025587559935592325741594985122416140086925645844444328567060283142831164347233418127572058470188449216555374787625240559231675923293405238665371021537971980066823215550742826850674256054557008294520987504844691800751476434350142615443290085810972883610184943695466179170033629652826047185620533816319684825230767947285516572447759669920145821126213492114572130058001692810664070584830264346306882702670945389470094867987572550608925917703598066015444278771200860209704032361831390866869910977320677895540327991136657244466467585866048528746754742135291109661638695038675375311737786254750142518973709462940479644779331539606067104906537918524180521323735431407049771888674691229419206238791580401332881199173791849014971260749550737384433245196769704206190933932829884153166004110868723086698252174837017377985651645884569746875714962776725945579280954496035070681317655389592627000121990975429334958093947298600239737415312367520342498679592805652122061567293078175121591424590241052914487188905024353390101037067266546624661142207960859717163072671974078305268581500371712021115234409916956697188944173855595952228987732533247685327514973320215821236097184781141389823299300504390490363819956108117816008531944277655762350841152665015675834059255047563184247677417648476458611380540749815964169536107661430777400025714372037910630032423339325162262478611987274726998816329877271630800702523927173368156570436953592131713344821759997727689189836207236923977863090987820132627847963250241644526370026883852780192590406267950942345949342874213461705387876544001030951982607696932689400033075856387184615606830547832221976341125170681981926140071386231372608214303429896257989143851025235130449828497339131729587972119941582214761944339855478772262464788058856482413794106484500504382832686124635598746656504144514309753842022948400050687588532160049839062523409176893445465969027414001696786044885267789279344445890461400586892128172166215881585195866950627524247595719660821844613388579119410143813003138419240663552723216591197533777956040542613453531183765298588078155227309758609658289157353952118129329358920291524220297372983325461932358676693842234556877691400355627648202054687237996095072681357287501423858090273005219014084767171029494047987902637667889053815684870555573874018396530486253754778031784652360168721866101701010739289898546099850589012753096833544295446298444624941402035527936240615541059767696024224484588689742326677186481579498697862219384039623177262628675283584307938624005001407242313074781045699759250953370340959294108254623195987086370056880340888442611052627985508008430162696056901969889812634862774622950692010114571638831334283359536883112872410951711068330863374059615774670049781194879938895146766774341415594274996533165189959720302464467572156026080647364646075324967161831902369948868364577962479856674402105149157713260090998349743300818488082178786884644101017026410312160545928452617677860370667887016925115987428743095967267341355793769801493215293658226740277757311031435545975413871710278726567947140985028043762229733079490888421550720265302383497610784141024818485772357026637356084714214274062851442009510242437095409473916845949885545789495867447585729784906425947877515618795540905379625575985704458548506944402120193735156569699871673383756303876993790329132457109686768013218260341145155184341871551674561384346440407866579750175189751844238157726087189743790350490411016762973545198563823148235272405341666126816835881959688800181501101485789745019013110481262276996783033841940546309479179947238537614034287157764463731715352815091069472465689478960861685374075918667512969807274417911737049055597595430018926747102111736120172644185906603443597737709750685221386578480290499346781839474156314450057990184191099523076082513348360456304371554325475013734911400756322476516480703854324913727951992245465980074353845383493799743441455242106378043480290936761130304750779926222139204992365175971417473237962903352483045203988478313801656329331440814030008875597703738146116107875403500311185301922419407894248012194540367279818620083821009353096630547637644136311722286962178889507093593673232395445983879621885313095480526747726226457798200686126494350301682086243773934084503305928760825906483100959798731071668281837072432107592628629609480917273602618249877276035008185318217897328218453590263106395215959824664391644974198947045026458950841381710618739551572686233360381862467665408232733716975962091336098633610475553543618560372311161584726933554517710490594359738104574189670573987556805430077580321073882834290105065429270539084559910062632995621324885373680340476357267023070611861001903515778392855083654520724874397252575525478629392279380962228457740146567100262918981369562551948961155660062743704493043808086103908311819032210535924612011898577651809984892662530864735489151922343761112340195720252013340006393319313211359716737692123949719363831944485960810502469706406241487451026338941007627411630970276515685010905016968782982783749426997966823348912391150133983637408605412654820873464753421529712200427498564982624638039353139901997014503319526617982181083615442260193109024241555872008679408983945076685056788009415144684340624172173104432751330403319245285854553065977743719680916746786404941056201043499087021896604540214155973590908237474371544296680599727640119824501515377428409799233977527836180325735922497634329935680272918469584344629097618959147544678308320327916339856078261167427497655508900278045312354397103672808793472450521489488934612445651091199740517141708639886322066824605428527961221454161045004822509921461614375549357801198311163370019172765667785674327076048121571471811597163061723218806518787517134248988652277373601532931208002973135308716350929441770317148152377769786605917526461512574311819980271977855100705491871896722200012061932632536484522831038682754428980606391032429376580749695568699298153785304958924420331972194503727755758538763789289428436573997763381089094518436089380706849551147494451197727778340866101178475319935732481482632088653036917587342017168966824962259225228451894829292623607226059002032463973732260487698242673093180415656509550875451419492999093527361438824271112151679377280552497150623209972375317676858355712254508542064392315343275031997849361177668053233975821567808625936342223103535744756531784190960974275790759009938519646237289655272268619720577683431581437926569539233758509997278390120402863174660937354153186860888859336156709900420429255846532630242878985386473886863395713495678518566473424375177818435220876217911562932991301827731283258725699473794570763999014126772566138872072114090402341316728579239089673495061053514927759394975337165335423017562872899853985713775095856551103658892251879556270510147748583257548319549816541474940354003810506158222578262640950443539916743503528854242667799810958223970091424628237823103208611682321572962292426394110739313579559276108331884506820528789149209950507066990093910905434285654578824285903621811100389250113863755172049410618019323745922012978965924924237978319506528005911974328418374583829899038945208540692463493325507310016842470633277160777258310227400952162064253610812335019407378684383315362228012661221361699389419978646600492437329138576889270305220798075995624581589165468999720878358047804830743132556121352591161288030295942421834027771285440166922228747243810651566728339910642955325095448447952910651601596824089371026924508891632590142006395300600794656075497572081385164879917698657978174622441223684101728598208182104585090819489998869733350610590625629532765523374831265680681761806090651296946522283948152314839664499346907311283652608912785878971291801249715685593815636566660273281634313343063393865965400213060997011559411324929916407421304945006290819386578855264817686627462242006481827960015356229252776536803694053362578151883699527895808499536097218331008370080789674184287287395242255150805762668993592634291268284841664110356322065809974497667260729426156137910219636799964974421216936486345289857777356262185196856197720465304581928912949030299797754451502379601105343404967232580381799390263127394358443236529715928032948951432285813182500748972185818088470807691916204013654798129933472038470907124578405147937180107908419769478438820992601739010151728574150852102094752050327090790062378467664589848986082380348735191394425973157202001965461586722532673373883874947180958834167611641650915296532680228447921368215961926026594959802301525772911033629319690672666465102767837553795126912926826328700912803077899262896900514623187583889036770818492844022541995726133650814439062189330026573060303002962644208546590717992334445070163077447813445820487244729350462707484477019077587549291467118485760361533543534337288979204623811756332007022101326502475280002620365479077868875587534394280381634672357347606036606826866749496094494236557533380743111625870279776524780537309434236982378323727072504395333975980279926119708558598515165884472511469589540291839624444601391912296131440340612715926935685378374471869693839751682889391099449307157846767058905409035870714392428074898554707307996167109160356088112191811664989061152028738304774904463112444644433038555846394225380686866222565642152185809977507285640846855247435099818608784464161211529501650121711728555737349096580685924218403356418680054493368262246803270552169661955664766365942256091941579616312829698324467262313794798960523145704572912608576237097191794073870423256637345715368821582448295751374200105518847544479390366286046376008731193232597035230269663519328911588260707637298114219113118255480531595254324981405936992736278728082642338730856726998389937995397667600348145258199243385863814823462118024938012607578627166355135775274774887865523848422794171811038473746989564952665350180494790997440039190354102600246920543472874448750928686722335524476167807505101158047843888535758275179926454578155599139732938571323151325551597273948126856454327003111314863526373326309637405821426869091147533756417726680807331244220238865914538262824388352185607080162432128885546042127564332407877729977081284739364676292742767222586068500437459926416334833539952909414294926101450675359725203637017923869910457900822549554958837602307933533411928135095678795302961239826943950255011991393402228098758721871436983459150394141496399207802277680623513257920675513587828762198078157905711745033239328185115056201343615229979763124320404687542171077406403780768011044328011416646781937062208208179994639616009877711808409876831574721541954520164029873742882676491453664535259443605635502055016417329771848874694364884431199553299264149976640987885906250257748707241129662642014111869761027052142813539776193735508500614487281760703100940562786903120442542369508368333124337047468864964364300308890107645750837747740361197280423195902097948869131572428105466895001523174731760446736800465125885519881468203386565785122104143877840502555733749411697476321669136209022508241939710383395029309207858613715576836756667068533182244571380597770776445263508543754058921557964473464491505318875209526749965696925257561953817105973457788064032268862452353123509799141590527052895174820394888532583704316807930939591675309128213649911709200616665861767363039785188340618019333761060546873213086397760519586573527054339544735428399805897725318410946841443227621375434073242199267147571558653124471204045704374941360398115312395182541714352855366034219878754910962157982807993711581725141807760536867788567550560395898990627744592818423392753487141119734458507147228624047019192845794460031839779820742618815510929073145877656560155262647684931417275683178414076104548047544553024261750561586655769264416739438449055594482498782082107228519158995838713921016903547329655419838354564453646485477257084484078636627025640477138725219030116813311734637178720424533890308666441320308612342568444663173257226851454899144612209801297525495020209421879059400864615276287759654072019870368630713066288152429250223155016822710099788446339173699636824799181254482017055398445624992319669665383770573199816426208201144755372136313169272866987479563515764433767739427161135811448225323606938519570573798395314310232992479501514324030007628201743078112793193388756957904267796155584425192839808796835862702599435759734644451574898239727004971085940237596291186174186163227568540834826796228007111233018013150434421578165808460023251577921187372650498980521897480069938854539954110300835956431327319928310091982099330298514561195080851767427589949798595696371076324115001268000039021463834604597818353975408272018216360740933131466689507749315323487147102332785025891488883751824296510592525573135309852318335830540470653625650695143307270653274335139463890560342746652894999759541127239762998096232404955713669330391465403470635754376503884936688070148770416879965760974947640225775495445310638263408697187426493633630217392506797346392818257780069785571544739528828235545729205358329509314674403213959221940106856572547439601237743873953118424005337831151917771799983104173197130926364474886571083013007877990423115605503568908474519179343810675947325128915793416277886204217223030572301691705635309461198490218668977288985445579122005572983199337215966498609243821325308300101806035792885567183052809927148971477443751087316235277281088527887669455821726144597024250668963863329978169792862159447131228046947244565901391649602555812112253372738583861823115164483350526325570211863806284826941432932072403858099432582715893803413983438366856343982405290010207005716126430814776650618623092787470512739334240216783531434929725108426231794917302656207249312857592599984470188822861033752250612210571612569991952476406728138693955135816320562633813648436180746997055442481943634929255792633626045096396122920225085659941418675135524893844297752408001134649930203404735502748722361773925740561715606414342038448698554079868637388784415019897418248459922782466926114298163270052128253990633589429753086787410720797589113840201921241518201343450573063041608473417977794174571437593445557175269798630900211993748952614480661594247615096700502397229679326602759892982554186456590715785883847639833662204576427174521940472893324566870280740280392558013405695140569857313021343134787642274217403935364304760272402548759915037943414711493471976673705300049853844220282303092184620824464443484787089784981178635043867922893889193822980401571104843530026143091658088178846078221016025573801432080852035667552855994587669559396545904870134240468248715062239533421646344551282387141223590482355502182976613531907278941529486414856161772165917678004642760770570514738932458055650574088169296780101595800424560407255435529067853379766761157778055945890150181224754194920676809035114367417413044760839781156403271298876681951162893993788035044266459624164933388382007088842875528479951836551482063425472808657485443511491512204045717258959516348241565977325866772102107188487070245261036170642471471243260337379119530408489241233151140331361659582635603432081695628277641435696987476237804760869485191477170537598156584182070237234860789606263281343837436164065273169006689599766397812589309115441408111610560693265925779249467106006378610544552095136593586670529853108739037364499341430755926907452741990619081203356902145182241441580964565424659253668809098499115908961070104299547402465859563820635221427562406877416530643916401200420701139107169140291512639597178621406220917836905394326172479685957564705321331454402612624202196946341963006440054701320918362303538987147983150827298625368634036178204538973643842542205722962159807543406999513734251215368638523198673670409805618178374256448188886452938312235157112317713534454671543196954110260533441814308586608668300949361010776655317764688906966199719912611283489740969482957678378012766180685150143040384515638279199027385359660767883584939023317639792132728406744071264050604702706144452075421158440324894657338503659654255773095141932680096929498544042197694094378854697093743652840983929053015354539997698849382370850865144148560624680406051040821546849484558660029682444408252441934602351587775938982588651608308935151759804892978831357601702309780698748430792631875618308536628262440667855595628994061086806655190540676716064662123066511662975289791562233893677727474933268919938176704886483424986019100915150333328539111018650357706611741504920109499650521767215569808521117920840603431970179655764343851988062097073171357398590984729506465323177433288113399243227448728529264668769228887807255806804739137560337938533247915925746381205935050288855673269921115879445428450974457720013453161724446455305020802636993218568250631214021058518112985929068691053553387633546007527304794399927086679276939999649488533127213698869237199682515946900421462410192367362994679396596408610973717342504815338798927263266489523816816840596025399515185101970524756910222014491637439615084778571453979992976480727494664360336797048991440023023255908765483729329944897726598653122229838150717301543835642314834603332836607920094311287699178829743780858183369013552856049319137757034492624189388308417039884077489656033285073079943463135163125581668333891130571120469953613556667916664494337718290021820941440170321597410283154601153447468875844847872694886176680347258574739354739638122849730562811333128849705304795099694016898046899361348431123672865917328686267554232134321869863347498978003929336548413680854401527529053960817088341224437489053869493874633169881011351920578287030848851585212899725864844457956731493374954998532893143855081773486541291374281603774949579164864715200636720349943876166233492085955308112431509718641361251116825215773504391018380827474621966758507624958198938549073839216115338881503766009863484515377131905354215343351145905382358465194292274661512430734227907496384766517767068156289692834898142705247195208583114377458090503190976598132770747730163578659304729670301017164070327344516504417723324728268183221557280512329907458227597591419031133187245403794494752580800809386966480232500002026387388587021997747128262375264434886226258680966328351282930577048728322667313422481207756333550522685056799150079642202233973089138645774623044170635826674263092980448609582190001278885031640614289318093820191192250812553263989307232417822217622084892071066652305420838918670796827745321964799099260846358295972783308989568523520612065803911047666127741558123559116245207319559829199021333732993474202930237693048424695355148605720790409810719545730272247052349094769011837249242328183850320341680240277638765305978911367946571649306181214175261516035432528452659303881599439608792312607863561733412309788128255992264775018081617837772915092923551495738874401379355867547259296476738975012709239710048225889406517410947796238955246304123769446531367211231449192608157266263347821622105255542198155452724648998410393605606569247539864779169853133026677373506927647541380464719193307278222834694324034298338208323496323456939553007832524401252574917138121271890599428075167862798779626635518137660314223768241892128030304001732752614187623584439642509233528486525617278580435084346601550184198208965089067742745294815239181696564624444123904508433403409249347327849234821677552481445983108657721450190498334992825956519516558757321036195754794987714206846004489227955161815337022305722972343487791758647844757802880581564949865134206148763643247315491346046505373616090746662900690278081355445642060236840784030289844395928740068740712361238273399049004662680649122089568064824740648717629823325107878993117373811186159857975898890954931127918270580481275010709470331436311378205564183269254064354235622149757218394693848031825281953921753102184126133295156971488204697720145442216023119664608247490129178921400131620166648331860253567211789571377776061988380587433499879248013980510095918017444660608568512576661347493278109401715385207539407082501160466552608690285943782534407024818806276975353859082237588001674565391982953587751112625917864588311534220605094400447294532482838460333094349565640397806963059510874392575667951444801636245696506989994620421388402881251596910515211653677633252552159127047447463183861361383497282335829384415110123013584363946005280340136882260390760767922832695447819027622257047852774790948592823192965036906501009587720866806830206122048222194776881101895272863073601659778602273981888404752884285712557541765733448487770229591289638409763491978041085753875916243456265277170506290514191661243053068222179234543207075089632071146705361492096154962335804708794617982303833906076587671971948065800413927809006008573382124499357062226264318013196651414045789959124880529367887979891001840466648642783841899795691796221615891341670427192156496730975634385412144720043639844385830881610255434768620663588052651295926442982513051351025180086153271599990509184842465498100232474554637382377541618510204472706620895801727658195116464971561999507530068099910303147198020883213001119539745106427892753458641985026502120059076862251328430094911299061731451359705501822964215470175693428544532414632451086388017367467387499838572199591482712298473569172823477547362250429219432103791425743798808453043490198036031038599333152248264356366468129826958710576134157603344635967382470945024530085074456733405086752283647330489687467312184389374216160463062599442240641630571583860601719396075979357372745928303208287377281441290627385458926729110321939335198240192847592591043850838193253876172373962631597434477271150493878722763361352763501754561531397541267862325173748754942719864961052839954843546591433437973682222628093218110755043490791091630728210675706611916696164974672866281716123223006534273550254159180243186812335968635811024817627195975365145641271583126248222288684272748246374299805245374392992755099785798566047718798962773402785896510575846022067084875777799730425253240134368301002821647263315620729950745285335392038471190609262061755078207070129349691467612446970341558740287024306025403559280906083412282364625079820898162654854597294033936855763389787038971162224469125041455237644544157642975745867314253261980858962392518416546923718282285757470818667460491570111368570741829112572425599693825600625720378421352874161922898009622849053652409450501830747063729868341146045712675183287256525074948745706908931122612436052964356903151944680529630869279177908943121068602961933948268347960705421126254522941373132309965135074996749021780237281675001951585906085126649261006621626526319290123411103982580686055202599393804635741436021869281126797884446099564548688111657889737457749665250927553219708213522475316914522017805139984294158947816896758753156081880980122093226613613446075268140502660504317360146817381934965543993858376961198206936269886371350998024496150360147841742671156543687526882980330961627748996654170436408509156627033094590322154315453930361274176463601228412378024105151352655446341655709721731718868852218245422795589163504059541756336098430924297892297971894823020041558956971648443945727064496030322143036756865408004949520717093950029537253067558263278531329500270029808204914227803403590301850002122006974494538812015944965492228543014621851820117967622996026550224197060378224646260666727434557980069775042658034991528275243881691443380138889349756778620452697338906089443974257553334013957154005319869225282991495795929885854467979307578361415025795012838981451854902389498176000177822579478346432777760703375456022855663226363644953054844199277769593470991155173720177857226418786386813062068523443370738588506065395248531879400428319148163415828640039616084461920831863982070828853214015700743454381097404384705841338847009660587178847344450952520454116340900496969705644185435210173382527832836341542615549440138946049663386753450371531424007416286848504274229400291560735787509479691747142240473945989554126714838856508775842480775813058357853347227983800281554377683447179480254561170384371039656263192244326973031631778171471811866844839476223530163334226557049142472865374119566982940292632554203527987657384285960831665285278460884516629289153579783878020124778230294848879730649099370560725295279646517050980327278829396219729849468917784099797077156838428396929752476937518808321321225185408187666190525499157648781901339468092220793353163978728791929415208815686616384986429008962489416684429928144435818343567049062122453797615831078962544708673511105369808654836729035565247251416746283303768037804837390922419419523648231225549180829084250932922765869281881509890642102077066666117936939217345463328143618878354809559463957144158059658632669065005640085865778962173798055689266437935430197441520579459393702502822756140357679021368510975223803392114461892673887800872747640568179553294193499437127443319795772884174540225677460689772275739181937914737140776360462824951923642695828022488311344151169333577374416862324952292264278562039091117929505052541699633812583074737870378849289152655742971103150839642214554838659558626772809331683024323993798911379900162905785040265746896163697446675914869326549498273420016085315074701769127994486739564713861773650007800346708924852705332153239941836630049260634603252833914425387220188008855407843407494422946125851328106798114438590240794444933499383043227501147337024620154722754761530238989264608346306477975052686278510052683683783011748181269658447501863372566655221467937719662767360485440156799325608627163318704606830423322555273409241208185965096828324915955337869159555583821792539923375253037286134500900359197325178020196732082942366464150736620261354239846099832611196378060328809080328335698734575685585508918882919002775401066607360791460813040843008734881556252036716244625572416375287464658819367878874847561853153615547667129458198898095373837137357735941584306553936547120444990153546056674659408255253843119337877522449731898545177286616027225963265212998877480125472046872781401275732704972309173170675797700345436167919439804593998986284491623551166311371044262788983464966385150182318108236262006406758138927265103174880630687216904261938169134435050085144799881221033152894010668075593104399741560135221328320020499403133580997635503364874430321905718106352548122001395449813041907706045269698609017665516607168931294076882287450512219723140243295026045213434625267420655128810272763733913323596041278096389401281604738006527587845402044382874128866325823812569283590031198348718145902252687247626412932941851694867816908670994953212394431796829565491335212362007988155681768043340070157130529246568712689081224829367583437205524687177289526114960315797600980428741619557608000211813590024640443847078719734683349392166733147626195356716515488201790762594911909530580983791154806723329466194884614791738916415742274169224197639729882228808497827990975676577242037570784395370917679555893114700097609136804603800131188051541825242421253420029560470763990822745820283508486675439397673662697739191714736351558704041452631030997566247824275369655396339144142078426058443779611379807178448874919299712024931784697887930757277667062043890507184212534370425184229237637555560900474619484185698030118365775133714351108874357415900492288236731011961575161612439772868105747810544078525243864013981972519374661276010734554009244731122889527408862041811855393130114528066151532749015288939792447439827832130015511109318245813367864229027215926827113892482252842042286301135044485072110799568309779243134393264154153851554138245783096747851770320104676266460820590889968731763750181433967188951685433630191625188868392804012108248643393128372587956637325045856143480266103933460479862163426855865937744569130956732311947964807666370849999360400086256270548809065808324760692602711874404328560499344175533538567204009520469971507691302430747740912318600661812080651057893125826817416392194566286446258123081343201419508604902500192013372593631813474159314276425372464071965062576543539519555539963475478358481831526352035202464981446878222450311406859322644512837849557694139244739906796841401262839640208394546116528366176668154887738401632239979675786846874697929163996446901099696525585354400545760077094043000484059283327995958318782363864495584467074987103541109623209109050592574249321777114694092420083099721076336457705163275410706020145689945905070293803411357408922747103025231965742086295841069823949094583613816836875502471708555016446660903431737119631591509972275870939086536682034594315532657963187303454423567821433750503405771581296101068368616395964269372862432951833263126484467309686131277605175819033788319216872473246698048254035646787779771077313082720170030735528440835512087702227962143134105086424919250381599877109793549789624159332490084012349310106262417681644448091296100068775336188984093840980294978158850342591669336583676050132441966378673506534105912706078697443008329919292204384677514027111580296096945015103378183230929156124177991871666748355026255125193479534488264441103001531330109636089952127914705758223325231765058004437508080963906367731994567859102112738513465346526882264426033936005829574967640623256965608152620237183674955674356420738040781928662243134097170619513560833456376854529286945310901288342697702654671071412818246779671563839541146584471871326742775444000759646589645375239334764389375115605738843892753576735479925492041102201583618260767421485210187356277984410001632662700715892977256399583357550977106258724132730140688696640871388985280107299593397891908257065499472304794767383586828923237850410456023397176325947660357807995386656373598454302638335017472241029845207714186478898001656572323801410833367040396377590681324782173001565314763344860209372586905623591594179275236953787837665375771185958586808551170960459462679157401331545444336069053862339090080219191525032929807404590199490156391997961602767470526359373793759280600249795321424191250361056112700092444908585675526873347892994158565230303970387576572061133957405675342065074235357674384078631396012458023635220684758755881865375115384405349736382002070846375784584792181739201693240724833629601620633245707128593829851388656469018832106757581994945121582104671949607202395382692586413589466927376959267735995640164785915250569396725223666291301342369204672086004792870503729076179959744511425321882548010955354286959123388168544508503950360740988597696400681644118752280535430316094300998660305038841521917634021172179438428415240957758931322333764866175101055732693018676479360698323301419279990806216339665775952896892154023826753013265300016377439844156091400981591934258876269654965269288815805424460241321494907078550185106760814316258643877924511020054820569411520149108189101745047662534249513523666878058301048385197667123804719034118898418640373645926382342813740110603559216711008097750554317360248496090343933410307586474851320088091828714728296081756286825659646118557363477156793982738041290775550771334340000421787055579912485908956776367326364818779998248714237040555631419785455389259359506198232981825192439128602120341355790037390005139966836801847833151837453615962490192261774331671910711875549197949259437747616889629422331240535532329664354791661142017813417734912983396460832723009800221879717786023046604253952888800185871361884722227136895825709757723258675926822341170831929076276510270782946857404729849256727683545051832619428571439898782932173866020783197077642477480364488186899581028175905171345731416878052648625538939296882946281230975333900837108648112928262529672321643557891601989147789641959310775034855701063778606445458219941767143070751379812346113114189331144320725050780986713671600949366073965803555049948590430682577681166760955162529960732525022455424090982156079812347648464126393081770193982032663997304980714254486440529726880655603681180342071952728934211645012939116449284545459465291556458606513413711103563459721980020510537419178932198434167265421232644118551742612133315575660891747632620461017450814479585557082356400507389733828715670563172802100798199038478121904285800639005608907129458937600423276816401960656128119850383065664631590587709294581667310515797881319475388915858000354717940035967320804546022388099461187547989914786309095384723833485231184291471458266290543885035887373958622321569922109343827672308948035836371172606087056692530343434125013621416770739692069145429080934498602794248680977333533445536257961332771780759594875439626661946191558326188526138727961873200403121639933547126915223941408845951811604007423389549542115380253622933714902135444225328693759282379488486888253315559836321141171190018040893393760326193334990384655547520914486605647992629999516223732910458144014510605140377513831226712773311999348809172925077321481912881790913981669370191611783594134059268473257095915183216641340722738712065857643848897361735703004184361235733947529025492055170307418884087920921344270275575257824605834709517268637494721719236147719526964713493352774545619618022787354515959219901946648685458892539902491296435879826839169164856135156972623936294457025585200521444819419193200379346817845076462053073014392932077031605117841885680779100214737970937502476625431770020318287315444610990037988357783136791295475861036920345842080070003058213349835103178358084090608906965843391955819099070213917457455026295180294637829602271104325004359863851329076709543733667034488732474480025995725624443761717281970283880204517141655134143057060445264910304901797365444944081010414781857097400674900049480488622574713662797531659179228725712366401685651932430878482777623606759968464232081503868397483616900567349899067719393241974157575263588105256248038923544095163306459257022609332330725577288341616659526991867357459134111140573866563021183638326826890993002058408504232688376853108844489460842703132373952067598394903412490865080899083250989269335354236227886189419099208513960438326379381060898938176871542229143347710618640525526574057644910947298928325540005575552882665696772036054594874530068050879738385138732990153395340614027901354973471871737102785913074479766811569211345000521274327398538024169123120516760281652583442595339467361573296629581842305011539628463484599130687704270241849900841083245132251144371598322425521601412712960057395787205377228823107090699732057680716140739782429387773364391235243352353683232958386081621371983744494550945185736041600347533528043831245337956339213411400425625834372551618576745199183354487351979827882559210456414926131802092034887366622223985833282652009324722610260251463425900058492560484370389149956827269723349781093062330453789306132951180643527107704923214005403055477911448363456036845304053355434620417721453753008350362320639506459627616450806361924013028055650812261496396149870507369867057213101260292409447559338942099379106845578321937194618472753076116195337621837469912756673511064546249258361124458884303676867461615077243727761027641373021066689692614412574871574710972172706415870379696138667734064000288571522347600376402478398510286040672840453293786641437431066556101250389347573118166653999313119661766438308622879454557612675454804374540586329540989799411077209987409405580848874385336545037023610308801566329548780437902585464008575236782254914077388045731728150042648549143287781685352218366891011711363265181237515017910163253475825535271956817517812675208521563341377613958994353452960431538071590249926941166330794553740239303762027630535099466440562203319307190826000459309387395837363225537662195319343155608319920900761122613444253187036548421976407158658663054633666259650825847029429638113750275548459004110646603158415616977458024311645115171482981511572302335147882342703716606742522540832414448817096541001694982785814257388211591860714159327206723387725755278361862508849347634777203479269931177330834749152664913903692446409079495163711486930004646816199367967273921277808027575784149729690219534317150445768874597332670815340321005703981416501962695396504363260684126265298685467957654219844171408082627900104571637617541071142140870677291172932397783383112574347795259555866747650605697105244637314108949914206410916081664027607373315276183851561856932798227254484542709072392908993540769057985346628205180268335138743940562020964620166605640388658507480385440562503062387305036641231368532300390005360668046133511864098125649466863590113294379285607272949129833179907554354120937311432846470927772224310667238116924607138560893255384148318472975359392325017380250373264736686703040886317295217027063606175259064637285760471971079219785099803390431521076416494503510630704021189452547176045202917876438177518740365585777000413303256616223772871536035607941347526498559098202558418211641446818045293693055746838063265043798974901442240550349760225309644450653353159425352578235958460919472898616678465015267797591295666629813214840563423615007496121659892126973725529612104329235208793904760861622520764063819659397643177736688848792308141921413169335334418221610941310113432877719892602764470527791627551259091192552990093745483624917976890183312719638947659144340765127787984680555486873275166719391469585844394557897374304665317287489877681090505025001250352468639566600825106148266613140688774693557442805555793442583883827651371862905557598725278527073500137046423727291070205732101078202232118123788609050737451225111627735153790068439001622581835841533443086476910374832033792421289325425035854576124696629441034316513999618700345188934680291760433166888663016692129887024690680178264957201401703750845323731383791937113057882875515739918786307862227502653675392721797408843387547643388001420929964880601194951985101593123071668624240118085425549969779937512134540288819347809858240913289762524379755756564352168548889122177756794964119473272485439270789939992766313394612743580691294474223192823430426739342016086766137666466059947973969615503253346198249631841519386995157489370966609877394916544525674996467895660015853188604321535096942133720784709323710495178864906388568857125179233175073591262562356425123718856386205006488071526940900383595710280173912130561878419630039598272587127653177738603487551932118112690048421240000706933355350752698881466184886760437883824328653394360404799534364388944512647697360968644785719389518558341857307062137206289143231432980991561975723163824597387633775594889150850521935707042453057489875572160764242767487030732771319860840103786856249014736035457354681902220902673403231399850458348079939942731609352657639367511744370261978531627721861691651689362404740178541697282659633616757861917477420512850883726898222529587390598235888847018524182379498546780547000338891032288559050671975634855993757817283044686678626756380241534824426519131851830515456526651461779170548213697376296180006925168707936333566693908051504714705350770593183341756932556512037526421427725913502246540526072567920005081304429006308106380266418913797629817603201673263693877745362944623543201827137750587596015229707261625008148171204657010337748393829185087150274620808046751956767439391329570143986898334242177110530142031856414152103677940512271475758274341248035958940481271060588162271944374272493092292508664087909905695660187171162869983825153344331694791128516435999622387413298913470880649846318650126433731726968644866063655310783519408225060212961375897144097299639981567742271309257107869544467477382374554769978483572180183429223823067443576109113547791600444681654887442543678747252592484429677532819828592956559938866588043956393638285075578229747029821289488553567844620164727515055994241001851103566391977820326374532124964652730054522685747350190873364626379084176124601554443079802353342904336779009007109667864166638770163087634270207320650777760942167683120568955020676190763947120599282765977332399113833633603899506193146719463935759520450112381951112154682445080921950964923222623822192791249608800956355607228817285842716226399661441893505043420745993317607923235631431274366107775871448106017627818125541464714756711357771896770859032495586606611836820669283780951490421781535649517884291104440956501496964588162597988845383973911725349440883155753836772676507956544145734977303170447244966241689236838468206813585121921959847878539414303157346767381593993271705343115356176931078301691391409578398732842218603582835380826555920226304870115937575812989075423846826050025373461501059493164427037590347572199133289970170916517066854748987870617626971328482496756791441334379088710542063015013692817904150698461736241405443233157911687370102005427550735394843946474648930559781028967390269459764685507123897998965929836213082083460323090242852617133809468192847719482824094941457277963568498821332839350086733786940007041861224475124340318960676433582288991650932745639357596288909596117686042978030985914324345154407588137043343737277365302783159836117001132578519779788551857335263272807228763328094054696674686555961588988035570408331559430565857685293875215997664127435939586840926465710238901989150500985186493753445909745392304920803785872699974151894627623488578039528268677852005593277865624717988621090437783950675919776839419936877742111077506658835512821045561168649586188662304760351644262589613292896931841982455911528535379590845037932925947867689588170925821958401503403286626877485625169826258231746645056974658853182736041959318550066985081016758212817544442105850375829538182980015825451081816438250606162186015618913781978878101073655486841161759369627647554849355532549221181009790148736942503350524205206290006239534479455274232388244841558064531844134267172646874276186874694806024186341907473210115932356497231812270166174079312100185126532385819939168682977583160581541000768727729103734334250908040268729763980366726729104115027011142275513853525424236525653716209556091308684898272709032033156582279092510523280659504265312369429617521273790616973832806875766077898293784843587243984421175637337643034224964554638213201359236980463522518334079859021600022510151664446418603701004825379013336457301911025081010068335384845056092846175461195624003967249292758657058728147885027212789223859744429014882094245085614862633733082870004150030425636264104074252151093460845705959810873053421710632688183976326736133852122772903468917071124015523694794683484568627896939818796797928179761200465913181813389751090301639348097033775842376420056496185290937309961892255930322773733869060445184077612976212546880759613369874921172087139479104764559102477749174410181096587471206435297278198721622356598983115288220582764818075652190882510579090947070670262532039089713795615397153338585050574032372581222964377572154862230466258413371122804018515194267933796625681544670227435173516181834895450168401688475431436432283998384183956233411531280702479884971705126981162072206796780445537769128476830004787385017305937780977849295792505437888102930471775292759043957696510119596471869713750086454308769552452826204623709094969685607074002512826068413678470064955670584164214012499278009587659213859246463185874226548741987296031673929614569117710131574700405803334152761002906109757302777212629450360154936917977282521509560373090945615250559018855955154109196377001167047177164986110854257574965481261973437777415686653669269144912213171756051659751799970038119725205761098034021207497756266789935675167408815964948372569376789559077458177875813449085013864418155026987753199933145516464333309745471201742013525260019716205093423247386398855716599172529657528370471438035313284685240170382715242735552468798661077907155920930181911929254439870166008090800590879275344419654942350482519142556968529044357515483177964508022969408424363892992172779213532588601378458968265429397439090519402805926115484545592075469682778648565944413821985315929879200857028781296573487505880908375425838482309497522873722048254649372583522295892108751696359577185458180109603884372226080858261496104082378979771623785518253727190911601396113740415609018834428433914931581271892124866710072786198374738009231596148409567448402404192347912079902476073025639821386693131128734867351253284341490958619418526844898519734080674755244386577610891515486401232799567868616395518779460687281025893464664751855347317137601742771681119427700134635273806507611333496018502270535391040749430254185529383557166288684078588142164257820472549153602822409230137781473088832849164282969065966475579302690802265937675089843426959469178531266594225864353467976696172245934148200009505448402930731010538716984672512694280036285391600491965200353573522581537219785537018652477893505228475056345491061172207604721254712464021066619595306257476900046411139231475018092321503924539412464122914379318571482177441676113737506761094499713009784941315790912174291193951616885074288082240880073902681060066694685693715198826841715144657010910405272756420232101920412056205554489700638956186578270202826727966603089973073426874013803513888107026516266936240674710297513486140408365743705957668735952866365649086504893244721021594456355128707973108656621453834954153377386831566593257822954357049253779573763358906560973962917305003712564474631761969539590274250920270462077767436325146397935408488070382237480458717237665196985333723410276159552097671538393466564140095403668716473316619682644319993419986687554818848363717489610660197723968825523748297191505018554530195389311745161927041321939131028464669055641884412671297466067729251493363879677710943013045275020314858945178718796117528298977468976543165216233260510572679903850458881034327531545478768760760366201233710093610115677006518460939129006251433663008540078390354181367173096197942327219222346450287899517349724685377908659018093261460487279764497977482182719611990136297549652860685978471479902046187208368681604374184816798431403540858449243476628058597291919584162119844370596648135745800946987721793513473642522443168303143065552693479569030792828736327897803348937930088320217531534313268249626826134116580935963626610993518526600663955410257040645650034068376115970631723315830840474427232540132875105296533785781889124321066211871419811836945881269215894007027385366414321959994763443693080048493158542787907352732560156600646178968907102251404795261009933129206689879965218641122149045794321062787130305249569215721118010001260895404559081149350587947093717423311812047578289925960181380909208366036120557075673595495183334006986415033612281454974110221469509999852059899503817620889676609102474941151362361601945011573550502367091470957564736687935276576045535702573248857347103351727450309148822769937561592375756865617002756343279696598104849125050553973205892421405926776150951665728020569219766249183833866082369787136769168073602267522909264905200689919577408783770182349088712114552063329184190392720569970010294825972363531770607941498111469121510177359153851959157605822081811763717497638779944293512837715822914416868416813464356502747661672369589562999480753144067383083203766516485902463996773837533793125235645809590364310611249219162320821149462330092616807088347627592689242480526416264397458898737489507111062982771462993544503149786105958165619413165589867368724012165451604930747551641854372562494106032985680646356946259239534604513940108571972152634020503141459737383865412700738965927076377312133881179787932594951198835075817202579454863416066662957512941159460795826789642374186552362072000453748724535899590526926537400266619683121127632909357680750830779570862475224989163975673498764531358262459145339962122273554465503003493370020744146207495792521396223601577835848441997412668906497844034507141467837725686449739662219179632674473898989520803847340471248915958603657371335802411873584520966029882950456640660394733742867157794839946506784235078363708038313781919756091418647127120060109694464237801158102067655854705243623613928083560146967690221110081784980707821293825731995052121430438460928677838562609095395427428625968471564388078320605387101764453032153282428723908094404179777189334768758442029020661394596706014707358436038665006799307358346811115573072860738465494212675579568422611591966839448615844541834567901163605270000027885342221792922765817044965556732523644558789556534792412764520448309053550821322228258776972064199167572560729347910973233214997711674191113165653516407222162441038315638035152743029071390915643758046454937961153884072565521479254990942331470281233825653114291395056930720638915842476518600736537428790827532777024230871810960232127732652019444657688455984729714736703673948987042339916841482181727599335120764764249841735003799084024631350480888168584625094814949726550188758703841710916772451517266968560476160405524681166525726904191338730098092929056315787426951831149660103771975713175281131234272361491709829467762236808901742512446841734929660224087550819433800352313957243562825342705073501757378178003015715571900913353423993238064285334045511666102552192161286705591197583256085674476313992810583762079036016580990828298952673942320265593978488234497120869915184608692092179256165450835691119778093186895573836328271271048208519453892471405247459373746991695477591698572367036543303180668809733051098548444157988635851191112193461706498684644406751976067361698258021619677845033148780024611133792883680398267255153603394940862688005019353096864639318855260969514839851790345728699649178185947904696195409983123556335262483302371058400881919945555182810628863661071078096251387361526268295048669541229515444221146297417243701580340412746423254888157953939616040772333547222195559017607584998534350585027948761867508425779592654626334255558041818805107101507586460765338921064502756231931383731833700540736383518182715999356407773737761681830544853354677690991384141694982841132349928854521799762678246353646276581282305296107712720045467740412999361745636253026742936338322115548649541559108995622454550617502853145708038716254578511631511322325056335923567779822148557955842562640223304047815819619169942946342486763040062804352976481690688354006956063840851989849762093775686318016993165278764764391425827647610896205427827548107395053388387090805619940809292354420070621143984508309693183153335061735309139738586620247770149657088766645271499199294821072838045377472504395492121202122624945641509634928572645093132733509788991133270522268072802180606930912387796206453442341827469255665411835293833756663060740493758928832608110657810846059576306848115699180364669632789588172228779986973987183012469655248047510879148323022179956685035716015274333439808183806593838928760540887912951372648691649916019610951159602958282907007128379677505868120640051650269641490559591017579059444218086139460157413094658948206089813773579915059284776342290092725688580792677255306530703099755707330457287239919826922779397279125361201197109677232987263684026799449023538270702350549035582134882084114700252789660671330958111966869271974694999157640745523239373759235901274376691046419954968065896869670686455679535692649099464122396522051473098493541208279970858215328106837608894903251702608562758810796541921101562797190372030284534683020184768518469202742350200659036455930115883814059118384418425783678158813766683058308524339497710464454686368423638689853864366610437889284468352046540688560855810629073215498000731243216468062382196206468326642100173622823460508321053258821843075274849354156016314510097241459703728322239686822855995702134334894703944732236657662879882895134521196449577177698513913580927368770660247266736774965340294816311096689278267313337444832711718962178692550140406839417928844114314364314418470115114370197810542036240427220608790337926741540976638977996018915669459697892485701462116456653791185043357957023208062834318367889254058524625489746605608900236027015723773015403703895091461963606119672959024924253204948356978155861859460448781555715918516688153445107333924210295075243941066057257385501839839891093093065143445987899764793527163001617698621725402548561584785071116961671598987447046020518469347305946545533058705121257480712777718084095000552559366167472752393343996059511332004320670159874759087571115492942328820710979488493362323684146834816391134755377023057237457566787175985590769147194782293158297351865802831242243145477242025442401245372886526580415157857452097138397608247090289663754749249005343410304165456994838423414298894837338535942429446073371735463888346656833612782111675788377825210108507246790399928868884025411637344737825638750968175500962952853246206384044324665708069199841814897654085863904026055094049669649151139084684452877276935210180488372003361838566511787840069639800634165072559098087734254781744746911862375283143593592884241256450150137694004171688388184165181649631031386490367978879756554288413853937062244706621333097757919170692403897510031942969090321792478503873631180990068134061207716904322132487187579848041149440675876267320702273653210996543079259593719306701697975082605477666999279220969005656172932728347668908814285899348496053922088753925922659931942067920918491451949158022690416672246358988143328598651518250005171469860463274718362940155581278382866731589696705408438708803065165428614665791128185428700044655246561112039962282790705843276353038900699148547669174688801919449480980494162086909447511633261189242072899981678602786501296051991826487575175013197609829007322067967862590117596324316166753640330191649107344374215190242785225017792184486476380771309084381304248583532580685758724905820366627208129630880004324025796298794135036216260108578213703841619729951763009353577452672849337934790407692203904402081294540078855090430128321717907996171321402649300488381008653776546290757587552500218208015527444590969606753863118056901234580951501006082007773944010292877632233596458925184089642008361449007520661488554848310526701540923942341399945123356900899060852160168599185728929790115503790384185159389010436571369283528611597965146218241186517626847013645409510539474915877860323825845230616874106867959195758465472104414979088055815651160994136309138077321747985611144336524548901464272605471350039314578155976419969128156977251762683944331962257555964161872408820370908542640098414449273395749156756385394647299825440761474215717205754500579530751589105827119324670027868446276987853080571342102715262103446806915310832778756352638952476963173603762383603846500510342843279677901390491385494175730281096281617300177260791565081275812011517374566788785071275909787763063066087111457210496636500193541888759543776740669563429447521034131205415918246099371311833892728009907286183639724294029316723563465801857119915190283593872759200544232665193619366664114167000690720416809986372231256615358336795498421138712112030143796759453632711118136483261838963689338805043714169903590515752120878731591882183242513593855377000097755128821765316303021019875051223193039668023871058030555519474433524417371202857680853576101133979265371562153243173895086150290518255633388323441735586118111528501903542044058484839835865050637585742698754046288728013089181958485028558372277648162445343450052046801068466270671321450636421059427527626665191317322050606536375550229128078612822512506961036767047064158519163505679401222829910574198415563837442985870005549572777479328393598324673298155651846140260689233943127958293122357333097060270440149179863640019258434171855535004835406092590491743546770433862046160290419554042181555027014461667494258466834718582764628082400344749325930090973740134190767927157296220909879229433468751261967439263318446977059508437050485471113813510689705421127908737734426589643442226214683167456410559152748088177669558056643069793782681761443783848256512947126101831792780529587526243238802342140189816291152806466763077095847162801732267699493222315094365711986865733554219574360699248391206607817388762061925249435138333717634240025699639337026346266287636077566536799294554328255723608646271050739231656014881332415523442930693666865417358906940547069662754398425468403723412756616461674629669972169927083852910388331823507058211739488980944041303194044078104502589217891731898221456756231721403964246889337807800930146220934236090422494201563730775714646997999350974319328630401188966178921730639939829247843774424292324348334464218031341073793431032549671443861081715552970256558234886302176752323137977360315062589051706316196494079423520089410342687336698036853709629847206039499528464490417079420648380497872547624257205555666247175205889014814919715653207944846332388270581299417289428201923258596133883159844033832996006245527658780315799506303518129531266504281259750715495492167384152072829506966170130904789726800097424175755771316425519685614286123194581794331221446101565003534961541712802062634747060614379257761274734374672146772984130222639671131452853297889255667509555395027347800976010168727966690951652982045333759762490318079625576823766855469938177149375940687506335707184152177514804240361453806485004546654157678671933902576388541881399484350225879497292324302618112455121638757391538675805707511231756249372964412286800408753543055513729765778467366865571068236643878779924063202822187073048685626033405235568316987324307147551432475404309032325357115381131857617061693569020722832288124166633282758808063933145341788290571412136157378375801166164923372266121908444452275097985595142189758053909873630272463663536317965108945231683802648361599611163927225566122981425565612193131697434685986530680889246867398857483107210067754107905695903690909944507059652031069969610355242083951291711071983097857053891442518160278868031623278155681076961706404166609884017516071278908556526874921662071390706528138639784857880935979449291363626911592925184398334973643613663225569608447924480722312206349954536763771142594169433433648877107323325484060904029283520366388520612676283914107706149572138376901302552473340165438693433914154024390727299380956057893139373692774581826704205706403290551700948002709665661609645873062192580020857366136392060121593124525288833501089105304652156507657604959257490222807532339326236147216656225370708866181454277935792740782010838143427599863291249613991769356461955363671975854086896148274959184389126068762024584017076342119594348941426482871786021939207109181388057474408649483634109705903951662665315643330024487361862889878244460212120717996844711166165766386059001410102529717889458873714617278107559631040311907171282532473860893795935325826282863782255906319548751621723952730647222934883254477327007068007697088387627908056950062151446533384108797643292472073284206264591342631955130577161316035211641632345143462934503096047398485965368571341111452013982131617589570960287249755462984811336112820503911207949659319350428069094967729344372631694510953005909263036071535333304922562037737252014036512956438677617443774580550826781314150189459544148517011783649085252261908937235609827309636299283395911223776299547275438940248395721887764809967174798232036850859183712673395441633934235389792152659854166740338022746911998324612527870897895232535759887548284226573879750928335951733569201275418518094852801156236872177880614695078920727162989806100086813815296798696664017678884846923527693676655331782224238514985489626713181676206954396776985534156658384282440819123829562959270493205595561863481405136105646961429743573183385543066497935932313375590281813519694819878796291032106581736356577019508283107866774442426038904058253064774382503023863772295810460601842068634203941342874591699070060274195840500411652947996511908846042482062667018932099081186940558173106002150194936736825053879617271566905673273351053491538802235797415133105929911669114744466666193033691591384772389483060556084483583557946532514430304330864314316909540264738680021902082219813091127366994976146088689386892124000736797948378240189676247454667814656148874935911341851088102178020974266433555968847539776743034574252056328584494354925290346111691590919324724917243571906870111702594887413693478037996507931941431342892590707038465432878958078761956971527255241151038157517096128139635899448235347525621979129677848578252058530639704308314626621635284566079257719245239627920155198098102779706197989039649109944827864692284026833380690883383122892335871821129480099163923564683770198898231788279026686606736042579159040025891727736109967213332075077830168528849566157694468938570327797329582470151690534184889212941494807203682728724525882478448135993383300700057244984528283313805504412408339188041022635795424618574939823215696986781828219973238197049431542636947565189272277919087387595470009524333451915370397067255786058315432060960357723980787886725808175140358317614066159673978968717248353090945662697979422840755449075977417387468706228441639778151027281712614299235902862445554425804217676569174894729532132842180816108453448308428037772336300020754195469108370272590199824149097902480973558023175996392391722987662473753532409735548783699821797698829651999662286799953427821191714666679340672973332752529112230657517343563032386633180299911433337185059394046611745648634207358022007741402291334609129410179020781227492366640696707455234939256263893889310894927631187111215832139695475598437306502776016610994906631046483306993967183993081622523986826321907805918096001256217732091651649476509590050371391937002039496985979619900285027072676239006579244542280788073480767608233644892854989283691479086880360594429510780351728283402249596196078678587582777776771723866075585073214103980520381443995779032513010618208964657106837302928865783598879108206231273532027530788992334583243244804087002606258279695768587584576129387905107842999299014118066509752528775120280559748298499113943028381485878889923343370280364474441851498965943525645097654048496050691146612929447003136014904332391135102892281982161441169917453932893191566036517486316443209116165735656037728124511873498384932231184609772432730744500226927531648876784989748749336386485514561552119517499745185742484271422623207651121631909422707967222448859177129461964223859568965005666299685096397851909576336073360736381434033738505517658157107953757049586937062387166731891967740543676764402500604542890224226765300773206528951186162749371847100532540825032257256725790690898478652496177487326695162696689043525843390707549640340912181796954680261983571166923016582106506990970884282734578135783032160215249988377940222103896633365713868246118933300938849599118687431326151922581798492467157471589926877998667829409999717372649192104217519071016489392802788335212605293662306665467424695693323335286505641374080537218543765288801686083037147558750312700750398654532438048111766562495262457472049431277801657322698166432420739040520338432305533548935649320001631038549080078965212637814548908512263071120391152753011980202683364420581979067402769295239003658882008491529590955735982603236886328641224370554798101193878371939139620319872860422029065862674140872652866615267969815677977859347357174665894280124298766088866359833390432921046822257225685041611327826330459976787374673122237671383864655161576891057387467262367165315259994137781932857430374490490501584271510994605125518491135639661268115080688568983641597410967341136794822112563345915957050117726714240956143794494069353822381655586176561320698743750342479341256049847209910141580979949357957269641196178532635373663093910862769670728432413196206125770717155946981398448802597601557786417123166317607463453337675050567308542483689895738919401820513407598585359169571381948776409119937829948683267897840612825403906160082384390254062758155779589305773869366270977821513582287751590599560999099248285551819092246948945492742825457155862468504613445411271862865820018205506739427272295786625185011167884224406334639839614261231948099758496035975245783841975532863976916310420725544797688698703293125268870921011317892982535796864291008811155004942403313114826078240618984837351098268248969858742936769161365011522472618177938313227421982411465210262788454481729654351445117141147852184111197334175907989828482958306351311034154020610516955348020986713996944459577689843566816322350176006141917432540466594318764620924769935559944677646218104047913622629884162461348114190587703318344915517714545169037139139626496201369914300431153072327372126608287630406963469955359484084628352810642258962778269989081549893121411924252141981059871881109245044973042804546899111804909889336732805315194457933371672348996792689999185086545838820265449713771641247464698810341714409093142979045389349893911135267673967493147817049427412856821625148356556896795455294750129238678892073307254284523263242598915883751554258855389261843041034689524690984317261521577478309067862732868552584513014185326581932035384500666487935958164997981601152057134695289423632393291618760743620169630726683342483585374012030999199505346277366184865451323433379699005313231635010476706364455360038373638712969422306592917010920044242907337347416978886355742745569356278438444836971652854746714461819403713003390262101148611344875707113520297978007482742496021918488754341340584929654480933380040771421664760233228023162801281789433114724796782560449537380456687351708663956171094286946629731248966118388536564002298843067547857562964149352020140905648362265430769661996785631112564042892777116189041851248579582461105598526581455192977815060221272755633338197217682836552992518007364234643273222201452759934134808938411852186144265589234034140957823928487814988060229160020785889304094404876543814625519381961041026511860202102851439087699618001846617397821510115531446854142102152731005766081580921207918715665770235765034680094773866986971138982503837822030765267737211012551082582136701131515528229556055298632963291500456470954135542889800350489426783616611207774780499239378054708878184046431882441067004568749088331849806332960364554047779999312693930285343726564308338763441490341977854397031545626651070155395941508573385333894105394681826898572199088541365167095252449798801353019314445291711261125709086952668294504562139380052361621785386955996833109158604392922153057356209026727988048524456172926693803514824194737728598757936375296430003712786363236885858962766990016861232389620256910883946334309901222866885023605046370986606532135353821891640158808976906794348177935185043655036950522581078744397905263005388295919556576123192995547314737361729919063745430204559986518922194941621798093962645565020410966071558739336505583612207426765765253668622616633252734236164581242605632917620672493558561740715601477286943094465700140347180723350018151550094722827717545594146659037791177314295490793265212463462187473519304382273575010607879402009550823978823664710275620449776396277731072440517059691937848002693422160211718965690705772329163731883374113142362110445192240424326152131319411214886666305714862568119161221694376502510515386282695796797594774229685938734897576290156481153339206092764938464704650936281300701114644503193701632895813470232945258240826915236942276505009251263141604329883443185927403177221432944012051277327989011403797687320352347068001605541762214616028625602481394281322876366494401127604820049429537689343134063334541507376913730615051291802719975304791116331231417721716857735089022150014805414623532819469967184193848105102293834669553780956409797783137156403675691408934601636224437258298210328806857944716699595714845833165328081537817885459576415542139245419865728018000239945480143389275172553920573603099883951197413098792184402748118435739270048066334438197776350201864719994000086426380734183679701296072303377175797479642307249899364939314040033936274121455483125325241952072287475342222093056538631983077155037507068501705316621177720412267071817454738052918062953449949192493978426901091766751666065210808437707367902665464027310413567232948336143761421147294870511206604045155762048838470758743451395257808127610416595890039396416765354120035119361490402829457278634718165187347021314125139015522704572739190069502802431789821969852205855134970047557277687668665463101968087473108879459007303626449753189763642167091235790676693979342068505945567316064069709904796513946806121493604403997849341846033402250501536970504737535868239568898810252203308505323795832875831620310420797995900862095928832954838176095726695723486616115219946110174861097916368311667555183781109785792057698200034331357149580180294639926973875855228254035147907988942050421942793560755248871711453408868881952857357838364349862496081410994195415081546914411342632349202823250587138404755514225509209911015321152942722242023855467317084092455894091859447581238024492859413797734885960601248888762843440197355914929096115113510904651281576525404867731832397580782105516072727172641985688973812608570150379707999447025538536760452123936823172739031916347858211751148018351082528770080507267394902265111176104298689672919205144244674579525824034004503951629236993294639429126096557424568621517467621334000231743062536537132906754173581747810190406141769675283477196275795884315480385977394612139857230995913777919941333349044124459982521315886546181129578843915389060930484781221152694153635487474460358138168031240295768937089126842585667671055379634762595712811460634007505040958314920118368996427475537450110152400403040224325862351447852027475716816688786005052453101337631517829525937925250271583466713740695518391323328226862537061080661488652484678631236401781538858351112945871356285593406181995262523959450917646779541753405892512651193220336438514778215282696809720127878913304624142802467441103907923566562190278148861812453775619009415757423192949143871609762519920354712836756194847807561133624199063134762248517541981490344492295024425086722112401023554753640349329153479480604349022938199018062640972497709426577135652488617736421678633964641761967925248557829957342255080774757791817599383937071612990960812828454335567128901965545933519437419255338501301918981625599351294979798957862827640922603587068440527865085943895186711931942196032368568543676657306164286618948201963757927468433529770489895906655122036342702410449897929665641191277502932914200996667131402732951600631614321243677535914310637865588043229760560986223891139580060112677026939849382841472564443416796856883400740507603077528831811409466926891885590798088179273460826163541587586259564749216548191170284395797561203588690430228456085165859608829558478716464829741471606419425082787215521465034509964438541176194828712348518396461694033057019176845926087221763080111921031508428525285517297668781021396992008397149328555560948042747368515565261781553432055040744062858704298793458192076333735053952131749958046028589984371288378973538184573085148269960516916708085480659843197860955849011666755632530795163273966337700686440570336343008343009590176883209838393022618449019632345273882564509567744134184440212189749577389639094358684905799562174450363292225401355673766920081057187822207202794096843874181384697953755053223242936320545748354789233264128768567752115328400152242070562281414510730330022417032307786156467513365428715547217625544606370282205400685943026143674264282660672179222836873467813240185198770875233873285342765383117919938859112607626820807927531431898076606671900731225746713185709749385811760655016886097962048382495311969997147582736653710826601150383988486481324988837277361377773565147306238163813702015393409204302629734224974300908597013939987582101589674944913714257724834354654301010703663789400207988710570014295937813276594214027220634139783069841681914457310462966555090074307409886647275856993490415798021450730764286257287594808800959290361770344806769299519092884240634111555670772945462425895039889836633921131596026804937675312599015659265581473539227596245651191995262093047036812530165005349840285083020569587096416920093499895343846750937135883446120853113603711376505107429156766410263070346772730721944118614232445693678277918177070927963912643724213740351430623811698558030354302541450492495848489046286184221241035106900362649104093714851658719369621230389565809541174052737825610725708318521246285399705612213802508108876507823893630071878612725762352353763038458360657117717893559088162962363976884814295784898880006506702189914077438419279895867540062750754445721764059688681354986500424616557183505838507088287272194441558981166697015367739560218856044684086402837402785201825471708232224867104144397070286847446976953347800163846636938434133704758790173579545077804978232570195654173824704997999607558015247874313878007828667354006524408698286237204881025590866395356062681188599903834217098839043614701639739220080740516275057661993687176568631310508561845037247172470064658022436845178832321429652794762889006364587923510730742138621317169247536316640565057477887116678882726376709151078899330066063385339642118110684128844344351016328247142523603209304381688963970587847251525639695737966916153384209346688119163476416113786001758882143271127638890158527628977931981545426727252516038042076574285839510246422055833520863997550087649253026754200245378932996501860644616449835417787929122064967288705374951410007375019516409744427853163251942398020160963020062204630403078888301535513705031818541576536874393553253175855846585901887778089221695639233674127264013607642862789629354130697655589575767127416144544232876441516347308633359335051859314427222305408620111286226035786043233542674984337922198903715748192943428038812449522532867509810940065770931481413319898699965465799228970136283336706079207216180495267365085770896388259125789043008348356276564849612781980914586235660119557108333954865938426924266265572507339022474433222451546550286946370663885815154963075653682856192349885757599627780958508419785475170216967674392546260004160316486801008831991325761634839813096236959132531386195242666370192555078299586361941250351098803715794029841718798285576920810752239695706835918778192700401856510839355700999166542751804421369020436126725295976059582452330459784553430037190972859329453691791312995818546220440228230074055900328888625856214619361297976310726213425058858702762936593534227118063850745681448107412018704214241058012052035548208790512005028822372617826509554316405554662348622257195869416104613230161624536332608304410940045239147470120999546897396710512610795743461888103632613111313162842256686611111649664632926359518835352272544307017305242417492791879641887960885578191202507809096263098540259936758540692759998779018881897960057349668179320574512803183866636714059458773714835754503252507297848440436064246344496173309751625469779008844405315885411408654329217744968212168983874279242109890732422757824356774138399895394093749504796394068040604051017542531939036041987728793369387280869654306021230319097931639663517034163074310245029132011049910032809640930323156220516694276032338260296371824996362816011562912964926718864933107997520163368064915701196126601926372917430493241233050211877245580309243653148518708414359034088280678197308513017208343100416405681366855569687282129872844012673877804724640319387361131593514306917308494185879631202707775893186566790067087160321793783085244198678267253181621126223999241429571942076400707670749619324500472680656132987841109103653290090183877120532687115029885779354662387521147571059283888159282868313488625691105469777881205285786484897707930120839056250156427540661403675122175019242354120581013330615703780852072634625570107191278441828839470129386250967989804451280117351562952940031225392881550566693765358155897184082619378880795121444152128431847679604052905502775065187134679725246690913494405961299199021188357619830908252184764811226232747490356404395418897792668169652022453501904240320618430120013767789291806106994653902844638977063529353683376497600726146072864940958232735502739606935786083960863105003620689285740876232365649241820411339581469796336766657873184097488504259944451313497677969182853189487234669858403179041710875008680666467839739487670592836912650067301601568500182502239355663068623607804665746551417376845027249524549724321323456634429316996505299104052274534510817589334621429640540667371327445373302696784682799704352434237697576090025513603746613291944896098548362514815689886370850068528487094522081658564387925884404318517185982566146970352233989423294546224303665204027760150843571503754335100679109436543340405738613092776312887013393035937014870800131259246373130301108720825989135707511981274305811558149497925610522197991276669194482681001936217972352513142700990430158026639999793674601596081308640400056786798609388599314040031379358258240570392957613072408723344027886571232803877583006283264363419521969306440757748000105062727577260184069415492651780685651475737757483212951493738437437128254582819148534697411652611512866680460537502718504320438831722988049334470506592471706107971706831218893948578307400181780544225108237318703129886414583709806682218993959927593839521611321228451668380861552454450629138686463089551461323682598974425820693927277436505472506243430060443091127418322827782129710168321052257993611563975706028930018625785132329823953026097326603073332023051552393079802845424457912352836874613626854365185341574414359390260641424275220150797127523562662164716943099278536586783647682305109762885158052477131813559163965612208624183449053302304931558083976123148764063453843343481583508473065065304035012520316253570951320573011174293595248862361647022726958893456655125651078327652148024264487234020962503080569060000311330550494818638880317085687161970347226486699099250798843889269399322676876579378508145197526474955063301196741224787863860740408028612245065503379407166494966986344089736582995600991403496912855294058903795268079283409699440567548831876040174455011694438332851345054649359454191190290089756740135653307513456195395125444111296697025002318841227879652801032192513317326479547892820761392921991732703612178539150301899912900215467705697822452623652113207999100411642447835379674873430188445714159990229274340848543579363134211210124264103617750833741665874199927175713695307579830677360790035234494716535408369944307266992989293391115789632620957616323645617635712095870890803749674734848464569118905068157034009592216993640514113460963443060000192078082169901467969118317505366261816537195180458496332730320030647192733270179572429057778513650433565225922527719114980421078583911162419013349805890632922151170055594416824925346729590710867253640398062232358399835631011139889837223765078536092702501838646726714281342043975812388059011375162922982744961866932569645257557919177883185613294492691450003608509794993633751909558190242588585307674897685323682923171109988047307162578372058329680727911253269559851520011928700123532758135440485818475973712634313926525833158558599734567425390943736094931277316949181733235995578711010504229087020770323808254566681496822761181731249919666904373044425163878985412939357804555779646363983631325049749355755131364209835759775456522805692645955919569359391635844898886147203171468910702986470970627361828608816603265716366173993253125740972175072369478553264565363857549471283179617069623131590402183683821984262290066729241327298097943710373836934222366225376395974926195800614864732690093582024744351598410356088456806588872038664468097572987814116002925689622306772268298869953524252046666487244761161905864259615699085056457718274097615697417525975247032621095414311389446794860853974761297079322957853551575864402888686172994859259953507554031776970687329436170515131566325798681662810479729550749913941955271640836671465623818852162873478220777140895552079638250751643060250530154877590550421242994062446742542843608175477231331493869516123522340494586887826909288090073963888969166022810249126295084478558894514454810059197681573041883554627114473306648478611994740543784131308588749244903716941166451607803560973720569897301311975253835867946039354838292017908892605345612551591640233327406477134420288473683791600966670102865193662020785711896927515203875715034913729377940021029844940207779139578900472591291368593136376704704018704936361667687339054536846652994283809861576657006728879855054224639522710628548852895263533693069440500691788858106036825389656235238116579337362647537351993535865773337619815521859467933720091213484821971855096506431606625672557181336849447707875206723112452472820904176698115723729279077127513483244225604845454187509045255796639246060043923080255319574482537157992676161900758363134902495149542168064384380704514221702660333345415546562066872373041055703496018802652930404523744959767940015214205553219809908292910705061422729222540608615577944925409467429415224902871852824283989613593311648320483921862917788192884197760629326954479830297160552463631575306233986961957723291876990772977949327711013500754775341090753280035361133273482790006439359963382904674955644302955519667501452521601444891708524358584066599910524092240294837450346894050349794146384250556852173963356618052547599356156203846139216199408567655545085372142201632881146094393157919362719070614991011251605515624450976979338586938029072804627202478407186100814779442514759555921555584065033806763135083628263254265025234454195558882708483561058486205664171085575560076442991689573611727542708133976148289919565398700450734711852920215176910673467020411190973907503746695641243607394455534458937757043740159576744966297483790698454868903105703538973381265558831723071147218502107565879949078556337652247207614988772363380167598429967184874669730587961392382980666212704638002378360957379047622302926403742414935972832940134890433407472626609533821282877835923104150382727469592917240052471129180348642702333973337847787300657164483683136816258359081668726122735182063627584810739410287570138144480091961534958539476195521814386117170686941552009717517367103397995768623467138248998671258634463040586962405993447623231672932562447459232785066214890345214949959278334358503084597062350771525764144803784276580015589099884805174118009875916368631432957098898149722658638775283120696532540423263927301741498045992640878280565313257025193409574623217920603246451136803895724363978365107047843786913374839953251010802250851031612718733383394134619132438324313899668868682569174584592451432379170838731095049922333953177235798776039063322871790552536377651723067406961979709212785461036133554854185817054496462059981184651541586541752326822013183435241128569579879970817099455248018394216936485166963660715768983356409695809583764881015732462361707821189154693659140536859792875884107284630546033266231820859917038574864121221529355213550165164391742313998239514175820264906510332654033488319451466868693204126686278111064775350038477632046351984451514890089903927760302949073174506136284832981931397113409529203908447409516861342180631828091055643128450609430675392550350589620543192076552259559467408307783262074147748008518074347081558970947906929128039357985616048730005988540205293622662213115907603412321803399024002868905683384606206441569887628546614157191078827421784631380754216353063938503346039551844588130949558191307585661216830603567106412448917175597116762275474263574273903573138693351856915387879247571553821115733300747348388350453086371644426406534715075191444692038955481403658240389606987623689237889665571363004320851602003838954934376219082425511899174878102674194864027591665594356081515824715354065106906472547836717336986801449187482386033359440333534330690170261487969427829071374179767797314651909956331396862207987981490272377745029715412678775421564951375359962884969472831116766127017816062365653851843010957395597446019809268272783677371414528384654412504811680517342607693211059036686599195775773001987842360721505323845190935215638959065126988851417191877037865965541811831334776791562687517746822178139910619579921837909767568360417212936403860183877506473388192751104593081453018398955671328155292549682101154361077153809561075807135601259907463868959668379570059915620372957207378991078195939802271261565595101785645177261796200686468646598456318348215855974768152341510164775040623613128688836377234378515632668632043210686818649067264771661650124727436898256870227118175958020330523826213943643572146792858860597726321007134731228479143842930573499721055174068649039340385227558776351151892706591492837613624211458902838957796885116583183721818840033368131698845607751421581666132716871223259895265543238059575377676918542857462745540517606096387220485928764769694086354253205582389430894533955460203740149967010186414298393055505806030850801179660518482936538858808583413932342625162222450181565452561240807032117150926369559988582821684152475250422297413822191940512283682690936145806166431279766127448298004336344405948836648589438319032364041294822373781452306116894868051407751260460146057344659983112629052118698256500724843369668463724090179969367420961965313737540087798649485660726176882538530231626027678739799025953624702289898138602483693789313704709062203834615593232944910327929455124927678431669089418161541775909772892639724155857433484887216308674955492872347024041715387227551071328805419342498063425528099776389380498469859244548424942360518180591606532192719563000149191588005452004730496780181444245351867662767054010716917976746591436881889243701658137061777895403455962770639212306146582378106354530524494558192151496937268061485207827316989591320349967508392858082816255693250457778835040310019832626270469759844629344451807278005184708646012376044871840459008682393892784249222573569456936741742803085558924116351932111283308024783145374245588162308005449280478326298221604634669654701077450527392118358954842144284840598846754956474312289699124548122701076643221816467683946647804969422233440483888456767629920024832493179122169603993064874729020709188638740535037455141310944397809199129837165207064577128110962550409473921552391708860599753097411849126622422565222002293494614983934746948846112979460663626067639550999001928930672787872266743159560652307649413282971117699098698016360342435895328954007349533921750944229023079499500677523767958367162891931168351941354184610200930612285499925456211449270348171779026805766508766549380679461051752145965275708571941630636926543860190106194274312575199083503333332596351972028407967591279133977153034785435573858135078648648441507062026291818882717208445153962886703444848990320810025687821006950106355532136130425789558174367147710046621788453906949563550026092533274755439284660501653775488341965572412660563753062409623172374564406691974352419922699619086617145165732004016737904010078495066371485970853469478152171439254083683160967880800361131941456089167501998554587340516461709233172299689760363775535141117303377804095077897559755637424909311127335908361876017251045760988904598141815316133734789754749888984784368144708140151545809285695154219725822472353456254069737049325527107762816857374260096492104036095212077485176124452405716331127440293723973159201227893392408045709517100834389962040127969147260663011665675578519437643991599202507271785815954173553315449366966800436455096965687016094123946341041268162217058909743068962025429083445790015945511261217747598819769772730705283713693982752350943707770542992697543689471677256067309254442795700013926058512038564286871504885548966194157104920447376785570547051650890222347158807905963158838417273106336785686895907943802020400203561041399353126646936774094386902020463692718181953075178601301077220863671705348631303353079980515522569493582541471877828552411666366768972796877298323708105953337330350700101966235978853056514756956623897809855987159773874561761129999539735284745953142352829745475488927877193107855343702484345490980407468707307918686651152287795126463126839529784527752649258268165546976573115971102882608442179787994726164827911774205770710433075490498881506487209869704049273802279237619244282589778437857877293549965022985081306102992310001507934906003025937079129234107512731084143689155193912159875539801546822354817633901603933155403273374700455117257644707728194709240539711742640830860902478257625940261722116384555235935802444616630925634972064626894530145110294889503493038942695050106044470939717677441846804454949872050728976428631354849447834019371404438039988838432823555570485194159201591543661787961135675788694440493025234366076258800971497951591740172136414377893718884469030795727781155964378027107281632216803928180646695853224747060222414768616216069875117016697340411544229457868546627237373396373783829165323293809962667050033428391607724280088511973554037874882277222154956866187860368117261643643305972858810562774285442972356183636578442210150454476934621494730647806739464490973608994665831871898289439084168514114192170211287222555258036004100369916800933602780082207785220904965305490384927463594142663106006227603630584152847357724797542311608095014443801161289665539745329749464597549458015392805232539386702173440342791240723509702698672145454500990480667746776462457819154201537282632675016400672827494927546318966861685345694848561299816527383268553480015089399050124077869603755292929690166656884518509819509160935860858866137233424695558324918398756886239384547837867749769829798526157158088409950857733747726371712920127178430623225546627698579565945921170423041086940048490007834115860140360936944296272408936322538804716297009558105960547884965803138865384435779163143331245731707125237926260302045861821866478330497453155698437477582200867831646385372856546103812581893942135435931739751983287163853763731540337265494624917783168871967110740096530442782503661014688068195049452596272207392961390760657249987940325394979769068220746149202535067983833707002988101010775364101436792683731531889472467065841651720532377859087077332463427455606725239595683319744256549133263314069616565238796580142533878191358732606242286629922927493623717453618336674621079275253235341740854496129886191292907621360001916865551374563652986668434465102270445777493117501209528395427971821998034593021625968897354656042169993555786913675299766382990964507780819742699768922552963788653347632561345052459903645292753160570777852331955540253981874756910614119862500290295787170511190936579310469281527083451672819247969681095355050682859325172358490149014536768920146414758565870854295705227588967835658513490393325944604234970855540483093223888537223229837864050415270642367762275788671974215406789470457958899809813757395241802610517220533968751644507070659507749361173152203400570666908331497630392419741638666529242024884247915144676827419505660436972212892563989817079769911631188326614420944900577675934764339533969183461319197136972717610682014798504671006552524603020730276781437318622092257715594809318259807603036897121371769321235194422379676083807393129277324323497175198358981981892882139986942699066287548686178840809984018151108692807989980708896624622073995632147164922109109884730631617729264603970090732356644596534912600125270064524595404280216584073301093296038899311957504167913401738692941753976325871054274134475072226889315261246718443201922367699434694610527982524346107150513366012059958755862436473229163375788137195409254379771637956190844881433309065993781958960608825940135899843849069779456863876277253840730373970541366141323345584352882636211479180535356768197057696952756455092518864175236862862870413760453000024409354143875178094812093360337850030466413954915153624056893922205699773696289657597402906028844888375464411798663834464788214702079157656668956305921924659858021377254924465780972413868307003264077417424314627092016265142074043971582233276910682415192081257990522911031535105746076550692401822388657200671820129661279160316347651425021333948320223223999326921534908799773751768085815174898847092129849853663089490469771318535640834067780502543994914622172929106004218288442205691603224604794559216607568619140749556649827506539831089210662837968668985800671590853507734394374637008570243276310203760561882928096107010525735702193946847375410759408842234548269618797240816539352072583356088360911192958088950125756983011275896020595477054120325987947818681483240301527001261504559082922433400828039662298034551598248926896094831235535671773265031301835618746958661357323463135534392495406052233542164114478269801888308505564636267842985332690465991317888316181831147686932991173723785525092062012400190570539775761527242544104323993758889042333167406179613735920886911405903153369113611600473078207707494086005343357978023241119416849344759752431675026728673743493331895782555511942532998391683316328808808907695662618627774498497228788873803714226758499359235960627231155213495295351724724831558821309585381628889606639008766334604309338226904887111616399254178146074861391141969892486705289251450270026346605406953428556089471385103340848516319760805018369874364315467287515878904959039363364744521613663971970289111284648334406023389314750331908745874664320841851248782424108514130298238511965544519444318072821416095780155538441732565017435933770263422890921361581646027909968034804855154580990991921103364945757238729768682578850753934000877529338672913875931423514987300568665045045324364049731842011480559153572325603918942142178811594150933343872727027404156746319719347749590328166797430408840100762823956690292982219458727882693322347397779642114344112114159753219077332090984612616952575673930411658097334079343362376185783719734202130089696682833138326219985045320456577577583733032748900487181329601381064476189784381624877797778949588190007254552426702879036478650715382626839712445281693294068678418035801638408440271700773851152331875321539351182932684589237494975478849196808928465857340490916335547935445410095413524467028015364383486209808922768039287869093806025474760070976229616104519352389007847272827237250616005855489891352020544070026269434939646208339432286859557475196678956079640287473513661520056853822943710491402095932031072325527295837533985758055699007758980299267989421311622330297393282812140322041690536135997250470000706141945155972444894470002380186039385641699044452163870887600122726280934755919889346341841815503779925445988151914571606517848275383286879068254498863148582111158948492239237095944488704711905903406163549228763903077303843609644208275967125768169575726558991528646622388327099289173930734775059526456604496919172470835675087631721793673309398674370463154256121390614119793045021437789869505590753108174545697275066794829145017707910513928857930289030322755687947271678720669128639495636304405464459285395816144169911303636352894917468959288968879461195459596537201007803740999544390274242584071681601098637799637238585315337222557652997449700588152743574974318764174334585650018738770196981227325788204004273107733868065421235000813571305696360577160913465483335583043221536590940349662382942889375145841072489549891816057796154420570114365120859797026313165868110578496193749396764701481734905351551421941886550037574787997008294889203260679404302025518335636829349465272251982908759217677759857930495149055870657060883154744972921968409852267413049730209058463227718614551236700150368996077212856207407685002521541571831292069814923322492689072798584113159255236027877968392830764021828910479736923179548418303405809694337949762853198505178369968672324810917246535557269719340588358577084940547738346812734589529476617754979502641521762022655329319052763867568380884584065995449083115539526338878520794460400106824861324047394883675294772091281414317314793864301982070825429651769141216094578198612020845396306079672592763492236522141024398847378357196599157328888097777256031073931008551666361704587706284352632309850378175005093955727597661057619147624692593067361290137642963852398417960129799321672366551043110534397622599548192247656922939182757320882585623615891112018290438828064691918948222868051366938406099748484896214301847324422589521945217076725684692390303111440608436300138769774967758374998411773300744398235151829550459451895361647350251488882766941884886366185155651420820026425262876542413292899110561753038618540260523878411457271076989646181828357822862259192838616824266056026354529754439470553696256691029936393294046118182612664681156411095486623589928931611703145162745591418702648625100984736526991307937460014185019942753540286706069355706338475550869858933853801090230468624128066505124814712814059904593590878914647014532987945164974813543091112966004653557837670778090071667285241639364643581447047999976135976743608176910797781994287224844698386917736004031960620490851266273658605033503766701905859086652187970462063461860483703167268228053804871024826631060795336579857849649540523860222826596408056689936595017470887889157132264540693429822714782395147095975837002911652437483184862667452915492238739368341329818664351032182142066385492798942976388175083313865561038742301510225053462965599180019527775032732084269038080388627803580642599581035937921137105441063721452027341641702133463874881645225952889073956354723226855021521762238070734838396286881913735514644906921636722799193017883689772670412703943382022561378568341467077551369766464829287831048878745850275032818515499118457749632088785210858024381001542128737014819680491980135225225561874142946647062038189533954404398446865331862082435745824252421930327137468939223817519595908431841890852714116233629174016426410499887967070389189562735944398823719598598852783432884029262792513815244054549662326665086038493748369488704112699900887061801624811158415818161699148812351217858372126408410228081497211063246378321773121527729825342936333994688923542227469381598413142509166725147074904647352229201884527589304540113362190313334089607559545016403167851975272879371603462218054488234957587971162761378893905428911936521165692732726804937515015218624134469146593089244233687467286588762113310481818160021553146047914815214462095755961851334741539967334904977470696969634836630898813222166213594244132137387880290979559928128442994238459056613354193507624225017592792081515579159630358708700425863158384346719737915578482024063514464237917109468419214670190473598909756876601088183862704523344989343797201485401967007529605668279528556583091589933196437604398085950496487729578147132438773615932167572632600908043815691153380815700224897425037717422285704676627738877403464355065080689920516128488799983454563199314021093361698625698628053162246579741594025898818417411008812297490376476695185768436898898318314389444032808344751420534044104019678756586129440303461009066373924878260215736285989155713173748854254726051388048598247549926353580867795840195179797677309300273326827044927123930197624950089024122891950277819154397959577859182372305704341624152882000351614434116411787741480510832181403246799340340484392601347152402585332302008258446739636195004898029821957704702266895788593195404572909520680180375692710954641486724703808622793099773753436568806285387392338744004471472437691812439217732540172692172933928058516224512380289203089290695972045205628650206857091271227071777546386685249910735260434850553366295640489162046655152405674651583890817882756755906356619588647470743723356131974015722312655301716817352104000356364243111058242945878635905211055721798489998800215219204576080355445131896074830804619616429085129649460144733102125540626104058066975555954578059063379431086291372515708395617138980005687458967861710502841984556713760957897640926366142201872155558727527838946441475112033270318248357558749560633322013709165766109925513369964547805930665343728388779486984404929862963515403070545537772014968443679779441357452070018732614275775418505730685254597088250909228308312986519929920730328369110125339514613972447637319760660798265860567244934054756607895747236645066531716422458652865186843709086286148378679821450972015897406209475872221870234231575469563322140432207098627857366484622030055191499701495636500298975545882608942828408325257307331954948940112406375648499492401835370753920314553072239418077372270853620605513549529318751786523981936715574210957748776520963450773108966066941874195360658065979775113011304037156015097215811555895137768528408281574828086257050394023858925134495319405830288042665475835277952004095698531113952499023987460280094889383229198024790248365748664903040609346290502375654957678125561339580704563349389303745903416202040733786239802888005354176641660380865244883113537843645275184987882166536815932012758711681434856139426220151605228364654696914429625934251015118720687995009966505982452763795994106499428151217727249833808389991925588506000470008036596316989672016297068644811187915462032552606229062317204156667367178236782576891921034943672315300174485067360341608233069949728392130214455765471962581554469734624686274304271693255506263521385535942065147839318623106769679628592815201725619701429740447307100797993004579011963417461873735585461752851913131392519823700416925494023269361720397433786655227920729768597757106222060702267724886545983619259101070554295683246895510843850441590694843842496060988122103164418860010197617850265174082484945825797901722382797590012048463073839626090467208068340823152297922488288651878392364294226711031854943183055072229391786770306212640984765878659431742823799171322984663348713874292157535439423763371278211460049631728118999248631535458446001045288217708762482175893974764929350958024266753634812749808183523959263012159825124419281060874720987833058166011837349605328222815395186935558971781444378889585886914155696006288508464135074251783287395133461376087127322205740884356119168663625759880170392392162010794473487043160634071545690098462011845418351585580888318784296998624011976924123803881010088496889237104893283358126930764470027676497825992957342349473800339390987147555500794263498561842662844850300620987863696727977277821684428010358692061765912423135850837141755592686056968132882513079994753591476229923584140420953814335034056159092845813285332245792402592799409984860220582986954846897049858516564393371051637842697140411366124361059772530731221553715754492110745243463337347081231639440790458314537865175201509134434240577107232998619667446915907778339060870129884216650068628219077257013899387446918210038013311263049671262764567207991198384361628183932710198853986694121780110046822587660087006783436601717126985011124786105952078186158310809674450486576678167668788100421044385672599056097248567061976792976538448875037560087255729745585444435980182244964901934463813556484530036051420805494507659762950039943338607676163889011066622093392728836215261469315717296697640669820971305622116863125807388567485120822001158847698310084759622058759014470580432476135658078364426963838064238089070856090654902331899445499154431637282173063517865500002931823923330772779834460401387997566767908967083199974569205727856605419140276440882640350783293692522212412177570130560195115083438328470092301571135640863311654379814475592235422228296816634938073580264350659510370781370297087018360681312870264376817399991018955351172352424153252300990890948140680396777092917963944088587489628240557806144823788993312530382812026668126879550989971865492790027426266455236761040222064179550996185784236975415265273259287417926954555820225677743788055461670003169769974310308995854431977442165778313128354273365214948396684502955504466211810651160081611942922763622998391866214700321941204817812848159207095780297786147210115522667130731968479876402903130447546464281675623024036270593291061961643149409610098047441526596887276531453965689376464667555247241408793568671688487521005265056121952791161457325615429992624813060879873982482121836115752902326935320187890084920259322376652610504415072537761601899620452788297916679937186360119049469528973210282453106929299078045770588981302884805664716328605496222325542228364987130553420049064001908983672131345812647939926594052046591228911959005590112112610384865418761608654266073420778063144951360826234666713054041205829498330293473448960509923419441860392037103997910068888683815465457222673881394951635692044990262500761907154356327151438654557165258790128717397746710860068978091812880066689341242586264875568327277458728281984829229392767993847691229540956454161948561299282468821230418522350468098454208521497388755171846243102842183726638580676132160845899733959948759307501603236423155574698281255222458423641069166563872461339900218475557299376820008025757175019030282945959290385761867048138309606893442692424960067044224733297226662049548736967128372284747941899150036177287302744826747766364074605439802861986003251842746517113048672578723235406296077879274987531312963773468813598574623970804784641969858353816190527904480198727584664894226530028257953753831332703431987135285718414094470940949470175888353127734316109081878975399416371060643753463593691674479503961358119562826941361479386183070131937055181732437160335623857541954549916921220195014328134149227224804797346801862133466432820745858951965092996264775381998790291411043883849399994045268599917885704608484114943731592760171277316726265545811031357041536926325056232757356184888204990156910349086190358829575308477261029119891690165530784099926250687043337272527628475035267078940202226233324802973853047876535568574305676534394801990305062604855637778999210497646386353665969093575453838193955605281561955783471733201979627656951138122431476715200898418487483644681225449397600495563344340795369392557015682547395583736125750382768219459179766111718178539870745298680200532145080983310765236010725904510090926957773777406321534647323430695045722942534522931694647818211159058816375185921493250293291722843329659878361759267030031122365628822921205190829082142593476459143217127047383795867359548108333901465014802008111883788729894760643360320908521270787153126883970988989556265931532587756732501800875889102991833463262193160140470970214791666187836300602187096016605048299525132867428144360393833595610058740445945997629974695262551632793285711296367430218041321779549584499925898943302729260602382883325880785815953666219828342401715833740232213481404047307706900329508606702974451262440703530143399364954634712694643727287930100521309081555406161153568726751369934061957535922428485646848588240256327586620282365217374822304892969265118543664282582980704486051035928395818409017318816529065034083519955688462813160760359321571506426886289207067588045721603373879483894986398778848105497594867834320979926870899877079785509811145503248185410065886282553944898870027656340543903535911402230649787537981181411475729564537727101102344822264725076908924006267821073080964105494204709582173422161456186908535099112373022876864872937405547286897822048634141969167918162289677962422396182938261557837668017837091293487124470855881161298534989636462841324235704154506228599097598354267259955881522905665734523786353272696386827065946107632797272702970706178240208421413067163640332786119066954230297962680022706883378260807311734555750150754468320430014857535075375490442302070718677132618864177368958992450683987718003902758052417019029749445252559698358454185792200314888376533628886862078534031676990285665352449403595334228916754564147512222087061753788828314562663982402089331468411614586471014370305258931695420719222978590746342391432342876844313739694152276476095125906890912981308506856188683902952788556472110928856395960367952942758308342189444878876779413264334293473936668494114267732420004481088888047260113906717509518778935941854512646473956611206664467033294913533725211393497535753970423675210623431504551675610359471256182368828952030550870753228549850358254038294583553506848430070436750060359067665511351392994774204350679480248790925530093885851686670316461558596288020165210703806027972079434005024052680030297119374096758815084075739912642102224261178025505471381334304832926372567028977527910736673475250464185742112248915121346810476594823324172496917754223866510123837272588796344910694384898323838458954961923521953938649516169309780212464387443969583788662906178428764519901797366089057237895713378558294773712899032699511118370023992068347658866915082083336121636522507204805761364658276512374531537124080335977850131696658504184546577503948540849747582053306061934318138246389689906817830201161819390299141426765699320600026730485783312625365292406246096024673468653527641230209851253822893046990622667825553924390864568880898732648423333821431626603689046175669028483681746104181560232293361319578660616162533357283123488025104764530840813938444333565284908983061320464688374434877281454119628866526526191072083574710999646492553508447394638277989532854462940225717794500065197454446501845137023503712913702021802778986468481697825471900504982748548204925739007092740385503893242387859936460362507365350910715852246704664316483902619281256532607311268395329238355455479900370077550215294495532106873697391399017382205236566102429878510069791017942142459245333212199020824189893882223967460073596340308426583503525643416994850683812568160151855362289124076534317978812986086629955675301324534563910771042880969713281671203367550755796975931275933068134374129005655151338390345771226171021095929992137010842213150195926088637145724530301968266558846255555660688524577592735737874920957634258770552130689701243489813614250419048506944703088277069584728734293108437618748303712633597672322910661044059080507485820253963116820880881250771656415144889824824869670177109712483910036244865386869195632554947745300529451930223653371197363127348650548567134001897736883786272382942411938010255283577799056707380979637017573539312743568344568784068980768673678410912625138364913414380428354416463408195667161328823240897842949851868891894599776325834623034508018706119949949686134483472617664931259233316325208584980496033224833376834989637855114472223688437644382197489776304222400999011290893510175773895590953933348921510926377331272563557995606494774946264877002474078075472350693641989182376331644482219165180807184605036814130089696223724767488111408860272529880116770369147617383123794616770436103504829285245154073463056122281052143365581265717272176612964323760976368665164264306998688185988760238735332008464674242743710707172176385792393696789119258549195486158233631670056115931347403347977038605415764156187543988272681825743707791588411832952578613661664452284123330489530842741929625811303168002928402538594766155392049293499637977951774685444327108445893177102392165150354349616656900101754847028381062300004387096985501289803382647947799213954748722383348031034889291168620561508539623491999470643527515423847359342496776894941916637329730190509838680727122255575811440403259547153523602410475799914831207236769419462069063262477841017143201171217179463823281094153326489710221133343539339411038527135063839032210992125293832496605813006656707076613179305347478611009025439355319429069847096839297723935967500675980166633280211036255002773095693685444127286773427897896501921188754892455482385385439892040332765562147139015461501597369818708630970074398057204606061186379089434512419710156247870225418128868494084240771414885773722873089556254792632306951424843043926819879192024180083999853173054276009376689436014098768113303291368514347191165844067502875545156473658076625020949801957855204114993361727767437330040186864845063372114036777564926397986825461028617518586635177218030948711831814208256508508862620746028178422054562796418068933356549922969270080969768726236860169324803818642647756923128215242316387031032192812739362762612322666622124159116002560020181985535377590139050029863728510402589261791769443326607395169384050031781059302466432246051924207610433776916142088059092084961672042842148740286199995193253525877826845408343453205851951870430963833268690905322557401730211426095886186059805233251377206526612409707005315643369273895471180916851230096476422605640739387556278473550488144816929899244676207707194802128484204007277910540457060777630463711657552986234552692616181369963744822375121356557962959394327084464498036992819591548958242394233821601627015252165823027219299686221830925085237076626724386496789601636569380188488329472489019826362374117022049485931548403892213083457223343729369972662098244590664194182793742657017651101708823860962883365242253065206610361480315946326616875204256092314051371756849928711332110055429084651993784125118584240939213490616107928029608397947563644931328007506834090001341433915504338162543422620141825175095437134895459418204879375405949853586714361816738560406752300595741299899247464960873926995209136933429133419503426056977266701917243829702018670539601076298007896616719477244800756163889258278474153830282830281050333558503766988619334284699104757264649684349939812503440998357364970105246265695077405206675903646907930289372975220505621879810569954952027266671322490960908340332630344471495711047227188291823106946781115381290898020306904919144040512125347328454143773945985463808878566975903712171942509599822528698611594497699713354254868913654346008892872801187542422692970658122128184919214045155355462824887115161056215126302715411315922477543855668409648885215848771393309008464473926504409197527594667472905611757159293383483082730960647852086846154286026398476615482034408198293434343760406888388775525347174114540301669537210617322180210668398347617898241660217277367719224503164982708057275879155685364482637660769577928161644866721657741249631731336536130312356260643455339012104313843211491189167601612101791704024409595191719329021811496828640560949249477475243156264198441836444957298289100663886456047216282857925252220634169121457400468704072842511352634136248721266258886965540696266883754617900240000276772152296583369105861006124876645482231559650085337440559273931333934337298949975070069127795301583793825888645660936137012122937775263777464856142547237021948695487975921432757142875103075298106327674538293146814395978034679462351622399649416258844367870476167357797682263852956063637209624387530851119481315421214957609462488381528104050914106879564358496990297095307322745209489007780276597018986478586944561506040798906343636885951929306883467323939636557519446351218361459545979679500405945309812675016582572040611101940734864112117163369541106747342843477174087039896226700965547789162035516182741908907317683321836963152364784646530294986365248623193214250977913199498342124733028654451543355738699459346486376817954804271105354579741516255949274692668368491586571321506639060182979151065514479309604417080027454869887932705976423603455148501785364907527697572172099646191452364424861630670098541369304936384248765779548792226956700744010339267382104931694968941319860994894584508366044593631156188145433664427528514108452059089490483745706314672718010856054488767041610965100636413040630992610742354149643521214034268435123753535401685514642612032218623320917054523041145123555212779488735109911541949517806782953990414526908390495460715625508270283305083126902674820187951446860177097748244764327620113406006562788119704079492278455627060849062490030971525626424045950915859056472254981543025180550298032144805066721872330038720446474513315419545070179816140335005837674985097943145015003139107549843916420372223806177222056660290621423538633267519858196236357608707634725933094407710708709286411157345361584642405530475670984308220061641477355804484589563651143324350594446189597236263585595495819986044496029401087119303148321975687717205168956688558891270643613219287573514754112396985556399698854672504272128366314996180577675194536363908981503459125041938183859364038273684618104798594742029140135155723240818320071451512661170959950315860075113880801296969624101722548601222870772388321405041754510058924221840267852545295904115694208627904435159318266077808435537106409110791978129065505723768466620440542739968383231699184297330719026044725676806126136918760027975543163569098584563314128267554387260843890291713253129242093235440553449507518252646726731585171278398657126362687948459325030171906822693598916542847443489667063142813625066501332503826478826716106426863515316394609987219886456711503903161768384042921913352777586461976829074096579389550578504669251969177244217156512037425086557307335592831969278038953640584546645820238458280025111934254491915305691227655332485458766233477580133315940870651185370909460294529532710273383283283962164923346692243472251267032895846164836819910380601827558371997852405184288743271868559377532287195234207753613995409240043233940503176918021152948185481563155218248467183631417697749622443684672665843804660627942030607545738161874362714411904057256179207781024211189974888031637142736824563098931158843109455072958977695343520672075965017022636522189844097272552384261597315419380356192106172224245488652382959448082634823488423992660893527549384103169629362202891846942329964491753413413500729899287610133594303735295632148959558523374552339018223630878243265134752425478858744531173118865515294731629625403286750755695941355668567450176433925422122561525432332583525507002490158881495390846247267246537415225226316330006251235782998050629041593164493846115461093880637033072707712669765634727365670750018380687644714788346223788243149599814472563845983574925317014675354988108929754838234002454816849582033621913611581859762545536397372864964867313822467361527197099583458334068992156411649807007701597184558493043567298606686562224893483467689612738664574606206305855807757722290814436816306807623914676727218656512433432798149260273464354357370659186574544900196538991294331867706390859139901570381252280601299304620537121285897405166046088056793211074019773836746843990634462492993376812588678693252319831280494686699215201521655802822265414556348378018955290646111499566437790196870205783510516512904743609258637253038665956351394994445929077289554670728863820269385625435321423771893151586101319384873308961670476474865993204656773428117801173567497042383640654970220974524549746895384414362799300328874204804439534414222298311190095502262014418887044261576432210392116145801384991850676529033957586032542011372499388970783847554033644871089047068804304523250902873921181780038476373837823225781539345438294244635863828723893073163843249658452767212792134897315146181461765420496779165721861496565661078400414290094475732754801644044400067079307732887117953933772219731493306915081334114603989772176997687062928128883407780797295567165447577231479695310044646143783171767812043823360589913731678733194416286651515879048237102573121966940608928057677258525000835388771509058318799211114269052327229776844905557858154467717393664575015211899539612155953643766623768369314656335478053912712014919851944063873140991440239782600341912406776016344112117883115079493303632581117708819957864310883046910230955115194185905764858301747858996444214509366947594709218514975268424184074120239816571427075345173806383517009039282792852330944685860980726181639470036851729416444694844379038459583081453839819625836960747296685653386504211675263656175405605537748247087819248135177891750113090225083454310067694013369514234322690573359483396126701625969756831246019178970360851322452257939806299955400582010650932101842351576614004946071746952638599248464785001990144483625985783055179751399732466436613944046271268234768079157448846784010674789583231594132830916630955332046220244358864928774580732711133175344938141979546885393325168166306839885025945321487192010672569782374109800367966150386433052936415588259020160640996551396254916704582479487023406322847734534734328983427196548857331828346391767426410015979052453606231485777777181661321110819033950943550059585894241133234179275311943803495279474521145420433698025598754899724503582028265890495684136459527454892570254955023704779803165935665716987577236385896358429597851556830972318038352591798755830556082108250645659204149080512281053798899382179998912882290568219923556707844068202763638913442642673059074058042367010548617811085974928692494908356210027066728271313841013122848104622529408150750451610095086210921478222651932186096360237284955919188173018135946761110709657630997089375762243325435947687327593657686663932351857127421024003980950780443591515348919168625636097107649730730839561309565310169370476370243025185276322153354331755578736207104341918437281663043424108212942529405829235483918651780391093877952932294348584168381892741925103392312068216114601680101653931930406727763847964972625750233286421674590885429059308140402253385383151480485974203337786537927233379971400214805819948701309593407709277180020962430133486183650199443027601579980296072791416631786192628541230516283527499063859026003276992442628574984180157088520438600727169093734163860159901197816560990251925942572595054283780462769395868707695082256995556453927296341972225761955370425375351518249379632346374735559849488871880088641519619440704574388783497001028234411279817619623978926110018274370269694496136691531651722755132351695503211316409203346189288971575937314324717352711407181526182875072169495298060438870949219331718303404927379666637747318129546636732036535670227852320316577926510213874396234510811080187099733255494343465615730596939439429319518174670776958633822884942815113927106416025051455874748394256169821423347896909741651704783664074096489535773096584056240248365183851837648277486515664193787743274909994496171107739434214022055390223279392874262249820242675224487585031016356615737097566380847197692701138457748157685536036097576990194334748418442848840816656127799017999733162276305624010294884358849182671668374679520530156863209423966289694427222287742451603632954682590339568963394910175455402873137829064492398117583134985906065676637990505968599257533289499931045435299988880316783215741455822017072759346644341597240385397033976662413285576447539355101524378054288663528629035909515266642952794170630729020859522965199225544500205936564103995793404985526858055189577774915392807082245738315570337259535785249245293963227904459870185610573055683593179819342878858808933389114992259273749364158551564661018859917230406543519988531027309511895523761288175263849552806196040422298964985780535602599694358731619618668461922692162586332914458849084386142597416775083338545284336964593277307386024625192444688670357717104366560855098142435117850016595311287679964791635870207829980323254518475213781489561048041108856058631468130849905571724547131358774718191646330695136824847462558322398020177748634369265945171715346297797392467476261082277568900606959805713551448303698097856636807541735078632788789668183814169552200056968103945697005257916160556364893826158367042712376016245014436003892921749729542965655277028547174408223252327733240807491875450650540501445806220459804694793907734362624620408780836665557925003609974866253671542483861905302878305524269424556297094920820083450605192120067153305144928286220078825222259288850645905402568994303607561181692173765675924999960684449362665467658476932532111013575591702597555190402505484393143267464903567276880766814530803809915613501417313675274458067764834877826995492587294082462441547837808516736539694394832655466114150690047495780191764151031555787344094297365960488330761798592320925546099138800654291754781885048374716998306971767174387453451364715034867289355311274738134677739314006707959498046082862553764478399555395567199356764974548108246429328026463017523680169847798838725893724298529028218977127946968469994984269519813456019421172135111808939440186559416359304501496551349032988419211978497986321809522630431074120172235845905801434679636150692182081529449220539769058362845352707901244044305856203789635889872049021066775702114865560679905466170617738758598365866102411172678563859224223553287100272915307021571914857443154405751728992094001256606405924500052140475894345183172304683219250933944096051597796682286050219556986872222451508095281155061580761175353419442986879026395749512659662432931421057110719264299077191071977054642792067890393815195834424171332600752412045073172928921710582246348331723792006991343433719090417544145942416740210830948817249495235678025861060259020706948169007816148561223139934426312031924715436471405369359910066248290285251750419067415578180991585295261346307563924432904405671678293409628928150686716335305505719037392913222258905911070766102962221363729744126909728128458160114930714662460176840484316463868987623884139203755615848733352165957373767491850881758107714898302555953296088450164964482686546370653466112802070019975299663020734637532782443320211106638249799531352120259224647477094285865632290202552954338776867545862238976929376167789749242681288132311803057920385199585194141313082283536215444633711875443134859142958408479242693137234825995493375675050196173843105256312011260280117145935708841532101166872502102551750765015867052181653231328329711319050630920181346793527001492118075806459715156653815848592441785642457139783899294214998938495043519175935939690312454084744635832594517764124158000724244315660893134858137991832152436083055627583215733332635016169257208008126669765043755987255031963108745752227066765303299819464876184236887048054337701870876632206112118742736290325252710746626094741105483204180301092886392705291900088814251745431423666575111969276056103776125313699582130798401492496779081301520329461367590518265393783036098433080367005603138543120098173446295043794135581084826966913055376851909114268507524255020795143804944517751001745433614063365526411894935952375344098795510838452226305118336830537037297622513899948312922345423837936054620807826498740024095716761676400088748484803714272498126346005580065047112404719641652695397266538036511043330460515507943910740653759135866658478410026546676818456630305987729542136676725512177803523014402172191849116005518083283903653389697227951073235397718084640697657261397858448493799204506697326932469464686103047712055562992400322310567327535049415286565054341481545536723356016027654183330001961462385278612901680007719516337454141111970101513423722331366712172908478429166982014071719395503242036601277929497587543416094778836536093844561503716653587854189395095872942582654188947601213526778221375368862189823952692018202389646180121169283482761935314807396130130304412235268434959381067410715589715896698079350502173315830786555076033298079231875836286698412767460314202000754337593107304175484787495740795096150511896446652032841520530685596120457974369272970317829881197583355194536211155503924107548577800996082177013404448169209168825698450665437374189698492317822451751547161363088357793626164444198317606189727388993814056243282571287324009250886072277742042788679698102213510658572875501715372162188864144615595861796792860762127317824195986640434963260037619549560057032607191342307156429303590618520621052301241313234811820160535712039300548351433391130230805590220240228812207456514364312124425731730733679344403019505633335925168993016135805087989811338072540199683021834606788588531698718937855355809016792441456170544367880525742582892548618105595738926910611877877833334368232843374393795239374576373726891771809209997854753039626463244765337100030362979747669487444358749826258758040685797111130434431767622238392894860096484615247944302697456699362020322656340446044892743595266418115151695375079284096369018088821202775635690564439824011204964138176888824062841616654382471114338387732597887922564133183628348288097742538794600035670632279020814114553707438339788529379569115395726699571630402728511357603410163063582619069786701765005993670165686512600750105527308068883646241858195847163292129279817341900181420712009632085901712448984785321419316190513249933636344835026674562853407944154264746485318760573760308205369220881534966169186055186039763930501656021743844682817373612759710700638344348337771539302647814522205937443362206728001244781228396167801509900561763895737609114800729826483557706621772630095362011859458871137491010792287576178242956031105543829019605492858783817020899636090287389184843111081014735825110059986919185441508049354754131896365027165622882962330496400564855298983392375250874135998093676173611097291648703804034421807890198773353058919921526354690471478282261630819617016976056038594247276789023599929275068220917369794994824722041154354448040378000512599154134935067520774108848274023324132453292335303671333212889394049676532328381402286409640232198441573534070762619949006349901800099250585536740450945223257686364487292538676723501020894280021267203468681429942192053288365978573643336871233712067110753763323611137502357189324766022557192312133370161638201294537049007500934238953653113443117813365833840181440176394253209824503100737848736111914774216707759130953268114562569509048530292854579164075448303449469373555722058177794304925217952742698250467791215347600073859223511551746474083877178290181563670929509576258460127598550460932009780777986930487121325150501847366319503560061655202639483763038410710694009919489239869362324960601038199990742192614047433309552013639942128862007326868296944299839069837993415952276888589356887017695269415540307260273946345789927267681613254201780316941113793612866640136112832446110404818355007853669174635147443120047714973969186910868748917685888441300436517365462045810090537156814466234201511085270620083836160068903818536645427854515122124470023503937339159882888503213607745073543436603346571576360824445580173586526738458946633751335239844932702672327349799650142422276703105822592744602833435924182307083622299449403190023490192775814709092538594433915868420908384651400045581673836980899752462338934156842609213827940603048922086216934485899786772928755906020765075865686458458995637293563397585503946820913159575711995510007488288787053095095995779922304955482496898833892732057971724974808495155415785889443176211182567940456232444371882538131726684666452913676929589850562413461812734835176704245825949455209768025326620837372610188748056835498146029894881292173294232236488608426754883125809204654095971550271727296415484665836490365161552911927282420688693274996168790964658390650114692711823608973407100362904589449429135627388288011358383372397707482853883058688072521108760060033435629052448451860529566097003898421822784259922605047081179100375376762815663646548948810601214384878410354848953768420723111554035336587031330106851222349970265142198482733901123534756122403149225319378897931001504855246686441086549473177703000583180469626374544933679762024426198971946731332733214905301094248863257919086338847475694735275143224864897915699352855762938103830077966936225853027040734660234844195090851441258756540828837777072380097169994647132597994576279482128043454174604822968227870308095577967561860144314221808016480723557247802878675877350776598971621403189240591454374896848204265919409285543504135562112209195932137244800477817402359486897602231696697018751271913348644323048196370581624138514742926885193364350629279683302378047657460825927013671150015735062921759124166533322240170825894862937867701655474133643624847369621430368672197180056795237467977066786461015639555669118170832195832968466202101009708566070793658481572974976582243651228972197463325258688998347876243979198091497292236030987243071941133282299843684606338228973935925435001112072598298697924416810269379289896659581268718536763391115133653828580760649161243605973375012001754066347938117471102941960540330205911198860943900874831853646252643342828415434325279302721454020490220959527074120272277767199890999390268894929194019983793781080012004568266253295734844835425633529798755254324985585668673554206731651701718531331247587092442858577505655195206842539256318772983096281262118053786338937643700787715592623326819284936287054220004327604192857288444822934888691419119426241605931894047367684920366674107372425153641180181319795815497116654624989617153958402544018973354206352014143878139674500843390267882736316512664286024052742124094618442677259861349744711410765222592187021498884655367253769517931013750933483772885171540081312804914817353786237051764070719469005928947158817592828748322941215303120771920695161821485513022437260985771269875380621406358896595158335205129202297402749234327433060653648444722425471528162941680423588688449154036748567212343933512008868161847321694628634491582134457363177498982166900667736433691460969108319115709520255937355902390524195028064758369427054560007299637827758011301735483448392290760714176608620495469256508907342866755018327747959038426981660606911777249739048485611789480305128963309898577748850412888774535743059543192509641047240890844201502938366834348478542448626634088628760724218133202420968362579660416094027526569302201590330803875356043740899761642645239306844152245518679373597240622433513996912064293818861984398304086537820788980154623308371339658076127718300902546885019979760916100929229304825530647815701612224052275570341203232530392191723570285301527824015117381653399147651268982436766632726523299244430972032594857099081488913145899120125511443855659140339183198091181766850670857167471846871880225590871439224790109023048851861446093362336865649358403261352636105268337527724660093986937934219621772330849079405847698363065893891236552069856419140544372917363777784647229350627024212194090895961350302554800503579521310692671551303101500896098411357382295890713330844665987665316451439504622439421942819724089196971085209959322869011007441421450841109498128110621582817137907075723078312064843095929531136479062906466823522045260995851883899663030865367122018086708002825071459763502987269362387642583542620202833439176062340692741512510995883297627805203643293013501536649836561735488919023093067654217078988325877023409435251540248805414452083096999392744114432882303361590274506406499985653880436790943117780525648359330773000024166127291015699918750422504753722557036373137833841065601925871322535337740945470607598951573591827516614072276741988154063059102987065951231135798239855096531249878599331774554573580676455762025550632322765359144409265341635224589909448872562843521259760643901588994173538693478839181202225082659863631815595641576966315486230102922480467850406521401876505616002072983167785174478837332590553455075205559445707858647600769124620306649241554171806162917089516185461929795111894362820665041429578542752820362368751345686917976675945875491990358154032227615713120830714995238702508240194346140851067940883093484698288102319294466131338532648536472498419940348700061222485747738706229408453913740041701993837082070735031248686515556424579912335376388331087334168267834595164289501992633918241697862142072490824147542863665667550640475388191630410174020884383537450361547668603022532137660169088404165203710237553988386527960442433124616023910637481087683725169651183252070237774283673995396709411963336674799382773557463476825002500030084833631843100516654211380585575580132895494976981044999449386115273718140015683309754942686118062351817024312771713787449628702532162034305420423994927598413816835615748939407564455708111271753616442504121714076621383134268796470173587280491931277183928555125823529381352259502618259062812532465123955450170564767663416004611025474716768271713711007619602581808060747940033981498945921304067148477718584180391208305287809044932050198849588394838549067882716331800468057167268281378313847525421069926488126167832357164192603581181101632987400479310938775159296865728089104490942108225033225974802574850213577776871350215993463757383791866518292203727885468814595183348778007586306784507778923365757645967951682853420698792105235346811968584583889324304678161706648928599960626831317875876584702461955527809672817817129669588169538702849313635829632218962940743434669572612056209808817474635545279235131803946642049424636037448496451454586435267766378023607600675896013061399131590733937529888292396816603468175692967829167000468728443847061703432373403527482386085507168349648637345910658588990250234711683299642187527281727184631784735880911927462164510445579875475272135237473719784949407740516916720145207563564641371879866423967918565227063567753549818262407396717449365512847264518619702861220136739295379802995863545279452769295538563289167192915219030381165671080181445672348169308593839891969075818187130553309438912532997232302994118718301957758404834351329037468662849224557233942687466867534490219700756736613963327108989266284919304972702698986914985797681085433985280615593829152645657262390177042917406465422360200409486401238025571618438439763414269710509406416858466619313632299199746829656733940551379720879721843447208949684025706739150192919298194206459675572221134591481826532846778414083964106827369742923057582328740838843116853700258369293625832922338532875177914765765968615906363026568948640258294782953367761472365041922319541089961044370468877934345534827274682535479771663143561313232910412218121131519354141369088896797332494009963163296233889591237306932180280130347251723225853515004111723452794926492699607447818222941166594467357124755274316447329500474508687213153080414245461150506359381701395478833392058420235637442318972054777293729603700037925791710605551127641185789340143567924007255560500302796138512903951418977211225072327463008287615130300971700504411823106736915077706167501659565512045639766986905303029101755870168179054915865101965001150729831787433733332151513585212797742003929229942299284361046412334343645038117004275097961371748690629575947013477919952430222328151861046594521526229666350525715347837686371667178044933905141861686003179231067214444911775056771963521981364322644374101983633934817123948326093426341988489189824790162875371621631096912712967510785834616158527267352622495403963585103257505829853759919957294589297697012314072040798033758381037811796864227521748590097858864632343867779329668363492073601605146246299576207215019964645955033810840593658263908810512317295510321057603746526854036624086482047906369265164507384113297945825388667680457500509036178021542347418795238123634715766074368387649706855582110691078386716517615505379865566370428536895402256322871801042390382639416172551170097874089293281415368072479467163157588484694475604747222847248016448563234400492521663074751361727779497918886933324075728362112183779699624217192645875410316988804206677407247768430305071909237939279579210714793542233303721079950838558776260681898812222747763914851193000819019047116290494122815894281772033379649302890321171940556183902937182547906281516345462961748601333829953787705400025536259131112787369262642902429882909964787353950494373455308437075880614126398718791265679469395291360247610135135361994355096452337092423725814932077068920519031353735668251638135758550717504574279423908922908951345635425395070176901375788151491130281786899928924615011595670834400861862128117068656486994439137352081092108778665882268267551102799194064360458813907897055960814733751194116887086304823073965423817861411887654595896017479513037881179771326604492683702579549631244284875155100963275333697608745315015524778327951065181829368434787015173418697621002179284034420913958160451497702947882175943844565250767431353422470152353976518283449376780357660992251579212873670399306564630467182497224154829023013304521139867954619061847707652943276457910486103036974258239160183460676760484657074065977535577631839337758817523071226599965802417410159456213828273863755247202076435841109010936996574732075320325863982404957733567567516894241051282896800086411556300539138743657494751910092630349327671643279218520117215326523531965996875175883338727323071777964046378256740284798616854363490614468995210880399369627345390307593634704708021223357136983964925223240107284136251279079758428291927543637370743599122941663081821280034878843406900832062861806143791701599087524650472594578069791386007252732812860120058109867042084720326098125872407459461315092647036836638308301607503096405422207586673013271615464451532748314680271334468089908542268325140224866923668966371351403610017645406025681352331377209368634300809231858452016115189458911063178759164357785355188478112183203022455948359875299855132559778945341477232027805249616363128333044513210516337888711761245793983839171845442062812273593327612676840158143462870785425468621692510472437479219861033924852751622544458865118768841784060838276879366317540164037110311648364486801628053714558791267753265950385478374976625508118090342366580955844979672066549194867102429592686388691369215473604768346330634368867039818029441897513910058250224171944794586322424287422661613015837372916555034071766192602983820068621057682680108252273667425581107197790713926606518331667757311478387300189435837444869232036153004656141753749403063956962212527568759219986156727396834399966548459632876473282316055640139269312131037593399359464132142136381794849353377244438964713415569955385806041951326801009765710541253053762219269429909171223421549295836167535009472669885753005642364443233568180161113210959350407397897299098555632291322937419281626357437463357118639814909186087129075405016235857636264144623344720774268676027373302876305775314652535144947023646452538961544967322553926301609425584849165214930031401965430044313218117125276201425511078747972581520794954193680562074702887748076435013793417274188354856822999107514732884423152872144283686036080299438055918101467002775641909930795890232577067222171348875647446519133828385753149295687404579068017456940596032959393045647728093077851262188484197695541134587062526179700049665972680074733988444239656875729406474321740936553819254177585300966343089732903524565375826703795820572899905846024266689315500480640692653077998784375780466697066421185294722847241813639978752446538134264460803012390554547188528730030766430793132732029116867763064890727609107767369055227837044111093635934789256229056776695359463139372201676683993602304571056384930348789125693778722958703793305792829438317585957580908283724475213584528759059125894099855414688266203946486116035888884915145315428913757114186386474828816228251092724449052503333704596399296454331088123027760641876534399035667493404217113127546538258781757566446546583386860386157787527735289780173367960819830839610067885601365650105431190937073197678838165053185005526632727008353676453580858412257853135678015411274080830029103408457843138469257532789852052840485527060362275635038918761064295164606582914579790640447746508370036104922340643490130785221390864169063582252797938776251408760258331142776916589078284654152027685009392265634011297967267259914629282756264927237321449705276928736823700435196506053158829670801136932439016702868789187919239089095892416915287601703991477017193086370818997979734056242780491725505344211382218359534129316649888951738334540643976212162253277390623759571725154165444479423656398527853512871729592250111600485010756628604807102205225162620136972633945097440698033830338285880307049348584725423147036533171551267801768384359086827159876857620220814489344746217175674138897244612348673356492401184029313211910448722443892189308271386626335471434457169963988489589380961572322180101412688717785038621568360772081942552122811677466343922338415862236736860387680921614419243004998283532611463489074432913525440131757119711557946113072106659276052713984616580302752403142310766538301857469400978842431935179351518250241138008298154985217516494370897626986223512732811387879080576637521348700341107129384506553993503298004406095788848140940832852846078905806538520464106203786904659295763605338170240929028729978879519396523359567165053025057977054513148046468432038196035136409937881238507553950476806079789458304618484932037406708184705214181786647525589603244017736170237153117823921327788305026115497492602556073714874512208808129255987930035856012071690938823532195386254533797608850413858711130294472926405781287515040434241763188015638669468410296669611332110087919845611689513139004910746824994748793091050305763365561617025033076941286444667115644216273764251450325240466730699963089143810967738673158712530526962027488390915258455828581492473114520494779760792238589146527992491973441161032060219279692623937906238262805464770784005226309369438234690510881411073524443236021096680430392026421770988924615808654625763343274813566723320174827663301527242449538892624259061342867465044672155218608239366173588059075626649278917276312398478689067925321549988979327318417140638173845541349988875873554594009432790297868860368927565245690363717307293608153098458916395617517285481408920535977449922365227986666050656373189550833393604597814483002868877229538869912223164620525583849153724566785921041851269180735984217803399665500890225556526374864010813397887697625516738123473303439605249110291891696698470525834030519450143611237097732900681912889316364197764131766339779856422922454450195408092879533037601579736153706848392837549604340500886047135044120072823761501863556207948952548558730792101803889639298350182885231352116744295806750202321179886622497015662895334377453582125946347697458535686355328881848148007418995370002089871025623333884121954983940784007745193264678236001786034528984340403764774003591796202411687682169784244602236823757257850432768795757300614509401263398236566940563541192781117526765955265270985152357431312301124504311807770767412469270212894660462157320192747110568454834467654980244892748523430139957031646381991034164731212495325596278980448033211962245032742800441944231634845496909946048710087503046689992649611298999221057938907155222146709727796305291913133732078997660399541700575591707856276595693283453155875505148574917224288699683338503405383177997767995664835002796219625786029486654169452856098692635381999145749617346509102611392781806166813144918059230477601932734339235212208178603943425200321000386928956854360891636712659401500988168470342229822866273438730994669586750532145860952563673845402741559596703001232834918911604400917335536437274410123220584472625368149143580535984362751912059448540446562257737663450578426966239214314789155368256868764112035611734936548007695611805411062354415821093422647945874023549788908703150074733628618845027630258644583447226174690039064365668268472011930124902405396612588636984568630036751512714312484813889251513353198419903685248506015506777674984224321414405204013421875282054565980492249709239538611029149348251263064452167134281009957094089959882790576034986626523922169812052866054123655029061108768922889950783048297870886505811718978257187323003579281935909465549226594854010748511585255750872332795877096652425173338555777004735914309870470113740843002205619590056998928481394582264846338418654237843090877941457775519160236315548267395141962334240596370619494649518022766314673516781521952681754725360232064626580147759248673696666636154279208664989500758405955488885174589021108427660568638020213110854538048612473040242242412725959650313195123780055703854598655760380318675836192090205067061588256195272320124719754232358049978723185803928539725095275522370177142315139143651272634008212310374504654790088998395234225508798368027968445675064226166751650268849570018607552923115581025406766004425072314322228170463937396052522089447234211517568173162295035287961195013952991899744079485169883487044775415515454854228261727260532163007347997380957157353477596884314564412324169730683883001535813769666765311036372102666842640577559927286713149181537199864155827608319853705263819943053008802564316853293691478593987223998978484774390323763819322662364007819642573373722168225642412202893447831532130532598081787595996304691329861309382711708431233479064464279935146002110306035342460110328594217884792423302282534939462449308269605312590038694314795318438571311217815771059486984380316747471176973873563006575256100167530645488581468886559712422042293263668974295691002179470748874940122177892809598820426151383530097232602887581855439280174376743353514943200192609073272395727650363681388527811126606591628369746019354240942014257627992691085646825195468517696318201917590205973079381552310890179681037773282840499847205098504874004249362129999897163691090046938539105337284501336566200439615848603633564804616461461188711335451564397030733695852403399765251411010544466580521687849202626695468041887403263801080577606906248588315988406601741057672639319984099206430979120293427298290375307161629977897539533640943033541649813510029497172539499195941450044222762329613407734451119201401988257323620813143415297337850519591376888139161016045419494884095169960934160440227442311547700070640766607686985764590707039579604643261408730300551850156500738046816898930246781779123143648622789953609700253294506026757364377103552948682593696941124485438093692964849906969586418504235610185495831241029153414758940090943671407577715351180248608621036763750790415891897421429291892827694073365788190128467969148639023550542472813272488780892052576745246081065603061088878369243719818344115986356508520606729048548370209683026336477877427030595424874616070911188022611698372989339048493077157130765270495146917981168001404014239262334213698168041078332904544948305895381403857679515888236268036727693323813283057467726184864923606545681682106602200243292767268114917706668286752978773141657906310204776054533100269835983316216447523117962642034998182093814317812250854308892626895777964888770708667343120025545447919852450960631583893840215317488808806691998162862782638659698148936621271013789129768907194226818155993983298782606469899762111321171775498704694149033049561144126379542533602724631210476307714182940853916945809094871728409128444613907776960440553230018848127126294405712266689992870985420653239956749169638738497153813323910397683166435789231575866539446799462424994537835512221613119010632363733825171053536715648731246950183914428635800368461660861005535168510004948882153128368137101829774741978119187072218657856116412212673166717298674567514102590989325179993391426906098578772630340755175771549464517966713216530701944675481239852878216791378467495408364407478398344982085227036476468879545103664720245380472168886455498422016618404002802179009583894582820486003192327615067527680724725757119566096166324102338232524937390365558357003035433121776566521685901279904239859117676926434584949890313993428820183817481129450788266613009051810582145946007482665815169109484844772944804218888179952424223952879695404201093015762838344654474804445005137169190225693892469156354989818979064985980976562644111367887025558314722380209118124020206194636314402361825477906019328512821093693956850958078150174525235953315463663574820364782980231655048039907709928172066111010715973066556008588561395907433024518040377369106578149312077436643887480019850936392156466383270961550480824010695657982220726821647289586205516743250851363469071766254394255525507491739547275410391749229416831208253762519998370442635333561606123442751149713408220345961791871162167256834559584626254469033453097501818654651960743538212584001492853974183867385483772016378169497787709405555434019011195086340232068698271414949483626396014843531678575872087969480989025629503349265023177546095301217742191460508542145957856895709647597187628417852520482052590823980092574056953629173729565019825591239228318230541742650872836917096969005217387632922431649480480700685244048673084211647155004952687203728067501624838184968029339492867868605718994564513397769178696000935589772992587575109745526316192879728264904418989255020149771424564773062215865665819142433817134386613518294621332698171166688711423064857277305586371990369243298286576491288998935651547074065710176067399565580495130088702813692932323904549476806011089577197927084237740246327584042003862136590947857368632209986383891843697115370834738263817413760456954718350117966724509314809985943712643706246162373795909767045860928265658610849745267638533440761660503305326763660610172166982852472448307228129081152401651429826910325595929968831325724047203724160254794943140856156884971615656584282453524061229593256401199272032594761725492263745409175921900914868024463418332696188267877446758116504819639316367424124003375348933667128765711374448852146982277940048809820924932898661280288684853653471110232350617242500320029826144418094280775991766601496364164755055714403250321399191035498596272374280578065268915159752547655611446445750003534101289919230845262621831810941147539076505502893644816897744491707337504824341732443142984745202972654355705850698070637472434149541977301800555219288715861289785649316786192170831063949941926510023805025062737114886393894438069520989069552342530741992768275739217668419771524708511813069506913532763505396721848211000405341823398699775621469941374086835303846902018226925271301176207871578050126818278742231337208483071330854660031021559350456421886433845516913446758721151819349210829543833746545246113087168407744269735288967901339498163409958722502722454616880595488797793346139776286842804393674011035734322801388790136791319905612089980429761215847165866887668296702853185591173296786704024117182542782668071684238206496872261281494994006906167355168680633677387633772647941024867671857317721870518109296980761830136795439260725585525904297548659321329296529762673836940740796189256067766723680227718664554416064085900892959676541557194562214314234747218814421366542134474521790160356522941712290851670847626419402294834850586202533690094250891144845199073970509812635329399844599381727981980500388852088699878461256386940382114964733827569692630832343722278366237270996614996585361512661200376266803529964749257369974064528581511543311075968926584892733543298655966716311186495770383891626343092228036020416998794420474429091245817448728965309997272729279589767955352485284600437713339472472112707212832702870648226733409706585206060845114291786997407609703057282865482018448708133110170294556094541480274586725548540912280866665126945249364345485813212669932068370588415449760113861471186105217002130516764927929491554625647134788344041243561457603382975122988037089826713301905276324283749787553647550029958938526692076494601459399708727521650030251565792228916717766129841225100724864270606266111822398819482985067421817174668170096276564157843365445020280987674843149231981633651840363139766234470471629735876299850635598788833367568670098503716933200242116632645214753950670099976450776538221095573536021459466148380380501620538414682815181464531437611256536525701533698111975063445155732002732831994599027805014723907727371001080167498753738668488483666551561949417650784962017865101933304987222035273123209963727661599571027766572867329273793132720193605354257967647857448540339316440332218528633193839350822337018670461744454131333264559060523669227482996660813595707764016622207254047276322191742717888811337305088391887128092457068271793665033463786252505026625555552213669133549609785420733521446799580504286695203775791355290504539177947023073959120577390168456437604262060306921019651332245189641856034831039547039137678717898155922472634008535252013294808487768952131275316967985036257643416901225254703830887063385234105005675275086776499514020518685942933062298275853315308822417739695458692080888967493391190812103934134348078466706402545302444610588116537367657282947689383612889427199837179251077215421105171567725754169968897192105293162794257714548153670136989856149353167302486321695597585343861481804209628511826053559053674238510180198548404800060550099577974483191113683518558291890415349345775100408989893792949036103966407876891180257299379834133287586976660324060101605798286184897832737250645153063416393974174990974781459073152350323301205380629555035834942357933559452307662925155622138705778572307172702252006906411421163549077041238641606805427315124431601245760853555828634235598965963104052702246669670957362990693433480494142398922444920026886761227372773214451935226098977970099005155443006367975112405170323638051223637988811202528008301560090176190952375255442091376987826061812288986025500288302538875570909017019003104957543690240622605334317241613903800493601625951117737097163906287791152083893552829077213119872640405351230476903424080449349053795014340035471523748645214029495336160666439210429010065505437659869614587975537426199860674211157367278707222221987995856963288779215918010708624063793615881830210215334561753799322676915283561519565121960867004202945540303141811692493293751115339373312832855861260067091713900650963019765333625778154053941754010662444188815349529179359645759951720291817684195101258040198512427800702245342823067408001280416849085205166223322446167981934061095107744769681855743392974565186367285960620257561122801767374006253043677869707240628918115690192030128348762653612123152980562763762782971572890874585116442822309756833706831675735083454261721917883497785368815937838641166611351119237891642694446159735773366214025729251344675668516384749568693082619494374583910881101912113160108351789940051892219771365497654864062044317030074136469628459230562127969936878571162524290732148243516432634146434209380838494705085193870548064175123909954605461513474214891913635078761337167698946392649437061059377929581822838670696021057156135757908567140425800849589637499946605908386604789216279854302435947551119770230818811015455550315657946358829015352885654499832736112742110372522783908650601575037009253431759509039252998719211155174110519899052180170924476354492524748328467676527427964056814734175540935084432202586235087418541323500898613913571783405939652134454692210939422147214751677995719019829787868277246720097723502253451916979752545127247439738601010567917976102843479446621866082150704903197399334322624145560723242390482889598557147814773046487425017127210208078901561955369315209657976226836596688014456815827996389212201702248799222759269727983629812733768179222300031607491130987529286438902341895011771622129941878411229691912581292751344639772674059747992059818638306764243807357600626982240441630970717949852098462711541527082914012412848701537466308719856917241594533784563415200777638270360241552475784946767683329534742713129960118324737343869279771035167232770727109727309442251283124712100602047069657544774166410445994958030981597876719716179012744728798389919669458707012767442134258962091411786377349532350560615638838536686722983612260427320182499455994077514345257831894955031632484095653351295161755609300796319353286759686020911882445487796245174212223040729776770539623413750536234407392679648158723138124398478897967053827033324140272056306498847144148480829443335998655889959329405738799754812535303855014491714960019536394641168022895368207472974478314247406163901429133423793620427896376750786869564603110016077284857351165233362173569226644959754467344180839023087986528160924791593113836006659065763593714980355788300964150888534876900118433121643660264849897157653118602134431011853053664930209883973520654320996166821785647190237686793042253213573307511662776039670568541222360794086557195608710256054361797033927572262710163532454950216116235983056849672798165868540284876567565544834542263938940814015124529719620594760708239323904845372221516892736953934111990615456451665431603966142525708030483819914544807880698533395362418793800195100972422826505304556901573188471013064185954562396320294484043261265446362310550346189510553174486912795103537673867499307874556838733672408771532236697676543380349630329022024267155549292307005265738685528643699465805662953617575018652994050468139129055134499823599903554618702810393252346753822695079394991290876168255157405290308856007137365123522294751739432013289422900250979853181812753878523808198129119717833126937119377479564446223919177349627603552148181263179306813353126189568746459173055866508740179226913889024274750491232301121184720776046733511136049760871385658261278837831039391489048861848919659096290827558211170086605802244496465492294223374992297374559167029380576861214833303712493031917594594361370901349320401843225095799036867606101730178379841794923130886503835674518348260926694616938699923082295086536293338975476039691036537863409826633888344016824235053027007019806089914659845052318440165954876534775879202793134956859077952941271450097764139873828711469706259721428893825653709705632843166460479840573060093632378425984654984501353887172639644173972845045171848597707969494757357661734036310764956425997292162860374467089239241348812684545903634223034545631497060352867833191925490299219667925876659939902840941702858232854779265716205185191286327351579474947525754500392404561691160400949736562714093682423566646216218290583265567877819031556377772400427195572527789648811458574539148196843622841926075439450032147683189951118433750702397558036972361742284707646853815122033724046148914606935020020505520485988226375232165278168794069103291092368973347238643697497134874213700431391557170271300966600269950077147942372947151545748763789448149979912776018192656804541828803069975570306769259073833649418288221301588385331338187324268073987600918477351451014191625960866376421621005638885959023157874813531067198493690546274237012376544566825167697477789681653705447859524581803044353308599750736015194876506929423629446809866925066006786857098965275680468373121948590903184386015349801839327931799962873828435981987003563127596505757832801325477083963428629984524198095083802392617078523766902239539442817052412217201771263598517732802884522218758698466240960935830935041301624391776419490520066737688230735299788555788555126883370796580729261243177055614773235231383292116637122994611032071321036192891279184762729650343372650073484237172891228939988890226371373256831624931013220258200832342715276050776140112541669909629230970899859619157262673819766412456807479846061945100346007154598533210057662445189099927783537612406308575052881751065088299996842449545881732576667423333580785122923560795723981498217178747205782677692832490467118819211337297780552110050087199586473837384639719410604737485643428118756711424707694403308195005555387914175859081727875975506596648102946094937888294822661175606964416278862818737671832315426240516398866342926311002711658237020288457671053899795608121199748143160996158532966787186952380578969460787324623646784334460124010888776049658695128280773724072651556840137227299480911403047775069301835571690846126896929967939297434962869013162061015164332981181173222184620365803864952016102941771014794836855046372471106814839235942982363648776387509799682814127583817072149437761128576117675724645529510606188415458767656819549409827480156700099102515464963090457622122816908566385870823783502678089532317375552958499746220949679694825734199646233362124931475322854230597228816031045186288928938499425002045326178040404138287373871739763752645839440430972499855250571952857115852250987647912305113602442853015767972210313121468346115883087699777030245761309262277987673100008916440474490186124641183215279276964849632509311957779204590529533036578708829795137793846754751199758510871771668088378526409026291444353459140720145487542722387775578756894410763319650661194057075921775677583215392020043725855029249964207939242729457010645307353301064868051721082497330698614947951220352586759879179294997194409526124067193638145695346899611407326106151363279472693351197371498044857362241991363056029227346618562064312844337942742224283295961941487510024408725771114691839203111094014012545442202965626749693811506797230978428572689294803807410208145383476550925255742037553551382205089173950432969749170951553812354697659425067355011589790131491234382851427309757545015372719078657111867143270070454867830337326957429305551768368675132219485032355516082326202724912079893927040161355273134762163312736451682756123323236039323727198346512244312554094565487932361726220135552040447989225087682288493704593549890618997236668115006951490804507622522572372938829529087169636877472953320801198927766086847729361620948994270413532675257246249030876058167837177250440239990496100460655525079268865781082965657905757850559741745843346630058361927948769292714400379159617274129665465035203056930203049205564708161698954967608012561937319347979200485642682012561025175480901386713346821695256884878068311679041202167019382811550132837033110054928110728552525247883352468751888232912286138034798271545743623473487704065775919974529642753356169988434180350689214382048850858486447262870792144629125393845486510534147794443431421429569163064604570181690977649037923907575101494435481395818340387999154732310870885785630403487513525354226040803991585389289231382788780471401573582301505375946119949411740859119406704298733882743188891098727056827944752472775946876127664451186501692145861518584250612412170323632503266858498147744466181424565317918168794815000264416137344753065647590738758091003709496641674426788122774447392934460000342441872349458653524246372780518710940426240738387689280715994169800139059038483989868751522090736274108406885789993047022939052203864742198422531951602870034239215414430918216302616144088539114317290827728269165519014042751980681198286057895355481660007460683795687783885105903061499493009563415349241383672500932972681799114566472929815633073278686228876228302362341525970575722723920658378242265052648156145909594917889295444557411917341579929831941974002577148133015171740341351619395197226965470463236390695287520407317282203667351310864208538646447213997015529201977336737211301731654901822394337897963551281570215191010152008090578162929885076101112095849224882333004090141655039435618125185609899818317547799085589898041298413007534445349821804377694433265325117004259720537606842486874395799009065617665235642560794207036579925332515140653181140649003899153202462274124024818316337588579779700147464126370607681827055343260225454425523973283806917000074212726593299432389301887263116311709476136376927494127217251258405535976181899491054790357003003296841959536351438269450705265775155493436809385664238094976264879067519145040922634298646872621627955959365889450734793370480184179629290313980436043602789615273453846768164325799220296634681000361032966796281954256449564959424823288561321862762309946296729777002050183026221472594083123134665651950210616812715703699011562097141875829046720423747168239716653020626389851085579623448751891191839753272351492977876247519253729324214785353719469351092963760405572753083411793019137216298112400557519656778015127665999505401295645281731430865907092155639529810514748240067514255556789348697592814171741668011683948673153377411777625666969497339033545134574247519661405363112412128405958518210462134511359878684684761827423541965471219373333300466453438318384730199557777165798529482415996746896849480102079220287872072479077280463631515406096310944562978657295505245523017261365026525425390103002922458670565741584715604489535906041797316760407640487599728160091814197345636545773789517362677012870323699542026947179893263446635276013805195796678117728096955282873606669755681023159174438638582786578464132076781066472695241080931206097001604539089348643805697628345178617318606411014639052377821062984194635236413738005356570215208538027583925884404673171804015226913462453232359264394052772972642039551675342364894228200134206905845718064597266503520084072994639051916254816569728000934549346385577074145774947032103494565414351284740669092128934248244832089446023450949797926792589439987424211518912080716472712568326443410762495122454150423737204013796982718074488063715874404505115663150423009959007740246927953619120957055061926512979560027096317882914592973726802626207146344009851367792627931195099788293351927178040215606989537680437260139904506111369797157501281745952796067347775657158093296699321379956395021287413703307374558726259151886932111676124335647947082702993099583486890149230507119688827343246238391864090081817235541437626732828056587706583271511000544454125203317910665395653462606573859654773105013515532694935343900330771239320652402754123707334338706217310199191708756197486629456109877584971083441481475159488958645113542000774005116203423033224777976225076333585532014427610301025641455205242118806334684033361089891243112064634772738651468403367632736514485632897604264001380606821812347159563157751300768605207713599004320803082495176127313656707222928928267557008108843803067654854027205111278091690061932591350867407676985355053084669304166936941885547017709367946292803568713059385717640639761614793660288736684709188284370195361720250947395257334280000526295032478686401936063170986788099296065961689922090290816997156374061640012162166436403424890479520284875720666485779569285426605897781146919598737386005709986310425142200205829236220668549671307207794318315064764282317038658168043512755042322122025317867237008306135352313674795415079673620911754410455597619884067658565911005084400657862856193822149177384642492918862718876184962481868730084549282967676632694549268690729326891117027314926886342581506816273447277810432012860737536501169430979610594639967827106737804181973126678598082995543254993136730461858025933041656679796027478261604804087578896766438856388843776578714127738669474683526787889129791629004782969115731824375114335135058293917193163056578084792656056790796016830370382368978632617912969063519457083486151876140624038526114843733401796855729232634411434917710276198162495610647736821646797940059180982069056956917912999265246997766033272946730436986789569990471583589377006891949699124318741531949043954435558433090892930578594726212950083896652009513516036335275229088502452977434093266331566673277417808677881058700573399769343758288472008707689793319637365843496328869451957959476143611703287977950649357132167752860543972852610405380384386834175043417888421320737511396824373720206403995358662901567914654293502406946192710070269937014372743377815880549498120921822114935166655445386935703975862709382758217710782425721258419688936339673837647346696265142200532713808676011837494647646449769983576870770802673402979038187438787942734081196640958209631471745809103637840784281987264394132372857289695681019541994236339553890154422986491098307445539275814767128559194028030481832201908724358589258305195169311011225576927031674555260996553964098851903350295628700730921473861498810367526723737183432509958421800255534618333686119146979055618607903678944519912382937386308880683532551325811838246094162697937934845864114820255761193070280986727321454038293499363435668845446189530848620539067468180230244499471044828732688518748172072862108111322804196221041358065787277129208249090687456488651799350573320638399876840329676878407605232709123151360611056412323833083727837217808469937306992740584758726212967596644060330394457335047135323449446144631514333979421585548334711402330066332698370147500767177116589922885056859997192844466794611501649193096045310455559973103362889981084668895375558071598219916044317204011761143387862908161635246884036485449618326982788536597170606656216654981906353763734043764870800486532496884066364368021624537453617107067875224559815177898315862144934497403514693298999004234959216304975185527405416766745271796952523465597432400274196041107563286860933907671082022514410431137793563453463082009753932341236903451955614209035179110260574367624607414979857364490790926581207224042534792570294345243575431387658842226454535243469766962737655428674559779702553376979991893399775206992798805863453538697664447202849729924599378906788439916398833302240470489645001374763128832456917820538737089077862180798076882416010860692000675339981819491555860902586849431115076496363907287976976457524461044399225646331811784101942694220251732977211987850360060550043529748963919545751705415664675278393638510999075341445109566845329281579121679406162614954555467219175688929423008103344056982188643129759468738525906636901707412893371092288494045182844981538400011163731134724859622757019897222438972392787524906257322544486575161230958678843431319563034459622095610740375633805894140837844077760164109868601076481209188446759576084988648089107750886344948112469840029181693362041492278060057521153471784264327321125235042233798354798358827570657495608615185032736762173704102208412624961177816708883136857385863201473755831189023289272798878893925479024213920714568936754865765948168038106841189183058278838518855515658724594070007203663434597185932299147871788901051950376138091327121298435817765698946764356369214263982670789603020656874602310614728075225913599298558699080320529585026326322514696096858536389388265223694238898221876085569308038702456434252408367142798032050944642579857943355994951912609605866501085928437006704591221867795484617232640029306692953277981389413652529918046182195565423640958373651727699878395118011804712847294596430892861217198293060909203318442997189894403461555880008479036624329350236733017160648321833964035564211510369160873739294128582908607249486970796152576780107066355795239741653678765804173290674110764284096869376831463602641238072744788543735185380799492723418443024562424393583000642598131465132351143035508103767890791893809673021791908595547839995203430025460004695196494810523336041464364454857132106746603401404522768382780193341441832899997507616588790808402515222512849298595834159753953888001975038236771079254246182493498634398468500077751901591654702150973218948296443479323820764446162969143938910747737695380526714115756125034228680213023808066223719947880661972159429904782318936392529662100918505966190658717914906156641933297364319402936480639260622265776793747278111580648808547994416371896750709949365645224407877118952926014998858427203696439603243446878701751348087039945462150057264591144095773131757465097870151580884602129489901966693588093272236826469123756144625796407795657577831672330838998248150056638361590071355895017815208457468280573758993518706218119193206817120739626025963122213401295615946847620172831287057353558131149146816667977908220181949128820900135007504052496669449995683934898070327472894414413441918377735226941287181629006468968863347892672083616683416395057762254582073901324372621877345190446609552728410085575739745361693125967257808928326489964926332009405085153837994395854784552123393644005889157434644775941553073300818251365715079228632196381704741826834714345803478954804142256040357080841703933155229560069011083645713941796005097033384526423823487252242206362166728973461805952316992310917588413071639967544716103256354766056927275181569341659319493645949821967252358652226965964624269597555138298284144651931110079805666724926430770612922015230639514528743169676195949405579599902887736394216145535597462169022544921898954662986516353051680404761417542195177558988344767320208000821856379956768898697683592827560405278296910641576336388222314059676561380434832231450001908027284985735396630684147010965193530598535861975425421944387841552739302929137571434469715018051958728584513466369960063220589888533461644877817820788436134249420879816580507236542898171472242879937147260874894482686834680505632404792550281556966885065233019343911596713177808949693611647080845737024806543772985831034816527434790525946937694055315823010745390742730325164482760415248096802973204008118074046360734955783155220790956930642657430930282645271088630391085050519675272191388730177136197265697874227631875306316491917668321437365151226616832106639611644926974596076983474734968277600563980626285052513406523960225103324300848648166531070900876224538871678846776698630204669453636622104247737259714033833447326832388730265957658841554129907517779849860063406236924516990256190525456161575393522216657224712960315562519274985873951794814214247291977793506226891261154441349771125076987844723660062445215902589702319728649257111242272752236344153182578600727982425057913730029297147066328231559496185103274737512636504517650960695113251950019221033594540412068825139516515227657520141306692625249443934286342632727465986945738291689179440517090515291485173529195586298080403710104894895391792039195051482004990723612554016703704217095416066805803676286383773172151705204929258739539579845469661983227580001117624887832842898139393082735134468910176692427686819123199454256611114069921455309223252010446248598607153473042029964646300913203304122311751773932662782540493844416827525991889765580127489918008807635158858448968492647233315201113918115103827181157866747210741631069584199207473523047688531948800991846200044076054259533569914892993598547345132521548703920704137674189278431281066047434748875325681829954840996747054686931878813825531558592072337849054757559911347409052493377054124686019238751121798825003585002433014574077177156123409300065706633955475176604110713343638898124196570757270052683191332999530816151169202779053051095710042978904713264453097682752620887659041241878399107770839131210656036228016182955411732986027504064270994684821087807116228671375979144299244743998598140020759447532833399082071231944946106789882330456594765360707752265789807644187271653026329017913935197557753853359409083143042382023684527132184605141270602712321770678477868348117230082175823218400506754078627711771017274568781127326453879626892203078406479757738579971501047978896844024495449880219510956669479548466664694526177592988707565039197013643537041235103136138558265322375698795714271879527290368095835526678833191521271795994864453636848158617678891004688662014416485146087432262953704135586599156722952509889193637207885150245676805580838529956631335970286847665622869986729489671749610640826842290344580584927200656891047505522860703921420238836973600582199967444327408344094623720745708012756334273907180379834054897784719444385293290828092384508167480903965535210612953581662596987212705578547796742138917122287387225981972241629701093340052722660879954845447561524265300334196344354275111627623205714628012519875779686451139107644912624087795083164983832805360560651357440849156013415580108795985691130671636867502778399520023049343490626143741376118203067748910738489662112200761957418292484408230484954368874566415235329956649610875250124997883852832898500704020987982580929782958298301192287346777973672938717607767934932148121963711931736315989018353353486930719739129714475679665419249400588395797500081443357278873981479310855783196175866178971977584858772074222076318487756206647281648976496913251079531747074547656658661926029891895605433134636867934130902171613728904198875387372018010481603044071739025863218906343135231090190768724886214023391973574241828997340608310542015420476450916954142379507744763207177488606431636261013675756280468037211216651034179110935470771590484970543722082473948664770030466686827233857129628344123366405428363257425050457531907837490233573769318419684182654914729964825268157550607675712279856417007768454399312253667565069043614919002344506749680500907159129484562405819695111656721426220750209994525914721241834176011639304999136618677965611581297791076614133173243289803937763867470491542261330917578377598811311478284489274714407218304511876569336204559432719706255683614040455817583601377448601986513306726530304698313891040765776645568641124219309593693571420092203779470637671023261727133033773300624804741405415429868769094714155797271689660882087706447408231225066154725368652819635077865636482918661494286443248890642214178782618731009004916518237733996639772804060903341064193087308393933787569129859128293767433413590257662506415040704433146426291645469430608426568070793773092049049997973504744192791017518546620904443163771645241483720370746824659177200839790690010838438149522097233554372990265454063905804023663904884964359058548032208180751363836304578664981400435269708813904946307411599355431921703443409867381836214160066278734160254389006012767297782866961772846378066054626597499342582159264763931872603259890036624637414941991294273044576535833249876813838965059608525536515623977597007054385385955724102337874306645452693315499312225900322813129875331336563860625017576471841251412289319433710339106124771352904547747241779937970210193170013851105948813028643103552185367468478923781006170856189682202631341515302956706271919415448322456848765863191609626418214146174134663051053310670870258337114054379200620439323328487234049031666663827484951847226482722681787519605861792989714312190482608446325475231110391432379590941615111511325764891209433656754642225009181297186082411031314973584516906858231946386731534860918251415660608997152094493580239110948808123283521328958858567839504339923723701010919120761523305097127693039457940690200575250177224713608048546812835860688594713212264836417156509810053311550970053521515417859505070424547706066804167855298713897083737699550860714675651267967688281076062728342852662004237031690535045176904824547457118326986252978579849434193018695192917747045299088162482863883363207746081896785822274552955911766937080409760647505275070657796753898738310778714855245750824057545229712494613966869967312132225040066877982581427959097935197792475021268494011503718784746785494959088226036701211183818578229760545782055199243791245770196557536950684620503462994920634074325697476321605394741229275169239324625398036869238647218048924451127898301819283961258115784572581279742315672773136688188489477850227887366681119974915723394814040921268865410656036749485525317179095425866572247926784115140648898271088696826261276173622582818514073363100988777728514773276715816866710319370607041631460372774379651457669036663022661858244327493013364499380806550468230069353975930833687361106385274144663341352245433733462887244573163563908186979579382164432896768155758868704131717734981703134597068627897057077550442947393626138431036841549226291886863597178689147530132948711112162908391219816907981519434461343207339801635990281692833278673242270588121483287219545567489924474746161413497602844633582401254897082654409446637402215448304325436344274045184214688593226797013339187373504701915833074655793199880902096341845652457780742747409520969784287046553525243524215103366133751578307354395444366389355423671157788527107125892342386246131466607820444575602148163816435116422894493769507773529614896896536716982623859843395829104142250498195209584710909792521005778047541472225361929081274168066001958922032074310938428322792713779822557285535634052469134844146409373825665233403154549656224884590726534324346163558517976628715307802373094297053840552381089535245707770064884855194995596646223474772831029912007803819930919502270592734010902111764558415326490359756298472517889464167925757030788670923885961574959578592290280452338179855742287362915508003510062836089970394534818149488755034231105108740597991704432543011039791735229084999323609963189882467037363205517242055443336635294318795573378497038255459913517830014342644411686926469410910412405416752140342005166795242741496706591113113098369611365168730991776673397016387066873928818126530567869278584691251513524873594919962523864557140482938957493542038135673339674532078656027375231313174691140277899740676981118442944893420819065363570481167706261868630549941286366702543531769482669934627750318036211406124328164332560673219718939651944013776209390727171808373311127187900068292110083064638002002092079378164068393998695713325148172457992835281736624275433422914038445155555865836248515530272122366992957032817783298836038008444653390962551408450414448912032406737018105601228641446131133018589984854901838402079023393745659778191163245092176143913498404120979749010015963386870847136322990483136387050801026725695911639052567239804057404439455360650076866741873478641398495299796080581998878975385495325115524315695620145158274347300160403252060245034973576287429258902936018952215513900712092714773820415017994388644810352249087888109134399970713729893922981258684410135837563981252742602971887529580883538551156462983852512412589871955791491312614966476696007120921732386265083213613686727570613883108460206893008038024350238994053684989715670779534993934289621127766069231538493337692676158571439729717347339169716033790701355170103125965811523207716067954745528343042483806610259002559445309932441162422729716872192688505172021500721247154411251406312820616690629055383850517886988188337320485258289970578666623712545495535107038262418750245215232334562767862183647303530679422396880266326788284867862041184669910273018820330662757127417361653253654323448161187738180523451468179343495747971322984064960838984391113128110786170052612654562271687935370328714535224171833538042697014709416700653366943473868867110577859238525147624433341766413885900677393119281724188632352858621331212140811507033446439897504096148439484169390756370134098776493988945895472049917761440355761335471518298055672711974867579651418768874290004920225248552494922565699854560316815317274859533550496122913478764364373193847860996119470894082094686181387851320966665873403957563650923670164051894744216345735813818166583399763440228136545243958317285861084187214384501359722452312050852945354040403591135224599283868806607230550943993980824695004039741429743363657210024465475652593337153040473799130989873341454756708206443117949911874542465168710893423378202940932988192206699938954665479786808432617876727945736331299451709160698292447717522652772703063919941466966150896237876143585557115340622757995548067872167843458977046557560102114443262106129569595946695742414134946389996253693861667365892668133058265218506282805017662377340740843239658877606595019427490779053747458263033027135692312005230904681843703137000876892480138833905564841849103562903998282360309347109048262168618564421932768809298309804219223424566629768843643316975243369736762815736592706165310816465720151758193566657568127322912293292576056660764725271570851607726764829613568484304530765948929663319646166397377420762210631891663283223661486474802544554456709263424658955217744205765470814619484659557961901336726648211990593786114826397918735742760875491081660182121995283871388152770861307813130353953607096158901558626342664845254368439674176340119146808859691250689052480874759177325271112227780272215032181585077193794961311281728576038266517100969878440463703255340988632833950830890493458294023610663015054038513597039442239303051729325699576305262110360807900035212278052395760493853202489859839813973772692087819949220937221534195725703231354704758967016706696872615200130990682515961150659798711611892625255362467421151721824849974678420611353875637830375786907083211630615052515961483187102720894250849803851154936104729365081284589782708830097101139381911397463436289680410479711738906070509553529864755939700054705051184125484930784689180925039125111969754892274434857669461050370316633679745931088520906051271617545807441981734292338608344693318471375765660078260881816200919893781093477162413268316153690086318568581613013065447385709908183174359311590601182224883708559459909785512812229516906894150979169124574101901960452351328238573416277296402146697867114421967073201639592195285096342352166784680893101283777775532375048224770580536801933269153566492621674473859585851147451213487915478163152441869135621040969619940663816616969744800841465571886129349949531165027930379381251052097483103451906835102235659914768479563956493382099437818404044224137662781992237341486368899376509919312010720520154100976392949933064644967300606049032121602685259261062054627889582779619902174221713715451490548652789937870582654809583356536059774702723253584890131963910002444113007921549429648529151494668569515233084695120935107412057904657682102682398210172975640719628557244719738070599103542571232529092981803893437481180598749220509324986984224509381936423417354168871718217474822526364834075249289675836262428655828722007592759058562707595843299526928272298338531036126484891897909765825672444481655012008215667133272495532960869836107563030439146849534891128123734962823336763379945226131575655609532585705597138160947951474038400409575199641857470732643515724370196973044522605067357919651522184085213417114122801283273537719647389022370073014608556356302940076070520002102882880969031721801275219251864862931155001345009231016967314946999603261776240967840198083662612166065567471255168233896327181098637268556411984527233841460040432449463608600510333233466374277658166244869825452591400732183715862886572232344306467529822671875471203389823167091288609414008669258821307221234097473470216129274804783474856410914034906157036138826669250997671233292056105866338432610938153593376170258161228095777929846572681573139697602985381888195589836621226250278422911484234827317761287973418068433713451946579562716239801491334466896997099362977400609781086356044200125278961632533337935782646925963328089930244691732974197102822258850694027731668921477205893312372591659914194521438109587028256829272151397836842566773200434268987831669182696283047602230513627922396391357346255644298119014860886718889561055751963045449827929386803446355272213717830601610145168915143178261974822169917556678903332171165528282836173680168439760522509307077218442804243998557473222254090511930584738999013567616835715082758456459786761683562388637039209413759344274890657020705561537067272955617133101197145163252438066548131789274646817390880866286347439520120643746869781376399796564751934721491863376220791052658048861386247126542791828215620409145433566082017365678564812144596718289860175514757466760060887529683112171715560328642121495734690620861720900723886104457103081784339742699992158857905362488982127937976676300194179558594526766390615032617507938967046796388728227550230406867757263717136300033013428938340850637404458489334042294031141513335301551163250174558812529702963974663159412894848413815844392224025904031030549749887615384417298555764412925198691398163318176116995512671080116544829052471781345399113322239167948594249659675261665763779069627477086155730816855059996595018597807304035664860894704198884931271212518341338388057123242589396072365086595569001304146979630699756298586358157662939028767298608460907688324249105654390791013464895654175471397297296257801075686300949504432074523736201742368585371903708907274532500570512856089131988304966320626818168168668919623565678402731946320495798915558124073706814592540930638685890940543985106898875471150763923581095116951959574476848754048603188239053124887646307160851722060584890640256909200016486211464398037066174728607465676161504085700863992929842969223278110447480630418275276504813598116099712642359776090159632803703250884583399495701919006558842099255728417558357996593115159076895887487833223956262860229237917743815861155658018252572361048766273813277290795819153960884619792085128160433039935066749717634118167188991401161720641669726708095184151286069714722892286283842576734809540190546556789054656676956360076440787044980982916191750488442807138125695657445739517576751522356886319852869023984799552464239428081969388765408923362266635125036750626074478095381234344158397210895632106997428377824165434875187413344745082640233233717257901544019231380834993399203797064217122709906466233112201256274833892015823137372839977524124496948850904140349489778064840879497145348324560787913031101567982069228678961399719822956720865372791685903257863915520584612362419124314025775742736198080122231300571339864275637549427486052195732626201254915056177314243647125511020028953052378865102555720758684775897072158964222455850344867829938290379851132926870943711024632789531481005858004908901543209147823195771463166392402679242622459765481292085161548341404693074047119671112041334736941893459068573543366352219462370301193350035095126567779020620335531431201098555317679597852785907253932865316588961676228518708718286255373799118689856295408714865881832125280326755806443189227719957308330608876333618428627723804164307329100000317153489358299403115861873261269450258760348843269903898219553468615000478661941682229630167077772042794221012522753469785839217562596143799563680008807168024105759208777573931513621580036342223611726929140514349733725654512953703309357679628479256723305586907186171530406138858863053462981560275882055874280016017855690173987417215088243564805279457931706325042838582350624549950448171604110288198723198451605052693281530230786594497441305948039093107958839543810083799466756027407666032357848253900004761736219648028300585701441401177008050890358755435980948972401469794374615980294008908529218417849067008824680518457082221784743113348099122164620219862763194806411583215769249138252535338931292866720646076202864930353342131730017996945344983168664954758984920127496747347480658929255235490284457557887185885925987630176541564067680974411659980853035595715354277842494247429780406204467632440336205815593093317342234337207880320797235421059860259265943039594260775418087850082609366707106408403549395778616485761691081695259701527517237412247955218297349074147846636594655734545650149615195970264848512557620883183337549676812399103258387669365250086177929245226018028221936064558500552243743784550102210993357711209616050755456083008622327911084814917868746212380723946685557820920139702385720199905842023488825612951130155286213281435063189370399703965955806133651471582310591360575239602297786952719485907058956771759397551389500293380449705868643357275073864855655311728932391427538568593244101294490728065709818642178752438601774360959172350906387895165111943399711076250921845114611616490869769591432132119384673186729951871712197003741333873554999292077615571385753785167947370178776014908104822985361166828274107280927140402869151310717747382609886091808679929879113877936546183825268861418651310800459072124818048009361726884857739804124625828098734538683459236727366415655726074032536115969886692331200063233757851704561176594061862752198713182012781487359157143602741462707971541321443538481034294795351160390387249218883998538326084515150924425457562751230914249986029068360512184534214480995668402010356117668887783841002743252815264522015278613541345504091198536942091844089981627217908374993809006095695042307319554331805613148762949257766792532272211473781972564380742080681640767784305360034790291797216614090003986452534686422756881356571533195587803276333249692561156124456081779691685029787515614105733492154093499772936695794960102386150172519780658644351616212489028874673306027970542610254322519904487377269445526464136909940853212847465873454018811836459308349326725973201348163224663490800916509665800386445709137398425151534861180781678547080483872055308596390309682849733196186894368005072351350870851652989810142595550371830999057964911978265636852553632223324294279116420767474172132616505855506387717948155032410170113186999834298503061710934555651471737656162701127148952320610001855636266569017584863872641366953483956556894714990891229794994364422743939263738320225068849273690075702792520778935663866392244842225869361368853935330542258473034205210701735041671711912804227385923940654412890391415225514598237155754188116776660218710895748643001504598862375160476920587553060684601288545887152824493470569400742432543014314373766992797346996287647911503450151392752968696005202627116367283430168335661116468174007596555970201584754754853589754560800538767715987126106669942002736732470650378321066727318827763233718437023696983627567272748328649842325375303351214580477150048810849519295957066071031388941863790555140019472991459395703078192732110472308088323008483753551949664792474889384486043725870264357363449501096037621220133874117539756972090679696093937757344404626633143616540548438962540074486189903259053850996867757077420639372459065136615225481707352382525886009405076964621182838636746912763652229143988764996095355384118094744560960943472257607338271083548249839761989550316235354459002021915079499934692789709567065078645926163774021413803034972125157452608249886124731614366651541401755092968355027637393347947746231581620598554198387917575381278818455657101784978937179171208260594180795545527592065711890848118011937754507187766427269804498381060015769356963967964749746666502978784400247824941973650722690575281035942952913033672435285891889203577361583425119565246261836790721109598984749785883195839204412177395915936959431523510134118007139305147869302816381444736155487927807164999550131380250683406885202195545086774436325978397114835392990506645562843038006080125294737855556883475868311729846663081016458894715886217127691518814377136648260185854563820342473398974683556175760117777132248115784687370269681822949077975096581313610394845831312978904224649081320966843951485386069175900401030438205670005790326343934476500652333936572384076584072340468882653233454080094692618925824619934176536603118664271891251800882812842688311595165935062623790499824864688345546857128451852644360740487182971775133222761147882024938344123643220325831166636963193073292797311513989219189944972510832691970373504304095836384834177388269228931923659423606637288606831294531655367236605487304497890978484029757670836797946900123077254015170313988869578066238898745224966699046482138126005168654927626410627122459579299881174361479991290477769908960856238373051834213791135440071867848361522554423791941711650751842155603725165956071571761417331512575186388535358399423819171269721658595970508138257278948735772725932334492114950963378574220798065701463287526538361714812397571871564209908776169755850164113291761657771532624230518802247433210300455796893238230514638496965556589282578173811504444395797011798758734405438995843369067050310253327636401245627888988149502716175869044424842323995202681349902337245000011266069964099735673696717004603420015404525087140684728815399182883049170649043774963558566919442541525689517616935321907060106010141307403231554708780400866105163561830389498025682189813896046309547107201515108888359640643370519877394356456171907235491706828547488555728218902969826041394335201531138269155525903278967531858767091019451069631549014792242063960378566818562538680467827798140096788821586561099605792746838288220650987948724667041864938724534270408696835998458913952597243804691909603260477095145074863366438604331230797065769185144535997039311441145490054505864252013086691374645639434803652336678516168225019650083496064616356845993031802270195068814662066575394296246874899816101092706084982189792590398195028376958934075230970835429498505783947561819955417878834889839316472555891192227641761953609879236549264816391858892530433226073312555367147548037141325786418389419444309553704998732869690059579882786725014424293607905964526203980298089337392313083328576295606367196021661479271117063222570452503873311974789070112979128458048685101322675328121683722800507972560066721993315381467077428313724027848405234592173460474138275352415602417633753524795565294445705486511528907376816365816777529445180804415417309613579409646135466846080353486669585319217187767775471108795563684364371483775563388755712996450782075140988377790558602052410977596452237681138992000284671870362745389932155416588668914582438604284491110954940982597500120203077490767748759670984578727603831519717635989008280528833787175610887498616950073434309398993488582675108381119815137949428548978053237094466859980610686837048158349083080208754239024717393040472084082045368813539119445171547913095472596764476136055230107698652888250515634065728757181742467924998319120438230337108526174274461001327860077656683859749357547961277735284675299439675675948246417798782762623626785806017889280737962990040638579929206360325346795299200722115281096754221993974864186260470239391058287431142775213654775357974306923825750606251393927079521402539114933305895695551612265650069267895002830394327556893719344015647036573868868199017089017724576292666163181653278546006782957517644593727820326933419676910992606119344845122680776811525852620437512246171938372813980545314554495695482001947376008771456021153232572739553863273535851232928605846565448554311579504635715113347303668421005462058278362018801886574265711905633263623082668800576739070179297600501882222816680025056283612057601887455334147369859084392508892820217042145410091369768650474423073138767618886086813168638545641103131095320314049163916453382980528889369645563757235367929877998781979073177153055774486422693718761723059087374315241730142314200465512397742388630567315347354750087830928443727036691616076273972594197313818167281373841065685123999480113291864189920105044671239679859300801945919044676574813142569190728086859829130532102964667886135440179324970351532325635840801186846954282300419683009997309585079996216635758795131799852075455755925482131534586778982341228714179541912349419510127651537908205129091584192524201550479289859354090998764618612398026276779538607882741062527683394072141129334250787622193580494066476132781270239841574091123412689450562236819114248659702918642907752743175998782346154965473367226017591414551642676496689585476679794124092461303002278164881989189235228594274177333264146963427522002036980958489401651721619130557225872759926879580942687601597784773996328771045925688367338606820764943767972394177915456631135908137280565606791077883153006073416630348688917308760512264377109056479103131411643233937565355203427655981686472018123025811306939719260188440791993563667894550870385505953595430666330360957266050077937204507934520385003508002609075228571490853746512764981997033578002569467491664077422531804975785008566426658416677888904137366124309084353901412404206388586679660653680235670096404065986830605020425753450897341807590203523995912311258642546431337480212243080088445508683974792706762130061833249396466326216382965383526574054377904235090403542984837418489035599322884786743349076137855054017481216882242223239743457992885275778342405913079050083012602680042431868188954205773445646359170522129295145396436236734958347510105072044386300730152203687415952192662361908159892648921187792660375614873435320371076585942641470504709378100532676664971275413255792515405744966420440796742377919654606942340351576462198133633350419785211972601638676359756391881589544005523319689638515280653266485960780917188508049699823124862008835977977252551163568884125905839545342720735587925203790768476950104407225483700857803599201071405981407921862497755386523923577956607049922837915851620720009489521640416479069713933382448033223109049937132339118874127665688699840371977743457564358923733318974566102313880009685333562364902415847385384783509227662314728226748613103230869265605109062239751814649960976404767591498579477365096114317350046554743579343774497261042749211389800058507180944658051301747393850016006460226492517075264821378761382939521722522435280441812139560773501023755499764604550529477394085946778223710832496466649396401568073311713096227518516597696020769024785249872001156072142072523272788335890140832423312297198856180711391783725158459520817683116589558573398583604042696007775200570478167527434538813134981029773028422632787742022258720613077196937870663266365817434420800475549700343634965176619501007286775257480344981712961912395178401978190686776780820030632146237529232777613535001255507240481666463368289896508440554469194437111375649824423891994492764487764075094112876096865161919232494250525362460276319152733089928691438856229919447120522841136358430783185585559300215236493938724772712816655226812126254099096607686104722468763150467582887938580536543107988134897335998300053596824506961738972019855895645261556408364480306098362294911588725711125376990042353456622803275093684264415765476142302307650910903670880336812616687658419147594297136100909274153275169253126858764516609079269490008710838634383694581001961654698656388786932968712016296706678889182339821087469555123365307146714279188268800420324962477973892823643789859857165324717451333021407547108211361315233144957356949967748342292728470470631253108944228856573982057538472618306532836430285269470307875618083727458618240794771062833576559586549015481335026345875754467875103372146853605329325737587976782322188762483961798553421515332179105652543738065496920712244563699545924292887371660386796303478524916694136813340828604423702001786552418071601645920713983510378707641266919607426545532749710397789356688136647404413495779060763581277083505329290866299830302879863171154181568983135387031309337091470097216877067463269699545256880459677598100019383615851172763657568841303775822147474097118743229486830642002122083192144789363728723829805258892817133402174607548920052334771606250872585642578923050590129313934184985754769384717942855380732714161220114144301809636750213116774264929471083959009809888889235042106710488729249505816767764686183716846354892840916589948896509923725569634953895085667278475996644074739273778633250659173414000223949871108618896572579260345831743799998844301558890100185324400772346871838420342713889267583012457705132301918806038238385700667906539171726553806470189152162944997726123629668267642267848965675453191425446206029720292237501278553996318170700679034042966320886682930520140494860914123015850822101818182850141246420265526661205046490881687513310245908779165174931067299459552384436825211927172023410952781833630388707301894786842140564174557772380141657113388712806520291696745062249268854880934198040821663604747734429088944343195832684187937321881656725171845447239436836787297216693811556474792509407944589526382060101537932095991980974086665852166456926902267962043982299907346542586229976167001783922721360679146127325300886260386000894930627011703800936382508906334489905852986356552216194331063870398607356262741582386276474322064599734261399450048490601519854685521044278393306070677554876441739392928061568334432321793368195844109939639973921529079235364585357132147649477191702867070874122093731316506708717579316974860955553354514429965938224463693852369671548628992355980746914011969351209247651654666199147701262076009471093063709286630523422323279146770479400179971491447715800520598643002258329222369111571557864237858112200464577149031500313905447724448247121759224124478997629277778708405576458497219773289472154174622233061354187603179886551140710929184086097475113747546110710862972240292186643843411649464599145484184534437204749390076330331359925730342522282463552691280729567579911848600289555863996808014856126071267728231434467747603156514128297348685423882766472104168776243061056531194531262093322276063643024871793033363154381063174815323192556081555766218526502867081810151243969877536933881331335783057905643343748929629554878024166933060714616053238877773967834234831944634415545439007067897707037894134210651944684583565793645367011665538938248141348550977511231524896363572993087638251791618005855660730149145872807439920863763215288705626590543896986805046539017453134580693766859431596505397276508546059016026806282580811767915816900906696957391718912477043145018498521548132269621688162541013156986345285871063565737308856608061643650557693086495471741739670637070737499656151511713531265764105002663741696701930631207450460605176836174302160755188333044867008730400860067818727369876074214472458799242748828148643068203672322848598999042802472829702713719323573848202427936096156006208604469001470845554821432188091035026242761436559894028833851422772099203503436261499522093555935903641934248802015310221466635126763962259515232622881927677191129063212409939584727701235604887759707538949069342233442596459247192247291662793559948726163827708288940998551583529045448224759513747833047981464962747237612447581245432243681337594437122878938356932550784226998677479959514325930901567313816034259284098317061885655828978945148117230799763389027339059430014185001587147095121272724499498813852811600917035155086812504501337946493090269644356787303188341413823830035221983126524990695778365424887380786885803848490413204876427109452541676270876571852659651685073550111433489827749269729192554568477611194016496969359847847171629571199340541846591183908093836250118786980241273470413656666177365327218181123529519808122118997315449931258089283008468152622711846346217586902199283310492642426496258967202725760424156212449064089252689976524959009460538707154220446149253230002711931184750250409686121041402187863884681847978727906311926028528558926526492851095695357627975896941816686655782916405191118041443348044286193022264072087572259002165779051760443049340997917278667064744441584632112362393350694203350917376675071915487465132301970935029004827850991928377717635243540643965805742272476748826843246510326383673598970219761699424034519866457449496828666653754480023107710101189307637304235537681207179216193720668728148182632717681014270015685475382449983798619396017755052689062167601175745888187085933200402975012939154036104749616370567844607618699828776638381472465035472872009121985655489290231321335653032543817113967154676211578207087179069038021881248786979332087282272333146696621130454190362695049352169021571243113147947828898937040645943462301949928749931837267693141418110709946581212580185237850767152854646878241948611224253011839115228132063487897417787684221226920660782177791060766064712803954390657646344308123656066696691216238430312604539827232868840842972782842984440698664334915893956550113467096557867743687417859653151411702500746360476602041780055129622526736095872919556306883393428842722615773045101087452864856716368719950818873767217873296277644013246717204233469196194712129679949331462083556263651052925111257300946959730819762537091501347919267793713316798314697043087463916803328852933295783675872352275343658145428686268947244186433245480534710856333486499035673033953972748250560988582713705933908028065690515509736204991004953029871434430141430056495565437125852270097161805339234332168887481182484280071012504222049575015726326060718551276879473746830828517025727302477393028371605685349138615112123958670500079142074798312371320943091711992324965911171019644838432729891893024509782443679570306207945486253130487615421435705506874613182634087710991530388500031627143637366097677905365423983916725513205669077748386086740409355328065995402868599728873137978161018093283447699404924459867534548601798744408598200943422415328935032092580575762765620750826836502775841085438951681465844926328306404313756984903214353121372150048357158556093894772634736988114868975276513637236162196810337503468959618612371814742905860851898007919944144618309873035155053248131641393199654139298078901586027595357793925687903191198173149457045576282224431273132041839496098931607697150375700706103629536986921356808246594158706147741185695174884304199021136772576580252696380000561074576016879679263023307025510933257079152112005366133673123311034342522600215701361258994297338782411623976846380111423846639915386854193621107598248887289174700052100444160797678024759480157829334551626103536915628681669575605803489637573221045981211928778777873654719580682379019435623351030291253914757455386473528041141399217850188919292253519192282501586927001338503327485738436249350775305475283269642182606938526192705477277327431057245940225620996796900205308215700459246503574944836520004468908361078060600459724415336396333668735357300662685493377863537638692410205106995793251895675793065697471197922281563411006655055361445499091072136973178420203470725486569431021617096869058162730856999401215028962319445644882972362726916847384612026140788953687711619132297079425238072900300145732834697191081145882403216036036558645540652295183325010482734333856744640768592005444984549319783870564252967763506298225103350787921274921702169326659053950037731078017401983917519696757310815230606449535115653761329322345179697363650712664489525536459602385624323780980877631884961674699409987640667354625294135745925083418323602669394411266392697862703702445573464627494956839431693764990885209194879135854335375414430914472500330617438590314583031944193125073118425959582267326893874368013865086795865672284638277079189608667087246814074718595981117148728863331809142084662365453739277525833287222799834441635805601028509453292206526311331077759367072746697643106752438165013081072688356637115565700258689376103479313820424584631361183964086854022953009629678139879586176904187914070284605596201680767845159123952218999147210751007682140642143718034961712477147841684293321391756282217702385882490654107655028728509543089093467523386224843000819616708220162172454979734458084246447894784918431421732261828738780995169537274645830559069650188210501587190966731197073481535883323579460874222828370608852936419315572545092266698685791520899547552775684658666478142573758065162057463496903173432113148864972700872307596887391393117324703506649498781572504575485783065950877549614717431078786433558471238871872834773252732800752144118168211781687500501950033696029530473028368338410606762197373489552808317281608065479262099532019848893733098343475761280083376476882108163802861095692815189732375541384205143078398769924267523789564532854376381094823567275132185498761515618688676316053639583761607122494180506473015057267252077611486737501730596850494705916961789904572126151419919220476422676890792464266000772802380101611095061833357945241700820645633714669423992699576628985528483128929923346500145667218995024090801209166551176167277966874675825965724880287030776544910982551223592712239079150144336744251480209216682044618426205879614925142568759831473286940895765635711770957417499722441667588971602982303976787301920283208058385355401307028379937307306423483312271925900871759651174375053721654970245388695349366607761770126644359160945619238662106148475356370952110796479234609185182604624792557835939336990453499044849615467708580629784998505856219778397650786418055067833394033411268632152802500701952494056079568157864669123700813539943607502973086266141793168197597024065168342298135610094533113282199271974234225007362394116866014340379801512394597373104274869121021061404764371539308960871594483931134243344842249941016649028621446941516330471353520637333372556643402986467552950452469027148377959876571952659229405152149463077047218999148463208272708805170877897462475161511999122016427553804102146816598447202010173778580090129319358507377070990959890105380473742576830055063182058107710923183346714625245039542539670608957735679864298152274726170005196903620571041220578809200530528224660097640779312965380976640606892770030341562921422937169410711065670606042323573205320264622099176850288953183368579484234061491914722148268254486047685852515429832932802256907671905171183577176411365675709517553811245202549618496101735735589327281113797725943852786339043207058468361680792783720103784157844824136454713486614823874141545654377384214653923372871790950930766603569211716967822388762653991768251055148317317642536430865026323368149557767960253211369369854998983082128020818030089885602679027372383301535970819617976319118205924082854913344555986172681389741476355607496278993787878034164225673076649064089666956587118524865775224727285364368601085159681770587027217353420381957043112829872449675746346361804222237152878173023345373448704050297130147853393353259211891272738784491634052783822754368783935167705798235691608617966003315925696346746981491206672223316867703256446471912688524258189403123294542986435552517408920072401960398747836403812451068600755963305977901564308666877975191385951136810690669722561004403843831516472273685687936835398385487695156647552401169855013512229055963079008526937343013475120628440716008211596463907632426603759289497712838796727784787160491971489282188111909445493469507311242431930485760034944375711889618257255055215385435424800523236548820810492729928058774094648685267518896648449863450849904641590226661137462476032475572308999449951506853840592436117564254771207119734512820269454995331868426967951018616697668351063849204683050479814551153688640228927586350754899333871836805155607348623059426233186083105515069593545362560551879274953284529862347703633699480095179749303570063772558242802673401441245673459123352138779226194022556525008382355711336188450136306940383528273723382727344724532273081755462530172026203843642471212166328441699871599128445514161645328874235309671355377697338974264962563963557435467766690454022527191282158051600190111759625906148395178300563441369359251831708731615502860952720244178805580496887270478194161769180615214495467434430954285162969662145713768402740214336161884629655246419197267278032515041183763145132442435212922144801390806386891491938587996934334861004566102926938313457149513028773804310496554132611521008698580329247419370053499413088763633562202802030433400866408812900045584879940992828171858559988351045500472256381635789612779619285644017180058102936093700118110173688128999612132401732480963595952074691640324314161458976824680827017362401492038984369652079988127403209286998754828674648612302445138491761408143458353814953346188521935940226417321680943952930440579712946422580943681760816358541842108653525858148699776582618083583762248629813993647836657426622201147120078567639020400778681591328303145497880230499353160000986406416899011781349201099200105489426996641665670293097989660085225512114332114887059451468274300679442073054140871872501511441911230294547459862924789413801497260566629909459054273530597794368940534959526660947958500046232396621493412922299409848110671349308011281628990970718700275330416629948146924466318912694613298738668238693335009802473300647174247329268017450083501989815170763679818747184892992970094552984015710527088946974003681477594331641982519677793966192552784028817338219563804494177883558423187863460111019335728067893556475666372494593361402730378585862375806832043102055127309813217346715426024902303155513533705743410870072691063279520064492483367767857130937976382015018796010522475621376416831513826418598244629410918878403976120555917852527441817693647556845867081834570072732057175039471959571154931282452820088187524689237742642434023531197458184332362874535947950796225394874692157450736733286287723952086231209396805915453797233617457186933971593075535481671111310736582011829135236106279431824892516066871921937178153237351053691533461698741285044112263273882251480040584745366288467223115150113657844958638886677367493079412862526215896760569900757987724687036352896692125605232856716537571087174231533349878166841993673966933129857884772687856515771866211788543147937426890032313607859847498995963332041172319454797687705710015558166941492989287101856774442578645015974152522443316052183305092381662064278588820966166252892478499731644984693186123750366413610708628009212957988029331477809443985201437872832832355512838168856064646717805310954699442299670919186899709372867668779725192994858952442050243271441867222407459884995376050117524621000300700931932100713147794245895372404436363604710323807574429556483615945503649861350576885731405232578227148466574563642625057018464550972395812203282635595983694186668675361807574523383710424212169065241743694005338109462455232897367038898161126283179548122451329662123797961418998576916134015537201220169891621556095708188865695534349071206741689282975569401099553411820973694431606403684146603123425747690864045495645702879789563718740896221909964582071283815722028227873925062499992085497645334125526267841573857694531292023624004221363197939755047580577573223456408038991627391635475455903015219362680709080289676013303149218364888108166552231015602153656147226872725642471612567129544440538199695379470899319964272442710939876103512629232057222955821673437313036298887784531403071496568464443496752913071654050469425327509523110553089767455655305898782397221430454985666154615711405967817764559394569770601958667207633089335715862373533748468042396469157492722329279894513517152929068825534504132091027243859920069893566215028313289160635902428517881422507845017561215675906802090329567342968442026700949174247666309365946275856423812624222780882942967287072048765737619883433771656977594360699211570703548806121371944363777804430131255424993278184602350671040567025394052879222651188874476308009675753664036976020420571983095526867138561415101019910115266617514508117841649564432145409668279250406793030622632275306015496285566104885579977061756717846402803483877922864735888634823440534662078168682919746300117075303016630887641275180895643885663023464857949350859465366960135518002600099626901117467163612449646331447226391822025781155846586854944933003101626700596738073135823209859640751618800119223749438753186739682798331076759252755469153383316511853576878484848216298673832858831669614633380258785367221508347651932601581356838883782050800034412481690038754321315936473282015478324195799803570137985254092828309880919311535552177641242619152246853450731235259510085575928572517224473864485329207570185734641177670368258974232349381812256268043778244604043479707654304997140918821746859456045690561369340135633697759165464958583114089887728735988682806029551271737977698951992935733253639427333805687971987639224979721955643059059609634025044441451748378900258790039428559942757241287022096337096925904924847013840937856636950328534578427794151680805124770124909759271597531411620051909429025261350829434126645520273714922456031638569610285841696259407067301619213430124750306647521978738361134406086256639954384895886612077837557073273756535531984625282448981226190992769308610422307910481907896283360001496544918073619982043901287016921857016043076159110409820075177442314822436399479208615688683211957751489818912351985517551828285549212656011724093707597928650577394910661669778312347055786570716198756742928146641537530519469058683786506230618941493775462083860699468172324316392355698919512202520071227969383365896554253219364155275456501484239205703064338314664381173308805455480115910852318668808404882416912558997305384664592423006378844004475531082671733775251935310364979506794144971297041584417300485806470853995614820867891424977479053487823820934976675808851111501289792690805730700761176629924016410175770962890453196769039137408836470591954840727100534320674657708981788782790439365941797381504412932600558919772805864949889626506735814838878477659354558968250607903964227572760483386372058530938140820255243841113375109974251196515706728117793560125812565928445342799208307714936197290258739483483425281195951106754592276391708860451130438568554638824825245208581806108143862586643225225711078718175058197462956579314264870196342519967658954561122166684190988448834308255751635604154601980427203811793528447002391915685665640268400800376080415054745971688191512577119839454225674986589962863338817137894138792311103482669815301996865105787089895780770937211551515122450470754233540557895946310841066423395854321626964353402017826780087003010753040030604935987974264917783201579400787192935520417566203529909418246490246893136074949924597844254382335138600539389197216118904137088791647410219164081152632458728530827313947785272806494304831129233469247326661232036788242567306013113390782844727251981312724798228935977520802067470408960446933772085450061332402334851924927158226405659420907191948859251202019128083036710984725349460838147214246326983337328393537751624043043784430123173024342234308790619213511248872671360107215126106246114871973179689246645799019614295375977974030140927477633087073316084583544172014435716955194959809850781794889238066528400215478491521440738010165163023051047408985255024176399237794894948473442996930868886981580052017188984843806466272410126862995510228648808814139697888160447086687355152763032710289041183972382470546178901009454751997981561387628140412771374723926079443076939360348321372341359506620181616728503640605923317243883078245575042127893427754539980770999867185471426501498674094571488935267049577714407625213992350019342343916197726129734393658411278089981113962284092837447446638084056772872784479751126060649024655331398571131942973321891372110517492890413200054537940451605745231709444502223100791571009398087600662855407728018432351197496755306850498566369519498623209492975450072659489240382813985249598406183247020846247126010225488800091165837370144273988919003954238548060770607438027368768506029916925207425301767913463650656648774643331821496003356673182704104864496241183719297616274508234834765387048187222333683161142338488996983649702397315223343829959986750762672710185723725053123279528213592688636978892248605549888297250604885393508489216816088532242492778508013223764322002867110223589907319318987907629885578544192060824563425423861429080615552390581174781343524719771808357087136931672966141455166664083871045849219540434603056834636967485008141272008054745109088011533137088913863104815122982143645125800356032491361737026208321238090759115112176659927506175603775271432483561684615289234716652303612485820905833625621940104050665456030559351935656474190289373233095965228183211030236437582232725687693866797996179910819336917329352704583430149504740927520764089952110566644436810336394873811263756268529513447031722480566072741621894375439677003264676722561886481746930714381916560284127493931758560714762328511483466450705022892393642248551011070422921130955332373691724686812281008659652677577401382213015817951051842364567908420023738444057538877465997661104142355689880738749448807273066737389220690340897010832190939766163130042349005567590741659833612917916905494140236957828392125887911198173788100926272393394688640045773811414558304352573325720174505315921888257763328064065908883686022737259688451425534822275818929564121126244229968511928096007271523986941799470330240631300474705466740241460847602410616969632459733057172168030549403431594459214249389460847700132612162940839055930411621001026085560317158415334594680017585593324503554464246182251603638864757666832365485738910945841971647144288025027584532281592268212241589885997112774999089518957399925530105282267968004184261909603335214418233747460572192708894311572467203552272792854772532707336960260271339600579627587332322086884770369214059589501228494829439112747073807335336900908103745955290386156994933777972042919422237113585644076914479349845357610509388901770207091368748975429186246195501254446066847096064882852027499880626215510480398082716461821305399637725226696258097856257635224830036956286430043448847959518405197484732421227928327836826184679086431560956627557075373723425008463502404144621451971365144057102416890077600634103568122210591893635290479731702269622051284643739522094225732090295421203721469942468026751624163929676934458788397841061831334418919055474020960722131831210347106281549341183753425529351254345693943975959974069025431793522053607277866262161281872368254156367806036619481109839327752645726348606466735253801679278742531410784337570931947779353086877808831529765062602802444880426424376267176795778287441341290573910961170583261001954420596173400552876366028053510392414936721586938520722099519623882999178488464079927398368090287056611366432401699336991270001788780310320283525295542605632976512043536491297588550721665629840165072822599456950674559108011205406916475332975624015938894954731636081472976268189889924419164301875160025196017270321938040186971460599183400821761138507055141773398538392335166597068194941538042845316089910939838903088279166808262730150635156986202589940098728373621503118412733902750426719059472229339839151476224508395015890478655153108418810809955720040664320560143940193452810948001320300163338840956522133753741271767131791503084248781405252994348178414984940098160387311252238419876710114742213069754622017710349232697849621539976924800355864002824233774797553843604929405149341312877312593368348116019330545554160528380218232814697787834555633800712205910237304543457420494691532038764658903461665384786271922758251024322756905559112910273763531359256128863911617217681592775197561186664569289311234925506140506071709971635234865478850181515733878237229111712627407217801032461316179841368782664448805516202729558767347907711654801130704562142733458875056763519029371250626607537510828407736705603038468403807978896537849120456873807386286711998578422722502375367588732210214873337109217160629564619811690522249632972503032548117661310373153710953942691918803313511815315055853128830442382565096344353630383008247757420462653876049757408393023752486690196765503083566786138543871232516455157497534698049265031869581654374957710681437107133748238261620771057697733104341061684099445562708991149676940280197385283288350192003675816014398499576239550232530938804544371373832423719962591595049339137947798121572752363859475950205340948257355756392616023273233083722780283415725683681403978844937798539303962170876984307290471189012010757761208397593678434752573826883938092016791123107528696495331548743415247968928593126735758379847034437215852842771594998186201226437355373895138132967766516152304107916772776512309783693377862863795676072689155761267370150738467046264116597286683364367550448421765234147445739406439845900088748037777969802515290025683900971506699217410902705477796249584585004211626945604206983401503600165843271524620941950496999672381875497008170869889219603279558017565211659724353285256616911265383000948966615832973496730765455172701276876162145262690741199019462557756724304880695192177982266289826685966208075434113502632418631792130136791420701759484289962935347158559911974297199831827652759836765420435286523619405555947943611360189317098091074430587315024750024570684423494935149676683881403084429494694469523850551321053193923529872108674404607649300161234839641154792380669528651756401763544044799557909635095652405243424752510854739609043966150601638122119456520074087328778712884699334097210417003807808462758594801341170270680233838872861696741396024186893706607770183627352702513716767308957908895058781471539665271533319551971579558415168437375983601378068032693392011480975009832111062559109253669957219079965234860178391795105309992246148819561241598929371197241666608073247907612534932949651123615592855232268110562052453590144155853981329504400111427102643299480115346976618050371880319251778660850314507265912486931047155612824044964331561347506889928303460130206424720807529982493640212073140294914796646140319728035122652131141516629977234251126550800811379295548853065890460898918038489385521326779510201060841252216955362871476263073774957701050985397309501948038526370367786729199199940949681980958820706217542544923433818652906182478594670066077264996387379710891127014750148371377623878847437057767522380976675969762875719149787084294000197663346849771593533241565031565315721037927191886398264690167426615793017845826913700834302688610867480696513166129425138204473901473723138271614251439893727155005761172096668156564000364190669931880149112591016080664306734068838042946691760830195933962943845068133925662733714869956825849716076490072907321291475305591325669071683027098602556473991371554389693305679466328709053569097929067149634594331138967179409622419704053674192252842190098656714501784889687197014004342946756636436843082603560253925291452366934395222481239282267778707870496603563656760629394055619130325343713760695070986117651996120291649771607228532563622577286918245183353095656381109230959721846731638133368820629948889463529311516883323132769114388393691856933433175523977935963620772627067220817055607929364416802559613962632426726161015463021165588182422363839699613839138570390290675812904005510352557575277097739603590547971499223545188819576801849858394198995694146369814598566968491204838385349771297511211330834327883761830749461161575632788286348284516174323028614906825324647067268589386391196498648403520208476362679383241783053432294882602069101163163160022567978950399071130836897434667764310366031679240674830968114828020066480272018827999798045422944976201028153470823615685022334076242989392636206274274580791594996057748984289507078569533191265325975811924830956428498120758051564099725356696802624627482533204008259034824238976502451061989157968463856420301889150389185990790490337820630145803461744169836942368467223277448057521113854044104369849621218377015409723591097858016920135920413865761355333860648985665001734349120542223333606124831645374015063116226308613998127574744302227461089828872635081685366455227519298871720978779306246930721422876298971305915902013732362048302262143928443345953428381475355103469380429050661688030103658229114293402090559947362630115426306703144766966765200410008681942822560389526770657430052980019072569409550341925398613887903814080390861369586220949264672253560208825947338150747480597320443253144836280457396218157282026153206919424325385444002977023394680999428255256296944760539174562259002524761178052624652297541523731314397111438354334432533739045745719284154429997634921253234192023457717773596893565077771164149956143656668519090974874974970316486199357608139498966667180279998463248939228837754737168549475480452162145822296294117987496694348078648499267618494490710721755928350157782391619165999332868281640181620047762772554773837547963811369600819647632580599065720465874782010226383812917416602742730485729043547047493073989461672725070413120128014211966239202328542596309387401479462412976697225369162227914006206789045546296963484615915904439607847314220458656499279304669483898344610837597843556209483934642074168273017856718564688005552897130821471920888415530849202433256937215671777313181307987344591375305659598085285438113605934113532446827883369837204315353420394142072784692357916170554450908675449652701883994991673003309333421643929658268365120496633977225144897542434994246049457780749908763966578775623408469041247705643312045319560973629532850945159031580970526526555662182437639402282661873623420445339153042439057589071905071078500859419173437703643629936163321478630614156571354029480448328454560292500969187415177355414278110828289478572260816082330905357256857585314668060208433796997072009540214941957703301315373770027348100635998994161210001697022847063200763771134921657873936386194381756444603285529348335108493351029970677469505114269794271830904222304470484101263242041274560223465227593013759537185658160750645592299189187319888357126503882074439406324470725448562257765271838745735709017000163773582936583594024659264371410309617171715960059753725928191468613828486090771339281482402037810021234841254449882864087231547651417531296861689849399197858909438585409064811233551188645818702483078521078090147472325379844751906007541302095794017067488942969282924601355357166652868264537639650743346846811684281890056846765933903626371518632947583077530208024515009491974794073859995598695979443084258501276662874555910808771386703709189850784549618977168183876557801759802398395839970730801457382982870333354941240287259665630689505663696929151447836099819250260824389663088404585995543823455158185796651428777766608772713322188533468267738071536636776277515548313780899645195002610629763743725775453934128580628685974788445631730354655941496890794791520193771067014771614518112985973965573665376137999942192523013165620695985654158992121118194584044662980562876174389349954034718289787470458391222432474229694003098306282601903131664536639198103792861351632411822575687036105721039274940416683030402370275824411853397289936234537589658830912504153261694058239262471706097593094007088948151714120677224241357569599008759440460189933539139454820944819621020914182855655290880617869517610218781915094823829452531180140339920852775236011100570792050006816241364905481669377934271427533280309936159989431285335005212887969134812270207893417911985587712497077893747179394818958135274539027568785679270443428216988596851225453695570582693486619425856875504434860004670386526442030144570694208735170498551827560112428698024795735223924899300142030874743245617630443113699217830719888636284069877553196331739321917939856964682948964235400949230956688857755530068479227821122356000499587611750447727308740683931601456510966865065378378364337290749810783116101475657325073914423306559404025909179706889539755999249718965800322282108565753598631055360292534768674923806069945624899059619040553695856585322776666803550523768527121356432053705534958470766602153675912577192168384327771438335769142297532946045874560405639438774741317211018275655160243260983744465565950002955897739280820077420131226226447880626972028399748533445527546267363844164108952714967786818761771031083994089449416516325651305035289135130538898138952741592592213176961183266191900277265178950509236012555863826109280655829084852495041898316491980518181971172558079232860191734602708177620197970846793031427189897690800484569903615028932669021466244375620283170484592073316949803181420045581924299377790300577647435816750566003448119735086966179256291153714253928506050045096805582120572913707962852055316104245837943856728626002690118564682001972452568815250124793406546125038944515319497489367153413796065472450278782063520485267109141727405605896920478677701010213851169464822960869544404545438791037821637427499977076452847553079506600262070090533674426220459769075421134029493301350306065318002245720448788489765008051941318575557805390622551563979598391455504563802164381816946631598597015184632677560726388180781864852873254436549420484287755154803534996838202169156711719822832513469632600657224131943699561933567196602037908482662212768501613201632278808470160346016083959249347304877141630800299419766168715723208032161403783792364761942183452361712445776839288603677213428350631454649547145162479064513765647139011323422503734997351292710118642670530243157058398151511299501511959310170404425602720927245848601708149330917922396295631398339200414974900462694469087975428286610033063428121366568071793987761924643154795410351665267326072042784915770625778550925605843206038855541794003396091272482598572189163363132768295658707811747059685294818567181732994097976557964937117032342282922352363734961309522254904482869575196917422977093790432665418979143141572340743395660057362098408136905391138217486797321062269696904628680080472864541752574732230197471557033567715342637261900758095617243715267929921024306714408122016172612455452405317059605594011542962542385654395319588096271566425056238779579784221114864145818507834341608914061580499540184579469983990501852122720896977128002726080295240733286130344282062472471062323547692289778367846436880565609110595193700928475157450295183940371397636597906922780494101793013687563903870123639199922850427175953523319635234315566499312603096307225341504481717811271220978830333864328913743211705022180247579463025545326433503157894450576068749270108883152010280657642796825419628042445825558043074496112240011192428434509605710602659059309559488132334987254225915538017644857036878153325904558441147094672466660879682349730503238358443078807169553939632250343638047175947156398796456095853746854087274615021813313337254078981484026630706596740731644826449659264039913995279858145330160845788494414275189734926761274637495556246143825217010647575768503195589975519337639074707847164890063729329694849281434984110112697706709955263272120638271499891954513024714469292968390352555882662470755919072918300397395953216927969996993418627439481743404436640759881747090943122055125602676001527355695451647626422243151932086566209109881913176143551313643775316381240902876764852386858226429919599802610479695509315762691992356943948223787334312294064101610328662489927560239420874092061100681296768313767952721136807061960847129760913918244000251598126425079344593551943197579799906374178399593922083354312923388236621532076506576921668297093593155264409578301590196663242850695380538003130209070236410245946380403504424721077534575167867384997214026726569198518529677237194556787055688634785537436835581436454443023556430155092875425395861367506238495878302200389733805769469326785917244066068879498866266902424492768065272426346512011361803498015310563220142619151669802508721113588270913748139891729422548144768396648845450505613119084077911754944319810592655533310928146895961021152913083416133258390717564767892080177246763392927980729983570876775735376094787603634362235782958474963572992807539178491938675458204831417041876297712527769848274529742767244119819901874862923432842755841239329008644857052123028981894604354461404881287115339179971859513661368616723022221829913440447130931115150920687665049566532338970946458914784943527432046433638064113765355961830574132317587967371685334383588097272676536407346523900771434363570102147969541610686728350661420002495455860474807789169985782447176044476790558240784905425753585419892522209178577151228538346732079988159181035797349348033484683435222842856255952389385697712946241564426105046469432127800469923329974551459526450358384559390585899112016230685499098957751041631474086434966748453286986122532338097517971927458010922155446575556784319321351148975842480706083426105047102246034038483424549620202038636853072137116989661292579897720237956564949169839037402011942515910447502663181617763782309275237256994123619476386952287547470006667297305432141909437141008958789297765748147669620898238383118155376776101696839834595050006544927801896407875240267526793141715477922766463015050977728761627578988839290305431013629878246495923149288412943275412945176090194685997015914295438485087252756848175658291129906725298291734791742236179239797957713509925103924940689414449857996694526785851972144260465841586785461314338619807566308418091145292444118628669048143939572370084196886661862012998925125058767738490258225863558225492160340668921561369618924595448894291531596310133512637226729117606220290816406323020728873180586408273585671242886463201347818978654108745516380499809058605051535522782727541690365528302076534295395674593618968969330243052523746331108832002621345711174400624253232624919302611268516400523986955032509646206284790823361785832619175833951005919842812655465051197940089495280695098670625923466674442854325377961956617487979787229399218212766322930397910792325088289389732822655071488997479568207453428509844697885855823864672185498216524891233493848136655364029071357910435858472926105656587210945887689901418450175303324584761497533586308083984784575893554198681087934900247068900714600542111869369836176641179329536119705115702124432092160822029095043732822865327891019767259086799915304262409202348564298277564962550519765604043164873102035691786961731787859006426018793969294106048372131033631805860027604253756479385656634548694744357283335626567901330979037459911656036770192448569154695344788539228086016522751259156474179271536056540423397312850573903863060929796031648408450154976872557483974263401467506104179113530323106221889111166560395232561419210673080957811870976555435586476569164219845012037310582987770930483342775957443058727636170662098016500205818374842100488168382665792477850104709208993780388981339364914198212657387511604991657096335497528037789611664024724410662635167474433080046956325538767210629521037380540162604910888185306814516054020847374663285162574149869186532344563837274492812799775110834302409457951374450187925046497322934644265447176045907379564690594769214367296797504898180798294859762499017610420285306760277170935586844356286335675637851292969859178823858203379219699951933638992002626095372590780891638986488192123743603719272894171494933077183242866697820703509100797111476010676590215044269597250185559762284373020776959217061639241408461615120104336909673770945304999817679487511954580139140899161551844019268934087659310614422137946001838249566750293739432660467555038310558976630280983730882475787083567200887617531573015251906360497965642692468107689580506704665640312554984047935424004191017143085003157139580540802195456299716035026404077080672685642271211588635768437646044897047697546534560836787398052716540041398379308742292368339262417306980289265398479976991438987768788936770072629297871209051805688998613115247383491496514337090371728974493344116729286726918683544582962690513335645673916485926645343887616787539453318016646238935940601626172258893267227117821761041933298842185650564315543136393904795028066104611226138140776883534443693661923995419334243868137370636674257109871505503111102537649615373221551245577292030747447915425972472277765704377604931849328172833739064896103410342806201878066958301222971735870599693561340193585583473571522375977443538037108381075942762348141075847110543784771365869935890837135613187369434055752812231007642912903964028447459548325458717783259274719153556774668824246762015149674745046772225951221124440951475532446154311913524912351290329037390378981475501630591187918608554060746835183176166417957458477354745067387556938857539569084558211628392098715349616927292115834304385633035751992688576878440415699657820398776170837385090450838188962739392343828600964860604828257738539008306706716696401227597408876114593174707496613988804981663998193408760821004788165169221841680609860014576244030921083524306818615075617819803980206313881539193530955146745104675679157899627369879313074539217605520796773778228752362600730476265468400280790583890629773774732697034685416153134799167036725810734394470202494296265816936882825142269438032942513378264496448548384556709962562182668738706198309796438866289494042367562694750744277541098613715454576941199629580124939367006744285433350970013195093273212614024707730514185962214162296202721395350584819300989810642368134185274745118242411748322541279096411112313099483851342065878066697158930527297783455511401143281702225425376929609722901629496774777545551576985106548996279955454561720096558196514179162506433454329430908779682802989406066801250228767126274524472445055131876900104107908359095822679523609234972610246383643937123967295002913937571363017156960658069639478982917947753596790387698843785594895143616537036533499682016926036269837413618530884816257602654105665896865535288701506368692349782999378322099159459506668751315429247063315149694542950478284153258565743173894288346574891244790819351685025394015396201306563712616233653544526249982028291906003020805924481021163273525985771927101278295336492192015185628631162715276119306504549051724849571743250291322820504586183346611430793033091286152856391395997695648351536167449914675922380565068494819544579916046485309488685726200859524456074601251092567959004668183281677360366071749264784663027957620034795320491264748137137707403390912303784643029848242168801419620825014725824637444393182167313650828758246426772779715777554763796577187158120654616807761528467810270532694045557276592076370422318744742762923748169772257054353874416124265235057089154174052772288992635876693983255881907550974831696392819612987430746150674820713446581241067942909712426760673120099307595632100992033794978397628966192865248560312082773101992689709165160808223475595322426970510108978383068607406034142421517476261898317495481313856802496254037085963847899760941011940474443313516962847009435412003908606564775405817102075254783625502002959391961302921046920557300059077836042558054241680941769567067115023322625239490242672217253092911994153444699431386780484928368193240485355278040435313662011976033992844479877691112095815403154254349658543032733668804086374785842066653872890301369820607146677811267067900247804540900655552071294990463664869367835077922714610983571602015047032228131269121259353197706494243504740337518684754229161165432195667481764568719034254410114650366995963472869934624561604670457105814410826585763583022820401656739114964139254614708709933940008489535681391780668794083348889335400964422132040783449182915115041959102910418415160992485008408366204344765603314466444917403259469549053120088867324758363377340975101121833909572832364145492943112626420295935914847378866612023822696933169140126124330665156957285407581687556556499566577850357251915305079359062936689451504123680174386142006263525742681963523719349318568191086232759103914776357682513052669332288239928831465694685045140719546243957588077192131935341622361962976053816304508428640887295384721152051962220046564327286765361640030043896213546689927295687795018696872834427979872622669761685745838960502376533354885563338171375703683103107219234365295542046154570555434291231870110183798600634468703495621253864138308400985736619923610992604577596285319931734237361073838270810686856383919114768260154626197184296797002606270928896056183929398766944494279304419145141322409703250411675055560487595445500800498222435701019844506986618722295261619662131420843804695136181080128869786041746234971409788465400155437834971467316091984176183580306190624666280347596228628555205178626426801350216670414407414773634077857340487962094174299087162622913447231417565614055620033585861110884681912084540121782507065244046494621923478795425328455487804330522815654751657767460568446549798775029284881375667504241479331933232486268353509045604850143874315888792449539755422574333623132910852956235074408646864833268228882025910372591627225460513611935057600993477414233133309614409109691206729661684743341291201165471900276391055250584110475281004870460739087284155852937597102862834144875892594866800735438494546515741708187903694579757167984674569838226646878993740101735400245687668907917021480238225089843216189788044543837353936004779809272559977488147184395512461130228345825304580756892706223327952047556072794049519141898854600806094164597316025833086494010080959243190051401792986858897876467762166980918782416247405232654382477867463136959909157404278231833647076129161614563964528994444977191612156430862437469464616662646092411752135607461489937553852916870854819466187395256867681161520769864766771184823813203027473255245211620532101925280029724924446207756454337803414567443458740411266562827829863868218488833712057777304849883415981067915848755572410325747478985128114763544203686631548328872326719728187558147442702512158104915053210396715661064647375883576263285553948753059897063472232065071266776266874778144546475458350870062155264867270818004560130776736838304476649327410133301269904865977476940460371213114005318981269486306289435048032294383918860495437371024217189228342943705590351759843716710474732314941196365542093555922769782871653928067339368105995168498862065052026411848836628119460213069542064406348205490418853748092614483598003624124178297255314443031950082128809047434080887442880792232309591122472406237534339655768007068389584203837533923192959780587462447039908318204787252818498245122493835266869500138777684448459642262235781586784557694450694430106155858852280045568818176689619827690554057879484026798151386616143539593462211869465218827536648980190884204953651939866630432640934993997445673785587808487516701982772735893454000191959604745064471556476266802263506388163246437728340142713475873684909070224291693996721839199037207633660905703603671767019469114688659907186059705586018301216014542595274462958540125510877207997499135430691508673478586737430452107715482640002720687148600274209940754292798818756847686380203580139546810989365732197945277417783395091788989404783999141941492145917372108359051618460912954560173621579229695513908025405026608233211307648861796762711759719876079472003261231026379764594503656953714984588075547137016655436696706567673211864220699272689840988246191443743945298216278010646893419419330965013952826881555558173473112667124351812735094163535835748924852942247032362870685562149862086035006489835870523216004527805593118158935427060541548974803166963889038094984557933577228069417532755922220871408548269638555765795836560325886896848291282340516167000129267640089096217226029216342821758507960094535643615483874007257425051357114806517916428427148772874626546867222721810734385546393342866158326748106473822075039536931889407471796425718605779203039950269872370014580711053565751807096402306833366762093470040941215675749169784234013090345728768300478524717395454942170733378098570473611141515694280916547911573720945078346750965298338611540136624828069021825527522276707577298404357915958320209995976896871891973150503241107114147645472826699562325435988680853236128437015677810672297254163568081815866819486432104346525412974847741363086244315911165247923855149015921944684127724129850833111580361097226751698149800124898920642492632349042819425337932945940263238757690112172756569723243308662225634433159396483402138380592160126541441744868652071856328155061765954897137991153531011928923255156428993983824305233416118623958397151342445119905743300872352316023959165619526104875189117269105761348867953209227794678469109900592273687697612019237095770656743341541419507751451368294922759151768543586558270596343341726634904961666760709529554456317313672430055164918014341400586826085543525822354703889043451253819181947758408280794350531649371132888750273864302947693676767766461329936882502943375073209122887735579514798080421511046137547049689142280963682151376175415694983433384447594615143263671019427789248466384960547857123431898972231962822641287067939974483361792262414722764181724242351237081405244437248477515431176608092939386239534919329456675108601158363388470649373328352297844315903403719779432257648005743665683045710638796518758255224237354187379216832030856379734663713399783378165630472351431687328589208896913598711611800370374090056151975925966395453260578784055830497011390161846147754174734045212905730676140420385638147500943964853575099067167966235605755986862260862855977831189475996021173708727585253287154315732772686022000826744302947069435594066068284014037838847606853082194923548604475636081922191367170784921741996598258765561980001588213324632511324449780073189651702884831247931266935715565516528718698319050619732114147190829272949701386335845064669874175595302339664340312779492103794004463636757513897346917259693006647373812189749870045248406142506898458195229316388642798192108658578321505277869636864926273944457082304500544988893617708061444466337773097598378218469745733212696730889254551705851922058873133471450342024267488378091303072693022453268456753928917256415904956011769555255886025348787036017434101185941588727538866268471244415854266723056630815761186649610269925579194063756835244992638720298026563861543828409435435904148042015189258958839144146978495276391375343182280442489173855598369071651291213687577128612494498382395883900168971091717812319571367463625775186203954295519285305489511887291032066142332251593231835461746345812627603910487422993426911296630508221459384279325284242955473174621426247856688013613379431316028568299264479673950616748108651283378830988226252955327224235467002145330720726875970887093613947463680070748880753778440006403243857758304158687736633003196147601150180710042929897228497294610086077501501223918271170711993406730370153819736791899009759142848206726057108707712637238059098630410503177583629447732100511069029603717973233019473972456763372990063403707452534098333596179944212807180529295031413644184905858335415192407029974585643853071563867106645245779555517553434628147788664600241106532841375804237287747443664623782160139491384882966293888407371178850653353408081891855873571064454086152949057364750915794165314280280129074672387114718930378162704580119916708777933294729260025359013952143123134564720064438539858969308979585026243214308485538901994733568407438541147127198904725210768507446136626370744840166939291746857638174198406238159664843820256483242236225995918726734271881645568777557443289171050204093704678402337839820225032476123582775542688670127402484978825412561795392434109491778749499115299157632979225266362595609370880335304723897809035592760074577372822638652931513179956380111481004434083446576942508940230833703263573608270828054636869065800837924768808970895013113427926309111714276025366025446453535887732919067774418379996514875974923907349031525550351836535069785059516349056379099955873345868634020408508617657968385475042355075029206477103332420651980107117979525880879923730635909757209334994465781306435967654385103043205531214424830017269958937744385387876801261564144874051776768531208115840258871839392354903969907511528798308602523542839586673728016220042191687316111659511118254404670730241157742138245324643873425135792430871376236946335316337849414446764245204005376490292300754698397568940935028626421723341830196231412179201614182887569330518623776294507916785880043867113515037602662052262291998798853386716578566518918457590761944783278135030188793986079877959947906910657064917774974945703046964580122948928554450087966782310390227474794132198459386991305060101707746625435612572882391522314441570333790469984146370859228971798046896070751126293880313329131479628892488790364518510062169238283082608072730354700399267499336531671250789750210704809825466982108066306284796480699995074312514420478717566313007820797089501403013747421805849712564905999253939345436685529167664300905703962030327541956699204933685828420976689957207455134758930643386871640641719898321518295835353285446738957976935927537730209113124075329641456565604123899094608411203757817853240181612306767184451853390818187085478348729384074232557249603894017575371537740445369153042462956515967756035602601176517424187367555354706561872886118190460368192842708346980553464476996327360319315193801488841041501652016049197673532472493177534731319065673177393592391367950578379027423878700224215826818826442744607833495938010543537125855667855228549637284850091781715354529867546563567564351500952439987990309368703967034233402537587429059181720277157091320815534005591932099311954447221898501422597945079881378432197383664160214350794228490300781173054841447136549102439513575390975534749720194860856956820272365673307943865214740955713487956530841767289985171063357862024693801105750405014319079915435877350351476047516152405059413981641489254761387136975750395054469638938532401292213319412435151931784146123301091531581364622417216143469276440380547786573155846631201647994799037667047765703992160200372200776205289159746135005890653891730237349851901452464832350404372961309275414282542450241977417276955743866289298552995973255025849320599793912310275049809582270820334977093561317374335077895629856929407640318010268638620826704489558119331810269566251422106768454055618577339776832344035833183877709022159259784882565657436737724124581021103559487927085752778289035996764243145360264461811954107453921440637853939883267142291517085967484707931306733296022471132304480818263765463401787066246433653048078489671791203810903226291153439635324783140960074209935037822952690419276913238961184353006187789373697197483579016784329436425729031713475342835592041092705655581519455544035660197614538037141065802294738789695978355387180626755916890281416108098316344428410304621791707040418190893421780148913977997162528247059382431602811595291505251469514149548743279965985372425915147163594797112570878216671082235312952811572826842298095770410653437258072164418761237020458433739988849687792935461561977128441508862233055607142228844725956376824434607513075065836433861906262679889112142178029954498328732843639690820758388855655647169186243178830738112594142073164181248428185035475191078943702100508671436799126183871163410951517391246264173356364053005709711405832516981943752537967848816427540979419676706138983064784919657844439360573059979404973275115005007415225562693536968012180679347683731012443417507158148295236603986942131847792912489678390503854893225785126698414289956642597121237590924139877540699332570139392093634770092656161249241011726922043562480435119717627247942532622540303438924932358884727418122739229619872674604303585647348591790544664661832528327922227155592655960965723149864513359869544154816458959598912054239696629007726621854445542915166893161107710930090970399628302002637847142505308425942869452869080599946339063089451851038952579910894999758664504492033455754037939403726960267973268674855406789977072309973219510368336368572922016986430195300235398409219113700180847094640828997938629492056854510026453617425307918725959225298596410221458845250342148151190861825464258139638284599773137263141322213734267452124494848124625615790875109558117781007858418771847403970317721852793782755201617943742953833248262534642479281865648410683202324634994504426814613316952151616665053537670488961980804440255084032091657984267094853077653329417165447106874208654756501683346455294176089547204028253203762206309583054716455425347078826220352694461415102749468242077946084674154536792776911963127575034512138481019837787226745244512193573688518369154798824955751491911464670249028760778633327644661289846227618722100279240272242726362478287882532793984282683511517952219708280510595493893653931997544615304722490459803029719690846100775534975381068506184390920450780462533493023822852966032812081815697775818636035799331298763166279858629943081632019346288353056942416811982121763757916899375817795587555833278783970834864121890986545742075640902075276235964566432588819709661667384983190167085948338037306456392009767319196714027971331807089257771801747855542741292421752273767799311713749571180850018874615155454352875492821763415637304739511756262775880557812882721005817677185900418778529676093977693171393703181838627450742493836353097959459606736809268916792891569927736292306318629856309834660972267121840659253003633052853421147966122686868836365322555168693847452445367723787677422959318388440177155880617172433752857713875417836573451047743978775130496202881335116024385343872743710668229991489434666751558195931115171568138257948349246695181888942016982259769060527724898624005675159714735817171595393909775535740868072968870950125062484798708857433397636990828268249170104418964290957655891048959161885580750189179438179351549366326249029217200348607150963485362346831744174957649490194464221314490012585901473453764088773587212829888938652867251301148649917345128234587338121125425344275750271678615636813239794092156256704130806925078406849521744108928818565103311879590551754842672105377552373552525059870676748037121256189318230715460481665669481332363540984587369244519846797933783091986302973697801253628100856699535849908220226535628093600765372306506168301107156283721371765559133770571020604375675384500203463574036231931499660142077031056782868835732699715992381736631279311425756455510068331023169945417346499049946323310252255425104033376726488111779436667735319719390748241905156538836385294580203261502606870187973519617439216657331135908394537662687725581500385645012155399252294954643159171438139092732515146223266782762179130917016111215254240557556997151872609494814870281954180266135879030730722195652795506573203005552928211023056373267273818771026984409857119098352573617317565865613345743218756209727270355041095959998857273434981623605967734009409961231028990994026421781954189097691182611655902326555941027615215272801462973580044921556752563250911211517898235800521287229773988806490762297695926461848581870375219782067991657865953080504477410217878087299914467415540966103027065843717868392226718722610459488520255715937464261266917850777665610964027961437197275427374311914199067976580605130013681777811061724069327497614117280915683083160326309627767048568741495277814360057659017180912243929310409099350816126810988252354896924390113696996938370769067047110734156828144548338241684068255870588890370277499939459226395611441265508211489273123394567672258122112794119914423227525767448269987556425906561284691923860793796057552443428872673517394895227461388752093689357151331737941445351825650886588296369868939187122487594386827797062983881302365153264101435526535001071163632143898404578488797150738005186579055569389642438846951592197275660586427778572609133268562650022688079459644232020650473144024206141578732911546387310264423322080899899314113234706887894480283152164966105632304042343886639341923503045692001894533537472967236241473739118562929501048290194005616706682517972917151830598312381539418668069412861218604447884384839650949412546560554526747053540652640691581252425676602586288324497631208847537039656881092729926648250630024202018928288370912221301324068101515038932887304725931071515844094584385601133261234418602580983797737601926129963616832471804903915728670102050051951438518663734386267006363048728851530798511601645214614762779648892610152124359027078936536894136803097112784486752453182004368603398652400353700742071524510562452402621459408685221274656273580420698812599775934194205895478533557136267021447578116149385393343624769386195895547296389726380696231753091274241523179184668315838467071308972562812718146355305962272150096476156458015593702295627971211288279389401028643389970648642821611423736468215379034854924048406830477207602311191827640602375634602027399525997327623391054197077577611043276551453650850273310318397290915673985555316626511047945917240662792639389054497436575679993484560513449028679329255824363106071483346595304414553803836775704468631176758155378245874809564327956726276149755635303913554895232973105925472644776644441816049275764090539330615756752240973443378485188990877578774290962750979628659297856486692140788571138759120360846588546972417473033563685990273948380660278513838339579531852384325461123062061311415779750313986163189662311422633872291372970808519274525078625434012798630422102437763301843077699038487905471433010750333174721272860660914230754053040633309752155845864601204411538807744912920244906605336562437684551996205202525917005090942251105348758516710247706269127808008253256968237732142450356618605495314994604989617454378763755872681667647672522099992560220084675312304558078950092914949896243038084577071239948746130973459521419022948868685448897461637127834501668714181244408995972205287323463365451158082878044444063749639419383495532092965892847988756037072183629292402744119141650594743260433859979831844558907174659219826801911754257358404518716172981692484002193710230595547744017593877313989455664731169260882800309139288036921827446312531951397551523392167419465512617321797674134790841642655102678667368371477513962766573961582500783586339287482002063929066467554805591468672784516558845619050723081282387291501938452601729524121683934464072371320115119448291044221928396522381335403889376122129296983885871983980041378815353606384208179772040179299638376018683927035153246459552883082801879258514835715102117424568467523339366329822740169281886645757684104345707708233701460630655260187468205976324983253380179133591456787186142046037717940849882282725805170475897721218291469612261718985658861404191090431967393353981418487951897175691447526217350106248405133611774545242868461053458915257486736881135958501234227375979374367768151808382652668688155486993315492455013493529491480836430301395595470637228071103979267932706293860930383587567767518296427959764048813147759870036645071890302215098776891025259556984160198797253357332540656150143783140820516945173770617347229056459548489566826039251121922885038403976291493641819700321490340916804040159029151774094298830055110326050291183498875228101771973893321857584337847206996317592081411567920369925771033472816259395574397432402340909866045545879888393416934028726090378483819963557070034681420752007365007797833015138186745913486190860415662040832877650221596965829755996391299885061601119988800487928166510262853496859333972999166367192003389852101690385028147270304420455780160030525424901967763193553825684916590938786348037092286083967176622246183323492751088749917746865668323868954325882738249067860431069537308608645568318448923906240574214375200931206107235433938837423808091951207526199814079077679343880574815217481505821022981965572674462987596608526751198904522765108886770866600340596997085026870818350460052453036090218600511182013267867672229601702234552785473301353746933862099965817618537914168138642812040047161467631947479108243006534527751860867966797779442120745070448515382132174441372416942761039659092200821319100218986297677672297441598565348077041647978436723660663518814184509212119629403481184810275873031785247204209905795187125241786810150177577665439671233596770329529001630484523026961225296477651048391504374841270095459201608491140048219812463680919874358293539738030898984032513181959318568085032063007876690111670763215957813225035897357660878283914071800788416097607932476933806689671088460462888721379096553147649745123286750770333316826769466120597498349853826511441595855811864310252212167835344100648239827631523616717716389364612061002706295249890123416920640191770637897251732642423936004879766721794096780579862752461557766534315569238868757860494067489335045484026291155422800679305406643662376707939234972762969802838433225702637594893096631469269307617596824889252766739241596551135400509951330905365483106961621350559179072938657351284138176609286176741491889072018912675070541822524868217432417782642072043875710902227467496210333686991912198375221302749276317062814483131569180712992828410486584781913057065631466684371822529279921430255612418202417024556785315276428847968046759443999706477533565342528103858947630117739786285448487287294995742949730650421170613023061804904962929707524534644225866668826643518672037107731797771181415221080655173014075666678873206248094748144022840013614969882842691644401550661819488784545985656413177603246438193696947823169997835763789482933896129069782486885896806978565354294996568757720015591881420156759129063497845766898165158097325752814011037643755089861057966567857618204306584300923851061600690133336551824992321211462522125039503778144649847203897149147053290650784956152302864024188190971431413179963263717901026401066477043813230309105752006535748536184190616438360175813883509795996608443103745929835209480974309658641596610037220363740543387784449288173233683063960838645274258232429612559967375868994157699641918180844718357161913845437108607340595462849446503817295693956278217296942091125887430257887647721972087323342592266802431328575678162968614804181194422509917885948618717115780311637006400158507713441918176177705461485268804027502318024664399817803296048345171626251817208836287387315106908294965681826985681677792186313001077610347071251379434786603149051488747062261472294152587053495035662111645676151818116690373395560811743924816056479570251639029586451567425213681264122723228150155219183250868422191110326912971668905148609807703550838473650162188276626394865825734596419070113248249137102197655011066001963733660975150978539831524047198783725554011647421112187804419397021178077891287730098943670315639466417600457246012753534920165813624040349300388233217576541343246497453126220979700293933676360592479902281378106189301606096057858517887793197922644164839496745284106196506869785946703082689553038200790180930935242806043850332464213184948993108170365760357238009138796129378060988866656220280178200212696378008254618376316488117929126371212075547171214920877686413904866431658104419622718810362271733317561880268173482052059507365784766222345463841978741801487497031666198900594764785484427145977126819069187873697462604271883511973283378932830763383489557550305158676191114244506532323544281307377112047851613697408434455325342379580369445445036290964487118637843142776965600662316127519497225315250932634552665322690411306750165883910496445106403232530142055520143010894186490178414703984321159854834705421830406530351733794225479862910398243280882685949099193297327042272743960694144283594864880320835942468157708373842231807063815053815072566011907099516543182340615483930214480961474067450452209413207659330286915851176276928587463033132100990238390650997859263873495587120902342434315477647481144954203760711174334596016896064906189369362220264116085614654882944580402422340562598062027912271428232076983498595957999672556246234226407323110834615296265818413879251340722661782944240111250193693732426405173310312706150352818472541026391162774039719027712769626030403502799931939837434201790900976000538034401996306434844108692884260706424647663031224915678400806365893079087724144387878119663644338921958075180304535476151586359326146672581292494896028407078865601131669696867936939768562506613475509994909626749914711814140331378977632641491164161333226999886357590026278023533118585117533157579333562804130447433584490672960867278497411549576481330104108184685059768345576405479108795138236838850616652100188675441887812813287162602068174597474541550895155052432243723987866609184914065020643924802671447956025134659498783313083536175235198909890407223270623770758904505793000406169607099689152761331021154656012203540867334555006056542424405855487624361353769869232660714873127752139254842077666400983408504843200225714234112711211000285435123413278095186592049649559466499478380580632494774273846722724914888097617147610516629179928093371138887539639216330729413275223463512936400565901565422260247611403727360577021470215720529990269643521992898847373802633612598645613382426779647244267274585856068523514300282015545541110535071969969695606585713575140595683752476354709914361055211938247278545575134713951706693905641707974645090733887220442171253181126623583329632247910009714444894746795945475503227560958197286853010168976066474933122084854163695075911485371711495137434610489083909047162395752056339208156267577998978417052022332096754826986698073466706696371372867348212797071451171127591788600174888039318210397474112158238780868003722809809484358606699073458798250790580787993082670237941011024654845455763706596412777178814464970746450789749915847429073169839107807207158515244103242161692052895553419902376587919512555231353673774038817907987662640842486695277669016315614540424335343585088576883121401742215806496425431689075684915268883047899139492310244699530315721344285440747494035839657648880024277077306074626093445617563103774992169536233441498263491888524193587825400885154005260344899950354918655500253184763811671723251777161250205060302348761172083223967791984955824880589086711039926580629606508923043282391875844303446506126703785030039987019870483890142277790827198341677407150673065258030014999654954789010841974532163576032560078535373986761427944478655632696053878448702937177068121056545133907594619122076866958302574725555067086869124836828917919121020407455443978393417079700583454433616285677517329745785108972850434207157823459345931033881698518615215692993162925404888952660846938656122187830038064895923154683477262218473480109665196632537550905389948398876785676025488531175727018886676857397119486020570482985684385323074959220181182052950023509929651750895488367315891675935890282160453399550833298493291642372188525115539873823091216865463425677020762153606438445058961376274030418276255461262589243552871476376553536722307046481342179905163615331720974294390872750903626238237019745121858570756425314542554085657872515912915507044472629903064595876703169313054660941220497208728966901576458845687594929881770030101252335743851958560431012715233594333499840294832113291427287379716114905804701644702247856375556785625373815283126484106043596488739395988151317368449536359347910730842325690008104965037883341123080679721870004141265669656245186065132019025281726769701033483947723485202322249967710337761682683194770542242177990873503460100071213473262587901259662130673667539291239322778863046824493914092853067299909956363304507826555698531461643816933716060579643324099497628926668379846068243646546884929254117316485722626454824779518770809847298907996346675856498580627451178854498865452383741580795038591733066500104489431614310144752519890230069297935612798358220554227782416398780614659389775217089821338038246435989754208302186008600699383344534846155996284924155468369971357035166725917803471475438623922232384598520949130635620652788977265114677859849123827979203603484284591803856247750679615441465159618429452674542811531166782850921460149501337982779026883824517895479237605585171077405113342354448568858414799438053930670278706856630585833749438766017900770311713246384548118973059559596777829143699912520211879482576066247234225641258913084653541601386799634919739196076926789293279346895008983842169705430777856147160258573423326356836504010832912283664995355429440018163704645910787729725652746950831073725551235290815180519252578948725948627505236352890245971388539190573034052572885141147309964577413023599311662190282637015493974736788720552711188278456984883744127365373366926543511302189940784691496530514039887726262426298938926181459317314718840735785842408014447125973565389841204562661942760471850910478118254397015202274598717485966859823570386591521760021728934391778371850252218930283990669103320885900525445351137502400779063696395266475716647604483380146369370633082937669031362909883050616443004254995004708910809454097956595904256050775017572583478398100461872711385887774846892973100433416312406817134015287484477180916790149751506265503902718365848616338001094388898045905130842931364429629778578479884015932999546526279059370107362782992697843387453072204118786798039163871800707110011238822547795758004282491540745064229229678204561664095215472230850315290497304769760143117026004998349481411991960019838412035133176076251913501107887191681735041336876369041185927207729131486251880915882790436566817265743389485970086290620048087428140295887209201123619505733153611711598754550582720606343115768107375648681912444140676092173073215896711813263595719965782085127546121001190597593813740569238135775192840382895551682850923305177907389364468868523639631135239456095779994112329771429291988397302434044358771923186268512735507645165362963392646899355251194420069488582727931469748117705835471379379270692957779808459861052387563378885730075440673427602440275323205763337046791926466577500526490949360580634509213028675567178202566185958988527129206333214136638763381079512132678376264353212210606115415805128518246261924608484741569677320568013117198294071752731449681160730749988805416481005545393549758818774698682447278617773275554368698263249952377139250166824317309274941354366140501537825799240927526593168862681492168808920745459599997519155121108159520887129170713625781519441258529839922201667010485978625757245051364331606884333897089727212606760193904448451515139839953053279191400614565056375302349481813096575541544576152986129835458860842372752820215595227902216470718479012991224279379817944372274576290462334696348041125806379724600537288197116070470801307602162347086074460171178956233156843628160315240910938772757788387425119040388651382710843917900715383547056690019095960532538879220858199706687448195618281475103517464953927949166683341182870514823087274335699700163752953680292913602637058788344763430955416816600156046385226119262677549286327679064754063098259875359983662857650381177512595096731095831506634556984597260064888931247408606916301086216981847606789271631376188127348917668783222088414574496099398959565239473877081917469560603051739841566578316877212252307903163883586569474337023008241919560814150170608807519304461954472552909523156812444198955823752981316874750778488133114762469038505401242161733888078761734304035338240410905978192522856479347616756542940057579533811332033209586834184596817813570311542475832073665130070225103334407769160251197504579535359577448425094512013691319342153591645071554774503871325412736076135292694725764525189503706969692299235484337277159526588294945273384313243495268357741868971269865368827320217599949976298422817222763983671332432779923481020590424652592324750850433170091724189532722058321980178350176543117640261070676722643375774361267447647407747693340911405248255771250532937263639064187595787825670271412042013908761707184715361439233273389019883667276707921441138495330876694540268912096277596696054032766788961499905360446776312259483919438032218457656110275244765258859858151923002348610427783406148869871657432738168598163719201725365050860410661762942212274291461397657827741915731533202582129468178493186812008625585467537137751784711321830990229914645966867260493107832954029871432486361995409634281060649647853036435977056151229675026795876582280444775680253596560771133162712055718854335778944281944297908718481403184464939222374700919436744961731908896972289960033855004680139338001799504942130405601798059841282000645608125977632931841891820172924915442647389038261284550099662167056728208647329262659632856733271472520400594072763461162838661304423264856670796611227872327452819735062419074771215870827132433762096376790282526876277269249993952424690444705009745279781010205566813658514842271967821449465621381827242177103070119565091714422470486985471839869331747976098454605767453009481231328141032669250508615570702391298110269353258357376502437012242940732195005843001959251726323874014532212671820930232873549471758839283681195260163845592490843788211818095013396906566092640476187781031949711641866978187023063180700575436469252009812178285054754470767499886761755909760809961421484022099647633955255596960670329410014382041484311840774980565735577819369839342028202796601889508091707604505056690531704432519438089027011457316654561548458424491254493358270326505110114066595137580825468497958065398466949343824516438997761693868227658068229382472165012643190543182436975952128887522979991635626897671584512749874455030244001563369502139813927847810406012991091906047916875420532619326751903380194046089975339968447806782421739100939399624434664230387361749524904665433964618129796649028836262979423920512104125633860871819109750617146028293761679023448111962824087544292432117901279570422530295993066394907972014560953922273926297286626568743063136105489483326722068897065648402861565689198996299770837810070487918697909163675406903460327844134371833652160426917789994077550745169675191493960244903811146351641832034136661042462141811975802330204998106172331625855734325161077182510166413869204508739073269411844045594606485978732543515184338755110529823932049585276376971773136384726771987196790830386677826386146497118134465670652654999710896836296677552518182330558813071290925677314634844551867696645295379672173903591955306964971752881563074254610364085600831821083828424602037676001692348687774736222607294603725751671563241136821544084656638751359369775149113179985083602250151990921426252106131839454508044661559137302837957351523328847674382383000528030768296949119142785946226603281314542010232140723868536293974641254365451543803341150604206697782659182783513577184512948002697637832541797828323335630427078012759648446177034304397694966912399484961282568082194782656521087607073090368255349764476782302729894908947084717305759523918960782940321866607481200034982024453296746228685983418462260757245477717554445031113303985580502972954811760473783614132813568985816152789633566744823696656609442641823834710326368055925759278079789155923798405651081138102659898382826156994086399419560848668917021875434104021756338849339473091478552174713561836564273515134615868844809228084433809557822588115938732726859206554090054387544466769655662997679838934769835444065243396289902529087633554288659227299817607746920681530880295303638249496556407266991533732932874002879844771256464195132937685714688859329394770433650131570760621050928190997808725684113811367746449008099837349690091098714426538764078619493097287197232881017871914159874967714372046028517828730367016295983411362246159191051394628899242347766690332738322378769302518445738333029388395469485231760039412944589730311127658990592164459438430702462306246414179920012293053280235544461223495023213310873246340904938631001935591617353681082986120646583899175391372126824328868739539873407870317213382129459363419541992392541131994982115955332005323288984953919889471981550358568407410233555176742611669687380208853992406043253931832327408430248899598009678822915086674895246776296348910115344121309056886029106868370054647901413471401183260857986517460965557099353810273063674047067192638105398949987465955662293389932670051980445098749888532886080816381405497313930834604466388347986625958514146034466808820692444677574007766951613976660763425174341627275986121114930152538851620828377670368489550997720294175324515565786582090916999554561881085792591480678223326661748213484571206978379087032332908224185639264197002876665877541379574023041950856089619702354154149443512911732230147830221972758773052805325253697889681380561710014691568305311551326102310196683909612947146705520351932198695334032374748084900503635451288671039110708904540772558566061725253808215001324316471956907004366247201701990956987564181231081939092004753017326258036356835422544466711499090897397183126582743073563808609719243920227344226135782734146391981577208802223968930236503524083463816360691255135048202125034620263636891415962001342456436437049078584366285115896703853243694996146606215737622325559450355381998541551656565283929159024054646364196848590003911094693561391203154833642387250796058973547636537111736466372419386804690758860302394856979799592244896306524884249887033110667999264501359010471685427260069453363514048016221212584774734112743536364077285637287397887500207459167130616863808929991114728472321814015798226619276461898494896137167774784018695251932493785111847305093983158819479531963164137788146135397880554123767544125013764779427094906672321638979394614701318827382724871061078967173496833110660368834231720711624901669654961954844889365332426771492766703897737936315145706309248811492238237090925948538782487620604216695968106493138394652467827311065885805838784318848454923893088582530104951413520255490534142148667315151651225702842515450606724389965205297340570510421846451789508274599582480826616917453890968415082671745035404106554938839459507138294930701412374199227862234140131707012051687275253780998975264492417873503028447038839583146724794627236389499159457552136742618395985092930091578724153001362998135734903436032556533476780398073470010343520186491599770053271259298679610618321860013457227641705993334248284969425568974366790471425001684194494872962675589602032033995380315586337434528621705688953177888755347870726694993418062788853935110626864296727572001477461937086701548043964637067845255140280026025236781763632464603865835907491345708338752945493106407449885599406542755837212366887851156454038877051992157265083061522374421143174594178936414630402841813967031048565222309173775151179917998734891688458472712048918751811358641529940813815644605135799047344236597678355176434468991597212780122344633935533828466636747810682996044816474718738668020776418138469102967417131672118459919092319056713904972329644539614601529054394807093652996837784130495353824833021169279483544053269467443893151930353974403326226335481196511356279703092454303201137073418350068501813899283533097155760774561330439391746482095437113538153974944319709181173329384019705005593179985915617778292731189844117624599390823451924513800338149144730494510310685417350122160998032219645619823869305383668570688406254314215722118854370956529675292760877826822653752898524016488500831420697784194934337125138569568303652152820937202300024401387731161189881954786158573299294593392298770328122325622243034211477925274223438881609835016921504019776603591081254328658373395393529077035846401929453399414806881796981767565243189573906011783326845863227711305054863920128947353549116788810065599173369706297619119079065045176895088839853279118887890806263781903078624510105630157220168250200401159546646777546726835826728326211783519534579835332956162678192335988176097261882447808300426742542353484756415371436683717461778916756644646599449788697705034185479449541487465659695167159621064483819611123224509686357685891183214634752178025405101001463228770095032333099757647900920651069292327627502771112470742737944953536439022132979595302784141351192275679711078925314151739871581924066165491275981780382790691015303128701365586955399594427984026700967294883035875323581252643263320175481182718194726675602345114797871188915667041677247495011849482678028011050792269545700550365965478169145515701463172509592946879782146500168228006866747427891480933767006123765277970743267124555438521797085847363413995084089851409217166751474055405719351064536154942548631306193226753295816196059178054567367122671956434957635175163587321742174731794835951894164259395445763689040304752342477026960679040073540308895620545202042496102443524361559111550974491515382036199440713502965122629319092038868347721862738302140282718320930491405668416800369870869136362289546468446947757432885365934247244217082277218874102350268069142616297806553397949543331850351608979351691641973653967421731150082277289774893832436065203486567369838932174407764351297442323891165264016505703553326555042395675750073232054748564461257712133858089394474065227938623555466766097294950847384558704654867741947886878351526913408433429008285073794394161961954224694522656165880607022614531613775712684334278918972136504393927482296767304084667054844319462470205953207277684723734884810499181501846838243254963721824325348361544612918898849162716337610830620990963785326971588563556048493446253740177026539394275669247940449926260703836590496616173966760908177511317112385558985472473081897586065321525426943326183871745977452638666625446965972741037144100113174188689565379759225779511050435260886788193763407770776412826977523950254539263533190911646528321568699467215083841087126257979763140130041036189403862158626557529047950288613235478536505161729310584369666284762127997610359846705436635984065322425665743141232331432083905787950158456549786978888040040525140339839049626314706646780067563312882360259495545110423567960154605695351462137269951404581123946517054306531632871860993798044760829200152968091499957736043446243270232036364762163524244706593346657174651233798457251724171477080738419679628326023480711013624294307393045621309296764963770348551823248099411371557582808391993529036780519552022071686958567510146141258360464214917089073203073844499617525275233528967612734310256816221249401954011144907605797837170133376929033376005431552865847810147636807668069114334004493011454913716013645153711563155892069067902727788783636133797179958155029999779588036510326026246619584208019211749356222037794898047773013304765561606833276946748041796384439009986095170636974548960557018022148539740015499207426900338130207941669526534648722583614409819925560088469092260933334338796440059001812430011249437406544951813907752169680968668774493396273628565685026876677176910370839323543579713642806888737478829826274715363458478649417956667080788007919216318104865888009565234896197785510470972712604034816479450513958017045781932684399279569747097747334098151801867677381780077782986389201775322683325338622912363871905210523761191925484771659389791143526623051018051612289595202113436918876448454108646832822092143752203478767145402222256852179564006134335267429514522934642264585426576094615296281837308849900591231770771288897143316332250280932591961453029046127519172857782495323579878019309539194071820484967714052775317274781277218463602500235330339625052038184499303264101167796220530890271095282970774092112819383189519178685145064880656753836822847640881043973452377460785304134063333037823664693720797705417349543022877010118935585259421233923559900373429727996854730428075304361754297952050259315193422480985658746842588846013362612321960197983546466491351676690335488400804863371718876436137900323921733327000853743435986826166809303618565050243504059366906088993640626937588392010037433435851011253892617822850556468734900175514250262870091671786679652082990207159447718564526518050439638423472088326594277398242074540769583484639968424480942248116969286454693083504459840623356966324025036630363651919974212938477214233636875780731020281982577859902220142011086026398020459182849607051628706915232776152471430841334170349303554593820498521142186133689499377480637577688352388495848251627438360242638008293925125332737177834938247030421952026586545703309235715896754957504469163712401676716988572863835930720257746578121745350095032106659549143540028724228166870765683884543987332532545168788360614058298721676656924330032023507148765486395660432332329205906291124576700363268287582379571465103129943359316573182254383202904492775394059158162442357179418379426083500286178296824889272870121664857004149919337567829056001927670002408639227807947407424923215733562779457303052121980125461451748240486835159521196777529057386029073241927845859832103838543204614472684610957124444927657944523910639006793043364460806117412736301456342681385560917738579507741939550522858507494156883280804128287381528898279232757706709985636495996411136918039688869585695989548156152800517384010375579269128029736654993880579930357141474751899767687359706329763411042333277426713218682308368261646701096046865273662212076646659787302603517261432959827634652056516751354700264409179833575193591540305496173937229238349308529181823902022147399610811110296651445547680737314856848844524850311886828670994749506730804211475191266946525533641402214826222241302618168718270272205896635153520315221565383777035536239665063003605671092195098954768142701711725034708635099930361410311229335417596861623750062254227456646231326688229674062920795850869423037088387162475143961171117036482402544792135318053456515726272865928797329608493281765172321783027142440863122262738109741394751138365878075882370185031980051000757606618350965720196206622005165752887849675685863492780876216113028904410454023684237282378635178068595404743378358929083783996457415323061680319331672437381597134624587472002846023633483139487185840581986611269203171757088998749254178941823688749868702086680838417830286395175776468137729044014581837513025129522412636799930554820663426972962225749702235939177608401679696105198442474660918638831748368958409193068241489365248166954904706243883539721667062144088483502212712505673593072847773815652824509523122500995859689542541286604696936035059892808491961146042169336263617032349294154341857833689913235115478859706899351270069667309314655871353942903407234014845084551293539960762536150894155307841642323349397352095209364471248404930577577500019645212449181145886462131904292146534097475050146374685073605211962504222836752850350111360168550947376258547088490969520088404693957790889133809752334556122051334227020457271108903714242455524576822610006983191842679644381722186903297021054682324811754478942016604257456292645185087739124994057695536965270259540961625450041344668567318625373749578372965209199202802885399344734948255084464056756739491333215587938385513595195239217693920343925830419852373404552339623715463371133115242445271532828384696139987149975308861454016636089243980992661664690846115878039032369630555964052289632097708676155381034262492586280726200161187987881269694237241773913012766214344941404989408460476410254311957869098443068948752030422942747153149224184731994016192611307994679764237218415125083065462746682850042775319424954345541918078277435441276418702616262099630059968756593506951616709187849230451463214143516139300814788563307191261946097458669050095045285435001171689556727955035420145024001595553828697579096637789222083669436288936431003309436391913325576283521754353619849920082959600090826893958472400452383139076603670982779487782713605819421719485267231786090376215162133709397348719238418919709430278041403704498517054840213773800075147909729779428856315052740166919752875538259974104082786484102774937582950179402104807971045540022238949732303153677246682411630075626430653235581306834042115232452015324859653673463134931353781103265597068042589572346767511093033590487102222119448478534329033132066028119609482346477421533194789706790033886830903044890304369641226642048489952831506338129207555751025880857358503230047986229320434293351429834254980039239364465951495250887435260118613557007966945375259950871651997145672155505773103382841985881754701642246405320751865029032528483993523630009471114247420321676971812369936984402663583210282524852923224772414653296888941223517619574740143164472293318955595527142868567799624546357552170581342962079779912480513109984477637676994502484141920832149421872462876960576735146263157836814698163439987615904445287343821742077526472196896029525312168669902059136770593221253112360236657417611318473966652341984224732190764359991448467160436422811850494856108936861193967376291532575995473165269263273924300713266849349325503926541253875144513137872380377027609285817591579135837795896556746270569859755473229975639546920073095441620601210383691717592967131448373272043451820662465831209158879592995639802239174437351260787099456939776249140095453768783411035788937316927672674505242661976574954094054129309324003847213435221838372725190718372513723988295752400209230050036799098129926378789107941969785771460440124262331496554576855715365288751154224850082385709126631329960563740144557597050944615480421545495906565695565416935342212881896005603526163258062446170863561987267876845081390760874180637451013126305786249074407837401222740583738168154835940399311000701201950641437231838664006525086368089978963726442547547898128216288732975161596451538376340149144059660417454361089422094453377431099974761702609269354395977044980749530022321159393291231796988732131936509981594933755506136993220150508645950742561618295810270880097618734276753237062041624739731154916108373266173985718376896723901109079688279096609615698550610239495930881884460945021638380182246675628820135632513917335861785460400643610402753917259753515605493658730441091882293940911243963488830928121142254796324918604746124998894710782019969198974913566693496457760001887220443328568499387957401170176262261957618651756130491815333568981398308535405855944103736415446800835949012301108266531454682194533565378390044634482933470086420583189936795381061884260006970134760653835920660359676781149443128348610842672328657843012888401421258620739632729026679976802120902463533206581135050736978287878772065547185407976359849261923714474110804615705086014920514766646604297436562648817480955545580305288162227138593408562071839357706311030030144573754166886807021363590028723009803016096014656307436956088148937204751201420559150502795128656103475283670767382550384611712816920218728266423779771073146479026535579525689772926561806777390368778079872746189691365447560856566008169715307645203793392269556134678622974612471048455740486832449362325246872414905974303387995665888495245867400235079220606423685894668503836080479820754448657426422608517446643846632192440288120119987843473310258025549755692622582075823558365131020832433811479392347946596989618015067989866015435252662185489269315584431938469208436074731691508090555747259246413426442767419735980193921307025593549755294717957181075781834163900928769322647187978727584147581939612523341405050689631274275178634271767745720512814153030459239558213652353905038515338562524560793454096622024661920123072051956556013529289368107939453608476052576290842539889399860914760928602334434321684415943922708021799519869292684101273793006765078938790456794937311457428244018368382001245836503608920293260116516686215444672333963532087880749793771869431516597043983155244509300936286355292778233189376817553682904404616568220514467335524143549298920997255242129489932011670236750766498470534702285745669953082374863802597666140689840222134661442335273721781663323714093415634417870213667106495899854369440915285021516680935732841000035522988386569037754203714952371159880187543419741966392755668594553733122997422317662084308561567261877863480932041588926061149932728651945329601086940777122149084162933514869327357367870157210541053582142595506662424952574817910641587952474349418778391704674343332377168152777799667044045870409660866040861661628841202662887726364376650814956163189245706792894268086873916302704882749164210076722992169307269931389144013438897395150045880710840123007395703929324879204724542653229669096532952299003420176185126670443557893379347885473097971728879195084273314823023656475015541219982940685134966744939239405691966351296005845312778536720065258441885653824930294861919276703846407135637926879944866936445734815045943824529433959125140162504493977945581986859855927073314544032982546357463716618272440760986184050587092738249472651849639850251764734444559916410536664419463541474374192680881249666977817664119739638057050268140700018095408049143881075994058830823490340710781525037959276521240925612096239596787914999200064138884367312916378600225743477439299836971969670259514677604429985549958510552046049288267448717735785855108393592252995457284230149953976629851739578147468767439952652445305317044463045384963090874950450355753317580462526404380320206796973822901949974187905597449181795190149056074328983484256976015131956992077642638981738872043757843281523640284680533678132866159006345197637359841310050589159463681966987991328949984351083703872929051920980521527694207391557253404600859802426706927570810254950182917856847832794967026167406959257574754235579753312075748285045914894186759738917945854301390221006505544794581930628409257307034356652640272613681619774445654642443992426671982374435907433463081603875621490017177580652028689945862022374775535210512624689812950454035840260177781947663777077297243156473783034352638776432336384077733902515563301546689518009552775821803252847665822156747047950070852962656384752034152805947922168934347833474888628633175893467708444635779739762450440668376617163486634410706869195411603993687363144354399036791068356125873432091280311069898969400112473923789268940594418529055599971932751577028443183155514350402204871959392320853684628540494384209078701232108846785728887180042307506128507680286834208472952448259719378541756359296393226016054560650609539501340511505332227487629720553574846523344676715938301271368791300998936992925070776642112650758911108114286442926326312330319264606761239450620915968915390458055620249904941117219174739323651000287866623206738972879644106552437824110214730458130755044496758583328368000603588047484507377788944105660278670772245933028900664286529681251920608049072966097290373292336295009133362088261184949204306974742615824538879596364621353217623147932024414163994420700024673194809516215161468201723286873974267882024899152118867239398537701078230238241323679935659493177928451266784379665580606807163779085668385799698157773293830466740917670623800080749319180868114699976840398644305531233858264367524555795979743615244586638543718989017338616753475697979590658830894762367097991190807628334182163067304418687856366213281333308116852760324839426996750194651995957852072984884133725117523469163887236800025748783860622804471837268170748206181531069064402823348283110362985105724083027223951908468603201020104851527782951531192651985774634873175530882468647691825323041664493612859482425251982537161370237812934412329895373305659963338532505504181989044007393114467141300307859333520048002365269401948136539441399303859399231665122086896926384801000734863582520899200633127199428511367589345019326831265542537748750359100535301853221694039933270810804452995055946807232614088188320827965848637562905666967488033842910252742825288365347012481340997817585648815040565933226649114322042056288736522469784018371768557440071751024564104523179106902786827566349813487119471080740860030966762836549361314751856343664535401276046115439815664015963305305905916682046080735524471935657960300745297144702963950245123828995248574884512364100637967422651055443396149737547417018697717681740102727885652305399617780711086845296727526497771962602769621673609042805714079241040376374692877649837431877038626506749629213873059781147588256802988349250158229733888754271299858238313879601253627268907303948810577648247304744374336343931565954963885340073603788249262051785810452862102102776594887419991373165357857837861350902271356069364235635525461948639578019342156841356841511071922458584676013981706036565090524664314066954481399568218220037124204808902383716067433061139457924590909023071679701323189534024916318809871511126427852818401776049865334188929915049597692196190913747602410264245078898637715031337309625313208426496278673973304916425244082153908226969698656812675505722457421422701172194310315733007651213634042633938382081536340207523266169914757589130974425248986949421723715260298166143153663492445506334352335962789684882767075426188775422688884206502890950876539350185132143506734417756587073024228662753153090698775604469037423277271314055710707050807620692102450816481831099559026705312077820699892876490332839126491286717817072982310287167436046694924932420105053403275017618387982055266541758686880725620205072648276591187165302986966671636826143394382845583106115531564957385740481313395357434952373474541811815107587447948070743601041184168979407497008580883671378914052893640875152238871662981248812646678542930974573346422487458171120123166759860002715978279813711603894000091105204359556109806220370030277987068992004644113094139883529371541472463222622834774401005412828419617958080444737009004122948464857543963299642149176809555000976530139201217240014794704523821879130333376523899543380962800444640368446998816820881502158565697571210592792407187755679113032566820701514703904186839859431272877110746475045794200865982458556808154056900350513205524291177407169380698911637658635137531680401747173711981593092462798265403337023897900058893802943987351750459743551924865172846461754734492215945380786247447768404792494850098322902917839627125798472175171226577802477103909688686796303930925635017218915592379261234169098955375225338367044328354044242517698666226944426157527929010807462251674871235189620410458559668137524714663944940461978637131673246315122979618935131096539642808032585559180685283307463370375805594144895527305969602053198643207326876865302328241150448395501589690550801977222573566932851004318874867227815560517703199302456422519759350575690772614282405670094922339203836718598084867890647273902490460051655948323198400858027990154473227564322049122934275229129181665725474497349270813027510991969116852291081924785173369114167682600086209607251445927288885473177249826447756134455674288708062469059980438480334360249702316616903275171404812998076138318535575502629715900945785275595113113197376738162608513058048505219885327963786095404120142914168554263150678783763589077944327707864464940039372788074129976743114598393660451188275707974435015639338595654430432437957128369345140863370846300520659160652280534103946676377885781162186705114044580132222567089591197988000094738068112917811170134095276171412145501067695294699345830332061909505387215044760658581152528253757369930240646146635307114215582727957432788862978786759611992768727004896308081582549439886922788382950861173827105979690853309059383758398569990245114428412538314754015382461891467294622196187669724815527364235445276231670641857029942027672194223365739610628061200268632496049163843191625994766047987170906559983588568245059691584993775082928179042328527282679200516032005045710074358111109606425052058098841284439625547822942762929558335189690855600691926682031249582789282127646315017570105724806022140584285157948102107095021195215276330955511488994763610122605719581049661818840545745897366207709477160143459359761891860308221379974443040721642700030594488518170187340626579198320595826595728211456514184349379643667324547180956774344352674405031247949942100096418000311304866963081728291452731275109480363724811172403948121034779156972310456080263618313130144628782372565695606112997258151668901349564677972928195787628106534746660709281743865756392562397047035929137742210444763461505024134939982017945578872886241930881923896286559896975700900987282285950977904122178281588971810128061641865871777744290613368049420042452540216230071774318273433222132115357391286261206737305932347696265549665850591672600291979870602171611116980461813369606717649954243211457446077472054754906637319939064177125176180630935048254569288510357807830551836844477639637921626367057165987090266991467476492681011586712213134960042285063479053485364704325326352487877930855226983055567384505773237301000652327399800073745224085058370628941962953412338877698097404342096818282378281901461460233328045802387314259674936336917857530062448771577746456244484677338536614717678194335323082113835253564800323673491892377539162105756965004316241488174595017542439670758256122095805400737002521903832271347281096664572508951906423065357288399235812402964944180348050078620037563493288662295344038501171204855814533235738918842828351813352170141599294355721982440473314535297148383449714651011790332401815602823021672198725226542192130396754747992184049636198689177991627656915622113447180347765653861602363940817000934993605320298329082407406240441930027349785384724110476333509607452131860502686404963779096162293542721036016831639720085621333162993197346721517499117084384744027221755266240942838590603823342437224627400932681986183038948646166924180860595066271574875638063459363025612023241314119589723147463134355144610795010764417370525986387216985525117388619992661798566008456719445729906192236926256609603478579532845062450919811356415511722996619923258151209407986941920910183488141680886251590631230065334768363930379058997609836950621449405532737034395637694432558890321719492338817741746751575211539351713817814428407092507188318743066195588246697087069608913869134293445136819787195324180021236830748767143663049344297608136171263567393420213681539728707961549549631382683840869868291659634258595545885236320500655105732903102091303323650387959738427824254050705734389949095564247734500857740649813051055730150166062387698509656886976933316051541311019053823893886534396611981455243889731342818307182479989078247256409195783877235114539875500847715226279899528289471960802392109681793199790801181469532708354803687117853411442397500727486660141660616019722861917970063602156347356198284253799050903514121832583777148101411729029053310672654608883480110765769999302791845040710733887687794843597948701131961894620516202214363206611510057388244855821180418121158621815884777318458069271997600905538418497156413093531329730788798011400205640301977744275508744040110216325040598767030084520979312732545594924398108951907524573891479254075501279049383056251000966351311930564292043679678495541883144977136291610838695747984497823885888700812492023709504372881475975232934434873430796421860814862492678086357772146371369136962587075008838408244886017109799119921850382458147787500885446475958981378867462513095334197521580490674454427694137290813423596763756650222757715822231839455417976455647633676413793470839068626830755377106871954802142681510373908410802637595721910197485877739912744863407566021464522262272850441361432817182871035352374125370912149348444495206318822583219892958086469758960203249923094398029240912680960609174901004739247021489641452729006722187943304838915554770777571370791361833731415727522103865225724225441815984482532642244718625136548449850110004967760240025200540642804479770056458097928505795116961048393596354696693548834788204610899041864298910550784392429121709361042088746290856328667490921961263637922373563030401397963231132402594990040625948673946586425612076876592728385169008210120283774660862893497581129053382367896497767135940137520210088627422643137728541878972413793116150382040294653097666504399840401624909884094702442771267341652062451242798612370004551660743013195959248633622661132971822224406685124140802957065972616072598624627582696841157515857444200204329106147528439987260605767202624450495704774110338754749335101793890985341035971390300827049225376974114886100057732121254673389302364644158817678955203949347055676380029220086256276478961332538620493869176018527355061644599318824541493143423403609907373331625682885633399977990529673820418096874596602684877700537085089494829921830547268663150301156511329347473473166296454830754525884165554779552934902200080204449820709656371245428656921429560379621454138529044930565292407534524265412597439056508059782898859770318373615412189260673621537566815909775665636420194072580263265699258674848791989639097125548958781247306014706002300474186566437128035185178137723565106317577568143941763049246531332923272904328270708301777184751481992279751698587052414580405414831951634527303175746726745362154083737166757858381655673200973526059157715988005040022264271911317475195421724883024982749003642986899010394303486086318324703672549247571668002410599169946470554318890231006208218846932657635622901549522956079964028605386185330439704319669885003669975629889127409616655877317377859087204258163602936688005876649779022588983960929865737427341182238993841118053586390209499327515135615059289700085434261734908610877634163533478481614746974698721619087167935303955560704731916410105481431620226274315284193867382055283926152417586678387431088447786189178108121504788913955599421732114924247420299871261232364484612224265694283404617905868959073041386154979177646322025332480472789685697296325465194058268866212532054004634853314744286300488367160773038315253594211367138665091844762796226650337587587561042816211532671437085879086144443634994815079042915656772837794559491185472163068739666140665334904734696789395855594580964121728764833509639190373465424606400203905838948287665791620858654759212880221078110078532623745455154867513331276929725498573586339406540548751803273086337561785682519681713740677143754647400073562726181114033405502577884471055187513807938075263174976837351412361388281331612256951304366613734776824459746723616387057740175718418899787753694296125268153012443762323920623355675902723006828206859127204176542696192053828334994209142909625041176463579065328427320624080564307797941927834795695409562294713645248939200008485238244961431629221308727683698287361351269878723134064560742817769133222761270889754311998063341749598153591147107041818529389802952083619079285561891514414304603882743070680156987401706827974685330366146882126690504366295654053155138715169013954072459186603144712241547190627009866778337082455432213347720183788829552168250220241939656044535204759659804291519045129756252700220507160396898457592004166931709160681135838808498349759174458485767774336631906468003778700936097709876537631648488332408882422679457250452719584400171908604840271918656354958129599035691622037559359441177683887850626893071117704043389235303021788335122295393526786435979460797254705424563626207404214465983873286972999720655788940074576922187669518881342243719089033569829436173046932525685001201054366137666092133420811981276712458273012713578181882459968735990630214117657506905733546244573968966302731993965397183625921859874128683673244924098439022644380039347598226391603196745846200063512202192675480163013922476394655111906316007768135681852876860380540612176789623858904592520256012260216111177587487980371120151132198742176505014373250727711636464741086519226709323556846861729651307364143169800379097535642055994248122456451719698071700624746976656047200208951970301009911681516217354818127055465256455185845740974367734825171494885193604633756149595939731831346234880343240215972870969083702298628503896566546473564305873063890982898899739653926645662127291654548733336059906031190661163559197837657168873987242053069421849431102386891104052895496728520811159957420318780382088898842895457347660193179885029112193214752742791689268129903533418559220894983719448428872394497421645509372729283633557036630382801160712057746690046740673971399015785171448328804058315259453995438884377864129108793001664915142786788120008662625338448977490755203799194988777044416317029662418274756407398437288005937631841490236894148242472793286635996138612957576512444109778502539049018166892071069186368865387819834339636036819162001945185577430454905322540991347852951657151792975147998205237917574446197629075595245516241622236995226852309807101330040153688921010072079962411888743712811953338473615452383883406486282867976466152234531791948134385893782683949095428817009764469572812998162675601963038318675726929914602763697048785173380540722418842216049320092402828698771615329568708774161457715778899805536652961762044006078047056102293143184210614156714927249463601123765828334540181053289534907710887116435438977174915547856188987429363529994345868136123728735209611792813477487721710056274419701359979061438439202312526218105410292826343842338962875791733418243601833172938142475520622502479020086536411690290219453655495132474962117380636805508559368462574607372932170978702479902912652558626632515822576723554321431045780781495779181441270521073111347634612577133402954683470021243155546986687161649075924819964858071322946421605065817700865891580871331956840636780301269952537862655319928662555423883699578695299885163853723493329174117818868473141739726096512454216991759069608031085059870307325420912896845055605958828725491971897262223719074994788838849807984799236930118058334310062312926486115487798889292247096964320046036603913942283509366007332145394508946894360961287537041889868600774842530766405945301655154739118881949567860930126396030596140113680816349124208304598953520037983578148437537659282674631718282838527676813854475085930325729311325581734363115527846351270888019777018260440572531810186057958850774637309402644519818907103887886313795379444107284312190680695823159035153453916223401247586589490897849754724771697091994962616994270236668621917653282074191833158617984168893793824075328421295382349555544606785472250395886321570973549134979726753388979318951353677525678756740444632265805619429375091250469937978324777607317187139904457426094402393405873220215719807251502272227023804701322693427765366352130552530021435640955313907443324439006179602477176799176975405424974347856258672235398051736011343273312779947397387767798098498490645584153408675804242466430621715173186633131163158272929943998647685163137374821817582871973219566929545996717614025327204022831726909826593043956220319358045235951954747956304635557592791247004154672330653552494649822537020812731580304563294103216195667156039639044123013389845497300743028586966223339142408683164507144763287422637404860599695417098153008928313184359163787392281575041422072273919045388007539513187079893729502599278194195649734477204398520370396602259936222185600281648759681853921852350718703524138971683633006705889356424251454855910194790807517110740750308267256492347942299451044688970300585909292285429362992263432901038115409396413175356641814328590015305521456463657321752425695198147032488912822199296382111528851202090469805022214233197018713935835128136003711621747782015502173239192339309764153994194075075394416468756387602389919215082291859128385449213867665395794662700573268090266793116371110988790508169262656590957108517772621180427047281058625130019182333203822140531257349966061854116709279752691911205511063279582259390683855229481352747335111039285124340834928622073695485475293974686558818262455230040553284131736640117839616349001588470306871089239804574961286559821801419199608086315256493874970927449372944073782360979959618921599932281748442527951551907807421696053495181835955956753204584813558334264437042203374486739496678204251642087054712580603977593191216230179642110618328714302967833245221354121986155849219277080478078802397116048249834198426211317104696325113660676428044404481759314001778899463345823186042543744466729529679491871847282269413518544449114793429279987787295897638502684562287805325670327390274335973132153771499049411913024027630041208457417085233901611602171863956654999358741354875984075447638771462147671859412703672669493023600285843192870044567634850506377973713399988645498465198929420814197134909259746556718658416975665141427889644739572774115483580493541126507069190886232062639025908644656863402178055386427934446008353511437621614511836978507204408785938535809800009425109039880419544176230871058521561772520566121884019177780867886088047848350829273020549404710925869978910841602121651038832724206393475074359061966059743183035545239458696280924059362076396405655264573362808009815117014086643995193708039114600109300691745475610646567886221948723797185794258526931139104665492677214184288941471098496918552807213304872879217179411482358808981868262634363280980056317422222809967307412046056740678856957755685248202530784261114027493057708939629926431039720082710714354646853426406163287827566993380161656331041148893762978255592400383813750589793442731017611946240879765404146611245178524660383860081189337359126889365409922392828654565820750556198946508306108359061686155376535615188725095457080025270717872094424096157581590991844050396713296354936603611704291626121612630312919550059050486518648417475580723953864377786885000237877376150415618943067627118141911699697131762044756940384976710232716847265229930744560964105842629039920916776681761017235648610598606000312772469800011443625232837786250788377495088959472517281707650812081102615744192559970693949479222364429211091188194434973391223278585695198499998637573962941022425568602962972303222173448619930308583955490520773582407781915069397745793925869764174802585078850172525234204615135735071980032792403959849249849225913649142205019208091195824402481933722105242410792149816180303785510003779892248066677172296316743112043609607756431044835353476483270201697570817964331228771167945988681066999611909799803640721009664124653985295621398999205060245182447366395572579697827374037267763508434884029478101645358474104820905356239043732268958974847678521857053320958509776470450118345635416348742970336624948997024606820841284736135708874951720732144503762420920477726197580340554288146023236934888215214039904870589005744015039628101839597701999010525581001339157942927170190715138592232962606637475902195686563939281017765254565253131492980684763541360105292060642023229818421419044001334272243278611009219789194075044496915684205378536789138646110419638154394364033819556485420677044583761539635494276572309762299910682345584164305259746561085998771861297148126664883925341495521070296095167184051903903157956627109915631714418876763082423762713043760543407781032008242472126000906980616325826874115254469093220631520977728984029783582241426857850136780802410286805119719191716576846068566442009458877596390706021209226706024254338588549847569262610237499032826915822139710402639947248575914419626391524806499783436968834162168400892257153123270285667851552363673898146317368200354849461220382714765389597174182799483963334259956555984630724431994300038091138366347378694722191160809400491294693721822564093561367769020970567910432388540708659533670366995398103101236227528446377835010387328951914893107673014290122544764587236343125109324056802305226073096734763419038507939100609275133074118983012249311966153518658843444279245022029119965844487795907465450843240736022160783315044719203614020199155035659671716157799515119624692204753308962664940401784726151099425942448056136207706205934601710048327592214641767877533615352159979601183775224863604551029811080462417828559408734489320247759634632301554650793003744616328397326138978461018079965022701308057571437797446243801253994354550004865011845136968780540554491915095123836353047538311327467010788041351417585338026690399241888343210084931465784008277500872107270560143929783695288961193477923240794257481318430441534893992012553965090945866102751362316981559612592559030566782023870010690935298541265510698518793447476813469084331231835248274853647736711256302961757626129344649854125772452985566045447183944110493759930408164983805995070678569883852851967140288494898782332175255639989318649615006254288545685967747325969127472655612265639794511060323327581137054529230946869399248746111391419635846291878882533219456114733589280593611505209131131785215180884108163528872681982976360845995295948035367236179305940525329800255973943875061446415620469289590634042211147470833838403662121291067106803198723067574995208609398335960115380678536426045144594425331445904648401759517837873597540128070139369836330385806429754368108498365721450263260652142689401889863495474522238143787971244551060822679508521510858022867488790655592231463446435750677497276347170523620809762512661638453500541042185596853650621701618720437283826418387468347086966961077754112603610841087569656193569215256975951062053778871462730376390861871828993685419798592331265166770159754855722492517558767614584204322101340454282572047068768644593592090219513624479246012328171128826298592690868828055157131141390252703291172101071572194865805253062694170095946096382388155535137405042268954370866087608779627377731165603769643120561758351649480608509082263013324867648224635304310836830582850390516462392219603162378510829545643233956938903632131244988465534876972163658080292337166120150975398761508557719666774084800572941391332544280752499619590601668089989568064521779772356062671888315672010448183511192800287847233617053755225841115176898290445141547163875232291183868369507801164501527635767704034857793452287722161375249416343195438401039894082650250342418117360268242574017871524020066565990363158531816177520812093182510212589700402808931727879875823638269448954004523824566728593950955225304764779079285739231130224374312696261356146594169761138193681443264001404841859587350014774241194805631887308490017558027749229365776298497187751155998166260980961768271107792263407720547958253488677290281024918005901566445691651936302397593719539388683612444913876651983935013986488634205016373306305584673345390338447898820359843602412646516032766694602015029985268264982692257177019212254692068011790940265289288302088553231326439452472806158616591588268364663829512798519044748465684131883990810541688826158106047182625930321653936934121474612903817176920483335607769131993656056954899032097086358655031032422843445200394604706575285378462757802049747785034940752460424215675519448224656048235099387226081092410671192258768418288063886856191413720700501451966602759178731522212976788579114721737182702551130188685599028071076546519056566348620944153138993076500176028512669060352986779892702685011025337680551502427264559960523264698865598043856021049458627872664186050430517425666210797664124972485421826539687390561830786399605706918420719971472079411538684631758504034860440529710497379662283774546575717367403953000542470639600105151907287487665675552521829881902708965249414419067002598271700012111100850167962007470925372323485277886531853357516081971293928894343963921685425069653361433363186307857638465535456730363634388766748066789790144464702683793956654332777191263862650200888249325031646643915956099493341770687048152936295687413733576250752193841438174658601143022460484517634512556753635032175593584982621817534127886809992788221079245904203499525720249170332500886796041079311115136960017714738401877617050029428911045006350984924552472479839551539501584574440391072574432354707845514396281905374946286949449793300022688699702533439369543071539371049875434686965461973850367249419747254626094644451586508781675410645760244556625905787075153237494907829541239190293636688135002354541766557521744610202182133818538906611687571359413991396979659112577242283389303006660305895169708212562590689836187837293731410894763228969888165234788716100698998667008792519034592447890377263977945809975907821243448638529434593628481319395335322595684963481411227976453844905596254658822251606316404165831481271996026822013361934230719741959496838325559500703429325692839179214075929013787733975193743091107910478216574524056133958345480675663397145017430206103052454608426906916197013984290434512471319013700304814070093756432135278094393180690325157728272874666385720412456016509661874653848712874835537672610771051046661678850225445013707301917193404584058215531159848754458466252466023725027227137999117597230567403233651717859452398651486605603470516525940812320581505633311723935122274061409770895273424542294255315708807780809110658901448443359600639069645235041968334462708113140939938459216530169829887518655514975129926811297713858294326018361356972867586282148063556622383971458575037013717015040314568629565430394869454632223599782814445004526224038175979673233020009753791445109499371038204189194284982896630185589564818022557243434925827118501081517534328953205158501223734520942154529431319516291661102898318214897786458579273506036117015319337313301446086892635001645601317173311847411237260433151100078325244181332514163063840101971432236489552348420693022812886759877034323921546544603486088880107362013427985878768927202365642917278572214632880347324537715499221555866664125661598315977388123521292398890208709865520557393967046501317391044262025425132852000301879615327657419917927119436084722628112764766411040767920376216435775807659613999801749330758230777307926872670278413945494936818626227573562151837636066913359744914490296779655385630973331564367894098761267324975005092148725283974502110288538036062624796749928732131038910755635817281595670268574989751857623139932694373544922537232261847828825769196351386014455881914927240094046031834828886028978636349930145351044316225016368765056587146101043663405714320414062339445658229890609928482264969851648802485060984818190027118203745642256537403235228535472074659544615913177844248664089757847563022467190825542565707954845681231360981167985103011800479444081776672389670853561934734772279413420453264833910579873966883523145596251625236249159911750136245819791803722507208388644451229557632804369364425502375165481044015220152157633107559948363581807241682229160892670432199259754248760764872265723824832829103981353893840069325124674681041059045825868104406193246135551233987469924109578670964247376371575240951470041465363446165778647586436507104403349205906137830431276566287493807515394922105312289663958391393783586453439852394845221173608308766657741750015328827366352703156030468701227700992023448400879951945767521338644976627862044057734295598967800068784485848869826302231485721340828996971374167428758007820221939676089676936531864083277166293428993876341937453751242598154822135643892989812054749600602305093830420128620875033414533348148814702603941679875945041038092303102918319293849704845208930150302236284335365980093311153895084384116156878163841313924501140897600964660465390494143244702336301380706907029866862798481372784091651644934927412489688481639109028982624177958637539204737493497194805324615073760718949121679625110599584241860347250525866261221798135240874678488904004787026429409277403150927750212920850348831537849521490410271122121771488840477200168973757553691635177935620264240278675580490482698625647343197934351874691374165983979090619495085743012471097987325625541290859580520573525036365922364354436341411692577520584681127340528139681013352448561255840153513537770599842614783255891417422126096935990213425017131252603367772591779990835136731482304541335808868530909574555441483665272740484233063499573632828533128840204864554234057749307475601509249852725404588691600120585117555334081577227906925481378418614936207067897702818110563379315319027703859998190964004179008992062154427809181082417866915675062570743588313733871810783732698185289034879612316137210054376222980855217014596311979341671319029192872763698494330196833299450178070797652121500041506993288270888164766454291658803614897210704846468862427029786834064180358328533748743248533938859755226068870265791994439652834002366744146417762495092835446216252951927922727466554399451088649260797500375838026960882591622349462074903373930332367412317500751919238832633191579231005158050165816737325043538627065731612188516619825298130098970910477215203264337047860693470250456638049413911722759456392647225146740060193026453695823640062151161212150993188706276757526573255543723755081419268153641513530405121444131214714265146431044145894365542814631912285729278393878128802185976260225823138761537346443021898901173812723247327625063421098562116684214817904990107123203875963418162994888081545927268187062638013892914448677691890617187656233286165092049358936127940956656577160917834499672099556921660164092236383530133134276294468491177255605911328633202178049023372879431539198266115261789656108873369283549211325194098217793602777365023179115876704723383251042017312968431335152537423013913763436201991674909714798219014132060376243289340195436756804847671898480409435291213613773884776843709399501487892379346809035540505442813201293527106796128759069016298085743855128386894705752476181722916542190791238971007996258186879573217780315299988398168112991944295526450567887670428412314242329184937677149856019356641558603362431700673368312569643092199353436488626234057741475802561803795175306837569279157235078948098105663930608283329999956588841116131862191515514297434751410242038902651420283720324152520478263672694225867856896735836167992351073158415466405072218379559428527722653285955754567899702002569116140269329720960328260361611978618502879613331596131654843735719922849290160692387650501153271333491554324415483561070620685075400767502359694979489323120069028682512719777906784643011311950063924412483824752583396053123896638944601772963939888692072343648759467837893184641028977420524150417608583411857262838642211390058901695466825430896749620820817051308281405892244787777580271308804867547226303679420373510772888310738093232223688892727202276198615421617123964219675128292297959189158910709519551727500328007019526401138457304995433324859101675732301963687462099326435012625299335923592147119628843838927355174946018578744366683360894479379126208946715252169662830719233932532970863348350794757032603400110742927734018500729282496593949759116836125859690227522445786721526263092371467343715273281824530552944177755800648277184528562123574204908157645353283578521384267765899084286550251143490084958853842259678856106003749147893004160602379261878604537947884475867279043193655129829691478470680598130449521138415168111100356037251192028843534457673014755753350745025726901791861087867707873784553248590681196271232918138439631028863664344507471649171275464324208418022968595547023308323969835314773164682942307360397872600856142462033433885249139422149005639578462409813758248859295698098960735024021983194075718902145313708102716263633968426514358950941111824496827084124860344585366227467345028829912001098184409596949780649769271869258560557050729645082947866283564338636792964335235166256381352023531879910230908909274427182052956944822681339741350336176956081904951508043336974225060896636792671552504484079931126248687001028821543817547546058814448525010125438135741573094848799815209025829648482922796089629395664506560226887140916005835580838440042913853874279508042768509903623428273292913315157103392397362369736868067604599597652125862882291857042210334625044675946066866327630767809349986237430663238374494193635709553444743698431514137011053621317532499183288965487158344340404183525316020947632913119013436746649540787094859758044512140584709734409168969671064906476180312663224994687078805156779855599732323389006228062194863976721430089749685272793335703543746709047869846397593884915631772113985264323467356481763740534022935126368829017546153582979426764712932529522342265541859032843938517901331035228742366295102846014236365517790993639155127141294245286178022287605398804797466322399082243731706500054286369160126533592380008752137644211096199544202472506374147605238222171194181418675315637501784151931769003362716595160814324608505958951740565398237696718670290685838970500870359215717141750277510648729539586039466893211950379948101941045019875467455298872060601485843286020388068248853109839480667603008993035017827395657175249668251322253850699644614534643701725276522294027922794597561512532346326655599835302565855321402287810049963645018232317658251344513477356510058821251092324613685953063684496493907581692756949551207100457787121485565773258308095723758142082644133370390008546196843579164283160382563540775238721791107475223422698595822193622890425208972601864990604394877936949554538722064825808736604125084684054076402409486374844853913744078521854073330958254125854196835562904278742081003677530257472532265998905521643910812177185830616872919901149179191602236625553435239494921359336054849290178171390930683756239159497053221056253781123755351903228011553049373566103862126871482702700774213732830654034299357678259399115803498697080411235705489015884409947586808260632374083861178413338323780128429120164039826856183748584927964875471743232191366048187704094793716543421619812524565222946403858607707264353204030526432150322838864577737355010843172630641835353924425095434202237585519681450588585905030348620603870297096072758518181373127545770895488336484902477121917669898845000738378294500876536415915608948184757215797483462469858624600652505676738169857984243884844647675100423494072495063478495361525867129896127689093950442107599875109401999654666588273053678426413460268926728741445251119560070375655811143024683321384804453602226856437928762524115469199900214249511479386833496611547614841948049530894090759288334092908570888476173897892321150002078778807759409196785649558287785495750855309152444669687298872718891080830185594977648144487769026859886944863816476143667777437988495377051283375360793739424303291588503485326177024434278250435780053679824213374246349111784382469376845095024561834719487642880618817479443775412091906114347800922141702298065932561166452589223001212760287354497747802776634175164752946997033075483270809492561531723922825160092718329825603698411533271266060402066696473919963700315231610562696557987111523053538106896965642571662839966390205340703172567377834710380734928126064261471408657932453661736149584172009493189631192873957028779429682644309829768691686446621422457368351783585275897118355178654038291942385871113757573213757710264220193782023744303337161695297082150784677747462021093810716290345993360093431267857816640010588680048590536513963490210580623871123706835946363384638789629749696390111947187410445041173473690264320634696642046634834980519029877513400066507526006220647781136028082534227385927442224966616113582708711978029733929682741808612562048394003923679610766723383390560106742545476291363038902775858410193940541316095733281294384607928054534990204411968144891323614955686800577643654405929507174004618930718631649291543313818089507841921899941132709994112251667397371100195198398535317126141727894661089311122907040519620634043404044161039071486747396504267334564131525291617822057559653244493900585269335279793175522733790535818912423247021152475991747083516195156528852286275395524838247467900674886617088138460969910976165011941842788042012921437532862829724804663125182303579284605348720075781809326988059069269007320934301979111059233213203744302658144925006727734182398714229482006147596405213285751398149396688539136615438732986382079866411880594932178327878142642206476942710798682987521219517143010546441084960885975440411272025530216602638201932917976324316225424141028628463705693321857765139850466604537520860898359002972735090407651553665644993915519495147758154305031122136552073472454460255898122251284072646401098664337840865970846998033233251280863223500677571315988276235880477894355068918201985867863388677577400205344785237123448262206705133248656315957148552801369606363210976297094245106421213258501019850831050630827187541775871511601483241606634382574433496849078454183000808390761503661288959166864984303344085255604701591578265913209483155071230791331787177051573989123954961050985275073911800818093215911812210474916043742033323234000819108044893256568371759113564193132354199011565665436916508196169800864193456430885003747548249330076397585472842799084382105827600767244767877893919690319069504023042653977104469595882962493565115435442787683741138344882541223457681059638792071208994953632173863431686675330422592649969724484664197514939218667401462657743492430246903542665338862356468038150064501298664266737765605861014077429108341102119458193469790839004781550107694330553158281108620155674573723201401513025260157455865567380711086295338444047420542451947947342604925326856035093923284778092883209553272765160732325155540946480673467499397215008902289969685651601954561530535396352836228005197166491042690896689521798626616884708934892716794053485135035101977216455594568562805363803093752155551953355888041277492366141766388269243601000783888221327868323609430891905447981441062929563629649776895039379440592603914590689601978338164673800823065610254753149922844668672633010803853410075205092194612266048719040829154919499246408924925175605157036343653506233407021387964666922059809101589208109374533891123606375998192048535702769505827008662479375704639744908160340562365784875796219951946335844306709940530631544823593802873637553395711094704016843706739108037734373146332306843827377425522767685226287323029274751862848878059994673214117313205203188911075086264277304012686068578839890254253587448938322377650380632745837771551918666024613081004453271953650360208837173872873266593553814571732376526735786264064067244633007861187968471721337505686112930407295355345016009527871075936930999625920034356203581796372323603977129241532002351199025359712541264816359535799668514778804116771681367438668999170436366445520771598074376250707050607491518171169112185186553430586151968455839075153039740895754016274100442110028052083367371693978437135138436198180862644235747099327767692461088144356585186610206002666434893108815487405353946689475087725732753063614304669408842015228523420246288209262878577907820559291901618332371596608320673121395645134467640405685206830588198546353006936953356222381112195614914596685933432778718203173291577174359281163899021806271223946729934051980180099747708672053131186113666727765024657632925994276966492504766953030317525046885276128636648746955083708403218684312706072923976800231201760374460028372080285770790332722643079295128115362695031392171948763412914788694041079096086494661817863526715255353228623597801882214986351982429334541382987253520031507934706139398437883376026182217002032038490857160021910188075222221396784692436431239854228792376486455950796914902155279710192059411088614290873919090670813980391369421012923314730432370211655861864002257991677878545127025662756582990560118741080263289700528434701749301343804032467602098754190104773243102438897511667760530897897391817428573921260061078756401016408394872440939652071428869073644753298016059049159343451974436097073922732476112500595855885210428901599984368933832610148666247972542964774142333028846698001650286770116026891208985028816666356391124018632312641126884960881596241029046321336661315135619680589698902237117651151471255782882763041609992498056573659237185777239079450148921737841575689015980207994091321947775215983673245796906044167260943598099018607867052964923133965919898266573189364053691214347830863923193349029720394956566313889796403211440713090003979332999638994999860727950691835460970401764893892514969046505754977473451393213606313225505014850602083736036998741556104406153569600332774058855287103898672156457465544769655227042800657092366266611022961366087113306516828561932104175536024024162707048441038962305581447895303579865866240748010284810142752858112990662912122439775115893185876784409617161667537513096789871153266712910689347027040083523896313741171305831539215918456006875628820658620020631574749471085468275241648242622974932183523813137421741268984771105163493177272195944470366520858383479956985471016015127196198896596551336513059275980541502890285275945721523597048310994168307838717204530945596653924122816998867731475269903996719572801582821758640849153958149850401634034276984019423771661022738521330354956719165809931571476971355481639317737949052654411997054726919275242286403440658034435417772133014717496530086612154517411191481065805459883201318339435912588383990835398152464205971032178425683223407032335464701630933940641557109256247063625113174735299721677681499276372370144417966731451471054191996710399358483918082617764204928871080029840822024588148016430991313365799840886455757997400176068634103458032372948147835017960441609656538089235194045397690874143045595390369782070917413312363638204641976834336803938437904300646820679442168502018266963659434882802618418030199117270002985615133504041329143973390720663977253789056902356848828218453467132992691345372726834010227632215806555580247990003939003283541256984768584975724688677388380752118984850363029411001171899324719093891473821690426683500572164121737076866086304600493429744018706768907814579955788390104021127699247007308375662843697866521497207636579979606756154585049738727364489484906570361342742669403387765958319057597724125671919028707728257763599303984950690884383788254660978386343106863586691461426468648213641465439012786320352993384221259022982543429875457715187202362037646621252685277513800729759143883371763427961652169227179806179287597074380174789533021149997812213897244222366246132772292508537990528564805556051600890691380000994102656180891953182466021468413978820071998573005334255548682801140203826751264387480908643205103077775645063968494169126723518309386513278464423504902215905912007407709991425833469132636304672873404014259631450371030068173618396311189685720313480099407740454233966219558584421388843893983733217919840579995627007133756884565294488995717681482524362628748956359388030458153169876324859896047640751257891183806026611526751205855535255792821180236639182733163823467378043056309228750162952682584896501711433034558026129161487546740856752477115859918743016998452275113941114148378052600009721735830082481101859354690734858790837213559436709150249778809141680846768770650549263481331169138801422939840716871088459619848930665599358918360493958347464798518094770604033738497411436123030379010674762845018908016124865567020712946058837937869994039552140632331665574140215430307658089574599004373722226467259509894895040437195083980897933076816884358718744977750938514209038133763950445953817657754448611402031028449846476580735060320906229365570962593847587858212057315883547700052997889501424754420011540394600844455236051723009383918472832346482251089250584544937248863281580659391936198938704892069648243544374306067887726814404290537137408350197650194261228514206981697773720552403485962785764744451323394267458191772212556095060465217899431004645114707013864573800896065495615113260706458687614549956288637525177098376678918148997924396869646776917160579175699796535063228271182425407189765254726978652377081539597596076152292771443603739466490814597928472717442657887304687087866354010680154963132396360868431003528684835005196931465485755303213138654220959440507294065810576929388446231733904303446494750370884661630418628184084219893477002969526178107003709013242327093458766886117504078366227035164330874411120149251523800544410467382877846068197767755369109815532112735630875620483606585440822890947903228649262130618663502551550486929164227981450095749581779153307886029443770547425079304439332433201529227672554204076707628958226410890888989261591914810581759806793116294758157902267580767216223221588669455549519989721650405358939059112377740153455473856478580403742680884498031329902242471931904473834391454607512547874881418368209687580444360858341179137614458108833529352347074600159309201712496974759634517378808767476375148476212837677094115789948814238565775783775448220868630025056448345943477539025794502424961922448894282947181062507301963053319013975718811475045414877313854831544759052039454661452995828626456371200642850798635515877684227715589040794462217953931247559489000012995596710494375455748605665623422082086687674453042483475797348564100066288377089711758304880612157685312316940790742011319918650113775721925913336204606599653760165730289613096292649372080860588908526853931300080948309543152260466048174325621001449668281831851911287353383321934109603052320224356552571691258506677419282631193922918273674422486862697645855166811098205074295463448456578908835450486142174340626556129048300629585662045244578485268142744962646301606430913961711716167532598476714349486711461112017840213107909711678168785424026123122607657282381424090688406296195912997557439993641988109066775882063649491104435381087433946359469166117471988798079358351844511888526841557274455362281744180518431938925003886213983742465440487855669701383393966250484628223080093518955694531896847177900613216492041035355094585037512024526586075165917028543160892844508932699506261028417137042772232733781916080385282291002967352262297433774072000231326413476562470395811482942366452097626668140916902778948752117041784418655190786236392340205560038113581247963959447951761622122594994757219014222890545437554571632472271158589233616202318160793404428394530959361088483243611626781116901647517475700922649206074958304723239419069897332295924284024238755127734054063516777717878592753990313854445423987914414341461208284159751541638766120410778615705143765394183861015925944985222519675058390047849537574749624752399295791194082684748832266640194138481414990462142416481355279673947453867569833016918130157064532864332137503045429835108699587781080777544063724588449397472527895688396143918567400026990254991062194463815602937877976624300164554012315810270493481005966459325351748846260490137169900330002479248981209813309030684738373849696131963630955589055908285779023106127478520815214955074465124220368450773379632393490237349594819200493587295395714788083742926321073077087451191549225690077870607730150303398860989391034984356896114910682609105816563958808437862846466211563604275608216609043576508411220018617373235925709878063604495363002569947081084635251673090890426852925297333885883123925324555110533082238835212954457895224453879386994441221630740817330338286702467198181280069271274378046985145239211516089010116867379942022164759253362272220665069729639983608742902376223359631994304760986973132010624142216838234626111953253135918329045294748467511558070102693448183717917561161302084349618122882007159368745227448154059405974123747170136342262708052562815113875040273344233931070430959485609138437269298331436721985405980517134444767375811514758924412638335646339702458814780786755060183688221586186273985045865346717597433834611417463016327863555535887486625734831760821177416118692927608032399556514364962667685489354346975834977098844528472070574856434992772592123626715309570611341308707817125046742898418071995403732513145800526915139401422136053250565557358053950353758009035635426992080654856927860528845818333212902555627452680819469668008406735749128363654896794099857871765400647095604586768267564193314118150292820832024836035821497900822075279756097054694585755350971177554571756952283357270478656403834609180163805881262739563986604855726813874736952404926656400349135795771991875992252050596240866920710997279548913421989059473582889157181610779697807952240099362583265882224255426409147741537482561772295410179738659680529310800380737769070230314279678490205963087503908113994850524816328423096698067315185712808441995778286202416725661475618697730991668072169861320265746770998103024094783606403002784896168193234245150659677137672166884792591300534483239368765823107933094032888784359707062072621197184198817027160035005340371560770137635248344859166246687192534438903127060343269239418493139478267404387072540535793605328518667015452496271850534599731975086499055584165150403963263505027184939022336880841338301184535757640458464066369536027215989265108339961753006191542985306522837645662373045161775616182212056672112719085416286742098444384629612496147301313666191574890596312531029389522609661837314614413958439945572937848470902887703284600497438518742740464542643835715816047900141473023717136907579321875795724743990698534302072171412688979926548458865212900833306150718963204642234620913782544569696826900478211643902783885913596405873153473901693568367532229106712858643959530718216802306198713522687481924833102705132949266157214239642530497114137687518273815903209623013453624445293489506904669897043254862761717604306835838220032085926888786967357926440103067958291333438641165872754488652424229944015505736047462343520299330925247837214222189574180359010466722987846054748678807851661896668722964384571483723423067388859453099146599257424382433609647657500470176565361435267275254930239310338112244075832961129542576533646167775311579143987105635330920025899290377738826723075787881990790904711542695696982109925322067674785237749340201379250593308082844551317769280786600018587531269150796128481409648530031848586204612203569611576085237566507449258985468780060461984723031282618587550064153012755888503876484241747103856410263413974713765516379405116541033257837391052962658789572598675581847133278348886981236184127635398401426055937017686851213718203277314114332855414585126762692652753395774721200485060975844121067220954101266443837274632835084362735465362438379220645629721998337501574341444204020178051353571546907529789390372614057933045483375602373262080993011927075244270730055587787741058895765593749377340905001248842428580695579415742359917979519298948357909811504660408043606348927194920500540035914151904675189165227748816085344602693792583273559501081645510111297130453264347118117867285991497261303850286115827578422583300532535456364449675802182166522521393277601522384758157413203955609135811494166089388032712400263549326714701305976142434771557894885814526714303599608434540889914917988642082558619890774423060450232787172604972970026435807803349442205768617405132279432664821974263116682524344122844771176407034395515971121172768834799180354131309122987050943481616408612983556258911092963468219543277621018237278604356453118802415579081589268909223731413608017631688597908843158771638752278909747698271860247999295408326616604920524902947633967974546608570948476682344519713026173814079118247369125327836178226523912633732269202389277035020262135340004359711546929469961447347645338275116612801151810406010294707150002817505786639502222267641157313423714414556275327811037059048686209455210688739942385641654931748970483536333657363073188014378805488737359260440365241119481749452233816057938899516147004637572199915882215078131293090022694151200123579734051461069658224558990016979786255594365045665063881184182968669248010576335003922793523036587888927698208468259629207004171064915127401686691738427919077905993616117335182243503413742626202513664502956959701416417901273651488074099649618778244802070494008074117170102222644177440876456814896433219315531877604855039700247849996268755433218241505030210724071251453360375925275967659350760729442166422985706456763476343823350689342752422657977564831213501183452202472306560095246285002585533400989511165288797469166393395168039408937358703800275108534575794415568988137860522508072957165722406784869973147685002844076199475360926534836960403970730392337362787774494961603295545408145197463408459537683513358348555302117595423631998227158045076291404122212749617089432781427579203802183706658655230032214347237931468431276035945753339349015384181502701939417535236115835513125902035674263772911657057459886835138861850446861246738237001017041261635161167703328166624723785022917691300820630876962737252409969679127770809454730976961584133722169938271445028188722442570306508819621850768875007824227457461641373551457213906733138118284315040822982811029213111279081206010082081635627663373484457156511211997171285804251055039175743478233788395915667046408208505708549491045085015756033826270638158352198254205154668786121271920784871290279961961568324502530767820651330718167459998225639368936540542916484629716000850254871964822283584634129002569566808029010874447966790013545205696445838070048493558739897361110403558773499891231653959933169152091327883555314953455033239728027520632202264230937865453224640811794458612245935577254566573912425729935499826800923209123545253720163068391238044735696897659224322339267037982893356720208222155764202394823285635325379904668612280897730069716390766468432541652810492103728613023077497015377255426267326574024100299911689364036539114007461879038518092754060925309212468936068668199422023391586530526100444693276182452195989064692253037698607506224428716650461757649119428367504897050538476701639342711829303564198143200752117931349374240064632954105651169106586805577896765576538170339584191448312210593794139411012318378188546559418018339113451731532652545422295616582340044218110566366858532198374109712156129777093408498593748216813359968977078597452686435537196318497803724607636926209053518499671768031078723047793171918367873196754154015848384735418639380209833804110758724243512218403403583991339060712303556388888238164272974289461499213489650942394931230093423629911106105025977712880421626577322270554668521810307887242944105776748391210340543784734328135888061718855938056643261495771964561448710892844801100880385156532556976354354466103893800865249999009138912069060816776829815617272055116867981466090704140639761049712563883084988088001021153840294351214521245844480360890875821040666266145414194140582113474350915993962772564243985936027875162565815897094645220402492431445392344729256858426277821343831276192139649887029058900565686486262801873407874256712100735674076169595333143741289489718619073226288637520144402460132296185245007941619251462060767099892292772428144618010212551476173410848839143305627374132646105000442193178402151950312983090205150698111061802060152067956746592335913095300808994549365489973941978347094551753064395047455561747910744422737533297061792189181360777323176210957196761793190941223685650318167638831270835877093693291117475958844974170970414707991504986267085697420994670131918036461449065476267657526313071896366811161153992305711173499345202389043162085954834997650415236981592750147166065491624855287942438016471680580818458134480022834223881084856888410932694522939835179025261662093342750286622147554808451633440174651031308540280616634556085325082641828235534775847041360355206469482556325500089596809666210876349499071648060176395686365775098174246578434429061532161018948482640460146283881880949338567492987902293736199750776201292361271897751394175333164837614895236245623874904891305896740210608194876339507115708972500446123739182288248144303414883184863005058700033215382570143315107472613573187858434490969868412635216767607304168417358276202793750415691482274637008944035342675601529026604896614921331993046051311650476778809880563287034707548541563819084933359340338824402617531506068743002767314182985099526551591430664731871662714537213667619371335037807183223344902599053511076204689007135529751751819147376332397286602482038350386889645093656920125661749428157697659652062624480283531731468950824709854075221506822143672216403861923788722126523547376496295715828689435240291851648524272651922120387653355552110898014937685480749364992644812238402528709822978452298392857016043059735247027140732659034336199050425853761676254495510955645607137324287774480221894777228311859900914833895819008591575687438242124530302880118865081042767859982621660756801620091660180207893058647164676446957399773262982772408098139705083135140953379655159698938229210618186612774859445451932501178638369960970547755107677937097168218841464815415528613285309046284740399915229243108141783895742528582951291686945194229863354605032925757768050491141788024460832114752842033772754651950168335908585268483762475847762090376729767209894502091985670007610209624800613131697561026777413572457556507394463796051479811480120563444616983808486079929246639177277373842541072486351509513250475122674858482138052685443362683824982898102397190331343532595843144964479981933999097500320065913729126854817682167605357445302934926477245202216202875071668098150409890093422891176606234201424009444003243184087753067376050834004950405804387997571304222281735589154046212009086494001792504933613321485260764826433600367951819709980329512858202765097061068615439541295765356066557159486496830343364197932167426941509476055360759622707058301406121059190068819034327332297585493231066586783527411897938062621146405892939596757910837065432102330301121720284761142681819346926565024401183834541179237361911442955502450445217231251855049400035470324169997905222385540266909206977484176667801889547744055846305899540705230760410925065169877504881699597761827695862456716550795821958286686629271521761568486500391069514468099252926251934300404667244623332141217105607771232539017653945226375895801579872215118277085784491923806691579774594489609836167595494876356333534549651453810332581128785200428622113368559474607336339339793830423229570833300784080688243640324353716937803152460244623425333392665343590857783484588118257814488821404728783454908983601101088849246269410440573895516587179211789040537782296792882277575903058471909179398960671443288272235493762401570810403013386453609716634213242415176724590172046906044185324270685503480506472660122238099624572831931358115961818113030940312829345850369944013721996664649749605458695638089962728963600343932011512578466199084103539926656391366734205987743539942382695585787149734623314631820699746728971602985725383355456184189665431623836234705072946312309096253273576683031351638312030414270271268924526213836797815849773075155784578359597903858410529567124011787940915544516371557095490007529632608144044593957635868775522138522338463497002876513698998915788787598819093174268108384896366166827514817017325216614896715134362856947065850615083961994753918124129586194065589089744146363852512436577853569789716434748410350820682755392248890468760788520146323364308319260086754455862627044424584563442308491989511149629525712997508554782785393151172826457022829221079505629917008927631743665797099772363540748989572339691588645933590997135746895812771566785857240486946145866486193818728083253588376940892703355985764560227044793635382016811338269353395231450464935860853202330732372286921577150331654816962807400944237786533936648820861317134025898064225270583554508650668079476395244269449722579853695840219820820926676704774060403979118168410314663643000216787136536873322163525122968627550078480517071978985536395654388715275769930772700860793946497358553295497128694158986606869719671679111093124953252523684808576697510663227614817189614497224075394095721022524642207026350242953006914756576400810808391368031213206749471425961321692961968322767004930762022218996821111912148428186319469421670695265074413379323838777593313018594827811102230082579384353351894410523881582077526990155218100697206208940126781028090156891136847682716295146371514426261161191736380782079486791331466627856344916395241421928870534479942626723668063331907844239965444178761574736790335493300691814338997449870270773678476991954427039328172149300240958641873966289588469560740576794904842924662224845385428415202492550828247893510016587986313184660581822745369380747818928139475304344072696386625506291190282725849344448688119601640302688549952212627530574444222712933687882443061208202531035311090632042092348965274923276312937182037851025886217044462454214896303797815194762472122712859863140102971634127321363292704626651258792557684169876720706525135931650616257274791862586223839473555546762042266995899518141724374972134960241050650608306044630404318731289191431500752224440715436938165122120803226637985652665744316345533990928451660998926860254486803223510775489538398682711561509228235368940022657075241849644536271931078822707964518365697488414872385654928563820633662063112309089320503238661820327349330465786489390734982623092315998653657674748697030202610462658137738546488249195832655434398086958378306656548508085614308762016018067811792756116559056007846824483442593816897712478887808563668484378417537716379120861880364501952587018461194776249555187416812382235623509526408844632125781416024086487548135778514783454007440200541112303698450244524175520496697807220245902763543331570627794875375633321878361846938595009844016845777777295180218524113092904658354019333635388431969957382277764158561994034578233126328473833482434552212262771544580348978710114806496102621162231225370685814143089528473023336552088044618834812584874497592533138957785436298989636346402983009687441650388009317676037230939454373683711936737285555692138362467906987562371641955845938363075157756238730314643922395938014175304809406551928885315017439269641898453281948756557412750268944154990262529070433429530829869340223897730945680440780009059016956668878082669379018498450815095624215494440543720095149986554609331082587074055307060123561015797002995810613429855498767252268955173589842937177820724166162511239506034540137839823690575209165794452966832003433690343740197912193454240830751838872334556844189591354537176824604436679082622353019927228992936531432121124263866608236272796595520576347172039398999962542203064887817417430769306523055454789464016216956570037742889728428818860043148650511976943364420678142298016983879765440920988802223071933913121333519057863021767900951655062607736363937132369537176232389083735193222659542099235485338052575808818326429439375423898156493935757249794321565190522559331722820617565061967568014265625973189852236499338318048228563504225865765001614038932515120553014612072746473973451542020029291459068442832833141386900720032242561813311726387300853085539682529022172531275385930403703141566414677712762518073261949006232632684904154745149646646341697107009281928054105624746084437765742626560335447691113272764245474835589575329540851672636336726784772501520946460413195376006836167394225898709607967921915219040491154877314966475471840161654145290647598287596424869509570070145357311808958097296904164336468436062174563257526583798473965299951459507335699375805816460628100893474952881800381826687976175962031170104338871542056778894456607066667672957565633534026617557604394972832203299270907961081303767462893681637972009028440128571292526904574029104190115667302743803734607534134129355460500691862763603253163578307044966441672067830924869916914046540890223047818312508202403306763149994051301973223495646022133163509399832572851351084081173673046509529603662627399364828721687152506704026861339871625822031562004476343895754995520259020035281836520350009096698522427013925309937505703098572080895863140532429550798338783416513586735820803825207381807536680082768429143328334705389422360552089654743430595493472147208130146544870547372884832141803423138781641404034781517703145886753200782446284774739920852375791985345733466131397089586706047352996168102618021407850350025618470227417685365606002220620886753508580578993084595813713871461255115270387089902848364834508175096583498796400401380073274991872013271084462727840778374902821077183173607910208115618741001785191183322245793798462576768765279353897047292152271620578163929648401243200996398355507438833839715510937468488398993306138268088113623041902766293951985560981803065872574484025916448444696340545442175665368024805059865652604856805807860150009616497591082281463663376060104655965134823569799659201658848737721583790224954291701933590761241386131040272639042259391716364387694062419545163818794537325708276736840227014820604748923975302579092032505325479958595647015773201510586820465816964802016391105172522406189534721367590727206907017687863303032283376448195666237972403955580784855020302466968553491761042385913376842021028074139515754232546311966157939580883266717633931254052570695369084181768175425031882731821451063330431780035522419418317594387914917096183022661571468295341073517806512422932996131405089537378254676901692921499820141967893081844976431255544070751738436895190347693821906894579678441520361870438595890153651072325606668533139780986252567290641924962451743418208840729733962396413046359759958658406117813492512612437870203133184499759988456716025025952150117737849608332917054542999411683953618438111650109569942280300932883977093048893232606245381498539136328837059497177748329834133893826654146781964694303566471755904060668282267614698936899199162209982015524351627178389677811265466011773541700865986465188641534807568655558577746322805342586978765197448204907348926648168381814440845704551336693089804688093504466621315036474961949952237808432872828290267111210986802794282858234289511871285130272834180859039771925129382860468826565605125260195152396795019618717043568648212366321328040513230853870672068885133506217261805222062141659821734236637944509851204146951502799801326985929989327933985525638055020918415208826455390603163262987368240944723100408900501561415909759444516683344576657255215690123795300476502486478513363899297014148994683318300916561542119360048750795162463669579719968010906975609291658207154341392811076116111567753287704217289167958640016964881036000925964145572206496074406376388228615140373805978751855738913160112753187763611861509204426643321429321371789317059607101888678518002466895949600096330370043872424413169804787406767054151661654799519496380813200226179518207117595045896835198908819134247744795750601465299061795602890501720531640772669872461398842255264666457601457436743220590348370118995191363450830879323980425620431843894758509926654260700903725467725324075251916386089500270333575342367921794558186435252813916344203832054188604657172517299337916574644763849666170979655497060190351700256568092911321474167962414330327422387736824637425966773991241116993051097701022789691213175360795674022380258987028731609460836519379024208106952615868239749930365945175579104702095998885568366090430771109830951390068768629832063468650203866607205210364423352215146902944204348314800751049163302883147064477905312995886920406729025350776549352992390255319438884118552522237926633726778726378632128218026961590627004945562503940807924813789218709654183020717931020934324756758217312560717127378141584188797793732696831509565226392759969049996155804972294849983251271719693530266149394785045542667456430833905861062655350984584041338989545562722467508952563721278028134836085559344782224815288323660182210469923058907618515151474634958935628878046225758092181212723214441799201112870020813591515908108191788565361449750508698587812414782361071598791792452556852636371292887296015397912770827651536226660265919417196676001979876552052595771219993346382138203253364197575512751235942758647074498635641297991811369831040762861570045281772275840416113258019732997033479126124661844211044321347268252025703866564077448730468079798043498595073099286503799850162906800708643927577236175424031573129111768995237857112774163172988573900390025494802270650337436548895787940150407258742174247438263891549455850287699770156228104480968229437196198859077680176327969172120586789664206010113819439477164928278542644015521901931325101201724923793389423864303762433284964316615746915616990164787592957289676541451936284790415109593694335946154394394106044988199821740221843383312842638452074580137857572750401941079601285008397412624065454958171803990142210768317374889495886140602761899352862665736540336122980668147236688266819045490075051611836629042271924547036292357923792172751907044091252717295306478313268762176826717303091347512991953488372327757966981657832628571127857648881367614256964058689607102092019808418995854559667083938892370474897234218654184087410188160937692695165272380005429716830941796297395398285841555412134882855125738360098763271875160697737851915678355033937637049997065482713268807422579993219309738912050631982622722233144735911863089716567252994073021247344289962641284443837728089629082957990369663189899301025378122222373250938477403833163064816665463648692528715838822034463440914764428144327719484208688985286171872485245403307582185532483711775025617449917584326264527235511767373231198888376468183800165836870124491738618603244166645945011885097562008070809411750787451270726812721868309754950843053213537155757708399934386109981660286489560334304148728469080887874807134868535659064452055487444798405987174435486630822589128080238919656343343707290343604567543268719364703358619915360653932413427481912113626137841227646995854626663035891000744701566899763414752195731656231724688562577535741671337395567258789591442278849419406301396659428513584271058210193147075942173689168442039441374289120351901767964334737929205776132199120200254807469578236918353652382593591422109678520495068800376883739673453355630757733642636877162177876041848583493950720156925255231022471278656494672799111504547945479032094601080029643372396806798118832958042046751049426157020992051373068740728110772757648147926572070098762335113549993346743531001575926128836807279221536653333690519802906451307298841981343090033290036825885239724692619757525883895306251521080700804293301143575673192463825530397736117793714687878819257291717248059635724306850289114044429614701129924180817611230469767379653475943578040202270432401250773480600853913114894102931546970912994547578074019767266829694509719285177863090981846209895623143292211903371058081936768644614360702013944358841925055736598035554642715321782810345229848537396520396212619058205357234704669069542821420588972428878481088528074480750004572027448632647575661201771848720674166504460663034188376750276328994914628706641179092787197173676036652028929496429613490825600462380828693163027522239174716010006597901864740460521763709352403125035674571660353667188225048799924475583609277442541211768312327575763167398001213365006495596880500073485853567392282278879133878908070762243558465794500268148451511220082601139951495046152305936908108801602473130702674628452893558063096689962295167687468775946863612902661726826420201441484223751673403316878869330776405493967123846983047431201282857425353165235906265927595218137651444827777921249435602427615213484589629621015739864615705553099847632942350161488464861446357107590440217634030739922582418270018810909502766229502395852559736821330851234053873173421149301045131054702099063741973854416061006843322495638320514995678675371902421730392601572873104066964154567174989763119993019376408547221909197612384640755494531242520629409266306466507118904385305705982928309705372393288255086453423772200475268204789725543988314728416232908980981864910735069987710227956151806013338802540887159247121877639116416388897106281205499032196973871202538923242593271479345507665339309114623588932380452025928155423037623412191819950058461770088558248702078587007839859013169917470645270773714345678339810133473191417052676899250581542122863470497705823388988352364777977386501462580299191194427857230692057792171374983987901838228249497515829558908033624408134107513734499659782929693952552043240265118869587792461671404027400769644551529669933845728601720820724732560041722897625834435788587737588104350263960652039787095649669658808828241006000061395632860714031623435922094155755796094801478158378576914939282118636138700243146501460921832605611796571802865148531517968940322612275546489200566481500116342908718919685782805461611570748782293111949072124416453339813475808741512635081901047332866804200032940733660490630623275784505992628757633892276862552319267507922675122937222718324142228509188848408192300603806759744817170483614268294635270778820070049046268114587927197270100944359215566618394552191444619525016570001441191259272081552545218876433203320065508295582629508063078161275215071092465084237196512227898480862137348585470257210118979727502971243994430138903684617335226718334540647677838627944420889016103366256890307705456837435771979577397463505149757474139959269053912225052915600187359742490632724342762189706967577337242887984574407727603009664297730810636985754862828040631458308177878183786602509150157186397529448254157394985830966373283280275802869902780696678804454589550686049626218461953779623714514968301199735291150678970811227561169657458003780789331720826259698833295928526732938356651919575006078506584304189854596897913318154431727826164658686264889265847272863869033138859953223274694290630381438027449148635946938960195339126808931954772620206699430591835695614180138717651603162625100759161679472774724709446536185901190036797117819758182247920406428991127412488987675218237622462579901827954357035385760811465380997358667302458417084692443361324168947575936736856089386366895105005569217206720564813596220686044221037521868308281563948331509676913661241832220469584522959434200045201119857263449361143380346875405589724292063422851353707915440144534842752061737403897803062488147188526053388951778689166327074992679407669992382513439552918956633091498107441717411627339523298071873529295289028998859899111689935788937636680251494512033755695674348612795331397843362840478567953465841669854481073896466582893801761342436908259025540608792028736456302161310012522520763038458420853658096877079479421798900905907944020563832933703472503117293803235354146796664391924153502903962635852268805654341895892079322354557755189980559173021076200288651213833607206291840450585851222194639344227252861338753217198107088437097675085960275084893292809321527562846138366035172165339084478009779604691701700611438252703297617250338234539402665057565032550024622767072742474199188985890885786253271619979339914476646917297524485007330679769499116348456349012089123241157349168020827272298929374934530366064072276394885766271585999389876647124573116402096363928375114121028914821794107868997866907957405883189858031861822479239116152638078428290652352217550957449459945721782023258575326475614409109422708442478275333605640885967360995079812568102836582209904727158149644377216123938807493803171027044148840802262996061903330691426057099472931795765668048007332223589831791759585668818016747875679478974833190312657806751044400332810692966562586438970612298253181827447759652763577642836063582374948316562330916591964109524941330450556605615509667062860323737226873764475787250894062008146842608612233021457317575220355447807013791954694773474545988934257783216116615835583576954873708191252989912094192677170347895352054025568393245213013841527396940202483878637567181704029408127062364194042849845695252916653312878870827269440018680410715455060488413680498529869744267400405222780857717034464627959333279567771390452852098739776606973608688227583675394929654376438298571996133772085818762645673425195292707615183476620291852727036875935836603659912997816348906252220331309745064334194138701060414065003906181446542662998338749074126565806193778406445449680808445280923826177449567473052262605413394910644564039525301762449596215676996176557601471305314939248613225856070377447917279434673672964180524019742457339145334309062398977452329460628970179003591304099531055459021772187570718061022776045410479425216665511708104206626562459053050330406704331108328580768647310482888862934812387509572126757521742991393717629189574617874635497670007782554441211327779918766654028528438094170610585044951616074536715075612286596476288676184389071565467272956747786703055652458817000251887023042142656568967261781877947454993708022323342854602731690205025060252841814358367395041642116209660425271035260512234459357144073477092130418125123496267608120500776014743383592282882713479825256257633541122033978962518707130223521730282471587500800780582029105646718432721699917396205128646001141841128966309782887850369855727752410947571400502101367485069525867899945678096937457111259565285965043350031367456539545000715110014071898034129931533340348450995704364519069424378403450500070054265052095386075541070638674394780905254988169703534193562021968840783445218031854158355641698557488480558250479732429669897005333058182480629276900894100591569257965478891322565870664537578491910280073237259758758225499407085131794302382204859868886425937988181683671445240860319336854600784278525634423489173285334043291735471928091307912415526661053185964574629074254853338311410141696919243940819079341394198493328881540129525480158795407906662087126241909842769217437485050620936000043003529369915492675611512064549784354829883357398328602674704909277188060825540794539523340753065766764562192389957094159742995774108211837654816552257154568031420796811044129308879286665083631115643077922521378018552564933755161902481230584781426116823677329195031840537723914272615106088442838621410629025554216855003573231433047661272699419675625269595849917865583029615817282120912425122124242530382330013387861042176970545000966325135522005896010225593232828515864133755320895522720556555934406477129466301586060214603119666992836551914572337007303622231821304687887858429110691862741166142304306894251805174344932852156386172302345318172589197308173539089790487323551148208907246315001697643004061032962905098508308704978613678245301732525624571909523005650092040785217899327137086040399242751624459216668494136900752561588840378161376275132336755787230413802761562842832271882903932220801318798140879617104215537215411290607882964600413436836678025156790644233863394458163976967387219838619023821997887464729214995830354363558414548510177881742155226242515553722427130212686942749185216943596897997848580011751204376026453744596691167113032620963212827704828823626552909419357478985014121226595213846385526747645875266378638606518172130179740715399279562680623402132666529629598225394571172731407535531157012656226220145682415073392368727131593844138810845544451454786649103590957335873574129563825351672710195156947663549187234160583669770837666042188092083412743042487314910577891435483109147658176009813028008887261663117035862079695674576455662714210973636868819033516441576617275125077626685593840840649187825963386805836851160029152563260990978479829133828481073992608926898179045459610801779487853034227608348961742307873893623015234079800802094984563444784327055215762702355138741298172438576587159330118377907117692727352666538345093038378123561478189965309641855034105353736421151574094773807466813916339876617863894534754420139746009436949823191446261634428987169213702501463325283494824685725886575045397664829391598463659620963177728786176955167220325509700663972912491316005497742590217870282292710202607518760887333971013694964462094330520593597546673048452990571870723885846427909914329892320010804071376404355943443633357464623626975160597371635257978870783934719758145278589426208392210229276100681546584096480820220458450404381727294104980035020924867198171074241732835197090669021848459020376796332272745526445465719189537749967612652147821411123718336421711378868368763104706214715142450868702913501344122231908148500104299929901634807696866818227753206300987351731724130480289736876905903999512252111979449313147793574625231932830760832859660214109785210234024378918198316444269135621156688997308768288792954223493193496221784956788383463285826113797301398375217929964343095263577572791693903023675088133915707769352942965353041003817859251209714655145067222932203201417333461716437388736659230538021405475992813687046014442461483592026080087301324060416442471448071576746714985846096602454499924380443511935906736841417931531902532955992207375690091631164430620190966732016251029232649507987642152187592092994996446524282636527541869109465168723632603171872713365763282447144900859531163415011097135789062583283572714883895171097026198741086085635923147701208039987695610682727137050110783660507540517333553456850878093437846897258439056245182368502866354625511377874636005815510664351116992354060570865553443094225321969844866320085135946671365824402631045023884998880843348818100371814906199326069652626402034074086455069768383734217865554983166750502413538882098781709672447259332066313656016312762094276423412843205696929743474131135992681067875515907807796921947821838204736605959709474317156866913468971470615793802034143377262272069905704744491624718177517591178282909048072773280541661773669619406656951291656581021805736052373774920011146996505768472910721868070595239111921212548575404763419922725400011538580922414591559025332534564733360144104895046184686362214237029764035976480337922096598551991849115997001027166616738150443890698556124583055033430279008404170441167411443910342035869371293404308094196371476901900717453087661366167743031027203897082492227767893963710824209992047841531018489016476994032241310852859053563032384547803268367418600493926076107253916737591116070808505947588565389794298402732418002931407990425181667949278117309754472188074302773104469607803284757275969238314069213053060980843531643885042053920112321153509685134070634628638895286362720538869288240508885376168099595537042527468251525916826556689561311954927065148218769033517119341825780997619904284455377540467341064126870056633104192746197683474082033032317580151177717723428655304209552286762169183548674735912699754398879586954987994239132544565362010771343645403000685139264035376185195155795687539970630509922236470752627038272524103297323467366991115498138861047741973287542979465720164179459796085937168409501687972002855125343248635772105359410316327844647252229516199209496717431341404337615090028552984050977388329651518330234369539848992645697194541226627559356379295773640717140610973072991131935404522622892617789780907354633365025653252534516443026707953458767676354141452818240278326888241947497279068188307706264768505327743634324487495136943163526614601553573601632940982006059246688151409932769248672916064112389642793691343868287367944868453801049104530452212397612825149693392295178617641182255865100991084659432016746370612576334066536326200897376908148299114726778525361379972937270860645492707683444828751352084316908344329573745914589469454306629487718255905866973855495126776409543922881662433262305561504493014067061302178446083129535574491774218964208487187427353358519127986657974780895854487113391744680423952920745205680817128417344388999796169577843977196760837774047093760109091921097402623604013601237974356076068051104057338204131993928389778102060864895876093574989271865072612617779152935271134364060904739088708824027375428998738223556888868785509949071070486550749020838365709659513752180611805444505724383078787963134895942810034427046695106818520170981055211573897369971758037114559927266484232958522864277170845744688354373883866878472930617632355321592841917552469320024013198441893891394307389430352405889949955676850793621920625085290288520114001476162493507431100680043651007402778452405280795371620025154282129537836271228371908768014539662767364754590170051691798473364460155291319911674216608731076983565693720255968540724050316403009329092396763430790046910779232510991102535018618754460894832904008501793803606539437086300617189469156661278802555970545111582786549164994172457574709037548902660013779918154101201751017480841918544708418204594597379219288981788423639525878351130180844502573230582747110911771693567906895413262580363081474805860179323685693469504896836316134990536247839426138017688657871415984343518236029038184325755644318924618782914911043578067167138128440505426444680916680825300781081765889570201228246689406319716092198608591003501822408984625118000463547852346684192869066085060682453130716804469885530116412293898184317270903555572988183309641163870905966062201409585670692431306410709990540555450718776005736637165613347716092860005769661636056504754614500186207946273694924487903560323943457128526152215825801950947370856557602708562825972183558872010117476144049499219121426705566386689589517653591298315342887588547816615595848140513292479395670743544399684246131408441112536605858542936810830952350200814094151540235984738228775209095730709363835676526868903795966023723038865494640082417053180338093098436750076661275087932686071743784543224963334377056752512118239535672302092712429898464578095097748033010916970437171115488505684757697051856363476359494277719405473945989527378752179898470490222809555002166417680359004126031967258175214104651072240318216772979208909467785085097413221608819108475592266582567187826163826720128159907103320693964760512145563254736885262839738677947561802527168733342656389461975736595411389758208373043126524059752560414873948746136603164842396385171004265217892344618165450880167968588963338051940097835611559115627684684791779856627492908422858588225257891072229472871159603772679088969016505619646679237860130203721341378129428586490768978904278023776979886082333678822071512543144989948545105528990391456033304877881707109490907440085908326345546242719820929738280098596445046681577892337504397443247783988314423367313054418982159679038945968136339707748593995158443278566978138419948510939162112974448256201008460799232177843369990586231717663459201426248556996727039240283753274558707673533125190042292272317023851570195147116448595148056957075126820939675221996902599096737427916703132893571205178465781771026701827669979335588110822320852569166533141793734268039738400370008850270963639567478368069942810232985864519893133523439640797937401928634837787872923339265479750721517215696774911276357121643260474712913919984555031810314770871985814400813223646408861221695659131976362201699360836810603675690177417374364635291667334101634793122457876901290581017046636264052961715264627093455033667961031433100637291888098723488282462284301333030895704602095308533576568893002155547535939132675588237879963243106567865321444379271714440117689507059311438190245795873499923987656649693138015474226614759795658065024205525415693094615811611607596857125944544637511234171456269811895657518106515962997645661735304940925706253726557656812758897992138895771037760971113803808985924806842883016484003397878274492270054611268474318124903756747344068398071836640973297649907218956907560274624448146685429934300510922291336982752492663977285093150860834100217932361820003929706088100520962899985539345955235949330032887150745825200940852367052225688257078867927323383151334371759047957939858004372811543313601402680119007865437635879504498245936683886642862858498727639090814743780793610229329641110233680182892435485909949363474210230209776598138578448364386913337821101026332609101412542985250966273919902743408711703961396871212548527639115069663609780931913016314604592972131888334032771557371131243688250602940894809987188687682555503141632391624746003984939078053956468658145211840793008530409523194920451860347900004869720304587070462827709512065124680760220576224611762231692702089049980514324135883255550359545227776405391906705097697110983399909872495304339793581850539787954447438751069015230061325677100767650058850499885455947661338078531576441412383437221350960587021463542873709736327250846742395327546162378842999650125606204659407739700001145991849541932625833168560077684335569385430011709461291292339400123876264583439651591774614201944766173563305324238095066686537963675912453790270337294185897767673381222031888846264190514889923469957241424962933487454695785338769767422053519558376532135224094180902354478621917010287423409616259863670376342949714241565034194768512051382694289445191112060496628514966123960112053793711811731863117685464505035585584812726515575647690480704635396959578701391254829458141537168055675748596174511083913875497547408710950977458289795963707080803947641897063347177464442327936954610007557584468899515771302542571063608267935222210981761681216162931110763859113603584994997580795910774401874044591654645018971646307852832065260746473125403120157205681019209793788987797119311055702340760462714348876950640971521824885963805008234915539015878184777877130114625241396065878189997870434490705103122459106849819649851521323679127787630674429080756183536751369140174426525178531158011891356391949825756914017870440793019616791056223402472718139996413839587598768400029519730557772016279446472516608591930559609471404049104321152951381252586905910365779970727482064667902251606956857538697909816379003879014703899415768769941115307583960263851107169260400486148815673311464634958411725925326309658134145985603473651192945205050883303023091198326800179026780945703646638432628951772437072426159505116144761379892037953710537229910703734941684360582476668455864869198019140267331334945607491418567974094375563072810776695634406096887717743200888526793845083073562377657958036818391054821150794213041615524240273066597107406876923926973583655163353510886010049988493411954020024401058605737225135827456240113521714742628855797382805193904073101489536027028541123106068402602196100030174466267039623308580195245966862892140502519099832921270453521197650552747013221366636929048600734101701030600193996327945621996288633369070279133340700215176837347569711033494372170908338005645153050107722508499085157967872660476013583249865612016368377784729556676207060666160064218447607837271445359000846460300201426899566483007567364112373232729433251238308353044420743026199719529935246091037757836985902496470446217095686331639926748109475069937850070417953974507731898867343213079076280412166524444308341485770468024908312377930217442466276267767707531636066392857858505726813842123892415601312327335636585042723321967719849514279935738690186291561212407187768993023407933238166536014974493643366479725303892287894137213425284669147226471074549044116634398204381700321557302645314724777477589368785460257193566375581266051770833216136051211845931611439187972390987030626937053148739878056488960360797033149263071304612824653473164388211543142887467561102809677404789773486232118978784216789750550414719024932535091588280870424308744928695936957710977541782849857132399730484095177417832411195995343742003246696165501861032082641196053704862556141705340459411922713455321644350696114351075817820591714893643854665076508629787801245613329794852862102344913381193857732641515886586551338851545970067825185518282904219836368785148825876284886413507889953242016682245023784243743288032345712754612014550606976186368344854585498655626021715424725543064005422053755212542698902541612377598441713701998319286820101373499481922283258042613959118489399289758807962079070851255635019186175519224817444689071270660254784609548205640786271227504706681180172441477110926826963335992612091152110213336922423462417995396914947694310486324657296971622505631658220090535466249217337892648913577086557287751135200423984914746152764890399342937806715643109176818852037831044526891167971875928507820509567896225894165047825964399568619931325879261537962468983268413821841931888129605992571309723626744603218932900441723443310843147464458521347722582558612679383906541491662294921050878777703076832094357088826243502006735994927182761834444153191679119702815325857425671033301154664443250129176014506678466035864285945610245036406579287837594267091007977399736365081438817406500306439358819564757199848161171683502192417715201780779458194314280459376900526810259447227553398347021522774612753158588770110299610770573574896955854794214126871830753590878846896173561303891269463616739041224722697449035270553910658485182057031682821083970687483177486927432407018784282514354582220659886982730326631303826270519431870759946947670376604690928813774985037129260452549008794904362021573650770635408426026528112221292447255318228165468181193163046724454399265201802051895659309362567590001643792565429356902207456160172106981808215178758782187149234909169952003994786343954157409388392468345367254865385921733667321820154452633707912662800152033282954398192560331336422413734627743082625708745716395989742333460819580270131523506982108661204468965225945223152996415605341949822797074092498090476647642738483056752941026854271163319421153883890681857907591582965060546543025936817251817796219196992922477959397550776277066207395969374924116206836984404914369825932072947322354391120086316097162613326257902804997903359968527221335317238731880226273079137914187423679478768324976730549720535606145130965768071521080948450354741358007713483324217414022087429846960058425493564031641707682467611903724274012529533565255892488855842261867265743371352086353771412961155466618961297281640954017781131002004524042207045589865594741375867945348063661062212732609652061078212578018093840877739876530310728475764779638760788080181856396732813758306597634534369465137119191528329105225739198373319254866778093203746227168992011020564773253620615503698269217991629137362529702232021161503059277798506290002948302289790357549749431757394560728433771023914684863349915050762899741024227642427866080324664994484482098790126416515252543182113875903058921379993362522169886905429751313125338009129897677848859682111690963101775489144575259228043542645720801907265237763447385464926508789841739088134238060296294368216746997489487483684867328871216609343462893587842191640264233457777775670692198811332439958386450986082518154589386333274427142622115843645535422916182265290517809887399450460322226792802890568157551652683049471783503903446748332773545579444074710875127991707670315437804596378648097333799096136425512349159983901922639802469371101503794730085758411511146750292442396550710582585079073347754021968492148913153804366545146748943141484757982780936778804346711034232740831720731533067508888588950158737232611706678558223759761051734803351891593703563982703154606565632588969887845982673133511023534532062610299375628700864757800403717509271438608314687768480105149070140328333809642775098381374172866131007123459160360298806554028689005061246379848130212774245578885743868548811965677865772486119534726719606292231251262593189943952397426055426558116025284123839103391231186967617066989285697447827581727582226702406357011327095976721627096352324028449870767348589779094485005124535327263508421442717484966392211709360798858573279919989106232696953832795115942323587970992989049060736059909803827007390907729725385312285060074801672810963669384055539390358877276185419443290855921938225708189510103464044456213007191792221242983834701437917804015780976793881634595029920981868120975302091003765766427125020455511968246786452047624889471366412470105324962466525155850059006588095379130040416858968012538025320757180161553302528517985488706977214520278155107961572128484226185923167705865928610936938614941866087020921245284723610033041226611020266849535662199973942244575696005797385256717808337923225607490056432830433004299155416869889266499082182300584597624682991444132592361428241675161325878765316452118044478688630080851183537993954094552711764274867265801219384355993866776959181383905436397928287608381122578137038269772080262263612437529762498200140753317686885345131472004224391037975323853914602017030563259068885910306656011689282454058970452457956608309782522310582211877888261818087453532346626872465154498969702231778495833960174060695847274980610083007686525433205237070451092094827860678269250884522463569794681591506787012713355022623424276852136160061649626792105177287349909130996695333652891250923707578056309740934972185060480510478445659709909444168742899232160690160725694803026238742815536287999436495093844427444345934131672827399949842315021331181244327136281356712763343732917208848546442883897020066347668385172955522182511541364449942867639002475476438418148109546323387316750899953096950426918737355433350879300009179823444487811470907974604876320149499914807029643050406254060177090012687726849294053762602423817382622026909174319426797645381768872052735445586366511513363606143929337539174544171407802592037042214624582502896489345789769063727240650085017457945173411052704137894126199390608513719071269766712312561573622388180940753114267703574896793539850511691984681802269828104625370039627407593710089966183030619669128323924763193984055731659038978495903562237321401382316041715666709585964189647337218870316100594919576927955311252918512403380229782377240250142446462672154203316651735900735821578832421463097865991464290725524175529342854109386580408742370808665493433992330776235107474957641703590936694655856563007992907697240886771320350869210916053247629631421309515078539731139400734791820772263351364226767523792147062801920153429440890790991906060270534665535406320935261837695218561311174444277740350019782379307254756696610574726963098793722658669361554808759820897424492760171213435999606943036267676912470008709877410693722855940631040629727696936123385817574104226004838426142276031630773476840565773886551078679477862756734050427017740519115644835370210449932059081388861243611832493393894814083917360327235950832821522935094816736845699552118221287608354853036944298848918596379083463545934214494749847759369140308265609108276804833247780117522027427390673125508649257761634297694305290718945589465286350968936274225462511984223699869310934596720911694533690585406550400965242510251666023099539557718140722133228473525223062497789737468951657008155561271939599866476830875241001078108138381558360852629446123759257969380304718049934731572447623843303669203371258524439262376096916971758734225228892631255695254202128443941933776004771051326038125361407356640247373047030881372081250213373387524735208532268761498774062080546130038989870566891095942163250900057381885217706123884706625533888111233037328866667334261543459437049859775518950456983789337775106234377110435503590208374735433149319533914131104095295533643297858526401340869809196775027826004619447105898869946590644027527773220607089700330579060910272246553292604098268575453692081644191931884421750888948574299159537139250172491639626539100595224832487898393763916125182512238438163258905882661875163538017775612660805313081199923059084536504410608203627593692334672165855372894231726441258030797613417990930495688457314365319923107422147126753536253191138266769076690804012369750037068052947795639126412007030395863381201865504455829491204428844263320863152362097572736039760045153914652128134721318680852552340586141305430273511657935396316726755051652817549787520011448767487583590060243824686545619734536335812114133640839288028512594722230591584616546580862060247494563801427048965271588037080541017037934044409685022533240115898659518219724458811150874758849856632559620016439489147644812918303237448221998365800991927436605170832402671899749844551726038776821194448506660484100611624995347995966105797587045359734924547295556271751346927246071897221754278915563238726464106236993636686894346853847270791301183209236998415172336526182413319944183826042925625727348061637266218295460719128884724029590604383969641023900031467954328719852910843040170483611239436147014417218365743799226835120309001240812846830952673888872081022903385865010076065307734882425460357516583589453022384863380260270265041821696168754700382066563382128709396715072712978491705527697603901902757119200632090626919584001688824166975469097299710669032251699906867261164053995718299620742694277302978919323325943775739836390222614198014238809165212478392332775852271053338245928819738964816734660092257680145883436516813131271241660574979782325992235263417071790844873651737929197322465672157188290341069630557081175138902666811129063289726428508116322027858533529388698228261775815144431487072471618369201643573319782049491131642734243365340812356402765116923018690698548836092951371996767795247386145729324469689792890145967652700469733282923951385329234129094986941989022038544958960862811875740158495166739334993605618104967459337399961576705350287724665460765486275986281227569870140610941142846332116837419694541797506810686223846223974666867910337708838496635623014594700596812745952509271976556898953428280907372435326211601482160550042328152187459718580569357717267350576471308545124835430877806161036741875286107363627782047090393765514897728249508850060118772209796816314462856989212119247634120985794378770813401160726389541023209286161918417104494316786989834799482489708439685892896135125741306445916867367677162386014485465015283958086062513941699359042413332383593822592761696485256166037368322589192866857657143769645223510310786077725641884582125465352932145451629390168473759794531044499111218670053181058604571843302123072000763588658179465865615023209922102074870892673511047446594021433340637539113739959308730367538298659346511817060305208710057599493521051671323932605594171826015674597411170277912710723814196110250804065236598699133782756572854820460979606299010518765011400683134354802925289259008908156673587872501186270600384358928768876476358560656924199841348178607965181770566689127632550957236380602588708139339862154760657793947240826870464343378537624748281230699865330610354839030492912296348163848522724155965079189964178697229647066641170697587221465131716055428034275005024747634607542502497110569822135902727023721306441487210465892575794600531862745114278466830318238425110877773154530339061990414025580524961126939354099515024281042927577314042232033120236396570815108205560243701192440499860359591941483902386534474822316846638967153773593321524555013302537846809270372226185912705917455923415874085712043712629246043220934771491475156694623706135496398648852895510276061408909391315204830351033556177247086188308175518234987028848993253491645789059724972295935746332513035625884310683845462969186216455339497357211024044116525338487067804566085438343769368997350375112901837224971441052861030544874676826643721117088712061734948592451787548178233890493691656108834751587240480749033627249991531996465541799744125907517259559386145485619171531434159592903878782811803449260804685181737081094389481220521159423108060012919203971231135967473340031754229521717534665749628385537775265271702389984197963230946062859209288611536990768594617695000347864897354043641745634656555043946597252883317532432666644212618952191023041467501556684470883337599044353068585576056192780425673224252682041946236646633072604724536949241177342652538012948354185159819666232463296133080950931845205213639985558259965278500527792779766422808828772046083415604071444159120513743980455877204193156488379100098297222849336933210178163184640242252397432596249400567648587444194837386083387371343677073444336025464527598874087348340389427665463587477772263645370032459641955611979056116748629162038607353309714273212840329123951562641242949792521661761302698660363441951075412041164312836753368730767916684730909437876923859833065357336390258436617460535397852289312014235017267575066287282098546598815340161878827050637147199446671153590499309554287980186468111114818352449636638311789535767192117402329763201644217922365399573485650677030306552281749634383137524986741124737983587051717771160688179538035956854108781531697979085513945397519372221486631369357906749723925980261581122267661511461264040508280402610637246540530621210687166209140079879376145677733075745543965143450343955267812827739602015466093960822381525429578992521448435300529979688576203510838900865419174456990211741199722466151172301761943073826300985608344190526091259198020810292135609954246011622831846644036822491490897400652810249703563903565905003788573735248672618911059712390339274838437400760069831488524476938194153600014589020543497788883533409144585105400076690110420329420000589223011458694837207451881237562371258598896637582975163894739671232893276970210750375132564353146354784236314008405867221856375478137925780614571189998304957244814607136065553927150508811739444501121710953033472450444169686608230012832512207413536959196157788477584408722760830136172416559027221367304471984356969942667773761617446086694140395377621766896439505417735268287462786108865516710163327263878159140567318063567816778335192317200817643893386678982142919728349994331675453504166115140186191837353578523706127320111496551028452505792954682617499815116235173057488262218780628783485020173291205157283707606824102621899731051758757163669200687521972740934142186612629276282707622399849120434937238103565747838843509028220214804781659569008492726294181173333024362026644016831696847957823916903105792439270636242544384884746361527313116093872927559292952418677060593295317226732134984730150032725085013556568137533954204418677631335626417141729090118012587777732062445082668525485625245333206108705771450212548382826759173059639985502991971803727411681006565796427854622360874957161701291409098172074634995204783360572566281338315174366689050070904168485371903922946515713623082095385680539374017743364636751457080104743473060057056643997630574906988431698136753916391593100881491655745072241117996827727726922750302913986355075143681962486498162714053217756399658923838277250847785218581222907502232970735784548291747127221348393499290022642834151290305028682293523326789534765569200401946564514324044179053436674511903487843307118840581382211625122190599167510945631693578386277346867537241703799130263874816317051678261740643253756754734138741725142900639969935498979232439020922814184541577595096735965196135392801846593143120811087825116911872839076083474150353003832099031360336449448174550450998626557152317657083809193487016157511633458597765309732231524321477925932992860116782635850247632083086567051179890228124420110963472379382617144244543227227557073672734875268090711280490237227604443697657969572042896716296203442807432209536306372302397718403403264934686530459289709935769160397729034924816434331478937417035134173965469822544274426915113102867420753390277664810143198805410202858958581084815095003825003897301201939997270923460515713192073673430764601572118239937530935930526426142240658589986721103543781889071303044343678081297963181243609086258038820092404322474695493731408940528737961276226197734821409636376100665344345915939120700004461638600923453984199072190271564947871955302505989394867015227003977843097354619783267985615439831373067769067539179068558737639458698165316232830184430979209265652098825914094426667328940763440289119755794714447321769453314642592118873539012462874464569804360970495967848954366159048820043363988663968891568081467883184214497165412911362654601966888176017013040217535946070080502681812409489951858667547403426515976400594291664071535533557772259963931882498283883102872860958931645515825940435323469778549691819929629428598861650192254238341624470913846133033221491286521392272015019518979040665964499598317909640813498851683864757303109558014374477119785940899824064501601550136082858191641455966007329857216614351207549598540178276211133987290234523563528882358648185014794702058002404510656352860884227618014537847636449335432103832697857607430360020614343025821281506839750902121106883767655239153365685171704086380589873664330792952682326334317681404952072925740444446436716268797221525621838335347248899889461314325317103372755169679350655626698938060279233595373977178853129501708706496650968158056539640302229176074617638341270278109364224289616312457505485277512874457023893098578970105811360975776539104948452994341083180668007194054721078910222375054560244390304593949927903996195674876102621131594431575466684168303042446591450439730681580318573489829492925850390778164269344870300500661473181855348399890623021513549878533902776702831468294473719202146053106197851921632577464853449992173339566106294818038169010086038690519748698663800878568849478286132029713507303787227357063608601212860274109136872153084166308764714178590125327327324119542881239447127177382325080049266121591867169656101093186463082634113810826957696169124336294697013576347179612202056113479726605635405678645442659140638304377771715965520948600111303043559307329936584854240484945450177038453189046895986447802301130459763120849444928598704316302088291514665200105253293271999387143680943120237171429867383252374863861992094512520570965744271057707289432025509708518803024207381891570946107234807322541674575963667903279348659339250490326763591751313981886035131686222613267027620021752020434877689061334571506236676324886586394080401357940210826526604103707242911515282212005697354403868306934975268531695356714219030548535627930355672613310045595328421762708042995303278509910652665849942301122192203905838240239094198298517740023171196486840660510509243580916153921431346872111956983416331787129990098289148025559966999367124057081925768736603365094710822682515888712897473259381789290820383629908852584778775848981086133647719482391489229633924221693118969565729347130730977941732903868245614664400345946062941266108092221464881941900489517517692317448800030009755248018214293223511980370964619976623777129388072792174072603431497280471244811646048814908803453718252678973242320542191973459508296525566917424494140619363483091405563578041883202703920166330689767696246526704991523813980942425878455513755592237476283328848112193922320337497739633600528137920579191659959860863737489614549416762024488163844098978457800053540815575484853980903804781610460615175511383553980780202210249510786262092877587018120366920992649619680462824173595735985463120024604884190663475249405799669314529969174108633631084157810741999395337586623814864108317240320590920047767498463188849229863312139851845880652663945435990554492003324915072591636153882984983339714473232010762632047014046974883192923348432110936235299128737237681021192671393980618616057716861142359732009948542968085151653042967040614621940887442971357530159441882152276637380572098216594233949550547198522421577018353996598509125321160931255028391974063775418778722031991790910205195409731445462655823200498692199144293166198873859079478486714519086856812295760518724114150818062572867608526394587409083378897079213628104664502834420777885815927823520492496863261912398553867466321866626980311313985664199693786124921990082054971880219042364911438686631824704085186130998387809472893574351006720682926790575677807587669381784996362581438156597997043202734935810086040777996910688020077826944764128793193171277077832312654386210264689296557266603580871780743227595305636111948289841909430437578381811353115776179562829802214523480138615640352316919134541714289615605947803036753653704890609399187371154741483086912384589596483908345751349393398979264136955174762498684573467408596075340303874258636244351604608793572934026293109019610362924590863163931665574955056598876221935463254827632949195374655601214704520280971945131529664814257752878127069517907130978011989979402868634349862925708847078617035237123767407929943191608335122388704371264553274561211026806644115887953606771931804289345350507952167633527084103867159815520094536939131073998208430213247045309031699148752077181068555354982207396643316307013008060016308701915187557258721588777284544283788345724221347721268556020296178656317161228214314263019323786411597738648689322592186837940533918996813712007869594810269612588204546767851037106409908483954506187464912511113819516644599498262581568586989742821777688738645966971525549118187033919349301423322994420870675841816046946005161116163329509410635890127772568830580290992227667033751166650712520081146066193863592835600831086685530297888017036741033739193848062715463535219499406658633126425862735414982326930643422012881948382501384945513199982893515871009839719496626103728023030060265882323817223197632551264704171134737432332651870768189065120287892170559312726731098016730585375201629864275672269470241710586887399351011502688218563869686404136874134972040319514199372500197694569400389411434601896377999599267604613238858696335808133316151870785211310532089116610338275269908538279753055150142688994318471472011607890177581225417273198007626757492143991132120013098309179259004706781240919847175682919378737777683901718655041024722381846834022329104332645788013315868334174504832519321133141036598799566482147228902188479656383109683477817769413527437577750352460902928199173237387796434267051904123804758543615969159681990924330491454506579844176780476270376906111301015243601372487726917203055218243864115352757391981762260847014526171534596680936606396711665505816989166223302554673619701109186330432961406686210095776170409000686131584758827668011328056820791892261295708097605765814000188510939348604900444813724082529633997863827716113735112027097646881315024907748051837615574374750007167464581469677285517134969557119401696544011034250750544931230727734098037538690859676186952222987868593295225776608169312841799301955840085373484473998850265970318802189161725533958276007576711369096854601130805839164152415638220921034059912621538747126924080565960915618456929436236259491079155299078413203314216920510578813019837421750838101013423239905843237147753623272170279167212010717324754934228266125719996286992365798023716696369397518073037042179057765871427654961123924042019199596936793138300536416338572768480118380114574400376299989780556387078468690277986425981816603845167228361832892935097047859951532061110959822880116535776000219651932587661355727447358234684800741507247817316941914518475062212104691056925506639953091528816679278724808712083430106093833305837592000949410528328017642942014521967561399267938224060756525134734459765530749944270240579645614263674931286654908661350402589326348743333595624120281455217232433595629384310159316751424732206486469650405031523707014829605532094024250750012367303079259038783966476839791283255557118060526626302792080818388958815962429865075595496780194486093774289516671298711833818960097368312064860137616150768492348461758427159802735207753569468834592937535208964717757289507680391043204091080307493385941726401989658469244753743780953514954004647763891211120993249837621657703773140517843306344372801247196474061385228286012080677728029114169293779998650694051458195285813069986241666530217555352467962365941446974171076509049395260328661356738836243172640577589662210989599518810310346989673134221188020047483782675027337151588829588632308068558005407799598437438766044595104980786022284105810901124426953083531131782263656347574128728873255912418310671520546787674245303677470893928561287379028991145024315205631687396100544209895894138461658071109130449363600448299784581313141204199928519455803846147837383054635375956704249601619541451637397045017097032715686775028691277892965638649320905775792622488544054050290180946398683192318494735567908700135119296139685858152984248490616260649029784316412769468146433555462583457162136449799769623176390305036759793277909935107391799488281360943363167684981994027263183878898444181934414989594250690771890484847676492517060809498804380200640293344839874397397700347586957742119227722202419186112169393911338396855880950087592051193175633703063474780880705401558964350424235598215671736636355889096195758535849045165257635780066454116914154906418261265597728189605313838157814743848978507413348510095665902738209757825662044192548740468133877735534689328035509477461524918863799932670568063922193118622910397513455037585716732376294720959087328154588506681957906846467453396437427685102626859590390011111790559297401748615312630736040437176291390387719620521547832692978583761816375224544878806817434801801332711382534696219752028843227274049644688074052795663365601431476670871383726637042997975468652932947155590843930805084769487430146378686874775857680067260526085212860034856634628378512051123577027793505951335841014052191640951469535269650522711611432751595530172887848186256297815507513931973255926796575629647737808312698622360286883687755942263300745155676637188216287467095648750147834632798666990374096603991433236534025031759431269416112793792187686708018275791591822484768867664021029589864476742798695460726648995391304035119358624512238190565376595115118929775119784684682206139522841145899189046341978316385221724873320950481338139473019723835521926877642384949657289127314083830400152520897184812010509122243758245827760476498198499767753526332491606656856336829990934190252390744025682033210482097157233131343567584338935880457247582236507009917302391628249350100380957633618720890916800507116829565475365088447894845333934108730364127803182222915576976990387730735800643639256043788877292804080904879363089453594357711434473984377935567643751391770600355406130141985542753040399730470146122422442707583363373021431293381542630779182414186554752253818498753140730532734054991199486835747286056718014765243608905575055665801090174959431871340972608724101475361212938850760525829566240099629278774716651845832398661488009107969525373850190767061262019173245774374106556518876408687382902181883305900537952867794023038992037140268442497866857894542812114488458562950126315039017127544589325111193504909056394887848074553296000732470358122274831817676907989337131524256828088325542883448523800873637928821246699368215656931332628466416219392052710013565444387953546013668964277822966066381412971219065248325850840263482324990417851531049590469765661044474836832444543004292955357802526871097687617909604709049622675331649101440776806610950755869622875431267127408257724902857500001544460773096706631302825878612127941656888727692081347621484315839917700816239138023408969561738613465811511485911045488367973815155332172148919939331601965254767965460178082870839015361728534759080529271963988232678936425188255351863318223794564815341133548962796124136863630181569438334593738272019302925122333432895919312720502876758842654860970321849479138518712470038344458748336537758814538167159274535214298672734695202938980639050536033436873725413372673854285345213071733252129073086721569347916501473997746971735103383359121453763760738297962282274941738114017363637059471107091988944138392671287129695602868282840212586569047153785207535000929864945311966252404373989213888770624650150985897851007346551529584361026143411279352460241872460059600278322675949641681870904637408916480296578233744005286409401531420033096106345284960889471161344910947522587766225123603422557277444070993812914184389505172929722077852465476458586452967200617985611971312674872319738761174117717512472210830124110149944515764025160567802872087965387497085449739255814323178586632699651711475777533398384661259842535174974413513039449410112690494475118413416861700159891092552639883817011956060999896300732034356542099178198588593099949448720273973320466640513028025586191200338403046409674665735023021341714333945539056695653067812217985357509128466952838582189103786662159046234262718622599050199114191559107200913149485213004425800613668888744620585770452311544740631005628865309847737978738368381687715971367416046614671380215672115147766185586791647294209891479413347211071452521046754063238188556203281146150070458673504513016528033819917870278769171135181012172156003345291334120689268444201017762097000508232579228430949450468209204994049119721121037537962937826756049292372023263861435110003812708941421814915770497885886060070864423759652422824401160761358496252620839116780986452842317990884938989250632365614589005078748943504702415033101530922922419645846076603792239234724151648001873269827848147791977676953760891552230886450955138675978590580855811919563723878417046228689864934391389004522527738724252564595329306029862198586029265769678660142230427582154498156830350533643722686729187041386434252816373208896372200155782346536561967591866628150339572835918976170335109943902023594156687631258865088364038865779485326227520741477521006978608908055081919149706637544608086964593484097087118990251168055972725825568246484027095563592273117659254226331106382236586837383749664802593438717158731925566933426211140943858883663642710634672447017948136177043573151057801168675927246359292499108976660786567128959825440125327233933784722930748552576552686136435863880575567030587298167511889852264518406283073112771533337650823619472797426440113637487944254477665413836181827226613820460852514279133149558514602722166222843350896928342232309296831803984720533631826077137696783420823910257267644439098541487745032604536970805386723843011620792157114805185293844321754470492765436035706236306340539189754931395838545656636199354552618738178759057355609792759708617062136851152661095735127444369794172957743318357546012206779683199469500359718706699535651841845900377179257960987463874212815819452576891012704639914321650720563463681104374800760491842807192826152713594744513340463226995241130658537932198728874623270334298429359229183973012414856437956832335394823991483975223676509098653447840609109253986785716058794639687212879886925066300007348097233820778230685197161998879192947802735188597687353027502541982476410351259761979916146775426201457032062323280008188186787635428896712311520565056982402449372017412089019269179984194786916118910449603194065600620404946228183416082324451367080956774160315820541725438337612974559917651998310601216335453377740652159666024661322021843659965560743225003337145695989977489413996158270898032989926343667201195448870301034552367241641667508627730013031748534610983389924477266062924649941940705557823420798251991208744756272404190196065909581628115862089587686223318572943442832564850906726783632136570428343373589230035978825461482541874143117634690308333513219405943336462370263159633119435334472343466175677551883741124148098166217260875831438788162650122010843116908794687515968236305352371424718089631307870795618622528232629514705422777774817700703980095071619288126159638339722105496581822286842436716270025983062362887888052360577571706237021647767922611485563709132733508860883371170055239584384093589656038021401638935047520910303702029613775308568245936124819271936370459028048205232755401649555357889962537883738255741003046168168925293072950844663740584751297866155492099465986438354665824373171310675552409276958820161015778394498061016699982443289797819213287739779521626777882046257730830140395392650692754264598102966760309205792985474330103621330454688661321953208836892128824566141373299173495435461910518071696727718476611791084305339827657639616777952926651297263857358304312743374338344479204808228375034689295459086383126271310393846670146762444912007175950985111802093111791832732519984223528115164507784276224927092162289053502727817802600306388951566469960185101984221488508893877427195108935527277649929045750550906279220781885361591996771694458415753950770484731217826340464054484541104081861454660096709271443872703825958518048481867631782656183468814393382692655875958473012804766667025765876459904030897235917900694338261880868848191706562747034885048559452618769548455490933326677182655550596929291068562317597616258624622955023170524930074118594553683704189213255101321000215384185429909997921947330482815421231898592255031771305913993637196311469069035196672219290776784545019234794637363413697384886725997210627349215483666307590724902363539471442539665804431614195995336581733904050064253287240188520315736069621460829762325375381984721650534448809649787952894183330653897780865365793215425665090247986005276404673696360783712406550247088747471904882416256749602846931753109935825236680749544005709141225875777782991637709568477888603023789167990321960221611636128757421281644892883934885766291200232481304557070652315256986657562691772806979690843402955266093080209302853015847768003968234832751196000810532430990367682051931689805549973969688640190749097649199707159178506332269058765062181263378127502711342279195478436973518047163227585712222803770883445197333269463668996980263200573767545116165988795678260104877435901632614218748363795829218582410663859622139570317016603612542997040790821817010758065911602328525895267975384435600038955945375351150640984308233841457863389772620561798766154830073046760833407533342584955156920233006416027467143055633286807683209877702710626513231925773927018205832898188776017701120906283079357993503545985918724007504057755861813540456012480116260131298216573276745476896471677562471363718017549233913316416234846117531646631604741242304840974669643100652586711005144214575967996809001087709205090888373332185175253382026846813516162860952015194302648782303998531610137070666207434214564840284166987869175848552446577154290751019678949358075885845313430358002140736856572893832998257838363293912538800498894406792563951167129076486825829139294524790818046715647716696025847383186442332171815425341582599372099693051849912475946010491201327660645136215981872424725197927291126807228925347970068803813407890591871655891710711282000605413225977737216438939268573185545170091869624843421689962217270943557082450737399308084940323806276003581709069827192933967308163637397073862741794435802810557296077335580640276542734263491977643480932320000777392888766101786183995538273617277647785650705782089594804357655681596557096871997759159391687599231131455478327137729777738592024192236643268244692614847874825853631253182273128487592745176607899244617090256929740046066563359702364251883632071078903940686511791496211940357048487605224520166437605332531567101992906195218292147605831735251249372854565450430287994640818967447233998123587832015769887137215385656962910103176571259475022162843187522794320748483963863227510996079781605559559752925016010528865117272921820198922452770631530872176692935269325838752735961924125421173478319588959196703108326612348595297509569078935301888180709505573515403718833232456660367060303988011524824404592398556177418276876677407830252210007785440033651136372158068904781336303049562442787782276881782832751068007913726580460347879250925477465352932230758573043481658218366473820703539676110940279044643739903794704865495074267361847819335861901114874627061226202937182045831434894187149519270495681192236473931686929799771472765525700172447300716047666727009954038750026603411879143032262918688813090070773889487097397584877530328798331407233776610799637875667579892933345289624923092648453866649618381768137400720254455446068575036177483790894379081580367166052055363639071426279517376059117529987613779157839625027643907641827909034137296508131666188812664798649506172235235940337386684004237482753947052386352915700884027984373989914853343353784560632556354090941587334744093273464709422171129000101929493976607004458577875129889547650486433296477121526958004254063439820636347518052579410513965636976373299754727890215334155117107615912007028368031472934320777247635836191843788186971703771589155212881937675525861165632220898029679831286281868828956567743941872949176855891846385235738338936093498705008859470761359675759765007601211362450332624342860363652432565591666862218931045262442521280823015809449930956655867286661594601571508723445932156308925303641698171330520515516382049260790212072592440268660661760452402846541732532762140030881524584271640416224004678859441541960604336113884055810349447653020457061091178154472675895838972580512199884690357307041572854602229536823929798374946195957077580112638804049907314225166903818293194408169715689116448893327959093895275710344696491076437766869746302256299041613955091700670276347335896650277439045435994859605800485258580496270248616918484553669159792884329753776007958762482662593571425293869175508432752820214915037441830400257473218854667156240386216293954840675110795415140669703843821982960924711622715146415501331344875240559753154296399816192571965680899452429163011677786401670310296381571954941732910221942802527988565478040023862273897431647823832619400285067189331889771979041069306671552482727963433668033340511845770931693700891423543938109307568839370442081407212309863832220871786977859187294982874529700114205353000950264504129883487451893124774711938970215543936591117102702036760581828018240277260206659309260082418789162765788934097768663462649218373726637223837460438199189812154582288675910142216173353416011017759710980666761735726618798490525793505760425795580418025731518119325984296571833897285255231681693655442862817677183611387395957241797452737710675672023980670758355910917910603968291085342659887944178486970891960385632508895750657177047203034204342970545974580648347995594624806289959715447013586143630265450758509807073543508921746018776477629587206868401826197361483763984400175106269082980804047762956253005456312040827719194972308346282874199161386269911132434829044589399016566482589410760468022444459005345739055199422121225885907909715804758367954419159089810523543793560562568712421451967552052037268844859885657910936654356284225563363930472270338753732453904714716955207717492186808963967204253813816725010185116100748716290778238901509665123710875245212164642570468631244713686074037941990131909429551365159081442918250419282006234994335283737944006389956569763498970028873938041904956736612527687624972235388134709601617830613991827669976092054356685585998197412771793980296010681956058499915529295481652869139671524192659750851172288405170720194630007659487156904299236435577982919878097862171988372017608334254356606944559810202129345648717761203969051522676833936490825284462882436227174687584081886951945190078176092376115156378871897849702863502213922769769983773456646526170948382535464555667493482983787930480804598340576980367331537162864634183527739786804402253353031617267420425424856820401803825690786928809797932584309717680795427488843401554773135510207549390982719475803761025676815724663872353063721588229014104636990191822811314385148900267508522064065730774620821330619045076573666199341014546701238001225733209073466096308103548556648672095012712838399804699309333503491130108171723752605195977798847067590297390946614964699162717200126724514502830673169678439243935981548969662516863949820723330387704837570828909459310917675227503102750487450932079449285226521376187910933251245857500747832075799641661135002004151811485255494491797678949696926859384440953847656502071260319056557325342388644258223310454719700736047528027427496396257711775418529264594301156400257346018666238549156843496023551882123714098811983527457003095946329770906850456355141316378785577044761566838547421498534352560153464919944474193172254566349666384695508342645469822118714788617218461927354321719336762199511324482905912393123144600801562709128412721563846980440958003536130952524849930387607182645598963556861881636852231381212279060187323499588592397576369631834973698045293923782829759594767764349044174528249445872849734315908327860439831898182613743530152133882696184159913094227219716287663703369947761839683795156341248441960223154366815748099897500797716143833069308854097753386296917833117378113538440255335887395665809443765247375444203872683140711185377541662203337201803231266785194532870703554424226636785725167253327386489489697490099256543769163124658730967079459471791743312118922573333267069660307727373708532866493779518142813428852844055239318311633620545799328637121858687137096848621556792212438879623719959434835819947582725698023830026543022506673009637288689930420593867618799437243796758935246350880502641499113273137209321485460769756088054947862814480263383615348854506870396314306118435376200453440645890535564021111285810595252008419316630683147644502825201613700707868841820396067538311994093705274034054637361623607514636551374255692209843289610013872209083202347647239960471870418164124197347630771257777432311233957971142816891226125195516385757280314296363388601323803186026292155724245673019349721293338762350370965753415683759780441165980462656550974339276629802682356079685243925067929130990567037031925301799123525769334920921774235128684409692558901154036831953157097178866847133266756611041015256355040866790421312855429596914277929915538826643243146387257534532160905932408754468581084709173168172807496613975847978101416023670566799616211177088686545603960004023817692577357897838398407694074520289992113591544261455114531103069135643305374826016805641783461197617566486740144077151252765083747360085994684867296821579258905429589252804610384227392265466875574442467149019260656548384085316906506884288953747170862022196248853600546208116817503402882172162962456151672284386245802554276468572074031082978025365325681163271427286734459086267836094845927015556421104977921433020603409818775562350194331427229503973046565010076443875793877579181210950683944577827831155586136793431695404237657627237964620732228661037950785768592212977598945676690214541018877867036313171625013350993642199894505673606556859778514305616442614508730290388006390715848474268973872272581511115333416639995970060502958899745304692616767605170065785311064161054432569192930077807525686872584950315317830251414553412295770049828330516004081118754088605898976039507556725711288790720648106145122006653205610615327977055308202986030658860734927763504023650962361161058496114374328465413315624214596192606119036080109432789367682494895933225746891342778619350914692935260323481227973822934605750305213249840387273623006414922684399230069890545753908634780705339406386977831413939555245851303706423249522681767228204632543095251269133816178077380501755313238177129696240369550171208596704808037775435974273765641765737221439880074269497267929944638729021674583417004616959717843920412328717078782822150358232948147905175343957513967339018512672221028739039834698136573925398440504475118275416513018768196028631483403221794916480996487722581875338695015422855120275142341665721881062362571001366115590020365785520692981881748090808370694666909208100222668010598003592550151559337628941881114679821577434799817501051045125452008558402600824885034302414964043495856836584503737347611857106343854281619950784504037186693313007777801148649162342518484395213362922141966155886049592554031373565473613463487264774985782583328886330888661123279153380511515550776364104850842722254449232488256098385476571373282635600759963547213738540320604086333347230098281537846060855042954719173942595797312401070703953654050247777624226115462363073564977555454135008954194048479021125205518259114327459522343110757820843813911734445952917834464196808951282539791640839911973944759796768068244390408924716929819380881376235174075565940163763275493292029502955310480120769799185003755770236596859400605237205739644777770811990599313833232121165151074805122201507306241586341539290774046619320168963303190259271463224033794373764975693975481235381166227705879906794045602189170627747351907760507637491650955959192855231639915828943899513246033667651223833814311973025639622243619232762220331377145280459292807707719362830311095824625551479330962030778806898367006749225054768218889415124705021178707044230083416873477117616030980898043726450718573590231587216415639750229848918309441591320232665132411575657833187351742499092445422463564461630686703181983130896668172525590149257490149469926695511417855725841815523320258697727321940462289621471960911494457191001044646396005129660638983416832950271077261817455857987508931217622322207289296060734780315514143407853974195077004767634216100326235387168234621485531026351378165606543245665034843832489248058938398166836942464670449791605343228680696053547854407597714919118013826039714816634907567836603480627272667230441355262271621213290274133783666005574986640568668088937018888777282053199485805254190855334763769742052749424166939710295411645466740176926362190750988998923266768474057555085737856243077810190397916787451209010423703834429246843705509695645157578612653423184966562991899988557476901682255984488005861178775441483146176283779680782664011854794758907824640879035775388117160352916287824218065970114293948665628552854907796320568338556162270384872776463256455541675913762621712213459801582255934351208375260628246602111820709449314185153155931538695550768182507890157648077443575003776557667181013154744826089753355980705184309203432834768368951420471491717857936878194890951203658224257257179478207927585677852824201956951802369354440182901045984690766852151770438066364483930605247434401394578449440494199289779543746500134769590412134586815273456624202310837528154344083965467204514601903578639932806933067151344028752637091601359668423777549096560812963640061302529814879188006001437753424154741107670605524587030073100948711738281506475081123608222385290810265265552732854002110439078101294104685922093993758457613495375782685168790334540704089735876841546570018339433047646229541592643835716029739064316843620766373614457901051443994250013074996540550045871995886213190672507066126675716918342475535544708734388458243779245239329367644678533943945522840245965853015839066957335362685471584437301267225474347435325221529351691778295636601305704008321634816539537321192512046019305068740745132643932562438029627294804669055736809827724498517018385449005291815412355715144657578502215199800929982582932908520942144644098267827205600444283944434152416159739687448719042304572626948676125388180836305272853781807127952337558398785257611767950429160474301454699322996034284438753661401629956085059667373007606967261820823952392174378131196344311660451708393311546388089134811100045457954850078431360509254700558120239168790616714143810337899258664028323062109464897816966149803830210802029150827129691681489930459553776931400377057851865680140638258858259084378808511754655249220236729374609353260438534790594111960005660221045308598289044719848602791144748267337169187388482814577335228036402619752275101850254849308288471938107255091821928057044432976608728420187520712826668885911649285793223614206893006334894101959906893859660568653581655057793850156555468652492145087548232200279367665191972847156051333650090575990481621413026912830558919765627336888878120889772267308867510573302005406498234608821735022437093385765828888860625103516887718430842051769904614723721360460113541700851453943680054538044580087031720795038668904256722207971465166868487534812933215314634723025651552807386834196828473974312775943457787281815621193452489949787933761357291373460662407604091710048423086142905586593285737786232848685350370953733219603984214128785483285112716116636495106549520517343440397421946974118283607827246914046877551932832832307358795490337617541303610361345460746132358985238376249939241342621617777664592195486007430196446245483194066107877737046456154162003083423150083460610136509859023580677952198499491714674107458440124689060523823658257936211741336046344872418917545329477775462828032318814009482541466671788161842220414833958653324584797180180722093466241015557277890499285778781610905304618580248374977162550461904829453548050993392952280541570274270315718806694660172674825684454527520616087198887163762793494521841624782799294076873299320183881124292136463562520416767614920679820454140436287121491201512752708309746056528478527800410717039881481573923561229227269912408148556107436709711818616003300460281522176115440533681683539387431784206938253313425164610725259092981698544792310789888631145470597636866938797018533025781236915925888351432828881850742133124941384658390562717994377866898381198795557659929867513421060452736022024027031515264626824806652357106259025830025925355683835131088362693633998945209703642676098862472266590091998624619627087958217913525713883497328704038867543300426034515891497617502998479456846192716014171369398311027293776888553501955545049908556945373866022720115843666648343952088494926899075506058914699559828881464894217673533177947247053730215582944220731913661916946659515734770546955049978599244445875063163984737734302431556219056468434561430056404668874829589123141200802944510945083384228328555892281826549177042776525968040753860220014923785209919195711086897397057675745863978962355651939983089271515599046871945041492511764347323168110757897008174544873107861416179181262064778220828710416361847954114798049016131484886055918689169091706880487908621540087398513433698522145328624659380085712119254823099038915049022756926914627546104712692224995656293753113875851064129868003706376950128379073766392519396659469207085436171110071848523551530037842064025074858777917120801115647905140747571619915028814477781610656263854705992735474524364684361309914224223047779049244987063258247897240964311329187445723359075882109112436649581775161729563879442042136014565794458516272086332366273187540377799221594373076457404376989692064929132622637606659181961902960157513710889162183054784478527239964596493649551851887274831129987000179869193980226927119941055369486030917908627900737911560630357447657932660157955163705593810059977988366401894527055495458611361186058202435144106168090924575831899597842000547789099162479792280841154189345207393747473504372726763602108705101597786791528636116188613010092102274067201625138798105726609883381506962983772254879486476213308316199057204950628178949904762649573261920878103392958810011086353166498904780553663179218580325652299642613384436134176626974849788680767461671494724566242397723960826782835154970070969268044383491133457494393090910057444352388374510433428736540820419878707853575459581447343142580437234262504246128987665315468417330760376792012303851025358484292736511743995271147536804085600947998115512248511566704026087734991959839596140513815903755850934061774650683926874884144058256432963482746994268545509507574711931233512984462705528897654233742040944050148815738531967447532318276830470118697462421730220599204917890908498946493848097485571550439922775554417223610165350444957658639121101585501125503263154023241750432344404426528867836000806506519365664740104899570665268505084333692219051497565811470817457000907581360186336580570711723337349011452825469345641039180871876707853230091064573961428554920068770273183099985927829374703537917730599363348882864943610786495400166707691857922411443223054521748812259136643588099210102522555123838780212343775508835212670761217404930946801658923035179058852107249669792867039084130110804151229262436936888960248552814021799627506504150207360565513608595305624512794853491650335274554191728430135543873228613725984018124454626886202919970216913479514870856305471936751342116153036392302063935787053982121275534463831176533202370460478391397207594210510895917837933493830126446286136041205232737428367990755574290963284981765696271046378242499837725821588614129081300472585802816510518292776792063423232180385085765131657598396037826937983272908688252760644374020624207058361004613316177581345998106429330344448284671903336813081632241356015833735547474016941169413648936707365049049838996064892028411026220064117956111206049691798113897755655079264009185423635576256728314208111095432888919408427826348606558375371432885273662775083477540905051189299412965259945175815985785494956569898142292688669039078408456242790365934575400782771609256596067963796725830841011871872859455783817308393231175025921546186836524350278446893023562904430782704706836077278343264823981555417831026188102900512421988012505847941979688127628251043175820967496344546690572098239630960838211773900957875155570029433523739150612862596600284720297187580656515536896148358694870599837403649818570260990711473479009669378897976182395487891484461361015683463938209244655260561362416639519603890980909208770139957362596876158435414109941036408347720676761023945215792468734402775140202894274778438684786918109701562522301078656727225567893923816372714537849330819204675337643738368726088453748972119447105288508776166139462168803070451730258206685279206867149360298146033551084709664756433230799986107032656029977564226053966234450133063156874141987185627039600927742301741760321332050245197339805727687995249365476983870262708851960679197802892071768485647529207883636952997964515047251222230796744388464614545122594840245894579061066698906865358273184610771407055646037310675281970309162803279314877713228007916023096072950545244026643406607159108130496762671474024116276072190935636460569364358227813460550111712897292233583946518944581133901659702199033276268508173879454907042731931135145937372000720221421412641136731972779897261562897949077199825488346042019202154348521646705066220267533062230872143969352881239969940599641427469683613874315538390278462766837572696277850616875807638889244980223845934811428647031771788156254881127626148138868225362403099268509006169407494235010297438143229373801472733138587785497194423644970835710333147511991821734668956293226558520199687046877198445136610191809864370566177023826016346304420891065515249088668276466207278293309522945358059281693393675739183430516832261350053731713270712706566142265234005357987756438194712098274679079586609745608797916817517623739755351324381481910831228667956045330425392713601639516481603066582773952965273614282200618833093872986460316721679542582546820917553413140106087428240519877236486658362258139174845131786792796555368695258871866526560558763192407542960986795771789622136563876331900546250148707457775889225277685038891255019601839462095021334392925427750545552954711337770242250645982044459280659476357678789286041911442087610199462344715542634691093399103263816085811669989013494352253789453849879171895950896678622862003737776986679091801438422096255524070860022485937431313060360252931636194005883382795905264076541551494799878844832887563492492646058380743074054981071270531273680509839267438453723200851044685197825753765701762594723358158218521697589554467273294895479343205701755596302192446530857139978888083155332281631324088309893193470352083703851195476831648650611744435101944834107182819363667054268637475276196101512839678050815373209447353821828635375593553826398270910762434268104013747933389490618580868360720944222094796122500835154098071261086365115641880734416102787871217845532230333381980561959363894210249110103202824633863958014411934832021275952095470400528445737372618542491215645674195728681063533935603194922047315797084877204653550603112649509631038733312113363493596312325252059290717303065473748463519077252205982274208741477634425556274234581333052031541219268890414339235982538034767507566246239441432336661415691334409848163690853565615703474112720001127452855680842186107646555960554288391985498780698988655904946408660897082718035435465582082783116595887214395657734907973493936687874950584546809467026095380609958916923813696929757329273388755535445678185023990291526348471093668952207247268628355320952087411169366963961801923944654775721139929701561822537197187535482474482814836049721113394793843231324028880609746492397143609033620928124918832936716086236590980316920437132742803453226595997020093804581775918995401817729918290417556600732742540526137424368520267367029730201679405180528462016568109548777098316149156148662264678851700110141026775547452769727665684868635432236097242119741208094701405622412100899652617238069510268692730291696677808587105063162812504412173290521410332184565308992025294912602319079640626644339137751532435804346650553090552262931466930512578825927530290417020609091453704239961195388022603441535126212690760732001217266482958041709549902352384034488126847957266188935139566772850625612131990985450577316104906009358655670878039598132034385803894044592054519312902052119565584182108099129195774824431982156842767608062137500793548947533496615685270044060242200737277687644915846517933127096129185239817195611454952279682413152937699509572885787564337093479801908175887084606278522247199427090710562715258570160661394679643787608579406203313409373032988971566233813848613155639252516154473891463157892113440351066481793796257266850169963467045917685869603047427719205303105255754811092076508714680627693485180755122901802024032558154225677730145547571982549651031140690696932510462575871318903817455787308295873422092995394641842876345837005868479540707877309896249454297258910988088624057514597343880138112355033038130621102694828055986248529859511207014458611051511428496554749555655633488143500137294932619500855151725620488890466126236333944864297168484483989082934839744784690773664072893502654398172949408422931934754467551204767984759808582271434659494674549054140682017232458243497261388105852557758279099944030074746345738222428932667927674819690862363113083492810343114672314196615162080613531302033651744248544046775291778194264091371349867470571542354964957435323202464809999361289108943955840703414544359929403965892912917216282961781625292922537639302918717326085056826506307503137534480391106613338243662033767167280632056370068678894312228462521770329832552923154838803132150184198838260450143971853349786726246110364700159021271715148388251778582103308073534709310527995405361859784992200011291168559195631035171385406197108123779504301438907992485873798831389167123454329824531322561002893251052659176587557076224398391027496654054068381129869583239158717222368018640084285868005025842372988991564203066786295239222614936966249279208412802331620018416484967309064476304846798731546120379445301760364255244461371029179901972041801982239672731528218472844799392108819082646760626186523655344329785476938192452035665222432547936281436340256991888234263161694952828232137735257656527350675826706064136650152770774284245980686848181008173510583234534819728577652525449247247928760917070294856483977557666831906439349218632531755499134728602847081299161183263582745938386828884823988035718030695962395580079104758823480066681231290314831487840261751444821688636547048580013830874333886565600613021798299576670442843832770481152105734281612543191071743576829989942091998033323520011668369414377779516383072530272153423096849684176576599268507195637539304848571097293830533188880005892680717179477895742256869597993336684540922635927744137939247511208027406708935578423230615840117107257529448505255398830488679043815529037377726346521664421251400196148890859316645268807563906649259892641203641344562874843103511525748514853621709088736803588574283311665292917714544009371556218511991737331538803896947763542335679357959236686971671843647349817824575274345033002713883230961620644090606939963256678952053212893899566996888017629307700375313421775220586432616989517052960608294001152490491403225634824587501509406749635184628996234642391955168705702418119646354513403341012886955714714520993781978348009313903866958240201707846836164904994799176308832173790285410959084689136272646352028411870312334875804078875805277251130123526649708058927890800362075251527912051023020492313690279332051371073239781835453003319228699581819498483161110611849458354566077365696550504256867062688986302719906441780741340576340115908929900654300364933583507848528155734432653452503577266135054179043373650516364013720929783230714807668971974682241431075247408682718017212365622989801819966513476747468937876191985401035987406786149289432276377018206298594945098921564853460015525862889526063724415901176423495635242913571538350067829125210674354658640117341863741080926593989732713834542610957014100480265175795639017564713763824553196494022560730055707468827850794920889336651599548405594262806825207769733690898794454384746817273181183830783386242334781979561369774057077468616306376372653272625149400608739353668393795481204238077123615351962142822248421706387835143395492689203561732317736980295414424565867115720461961619106715308229869906257452038109800235290876882655904985130851158433697108569641069089288063997117023446055096381349192062498231785347616781795492318580591132506385333759949404306808658195010622040684926603094481286023518268019459604833629888773837960374671336541670036603796759063960542154460499639106170275478632846749094990437753172299446346776075238515569484715691781681128488525639422233104904080445388693757849400461260496149628078111845565929582895080872878016336287174885624489892689732466758845567185266633348592021363124369369148112104312170833606585636180064118065390822520117693764252120259753143237051023222628813775861268886802551218204781508739895867354919957054262811994564328919975601183444393110339813700444056603851954377277437807770351826949597343496502013398419813816746696613653601850143586300590764168435521006675040918523837363719735979513917929145233429502633668128022970290743762584617939288689497818210837563524508970960801340102932681407372553359375052751263122927154821851472821938394177246629716994549058281788690861781282203971018338677657167304649986240626335197110875588169089502192956622731235582258327594930085996456918129805227587290422307816765075509888808812540476972083930569689047555951140015108692784699962649649282712292952403624347373834438671057315288482556954351210584351776282554292006275619884800950065053514518529878214526429947579489520576873784741891846488692852979984943884600533831256222607186605930440126649542370522492352272452168314339874454559836488282869534725894482555616983303251209962564175568590971197864787239633049539079539175554829971077844422605251438868669781916500150768305126384602303861601491618575144256511364551532858453045367711115582224169064711827117498462539680114419056527648972587700907572970219263272966728587377317381567907136789197229339760205024190674126846866727039749461093346332704490810632673000382858614704000748960183235659561214908240462054843883710584614452898731221232120059289600069207027504941120985252108260565564242332108885378691779741447742347152072806959201501243849534594982806800572139425886225245673045290984637625387767340346401437767731998689156762389485618777747005274558621695977982898565037439582125016723196490802814167312461321877142194528185649221629176679661101728894787410779102213294290932684886783514985309687227522543393167300035917398735902376773064719501503736726532829875755362177716940345191158803989620359656487191761041713686560906430590530667294605288565088092488265680025036967227703357619335546501279130853437108509872433626100246484717040604221155763886799151006535156521722578651797787231648818027836523331396848112995563517940759938648408898986214756260838184156987842417783066161364158599340497340637249420910804964576939979712218022745081574075095756442088003606151483656958724102557676523539084338000843252109067682930303916086225026811911053034590296928347788109114457467963632069953489644685017855295098555421753785498215465667609527039109474455068483379483751385090996644163310428255536678940048601969002718212376303257180849954393137571590343477775019104436124788262560838660337117246386270211185387905238361365452485028043298596002010698775120474304927455431149796030620935305596447358336830988571988818608360605346924454641392447438256705306510605898141258025871369464609102299866590205102073329894794984611704737083409790066636819903328042702079040389751572257606790761438196526263250331336837720329435711227267333455509443131074398600718652249577928130399984870334201624181590384584712168878694462773935776921499397603517569771154557759426937538608312483142701361876947635598474138390054400188674710881387796128614759772687536978752656943833489483887844365450534017255989201625846478704098031493575864056339160916813177589939875411842794137199505384146370970218098339965286670708489381620610714504615965460362750889759819049401496172702821239548084731756913021860959205460717915809676107178035562360115949730727424057505035793724440734903347172542426714395923458332714570904185303367175087477660712527557819893344584169374785073432551823016901882599853619647374272022211098501126383120931931753806774757398975882754960469676607738008168933275292321497471121707698112599329426363778264271309071478289232270642127251461956164119749973488950265385306395377860883233736220960696137825938628539983429369606273357557995086087644901601620468196309008015097290695015192304914471741975964031775085091194387449792225136192749895855977311399790819952129033861783861332889155160798254523448859529047933152451988822894284554644952071932898678763312395006545118694357260147634392590941309778849582750894071475313734484758485134886225051807312202045852367330177344590499389883617425325915475299819298339266188077507064655221232648714554523489662881563946078362404530001906230340949025905914181020440463404531165998068512798674412702414564206737930960788243025278007516727939143904640258749022390174763363648062794582302514127804344241917440701654502115295877851479995861022092639211797960563904955076676392393567092837232404558315423518265241839140493260352654484457802257169575464203931449594205728942826196464922143331311163769725390706438027367303180529071060621780667552844013524518236514799500669594595693453238303849656221089556662451376961747039268530909672934486984744294818818846806490466780426973194305620574684862721514758706404756472744852367688114835996218246916430263971740845127921795277406337526625012830795266937324198399407381642631383967032852882950440901899900841897848527912546817708237316067796629406024182633232925621204428853816633167623316499721957953296117542333409217011640573823836232097240167579142241657823910553533250093024546556705130392790287716459603841730238014181936947485618650655963545330810681783251072723322943680707589384260590859844022733044214906968215644059915984920891329525458692199111691069505691059581844836311198127928974585145967461299983118357285667504044014367890468499005075209432016719278305355365394826731457798537994119648390171546046218979736524753377792124687991067104089545384935155151463298758531414508714444959788740014664736885271023715609816130401617010500781627634398440134695133110548972071680271309155403254658935681490706738856841072478242650583613843673495237899785416175708692404502692910277423733065900042750266273614040374142128791915876030656419715165010853038580138076263120895617526287493026703382155071931426645443276209194980196808450632459435750725294112474737760538225569119914771718126999685800648489597371001218211112115330974633838268104988302012061566349503228862643514311266566042670327691345970356083949907025394656969173396189939889941344344602115762239310165198853903463625402823271202386267770934331013043699051448549326294169841366988210909617889247412200525080678418196039734656003958604267346006999316934195493063532403403707632767132926445189796155687754060757768115209771553337248669956769965159735233688521503822189672850882551821480981862393004344615286212265907225363161358027030604683611933965634178058578384257548108198599845704593227491033388896777623292743546200682334036100911022031547341703884433159062042055689067220996527531689951718186993307130379562470589934496511738810964028637097081301420702763651566787599730707014441348483394449660322505461048733351638829971064504670206632374549361429017406594678070867404136724524245710879501229819959386460886066064639306552105280555022531323498707838852999089411870681615418751829824255022550779959044946409626712488079697505306803664052410455861697810206197847294994798462847169231855056317315380670895048004327148898219053454249592546613577547217578734135301317212899764660227128703844400633555812288867541231338602036220523898617056558061920429864288283738908444900506220725789694695845180554872482678731084719790297410842611023541161952450323098495306349601656620677538695985582144176584575737738205999702865239929786905992276463119467212957034055595433040231016455111604210968077914458152210333019598881735905863507379931282073067395906318806666352232059328938836992156569999569188373236799216174952064265956663945484078928715300830582858948175375538121821419513460328677636155488593574762935724775675221557457497801463811665068127604807275222000004361735985684029373409435058158135630365215883732602316552739313065425557161536813407280666844479900463706481025011430450196738044793085133724968348684879911318174416217965362071537369667549410246901929229609721517879822558954953390062786845320470928467415221223187486930050869788061900397872023037636981838693679624506172472232436920731767143904994410529053070441084342647593084798304393004992177323376735753038577722212302045913202876494252711586797971974752391978880543696153841654353496186011231524887592144240310176692079008998301675030955345186871630206499591262864545959564920184353227847421406304062815613447462882780399570212644053256002961115628723528720477278946760926817333976338650235271971033734000407095030857305343169862429120718340984072868715604648831323289211979598711457746282935477544855390911964010000355283070812120339276917561411111541720924993207431659196799251736925796357852573339689305658917045206539177633261700057791104367303425148889307572857110689258232698306056823033874940777748675413728338219834278951472263119891913177810510462092615950472251472336456323517587148490816516774817084255200751187398778102937421302868092751259132804149624816463555501093230246193269809350651464471450494676211844167327427289768181482226336900173517977756497765867036645091077969621586055098667009622737431897035839980391445738651321542073563053714816117481282143036040489468552429501723730725651926003731356162410039434191546974778973941724774087715656230566026157875478644351079931165495213707097348273012737509596752476046722190080943169900622345606988796259231430035139673452331640882988334742338257637748383661334516537464044877853892906192236365211737569221532699277139642895670739656789685243614682318310824870600005062019699787296796641180731185958068926660100212912350932867234535997235615068978268124815879560047721008560049705155471646163485538789707271958359031651666533600840080194823113006033234582424748291515153729502095830234657347475604012314716480738853472834542296383314617112363758763329910490706201576869880412405713551707412825757198759819863401621898211318933126380498238093166154808369968716501945741817838855176872683086209280828886064270183511322529627015608166667963320785600183595556280050674313650843675508893732450258614157136857715586427577353888181717519808094208708784282422631646188191474982579288676888141320508618588953234442394438134884840505551598354660649041334021263588648217675806515578565923393744157519047993358531828012783273993049832689696061083547030384073912585990914953557855377366549736608871874738272752701603804298174516188076246265581313205107017244804670705252095711182390684479567751542021151618431596492055495704630371566209104066293928111205919391383647499614575249776365067154299254481232707823815196881672677956236139352019271910862583175100388404699848644150183897648155012489576397016288310213144498917420931543343410510415320935249390852071272087780734351809707931798941611352644472466261883653245706824451203309178722779680232911184698550665435201868463487602896618883437924880117489605211718375601018710046093614289341182234046324985689243453715044441885217925360394651867738591610868000059440242669176539510679890247670782397026832844925370988974191545221553176800608848993841335858864812493785405154098841722324440001640501048533566890793691319401036278208905418072068381525902948861581118960549437212266409649454238654006850798830784932005026989080247965826037200883366437311658255354588329003506127080819876398887194909538735502474823970318282863421016219360081615485057708960404982991644614027649219580925610395670643604981510488467115240352695372827117027644572998214700852698237655190421277398725960539504316710020281893599291612907675111070790312652373810673757811773089577795073847282602531416154319588251743434399448389225904431112681486734070166080554967648019650289506149230752869541185501885388067211112798684046552727737858260070709755580232318445887871306306369818081881805385790395900944882891860675720820670489317854941267581678306632051294278375387143136446530778670166123511844881511684515522243311067479312747844090449762554989640416718311670136076114020515756081690006773691824639834762345660184485861902167554743668585074825236280844627876918204840124719180705141023370377858212864172398609345547789052044124511849454171904667924695680814567527413931232155572953304408925829452756424064648479403854516609862264509800848851027392385992256464532056115243474657614740144920632205129092302331372755866395157786223091149923738000961680755510283820485082999248848664300497669058573012859682523189719541747700731341525909119673442464102276650074458009298707887330010733382320483232776466542266790217260845454864486268388297360693864862313269709968760467725502134871770205840326442135599638761680745908821924880428518499063072615785059221982381446853210350581479357468749815164376520403803044851613644505431810242454906662769496282659577982343226747573155978322905535371763905104872630483180392794386969850739247427544648792198932452759766742196937656888663907839677813762100161780244223542693124508654096343881347010762500795171504968364753954212544477077505960812153118355685550406654080819773419764596001029423298876837287605421603441771536301072282752103486832706163822271186604288978868843595663467475555102954748343769244944265839428664154723356258908323908446948955632004415239695146653121354827210173050751766400968303182477998634905815806456034413637831052822499843994470490460885326044521042314274875533335820419948712814915455727013317103305728390288826466142737092860628864816785068280696626431481120359887268350461938248254402159438668568871807010662927885135960334803699884279296469713742046868970840395240900944073575599940952789699623517578272674307794341201774647222161195001173193658826497348363805651407090685025269502536043366396468285925467220041235112020084740386886024196601803171708612106442003245901815002247171763622325676418493700835319128533936383143687186208376096478492051270169922823928511110943393645899380246161234717801452051086893842450016356651902412925246097278000060803339223736830606050524318573395861064254088644381827999361302501839997079378144653581251494886825921496998909663565776736744747975366752817743574865386334859129836843437605240965785295587299729299641627187595855031394170015856270506910156584986523034728485658261200240798147522443522011129719489966613556844104194771394866154265881299781478483535852084745822853146870160966391541526077819978660795681845483328240934114271986896866250642108082208466313978425253480653521127139159327563426532541038352648700545621864362533063361926991987472645374074603296428592696814565089062487665321360670279823637224055148906639666969839850376542360694934106349875434971257044820605760206774653892951628160865892474783276070580336565143930486427552773390757243693273856586008329852449318040282063339235365138126603623648234908506250029840199264915137212431327629254020164880573600627525011570335362872174139759152732151893269052527652965183305182584212888193555606778060679817826344699938445179529036810189268409335081981173938965805282482725692912493455133403768112242612324820913308943998573212623543925750597098181146520010919204322953867351605576043223218529253397437161074346817055246277221276042637424007236352874854658519180216711714450246601116093437836953413711596608983791981868195394322879242695167927532447999383187065899419744709432411902541446381326645535352652357841396529710862095585858417609939602495522742317135626625882396656460944462543812326085924920478456589668253153629236926577363074459054246859034859718547443691318764842953962009349354241258533382360034012360138367582609441166759420017738274838436528114277086440892439458939863058499041262606206664438930019789416072676443870765369113533558568189217886095974808930117835553840239015965332047458575798261296998537718654464501712747779735008283368436440864334470532932459143945129114470387563901596695871570143348954371013306999672328514814232805186582438829282617769005201468291724465540424456836208081249758297784958355516415073015045707203867575719578763529313807643496855241150133083780200878991452463325110044685922777101800269484700445825407788115937665711010603154522968330461000426254430147302703794327132023207670140337839381052528507017131844072602702647981135827922402843031430632163813536118963369288746594248549489440734948336776698620082612822714794540756918886315603260953386221108742271793011493670246290118118745904061604581741375464384378051691714941217027549034612257688368028317906579111285159578690574163338899179877720128122436726604014189468422911346961793332964670289997891308767791652276293643062451655812363645878351418683450011455872545334884631587981542831727094319593982373164125565787536546445539448300371824445561487956087859545279495972032195332444841510797098365789803640756090294845472462981370497105068572686310228156599984969561147116050870906978572537633659416346202060734179720164982546571923139759832096053375215723435386084982782654048418780840292434204851962555183125186571958259620790400626800927283550231332716139967935684868980534678436355933601882992776647950717847688564274388930949588718734344244422930809871104625693992232155539103638577315494730038047225202877851061105510236861425383403917619560607878607281034377758893237672628244941517764187392209222423081931270351776104477662444475738765952551243471962699426271832929446971279971079537844680695337990339566129990818752528571186235537893772257967046988579119529478766333400270531527537051693046791949416316189689953620097292279392343612521591874815638038427995263815616703818673980768986373026924940212060106080843513828508506650837813068062584703709709144238569157895204001090084801397655861948306878516230528324049593122505720914389327896058493506461482158961566057052425010390675227103180196635225922614227943171119088036668361369431073573988575295987911101599378909720984564723393652682234747113083857395255664087187351247395048838175325373364499817441922904131825095619039671836937693586326988921575305572438125724459449821931971579135570170182838131547611307508812168377774176372195718400162219092007091491022833815091644949284321697248339733825871180518405321951486672807718101445487600598860453796183863423982123158883069240541241124942238206443548834818229100038779749619043563504081965380202088565275795461394881782404053097453814284415485186459587923156142060472309669977934547139421389211566752352945098235907730467063423342244391100806381240240273373253949443436421932638922356017997858619144540496085385004137092341963310832326106580458650167829987042171057475334798449439657831120693680323919214914293972664023884498233206241260712038017318811838719685350362424692361522673170243721428410448563219668490911631119761057476802927358176873029787250335716719647445063269836247079144507880314947697537702706661530056323078227331455075010540099432656486779365428675097976380715661163543433167317194691989735467290050286879867951983731173325209929078812293514615288646650521536229333403721884130030930934794755824408304122902953477055641923043572179932535274070275852732129571033359689973300558769211369013342143382737171135166009044542758666398054863150932248166956897945107200259660142941761992480877852295794954879570693678053003798027584241030350051220381262276874414480154486296234969400240869424485590154374404156261443133994460215600798722085695031449280179635915327991881938578477422626207729522487848958321773568029329520784758693306867232576658604997901467922752010319365881412095431029497417113498020179572855664509882116288557637781669519576498400234756927007787446283015048934745383639850709930634050013653298068716621414728761030015350434808157568828598585901655961547483998275371960367181554826803633171482532164574462051568871477996408696446626316676516482115558299248569843805951627650059760281860879930257008104030853761229795644013057606605959082147139672323877117761804334754254198801813365090815230279572518800451591989057867418946076587721463017485910121506400019730770911781497085004064169430350032448707216478145419636116214376150632429629657345607964783199443038622249771082773217152011894441095398726131733198936929166883118205983768801370769001504576838351704846689465427263674713725898168923907485035535009691754613201844450348288216080712645599484405251983919596530811246410586210696258619269053109292550151331002250689593308154699760473937532976600678037907033586023666758030398677145500690013167014982873561168031368677473242889204550934690417141077266249922628416235911143923089363444453574272634752143458829687023495870889787700821380609815735004079924527711711523204027137806777835891109809123365750398254612172154304696908471147953369280757488277574496935749639737618907191416662479194805698853810968663031452460369684291710821359425169890032857414730557987781203074999972812740351754667343569145917325580217955992960610422517372200581308086441609418040588202908450352698589166723832999735095765252891834586260662652317145809832805791979040233499729605333319328422321553176894545635237185243542933647254291335324430095382786811884033817141656999542267186752597713073125250883157322539678267813280135470558213335976180677150604126450062473313381984519789341020779170195041901022743281888707549460846218990634497810628244116033459573484709554289254459716089398751111433688592856889156782368010246617156565567721785117550077974248593262590257416881906357422518434868417211563292356832041752764015010366439773093817029249445799920061292156350071143993219943039110297388841546882187708821370047466051104544213291797468525180425582778181716689478405929132022914860145619789782801533133835637067142108796557275780761228829938767095015326636244458882067257638397295301681347837859083709793853990569132824865141791477251837294701865089685311385501630852582322878466167855816255919731339599414091033506346890353825082577279715145360268096956501813360368709039267679714449484135051661500873423129206400358401281282395972773489239204425203326390035085446436287722418111365558691914460700506968448402252212420556898064086699707661489520686266606728783974697037888283944969037428195325689941151066299906413612309604801337479081602785987444209843500107114214394422204009370641732951266470027541241697410583267585129902253932056022038095293778297255107574008756740295028261459397123592480857492847649076321720446556905927616709190567440845800403795974476540079221392505394826214784603978675031908683940631937953954962614494064197172790076485534637046829347559821112977749677395478069903912233843380135656535208661837901486976755050964789663138776998451156630880691480161430142039003766015678863394043173348098171501872289457674098785607833750974882203818200161624032183632425035204160991749028384955550822238205931611078424216098986179565417459739212216945054655493617539374183292332139031651392797581818740712028570175864556888754744980442457007050970266569277416597608514453207141220062348237845567943583402196930086095663839806550099170411395216659119914491414506428198621742828756418202191987281924951686204561488677399468142235075636236126167779665614832305993972884368354155378800771208020286838013126370468942175902947692728033359721455868442563722074924800298036800290528950185868140572935740362737233339684452531884018152292203529830230706576621729867318586094319704459465079685709521440160624519157038386827972507129454827783299943633335741541900802171349356877771244313256154138390413033908642691669075194215195781784875108623427542304146573407503790080666213666757653449204700340754702778397568046011180602888175511571225305678167559351347085954055510848531169612826465169571007899604145008186112706066576623499482410310799528257277408004173341719717281332415953201089164079558622635238521654575344190578630924271909793734288210830081471406328612383448562198894028700275805072434514893172558068732256838631584743913847538807634628109499835094896759083627883473001459369989159663031133991924309008890078634831084789483607802972113056045702094851748845823951029216553731352094376665757866399676104356344903033775380201736535357596732160150663610772014927865476697723753059095371798062110832993235228017889914195685835604845476410319837721293777763413019660249581860553180703038795910887588722926091531155783525636737328706407030099967438163110765538554617757991006721829017381104795531164993728645246893012157401999187420438638235034973240234141289526914008565087624132072628008949577450839305587121117065524649759752725200551462121185739017658642273976420183543572926015572233978130975159888987598835637241389572728423860455261672983810938520771863949792592903099333083830686017228010146620295211993843782324045951577627259036748933561854081486378569424834991670655854799120553562223009758242216818952151272664003454057277835067791656899591153200635981174734690735756022929741228568263054226000390832469179551036001721533393289495529126678170132155843538071536426771090435613753720495403601381648026596024781191044961636660998862004635999834020337426963536683754074822945318429653638628640503588092469440351771694453518141014653460930193789258769769853156026410224463395710683897783024803329446873003836924604409004969286626290291988247058671863819528958477327138323506209079607168003215502898121110295189175522494114557644219190257063686619890674798090172661515565731145192187874261301964284504087539499224732150528104205330872822631826541581192812026441590662766126328000789591856275390820133864833048095449528777867204416699168744200606239045747776100220665671558194522749854406429416671251849143299188316771841538579378723669202096649948642469005937101696027703263895446118414411274222311527648189152585654817232523245534545670576078569711544106969074433469499228709158240553992832677474710318745018108569896532405187323137148291230596383535318473345107517762852189774782763264650768425186551477914174093025641439760104335095907381474345856803268707388895463831872568626749167394128090600811733840377903740310370822931889300993954596799690021713905271391816239675957511550478617982142848117029154899355697710703049464630064087157999343096851588900209846711656774996363683022074823500039679576902136149876768165459258608266125618704115806124837854916495668300958914266732093701897141783620049710113769226714064547329590066216392176679975874024857187745150821554545121689575697677876235886459044270450125562543256665651361811458974633244123495676827960037821825691285488550590388794055062099374762048870668356191650802874625029010639471744800059423648545204608750930533205148507279503383675046646203680609780684733909132475756764484460524427693888162243486312241930905811649425156129746147246286180561155921464497056838210154267806150187645229339397945881202104239797156342137436169718528518069067148730947042251407300747501752750237484126785505256582242502157427265144775088299351717294108919731883984976465119018789927468971219413884575539474907086170459735367426301308814448827510566221723434545963654319052339360371560193543159530951729393433777817110390498053954050514005988548662763835282467220560264158192677522034812363952707928954425894147397777167652456064060127341549740079482686348846681580538382535339303858683437347846475670412450914275283321815275149359955551930726221593317336669964148938666735411697266825306844724762374953047718434942758031548521228476927406721438483558118372273835613095533708566725574704135011021191233840005280385530523819631782740261182267603676844031739174774325650791635697378871385551701262108418133981018001294167556548100197828372624458367826152797993506418228883161332704592607434751442991712258581210558247635053544434470372523116576006598130346921807564689921950824928954173795212256468251284065484648857308595572908555544840141547152117445757272132518194748495195851220689969203925828520067767206464049884047513744621752784310513105210871234756529407558624354394258677961556011141398050622388910443871771948422719422475578905863220885459689552450455730646559253680171099222269712002982406101637904535681233141803648507731680717890740276441678690967585428007063200143279709856104934680010862949189728490134970354096906400321439442463605274236756280564980731611793873798602781857290800404834328613205805642571219817916152706813267188965275753126452843388334858139331512612830563003783465887938613316489961869063233384199934189108526643406100947658399027075659340377358479854117203026237884445034754001624487467225808608204593865770307678756984851554358359765825476891732488713989824109070143694919666751995178200492019582482100473450039814904151353801229189401572865455677593966207176288415682495202360369700509885225050399282078388151824774620796921055097619341100172407408624952332200607628844603648714063542946923311245592899220315809395503240148978240845053785779504227444982862359389091645515335237558301489009115511958012721140791997553227620261363974097257350268834744698058360633920336667340527262957872225606477635056313183112839078216083607070048234793288642544579622102084420581806555525442387821305752932860149270317723247673427872565632366626732133950531080562927254724665393842080488034748166037970966641792366201002873804385324359096511859860966849450037220767071689620743945080562375954494426504436289818864822600144136572882494827714033408755773427494455637429959476395999382456503037711847910018566670288230384915651804431836136728791338544749992204837172527002205735002042735351664094618324486967727118497931919860970586844477881105846881962317376883905704650432446974164810296947726874737878499951643313885310069211123773388021197149171517605916470863975203501545326360676015185556506384146814400074083230139094472894698556301367383740699281915432987698839261425771725073360610707382719759069481895605942892686611494526762961101226575732848101552287286860937275080142300111635442166756272707672886669666565046080150882873396703583269317072085429155515014827985819393449964485378596374753186185128273072180660771181759485831662191209312928451362005505265687616122621879091468974968418231315547705151663286220623036277691930780555299443263552704459017398709437151043844118142267615984096081711143515350965361775662053725298305789363686949436462870396926023101077527398973354178037695392023085646793088880349351150907858476173850871603589677679498742888110545306732051782549936446840555609535133488815685010559661120994302991077375151148234402370479473104057184083771271602327238905264645665861407086011556944243566254308465861627906295209160621270639264351354412009917041912214497106533311800518949422269311007538723745508339347480249848185145323522720142893131908666157987965325838751094982289050104232135252985819869048314944011229096910558816625576135380923916859949517444653851258873822575330281702437721351758394920147544442190015103882452309231004951324315675946639534747190090737423312281259380102884386456016894517074235167257431798843310055060732888648279588517874998076694503560841865712962871728343125338200067126930456068342878708268391898103159474329976086557951878832943978330392826904895583104077214674210947148286442097146904334419484880549252899654367970855370911546678106581996596774083183213041247767210709047171061350546741881307808339690758480739048352832677769623096826803076409812123572478743419693486967138476333370972814609859612835191153288289781722082409065008579163076519086382636308772595838845964574930606192362823145353129474471938768072635807544494137740440252357605963773293655145843547320767214478588070106063881793737691100145799772057855970078286565095861096718966527849821063513110889030748260283435052936823637442996131393070524825278635191262041784781631816642014287718152246790614451166510872382327150809285407068963357806603947313770022413529939091961507569964508684748930003889540643327050328257888991806966202684391748710420576308230242194604097128740108128960013118684558707249324629558065526070261951319004563230753778195697353716592428168703823460972967878969101832866167329898052300847027818675045094163929120276970981945068668031379301868770041516333966482710704480818640720530081450996707017230918584292192243867582512449367277175962724574339095908289432876025531450473094829160731902288854709015530821517523638632218262708578454340048679785512100208466487477262639126405250983505410876729524158239957975348023639434931043922281196012115218463187942246350878840656850518718957198938050476790770322704966247488499517986871332560762220811245458462120628951229412617992230477346762762280123398304527807303391878188625755902662043118233085104532420017019739242648671409837507707830543949526950170027266716516246040234219233111731671774117917691612145140772021346015742101222548486492389017913743032692618234464565394170836973724164989765314058720762407413205357165784821635910699660109069841282728093730640640328026340300424599892598177263899129210360932253574155484741372385094832172564422256312664203056880196153450673178244386734047882296370134548199579389640574748335907472457031418083234514445646145733413514903927319525333669308742622014341091448469981933249837993971165796491922011119647737499919306499680112883397455951011793136311874893111513630260654259840591982239711780720692730227305959811626431667733830758012592240254677305790769848660720276542489702699741024110221777055295136802250065032045058395799695318958948334030091106985999155072529676403445113050405477237042554271038886070486342825364678525091565947983280740337429754333601546611721562101486026596539505866501238155948352118906711177923688889587616997163458532277041982023409835414934284640860281036864932839742892780744554540349284337616279978338716278055800425524673741224695778457161216127158015536218236239174189529643161084459898380939146447499654820824126950078572112049055344552469019424000508701476845236129079462870660856567805704416508766020583430988723867240227035139505415095987455672615088062452841054884541490287145367217855448529004801051271201015358083145521225782188199743780603381198265867269599967430236436282464887188932935575163183099423732012808122413452263307770730644891417540558785774600094276594741112549961909272671990586705498005154137499036966215647789559720622827014018809387275813398940020265074718136930132525616961217381400030744249047313260714965527911505980464942348254082416551186957134460110685765942538642910520700138378964601661602008364843371541717335867090739685480536016111273307201607802361506756078230854411486293474791608276533673295879445908746427513887344469352146662829310137424787249097347821041232952558561420562244485159909156729539337461122224311397068178773422709626185136919311692499373751507599112184268856114737990934696456000920723133956953300808003929609968815951880515603985561766626598831690399350774270010966240582375958017871412150994825687792259060595756370622382063247902605563752356331056275411555930583432201821630108676911259353780627973677642504454220658300575811652734449391936599529611857311188875519599427058721762098301913220376058341859415809988753318590854231673829373383162776913868519500903637671231198930184628205113836876062342766013595043781439730476819747153428409024848172167234562147680990373342221415514961411170070545713465922993077664795918379771374757765993113749339009521713994664913711440088802276504881166498932081286552689775132143149374793658439995655010798536110351290777853192240632213589759297654548730598881946678718741128584249335226680641889987567145215512773519308681751274266939419080916468768891451621744454377091058411898665936162929065320264088235118913196249966724713939594171351670842027885377672654377153331234444236274094328581771652983818577700080374187462753655612470798620745282470092982669814367319892021648265834604176100456912702147683215252569815630788772980283233526855254141342165907111739212984512537246421927407889663414343022243179325880288463122629246417203783817261615308742816444719906868091070163626463318804131683163668629739994770362629237395891221333076266510516845057167452982684059820931224136936193670799763158582863440849902482631789028376195211630479370042466857746495292984167480487397062268307012213688723997796167495918301679432546346925619120123828478983555876131903046830430386786827787950954787414665643977520189903460057095015904105457251853866191748839346887274800135056608072119485108285880000455322423633879032903716604435808883961086061265211063811356843938150403299973392188791284331138915758791130528215069679590123342702145207302788096557414762661564989947369897013894641095418943594483334695418449006570747156925239336415741047134723468661124968144244251370230866991222280219162827920063599442550520003972150490340807216258395201702186512534196341565385160741985432260558341441735595223847158379750294232355793914543149550606318843993004434295714760118917545183598700936990432259592724639408414240400773191718094526545973827874554922003048043774140151274261431303995738086885030546398178406202951857325564470049916145979303521785128360245446181300047171458477766304749822727334368794653702631320026439133978807032829528797241101708255114486712420457383766386118374215257573377919852440812123286583535553875558237901464915792441144850682677016701848449201327562341748091136084367788018418214770630663701913991529073790663451077210743464471474618396122956798546022767173828633294611167220451485574418299438234907632575473994253531454611356393279755314565965455793226286085642425742040423063213033351765285449660805023489179812408147698624404285521703818833886644499398620122462552030280008635597717685948459857484967308109824871561071184956710784771821681289013208224497617529879300904967457708076633280958305780266369327650714622827790423835587746267203467168899325009274640269642855884920414947758029722834236521128897663428602162295305966890172160734898469319141057575312543219938738278504830348009109511857109868433147832807598019334157276223496190376432480337287576673807420730213489768736702046022321670243327078464903309558780169261100007776752081151668168367908176137263476171202104319038887229519050422288076495169591812424749699032193689410844982034192104834212650286754655723038915618805301036586837049272135722675356692251799431791088194010003542148215561534321857080695067877415660773772390171340819515298621882647860562331815295156936780771343649619127651388672055058750754903252929552680217584482905199970820817855668168615549988766047574126278717359609710559323876006716276240171658865457507370236626532791104984883622327540799468285463388220288874523429234115708766861879385374351857810609231745879310254584430283201140158336621230848026516400213847396327063584512310536502965560133097416847511812965951919306292366874303195141743547568400511884640461014571005664328446784163328661294886188331345371420867070855170793507635782923718892063210556744557091583674993901198310676131374387807224830788886878521679345800181787676196409549863222804174293731029664595128402478811211729733477682723921023290650608618101713198285983534058300198940766042495863621226667692133110653823461662705722928193682292494881724891892374455123924902597532951155425035215574030032680009295997193494533124612677904589258952911051134741480065525832364394999438207122294837451205252173100410072374657747203264690474873904543775919447007352017548117958853156142128547123712952887423837966402378975862420509014337705225440430659963358573619586931021474276193752047250011510440847791851665386350116782390143381818840464958539823068913590829677101237825865347680676387885934938928445992604574141838249421373185905858699149924979722748178535922146699743156793853640459919064216124780533950668853951335975691702951938430085111878129875992678640778352552753071242473897688175074468061905081422288689648816061116605618969781857356542054165837938911135114822904802428498250253497051557438905498050638301289978107750337601136494742820033454075016824744350132017218277707601224213020480950628547229890855347917906854346068999020413247736468156898726072783584983838018461105167689346986505014620869503769212106319357511944659441975515122052951111729548308854695833597755222411547554604446614015215581570365509182826471028071489722634368108114590399342522198451349380879176264068919401066389468448853694519119547636977434987910958707263789995021611038980332044740687464910191439448667916086114201993663978205716112605800345172393533855190322271999657963264160789849398817098327794870942945461506450306586827407858741768402864651579916740536424867581020025939300305122332471840789908898566029457755524310313971593650743617562248345323969344127062482618084018287679905013966942802000602024970550513698608140410727985461464229993153951200434927038306357732514171497984827544391283360734005437187369838160352099280936396002728054447825717872684084093635777145747714306742230379811882402758573704063240567669710120544291619330773499154506821932952370722608802908653259850232156755349379150032116385561035755752414323376525606121783376347843910851760031256298728262178488512211061580970435462625509150290101904503223289344751809405849336098011950129802545910249050273699068114782075768423424032452891228725677800168866218470005544090609425720041202050950741287542085712540361204117559298553229220753424807529448151801456585749607924923777472555194298459902298306957423359463566268295797470507418810813291874793399688220165454646656817813835065841013896982721053084609125566744155689876164352160511752142432943899348252748053004995043315314718225001160664520086685916869842350334193419340458093469835892734330293611088683480662298254054486415945104777111851880900716807617960861655995662642908366892980180839625390475172700159040923997896960431291564590470907292966363749703144194707833978383015116516215272695787728252338070507236901183621918311615952010026995773779126685679020443546679395760111607556230069127652403897854208318005880933877754539421496540195358778210390338047189309053089250450068674490128145701843526825926119968489343590014201019096166752439971199114525927161896787044325390807594927214793821003220072476505618729510688825939662120785701341568972142835410257532359527491536689231673601143530536982057593875760080950473733109012488553460986849165733990228136015674958734148899313978179439048556949660783874838105791494979147485031311014383979746228637637967119928461880925998070737636166097972917987116743112517761852808724410075027909109429023462939574480311364949748449925797577403987509542228049274009904125397871717149665614024866799846815029684291141867532425100331841303587468533219338113502090385186798082012993465824172664577449317624133341252726453903495715924363200952038182530072502419422839637784353148197291464660545941009600646743265907616146861628032568191512741093846530007500109517867757840471418108934612620159157686751716950898673443382456380652635871690197823807930885164990952375111308887698431406129593412735201230485325396622662291932473191061282904513704153532563967722326073568343932295965519065342351999554748054339136889663942120429365608545889417835555475608245027562928088581490545654380629948121144076477042835903549579809024813282444163692022035104364976630622612684261373521314859846546476148520939474435465558342740665082989222944051318434321953217832776468244196664392088647359631733105700913324430605039644757295589779641951023208690264106776360641658645384808732364682905429914153892451354049461760390893856122495798044145144710626467170084810866027127408505740196364312817039944200650853500073286768137753810084405430569435392273398846791669696709223341306626021268162575333261099590295715810683420533656721079043604330400347888261296169754752974231969938380134272369829878696230250945678744551194130046655487234331640006107564951678747805607439425391398180982649481579313403131155707388939734771666290367645056775088731494462156023580600817329745393955919069536186967199363527904240171183476099777362122364082012980795457824066596071202009921204832940347718892271035409799450768028632663798005638137389554056652925240934706114985284357784522459850745100929800308473943897636532261939915169159877777749943762329574966133133419420061672848219213192527030183302377427852846913768038711486114250356207689628715298800334193199298293004211045156085930004640386183135725429823568586460931679441446138860053215284875081250398197345816344813140621087263598044392051433954357236626471230896448539583662966288807818248766595605144810344133126520623703926969283201811388252666912069257880684645463613260112311056776977698946491089874127769552114012535471346809116218360371518598806586697017358531120396925258004193236824889044582251104155271548473830942630728151556883496025098236355426105261263560662965617259017744199991017138664143524341984887965242552214656740728485890561767438770301448598594309363155047555396644154219705932160476445440645477576531714377608200634179015404651006218343649996454329816969985181355312514653923032370474984550608690033570643227381444539191082243541186710070120544775682241793924999747802980977763872888734016050096488940901924817458274108307872866585229229574624180754819848833325403048414954812048230212308466698278034588702224786823921575045740907006565997663122769748708705077518307009876163601711088166325015412621884582440559886242465394950049546412851330508321681794140188232655480152408583248716643187213638128926755673759727519795945501642920716482496284659428060685789601425257612951691970188512246692491205436275160945812310916647225106610380028837963984933860918359188606147030805282065466181662018247995372929044146375892092358890469372428310408063474950448325244581758960660372157188333149370589972282818040612943676602473592022701487706570926643291207220994955213966486180862132600784963673987976166620353375785057028132823641883243350707075961413785929596955486055482680411129030176059972986891166911946086084775104917841065761183483004770481969022882309445735568894746188367174958751584289351479894020974165422237981774746478730384744232601987455623237508320357291084190641985723618586538880719069204382385060320060705553872905347432768175201145099896212256128306058750442388775591565316320211707024171894223557792695772055863302042402263403480824502001477032428468242466792143059264051498807844798690585621719839185499418061795165947921396483916613669993306003813333822890269056786304276478638078357903160460440860026827763394000667858889353055951018610453148471338610799168505148999182356687907471068116516715213831855445179011562085554364188201490212930710138684341030613640713372429843947626808630730218408192542076703688930092690548252847280900046333601156683850956784226643462855128770381146255213196789858503450331035916261351440083560037081123626898369460058322140054737387070433881015458617576373543839137079014283665886948894002586069975878779377514976791995577057479862753207460536953566455048498539456093851536106361165780487416638659336224733623052356953532284321364456799381485007686826571794040922357345809613782689469183713538924126731902468499277250238096803802597213838165702930097547881536417719664604095901708429193816869849838114436324362733626844604425136267496573553688408592821092478180613851598612873399469155368324512155658311551585667294158496920451729370242095833250130415705805214594145878352816570378757283039422556617137406914005894384583116203311059233039719414740794472686758049600831008327521394512975830895455929973144414203316732322309688033401840069824058900866125743853121627431074469442146755238270099802306669033368964342351435261267499466645761030268152110757653074419652380491992159839794587922821279238986374300864175547410673556289842977254931366231246713800351484461334150950833362064555429389002414102502540159380860002777772587287671462814628257060362318876442930630066134095948557625524144426767774462485016963841376712690793305127274172444107893616098500159671963781405850322306783474591473508215129011303304210080883342513194984351011169650271916740716097761090809507513741243824609585625488411557846364117585711070287852281393471182666162329194184311699880188932130300997295326551267295529680275787475062136200572746953285369532461760324749709883873139475482241056346852429153945005130184714331352625961729710857943185309140339731321699480058859510762213136738131241843149335625052568642471701111588615824854537659196212072930136365581314045871797032024775538723416040739056331651057235454727324358876229002216213977656523982937508431775657748559028533614170697606289586195363526439631405086749915810264240676969380531498283888206281008189976741669259601032163916297415447288430711132770956517037681498197584677140515538299113270664176239836813300244953324130901075452220062867365315702984732560052045376588630969655322810837437370374714408388298507456969168528733408365555731333235395205927565142140531649694350452996144183740418975127434451536311106660500268250027757825849602293143534816248247848618228417212080879584853352268194168144461821368722234378989162277842745103797359306023656643477057618390676676967351848296488059239042447249937678500941985897680216374345427931822716150716264976814876717855317783113744609264532724929520360861777778366974055046880910819321951151645581013024007269644413309004697754947818901277233223854461950845654746857953151884770529954022604325020184691678023660622011786220777914039044581593786407736817451836054278202993662319813437812696179580643318388636199706548307642943973436528945611950859473987911888877009807802478178900711804263575141159581155228611933138686808880402532678663882685375683637552281313539077158269019639949079691517466712760123497091970397106264323630217970728649302380114351135935421334168955116710507520819014025938630344144503111556468689040444011567044250221421430715382571488704413829296896691042251714524136619369388562508969513071933735218608651004968635078622603651247993182021428470361282140767510433141838805315037013742203216319811781225223112353052661235925934119304101541847415480317056753866494908393804570131094192701157341787102542824593683449935505526372279711949286820313765686407060932096009784376656063877780713023715788675225048462256433813541918381239295082186493273192558286570304189025492397371330799865238621181100467511552987300295211340908423737362945171467748588284701339117602721210428200143519259298395186012215976404868366330602184296442382008976773098954791650158999623311952068501360164440202040022042268208951770918107564821057539305087866565972476833591173348754334153210704432932416686333933561207723911259808691540524441880936411873634126094985952478614182323544914771830278191145584462710095651381726874992764576321106318481994666973247064983027306005297492349551956393646869091850740375287906391324809379148273381784775844148131217133238164453447049253511811592324605887871470755431701578516689670900455200796079681314998964368543644221319109045127454396143663668420836819921419872904676096743970483363275848079042581937425138611406329659031940120309714725468212317476097305941061837314601245408463481162162415490791609195811935109224462502318141597668772181606973409502587173194845511218828578239532597836478517107459012277264389328332731476125994103868488765190420148771499445927463559946928705761353615310471309333380545202041058652964274659256037399716793111876130450477531254602883726416728928244540640195465446295874421590196480527210138963172122605476278917657205875685290985792903919777474953623878019598600476728120935363008182882968140108644344760762328414188549431068877486521877031970101159475868805595472188351155569419969466215691585083851880108794406836552610538062476486680575100490959300083260526872893379666398826406002451059741390135243233926375626000541313594420528435136782649461511240554887275774136775597757616787948689575458540407721970670806647904139702556051519662327673263654810616993951792508009468077263819900613217430118295617931540480401077855690071312454719201562037873356131940267866182047802757927182673476904632222060665672100019641087069776171921307602997165494400367852061731849784605307086267703150169971805077354467734262628543594439276827213757545597995804150469776436431100530260800978223758660015123857713561029757828779429471868497927132891507997355314111972663614916923418898180831396694239676338293949385352184180836988449338345117192180458724817116890790099013924843823598791554350177832616112949087389130066505519143554917021441676181510622031787956395357678056712997395855645651950253872596580751830177313273014645856707758872155530119895434488230150831175351545052633891874288111870123450361202082432737587382442067606504778532382683775303158293806810379792477372398638279089631721485602444457010752420584146200084282499826735859249948561290430268185509952034015402425005528487420018613042158289511029579040677356618869337115478336949171868224142125657974617602301855724692322805843800977327276677189509676307689710034749512049245752431901091877344654374200257689621857984371934995673502149331926491379229790695109616714845985747867461398792922253493742265918354402191580971036343251195700218417482159766064422318836294028084148943300788353702095347449599813760050948826078220419526647550455972302596155269126451704890409643972164665153781670314811079196457192662024968192526063898464100253574124353645112978802017577161933912371984693651482773706429680178337771288353868123837565439437227954612948692210766538239113399651591761285652406030457892528365752604340057594279945623786524800025309649450748350776965493104069279211892734837257927875390147309968055251157472660519445411002537309713825347752248676169152808497908360275673911325689975882244831296903231850336737078574595761614808250742812110401532321771470394272613759540490269362163238196479582921580625857740186684337090164634921411274456587621419765580660479412090778152094591579952159694954090470740402989590900591264609381436268439689943641170068377947300486287939123903115308729775653995426745993801071416946076801674613438885967635399632066987115181740469898697031357264783482346647868919959322879269693651756333898953422586891039298481500862557958861631400884423570889830399707370610278587986280670625202324214494454423278637911080913082495115485891284050499117205017598867839956780159196110868203095476445950130322597203201563912208630068283022831804561758164521559789119416927386702479781548742635007121035997729282276871017983346716281092333001395836764029884363197216013265924372471815253855609996619651379931665837376553753821729131338436757640481265981411120545039660401343633344518623751514575786832305388965654220763130409814166674201069118541811265512074923668882312658083893545337455042615967724091530160874896795831728487624540331268729312214380954677699786049456639032086479816215804396622757648568520406994217792717928551046003663321481665454889095138680458194762233193605174699310064449438248462585679411368136948175953259340745010170654844765758861254381792410376647861499509568605901753077594505331496926445734039299429199646190771719240013175079130150482693319856847701794240293308240793931461026454192893931620653721040884642659237482892326947457577848221436377989027904569907611441707536533565528989270141411327759283916984846093350228323831371481254676446240775377488289428239328174502436638461429244991115918018395784462671949137634244976569740180562080853932248228524336912058094291659378576550363027056078620327226689961334569803402519238734159258834944482077189212978054827780706062902248996759248770443133418936412759767710876101514900794160452980202217821930795049842983095652476033744386264827712417976111681224692013088378713322451735194883889052383708297947716027496340712723260124229648132494839740285323524799845545110588930134765217231791555634342181795708306866404610410375857190816297522290712205825562131259827947444801710315951723892832238862590299801750525953113002336727906042189087780865624048902621677119979801414077381907026976305132281445526532724602681653329535489312628872357375680500638158945240074979570931901228766120170259050727990738186683542891516813577287575588873237451682663663884975293465105596881157139858856143287096515263501856189717955767547514187197504553132915006576683150882925803634375294915038921704176046705780986937716216196938297698508658556517147633005123947525396004341704675531815829728974668855626142913646901950219094230922756146706956785644064300767763489467023673401268979243791500557357885542407296585262629132075196188420819034132188532179458904039974749473377854673619670646327380342879130706757396642449918425870693688840014769507662017591332079097946261958901093849446860144305196659604789268317420244472810101042168367468868887724063855956292163623312762617784713571124249381370667540550033560781596753987422537659409196384286815325214184835787484205374811545903001337187051673315654981775554561616719453979773240048930834211122801874921366304976275111491112576474156918731287885904893832369340927254736212643914598343467595082665390399440151433053773352895725752935772155337896336227060368168563364758306192861439751775586805761486998072383253616579258950969893998434890592398117835746979970048710735395128069787317894140902329946371548889267245617249883567455957583768684015565483867566145989271302858342040843576848772729441034778010148950216261410538626548528769725107270462859406529860256544597788326918341046671594957145487822361587786019896498795464160562166512219564519158657163245983235727572535878737538233197006214536558121969996914341457814397417950908026691513162816359173339969196421220049099896806312677755597631892930767614539444887353409905591300312115940664685464249223303959559953659388033201652649777967730781704640829804891988052950469433520821221751780606332991649251496386559032414345423183273772017181688077289662938453798989040275228581366474432868553509572517654657625190433589223564749623363854404766331334279355186491338993769103006306444126972565877518694398141176931665126814245570880323144793763829948004547291065014156668210049499122759796055052610787112888855332350068384714665197055527659762773147276846685222338466198137382203013881412810142373674293823904213746582397642977058037130117846672388736342677331658712826264606800400042603661471087688355272990270886241604942331176869524108880457419374730471690957390210037728400534216807499279784602304710966458539206044325065630830797500070587454058323158067125870673411548743755375172920151066102596882104909658340860264127835706105358627458157033711894974689564403764770765411245791517618605928778063593733807994039944690484042363431890397258620867616218485245849736623713322477447940895506314873561415095486594092809695771106231408610163837212872998273496494799574583423693141578178686751413060382227846339170558513797624583022618215685412344136444759096881919010066739389410180827058774439448659819341012285638707847449350659711695446383902298161877353621688013644345474597605683634371246556046088046559975486218428322012322148997119700492099801510043635012320570897364184540403347343513970167991284327022381478973007242796716973838552201798360432977938167525359157201937360731433065237909022685269014802799316090320048966221665664871341152247950739432674475543435109755374312313723533672863966208004721685061842561839598213652003749361069110307811464062311345919115834987955941965303358031425557272636358045119817242444144639117775556411416375654083145191375724038861000348673277192758415027689214853285177667880990300025362312571535672317893764663785850097878087409848675875669531471922860049811775830381311481553201544816319349024996019842940469064943921949405921036276635146461027844714237055138791310557693773546061647702660475738963369968419155803861220316535163118019197229812758484582675084011132939433421424661472639446729194479290505092542331436353809460126952676706355631875055330526451605585651171986815430747244220974548271221325260992063895640244629377350546239408316792476784040651665834230026345063405524320699517353040583745368325674045144397765795668223916581404111561422217181787531716077104431721934793150395876716208026588275083756265070461615925627148907305420666680173178050383772809673828557411651558838273762314438166887588939889340880064080162665706659986007956295987369062771025287527861699543264674675154833641047653990234362705733464065071838845199720886683358590722108198955765245882206654898998816959441938250724979877069490798960048560779964428479855681451914837498207673086163783230090766942874241526037933624603791889175343004488174258515643522761496314804159921600416681479923157394647515222424542778887651206831832639658877025571536402275454938340289621886764719915998366506717430361161827343712391925018206016213872940469133626531827922766945196454349813513454856705316730711330731462633575722821315108912755545175497798255514395033873664015795670128332426990144195436071195455856975906296175530788288289705869310602558292357648738231783558491300929917935936442860712073291437974578568478160901785474255138028627386857934368413000158588998326481804797633747714888485837513428755692475021104855993563743329553852648795735299944510054311880726235515415751296682923296917645249163184814281582447062687160828088769183715356570669892027744759821781699483213379523222865451718861703400628628399139892423979782922184839485189632381546048936291439443779161758574789317974431606149210206676106425040744717232640354900825710389391636790363543046879074042304322655299184451639763650605225019852441953643381560699375382893712176759419477079059978333505704998071051070719627532388780446390268347955901913552662043589746945564835934093087000775055126921640624427495613117310309518823301654963338804369790610223981732744045104901409123027581433449697142847255848927892254394006515064856465385968363734145335879186194968366278695712779173101948973363405418151850828668809055459864089914456658812171598276265828907578431865670871038925598656686403436666853382950878869293128146212840477333877046710978737280630840765186194385864001129653829001625489110513549377945847766253530766763404620617519975865813913008121159783954029347185262286900381662286771916234536774925749455784904573852515661447175183163116824058205723850844423788139844735897741378468416736470016516349119504008263529379870748601153655238185285505272851065258563415717069194814128519593664093092406115475569630943958910613596687670760074488726755337609689381458654207542242585746057275203759703004408230064139540749241867734283650369041429905592592318817977825053298292693528850869359020685739390341194286161947057495280783172418823887703713266136346223759503439821175012377811031835626475576868445684819516224585914351421446783594478354015295598959857176169315438919104817291702655931040122356171518791878400101482333980077749530822018699094838843264254537930353428948107109096793292175000139563471416491439733746576418069031631656276692062080966218456788902135897907116337201571040245975336770628262880557018437777912697791866793906422648315059045566943476323602178149779041297076369300598473440566246904501833329658102926329267052427679770328830569802759798527733766480206402452535171513530807724049343661578025894912341423082830537240301259037492286793396640278934984901036546313241151311562297138744961427049089593579745583331402728828261414697166589589166213813235319044760714803020882562051458167844680517422420542082789464681005986810148626639748017219880373667369012128414695842690045325702424458783231023665506534095528655076016156265947920118915618038851317164189264261143242593572294149094199884240765334150363296474334561401625645092191770530965856451559850854617462265469345534716816521269976620846952017600766210976978354291737063719121038508473477150393480756404363324961807569922565162826448297512486831894483020558275220637438663507275524454345288740088123563899088316123236911175274340600590880986823415828185183419018215277940951790735327307629085660916720142685389983904730669802126033905073506359044981643480232756134248113710770350071656348915007230543599482805717853449073397464516140222708493199925558179000517592509710538197021372511791525444782194717816004904315941293282913100456340367188812977040135601048060046171062621531502147342979080897032161706422884813028345916622492837685369020221601282869425202566793678901877303093407725884826763461663617241912455980460410090894325458449682876504957159759378151633503425745326758779121459900175947806951202701695174776693175988718360116995686506238304433393800873370733100747207654368172263549610309307179735512222123000126881317007576745876515528483800540113814887679731966887511577985775493030925804655311710141916005069768047841560145637712080092828113476293817854898923642200300025481511210976565897208036204834374137976084300741331316825401256966532678214205672157930152883212796037459663704013239446989986635914889055209842931458499410208144687118948099288274136533740418576351129336193473953094621490317284290266436221417037001111081722389712979338012614883782856984087817891893226428498264252675840509855225692862831104787439910566899926587306510909849531472698033863269112769941196276404623229536079979983278553808525636364333815971948235617601856905444075514994201842967021537631015953333161743654355444482430280572584155909645206708627182031218113468532748282979874749200458184624684305732974503978482388428776781835119073981993060122258964680634065460172140833122516829082919658077989564712154065255052730219534308018777862029861343795740934081318536457141716567330362916981329798204435562209555715687556336286533444815717046348999761329923825471267022449953495920328672171828593588931144892995348640696410890806895897797847245017325304771696638903419158621152816396672133590443565198515273729853395924638391120368405647746227757633594400998469249077625642838189520528685754606318582109400855734002370650566055591245112844494185093276204068890045848424653332301876524586704558021046424174818930146995893919747489450447477373197828267913666936423319076517023680592777617363854746360419180128538828697788439245119275807542563100947898891737761632884672917765282265853989378043890346948498221238636792432380941606616336780372905266405061452144835264480833569598143391453862987792060719327651909340451650718712622786101943389773978063935915706328457479700997356862311246090577169482565653995915956235684371653992961033169812016564182801790749417444226757834817499298467661634468548241870807913511408526083510859597289233515380829749183854603928732796349239873920180305206839431720186540758941539040566474331067118766372797818663412170792328381807719240015962346880557758304747837365650403644248928769851932016903878493303809959102447448004491673602685111399649324595818868138460791060864186371557821899427367987713006356310244743991022343203469820628577806866981284345353737206879843177693879098259552927224871774693621529980131446098366014410063419650573890019503624781116476438568209513096316461481789749177367300292895158374925259684557006647124616559346565461783064528299135004183048079576739720864894414329475107530857109239350333595531863787211620528150831515327811870630690564188986616911750052673111725247085718837910652949216097834407040047835268924845828249857544518953506087938542035340487532733593415312215483050189359655484228891238900559453810449585779286627462642188412694128811646567881198610437929569928706654511380046750714429277433981803393592467396744712764093188039957483237775606598408819542378222045411691243518287519451342633440899161903181670195922201613348466218917062714630098542367904899699231003634442563575081377225142320050061155545385301828292134923270749944501763517693620014077533712142198906408400754274844865436682312026453168206645117850749885767971637462936585306889739333058326085626060476334560074773721807241288500499613803891287816937892680493641391699812801029897392631162331237924781727334125105741801369629491024540613957988257895452358869339021154303921179270182726484355363857346228633205517650257044400695703464543663748222440464147683095205380507950543459048685563369320450551122435956630180681298529666579946466256148849975097230697025087631853008915924448626298544588084523748109201639738777388555162497739143703524267805898781219218433251348325387802965873954358588681540474418410435249285184711149800064863158507981148323717776741554666703497982010144344423007815428829985931964619597199087148375322130160398620193607978924282853908055808856019404474696056231823211662219708308495985345839460779662610294594214818997636516249591772380425148488897596749573339018602189740570281025015888429527571369178009051564006911505123577184078809259043357103973886186056262159428759287918041478943054482850387097076154258956345479639027098570669105896953294323723224751823784083560727082132135129026648394603600248902958392749492130632792058533515012856525886197759392828613026580711497798668493028494361409540497698956477501871265554969449089402994321750225182965936802224437000748132701071529798734450615321931577517802193419548556301373599133922998236083102998410866406335400829370834065221682305673122297595862016329685995121383618485535536093461079977283008247632299500296276009679199037471510183806941424081275025344838649516767284827952482485766476582540522174858253548218697024302548256110750477713459439758965606181972169880894400550527262908736623342382130549460768346691061034622073736492227462305716978257119119739365755440916231093493063888357371641260085945689947803009259294530955210758242576910360378143018045545163643471154420899726132157995855004563484307465583981551486265777390788746066558264146556278445957506555881521406018304448605947145328936489343761409048882413367326283584572402757718548839914703585276627394194977979960554831628991977956119787785838532918240700824589604900717640268076468883698557868120529349191244172323506367682184391537501097569947683677171130725533964171701413790417531566665907851700229086981486907453639867706547200375447348557930230987365793949205012912514527329456823345635336300619441144183584449334849180020458194303689040207195148434702532766827130124519524110553131543031896443075565156238582561106758100142187788189340350692984273031050994993413081100590131595958095021199467416934212818494822367365049384320935432300817252340175886991353859098609430787302242458713836201655092224627883240211910786109787934193045373520034307325742828475334429999638263336016865995605165300508264186540014675799817397074083180640843076853537862901022019216287083811999792084525354271738606708411830473399772026443468563763797603906191983279101092830452480490059831599642067560505560691227170888317862489918159786555721830122515608121124103897494702866486831469037178423786763467071318457554013458323650037796504483320299993339937406680800290656071922428724739025474553264936110941145433119216261128546744492291940576441796250076753892869336263566152592393872772634960372791693297775471040346201862120191803893181710557308338350362405916133983950459105158355750191116945794751934957085619563968941998906793425744876723991629141879620358989301680528225601803341114571037107064923568947059148381006724952383848091008729772172631852653442023979902976342774487687898906709408859504070042473849851811417099234428251554954175205593721992709986800440336548494805353483457216808110056203110657787844405362659609286493901366774837745826594972601955652459830742489016573936848771387296655336892986951256424972112490613954223930611653805905410219219649906019002704751162282833238336427560855133800256970837704205335900961849043304120358239327001457466184582281501171210720035443920503766728376878042096971522784983765195977087347585274279984925737616219016090281960600869845108090621383203620987228985539998805252389076045847608008179136711051385610891305107264152669048551043908958964584553525892584269639654170230312737355159778096679744644868316579349567604246228677749991578209962692561897586808193153733166086169861853907914626345082063295816891928272028323411375941024503068450074778836713460741147747530559205626591867824559024292717105817124218791820770877460155340402592055898718554966590953686158983826286310664062011954759962255885527741294231886360683731094255521155690442958062821235771367920773579803808956550523525652328174120543026427238850439338838752539086060373934701894618363454524552617014206086237622850111926654595633176261391173669734489950680008800469545576165687470522170441251040636761085243714710040429053093974735043431994233335946435639286491415504447314090849748468512160981538638707988987361707136823124016484772243007881699478429391418329574548705881996086728484233851815021468351440421342406795091033507386873224223010644515235955992712868301654543332237300017217246719127375789667168787697474061652570556955413260531605290037894472928110484486020666856462818909206940270646972303499973054864465183632472087358341139992260339522436945014940011785254513198775157533569670969769415828056125415010811214264462023647602266341028886418070548822863762163225619353786252519513826602570984067370416517295581426660504500359854659953979784274503405359240450836378551346058560759628513320840280783759629184613658247400450370986286077552935964291995885761557184175482931831744401719590099072416542292459978237628017367014164162495892920077657544041307895872771695078751398343480190115292183857732430190429206882233386559439448645679820262607355774257074411008498798582377379591162854006371581969666964586460222172278655180605378355130725820394898896410598833914516938865051502480859461564061998368456489034766753499040790490445245023974360381384356197938140442849163732071035022501329164210738219119799557849498057980639146096064437220060191983228613692227041124540670039164683098453344186152870574619847590305065227593358120571874337928213774653993166113805653940737390163890444363181440344111052183247389967184489719075218930383429187313870207449027743617919445760399211094295786793603582715465085519349101834928092525818192251647130254427611061344156721027835074238565161360849597356359314106422265229961487212313747502660660135548687808314781478913732319293412504740356090301982929952834700478259228543986519666134974029177115871358975952970260030243564048870246495776410195985507958492495833037979578582261419322827734354056887541495972002362490597274685934874050095268009903185531218740718666931785510686459216433515593991338253734250744838850427300977126542722921144679396227531765137942434302441624964539061202586305394428659556061325967151298351151361633205578156326400057051809063936756627797093413433837372258050385211116526510173133671929288399931361232398281772736015218997076722935430034627943347511795046121384533220143258664530414330539467028226387353790568770030021640858525124234264354922935683129100059640709121046598661921866645515706031601863402818535709853235578511744602985474125291292450849927919412469705245924327816069146626280226473685948010562105319656672337477167722893275225303128603588511695324542459302969391901123491914759095491408666702714354114679383799815262200219114236140243793269035547796421217531147460195006714765809929522454519052581891167121661154152687736921090284607128255223076706929489749778454214765688121931056707899208098443032825608244091923562598999355034238061486235418952402230018252690091689481084457033756460541418127972726806824734997942742561345646585651717139757899948445672952193431529827636327608346542009065406623293956235179339996092054096011884600279849267684489675508519219477925652252851048784273094585129812486412995634657587740529430107279837570269281156868024724892454280890047227483078310660184493553795906744874908035322609317716206749106297064591999920657092717673401882046789929888715928916257835177471938237933309761394096311699797689421989863202794290958253555319940707649536394519076777920919492789647163720525567121642250451962928890169885244687483308055217929510661105797791526736393294530409732865404842311160902140040355843318192571504585849368778336631643251394239809653269275399016505647174032797909291429187538913664811046806690401102865300839503842969549721214181134701987672869430663123758590329818674260376870228860905428772940217680256078360019353194895433536025084785661200062147426348761828461399742355203565948179532679066940677446786612114314892492094762365702901672572873939075274219565181113801552025406157184445863454280198340853836716351940572382676249637097452046442983768356410073021104316768256659383410589045087651396664861976659591127392121528686007231305129223673743582700615129821153765397323222936717509769320600996136029440103934782869426792152918092400732187428413048734013478309323814736113433940029622370220174956894562853448681120933354026013975836617874447951577583993086459340844578250252691664131438943122344709199730544899265073159432759142217358363353751122922170889987522845679543588009944140317075363083507306917826603127536892272608469758658443381644751879469835073214959018398212313238670288809689590557408477597558488561338236687071498193984022380109935400219652048415570500395835043587824116059466013888228386964212541993572916746701632339799957634736205489038124605685372075419903813971822694394952517786287148924989060861920459214719579317857212982594281098480179259497381055194514315230785491482791002158185665545247441789699712158353403677039652158143710859315994506713117477462187962870815912892929603942208307838850178891593050617841954994224446570573958352062493787739117614261480853106675464815664937360333745960298412755282500194065461880516515150353916016016868527560374308005576356483005930035294073277407294485428617930573831592833205652619722813550251373465390200202532681393091493654807348416902732982959943487218806056275303926889585896279669995187326638918400178801129693086033044746133416794830023020369207686404460829086044889496692999306493997021031906100442991967327692652817438176752304057746353418441494787784746810663076633076089517398981659888624795173985101452783860964004969545172258615822753724636205153315724551722781219901407860495182494577624431049692967578029822215502170813275980670983814761533809875941608262221712150463310873204990274574078193730501443654589443190122852056849489235313642920735211844998453398250318241171237841926714639455717308125506257862037153924877075776177565956012622389509325419205996823779246189475180142592494845932844136177640206282886389190695263813479482512972794409459635142570621735096397089166886033842481443202306525473315194494010441389169911706719498770731628748966796694123604945311840998942730378694006306507683663815855775576167083553852807942414677958212302108032439258589258269168081734166270377532367742793230531412168735411348479703356021366896812231173375953638353701919869397095491617600143841736766487809181226012491490623337050229590143027191246689613520583434576436252833763290892802871437940371512207560705534267681474990373254754959272579957163866818289320293355993055477910150653255268494648153738807908800075454753099651746303313564905576622384092812743306541807249009986442264695566753908915579824440258181400937624578286786884453085500045757383937199423865875014381337674561792521855098458994707421487890581183311202818490250992872636049016517660183715832526299111579875094091285916913053233636680336876247366109709287905257373786966414121800740730370157318392570545389658871616486678684402146135632051176992360732806036945757662673323283746636578275180471955507972007565248035458879897140168812074940655672129892249322245950973238974724161127837163901963050824023046221029271606713115435229209183558526378025668936749943575088449398336375520816359841308178193126766450334613273110077355526549319347327744356378888143818663564833495668493418087917887225924046314261184455838683493225272937879147663283261832535605606212808124817753923745856571932393924602348134244871490924890841311747108919972046454232253759505541050919968695650534031405828891509857990475859126389779466633964568759633198639870068468191363448222707615702176601680227937800414508446100495946825130518234192603781603615346434899513107775794518403649014372547783475690062667744412074461755446030693729968032884465234104103204220437929803191657009082557076354350071247082174639610244635028122302263697856412194638405425600249608433651334460227898107431778670355518977350811446008968500008529511592257716114993431467030571418819472180983696656016367075476937957841327083044598499119797375040562841856091525066826894730870358022886771686925645891600706369833069035468830211653052714587432121922231554601069328973646085194144096537605182534634052241005608272733852106516947935025896714169456608452419724517469832726498887532247780915725464290152008089740711045400840482613626857212788207563777312608062919089190354606433498736148705375432899769922305855553172395981298161483709738853577389971657886736510118508743392939201305769236993233576670442996726670647735027232466376307113832719746355414915499336684131672075567075714029120298831390479965107835870139477490006075340454474987819011915939184587423979963955734624639931679605375462922764246043574478468648764461845310843084891665378556841236177772162654579040312298199732311115822409086104290140025682106443082117185060620426425699792743866511862759031907528471957047565872919235330971848151948518055152201865508362467372597224705730995744840442338047017192897701568658089579180038424036852909970064561942355216335752303749353803210282985836265989811102298224425921771776311877653415945767410734883294910708548003818627996533274373605872549068855528772168321219773262634776894452247489805945587981617044327066434402436338026383252383007791017115977805439100973299796722951977981763385576382154274647117272406423206119623196124443651039696394883957585766630049238289058452502768107216263353622788421820008356569453156132306052210173283130529747473435660581148674359141364755810130074322146278737146534664946805818484754874254250087337292872466075854679880067591045952061456519265205006681065525010469285866287894628660491817331840810819648186623158608160726231125708275849318978916385722971559845529555226678708504875040775184059228861428889867463959385131546304482212812393256402426664677833331857904933808904618500744722879136067466198321086079951541004517916395782651046270180887129857392194905700606723844869269271430323679429633784491359757554368876162293397666724464235726583515514623689380528408879590617085067116204996204093757790998855144313479834724873824469266437770572258050755734799922703207394594378378572180434296597679446297808343845015166156132113952721235947432464713150647995961337017896183965106235046201482707211220997889400312583640835253038348887769273196173053211599778557562002547271233884778733032415160229706214514778513705643372860365309648855880087656177848876026481004849516001430996367115297627361365378202613987979173303739609771799284901366290311947905920487747324400700701776184369105240572616900562126849602064502943785020621003241153118736277053792792055768761788355567731104403281348639844225451176015080312305064120706042018837456314380065579156264991986094990754719125033776688454473224331804216182258596664902340943518908908976460707687811750247153033303804997765376844493132357850811521738981315937744909211070575683673158744728667472071502223390260177731505793343590032606362846024843982499856956167314497930258891765796603738991215440894495077587573568075558433798739325167683842518535290411991216756283699518648005147153177350826853005505068998154979742989917683774962669381145960567005945265253836886127784125382477316841919669773275514015896019635553022430553164231228306945472984789586783288899764808614784670264101680821669056541447404202972401373302907811687449135440989737034078750374880742511555229166804642738071240849775477398820649633986809625770769863531415989159097498765569717757731220386684788229570299637144630047910093217059915827483258090815216651044081289556574264994821253624566619086944305094722347814606086486237957234212756438379984542599790435442077436868876186445565577464403518404754954019806011188333125676734464766373000180332070220186194132123149404312237898035751384572837355101203796806843638212079869692241185363785171785423225175066534118963394232502957624988163059157500929676271825555317008515318474563868041814917385177915296540060274842051563703388912882940382954478238348271463239645242010984947938671501407113051999287423347239948499429846362476757096194868796291060262604142129353458564532117054321364562671718191878023857288678200853164790511002272824124813609970834226803358565793982822458837827049170568328093835171121896989481811244105481817304518510972723351679169627253569421641945457910500541458433909230120219623666208663240410985634113678658508598186915564675910754366948806426180026986513663896759380319583786842701103446597904887002406540950749146751833813105937135449914807398692710879056877056427369315538788319635108882809171606238377884419101199414611863086202371968089484194947293263877100295443626278113718309721572591307369028109540171621769877367327256806516176988258120024287533318508116175525434582452374871988188586595359497895582308954257864625369583336558625066104878262809078296460231413787501927397723260212379016657686732940507391152185607230028854405517660265450272422304062393819990672076366623661355230588863267413249640111843201126773493745129736006286549518489174081237360126268549388563791467222220089891456407808847327353165272313340125829320404299814222887228230993564686112536851100734924717208517957494741204214241911868639221635271276183112148113333175489216318719582474525717784754018640959280271588610226536233102573057263647350149491196329405968546316843706938494945928404851847313305303434731944479947464399232691340423324023194171910501074277699234051372202292219639969627645149613749266496041993514834021613390789694879046231731774177274322443695218164425573079244189166676121469621111919433869991225079588635162124589967434294263237772184084030609470722415412482396056180634251452010133936495015802293620144258166275112617006842536407892967536866095244037118971037524243040367019809212673893557335059248258828498084952864700489841165827580607598018473436005400082961716806254945064250913608168377934584217496576780659645697917089772203075878631695774167115191268278992229266565134325795690943185330713302823193294186277946953499028328457449135918862929357876353519859841383062367179823292531885857197260380550004925322097399328281913039308831675940487713894810639922472769664553125547862574576156316827378372344227729482160612273362381148433608542729811119814973472226140749137606883246054751558838485789799946005630777932103300950078458829008647958595566706947468574107432021317966659083978481461064776018553939947958824433628624561355440111585590619042065147639689865030411868564865491023366483740813245755089264363270649486789446446894134515563353753493689687637689901112690430969473442251279687559298223954520183969633574439441818721729521566126106844684275025264791480190552910971882912221936171473327474465003960693436382261095456759238222946698694167577350444203781113011657726965030384572776285135601936890097371413888297439607778479666162114116091098091694287163305746931981258044429255892332686160606696083758591776918883533406900670458604639100554547830606674051449237396929847141018638240919643526305559805673018444229607872399438051535878205756238536493785968783940681340778098669971465635540490963974852266946184400060862131875795237580490283491099034792430138145494640833202242307785880975491606463715697766488713017564076876983380052487714739460850568874991105330251629629378882962518187326068436177385212653501210688021245204737318066300849382257612565970916273492648399656172224676362259261640892071112636623504942104018496810464244351737025221864035395441329817759405688746653172974924736605394589245572487230515544402349711440292411741089221221908751685469242249936423683807777393203391143554582808753930263323107207099259908379266750402374397267416125624195157109619357152047132051795083091427709293590343798031464925510500554256024299508713310683939503252870030744036921720341793637308477353640392572942421317841290027569097484944889345125791310779365162979109350375126322853620744483356041658526946258544288525162141954635840116684666324051596682573484520977626506275859674547791625124277161799075327011959958867407484418003071055166402875167026970291514203923140633969915787015272620682683380075006931597007273180866451937543729773841674324929770664215143717065024771246977565829495206119633910447353120321360965713156556001127926816022566646004734835027003017119617154189603377365692314947805873265899712120950507631480306684823626628098409866325736124738320795571201328485692034139045981918363264637234635974595738767540694245297940747542842087955431423464643520515011540361684286410986760680256314641891477649831069976549746472176810187533631136189087860581926904826657555926614177326134247293871395796729123337758772511207330118216211072332689154551784560099955231916162543692502988816770704069246843791697196680245572547875430523291965086042653522685001778416370405812266569436509296698051330346159351672235697520288156436604291123833900343789331100833589084824093213039026752964613369556119299792847593445199873091450204665112766516556178263032678794842140597480294453574717984043024088786481112486835818694060170973202399047403047716700152553713816896441034807684203393660564841731665815451619826479090862635644944461718358986976881065394419540107903823802005901994230889350027354989846690961338288524291931888413569823647597602608950049828502257549230279915122576298840261885806346317286587413816540873703124506997363252109971635017899134335396124362655773745396613995989167962358063423310412178818312832451824860456632285258899803337935687689669766322402764765548052236473983764765659500357775541978365872928613151258314252627778560384550491057777410915011564694014539102019664052047813999853553388736605355647267343455698439342530051347768170284521184197538101362016660872204666293281782588892020013477756106825380594892976981441378061183735291245319129748135737382095529107190330483959056278153556613872956300191777867222382340849783143642384462003845886981987376824044660863166711467997427637503689596064097536755977558847655562733386930157173576600239023098663889492362154214207292293399258208393484548746033093910906032480540649163185723348044590084978322570726785502913570148115429811376215248529535914655703477131053237877622424613532104730182081949793108687680248969756531986900568868769562925810961713533985324997922599392595606725326397701367446547393945573654324610946174484255420483400327846266621295785502234678612027236310659887778809234823557137481425130351428852050465728741741643999016565380098676905808242519614281315146207560170955735233301951959162897916213183882350899657894585810392958061128405730559766210170976143586717575982312336516913874960196530345256615176845862237571419911552148190902082187955153525610233069888077767713645607933318747108816767989518571981102978576663312842243040565324030984075245329385915433663371844686099330968906659390764256615931118960300124589743355635869416314206120683764951725657725209558829652194858026229383680233458483540569834629116480900495171959920716019821076152678415982682667862078927465265237619432525087577637737296392299834214632188221038573008771923598526250701615475111265084948682053883390162913955968091125739766898964636647890594773368700126259668117487490659593993989332175927877032747023417750595012811263959043737794678238518962867791831287801440403146665511785833621382155672082331632337366984709869768219200786329720754738490617543524555632823874317228953231352526005041040283853259873648004393933079327401565556880550905739544906712414189120927528035627654315236364807799230845305608565360852079764327006477970189242960878131169388273284483632018298823237327197814803805951198026526852266992092101831927250854647145667248292196218802994735527306259366125987869737903195919846976518215585666782082256372013254410043120755091690306814185488271759051657554699431553195123933849290270294009225377140367339924039264269605532227694886193730703024741160036521670022733880747704565199080881046983188425659876904800632866039311401205370687167622067964711893229539591189926409896050650666055038320044540394268569726101018333997635634507824063596842952536897498693822244159554184196584703731536864481317568964722074747147621241609762639169898063425130557013142430702757939188583059309988422285097836187772014462543784952586470203067155693294562408924432938107141394531651618448878933572982666374381700558522481514042425899539129800876559288094128233993204703803679723172769833825614094067030017571366276291742227227734067574209174503022800586930209852788454322584770608089824811240634268406310267476833361371065976085896259358295878581749261797097583958982695963843816232017554404354055051871589958401337194494489518068150059202838242896445050919119209347173800146497677030394347362974598999137627435805570155057352364818411496059177914641397845109964853169844743852232296624966046988377298415096822652733179019454839514712564206628001735390256268113053927924048415170480362561486324103831716738482096077318259172613610933200701566369482586737954914016628876902999682380138289833257411197269287733738269303626564228389958383508036720732993126650742203331389202900889461043002040440585251228952933356729481755604991170889190735296442035567046115983337064669710016297967665129243281746469818725770969894971946624705711943288794956613591350883495618436854436312007250041850360836537115538749892722992263857430862361434127397827947864430858441851522626192176332852773525199618865742008503775041739235067147686812759252010715633500238542109244043968598423684297883633104132488199860802662625949507018640825967506566137366323014263810926876280880811848071415728325341967735986300391031709987826830710212857187311141437812127140788028264495081664732498820783909624076736510469982834892965356381076639499649574358641392459993870345100544372726562286156607408606651724309007508165184194655352670946256246324385585140824293680926007749560597758121283999153553329032587930971431625285629015638525612280477577005185735911639791070445581657928596856024521786940413934330513699296593603674093051644133662087611899083208596961632936588204282343105068097779419310746646566090318005023815901376100644150888697120729482141046505462539227217663901520182443743674607550839480682930367670834123321190717655064942862470951022442466934621348357583501576692266792032524297039452188131675611749674808727941702637997840484633333680088154642571724102611248036198517529903422277946551678571995687454875065265352153872760919208843821027934902445541399791815350319222940117069711801057354739569467178945277421898090902101956195347382102054729618023136302763547080813342253237861335765009303879913102388056687000606656563983522299354505509218603698608668826935012590755175077315988395127543075354727549485005272976530917171272939757903225266107922352084438895338822892855100060378628923067614364030180670391853643610037431325222224413107237187441329618293020997445201829880310923133025369115136433971633502870992811984731345742192550787658451805438197227008158862911464081358837650731102095458081899131682317763208530870254666187883342078136138712917942207619528373950655974007608790112376286751185170367534591437351866459255104785628778014052861293636206717661597654024707050384897949921211574623872528906691606704731244186605796705565352745944946497620294828650665133744341507514141808563180401867354514157572622071865600061945476255186119692093718070845836627048484857372672128327065950826677534648898434486327755758801756428285575818918269687484439122421307962238629760250438135208792495394222570464260949084180534873284456339971616429601276829292432993715896176578574080189186567318911519006627751336264284123760810552738399125326770956773436208387923794742885632421656526785555652134177198177856530595382532938511029913541937827819255790938915426715197084624564008802567841266456148791443189279829359665161424591626061552136474218266213868278547921656496483437458704304326912451388608286655930840205426946520810977861581374234823329809370297571062743615593325446646394763284322587649655099954512272468905383970515870781284250738134391048498633382509220117685508703413767021123504057531335222617604755677760200201604536495177779625594137436977861027933370077174549944637536083299746740711175187302095227549772267321223220646011658190709977059042962299783070685615925193603294706472169475303910918806804105281694467726586765442334892012932564642953548450017480073288866181086326782625157027561803599325091771645188453910205286777534320556206337391854039073202716416143318415261803177840149622533754674953752190800583826345433193352814125785689474206519734453212227467772007196919890987742144320961996113295199910692626028366885704264029678759700829439203857632459532113190600930099583581449206067225597833836436858905347506691043545484819430154606369515043090812710008842946258284656620476912651132199420820503679718792505471995713177663696181591644018674420340444556077338795010371194083973731577614858228060763619658495322098804443714536479558411693307883632220271062391093541832932318243794990775212881664831435300924306627139913762533862883526422217501015483584580526088880749076999398581157043230571122903834950102053187502244492023433439063131293070701094536615322070617128843244281764705665790877648418082788601126470632355754722229966442921156249999418928962052213630319583090771307501179033139580738388535393125883040110420229204711089216511561624156590175683590610083813800226435940496963773540683730060507406235792857659890057456485032963271450076073488747989078158517775706460881445705434740944302587981984635154905906030874417804687925127157139281669512992416995979831110440514108205925343161878154635293976588516050706366792427448483360725607259520551038750488974805634829101437970541502145052971692858953928956690859250075898481802175696745158628550599519503500378616283700470739702269772341579309687799498962473641787109733871030845587708879474821998536939982472876627214836568136693302891586207728588611867986154105431497348227218265546368048006922139844912921791073158410440746023170921148527358207725221831894121002725418878643017554360824208207398725511526443939595325801482370446706049638756350778753739857207284224051007874021695096848234400959914618592767566706867568547069214999904878214617339916552090551971803551626126008920106802513652514782324691658317605461979338984045017751925975572876201882280596120864586005328762060778899346074890107398948983222086543419636290326493227392178804408012616399693688810957805880604508451766348732827795045635833203876887764395254280649593292359739944992471376747961397824011132108466190267813361649919704111541596303109059148001552900478649526631046117458197858664159637834613097642023740821184272526341768771814498678777025809841091271909549906491984153376355969676459106784013218783293711251198416110851256930469281672778630835151528612551889868233378312764216704009644309538443617360159859540270469979606219925293203004446274114652530258217395445498031721826696093046766642523426748860159518523475371886711838817333098062551314869043017079792245968956135152141022533310997891501572506171650353279394946639435080227284692604235332219864774338229220531331502706967394099782297170462569748258509549037013179991438767390930778251912004721752339672222399643196411811799579338622254865101572107069540465788778452318161286147728562342014710755464004378903666805073063125888953889644847752388011011155440825568593428162216711481072840937376386308060424205634677345801754787045653770951683113611038746580505057918903724546460916527753718709752764550859321124773651928556256048221899829421231664618004191463655388349955372529334581508683915279271676963310959089376926629024978377664122234787345070118928083810167512204418832296850165126511686633957508581457662638988544794818773529518904734374277555029292833080866257007306181449534758514111470568744912461760077082749115825798729334481585704893234176046669079665200039487797700555368995655974084666891324245203759229693975920654642578741395384980524347642308672703912342819935620775239550616068866303698266019297168654428938811607346591138476085415882705846094562334768198301003791817893129822432436040716057928466392840372593383517658320985064190440605491136693763782185671915477207041245357555413941825435832106201708397438492218457866083526051867621576865444801434738507212048403059042836536000661960939340001654668890659661865278006384813307432915928576803918914339165971889861935181913296361065955254897485342688942522504350026318555517432452013990243226515344024437631620397602654708091180528451597897097753468086822814714405918303313762841147215980010093773113945958030281470737928378128612816710926103426106423803673283843976268288105128354914699121080670779902319124493554269720179874555150213709410765387230055017009816249018544527608021559597467384915397614054967479554016918259412509608074481590494194567695306047629707749071708476746252760190039656241679043041443187697069227170655545009485577834219520585376374854545570569719142408238721317509586771689879943121296127308859325449981223921593554307752199917729811543446070426188751797121686030104920607552449464508394444845511899645261659557179796447967122052410259340306849586333765654645247935580963761214793460986985247451626377895885475223013500188334260552532692636141761937739835741665215647001722000267484596782893692859862220934760036518658295076979689307402045980395355104302008226172628133540688889102477396275637814482598820892954328441886957060124881985999308089930304821581654781340399699907223029533134787930767899881863999407872013701055840618884539092509887344047548808062944787449036789080413845509281902762321395888392897321428843472023419826930058720974768128035905448547567056651935757850847285858512453255719024846791361758570324190827255564529093266434329996258975075059777143533147948914985469442032840067922966024716120290135701113407954947790638271197916180525225834573103956381887548367046052931591078042655075454158982815162640857618636945895044216525285495991744523721889551352276424115821288334326934341318460820057109254312409784809159379227860065633031440154220576913216177646821975580037019212219035938662582173932430310708193334150874593175177076915124016276823049069825226789467263945450043628387912255181982033521390165732571504509956508398788134718782587874481631725003580961833180525579396781929080685131542607328129300178091539624204495731110569192258850032295824654343067766817403084476471778292786941439411421129331658179379846921875595251949539901045777871829349275291156594903925244116029738076533539989871696895445277976482717732701870185480392215782024036440397167747776296084869398174840947061583853710254296151752728670331020719456377235604984908319891961449993475086020565872801880428093827832783585710624785683420096625297467167614617823853260166191723460185416555814404330943502054703387925012050394355293334250001800027277940231513771464749354456822929330973456289034504193707368402141639524920227941250503491362646267834351799281299018883396557889745432781481967203430469061411010187124715694049549597662974904878301392507111214961501617610485023811522410909980538703570821976604549148439514594870072056323053402281234610564480037006908458193152540447095317425489987930413677944809061906069609874537909129787180002910489530426494673330506768971459520277349852163881726844062711968295542022506905823379757099673114575168688352940029947462627624819411737060875909876340032429957484457142573402345186667804754221561745639966277879480831250548712199921278616736438289598073583112694379828977361291111828581013309807643444604155299506015668680275918468062989037808716053171994337668194630627379972299945633926925993773334728864311002774343043172217416989728738564930500160524436255061662479546592734944175783739895318552219494569526697529980013791857760393140685540760814383349961222168550914557995994850957987086097031551619625592881911762378173126607223931821762460160234960053379267426117922501296782662931333627802104738644373392811817937377237720692575980056386108779348592936981396504962490377350860181116775355196487571725323195775842351909170739774907406503009347939244307027304045649913693078047597198918991678125318257055532762185937978974250001348292718836377707641853548133183794016664487138851276364577388232329543523966695880392851520716335540162646600142069695810636091832275195031096108836537119133953231687530819827453495845904102455825950159454506452777548036922640363611007306230079991008721471967808451953308455020871249293240957168286763132308689239108810019650985744510344148381851499412906732084230584758091640361342395824140758224813222404353176325924692833745097084858492101046597057757044921282932510137382496127160703276546454868090041873872564964545274359709561866843682048010307398974303454853824217399543869892178154023181253250567831146578366410726267842754102377365802883226191228047735288175130226930517915209246589548539366323568389400954578667187389778804336414150860591868097510749469397796010476873099365628582367747170390791155839838343200979431696598572469608918841958038279182083104168402506568683054355228560805705829823439072481691554688982119658761329088692755875060895009373452713874934944103540464253863981515436288064066783453819291028173402511954669612494302504638748691860954545047102833148792086500596928295241225665343884189171949572565443921758000504746103896567683953731929867492358591141693082063512879914672030616410745736137732853183316936646526750784124934870538107101807615978461946689344189958020313406738111424097685427497271004470435618025167451207991757942437306694896165294881714909875248196598613286273803968511044195545153970358680549339635119525991476578979369446489230133519801912089363232285909658389194240592125730063025400528127978270636816731914247492456618332268861612250172632197382070172070190171299998888464342607153859649470056372365801653910785655710336633253416615884181761066392493347056013417019965423332540919589055969816097773773927694269556484080361234538071158563774457025652967625522240315868297743823531826175224479205216589401406117635905848549125937005945408820782446511567179104252663416340583827138055230341547337540901876283969536209485110031414481817713636627159050771266029165671568368733706778303917054631613380064748843620299693991617535341375416469283681258077281110899426173843372020343492567407403819766292687357917241206765681220297381940795408960763465588864857819507604104439349364803773751595562629873172789178441443401917956042533630684653139422213650716762504036486180348101189354881645255174414534179159984788834044885460040001817402798242265246080360195026543646181805365399988117275573754097479269994113115873314236464308609999252924718626873833288791341083707949369779592853692913846980364228654991379527345937060039325886797784435174389742733688805648747697326245345517561446781713791343203635952985839527696037591484005133329175153855834361934686156719280598614920311841494854718164841600964467743066177741386061693632693067947861125141059217709345520297127103378097263250365661086573071117993439855553881130524714127318708123055411071429937302085884763988760793984685330251911788233675628406448616719998232968293914462340226240981503352272277565935252976402277413613537324419793881216532921607501171344130996176529402957334043260949945137514387932288103733251728483657465256935714548670014102206159061307624137096878597552309140252230732612475811993554449822922523781680867881591476486326992419404307517239804671923456067597160129845905003488178098470231616875188874959972092768598904402563066244939270736138441926582343919118149022724045073745472318477404560210715116153702952888136006079000875112476127406325716152710775287123252302098750131838949660486901789630149808666148182722098596412328518847579668661143133989448352547038553135544873863220858114725030036219245774131783132572673226420080623247371096865272487475989731244696842824501370577949518387575530731286535603848556949741380746602330149316358613826553473283496258040482575970057047587745454957038140364124252882959554234388460880691850883979144192747407090818816062046974123230881397493819153722813603414235568459738015107172906195681005715598306988609300550409342539443036353644768359221742209017021158051778186159834646845891400047905965061464162138282651658958899514512332944856917119386695707391188311286002676903375259112780983299646209759871223690850164066340337101547173352054097876630415485450289516810084234883549017461452615880303147241435891979042392278439924409799992219993852444507221386774533272716583457930117190854190547075763771609789844501905533970215650327957363164074353056689183780663856020313174396809379397718816592574845911990834439331689921450689363851317655669537207625191643163755736981531766494468431052000342518568223675236425164054254960684220915431310699491603823792829215420293599704124005872380005205199479632721801103977868459286278876870230139862907687204017810004512872880430470209995282078085108942343472165276348184238286120582743693516631917427080489056769905769993762454507307579165849326508962431566177299736515308646267980096769784487390721651899458851865016589664639784351490155633103239414691008753977621559848419800336548327595791928418452832877500624000066648326406588793215974330566879652756704984079941150443973288924702383840769249664253370670015691537997869962070486749795116855134266110668019761925261620890497106737388131877900882105180595647844199105487808236227841741104835723109463689137166707346326983004196357740369588659806201872445376408016420134416161050173608373680200556102743154971448812853584205035544820328335724558527967954596097157888114706816235272397921966422371018453013505690722574982625174506447722608590631911524625108803498976529076826828089794728818754525921120329482902632660135880963216032129993900333217305203590400714062788522010130622244878078446671801082887702428808692038079707741444041849097996812203002276773759576258521385243791136550699966883599951403899868151244341160240268583941723174542294241773994273649742904351443121802669360119526339366730366408693827518543170752405432599929368300670872040560127346934816523066914929780380455985064022253759798382179263276139385396589519567540281751127527420538229002948792004924082237752318333501528718237821031377516991598693488290363042053251407913499723614459340651279279481810386066219675627248887038776811550335259811373655276940557864099750175239436966021315686607169979428724142775610764548478549666541822162912877910239381106392925099891865152332266738594263424725078250431054574062622953134189131959591974023420576074253890333093805507449658546827823635120323330034664567937271065002335716946343135860492521365864397614363262581990458499012411698633392615553195612571263680366582423239184844971838692295163696307348530019817014203287418596628009523570014900090494275013050733941097651067908469019432259335956425499972053506440918630353284268768684346583972543328122947268146645640633522998200352324327858302157316640560337292465718843553430787364206566018753574037715507991613598376780390102937440112645760840282196004778159921601363491913264099941485981976972114135996017760931820138554897628407625542311344729222682652269666190247308016316282977728250415196001828372450065427904733918518856054504832190829229166250466800613646009156347744496203982318195637691002073511407742272239622965994043797651927050057354158988681354131804632503190515877100606610184773169811194156039049067789206548006436087884237398933160621156186007429094703092288276849100678640839516910168301896156752437191663252673923530648495526055301402009885067036178292810220715092416461853763008510910860495789368538307324380859334051474772117401089527703557577909706228550146739419349543625688720037997653756844466034661150881358556131457259843245304954796863022929659458150045617352526177906505813720489673324194901071499455102314723252605490671353674782733180870046261816801548621815112838467705269816907246375958094588853818317336616016421677900139466698503217233722835114399040791076178088490962223773698452590693296377900628525463580889162642427145058005893095850613760966154875566491876493821870043685115615789033783070933084236580700852703838460608390087078026021588138310601508349358407305184378345439777576284663260511764572363908486284457381140819417157319971446587575948748671932086411398301469086511557062188909360401456697548003336550184680163749441893668109924707734535623065150460860005294199111091672295740395704977350660644937069010212571706528269692615635412727290824905288041183918360672256350484456308645295875285454218265861664932495212733042538630408973602685552361629195594429475698513599639920698825151502193509979459290002939046509014664347222239228695630711184112871201561337883543730921817721523568930339151750578455728168325122743533021458787472665935298297056824221805538346973378147244249245322048879815959414876582907901957315786210000850334954970181248726682093436389302557246850207404584427329521765511990754310707764888031544565804531842624706230969213119867933307503529109020716533236088022559183335695312727637807298580037339269837323332025726543186251881812065177276489997245774254928961806253630313755369883620214315912157534001840806342198352717134886592975863883616205903350634902983881683795125761671706230467299663235425308082708052817461830817138294957680066416052892453433883679193498262109450838922511678889378179855917986550376088912580637693193431097552003894902666518352669642042712021502076067065487183395104159244245081326742791127476731993243339391165154217089690190231047818847749575337718496370400419133486773235458372668455715535899419673590648218480066692339266635744680623432595476613145263417818619975768610729880848543665771014783513295814932013368655931400887242349643078092071814575242385582329161888101780749569724805933318665922504717870518815814279763803775214773590633099515067717155352451679563605200926407421129241221925244058249105726771387855090688522839880030488117738239769779438722745138671770340755139856590629083113559147261829001264071130457229962533836048057848184294334406376150417437547478892913241591134708758607657168961088717731853678763755203386299684023930735527557774300561395196437554903815058264601528476514463727435407322891608119146298768875318725405255405870718033733091100286332931521719314665167828759380484964246988517388395640037793223651633782284602754730836951657030279417289752869600910563009880917591525466395494789203979923000963427333345745248204516632645694948056643176739679026879135729104255776828447975356147052187178514923364865341170954804924057415832098102295751565778012906813041737925823644130813695663336698693100710658978664015768788732095953999251702912768899494797767336496798978832832040715385864014127307372061302831215497620999634924079971584173585560729322617696350225469373842862440562409756388516070290732700745664308782670676426622837857738009724337384831548673850716618328384567046747334010263163001397047461826544094392438600196304151269962211097241366951570475354231774126416744608160763918899814503002505995806675839049064373756407275586161512104024131628746718412295935447549947218932486387426314690375789250016296495390735171591983006096883614462451287827365365908578984402145225219884291996081866608218166947669701739338217461389372866414069367817519921409982545620443252363606587176486462269464430346171643315158151300200157173995362692260211648185657273791126703724437096276840503027654695534663966397429647205516094383421790439803961994142056594954423636518677827176043827369178986150745000592936612822435399242335862220462542379376886717221822354646226813109168329372437219461522137637000832582265319873871069665024197392177227752348674109462940124132833789868648259920782430858180626264123884915344401123993485840562387346902595766129987587946220710071436431226745660111516345713384304897821202355828209140624310441100046642586864153508925421915078942377719774439166250556876967018113001139730278830260486661098554474773752339968090664772495366139232076489577608983742253979572262882294825502480085783737621849337448037255395112281285956074849885010211432208529674171234311413946745492078792047635936879373641314094102839573983423069494882952137730189677496993955241348012029880970524440482099732551319359260472902952131192244825349910401472626541876707815028987387505866584589349577470536119223900354329305259411867861559557120041384287446693293471743477007414646026776907854097752431298027202613815892165700275486216976541790214057599277628546256732417138772269355553353244847940198589818831102545801699079737275690770571952244538129643214737517795709954375077580056473742657279751806366601912348762428205838854508173421042444156540775449254599559800288276965140405835722307499283151928465153446587457562459556090452433896140190019942837992941997836806647850421902107771630406084945385255953242184390329766558194982443040459503510172750265351972227972632369258971516317044906008398851011396271194060128790360108926253698115097246790816391770340624916451182280052493510019600801473494632860539489377889087328573894844942950149657917420316984594180695398607449768186650357515824637095995157474471695618976268488180101978142691070700423157498529873862992721519829434120632088990883880047800937166502638424676073852186827837731209107402531841744916482949033380628425100068205174096475937256202755058005893001836504720927377479869732316692971796440500947411272669155032338401063381067974080426793314275785743459638880762146477483030311611376385769625685739843131659104285374819831404877763344208025185246506197199376355532833939549165912690098946515018003184171330431321387610001218395501144713220959834502251490682465714207278582995725702107630425648640568084454709748650078645577007125269007204149019637536929841337827219702976356392969152508256183844578847515016378451333353220936482502978677996793607796413280219003965628405163779888714622151540810542450295062757801282923002303136946161262384719739724025344804388411175478287748203930422044312973930782275593882467263872299678808556616763304093343251270722626159111206406650640339454483345455146128427249864297790223949775162945887119726857159987697797662176785482757677606934647115468478507944512769056730907779825312731922876502871275058028798135590425594353622054812041813060694615372052683104347454619409466291141016961928301713555063326253660419542931549035291724366161490365757630416698593102811173248635698585245086227539132416777526533790041392764936504916153532063304290150607924074573640329032939343635439238921911581758549428017420558760011792559135698057310775092388164850470406763117195655909642752897571435283205790440142290418867425706704394825327259821101911172929769393877847497844913443536576107431613811820191015700079016947681222007993347366757671906796397435949892711264616340307346373505708066195093059420156468629519392318497666916544748279709345047825021697486817370305693677705364686511465181714607521189433876046721732947166132725391610155252365851539770764726638059258720426245424856802604588164538178152223082606409040679509122111582655439513822486502404169996257617785178183951862060119984477216119532126515846565122506369486022923623517729554735586370997417236743244988662664016436537534353782767277478939222975977776816147663103219957281372282998997352846930750877414602508508273986243554914607059173776685570085924172825830615744101629622301602085005486604546051470701600358492173255176848878966139893451219053955230763223311415574000858434012303007030792008860421921367382094902343422539920035032775141019776902271161183444820636285129054435425354092107675734773809969678608457720906763439539653101976656336419842020503357500172720442500701224965036400213168347567554652530843703229641632346765775118861613513862110779589025686434423974468433878061057660240491190835030628472228084546878034705064311000386649452182290254373257101329187265459658246667309078256406782205753524153572626446836600100334887661486355198450040682787466882136698369461442621040628766337109114916318195637467988092661184453289635814184590443847744305702354601712071002216958927545919995438187631195854648053428052805840525297851521555227350895732182571612903810882478774790973361689966850306233136059045936484407842449922381606756106132526013366759306461110601547211312321177483582809079817408286289623866816563413604109152243868627636344492144801742273204647640653730724377666148508535256124911133522337009525947963667907931925210357883447761718473531081848234622678831347173914277264657758972139622241872201621908352888018766274979540105566819076417748593838238780118242149798293424125256916659503100379744467963489836770453577124805325477229219269756177997554066768181953129028353154562117254371551805096609364979716906689592537937065590912109814381364334817464623610623191139906616286835866927473555110095119954816246317711603231512520870321112926779358934261746821796915542486196318115110751822752879567514064032242447210105419114522694494226449381966191956509485286045198506220490636974922196032075826965077825222586233378841764533586005476155239883446542683582353976491673911456408629928237190663507116920242597366291370092055634522309688394462285215005699901893169682627186836822969247515422552452260441920932637302773480132094136768456170043800074165323511522531654680696259741944616666043473950321233607990624396017213389462714753734241226056601853885533294463665958456234966461068280858281258400694003828708996883625402386464405761799011898711905268205442000965004075249236985807824312141925375509070543499074296932027453833424429199283298763169683693411720747013576008281300511858497249272474600932354347970358967927514965617970975513652526398179995933631054134544598682660816328714181289382174250216339017476296240008968583236462551983940617643369455952828850024049588713605419746825641417214480680075701991899177648381039532607141902493172836785247553694746396852391971875278795063171978280777552780644238759844150979021059014102097234649547403329098730200468807338841952441195495530079844562672427839622020163572968459842741678716099119752344755115809965824604713328581621000111572433005375184630323859469197652273218074196284382771187050732367718341708769201967717276309436444920398563502867817358996223237996710120579107990518260718970590944807045695631557413465089760373928855809764139493188241364694285330364245811945784393699794602675139003983944757343202619357870618762730343305781689909493457545679301101307142909132593579365935652034000626142072939124547597105049036419722234186226604410239338472668775056945681272819794284009056808817852408685738934890422562165956006146890756378350727854973883136147579103149741792134066842762590800861139418810521477837893406556071129760483677138240047177781646745046825806306432418786741955795528051436883695136650367267714719547109918738804448202194233854244537528135828140936396138375335581040506868193049526620456205427825028377387211994833638366712256707158790393280281347872800992066908915612863652455449157394594413984596405829308544574517621663728849859386510295640715876000297676712887262607301767397343883465713462363917958113447945646402318452768011697767167315473286716590833373939931281345483960902954362848310299233002842280441191655281776235027770146060181886761643604325594091117371936152155525844120159457716298394302654459044833049745559129549323102593408315585713082319436761849966757443171631155693765431738183716936941558535105814304474702247789549159998507422288650360664780305503807093858211424107092055882114568860010110877962529624044501369889607537180616006880695126689096240202590796217441883351690257006570576106290908391541827925933633865507747983652686947372313738755408411529918951042252665288367213290762028419328299489291972126618782372787265102488583755097842725268018072824584370711328122221341461342067372375418589381188885836627215582910113615044870285045790145198296296623235902737584570925910468358463585919424198481001267512626713040422474674590927305306885962022680156521348785565527923269875611265776085791086818657889208072243532408929836923591282310687973612934841796379346847838316822338671848862417894575277839079837878354038606317763521998196394067099725484669031150042535315624662882997658688626856231783871983242487408750307298075891638706120242916068513630271882540962441719401237691881183014476210975024270631520675898524219838846832799888915122423718645664991474631016069450861126174382067718345381104222968635963812641960746403648250541301513524963333968612403472912139458493364229679025423880626238303743173860643114382022232467561571169501368880566637803826518201212954476713019087338456346692938390433411718050753249420294514133493376901130625906420836705573732653800280061532505318482512979841573110537382094601704833811128166028719759067547142408160566500072141478947141085436783528417182723858667163773781191985734241001585605983462490605113357441618068881216842079193591599129609752095517735758067796240668713452618051619171902862627244715943859830171892720099469409233982825641667208679627813693009141729152044708153537077437179919507237952662980687931061399485034782786185629519524876389935067760476023988965708599874501175072482852615457725727998661476951215130885345102660900096542120732275538839887293143785668090063044380658712641347253881523569118654740180437277096224470731474220529595703787575260668423096721109879806504533708473583312794505624161542960400609305452247213875425710646953410626234740283296148721428399028356186195366077082959998971037275836454588138523608319054838765309392299963877032176544879467216732504853626843107293543220653795638659411264156185601374564140434101319747749124757812710546604247064166505272158329077231226905269258157864795978489783260509675815083854953509025235296222280909821334270404696823549067252091839458425147876639353207806706097497111295585253145213042634068385643478816860191802782779613807033358956949114431611828066387786808860505404137500073581966293925198290625392859766462131952186474195604663603482694458868487595783894982645411295140043842324609368437906599788413582549747055193305190721164178444589119337451048392976736959551598004566334784847390911672139682782550108303741020725189930582625324226007278488799136832505331106860931342439251234725235598651465725096352160900084815849465105409132950544555582241469317262071885749789438676776371629422306228571479637857251832477743120553339761925686641226265754017473754048674650273094725434646773409421314793236392154849195075686703490049595090076477382242205292096842837085658913046583592990440091381946387318479954057926298788905323656966863791729130267352909498322986129231469594172833396204832697824862444627034096077284088651333814951293498584661018412518191059174276966809630333474086778718590124394883801383614939420678413794897670176126840154630035234521239052548432659073314787213930669273641193196394211326745472821957679414093162747191056871672006316592521517982642392234196889144801821707439775781036752359600459392782375250551415328906438561009950090134993662461266002057225196130479417035838220019104463059330643296265189226868934374786012311837662308251252984861535558994762466603387317217725567069771065563641782915271027414179822756849067263747613178069543439513515094409469845301275852295312601608662215148391572981354176375189027103445615898893599326344508839820702395104427045916380545225913224544199467389395343835649693546903881803967702148158526503219793787024820589277901758860342377730812244239669179095794263523462889584920001439103819812384309073866785636475916910360809612978026397169718326967185731723896288777670717633901389891460460724578767052012953796828355535552413396888326415026624446563640352532383392041075981590802983281514858892356123887469337548250292070601991815070178798650553774633615824579408718004291758583782143922933287724030749944249258604504081794946419272860623127415377918017198569954364076108407921918056226718668245860990745194455983405855957672500810621686782317586167345394753351097318301412565951262408560789428329251967603430583070303075906692541415049085736680189815085281623465017172459503766131573295170661483383421082856220899154203223204403167084014129089833759249518562507584656309438222669788645162227103139530276842296955217376066449854310327394220539259838765009531419853457756645038284502745601716816436222376207756389091565354207228975306002033186383645018916522042291027149371443156227065201599408815492059237668149717063768228559347917608958109743827904597965759805368127040414322714504106657963602047472007152375871318040142517096362367285587920298788250146842776589773861928689821914634505718878982295374094782798756499336606133564996207944356415861475954879619866801110711185054468080217784857512732770307507100178528989151460941172589826768049278942056709168077337289896288700889911159961419161465687964004883114379059263804844948395305146731278689420952235556217870116860672717200819764817753733253217831066953829481854953643884094859956307092348577896131839025316827067914944391022972070999742158878678522705207222902294661965174690990402380408706348259598816241105941716457291939466526849635235627009144113439681877856844918470457619880958908147561957703334746218006585938063251766029007941849706326685350540321462092018782297826939489915857959249887155551227610755867031375307050224043128455342911121937235063106023320770879012855572193228458782475503386059065713309225056442368147541578114632147194682679636981601898830898532578793532294966231343056209592127872490321574088697418079288872411597439107589514362917804224499933445732315636234436534623056736030992600966295893041626035199617970884613955738368214241970926861706249237289034997393687624435838799258777053951799675616252913967603969943294256235283351886908131873744086456648076465644661988521992772724899319319996475225518359694910817282536789782599753454516217291006206344186990293881758429726838203807102235882177064407750428745107560556449926082157709885565324047915922929185225149509754160708453649545131618179774662594728317652031476047882387880548208527222041961616273500449485958839450560899791752458637028476615156215623664839656007249828809297720228573972530156194604443261131617182228198558083974696114570996595249875337312199540961435491764040584427173259239360538616984008735144060345280900647294410402770854058701657475432416477959514749954680211831675139128426752982069423759911476818805969966475700833411527728964922127767631101617938888142197376222198543444451663188647672498314847940476860974534623915983207681760847581679989872852883994987638914476840962786755924683831841429069433006629492065007309428475956269229112996099293860617717526165204495959306761371144819526111044606169891432077660141568789938382485002035111240003054996922772464497316161680396316287416064324815721036804793937532579175038929187765399061082405563395725629969994704588136010959250339013971494144563702924245003781171956825998169080879999533971090910125423189491068056256494312859198385916472583349839156970723386050681734212710026325323728912235406473342030469231253276999973182092809947689026198331811430187695909817578824032054972226180656003050215861953789510107309557463083102513381966214084597390792458645693208124199226767727497160502569891617247618933311530719502562547023631449667391780025317581002575349462772502779407300675918324705354212693693031527549526756049407217737448175825647906592533336829724153181273245441092540473440213469220226627882749822932821907269985267682226040543789982117519993980175906156245434253212594146023028292008640295228382504511162976526734756319311251533937849425552354359916037315141640343085019973777473999354049278925189648193944600166489601481185138036362460666479098991937630533958482254404456038308379966779386919665618592169293909648887577903774157335936167503139975985432958151556124698201585737039049327660931889349948246636427198392512709460796912692457083699929855820092364010890736903035389836984293753227975766765284364048974459947254743792785535371781702359153917573310106943665151204581334152273331545696222999874064068543638624191225786953084736144236847114429699144652330666739823202547727825467395916346861740411833566944083807264427047977661653987386616616114577199112137034923481512656787542508751818261064426366385019530184092884236180471228108087732100536391066254433669038051312753653143498102929478730998082334455936521984611729956542282922620786226199245287226903156660415675041712938350940002442193666574858184911209630702809926380836945545772990269431442685439455189628614098624247596381133010357746707232099401122804074925273881277240680168799400811891080292401235566251175187809332347430211337447405472124035072322442952482715814773008209333190746421988166048119622991284769545899460664622806180764039783589316101833573945875530684562941370291314734569627806482458099335573251465080523505650923079268641208389683902795462678376564369458245993144849676500492596626471988502105576227866043130235239695193635624615664252333192001514512556240645080398381761231205077616605376604329614867015448154664546478927124213585686854626282000588689425607596715956341090778098067146447816152324187849049802907449125528779028413657715877835064139837482853300444217430947268138021855824911984416219031044320125278681778309541954681812588591157739437596347390112728841113339451376690272628801955015369670440445016116264035581631404135984918153011296529850496532674087331622449438435975008577355476662653167941285368950613323868705609169848909959287951167735140054993702677685590959932889663851011637846209186897027837562970129436568092736201804960932223196807520694702397124225746133922527384786392548649262370736327762289974307627062257339090405289602822706476446620030752195676819286375101678388372949654388810773755577417625089157725395632320755290192885367883019187273814999359524704243900669738607394792034330713384769711735169426015455596584658055873749297892802125929479633182284537104216510712356464825590810744754340232579515093022384388730982535780650084851842255628559051007555924007882349816069738893406744954917869830955503398592021724691874385995786640982918350987924142914817929721209154174633228659814969290739225067407691312876498820419252994853675727357163280250092315291171708748640760330954149742328933212748974667180695295872173122294476305483565852557506030899407888020680772356272763684032860797259254818061183655497866682819831594469440440083491482982678415435338138063128606449821771887046602043370879017632134750555623940893453582481968669653333751009872552238193970854238540989852751425077656351105147133962765913189158280431738825244155271889481578870261759327157547223871936687237860253963368990339127397703347967500046909958140485930453864762125405942457012350151278318628862721934607191692464754811423016734484282523328591657483112767806156985246968346147953232396876845576187150361180289283760353429340692347766935333370986539196414102422609300822271410366663252730276546101477441822254681908684530188519137731297313004301850485465986104549118978472810855510691702839991962358586501655420184305001012880586269883230340779547590599063859982773318494793214032648833819533173462721778764103535451633444673557731552765595343464053199149718828831223153922343201842105752268153462008813392188917041139010250288889417501477193641725694042651463683532050253436265623906711240528765710333208104160542449723465367835871597567820501369705018159447618730218939015795914856642521468462112274288941539461185832643496877669935240126437127446569788166645343417859681805221525355480120498403295204456131771573025930224094375460542221686048176093383430616478988486529284229133085962501428185929941379182500892846858257947489761223790561795040186705218507993568453371687228242902430868669697005166381584479921047622135829683404912708355741575466794150147413209033319856270570245791503283178764197605749028038362265905921524992401802531584440357317931676688490094388557071751709425531124727884070763832809847905846163253749589157373522698291218392645813832730149057277608913278101878715145474379163626580151919495331300662628069752158494014023617124160199527105643494753152098287217186614308881464399629884863021951905868886478394175857665274372303009634791190183624091763174430948999572423101447096008738280802335385151341084329302963797473923251402036588506172918477867335447820103919644384074967137300471191725522959339305257396728856373478803097887528154153815475706335873688775205789982093633695043394164981812983394219124181339437635562525390988260664548371869678905640936672422110299216772317237033726627504179411613846321603220889437270981868653864180284315337416975845773757931202661410995653380419738183247759506320629679116403231274829775411450540434353656423178741359522544547809074462512927777651322256584342841413119210452489828710080230363272245133220758608021052248344862557656221451060043696673316423511745516968921975613152937132493694279815529772847161321643785283173329827547899532973484969568965455849981274762669089564570775713140999978961451334042205619239798612121669457371619960687657872522603258606310779830988724322056255117349063496436456753334116116439233381606357648133733526540323450389264634768780109068620821623164143537521402131165747655702182198174149359129959674172414585174198277329055569453158184335705051333969358891312808063698618554280862198598187827841956560799746162505754412717152984544972533863728086810491119761584913675798839782728577218414582627221056179409942928617690671602276816930903767624705156822288284860783829670379327487446947246653406494614318816763137480457197777072959509773744842707037569147776731950826602785807103363913198844889888342604251980039873853056809559895527671487684537088224562779665893140544476201212492330562655171958019397112740844064677908370324535754443985636454985361564385467613921801605269518622196954505533747189159987471680643734228230331800366293745597256242598393918938518775240256535931535113680087795375599926994485208240863107470546975679065592031226581676125681432634674558320929062554668610436973035798614323877568504536113541634939790842675445191840030018612377961910405097491505032691495139270281528727428502807531901870998937439412448514220932185215945755625867053752262285203551681049959714042826093332348287532980470248393971715662011125424751155642653190978178863679188348196644959822113779111208508817380650840749024130854269168950947082737609876951528133543664627488921273821688143615324111421155177318228864425195164861265114613263321558168908515611778125150816698570544552936609033774874849106280488857779246966189424032779910796924632914973333150017783111202395892121163512012717033764871998564079269112721846359551969891715318935576787745841335584985520777268296104592994644808923260396101433343409501733547389962570345694286950995727710033264085503787392902028886981476976732532054049778085939047138192165230949057936062863727521126200341588247436348990536259109103180956734263756980368782280034058482099499852352753017262543438167763088914266373349316175990632977187789047300762907951409568075625539229022310283631842319888933376430471633468130616972425447292539711353702456147811473309124395564067136490941136580856605672254882991235694836668062120586625695188297110020723259131725040615756925974662870613230620539543376796624332240101375138609964666879322835051160680381078669735368855685510401555862435229160295181678793011702617687262454526669543991357752367036104882678188809870991505042262550679490352898079422977806984111812531447613699861833815497392150196836131750283591064983252946798680764767012145899219790988429992346781585829421889013096221697540738800252092040442768268464661064035529445019937587511297538439253458244265561870850602065026502797384394762490314088605881043905987540518376696966760829278124579807314807888506845546956934677474808237537266907488694319062777732147137134810468060010754104552131954837490503339222169168691456019137730883765778003050390751307918778642395594734652739903728071113915590833483196269285533293535776000251713379896147808711698315927806131857094052722568391164362427610594979915640334113902230383342842723314973967548614337754505138366754773266951389732446886687828706836542022983903251868277357679011075435767475431982563665741399606085622497441974669641270785586590817818373171764394938739244413554927402470534131116553074899176014570196710277681593693355195942570043780048609421410439638530274540073634417645486233125660746997777266236589018296759868232862281840056355130027940477852303987841425446517123793637363221418766546271835020750404211696585581327537060949549396088684150781548001295641792741375864842027664432756534158379358580455384173659933436300411876655657268787340975928120275531538690876092870598000893005020852311768046089455450947693339070718511290321285336585850609446641535741289799561086653599374450155429671950361187361007298176072328947181614056170581276902448674718723174932794333554049221529403886834612334413734584969986070743331482481383476594518016511953740989955928212053367566731081545390031960287474722902004549619491490582646354208711701084675144991169555527019678419550177203640721833331261405318711142534321554307581876503764087675299208711914690861099598238068026732945896207112273835210934902500028284513151070926063833306903064017312142566630258930604188970818191398313025083164569455950174661055925801269397279478941583948122858817649109088533910929847350165128092244341657041556212409474995375054627949682185813132259407661697827640157848314003880198084214277157012958175632460283346540532080511362232333083533506527795252769053105094086899934183777506133343604250392019807001030583968828550387555784709297640721302264529589746105391847844112596125169815480780604541902112985643177421698478655304027377965545814866692283987294543717232700274674586278850628974230833496371071034536023610999943108377557383177320392880897791382158498747825537879016529287238854023892373963417506626448121133320048443900994956419636448813924990823103975296242759277254771250140450364016006051490778447667154863447731684046528058363851550396423650212411945019746738768680172284143058094606911130619149864268819261641826840749452552829080093864573291411576445797560585453280671541941595268336307164145132223932678321224663855857725731461244411566581077133539170629812621202472441639694174448452227438545297038260258752336440952714216674595207439596241181194039568108156152962036834926629491033010255353455135325564046438369953484981148619241046554485145299667554491162274463988590796261212317234208583953633534625896976984610349951789999226544295370020743726998079384387597158735694345774084650154113884711128832077734120878703424663884307913610136706177657376257452754869892066628657300169170323790624715554900200421506125933879040628814016368395189733635598935935997785546953497121205273927186963094556068271798744491028113202794357824284307521339206291998595678942020882172658852698871307914065423150973632207859842752930899587310174134968125486140159344803173786398290062920393853149347153880084930853246934164725917187853141875849444763279477978266090736448146025135063472115581312281613825905785763581857152654560164570999563171920247294954507436175036947548929448487816075860820099494210490282088128103183613677798318976268164032683341761382094385140390686570772613048325959781179516641318805179861334775944842054000127776203255914290771292124115380038608316408134921596581996761313153651359869710733553889041712941761782815915984127764023909782300698727249147556048198845525191466577802970138939104185102730194404973072560512905280967504325976672719157215050737538962781284021124143265564702016758725762739644642632975110367890551372336733400948684335464711895750807169145370359955418752242022829404357760904228584164120663762310143206050620583172082890777221009094123101483801778870681781767917100777106297167550346330910105918370915891192500579811414867769278628985939038067491624719323628102215432888266925331072051918627471587747926250105183072238944560405764279080491442568546630676002633396444854656553933180147139202187829172092750707703834950927841776114063855419451545347282138367480949381045930340393277855178266717479476662193459471533422625780253221530878337563642108375282935877253389305416282264758372870179858024794768457620226570350943151721600840999480100817964114763500785145072683564895405494102099911817353606577822096111781496276094617106602421870521466172992848277590238052946669729971441652274564426560192355142619061688408182264274520396312893280731667486266672456445894748122722111517629918429102838580156604082434874994937332461669097274166113235651939606245737104917804037733573093043613699259751934748074367433115277397794211211135019023540397545230726180812397563066254017884778513129831450089873603972800180435804004595240823228112598146925117660450172519882191446313916019665539403047335038153326281842468022170777698916739908649889101308020896457110534797038471454343107894809400661702822163341321866310126363689359396868361569863076679555781702956639934727908986364514824580307358016227991698320961293618790115414268558380185701656350236658088041275633982277679926570857041336249602946654716972515698758359640225081998170405076938968772463920894224641993444287757365866675796202961340447235404303450230779151064781892232060587623579639580709426056238616077176912025751119281100972441083358225007283030616889719991479932364292883436156133066628289802618915690723212713231781410321858676325783910752421048326074275153786569515454864449028314355443372261059954774826472988349168552675308177510168589543824177369538882710724817044790481796730997737723250792400585346142714482985120653550312358105319675481813614588151891451516958778169663669161647763424808595548010061709380978202420485871090371071265072486041160704207664456690168699147912276760684075267131715713173541106666876299091691037945820051891177762221217939800732064097781532940859980755315165401142416377305164301729577822684646848708237019213708451952127563737707273587355981088322938208761985503408671738060509468149143921734575020854116358756340557382529787568615662944655583855591690820979093948454812316589237740924572018572423883582934176544248026210908631990805038147893303368733093087023901588011827827110815288756957588121358754708075844932429358293426505906778309476282031349526498904183045726469619820275432919095621118257821216776528436052007348755211204677631823650197726514761623192007102178390852762401329046768946681896056281768787112704281640159290451041340700522796554654959949730570273776469908466257709228436551865464156134510903668337193736425675410553034858039210477399649656140625351305575509610015020164644884474860877579422499072476712202806730026893518027517103734162193019733220137901616800860221370665928031168589265535833175206733298018876643668756866840018806660296862278049921997343432459911220386274081117329747436876163967452613039979054219553228418527732782953524248694881324170865675517134521430016248747849270914156970398239362744807152372884307254255429266051206020031513921814749277144694193422950982928955870014602232062214176171845110266936951525143942444612790790203771473059851664319473964602458070622093026887732517937430881175245410973669234447460918791094444620962153718559395028059949379397840928049973828502181839292938057451147497118239885182667904288894066287772042902526396733676666039520245025541539697213512848033776085958797764898946387812210252770123583590366154978874878356434810044949270005978118833825552183177591078200178553315397117201609055249006466204341298411585540730669922414219066530032483442573649046706585879842264383324506180168991650775719431735002467426597871047458020685516582457772894350005226239456322275955677194504405016091434001755186684367888543903151951678124162291329826305054126114453302833364853896808025318475841346965683691637770446472596144383853697924345671309909136594472121307033082710198633315668532721546551273992779998769830059157917152442227674331285255341157699867612139312580370684205016880463724142361731679936190703072720391660430765825975875261874237595681735535090463111045712063890186662071003574511204681517587058465253880157869059108523191548686179636437375848887275410323972305265744461013062470612192100627550867075244684471820335230840146957845101917970457762700200202951530962917537819442923420747458171216141598622037075005577746915598659283366141207399416892984142814211541613072359286413233574761986963169873543039504840292622025485287465647965305041768132040782796072488476942235684700018280220384576472242904263769434042002748563416410286557842083912107530338007145933760168056544604034380231665788779780471276355220104011390724751405649995997306061122579299157510495639472121838602373082847734537503395899946341468581620479281597447037725660082345106769185868070288524252476627781561310184761466758963526611604147119700679890092312384671540770230711959383999517842745941064362828868419484722766368885811670251633455785986596140590891467286272304093200863746276261844925675790119092168141960786922815798526231434068768221588579770019618417747762583641904426341958967487651643147328888421954366454367537410922968871873879690722194643992225297569483740600098468094861218003591375847334946227078233314865543975762969138265890460457081552136644339085132731911848579126326148746307121893798283084750002053088513819169384599509782162974582112137625448163731449327883345054879675601682963660402589679146773513908042190840957120167851094977824143361550339891175311283013872921019200806483421501490247758971667058425715534380922021926482598242324318551924189840029315205354899118130521000780706615409161095585074736346963415596041717669610416139821376252685805170150485068597475430485235730017240332082570902217060244389000827517831878386920272389443366850684221918894931734122138211135764191221124931002697298875871198694093942221115954290748530118603561865256259860572870359230624873540034763881304069491593037183724699932782042213056055314258172973006476311981843671413119633481618998244741943122039543853393754875563834922847546046721856723217502200780439110676360591408078461966802252170924284605036115359234745313843717235706440895244864953332430113840382409847888895790633366344463165247224980514002491824236529967595764649639558554010005886492102241053371419588924237175325673894083555182370280695737786034086132250872695262508548176803764706515169400727773867955588667031737027055039713441970582848282230985490074165123715165418960325717305383313639839544716107785853158659312858529171504117634963654486342058496518015743524457441263384481830767129784603086299688880492939371810332510956258948756164858457121906803417668031023295667032401384431367416823381778225944593192276842615027145639932068163135706114930561349754602353649283507795652244444672063020909791891827346458776087898673631375860644737809270963134607743620497149034630227433476385822386221064793679731488336296032277696783547271735504712432773802616596538265407240769699303715150750493886356934176511559593399795105067802741579283662715472620628099145034057322822388571063982980609200811135474885981650725770782767514776093946808642916466502761616154875701280638976527029212554722282162260427104660095542580654652011223146686324889361429174155433069869524972813593139283449424187216980226167688101506826114825888348661848833457967680933917069452848939696701781148503294406739114703760704034628526939634952752505011557240640317540846661388108526419478480564167480257605148067071743007881692564262886361431139368932571303570565708593882617045213583980295914661808466492104775741402619198733877546910421101317417625438701807269097511716722235846004817065513890876086328415047573193244414327312741891768679737672225114051505445356018699985400316669710174436970878822984880462230999512923082306391280402480036210171649442882837421424919467923862134954493884710556338466999632547325372616039745309192155127829023736704931734779903603658617285473416114535133689264292308073916732247371856347915258559505685706207738441835802090865699581645161855782798443722653312426485953049592055072980936344818896192804384851026605421941008504116078359734335675746912909077744879404785111939422526768886019383811652390490524474210794291768064750894202739690546387360480964763182367708892827467942974176144009846980403391996488385548086419222602585600550483736740241667537407051822724482477133286228662114921469092614453655158028325569796736796943772302855116125911817913262581966233402020640234653035047742872219869837471441155245987729288401972411049606409014804259355680388150120143475745169967449249459510080411671669641273396909544683045089877163775770095599618933150711910509166422126107652805332193681545537938174645331522036941259623327483618765807776551037234636968325069034194084269160108083324685904098878817047051624292620857428789642148343883056002593081708530824863367878397162638910439337571041395763992086057793638283469699497940532968417458438862330212000582847113745895549857451262132118045132589423886663039655055779660101460460358308666018411206217667681846983766145655564610501166184049114572072619598828669114871013780016922200699670611549540611428882852639124444487057935783675313753049626410052449552780609092244317009045926180707002231183389886688116249734862061796303729676000525824836292845621439137735377391737032429315097988356964774346178310204662129238235792890855170584825302878788046861774555773265909108857908574129697748076420067625302919236639652230970409732523997444512162857397895362092485982999973669607860079859084408452873946179943997334635810575522738822924250034005795691788646979880152356812931814263449039123670998034261310936823293859837089176148275768459466748494441028052347882326516509763715575697994703275624791877240720811397404659048893092876149359534294582205126921230577489425762060359952883835585625922519858696113664524651524727138616069673862734024081342847793699989067583294162833183837643289594580353553446439753954504987648582315361990047464072187404040262735285162811130913365413851054467143835953539170826479783742973947729082538384442986225431643420618042145937503449351127929161316206789492304545058357401934340462510341272150876916893925535289323468554122040292728468680013613897403636514594248897062114323153644598965740250898788086445667017294471181738155572458858155320281431284170906970639618888846744527342786895207588710570195308029614938984927061335233131148411144036977668588325409151740626771318848578519417203288806470966059307792318012839407926854569418252483269151385526710140829894381532875318871226242681918335828102707464350433118955190470600687221447851224057118425635167198198419474140609862382151037530393327130887129538241394350857325509491984917037854672345655367552734651971075798746133178537943028933885043097992714788625162274657155039152771875997355566249786042607950903216701641566352193862478224255520343094975815269646243130861090675404780043330748288047996029092290680489108524960367892887134359115313176926528275190920817740019220184287211644478650995148022334247438134052171100318069863973519782903082490331110063241423750640590164033319241712778661301457973798577135318970764558254522002328657089639920757314190515733581775431217481739140217439273866493786711840657202683561736178921006126700796156967508529838910008902053373753019734261560880237500252212869024455787979896131945613850680507426572305722570070040959693027072510243533674685867107792001858242151150874744520947002241162640957511656206064034038011647385974272533197063049153051645649024459037130776454534491873368167502741861990823037187150531964382940249295485374170956614350162205626903363663973983226636248421802182241402061087751047394125711465151465149262717590504727307736866981516090852552114911210021658793216049734543985785618700303004538122679112507341581566546465412561442076060236961139266460652921578350743258073562282594112130282609765764942303284741096433074537844368290802241975042389111272160168626545998339926335221777518100411240180781827019191069023603029652148975412374826093248940176439719850472832424761040122701850121998035918931164995350249295142850965954166675960354530278139809157004136355543520889746506494382734073390523893807674190518457976205561732022194043165855506840778551032202124721135417286449540665091825080592353704953723966761040543268260155430634249330998945454625950616639864132648609264141045419396435370588596124012017453320533889772167199817699470553779196444899910059292155517276738373315493410334682244062392128132776665165529315139391937415123592231358059512672708435792877730787809573179184417514017857110690005231432952286469474413471938441020027788629067789194645002736784697037841557679936608929856811129856357712742449348959596850321936530642952103012963229953737108661287905034107287055813348929445586834560925625468676447713239167851117327297674146081019428711368337786123880384555016886666307191372152760724233244227345621640863121794690360005596773835144485943731119449168750069516242600694328353089862894229384239036258938390838107753167465885898436742297228191730322391509979167205641528609096036076101447771038433604393448689535278871116814414881652342136141608527479416247331101615363707259703612425044706120966101416027331084243392088081915374620706818553446680660249539701280399208859254510413206581107352186145141409950770850679408610921205951033213012309576100039889380698759556674960713029815864591571741847194648476837978957709454472763414588448125475692465093378206831406059022465303007265139862012717891317303422601268007827948241381915800858180157219507465442330342551306436481402581594929012496211773288793545380530796258167402568645707126172818464531120022556788469863089630941583328555470327892060006283570067495773077727058815873279894610946569903876748338337690577141277438570632527376880248277879210590815458102636714495477091207196065140241806196231196003738472961192856359493879377297388520944959310961920802832874520962037572444992789532143031256237015647367048101407105772015525895979571583525576072900973894614928915293484157473683994474208816760495436796931581175577485879777310870307178657096634517529179884869320312594876352100089764457336584139846675044599404649200398549747506510818448591895173949122436629286665594279515031810268222882236556134406584442423115113435619252915112565298169640276698346090714180665661270112630137532981740343238418221414684825620210709821858573798191814684756459183817608863000493945618647480935020653172254120100619137508320425896563987584584693243486059810392490053225896831990649145018834574577028062811819799695667995935182421279781538559293696145256019499908614674467089233691242273010802089392932049699779774198657385433900520058778337461672962122956961584234008313377812540952139605343766090046929583052925170552286584324470986902272577908541043276006669789172680665769680825936258902393663586734012864842478160667518057035335620766437168110225780288316515487569539711799659313001060005445830316181636364991775280768620839880157406469145426459321774757545030136648348220246886061458960386412710182153475999052603926713653796225353740079992054568367595258442590835443969514212186280971916586244907009415913944270606394905872595094681792281177342404719542272964068705356691729009157942417581154144365442519055383798342213588765950064558195921235015667638618865700154250572221286475887437215396958873649653106309420331651917253789186064510031531145912480535879072760241928246423410800342394207783170072641576105227815541465017738888531880181132368239370690898373170524807457426761936178105180801495686870308986170152075490480621241073854731024966938499379026641117279034394043685328578057578472516799586717344790395649550019382986692566741035328468058366254800788552375972437667959310197497661392554537196544890990954918152489262026601894640221607484081642398765908705553903877157993647809166481082394636862565475531022666609444042534148309293935657619631406362312806508057275707394336745957966711555145344782262532816963915628397391928515351202302359379543446963573956621658958398157753265993508114404065060292582697651778972374744943160096625609264426680034837320396589818213892719247014901487372082136251065843225607150249676876916223401060467255899055620482390348555351683585439498300637523175454325850270380040919982054177587243462130975850457465794508804446063650306248314427404537054952200461490944758504195810829426864049867004004116853011113955309671379403639178412991771960549616659466547358900109047949393761642976594137027566433662232788850187910911763503183713303551055630484743891249405802988364825688919694094649348001138014356871087526238411165975132935084635034707414142158280272615202438488364162938504198843785173507461942177219814776502615276552195625662306713834756001699570131413303564411302924109469718380554301384693135693686588364354210838635706825158348909617869778621010241812556492460005274405189076581671844515501497155451328896788953620449414985997812687151800161056830030532289963796878941594354262834548399162882692854220004641863799893166561949581623107789002495584716177935352369273722744961351831228926837641095972868413123790067094240840228380423383488767994032218651599348327428942134244984955813991502434498806669525112020518907992147078817044436398807532099996230440919975289451731637920489766439242043813608671659976331410242903576822218204928276645860478818310656179883762039432102969931934902426181197534673104874938658591640932189813360530108102492923985807141906260285349009362367696194725719261501868955302859720011917036834248373740829730629911439724212890085613813626433308759312954570521941908501283019866636955297214804540937908356854274164753526574903940332533079246805638453813532339484335067814533131502129100817813811399573119836800717787205871597861064951639369597872612105714642935005985216428742463931047951170690182589791219224957485974600999457320689369891091103801225319850990162663721358230878279607249747168377282969185769769660580061588441460180302922218314641803090650748738638964234750643417044604542339096653054412345000129965884861174871211121340096798871000280918712405957664156319745202452890772137711358651801216547469918972870480345922892652183946525347976429846892697107408264356221441669894885823575147315645016114802565129896112209298921961802935050795802753845466802163645913030899531364203805275186627986088499283048336639314495928007662627234207197123181436405088129086754300306333512628860182619970093369038568253772951977371250937676372205690755287780318873533249739629025908313133015704294455030709681296717161793450681918015603512876411384440228343311833645775193830820534218408849751984325940673361097756950651222980928048762976960285011343705363100423947012453924280322801727487564595785295326454538705757287026695915532045930959786575047380869489881238596721685955245805331754004216990161823793871228034087507562467247773809944642706775121868150423050826989649675427821493532737855545558526717368620294563270504481172180861352539086665126876312101846393651403823882717767820250005681486900141687524390954123205845066979185076871276992431119726699553990372924595744347137765764032013068492343850543337220732548780544267214300848270583578367899512032085668766641027566847157896569811803574856454110240984599704546802558517913839892213022909005145383164507438425899029266232469047506080201468005360142606543273516391224085962263044975548132239419902287814943662307921088176652322264397518924579709709967953573419025032548257479769175617822356670093092491248327411410653263835448505838672587698161680910047355840565717952339076308607109358880238692052035041275538816195529356902543236329145805425632168377613702707774215423939315695111743313692323428536367763431857305265980467140527849894838424257238889306500168858962246177210087995106361633927450429505518494187714607858761902615895104231459506464183859800936579754362698200240426038810676154647846328770063031266652288118688632553061481464438140625478710631003213076604340039038567221204455322023051513574128343892779698809266732937597256769980261466841625769221658444217756407783223097742421010468259948512193146677458764643391198738981588042432752362925880465341202862633746008347603450619449650876864102136413665124503415946496814751539307632996132927991352861993453812741398202803842766058256637257255054984469376454279086227935817083003629868405993601225600350801873371436418870159936595392847640858487565222321232109659204497540756284457869133660508895614400229635545872296843258390731209579511638161322720857413507923430585450380888007123847429447533162122522780714107246210560676233572601160823584227750312047388458516984304343884285648022378365685160158958047980078543763497072865738838194497906024129542563797794651622840346377783187643435566590602867892573372943313117328071258420963315481806076597367923642723379948897796525098137354191126236646093702985424154066369461605630831371343602626443181788763281641089427275233640798936552302260568453212172807106923840176383071202976039015338196088824233096895301388826448543136557847436944292799602017894482796123783696485952333529528170396411441919378393567394812870589858879261188873170087587965565240117229240280288468672655683781709686993350639851650571140333268990534343517298345595760537717032594443121093611359005111010901912605654128763834544479800761859320376216159951532495405433892995262786198645461553937291180150625908966878448794396337726503183188967611008420058875837782907296873965542762237110489452350259765035807542439851840832427818350485215124345117654987042616217866664229040915139252503413971645397208473482891393686699369633804879195424947689926764692296212747755749203055862349969204818259449331447699747691110788066927310270952622754603937800165968874057021233892877102953272508868537466157032685088736900127743156840099269503919853260836897847620699697174455343788387432388420677781051038809440594369545076195342368458643521813387788806892614236797513875608478213863629691067687825368524976854349263687712111289189627812663020860928588566440417083620306446818371031085989365008618583435266697423110669839494594689015088402422908992772668012264451340653812073651277236030942575198172876460903143202278327690179105470831357293426091994041405285265734082627900373136968689072662692208162559696444809977524907585846231616574060777139520183176309461156947886638486997814674581996122423303625549791726901090803949372823195718254223733092608691677728837608494900786883631208849737717795969154883027185591329217024519647262667313543056042894917314619927888497530745002861218706083309727129241352978399069299882929314680331110117700577256670898373940088410381796555675012111302835292039667854798227743355924374449816666946713306488550556048211348295221821453843764772565425635530346814546435751784335976908542324587156921368562038974212622085423502276886925815132511601425602340061735497625970409430317384945800649744536859822610856893327021068324425050286468319091990038235282550069530949057877681035602496205001375074947129303393061338779865512004109331839188919937586027084662554656085858750551192868713884920299301674218023186578668768251795113171493780237619521246350794855155943709467946905458077773061283662083436158352441470528463974500346935423153342860878472258371252965814681128539337323025022166688219701714985746691830222583194765857677962419591690699133114377728435609124085727920605146125563399521053670878356136915660998827375503041172609979216829293699585609907011152756949842417980348303434966633096980474349126963145929977448508023853610498449430398642335556173731206051648281462347035434650060826798366015056275847176122648248781345697555517551058390687857791441622586509417037655146134420539847634498949577223655383106131105401460114659108501332557317184332244530014686947062070997750447350632821230295735066558661265551213209025075188776177191095105665118026799953615803610423033212159143120719885940664950284070285067925357589690862947270653844166254439794623100178838877871105333675720910647375318442997133922347349081386559645934425589223959715010634061970037029259798242140550264878530185531564543225446844732013220155610654004509864013079098878820408364438264618396068247864442329653980052640833043864775511964552644060045882655095390949833292727403578809963872864805449674356607508503270834202595547054654568868955472769182432543245206518421480921978614255701191357278157769258905458066015918100984334236886588019807810737622281512120899603351708470235678589801239326123981203478211415172285769631416758714697491543847182798305154759930166651885508248915191795284557394962801949402853420144740292528919602955719546256325001815551407692632418517782962671282124858060937131109339277435334436425021476723434422880067644901030190614272089380446334059233530776066781969718691552442093507810056967583559198106904768431059377789945699926989235722519977454994776061161267651081517750455165742268942786132560792637172405118395576451681299722740240376177270718956323407550021772148154548503344060980162663846743434265302535415207020424583099192059617382055270053555851242600670560679320870785937905371186352964129565595579826622013829411871079717076072985148940414670229932411783187830500231998081116108141144012945836291065171277825262384489993009844677767247171304599413978639422707680305227422097384755277981842372991471447632420043943680982312691644275084182397148265051443112814118650109746862473151393996554053790669697052185838392810885649552188563688287793339659027501943470605498514867237946511897285654451434104107719001896234955870123823621355296302039250516617479645009667651066007373430604974650894590906067993840593939875935736078218575533374770895983256916581067307442931888328819037373555681746334764604784612479929222588204062985145438452007490886568549671434690873325444728119434743596136500145053436251109543084845569652824562934311662642180348615575498619573070085350301975591005908532236946454669958705193419034160770156185503509535060231461368478585521523815614398130510433705465636332069038072176122267996063364170887440286155482002080024035343506700766219339288745803241271888993043338126469107446804848163742484183182716036732040609080339599266576618446266284792455229209995269323923150935936878838089404749405440031048676233173429048047977171179588596574442681672632933010329979659000171489817535427168410679053237160377767993753445360955789915111675121992660845996367434114337937269645571211779255922313946053201144429487244352447731027922373713274019864522073448501755846095969874260419636473685314134281625470833427229318379781687256818414916729012655042240697663429847561142257843439785902225035286103144943996503244740881384951665821465407687468478848315393063143378548307474354555891733495056855808269082812837802101341915100588260178879082797253124356864529324265064756400136704222232061670224049754286441713931371174980704059906491477080846160851763047678065047757500836474634096083732272869247578679442312906557873626717181567867943977369524730075639738412807742932375010956764762095795637315688029311197638111713347014309089810336485227388196217868007221329623493304725439497855850067110653583293155457601608661441155294149522161886194222449608282625007620241299020040719948370674117034636046037689058498558214905906451341097648342537846689805358278631231176335212881197984988239541001720593613318381594734580281311092814139092606539216042481567438160520910088707567775884387670877028902389049967836215165022105342797228766319464782171957916520659875439865714938434302162438726426538910979329325049172777508883414397096406289687137946236302223175065304076968483994004321062033035066165410586349266870225801121268041796681040113677228122247720370988367894673288312879959703981500841331114400489055954398060934182298408486666777833235836044983585803523480426350211987581838287966732492512132947629910551571637900783437992714573615209064742304321161906465560139539582034150150653941130957836941751102066043759935610331653288034962493378643740231172853503737967481769125544033199414741031439393706822660376115875141237897240689517827093429514649415096774062726340714224544992649112951730814628139834710136242685139668902048487171519758388473332278576401981638352160402078389801848053049835444651866866067086968302125681177936496282466662785488673807792413359760488765671384589058973711759503061392609415438259352897961610538399599507737955043748867862408326927978641487487125015835788147327733447481468041385770779128132302390605364979993176225674946738152887208351463243735700447158928344559819368877214108224835916480733440384711660940693607407619973829109696125752201251762356166376269803524998425400420449925913425834765054270992822248473699758803848771700168012132646006462620902169929994059654561675225750121281770400477487645401494345965001469517281711108570331094247062814299510164413800047741680932776522125230996360086590490216617494390440932781377902543440794572612930547107432161356375083620408607878168664656101487728126472924992711579950131778782185698660778772753576399639968442070637499188475892848873701626231032041605611816761210705592421860118280100078035914013590552913756085481467397819953188084309474312794241766717517853263376979033063733584810432261141558220166408159099822006255241584151784456502393043782423041275089380284535114714826715085665953557839909463924795609392332734706418863300463610546611548298770183478210814366456136575219751050929080838325785535052826920561247175991590515488661566989159314791340489270738287637597234061790450960655328229213291886078653724474936431357119053131509227363162168691368323674737180235651850091964933294869433594335373541954731216843112025333119522179077903822123627449900129142839241058773150407619481452576268833640086654308348356711093814770983014898174558013264126510446678231809231100022721741302259164367972840351962425262999645990337247660871055165666529523912766507674591188943400828622774191222306441751175951945555762095835187967119238790594410270368954860738104160084172839769236012424283458185836479326576955557464471947534972860676004645645589708328080072833201453060104173604595994643369478530841806649713430662424839525162523564828138036874219470294304990651746743800791486485432976237125121620651020519370360064054619240323103095775034714207931766677803287944021074531101637782931420320735747047067856562896662476683475866444345802028760556193210194926751870116692315302264795927436294938213696334384626289367331776592785996492973417809792213644698998885523947861070837959559829549018782178089719736743680548043619577600301388147450017638227717296785578618898919276087778891220031911537112613451966252777374363513235048641434174145841104309360942680125961620323297629968937023470006651545263601433437116832785341122790671045905945692589738817458994955731133103574092478753107170485562391779567158295542435211667811708916028692884161167844216128268556691474392190245890511710954862056885769272526837646487235141070516201758574618205799555887212194404143081624861858441727534072221134307096477161912482025783841616957909205370791352314857380038711486348781501370370712114658182076685536613404988696485276045949151653292540892210785721867555435191571259406154442682851758327555682433625682216260717551466727073370643386205774258283499926446024275765285345825015907563597280620855378116097650503791315819768064135918297368780611498000499910544318274075980243991004968493180551750027235567426659031025613046502254278566106709878912234762410546580741899792382394808583309062944234073359212347268095739752807111264677250990231720046182022727763085334574466605508850124330405573258496191319491753314036706193912222962570058708674691499279888598980898171340673871966671769036823793743415161192171299068146086756823145640684070560114533977565220504401747029171723705901736120953836983154177862265113576059245703307681890902645986462624209128836754650601964664217861454907578298885359108173382409010521776054962760393158489653610399844239368255105557334701548605742463569712416688482717815711218290316237457234374684046448281109856536543153773490139065067861099682145922423962872729049556228283125848673638071732056173899454754210762473523404122819962995511621909083567038889495561673836199192382654848386877454804807083817855220351511870120873880982647689618736419205264919655022114798208572303469363127832222786019480805304837053394418370867979175940020330423856072822126003327953487500893799525494642211733583204435637369565947317908107315057502235080564893115239768844416969557256185286796952698871510994267392771044179755283700666197516750350098062580544925348622599677386025333782930476429012491277105528011525139612679700044563908830426879553309556863519469775656615884527834187540591177151937877113868734669629464155449628846842538960557599113640631106069558821002375019005724811874243729622922472503212281857630236475964194657434159853699342997495386618694350888081663642148053802315574489275844062462437779220580678036432592453390840098216778297914898161841392236389109788254090863496974143149158283303967084229694921969634646609490696405810160657743220784405387273364144126035153909476152554990921256654690374646181885762123109331395843167443983836308389626503510264218252734828408373846022185179192220991479555853579520736211822474090398158459066560338368907610064476992083777148041633746297760679650338365703782346472136407769479956664409056868473755075979057761108557375081770139291257488659904683722091578232331425911237045389773211951522200642197924516486946260419398722782367769941324966707948866320156538927766063434465232120128580413244317453846735562038520358799377156720140046612454299994363182565427487126716939249263974995240376210823145267971820214775464348335498582114488778991338743401404959619572329089876997232300608969021446860194719495129232967556394835904284745308796665177743896586445190540369319622398654327142913443329208308539722858775647749272650765668862586539960734980987710130942728309086729279290629633129632803121040645510963271881588310618539197443871193913888224132145185564291794294196782545353094352673222207343247522735212179742335133203789932125574803569616199048636327203822231187587191848205091878316426067249592556257462459285335483248944463729197642764687560204147455144787827759931144042953397241956092958343248423394278807319959392217148544778840771638994726307408771077726680832622890704495223807650960596116302659577677165295209060635846660359023309592927607540300181727510564285771128446219024164527107799933551026980121434281817614624475493102607001534751903478053282056719193301886218640494892201604117661793563852597661845561541202446265134481154451899604128311491053662673275968142992858426019827508535155032160975108148320609796160543686553547896383453499043095195126017749114036651532492320412216853226159656672268744778843724403431447403405218503740207153420926584103069578406653219678658717722960994755018108480833433247729116449086742870458916512708358643108866875233941318346112531608235826148644926733025046648431511175599858331507429157249524045102946777388831274055981046223180159093057363805043602499521898963497437639016970623729743576595772797735910376752446224380749651875350713165271412237782947557325860149456287263200169342634436061975779368418012314615312720724188918435638498422754621047657141034687174618298662272625605882683486441756660676791438682683786591737660894959084825788637709588987658299910477930135854446206778416819425412051417860884652607781630811127123975007701782700477839916160563081083804000356657272933025969684005519823269804543200425366142306357331524576015622313094045153298908003810786364081828040501748999024085962169778465408052949662432687377965457111343501938960228094037529653643987963381333299054276939055804486867786437801091219661548184961977825601530919118406455146322301042843137901743614423304662561914921562553193318941335243609849088998102512627394141341504230741474444928978751289304515790014023946288588030943169399723102436119291271001337600913999661693084123492931102398200516798295455422975422225404745971855648745459986182614811151311700319691715937410188063137234554505337946496331077665312191164456140034449522324275916298735340689436281563198982329629740051526340244605007682077934105829107140218192066612093895644911056026115514422289375803304256168537170784255631014543231156144085892485041138030502763624350130120735366330377801216342978063150716349673473387552009592659620521194764054044518347846116847465404423162418022544599644464620993418622517683388562006505133711888756114629720881251766348749910044763063214909754964797931547247554110079869059604584482162379383123150775254303712151964128217557036531294904280076740446284871580701204446326884934130829073478207480018728110101422532114763708215354227316271595680062790954530814852046413238303120935003051411105436161722569760047186075404200356964250492995257728893857172450072229841282551867406550106562738982021556228534855914616562311183255257854926123368406370609713889820554091887206763812076109113318780869876170803483592886875699879521406653717886758627408096344970972236719563155185335297577115128741683553346496187806199120550406007028294185596737162181551081975034540634095674393981187854530906404004753183038308361015578874218633721844099322741753500236711228029581789509340145855898916731941950469696397284894075508095762402336107084435403606459315523367856775558840016543478667530884175088029795762224537906473226720449776393593833434531641652436707715038337965776775969289996610043426474110319536697279396892517219113762988005594085521714892426167314734173482109310451949574367533771282298239139067448828335026960474766289472207925104180116198269895613429133798724197663752697085829564352493611899213043505636949654275928719279007626534295783048325637732519266388326317126715133353337616050351083220424277538640679278805840970620589776770596791260593579283341222454619480549741198887166628468696366741952153316291037259857687541387389504549382759205859588400822400634988243728566191474446145775676138880834444506678750058580479519893006037367431262428356117535102530914123352493751152815967538922574436157018650675603678033041760152760447175089312565683104408779860321010889297283489397194069163837461164847555712315602058716135124758665605456996987012867244619697174643363376976926173120402423282995889350037973461459456670859109893313946264870385047975109479277894694078078129793771195536512060732940777365215830729784870777955340568118316056130608482445962421481454806787217203531940671743250110803594821719105578546752224978232820693106786252256718971704331826238588710549242335437213011640556783134342198028214741995690073839342947529489514356758169293927272050750938317965962845136486649614487076765182821016261296448239659993249745768249820142844912991433956326327898196513720451126077030274927313713272767908851294720148245174885472674015855181387416857465869869681228064219720868932107117148691119773804600814145132730340250168764753584267708284496314234328108471836117100299977845075469308231428091732668182682840316289527775371060670507349099950965498992384970439460901444841526209516170284846635280996281688156894026307186086030387767318178301654263039921056846221728173393975535990294571193827725064725895549740749475706842078729480389150937365944323746747589452633492740490773998203738915634770363965349196264151931373554712357569892818293978903333801365241285895363491673697174157956468939072417193708342940916109476738668359680870321534966496504066235009079554966722535778231164061226799777627854577909088929861319998001850725745455422220048225364183447210724668860852601464872783683873208506743522614328814929831729978802897957666523441816119258997775543680080812258376843027930644016613094697346659528217823858694794676952735729024724858353924493214524275917908724799223456282213272191543152773661872735066589543251927703347437769567718081770723778322542127206604944366841156907397201737126161288584947182834813678014183719221416888464847593009141748061460434762425776409427237977047224564157447302594613170712715831717942943767942198443319646591648171824244017329416914764849031722020556922425855362652941947975317597038430495086246991723592051376264201411703386317953877316246997551901771372141403897547293197738272184873260766121951456641083962090217040236203591977771381038583378149877139970404005797184617222177549002386014001657442847469271486525106159405791851704686362697923195310782600539616841628032051709838460884020032654373711595781382853864193188239528502099056989281926864642456708294968216923037531735716345433679991710491482467819759327481621854835981963856122182952399343309674738740973894674572991000964791395093843314090972412733201968011586093371674702377549096902669392529596957544185355783058382640121641771984957793397770575637667895370643472711970833991826173040147844531328009021928745972463877769387311573330588521556822948660858643141038261383476633741145928844981283402751982380007368659060431306933639750708695138832072719214402009077495743324590473500502354921660517641471156332218631321710872087368328998831235926053985558834749062972182431249921926031287522700970798613647835219262007812999808378257736814425633590713983607919572073860716224950677619790561893150778029978598380768578767986357744636030117583849324417294177453157670747475279265343147528837978407051377756984075499745555460277835809867788825713680506101769931351579874506836535314787481450197511671347942134501380561637285247841292837493306486154377259143278233344273429673465744077439458359172015526547857515429342457156856715759064134409374606842899107860338167654669673885626963326060324182530924847194415884086080708819299588216231271374925677252673385007547938794011111174492617931265496346984600859504188525538550028663542861128108414696345331424388853613003303945113347023503209362095530598074933427568474418704857433580386742544149722237755718569677037240732884282780929705079675818703260837667377557726134835451302532716879409570107978220066110442357997962460461042659408732701454135011385889835232789543117218744824817026394738682791005301947416954408858062764302596594225291366744051852123748808813750063315023039690742422257770620426572760014910598996363641919795133821116140665413125452602555590815424990733187111242925119553132783386866280180093051365010968903922650057409878105432966571861674972087449079631951269678369417505452955041647672675282574793122089071909099806918380529207908941417946789127779404282173205250494405859999189146038245793000433264113297080283601612624141645290591856585722648205885528691827183016862161705457911267026038690870919951271636679991086109111551101669126021701103976255709934360140709349070501982579169662881554039311011163370499390424756678942395723812141365855836898751898384379529832931077369528990021755257897725111866013171828846152890094520810640828264365928303491143248946763439452355399567396082617793048845821806291682001262564660216971444350066548628805396370334847227504039065002390392891214947193688123676323759499703973958100182712457387339773694242807117074872106054340699413716155897307671693736656623108608621012745508369469157398336387589824238617940113183037452606848130353456101973681599456783401557723958663344960790007683435505785583295501068550363619495518501696910786362036866119772851592343076989584597413530253935300196147564594636271353983353805059876406278325720418542684066339399295716728913421831674975440773089152587259391534604274677816809206676259336905180343436448608205276831117995642054167612625880823869474672825508556904263623726269275667124301151507154789765273071992804261932593903448722777906945234080817614813524881319838299181951736740017418589869222735584699440334043170560893315498940391181356039327871734054742190347279884035426793383010797297021536747611200379309527476223232375229199937076731602117769248926914757850340183950153618618640646931990344264811050257719036036091969003662245355848106871577974969158162769570219372699952198395873437747883993967341642368263034831982219666280075169423513146346908618576243516235197631230982146991281032718785315212858693096861576105569294078607243967416650226365074126384405492253146219892488228529433641463487304492243633975106879171487556136656449359868446993189728157445999346595553982734545490792676378574773797679596042716695644076190442263258288285509367723549411192366434672549043685153401910900850199335493456812375242024137923573018761003885064599424399335672816979876742416492209069783369792708721395514312605611261072887641639403515896777340092688041755552386049184648965077442113319116226748414194688517037102581580433837658374347260551271227585858150516571536235682092101443650572697836488998579785406517194410108944209963611181972835370594039819888205361662395455684012275546691111903459953556895601069079875814341683867066167852245631431252200492494210997443137979501416536218787227545298817821527074696845724689345122925762524570376982846033238032487317371884532988102539539175829320501177681434388123530255522165492560731225299332143398604005968197349321264456906195158770498382577544909405008113961886832236183873217144471339350665270650171726339154736684126920423711411786438038941017661734412535037520805069628854983013246161675680299814769701396820512195980241263345337985208040285003857800366928770871598807071032082384704389814093144964076071670352458832218004679292122256833902045394951032908840275060621577532987378319262536589214144756005357306386707918016345690459266395948402487439468843263780148331192167708045124698385686306339295661478194561940838960385948276777111011287423714255850689775091016365351220936740253270379723990106597514215237279979633934545368126002981414239037555691088366673981939563835891645961466911628636394443070431475641100216714978246700892788132581369225304577345551256012312521856787167995408588079914119755775427298775678957077810674574850581480300870431635683670327964288684873704817130474012934153546807757601838387779311402872224314950818468058894283048667840247472661358841800038586333513905326390557082790666354641331076810387239592805771389027229677047616256977699143295974467487368359537917301014851806160286938883297482758741218162877938797762450597593412681431839850600694700235908770438937121320502350096752467348074236404587801256485414855165079587532825776532498491178274924257508435759128476513346621295687453514184803438347975048529103858044443876637719351200406326858387223150059781473279043428489309156831515962062919484066332841091992290845598630576056974203697980171943197543439554516615881031154572845446279588320923533236731112130992696007347777696011631702956441507776300290901728812711237036041949779023984790604668865101512193220915579682234248181133331074589564324732621028309076792526146073502200886662092671260417078630950246090641491522259662369964178991786012765509606239687413647383197227531431630788202736422196882581248857740034719973638297481464860870290667620607508018923293680315010984248945530839300815682950991932773330905289607854477682896471128174497791152052076125440629640116593813427605977026041363979658374823545970572910245816556789192802956340864748771104183138389075747311762192851768698630881343927442041976862952178069776685481494401509278742813200598223604673399247052950097065268859575772382203258515785078331348492405195301781973274026860553591665523070619391606344675828485337248836913899764016775343897368295978988665573438876914454006940922309782921990040687430132965880661491712788134128708307403013550183584426974816596313400521406087924926373090819901787227775105864392803461833553903093524033711227770766595130358299147025136531498016610492130471529151345371080217559875662712412093135811570133462900999422697907577684778936055704830325658637486449595228952141873422366387253062766418383765041357404275965051299962108417007956257358867850142045027762385345548374201183655264777143507875031937891116586719804688877816538524511679380947891124446274246647766569201487060663819729386468257987149111625503149644968442227372265615985629485264010912200179065152043099704747241716479730346169930780803401311819467082903082165265230508076603240181403580489879891860528057440546514696241910950741605465672686157768595284492754172220283051246183089553963934708662190688145035718014937567044404355764947189399517200245197804907387185097676269864740108313025980341044663164803386473881749029812700401469325958887475262575476483369976430397570452125967260978926526836919524340682217760737443434386841150241783977223988675292621648401111521264217970717246335147623608724088033778974050696887134427188739946693977864968700744664233941955241620252644537334810888088021587838854908312331858044632505638962566446832001303464295973328218965529662594825971926572856315766842851096655454505279721978137815134368402197605371869852820286089193462735501618516675181322893696864827177784875786954902786169528938905639887472280500447179657005780585215241677628727553723976686891629970874681720258223520665551076603333326847360302716315687380618364683381450618706360386408191956025622231045859049084630278766111878310917374122682088651436363737545812836780361780019691266541145899419722196304373173555332145899001670990293674064501634742059208587726877422929247248389361693373980341412642928724992400389570732696696840581008628685752646950023011905480774339397970858891239386163212895969278789701086147707294101626959985934023578977146036317662641426013098373049919521938881071437906297081058603176247897766229465969994927994031024151000093826169456787507281015454856098970931596897781645649659216448409176068311220928487726074612605095919622375124724043497745588780184547775996437177499193872674956522773377668432409893139190181942183831247174801208684306277772835108615001717619998610108314478090164092266355577141956690638462654834231021864746468473716348011301435762769274356381278761821975486837185193873017853116867258087263099600277438744663884940069272294501696909226494211069391400514666423960292282140036256409831682952958913451261609117362542649265492490379095184252855544903102864277596860645756203854803733749147407170240677509796325662323026945930206847414150987266147131888129708655894280333487624289385635436719744192492161386073811404085095894135632275404342743361563211801785872549735792384067764086609383036182484752401900332258677751329071435555893213334932089734217288931278602300787928131251016995040697262915940867465105980881248363475289128548189319701215164088587835449497011949127730345684656266388632974287954715297595584777454021746623713615326173857339921058087447101392888186733551179333389353487713054508725246714049680032943152067174943331152159110892947994043936159523484147996351397502708027802869881732978583569195924711789189628928058582390949289462411111155637358408552693829261121638254484175350147464283506726815336945897494250480429173114116363066041099766774297104480582764677218112108682565280696538630905021918237997120820933431424384832794225268910935826557624282362929905603170152042681561331270652488592588418055671013115886214290521949311355011149095890984925305197492913360566781264135616503928612499875726324546576665039927181966955316234565855158809609338797661218613768615242772311123606280486352722401195331814283509301903147472169389649486766200669103574191551423952293053918370700026017008042696562636582283903620807852931947572639781258330173571742477260006637395529508254050729594581456597150117629745939114499592979478037624049778279532593230395540245843152343694283270446712013667181433802195239874366624264634813193960112008081999712867985059945595427861061526617178573540174098964700765097947401953561705525874770344872964077257940484590430814461030425707739275829333425853027399552674878930773079667078655936792850106799339694066792547706221271085780104683386893811127412531363094796039165608602349915672791337093912733855853018681949982668376661311820963650837764768166773929558565087811848221989247437099955998729286332659101592629382597092962648044243861774154403506192636126309843235347572631783739456684942540811084593267773459536265947126660370693359539860940874002775472249514449751849826469817606721305940614948592140049551119001016340840894277227484660857794476366930141336230564153464813836847326709679228531561844963552708129849568359894306243830557308995358417704966810155801574153505770990562585926388981800234745220442526833329787688010242831681386584405036489478686455399383016364671432070119397327961930650370549156720855385474827422293088131312719819649535904767846866105550297949533802333138009961957457326891754796303745829565779290027673550296213270995358647222041686357990861038394349250435242388400974628911545396303073028719574842139943015718349520983756085365813128815745496042035723307294983318783119211319286092065815909345439716087698118646463200619117326203461222429001858714760412115825163440579867197312192137486068478150844361419967174833699163572417309939300356725122162372744815335072133828232340046407212220183718098961562711230806153595432063387929336960342761150300802713816594145862408011619830000147549861349559019309932759667414699019079802456763226910320116169998121667957041769774437962273072530381164100979482159170429991284983263766040277305493213802774141056983736177902999644395921274680166690251598371369606609182529297409143337765680981631574497984707472351794650597075023878050215625027899260737709196746049561748228652985206405690048532268872779828495662985354391590582324314797296028572460000537108882755631898160755111299265521554294341144473250745919449496694278218351507359124222794729025841762414716646321600390553692783393205616979715556376955850970505739053892920696763571704364977156928005371767257577229986999418822814223075095091451301871419177815377178169177519306247066462686397191801331138466572786077884870536385231198410880708014426449876863651585769901166996558257598811428198104091921412930585694707538692323666047653384686892134483148707892010749828652136811951081412702898466135028419090210695855665545215757417522734746369484738536593890365555444329168052346282590917987945233036050925503769389009477191963800766209055917834375901557832297514828899044409296877348888807677542485169564366116845406902417252636085070824057459455849818128709281197294918631454432782163857026080732678168841091991936727904428017987385133937701787647557170920279845798137619108488510361035733730737203979290847020449586233733001752299661337404257910517055344797366028774657916189225018759651917912639614188364511289404588038925785004757932943652455304835156906367375380114807189457062995939850075260646653320315817937529322786389971762787319565664506734632820407779351532858214608481500031520666421131812076706539359414707354894234191835650512090529663190410534882372474377264210488719052796338461309432285446437660213828376947366533683838003151131461735351570118407713905765004935048910212922855429765941055436538130328878600782103750574185502476134849172196699860931410307257196387760021125452118128992582434691041023942880543938479778148711884400594832576642783244372565455212489907473714251417358151139245659834598818447724183332601177080664560505356451304518643552055755111753298684278510592082673443054123086411335961472314641873561710911475061244639956305454560703113887447004305665522953567592056697803643009664668599807596506492072453853339754395197480620516278658353568835057509799888369521315861135715413690549996852776356088880416380349953274713407339150229600402804537780864208487561684282645577401817531041338230152056373970806582499255511517316947426623745013954751601721809658409536816622455838047935517389225460020291071455870222622826953653507618812779522323540868659781275759177813148670736306357777687134468233734101892410408224495442068474166921852714355469467960375641518582534555974786264604351944726373819275355049115197270879928111145943974945025157324002308998418945614807744884025517353822975630405174093054351821302025763387205177751500935702924298088371349666700642254543781672341675897415921784271721339910881605873700019751709937554294291781088292272500328403914110192502854245145152578241557561219037314250407710595052889804371789387280841188776117993122691267025856746128230454239857420920461090675837616701155634497672798905732930824513859580889086162031396110416648226866674211915133257625581154914583543750468488352909270451609712688158612633416333152174427292927143858836136372277692682185881985832956922935706479706831572599202441682020182338921249530345188507158683533091382636526630488483896862976985968177527465888267167241185924349452089947604510845751191559955178389017279719988064901918409294683767036726923163497901611212362412135539398862037914152930871814118172448801790382205443219915570176323157376232971851523347471349489070025952844116278876935393841058206310226064681423889293915873011829056940102728177896066197623764433083846089388559026966910101230648265660297050563289315851456936479223426598431363448330809088641851459363784135718990863260408484409949255155523831526760353456811384507127663043457287321959294944805149135433820143994378884797966055145832267353571152873551497173656789032042895863690417895939166648661651645295338494337000263543355537546855869888595194123360045355933812312307217373748710331712355499648732299770171939757167718924600666718585680954453329316546145783727232666109890078212762061992625450325508539268439075357644251825996566676179596214925129740373594292764011540244663136080018373488481605685190927344906942288384469248255463200386101055735526185051127662823398865674027138265365541507618613602867104334383121393970075349059235592047894396319248908385813287367665011388834223953755231943243493997055134219405901954532971796499786734785330479739314470117133372278028653459975624879562208087460659159549060817135979277902411380389197133302247246135901845897677450281240432092573207131034428259090528957193289820455986442711272715054334085556674342317445551406413588133292785731652003495892962019950906206660803440608543462919556122038928049648156279504952622665883548427256343051115088064003221925871287768222645376562693842858659270016565021169765264559774589453300309705933372330152994092828932937684601490936106886557693640726330450622987757586660096408825193500955543748327739072199930265174972988527535840958351060505625282253371120547938555007354995130682629679782165480675266065950501234462253131738560960364505560283818244431949781425728320562219897107356935206328660796192712310662082953034084901268875752718691469289488956001321203821366044242139404187356075948578943242558192640452378809423438130113992063788210816208644820705637568463722332781941393914976896453074839905779339553113639213003039853749014115309056432251153028291608682123575361369103942107865210543965828549421295857997687214165233448544268154333579932119027114887410327123656170389970544852531432923455136159038742820488247607950094503010771717257979280049781463006555008270682573596658892524220174613450321181985720634670159736139111943580593067643064772199416701353830169335835297692982258366185380990051487224512273122844010432089669506561311688199642083745823073674341846051734347394135445508684838076544302618045612932342343080176259523387542020891213821283946207907037520179441718173298629062908567571196586819605278765365119476657104326484900152681760707791378298593190388878825527557069780124551755834670631280862053695019744172599710581804590030951652502115881394830468296363704387583857152653423627612869080963541759446936579057116987930997086410850870146836398864856217111218913999166614879206706239110130333053687399145838394492546642914708028882065485004894949470920312548035354785915025276899215105674170773950826081406392897392185640506343490630094192848464664649949159920555655519705386588175366525942239409972424659905681976328798235632618613972576275747865316950526831860861124133195151702785458049432551093003487693446604616891881858448430328677817096364683512900486120844835500083924967590294325167453037173003130141344388802723464526222785235304199501641519063582371687488220191530483786213555217186773162986955711034546365533355555147357317340365962046407967787023230945151110293010885273942765771439795519937626469459172105256199315160786602682065173056638999477250503856868126294484467752372168053521996009417621348668011428461052776611645012242993674775551008127404937494408371235033975994559023961289075235899898032077664258674613555140676140771498341282123646668248201485265167046430706862902834523589177486194828555604651013503087574257071564972569939759546470861480180476298154805985837207529698616726648160060641622681134426779643553338767021020783401981302674013117867558586592779058551718594962236138487321803272649641149023168221656651699765884844748388721956962816299501382219161852077356397639602016951464036344185252310066580823848470508377522695649135357126460682592825166459483326517576697739363470236417337796473297003270994910707623107641827349189209011642850450019753164204386465552323450228984568345949238387624593326397104541699995152102442747223657845962033933374212576346758601446886295741214737169333165062234921449319735812427451259608869635692438753838065112558329747490772461638034071914783420723713015684826488212383394240437771813357557968772901575513504852565969409834268164434178872682867949215020148815529157535379586360121252609881571771919445569753992863815984872685095257504985036574355645215867016560246856524667389162451695086385921909193203579986066520982473364966738099380341197442388933858542592687793339827041681745093198279313250629726912695882637257887061010751544150224602247190673096518513101385335685439351756065634388614594658238938854827361338937619954328559048896099176989449326585434376000334533943988035097003810936348546762997953295750508657501893478150194019782258737255034712837139899843917165161260823892685982189141036047111851972215879308425321955984591306769749307208813018005599797515898808672167827860717485615416115676382334875970961672214806863132662686113737996308703457175735525202029071222295305751571244249308525331093240286853660658723620962993313341524380612803028189192243505697697867493550405029022744721179979561914922181694276204727016029158741500550107519034535335394381272569456074750973098363294725719117193649187995423915916159327805339693964380186821384858101692932923400747559597670837661641102173153587114305813990730534099395956911432670569857317184832583072168096200200334058711080847947166756009997531563064680686484134142271742770120930245775756777927638083381146663087516477194716326046491018994908308020359703843639419165984218239013940724802506695852934387884781541047969756132377559258919133889327947712987162395955338796756439976305814548785129896541441710318928088264667177224326056770537063123939495909999805901161264461044236836010764985651813672442040053269780410462875222538650003392317241223069964384334516606011865689172600780493337840563686281260704651803667319786671005574090942660174187106573649533854283496850875280471565081796083562802139326772189246095603410948097774448349272153736379586268833212296060507395309744121318223600212255504238687948796797210550059817343263140495510368958156847725668523457525869121609124992441066192031703574791568856149925613023703655906892772878527231136839262234243531674737358470319936163402606503461700801649996554027648787665600889309137177426087297501998820472790523319090019183148740948223994076922668804885595419341170661276834860363057754766713945562544800417968799551052548450756050174367240523535933107738309265363473514700591803666825172206183095187126127885499722771215370022070835212196059854414502994301012419404822466724550894374122810939408681599271072582018982393885267404494869996352354928866414784327618055190012613867783879128438211896282067764505526956280076453607333626580346988677888100421592881604574706468388222010158096373690416041845227028174006354824628598353305315166011225797858348822463037400616370947747791298955335993785756226683093850656809575422843549967870913778294632581900020871036939170132596972723614131421239830637708201859767588722186636255242886717304682335258137613240922745402494311021772267733123276710077078544902742702762338390858698313408729148097152905792673228681114241474184232784118287734480349361519103370293201191467664409381120807593378491251851951857844620828991049477766682569296980117646487681520337970839827252087634548036091189273810368520415044770335285326029551068753268360170298881343608693052240646649809751079984301605204799743240334263045390114891530849798496764217781850534337873353229828612938735887394640501807929947511714393993097239776028514356847013475747367011610443170610097098497601998635701168504760678174631657360043313335435304401263389458623405482035465172003119617211444733801259850876121508512072820504316077440865970172765476441638344865069229733157419223074595438098798917807641812559584044214577949073074217371008918415077738901861754062189739568330226481559054317510353534700550790534903548841448527666935706006855429297246667726242407822588541565099522486341645889232758223034027265383260363686822268330129519993440452375257625480685767503798417477425820256679657771159798308987553588315363504078720091668267245317554356447835875477849489063300792505875815685709287055101237042527719708270353134473484639548833838366717946355165826233051175273027442659911925108135042763742693626796450054074370393206925115832333452859794888131362692286962900320814388276921234439638035312551456614593340667524667009602703129143800914652599050332434744821668044348777112588014155159051572351601336697537841611010441972515853024970868421912033737936212192356847681918806553444447341645281126708447888788796032350645026825103984075797476500965651181686097107858168968603131926947541293545582343382599873662988890173617904369903704338667162048199906280567772776229272559124539380458758902687735875461695308953938869047969592524456858672556084371279477355948716332954416387361736054978224047341880450271106658374498083487124321231317363925489730870657018046679767488778042797664024305418900449581843811473186958945201981909012123963211958554484950749836463297057525032938582777245474831382216666075260087925104943938350197470641504627580702455231212074090448504581086103295123786827897234640046553274174786985304414942880276553778262994922230779045188096496257200574373775742267574596159197904646031631934539881569847175090332533909380988699451809330042682131592232085510944566326942990089523942010709975638264029404033662626014361588399378120706933194486156160564106609387053889361036365430631043409301378874622458757726549533038314763025571860639287300720155656598830968983268940310854067469815445591804619503495922929539595091989486083062039551147974205775153106587135079006173469880619361831509874763458812064280206845367836944007569955428554560600417347235476756741279979689143321574755450238069145650766779400624343759214524548695083772200309598832907453082495015026655035420596018455295218444291105964900997780712890140842946945005338607006499506092126093710450215527040921396552920978134211361103222072383603636089691693418213343249365826728476324061723171420770217395285626407045868467181003128833623134503371394707456246288676725493691792614156718001757986128124567744099460331548026471365310503533620992000990472021070550641221697382624869389112390816221081525788068265219788651690289116997088882059874481895625055684802962977762480126342314037771266569069757373034434842198195719824406934731181000673816264837694029627338129494273235990018217367838912095360770932126307689233993470102874117374354747973158329768646700698547288885482104193088755015171473986491418411039079642465887532281947070893958401905015778861837354808032670291644070292590740829004394611810202406949874616895658944442193129630480627314727354228081666648188819704354362990481128998934366812247045056735623071992647171759346858012344932945464234910857900833511364374694982601184818736254640052917223887698116253951751337544994510176865518995881462959385469376224747132819551885855046942588502045440133512078625542282432540676074098233258699470867370418244659231774770316756258015884505256036035941016998017277641459281439276047109206962335158992773165515604097867596917001444295265873366774383188067971677466227900703792265525023080969884041546067527068456686123923641834558423313822325112037795379873681692625982887184127998653156904513502823583599828475604958644955084482819560459991818991301630314056271823227256172457594393371960136240631164574026971998112307062170256440973521214917574826837104039113530691107067773142298906016989756480188348942099149040397304856454822105709934431662247450581929178955613938811517621718157698987644336724014139792684937408955146082065305768154473136923965998867516544023459145680454249315534275305701272439851103110486835470852134194956868775291276987473916051999526674698658736819876677420466382305322720984415863289469820692106042639136577777927114001607188310220640787460257786394145730956480678503675527536377858269417299888472726386007691129667964611282124592974562529022718378337688139994281328250952628568911832010747965495581621037615572132880221900848347168480503614257187071596083697387004021432934506622674291999244855247900997887668328787960234531414191377426928697636737093660359683706657266143588930379476072052229775026707194601900565011546883661577357302076059890603039295558159687161570192529793313442135298328802294231141794605472666831922583708467584596818886439238973051341374092920593146598900963134747598874980104839739824183382075728811800430477790010801579498740389143147157007247196463530467554525149255922608203934476613419113676497796427064717623052940668405824003839779123826853595230103760689925098387429938992776338654871398090209465682332386323319002606811866241151058038126810147930815084372506966714673936330411648223471253091299000064379982769706077360743357394898659500497673521090124301674322664261551861309543549349398708303668997713993659521681167813301458143707867914307283927507776573449359740040235050261824666346308269386490024335718319046389771963394272785949190030843109305310669957388906255767541910256881857436962631202427392122081920645009134351950141052260800920494101144747470220404124763565441589499679439593609792168883670571335540968635138374033756562325709867638123687290120388750267182501474402699307974882719175071527669372360219568348330312037161747641919712146927116394150190722323461548580293169863781463198199040516803946841625863896262184758904087660085106628319939815640267139768548400521676160166330905518468776483875046265456359682387687199868215466332081305318000631346566051350077927524670686125026430340339197011707871719470018147922301013427446070610486226075103057713954281272136872175804339273796591923410159735835872421069543507521960179564025294333942301385473134230130824775390373703972607765878434055870905954235784983902689741963126757331384353989596185461886136278031451085263500843984689873171255327730541942072149539189798176767890565183813322063061806317900053394413397335103894167485229643965265401876845559019610341113299449334105465368260403259584864772194549965249070411370182246712715347276540808337142650870333462363755458553176225145413450806688679216203767939708700012323089455615416601706349339528301524481327507353128474464413076571764466554792352317377037830626445976204479032261462329184530339359712003199031095768821694889098857862024600104496461810334766808916743664903396395961551347377233589482267636764921730210583732903643513307849325166134467454629112813103050656048700831900101294479954569782949605952203688177722496012514719704401476905327765260287233439479982769837888341467663898144664954116310418958405262194032442721746046768333942895779966091856731185919734677676210410301434782098745283962418528966415031292085534257621731138573205518138400868846028934502325051678225374675666881534086063989545419499490623629154514856058080150571016052238614870535231976800119885555002280058662810855283812300701949469120780894300127150206610918930228005778253799477286504302541056934424284412444726213387822685823323435606771685192674334723781078516910418357497130686392617904484604407943789308061061593247600804958022568891249597163975945761527963805062990607168523815269279085864413179374625336479150558210121140648596184226495436230601575263125898719592539647929092409374841008145985707810309256518980526291261984607781235983736499562005768241514504241327400275541689626923662759393261745755756228659092093803405937540480429123173978513989378951209670863829121094359751171730571713599217396273978135511045439149151048677391635822287873552105027630467646504657175414739949490230681985937604522239190965602567815188371271554396844650304850140105371215678433227751374467106994982292486011835304364141307120914922447044086590219079373649934553223326131181549460496222633461294706512937950714338924565244913105693905373185002674318963323503030173200799634078192838278262933871414836936864423409577378041117848846523405886636485456142053164381781357249802090785015863595269373338503759560354288436068218762111459526394461431365749113769390647220534527219623474731148771408689987487855412247489266484695144334864773852496698114768160960936696500733245072811927118669995606687863126511330545348233030841575925377942523707722797568774169746768062666273436437961589253704821442393794447597884264554180542050581586979925550259054825039564996986652068618168138776966860001256228400859685036394170415540227858546371399750433658244820753741669924415779987147648062067873496731208272041413783612901682555767468890071328556996779838324386952023781335525655585429785540928900524286498298811544631438432985744395257347512274913170141276409040844755905145103085608125844557236210191081060421145782614318881237108454138367991563843735215679918893104775278548428895937396207746958195708790330437259781886802719146583967994808625287660981896928120957121995493393036358336463680201646738375996852711051470485040222540922868275774396380575811312758796030524559362042735852499469946949978838945051014298925148645640393907322076261715658227580135355105636118726569950008215470194219489027903268004950550896098029762848015726462221911833724774960182116044584204958620089758766287121075430431055133726394967549378880614062914040059564847835699461795206543529750074139483231371408893967233440576706846452243964524239575722839698551698237852718826291646720496698265945307894451209499443847623063258531773900949849261437769838106205535303176251698118218532093822611274268389265027952753045390777728413076957743388989311042065932867724621857952265828562225726444387957161373348086935172350112662402936241397823542005431462279365534687877648814244221183486242439061403626855461251172170191692521224584234717618153357356488270122970669307650115100474520032223674531499205716816593175437277872359463570859557142785466027510119615261025675417187540599064247475697612955933260529980770977690428614762211065075754097745861314515090414280488093098263851668825571408097703737667222089093637926169024554079305059970357253006093024310880297486895591325160939051918578905007542074552465264934247837624821117440289066635863752530535254042129352931026303969851018710794759982202735237023771358024683099715039177950289749439559201240224132014599213875772216209847062104238756467902308470177981800706242293650841856667860913351469143426957966145194476754043934572906459289969336816367269552758259967082816163844264289027950013683407856801905307864099760988121067978964349917751007816830373463767920438573412370429309828905829431618211643396048052860254222567765804743231915231765971256249685174348815452940487869859527989663003481248868508435162827598607227638061477759995875518506021433301294359804240950193612517845772428149401382474067200680773236667559000620402404090529619948169307700531611349978987947743907411242494926876520777948449954753292234355253461879456991226107237435345056991886534218754159436376190095313402305905966506506969899459168124245518236785413360670989659855126297105941846301052539939437980521547127586493397213568667784040209926433661026649996501804168861186370428332394692298015417469408476564393907625633749202280890785166041954219981205205553193384948879673178083655715304782887824941333528083960168432235963388807689288667678396762781807390804614205220010073904877640258401580292544065639405146604429552646034460076692690660481006665820969551656470864497431320535655243969708343386974641382261340506807834339389867554932783652181499198754311869768462470178735354312885996830175578100519703442432714933454266948511958248095196949575089381869457445237912330105101764041166525780060709272210931546346781448533264520200843933955798976246843400037434037069325326666599816221396475939842645515714149848754647331682000024552594517730539214189683387737367213659583140220245677353654785619588422026952487475846917313230642685814248201484005844281217246559045984575087099446366616800837873480207799995772133712867151483392303388131148416549914833009112462118803678660959108281389014062847390279952712263873407562126229733265936893303963195712851778205867345972874153230972193206593967542251012403434387908400095573248612732871332350830002138671713710144033838457220491535854695804989391206541698122310486828768137781404139807480900770312955761487880807340267234714410158187362450482206220565772428100164987516031108932559658308792903738998374909564454243101062758069709844074716756517347240069876792658543888963290091111001566945384632420410492438569691294395500075120886355658274524350408958505404734113086747712427401199245535069260431130859370999112478069519911754569433200835447054755062905866035003156718218306143540526108038089077864390207049972413278959436595443750107318846463473114400887926233833096781524527163991966893616888249944549620428053629874552297565764128687051115107351143835312919528315991632277634079327145832682543597660702625062431670329023271836222382883357725699451973672140485400077204063630165966234231083275550199334515885379545683020516843294381172752564430179028262666778338928796174524769882429113555806386710684091635727738102938901486931091732753083067859940512435304119966093461224326539413664611890254279915615903591588565874414910754173424458881051051525516025463262968803645808182195875230178140739529802273476010244540050617538117539090054404792157805033619927351660912877543411499798536567869821467730139077789540072621801298657855169572377693686200502400059419704844054381805600897728694381629759342288811079930546789430696321849292684062565852930752790486541044312833136869880385303211963048841100304026396322169074126780571995400758827670771983406857491795318908217702080942010518110543282290294027314975249484534755088966976444999407013942341725787184553997547236878254927683293719083203611848477104125716960474788094136724132302588904614655454038698484898879396270765657151074017938430166851992658809430704195538155175840135286493866566246637186867821879566441399790583581475774894167538531467982674015992621694980589387616691531379596648671756345636811178283132757508338084968627937186076156079751992166180383993034416157503663627083295446626708005013440499829800782113132499747120276794817901689043465056067386051842308057291616004754027111609380358144046184980882259796071889949096734770220919994746072537835036247254770545335705677461005699264622133761775619640855242706376140149616627889450583009485834637526354509123546003772007884166925943396099356541267080690346062916603446953656931331345207418390995866863223818258603883251970434488686076187366122585026123653168095223116931463329140495126794918999767593145655160951947929439935837818721595392104543889353175904748515897469310424037408906104855512302387319499367706191182302463730438016586844321144258844985751918034392789071606160736385450974589835215646197332717137995529312627270699853053531424634950937731021498133114506694142159200088292325478197298066697386220281018987407424749476744927848637194382737017798057369897302669945544613129852958459934065416426574354282152095559365578409454145426702877000072030181330796585092934320482565930619746149056862150839819780189033634311099303245876731499610271593091905057348346075650715613298835634028398841624432205814798821712558591199694172543406739246035366745901977298427481250607342531589792178773078958720058150726806026797245496550267448204892199187624751589446604451042853267836387270002717375311545219388257599681324465634681896617669601535712382305950068274451781652847975097820453744179330691802993661865083872880399984673074731434917210449883649019074417603339773174209273174726665349611269082373433562591095778688341564752881457807450769814532838778932181020509320321483154209551354396155060060398171816227652030228915116642227515470441848093078944858284597973335878381098490753083413505090414417551754571617735397807912244651265262834027995766283339373250795012529770676553207570027685853525780221083822867624520335852045524320882580942418649199296763442742989548977510846230787913142482522422387712648392224552238901147993005598729737396185703295657025652127113516069556826482608319096214851492250950822934914151724368662112811951365714484287380679099170532412699978952488396976519621049268543199658848980404440810527306472411883117588697620338619942701333560103998779467617454272158550654193075747674704911824209154474060589840902786208902318652547626211829408716197930911214858281358095011630168824699779401787771674154464763193567422730316634730355008588070513859744251220034898998722425428438424836681449263626938878935775350485403347431665069477883782419842878300509660360105359276042357383922198559752589224544067552773670778760647032729893386369474261861582544179047729062517006467544454704276973699431397807707824399380946542196471271956061307951878333355435952666100531842405162780148833070784921737104102856390403903153763611446412506037408203015795094372296030742582481342587277202164493927719801549849261410104169268360841510332952780179900728756616034758194696524332662866168341246856016177733971374536438347267508445537851776335372153398314546250251885100424898357264624857179717293016920535773682888633512947990402775004876236139913034039677370193369275169623711838952059365271338148068031635427270592515147105637231655517827766489160187363682387861881762299363282491403454343454733480827697864214017230970074061912452110909433846358961091139953733626025598897248000660659375879439813090796033696897183236874940554679278037561028602458249399082248480586289230821489729223193358697529274844366441132208678767174409887550817062317959378702409249854662980964411431285392725738381328802706617988694868597471401338307993763101322978416888852317826570434902491534900361609673029795857142778982572709973538987753426500364569156698896333981930965690501206172525616363370927750689344894102210641350435861782152203513979919375772858106180584349083189467319075934607804402899145388983373126122052250089194250312021794812780530123130476310351864650585866286632206769518952622479809924019718833587266437590183651513869085719125787654570941307136503565293277963064512239805885427663534509880054948046230339449038086603025047794031316880519857853458448933727905896947630472402594827543583814876248043870826320047206109128856001469471101967786045717160536309590838695093353837683132959250671364292185677255382189792350493918938671809910153048975911501106497299439441136202312599376796903794934508299822287173627936895506530704530393897697933205771370073169801865234636673456709352992963418840198153162758572612922204178282049900046185113302174114442047723961964547358715741105479893373501676221877800385345412698023705969116329334189852618241266361463760221856322676950420557235398340399038138093950216299568261441228232202930771414132239004322603372836193271555806670308496924133090760773856616914503659684172044746026285605245077928033693928323628001833583861522523012244525843665817049125174292096723580431134288959572093811214400231191102414856018820070721876221444566074820641918465553055915484609228845024495552453510482008116202559602610490890746506928605958162100783558308058609730342190703349771463769992493306428892924716840481819437472001602542828423389978401984717729983326365836375291371470461295229890070453620956778902552036378248759719536166280930102568896303544628208911156843898353693399950735719070370128654478354859091020221947097185622255662715282359649394437861876088957534560065408576554043554993871377387883842293016576465937042383602873053019575606541509885357751020595146384903519296319101867007571955186868271330771447775114539705884648096312108976877895104573991419854801369871460977178161014701580756913988453199073318988076448404739847840465399702266440455933086852703014517708536412911387755504954382009825142278133104003967978430132520837136819124629432182861653199243035921318378341289642344263132625503562111488862929254904365182311869639242206801441789360634385810291049117304473043410737007307150752162762115005471561110867820078772844059926413022432891001880593987996048381133942508852406853351435423281387909911473951286208593260929635992251240604246783629439140810819752525945003242823983434019016574517280317095443739320514406302384701617652194864596872681417489210221162015887062922075526015248326813415990529054500150575832864017155649628941746346428460038405523506113825895051151392846065194250353105182355856232610998218917157536380919912612145844354335011682918928174121747795604762204896439272240714169056400199462927596866807369092934013556158581326018607033470319480040951577714962467357111025662618981253454975293714633903586035463508743733932850268505926346368703437017674061756476515830743834228438057508915674735504753175619051771588372710459252722970264585660914947480631186619628261833090374307938958280747062290030506968386327800759676401857826448659779506268704035174112239766400665681916147275633148123684867221344367066848404889435756009885249067308060737268054529482811072465840400056927016629947569053879760348320349127054772433784396184965691662776639107532242994614778710403192934273547354334009432662227204897784761045512719395265872697824045398530355421878643537221026681442789933655544358088829878279042571254876825693345852796947710306472143353202928135466005446139423050714489421664900833420535573579392620905513527375069267747231954849534433533537317762400855014347086582429337623836612100529836981444903051174632300430342012793985142634644127266963236491673417480450790816760750988217491497103267625812322354694556703278352765510917888968318973360262894085792691871789902491053595281996001653813586928749526351482828047161342250894770101624313072894689710378868587492574084017299807218342738841722127303721589640638674134273975775037888459877893420836945508814489933495994368942716429617698090003400704087259557884229822674387601401151520104268997049779718910841455633061043767000637767070603649030853413118360477283668070138947904040672457360860433583366658805652443338919379093036502290597677098423342352339615617842774247475306415343505291857322850863423076513830245758089348372909946483195330019469010308090522237408669707825102316208276008815056593355007304024476716208329233839921507711720435283068429203947005684658909514800965349417867725238231765090506016910873303145828571723708821931573579205447613439219096044789183715306853215837993891983744368841096996562322736166073024271946279925801222251567052408349642099194679078919734481396526367090601067079027048994003847945523745625033793234870576539788445987138863998776053096734244844771048148840790442451266548366543432177303886603283790245855640430705354736831094880722936194650494374425166746898307746027473683816497247147752398866582365080354698649508370967372496855821790442415163563982475050721174757445338631083251691267303419618034451748858447808515836641165730622144599380270519221190856328396032756040084589100923472847938388592748770029805783041771073704271529571773515258668419811959561245046469782058126989413133330704858192629388480695826458289923757580998969829432842612430027761290554040521610642147008702634029508874298532240330638646157095783216717532190124582737799872381362309929726917950881769217288442769755560362986986867970892710684463505503667217333741198994053469803503076423948783635105371118519975192761396178991849345158423624630393919898015733222202880148231179337372466249184875363020399358913395405788372013478754753871035934619169675391703649550122375578534659467681943493107106920264230271097818697201934473044109973128193558243292907364270561626177481237926289097539124548436413771366358483980925446747707411399723528707442821661567551842085766865959590693081021640882579897013906229304055676408208269313921324904108066733000878503608290402562173593406121905112201498105163437588488795920964495770093816300567008544027758998053830505238238259156149240293796602083856427895384126023978510005171872300334283144996068782259785240842409663809033668954734683767027454007646074960466490685697923898045717662922494376790968016756541348605157226410491233319146496673650782186992703066641594696152012264983516942142997323944821804185850901899972914640894989741309778675876281410926213376943259296056188979008579165439102482427708297275203705271992521241405537657730751947137667247306559695589408596400449803811439639660864633946922893348032979517519714154190624098172882167011717238303085465938112994868250567627690035161748430751697317631810129129194881932480587556210602354336766585484241714312763365087139373529606617098935466979204546002037676061898133277286009033367056492140312513557119257205673207325999293330831458337765016359357785849480645937937560623414399080682358147362671263360364588804941220511482343087348519405436331321599991463972493117034808094752346482287146868393447953330678689684898923471246092588307998541881795347849123346272796911534486043302483556746669042199939522954354500675984523079457947143518884493560514928108259285935985999214985967701757470096454968085020927252462303119986543016376415257708135316467451675246187412867668207113389731173828954644017306633106557670540445910679646315250666229596223470923723040405641449657297898912825553571348914971502077032969749628892719693911174154827509770608807193244645021319782020348557949643449206453924588368092669268596531667193605071639082047609880795188245184550026363804036432246386822747130310270989828641572506959330492411834264633578233891862480656987549605090152424612999257243725933338367334871323449034145735224340778006516544457929856482187419743499002276592377717679222497530769338900284100708471975042008151929322669055430576017895077612825263595964334738518624714999665513724897868207469282329842027644978957319586624752979022141020583623318185377776163539360790208060274503503853848367995026914008751441699461739093065604518055406639575342734665258146446699030055573143185267418422863018697493855868561570471737519899986825371910402714729736121749076472454899243515363680612460488366938499963457612189590387661446724435283691982250591505406337538550585829921965953599583880754095945262148684720483006909281864063586362806311955783424378932416567235495738962997267172000682496527535067433347768039417997983782801958859104943680074810940117814475292247721858485806026993487131431372099801815432323122999367048868668152357436595008982128787031902502860476345345057275177647973890976926424292100360309821084223991347761484698403538818142943326727470091716586633926080139263166449800798826622601317727345656355943256686753295006105672007835813810807186108024091665213157018013098413396371839402892617021257893710057180946831936960824842801375638256772182704203790019925343819072321518254337592853648823464092497881855899613328768555142501576526467314061061111642565995049220517137611387678028084449366346914180541920201824101946285767224580976529720049825673044247691928249360332877338782036233067908858967235480939042780875333076475167885053836247003275093772525532942019432616899182733080680466121330314750882483355650890020188799801973255971671788444833785445088066562275538442427213993357168996616535661755251581674722458941477430668622514793514704975461301332838781228005302408630016986718412170140742655169763917142223845403115074697136219834865805859202783599111404196696110153842472453957812713689955039722172733476102923065280639608637386629094434263547470369158462549588796759845856472258923473828440116877627357457700354895208462117831763853315087319065608302015998818455485482731337248773852166642164797454291190245833667068546747628295255229304498185656082322088974277898226613302276922779333510329030088057953154521697084288009194920588084477927187544746263816806517285188300141061412209525821614238684176229707209677720136058797716692785715166528411707767806821462540305228940746602192225658922988158301210944872206055141425466844050393430439354536669145912186939662360631955285211977513543331347653282565600892364218460333269534276478575426023295452665753112358128837396632315801237371685910319801573386428051712012754885550758518060103475400830497525697576474322226057231637830824250370054637311400784120740121177936454120418102479925108561642087648984082762112702928005427004131042614553972278835492987607051167244728072918743813753119375968430565152531920640648580250125801115781268298851463328013876866212439620277317150677604926316916570774518380282977613110336347762441653508470670812067136905979446255469489674197907526946301631528371046213464393061760439502283098337242866862976367165831351613638837416588129841973383346345131548012543573112833285284178701882640077895415775701545408667754869923994328931471945541910397536798647503709961701126293411431862703805687004979843788761892668296300628728945875936213437932810022679792977820467700902263614275175837460463956931821630863514642881191288638254601108003260025215603056552873100647291246927634910822671556276817219385011030671775174983703941289639000650868327671396202844779952649581293144737854951570973427140903556483859824081536280994377360840086612920274323108476324547474152052075139348848820092706711037569629208751313171271102120358233045469605301051034910325112727415694554104441325687938631655403825286675907254390630518343578741008573928266664051046032938071356624076523182900989012073221863089859062628365736915747072834419674813308668649550540557417349561984724218789045182328199426394344643436908653997712463726731102663260694812099951073053783184562155357314935356004859267050485180090169233112367099979039530589969602191667007442431971844276496114030646362292653302467318262293720807272022366290483716340238726180007383290502784422072826764986510141541987436951059602813327137646935770183216315072326903807143402210110696243731420914032321903454362860824097406368237347449482598077556346160248892654133857275661376349278755389879959666571847786037826601901151286172585065722185518916840360480985167691258250038882965872118603311758884195360994269784548503212109195070959897260272220544252455516196788196654748445212755713007539793370061851904280525906420321063246836120094276537818545255376772733169496385877652537230923484898874626993310895837234994915893791000303911980295880298591731745616156237193516407748261211676818567786052374135350317698001884147630253433887606761836896803132149455249494684095486144047047620845780103706776782393996688316773592892780691987649721985366233489061747243096397750761714332755566198503894035327576333892680441050443922262412890327523478152453887670267353703908214308349065047146132162853073129574882627007475267647376656532604463582256530350958500483974121356639463523427701899665086153340550938895897351734808851871472050581026312089719171271970290111415964167401778879421405186144572139257110493216450267506147210930090750110971588528503592250989752309741022776349787437946024900697332824968259333859095610680053293311681811034490490724079242480811697723923489841850536576394658476843058516024054054072884473595574523580337264984603979259821630207894813988404528868747748767888764601897514289412531268311699103332513973453306894313734424081682548658246615791104799456883905611050422238388700655610028128250150063216559948403773468719891280302131257241158266877958717348083907314975780857211641283697280488755618791259480746339193046263187996154353474465079717323446049064972572486278263857093529258717460159101464298447733672740648066741745565998959886936759977877804068035473368933334554711688249590385261865105238036541762311796484013092885478404672227747860710844948902880105009725113720322470211086666354448939213663570425437564313740723744439326187078286169243070742535400556575105129281647963277849483279436403949715185487523007521505011967032038152433410795483695017586505715994320010998629918819308781402119675204849972654957695476981984305475217147591104750943707036994408696431496807612726163926775123954184379525507570336121160371197895808241796798708102843825905464578242303626374776437086941366213683866417193073017514865328175439341161126647124894893700945280078307154022934841604819531455309067916972094407316439777316693237217205912737102331390194617363581217914027915108491941175648345268276256791307977963103511190771025250128952893417223033609359315446334734740084132520118055379705972419955333026414367862500408770871759182089874424497867435178960121686670317850152412434061081491370136939001129523819024329202730035005175698509165394384412575840358878568072690950376687696715735570480346472457582824313348539443373855187524448543456550567988154061391479370953639400701959889242330845348425843568674167155739407268977422517253769358539681754929476725716717368872848105094614804803078964792492969981159756808119248502807877826377170213241979381216966679522118575314654874690930080575015686914927185775249854847923398441284019893012588927656695218079452192501214516441040234404268408973857272390643102336188708715388521442381935137121390114221032888169217089514955879093447696284434668843364710578413548063836425296356155655975172000841724743736907434163599737234026452538137034947612946386958316631779354630916715736359615607660879022342708225565546607666412142875817373941890916945113812372988407285604294285292059365789488817291652510732906363796234754734119289952308068561193806649626839275663982077877904210818404310330366071304994032956502330763383589888601546852095311008093384987724217421127009110970403903560032092373099395895955615196910625886872032335440869137587856892690558098827471657168346299797842266260086614320901134096593148980637007862458856481106726136092169184171732001385561749672703081936067659820956105271709322928844277520822055540957413191001542629160740291680687371329973798313014548263566409499877933913155483545607153889124253809594858337714899341861315538405844978771750342625983679579640261792235084033589684640225549238078595783779968096489216049719508098957369422346875798426937054529201389175401822807525429327577013598752364170758998395631447971717454439899496630182091243483536349884620328896780618314950414778593490680072405747269219609244529236265698245845590830779434793329633699510015455573731803711554490362022380838276418385615772447797667544573224524771240615327499621219751936149432035077509640952781977179255300613582323184951322370165882965200276866721701814351493623480400059435287014326337395888707900522909071906604964107359963847465156184685799125274362853105637585142113934677547552668827650581220060579443973270304139908181401956574929179736927098549754183178015719822384268806298056731071649695146174326865772813786468960428370896144674049302190907705345113857033033761050418787732463843847782804619433932232300266383772998816194345973440872700562760240167612094524856648506388323005623327204960721134417994018168452601609215112931155196609794219955551613607658226072199947330234510107312976858495632544511685769100384090277419985885859426115717827471732283276429659135493444646646862900689270780628300620076266464317831099975755531860513962714565271918699461516387192849676694056678407823892029420346176546228549400050162983899274397747497649066421777227660508430274179927680696828787392776630730217540806761541305923323233010427414279040973212104092856408482800469188424038187116993008552655359391768759745570667942089290470393365394500246798042328147508827480938050849016753341149115059688028647674593416483088854669184778138399102453477828722408120174634313812155181429431147495670629558308159922212689576348183708815259930097268087427061485206966034769269248889660854630102159430197360603436024549632853436659489876908961529956483429012442623917040559171482665432397884984785446221979373271344497791810989571718705768389143593950593657275004937702881704294986200835980150390249707136102769212076641040005979548454951840342991161177633170279514894831429302782405546208673686204819770723118564150796427619206925788315450598297636646496130067143433398676340495079689835919565230916823695402346090127188424717093862905119290640193788703957125447173025005853414552322350102004286372323866897595736692708060499553059713540061057210890538186495241493189871464070229715449170956187355093972917504170825063694031839301805649443360126577006540685784408375718561475858107258941792311385595942589644857280954214989960161930777748208923619203644429754044944097920492592342863270217516971174183647760925311807522548598829102298199962363687922111890692952503806582464543775104414284227372389703224645623338723608979279293059817622011774881646366127758144817156733783448061132923097231796710892672310097163759560865909540401911564792220861882325197035138293316692907863339759305319782437735604634891885404712901194812815817474487336489044202025151250450001882587853824085425032476052034842459560342114720289160280871988742766435917412886475843502455538856255747031792233458378762254299832431147185378155447975203246491134529330693950769609207037783160204831242172000406485176955558380448507628334425491787273261961076054745266421404127628778267106344371598818051737909793285588097676221500350381665461306651384787798600056260978484677938815360480027331770709890045597601217857517783260354896351162515142863170305272751354200374296847609920222100186038759911458787853994000807729277530137000901417859294607968534003390946678916450058048853121109048987096447095499781246036224315177761942010227062669152970023423025672175121120812914208931462409658008724349354375080644542540359699334646749861699026151380110175950040796595594903982094284264474207878925647443770729423154891218893260616476893152209765639063982010827653714876015553051354814345719877479554052082305077474266717545334219641477026998659272792330522141249577458017484456624688550049677321347718995046393258815033775189260065838830643958600358138569311088246454007199049171810425672740241134149636098290595416778603273156652288586895841547283827498777469562896899780863654765641172872139523538976371037890810519585795795731613024060583574317128618074399591655338200645425098496804696358093710410741317338887559695749651225079477891576595114882632152446996380822076879228003451847175757830641725388548697599083465719052970815394583793890996065664824364284064291156213350724602400414929210647013367799492919158763893197077375626551648080574482706032622680948675801508307540441487682336136846601522696300127400996673626203213983016624980003544505514523967501195216606358141513281391436051167259145239797821657702199356973550168397373577838582283143651155099172432010759314149472683401263351266655328117260406704085582693812400119463732595369358715241073829259031478939081079101113609729620263395769822951589846786986367610493378166991435205577993836096600879021680709221271917112996087696480763501388487180781598849668212171865220109208391966563795322320341567656679882309968259273119520453258664329514996272539462057915887834061330581056090700271574621221262161404084669591358736526007189836009166753623794267705764936710804529151576797478555609860449303698260350356478501945028766112219456951237676118910397805351779955966166047069270459684449714239319607553909951862385728935513843650122844966363004176382057041675846253628061006676394980286898680669812781532798306518891081167761774866064399645634125601367153083491006381751428932035299620013686362330613918229294712017857121155902373696796744383016658367820607042199693242257947803147066699419062579015625059185491230302655938915804353445478358194592295514365098839451435743566975899921434231251706095155217230093231539509108742010731936282301683232217158123003030086642021976830972664489824316490199410451569328168641106341297794658605492894917031022118103450503484865232640655168611090907653561958342552885665320578912795478471303840226131359484676518317264724048560018855675088226019615369429422239006087900023802603438553676669459553989019300162245827448758660368913593716456390262426113870688603488446142329571050476219036821426143225650374611771844685059400194729867137911560235736057927465848955891761420197907620934409482586033997261323273942953204915720772327079704366678054912892033620444810574002796554319371585119242260790333051043712780668248771846465516056539018400950420737478640017896709068920944692882955369735095579599888387158932379663115958466502619418524827528962350497927514919270563584235169317172055752405351334404131859471876082777757890359484763461308962916669895363991977668953077487212517959869779320790107932393784829422049439031438533982622746890629155541789334115146194870919898201627224786889474055257583956798622756018772068229144375566298258262716688007579485305191588807376802030662994597651071927878954977511298198460300641584033215164399034860380481064764511044419424618413004706077911266028581604739515979459814895835551143294464264840304357219936133561586087504095055678305794396716190838488600217604324457188056389712097199731513143392844417288195080399164437226245161205492708112851933589837991588027528836284357025913071768896785568659958792003652116305300570930220122931455432855068696457291144513994931236860939665093433896987363949387015465499054268921592058097340135551842951461764928407867350015800124404596454503968098442765432979190421503611126909161359971337453120137292519566132991830102204995785513886146437216508712528874824027398715537329046229063157047917205604050939139478977325669747667629502048486399938171472736246724047427943080998083887877839019970547705365668056762865575846533782196042074268498434869841022814806693427164961352519266999967144406772503905317067929617315948904128930328779957172018567651464289502778956316818218057124243699639321824235872422427485324748548588712450013947776316361374158349887453729640506613254932481648514957860600965986180669055744018782151473190913360992051898680992225094939089008766744958641075326138686978684029966493411893315065662837833624923163187915968965547482729587537395944091122615625295869672277015509104387281107346396308813590911264911422259372296276599481270164230923400842469045634483546299983207645201599311038200159447908427791246528820187399337225590687389603146249173896673757940955569990734869636636105868214161268969611134028437701271640857812884687542616765710745141231865970611292752744440324621376216724240155709663239563270875678637330235482036437936838096459445966862297861015085058789229802634179517932327903502206296374604251479225414908667266284162941446754834368446933250262336466035432363581058838703302983496908574236559787201977582209896983537720738559834167885103688425577172034222147868043302194172419761067994044580173815973301199854423441233124106503365100436628142307343585164356199415209798187400361179078583152759733468242551573606698144680443418994566630103433863778525251844009426311351580266234897852972339821659081646917012810066165274379757681537903602403892561061606254597282922381999066271001371492022797221527092896816326266704924490937375242370839904910256828182536849554254128527538426665089665091302151669725066202985696214900634674943394372588902693966397478896880927719316615909017646720663363390837637863386041506653813016663493876723899528003241357599075143919907063697395398130643344397526080582662414318950267010157307681677733972410216870906724234094247707290973970925201684832709909884074454339622284818046543334294873325938537685824765002782006760703898611814725323865562610463905254656403626721974048511469824237727294327574763319255759291001627108350001542872484772334874334884254896449876677763713683068752704231934552662709461800609025911777706228636522332714206104402681547349603100443740590206478987079627540169583518939917879601387429492113175596952317645442518588473182176201555083358482760620576391397106585261306460698586200744271099722113411447026300041635447534441869488385321858553920045234075533773052353512426987954412872075633642243140095951695875385137168263183650101560781327797563575986951690180383331970604353727746721296941248437832735082898831535559260306917891957376340699612455940916586741839090680384886277040437593218672133215240005429913003466570143661256686748862405931316772439632271969101301847027575255063849164981115863287555204668467243826307986156480511854746128168478104248641627929677855021153718691406509400920894993521005519457460651336450270094202516117954699675209128479484993810981125363895260453795018407949949076746677189426889074329099150541635916254386742291175862347625914730728094821102290811514413980142402867896250381481247759567259735605395259679390668021398986064370759900000466531742396152171655666571487405082346648830211786207609312526847856897218210548314257761328096135097527780922597328818896808804220950208471585388935402692950605874323188023057221050667899494672871789358202905103720093906036813911798229178565242698771742483748030665575067243178369570961574666838243328926997761450893479075975737041275016188480464064111099826175581371125416412620710613359366107177588174080370523767037498285866939641877664351124356792075065862920605202246599486011163532503351237523379276204399523882126530977849960284086502914604593198852564211550024939962382003765476117815201481195143352151390735563638833016719509466866426996476535721367300316662526875956584829984577592770900827103965767920087448968532287786627554565605567627070927159014584542000591166613585880593728801193224790626687148413300488156254915405942324686301486768631786010995778345886915529856680846811452669144207245199959366719555358315909622441499803594766258739057688541190617588235386204200985682179988911689771668598594785985694409772053583964218767990978486805788507286962722750435065972003475900584142231178850986566922853162182199713518860027522053862651528916254314430528602315802859138425875937785296919145324148960528363400730045431923283369336898469514805520974828187442560700337127448281952302094069852377173546012512323582587422323901592579878648866036781937800872933670409894131529682141265970465488001480628198784170860840270752591202518467944385548365338043311102367300895958384944520246489454427388342905149947874345562876896726236792968493287861121456063933824285599750981975914075628550817569388702293039110256026181171818477597932708485984926374978942208921479294559499630946287942279458696024645322355742706011363872402785481956320216445477563924342332970175641893601093494269652323259551376658331468378297802737818046240290745661637136743620556058672068413018976528503825312841360908332208131685191354480179910482258960319885703196234492288155666987221836516354349003075543264083721803097182193069951188329727470502002830976256795487035738243632592786768894660765744114151265393545549628082209043785616694917902394495954299040562237521180349050043125820443502684131100513029415910957279981507704266205748986006713226212326967289805601174468951479828251850605465505352675604864424613406563398642278064815062208702779185640291256484105746529582707257979862406664144665969662503717896852610225927977716786301109306752417546167961609681209186334107159587973708444649138722207062630530850257701685159922538663472643615080958073562439585427163623628441194399553026714437665401053104151388702890851838912208473736818276715093324770812446866195465445979609693557857141273679728774812063839804467258745248288437366750355027445274606702157692138948594333470021915246177399488499498357397850444679019535258967572775799678869252835815501356594772372807392148427093923295452129958050953576444551345063795530164787343467510199916378606127998456178213647150933000896508305329759118976382787236098074604568177010910151997169117245044383054617340737338074971450103473856424191412981873389708296168897844876191608301031861319783055987967593388805967560640367367508137377295907216312521286250440395920047331770947770781455712972176561578362503873235787421085019201640826095557438429574695517037712279726026032302077047372731376354578474749389773239535925888317480632684131497669177401424810677912651287945779886626470063248194648978821917788957931978477615151472111452873638617737790294546766089882557549315476625749176572817097622524306444453782510825529969711783248548686040901309236365099145861790553413177965903148239905986409291108922521594778394513634945563884171626411550603337624097008414928016613752092497667113843847586233713550529993902314310322041375339386464037323234976158634821767797141806984749708490701312676520527682097769637525521769202513695394007069150829071600185647579522678986463836200905773921747654117443220508729726783777878080606301910924073779959056083613841338298470063679978794878835329940087362914454911213230342996029933338284957341775492170253579855760250536731530335029891573087036220524541033951152812466357398871956209526834206418581412058976409596480118585521117279828001103895409672644203176197303744774161064074973323720231531369387325892240813598388000250797548018461995747798560747286118253743865396372321028898056619903773409987520160835855686726778941837770413670985182828715042253363354867818198659611142398280385121895655894058461649587894068769115739069318071848559173770472577416635187650450250308189136274408426516153905577962120038868875637067685233884733476747823184859718066442110093499201716622085641877984918933704393607243544665619283009992310115469788937423803847501694730172957289358654383296225545997261708424553432583480196117644669793769815936541300406894187003013583686232348762754470873743497940274886129891076491669304953505027061755059599786836767717625761271444201186108532111533322605250644990340091121138218137168283241500185265552825383831373284235281504091662466497808766659346874957691096961624787588478157285363002459235774473433092478269700500017826220911595315659387726413950682852438739946760719359028668359308288825015670468381914428266331448249461939905527292808356302684038765127420858879957321769013640249530312713664078566850032543361289660113242188324052769093947901757394297132275595975352963126400410364275546013555827511882382165873993339767066530343785569244446783516999552392858969052721234349898794202278207802993767365374488889876573097871026149643554483617318684210488294447708040104769895881663549474161489784177262909412420486179451829859288028392657975281926411834007456469157823485856763706127687391872626391171040446689920828681284080522679756798035386189875904323322122467203624227572110216329363299658311889272584889920401827982337383862371871910707575805392432129661486593210237399486090608279673472763513139178431893538517522362673732356092528796682987489514082999591684443282190555129015959575501615352290461162432908154584941287862772378028228099730593369056063773188654177885346195430819000905977157351372694221431765793358833857308224598957472707930547174691468994167214417430201281782622691965446164256077133513595349310316331845108239072680934302854563610615024741283023540078987216912478772623121816371802063778071250438818834475380150803820293047519365841220244772201199372259769760311741021564382026870652080084574600767723776446643581039182293405499545486438245187484427672570680456927324809746454149752765174906057375664358468662718413180410210102905815575042430160807151928901777339851991150166384763333267401750008389142551919457508881736025195014488706371350154498303120513410774901054420521853376391001082945668646652088883827553608656703764191063868612054344949698533257329574643088690743152112735263660696942249762980289899509798511232974111689624687095665593720110695883579138320379092115512165316233110929731872107773066985990922026557550348134687655773092564396388943572080169244837479713230394297193052467835328028411231497992842865136487193155544936810465339405475876627743248168019097958079948216440770457029777089429697466370006639774010089150244626881452139705990252748500480156675628683005171027866744436092336689215733596596240840303110342240304623954818794048698440839986472208670043207324942244564674581370444288956544992870932747249777677124520015429855763848990387898418206775113642409701795648053449216869450730532475565566388213799752444048772040952409264886032580347266888565633826415283745473821237620678468880482789246688849616646976433413551323741897106468795047479896228350417691300183023973081176434502944199367289638674512518283802331693775406857029369572043041552661831985475657163422338967594287398721030377111022924388407287606515835977751034221664768655678583964234947340936003921603474992250087442711699113101586129417228728301910145232951993598760441842037170588237067176267934763555994031487948140943124650892855314797056241017830564566989506734448076709259095839106460490500884278315089557886312451214861211242419094549733230190678186618388014096487397346195132255629376232502128869459187811330761064285297999864295533118917640378740341242128469336709761656565014872227332423637734007264220583939635169216629206456753799172489164646898897665716951847405515841404787647369791047733904118227156395670254472860699138057431257326470572748494672754638558857970555385699921427280481346072850689374576395654728324948386191452743596541297621982805757052833238990689843996447744135922993755022095440541196812163200390418418482561279641801299091699381976788387378073110875371372905494849251065951105576772144473710218086359219104661755953237399124723024319818560566675976295111413476672434364153120104030603218299055893350581617330460265334878277857471952408885188046838974206397829109851124760569416848231835775612162479778456778728400583690479245705393401006623508229536915436509890397326149803365995468676351969133738199424930885221203374903626263608428568178006797775636205708255977089310328659645495512906838169711041393699800369091055604337736566446274933766839994539750917399300625522716711059324983577426187351890155911860707936937718613813105094192183733399969851107006951206112359419628566032899442220437515875266907662230201926655006989838014728832367756257721022809656477297585590753496710313329567343934918711420647931996216226935647569597781925793517793584251275381267063251272310447269817673785121204109396314574535520763976877925395944487844143519479878588464141237974676452672469302419113392241528105819881811315525065748013515044273510890567639354976072611717988267306091440985834656333770809625252611849986760562309888275755565502383435475381960594496952936494521678442073425442056590352089859005389019570537611965712147372351288499049094881842474387602131940044104723545677745310108409236516444412789735232578443886027473308929118301719533129411073827487074064460771458120449088451372451973076854002221831721293722176124691549748532332766875129560042761883327133356990320901727977988255273701603996075955815127006751529887399722525704134188235235161056603600456861864775572492519363358197516642769699120108061167260505638396923135746582487030255005691837508613104028317985156510000580262114321024518655235140079072995817708534371032665743221593929019459258901366536330696407681519804472742898775891174163959510600908711463022063775044130214327242502875972332830783037182626591872532713195831457444235757563273158384141732169489055609152982086714879176477557240337453006599448160743750689007502086470937653073517410371823232356551127229375307542989700639100142528493481402413871848026495173456558339730529595553388465396800389194456248283821974362412935293033068613421479718443365842738643432925891008483327720404546616006051206135426108577141483292598049087220580783160900823092043632854232612444129559784081188559385152018968599568871941344687281328106429491141104773225508429464384902423299880208222055935384683793789719357303979813739441038290720527787929864784449535161799911712363089120005878487659168500717043786340631699210279193610514871540517888938603198904348058505188284333391517983769539803922442090605898397218793016963105598830990315480161446432213871586336156281375935077610581651904138755799638849002721737069954930041085758174933906381196876582937137294429876279170523269102059267479854175029467061589577210057287862148099852803898826792945720612056001133873873716540072453119657115508247053319569881665627775177511492210005484593708985128868020921370994663799532038523202642998002264838367521077821887341227473736790243832993823080929355847620819162785870054317444574385495633982655397599798929900826929584799344949214584181327041409370551818774283711735819920925702405640366637970934117772248626941997709145252375958255640698357100146607792907664485297546493565899984391437949084623421133203578273232242769167638830000720066080156392866682783576886130609892334115155391324899600870221499324350018826291121237153623091822807046997828634401617339560850564674087625006048892860593790223067941066145878458868773493982526533105350704520033351853475494849337076967495244036520041504882071411938731483329228402919631072025491414435044582574660628967884593121129613823418774501047172283943709287290411014709193157635250138459544130823351643073396678920312485515994093702180220684940730385810444245489869678239169702623163781341309625221714205887369438668440302424208473047398738583167406688738465792778228090719744771342549189362358410649268809809341465249113760556374636045268889417981352590076171634278613132526711990328318843984569102457505796679764625119730570893185251608735722597260491631693216920785228392384762621337227982253927179212142208390447203379466633955687599733256586346703872892478200498197677412752710558878185229092692014075440447860235040936219339733351590038796832482684702546634686017402269986392170572409462310507017747993287601803848380176375530740675848044191680125812227277573460850990660928641303962059124972964481490226218953066136344856672291953967459397241166371155813433676392323451037458694133328703390185104773861286256858645525126881670370030942048529007924768814269378589567625695323625713032826858983574546347591539946505565872983540956049451254736970404789810298202124434984862260284815525229280484548166094164226220109320750206032354804048642268232975810447612021383404696561838461727900836412963481872794131293138698425872157115167897129298845101207751032782271953449486152982586232256709682338273627515788801427749351880847872323658427004664199681509066986256078346864943736068197404692300693499304529832974403833994814697878038825193400818598114231068132914230495861730295797775560019593277763635428011245751866199989141430084279795595532627580998906795092178770234911723429340399195414088973135222651738553063517972387545037371651179871073507650635231427966054543867393408160784615407870702680959860371859421429365766965166645701413238331842721489897189876493230718265524493427061391271432962745729939004791046290856936331635823302945208147521236023642351777390073396643691196507295532740510951322890424962427287310396307004006874069357339015300049065548928664639624095752381036924045460435046458391037877552248193739493916681300698491281976256383601746777888044686451515484834611982287962532302654691772747693211163223118084644042387423290248401935860501870283923859486848199463307266437832254525166054831450527572644491145382057764484802322684624685457644791067839533045902875628276885761413715283471115975268433197746559462903716009904139470695642434651254673438168820183359900122955313860528566626744992295969879334522063357155393314988354736750944464971258403173454622661533961241408341395193916158354376389567187532461704864813374667332664854613179836262805865250101615261198001749013783475433131479645500364626157969000582251839543715371194784625069403395730851258789212278512167120460634799818286539451082785249909683745735551256025191379889058470004687336986402433860210406825308505897030288888318094290278033358718349855395525777315167498673199156848210835880197943682043271335760024649866860085803570468970227676780610945464922008646822876125287252953351710846599343240700094885727113245881504808534021188366931265258759761828825829592244866010602336854158482783043254448125162129994665742356478156154321575408297734474659831634195849869036549798905905488670798713335087063126200061605498781058743288376776945877754408328740525534522502285088824242309291951173131022788384327721067191680217123205477812146802322212119307501455985192614978481557394842649879936483394895993128499963890167648983905102151958625722122707595299926349113523622042641452329262815734521801560868849714854321014976004163010347890138633701396654816430145765309217032136806374223942172673257378228372962372013070627438385539175061102878709637278630603803865474746113718092032689545642377572098966486844685890946251672277943518829756117289159152449966855285887616045511028261131211012662691722869648397865894012755356308836395859354004604585159948110567259839383624693275331725238373382876583015383943859402967751817345583852762748309918638410858692254429467976513792605155286783971818771360484509121175992274569538105754194667040761272698496603794880564056819344520459218063300248122616350833480872917062798833285092281441641800745404182044351965284802383175563316875938364824366681705852456447059880231736873602230871716422140996152970356902152013837657934631737449497355725044084020104903097179912088646478708040046522497185742822847377308385809497405969853980963039575941887220685751700230513089934334868731420460241287049387235514189048042542066546942632156085168506684519971224317576849767660115278377080608271874764221954952480483402394106872646795293884698002116346217033632371120996182937087542291670860440020520519532583058536854544908604594073013959830285384727756194831583463817571943499586619663771195265269072033222964216861733198984227303540165652781149551132271675405669999204407465535805386517305667643850711489741697316752960913180851144970506320197184984161178349316784917126847866914067200203514009982631567582077403425214856254346984009489288252833158310636974384463025062484451581035891257188249614206315839384410045604141354929732642357917940297644339715516698899217399447969314876367174156919438742593634645418733764702051741349978527254316912121986931132485464559012226145727173174091220542365244755514385918867623914345663758867772495470868304068538088140695420149184138888975837647541745537597913369641790818864734399665862518377630663816003555272434199641313883581768811196147685249892739915705139552836758172465585175214098379516493251999199854052114050572052297106747285536257430220891527066202838741370096733747445972477682413508291473937862716178320907846498304124332016522630631419929649683118798601796951891611551572678756116626444747254397325802366816848874566340683333889098386497540249552359533859257898083842510595721482501193764293851604496679376182999105531439904427369821152898093270231264761349343130810059660432586550920134098848221321457671108521578079946535910797757695257972949909575195650378265742206196929176748320515419603293654492858017502957508172247998571759549083188898463811694239504226753936903582962776693072016930896832229126215687776912329964968175974469628285262138640156289598173262209961277747257922034492842794188874635907658308488544501565049759814966651508892673765479110672625646249957240624723120912679392865052306515547595423038046039223455898587723633162742794156984997390331936415254555161897001211020920015925068766859368240983217527593681065583839873197294606836648790944382213914261941061041900300267476231838574101692618148016843994847285008715468724171427945156295418863205430624382115201549735060454900780685749414549522947087129359699247286447568572254268448414235449789359595689616638671436812336225965978426363617954682361948281065967960071897671904343676289713176368562503472634009015681718244701376111417312969466951073654005742640321478304277300317819212069435382857369308642647154765515832865614694319629711572511767484763291114392379797964863169144180475853010194300920818657346965275278147748830341592068466356511178187611126252877540550197617697857109800005016539284895631208599873314316784538664288613501015703548399684667729454430133452714387791529588492787887569158209440206873577536607702990827993997373734121143139422298735858894243059625676275065294448591707139262336287679528530781717781618181071188479969230269541061552447536706255984595386782023011896711857485829863600829717212792852673880634735538721695750235488808518227805617177645064959312729171166212002234606367250048142772644941948852450432976380181123612271759966700427355571343618140851914266772112581411113392194760208294495269473412415524047774078086876704564391620446236936120351308219203451890845344316044243514568741553180200372129283283805165943175137314084658414294402706229377908434431036197140172810333035788144489592736688486296915226904328505489452861065971934897174434474214072218885505133822700835851426523983777501702483813524887620760058157773043126379683782820577813833873831478617561634897311196225613136244994776500224807256169662733821603663253219909165941187906268745804519272621011554906443847870683909027172995353710640742729930322861682704224455752889235173811137675146580544364091521152611055973288566115687690679324974869175810340393717264382308419386142016363336476959856758855923037981079986381988759179513870121978104912905741749047560002314094753030080002593500601252844155129437847364417411582140649252132131685690650809247094777325748254908729682190527754207249765906201471647393552536675581802438561906543976645538788694904986881160403875607554442565100198069500786225234786896648542660795823427062800453067426568097895126401576346703053044326085968640061285286035131893467005730727739243349034106664784505872781421273095490302637668545105813524329088768373865066174121099283913090051591560339782298387135850346301826490856791114997376206595755314467567322573968726542543289353481607596295744574089161951908603416802304731122611762397431409172387898238322361792709631147265793652699328635828118412728228739182076184866769360027504151182538833914529266019277761223158516872204911322858117137934892629530054821903071478349261493233150671668064977545991252237156288462465509801959398929419860816848273737934790233099303235171300642353156228425904491296055583646348178212025561821820328032037616892479219898190333303482266672230767104834304638858862720430879722646873800105374414164005185705406095482418564505853244441877232680015948204165169792086193746821524437979981397043062505518692623750862411128115009069565618569534138173023217860329273833408474931747747129821409484129391853506027317663313946302384684712873883488239329635631304046419717146012495488391499854510157856747932357627595493407872744463398774850950853345891945941913280404883091216151421351428120534335897979555012070633008942101979273530792416768194273120387082915807160587756702411638525652036210838314343611875648161177244116405846365957919145401083695596536137032685500781375610433965197625781217279059100546381883019792177258775582632228692575451759958158243916852872349669693284040815655286239549145708380584849344126939099652889545860015472569415377782484523078976320288871630822900896087050453819098723499739695845067509656346152967414542279415092186129037704890454612360224711521338615205858288905646902022456669391405908659270488423812315886569599793357586371305893085012052751991059348010445563220589865143525381713095944803738093537062345752140712597303829430902040644267749802147210079418742784318211436603335437874466988090477091781766729403574318131597488871474792472910121724790143403117674016963905562886229974735148591693828272786916762364910699043023482949830328197584806472827329844507694546092265679267010549618858138898942340468061825159838661583349941871366164419340742893589339689667798542169826319274472175327262005711141535988512232266459290134422879462356115677564037810627837230869287168026563373451773220990026528190065391325518975594919283816121559385650916486153607454374817284786697301254016000268977245744529113022011475093214594922308806621445249641184473272265802524354520368373516155702143812905272227524482030188045712936084825402230723873952016069527616667172569099031013721929832928335139502834872263734444875559003076281954317637620468973783732608040858311215790184758734957370744976965526648202990202478877000030631902062000249513542399471077934083189685676944479363362140132400878436641257615656373798734916991304730157111227398284703203951985863046344294052366989242397625091091248650377942952218238340598886307084694740743149220875741449976969712195530452903807503016944128247101729468485170221992209483998598875653915681198283372532917339652894702353920051417453136839840371209664260162020951886212702802893450388708152532783441606677647979120371391442181839428623134953691523520988274594058083427501518529926885738546993153486379587647443541467451147028452553193329510707295741470612414053991658438195960166240000426433626942781497350968100043945844098859428553004798990471212424212680111194660277945807411484668415333208267845458561506703076545621702860612271925348008349102123714793653570191479344094115779344423193881657613144914812789643976110301463898160747602492449248124533930663665721406162166210554848543180724565672446654568487247475812860559740871853166337628305948210930824035266665278556229310759962730970712881651629770361941874387433828147642275793049319805185714785826591580877363397518195664076890801539976628102208724958954199880860014726319539237241118130168196254369130668667471515789723600295844728122802589572791398987300437782970724515601309363644711687082965979565438057874496106501577199900441007014497380344383180070808213495514440670595335330805249847755350989353742044399619043687134487149784401629444115670450406234634667865037226003198517560545810979311618575111103936195672679479293993016033710086192981388617650565073044841524153602290050964019167447276773121748981269851931519614979853483117313419955551601200089116383885629042132335907732477683657702626339250931609954449821564969792622394186359775619217127833775076887309178588021223725601022484218865374054570487997168458464866922427017274463000812638316175131313651695295514387598948020229348506995944057361631213215956830035888306948148400178759684725071076739877245054140066507395679582323870835622869105611692703214225009511253968830338459658917989387806893548421233624158237667353976051430783253669445178688009570752532184905074631443441359205760059918677320902698447074310367428753111561965914625072916403613404321504522683168942854020543611135167577883756434489876428982810379784498377336135713203260432838433557390380860364399323560233736783964072441245513276554471092409968234260363277333001295584171334310800914310181745950738399472791690084750432310909179295865225624844138654912012054616690500682923376310528148343954329653611931793381921646381313375306433263999218506640244085011529212089605721373331351862631433581574162400622618881399057793755681710018468948714956390031286066053310697250106495886258670713436414515313250535959677089095805098468983947299283349640833168494671997893111701462974039368673690901681675581952882778739560826338632689166771052634087513635099124317503663336292946609721278230581378813220254298536242497982341216420957618890288154357844363231127175829140698133980696224388885076355501161951796889115614305684689114800738384622211454162536577646663366412868915929601219995113028137337927564154980101532574968009626920951909009036388996694805418086891827582210306091184535506906505782219131240587661854421815619038262967114002760715122111343040864837044983420127731781223398070261945355664884602162309505746186470807204414583266770718703243096034341974026123045864598846071971398872187733196855688995101263551495388018745643692024576018468423763273328651879074548090401455850098218541210309440601132334973079592690057414509125623632460667622994385290021879195800893232230555123311882770010415802613885423121518250905535905009454885976112493839660533678096515830147662379171807114493329406692749236593806475047047738437560512724195757860367891724907566853858246880970458109049801185541877969695433501878639380371758827508837460124362500382306313877634653679648701974575113502560172291360564147992078311175951573767800739361218176012719604203774951878244995646114490199977930934432429380991996770799426455644050642571537492057083474176201288507256760844563849597874579353302669768993419185889457732348000180781752867952848294719304378738624382492201621878371118081251405864137650570790830997240201240582479226780324012888688179167397314868000281365641801748689110230951054463595771214632184437498092003431773370462690346269659799387732508320752627220554634890785271159451088180209616943837518991626157584539612885606163739051392516834606158748858599967705834901946020877853665127661375485496444214136997316610528335600920528584574161668989372685360258999294755819328108426244490309098264263438023495237015956795540340592599313216143788934919930596467893987475317576208942135989359512895981833049174683290651469087232687402264075621545966894227153323073209042176744097214518351082131218896047535807369625662796686406595542469915173051155163726117640340164778435542128370216640213078843956298224680000548332640205528445675443756119831709825640428112710612856953895245619336435277375107298850241358085465531875249774610495804120453122789122848943073700805963535518902750994646602852773544335860970997729792868316306849507217248664204121364722251266497620717407221482087223547758853704109176697018209378134400079493992747284417684924337550455559568928140638302040757092930895027584333065972805789976093117102598583811942409877359948952937639056441854136736342195595491139399161996162384859812509517483557213215213628219003326379692587691152227833476739708522322159374680452617483461367025914929852819836787381133678825715979921195691604176673109904803584854294358128848395486058214668213423967777531921239667432293886077028436487747625103316801207657625116558501423626063202497663895989578868399689185768051498459826233894503515628702597864609390122366778147292543915837049583784826595450849228740971882469092362020126090557067257347245827198784071068025123257591617873995087464835902928173926816290684307311889907110278091323758498715772096509129715698280684123371070526965454064706043974495610302541918297663396300485371741467621829157805949093687326989626304432350458247133913739081061943781648228474193105779475123563628748282296091425010980947202699844051153556515479584876421400559516769957720546032501079362557732571189746355344831876991544228033778329177397980886632287402472362156629409235048212991716864993699127031190474335138139504533865866521193272112774226007649353212184071850520510155661059189777843258323346924466988891938732980915699840790204568533504994374397800221655523290722300218830490994879394366839469857393733531065708290834454582252032308519507662906761929931586421506292126663973405734008055979646627533827453262847237966113151846168602051738273335241553137341507043498153917692128093577843513290093238948429624985921261808482884914559662714291117338084735854331570413988076450518739301588124674033633890760698032230013555574066917674264802732302066231448132677375997951799652299169042582478722689329130652574695664934876502185047422140814530879866118644356515637992382437406555270722850637171721981483923713974139963376531411243258949488365248927434975382322976584920021709428252564916263740773979401320867454299139461163820669451957207316971847384190795478237613662586496558692327281286527196494879224038292943231150930627292721880182157818017948259563368921700620958625582511248720181931089216421137483124791002805824018917057795085456207181124580375506992595273454797979742422837488232191085285536695908711613225693571562711788058423732358316560603866221506817117225756823545914640755742583297683378658135496432979552538049466292852939560041010121654294798458966955941567870459849538312447078818488238492072718377601490263742384734677443756469337840101463425187806177777808435024104649923888088565995100148805602066477023718144830235352057362878256602108562182674909772648635922977651842632694270001997052325578119557572825791018206548172385703672686383655950813583714845577982622716868521030115413409665547432011395401397938082331462117248309862353476212472301686535151461683809877703121653508444462831339518290086309640416612757575234882674288956960337026928338697197813384787924173828750949885095164814132248350837092096225699798051231181837844064725788794024566091931644720824791818291822519323987284480307646466602567430922096495229959414024987234490663114680875030594854609236261507868362238639040545586153585475790745953702171214993814053929808806587275156054029556611180121897708163928934085348911565752549438070603142441497668027439385711340729010671168400119094407560902538611627173603169079849054055249289990694572021894293708369641205460300041672889381883886642993307016736503504181827365565407828436799550031030156568410336801685373073587509410702405364237463990132717043301852900618181185716991053117134453427639654992678994427840800238118932422214299118188702264939306275872078031643689763296100494781656092055912657579405102146593225458366879316945788544193421054747720465651079647358268412801453789396201154845024099505883938547944963157021322133298715621668555334322387671722554896770098870592129935376239164607080265375181136359798433201552339266802857639827927414005746840072627399263325929706666303120318771008020884106831024999873483638765552575144683704854552450386724337202345062938675831344192622089510862835938942688840288825081671224235924575624802935543679152531135508193902504393483006601294946701747576039028451762345190922686552027085691865186324280318295534348196061696825557195320240050668557287583324016050240078411546871270735382138985216704882064754874446385148926554749738093501245865949257891122775617525017499654772937953910356214309972995356915523911594306051554187267804507366935755079590486686316612280627877709458572343333393774786621013803589235631177684458673132305523124774765636478617813919675669811310105964169987959198890383629085273940236485465037234900028128501270014717829154175633421311682553339686570218226928215329501035250822533434202473200905863446160038450648499754940718247209919344447158878722136209272616389956020552064623997138071192337158741294344170945589629551890285922488799412509718180404293808353503310409234522606690540933427122206604852334040019555421272690867163834886754554260148776793664350729082664561032899002097024454416667293781985205121096339841636296114626704703211974984254599760870539881174656333294687831236489330784415806052473407160452631011451490435767898935465201897805267544827311173708810668933283135793910186821629650827446687333122143955720570516669821581011706693713795758968995109813845436374362046302225860201708255784982908087537804573970832977046402110224579032960612696574712820371058092171920434554950104247969654624208698665786728550395117541488971857205423412715084991749045709491395433083078207535993706644335478905710932928577880453612862264748120183764946015048960191222390609146041059317000930960452031652077771369374443724779861131914545103636805188539154638505596534161612894854794931063450752946809977353400574164381292749311904329831869293100792234846965787924719866805999183956735138650476182274054860429852239383903509729570450052411456661936397277830438854793624610846566401166864746212442566549209129547777412305752702835222604323152137860352414977208562850543991125644810898441476964524400547493419686068844122309045478529342907962766184097874456451388113070860723887793912208060142510962964972610863043885668110172527159504011112658303105351838267455812305467346462864613409340552208744952328080424240253677377371729878427598972624104677383849366379394817031363287713111820107788101725924085453284577575064890352885732211856361117240826733526268162312111653074956165055049129698683085057165930569611367164775913441896003512379908920588899934004089090984470170751547383168803699705674438737121791198812842911248453101189688186618337050966722778887972563263248058289361750448553777609557665272587993706482511308347112189995812324686991928411168095130403061896997737755770628002945527048745715333165395068081442475962312351351556219379953469249894848240919982148139952617369210270362393711696946556038213261753881354141151378718271276851777102228877763525896073864320713231765222068260692367079581715591800081264078389520480475113265377564601376785709236571649466578130864432950752294790506477370236587592227663879100836938204916196641598831668113342282321025803626867128709795648599931344762387190701078392650087905474462221327717068008986700923388995739081745700717156984880061586957214123588472760533908659681191706179184166672042225427993834350945219107125921602710216415123756934266804990075841874249689968749637682162553296279512440819458445994697153647920888696368216645924708946180112601652050475758444782827549403489906966992660545717658912893089135004530326497642032180683012645683451425976788217782868202946372756212323980188173237505782018743409472762048829556584341169422243006137819717131938541197970500663234492480322049412572223209936819475639128758855791248493118213270631471159553383905238349777228113434119703182495577227336487829253013725558138698970632533291174908505746827450380076174733274379335340626115792555212857829705625582354360720105445966459582329059092146892911345613905018930417323778791868465069246446529840173274521861678776347951983356414096781377144912710604166051892533645920778234358104804707329207592268538252386033622046474158132372766376110688502100449094418774800026152940521567521376989830114097027549524499808118379288487350908154832478214284155260570632404385859823306485126503676941650151721202952640250262242439709766466710789312598545158466880834267200517751183329078928609120994018030887827637313900777665742770521623706238033273229060698108689393370523349285625342477378134511884396434546384410451444256734555157559819619570294062093886065892460305068467174261998288309626245891533306783264152836565660793032354844454467850550906886601629212738731905461722632152038081215533159303170321673634996270375843979121619352179832888772017151858090881386370022088837599021931841929887583175081584577997740874599771244798369615100940945084902715143186685645506316470607138574351568836867363298285095763454309071534018541428686568157199693821244832829433841372954717496807797280205426003870823641791518866452678443399401705640145427153462097908023862600241725834887218368804193156430525334010386973853089498189120119523270998449048355100396506280092014759219675515195338842567686842659103136816247813920292045379639356799520356223988123776689639159350663929864974659941267349717976607622274342143328923132522578355683841416139326585359067547444742135259655838584722192902544971781263574996325349751103483558521128019883141531580154437135278260587895065032298440644521763202289400988641163718415551983537866979594348102593886401328584303064275167631816464115540285299204709325356880872719036312625793046504877513267066577584193364817689645294771589859447916483737514624756287905709100408359744476924308036445415473152370449201028335383350660736894554417796741559165968629884598498534593951384832003135710708484876221337111674600264433434903796477880037989751725381686180791076824509247249271462909292208627535641650898986869819185982682564900101303293388643754118411160598683194476779207803087655131085228220332979354434481536453674702787847334794664155840720373547226481094331468220203187924635964204572284067024163761523388860750631091252970322235850095492698889810366082740752912869927136330493741791001770987034217052734023685018161721592274965965433191667797512323813444558063901038896093206479741126128354434179369858661870874419776138946720828481518675113049197549175598143102510903686519957016518141709428093534614861344209643309700557654775498853030851628062034313255432358298687726102847314302325694449517501331412476440657559071027325783705034814734093294775654646815801291025882089029360372015562072158360509491280102261007967161310566542330122265944903908062584159634463917478830132573086341229309941458643087379511165337166893283049561620181701455190348906329466261217189417695983777097106573322266169502457993994661078069482477216989474014105430424808208440541847106271602712945759566546703651083745693592725643319893237152039482385970244648357934774805348476776350851467531914842880475230810225778020531360575185640561965662281549550939657276694657791727757088515970647670202462864995577545315747942918275831079551168669618877455846707867292067803536622927353153877938824749779509176793392793140337932768340496548564095104505443304044129108126648405732847657076739405510400357908998257722643664514788731003311016278457444156702346945037526248850219564036930582238310114431249365941620320725718578597853087882277998245409896565074051031465101446279909904986086199202938709432577308397930377068060627279403673119560488333690674910640631422568904926998999843621153583596407087287217296032628750480258980521006423038038775697515258125051909769816518249662089539061316334347296928146554588765437174651571967063642794087845138211012793591442130837982044274729333495342094160531955650663006617888308352488674020291775256470529771402057771606950069993230599515066734904204467247566067610933807036073735164429045017690028788932137206270513062288879712582356574187834766407728329795259437375968861346395632861727044662924106132604944924072248395389173522818620385864865217722030605391939960279067478229405547973511456174746626097634621768964394695969731109295727177158749669832012268356509366429241622256148020513044112193168646026815614385005042357574333552566736443706614949583737603114858529146127077790454914059231861951406791578095927303026658054914145082616737064261108663373853762336251273780100330547713260734610702461201881187874923290178950315264051124548936418283183728710883776012305723581825071801449347467117132522713775443326023057441762513214269546635742980557794064020565282367961972833477074819222126340134852165995202933136569146576394243234616745530251487800852354537506988309248890585029414552676212296330619469921633068282863367443374552973597298498739994643744172792225272388204499125577682405991531685751047610708368594287600965390557286394619385688954404109278787044813740052802648032710304713038544981050007370496930492996815970900250329000086037611226168209206896444042794522251561365231262207877786329816620846345830675308226846551821910401697666989411162301787744305906695993028405517492778029262736943277880227878019532701608519444994034689770904422578220663487683867992003852518762251714633385262248783751447571731852114427159374124564118057887930542146239922990582847266172586877637643851593348894115540207815627281220706750515990010925282963591024405214070623740400762439348184226499145395749805489714923958259451001213062542930728765585953323848758201488655122945854966695256772064377713935342325576398484171861191503517008536751437125364637421845526264471916377856169350999382049460315587007202201966227471996219739022898815335630732976093113422985215762579045327189815966932793889317152133941163177839075626275451078059116808867993566324169338808127984132693051429442987319594169633092694143666330417650622925643567453246307127344474461691184115650181094702713501095201543133253649986382756978426099179033600738907820002579683064836181580177728171481090482298508300813996961808468986027351179737122988706017593937782205015321507016738770790007139352163283869673918334470584672162375959995009056705789836983119586520597492985515925995241854486972397241899876588250903640624838575692763738062035698952066393237287553602247579574639692518932142607817879520143483543825659349655231029228257965610794592599160393342108545827358964715723703627773051731893862407251422708570295464052130436650599273398190723544022007859858383205206636546799246532240581317800968589770358737023821428655061447047777586953808849204582762268654984469148125708972346287530461095121116085828925027088126022080889793119847311224555309042449483107466184214501499884115428694779119345736184554517146776460185732893593865783523224124424746989531465948077824062605087230485263876741450290218918761884301745811737697153699001197011510614169998570542633440443276604938279044974422138876189791181339051942701542155025911174855982149789105575924973737718657670409672758664310198013922041300980667747028157457537836566255285380653489987882053752814343374335852659183560224970938397515158023793646741689528202928741153252929267515528418007006056938827136755800509083827687334431199516182984501365365632066980937516377271309965824006521418866158525430945932841375192507763983384013140707213071504072118716171071919056187429208750477261034624642682241480663770860865228149237773860882401195421791659851429295763647054061939068043124630649234955211411173091561663255704854589344185785262264563098653749457088557648251753271831832983670871225486899461729862785524069671974701675139182556680183579718709255901378401579777692845732297076364460110757490415896521123052667574356011739510302695067396311305447206801950891369009271707873684274621209208585970844062642628128686225033182148409920979609127618114281807974611135343685858973235019428424301011213246295618430706926924912426195006251217168853602815210155166241231114560560086489044948362411016261941473059769991714348498473499080563322284567178153639823248918075962257911889053912792812648074693057458516187961897841394009373548143909633701775987701166203486774525662986641003296219605049028233011948017017036084875635530040828028343947357329635320388337368886919683152929122315248823661997658472063461323751641131942759183884932261167419669594043167596533204067913902118755873662130453801638161692045197271805596833871995469686327942615529114135883011192505959176804850377207435438255675236151143888053335340176303424722846493739664473440779128337802548812001716716689946074590272986592462838851887100844973864441801599517494101663922310409226455318609231130538618658271857669860647413802985818238809944291816522308709738221889600271948606062787861397682393100287964600970336444477494001315209454797181231810280075356396035852641519719772641494148606157381384693938245122629803909160367837644414132859999015125377305815878746942735309278277072904537065960059824513586066799473877217575720419693650235462125729147463908969198217085584352426558378283870444626472861994763359338965282321776597775349181330807238305160865234133975716523734373853940078794880112311874465255332591612402511185020623673871716733172103441538762224293917468751149688576888755086798580911740173760962981568640448396005926819355652659010728449372588213408845357486424613950608089324217523091887737351428988862963434203604242574770279944189458935272349188789624160542251834247560380673020147626961170909215136282475045730345935162621910461276623295204464646882765615941404591184646044343926878790189738667417561379760372418857987817766229196476371533565488395909232498488698576640997828551705977820626772610308150014724520044636333354528817591825825583106796727768297804881487900729735385798655935251091045424421556263116638373772803319939976247354014943126616803418069581488198402183830991855092498293383590485072113682681909276227528932360737052112836094838734363217274498430005302238098485857494562819832663009528354202498796407364084858351095255187857479760783593014484718644553852643465945584993052601206225485897966513986881971818397681547260468714202497117800656114481218581214142861879669886129157574775740256464840873158470159571445736696548357601415100201588099012615279606909092460866577751961838456412942739679457665718079177400555731056129249018926971403341237955177325522212828198980164565736274727828887456418032771630813072722321447207032125692048649484406038688630436362229946832514997104373880644512517581780394922135045575216854081543926051649192876046815091382332244926711517098978903091823431794299545771811104274889680870782147170712903055109365502278289075754166442812734625632924932837107933862082290322600725046322011181862847166859032814014144284760709628286698398097199453994557142436059020017696960218466311068252469850209191998643044089963944396970996234602212189823911374889156279011648030149056248081981120127501537028436488679475023427269322521947965966101453641420682456688343796945558909114174891131675971377662042633612739993557556962490370813552958094301831786576587671085437396331975465228401552123889778971760044921637672583038700494358860006153326233648540635340908256567658906473981069871625436777605669245222194948238758013076050796282670536355568378706956132200003589978894911353925869664444522941304372099758595508130758372918255844128934484557210995712572757680828354602902978846749200224233997134759436547040580605702237698625609127947622994958406527620618501850208818917743590215075072929354348758242082231071130041870474970017630368426513279891529175054620410832176971259796560107646098928719603046534135004789172191619606859950748644564400856243937187313315682988326655480086619424589642459266835318571520998236094725224436549489765033478147812849806212398692509341364437669997478926942686128881345574297014577254394887412245066507224996842715768989278662192795873388242128774150837147514854599598594165500829945362120704105618094476648513245407070380866384171040214037764065385370565486461374259506724372528417885620479931121860873230546359733088229807301222520920437246726174685859676355542229989772229296597161638463299617568596028947854698345657487034372615514700043287817014094035191188285793023559325542432253189697794753901464413645396994231220919896643856553538788049759770237840690004820747141593940313312578110260863232210649303763120479201533918154647502595403644425070385049679011134239892981441381683719582114086859948572191832734135847893704130035043627126744567557542631385236739193809851562749451922605613639454542945953085136419813411315651807938281588288387387256235246740813167702094464022678938206227242423649909982363852762003882989452849909249481567502307987514469160160615171569516057277802057435643615957940056539560500490720801737201882040929397104976130309399864301348536947803205909324337669675076219879641554207490432231543677232768473208381652412344464278404988899517422266931687577252563774555176230623718749065092015476534943260233969794319655922358984860935852790838473820506547745282964022774301618788568283070931165727801549609207236809124920856834347850567954125562799290044610691563136068316718644762196118823511655325358512677386497464591273179922660407286975553422388071364952665951050726659941454158991855210534169662007384154451910880380563202269479700587142583130794132293221548121244593856900374044777067327598989109674982825562446344667958115686229211065985858629404003315863012058444394446386152074684055919953653117782244919396351156662114467097789161684696065161961511900833484679057183239952173466612695341577897322278208524909535609426153427890523415169551031635266750828205444329546589143329367398577819332996694232491976410857806936934977097408831251333289435027822113342878347982932426551681341614567520155609965562098952173148251793824108170759755182197549873546008623382298896283323042738277593344809496363865771814445459393094328362381556922155472219100988186220120890163857125206308642969986338375743739420291926423807541231113069159293838280538535457073264368121324621649311404294030886763869090066151608289735223039801513972655835560406048396084462016131998728842058558456895472052132957825897019707017965622625912967209211408390611227624562107437002674064009832723318083174833486598116153423138468420930312318569607298964485556129300258194617667246882113343733983308275506331221432520345311560134362110755074142885475954073993193706202841453799953862434418302383696392629065767923830419575787443431401008360642304787848018077915537366793170052781252200679981020631901890253115188882306608854171417693152509470405455784121950536013602768038520778862322374873596876206611195119346608162097005854475414180964603832494960415423644222925161199853577515621462848619414733585274665762326905013583032327041830793265123120942271125068662088879315612347017854391635971022479266858202141809934633669446842465834498585030557748744214362975056441139143681131516465147728311293291791555436517195584955916474141141578193508979812934395629791200000411135563612659263166152462545641108781768364118006534038361753710323729823653971350606917014361900733730000237960930874418188282580782391793249209037228510964967893497079917566911236379553896523586017076657006079067723526322751524671459362341224485350586165344156211488768115048985297966948639309703727207759657411606066389096888925796235140145681383259697630717723848495460488247574417158535049430251049436083873248659029082472098160643303286133700656892343586661532074450545132958589711523017790610995865235666195393166683456806093620671278760868767655387069871812419857663438257618857899195241089987021765446869472645663927366491080316062732754352930404757020510956555038125648210352515679009183379850279958199023163589542631350749693058882888524879305906668955869698878377800581221743427599472250197239879272166495069640968006977506516242319137249341315629964966602575672088991050809782405642667373701705053592858693105611686243888769035967963284767872239355321367524756169691893934107843817331265006005590115010201873377069077946931095115024315826845286121433947612716133697638442382625025354285019855718580354123727533256568277676272321678397632572232521311347803632706106143319133930591218664367918803795259786240683571457850842043102590183634798113505721159787582377913747306033101880178215386594984397125471637056232279522365678439888308984988123466447585764860634200921715794316533934945000125001667560652011559213882235154495090213390790632454784784697195902528813532734844588320111667506648166057072009383593802189894569712799000632323241617133834362278249717118720237699853388061799947072347194030444983581896706049161901739817532340217231255498388932097782145690669632802423189369631547117745363693840337394989414796953138746746902259227694907371678288453275710326168528846111542468144868730386469374304256099957172074772092347733649957929150071175907408262592830131485099963987152397320741759891544326531042435499559008470947769166274854991924354679395689706297292372983129387268443949706705942200349196635949365638991994789696597492348055831190711415439743893334988433932669382579440087025801104971901594359314492957268682087760617174236800679182805705524623008855660130339210861601349506624090669171767292390377782852545974317718002468273760892067000102728653336000635440368057263971434567425134949380331670268888112734638481274759063116954330928933459907213011035960030884263889527097918789614430530494530490654335002261591505960723099630138869698227209423019578383486878335981377891848652785319522131480059845051326775397897403178787476766159208002714510229646980638077296497526388672090396961944299048151476097463286334959543117223213393589738015615488056026112943297051849614817557294248506538671773626047116216587276292753451619965997039721847388222386837529986721494672008784937801642230792515034847096816780025414821098826402058067238613781983767031948556388347948246484984517592353668105466213640265383884414661675170509156943689993766340105825685835507240143210471443770533303677143892652448192081969557657071372843448989512509772190676074439180746862677837559548768665613940480263149687914102458903618177093516616110030668159549992471267340532884293350734765760282930050634858230405675817561693007026195158221589233023354910420613218529032985572730380906997355429029781466746786726539574991998037417819470576924616278644766613691639362578275436277998265122346888485028815827320954157625367054779564251099739693846561741968761682773783558109983370380018783815534190812234680425462798505854039532020560531603079281605298583440667888188319084680443145518554872164597101539710267177278678188986683307313249774135096590355643267945086993425667713776767628502540939579779530760708697634226512496090531757537277770540420407395156968531611903238542305369026096709407461543901397535056405067156327663318383094680748546566220285451156426838739322365062441385029082705792051086594933644843972212657508407981318567381320455743885300262844684758111204978588995219340875675374206967472506399089099481282192011016143474011137575260794854344586537435736647131735180347582937687641017730096519326338477071254438911803857194408760206577619680147115680279180752784165211801648682871161057027899164285500228733071945308341028974322035843119152258076340894638532875514856749906408878960297690238177830372175108129116735450397502981924931445778692630958445866222742395754214981056389183197718554589396871030676215200711974524798896506155505184214403935111344753818694673247538735237121379879639734179285930436472746963923638102449435426460777728761165588495926833811773641547853107210281191091757603179441388830117357911178771632508880018355335716411780394166292267598243576064466476022339263330296874217654852160297044895935646629428450885728188240791121752773882659187311112013354947139008511677677805374977166107389864786474010428251164611617409904068928747439781253268129472712041619502110814728341797388319626080665350695590499734451357746446732662608055404164597517373526806996892050801665405275835325383485340697795785726434792608783435963934417451095211076374500708276027416552806141791028293840476881480882248401813115344080869733455878693222327573306261500910749856061457526671399999520131696662753286009451622540426757104045044430174404023286445804368114744861414535314144429592426040247300324733161215389300287748679662844234446173259220813976620426043099196935562736302298662572517893694524914432663526370145576715283250364041078430074365850438033538310263915596054940822666836567310386792234604368797934496790387192864019323903445398576619753428501047192132029883263966037510033772123798025224180904916264668687626887494202204590692534087341420173996338025219017802889597819664353594188308426159468813159542022623390652697545798114549228007403545681354069802605614959895977229687227580704868102670050750475553254707869334954018565728403754569747306784397647664952624782863577153877978516088218551966829904426755120946656619411024494206684171588074829902211876743524445555289482290754886063546787323021592911839776248890381198073101089836007829322290253847897549464464999665562295859481789261040712944987196058508941362736843154229690618842323947261247106628319492144592508001066856369415571394206924797794421103678851995627770432131294736483219293570479670354696530125866297470098534592816131537031567357943778223227463165611874636419738191155746494984967615563311345132732913498447559231419710212507956586165423639883947672975893123092167978476441295223170227078900401338748080225404295174923260444324868605890203079278333373682022232811556202797375028036750203956467946917209702737197855626922811112331064805846933277763888882965915833639891622616991322105048262600250189700800536212113626830520426340475325524676755058163666559291024545373742267591232085678612880000018629503466846647344809766933049723923443045411845767971661498091384910838890478742306239763421319239108559417630172677080847774491486403338400854786454006564266554023223705374104692778166914573309939826419153614125457639811121444629621479301352082128726956932545684133534163544898378435559152403484303646691527738151265530479052286016498825184356712330486568599396489745874054015856449454364214218316438309251220054640830299076223340505560548875731901945073069786113161390415855930340192161464681562404303929635791481432470499133888048847216952042286577998010879475080393141116275061535008128350149907035514500112381425748529667501408588296466715838640127290173637679998133526694737591162017666418006158663890555229490550764300793257421929216028014431566572588008963624644999477200537578186431668774936838916548689273298902961850717650065170386155970143506516834086139156127833212733287313642890244936936079788189948588432576637490532688419635819270526591812947828898359959420790128024881374234607924395255931625926877037372814977679523414885094186548843946552707527009114155869583168883707833932940401474733077171282305420352241608549989805000717788951617341152952484540905427057919030434076360146830505866017708740094405098187942485518457187787250502385827898958417708058283223791803698359929691972339474023581669479664822015470809646146526043745166033297470647800855081046181456998942299008278970814694731401891623818366771517971391177870916888506318693321367266335737999690347433466815262803365299737886161622510718892112826520482450342212102732003350150584068617032469957364738201488050889582472147274391747443213984669290679447610316843321352133506457724529469210367280244221653627024172672353442394250434919234845467219132206367957732695223046414514232611352280038155274411813118826333684174657486981153771193628334375036246428569766777834342856154421475065275110012759129305261377674246994924258155910922701735127235885697451471856489016779993899048357612118011424455652742503283205035812247581928734022932642138596859917696785185755092350557434388895207771748922182571921563948817311889296107485564106307910657363751434697708331984003910667446026263456817323872057480092379074095885656674148422264177716725023545851774897835675222916422129786090239603198065704440064250726873490935153114959194170511167192691491385741738000067079584821502752737781943311527287831862054663975665952153661351259494241549706169226537383667016884880114802392478179990169181776554263071344852920530298628480139798828868272686414452972775079915259494981759051031632272510540479564235504058634294251373411423378014952605299564389266342450257070459332300433694187479907087842639882990114387722190895123230488898530318820586101496590401034953772741722555099175948823324820797589219055720945839625798930860604255957038502261573978640855952665112784394821667188207967854087790696654767426460706917275934234577776108822730424777553131216658657382303636083697956713584165344452305065818412268689757021915794034890756352348893120103864825895647548424326932289518413615765533046466250308165644410104554953337391646254898045632544589768902703031865880666217210412244503962891272334235986936883637708923527388039161042980309728381319203271649577775805628229029774073596333543017241245209805086816688519473130539287860959610983993099490417666956071346382970962439132371362881922740077592267803730707678265841555046553125586542150278541027400233899755067585874289262109309364457340472546780529374374336646779797074108947258220256306877753530132575958985862146363063958047650249970083911818482688363505416242768712479324712074316407327110767713408410808448227578141717043490874236785233277322514881619557373449114465355404373454330847987452576625142611065052295825918286759573993658831738617012337269277337067839888597177291229136943841428573431389156339458126186363636609983094322334867069278581669071872269237604794632525000264659415406215840667985446722252606551402534583245818853835482811296804568757352420273523574245565310835124368011696462713421592465556197952043895185139600105904113030631789691770174070058505129645520198650112573135404772294868405358811489832590477738219952193580296035458582447407457587175255330291256445571841204044822067082473117623216539652516799813437095472667097578288726133649590463759802218941701225376742581418783193558071852163443990716778044185388320155507472838475337266040314434463132758600020006846314476681534078980462205124214084883519666242051528885955314787766511692301207258585505627330229397492855155505169443046850002329716301294007177944279668127792255175547309711939074695365338156535213085698259605069257077084473584892347082916601850687157574861353752267635472525455762562191796431580968632528734839526061828164401705729448658247014771382794821636623235753380134335986281140913565904549584812796732321152773718519352981346638208556563922174836914008174530930700547169413872604731365371229510580013805977887600205419660487139674464542189485601933191716199772639492302209050775753258894942333089832452733874705855109858798839333979615759152992326861089701271117976856957642497485797713969021615373758944570142382376361723056442398835744350314674949743511928584575424868056876991041218851284579926043278215456849055108573146273364185988075916672614344955594190018451436455847627400200757603074803526011778015471830670047963368444722885201903926077228369842484266867230055915531726076649656459734600628605712152567534503453033685445863346776147952316409564161311740897315516644539642790176614377744349995494785000976472439526649734474069944329489587573809996420236728303450756221137113068060022835666748824141415478249300658791077442071308278057044439336005308038754169589249656298663414718474277782091800907795658853469662907087217780951800850183003733584266504138539003014753402012439065798396389848086064385365732759630815435583286493633445795001820299583451077103676861959044037802024164818240600506994384075651852847311548163384201370516713575037234078072597895599603155754050973961065478723056072939703115961957129008413451349357290383042861433131670407838550812565438022889578575952358264027964279027581995295876019206974750698930979463721193534203926715375710947896530175994789310331265148036685412445959403968246033480176637797261871578253225709943357815915997808711594164560206774794125916696118857294640372774125935655002486011975109912497925268831701021633302220824394424828159902882610910178356750011793636887208228603583691157168157223112295523128785280437396854361568118299145191369563741214573073017239829480760224633671190988212415748008638807775588505945613489517814466890320311812911271238744803447257421643090879808212768494254122875989869519243119397399340117561967165796953593061507465724569216720673206017197767767741158845115120200055556697219809014397105406033714629152430113403943666442385992323617947598561413886929569417924212680277775279900662356953569062387018781653174289826072502128901394696611938478128186618928732633605308558051280586827855686310354985234781083511313223014969738592097490313860091958172163031822939776195860454396815420893402492111798804227405087864448851009252429355582572043484758095158025337773630066531261592928827533168716289374992459854526469774088165644240787059526973807142928062212791238442303122222247534145983595463160700472043454041319981313918296663369706118652876237159244327449279285492957839645114590940862386810751943130731029538354189561562767270883436716055989545450161297106095952015304530385139827073837864779511272333051913361109324510750767749081167675317663972221427828038824119126766079600805390095775365829048408418452555045938493837885790452076197216797455973685635708434172512852406541929776299622481275845906038013139540116645167898114320358845213230962507646955581739186409554314022590574677682133375760958616090652160169564131577214189976393401020919175790283646625172422549438830420488471296316155205525567216729801372432439067189036888625508529755886662233187003527618398260016907232500714147949267692557459076496912113890997803393946197092866504354611841088423588289971201114034055535595146685886689344328443243557452001911478286845877026794906474686223251638671473333990300830796788731213049098333594002397363102502360852178362858261740447728577473497052963967064040864474315807428353972523022720717431236181607370194924272641836283747235422170489145623885146896896647662684497854113775000349020463034643483435462330779598585312677701645433552178802125723055905850792002578117704190979365196737325553643801665569306383721900295086694981722930830215432661764600436992384870172529376284126211464182159662920988774615232700471371988570366437328195624004617970187492642097708953228403180152778366369722129709213286657359752695178862761097973829691335987950566675679367791380940302224636145069619372789871497156034086576992748001704384191546149290829737126188551801040412901501473687100579659461273577458766850803420455166578680581011457874067402260536914507713690826736840095913967694388312063327640470209673203074152020568495984290051264716698105051494351865580231627210460566435966447004161058542722053665982196053710084773602836222230169893922259428791411335781091812094732661112342432580357582438091745173363104078126328368771405097327233644277973619391949277192257957579348270661828925047677718146139925104262150184320108734728950346865083947278420420531226912908969394134547097378605628420893180655607631160586413397599847517136849811299424109756034145785510843036705378916441402280963849672939086889529164364720706627299240623043788674008627656000251927627561950168274989404992541116372963609196340881183700810250335495057961941310234901628209701235902218406591695269680017480602549302410848104380832879603513334974786356724394660528516769768898150434873218648284777810542440190993068433373773240024095929490973321673150013270990487733146520518144585134204902355262587834057418271989210511076622682113116121610569412700523715839239308617756077254653422257292547570966483541562266410222112719299721109292839598014771234535406956120622012465672976529852028564542457261885626248812039185740407574563044447438829178741881865818143021088756768451596355869655713043702965957908989422589026787743331602249192450689051011102339062667547060306177479008391602081335941008286126008632933817519437601318703905392787932797326400165751700593262626045064463332001558795505872549408671882854262750131921548365861075859489058033078444950182788098153823604633502468441809780475639513199430606390791921560763928337568254886331199344505504710897420933894263863955832600837122234446845521282112804534369773753635965600626545551181250588905889394572814465142278238190214648005760214574874689275185953022239044727366462280708080028125181857179564980778947672091470392570605301792434770082283395469260743418423124000015846720962796443815603536580116572847520866607554326586897697156414910780531872031148025796610125358427130652738305874288023127622260505366854472888403638784461527757153522533058569645774218327959118979233549787550457501732684269156175843930517527026328491973204295630355781842542287686940230925893055401460670413175852935712440457240614207140925034150775440455093692983897815410109360963153894688664212717507334301071263862342169835859154528529658228993076813936726616951844983848724357400898039700850811309039102728411367656293775774804158653119661862457710056713903046244502823125274447459958274584288831439028870244547346641683686358481352177492108987182554783024213392548961162846538445980170280997220795596199926048056001990720633434856632830851469615095277798990412592627712271813814482401520078187276637044111075582228111060503348422904309806195022996884927376321844864489811183136023891303060726469320000944830877840809531993297088978994591805073482639875607582346587269610574080111102919460719076992166062111954028453634939141577162619718101427785213795101571069247130407913759514725268455538171325976179157707529350694954121664778119404824789539527585122326393369516561030051519008074019368593631574156890592285090089874571945202005377966762448684569757060848732595882024045842569584054627003235572408987159135246037423090172745298099140723776151909414844701851041328557834119423368755018833548770922945018451256155088713394469135886208005366349681474737299771719459895966699891255985572240726595015035314031524220961989025124554965062832265241282709256362551226044693612748611457027635980213946435932765953628205562228910429623522873996038224848138455725085764591322164761416477690754775959129131451531505955400807117341579529102615476734853461020349205673210190180254806736049494606466251128229927886795568762124648001296595053386576216124033973258661534077468779045770789863216208595442437369743962740767386584146916253116396332056667321647229659189162648591284339483132516814321523511525959719908691835811316501285069337788721796942292561060215086508636377797192019273387758860553289998948731931353770986855876764648338820009784902634617664768664426886947812717479986445914100544172418322667258600138843679086061464348907328466488501032516932896811726870562638699647421177300246889145260832968792515641855268332404290000811072378708330824729328055755768931596431247270140338490055995667276534128915157872190160849831037336158734535175124476668545114012902490532397169761265094179387331638189239095855706874410113610581523584743444292013418018202644774595644423845949298689170770474100958891404863824895899139361777971354026393620258344880134393092339472727300946666473438235221809721886024326677888539172668738015008463538130105330520592899789148029791288948976624477510919758639668090452403364929867486327457404997630414718198614030877000210331650955560116630578706694398480259509191555207957410116641506089295400542690267805025165158253071438327709800883051590108197414264520374436392750074918603486929442229266177954502631029118946255835597811709068124127158062785557437552829944420890917712713681345895801917395023141277629773479179627934092936976716580441642266535016381118836522943060802418036957699561666239968490507001666399347120143604633277391066814718876690128895507455617159108379704522705173978242894669896540493463939565611649222803554310117529704133272049502905727715769458772750406058565954917147604459850100420114997290570124848836403320969422143111032246029426432393358466081758114689821405344432649174034979494748757369873061823953071130312574090793802072169726308913654142186370196347579354285296672770100631174731397612825395892854207214245601153411153333103759766153580514619928571962653924121876854024887087487627722518538531878015010693803169123233835784735943094969927064843246076625302380044776964657369724465799384225333151584837764047374769189905472866516948746174007672261126638954046827703342953867304614575145906619842812021124694146793341081387089808962200849624237159498750604226377183228217573078535505103427791124362018778085072158824101099302773182959765108145973127983047633350192311471191584444450323272574496402280394304832644843761227007634781785599142382596202514184241132381318542724299909335891746466419395610847272430082722014368342156060155652077834187709360420910809279736128114333985854731792828016684852237850092055606084096905785394918662651427049967667902759689760433787067891688591043582595604782309530873948416944622345435943286468276837941746076804113760660804674306911214573997642804029892167828168459070231954623136219914642530522417438960781101771398162593042780316455873927237196164632378472464942362475372469024050515935364224291508713856899330202823048276124703321580786103150796878607314434998968699467479070108837144408631716885528992071803329701146660342897579780486684709257175091519962208383107877087820200947905968111667041768224160541738648755543027217885256681975872242375143272846344349725510186168040749143628761123241038366436790959094354871241617744967002292931342252199270660433786257322554728428577648830718368119044731230957138906883279485919897720462447712177555136112202704074853690778643831478535835628331382600298502224795285767672294067475212892704296796960421617268223269325485083847496645112538619866035128999659275233518192940327345680502577530766537137153184533762708602638999251237202362005074842046638394904874024229807241583687375228092765031708544219715754809382804124689363088157314576946633456149934556330002256310307965854191540545316458763274858553747086259052406065016661425264536683459790699034999871029208363410440157996338605121310981791497434690695179806662767188855913976308693744286402137690885181234606318752948531291536965403724397075666945130298390131109517341259282893702563259706985602507003604010462155015321362896921108749783701418656883818695373964902276050805919844142765389231353259254963062275729168438794628162687182210802390023427991374176359711645320305534126609226734716524959639341196516938437745795447576736094501414840188701047375747244811011875605750543185427543838250239737054957020799957249255612076286589231556808199225285153818738137416440654657042885609984510021603414468416915065833173752259073687144004341332383435446813727985844572052617782434167304666585419293197234643026500967573346197949741036189532159670097478051544139442836936566427680745044922351428722435515409699062231451122139459150760403785009807595764615718916974369506288337785735609774065333304325657422133159995167451726755949069542463400053349145984505164089187259396632398755438169217350380146432564657564006145029389591403509370999383826478444749757187524531002503980687354371727552766846660360947124588224512167539472771595742980290093962581384495457051963289024843070538652551086481421575901843590840233194526414113719704586981917168247071953043797795166017256733821709491041672356307092287906875776610196100587784999474795774787247277715689001000603126817543905963071706300858827628150507144980067036206896803134830791659379866156057871530000327709698741787665684196673340475994744434589135389544614285753915268799812877277860492264496535216483391645730528526344629881391968875582510115328980105671073100996660484893785352654602530611444935703680086723639770545154487542419529243545777626763039512359863727281728221305538493829645036366097667614129674922149591348146461315272378110046785176722090280826453617727600517163661541860047022818385524834795513208275750624822774128810368131066388339941316163704714644209170542539357030072380299475379963478595795874725995620700281617272780332276518621418634811188357542237253021402265897302190526535009028924977627594158927072812917987747263403183522028690356309216735363555349710807336814822424564403480081009780880552201832816492026757701152762880710189270397145149596437398135284667703460248151808867655980913797172197397416699411145148549765910068208753017971187465555300221270786631760124160012138288268962304585470828937877350338773602632479906969344507675642582354081261898607107721098476046093383597359812810226860985413662832138478437069200305062354119275653584711248817216655837412617346181448757370839352504408811631126737498188054806570464167409711082628541672930454471908720471351255991758608076495638590253448276678542797506656965691569950806320120121238298131285115144656835589132678463299584478878710826666124393025067721811080009477650182459528388470471405238668043416152470873772483493567507595143188510316194332471065561911369154391468556180249719103165502516594476249371397031647381558472676728781824648685285826372823773253962012354768689349670983921950244134425135314197459226032055153799663624474869644094887341763628814806092120263184570853016794045905462812258968485531824205647377544523115601668774398632198916839503184389280742265563394311032184377409362351357530377977441235084167275615118811746008095545804942506767407644596500979780439493012229910155712837262111932929206377138383599716431857148987513187349129389167455737280415274645185429910733720900015182000126308098648861856945778350867218027091124499219863475761494150736584824653064994710955802683815734280974769986945210124394019879170492887856492534816201154911047293717173426821538672903394634309145359846521112466643529460690721848130224663286096399771645369210231062658481061176253427746598261298945779612004700482193661256599458051442744340651426825075605241556428881397789455489998279250383731300820468735011925615478783422870689569064228104547564752811667068439421176468150341396721370099150446403681044901597727591330029241778121524730932901983461944704825424979936763791888131699742909030266452278354836691578251526403586171241036553994730210789413895144633922229771810585846182939379101164849839003647833656319924738540749273971815242956579416486082333714274446093305696791739917467289956618560315225608451953422385399805220468006602184038847946457807239772042538827069803023883368181300693344272995388326892639497858709196047848597054593522822868627007789947790133097547114129675811555204541620306176355904912494961951414289115025997466803012953597711049681205630391277144074566680961764822015090561898338779586341834976186275411288199223699843810891421863527025553468692419254735758351987096610321108712331254276853261615756539428343955849964788294763287006665943277879112828234564570663623869375837166463358620024780428593965412301301237126460927139877654953597071799497024240794280204954350647707966714940027655693776890432324306027073409621970929987275198939158301053533063216448828046267424040813248209025097989887545793608187020459198574041127719563660245448982798298932684830559909266934868643066689050381420924690162537447165748582196162542591380471415741985302333777118280803541596242149390420459960097508011070263475954476750035517775751904662281362430183330988023471368853998776124855510728710194186728686008998831283899533074784164614634414755527780409180562458968196231990687052374093267354002809366753091352558149749152567367423290042937704134005194432562057530312399836397321897481729183836919705071378730024421860366760313163828354099656874722415914342621090949354261266117464920491780108031398376451212181088424451963639212394842858664410190117227345231813139847399336127689689397594628075480840835272153117952958962505696065454598996765342417271014705847234769649423948497012678458129039789965714846129142986489455390153320001198303579834313146302557323765497037372326254325938755151905128046608854850114443896000093878817442388802976872377502530575761258084560807115666404938634768630550869969876258182105084974750840257670577683611294826009523958313454370569276405458729883761882177914070817834433406767501198513499680212492881791565012999157099762128734557332561694192537633834413819635274491150064578533083618664666868677539456050084720997800522829112610230110019781424793087315477612142089138679703764364188605146251332896934608909453084533602452906159993542179520924138400161980939576593817076042157760457299350931688158592889850502404380343593217641358506480516014264193326035619254025396198026457646422143832974048769875295258005107368696235944789739517819783027924637142436247117779670299655500948118555559933229479485649227234935889151663707560745894089611310901314403101965778960918033821144498994957774211870822663268151968509392732765618414397251340054258758180005598689885638137458200828504467326543383581728590934741061033083763349730002635452477550268954779989849395214331015896980872461550530647614850515799082412999664261243920549815019100412747335946818627446117005371172386638268583161744889464166098931435657174533933704681723178709180980726355180525751759208601222816579415668942159855028548438722046352280520800036370821724229099298643369870019299935255931560889052334510363117987820992179324558667239999335348734806627010792314756166469932179733204089526825042116666296949976751814120176720427476234458133800520841364123876176620668460832263207230706484825703246274126025576429149116456818613609442433185588225724466463186546680900418310078260251785839598138031515765993776566076438811782056086128433562162690877207497420546121765739513235930336754338818072616768294833282186646274382970028539336634706224147442889944567742621194363911614319299554415871246217857962147223265286184366279368574616752527195390955280860596943432888059691141285607219722617842469886546871488107839962722725642086336660276166790387954895137224660972757695060652287296651330253159793193984845798172771116470171377409139634959126558163206051424826065037927389681904409067883268131835068721108619021771313781543042527257713833366879562412652670200656812893477149145098289153318278072240928615040823041886539962632043168338516297970230843431557248712850424263261701634393335281559304433603987290394798190323562766057500417041279051369371193681576118154499942696095853360370897487139505410656398732422178729147197965646283652850075261551668213457360669369910728679263556723885122887284358016129316781802153682496704566919419025732784322401629928198926485278879028821480519089452702725386293821798345391538213066483798833761163088973340881629493377433501074926292662401024497058527903822177002810596643043842360355524784842739207625648227847278869876824757182274724545695002080353653524787737353752003723310544989395803757415896136934820890396235667051947049784649740941883438273596266854890923435070684208659164323437483630730286507652364833441606020521733126285392767665258715492534496996294535022957786357858723131217985704533114030874523751859838032922657081675648976054539249557208869294042120968499834665500050402573813982198688658404040349453607876278974475247352316718016608586522645345737627047255520908003491035243799580024376530011533638779348396611476329086365730447468505334611696531651455636706460554470254109401483477567233186659017581622989934053445126484888018673944445405449613125361024112628436175803138825878408011842106346781343573836224649434226503936124782660403548042715999354516900413384780017977472817105511809423292524117564563032745696559973613213938251750907308916858712463185805943276626109029082097789233243629980701721453585877315197103151047047326744387056905467021193403222846349691115716307534603992161839885256302641680031461955652930320844652801081538827312065979577551528961224956396147317821059057189316753042049589575744660468315370871525408920109382159797606249639322295027644603022906648401626917331318635648386440205589984734954881500987395615454084874001894880242385646762427794322926894560426122078784447999983402970756505480515075546292455511265014548509329266455968966096376500506135871493994936292261022687730891147044812077986622388723902097931529061477125411015490948724291974619769683261719231026230403812772074223932642929574274953280193130464241515936196257052149636510620809233864851536366873200168449954749101334318221880342688460380601048895501188501247922969789889943237246884162247119890035082424259246504995490340863185894876042714039928253176734350890391648439363425735957196032770528368958732686002997454692520874407532844893347061047236025761870744745721152258612575703567313862707953526562844457475752987558485305725924182505663264373211998007031113371466094622754902089564789459977641271341780594189214120633158602346205121281447330361310411769306058387452433468091560979412005297498014852662967341257517931678323651381464240706497076118292351500153471029896093396343274129020462392704216201579929685468622938405909676014542485300576466421048954083290387047219811147963705727797437674908919671281297135957269262248597951836607639021434402893937857053900139032584345533685838146911728460876046930650705336950757695929089737439772094091061431726457301823939969981882822121417719275122872268569900134981207001627573105440349239523954321030488770624591961046949022450352012246082087641091448251727572236369306378719974988438317059904790439322744929937598977791003173912677175670165940666015078005509091536422922333074284951468539559480065550803502913627221135301918990584403778918130260277058472135225217173787494238044334757110375863034096509032343259016012263548397069504901747605611375751422939363187384544420945581627118990380744391953597808070281605546287051764908270118055819961656012767312549839874650843169428233093179316608644245144331573765368587472676395200562583735520810556225242020085487536249508290486759465485269186555735157194438825497445016085133728871428421414180004898402885308823145606305240755832077597710824575847474905533826185600673911231277343823390154317460437027239874773221901248055298755669023818338212737108392701087936239504306635353051387504186655939151044876004246199268185660667256051439111374376057998964540524641361967588590392166698396017414216328878345960237852410921767365294095094285196178620055826673471023002673754603400277373807565399691692733622839116030242120468949992842143401548352705925671975879471822663731206031472204859915414775591153533121397508011344002652230681728443307268411522536275670364007014240101814441941463758699969414690995209909322618511794542586965110221302715199207897968783032082186869074938412646153094158073372277702357873268646472138894364127868476079971873716270141525735512080508460525213292899065517874195441507012092666843226954600518505088513226623543628075516230890851169947528237259830841388808431758538771356449357612280824773192309592498644916035392620425304729614534437852343170720957346416980176188835071722804390370339348998371634546575403825175500762906655560303479744032070728996976786799075300996537128031615820137890037922649757586868745212604442707127775745721113823486688510971918700063511003825865603957940042268155597334219654975335188753279857785651050734013092538758549296347606335645045749845706760257496983572362052462185811886379128334392717330586675108088357088740265566464246233649216638109314666386714378753760836203509921823012154472582120721331498810448962866157159860510185111681742974035058658705195529714967476978981861958829277808061701226022010188669354160432224997925989531307965320929248512945522238429807981007273839557386306877999823242157830501587035198299739359608684779587649965173820567695066800366803041844622131018371570994005132584102225034589494646389119577280235295035861503280758776891465639608243833294157781975970949753606185842650315764822292878337589840930610207747720303845886312139739578287743551434244821372927928718190888373700329389602923463854348019521991798842738743510299928035896571381376227722444763939213445671998623778630209270630793500496963404544108196104852822923084135214622147261990129564666482114422852651681926707727674646334326280064430743347117307828789533073388874265713612514822065946639833358397512097598737152962479211338994496833281513479165439391243462897536316790983542342948996995820010194987287669058536109774080497894487663254723496506573229401339021426603814905035015080668787310488656556481433766369157737715571921679568151111703549657207099432972046346047429991324976313301824416997306628825827373812361741249626477517267882070836470941424070913058707468836637786177289293316575514641873456183308804095060477198322047042560200208441970541209107787957557969828816214060239747822769543642254037100191117934602681453459284061480865190380739412977881904733369786483301499329546961920052529141747737952454780423225115973129264284143533481028646972476296475976310412506420435591424272337440088821885390664275919056639612838956241800215579398659294716105381372800297674645244681364509910361986148790156952842736934363189075529779919982247354796443877870093573070712695703413693810960760610770475729691339174549883777653788147675092953341661118046922497726310831869655053139011806304472305976745438461302564863876185999918945281382735529604415571516710476213103254167717257957084909426734694608295573479878433858191669348077289850165814870454690897234894116840988605446937291534476958580002371174091990612431629319478942649902541351074831699762811181657752136230379505117062146137038347147952590329887973021388456152116071788067266535715533700453435528522807768098031504122377617567574102398503704931927314157643151912232018240404253772057801767145128634234334717073596175884231604095083711798591329287826576558277631805238991603719843214319905310350345391730615414644052455956677997605211154808179720824441832034238140084580685357434360920595325588411521994209849966627897542669132499721019950097622730646188985485608287383141350341680197572907252727192769360726991907360641506440617579951494650909430976316905008012429943062297918544725471018159816137591684722357453718023990078191394331215360044470174541872968695573709912030136955072292815513005305284572544151781611429756790825946613839350524268628726638842646701849120491468779880250422108938785792838023408946005355151176889450385165810472393784808628670312019805390103817844948090136184316645927886191543293813083825925841958369188947137786319354997848155542895492932768093132266151199656823690315989302899540728190008434377816535648440227618023133640022617737663498060475828073464004928461229095583083049074573153573928198694513759399309079816378161532399813973012600910137513627891076740575135666741412261031780806973072147894562740070927408474972815545832922959700657026329268015981227573369612597533273669596620245130613029549439683505790186343393664566694166713575076609938295926309556295097723055955234485446633158624228405577308249379246594667651145796836687631930769476702748557720809659837212653357442364477120224404880392181290659191657777017907245176769774620853823168659643089580161781111058067690601435810430917958497288716796268721592618836221950965209442490992165187716866021581568208562084738199376818968636587765449183299066352017881245019733382588713712287507113532970538980738243338032381777832185384461243760560319613857681787725608870451954931192414402899655580402148467624680007160264093351359865839111161975371520774801892352805055856199172365317643383671013035595406491709192290983268556832256472177913133246689194699344456665382706488403122578796656284534836597673037829145263298433039760328610968650401182489209457899185861317068413253451367975019210613453582213688857101726731200067228610369285270962936858661670754308738103117193686237332375325651289529882622988004329869872858008942634235296692436967971626409309492133995627632476870854626890718014550580961000589255049394086928964702804771219678000815028886772902252929021501620190776901679557597134177481623248101472779885972138155352276304315020412706169803653956991856643941748386864162893669790841136394987043582395763966565320748918167941597098761291501689184682501062754740518257208207729219509737036363068991416576619555257783554829845732011353126278074232356231823643143682937483349406416502247157995564162127483253698680343654434845215928482225331751151566245574577139659815558563991950469249202398325714218582987871546820376302106814319442022313117412176398258529408849458558790774937835820120161300736387986542826936099525838162064852194228048224289466873062621844639718615954223754048364476260371006459771002195703934174752771622510208758906279121498239316299344200922480951987616608829263487458997215899834517393188084479257290878683087929230850744615613318988979109275100137461244409355232954386468440006955202287191686932600605465292875895439573901497587973608269641972588500969355886342369913202474055791621290437956153266979319482797730822254315457080823685061317212026293487712916922856648126951400261641846626953060227561222923982947145252673673836819802595591093331653293981022210234944141915105071666939492918208625693405887972132429993939804822478861336589866341308093313159799055780523343447480933017698842804339210908368127460952474909367274891762310861401407126868714169516886117186489973228287104513546161483790568171847273286342462224482266226768917468690468541709871721064955644928230884197265731464134333671796709723157261920484106997439415084363676516994170856325221674551633883277813445097010127188299105054720933146231493897554166040673057839562076912973329309555570906879053207608730983147316958923006953969856120539214018648589434521040825203587575774439275200821232859336511656216142062929857602390683970323678384063295746968576872671691479080418026014741678760240055081496803876049575523193782385759644104624137334288882483141289951025892771876728527442880270346165876692598715298662190738485393731581506779463912946823706913337669163649401655207230197970845849672543676401058509364228185762857729796373885590544209347316165115882045963366172047180390848005061581683886449932548225480024055802277720139520864827361173345145760697897619293044960857032781182249319802064843526944647130861251611659725128040087689948316681104607870727477216939574627229977905759763713718633339008579757469840171912870762080938290497749305754856841242608636280838650723076778521487285535563400928492385382605555316872446613883366949477371149841327564861748567362116300930210530299831697991249444115834665909158515121204506256086535909639062950911002652333596780361676577596210225290847665398846206440029551280743953824353718948535982887631738021854811444546210390235450703008054667967437869718258082579143699660886200095993299177110384728958195183961198810562677156046943857392961915084198710788140039100409220193081415888147931470889676726344821148654589448966711484775793882734084080170273755921157956386028611549761508523613055344278332985700213730698620100623595027114290151312567894402117226342999244178117171758745513521225980101496093062725327393669541356231400577168778768076413090722098862458141455665034464897044330794075887731385361335680673727603638433960037630031838708976833237548810583365548014299544544365000711488650483857198675769091135223155753001690103479105730029490004200623975790548747003743616499000379940681462490328143397995206240736929590016644854439206953813782188580389194887328576131167356880056201842963465326397521976735518007633269648233080308416603066336682592259862231315644183420314737463266827873027511769255361239407826475247807317735354320849539313426593033658051816256904927268290590396464094254802965540257261340048510215930247492922283510937904856268714807317894299288477192352206301360065536918588680579511212191916501330509887119794424954612086846873890806252029871742643817721342843478771114650385637739234976004506193226117742582336634667379672995638814855231655157450282991236403868237170203658967180883080143212368077163691126379362767085335240721181625194547214094352988829816593664964530456581253983026778182313528190804813013111783120743487603885389337942781958396798727509028192736211149803150848622345509769009459889508718895981862528999015389727964263994162370247194995668766637557614335890047374374894519244082308629130333501301161669929676057816312398204061787415390866908223253699370263918222017884459155694726090687334603155112744934385498282972542120540928454459873100633237378991869215908058416741858852852149464632636808821066123849342876673765579970097453756727932664378593593826655946132010524408381796601579371608010279646005725466882220151567569595533660248799988635299706767155348697861271438991627913675384998747894299544753497828216105409627105047612729978291589155716315661712444362840800109886893194287233757592887537368832217900198881613264821545946836588837384012636367013667179571669984260121938512374433198758439561544250334026025815848567176656093337842466036215401501506988117186520374760639723341832283473646327714028394324059748047662799427280959207086104419595213904720300257476155925384299747196319217969858775918023639902008899133336238611076171961508716149582592032061418924694823120576906204174778268601577379850151303845172382411991761263684269810222892902719370061824148009602952610359876490039345680368842216009771000968629275460652755464551513177308665472803536087944398796349418086279713274815782489258341637215522769851675395813511318099113622652108775293150158288483396085797475314170825884163410780103818875803092739029387551924244452745221305834952777748607768370951351547620462140345062196913140815091980064188177825648257464859610337594589573566195158169109545094636507078543376013874172309629988015522199130176529326568921205409058174471445923905876286338608432111501268338414177211161033945996667749293680738748509453160667951275367342631424906204685808278274012561944213148128256025888764470593353489094290500105124005441476384780781206908337884339498138974557043910073857557134374846695538652156559020620266286432650769644813728710298013974863087736471602896860507650739134850233856899415299714101051678927296193950898574497512928644749452963849717758263273238916468333890417401433563222182962348006388551086510416563338286338217160228427036359611018756653284189823920274310151491621147206629511227490862240882561708188659266601268988823254170860747721091182048283274745396633978502915480498740192100763546682247666505438697823704494340542941546946673716548763825534865377124045918235285738007859031973998583924218451714624120598260478790413340680513189136210208534836708706999888760552272004239233931372212509530368738580748352862897357385079828377015013171164205877571601380692271134866923208775575316221500658711529488867068829765909198042532792971406401034242225430062727649076478256152761639616374892422863899646337182529608154718359819202360561929315022802313757828618615612039425735300315269029772903488726220089723386018906171113383511472127896008873190738931301796733935724891252562702458582343525394396901061087520690082630199785264673558525693201253329336781353351953795360671984599780839508084444951689448469739654998123893296746648407170063221555466324684066076406876050680601960325894496286907060927558049270360351005171313235870761652821136565657271525080920945534765866591949157633355980483976004628515351181762937811061319747553352029471818383015245946016106040789147585591676908775653853668106439473787371284118395348084734648123628422814543778821195564016621891207146302718646640528577140605930376277266762663702935055273733017390156875378102715312403329239432878153933604982992988846081353340511242856404014941987901667320544390545309059107099469131611412056514704561535178709203748286655548107302373145320568774390011844130965796307885115129823534646445482277350190334677000962360977036534582508196505606798796738006878045373173510331306470284708797715703938457279800134572494773064983455711915298353500434972783264743499546162515082746871963381870377020992979534744477365634674907388264982918719111064374165352886141095068989404224217349789752176826597860494852808160523873907363290280438549243673560554910173225603890127573513420489681362500220411498131768484223547175656442164746890724626114486822654116738712024687852664187383389860592243984447020415487377839300367718127259516226772705437983193192959751551442375434245852258698259554467198005759047634305684613948618802133285956039281895644569017892371192570673137155852927661004820025924354957871934248400398042682409920679788000744675512227682216857484330557220769328761810429256535257706411879852352901212282058130364791636495088892792526561533761582328158206044265640807321897271191251535226977875627050164809701314323251271016618411398915458415143669873411960785609560811055800319503453574552196299326440230800176319307348674339747840312092433137847185718848569555727470217565046140631145126399009624987147311131991941920981615957212084697741549962539242153770022932292151653752079547347683468197482224651236575670316901444601875869227243400417638663340081972170958253967257775214978595920170002132089145928532338538535211615786392204692144526936246879723609126367110525698675236811087800876695919389437053412248193532222916691974938889921601894937197700238408917383413455041566384744663591447751585073481363335970660798505616027994928105465083343657446597360430386445650908489839963778060783154433494278006123075673223395902633204036282586533876410771917117444751642728769211599047598011094823559338834486470143133294183982301664872542678236649542726751921121999851662295423944795965776792543663947303090150764785679628545012363550964925946217948251180478648182613126755221170018469838681366542438811215856784533915792528794457066683181358901550219682758075182850762800462351985369079685382421222949069702779874193992361220375881582384325147047436774990425406432023222384994586554749053555880007365776132260735195368724767443620230717847253513259177737021503472912651203001554218798639842861328815559829822821259560606293945223943023225535629888348159018675973328377265218941742223479355951888285059295393321463525733974410078096787943062649592013234526328499439836898530996369860865995593881649413422627666315899768002031039185741458455543742202899831832871704368026281054918209228576820552651253217968369553243368733957848127412099530589793709578011469751434670179648790482129590303500331272329420138641149550043506405815537297529673930992859394801453755290591470371358803532702673268644314981426990485105450472733166109819177691129080081811238189534936050005941310104617778392704545430650066836086484491634690289720920185933712401215033908784915389468996317086578271979588323607587476940460752708458341273721190361379153886725414682051651089953658601208472387321468785213021759412959500723761730077470327131626957437290010932055950730772329734645046838114500762179038476452824746231960974075798839216237748069717537622136164119475695836449502788339392835211696486161841321567424742348830904993268177517190543311503856375476985543545870694421109831004129510742960303958728736011232531827923236765356477734814723606698871083219294084144857957588154366205473295293143128382648533264098686265111051812039777627730017898069451573153013461097906942671661311018265667279140210130019201653933737611845965417045163389376046280452771529237552018495543515446975776869685968770773547410607007961100403036546843234720848463630308102024786486322424729319313113832579885036677441640771006107294312614882475959160953844537921695209987000629968845831592108706028093487558758482011229391060969305653198861569721996822041404233551882314751649239713581750227150466685454436680483880120093170972054461716145117233140325257050902095847236961741502803574343714270872250988999774907998430485900005890599977645100544417655892528381354475151987764252155106644202793570195993524829096687483912488377900855687445467753263217922763795163536405719033019711433884946331534787086011990270378940676807821907034933262833108355419230590082913096337332552011932324739972368049304913609294111742768150744564777820654321139215951763608450617722177155973576953549008630929338599345223863436945012294611938272747156006191168546526815567460500120892122706574599765825648966006320637248586785896886305182265339994499082857015422841520201767429158668482208852620459771702884795160970985839713473139566752656483986772641865021329357584863459887140036626516397177681349429857903374161081253095567483107523434633084805180222173241351845784517793957829464504641798305098472111209863953084059710216669927326777529139339539802174508284222396136937620616241673003204541936132476278066653021669914833333474292200048751848719829880484477105975395615088286550774546274453915645339373637462298389309052928695710853582956443928695508663540078211965609324052525141002116367493765447719701105503750874980874473832810150220044427346720322089992284176519425011888698747483494758730751844874519278365487042216332427033007418483890905413432482151779220808123263022512891188773353422861612647029915938959351286742303226602391797567025790984987227610589928459004566613151260167779513377719331179522496200270548152056873539128399779821060957367459186213868512887467222774252937388056852623489611844916652534698582157355521336124224827836352205743686938979124163897600650041293101942942345988925219549992145857723627964292196614726798687792012713926674946448085848701308094975331900336155297553868281316597595626788229478695388764802777952921359287988488557894335370959954767404401468788858648117816410520879564911866445882003295316465590514669360578398674714524968144975663439888784202738325057545214710322172683888138298452923084882393436694189754726634137347514075226613141399342492422407491930324962144741511411174048070494387105707900707481263208047315089708032838566763756397332621978971464504601849610048039216889574001156580384299398383550393851423280238929893081881410271428236341289635943547591717276175218949302268996553835622743389427605283417694068315833713452865927537839118446311414047706893886038881050020671335055277865051332601886728556047198283704477897858547719100436241767955975190296273254172382632281865548008532562103516501886547655190155990700394361020378332907587185378578643975508000730674808331530886162809348466345601636246790343155624790019309744114896785410705867295559583857825597621443557973512033813726843459061829178625874453627771817370625620283100311426452846995624299539891501567479646940193252558922541773532651856752559962759320321608676996385457058247290946505585859028213551185279624790226090744415282999816958955218301382584989503654426561479684378165066594652083740305148786904413019404977018809648180866657941873246682735479443367598553476941991115446653741210991155961329666750176581577610813548498464680332675337855630913588182400296485458035247838105768832941935025421764481242287156819569792485611516589052174340843073242111345966017223696337188510667869470078885184478851618877672267924435060167678718858731841125581573078064243745094204344544104895356728170309045184058677868249673805320034163045325221135086536721890975365662968930252621660254876145157219066427402406361081699208013482434293178816523088463239307781040060163877603946211964612585285159926507778058513483321359525266511525455652008079844337139864965425719034996790596254306813338972723363802750305414513789845366379828137326631443658337829533537463439900860341101212248670072371436353773774884325952066745706276198451876096100523937963007103782365578679743892443230067401649782378094059290196768884943776552382424431107039357889869110509527868091263432452019094971760710212593214165901279906133786016627879352136002662288034560189740815583675771228762011395619114116432853366674372625653036698573857833819157184374573845475673290142599683219832659704561035496305115247373670383903174703853836036774846672965602883668261757323024713775159847288424246300554614950997301467648855498102749042970881617816826377613333694860000069559843134522093504506853688495079881553258200345666490021193922989653224970195426541442758565839227914195614936386296356868414132275859996345250742378345414665003935694690819473227098860051111049221967542018729234433137997000879574494649352803460118243956343777437387446784157485000065582732277962435324663600681236533515345106246467579001286726545075262295467105383256604370144808567304218730620685786062038809277422235185948647440562103060916028949725470736905797064969883274505296254754411739411617287657152764905945567762110623768002779069486851933012673968044755821808978700994673717481916870328779836223267226290253427568100316116092291932697534840795107462830126386390897269574937082364271979041098508953931983123847725196305141748240133352904367670929021361994852857435311352102476363411343114554592712521877962421141407388869589057753571488224344045526130085669874326307144804370842642393715864091309659398835743510320868706961452565756192842583297662365149969751403987916740629589570610593983181633533018883405608885363167062347196135569594321275044017261196692127875415754528924103840322450036579064263475731125443498426920363521088473905061068477086382368448415775782350454770740245264849443618355705056853151962913559173152344975115812715467879806898516093710891752267891256835110706437416907936135910773738917575554824047996705332566528433215626096722911545237353732020291279570210226057489202851115355116196431071680172187480718500832811855603034016373258023973831016840099890714249446298364382794674780063143064015784134720770137127591634616734465877255441806011634640387832769617145486182086320710728752293585551742575571624251411993228638044209807376969595013908460626564851239062496147582412002252075753667476561560353315507922227564796856729877501477628959945938270019215406993679186224008406274626695252106176698965083598788484694311665520049543423392577323129898960072072594107279782779440033268721518161251534610821823103104394851917647079666826621521512225447246987764986779189746669263739536364146766339001494245933045720119037914138545943822112499706912450751191270423604701361323011858167033281604166099302088745764573228324415391564598977952329956106128233613091495017313309919708844690889223689389424042939558739215177719649437602929182534392568411467715832842337675023526263199783718914990504374939718111677180874827326116437057021255501190671958759946572383056711513141590944359385204115380601828680525549091408347668276379404531640422278238573593932082849356605425502131818398883117068372269222319516113827635819425128019950949052519969117325224521395391249441627810135238707430805402278232902496113782719511928889876187009871872335717054490863719302028430287597372509775871548408483146938382793723547135511716844125384472627275132675853871432756334244596127742756546798560590790770368372497306612675071553214450041084716332160749425595935194082235389251307177644769793334779632139822536512980708167203941232166152891584772644749277195832194012967451876388577021202936219822524681331063483897664967679099564073524337476924880591139670935225172849585286052052513397649190704041208548215255514275780756774402752020407867777925713415641032443464312713932562824401985126302876410181370549112013230966638092112456238429141957049399582587292606061391185897273132118817224209876701438157972215482137560258499835865993260003380399972974029839877774441809607773695574463660726279347278647448246347032295520572089773132192530122839996649298228436327678508263594053891049982245428197240850254607698480406704783107722549832526396329371944458938936897007082779793211672127849069788359582789215921446047980122395380218079044619153247032769777742577800129506664486157549868008465330175291884902008158870424443909811520993483518704804410504786443471442808473280422305722008375099883942437208135311838935812736641385085449587415620520117796932106875710691651712896395919391013355703206977123929868326241069235254665298406234433481650600356405483378585989079708859463731783987974381100582535706514005264743058383797811253938638890345319044178268839681623577466359037079552011255836609139983503473448653893909805700039801388091890860435529418415222017361214666452642993790816191317779266519977530999933611123158922282102293106395917809822362362209774036051499499755472995647729205558270038665329856649898459048050644688632804119196053624187411224517109839704823357312370274329776280880813010635134883347984629051510473214545158310800656985259819309271841484379633580324089653658283084725635742471573669216628391185387344410475525524726259940554113309419297987368232691586871119210588831156145011164345138164799949429523903536246601518172825774083915923535125772644416575719020126895367273468058433332547352389722124586102303204865071955403462701030059321024304860699923668548170792345054738740262527094731074971131266223242395171256834359251263892385677576654148485354494718575515202524228638318305586171101689859705237287098241294300541939858941663970549695029556432573996166566751119380191156915777061672406527074182365320141831460160801038217010769810985080968125358531539336689888049062623001829358478063423938692150701789461599178992722224897476670507374571434252336098687019827600281560253736339751977388706326598765142997178592965589219012525188864473619749413257544706555085806834803837912151659669654832548569401632642716305541047248476121608108184437805474732634185228421046655860727135809059127285168928038341187943893609404303767131231140148885377557429210124691687205221601655386087169983894115685911011149425982475420815273222314284602251291403241127920999083752869236410217946082962612186871109535978773036050620023292191044381458831091380547205786024763161079068749122134956911322655822054471918714894047050179358016394683771644022574824609161128820975441417111369062173494435070493035378193226446939446161901661420209681464683246459734342485722755639140231024487581622431653366573503223080986663493258652756578612183963132223375479788527371728102916215396382103793122629890930630102876646423627644159336135154659251612137422923262209709991777223131573173211708108346561361180838505223774152771745857354930203947989672622959949120491305193589480842443026766331920569868493615627538604026297199787422799618160958434978101854613046188554953865259855340559748977009606635876461861284455320228175303198557117760651834078658252927010788009535840653905019648508403966055112698552507600731959396817058476418107183730686130076128523613184778599625591199624064543411534256205341974115197894571458530508720421516327068985983036041678558518938866750078364154917832471500010752003095997421410945337787915037604538447032739163513373400794087651863046018465108688720006169058931461913244765183421284593841666886306831772765829027760218628315562932229470945927029574737840970505215829822894812103538671890434843947302018973126113595635151374945446298859307671068962017792522468889029874482355585831222632074203992163862015177980301090049013217624269715783452321896353582780803878458434934514832684754318052674502505869870001244287083800718363887793065095360235003481397911115601907985191706958358234202902893209116283428632154149151497366685844971832679090282556489999789161673590710574295489075204486781335097063499429163215287995554918508298823997131136349815918681067301121361791592643091834576717601705192612418818131926592864497839826673585408529144543933247621397951236836321478057121250333731676432428756974528705552945379706728209992862227657999404218221823317094433740910886574899217392468152273134517923851917083996819177978389052045370735483411944053790363179393993749662808831801251770913876671529199076126049489190919884077686613367745684884086457161277010186265463517064748134780759972109568344775368614889376045790205315406678055075623036406177020599841885644734107092717366987633959433867507536365685843936744906019351521837615791266909224626818923822720715171019152023785210615160807448527488564591698331627873881885845338671923877334169793369765392159508959594092050021578239643621066620820797459318502107318963957951836632927368944064022535647263070534317041436555111707564763901716395890184676884816800461065399936107986537844529849311814813975454310564341866132145762041575620360933622428185993316395781809250196783424153658553047162601109253382641449545877068737748185524476965594089241675964870655507955800008445598324600033583234567351912759836178411757627752318756418139691304791875171096563467339435581689322283470294524065443057938403314082619160939483955339142834553600732930393856496900559888465213889046567334166683315124568357942191639359107734218363181939327275229046118208670445158996825951790104484645602886447747694685365017095382918659765889043051532075651230482466315030870498350326745853236425212618169642871450951745852541034261796251897325359484951437612152311012798976360740665895387225586165430970786786675525894151029616532476830178803901775796889830793154718315827661612558838145413174759156521847567496435637694317389755798356067132091410437002991667218815310905248397698811845797128643543512836798721337984764984304775520867920898604073310958021109030652047178947514060196952939407303351911594166250533947118771446166896766317398661045320828228530641051732462080176605327571462402607410042414056205341422728222056069723639407163337963285410840854507878798806350455316761794546702792526623729436755156565804710207206561122661130929442113306760103274723281477686644053946814883323766016519460866393181324802796356573010979400874792291719292413978438074514524964782341753914563731663318086932981090893713069944145241126409476150969512169764024076506860191632386854202348989592647437531229306225259770642863352706002340212620954516256791645153117755366455131615223736601311622377457019336990874213070551346777420890458161014023685305663799627278586815395384474816179903605274643673363690164661893804738745123475169598463718315964663732589777993066899998162171880382394314988840918486561735057546164705928070320374192736892962779871193385650564874481745794399812770818048313954169275493165148751774117546944209180927559380408123691095561199119860941685399091858600751076702644005895685623010304931124392763159049647406959713470534400678449538503124243377987356620278105483066823529270136765221141338649842138386171742472663454048569610440551591868798801509644992104348539590275841795308624907899051147045057958146690700535158930877513442337735147789013393905601731696706329572430008741092817176792944119228897520917393212278691927773082465953972332682708832175581774530814505468841121570118474991183367466358796527846006644439075725849690893810456461513925582148212601198125308435038524078590699373371306753421425108725825679870183130518703088478366236672864226800808308119005423172261339491370347270108988617495699122791387753792153495620533549016659002922728454099905844934292351129657584703580104928587687982191872245186811322187420780952678073087505380506867758821316253549636160230932993506888591881504140218416964337230030400858040277609204906107706942517091074763609182297634533218512361977598238299602357999931600033374800842409399308124656646686658632000504119119640774266195106480108359983755759226376834055506107295882977873006578925586227414801850994194612303628433923425469004132967376029295812711897695025368013520513576241928112457652534060265571463590043443487117240787924214093364891866251952210032774572781687695933414640985618817784193686083445188867273956996291531450859791699419843181258040506796392624476167714130550983512262724949079872964808416511659427042191118571459243649302034536333692869483399063227009642353316186584383672621578504319512678384313119857113953332207026401416656691740858321140514837738637720842818025583858556675960290881610230230501687945941087588716658909580630794628635966837737951400911715965778596098830935770969264911919164427359134330197454824992300647019418925826165644767375432643381038346346433238970057329394843993957108238302351683900744422755698964593502372322661347803503269011646807630712102962761742747198900542736190673310946208730394721146036985433268250638917834836917102258651094328599925457620901947496396010315190432412049182305789904565859794091613512598150405408092546487624519366903708835712201180156747689770666409704612319856301452558597539330873046479344501023499251451315805021774420145348458094294320936876454155398370044841327715327222646991889687370574268874199949211375700859295634521125422293428509035094131122464806332506093973002009883522787498863473862457980572765322296096254716007761484387595303283703843493860395117929945526152396028086311282322456159629705993603178230076213458207077721134809831345132742809344267612015052323419811255426223165111087169242100425174833179643918492312452756922385483118285964325767442175605910894457410595187666657504257894322815798599550740392470483604381720859416726960250531200467663156499839379024640049062188918771860769813452363291027017677348231790973429882222770500770509567910005858260932655665184026424166460777360226842457163323055423824657207887072171149262202240574934449915449022737580566112105982741833193306512244652350904392248141455095725721152596038229845531127922912687337576207663974279644253546044683075343814675899707095819990804546432898727286727845223592815036293031469168102740882857449476662978983129666973973890836628889347794839142099541727642074748561109975763224072279092325812610947746970968646325216517307303276767636367852670521429351231554157426733847824050945664927991392934963527616068085804593336550578285715815743009103578024905237790231993255648097474477626059157553949650831181485801960981377870699363495962929978290935484399531618185410233975712031721172016707407543827174611280112876082280456354834292846745006874858948466918122801908703316707811728051717856720123809833314019323209075082556394755449352345477871618243546625661640953590706462356361085060022743074330072420540513705271230814887151527119664565488307872378722082479969602051951794058285895406446093209500936962766333936152165716261706730693157375396769691818211384829554020228136042477190254441277686448321246237628587359354587431952507378165086330900675268477220636000543091631713225289777809865099484889670101925125159700837307936894509459549847585732680340386543305053295439015073009497253774433636882534775604800075222449695453764376967134080521758930802582077742742132295387101166040552997558624175503587963356202160680181889781081777334086792148908230352101797675875282165609956720101676444772684950448697671432429031487262614896976004721981844497498624342251035315990951918229266377545170611615876898783729067950418526456356837226219669705396145384985878573829497697135573466353762760324123830035690805481308816031716660581156631977766938989792749766420436376393111093503279113887010162060632616879195979573867424347531470349538973158953131913976824446345705188451001632344179338989703065313650403497926077422321544227772344842431389228226164965801500189076255218430741097557439089451673984248791212902854262959296623954847140189219021918314380993656570005191039134837165412204490902130740183617684925705420426958485613631567925201167036974155559041095475943913808231741774127558954901289916039044645961725899707779758599772639384493780567245538786895962312871112466390857410659915823382730374121073734120657601293682766765439640555379304629379896765117684273650589241305433917216569325078405952137380636766538575702407962992929555542453926178296901357632842858719986731008270755847634428845133831356094851876850499436036733273909500013531689477494906281743457544441536350731504191343957984298505524999396539796768819186533818202944210544058729708970703098565343116739787768648156655919755862124746863487330807365113535114132401857523944221772661552333141678070042957180396781763187048801386864718873987041945978091909294912908672104115468666036912855298314068295214170963210064686948404020349409792670065578036650496141575553881699285625115996789088070458860710764915914772335380092844861593137322049458493741567840859170276615965847780264352692539734724249416346856265677924165105586521677682768723131935874559281197528032096376351093099574165525679057801856694623281104488436998697063538902970935811253739928508641478582494189044091272562959926042569376237907871719061033256516883871547526644517206746966674998987808280367852907488053041948337780444666832506370025122139838497622427314703558724597224290504730327174872739509001903237328459190480854120085936640974048620800547154230497894194908238054262580929149462692303092285926033340747125122103323307783557046334039072230392927122434239334137332561937617726733986074578183069157466476593176791715699648940264106160330578525570401863149362875246186404461896851504689534118773320251519957116283259132039844105063909467120553117251417255097733359181263434403637941498638962983754168752543980975922507513108730726050600175001491991907859492103030990620942844319888907298099340508871153739637535334283231241058418975266280320906425827937939643791937315748275253834495303663101805287501383177089759978817750396406435323663725480171641935496418908405961922815440012976566683992968734159767672693167543565059911375539059698097538285047914437627703831344860909343900824350858808937730099340692159520625020718351408237290803429127746610884780227391316044556246215174745433517046757765783716264482211411598654832933950278586203920835219764428314723366289496129722259317174734386662322794035134669612904110875073474859316875459341938078906844951747145749671696657245617024055262055449265638741222561996567765944339466141840466382587047638843514780061388640109813542165608676482651649663503735279950611304256992628921566380871326558605819977379177099441190270937485727026165151267075176932259955758068833258201544149140944456379731302728100121977880694430799931364915553347919781823687760593532991514526769413150738294767117428048208040144701995300218650472509777150033842098598499142415577758115016391666410303418472057922158732720593556795801969238965099717223973130346446013377221159509740184854480257799894920448691044407851558946943491884443614032180306679143376038728366932745754678083387685972128418324712567888834870198729430506935492950768474474155134061113087413737553753889506222984279436958919076777989573288872690991862946904636060416186240504679442593187022829723176991239598521993977475977210887851042170103624268372888915282016301420938905732959065509596485766028261142971041540820482048079914722087942126174523581296155683507106784802596614945497380515822054563174286406214074962686052715184577631066336712813336125082933676343917673919228905132700898233684149306265473354434613114865094371468513438464419015642232860666531027874151376605106190200794632364041215863801296261364791087823489668752602532872635577288744103358252580065380062621024677524447475715378430894557447428102691707777965929191931795994036181340556754462838455492696558507612816977789149350509890054914872472839266465397205256137652368523447298238005267733302996185620236018780944412354955964024129661274369721446100364890553128086569509044773266720025858935221456073604459342272579173173048903488006115180282144459667856762707763164966279522324434683486582603746553573791192216150181207514718504121641241417050765446890432107456595134432392119501731718474398593769255181808427550916674627234864167767216702810847497878164723393578109574771306946170906169290320011245399880877945926803900614209440653433398428906723641668156074211680784858494262689051220495317032176378211372072584730081959832175143810621587915284370030572336306602022396884801161261559203506122923382894805983877806145764739607801459457999198292481749121661240029319915678620026146560316959648319941947898238564314300645979907580975417391963860112438420008763588521954648101579268070483173541544121944627404781755811959044296816189041403663584130220415561244624309740549131288979483280463349552115862116836146912628544133747574638640438369038501142021564555330698273742471165444096228347907512511230670320774884385479228485755950637693639995332608203647113395582935028053942868322368890418035394628039964755261034958081487539034029827337877534361282610008392281824801251264803501483598608990882892298723442176092767381340542932129689637705071553896582427461747906299216114279021061811179018907978438626790530391491066783707563505792084171207862144949094960367700106918213794100546713017226157665788443570440396590278080146057288910266929818672314347344100070745247591002002809273004988187799663295103556078970709612664770289696233731047769814781354244342720478261775111438094368199472378034906649779753099005444239692369377301554079993530210993992339174390341332031975572890272468827579210218737729124736101392842136875106699846789366867011507770540784045874375436432348351036151790006389214529373254412999796792014159573661108744608380523688541757786456945704945023913907539678609490711617657358525537723828270466331015094887158711741952544645760127349881428222272446044668580085677462851058943381933478222647723797383046897990559958703941278422371252582200278724790778197801724416271901299450199956923022055969890767792605940672651408594960504632737647776795079789184752618743388009848858168607052453538324513835110214090490628468062511973843015573481539156672941262165186754796742261933366807189087505415749424260027090197958720085994220514561945129868737095090207746205102646963655377194559869453791028138355276192841518217469723623430377269731995571000402555890423820260065944386100777219897206672521097634507263231991841012928980984239776741013887258268816803390972467238439741956237618536059508202619044219901418076609141786436498884515657641624276027419726132376301778267074356658347724811902974043086582165436405441921316025953646913297573437394876738674312470509209545770171271245753116136497674314057354127700846005917640457997563459031387982713262250177382452190613420909830814485613141103276716019356583716081750900131947964079364873565781762293165323309078493253192021685088424731700731741904451778007753327601209039067646214577497167433507452910244999337238714103680587325116494093869749848837156574308932069252381057456298825092878784511245167813960839259849126603222695633327387083274239132868997700472155728309773715460619221449182088157987604055420872208413809954699808066344230672846997871591594793171500577986384248708745910789275298034319475634202728070844120704041706293474996681338745420209644201552024883245473169980323267189962276722091979520573702386520946412607826789263453185142118963032371326266014465527069813092495404032169631714278516428874404810262064129421678384723241267671384420861507518262648833356309206423139966566293926484652303970376329182069727577615437839702290060442899445333126317669167382079439830772858145012154734344756554008566084027457244662593567853888712168337812818653519462227661025436655542344268135825889068199236376856464357339756837324662919626513992620513595092929190707478372861436737133046836650625070594920601066161028596337133414681914180050690296007364467102030799187422214497319248188972200352799587296379091588109557025382095947274891113306572443536397781566972083487599130172581245304261988419791093900042091888753090881165280510931439173757457740227240034843222022801730810174737455749577673629241281723629054626718270358232437750055119767229643063947756248736278735309996717591965174519881956829549362654655297178679916065522955458844256743862520358706563913203923261635166471101714478029464660295514165096692919400495738843365614506675972652246131247809017897446935382249744671960151819127452913254018183072338245732810455127325342771291724859969931089834939834190767323646578515895168684663263916031258186138035824712204856770114330656587613288213906739841485069509625547180116339839185798535028544899845759690782942322278045487296659533085849917450320548225344087254583200930328969296925438209798871213873475199553854288939103537971751335892634010926041920960644562832945588510331758064645559098979439748016938383615490247283758527264736398097129021510046540182451541009452022203293746212002369262985032609026232664193307319525616681538292275724718906991700335784737974826224112805846888763918703936854314103683005006370285088348677677247253183517413239817935043603765713435351963021399437970021707185626437912877716191148820622220404016983802112486832485261949227734536190732740915746294248895930199986331813963220862784136316700040576048169585308759472343913035216306945442813142066924085040863479070421449310876956583181501887501083451015427568823746563028781136417320939136990283456153380412510015182082722398207145529118568611010926022499479750234144868526758954096933127179832913821532074577501552060506969586774111609394692653089897926348129563669063746461729098033934010568924439776791657772818877092882992862664599105737970393300924149031298748267411421973824645400087516271169173930899752115667397334954719043146211659298067581217334658740629155321543858021511965855170361808819391981414688413487408876361736017120784849861660983150990287533306830422446810301976616474844406679582105182395974530547108554638526605080336023313965198904586982536613044328325236224045083532876229395096589548272169734707426644763188378585855330222845650428942617131792444290500429096410863215164837587359403924884145232424396598234960958447892652587769236792126272691683545241385853540605328676348335655457046141776387699951164602348421389086859187793224294680000701915379790188328706108178824341419084709312046430942280141690969771910797497846464540634070825885386881898538811888812267684921022619570619484022942827930126320164326806119295977671691730543492119585146015829769666070445504436055022535726293262992196734355090100370164252073048020543249466469049217393919191653110949796919647922079392484440005747098555965386352233787023080365242623700732934022181700296261551568067354633147571605162265708511485612098117759450291267100942299395515319041320319529921389349992942154165204624665655949683136855290039895669361060736346590487786801853429932048393265087585519488943645491227613192248280770775656876198321402605542777654246311359423089652079696117613316884343179800422787099130156582250523873305039457408451959140760251437553363135696500657177053635067300676391623363862548054998025372235054913417890313058310760031363148138567247892950997700968872874305521060334066388410150602287968798255665874529645304111510914094953153649548423393935838442067225934169604820919568560228760868341513638134014028260910854287533607030390768077262171674056920445219189439113739083961180148752495243488660023529121400514251967953052527280510804611341519780566752269640472697437559580084487453675114944349930368161131758141278884691167028217835075402099505075795648673267078734518172199564012305869277342254738069755220023082869133967879944498485755084626152348834391147684700165103787112479043139362757170275610048209095741684949736841285225615520379458133692246841506549030084707372127525505771428537419704961284240074876290740887590413894049610804416744665503256191118433848085270262061981562041865781336261366516597265427031362201038442245113415842800123342800782660387984571938566482274140151484803435458570534446504154397641188212126239481134252479360986499709255530406462685563904287854790323124783190340881787321795245423440312308288177858494939281555888698517355383118445554254348974573417653262904960510928509401139636010650203901595776670439424592548108831848222036031974008120345068516292536305387778357793347637240962952287782034974431864679902963073200125510910416523418367822987997440196057288432259437971536516027284071626999716580273109248677279773442671104281997581183943962778346599328802417004483320089869970471997897827899510731381504437981168743319335848442212424655673409951268190985832462409704024467141830518110692278057331036521906522341069253729473817401043406393101047480258666286603575783515085785241663191725076616819734802736311378118599465579276639291908978587641129282952031272588005772646131602571422112058139510146996468970113187515224687484593857693470489321193627324011317186592608245687000475467112043760436789058685393101415953577029475974679470755450614812259113260696419347352587909653091891247528499280160391401761986848077750983832706394609612988047381254451162392683611619230356165735522381922729089521498536017320857342847367455160136102062695255637861912072267287318130092240481895170470196237256388704414672817107963308743394519289468172081227563475964568977964730561352025286920179917972293404784280119413887284376361422663669085770870094281177420923604499851108731486111179512946710708547814616306283898994244401397673720826597294990046697967596398727106332159783114959624330455905552067757558417966643447421755176774544165768415000687545891368848612584129053390804139678912406865380277498006757119495086534539742627990160132620117069169807963383221776513650529191866361412078868936654595969709834849502494946558493681174773699500929171873874429864865155609533719596096974265063980634429830943566911878851200296913832325127363128350851586551299861064187090500806116060497671083919777513808497607721522017198707344391240320525053965598373732161140555005806754710208831469022823469203791699047935117390353228546615661723962253486041766283550795054330303713411882577346187302016547877652073605717122585561247833225267163824664338512989023026123366017676855454402084628513777995064099144293785900122843364043434193901440017080351688100836118320527788309725695643271792259303357167630784388215798596785674257076295790447665917330984160252334370116528526911776466800552109525596935391061833043634610795565534448306143118506433948064522395545821006229850778461249026940276052335881944455735255639238422687138492006424110376090002738360658084330221905617065026500974831717862766818071230637607312931281444487317136030122073445918377354116262835744824783488419804094149984967359771824805842309636256155803111710500646467890636154327255989541381364115493015948648904338600959515312754626026025463153038182470717901701375339281395919696508735412047117044506716266250992671726104221104818911117332040850246370621755603291078147330661577276266254866866733438052343836716899924080056000214402146698837206024512906550554275728168946943910691095937253195550340470807225848317209993744083385319778994919603692754714564368966522989661862410693492179367834168782541611022248629075737964998642097631038787801041617670163687601342077181583511309927611477565718905248461502823692128358469992339385558964218371922819442008890050066549540012830975820726289742505331839249849353704829497007537977159139096131556398535572467003109095206112108558749909372013507152615964047668633538213297723605182933515853083303304783410223400733558403517556023832622602490033827401124504653551616929307241709332258193775963585118124464700426222444030042918151456757321495547945625648644940401774529861336843443882456243312307323023132359766972222411228184935688614835773956024783547768498283278964385691256355170746891627009141654447457439674458585945345659958966686743928622667999742299643732936556721872569545146787876188470867516249722061374721234488498988088539411935220908893940447491228466741790814437392570803323554888214258131993193261193522541555621905119064612599608997929142908986583089164781179225500685771963408879628244465250136590885423314464907823493225548790046571381997732177774045945700414180221121587039481539260201187335240215967650562268671976685044817976397342267625876559590378257604860815615855789965951253027227053274616772370499161646475856347120128242802936686806319095220393440811557932475002999411558433966876688044872998375286676638282348100428684034707710914973036605281312771805621053666318216054479376165043405283070378159958552443064794064128922215965045333654725856998643081675320353791808172624356056733980735566521130070205643955470860234143486030640168160138876837392582004176260855342382106253875553164366037391069389077989377873969203811140665246339062724493442396237994826307051992604276289099640966420698957283745740288429128085872124273539739697755143407202706448876307575823317664080839462382009828632317170928616031461125313313541697486483135960789841390325659834736971905782314462964107888995928525593180353575754451845454666161948464407293519996092384729300837773095072789521006243557940835479150297181577330954305755764176248817089465336698010114501300670892964956271992985332437372604974179368560341586931645881041533540056530135882854808499591401847141674453703140276414603799961890702489757834029255921426627674468692983978215772290969163335471005340158403474779867781836810472168422098010037179382397806376329639840616269743193804643734951191781638919557242027156468981468486610944314083371193131135407312820766227439351591387414505516461449577686678879695208754444214195299221912898397282636991430250111181532831122222131312246290506279321560086460639250685672429382675387474037996944357914086166838975128427399191870657757988154578885215993669677984769191574111318732863163341998957255909508627662678670900578367673483614745002191859083792767660877130586176713862023227169032818236961566647375484611477317865673877950995904004150630081044009259710925305499514979615505826776633222268958363441935573068740368745090571320058427142684412664392435155689096371277152247760580303389678033324786111228761362025580112412331375700198325531908098682470274747099305477275456087928859858727565050721102831959925085044392019199278365012855082383290013544166288092682860612504207831024473845489098488456640153942307844488139959448804024071742597170491879674299836055192056942569331239452610483600981128813851742435636114602151064504408122636408210539548132070027235668952107185487405773400888444857945166176034996478818850047069474581008524670202697309995518778778046803391367753432110404433700723966389171230354987905328537570490897545030838870608282543124369912006801549330238900517278648191790340206687604704750256913323684238521586562015542188920502845504338101257129765825474600823334937151357885919288657206657198596327693009063165519197573421679332365795696223025883291310816377642385215861594461280925340998071586608476509131508926349040727303023291752629306718940684238738299451342378065874239688250509149393772382997151294874858437437992043300817865795429079085650406208269779969924465863847167570549569127029676647344004954357112117905516525559116320401246429750868354390363447168276519622062602409073446872054782614076154811554707680671818175472649118611193604426197962031342551167576153649862532128831633296775002506977885748809980593177084199313356808249859409890320216120834161648636242851685053417165362725284854849674071210252577755516279280528341918105541814374909499660674364437006774334308873187971759499016601508321237900262193450937752054933664566200907891294605092287759409786134653764592754409916003213256782612966322299496907536514948505158551683706607759641717253229933341680442863307564397632943928848440840536800773493369861893514107420311746501830397963846315253458921031424464992486042163922972071040772693808915444198542625527643273247895151250717725562769070807438734022248970376513856950446214669086318101415243774500678805969770995825409689623408447405209262449398880885979270375009743357093745085373605130411398025352605014155094059611815086472442855372221117365074907442293484063192363814959449879197740809904855660336246466915796151264067779779644428996157689410221970366511895807426902044228141837845981496131636416553781081187461549752158451759191248739430581467883061387609537701065851725925874281721389888326854660800242955633620004157650298368228933716451564095498525321702323941375988061415356235972369165713835962761295217445416856751308745899608896119473273703257210790176778718098704738179680676337606766538044837408557569749993825221163259306025696316878912326791939588153068944333874796094647346489282762625819119884487340811183723934513819513603655681878631109930656960464189628851421513582574899277953725170907760308079336512509143442998070256915578078711804838598134587288176585034831863751125509322288707605411455953681257040395044025130175777670321660834993677495679283980754361341529626752358710344017146792268636407605511310337968278582063531037801101314320049937993447271578073044781290223740217196538245958882182558780749883451389320268717358014322959983526573756498184521939380511722791781035256145367365558535816768787355598878774867879578428212585637659740707796104659784050111408314852626789083245053060991372064032040327985054366856741277078978256874689264793712042136731302386905197579115404479025629459130627102164555334546009702952659562575441045486262136984616944811904594381540250489523158544986754365494450461379989480188194931745778865694807139586315281291116806828030008138188339362716656232741871077508224248543479964700696002093949365683553959176277937542816657949842615065115745230457970474158434210406458475348585493531618685783759687209210843022706511106668814515518807891007457196898617089124917417928562777756912737687549793455612212211524354195453225188201289890216902680882127446360048036228881957451896486439596216467816770195794860091103003313493790657725438999523669015343962562596349983913985297784560792811802313440464599535424247588031087471253086151151325823410102450036772434958374301776145877791697932851953719700029126097638604377765491410842116628236868003876487306789088255567958704464377750104634145085592893821572909125977495283723195617423452625242302352098855619521353685272858512544641609166827420502832837520147801558098793983937719163374252515484483832317948903792496924457977377582693496379550516278292737096950624528994434860279197786274610180267828358994955696526920125855464663705441537322455130812155540158360593706781963821134920150592234948352239524146781873441762380912711157454513634749332450997063901626599137032917044262931817883312126409765701339322592344324812970887908730857751012838548133389271462132489812762117470764542661333709442269444631714125510991087586544822192282849740913638353510502116311555380926271464170516927709356932521927539657099397717311245435124922619513136053550005204969983366329521369447276222641448579976999040367203423073960064027132990398164310442915410462908389495569721521404883147176959745058212123977572569933577473265338960448381535811915717101834972190912434464515605452272977881928078579012937987678456719284080502469201461170770827734434244787649553288758932398220885938753521618098715200517478198194781656580402502922494141185579591191720867496844531903410172069242825712897657439507894141227425424594328515434804348617788243688600028535541830298977676064160580236965278220430380374555350142268744806386166427867267212086260221802576174568454066917105506181961638130360006754940934283270518741075579070342601136441720848684490152690279146429629168696610604857332817853306014196634232128582374217649887302179894086961931815340289307328716928723512288709482396021507370608523830417371831378309133812167661221721477701498318795981964013946223666833347512743931091147886022104517652030623094559588543581138154406845505314156359920196492370641499616252718968607172973815549046510990647773339587998348063084529213834551097735696929331501498173776491534383712099576825431673738837091069133822616063635877718352063421167521238012197155948933417888658467204574908738288934160345915053932159941325686128466477426882157594534444351006328921760418520865920534478159240931218017635182391252674882128915050861641221371179605959425372116256916299002350311776909118785383913444708085050792030396659463762621987751720376216255468350686427510824116539474760746759718873562030683569393224829710701632983150998827315147577761618258108881079694484790615030361072990860422728327230397970036311476332424193435740102782803430366369815829953599184967517086910411583230022682670867803855605770565732066188641602834057681014010854302578508174985755751681381866794004811773436541090512814070713995440337890523815975549380520599683712504996790348381565249349240614741777508388908063198782715865161876337799128220222330301663948786951732055528340945516267132642117187731814184138897317229199608727583153755682137894783945935225484827504288514550813556914490846959217307600058452206226235999591725458136077507434941642743906518977428274974091657339007755711058308917297434919781904516281292142177819208790697043891871011678346596989360245246220507109147394363760398255415682557451409455058515790137434547728194228496727690838493940240629261325882878253303535600731367519544847532693031720805094597251752657942447054274056529795940784664051135026001962954647704739379760052933576917860840507485744700746440913054778887105594602040987423488946871028452451388310536714555187222991295731917579387581503828057189277710033321649923336627433928430084352879115366384788971445833508143262480545261253301012122471766908469777119038256388308375296118710898886701301232182782816745461016421004186274967685203747997875441471337018296590951513218220645597249814638431123328974658606595630615106993798521719685225881765294593735727795940200583536132328823696993789662833848446234302893825173796938839881403270637640891299710558938170066498738634848908311039808434091192620291865371537103492130903494925692694210537973538369776758462069341641039063896029887781072014492659263085737283138496725916113580264265573605957459091114442365654521128091916599528477510878268788938620383533797027176117501207898036389083677523219256164849477719967613112319076161359371471523937596977010573981600712041524479717465107950254950039265273488479872479800793815451727624232655929613530217356896446181915945221612999130207342710305806193784209706913394158776996746417375596709541281577124135011058430048308063053915970430523748524178833398078829234098824371115200888293278060382363860425472294165849620989019526863625151682312843646953874269629786664344439592850929913490636092289660519356585951576907143759987468539714930356627677802436080197258838276506309371331879292933692653937442810352952931291260604607257969862720804871179508780599928380862222908622898134875882927002514145863492646375743684456304256754650342519280224425898497265468015619027414959866889678346656035521400361111175566913443188283415004644920076455288375109898494386369512620784558787174528544053882809727931538671919934521613146406591170604119498274727191823329787647263077961096966077251033917578215186552942786372271011850786114680131770037543514312441668367669510199439120819257299078371632011110339076177298590674422543679333936012445446395942337827612775511112148933434343907367277656693458320518313778084909915993882165937723787697010824677980686714859916490277344044504690195058588903596487529283444039051239921606538108541067537803927713887295852023327330298798429323258115699982273642123374788708349126101369951638221609392437687261746067009423755793818979540631627257864062598534029872912038252055106077193089441527979043466006547738627099927240360387300686379913415699392021235711045445980685102599105363670762313099282900729362445373718892109943530933134768203410870695991846391991737910499738222409362407499920306958417775874367157261006677666520480577619777623238026152121545844082749460363659158440361158576071333184487477784093711963839126299671860243097256840654430202495625137365838959062310146745075722405012505079343748588836705096091217958832465289264519857666661582630316381225010021305525612208390030952415060414927174375805257263467644140275059708042516926851278028011293085133174141777124181187179538058091186523061187591237998362747914448197776459646519004882050147730455363520443935489974649297536935684132063725654340760710740665695814544399758331917104470400719138987994532724628311943522600342512698640938088870733929174453940993442949897723918957618323610355799859513476658408006622422119717951340426392080310874637702423882198399102107038924135533300699244543870965450605622331607340461014678724877459833420815306997216181118276265339321665686229242920349404141858231332339565807783654404727863814832823459042954046848171479684430046421157235030563264993639174941849348681495462818562512397406855153655662212777682084196470316684900176649884456206608441434759714432026522823951804975990608864778901277250308458891004186386798862159726200892753935920914764872866290940507420480210078846070123346863496955104438264219956227784117276872682059617263133922563135557091817723233597186390198357344027073020900061006906068138828270700149559218438382545451382960847805906904740109914206662457609474267966989403815712159104984823967585676911219086966015962104644450865942876095965256262861197770110612503468809229594985499123690014730421046366652239772792583177374602355167041175259160412865675705385590830631464156534586437306462461716736168191437226549407516929404975749806122970954179581238719729884981615523387773684918436975559355814278511649672143479503505956179089564663768260430843611850987085339410592271030615159772301493916484924067822061352860240298315130078118600323631152230005300540835485520966241659546096741307605941686990678350856442183176324169177856430883857104308508450694428210988642291771538912737890020193816162143923726941153160688622651354001037511798899550748587115343596135521319873978074047431126244304516951751434010005521910747984169628592286217178023009609450843431558910366091059652064054647478424085348109064967049105844089913663322772587764119369433000994617053626709184392978901331959921588849942598593889721954870479691473732529897637405778993659108046418021961839688250507139247959392296823080193736977168087076612297703559207187201103175066648243852626336692787064888335994298530928504747476387929607496615313174115958819400540035076510970786162762588523998075013935701172824411406437198190258767927472741722640224786442692061752187380701277467985625318173984650588649973866619554429134313769526370987541485169619406742586956897110949714428171140866011681976156463592878643835090230022952889884603576209592357947751711486140697029556571543315695076981545981207082910178285225227305201019232807273141582958039077184499181946897574331507889564808518413103681584103671876421095436311218196205180868818932312056885079889270518454160698019297623505007103308585047782661800765613646855195131742118088227691757777591172088240416716857595221092456139162002324388816290038096317363287798601955956827510600580420360378045613153991644888193779918768052598085486933077169733217219849901372115041921525448561423524461048979851217128988934162657819510238104357094564608299256268288203536870656264937465972459181265759089061839402548459929546375029003408287871760686162086187456611645318935282935795034159155594624953510495732111303313778079675758078964054639443801436021058916547780002504097972079233272310272889296055647484976354374053940261862361605941248066764400015943308427476424215854089956925514960573314504530268779978026760546351086094834640927700476261053864012437835342062681954914709228311412513306134639854990001731836929466343476768412059274618425060923056011906943835000970016449180375797897195367728412529046169688412118115690833470400254484148874494205777316649344235609241913083697571840789019446619393225414653811018605023258894609314175428954581383992903018814364050469122680523536166319364805758142997309515222568898210303458445099694099948539310087228485126800854621199202253520190721131754280144644317954135521460007294509512337532330334081822871137025435049504312020198013519626420081654756619918716172463554184409828071104584194293022772176538004928230664384350820197388354748679938238861034795730475044615926337213240867287856136969023506230108386759457405500773960141136490202785192990950660565463917053000216243137251498037589470395766710256457925840768957857331738295913517937249535720982045933637118592022131974136091638067463260667057293326417896588972005375020031937078530256347699515678413495631287851084494939153821044077407020138303627793280591796336669634583110288686807153273041036173625959176460598336884955562175736822273459822562926873653885426720806863304247133501333692235901119488057040928776597904003749817693165061676326161800783692701112991229929544739014857727309903808786211477134825676332067924212150172045972869370409513714515625254585476260748650781859265089308181034890390917591586180857672641804165628477907356568292417637530264634867594836813418510579062725906316717366243491875980374351010017100701051676083485604283376008778278605918791021609310343622398306888587616191253019839021264845512866900955755316477170733330210691387358202757037800648699574830641082315096529004253239991935191456232112247197175533085521857127588941613257679958643760303811377972504515707923992731969445249960506412126991212542186510603482191578787246123667951886655206082297241900888053924329862566111493674581322247947324527636082842828699563734222430586583851305570337500784900854649283799457536938963018261736755737879437961640458257877792977573318822614292419781602329590009834393199640133626566579583863965497920800758155371653382016831570310510084304918751888748238406650627819385925203817595845374987233269864965716533204377734388951800598279827029347473458704285117920163175072325409369793846556385443371017174475915978427495475915723657768554347369234512081017604592796032750534998125572167617587298067325992732121509805373081278772223646708179163792301376276535466841800052398974356577839585982036786287544381221626915729403202567113972795523691961063003050686187887736527213680391870064329060060960201260034440092721973215823738384185298918976851606694139200828314650518069719453033588721756332158454113025918370582968511819322111627443890727570757179499101581266375617020877796605702509444581789610913852428356201912756520983924351766041950714826101571084918398430697553374430349994220175500768322466095215550630325110312351630856499713053579860545063856947529510391675478810618284683118384946039854104141535131803420695633083106416796365840312394594401707198096328362458395579064374132330533371724175384270480246141542784067093334974561191527539443090877139971958457170144304104789225661003209990446488984331588716095859247801443630572052369270856198694164369762525777454245425426430911214077237882212573558142642816151699788545224632622423366865109697273425978357395291888147285576631325667735218306603561960070837448114766246472534015671482964586423019102857473338143955832199162368399646885775516386145116739551308009301946861841819872300426642823534147107451741324050321977228834111694661281780689481906234089020224316032305097104695837859135861364693994806369919140544330809765656558643627977882877485574802847185232391943570987464884855399539478206172661131641707163981375547824899792296293803020027848141433009955368110520956128090368939494343544443993382816133107731579808079114226844271015555047496719752337927365735729084450930554196901860957210414168119991708137985881433934271094966802544652989172114020862915795380478472327365634911787273536691570169533181817063587064148836710717352164385024700014411210660362155105095706032181392972029612540122952926446823892643620072943387353038415107616700393698440722952341106203652105258149921041107177075384610104026074166347181552254791623959344013976039654983891245713341508048787669222283520491034514381591063005489031374382152075830632103956160386562209831608954513200048373139529228325545974519098605718430733635588081026698566352721795887123703277720465330149636389255350717643786218522938044245136444087673806698262597667550605101567590807017435999860151763257792851300118679459990918556476914845051060008611705474340336562481744838504434722659422540689216910614522859681387141651570320840991665796113184586747111822784801811532637967196501659979852681712708451316243765407018567034957473899107404649207594807173317467270892190288493519552635449121292154451794270613503031338186255847365573382475441060978980835009584095512513527286530790243494026608124451090885901986029259129042514262991779011000243402154633692508993438116490429584000316915825649122255263347382775861739767981461345188128404597475246741861376954537430126165431988842641516094799488596149581668080385240532225981318500822976747198145448022490954268854254032914538653113679141379233997920727011306376913670497078193768439883297173838828600915439264879208052179971435525494507518065241612812255874509379156328425659786303572316232016329074858201862798653669308842194574757689047241027285005556050772884169388594876012609963278960657590640247406918400251819623419278208408784573440478758894243402353740585052570650357718528351684118695609509294168212399153752194770194195911552493625432100080222099398775644580479893909310950176025374082288938654860476935826081746289325716825885543928899851026449021689205411237206470121321315197515094743564794236889868018410594943870412995082345340439812705622162598000545638593093371313116246356385565690743348266248950375745846971256246045672740619717494031493214410864956398693856704134902035345823403090479415141600114477890407909044907585381737449036496212718641186747861497065506217908593978443975718014576409357651913292635863569369342512511984457933680317807556455199809139025576323345901925650846370522500144791880514640973002947024256249010357119535431762363865327685078006918688914375767721787306936942707330790428764771819530956303904184893753034222867782262661406684121641993884022271691336154417698266569262444508038254552280241689872041888673189228052411834630963278764494423422903249348378555268495273308498286148965235822795662138747189571011624402796078606554683920264312310644692139123780303123932767867380324476772814734429905312279856924657467687742862525934184942529946789477493276509405520785459466529390172224434800123609841133088782112961323858289903251738054411356123513525751468232915781038950443024001988652379901448324690275779854927525647285523118085321294146890758201076655663259700572293308163971670541177705652917139796734854195570133168755761471018177536940527862257657511351322921945247321366547389422547714153400304438653113317720659039580867817120968920807849991489129881499567570939894136156821352633246099386689834995550540981060164850380755550983270039871493975628282704426553526981759560590680516857803879045454116575482983489547495168639582152187061978649513800736148275140632456192524590260994545949202009155220425853269167987603357537028896893290517860622720134514774365212724960675742639915363554697709712712945982116161529727979620537778444991387005166841875513088819037084021571707446421343352043839339887686005021570516252103350521190223256414039159556366115749366988973805643877491632317443318219067780560011619442005262552335357262143691932813744106316841875937344523689747297531073521447972459514616495765513578054390714042871540619121185132003630047149393139338614088357395752961480019137415980419895327991460128036545586671533291594135748253106597955297995542570846311475383199190190066193360223171516534746167773379966631429672751580274521200567465599562127557222991348785504858078145621416615386398836018942353666632760834790246867824512431308929327391596716477235614426457689294921830817635321527258225600665970678305929844723093861583363113846902129153299586201928200187835161391722081487359658542211834284076323935030205131590523303599334529581523939201925909870013846718062044171334985089544533428541160387690384908600478759983016045636065154155501203119741762749479430540270726820828323142569619645737437042455147826821310722942023828376193985740921681485762057955684364501847087527296858621959463693388817465400827289104705543524795507509073752250115341826621788042067941158974270166940629011680894221104805084525439313223997281619502645051299249071154001069066366614175635456895792356213387835683198111946094225072353356168252165816654012734828894255082810034482397036050123894269918476093425401726327352553414207928780457916830801340028131998722184331397751832193528520396908076482845163539632937906768857862473527036395638757107918858731453270869296676185227005307717476977503724577350425513019125653393870554789600455980288609303175711232806173024250340120628514069292749439690384350083661094458875655993267120195976490076741082966802802452660039669119333287974291607072934461791713067053550576221232082410237627552772992347191899639722083189418601329978233231599449768462001946270024622263664305508643866259999545398465827819635990992593501566419439317395484451852540619171084927110893641584626189529908770682501555996334197920863366217325054145973046164663213582071855842208243346092516273119456813148773795899494385650268918751723184953824883904767171856004830499483098717868314503330507761116950377915458497687322187786024086671468231324521544470332874388124459265462756768350636869124881101063378657116201166386523605189635476875793495770292707863637184183042646341635673840868914853409959445330487564006080844266812992353225672399333056072610046812437307904288338715122907242300739845181990879085919758825585634704944919244111967621038911813921778364987308797972818306673224517091221197142730488503910852347642166292279884044782215822598372641564860555198207251643813480562897542834864511815743547145147101428442012312029862520453035570230456270581146141506670914391180691055134688747754994555956789987789368361421302990371066635091026197980593432096426969169940869196406183584383518175884133200108275083245471445395347188904891610439402008476155265830623403417644619347851568131690411311038255655756553462737717494233779437153622147813014678698220093186009083981119538385880945409386609926059022616875713657938535781630203209931919746701741678356998955464639933171966884936306030254393210459797905207415785908572062687062270896439340329217957467859717211607413713430954106349251645638266206283554958879097079266206979483846186525768210963365824090765323010250617116233001270959328339532110733524119457653244445122429592432978443746515800977922618471555654349059572330442115783481091100117096505993468393064618157869808027392251834119925691066313481819119338655308512996275944460961944689276184370868759068179208675293178592203849083717961242429537066795906207083871759295909208935106761091068856815538466368832651450303028370258302571418493224297997853012875749340231625790237932126819160385195751903986516385614042891608218936002592380448087240905838315048795512729565640003924643775630748084928894882883780014634330752792143494191990074897157597389828309271192697791832485518203335004775683248513241834968626141591935073349481858008074421472998990532218348676675354358797537086625773383563570970303022381341724962458922362281161893427374413784555554137095946046770174510933087998007217884419385392147739767838087692424574993124574230676842248235621327119339089401402756738158465127253061973524929689461767753119843525485484458592473243985118484185949309657684480566692273478701183802404660495211954317422879876744348736016006538719618453749869844763323411007403119257556716813468523835860040151935741593374895482802500782841237225132566723145601989945353590206576045219784573912334107291924241151557285149960317474835402131253783723133690833188214793094104399636791756896640033614885410990509748013580233966648641615253781984428267647460018699916076871510750783202180687018994201538903845245794337928396853623332101650268320774986817920620917184730776449047846004476744439138464742039985020775399934182754105560840614422660931230294269385747342568462093110448758591369616204903996767498916749658387196145793436861557237375212259179629243858229231867340434142618092563435499311347077475192678074236813156367273740744196301125222187620625429412321524644377410313096683445790996594847672387551498901513004055495642934877326755370086635623462740524774653676312763691374646501110555271523655588315521564519426203365963362348267152559396961056237455723201549927454395668097503853554971019655139078889279745906222773810541236323077528448719905448273301824486317624878168876179676402138025678675910087976055212264936424934122944353013093744084445438436239440025614644194252093545798828364724908127198400290472503283613163830744904428209213031371590782496701593943399561920650438043879067593684762421642675357146133411853138864574888967594300605518304990448629243529944932412966864515569956802225663260961862253826168905122002371644353348602333824649843606684830744434854929335779618879784056107033769349836361961346247580816440602487938026271442442095725846690348694576279807256123753784534871451789881176367780891028645604714468629139462569483596969089664250110247487438556695863307615108619865446237222980415670205384475256269791991028819528132085101315515853039540807118743655638569932521835747583031618735270412426932450287619639181947913586616960169500115292508090792272168581181989712695677364408021941711686854661699336995328991037612815568965114669700126473068129298155746413225991378411924676653506610048442706888961705501469714588466244515282243659762351774372822925043042323174492223308323549817236919885448847223671278663133488859622240503300187126280093533244235543983493978190248738707648829971414068467672664528711561799238672854501677982802186339466917906903323215050180724214895050816572495350999622986017913280575549650690711482068404730844022739562685497861888434962479505754276138235089161586813819244559120815261201806386905746639936995217768955193670059558525268605154307774428479807161551120295631869784814478662956089976860773388901705046680217702645736535831723946989083100626006552932513565540276811584918187316468581876771399436643956187996131085397841454383913575845277318386742963364740181305408542853968116277559001474835787456933234591791147973060734350443877043164131579925034322313566366580845016663170832186535987469785899249687414546743325610533485301626164387269686530574617392680414654705462894845505208992815571053019842145302805466067253796792786678787511423562234686467888562634845511369078461430484213286078165841228236584938338974241007940624508916887843958023034368170405128348973803855464001649839619772029500298503809814134211515730238099699465339002887371773400173905690256618271641901530272652865006144559793368561170160852757155264769449524329159754955473394549681211108389007991239185869376007208555032828245350136637518284620438816642910862503249993610946570485888915037877851646010873935602179400360926560160468850656572643316121406810948409499576167102752891556610310851248219991313798170325226473654280753162115055943312105993785815401653812793135975267275944745750103293276774968843207772170581259714009217627850630593077006201847521685614933849340451760785024848069256050477818476247892488681193004341731453312640607661772501120895207129222911189996081800957575265134633481378826041371108732745240620979291797513401807074437903714657501111865460402122504370467429456607025417117444762084905685530654723453640290201541128572049838649534841128218862364633826302907165527851720574693767426996380811364413310395236778235971143643960049827897614607073317749230559747700762149125021725561194593760073606493576634451052681617881164920839399375897603752680797425634076000478329346862822409436384877653883107295046232489336242488861630378665597882387668532629797333199964494408080413633218001230758870777039616937765993389539637693884971203040142117830253541584976572716062891652572649719340461834738856339057446643746838230342812547342755565507345543651499490843930847141400921021856983377893389219887741677197607517913363925154595710386693953885976644361476851583488967567743594476224300757739958609882765998383093242322031146084719155298083596212618276784772132142220066051129777009797928279449708083708816052848881690451030107008856019672387228377762995515921708731017918786537163428239982813547792198818205720636003037287085846097823666808043732805294872632039854502360631319540235493320765755546171789718976102172540755833403063777217558965444554249908255166950371806368585894844850053558828131548919542184885110456401259819793136821356586013979049482756508439705768476627815008537606405773613390202811645245628414204917525164299939093544881011626182315675877122738020185625356939796217821623604671431784174464071816400888858177897238981145317340862246591789900427026176446712807109051434968946379297632032475172580529935101176559057108329273308841794379867989901153196451027492323634744093719812308574169964509116822659307455437373265679244155583435393880917352369804423252946874773583394263860864417668514751630285153219429700754412560413899392913837709919891796197032796425804717464914282250323482082421586401492693167448395187200734233183209477060598842871499238909184164725416588393723163016194993500098555466015654897232647764891560975410020025977671951220836937608620989398614547923232863553007404514834783706422730906379203605549855235639111348636747436371570807719767361341161199026838868235784619985064787211615895252059615354626829577976222588114792374590278856716586512882418831357311936061652063746255768058812160203619005872433187063496294555174570543710332843405220274995123635381601808345874019842941300322518671686504642754527767254036859421406601189339746156545783032501250619975590785404765277826178129075103844972169817308066566067848666787100513295361577851407906585760314135256928687141202897400667243674759797040627200071308539841445675173243361565743972899027480542538154940882728567472827992254411828858468330928119428744888923022132256096053728029426112254118725978167500857284412928025234823834974416315012751600518475690602856795120169982619476430094911898813566162356422720946110732666799112837281184756419967149252067207423068867041673648101360928101860080693951886240505976764821944268100982763186635967328199252557731855117121820918952491730180202158888717639338456607158607121872567548104815778815774353216644140482405784184047771819791207155141328180767204252573173469825615051292132253728592310319759398565826469969951300837715308300366155047228726201515051680445141905083780607647974024078717777758383676274922232929646894571100870005195347630507285690646539124452791343316391828379685341095464637614120267416145624904300517441239151710133043844245362255585166401420340724064012893419859419962889064083079133569895908010191105290798452327506096450597598746054904218900451003964832602393026165885512908494817215073741433543862510147896151232803482378710158121269517840415485688357850376568490926817116391906243637682407941562302422560535318609630693891914395657454748059772190470583797698139405997942102195690095240867946463993191182772556683463976948981789486596926117025556520558075984294073928459413354943755771566378533283155808135233551483830828109055337270704978334635501995718699580344627184861515766163271483499287345119748458421378158778173685903250663464966448508504652639091614933889703165342335983398602341139069630640735863742451265594149918592355930643774815328468133418794761362446619774266302296306718057145488466539844390848151508072364863895235888728766041287314333045727310567589277492488555935293932594653089349282522581917600653742053821678269855859657087862158975782656101798189403485486460472874978444844834946652704264405558339981219896486393139547209698166589035854245294349059573106907424959510584442983566047210108171317161651248954968024169348320947706530383974404608419604730871828249714627463051091826531884072065279691416184093911750508284691144945164504069198045316629677453778808574470863022730976924311774892774220210590038267017784556559457411989933856425784467374351164006311305431544779014500467973482801022383523822725812053631778127196764958275904468875730177224716851141701462012840533221377295059293249032656865757357377869545206177331090760101258470046644828411382562913152567695065392022568399658804037391497269658311161855941952853015379266392076144264000465577649518477603517992206145855487251251662967613662808978908348671813722853103752728564391625385001326739055540756267723691241415489057041790203397764421796756403003905943958989844283471135918021757557545554712360748986780739009863489576469396062853875525142129854822965772786364453023312841926780454825125555283033897633654663416808188130892884573438241962913660475555119503599301772953931908903943304320124032795931329495803444404715235526250441524625319895141368586998421547783460161066658239928295002684503907865399413384891971486081858088054251887025215309194560492684146355336445730360002645231299074970792498317321143190155403617107221317438735536704643680782355703304176197770308214334378110485679140815375404401075356757356643462508336640054998222299443717123893598060233630855108212835091389815585814085358333908136657023824732126581662082590275451701256712998899281850429648838609628151506309367878635337847733974398371676737851353561628112154951268460219173083884671072656680738055683873292281695134142972090317386051807856745637053527492200329199404020834715917772198147888496168433853130849033783071756027694775028965375265735548911593573173328693977893455292512842934511746314349880907130561546886352230128537776907068628174403398805870586438920342149859046787124599981316720891487745707381146094176115083059460815000562442786851705709994005554839726795052521488681089122642721470453469573524379159811403483121435547960520015747797420847178106080985452797046420667395073110239060350604178881596796627738523385026587212163889459732822246756417917788962328185775947761366720453406569352705492296275549413668258785757856797561641215022564362056262623904728284909567994983027883857837352845003206857277962698635266425134600068868888062257364363153802337149831124189064949807762257722348654481242343148000771966112365699712507781928633174119261797751276967104531865797663094957343649523958699477045677682358411898609864352961191188887933458551258875741855654769253497520127104353699182475226372368544185300894261338641146659092318370824822402606398132837024843847929961119932398726976445499950944266476753199741446821612780448170993720938063349278550925255933515174604530964112142951346827497154771394865770988014286273896388162731265520275808468190219533374439913101503186266362039881043348517574175639819123340285666140947682091239977733215254599489489779537793732953642121281443011828645716039185959221394629890701531641370394260953566936260624733587861362971566545476045127572164789126107131371853617479643441901553392404101111529909002507620531868641202518100091125758719586256617206323043891147713327258196205313563870980267868830258241382562973026133321188844955448923505261778541408821658021267094715944374583250336260791667358472640868135835310592769379865888174652675584719814524699134266262916772740835942551602494427840783269525568669897241678924801034800827082908918170421228787817658462286154334695557509040898129100217012618948328540260633390444618316234002627138530642014268779879374406594209169604962331966535626383286550116260032258353348440048997473652903884159497036818553825307517693996947065750353515314808800793670651869896097217530964691396401991768664099674492060024715990639886919850065484609093640900894293686462902350676615701778096356370161310831995595865370032217358865456649260180537960631475072597150144946256691771830982745771231970809949891882756843500283364179820929615543215238305003111677609365271765820088665486416136863694714518418875854079928215321297645934852600134189731759941473510689819601810035385386555515820647419106432293616816188039899869586249406151189439299230642163807247184929099465552173223847232899976166997305810164381533154209327493860002375268451541200384848696138851109729824008616857733683235611546198154039897725637168608099171786540105636642310876520871378502835502778809026105848464881554679004864842709292710685903650190881113354633656390437297641394233311794033081602307498613619862701295392166209847782454050324041048819843664479189782168166491423733331475846294382082353903158113572958973153724859506073241468410305730341844718102163807369967308778044037200707402716770232206817048565966614384229112017837863631118098471722880551122082901759315741711068160661250651628044023168070647644614898462031007804910850099156673864473480491772426571894792656016648230405950093375940005685898430565602417867213048436857952590752644109314396095315503137799580010679948095281066979277836242819750100455365669249112043899451049037437568135362895203170712451579444290338617332786701949940102161589756405392704220567980650431688591964354023343626655133774349551335092435660170570871974992939328374150722215352802271432423688837930951533180655602246731480128260192501095608153166762204391155746041123740860234156768312060189032505965019657539229408974259658725314325466089250414032737996725525413195191090614465602082232151198706001495973133488759200723004332558401741420279543344877715481455729154039922117974814983104737662520408409937654475939474028851396986989547455144670991187506899730946885085429166327497418520494474882954097842530482937449589244447747096775784099169514287985807000066007169203288763524848791111837826216362002310064799852507048170290205983725436301071174341701032268133343806559110402886429364452611823228911133199876406261927390682542633082258548162689461166752418552719859739962130711344792509426129903942655813253521126984103675977804595984125466836692398711527101444936746294657589370391570832935639786780380168254671167287449716056569630462579099748891231991647135207098921299003036939427157044242312537529741419470493951081794892494220924820857657545926847929172550669195557595809377781935827207437952556515604100119510194476020993123220712472235420276821206902562891440205794918004729769596294602124392278625633142231798012477576458289665133188135296004857746378197389583424408796197811987791363646074423243843127956637633297817870099183947574048663806361232920490200846209152195606705763669418579243276486190266811138959942195697636024771525072899693602002046076471211637794777915603963915976922116749895279082966962440895968698905157967302872160474950926270421539818491086254448700113406525841302936766302682599108810748109941654259803036609053534614256699207974132902165971197277957365047609902426322753501734611523209577822194261194627071885341706779096555282408315016500748176062868572868427582185186822205198531420209560655950928035076573998487627611487740908576176384608699332272568554167477549073378659562582576567357024128915629050929331799329056922015131968286300048606017381103719499159166029436536196871617469800152864100634678185125555916770541567250479849363726156870357951412602218350814266479934294144745871502530987976540120143758074875479095833237187138809070134111262873703059627414090982148721944232061632360191578962054118596696790228885462451319859328082855523177259760820551539423941752654683920602389646264538901713638203116469996077203409747850223253240943885236026538048391597226035347221027284240471380624239826872661380600357337155053278219487305658042231847798156109523234054622261846026817400501819605910196499834931752740385023303174728439182683760068630610505250109885904150386645512323197860021238750370857925594346622408375649877429499785151252556906674988536426787267549894495011920724640442435670382621081087465657293422704186454381841857323227246106919212157176017267783794124267577560344828127961815873190632445746528552720691813011452511394676165245517235892221561032462682792875683603740431457988857783317700766615865726970955298624519561062383276932010561855010833379987441478942752808893259520502887198167633146455452984008360157710610706476137749157186223592067857723250946692838924735630098398519176450318025211364065860109158049883544713480693725450187093184482551043844793377421419906896457297374407049164189284278940577386076148734499126450467510578000846921357534315045918177990450255496460771140103460509405035925658889890307897510845606507592703361228004554308994334610013281053789597783639501880068917275710943173619333438849247489422583498888600594707611003423584423941479572382062919501604579593243903119634141919319539746096999371979131720408033368201767723249509438501639599372190219200455944590958294940055255179148816754857572487254669730416739608586885484726101774219210125742925425796346178242558871106834191413584150782274107824459358317086198265264427164877454796724079237031225660383578560752377143471059023992874029894443410110336844556971678522873590982704031823270401898824665961267638615201774657689551325159025313348073550968421324248326948059512321244582707457842207908366077682014914846219469434320158850392557232621546329467155486923596876375996013893159591661560212969871188727374058202754752368335750828347796787799571483599724461486731583237055742830422562351602839086565301495472324321346884732223740297519290279694968208770299984411818530315852195577684853985205627896105991301847056316005982001393945921559153042957880970326854972034181288406941792075324928421685683420802218327183980548396349985916645657077175827990177182739740407640308301826071070177892099819629060422876845065751504439231259788472255207372596321951677249844227115139455950472688359595126579366700116699279613832087690378276659043292868940621314085050819653757637186405579716836386052320172259367789179742849590360296462827223188269629653072050683940151223002678178192490041048718739409365565472308096746513888724840041739606970690343564051489483992583439453379451467205010936961366433913390199864826324381950433123253275348339139747070836253907271761544166038346208601988308398397726967125096461634238887434174552785612987806138829975199021562572260543940017356356267134227918006897112102551416451545188619713047288586697987956597490042212094287042568269762664845848373847383187360844444637983108037308262780508512265009589491775841488117853199696653765400500527697597937867833310684235089227894206315990778643936089266083661996294201524024696048183174852537883124691399613828466563794711180490966530109638333399267772792457369645880302507419329192458825561657085926634451416533826292921810930141014700547148960729048461976272638422349500573740218882955468110036520545269860128461594481565551914366199432321617350658531055310519247665678905431413636395347969124539726131510354277947838872342660584609935852747414921991682854209209985256034169498800045179366615942829084924573598616496632996350354007130747244253603284373257196359989959762139994751053126167777068804229717152565961950967385373641468645168775634734330892663386181943364761281074260936038771813819906561624112795544471758007416696894066877142596688099549864309713089042778093187434900832186572830977266657742087419628494173792144563745051638822491148268163558698448700484952644236856834269076966668251403856256038839253581170833460348717698025385535432824629522429763725286469221842982214811681208452122789971306328093761003166528544194747077884147658775364699287615507289800784796189363019040898718084705532311061148824679872591055177035782720999716322372199378227783835346896573474309866756488201521519936067329701636034565966871964859133569066522603124451832577434299208298015208066627045084162830594128662688459816787900014197633321370838640089221549072335963681413404217818253695532585601380391221295974131652916383554354710434793292751380297030929905128067969333753103666376017717738214692458431767950738794391555942716440719903629062614505270075104083907412308536794823508628416764693546316887883763877255947496407109250483958429930680011676695211910310631760230958274659080065027711942088980199763580762580675119259422874679750423519962611856149780630534521932575705638954997117365440137301019478905443855584446081080373825183792754370626841732342932735858288613645094217658619069897222265898105026854950175581674960778761135976205563359462501299518677941253304178096180667584280109078739200030181519352531438754522578780974514554858091440540209447586597723038312681670662073998854044576646379168325296766302424710044407453061205913093045576307239775568054818798106276139940057456194110419917597380515303958852079166309319292317699224527018936040919322951995217150836085155368821535165564529457954897617146452955797609566473652305569091941649950850370807267673530570671979143067732833270526685794781395886326120044813182904825880744805464361113022480717525816298765720745298718201873302795880862466685389357609837326179370296402963814972742450659585801096147038138027414076987770316418738049341636577763221375661632925040877133858400621732706023187098673773357080734997860244140535855207497365612465914867985636882381630065489369555070030994159563183528802439679059123369151837872993873715639023480352777981033602726360776820459538441734685133541416369013843117393680948239858724625091965164501604665827582541942270231149617323626346726746849690824643078150012693995817260955432254570795626016857876506483459943600209099494634777556240110976293717223116810123091696065590612406905579590089169783900211846648917846574767272736651232071658943420433508466141871608680928223229633788241744871189477174093830483698107499559906277705640223271245738057550014356386881751044905864106050576508509361791998991123892717982542478048038669730773886888285800559578318056466545855782322658626947213475894393435777926992254628558800326793994881096848036708561112505343773934956617814882027119457617028011191920290046328333877665384027298261705281131862843648803120425566447512346902055283372940921891609564196802893376646643390666767276827189352331245369108668693538443160930629830471103079277188960474194409830240462946653642223343250745971742154217704894959289111268686123060522801768066012218598638565814814656560549830338703201532077092370406349719666716385553958622506669081882589647150123161425232767269240220087395818056700835472800123644589023790800891361642859421182315760992249617793448063583197217433640852849179710372267768826724267553431311846621846001361952437011213635214756928460951055187939211247324108424600438708400091353152145014276073946692607699709601501477852591744860081909290785544119388401591053535272436592601487864111448149116455693651057338304032317470661499144574154424307060135710139892183341642919265061059210824981105220317628611732957197069956309676182927829678903051681299647189040856282643888693958430057588023972980101862430648109365099301287553980748251573323261657557868633326483461829069495141647232516438685178155769907409483861402867355303890009475443510918106926919067859247799200862494596649867438615430795190668534573963742346205467395556078307232591087996603596565840983538717156480262440907922023190990347437547840255914859832453691305144371801109977643605289809423658482527848046944286287582264396135459846753906131269363768569049758708035067308659325337450382125158149001011530783037060232358703096409591350568552284872974055371043855983719268564926134474111546389131758855091516198833273918251135631842167427680951819837310398033180519128112014756779530777823764045280715470484495025229716537720995618228456002111606337524094921830257557824102367173032685525122789383702827471385823821002997407579568532063106253426842052779463041822833754483106794876552558455077447925700776596276324836628295932098585375872111022285402210363704364578711659374454787080529963658533217021123193534893999904931329618746376993653023290364869677763430103451919288541074018989898602434452504002891359104784176042437394652778344136753897381393999855027036701173114922319897296609526661754366037401157807781268018962311462610899511623953652287062190997754243017067081091550270414619485938453118938747903428331298125408486826758313307904601190273311665244382172211688783050516986986300299965681922223100880873429746251616669120478212860325411012780089389982200585128101457656795325790821936337616828651217666760143066686944477466911885905712207871853599264994386536333214782690168802826329881602516237025009941675297229888335204822181462712918403352941108838268888785660044006712485945551070058662937795603807112298893337192290043360881626824198945367310451820708339399462481487595711890312248392402764384944585766680593101969625359878653580918586670832051102125831827277646100150189831587666547090471849669242456136343106916853715012139192357090292267934553148127282408364101143914520087231270466858485078442767016076601210531089385545819390764230179112839156721550644617784843720190654247915287884064233647054896845294369979087251928506635999709423319001730759965325178534592859387003181119435604398260987034506810063548344092489290471763386181393550425862638607218617608505063431087474336554745899333147895314770201035315674042566685174477786863959592642701522668163119395832650640673326014250783052508278259319560652309949519153714923073190941175284804118900533925440605069427072263488761504475015465849114548550486537258690545901113531563895552884991578403318284417756471923771000838297094401533989851458312906130446926295584261171396393960506429486403933056319033729404312459162632482271342015615476350370391349913824575167741227480038693732070004021862054392753370793464715271987365230647586413676800030231019955377246971694577236923669381581198106058406402230926708285405298547561231028183388434837418362356576153471159731123425489040345957827570187509099367984312636650818607976116489573602253088810216494481241214935669362881250078656808224741269658613592661914638607836529486984848737502343650632174098161086988720351478537860271500071705933009780328727315945176111340022379662189859961139824667233435624591959900486559658740481120519881198247126239607208600808570755324815448162891506708277569708618104574562919285997406780923326438508812588593180318068916516364611437429409909685977252308657187577919266951915372833137311247913602898179747328224657107488564661471207293878071092445490684885237820418279126748932330851941421589501358725791308642838282685082407821916287113461820035486190644758999884282033795542288408494091731887292359741023082129056223658625154602334266321312125780465411036647547457515667328360783696423895545470659404068824525299072874282175352391445380988370407524777009269414539949111832989632485541035621491651859853301332932040513527192413601731164048856000071582860800315621455084446211361719649518165661168742511360560603606342393601810457157930031125235530295901173697695956861108917729137129821796903194693113769483732289576723206829022797698841922330301934820546651358820708527023067024256768694778318023894864407866370772072161962239653545815292769821182264103562096156926514746013930354894088515843738381884320259025767574902233017754494682085472950797293177572807715397978707355098248667269530093926063364674157327667748110613657456681073109981560350788920278650182436869884150193676955481851404379344649255400173519836345202491250314905312937037120768864650074344198550502650441355339035080930372190858086487308824163348771114165471357269660274158723147651269599715615510335480251827794744655345173234197101842480258651127609575730742906083531332832794964356098030571203242756733231476123205063836414189290073300397007689895055212229744857333597990547103944383703462757235093242559071578624767385394318148695849668148787704518607544324980643355126059038584755084357378190049118701945190520287964966823209680005793547282744241241313923653789774823930842636195716251047367277292390437761673011403880985659782534086935713486970853798136820076000639957928537914425181155541529400972126822497317847447198943152216222333520790237308136601429084436837569352551048368671108542893835389720395827750307177272610023459293294291299415844672581139280358977485028168716794371804696167200665394129221104777911452449650818210816169996482031785675416455238344294854698808990136048394884137865049809294949054259691871368823511115976703156044666482679057281903317539939788219837613508187551219626943069658117330342949338754742705173010440476880670804371757008019523404310297957093891424244836348963869723454082995182061674401197137223505632737885809459544670606393866390491733544551438234269506133320564116246737046755077190694896665408095468904814623762504761059914057955861898593868976532608908695620513316633210677125944702578539606442765429511450314798447874921881987354989084523195145797760344638401782262561460588001962815845803835083035859103673847225124015841136033717065034076427926631888135001095401129938646984420604342974454370385866407892885018868411182498840157643741062598887952963392477365562003649478052076537935088575743327681127186029527475943564765783549754922841458784274360747418452924559783319982370828178277111640729895309572995863934348664205137342589346487282446426197926617866274640147167476572724324903797464959957134425826793490761440258695635051634004493827568709086306142159655557116199372848332030977234197100293585431877253006192175306010581295675457720402324923299512468114901925243421059123671022835809433719121883609687764078275196803931054631272280415819318440756802115337766582205330266950583861874566292993427396537199176839766212675673216317914650002651488824537692060151212003756247577670477396869514633312938879354906516055272099598816453671795906497807843075851206108355821057308284863117485980019746588271572190357258166784308705500376199491471427267637549070356513732678701286248929740340269365640067499977274291029694203996325097968853639379235006881665217523371827386460331710884620301085228938232658086532905496711910856215613035784379649584601154121497669995693109294682859768715419326224932810682064387374452000241777933602046567517688558067572032358889556478485654267573076998841128540892279859601508124278923401251410077818971695197371785517748024392727395295074795683760254780708296805842146578248570510299002812189869956323564409413347616205393984809468675261097302224825922882068018402815782034367420569254282921792281331240841525279215730195074727485995824536460477009150326794296592604692717865290287492203260369817933989475692892134555770984628026874983521599629273924135836448177041744557658154094721197342717210762182786723749380156281396804882318701476717108316207194768123667427739168608489055661602723658860885576675851372143080213740828332253376796355066499092477331544109230429630876286172277811360402867790981639426577403460892457975498137608114002609198461936645569020732540029493499691341107190459038260098657268800724579988326790174565948321618472593208484382013615589612909666934140173287151389124428785848630185701179714769132779352025762196172481334122390070608626743010109899250794153227482756005450976879408367662483087920507351968782397530215107312812290952740634521054966073882219152222548196368323793474825619108969628813688688644994100995209541930692512307901380215353658603704526348448563604391121169719770859527123412136668596504745169319898077510807273842128797079595490116660509310400943671402747918558628336223798762812980609467563647077011557338147422866376768258892055911567551648616922663000594673293269710328120130348149356174940478009400962459141345944024891121222858301411489536713580562573859128722265640800666106567232040765849220817093415017845850127022432752216283928931444933378017038725664950367309528357462680812892693097738975301507214863723294978826135998716094486902939691717224856704139602051166466547255083055328051931718860494200231163537380447936702553202019291639890272377980700483002517173430291187252926665607728314189167338566950333226672414798652592257429617140751322639073389729387978451647794427191430684103168731211496915201254163048092928796097845090376326093381534456722817730049804522052930992361413600219597181161070095746296016274885414930357947081374693694271282715592747684116655034203292872952198549612193913710662695742306639789763080696202477089205769987282550612937425717236319202193951493339346167627972107758398013603410283418788347873661275499650477152753206683663114701259595724314736087741825970051255157804184211486335770705918654766930072198627896885363117820111084807424634925976959932322246795420612239326631362975575110940842784652664185046090941397728955291380554664421445458897046542645805986446915614560018945047174138368329339176595474307551502939739954790970850405201135174457531412101715342985041219611342359679821452108874492144264707451307173712590454633175423422029773683430536367608375118329775907354970201473268485933437404791878390536240158778615863852596725319176783621836681736552577505262605234296746621034811926937231721852613053191581461349864673857681022045783585087181200718638245398187677306509157472382086995563435902647667721752398590207635781423686576722406240756310579452692028028114875166627188714809519410801289064206839554629517373101812104244477681462693986771398299144372198403607223842621005498431503607403156099193475044326353242729640102107671095617607914629180941028863459819588007239964533735361082884698251769108787934141691744489741904556794705551205582323578201407940998768448760329198089439435100753837086831029758352397615627935052355750260909403702935562052931151381784652128084975777885920932355488905098318665945214642643388176189300953138257962004050719677598215878852706097132415450752070546117988873524591444227160291687222418960378682355840948345468004706984860271890308647457011087948363354914287419421053701245482400145432928736298538581064876963500357908109044646847265673425219072549675746067014477020437603323035123908936398513268692293251455515609838650007440061736441269570891998720490050407882123188467496773812558608250187228275932022523787724019787210638273367824001376511406118818704764986373867134442187867617206603208041204404204617997792625430081973937312924000341173666502091582167841932324145079396919170005407138011897666757168840279760556101157167086300809427528847462297641884116495946513609454353549120315173590598395076219023340568470362538116447092134583859347035309182939613878721365093623560373145982471155999863349297200786982466611972054775694642887905542034819911960062647611090505040876877742986989911900189678219737713680334682702196583625067386879275052118375709473280637378583642069171937965021655895541761506088614120118359840185237934596649936691855342704660771283840359818754480832011846835335098613192897802781378468561600816115733289139257765193182524870717404299767993869241163429462894752884244225375256408019684085678383584666974605570950716964216974648839491621863314040364050471349036298067709552340098623383713169814156714380930602276693666949981483296591411855576481893096170360424969032719017713351531386531573538965636917403899255779057620140173799713884003108573166792878633774964916032290832073757631406550214055512383459464029861868319382923667583708423207631496550936866886819426099789910000509525725647384158027652408634684591053686337009518298234096374543031818592760420345010742283744289366060997792439752938703200080720367440092530832402375727435910594642516403979165323660530802655783338156821219173417805637195074742066945858040424763827240475822149260845126137671959634252923190254681532724257519143519582966127243058272364165192340378019570945320990248307406926467998372302555475273120602101634528244350352982166505347008307096034600452108459791824381512851003761682716187841599267667629922106782943222965830810803075888909932826964360772066657976006086683054785302862489645650483333019890812898551539148020699614295031423284402523256610089146152291046179758298933311602983796553564147063060762885499899483513551490877708149937490527165051998174988647627205618371202850714668505996682410637497771012940362929389470697235848750549729510899255662580354629889043672909076656118012055934893110059965779458103897840314174953542191304826328392547446405486323600107982693607633193318563373174167499872186690198761153869296866697169429779376987273922200706901387559279924684534475887833178000239093777736332945693244499279278804728593604491050540341925895028552220274022801079766163917031908870712514187680464732806726166813608449907209271611578130107394271889485113375586633061050720615343169639255750893682889117818303211514144725607215200708735758434252676967480237738811098053902550473890670826177441959961725915380019427822520432139378109193061504918777077825543182040455282515724313802965150097645139799464706264382369652282895595187597163143982312868115207672350420573269226399536686120554542147910722587215605684643311890002731794352072135784538134746551044057530368682417192546632244578880157057794306741652653168776711903613323743818757345903616784244544106123094181269902826919490799114196550925158477775841328366751534009360493755683177688263157326981177644138411839347761334098514053027051565054952724885650893818292318230072466888778702725466002000295382317223910906686417767658916394907022071431211891029513600600566934159614188615959342879692487922322109935165915478883816002184464729465943441688006033353410410398674182071673301000118818165111823428347833262647753506842279110402222551034534112023827715542587950642778864202743955658322828061358886037270160060653729468173177190871854260315698908653414925728472134315617479944598424888299518045047651087726863685955991168879442848684823356366598734597980139982344007209300611740811608649121469337744552343037899065667121093732408482972670870542944598620018728354537200476166732056464996230518752009255596229924184442263435266721521081935760912520576151852696927160539770436098844978225150895619282675341604116310151736536048109657733484644570020713722047214360711139164350534674286675035915643805768386175648228467159384432672595598745490051381351499105893548379249219250602751100817904659280066491120738130325668134369565173550071007427787114731878709320267423826735187514025963409850370197709553940918125546406981602066607267221951923217891647398258206124176962806743450775024874608831716795304763308949885771168285335070497543197149148607362912800563496935782212399592390264393133496513969729993920658450376153377557753003633813504400581071404356630893712296827098992931080083457608540751684860065606637634214392854296024107522692585120681427817457710945184762027958426994069766272673013514074483636609985114381106897132754353466646888052210500775134451449280273997634320524753594870289611285976554109027764463319264662296086714927849453136952022267200655692939766679676810096371244388735227524815787058151117238352764001905807257708930140191023209822145219920864418428787010552318364585533576783634085030731167816076402486562565185369977935171416937457792349640639921479377078932743413523179969683295834523470908424865267280537248995467703811001372897691220372519135234709240151608838948005953241388766015625966764480127010338976360152448159601723041723930693886719870783063994309502793439588155701393669584155936871453116658446846689281157246018892786363783933731362375321475906215528987103117856306766277949267771884818000870208307244347930388102157954237825154821399990254939462099857939519281576743513071206855297822424034199673592337811213015817256234716247776675504096835530587429245067375546877680398698307851822765747178475298379532037725134825297298498229465646420674400023483063912309371287465269436862949920621925514034740439048939336754679364574704408049885605350241170241044284542457560036834463887039098671513834724764191368963946788279037310749969627219407812609286642920509891205856781755767784766216421103526005588868527448830709024791805165646750224001953242518474115368909352699825260659264783854278352399823838967526275057889245264821815047027197779796053978518366445650072273106358789697190593710750715427599191251427649335350835834738298455173149302212065592581302974163653096524211116050066911487534707337732490589374503725303039043321748921102420030993378850099987362096438051325573641489901046854351983707177807951484755602578879233719725914801543165128030069663934947347449910327433376825995485540868006092687840135672920557885096819245068643914250965616974330458759602420167834408923503937379335565112430642918687856702838469018019598342326963032662027964443598908599534990338955928718310448747640145451143669937149517797791586288432733565617462049287788023327373482634193925369482749184678380294710323897236521079741731787019747363143904450579844017407416044971003569778873848002782987972891894367750256248064770181572388191943045301489826146747402072408963921613608148095238432660945347370088087365539423729127966122224878827337587391402301063626458665692447131913972517647149574498460420660095126161830147899923909539988299558802173262073642206516408209457743653494882924977407915235761962277252250171483058252902524303752492263165686471448188998127175314894259962337028894853125585645880344247268653910842971000573404480787881588317738656069886796675011774753207984039578497015251937329785371409803985899906360265663333398749740217250792017334988140278710425491561753329274393523027435629410122249342156183157660028299245729113328819848694555119788560894636157024958194508946707104994662874772241955419876065211068023076781477693651716606069029183685238582191995328760672280136630490334055665312015700493572699543798269830142388493619003663765490929751324451445836530439123474822194385440057517192074747568034832595488556553097425347067376461214080531265197723237875380332946320942927621380168971161234951744938853405432880498991735538762517069663162720223016267625293979243591856654760727180440635474878194325910587259189723107756105053799604550562235803900277018292735863289619466799856668559870566984127891141252900479453480355058154349822466588434020476115755948507884858401104668383681928955251404105354055904075587335724892512438684782153298084767528099034955268380378293413254548889132014047856963787309205226345561786707632735663761748566139406187382108875201497106946855078041856067935677184781107638799023878707284479963993584398926909924123497869798193068306522931386936836168768351421700240960331526344983926477791454731880946522779285620229425241026602193100315472398243732652844139748601183352980589194292254690925997443833621676632924595730210657184480923874855469398785447568133842824241248582944960576973127825760957105979398743331692431344164787867572264453882467294040648914563625305055182765019440425235920391804927855837728669752686597669989304158250823710936167307072739158883063888186511884165846971602410029036421763729209030213717320146347165811752772486555915847925461471600386076164294659258981462644225508024553760136858607229765154389890630201105419342794605283082110536046951551271866582325386933550197453463719492396426934177044781519506503372578519709552417340147352111150854826688959786489250452535003225289039381332392100810073450134607436140400733646705484394256599984810764844037683569190993153139801382904174858868155109364181341526987530481026572265514768081250919994371136927678251770496338268960304958130283991302393422174833262869122177879843029246913953673475575698041485406965958822751640216649600167999524264694980061492706669033207605277471942672338864826690401817903828481268928648102275167437237834155861124778083128035533674561973795878544526561894404477900849324936994991646923243735969565186908162431341707392271549484129542936649071624934505530955766319130375351642946998018178262111220015505081698889930894051972653287440739047668758014895018563618392537928215868581790163088977831840898190694227413849581949873814572613238028451265429648370460066923481903144646109313103218655399415024474933930600239320931894430116523178898382237194740565891297553347977371980169401173632750831339195378485858703046396642972828523280708157128352959666543208709652109223369825012598141639015093423132012459315910156395270963829496019431742105852882431250423316884932097835635451835444751238376937153474696892946076801832024880829051702757794615748796502806849253852241460020787262333971094203709195987706606553037008587978067714886125143830698662708515234190398844318203128971559093018131574600556266851979681334210188739763728543306979243526825396774451120838599908724957458579134909850939209830579691189882235187228206009718299706779149532901921497283998493757052862927950063854158612517864915668822792865463442856047816448197003323393620254519958332474824568422370471801701221652514910102618254431325211008699828387339695152563411944728241664722792001456677180234469325744231564615834683416302541129858922219514351686697764642961386352502904789366621732783935978074226502818847219765579304245814017681545936098557873565562061681235394798367726515072770738519052820743309253473917511974941437412320873253901178352249890721745588887776606790247069306952275326798085188800640459954689049198131358672395128903480666016905073592851473335359974059933040248989448867574954451902937038241507567148669761233142492070325495061364004236495936833998159996591436528193386496094175575815717873051878203616929608710067038797920620615227970345943549633261914375989616339969360028655577059669928218250336107272628966470098525791653125790506270847306737626749769755541947466500129777488762220661111325162979604685411708872295314870267134178329265831420668874578492603340719870808274812855035926316709952172508952657755778154905020576059646805193677763527322075180128615225959026858309924129029223081975370272212818106736755704471641384843486026097271668374610183057044587559363907709520564382746475159183037050585658599004816420508407491045528471812623840805215211242157290779806973718373857895873295472765627858717507348601393206390673804579782421154706038607258048936464252887083169847558389499695251581761376165787979505227204974683929866287554413254019488294022868268309208332791008987465561656355520605559486928100579257016853371623325301887698385062066016489066086207283815658214323052743216688444536475092540890786808599229042394520965055501833347891475594592809332117507885306816469409992453237867695405613803867123350863926225075575367664545295841387508106111193004396598023811127842161204375104265286894631391128442327266036884994884996722188289018123280418029561142159294579522231656122761737117608502940087785937760568166370576642981253487111559021768523642180435873405728947735295829763170843237755529425592094194908509794370263965399015958929562621125854014086559779610912517308038822819726765077568506184081767896274874536955875232171077500226266446281245576334431644822672349757385043119454326495086331727150745859154231238777352227722430441269576136098410237928898571545859860524627247923600029293610498516910226947416615526510993228366044058419819327521157641265948703700438509570369121247768294634984246458120796681807547604330478103528471332720337276330012267759092812359974170015642167788667796587668841207714221231308834485100051293554339903429272641205438005019172206012210474954177564127619208233359575607153470946635871730570576284496343096431459539837061077348545155445110779037657639764093145931184200546141479508091874371483036000584481141493888515047087168987912509379441691878094270119911241284750231509090533635894075999013745476553897849192490333134737686078434082936012069753827082486020058844793907909947574863140546000987085968224476861548800513100811150766007776924542141455868932330732950847237912316739100245820360779015452718230270852059158737751714822582421708438782742037575736700851780965842651504251179497874239076818396211685862158160149162726827594024610663361782946056407422162817914200393098185205667612073671786433702744689288618115756166268982936627872137040794604757070204503037584851332306927918612840174727682837224708552280206528189239415283341203671253318359504222298850914061626993618508428342271209321267907446528098155320153762258984088935985692068409188843001931237854994415194449115058757802748392163410675889684975374213215822111562393905152167597199977736863535970438369380371781338405320768631158836008345548308573702655243634366733687245002758392717439812982857112166928057918735842146333036320709990070223935916883114239878972086745352969777003602857945912738314577531403659305073552791792664100646209323681361221283320062102146725351790001175362586822537243503715040222194109200074104977268662248254554117544934378134592401597988975107868079731687800310603250654978014202279062749365120899832754007783597001100390783616780886770379807131804306426526261044588932078905064866940966924965892541582619609370672543277748168202907775087207381690419221557003011975795554534930549891208837241753149415515634793668221468123553908724038872849987412535636721642356128400005093913816263914316811200869359301434333424813105228233399327303994421385207171735601850480945053611214346503483438803838379523255973395399902894365741676492112682665399360906470653267754469441860378317252956764966128055808775892296742480913284486996286798250081144733231706067700117159971439836439477539055570951398804308627371918364023745350437403489972481938104803671698268977903997936779580351982302849053912536980096851326741063899390852388004995132764456132095153411744376925655960002985672286799338585902981983863600036678224822307167398444049093438122848114648840184850286525930348297259552965546730902878001651807628767947320695283847400472412666938754523313433729067104525209739631959372850028331670859348764749014088753385954430129098744931470186033273533179894060808063533155155918412286762401947905242850826225703230526832315688261848377995542215192866919271516225662919581069444544733877570430687492562081067531791555431692301126353862090693514979269407844655307647911661042829014222279232751870811610220992033844371001874677771698223432384582062560516268730171310121621724092176061127034708020759471224105786867609315981445113367317264641927765648208206746213240188287117679546561731332206432152383880284212846490340330642799187134019943499539727575453405236387282109348101363841240143802368863633333222845652637265756934285887011510614312222584910096126246179099341910385344473751626888358127099071017047129940392909342161679480089281087792079334153850248907111874691896107302156871366491287111907609150443623027873075662640901238375487981856112922413299093364799372834380275876387149542866995394877910498051848053246570468883152030986598791783288266619830904469269101610571044974439864288630262336794026403535286582335164958886517465244088836570449728172953225106453824054689852052843914613139425659053086049857736581634457621844274846279074627983684694671282468904039073280477419660292411987709135047884440006484938669666112040528458899930925237758229453710762174310630599992148457504482634387629990750893164684142554728067126879153680573106088593877146598980894409124978357144716489648967428465112496583623921771568928430354138342088808169136907574477687976805927985056471421287481214225056183006432873056395592437005372220750009900887945601580722135556766809387827306261378170332928153985854410412275525655043348846424701119635652442459177566740671721190920694094106084822115393937655864050964750494000674049707727046974342611155636002020086360775578359540784643168119703113788200479882201646899485732639213747718952400706982306245307026827060754588616552192851598227432883942980254643775606108526323255393954254728262518247809244518108238003609986782629340046675017166721742112598629701790537925730229889731655709687963778787311663979021307717737030099039011452535774475235210771698565504897778224096023550863214846264839949963952790793341973130423566306657106508612183229453796394847678075492102228486918494451002911349688047940145399456431503649578519503977804541320493893576424884525169122823708092491054341961251853498377376692222243927729789942663370279561735553827578715326265798073029371285697343680842344469702771918023001285794139425838906662466927114310994404434296716496202823982986466959062870596239444773851263761324805657263809812273775317452501231961017029584678504581605559402805505405552437398383351123156825450190245016275888211362769512454511030399203422911538864910581331577059875481442182463993444376863425059055123125161203141863523822552456286767530224393188539934004610328237360488187516490832226948727090638984336252390015967564749368256713059693672536921844840635771268673718240463326955198258158599841411867505998274473022281876343524559081151597963870308426546120149323876357120748998036614813261063525109279836012588255906787311946095009233767582964811918432138611088584743507475731472365193317875797783229294878588354576600670815928018719422809617515550648609568643980031326034799017040852269983729025545816173630623413402332598724245187851002708337348857161471959164662077724203573532947144126110868547485946064499427467084990587322712184695186233331160436965182417583499192831709834363250084002331832433253097242734486778609290672812242162857711281605620822513310792616921016229904166081601510236170358316031380515862294663572160631396470707379776283405957682909832699535681725052041104809087423307228299097828745846420210438285412149354870966266191936329521713361761606836790805551783104130716205020283456568092705814069337805618243477793893103426804909515211641256002375041321988411359925155602538778762957025733189490065104514528405434863449766024176975634993025398301292421962264267691722660690100087300232907126179325420419083145996906224915739032126429419886841277844651475767943461592727034936034111351069737087410882384695412137498330552940154777157532436396190397081154068455234075827172730823742348913854761346807393870888144632724958174835559273885600202844637109494685749267297379242990170085222895712641693955887557570686707537491548006179839885108796516310338269882863862372135759602743392652688883729666274344194844815307972697687126749715338441291697206532875421057166314022969355175805248942600150136342950916403784432067045648587494625065434522649935214876211317189270801103509894082557582634805704611305465545190715104487953755290368963787576419745500095968700655615828964373117072055377910738908034724718664429372310574678396955951874756432485443401091936070143198948228128638505869025743366898616865852421978484190988656991105678473443479772137870831904731336270022287434709619438203480252188069525138578653091754900386201806667246480729298636244811507950216749412996930249258118266305427143417484524495299919155847807688395110827889402901590258933514106516539536475230349272199747839721714715121360191313365368543917191011613270986999828662966390231817359012258444378520140207311828789617383426272071415341384358205670561134556292995209044036852706435753528406498161832910710446210124218245258215058069933726000224482699472006020148723836346733290414997106613499409458490902258223000827957221424707572952229291430389645476898151779181904589122463748298904422007466644870404536918348277908420189801780731587783575138767581087701528530492375440935821940542515798435727668327494696290125401371793412641708203776568283920961771976012164270632733984872407240729775365920842012410852751068481238327381514676865229926655508998236595336687566067916737586813683861854470932922647046527742592426322691131345111488958264807971959783904557459336872657042206093479960058881612153745296459406571606217931348287839670765918859652480941916824158204132534043197231339399632285034105382357666329053946326214047876620752879822617635300620379906497979780878213798345168108137498382962362469730974669419009179453795894249767164833734003192831239834063946726752499268952178005907751243339504740349523893761394121377557620926713257882948902808649692362484051048142715453776469446754622770657001542838008343083485137135989221142251636379630313016065258293655247359556349160640662596755667569883206348513516589443947989398943660685590272189342467619843049666480105817307306410742713888493849026764981555275058585777009534815076440425694448008580320785793149209523723396966538028747300308036929207468888686324820227666472823860250602663810793210485693091100625162796741723007401598022812015030160233761756828497109088080686319394621774364287978750651762846690051858521135650091427963652757563156966615957622464323824305489832391695687750798001896860562938608115692009769759908247080198601443721247892652981702385431473685677710198190300220990457230977554904218733115358972996717531868020417211514099217344420617593251695777230295108983834723267302937925775906667694681909320201830838118603376783967295439843767170121923745036928180165711251989454518961160700701251237796560000172056025011525196962426999337730651665728516496632399653387861458685429053937444432969555699305815744648085442709584538900594238531966810022393510339215478184713205388293310293442686784525229364501316107748324783797751270204556304208285755504954079362280476141725390294541516229662016812956789988928462984170865220077402087529292612990589118852213366900861452330839960421804755478033300013388868388675938754506949485264687388455834715413715395566465895429261087560833203601778035745800143235506727625306763571313364276802677154768987665458773916782521360664536528064977464404017661367023060445835724464115117556220333915891962827542837953856035727442492814470403303365147156746518105499860791641536522517096205959895649145371189781982650164237392339272039601091156992008728771059404377673542263039545452734099168704422682181234568577333990365430353819153411422493163168686629911195228296108886179317410721335643542020412666466865558422108746861283066088520963714973448244440395702376578296604208111904281243704749007545456015403380367124934845540433425115122076100576485010685187112624510388427264010147410653050136984608130288914989515247361236721700271090781280696329098434215112982488291306242446710198661953729468755234498309513691337572214870633654406310918628056375208992689123575671877707927781081924323662198706624924777236548738159858204166504809108591686444588546019788204725332935763418308479996000919624234385707305353500588547138949076699480128165210223494109403528222874288049634215699246876734353201176711573697606241791712309976376033613944871804781729684259610994332013470419315989771039147595921752015304107815220997558326692779676038586616782150868405783553256751702931586766065610992115406690002347445546262272693020973516232737934961336810060388234147432487225945052119869953459320485510542155938873342969991037619850311224051283308256027107478128803123227974494094686494952095397113693678644062542971832723775453213987092803907391201684291720515298561026154787645187274553515052145007292851623661496492810564201206366696768430152609454401034380734380237484985973433990029027973264507831346708900687788774375107191846088074102201080343811846831589773195122993194200526585324163285637824335661072352931405659810381516532605701117019457292786930633624015578723366296708039206070817971217068637134402463400727393447698999751242292439668497829736668429445312219268017093798812362536644548608038484746014141849450654126727558145247000735375658726052113659991391038283539825995539794814501507158161358580657659507150308756919332101420593702579949425140556446291434450574517050111290334505228675369768052971135074992337379501640044491672802639042211626917920689371947678261130415186938039792965969046140551103973753769659565711879972486775336607760069868618749776036875594068286160881379115976651224449132490675953716788489317294599984654257939604390850567180394016033605448807172628558761315884382464938910876671565307269618857112369268328253217874645623657672851883777171324782551042749154168516689515109895517844167781912256656213932394899174456114581361970775277357097779091352278764216463367438181405287454162468194408230521670689404827431587501478278489396036387229389029149322681399986543677076482888878984528274237351646654779046932192159017330822537566233224407256190210587750335187095808193464455687478624950635223453507442971888238672821319902217999194515240682779050387241440073107876174525562966298677676861704771551742962055745467756273562676221184078925286747545546294906056343656192181267000883208944302085746972486156252292235986300987129916021169240172740526075258291701013288696143752212958284386846978466081704016631430061218497775935383632239433093510713457957711251652606210878759195595664773494097963457088530538584155917624957518745834280113081459981928766448690249237167252036144735728060378213008413215237069484810786974528082840414377308834870279403772108896217856206770854509228472764677221583423702798977869911239149638629107903161544509837950166721249158292931031282873473031776390847986581249995766752309962351339889628116419129838641883121236202147388266570121418088398121701274292167294574606492958774824070908350452096476075474341367763364902646241582816997186144655321900916644415920527269626025673199083225372647939807471139406283834071505435970514682770511773708231278228801534698602072083396291166041294458076019134772171068851706359515404055226319131532926482453139967209715828949860155028503934404285372035476555560462762104588663036401877648032652958284170995273551579868453950191318952051265761598227027499347083647662525725595507571714716874678595505188318132414038795968949909852155206659835920598978583827260064000140548493584844431712595345649272845193299177693323499984147465031568608365463736403076842663811522830691017972483742971799827557203460214066876921235239691047402522229109723102766390089848041929671558014585091392336415006715755072024496369200989362959022898907973888472572822327879420592431651222545866054628183396241658885329120224123638245767770557646890680901181529801338508207184485519664850908255127367194986357985591415875278818750653428755506846026490800501372617718743757481800830632574808467749282935207301521793618243970248109646617837343650373666665844114273898688624202645414000557618016796430175475293439922601820708750612524988529984448293534651529429787500983581394151781167152700321200957027848032337995110798112424840545506687161024757477143992794485227125788683490509111156594631400166838479500493089891782738788629563189955500652593364073886198382336866294318598316306715403457687598571037389947611044470165197972706729815891545140430241305810878982290714302251715680983092569264032021244864605815975164014154771642980340343451837808214612099375856755874832876183175977829800470037447090815312814082924390617997925590073073847004124103457454677503146671079159294157425470190129312154988312084762390733585592950632520087253926485838250896729611661924522885140121892409243469870083993699088733258483352630658264003559006648010121110657114610645298452794755442938570676151493759696977921790871681161750746857147762790928079365536692929508476132947458250718037576133208928829669549161844695839759522225749280439702967831227790372984094667084600374616615986891747111607233304004658348363795892180626805597225635754706878957514426688144914124662832371863817084100669403504142706543931744364207405689656212807841126543583753656621433400932379910512220193138548269496417115471256449470076056422501415016827271852201014935014097132737544685061673184598535895943743700452031879572702934902941869543134973115108893960263460898367980464340772022477115398841562148486207448832085592427383854562738432693172408880885164044073495818323520489936769085462171973914779549670069486182643008645568943638684144849075312306832998170514345806861514342802115773934858036288657898806075171353093475326685352637880112921746482463916059818450169612244488322557831630339021000246561882795236746605861965660413544153396565700990695254395481079388659443743446721266812012063698258100454976781353363860092470549920120445642098174468937664158277103944942428825539032778781154483132547654635835690499653086277548007180012159091831676141738966448145942319442397296949834894289983721845023292991206915182583643491105216112496817020122026961346661003337395473068527835954367409955499700523483730651577826591224151876004624354652062979549577642388363065098976409724198575277517016667313245191339900348335274587779795171919679388267994357474562355531340350360135294750822863970433594202062074214420849266837720435518131744470837722354496787012467385411261896261852723637011034034934974794544138357729005794340597441141066211053218568706272678879059931581621510546683408222756368158853323407214672263730623010746837270227269988521111348944126438047162584712277881974389201214222845736881830452024219388150086926014483810601791832109099373166623607524498415641505586756412598370261364584421928538565051787699397723551363602682717139009880769405068633287628363967215058937581174039267633201793526576434039976855262211979701674737382144947169296688992922167696558726094042738733125390458799020887968597221507918704354653225541510080661883167388840434527846906087596061866686540203854484303375604475380879185885725538203270860807880566703799919707418953430584026185479749584297711282904964062951259758384113925804420465391156644962599224425378518973911911484990515765795636506307310400460880191678226856990134662501135743434562446171033079836114134179934244930429584300696357536269812344655536136643926272987055366838495068768290041017210611060048735994660265066305890224576909632746642052137915547771631584991367999331084985679192994801681238439600227026464019085096340529878777887953636847115483108615150441516269200115350371529534194849248882148218201656936841841458258248600042255518358189377761775174710161961863820641543424114961776472550439451713869914639361805841415528737105046471144634279787156751062323075763562182745418541976865546607500746962721430852929410005253113111685924178798327348674985128395498895777399562558979897622440275043256769051014312443572472144761269721437872974340808616309392708343703026957400557523895795080147502318676024223255922556771922933224665094312909778569260345095835167961438598101407695922521501176289763392590429570543020823387702028387027924741259912145551193962230726819944315476100542376791375229506705249356798470045527255052496673053257004911126294353364833945672467897853262684656422035513750585498013504651715830814872385584718405767984362391916215109894701545534974402015255237907264405873010940560371290639949274753705453990242909812307146894986737105891217943434005613594833882284117060128863450364193388413907085724275632706206003816132789824683381916465264957619145131142629871619150765617219577930106921974409300324532425862380813535966440517982728525375083073559679149146704224950976870656619118472243071640421572638941866387062029862924837968524295500307992987175595203353666700690962395600678525935750385863670559207282866314170499064000560150737827401804606218928633198127673163512086750535975769267690389550204182369830028100064108392269962496111184282090421447121465371487623982141197104035068053285292064042189211851090750268989712979813995255614433736190708538351296312949754991015132419759786967860225378956096014290652115609896798005378429081261160253110745960951705647082581364386674810948835127815491852862926658482109124310977469484054657791087299488625473300872517596478145859942413558429954217191334172262493126917342384203357404838106109091890251613942861288398434542039182706532701766633204093186855512729787719401169646366627012072658118717405336844667310677931546025862206152554965123040265054262029487346203467572171902664379724884120094231850699569734362879599090572454546387898826017132488606067275254130467375147098253164637294245615086296544514210173080858854330099278135578227286502656731515771551800540024173226513655711967160393504891417919233129897943678972250216451350642069565604863067503235987781069621062093648875205844031953013782778639638101426901552301471764937210038722053642424789602987000490760568049380879729536855687617824239769255660923611017330762088933040180252293947094193411939042741158956916643319522679709348194079794215797639871841305969466667598062071788752665662305400308600653276970715698367836069937028586117023806853440396219401322856053775350998365505287629940590890589644777083781573271361056423325607946782275997875006537630451431534618588383497595734334394808636877962934530203710181056069206417219033395819247281375056170107389181427833457644089664136272410373368839906192064916278779374352677190987522512748480738422489481269993536703281593741204243101992164616499508406533312539749139662096762685762522851099366186727873124191914334395206956164876520782847800541804157314167485366340522385934041063319261153770099760400938166382102218452524317678408494369764147778694739946427569521736717195235329609988366373043868284295961854688078512302591633918644182308114983033525548396477366496546581018326042723004327704255389717146920553388711321589925052355203064529259235173166920452185732628817472255752134465714292271016266684411933432875724888031157764315765263616803689933384818272486717653098468951918586104947399865798312077350722728159946213482535193758439996258694943884398701111346980623638426265741634957409505519186151678059273222514877021534415978791144758188181431178263462835606455618742430199093739286089418933472068323390625583176762194716036400227449810502777397234381450969792800305441939540305717286149292465004374474944126701051994632016004000324005715524522249367388738270820537609941782805961170883669082457930315478041105615164141071941331553848590432963092051262667404715084669671951159914461661484326571867055214379954668417231914726327822889236088019049144269459265414238478654911992016775685108779633665789280548540317326419857717110382196362405503788361659813491375068483195515955946252097473058937133531106370545315572077827743814185083624497801431673933616893556284555858002009964895752397131457175798750856745930593400783630588763226207411703177085126909509688766194319389670153329738368778078265898662918873929405129911298836242169212743691217977206948490504844947218151972868566679131037869670637876206019538734377222840111829408588934404788804371207462161859937820902836728252573270144233034768813812082880301635520097318148995169229164773831286777390882543536173114781817440374000485457375330585809967415353539306199184064236441057206767081858617853930570699337429262141734594494531567318042167300148044247465784926457676003879166436401043643675533304223284798718522073781076951518973356358500845917788301855328545369201396100447859338471544188492981314462220250535707177134084162450187193595214938934562462814278987687730672400625021265372184918370883255104257492646601594470165053868213038782445645442525983274713656270531650815685256259502412453674747821103711445956617641985722373133011218019037179073119666430138631455515169434055610143138337631332276789065863623806756472940484750377642629758635007583816516738530000383591132323105506417916207248445672777149980974270515665647700454553224980209994341670879648360486885037479667950359843217465510877306751304457039162685994217032282973067797451846671661976434623210046602816432411783480788480111614414666304178255314138912149975555232870894752301517522801373327750483429509675727549442236703089902325594891042589847581111463425896368430029479829237846458454564580822704306213850195912309733937032644751231964573235468924497207566151237001662970790658297623553137788864582997609622182536356583197023364611658065603834268329313641823355716717152421460770260153666560629577975204446223831840504288655787003074190002071606434536160820309740189723759474702939521033553845840193408695051535870113932020473198987174322457528483814969818920496400352684678176168408163114221025596801131711946817415747814011067711244165194918336648452681466556374915049933646371770162741586451681483004528080711667133730791393354639360846106564773301290997022869214415045342003409231314872146419896809397171346091752181509071732693446222959878770091692453805199653117058901537299789338400873123743907779390581896021813796123156216563568376616409714162612525840909751742374466776950988707213442747914866441534003250401203822941731642677373151060287943385452773830690799801359498644892687859512307462450198097979541916107048013404127257250924955296093040369840683860228791531744803257836133831996678710838440555711296581108962087144013595413414760375278983590717921591011140418528868473441007644773349402616090729823179184267469718195665732968935598530905928292207737878203252225130630078567324832644496422467838126110969543650240389295734594345076093838901661140279515590777598539301418998601479886480223035215163558210294564761785125283413763756502142350733808471218919700009633823143199050592314499078431818919968498097839505116892493788080794736328036322373169927207659582371386867395932879096714555457044482101458879083565126668199386862025546875202614284809997058222623956572682027211443493935724937491583152670140539311185913819411063302960016926130862919733094109792390744134194711424326993943511498957142714842091505937090093892320481063414813500742847137513423735793606241789981282843836488579752605613163618520791867241398229365410922410070095082798078632477706854380353176511526297786092620913945475900931226597527439966121501744352572459756847163321691907774643790047342781100403053924068787378190859437030269195039918367314472094841292916972270101389258819684963316542345895401537480701335365651572658576931496732497508186863526252214068211826730243763169931761895690598605559730029876450845408512950273942219142073039318949322864317738293617224359640069495648458869470069282362004463307752198489192077876789980605629452221110464761647175846126319819259508535029156055855711444407186631687996779425692597081007443449278087686274658722166809545902102041479353702965681175706120335455900280950447699618508877924898171464642181695560810470359122171534776268387740755618471250538144835499988501747915088423787200030248497142648269878664410164281382348591447744947014255000956297059569411219363019407904253818227224715884888692170931660546151478221255783942754503422420956145165368262104991142888036730102380367001892972405048413376617881883643049523534787698832729172230052094750907489531743924591883699009585007331329934105592539844902914257355272224543859317138143673271147987277511372639931902876039060111364102527054248294455609519054042540281603497762152989734153538420697279647585280633163519731139467588668162829333764426969786237724829970553592731855266798719169476504744594558755829487952554672980760254764972367639021454032914866141452867888040457847009334816858687234811629010296424179411181092266044096572196171723352408234713782789548080320000713469892697888398468106707568863823289135778166572907633082561928255527897546923234254013720506784942751962772598258561341421102305932078933582934659985277339754128049833385883574197870753882327479124937648362939529022329776963439690501113647459658984161832708127368794581779709748454359402538620363926725700801002775358613997842906925753283855616318899252684275507610332188885098138461421319351589379751096721222460017498630769490323314574099455002567510753231925046052957177224341572885929338041206470358474810399642015683587423638734444363612395096464969422225498978253248724815896629686310080559169506029147288401619308661186479926746907004414242088863209777270733161440026698133368906309005440932597138650577153628726850077526553490863526845143257865208786049477397075773803034841773862543233136840262662310084447470474615281424337938119893530282218702388944690505478706547134905344868103217827973706739541534030191894805349692206617810996253303360816242736281752641315297245498559718032720035470428293081432605620526854901354869781983747587229370391047110146906694751820099533945130743760799019912460170727572442863475969364474120237812053119836494158637862592454581142520190540252665354942287913530492407572397496971454135890871211153934171076760159425254268466197255636064849461638774552898758917661951614476085254485881688553011859850477179666048141769250598131423051552690553894986771418715558309293859278402275784279091230021150822765598343996376856004017054715842267566958478703386171891716589261787055058323544016616304434732734039795575346179156088047259201189863418885585174259105917458506343555005973589531305572436970968046823963018599247339058927504899712655855218478067347488061300586912660842823253003537491864141917566162381820092480838789543154505401506468407334789714458425182881382221792461991720543150559435584675960708906318368774152494198469742484393952679850671464119319513540235181641520839353693853940683972483248054995422816035139718416776862517952795638696408180682986009506801714146218611487148012093481101220789601712807069222871384329296837176403157146938111288926919489819366149890466052260133531634047353670102804944551762924678877449949656220270616794419115744986094359888502195653373014299768877526092011745789171344527092682079548629365023997189275629734551426489738095839267876719179184898734112189389238224683916246665104073039774082297999413761328842707992074628204046851555004116629615289347612711066549677017854194273647879618389481736893915338359390617367639623400945207228740258462028209766875710234386369030316437213965365927148230094894535152924051949919223401412327444502488847194949869202479858546741807394329254505540767859941063884097266194005408917506621952694284473036057856285436469316083642924120099616675725719571249516605369314514078470562496716194571899078164205846871876485416406048137870264455049710381496878802787823020898610718916500553614086707418803622297049891343013441331459199210788536423246798599674355085174835310424143831143444852633304906349570100203068412392510645093218555871207666288149444987262937342313296082809040268516847148022010867138594072766236274531373768592574515243104478484967812771328880914592687156924691714991626450983224267866396048570270945222209858064505282583012858035368029439089229620046187888082262549109201911549789866210843634541748455816369962854043908139099206633466916143693981580961863506561575024534698657795195128748612516195420079783046274819975691482255337137119694148971618918734080126662163410528883330694095360044627695778023876800803817516566853684768810379169462165534130738593704245195521321824159800074036590605539659000957279317265755142758670599236424513645662576281848633233655810469712874084753287842110783104273396455454885359932667868555943961980989011013142166211076176639526115288009274316789669921076908816770136985007374318338369269388331323315899170047228783928206944312965117807550820641141253658560690437493627153621066676149557899001916185869761400216245080287433788906587169488366432794671213962716409564803284925762373162099778141911128099057999451669638149291007997545702448898060415594216791212709817448096503252374406033674260830045054143420983619832170635111579939094384573754004358659207753363681911735700914524490247435535206205596902807863734797687385461332410427736325980139062732554449421723332774689402466447935741254842084229712481294124330263296412926620872678807083904565066807239108475232173189867028408128381406166782779239856872383185629179102600933382478364603393591037546502343256129628405327553873301658811932930720395418599690710448477768804358727216290195012809346178218326535743590763312603413761210494813660680633489059296489130491821047756961578764330470240786161819671153586359525106497469832866390425208629808858967335174823936624847768466144592009502489965001884940101703169303036997468692164158848192350244612728753909036739451677168724537805694909670087968328575456549210691241249178264253837001926533624345487576186511090631494496199881216948844306132908278512647593127765887738357743869860910638616439975503224011241953089568095584898291318323391517385452894120112636427731185857283553473940887361727073620600689352840737452964450796479968673306758569888316130387770912174727950777596255043671373778689456190116126768805599463009292687332241398639990313773396939760791303359598946769780690904212188909542137684877115336820765756899844183669903707401579048428750115987781611935605250972819827567984232030015339107698689232899286738382011359031679439343647659061098966022373113086490536220893030505991617782925607978389553617856108127648738158963348065134778561637525788058123311749355014942263176106273276500779853032955049943635864577809176819226536031331991108419894998292369012911142070787604122967732366360398017526989378994445734052736287941368003074091751971503274817600820354547808838991163645748392584281434212941637647478773502382510570545501588774143415122426910806108995792989692260279323933099438372911597808886842653214776824432147735713032491236913335125495980651267613341095615089829414559029782556684349014499949704036825367833881573936573010980357787488870283141054591976131429424861834767368173953740803615513702224647774260997291415093924343769378277191507155395013833254649301359078940050365275489849385369301873695959336524305050777519162910799066270810430702842710394940952322396612166325519408807290141597166970629715326488131456639751157596392054124595038993067690976571427029358908400148056937098438475293512493057955582124035613474661650208652056414846420195735779752871040425300738460070177655582092702831292733034159790564210507547859093592603198918913415960570264473413625486758566786669884450223860053127397271333888086929620525574553450617204257251392454236279950314310556540357264438240338363398202671116937916491634774660079930038472196526369282334834231611549347287512023774166501781548146586588215504457867838707549243247536251247420484846496929818836623561289495145006953652118989517711848372919296634272661577106730064549366008759391561770405236735511219489866065907874016632896556066041518647077215392088731342311448284979848922797813628887779394779426221626631654005071630145793344891209059618979119774536853128124517423260676880725587220265857174502434653849431962043842866921379943490968994612378706433500042875028968686255895890112961788400199810071287365550174857098353178504866338942626127863828912059799307342083630209841775824444432429296259586146406320205834539487223303078428662486469153970368259726489344308806674015711665350723378380284584029261736698739072892126492953855410248256606734386417847487720852090971225591666717298687210101635134145209542821406719078578433839152967995300129750629877957804894307422367783323327847382320644502528079184621186613375247171035538134013650576690033449954713369027480816674510085881322042932646537758744729904164700516408350929350085443687951040756987113691238506180186968572841511624488289322627993927084391160477375099610257735233278392607228251037804007795896506002860458883264084865210692068791885087833618003375017724642312413793591974857907079730496496296161385460348530070611565356125189246172248823311168459899210277400595397342000326266764589083103537401205731413784224145501633507321418219262937188491958566265571597214224590329520802142163016010308015937413642562258980755544203344771289711977817190349398674369325215330715959395371886287475558237009944793549520338966138077043800701931984072151029931945610123919592442981268575709702712448296686591054016385207810767859426000021851734921724172357686856446431512604891968650595142022406305887990140452815353872616043817230607685538118483754372540936494949592247406073242662475860787374572993990439556928386891245223885054477037113799018839347808045304184280380291139193926935289292764045088083656803895285775027479315346699992797951045530772526987808260997677259797657697234992136017347744580742084263933461232748475225546359099424064285418921427887584462758122595415951454688111865049865173550215185315823928062329939324578043181676143873531358376337496082873260857689730896774621806459330554771935737726154023183092357672575667684598597078700662088755515261353661158880801403487886004160592300520733432931751889736788577064322401545819834547301149197738559345557034426824039942415074512206121518333635543409204717843227393472942161801433004306157875362750770370106306594839770566391026308389477046127711627162571443102612256826595628603942396380409979140742450893117294496205463863284180831458863182220398948575961329578102973855946020278679736748923251577468173634745383900148671789551678233962427743321612393283972723035781618454357788452103104763533193037939463577697041574973931869072836766795797618284322459482323943639791324606062272197394028920418085274373148995431730346118118832671370631317927983307344456155648065388134461852033632870132944488682821041861021073719396223613111899493291477030598946365945642825472181931326433428012406384599577126532232996592422758851342819135033655443074942025671886719147474321459386353341216366550366942604539274838315647070562385707146152323022442109708037585408713729280244318175940998175730110503741226669922454309974312196584733354379221197131028843831723487249655930248246207678001242482938113139188232038347039033970985586353009362411138893109333854457183549401462728218313259248248408502615191958267915251436911946996493301601449146306607355362041866450716980754529257333326877410582129142490125363329717038201077410760009412021931304253503150578702920775287551528866962296801341362340972038725531297070080619085629262093089293768222376445348386056507158297029298880365410378987327504996819019030846084304082236294468580669832521142935646151983659310825274418905426714659129572062600535374652451681251552833762335461405935494210054231572977391974653687482151239321471030060177484180922674080794333301338731971890469700328695409179462728986744293201085138560974138261929469911824063095562214610269113496368073691855222338281346558855735223521379442146917118171146463818987754253307396363623963916732215341713877751630537941970272872667597600399597955682446139909750905094505944640368024584373577310601214272649726869005213854945702529264317971853416073984943669449717992693151983542598711317833622451070394189847098429243395315476344294848163326845773743399369288331921732238620632159625656488881761394557974779146585833922899871810968213698983680111721339275614887417444173672648635444579300559074065476518169777910644675097251248307908198007096512956354628282282048831177065874530156131769864694423861250533257939761412187610697316615692563484011440576673113855596546121520880270720226564028842411535543195705682716552680565074528395002384199956905401435477952742064169867568565554574018168029438792880144363648571570135978417201013215081816005193824592522363934636246564879905093940740205119342298498497349054592691795812532467367304820550372697408634199331796451510892439500965298398938106555340059646106870983037522984701833702664473292452753288231237197688018582253091706484146283992235282684208074249623998705466500391072726943168710909765098620705998592422750848083789357433306858420523824973253214246422027415059700669127452474801276049051821418638891206986190095002050996244626972159285854898322452965194510106173781503373472162051140576053872286345287685075028843329901395189913094381199274907311718674913696043242431822791253771811904952504779397097433314727521133932061284409036489449649888933325730341038820896118081284738725557601955486878900703505601840729825005007350796736073565739309028030433651389278340788538608168474063739933946402160154676404733859681692732928679835416003435631451098606984692695694344855773953663446452812310756631273468266103837547150749814369478359648614713399318188974449392788377128785612991409333556115675049762857955395694683821748149941700288699110038449854745210591563038229156906387465043836435804817876680212116799439363898651732938884466757887639809188812121456513150965807225989585405244516059057555530214814651531622124167725776007959170563887322591719385779789928428011703057115910998028878098609315333497151856263326596725245137353021166943894995851846939581716513903076507579780125315210982033500410251507906407701906159444906397275630190005444403887287122125764605482169007748322594463943556070711614023394375670129181104602181166853875600180665390080106121980684651055214575664727515120517928902445865157839820942208743073297410452080280633135632511858615835607983394668333151718749658081493263194089801439978344249696697424534856985071635135593145009771237282266548920003201720941943804158433611373364853764658888578837164190024151031877396293101152955358306997766538463628127095354949970070211173071248083101477763634610027291981051136151808114309888786335911131130539577123486851374893306480080525764127386366605032580454117811455102278674910289131138170704111897151909152423378634666438250842209735575824880469903897470106800144984956911979792957922814661115677307147039897271100699554133314185879550187564401171430253643963314238211915314637517283242870445454635550021645336438253431881075004784458589539736799203146055672193011277639521313288146945945108717124812202096759599377793612824121393523740571870786545946022750070171636644594139124344937469607277620761839460817304022130748614828503128498124402779839917405693770505524031123647395807599052232265418647308126204916701657703950744827739567183084687050151471869943216391130535496684397334142530715550633274338998691685574311621996501172060583142340652351449593276575921165871758148203175924226893820418390522127631683189105376504254360480988545255549706288794993189783122029639542613245219321914990975829005157366918311786162320441922220807899398972839556557537393842057071447331621524282124336384096805779132738688036800213083277352077869853884291382079362146397966983437720977679886365859763956623449121263222708989528981401515755191729005220513336342980693003086531342654127092016158584693522896085777206578896347984967916900241470704995752535634305583472892884056140522785144171688801199316675816718259928748248523116161378704762352674106848359902444422249464600555218296994799969171068500092941057816747281037076609450108180422874182827502520632150604189933094071130309620306532629517852540585342046020543762008798978933521268619139093404480317211390939927260268957661601285840192462507403302906170367606967504674238762004741728802752600116792658143150484096374097504839409845368400443370707529987055384766111720972566662493290202190733640311330487602460024198712541173325288963107009466013874904852719342679165525122352218448743304331913367690170814508431266792644656162738833061952752165923192866378614429007517270972601182046960107160680673899137427879749229413189705337704253291952972583445509080451180160492273833219455966929105022536087829286138204657943920522367204239688202943588211951194162782873535485767957584186814421744263359865140808013536512347988543195482381796300136295707297247710193793256730835103821776394641770403401487233661684731460436361384091462482651507750367377833598743558659459866221950558076630164762389202268191578591027752144737057594499451540314648417018641018453988474698242470481827099667736916158292335946674642985574338652207047522155553961547425471847949366385963192017720418755874033071018527490127101047353236699620836874349983715092851696266655357786025572081076744741758453203900877386436690798609108023508825797004587256031475908643762376466464237985935716426550803963813982400337683205996323064632048064038234602685133613142079374018247623281996325605472701055371308868213545929790730848668479924930747012595908284914081934879843891972838208503261969039308445319124427990786450247870766771623356622900021479617937064043968678967052263762654679752162172956726406415770845670212663608855212616294120102681421612372019488597198161983684588409945098857590434817974916200331721298568477387196850669324577227865085554158185181130990792578667014013853312966498573287238970881714726446714439184626655879592441346934390619729171168821668636289995528037282859887299922408643266795261121131379584942834867698139359879511271928250034276081617930693957596076047880791690460390808115226991809892619634842652828187544865325553908004757445763136769614298986907743638030007423911650740403425002245207934384160047276560252585017063338817227167811227202864907818761084537038420446809525075535487764063701721560016001103558245605226139336606473921872523794687064727860353248318802012081112236512826713145910891631595845406644352614760398547328476801124278995619416358059090712115237665309946616214879723716556274928590051588291236993238299618842133014685585564766186293439567866872294728597715800775683034221867357481722167641448349283315009037104042990868699427593889196099122081636846421906393677063612509270380985650990442574981496265196542257370011761342597374605832213854527398240053942828597418589001342885638815648277033610566163665754352575070194357913657490186519195915887298613050891707607260055789517234971479980400437858162594117145703865855049286235581539434472335997846450149519493459874707316993388705650041317184688602209117287723139875764496531517957583515629822721719566326927347985642580387419575977953237078012602071569037213669667480791883540938264735514187433119577937165032266870183769317993782811757292816243460512023149077792857378334853091447983786381470062539273811212620780987250291828153396781857423675126585795269991412813781196956136985676938412691580496414295220100088029175774903364195937542324916504735113396731495220912974209252394689951793569458369408617657871046876299593307136084498031855761249396587305283324747237613925531978669462104828158300580230273184026532777057601475026556510513863725333820913848370885659743417105892053549037872207814646401123069263456576283161226690653949714045516764861997317419145206157492881375491110484485861393165469635760968649703304159957841045808897145496624645485161494405593175278729772020779493795564602804573445243082111881904009012894832982200266349056315814329118602418586867609778092851657615374177531957542589506273467277997636166193727615388738897146050789428524256070711297881532843402324778492376770600513569918710564629347836108932301658259138398035717396346288748057381577543951334427692812187977416503888904736040016923491547372368495608924296517671341198297143435093972741776181881212188245282684393025701107489114308492774818976751876777681665929349707629173328821781289319738475496526901735807724036821490099297765616902414356247652831940700457735824334662980984711169629938870022804038689119456930513554104368483983130571547352220006574244529931476592013646808723784477727857499908073593678865392544175589636591448754739544953458187701615329354225521066639365212928175460524684120228897877988394375256049852447103425429888071041312443780644709335117228583648031282166976323310462661492339113202203363040543729678880192741872159545009608108273828078344500756005051173636998486812430473557037957879238861352717627665204575735335020082457647641761043453677521638614653213765755273605061330927916989881628895489812802757392312493246341132233440705533172281854462203645460416509518603547946683356176390155273898166545896388142269573716489299122404957764255871233658888625564591278751329497908778190528448181340089490261081109149049960636566864011470638428066588412445713797586193197158541138372028029741794835937629623993433714270841695253956109534438944305956511555919428480199329771781211931459289036694503531540150181299934875646986386478838158144966929522094458701734886089467312143416809994415118878374764411202360095717951857341683184366656843257467156988999310642760684725206056453703656114040277319513689452544387460562183184448287740175986207085083350507633856077190816144880946070005394005345652851035284395108965030643846848880992311878519497600994456359898054890370471440676872165262942243657805903878055158190848505404282443123854713249142337594928467439127623223622501344117527524410600539160556849418455736060374040168482513389800886030714134427414173534365075034641184376803785813395743023915815004773210260232957919465140810067044730691307959933735066714149970568760487609213506147451402511773755789551961178216184048403791422026993061479569108302730324533406080451833879096724663215106312151014881245989116575624632097629421723171564976679898130398992404035391732545101374660186542659170564401422749062243034160839229785413389335793779839604608945759190752034355160060178864525050815142993556741264872047528134256127146365044983707246328003264010571854102234320138177128016575314239988473487823003395813034623792442246746095040773759631200244651131514398585668309704643877093043159978031068348149454914683437714188094381168685890752059583317627355456792922440640207845744792215780395278571040385443607218744662221959122091368241611709184573064533074758490851781656210695914325454450146923695166115221703565799167425856774500089019442180556965927763144402633087703948229792773922638835758026335015225178759399015256698795172735517615976942853455647632266087214658535327360872718063345312617414606680064133935802374744187318829823293096840451786696479040401372762789493080067965909631743515031509836841017797431972145403784373906350257121439471743991675368762994738340478501099254269365462115414168209192030079839778822946531923696877377432106806325478256665924647870307163273012602031859968776028076052523965363367311857362473416412379192344976699577062188386330999124887970976918424953276275040460135427514244484353984701468121462862058064088070205013011239333324252434480275906010035660630163050032394952671807548593716152350643013509228250828077490992575956858619190040353402573043402926736585477534333506128960998665695206988850392708944655666569216297792772980437758970318241663635260647483694143088112267870599935725874291103839135870004532502522937252148675807078604687006556269288566414805598987170547230146688050566476008937458753647993822447022243118182179809632856395840528937440719767415924820521366102211741504541927125453761065645734402454426101921570362176363450597279123342335123715985219861779803154130419431266256253867636916668672754328942113747674259847237839790710869955374297321149880290847330617608343310521636776106471719868447652327399282664879232948449627548731802175168421759295642833804616395484713031079504879631035644911008816892247859160130136209455894660158024451731907824754457476847673279117273835942814488051257567434367268195613177436404313308913339155020735164275332735399972271703407870306306628937413976728113568606926581726944444542047543003034261503283180305327339876894538367961679977852513591390915915032091104750430704726159061922663446867887468621380629741820482655028948854446629231051886833000995346140327297265728134513363796120407729330087506353798118806275723787128135457317689607761113153036732330407690281585630942687051855858694952929149725480103939907011098605451790014586182163974964553531641738288642671129225644301875217303682916204936191829687876518697623768110197602712873590313336590383667493584637105024025309554251401554691884020680709760845724220097185577855255946313107526415322595367103568758233765991194891075000765636746865344866054567566053116614701218209418925522943237114221913727583690638876110879449631223971753283624023598567120193789779077041422253364044319918718082348047472235903243176160164792190133565756327535289518086546023587349385151271503293933875819271171721292062675834507327492979114242241388970601745881690380763636446523099693838026608725739154943865465650833758889627811151196266047253003922491147956549942119103381925540097105735344894421590530097573327785737158901838780309975652571297249972070912272641171730658388245204109846059297212797437350887920407499607244873637576812643449266872236063604482862487552313367317009064777300906617127561850880043367576014828719232316918603225197116652548474999693899211102627985189750361190907522426817038666477293294413857517913407735354776019068137063913274393739727428502246029559822058950526288635850179608677441751758970813711452803539887650116278206411509480041233202764872903241963439235588599870590139811364289047624556490829060585426196224180742395161905268627802156705346754429614245565247227706639221482085303586127180723056674784460502652466376714375756552134515061521260866972892429115715759131384039806778432310501323924178738437750979509297441327875963557415621698699362108419601453930358159380123546921035187391189572749719287319640540804564086449602060212260270451024624345579260523633022745906587429018212316085032861419816320956220869887568134682618132253017404980634369266530237446410213547682846089685990043688175538096577742545595428918583365455531902689486484625700132581236888067241267666968190160541130154630137137425921711133251112501682611472311510178717725306194199575155038845944578834647132889013538873183398209206339202686574687592098368572170290662324689563317089346749645221417964626687721302418310124306512327603194729741342688977546762884981918919766754292218411973797998066393249989344854966145763722058987662582425663978593101126401913079161561594794766651017875979024151394940003092143593754449721567838263847836340922522693462995463159432807534892440872047183260173043631932192669680843205825184287307706979034881306448577028129209662885618137000483977321951429468325717426001568991023785616321247836091200078782374266451380788513477418800565501684614245409792800902688280730415572441586560879116727105847679374096609430271101712483204472622567240651456989281339719467765386751542325834508372268914269455103678663775471365637111118987070841207232481843528833032417830068636566585036041588194306393918852100023779968859755324371334205005695674000355303530585149472266893132577523110076462528409468358231930136064816947084445352011150747988952705532300379435700077134690916196837959477076868734159786601980239923057391984274028611293282791381323075726440943135588458518179096322712796442580974973406983160752967428676998127426679685988093193343272167936981140358291286145752339749958191780613240370062515995616013483365569654841833188335450166227480147233894818549343841498751014796054804593118483201732749211370035896919461602757891778847678964845752846644779758520696238009280189408265350331174563781265064356152112248940431850870027107426088524580545028723430475545242535800171198251314148259991391878403203270138221357530664741382450274821828651029131052241179581619779798550688255439223697587369501296924449656702322109842117786532973546244176243711635477471470874806348571626150141956731014169434629710263839799110551636621628428858296098763979206009250851160427557681543316335707092116840256047529870125729468014449876496786130971574621689347010999975439534577968230338918222339676580037911535645358465880727318101366317223317444467814786587118225349923750584837674548397332660085547506141906368121352489070166205686209410302232682414341482398628223531496450666516942577195784269092565601851230222170265599944444462469922540624078758715953775331261526716171587576947973307606581871158143001230961304820140371025854355856767699043288822520638746309339079171911001296091915887158117808277367215460792016242837319816389485438327472173629234469351700774846527810096394149889016113671786610392900641403926745138147382368172770748813963302808142343678711457136941176316092874432423885114888736620387045425494473099744447176774252700525831601528482818688041964667828970868286754130435445031717236333822897960914225811208458401500073241030575645766415497328855816588735744096484640238843814004118874257260462539522165361798830141978432433511316778316700488747076048011852974845169192013316901573474102228156287450381289656837723635678798855679478229690381384847807090920416273760727488244922076169866562242980393202029508930367224349146045098258389195718179050680457465011172581340993307027262780402174910045140401340534225235987606317023224277565378211486018144104602712120675277397306885665877642907228750963648549949727284840648050383951970547987978900280690674325335165606242411642944944203066934877491618344445039418487609932384887181530388723343279097748745544306015157436319664113706155018841953037196504040530430275235367918246019392309372464601973326626205566719175931977982214444896948665851404036968094026270464986787454711009020425975594165974912956037030960962436868499484185503077830002052700101933736215706362039070084009069027904656748858788665937672233327820341232086681859712283121954845533326490997773113517318665660057190530893197363519494939406814104959495895194555587213382637932345988501746244561823386747178671408997869037592299480178595349875255966488107732970054586498927452507102449311313315741759068157119475736899217739874785970608385237880657362307868736929150852770273179114224938809234612914648592230829091791755533660053344425748084019698356757562678934636294373596108289388935255161677012413835041605526383792044383436927606625378951939834914421181801013987222917425134789208216151842648800504953709211135136397570107932724446985961659483032205792145987314590703511643425098572103568666066387897432450057840181070204469053858302119087879292191158435627970271905561053348446255244128112559870143049889469953842355047293839458787965691352966178220413497086195373185659454547822147693729175476099480100417599601344542191325931191351988103200537716039173093789020909963783435293534477870735857653119670277259664087654421984520942881417903179868209818192828298866121151632539863100177088448639679374655441858924826689096524920392782944039656654324216564277380277706300118717713496049718493616500233904203182663844508652800053992420194434918192266437341004549247171150554563037253298955381736132831253524307374588393611808385822936067065707361057552419381790481618986263936970043338616131807083958372221890827211608304749088787622609522446157346306268580632409675853803191597915239040240786420485063885965228464265895665643166810080824006118647134829729421652640724145966536257010216623132629917917240042352374643988510467975136769535735922442655608317923249648362025847224187878605183954660797830893901493006335962938795745179582571344262218329855925428168804994679244582787538954928640051219651682879571835614540745637104325341567822364688241195782019101719093945566700024465067741185273610910331463998393919167425754417970336212660840687477626959545057907643850891581548458053856496975074245887463162751448665681730593936584652038393622265968819728890913881571659677386969046058485403447557408286499771270570993984348036705396816483358535624471790959926491836889357411678854683688565713096117830027106077407600480350162778465856493006338230212049331248673349766662808564494888248152732834689787675331565306555629100325997022879256070297780430751140706390292019774897467867200879672903731981674731562627111341726572414567721383289812857505088963214845182954579144707394916827815158077994107517746845189294301133314864350292757012151189219158907304886466554019235891913097329988055563599071163030899287793787460427256960088783224384169641431144542613021721063824046590969559723218408087755017019094811713425375165467751718817216765500699387535242923483513668401602445088466535854250820464257259814964263356582607481490904304960548211613475602707154580695327494922424863043165001056797525267407424431491180952231053850207756823150275522455142977998799008233880919629715270295737304169010293836978709563536259615800538043909455888780776833441883183807155401846205542257861513860833193153616752342964343719552664123242790767796772135814939121274575355547973753062277093686867619746951356148536084784182049181266714443751916451693145316927883725741430175800986294039549667652806298332338923444959429282047593154810497030643689499035933135342063447546297749365880624955043506364916387650897792860688844316068043917891984044726362315181934534503216221509122257446270865563300226894398046865668311961057555809321541803550885430792961057245075125999750965148709087554330738238112804114988196385103115850311386926525900400353865205112050194289059860987401606771033073591354322373145312128397236572146179932097697807986526165211602295577729624143572850326701463536944357883608638734655092125486164381722522744302783138595059223570371164738236742825443675518433061300197172791139775651682682173517357235758736596098929030835154413021016778927899665460720704774294998044865725911216008038089246024600100533721283169659826237074499477648102596695578607790569113462804982166485246347149921949802559205309780972267545433700908506089525249716352942767998145615199595532385811989626429351548643413411440394025002949038424421763837611844424907932985982837462424435335296893366030565668288527358165938744743382040591006742525374140947850379374073785118232702526498834285251300674091576347025446509625970926461238245528799957254145331028296533385121599564227623126302437003875327276866555796925063027472815652672704637854294507316805044945226750947399867928909820118440403247211388916179091349113216242467354262285678730982573301656266245967935156602004951109430205256686811657457994339413121515142552304947023856413563200390776117309212891745328359414840686715383360095991351805212746101122687825418374832390500035069219426035107723087959606560896784524574485013997416989339760809728501157010023961579424596847279600836025481692830334750153848888947434221534136217297418755072383426055100621826533617682711234497857959448814656074213996104503995464769776110145757687862501714751863221323163105035563510901286458733257538112847983249459901686110913479636773185252836248648976618605777497450153404568293153255508610981345617591088403758235443588545421977509922010760715375883620213433595284332892796159096961945248766669090236892375511324002098991149424252680847313323124814542550821851640064713626927796385863929265203209628049532700856606534130919956884025732326903514168853848045831341093897658756368692284352757903439016891416978879262002110092806478372634230201403857721894352176961298317567847475298793358695576319594423686957154253988278260062597472076450464413658522374547341101160435700483332332978804853532001647821873171454590787253612427976485950361331572721559522731117386170755992511383544899666621883644400372288201256482366994261871109844681512908830237990612267091854716517818078810148335126250090339230838212422066374792181465846052991743033280233064419694306555655618453476395006904171152862582425148709525725842746297305821266816179210912175954541065191044304023533525888878362721034952408261328747642363154214402920259288409350598882211702766838501653531019063266086688845159258750529243745238248785881416138808765283309949221263104188875271641812425405431716036213620708444849269261936144335484215006517581358877072110278665097637931856032297882044248702226130792403539912839222541746901688267798209388833932515139494506076924826384053531893363519237414886851138448381901336131792417314885820086607836068990105456447677482981616514382847792627212799153985762431340664461378508935360075825486736395027136004016748347537856572283286885546439172350156434623305704075423954812484204930390323363615727830292165601831570637189650941656426779056555193015384717719506107781686184671011472723529133167311753452727794908557198161119887798585839880093532064568076861325619505531164830225890424622168484352107242532600813264054044722803536545976293861507240145496961511471750487645011169103863639138256038083855962400318801935524717633458301285090443277147407204416631165096776051980660356898210576988329888991505286424620798920700642487645294121339069644985990023694650283709673020120197026302813520031638578990010544275940814394859528496812514755488581441908631560481020583753029532158933671427238505815529153186794899266082052195331364040991080025323390230076093136895301883270427028164893840791133513650370743857430290619752222421403407962729161575739901621302582795723426813332812243471381566626542997249757582595071167995561456396967931275258076641180290777959279355979070456636446555973507324687576745852781914135444779917416443174319805295495288461212697652901779365868344781646626899247060585633095385459082291066693902980699453547104080791167811099096742149973186446162184213249262593685443817683141877383935312932278900349097172085980191457887221845524071911685234850292634194612412397399991204022182635853209903330841018369162740430701467667082920913455399314243133567692205174869345581712694683377606646611686831799764279055154150705091046974508359516474061236031634399628038744723892408076369179999710739955467013560325639186500616357064830970411357855244304924820272482552203584213418527566560952144578949781077964131311588139396608596572078084452714449355961942118603954773696131054524092898751011842050483894960492774980665365592077950081809956516940785967899975488895056963007769158263366881901301680023782895581118782584994543909060582768566257797191343269792471285251170155958030471650490147235734735815789781669006144150006479178808434517853643320862352077196970304387781931798817235668191739908736027611273930579931534663505935122388890274424755382209038151458678565953643471270126298515309655649897758630287310338691591119812207983971118449698107621353374031849867453799250365664595314134531722724565897837978082460186871657982435262425354125577404518833638587940880701299918140717202844585128999848646161407195175870659225463562005851289895223474296693130786154797090477516946751918429633173363065193019984432228894356204389836924921841199334125928328733436811013233054478113907176542929190061318882773631032422525520055273747973357256290049059699947474924391085261641221709034888415024499605375092730923204506659997261610144315988268773942257706725420334529721235137661676553810649427758891686631995620793574015187696096635611484934242857089766718070076770858095453093663606555490322981187272806534066063829296334309952824310359744018679831659849041257286047135593500101127860863904190919065936029910510299275608596726680332171924916068755657946603179405292129817904881508720972665134386222281863278451907437094783815706893343950223536817561219258286434810094325806191313849761763535527369419075888452905411008993327780223754189167266240041278492204527620792050768185912226429957106623728281465942161243248760292828483257973178317745934040052896955568960798556540376465352651939051539228093452786345641123785336122739540947809285307367943490143000467329412559244250262845589557814561974024025364761543297504403713993064586291543288203313953295419203096414289963849646055682524878046487998639985744046761526591841962903166581793763047994451736281082089212422990940395606791150757755155121388307215656771114468416707890352581481047410372712764294163175526687825227278043788949077641099568248132687041996869416902374994332420120858047305402165079811182878777186478557800380737263872690219123515303404544170272898928199008481833584529225814866752459880460421224777397837243792547253102712842096209933901055414049345675766074540769862337576877977620820093984981600649706814788559930074974289960873212480681697685716129178534404023862097719088856722825735229158288908529235462895829140879397982238860646541708403643746746793191670613549806650431535399326609443615108511325238121004494093571286165705186831123477976271432859627998445931977275486548018772934679265389091014289677276117078650071027516282135026277143117697340446575362900278154843192637051181232359666749325751391202701326114812284725594439796881660982409390471085808011982578718784287222890711234840351686259006839620208185268086246712511055728264561700365329249091749091971179303539311589257435999930907906015453052571630939807975936784960029311415436073112621438344107400726916911101055708974611934860313282420658685252609372926148963141001031275712856034344946842388749793547509562455348464900973605845003874699212055218973492371525533516863223987093227730093704528254672718779414733113400587904661972510493560612201452101026016319401922686918576199219431199942154288192122430551277054911979842996303455014845073667994587009240480766870452284048545447622262511069659637931996260802167393689152961773044327351314831710138995937741234208176669846254750535297171682489557225353632510040352471321075653941689956160766067712522823672340583230989533617399913393477133699902759257453779268475556913392579923702681801808678140878199979401792953374439311839980405122315318066141653101431706670860386615755220416820831848781234061162813060052115959661824044364786519529060930818458288369110429711671887215469411242676283738144083925089637816853960566042344638543815801661536380162449183217275954549114933914154700510314205483119049971775757773863531477606212587469482366305475067893433883701540802031218891564046922093903733480067979744929624758791008542504872567458489731602297769752038761751538122682165792441891723286976446590696460496164744722920483577932081439062026002348643083188257577197346039978079918180899775549323230578357022029241843337029682579426395204016674481138930924876077946600550377853801165256413120910411899748949860058603949283338725407968318163929144093642828161277309923705941251098923130395236912825355187619252450365229512706011252772035576582935164782323860914145968806398241560134035859900032577717298304874592463213002184743957099833900364622019193767319694525598861085045324732056920078201893896951083358464016469785592662495083555537349604154414066939773836045539667347074538274142303500440411478027536024562121002232919656957129019760433989542792821005600787685420609022202969593912369333491377720628153745597120300702560631337820456797127946194309725026139863094337152213039416946084694061343700469802281081102121527901730234812316546705812107854519823817234729700224590238252693562935541989705080350046284637695164789461100159537827908482302646756430008669425043747133111800342239249393490168474788104469908134718875115076864797549254497624670483015934460321740368968196266904667831890636464704563094165112341326437281392562611367561918429532874154723327922577173948361709163912642074724526399683827177142156086598811791281527876235547196913682828030249700426526664607755587883874232296830554238651416291583900658667344501337456496701201002519587916439048574576109666547339402698707610785420707185882558097249793626381043759592525747986240095189668238358592038960396955065976347222757655448232752488374383010067344714912137215636081064939881472904328969012836323921717613404397241499227323486657622681761098898678481905757415005587143370949827958690190403265771129527483310981480999426600426562015410283242118734683740042496250098077060335589651146329330193470944048129295092606251882937226150246159198008090550009983886214380162652799763574501443461434777413372568495634514183456973808696640484898540162014042429052122358539866263079547658652311256869529315755668287436332556773786620760284203819353365637067040300385444330164873495125809054995513847908852633007412143652242370452462072833355104423460403041944197400328223858905833284659947369272992857403181593735045903317623930206803917201414091434319688860228136690209509795139463420641760367676798828490121056417778333906945484175250847044424300637265036117370956618275956186156438727792776272766551832777972515884822657516055615222098354569344579239722974956823262874240830948209526072464763951476499122140713263064250930919639377858371477289936110360674545285747032520940922139707219125904194422975413186554835406529325599920187642091908202100206986793272830344664100223138234173417897291949240237231692788005105639907423383271732395785265649798058311945213038631524237687828775963346359796618178590077307589285379435078227150642162712115261717969869776219336162411406435524379712083173921177210733350291845357112174719917906394394667443909574913997000393379928702201535169906640231914778790946698308606430630126855312119730607630488222146742139288962274135042595181506348898763241475662068168656464936217314853947690375591548881864651826677962026553920562726640517037926831143264370717515237308582757935333343244197562458983356602995064464010970953810724003220100549374689645169957634612009620171348438162670851841633225483309100461271522320355200486547050497535179428064497094202662111472858172758519731253569200917024034421306532383025229686546994921320387588339158447910102061833438281538652358944293607379087265388213383480225622622384463646447925445833735177769931754498656161498721445444785675912350381246604800751668404399406218723942250479388910855419645216788748208278878172452936079944126899222748438936203967690152342907053017682808995296710112867637831535633778097425557610391290155929292408311214061412744996859936819112645481811583354727975183124874846966154696565560181623120508926005436776944611781803093701068759831127028164557709814930110991261206244365650206516853589808068934457772923858691911069749784687334340848901383003618074481938798028753679334188560531320726068938872283252955040584499541438863773726487847576297129412015572954690585391903848146082011742670852328018367152276348869291841838905803756229688468816422593829841452997532288951944399054445908138309740891385973092073907695301494214104565124027609415398493898710675802152788374588755270648412823353286957717787871463403885826674008046158404765018834207202715529554114601881066646386646077684891723462463937934803755317214990286540691833968523747552663506751312439282513334366302855033575547729748369338169842588912556770789435188058393411972395365816786678700588487759865849016327658534241562644733902257307810204080776682918212486554081856279802924942041978626959844980151672976942077248382636683077522650302955563306196190171823030352159561014141702523605837392776447687581267698775419490084095906454102493649724613329673355126963913123110228955197159295184131858175495009704447947363554258659901022964432186666485833100881297680764258052208886057980353906495163420934949958939070586145768728952350017750101479613367383045815418521579522814235204021217648764261059105979950756020216280770107635437501079419119405113614559198680367300882740322409282451241924064569776887580007435524970077409685074185354719407560647249310697116951571657405290089981332186042107724146225868375351519334105222111840899664930498036116360672376788404413736775510302388281081972252906492301470749568023961073896479768084252845590408458533521215508017178288001116992411565788705881902732820778767477355521459424907677449188037313994053935428262270837776136576355352153410532801184504834741380583056221050788060116396588163598778865662736788517817832316180270837689186044827757542482523100121152217282678046663032096258566774320062592976339309700062613253624474330400195691131500625416730179258827604412521521599732722966063440395754588799757805671295610226944044719408144900931521797588955590864471108922364050283765309971683537843332953982355071747170347363925256657519935107627582875610315215863043918469661096779019946259979343140536081347527280111410269294141008065579453674888671701836288052557567017994126757221708712918578871953967460476048965452950646842460990014172807137472585012454791585148662366358158491029174626521282669434556355153015865191313243495602515528312108170976944720646729329489901901602316552124809562170291060770450849195497973252086637845772382673932514093102266394507195223299461316260844298899273249047366694529893297461084333354498148417500489721276162452084442491436576899519984983293607262550647208194628606656632113742311139666557399361255590870099379988502047600856924609620669274740634793687070888299151956922105993889527994191306695260002961980838580362142107554821736521839688319880376596000759987319372456841954569242804917033808895393954173942426379477366510564551443558262899316021259357342428437883526080821177371641065682220427053011183639830770802845934573982580473219053549373727570865325929893684738442188547744329193758950682342551543119982775117141774805238090407310948553869029982442035420854330900421532537274489307579730199312017599235458926820203080575270263758862449993956405344136526566650679099833182874662544176564702915582556791342977372276178155824111964695410822585687933949672075972095631507073790791316668731365982687894035695192910455474073755636198812499103760981532070700545224963359110551655495597262692891596146629140548085521767187785006824608775330600307216186277536243705935581632036566129493348248796727816357983693625978858656654142338933646485729384320096106651512507849506472005802767454271240973521552198271456184646489104593202019199394706438645656355856887934860466143041792134641551450303034407656589446765274714086855267020097335066514728800516435837252231349959625707892515144027198700608693474986658219711228752893870321143847374795920862773923406179549171844939954525988802610341973570593383505763930360570205014152621772236360854976417908656155758073530486387193943684624667109290714080977736255961361965174862865507424697556762963154766281506033544746122027198013572139264502300844315595720793834786500124663454259691285958801437924369971133122566176830105775187105787759240925134016514020931337471741412198492969460216970517793915797050305793772399906932457363592555977877590712914764736673969814634226973734343418605503428129009402935514675415400198961051232768432804796349711987421352863717165971820765718797129721223957633664213779833293689273624993056284629163323694618294391064120707108358976646468961818241655443740018607631183676910115965619096659029184788151203379486579782576432372069641028974185341089337591735468336588331499614551550256493733821834189782226317073852231984621878217986038916151219256980623110914585034742729474014474762959513324428710860909258561294325505252581402559243373633646009875202952821848002989481723994911730285219292708254412872135978166941000275585342914078299420238015395452871537881006135772588634308450471312734875898233011481029991666379876236901001534027042386186049464074972260403466944495267649763555561311669366344475008188590182542772778334562250691371261603114233798022380035969452342865862944775088091769459131330129830795445705342529504369219169746480118807476835494157856159511931692897236919347729668367963504925886540952797495763531809650754809010221673746028152997368950151632150267811585227296455259658733839816876928629897792166146099217929624318591448557098801704442993189251842667483500782158896935369931722857854058840515949321933087816414222758980839837793823951714344571550864020521076201433736596917247066326620989055247649624540855188937602565346147834726186472136885811988142527136192977913901156251891966629294634618108498929105056904286087633222294825359973214857890479346309591651412695160305476730560314349747165728740640411250595723562027324139373576791298269578934317180347342721530102917936665532267178982775819645964371839048482524359793463849146202987559500770804499571385554936571501490713702221697580289983913610066854502864373845415151963990115149297472975786264421204592564442201173324176639857601598778500407326085076577027492839720729077719709405054291768049306142286420506336423967119239133870103265687543841763736096474425488792528689925486830908473896147611397252349620800562906954461199044428613447442028664777129735164704384972199157290201209276590925074580467117639249665055219313585713425494862432641713829426642954832681968259934692614149932598273643321660536260163598206340875254394383707742327794413219501290802134400298436670604200233972811459659505912698863232675321395307034347840045379075687187861043537939484257868194651285359524826466214650071138517757404618359205785969743107659952689282994642413779982112045667031361242210195479157422377515768794405379780799603249327944893810898284775456474321199137394109295314438958172379758909317778902689716732251938411257047139701344631820436143390049764870848909993721998599636005078568833422593393287122927293266166477185910296626601277808411863290285457587179836196436594611264670546816696818819224424176634524225660579671065933895559380627589487755914921293951470512006045993571922063735886855940416560151311525430230900573762161411200959878054691858539501487896030490127755071797269198451278147999808510776810484158965125876342428670496893269127434727615328485913655440276210390200666164033536163253480151960346956155423938138403865990059750043855679547868825975040960290170666337190588021984733372417945168726269666298437779284651621788339140597967632659647011056367933971381931527650706424947278150075609917810053997124348671972637914351098751398239003645212975721275286319902769560007905248947869361085906100525840226497173399538944647089037102809286049336137710029660786509186795737692062988014683019469606732660308729831615122826779746233934344469091875577859670806980189488371088550765665360041773060114028952706499301616475717864644249409644493559388414310902658750204407003198152326602988540809726799093627365745606761134644919585376196573379747944385502854547678481629044051173195664003101335443558350183632372176971469636808433494516351752628842357836260071587894888688233647444759555087540876644234127662646060097354720521978789026929503137075504171240859584421738210414905760377638383682598122262539509194741679258450273861785253885807365136636677385204461541743111028239797775497560187356716965940370533956786431075751933942684661879682732696112123592894451568731959244376117401261453285114790000159383616920504519407176838694314993889655878467804390924739697628233932707387245703845606414215851480057317807232242270387982668759433543093165033332172710661543181045761034914159712751751019792361814082808698650229360573569842281447924509248645946611051037440180056493466840524307756493853777975764774040278403103216907888429976572045797328590840400082995495329219431188371566970371195255190391490145238743700108347676076337151082952718320289237775962653517664138048162227772368756543232520451016959717126474878167277176558139731742177195280767943022790854364953338610535647817765676626573701843392454068589382885029371935939337121257543231209215653966014692336402620492124028383742796102591293675247699109856525409051874877786329890024108715627494844515425144520597912206179740926232866889931410640150388103213062766891907514466725632470061254333573552110775813235122953242845744390375293211373601966485266727613541230854997845538325693470881818486603661672418585845282716578365699357887642942210578095130374749035044706358025755267512560012900987678362068335075508496319517422376175366712004502667919398276075810703194230423978739519560106937829386429831853595124397843882377993200912011912428734222353108923261155568866307776304301023091725038930843888742848883076894147126189146772458082213840922785201939575352293497448516233713012648387425744269291002712673608456584820867793404135944219320873518284619385542328628975365173374873865195349685058984234135181446302483582881308169444377399700090143553375154025303596667450105745957163808316735192486797207034812448510971205602934999016474268183533759578134115665036745964116304298339711448896802766376199297189073737239604304659440960160670853176669875554678729242643681187136559271161052196002470303914004935665086135751740237071058973328575368797067060080816266744570635955068231948676245067552546266364445792403046504293870965968440138169376871077876085976530541434505804696189945994754393449017167928879155131738000187001705734576470287670254668521876274281638239663733552927430483162355242912252013673371140665045576660464566592915520937688971543453831841245239338733816336542406904370883867580414133879469533195262828774694680965456404405140453787332345587177586999078059038073283565302244650229889219585091824706086278462187088240221820059836862026327047146862874779515774452486014701358391747462574405807730133956813789315625713290627447614530237205503805061358236549441694314353396837785129386737148302722055807388394049413789993820580398943658885627901448226276174115522040862721738268003670645740285131252665635006990315899088265871438562907320933036015992618847655100465071124599716213560304882278562035361134806329061819816047020667850320652384877086688611555536860192136447451073824398655094067126665734049322470195463498598595493033671951214368863557278473736585886932355803709362100020161423816739161041971850610731563833203683321486249829493493356358450708970774738449924678947389796429393756853015082759595459981579244230624051092998390867250990053454691823997829927807577325615893923510885913118484082929906747122074360163500009518516741776994868563762111673956549435714249289665536601640562299781904734820368709104677365183877587034501117512939410138031910398673428005554728900526659850293524352974852342164349209166970498831465487122335075074979790582532982503469379776130184977397473787250418949660586808313710897454495895869962970461967724284310015413130212651016650851272300889788386715380172151564431777781733504717153080595097052970183473718933217760364039419488185531503172403570691340708430682299957472693059053926318306963985330847869157633221794203446645044303408789778265741177754371601020787682894234005427312382256746862572763278265581998434557010617006864747269206688710770685018470219186272098157861783361121780476499677304323920681911750433760170279683034943261114415142686555624761781214327638625180307777315426820855999054461243027277969043355692096641467953543938202055010161207663472301104069616116962892931286356280352852220682322998994633395030641728436145955355687775832801230718552216513487370067097884279610493562369646633743016696456823502823307203382647500738225746399514258916686540217259270372774723365769263563728090756563994489407066336752279659832059375731300769210005582385538509111919776698319937405849083020319549524737488466554832158413073436326514171909308236196296834763399796315495809264902053238250486143385185802854062355713491519942544018545630295860707055031571252198013469460738078950325877000592874449252915088672746691780123698514207737473166198829641619098988777321867034468114780706956277668988865474201616885486366885724862685342158702140382771286085721171625670440074210767517276142402056586198799878396052491427895942378175583721894381776350320498110994419637169351328067058552102333634897986176687006484890152169026664875669298449434995387749324526204017730384789204888684310086358463815477805034673364266831359358921242698026637279649102971771000399735525984040437947997579268406995009973086822774539979803144125808443842614919649079780094215274437301289763778387555572094604596554036842635862285956544650542519124147694367701005338587775706828222481508406997712146667946366663712018891673108629741949429136260019931774528296163693157054002568979628342649933372530724588191232619304130517594224511631370136442908253587737558196652847084441716038905169375239105225379098178168636684135631113165957899077150096878359669294668543739969153575864925679482089493575296156894677629649341902301070666976191484481255676090020866513704633357886775600788133373837815841705380219351381564113204984891878254785746225217643459174470061902195156914796019862466549088665872243925053664585651908356057864536827429839714256684986837667397412953692805430076145633438301288811790566020774008999401107155149332956045459496489918205521172792569800213575311463043801225951955434158031579675608475485903694227686916030735640637701340833345570687061796419955701478585256681805092122383954757205867511153942431755610540624228149198246516449017589638221887111041683554750443584135038521215391556154657112313926542347522265066671840580683626377257126245379606587954285169178743369913738740171157627092808495404696913045156743795272934030833356807261576908547193696454052502468207336422227985814816343161233992679643294135070285438491986981352075600722750259480467293198352290781979294809345424473796082251147579451367735155154833783139583792163715369980659289394328267924680397508245655101354965019268804410406886989051918861446239455534588488093736080992438085083098284143993875584318413580968774868463031763568166125370731211073976918499324052718664227105553957515092805066701986437467402383738798231922529980382973972647770679898303520248852281812703276899120643049087083672556459120700361789937047898585716275656635893442354052855270209328887311629643862177377535002166333840740384120692488402297535034692570644741667111922440832176729193650984228109497625176806341831713181915188457273414037989228539715007651259599151049862699196546332520526578016795375270241096282671819069402470716144030318138733557684599056693440835744086381899030108877243925007288311051852188350344383121950467698680191606193506563590708085142307690710011145454671818280175257677937331331134050393608237992058553077370068601695650608133479768909555378855885841631838403735498373809994557986694434613881223496242916926342743169134104956348574420116740079659746944240798587688708409737616491654578553987836030544792902744660628676600614119300654466390993542619987818405484559010223747896163989687979523701428950761169596944620215231981794678339274470556753402950746288066542026882968711450611950160288032061667649745869173475648970792933190084699216173264878231289443062342610669109675813083599324138260643278519635969691968261683127118638079579605969952692876208344238979725122778497456463055130250013649089582443385889231350120223072309452201618991470783372114736496793674464489435100570239568098519728166893422456287216526997946150555211583657806922408928862035342029988494196276390375203881544605465709199591674622882088650464989751838347403200946861100637867100158639748340404594091145750596576593102696493487658618532252241228579036046606631331028070779104748374510035006692951259200802470492909642977934152076440845559228179166812031172114462822686829623476892628445872069531703777944126771798740533104485694992621874120213109869681515951579319267443763875667516797898332876491603300264976273369423277497011997544047937015278557002893539649807219207394507945819581573268901867375397966585715176504956884265395743319927519160285499475578873188880889868490661846709582885970722988253268168476949668228546104659388659655732266435084057494735592871477273181531457641436700450042575092489553156269134154603880168167641583416613409689895388974938559823368657878353940669384171176260419564671268389484206800092042302524301258627001258915714916181025135764723592646418066136408334429528799642700872846779428828540741647926024856900091534679756570603530174276767196779715932881144511748904367571707646023486446387960838206049743699744862249546773351153103126116393537074938588979219504630652148927481395776348812128611257579270958856491352976201251517286240992406107489968405360603362154175768899193427973923484913522243666210027431047523088571927553898322583095372233940933948706249262836850785014175498286109283435034734489296456803388092380475475734503765605349338527898865691407637185647768441989772230417518770424224260533710480235291980608120765576652212685060227675936601921225462525155792001176411792870315221428442840033710293483475627863348974894200949269754704435734833875688986078894050259265227540926299534598977129520051866394729608381930547510755639665915131516367987009443675881368541399143299475808410747224195018888353620267464027891392143726484456537191834460282710087866431801199713228787780778416573548005834466303606497493245447868180608362821452460040033529316627540789896588947257622428240447357873383718410200422006700100329003010727992575950378722954211985386824907786812808587923037669861233528368738698564406926142069883118407972436492121117012243174629012646883045043188910687128940108922052457982511572259432612231627299761787981895014488984752371972499154516823804177046648827740509379644307969021535453821201370032395701761875943901962046036984512647387281718563303581379064962822063801068212053518846220529980953421015043348386905312754341392721775177788722143036813897262862990006427060009519932788251189789952143056545784322167395162937936491572822645769634528528243098925217503590871714858152313865117320475841112871227512410500737360455472144108573598796313181934903911211653548606105234953317657059434214316183724155430097613513051784560488998213943058755257550440164143385411158589462629894069509367327977662837574093554275635925264038949353090756462086088051468338591203113788181978696504448381392109638091513228925380262559772054387728449922385739482234873340550725948183797125941194642905527250465002470857918475775803773916132044389175621678320807690961098710810522413708468944739979781810625996374660125536176502070065288420009140755320970506125441722430977684176176835651682370992659895277587156172211343848527747729528644283637716574341668334897144190026929113856897601854089007914198602588222368554580043127215625340341328067478838648590631461869567933790231428349509283612106997982914783741314653621741448112367951708491517265596730679609480596680884597977932429766490707476093780803368846009279501403451262693349825871905300421299028025337265797859486995852017605287321474042043682495766110934427777714043893964556202826188261398376320247991722130318982017476835595785385079886147284244433458082893052774608028577160703914841729414763450948465635236832295708153660112734204487226278312593586959444568441991387182388383432110371388544036253598571670920105874166063649564380760748891878908901800700513950357223189782950822950444414000961842968994994303362159385765307410994871349023843299182814194527078000334702524104568951247350453051727270680423013386527991478740310361429828442952898422228237862914737789028268496570744348897278738540585357183796101954567756818217087728139881302104571601100669612548805868907171641127505243725560755332232032241865166971106243637078778513104020185596833137169471989327392513166051310598143520851207151537298097194550503740770666281724721954976958230699633558918612417456136711040780297160439535882977094899650669236095349447567897237326901567249834111352437896311147354174691571666609595021859583383398706897980584742488689019900971639685367030355255637808310755022622091272816642921596108391908881419781617896022854342922585133527710662060458175808116266168757720600484280864593129774709724889925123208477449723778772325943350960327961477413161752777057622815824428067081242596041983673020907190781962290039306277104450752410942231159384003726748967056405055642888117502793487139567367237579080075280817333852015731907417722017243214423814973542667090477300495697428685804537229177372441398764350226052275948599091800659728848592638088216663955385178361299987862228506745033954308790371692981549794354186839437980922013301687515427922973675104471956459120691222994019648006856533369783537947015678877004361067128684810789077040168165415160981991221572190130792168874851230175870064687899542365344550688811020850045100486018075440820793252583304315869142235722695072281628435214209954918150047281049647966477328620608127764918957112278426272537615628900963829423078807515514883541067572537103957429263488875456972848482847761514658891261206551177285348867748458930698943933242491173714085416426739765812751899783449193990839603170661314102479954175399589292453641689614837509637870614532349025136508535326977010876030941671497827716064614101465807056182076043632434491035892661092906265160971192161993826267580549296752945962968313544982425304156789346994885739836426012806374046549837488046419532024452935789206375930870565767300477389371022779769869055327036683930491618634661981978260975435531381686715587482824403995599830287312598473320502116449084447216378866148898326547228573289270046526595348839862535744219673367064578226416883442153110694845501556785774077303441076675229152138289583666825301589775539549404770344894212588914069186338300941588081314554602450531605010211435934928527580446828164326653393214443812758001592345729554457738271501844645411290224510597153298376016875346035918738067586073034352363087750786981085056931198643331619049361931131872538001087411321672152377812962972120022228322173126412562601244298736719382224748754147985495076323832832684491072303301126628986278263898173582504276189874046737553579869524984585730488511105307092962557787903581890708834520083165964101666946549963527902614091623933646496614845391805822486605908524880227838385616160739856340766642240814185778347275886774797184843946141484085519182617214088038143458967416555747320143652968990401407889873179517990467167726286512573105272388187692630803462436551948626853160803197509764868100298914840590537533397696361965918196029958426136760638006401898544467506300541473338272217995258131746617893410524324919194786368147249244193880772728567923962142099841762128503415009604061998792186329899635967481862946222302835361583302742586569092598033958794610554323039800004909653212716157787096570786889966100342032652716540970743683752803549082732834252596968384673330734334179145275992436708777929567233334653194477755340651248012654381598606070747239283444708154475496441419185059040649283622086703654464167595810561012643036322485879719016410298962275908930447659404735125572339790484753855463688448655145493266264152752531014622121027904813514554217989268313136712149380274705605417915737555565997051609639546082204435198795828303378096781507200714573912695357151550499962324826368377514502196505400678441148330636920093440251639541518243360696893045923127242125046546900744233805393752845044636981543275565063053723062767292038532499367911686593875784497848156926278409107458097319738393255784168940234318354718781222567312509028733032498536440342128667547927699742614616042203983125671484690114839614193350646431931835935914847885184707751968354221937024235312324561499573826802219563963641564876165471672079814488003484680299839597402133171942569029288419956944827905552678614215120937088908398141286215368395381778254389868582154729005482171388255859673956654224703220714250312295918639942842207948935833864606513638188959127279869121804787788487395169301239642198566972966648758629475615581263647710476152926552457951786987897231148153892201838803425627869143386692466987216861860672811409948709394657643939645696559233104894059156533948590647876585097380760086145932377123662680782424006089117268459334230034484211353936421938111207732375468321664084542808611400206413060476347065100914757095331106034610224894929532496670639981672943513133340398538277209624538101783600676696218962170685478689890525582961937213904692019355610455680165177238739566601986103961754339928868231377826438082059816295424751832907088212522156537461475257173593768673544729819830425474334607354639225511222173641558027477210451189576396298119358973359373813633641615009696552442010443731592645532883711991029821200090536254988576255976000401828096930554525378579720861831696403737878053296635868939237407702639124896527556072863421762369615665766278433259046129975647803237496534779865278447643536465812689278658296255511298080022579267169250677583416368523718982357853849910287165334139305683902897047116021069453325202454861410498369952540023140791503025745960827686592481245865914461162708515053939002146218194662875025405713520344665802996318535367708193040877674542408542224990973648487395126770662419256027234487689182567493208602593496278661869569887847156991576598422163036406461821847857018890284422923825149980960034659903893167622667163734927851907175557839358177780122747232676083141428256130267222954246828596611591568747609729478660965733972874538581163916570044966695622154125251622853724698483358364528457373252457058422961013630257820090292994343251064265139082625749092955598779612127100294023481294234461867636801010685651160613341385773492420862983936190937852538194697116992105102202947452316240417980539936388166432992675188657785832077973087333293959277508494313319979730726079716232261928133277113812121842051264971284288930267027005237556751196483545551681354046228924706471160138215548833962854957520868431214230305942571897361782789949325900293190695514563004463183592013094502115384578010558869985514605564878955530877865616762229220244410905162306705190330115358185882791464224927563914124378179431861732802436258381380066710716568847455178307027031694384208147625374278681407299389151668619655666249616603008175371054907176305670678783399605808408423844032513187193898794604211680744539045859409116200030482475249826502462707850940518841065144375142415217598758674436392270710038766585024799071788922149774078281064143109809155406098635830240376983027386695636809657441549432364455216425159290707380693591560383721031820956091749871700301511893592567650743706821390350258939275706079718426078675612221710943000236807120066267278523043955289571801736162178126116550713959507497253387036451028168336352884810921529798442763797734756227819826785116933417020460689149373859777859346235209533592566986794375386297593813507556695823129486196660939615232249655832965028422349320308078501240280810310923976457428579146168901157886660598223920795068212598485200230821767922995162440435117896820061040352872468821884262901645360976373728617419949632118845490305221972415873632100136478873416604401003911376566040013636293707413199493354682472358729882251178913539788377584214733583244243632252416276186464522843120130925906380227166224144345786542575803439125844744609364981364835664504428154790808758914062662730435908031487561587212945758064405824331468887210387199895286976989750096901205018312715615264314035197377892883923681672517728079622355146888992863231898705307867736196666488366327739621725410080315672030666455734887610632912279460999802999180592422491486867633415530775570007409446883288677265082264451264324466254718669190838305365031278531880651921199938358707107224443566792939048963364998719301042711496806018681856499545732275845936154643810739192795963384438851203526165100992598452852861942752842889391597556605225273825302392267438897310678846574369954787309351497302794036496616801734858922167051913146377968585559086376042260100904507714950721563445218855823389433712697123076283283219644203055108261256111414764274396506990890669231168874133359984410886107677577871597096990201436530461499720487473820836862127915552250909124827397680649932763796328598460281859282397862950901440845883477942200070297656109058552846174126314867221851532232642530319807727792703065542440877607176733482940196891945847244210306899214675935927597206115222353868398143101052535649859856324321443806199050534919436211251654831857724022903249409263278866094764756446903642665096187389621190301353318746304676357292647041186856356562592224691254907326792625559892492245187464202766194208836615008946352302362036825905552955445567085451919355124481919112177037028512789943397374969113383285590568645685064558633650067490082091976550553937066983896818886135931835643396536820388107867583768676582478865595582159719067114560628925836661385009469888995633430509201987224987288713108993892328941119652579524657526028717003243418134660587963679882719075395877074026643940857086482218084476467624534587952508786512463627923560628372144417121526593323247364532040420295962009275069677129011106737073508078024230108832083789562510500406107061985352624481749115203094762319764782956794944425951961928395159780795457707503813619186310334067368237426493860263338457881092128075609394425094587765192956873943496419681951690971437690029265489315030103646825458456645771717933216656777773966097309259546709370270393468260455915645461001715435972479457890054890887309336389595253749787186929714787277723959188753392238617742568371432088626533193703665892733178176911836883541774129630615770143949114593679682610836728696122815143153872544818502007893893474126720431059589574125976774632787808640583320441100515412422272705793007736793792037000865622141346677833781507583357598393103967094812598837894492851140911471910723499330118401026053731917908570987621473430684592837993729524630314562957189222852930186923718794718391144741982228273668151530817668380036779484596805541527296752016164963833949741473802933617232069832942287890053963198237019656181556304258958521924771566005556137171655510444230735274572124035369696983497783216028572843925885761907554416766444862379099567168417194181417822173069428625747217190383035852806302299917545440380197478209816300799939102322259747372988212219275703187120823880871487022376685349008531733716389318966549151359223065406832712602256939647792837575855913674543945520996869035146413332019521989342696531857698485600176511421297910508011206796115056281939815053921876541700533415552387766178267779443069288846506220408283961319236057585322649173481127704943273191853139549323903656611205824441314510211753988711801237140916358051039729689957645697965441268087292110530521448077816598440419088325521328578094348976833687916236404632952913418930121692988155165277658200969834870168735582521787577388277468591663381303535771952072328578390527995541175276283400210551888332752528825136501852971883137024671536323606617203688559786965183375733412756870978583629943956200339099198251363669612582414971540741991914553617358057857412833475522309457150614525702624346010861839656640948062214451106571365412388710800552305789247268643054739602208377581737660525569929064405441060404597224399778933924304162070998367976115603421045412804648735641462003532041905985396003382303258210183885966049916102382522696941783425616585606085191054609984712324034174978735193627645898609182971532435312820190208172004895997696434696388165542688171585988204784194278755370470456637306894410873794021419536389688360790628328195896692516333968817775414776000492632720587676153235056643834890355692787033107015735826598908032710194861290533437526228099235772165450137790499668190505333654581546830612010432343655292465709011786912046584516331100592955109998114268972746227832873213856249668960033410178027987738215905196651709681696038977724484037925173681635907537211097753134887435452729072358117500006248086425632775037820914785376487393257106931267459004954707485641032032908819709559820037018546884909538929539843502996503287400078142827685753806024867833392574229199487796776834973462501858194251182450016958973464442050325644448963973036226872822999011433974932823274699756911830694067083272008020995536361009262721831943535229033467932244005783594452620159397477441732737077872392019131096486058971016475883148070666560129641794735698630988063835292604333983390264512067668704688107605448959183064895356897320943543309081032924702286546341649933560519607605755786800086670877321898264898114956357833908362988608942841686881738071609547301144534366017848890151884757070880090004592489621416160785771872827020378134816246474518672503544600841720501379556019334682782974550612089575676650841697051909788156974582209593961192497176445280118540453057136260240800194547384268315724728941418883666017242024746306417741267037106992202958860323047538619839162712623840053885740254725705819785776990664024128724814242447616681816832626548888300277486912262427683162841021116258995714836161050325135415718363168721762908451221922475078494761728849235741663498957321275740203998413875404354629049368361901593924617367803364928143182672121153070422968508509013366182292527884671234129579027015520417368782395982215885762318486277382992437541431989887380158950748730712319374435578779765270888685997002786777114895196907763049324960642096832382962611121476855363388208879942084867367925024008653701792745158075241208460905561339297299971537319807329761869780619939156331085615027896134467426465188455097148515483878904690970633407288874789302701460660691801058142334544239025874694770316119823517985351706303310312673391276857660835500743160614897562000214281215381881996865689575379738096139216127842787361643787624053103750070890515291289503715795400172679887358294587560948459390885889376633300065575146673730301626963889560937070472042669870666638573699902587974878304771831564352865425024571673472406847955976001394981061019810916107060410762016113318635841121792339727643363496859553388586046043707942517855493053837493810157551672523274048390912181422918922078698447860820915977725203687620489543786405620435928251279994176738886832701168390204829787723012884189388834526006253764494514008058998749526585217655918784608419506644975428281218713771089927758335637714123124844220429968799166407993137860527453131014245178867996451629754074078861249578760071371203527820907589513683985542251004311077487658289292278570014917280430714132674651361435363711663888373401193316306486157465466197981642288243067089065803411424629470338192443199530559218805142656147293251937811250635926508663393940580426925620863352390447543695638002205608981603709528914888968820057367052658350277858848183970541962246923100672499627175448551054094808402077757420345286067177650224301595383890021055042474185912445627094579855419920210545440586454577782105100694366588433496507801231119070094029209226775199898505944839411162869064730788131333323164420398692596186143023880916999278827443236539913705002228618277183518965014717949612689070418618216080555856264167466710383045953125672207339000489227782928342686801885619452213812610537565445597063486166497921142288374117790789865763878246097153121126142553917609050819658638924443669757295681535795162398624791496865841601203105302065902129621436987359540867177437355196919849974737557697980647076118967295400023695223655417075949232320920993403573047114795642299860452648213610880433726447782480884062240152518421395698011721444274967874797938290277599633916056916526725454463025042790390938766686490006113761969750012615385698500820446504053993134007068633133587233708979760583420416265216217437986993589869303640113217214210381065219927713084846517210935648980872694228700465348219455916927805011007186191533992810908216655818184362431495845090772524826097627297007705401822560850019195132603977493280576896715825303672329191096786294818007734954593319269265073468675655714889068119441472385070147285756340690806306722192158076215503999420177106574534268981424315546848408523976656461649884645133295990051543964875138517662306691014058931756201750456599282599221725488834405299601446073958510084586961389297725231781617425666764669970198028175248626580795183778371697723799066990600199470217869007075947998108113151787989600053890790376982790880829922134357761090687725471321679392709765314839145820783550228765310056657898462862401682519276655351426333531902437637669613108725283778984696861839598544347233830277217223030319065159458073253510050199511617500113878254924560156589312619760756573821035900364384293308354730034671647013910357822141682211917888330513331692680921644251099365773213754701671534648004242953078126879587573793719599348457072934723805281127210511539504353663661746933943322806274715813775370203831944739346806515496714909812921194076891445731725148911324753420412985959485121705164656119084460006998045603434950730385519586471411313321309434311327251713836601641783574502254168901371407343031778825516749808871423962338338147440727394229392061113372154904213354242009235281770699070836508037295841392928844379329244795902229928714508506345398615157392900493513324456917022617043127886717230062834137970932979122418140648217289932671980950810866660285192111240876815682826552857544567384302928144360390476514352021035423725976564605171686959990059590673525421875547634916602384649419188142670654003111141808935336454910743221966311206843852503273135617768978271207898547831354112772200840218005259183410600450814420775291129777541869339374672202754481136073865442605987719723084165685029886591721175795615003458090813222817663199889450691272869084571626881908122804674511849537799874544668057063441764223325496538844158941240287782494181683699309631564860471320483471886921827526986116810776218386846815424470698316525304585513407786244517585911797696536686790922816869505503624059996966851838970344968462582092603333702382467907109185507755220363686606405575906359044423642282312133204555885187992424557075823623380791013132707860295580212856714416512380260455748349105935766855682847812171390474970649642815864427709297428738375370714862017122823119112793103321777823907508820387581135708333906244103182113842061116512423274306298617944652461265289981431601958039334295265564506448120337808160356723944560312811287384618449497776828217048806089026055012356014614936458403630997197928189451528609220753326421586911453504090851387509456264626996077774558238708879409653393521106970952401221831083426545515685163091832049409806556382791124988069650354710359796773334480294532637890942431414828978048869842957834447683116114327207892484494294775999962398653370742556112324527729373668652837304044065859957721812577154594335062919249023814502025156605324565503181924071040924595857988390856896926423069638814449840374285701130480223597183082779338987336359658625004845687011998444668921062467422378886354458525268292001002450997959991844834507292884967323712429100589374371839961973301987406167405973566349805211743983431106128573989774330281008400151678922986951649556854385755154864907033548961313894067420710310422624844916308108313333970997192702094237043551105638384262893230491992987134375384362194794016270619997719160185424642070758669117959191708990710100776699017323204203291038196550262181509528795069616180756280706704516599988420121209074239910900905311661870260141818495408100181437794344261818178969623941586543320939174201741803281402684448573989415838652353516779390654144359188273011378181799756459451027209402841332141207006186058450846775400148679196232035345696464292460034549359038648022708750547115930338425050459824671756933374161260488307985842865486573774166135148990725760716102770781455270165685942000890012758417762477554721753150066511867961575325194539245279335592279894740808703182131221164455803045204318437341858822710500874341356379598232682770400012418363748482402244659513260966774050399647652561726805381457417975859268247824550825296407118069348488266397633199648176904204094751140415350667403870026744434323545477969338974391847934979408012129502941935981404193479856452041889678065547198905018389412338037890304121774675086413951601036183322271895329059876556166509203160524069154278216608557960005137073243453203769412959735945026799948787382037054377674806946634447348671922519878321995875802427435002504856717805185493117158974710442327895042615920849961946200705637927023545969753470386649972187861860019728422994921241717902722403115438041646402808886545177490056935227172424640778447951375032380332531223488121176325270246136666952093122512874093069208127553377836984255739244630233233946679239075940806209748548639125981150387030768947267244397287299769345492140309103214630896183990925161102067985722589296947231522797325771687270571246654152350682145149545819392891478772028470626265229410459065168263415303003266761116346078270308845657651470995326246477288978408260961103332991775131937637245158849055213724258113108955374083275202449774179361324251760745952334000049233546882300989748432340629240836373346478807085461718561132061273369528769723479211959845836546219207426002142329530924309988769692595122678145953527536689637148727405247082442500958612957993230071314087963684598043707466271763602333104751663736713328171595859394028091099776519037368232882253276586873148648246707745095269316960605633195194669204630976222391988961312037511712282671535240575666734165376672859455792225946476739187205018047614012615782718482700699203353133208716980461631689619174373726461345495489253114148393405884431198986691107719362096013629493560558027781578244860209297766334802617608609356518796804933141385429003739216356987079350339851128471255954249639645964918998769565800105118218908323512480520609029620533253390550173269746468004908919947986041725902876871464884206861911908129798314657515284434080435138408896679868553710743245482247736195473489940638034610904268016983737792499146942270935844545267782149299912500159756927182584708234437740557975224022416766277347280723579074333486582074006181054485313071411308394315355323924230503067316348157441501231585872074497538910917344646261695271629177969549672617911981326583723186542904827134770131034460297666263483695502360947184176897498641386459872987583938079467273155069075079991344588926699062863875360757703023832376367197160172717891572618237854180807849061342949021976457589372807275560542537101789334904505600121644790572064770471976389174687136543933086465937064767560811837207508041517382607375317600231409812476491800660693211437784596555640754469789969498163980904679737033076521742858451867530307367395957710628823286634900165582343289954477354846612537232042749718843059304527828106655921688164703427131331141505285787156219341565573292068358444814564663004815216427876547477274044537606829936468917272144486407009109656170373481486227733919282957913063906483462356803933214788790563687542584781922510438469966207054271287393006152015147117748252453203163700720873265414136620094325319673894925562504878734821263509264320919196776792879677073657424658129249332152406981232025751231480197962469644417225254375765725808494168303877702294996261481605380883524460536471015168962742107422890621615651863712286618650521378452890667544191062557128887303913076352141693076817227367201882414064933692427679949755509891727464551442227115717649501601571554125240159988061632721541228547965998373567114026276015880854205835914933805393117470172655268385618675332187558538765220571397667344832052240550383179408984898190488981898205659797100305665204467658555788648355679795503312450265836726850382513623361384127338920739376887475982193698707541050423109115990122670621638373731982995557750457690734828816308743456637029298556487325285148638105901905606771704732646955912115173628308752589064989756725132993344958212270543720653057167973013805029103014404909134483588723209322097377061887009013464226317057478663702074263006725207958429892473535933375892767967129618507341196921794480352398520086478104101523420944688211054906675702168771842697797968481197551746852138618213980407422194855738336864465148184910928140417075401179131768907672247670758163950957040068345552440384230155096252979352325532717807411115910477123588297203701461097743931768744104312963147589569315366435911264201905445159054645212090549868603990864833996351623077117044609727250173587948334533771467329436651903890668089387018334919481006818857344250260511365208667057929593414968167403235479608643253333914670935300522793873688134365855397460902464670766360606343885936824223909431179258193336853137463956859344203147108830465639719606121627140511086265310944714729881892537921543660044260199972905942977764546887213790937921610217452222466317905348353953595412162310002411482144591507758753179715569289408124885307044295787248450641028686739926673381706505376581337703552595807670419564180820700958305867783549084824184044661176935623483660308372967972640536835862286949903600007984765033334369583412204624363797229233663083043821270306168372347077895627734876535816224432439272560591770760417318434097116162903421240622235850354831932884595481427133536072086268318565199449623351526717839996745670695093256235058871273199905696928242055847375851334149024467888591946914274425034931091286214301568023327252893005823003638546175292279794905575037672388366601426912370528440204924950603959459624022274512917188179973807538304988336176008029895606934887248098567330894498886855795970045778601183642442012630939812091831136471449668660613709264766218462167190291153689147087775135620384074301420928422584360706577121522784245090243397304808672822288212530194021402652121363955836465585594391564781412647544211927975624151823920731862786714752213488327781449807707676675443811438692113072294480925108998881228408844481243855503517459103832346170009834336128608863117802932603379769458737865680967218224126078807623663721778755752824197230440144978769648449866995325220378556867632474691315453740620364546687207846026734470921841154569310993450809093862141379993642094392852686321759672820245693902910322958804648100018373173455280828999092225572296922099512245854072680803453582056077101006038894812919683616419039338302553914154820368163725078799465178184674438400109419719856496156048761569182374979509091009248531882413940792904520272454823962900120969479830839042671696146702557116092418923052148893390260849331749378632539277800939455656413876598366429893981966010444509892755284409650612479337460574809716937431680816805471803593354529551286414145502997430047773284286071035404021205879782569121077214414290116784641952881559602263926119906099790114844055453159610889755424315164557974593686799951912831106055610077340966472553346202389010252118957871164470315349468688299640411930258369172420360970225398311785342375539436816037941203002575461481165724248866981038640358009321252954390440379094345262957877183588699207513849030087906708145787253243092512841028594175540352781886451644567427625994567236134201512878672454529693260649471511302462701772808572157255161314561566874409986821406661266613547119314289001280164947333966671078922201533802042498958167433464033884796734425473032744382634006980068516823700538319189967212279115737558467444313054758557992868719760909714496692019813697591932287070153428771272639915942735496128719826093881854880919246479145032517072031641917120373555256911555400499867647222884606074215475649696153803404584168059189966912209578891191756608355358283534808946774942601741884952540852268241311894922432825495188249900324878935766174617147095993025513367691722414465264704335404949727307726401128843525044882941342495975046776053101783482545004695059555017025836976295814612387454625982210291842624962212795157864800007530194944966269862513420228216308496801929862525719165106151929372974401197575183064292648355575709957862407243219087709932113896329572211310005968805230243291095156977753176837241831633678020608416097962065340300940347320531604842688711027183599162424296618612160358001886705173913873088157642259446905248860334072720489147131927730624393828091651815891446470555795193086173729876141813705538946082682613759603428925291551881244541295303404730719002901344952294657588276482158952983207321529177440035166859358198308850305817597119164716449089091247385076971178652869237956459882334076813818801658607706690678724686525801093764071817283934496581217642070176293570384221190721066133935685934597726708859535490075463784825487602184587780355071501746118791819285747892451052401343568052901149672342390099061192533285382571234016091018274543478751076086937321966104582615507066195277557560507375880952222912247777804814492757947255912285699623698879644663247924146081480786929403629966862661851752279968544352117214243749559113721370669749354452491944580725738495057341210519914707986475770389469950174336975394534380262111765507051058515669653568481185864271224172164039891520889949914083665531455514968387764678768161191756124057988396622928863822196162549484705637570955188441728808127174123559845691660719468974983054414345025453982678452746602913310342229597271685968652961284260127650829047701091258241747170793446262886712493957964399259443641721155129148844931778170435227470616890268941977198837014359314710420872683387910693212153126560662723950490512484101567411969401694460666795493501098597136615059189043912953944397513405978007687047655008212689977371156258579353284322557604167340282312947335164181311113268977926827584048957905651772812373005318531766087709028312586632607226735670567643133275564269857159457014975724528723089341864370655210379812589019076323642502597532296374403784371583905590929899767590146631094695343006324147647567122596620521807138619553507792025071535345367267432139243730405377120005622004351741765385431912630738099594371900892458238416248520467645985988025778568736006814483979145923572697802548998501191013285969440633796368920696059420168381484696348233057826215148202158826053454930519008694021390080707121369149986698248461800170104489289559933003585207916389636754934132557248217786629874083973265921300909103809034233946703129667386604311000722451387871780814982858406179792404949004415206385390123354763187705795999267214823036774352724893561810411020715231432836744160120673385311390411721750679515631214879479767832563069626647020689513999243179169466810744961881408170517497420360655421113211753236690966265362170930218208091702204148283580893349881053556345774408545073927724483514757981795776851798406431634675212759769057332679878429378789000424191991425561611682035778556812854670198735955481022775820622906723689464162956665238365141653214303782671178888255727404247283424084047457040630978484141749008489908332359414739629047284516568005914514328882487119953645274720994162297548657531491220541993785988049441744426379544554228273856132903429460386556242858282569626206998971068227700311593460717141283373799422965117591829195854338445446066954903071007938449813195102414950094669919189682605355154009568824979982211922079359677555978379066245585280642285418455127458206096287148384865225689668013131489570677255334680852838290804816631552683529544257531189015301082644735067175436164413929206583442479656193745130041670435123034557993509098054829009160060104001445811554637173149298039706327671079185670345519925101832912495193921159689646707170494684062698951960503277904424424869419281689813651051390932408121554174586025884937937845548881471072100475670750489511126944543798016328308513236105927642479723854955372506286426825798541441864628258554271171506463063812569878762386523736029902851115873758016215711778601779713722998298934764690783536374344541087803864824123449228556674562498474495903244071432978308909676569897752515314949787360850409301824227213228739488928723547144678986574825138280151716242155871191270750681267567866059994486013842957112083405083488067579457865770729109818617070857134470427356613440827707968103819807069990855118454230492451448382428044606543092290508040928050320112063607516233815610057104728993949351236889667250128177018626873926996978024399320997943410510450241369264101589411092004932789535617303646450169213251889862867617551249197367920790208407766900055775043032797965765966686865778860094372437569713161145406026911043068044514668026406623456466845650528945910605671298278071858685797521571913223871726695256001773352820813258914473518215025560211904852094720265713368602953546818690490573737076453463142492134811974452318775528643104428734951095635007719505489957550652591676168162418978847578803694759551398366147000473789807644610348618922373726609583063276640860682624270312543757498923431536422325531584049468910958263464319663780081297998568884511147702117564165495711158414047443047149956127638018436470585775082197640458649049471234707095301431567691222403435582564360597196545371973937546855192324043408231689088474875918961043439151159753525949499544097992739021960374059933928127325468113285195425272942655282253006855471469213775440502508689522678297680851397080527723461630715847152781305302857618182812048488503092310844862094003859768386479434960003598195224127211148477573677511259104451661740284003342007279088629233166229047310085111990165010846646593066012025681987366177266725123545417717535809852647822508519792512284357046520187631363506804571090831556567534171699675241124959620661152487375254400562827630665214530329273256042041882794198621343790661057591658683281650989099379465702182613797106703685217656293881138955034296161029381480549476365673168925551642098111952863239950783720280182146076675795613617503952740003984810364605301619692401597551230546687663618523027818482077596628514402058746064846329731383700226114245329327829053060243569046106680123387574255085737680137731115216144373381239183161347195169232919522410508269600496416008409556503575801871603463959553302822554354211241291804827261906607949201215206703868283053334810522005740918266527642955343461405883731143904286157268711740163108441956435467943250538488905307236782667081145263334061075726223924455020931146396663561875738531667429631604721070488581732100322278395455965485916070114869711348499787057479512964953348868139532425419991107905411176459649486171722735713570464165060379848894766993026294670016395888451474702873900705356201414906009096260529296182146139211504682800815771019797970434775506111313500710827389856902274007280840299855633541359422580956710818947204757063688827096339239312634287965843905850105517090198462171506776726988154634303041416027550499711028840062105377516221014701324071546172117800396664962880261423948325794584812202011907437759243590859125576635360394562964573537776998834384140878960125091701424711457024957667573391636327859757673557785898506606782554417845465060344554419240373112386665559662265412231168280452957329549124725797034216045917948454347360879147217948853354004972557212429486003031033078777310596169136245136186923810775579941939785523964330434653875153367462323534252613765332776445693107094394042464058261053266371656127077333716823665349739509209536715203052932752368583677088325617625324197889930236071501916130979458542778822763947811025255311496644445405022432281776696955621460975608505514063302313000049166533937039638199018630113143462449179579557233932559475163008974672962958287617426413713321056181406970135019018125655881397526673188112763370406962651383280011934265552289592634335177560580823267212188490453409975805342753130147772855334118982318092638192361843378997441371195417927222460709625743377062634508053640418052182912328851067725044071430509923376365166261381859547939458485727003802917267372419795038002326701743190066699553390767728693188862052343139024168605275056433260676159458984961502873493760067912699783451144836710913293000061227225624355698204680491154573645906623513554808148360537508249817052771641306848281481806909046069193095592567009235408160126805291625910198023030958083331320026146173063904673661004108279710469081320697892923773333587246679664167584284778597799602898185170784189617114816452271681833241894084646545302500956486077931908428338614309522829835943653470369159821150123119323357454577387574972568808714676281093944615489480440561913788349285003515250883328163363294386518523241358417602826278430847985248830679350086014828014543860295078429452929162957254189600420226646342992080087722665523207729479997154332485501403752075019854667796418562085353082754559428316377635671078830338791924491684588242878933754988063152252916898834939524873338966525703460399085522898204592628579995590596852250072876106015692251348656509859864736198864996540864134580933828567839174395509795019191006120050685386636848121982745623959925820895652185148604387829864472798364251034889883347347456249773115636668609625635271735593353116107824085980415871136875373564818057439107271628598881873215256627185567998823554295044327242050165839069779351179456151419457278818964275006975051122329565413322326395666211011593890437001031236407572147431101374792457554348870043051149132082945874409605424530852542562675192311564298887166852347490433273662788279190962743975433204803942202764654574696134076780642428185781640539994205964438994537167172909085076246632523541092445505237013928629507363679148991556140799885343561436683581112451031314579481879308680287417008909245729905752531824491203760604329342253712724872555416148590568635293251839997114695862695922193764028634884528600780411389287582324861681443378461093634416568819943495254826376000881028214122660950568089514437673913989103385407347618028251389222232490316887303210015740256003738359531863212412250708495972189597857998386788176047691642032631215409710613763626837884761017980970921755097320245064312870752022355293586704564808455305546156264658092632229776264368544863574450172016307578541386217142932752927577977641792068801974254524746954733813428572308121989290890559899587187964113996125236251244828907966131752614844384310987657111957603250146521913289813165839152432720977975552817372957420075093453858242541906178071730755519988601284613686534561171279253951566116744116831386315737138581483451390965661556763916705151663941248811999491069598240087175573225753267808238555322904181768676175561048642172416200006901500540901444158797702644256911690546716168275739803789158065551718623556024123579577827283160779011742252387243440429031897819176401744287078416483432360155683752332889798692208614753752693808221876847046592329696690219003759075561422678969516819346684970634768851966390213276786197420649280486350798908471509553765258241786123957905816351623551375957741391393924969919639653120078432458948324974530628833802360497260351621563113007604668479678564015170411505859075511702882458324594723665852272139693038050793475913265279066877029075491866307576053214045832318236367025347458231771505044762235576482898166707403437677814486276166914881570868489659719707012200809100918419547823275467739249072311732456038835055152684288933622765740906925850183317590976738444737263447100129912532905549922354763600385507643172182943186804543701338114793146038535379650231337800354258614081988183382611883216456801675637676149180657210737206504867240250806724614363194630710942413365106779461323272224985643076570632960799907759946017053160810912484579269652082001694945482402553576371913595524015165296238633466995817746866817152862862642095211591065613346606818028351329467089810249566987774561775176828230562761021362804883409515507926955128352601739329642850341409776900494259703530650097544637654771887893726956075059497703303953121563551693516743803780792905913201748701252190705973294134264350593055625403712841444912350238888028707423542721696200020742191806198553349448378439580293577564892618728913983033168943294539835395048611118189812072995898408503510659369085525264265856871182917927149986275950683734453076588998758187218669560701460837325832246898830248581971665919998413112959927872427648067273317802745369056616168327689883277780359073607688024399805330798620785650001856157454704077367824528388860708853252141518910155469729176109462354071231060558530918917525036968644764880819882769882540802863129374468094061996485918092064315042050447676511786934406552328430413158462650069213171836348545161662225885317205655548083573501772040339925215126671128056630159798444440517107004990277484269229829360953466497880264838972749349279055336442002098964971695570915724129221128005262063855381561305808388341817849818763349083223622524243705240659843525530928375894406781922063268706007481543319022966677253888515571835278798758329991585688301665849066057493538567560799272910779834301644962342088113542275587354115177906498498705389693520809967066993477629685496350550111966069680539635055568764158654399654520762540279754474141770302111052438293100628809150038658354948603995876801473318171245601561545944528869504831159030254721348445954090352633557700819148288395441199254766946092700718075861428336178965945488214095977248948708499531889481773497708348082096564744193499673751210210689560398491359937931102289257645680719399207638937406308114612001027991965734971626156401635363361001411312470636108441736776386998186086745668081374269159522935492478273604486582342688521002883049613413069986193160350432356186132169619674289632379250431931657826761578232603046264490725806925313389362000621548963639648278525548137373369026636910941196072785770951309102039814612884280595823051407588165866034910667540535719388181005677292616642422406047723214772261201607590228649232888262837057933325765336266016923991261533228852827953138663785190179586867127206663750891053584145959152642467222886216889441190692502199404888090412433748061087289194054610407696613724510599618554524707023603774862671474315534940154455886184173082580557371704083273143389599585168146395424830408409814635346995289853867111519592898448997337534358273339468758479331123040658591397078068793540810846567248822497534590826052716726125492513850976043255832067514156578040545474178600109630496946535104892683773092263255462194025347907740493554164819791311205317238961605191376438791606502922463419579505013545940946508308073868224076967617502185502254706404948602165692571337192044075362884187728835775921831974804735513311872373592735904531690854256304735149829713669827049883753038356465095978129354613428163222456133724685276139658754605794554160055770466539492632027447046012907181798329303947824939183554175150945920769389880233281833502727991780453049834333489659378136831099196596235465327982275504362234401315841557136208470675776661960005337314163121647880917555563714131764588468023171625765604290793941333418473900771132252330856516636587010560008113972806207694610135075810986458110046227217908664509971420468561795526480463309246219219690224145358552705235322696348686098118178529178548783690474376073068724865742936369065030318791107214184380400752350631111368844132683692045871014687407208197399744067120415247209037330866855547315632260615266427271364715813446818905051403463849554989353469205927216597071728407542193103376514393596342051150662623816534763146735025471299298938406020356830063769204344151170085306130531610348536641951566785359105426979506889857788856544774988825221536965150578908128932314627862834974476874397147296563126299188019361242282887107219994287861696417889777277533108765771395148980395382668135897812262025794937652949310760330446575911343410299425637018084709900140768262743397339657936550319932051019135879752727367392810567364386367536287937028009418109359720133047856706761764078504315603808348011688673715382868467141523978729713247134270069768564621683982197826901513007956730810266629801747798216246595037096769514295760218623500995029318583015476006035260771583343119899681884073724249696614128422459909496265932384986144703427786774047604211467829101878902381705156168644970489090000997428392826249324433246952060335647661791889595219889853404793630349670278255624649180967048992512526058233635965337419392344415195958978307588571058052433593453875229400311864433171239675145597747405693395778031256262449286316941061225715525078007290211276471108972689026510452922168269393572480403905428194596624370569962797717535076170282856798709938041132215761976899421710045021517954826437307249710010287931347622537119764541207717650087568950501223227663717141417058658580970346328531355135925568066760982515008522898060355448024978613669818105142833496644826702198024701492535305995423747511058345791246276695940860176918824116850217929646702967817162243418260955604674050029639637273033856889450195539212139566820988958273708603719604884197726976890249039754443353586775854892333266465236159880722952276705675044449912118110727342968233916231311697231953910735278291622970987084446948495472263433921480600720534744510699958909180371278643517067814386447929859381021189036693626491767187483047751731410399820118630249208693579961037483985159558081769659358659485269689978172219768306469928452211189448933637171943514757368936480191356353812307565805217073768936236470381801637727399439177167077384914972235157588887321281149613610912698225335328158518950499133350796460064763316662782985303869302984884202734430230936313623392299375276650475701293457204585687188344889145417685613490917670414953939444655143152981481508968575153127606765125833328267378629860053607411669160650977259003641723721360262827778093464556613558537699978772107139303669397455960830692266464290285578632447365431028688516430076057749165594918133252699631119622273333583084518011913656934273188960565289348337489012847151945858665065678574837169857047376561027949235483861961558763073587982604499998091933484867671832453099740481580580179172449252933539389568183950654984803809371247472961531526365622992146557378716215603632968272158852028660685934349785059374894777950438028409455954285321822698263734697569725522390472363679966215773103061725311656657999049401076078991769700533889207162300275794989270752814972400353089706687696666146335781833266228960507793362604216975403565101550984260797580238402072775225962480590661506644454032126307348263816282264168962516244225047994278857802752724656326814292251815719218483035747614676885901469004337248809178964194354512072282097805400286078987308269259206090835846020320472673074916901689372135140475086024177191801826392915894085833038465055557118856341549040506006722997313994919077362825691442652779102192477548065187082244274590780317844140404691070181505097099760989700986796461522522019515235624319476995939028235969493935313897838078403818434396716382276363086737654462707269922270919745841576706501980518826463617759303147958013680421490377639573033719760455899502462018335998119575725615583426404391162955559657938298471353269045572566606835932348638690660509204482076628792191909882479762927731222250357865429662817264054559829704386302249851779645107662406921493758374618399887325821769813593596989440821816858793058749138181817879156668790542167985388401604332493335509897893257583453770479716595883568468519844841526584447584602410547235463696222560436662669385536306899061990550846868858907865187426805306159920180443468500397822158697806599612814905990535485964128796075443484651487215695314941645674688216713708811608743804782700037570019992074204191859450456817276540351351865150139952983214659140867182240396896199219444702192680543067407239377801802871164236346449796318840253792319909946877532134897886551448871933243788790588378268232389032227909414342345695577795307017853097365561443753240787932740225079624991529295755846571108156613575272984179161096241942623540951800734330353804322246539372481575536350753342937401320381747225408286885061476191746480459653506528803712327739903767972197746938655217991302233154929932901252831520702816039130666825366300647331156021304782623972309095481459630637025015400712680938228566227200964007576875085194865992793515239852921762010534607756673941590859019846328835312864216510687062437043741638458280437765434987507820314058288662853590534242381024306184539937016411794834532243175423841425856531432538319420989544104304882033596970624620482320370248510212268478114052702158362072058953876995797292756936001512563845995382381990123918026190975065673100513024124147338590917408033583648050741075718798990594808165310756896712626426634279087689227436500349260929735639223087755609835199999440555335344918911046519945464918358107262910220043989656517625771193754461081573992135241326190073111500820413218509060443423008363454387308054825769308816434614715747311464569285752036774292072477850533605553575654355755921343199875998896087246032937734902457687088042348850708907468323104765494344908866688470367934425326210735274948165483860502625859898493318307356619866125256828812387154984137616334527770329801559754655576064185494843540925546178825894143393080405786466345061201761900741397797195451746703831797195717394843927389330075677706738147867568711301591859322890693991874596334836402533475732581846848566917276203138425356966503966268177942912431013038406824801178718768697551258480028289637340071377148986055221297949473543464496195021277876749471058257797706779319973820722856792805601397020521372913178711212822417923776769738343236669464835564042649093071967797089143514247057572004573136957656469141003358156084887935232534295750369142239934737140607989439191484005968323091285820602347572625370951103676700059076978828573920730955703660216141956564293631633800904071949787902348933550997108203959648183311368650994674002884898146694864518053662370765801477267793479834348223960819199357435329522370768671132289094035914218826871364850471748797969896152432609271718573709570625114529662263309308024034122400162540281019790117329483951404132392319008071206925591218481978396729829532854072411883901039303387940894828650748818059350665714676892746214000311461965296238730075503294245173577589567150124354004002555164307245436842797341997839281800310449689190043232327150237888790994801546320497323619572789666804971905787817093413034014943068103625821883015343334916251153238044489892800649740327452620912419742966798069238523526954929576538095194571860457206672027164744850696498955742347609786523743225130890395132621254566412073883250430123832490931824809704151513973168120736213097207882457383120295218842853489734773100994887478671860232102022913645578808541712326383940932198650027316432451876934805780428555286222646396958495642585316749889495146759505191565449979822232634334081348863639747183527441886361653510757882405519862027785578211890189190564401388901301966818480145513245639130725186541694596973618472292176768685999974858974694727088965037168206304611703990924688065733142645263613320818271511382270495577974666564670112029553150044400885714434757254109165224508592334895087600220754999361667370515785168002729412584134034763271527506511807562346741800395547330448017596680929827032842409883838954807799190344342514574252093304710131597614791955415604486226305331076753737663363634575399897918095062806619138230261162514902037652055499679466803616071759610868784318291630228320453581027997275266776119071267933456568568780587777837238249583250131819147167546385897815160245370932116451488886541217082483301852999508365437193411103729924647849306308428523731101855095341282424972974399340612771832072405818104287659335706378030358240480556163570585332594651013684892930762284690235168444866289615045885500253218693509466961515933330628800997751456720588822908721280256257366587967010204112765261819844039307149265960838666579600765089510054397914999674260170865330730650486677292481865063060119876604850126573957309485621404557998923142656349137730098200466660460742754265734178928044210769599487919580535574241818058458305767077814270291670398282948922765364312331772469947568583589638163333153518371385605517600260486252445472581790896131859889189114080885682918262761223433349045251015386548354556798913333111242610020805429425864844257314696107677872561241687397107906378867231205428871131679951996577197279365517803924714776218875666969120910354702803860741160017085544828350682716435103489015644916566140114259428225310288298883080513414804327879682605122594595353664803253861015328214141479633561456347614456581629856009345810381837750988522018784158129866285361024065095608471937393581997950296501372455677279405555611148266210159607792113081894517113570701070425746451828868195449319328499737207186568971908733601848758089496006313497563344610783885676546044305531069448673279861372336237030247417521265444737581149233688270112821074357768854020251341421778549996051407093610196279155376118224824890930403068365142003172064921231305450249395744179554221984827861591001004356003950127819576956603113263932296732525363438654933668581411199782073431543981837456506875032428745996881765995944803790578710839095238965481233486103910687198218377463228237029059939729052968068678406153105515465427461019462004995181199393359871263374959116640798491029091231753635728708503691851189532024626575751819879222854741866544105863695948543300984312514470743876123253977199491109729647147541862404883468680340874848169572853148405184039287054838017903433554356328371247351682763249814965265795171182564990153429050821980068581510778910663890885379803849737530834294383335776133913911220452297106706539067931912987605727003930423394180776223972841112313438159235443777774313982919640272123579797188108308354307804575365974661157685038159080440723452606108591586065197828685749119483864919661084678834298988625655902103462056632299945967626910379098890648485730300346802407093575991162536972082506460003950622468460387409598282814623302311625973961617598074023586342016597980773792389024275860932739337768404825674274376589633359741428146678536841991468081693497350526137314953894157021848610413960366583152710702038515416857600478384392044583333596551660969433627888777669970706572773889548983694387195472651011360652729121860433179326347963749023540741953513565907879487719779077089026069727355187055763423749185380559566229707256270309628014969604698301383713820865484632929702235720781426440322630758380623602460004102664613532270709594564186732257121346025368975176370542000454685527934471384682176700954561061793706874690528527240237644504541609891373956755546986037031687388941087383984476459939625132047391298615816860137877315926153340802254153967906537581953921780098784476706235505480103901246993048567205350113118443809684794901364634949096618244145931213766850832823654347788823977907762419700663661698820874612496882671560103480376822176529812232024795809494901578010162561246216590744814162770562196515223805073518404755602379636531485842969304302796865054133430366620097747856316569453145034015707632652879947470653782914793931897799602849602149089737685729941918309803592863207688532133074342909072160405976916970747455888615964238582055490510419367898725024831847057768659938322698335615210532403447296116798011747487392635991581707519184842807077027998752340489397102359843934813928391444623991011235225865598426586868692229486413890319516528615071077643875035720300302900123968888971137738556731303924360451721507565141267204114627469355133565291766446809478213106253557633679397856458852762753188789766662846557935748966125154852202328503156676591276686671107885745435811993695022374650321535822850919952629456177110335560593812380784914923024168230171709367136394572262741473023866429477849894697911959707377645130683523569681372552074464134096966741678180595989609332310749556527516812604058204273618990066638697173529527562864022849917049393636732986527636381119693940788433686937479371431636970127246178588197165620192731400746445856315973031477970793862851311237338411574130932136065864288266565801281171213002642322854572270557306234401657733776576987617184244729249062564859654177068879103034441878140970547881296568301705427891630470197769522111238121326217289918173778399073759429133440472283338224721373222196087124858011742983220865341860816848033529258206325889594744549645020872299977976774785667863299097337974237839778571919135865414732581934145785410373597226921110068891487292192597190549481142467088342917377883621682649283800037164846568717166930903123661278453952442745303273205876647351773275935145047753219232976996614587867618395879337179104392370484899999511687421904197852627118478784619737412530525060525044799504077068238782567390573243772619573846307166032277720069579347021890825139202062122695278453071379652157555129930001963362209259314502006102571492366762466619574775331750384025627234377356228946082467828158572083593649568659254133658301240479018335591456180270727154407400630093709897906852924979850503066350575603522382605111438439655388881667699006435762672009654744067551827544380893553138990194040627213787974803725677821356935965664029951898914661112486377636902863380068422285044617325507607053521751016286184126560725284459447557801284321579145551110603185526910958861560801027506579475727837728108453621911946559925167731298142524059398961615526729360625141365214359766810964581104597861831161433331959454066294830133117148600304523690054895944402366162858467755189340939649152591179842047031511086150146131977300290833737427555815916047138362658594077310244429165534771880685357119601527012898296056335278023053883778401734751013313093691695721090482469548561534637588431583572120698801678186367981437027106009263370964552418145637930910018218683561901923367469467336360441658780516523414720124781450216764409258719609751650110522088528457983981840714159305339470788007394192348578116483032899618320093479342507049808957344130664499759181414344162488162462868064187723060362194752010394831469796250112094925914805420491368274263412127428602283276501932661899131322796739078536600371310487817583760000283170454564204309781736568276681392649201709755539805518234484480289819137049739537202214313549391339881492846349838678381249938749324612172525504857982134102022507812256204897022662743106979489689154067433845668861501824928086218501068014389700142643709514169206404637333304115089674712969347087322347095470837777748173294078820612571736190822484244045338751084033743395045380248380790919277635534274041503603163884272587793073842494996580360892046891504509906583443644022637372858529188388248911846000007919258001028535258774945768599826220987961575805779620339038530905554837232107090357888859398476106433213283331870776134305936482783051113792028511585813161611437120153918414866448151008206002863639612439838705667716649656627536624573033289612704759460868425719890961871362164409405881404497699725283005471225190250183688746198187295310676974829954934713165412870270940198479323272115123672823717848687859893660322519592598436138022010363066435297600760379437217853425794274465461239548225925493270375992264532460224344174901824192329303764847868221625466277607706061325029907859327485618034141308627320674547174702211902051738103381051741031338814157838923531578481364297487398100428628990067199616010418773627141424651377695002271374848843337721461407072791673382472646088710235425030933309897191869039434117486894432185344116928118793369944724449812309160711607255995557257194890217945523704664931733493392146445237775379764264849438490842200853920106015160864372555801646452166638723889274789746064874062071086349549092300680744560313290146262001323667416611844546966633649509358529963286701123937639376112949491894756239096789148707086495249301506422471756225621461387710360985932278291853953525631314578949636756534379727832386136632494208581656723374188499433093361476926081687840150790894333275611486559316752739485630082616821932301015726768568591614880711480309499585210197949969023553421524177527582986854058012471316748759063777777556142773579834954487354990870709894152664011284518360146978387923799600265531459799415312680690612963849361948598639279775482672380002351788407853013018036504664717255394261693837666255039050844364092676975518936656650340285718255098469537987671027086296009816441794268865502814764330460439342491665275433205782854339897442708804244336384677565763734399902907721828863625392485562229998790438602307743878655049796532075714854124741604980449071418488780468833357384450295939087338531037533956682121829554508466174171637754269842605634016335717553129079168164975645082456135967754520271164866603382474449446267121281221154884413361250509852612789398287858797769384669520516201934605992157947402489759919958889246099983006156762395993266189371352267996387961616517295876120566746888927126222068156918511881656575970226488979852221920219989959174167443531450726889970876890833105676106796455434064178902910536095438502638271893377472542667815427699062167050283410810354934706978123201622256832236751063458219582722668768803785087949541465003362677677640220232487053163314117563730997152854571869072832864154087824949454339436861636715975340575515304621357661757858176432178099748411345763728597303284365722330346011107109133592999442879654851613084452046011947589939546579726357786295156543402256231686828917248401768915725019105937032375677002978020522306926712073081041430482257379442606594875399028647109195886945133178852856093490073402114340555255434407486901762010478846008276212451261290183309505549888163550255094468337767862584630932393965298759317970155051740552364161074739478033521915710171186113561567312015965368212232626256900652556081991158447024541757696800600449455883882622859326264371529566129585789058427075675367814743258348597295421565862214643558184370111651971472922583933661073255279341485648567670972235155588012368765168501744353169569168177338649849263756072712944736797249651751736502020825675344592750126169041299597362721002523601387279904412679546254053921961376823663603695552245319453024364304547501058327176659472471280317742346575410129898737448899561790710901209564867838088255936538701543230286271697460559027696115017903387044787644656114868449605057350525298007689078581680163573542038541865362188062998982617364177636461587922827680641652128611149758779972008523690023254255708017964003770938340714511645979018365059575049065087512755000745512036865313969556375345490643180191905123964721744960489609386444491805600966156751777545091012286815233566735985905846387996726591402247293313234988130908997792880653817019669515876694290844192571667298659793525612833552745397305506674057203624309244515523985501837158549467498137660562521985818080950366070615864625887178626632416741987170596280877997054225321943543922976946376615414370496975066137565253041533140124581489139444655390561056321208941257510116664901072346405573748043078359614644966511654555453333614592630758655885274642922224537464117826575738195486231732294758435537660055137307290105185972687725499296709407612774526207885021049313692503950970226687243841996436539995292546380200416338561665622541300393466837906494691881430780244076441068791625326779211409749779752715900567557694889419875752937876071316220026932211540135919132150164708233702349193114586398408489667767677145126879842606905998463129603711458951005144439854092190528655036008571466750426855406947485050150319339556742997210399861429170173594892839985048113540600818719708006971929160653017588635065245617372100566208007295008391467940744404980042754718640147189243579617001214769529086081462377280217715962937508064908799758997970726876641988339761099933649038499520148302827332679349943864756842818241835306901715797910753971206619735842819825452937056753754574652865883116770814765028019835374360690702135660303193839334827397994314305392062956487266440150634377777722027672580100459301049810636748594255902758306970463780024791670908004905484714778364581919853318113742680197820821407274279451802080137018209619941345321702753860678260443995696712685663310045223683981354719337421502889539204007699734410904399163927807692903678703742865628776837742533684714553358114721083255435610063006345386789409863565364948609049556985280833958551734458649863480628357590076102827424319101031598956071477451722189586971379030508064327662038213989490954214123978883952654401871461363029991526829244116660323385155451092527327571632661160196524427395388595676784246993952137938223938432831449847013645566375747395949145544909634019252485418325670732934770268288113739749311992270346802682415119536859485938560541098748228894687822306277866551440539164057659322733569134091084224247174993703813305687665481788938481366632819464465167016756865654287513136000168919873101122053278481714280391133285614669341483038625250416754549542673477459186202414640109045860326468812481016004799827801431342042346603620584369220402669916294774775601261731267839030353397761982388491472222143332384497774122768896594062616378905163677089297739829602689712540971485915604617253169511304999349861947224016441379002652927336650790872716619984775244320944865125753735815716496794586213016123574019147892554428930192503405386371331024550769914768579943617430313576250082541234469727852080762983329712308933288011230510266069328838782923119491781896918576967345160452822007105470137859313209582327676236745446220613270533182108649929306161874497379841531161482337364222933129622598285645841776398970920232770806754705551351516914468800572997571525812102749613551501216154400944893378703958436740251448524394034804014595316557706357549676597759175554749003287432405532054624867985161476985980138609593020936561247524582667456625134186882912305936730853038632014428899437400793976761591070100712159367137250281255411393812009963166544287256383188673820896594693049975051335073939208845214063576350028982334360306505436346490678846225003177353103856450103013091376514562438398226594783269466774904808925602295118851419669190580787916993302867456092037541541466332340854938660554813684631500741105704341740518499441028299679295273528352430774220389496412956584049398855342089957775196823081457930109829432347042435925476691152444795435885856215752023085111260638785590444309301813841255074608630855236205443976363673087096911815124966319501213293217333305930775953881995569696147124495051542951903143153111511454876399186994106578951550701521297709302043788508932001125035560251640443414782689597462760895405981513136366283748648588978182794530963750692670736878064790068562427735677956606794559339106470156197510419747624486125261329649927712494059971698110602176989931964124389904940403509843451508776840600916964471462037840519744444273239172523617991915083555355912745062778954584105211213653326615727417976090968251650557051021075504167682249546334311666924126214892113300293527602879484880020095316923821211300259404555511201984469369493802352500694176355357236262983712186219176705906401780988200919752955945665912858602426246020608971913072837704882399701762841350625862448771768516073050898027060532958600654892534176605696724893133646772915542597208771823629381376657112920370535206701541152251345129732452735907122422442179836242607064998679397382344746836810798106526084248594133476137957599066825726707961185255708117810951884768505835664813088854828925348950468908897627892000953633445792200887237177525777717366148118291289350729254377333655364398667483891106563937625802861573385943802079827191680026901818093493762537521105406461032378112314603512716487601114979738878796880050008143415175472043239090173524364008431172751312163332814758162150840388180484904957689262861427946681184257475576559102620649877311294705993041436896236409024218753305579514795216014749859177651785798091140047943645032807023477092067565067008684379918266675870904217176910187928191560479461838480685026038652411638641589104575639306643926445557500950220975805603615316580997794769520770204315736031306796043667588833649817755981921844571276776037285223044441454055861124411831319920052084770842629310631485171379369839420136766506359397327412598018063469808744900636571162766660498640633612880005898173737222196113653848958766994895266188465807720823571821364714837606227585481706718344776850537729402806336636004789516034498264599161896633689755633499833617515774829450266273199917288677784345283121565845267664681581279132110619241009535711689359765289625071938559588586689686093874471531504782660318545355072831693897779084874638212180150354158222665312397111432806409663843110417886936826477883378929569328337437650651120035599622935290814003599930550524718779916550944118828694171557413167442201409421459002169468864114697903759283195003125211296630627683952538439716595715583101136320493804297026076113178700579077878551447463873520585412831065403324749005440197826065004152354192562183324427261079596790863850941442560015300674819953640266837441599347274565653855793190847404505446000673998147021707403601339222525015406124304627186139490805986033670130033814262147233845357362471736283222178874808674860497855436290577188648473137474614928057457851185324038264008310718416331883900502117450229171698760563037439790144917995691257431334010155144364005643760534566346711276024634091542310542932550112129157668219674155357561027338537932445911389369298059521801453431581998298755601570810621257961514332217540706159725335211177977771493532200127582931178117828687365574052922315748968697285170222681675535985668324169156811906616289877559419370080283535877278804067922613956565006610838938253118120157290377260298321459591613200567006529541232469003464284956604144868176957227103823408258557753455904471065189326236386170978058382936607061424067073776402603878631989686659549448506149290018865424361362590466050165677416001426605080060284010044280577710141404486009653557075740117259258359391877874635373605275017702512574303549775684660849724459351115296213368055748756703942093247051752855948588763304884764730059030909194135902240970528706640336268211777462705744001919135324581773385154668355103316557293254972848026871973454569422731698241486984847795772448294709820008594578872666302200094033209260642533746579464638840537842797531549064396404124766031093345499276441935029721686499009714370443957443252362197161879320686869820285730132141249947012710982277060570708206745429856822820852822108913707837413220020020941817174617737451610180366715342940477045067285820905023540653534955895476744442143504578122202298361768609020648580368436275247138909988095363603992694302208237307967717081070851463065513400575694049951498969581187856435288041339721909606608288069424506829565073977208344873045146811599784715068057882031875525346944443010534674947083006789595280758052672173426828052034766574651769923122340961398438305911081334673586104775512557864920423931616983717971924146354401972220060958004038326064768780437540330579980702182982408280649267172013742116421669853593356293997969393273623799409848845328792431321757145579010030732898992389313904585684824086257504673848875469841748496582803770075480561175928021669236831181387311277743365516194497785852640475703342359230526829259946158572266124248191494267119044748767756864287805951440596599128858034808356082861747961786106193684837553719439083403674407536714273727355427632202006022532394783015480468797130024819654222935130299969990790690548705171107862874934585384373466735528399881817469489481367426014387484007569216686023092793159049549378991329394966848562415038291509709058529350074365795820789005123294024506761317662081988605811041672574078211931298607090778300633527096518243749523466065806569213929290453680684606134336578335697147909363183633337789859590159107238580772203624530965029623269557069192435993680553069408380451119707165917877093943228773925653770565002571819722599558879583357038363670216163291423483878061483968089191955299622278008485187530856242475894323335895577321025209217998846078974604906586838872212313653580124004408877369370241451448654905371367308078725929646375773064954644158322305300846885289124518399317159730925958693758784147191190079988923900046510763655400800890305050013207806217509392309552924289405694267295440378565220221302419690416480885717749208113013536748276333879291797212564932634520023836711944553838241345567588391973018410109377965305031193691445490766469555650775077378853465211792798268090381350356265143373321421062677233200380259667622966639667512220877778536346837076961765652504265916459303427594507075040433799334891173220122405361868106802357906700673855529060430256475332077653798962471515431546478203292928275560745411958855343500723004669542779492412457355989794383974536492431648429860897345910126862229958617813705145218981724935492320471875824563884955236432647858563561406652086785284932202771173561202774594498251354158598778194892537645347811711820227106396928034977174524164169280241432108774791443306074705365673298360746747574948070969050447353630704527550793078261498348036112037548619200768943330902188730873084412417352185379743892090149874304730056259226716773624449456457420178785808228830284829846006132890905289132466691193949513255620167442540321826036009685286242986542606613943964735118894586364693569312684151356343595927013093807998389197625742261417472094252631593872659145476909183961815909475972913156895953108156224524684269225980113965234439909548904573086898442318715782227654257336323252767950354320042623525648741005228289024593927027193585683903236095339825343209439271516715424614567598999484700030821920213219408078114744289779383883334435598755083605530404303152538170558273822780902609227176995961494515607604035284921619700870182399017466397759531910070544173320315170841565940559720532093453095160177375575958994438342540579611923400495051465590618461747590019620467471356053135047475912040621121325792026977185256754246050971945100614320836883951496377636524501261604166481533275305472876892430003128655688432210552643247080603571326491203461931987033914302276395609021192629646895019513953511748279461734024652949650678510339809349268944195521358100342365921387689123268882199327180097834530086936921513935395878256267333918999828863125773072925022291319752628762170626724753979718904315818379702932662001003395860151338983476910926775725400108905282356525125511318499324579565294957144226259546366870565567748330077926482731718654598033685201601973218869979798409009780195666393714281982538155479565846127967218385004276283756826790129116674148168341784005606979728342862281715149881839075365293177556348931175777038271149003305214906399184758613717245631550433315155558920348349436325198046177926649654208386967400027278534824116590216851981847133837839122937206836559868775012859428590938066654884651525661542336740064185719499251311733063110854477036188096840542695497772299757270520876529072096289440519972427002453373613739308823561295362106725221623721322550975193532011206795319171989737675201878990817710128498305349011384906999567281017384586237015153008285842074958700540211231440440087092701124720907114377347371854072946344825617648454702597473412561710391624319214271737616215209642443977056844405962322126489874093238788879903035139390559608746013144326552349041679123249492420482677225415108673707437445164374095633329375260352084665410288924472965202149115493536002246759822101179023088811894380824096236196833603223171884862353553310016388484651101934595963877061359269628144502376543182726941269675981855267470075298740660322536389044137303435136765288400504433073706030160162011138356456463557015124357892435141330900002969023274918747658633303398988477809051495710543209332269948497103504407258503950127219243809858669233435905857757625240038556392898891114994758095895771819128647160904451000968015092867558258194880134121463666056796737097776121163650620901858711816737568703609998442554440237739051300369016531674135384805459559993310384394451344386422486624704569287882958754469928415107983520009911722928798538336481217738986058705880436263779599108965538737029941408811319516794094937093781474219811224444883960766792588335745001743193590506398961509157835577567752361393354695632915038887848019296542173389892345271868120487566384696842463818376600852501593959143108741567801488554255526152090044652900652715014065699086786710651107258266871133402249074159433672020333994593567308876271882981985946935800423493681288761322148843155487792044801520682320590503525337050114346152270288097706338309978435292219718040777890731752385313414221898139307039789839728505285840622064377841770320246762073819589746061384406682641876592170163466418332533466793261276413389264842524334623409035091591151937598225128187795662891566300270580750314380680736145504273524062349994926583526117928709572025629557749968520560505586071667340696310822814716920100336860154272343696756379073562792998884582741758262656962540848248842795892786504462662830837930324880941663241115313838864881067808225646918444712139607420735781262813907972461246362580836087820015332701138008573613521752614581244287960540490082870024404873192523614054984312308378793151639459215167251084000456890984027953967646258052318837484074159287598569747591910546420245231546046286593090864432692157568241241470230213039849469126198776228166764892724501202736045193391546589105745123708566079090593859939457055054663441172776989690672711982372838168611375038488471912591631844222489679533534816406950239561725243255603423943561274243943916941548619317860983749249183488123404140028792975046727429188216349472320470261382671579488178938482459936187629326698731896792983825880312908087486648012151817370397840281077270311114658980645039985449821018173354648631559664981109730542373969620420129416427966076681268985674282796428066741671694785493627857749085269880865546407830716253171781642707190949681897265837415869276045753129301939226010284064277979493195727918947833306839413978121415828867304697860437766764500761340961326646257617183042779087562767181620143972373846106194370164234558723727914449903223327926276540700655222519737132446606720996057821506094690933624322587322205640516476987829362916481184673974838834591358803356609320789055770151291897470465865431422900909581232759606836906997160281842596480448786629068360859989470103539959862807021194333469934820961576327434686751027702832017279570077554493255679649218742327163648427004347635847804025615763463014008402884569315205628895552913488977404318771110703297611381017440836019123230678154314711641612268218790698310195358521313745815093701363828931273820529232152545809913433090848191697734104174606864633102304413156955090496852750310956120920442487090927049262710606276776372171102428736573435121059877204305539867963696964967397773259184554218551228146446526710070142179896923510681738337901705311748296611533363561708510835386026281280614982207243511488012263192170859360573126331869269896759156849911470622818815087467511109357855436407876684346470869354884605194145043159989858139775894711431785011470168525728474258940586322935627869110197250340322816508717522886901610811373670402205419039394537600793826526059679101332665228030464086908391191180327131664035362218123077023862739766740636884752043740433185014431784953136716103720574990469405933801258323146456672740893046554950909322590474643538646349445308893146900424056406964883570796500398464763326876292161955385220857170354288411526734287086689191838986199765961209613278917407612205329586700634163497679539667690739244077442047040780699389978587735835571518170495742956991578252748748201898350688493559446823434744897134060231240512746533146751123085149693847156448627030378149471673413299807718870253622951486400149659756796803276177806999077380733063819425725302250374609686463929772450854267078352206554294109068814080648785602488746762024814060814826644950384895157965033708852822810734872188120623035019881287462174102675444213505215760795192741348950821588014737061752039971954164835765105022340433816347236286929270691004546227099056480903249869279460334704687373121317166574232609781291886231432218228990697174786950519226620074358692844658628637890133644489279644142918680885437833928862446285106522248705718600742974390141805314730159562451341497665692357297254460685105678631657735324317216965376429438758192445417795984851310383099043569549329625633522631071495327024504367461593520607867448626389998840486740254051993416139682325930404273052767275578857884580416067402929345128063903975178168655586408283591543682070306516905983967968606235300124701815667720138993916951292689138510995811014535212767195469160728376110004980555895741711915184195123584370836462572286223239088894295509556892091763773013210020416313920499907854652864865087342102308114813723007843677604230441494738862969367452697082540242888771443224349042251450907172755221159808393955825074212779641755624782572498876147322419708157727043804702309596593236667171182026153319172972852149216188634637808327339574689562811573806115151845485605729522658584148158874106586305551904568239318364172653843516474486625108692777457956965670723892320276806805419166704720457187033136409064435318377855609835772054183398977381015677185719161572307176644369145333541409297933190518294438244163758424179843730568073313953470680351046878300554080730047803810716755620537456610093331663250725608359097740109677725711904273782263472566178482593225624990525592644693745929780071752065482588423932863130378391910268017534309820778788655758432946849773861942047620880836288564173153038243868885337333431450606480062752219589811227387961553594359988549858088581784572280249724864248242334491432048899461159650688413963232847995744722615120601736800351346909477292592218718747427145241601942509269235999167563074206536537800215777505024512224987351018895856280948578360677882937142366509715778930164833219739861825694249865142884733268964008434009158527665179150243970580079066829217012755990480907754512485611799849229324483432698423347140694795884071463112677482150475506324694537430250811543897489197725966630457268314737837592107955769945292306649759864000067899963944562060109711677113143836547721034611386048267488288725966304138812192549368925914509888112206244176450713029017574824742609648797284648588401289946340301101090072557179451559023276781924381560309084844055675975093990959825851474620103001392904000249481406709860042121435924070641403284360709026692966303808964498405790351709575691283034947823239247793525871522225638542695022876723531865778838205474918501715782459872798279035194925164556040035811871430590120391835208049447841331385395290787448991025633618906087519185940318111271261738117827929729383356426170500460821559583883681102867435847555421977999707776471111423075604059823397246418643036407037365920761002999603851811686816137702978270638269203888008354572759605726983565245257238041824097461036719583154946213950916443429709984222430391818667718841567067244223410848833602436965435648922541946438096053436688573710030917244139453001407552549045999419654393547341909559007903559955429490930759845301414862407474364529215295733462055024840262045010354587709987578668588896305220421164093327316931903068063397850247266190038346888077733710640938345333754743455706975404275586102096466163966481065177360471995813584603014573506531134514063783839365296416469208266550191167047351747322656744697568218331378737753909495205927994363075126978660522931435507839918679188183654379321833717008165400985331119560172630792603399224007559005582564668675479350435863232918303580777403260970506667310259561667034277044445588390664830951262002539359486756728007977714275870796147846699929762748260258075051817747348675931794073917368690556452633916687950967931359237888555474132583405808935741413355609861129744464883659937972643028432475836202050718183081050753048524099376839069689159936582814290406306533482645610419723807311362255822965345218591026838770254330451933101793188743944184990746629320939801499134016182089885969730844644872132215907326974966046476783907388124869844664849849880261798427501035487863125877611012483952960955683549540421201041869381645833456896167208048154630708492462541935332517359710732428990376054462089634555566043917996619113787786991610344457753657872663995153582643953060936965066759682391865477675286163853757998113849691568800942802044870259606469086232413392604008633582688097554475347071113423445516030213350969546446123079889418213676529358798452670804997847231239921680561894978629264436188923167406102036200511879733154347486150654490477284097071252431045963708678715850861772475376890286893142339134859805607132530568771822963558577530736191157420505522321794758560388738039815582400242725141830862080875090844839334742760290367417506739878845542225250926107106652508023616798087940092150272786180435340818512546402886908658943880954894958107131161503020894245103253706210990993285617459096151398925056036696647493251333821186650075079324878972829789604580824736686141547078411349848131753250383873722431858530193384296028076738207992565277961833611218606194138107111900931935531011287892122482849930754944074081053409304871530510608734785593096276222452655899532044268273901624813824933298548038908070850040806599809240612715930504281118126011711359006428389593912921652079737073353816553847344854653027395280850603753192546046129878828016506109005333176654517880113810341284913624821288481863937327847511733768470298862968758525237353429159542381263019446732565271409311384536914123444127945551588958582313600864598534688992923878069286036017730261051147652577395144391180890810165022067146763189068476683234431421230534614917427999042792273895055092666650839566287340790370189668555079623914211989989061737683599688888898308610286438847110117585122826019206624759415737251248721343048124049420036325094607319393125234511770485799418999484655932405745213690772787470123666315659159412845961605007621779054999684447624268704560208574926123997321861363541553963318349863837032397844453757748030753006867935756862904872813098883858501681330892125024907875260479284290427183501820860369074699185788285066294724730216488013426435067863869908399660023420100486324372671815395545092441161480349989190839938426483934075996427134211357698235781487483786642205015971186901088258851649310100037910645666216253755005205171525674833651200205942799371862239387887839501025957682521119665930144573696807678968591615049505583517707360074351309318246397524411964922961309502150621145352678974442661797513782680316074444234422520840847461624102169895947082388528070020770272523935160295591494318840679644404345644771681493943515179814536735214601233595298236939530127611423533264658497789047506279091731871026169750078854884449128091411371149990203789753515336879037186834995307136726923094908589713806170952151878130410020110191816972223970664996387261690529186857952556199632988757846738996427505206896118051790595126786088194167209035816433078499652185101395803501822687218809609636204288698782406180074432520664868738574026275636863104487585756230720217273842812107773256940646109515769290418103186218779363845093141281981230931277017724874663676933696469928559175178071298244388955005008303291890314678818783581117699337396942601263234888722363956921112590767291548489466679788481953117310869987745482327157554450927703119365944554485909956925493854112323453961262113339982636005749195044651398517922890957835960618980133576578282740997054444892134947044196259030947287039165547739184014375997873565346511993167473849429177941907479326904978561159526034233317950193711438540195277507567036899045788941836758090748008835832474798016785111209345396338840116526788496959680212461931348901188489582101324659784558765433911709794532250576505518279499191133997564181257426319802575297785199523505079497801721233374263334570018278273895502699195025663176913609311856872366913779296786379357122312566390333163273227443079673975743973583431156104628516967781806090525880288476135153678813466157325751937111213173021249797427705737451049714288612243886850130135697303198572604512952074774904299404496326523094723259074626855387996074593358186565926465349435790277947073649552135335725652312815684022743874562224211282588200493933343460794396958277060130349848935497031045564223213015217405592933894425542172698492879628806191467991306847861753444341349621770181746211639446255165054669742807067165534905188215809666728577234793983897797075588549709397014873905117178209795242232577724721330344567058479727207032795045822230725148140680610787905841726993434322271473256402385652322507687348487836534255379407822087438822575005223967733339929090337295750206329755014219805941404961186657909904281639097447583539611443758469199942957920656871841408763118370768892190515619777236247055358938425277884636205236682853888393139303379375702387274000206977479074892262133466289882841003570860408972232607309983871466553818835591933752458700531654428840410869897245525961389122810121844158877232317811514234942018638040609860832826649044544390693025557776507231053306319254918403505037083892057761495669864012103666570252964233404647618072540675452816428947685967483366179288098455944623408517498406357896780835331792782924194186328276936513437001388154265587673805890863362953973758903508147270996363433470990881325831374019419623499974053056643786734773249692679259250365580917007231245022839163142598830398500561423910348415668211263514551364122279001532079897946221977913763754234280514610257781219489475292144577936662928166891828921168833783189066464018419033054531703218730872434448705414540577405467439508929301776182158204878334182272928581723344288524685522914615223008977305401084100526607129651767263493509226507791314470130502785645467068632864142354636035913666772948203627602391133492974879994380943480562497817196946405271981004375763923626397420094003970711532716757937926576998455876488946258311933551789804044312428619887449722731839958794033563083253271559210939358108816226217330214278900780400322432510233868601916074067964924592870346979727696157346922051095637969622099519829206122117595887227726106424184986196830083863480826166717947668217114835272993326721743354607682129097761940241464536613201171967575842138614331242865849809200410161349880885637452435332224256065379074162278381862237714245141197194933272174663563428580767112623450682293835854786559586162175000447255573130910140251589549858388590855607815823134629759178880130837382226119313247135181823145775986975436144028164577832259057436847328961521364354929831154912485049761365600162947109113072241521195007773825440269632394989630653091044147993799099115519027592664076765595915295864134423533209259595416227093342121725632171972377208310113592313000457726097532074598707988383863247851917895115127638075575415092292202888685114791296317282654325843474647067847825264181689795387713022494725971384331038633898672037490312921345393719877548793607717653758817463409077462588956686242347787548221503687492333958784026870874747094989803449828682431067370889072166416433526854461045753518767555448224180104494166703193429224629480300465873420853443215377264763864507218734363173178427135303302567806495929242686840420396058897092432384282022843442760821473969507939788073405401324378281566065888500313811424729110816567509716395039112697398614272605537969559325697860645478203966100816832132860059968575905289768682341771535375966888242597502893196246276899361296601897051507723337301001267811678166169049998516968856632752755088261745349600819183608673008666290136146975230347639135110122048131921499561963409666300990433701177534816094053283928938246276173574238736822728559722010063427682823479136736509446558381758041443326125393785155158525344506689889732760722157865563964500064637819733378445423683772988339719954528273564909065692318420650066620552935409741000035087437435784126859892369482638703160411221820875654559310627291275019872453501178078968241795482500922041351129335751599191860874730680635584065596158045264750734078184615260892617724186337323507553176669800241942614899299799297259194357239451479513408381638323204349031199318292610095245599888692155467558589129260151906058284716400514114783317896222893112102036154430420253970528779528508954857462175706075488434637605390356294710043368998438067169861245764457765593290301621414547478277374269310771609083909224982361198185280000736935700656299794554472321143837647304393875160805985213760305507498131085895823395087369681962472604963162776721346274330769656391630356785430799035505064224253383177273169917235990016894447677596552472689570011544249830341860059542312638266669687401344293320220642753985883156242700854341343304612894403443942312599029284042884704955286353757943454458421383197705326015980783511609994935368412114425042461547322457000950714101020140829780592508409318966019688824292825568667445714570251110318794959593577013973480995296534217252725504908416360870066178706212362529959991897060874163298186878391252069906389662262298880323737781623237349006117398750252511322228686092906916329986234537127581658334145423559807412483706853113246764882290614177362182165037176309211018557122213911435550716966898268673124708598221912118888243327693051308354673937890909020878699882539836174355942205590812096247889593949432182942150869842522474429660102593625052065917185890389316610762401574473000807785763735007677603749597322196755606805817034905705373074425472752626299144714849355419507073838173031323081111015004661428934345266592705214622196139352743632617791312479182708040473392301277989876350057879912675374138903611740578663995720788352747548657500301128488949022851570957963339522826930086932918090537501461155256765484330679966887841602405931550533905157394817672568038608352177576628998823134651860193875809996401736937207814466573175596192037144575650796574635875379233187082222079928548666034455840684005740159274782473795278561253057166258130668127819118051022021508284730361300928530303274587824401608153118397109495533867873395756231967934097088669572299574615575363003250644263879351263083741073211049707456098256452430104629056690419481295422018809046906528782291334013836732324724106511127242071154875215403325208671059594840602897407523185201997745287143869753822752995517102787507467733827460368891584864684018742331036277116581137302541324081808088974178552898143773928351843062888855220176969544678810253273804563740461525133295466494229837597171737673326640642008696275962107365586035746335371266678807171063616149194225122760142838335251256074925903750944175378272974774110362682472919828690475014479921020787458758337459071892679835784883432986269383038537957501106760690713052215759864127549459733437629106843624316087816816444432584170869599667519001804160907436176591093757156968621028529308061335770113679576691910781390796355855969029311147483096512362875173396821796572354985047381980477100327407066670540326074902197020355372597992282414853173059898537062189331489779850971043188775670481900047085437352966479051882277721711082680688898324032764407608849459875531309544185259390857874795629265787278208194316660871657910349263488135287833490392008383679707780582394150364983362250785650393059860318797092382225454021964542589756495981760621579042758810914079233449950799779561970368652773775979695027728926830582646214951115277608956625719797464818871900242035394011902566205100639495199953420362219347260255620867519857170210649606798317465806047818355925566343209782961544384212261078413527555985026977974657448561466514740442069071499009038580785037485073508927437372214847408960761718116747009677833718137199542937575703894348789079213479433623825756927891744541064995508321393065684259775520302642428898405404173953613669892620122120500763572332807865775064655538011673438288122620287477980565657523375904023210801341796995017008874285550072419554751108308061079632520346579414557038351239121727057104120997621655817393836735704055952388538466713747785583594319968334601284022726679088135771548892694264724864148592766452204392336615840146541975193560679163010712510208461162336960582180213891370960268378615432216356094048989480310895546071457738801755932737627386079762723350872981902073958918185670744029103827680195660036765687308216576911987010091916711631969950847427071487993743551590087877941246377880788469431737921225682114140985172521848676374452977341365035252411428742577103960659047101099133348462673264424589907692022368394307206682120700501582062053740032791862096097593055047869307281986819377064693334627420980221760112850908475709293103830999154577108941074470028970945660852951179561988267102434763439448197291921388081687273699101730952793886172574302825024930811869661182197762408583887148363888590463718201865031603210498048179964394355131393070022155448333863196079480661066979060126495867211283346298680170572458719744116649398957596050255595714340155024192160384279315198301689778988196520910781740925952043962647109231267006531427225143949418941842067391732177341122438536622808308542580780341661594882661999067134043040547474569204974386732696119689941006906477359073824953962677671033614942842816443094961409745753178190848037684436689942418384708016698137954036791072665585953472886488420385553855475662563249148616417205818553031453271192064670669922369482786324668506468058479135194070109781342005803124109415492294459142855632106484580919757709998185321839782872023866431285895268023354743076327800939579967665700041242131530633647285268807919706203017854334651690553170329007891216847130255950780009763757175514007500438926187456049852462684220423984811051176485237021879562339031221509994669884111617985221971167282536323490331420310615670232351996003105845745909220390109913819758665489349558797294508604965576297493297780699772727952225348389328963068068982103354466220292888260376369211010051379887179397081001478114240292589647097668654063237232786651909484195253965341947786002042507082325907855456244906057276817915012385458742041552186405429087373764605009833120215831803255557467312182492285525361669109427241482200702690381123265147607102113140532472195800673313024053750227089866620993660484346494219508477032080842329722037353942919615869202997688649685639672754541061524465876964910966207685902630782104030752326225551639066338931855373569496859858888160199265709254595743444988137090930392097021904617381890627080736449968411909365910632795690126938662226144177116727734411937588466821772104392342293304561802247920664747884272849294840371849962307753801486952153875419791648247011832129088126211957867911406199567558677746828634485764443524957786516020446641673794476138746774164403536516427633628097108482593399056885757903757659593248629814922093368155913662766172205192253928767772420499866555035320101352941521687610152045667184242458925645158255557355039012750066373677259394184887783579785797589851137878795075123316311741154813341531088577974694088533420473273895509184504371133833969787493653455758917463546260637669156946839066464322932952752854510284943691715986669547862295554122347444386846199988542997647787037178649147323579903768644966354552774771757215767079011253084787811096032879121691770491860154431018735476955324567228718760159021912106594665456781164774026518263774621199413144171019953503985250291177887866258370708946991615175525600370548905350391504813390026803357658078045082326508523158834655627312757840765675762722970520450415294040568364686215812028409597237277453681819498072586428172379563658540155470612312023849099651078694672276784102096839438198143092101835908288399949459475848261013561624953306721041587771328245922049355641484763249886951922663533020811717191445045146232348817324631798274610709641489614092414023026467322184817524089595306678650912172386694557441429989391014891041107738401457852400165481007573573064034101504849819199344174544262384396939022095837886217810895010234598353308633639753089011132217159829138340153455343677827518663070987463780853589149903073271310062990891362711643599607491494578175222418282912988497813807250135379331587211982342252197978825684122298974087204549765587685038612602251561585764943835352288839221177367393056032891434413248555998270563287659101855739896618911230675961503350587799702493751950222243037121454760021316013225042936956774542780165818211863640104162086240024785149020562475311702926185647132823849113593768414661064706892858186016304686974047139069749988561950292405437842102685322624981520488524725488690392363697062941477540798123313028842149567517030445788546002892466751057389731810311884432105296331857601850701850446851339904156598928485325090712998031512276491635999024377565130966726276615535043411179890657071766198516638372053555806983057211482033275396623695467570182974548843644932581592764503608925478637071074149821734727981538673259285415364314724432203326096798004548793811547510180398264897247743977017743754754508282947774667088247701319253951818785746778024898606706913509062715438747154802224441256980443232399827130507733122331807263611604442277347512181333719806009152319614484554816863148500524440709338248247290176274243380367704567091606326844235780517905529351495408676908276101359730126104333631046892993563727920113833036136937212550558323744667596916097183604576895067414796341600080741470566584627413998304279375141427747752552486684599163264040672431748711492859995536963442633100160027713601066265449577599417035327132634979339401306135210175079817563021479957801900361377635497943479021670480195315334528021524920722570835530167762373878630341702295724777842416136241023584716812948528974900580759397664612011196217006812942487886134775279582601955812043844492883283411781726721303885750135377669976754523542036397689466083191415587459785688539609833564048766632426298042745489295355983204720235591584334156085999512056757975362662925999190819304693329176625688306543272171618698105454249004509115365023663340773897945932869450672131309075811111147777380136637073492466249780215053160141997012677302558272172119536375340262260492945019564713199474975738727282125518586758642075095195517344021105965357718223533812038110512274825754861935566534351987274160721729324736303898298989943722078612607502888769649397786771822587987032563033309336938038075389690343975385406294395147114648925462806023597170311200984731847577716386740449282074780603183476875788130468681827636389606232653409720412254978106902181125956528104236302305243847575858100507052795567307257275670442213268635664591521011900061876567636256634774532222733049799017441349364082029284197836390726489087882647403703269693950288498547848457078948121073539774338519501827912224520555250195534178151736196833901313708853954807198753775111060001092631268483291045619263629532020988181997952990070541451378139657689030157871705393725401990158446184297848639722311842185729704960717229018351667029785271603678674530633102025216177554399754393226524153945892431596906659433439117863590109267315085546008245241891404457175516318811752441675698546572228339568231159637101721566327335683097371754831292113820226692938117775968217824502177459949679922826239265109085071078562487845890157709092212225384224485422709083094103123289380926526587946953688347493542697384739282044705408907132531498639495088472748046864793426844108206654449794917471230827025005818605613764016266262928230024434462317194657101293240526093684882360927806762283407427785436689413086665456971527819605998600652800682892712037563252624248943744645285247190624915406760787837056553762186891819791951117253273557230608062205512812837239753788964322000158859170319473448789408280899089681860747859861856908797433302529382607179466206630345187178844968456107844843865709909415960692489830867350314263205097237175188368330514037608758826945811019449937287446754338322549906685821282840588661928765355178724813410572885473343977361097376777365108637737409827599385328091347687085347635681217477480766147822934038758040116353061454739325096410547826288483517736318883558297218168972836595312189050449515705129309436015429407058779081350096112441388262433760834455178607866116172219736159862483103320320120444031026057612807341363245389843648799354762832826327758292578796787165206847744557503254598114751746797891426648980588906453359278377488283083527574965908231359144357871633965935550256618436770673555513809743061028268198026612384005777547712451004496325195573308202338286832571388529328933452248674119187513674985871374906348612558226672304987344245846201692577796765158720401099243329722877534413838640853622723302411746055630922344130951203336212904239514822399367431930783016852951529604897059262676050369038776332863246797762837436444849379388844426953651228433832155670625417479262953803249487386396575482621951155416013458721250073282857130878815669855297491711718539797542185526738929166140030012073297403435046762905116574524171129039604660124372272192714972852588696334007884944341276563484651898938561829064107672317406594832800383273382874719778721473640884866108161785653702088234995143690063800116422549069550850013382059364649132026324268569751172091123668589364332857553213152863852193276913768419664352723665689042377348276166860410721025260218528174433677832818814240207578312213821229617117262427628770393945792844194626153607379040179514648581446786608533813535890937808253083473062452977246245460030622411336453395456346716019049828041483724366819596846583778017895688704949810978619480812001503628412148160613632344938975572615423481054286708453313681863010929995960311130593059574287586296563700072811147613172236200859389142967009998439610026814699512384132899606799520287335437689842162017619276951413649292634314974568714697096752526141777321514883039761209638716984841263812325795712846257074838291819864830611796913003296881522253388767237369201644090151750713532158052036148445276402571103574384260147270706190809490593451609235320991202877346591641049144879785722920674123209263425424255255256680166199583646620321425648086710350131341504793690629390109393487142456715814104982268635398193262900735265702182947087734051836090556568577724071896722824773452302879406666221171846348942446589339310355283537783851570903281678480953147383075783604041595068718669701216190025747465171506824370560154219377770911749260867507211945694566539443545856778118300634123593744637616749550105909865663788642758018931146948074324901680486369801814631539015919084397021528729371223817062469436060426147296485844194185465584471473463546583420985379723085996174179910646614010686018077944914462642579056440091475701751267833760672020985635487347787377472199078482257977658828895941984871638016251730347697012102221452993524027545320405108599782227874248073382624045164823088362553347251316665772430753622309883456822995583305553286044608406158947260932812632750636092463165285052052424958932801684083400358586877219080834933300553298056549082971377020244155061065430577649700078635269752873344887769075823432539181226158171625851956115328422353098945377368522802986800574095745086956221750379743268728901031683180496786220297479441331893997546406940693220320269903650540153523200879399895748419999672840935395331545421920928971734999545610561249752096983736889907703717849456938771748288717560836694723028799169613791864292582570027247031856189622156760585265527382835953231305086862616569646608185208804734796707481316545895433326624492575350252874873434401296922053721932212087553170755453516125177413669183658375358507393221858353188555203270948233263048906773658550732818748299450480100831325703302088877924125404305226404563612746120665333320271403497112014083521138750058455425116156707430859428071002914582586673278347377680506671618709410282307036083775106401704082850066945757804202056978613507345276703063823606523690881945873842866369698776670886040661528347358456713256250775894288924900780177834972116036432057625646333091702989864195832322490356971065144651825103285366577357748472413921327965548229407896713221812385598069887098543158987147401976072665334777736501638190987386040918418245215315321086743765941741339328648600209041799014840044904873888901053589393484123194479135703185896669214192221866339746302019803322959895176993875699520752940010558680408835842862184048379053542525405311884350140127339097763763866896304893871424471807933666279771585274471366730985088873074380969980585869107391028682516502401699634637606464787513750531994704108731457395668016550835738488064541172688657755080107065026971529879127343818330079323895022526603806509616259632329886120982951874719295196096360925799383819025830095274553702455256330613213016977693426241531011298433552016423139423644299888372441734196806390339408330489502379850125286155631692149490474465879260717238923190163525991410488416827773293786967922987018834171787096630322758921787036725222141693150005516571286999504537908617592016927694669696714008959598032012948718135754261650651915541983985259055028294331862090981872384164367338551223593842796039056632491006934108962333948615856411288702896607790549230717214229674504858342141689062610589746475349523373679143821784526275417706825709264864517201074991540934739832376381004700362555022127957804833111928681069776970701080019462710993977252882890493301079316905120143401849387256525197012972746449586804395898685032146659639680896211414129017584955066933231205568531805440634767819088267758335397920264349869387535984704523136683344729443940967000337781802809713168783354009114031254521536099927328456224749211260216989084615300972115823567314013210942911222395342301845810505724839266287809313746821774705228997428280997468280418682073223869797223068476963435631049129255616600702890398521106896243125730477143120259269195733037604902428913811307326515118229800096701653154442796600487085882627277435658270572703356242679936003048847863251898909598410835780506871014007408838542951733089945221853219176611337666767298594738790902559427813494911758927048569475490055141085975455618744764360699492650334007759774986402154559454829832492264771284178018195482006273769047359077576499637727847117193822498035918937505996414822427240478200701185442843905764035257175949212742824517799323693737283445790771382947705365647616382189710508216313599062910651407272681656623555034413170791578742723913036510383267271384723344806476648422726021316353989297652985552223311050062361270586668935056681056844647924759710071518837429784824522761611050858683856325925546326761647853125729507132804505576654173260004794669342192794004846257700167142712696520347252729389716764905082786079444452963452688342619455927761040758142302570164932322387448763608662279485164607286909823239894884070438320547362597937071835558243737325523765473448843419128193875248581120084934001046966980675610444895516845762611353005792679303015584964962025469337198615029980649757176590787285300720496187422866626658920089904722515224231981583857856129242082989673019154136104263270363872013320619082951734715004133986537391432464841205085870597817412178692698209652837613981387656426893975735957931636170098259531756577293788698980900559936411671482812669649632070154129858076472369874982779451304137949707688141560645030288507284136728162821905539000558556148598877894253698058729658292546843888592475304569515272827289157963218974055739545228613151826548510527695609084646720703130021257952876004909444708449631391932386377474504011152365539572299452552147402769074741637140409057965574135797952498174757543760650134382255003222421560207456953185191841880991939751961527171100328818152842812301859928343964591360980980511694822298905269015534612777123426905746013717663652160960575394611138516177044980029409633454206084448270305703826401445801665445417401691739213518763195227614336352473818490403013883646229361144614322663318275648780246997356527973625631654353753268700219866185181450935603673608183703589539483065299729771504052638347614971048848393835301289921373824849790038868563458193943570343248336933942871202046797207749175111312460224682686125909443216630848885506407206570936410455895240337135383366973612198487135876796959047389990400318536570908320803393113063182829349514850424709475141015062481258088956298683982744120914774687491021395105820141715981393009782187094350981201480117934553221085596433132223451033228676859909099890924184963325995139949176785019668470281523055601707821433387419472941135693501857878795558352185048809548885087120220179325344009668434563079391318663658331477536523385559670307520185289131470725919207063378850018895502396321921618034860535958819429144715041831016785883251054182443095383227003114275515344337872151754829531452349992236403402446143444273740286034594319923726249866829887572059986947019492396583269887262463883987712719204753272410693304992062756073583760913168284139928753298668656820660330914089263371489164077246634414713852984930539068281780543952238147561581165466363972464892859449244463417722712532004926936811192779332637767518126940225638867100124987926772158270143427766507532203521241900022650203320988520428867338498406532520309945490935541133867352563224981876971964694076448415610328047849100129627896910151146990223875787993675559517917650190821331169255444616974802725579772381635961573134581798895665544151812897163070282653410759589062322997837716170168345469081555255908392970732934932002784972797048716536803767042774478950211778372524088139438303819117142952107519338660355501950024938505962617158265487789458109575163420211708067685616277808660571593897472106787875868591338911840178448063544165907917580180603630279943966065714917951279296302456979140930424973992438099554057062094175577683443993228960538966587007598986183121140772121332269049680230754014899848396665808798909791156696473066062630071173165827977235962929827845014040130221845801761478755835949925919404444638961364849163612011540105202270801145965258548269587191694782447330478828508671147732271767073665901761728250355857081541945797931186675968511820013013017038808218423499592018696032691932790210213070836169813007064457269500383205824269981300791326582720125756725273589554525276340210031959649877741025581825470264113124051555204831529508342051517143613034444380365298950139100211970786203533797064271501518618497941342843378152062576108830973839454140629526273458602328455807762570501568232657201900511684942009194196793585015627467933133640710749910301342589989736286608709949830797082278723194057738618850234624428463554688277572144766010292957331711985303624677637943551947838931319068004914082375267353329750570708746830921541278209286132385514993212176112388552474516987303266469567748625235950105705359156252673606985847617363136959621455175521840064125197238031068698762751864268640561844845122959066039656262725919459878783663422367561797432359226676163749995915628613261080663141680538305660878581239530450359096536780638571093059418386278009459246015661010013817309724986046905001317182987011295543649644595276142636803721834123222290560778427899020892766859143434057024242296204759855401669792873792069410283333549818596077503022789913981710832213974119647537303590722505077071867718481616887596658344665655789827570472687137734819904097619698340866092752977263421977388773816295262455482271786789585660193205901704258118758815807209942015900419989377045375779415507967258823310295013000554302019685430299146629276540346281419875731997741727007283458488543200705606930259702527220855686824017315630414405312102281676154377249557721917622346950062449140039829496908959248515311463658141306131038396421993858714075640971610267821167280171843041600384425286749945659181318900655571943632632487832569211644066423790695167966577765504798258818800668958579719423025925288535304104117343314962947121731974680745492437938080543244389532674436106746174456808070500423189785217172615129672901124700347314445061155913971819576527271081603495583749238360024221477856284907597176200223067778737719980474487139104797319403840177211530603322712438757058132369260004644177002996529924260898741601452991736198190462679949303007151336635482247641655850672071185690503955955373758380336342549107287317846608395282574595042057960455537965748318996462846315409619271579086541775319620989863459310925660264849100191134215624961193519925095560371882347618289885478569431084259952958656150511410263516785744272069172869559437056116337758994092967809266433014837908129058021534409858603280749410448947777736439508232612374237348760252765150290281610222755268041724026625455408564940069611890513036882223305531811893944627404151531863589031450246042226397066928893410384811384281563872704462227812463548026527244329149448713936642558127278713232011432153963066603990277962158356493280980668485036665468434581107720949930105851723272038791318605514220921211446530261622966087075047195893881876060176436915625898142661015133702836595123737102613495408595997538505391345028817448900995913847859674440208804318552113277082137644676205565100387980561046121950560502223704155986982047806741118579113368363682809277902827159912942119874277176158559969570714161325749026966977784914010794964881339385052510918475844021466717247374438322263697647318265573922793878551554055255277727346435563351223929312911556169952427525991140142767080551636811222121470913098801574224585080370139179145458115306450907891090984995354495621865875443320010524287927375359292475198124097949696693865517798347262890760044599306435381326252076349372061448308812704551610458753148590480510841077259508942301957773513555698241697531694441916868085735065444418248598196550787853430340709773158826223138009329397399340854642749112009943588892131855054410548485300281964819163897471918111978869651612642682296969827772178585461193598053561205547753009386226905098739249306425031875080397727867217011849713137862535657621337115756502684974647602147587615980136521418744427631425864502087252187758437494802798662202459117707627139954812066544362206101386232963080097702011797462346608987079815542247417317771761615253820945794274235925474369520333723149318042971014476462589249304644638613693954877429827333889653899701072950629577681997812230026184693046102046821114339821833580333712064285640598071371716287789087990429702818417798392578797921517513881705887875363411824734896352952374315968019179789928062526653286836195816140843148144138635498794406268622200014703211835482075115753990029634961998286745786712766664739873950270337354128361302022415888028647712741204817045050539502319024793714059720956909956780156960710201461571838201169299571069659335204080282803288094773840711119803460686978327661918546714297050826036088543267493652686850279980255096806034585937567378607123976881370211717312652669507265576637614235390315765979325503111773584634066399951261117432102870084132861469630826187595190022988811996552656308045159731882280058400478021834777257442794316062259252856731578150823824236245358441624646603871216525508340176137350409311255399043955806033429221328654605335123292648246311485832019221034657407125266590771994552903209100570509129214814223370625984230741339331204523587793488875586391159249687829279819680863087489801152166488522044382487217346585157545012179868837557700009427623154512288760534170673884765010143894235991908435015668795523328550585365649699071458149553985995006789284233142097726375803035448779288207997792372734548940637092239396463407911346385650745538919421634037975623389400678109347401806363284125788312556946247782412213715803721209369296828505527006675998114917881021652790192807566988438196363683576421206413222784738929708342486050622036736474131992003399161252602040640011032934476944135615343978463976675852004760554854126822592931407973134679771814124427855783577841833225043651691885864380107937676793296548583588973878162399524737592324371390030792022847813444216481570533991176567610245503648233491026490456100807747806994372083498309501374847914146790279285813483870165778871481908932608792273311319508124055422077861066001424420571072624920217310945433048975528715890458239463342660414102384377665078017386586920381201461389756162689807685372153016191220499972431368572506552346853569047206398786252879100846334617968061464079000275961611176727255415720286448416279310482348264464737695799985623840430522936205518066408591057969220906619881096890887562634238036744726303680664729820139974256449153606196795471400140524017456545125222539852648637362266629295370394122249267641244962992921762268398650854378976231680914828959311094147946480085321509060564076011086996075343502266758873775622990180897944392161052441993658050654247943915801441493579282177382963101381426079966643126229228180184658461615286983957668730651122546350507786224250912649286916088205343069364655276510479140358055964014485249183831983532306235855605990936469251069114177647469270344294780367224463636971991037888369788512554916979368931053833263079812644485072673275600024091079965054351900534174951783313056120646840920436745369579172559049199667148202715160437540119589974647201432457283091841266674310979264876558196115670013566379256574095074612432636148086206281574317442938038835219670617895219470073949775642704448579631624439314035388886892209987111535873447701748656797249028649020323766875788515741924369774639563304951923939145497455741968139575002394025269496232752433639592425126330239899158666261910011026432466490355195554124801689727871777119141254790920159135982732977144025423090094253783756248702725199225604097811095834947662022655422947437397261648369885881193086165246615674746441333951285819929514228396021307559916296565795042656495295187146022236252616750394858759365962179209809991920966041578033531107783687176948317093010040555918236267033888215397680729298143011309308794490714936962388919091227919334326195662795829543320998821046502500812562046495631446130692856508978868970828857793299772222362231238242634986575643535210339357715200989909194825183649833058417044329610557527251106135702793917599596225204642377248841098358704766285539087727875523464810509174894025548108941234425319776308815843015148522480186499074066764924587552431423476691678116714663930556589967866733701323118825065592254301481344248057489919186519476062041430629895480003545529764916273679791431493071594908825891623259955805573443509678095864140506512729273939033370594122456889873816169748560091661592436308592362821297763432954150495181684140487480534360144035533136269049020886375612302757115779238077872292864489392966041646240425246328018061203377889840430437639259157766918597040065163771724936503437351163178921721256231328696110153105110301529701144460384509809697491438152547482286186521030905925163856400276449691793359204071627754732811426218481552196259070156351159251744416346300302546111193120270719748754261785988217817898924359491614667514367008800325289648416837607550133488326769711336077251907361395758291811509008387748459333179603620487037273665516511668454072306919661322718314490554283255666066640980025172835947782710605968781655529378333445720884039252727690655627954320006531558450436648770218954552929514756165065558150514108758086838301162614595934716702109979860094759529885201085282604689092926375608165413938761449806388462874093502349834614714078918720125165417495469916329305429939728134295716970746383649672487629290100311957739438267378668229764543073876155696031570689873989969497260518419910960318464368795189072476020193401780280012893961642969490709487822198602808620449655649979883143946705376376880782174790647596400853374545228364519835737645068430418447352181049910729645605470073375030243038126011378936985820069258747563784391949906231658928671029840806862039967921782260246189751763576736504217965524683028266164954031238058343127364824712328628812105233296296991573108964007688234528586285866711234773685437558581280950123041142679705110603583417912123507313832044329893037706178850459565705521720014104677536234281400167502693562245902193172889825416538885403150071540540571760847293644955512367561584625838007346705714146901135355697049137319499473033023944456277822854094481513509814058679518480043231785830508491547256772288276843184369054375613470811735502435706439038062117097369828183906856956948489990032359230047707174390968610440355559803793049480975587013769901852318478710085282373614303113735226928045793748821162025329609241626704699160249264161025798343191429778739362721488605434205967311981599868082628211506933360671343008985269999225868794681985198636947852990351663302721529016757924335570445087593016426639394795742000310017916017746586669561803405925310924693497726839950475435373417442722817194674148576554119380517552290097310701137604879661281823673933746367579284120611345067465097105675730114780025402620894631769186104739841699135563815873737481749454231407896296134800886433395099446081594557224264690184534207315747607778686793199822787452716404150846670937136535068328621807780336392927834173595429900637169493147306430301765803262483796417321236902704417490687722872692729921350775757854700432457651997778800880596224216349266885074084251524561430481692697977879043205951728214151813815159179263035261107768506178133287392093240416593460847250982285578335264706065160472085077691340137463754548858730640382539419139700563332365518683709340938945283297945179930448729033013538054407980748588678065367736474964356472345281640943870322083906413699499816835421561568778043315113767103854898273904100861160608709612836162259411892829953570903327402651939088471474013369170536183824076624051125291351692333949841738395907995167003805296003432521015588655590937800588712706955572703016435960416000632717435277795876264243108755043393659504719603631638596629839968930239862116159660889471989591983081331631944156311475236229850717532813923536831259066241229698146944402853823012814749331603766406308758575035042996920990420049317789140009199456969075982468380520673033618883363617757822852013818626648258057946798885410439247092948716037458002790270556964132652138053401504775033586279444187510103789113250311302670735988750221175499700539551479428336149686990857669913133167806920374560107562084481681735641720593606873306745385361675227464800660718765121296454013268147263368957589151452236415192886252524881089757965847516506538459602096376657536887506207233926796830870200657694491762727872012796559860255970118179140721286726908725362375324269054167928533618485249568402537882740993053193884196016542364330802912462402668051448551462227209599639393241900459627051396643817721070806545702186612109941435386450105127340367603818319856126968527540690350398189967348064952358266866406548333194257846601333827574770759021304067700056792019352608366829977988742379007076842436380876240307256615324000113884486891278963211260047999396552227588426834207086893195596295073692400619017250225667801646688394951772331658394012428350769577226772377947770343958335951747262142913176152075109628942171176121722948959284401976238699048482407951068550638001511318188161662466011378497273822251390100238970931271682197471253576134297064664311535230744169824515145023486066300158082561885933182927360713519072521435861352447402106201732278086872697244176704188594527425817363212963631946580010460760350337037333236144204852510913006123714079461799560013706043827866485996315063079675857853551352775482529128848728643144886555895666525941867695607520545309102240552018835603602520338286436281886508003703442825588656531186170160427516277506046725416160107460192876310323962562669045910191098534927253625904289516329183459685389276636840954000666818908267304720898175457513823462031891399648288669518844982072236173200274497466861538532317509999235680999223127310429024693171920696163885907694437976755458985897153538858613660335369301727716786631862194274050741242618662090491947576517325830592068335215703307173650271158435900855548775535388654580205942336503343697401296508060211067089547976224938123004738481219246686138832521082414160328735806773396044110003586668255951506181176901236711613293612635918110985017471442289860111891972925727292944794557390070440269276077014788644251423903335054103077943197838374330139248830870048585906964997551974666750062949674404752522685463152780472971793218505312750099360091617621759933487964646086250547270459677054110922302346825099832885778057528506247188930003536594798844037555567533074112972326843834087751770962194181627112273058810049000579486630529710355479915607282111795181933734231963030453719002732444212540536511922161049572755545703805257646452856498035004034994559681043245507103870565207240395619312460836537416533874266920148247871023642952670156737494531594864545049182293674434332866949521267625908101653518837852882920403617110840095251200013544234010160190406491197307148321999187455351018317115611925983456921258712138193525845413172671102212031340724987629091261335017788076635835393792170688563751749448230055246466557650228690257201825272376814892449081796130537884832424855930762793599349618090230852436434434997307460621286464410071457077218430659832077194793532380085521940720550234770232963057393085966303228212823704804547687025875947978799666865385947822473743637822719914742215011396058342528490090370230761458848726790685664823334394110486580281361073816914070459040499206173408980439611106221421952247735697615298825203806383749857523675073343896877151699130366365316000401701314031603947790843582271989413283210491066281630411319868903710877923290078669702809524381950877389955266643009953187854224413635500158627916966784008283513847286391301048775645738798529362036918120006099230835649900725951006540086549686865423559563436087707111812215661588249383726386125271566315932557863179248405074286444499742298707018070565255256698677344444292496284665540392471751214265733744043715957911829756066162969706254624771651365225564082651248365410838361226673000546293579644986816308676767452805757854764343032404551261469051502921643972949564061907405499227392361633820340315161265796551773732070705551256125830510554406663833602927435768731566224808391946236239383775387264267024780564525425565123631032650365854772558738739768615777170281866581799183706373312246998126017687105135269883482026422588063416433325089742593998505244601944764702958986134449281900488953943424212686785254036062151179809556574190890384564699153035820045951315701136070726863552162455348207700601967898971870101513382944154106403574056590534804908339680448331688886988421937950975481509620383951309773588687634157528597203935446310539898634490510378244479799757505852557538834341382536793099391043253069387123434056844520709747049767423756074648942863080676677712565080315623844430760120336092516579540341539230344469485911967990547832010739632960869093306773072904024903905417238751269481401039877589412295007131158967306175810733519854296225089923288710256032056025776065440666457262009571924828065405852924215140826782406887590729758380377147999085218220503134396975909644870104419848057496020684154534958127620484466017379362942082139844775202204983507580897977295848053105186857228664295587528002078482311323832364942131798547280294704079934305961385349147494376150115366853927500286284903244416806820304510012491681535966433661910089502535619598072442876923009946252464631456168491366539301606377194227440390787037818220528198785420471504675453764768740766569387924955038838445511035238783335319514526810267944340191821601771859261620559977500607848656097432535930282235690564018059399802796649277106710671818227718504993134880149975922905971518485324854998470310424248296185513545188808257817499095428867399592802959043121534022291391673957938111117666750173481665548869456327283891752850952350458909316360075158120409923351708930892624027246364688335712965208975886415591019035852898275794681439302406880336816153553910985584649138347093073156860258230015007405782561617907433483090982119413182979753492844070564189619168952406741533074748440039229801123225914555388581465455051307780038585989810533566950087146176238502028547232760584730573134055633524596015030025473072200877041063545855775486199987569421119760502968470640396579232508071302216364530600202719150630383983705322168598925965131508272332473149142425992180891627097203788394696668999840288154457293103136771819819576600988110441928508255681611915578476005279700114441264691345087088773136277544783030365758556019542131121929268450330181378811857342315816580087802801554652988788430476704504127561234988056113061822052653763855157139032654768663414850195488512553815477989083443749618097819852648162166280203908169459362833452641582991797880252252730676295043058118957851533151089280493558732257665180753908433407133798942456853356198988368198435962975978039836568082860870233818804556625686491767015672235742003068041806267967147206698209152231820282476149445631042776277865817938764122234972587214028640283530287540529840724424812501022040428771213494285194898954343707874260851251621321304448013279190372278790984997174060941998436976089316182756118243055247364533797278038410975632038951804420657689456697561496928887612355712069375824762634807434632255319841512146276420430666459811024864274926656831261601653754328724043794597576512326838743073640284228655941904879639407520639600632505926543517639989810501686597296922383591693269897894606601093219660628320457765718695343943722595686520369148646070532625035370391520246109379922702201605607344609685417793208922694921611830759137653902908607676026994623349292961384703855807959371359897340514504952379578851733907099562841266028428817575477399905631170721537671953104106220575239818720121455862245280140007405867135077286692294757476634390728931204958459139939357794705778502966683345138534492232784140918314047012905801184090116452742624139566109316040277085743789053161651381222243041251067896129828359762765415920857223899360277849743652335250562414525928738304112517670859646547864388723664956817456705981007446146147127835491991702763892360057125477630473730368662198820549116786358395289361902623896481885795928187381068081641216991161319822013179325722842606537720664527851343949792599259922956147677246608815829219277561925139467389153304234430082876638526530347019980393125432415967812002782026291839215864437346596247326059121101295950067296514868125293488709099973500208611282921478669554577997851879682340678153831003594174791507053514933994829436668742265027803430162756258098416922122302906259150465079384066385960339584566060935725525921561971624329865023063307334316467329774766545450922831913478233741595549228071090801333117091833217648621536676249294441700474401496855436428218592985897571764074341577114667475072548575263165842469445292824319554190159850601662366737621035853848636388176182529951102082082243637190052078564789132900229823667856612845658201093860201696798157515901401307671171395425236250252975000082828329531542649679616913010579976526159534733139624222220995702354308229118130009543892110610815522624677377471547478433323260241017204342038462193875113366775098509714008522508929903452547804660001238768529336092026259710069647029858277707756586543758362014191526166551349574184878966060207842873392380691551688566868752554063353997676237429689300434850002222155634295318200421867885181390735935510742962083448248834011580853589544611925604035137729576829653098475981218826266370601998155138824025311833259501268273265889289226145990346596740445249453693162437491119417690781356503998544992138784816724245381028324967225993054365444709223796187399679790717911830079781617597093273176622720550067473000378593467789737640531737613211784396524769332026657177065468601975010575786609459866817240247509498227870355488594901728340909714041973230991059568407310409794643308871271082441496134323291424419439501044376029101431475651806277149129706745348120431848722158699957113215271240065243310837641867492405089269932191977054496380469426098871326380858763484069825422066485550834095113716813940828130644104419337321712573675520874985513842663268329251800624503965990085279610362559610448465632453631422304991840334575334677766764708124015412454983375000019346336991001179972625895964031214700035600528696637045327266312230444314465464497379857870597483034907230468531565998260337949280311654610593958473760099716964556304622565099138693872487164971592270744037167497957356272635089425947451967430314342275552547068243013806590838417112274967302588881930659693241286220718557199280632006286708398207996969328867162538234417647111200363541119429174716055944218285126154410830565719933924484760606805804360027717797299460442265629869535238779486053679873001798754040070851503594282170074983308096546406479609611498513458551072175851213370520980499342179975878865713665301290007570437607718002292393351049315119165654143039201061461075010311259214746903995823600449873665663251326323542557118651800463361455338030766423650375228941878222244029966874762534130151746960119359271620648177208680116956643118211764754508424950677858237226679949515335432178251363708778370306000417349749638726694498781616330351869533562886618856739509915547427176454022233647373499711460689320436252851475187434977021674569140407587111864349842972060597029952751557567165805987359029460792539843505643997897663332126881848230245649010446377476484642654683405255367333945207250472508204218036943096433030690676624989710045104446557217940141503733889422536272212618319455577558250037147607865986210457857134145848395074765398801232692685203257130882901191388773000018011428390376372395008140407280749444272313681998931924548008911454214904273713222478969548685602615875247679503883042718259670001190556784523729846399967979025152136759860950026132272093968609790316491649407005956420310580702170742740057586558059952601400591800003067120954474187834283136750083449607806296959805721432906120940149138204735916498473386570071518522672800842713966752568799373322421212994645284057187115957158360122864776150246865339995072379830000710862625368392757174146465737103089160147098121419312954083516801962006030430500401746715053187886707103319776800893476193235494656450542388899825861170028594982966712817023709593996107469251781179037023396611015135676530554758698530364079664769513390127706884941420062441240262613626635708225022489996871491173102451707305380053721052702433701744441640646074565214922994700074120665750750984014736754411468789651578793465638003618910424706929653121647012617037768819967169458981258248317098749935480655748464601542895301963662679386270035841910347431611313302015973859170325146777998499014211996664039223645927004333941510862684297935969360905436504403342857677762773099897738110946265606272517296967055486602441246703859709326210032348682451984173391077072330462422864165486681857028114042255088410410417052371700822228671462960452748183870648452775543531255676276644260736388036502001801923317893895727924181238542843613209344611650384949032265324201166322720259066158815103896899835490832023934758845174326660473389139054540121025891099669275650041187185081360428801800970280776385557708370446470750656744552344182818507186727172082721929925615160437688050888167959039761978602646876865095519545776002228824489534344232478644332648201429793708653145036646986918290515947898050254739795853605481607314977085287166324131099411749808083310097640630276208412930208691933514207500294642237095948322183684364172831084372749367237542266211082000102883541791324450076204261136816833871514077926073285846168149586517803880633609418627918430610135188942386053926710186375596482991831854369700280110743668870245257065093051995192223744399150224743462930363008983782458033944230241754767298731527761694674990332139993675249174690020474790785067535616219730511118716869466854163571902350194193733941208677495835178460293318815615616850519023264898716277275048069574308638293528332955729827526045910994823008586168815970316212439203638402557674984832059494068210573154739987299920571442361987200388572724851318532336371705731076276344201362457997905169333047221169949957317975644705583359104806656557604484409744155451068827584872747814556704057836564414187401322278362577086761569287144419632558334007516060631499145426443247753817530425113078166143981306462899231405926104881817839565041176758175660485731759343955784025519288160725699621669483921298457526964094807719776502077343013399511674488215853300903867034201637672874728041506518353385810997825059294987837420530015218986646345970203923464121352487173618404596315401864307268043807223513039836517925178666477586409308985720921672260278209906119676192785865071245248548675114078047931437314656702468949622661310477824667995997416856179643344303163563026339174924213283083484254874031424346470318818421570462253965619289119077821305538869035136468992525151613561509142362160237863672438548189709490387929354277334475864662318160059820622496058057048082160511835738930616388163132634119147499483246027619543903311138570680082595105210243143682433952270606997551183921688407577188350552658132619619929855519598662041473966975184573674537862779998366523239923378721372811251246220492101886703339167462977288158229793574291446125553729705848215434122298070184968488058510772301202733732327233822108377932585030001525241181495039495236969152811910623183309776780847346564603621868353674801846464673754649080890958800388158640868137930836569441825926166585788802152929701828357275727084255885011336292225971572960850655631580380668805995917640676399497294048765831587769927054992262898525520207190959363552785315831309572257024859148697965637768199183572359146686668001379911469274529992638386430724316035010888017325504329029018057320116193144962312555265737763677546063711504958541676941582307677344032303495640583949992422285432783700307243703008182796661431415186527949915192817235678941642325027641783778137387950426420530966371934074441440967940724961132831669835087611060442195391501722616455520139161638572967702628530084013230688273258638761897956541499205335287288382801166898456856918964374919479536335192013119410450436034622393335882608618834062328691405007860254330714599310900785473888658748502719554838491123008988039837750897236334750240351624518697404300321157321581311508346612268287820079632590117739010441030995210013921605281159810782857544685655132161061763837917853779030672186044586839216780704701209998907288433089073649493040242751776159761106834789649931329288835174484220588845603874189197079164228627915290996932656506221759620969291580684858327157914303384053812592723962939195929630338265427557025824570105871598038274752393769013621952936171956494724548651101363335732862871910341615604643410449354716008594197610346508286167631613071009570120377710401911440896604121173234845237023882008959319284892434566465803637241235261913635890846217359092328579902931003603293555070717945013647789934396268900892843442797951515061440924001962134272786015507832756107352710085287968701375661672565701228098805174048420175135718569835452529150555423197365572094611761614094565452160561438379807334169187065233689781083836405227424520456842774270755496687802983725498327441090775426441668972401671225250607374756675050958558391925505575321256647112674721311503767361249150555932769960240825646389610032570637147248097637539014538674018286995620658771993057256775013626951191380751983084779546000208246907694747426560570209230191981177111985365591855018180527981427511551344221704926093066131249302244107359788570868411444317960488729356174207969700651597050202487388298235775937491998132385969348194327024572375894025338560423173476371623658247656991265816779500090397696175352549768799865109313210808423432670545501976349207013029882902934415356026756544971711201635974470255172961260444400113073800071897390720038647153166933450711137828883677154657220033115218737573760172652328286643385974410037545104875327634095876616853611768314485486857517820586258321300304656450738308719199325866677712881940866604837578707946704280096352906867791129114497414540434797697623642993616325970629029912512392173403986898541879989864575367711108780968776367952368534135662244855699894154833354184147649589998962086453323107186349897288714292951039864510276920102703766206703011722617755579923667948760691506312115550691831855874684733164602232051197267067291392200563870427174928498039170975879638727167619070020923093620062913731387002666042128659728926073502386221690982246978715081484270644091762424647386932539405119626049845255059810292572676656117394301117810804269195133654710567952007224188547300270192975423421849672300286196175458789810671225151382299675257761768206407531613914274689254709897448665373446600948679625252239062001111870312677519714858974249082588985713483554393568210758403342558727027442411951881042349143940301728338451990659582290866818049214807631136937895087901616669583879228430165200313735962000770761937343704940130389312520186200339945010437333557903102562874383147937346464207588962544902310524479122642962111052700738964881889218080006533468440644431619668036038716916060459380171065354509273075506018328243653362074186288376211948698355657035391230157580065729340115055111896288720670846979405217727768482111334220528083998096986818408357235284616916944581940361058807493418118754669563630013729906026623276393571235336788419827189328582669146122431822123789119802466553313215318028457442881341656357562163138720400884585994266930313930828850651653277014723546315627176389901741286246860807514484396430653282388338635584325591493422121164447264366319868381192050606306359778290300002835939004170138220223547876926625841556387781561518826647031666592433593304867886300189102270632789133169742630639533543596814984456975965637552601129247825108830297605621219362770166533192462678255942155518576700090900662433966164680020365361852839983091323736961971109604691690851948129157078381865622370477949812372464254228060357126234129927064051827701613188151203128169069025691728611373194672889641716978825651758671228179378544773330387210334839550858123803233626418647553503849421468734850474308437429361014908216338685836087041817059824662311011968738774758488868977391718415750498553569851503802496312960333607517079591971246922081688266382573415975321596012289055724874174577964521520015131879310348201343391804797139146875838779015471257304856360406620873559875494909032965413752096418280977889010082194441219833369674977408126370799418625886055726681525457591024534688404857053980409516016104958514566854967875195570008926501893884810093269237167903210059861158588743107737183477680344466314300784965595696103834179254928037360136822767505651834418213130092958485324328151569886891413311617174248397717044821742019357546078409817431561468029203942687033311872894156688058735803974807722302663670585186317580178717771073142216606569751489747098979633865122987466849623928223045485192546064652685713287365549741370399521440873261336496748142212479862598777888365223264312684808022774542549433063877524192964949435432429135854975850308840123834685648737445222785409769308231334293040920136332151957116797922761455477082900543678160278274267441081402378823338864120048695525921040104996576884246658123171297794140676749217033742287616645719063834721560955571382259914283884912931975971004259757320968619100460455429921793422309576276183388265121647893123106722355497069892190450614107635730771640368594176319893406364552137383369583359782653799251894515295548139833322300803794885691041499968371899441275400415721447991694010829255651942772327463295105882250572786062935597585747799584091591781284634424608608853840529543963238843799873064866593908692930517851715625066638516438591451523196497639918617593838282546033448229033420281528784302531540057949113499855870486124710486570765226129988955651885563584789299667147663511879861726526260787975894974615170833186959153840987736282952941555106661513906165084696890001609939681162925863851953272194028604682719840595631713421744041167000181407755689791824039436829784388769243019521255670871461126883504316996627671438232902231824649626336339948033578440165245986504130982592712537910152702141652241010660664692691428609240978047468592707758937062418843484610328526803469413213379086656602748166121606946670204708907945947137440741475565592295387974502169347124541359010786421844408314031132682566365909852346300640045569147404166007444384860793421380061977342294556771082534368536415297316508827353124940020447476460664557130449429791564918024435122647803416802091361912623168314551191412351125730787232401013113588106047948767421001608173694955752634568459416950379485455029798479651987526261987027481922872863599434104793656196200817814871558198673656127236681351871565459719851498224055223840319771517595602767696029503596202440804670275215985086021227397082805745714101518173190344813070468000687295626674962057923391991218508482585890870099129223689788541774094194419144116266289107942054820484549336413189503179203563283663148276357349610258538496890283059441510223059998489944050149651196592717703358420947127837131574493867986445130840693180316180671166904115172561683935175172553880805683231696942546899127456923923428196910552644134027471829307707032665057379629788182848666467095548678141253186654127285850040537672062794405157259505823393682634156206951409767226217318087741283274709400895771715862377922708769211665493515902742114865793868936834732974760138687003985756965679322367260996381302359101518800811515937455751699664743897731245865666870463967069220019717777431247508617806414000320853616888023394552584723349758370204977233864460289409673689812590551612789852999024032898321930486917291434496176690311511959375161919644843312618624303403377750341593509967449388790898878923509151811716451628020968920534778857851758441938337533330270598329341953627872138545117291569406860167096720992236193262172950993448551172594438820826380327716699428118691185359446775645329343843340027692502652355743423790171918390372494684052971356016530754439827526662219238511397292823395871334500505863646088937452231538741937259003071315698998973538106173066946832125417226403036952607448305675917395655113931939868922227853600940367958519981131924212675801423142004020023091129162539829373632505546258619583998520491063563341597257802929807319261544245223015085131986383859606924326599970397462365146972717553570541152268933681686441670687216759371132416641920406581708450061310263320631642315722875972729150874808716868107105715989033113371619217474539336585898048413605450384943317510157450109873351683905557729660566316043107647403547338484705447817029333061449796917822165124943947111193459024615289579993870825883712716946619040149499476647540154991296935422742673399675374669846596771781060936030080445653990818001863514050718294789338920311203892128592227892003315977746762850980616793270358770894780662598965235148023501130873164390329309180515016500836962548291163500012213210266862111316147403975939231431056999462653669596560030208410782197135572592981056827978421120914520147869848888784620373524139774128112151220139892344198032763321990348337463974709383305744602574677714406995929571502205328438525579725941109747359348345095657265269168393673657632932510055879709859896349524113112823192027089919857896297204087848175973961094996089942114810277762713402318908311403744064805734807112465073194678389508213957335967952665652094100258124952930615771135967192393022112730621981205939062541042958890608024754572036949775795676604002898032125304583392325419997707621008495215375838818744863282383430855088238999899750260278397556854118799280206673584084775031313049140352657732627310165709182595744262594658446980938536767205059104120806587472018793165795335305148298206297393888276487303827686662381299080059919720411320949227973022333395017261274888576383056163381241973126655915253863647694924579075788020400884111197926332275673542992957445620908952537949917401126296449828354565833116857305133317586992995746271809689774872222548910955773316259982780414778711570948077289172553875569443382147909292849627669178831035024834513827043264457690332159238643236776295479211443053401776923325576654167253910109751297561976454857571212877063991411037266626435826565012872737394256809941835722064531884689224919475526346903980390875056284920620545022007404053944982114857347318966568254966813459530953520491892454641890832354902391635133437176209593109223190805824238220578159277261860620527981135271674097463339723934894650975705003914166506470798261523816701607620664018559740814684352463291774313724428763568230880419865056690257630970289776166096152363424987780370872151743275329848119272363279578993361149133323297156646258755425552675709877825932364472795643248777724198005030730569297047254497982017919034251457106644818505744129696264750232397058943885855620165119080898372386179546966237692505656726347693383337885791889036847236919458023762649213671065207678948562727859667230337143963180743640872570105531594623648738971116751930064967347771652054405699167572263418948580008698658155675283690779478059646158222875123887274305241748374962583266293381416375295816988660636947422773766254237442120455422818433520342612868894083109703917343080022396905972350906316387682953775808116174850324452474125726511860569341985321213689498983661318193918503429351051768232510046157487499046015178316434769434140616689397681825328180363527304248770737039218702772202772227105034696680311979899993516348363625282284259093364027534942168241232432223980290131649620884957309226522048699907749603603797794915139983399780449635889482562049171456190188008140207731823384859635915609653084086055283594109937417158447440172229592379206890087564055081423057496026314681375755694510091371506253921220953448376079625329714665290401984353587201625779500108334865954324998887655794289915425344133812453682596717148725007646568376488400745418465937428040561279127256788485218397372556518477417098137143789893330151238223520246278796369832169691974704987727981874844609704614328085135377923986896458344005190479174562522764196729177530189973971322460938224878443766710483257393281478605911852032512561371676156604117514050622842597249401134892174760458155073480263826388010503704715902591655701075165322373583557392848764188701991437297790481063745777198426417563855272059454265157185460807564310867428566553474646899044384499747843935454775686231447984227327111409218282721297809999945249435174265655559206571958009399479232218048982586255795804336983272648383641620616708319255430818033240283468093031968376968764564485903498776282584628174211318326101767926258717925960050680953363083239701037837204002257921389535712065775392554935381489919923560785369626291527671461698916604503494591725218563468889480143148566160030363747450839205907602521307792663874739334056960145321793239741820718345650877598748856284345532716455322023051312272199707128998820217314132911124327139558145268663350888214335454178344534304675527895868995981565354814254122117389921227324052201039827358150217621456572841123941912801449341323984855188754820008136266455426147974211678030166222859950164233385899656321764953696668157260670694072910151268053486912685444340219780288053087241943688268338372836161584930367052441769614085762790885119130316052698103624821904880945852257470296518965295207962209254150076424096385518342749032659625982728530578761501479621219250883799689743229596796704874393761376240031344902275825523709274020912631265764916065780966336124035379936933832402774449078806315012393592372894895982472113568919624137370903449013845104408145521973418653403345304467818929105591738976122404043722157853609071259442845851664943222847226166869339562228274244403911103691398553575012968772743360349850902460349389867369706660189399372251575785812019311670416382779891974325626108616106671338094869177132078191133753336361192016014336264520455428000883133634494655021866695152148220561452672733242258419699651667952164354129493464516737712564951651654489595345233529567700590731897828027872472509034222789335284778213794197086112359848012840281877586818932494350030976600471701710364972105766119687559953674614250935712800418399443879259382241650299686104429494853972310497149227570197974827221047699824542583379311278758966415659281063573271113602275318016603376260570837298697770370085467991759445612930580302390342894882565230157094582063766814720443233375304423755454302998845161698170809848078537758014287923757290418643330023013214621899420700609473931966882494834412544592783215670040140926692239405002558097286159830209901978819135045253508470174194094362157500574577748254785232518796480853997491101518530058766581195377848615953604827398662782612666102767400559277043289342460216741495100849187386009125380149929908247358884476388947510026235422157842411141424962245291538465369666951322516411185921522495658025372578007483640703111118912847773944028899417744210562149794519842064025596607777247167587777664562462569044935514145021264919331905021733564176310657518148722181448043342879565020286751011575757320659774381922357750115959789167082770370347737350977798459337495032245224478231407715541242097038668160274660434593977455992740377426434833338823210809322646387693487415935527749315117509200529798464005615282693026957317185624592652134649954209571653020443143215466552664446921762297316763964822821435276669449970878204276051542445280489706591997138521994474834759392110103298804108696441191967156236574018007569152816835261972755925123223214073863692534176498199664130044711870487299436190498522354487504906804087773885777726986775425504160911156277775208629197797785059356687129102767968254679564562411377026175200066760638396495313661682058316966915182153174113608127327873727077316454550501718890373363948228707014766470480198957966912015213648516202636975765512254667605955033005126825358800781954906546753009368848087402776265845955526540215685980429342721924608497965837616409370995111841971017105221589381651877254727948436109990461107209042540064927370936466499066250206351606514866116714119223326609444454898123460996740897558054553072368260255032925012202246950158173743982233968092024519885534853069679298207073413210816097706285449241138913272958524510612190612082733851803893090795862670315000060731326824355891380606539408931923845802998608617855267373313723229579814672456006283294686411037585724037130715732380406010362878095563330005404056843307953901896014112777836070651604285779525028230540508937383229259162998201814638682199498079961675960483375713047410262387244302011167109688865833980947665426205581413779565512642877596138103423876938563093701913934910312087267287646476995074480221526804509813530639560337465828817036712176445958569165458556008251952027862016660975395009382399094755736788444927002744719122656837300537407310044712967177381105677367421841640122210416752715862826311120882539856015595385752814759815573164386007311400728581089122234703658651424779930119371703074273056735749826033040989254784282648613947480076367654729022693603413938554199185068447144043108731398565276859936782544168843332854941104139282224147165800747807368425623722243142595169448486203995591146388319095532262309509737092353864780939500421614930189734618473729774779067765763998397819001622943819921263412009044850431305988685425647878950521598243857370593637943048032324642406748830286434812279238564512975090753058661045979464262750445664744972070308013636249385024500411937495478618946496018408557734896611160315720741475040771079587801537083861345591489995032778676833461683258436756008738014784015472081321034485879037588701709709385089745117225531247302722308773290130351639178826694320067393562180614397315763406689105930518518428309286019306099379871994320665190150426175703589924784924652493078709256330938533520045776826962667116408501745220582311456704286395694666917718285842885060150147534903091994468254901690319714077520443376798880617539716818682374624297924492223090096646354384847659512500856127554233570221657491890199147883069159730287220380268082272806504858810220793275873004020096949813233262529456154154655325098000680360491433966908502785577822204620958646116338638589875959543320943030353527678785741422106038791670599590815275494792657401591848107058707402297245427158264866928962777640810978377467153890638009023831505405975202781616460944292328998594945279531698889611656350813587374393470568698939450038250431823372863998368953572821998378742234298717101583564320236808660508897050285509523542051825283728195166240265539952724366600571635698554126845909923088538870250610237322454382361698962914824184425302854646493979263741081527718459753001536635286683606050584191224926528665507878948608284593323512337919095506540960319098586510091119807134266594096414731110392309231820825197171962435992944365459639997286709892231862164116997221650157836853964184725757953636224375638261920433704289250558058637237963323980097777679582031165268885726458489549735839392480985741814602250989115549998474366186558947749803499030078259575272444888394177584864610548348453570470616732531504735048082319261789296092224699705884413897816180852382048320076695362181122694103754953174010265294879040437780950035361428349684933127901178340346678518385094603350665336790222549020919526391570200209852362113076743580274340330619585935752941533410343134301826028907510064236150646302064579434330029661690689240350584474473638149424295624927918139251386476988031192641401363862429963422689097129497433318897693704381484645535084229370741244848520437066029800981227750629159957398317135312781041653093014536939985471249419035702568919792013542029138818608579420477021564829447014828228938511865103128347249731027464228187231482543929042278168251577061832633917543380887761480541711946235070597579945799500640724448378838157615903847509117641714988921280212998238640742243774316979952311702625410772379168895996536109684810779564196633363960718553181942441509945668217347239810048577615814661116408842164031193771128038332797788489304538633753189602099198449926859350120814862756529064523939897845696336570880465622283860144411406020119759794670981451191015976732363650539124453274736340676956655168396251142932878185170703278559032460112166409172342726825613137804732449462765653982938652811384481506489826873518523956501718960572458179932984541331508868520825539876569315025765884834722728138653002765776142775107363674651021994125849175945492631423030999418543856862742290045583881676685065485769100691500047251459037702470322605361926137076248914864656875022475490361576393056084716219852443285943746967469875820279811451965312170809152406519124587799045488780917042314306289389687747616021040536464471950439188982079161050165555114870667756365576477030328520354926154505775847702541717223511278643395546234267969370587580207021565620554594382673546810041318065871871368553847670120218072566134227264498261873111542614334347614319289727273787273709929472363279129371907053304784212881231617580366560314034068049189924700158603186724261067644648604075310730721517577145563982138191307885922316947317480841418991297566991912910764315051878696963304538889280579857595291719365609784319612213222554062958233362535081174353121568148100211527173277149401332100769320862023021537724844915482372024829049242005246915586360813695862726508253604569731829571715371552597781131342479215306566361470308609451659352474226504995225139476105796541437304558628370898898991818826450689552588290207700341206706885093277869390338933940520708652498929356204911431740211982644654260169276349916896327729571822485157202493100743611136858661759701002445877888521037706349052172856502231136645569912815461378361981860620657211640519756708442838609216082569304156014095534802588772120549137734750915266920148839467548488150584768940156619125690445217359981689565373504432180912926001022314839808610958455842605915853073560337088944281743087493924100372215692239631850839564060271310773858284248274947036651372726068071253193939337965206045860614499012228890496738340655189751255505028377891888662971522530193219714057131968666736132574762497890906496834280781452532331986667153212687244740633034793860665918760618846944922729148722944098805798593661842715906265698951608893035686971164206752291606750611950401478327358856426710038659410574265957892049040942842926709169309337926093300764744640693622328199164185578504272441907649226732488281861438277399840376726012371996013317585583485624067762334564941598430418423406119724586765133156550827507204061569422765785488488335740885458573616416470098009123700773699517029705845751986466955143425422383726223819933849410374358927499534443276580557176132294657061708437178672388982700018143992004265751960579041356820582361747801148933684600553592520604999843380982636972280792771649541009825650417145806470837691417175935779117196694473057943855150123077463947771155539364455538043917512503779315157795090205707545960422336234563012907225697767533422834132626156622447655818716144558077452362994165537702916862554907781152871733965942516351703346618528885592722605724685890619755704466224326997748474277977888539615148869537000768454285014505628406782541733729535722489661478912510835883739388151632292417441362320037833890262333598180826521852955241170887866392942385931877434303882256601098291485340860180208041096133193891329498462075983457881355176280540946237539970544831275371079424951938917441738080000931478845174781354102915998400839657606303666628749291216932870745898233286838322169487060552361908141913519680708106120813951993763337186221217910342569352900383782063673054971682072466944037892257896253349019472869529582042149997526325879197096420285813705633085724429892453199937003725949468808233427657939889761195402884622475621891443242330927097002139527930748707905067619290650561168642156295329919256616470737113287977329845447024563078126046588280681261951487290735370193254934702110621467122147884123034244859495010282496261202398613393871171534335053996552697406589945537949941054576360249192413793239291908320828011926870987702860746458858533681351622798524613410644907723012479151525714142012852093143819143139628313811082495493645188558455776036556718942642920029456044143482361411721147239454858466382086236547528357539149831686998142892515247598694824930965476972130172975949236594298809217661324594127158897635587046044698156483651205444804929773581412716089541892634055434814308494327778436524341644198556270266769058828426474394273292571114470927817506667882605845456152866032052554064544516699821268725664035715370319867624372289655562432236343856817325723366409931332029762717568516996726603222493642417323180425827824153498857567468791002603209161691767875152592379107384939708990664301401408621829924784625599835910264481401707541488707453945493290652614228848236927181332684384518109659319611937737268707917148635444369555723602776405719755319659279013785822810969558545577839304517548125411673716878055991392361760182633475244289907391585631951029095215593503287636779216336308383303293478293081924157581337364941660506178856523879464930181878213286097476561242118612802383286895707731889761457302613997713463197323667713368838194182144179372109545319194953007103628687844076505882711253028748667584315634226912291926516617061432511096608891356119475720389405401708842411125879877615714967856716359468297774668538705327429828206457797319863463340834973723082193756851248620632906220421414228142144463339897646427418973079240391187842365941422253952652695867319503941535937070724409314777082744496102864651928803932139140824177378270464272105451015522405426392103178984717114316840480155654422179338806247241080430076025278882297040387094969453692847003976530768491980389624251778553721355679231808704999892150163907704110732447163351566755379756543881240470260561863842949753896505839163345474860383096610229584519136139441772195636566595587186762764174766310675499602684010251721333150385432058999689904842804400318611239058141790032821867792304880078985559064127883581552128074731453217670562518493788443004661479521781349096741787275215285472701218362191927434236696455160468056605339337877393463496550723406259000804005356563188088751878912702222904938383741215699359452725782266584403217385496583914539009498213418835369306237540623594124370205570630970190967426461221789642602290089538441724856885775646509903269161385684776898229465904895143739926023611170151426039763443780785612622330944299310263402336203063465777780389840362610278914520697715659070922983814513637193051033806829868728679857167943852456046008287227536836273369359418682406563849761872989417789272828405593565386899897930152625330419499948702133559334750978753727039164342440628243155741353573897734984025920893305598487866626880130608572269135620064013450751494041812164037581190140689086861711154504408232284731566744274082152308532835762807755065888641295420901125191450033177431647222716557575716504218431095486389637408448392987960430930767346475488140605843843506040076903083445254751599368496245534477370670152576387278201223048124129853844465066092094242341813592690643134878932624112394539852910992536344889707010799478209578974630985137975285880160521287251046508406394508421226285370710058204263013263397035645306437021215216979331891172249828030981646568358518504768683868206716402402020810021298679574363240210676961584972306328974874983698868041293118088013673410231016665914612195602100074715847766535380302080035221621693749741559083661601882413686609366769377997318765045213364513112799939170459981376683101540645478321701350974625362433671718998159870421180736445596561177922627385382286043906367374630176159493430442790594216493866896599566550742313112554422536415737545835528759968043473184745099344760559580348709403756343986370551600913274392865058354890370972742349495259811056157004194174660840604846103873696817046784024156093784986852682712827944417779724842352792204873465930837756603715732786609182866985550237678243831753815477278147896535499557476898833506099428136223210679093248866202873283036429743421115715121882968258825692002241558178759841252466132730048820596634336706029678381156257628392880416215036060008112187933691134791980871526609123994077983182062348639528955283491947669407663663001741028267933772956913973828105804928154006927325860993249063653315266265925430238990137180280648224288164067610363331867729507908948163518900028318758566395791004622917755801835456249636699013590860981561048968837658517635287686179046945321983578665603907618981092004265818294360430897955356101013295185412415257177647868717883685772975224329369343273971333524675550757934040397201574688064323307455831373858608612870795963195247021233909975171635844112353558240143829082883461256011432454899303009410492771326050025689210474882159659719738284800730708273630388441127922136836665581375776447149009564211789215450748911611534423204708255989544426067810380528301100860151707302929225547102398053983084604744842052995068994806236361691522785868561199104473002599312953389046608213638249167813359584362537906687467175833487092516751905232090770064956881053472107072387785092514194782125488424788647842667857885830068801958293770736710194929475523718383610953059582095903919986843965189001362725272101806292171163964607211851160178930357250460195928151909239859198639853461596910532706925359853932686601139334013043938424951582823167214761010615991780196705899836469939305563818141680978287536880040803580869435685176383347617789370440772640057803843889889922448114432621214440897266973665325637012931590792706870548996104150708095496119247774980494443027187327335715532106754183563870048240465472489001562789961601982508540092315585006458196796564740120319895347369715195859886627981318714061208953638035401984916118709761479600073085179498253598398436778063063768353420998724989506924576231971673234542539765350279415060013471833707591886141056866080000277812060193524262904946721269510631469091713767389934623239739629542726777938155229671083038153008815940352706517259873746354913123666413706380843211822118764090717878668639614448442737144754044839602684678152972851601641214871217626095284099704497033214059016427376943404845861189179922254226306023333412196436054711295526923036092124274554101635093357508980988067875227561433622723926640066351980238964047281287090312595842554015557281943676929652033227402290842226469893351789704841108382599564255829683774517449992741777334119173998816936948683550621860601572075186896626648282362634210524727788300400106758213914134389313411386828176655000481916180839572482173121808833808982374560853916134513835862919917483061950498362346849085456138502245461791493290512479479809801078952589759077595629331181084696132134715423110348039862429173707410477071872631363657646359270344694362535029778647999037093575322914570741884455324205621626964873125087951044943508099612223370624488248614377029764569312268870659796728805170833875269191291421665531784386592664867615246221833280040779626894635106151733769585578080115885301146078289401609180474254193418349240271145582865927616068130437242168366913095741810693852034166683465979908166438319471976526418063322663702053105985832186293661969157153512924936906747674194275799216176270188590515903215945329885053952997266551201418087731932070268218544114865777353886251989507042096561802307530751110251261245377515626100909773610026398889019147218930859945611317529639837072857133562210543206900769453233548761985708428760267825936624161795399297503496546488678715271540065260093674219594609310437647874247971610947637571758749141762534304497685941306384418128352075932482348146209404234360365703725233149557463241503731262986639366265640012980908611688880285475998060229605831209962244461656960560704918109146634131897730417790832670703799407322471052849902992896899338439947166986991980154804671348497054671803187303055877822795215632285332292705822065815547954296579137487025125996848686245286615210071583112752342098102904019623474140751018185740543810999284257849933526574790392578878925807858774255743259061619897882877787839501067899141835242816542774699832642898909122422384547417168050640066215418720883191267467190779398037353197686240638068255164375864246963696819897014697808812810496482044499043359223711862164930939485466503859420935280355228815644029004213437204090432920909538654002866093453908516766487872487233649695798506833228311424526110617240060346346952381614894157418550733461323327862462072061657081910868207006801039229822523794481917703467998006093212061072108732205400361559431383659608352891291185046024339667365950923393520548836878288257805743943762102627360839464188868943511778710519763483582497866080904775542525232649606863047404532179777180357775498546688346291444356604226655511260923860281648199689082392248139548513789676391921205791988826965949948198086816862397953399090874810537242782659374383407946353820582978025937914790040998037907938691757141790793630078850253271321283042909795164412322251124386825282224906518418427737597382879906703074070851504179195932365725850376169588195149216263821103631215647648363401619271649391484466420410396111216101176618363128691464061025569537846933149464447623156186430720032229188262897458633030508752757248679027061345304850366220863736949855795962260060614147051737700107012856289825961947374816772786002400228895189550860358676300236450903998058867255102538671164343250908449947553365350426238506711228681883182702376310946768074360224400570489331990100999099325569837106389306335388746756154694702544819033622643959018726333801725225986281561956438041296524751750928546574361376961566429940590926636655305628325415768674032440426011465528895684217123684321594192914286210761090035633393836652968775295384941685128478799088036627931810792145003213554043542038504519120859526208934340822515805614271204246447295479263860546180628369668439706821242359738660252175545024027157615502692846040576530616977165312877535086886119115558158757187501251297031181454983687445397814339835654183611610960654158110973243226191632097030912637253224214895635986472968300740591766930450247747410300596911656979651266745658227807868317250941820994727154517124277204983461758149474715989869467897765977493566747327327165683149182867340075799697756048636271930669766693114573412264872123540848084229645981570500415879712801022787648662886248112629199365474171454597332842924739492200529043457816999380652213448824054956202542402991592523587467445135302493290467432759297527266170303023641865124676866168449445443975508053863215522478690667146425046906701711659129755682954068601286256063814292897918955326205288101271437473189538229984602054621190003406350652965188011601040273612011554036879434167841085302625713656201929034460585118952981052633531215717644477114419085788601195321791845860605839054007116899381015639764728285806893810513833740734046529796977982053799575902035635979908832142582606079610754892545159602599427793086813117949350184595319800869533445094819538307961433393550908017772610284716776496031398982993961528005542746125059654775701292890823877851379129087431774924280708537836256095237368746223290759424979803486071823203273725506463157862767988490993808103252399658261499312839870997076350053385943380651903560569331301609141266019824537257661105444904460237576028139078586083997542819219975923552480769755910500711397727072342399860621452347802642932453804251340641867160279148987603668163106588148098244504179401269053540712196198231374650527892071809689584929139899580585849075591919035340461616938391997577225185375401457805580818658303438816278269261211696219429710245167531612783927696428160688546998778593589850518415924179039873328796725025985610560427973674226588358906154081027380073564953402676753441904491585325212825641617132256094422871700582912660947060733466870225277614561280012867749479751200424444897342258653091244788962089434145934401142074447045768734720420354309154559109350933071264144684807182072506873994008609506044083308053019351015235494053029503971213618029653195775307191702814965146625004601162574436955071740937780684206327946983670028609996892688289462770063703204584189271182959094143587445490480296752948450091874489208206987742368925514801835037118507024083985774189771177781559590882685751856030918441843397578133768887177971275486693391512133770315482477347017683743943781226244457645027871146455609067370665330038824832196964823488394398613529797574000410389611474972135089563835010521816085985332446959500206836878259756464257272003739964771961557256719508294464443860880467527089702362191537450644372725454041008188306439495382512943174257858851739183226156988233134584009127554907614237584383269054503542914416055298831356803344989680778624303096784746047223749820628058969662948952421375362967968065992926205014117287248435320504265522262128707928116851984203104412893787518219331861109956095015922134151003219062780409011800088516028748094556151514887884273146169830425530678761304447594308593335374205435387591310235257030806904608089304449085320138733177877234614582392667889844746146804328777623155598108247006153100155702333199418036699694022451862511204153931932060652326427652205510932899893746248518408154962384345197393873438794028903884999986003923891649713036826787738637287305687616416123025251533781913299674174960806209128341059471375804205456606259962150413656880570439226004318277222735100064931268867733712945886435465433976763642440164271648000448378705539701435934721868144736537385540058764258683816200122160366571882331993214602093108479150263874126342656505034335769617838693080754835107902959174285489317254173629537091439556794593819277251819440304233160033509602300218481298694228425130418295737403895517919868286510530376922414897398675959067104493750658551095755787700109116599405655629709301984840071739908663723574267039309947669000642606913846431126176604526186414952560578107740442629788529279259776746762696599673418406235116145955208843821302833065377635284906970818222454119799445589436152474786397143639649082989622361282432598737846370996533263920997632714369076090480267960104960985273047660504197039215211584240658011215845716303917696450569593884583929091355127578273867252797422112566152810735186426546818811504267341702356923397138622066534226854678548957695178296550420840651481131553164666379306250051089287510166726297337820780335159214738068761770735212868932106923852531217266877243854273164577889087140592083101735665253776795485321651298020600193585573294366103547212584677757109316191066280187204419040564497965268159458608347495291792418347325876610548153200259286968702338298396639651558101144766091766122828454394843593180956368039902331614205775512495680552828292111654611758640566450755695351630191267751867111357464664917427617663149411640276843997688691448676228190971305778250929088212546160113742797195219206993457648135015327541384588909702141653605843921098176772645718446859458425793177165313322518994309225557791622804125971172623033039184895182977005049200979454053693118588236631762731231427770993023685263330543286858113113867215395903770980361819735846209823810641215984183240292051857733274247247851908381307929422079342493931717476715645707949733217213048766704264582614352744000590234202459930256665467335004915764858951119237543146219623033967751242057479217835697343136470682689417483440495890202342734148715987704892477324763527155035430804660426059846965450936289899677288360580181283432620655417560959824298876479500950257241413918407446427793259817750220773167774209919441492886650831219612497819444484306648662726684616291598259828520998806275509216600763766154950567787106919057967766510524319643231358457372906311251522826405177817705883533059980694137699859970065577611410020591958272008556926834734648659061908252496262778706800635788012059117840610090202801323496057029198517678795873336493357213938399408314843746104131939779215352428411015710257569477763052899372662419788192501675733983661575754415548585652305371920261298858291842824174655292627616104433472010598367623303028326437376609277877146743227299542265503122329489232354359431295567197183866343386466908499780257340581204025128287997602515863735083853167911316062430538746965912728881066627152273523244340324620279422221125931523845849271298930283640695539889959013494001470960252260175642191701882230800849424456442356901628338782016789186594802433271557465931716766407519010487836809979415052757486186384420902190467768991794531873942458697813306339972082248187223167960168051193475426258316164920546527405609720283975093802912830096134433858010565249381930970517025348280210716365438375409105837914167821885519651459789806854388309389161154110017146326379156700680354963368546166530141522384587129337924831608753081939463163327611462933876627892413597586729972462481472474945695360080095254109732523763098468853807442083997964513125660831819694332165889622948268286443011389938174705323567778676835693609801855161037709649597341776028539586329726989658387475333329355707276228791868171855592826644427471658250800361961693275318215642776121747994934437597297688090572076940269305743512777574464404187615549762526990239804900816064476141533983501675343897685814024908782445738003466202361844459429228216697832951269904624022147565791312545010434732640168194523673006915833632560903484059811636856625214701619259324006863977449405526606890909240412631055606857205982753645157895953896152583021998091333192323672664952716027760003295128277505760367548171581618931003218643382212438022916191188213985158962518003263792039241756809907767833969055800115007651122504426845992050147406745378483750154538283005919504562508310472334631959908202005354078373170833770023544014517429303400225679849566262380208106800389313905777341344930714574912567919341633037383678878296671053733208444546715017658440782098132285730015885296136431553636163107192512491184903340028067789896671450798551840931335323687802057633692831367765888205197158531084989475697684062954327544695103411532624183302648263662528669431341915290530759957176278534161205294447683424370853712258147997879365529357182577475902821001892059797523744666468216799797835488263719654986907647312707935049157305369177069557666412041215987511612906890830585649349158498270258291596882114162174642644039048631909865100936265735227627766930993060503805989441404094924595751149633770799376953955193100501891407834965606744084242327107932538215224572744898263667478305132987535813461822513298658147443697836438010349739029042377202404650209627655943726402276862590382697295314001027516869695872260462618285109614129272939720457312770889312164866666342233567439122531474356096865490821993185669457201985132164046920917693320959681140404875468916761749591922837648506184655354339653861245928015317393377194436673920567308200233806925730085814181228995782886846185359373197796937461635676886845567053799018272807611958168191631768771758362490063126236932651105968862806651762996907360481902961130742471641660855699374147996200653075990305105065433828291393037408274741834126310516777384268523152435745628392915574092408505637011830941611353867904844492212286478344882655549060597085633073530707416725929129697683963412770949348488574576678480958231279991143108023487625368760541220513565862213251622873433038181392758100844052885013986203257729277062065473902577178709306123343311323772184052484258619686007716123226570864198282764669397443289103920205191985647902237975913600907636888004886580696769601341398465619584843880506332978860398096232929991572326354676737250797564525911783221951695986506029746564785382689150578313502984067745394369304813848434791885058599712438738903063925912149611596776609753385756082397263934825164462819042871562019720503201842079857710948880110081529077165808951927041687912239021446774172996575160277399385943000125841177803713192420993578158312967578606132055845832612840973156039099794807584138827668550593833906519002532244010667757066666165556821902076785708010454917285844088812298195189842861320130240416063070009153345436920047725157408974317651320005066152243702569261472069316894013195523462788322413901519944925419185351661519435106180124191220828284489996042245521589724374776694546645160104213045881013246302230109224614193796111137084820262119443851773865963373632405996690233780995891023236902892964906231687107493917549146813514938843173625542483051600251017721557329416476611380416043697367055417773983208013602292396273738597208579522384725056384924829103898307794967045780164282297770725318761551846022569103328967820878339534247312071300602553360503986519118976690173120884216138757626095602817637022628684829956456429792908710315109874215935678798479949568018255029393427448992808703798098045146813047310613855155891043747640501160057106626937109845004844994929529033776772321473473588549536926487579064633303613734544859542904315761983480844192644163066266330039093707647938583441422701431878506151097864064881156127538114782981602862141695436367748871175825327131418715948218311508564538922810735256268212720120968898927169428445042650880935936488611255798133538640476227751225490653703866625352780021380015795831135860182730784394593774975677679756934579613317436300777902050032542967661078828464338636778146511780495150987983240392396572277566745231394594351765655276654529898678947952431919207285237425616877229003317135269037361191143206887304846236490394790886203190467804112199519687183741328498164320151457426981338795011556043433325023426205185636629393802059864027124032083622167205819605982403930064442664635610215090819673956904991125465655060034889634404285197664338367133241067123848461297936613252725775215718881742089504119595001589051093039941383549739002099736450117126112544361168756846492300687800917287863964321186171699178288228992371319955331107677564713547088176137806400224550708168188677547251901735529653747318211800268240304453325249782550033300182478157380646694771461509606868742526371844860753575134871665716164270974695965760086218012998399435263848808650308282235647310282938905214574273089548588620633659168515209712090661739900320973491593035515840663993597861995190996070024394826911961029653622900614573370802797543270980712395666016654127058784123362733001336484674725876783917647532995024879344197945384522896562943084333745761875127774463124600027935074124914732501317608166735184902311445731851260044764800536004464741712535460371697316945152017355036670246061610821441269076647465869539340469103132077105475968020833383302249108692268236928635489558345972282083813349193334696066709532742936212946725406846742499910367914760573121724455798955826946991418558963648691357450088721986096468296825078047222507332324490090131532257842662820835123232605721480171769987550914636462096393941649662652832021150075647196734803563372195195460354352451779793485476959723878550152152651485929888232223756955002462782331967021527999657404991120602822552427851507500713397050768596746475687551527298624962938765885877160100413938183900242902530974866886219045053409520128833961100819555414237254088644983034669490542428465630689530249386654683778436414353422308420206667568022621388877614032175242621659342939632566163570437142634716475632950738413518134119069144478192349847186854255281510662053925625936540033569628390616865434708995522171076957859596284631751970915286546184396542509183867365618029517639416234009173192197378363203671106822171105995841759452448752307420982435787347283292417664448897119804977970859274799157124387471679163749668041901419874803400420905855391851502227540062300858115341034275447252733809755213975551099307764777620748940311507424420131546843436513467274892273102930528465291600426259124258699714989990654916872036840573163232538179924602012743716870862583474138770702242828321657037461608086762068281256160771630213746586168027667840242962196355433822077678682681506267361498817850075010871792121443461134882705291766284338843731437421471308497307755787330627105686470521542365354836110164310592398690735915719684558474041446314406448023214981767867809032620199118165378297658438458014470300496895601429685331143671491789196194233877645347166581007096304396457433759223222700614941643264729986083096565128293564697832408642267891831264493945583624042156991819078358914664962511400045033003963665819026215603563661860014099400687912001448921969071309585524983580392502251495309540902439877075627330134590995050817872641396489440446678486211823741592676742300697302425522526771799999975141557824756869848383879914430806797137759435939121819479608264409363093624508833693260257493850967482644867303776394932582400509574161345320267942466002058415333255092391102301616851975752440609633994095819180493310555965543648510309541679241705386183326010448179759302958654645859195060937323684384178175420577817618994207595977216337389455492958098615871580736826054240898744934761408918352552310079805882745700814830094826131001039310149230099255897378261185829614499865514516942033849389300648168627333493675139734953785472529957171396676290310344135251357561204474573573900737494815967345028837521882182463060553964562986394356063100066319534524559902926481603029356952951666319366741261899815647620961836908023325147970515710256120830387948000150434651622299140160468410282027928562460022614981850612953812144057830956095502349444310308316105586628368720064783292527099276983906899383483191769238099312193099167201775582236188074619223468590938888943663036491881202496251273227798887220625515790839351174355715748464075952895863831719244773714639523445596026737165526106463270888643160892252223573062678347778205094959686198121935173762586097312486547895840466259646641006792399279264270026742147798010837004913186730921807056106482504939817085429324198148775466966360180811394814349979931667484281487725024365018131428838282945481746156368024951032130166145185600702886693871127848698148733756153657708113671929827472404667575449095762742240105809668033610889462220314856665136000467297848260272964474980908415165162384132863948360732148249237763704235519432117705832179610766956773099613905474844521386712542031167126003585764613440103925041138496625690388002733109318543446611598300480534402334422285537706528533919075300194520152248494873063179996019895228091824536013814476952882826052408486086486130642971867360621406615457971008579521634403150127295902453927781607682305902513889926904637688279572054915574529124201134682369689906197240072252178706839911957905122547245222552107349382293027337832969568910985219637817742169663070931401716620103144925476096938368884730937384668860152591072442996493372664437718999039793097876844606156681210909608545593899328373953699555910692348018692845920225986078759940138375082790208341111148725960526712058742919526430728076368299079820220046442552699216662369253405701579624760080226475689718224294463658264680568400358860033279466701932886445602054927205810970964659830761325034026118702641615847702425514135155089831270086842462043319092927821062938336602116189773525845992265862174161718818552254443995560874010371299810769462747116912520774312021300171879249623774085327787248385020655179576136106219224903393716721225369347152628981430589439060749883442446615832143875792397947497921265036355361204102228762568947178948586074358464975373432924022407465340572880301545269741153584394734951647355180234127745591713974010027113155579789992295655761127729717103389204149190908080090991326698411710540402215884231693709110061263927125606737859368112505326151941295463289335493327157508917419644411968054851898897362457955535119180483691587580992405412913768432039521298774155754085607187931980724076128510519048771826188267034354887681218453425125443953600664364235940793434315395259964228023476812691878488669966348697046859697696186065865647467635685285442993712658277022772392032123896611108795548814137810692235748284732297272823459815792926917942733916712414559642440179377692874500883288574591351979006255101317577115973930110093951686306256968158241838395926088257510207000723405714529759945810265138396365315659881501962606975292489005861799718526598908911258016940845495283748235599169353320653495572608228851072509982099786289021020705056577262173163100007100346882854476772786746061739856617386874829294012550990559517377661417415355556523213150642123786939509839371476893093022035556779598325483737828543654693514392430922659992177415678116594288185469675099200706920410122115408101538664949451684293809291802902985074034919872021114404811518173880761781943497762705006123160206473817708972086513389349383460458712942449257090454414580917259684865066484597814434980057152987381440295420879746685563566406408644115924398001231111845759339817598106219793397110782250577909645452102273264481017663027274268089847794081444543559809443001486977136239088878961475580302466945374451038035052585290212119708727763527580534473851753568201930496102748540231869707993805220096773943438725894757366497228538658361647777682740137008971562311355673460623975224790978007903658014919045420348643128475295920950179583246510626286140681847909737532182074816155298564188662965578069789689961794141153715668114297577234870060932388859243388912311535718234214116625667954311336740108973090975273124508806419641318672898060232553699224994351577648546376193171148233842656340248567876167173805429053603744308243065812891164493237365870730595045418543609881629514013685557261308152080560954826919017447676774250251168553655980754558071129263219310125051368895461601872759857343540827822678714788274468249800140412295877744138833245304085560029087290950001100148016026232273545512326456298240576990565047384055877907309180955043418410674406579123789019146314744834864214071997130289047592205233987721849399091622602875973053531693330895834800909063787222994097653210127550176352073672763348356660191757458241160085993355186125589631842788563902394993111085171919071318698341218021761173945259462142029421776018538868723237901941966280044926062868394932722727032796768382537242251835168370038566889528834292163136755013149497496226161963180841706572397730552205264069019385145226883915605723156886095396331613474705233817635888279783487243329520887902342168115272290842012600670844755679574244657391672555302754105865962092992392269584843377003125478072070926591185388931791268389631487220187703269646228825744088051178733366617687134847052980010668076603426548590428041187154222080009788476872386463997079315753304376897979140284396537846836342272147443896721110092024631463104602940264371476600560144358620223779749257175874773938198766542017949073437103787536216435256558993282214292658974494640595774088223436352207247496953545186083692865497095869275640371736721813379702426528136215236124629711514253292341727145742700901842353691100098982313786744382224714159908675860275807946232661291223467775475266655026346678449664735490419731720834894852162249626779726103028287667154853852881816548285998207807434581503636807631586577740339908629637018070513176559502187370507064914316182724701259935054617042459814418332448306935915950093253173141654515935020644120914836273711898703898802404535735090211047386677859260735760064227154483334552829689170916477107803404170475775946593786538360608770799710913248539435364506067132912689669405069096085335838999878555525759371395744535494390711697479049845920425636171729044111152221578800644439253909415352437815518746935922983257384281478866610401201989792607456568713951505255845577374207117658531652247490238062830130393783667287668816905242298790312244922557693210520916954811443150523019036016158813429951634180672454811920317582112531319459269107197477480401886616659594068106410834663436452331829836248573185706173630956596381374009598618029774012759508376221448710137670136802313914137684440153465546552042843646448815107070111194463438543404573825711382094351622785524869063088873238471915309793492949082713246977090314519890366992991762015256162670443858102397102221766426456761081993052369584982014482407329768104993098678026268984037297662586937778172021931288841662381627505887733875232149840993488256610281674540107641591872737221054828035735527359473658949583901064262931803313507806669184962238957494356016626331460580213255595576350995457220366775925066226446578847994920819534384342129532894998339548275422742370177083472500319727167236828328250628944301643128135477387077705123521436832830472158615910093916452429254445675579393704377643041383918786269379747277937457207308855637154741928939129799093719134712288018649430384602400318111455870334127497929174749159801029043988310775073302912421665105315933349788927542374279617731475090213377157012462169568071885647189933616654513042344774558205766081858027669467519259038244217322801955428570781566624064130084362797494828336366782583350677513544494182026472380730515079540886685298180062772718232545761033215984444034440699077355938981925820669890262291349020235733183580815347779522085584568434049909152891826780731601633040656475259868962253458821914858845910975021111366119907617409712283019507789411442705247064374319205261564267237053502224619106892753778412851219634464001949365868170776422461207014767729052460395087519227298434125690432641634127101602717073041610104301832270109800756621623252931251644666176084871314780887816134309855692701726704418496004209689322681277631885123326701188461798862660275044606098606065828763194171234588447196069860177551695966595835304654585378682033670327016584367221703709715522259225633644139006642675983799438482712188296536529115410205914002707031317434666893670947301694672832075604993377481439016647417712603512849680525920135322218153973594181630359371956305138378752178786366270715928169856597075935557213210100503643253150649046202643198934544931791871145478993258196944228864149618226276772120988027529963224997009367829217632979496122105528962377289245667538193091279359248769393319412335268857898367057286042639196623792852154725340126119269422933334274655381837815530853476765616759852215380700179074388085892698385931935411090870742823171422102001635532385137445382013818002040218749431897963776221368492742697944381795959693575427893601454816393329509507689310093545625443143074893401367242980551512473944789978664562243967990271558052174790660356567044022975889500935433890058378297786594278716371779784757348105875756043633349337459327913874532279199938436788184309020705532983574260656035906842418084900282725749188196109739633749138726839961716504376187620313477224739053977164984009521602992494070943442255499213562033777053678885495769163709436423104831579562110175415718047361036240410827913323792428294483549928723771172935166653186662747586631472243627140599498700954268259967344874281120676267992564339792691348359729406153095061770934463849328265004852833429745482962750717540169158601642050606002612599022407530013147108549704989490129584125814522767428491799210544776842279966013051241890789445468814805479473405340178519199549083647916106355599344918998626340388234938097015488863166819961167781806898242123042540375887187991004113202252134142797944838742706565830335446726295187584627333024700210353105517089485451245720042947645080426894522234666329253975774535275553834382005267180365445825314528638391011461640666534640286395587057432687627047663507362834531920709715031158042487573926708583729429754952142967642654335306510986957472395294715385005488478763231175255494935764657241198999620798530063140327314843977145003644507234201543930850128768355873210876276398527485576599493714134687472632483397095605704855979767034650203577592004324565391245435089122557971314109070296401419515581563986311867810324003702072393240776298540731610492076213280969116211477604077183458836189070034839680945386517478720802780925933047447720882958760029045749957986182328729692183179923740079421937472786089076302635757469128007769068351562253208114930621836882537981758848254881140033080370575612747975642029157294015803075085218142467975187093223705485142414935200993987065904969266099078722721044671956039543105115524186600871927196028026982271405756874450116899029947307397519698336035749561096514079364708838061567998878703239359037669278040462534306164413962468565305122862264703798407179298765988184661772855101139293662527553708140814152615751145362454762956902669364354121433128921909834887890712772992743675616166092389241941249084356467463301528145433932455787049122558229533179694347180114634894346876327243574450709480485733334100364183150527048805905300179171664312001614872658968074099635217563970435003596443791304980136142935965352038150121327396504045998930844280879019663279497331497743504553968588691308748216465884752886264330774172604649043808504260612226913382813947547368114368589548154974810177109224226868183463869856725199871060953554430804037317758056288413423656727655266994696399554912398362138553377470255562736896700717809135205859569261402506851124358910648572490053843043116950078511255643233278584580745477051492248443027842964896538934673716618418533462274275366638852529088184658990790174818130835079856570026957279842348728142929445800997578864331285100942336104443676109871732865769615697229564399232805764637390658217460430208008039550935187606812289515597749404975978215667159678496584162450640601489461824835157522013823421688821784240511814938192031282337766283003252566915955696311050415827856856562811542171173038762431996584765341799727589325012840602742749440588839018609607381127713368067295074155160787955914345400260186883155432265341501868709064202568677524323583230940376094063720243742392650652778762326460994207925598498905606566169961884684075348745233498189169309682349418355854229819492393763652705010874701526664577606097544911654871106565124281010018989955747760045209401850131322275474681120271554354399537762869536046168997285463871184130897859446091541433977874364295436505539083322338348992387763172694797740422913930018157132828249827202827972565416940642227941998166280019163057430395728201272703889229471440513213421847348720315920309372451976120645444694607984671532937854962556559415821111135155902130808826709310630439389874686769679093519471096328828380728921019678352189719191377344403928392556736384645042960829377776285521420322681538236268021521140384780380936536077567979494726528071404402640863816520516414589889337698478264579611968669015635316522940083629456784079206739001303808242263570634533411835546433930623626235477912641799282780375483336515095728834050360857096646223309746904719525286199718335036016338479691924948239948737482121701240240415328158470620963083489365247449412179617542111370027233004228943476842758437006030356299583319656652511544077845298206412275433635229237443192899878517184098342053529287710357190762726285584319641906908439386902245114175146704378019006766755933026678296449372131954946467791213824869341886828191478882757016142676492997427026204083112986846952582846175864522521727632832089351505848021899626025372200414925504560824370433936592792630235655446529718665850348283470077051033565992272043905093028012600218350720003847042841107083489161321497194634061571250132821791455549453232439165476634593079714906617881121818809489833872801502676868737269224186357805102099263151505600368824581217720259786904678969841757913530149775459981489908083773581667921606337218752984974836263686386184521133419512425142620123293268653477286686993298548023445051002024119513558654704936545814213792764823253563153760247479642278574406631800761787036641218709897217941293411234750878211873707332816373098923645603501011672426564866636925516944109622830257680766688318822017213066849331918325207642095080509849895556463287967523752146467823544634155940934617880656038671298830494241956700650371610697950425186941420933934081372529905797748279382765296901634429963552509991618396962418182986550685487602167852045369583877880790667614994657138333503754204089968728865900609099403941446398413374418297828323037475494804272090853664315155644196381542007836819277135780897747953814184049876874559039666750534067060974110820954501786259128913205028498746720781313555918702799887774787778393850919803752928111581408321192061259598428018675312705894481397447097554345695217533220049486430247373311585443496349772938021790034536881708154359565790885777023703547526974972664176818301540306325366713366835104248202179177724380262970325237438317566406724000166338350825550973566702504383890449116328020780622821123079547125328695085109808053129203120848220096894483351605845139735071020742690785533568069532729872885185931726104649051379153559498329867994146880788639741565754078599999050337045289967338423721217914053838779500204473007762957916927003495551691982228673827464222590775193138468802019281878406407040016263108762313076838700336287044053247549551453388081118187259899162727915176133881686211624505245035592643294995832000888711621955362767648032612220895137971309249029028461232618004719185314838647347595455342711079844259590710409716152027974424804285473637620043287231985257772342115757060949159305713303662050778137201157979621089032479347261870980734703652979566154593814692200252520605859162689516869172861969807333084524272449276878289050741478877388114353786308856122975496321404339851679018692559009388834553685094635566050589326758392616233639338745716067960499315545473180687474138527668241235114375403450927346199963012972330924745964873712339997445117863711166923772686908123001430708025903746279032584843960253534560910348630282128518085532992892115766168443659425926370498855289480051104479691731163729394067091377703480500217135866772011914871731178214955669982262814765584341917324332620741071258183355295850159005438679083800453053551453330616311146153581457685733414267754152281552102435921508102740647527223618255905872044104985482077350761475512922899372570634392170851738109107419870504643357354067536477279880670437210298481748473656005856106236886274700884917471498539060752198313784544842667086650758038530870207734636913031811873774167112952659395860646980361716547846585943587414370750597015026045379252284936961021576633253286005990147510798644711118034663816998017496626261654229302904712402165459760574907108641465938099951898971420548240281091382479977272545809336393529405009064626656385214531841399970196109189143751839778349314161677401554434171272358373628873776109965145480320163461016015920424679787519784083959181705948052891043638135362147246793470424112877961891477739192832010468995310048612009815075090504461110753601249760516560492719772053726827804040197737551301021334917779765377587847492672558245058195661903743139476009667821148129635465732028953890727423635039735612415763642892559679767170267355835811656175228088320718260650083046387513028675673130707123197645135777306069069777893267279449356937048789809571608395191450050365887042491054616144901760798812041215118639473016908604130924344713976903398607188432444712880830636003990082585527385870433067978254207034966827368740098161140512644966746276676394740838425811852625056041799278541906798539535114621502816302777474717225607910519407819804500218021681001051430596262714392221681680031229523012292543645500256903852598405397344828894487904113935083627994549501911048703102291383202927465323818863762617673297795415870496305536178782146607116205550498730234986266072013741810010826635423085924608448482706249962720016645792256302140829038615871813392167482272954191918683369067515630774794285299013147849510973287978208941982775069360214029471535465684768819124997904274228915602303888232180849991332440196380854187888169428355989668511679237486151288651905706927764272124700145051412208402795319533261144573126169685344391047503448028676105324332571077315073771060925467824888948279473669205891213435661906026743374666443776654349512369394823225908772246946815417198879965708678693626371076348283881406734659925592797771534913364458516045046662258970555476124981248986712286703467079804084406523974664760713413560755582150053863314495701913440524531659962213455390896222104285063443876199604415805358747606561925673069279356713079692775653676251499383119761819947221552927786401408574990544586321719185694984421629905976448419189028887687058361128660326043749710320232285020954432227628959103449842385776179549221004750632278038208059535431982615767027081869945925728327185843580255136241610985409066926902989844192240324379149942404965896566829565329544929862416187613086302805413345835461756956156676185586565293137414564330543228437742008507422030305152829491011183086982511609711933095595530510322521299493881624496625141915852403217961161795544428945418479016899617361430439345554080327988681493561468724936629845650308905742991685293111406501179765500134377712187325832581014383815172714896478074147814022619561292303658066832536890190577682528348867372051614656052677453159048763829442287715579659856642258443212037390507037313894215339857891841144721153817762849914265842404080643100866922118628213093388795315417475950865429084684183575134767721761301134840648314228569431378686437813206331231020579513634264839562643317078679007068191464734867822917278515645900393129225678545358664107010004972331387094980680569851578999887209795616558887030846993576247403219550046260459610066314681950225703686535938629124551522249002447291775520506117808369684062016687921754835279493524290423404005677528042295437807833221817636928918463462325229059463025589747101556242275709655720758792408145947156781366565094922276392405542075096608203991711728981524583283576124835806966496176540249251856923074465971968830669659364247035625841486085923321943263309982607479154787983396965177954451213645582545434903719710956160129796961642394611340372585049529754302696005962667498358615139320717837005752990905844436624517285445797198825977630046680249555068304397936791653195737195772465298788050739952271951117915406264765876327772395705426605217220054230479826578981481348869725291729140707499280162467547983028378046430900933155595930467680984815595936093195649380341149129992205800906010522014642780321818023452238084508613414896491838779391045882817256898530687523997843531171074924133650000128704710358517740328384774488608574914972777800492194734396096889609182510458188438909711095019090560054968875223839287462707147281472022194320720704672969961570894571600753171873018284264999171418016585868897414216576488057638194831697287077176225116163391068198269381117415980479628278699894691502918465818653930283648120131469150829853546003106708329835129681738961240253717255841493126119582267614651754400457705236405627679456560753833323291314522901601291091973229261085517398274352548006834572484641217572610117152030885605261237052164805874313651072465488731626451747873903467064144999951811418149338651326468893117591469755094396030165774793839057561919470522874478434164739744176306810827734681632688454140005149299673044728084845585442039017087553246518087544650549399829578236731859772020934546347797144383415568590673614608987564030384635627275710143178459451681999594826291128201112509358416152773703633586252064526162272337909007915235962816373948463258215270016835499581116119416561134304037633834047337679496542081390034940702807758137093996093452818369635530777734355528636701619793991214925121655808191976973547797693961103396297998015666836350504968718945241561144410540231389051308652624869508723950490046677021637857335998048009732089380730886720721532805133737919732961321884944790347930783303842030009231150664571067721927890895086516551309566599385084617061125684065580362480218825025451476109098113883032015878811206337612268009188407245483684207249901911942618888529621611936263479010935804878839450238872227600730040549383780430375687923186359071618422785285785111039620350748632996989091644583370604476962204138570196556816810987902752514650711362058095182620577223763842487406006023261796143624017424031868737298031523768939893087772568959584533364772294892591153546959737834125213388364819985295627854045418433420090848768376420309137022878239737883286015271760205222210986207450849593468166132243593592208795484369236381311541311859326432037992646637275905748903169821790569769959986768969831880024839677585299651198678857484829646646618298307826270371572846373924606144300897346195141261119778365676162169309205110823694144643574018748299541658156768612006701894360778974534195023578245045485426450326242762230468784308237220785379125204602514833767051891150834159423665225172698421856318750814465818861289634786157513677387304714534376303323713638110509718577841746231032886018135166245327090632501165867349092244335247315829015913005086331429853986288269245804484642579052065920645197289890910179479347846945869487281406182240540764436777402617629180399697181786140599536122389610077785710281021840636692887168258161037290097770971392977592393760035596283930839651334257655838383338273693237055665185151327888031871004326166744053735131600960894601735879517550245819833504213370361997851677588609735074468217495493604115846940470150402199637457036932528704784578610205484141289150805415414783881722899044940593506282000552967080553645138781999691033610559648940668096919993405441563377237903514275475256122405392116401286430803759788509899159304923216440927679954796585898564775068938893304881315956097247910951775547254568438051114170115731852725264438242196637440232854891587535630469178671243908582120260722474181680309724857057194293747411172523041296276272471047549989613852534052227832820070606250840651150176589135631659069236999263411804965708205883462510018471294878217351065602306867613723658511639575353134441403140755581607002040994589614365055614181505753411776029984173698715143383815636466020183200378482494843558537741805584257979337652544626552238678644542355900174488506398457798710670650254050446331867033206131254847437401004837362335761292776483669156164852566421469832808615313277364268261604948530976686649948874439926293514845459267853606065048669183818610469841017426024552635614037084625792266541257564553223060523039727777186390725743669922660106540871253206318120237398597310962343031817531117731796650730670110829216110958699595334612915905915555678823079610050474445057787751262622056523313718389971180408621045570758829279623204484303102857538486285050999534972987280192021840826645172824711787759066760778420630669227879603276979870518177691295816242734331244613483349317804925925431996464097703918483596324085364059142257072202012800153369174025331877952949196704302200573978197368105264278641994736979403726032941966470842398626751674562067303009242953308791437910061193316327071793530006874536096617865770286211766073801815615874689170806834686128852107310756503505484288531524696569622259772861136509223277115649078750734954258792572154598414406164847122800953470983440234121270572466739071671524646453853073294112930102050918459974799993029366293072758392939305488469288645914887959197728698697985391278886212134409991566253735573571277620006214610672855752025606952052202593601603361892969199091726117146764636528106419342198957063476560170588676960720888549220718170961750856237453445783655535956573284467242183779361204052690289532847574631832104805279508466251046865930778129802709239763441017864689975940247003707184135234991461949024950675154160454458834212999331476481060044314875996771915421426465152936355432335145395588139936241157850622220742285730546640326990206027419245621967140637004338391423857348251261738595207922778412126550934828890015942496567095786259675967513466249595880465226058454462721961270457436052736205345345751684404599495493622573331844849702960425411280273769262564785258953287950849311256919523917640239290303154801855005320121835088077129124911622239840616873142458161263126465338715178256466198815768671872882799432154636171027572469166220804246990434928781118133375789276396623627358461825901727416144161565052692023193138080302280796115424550660703515585431725269061272907667214472985711718681324179220179856608078587247467663460433885506961567767769841274571574467941133717607953148084478355726743639513937762618728935664134915747555637702576811187733132492933972321684438412747308762082198567553275482757421889220082904776825470859109236491262587077761508432390020687029926254124835599996877794618529444957237081983294054411055548878164519516745858434544075675347658211182039096607316373879809271231808018020630982955301625651031127663679348704392033265883525157822213206620657487254730462686197528401301768473811911403600911727461403141418443055413990399200778429625580256796497854307555297806937781527866789007580899642710707985844441315400781591591018816716953821617776093552589584231574933227358925144699692541381682754622779538341981974336255036472155170262763916948100868302239151745646918594448893987548587424093616734106990142975997033918941028633350072887129432581359012946590668828591747792545876607992250079859914405170325650135162425309918172071740485446261161183861643737605456771975946994773239646277358053318428865499682294507335793154669302259023982993385241371789302118128490593424121187273152727905712456446323342230711222327304065077073813075103550205854735442290633274971854422413646066977726687755424759730773790002250245488189168212047830497153682291024699970172334364848490815099896188986152350974754495256630546012319985770916514224571473183881713809753459530008349930121570589522507554995481661717648298822827819725500056241475878399850109763816537033598178725575778584739338986637114851489825082409679037762366621286261078438839428073995833674851606787393146819800874904458106220101444893681530601331971115014055085758169103105570876014167184036537099116744601549061211373298896400210488934707672837101011007718484116448234768944407433490118288626638746675594134504127005096176044969943905476333021901775103368445058260591114073596465898929425901412722872236365790769781778594239477129786020652040477079201993934259476846872048376725820026600422206065562277012064250212280565312364961869740631004147023645103288433933137567476595705160143307042004841754627266739685780257776782246153632203812969670272016725159144339921206917593180980396434937517247181890378289956033769075934701357379496754916267479844402625675424947149929317561851215364681042530610545150132600129185420710274608587754785048185609211494281977482248394495447990207580651718156113367558428775056163046297590393153854695293657707724889803405158062351028642063826020818155436563027037005049614385721146584616896006033608147803167316717253992698008159889998162675846907175192900021198326980867229774669320123061466992853446931876443829249037708787713574757496486701222532908295873452011890403053077416568161088122048440552465554337003408727933824804497865818428909127674376540623194808747114154007383527081346424611133252249333559064367873095268706426613623540203853656399764022302520065813099277526092116454876329469530893917326595044327586221659837478030644811272178048794048466825772115631618381919967779545758903925403199527731979092729542822037733503904355499895788443592024127397721773610346559335789202511991594689583048300731116852352808741153855889943693297841781620948202126939490586644305490687376750383854909691976086544609149730949929420530884271901938665451191341530528448137949497106267250890125325190349042482086391817727931708150839677067617956743169675794194510241250291332415326647694789865104899035143227560470516721000875179541383998561531568754479642972451718396290129589150801847803860720432891815803062512274025251268761416247257673230977965358655674281007308125187748554359893363009238240175759339970005434533186318263773583073088727520353642505478914399732024158109246142708182132726876459312464516258662769820592487395958571247292602380394043907267973464448593400679468438844248286521817442688582323009470497368633331282419036019230879916367985674849917182647723088273093466369691451427915089122090875648773894763046855020184736662707838309863952607057431148062770089630438961192589620081163485693568868220834106455763329529328432977738921442335560281858724479610913046387246181534999341244667335673791804788982270667003717339549982781371723018321222446927111230603348595678628037857071725227377253262854195960339763790671419967199640411715369854433296580321987550859140947108928122626841915247538541081135444175543420884721043622863291425935924611143836038504454445627276716327597949609793072205906612189135800378509271500881099753170034623307771457125330651627567125920263961974920658294858523614234988299200616669999069872795018250834612146320270216311991315236050478172235497600244261425609798978557062777935403547035854496387065756529831105242925416041480735255257315119873533038447292462064734936296969472982198752112268111412506558535551062241146213056796886347767318697727196465075569510616604644014861131901535936914651310336571351049804310488488781862715403568092641900653420138255841856101396897934476470255103494451340421588877230612839890148291089977315942064191356748675838581323652546250609802913530409793840617099273295613428555578433718462172435369646761336191651489725034252827152646498485650933664542277789339209840087395626917829731503174042569137106175235724158642494957218006090889219025143981133403161165923111449065135509948767337722411453990533700657416407131892514577937187302406076777364384975875602843900503518469139599900815990626753795862236123696223508327012724771381731752805986099238181769170325362350993386804209589261302685836575380735989324734656118198184421416573673371492138407870876884128769842441280862970278269379533456356090335013652443659136577214212142055912472349924009004666223149912520856936912975018980861683838565562683699393506109072538766169584999433510230333258635845724488211275278206788932837848851523734476547221803592838152819138223086061493787201853676803672480639678534848213706780573605696636653534067018320826913519720836186585090414836647745203637971490843238651763706657585181547700527732391288785859761918546234786080483056559195302783835580704397181693141019760318631904693638240839210063969651691009181483007888190908389061382612893900721583028259661354890256453636621887149800561513822343024802935761568130371964420405710097842107338495775888262412930649964460999181165790225796784856820825579953692016391195962310327544557491982954835203510408896549593409934608173907426754739769344488341310706906429166747788011203255587390448481229741217137957834990714015486117456111251767555848324224972222010091490884986374753435325482681875808703589183716224470420291826396168352166207478382967190199857474702220456716989267173243114991623422297935085909363377598479364143970588165029354393355857432715233225661758894456073883408291969103626301403593752060393226017113616919357126509519579310061461066895400063892044190968654189448795782061787666819531071069272333876990713926399193204724301402553421711412178967619367717840085689343270219924492097005442370157821282081825029924197528428865249640906302621150233055517112634748535894802384123000640874930928116892564953846765657267612150236099302943136994215157122898664049889058115426883791385100779260546758309077674966307488483813767311850435243003691783602885558370512454035129127185275793740908023639018873552398981936119883408848245658399801686540075891027706996483766312205181951094985610017770217465034418009067013150442134535652214804895306513170561784650608203256362723688351625088231502915925212288900386695329142889563125264417466239344334633857405618982652245019425422578329182488279168359029201366167357124181819849672685234440844295772534418290575079671187127606936786359838483003207276379891464682648723446014490052353475528356053315041878826789945979381390021935067205144538986061418280903759040790638735071267818398949567186592640601336331823619519800329392454307653207766531513185562734025418824029274544810312312196013135608373353651007616627980025851323285214456786605675198470468200906430025763442649677007310044193351653857291445152461598017147828474300419994330011150035767291478228375375397055498109307776513526713738897564069758108656295196083099785792554853552989924206585173108047305681054185215405753342196793419372146071995576324534539437462065572536522226864250586654635150158454969004443351640452122344931335778410788364425130710358357317609835930178547219429037592939047883291120260643763059249709896344708240877947918160640188216724027684034340386410214485530660073723808310685058220473079565870184298924394698705035298159418698592669664324247535398821548918409709573979693539563751883914215233499179822738778179857651578532741323293468125095314185172652672420421240967738088431037708366132370900793997128823939759635940464099904143581455734537863062501678839093168566750676672844468271566711542945668312345457360780999353029496012361652500008773207816143135220839488627144398427895160212541718550060032866849239719852171996488201162109041442613433561095619188281875326689799593453971240766533589723812655198281112962833243657031372152497319466954344025153486902855727771273656974567719347754701009497045994456036657734034852323371670651920343130556169445618193865337332764759031880853613532719962907763051771993989812764018906749781626415473952268645858481228426963729346787651572378321210911846708233598696073953358396031264827856128854806417351013259531513529323578420577524799811189068308946723425692901480310211312718579289888349071197645129887178764163613991517724680614228427445658143114413298152791702301504847402704829311971741392547868587456839715850424909440824139712539357244231725781009274362448546574457023647308250357006525113633705257390229381618656355588845854372461535347376200076376659228208150273622383647128250476830217523585171972683300246100524955747181501176171824288348418066605891187345870175907506430697938764087472177139198102511063647549403447404985798757715456657091199246812605029775439835141940243451875335777271716231695275056455143028354962300783948046127875784398050035954075133219571320340705468913838881115880148112200118805274324787851671130723167571275566083243635035372968294996150318283187971659395594211588367767222991099786339761001999833354316584733184196980395048670202943283788211024123828786297272022667592076824470573650497817683486928424506086184051838298233667298111754373585206093611081046541065546330864338550350578866807577402337903310239043678944317571468922843866650058815981558116304143009813655043943620665798224292794347907545845574531954566580866148832209268828738956086161019505906871729983897530738765011095592845912590652686036804830522088660724453205659245068998080946621638449893449238937271210293548902742386259475207524494717447336999907147757916048739603106796563087510583615275514974572826159666039531972042176377143074771142597763537947658549406382538984375172781274930189129342866258945454950624263258973895106646449179971445021563853327788624589766971026094274207547723620576031597031544732895130926771799381176949363903063618576595902625947965508609657216195296692562403549196388747958311771358545511886261780925968975109315718803167994842002057510348451244855409126442063836914607584781765390852855809282736931588647729534961809400481849757212061798391052980784177747238669878723617974782237076738357898500934720183965848246535055526311910012534090292699151098047513964729329518589519417571899111095264500679637789577900423563184259278412121909523522143479889648706408485134157525750465396322783418041015394189121478955540492264903003394793330219807207764074571937177496970490331784598491718885047601870071768605994670010485509549742889564157843420829821736066679400673897587279697033436098245733961154289423109383408582895629851757955660965068180322648204786309670902482311293995591242670263187357235139789957410110614548122279133246519124856552752734226660203162114105116888920022554106939873764432952838681605715688525506531643272824051261892372147145505219234132988857568631254437472394672636730920709973341185189080653672878924730671995809586104197787564564436659035844682852713928689267847332072904161897285536901033481870762944608801196326080397623768105126063616024910487656342380326257066369889626397107532706788554584235417695369926629910066133894775805306140387194127029407300891577064623100021623378305230668161063992903057893898574885540646227606213421984612456821620938704438999605922493130364828083005618990334117484183805200683680621911282107209711535904722404882106828630987874538620024149662172501864081115052467759419425475180916520581643193416417112292916516539178183885580859950765267439344235525595747034259422970789584399147386986666632170294587609076669195920572330821745321206657284154209250424436792487986005039075029143187016922929683338474056263356075640547849222468445387814656207675947691390117871889670867409853088953409173107160233985613756103390690283040016735718200633737528639753572518573792330442746024647852626046544206095037536374266872229640074491626508104005572320401500420812753775655453343753668913573947078074883091306681632069896724632535390841510713604366463708864100129407628709577442609134782208826135159853018018098350287006308260009017418943226707755454073659532266301628988577368235726968780568596890148652414505472971163109322654794154404773438627244538885148803968866246588849345222033748308702970963449797090000027652132867105110388545693677916522767382391783667942725942375818243150544350670541014271090289397768350038269376875916626403074021994587847379979674010738186985297035752078003987957684546353766666374606487161145799073075933847806645138204426384335195024910744706804791517285431203646448754683472057733260094251917837638348520953838545143341482816750508125861514165043958396443462547475572263764570981932865547762035574145832064544089587172605237717304938316379020367727046372238210312392000937027173769378798819770736596745105867502270562836341284673464255973759089280314471933332490920373681524294125442624596626034849995946660811786778991252469187794936264017417862794173289939870885773173356301161968170558899639096564532682033086552931636411046525306588771580747974923310969386728548258858996155183832111885157736304224745804380573277459906206560983668057162607862868101415580271533654362700744403653598865712952093565518774148974688234470483793671864207954766994526117713656560659205131756610349688519192661081179857167306610771462378023492532753204597634368791043485681104480559303310376085572663101586980585836030057075666761346711019000396734814916634231670479707552048525725922393903175198662561696916304898459702927240778023182067823034040205194336417127821997501465234412244944320664392623617700115051160841751550458395928720113113019090410059569054950852727276870259062003249782162927185600507577625399128680123863499222308390954378860778770165241662759690499404582672077327455766313718068722659366513257626643938452458469732742117212249998741126260174716824528782728237766101791154653013337900939104549679681013056483396027794105299249272620633438885866315425302522266554004281676464720965285518445000354009040645066774989830116340906206238742674482344795626596374001057770173262850670541895670280994906683363088608809954317768792759148631461921729931596797339059026377500607118282409771781074206255130635309343914348190747690203985603537759619528140442065925596819114423337205018079770208367521388367480006669822097236188290462365128446189029508870862058023701157180624584492217625607892778968358155757031022549577332934549079285844091157054168777041156671833252754658806508839862322865088626460889712840734124235426674905144914981171558351110093788258016857162587940128124672015684418893137169089550393512058115949078758174900107592383247015622603409232355360567940373923536198125224305169473612125729091580997855655050290989663658752317551950991209089285069482396889106232957293559599684141762386956951555677231945682183962850603113716671568667518016135173818615552809645379872607474132721625432526647043833303647925591118115765096811889264444604305952719880830197858610013303454322137717200753183649049040017629902404069779232237246916460828143981655157714186713361813663093486517677113501106442508179201570495004536818241907692118985854510163139982192831463914796751359103590427819176959769299299769989241134657426352449601530699504262698216374500101581970361591503329365582333864198811205601639339128553935833484879341974692815351169596328020898240311650567751453320384557667004837760506480992196889533577019217868188621978602916558220587811096037539787756878349970820126695535764028958272327021497743450757661088046765559205459950742844268264673354483778299228003854596885086250870422312494066566870109419926128666545985715127076736931502571343954130510629595151000975000941451584408627973350928692858306457204329760257608801184317258407954874161654871102601338283360194620448426825995053012179570795242883397766018212502454432994462657991662450950007233175821941742968802918952099698437427854615077986311197173036131783575019168028678105936795475090237459767741052503209890347321983243071512030097029217423117476230872113507321043591840449986454391134644861390935408117113870851216021029806577915321059332583111109410919191569716240929679378041941672002131262750511123416486039438574633782411609427039468138803144789897950046176380408407623959973497403144533178203015978784599042748367635741733543770072684073784882084328558012526093033883282618495414906699767499643126043405363703628572542051675050610805825763468033537936767858612195765272054984058364589364115871602289809569836832126636971750403651645249500225362453775154446930174440061918431627259528426353911581793560560472903454830901052558989316056227973774925736461466797189015839360293517061312212035799814447315037088450590860593666959071154069688557189278285135392759943867369198903226909781200781995306244029341415675314643656612162700334481000877611380251786627355717015552247937232316066603624398937920640291421777550620980621432411618604116110004903065801005340419895924955127998438667750112540319848506178616531583450980762363297110870824935976947651990967293460918456388651394501733697369551246768535404711103320080195932739641593211500580314222398504871917097638353280651190500150978973787423380340025499357825118844182819485581456155447456733045136262102886074956206721771769019083697461446221522291848871616044313291424341430612650326051057621127997388460892718978842611342840589189835007527859758040420899846651698653989560814870381897297908588547486765510319667653939220712024652548935167031952738848337663251992744978529148162157448926805573969477233552566140398717828219540603468163607608466299828847674971202081493117914472020518211185633042984509200537094336303994290876949597240185187220371946874394576675840676086989870927661241548768164543151435101925891341532664135001811777103041528015605439688138235563414450675739125984902362552292063479000387151095223830145775796469218070948140224614412239568140146145952812269184098126442481969846225778516237614919744952193389385950861995271022199569831276883456538283746952911419650872619809010930172185894491764460672355911046193933395419680409164019781636595532531471712936590942083259850172443334414809585842832955369125450576404504009189608270656804178828699923736932284386701352133911748101443006781684803802284814058188764438885634238495004217934558119932994923815677278706885040526357247404096225323078750092406153525576165715941372718358884162682892676288185712576695717903794569176957373332051748987083553387559818059424629443516483460352182505047861385085959816585010920721670140682414824597188708611056385243760796285602824467997960158837546542497255383661245266955392026185658955339343841937933933027825820794493118133612067150839503256041564008384279260192340511725938217234004633013755389756433157697943553167860045102418077675740562438033163185376545855790119736341162954345290369403260633896320577232561648900183956472789769241297202316536672215603176110559605796719705580088471756137827296461460117344734742969781204307444992421462707048526176260704162543412840623116974952658866787567037754050414247895304318835991297797111851151236764558345326663982204470167752464934323406138000013657217397888233434770837853508331485533876637095084696445613685308802215747451016058836820024066296916276021960897774921807517069278995832877137437654865662507155801226312553060408872054359632413837139058691206949503876007067209484744659301840689047778929024508244490593523320447449025555541286038177105525946269974657750128963746130559367167776482801264439415657639605521316235707309608625731370214573934413648753240456120855615949008148412981257942329465992764219821483623357071627172779888491765201793728890058969519714234448106058085470653188835100762156830513302684809716272066827920192993902836412494279186170364875160557684643603751867362035494313554453074364309074823774877839895687192266817339871400582254111001684672779931289881271659927923695267271864955925819786085379050237270471785229419601831775849988476803005878825885932762385405372349379091250957815254742941152949833158673440650551533305398044216331586151922357300015569365209955529547948299508371544505245234079677254477486966961726890103535124187624543409811560707542385306073807787452269805946451756064877967501705510851184792436930910249864589259511699676180915635105758946739142141365671351600805455376665663966302227482097855894951106024570485898628041419513601258632124736115346110879955487905939803426632345212713498447829712037431645115687918871478994736464529967309914927362432655344117328392472815355052454898958673211120462180539686372500665334911822777634966152368979240582203772090480690327667329338182742846127659918489559158198636246362386702785298952156349237641170683938596256392506559248607752256138083689231729581248654665586222440021045254799550782206588240625465745029799145959002102736699166413812996295691451208280128475090821780979803213814505066602447642779591458341177247410162618279948888540334409698757707878569252778882403367952133298738554282113239140676349200066670263145036822805021991934292083078448994046637973131194322539265048584556437994239655483800785207008782023140109790768164701695457216357940864762163039734456970458691254969900143133693531916076311727107751391704593214425804087014889899673604567612190323716866273398959595830305120167264430486953053857943985250274841474067480368803881294356881894715687748686242651866629179647508652886366776905762686168443491899875265925013736243521292488805604159473661846239402477589923672676764521498448290265749454403277539803765197628395062629589608347576490571165273337446235600531456695419771744144909307619972026241959119919779223505790364370444932491436026554180097855797091837199219424112861445447433465891006616892459730131766194107091420147205296400134057103594527136509438251911763577812041387292051249801031555213539045965963984265049157079919293843177888824084972872248854907181537733979687725843716849222540679896978600653099972752869315396482286835968035823214461623274592693548820584175336098599282852043547079274282700657174920937439331049299641191957960383490734579065787959339228658911477912788263364116740120787315092992331299625268476050197911465305096345269600749448151874650176459595504050209089546348214557762279272633594393569271194661364698578779615859684563519130900874164551275239226680267936928335198363447828055751661019620496401015867678876565706418466185117213487733101244306761225537125458026240515895531343236527758179528377872876130262871026562607016592612871025468284309233501925056044399210158024288219110563354526329195417374089377201136010424429337647980770827939748269830342060584566288085036206182264958944796962569437529083220405461401539431714692271455167229755780568059797893132060592244988153927154907836482292028107995662623243230427038906578032869409868007498641124959791571677758699559241029645952713766088488809162098095936716240503547680339693481825072585651635984876219380198288873581418752591760720582328863313413892504648493163448002404742960730015790939265872055275118431172776865115670801763912340001364864700584029830167036217468685645829042750728509536353802317178127079395592836261839153805838781579727596598394384422205762022304012607658488775449327240472158340239015049055824620396512789009155552298638657004313663458390784165010791091594884428095254130370267533501009469570332524023283916789610618008482766120520513567631723887926459898239514752428726082124937738519928504451833470937582930558579649547960415066773293640507346277078782692681870452368392181182272464583030334002338905565255398853600272299073395459155243402213907254255741676789085333702882822276863192795345906178191230416054507635299460800898405782104485358984880287861655645200563444878076905952414995992791096961916433873320167393535536342341802251110086555736908086403496244856524457438550623983535050098184224530752940119255431773555752324630454218950495476571141521711934409555093865091230393127893927508179246022542835185363062085553382509150843678043771492657180599480927170079277057381094807718232166415685765804619265132732863564435861344478128846900562480391436857541024488767568026572823448219140131564882386067407125033126114918018666223451148643178842731981531478261619342145035117154623325309202321729433746101348509211998586040774821573244925894885684971493363466680687499037499383971263192608384206968223822303173463796315427239508905395520483605551077470599803638018730511704253444577185131491066398598232128460486106320199497075362774415539794919730408166312119830486758955837407090587309554401986352183600952412152633569032697102349463165420249148161945308588145224112677349964625271975611416068738056713442860900918001783126459067862374957560167640580907057443148048258247438576811672944247276664701495487845698032308864374398834182932226106039509315211093394300595865903540943545643806192695377286245934173203371924430718268325294624996591456212181151582581604056807199280910427667442873112505419294483358106332485355729377940656913389295790647977905877731413951275273130963183543230880968448949155287736783575671756055753682324576633342330764145970593026179173361764534935954863238539283742902716583475325513497042695026560810610474163301360965949096956164730834882940406515323169340320935221000521785142993738974538246215209796331220498228789821007615495618577483873702793031991144640826126877936894863693751585947697211894667530620953303133057343938631016176946526719226583336004401729867033031884410877969787813031518962628689445279445241794828324996933497396456302148372776221940045205018737217049732160591383176242198474298434082978673684164671957254158736485077482175544453424378747361354195581002642459577080594905285563581033920090177310287660600571231622319273886003180347343159694423133087969046361160821419501357706437646720154569481435764247859243994964237249877376625192746931227470471324541365703875889857992756473539217056821576023323954676132240729260533932702579058875348854737341674262423093408304547232029253932715189814264429102721460235665494126175264574982690285873736312373197976510858075703953200506395277304654385704876613293027344241585877838187719458521680301729592634942030416702929243402078259460013444765693466861191732252166041113072663523897993445809757173077300185230341748533849096196592299380990936229105368501296110631560432334144208918336727916608764035191283584286757797412649533756888084883400435916751002009616711578906913364808922763303085530344096995826011221603527153394405724778620126255723266138951236111357785049323284389973705798491675304829744729751580891989252009019486079839901598967487626643686300672041703673424857007142583490717352021740822930688807325109150443025575734701445035579794053091597394700288859101660454865983720932962215254857987354454827073352260559389835226879583980255374192252027173301324374267055633016271874735756937994359990119649913903042287313567717246812588874509321535096523355068102808912984132964843070143777541025494616537068960153793739220239768778791734985216581869373768634784671433829066837727121944265352913930190162699408582649874918127683583021872322514086344829989378975077297785471439941505716949746232853008399316516211477735437945441443728880660709688825689035821182037900411722892920621943686620325525277823025366481257778192130348761823996786128110857472078715005821630747805660568926871488931208725448534926952000775213596595497523617158058013474131379039593606481297172481769670328626347682623586387311720092265938616522561666729071912432682673970758003082412029165386621441668223541452806004238920932864334927902482646174478550990675313263142098563654301235932114053849018386014593817483702364032776311280764166322192783273004838300049290422635447710104474804196401254127650023239643254390005986914163379391714610864258950320605256476117319318776674350399412055167573208921940562381877429522066088657439408411895087480755285688868713873628514858835736068553511782909776876219541837370171780467657032666039523527851567398511114309984529250641947467616426607058099255472501785424659783109577474120098819204794650502862843716152434656809494621930815631360680595443171803669543177386984241099178410724776166440158742134872419692120003559840621765262003381603279243744617077594626022598134579483294811417154895017609526070844434462168407610993755812223582158470846416477682661918133942137884760115537975770216172566041250016897130866383257320212755715355737603829519150846997300264921163833848151209775827321691469266985154942161354771598349583858568780610866962648883758748238282719657518204093358183585837897605543277912915409178798237771797338387024769151453187365550279792725322285589472084625085295697873369078739981874378482666207408293907897100593828274568627846731401382348036653943435247045842014346448310665119732060507213354459855521785747738252729051300358040472055020752846161806731183790802733517300888466438081885490899709813734616592646773993104047000900086638582615524500431208617333304912464803945692299550675793920144980595617991466175348448374562988304789486549296017099516264269037174866727400876351695311639360575492867923428211890771111933309327955585565672466531491578987191945591244061664109884564317484400081904962358782622326286433265833718449669589049977084649054492272682338240497528766520352568207730610359553741677303406077855233571561013007887626617305666621370155349561264008873874221899663443615496545777375111886312306567816006967483260745315769288028494702843830564732977682894459989364321730024717279626449875937282988951061451233062319986312073197813317320964607173078525921278144388884935877579936503990942493506494171707307610519481008619846951735897615199763881479000403083672596193352615897166872012252671857058473019415743264550015875346528804089792712290253492720324461803504051274137143593533709903218881977261532683470561605220680704749581215324798660284584787860936837697137052286085148527549086502447861166323856541498183960697585596654925199713542814635148166744948153646749296637116806743478142045989302571777594185956923921302071789610645012776392540152194830978910954091791701677830619424283400908843322349997873888435552495246418363083895651944720707300264337433540032713137611031665409019759378108335687782932515563404116976791496249520472504005611190514705542935327921381197310044141690540835322441633323306551175733651420443014859603570180255789116035336704400948128160818122067017502680771093734929596243162228056408619567373242669413630954003736466537917869904973218908925232996196208124131769489963473298111662330336555301569262171730294473658112330569583469700447145222381819138371755674651969102907461381537470968335651692664541588660062883796568473995844069010381845632527987179785998423840009341928859534268526787988582770417502088305470300477228309483781153644775433438063167567870970903422314700768897927290355870351619296319163837959273108300999162259180599334164837803125255542200940037919276837111792974592085245188468842459715414928750768386906343535480646441132702729975837464983852646669728486933563055616918881396953756126917103546086728149881948781014712660537327337159704711673757915485896384697858547159247023550829651367478729046877372194157831921201180937881046067649668101722537623357402792432116980052105180111071081733367435449537570641185552444226039772725118376569974501059282997215810896292675226756107301176780956632391451193396263374406127779814276058948361591999517178438872380758387281154056057780259037040739971889963176244176633752126771814846842912437005886573367238465540251857683426174075810488550570951675313718510085865811151887723451252032689289663246199423862059685188905394464578536883652246515962127541104162406411707739440683993853008872094561850220565241098144388393085484090008959745247382751269083288619588370807104555028367177673463020730514666476794829702248075309608489557989083765397927043886094145914954321743229431560203521060764398290963634027123217642449921524141237620683827637545508321072759744185324525496858274788641351281241072520547204809620856191464894468001601222950910857523444234712064220369472923526010550814158425634795599198120405245311317623014583719730180769500331788790575107559106741684887298752930197501780858379311671725647110694230335142983338954432105173458404203473840334740932234212246347992402494022946291268948569360573781144477193426185636528715152485321049960357761442230512304681924856555982196066363490214505476217568718288540139538004845585353216168903158023146575960933030073522162007688628913136861040009103637663170831986008227880132587436535476876993216578496828112591710200083249998856805128043750442369743471530207013088843086646345411264841789758389979338120268721898612444751239746270584267930766634400714883950486004230511735215796389827296416595699570724340538375269140800762034362774568384631576639593491768157180010676760788542695384646183994155639061376663541999450493705794320898559555475704465829492901446323581444010605217092985997397635213522825011400833062447142970860061746175707314369402000131915837114936720990625504582082179506772446687599811362198133108642507178356625810444009146160252632096229176649112882416799790224428946252337119595710615463854624859353981553397211051036427691624856624874870422470640498379720205481494885322402519286154278821779719227253045958430058429429504776223702069237845943821739813096718233854935303319105683175674598412177005380178349576773254696758309251602875949692198277653958012969766820812684337692033347703585795674407513056454402729947052426020414541514576016834790244579900692516924003820667100406014717594803939437149156915804584479532790549566073652917778929033707010273881584549730132643645871507012927844964339320787790201992584167125634198994869090908836312120236604425168061985104222719988265500754201875549622968283050273278042675135881275145278527022335568821649585823398271274026029486450320201366403191880050103180026356871486653374658663829577425042872703795489938331441776509210148853534104246934665758334394498874174830207264474788953066715449502621390567257672412846104887061527144792790851938117834135097602076028648897803206740916372092819635107521694163694974853766370638844269966258965389467023717184001642240677885832075749336454383373810818216976030771680964141284870679526031708071423868269882268236237348147734758524871788936725953138399038508495509640339146724878243780164204688417695134809210583022638528881137383379261328434237146947355124023417030413650497676919820748859969975161174230291224229332866184361147319354124125926361537694715298928927126171740499650064750075883097759338052278785351793764657635504670597397023978255625204252418249392204675363517107073699517075442925563803470477706481085798359641943158360692648116623907772933934065159155045703632046638270991964054956126582842748469694090900024758747819461207474403699082553001656303809009979661949893926354259674640414244541503933339050335077224128313118805525874905041066588533973715679430982170178548868923674877506450371932417868561195898421811836331030623111146787442186283919036142868951349479603501087906227008262802570295310577901862516693516109900831084899396387536985073261661254730437130626825041158357416739422120866027679118717909084651927362778298326256013485195763485260325227990625407416056739479438915901825622502931356955667540170040285478769727144766228734253195768397103344031232306558243853680375571817129552080760167370863140383881798153515212794355395418205540611252371982733458433414453012897033676639214548761638879515887846127825546701768115122035386409091982684568670318193874402320027087735202505003340236291297794172033108831278946071472238762812911862968137783920211175608630033379287204798726069209198448154379716134723227120028796315802355771645813781685575684669203002665216407697319502665716264772468448996754015843491768297778755139245454177701650464726221041735225631264734872192036199025802043575101228145479628968063104130161860334464642451855865803062228214538070347351626544732714300722461352432622688444533350849993889971601075727219121477975512845785611857322738468206853249153698582255309891440409600594672747566118536496458595841999645870917837796273682973695447463010927271632267523089001162960895243336382860642108732068200027692013463846929248789539812428078117593349866061106329149939884224240992873225102952646008045365078277453763661793815693777686040635752436997988160271258097906456137061488368371149137436808494598346470203504502213579922096681593532893821530524209908268662159212641042808165323798442916797419517114259632431084998052639050892009129775399410367814013827644525829144315335910680328756627741339635833616576006604070964100342374594277138073729564524536113580222871079542569028681219770199743523264752501610730369495233643209691594087407661180128072056734259875001116744400958619371463964143135999164614674890827892124186592252553982747299211419938261182840892809831830364514184138962294286979747658544332620971098711213175993014600508030179517381974244028421819957589121680208228218460678819663335231360907484873051406647033965839543222644361211837996274013253480388646781077388277792094861565549399076074329484074669993063844165576426971588331592000405958403558949263992727506209454906698149960915121651126845439275851951665425026539975534137677458070971575117251693299298299651626317458995743195820008198536241081447835286243260905862303294612591013860838720221921245124155302928390425345337024598698430246937075230845216399161681862018549764549579096328672134034963923681647657991004160594562499103369541776489421053224709842705844607544033959277435766091094064549338323841865742085906059394728060315759908955739355818901603787862572129977511194202239500037144619563941164870824249422608051259065807023507276483871855369751166253608759622849122178231110723685368670583146471146511458878038179532423620321662630404304292081633959797215598987719089389917702770688202489456369910191479020291460321353054390159772203918231840754317499967717188577659474668635885821356008173464170212478152153220478679245113600656536966834050138251487361851967447931328088810454564604844155158583896640178620397254345441612585990835761362656926723352300275062640762673171881384002728500691583690418453329207628944729217044177371912477471343590848018480285791842975306313208074589769367279062242650901735308906528435693665345120850549813801506514516134544410847163252527424913791065398196824070317534541660753413363686651116047864379605557980954488927926544052000249135449853119825273897422201827191197403984231642339259102296013982963784279199899084334161773341332905197398704377716811256991998616263606832409650776717858839993639257594133684715856444320662482264056940746685094032307959806399716883183831665776590061762240991486073878355516170143141912187967182848756714838845622176364695095976639767509573251179698873390922267944609589903715210820037625362182811699052765879461910979644120736920047326564803356665865772850412430606204204230669351084722416158795750478178273701595592057484796230187709582666811122445938837520466350546724092556185442364486511717963493836260965009506024825259888021098441133852229391369161538793927827237636266558877789899450239879709179407238438094920763846139395975398804142690023734028079202870384756057513541458051252243477634089012186928951311646814616924975164111783919045538282286576348569375663292169475386424987213421615114457871757122449557730027790667718956728003091166761077610246087135119498677315584491236328715337558486582924844948880476550091673696196460297871556917017777864461277411916797527492988620783456660012459683276115518756473469806901170861931806003886719844578785490427923481570596319567823694823077523121132971653663843666088439879373663446767292401310304609579979008085472324199499940042181620364522227658196329977303379682421264137177421623711856857921665358681510932430895470579901505586875006097274758940935094672638889520505392815597682951837419614749122845916193121407777739965533784409593368841794700017484886923071641841828492476268165170072208238150884670036616034645898415646012870713736909667642225175968091485725683448260446897311420575846237471352894034350755274749593794463397902577406745656621567646829511963710645745511309805776057206654235882183931454979173908735370509623057850290399867707566727539427922252774435793000534543572867311321869367235251699566689618351588197344068327562116861948667979367489179067196996078612169389270402381107039766768827544848212437186219893833822301604826527296816660497689131846466507436864071413216756284298729027714954605809506962842922542382737762904240716636099817655651134942078399479879046984670393611350594697403572350237210965022291668576375599014838399710992831354351343105924639057613197758886596483104969965541678903011993230069554976049310764885300799870006639809830270538095641896436467365302028190112202429868334355089446114635439764983735343912393282901202373003459585666456786250422472720783184145015575122446756673377207318525237982937384499504472850985311650066949988291116297374696656278234898989720729251385412077051918950237956964138190085825386938793785673300375456007973047015600365645956974303657212292402820479567818640509415486756759675210280559308159991450017435054767722482516953301389335498068598104902933193852023525724500943334946126525766898738263182280556239129579550691220931643198510117726786277973183121540846247628811339880744919191457141122884682992888598702925998891212041960691572307272528016781476638597541227559173381346453154922936460486933438546566101265774534174003337153512305622787768832498162801862236107695495403921834213594442153399214609730205581801151591153538981347493110575940866212638673855381332360920188494713530578424517111051991903541227875076168621126753181216342468902343967074405700032279401204021604243316372749642102053601736527890857699145227328395310967921608123011398138065920410192529526306720031440962231043685848588994636526555779228981583109802832901696253856522864248457077752537084555263005942583166193900505718362926886755130084987062768765816035021828417575030632405601936548633837443125482660095855621997302632944148226411735694373775994064562185040384280610263249676667312344648783109231745871121553366239770021696096000699314244302158903280172293883832586893778946229283405755903760051039363751047650965490200722042870053185896483922849479143567177825567878342774397549279413761941439244859501086163289522196377580274560847500895779436954234132135426453913944861569151582973035165208335189585678314591316169986310504494716404181628886327984216592670436945241137933519723058971687364885983988077568801651961063029059768453608633998401045267612993850265033960855701715891732603432600973371959574017085965461075467585922294196134326644747553218929624815707271342438568636747210543680422769219489713214769199764651333105912914687747937032481546816210949335257234402355463599615397959305676897272663689787395262472881067899727457873144077572314070101418962030943736220438775864784297277721777447560571046829174064320095458007756005138186632335376776580631972198170094420178271248485456160038808692494843568098078814458852063770833248206797391988140231828821779600353721867910500678399327422195944773984167375419286908586910494091278285302112872528093402017322045014940887816676503821592298238548011046046088181974915120164312091029326822044584048777479991574166201133430706185617182505120965248120435813593818976975057986563310601287712581017436481147341909372292228612321286853606573549061501328128208880010012470953948834296813133389769889932692857853742093950540742609261562238942420266321494616559213001244094294483045597975317434733034879285084348149541319476188483076977756472318739206608302156761789664697759509605173240382170264807016536471386471264222986511223710039551686386992917716007793143352530360336693612073146392077303866747557267886809987916747484537538696356793336138394308329864432426112850866307197922835195307242818306830083346407182888433126049835907759969524274994897959829893083915460290984651007330036181466112231816943295499152759523077585338378183988548805698332710798824565560880559369297007544021078797769306343443727980398507971147316905488346480172138201093219513201277736409073941112166423460607882627440573358666936804887717954765787419151079194440340755377100480340000368121751662906196880635877391281936060278092757438124475689990387695137777029417647998033619488323497476464642664423931403765136969908372736247249103979170464664268413591125194536002643315546386863913402650077688951679833280827928670106098074492085958698209321194095161422696062508242159096795889659375776458582686372475446359596800649304369556878679919264765084553500347657163211324825823671767442013420964346734939117554039344072870267380398713359877992477214681541519130159544136216265282419739805272523735083924665619601518602767478446034643884510477718998238399342425580917728675460372109927459708015420745645313297012529000946953769479116204520803025707507386184268184845878724222186243426548945661416458305070135726262488736794272102615255356394291845231648453190514617896097734880961272755404359400810348110025019586793733727061918138694993705913515133195432296297243443343023662930369900548895367254253524839395001149697380842348505548896547615770937540115236275231465487535310320647727338808212012690941524426993862545397860178108079010085064663018119998512278247851610081786513656243248985907634352829435358019488187949926457957478551723366145838573732039246559178205766729820445851963063121428891571034042021164066386389516845163306952330105055878371909329473799506125520931465529275141127153619526614098795837487605994286482572808892666339031597142416558744634064275322306988677951120003848723348608787860112620778651317463984311826529488427175677280933238307465806551789626752362682215789857027040866219355614773483008675831967547967611681659950509466781710737316082705048496536758411480914240194626240467669326850692384836167090498066103700486454910813446481650666738604813950826959953373804558588392516893973156061543098715023306934280129834564844128848375654319686652682465449186359798374572617728025056523428691245952673092779449512203122325566999781025157261923284306887654342054318777393127400724458407358351678172302998673488184116299395660477157813764693307280903772833843877933057961389170702447811747587468901204183316147262896933605076863900306438787345650155724694319845233799449991069384102194807696382766165620635920270175090144893073342060002595849849391062079449820921481355670237613881584328970851041879251110640344716156217542791742438885706464141626872564781716303740651095070424795515104267130840492398557553848114623166267073667905635098925977571919541109499908533218162422978236974280424904432942208641177835512211754800861501864389364184028263277173668346624339972677994748118476639950941160606648766429677742979931609331126624628748983582755337037923785069154499625816846401894141670217687520962529860027866269328915872519666900635140295183622556112066233219370202986718924881159000024002981990383689859236365858007922592801791457928984932384122453101944594704948994331885246335257324280711915604275804964468609669873894511607468215761639219743486144320670416932133585869875198236672432610518054919865842664373335965070321858767329171492129643621608222505619299654629812480252772923647356920068351371777727733677541357834389834416505171614458790551909516182233714270337825247047739690631798916417871882904808843826037890048315013205667127673365470920945097489107378480629684726160537460463405575106037034895024972738034294142998178047812642457506532712212774644919376916860785697410293431735536719100045159716608000895081889797475390669413877546770508798244754946165073786792676515306106618792026402017696330014268192234195257829917275491260078248088384959403679858325259828655033261201893095950414997359665096950690607469239541653197071704689858705704627882024668311654193987124312857768171597102781514451533884245468572348093557358288793172401401111771689128709511064823410742450167165626718106674237941216071620643046750433073441359046658678251944039242643314573252650129152371102636561127118783784570109747816701048718636890911533540286893783704143995138294377072679747212970551215358172220332007960429965416246847627185217810574620968264657917425080646907973433188776590852822234807272545613753148074503704516947949912633919795673045904222471761029394840792063301793340037612970586953474669255165171522028228665839541853712854447787188334248643245209172355956257280284935021382156016594771950476382969585836750764489060294321474430664249802070774449243243989711287943713886734688878825290960909684816436191855862700075105436330120201509006765225271307553468937703511833332255067992992817746111848462559204474008992977513620626455316787754113659813044201771197631965207573829581112177927680931330755362840349969631374927937544688733705420197537604824211238278463013288375517597867380747876559988286057470960141688526163551592011995715681479370003246932395079617129066153196495833461325036588184902099855071789519414277218994059962902405734700842439654299107491177864119081093666099735984920398767278227511100165433640550318169746973989685148978168125596958464992480455943631606320106917290235262528005978311946727651532697189635077740132448804714655721223037795361178902770611980311437987817512724914545634085398670022539067467390325465303344968142793264629457784283626591091370744208064842832315371061335749102261720685397390274824237742855804892426529509480442802013798564166742998958505845152508728527388733217811936940021058167538817206007336268548744493056118581194026881693008799529127691569307892169777173161512934650258884610001605088160788446266044281311619528147633645458886992211130272881106965002222619855924194390021027534902460622970284448567943867723360328235778196041669400634268791128830180538929696284597884164743249647617061728151631861957401437119070714699574593913746470585070619275883181331887308974959234148955472204272355439056815383530843125152314055771881984338158850971908010676661171956429519553584116929791596079660602154761764548967753862816407432894447794047892160155637229524333295542793067701620413477234810731285206115645585171438429454337792379615343938406309398990621645000293658923507638722168502124670078649274755802473321619092705643539413800146001628687787705725840327144804340906859751445287321926784380127157846328368738712677826046313686601057653988577122754582906743582271417860276418738042561827704232834974224407127453654536162483560398241115740192125468311229918151130199219741502732823883658950147637496884692792529771250478812072235190766119914490568917422818724818709776334070335891469567940649607994041947601925563162497747254232659820952135094444270675932747019268781235151486403459115819287692514064696211788482432557427808439891077526421883244054801531195004795511950290445864293719560730648678312384896587163612390276504830622199571537478749086190283530040948652011488674717274897757055682808185923664459206863342119841586923416401213717809466622075433956820342306214534273831933295576064535689456987791610529158870020830070586046389084796413454749983933144158547229347966731374966466508446347669239405655063690267701293906948438245482412298028926636794643311004855294607371738487330311976808441892383334268215141446871026408905499902291871560815917687371622903789649004785896901422614431544662040778527222606500650658212053638319184224299917690205191427345724973769996265440688341496919161054900472799753445439671608154086617238802344583459302006673365489707650476131125830051534501899883965502102929241242003171711817131579041096710722210897933504491075333921460379817119911592842184715961357827247760520801545577668310607946869970936430741812692314459042612275733768961159087964622380341316105526811322173736971464360706834064764133309698402632418312506492873514697409178501953016621931133155830637116023405379365348336502892667080380614790467389439788403199636531369757460833593261771320166154975267156630566807791196285820755622205789625567201869546907316509686906928634936736155036257669692372196372616076257405754286260942971847148223908139618323606563588946733419295508088573534597009645837625801993955350402441225583212892010465123249053688967723801448209027215728487294055962025994445726133290992904549803750530308370279586883027907794882062987361209196611030979777483275703107883016417739403333033270262046851307973212761302535980877145550242404891768239879263859784042718622671178605025017550628480103458266430506684885341090033088615048027761191755594834521924333263477047162147365684793923317324437647110440012793959690888681024788467007293498423835528421726468452712866278430661851115415177990420948230514094214556019425431472317158179161308170786505757808059473164322743143280646301057263736083089981291242976685574952319348412840931486751423309484024745930975669258294166302561005097476978743410387873740620855929851866014073982575975677224156242921708063430022167979490865714674468023612975992976163773493511973926410346391603814960076658555700693632676296999650622448425591656531076004936870125349795801219668788441676177349792754747640947324791559888503795501883354553620212976501174763633821414095065590609551198081820667187658588536679998017285433369283514885162639189422125000329621104509579290718585324556716991180555454646122489055303184001069261367584763572387351747730183300391443529801399117280385098233577750575623365824675201938630197117636416057781783037534279425342307996273283716073621449419053248489392379493380998288188520417372497812407252129159779993355122761439311485923367547936752261544801136804733841136914239407813023639928766371748241690447539078979965010000448482015871600166250717057227358485958150131694417222676674056956245237254814647116684153863167567795411282684361226849722998578728850780266283862249537609483910950994499365799313727770631145966090536883274799503689194378610528283423737832135929185064411319124240590501580606855295637292228021641407654620632843386929799294059170628942666283621783560850415197660033772119538670475861917159175957832255471010167255902259046600115372890682477848920654883447774558901168257064264025660148196425207171375243414837207486503944111487609246102285337699901402466606483803646255946303079514583997725002562142935598520484438643317143964655844448697349134306985550604167668327665502260361363708940739837117368145804448537164155730864879674666567512525551995842944571879769834602721406368905747907116884671703283850591072064612515352897085437945532370054224703468843909213976287839962176265544942555810817544390985150464612871237108491533169448551164801271728027833569257395115316896220321738101178937032607079382020631864649764838257493889180113755223685501756301345216682500500053814489718126233651480188777676533144700409417097611618360848456462173578314969702826418323211975063869947028332972800153312325534167322412821070723691267591404171064308303057461661847721692939452349719654347581289635029362248229628883772303621803048084684218676683439261582829182208650520018361035391134669545972189779231259168881784061572639443462015500976981980935526585843887161890552132210021805405362624765335423867763574394448625181179467226131781819495817729164543130003204673839668799735535408222256986605550672534295013146307903211632336296064656892339025077409953360157649425330289199163534963763911857365242555787027221023635736153956959664959188050410567538666714260506976591286698641962676382140760825077875886176765850137549722710959102814552149738979075188923259002889941598588115146385718202776945400187854800797441151910775510980438467078340607308879791990187774964380249726794579819575880416702401076737312959733987744819369658151312191264564133825022799326084317960749876519156032322744560962018502169451337601508681030173392358872093390428142814305337947991467466940473361626018403060795764553699606419604710311419876928724970277460219386323611805153235551303774581868613643521821443961342711218842598640453211835192250283444891570148228694642677330710186539447990870998697376518171257301023182659642435795100398220461865744556212316291788142504782374536607585732205982799744190223625877552747406788559206117891856545750636909037115030139817761749650548734549653806861232909691019555732115313768097414841946584779414752358876919263922466916944262312470556502652700060043735012001001187204796936542660041922126002909023392338267324228645842945523308407561453074294763807673741776190729326511651186053543559842898969116501923942398009928093287992668253709296085024114719913332673751945131066782886340306222035515388146633221886523119608600723070237621176543730025207281187423934482580933748818090660871964695621455922743176080136812596027264340898289500334548586555573367674195838316778263175042244849333725665695035896819590868960739882610166045109149174023692940814211998925687264010539333662963641818917106955968305606377593770938879823141500825802787068684756938062240930997796739004300171845004962812677838334969366498108799308581723903907836488092526807468412604723247629874659137426182753373753955030797267372467526203588712982974267710234621082153550739486104868735108438152507745491944975720619672711295176828421674041500900925101996744394263271093614889741657476553457305619353091237359906368217435724351766140768216331555899178769982240754742587433696785025364035025863912138784940962578836704157573783704746761758733227192229554017318592489439248075346278082020494507186841409326290234370298386978162998955411951851538031414763886866927080163000719466618994870475555171941464615424328095136963840722776755974904419439812876710603030872185645863064797303589709418890979904064760170039933712392569509710124835325445703454079258882902443159839360992868680277730829698523857010851822678426618898257984313802195797052566105089559661823273022677071113254332916225310753041578197397607532928788188146377583165782812500379710722225353751037885447043040241049488153352019814489872618361780668819152406157904861324919347224806945234929944070607479576668976824065792889047830650090505396574360398929254142422867809338830823761140938103963809732185967556698739459771515981439800406527461678854953550575859726578155828063205068796091821411619065070591098916707501829026587628247362169277482350555846773715825663136012958257442053944613860571211062141406088927761830422278915240469153703482881485596400736139446342370985097851914556896439363442201213916373515909209544116786219282161602620986019707095965237843506714205400591705269848204324833254253973865353019273772731215707398000675129452584601543332517822942308797480861100309152247258090246670664680157905923004054485210695438987717200900351242032642414868641114700527595383047376223001867000422427058656577321500699263700949241565343229413929166721285545411780935207597989654283654590781646546806038256573605758835637818785968663666804664836571967509973153712923214739012699695754471717637442958301871775135167847724141643678602654700129102627895919427377003775939594963341616285913653498073798747083517634815583796807921480004432418732841514586532246355687601342443027718354138600131568872788992087097566752506775401802188391402499827070702333275095993671454061711021994290991804140225612250535923309266811781575874971661674544339720405471268729572536466546263586249379217553139863265407324624072968707319873823099497350236045657054868669418286329632222529513276473086985729688041395704285523215384210296195580790181718952553514898775467213539294883326946449933367679878568325807094990380323478521471505968296671556416846237548166391744752379001101466490759938123240148889496845325769585896110554533104544877874973347295034593271647192531429671212495316577323490121684544616341830260053582754771061983434851844039360500120758392875252256884545844933527090522648218609860318272948957525480200707194005538463568880583661886443509889343946382780903240347327431834714902429435813233847109303362197341368601990013668018085304341547351616210871043658030759615998760718309229831181669050686230118462622169369921756417959315697715698656042331665020615669141361551131605057899010012634431533016140526931426170667388477017629117230758039676711684965724590721610648737591687879744285016607473878045095837152082941201024404598999831808778647193854087797479200766067363136262270609820210448527523849614430974301103965128608773423434287548587386805604566274753293124585227152482890558745223877968203137343098020138657321321467870669352536898431224204150735139647301274294758569123570475034528754023587869573393713296330251852507160785623432379210614532112259840693440292703944973039512561783468814276760519068603219655725712541167874080766293312756976911012098469475890315491516311132750136015524165317123307188466380071117957880329683411164771953903380745692852029230949284878410294012121942082938665104180837515329048622299393230878895036574198026329792281297091653036717432675269270680876543834585847758011037513296883706091617453602749806170251717269745341561311869098069750623776868369277157026276819708641137898513588961246375684400062748350152696736716036449429829872946329160954591323035043894167401597402249830867140662926468816800126782140016233355060699286790747479877062790176720727427868254345341922543689230154927416205433589704483056809584090936017814699968914150851752866379397535007663403020010032426388191455658500110420478968660621146388113000206592181715771109552074965238336123332970182599472138599592806893686182132954794985885005211494772167528610548215834512423107684933217647155035117317074591827362126159132373974508719851429735882679042010349739114195917833162375425931012558825466068392344401414095027729211198160360417835092379531526593632016655836018927999244919959076607654589891363378454887790723225495486767565076988959550152888732314910583512671982099979285465536750328852021381560049744668609230188172448601692231614578220396703534926283904086540100880794338741424873595222786347226881648006638679429353262683115841934475398103578803748596930727544410446084461019173520662367288824415859426739884044076715445966382712880029652154026522133131989104210674178531535836815285880642730601396096587985557107536606641474004863369625420954814514561120074292180173956001808593933753753721453055776803307788860407514772395907828066435878413842392353710967408205943693788851848655114153625981734562083949764406314236814144577392154390106333113739758732820375070723888354216748377130802825612177055696837213385448298381056646220320080343759414078961036111410063139794615368910582149747743926759346701890806967871473614004932623951287815076746922134055753334665502702197458146371438800724435656237111788874409301152262352829709357848490798787944669733147999698908235387452078223704648727625758583931142172082494239151443429281228353975090732964716700255365232429397953956782750462682785040797855328847823290840371581447959286008803655411633491827249801534583744264900953558677913846682371172376858580612305676980912889088811734736041403737218605441512257759599898213476686923129071024547274171285491312432426354615874624087701888974615822192499858054026194743802325288933779840561278449576546339041052823564275185814272618352129528872696720955834376798221565285899262920487893707284028428628376051311909053690754036652345252096465503468862346424207222607106686299838716456384072068421198599404201933033160899912767156833693330587864579862855252593832295361845104948421278002080141067341522459501727084804974702285266427243711028130513835388111647209767016589675863412917382704490849542681605016267826649529378021012123601565308917166531738524959954954784084639034689918150165615340245002641577885682018130589278242522320379014594641022008801243642261889026223119561013090147810779944479996103905847282779379450302013277858622730865451858445401979386923646889234664010101594528545424887193078039678465616061536052268240535586625673111803230086673401784524515553962726697427593942458606779999053686612050665251732913450929572407243467709501020253873200544649404219420317039763954576578674552623946311060658524701240781092359410002766924721761470463314026698683631811758926584485228971396835111841854976860008324460125373039925585403731561925799798907655366261258539408558327181847093293231698812402723372286264990984031029123188386037793460502426502528305420418067564525893308348792257789607595663104850765289976574192209426487467330431450616751417734928068173058162662892708960599054165721965515677696613285086061269738853488658742308314507888937077639354083376555294230214206436160450299760462763954727603773212381984502244461793475784333586359529745844041160419438281691557255289836884094156133537236049058844445789487269828690813626544112299706456180441460588997500782637076470823133211408158357541075642994119971172027724850068838235140264905145312762842788716392837941589374036111680842547450121962476567410626889313899897100287773816332029276849860795851428183308235038239455719689830327926303545720044960050078543327043728865637232806100490629322351060297453253567042055189847299714104365329017084954632093716078686228124453489995687463319683736870009693404893673127070500777454248783029755780727411908454009954681649943962519165987871128452938855529610096204352798020915120285229215012719702832424592053263846602321017478542144656194972864297041110370490633506261956396092313204615894897933710637184711993183605703493025138552575476448035680793156768677225468148977569953748342981887687803133037417477318328100179617881939686168539653262285255797852203002066396064234180240522372176719234867840215346395209927612545036097745695892830753965168485181450644805505729503118707877336539606955030698616291912045818357604764987983990923040866515532971899785906988609250844840325000197499352622457835168185824529342178951603663469841005328287116469775874504782423423179458249563940998148640475295123147302215144053766477741862423868052528863089880508514893011906249408675919021113080655772559844257514875862818461671796315204586905154932815647919442217693802155665660526529072690760556288677501127655318623581550618197107718158130838270289046587204274968896679843349408089271169399532962178105005322477238333041228775231909627051894646591402621323746105416001157480772178052349382324351238944776923820959604677145599712717098783656045414774138449447806686868184775313123152602785612019535831657866816865314842255495738633207760602464024207809214135477047258038580960478572024413774214569355669464421752956242855543069278009650422810466025630120662732173850235647127189909558576661568771399963686164391107781553240770148593766164990700740671372856559706883820866945552520331871564234375395783875215238574634335443564568249127448147261088889782497813869348302206382599311853475710195994468432989230994744831441943946810949909452444756580778168408149822634950528190875117564472756410708492568247321977746159257383410723243871664110001927070590337580918270467996694209961786140569838689507660758268337623824040908999064245372177907144390468457144552767860847344244828478744479998853825469182276374660355225230702487615874552364389166231225541146307038813848984452082028811533959774891991361750867085081289416367248830703826634938411822983290464551240202621128341355146033926661936849256978675982642709897728757655787440369936796500780596350362537296030891209762109379945086989512722959541250077260325147590611970415966153230002160535691690109914011259997636025683344635577485383953671768873547318065057275600651556883729164006065637169106712143971919660694122681521216619132889173779909352473958737288936957075682161568327186162064214381147398757664923242114470513764043978334094735696439590981443361416600482927420666082619842464198702231910633211414295915808154205956908064709566139596237638427082217651921791915768524295453254570764305108295774315119870306421177339369052751041514834718961402101322934179646222960185682677616109820292926639992895667933553553704382926247560892402950148216792046923035398627720517909594618922350510803419900392846281276636926651418709934961348575892610810871665806484678723119803719376851444468999187180310038141040589781117078364240398977519354695011832958082473599213289810504641454768043759071849328562241588403801560826330376464795220316280094046041544638839457437284430180612333264267481435503986465427336914459153920292393311315603534744525350412251150564807219691341074953053644333513876007623405022563834516862934022951726220822419937574197761468166538569311642464774258191567743945358214287097460939759629534022833308841651100610620302531523434144063868575057804376276432016287848692168109158259945074442988179097439550570157827830597093939485625800329909957486837892891210133433920916682340567704163244829794110870166211971974302726459788896726755427869538855398354386738078101600279026277603799513885533957357876049294047127832756251474295941899058449392527177494056034557697553347344402275771683668550511861564578108108318584334597563489685586101537970158503238513775240664025979050075307011882257684306110340585483376784663031260333634263113995430145932012180577412254310813154327233157918702698959264308166780427731444818304195078132305282525122313167607239705054132229442393415349096323045722215756988710871259210459834613819734195058833513426784308345158950792677432242056090792150451295389810752220979888232018684839256698847750763818847123096828043710172857739861375122828829063995651301028431710741514521250182877542895201881824140346509279841890505179976600589180762778084990337427677076256502623053017759600427348559829670457721085026257966181968616153106639083854587618941429074702160030850139718610323783874381139432683381117842908141777313288964030480497741838672336544442181461912187778100882722148688060132125155519293339504637151520769458916999959099653574574178243200398843622157080321557205382207947202322648680181354650219462649187173765945364341780410320811037053944283139455447649961941826824093231190845055625950583256830145654735968435855556824232640408008972712181613147036671440052037362411738635037814450280224761997057681851306753495305339402223867664489097341152764540127273606006135942703269188386164573370625183649589632643550181310630941786141537577962119753711609987122039331294219593430375511225789588323400544183378503753016740989152174148851172608171308682408999398684398928635124522950699416253982444161602681687520423716749115849186103541601186561109823727240078891756812685352615002362665227097149348243841197801804105573863060620405578827550843172937033691529223982954421999499896430442099046571766631071426197824127813002418581187233251223900716541292707434645136815551607563421047255369863148604469859910333583929668861387697625064227885003371534692136572653629626215582627866629227024955055200215741693390910840941048818863166538771817506817168566679109679868563169633669816684938716260533772430957594053676139480344879563551145110955269987552594068797143880190018205925614725819861455279546593788044462872348388489852494955349432725394272571474703407414053353844692260344972430721496067150695503027027284950363681049160865583284389101146894727470414126588298625198493241478078710978662589581773682854827536954949295558061739284281819347019856518079009672177059342590994903858334916622597710990310237556380708261662683245322725737831819792888971629972455306026457485733215529160091453830237733636548557846768597690162627440858585059993835970419771567010955855747861797545838527604019028392154710797233628516188021557344785815834497723333575768866736993629135642762172623203706270291959456537634202149881417193724778141744429480869201976775750268317710351365871530042505837889384461445080829132182317446632332645772990745430949937212667505435020226416847630828778236734432745595089370576551032985651912282874710189285551444730030048962568872345125711750419222238602628934542371484614611798877101135411546389231376313986607757677163152584752773869031812411580278065471139814293578701256060752592646357370493820665647323066669637193649699126534354354328904076463119609834148719507825621745715647660259671847875603327222759734017398219669057166922631721124319666646748034778848199732132895668883554857677669880534523033091458315735347596719154543645961324922181760792522829248741260824270912813207912931634470382387140721717441485367540736986871891915910490724837873124155706740942531748397953834045489981215948634908061383439259971887675041596680308927693935893152296556421129573523086782126423089734658487465954755795607352152904365075156220878927922993964271907206318065214213267569782355942465587708439917485597406011887115992571813205165977190475030413325980805555594888177800919447873268933191106515930639982580084205072675526784595370936538116892149206520064158841684660909691569680843019645966114828515665790540453963905056515509879890466408144928283320978265429709414440646333924613317730925414944804288583448521555549739097277250356486972814965028645437427891775977969311085552833123320062402467851841103751837142363577051459888743803682139747310183298244944489309994408038495049522997451734068662030429415573815388502740221617374557267355329662268454281216334355552147733033724173564896476942755310158326567515386980017867335314564400436393950090668416159616563401831894130838243763778294888308802058497106012301587621339791265405737904499189685379288007120262136021459514420487700429854855814892893858910308879234433673450866768770840666089552339747616572499444933293671870551782355263075000556777226623554956111897010188839554452119471756925568259543015696966732174953748900233651605634086999471995516695373227110378477253848295089190257982943580070088031354346728814172591694678279135644793455555945575687653943974587087477299283969072577301427767698824888362794403625391683881196045812256054979301243857951471156078322113292152121647146421555433694168689797453851142528909239548622428896545812496190618665873700064518039938364224184339847291821030363994113682735623395304369963321750803487461342399484449242908353034155250070642461886671444690049929549378666737495218053100033775178496635557012506838979598773205738118167421191524009685586507222003874410479924255961347804985789437864517894513379317526868787149185538470325967779839581176014457912576224040098914449984823815699196758088955102704012523571369463095670190939349506711675801276466479237983316979126878990791038396299074452042284036117294265753220138226661229056218158024939265597597753831895819642641973915771640122606348321322591288562513462621462493806175304539149898550842471761171503196439220045364324035819399279335349713877598043685341608075484203953115969721862337058608655434477144675353508261950430524609820652491643557151036355560345100948007935906919825321436236419044848680552071870768491409377315947096159876476222159034870540862841678148253096430816778763573756487681364924028917640686355299312736294598894638689055015552245292154652226638694139792937998808064290136151389417969425986993236226732952340306084190123247351572466623256793643800740843952262966550656706783884878344975414562163113452077498618275532552386215522757384502661970647079922531293614332947223449239752220976498144567965139957930378343129718256613927700253874783057116996889967027398498728168207266250694940923983646774081223576775691101505086245735433469792894370711884825597973414966204820457651368278293760284006802947391904080764144916287078425565807822457177677531826683596235659320479627927804749082637199729129358871477248112710552440627730269654937376722280541490065988703208841152938318807717187413661963068737967282419260408306685065878759574562220255045911160959037551886774840982616664592898452588896173290313950101116193035357857860758534240218160701046980328059432234694907194820242918969451400189181271570279041459017611684218114702721192320897050314041015432195198765953520605167674523658567878336609924348694873120050724133759753834393369487019348595726491286546889455016201560677458050332454673679485447903357049276101799224605832494761731896426251925387795274556285766116320404124067723140044803768787452021831672246230148011560589595263841154121652879305188808914971573512204935799073295415467549886418930154614947630443368976011282047763136276854093781251921113509956446505881397130939788345211590338603616616323537793971938110092980493462565502347346659795826870990488243024848294841859153637128629781925977352625117277502833079675827977276245891752487241433929906393025611066894810669322207607187335822772052410300700506469381269088394241584406040902876440822846807230207756527663850244156849101782962436374154974412844490178386477764328934442116376869576364646621450920588790429563149413541856205321690212060931178782955119150602142337563265814986332463904521126094959085464168210505108807987134236093301756119290067895788999510146030644872632965490730905158725176543631000289821773288659930404438250597567863626789565646335090961178793273337566326955231994150611028880724505003934656822973647728060103888526388296069068966254768114648926749173508282422980508044886784433836866340805696301926963230781680987882187535702261850593197218512724795198702886427518949597321539649357121724807963566804054297450293574220750019271974944172402004472803499063164319697165370674295229236541159942545130919481860775641319857030179363944298309877347872121176472473371288847163574994273572124386698735765267865106008728787995973098229023480657387620436145300118318437289893202319312283163409095790311057408504794555604519940557401655510101904258529896777843844706956642360391849360824760879352449755869717248329702905415182100727773211586083629092314413588293857715659954231633365132279830151727807700636835896208874220489765333386242191637861774235722860972706371964693862125706759905196933412509363349047514312790673417526767667338289896038170831085803698920849323773376388522949624898806425872846625736171318469807047326188323556277638033451480834665387640855609128222722455591656122241767640053365620030293649182272982726104033888585213155705887508220024020999252668922079043356270478142120122533258592759739257146297733493494725054924333366565223918733241509954139099929161446284949292567798509806062307932400208394637971611390622094216326101179705056360478089754764930040827293164392184451082913896561735344553676655814334220657406559950707085631205292396941429208166892517494738870629648374442377741524425940481306027094553847720935501448318395635025526259214962856886762583595467745028560222289905457688445528910981101688226922928478844706205419011377398228573483409515166392730681562796382337516819100468443520171524905069967506507556276767314648442722791455839643782015074035041293978113734976749612116590130336436760006803048607557793101544152958919286070810098231340988381382256974113969260869525510711977790035903965259371408262760168547532727636104748600870976386644778138019078033117025828035338743151359082177538984043461362345174947533168633086988375374499351983988455796735498144573108117717928129949925013536498268293129715455640709850771211924671198034270674895061285061290496368690599214130110042066871081702312721241789999857865353906261410108350874968877317991595878458343469446635996208906256818511402078617631343636058985526115487795408580090913786992798342445782461080305166924690016438066596569666164967891993479931125429719637667213834260063074870593616358896222181597618105630959503313796153672125397534895175980322840352807405505211964667325554071705527739428483393499461716954383344168803848375031129429121745787746290168814920350402659682330719311116257549251205189396464040433249466905589156789211897476063316483302065197539995900086921073766217479190150994067164396346676868780027932643643257455618460957642632098164409090842710088539789606765944449842367946332211139735416295582714880637970035889064196721714105186591209709586108521762534171526623803137175205639206975908599642169808520753854835061503750608651871942441877321947625777922779717341684262057449902252053966515310918099553706525955558608805742006097940597892683129150004193164553604135525167635782072551656984281986597513051460496754151697205232595629703242959699277984039990270382845771122412092101974841552023146531383778918491851946242148472412165534145023886786870625338766942072955702716396974465551357204927821864822238814050122044907932152712326287451891830503990746331285210967000832093272170057863250051439417354498406599176269238596268155853432396961511605137050294468593644193581324768042894422842652218506400690690414691946390729576618744746848701446886992584881256233902978385777755872781721409376045324799852096057930970450814921502148403427982297382385337342685672549702110953537781015853818009346025274128647568132506820446434041200395523644785427888268675660308551747142018219542308332712613306346532337929110782068349395647357061738687082209611114881731188569412774096374839301242381624545167020480185188901490811514805927805095102118101841444687038542079606631093490382094519019119578471598713155792522931670430324125757931560425872443988958366405835331330581968970424962707179664046892647509494964185192254214552825938343008426003596988586085304701817501711788846027757010252408973246365849775793124748837500526940782747286910258182183328416125547252762710127975747325088479626141320366065467560485631458609360665402070886894986266892701953056149047062729438019514174866875654663212629247119618700171706175458835434833375231073990142940863554875477195917598794305032625450054484826925458284759288277904116615209150743428345823742431639757669891388349803559658323341843642924555638373037382142662374864823938463115240490975487575065177014831684902046958562079091496829779755478888870937738524237880608095817536192865175766255113914236123859667660307049617512748809203738430081195046584324946100956307477686936853554121606904246009710286576327847912955496384423323087237257404326316596954577033162523247459369944484227467468243510748913531672230199969781494821730541538523383417847531400549399541640726491095897347582414029999099143693266568290157943454164884813337433720837461058899221005257301417837927280347981444148863394157159051851612824240559510592573915228815388300999968809308025574599284054916387406495592563186651405056556835687003588540333376032483062242013958584498308900399050651900290572144118328675263266165765946846801290791118699602233310921031401118250679842353537435310853688652738499572936290928378753090980310826572591501815201376195953543229403093314310146029175864478727923160298188145012732386048356903124649072697699451661342454993045199332977820652153011813740994838043600436242064045231677760155887415165291833189087249262595947714209953421095446013338192740609209065148444862709436435452481713946932080654895016968630573365772785307912063392975551329730519397081422515345583111134956556396572718160714664695597465888085067047381480323575289376378734150590534694379371750929653483314249154815395779739829804502744694521881123017913188673845963157911440484968705484770056130525241028595512030132710858528069492367984850032120059391968893286567031532464768003506937274093507444716371798033272316919907294131410308509063779767042753906091513920270623376980323424315563071168685287475720191140856574868287617237299096149977075373738118081176645020204202624475489109624834616242195324493649665757131857056950519341858277749635256337224488619426180665908200044451947565654907505188756843555446528449567036851850488732417070707943053131999914798418844686161168946829682462428188892665743390235757019414645262079843424745122087249996614279451645160700676726794147941298009645462470696894840989768913704898937749492529053744646428514577948974575747347360780686260047748854411749146468582041184024258131195423622785595661775997249535040840040560056607637711191374169421719300279375514584245467766969811810427053781920437780736764465439791735507707968265041949845436949021098277437633909074462308861509484977407946527596225116340152741817598931415433037099790430869827854922473865117176249240637528873789405191648371895486072744213291145256944516802174251076877382647232866029602561572350934040117866015215325862690234325505796426402840651648079426270561711146720077973022567550232033693933969372693588814431873664693026059453486650345358909172809419810004070693637558478911081658388560460157363958445499148074489885791079354132261045489740565991174178395754044253995832624153250330520715638825018260472753234522182358981015094174895677892513709778107378677781128649775886117785932269563901683776114314707989232083865606931279149768896328564417986563286111652282560923741671696998094184892421542308461960579494502703504321565414251904588705844930839429978937698418025428530316487730896453362029275873998741464894964817783916785207390542917426122035518440015856374417030262896696793306012772184021059814625402316792462216769685383703270768618581836661042445595739906137947501799749727502991359297823798491933187153757274980385291148489317407456859785723266956466414754372910261610362672987559083743189004651541889104409078184366916405160380562726040797887465831644526765718601064284779679708102068732940123182869906112556959697767278585314881957310282241330880794222534323619143200223321685613724753980369143540205739747171854210491833875432867534838372666868789453526898911261936693884952833242269797096661956925101449842150247370481690701219752767819701417249345428828521475823120229494760065060504665835810406933299243895196419236453268379063853163360617645739016714638240149877271578803036397373704999427124275080023594297597854485373866555311426112258698042929260938379452018564814138921894735491683920139429465786676741447704758482557503110921842417201603408591955468585742934182006055127444045543786310352475824269431238981940465042340629714328369019086559052241146581538207985338597590202257544408325926476655070879266745764349021579295670251120577710190717581586283895020348276385677164556489208607305973649059073897899854801283898737270515887800561730022307013363968818498687316637760685411338575069140831833337062400122956697566082610078174436242803507852729556725381231268810251838119466678252388486924545767689295013037033241225326231943142453754212994435419658184030914382076785225676637771499189529166651111242142350546114585848407763760618640607636262917181351280068656895883003095238038779960524987537089988308734827291407911232440081211177767063098100833747667568123475394560563092942699154082943156436555820407515100701192248958027538006808805725132496140218380266037501329707918525903964209348217024336488155450807199587425888230309696527717508684494425978355960347405577748393312718760871548808223584069501257286826391872669547391078972925663487221696609796352568412723368846413600910492322935108979624187172041783395197589067566865023181571873874672051690366158010162405115986726188750352205474744478973163133517620783090007619998867250651267027848371890145766793203458191710421366217610019031630330035843246669016191161899347708341104915257280272669643767754014243206017925275832947283677703689444202319779285658714430466883912955442585657357810270105805700163608042469451891982483599295274063810928964062918761976710171221071288674326143696997750765561623949373572522861026423076458920329972282112673844721251000333711758120898444784294672180032033992974436383702376282786334081611112843261626324052336798651483749034448157429329759245942592495752555951173720329301577370432269673356520003511852646330944812766417480296714040645671245376355233762431244554503729407269231447146069190511598455828164330760432253398540117430690004672604718594686872570252658653443032187594549228595670739223146820497045975124328434331058886558575110091082817731572358680830358862225450814100731993397304727271410205926194852259753298112211968974295572021850271004655629936568159685987805919668213050011943292199790167366334538029964196859727046276283665555085593909283720406804451102718648819312073991117507340515079279792805772231502167846069830868787076958564039285621455003533808715758175138197871985644712114837245236672761998500233778578561461796166186831299590609117244767848881398150112445930275479232416466016551413999142609318367687386043560280919085062877957456438867530540362251933558775409423554459518182426475131753432835786660235360674483129550492800056293300384530812989444396780733232134625254763344637035011531736975577433080534689286054359386779275385878673230624356079432217919224437574517157616380788709761520176133372536069544855257299317439156106110956091049354949659243207378554685637942333551036519062428529575575121811081015825725791118699892574134704248810044328750395209010879113988598132531987207955883546396584208067515266814807331538316445917795697933565769182277195851926476064272834209392708914215685545613066754112123378876415033324010354104481277166650807694403979603280239653126517825810890779452687940486835678514452695704913172275324557133915614276789914913464297295171242036227573852207107129163350298836899498750254434247545887543284871463524917818495754608346197698864530356109751713543708549392449755328136060358136873480773657684801215798626761090884081039281584806774429321365366121658074619718822441414380282945473011977731466244346999466132405390027941567943275670179679460770643242380274069403011009571086126972200127259980263677367464816111589281063732504654413442051171326234600852934255908046309126515165863721486204026137686333950678923831746178540383539311250057395488492262319926720323066646836011340442360938327069056867922165347570305678990651139675012186618488685004797129909644098690718710982759350154164432475175194832498928571688712114993491036375290148999767472851262706229353923218254647679705701052269535690365749179381902663235356611681178132489432732307296899715815002448979853092578689252384483471143710611892393094775082209770084145600474588833939612624648959309422056004181515361315307590012690454891456178321151289024444596980539926019996325122778147670406007767337761995509561356620243563564597505596492982910305063464208380987566246981502190963780899593447168398311102070326981362373259622000694835045971920927077292058657124826128304688802750567759879022702436458948280956259796198013079209200683688525836537228560510686616375092852758965304505141898883220772879992762436587396100930015334970172530732380836763147790529116156950341053372550312428341684692745218107850035311428483076603345185847747857474153152396511703503027952267398869499252782082535677307309056305599380073499850047440185368143260033338552747384902726221818810399990199502839679657661963263431300999857708272098457449043464842510895348824963174879002912114458275082957867252745782251904557913580024169024692261734691739666717473308003068606172716980266419974663187187660199364079465309501819924273250405624088868189485080513207665814594443391874446364099054978553627824858774555985886178410487430725670996850968546899169391046440445085762107256022691201210795457388961146560354578180894213144240633149446670375454683376475596529514281241872662370043487498070176887167899108495422876574850572318878995309955415100040878295778843930563951414624332192545366203525724617928591920761893603023130822874387571898778131581991529536761401418719501499744947220731562299764908328901775985625014549984717562642270100980433633786736841714763884943970922305400496601048871980538710776530238097057832228428767038947283191833461723561956414606712112394301294864784373145462984189431605201382291684957566591013326640729784735464396982887894812324944078948891100887901084974792191915189334364315686248362498074953204750711414049124063085452550335695907974796407732258393631479954371678465573822724670047867658174188622228514470805224542875841628586446726056823785345413520343776633442681658611586771882432702581760325491748589490569552900463986029956320495594456806528021038667319377055867606502390063851198202077482729284731804088150151495876666462830566940844223855202376954916792753001814695521294577215314743930114530167063924611519217840621325781620475038743389504746869946564031921297203019608145188611338198997379935909348957130849189245610646245379842896002946732590680561542372048996339859057867483250733722221968681595198473868209573135955374469527109322172163160418308691044918240566879570489850042920367984568301794696942487283008916228054792341160200321314056475295249086836695985984836476549265824379823456242262362174681571657737635440262316920111012325368706385646867156873795746497230146585520222305001097728259818310544513540249020206675886540867624850231257526755399855969479066777036837705204590775309409676765762141890041461589139257702474311462462602595409664179737148748831850545786408659650158094078050357460175677964163393133433913907890840082612778453737958119209189383493245676017636499966764450083433222426498827162836951398027555272212568648931897860883279727757079606885380222254476798108175472974666301311866814231871156607153986274768345254206077459535877464621886234362909155728769222807846046566338446661843002472679726939608862578629016536949694062363594789833575914507525367142832591735905240114219799576785605333045098898821914391366711884021042664527759045217397580125585721521211470529087710358824512833045747805365091302107720105864230379573099831672665504813533404621542010977702741121162941009182116693150031479552264386954994154700885553696020403408651447213645457037353309732664874833282027770801346865605208054642413082428098760541546445096211173085836204050144424489667877994102667968646030477763165574735689359004651204122257717765136556941813581435918555821080668809601151615829932409463703438620678250610581742342085866260034897609587431268185209099432754557745916096047593673856848944821735167523964601194192298660076557377661771513339091809632111852420926463920404290659453607115452208434856066967078640582945715499351995337958218722510345015575927077111132408688948411005063801234449360194805323134585226296164523134093061858943234440177842032155353841096324931336400556538673625098331696362890405829484599016216492710084689814351906149262457820955715305386729085732830129187865543962980521064720731765987786005066012305289017124302793312049565993816376272826773845323117005493539800943569277943928885358241554043947307622841812798106354475889784965612638288780432854734997473121354165345464667090918956000597083837746290232017875883867295815082792308674571058642017886352530704200178742327175504591050547724602104151944639360732658082494433677295873548993809444093870966588535536625332245471971213953145673515809848139260966023951252242820597814748914625884488647482904974852943385528610711752552456414878880928235692206481307855260082956626561999333658021262354919132106748772204252052260191347278263267710497136891647971804679777569626152567691768445568719395974194511913745310765977019160664159470452804671445001133832818199633775871968165485208305772910111151850728980171937737594550217466131835497963065450353699403394954577986931455197881493349708568032864047955581524999847263258388097537981287602162700400264466258769324768228022321001425668027914151041012896311091895008231826493666640648051464609490400359845117348528899974192843848626249741292016557877691235306083664830325709206431652408876964044418008169872708442634178781249853556433435653464755597041559549129290375476452086882195035387962718023042352652548275111810914986962219589916857745459724798142483704553103985721302892887549070884470045966205513720546254018338926355036545776755791833424846640975635750431472621060363999201173605206708328276755703041327107419077405258101508616467000295503647269202270941275374496937608153759832772807665510206550648265272679721116079887670474120055492974869535991393583828982264897226481695617786265292335882146246889153781825860755277484668893056635980394429936749106225436734007831395024898758106423035770854901668428027096099195226794775931858957623746796278047977805447415082769197388554255199246082194793892204651006813669424739281164812790089204477677300413776988877712013600794269042537055545318162328155359852260258834700477233463173983345348932097308778532270868122265794668916841133004858449394414127616442546018921646921501193577016430373383495392969125744983236786020571053350996249517026511636190074884307221056767526791400063418893434357954475983232216648533210282853088109766918943464559060390301609073289098262402469351347656429088787261739246503527892496577508586856894130934294713300172819109739654393192824566706604918416357779776965952041011025345822357035681652779187087304082686287971201140086580073585032569149533605950525512280550037984956066604236371842077498230890013205877749214691676798115559628439971747992434682001571633204831154346878475687754804119229713440074032992899079974661853424675837996347768892906578904524263652166148519818233115741670977433061396975408927061628955266822526275810477682791015985245376524889346576085023750072079511966930602428005476501094903390409387199333259813114153501448846970061767280129173054284165535814619234691164070608422060407320845475364903579805912483430817259412906250206651536536400822123541495962751398745904435185744191236144709314326547821192374536479539586946570324088400214762397564505387361254524153922380075738593416670166851036771260609593405062353848080184456388686263081882450514112732318679699223990726207406931975131321189647626562012766815236802937474954705619433598503438155686380962163665319629805699614685687562112784432415185562340427216662045589118014592116338070342956352585803073914136089317843107042324132902609489050301003446047516482720056884991928266213890384003443125425011575310833157359300821646688477661609790530581609471369842947977633574613231276832347606537797918580227628749399310797072305191637811848687246530442145207669257421386690382515887828493575823051349297910199500284956367978616916101866100764863727655877565915100219728093162224162531773899333967152693356425911679348352733732813880344018821994753165360591352903310843730180417381405684794907993687736731274967292557182716400111790428959286260992733312370319140324918178745947734274076635947393566173470020326824297059306468922953504097269142391894630468121296357167799741580481753432916060011040524594156178016405054850466836888635964455090438030356598413243775005276456933211301524506898748836859337962882624727487476058764085000542730958877565914401775222221835518395423768711292027815323942829102766272227786090213293362967597159979307658115931047411964319610562702608274131963527122834331413142094287467355439443676555004754695929147300191460403525736924509399634579321765958850642506729569350422613537615951432246150680320405802901590446447109426082516578266693230777565984845790660441819816386489524074904938611787627241242350011788687215140257170024835730292764215276787739157158129854484045619009085522483294781233507842512335154926250966406031991852926915323272204999106646038811936847664811828930342894276180048595948531482262180253737824920328426185667799190825812274031940292139765221129034047625217822094542316268466002313498179166375253235628893240792595125133179813560615214506817633901385944665341888279558169196574943077630150416366604145195707530548288375035843801130121308181139765088174626968425701982621677679105801109911117302110361100929774515462356733789895738195516923931907231330321068058247621695416590569034015528685073664488479231097829742274512830303483068590847846264257440769254443911813671916898463422346847923536349297215343353185313451258239754627770474146724814289663545529248012767475527724987226586373927555192256756783942471315599977577784465807398687166603316828101119836939568564089982161663268981948530497187148356240742458305573971884085457848715297850660586318842926993418597937568921822470287668657854690926064323267078235648584458577635227157366624275403098194834898614768660201803984031004368431224523208615395217591435996375475785339526462584612716778528029832311477272835208110745730242084363374366703668791629400072399181334996400025264954500163251951959645833651687947888227460392255835185223356640869536538581357284367493029346540810130650713586648493510204321906628204417758657689536464794236302195880415541183671713547858321849617035116881844420315939636286945641375158689682049939450051413306929685810504301110916366098693294545915780584732654972168633259809796968854830980143996741712699309610817925813543642205328238532321567630727639327669153217144408102427625784797733064908495350171815099163346946517898267688035631933120701384229166914717148299147627917870125710104188793082788882975185145034078600021792151311784567484186499395206064683493875204228444599620110267496768099687638793975027976944592855116483220726228626770407886863802089222071979219688695834944885419365433115046617185081448323561596874582902802091800951159737741521808651247170646043263178384738100937316944434202445162077966870718448967154760729612106761175261540542692331668350462072298188983446737828051799136162592448338910597494051126878319406621968563025247058656806038526056942650959030315895092025421998321896377435046343442214968168190575409232613186566901936728105228111201964046702346487487292425804068735902197771181005538168720397793446383807211213889585061639054935335380930238380878540563453544737494994581039852773120256236121876601092355110708390941415129611703830219587063668371134119698474740410431479167255258065752775139268829396803912859940047107143393462382125288366360647732049156439851178974189091671947651138239988419178222491305696596460873645141655896412371234487012202653863236398314851535059193036724859044055243118119720598259125772795090318722804015330176845086652624418629344237572383347626398815915055360576459631857198261544552862684237814270193957898250334679860727527090490644831147903609313145226472233729444148117712056641315729715580280495350280405169498901533058223840869659805130787353960352732809161366177978035532106923709098262912124740941891400188078445945806378237951445636403027785735881845990828647693612750070489358246119751385078840202226787158879528966669407617810272105154877844418323876417007466825682481559137253236937042230117777827358791392185787285564941378972365952821996615324646735404470671083749400054851320293296410460456322902844548897455405274481292452790014615743130766429125828818825097967764997409406051057125619193546023766529594592263418103315060761515459288917294084855005895537793908081096014942652747216013916559003226201191999311417687873397425516749385563563303316420686762950543113639687786979729184704154296076411485768523975700787968039721201762633997004536123628150330799770655583004444114763519196626186917596217999196252006234818650687669917985028037801640510877792533021842861103083429492656674348946731049640640401367520512257782123302759146536459566279619610924926624109104996906190947245462907616517007260646271803091372094975130262050978157113911654196912227589936976365456381082180247020238558817678499053559407462694981652584211530168187367126256248245822227226283133004429298858818234382865078019119678089665992650878861502510006783878846701541546513980779926406916623734519942847827365551705017953468111545635307117932866549933459576145169249076428068979462549963395947588455396614363423099983227550601256458583664774201610754689698893045714668365507471154768890810589258997323743310186915674837647558410795164626502431940487924358131152470261104893166794317766196897201519271990175051690821054735869607968858475874461777168537314787914129667094446150152987867927426660813440035164255370397227154701784787763169719299350720585827037357351383426906882348499582385811716060571779815336539844244290252901885869080668173367830343574550856392286619003024171590765440501898232612703576200273287739467648270596472369815407858921461493597211708514802832343033355813715312300021006787198202122363774311651761907857246190199750387023550697519024115205212547812541487768682413172432083128928634341750986218871817687834380300542261913797762692077663415443945496738564742008588550512717369174788719184869810679723564826649829222943684276497037097195119697334204388471713185972059091532767677271580285394276141089006377727591889891862686102296854027549643229689606496966770409621210183607237523502315530826935556978444310196705744298379297221282715899240569560261576717441959999988916925101621608779684249675752604208482534929234348371052332237769876788284779689497701297399629179666514477304163438918283820186743282061206315119137149784671418789437141373892106253610441224917714532644358643177869442152206295598343487569998978146902856172304174099624497529703279374199134105836143425884708126744863487153712859377745939760854310583969695215054617586386780691120178134247718578598350739103552654545211731934414030503150678547691527661903489565654687987356374354457383962914556469923551235149233135276174876650030899541227961059064898316919567973915364945525028735287610216496591809485236007305333959613409209697257847496243588722084995799087276066940385070408167487604153385764510997275187336978037893363472795617624503439765428339939001103152204590297972374663319561724576041149524946864138061354801386931330762810449638442366711429481967809935153890210380941837205851559867265057886787883774307922925267600188394692941228564093016914546431565335667965160989150577165923387272910271876625006951945557038938975319714213067177014458793169450647867328401586963468649594479800239518823208478417476492432618035726033565013718801895953355996049044272272758271668074555950356153456344553710005143100990235384956001434984864796426347006225903650788468848961687357898064810150939447598337839465121706304732652466858814119281274077668088540733171948024365367559295924832786409451062399353276723188368733321101593900623196351977359506445423167590817813867821600498625295123602386257575852857211886946197961692045893628490563324843531620558730367854005143573464230168005972144510904302826080577228345464231451284464033255460769389266052743812485053883742657863348454180837005860985615067978377631539846420233263575453762897060285839101694911062339604085202244124256702430885480066342774426336203554757583728573781342046549561187822586573480485332838594514508896375322114830719580125276583433998331395364000605901378564300252677396433344103381230748846757600792991722594861130276108146649195918814028170342773421124753967198437784895144893750699078212361853296163510659544373374688391343889045763480603632476421736134523822483339965333353328677812809051510807699290038790564231490920099451451059720047860944257880539842163814750527233983313456394109477009923940533715382185034278766318800310099545614545317686594548473710555117891283229450597869546709256497861011204963536578753103390602475249168714820553485982411926543166680369870812029080930191573070207326847824364865124267105676114007697066601797643056157864074704580280838944714765187191072079697743590232499545710041449678020399609813168667627777855510422885112538110853412740745946727981310671290571098118368729804689792214786470085354337324929973472829524576104527703433930124658744661870586091425871955853325883219673057818176686218295745961434794967823518128308889225544352613821735797818246169204335206260084566916576565133740204242858175456664171855583520374127335118924042745190155071476725601483331863766192127885465678231823330891115599603854708299654356332776479869581361641573677097572589124756166620430295840667803837734077211359209027898588683431465040287567140604292723032632731893422495204472705674436626171690419083881185352154790616762752102812861270878777959601080084790908696706952683114974431293929592550304731061632434111697165439135255303609314439334782265602444870579103149732258936975009196639176977193696315771312555222397606103483848137107924138791846890419631135645519306016314040195054409077054308934257319908963228015687378542346593291617229444170230204608502246048507364275722481176757680541982703203150875721058421453934370237424384649901150014463644876365336731636903168576470002523004782933626697604896285337208722168580698804615550347318206056553473968990193405635492721461653911069716835955198446652921244612456625444063284658660531320357207872387200094899860307691456989045292156735375277171197907194852430681972968305974097586158270443689750153681892436664453737445872946963850357811380193329104762030077337974183182660734244575278384099429124540023264533031809137185760544572458116811640407744481481140421656470370704478638082424272604699929417612738389722631188365194305887863069143436932355252461905751941040243535651910680451875239830990854898072082512672123454921913470524561687904676791991531509930327955358146451895842043391342721458883138545797760230216346350612662734918100680948914662363999879926166114004419684831710121219873533713797720038674464106946164171066897708571490978196566762727205800947501014087506257102188082826371434673593855736385132363350505867207286674865880311116480285671565887597062522103450421740886749656863406062585348923403101874962280434869760027774714521761393595745786419096734297656728213607692426781940675808299025758329035366644978339114837360973467400446798409011944287101364885084487537730480200497061341007357823618982193231191028024294754246438267461545583877169387856384783837469962395977565821571133859506002485188454981899534303150567364272839682683390790024824586684786168047799437196801181513291965095723670730022917838444717139778357030365970306022326180780257042379122878685672825108502842254633619350160696173966065751894967181670800455279414219647721848776513788064483298695643649651249475077212909117138266268641461943390664559911260743459416499039320378951225492866740358596894613205513765196591362975708667630553740739326853746508083102858579356366109607881908401167459219770276551704533573430194180555713272146571798303753082494506504746236639694586508075128777763909319085526642343734750132007637950081186013267944280399374867151639897306697221154081829043022386648006650618391671825242025358637671800193860324470245662496349419298105176251980902854975484179376665945010854935432870133252869028215914871932163239093922113479277320009528943374765240081705705959877278955281496506148980955467472946353037821109037250234715962120065601935700417145905202306856037352126529855571305640670343413899772165978246884304841921128315560387758322221913905643651737673366651907109236496961965053308973785447043969008449653256696267256730079951503628099974114514614133471813131278913364242515840699978209657904491689249257771789861941631736566904336985452882099212630068301670665943009200093726254099933454342284240311867634778979065552449781532660240662911224648474701630196869709209646228664843455684973156483220826269540020420984140136922836217486006350900915851797774733793570467852280409349450144616114572765444474152052707358061076671816673971974325102463046783640343055648907363108868544635920343899548730016147432051952339089587643013948819763594886833153341645465876771946913897988251367311158264196681010208865141932530182288500302856400378174794609639619106209208453114191829398358984596324772166591112897453074268920399121876759859940671137700485265912699911162428213234905073444109903096270785437719756697781951381606957567077836767057163852060732259820816694480016819705662946702488545498034223265642618615640991952656225762388325514818006890561881930629128276151026882756156737948871214455292217113183781740874658326693692897685520878837728121685871915924226023415781168921852927639184348350500441500814351620175275069476139401666217158685261949100865742596964510904431198801013820073175702178004731286154318466784760426019402375554851396762290656537941332383093728226520036793146570419538650232958658026970305804745248444115950969414525385474532622702032794924135033520273993275858002291479028641337473083287352437458323939077551127919726355745430699323272303662524377462499938019093324684783868688877021918862664219844910892710682647755762626355219061207796346746847023204187388948143650113287927972765905806997219226195395900625847047076786848586133151714645117150136152782557587119001009116256362941514602848059091965464208687413316766291216591694203659090119099116145824790809517104226780500245890147593871737150034417975911144255511790773411405826972595275962001766827702582333200773793498256955626204375284304507921911434898644999138597658034687427383232771530995697163325970019127678577949877006108446226686270819292916602395666567638282315531737900299001214872294274308118207573736939261997615407777332289341508615229680108864175045058943234396147895325589463293855927579692033579199746677392383629855909944367431639978687812897612487929336938956521809232486513478290522055317479655702309863601875055998163182860460727123094114400255224180245238641336140238287570626203505765663425885298119492350181782499216542990573700864154364592648341131668393188754537288685940366569115533533552248315995443433198925434728287382436881998876143127759746638312150864867508279655279108363764906550509820684516733618453034731069107954182255845394192629750926871349169384364292065287979282200042446006448453719867689546248874798357979166386738685164411080426186460423673031471934069121160036467151089443798140699981035830008767636485043189606225733370981556470393971711548243435395204031577732167908626137860522269000175287132160978144872290874017928750338699937497089561099345535621754221387609268325805332296409194475232191385078860458205241071100499515398665324047138931871116754402239593349988139902847044871297799514330269301760471534888915338388731190950437314320102029196783807897431116994371646698375640340986648566504278233389602205371413340114402903168278377824723268007626386059117567375389453243616481450707014883733089818603511781047991090710779995855691789361419436074437765572015520062008783275579547909934751185665189246875186256051821445815998874403444448260072120598089666499130231282207110466554805153963559541850946256913455031076394432036144608049798025950379782507258184026907462600779649776090649067949200007292984866639006480283871586646877809305528817697291280122573164531617677530937949909275732162540196418499039792724603909478712764323694599286513598498415432810431044115884697980537922975193134842417246147213185491529740631321712887086585910330874066547490860100016834277475075182356144467228861916154406182899529812519932678122023892245420873323844874029374588661116683722515633294130095641881207481907775140532051092363279237025354632990141888491872173071651320128944186315282122826413593734899382695119528804805440731719449832880392161529393950510728576424418357859012852319967943380176194633290994786369681967097206365710400062337539334088813231998522748199989126141970155324931319663457163282840605777017792423788806544063133100453820184317266685195296082978402186080747675876467699402067036600975102101321167197118896656656904905361630101603617019561775876184297386703169470409994049120920207689046497964580125667692995739269565247709383242550937511400192669807682052462691589022945677644203453957526358628509556169131273835522294788594184605212883840636649553744191721009746922423713044777855155854342957090441505410268798665627733225277611985350410678105275365931622354702631819985753131890482649600806122602996303455171980801388300948596232152511707891894456736924033470021208670321607557071409460308242601792124395960842853265838663924772084863383165582069370907643818401116661695686505173086978089246172910183371632303627517925539396234146885373387015631958901353810005050935336586792652293680380133421205319009361631115737547359993186417465051982236374351217422650303438559244253766661712544016216814875904708673153720782302861764002004404932936436639034311923433974109779193153364151149393074964862333825302054967281527722341124865280592949627530862105005652544586404048835583697901225771300588337949968134868289239121637515824936635887072841889323531021070282168855316321984073523649604795583749495004521026374211184358899865714622114700171122632284378158341492867250899997748360610300985109963975818581152338709351848623614469104641087472195102417041001642308862344466232070036671878414752800383465088313481753566624423550119994905215663162316868784791846696546291127222379287596088433916920260694965415095229139947470772321293326983245304982390077955291855103687680481611300437493479803352391944322219949492962200770587563973934235218093404528159450429506110028303718836715765177598246841555334375115126853529017798880030745803756906729931664487672344412776500904678742536129103193991574187414098940617706817294308773670129474964726907479930757486318349184420072642829062760009449277029606898361349168989385119033749876770246005764933294822172143225021692637367727562820112899977724977520957095274499681773930802578245713617819251651060381893404550266454801950414831538967658895048479882133799767876718511912909378356174365736299686285170472860636101934866244712358043216282772008652629136820978568541541049717834641626844174398009824994899320316129437905193269505521133781476156001333204627131880133566291600522490018284156412421648453809970612382934706258994607658461563231997920388335802318454276071049491245804154632087103686705924731162391774206498218208117402212225179893027269742083268641246680282389495254731966842208157993869669427776780029615411484724593773092769948420061949649826810663085505453622679399429047439307991637809392059154780800352165322211705093263311657478252251893961327212776840375484698056809887100708628772815153416481288534357696615972337668494298940213834450900820876838347565538412173554198304715877373114807618046172119468740356499181055925755023676567153335073874955296855822725479440424587597168813577893103653989400691450781830374318408813685570006753848221313759998706020718991282841491474171783289212137706692112037386531268383749481469168061419305588803700008452186620233680998676084680550486026796418283089125498014746382159473409166005602956806176460085648957532705923196718929628979477988657275758098931624210695379000192633212125901058352393884831776956869812422665824663186023674473656799125534411171266122379361473273393850246245790474473158293152116220320669723546740896305070613074511897413337691752127631396541564707495758837304132457486757181230244568747109521179892309145331552203489713714861592036949667850234165495522086803506286118999406332011307561233974482575430380454027854225842706196773337044988749470801791955063774895325392832347914318875444260762414082228375639410820790270458253479905736882655417955074128033648797690121448993234263357850504277980648204778155797859426772851072441347010716322739020816834174014231684621012800823712207118366866948751220734979368073284633933684542986306430129233253114566975617783305826011039648157971958893510607782279049092585698422576947501439496189010300980846199248559526778721681241792841478086559337754178472378811735969293899019247798463858931879483935131234244598983349416564251642112739957430340552306182216937154924780563501522165211243042819568513862618647846332533139851008159481857143165714909710215027290951726510242613851583377705992183507762810727637898883198015436521462512990105233497909334327992522245665029943408138876174127120254042121725683072803860350602693436403736690427454556359399172321792684047970200044797276100435479158361270855230632659717282715762282316072956683399066755479485002509994129594815126352376964977345380211168722801012389217702881556930634324176550625982457738335255452820941182796181506386937151917703027265760259118157549216620707214418802640216557533364820964540119321323190442379400639811193104953980672192788678635305893646822330159005885063698032249083500182656493596045393184136843905895591072069098125084470386045742890081528410410100539792167530476523365222311411798557256925807917883119249698466442258038425222454559870306219179165846431809212468742241231171081650228872277365815567426618128567255897007568004061853247826242727966527191012336230596041484798145728633722165235147042031299662562457314142313220482722033906634961019438870399738104076647359024489548193053195995457678681042456379977877744471376825115092995831341597430552076059491267831579284212579024013550493740565639173721191416236062691814213228597808074505019633160801581622793767005891617081443604869446935653421942970552547126096117548545295557427371501899625953652725993671388169399033801253720475540688812454038389153054327353888132806840580520968057794626479869815383841722290414648796371406205115813912457057457713990300587538055986240950256966541699517771490472729641478402172775670696260005725434924100419377325327342812259115395788170643917736970025072883245321371390062937299040428906131048211098550898612769058042265823784917471899760813328991125748570053980473758084788475039886356787008176128593058751594256874106598807462920104845915518851783781604300702796366564136847403271771833648027547462047071844408813932608693041599943128631488200899937305346340896381650955637640316660202623749646741266958548735134700074391789619139960782424460785574203965492139568350439882550805043754796621109913286245915916766011606511639564301447178732395839656996221767839085835423175290482060751023906289859072327558439742265041656765402848000379297947151636719868023885823150994125311950613118267048409408028440239589556032571716734470499987418079698709372434307398296637957829564555195008959048581049525426850584162187801618877745992444618126618868588300806143240468330068672852112831337897482159795892138346734731399937610066158623696864555095273207995369391985428503619315166724593857308764829170476864499688807204514127687435917632438180951857070039255342450692497554141534299421149164613803274098336166301641090228978789814963354256596624790421546566347373718718667362565114320631628369622851641875530483725674452754459468956298634765869867450760521312592383055692949394037521817815527436176913978093358627258827439185622381120371368982207140620166305956535673615937016313072142808544940508755917831026320866025531389734094433563292733541203603033457885318963293588994117768781975355772790824858616685399768481562751601605125500257492353717169221543155557699757121871823424010635585117777161077212726375465985339972217775193267754693308579517179813021398000160458192255169548575711185007802122790368286541193475958912610078673774299931260562835251933904557503198782182860014241137203765514719900979341474902347208518677611941274497349151690500419258906099385325959196090867911252798078548922928942885145545310721289684796261863755485650442120712274291246029397359212219411552874121792100272489060963213017102792429012933202437900938303479797413599937885599144835172862117615332765644190138220463682525830437353225608052987869681652981359946199015617292355664257213809211033911946180034007046939940861701530212432944872098162817141020419431947243570945784591646807567273268457185399954141285061776887659109732319431151395529082510366708916199964584985228491938193797885957824050378454970994978805241033932227686995059997068954656698070493627213250674224725837147958541723522947846148616098857348784553615564757891690337291450969173135382652406142866322710442167910655153245959998776432427432596934305923830287771567032136153717897695585596253414977108548635445998323816402467086515779234321800964161211586409110687595773781200753781731491954845128781640797169252236737743657586469060884182621603325492801306624119501609127230010181973963904831563060287942711738277531214390129918704913208686624711924848757272888205794133332212571924657838669210873546268620849518355077950072181755004306192451591678881912723957661843714000497851338004366129240074381244698327323629952990875287273811896697545522112957180859748985061465454717104052639040629150982040524016253637562354146920898933728639036604532558722440159543681118986337172991861293674279839692140448962208700141606911296140652902530409645614028811220907071218544968369964962221183983462896805914936605852672110214387001712571572093335146279595430419579653732077598274019287042336166246920502630243235588547430304185335002262594291830885756458575976557072964196120624397662240478219374691534274604059842201766230362339388575892823332539526644403553783554779342915056951027922190123301660681561455509929656487780887122556989217885116423797510643749105166697946505332938416521718670673522163055394471586765867952701662789261777951045611892063790743049513356883174659088101903709151920425468252370465352183303952146242652041593153225211197297594961975446348911481307864727014690757947011709289347492727183392969056713652004129209911427081472951786738208768104165483093674760751058797095120784069248947707181470317378477699007040021625374355011032176498009853217806571159325042737022810079753241352986339045770691993188661928659548396783454971304050073253372241972997916457317140732784647865006402734840949634815497749556261796801544161720629055523038653685435219866046863332087113422303987360761913769891598886132110130790085708192033475296805202522010278892554049315736103745768030620731158169158487587630490588524665695309491395391802773178926270413755129471573163038193304519824131693402931285699842414127284246612603311518222025882818558961166702451244825077801826521790696800834205028114636482386265090017605924709735741471855295978773790850993548895661002319656770689553148095538622278861192184840372804453162831683902201159389395788209343009127112428670998122149947443683946711038797272516976041577277164143336674190490563605925004949638579749424166990650253228558802574717283373346525546652813958775447329103820865269081158605428781572395363498622344254261802802340188630158311897336601808836891481889605211151695388137710161174686007304727900301073038377641767811159132308051980641326048882377480965473926622653552201409355278747385698806784644377806515735509305222776478869006299146910070753329809537498887240314799966128694821403780546023012586166933624720058450114305497871886942846094869350061420278290074124197365516878420761599588110191501557323544372866306701129027140327241523287837200417441956752992388479721926450546480107365746765296744743525740379836660150737027890773431788956046973337358615938065024629916703113533103231995399926463221025764231607602939575637465054522920878699623412722389798213766792081467035052253874513705466427014462495866119649490436009896502662368269971988980954824930005991335631219633583067379231528321099489599116542827077775868783462894826513362622167026732801083280564026500407860040048894860370332067418206751992248140342028042244645724655441009077024471130283620240866449689424631900923467394832603176531929694085930445855921703196752977052160382332239495267002077033667169730973841746861929790829462028945396782533423634044247319895631422455276573720075788650929948251977164316406544936004042980573166734200700352647942881171982402650609518829520004660158585454624284698148243024319128469479003091028542722125321223223291058258893534186716200382621368492229437645360894481144812566613639341015252671354597447285334378197710254189902776917774134649739610318524864355830232542835504988712248910501630071251048410919926710143404784125076519165013660785934846289296168652407871193926935473085551332724744696075959512683684874537808799705326876970267299454394171179178187328101247759352133319590937482689586177028078773898199767420019628587925838574137208588570556236094495836484083951532176066927493119439050920990824148774184343139251413996293836060776905778748846353169405768669378721632639047409109505523941914129725017870057853147710647378015895173625177404058160257954634580694426999746803367050837868388947297002938162121104024901852267178571958988192184831626976605308514176781777043252289927017869974679377098461621779610700377441086142438780597707625239614381227739076244447805545561845045299494829839796645116014266857574522028883496098687080370359121871823999728603505754629930712922110112465830949179634803708640841655525074746159227562632275539595135941220716333486499764402253910292320838809434544902467780085486461189112997820841424354747437143581957753416303199380674743258572007534600413928938863861014559941033150440999866399692152937863097788092103598145765197952937253948127060129318312717918121058393122190470001959872278181262492970156475209183280158477723397228043757155007766040714343844851999510115980709573353068692383175820416483081940661618048970202876079381657855689198000540017635515388143094927162070423506554609964111824847104048100047192071127519588171126011443288464645987394617599743014917433729265740741883610038449157288001544240467910626045642928944183988380332929866686706169474191145133317950090106843936608931451423936522913140759326386071040356068866751687277154661957451709177248292868175269169019217949264774805677088347202034980063770345189787472219841769643051900464653824254272689337406564240611327349005375786499172950228279086520477569442916721478157251049233147132001279527357937990557118654094426271321662393336248358851440048593258517745400613801334244617375563022796183227645559875670814107966638571393973686997958596000600226796404028971758508090776133757442763427276701602439327051417305562119458469937624990438504079757813597817349480829434234589805568891538542169622644598258051543966871081894800820267457135444586012429487716243606635518710483829694937402024389518098575378258444877298491716219556406873150121835964646910616237270059114959093394116566186250706103496129472604185724017549663699345007646531871670191045354353384579335535644238051879964100896542701542445174214701066752502294578214304574718335858162295825533963358478002910779033630882949786096727475236159904683493650882556100958957415947272813083644410840083736509688068581195231242628422662848275664331072819209790088345153802766557602118072629916978231716681330791362139347728704979116260930950587720134351412859008426400376962820173255375494123166924237334391339419855020769043896820301507974278784398569324938175958993233476710551478230877712026972630172158692214201280300163909166055936531970645442615034993694710531456884181923664476975240808604005628077186135206267387093382623208875353353805508567609173736179420891489212135971205010196736221071656768980010137505233089136764802421353172740952664073264585454888072730193055830729177386990169398084444597952179693751151683117007202096122072558089709976767114736871616311059730405831879773058429969206417202415283939236042489823317754145831857374788332198628918935882247179769647017466703866576682579662595051820520706826233310697396991686154260174099054045130332567969885042691933483195909664460860254961314558977715815779392029037327456965327952197592266718920182962303023170724707666667429668708316209500183597800039324792950321943655884584363914317358901489996529573620250575171518342270480181086726565553491455356639006232542034754774419787287701549230147549606469193380923671783717184875016615367690538597486868737129424560806627927429253625988379658621738288968791515698585978538384723742110903404501832285093823795116747839459671178450858664430138033769260866930498886517660661463026518200332181814250344878962601975376461419668748970951651269322989694215529130915268135623338856169128280274286790657756847735261546373944957569094330827968036110571111630135964871568352410231120915111479724729903829526708867742187853252333886384373057320978898361692950484696915615137657036432743308823699445156007273866315669455997961599268054793033688859177062780532756101339124105090546228273010903549663780455795630697912317202108326293629253704514300108694667300375190357198831621706245729102678989017427619285988619680416375646475579188499839945688223637118219637254262237328215601999723413896859777742564339624217517955935680134177485358445783496418110841911698268001476026325510049873299151664138365445577770759720565620831022437144783494392305516914215423788951243419884961847499717930108421675387913059561527873092797255305932259839489492481248330922025260364574768013706943706612485949565772998484713539126349158144646831758794935389996829914467388489741395695821704734987064022909805478514625892286404767674371356348944005881677830314498305443714979941067817217435221944051251571176020578068080258976886137937583429109350201107351029631942053680470530185239890711425031944994700257569853646734924620316647700862821004759290836880648450414179253968995488662689675602637671966242294298019433540383853666876022720457636458291413191338214170757818145919198136975677362044422088881624877562336911705885003665069953879465683822022102776224384450635732226916128115670109307962744321352526303659159887596879599866155631499698550588422705114621111540556807651910491164391638003170247804947064487488780308285487852790990906850447770671858747837664835938150524780737751488662192991833636682395227257866439551473434828388351472849543183668922045477069854151782394339696157621561634107488170873824628853380361594956753255587865245297703226336621503656879264308352719852360235523718822169604114090951448102973541753636582302363951826670909510511895001316401810134231362074137049527610658727859747118514163027517988690897974597805288328590805158566184489306988560044749893322680815973984997129410150612413451252962805942975829927150748455253635314074702995919806291833242145418192517036097145927746034709879933630048989075172347585941879695791900737022704681327251611355293458977991070246219983027075825545104366227462294858779852553468219508037129640778164488308342103294951567380185357703659107850522116736544699255907642686671427063760968133758392427196085030445260341367836520101996503629824732772938347591326309102072496249278585714533035811449725537903916844327777413971540735692839451199758396286055485411409657205837125848905786133740520738446305567391291304758069769544602995305424813657278863755265493418486592353065392730643863611797847606823924238905679854756642903395253257040167496501691189743496114311370349163437623771271261158654533621613102632408510599321080922981716968014457129619949122890222950453138901595292167360365334704156785293975280139215087844613526570751391182946036084770508246475184317281286400908967777145053682317772531271211106752844327646867363356405343466195084455673737565296344368647844659293310514439258455441587933316816431656956355613435488596546665974299106034013891383685436878560014434947428300282941045005613291764550028539395034572866740097934863552509264968731465371227874496566601783728897661395764166718322372450057577410652572225421814569632809931247692860111415449352910269599016865198336047597467375986199541458680526272231703402159829520658175207286840966774644849821846756959254292867561941854450687151275793569966520654090601216128585387341113345329539853398327198543831138292637039119744340444767020535471790363204635050925477917524384342157803654140758197658890860689644210717663639242545343758904726323986166109381831436854574961311550000449930360073727145645048255737124837508892430918461404018795655478048428399610835862215906339248770644523389835386203120841749688088691223760242773467597461365056331224589434565659673836741327126106533779845263671946510551742385373399432827037435737759378466624065184584665923034527194787560541369646341637520764533520833833201795051469383196952002799166554066869234762598504116371332618956754625659329463820500766872085722848772930014821860983250433866766815847439481130626775881386082458723449926829048418386324315454221756364111065647490222026304880241666292637528277023440526436714376408157310412198154675631438118676372682683881829944016903779880069409385325555761833448962997594317240542561431769548107753091053676132223090345965966443137646861137476727975032234805764712526289207386928899931398719531679372566236286152464241276821474732408124262470261430469792738942480769285321714417296853886564548113934485837883155245767794658641421471304436773881842349705540474466667680220579346157480904548123422159260389595918509842162005639135607477522010742631270257561662936873577995244247674893014012369975776820011907294322490560724322915333618294819810712283885811231120497487270507292320304645991045623389512311749977867066451009016212496888637373726768960603533837635233621306226452734944243272105092483132272960254915165605721946288818093505612712273499383849057744427509046749983128861121700596034403897656174831346177686119438111071600031001761249425158134072078668728214157773064047489297951151300833810944531585297341461491843560807878422285010407908916020926844331311013223448073385999251151800821007729814917249157065280755296971114280039143423846144124592872244973146635834564688139159351525299389706059005673697800222984993730015134700792953353141294194754495338298263044038947900819192571020728517691087354393447701464201647440843775057838535130562368994089199900915547323756687587197968818860275052226273520842194072351561115778237943288551480907174288399684214397879611540730482825482815686375240292990504639507677635531111148869073525716646809409307916230277366658570245966588893903440456320459096941796749071242997883770164701003073959208355167326392669659094392673903783093672771110753686724566460889758286468191101212221352875471334296088744069349346695664543553574096449236323573265387277438106665580640283139337752259631479988385179827983222645753196833945638420343057492381613369836821855037792798079713465194230842618732448046378431696057420091339664464669790942069501928250757398752655372760318293062459029649512119872983425916007196255754917008893255130532487040779628866768079552392514853276285959637128554460914284360980981511235765182110127832182176069229145747119323674362513063891862869508082027383872265398511553017707109275682293744917662725208197949644529718800388342558510949501804700858428275437972119983288823600595822180348427458617882359464302871295791421529239668784136624160020450217968257833346269552757643885269588036870770071843578495648489235080366913583586524140774827864962018980612665852884253106800296769231249232258684758789877133148340939906757233221489357853711529300174103081133855355087098069021721251895931614348838948527354822750477068987495399870818533408923542982861986183494242095254318742217773298355774747289184886979089842117585863432895280477355659805732878745000100161096066463241931333655153266089268136435146869510184966011295076427807258017326016070178233780214947388434561700574079428189293924037664916540933225291459871661415908995690488388350555291532823739407127580603336809166397571009452148470815527254224870735917252086055603235281315059793314595305388089418391698193427073358715414540685280792888787210468625175117316608145744646295344126756686761580687856478729643828467449392926774082256267837028463093668597013235015862193336105196370530151580887572082387501725950174692308098155435314889630092900249114533060622806433085251201419836676122422934470214576525120797044620772633680963577369711104816893320452136934680346953964109480540630006159413489775031854686995695807594697160735157815887510258408712928300162227257526413208527728002167395836068064681345745192591787520723343562366505486050282354041157734570306415728067578515573177681450527278095606565721422340353391210722214774120108358036722698544133810763263981322384726522343040814664019850831022676442118997373579748226846793230930643759953646682335328321693685831067475655624592551782714879403687803521726793684826030773507938248068877305180195186603543728728231309229383508200135839063091153928382863342702764913213617940140151008816253509092992158215234078766824209395533530620092927331213261396037073354774670358486095356125344221837905413304390780100446785816083794787187367175869860265758141720856563625006362906072223463861448922728082915430788975922979882835156776007950456567908956239666084729074205982228606319618693372157673597672046428748084041441548099219345991681690142124553278143556386244895500128933405136002179364679898819382999872388495920377029880155184148051589913535368387731156383877516612645294329464494973002489080264526830397613502251883707963402099207428124199526954427546166093149800304730997266362059605766957505850404908626242312394629471918475402893388662394721245189993313708248216258390411270202352467336278947953749809134419471255696678819005939384233266387098297922427521954055193874539762764478698458668288874298148333786038677292647806234727384648014924043248836200917885645773468347410816880281732057190944159721268552608553638533140246847946105718988839538036077241515684339223419566408886498766132275796578472462547007696581283452169874154424988841526628141589735458607468284891549147375056727885235864653368462636996880499397873117536069324240365177902328842356046909155555883270209739982719688327616120660902264048849220345000828310178776125808272571789925577422042213821950112085966547483411344742021497492847934309850666358680146846864299557497660050908666575685658077364073402657780850213135322596451814353473060227927497313450774423084936961524478504686273512494786307140409968828477740536642558836000913606537986992847704279604667510198250588843412449035365152592672819988181018776973060768726764684464874885317879632071118003943943987038723621448283413218747918074471927444328201325450087284733334709073791885857032698312229900981857738914267726198021812822239031470400466222439036200006644275249145950520743267663883076072259085466364640886544558466399836470820792581275620220176419391999610303218632520008487342886374217324169912205530514568908770656108396827770655038307312295723061888570055975632945801697233148256715520262950365237879797367204803598361855184610494266891910931044954610992482978209831430947980460314047448807763673501972954976463239112052165582298292494311563304825564765496582250229696054375377556233334225944720178302687450928447287912716711662062619038502827406745424208679596560492068978099203319019496335134217518651560753950515072480564929230701647413600105120209083874093152544019298190976198038274369657344016615519378814815811016152078689053533020593151719703173880283222766445216003754451426447135533572012597314764831495605846465964348695475069616934111547173335043546860025361871674860092555068330437743530450303575082473023895865219602866561327463262193006930796072080609544591475936765922851121166556299905062371099998316715124831647130985514486049738718947946940974080051626275479938031986849234152871219174978771055992308856543504137331920149204897001604391316886259014844449186282004685321475748519255285382059865983539143466993110880293945163056127430778168632421515442319992903695491763368248126474895489849549542868560624713804294622357382174716892247391862868998863932824050261982997676139664299474109405989892341472712277942871645904814939345617572158208902457318993353834713801291386192336983980827125116910694969013997539891326457737304697510534461211858608059199060237397652391088211236229780571273043898489121436290850557567494373947495407761077437409493577115998876350559307818140148619465872891803297549384259663764075507533253660942838727404414333767461553685780896195388898019443849258984379796174285648682885026517687971956311562767533526232920748398598037137046217780256335787845753932335529696415445880644546125783070036276828959074801369252854164923965315935015302560276742405530570064033436268395025776686482927721792720870190861271585656933124528975271444536950484952488042368001316535922041046913701869608735924650933211113091424406527990707356882520659528611142725367039131229712050887239547422344844990244766228639017925630055859515341979819098747630707398025724897939411666487981076739246574246354261278068860041456541111640195868082144919020110060442967893323223092001996718511059169479090892485898928270407933187241040949032396098898234786376366957754391179457516984895992428823575557709600632056469825671813136843297808611120158840950883039048199695972566860488737072324703704508649624997320915085637165588004533301650978848989203352601994124897021814695844693276995923077714694802082708473568002865151791272102868942659269082387608947863200268699539117207837167292130051762496677252183158792817895234858228719697812099010395175474055396823351154519350569577906157009751464335548912516399218000679512509362253803021243571204115257689668698304910306262799078955555544735250772681631835236114844783708014651493206964183685143870925990937339548419265588894134022497185236213848836612011964580442851482385799556104624734068430281867292658040517710997585089141514283719282527945573870266484431698984574000808579794310236937003892152239113390454601747970135106006881772344158517946537451801578128031477366671942134050492123012668056854330408717411348825717340200989108304138171255196706009186624214535528817397624038803152774450458913704819408864549853862902789288803766694101924745117198939791346410502761489441169183904572018320124783171874895756731911532310874187794463046715129706045333850874780656943320712999939355572265377504804986810054028109621248364851296643735203410272656031509914953008987984114593510404357980982638591723092851122194133164277824669255354848876794728984420686587322677641661534985504593833669487513013938656700198433560051700722202314487819204780666706849585951506746435306429689068257754476859227627433727449156727801773358105710253021481469055484091229079672415499200186754759765353094254693468250257708854092182625405512441080633763051217575051351103884112135983455612927264981390644096943676116072975104653919790420773607457187484730497930399234479800190803423263661265660453712218373729300354153679232955684418715746068564525846800474754791546722256992381096952567900457074188298889322593289927438913910686706521298174086359481209001439158195181253204169150291344416548323696368760305545104873608065665520153605304854516766487047534692956760280111049309536919626239228603917834965057242666071176936591854762301304488390592998721282680321474971825454654997560593433642433062228201624186837811686879107940226552045276546596758793730181482236591442109423447550576646271837863636506069666638003206474957328082708584411901103508667479153980428080594550379654606302065679019934661115771256036118091113314217967838693587390444019864550054696460204917610668762887946671300281113947428872952632013580400881350088043979306170713427236842760595076919999747364418190655181890486788542852392757562051558905733133683436032577249817245392978132224304860266112235176714169185519831292312685524428219120381972523131915637516871717693333673187491335639739411086974293703246066949903395983336594219861958224783136421160133005507143685827424556360601692499699470879104829435538693846635919426663249236440855836689305433097932929559420659943742675101968405468213401836305718221719148211231608770705723241012350293601686081926846223765777268444839281013494618080625629787509892319194993648488898806521349333860053734355723965975903040614503677119474531057378937124697108550886343373450037692939096187762938999773193651849041966843820374552730835112038145218732959992489533277067417579284219323623843455650750634951714034482715617855867948795061417981237098332688203787180624560534958229319595583495111226780203511009191540021722804753089552192438962636994049550369252415394752067019106085232272435943194647036525135181876765370669244795155445113422389007190298262793087017658077080617093031499073610407229845764991434668766020994735044806537296366639200395462192414148452572083398232820831006876333781772621607816342889159297703694060255576798859238222239020506178041331681957792312502489282462804245896357225169392764141084201842158707606713292040628481221554702594141596136689419127902220327663614358950149178770161382317266771971604594412648813510656056669938258836982091954417238392614572440877632672840560357921810429980934224597378649585073415097898887758511113163418507335604853881628772338612093703406366772268893191959394192541705228126605026930516167421810753926577077790258350092555411023260805897976458755038021147641186982339637515210882272656648117093710917523205707882288256656065709715778614269986780024581278518756858662998387601281693471512492458173714214102523708137058032731704455745451020386911447145111358932647262334535833062278174407402897051391967421041265296441555049747689778481763329982353551623490486079359457604471774030118892988481663468968033874574000638193081902228787269808718350992834960136955706512142160233434493676782146927922857065955189587157250432254843472380405314159194536921868243950778899720589858666875257720774343325510090431355145317116730298250269111863901524339348258719071799362343773223679784538067266411143758064780798230290250322646457401389607580469669263874884882635745750112117731854112405008502602717933348176280609973311658720666914751031912398537350173001368369818146525204086706621845587095237848530809984464847664258205552268520922814659026418196059457778271339283141853297222899005866698749927359683830939744831711782011670205506757970177858320868602818649101123458600096748800926479186001763096107909458779175171673818640602990680950427416128511609927341802799583307805998791899886111733058702320135165576272422296554783695970375521556618749020022296780107188410991214047911342040283826186944848189721864341384785883235171470071193382361754270871859453083263096956986858198878576387954695882375102916563655271541453424113277517279939400705578513681042257235703556634251424440760248984376245488320060539054979804522719023388026403247895923991444450879684557658728103150062892089294873665161667246742890171837255605151638321020946558113285320493722697459552371880181734625918647074473754641039200143499670003350014470427840613843807865649525897053667163151309578059304901131671639256335168966546804207299232542216536531957886702035263277093143394758982916738661810249762117352319986054367314464087928688739805612096695742923241048004163908349906427357962586726205526158594790244304807741548925515645054713061373429504271492374639417381381307063334589021097347583476935218957582094097051795896455931584333019712044113247824737984907904810344216675843784425449951053431657465736720494194598548775106450893096037623434838591251483651239973450932736384819283542720329671413907458073547481812285179857441272354460204426159835558546561096158606751527685006449305619861845494336685064954131764355050019208413215824347081077468497761067913775854666490647563578645176855263158188931108547121645924648565733407077994226916085889868060762665336464552257631552009604709449709498163103849049806193205875174484332227176295892298173983041459897744379897689617781671018090782426574678403016394430206597504792698856347617157657309469525707324304670066789468626985554337061623165723966360143223411037130507329176443558146454330462954089031183580813459992608430197312650851094845616925308811834681981663596029598195656364948541896202827779070962538515326359719374928753108890125736176602111940380491212495417634345289295136074510374737017947301948277127807344353463986333887915684954905166645585199694020841019280260286582078601239711568134679332605100076128179837195461891791874554771585196540001958647449861221818344569771000317158346845720186748463018454058823165673286906075959800848286513014732099840153268187877842357629358660067416660680293841796654061053406792052606526034297360650870423667883352690428617874724360868881360529157527646378651848432715885505810579078024694620386435797883334752817792880513889855711191195140644775497244724886459358255711558721564155161848545460824203887900144221194730018343430594256740549952731534365327779031771105931796217808840906447504834204251148589544226840573757255433187458960364514442088438918149508588298827631027935458615460378822933085171729775112449419123196127500676540286676940468357079041239051915853714782628412901894259671038674820819262525427672658481938165567421657109684143478905282326511468115984766947446150496221838177984354292667463035719511803798339785337427521527716941313020138851717733000179617787726683750182051571946274416313199400991431375164198420091154597899253243576086942647290295574159894056342672891534935854977649970592849620400209668484569666899439529844383786018721310190426080298329266635901417128932072487816427361903548205240540374175083923922021301500250361782826607075954902426449793592129515513592842227888579257638683831171783158527710053976620986886983816111426007065613903673726146703106327061463782767121507118612403762105644194198794277599073179107241912977895037492532226172710906623913502095634925103959222186401861677374610249181245829722259720407418219623772901575040124182181182785267503640073098248285143251456195233883522684854059932785298343771485693195000878513254394083387922391948749407852762175722244613084903208660887239745074335760352404384977726709400319502033391680012032946219453043725358082642367600074329449911362447380498686171586055902482656811504570929723902315629651044189071675820985943566001250840130700206754702683510206896070618225894374648958088392951951931997001102748361748692269247256034403446895295091459647605804848866165502162029209490333926082991181801318319021443026826875425054927509448333051036642871832983610722158533266219499499287209138912290803470519134678434745275282090660735036160772438988913341678809293655573899424318539075276871116629663948024196295857423941348520625492707855318334158934920052081280937590250650283179938675966764625312596746377539316035656672169273836256710466071574516711967863248639379113827235058089117507249283366734152793985236362348728103486326844184645842826594169164149622939624186702604601951623317093462081099499322725639765355454209486991283799806641305779561034121833252369232247432828081884529824155305751583847979201624192663052462564331221525741030651830814285935905878092941636351886093172719303030458801667964006711875035223429966738203745107597871935834715055762823731937009575300543304814088758802180672251013134690072726338584796532163615108987916270969198876193828731381521968524691315369970311997630425183317933642805306608271763538952575544096156669213891231299459104510548086968321776481309975348425600139245577538377550370891434476210764509358322935024298938263271318143788282305089538228271032959095683759153525818981711916527650255092357211016701818440729053825905552925506742058277043732588818750076564185205378403272796466386941721656586018195837194855954107616251113987449767449767308548306117834816756389605762424518637653272572589074352097343842444951366867137249687102473286237788137901906693758889662518818864759400829408879077972231975618884603529373440873857340829152079490779137023774014749822065216744445204572363992836696111390075001499278916770955485025969387534653689459179888419467393190637173714712090679499014041466103152732165157512884169926703425925489940049510567816187637415745176388438669438245439940891074481127927540260972675989507873633520572078053122550503876891966896638743095012155196424716349404344936900675974096982981828023760350810435832757301421537584124748304134405360564310087339639603853567090984899149169744639937654357054406770427144972504699804559842683338148509979245896715840719229367941752333595807537651186876697545563797261658034817995844126438061504740668320356906749156509233966844352367109446789341445507731780953258536579330647535288558801708476865284703416981408261591396328305446848450115692767872091732435675844041460339535894712811526968135832661863313701215965088456996138469093824471675594624975939462898143194214393676028085910906023311282851451256146730628240800555838800988525870434729206760035638605436951628023947921969779396699930774128139108767406284369121627815739317001914303783643825173329091994228485677307053291650659207526818063540704103126821571983636460228792919837904324979357054801004804835890795530253880907441736596582936033854625152662654889272973868269907371579711603499033860194571051617461385106739071036048315233356285972642382644474350499247728981105694894691176270890896482194522568663772292699919626303497623618795660549745235298687742828101834112901369365895599376918808128480195870041412546809170197919269395766255243944974173974451411129102882716684216630154764762656610780595025228248909597227073060890521619731134527851000012205191529797916877070028407804183301315398339427542186116833027753549949320822755772389174591207609418620399330619750047907024870861170131418443985953430786686174599654857408178718068401350617936172446745843045190917229936746470301123001438914859891094619002860975651246781852227732955081213023444151949344818906953902144340963731068574410527831394928386021238037409150858556436459463442248828691298214427005915914534760840713072095309535517092383822466536665576949242862490291182012835641913615904976326096161940018016768428856640985083065253785720096047660734542436497552289019170958373321410391310656998105750307629801057042257035365389391928570470683613693004295237151395391955974660859063029756209380151674235046415000561081447708655152403123473532266072469266554260749751614618457829193360537197294969335786647589590088568063691322481343081478544900535893267197275375184332626261854869538477813749952141337603734668197191141281160222812807808518193342764231913983014801053587525075826132709137528304707995552087688807593441802282707430274708356338515253919861117277665782743976593660517819511364996214789088513483669114502670039931330878065850682127152786243894231191876328230747813132545137360150517225199791048057140616320726117093192144771100922929615105466693901778089671387096258523037910083303969101458077991914263699092360007160792654725081748774048663804612991935643917413723773177466081306189814311865236781330864909712849491853805464839951860897414743983715697383963799217355002336731260752835947178348254201737254282910641322351065675553608729359158879388119355466856648636331556283851356428143187468596611072799138006870014139731647724155966426726240766138623611594384545090076642038606067594068349462061735066460933327696255777803763374998847037399721535748260474993169907524993118949230428810107003071536975367132780432540269318441458275371418011229387831860945256139671927743916039603419936004729813776993091752314162086359281571228953356384029538808620135566405637144397792575783645761513990228330157663028897757798872274114326736165238123193334530312087822885132763960025517908698617828398151126657488052472169021001734441099136269179490496600551124014206106989926572605236313593249102546281994543027565369185306261676012641954615864959805283442891161851925450957538089031682778361901002217785996859751261486360993042521690479682807953414015793087979530218942954094653866945440902916531796528733815156972701975166348724264036241970836659582367762439896158113777996928373666558614260079945522234691138249261205851462745998539712231966601365186565290707437193585479038125631884972523989188792837021160934096749017752211710834812231627426356080544613488524159251083810954457480353766701090889333297555151314505297493494866692740110835905508727258994926474406137849013585022625579408903806769800723757825112362201474230480570921916150665915850243550021079925642853077050649468091888478708123146914774184505745421627914096761859250937073179768238280459432019945723303054766079459016646945113363648593351816636703185273717074705377397163543936154741693098358838895612843797188974708228331739121560110324873998206986541564601498549629609995185709065454156846264672944260893885550156788900553427560302284268597197524516531101889651024906519394198661648219588831963133169610126920616947329935020341669471066960988408316844816164005465766657559684675773322656065058539173936591087821817072437156806287331251712357921280563611444283575267306452273473751328093267787028084741401638512259366249263371048317388115174389327923507402859752242762768626484049990261241932206468812801698685804566382951754859288252225749165800527856444660457291190259496623597544157426640577779153967914887718034158218172555610184318862949401226751531408497500098912805086652301203595281421452396415552014665710371784425542216965273251918866497420986855013873481851386449256986598310360046097313207769501951959834443576715070502427617111449295332690244749052766842932925034189482613790432242347982854946247134114235393295449297263189751851636679782189257825577596721803245204564966301472196140682435675853961815812618081245709970952982767952968069472674212735517308758321529597520956287310928032092433009452435920645622726317705260815981864212395335154453787309428763954592820285919273695851394315255902868928425210414736924629867933186723765370257254057039471065268130538926385042225501165549404612489486229729174903982701404375598305240784268676776793464285482168273100069270721589930848527931872977920003418582405092607633991974855312465073556419066622613786535534344217746724268576071297934844324372033975475154750186738643617820620480616064278289405875101848428013032886679524667501000735246913254651599075200664952529273883689532402214374992782970697473892008730978167170683227179017779200361775738069548465511652007033925242913133665152369874515743662182771858865977709822071927983666557344780696301704776449799103277092867057040690214718497783227542388941734534030394191739482078613737273793922912318977240024162589750623902528074670341882433296425413207076871252547310367590130369551970571498994238659540197620507924100245789883005854964779895021772948215702156839894857135160587290583630002304621912320471927007373135305739564547231024893905176750459630826868860305957706132402201349139687478187554022523950807506674597862902739272717315924232260143518726413655422384731577180875664349298040451133116724901009175862288169283096929513325865388205208830013693106202324058678695295274838626339640884490925566621793790785696936212609511613134457419406780959235649225183963022327264772959489163762850157276320637753770812828609500067567846347107456345082493919866385961965991526971967194947491691612559245427789012919425019319083224743661089468765658144766068593009106566206457118162465254822080519846505894177914098220004645162804203804212571433808263100781992238383797333629296687486280141546300595175595508295841705118278628880323840447347544222400197719797693451495692564353471988482616284112463522533129423012831754321656241710686999759661662082579887631672211625216126956067623984385746983614986536587574034184058638849663439082541177746370238646358271639656786092049472985880037561714770687755701224096714453022283026596077849203852006931764468022451322535221330476426177633776194439907973430933933731865314178025110055650971822793674461849780382249336534280047219939341911829429547280200064093814377626138673485314186540910392643979851646959205820428069005321932769486193920899681158770814712140083790939381028694804781252387688526279378185513491311782849335083553569565482228891637625303184282763512294923575927537529577722106715047939183006686587716444636136274401029672416665696209832691503591770209495804996876176107395866606583635138798823053484349896361929022268463289057877820464388912503435240474234059652098227069456955163047014084684793804945320735815950237796919418772158361732487839973137734904306247934027303556951637445766391297474008708817742709573330912252128652143806059631221553173847305575111943511035439995033810215601925034494133166748886156923577126383421356309568242430616983068089555791756385020113948152160999263098622642583851722065746790773570907370767493899837565503973656213832285360246043201303266479593300135201794128272140715807473221523580350044243969577364304157895361587578467523419150484523563550476049659631412855917007114098473461662636904127206493635171697682816771978175503430095207527533671912594035885335948398314575222763067362393437089051948260874622130750698274128210224771935802322288420557325911874488514694400912491623811455870098652192622773667651689326382019236157775548237488973953016663653399547407084788028583357017791174565387421417375251680573782796878084386110758746838405946878523160809312128152383887794532354100927303141925573093234515892407655485108874461188136578255060946254945475310768189244282667670007102794289472741880974696335510005916255873691806793037585518497836765416306371997690323784628591643527564553329303424880473937306127840003495924786529637513342724775738982865661925238922899579661626250324066371947390302668804283878367411834309549350047794482910011754009146727659053336619088416630235410010541731541496063622956406559440091079306189093520633425988081483496092424615784722214165102466795486303110804619951272682518105605799413288880279979059574075072305668237012169033575235329605594543756441404498821100248376635788233259152741858161626336971100323071841920188367563384549316016406690322563254743028823498079057206901061649019696955475077054673839771651997861222197569813949058465182244459491042507172106787602504510597488213438406632340776181173649052438022464445198890049063364750178842162772735089530141282531997326314151156488184257987688949639494976369300330105018059647799792234052346171017358090523187190953364116082353551558443451365131236362767327072871549835762279990139419849396201727054470080743114683131376225263649856675789479704651411067717099227458207811863700915918420045164926965121699576678048459590332540489579688477481399298410798019461404550582689314831067120977857113658756757393528995519810168973715129280042990107630423397636023259610593696516538165103100377987880900019992749108520141538754420707244525501064034640226516487145252964767788808739084811402756415442026227879597143593692987121971870361777869288399562214594067438560585539821396928057074569541361458163291017796385518426032533988815457396403528831360785241825110465145147266215087306538368442749569381793438448905223968244052273179466278322370222112766518775019749271232300690154655232389950578694497571025519643324115247178245526721871883667983207322309411228093979172635448432280397365403047419986849205146740356751595833756249132107060628624448068923191528025037483345282363845790520341443189579004485648993478403670593129613576323609255568536501232982333688146687869190834210043829876322131230712000878853985004517935228133085666980135983687460265622234919793786867864006625109213804581540772004010181347439288114503927828374501612514691393958717612402182033602563043272309191469291445670837878011569179225334080279359283173318006250980983086095423822676373941071328020834543324762915725741792676644736129027479412303995561213936023425670547549670710174884860944406045190560867077568227608458546650825976908950594888008765414620669586634070088612268803810065787637036373112644991845856451906355998633950784464016490646788030294151537664088018272459322798546264362274308717160759575789845108052924067958108946654489146407938206818125488140488599670714422026702245031530391753512323361883415326063347156424038768680873350684857412472566205264823573516820567274697960426454197286054838684527862638499626455758904224462495234052581617445422981357754992306634688204394436128548435265316112937476466069486513955658384389459984438502881270689232446597077543902023547886799493412450936628556754752129656437767973591174877407007014228343505605295175256281197428182394288113342157211854665575960911599866389949850440275756578337943362286695952041163227133480764706939662516983808659615507601348924155864901851002529192352624142116329359473689203044935582960101821284146781672636369155192324976731295978069602400623351289544237180655170552582823506930123393428688342449177150289455546083433771716860569933539135979882757104824091572967188521917175453567994680252580453190230799466270611403937760450338219297956866691748161339037197549678275054781821219602995698821758677702147512445047596518985079482985691636142699246001178992693230006275029620916836400395291345495186168930182949385089059673318239752553495832611384215275027977296848570299228757769866603156560927147486957634336241192430239836017087879697818975337441073854298042440267840395476036528573186308272056714522650735812016939566504869805230831106034006355447874851658126709545531393833438935295108141252129146388970257262973260099302286882477882538629810021188523005298477087600106534969895257055093504880393494716715343878806241024155788599311495213982460897253514269656094474886179994082798651984713054470513541917167234583922274647988703237934801116633882427061257980200554749779840597785617351248911689276992858424587164061222749961252928493326026073424960649854105687744663943166882999418089421358844926766073681584431635336822276511520563440244894636272334129174897222548366267504326347570153909415917468002546595676921688874053099479078250876772188422150132881025176982688242150122616426855980894250144720906813388478527678742488363119209754118724269821020588381115831489105447471065020884254238241300868742082659183918365318070062929867957896689018656906392344860765302281208649490130203216672845570874965060432401112769496133189329973225694732433582633115311010763238468403120031049072459644485629444203300336395802158635267677462467627185607703086532106808062225056417964168360077696066105605587211646626039115201291493333179544998771869168921714169373579327304880383781274708058035204982698457957443786485517181069198594822604259923987648557886738823353352409070445959822319949880791932712976172775004558225508755714052153979914544944429880186957364786522486438969254109306697668789772328807638132734725532096282798689129184483859807051186322570961823619198969676076986714759609446544565974006361432488820334863462071097448892715128091814320860904105508646027727451522130554271754577054594237431498977298490960425536487901420899533512625007047162876218560548698988233762094441659273067562373699680571931969451217960516657258818746787384910513819337786655402872692412238688916514056668683299528946886928813564109203859830942282422598932587742542621647044641772578895171747982678736404954211490651981150131746004407231995824218605789649315800028238464628574573513578583745104376213393819313127062546970260188795090557657664442450442857055090985509554199099808220770526505393150944634008208541950452988471414639938933406781594139271655815804722548382767752038179603056266543409270225462744852599644800696623306041820712502641200268571890236849408694196698647250083535173738678970826876515997295364073236529385747001063184739095737553349306896277083145320660951812755303513838742325011065296480582431727902229562465224313904242292650658322566498044016965316543278279091334125229281166086490249517781554902569606860893400377164445451641532310193809005631685022142021198398986388545302059969618150388525784451876800480781161839183748287116304337879307751945998073930562763730657416651310089954601652338584951240728256448269563315398731705954240740691823043355576839614069083955136447337260364802776814589400329914224709420412143969329513035051970609838387283398761773743863203267781928817714848884520693118800913581850886130463736215670239200895716257382132838569050113715130690335884987375732944225154724190540620540023877435542619488768889370688361063236392862077481464955195236605882368936719464652610179054357771233282373912123679898729592823470120192784836350112835115306413212048584918825592502712179877451652358033143677003099284808816150519250935949540592838298584105992342617962425970948723809329626040103536934595068032055117371600096468629459324457648719399200827990782271690016647430416402253237587403251938582512360847785492301957665100954651424381314388937587457864000581412112189178958249625785638341146075340227470885855506412973625738801176820824277777528784073970874383820509345600759427493455051268372962024500867271422690953573019262341509721292123257761726787185532906832180269839989153793231241303101357461022356533568435617282965634059499302081444779081264793485312284524357056295771950152537156032790346157542917172112514915785094731878569663351967218830441448451676572811388260266954202200410550998603442702111697823115335770916297864100272416617848211615910529272672684369150991033038549368895066091294943063980419681475203159741038761762693917433535992575413653907065211657617377064219154911109975319895915581884653620527680767293082233379893622161249584412291977146490779747153592692002696056678715701444401669394542601421900007386607892350991030305909241303589838554075202044679628931027042413430470504348578051642152019529783891580427761894976399429045608780653238473792337501206830289293727924374892091734535950449339528528519424051065171782453766498040465366312963771712867098169355137901429891582139119253058469027412387152661676329538014570852694977786595240475662354134476115415707156595483138507851991616633625651530317018196117789038628038606044798425365530580536131553365720128362389903943752344580821850625603313250104756240644323663972323278030184941838524690338341369148896193860809948370335351806165126454255759919811381381389160833798920362512192593614001106091853961797483431047571205176350142940328935113931488663693327504764917548963809922166312638767813329164964350888699792320059459295319209579376276725868679469061756895611014165011980866738353354190251833117409293473471098962901238908471271828966712883212734593818666722364813907555556026909570638409300077239960031528032284775071227904139615318450578924467783040601756968405774039945909133562543271327242186339929356456918511101823372004132172873188694017629292212979852295472895585841526340801433876976711208184154193360794827483924268863541245740232096153686251566850620390425108410955371182986351709117467489419814048889927663373665630989363879719871119144893545027658665091061036847351546636990254347362268946431406794158666997035763754681627118144238371893942010841533038433705791300504280715903074527360433451649885153719946125259297615627156376166559821059497064886798972815053904132832128623338385856310237073097312136349215365580136722639927346263648760812186408890551452378135737426808445072505674792199893750687342735621670480907525676656271068287840847829281381934743250065482119292656069898588943916606051434570886132125223829226669990563692542855280670811605133361524696051772101847465993318272218928880058633069123569951723067100395025681888336935182377243052966469624206921913221880479793439254926343261019601269055584864001566582488313097025519155196829184454219484669281877932520979934887975030762576939503895453761279591057416253953449236111734626616400796473139015056749459060405930557411156650180168345650533049201762869306973288749916630929903387423470344718098076392434028724245450382377401411906102643237652019906671345069433883231671126510132225906892993799270174330276885801101051670525713681680590494723817530426998389777811652971574208713834039742753522456515216621616892703637939846853023665189312172506037454875315086871550204919802666363742201840516862158114549347142516566221372199340469496528976651110268977587502208383680702421776699718897105900976222283515415472622335953058087327085590291107540737214347975588102696957244878279290463350681900722148361404018682721644217563155485343442303796662176346084205765463832678508172360168859851290575266390058142485560774504427704874016828405159471553393995310555160572621765088166494173595330198592828730294055040198861790596345521206944788640438245266376676219434080350914736807433664720185693037216648398652801982842319935694481777992177452890274411012381480874223507401642610304250753832971664007382257543317772994034548739924913364030619110895271275609998004406728810223211162888125130661392293559007712022798524487034743363762926657957711057961896877857343429206816753743813651389942882721040332355807105446300846060581041152188755891149140216096009451870033261285955557743321811164248764947639856766060402809943301948196857318870051520492595050689001200558640447015958463082861700049731166397235470368900234686505692634515022519058531329157705237350921230805764520550372318649737705674929495767347411917794897542116583990962712680622031368707670867398342186418821396519340899727448584344022724174347659975310738226266836791394297507589434606805007451930388779073833846476180180512036067487966464058649551364721744065410557535025260628767641276076981580660537528909743868933684205653132537424389989508038231672808406373635227006141716797713097180928384246896068160984918397282712610038213913648020953622003409520513741500459681549739802841793747783391128891380620600849034333587981457064126461858034950901249151151017310705494686764028678288942408856471633524045967279854533009209153783105194290341157740149292305042193050633147604134828212722381695018666118781609408151155796070249012507467903359903193235512323035748876226616992472873266036138843627076362830700021065559723608652654726041831366232964887586267279159970803825524524875484776754903078176698631249895503982566375021676105293845671155072013903926369531173662598415846916060327884870844655428199500318482895734894155019818680644676248999362912568745607682536709172203635496776254963829608519756737344854808926441488266033277820918233715257877216908645503627433010161362908023507309313152571401182708421404633408149572410739955370349685162858005812590985347750694087853682316469129563290882915804362422185961428283895126666285307806748146364575569670292605298720067574029970256927181835744314358993852007081937922190820952740824830328680915394651627365295813575501530161914219962380624696449879348325915171201233530131131344943971669043240239145054306347584094379790686860331248078364615513453252062838431709321025133111878600020040736182011184420936521233419413316415292761256257805281527755848232892504290677533214329282508728340239198460103576018021908938447025425152777840071083408238233281161975271440540216056447653270158123034099594438141953908710560262243009974992954154878014762693077794237757883960857485232122483113533916565390731210673217472408052661129746545781517843954091898496313721995562353007785119369072130899635158641359438194353598951851860700853616559807747554728224180165841415034756198346147452737747923586692397493149838738312117094009457084967228155606949555646642090792702930696900364856666766263158166375677674224943980027401650982254321809514950693692297581747897088169712022465682961214672455324565716193703934335660552995244086342569315998501196463802511544560479962108479569176721708267659338832056798405563219746016149533066210876697035618901930670806467333877753067043571235386027171704381697558888255984560135094781981023323477484975604626635899478550554624471234517874348164716389297012001312161931328032906875391321312779003945053634432939285908407682453278288013322239176913590715156461984271844959327638820313508785166273793641029154060842084188130164495597047444647333206734479470304393712445125271398222035551275685698165899061868636380211869849332114931649985524746096081350505353812490153679408733686430102175827735558171237153083114357416446700776589584954613972509617212753874448362018997849372121683641296464240426311591806525207492618180772118488307612139470175477418591979377474647672197022167165361462948156876192970192335235809932549452450837859606521163495393339519594064788982914819058597553479042092764021933255342391411130204773689598347261377702911262343933305655441982299343729253165670906878271922213619013126556237345022339668616704565344361683659858296070106978837388021793629275401104893016411721629694311451138632875649657520360804716052662159950826350477805628541511337286246445690572416271325060964389836232371049120602038953499642532310067769234920156410932474223390978531626278593202158925242060953925393525785924948762054568678101817268085689187290746643228072232987499096929759795461869135100324887953800129569289999359949485905118395119137793383686323062394260000234211827643119210886479684778280451717109261545710003612943586565127140553012241608146964532722896064069260373379044241435298841808808857339328830765079155582974262711547102980640173927114101590816643959682959034747227496475481134922291214761040833396294732866155186892515641355988550978080033712808954026464178770773257858238479589851391928119903886318013803047897407806105875758730197737820238351652950279739015498773989301717838071712430905233703619878744238026589750276781471084487909586428331614943322236573020606452911483800604342167438394204765142958162551454428205308537103227057393256887683670996050591514505958300940388356955829025715195721506519536534834535323988930897877497050498074804616521117598949040884484602710298286816080241303910903158661279754107123308331006534849382114850200764558723721479065019715277074583731211986553819346751505485472941229845467133017663800297702832234708814697891804022777549041974131083397494689206904521017444992759405043304740218007851186789312892371676216526159908298303595100032511629668406890239402503146170946638370574922360641027077136476525938894240748136934651385465097415571475150837599685856068529349598281279134203915395504378087376556036205677834586586081588724902900849789940076355123733886297894398042903760974056559822443796689530569101236371083425598238899385985832414576831516296374781600007664835162408975674111865108757342041683802231881373795888661242699971655469373986958068572820207349261858835371029404075283915736888778522639516184738809894419420450219539566212832042540503915075333704087772208696704463991061865511451847006662324300023591226964071919599902515474306039096852000956570440762483240969762974535254759397818325589159105815368622582132728090005058197890063979153402793604093418981769921279406574804002658420753126725670859138696170070621175375912493761475511660507376496827642592754646436895497621122108658472683742058246337148297391944191162477181742278677335045073990845547784424855750113220637183796677056385914909969869040235017981404958808620916125808581752100212732369695201630978659936640009054677706775165428553785666641511457591064836536141028940581891923613005105948170210713381365089308063898385194066151200517880324066294976147330410248824619475832237182959979955688814200077148883657993671431870177033415751162389165283969706682292742292577640569698689544915921116342828246919963387499254984886223015972421215004209521834380696111262570526324922492605537963127191838358692354261411674346387615696783686102676061332346747831299910200893212584789926136712042676892263997604669447674167454108578864114640188161921776986999833747457548542599464597463818430090687472956364968965110894923508358750141991655803548125491565251859493900188598126958015255460220653720135397933650648362947652463553946973430367849559550000419396252983990819123671088758894512461384904852155158530748357736309894869795430509506391784636882183254042670116330816268582644970925946810710881678981453317118084005253230956928801651827118261899809429417530842133025403108269200101496116075050979897567747206263167981606509516304757521972773696405033305316819102507311848473200864579522098633688684460373225357091635104883428227591201742143018537901487626083770786113765883241884084146864819067842140943203592132157982472335942308438297959131962806122457961298896014649392047984265169772938604494338753449966745148779535416447150337876685065189414898495350775866016044225118538462373961547927189673353864944365159209823013216380140214045736597040209322632762958248213674000709287698669571093102633110343949400405332214336866514547716873977167876059245300460169617180395053559435387750112185304916679517014699497462957178429064141067980316449458898669585745814076171212184162886462482152749240958093479149584338037867590949935166295416148967923934637040281289126061677394691901545129478791445622115951447923188256143357032283725427069112252576188441967595872870552319806962086354127605873174555138709550621334684183538763340905084300359677761580145059830905980489280252385301317241703212647867122849383942025334600833080202699203487942381949449554856264946005488081476524293638280607041284549753264393000633933310786375220668029206051252164637164245579625738340196410923608470896111608789346396883047392821814776951414338189921651460387856347798661332957601977894109650126912903421480056610390821736431055016431761398398365069898311233017816363921451811505088408351258378914605968402050907661967585324232030859435334798700108739888430614214930629205161464693402438624549976256342949846055307707809451230934828484613232199662440092379644628006915100285586478139998073127210148968081841899694869547818175303447592782115651385657161949021191559833468776380595409872358801258836999384201038489506803937194761650501024902655916604643608564603393461933302810822580447267433228005413519322756786216467868934921256496658079727373374161493664311364165196545295692726951176309658827110478909646217649386477600755005049088835011159282090004616230473312073390556500987643057169437027060900912683280409537289319015559414078397485423574821542442655079058381013521575659282356040350239177102865214135346877938748186105812148680934966216426032446259830370371737213715851199721580323017656157157124736629235946407217825014071353749688957853501200785495527196682392478706835466955322794204436821831515622806446209527394703360789157170724652220928626356579843295773438277559184629064644731212406571940050473466254387642613450772124816422009001220810014776461557932800184265977607443698352190238447335799618966847598388343593938507753331952449839957479832269660204040221765848992388919832144016141169240995515304758088840280782054091333948389189906427166287260343178943192405114792413307173525098596356829529090601541402597895698655565569911833215456356688543558057143243490339922677061058098126341956553575523931575577071615650981838645722347632539758813205984243848120959018578464167995866456830817005562255608025704236111345507338826781830496486198283639765710370428168349579456429393032208463695082393148596203727753480538154127357354497237488256636313518162522529402441035592153210117927756869049015989262252941173695616099692303777465191259072301398346089563258889445379511898733473178544174794017442217937614057065209567636324378952318130388642054917370226924357755114041426408544898460994597545602192527054449055582167345138303936545928372758899461154969898483972467179574183590770134554384249295907466052959063035078307057998796898710383742039218826593079912750534803196069800291784084737335700650422308453444553833246044752068968166911913593523921921984637236604514449963860357247721162277086932867739674915843907890378288434159929055658234519567772762655451961269857526780406252724554880782663979489079055712597550736067173594036913010128749002228822789846434781158793363783184959294718391411094678147557910655250429964263304130615643165823466692296369546775338823719229432400328179850481259402744674698888890449970577812836232326886134600959901921036146966996564241921393849808105762960791929817298411675624701610287653497218537638636945157874965455517967585793210031735169179503273350552494088136733363661453232190909749494285669211403218765634276093415135076827347979410158492343655490830260869948908802053878398099799813781352065382190897796506287806730437799239432398313242081669039045482832422823901027716973253847631687267400343531327069337896212680711028449726650720903328229311617653635863140282830631195773967723664139884568920186135699681397060662316524535831098072916189977817723200109461674740414135236815379649711306850503781178174990695325333931557572803315792972023116725102527684058646435297630106994665299527094892298255515883783217370352443452104110712385980336630572998318441376306034971141070986976467809550691575843558108417815601408742527861653960431105848006206206689244610995132530007949382960324208996202001036110366370731158023750099949286796718551676890152955675060451621548285485120884194256684138527022075822923910232797106518755283731195585941480092800096606676044536203036088607830210235441986053120901330976736827095690349422738784699312501555183545840140497000497790378414739098513026720862691199935399267060763098435896302290757132844210474640941066389874455140004771809384125376440532564737762135173788781915557559814067434819708368478149434918637571460394472986601874209093824618136411181551385175500533061195193853049110425894090280474769882728434499039418893593825648897878609155757078899265655966957102608545931436168695062812344805305678045037340595982400319389044758317537382700775922632665220938407972169063827433606243641893154191223718306158110220077737187754603630660700436998720065530582162633787114814811987166100753146801275675939809375071964633617728236345509709623144503172599278005561123719432583894672527928323827815923912662301517799750744652317148810113459005378661410246400269423594814730734079988608190568506810072334087191522396236246511295231883707041837208469729998515906727895260842436835792648286602311610706875571321551733386636695340301980418398914750442532687781997199549171779230056981195056551761273680618021626944388930747424948568057665136468630938066805552306069973777619759244395391704244754841675144157469704563118731370893763595135363904332907233912378559528354230101116379238216688793771879215513986619280274883694185411752426854525139791020324838727084952178895962164270244430326352339316574324051653972911343365916005148361942462107363054371570639695342581710337722123235950709047449154860447772373821212237335175842754881688970243008325572106121942499954211367167234271436975517237826637411344970042205681390318736513535971812950925427750945469063520865117454727309044224506116196129267678573239861177466917158037053305458938630174750468376005724689531387941616645361180947579540816615789402827004501799690396552737454508581297293903361973302644790897026390771501088314225984022811113886943616798268451094916254596944625536833740928249785236589784322681231727303085599707357272003349680599007686575770550735157659514767494547762032098761409359381932688225437150706839984714054497848426618359103679987948831678672302817796237780370987419841701609284775590444089319396964118262129891856852218709912895885909916624973925722893147976626985176411963940226762126711386559564846427099973032226474564814024309570618202677674993195229750214640344071766487435038348943655106735576746101822510520207230314217305710229574651436091995981554341625837490724796601430472670875857402326115068477640080938008986022060579744339460261183479763771396100375116947110136280480337954357559721865708855249571352175490448943524883759056013905484625178689801157764145447534875085164430433942955190687163775996223231366305395426727109490056070716365141422673776077057801178735747826390673522758824639666601251784195681173415021521380659578619053965762424942380457165249495228105440723480271490386093057359165627235817043247590149077847139849556766072057455240238851810968200522119386562089635542429296779121916022304911648829183602207676587856389398815497778295282763394634083351244745915024311862890563438443575691525553538689775145798132852570817574995871382005192800823368332106725933805412083691414900236038384181245412842938746186540377842241673149778880297270310078466870712939869131302943460138067849561721916683725206046532210690308102632912124752639064271929967404399223939607581676739632171858738858425284093512827363561955457456392855106358133714572236008965032057183362574948406009044845614624209064942945311410700030656142422824192478281583334498407552478280500600244862755993360316291330962906813314406204743293953436008037137959876648126195091203723154216916868314365762367369088289162564696551562726797822696799990024262877203391170175249027085641559554619156471465922759908048152659557905087356262847899822983326087707158848318498099844697892656102680206391636675296422851424556578273003055296556474675909226666348064301526954157877140810046855719931212439955304684055734339799268367243232167054078463865381291094281527444252813190653358337686707756034920416430385079534094517782238561909959456308475275869444069197448713810206518548627738090711943092020604225779690709055352385731414047861295718633143846953191179060356024150259836138746175628180396308966343103255685258189906849338564402935238858815408660180401599706918179199880331335664100507499765585677907629506682182248017142093063707358294217926271475966640335267706365276680309697325494313598244225047775540748936586454020380641072366105523042172077817001755317620278770712620285180199985671391890455904233368438727869762349779395668712875869554260757189257531086980700813147417530527182987784259106857397268663531930181004912565257755911109375533992083528444436196421656123308670777460062764340074441311788038219821663471765239585061542777075513165452924186214082591333004167388410810549942655197725192528866464278817915489886893543536837158353057241246662924162659416455788397463291166944123049579968049304673963535372051165953580062304568741097558993337447206573044960079659183863241531958463642666079189005411912983326616549077197386594952596572702978060344827567016503563339075387145116409125559191103910450081770059423055719755284022673388696465566090729678708686217748969200128256015319836637860821455300152603703291805453549473371164000965619658816595061459836107254124744479622698347923929925967423394934332168041865023786149659830482011400008775236255295385816561692193558206510251376510753787081363979807691601871912945917457971741813427411507279612979090002908984580978103665733348965140630378850785090065171363146297142135942350382620418913409476927942782885783858731084570415713405203328822953038885122872184555712229988811055094326781417289211863914899098160446095214877414305749305475772686420350609451589665240603471171228932812010019024480171103242260136383826900688091994962688481930814643311397693929625792038959532632041145609197413976188262382399407106520126058520864063968725513284706377112640042881939482017226411887157418532255542658848772217901597116459988951961806877879084842689764840401956441082777790571055618374062086376368904259319657747573003868992392556564325621793806612816588939875335683127283988761599920363844867534450046557626835199346754381187489376039642031102924629873474988778712388090089840525430270543844336566276250693477176578017128379681575868671493533422489603372233396624597478819502974585637397872831093239897363414137612327455250525258644667831349754710588107417911776937947530962832283870133683782770482037672888393801786877017665918825291940141090688000604518032573248985752181520461385918636498353560685301845469564573107333374896377051342922369660471622158472315019033059856308834762233556645481508822620268603310076979773821225836615919568232664354635396307203848845513069583465569366274534026048293332817736526906124770407592531999699443155944338095878836635173933659656085959638848670650127213616872793086981553785437151631380037946727702726433495542707249027456598030782308471849267350867764824330892810510442568188511776636042933542556464427796865257205780213751355107660051521285487079658376514758916891626200980434067031053250793005313868131121387045342301739940527084072672097904192983190071700784525149307043163971231678479200609798778490298077080356806916358490136859291958651530299953129366470489589567022422876821919128322160400777287008661093680293923850430775699444623823002948194997738266332944523195990013474180188087428010531738673659811585925162502002006351770293340861770706043510736907324123601003921611862930454711960161610678740454249512997971320173915989359658860937987100109943530727556050970788377793594633381075819529743317758241111430184523715676327781756685588883498197116404349367427085995433760876855422513910126559698819461444725406686687830310583677865116058451398240644450660373213153037649206834327983529833329495235948933623803093269900113929111947620390394532457547885265604913667313333697765357736224634502561964836337446738160250273312189623070691455921792219557988714918040065782235514576135846351302976500352948406592478177449187448368198913693582389809933647818567437506642617172112224648837919632057800751743428923691293444614122799621914755589309569008846523790627489621966425697327932413305188943442719033057603103763847687870774081391512117692500716066174575122351277646683529980822467910647981821169847518659248943326971868973695522416636072239679928176628951108228945719313159219991718172840649417967715264050629309741086243077001056990874437836864740981077651383834793266563424322598973556954290947977610171416596542968721668420405178303476782152446039127560192878259492871588020470354076514038908479813097286888864554285109375796334007219777436754779312269963003418024003240433542539416614594805231426839367766077861174450448937059169860554910474919162885266307300657730508314499091984858456652336442767681295428772583072033150437832667179031004439239885710115232300843178462072395316590166652149335430951926698887525993833181852969178420764640362188779662364319816784989499545285457787437342257532750933162849030287604981264117972246547786134986058080645986191225783617019127635100715808678953979358617966883990222686346384272884382079623498471307054015938784017911929321596148138740479660946807918290285964491131347070810837833392654476266361875415839224757637047858758195056889069984349059136031892114860731524780573377552532689454890722257218803589548634108107052753511484246674433330129906787805935476078429293197682811514382607849065151093797394101005127340571543246290824741217123846484077951774562098477160228730493370259186419211691692595433109384703106136342431883530584383107684546636319853368935867632595901074009713290892824951552734743354194820011998231700283647692113209697794819778690138861106687964625499808635557119351441547829954880091946762127205086307934544367485459468278553031806533446194566789281135990868295152888051029737379997036797614794630222428701423088877990003121046108061985307929131973684137267394473713847043482808628184581688833253210235183738702663362007971227038954358937437405623159019457255307816496812969040270610256609942218506443424961621256984377976631658325547020114483085547195546770399585667110012078948789820422385426148775929628995501706748480047137077973432669920555440976904278291744898302788625518446846451339198184831070190945407455053156813496490708239590206672089596161819460754144641835571235986164987643251468859930761728107514940295775305164324952616446060424460536834629106591082730902582478301149919053663669499834381545698567032177238655763343339057176198682369066904411213229714839615832382304041715177579689229182637630917830958282950586525646400928747052216042914982622344959577980221301024563790372721979206292894857936280665486156152911798774366930388434941843574367855439368756251140681045741563499711982319814235849174228929174991746782584427178864727744845981433241941054756451855723263528290005351364081444820004686867915506918498525129228100145098864125548078232736484381762444017205066388265043735539398534697649599579084774817756174458545312655743665574470026354006651516340553092237522813759942138454130735776289202224308604426416093501278627148482776214687683132989768489609158881305352107797958817584639370008777271889431952515354391267857010093646194037297375352743396054391176823190504617049693713312184174105342111600413970031127944882336718006162005929928014014552590958966516930295152997684641482126334694520536646473888459033216918900893605114604078257335236283506755150418605690454074876252805403887290125963136404097288713109266119066741262281235583056409582570860042293984233265520576279774474150156507436467824408091065504059782882765287069364726059391232507946566568792921432597618374811022407777080892282470299676159793830876185655101921534408697274160363476401087324381054599328115686590163475169752652538530728169003071857814916900446805992659610222800453146732616929268854281010455796231723180165118082350138729943687316468189116674500477163621942149051729690221260080330064506801599210965453991297460376629253899622529785399189827650497974418900095596132860960800514277208118052441909611878798897019127421835437414191872890674038677544031851764403657303920417086389159912103516881459434009505210718090845097333514409861266975583052984584347413727929813879224500182610647170673860415116982047051439428933795746889825346117090647453912309035989424613937270502349031319956480268800407468803840675818035217896083742064119486529768970968667024892912087385340819770810287901275456292715729836545404354537367581170998314263414490345729281666912558194784006104490145797074066425050135781736560588287922886290473524109080510199554732715972182671020454642953106909487181820519417305286880432232666806828856545802853332688494458346528939569132832423586276203007408501155865513998034252275389093638607283152013482196656160533862196269416273301961611642929529697293625066888753501744911510654953349922781078453639034249060791299063723452192176251295959058684338083694550454302250562584249839967854228195172883057369932715848616442447291942896957018435622338092564763146005323830489139826148981406414244572490611153935397913361364823648031257405053869070236727731453765847631644306234775210768781491207033717908486909287453428983769485683300064393250528514868091924532714046042186195330197136983025836643322243644846989574716024955627955462801249356767302288397892438793710884662603842134772897656307160876443747532643053901306827862014097168955731940236863865846260993890983531579526984054491656513939976288143974425991789040586496339924219276813302731120526749744161507611279551104845224590616824606642206392380797562284375166566193486162975344078811445194556189662060104636292600527368586546581777956006920301016973389583883383882001009587018662312127902086666489826243814030703629168473892165104901914054491950251673147818622422586301326409590652587349932660665259488286222753470875614977853382167184858976718652584549248279882405723846070690613522887360012691221247064379911451648554022188360918448000594848613197798060735812095367351101139856278769481168354217411047207527117374042762270134405738088689980991321489738305384762225069903693315877704980076638647701820050498548527887823441415556154665897099739223176284450671232480770703421159707108518796701867978635953772148862611129419333940640113789830416735423688068399585020759823563428292563539335137966188067580425289822247581137565033678803889519340806571700553004676107747659221857139783835702377509048324730412082686100302512174890589861976629880977469672511939921490331844058109835284310838010366866545010253041215749958837697893822554954839597304337533729597819092747342691606032829757640479533355716972038799182921552181117767372769852797592523952396310124567071112303298547760628700501064217537925552723292757113668254257889867106738723088787625643703107239171937225563426415003632920789832545712640663849903609380030174632706012393780024760946089356137553151756884154781614124039867386249907909901739725759267716657788441925701672024060882901762051216155594939494690689121497897478026521827452497348910122492951034960153813494229889482958426142469227959479153090503449330491346755755837993633400884465330432800913859579175267392998146464586038843912652874751822457138851280211055659600183083202204910667450457899076271266135351132274469039629960935046108112258515168293925894642709156054163734978695691062152463568793298869572123670581289440509638105316227642951280971945685840374481142150384900358092330399228398512212176601691352879772737713207104293828139428319224827834291221053936111626369332530717474479836767776243410258418901437931901199377704487368514548917219515685183508898686432565698863057560999544635799446114517853025022723699003929831248403727212690029417165597795087337927748771166667409669532889654678085804225265307893120541648921125609447301833366036957245202877526856777889196877259242222015683160623014893917101925682586763641025845226321859114462380036455108250683580447525709235983798274004512116331012520560762700498808323458653020878710098747236929985658648606996339809575584508470782879242123663585186717689442675130688487063858601778783566218999809303731666516038100561423143401543047370519988712465419310192554617202848251566792554564303234522839473331905767534977863649559125100547756602543855409975692222288791587676720190894955951170471892371065800182504892892848597752229220655100977488966037194561863485191204988162647567805459607562864247741296792744312840445795799834651492474051304827040166925136464297298864114187072749003820722619235804798071634831374211449224975829917828359619452367552155695231531565068845956434858645751409932266110063725496855433186971666898730911974477871767648256514677425394821295509449224519598249513107818258614320608784185449544279374247360866714537742545882768846268465617381473776440836392182971801217482536652357539708610609691614896161260398802300392146320004316377533352383897642099416024007768869973617241770680855112517513305204484754349977495498813629484680926366085657308914600213177543396331415211611450264783502184501018090017430375127180519603250609425169902056537461397946305788844901106343714001786106907133100222672696797114985694863888935621428115702261515721842606513126911521373755429089627566964623016442360247936699998053322220085430091001879292150000696729243934986790854568087216659847699022550033648074045146614448255554945794355514133991123198039927701345800879200833856914645721639741029598000677715536414398620722079950619764767335182047842675429408254167648675857197363428163235225935769694224551459799466491739652195077300065393295410871508260656099505044559410035608454794668490621442467846951791706137395778202548953764489128527043187315180120788157308444341851506297345116854048024653040530035115502112515444052437404349512754639925073932496003579095234653802086308300222655208506071188203513460319178707183586692802069111733934050961607918408559520888638506154277807073980177194720320421975724433025725172619256773426643333395031913185243672616395394628609579818152910155549161210699829945427474837532070256380624477987093067286635295971562258855653151771561760700724534597068443051462786546069610505274683420481734804074860337523624225741725278894543128539775719622872180594305664011409379315864938661417887980044647097662064796564829482911608332793241957075363660397473050697616970592257853768925830567477421547801791404678339080476619376389082340185337960916032379634593553086073480797545205158672552216009818672036420024697539873728668015430854994816671006920776342778005222951778569617248848870108407073792012197986839892738731242480545429389230124372210071300433762704294284374668197126285117815720689002193377044396296560779059218738707043634264205713754762496191656249525969092689306449397682836324047068502115967603310764197907183171607561515411342379093954939112927892080829648081538900286892070008082693127815543096037887677281476913536084972696373405075663620204344060936398278067849387073931397431890103974248143667796408717432719378963766320520991133376177451402016733091669333604249801413580517511049916096781833549590926481261169782875960613084277310254603522996187313792424647270597213506576784960849856739408071258058298538018032947209246665151165724504520945143968062505698706162969305406308251460509523668766867922982390839455185788481188595709937106512749497303966267214392140243531534897850940977084951260286707701217861617634716339343147421386169835128361956493430821864926253860194184745900999127753632463821131277692146754744215932076744601172075506966588975379206203654454971145733146347227089590510258911796813529759166559444666163668715862706699430695805443434271973326905898824717888588037231123681807404617273749866672276912864329650759452875478505828424397025799334436401690547539712166785824185704124280420561659771872025026592755837203764054629686276898569568459181292283238610894066990763515588634012990327940057709448248759736647238052316112390382611495038339065291112090482023115752302773242210865261287490915661854855881265671731883933193859314417098280081379699068775262606947669060212140327531248082196261663271542613053376124255309690769343056187825250110127434681537930211706579433539072784134961660877984682639038726504454452972671582704287540712707720449794615080039411443861037311271771704795557161393562560129037417616789891184627967440207110558586456279323430035057748728120192687046739944428401993612831793627527567105323002712068071992324813238148180053328478865316717547863124165741321460042297822265657955862147485151452841877191279160241734646499994341319157998817521776129467454763867231488090554265748180421234240720296280731009961999012096780742409542894983881248548662790717490026554144827926299612311454583179795569179544810234884607866489034967300851847410597896536473026014578647861226155962707908581531813723183353669915426565893729373744566131261889131930601311220403287458566227598075482061259339530251726516851072648013827479615127341766991231201543502299194120242386879652524008379892096287086058190556060952497495071448869229057444922507933916894974938726976114600855571954186873662913212680223250828205213977680062375059172363224090810226908607509840054462565414590505657240333530331303843116809356834067531685414397671815461316450704011998648303190896862140560291508812271204557182096908861087517643064152898676635156477709517252279080562414830903890493668266039500212904350657579265547947170398821551129174530085418119204200257538151570492744674877741455153870501509546654104647340339060907764771240836320731988065429440958747771206160032352878704160851712999345267884780933891304513637464062534261555467823243023091526609693761692407653597565662444317036975348200823604442852121290267628907803900940519111686679663483408601654622476205143148653368577106523132132083944751391182460207834269661904203865476493481759128245328879398673752864412244128591396359873770800283205968690485223336163583854088214743922522192643439771051752693740898132499792130151232629262785255655719601315157434052339152064295128502956677890171506004076949551499526661626479966235447127300587329074223624820134694335314397704465367367661214697290155273630012867827889148827658013483866732241210451458743502710337224073175871123481257081220223385060613639137766867442340060616208744356616587462803570777029359849878641512710189840021561744245964769102703010064102366294937801922539105355327795174187053974953641055378305048727932173101202892827232652866853031585530730064082249165798054942999548602932656101662066643140833912185304396087900329868107014672986982926259725839768120698988525052471089733485678855327109090776517627904723771088847863681373212263115366232838681831806680368638962748150144358062298338413920435110384337242170606994747905476370292363254602796393134853175564895818097147224979605665803037326551395538928394847084740265096717590250142001071376400496847003244751491481549418754827716418189874588480851574087175567243022407051329721791361382944170883869735402999316345167796439450376688658402550166995706084727571065349226859158527914900679664179810505947231639847498890725386156478190792197996710663677964425374446988731051145617433076142596943221132126569669942974883551105930958674381912430706830010531906607912987650021293293552860815853598668308186664256306636248226810580762032236117756262557210710617652604040472797924243643034389156424583992233871622374497656877464918398519939573364270935028705239043735921858905791597206248604891377797983647648474170033211885673482202428966917935561737451106888135204769111567276439800418074300066747062478817744667064313427835732653871778582668238843053270762952305441049870410486887607460015540187608265872446595819119887702385156521958856236353156276201663723912420096442748490542263967783224926290939588500827288925084141303553764531684540961447400726278387964230981154556450214065112843328466361993707932775442903430589387118807530178661360599878843395371862671901538102517821547009699024683342144462859260482316049298193644127958537489186459667643866622748187922376064241592727659367776571240454134913489806944113250207255340253142593670849302687819381417043135629680218590961808621296756141404849860908199857010805759836811614206357899598021617877648182353298642898310680990367595970426290120625189743487353898714397196865354534803255037335186076112011121111515176751743872847484201300713387903530755572871151135746885586617507846572492601645234813092767907342202856141661487562195737400209679547825770256660326408917677778100796084668394310713296903652316124051703694686101779024116093193496595094610051422138127708466541245110583880800402036639650466954922985908079000105388644561922192950992973324460443699793252366110640123414963968155690568034194512426384558678098626319720799956525571296397869335316917743363841527164281090218349882000283726244815173684124711649195323255506869211207574238780613813491793525301700802875989511486811950905866440111734275164070790943877972721380654580582165704908532519504764115579805369531222801100705215234615339007681483982461375284948624724469184700337301673728273723143868307322551207903408446404275975835092718040981300580521509614637508685734262780863530619686968463482744608094985355579920414029403623424334172193370929228075173571436351817318634699261689089261028141648466568976380821860143085707735203285500830556645518976379118925533165738095362848836968571067374848001033632753473495257599991170270919974245408555164329773758997323784306553521078975254232013331440466045870062697054710357445466305716530139046073177444526711940811341205280554106839689889999982352005769903230328273329646770783605669782173254696225301357719866878836518747584735991537669870071378992188261207022364362542397601684377042742189389160424998897552007592689639923127218759266207489824549867521195713620842474147792276300984140036184241347748293477331834080976795733318360897688794507505157169277171578410060646622644482773063557390719422901665755319102801268248401117507036953934570761760571485283673238202692741686416892661858254342159577660936300897644228390316431438254411424942633412526524512425378485466661857135447026429153195234324046413645665231441435109479329881886579195148365994739214728947889746876528571937128061793289422829129199778051794973555889443861936527262649598799951046211003254034548513954461773170333471836471905017822178430865116514509783954720154219880015576585233360937969452133543847942336889045319778849326967537691937893807569142169838849769345650880140203270994124171977113581265192949571181360159553827652203914592676698039819425981523727743628185112763350991241822993324112064640303876540598001887522655434589365548275663380592356491812397137552335440409914834902097925023485548242958403704783388759740194546124191729379895255818284614923799838268859868266559358431205566909918266631909180385579269067758856763676006656102468641589542929388686548914806195262168417514770957887716076482558690890421109180696471436359743845308583974166254353347382252305629898080455118672103025033004200570127086557173491376896094236239289560696685434761121399808203151072567525466738198422218016842497917054082486114885864638227342019605672204949724122369794090882061524571619554368355300192297845697089084622292277372419773684554855791981211386082059204272787273209945933259546535211228583955652276771742484411304251787375280325174891199741048562494315406743517108267747869118230964680737950832473039030343999627700552843075714024766163281766352959257614813918033935122382395759437638283789812292010205882844558257581440319673358907886777547595487428991867290452253786409948789621774772629677991178260611032525270717111836069386890436745345024551843323475543400604385382391478577321202865349735179700208082268698652187159146579510841721187056952519377919310797155359381805137873064183873415379479546878305908937234076117984299560625848810814487986604516871717078380088174523773496669506460172017748466352095980998607323389351503348157338190818536183912828261145742377665919106960694283965144639438349121553838491482552339211054926495347930057127393992614896335300298626563884458544328419586905388424845277986195814545515129126846563459638324883847947678249970293236109940242757495927045325136331881795517452285712972457859504550850022229624179280299690507976795426284795045857571817046065201318412037213797375503152287886438625715024224184706477377425909851316451475881972856646451363446780105736954056999814246765257390207785766616589799509379787240229302217975733270132236694389634437281488357533052349751047375201806902706755819385064932292959085806706412749608138522740053502566759834022073899439742365986366342342552024291328680633842095740118214810368897418917572008188430780880355025745437992003124566812473035247763647600636729194533503585105754881443242830765631503720593648434385278485734050580956955197977061012591029600057485787079088164917551736565898821144997127055127003522913715795687447393110868394418373557154679524259316655132674564233346350069346062707048796268017036539027349874319509078073824326349039667521816073764543904074354459663310658995804174808213144250235594189963627852772418357758254766353016285602285406890074828216730815706930264760164402209972075267702207283268133618995534996714638431909276647518708844043346733110001109052833940202317109085319121694347398632661033126732271598254351468898902146044166387369991745339490442281056759834079994645055664884597039171494239753037958572422803450951192649656878226143320086779513860580194683676464571559647059007815388176115403832426195310656287740489155439724426415392217070070689870115505289193490932382458533694861231129923769762763072323708320927197507932330618920547520592607687014779717566300803308495337244332453353035359497988449224301966016111390604792306685107228142501327012830630801948014354184630748765954216024688958699501935948822080858537775051586339642502144251566228832056736340972538477425252730527222852677063632812938067127521296952706722594179671892583720437059470846760991490881681568538211456552355798094533246204203328454215527948524839962018561560101151289303001487046185493171153060972643831296850377557153209493787481886584506543643596291773752693141789632180478774443278544000135497799597159061012625699909337690067877003119412124419911106138537278619667825824302797886830950086901526964493545631653781781757955026281627521097610908587461702779971466169239958076565776887421467147515188571773208734011795215539702859082890134145627219283108682686472656595791181556933199323641268513969235147563554883140194773440760664259097138133858467657293538129535774894437642134502307211807236016394479309736370770924342927057561573150952797100277519757748081029019296764604202282984929048005310693000695911395946654181245978152593503012164469664652791812765232262510146563979098295846400863025812642139168562734318414192410997970082408037385268132778933426812651595480001737442977359023781517985446766937437692580439838574107433473034890155996840711649923075409399965023085230307357292484639081999974832121607801209840731039428566655614931376630553535616932596059236153683844583687148738725022704840410997753616905379668442031162402156367537439330846699587886689138305839535269469065755736876676921831521921973711562154349491938723701302216414632725799447225692548421437314726034577472089509494418213696655428148076437482917453788687834408175714618827648024670569431610764814487508887397264940123939623926390267963420152887664928737596752056686924199416299339015587873244413100691118651907026291582917161543066746342690960777461513649645315431345088280748298655018553867805770680273159426806444589707747645907755059174015903254144964491219753420205602391456869390202525983722736664368312765793114417620913780605396777124418168048419763453076072424608137382025793269425278099227423765229620051668224557642844717956875331693624754159620906967658997732639239543764798065688882459239146242745920832472212014609245901926531679625926430240727485495277774255045078034908767360179969811817447644535223155469235575641692693303530290407149251003420207480586156839282417683960978146069293674697830444431881759606145800260810230931430998958904345165323784864553290249559098831974120216541262509694226521271766381142594332559128485399053532248435634322140898298592323708963157241573076509401508594391335443689012165748843534893706497222504057632560879791482508220208431542524671412854845306553200912429695594740741214932965513795487032736408223737629382361961525487371560263966100500087046536212854625921651392211385800276347137486218350563030292511824414601236081450114519331103611647950579713122724164215579149252113977165141241136491836435099381520924700689675047019173884875620521543594790757182697675475332658769077217629282800096523931924528710158608359135548562699682760961821791932772751223741382013903703165454358984052484663180628371478601391429887068456197979963937272591180782808288689191794185449248622800302740107086626530787299963098266205676887676207147286104052576466359463880037379153966446008823180109079052181382439079440462947065262438273872759712938844504902811032969132132345146609209007002760799421575842066454290011074339027750329676421344659236668808716983543530961085956503188950709030978569442797505495237374001482973578661898855462591611622511582546570540710620110108662201669443568636597557022095759886084792618524877624189001637358254919312506468763842260183679244784336405679016115527399177614617246488392185722153453676118964857024505538441082900199127270203254853150849330250049690047478566710254695096741591204225150549292935242040238817935010563234489318469260650368239424322978414685857167551654888136391162886303392519874041401990992098756776664860882069151291506556430816228877251652799427030551200016769118456065229408050900680105258106800955619320616862028902027325999486917005302453389786467590293026500708309600287496992643072487275770167929468082719500684024976060231239344368424670954879146650110648642463799284501046217778954331589722816344253021530313431118640446317308683421421298731225164671390382882421655134281614381957661046279698137598232740319342102425803372333460042862654098370148938339220031858568221900393583220742912799301397834942814805271431743174508907013449141466309825605144329905915843364378122573506913186970305143734719836963068487753886973781786678722392360942785449065136954729022924890761531301015439726735955263755895400175270368966742184223091338676434973273301851173566514952392801578310160504009660477100061579866504062799911942818505316779345848815367151635213860177515744245620161491456218773842126159307188797644349071549791743769212031847179816257825727098371862325632591979902663696509179186205179921099027520863362883853747777710258887930239260536729267293460932725873982009834360201671905844269341196953645862003230410765186007119601566445175032409253462302684240063822165432441706308337925774895252763212929475723827780215876215917567572947628306535452746408343693958626658295602117370804904159216691787658849719062489806470360093883181468177740901072319890938442873089527960654280498308960027409281109548441510308468328095324962897147628228265360986351672696984142799700071968955149211094403019141105050686748153978620703860511182276929776462406784601215340540795872346231574482691373081929102524692869402192445516729840372025921391536552025027827394217853110422756860329237300928825859608333369815909960925479483224689181515032012545924116840001609665634688272298794671670972834549856354642045817918065734069374105652790042841448397312956441224494926155208431147184815964106473243548145630208440811659228186110315909938917994183403987591379846155050387709361552775397552209853376951468474205906117276727233453626065557691851598044725044850530686972118038678633583477712102206449397286158728316039418996168340825511991103848016081020250154494253838255949207810548665717875645074237503325582473128098404392034787444519164087799504720705809487915808408808362086218890120566862809179324189740696854208000714582924569815749400183745288766744955874707571433275586978170113964194745619335751127196174068312308880850877014690463061109972296809633708827884941806721689433218658861070969164901228940962860825596505217908668431836434745503537885472275129206222982446434748753737527523736398377503458922287373487193106624257232338056095109253585827775329950796573814100984121729633930266684684052809550299956387939331411169281575855039084402738116213210270569420695280870360361224496378309213978177687870627569543426742587186189201488704030053197019777956936981319118593890104118233696023745800382456129348497799233418694126242194101234185774894194471760566428393144086810063877482375133810842577061099424239502556242287846887213053500012536242522728768903039521412913509734460021041500788485555218896237964470086283444989773564603214999223118225970994340996569267672707730205926781494188694789413385886476652762035702361116743585829148839719769584694145761209881248511607826727031335162144894496704777866471838940234972049906900705726805159934520269008768035857710235404121930670747254452700287810183568603161326688253772699229499496270547533612145216071322572831942953823839887483842600562933193798098096013529049502350127264655378563713006854622955570616366693407790290217055130940800499009742738908869348318993866684358876460625972502264611559005070857010987299256178336472582884138270905939352932616185717400537051983217323617057137208787346915007936589984187796865639445915780494657779730746310907415871291280654596421809980007245263736250630078985137520021545607972204493439938878224679044175643163284209831323877592286380877969260521282612333242351153334515705196174931709262771640183494851741624239145716128086339450252731793999906026028168162908733670854726987823522202264969932844360534084835051339058757396694426742182223415377335710483613376033101332855664055109491262229333387275005543381399522386264196871199190739072523585763374922370463647723195210446217081373601192631743391638297473858224089186144149228257390195087679531497799378586260978628873700770781362191457944151045918129109206802136873724573679030108661273016177938211455434494660339068511093764845735334982145710370156694341368433794447840542917879148535591591784751044494691936668223312151416938836386063979855214226412655405845131283736758376979837578846193350410447245876426738804647692142467246438089296884528969723617353205451377178312909133980931926051269791273037425542540200949745766942555658003948839897845197915906318358316248650457717135826886132235521038679316628870467690503972626216665041005511919581485941952370739547520698849453791870641788525302312095050494420216700181610057741869064581813862366241935592504810781893391885541277384509417088865067798752119538411337029594137288522051330324595892480166595545532535389056142785797028900758433557971867009615402109838888157453373808801907545720738620604577203802163684652409121142832145021243806501039467794599222094772977982241131282660999605544186175400065284423176542179270867060277235294092857981687098508048424484451402883283063717913633601153097035688225407540703937409109423775247975420569153780924167661499956137688300032891831667172146012454889142369393669867972421528266502243496703611888323291317584915143873319162757986151246169892396106125359615634723888534669800297163738379751728547524987280310290142833582046477006998951030545608614402705516826695775163761366267890846014425628577448078008693989385562693242443786174271400576947270135280826535585771656793880059576878054550451266930844679582386337903286370925001677400735673999511737317299513332567318434537298636435264371157469611851491082344202799604720894790761301574325112298452194579505103443008452933307729170945200789903100273151693847776511431078060586231384189691636411240932402176306691058570764496449942696562749617280696763187965368593235113767216088925366272911614738571405226101521829530643850126067532413689948876424863312572173424522031211987597591234900440020245958107554574651226196426774946446918949833738162723691162339077816648206843425837661851279262154693730917680640242479215916028680739573086910001518229210736577615374310092846869540143864103878164062514134598027320125425581184887739613679618270598645003849007113597255493206773634509575617308183913822801093398848203862891885860017633644425503500051356022990362330865701133558541412817577129112849006848845996466312605717349978685748142170191679421842257340889434117406577469779277914388458862329486271670734866461996632370849407148275060722815550084881756813661665662901396674892880750203401171348860575128291733044675334382242040017578905590039001030685029406847259885946961647409255279324612640929343123292888331083082575433936898577329993293150053835678144268758919191431200302264234087989141342503777582636861655466448394054078544975525358510734827236504327917868282933982541123694236745742594096721245467166197479172718909584097430880141673458239110864675070783788120062194848137308429047331036871888373089014003631018250023818473243121957653899945976796237554467305112116216678970231571798852405177821384476691347620288043774273271781889627469601339794948948495305105180616493084527201934233600844347616684998544564376269059819913006620626411671730288080231618938702948029722813099981558463548625294355389262437389911061816823937509082651454296238689632250155152708428850639057103992132551856434768538908739198896289037058399199774996248443088974172025563876665097568587130945843147269040028096234703012972798580258777890030615803185632706241048463110815916223586416085162438512350051125394051661431304388744562033575393902766724013538375945691819502051528781956091985360130755938936377526088626556938090943534747417290619724979985925867297527093440740911719530913860946690147353785795582885400041775850816605324788502334470526477599541227432015161078853726451696760208342646109845799722796747154128782888881188444661908736728885121337269970230885971732183566522689478342886607163270969099849829496028490741561840073400758715494799367361300749882438890033837755159547978330703433045826427749082280477389042015566607512148921691684210978286298116066758269911904819354291034822274169705588685227482178650398256572167946752889924095067073008873477214010327759301325697131194336345397777532451720715650124912608296023991626235405031237672123529140892966093856671140800199476337898086664687604870709114029275749589748941407359512533677429396236799587600690096097723943976677459315058609892445840172186853420980644625967407246296636095785782273523124481059754873048043530084693832731786219145662991399631616197538290030775492251714552193599806076322523015475653647437016531338870273584020612489394977971408410060475149714734477544699191134822957205389654591836870946608092858371539508735256832110195109141946860683669888116027563779966155594284093345044891793332220426540335775349477855828922288780284247091286202713159495622189473692059546673439184839366093834994072035842364452167303978727237791843939735506205984438467356097457037438462844240685290064610980025737834538172878096531435981163671975457000820459460783752360169120906417161879213493069168548843108961241168022947070976714290007442942982653465569367076197412507615236352282308889032761475880762178176935911187411906080289193655316542541042044309182621041582234460359045330644646570077340207794362374329537385435351554211249214998702218274722564986124480309649815759859260687485529994090521989404047994432379533960265352552835687986166694145342598715326629636221270126457538411524808906990369593560579116292911854212267726875033171821573267907077858031383780234158931967602538298810686835806496431985776114885247113667981213761463549792975521228123966667604533920372039490071075463527932443455726420260643968517891412159404260183895608283598870705358093097682039578160768438657576904310221605332544081958221462970788232981770874466442597692084219684345616578111677898673732599120169779140235620062919166055710526035905153260088843907630310860474248188675354851584561697002142483077206405097420137387838031920216784932931982533577271884339029138625603994153546316154429667737030980265351048423274282981398056202960141405727349484730481558963197235655762468799053561405986914983096002524835963569564922526891005921780686382147585842769567339245678951286776398018731512094820876369545261956047510746880313159902070941498687992267627481169186437019811985738542528073655871868178960491572884661883428478259349107349910398287075299557705389735873377944772836738196437995980069401893658651497324888712535559891495992452940062498070974819646365701045639070045906175667024868576772450105545076332251417746238013894491167747597693102424941177148700297882311589453498578970628964241155918599271721210610885324305239606943746587372182202047647305961771964208264037179173284609763192293523052655545101640967424927652921711143277869514730154889281841473906142124501094884853116592403729920413975343190075795321823088864082559311755186822563647357969643922082694454388968602075951113775609452029533504318844078189757105718188620038796027650069310240325863812915030268592110296118514963219300898368757355085165200283178690888563916077976490964670931100169459794185416088495394556534968018663827654519277076625489106343512369994321643002191889218183409657506247418700014770682524785881415795760579420530835827462204021354215163171271361350061574331870231422540734076038187834223559165016524436260346242569299630126943462877052473600583639718304558533003842282732929591924366898883584190138001075309078292637137162389026545991322587597647172715484973523404992376619097264116678727455043672618164924695443024453573500889298280418017343208507377068754626330740781565473039440957549872934020103969932397807130987708603124661834162170898147017334446881387797491006179975914375478851682313994823355342061469473772488804812886990051445998071214630758742866584185193984940737249631784284239579258782691877456917967540638140041094875408156929951112048892011223445954492745455548700816717325764085191827675544547707792008881811466791008022095110198223587536246532817460809702661925995781302930786052689215046727889768495565147105564848925453669968152607861101506175518788845119527508465596081309696907069013098522330988044869576513275355097057796752258969044140556567347991107830153751636545575139975032855251167879407366826529906881548325358442922246137861588025315126812120464895320478812341619683490524885776147596115189383389971738278507236929838994796374206202584302920616375541043543881837748584981997883330714553763662325865498063777393182454581764812059414447697641817801847533278975680668397891418564328028326719995291721042076987023835688776059103366263753639555492899886892575733985676525031080870610538718366914977238717094415373187957149053986494411567875419442869793512426259477488873982699179940995542801021750106641223579179441421026345499554958989895246663669562547730428301478855289603843013974477019813900561735449665397166917100135926184985936427732975570785012442695010596769482046743990859807574095767743049996423855518391818775195938009730341338004578810352912923716699786127342781496471249351071619682410034267766520082454018462315375316852343483705528238434389416978840689176524185873272701744465001466805380704591086674899393250093518685579255235465418837972817687157580975000361224275288478569829024125663961263175027135567199688446595423227434019416535194204164166914241347950611571635997378196160001862608073940979545833708092788382603543805135484540229974509322076558337751972625479727730224177686362698190103563294347886432372716143204124488896292257540754105903096521762671817549637923100373226529281513196122817156550414825579681731263538117557587690580236413102523809118597369969480308338417566574111763319740861454852233800379912771826939768930202161759772381766764346576119749951234845705989777798838153446414245090239187064051189462623238392861116499997049649459756542004544812571543301706300269970890714684685449076876445307482081569688442013524406914122556423825616275131385592827803658717624715966389762853339638149752380722531743460218945722002416681172781538231611094452105002471160599583877673447411303712912308448802454714670458215549523566385250671861096039400952012316541534215548040423695038102987952596644696690243935861137512428328996666977720267941875752978429444520214599906331903047315766130222877341929190227874979214949844858072876879235585942578719972803902444765425945016909721815085857081932704518406194074255630674505988781852302635537331952763983383351109892364765882285058263390791901115783113661181980986398770059278672224819796815104787769378111742032883052810543558395370480084528918216038821004725403089601291531622621076066755437922065950084666024310344363746506778401430592444037703417710547945451065125670478912782145140990674530854316360275129415331926286936478571363788204094549378914860163421943979256596572385440896642146798186295759237771538958413571265140220147706946291120431915850727696169481964855365816036857861840161389860142629862395579368835056938288559417233333865823179383943661738082551125052997231854026757335049419364603979816642724008947470718106167136483377472590834505223700417843017932476701338136175505824568885855216118314777576377027820223188923880144556326419996970072777134299796711788386095847255888014874511192650020752665011847425790485391206285643767586206066841922498326628669604908184563706672293615326948942507180695784831721011806049479604140329519925476195968261926376409532846204829372880358279009916881601887493027173247314007680996230229538591041724860813155534832293866316476967075770155192423794059880606371616929946715311181044143143543238338761076637584762365097402844271182979976509052109780629375095882150261797180657098016142200362053257265996019483048069486664420541217661458411135655394393942418729862316947982676164901718529382108721906333647362357717853156448953978647300493361113088687913083799420051265125564006050478644864541612500943762891406151247338839380275015874525890096823523858342073440396580757095840935786326726171934826340548049428365863436188699733824703507275673516755877002347791106687821929130879699946282213082412805022900451142738453702799646488475675256035928618933499817334188056022855483120770186846920020856188561535746574102235925975812080309889691238503764901996409860269507787310421069987331274219592970861939322314140106012989110880475871684770224036746839554908567204577274087336881591667068496753462335819839652908321178626421437645860312819060498700712098193231402987352183915374180323986397015608072421489781573093977860597677943060277790415976111547656791721768908864796574339970883970533333557666879325442285859241016712886465178537947472466005899928097895151729198406827056407947809735905599478069094530715252031913662457082494503210215185889381960870555954736087377850229576223316562508555201498130515405734055649147608232388595591919477787778000385963765134744873914322321685068084551532896671135356407088155178179833539000600070538590655889708179823651356326071568154687704677351550543732396866513713736962569545048460469014240437361933800467765462690250327030752849656573685587289827062473680729052130831462350072174880835148512437023553039128763432000024648841965672362776771368141792842548600645884182596228794663865519270193696345732065131002818760498742955796562135684178576975051375399142876953799947433681931459751114914223150016859779717184203744482683564782890530868760594941950321090069289774888712297576873624051021422329667287541405748702742826252773822676407196965378867273273973121220408762537988975662818402546522990413590149921255016562452973999704676882545543658272831876482308729582759959613280670879929579802369527338165978179892824574207233808370081991059732747331529214185224968426229832011909628040185902949438488024504428654383657424806449531553905975250861759724677228157642755796806381270793839058306999876149860812349772209789669733065102226174836118019073316038485139443650944804234556016441296655701273695970356751670269212001846343139854264311771483940075800202894275170123947991946941897826853960391045752038440915299141110534147002439502335876382674838514141032504577232723704166605624868187148600408474330701044505701412896386246817818739766784662925352902316454652531080287282990196941973579942359704275818509895786317656396085927679481639844339363325944511328677408956706895290872964234189860864198463561063537559823612589464294004689436483292231945323546954744336755800176649255183260967432484776812541462048286473409760075420571849995381432331734236665215982075433105496169330001388240320933095253995545851726419241071171824573332991429955283975372307627740731478973085461568733542918087300628999052713066555389036004982941163746929028006861971071045944125665454858080633026464375501730869057488311193190529278149507247778478146507442206582924675049262262476644972654500537622631054219382609073329903771007513475411399389073989662810208565854196971836090179255068094297331386422942996282374114068159112041169731680395120868393080288842669806202570798758831304544614083489897174685806026100297483932861684605896702149065887372930017155994307792843872659134803561568653817735289255489281737716361019181630169797549870952679156642270021343340559403597849411733799138107129106252187203661840445894167229443334412227204839084321955049123067646207116392178914970064313445716728864734153254290061077539737826216441711157403635803812318443912199187831627305596821548245640474426665150536901970979417323684273103728329532665585508545560697613146801124025355641987439834247580830628652085280837936650421351981445078521760087381511143030487129930708018558439334516923854657806657239067384139103747931509497628285069630161859726636786653503718140020142233821131771477851163493163320984635500307832011356607089340298701217199011203149523541347975238431213151830772902799493370963832797626649508222454891925850206603512842566164801771966168229032423640416551643370084307663506488010350233256169453740412141802831339056012956464697912007862495717387317814208825478869078620844255737558393150191818531875770409118586857323319888629725881866252389962536444091548048680627449987464684946103104309481695603885975997000605387104050973013364097771744017170163235261084567320218444698206557836347933749903840514095360909716281078431413247448119297169905981626690230438513133353463938185865410162442518241164685991990735092002082155768990491119694447451879276943037507925468578362098493945134314179630621192084419390477761360045596328816027288959004366065246238867910007158446433727078897825395919692784417799120694495044577604973645787894890823436904721608466249874566712514197597539048756812480224578750364731075669535700131394482706750163090950477600109188056661588136959986089514646110625383951354520385627236425268005865702749055582409969566625410085564202225590213480671296760045773084927237069338221337291209145578577083717687549474715655796235666950932576262578898202940465052991537018221168339921231699490493725296743430802671586597700120209038283284084243937502957457858633527052485538680723788502563373543598900856157234282942296930362001122594832315197513123722853572038763102743486552908306444129881260937845595912894752461568174222861023640537379629968712104819750510567541946956314470170716488609659498929574147024201157876370188834968888032729826425859918453070984714768898119861513240126437569254928711960718109241818708394402119590949179227829481916388148126249598365770374840207428686509343475752723218238327774545479765223176785876490573930829222478058190070627610290538709998425600013774366579305209982821062765901038728494078045470766897845182555417651162781712212506899557795664776951024071877565196022363903035318960291651953003249532291514731623972522329956878173172435325003637601336282417223125215974722790438048423146756902828429776204307240042207117357174801594144451718213861677039845834715390445918224658170713781804167247557925753041079263001027920462342024565528985004129866613902820662484992800297856881936835104598948033816191418300282241361739833702870945782022569226691728824085961438376667653564581865669803088843579332026750190649462744033065741679349278777337281724094901261347891304969909635401018820600976722726828758593912571391428756306464286289518754641260918296975138316793772186551884568741340462693196993934028103697847232537805112312600439661199178285593010695038173515577190746580086462998839499230592989954839457404422460188580274690136611709176174749597343756141196317714427874189960383550168418451600907633862137470014204492666987140423855044396337591089507054144528631107156514516074367197252426432973710974762223807443896622563860090626902589893538554663452697532234200632306241832069636092042876835732735414931778689223451531576169367832370181183819035538673709362109326299356667290689836916905676772410618601481899818124694295628966445771678177847386392069911640544066646444911745844492864693517197112303707407935800391519880125578673494293197157608673707604816633364712706005524856791945526475847528383186892308019680505339388991815139863640061467053976098813844326642772975680213300346482381832107381259916145060493895656150360115326834274341222611320507837524373872600690646061760672460238600347712137733189778691494376693720875716097754696656668208217003702875433503579434141293591919523330737343084165471185755545021216161288325502864395716284421127760026229861153896448940418398329678164160566279086473638581153869617834886198765648548098320853346419274215796601581271878965892339718729877331038001779693777676142944676778648415101926615212110232217032794276317670294270817786929714798893642518327160165547774176273928771070838200164362027087963314119211254087350107828057392472915478157604328119360699037334821554477023969625035710478745049031120520311126156279959931920906983301473207803503274600923729090815920702619337663826825557038045731883147353093474867882727723426585928729153333630653908513849758689864136853970862344106199871654957063556412009462284559582337497559597724854994979799274887515425123638958695361758481031319661733543821751350203231690124563913654584134882053931602300177266544401353891491299934452955213712730204424932998352745707997189269603804220017170492918668319580932895606379109847363038321502468423749487642086390931596609180799774439899956616319577270607634012266451085068499881517781822017768506714029385433260472293860179461704535566038512600696182545537387494902692202794145134727714802880021308827044695675869127840167849850317930095633776626313243330085784596787108971685942214044373901229577826727376504920601039365704710445732764786364854347039423111428156047957325962382043437637830958970317338452979334419953767463026659373026856511981458643924903002537735164333128613729177462685755345612152318657707096706653053553414396388906587473330467492634697736598474560290045708073717956342051907661200374261536181103804560741621735517168244028508112844398242451320552081946136428076425947833256619310430177894037562979324580636736489897378119556459791827575857221354743193250413637960088376120474703384958502438767000559330992099067549196136922590763952138544884645000193785387984728061272810098889676191011275434954536209738761124891398694859168175247544825930097970776584698363680003723791495924617588324128739928537361042550866965418691304452417833810560482957712462156224003805008679886688206046231163256037668464751448881397622241837597533551238514208610934128851848740346868848838679543432678326331460652361677480517907402254056333647501328671656268605316426027092527816887958803621633523548442871805406489245540121307213503834299512430667739928322187693545651314791984937599276069836197140180643116528965703510776383213219182295342589030196834411074539779236014626165510501208245781646617486600515571412235435457781741339881358693619350290718936630180392331719642349896677369993091307875967912769641977142624469973451927419772184369434709799149219762867364858508440709489460050572447971371132885535122291640774728523159551412325392310252659664450477097494329506433868173138404121876296042955728205281811834612023876337180814875095721180095125580120053578648691499476416151916697344645006602333786993261248184512263392184809865396482691868628529258160446502584611919633819982819653902326039778894616437615667079101027229847227496030804679112856371000210694530641196139082958610534889210653841250607087261913801366088614872923305706640398599801245096524971353362960952265441137840861203964817499543958045368505753206133249224735060448471846294830673997809929729938289877479800845457875773832212351053077910647247839328918073249578109718601343105232486894586654577378535411110192857845842885004188432957950229839772817332789006567917077940973117718773912639758682439908094442494713096683896100477483562456203824628776916225617674607761878530080845531528557945586295234398968178377823986034026541895160934287969198272673444586322204563165314122074216588347067857148355196891225752645102354111545313688050360091813336609229240939023065263131463302288681971195576578773890370748409062615975431747783378333171368050298063347045334614990544817631601192660745676406017588250235299557714265182918113104923071063172053064114055923755579676451033786640228026457863651605604472382983211424614600386640498299487543178004391325954261990449829727723312729457951376889002578515143950882380166119918972934028397924612687788034691271523736663938774424665721268375068139601936544578668398615833745375871425676166134452533607494728108940634259248824380726151240351606585176036216845902139799979263191389751541189081779590616387032953029661471961220253734166607791790222573718856991498968023875504157829199173585335684989810634962093415389256526483027273657909009863000037972119750399991477998534485624500681506953023825592905614199565781155042652731022518607249709407150894975669846053293997142968511147366864725626237360039306459159417547861378408951069804205132835304861725013968080753312611752374580603271160795831289850899372316556363871123992584108543640105266279571838115196734377397316265941113167532233171689882412733445468129827925443111665905790931966045803684992292408597305130399164814197761782000719142451072893601923430109863862605525353012915225907728461048024669293553789360285131493191299929361896315586093065451054771291841581457811580294738330524799643017006775087620238946413595574568177370125304269989991610209736451923031333410040541952978300805130018320751677578748501497014722877652807612253465479685104508532652067513024628481766190189923158993239622391791686956217865589699701122145847643760400846427346619918995985511510927310069371271149030053235366055744669720512898379986343232131878404929002571446441951685941330005213281997305134173548102226025597751298789152410213241963099610888758014713067893224059688889275068564221465987845936351835576603192250363263863734515979140664284195459246671358090593772548812394928293727253683218023759771374439837480546033916258665537060810595749197606694612226090643080332720081153012977447908244309003289976659535322757610918535048871367867502395390193097070181288146554144584102555647627049616637900737549140644171574544671023151013860987098199401814608806057299340216237092885417004937140797035739600916337587919970893168834193497438819102172036383158233389025849863237632021060436148771414862488614870764924326807572583454039831288320535459618848056114821254420768128801201191769696025521360519833360309913129845483902726823444839937716942959720674580477238343473657682757525447222818260765890621740083943753562599350983344128931980559249573857578182288255006287790486877086229970373401647672674905487495109780338029427638314395360819886258087694428329310172826356332698839087327468802930472344853812843538728227667307596324239882748696723386397194441119433116105688190577613240215868242885553699210471421573179792770036806162394512959980563767290586113759391523542597930416311921592214974036531199590085284935780554917960423854741106212187408691638922989426710778275081845554387090389697994062268246637681086012236820629727656930279173473328197900817949098520588035692359251902964155439974236643454352365775566191098857060232165777492531172801309972225690932066881634139106836661839007624493634931039982619386541106112340567762080122792910478089350985857691838071534497297599669545162575764070026992596086288422488063848130810353928363849784114036438320347538991409885610347937935525259594650933795017640174245626307196449903454967617620761008276151794234232789096230187572362303043480805899994352450442541459944462284895284295120207069618814881121382234525193968288265413480582637393650901186289506980810899428761965238733929397656558715379568866119567127480075574009784590328547999852000837378759012278543932259221917318394788426718119881094645893997925201348806118863103950159704153578406049628007561951399738405893221723544584291234917147883103366191940681340956366666444288880869250047126936322612298698170650286870981556384407748624745209451870255312428442915722555695296700653591017864552975825877219014381064382941393925774694625485429194582047914221388955357872894239916159569873319082038996911893853192520596549824646292655025842631445562690915155490660038597209612026164114494030627130755916305864184411680256335985852465644715526160740082411795147537557541943567813313876457075504846186048018936991602067032665533947092332865845538978381227241525175277147696439481123909891752113206277695637055660783585520927569803564803717128073958883593947067512902796263459625699146104064990604925958648938297648633154648324612219067351549124476308490473222666830761813479508110577351265476917992591886521209293683683202313154712910734360127616604291810987184201359989042024809667652985957778034747240221212705998818813454878072475133627181862122853279165738396591530476181379444423948457081672379730275407776588624597479041736878425280337693707341403095970080797166647989329021230578692779387649475474472313960642492593907530317885011254082538177987605463217555320487486681872378909816666655706120562895834952494282241389628964499471668956175884113510645380512847501408340467973650206095535330021992298454165804164317138163829253227107951074732377356735900979898444487628792359988861100322422180044521527837345241139306728314250140925123127650607967436416421173701426890995439937404103559364975378553228478207433780076059441243724832772679702273866787713523653402131840694890245558423306913558067362536669695056591241602528587681002878252726746613040785033318430804891117925487415962685705297853783872105149403050499267056066256593098615146382659527485827113244941788111746764951690449077940817208218364425794326589573884545220128423708228452087779115147059678721720299555286932430085117474743627203351493838798591152468736578761200394448558746936971466565343660769399025009884581240866867131773394051838561350772506536152610163579999689591556657678866970136125872628658664894989665704142973279935354128108086007513828150210098681507409005558807574729139791641473145264030745860307576867174933136614816779629512978279774626982578655459484737514035192343595741050920524108464816010902930489468475211255050790986118729302876889989649309208680409452432396167117253033193705673257349895759957980368276458078717797490086616241401688333043608963470691765902609447853640304824434848484065015543913323157962813385511925457166794439608229650823829849396523828166619493171736772068833578032029887601886304591953261216545455262674544835342192000170841303706128027971767045555821767604830290534047104611861983762161210594057539514660764217111998448253326850743453313451155878006591707634756523908810884061174169860837068163460490536356840655767220228885407590527541913989581162109344584499281467449526171310869923152863302528719500633412499990758134557796771607809724032022868933198219340791827352457185025520076648359041665419241208369338228653742324346923649316122115403098594655354780957214273837181384194677863073143149896525453237211187698966036277270112809367565766870431377677129217294341219185395068636073220945160137898624747771048099233313392422889943852203263673828408697865102125544000141283026965762945514345018424272376483547896230029173888799649601593546912999022965212853130482333374805816482756579550484879023529171055636831796443280348603638670674767229018931892437413955740385258223883343335772666626002233421927146200780011668891368420610190688847342206315651677692921398010841979644382639456347171302853988318885210744700193638432499804647233058593916441553455618085536040459281368888698648772425296811573253318766686508042969428612248036936230203847474672214381032453101799776924547167438370995516244295412624972327596322453424257731138201749273447525793855524951052362216408993685111254172697483855120575812769167036177528191250787235689044407421976474933943185118721679949930975692954396770013739341030593583253490839117740326189912721980422694506378361502794126136923069506675600791589938187324345362355875759540124047586908700152849440822379132495118529428541700414165952301314206148299257515215974693007586690026074944591508655927986037400110380316149822716074229084496073749541396542851196591058463431464235207882218529552128620202362937522421827852981329253044152698168087689058840973195931794915406170145083275275667216140625358287649187569263695835788998542874862890041076752152655745744834155778084883561788110810283624247739639869074488678325120206255292047273606243730189058171436681904823463304016723817823562718021897691446317431904287582705957341787205079150479399027730121045283026223741912473582940208743661769402144566772722440602421805282407383021404250461519291497443118658502601621442596236508685484461084605759669528320785176593382690264407852387348408377734674955313050611309205547714439823801125856889796664988851591813123800341309528646474036575466754727006877859592729793466834514991724064878878733591650068279575758784236146013263721728620919761383422031630978921891049628678100718279115019786589987637974906437610140142264156490572944793935517832256479993695468939757985430203399785265362541364098655554337588922680488733808643385938626581240633183107983207875480879532308341435326870083866456399608941068161886304591035402196492350692324731985513579947303990798738642545129521697224449482131712830819226363215368495751803213815935944331335566189569623689383963204886947891056483405965231743039766191107798998576083843908969469201950825864190250815303604410783183302313904772383232548329877373448577236878792980550709141999332583660889443882181672309474706838436695571585544363691609729004614978734495427564353585820956371555789204903319896126609651074253014000538640520670565371608832110531308662594709755935013731144620476745090037154909056171974854717231003014985218911357133300293555877119285978471976159466203706776674461057336257646883695578383727408406801531266893830710544940968028351153244014639030194048810210840412879235867936195097822900594751979879437469003738255844583775465146639796590768931787793845914959915476414604041516615860246261067433673196118045868746512735853192063316439492979935270474116498688348941011528136613063484698435486370645738656531926875572975887012634451656217270828109850908401348582498292298450123821884640130972419004632127413746208763933885295052944428762645542702863357904358085051321174597233383715079219503722751583635106475926608123709275439799585080624874449507992036012699926091684531786719476419174024494754028516009161092236604083406750488631526902958169391670028612779669634727915541182216491588829473705109960075525083169678451937069288757901383038704673013859339509035500228172192496015155336656979990718806741277915820794861353763807582637815449978135888789010340354495819355616276640965558586723468823854689975765458251619748354759868399859608446198440342684615408981410179090008716400801589623110834691911010749197400060394706569510631492544540359607179931991082251704375162748218864116486143546289580673554574305988179842544498340178457904494926098268242893699795340085919944719369592260181696896641181910234191474271962411413890772994525254859572732622121266292878939546523935521419808812027060998157946841743832809597236612697144983351318361396276417530440888666345871139599348270165885182358254827534794588588231844290259075819693618939342908527316170197663088626426654392433597784797950959456132115047262775720637749967257449626997254900081339933934477306886233882472277948037993714314543168643452107753468564807233697457334075436132997148023719741866615825555194461920255705141067055895001540784483116718138879573139052903900760373279973487534347689934568583740342146232648389174667955295669117723906531762356544703866754595593762765837747119841382182890366237388383538153259720476830121407063952856073730889581347809641219826480125160457905323280416186838678975447126695591741909228088875213967243366964411169365056916245304923150776422684943916509652910434299367043590526363575369959359101172239316329769179959804491862651317394487135099774689552461318782102418751175782710866342544939536671288048620759037480867155687159277950488683451378110789151041505659858655450137707827221910383279318960257760883817464282433333126138523832455258352853246203858039649209792557662367890681001715346690199939397269687920660156920989429978739787268031547602555689942614030258395748264085964755185166625557935224504342557832174801939774374680683123705000658634515595654062178867907131343076235305088032366028503662998995648323739389022800252778318952920214401818535631080432419886075809990664699168962566641632955516770783098726339860541012245852027880475783125111223942874175816851611593026102900558123831378767099913809839264705185849453463095386176494052573414511009403931522582510449046245153340292557399685843004318190211244806272884744349779098170475598778374240600606496311646429569987170748871838289512146320485278637081271220201223038501026092746653436993049552551209251871297376278546305288457098140587033028980362497372229087485626772849112285516986971584850786653306218436015836777765727440583804434494885708062291233788031402231469583948511970219591972283092425907714329974580836544610068553209681555902067825775805435598797901794613604311807739331984329398150151224439486047606324691501294304682835545043259977578598289095813472251473918757646882220782669994021754868336621687364008395844582738870036190406330374359246845323386299802020365378492948267187637961722859612307121716988924635998694754953313533588734402745332884542991320134410365059800765041743481706386433718650095356353277205860979160837863055634301441538436850765863622132382373963912099897283133695612673149119568581086849031742686756949071676996953789949352453766551932071320373376287916973161272284787629943166881646832678703896168818389380879963533229611248160585254679103829425094610569016008670551494796923182060288960604492037832010529294454490415964253359801268755930916493938383078362936354412875904389848419964839781212877881713232095383638924965633428515562649893683405482592167324421875789495457264764185771745145733784612855006631473084009415892004100342046014639951096925593909101709943606661555934714237670963262407922781220144632973320815782921000109561444363033559265728035913650994812528843809783684139942182685355100336921754422172545832290327861351958031839592981678317223088907406117949230368455235830985099753758517117064046951115455613226853946364600495095951549710847761182738236536238556448864047369095795634344641837436040045968463682443700363038882129159182807600840185425446749941906335172708171831868803322659073123448330089945562122928327709598818707228698029464984704804013118201038954179882185039132901967252027242766023059698925512391200922907954114753656438809277090658786163317291156029342995312007967320682476077113923271595582654531256004597613270149903994871558782537810581851438694149376711678680665991737533234940868739052959153545466726044115995062987753126453635675150931494998535892223578492066542489718078194687759331810500363860080593734114268007099038377482085919198709135389708086205614809527839262297708192378695928944645133056644450667702116676401038724448344364139581048713536569126059398672847583036453517187516579674124826799170610869728140620587626373063189003106580560157993320655201002333761558618704173299384842052443648361114751022623370196962731534299231666778129831690826056791283748390189487706772586302815071013505715097822658301531561755909490826426182341725729255438633473462161665491738671860357452947388960394027386028286562380836874670103978554411904523499205795291419527543435361226331578771024781287258110801932136354816101115947604345823911547924750220324426809240533944484287213201201992246918442504906345941651543137378979293190048554372106316151160137115066116984749998430342470289953646459683134678994397825909064438512150949151271523544956960245640769895862785122600984998684340318721198624728557833665229269688914099595096728887568393942457430234127870197122338975596696268162617431786074439625145635969632321346622309271745127259220826658812103261151384846921253706655595982010302465128293650916907673148007254789873788944422563376207571878617467842223629221633506792584494894074135902519035559880212608565828172772879634357692745042847470223932462195480068797215042634446194699005233955184119001594766529629419801619572845010088093821485085220773976162710436408145149972332597630962203821208403245175279518959869983117584720562281866793813168203667303792066702087764336087491908865460296701160319117643710651620495844784476330423530391616948307337614002148204874889777168332780402576349446185096591148299816531073737784036050717852853304468902479819492660053877671233464297034034485851877714313233649656843451630629633888919836329485005586257118829166219249674692942284811166822660601070050439086925292120523292287685282350946188026253171936645231381009502547284994511336689453646938133776026583292348957574918696840387335663619933062452345468161357235004458632379667087220003684794259720513959213698125873875599538316036554634104577756121006134714236954483966046882507409884262984572653942574851973517113422358101742557427011129756369294688309625901317953125626540924834700454211626695244360785393350614553670166629999639471408206999152099311951784238113835780310387210035304752120935773845468952753145424260131817833048128751786325383107578572459976823817030805420472916049953598588380908933413430681975220935608493289688450930572658237510924448429457533941246074130350350584576508392070374400708722068443174324477662816598302690802860197542087312187785671145216929762262917213549105312601584793336293625221190637161295288474800172839855501144265763654746154478459379289718231958727583791083701952301609121771501423295163059505617296810606233907666574282848050647746010944231175041930707345695784251223998662082554089140313726079721465429573866979213811052456052887006005935432456758270511307332318110248492891095659631277751690347442906645068274284164774116584574243348060719159058707957909748398586581967368102953212641466100128185181973156721195715060330162053128952030340067040708001205439486508658061683445101068782640426874474280096583080067240350358728756440773778771290018839679641717881393785321868041464754315360156994214118200569437707768575340210131546816209382972154111912444116618026307696103008972872440757150196771901723512081416747550989078781173812787103056954347848577270179340991411279295600015921624627776817231838653596603743456322853435176000951894281775343915368002884606665860660431743213652982643334711381189676362189844350722213631302535822186535264143747613574090122428887774110174797430326158421478092474756830845668886140858757722454514050159999836081694025705683939496553327322938886347066398788084542854909954174632467172988336240819588661966175667481926801988827725777552056628214728406798633197613702360414369740293715190900241882446945883122430744216756432410024486487433169834469269540022198480530708287286904238876016541992101148875458445853634555641917773722814267762249024127675967427918971516492633464487397199821821514507641369143900044957122267991709676662824284111581743575724491243950556037720818851554803369343076743709871691995093306365365230445085341833162203429757558108467018473103747483823516823214018563750493656912188631109133466013040502320526520524433536236679786948114703564983324868725546397675032613263691763184724157373877246600377845689762048247677411008281701905223351102703767584742777305982100723991496108794381134222301643903563222762328804265504848497564549536619457999641330303726767402301072087277251358161992317292467150268834523244795070328110937537679891355137187803779010762730212128144914177371351398910148169648567714733910502668842766989448318316634055612164573378847357151515730174305464985811670810207015570850150355974148542963012892882608896526620891717554792554744129779580502120353713504178222509607284204346363094314913679565348982340651722938381606474864461647487928412523035209964753022954192135502339578161966972168678194988253387871282338322272045497947071552582290220178060851367606597696931943702601599353867267336132582556859059705239670633991175583697562413005548822778902470967309618637817744722758358805470689851952348656715852780358902950766120112461911470473603403158409814658616803776037483180995127026331486188358665534371829490698676247568783940598295206877500775477136264675383213961720333368690371907262200707104551432704161380104211090004043328975965236516122558106945724227945107220995169747905912476478498771793803924792394818606745517971988885256860466569711926995910813810094726477225402238543276710047957243161011865996447995824197976854499081915507665070641249852304228434365640662988534659446017653536275227653491264069122095426966320001858148792760721046277407956915801926630087674179230066437532433647293789702661169702034117832464312710661945663505135762553542958543046816257500870483442124675201446172192121096213246714461747333943889032622893573081228073486526882251127926580236854707663154107630414797531736485659597081469908792021275408233428967111860655626222129245189833739623440356036671333078576557490551101804715965119323874062256642603063074459248523400525878794085359151858377235572647244499338290407529992114282647304034859830618622543694464362327537384209404513862220445418213754270157441273651816268738999348128059540066417143179685076034729839768166173192108434988537804952002143806410428307977779757110989579037951345433767410046734066473924119015622538115220150717093037473284593992693087651716041143925350856234704436833144179273652811909629826290547187598499831693096750707754759421333503817803274233196748235514124627079520743954704703802711658219994796923159473077890100635676027618555831862777141526349180994667420581171033118476961050763004147322701125393983356461676451418851058140807968295029762911217844696639874539478261939528966968490989834231121470993984411674331897021467215911077899520747272124524198792979124090022333435240653842364389499077769115381559611107559452153079832366326579622160903418417951829039928626124380799281876820753655632620953037135363836020369698047811945376199902577206969415373881875986755429815734532249025441518790184061495334932138401279867962147808540134911979403805530415421107032972861129599004782496659057238616025932000481264704857341275028492744347087118175198002069287941574905632344006338351912743392826256658346138386829247332993944761169034819758422476355799880035334989768215326789228245336522318717850225829629885948997384028875105603939028021791897232966019855168114554298461393259847336557781038100972606639554934160175701114057567247442149068816405997536324495395224499829250278930084944392404944287834294725550808956275253482049042605559406117993428181922309699058502974547840640304457814824220856302369166488582982120896851378343545824336790276966370285077833547366336757441138456730684283678781145335282163775810549244948863034928565957040210478124536786828868580214123231198751006593862678753795297002680959859250023913492682801832807357267094820690080442522791562737513926611359430727412587765243109675888884172169026216514699854067926765181653905286931126036198158421402853522399444232035498842265933836771001771120912581276525338453067067264848446360041064243328065417676887474568914930051214857902591825432809797491281383941047019579850432992985748082660741367627436567721176050955699947081757364431618866727350333770247631900886286810796599708581044507767942528053544904426773343915488696926056397560779649636263896156300981316026757443849036220863536499076546542141588093549142180837370742195498762421403196252742827973602552581875755803452971212258408106279687871523219731687669462947756778517881095445864945846162696014984055875724678166082913700782547291346389491411458764425409567214436566557605966744264954890845344783973512235515446458822924936810348213089531380951288077835357727387369730171542617057512490881326570856623171428319142719691648089233457574623133593034950295987143260337501592235728151244344462293072674427204674501527894931636342253802440960373431863977279067477495212586100412644656668920232928068854872069300644506998016478771807961645166377167635143530855606951810058600043320576616656359838222053673602761066927272982009810996499457653663309800660303191853747430718533513670460627376583951570380476377857765295933879770832602777043934377215258910150873165654877486139742579242532797824543646316043952661786482647665249647622723099867133195223593646457790440699103070411467831419795403173281710438985599919853340828829605215855904953954523881653775568404446198117055137670377013761774927507078954431313209118334812298512983679880181662661509755604860427861547122149497094800481854848520885380534970630530768021022366793619080287697991052882388765274436126469555884884819972595116648778491695537094669793174663809392930223018192908681709894915393912723238412573418980111031784808070317988617823919655011529744389762508204043494236059371514037520260538697411982740662503038349900279884920963848579605819703962159374478234908117019411116009034139426922653707656961855432375653819859202099599074874559380103181636064442817173942033513615990147682439295530729175824044560655104349026235303841690369023227767142839698249788541006630450261754615913628978533333369023117541590533193745717344117064631259261175121255063798934348887477376575183423436575668838553248237238643652994494399652084589085210248323857828655357511831703433612139730463632424657337746741007475338464654390643657189479939933723529729292636739441537096153532787857809775527383606933354179540617729945674497253085079351763556415403063792928126534083394137894503332629370717068100719838055582306576193220370262456756808771291329077768473576714840501655537088463674119434571615370495240714603236582352423674558796911132616102959097349530073334340081663486178964431029727418038149861519485053555856887790550825808456983288163667367620616837579075275964357539774316455338419923873628502708542775551412340637010399966028226163104011304357950314598089645512849790736970464602022716269236953880922732655246262614904155844781840479052562533384483153763710873203873078453339357974320102217877397861034178818048716099645409500719762529887425272720235964769368112744168310740200797518986608150483928133284710537962907205927121720949421444654014790860898458034294374031062631485243624439851835302584588513686659947715493079504015664604903775052322853020968658174196539831891087887787219188500387650664963311425412907970467281753979784024965986426852523322215796914524469607478645138191716678416417957561828176232009091269898119430510855596664097303612536266278011370202322054958344963063656790316539901360801022790222851331586422537636087915243426406025293808370500104713825291180889176950567399059926065508847137541479106578076362720508932184351332374055479182296550413998393042111258477517984379333445239195724623649577368179087316834454130456969689685798384546303857472673078876231878474465127421930185633551980764995896945960148729746543612030285940007138650363683159033937517026572941736100581480719216787307974964433898014465609631567317663901887633907434180770264845912532270930350704427447112552295014772595040247226409042103320669978449944504841469265366618466050300656285815119337281629719081189886348857830148491284560328908124415773402204233221638840833383653803710690923570178344274969176446728875298819476984213108674544533172934927695957223762735259529737443193076697112644841323576930568901094700863734087680149605121648374489169702152857428599073522102049563584473469864624551191926142683129864582643673517245982967567129604655512505608377496955856288066284542636456664364635882967730071209731047777467159988051005652296541772875977978155401941746559847014117256687395615975431163309012034452449918825789205595142493972613935398338145695036277867535262735872731314621071385057399274774881785864081334841292860613931840773936695083301876664976319527646825191567898933840211419559455234493349557991719722314451169599978422338119448308757708814245072568608364742644070672337259749041682640030907372995436405026730479201767194420840476167033309041147922058767932889037603333209260882599655407337564303499945482396862173957189593442360687961856624668418777904831216498259341504727186991725422474466391923237200027621266613130958173193720794206347188078922345806033930498189534345801351234743291516680811564258969048416451853178437172282867761778262011615561812179856670342475321786771354098900807481675579497744924438191124335199180641965790964091999020066331088498024151785181102667467157097255935529715054013421865598133105345313779660301767098424888110346202885152716437836029918462028217417172287936688010328517178730543688941102260991578934778755813984044747441821579543032347588301181283597194125353246836836798039359593155632616974455315235711729377398379573322064618429365972530162977628974736215673978786211668065938420977348909706116529424775837737682982777758186994229708541914379954463639160930244762664111070259064579881791059965811883634171896597648630368739139472895589509821752080339815588446516476899117425879879471291242426142319554486679492090907955632077113838680151112032763720528796950084757179072789717998788058600506788945042979287947365478009339464449217465509090779272510745872946873311896959835051481798096233891689545523298896043058686627821993129693799161087163688744375445783249017741308098418447976926697175970046638682955967658438749414771974818472190268143219385088860527253300984249164186013772539210135712413661737607247217228385919135523008634710764888569570326744674135950194705459940895595901194571097892437344290976797287312429924470439485852834580939990999932778681461357633306457590414611672252102647991064734758465180988641890530780672262478686396250672220020816191847125881843152572458076556038976077865255574350786856753184664058428577212938004647329081115344442270743606785074862822457035108570402898311099593664375132777091714777843077864211964063873692801474967672767540940390931604199618188546870363828500463781839732766340310384898546571280220923746885481817124125976603994233284215229055880403907903604596943429674856957857977911816102989193008227253892737952059756082838544239354060854516426098474203747122725214940233053125332288100247177654109886803024227620293329344593544854621343225716875655748625818455193600800318372702756506895955609663790204584243797966423163583300397990739555179684054189194957979550516141225273314006851618109023134741864313871232229926519566576612589478937115653747387508737580974772215605374730693334087424766887964657205081679763029028245162421719010355118536308634268225471271827634595251944111256279728939735413623383050326604981705666718735945063928180198773702537418789600581387419821491619391362038930776482626270502840430750700199832924603830727219515229988884784557433408090945288559856181442608779544174360439717502566105535783712986831484922968633484040900607125204512395571297460600304611590533395778881254271689280274144745678791705740822408839889429771049043047228924536996309034383866103717547820855684021325868079792822678378618336939605545025710497458255469468904596995758933181158016907232128054540679468207140297539741839804292019374735404351102091699858814906206046241355708808157301067998703787211760548998079336301332181352491551366467172824847005862806804279631652017644571363364582872579575240300308636481908146978193502565675436477922311067261105324325931829225693490597811400622825532716285455961929246443768684776807604605257568330234659049151273162661476511106546153879875393015783702970772234979655730051919951999783299908479463514235861644910028526467206397101896754813328990298620049301601874919725571040137436569225865708029062332763774538272104857272315210205798040135396946871914832442619969478759166984256071798365324278236441716583698492941260699019132500227608832443732739187977696427906455335499718313080799805193493765194720672593587612997306186634677306753890414087587404571237477424814066852891540615315085875109707473581484750739622218134781209558190770480414898409418763926295510477654433345522320846642795778759134731172806415227312943148198955927869222471879815159983544357209507436480113527557946896423532868834205257356389687226056349556103188672668955891386259717051184181255589980883387064102156920331620303104757670093762697847832307327769495091532219067433543868911990442378552121655531237338397609649053179751224956238314482820708666398381189615959691535403799548818185876657215649289974508191214245232141157163648127504436936615684222991715809357904189023619317231263307306011971830268199594931531082265704358153275305157045291207618222201759837238009876763970044069070913461986752040928861473828258426854999822469416391734251026726867246279241682361155683151865372860147259420526082058512834725596032632300609896965516579820880009510542299923485731568436673696667607332288969472415371950454352195808490831366077346517982512884224761078034449499529901232969908617596490657926897957599218929314103408030836020703381305325881984137078485369710533071219916510738084220642647796899568008807363099100846217144855185660298786217875002742156673584469764632869192323927044209427633624649803463025928991655803698803954962963580587962673095853835851152112026672494019022506520679775251165798305977830572552450504105359911315517134221902800026951642258219105811998967602894005093677004494110418368039267543039810217788506654274550829476562390362869131488794525353245164290848707839895054517320724439448575903075406218311473778981146512042001706764238837423170413797363024165423352632033690627380212930781569258030428653047323441579631189047122482005456735195996795076512359332750513104156832922446448922117283850069993155303089088566088215581798526375027801839324499247442112927195538862082432327354437850658989571045769640041359372417125007902620928705462402588958073680243435247611514659324754889282120134199826835593869943470745860815177238120597300161396342240188426852712844741055060000151959998525789793725106855663954667656077620987657304272925840651944912698657146301302407212253365663118467360422526817690934305363886804905858586924431099598113800304775446866524844487292691412440452720790395009163400946825520962851828721659446854240177593049647589913386919678895128335119355637896593122024053560034965238264084525528442285840756836077462508863578246757189630883531320251035858381039543203851249296566933276577815839516949405291570634186939577113814015940057184228167290161743628736391545479209293843498322314186400147658755773837135587441589346827324757841246090950792395995255278231825061482047099643557239249837281451458763341716474089651014554461189449039335613202273558485160779529465176195950717485378532592794695668868438360394728348674363965279204702077219924281259043146454416046541366783085065844807299066094133146323411420647732139761553068741781822874716990966848343848117472892996237028223889763014840102038018829003676656326290310873776348131480754580733124148695012141997564194500230043013622446709271351737027748041595790521988651839650983997931486066791602319245815421628138592562930058641189798386692926106593196218815122682675742238241612661894159661972722923973837403146050913226043933133355282479287119918650043328101730415053127239246776942869588822804723360198253075547135123151798715505424716637522138788036347292636137636696934945615912566103416902765674266391043479760953589878112042362916080103950275046057710797093713449806162528401441105058586325239607629821023653987747109888778372394872758460520940828382016190808609608201296101735157872139636840431393291654471983726307621964122550671534029797350376318996921865717271751062358127671118775466323955548991471024557834734016203121539085318587406002100255487643066103525575640631860646924204757796724446469745427119618968300537568154672892138510223903647659191839872555362749165415703639636592536148169181385944214920491817045594323474991622727090760631126015446348818301987289803857998170175683977326939146663655960988057115206565331048609477059222573281452973024993993875782371147833167559685034205923632064481126281113272549926857534957759648227062585816979858631526602775732575603221437898918831688812213633948105188045805129320185643145174150954686379841394415189165563012841113753078101701804778322209954632079029689402992419475830893134191595997854220794397085155437191627157582587406202504078301678347189717256143634845886595947324848323954791824357320675439404549865631950294492404470935900753295512009122921746753890150014039065728071624977500981749277275867776396354808013259120870113939167248492916934052387667718207045542957820819369155847190192485195242003713369696496638361064609460605783381665774161410795818540229715242374004154366391559755479401629603082141196971988574334378794689904166084787572439444369870795820369809190966058543706026039205605464268348420480629562794518766024155527886339176203553942414162682699061315884844261310845486610222066463237860984637780205474643495875212705691626708610667483112903787690858745304527018275006583822121065102547821063841818451193939549384164859227996099013345140667824551856696188490927140858499096842145010940217983681684938077497944097659647066896339850578904094307412502622908352324434919958744105045866545462298391518964690332907623643039538103969360768832686022545009186866065383687289259285457311511004350453365717091995984620017550887513527700074426990166509941049479740558750311015603060152129978573780382447370144638952019175494091136391771567451752280183186414572019960749661931378732794053769322822314385049858320572983340534412815897051418299984667962873166389092056093021738083476142719674895400038641367163852464698141746034424237132335071439080402461082149003716028985962873482319025612598917213885084395243116450550546433228928692393189711079135963563592338054288644061757544227149441809103121049264111335395988940462280133137421324774594805934930021890551152354321482932431352129137740900813687012967199449651970975992306084821181206970474686495425294099781529974981891478409261223918822996524558357101491509256989127748393285346985527669557961600437624390216156669493039844079451884752895412379841539480026610673633954013236762093007811331176316178959606031423308761790269874947788483574416859090267129212268438981288551362296875972251669341698654757359875334961178115068405590162172306529099241999922510834573785951424623397167350047548592321144485407999550687138618586961141846343831778591384180994136580870037893429193500540212672338262647653208792347335473563977244612728558071487374977454337671038221390896292254618069334601080046515587316484189487636606747310413592526014805763135482081357641150900116037311480675768036770104664384644343220152487262129839274119943387304480294930240710719719587417397891040839150783038350872010769144766548472751419681450174075455473311006083479063394261426420217369009670278853602628576926747337165945288843101297213452704799283410387255855009270259511288654767788886188919155293167933252543482221353721480642799999421379051574260123454153759634428701923336749650224502300043327475349369682928445899729796100604544103118213792696324744221982968919359189901587395205590925423894702336652075125729960639655917216393068620060948534578659460748651802649872191711859593635139503001599153166591124481785949525247804955970153850528878719655079752831181915095722493393511584727698281132528639245232370096297261453245743471639469346269944432979165884300292009362838885763802776787822662241844910943387180332621331651474116810030585186906832797137851617430746596366821277595944631546465123763451821424176150532814959919868278368022607575593504321092717888675327623087855359202472668592945482112893577674779447719038263156966439137416650327912473972110068425859752802726987692985578136233392290946604021524500555739464285063396036612891412736769088856812721974514281884196586913260579558558863908165484561694535761443240713851223713139153584683813947329233861230362565176100984323269690023723191716526097714330656235444028735353947771069634952816101265557717065480504002110514941744794014337617329299257096437702231582587374677700403038842346073847874534888541324213522219613828248194645902984317459022835126645055809254258763606746489834803321633093939233006744886897137548798570949667591854328841022875056417874755120467862393009482876209116023645529776118142739162763176292455126637521569006300636513702021615753695779266645834186705197682211283016581156482130777348313095216851124183822580832748421714008028837926669146615016951969223719140619816967079420993842263300819426577437287379259084184754151298866203439840318371803390421588198094732774303857738388936206208340646609428403790515379184592594904450964459432471047599000001452159638260025517221717554200155984618442980386665739883662577050052590508947967362721140837426261513669624022881429428940367299072259084884784205739855986064310935409610883279817354970223586106891036046929324311476324569368439591713198751555292198161617293060326273086872212580494591863963501414623308140911338623742233865770793243253453218467846974459132638844746367080448804017474619560373497750285060793734130017644502791883229603853136928807807633854430872057455112824186976960905424139564444450435000685192834369293087767072860361229836312977261121482370210612930755915416866129257309514860542071278612476254021246405481087957026719668500529262505541814006000466703709986467637219516364981690987501687693871063330596099169500648326035277918375540760482988033071479047588871906038220876453567564765194680227116545145124535772763769436422390074106730450525702437283865419416006124416886433035927728377436793710101001198505821090880867191507612341788490299900719439282745269938129923602944428751294982588349463529369560271408003749882293246002744108424367491238231349690761049023316513174155163249215633861555975411573674083808149798226134847310601484198203781124071485335218843922488769117600169096024802951148725100619441597002216885366365821264819741959673450398262403549289376859849331772222811932994236955425677795870159435593298476141977139407759081263780600724442549336421270347062421908209981350818093279351435303053178731674095918687179940906555564609146353819331748569363381498047042946343410272686748584038557002081005359078358244198558393661071109997474340962330882145049581060304740720412994090881444989029664668246550444442563763113676902283912377656845422246157979471926523406604893984159501260981374425902402044157629243586337282527576012283747697294309795014853371326456792981722055769956025208233576007090065517839901624752063101898779433168937396914400461940776617182281806821346521902846917108771397722058013021654234404202045061535332123814507573450280087471769800195517620780224076460900683527579525157337027972338418593033077960952730367560432363301712094934969765554830031677104332360457103086405809182942206333441969058914620900410396815362117531183003809060307086744162668173768791267612479782223395909699437808785094613688280135337602202393025143669030800771841165534031987573707324443583075640710239325978421038964598484530421175288590142021634401578519239932374164459962256279756635644041855724119599129770595660414739882010898269682805645557846109075831083805871359265908527114554554406856601861891958886597110719122700775082792820518130183358446113135706153309947392610598417266939208599687800455108844284413950991217830553059141781942926388420148898660865382310181579798449417603757392785464958791802517013899223962384194553149024354040515999474459713175434143899860831347170053043347482000427261102601543723628245960955992186573882042150048868784152387974607137202225817414148532265982558919046109311265189735344186514210616669338356767748095392463387019785704436919005801739889510169594992252689157808815240028812084286198461399235217592107403692666692034316205307536399554131090632849646775159587383582465859350166241492574396335137590897873309768006778624504131369635035608933872941045293946589934368365823480086498623978641871678613222262706113861137973499966439720065759190321127658857779743941954831589483955645291520995058904662827691563221235327853879578582067671057235869481006618074861405976952278643553836589398220782532386882900693510906083772007216423158844625378004283239958033006428812635358262866334506491290963503298143076735059594312878258686310223433374582314144344791491489587529795560783592917329811105632232466848448231016747238720528539410192735064829730887833247009839180173362629323051117872963359757727913319103163184054564886842733890014286917700299733385379239044694644364431005014668794522626630480609289767926552169746077422072440002271462337546142333514509581856671006491003577926780343783084847091436318803622864633751179336558178872737079863806352997587624318525809447588137413877355320318427356130984238323748810002037269636541503290669109536461205532894657057629515428951554575676507033283771718513560939235816499609832091833669775813020546265563966283094210828814633813785680689290580860883071565380950411850326677034949061855931835907385912906926231500178799763153513132053312874464935286135065340142527430260729388619699809231757640970695602579589090179437646027349496203444231627768556253372031468039932152487796108529555149636029389042108121713774358733457136053246457752459244475228660900692768488489729279625584149068920421139049144511945891021486568034157227936394283671408584213085269589363765331081981389311510095939560561711290909320123482511128098626355586839953996828350578118788788814102900767539229920374838531424190043774216847306914110194593975732577188228948351079244126277844834638256358766769467352817090791069400141443926448862079619615973810537070542324654956905477332289466924307676114521950254041354723795358889890282131728447430623750288224010448180902395964051318331836059452138011622594178074950073688449392713439113138815821158650573369880683495940117823119643962797701965866605895251121091272239492222158196910234121246036015727784537291173118553724407756442437787447320825918559607151333639054658524748706716297477472319643988668322110184564716133288986353539986211777684090132880309193013572121814125699535051802226335936599334433650764226138756946696132013734676083549046980742809652369724249686983398114614239646314270148422812765513243949573766973063508659544734801105237738184415021947548438168844550319911247044391450659504208887718779558311616244936171374137011122757611150543976099332167575135927630227833625421493158862328695212701350059207522217591813269819832250352588271895279559116607657283419802188801209346021933139447316050268787882537488636975459476359091080155010065491732260095426592196626990849537967701227400184137213594124706717180465801591574566643285869717099490599744597866767196894969383160139425218925188574012848839800998238896390535487680532898817019721189711052864834253921679614778172089207948513380879803016710793220753063399961693011561787766515126554882334535090514945484653194259956702878353849259390102021618390269198435696117860343974606822279958530441914915887393692649252614468799174910932460513703963687879736708804745340282268405944472227854631540750316801308458971670564115354478282114357542708618544578539680054067662505544754911664636798365537512257903189001930555355849317188776950991444458346536830076473291405106044006241437056796820503114454762086327996722162871928563234833125150153043519594489374894249755662414977374977631692094319977755420885912814129307283516431161458242947667384175257613928986304278400544246742436978927233893198236765918526011642933569381649721492132742370648366976616772949761850939190604181803066995534624932441042544716421110136747252137614974202697611228277125035110952273150711544659541733223574481863019073988686392877779775775731760246778084075845492946872688174461333410045602855172910600799504265896570170489799587869953896903631584611071761116629474496036934929665932096128195349322156997481891350404186460128247589666965407974653472957340880868049298164984712141754825122245925656072560896045970030262785029832576825691810839456296293299563705581762622041714429672358468822645859571377574018483558038713225662500691792781387423178563903684002903776688338807349915302026343957330820951482141885165043558455198895672295511967049545738187170163848580746431913743831860788858575203068585039540853034414759505588274943328719666404327815621978077087184570718632358574837142012367472286289374364527291168373939601378451044795593267190939422522783211561971846582113259391325670750090565873242081690221857524566346855856685901813671711359969432865576515254463554422173396849558248448617510560372134110292673183966757193081053435073743009300536104928623580150770581529674455643161559269017110134930522114780950694682783041623770032426288620479172976535316933892743052907410588946629921838304290970053935776145571133809007104421973037529587076972355791465269823856553428676311780288504640952529884292345679141359716469970910874553211914077509411394134214176894537429109955034119200947851207866642335925733528400905662782318128718842459197299294917375531129511519947894550624805137165792737571396909569979918079811688866298150312433679019714229735328948864149198441647443300770543251835530907651174154601655879006313621885258872113875692125263839626677551858108194659773032234957147187657418900313426661000581130622511434222852607066921767505952568989914005636803048305737800891165689130683623289911642165374737481110008627582405414350313854721814456685732868540270910291245611742742269940126339360234154993744382501575155258295333250900049309258646481349019151990829835268368455318379931547490863213890967724224615111443005192250618383561944135816158544595852732253112379892836438583261393175796274239445795209384137391454766744786087691352754714061227014210782026460558863163083052952667756895462815498726791214064809887723144804246421314382077762772637580192573306591892834006837394353578747618698267406976737092112823293077305119023328342023289394112549404116715718367175642625014914957414113524885146490784980985965772126310956455540498248466814611434159907385787233840762305272704343554250423891454020282785847561700845222069606689924862232851743293676215665858967599258583203217159309309423487987557538538835743251241819068678105192438208628747931784502383005094215458227378599444179973446757619535550148339475796003975619320637101151398271819935677711499875313110388322025299713020417397151847693201025547192156006533641231744675133364891864573014135300773841981818588998668528710403923822321083610745825693408386332024487603742944671554302289046600454097897942671107307658221311094630821896184517129778493470289542236931263101842037812272123818244672733406568227962439476300598718360093217797937567239331737140409929899117977497764280693368029501894196634562017070028775685378214080890675505082877747883380746754867225309947802154548117936241536711876626579189071731483204440640449955460024185703620177758137577050284242054976689150503958293578683107513261290067299721711953001519183000888906406114033819162844487210187652952279149098913280969176222699851294838484066541624677911649466438356202957502765624046184627656950037610515420727013016572771818474856594478013322345479716854157097967620802064952754685768115893545301639581598232337696445301992950106946811616630307910536128713913296442991114805259633248060500480440416710609480248977266630949251747242261376598586702419417853061052933239563778704292451697776386724217827361504102640265238957891651824139606277063130057527598734859610425659966042227866650673094211082346004985527470829315350084560520303423074488926633555012138538808958466225819981827160550023691184100683810823282850414254529831989865357967642442336881889732210280882882490875704456907626463235285026604003638283831315428275069006103574373918266991769820387685064442207525811764709102651455026265376530997256124553358982709699605148645906205462535596856164369656473769640575584974725723606537440965973627086280286784907760327371189468941828614099817279170875351688980519259524356883729547953453724607278487737086887582092666863493513188243411782826383475515621603027959971303156458645365591507255844211995690879906727399993947441995186015233305669097408960502939455547233367327454338930764763625781114351124905112867378920541566979239155142793839714319702532310067590750727202498895942481272680445847619890400950765184605727202894120755038985452853811773782586177781705065522638858442998524140912063944436924425880652009157858216030892910946247576095114782277690055842781952449195506073681672774355187214802185328692799882934164443773445086692565354724796706974091519399056745875828887486436267031710312185469948750536645605803443800143481822946074268596462226269422661062557763972162867405913881489693485205856353596614121489729199624335243926879318652668212114862964835935122847793812824222970219299089555502676257028374733992829352070239968599356473668202747245988725861275084732988403263100801368173893271446519584204566328355761201059852280196097908296960926853615725500492868675973442405874547190709167963723373467656086366663953529312407494612925835147072464486337966973933907683315498596812088054462933258228042134057027592718871317718896998951733471110318277417786609098844366957280391714302134136035670457129861105353265025399369327691485090320396685781181086098807587029174584850219657125846552350045019391548390277379551543193642298636912534747140756900018962652949339109818796353979947159284014126561971721144055580529532168625525561457971099678482056598270670790444188502139797996470733806718144687812961140753827718970864215828669073959675094586610919759935880255809992502479849407017872223516830833019851436803764903400511882955120923799261231290615066238660436717136532362099342549573393379399323172313799378850666503332219487567214004241210511458733412961084913890869647531992163456253772053353569811859828614536617001657459140890166354915434837211834692031132604602143721881938105965403750182624674785143095840358932642389276830488419467853361941993329503732595589033211651433854088748901979654804524996990414625973036301666600341441643980951892947879705486583627113113367808829642719732292052576149461375049328345998967809196254049062626740015375268408803897480970555695549903021598886170449827066961649656982806733905623639134626131614278342663664496119360365285990675618096039724875461905104172919791017648177697771547518539615919948113815837130652451387605139705139191714658945234861430789647274668962996862342182325423643245462168114109576007600468802268598526337972095298970985878718395368984432984080857884656786594514685248929460911435703984985466312024908402221038517071277093323282964075265751766169565721792882412286013731898425637804295417922353532739041093629530394904980788908778522101435153593798919928822275400143037537898582039463869984168737877204523777781464558937548758606959011407754202182108203879337603427983152931978924324480493786006450712327653167877925269370308996643122408023089881474974642019986734957649677877401047189773071128520389430103273854738842968256990334313075693845130800009257613690947069618978147408565680951678073488416452727667947349921592127359752946265650239341428194902488693456205829868264376150542237955120566706316577848765059890182537340460881592598921186830110639926333697179355144113992311427773917392765653482804869348340080884465557349590210080902304703227698142268633217601415113441950185710274569692769032476255026744018006643415354048293796703206037087202081603699325596878098959049651306475676399167889287093437115986918297945979555004274133493964341465202533118902615406073555734372102673965868817932471674312400027131524938575446282597809396836900268933282823620810808480953306570590164206465832759261858759989698564371760466094469426721180758951479615574145147326570126690968624708804232553339118185415565630981175342351323500364844951192951159169195458197442985972641430424051178114313698447558840864354112936586918649207066191222615078990887297807830274752112253368788612677734379548208434339595986691742199063853457714570763493693194833877877102808362105051472798716354948395694750238244254370086323329738586405330849764416872760501890189111882002892960211131297727739566311409736110435744041480542388048601997291467739062556895908035051749580610444808871948911919894544171305702180571007681507251356851189020883974734508375507934804271727844951413606198456710198285876820067530693043632466199334771882781054616616183915246085616811926912022175944383280405918195671483313561307911473526270782647966020521926766065938297964039096033247975984808543628742174050195485792867666206459182213624159462359746843005377061522631999974541655851322746087132834415303170202927687878824178053820363395119047677403378608775698694095799862242926622310608543037102503582788454043031114425337633966026672535987187744678767381955407911713626857523490301458692937654426532639495738645858741698633103001461118982510036934024938817065396939719913849178708911911674896016385211871903943709916556622465434320209602608137250013985614858099104017266002204971614536067227682648590578993221338706759805274208006886699804246554933779365428452931160366207842560823870120847941815200707955341849920369476776691329072326829186040446785115495962564193764511183512615759263355210280540544935294341280888769664114249925534771436172181953703388462082705258026383122050012365420500568722264488092197549509867439025755796468998045212908327808256367970714198960698436172178396598561440004489001560007765405919785992200815684357911454596553586499734280598544339591753056157991901940294795448630178127873747794732150731276613379103018788813958935302003462654358416186398804702965262045571465849677303024008838206093511581941447854587898678011983446660175555955600250807544061841684295664656040319067270086522240964513617293517815255696228022973785631291148179820276583853885661181649563991936497309521723077161636906052664284971964207351559833076261771236117199591548961303394299231035797405435856765750361148745425333613436684232395901426173726180739374140960959221942366724301256137078662488619547665467432865612834712694482407373271407306504904990695977866397976609322173656396559769090361880669033608047428947483758901071172133432084657345650170943794815520201786074844128760587516647401335721296967112407969622905528041218887892510214190947602433034689154185336129342225929947399953696387894235069391506794316980241977076345796341196130275334773247764956597127566374822993304956057143078902439705088669187224508856993338606479573516722079595133336365778997822329222269561160106599767558589302427451268721268107449175457037180838364480596362535824100949338085936343036080508796645406274692078166264764876981402789430492383675231947137987728341784791934628161397627760043405517101029838527285109233873026074540438307428593995765018603378146104924868595079904362597637409388184118582703443144353723034178693883463733921135608739895160867851689326738348377003974900725972999550720714467084374495253131003116164722551155093233730695082157097130505031850440314814623792077291712443413718130050285545109588314201060802196267003663689177572868850560260359659954142550894245171418236603440957816200010937634917747962533949040727198973872893231676437616307029746351039117559558473574053543642998423371914225089704015041971798699099704984300544670123880203437182277517789763285946295155696653525156233546598908381238068963918546981938454043390937497977519398314066603765303800044835702119880262481720146602912748069849764355961404548361023030075811864699976498548759039542152280229314975690456101302181323164087922342516561739007918234001118367164085769332090001923847202090741298785915973354080685011037228115639051883192703486327611173686220072773722080979368312524297827031064929326120501511957884504837698509520730462322577481635750353295190168188348479287386783679007437834875813253050681296161612430929956595306604025889911019807186545345202128080462393989504682021075276568726479846933027047958335811083827793310549189554320095733166040350769816289162399414892094119596871398472402946279012652227738913560956433468181509137764118727638244379532445321024145107782293852509534008296066620125035130291844910709165083605043961162705165457548120153436661977104005163850275867786201996365742024955015820717803073160153246656595065414778376833353081187029308318451674992947137792038617022135731563779189000044485206530179325377788042337505966683743661479406656864315833252262897651813693604062736247837570514359472426170626692542871046757827208745920583228440273114840038482355648833848999443229991408563591107661682278364129464931881801124228524165600806263551740636268240725602873339597516335677279555953950578621701719220716077668645300021483238399859691130546465333388697467173240223896538026380218459007662966942467369838745837955296409083037334094722164568013217261974026343671862495410852744002696506371661591395510259173658032683924947327883138968601477790186652043868845089665163340661129552067010168893500670525449206027814553512407435950449506907686683698069571796487562163577702844424139683537821465772632990621057481463078590330105496573819203743303830134170413795292138532730748957712663198257367712356414743880444701949160292506715358107609346777799509220632755243364712913170569940447175621296087947644284737414749534961407278619400466809944068917512082305124408125284170794367359720562758404824922464302025283903161351730238207835099262914886013602119610259571780911905525591397444285476201524312619290651375776650831924125830022847141359852878203760560555625433382512057645546440645416675880102429548294664208446063948090806646773929427550853361966573839107379063972828321458103797093636048804596092882492266149232810356134652462511163823952857093997326525276108934092663680343790604780481029707059466240562533650420519783475690651080025761083395253938746192143713339887097215462388480276672097101254155539607695241975904529854674862208203371500986799824629088795750105220716286569502890258369510978265459800275574043783207786536744355855914842389164604370864549119210719014629647135592236366971549295611451134803380496294860572080758023254118208695710853095699893180843765509772821633527146274280196968046402266596170323095065742744833208470352777772149737403517924428890595506903575697549910593569528643823925231328019467769867862587925656001293106873909495616242478831058469509690699666711312639370947225665588892066299203361681195260255159255099242833175966942089405798702419551884264264516219325533287731736076527311448492231967334676941725310311335209676280570027492818545505742177087291985417473843951606553516898664201894387537551558930099980175604466946788193685895131512357117864761454047684422362621705081872198187611973432205913362293871306613619082640924904474733470085200493179558357446513480667627579658495448427823519430575089548121542830901584760809863477276552619014003074302610724488497146197329856125233453492421774975040659932143693442414537271060379921283370269253046127067167678011880375574421500303521897037692702530308414159046379053517939408900378701113729467531210925636630514516684879469041106536827206256126679545533633482677195108033174242360942205812175236223858991771754154372127073736573283254542376045064233964841453925775155990362772790773228106878786970929375495443369998141259903838681637850661822036194790350088679758344546792778083092368123640461543471119881826939225037320653107815083986140332541600988744298776846466797965464428103400426193147934911895087061242039270272001576797231724511986527533125589508571124942054650756748409615419823840947009422561449123720261232094213454697076286201188811586857087690352634229242237859729610595223655682656259335562478376992070968072818150394933613338790166525409798669199765823096870044383429000865766730539688539070095618721226579947731149598894143768528528164469016231779304640036369737324105414108537352482538953821431616103183831950570118081820290494283765239854250001169673832205925271462581008765989329764344409322522057175835238158515273567286402531170586998390758014563970372031474893400263023445130803342798424961458094633871129315216441747633398944862868253656112540913409816159866066389554989548161977677816901046304420496548504455854034449702517617637863239495237567664120026522005632300552608507340206518825184500849662154704884443903300927992816027723001395590567525445356750396781007096360024331671073472684124582481671640010530824324013289759647894990494344420038334998791590914511643796864549112081513196973142420616246244567993771984742513733532155919279927007448030702627335519481242861097622006617896288493132435364091098693470485207291033592705822846530696540629921842558832634752371462277134859201176084190647611813277086856395538328534088435552133632458694503517779193134658312034604416947176242633398623376035745722457792345451679958139767941600614407339771416552250749433861812686329317197443846173516598241193649920987437487792846968069064257134050817664046876694982793880092696975675912305906022107458808482951649241124438479132717501160863072395447927628696220918889921650095276230752378396874823303476065489074389489397224196037722277354961329565355947991223135177629840247657528052130273464015406829995185314769090338164265068490663006398696938403776284126388259242332974193787169520068808501170938573318948415047728718286782320054835979083939629872506299865903436001931119558295249520601443798098539068970314399912248640952170380696087706746050970499623124912135330419973974628726022357544192258772792123045364100522606752440201276571713936232262383403785516973166284474134190917785464700563004256264535330519921094065713313225789281079559701308638010462979110308866152758510096450724019410500126801327219750330578614174326821885456789383483696607296374809001809177603284831622343300879590344480070959173480111792224311491329589574678176565942986691522509486678711722952346033906198807750067965255494542121615297850841563254681169035089588936974196831127486794414735828203395830905384848650273095587214041046060637377236553862333427767505594722559423157079900080123303700918366801302201524480674205921398727186950426166585245214758326462338515835639508942238215382363222705517528078852867398227807426009177495434013754931033316602159660869936146376246455787041498405371957766613414225871974661144757595099310476881772755693608412676740931461044544077692824701930702473863463445980636267782112815572686445007814503310631674176492882455168561764290566117783469142635220872718377659061517564754584697051515336284770405144929128529694784292792524174759179927490586906664844801160859817270049369176983271654146782974763402359982605412526272673664468347550970877398740098476879146942691488190847914693151002627461026477954982953449221246400145840515721679504492336950479261875970773191330276414485166627470264061031658748845189615128577949981259444983381535656099969928345662745511104758110385353591321366345310181216816494733147275189036203328235060076845122884449205147985045723704761046335844980749098638720865301937868127450064302509906336904101426006754230720327440215600651275462117578430435092734114105713908998850019186310241875082505296759056563028364525641370377168873907813180430217087211847134217788110761396006217671711994872966463133186419718403543832909413599980695573616861393378104395176912610491347969781242698354487274852877804922113532257984009282881787713090952706468854730754302787786135679541763967077876095545092077126787286598361933376830398311747786888962249120120610936959571158220444742060213608091198494386138327420236076286421026289222575330641254000638940960584502023043206784401234279867008828386294982459401977771026133588710778948132544915497024737881945245741046777704211264716166595940892574790296267844899630320293441342178503054007371754975259291054635789877185285859346606724718338533432034415239747043465415210376788173470631892179596612855670110196094650819503878930823162495396793325161788720789760320535663310459070776075919518002704706578650801496342244398578075349663587038565447108010909456515828155828101909711325952660311120182364506071054664749766918752029392877292666371545375083898023073287409863246198704547214293048224624483853046007258106078409151485501735994745956574158061064680721635775784356781572018196107541477738717134587139667099577881672939572236653466520687809905148683142761933365966595354275624865607147412608872066426789597887017082059975389198984373419108109917130108769839555369409939919135781115868773190564471691369589541951793680072830376124282093043975279912099866014015015818720593885435030751033170858526540328454711453399241988894980418730322534908899273271415740270267133868706314502158766011995447433655974413860849035476177486525222987410547704756780543363799483387445378706915682199357127517735048184819824511399498499040891425882198977529245303811193196458349192637826720050448486405712506237902453504864024514342298664257540006441032053373819610146262620227031984219247494189351414887953573023515613802849136911156326175203865514433116431087661330259291305688540967138381804174368747060047098111338033709621227891043067096549259736196921476181679316097550302630284858524847421226052836401719165023681699902777207327472587834737707063465926416186069505833796699150402145706911576003471508863432404824443312444270693873436379527526350669126179662746182155692959674306863940794382991494550018997630933363400189471012230660441200449468753671234460355812111555264295971794645263621111298542521921989618404344591498381324128452553376090102786656749292784318476655165998248248606339810500418093120949904409608310880200211906879920327657201569937515341551420586523153275473256306551174843918714866355620199306379821463399839709728732515193000463911355166257048375001528322791833675513721881824406444197773265920865191373575026148642381540262556007539454740839000747409216345546289536490295040002518971271868574615234120807152352641622528314869374802848891016712787293383155609521804599743217126357154097948821409077851345056685692285158878643659305682856834764652289658111864241156554443949609920535604960300624015967749511517626786466549609417922139730639768159859455415534332488442416223050608406537378852859814473137549536781824958810829735158585969933120046383527329435336928694112185633342746520213950439321820199209009184334888839497466742113110921608103955117497032637880589096311781759004436333405055387562322245749983673614246668014776363186365282240865450442092815016379186497995414799619039117472406354744124109531018148470510365139842548870286104728324623397282070299627794585268899485130080535865411232186668180137233952395244754579741897023672585708303783528982851535135190962583367557405484296157975900369917109439127233692396600453974012092603569170451680369324623310941754141971448067476810186790417369382583951735557231147839883919610756259913615296176532454955303330254767114635982828743515079226488345248491673478798973976865629841934099449104138533837603552534676943641726278109510086559012317191568590657681732017637006155920469329095668220853039995945177404023197948793460543593100934559642618613894837780246243890372174429621213145916210519624154626321225214287093799870450823724082366959852413670420331771980522968919595394516166247308398938453979370524339299072952894690412684491478283855558334556819863325933765197702600484302819764139179500074165317124136183033922307807173765072564035624713979543987299821993867345878228191906714355935202260960323401059078031436351515416184455828605098404940726852145808390080168306958256780085470322208584154052881560906524856630205081990950860977330904201146041843668327901364036664652567550671130632189211850558074418229207237662897079950006757245095866513184109465317094081068226833463189920489984344942235250349423588687251759861797773614581827403838572011722501818482393487294099563988552959945394437742957379627897141967454702304306782351940977176561023152753796326809089678896040940053152357240027483002362103523359310284909425307193465126362825113372421220605347401563024090495604621627412667210625660998977112979889853212923828864459763790143440521257903451964291151191118028846441369521372641622241972584571517279956593235854419500959327446367361974855631746617037783146620982055428857944392135959911904741553408779190265761232221314336237989257714714718733671121162415925239793911126412726081941386950513681667221934379303583051042316157970255570569218725433417974746559521315168505029387322879505098189730429418394526915012597664409998443681136915476112332318170392692373123278006189053908461934335424821191282915358504735726877250482063135116747936136763438730725063247338847242578231729207190552343395588676697838352306059524175712902400591606343291393501273099101703605660088097723498815376955166782770460664253594328824258163284621463214448526618104367714399728447793469317919378098153746354203758155595199905773456118193363349805498820578680656293690185671492961617624689043791574192276958269770761056679844202215192903860301646558039612972347921828506250753049790255815355716895753374428361579496060794946407749434274773719578600998061248586405262298668700669528628854465402416115230190519653600198157813684813382478079379885522470447966816826523010315427859846319785206959909115359118261363121654169030793202875486226995965419686048944166834935407205590976471612624990586433818470997089889468291877435121576884518297318471596440544207090822702359035741809593239889230445618362434720664794185242187529844958172172444068626350398132005186219926830550952139520656126449005639936075109215322104791166642065324845122302408606579454394614721397061863459670051688696001083708724738773126658831433772806376181213290041186863425471858649853158311143529195862762989199808073165460569420230441010270667261212008570527654592823324678146204087838829508665914911029335808952169806999666371888554052536792559947190343099485585899952916909597090307835625966707728077580156767442829394194297590897618771010172316700464718460548914408630192139046833524092909673393204467596531566947364944200339574327189401251315632507163877019626086105835813709239537377793444701596311291309131851576436060508006293199145956906607748669116605147983376813579302458436514461782336931155589597887078255911717671863747171878134644533961630219753052085136131148714500907157993680174592870068993087161766806017277832451732228147726271648709492058307633482276797040195937722888819121059828718923316675167991219860391596623639962813513608118005945542867745601192105870444616348951959445548478835840557355646259463012275721878866199037136632080438613780082863463578029781725428718542654479842044331175808041263755599776757828309204529106592712933091030559661851771863303438876633251378062004634077383656350405655306671024516335552510452466818919810762848627024847470826452283088586433396068474241243125149982398552037898094822069057901300756222958816360408568471136598466895183049165617482798824639602275238517866484446984408634072545512459867437539819504119643992447819598617907750905074810508039822257144021265702467076747500250113761329344486574776855823817469571655139940740764991673923106266058068877485261937063488927917101059489603539037215266709210313507852679813325250904742908765080159771437517189635478588842922297363931699178639363507878353309945577074670540076575285321805198639641180317965851831392796239459618275418285416266934752550635806382600500163020661057566304670604363268870833834612797141016439452780660891692826151815950052638454540901709220056112057774794654352859420165189136095382669546713676495716640324334411322246004012341916911504254609084960299796939168676872747940565985580104612208722402914259319360477606908108065567496300530379965600246741851778027681468861846795140031757428349897688214840486882689399540096443398366704508662753332380544819453928551221539969160501870297782661346969317669299900119550565701782969431687420597461167163016837553206841149720359300569873945215470371662435483416816015410555848386716405112270421459335050663875705634691315193355073237799457830520410585338153294411077635272061610414842879102140393656101142816688112232477615749137785572368860346552133878219205615051237323661535928989353063689519765618280085134670805187795828803361379339413443411571969820443788825789545680161324976807446051043550677466630819045826066637988515639764958618425852454828257575314123963877967286827954286938372815186168383247005667630862648234223407585205658805612903662456082179550361162414948587100113979531467175770212503880210681335100525151903606077892222641549853683960782304682629804538935379772759839309721296225295175969880509370504984659279537297441666955659804717813853232213733067752352198171873662778859502233901774653926037892910188789972483450992716975860122720294291016867523916756814681045984371042082430790877112288098442271936000009566223245954920825556631091428923623368433075206957704647309034366286718402922468502867820595986685192473333609154925456712095710106238913029846673953582448950830079169900485233046964727797414878549414018690568763667118435017634163379606417128289788952865698248930840776837193056352721540590332330572969155919670922133469738290576853932133873145580816568214864862925414874045963800362317642918043555155960687652263080803469309599578398251044432795960322172694357034215569025688294665785560459596772607762948260389036246620520695890713092659186653201028135607234168586948316160608315740771074833135285737963112739132290739065050631497221474729513335885580181643112263864619955471286705230592576408442990448665864059144670475194665624128761630679647957356695803778605970675439159312792993889237849164414819556841970404341425824215454938583342592938840987093246602659175052523647195238555172134717425247507450420626666386650491831973579383236496988906484131474708844391511423540043546848494222098354016793525091379892136841736084610395682576633819539376051332235801384396273235306538581771932046786304689423320469597253231712253058997607467457013160959777150907710461301431720087594550833620366460071807007971245853551068641395740665996751591756579468904695010619408114139031617510960807711844634943935939046009626496851952185546148894164254801741590110431921637531564319051221402489019362992950617997606685299825683996666741741834172992940090761975657660509579728670716187116729488163194418109746838599582715670514845848381785030952828656673442691285291610879837525663043116921032053052247204508266432104881390138767774953733917905597090913446717982706719163195076064123797315331346575954620247813461220990446382582889299424019852749208501062835000499996938046402001960008739476674849402671635486224207680701128023949294476475285052525081871706076473846809860329760936219068423425804328869082400024149096671498471880790978412275110706035178749872575728364829302476585425020366492286494869533994419687672773997590984984546652710123776412948655155613957559940370916375310413238316341805008846247121945877648523157442471628211976287822181737498234469164761540020048505213306122597736268602074083354196415014740868412559261553256548893837323102150278190082569283253560435985378403225217058337902958638801739785724863107239373023630119598735667920533437187381407457304945964976273014823190156768911653786034022127050379804586615573531009570080506310901317877126455107196723797781893548250100450576297961180851339821086214967615598688679922979392507079277535229805388671204302656463690558449275364258149810974998081233631685902562196843921163298789294335446272340033205378867951363551199577085125458006768786512533963766205455456408793782720575200155309036445925633806466795538000880044698826928658030849293920213800234193050204786170972186594238780350303188390764132361349369600753601858706623948502795159843253244528524822253532841331704005434650313259269219602530906333317873115870834357315260458688922649127405148535445599410156940554231958863709476176708346079800203318947061653384081462275099442015838383585413148534742967143362853327073582596377914871701259545570269139296419394564416664382911813503746833418178579017937966134900206075545946422102047166275680817484376242118259748911798767101158511794171977024204109483982421932506118622333413182232233331458041793441936226760610489212956358221831940075477864078574207551347979160088650942388857575258967311050413794703719240752907603546689720429291771871498592244857332160554226589418277422149979893199109684160284031642584906633481501819096836530886451166606892815181470603750628851600729915337286984590269846078162500972040069426267777576925985055417841916893878813020440159742665118662117231989860748221698995893476945523952885771047167737942459941957503365717830992213760287481379902978900633732039926812463713066009153826962736238830636000504107730216583668956814429494106982959495443406151382662999733336937124340605534655421074077312156398326297982615787231077267732734840003548825760666231021672809552763114421215680299847175226257871148153243229818673212280646096087850878554471613472412481622012408514330727543493620154831619736315698426418195091744789257181433871285539312615754488785922699274654511884089910524455973301023967291966434699535682158938440092619965031651405383420538098191442802297151244417595552773972693267906260683743831642503035133391481221472947436146898737049303788955824217577781268634973005614233944719879923013149053973528963602899358498290128459192606866483036391195559542738337256991669493058491277039078438970216517664848580901246631924343604579471920871579430649205950854414523342952669804696692134297314286383816020836044358454143869984966729625322748608747251098390344674186232971086853647075748419290032177499768928325591674760199818702398332113966386458929763104153365711324584692127786229422515904411356881155106055426182149134570191186091367472675233626169873077565125252826930582764270611258928671506432472706494456352400580360749809994527339055933143788314683568525747941576103419491918290113803983686035264477926066551328737527708204483832416707784898024247478209215579953905826580040063148793384759235890900173203233427415968537307313905695156451784035326521452315333122195041232806995063015281603343284306430755444734130554237140320643872600661164843071061789106734227864069980902264080631669044923701588427368155520202029324626744089406698857478556794111569932265453404481627974688180353603046187653713865423585700830455050518149392779941519791041051472774231573171275165374462751987711383546965152852801777252686512723047659478961132303481463238131023489567922336029698346974124934197898151648692957435695652606523658558531077228523636522685301913556796498132107745689679863061749206821358851405667096503751610975653717399020270301955360072050683464648716387179379313280180558571162858190454421325773289020383331673692725617026094264350927438150157699697312673147822923913707416045952461346256032004690350649501188008448896789095095527086101128828137245850741175883685080954003667127008100936735651349772552685036854524377422539076357696760590410946658489890623482376349938626706577331342894653265015938246602835933709753613629108412362891310749829517140509680152274827307394953839558852375515452396333159793645393385513714715433249375124219089532793942298397392977915115403897116579270253240556522108246994500920199429239228404224448822823284567475566057368367154168533168880098006047784512423171448715820461971003851886732820959828281889232603715268306372389503319747686819257957767614748523513504976998666453910722761013234738395906144254799046812021248400628003606973372104605304543930546009016314761445596737413666305466241687831431903472522885788825275490045552235616001511509827669912800428567503318226100325676406517158777332666356218554157740591034145604920909274831572443929698532576181166647178575366330748760704510489858197155389749191367266782847983115496931323497784259307676355773685609890870686401085617744372110520405325034037646938985527524699352336205307528549495568680895590216749502197681207464300445948071630150579255202739742998746101631203126376295783240047864975972397860693499632032366454902787178084724971693576745473316133801681316966288639502009327667457286838334474939755192865303537956963001448192172916174349442509453807402364347290921998492322196067379980976636757343474086986759962785797564958385960595844863045971491735612172351216048749513197654752177477393410641182957101469627685599233575889656482006685938489762804713084418952607627555523855949845394085590521799170970162740534927101642971372343816798208779873523113919961839268034524469265672576423167388365213709483901029343228732076558894468493191105422558246390375739762676877813453103012962697517102577010770464572272242900804661954852938378563588306967956634817183653379654718880215500747986312640275316693679660934436898872131704891301555587571781490496943237378250267724925497801374806514926546213408193695829291516914510179554170869409663150858639124459301820545506291457805128302499089040572805229005645632176322598701634483041704791074856807974773157015700640531390045436648217611142032988348627610844099479267703947703565094583249321312923467173831994133158368962931012612810531663942590360980857674339429906211170143581560377918261561781622610653553426422602941191895479225619525539556932261206106856990638475082118485483227878418412424026924420733409941154238025057424624479918254512961557138315584411753083042543820588957656478890750525922390697235669410047183661214248405322199615038822630525055092936294196392118516920850765380037223319798996316633235185006767027717803826641042120205864664562423356334631081449113565957255371093498632021747342140619479554755399785677112271818913074647433096011939856183736768999932624201417247476364648299116106834075493339437605951779637710696849083876097897748603438672807327034876801980703814464427263248985521758010831629817903056815126155304645778741943210143924647230428759236998336900459738964421579755070808735808633338727661033834364163833069672465405945933402707644424984877447520649582943594094220761918677164063022580303025972731567769939779858598360034768196624541841633081719077457774766910012888452021525126254784194860184277794244404598346461297964930007409242887635439281298145877552101735061533718411616406341543229482232330979391912838825352155259099623930235094104581971634420704583965697869365230654946776661514432408968060708242303209843948539066951902697976192419814045444610423514387333502811775356152964287065439740161010979458743402049212522221932819624459650410649105438153092139006776492065496704371004319474697257642074520679875485455427084402596369907281210375622727257531873279424377469785553910990837315078650384251536166271510846912246473489144585973141556479937596021883585105897099848414388048364203351596753807280026320310168611661988646091137693123527750964175797779431983980060585125266850901861928747114546741548327590928535447726180863088818632711248891277954119925755294380697365955251925126177746103034282879524761960709447222864300176466239097202888293532286856427057674135189397364721036802266543554074818621657070033762352021407884592157283453725023884510315015667612975287027562441701963744747461214194892744371282641257285164896927832594135891423175165987289374446716701132732641476206697024642720619449823366730628155631734890269382663598468920333615462396713182979031021846628660068962786017395467289589052548686590617736958763012509024205815962354252434606889828304393710118885061226317202618404296124836715071637438554348384218885840287900051498393170803104998699204751116831340504743851667644586279307792302124306992020686840938383637934184942162184142507791123482226003515852635321185577895107890648274484156554510861196571370978852239286873060587525147780719195149400589611511520141980082520922639220847811813036788371212520712083756933293558770839425594300684614942524244989284606032166151736671844400549938630037022957097544333774750945525036064005591588073439030449943820484084989215496496358788352399508510782852059511732823847735751585787172054301488088464105839677450921842997742215640695883344619534785714259581681179948060287837747686892001205387101709474921413366277659729600175460748471580293887265628236359925330634867681240843149686025750612613170168973931367944810625225588120934546413207580436463174463097342532736579966164314753518958750767380171389996703435204585415338351316678523809569230433236840941156422141689341992192575230352763808039092965698159637263706212870485655401613441244051136227038951621927129383758974066934640302563949261080005816643559135875003648582333190741225151315148330754936578239716656133268308815940548772199548282301803381251767655163497199288979693443654466636777977406712321041081414674011089922323572231951261335342015126572853994783077626839566984748691037117406588198857572265362617933518615319066229410522759781632024979878879301246996284105499495346614015273217906962989702845087885442168884538044077264083489934991997360158052648531868196014941317434355273891252905748359690709333249753930403478967007388639032257584188992750167396698833070045959186186502100978027489851594456208268039343061488458725927589475299234525073340463102825403793751955120140494076746472822403039096515107910379760552962791130673755993960966658435375249005264037004901239913927521980587960900541222141325063132346314756229903691818764165479245258694341634197956244135084974085118908660780553979074097792412865973616409869551790550098347306039135754565630946773706112236728012264256194753731529066145036833243299552161174613725850367407764182908789628398589115184560963343823491195505484765409906087603566620098371382041941576577144881625171153262498762402288853867363500118105997625592549048924153398246400618769263532001466606561196801822027610771217000691176642491980968358241029240212541512322163273094195560935587713019526398231777633233883587507714184919630007549698770464581287189751013690311100132451188937761798118534079008212967634436579600254765482240350397912255323359101503253225888565859472770684644348691320110409033511160598925377786565554829540812104427136795935541040941182643339903852794801577159307639878010380015537313663054893284526078547387761315260301568304767002033790291741842442030090022410985233245041111916537038824364554402466047615923280805410904093607766730217842469421940899563240232056383855996867561267373355102116002052797333409566834922324565996701050888654204426585346904121637736309677854578823312639420435233238817203536080972830053530734120488898299959872437726042902455441832570526044561285624840279978837206406406167617863447716381578396824851029863527212598120832884505072093746463949243733274699819430291394007769991125557647195722652880231676163192910750193829895100897727077683108572141019296645148589276808236008204365485889364320307013591072073243079026828726024274047811535644664100860525055468864243298802332805736743996543535355740649190939536274940700847493880145699340640508625890298487242144519338885408308477796826857610668293789429088131629801405803634463293695916502808411205433563237109670752726757895208284187824573291227502934082729508753030994550623878282845296310981673994498219967482241097083818430628548242817847785932700234199763888816597464867844429415862319491616317547563198125472046323757773533199090158064183352682056872582806132795496942404068690098744806528162717283168830347485976490704950916451286142019836080237477781384944512415074835469547268275566759882657630974630143154501942337281205697140756626824652982688898800001178132175363206291548488289776325787017985036917142488037704429329520302055377784653785670860672294989555862013395979419969861489253745904984311814989277807926279951657960095327510756816339268502410980198779898851327827378854134794741128803970919863456224060916958551291010053232226157286091837527277247562307031786738227113456854286744059913081142524233336396515614962853031208179819239235863005002090732873492726289124866215993886000204047137906632053064024778031671801901094435078410268066476041733154397650973925629363405216227950902824935494830793101005495008219533275099247473747024128815063702386914268943126905603046238739287632848553607424819348535093499660830654859053209331992562097034956115266422634149787511672269641534865715685371986650350046075999597193348376199526747465449664414888586494750684524196145979705350947303814883487526790791935390615403867765988037207753940496609173592316144008161739457403869009570589456718775547941648495944160515467023042150831559930349148102370079886472296422926842506840871625713118633367565820598953870930895666895468882502014052563713382718436605994872371436680134729634746242639163407210335418486656223811869431084672055394999030955357450876345156384534682597487800686564644893901005891557157835638036815883615150077400738381296142049467152508239655481408924970975361318852556732376705816318447349865723713915328714030984400541229368052136162128757143994139649949442776633947869868290021674099994497302889819667179034079833131760510602916877003794502873698290288812699739196741753857843016700858829253158179395589054028198835142837231398047641225181545584225447992095902055275147543626055174431282768513652452208266170596392711663279598766506856734454767414101337050336112443867753686734483720365751853764758522835196967517727817721645812208121951332320078033427578009492904819302169079703323520831732985974582247598829966341739243768756992820377448483314965426330056084913439308879712236339067569115712193450309939926117917652785030143551588141822768916679199177317461795277333348100093653490499167177216701401835303789164983155777828933441456799537188875929802240360911535949952567539269331647747697312572348883980999439006749522725664535126768820665335060590087003226168825836861863729921524453587680474196763520335547280630577492841482944190099370450249073022503183937367826555456531061741071549468360182452663309350981578999450358156509745213895979953721530465536959166997668023724577491632611100318137374236157120388963923697595482489240707368403592633024490967600005936307351286753264063262298253215337124946874387454620577794417060576032752513038125479337880280972111978647430204400464511253626226892712497560359335019229715330544050462986859536516401119281933158900865224269261136392624707900753021578626933295582991684738280673926285837182396849038161118846919545025041035655296694308784814192441671537864029929085674653891167649624895717479080423745519360405446356702583549035028854874891116236395888186296596152920200424732971903813949057454271249506435370503185352922383903762032894270480098548009492253657844836796813919944193630848152794041742404755678164406243968715599214860679917830592457806383153397159098050305275739160562276052519396199414614502306647962455828915103971943076468484464521815228622840679773807121066779625567449515244634745866727698067949097476490469611862609116603098319132459877168059607958298929938333803390762853044649862014070114098591909852551299926710082282721762794378084957691638472114561028076840543566762545860285065970879680771043243403019385003723926897622621829390305083026725963439815878709093725352417694160681493874254480741641545612626912275588021686435371095592114613000587576549773839137225436554476158927555004169506977245053062636660079200825490605098892349157351149352600147473499496831251694109721543719227227881731806723439940138365048692974424873337350432640904478446905864404662795377044047098994278263567197158558165994162003572100784197321571603256410209378218009788451914597723269072927131377017653090126662558323213778539103179816601574568827272511195998004146145720136448811503626991203656648572215367724179997150644763335722646832148775248205013447983671718925381348369058590823137807177418401753942506565820022404089661040683663205679203041600322680539900184841582327724924978863419307777250356443850785797737872844360626047413649927260694612675170668056076325901006770778141757411546326575332314735741190728614781334279093455631209926790089374201382907869007538998579198990126645695961258559581569907545715224493084890498804956837581954176291802645236906886052702064691848357720607520549097390449411233700379882687799502676767520982785227093533105590761511130821271851805365218683231661273974192885359214449140242293959580742247609352774082037921601380659952353928959895839138652728411951131431450358906481449268458535240603569005148535372573188875945494608310409074517020952378447669708347453213858845945377137355227657521015405375042832485000563856520589128680943147541380429451154116154611951325048348353992568487478652075653464711361005158444211047054080021218578258566949021282669663683182834481058981550718220810016061331007563205474811626400276721533107458930211956728082445371163292694671698195653508047098883632157058723344018192982125236611614883326845810975393042283113016297421641198204003406113756824726269391949261556009450618137710742555519958422576271788346996346977003568892167147129139405626733469539536506471584576728102352327696500207121464516894268812630360787831848171272659424194670847281272422900408744034684976121050556308553298615044032378184065794120491656072387083671126482699545752190527492348289234141843065237775733145797174214811063809282881618080966539495551872998684298723979234356473622901032515065982323368448436674471316316913096845413319641313729162361403616774496613595029906661737556333155140269579231659628145652141648263917788862113863780005583425602332775096856849275961614870698640232167029578885814953900199438946676364438375973309303915283381765634938565699830856213021917309087589816989564789666345779055864085115583544745184631320699581360844660766195742432511542344071582028282450519465112371392524961484259441310671801307179716922825985659972893647118662241538104344661681428612711286016063508560638549927896937537628229009306969455325784216156183352698489675466604706171825834706542480411871507117270714895768748468812781715849207226766467501452153034339643768179661244699688116039873777626008655307216675427688063678790660136011472215018227920101224815933866617465801597126149162277628644465089089428221983185821649537630259949016301899906583166945856449234554023916035002752858388031226675076861657378049278427292117675459037192375896256719000105345915438296807428618828783449561825819490046722619037757939727235339407499593197031264017431982424930064285264945718061300393604815553806425242958627977467537163032455896442421669022440881884383616135603785481689115837937176454522905523157415992938479742053710949430171324530722421442058849010377674600856552761699992759815856968990795152220804532736292758994857731404564879582208751865531633785867571831591920204475283541981781769285905625918934602409030048447324597539066179210185292763563055049969620024948330839364763001855952932839142751401481229063531689798527031598759179669836389396656006783793001148844555885638295341200478005077493994138543196300320977263276498623678851889323540539537040653059125190516609915161735298585157178840250649922239217265894465010154154443817564732785568924384531037059401848741748918650428561632209125086999769583139763676157355468468962299377322082915187874085742063261021131298912793619353672970310553540892023492958375947174041264012948547861891596118757077376511974592952399988891983645371909228310387056510229203899838068159932431104079560286752178695173360084819400133351901291410944601692231362719317620884823509558120430143155623790158750681084326310883029377545953513574103167731017517122888352934378363557598880105662983867415653895165745051991057277226113282783035855489930777662576017693940526854862425470280954800898492571757583714044808650954929696953666737420125764983464363517685296212929440722328697419216963161521113729371348726756389136240440326639155257137152484497641912001830276560368203650251292024435246268797516982327862127961891165738864171961488700482604250229359115532081004459768774141692055907182817651799723718453058438329568133483586008908520349978045864238020220336237158714776587827880550145633991169801310948053571037563405707576504320692619780739940132702101756125964784593191171003942308928378046032843227302598859152664829959656990594423772820369517767117507925147072539490480660154149951982005914062541890153083763668367650245077988954748392782857778048929674013190564882274643039121261560638442566454114088422876135166562980414337446117908716810072322633780624922872410429413373394175198293302735323912345588231899757792167007766213984678037982393381615035441369158196597184336799314070098066696167430097939875421081502218712179827450473534504130265535390447287617971589570432808173398762489838624995307979227960722072289084676434078156846639875775149307404479300663748538884493426688291804204744868479603921847275957519487216841033677165089740593146436468184008896770073802019359759220619133481496899417548782245125504461987073545169561275514703803446247769277479120961758490182270513125003165032076094737029001225000873248772208018167517167089480942800888147962066047619250787710809133099840746805894697900036756013161774202437466368359793176740179811959099146957696354235646597714074043225588036576142358941702293635556164205232164089441425101198040870018650321872491897413393374597329277807874638028148646349204456103538822255648303784471075668453730059222817280722115987380042432954653380617020396627257278322951506721827357541724169104315529334978586966528321965259573139378664916617107669887448481655821165471734811763488162463432971771327364466823503233313509459337898808092188419140541672770692732429182361435779620937275133283146465837446766119851041669012591253125267596252451922608394106517562969235955886092048331380370853929366587334498679687701382372369412553708793204970813883987380745766844334453081355392503533160956714265944659148158793464995406937542210356164973923752429227984806219844636818173857065169597514051093626607787978378640434524605638617797496583337661622359023254797800930306767687287033663168261536512130646161114848674989564662750528252279810076298324603857461803223084421868236461827693079997303328920687116485767775431163698828239378472870901254702798393531937375586256368202937206243533435967097467375759415385126088608018172439938300935593899277378018343414061466950748500605639165650592663304417051710112857594103658747776754617474246153843453760711500306775196759272554551437849633310986358598762679459872154162690895301047298661130514408245580832949065463199296220671526839301304712567620738250785268323098676294317246250834509258912411323898144318172184624701577576199251219937593981862062651724540826709225092226752914827051176580418749156227983227460331821242661335204355706522107309305881592721694868827812107902556577015440392098872144057890129838275849414493685866174388897353609552887055340180220439282654403371441821055515174386488840596470256346360395758022006170307593525473893843317806315400933079562217343062510980439740138336697340454631316979137583022257906146513203479960511762573377478295287352090989269471618960195778004423840935525573411379769708263482513049844205498550050004487034163225989390796751944536555551662767852486499837254537681297933952605122115500022580894119195122777278541759099213186633015412294413398734214315210863838639348767087582345464300447930728447225018105338607387296821670054097410031493130008925621714553884855656866990584653477375506436392783618939421122392687341004308124234913641397654307563698325948751595731262146933708342079650896542597454058302085799469753268275453112681721790781001690571624593448791853491813205025327260186102270524663021602583815862412378996504236189658872759411824408992775326345869883400513317739030421588239906777981944021085043358023572427576997154563794434553829757137966971278864130113200419384958169606235565105877569723971958573809784543202006459717285026470409245200397870793103415378175336048322657029374035038448009113763843427609756028739330621639103716615752595301277101486444826784945165884363260906792048288733634962501194948982440482552970550077530699493337086644303613511653938242316284988858373145980203748098564679796136083989797420274775855755027928434297394917985623595949360817147270270048672980221407021525079341673355147417313179230706503952989864520274729578101527378515745101200020433295091010248837556499813425381292840072539577944845814254689429065433950068682774453688940014050053305199110719568674565874706040023364714867336743702450181717194054251788770886575864522644292730963563320626211970330128377432189514166471375124503119249360478385498474241459961808918359107108022211773267668541045048199128117637040910065928229375112942936438675461006360887078192124092346627060963724696089643921475680798093661703990752959775295219849138027528880913681817931860969245086144776751534169846885278775076111316097879586801302099129237899483472613444228291509765753601406884466494090273037290368864103069675188516311701647731200397431860171648222265623069551645604177444968221594570928188545428115061103595797152155887570168975057614729015170385655833833434803571530513563277998987128806028937031953959598554318671759430155411450579385092104911290776038818315480351513922968793494794456714306686671858921399169771943021750230917248812273339322125790832289974238519096627552496648038843046596160622931320501704802743500012412387229135454487330871086538483536940780501852332476851506596642144758201015753702410865501361331766500390326016112156558115195993701920194828115232904486415099341110142325595378165376321676042386375587366965599565423304764316059389799791121238530816390533483845684476600858930538176154266610795963222060451706798447392667779868800782111074689110475213287742875387553173160942885599232241180038658945378917119228655206348755915899902059927794088594926755727840794208732699620319925251515829725095072831156530996187409815736898967124622425772487741830727921793967595080916939084163142256345166205813651098761000033750076860331245192812146997061763852822113833848114291678961094289064855128287743345980126715069089983293577350698763519961662912288637859394409915804288304396117611962354732615999407359102767689371175552003178244892799593929872000343237269886833358392185443206782218696908065620566235856243560405895384163223612545400479921427408254823339928758978016320113363725268216730042926756113582789008780063735014476610589638041108600966036674963223134429568478256616679976767332366387183042187609031785311907798979608002035642267449428074299467613356915867763243710470605252585005974737196029524314796510340976374999119475347276704691488707688190565005901582249494152569113284953718277055548739587758188111687910059570508217801316357740668843815550951312869312525782372663367210250635855088495653460186893336360569533580777555113420122191110960589447114020973128124168672483024215592352071821291200264522286115191154705340549680256522236097143216111002027282188690470895780001652292527407304328961324955604069044712560623346119100373973274031590990499731774684485726437150835076776702949987341964864852517397184954450964943918115957522670905676607665305392109986007451856729277614770274045675974185213880315197478422457365124856339727192236151171378925899262528601317024500470409964029627735892116024365323906322310372776109994034925353262296429805097202086934238560375516094486216040945262119906799382990143045296509384172169915475522074886552308164758019381008146633741541363322498355540704273121139748548416485747859388319045681070560822309271766518564289922061126697550213305458904251165045699975383533655644717356421323312244726795060379989182569068552517787331424173780849048349292379933279172490108529589732727534441058362561104069579424010120055768490398226143040330470840553981676617109615264060059192489164510811238958663586782834726157443663368600099780664911333854189355516959913119687376788174662908232705945654257877016776925122595953106554242385658180377403027410774185772670379266106996215273732617705582690533967486719762576226087145218885780836591988433200773252716520746045255181078608439984233291844546686985870929019471208266542473603768562987531870583245114828078347662219165612554355323952495082361777353611153974264578337528232629289461592302148781774194196411182175693407092563309479362653125910770568535679651508464097777522951213070901042651124759645927760394590528097055302802794421258585687446084151687423163616482355220674857506409270945203244614548012457240545198344455960468644723702761768322275026550737612439247763932133088986692171618691985167679247694165857881026602895790406520289393702509039401388856901056876981074180057408253133613394428209533170721551671393400446049585943574446239442399897299974528388445141454025040151015133184279691730928593037878599109264310640337925526700700732035786385121399549979062880972078958778407507528368363076038303712336136583510370655128935350202779952632177742172543628808799398799974944080850806746165070318155295417592530167012881679666321514439081613173591492807574439596500779583558882284138445559839039724373540892574118920204722712109949384514868227220471275771010307834743123439392619764760286445992752575721219964606235415260189265814840560028976662544782358437613446436701587652580178183711052037446484789157643526454998953544529307328214104510533015673961888152469420273617733626257260394892543996119070110566447524415189481001239449051737717867405612155727096836560787249345379760766834288122455355347585493523128896216910966466497060672547869342072801269387681064365076236654924305845431734826124260494978397415626734893566768271761000548453950343415330576538813971216448607708190774936959238182581858984135854093821058153137773466423270450834390272784744461844501408398456168313358982374718307005904756743574567265545033681518338074155435388144131150410523266711411671533725731057039253457783351982570216492042385580251275057377173683849181793287632970462558791396688274448823495571819675790512749905517274887813751082537343603491761019626007819685805492221817892646505379164272828412739112923464108056855176998888775042030109039370496635554112837855431100909210255975090161403842928010638190979374639561623327791447467753167491628758646967413338339201583151148566139891337399619920861147124287436449346934008479277911296523498432371360821467995548101433453662794467512678689094253575615367540381793295486201618940112844282427567633148462404547169578161719667716199696998392321038963206988385852905699931166789380794739781547947252018498849016735134878402944735566422695813161711296590209108513527221284627952607220045264597874718701842401434299355432523359313293186031918679800427917494022083907588185838909208049808995376637497237690381435798743008085775014089714751321014557341378808492271388655906335490513260912795208419097313881333927848300789497723874354505210244046531069082578595833271936616838080197382550649126565404153301727357691303090903133806914752314191359988836154431660097806873360428594468882637133031152532624550245520385600172355315746964968979500616073105459653203237205412241241152685362207642260390234499840062818808899149876977856690750889832763940564483701089158402109009179980293963068377322133235809887521058388850410599412022471061132990219166092180338734474575548023229058852437719218879543065948959444877268700406852589948332840879155481572704332916264772134747945523936234917848947667309020387449339981833542027529695167972123534615704311169502752851487974955539338832755480825511899522477198648714999937704284580154314282845361612706688696560884353947571823897903378364001568007799760506709826178223191851329270378628857242653977363725712904843306444834937003624224689221258216336184918673916524325277079728738463677665796251872894556362905671483738537994640743252660120970227170727182200772862437064576190578367615721597620789667220790757222098593861932957446250299202580497385489485148131911562910870863862027301523038208189712407477514006167516811480902414107431677693031692788130158669898585655105070218101977930971041596393018144719937554456281524441632922585087567200276347908629539774107775770276590258064645276233922507647992876188436690777501103038072293046452564670764216097119286588844758050520210699751367837120557475555379497468123132279853792040722052476592708055026398407752629964223336577379382752049262332869546777803630819625693763645896213892346192884465957321323509206008977753830473081183343851004573681464234812111968196019935095932500109011606423401705866289919481381122802644258984757482970766249464426194686375838934826336061201975531653206824553865705281297858453270937467147832416422995639795387669139030116331778262900057412502783887810341459922244920831729752691835163251893681187756122958556694849632896741503065869270614633403289766939777525538598161983386900620471030910425474032802669037762482234760728729613770083846143843970025160056258463854094834683259179836479250513719416335045214861161343911931295952725410456550542290709967687129400694800935008440629941171132424518846704252268968985846013866307256651575387385765430938879347778310158694533617049033747907683039573905793811952529747697298769203227036108651693952140395781621215361830987327505840807580668264399307734875582552187589590403239434776015524450119826162079871950175838316740525282323680605761456759459786194160340468096449448538943904623749050192654083106021783096291176906257326726680702074074738699087100666343565491279191097386601725645678352057421734064460700433595883944009660949538121192176538488509420247928518043047984308043947506901358539697780159254142198037719356599719345921568370133684612196099501386063284296659693580455030946944137370495772830065609031069497497240616153717315108049281462295892640343319516291741781261895113174148510883800526949367344850475460303223550810727379386664442545605453273176022704799151495110687007834885763001656960322772274493072293390725996524062796170776159045318501676998727310734205275127815799508176904512460539330217177625054857826590113881154544096356289364034784638226663479593290717293629370063854410974972254633248505727838110280463247552587274634126689820113953207950834858757720802426490694959770190227716072080837536846048289394755203327526917611666527801199495940885779970678380500437399866536644106761376906912692998243724325180673442730244771960257416798183486280789298886578154642650944886313188428673056567312868575674726444852929058000464313637131009564458048978780678730871588225571648600049267251486300339563427570527338393396244505492171744478989561279564663846132225029940519244049650525229747592393023047766077434816402631648569256056143488472409929193393625732443247864398179830349477950127542845439299224362562751332594282334520731163331116662573979602327388309203715094938318315773425391836238599959734163520640304333999333366988551828451794477368697160890796498720124714800547330536565739954621700294025175414024238269677248828687326822910616036515118486641180390998293351499141634836952744808875051245820121942058856108299321650407552235046259549198746773932440443008179447755696261909136356434490288890809145011202996083592956113390849429695124687348473345361456543811450390578139131588224000323894871412450046639699564819781303964688321941714765697075798096720801416421178976966590984892450243908355834736015024661538267504086894609534783020369584259598575385918116407975726399766639779220421056269632335874652343257807266487189271139252982936234428713731833189517238323688433886508465337556176317779667119628463305853512940206366555817486476010897650236616017332561287569642781187784815272862563314026840324036213231903212163165800672134623149493990670630782110004719822487153436591373088516327271252679355775072338056698940161570652765912216068245810026787949372033752274506345743437003265172677507549060560452723041863535226896873193069463763692339649966163594827711352823275504917648854525140427417878871926155357178830226931702282392371709117938350690147980664898039196264066448942836331858151991469349294207247893506958749613552465777041132798835273197346262302973817386273071521304766708257778670468333679545203260312398859414017779957384317966316213758968615620414141314031174487671122560053334482969116657261283354969608913690925330985688235418016226468046494208516124536263944640602597970737090621342974081635902018100535182973389405509991701067948736221882619926342026752376716795048324728792902258896693134910766337868099201401251937109216176395189276919049773626597010685402231908891943111015852286045633499398280195134782319719765063096923487870679293077731950420405545089347945486530556167933769734254410671027319284106201847715912140486179233314773367103302238511694812985621533698077891835561153174650497735412561191182497561186350221572697384823901536209319774738777170635358927105100385551501130180896643241485445657306008390327176592685291204207467411563975368334141317844930068918580693658555303619970233395288235639856229035937507272566426627749607142517433725696488644651760258713677212448039424300289352807761722989400596556500750214406572014254501625713910853887252314695145615581769388167218388036292948437926052383636170230525547250004196062624804041492895801279082422506844950077454033980164026642946682289439282960291791607282932144072690910437896526270975019414482729506891305693600996575997582362504455306129588865875580390236677130505154754571890665557148227767143428605301177107835597675362815797791944251782019563642226154961114344053538546217787207650800106551797522726050958078777500927963574175993175057842944653027853700801599108955494647311088587308130654628397508259532357009859202528578691935314775511220817557281156588163186776765114561423588482994716472372274493164580415921457177815246544662479696431109791950215921543369778945899462153696062419789704516727134076591115016241853107454023897546857115578705804493677373368181101006580435167467983797910452115646549098820609271863794992451462239846441525862437544241029773803420086248083080070691952487518719504430241629168822043638217918749633470587858695084970866638478150856189308043445963482764070712094915620083552044350684392644823245469671539530625273680386108065288942398887539069466424871308642822033528373213909716076813309345414670475526969040268595778349357026803006224280402351380660044896191546912778330435164094050797941557766657204306283841135633474160611785572364615509876404468536512367925172469944175903858209304089430716980391484102650129674610773205335644431917715563663330445585289444709136109322896724523927903534467050950280927046775436236197809749901800386314533349631808927347764756095084057618111864959753805433278692814897735049508019209340522740259510664358406284179105433372047008329944891640029285292718845325526899700246315876280019938570843681923480382510167941451064879738266075334423468417231513773314088966620455135352299873857237830661767206756203896479588936389189136974462490260554912582063180371319273148064751654908054150039533778240750444680902819047210675052986425284933513217003534413477998537931373749326521870470842139759209681463679815772931442963922392707085796062739628780934976110329155112410212341466076820281915008827103789349653439240136766896093608503982276931400831819157207736633555871948322351072513457229074498953778018333389046798480516197963675472862736879845957471465335602863670187324099770580900781415175218271280936219874194625717277748199154927901835934222773944330549488142098898744165104716699461279168559840124962625853985146053502570632689557957997297152324789673289322670894657717125447007916595628980820787464253379119269134617756980674486342240781513525153285764281344941808905362995726724791455218375981526240359328057036492945969625965485500793809824238211805231664231037240126425181159884801228857553391999427687633543943174281188297106712857313179414923265405505856455529442922395579449284631637533985539988982572167566417969561318890826929957110652022912476348331342774762014685049374489074625987758484759490706331016405512302921783121999677663381476407603573730678084366908850213527278108531567542833931736728058703147866468813613296353464160805431979657162293261897312840216903483906386616862811836676171915853124127153737408639149012250480483206714814919279485030999048870197544134029867578411693767101922178817499180505387778119444681917967254878724831664895587111122519674790488065360509305974119533010418775655398851850906399383670888334803971298170054398521833864080343569820608505594946533739640700244648201029947449619802142969905378349400160547967818589895264944835439379438980903920410619155018366378982343373381967932348779227256225418207223614425315818311111259326255912457920190204994322633598485300825414885953881573308835519209788613988357409201958079463330160248594677768328198030941447440171384784039872065932342251875229088493148189195568397684261756573664700839348871956871551379014730837779017252999479228985633135969921453874630412606941745505570398887571090122208251715000581514544375724387028868162083197967027095063956544846942556823652901727870031946829700562901006516711482802934698448178287842464304383497877678724972215173605187414717672447656484141929631621856010507525035989769140624296289725190840250645881847833394507684178290079096034745600014988319308776926971258652165236136253067456684756983852846996133914182944213965231178034342398649611432935090984609404370952665536406426272785777028680086301219955766104433362236672069633640074783665717898557287818739789320956828630959551346184038870079013431024152100444487092033893699902745569363692117760996229777098032733525254990381861095898389069575558423070901207542342921458202346281873900319414738880965802620935896936277901826203594082721682919222557924344357606645913475508371113598719327126841602227002288670540054603952309000597112830707532087046329809047540867790418464927990381874475810458656380152276877649467446655269100481866236131983518731346803890862444232912086845336801198942385062734633644985870573509654053214829061488225082936011402752411234536571996789433739003918629828493453460362679330666883975964470084816303420476447528625367572826181078336583950596683041962313509137709162789290959398672182650382252788412601001043789588605686199969861542435389864119641660140590877534823532493144609202945207186540158711954275985019657729091725469295453341180952251861431720991550629859491784956706098397735474563947853800095170873202374044563579147699219361498300769984559365233937836954817520172043935184114995763758644502825236691823594609016767122064411028941831552112731310433354916457915912609712843257620277945506742854065821111726253291208388199571435050434708665865584246821771812665805825620929473916768146343797285653989790983815687097216584566338779661424842454604562117966596421364233296849606641424408161853858616740276355495593647596570985277856863967047068888213478608088256450083520110736999447449578830499715788475859417039210648179750771825214938526195023754489322410447828894195070325011320047647552943958543705406101156536432778496883985191469885191521783659274260034378239431070104263049997896395612403207708365903250065291466928112624224001045907227743335859835404044429145741799369464074175749118133378433693665177363216003928427448065111155745791791303447478067919299752534922659450178735806928877445364555908885334711270479061819944259521059838896993848015378903028524925730254231704258312234926165700597185940046672487232660255503042893845759249972143166601477828198970472525345208582295547310077198905962881430178026265411551343766112647530482413078400047139780942680307512657599315836197781268087614540851976208354205701649877875213467973299420954849147075612415945430145433588297988307863441191501442607958808358342866471003685228459452932614413965156731659482550456880278054506130443373322669790276592485300095103293242104271299327185910324109044972011495051412161485291533927120839231796940436792783128457171035040646048854057211152304227112677811088781890047992069514672650273053276823112393846481670584196399071557779569900288374581932473641317894317208793456470546611324717174392068696777266949130365362202992349335886731437573942049740524551242075577883011020434419333500773221903129803890905438051300168798175732460864704805778707712851567023024012642354731506968492538446340215708765374215830418697437233015816208882156535764006109678507960295232002532607676539524147696105946904218350743560696065076147060186445352316322282003492836101720620240862065731662992599074011081373108721588267266972872348250318339615348126448381649906742004148925032320309599589586021974382564151934154802645933486553055398540865026060482369909280686978582243271878022081269261363208358603626982552870238768122702241054443757235113326969451797443936954988955715602963258310036448582877237805813010420784916518723367323784368048369434034191517748314289226415090148877778231499188374916783263362902942523036584846931013713634378532052730327131328121413104736685542296181184465905155984265963209952260261520365166036052335798246717937862702145799886801155412739770357394865033771237063138386559561626519118643394753244776607279447038042929522503722928051666682215144674006948925661030979397210513018359442955339234148714191139476783953359008199842546505408774842776892533394957455506540678075349300233392682032567825238776718308460714702784586905698309795427656743622549713497309314734633662342244295370812702284056420513352089783668744944182790578902736642248746108463623582073854180597419680118129980978910550268125123081731768796344464951839530904135013937044690716642544885851543652151371083519375265919627627942487338380049702606416339492158417314343662539178332646984572655959634223435153126255120421130464703578789984662746681238615430947902785817643148502351926321640658124743962369283182907033862954130192073213432456385934444364782066726270771461624537435125214313679234985937757865906068664161198729192701097151907431706593038698852527964294767841151962745741981286010132655282855758168490729476518090920348738714629400086470352698889209289305681204753021998225809935492562748456497981598124807963055282874556688394531715434612240116571117697840752208221884143342484237946820140942335580563733688773691507104464079218424105496328445122048239484753242674310352464173955888409539509375636376012760685315703728967618158134843205347068523626074816279075217078070938676448922424236396940543405896871696644066040875781817027743725169257446209437552111581648210888379425992528639734929279076983670356960127325210320659095919508542387628484211036595008225430236256225628727658103789762106393719392995329382643051768729271308478660955325188403516724423807911980268471943068312715641523425514582238714367410774031110595800441753577986201001754572310436936363063182075823635651447151084496179192540274476864940849837246380733403029621013671619355304755692890691241312298402586122904699031552134159066984489049721079478829352750249577228127295230060710123250259149316842226938707759129106119495017129877769872600911973613455133478881959843580611538177627444336091787681227778974595627398263532686296737938214194620855887260880883654148564740090845411757625488333858453554185222082096905079293117828380656233673973013457517480396179587442429024088421169220715718120070299286635620162950057079842261774969882151740745483972932245485934707180038626317999586575238946855281733923937968150818304938715490661196211856263042488932479092092960271579518539040728170563665377579597859865409361795673131936207749116392433582135927845416067945895998107920312385007780539981618216193155144239469629744702478590213275229447261949731747937279086463285376743456952161492574429106313221168281181029327901871714711138312373758675603823594021528253939856860617320989347012415744624826478157389375362184405532060834706536755229961477096823415943821813713934040641354551829099394179737946082691192612028918436259506182968823639791412366541983635731475084725038284840798092344053172162862689686146160445718705625751624607209529729142923962860947575103154806686850248220744383827282205335273470884609412669572695222219314448222973627886293772921336120692412007295059407567027406394045782441934895705826652989825947109452699022963611299990740810711791167222838977997066119658467003420441908337539480087706025507778726450804866428952975836466079368310126969554122718225153851809897976751807100616367532180214380905784943274572814501789157027853650470995437290315087364854600293184198708624977617371838705960097474753994566181148166740271997345879919711653307072989222975819026620746789466054741850429328523732231414117891111296679473001420074434990122328863648765849628890757810844152687411941126453610495514476155485453122750815526937479938470762604589468518419544204380151115385041227185973045666115156955881521950477265893471542471156835426308321467047247975212322150566051091086546491310596666591724635175724037096490441050701653143161870672528538774202592790488919973586763538427759006521145170523750844561382785622793391884980305403488626452144040599327154926656098859093851790895465710965783158927799540300668545572338285751899170075479641484972697828202502035315310635471722299517870148253424385536775626073025070506869803058486486770642387485637441383871981471230609094812688527410071046776036154193655531031699213840403859684171270918159761076642071490226397159300053766452932390469310372837358498712349254026295183931927382676082895081987664113336627932436621394115252339063289234349317539946389757315745036905453346171604723413959540830393204336042494117568397057782593877445365187360581553943247597776154634412774717978665950287095727266246972208692080932664375641843337139355793595336138863872792116722931608563950151868488886304628250926033672312095955953120990981530835654147899060033234295133915925846924762206373793329755705353589406454648897432547199388742966827369403984542521219598234039477813225815556053879841108792614705212547505128961380760347539051506772387671627340582256969081558890951297196427522469249418999080986924542046584215115791324584687193272646445408407443646645616073732561435736408933555067085148076164524460035220042443279355433398673393449223861621090981330836645929026226394361187901395084414041816597995517424688056406146765311711928915175048914992153428750243060623936240918807367958867737105816826576935854887420093228515053293680365942412600041741026653911603087437549095429617324954116760646298730125555481829867622107186109822191025644649088274530422057939785243303641770403899654820489923093285294410230730980096144450307992248466140067343108257656905976621853816549875973677598177121500112700528883585749601098422732425942318850131951721421502196291446566981812150419379120193704071446865457077678492504022595170978764527068857700185902176167148235126105862737220013713867488324190417857827396517038479806150894061672331020945293277517502956932396339460484400792456319442209880865186819594677379984305809502584003695223695504786597443225445487879979092030722058177913800354972801309968144115207628747594693295918123059662738557547272484931621140785886825437828262012891901609531443868785279860844003720198600459922162947596947273064302318595824255583448529089263566131829405378848851166451919774748492884274307805697732052753759827884646300664919155974733095149859327513163581297392184219123785871037000482308255482591641700061694450143012927976572028953392663469138080549254358823980216947864765211319603417524213853917183680450615975091314405536082096810841129852196499458182142384916652350613327133982802090621469945429814005741791402876891080321293392489825359996151289445128298397553253880337358642419682840034761036210926256388233146821823630130083020869398585426909302696378520496461165403501531529518069386399602573703941177547769070842151508675866682269610161427049783746607194067997935901088011202278098090068753557916023542322464982939204676788523038230088032325955824340643724681918575640310526922262917314597726739651424726869762593488133959965746725474903835268801181391085606338566272817406400215606716939089824112825753997001939891434694574524134853144243402098961851063776027435740653277788610204174543240192441941008212133002261818678791938846550624219549498688761282227390154895879104475234670250003363955246924102599686387286875386598848371612735554064881016633928858741191381134227759990956803186183455589100376933912812499169666740320027520481373683653312074390005883219087065855097029458270678880681581145344265401768640353403996601308861696230510419808330327384132170054122562141230544700081534508872115743152882436557054491322996493062760508337237710360390092690637656390101399084437048461712082280280762041900556620188768695161371423090176670835677596632874079074024496641248955119342385643440628373114479701529387309512701534838051996923062644455466010804979534091098725975050125437577877013112808116133287435354038437376506137828103386112671657596541712347213417141334449996838831074363315756932066895459856594376897525090546547154710074728285890549246422418882128318824720335057544169708441534745058319247383240441800347533425729195070320111956593307106475567733318623099217995831814734355560157849655742474581022744318289128200834741484687585207935992758897193414496928723958116059774855541170815560159983700135933242584020660384834203166303722931509033472471331024406386455073393801443275721656663511739724784736031394454503406752917385133715669975527688076225729348957804518643792857076469867149527683702701032350139760726735929037515588751999341789864695377460771446852062699714012213243943667264505820485977933247568422782291032817261906429036198773571241462916419117187751939468075923405387401940263420419432346668781905735760698330317213054612105084801737075843120254951853558802859475300790404095823960349654755252327768312927288219987576985424384379947575414934699097779629759334933729594604089772018538241680941888830704295336549879875244736089641861024261856340767513192183170252660500028623775787140774978606084127290211826756992178165159717950453176027368133696380988010835301297428852232769717962687130453635260200542402088514670351668136969032704600827964703837010903761269358116980613328225285586324838672686722435648373619780776172385520941998304628817433598049458021924243909436090246067711392111090138838619379989368280986382474532529252423982022706075753422087136662166578524557099729879645056249288064928242842335623252683099820366467654453744942365118359609335192185044327013516170487889940734888696029419242190892112028234686018676639090861081867007654622357681010687553946403904485495869975444653130457551832817972462131731789690893936044537836414625594463197701973838759959495403324761856871143570389837634143137349755531183819507482535181665818697508993856824319698478946390089841872379146529920042016304007888397067751037070650688233271658542185648689096316302867446592585629321782530261718494669818364625354623964555473544073868471915920358891109263612283011328287839716787366300151137773637969260707695652075668189295817562196501216253183749267456086168357186118630509298913875894918550533021137039414715968909451480395292232042574500086550266495516337780144099847187610142143588743666262350013437056215846933770477904823922790470037270509081989810486173697259684939063193775220540813639889261150254046526166788159466550337333636465912447694162429961146934233129064801582489851206351223738587182894772373590532837290143197901706625816879100947832754118144123451289340874941922568861670373267451465724256503181784966192293695705036927062420839716083334154380633042666753774579189010491725830312953302809647282975275514318475536758790712433533727654919788303823675983818225549268149783217629109814529376095498412322030444785866915499863511246420916197595259422886313454167776523401587760114844907594352904014298527480651224683147605610011619826025237605274416391164841384356622862947211438429765231277923635686013568110398009891159605786393419586544359149991857231547884159400699540935134688715156581190403344066562326794583811218066147527336822173600433207347818100444903431266706106625268774262380166851535592844997293521223696921098315616893227422288371770924136309861421300359739265437374280700580711823459587469190318793444330943350848811125939060916689165813273520405000086184377791372647022719974894319481464112450191661693778193750764278555274473293282300387948924106498186165550050006225463046889351201408090733540634043874962087870588265900731182775050759935519527954934386766084011497993026041288894108634208496942542371262121402770118718759467848195696806247785086215457566993760183144717296128009996578745770177008985250871904931462764045508951520426155740594825119984309902173963440794807301539380783449983802148173257319419675564403132970625978480554551462593095611965534924196508924835545553126721014263592756165920314486288979833968859055298762573976262275108354035350845084958695251523369562484234336947950186491194519398963067712944289366462232837117870531105084987359688713775373572942419972855191577241251244229618240682066327006472046253048076944034346707737671890474311995683567631619640743148606888914044771803368582604211750340294489672244070763411378984731712761256838165282549078960094908324833425926875406733216126583393084474499991028870930833220755939379512099462221926788603127327470964600143459534512670804749928308178360868493491833460157705422071462112646536892458966295691263889796498256314526345255260998013858333175548059378948128742513573909527976773771534676034599136165486599445902569744169464363959457778468318405772854393523253669704629837544592299357452126231428806663302478385834553843509616600238042534556689995254313374761872683059029289373761275320100934274805286460769210215259521372212134709202440490911616485625108285049052511071500335627542464077439039544478316261100900334738462631961385602499642191732555479983576345697839606413890260063053105794747094256751109471752365210571987825159695880471890048399501266016442650438895138593722238771881574763558898112554999458728312221121262381105021742435062223297520053029755282127174964507766250582483197645559341107197914145222244429592969014737968625779598677443207246585704157904801389898124995211677530212292059590892996370608155666194065907200362597402386395578654378774598205350980520451691315862554308255814513618022706160088657622910797715063331490232487752013544531765327986498589177275269266733982866454659633448161201779990555308154409627188166530815002106430105115095153459076133054123552513081793874551434766962699360503309010680487973685018023457596958032221311880080155150162949719125460061223210069552469351862877254749201299116362776868107311540407887302503987939020643116364824669098744695854337623772305868064717082120810805494218514424586973770450021768473739646312057861866645946151684232002973910529698914702280096366567890231685182056895260754287140446334006469610899657670807695202494238848161508831226901010120333390424463795385656935839815623839884855121917962036075423199642441324643266752093826085262440804864211081588428309160320117416787315159204471488947726001401340240578136683827691249696685222972368583113462976734310597424302177797886323351826496513318863726842469018748633833907491142874690588491089715894159612913128806173693683936009387747628509711002841303972241569030020548408342066893580179539588017673018620076864026656727003449052421100884224535412412416403767994384691608838883595743105192997475551263733292502118521639804631408342309171720469933640563012403047018194742815937320622888189584540753598434864447439646348183431691227270878222679970748650743263910072015195186656694850126090007697216605127050347443913937458183746835512768631899972869103130590602312536787961026542792248770118411148591476226351155800498562735162250902935588933691373205626255884472072515506709470936869247000498180577269687279571790206269515245183363166731297867358104822132566025897959369161014428953359640060162281783027879301208578017484564572473610108485149892873332634689743052048978438753078659604667580608882366457107603525481584410527486027009208066009876402097095804668888168212615250634216915588538883793988971430332904471424469680188691279968412765432546687180497532881803120782674423280680902883171250367647723327830064938908503584028914010980187059850893261241332776849032717658281386818173778489051588442336439870574447097340412966621434517412367605420035094913325474976279910601875940000753965589739409482118194229801130285222394513470134417022634560307723096922000965365021433170479976614817597464973794732631873084410323729115524086059770156473938962704595286969943440337678357252009534454182864324990287137120271358038208408987830022376445850209305135782101882277889708934672820224038844609961171784669323964146830138103184806836429820377219948771027722119298098979881665033861164706024601077081349980593302444420953678043777987710288048913833685176055488368293085753093223700246366783506159040347486420558997793103487682263594308260694792961522111859333782220422666411741727277715317520030063133611861767416528805656412089181949382485015153552202793271997333859851160542138489659583403580378384153653760875749182849146733899997489839568606495964324736520790614990949371626435502256197568978087266101697951823070376753677383529247005936897765332669831765940222325027454103919720093835132452078356814561413258847295734836506438349581042906495868861950081080398714639081935386720729628204985403376943168206468725628751577695668808630468869337591046529519492624324677935757664309366663549842447170960560607799272213678061666413288751097192815785000798320763878589364163820204427284341585323049106915202511578316296139350626841349891374547120550307533957021807815271758177363177147965412841642753457818021480977565409529895876117133955944825520017742242446275443898207362481327607572473873230149368233983209497573338392491991044049455681598977360524579619899019568722553797749730579332870838457162350819536303987954758855614597296994248093897577693492368944154664895206566977401771245566560126740483656239407095598789649695331622491416358357501864301138332031698564284175803816504886458811003535411090259878885355238525374771926471128764041012343258473418776452445903055790949509699806042312122369960673288055409768246822697496024885717744091880636881133126354081789925775206650891450733531755108284682355476167107578171510015703355164719662858405465673112820845081148379447009353825290544770877685594316897454385877338477465245308176332507943442225420911556136980615695674507910508423761284437066034420823163202140420171713366568089859185247608443348591462012004952389949906167286042185592143000826470190783442246903413804061040180002894833613649079884644967102338452289172484686274353535385512073753519826098747742029544743481235676672167344340045402420266734799420874926352951744426449691793283321066506917762908657743710629944093174310165772661190453309891265014543608269940641585370041991631225708823027285539698441174468139615900277011771694260509773996240125331446319198440968626091131562323587931224211000903350349714316778811110030132319784762826024862624012304626790603638754295954814860642540262686859159609521367528809274310822579175134782640756520951407736155412343909908565569270466273182207702098994699049893365133532779800837497431687548520414162800406751693248149343251149988864780592566299282951940821927190168194290942025427321697841993248458218786071040978059074269351432148210119848780333343327533451137646724042597297621928902897210269540323018126022753966860244486136386262997597403426158109697997077747583678483138220523177240266534273190481694487766396069010450174803272181365981031578422495178421601747383431365550293193476405302627372391039428855530067787925003450290236590922239082623088941320176189554271963729328932316668039294377020670608710139814797056062828356057846398547905307915558126527302663091179850951737129739669417951408683377282153611045807503844866523822258210817108600385939395302265814150925311402322882552925648458353114052324689446184862296342044043393323106834221101933824247632618591287006276319974585738855117948496552372314179737427338364941569092857334059094750530142274572491918686862502276630799522946310586702365414642618329584462831692912469677361017726309040792253307710050852185172572835522829406922762848717987560863829710462098329732934408390802155532830425812905327028040374569014056993380785695492223470247203255285773135585259839948590923521369182572865392120290478980153512081671814016247264949893081783022554502067706845747750966148123646137791992368655857626004054964974286952891834353676115710316628642431921291727471341034942369768000252721833120709198317030798366671643938942607674755851232871948442120820181773950845330515559749211806766436131592490173316603955910920439050331213490840047923857692801160205159610060715859261428543681230908698173233356795963191537465478373995307481980549182761848432712346870841912028398722826193632515631083497341511213519821739217940931625906274012851293942457712999225947115409047275082842227633353775202483667473862120024532815429816197395653258925684929521866136804555627500497529197707576137491316963388411095995697871068260514963466863571788273335136632075772341232586689543950775201909151168011975109089508713386097960177419064563386930287469486148345911575058589217979724924636897596727123529687388541159103387667632142790025864490610802036921815431299983200871131711080270365130242481674443883066127219021771173772750992703910522907946894283906084730430474866063080834941194303308123586535583849539095458720421226773859229124547861693215967219762124115580924098512437146745021727854950717761677656205923299239193845543496903240343075766406083424224542744680884049965875636761930147653940240542218691447041658847937971217559879660816835760707577685200190824067379470951993648054781009445190659850527501412385688096036053826497161877281686325367334497002999060175765011897658887631203875955559665401291669632891642943263793296332539922950043228147614769967160057007131155286527848005398286557965084803080119379447418500421737822984659601768898692533220178735680537248559191751636606258804473755955477816640447361932567169052110842447635348390016228066748183163948698859539511640518904654936389892013542768882915742366211764372535558609787750186478799169348215563946901552516900138693705549736532522895507788563695381625576286122618715950913160354384873974622317716593243754260395014898206390616812647238645719963189805592325684764584312770294501904414215975498310585850971953249881584345935128970783560374730487070189891444872408831752940555805411265580966195114286366536737166987118144559108537734454723280417844934905925032036644672527808927673684395918744179966187386918067426554813204909438018910478443210702715085152602338823842838180232100970774151877193416989291502844261114043079766406880004520995640653995202453447029870240634181927235774555918517083255081807704145535018859286355574461721089916131532154729467548050720335809323048872839685359862907143965746764306710373115255867494324309420057415171075147284937029683112110495362273975401299081595431359576107007670487950411006686153982165230455699924810422285177280979781732763613156423210773212287864986206734150374836964902032342566229370072423551281459396778569080025705107317015456398276083802753344185576679252044913061519079107663514941671573027590447265284173969321225326127640716481942194822930872800839909021615778293624360408072762041657633380933688744003802016060095777008221286615263042308582692108283057928102794014148655689563584514211782376238165935775352849427722325052333950150709828325889136752580184108711765992647025582753775784772059065760417120577974554299320807930056453925341652459935492956585654367358900436094573982002751940208557751286722035389458501772608844950118517606789737431757512513450881769047997177311913788924484377158001772861131633483601804669878717908501996084864845603767029845420229362846908499796887486873438945173674869800796882954004539186934593584305728876331867321431789631570846211259788649546191854043915294225922240955200527290948390125274086647124475944121774136893961305894812623011745300417565310182199627891463505468764579291281859856599416257606975686793172848877391357828870843789075098855968702053560641785230145718539136117545647574991701979619168514007220644951019248497143746354296409593882225319670664378800160221500584816251082349262487383688457828078596689527578238492893649742223905166342496576359949923020644564492588686914368485895648344968576205241311543083901277264811705783516780057224850845877950922330397085460089093822741380112333141226674090751000395727433641831633611442306869433482623564289867961864092741351290372134146303267606312572664114658864500098124707087637454517839677165506036524884924304193567563375448439002799042637691818243742120863630078473617586866655875128813621356801236268343745743648701450504146042077747403642681112943114471347376499313066999738259563763750708806756396602729547190799745800828879500502753760622469349623778939889166553643911450566402760029079490164867087497339411520546622953792841571706416829688627562527719817162919719032969918775305522474905534228602846175947425421664762104479716209198466861242252391263029037574118770596917663897218357316308993314735188651267993855613753614874481602934228293633764545493624468021147133511277020058811004548414252367292707133416669812038237374167848727755877191961444533610384339204054174197853868217833976195847477853242109652141711435391256086197527630559513473250173289810295645267702306535443497075010655216174044762766892526271872435130714535914918748479439784387095804010314219397561949223211892652809475019200146034425233790180067961831856629110812588872146675174399470210899804619627375208399079423405720768742215900158661302926314636174182168849768507126402411983221257759606657858210182277627303208751609253793587736280449513760126085884224582471659546407483890285569619652037556983096082360173107094133008226676153595239515891771155725344448817507830349259937617076455770512900632722528902484704909674336139136580756265774307435734223113401561385515942371309817596785898928767837276683033106783415118656442855730844876034182969499800235129772585828362685534672151232176749311087141045257358613276784096634759510860796396840814419714784962370217960365383587272617789874966761284837999145390849063927992660158694579427095973716716205845854912343097652710106244403672713618079449357037592249273315833053724975991333430882560167739020213789512712657109288224915037490007986685440849691375354268411412492849386671006708749801007879812065300904651610126211395892663619291092854069960185107846982361684468368577297699244689409071396979844090002962439239870444446254761842822019680338782207460859666223053650727679439528472373503471326339649227034961057547373149200987048545004228694846080054522162456179097422483513579279811229873568278975442405959173574479835105985113541199207890882153851904010360861339695035129140560581545060825661680433319445305907112892787545997097481871253379582912470346295138479854356235315566896609515881919039357446662025887866139282529615624319668049523178283577159575801686978463100153473264032697550900529250425805506928083303356004566067772740595639889224616686099290469386439199285662710349695661143733112260956214650200610566789008682042943888638373827765709327343074799021215293077793224748293872856138137689806390031347709314706842732789198721985599935967725163336690124590340886147971091316792888616150912266381296646121216726048299021020715978382965074010094481467502006278468035150718945127237483503422731135802608269871394166291041705484931768554898158919875958308513991651315498797948316723851903207983850804791855150460150975848312001223705744110635515058406873131574529315528500978535831037112622202066028268265562143666972848283056983232737592396982841724723007687285324660521798384908300626229601213277070202166133568328572965867902717386898558341000298397904199110103602750094781089325961982742879732915566174139151809957621247674289771503842585571073075155323532283992942123392477882308391454643705734447699828597893087306463870292904847525645521323852618684214364849754437303096795990294760094748079297662131383324134099385486553192632500025561595159023910329618400334185598006578266865112223079687562588908133053573374633103329505585871871782854815309040232166943458585640457535017146917142146925325654097787874699441180156696472468384889342607745749382310066782542413505747601266768487207366119296379935074295193856515027097741642268645047912274468714972142790836403838636514805908680252944444992331123511923051498584119304526174036704707604045336335953276296684183698558477541800652588776020683000988900747708246539336077532673186059722871070965755050261189987622513079522248341780061992038946157144682639505081001739748189321584753645902479121812829581996926389123783271932137435815168224309905596651933552206133947476480962960676408916740238856147704382709011205425031663345233179807345728360061657227125332222301601542387977248563336434788164139257462738784920414968728620910638509078763137997851860678796836669833636863823794702404242983715599933580467566267111261659302357149031908661972870557029990030038591412896287359744275555191361995931759931725110255492331169598055174014762652996150746107501340512211510741831525019270909048409637053595900056758815848147205143872033802894346524108181486891940259142329962264484889191280555322467571889915607658781032333203758535126047494751828809344869161474341034584373492793827931137236424407493193080771413392475973328860576608645138736226579601512096579008877552418413248559660901157902321050145347784304824190418023778981541389553324552289058100394724574956722549584777289096035478529151478868327328327102842888898226917024500848290408808804366273352822840097215720616718716652043868251379163306837626086282319811208090981968613088866364172947867195980017617380743189104445243224623058513644889907346097910342337878190312275020984756921935410516114351305164709451274472149147488098391451502013811318586702397026133297425858175590309017502109216864470875198947484179508925891651069373394269389560064819389977402849825129635343235915257743443692298802079927400644698570959576803458686665158275586065646519540667340404050543450561621651765215503886629904940349521509628375246283378671142593923671535850296142043756602789548046180703069069547141675262883484086993905072428728289334921127524862664551398923604317766656856120841849820066471999276138432689230975283581221257095758546142624593226225227217109395858335265819816176206736482185001982912901245132154678184865618043420669305609316323736795938175570368466769926956038591862430752641871604469383052260454739945326125947625297485593830255373719999877520482740230920608845643706319664451198350822864138435863579960000735088898169273463199808559825411083222600748243638520641847100959658509475612186801589315709475776552253940558263528080873084872012981946167969778261926049783049465398742751370591957998262252466419324868845413933566271903373457431502892201719278541818115032894938897466226305905672066380741519492288907008762068626813807513346785430615165915755548795411542477049305476356970929219735521501143192609297521333295290861984148116455421599629778262484751056758559396014787173643027682707774523604413671612459453825947022517212216742887151507740328992077761320955542584517188536243957569478886089035174612638207200942506518802180880927376356485862411266316114281812096578932534662121077581919941087284919796319201201677645061650378764986667541616300970602257650092839833467043335082641715611083804863455331306355308215843185721743906773077869053473930754469481207358234425705397157717381779317961543289576564205025363621513322425414366565066550575661892249245851024326942973307934497711447063350054695383428323755785749553715575211526091566827648412189410152397613781693093057760272153196529905721054717808662634699768738785937337634401859869915371101887978679396501514639368350142295276059640778355705789474274642050607034204604667289859882571970752867750469790063852801307982363087606106658374871487026844963492140701965845919047958093281667352361064327466962267065988599915895165707999103838525871369360314172854175682817411961729399779613291793033637589894411410004689674648952675995453600198180705529798149363505076476764532398841967728484077341270198511646572101419970518003869964151995645847426836963229908077603736968531512152625695404268014103681993343582278428886227274492264471413220415352026495536810347967670893120213366056471113292434874313627171182690945787108445321356229795069763502372369529727568990748191905414339002827403593657841115679168034302338266478723999337443944817630267378257514462242616805914730048666240648240043266757085508740443638144893294691343460854465332377364780139147582911373020975417889862652572534075853013787075127407559028186006274779994441457774008160108374414086578562374517453613248377665603509276228488283476271071219791453671508882930003984700827726696021385845651008114829903404464378697360887203447982420463503427462574162903460260504796667738017564680197180811027395075730247474857779279865071806278812186114741989196206540258806948910087072796291784825345532787789812622141175986584684278311967560015661874624274442895160869276697683591110673915765262065706392727386128543708525531267356399079764818202112326473757017055087277208800098970434452747603090327608200439610801556990110316827938931176568890088954971088464292489357706007975033965058059471955125988671802194480823432295490158573950750322005929046260622813906394231383387605253440681015049031343129130262022535386640542632468552493202244308558422948620310280565417029131956397326349134906894103716012123974579114845739327131840124244792374467219088739410066801458321814118596849429132416743877610700722750379861624497380544250715283151291109606012031846252702738734617896457987724719736125261523741366069095407977407951142118213396983385902582839073209563209863629414299273130254150518785402396393849671487907841467403172390194503054540848969417768385368404077511433408791025907785421528052675489768870647350415852655320438565429780252091253119701854009411020531845057382048179305603319826215313854321077826621996779474157107451696037785765020018856273612299345709519644033574226622674110414710560692490710230165608896108895740979188212189305305483936943372950941355777181827752212257687907310114727715857279606532983427964228789181517734998632794579612336161563014827006331082167779068586905061465021433168073521268201640058401762167190829616116960325638832157687170218967332493071563700749141216248997512939144118726517105673023564419865099704975366676056589361011243363794422818253313669896268445843456829937338744729636672469948968144608144258281743779136397150366035283480012224812023392945078413494888612469177874250671191841933709176580285959248941194378058929964947781675148453754596251217883250424060545959092924919681765708223454039645796221384984096789710308944411384690428637884402772385900210912976712862215527036967266130591352933564252330329542722202240019260406189700778078138146252300099845639505911649122359402657143775471702836864198541243260573181160079513149817426780116595587561751068110740241265328116549097064704835925907400252416097080715199311432648048135875169465467452209528784448884449384393809219914144235511547812145326632377678876530177977612379128924183942554901153374010690645479127497643637496697429981333584939879578514894282349629369663453997873759502147604041453643918451970810847156367519913899955087101163793783572628402461857123243558273158662763283532499468087720421375616775174278422316383084011418349951556646302990518446218519289047598218754204754052918980869292804146489626022778174066435949214543656653246902659561966854462702896491157965550875159711283722410586896484027581420854284738873278733797751206161915510390166372056778227046093635890244208074585980528203502275182289312521209793377243935147582949459850526273246775447424029150127380261858956537830703963212077996426685004589552353653285342983415311258032583928223627646507717585320927395507337740893424864983894564416856220205548673078340793519085099880448885077042414456699810067426537502107827918234391166570963434438946690586832059785405113896782619910343598874602871752254229889963098062423699888324662985889028142829938618758708570388083338262599766379193220918146186860601964804501447018179762557775610723368229803324796427886591225462599701494599468337225380249764611424420452844834578476828857054685216063064596599069687052052672012115952796037680362554399669709433736470022700315737974534923038758404003227944754776467731230489293192578874617652410384516008815850256953392835976163376712172812663293552643941210693983356834145720730582497594561911580074715106975302746724113207237757319611113032873115252290112441114969725644073668216142259168973236936479544343016103594573519097145096294315214188673453562208690457875428144951874922027187949191266742099009218879918386363793744734655092183513084071497910062949874923379072290994368019328744643032791535056171546194374069915034352996766060754369442418549156147523102804782339661648168933244360264002823910950760588861284358218026710359696077387767652528135188822421186287522506707839038531958443545583407303807148689692265181870063117258670661589439953156536326271192523591858291567501496731037569791868899622445513320094492404766228839800294019283644958946978685502757248224591177124385258750289106564551106749624110181387133625962264471084182547738243956879211066531919235122012678488117446968452715703357914875522101084775730011285052053412249200392302741238715400132113140414333743327770707023484339612811409029533740240284144548856766657749780745028192771033035693921806874236088354716123976909446616297014636239063731909753333834205255965123580061653604231693091107931303799510942877247127321130391466509602617113465314476679854642647935516784102948396670016522299651806108990639171674954758122270315773574671879322329438558808727577480138440051833243903329108799279297960395597094863977930824889721075315054699064328909059703603553272155452430440874305835519163563877962031301015030734053912917828842950701535970799921227414614712029054543239029338455804328687239627749906248140344585956470871594887736628929952716328325768194674410084524566801718834250368319735635236148065438674165601366339433720967372504046112056371926148870925577247823984011141286406455429716778093832434847671149192385264114822835893577875188596645292584223538426589145674992625312394585263995275260047459478874634439800209909154498873468387122417399449551137207767808809709715185464654819578555979284446090754108431270940040177573483261757867852282909567765014531026150506657083124350638354970415534494747701263168514049695941814966013187647920569528817851309877916585715035596405673308246806016110438910954192019514784189226492579750536574742940329386307772988471972877330970797357124696636815682259429069258059381742566588366506175034147660217639572638111774720343959862207389169340144810717927405137001028199452271805187025239265492026247232764474478100997394230906598037833511468960218365309234000003826054089126771123217774841854373151549238112713477241704445062485802759935172304560680886199496971242805988466920034079133899694847081350411201244903353753342958332091241706798066200442352380726293013758871713459586107386618166543622273990693725151319436361180656726538567204687189710300169949199955271015013997948997581642013056578817014323777672888516320333466424472538555993613998273408425483870648837963973459760472540661680204871757612172493462275134141466742425889280609493363245447283608024304574841806864757068103254791046949384017229933468690112542138607655426266118040214501136084763561577506894977958097157197019300896912169647689739139932162160833577391581365896927948826292002339809685426610121946090079243636209632232417215296667968103685003220165186940536307565105534502279605430576830302809735224648264501797446863190677233277621291874001510535088065269209860057758141035254215329500904220082649851911545471080681527259500065618688289173814982916933876281982997237503828146389779938302476442473875994581940048346397092656647295808283722116658203170583004656433914616802993394243056564151355037180582197885967374712956518908186738285131068448476643473113980861793689626550505848921255640291810942997705256997302872700568259518807130325437850836413741801257081827129353379850608579208229475652222377337256433757702505759266791941661965274564020080686451372172278834530478994913345519339527408765707438890809405657358594336924790551970846422374530264783245851280397786308204364436799738187812161693662070425260679269268613058954917833482175599655127526414124961968982607346956353900707196619879882283255980635871199091034012404144298568028957446103035553000187455575351200144759456333855358213133855103015734323227716626835027206623570090458489109089596263421552625731153291310128615887508469837261183635061057765615351073128533453185938663110555190212008626574129886934123291376537229301512672043998962885697326652895484000162387450520099335887709817416039218644041282540291192297861537997091556770277926645672747828661459930466609093794436079858352545860544704003809627272813683825172838975919998397493027670093269075125347631935219903599234386776096043094905049594110332991521707854035425117258450965258411215260539338394370271625687240542397391830926597736155996701038799761814452901091748809979925575781228321219955391434982834350105413313804422143064309542699610556684517396671650559820225909170106187553901262367618542232638779936012110397800491737099666694877945106127269583000528633300739065346329675359945496533037307624844582246848169922769962151951165130681544333603186894088687471932051962671746697513514124243241011692569132653455997355712338613414872263150149480179057278102888998346727325560748230819160161764789962313038149196834753413144382059556451117210190553874842947036008272113447047314218873404513424138943144375969156070969885098439866317267855484639634744946650139600931748296900223327728028173524294408203101569940848189562207022256039471130302326927826062400833890405086378581032377978573638473253991503351396239249103020307456550089725017685288097205777896853901803374511357298241580061309889642462600423952939087980193357632158933454802826854812910043752669136115658287519384976933154103536906312578591887389714048779031247008292877264299975789026092831708770641142356239628379399992528050666397306117663049860532469353828435483358338662288062273914996055266556215527218750234615441734222734025108381564207424065144609420651219370910664364629753548818414305406535056094906158635312478433317967661706774127106724444948759509573617522911812594491803878505376766227591905429482998453702636262674767252513158069373533029500631633888502914990503531204528317787816239053952193413148667417276847870717729261808091069598305033739875865953401285772686779336652484958423436025631246139663708314481256002332208959226407123597138312409861972782251683863091418287021575423067638347640980214220552432378868124332944586150725941653808023127368728572185751347156347987572907674551875483114109658118248975514897079934765093021083345766182654670165871243494198940888598982795446220826001568904063254057015024989505512812229981198591640691340850879238508584144639582114772729746805376457420027670225496881999241304366647363133198434221338234699752752428237016359012504664789295921629202042659747304850668036293386388304452544003269139287545020805552797804381627042504114627731962127287982757066885505136152526957044979537502320032437809772347648459732810802931160250744330990311189916441021404329845225182394622489494061778491070961775690258509559293451331370639329686633001037202112054049708552343098678268130463374169476633682736723410260808033716341508089794863865032014630694688762804678725939816018238842839139193171903351188126385016415694690055855732940621132395547397370106583684623284207268451726400106694277067000174978192926885095655457582213010015287690815976503388229675068090040909399137521296542869259168213784050254264461607931437685322998832753614394304920358244671347543913912599829773501783844390470979663612779089920417679618357110486325464480710424939037572975498522768674037122517795345347106706684591477077637988995281048163057514161930715334722598267781696379996597733152739133395788125932512397729942725869248433738564696355123354670696079947989138082500034248395117015205763204298118575490119229001180768638665686300765205449762389834703867088379323876522561844493971122651121650653963194228351871312206514562077145033205323516541223180698939682726503697221670964852270774493069609806013503479271959022492101581823952756409102093633500401795040832101145931529130423434273802730206085198036852904486723516875208676469385577455581166558860130511757834961312150238781253489224390872717705335808399055554493281495576687197005139137503186129089400820991598169155361719572294818527930715710394996804051146201430168131010093510921687372114626646816562225893588742167325620288840374004529258086350185365732458525725473423071966829471618737724086665023869007457081062352382139362089612470352090297121967085153621648804029449302263316730077294188078961926031003301514934188322972457117465636918452189066286701808921851032747789853794189420358071503041254593128092706034529999184260514751077304802484129110179965082923352050393596364280142101459267205218095933265395648500020772873581426226467625422715689689860699502960740434595626651969183465482185811876380900545618021480337851983303522117388526254384330975361710349199157292553455508477218105639154130050941917362019157005359955627913292163849807667485707750273922138694481124726683243313562220169685046174993723963312604325128209676515072154132001471313195649459587328739757270367595969932363799171879384114411510056421017323052630732716089425419456870616610599016494912610155933404116733801635543872166131648720791351573129066150034420596368300059090391639496875342054751338631338543537267122232868918504813015939093207241435697733869827014650135239979007497491534255381417832495353328252648173768635877232655318909697495645618761884835730377470161391817148225219911420059134714452554265157008786155878398038096811435079284762864206344102026912492925307126840572215962352504007733975694223892802453178374138806359573944011875504514961894106876177393553395703142928206100746241905402640754522661013785844438443364307230925960896481035800576995280177271127718357321617853521050309672686964157930436431654500712339205840846602193394809990363181007471738314091292402537030642094751882259425410364480067373969607447157436185325157969466899130497568502492249778133070019176912788713584915461677105220574528593362487729201845024510120062070906084197181798173427824629141183798523983304149123447660839471054562188617733120293958796311765807595427005696761610637889988769306749705240144267262648012163735627278553312241943521951338795091064849155770566408347144166488233203810338220979781130578301303444390369992279242673721024293735961165607375524868182486322347391717110941371874119247701261224275537240000334979922390094412704210023308381689950212226771301574019980233389783598521881784426714054500368362725368863561466500129180534905730325396984694735815232757498465421181141875806784521078008858559642903633965162395289933427659087963727346413856434658052877456532917486673655406786806303173357853213645902053826128917024914682814147813607278806000472595113481970678152301234068288467139725744942056665956137564665450995439830181102456229144320891332004751504419345393306836413974688587321071917855879477511127943058015664852580620839028044507144808449116099826777325397648073970072148076173831553577886716304217565413657195108682684092267430422964947502784632213571606864414570351790912939494382365256056504760730664086238251873244664932734396143822809433125230028219894577238561002778748245649486594536433518134201158896188336010882001573248403373682254576376952176409495672601277461909139586975409430616109524094959529493476947618050640576632046740804930076171485847864904785029197677866773775131747543921551890835342181447496897536398390245865733454039908765322434910675477787801198827396992650022383264020244813486099708773982997951302891931046365575715718363064062472235898936197662171339881530227147745622154343097774750197650539021474113791692901973131933107642435064190976033063564362952935240342611068992359850079590179193947338156006103878747435396364725673165891676462525370690512300398735046370202121506272448529174759872440107923918197913870924900743131525274137307019129705735923495996470188410667141020377518928024262522230339451133847144316809957461490327321163429838412232897731274318929367414494280914745124301602377642057124289998776108382286098078023498917170785578715723082521032861914281954311525691716244662609401328439058008184400248577010779296588450059894152436835539935099716791800833106037283891907444470732141499549834190636312970568147139615067060654899548392322516099554979214189651448951360416409343885404828145438533787613611542279612838959815488570986042806325657478961433641641216180264459044859626532525855943533854299929614728867012400641791516011212073976518840255068643329874259434810111351304958604725899305072170823223024855129638943988036077033482872762502735094196716838551645033383825891587466095788485969744087590026574537467543739059291593102983364882644140109453745200501713838037489173385181979120522764529401068917659203599729682794890479296811221352303138100117215628786798777262664695834348024055122418958477938688239030472731902650433160851847516378512602156945045621815228789202437827624060980057691626876121259175389417031426530090960192939956620442917468571475991791753440619838693300957801979501350298197376827082330500617545699175296470737122554030316640452606521159825679321305212332365736052635174724471331475934483894512989353503665106361103138778426094121261323941275411147792987611549952096707550829416573084956437399134808637401322082982962158109002470391135867299504684732785892637252796038456651166287390158283883607609853615963996482670936614563491606746172366510000950280953532224861542318314962370693602072770951023749084302917873789903691584306165589851496502589902367464418768517392087392411267872184299224080305375785916369990149909680581379028453300955613576571755821850550766877313002937302098530414950697373513974909390813900866560900863262651749659187752037067313263610097529077280166438640700605163605872578623201232491017198328244434273237183976444452032369079520327965870599582844461747616232211111920914631848871911268652497239705442603946321086178986241368653041792557340606477588958348795202549105311643099255612052395509091242138544225908487165342608592578987689048914020336699555247253676221443170522947712176081005517141587333051773513318541717966671754663463648692877617471076935406133610346825587136381174095444834166301270056832281180865307509481749364157835273583686767421963697511392333291887657213110958288647494520400360495121180367108940705561175632341601599359306356215324553239011298502316618423165358543990964863340877892494131232548064764948161643549461605625156783250896731062953108637522006373705862405976009590083589795913194435129453797566645609827783807060494661131750350194389020812427721072119216107819789842049372756344224915094879338007353091967151692566369248750600850299008210102922688842793685562877449709133679694049877496139078799288336572704548465453071311383044943554084341786742146893713673144952580392132026390816191340624243233664130591186454606210047803841185204910365864806689191842522168970348958326443946709104214449547199713061490758974755262475094241465944056870438604447101641555410523610168007395416314534998567731005497194909612181126827762880748481661756153504793294769945908467876163404521562886223259442386267535952940966387466711711862556729423147642374520511738832410112331490212319346588310598623630962610994124685387755639111138908519855595906774016349366147083846033001748498174554856079217932721162836889001428439653548951100233155887283922384852954968343511437319564877804506955666910372604468622824830482258228231356200142284922892600848920063546798124627295766828633988078035604645911535074316922866469533459285820088037279533354333612159767715695762670793736068829052166962639846499917686007465544332435012671901375233474596354313220965007881923662600058585012746774950939140633454412923845178002204088072275916253490863231936235451131653033021479138434099114957546892192750959347458329891186036906815452624856755169386411184321864857641715125537473570583955136533069770678629807591955579080035462456126721953790983672963771338302347400969200996103506892064302505902303407790512822723003566588078812571908462845120257185290136641677846245587205880089835411592874353206225682098875232906707651092959886803859855597245067667464730292204356721975570475474098390810925936893555643814731048691924927375765599248134164504871152072999835505259806250356399659474920042686254095912114277587042753961450082758604418931350217259602154477222795730620860527959039911986982444893838258199446760228391751317970957971787359165170741379189611560412147035467310319018267310575839232309399388293754313128349230404617053773281446293344281106920414284146698199125970221993650651470901695567288653753172066155838622234953300493895985259112744907881325097199385227675709833952332347084442365345173828419264653568897086932044616310121569913861823083702284194224237036821139217282587109673971810170580976697897373695953856126134987667762943099846521525092960212004888651000477984885048111058796509525424384499574278324355184378818419704441326293088117982998110090193210343591043109631736041821400805070845599562199361467064651702225037748362239902691961374882797185194592159042705863757966814923087016395213562661055463052311521715999383119916884409325683884036659883614882401386018514076125047759516209720212226088990365225849411655039278317753550442584259350249761562510965943229477152902904704497174958161771123360614621178627845981531359667040891708790206487727799843376473658691451601273291897212742830387237125258647848900630153688163657467474790262483991785959363764538427214353669036522566359158272066371114745992990899931067061792201327868666116978310794017096680579259354269439625081406462976333164583113159470471863878689189773571155707427667111646642188841175410829702882235022195683791707377595200092378352849955100345625996067235619732022759412982365319606592613380537180402202057941111692481687244827772746352718895599724615294527526695867600985882683614954998258792849635974758703468787842316669225084832133326825724319076791804026520386027242679724907752488189682375131684742989406199131185917245587870278974785900064164655539246841176746710687237832826652586835570068430093301974911729803161229341603395696842596286865100603087039668450895425246415945394199831985107064694712401363479312523163276527549063646730992607420294408103104942686834103337559470601582566321785950729674125048883222142430286954779598219509761086217505512926536406653379772025814724736305317831968598570644425954354479474299268893977213166208384946358442233073304176132238878548087175186034518913933676257893067937492249929880445966874939073684501609095646495812291885966872755375591631406846003779378924538112396126943406406532259527299369799933099094248287485745891831464834283667595538942973244898601540448885405508210846968941319632061819634401054449088156207797641356490505165673032097369182942785284431429066637235972480733562656488470885109889994474573372913291477095793804758105142475326258951134879358367365021985247052946976866745505456566771259484779533245756127857175002409201602446327624453715683936089228786063475304467873904623232101601388078775440879494941614011368438290099126194352212627238656829790987799718958876763055696223444458735728700904211988939042120869586389222985865009475500611249210805814919381779877136501056774004826888522934850027812739752103201562078947606715667037974977525096174873475918397844927851397819321607338555229127131503289185111397419514208992047608981532433438215575670980598995606049907266909072201400491384498981112521735870117112036546859164969815944324214361797795376239271074426302298394970422111019784232627545940823239026128901359375102703939158844510144278109310775377957199171148256660024024639464694648452431768845062634822575754963518894305812050720047818023075169959844880500783661021767347673957965539138249425889578211901757868209382265721190965794323149308694065539752395335327674857512953933400906451163158074352332439389937388974548268563881231439882837230464524637453924902937459021466308463422436491447632246627344248149014788170109486685859985089078941310938921716483992205748302666903566794987288412142622750105663534380479074940820622669121626130551874708942713296420490048247632143416055932875569670871214655078463782968362454265062288198161652656435718785646732204927743635034170559395928987393427977407729093189625237093057004932004851234976296981163649514379620929754590441341590857388926245309763203068145928220016452331522076684579716040454611561695411909984124835484248160984004501972720778053462746093945314646960496307008877352800957809127378740121698539370091701297496504615426752287451302851326255888367830728429269201041135076149524423838898316148252338268748696050443331224868046667754161047826538118703734080567260263147559680381136277062970568397440428315692419242188840808475173170318719558499062721176357651162397040884330169247059410902541487877059183941480640873991911855437572532489473991049354814661829596834702708059752168691823519818641324711907372224624568283581992187865156660367639583869625824099928003252678811899680287362221794318353209918386538447115555237556182901728782767893923393663659224137346980627304755046245859435557645576882251373249177239754650423654221504948472891968197028736037413265136829691265820490377526795975402487391898965103243343365269328695594708476702225968043914032595199763949505234306894411354941202225098424384433885681050249677937891660139397281783019580108023482171367916200778589372814270891006007945983859847664006049185010318981096892095875764604671915614829194258866181931692867290531613143194468146683828446824714526286878780162924552751621004110781158744713558355217499102784188462191729957353528587466188911047307328334716934392831751615069903385738301677058818005264328778529139285494347599461710122873298814763171887513921081417300741652180485808768288162497387230654930619289393207693396143445143707309780598158673081315898781164749170335392448027728920415321323583357126908052631306021594443511022655687987287934315872435615210328255570104554212403062372981519124495975008982026129863211433013909447784223636781038720885394030419804488047756352793246666693874910413033251201377315728674477067939188415503467368177060556852953171560164069062956617463260390705404394040943661512827042755213759146172379425140483146497603596950083345875141239785778967871108110644871969125649381760847143295762754079181658231469699487625434630433655608882394280013576616347984308228788535113210504585941488438393914882003394360808950682347160279058695862165687461030382241703717681394407092670268422548802579172164037870025932727799143770815601522538752073454727520587912466508905930771309630130684292364620159969259497010397975009425552273698515154229222120068406557864011126693272426017223184809791276024241317027052607655308681946463250316056218583038797576714544914343706103814018860180649495978091486634443947876744528652852540556466205811273552697153606755835977929461441591817965173302794941397905638217558005607792631388718745491715393593698417882028348302920197043294472958658038596890339064061216269089823779539829351407305766659231553975414131616890838000596820802140699337347051085044103771262657364056184362486371788885345882955100258465417731886950730518558933958955845366517731627697390863460929185587975162172594966547688360211086942932612719371969118249915307751857419980699540446941910352806526140588925609732972560644952838212986472271461737582805934966880242106877890037459530678281769236100262937400897249191490714642037262324149085515370366465694961719199394336586773962026926029351077866738431322902803096666320438673553250860569375174768178028973598921852919816909991554132867394173080128310146200257982245448650542537482472373173525346361153015618817751617688757974997531160749274015185993302977152490997169103513061994399117621275622616003923537831892647909913609816746626210099328254595814056570267655770635185611009413648910629937364596239356729474448882228107537121315298563350796758593068686450369065096947908197741061089553010766264736255676292949602762974428114337648661017125804121244501083179295933040339523174496909793588801791198791996327478286921340077696558560256791448224120939855217705083205071010397473986554611684739139008238772638723234157939273217898484626670183802330622956312914334713768195424980589425200715895022098311465255171540539301435446750808454738590157918275948546622824589983730217653749884555972247211871524039966281857315108703476227514593818190448301904133763679994530243340585435234330351167304220934975376355268668055110954283929152565741974845642989778042943191918543770057303454933782232403519268942034869092636195518173679485785705980249347272742748369546319701879313792082770513451772099036132228815872824416685450648816316520276466506444961598345055204698846947926538548685606562898032739135194730554426081969234835852873389149219012400643072881233675681153706541880371303098264530226159195203732212293397197159332331571541089127771385014299658854612376841120222007671063222104026060534847107273511495555933815475275517944193636737701231590109905949372713184998917330482248543159838020812786056119197513064768546881494105703358881181395764847213037275217091315186739353629744807348881499429626318740732945741114514332843059522511065159674704654250914442344100241808453088051705889341625577604722788945175733795342941857246353436073353029393990417705954853939366678020058298633899560177592234839487360208204820891398483705241176196902462035713256063958505178266252563633444530405052107388962631477403604795947441729043582857661194574814642977683743920183841292459363973207129950118594507682924277405868804912496679493487077262074100798873429933773093744507562534053871903769642934899995739195331654174689715874857062951326964581680970537751409194829268668294749923007574236915460161444640050632339065605458416902832825333473734194265911292385260705997439701766910906308965537871122326372250495382183290413532420154120780823269048405528408014145957521069696444036692461294907966679581481689023967435174826984862265661147526056651819047932808962644708870254335510469452445628314569109559175921035725468938211002065587198089135922629029463999902247906537983102926375930582839721117789585975131862011757646488504153115373758969805557661029238012518381848887851554098592953076216590935228030539955059882552938493485645109334230889059191980757316216208465603056638249913464485656434581370852070120181759402940216612372204612151102227947201439686477035053787995073036581948959255552400501752438595661177777553591415931626941194529871627408605889704118693411639557607597269232869054265204466216852682830925908816602585477107456494462503450349163789455345191762095887279083622053722877469476848424746244052804979534731852961030819623964618039538512169023273385384260535144809424887567557389987053859990225707638502278691582297957324975118638066571465715881379941681066945967326356249006712844772003951791737054194713631710687301545465408624786306887366755301310823926122975728877712002346133298531309191769605316155476035032936824882880897376564981141974093307017729397495742112310939532961204113017441150163096173598941710377624014668971374824357906508602171320596057882402499837233107075271080090942515859140721007649547149218321417599015482641910731430035044699158827186041350476185024989702620418256264290980890374843839033958228185670152911273064871588026116900122880927229573182313114388812233774993712003236412830915502479896140479698317812507885423429053285202418827837978029849443672535674941252825610435058490740953357826528316203510567591557344153126272537352266976032865424866033590438712824610933581842084044706363823789195478124987323371699265440504173980122166393165785087394822035367068449552335173252820268058460683309500832792815791470804662269971312196642623475494932846983499785449582175976622738411732979886234869521052346341855781836973211604299968396746720200401681759344159885732544031677163094401724230472058352212938779599844393639517165643560039928984333724872690823014977796111296080721365436869717302875933351097266907816371682726003650930615772757694530780103363075041044597264544010889710029472130875514198385415845714170658794143346808331382382076275524272765819249352008172782048994747232441177756484079858060212205244328531827039631180748588904838022218303413807110869004255398790367479230231517078696326667826040807288888052847018673311340777747737639984232713376933080954331523565366389960488414531135506366943748096011108139361067645722053364978224704370992539697612612082794649969968956052889039317690517901859469227469068276691391592927183452311400060327717327832742293735535933206053869655702874859628740650950256549094218396641015295952022108939941253826020915696265810475577156563207080192836633577204260459967027652376886793958630288557836113764600618470758175798963127432159803253607236942519817523228855271337868089166585273336396218331589265864870654133176155649966810563468702284215016334187339855956007021831220080449631006472195623152808452221328154274276352060450496006115651322878642340524803093176860337170445463323067734157302627437175968069910359408926271562419292858804692847368834972368842371876429294575446836900856755055160851854042396314861524890826222186692418288603169294944275239147451523755774595393825804457937828418618319953692869960904316889573477065576677377499016512612203346513506209793494559821696917042185252578855612104893821472010127883835568043757823829221700452896085781204586263957087983415936458592728962824815781026235561409886524608140600439764995378438500263671043392457352644978418214615903877816335553637268381369467407214173309802860489952030357378833687511328854981014042384168389201705084573002864713312055041454723797870722459618989964896906173382501762472236134783462403256220330407535388340666688570105501504010706716616770373349217572945535827869603874093373210963506830832174897478163432939750502615497789048208312978622098008942139516340904374515530752990711296283336224666237535639424645276061845776188331501582042860852837742747398358770503641372208538566802589538360465996968423042568911903752115558959504788301360858709353107158900442963834956773590565074364490421944933762487078995650815218191864374448466319498878107120429811214566014611039404298038250233773042501774681329393411889012566129975148490238346228051311795334743776269318037401562709402978529154058066490173978310198867531083855180038076812669201839107415458491622026195986743672221336986731432688018750265661297986310531500264815141649454219678944251792750123893691118929570140410874029435014354181720264418761675597296071954660728915376846782076262178344361481996024354464534773183457689702408421355949199137311694599309268938616435482414206674897619889341221823119068800097136317624974206363260523563716996538856107010644736275628077662164231675211667820249519534050887745379238944269586458959520489120031583386585176971965163096144592683178244169685037529171207153046844161458908579709920230955646461653633143326228725541654715840873552686619623259257229760539681522714805069566035231809343399368686348019853140496280110664980448499035587468401551866421955262923323940423328946231881023221860966972747632672327279479752103114076242655050388444003987284845276728512176334324024615985404146889541411124778855596145914399544111630506999643043332441706974446117632241052855255012527671679876950952840806745913005030426380083366220947838506674401675193060050470665498728461667952763220250630442949909196074607593038554342031668452762140668626090813480904694326547577781975566623265825745912798917698207036786048613821206630479587910429051580223468006908640491114902170436521191663601133403763193217439224766993280612271445839513406647880819337733227996040454285227353920254601913063364574707881980028652547535960832266463450757164548258841210780109038919408123461947547902084676533746314699605480070712840331656452840227082599446502996321085571189541397375105363557988807292876253394269118754832713013304579058759351417886216972009468684864236533125640834462513634557849597491587653161078668877309036189984510538284103321258535578678853546944091600357589016444829459282057800384611088242166785460069314337459457589521342765711933208594160925764887999294775911019693246969498702958467815676936222462381429645709332435630230410574683234541920186318757008401910861613366562191338324232079941763059599159656136607304362279706844062296560558397289847483121332777194523195248596299268078416042782728092520885223364040207515014583714452818875408496254574118320456956729133772950821039405256403429032499117311164884996929197160287798072878060766880780544909296313824632902795502613855190252316744911992299415000401852515145451469021334318422506481245545655832426102125386688783782322971104809698175063860221516924567397116579344759132421952819684318009785249539603218831146045007697189608287477148348431052787511928648421829875184973678427307652176068523027973767387754518284010631657773221917524336349063301603466356168434581376455341406046427512894673010363768470492084939256912065507106048512387411966667959772124761543321088218584936600269704175114092811110372555436122252095048766254555097388647432057599456612323555877566337186644917351072215070169694949348782181390466949274197572656979641677694428686425085039829224432015204076922420018408770328418622576430213561507786264506695006857619463927936682102783179529644527434821840283836729742145871064317558286901768819511020147499170794374140284254438667395068137723693158614528736393527645041610951099237497442716667919288329163859101834448849285150261310317073874736414697190960252755291723072047821576028440364271490520603094797810685405206568576507693450181922209512835970802738025888449257919406146600385984286880805453671237902459365013928815395953606544493595122535811945697469435049003816219289381786565633599784320860845510173497201723330321302943192711593026925875515308146644622492538715003186182104881738125629088145586685032641220111041267916599022497071998895596836908794282685160505330947897388681576057096995460001066475348251948668397008926164326054499950835621590369729567330464877153200182057921074589766225390213831005917518643583174219647265344453735094331631320999978042213508556324010445492545324551171955874624421907529451733361205012375871677157011465820653400605143622174777264785422508716076595086702989253464415784015357854403978299041051781706981088070559166045889582024219179751091652746723042528430805076438669407440792858300167837999307838778018836118099742027809640706260021935474989795282972304826078488772327990574971270199666519992193596883657203751117960511584923754138343657433661580648105301316527138723126949567737519929978377047304607621517071626951371199926608714026110955467911431944848206397706316811674758902098612618919161419986917621179806543152688170950935569497284255830307898967916765880356928852035891291073835846698393033681849679508349314709488164468160229098576150447340100250303025964744935579243473111020694987321262037984029321343217915306642355609113142560644216448578893374194303954181123625656273478629308035120512818582604102075497398632830570587211022550792602752821171819673155496551705770540864248630277696836178917571550564023937352668667338529530257763589637487101169758473782765191469704360629752017759259964557710876159063502540697716183231484880451478374989347995354402636312526344176015923350758155065122549161078336752305527383450255713544936854275485097721316715720403490281915288220402105820654089725387015260547647773081799939049283013784930878303398921142899246972410325860398503152143166486848877863387972500443306596304291593380017514037737330830404641213403536069309237136656300588318928049892396891019818853730139767739208705504277108091762596155006925030466603727830676117736458395674754685864638341861301973866451156266875490547616896076612622832941643754481229625907923095550779631939298206087285977342197661109237340593488696954191272523588295591199751079367089694881147407662281968635166378632536315388808682783462924343491873525276427174225687561734961726637442452247625359769951078071419247484946633353160367803216257465514476172349339528874621776516499252190652525124995543169371271267502395300252737511443243271926589925449022604996889706886616084504385181849410777452623855261327608447918063686143673928023391402913080323743981673810808079870939652901016186523378899700232101566076654822756979417718233269848531591204927638241812290358640833450102288560104516759394407656759581004167895688090310959552026630604025595624425952383456391483470549750575190629450518514156294403497987895669367954347418477139300017526151495314808553055985145675415587189439427551775007547004602640459311930122838897733071768891177485477159976397821932613717906032927842805539664317256812582538427569945215850383012132896941167878251336308512151873308225151706123103797292796655247662807457850762741751756450140667970172186665175888948571091356709669430643821658695779534506842082653584233103764596981440311759490929152143308704514646498647369330662126895553491400930298274322672648442347920224701236872646181744550897771505170106051965015365794326196402308037682449843364098478520242418294979583751114669366002785760901814655074358816913712676511008963528537702211749709970239763349779032167227573380642716810370042677187427579553590206327512827982467855233301354854256301845265533495770654706742741299244585021426177387498463767381350411696164578934393582739675792238846749030945131909628380878460645225957734367855525567413761699641593907380661014890229274441722973317344368137473143910049322594238343562067918189392795693892685514894909122717919208489350113268586349587485510548413856989239325806119656817278225494941273576299005490268102471677655094989412933144542774807434479517456634694603401972793184002149235027995323670074066087444946395072781237080173822425865396306881470400800716483867358870802147517217488818641427597427353032132719356063690367508220374686952517736700097878565181676444878219655620125399046262787055933854737625357117192153836432191594657863967855857084772847842907560148812675230223672897171962850604689989149835681097029284380290604238330769045937045825884728789333275006188082824557336562086610102856925918083383651499855610476925344719133560695841051010477988351453202431002188914954886535461484482770354153734952206780005766207133540049165089609430607440986812492492557605592275171191280315426151619500020122913076236732068405432992667922684948864612431414431678979837913353353496743931378023569931148291974582935527350021139192774266727091143655756402541479871247022823356841907936274634402102476173859733022992344173093762504227430040064539615006401376351492129051173026392820338402264979145617798487188175328325499844105879342283471395301410886336089917628553343546678573200116422749660764269740679215157940851512565211004644125868115647647391936356152678918380809129635474416660265150186561665727045785446677833370088320972944458534951572253676782505453969186021927382693912442820814493368041483345471748223707441575580019440457233588575668203050083087335986799346051360298663124497838977559452351407615023360075430445212205924869517951174015680705300592175280617103050598231512953922562934537584275436607169191781156835029441330018666304112716824675637537657104311732631368400586822057662515826775885414550758820961910674662578259599406622686445070776188965387793906350371197871064913523339781626416349665192383897749193742814082708221273719648690986373615639541913476471185975926790020949355808786861336701120896688265614565884009455743785188464475352437930041556094346018866928866440828210380243794164079106473797662706463380540561529244536554467683930461640538931225090480532150007065736965503411180306732181364448899648045811458522070253144849551581217250749430927732799244163582077521630692649573779755537702677160760038233093459018547882048965256436088732033966312311871249080136340658331837058562378941187927912140473994004774048266085333040954869791268818475148112522804284101936717675442496993732217749677763832517389360225040353309410166198553103798839588728211887740979915678669875368555886713975557361417588546808824529962251154404890701128081857434819916772870998373971360143033365175888325311701161836303917578957337193804747164305021406258569173272755782547544895011755279392041556375609404516389257909696735982648453669809281628603635689196984018133245770150217079373177091371269867855142512659461189105131721284270406829228274672833558212881261815079248694082846879944717230884380225016290508638838171119609977188658995373610395212282146497238716913978090081521508227593837756692017496806537062291915734695562171871821943656728137253624815019274197177830313374165976379195181649617744463702920434525417274221424628663280219087677337077050032768780410992176249589777147824858515766917924657881361122052633642975977644248859785278500767734997238021914228233298433038884190432217547663252843118057498901776376402885310559045821793534223403773230067224693551151707230093140566547003646370737075947293292460748482526870756189327398265224550204551664715740466491708381055063713761916565049156667217579689161421420414956392458692265683900913924107012157156668849257941537599842182174984578062428856214560279441911932600688746517867448982044957049731904937570361712088047922345861232474722925642893908743070420780584971260591633274016709769136085241310273598532611922706687652962652929075347727790543870758885891047910525064434666806947179812298333496405715463823971041286866346282893777127637052646196511413082449789732980755758718428429612193531260881782361101727747118267157032243032343326127274746391825108836164138816907242804525373803841686543933153557540280574846347676456827938062433713077670161994747831249465976250593796270687254476773332746292330237563783736418711014904118886487552765590448519854907017176044685584654375832004417026671637484254999776355929829265942714206758475838875126488398681552240771254465803521891939883711179808437290133234818703875938640640689915912334994353831155977979992797275602682110281603334905889076087034746665372342099450530024932575042086420211140337495813539523901282789738372540969825200664046630459051970352658251281185415583591919023979825412331719567870345500841770825787842895114130409498782603905511450677601343789870434320313621445157999983276580585095897059537916529846248794128914259686375058691288202139871774055535366447435497139616941404513984696234094415668556408438740113269620552291314178328994628749212941224915821296710722560780638577799596163681255343380271344488083561860970018216820474030219203126137867643740122489132752739072410241049210351599383018597180407957699628383677782047126638789798390150223836070137011065734541300565046978128126205080016790779753919573976004495090978005375378079222730720743381704606079815174201038216906572466971315673888249874390481814487302922665971464139190868645041202635326179860426821547192620957609127689221095416760153857557079658259221182862872152116320008459824027430308984272166792900698202504764041561815847070454410925793160093882316411493179800080052249271690955284703109493357081707345123294352345298985740412698552220124621490003152194675914225366074791540000789687984375689551283585516165693713344733046050970233225109436612507173524656325273823188959070507637360346872240505898119338909992639036828792335942660684812385949709522994792878745025862649690905478036695800503132729560486876886366980305595556595526200868310103196299289810799934977307559769002517164468663966396050481893450738391446643782432184261619483407284220312536193274221342840568524759593644552970881405755971222100223734506454191996247006302413186931977665789798335065337207013136130359800975030719220004152502838545305861550303872462085918457058853526800046363022733596983198864221598940302406779287512090260472606764282017467518420521399963725061770703082682368597118813139033218355047480564866347152094618457675935061597944928478512867755294903313003179509324760929282579186098058636651252697042617716547689424670967176465641560596210000605490333907920547432091902120828013074043017777395578236011423476919993157092409884792343997105586383912994131434341275131308708023439226988410020553762271579053129451463630644700251218465998790039603554431894819435856636960159946192961032456597990868422843171893628449922547834788585359821166880022519606023029068307944449240706868544313080695373663646284394361931221903513750045363680428019091506733249153759377171258672060381177658543420548955798557688619362039371179185664696506898406441863858420417924609144667396635531587829980618199833872506614182786819531583901387581179456591207616955100523040153895977879437501696757735484938844190104707106923692020679501631928268747234588144323273801076493162195264853829782460908436946182573570835641345442532179696158733525313393191653032308661864211432587187609585008702471175291552202427547460793002715609908490755721578997749805464128331298842866878459243055489908633652407583756979040603644355595010946800441356959434896078354813761979633858595717828050992658844904929297592074323648108080957105655916794095736423083115876083966387748438752758484550458222866607956132225130650278457605196515748026603866999301040778778235224848986339169456502882216634324619183317039617478132971430505056389433202980017456866644928676809949867860470922545837627040490450344711944508107335637181595344310425512340388314988274019632362346920785564375063138264127774329310162270027345746457530725399122633036567577427038066690024365537581748252508860576928353201888291491846048148863030827364602540692100174826000346004520868279741595452366426986321292783118830069130802882592580046332224679755363078537041589759358409501681379641566092443917932609495307265150372459866489488951076823223400699759877260477555446821425613939280422174802500692358811861178235205249335426517637712849468817404031676588746661270127267926080097694098803840037088969552045498197635079042460867129873036397570156365262494811728296004186080176124347902048711195138876338896706141567256964286556256437413828604382649559085850098337047066086271817266726430745688431508454693980652376184337335395403903077052916819640974547156945354244295286916274974606816035881828315076048524531378237610246465915695076837977139854704186985990733681371914544873224026431272741909179956141588145191483265364987976881022479818643818078319421846946902254681843122358933105947029384268625568419732882946790609503894533940055433478673303314226876555771767764704769840920051611802493756744326531777630768269096402141516060083055634683162779887035174567048746751971098408461028800709094264287737608410973581025435543703137811269886214558825728127494868134926046250472608496256176543328516573733463064610866748150437445041063228693315175280908604520345685883501607466535745208676254888531548616618751325530897306090968689896208418898274289287801780934554814405325357629957422639060939179756752509600588081334198069890160808896785606148803925931076097133825522041118660837886130224848585694247900404297712167040285572557489704793159846319774799427628901517974983967522223746738810633238136415039252098753738285458631106036314175245555002260569560960387154357768851893093182270180404686437289140650397778811889712142920059957433947517386761114097710405677127070189656891854882331781455007883488768428892225502844328508993233026369776208502779238187721209622761375585156947542349438993636251108959569378523999721733503520058764252828079577676421825860506283503795572041160080061309313104612211516191292733356559107466024224764154804114870389121245499053765093167468663385091156372600750755035240256114392300595808041828843885777197240264261160312795332046897551586065304896205410166255216865601818475570239579111198300571246395012770137701048995819006584174466033014243675438058189121119938402627928637713200393921416612031237033227260681599334079489284962268308053092218630747345665045225184229839309493300971838190258464379231418969022462980604833327377445403525075623478829521504672196790815218088109686545653489850296446099050940204531515451068900072036540727492468598573605946648262594325885557188379769045050926794401822977067152826476879621615003557012040912526559283356572735832024204147540230438376128509168836078581287183454686476597675578922435559328555190484369349947515092431402567831309787346279399154542679765755751890326082473182233865713570877291104293496855948139225218050326709948303390991213929485844367244956463616295468187137468218265392619491852500216773037995040537151899460327773751446098535601205135613411958148916987297674463505651999001361998353006296246999946032871980071513372356991607449324645855144520614682867915642691928700822829718988603667120358190593574779905867687208389023973825372701752598513209756634082846688423671695984463547955817152968401274980179573797146542499873526830316002376934837629363728707174050713859045321878200786612606345169661565934896967307151618397383708382738953398528202884252022678505888968747003013372175780414817569970251783540105554175443973922400022850219000483290575062381853767227695184526001230459496074958821683005231470071881441930390946344600635338513266581852564542766270509684346759398273496421234449746369025416531591345022811843501827672131487229234850230477561409659823046522714271166840622578930210268772518100581998432438030928972221275806517370440740778685900612151905914108921785043061453175824201480489665325080614288416654973504675914310816028275626890056814016764148699254203253209450590093870235696122163153757757894428501015662148656417130188289632902495360703454114531491039615026929104094369050384331503161636895098916918453284870758199326971110979816412753916230291034442775868415115425763173981598075921312516414966974112107832925413173775325163274018258695419643425260073500782649437991619932471936372901168371316418782046550228366928993895058380779430960182664695196006483739160121119107005794865100092350614225676282180139649696102129007520744469771467704244493843265840646317697814060487868884875994307447075590863606558856877862277534475724586705294116991900460223308021410621431701560038688768632669342721293106263477459764877559671146014564935727134890955141097236361061547653715955630773944642017227381949074907167847436954171057034575193303682050006160818730072925477945359219441852844775885406671357775198985044282780645991202748646573875452770573777523907139269757256906376965526686776730415975397707681587356072212978388198961587028301820299699868601723955395351720919680857390127180657540976356888584563677498832930963557228139939515730856899010852427960114765666385832647719450854744041340394910734822104219405075151143425290164055026707563020855593882963412924962551892225485324181927888566810761672710862910846488642670178680669430877397554985205062184203216499218199903218712567799851254167694731068065139631418576607744109331684002731618074629693730750036289966571890902617817800278156282643988684276215197096326123640594288280200986922810153797280017449000986081987763204037067130874421578305108697022820164738977207103499216133339167700900280884047915891239229903380120820520436982658059411045522313288063447050867633143051326317190397200702741497220764198607679565465935355721610985788022788028507999746256235628561956921044722096877201653931728613025709340703740018342116745624881674116535149223978427730366018300003136870353090542584417156185774705018431543633011111953117870349547906559334879049451530192745133998343982253620467095027812787276327679140339649217076820470822998595291281004613804492864752841813951146110042558824940620128229279802082095803721943547718671802565440217203341096934118886870116640643167672698857516468227604839585702821747276282218295161964814708738480386613814248293089801384806948235974799717167282862798916471401269150731732670518013661615703691190090914163533502174472680092339895540993173264982512837617720129292427058012598712563155250049977435026062107606747550536252012152812961962605093231331883811736832045063396124598757323570471525351809820400094656882702353818734295729043594925670937000894722280771199901088131055686061779222265658401361558868282811095352798890307496502276019058690201215975982567164584644368915648720391519925024568456231269599466411648114855982182846137429881315032440256693043098666222650511363733460651390498709098280435149704661840316576493397980800010834565385078068169575291719183459255340305578974119632513990837506585049457325354031428600714479357824506187399376043045322697060597740335020837318625838840201364869060907058983285252076671815388976958694130476593103759693987454544653915723166674567301695324199226422138481322226043943848847079075334853484043936855537304001891492201908587239343444627029789835871592514489166694359008959294944856134555244814474143457771409251740306706712927721147870624592566843197788866554906464059476052554945186915344501504132151766376688850881767555868756391957670665541045536415790868994394187751579534105103702859362735877738496978708564478551290775118399695654229206681530613484533704220481605368075147760961045544817205518128597408680065537412247400533690801199232306022365522617500631064286614977067370333801718186124711463379351605121076718295532931165122667061610421730521969747648727752558089802280933277248198548147816444423615655812677565169011084950248337941182823758818639263820169375487374516032510072767663422042475655217824812012807710717202658430644914358570233209852062363039674746891502968886464060787355453867427277261728317001434604681350155134607833961316551251482978218536875215377486878118829255414753861192223708504782251376310357020684770795972228564589975340371186977224531129121526752059194090066060777026928766107438267903731703361299449226763721211314471411629761889205804788409401864671555247135370313663160904171746839995071681160672605341972242468312438214509579645320864121585931535610592345804510020148116345087418023407425568444409643294046264478056898326471126931266282330043228582262606389336920300184985995068455029659819843911279120119535421459574488705091826290683964238794468505153110698122516498281871262825787471035230737297416766242175094644183706267267355947554365489589467852931539807454266645318325853500955462415255888914744798062889409478160135842980525253146371299891065468580201004892467842727671430055531182503579511045854369077108632593286881816666906324454242320817044859746571652580020741903627290554463653600004402288079514648400609132426588219440428427460789587004353345102234819557193623188367045327230898721436920916297569300060296938306834475580732474660510090073027567589067257244434195380646014753554769533672949642576468318320387597574926848506729739550832646430241624119780283095336349777015835070177769061193763918994298491182641877262915700812734250607457300299184114431951929448369324815217477414035276514154830572103439974196353047492276392128635924773478215102024788451363780936914645793107554952187206739166300397621231254175455172083930971880779894677418711735272997488664399559647892643689243343369606600478626236771689482456186475675525652845315788148092608201021270462770621011804249680214044189495883222798351128879131662719541959877406704522501754537819372865478465183241110807118261195250999409132298319587795776943202126304396901778638794494375917468763554499133210394271259852219188079471914544658468377242504672136919568590405573743953304237587265107394037446303866338093245137283867331720123553026286671505654988585342924744365367333595214230858812239848709920513618520058500652534000741408814385129729232789676941459895958656643911304131829576327980320089230741476199268194748335024029546857693485940131529826344361224917009557041402243088880055647281370945841918402567273038168166728537994717031398754567053376843553312820011250196364322422183019130292118960369999558916084358750044878668586899246016051853510093334724864030935123743732903927784407804262699822241278927098449300953606506345895592461288622038331123869162438611780266540876463465309061105063812919353564182427260087610337412515144109353503873475900105707003407935581817269083057078374523462807996486215124973497305448233223834433982444311865543072002288062733277329219002469054708014528951489594008320534340583284841042427831973438991405616610232638424839221156890607960535771760601269496342522209261326618802607021083893960551028989273481339719336562237631705831375834599203586547844106949798659047922892587797000536091796552106747648752872290225709502495757959958445991381608492859195759907165828310130510479384988931127777974239558240585311422232973581160957930577024253751268930422935262188657152008779608982239235651024321248382915814436976866249568993256240743964377763849452821948198426352162163652379917135764302452442114473749133718513470018277075829597316165321507733528015267564340981861792115055312135376818450274953528030729544489611591825656519259960543641118164165947514136551668944049416514117013592879829685619935149518590847962781924869089975524200861651637450407414004963950910220760530634258689397048485882978239181153603983034442656053538682899028767666645400982143061489124820753109806632731217641058624566385798987461492140511497746790475624798602802472298875445143102162121027489369815983022554803006962558857418434236909593666376045213519661456089630330761551534569985812061137618682881564275513927800084849351391767077917496892183726315405626017708057800773066767066640187188078034303466181137083767090117721043774965671714870714585589099091043089829641418646684803673423805546130534879201219163596825836900754306699570835828130852527713044013710196068375736659090945755536082341678973487671988133766755636975327657990657770382226220726141076332208059479958518434156939937627552410141279491556808246389282554502640858344255479523200477431890514818271986547124481400641244047438351726030313948151429579174728704490738578550101533490363811336951300814289963646801648029982359308293272739950918033620260749324114800533474087005652748435246570368587041591583410840218644920419759335434907896615202868721140188164210896348977569325832580935486259964628920669176437587834625493373701432760136712681175605095362383386743707865724911661802577606231606749139358031100249437505494596717535433003012187270879708453926231758048738855620679453972745128006066438873633500011186433623040355592357908093780218204926969016213917746165795946565840311516190577958177499319478143502887024700311321747149426579460623182241099273697547340333076718075365971467692442688755818073933954847161666783896102870905603852056938031318273318575761807479240237008467981406581964540307143979163773607786712570817952532356807810802655829488556046024865457261371032836505683246122628777942564322177278229354150540043241435486435845369900841250091560054679274156346037073659492654206038402304229796657967060417384511905194935270229611590651564504703568285628174258325582716005303505849922022037757281431131136153483894091115982608329266990169749584517609612046766396628368877009508190515492863775890400918164842196726051820629199659612098195302913839806373068324908649836017702641214312053848585537427166589046308543733897103099153958642931784602957895881982624679376956444292454754033980535267893063784230549655306336029102981124390226412812836923982347970484178070380811933606690789003663257965654151933125909999748152547602997046409917227847954238698208672168450025111243608502266062692762435599912307188933164645036870666554008615787240250437042246320684766238204290310861618920149662204364664054265467657247548799765080899378913121134584478067250946539763316153243785796450200953400536512928637030208764271266898926068741704812966715093807834390272319589084664158722838924996297324230980395820491695520578799930979008942246229025695280490273585563730885630868484392906195994945182601078642258331856040742187336511062452736370096324052058979447413900252351004185770894255899589583033531586305184239132037768690704951684981921940233381672771371608372051501573801487766160285731879785149432480902707170635274854645593680325645549694580474530203790129198774761687038767501892751725633353869628395721435608844000656242811280999628262407617832224598377620306408694058381472311802826287938960110518897489377836067053437220539494611731061923830666281967978611249990786175858350712830191335373718130174563907142313425934540181277254688429846696817465041649968633408354499622133562134929701477360803929451008182110151567037455096106219462732898984447913325285599880071319154136407369621508519237698372110397367429602275649481520691483459854772176141719162239401527645749133743988995609910048795752915193892416380424561474244400867403031442728549772140316131659027888891569414224733465958350204051074636276965710264036000332957675046816770132056404580648387646460202835867591773758326558710332195940001727497590812859558661601103562341430256892022064823883567788497548860159687900563900977257291008547824074644667306688950507997729096226042004537337570022247526922654128346979675618816458792198033766402764705497921007842156172887461448332436411699192315706779380406283337316511514438777226534560356220222564818801320773657782866683355333800281812167233803833077141084133965628089016173629965078479778788081396079869921334989246256482900103578064293952604884459976748077019269710045008036479528092073060811791213993102999687998946610050322518255357379485723694862850401640415930441699812365922580535622533463954909519280259146097384416913520121767664690440747326500917542042533152057635122227690035071920098165243215802011953920302871083985104666465145688627619618548490742891970971358838193763706426625322415120428825670892541041918254812566738134299581777620339855862035954866490110647605166067032888355183438454740384649093649629518511164210015505110306781961239820482322000708235163935583953067514520481715003357403230824359550292063550755935959536016340193094132091485817809394392541523176274316738781315630242192742843888811772661101066729854490826690717263825970242341779029284975904892443774655909194216805226050312150887203074378505700405657086841202295577996088209833075395733215041177107492020031493575371263953842901493161477197140241900816201494972698542449928782367527100150492039557822406434179871766984868173587757215200650838968767771990882075251411945896886583624551929364810279271949044341756902081444325115630937901382288843984198354104329702364606349830871688420057469085108159465899907950116709479473196730294823638739503458731825646816416307862619055391104329386542834441289979718879371280936536471431692607955880152389744840873665088854070906482497333620994693670006607895232554865121304371260430536660020213025095500125025282539770123087386967970722201483228204466160031190525453005461167903514546977834141623427976403013844486667916752862429954529235776065098427657220141874913287593306397054204557839016918580818453579969891308726463579953425242505715428775613083890785142138307816567905676259917061071388177161711940785197113334987525151599442228358569472128932965641578485577737715520499585934148874845144272871786683546786223505894967108788596049224554110748588171907857763375054632335285879319144832142838058902086820638007553727289911805267320857133770197671420898633630885712875793894946307298230058375117207601285613853283801474142249055935609934579119698223409738548687404076763770643937012826761899866653375514465812429929067652954436367700287794738932450195113512958947786459533274641507934154585411773366085905135521826599223126361088393608280811420571206797993808807212947940740736457850403378862518564129757415657586109925934270560224462926476610212023443884169212194477951044207359127752301057825646571210702258598760344792380976884539789801360999513551561877110679842284352792091656447277441708011529192626890090175904981895212907651350230315060234299372241823422849827498012892592741988480550147322365140388220367450712555070489244307954842542980342857348649404600883449236170839733008469418652743273136327056572822866648245800103251593490678346804572620927968591748079566797923369925552639706704729590818804896478144077679651741572311891408723053776472335807850846208557380110334679162092513384897031586815964679907534364584053420878342528688270695754198485533250540190654665278284277646311976703723946628981698975613560604951674878715852390962693408223386294883129739479524696050169229821431286668981264012759772490031219974640427170705634835213448898045372518582318826669448433266779719553976818917714772815823533479687829809389738933644089369987161469366964089116390108738633761209376641045146844874690791337475258791050222892505539387149259787680082384642334090369904509708405734763472349579314231609109346155735387953886041305512213111391661999122009050339937718343981295388954564158984513094355803784381369427950786515909261418436780692170234693029239251361843576509492244363771526704975578978358756236386851127468209791240036707973958042749225954078262452547997177019880720534873076284698662543849002763529929834532127947161544915327751598929295546290477682762078799962665386817906490545215936579593407054756090886759753174603594224240429924791894174193914771713008413802200650001197594778514790779770434778884601876643641384702842692713496709058229015345215597992264303167373204496199630332489223817121847755686676281483021037911269611119917015936677113386780113006015795140080229633216000531229337236965592226157835706613921438284339889166857784242162865941635593455883234427005895226328970671884622397829430230975124135714626149766720188916222201980240339628557299873099857980466779911746222326923636793238893050739711340558753942431246857813805774473814288039145379348515021076753623508944233761308203211921684506581661291574027029203995266385101790301535023453852251015612371506259467205744458173310562431383614224708957517770585560689100329018511868926070670306285835239504259834633350555255224260223777011414927001264529862653495981032879748590335950704239741474030265684532571951542297971879756233500174200655808438404543588269339962836388667004854735997855890649512902547801824342347470974990842233732084457074774088771055248556271856087352714996798882272277130635854486651716716462673812347230347919577450746870139025381960571091477014271351251573476629770344546025786848687956376327371087595607361686949498765705766076120521854292798985103119627315737628751349483333004991522450540021918006025265651860053301523724966486545745043551895242815897920763790687020122476575175853177659206376144421550486152888086087442589339106763591959134243920042771331493843338310125757626144318546815353739706927029078297890392417737275556978902933616508001780007195476760931489026692860096325169536536855363271461462414594658438056201858697616261764889403014144561178172595944771925003762118471907252081324502483160828566714004937223870465956258956691030667160312389044116397634636263681726822206442897565436350288715685794579181908238206771308267576558866534838342528912542104452821365596663792836920405385429402799042730694110099094261664967310891415515109336453164260964717504320227709566022381096328851330921077313493181487953044337134160775804027462791638162169535175011094068143913719976428790487126265539244525505641940669393724665689862487116679232270084541104602272875339794694774395216782456169376611305900567979372148422858225436894851550287327627195047718719452198071118616822827596594680244694089790194512653236254526900542978283390398711460722116591023821485570631058125322301704742137868682240751475467061952658100449214180656607153387466229121890853695011320750863454350394574640286625328936205834571140447249152194657785860446170280039450180214792782153640893011892041978577160762214958507615645273735101958761946640173370227181079193097406409557138655786211074677898887261254703396851835857638229064148216797771073424813314030791376705641844042735507009905908179979360677647899784359422533957635991599717767107897409267739104551648457072618685023112198111747495528459625234290883081245549895701172221667325970807591732496606898169495959868052455700108246569296188973249764271323768118023149251933256489253288340339146598354022471223167156354016230762228419911882288748678174650995614744940384990119038135121464948871432950806153518051074663698031999763336608992117631419246000109808223208376886652504016619242674039640515134849710027607975955336196858840819520203857305728270734598801669022883601486237094571153549733812430594718571753760220343737077483911983705378608381946196208823051338110976168310594614251891545154119581646612025904063052318460039322861560978502358232255590173764996606236500508348895726791075602189468296575200623316053173261131980987369229074079744016968710315435305764832442939948423876948304433759911563078522297627864830278245848102598480047354531302358597138628250867995159656986706370907988318885005658621623742384297989839445797103220238350903930305617461929396607486744310966785233216949384035289490517984280954808722740071825235569980858424082346587403643239770493886016106516106290577482498723242290092653444083301498445636940566777368957994093306324798972550018996233873851115940160288235391708176779238495839480315512978582036581069888435763714118759569887267511044673602154497017017609831112710892673083737357941578945161895971840976563851673327657524544148100032307249710767769014896026536957046567593734121708014179442684551916893347136287414517485883304618184266519651771538025790576569403080684122951331079709322207729086098211922094548947614944933085716475060676248773009816816465390302536913332402138326430701974161939160267601081481374189224582585662082237266180694114872987249755802687540521072770488410729469282094985286651168766237822471686572562691384434852495091660380749251916950901967205194751379225844388862363591419998052477615441122660733848604751329502015410412374816348866919337617114699894123976795125566689193527047623111501645403097323541507832698725370321066237104862895574677668818851708871796208264620473728041247378979705090669194352451045264412259549001717069275554375015886787610640592064819418463571560071476918717927629830663153326579625671503677000281780121126142518944285903396380946620252752260341353483310511856977636186778248267571618881259082092662174718297389566934164459627980148546678391546682560258020351054861486911130999399918571499890773874302769449310908201856659602825550048971383251028775752839404990693978632040117751440374037784979770801667060687054475123835709743074792010156937930848440122588896856272301710917854083815875246244205449042455223141761355554772515356949925900351501905564351585854682427657956122871390920639531153957323295325837232284618074828393201078317983071712834642402630713350284151364426580668329018416092772455688606564900635882915834265647715613999513052002823793386436218166016098720959547259432274677761193869547502698743009840571588608720216702393270804129529533213983338912203714804874690376418261237392923997337690297652621308530360852545288513971780554728851501061332199614908611118409938399458857090443777302763385585192055793549743370411071932332617045095168962077712423973474524580743867360618442025836338994860382006455083537783377737200614602788282519692494490574874095820145291896745916183787217220605885438314397350442095741099455806076296147888915072750739312043368668059214796053284636519062210636573923930575871099989071758742573467316274594661215582742817340749458599442494302501882948930978517991805723949954864112659256085542936199004884290194102052076315854897194114689026936855919223486720556168178887172108341383160814575724470025050459837897932249873659177364029675364209435559564667292246231626485310341772745217990463124071578776642420917661170907777616477694531969784030065188484775347727660064769072326845848744563551555338155569234524204129399982711192313016564467003090725612270320283071371494277527145818240547475465615639341530847571887484800496829712535280907187673085756991722335756913956909247748158425713628281816918572084595721443602738487745611117941849445078176776098634951681521774584463923752575175657581387555987180054892603008004466639584451252939837515167278424281400758950449573543199567245414742103476788072173851648491483250010147856663895452221154525743467446075922998197481868540073994429504523146904182326039709115589630201015999275179660794381374443382951122588075324528213781603118421197106109936908544887254500883159553039097339370673887914803475544057937414872550940364066170209909840230018381196168924342667764084956430170933644667060041004562714256117527747154575180880145233098417483521497002975392542963048098645765414444279256677894511801507215063833126221556694467849129458539388990459079641775088722304143495075469410182309005206203633291047225684954320273076657975396213745227535590483885464105192114033919559712047375254965445451752455665229593751389958771304713469871539842580397529794474178702311181461133773419846703991717508170574047463764155066455400914891198265482813006573231525446716387046293224090148714628018233999828224153041158514895068946357093718171321232401618175606035958491783793467518193486303222588651866369177076124742764857984334563775713053147981693751418953233281342739467770836909950269755192198509309664911279812478266628937783975309788041566979744127749887731091669336027515037471196046974835812130348824449870401817724704985105692358926314058737150514460934283670704940904173137069668267218614870712837239447258502816883427195747375069343960855724884868611648847008683382099225736135800242313791333602586576088192590888990647136761521358180654717136760328241023133778886945724960809424649752710943012782125233609463664810515628647940481294814853203565385748684363039659955443097868795545927280964478173102215191234820938139675250178748292279498719984488818018119996604154260438397157259706834230648462258369549200303336702858877671012454764044097102086482995168896339276947530978329442537699635652337092319497825992779606867262093205147287867609373284299590355887917964148198012825270174576539478686239110391971478693218182410551893650895720994783338308247268319592212475789485616768474658115187726854696478867466924150566603103853484453039491750261705735860544300798926883173666777232204965572581682662616289705268711737137428325122443976341037847582204541242236229656728261686815165538772683362548877903246914303075097992432216359469467921125198653624950722120673910131181010173946817173315424230229244887480792344347593495953949361986772786592393855484307224925219915140825217826367072075634585817923912414754515862091304827682935163535112170062141178461119904962373262298737449544241056076417889392930943450675210006804408520689691918361879162027863463752879166380240310134971682978228375471628095633133602977263280216948822734060017714210657819783736326940980995700643082596606463857797039475506605673828627473700344983111434303954684642629319124736248872920134265548342704065669130841579581222047966306232897701393932116117568298119223178577387508512694892581176227718288862242943540502114796729791671923414087559106869871415839147234745858814032393631524761019787282184141369114590891787606144704720968036812869402887082047536427098437652342047309495326711863219179972603231704302454313741726087529697314115798408720216133987247086153065479739051884761915522847128569184851554512194838541200905828917219478356607757961701835876379973639019638945894534262450010234060754899872922512995441312543174897990113464088601449884637049482442810469480222360607060591925409923234425612304495263237596905288655726630940259083395009721770908251381157811555435361101420702820075764713437202069484936343733390050303906021738793642121581283725147532459853827054740386181529926920544594180340080595090320443348222884363679560197957860284168905039922055104765675032986517010856826106036452089372262301843886366004799101238473138764378354817688259064170177227091473169311747102777592202588736607637134407864550600575296783282939190664418901091242244571812199019759897659734361413957618225362645909675690112933739405892918501043840952692345041610998134729509790957932890165679044197944894927828686121852902855190062532172220572973243853761050202962460042904898226430425214150763147773230105828428415598908467154478476601421788597869259128812903603987010945758765401084028875518096886843747348890575588987462233016494277796332475244143321104593215863500856207556297198039094396567120541537879418941012404658909735923061952048067817723484617785420583748513950175298359820390052586814831005113763318672604765029953701357691707349038991464592730797145595100398192732354616290198943385631992423250143967918120317064456586512195468636715971729529649740642442844139485174615558116384377898505114558607463709293679995976171106935363098639197148369073073674072046225859281719833144490346417297575655800957309963020605773934143583057209380592280226404156876081413131611571960368323787963228513958656337566272000872470555745802655836790732209043023167187874196058515338105527288852098130087006941928279185060057524493932553064143801961145403646633639011458150541265977220947867125526893852707004118294618913791136114960405581815705119894416489340800912031541454670966988224864218374352473565683998690474148274615297089014663922677382976240408786410888092052680619186397844406041413199284176594088200392285665360718837987784558036292868166753337799390676291407246299147813292272063078344323006232261203694909761596310435344119599297789860659456151144830598244404658885779163478290728492134025878692785994376211724523608167744660513871723319599083502334606725757063495530115177503163993505426285264439999807095537997117342471792345114820424596318472765416801723187078467227353140028097715150969364330955108605558188588903904692792383246590194041227884216261457809065283068952599904751024573359795939541344453805883947258088529640164550628584854614310780330746351067095298620428568433294976937766143660139246443242053864530608593996896113886926151305380133358453149652865667586823774037360985436675666176826708166553908941823643537074304016554340132110997758218733796688786677182758725790042017727480495543700962646397183004174633350717272149662877315248256456879450638619933658106302109781602246270079966871326502197027419882283019940223498662199542810366189268368109022946979584338042643665549810925028026108074473816216386074877246677370196349831430722454484356265101973107388569901366663731077851170200903143832329038232550661157531934534022424637730535811180729609881668406304676865802162189764845350542904142269014885863245587465774309121429042936494363764004664531590407456114801775721938360005849538102671714010252299568992222280170545606830156152789482827069871481126537531254312413648909901852345105269572727905637116838007665734089024927533040463497881778092681565015191852223254093584645113479613746821684363417063569159741864478828619751552220177123564172550191181610700421232683843410948002445649503348240066045921930551824293408045252272107835919287729684739096246053988546281108989749962692890387835776977422996107349638040323837889215464768865374986848302829423609227781521562163020356910057225692055166114362117388394576447070135783884363509318067608252726262287736638316475250970429037961643182529842347785572202852914023704907997584208575011743503541675661413454094637473132252035343231857308927830716140046015896318611020025988515622425471077052134687994268449481615423601271008585861720411182815393043389520778351043654611244310238922358474035435296524000443443346545237064072988390359666396720136124301574532448786369728558619688925643583158119421638656209647375053977819434604469724247353804436257722735564701383007276730667644436973730869443291578383086818684884280973263483913862521586311519652895309116951659090968862407548755951211718882829087688916342018187014505333444898555754542947843068547737205956690836480421208377582826158042923043680446225963234317142023714284266889825040473882737986457084508959836923963616064175887064381499204871743001369641945022893919374988372358012399299199990460934866371229429974106720783077810806719406222009484638487106693533065792475059922295792807771614887886517193597406811859171373645101051449528779731624365316334377276812360549817721439912603274029166175397998107377029850673731417919886056558815400885777428419641802429025166641047885579896290934779348702258573160906684141982843640409702895271736252490972610604214348472646776038604854862812694878725693093468364985549257833448686361101580168845393805300686038189456604209463390244658981491989883352787154245011420318802445899255528076211423894867359446622538691948141603418065869221720007740317124372750565878125855682318931403168664039437874631411592841882199068339196246852181845997716139838736270534488695912841631929369557080887160838574473777962089562132306156570105461734800946481273492497059012859766316010153636211229199991062834113450863403232453343926314094940534112836038934411424394479564142118151655666155669339091805857735959471828892455554944332620461405950049938741208021382924679859445591475546561484979987379555927647356727544877590928418723767121752649673518524419830171872843018911672777152426238854021382371559320673874280373763207630276784891838264431629835625809719268210781939816602766379889879060098465865690343982647401164485664594210286617198015967777337762870768248900089801676585988722581955820256407541966578167410603259899248461223534498798066910341548510974175829997824086724623238965165689666043453673209529581944380165514716791461485351314670063343600641869366628711365403402795294484419139190323120745447942590322297620470577767860863728356012677592776486562946966175894260177957948997198637068693146580994080337164529520853666928453142365213002664882329185929589493703226668224509370382194218628682947476697262017274140723819969977130897534739479686851228818538394801822834086818200726898135067083451160196879078423722398356534701433345061587309843182759023655655425570116578890592168689310777992691143179229849080526783722714265361346630170469325203490462352212009203187360388985104838647134295018517349712622790636268551772157909270431082683399155037206433371694688002588771575221965578271052990118388345534063876386692690707404225909413504570929778101796416281446535198129661593631142905087903633314195084039676120907300525733113285204910470879045211255426614195283562997660507095849438258511775845693668653726319499692222568692945013496839575690010439149463706737349649823248962191141749797321756802728463883469449232226855973115602250054454449425306032183136714647570012620862775350312167352219974317053179892119737768659799649912515052545297569740172751899853930670487513978487236853473684571023592828698953612276231678810885929561315027438934656116111382317938706780722471627825080690111356287068874213583880855991162473531473118166528366733396857771822815126129637972503696770934148572084669767540680243086009309227029846404275144517825687841954460738801471320373622712827805168192318947254640873712448822617817225201678574532478016149797540479797182234340410712949503072947138229607085749085039033471210909976321053006354127088072111035375304356685531611365620970928419006744988568611052238294489320392256618859157541832238157513835857062460377428323770290273671477743219872322203685250039222885174245081194232717263924169832483776028459582730990974389933520722868194371676526384597915323398040900012018694259527657058453872420104673720811599181814086230776283239771193332492286618607675818572019387380912569860759412705024774556103405409842464646209646331745296900583762993609971000593185488265000726583844205229600226350812666402723705678952556422830115586760154514324021862441335176753068364592050288006644997890610619514406749780337942063636246948800545094500144742904540533529306891820019335990181809091148724902495326801915609587196621558448933676934438027529236956286510184391635678097008402141593452998573393820560334576563124050575904195567479391243041302204669554175149062394337282549404795894550164376675783387179737943628065359296266954817312049760869172583920609598979619563543952928058750278243843783242925914076755801139750678956599482188254507074224814700513049506693318523987308074486104318021851559378417186089458865939402987756197548042841024024429322254602667978852616407459880355061403050785664356035999624970497119177707993020966847836494960742346243273996446489836886749713170979723117755419260534433465627642620268399941624028253043814747868817037634089988845985083645163750108255176352754139801790806738107979589029808160167434281825656560357103414768706279361842410181048930345442376047041292182699663051804739095582799432331071147626069424442947641571735051909744444177970071218503632800738311066934638335157476821278141902132322900854426159573012502723163325420104785207133081360202562046714816753930583372605373483131186923052781768941391432409839946419672917184826158639428855950663260965487039387440425507608431893237139775892939312146955107119348957000764762278831109620957161824422644498508238709266687997274289199245421043066595630059535049141649123773891106514014764948923381915682547778973488712308259621376101754791757275125042273627722625349238845750765623567082065034664268520395903101880606975607587383092539889327623829298750410169438183115171988795996450927912708548436691669107330346968246023432417592694301668514277432288388337880258445936070087438803123486713597290971945117002083955110462161249796411649653330428905763526336352496613676720306747657086195697007479206096312602838462603880459612072575539768995063717085145873997111335124061080842632400938385926815070581744029539992401821099567794769265715276661878568535072578352471688551275152385937291289685925297486156021933563451524196469738895257137027078483492124785705636719444184718482794228948700291201014700005700612326891284869077613714331909305880029580532616898811207414420992392447199617556116406485390873473572792445373089687419570155579493745912467125921475549046919991231202914779596410972639634704445413368617585372535182902824397493714941457430404774820933201724648399893013463998077946250609515624289664787903899754701662339672435233364517417960470471263742438313958682935663757998304575308267833016863994959819435933077835439310062512768162059957350068057309543627590391937917292041595936667690223086446865183615506491566809208903003244333109663040532999925215994478921476351861235942002835329068292753084683557182790404973404938182719350219119346131837673928163038248690402173450741891452749905459286756121840487091908480091131773908858139791881952322476378320073299881842316738771803661966130950235617524459721349222833291857619336943237408166198840938789892305074647499003679873747734206898177130739924062999582293430433197444244891565546672145965741379344587710420060814895397086526808247540333726138274957381255019320374711879257702859317857120183555446546796711213344716854293898801025665840993598032638558879090060793588053814379718319483089762887768648256934170778064131820329952265144485585711607829750550592833181642137247605696322657610198375201437785952648605674745033676688029702854392617459041631605705811786105942741748664806810792138154476623563874860571602335744661354723958088579112603719070579837511312084832527698759646502117307498404108544138422071107457860330390384778468125459483538439659162252617906305254683948422815347248365895686340461487967366051672949976596029007376366252952467420779952142237445448034038401286849810460366489773643443602565799631956150095574238785077033313017155959690220227799965629874375070354173892636454515112756688390594107739779113656829419297721730142308242279826316833357989741297084177315281698056491728519056926009728202933357661186762930592594611386949637171057809381388161031025714726501943504252658141697513205758122829869581184703175760477153072462938127692557750724144988129918565890754615544083450335388602177151123299396015668607715032285121728322575191083793791848257920925425222348802872751966344050686377283728204258277048522509833441444578483096415682142016012036731371588812525657848432298527046166932131790525234290857065042472420774277209843766117216706687425498081807096396011357672813543372863864857900307448796683911232388666985046708329447110384512789673647443235085381912291137158686159909464856588624248661121720097707274471621340050997800762237382340962923740729444366021840141111536568899847019358394046435313424890441108051005701219360856208654424186339896003276918898982411492369179049458446094377085458700567410794628773042827558780221021424696615251463303335711899973166389823755266926222125023508350214312685958351830234864732615419474540576723407794457744754829050909820828075286091205100217582603389594202612682401196412094756000739319950409065915088098588950466055706144496223003510603067458569832670016211723507350064008129632294045290896738726237842090151892471987033762703981505196128903389627448457082941269301707803094317667345058088077100084979534008088847036271729231222775337463057971422365486751478748681770128817875453598861513027201422768483167845232986101242847553641101139450493845589384218499459545442533371405749501880643230450974826986080689918517548146256155032822396461497188359221386232083656349582051302927435294019093507979172994911797031437917163112548119515885785158818998207239163786322401327096989402214412612778886041654255835361469638639926980164340455801908896971131237195452392559521397137479494067069206234875645183145643559987843233452513495460562811249325514583621964745800843150850610310007932435032159135308538802631827261575669788084080987541441387435193084530713495520125336127689415681227212130661241505678460886600588939711131691802711706100320347596786089944153458383530377659973327229591161686059341700545901178783631415260345750161052567644170918795699612149983956860578435645735138570322994113830224378548149109896837974136602895263155340466136657893899840232748529098392719698344932018600110623878012192381934900289249202197352045231705611049127761841555394954697253166676212575021542743509131445453915553929746979620668235545212478872404859080608162499546549879643216422473889381822972139560675034167182716208616280857521074903464458987074574086171369180210812904190863421486913587161225406037635871030621992071525881120186662244838207763163305725731289531189101086991314243433275772541072332279779799341767886369037035725085786093748457515943206274810458824031970680077771693026524063828239558333064520387791576642157822369841082456772020515169886119033433100488640083633438787225686985625873347632487351686558032243499190807928770233673148281429075377523481846342850510488748591904828302745765645261326341200063119722876260719906244212535603775433267875332309849098268192857151791150605131651851484141913586371904228000825200640355036610557819629956719596175554308405920124641208977112306460524718205322278575001343924450913033025582173985513639442719473715278151719149138453391081522372657754797536884774515537112485956687284640748765952865125549559410674673573886133770149798603449136479010172374615640870175661491965558994313628086548997563727208008675407908237769875311638817337928846609839117332227615105049224855341077827350367608728467061319841193259643119558881468890066055450454256796509041009180591244898317051300534968165170810422714605996514625412866460759182427047337166961742034316396618029903971437187662083360681071340164128100147089412089210489830311472523865471488117511699868418355152620871026347458142526186191015977553868330261806685783438472054900316061830660816482747356920704965348322230915968253682823220487457424287739392882266614269146617559693473208421790209878315839144142670375507391812908277546546365102901412578259552422723745254591319020397062069372747723642191722106129201773635729787186283589471143151183429667193119322785867798019431141738859697168512602758445355621042508980617957188389061152583055432996795260685745085376904620957602139924744865820336131874391783010330462254959722260723816996306434001163062122404806065173174816621151072169699334157859062691715484677897576756112740229165634806150206862104183917507827558937812682909849175568828818709523187088912080797292344283314283688562888009882125753946709751606438708931455924436216836625974644975867565081002103418920267485340253875068097467831468977003919752975013225365425604562861913966897652186388876197790532408267993403558578451943208260081499473033605627243034035468548870795742508266279331705258931865743889189057581270407085128237107771504957952895716031994747747690190200285698527753184366467405563377137954621072078714460891949691056524818152825083615715204066384957169076784490763300150646874227552367852070579477530030992854716102116603542147617836513220339302207684251030179115558683856664846177264783865265273225232131161799601628755178423154241934814187346296844354798624905823344340410506326440273650944881394465126393259743404333274711520385917375064559125653733597762873159302617932409921195017411869960489496407992866967155233724898277638914186046451979021128015100679857730093322343842332897460570010346228302468058591106031274673906766360581105575511208583262127262473271461286553477499029883519831221636100265114023150291291772184818596743144655404788917197545730925765591344625067339667482144471386165806734190018910828902390485484413520570378165642878470933512657275821585952407649327591878720809158470562251562422681094964892930732493804745049512795390517587732177765639951541242038487348303249938182968399371213815178356649039188085131704709642123766423876894651964341548258346782916849986588834864867319429324095457841037350184032576810091601597854432575369049042466234793154682454191400470153379046599233427903868682691918441871729395007106909341541710175328019463291214503155436956986582345158039891300557202077722199955325078401636816735215421114216704192165167894098717308179653405546541690477289278812742279464272625823441522357642236571271956295613323826083247242948371054215892967606924070442985263290935084340265878528982845613601667318506637789505770303353246086099871754904529842177394000316851049354711561829816035354025992367142206694854897220526627093412341781777562475899263192276573906953683302115184232066177823048917202612867064107686900555863491702006533215787217020451774348435022271593427243016927407062725110464973177866110746437930519298717202530846620257189108571930771358329009344269324083684239448284400405508792628512293893361275344292311445171444414485251918481262720230331421147326634112469051535065260864873658516690018902992364866771276158465349218079321442842382825554010405532756126873027999585918237852771291666258322373938685429952031655883474809121268335645909117873727161842560011865979617448988397330796787185338511573345449510850807149981888927884106795895447343867176891259209204545319938254866620760281093536224490136148077685983582823991571190372989821181472984985636689118001617566740736736494666915209733613430134379869676012831287807816229557642220635199712800761478979119960589779999409245293338019556456464504534729212899586590535696949634037745670009496876193203653711303890090034237728321239013606690494981227405951795564397928446445892606291152057424959920855904611831961143940682264713433336736126427378662438911702435986149727825823148217131812229679285575326367069550871386555134358344222153115059581282868454397521626745586431964868522071171573367257607220409003263057077750786032144628193124543209613307804620338143881303015432072972537376554670227753002193178730836234739601089428863738928719895402893509667570576891236831999041952528367480618570794255277310008074605747250685943057149769659977322827275436640851207065743223277234594616152798544409051049104422587997122263216246681962531621380332500570935198876061392230852772313675109755410918539797801576871710050154969074094624440741099820175741409854675400973565324690437730422337718687279265287043807265252431147761779459257156647585525507330559603286368538793411218743228791584285817849773176632386682041282445122933541248881684625022843354477205149404426744126044373296218084469913937887425234821767922363869352989712209836538861056295496387146573927535125751915675711720982801350400249808013903769062746553485844966757397861266158675852472860362162630269400085458864294206298578017969143942883884917795453406042796184019843625301418049508598202600739335035884071155338496490256989278222892794902371027260294118324769493700741734647461044442858217979820235117054069261064990587502391950321954839932847722042580385409807296158223810635633304935716604861495949832269279656201078159602556683582327920084184685593454914638959619175104283384515525477067724959748542303729569929346036349391019970042701958290974014059081352991526939145505196986199166206238222026788176889686054199593273311702771234443996305885413389976448529336548162927763175219789001741570135171131137993028874034329935311747339353864772875858246715141199824822302145089562659681993232442831437755683084162875073978731749300719137456750776841647164404957050429454501448802505240529918792899548058010680297570335035088569570988171980530600279480418929784189723013206110451558306160114439609600309792864345548570844283296660560198577507729317588077973840951341815437009601123675760460455554399192643763639618009406053245203072141839996950664031817413334175196396848100041343319882075992606343948314524949092715694198637480940041889791775026858541109542955742847575880606766176234887955242594090275781870809949713177450447897194043000317850224688271597642891080475664130845660767566414927503459387899406497788765907293907203325232415139490321569802367397213430944630795503721236232656304228051838012833181426568597973869469908416568412577399807441811155646124585091171960643289278520961106785998255947391568085505207659507623471373127323846009152144392389098509398709608165958146631780606746753178503195169106452303351150334442525030932076678544895142942223592220029424623282273193908785258547421101712504349239820267960925152082692315549914875205039376812680865688128277881112594385321710250284584995118154900171517814170470294882994352050986730859061394868708623565258239849616925796629199690655354511791455404083900090162365048556902415538244538223881952473776841243512265214991580053223566014416281936579928167004612677520570208377066305638228793269506576332962923122445657980522019505459186184298195371171961778150681747772546344969991079723968873634092881058954855543515001959813320769775217095719390470406813749062101599817467694760825991856123917332256925881952730127404480981773958378629048515119352780322207797643657386559454394633343190258971228405215543423724295271683339739599272043225828174921956745661146606258440373413444509530835025675948037039839612433214856457829223270604801837874078580328795540596338573945138233518157527759787756057788288509761655431494553174491976122767364598000651715606113148240768720731309696467768754840218892168466584827462529888290623302775436899452356837089921967257511860723613137901936202370260782326475466411044353452631738896436701890688367522808095369875385375902178512749084746549121628471801392785518448004171378719117275025922919096848725827223360140386458874923187278213390594544594799742780387753612359279798600257195857344054491911999074690238937809318401241229845568332176733394021550703629595637296613828959714929684519968103352496199430057769737225742942156097578325084562987517917203438398422358635329905037502810318818701487555484100583863688263487844512984854333642377120032675113548074716937915095191709571673017064709837165986617222044850011631067407998872994035575183962506886437105479889718531174728000907389287294825535860057314931796950139381700881629065815493458848311349735982177106462899626498914903006218245872280257987247325401127006632321222698225607988036453766305867188188680157909565840192100490852347439889343565583143425518157294012729514513472735318230196248046092990025132653105598889962157194436506281988972824372923499714268931259192272181939459001558799006836623202912857802462507187776724122075972906539227814166855933161990789857579020570738623390662879562656971380715085935554741051727816705013804413538695555375806165289886135477619060444609249827443410298726238754437722066598066771930309515978418704571549371388436692123755582497251367662845466590096797390723268386850240695296240931208302758452673809860428197058509787838233909719781970607092788120297482505398427511793109768840166399015166315791718929847724515952807329402952976882654894836529339935694829231922640507613859823850042970688103836275690610909789411502944325036053646910521946345334757517982102462792628430589213004734719953564039822367012929186678003168612162697437419280916986625651912588232288067927375597752278564763510794796268559671750936164510515369204778530101024784140150555715283462137201499872522382517723702223571215992592539094022675803627099450407412660398512122552512563791412560060089875328125584897370492764044888276862424979833722467245017582519729628306361120396207387207518737438384284331086387998184493370401284300757477222963107472646745800427883008567745257079103702610670199327767863243322085702194729819548425875832151076113363193756757880712773280829152882931045955178510106953173936541080629353253586309314634326329049427427199444336272505345297406792650104721546773089610232788250679161712169398709578668292207417474108200593257461424259459828517058218634038970971868503896386870208929533001316514103130982892087778120200020700041002994432766708171987311859938261866886708634069448019047273488686436848096455269013635046340576255745566111563539604658494130144374718717898569756429786641811153309965111412492909104582691235019821977943113271335137787084489263936584395627543999950154757548895520480814265927206144187845719284513102138164415161117259984894521762128366967617196475347085048345413864267601840090250464903468259819400841893924219723907454722822708941653571871644896208464410776317215294773881670944310860359446967998239277498855811176504426728385640322205867267509123260327993892907891638227038870392041532028092332528536696622200681257455989900385331115468838090037447067655848113807525532844202046087457307503093260382749468529909022709559495960126891086265231494823226703651214195136161632828146905861008483507653169656437123333538598498004575745066101715239624950491340621093052963448110094106541103226615998051087799530079958960413748890447247164418037604384583793645316104221702712890168373033961371161373578823729923116857035115769765661187794552307636210819513514387030051026720172795455063657097617114567068500692015428902034472216471009541447625872920512217809516621215337600623155237049489053695649557517856640846098045994977766862683287253102724609788128633747128928748299611834384377969555365177876031694204712104210872238751807784057922448395648661079034901378183320393309878767177338860115156224416305333900780541583631814695775886675825641061622979152277248209477264952644506622142677218165307879364658691511865264050138469193164565953151304463253608287949155682839354265500766578286865563696856212471337910366484854866903582420319223503205387396019038399306928561419163716644952917859697245596872901095559909966796602259198581661286126860171700891727138068462975941487335747221134355052935210664643664695752952333564792038895562233106964219338365957514462872337783227676572440297480565551618401943282288387057572431575854526864625142143010575397232970864460686109065328409592839190635561833571773474303487083991601010265523343274836993550571522823762630946210697675687394268559349978940515851995791308440970205142847381050155296332670682601962616740983008480976027959044483423163913143071160280481435651436500778520495789137307255412702736154428865722642101327505847955082731612932228649521061427897873504640383570478641765488440593599689255601506166641714927740445573451708341292549378768679691540625625056622774889999767896976716013512984814532025514088499674305345718601993140864983409198189057004011820059721576154244331289072912185073829134062137165776673984182148753642427289966050456834318984357633844336296655737344459263653749006260832767150603588266572958862605812277570042037376991982891168425247672236124872831167617424807398342802442803951735833891586396183406698035741573358280441753078735019587664475716039058512726412705608980588694892223564499702335418789202445031795506767556388768822126356291962593550277770198928735516871086023431833497985025516422802892986712775532388144065359952645464587496030934588259596820600630226876856351114175852485679848421318831426662801117772557737551864371404747278598139642542226890246957278257956485896174925846830961006139290964818285825231867962911603654482429220307803609029147541732309157191356168371051054247570154000147043625125987989475084252460733917256270155957841043086825022307372791374581165188987319326346349353294136467892736467861164227088708630496148035074910816723740030488272057951887575349102372029406435322489711650027977733722456470544188255075819439590204820315492214315689816726152012910026920224845058024028494817467496007296874001684083887066351909059881310894374127238372621914102660340656600464209435553617909593664258906207161613666795661723411378524827733729140552976621285445048046672410822794447300071367970137779496965586161600290865657118222894776802817611466966169775307051702009066524827485320275156429712732995474687927543089320670350204374990515091310091317641705278055284622680469095994558612209164661420533510117446449349967035969489976370170858338777738071023705557249670221441134298163504260105694866756792777626738291050479483278445068014356112399532677955593471616895129820203777227840444356421916886565925547308139241180225703055876603375473505162081078071811560379942024808489054003783268770090434848965995055412320739427661722214753813622446701603531126228721850352396214343539311683219089692759482433015394093411478655920158564034902930027201873838711779612567626595052958736711493153348413994213908150222761834430592270625224591080142341585836928660164457655786558775800309025368289556720484837954491781995929539072144133391408535738111516735412930912100430385353760995620958130980584119282200178034759247362577083033545350368019955963757131539009713435683079808081373511687397884222351200595552052451122464163788558925835610218139849683772513783210008590481988912315749947824045242210272422566142211675133562303704488757703134913107814391008648141914443008015198264447226531205513310776971578335508114414238448789534100927216313746099418873867674115002845718762513863392703742701010836799271399554599121010817788423492433796869662060410878897131371605826632569527354679947291200860633400290128928593100162577283426707961276818738313425951804449042615408709853721340460567966944304297645860155641095435683975884598434560095899518753284245980637725258382485850506182304238373375818833686908396301923414884707732734361010995152794380650549545350050540236202245973964898848110082593341896076920794403979868840080365247029303737082670642168438032051029431157152322611458061200807208678855183640677442247691958201658057781565620150129542714747602167607231363037605252682044068616242121814318322861741576011465024135988744688849653593948335546002259599237957547107027358352613746180578473329025104739547584739279573527223599671380203200452780853931526976786733045603031888776940327484766895380101721995345697859249841920050754620468139432280470497243534355655529550733228361172042804238640526604725109943719097633631280213068797348413289950774455292796523348061554326326004092489726664592107243958240374022933615838272111443092943957225681121585461448347504464220838373587496002632323419394527357223135878053330062211574708217641064693372871477075557766319331431558518077926027115712855524160751886906453338989110404821814485947469336090736872107855029578755829682922722587775850260870759774973239642868648660933791591259688622457884009843499928232119588174560975485531016878626219020816936007293106653389326033731094391699459670249142359994723899449341669222631567108039648104322468677123407135167820607526925072043815070825480885437565263256387476832936437448522886588736081966920654292797452569165915569615397861903696834080550343417845365415352921462473741065581270182500417686309983394241860173825538660580303055230666890830854708047455650336674066596791311181836997997629778684469685780689435665784324734976111343116683314244225111698356241088586532674792623264756211114881300580936588548186337967144575385732852530642972008894995171678129057014523165500864509565374995179549835256232458498232908453523470134647213568831439867238013619915812740089567295898971069718357993098441736851436180777775696408030415751203377213905727445312950160648782213183291679031770375278399124633962821956881123476672747699017503513595741877071639461527362618009911143642909015972367315160243688282673380504461319727279887074213321229763777838172726243367683008094970064382706946004633244237226380805932509032074276550360594987339603762866326091837346449801917877438072159233230952088582581245189677832562926011596530017657839705866181193723590855759155801739280290484688250413013141964353630831965089951899310023095194585548740676273190379239921774943963565718062885035999487650750595181110784322238859961841197861374998243484133861638344840301289858097487431927701432813047953375630306673978490611960912442792945714384250285397519574745153711459581514458573315115457414452763183243204959261737928364526207218273199714507323904277264467087991781330542633367592402049911722129866780723013846819202264091364445993123959615405939266016114621801617500011866758291787416088153068785061334027198668294043255696157152085169050450354389180139809593776460878317130255939832028871312398099455220214432489739163571097506439243335028693984914299016942760304425035859082608754512491039822633890260434126925291366620905491996861756879648189473855130555998900070310952525600009025880554135984882300881651841894456960812828058480929825581493363192781645901009644579477347960364642209088677427284976061118479826495908587097188638780059043817322996326164385654589386813066915674727862369322149120188242620591777951944519726533872900259832955914003162177585951757515419954241553782517267100363619872001869121583693855187225738412279004072550504980468002277275525434595482415448969432872905438583955464660057902051603467804914816135228038348274792505782277841332423243355179410317115516240130696223767294928390039809826139931101442801681539368941397957048484118584378132523725272582615344423038859418920078224248827602501494100865376658002707537957939162939253594466477425104470008728405804618789928958918615131479178809383424401481943901509046615883034891726974393124074137191174408569637079846319149679881098144719416617325814437513860166865335536632378812956514628323878066408905885469422971940944003113195388374954115389313808979766013738158183704956641381797558408820321072168896016689582795809523761644267298048878103606771387753721769238343685669455573427101530577982179743959364086711462617606992091397559337309280254948644183799495975661145381105833356959670933191923644545310740879249666033101055375067374499123848615564558283569233997117405494259802855813053245047792029084584049970633856666986937408345892318615210989011998854156669032956485776474100453370733956954114564116505064740468732140180419661202219972171660587623629351609555911467832097527510083763302005937705832959034385987988232949151221646012508923639059563189032463510322152380341758689860269143032608016665053202409613932743804812498418053411569746682768369919859161089126738389493019237061136367818946214248274367189873965304608213453558384437007550380490032425674667393423475878366362609159752926751328045571602986726418997465244192981108539854783375099706456710733463265841434412857944463951800485714936733508573974714009964644670676978430579614313237013956645025412168726212436519261016295947252910021785012052595551236635797524316736502509554761087935997040560911577405167820493254767775936216696225183357436275934489135641813679496167837351433921892958067959203408549142300657661693870151936442516451831025119216303614710256290823255677402940448953060835679741119332961908609230187257312379275181276825522936846906014546187396724861016772389064097695462765234800251053443103946826313220026627011790542133326793589273737154518801220187890994242277779669831194411115661992445348841199482536986077914981250759196083361658366621687216072336066501368218383321356420558307997807924410235282526611281864893303430399292790226390224548624723537615237379566773439271596856922929596540060860152832375724934914018472737928358970795442438344116745113903551370973477092987344698061273462845283469171033801534291149469933299005356827143421814071961523385822673399082644980098952080029109618888762156984180865892441664130167484097380195787817035058359725513437237557168233201850594496792932445830350220534935757126393796318065106952721224783728110781698833292410218060844410762301570736422703076314645484579195790311413018127551185811269450461376061044351435180994191341286271340057623647587036613865860611444748051541436209305711133502134178383002523841524485813058925809855916875385608442687493790278978497768463048745728713267509733437418051836059181991944102603278907694345126755348451095230303721466792519816789673351494795629366851509046036827072235880205148929363009650231383129444172210752859207486178723907588340004427795202353563407691126964518882390515243926021904571152245548526236180696267746386917902730465833225130220044033144075802053234524288681921014459350320203734162558239725564916375977085430992591892756636249555664003531542713849596101346711265856682357879174583141629076711358011492101466982004865042855065235205151283378810615073634185384173042519763301785437411687163250078004481778642529681545545164933495554196599867374467445511871694344563963609841305194852748240549681023089341548431785232546377177191682186050557597891625508541335714579634265451886429693211803701602614617609962443147114209710369365360726489555953946612426714765456358668955570676623802521997506294098273360327565606838657891976469644951732640463072240423381201552969129580067634327342822449049277321731838525507683237708558720347266858548063467171054232140866039089999011974249920096733276222873034998574938869259759318252501504812052572424859275234398950279739722261427409722647251083389615775153032440724206523440881756948441891261237394948462318417254298220292987578925143163508940783099373080543450602085116274867485393911629161253917430388716212026458551249122921227487584679594623661996079262866576383887437991689920028168205340745077606173825843461488323271443598431124043219400207510466361992157599924073652799244985158853316832833738696133288852557694127593504668865997383401982949180151300553106530464237912469752711400653360028416995603791262095374535605951380020290882104671126104864865806455886993213413885893527616917311865041166427330792032577407822281782374148672493851364591441931359770931331600040499639395576645726849903428326538158226905151890541011134604680940429058077394145136061046598653773397097831847460657834510500578007804925442535580419773433663529861379194110030005763285313399740089378655063409612193396073975676190350703629478503806520795501306477927257808542861482927244163712475591731144942939334990372515259274233148636771874832947472285251068716565922088788804631791322056024732178959592869955379963606311184309410185001971000535490264512696998188234133171631342314406184427913673645187080323549278912882078044837446650367497869294769687150911518076350036045116631903607523762066728037031693412807710998421256214912559722406752407983697541945838716402818091839533440535158358305610352484619396608891768456674168716947936360368146514687637507141527852560216153539683730651434863958260139819746391861331642284295113720858798712009262927838829981721297138193008531918257998541006022863071646957229918273103314474674265747025892426856102571938868780795056600027363267214075024464606723876929931911139873307918295665419384839785031656031259691057693113615026212276268138835981404038131580389318650524636208793252875027076905391155238798174998237781809884155221619775663025590014813758418737817572856225421084363715555388784939679676892095092969517903948702517289156791337310351803036914304981881667452971876155644536804308569955108231400900808607434689985801537784976470534994587414843940590241414409326820809005902028994699532583531119806883010416885940164995438974379419623508063392298524702324398087634622879076479831806554746334828378839822280194254157360083969308422709229476512288695342000346471005413542907916617477869788257891985433434031903644018658194790352361977563968582215552495305127637128888636006292430614421699003637448519930560941424937752058619491230277508536400734317818731796017185156517282098544969945512400909706964184478909811271354515634262556133775579238125831460388875369882680545202688220761769509936179418100389366669383675637920262278931338267829791009411334366338164845619502221458623437677660709604401103035689717070332631996732811730102561043311703348817750188950980698138013603362613335779635068908215291061319230444641111349551543661590117309888155715808316780393865420220698261062969757259810660581707815448590286457664089133350743281367666607584823617619413124416581564642735875635321894014297149772105670721474432222189531994819204357853698259770549946191480476819305646171977823940419177357008021839168581615266418681048358232037215148153356440349913605346941836931048522657982698889792063190683265982500347525439183423419373976098124049106769518232813055912488460260533048941364247066678891403493165457654074596260027958859144030878591725809809876032236252630437076085526499061013705047672849834108854747139935004626566044971708860648376014814735296903969821282422867461569734966833374175473978748558303005920660426775469583396273459240370680465363642868077376130693424608828505786089513725320151921976634606484277078300346801866618528742782255964982558561841891956698472815351104625053139725900219931482420952623470812947336505940147791900851216040658219282772916310151367856751559563068948170524766728738401466845174900103638272985304287534569170716834318535776168846568868768821575631854394314941624334981492222752787379481618783158005704065248021947483337151154384953419440169696430844265263065769941477759395469347217407939670364851475317558660670943413989302119328968119942027585411004305488047396300858344019974267011119358874452706923718870082001231690238849995790687678772241260139869200912406863412248853489034249269915947243736363340454420367870302841790461312904940347723045506017036132755023642593667626432889242752846715417729359731884269686509785906739129441328406386967724498374674345169276129501897762555184857163116993541315019378639846083966460273076216488957719921555709078602649348236268835082714230308807103852915632933714725694711690527618514948458543253224644162330337103789328067917138983472447318027385317316650448180737483399973820782905333224620668093807525895533388257327001925049993121454682359693027281761607057666783687943268494730180508900042491094233340503095120600081436662034220302654970142807467236866879861998290489057179477864052221954297491546204126480939132421284164660349373672456061054915792966248333972173205827823991243055807796109030079915320832074819095464865518333482062028292551342008421660282404724684029526082770806424521608476443883480637340550848643828635948935687550448535151166429889691745211962516791927078444772707842874616925316600079068231576930008156815834466707074490939608040076923670489296736166611234783535585587729349859536340505780894176847818136345574874216546189076414486405008112047127047480953314964266607834825949755025725275414444872819316408535427843985084841472180618590281579713980674565792028994715044842651796414532044572044677630380654598377517371901580698561398195517682625062211135654034910463615443797175614275222609609935770293065031964902877690141083142937210825432710534658670834370581290578346222733889520719866813156614517423554288694297123496605381101597100571791978515374801552776519617358965051689138797646236261569561397550831772505973285815396997330601924365660183899427421607773244421626009173479676594001239835133799040208458010188806130963206540089527000900499275418580579811897753785983910038358967277133736157923194224179944771596490379024980045873347086432395981379922000431209995194047487356863928035622712513558292664722847465062354172806805465439887869920851054216481814909682175792075071671584925526918645952846329640633782873073903772319284298427757924443126768052036363016978730631932487048978146382410595777970684308149294000850003921161063472267917810955150290662108609157726984390740667060760124887401073269184297802970725330941162369617788152805835969550626891722594460436040202752916480673140921182970059197736725082018802474128057035687842785756335285588340794948918590035142959902288348107704332899856423136272448654673012958791626186777413428920479776023791331056953759187166726393270957435737676403339959033789695609146727290079270318822276625945908468767046725033422394728086272179346405334122053309110344972827259012598891311470341210043563013434103541577158118049078267412131235018286861970918936164838868697171913047335862848496341496890889968304072330253918131282282149745895310341661259516053330525834859312394441738615941867952667307534703253414705294105546059901995709797265101451627913624597932809003689897307840859698294830647036272045664769508922819532013800138257208058024458317214969995229637007851994769884474272226129526834330845711932749971736440340174300124540154005902518603657345313433292662610788001971347466627884291484433952866454201110292498466032222147463727887372120693142957590662238755619816725082882438243610911765109012449764689254561537689125885988132594752336216252892182276311730077436207582588860668697412976946978765532231312057933947629299963117520042014493953323140226075495926244592454939918525436500550372344493224459406198002165704559870786399579153271044040596873846948651853171995225959850751350558678494540260651689113049259720920676085740480155578494210721893624298527658058705060415499487522722499174498640299635575538785842752393795258788683040158014686341294022672747027883618830750991162062374575969141458560038577424816052112415065595336920951527054785035876688487651084770994735092291301407415030757729352989453963010759093442023953963391830619231107894924561015208031163710370704806287689833343231637118690097630622552209178749347868133123629389483791339999667968209094727636861198890393711859549284245446377502545553563869893543310420386473952395853610435713219458962140568112042509312884085940953884272568265565528140710672757932386602089021539998783125424079873361536141810084556401740512336748628268725284490434025613494767922547872636352614474830793332191748618679857352810486663124021096208218923114843643630612505315775815506970277709798565161745406629978919609826708060935260512491777293963930224869047075025919276591346007391657790074115528208466837907566308904403813397230513543174121181273361446547292532677822613878753733657491675248459631784943622149585279587550953628015094918235622630401750707786775635758346330270297397257060556021713473094746536498483881484855605614456223669862780415707472743597296865546102606106881017688389815222465456004324391809593609391394474479503960556718241990343590888303203520921425194005714486534213898746826461862269705098008295873446993558219074593263742510644648473247867202326256579716736973211306515866319784796454703867240329692636259412070163025864742218541407685217716625908760114189481478518842378410783669412299259812700575703215767574887275038894110337498188350151045839760173832107571188665402859817487897343421805829099544799678965358090200094061539438681143806812130173705185797092865879385743225541008773841353593348962362582509566870210728304942865629505345119751170858846254080409799939278939674383389726432391826245587410799766542037038801011662652875272815112246734963596529134338571213554905852631296336300117490869667239902675601508231455838755564259254295832009351920479750154147990447366970629932536110918107355058071356349965595822992067175617619949389326115057015554726111078446325041365544832020221836895132497849688388532920349231310007124735608190112285056053042092980972473497118185024980426304371483128406835131886546168552405417155827454636969684040837489289700813423885109643981581358591899453170565181447591643219595494894627475933568379897927329911487039428710748184529864475008127283752803359209038663198240787453480614103083248848021360494884321941524667830879479930083869685146360325187768942873570168705487677120947530058972647237398407391181737413765996772517342719771593155749071456606993454658994349265642184324192130416570011640093671838880418740378224333716122851485664315073664107080646440794131319269822655117611310847861078881684869154738558363797079748006639950216214919415101212366721127648855588431985780146406759994727581153524823100548339892026637355024450807819559791226606061871684486236383085827003158439575487817274883687405094773151128416661894040739678690860239330511415530210153568057082274745835612528505220428164758540812811194120729302006961345262293695446027425024609042978004277238276096038319415055660267455296696204290130294989581202313819707774310832019024800091107993641120894693587953508261879602177599400824064073998947941050103077628359952448680071077683682667768732742090987165404362694022092191468464718363505298047787959046578764869320665545601655406574335435157965344255307673473728965190702292622463281777826872952480727917991487132597453014091141067495020868921749774127155648557326670963408686306396771712890003319352075138870464124162148552658704906543785805544378882209756641196213898852084593439924699381155237654018108041635918887327004692018591429130751538191499027382053396638671942928118989774559560786567726750318057276951730688337798855917856956457659928033321707485831926008780434837933524441558136545728339010034301764654931820514196016020526991057842427183868351999718341647500568622969448086746074604115628119134796333680199799888075691377737715715022769125783808739439371630590877292236584126980770536970369948119709060914228358065850060745289328080732924511287586136298984496957578762533148339571170471231474916816065286406501277224292345539295562736249324854191384440669772796996545545947150012291302806404233732985353342489940251134393337484608930309202527988267810813422126590166361246608026916996380187862573037747994861659244769307703508475586790189895203382678044262489682982900195944613592969451321095781304863704636138984694150225035927372807834886131786578460401009572500835348776954243771291818651188625596053416596143219949287056027756715815196663283161770619517252909824340405259665373786806987270728843294635154475532866907688638307904828391673415600409052874333324979904871873240965172331633481752862215366691811984515565809780622017994553536166413726835114957360739395039771369688052908420421230059003101305155063442134688550298347834655915467005514101229351002561223805354670179852401027046394678612955322033194587445439807870785536103938302465142599823007560593826356314605067017570083663912775274019903023387029703224880786081708886098261711317474672656553848818236193846536212644597687945161597145197945076675546921951414115246064898504073971336839031924178056452654278236964443416755404179569514332517098408621823204128757341474588615332698339223357900157863996193385607719441457516091553314391858428773612837899565748381627293318427056146587325701775658191256401340716066352973687340400576429768387214151193474640587395487629446087054270713817781306116742012091278321247532159217414871638575194145112888435536730348463556774672493085045967187217110697310591392189391801688364781092925071290974157199249140060344330927285914304039104513597401911496037253828051791916041193599297901086517658622437553173120361133081414067831692194758390163342006864539910377752450045256481133988479477071227391940564294200741319903029617390930349262007007687554751389476242414672035615778240473042131388157842201665280898533582976317009331862168129017690641699367765336314844322964498466227383844655761101770987806846107104716216205196457650733156679466778869090223687420023210873896511664117823296335500314357756109206259762280017346565481821968756634665560808265328469792011602107100108465321574844299241418117355675808881264207025573373662715855589674812718895111053337133107246841965900943609803677778134877256783443273875984242181195705252805895052800556428810388804688328309507133664715348590484787287325267687982277067563086024581903376181394514756644071683381008094021659731044780478862335175974942656400122744500807965504385903042150443820999286304701342651398393326513104905228944932873854833305337698584523612715245283888466888982061845621119602166310421702754151632353690315252532706087898234453647262029131394533451905608439683285270185752548551748510529470195922527521425898212059572792848469637863691712630313820705437427514407637936396484852149891164741240302017067951696973326385227484430529517206283573802007763007943970762121795160158939049764693042354816300615066490254074232660382224850397510162846699325215276867838540496240519241811401250506299041812371808812842181686276633583389317526210315333598766056075653396314077990069194543133148665482789779430198961479955692416788919401275767366911547542412168074889731885945565550230672357522766600485909786912553481918218947932722366968599848482128284359391880174160444186402932663694390421402527353754136140212964017266468346471330162294262657863169672777675766851982752669630387011552405878315273398424050395385047475795297461666846922842158716418754385439312406176873734131932954265731412608075599607393057033751959905602131864559997833274620832641073235996196097913464223300712663740580889304259857948383102792975657342505881440211359623109188129143092123299945684974841877493845006013986560768554180579140056693543923990705642910546545737979496984871247352461823766342536277373027829946844525784927548653654641247737804876226521677137893661846117908693636322132209008123188669546533797469072033144098940013206108270171228673435298812223216213247588244794098071634986845457506325482478016461156994309016009276654443413116852489843089119259587467876430378694274975195933797742885035663332014944424333411193675978031435253620754884622269317848331619610928172649716078584538596964233718525965407149882105966964810822217963280163202766029986364289659233614652299403987307641597036848603406180271629770362615954505184471814731139798554984507634423738790937282391050004702179507244356269881769166469638216611682550558267658382136808933961101868554920553662095096023672685185339506377484125771827189635356863106850927528291067936731423837328798415232675866006574509240219437621978778721607712316454373348978314763885267940887505740895342540746280432291191756381178250478976793464650094786162108333771672625558660956175689698126374963991889823355224080185710360996133793424280914573512276009959290440834941339370127339960360249370767838269614085482731867138255686574840489865241350878044175218637739532892588067125079521624522202394379834549234654740231532452835171679357190688346830973799940715784559653683677130184894103132732028588308951721912550492744415219032147438120885773979779364326933926746901351814852761384529705880630891995654990373757009088458869700618219917978171232407395833809744210853423493109264151383034123271739518684147705720988410536482115658563588306236439355131106304558149605571799625221535883702793581738451955180460437323618081102725466641124441531570565239265926367147743852741859248855107680704080615437000547824657556905627600007226529207484106635792296793276778571823304970619744026498133396888954895220626262816549046409850637048477357441718163933545863452823458891968497909387801112659211594379544204822844537385304333483955273100024191500843263492506609881017604615008715491370434187651763651564516487733880819153969627965803508656648772974591237907239603456699067573385324901246166885884135503418497551093479249666006127755020960109777052174613946538632951298185186663051413426086221727200581695371666827167334845297594628597733015756529788678098623276194477874208423195893524841715919672556231858924504221549656471965326087888216494393665929782604423299730767871971202836859084078133402451709932513932289273411046640950178204144638305836054375398022779249381884108763565453522706677379093568241326620797293610796625480473460870690199306164894455270512913170699173190897564964609069608132076146596418363464970256608136100070053513720754746583573991952889147393317223628759727325619495274842170017142546018633927288691697104745215384962648426063067991478605275964975976625427527411983616923526051590621844050126535634539132608238934820475243979677788496096622418858617231710534251201638097616700647273775812751708255260788846955513012408939751418495236833771565862003798548374012612823886814692160554722793965685935628626153369735142562183915700681032118686405252206094516587057498329089405481729132969057438097254033952205402224594461630608376825084832655974980424658117653998424764580089135888701559074223158293264618743389074499019401262927096419111761890884789300512521228522642261917792573079645728377454157265595084224139175921394209766807298282614870902232432274788845637153692614810347755450736178385452755333247744350993570871699016826970028456366493801387963306665019445827471246739052512107098933040220175212667294895536506449848342156103773427562813477003309393178022626545795443705943046441983279222845188676948663184734929475083923993730431175133660478815845528287921636919566669769576271023343229228100805525089555604970319497238381073023309835102984529733848563221796354436480870019143856717736164949806760466015758201487873285107678608424939720434740091012166794901213452779715568854531823850199574233000738892792219501365793878885951629856073527271712946954656947390589077961130280330677221350861479055202063498083999784459621069508773453657904462020302021871098885793086398908645328793240688049530494688639364469709456881383861850545698674170050653638388429797013537775073497869482820969004456708122337901764787721435290555896505586321446806947504882977162733938238945766242138895766595856896993895292278646776024615892795076654293785003062524328941590700346613915488702868532408077646597739033689736403774103426849928310034760874325427427850215044260898983790311711209127240676076537754590903713245578539144432511807122416283973239972519892208990130906289426992397685418999343300302238106316724328481198314364362866982072289011350998721056678201478028397958145895821379432566630880917046305121601964867922310970211218799596864392947375340828889524288161913359108494175566605864153081263071820357300072717408813137113786255273501418425663751867727747056618211569728427011435370741314594128577964966102883695373516139411949849973679161609556577108134168592853153789269413811278054568543025553597746767531756667553674495918650324529432478868732268268764927104046624424802678892438236463981699765940262248521429459891695000134271776474544680269381103293184098292560448065867993967827048518610557471661264837582327264559655082500173550186604331904214860060728802537212220186269526291468636925272330812796128892589976107311661975773547807127977470962797481289371454190834759190874362107657043615640986616880247080587147938314846953027513805696145038731639229892779650931505319947700243673391247943719003489610946691428733133931301284312315787327340412950932176353512945095419282261344449960198706673782430062978572666153198752263932321986032686584590223583124034723562273337164640981070565950039834121018002149779666564230681780735085813042972968719085884697754393773694894147486147792853586274747119075394686302488414836371408585414515011059883046664168210972928732775261018944317977656808229320475905161583071892232528524162647977977379139759008901108961843655462185002692346178430671009806716268856621235969532730465548825098912925999130263586112695698682306238095540382144622502959625741276449787475122891897521008194427728123529005647085275739915416485520257724626048057293706044623777880951621282703373604749419615491512500585611185991769864039988784800375498424396253623469795003225833109798318177704989708338129758834938353090017504288816774941141845112010243200569135930500122473054078841682247457390759916839342753919175127969364845852014130141518612799951017470585071394619958149271977415208206179658423848853515471281469621799618285383814595132272437977830959676452062690937363237288037939925864966271474995395818090871827755182822907854837230021121475739755996092040883298128161972770813127973623480203484584795581939217636812888128810112808146498417234153527206096357687677187584331097846772928736021648288680941445973756173898829042598169285983862185145965695597623085806591620470265400166875210788811475902022594271853438959414574634873037757150927792169915902803382829263964645000638496129073239447971030915592039368399264528258444437915957040404446154382868829995798716619727121734596556827768775765025424848820728250551527622030740433519426670660903739976540500689356472356546505774700761949184284689340237493453605331316408545127841862954600170439333610668439294230744315657974129221426498820815133849153304773875849686406463153238668007908817780451579800891286922614590190095081844977547084010308847245928221153146623637290115884516556056253793940446665874114691624304590363264568670973172615636206657259562032630009153119573328025117521855877406686139541101932855804232300731377244531654729250527011890518024679466301159213035867602874916625376745522737817335401647821784831251911444486324387502481399125155996686978893102586047880956153796257606043595639777588761141704183154583706144584168891643283115256173871594395749699721122265449271778526623011436254297491313183209715060575949977020482737792335023632738687238453542749565374942097124726310886532710261753645531793312377941039920532679726218366807391580207064313754444899268121514285061957261227802518343264121227097910577353785503753446323096403240579511509545408926865751195560042748004768587052972232652628273929306754495772678072431358968765950278699198560731748892120207028085339005391449801897638184577753888474297378250234036204096555983863905450041498724842143643775143589752397580690892596885939797210477927795028537215170348155510070476445647583803276419293678306500724316504448043328556982674595652950338452610530574718466381165042684259564605609291971541821050816962558932333357419200853647453112106901011496555282672484119795060248791510431310452880987246054908344315556889651637913447104116899870607896438370012027818533191385321447735990053736516805089569156642438434968671595867441748940375993069501079640320501166517141574663634977690897463026229768154995254567650405718992767894552742170394451584737783447481061474932725022682432570661813589617741352071971218609561752459329740516289409070834377478188739683132309254446096837754123232540885211147402938667799291529205581943215301707211102122613520273081058525693152234874089595087808292409836522944931329635813245873949054552385256353697647295890223329894720602872361472959238158891480104502063038742562235559655151700911993465375182392819233866800583332011926908661801577124179348115978784521126721786414397682949468195981575618004651066953234828945804995510379783097410265792626137078664400188640897102280537700885826251638015171059811380705622114085623659375561810271538954027796796442574654722605022002168542151096593399197237681474161738585080984769253701723833698546170134768331431154724439790787581932611582063107708746572703471924564393758104588067987723184850663165809163092009008135487829492313439192020732621811995876605877437611192621576158768294166215665732429515667089133570407053677961961680023007081121575814994441887213499154107512744737674141241740272059895974142394585910127318127908081818144253430353922071352686401322374315496709090174366025527926784509427941599256435625964906327681904975754562403430750859578502900719310440862820491690720507491503687569215229019964694386643879469711940992312366458288135009036602620979023272070741811385174830938409451144309901647623826604491762809900665340460653637146492681210136236460175468372339893820227490959260263201196781677214048011267800783187294309229506022720843210124742164982966911409844752510080482880620016933710167477762782397590974610094592658387860827692919633848371928601553430552972298187206647041375809166116134884623068999208016406829768093933558937851746207434033552503280670788585659262625891633008048528759259909228424662653909477201939296231523010866561968337774330644126204155329061539518140247475742115729524583389137429561301842908485286551391062733836383229263353052779049267838767084620325904137809905141112373912657284704729908265932589929758018903737107500282630506876560894655756325277896484556302085252960660762648475947020570848323450148514696528863057577313105746956628907285421254081486592356155728788173436195244639080516354961203497857871832387383832127068950011244915719409638187852811358564322458662435871828973160341222752721758964196941118220774035803136356990225712549586507982563582465765472226546100612893539655038229986779064053721386027097333336363458257370232233740716668801917939140667043259557414626943608202041473143968221917465686612192820820920137054973162033440958103042102841230745659982618738530108986283330629135833011867739250305636096676618092503786869072050214636550813376982585715601409264063329807750390367041883035606308454892362170901236833181316147259485616043799296595310703398311322541221615376438001012110199486159020207628239793609775800359959147202412862391295349181022089002021450862168881480456457875652379388819606336745300745020567917373384902011455881092802891373390501193587113022196044789328600822705691807675675689068271873153285704838918680677823767737237503074099919730946468289880284853798664008590541852102101574693992570723286195026107256944105679022688070729497544887125517112540744977794647394981694495628223811201935840002395339942783107257345285088189492798048095540146648880377712094310482379817062657495632085895999925356837614063098674346367018474162475106799841596845948440078922936871207533552576875068602299542426319419009924445020825338777970573988952540416228811601598789691895399516849597119356588008356628001587458531501443967669315216767715245608422845878843076561169086507758240178564989849173108330884342849260675400444432064341672541215964354923433514440752102946934365568497444288660226066055480992802611029730629810700921958818684162632349142081681239319585276644962472467624643715779927558421575759416236793274731605662606233515236712117338697711965587565308767982592682338365215771012125210448333019511271583272140612932073657593380108738828060133312431369684871641724395823285970063999011366466736145021212895728315063623698466847841680729489553589877175137441757741945254775193498547615418437335769961853128713624207274541271199534360376994436013056791721993546366614439668283216040816415623431068815089701763527741219989042155089622552944220144162364909184501609880603866991337362524626881176699089494241768780555607307404148960465513463303529537422135047137729500605193528261176608607756104256447984930810890601061445104651463092076410473075361704276561735981343990332806717366387036550956673889690182301978257545068928652896159118504640374022981875703980820349032025344532854147723238326167642955589276230826757943976650218899049546917946448446332547536603785059705158575136563683859191812634182248621513930765699946056918204733756620971094488495163888004460991278060812690283077884682425059033056275322777814294258249210533968422758937806249816051584815497967571845533037149089728148368026876318966619528661870083158348633490030677128534703261762775176224388100669534466232666522795121561893732518798451262935339981490436548659267377981833004215315376650992108147732697599268073132818905866920863316340059224680073944653056387986082902731476251980611376257110303157834708846647190480506319383805713723355471557165733771008481197299373135969799438340666852083798127570413000738817269292840536950273308881925711782781167814964198498568509815673325029451833156420833786490831720637847481655101244987727632229287297410717785327319943716495476740993225485958001468660311370120381466422949803416265823419742044008491728910052217577166803128511938419916542691009599635008855157981259839979154677377042510250223506048869423340939151840039681928473533122952532332091531731864969325875504088854722260222058518869251241239293978336971716675054147750222042275015900295912694929168654935667933670597707641634318272093107426891963412301162446936792852362829969544165012413512082896370920682533043344436240075424046120064475362085424129600076827895956833212454843912399685334053217366882368520888207507455837507417763348021449369118765374051109091362139040870402503473487992807667003896542645101273207931120748083583286139237721627152520822866562263518591327388227253173344683423086951808013705705262716076114719167852933562066328405142235494567988320470241806091758803623214591301425383998120758353458529669079859772329048870931656625031018424993082167740136269690594124037182443263104736731929346111266005311982772152170613104448992121657300216359649694487203577354866986716502870477666747543655887440829734072347981763927645703549629719906420236984496933707909088231164805646019289324921887082566759937358593086062341776703973629777191481762880341745784896461700839460547329761539648069702314397054459860753676124274842177433974545874296849272973151471803956478819701640717617345576247393269258397322596148528137118895063881804266513937678543460703479410592969136956017948663308233315829432765522771273785022828826817975295635101489508613012871957433702560705023610133428939755513379387332323328564866181375579822426913172926688890660884296846991496040062135854399982812614459964841786051420763658075834928775790305051826220737359519032971525066395963935601407202642566016121072361409741519386129612938781610677079069803044239303542337528452105496939701071260661989626970158199481808721029405137878892794490251292699557182804840706177302991609152779371828808320935676539480445085710502152152475010547202559143214368278218446982853447274245715570241959721204664809108012333250273846364425020579968758656332646168441087780462715814709589313624807053030072818382256336912802485026013270645120541595824798554723982681976946541955079490733491498834219271766095248378887859951074747132653077120105373537697749316448512645768695123115304369260328977257760034607875136111949283727659872421050020379613625164846491667818436208516747130301781008201183536442169210915835981898816583267986860337643520754013692355989338108465421591359729286716008550649009462129265421455244671975291583753488141197359691659437787270476829486650728554612473998239154359582298138097108334414122172606475385887081362703271381334961630250859357708852718153239539797534786086215429837636892129613254980135995874013581537935648449633835041851584980038613965218563962777057262527138608646873181787968693926384020170155462568673322515497960421678590273534514744909592456873637845519222932965202712808143712242556966966386049906512341122465797752523222773136307408494291151346075816278144476594216670077942687642659256195112526205010907060935138275104871598929557119516155835150621897429162483898232230918670238514618303095332948063831538114351241185249440921783196589744938932744553205424573913798698863655762836594914998458906874618201214171805469242982764818009623336338440059275366301673439738020104669689449781712572937463455185424556031181852172669483127929367326638069542176955904745455312562422943112774678574223046120529830929906919717848754672594176109660041789036544131350578603713816401160694877452210078803035920949692183850642665374338134652699126739296896166679386354117001806669296099951777058624423616343008243105622465888232638968472356320530201190688992748105171260860026512808795096047298139123996462543242958219774842962153187770415640324663761905411483719730941012896141294243034920481744500279563848595945069117565165717231765649002014003191116958775912600271169788522917759222629448634360355289255583059078508203596358498740101009091432897919930043806910798191201473330952899854294924509002850153367118647068376051700367294274174718947270132713508124678574985371641780065706311345212844375247990794198996489275347230092057583671054606587236251315709941062584096107808084470979437536187362997727237334438982509633398530727559702429229628321054238872921012075009703350443904345774314930848468200128075316055463501382828578529464574322142387599339980716015288361727445889194016078038744640172274462496025448345563368620605928454406277044128495002312717908821364294601281942977341692881248461005454183334442684185729018402498830832835481289843651682932614571184617743185386526862689354522043101027432152236510808179934082391596015987682622099331818934385954426753144726922829582374367676776629263043170012995236033552181684814246143218105697360895129197491026097521005989523912102847798414143142242714212749308449224341177502765308222972693670783864391752093881547377211616352045010758529863559010889987778225869896904410095905609911317251831995067074446541297671263069328699837455410465967480404497314336156958486309672392459916067348412190621666914963472200090537022306674499985714230183978196595668093955934747056695707080399155257813946409699742672637704114331748653141394287456642380822680316031262276649963823818901679065044388760774547988927151477573379997329296119963264282614020502368562014669016369153896080276192744205650111198025293515103472402514357511693928126470987743389257928492955426355669132604468529242946811887419904686153895621483096500403778253692363520407521050330681901608852141428027305555173681503460847458028105259780823390973586166905412226312228774351561762726488810877192571981605351892249126530833619960825505740562972373809261441270201253324856523677775743877522404394151561529689955449179868085616487597135483841167424492441684927531441355187731296900030057266049881164647854068175947914705903688311286508596486824134918123859742179481605605009006564240526468332718853721162762784907060057603191197304207801505512640505955107740424270594642912005330748093425774813738395885734114461295312983673522483806169715467649613107930184851967118607093503715675684021643437530249803629919957221782008438852855259299129931010025283122647606751326989745661837919164805964155964613626521945257868344424333869269737872457136241276071897355818453386114559635345496178750489425417399123568962381938723713082256252259847604699582020602892849548388474401058088951463050105021539401368963286797673856505519946544273916602326171476193419933972704237524539234868449947374024981712034921073149508185637465476504629665457772095431843220544061819956680120663529974568073008840998993614105534969741664077811649270009396066038310713049440284236230639317416969381048074918423136880793634024823583169277259220027241681686212195404520766932863357600912526964853588391180154331370015980521531125372745873072012937916883144575281709810921373385955099282239498644769776537266233595416520109310188158723365257415777716505135558613037526519808199357004576496486034851324082659008746735935383202509082914488090248654515565816603906529611821818583629163329030701035987561516867419097122901852345955364727033367470488055830814306450128574613043618002861718747519889740879347591434026841506334494974002274908454036288689642642655979864096324994633481809636239212607894008369907079551704074820998422929057183201945009063765131496645438468506070974163490168814657677565706660695545735144963372341334051725084486171750827810140903543314237822044774328784197233142460563111358144841278004660412471159945122552947025527126639054698860223581529677406527287414162642677985421965936399830860166794931208929515328658713970583203169965409835331435103582287728853498429255346863657383849603055633704416441571464869492655344667829958462385596843731151892228258640221528939026811503722460589808717603532107226275781102172098146411919269248539442524808489992809495743434512743172390936558724296857515897857721928689197975286608296091826165634050306864380376779415921266166321353454729368876823609708913375672229357938682542663440893964224547745789495567835981061724979974039453732707844984724196531343533418273896556734839853730695042296542332713723283620479174292584702844384567641212071779155997015773407066451028839685577666971094077738461607884898611123681990235953429377779024574444585498430805703261191989787131721128604281102116956620990504779532676803245566756755638726797679852574053676922558699815495292012481582501145613111080804676956335305825797345682272825137019199476397045626026148149918654544497889151857898788835992410207681122102787456415783357125519587873832282617502566974797439181706765905638305671014776481852520164091947735958348499239988017422353101832118552616227693044260310995307421489838047323801250792245093396883857381577350869918253264851340786167565756247241593906001404007039400209600807104832816477588158466655815257404809868837458136583128739916399898429767021251652783926284470909986444054367222218428425415714087088319560352534136730040511693259520944724093782361238645735816278827386975480660168887060964926965848228640406013346875081703223622784733347511750223781119705125154101434115686123149154130267788907148278424301351397227281547609359051401870901980172027780202781508716748425974034797681658851921550583759180032575720518026409602338069431028445840172432883259523018634832766619641458788884474109105864348000118512906758573500594829486170460294679277431547989430584107391086736079540415465680337283869241238124646170012019228599702214935890044232522996101808513175672174089766552896382409490336677351272089788535387442444259793021726868396177010461250837290732096217801947301248489426142938296832886143472744357379456812170933604872703049251474719934924681071774234899295317568061512074481710096821011165274577352251655604545191379479080238139092370093748111470405473639464092705957520832535424624430760451177909436216395548055230891342867064938403925824771547555282202051144566008836970791469231762332565105206970340486338932457083884612475351309909247185715281797715367365636910911053243563735006316070886963612590686489373455541335234249717596102252049383424664564697234283274539498590776976279071217839684137647728863776422651064632989473694050075037643960169574969577216882291895821926340892359948249888269274605919653609188510868076469136811907248469077146862141023824125314025295112853776060295636658886812773605606653659346856049197452539950913576216114831616736375097639397516300429306760401413048562956243991026542083369226039624499703020291005469350491545103658248092557454072107262767320558097412070194760448718057773733527012303090748601823121350597113165633406541819719045374209804417412168152314665307381435275862102181674338062889523414175532761042998205329904359456306823140200259921907268341209795711881169075479239138816808016925389531344314896244927871331167047292769720474817434761035886696137522058859100043711970129390326346035517704877994953413970653095644270672942517743978180714308562435271807715410859592147951422043757907944161507258434933798023975076948669066823301221983158797944102937676737985149639820630676264203402839456710587874424750865840173722219439961764542864238745773442120379400406368470457254089826542170848129989323735874800590242577999525992582345293502870354547698400287873320433540753860840253481428430389903312948213071616054065487695950476512506858215435880579317003633507143998433171208814248745629479506233740900947930713737070034665019817245173229450840814169183201087718091282253597594168192823943308691677550284590592747165160054586401654928110844288691658022297500031892125998512585573382548851583153434757592863901934156333858333719901498714776132879682786409954248320771582380490961903100205384642536416210680973884028858886652318978125922890758687133673926450311103513863893803745812810824983189449158597961484064721641251808593334658097826086995138936914565289628578950326465479328720972692318204767712015804497474803302752260698426046182892599900857985317471156975090961951748143743391057897478052941622538476532409774098616708191280161160209037670293386781104187726052725343815736523277108848560461818959127878815455372143029433929048425768281113022234854968911100262355375889577328316545452444087763136340992846047025489804307827938712817962452929631205968195816312048254549537625188392178745876262879001858189082147948825637315833883782099928356526551730480312506024232133909949798118407605599779973877270657391644848943173821187213193257092119650353737643447147203555868290036163500535020562745886706850490158680300452608419954476370597130568312173200514907324050459105636394870858590035280736502419960146589973130895902672639305220610448298081224378873259419913178058012984735315098698810273368887249285120747622444787014919836984966640142738609808018944187337739769516214329918158768613967501785855521664881314628534950907765890887600753194992653794523267235425825684324461144644263091225711131490906763194074332959668125652630814998183205517011530726785283345747511328373944877720949775377511081058256442774224782974042520669014241091665308925260866205414298254724532626120699895226471196647204293286785081263146104452895563957231735439784708059703486317325871613593484073275986278424137982459195450539112349549239134691536950954799936017104912399535117613452185820514831616115495042643105338249299973762734299569435873256393947438287509467656741216511379219541526282559468197567018342336333257690173247111625860576657442942177320894036031002963631570723909581960348888205316740656360348579912055102264535731422568071538928623509747923786236703840377349092470381980082692952347188167697049629386139116336178291428775480909904814579316795361741902845055735306806740814308048815713088416231021922730544137837024921068914142784429424020738587432766691401565277145627049973609267404968085133541551012560607419856486902250014583701423597204926827679186594775924359467800898167646403645990903700340735090569874493876033337524129421142214929284767045715673450686836359297200188113379754699405117256513377437346798992662634064587691068582685728188404185758936317713867669750953563919735025703805480296410447831277692185125858408467605531076844626552970324054476394769523091536057265391432954904301118039452848354581549390276585280226036405517832813945535651004061734053670629421496074909634520194214301210785823791609747066182161162694026265026012726266768766441697612698612602600653615163012946936748986122967140040971058987477543340599865092154479573735345371915437216317987389235915130863522132478510466785491662490435894281248691717814436960748121027950984938314808054513217905015327689554798365683477405990849222339772392592160317570633989182429355759203375610249167078768135179984982481530520721010031892778935067289411951660763635221111680879747696054945991587950476588399402879145911248826537595974986933516952097212634834043426054280524360532662193131573819513736344697857753750542967175922026845340529833006403789134339084153182363881017036789726040309015055382562751451953926820099071852328464360077316524227579920125167056992077734716476028779791463812077533561409733646731549501474904655249321955711344556951825505955373816278687653673736347503048468323019140240485855421973551385882999610965163550305650585355297594576962400394572494686644946915453588859119235009202360754696422591496289435966710658963920130545712570757913889899870194890711419409978755328934129159556850496506800373137768187559668717064583083455630211464162454194735832445747817467430272616172752583067669454905987644839641198931484274437074873120812237178821765477577287559953842151114414478225211163748395930995286329004414091032293749652451467424940065576451474635670203277680858040334430876696475889421827096926397713138428999169105273293956689405814990249041850309145243144268773146218632875983824124321483904378202053081528213453436473684756083158953231072237607163904266021030391732176406931270719181245530949652553293950994741787627589786777463963074868427368302152661298988456980352847480502711044831500914328158890211435325412975409042922945939854904379147956196522998753238548455795681523011334238008053585193285927222005813049436430020135628889699355568897302167857522453863303851972867304152498641206961350396124450783191708865282477828127715594239538728424235036040731162602212440376551064710790931026474494168539859871119837140071144727411807273762078800600518514765273233234167550433545095558897359870685295724517253955845195674850049401466312045128048840192011752885091926509470479016496036161976832684933842649303832918420420135471749480166002803251067599195516224131959590660848997371949486364292865265810952688990392801622037863807478034688527746931828675130521996341794264919961053137312727780421559194190710039388134492254961794832110004308490279834229447935687051997306202923845849897583537720891734167592114139989886666516430074865610707454281847926678140002568703004921329535996854949003776718155288921574410503640489378099112041923560904207754060927879718646571032809933242040773184583655499137524853170113649101637943425301754129691109047575881670559004117498004193804078265941735600874647981328265362775740639154416913629849332658026489350349268330564881436452357880712428660957436249070146477145633872568508648583636346592724145034576069315805643444840838408511958026551575505101903596468449304716994506118519717685028775466514383082439794283140090311749110819114534642837546362883012528598365513711971039514090126501278192839283509245963785501919129954332492407424709239220467293770217966628425114614418116656175781154663404901114941592109441164249977544170951157715842279834836303995138587068080295265562656774257423146842553294308695311692114640588656628321438154343535289950574052591622386758498149646805172608166718423512651393719823488851610128997083999149434506033904030248950344002136736736508496532254101877780986894313004228683778058109598197361112473008552907611560319811337341277063016133463591598358147352184357581033907764596918825924604392907199846001619080448878527099922791952247833805190883895640724663071308190216192401004293224386324286860468596905799860733760424424180116371427215579564748490886973823770975232271391467935389343885178099478396372407429401264883086945155897899956091721002529833558000906687140030355845601746016406903271036133180021704473910939075521560500812512309297752531991793497612919509500494086769568470631582898851840824940478358695811699116344251635751282650953084659026916480439720456769209144106372907556476255993474620270744984606856591957211609413025990548163145222544065244252115662190981486627696570206865699020691004994950661725851510212557696504975394656170993572573698042543998422792081910639072832524609618923011889965770697364042149069353046132163673853637259274003046953973370349214438025986185199810802535960272360146609673568744864286225967967122163050855932025042667823477404418156876251344570478144553639911767664176786590090968554877339055838903418750613685793223560359079205514661990533554183849572773329126985407729108962092817284462653037031450302139735228202104033653797426153549744941155778373223855276111522670944548449660402467924323107048995720052177337272312378023648779267938085873992178745367995064997890901662344025687532510347682152393477862352608541229129796620166425115197177664912423126079153940332813620548822227049347969840309975350262198269239242191209255154200816434728183604923318319622251488006200892868700636329239548315416675922326435636576118018153527114000332748164468445418864444376326353446323135801915731357520745240432527838886946362987838874959838351843502595991891564423491129052220451777435428251194437565914904401351319015362052489475696899842364462322515526466039810204695010820021376442755647378566138995415542439980894597915670740232122581110102743713027345759661954281572008321951687056188253442048377573158655388504013306319842610388824644164676037326709260741069020393331439328492976374759470732308636298482971275789433648242847808835945434762897077384937546518136248320900210528339038537624668287275952091832653693538341862806095862960540531630885907520218682363082698825238107094691826768560490976638973908720877002869702723414734094731040390860281981760554948910873149248555271167726844751160988827393994538992718238337962657871462349759165145851462296540169480383772947694050183635355108840190470148413609832039463850000366546534269009578335082980797650017649951109468411824151049151401547788813278698923050765919733596588030787150671804035131558645009667160861935313554403179512300053420183455964461058744772121289559097821265044951669894771071279630348716933638864377417798566750757202261634584403783058572913310963089267741824645521943243133443973106012611701947151481731079522325209830282371190804369720387445283935228492863031282708271392117706989493826154180329708442966805135705888366774477884639942633942997104945304008782654715701851873376848576372331578145854266791060559856003985974816292355733432944750163545702124902053827460686803054568290469897265358345842558725800290550874654511305818194848215348738846536553884683155412386307479553271437294435933867305349099199646652281071995942307783129873448145766920591978564756246695993116831907109076540676643056520337715598201600201078230992297707203332174784415610140217766484226041253821327449582951246409102371449398712715083123464360493593582155393395771803051994614856097380554835905680689962923290645998675003913838500056797204352756981705235973672519344943488485234771183223027697583275749554059974629833279073190110999631230088087389883059077458160171474401106451585901014100027194100377457591800622758599518808452374367820614304062083239443770818648323268240324060404307658419657321497974105149336159561689314001957827828447155580899161374603814709626474830705948916168815734783322250336833378947071943435223515973991390469255660743599317815248832265053034628882957258628071185785204111648215358937266368076310961370439109970497154230708652376415672287044587584694279999999166297070674096880075614392956090927255008408201945188878775793733353056316487630822350033852971746851975820101037745343292721013095022917179957782742939495352328716390952216680759972477232731197744199700804745371753512573669545264916982292270809353688594679599929680358952145471590432564953975632828862665626958531274739036222943645485445090165787133114358455599392002512560683501602383468142629364929927075234308656594341791315634492897041059844560641151176340730350487788680340574320713772027950677442360680198906890750266987857573399631246371140861013613758083336571390292931081548218068536333399943745108901329565246795675655188220717502192485549230395107055480849986457693520624572460805059613058293715451592144522126945220612238651722927528769400844497812072959484701160705293563151492382423542731923366177990181892175035455622435784514902730787047008101750114432430837990100852001960609237039052265426312272688424970607173434650187610969454687510495127981424569891430453026959492064628722042590937806067938364440259703463064360580125966968608012268070007663882578442797425443928868019525900522121302243944973548259926064268614139241652721041869468204144958507623051835691091432036030180352034730744078928616439247646345418003613549750191727514841642253646222074161062392457857434144299335369614497997157454772341491480247909239285672407150482008568346727683750312029327377349295041322057241713225844403309529975778863003322954161328658465070771840788053259338727035778925052972970142646441960920764049889495690679134246332721234752218254152243189543526117486453628875020743515591233321041835016353486494476042736659963054641075520294385879340782294729023884512961187456627585531189717790905029008815926379602228972254116391944002221353253551982089382077673548050214320973611656099515686340193547668513205335980148278590521657852105688170010597076978303439473329523888958665132995904015818960542321142266531430177301731715124175939494183701388250982594641421808971055149871029640866481985089333463353095195790198425346833609502533239185361672642203150895742502263959373377077839937858425187658239505349031161126946209347027880790080767781685374098807261572381231127125072678228877158326067369070696990388781332283052697246748651721315789991189701841985553646909644579250726122271632011032266661545444564310720486621550494776739373814417042955671940662389088912772543560579835709914197831119329744311067957287532077644057718092910741106337934690342499509675673546278849573310955865965676803621825319321345555140288671172170338278237428684645576098284304746532644008971739995859306307231193679682228907085367998132216407984517161126007358606618896829594878630762972141223541962743534462103623928225964541878557389468680507411897601569787669945018005590582067657441586323901854209927239178507139710838275786866582976374015664507329304761929047178056426740661168712656610132037996444600635289424847738506745062905628015194643632616265784577693226133749924690301284590227046179333950415334446727971001370161144870288980351962285709827707018749046851976489900823541559779678057726817464134286827655897553012859073992539980102181683930508476158469107369324003524114089213781138576298269354660027816669913864179724084874229854006685232347248343755090483937173490483040478574828529494091396860622097914239431917176144558062484637928019356609970823246388987443152684944826234413474759663770792023838146425055067247939743197571173278411016263892804730220678532681758042053456506772063141906181386160939666097727429828160102195769268052703418042235991216333670957622616638730776846683326378478028991125218869473259006454077552789250578737101667342107877384957369898013855179662639287910024349611005403500621630654001068294256938576830530706389772712470386796181068935435590434218966125341014022739378831877219657638503524266505549492106476083339294825186752830265503372243924473503176856251955219924720202424031615122045327796203611989500667362862960674642129511932245537657352177202909023480530817743671901656611580723939651255189081331014879978520569795741612442887610458416975303449965587249285896051665797776827947713625629040919520030162889208331607507867220484367016537352886700267229217884577130002987285767847835147420199913739198790686630300097108540564012804265936399136414541350516909124157963701501916275135503831048402541456823986737189909150546097395350339229838831727170419120930407182962862475387503382522867353008208566741690336393101370895835441994662201478113991415477076399797056871175606880953113151833049343370917721408420459184049408894774004265500157792526155583177099738261027479988471959459706591162041775557837000145352609049712669388453078410209619469069227838768174133576487920564469257194837706028916636630709292639601800017165862037562477143154761501332609097292638146367057819307531665306322445391090086515857863378805174675408766528618216715010761683991572456624890872354587318524496608618475621068751038963376938208584524567890403496150861313658650110192359399861763198793565786914985949870135797832133099336015471228662710726867531856697278850893356772147126905045865699125213268908332071547653926964764065849356982754209376374055473874316532306397440739170953703327229146332115665384770527129988976024480890535058040472620902817494723731549129825379261309341848168358688103845081957825006969119145241749945351489456019331341169708499393203896455550085889783835295217925060470578735243550341892269559690477403178900710873536080625893758574927244271854751435489020011970274539384526338244259214532866796772550153403565198541320684476513597619114168462779697280855006089260913558329260023426365273023360606842227569626842981473214269750237682177945777595776654991449345764998120763140931917585074824338307230810259661103434673392488801808013826326932265403102386765566696157566654959653316094763704369889833316140962571873729470958212719885372764222096760460312713455948806035527132890171622575084475308423870011592559515673799541147273531514683740589422465785039954958632638752666820406203668224000371787360252947146450243601391944075750440952736920914682012275329239526071965030538773084574231392934405575806021778957359211113687762462195909071205508521751919238400208205573606849235641994486495969668883926515017351813787129512184944322271520399672309136786544909048841928707265637836233343293083621020458933210703900638264576520692416154335421154641410510512998850929863979735563621776036673985142733262205512002703155761716145752606202742602649107601495266654760362572836993947339901325963068008585637521415351348025568260873210903683089370951509575723369510436877431084462266163863323509649169842296160208473126329759583691654701815959002942981737076060709594291227654031005881971375494664752088660994679843601860038071175884896614866194417956028546167302817157580116439616263255427071244267864375488983872579130652171901386135658476589412826973885501283482822534025102302253276094144976057716009125513689936157915597576041445814788904869898019649521426368392568823580799515386158868262918692912633660024288334077152858392058307236014186382074053787805890903973630716011473929871800580168548424719871273409925981989205864072157045814633028275500892351262860797507953195864027425558546533397956941403632842061535058507222350084792476411959073230065852738687441014920250883046816677590562913271957493445729997417399715233316530467867002890275122375532646528352085159497325669825196690802273675131391649405751344527863482719332254477889681589622643423686367209580386046756181463982137636451062700220039032591932004797427897446581126381759017757829430954662029676144660661710494737020976684103818170314719090156694950669610062069568038617753395231806433760229843077596470157629194203065450003922714565796430461689369661801013220250267205649180142039434529836308787571481573669402120914409176703773036075289441255983269868614226542516582470849459994087968163767706171963473308580838005203208752842588853251222513820612755491832567792962321642961197603099090503754609640084891142136829149333917432852374377776466740935287531012284250938768718919696288072772961171600686531865256823610990073736070646037470865827132421582998283985103714574945083810591201099218245190162424927123890486444244181172861126344531897770048577604113846507074927687665208864209245611099527220745013761435669717941686895702080331126479705810137647300482770941989373074348677405903736420383346097883519393343600864333115734698770744270334725062180425264457575538645445592128450452211079110551706309189271239298918819094416758364826492676832439207671209022772002652391409481713823472760565752458587467987776438935380062373132567807719327616762444393765227453543315015098922529009748616998708954540028110605368811811115775501095866239788983024850116685335499265890827961308201928714814639427005218695146493432237832608251188777191439577520022986778604895874185810894108318769777295737715358798885865642774852415904221051477145550168825315846067932341347813079164302145889070908007610171664148202996813357681550213390424173021724974961519205710170368038741086129092678498597671642749964328335831404095630751351461775266736454027435217154082636252941126279287246521876084920251430330778748045201318485365211345103434396015184614354515401288112925477085435004604003155354600498558799877596189475884553316492536570252314161711552769796899219511708081165931785433608808398322859012766434815962662259325797088314389167781189868673510738698638247667565432334420591754483441891460406431112316848769268769879512605975254934787449081645544814549633891400421054345939621766300505274444807780083194399055583875483925624469195282596013398861425675417094698707649196718660232627092910881350415834032469183617958564743953079440319061175653564133227899889899519528020522102464021288484591078636827499004667000956182077297469141631239645068868073920446519994495127856448782560723628641125435554486626326492598512298769995307875026856679770445200456783051069835194042599011550188897714794229260481475127824959887134284809233109251535946774283414138076520547647540777344307835712364290662752815006891686911713347036447976969810978778016088048530661522908092591162170437241786306184608742503548857983667962205519621787612635128553139562786027344755929101551083499337564710197761424463547274921759130117446925518935914468575497057813339003998864850256279486357638480472983055959071550554210356683316950889746701954406757986372241679611598945133727202580427309533825558803576042113217507356785511171786810023649111704282645154815590759254259698971415925170368834282489135536708481197429585347664421531021408699700063535912023567587611070622118557675819807903789376747779037313049351154071291293525570613320825643912055035389717873930223259758543645660129448976393815736073650525578598539330546032874815382024793892736658161472889524678781058447010343187317321459127299281191299752404698170353973760095113131510694206982281829178175449225218369368727082552495321787804264121394576129259104383143931310162087717812952966822715134352938795433990892522170217908051417335143204862362056013269222771274914304587209378117432211848924198627071974571042585932986563329176836181237129169647367141514648927357523768056134749026724813392076070788441549623077682677417142999078523201354214044788608879778097615949304421188626655757604035221245210063366416129413105326333967693222909099236428985672522761632789996259609477404852726652093087864158126394249481373800350183423360098857200118778278717560232204974239971579945400759625483459456113149989958638558461164299287843607012281302447618656513592889677273831069077566780161183732915171043485282812066190851384102205395709596017552128636373701716618940356615142008028867203922157031368570932732285976876295446152161849667172819606278874518812109115423889689700016999815656091761791896600931703743922206448312380926853304378949853154394888259540236751040096867177625121350373437505399924088436840040683611546524954315998506481434722523014480025066704140791981426122668464488151565628399580882877378224050448807802543956196459863242326727736862811077458802141086177515624125798134579704697358398440250023065557119412890044827964486339963851168853844142419681412718118739486477657749359247886038782213923091549237662289919385800388118728267467781139977197575680234054319388195177763036464442856395354094981149556780496726688697478868428470846562472988362902944281776377310835014820577736499645756126101622774116064547433080878429091053809459081984076646447457637754098843760956531203174836990528122585706144505117827403846761670868219602001802891844874771415741983195070279987300763946585797944628909138296830749039911211397171310174755168735613431295911198907925882006589514558079192883141227891198202193276033587647365010510552050226518698057283871729490192666325647776780990898891512138064565206990058558400660688120793980653819120161020184493112357796367915861333471971335036998008017106745634343093788115864200738120188909331275925219122563306579116115614182596465829845034611642976531813333096570270859323592548452021767306871415871339412001453443724881673495450085014207509971020693418903946261717674970679574970330373898677121142041138682313619573444498962668657174171860072725213460321158475634796600214626765901672355690549860353153046024043561359051342616452713058254139577186831227959559299232522358497054930819440685377006781216372799752897488358757220835777684426885392248171037622536324866951031445566084717246434816077703915614229911556041973044278406360147626793840264114565660952742502607686176750350370118514404513056397507558386838918083825258189611520486998375650044194162310681625316614166528980628336228634533819218211721894627797278828245752945798094776874229618088799142765078308748532314650221678303057422802641556153859005698673093184767920435256100385374013915349360954076263274201879584203660813442228274735695092930862818514620602024304947725701116220923313997304602088596225038625909730737245382048784693939626113512075808551555220971232135503161758916031394427984485997864445622121618670647670195200437713643113999095281860991462940030352154389687086927332429355719047060732162615455596149113577087185839302067234539054690992528546607002925079550664658120301258155138298424568561880269936297390456406007861230997281806870932684663145862456984957641853702079153643610451110141421088670403941460853307153769361576405939149960560159565125657850835506441772058973364111501851001272644915537562492754816938220667671089958810043816309322370753097667205334949319376824657768600628430711832991555236750552354641624730065337604939365724570182375854901311654299378425202956581437694550182920262678726476434891053722874359620707923137005557496459532341839084493572898415948496945138509668002217452458461120285248744882016758033042487578512205374933513593902333513386041349577599077375872904048391533956342927016503914010878985364459583456004959982126794808514744893438321485348881291796496175224990324872570481021511381827716144634949847921793884200826289617486941011498771484748855040976250888612217055484782044180181042198401991060675826407753159796384838396869453580518627778544648050412270931657438425313211794481895135383520678235568538543969252984811691727073989350999924940112616779402545038104969712319166281813859331724017343342087744971097329075476656724039762409589904463153570129468505826932879484280258724897960863033193042496180185155014313223885567973425748964034848055444469868568611518555414814215761386624417772549863107477425881169641408761409958640958729713218149101806780806625724966629416455136223856595046775896683076498579392295248291747632075951298968322127122056136959325292948315776292078071924428968916547742729461294348414658728149744262375976063782983935886796792217817196375779924436930461176522641841226403987329175334018893398736477753138775006287882462052759007028260943204821766273801735861782527558147128801991593995318089390565833859082618548098981284718440887324770147328603980521715795519179873332889334149964124424245251546974171569977133717904237765880531865559660755921935492722809536052802241524928289932690617761248483117231089991726814426375076627874880470926541587385827837877802673092652588910825789895019367575104224973597989495373589427477106538923905408963455302820523538982477407288576868806944701742166801788730266063039928272991680792558177667955150082537820504091896886270976911782218009280892632140785679697129008401330665922609301686929497831263002035258532570821060745528729304154132743471929968776082824071381388725792070943682308845366689025978912458716589348506170822730350539475115278532005696568781046005103498200298060074717573609444519297629803995171455376060130006895223729375526184328507855481913591765071585684195263219813582945815849307804560154413953357092021297025248375304275156068470213192752265913658801558567139017816581770844615824317023736208331483599660769188081593275499828382410869378304319406468827680923632423003514755442859073115673194915426608020112769034933070862905719394872688753214215068861495909083956874336591308965052580512165357182043847674197911650557455451809781027596911238621973585575377057728411926750088384467413612143482144608738212206196815153523052284408060724315458949996488786350730057867005365084080854751232451248062296103791649327669893401875097147954066630791947923805549922070058811366646606702987791913284334263934878059194143691235689793259531598193660028569777967356850820829805346215241608574109032644111640373556627618839797689174964901653402011759841286517506284806231850857706762026887341414915728363103926069939043518528759310382078765736666091420255310119789715088527314539128972153562933053343053795293165963625041452355657119872845564900575081648296494190760617341082834462058106714310487825117873845789883510001349613681104469171193035743542417531438006809098431520588313574773594726501088910230882927948718080325524168775213368965980790893237587607313067417588308930226933039721619181006712864665840940144779393934968090328563069513660003509881862266306082131798839338033726350529120631197207261463623721585247867317720143974708414069000723748761287936061227430917610524799690850595762889734563736153114386026668143462799968993278630146648704585039494261246875420927609905168240216701567941881227138667772798417868650103894059649104201754344871794061576226101576333627126613681735075122812864882034213175002716100601708319931854756631031703081342610892953989993099190668356890842880876203192114636369739777467962021721038325374523627842531468049329101075395112192345540661274598878419775574616106946901782595796003768594532285868741185643728257598703180486817748211687891093068294734869053662698808765346911992954631341875325195294014803176625307631766933579860613615057940151217700406661620339381020967065170304286323108664760279391020371423740920220479440319812183397926650643073586363104225537000435818998849656574576560628125881798030908393003635050908822726489150465101660829236750875947481930208406825977293946925281294493009064258183791585736640148464892214600982070201007026369875535925720431883721779004844147129768652400583353363819409103253175332185681644795846214180980237139335195496175402786092855084223301199166932357002992952292850095917987078591085650593844223944024453347892244685834116248058947196544032714771440866972478626248440895805151529753177835979488804178647990851626156352316486933122961668199112753546698004679808114665802638370842479786610507752626746308858656516324324446463331289849691761233709202711305560312005365081995620944475175925856231344251591263262560795427507625252532915378301766639816971606236290588904226890737952919566541293325789600484377968902550446501046569182656139201440467155375055034286479174398953547822058039882697896223944412361270912922009606035817945686670943044416862372481764269992395518061243147300753566014496293955716914372284899759169698825510434966910541428091765585370606906198061962538555552525933251763229368547515497365902803656428430261116936973644145809251307301916619111368543740950122277028285522824549632948922664682951623851834425792862753573605534173663101650780965970044122144355108573818454601139591753048715030019449877722668200620929779598781795387592565623662616877581251474494938314746143129084397944843336845964709880893297434265376019528396617072360256375591411561617567576274311290560445424740032430928315390611067329860115508567115746034664419848177085732788189837620149034230834440696062563484146844907210211480302786840226753746932704414924365482539274626356329621592288414868555918707470944963097850504137489155461568087943966907631492582141648335426229123959422898036802644795826041087718291765578729409486523025000894308154481935035491819123796347368645714494635127447974588669083608129381793961721799845409724774359112389424170523952787232895775632767919899326356812838069351311736467192640483657729414711751437067305319131907767640570176732525529402399084161434988455792365006743253565039239481346354997967688291437448028969415764129642467248658737151868939155546516810579067837313852679847426974605871548352214405920402006766987236686876713014741244689065870328432008281463238915258986825616448540183149025628329593178485915888013421288432099132901157067594352840187132800697440007482096888777624155564920644684398703533978785267005973123001476782398864749279419923001637140399503209026839838840767629396512893109561855964101707312937229407639818291077287144323543745127013980129153070488338895940932095677025646793484730839049528708466371765931724569537250032025515501350717252000383419097714836008410518913271376199861881671831225081284983811837690542686686298716578773264032165621342289038809912775958488047214149837306751648208817912806079942610952260702505574251014308336876303272088035938038483255633992873806584914123797231955987163193530140331699284729680391456391878110798168269647378294772196831790557390337685419053299920223665839562010816571045919485860321106041874444114580059533447639169358523088705475346605948390164380338664004867744778838110592549077941090763998752885338935954016691479683230590973323345550743408236258181132832698345108808088128001686427778699897352865155746838003552469550130061458910601175441959327369930137745756486917363415742016281138528305170720563618899719289328540824297886595330430985502933413097224937295728067032430843830070444509478523464287660727793941217431909317211952062824168989134739943961086053481080160524343524179210922011429392838967563449757826780761195559415401309078557528350300892077413825939961343051701122823629479267841984569386903956948339968123030570119972570164575882631488015786253145677982939904799107860518810735727219053250040883111567355349629884051730497104198782037003486198273154451063610424888353175075273996174445583757894367268366583961302238790978136989102877751894767681078131187473097139822471765538328025386792138947523843389762306946829766469472416398539456183489498155877589064988204733522633409015141397333770022155789450244963623552742419989559407333758905727806578251081010673872363075126330141163939156093098991717419176772249402636635985741041262017645321177473572519123459715848704859379741441997640330649292744597791254296278583717244313581948505086381076509449591267016306155853344932002190705519583298880326753471269070728436912975549394060347322798882455061475598260034214692403410465832525291528225843170051388051763548323694186198812297958474305023873006410578017052970825627380921095014584102292344463090482473257873165143788681795101056235211484736396510849918382186314168946455184438083203119610739496097500124002370060301674055167856821201696295748056018860636182500764692280522577423918914833678369933567125872465451422598764770002905795743229174160756159958503916451394589580502608092905601273994758218969698415788667719535339846325845843929984405160615544229446434823291639381361928475959174615359612444003538204599366177930440873394721873853137995443572244601324922442986999970237284969539878907584225506659524328783714645748173859165101075809261183306837228387492685425590856879023275094761691346824890178055575609050867582266203571233954539677314075431635562171361054515819511196921854459344587854452119414653780048533463729353194784628982480126938833262857637720368120248720800169212678592921389439837010956776873422316542845960253402795368223843655148086612421135130612763752686159707729900019719675400125346861646742529557390570065650244651966427727511785764874183954388029881540869288203848452632186738012948817226462864904335464659472992458770011566336804044797463568214370133629685471523282803631045854685768410201862547577424696189875772926272155691095601347821398156789606627275632834530071534423268686563524500332609166208284649966303017883536666179939728481416028267224814430984044459471792664684936500693046824737339094327531002964804855584718111930273172178147491075034049705137974383160866810906908624918920776477348680124479932454361621178941888245329425224808207050137653428449449040482275044823228932554515087632332293947278338695965095893001843514738019802104784203823159701194876981781563161206728604906279340391544166718686949509533067127518186274779797956812071855071431570525379607179231171730906395010984330845316585738870004151750390520676625262630451326310996111803893220825590517811303436711868434505939643436828724973158630488570276546689113369274198502686168175653620123498239971135172065163418534467543810108614836507335616069984744085158691620242278288540276048198976313749491826100674373141909201362623677786630864960401572970514982818474514420066167084573538820892182528936980979361274613419448270252062726279998421531819281441122454349630294119979164823030991222266901621616546380297129870324600880924694733580906247532272829385407757853815729795855112206579255032280674257924799385391298826232273731163059872618372380224376735706983185518917810832889278974539531230972194470429581004554203796247894019200465119222286471113323521002913707816363138541636516509343421527881858955432444124037702962653864273176817230046906696021092683434263241570770817414929961583156425936636619720781052794443450885296766604529211035886760650275818547631068103099492800334652722855232506119035192171556980096777163479313625472447606664982779290548674843505565161887518770106280685923885020088893635253951019159249373775512017555922052823003050551192982001498971483037675658652989641420566007082335165606117606033746891577803599091334508275670912405633764236876154109716022906158148986131041539136008252444402459491079328093646836579094733184472629248023065793786364512197714711096145774540968767769350626167250452366842927315493803241216959114298558337423009736892376214404568438088182806854989192200658166064321499878856982377934916234771358869457568470591552349777530209447813558236639495362543321608714818409866774503972218475117626995959532615833726031998879239572686104783340932324507322925085135367049186148270821249011304810170702363881460282777511824685379536263809809403557579726408863272770417174552534982540569066214148149856512021773729212023939561435598911943150516134118733388433934545691888733626174621286417225752199618249752907684805064235825290424758097729301744093154022093933811130605146205208399229377423271883652658375780038192182014678335018936045892843415806105177610453508046788866606745356695031700628407067061011400759099071689605062259360100920711356421164945050946435019800947247561414501954170181688995006564026232223507227592831350415185724198743999944740803505701782658333346255051175463566021271353005612553527605274476143473819374186086008883330210232903782548574017243408664877872863995450695626301324469506648333952241397356567342663217217687471328654136523513572973991518022389042861727012915161079539047958402712036166094936698961631678592436736723325074439261454892543547410780650775569802631450846948595679514724637363777052830885312345962855688879689163751484241786321670942052352744276674985920229008675009304195362063523864141492714369617590839567218017123235693540981138818694133905441815459057788022169209891867898175990467352142468579024878544480222433677541876387294167953887914944237923481433503408341348182995106724436935047405637604234889537489631336454025083383551480470308357907266188092726865758462763415611069784687970752758796994774077634642704544963493131571266158070809338221811682113221568634328814194893411648249036071873698948940637062807069749565416254798462117898660999269473022742063525639374753960637200583724584523718740608834958396859435540118689572783848702029879485015861457032635856942532098544355115927079715171031061992687108064208323318842705381330034028547492308202304416255726711169808512324746369458680148016649910699890316650769066388965615410922814074632780331118784046977998720655733004591799124593108114770695129886247944364422853555228961805617404553831950121001837763373982806724223816977880056621430584331277400284472563614273108108144803581089605255043414330543063835410747938660234128636140758285827873035154706559995339965992794567660540958867447177805120652554039620086571565773577020036618779410355561100170732089588051491633665025377296545164006405176377493318588805520788887151871985710973822071927790781815026030915170930301507647193788953477603466658925669970567378242971881630062340442319051376015891718851583599230844633292195729522159333296350310839244652936248301195968709048508529950114439270774619975596604856352401217841689770355554451430885559276091767427743134304257130590755252129006876158868955175785393413700929571500900223050160571728119555969972726674438360042138814438696150175371094828464282476269311186227880200616340749367303990112758095836422463971209497177260391184880047063534573216628191125614063209961639540023422986118519877712075811315163177866476796113446275223402806763380803963187698533703191966469927501878674308215854121036083687564196800380954970354453291068536143363290949017852901599886419664444537807003043929978172353395216848251132382067164211877066905745163369903658299921568368234752096609552074721771166896263522308738535880505391067820786316347643987585970159443369710187929973922167870639337297297993819012318418136918583045128915464825120077515371132395797233278997830934832293260001036257953856130581192712830158666630360182961693135136195070596049957380677217041161980614754721740685177861660654821403433791534610282364288601072668781352934746212756680247667872624108497764212459787458768337606385192379326681792614518799882715145456739833255440403045644755344739821772717642346442480326403018893090266287556876030050192016616881295359012266982996052841088272468192782759812126562137903896119021771663209109370381237403718350410742043432022021722734893049875554993953118895884612380421926289510613862817444108793812467360934063223296746390081724488346103150103545250372511733904243273903917557242698995055146973652456178936674399475203288362778094280467333874205422255133131124477628016235999344951157763254039915936027561118271019796030792096685305494515924182326157101460920589509383141010557095647605308675814586557123457157011801160463960145163433707417376670763884629179745333558790849540724642340192034678272490617637176506971983955229092107098879971147680297848519585861458921373281188305855408979762797693941405354773642722830015612726253267861357501474494244394282614959941566955401829068604828264793548948781807699094325874200242126861359114861467903492531598698601251089027774273502955756516214046899236922199540341654437531611760278565256592747469572840125833596106467324049672675365099566933373666963827060466040930799556019571045089315228812756613737183978903589206035321326432134814481163216978001322253893763768437445530892044028594638633038897137873234644635034550194845285679569993913512465615175205015223078663572630976802098075331490666985746692085966089258674701817012180299171237422268076602076848953566829949670516481029446006499078837553931283387566320980443201592554649479043721827998820272812507245171457979553582767442148910736505263779644304025479203980170337166416593233647613529481428598420490369215987226940805074682990098438417987866305012890586806376204034327421366216463306327876093039672411388907991909379377055827486286470959207626400612167979761537517224437651012427991713316844342281687871088881116884675135172418107235863944364899180989387570341095803462460099188810080254446791015570740657369316219983815191772649203165847950322533376825687180174970902602274432585383818086563866726865970834955956185701092125872420467930028373714922258005533434874657857109934763593227758571780828671965485484332545472610882485705261028788953632409307210793938121674400835253717954661023762694201954636681163329852822543057210503840283723491598873692464484497262963937088152468109235733811716199247054416289608664618721683502742803442954309569811043561490877986157827175166585255443823309297442242776239393450128496537753820637824139882631282423498574109006731661147961487166845657166931149036264047064839030307404904513311506826851673076047493603606395755671000366812305489342145240863703583665193060691528504442041407264892342497324433323452211724799189770411678286638523713518284375720935684415881241136079473119741173930800028960834799005954236227155689353970274388482585877406228768977264331934270666462446191343985550360235122706408914134979415868576614936951908126664424602705079435967473332843707033746662543126004860628327892004827583676258320659015362935631927192143703979127088662233619160513682588470755427895013824435411213295001601316305804785966005700145819413281553687893471066394063091708159838810995129541788450709491451811853111781435606104690937228826595088425112693726486684020761813484189196649005100387385026525872304246238807401976845766388048449345598017604379316298176041769005945456155996440893067654087223152028897200613449216406791195732573318179182243324945715177685974953339684312653110703275926202377471354534887620819473888948991066132594329223572165927590740612677277497900815240437517937997726933407567885648851229945025501010199766861458952079812281731025749980469989856857755524492498667133227441313506548259056257035694124548318361545434905208420867691560701545912995879421661775769958785828365895924831068928118017812511885954046023455097226477584769783330905615931036066364622297456248807639095647595914779447246168473204609509339056430015067282896346368500903118898607222548858977208362438433938624629493461310804293067206384966770157576785431078656796630607410098374889339320549066667581660952454483317259371366516371713178853121554030587307188873233935473289691996089462169934365041981398617777631861234991624669597027228784125961543945738846892959003544258247794165481597708805558259307184258722855733003662936339494940664931613632327396960522997115650914334017612115028344276456442881472715723591724656961905105681748053672714135582778761456280041904212789675259709787705501643427679879157677596402903688535567144381153878623876644794507955539956991935152625383175376031704548803556507573570053637570281887478042214456156094960572209198426162331495873289985087152086753321426628616507510459816131862748237014495453217296368917733673590413714485583865093570452378860903360255881920887419430035013555968384145525513535731290952474255572574132226921593190122891844432788917581132851328913989829872895245632951501519668615433138744066028943055292255006829945619973608518040947398174714279581736962863578187607520880822057440524220015907325416934567624389809946700144247980943275105960651034218245291798633127922534054368134253242811103419820294767985641309998536236129783418890067803984599782040777275358036559201668159472554055567827766293364421295445181848786852519929486493080304945496425698850813540051866433796264058203766476652380793815150678138693998536998451346622756781703804562889734289874985099361918507805516330743549395551483190837001010987721233470894501809705077272919347998095826806910233192357837998386568816176153686902689304287655004403797119240946200597736724147091402386595880353963164273299315585341521961314073603624744197677165999588270691694429740060640062483117193945306768867276634031858757909202623708904356909295535634362778872118844902799893176161452917437695852346556802443667715181721092611464555350232412773953514373710091709674075749343099272129258072745936240941430048222716144412705291845659936166126480634888737074400487474536046856570801449617639559929643473379706418209509094651872856605355416979313749791715847221524113928847508980916384129379360778651533458862755627592021352660118643002239128883284723225148323839387189845355860180754383343096139909969721759154368019711911956278579979990089205982308139959291756064817060409415460387562159508391103320445494703900928850532673058055947109662259228993669453726854288808487988166649432293408429209043357191034497407800302725718929344374643505206018350040269778746512326144348885464358826044355808761783679176097013340392573387459372649781496261870628191207500759038769214305610856435165433690417098303173318376330420471792195032597184876051109348943290415330978967388746862747754339606161931188813801709418509503634078400924814914786316850315688244266076325521014369992593397958426958209890751966449309562771616491001183576227032038633920114805292596450443738148381401382020980077463297173999009200789035016821343606449011755494802811770498708972073131350774816613102975072869840965146652026621360519347522482015933069086934882805002504849458866323637573842297309710713664576830859864641267760003509189535156965893011655197431087039753629273522066052546704376665824399584920445600651702809867107549587145218450694852580635504648319586935685274908575549739146756077101273571919687831041053670724973692031096768797672367393043384270232735143484406330591444339103443078760900478552464834079612808537980682404653731065194288330332940441121130133015612381768048089877016847906866882476490670232331272544183263574903672173863802704231443344588159203570275879754548265024151041384979726720009184121586213420553711035453634882826153081748461272447863131561809099221040941498150560231077531716637678518866168789132517719826050809533166515654094159786257981854721301714579912745327528845095576134433149886609213505854995026964494884456570008058599091973537756942984964545050694111509208865320004462847346127642598710857712820440496256019125140750034988541838095950259469234968723859016603968696804795347890473466417821087574896985103230974396872884653253430538615698089357005496102795261297855865182316253482333484562793186894959018567427363771411660953912515449732028246935928070556252449041783857419147874378020202448605625685141624020666351349886317697408561968916539468528601673855271463515738331803446086019497904297481086272025463980761149725492869060302131275346115436752317545722114915180227441340193041730422123644424044970484265707947715855919379433626826070027524806499280021330190494069278956026592969568278882566101613940463254190271815713128900572681324163816155135816133010395055124333617706319967058319831521061869580545638446313299912384518678225248462687178740109943608319140392445154589182399915151523923037974650972387615541828230071883736773077342895699374487401507718369024022334508390870216793846163823860486459139873323500702712011680585417103947300823643546983371002201846316878667549626205442579503663640840088369258200308473860935790782026097554093119140558112097232170466731921193648801270643794622413185549637439532313473716350693018634621477039655088398048068900795241016652425347626916269698780393648511665300381914453315551784215425908316559965459249679137391813099612774516629344348510348879941015009657627938868771762138265667026408744974015214188293318038276297359246733545961903290757649563008674971019673724484127919073591280713134345136301120297436270771843058737394051785505190279618196827647817336740872931204289640516631595503457812157851518529440109716356378203237629569855993508956474220851129475620082907352466263301185100327422078250953767255979222056839432594553805817173322014879412229397692794940359086430919698179498437973266734189292274919994544712103597414826458970455692050722052569926189043679692330920050694451715045050247126105272586970500979073036584245986186088218555414812401092092541557801777671653727854841863961087998618628420182815282107232150682203607886070609197264477273475850092591375629097530480583317244634026759603139984115416660276444030638899825377232480824856174267898764782441804900619226063367448771987038266945752609188718224796027815795370342714652120021234072499455310429763983066528325826595089134551328675609459277259243394375180408812246438031763333725806209542809019010985502532415040225759305802926591573021855300262374139696700166166694529801130451745793176740219951458275502824173611918429046872495006532477992839384960379283893318315907477406554896615853498705242152071387345269058141077589033039681856394841807632171952260745288315847740510321076541906534075880290865977057584299308800568975042808364372097725979415460615263919013921563252610813479249911639404760654856219948298032272702424400252777883654906062881537511633606198333298887922752851918961101559119358893934440156166790178992554340889484389122491926995099482352764646273046683365563562943771254114386502389877417824035374862278935112660775511787775878293512851722699348319801293348158188528884108101176626510306647711958728409364271940176780319244357649221886190680491494798282688706202045832074882362804870351228160455254443409115588215488686853581739883512365512536011084941441127485467158733208043346850452523925996416544438994465667375911769353446866152563372778647366054492660938303312121286415212479594173453857439192286977188232801290787551796433676626179277352788109919629636503836156200989785123401376798071658258784743777044945597331031580777460347689581150940527976672548525549021047398920278272636419407318455862790507879773831688252205656738908275086844266122794874842080235930521548914729866945836501048991084978364544374697369024480598770422161478204361495312370575895163892248705932904514456314780519588919144180047355661604456880306856812639082886494825113729243622973437649540564622288789274729305676343589226397932259627646449078069366725551883983733946948740138732098510082891526882828593209278520453520864445942029987160805526230587609802274492382292438130801852283269536866899001283681289150891458092784357614858642373242110761806091892389958250922620060688322106668459205503689812534723997004755126070433297238478273319375008140089833621734395326811138132315972149948663202693693088724578294848206138273713059441916848053497768679082628105671119901914818240904915225119171418176807081260539475832759955714100118339877657784510391596374990699050258108233612829750963391456649037963656691987612349726387108287702567240935406840927482933415179074384367086880869202628714274337359574417614660458044986024222672953777504203323235168348291655054875696311194299125174866813939367212845105797010653369813263948897774926458804161264716492628757335601317318880181422526098875321177091096965924337143842888326092348836852948833372572725235652075408444264080777543857515458323654989882381313009899897018796496607570617826809706527037881673871951579594842358368568558872883015200529752333636549748188300975418350483455718750022744520556158674169008164139323172761261360508197812336778354238071125509335581313141080522669471257883900458741160931837552686473370738356700459372634332349655063587329341486680570825075422685334057965582298732657668257516134801479812720830864582789338369117213021387598216961290738099707639412659621659109517242152374978087846331826017268208745151347862342073534820588530844128467331404732203552706324984150080619869897782481804492817719682363952938653384894513884264316693061623686589604601409700767521657220089373319276269511506866954979873879400216356176596225588686778823018074151829515426745704724937411562878776733206307639653982304862310037695519337319313757087782253023547493228275084685697621590857137453760331873572711431524039924481528273348477430686629662296398754233410670305210989021688232275525929126198047789474065158630188643301606662038285111774312063650241546059362832588559180477008320036456502295212630122587569616050174345021897324758854359739675215951373007965309557936812607792071700983774682188495728859316919291426316041008823203922297027312588944266279345360188984438492374045183186429770316585051564539299569711020238935664457433565302370806696654972424123402735044848418731638038395207537418190992778960359697794674203555685925383067809382445218649417086170573329866941233086550576582508380516087317008131420770011276995946320818818363489898948223230565425819840522865924106623486137328264035787673706131117233305576038957615009126772600916820910567311105859335267533214677187305054647558420367466564223289217096481536991885544633774382394758969081354008829908918838597835082599846433727059789590703881631281963707829846679465075560202667698544492996727963257907497443600310495775747912674470814069932995196967939181130875107940954958038197040338270636483697299186230494185284267804021755649969792392400047321756021104615141091321092783988208847945359616951193893945205176593805210877721041231069033197314102333946976602396128297586542416305436346571574975237272636184242614033232325360354116118401071985156212372493637500662872867056257228047243097691134323616967559546146152929718777927967486488178940020315961992874162329165176355447564864293630041966568980999127454222874736537033328054692247701737662989025662781723629633912614045344105400371023806732372442672417191845503912281748974305114402804299522535966538282572741119802924162247299321349054534497473089700865237497150829465608800172147285894387101076993396528204407693923298136055622673001112617976491439234147779878093115329806284084436065664757784320417491249858610197822192152729759743817700324995904337880779284289788393338460136666554082400890440525428342729590934734218584108510598322738183406949895029482780615720960907777517638559476418625362921721661090572552820914768846006250878347791532394744156627344500952612455821781261478824389113399029463827529860252789083166145212818245670780526901954141053327208861104095213579394262753368514416799182535555660257520825995792323833232789816341437795446685810625029732489467698593555082868087594591223245423971386281200438383623369143441231977790746275706208451911865992304870995787106885785861727880927746339593576992156745589033081009878148801872963291710693435195350472690179374501624262721277567695141269549292887066134028341366176656665816477438760686857130451654004147069214226872705247797209978214970117687913243795802882002407265594763403698932178837326661147317070524445960487425538701997219439095386133445015486434873162038235289720030510475416177421133063953643720978281175288928275197559464190595298826140726252108526579861943489525378999026381395089129509903018616538532643308180140990541195546868598401773925193030994977225149433894468266630545458455942813663076660680173205435560564294085721032671799127551257299992627817682278372682076013111822603340589427532484921101965910606045644084678925948733204921100142645588020637975189264181042782366196018823676770184112143074836934013248218335325276420235100440524089341364955594149343974210282401548449021120375419790478136015107079855503453958526531681525096103313971471151901785344127605979727191451365661585816521592492637614396584175294692299544305525383078749555557839474575834487215175555379285292014026893641563312232322239856955077396341591142237113572378746466180296045121619196518246141099103993832910594583470920664896449132521311102183709048473646394887555880017834255137404420571364213335157170819183893587808322892753329645236155578349725115440943276566429941100558689945848502585236062220789912279971800332850533192858105486135089905386134043014195251861123206496986873976605937860865595837409402477483969287214513050174606474875950939158001830939018520020276749527932346466988497733301793739860774837819311956941829849235538431421988140826864994223885995413204497269686871310976234282369303958383764339368518344926539680261792103149077200048235986871149231520263784112624575144075735919971643652326377280075636282655864417650588229955567419662007036788566583456523421563710144199535037610815634125859818425016460736056789224533384204166980075182803434366939734725525461296306589064416825908172205979248307568709692314472500909968149300760013893337167898162347467477717246393564355185171439763205585351672052871203656217153592220628497535388366725487983231832512445275136325574028864795684585173890547804417677688199010524602458296321421282341062265154595699454283752782204362153079056041500439966937330600741707317387608750788921481027352796021476058676589178639992961928017658665231234901549714915555680860728702195020141498652229258033587017649658907314751868415004277776433580787613679905391189814836478219474374740428274448857176193995112067146995832581888037636555762394748518060658424309874288782644283956998986290939763957273920457120677136406275816494493704016112127470176199313331822571093661813673703385204206349137496162498397418486790729220973335069447487317254144094046539075564380653352574078809287531762201946766842825712099282746896580869492793158157667246762202421457734997653183252854094092343343750141583323180914043839422970049138291132419472738377984277941492943104615519231004250072404136487744803666302527230178923157356738179847209078649778604102772895336869874761811018535617937050223105009846946505849596450109287830937873398612015225345872584917846165546665652570630436379787472257777201411720621472304068367958177626605349844424804378838048137262144149842337334115272158661433048179426767874890934690091319595842301663700716602570418770116736484305761328814392029170336129412885545392886577986659313383505174543994560079814318507586396241353560622806868897020059573211382792657730684007497871177645429236345102828057350796058145271869967759148963413197317038810055585121669246432010491798997248111285467309561045100963038176222601534324658071346967147826999296272757197680566760667821619489351109140571326437970320461745869075578146303501173152130240233559355196994212296552748410237269842053343880630896605768109867386080100521597637432206093887520954031904421291797337897353874130696595739490456158793369654075367064001775670201522209642940045755549590872297164311936202784323983371547140962877072640384900508749397837669224910214295744862502069534181687160486138293944674163677785555511062155273461962167180191088233030679087551365108974520687326106438207802005892824475922757905275082341477616759589944615854573480299450496120385744438014082646559329060838636291790087725369728445521312728006666122876264833324068250853991209355967158153455569751743057769478814093480084286051241262277552929780271979040983624892234957259405821189961716027336728725926511824574600998349093588349190179755336896672636903544853424150665398925893808895077752583477781306732716257764059797858796615141072147647151175172199505713622915441660495961131249382079315750725729964364050999997690359224140286668437542813365524317013156271830552780855846355108975960034485253643835454474467034194710040667795835972949850312645345069995449916681225840536232607721344352373031523527363688528484625110628447964267410131746103319668582964276832195293576759388893936482559852370843240155718886017861993920994794691476847037950488563197231883200858075444139676686306895939754504908946695292596245226582743652521890031200596296078340281801752849807603197781826543253583156474095701120278356841778234174334731210065151004576491961594757729002731873808562330694355844619660732673336303116209660010577508559933603260272221815286481644026187264791417286281874383848357203150525221049232907255972800846167025802027018300159532604943602187965848769510046889608288253480934668587545292403356572835426281550354307388400350835795824199081473959347324279752085716569171896735849409482830003750570522497831932678503209406539628080936234517494214480536070604556013553949904677571946562911188379000201372610784665567313640761207136611052772436456213720718863875597438110706913988651172014565523321900629427225899349646762383949608606899083189527256291242335553592933246229012405293661263022799553706941162243047086582804285399730698408880212822055628681504836926807871841041402296851053590457986828104211034327594043196828526264938410844030976708558747405605186948061236652777685928135596175881964765856291323596074688336515135852390704516391445837551038125874658780065636652844834256982148961383237083842705276580252560290633749240336227132772682623435510208096862095848745407116402142079854333447793061354159295024155032782732527318630118772615513438809352024877971514536233833570892062763798645075002170687549510688283711033014501885979260619021911696184090111357966943140402905540511899324455393670955838056281322539541513867811962416873909924540667867727761694693239568118500475172519686704993222202414629662698095580964449691029134343331462124806554103001732633588385960629492474577205155226798142566328489010033214710569827498329340582301358742643185734045742880649684488799693166460679746962498240936763869280475002462323995534000226987046691338417394155787593295676849490593461247019075751896368217503561542816934312363523608166702971668760181177905344539608160765037269191979708500382880388269936756204886564264621504836520663239061312603825020595204773904441371027025147435029380150168444611154703521653301464179620071949012762196994027187270780552301540897367111694190449764138863382903163730120399638611514478297360008563696690788481925292611389378714022756255097795214929494225646104683342468493084762957434447391761499861548821777533145598274737630981091406821992892498475594587945879098611740196310959772769415323923824509908904991795747902178081867686379232126652815197234202201155399824950041561071252496706363437736629580183727481776995467931934876110540656563277442307229966275449587790253930014740783735515217170538618343066313241284877602663188086963093140666381065469534288712221534643057470902607411156957245145674810159970119489167155595433552765964559676736384440606131500714612136538324835441741871376303074352613395279625455482850182317343577971736161639384113398075768469695738221999014985679481650205550916448131803283075872616234868442473434852756678594596347911957871258870374920692946978833753555763185892823819620526794706140431212182302605452261499410053044553555738141052895834377721884627670134687295253573271215509860487409391978273598638181610405384221785226638451040242965841591890740326834926710967321588163787271440992317547604943725244632062929999720989882512772726592900399833758786710870454456982280132285168283020803508513770337201917890484493410005271853148959981439928459406696693930963930467141097123151756824437963650101304380182640562924266155175251788426990836756379189338340692397977141723684051999449267392461251963546073670779008967212821163185953406883017734699339683671328026374638777339162980055816701041870017354370148459835506238856209330515635904227368020473969522943448650190868370592493190607659922040783765481182360397413946609225311382141307109017306359717136551161819654619981405465134448061757659171901702580584189224728366330805300430448963353242241881661843065878953949317899820182203321094346885138843585462112960533028413742088691468657982421470071891875831401022638987911673071476049923207643813232416670049320067480419293253456158865963149355398693172867888182826712856890860255469818570328269746178393172264891728109846791169280675386732307071059913167522670844260160725539921220821824796534405344478539229107760585906830861601676045092229811412720633437000924347476941873887949789961998698098935572355818417194811473675893693430712060478477431893686279481705473062595183541292021903847418395708606431092868619232157203790960595802350845066248290112340041335874448478852193464282041442582994642750316704203358247005091888304428061796127616582423384745141479819073834055308546598737497501314141125957726227380739556254420240698953202180766834466477639511744437085458374962892919841047052746446963654495882887411380364037994551483637320810896935405113927552794403322854950044601900530792694894210528902956599214288711168424726196254820198553000825331808028875185412197322362340379005664147177352691465114469772270991807642882013217013112661017923317963339892562176880738744935261782248498016331289386611097819640494343730135720260233706235283093440572459423696189450548156841820208080460519565447559985422252144695201789710386251847168585282152934504886062402502717654484968060362780237159946425996535107276555792027107435258937984099887333145345368211341391714200101770207784736872224267880338731715859472758978367003003455336532929979164880919801553331267648411809426288625043648898331832570680359637495006794260924974591628677487906559550400931234857616411615778288105202227941747865772133675749747459679079970070515156383133559065740119832285890709771984202802623698001757772486354065235861489910241602091790268418798782509051287022515371179682972561960255196009721904101614750713321434459195367026159645608305956015281013001695355432026771443009190842420416297858106454112784596463078873177620497687705311560123816974673736700746868537000051653661005109727903760450522886768367737392065157563971112360664870501310921869013607399978549512082593071964952347077479266332150741978514346434753525360564070596717239754978868298284135717621342886465864652753786558947990356345689112598373168791403677483389349939501270958521054599972243199315191671621577009651170874620298271166448588175429529489000308035242362304804367662601399340573761969478196850040320595384880997357073987876899927456176463489412584099250887514610449484760999803861089688058563179423284799973956786038106704859041745062471250263458210677706457834430930253617054456025629646942610796585377837609233446897131909482169568104446546078378828902598853243212247255126417851376118321836341635112972413613631739061104275512896715134728036016471215390698714997252250465037443125953842906257643805421133711349713341442220294214135706047038632026521869922024409942142799275280944599486733733491562395324359567237844231194103485674312996885882743900813405449586409858223199582882308531225283402850615793137827293500629251396169650674723385986676188670807628317859486579840965150644953794606628510887774715272942170544768725062202161362920189935874428447023316048701730993787321916165297990826526276503625856528236244316616728921317637271631370473549593610063259117843205314957776568747121046048328379371721232267766471002560541419334535115570779328367691244542084054421936464976681943911010983041047141188152262436863150855307199024400816842053226310885163255146650661077528299716454144948046096052840070029906743979729736253222476999170271932107666679819348062038606149033971760244767953496001682381878230747451326605529319021685730800652761306003468517137559722642713455831236578972281973200658285860795437911088014300773424522772257327551061029084908414346752521808108548111265475019444115633427574831705593742501938191996929641553614868191195383545204455189828288431179799052799623508450154006460865959522038308863451626293211011927209244995050487120601291731819953591699504303547551129786422052110716238057873888482673696279936787245904928617931260822517108622226224952537983802828820652632241852753110030477368213797783617490251242190091491549422833974437726612708058648422245380075548303872191718723668047774732215314688598782606174989616947328565288397956071324925731597232630929634540245180714002089699395797154527929271082887043368932129314657784087159380371497522267207556723678551881851469143997017507687910823763806697962617307161438850884996299389780889333700110733526910137625897021273181270203937907615202516505568286668606541585082823910346313649545780226630077237618086226631941256301454385612453517779046933977651289648896750665843283891521903798686832870202400566984676857266189636760841683151803405344913573830392358910970240393262297272798419643657473713367567546638946294813723629933431528548781951277127822697830279711406465147175578496019616767834153475012889087634950036850778487365721215808032788838201743545929225155355666575596697924160572959714696701689802644458403501878740434063846671303256824403382771901301351856074393659287099067840403298810479901481530440555211612637171637484658117068431283929725205778787890764938657492894349640624549587140504953724338418288577439689436245455010765992911358556066073633372686973455494869153667137374592353716297920938461690584741486345680836448829787159140946085651067282219813377956782626341158356071691208341536765341163417371494988734300418099625764022279758571423144655029235857815611572038423270477216674052652774565297031201726060270412864496761458888697603690935122914221268057194304437014795465542551039867175055074921686865943752573200587091714338936145664071630464873088708837479128257555372102063448097515274025466610731017463965682952994177804455400247218797066525183225455559475794859700411012132786160853023802074660061057956148280876666511546314309905415823957241392532516051621171373335204255199213428544826004791083998654775719670442625566031645201081109473566931602976097412553443580615245357736354522896032210527471189612765114982667897187235434176034077004217891667113348466261449298137395593177183354616361344214456314127722778876749454284882988555969423335756085811393205572421809669305484143573728082791870030109349498893297896795669900764451581686898586637818018159170492667961223442389957278150345316851655002395819158884051235848655056148243595001949138619387243664059789383127651282858355166673694892131937025867926314461728015591091845628643919821956356647185844341431431497475122081946676046973885460197885310014281884828329490571529859517979830519356670289569508081286262014720573833884792384769998540676593870965745614881876992156006342335571549685153814788136185021862566027817491167925882296457228335048613390971733713116790070727288264180787286129449802416207700718693864308817372553338392890551214502275966868674494200192502668857538432020016946768446883193567439753901142432385052386944096127579737119744980739044989294272206779077455108340664053691150485007270033225922492679915887271813921556131765210769943718583276938294880283572973251213396622179565536840037607877483164257067615311270670891908229319760163316720162697524505144003897483234229918878515441741517437075436200340360816286208475394463152785593899229534917622732977216331402306407138668025619787961787367584180682364850383231288489832884491027186833018473675572854243218905478156348290293548606116270738187697360934432354504584810208296414964027077625399546905452450556673155494222025230288922974645452285668290331458209601638434524252649064664921939284145695192279932007508075754468721525910738609195515420399546214937420907790586976224113331875074854423932926748765899639588755292274357776929815430682842663106362747023386475087118975456380283709332639236921057181386265327591950929802867891766608765305401166965853717342407832133748491047535157336322932806443191773459051610611145975163349419358336610758549279120069869518578882265005047838248915541549302588125346023604056671883698735165440012301921963329655396973844136103542414730958351815721400393139936080326573945228883736339271027827904465695920552200725049813441971167928588014015298258205145379686198915376341727713026614886053776099107182853248812329619094412120761053477642155785445108762560125660247105157623386121441951450300704426411570457978998211127197179226040007980439715036288628997638531514035754121846481942401335549197029170845664099362537565278603839483340264517389572349943078450125039281248347321653606841967204794232925105329780596391484874106806926017034148181729548558720683993377898592695567540756378740589358622410650938450647261535758608297082017765201787419957028029099981484493621980455220356654830331791852198817838284327418974129093190498818870056340254496327102488536155507890097972697922261831696327671382916935392179784641094560897803945965382840844085073920766829381745940594194985324190774549173253442227615004509845763869828153737073318407190125768659116468576808873199670430317743750643807052329850753635158825478647109866270647772435632344727978893040596398380288574268789659265678161337511553569733891586746387288372456447147827936386699069241368006990101447888611451324130609177015288723672047761237003189019075581378016826853541540714827100959130657443718140333469383493996502570096448386572921354157010807234157833935879443321899855230325772019420650272047904808798492312872960531944548317765717358892098036516090645466145890227390471813813222411220139726656550995458495557504438421317984405920964565545096850267332261908741863572113156913031596299785575118869671650636133364261391178019349771621441689754205130924304958659388687907801889532901386930546923106614832254914931337826285060721888528095089506326049775050358710858405489712103294365979780614042196925972066855628892280839486072262531955487566586344402206693828686872183163985396926359547754471578864158012543449234996178810842298204740769170865656868971879290435634753267279132458985239441248999151094098121602062112170818252435037938995721829063251283744561378309249423239176847205384144612974423480675997550998958340985652293240751627937412346788549329568320748531107281716491740740196624684518669586395688502792375353850086716565944294215712640256119500917903747148042371258342235608339747680998623444808509984522211110424191263466116001975581509212749754379181589673649686229181047951375661447059596615235386877838674275014869006709903790519359846270215369006992223396538436046631763807618890253479066328953499173363594409655761169918554144442145417026840213860163151879165832927161695716376068978088912167550278637086499452461724305521167150236899111230297808996737857570643503342052175302579966533239898788934787877743258181717433911221626870958111792464373356717715319117508366129239676024981899995238638063534761304381085585457145089687039837410575325283807776039391240303903315795104203009248512306824125911560535080205111435947267543075935868810649212843505772178952118157532590581028592589933765121393139929990215111132413795953425185293422641764034307554549957068416926865016231948481244906384787054816750897062406900215902864658673840815927902646740618249686224547943359853266372616263213033819206825087419439500743518614220067116720806919044865208436163082875494650666351293215539843648237663129385095371105205692515105704679091991488825985489570206289064027201830141391965778219147798836490202408118220397001342007688701277765028319048301942551990217355229099622245401661703491965505467932030154509572869458111910447565585138305393409874614656433913457133975731048156150736874161090610986415871022744459367164755934261542222162198385395875220537870978376187007695166027436714746451800404595692865070660193047956373205618219280359160183380297932389221517247370779169591595430989113047985436908832225820475885218516339732212758161082166307194754518136411721047786225930233053960341754679930673246865809834545737048442842168880499593305219897208758682888215975008752633944229579997861617461843978286512845233443976376695703114278667807004368562631776169953330790306411698884236700303344336724959803133281797421109796184737008058191809304429943805565766364007261427287694395848285113017671519760490671095784576230698554647551087489964031738317775346223683901065774297459057077898912513019508365053002005040229061695475669444550457889352247797299054671137016376160173524598660720775511048761284785177199662468246495291656994430198328305635456709651715981876560074526519502699462408165038368306127545374844802148185832771513845255907332889428465144889859344213556468767963353180739972089326972825305059808511690769109873598170742221600223939416866792732178495727518047719789296756450823454584758524603749598378359306923742080787613620909365549362020400899435151168073153271243579334993218079465658851964681683941614803205822716005749552934662797857074373221468227055078891917661463909152727157678687607905894655471292188444272772621251875318885977087786368425974131682733294888598039132541882445871307088892011604188091717338676178123832027326338750562797266231615503978773334410163266596984727253926250862014572382975088646307988458330291285305938680970032653642047126246892859567015941347361853257011795935999849191611367046715531613548049047988929156232716717200011971830729856633066151264862793532842438283779914909539579289031697169594856928864382435354133150091591535003450809598039935393235727841873827063212928940529371297548594025007578641865988249654561249051792332568881435428123936673464428717072946895507437408055313874101111544756018446353836566806709123438693664587148827534294787113243802413665805381358900519775449132944146504793869235642914976652576217187975030888865887023262857934209500332298313377241207999310980081483561611416860943721378990960647213204523503150576216469560131216881716959480817407045506753255400014901260135166603108264267052615164156580385680290895645265428506123138405639083560061736362769638487995489554879947681436836872772474464722438569164784631606194030091580216522460288667493046374671623327431766115828360943615725673769076010136817706104405235834869989155082748722849130338742056689808139874635826471485407192805228549985708839223230828670801378649752439026968272543016026620832193797050655416831905731741103559351095614235444918675383810986804432597031689570903906776510050150962893035443065488273381028987008244236488488037283657474924867597613500580968984599259297141833130104938202638977723773334188759226319025918922887501117030323379199462693852923237228670518604221779854365665732933245751985708422208282381124568783014408083297252976671658072024928094172538362462382594835539836266981311974546930899182519290457818413924759041712543518934817137741877656319510206115150456330437643407261856280216004707167227490551922967552751189412943461805867242892862995459566945966688856341780980212901055357951519146265553073768628109324478417833676313531569822686483902348986462018815892593751756105861431673891086080374225300619101361991572396885587776332968078994556041618766049780041892352063763470819002234340256860089363992910166145302538387219235164829178376845539746819611951418786715767977212047590033958263063228393032313692624111672668715262888934982513291153491411682837766418815978369821659818587477678937252430303776475635116503232716532620331889075980703220541994881705803229988113491667496716139683538253326976024425523648707682307032322728890511511769826184575089613055939147539765039849176174677988352485991098526754525257999451255027371594489824258914638370490506376481977699258433980979928411516287952508452503481242225148164340738642644120245673718240750996820176722729818334877903184667544890062985657750098030683698839679273147151219949997403813923540697813896932088294229649419773827172655509176541773188541763060985771870252917139317180282782929716527546781036345848511713226459026626466648997103654946891045866620945589409867233399557361527275719145270087837313221928808948534970127789477558477212844426475190020206652982649528895537795360942614308791972683461518891256101997344628134713921112889312350982399003932666337621341942124726115669608171034137863620695838391932644906726523020221417950699751563237470371384865389899186128984478186077089116756358222884150353181430722760252935590404182881748909313917453458910019555154556173146522892457230663178887509138963043736427469718051914856589594499363995790047631081852681610950541378700801311696757727817689081587847003160728438556687933860990686886426058806230647618714045311410540284021431977792526354407314143658048887337624678491939548822004952826947860616969574173297990616375812583158157570490134553886365713655358998223724802969074012603899849178938224485451314593350880861079282142935921561189498755320469302088817690890267387268881522193464019595283542822411256095809646319787517676894576675736204320010408940925638998573001348995750973403031144575759271396913623652602310199689331063447467264732628381420071333359262843957363075076144385383198876342691708645317770579685194902105038772765639799199165890373033960449644673768441688083618224069472616191158979855323291859857887673515012213569646634299262745610507935789674990181713014376488649994341608724178502535014449843784379329611654217450029559336271322141377882523980784644623794252318031628982245831718550507896070055894149133464467938290014730248924486555124444755101129339039805986150417824120274558583066808913024092470999019790782376672748110665799741197213923188874064527398126896706575328972453951505017921732435936320578709819817474117541274277815118027885975313815360640204695727648484107232882578806796719651146783293961344133465132968177202813970871195935003963915588837584403902530302863215568624198778552082995357155826879030616042397747313505855206812379847232078974088248101488850704268208376365544226866902480395265296673014236044866331820623225073406771319037878842498113086673588701557795322843380385189063776189641214818865597700009905497566747853992285617077978509883085218799416244643436964457484895481107714283128982336653348070103450177965821802337152975049669975578809699384479592145251002646328072943246250580669564608995940788636391356096110694892265161133023451390465730302278796858619437662599120707891893614878047426900310605468782882766281324254990696275058854826830401267074756171926509993819977488179015892409544840751429395351670025593028965942660334984028667977589472361786517245757482864207932669542434364677579309880009398219137409527007658502003873087957061131320715097089679797026547934474031630575713610983583754307273416635139264147980739636030724634528916763998521854678205796880575067042386270104609878003414143173509672048847109071414372199545427691229640320786816339847401699557389002589848782200986266385700338097135929370781396090353778562050607124521716178450402369429131686070989104967653875036388361190311008135148314814836060125483098990553171388678405419205103358195493876497856849905074644237670998118282062835654978357052883843221065857626503565956596745129708168832135976703787358887295705932552765163075215972827912390609279585394177792760930760561274238773577593643748988599190405257648892372620700363072505681048467490747354923711562662025729927003361937241978085649313123369646545358571176095999916855185069913579457773246074710626015735709255069168497749955574417707472700453731414456584062189658038273629259384527615756929560243639307516935457413044052794641934177077015448224541893977318934249599922411212362927252791086470010601414633677161703978769178956982639148384501892218933683155647040014358761639289068092820979091613082063391857499861437737472736886727864632635369646360697013351441754560005994121034463937163458083815371085393186686610822689617834058586497698501595843765080626478895676586152052091895457930999319472031623616377436830149671947044791566965925746236586823270927164771272646276200436003476577787358391464647374580575013328047720101400751961006908407113411024798384840760529829844498832934977941591649080577376308710408734779664283878224242011659684240879941161878503315866758393494545510396389344469106174140308549044734187735917112054459652929487431547390903592159412465856332924702053737617256520598694915005046811987686170204931040225513652699320332272560098278768922396436196118690646468876667183828519402553887134153538816257260473889577545416337330478015230437242487170634792623928320899733426249992324525674366669612066021566353634884178729499235422036837837625646481004072669986400170970114214238135883281475714734457023591623999874554506350647642693631042065879313449914792843789724675550458950679192351350557077072865189016169666107757804297671623765721470269748680800748147502598695657602956304346819555277314288003740069939738581462014691345902564577295661585034436701093820509832027670345327228255782027677983203584613687459065040868502538877256188373665555810419541762122082316144202090429054952003826332936901170683339959307278347092818117291368880591916701196101468008629574872057293885438649452449530271962929985516755314529420918299259251260721137726081846120876863185889429899347809799477289053862641942128218806968828767124283195084799466005417420353442734772020219089428554592400020981657528776656032129707470439727813240421421093230732173915275585818373427634108380819224638716234066170914910785003261923992072793106689550539177158061206778563852227471398271946527811559550720577037087835981943780101265327866628471431874746428271085438574913965321644048021729821232614629580169454227945745624665453487962486974559127122547633416331486710658251356715736274165899900097419816207383633887848735005873493972553892333388751554721723393697989603724156631109089843870551628511938372409742865724218180378331965005381316317763647007483839664226483185890631702678557855545645469667490642222872671096928137951570999611025310994021370848570975756238254821162532875750054819617172047252756849567389795164165912947464243013863332278344576250576741879886325997487113281043023588724586199048489109194329001827841937717311426872040786164832883788125552328479338574880059785659546900001238651267656876184213547309677191164338669001129773265966704871333674766507444010958950392958020002865490466811760827106519416734219753265905752502350153348352014617633062033355713992386971491716075951789622178702525082788899588616188698597637239467467190416964174152579529635476541835686803839122455150406781952782451869887406934555645660161773312153075867618262364362526119363096629777984664231279179341491710730620667400643266699596405989107709873648804142980899635370424050058970704001318591029567262628323352089796928643197371973482420749344870479148181029140928758699236299161276650323394754965645241418349147737054405609051389732619587312419740006865260582179129738956091217838492311497564698122979812207039556048627238171054983042767745762489813141175041050780866364563302839677821109844053789667998995081261971941396418084784691736995826991271009343369784763689669298329794394076035147254357518344266717047455332698432237604909678459611386579136901793549234973528492523819980658884725532773332728995193491589371632750283775484454932822932560958682602178954770479326295310930463877142774257181441682257922659441249944447919489135869411457510080394395459667567581363723295168171256849950135658250473032742715045862952184856553542195687724055447996979551229691143011781927087080387532743366455370167523954610180194814830525124080769183465948911976769140748076552338768219396998982738896070609661616896957569675357133494294267384940684652832076561500297770103902713383868753123253437628399495746460199414210287271898226974472705961003699433560771285811295064331489465507502453645134545651505627982782766479721853000797863138833929868666319319778302510082133364917282607451201459240879003160917620683721418437142264872791155465081827117153213589658605412046899552853172229881070099933365510500805543824034187259172474138897845790710929621665621032830314719897785878507575591296115573427746615978688350389435136990324684020400462507494361226792459457537809055203963236243585594619146363648057709109035105970118875112696745253777381647980257969007480722420787751274840343602832892281740773099932834660602881719077052492854141065465515260932777748715414896334490427194046610188549159189265034564692889651785125178130256107433670199513134167000947564653404046076917252484738808351300354916802883254308132015711583291810602325742874207687597869038468682419000417103096628930283509466924755654173860127698815107487042235268808237245179757691824461198570015600652124528157820742242067154035405156230228791128418919998576617287192588683062490659101760218975483157043593661925318658096784128248615334746233668880900575068081282111114882563671575373333464175735522054123117510723897799398474468488235056653050136184730202910339605987808533996807384072872868767838793441202959291410969368008346177982439278155233495572660614059177284910846556780564831181667979183724883595543194239244864944715866856232774075349318120189751813158326515800044854899940547825844060601251049410247062868075368218063766781962981297269807477213087734004181832159392594008185679886250232245469293786557485455424462763050866803914283661839168009028730005228143967663637934412490204555978430628488702102741107036198702354416497486972308903239606364319723663758454360262599400705183360420187393820398907584387694068032710926612239298451473470983291566309674743096063880464885819314748976550589858129028881541009423910782379772478707291100512822794314900748142267083217130657229385665257545880688136553024114840102906778873502899215621844710283161667665800580114272771876286021977735364200629502830564660931447778741321778607490896552761815739388316421907495909692994719589924997453825548851205357729050867156795120159709997465735131354828189410075029083794771844774473215770861436511599059687669898182174208671529076004313736718107514205202989964498557425377274162755198536891333485576515705955904827088568646193827266158520180141266702625531382678116686666616650592102367558516144175186110056462621219458984930639748920096370307925283885552587661850554933478019274521006700926097338720212941520561604898974816909593752524787450430697173812816570957379105933866879013648059106087586505019461919514325315500382540485607471280373878744577233559312266511365186048962480334556826040489318128268172728479606884955591976180541088890800461077332564417123981743440231295032299955923827673982308019487924203906269549444499170246473280611915450799733157706422073683915631806095981396808327809441783477421667306597546380465721991928191738310058271378313789201815645964962723327528677006362486186620582493764723635668023084161082961433441978777533094032385587926207924008620558560172750411680898039199583147175186898982013000300079451949250490547295112992480078485450804366414989937532204661368529717363419349183527060820230153463985560666192389576900827371867916576426821437612583512901968855466359578994778819126727558975854895677447924708863523099391674960686218459111469305292270615591433814302553107941685269501209695904964703791867372392570548176200578963349356270569994791411889738837494618605381194496089088610409202803725798261871500331965717419817178584998221573741387709204480412577806587543853140672277564384627704587182563731193888598709037053759916761217265761835316379108381076710913364242646324276892421219618992853518873664245888820135341851077668232098768746643626670413535910521757509449314623538268421286048698033106810341475167326022956027885143241571411058430647679489451038499652530358889593581597895640575344740443703468437008551623850286330583339968014563702069313066602776472528732488324380319636010746186248696700330796669636716715882827261733187599678665767619121594710848361479554595795934384019548414645102078531329447570000237782372612803365718633733281334725606777442437081679013234820178994481194166438570221838530585531282335958809003537685617789461161962511123628461728223411569037038010593060454504139723589765003745700338726256875907540159209000650422939032827738684255317494309986553954628267491171453194737727117264748381759099610282923135386016077200798423149741491494880364593797140643753972583951962392387590544220061934925089284725591393610552055173740345623443728157233221996693174201686019768382117791645029961874978058005150760112061245821655150954747506204656786614436134371832407747525612341073128608460102329905714108150204627688917168108499031940713775446587658468780668401917375462149206782624132523826841047830795291238182348007653279049580141860146802401167012203733055520763741045282572204444570798711764148112151998532707676987928335004611433896792990488452029420375617133751081623514409643174149147040417398115521361415814285981956128823882222260091947524955145023524469971740779503889023012661345922243652292466378934539704853764909343163707012721198372224217224198156057717111708879927293974775196235988938807012859737303596608327112496627291248907238147684457288982673875023173876450661642779640774583664370508750607814261347360924598477668243237917227417498144430262737425434310832051321841883112749320116433752082673185535143739551003680874863615025551927591511630935558873606724283547435343818815976892701949601620935372850856023550944041930912972155972163434042028696396470597630548526285651961076096184939241823227947978705754975274984641721374940980420461484085105482918477346798249810749526836718197730635365529947125552509554838755729704236571509545125717811684879705311035499718467587937812497351066563594497965485572438788679918051854163745116534033326096007031480408886346059108736989996624093025953349440781738591809340710485720905075296359489814143461800134537234048497455281774257712370874642949127063876436172639587068636462326006950875980098926552398086129377498544245368618325918478416105344788636477411209133239583387319045774376720456306399663454785485221208846929832140359146122525777761677660167085827865590889682145943654620908863515385754334592268234892812237303232342962526140223860079606690954000707014523164200070468511651421195179216288500435292311973476101307590812367756208339472505074257456101800894913881754135406596963978663840131044023971290191524990849330391033445230822486701312781188961894850537251779524949107172738452092523132666948627888000940675349651312186340263949981032353863080393815118696933408826065665928854268004936249475195331038016571836372988980146497695390907755382814481348202693653199671009131944835198849937614220225339428198502152025786131722131392944241503281419355052243193794673734672095787927508002357485219151715088319042230173347714648905297038402544334937699665865908950989721501127698426211619172375063320968316720589372528733418859661169049236737832273543900126515084967612229864853581558304570993601535890161636001885607949190765875006003901932831814872748597740970739571828765621771765969729086113282049128033300818944508543081664726523252417716535267169765383573188322975133482608165937897188469430470585065505857290836707713532212520552024105123618051655949799438902766024529065905823563956743841069844570760239841916275636794772869549595915748272901620749587687827318007971367225973723226678889333397336139844034438115966827716447399833764392597993946288907394186017547676182155250614147593260068685804015177565966785202879361436146038501665660824427563840111249694728000778551692235444029900688688639678049793222336861756363688834845014397663241530980520087826125048309313721920210438032954705220430833951539236471618931360874431037885932556758375231194355321454062435918997274887761830843394857613462080246945793667304925815822089514474253577271317964862944986131043490398280337550676463474881751780785892142598597500562878645358155975362528305422935487278482979392777785261452613093315195843392088973552129617157498596244350346250885455438000040581173679008975124916501149342083865326661845075646666868407065934891032431453054959745716484892859672620763193601109646292714924935053779880056736684322978544857502598438902226403222329510660950495170937838652049990651446711230663621501841642769078624691932413340027744547796405267200693108305468327638131540391131455889562647648802804530823446535900303658348601217890105825282479438719713538682374380794401906768741840060806123265407263644618735835274691947889290976106061367242294822771308356478261710320090433106158683699023138275074561996191228198316515954663599311679209131390981158817871421521388343797023089997782893874311766582965925853975646657031386452472121425720282513466692911184845797913188629113811159305454294812382880717083163265211990412691498781804281440080962433388440240378421258497086349979187961489973950474612486633176953740849201481874418578138665432030620908908866183003371515292519117661373724560222939494133431790988508727270856402889848745805119465877822507065812889574719109369047225004985958015525851237537910802567133010291068954227961827292562030379182045553531126277718178889406760841879389619333809599189089968936934317365640955412713297815007232062062709428850046900857050055296767495825608467871460827030448550596792273623960577641853365605204179438294577218382342399403852392582557041058322395127488317345433266629908439477258701466813510960184749092706821806689329296985362322910032826531291747452236965278264967927218828252829479798800051386902637583627715798203769615352150922143570955786798278789609261710445684185124828314484469772783453694606710866527175329143959604909835212226793991416267627740261524265792475458100853714646498673718548052700164062466280290516773864978621341646560428926118421235949370879321714286465353390558202865725091111442972927282112739012318541597699531811936725044104382336240756678404518865551785464424018504541215982498922995952242032846467900709624902363412786724711792380752395140914439133199551213251233516717367172897660309712026737891003848639692181459673416163827728608083486433811737773593757419416504128623468124259805169829853147799118414643941367179071567542532479161321129837529563984641170211631672583483145340222420411957501927534994487758744617204693084935551717116203410587264067797249520495767442351407652494677281816222807385746485037971070865339426061769755429994929882616489222065089710387565168824036176891733349906507987780799000145736761184240267786671004138731311828385531014950634541067782419246547927455584305621511159396222566352195144642294864421442219218975561374318801069042745253892274799064796273924014437273264736645078986338534456745413320144220852749837120377008701228075925921194589931393014972243463291249134926620692294066668998753957155832607213787713871189862649184761733074050642867945712615086787530594882441915874478151172657384765932892200137961637745507230040259430646537571484545039723135366633904566757297933428349945340535730002244237181741563628679136830562253150411505913675147042439324242559279238415462812138233546151346916575445691312008229095192650790070471573511724626629819941913692857607711893594323618954886865641880813216143669652585597715922690995764807270793331573334754182086695070906920647532508597767382133522919073711142076903837781426044606792386012704351322396516587251497942185626624458426399072753139460669984536743823907606987727307752444947539063773409248020614303240644912969998638781273463450373850675963251041101772017443252996266148408598557699211663976583783645032062681638085826113897546297116222530359783402606968075991055049741556911630962525724575353944197033783929431644980353264560070910974376195750742356485723868762984402996314573587818472058294012958254450746883101235601365559721506078333193909728815964856458937462445988763396377596940828538314748509588540246331004530896450770568548163810422750092093044795611491135385620262695083709830984294937337455532224600907337148401522294021485354119311771997969822242900529559418534580701862657235026338268732103871867552507371205623224260477822323660298772115309486015500112620013833556872893240062779954973719546171543474023192686666559598800188977552111088437999141837629327258155788694223404201857534277696959932277987839929515212175871237327377184266153605805037669736712796682132131742367111759568949602834447626818340042254915883174548335188642366275685427322300007785231680080450457395264887615970989654297121761082708726909947157565051839974192892181304511124481882395179484968658364667308603699522893545328371808065182427104242077755940691513291995395691588486363620043001148072472833142863128294894215186481963067098341695544108030655970122101921340685154386575446996287606045482351168569416412393668101656977732134916440108970695079088245085186013877172606792405211872377385659691034194824936984870057105017143460909358541003030949314681026981000696238910902203220122684394555924892624200727192166453780960301963482338367905267658247780593356981386774703256742806390195635332774720666202883148644391745352076915055292334766379938517498810010882924145188446231758007480235821214926686080822943420257471124843056174736147864095897971867087835405173779751034036648262931806315156281473190132553901581091334397967115679200043566852880508958046916639772995742563396736102148413472282226169984948060421233845663550162009945751513264906017429011231104173472608128917080385243199088890814966474815484065189333196844608153870066730329748344924184079422722312721772208767042897254433094604078445171367869005399964632212520994018767004400416527193781545984413101330581540986463170916273714938777440537981815670502698353518322412925500815659728802617583018686396232755283393735655017274705277973830724002454290273496546482734530019094025563419318237538742309227450566032050852708310241334966212099493832345974184921190939793439060982082183134785257272010865511053864592905675012105392238616005373674861751947848337392043884111309921858895205217623196377874230836769353911761719537872886790655976116011130702128436886274562331595840759754399633860847054890893637416423752506765261694022627058956183426304638201265293580783016767837038593047643346890419129686997832301074752404567600462120333706190994536236737745658415185349748122816890431278280807712016987544122306348820101430042415781074898818936481760647738300803647564699532246619991566223144995773401221322342443598392288684338933039748873942699932170856911171431228852083121582004579692177526445470807937465776614508903030822985080653523040505836554393510343840393254695908795314285145223664085812179811171967673471514061291718275512128166988400564260379173075478884352657730251577718220368640801744123749825514943200393567867155705742586789680526489120158363296598028470095635289793895343025826438642851153889540854331924356938571279786436295465215546755303676054395428161253195930418843660292556506636032662621792468059806759179459821358902010115782434398082706193110811932031483365884132579464447426377386870964065947910794775492576562983820958543469739709336830451771406057022275557651077628818264862944505331089714701042158988187496713298063348081846351254968034876544363206773544524068526932236614286490746866425283486464732198375098431123040213353307909027966711249429045324006550550110767544122663677503168760254536060372787020585429606811057951536728483155443220195374689328168749183461660888890576589467462721780234827765084779583797733995843644734696152920126853562257497996331304854743332534905969136364006226139465098215556871644329718764443362337102163813898518736789508889106473801105090966075794106168607516635995065135220349492078240556489062233651108985085767873665827517075490358295569922866809309745350210556441414179040035391614781945481377404800508085952995580180394637438762400282079079945642292493594052419232908935746294427305557469934117201447997619236701127877502355599473028727981609338663230158159645631983539577002272000543916507862290984615366386772269884812442880333497212423460393117859744734795144243500879365743004693874111819563272224003796713745259800044783905466270330736261805251380515607686464288796781832838366671437202837714459072978962041482426360771896776985416222718235590194681591890144267019115570053069113524898068822484227902861317317973120877425886954885489896271077946340955042938815572177277499510750279820944678527440947794194707599226553947628688124652782782891475332884504405408749454661215133245897508528181627425880233779984042235515580753872130772391172383293615269876582050566009745373794548787657769285131860477605301996772968389527719622595236598218851951813526241476258650869451179223243973626664251794343732355245078121141050810804499020415080362636974147030812596707555830011452482373407536962440579137628172247914579020718378605958276467210591649734821127868273484657272487983837630864550198160166156157046128512618177136023542894635197842888495803181975883994798296239704968532987239038105668881722431678252564171265724480011649980857814357155716064417514011424304026964306075756155273640856792740918229130669596269033458259664354969756321575216699649918850130199844733850580375447244206232259403454630926092274151564568034967279914674849671364217077059832040327234151185575141767079241510164759701926243032973726058306001059396209943208598901537943856321069026308084493795127551501428281117088191134466924681683705431284474593795216434290664189619443078369248559096070338212600176123875434265508023227790320974014416679957407612179618846342071368358320509191530575303550240772364691730681318045450294942356691989170624862423402125379254926017815085245734478068894761184190499774851913753243820132739349785056797232478915798100117840140837360478831886385618693635358841887076050864570886433073667763057825465806549687243457916660169425636129687511812812169309491424543341906996771931205586829929849068231526834297853592446333223074718762198885739942781156897044181317456987940955986012558915132875088372167240055163576246904750010504505266883906948150573748936417105590638603802876438980499488103185542163475543916062339361293369425377401733201899783555616141055284982657943004326083957880384334030041312948032163755202272059926242857356199528366635216954445686734852520311428105386843221955095876453158142597917386357458308743025815197682796113794833162197592720466887785022817193994581647455132106449129973752187365629660241332043336437348667613074680967449483007527413738328260264617591759091357459842173654479762688563950285313613339948475237738681441042291519384826801006539667104743253215391873775574352112502828708196583543081515890731358473395263626786957087585013948254935206919973803572391819186144981071795702894485700167803480913124724644824721572188034097337637237212147559802076693926932796970735282392812225908939703753420955370067634465347364382984877778917781852837885863794159808490564265395262389816528406037470081153608261673019811640477674701113969220523513911583417267855813016388949347022713665521563050677597266400474688521360717264158985318263529245512554506626041754238811651396443546787961469748847625669762563469415236372477404460719378693156549012071611283240646119347506368734949961815077091586887102982390558773950791729780408437283773161609728283379215150292683896731819797533085010864992345721792912939645094047235931692964582507074670792590920947329426305693575889806170755310603562544699050227896264286335689329803242036853941156538234431684591548755939686362430590744850005004086907560644474421709939568074769756914836126986931740380960188492764848646117052798549530633835088932065857586840312663204472725559151209343696534781202836902719965307384944930345790613865151935645049979288512616628464332956006681732420243989510982743091445320765972499344888244246976182981733423798418344577081629496223323088296540309506129992889821927220673849118640504930671619158503121439579092092729470036191171315546843521720385446781097491753552123368297161334830442676694670570401332235613043145037952364175306180769314073258733072794593221996583475972509591018200037747914217622468403316140882445728403948219943844367383470422716361681545649574105823732116277481790940766206684058434061430242573108603515669992214021762096295710328678341411545382427269692328262636389111285890432098370081693703185078911635065886791486474161278309051163322371019173685626046133709128843581405318339935833965807240841420718697366337713354873815574006918566632820206261834567618940285437808685838395850348252224594710179970746089710917083233040892948955821492063938638914596348773304567798822930570939350127909563045496056136154861268670776861080627359818066007978763338204171225433850317826426189313577498376983547334122564007917161026468908801265121533953639045241253731437840046312265235247404410578688654399861928079084126528723571528656896148257100615321519830474393384845565353931219082142296432674535322701555455599137841263542796160015111753745279500207769316904381954439055578530671857411006031975385127973684070405276728346022331642421432063796732313025841913409630714929050344932170890448588335171578128198430747037352013056352032805646050619965910791217835787466858005199297886538045335303834274522940359952801545354680684557101933410763532538796154394974760373681571592473297760415778558595587673765816486242470534678065846609725787226500560814253802376224915869938951436420099572461096680206429435376540913980554453496116031334612982288738722705001307221977619626225697550367227189645189187805209242807343943666733297745621487926692235070413369114116768112063623699387442927981494973348962269260359951754173574689513070401613793364984732892618307377156943012840277124113136402937410650168155229901964299742138588858873006080935803762336104790767147775301685993974386985556017095829647095594133600222976838875864801017895758674145585437422201699898490686523531126185332432283444122869576091286848782352155920871672122549282017014516584178277378882479625077835210867728863759646263592040769804178455916049575254352780774400848946348660355752774555334859311817940535825954500160637616870447231547253409409811947480722102455852297613849039967311009932837958156858530456703791353107800334259987692759511253459294472113827328379182959436714171280621759940427279874464998616543345589670872811938663093431671932241572687215137413789468736664402068953204975758666896405014608352049948031082546022461591192341639773361037118138170275136315228868461155033271988684527930531248558494265583724178682978674824691432307176082075770403358876588261116521258507903973180902437543455668808805684728704063542531546986591233122195034825611024799825521967461858131036441766141629713375820361245894023705085972949161991924830582731089494966913686934280952315785460496578286191388441667238202476176977637460482336279742576893570518168597905929063528542033415814855430852259176675112968612046045962723735885311869794613672375587976658999590505864186714368551511611808369717446876338814558728555569011632958641740727097952441160685939667465043277007426932830963616523060015771827655417396143256483661614191517498359367842595221021203820669747234942927848447860942492131765207144647483033143575739616961378192876963885462260218667819112763017760905983575118705628714511989623380001041133748367425024293351694263181965474075551985073530615468214572362131089818466563259031468090436619272468451120220675149233843937556234041855309210021244069935110446988458905710386748088335454982322647004042332749472123874731178272580455736599042171168472265130848934356564148229314392797870630591228703286977738341681628994441351368903956699835410637521529057190440764320196494488828849765136994914809835428731051461431902427018054876347869068948514313928907075944513544546648963487014562206411202807730225788641722241243875405936149318054273119097287891607006971862826334925471354736284193720355841153045985481062942967242754769809914642409725493700317120871334154809287452129895426325919911563609602528935051846286294196170951893736604847064035415922424316355699430256755438166800575278630770765663854458956599559895337142186862506973898937718736196495218719522808938435996174509035152765191287569434349096207009060445349788841602631395540652212408973588574850116058439152902714302127649725759011636899945300114961265185879765123873229647040621110499839651138093338823460177140259420444804407550902335845098708801970977320804044553033070893312311737159482420581120884153944893040539180317712259842960862983054572995502058554762375301142178459958316756365617942817951431848830212533852282308373102749936698872862163144376751584746895062818196161563683910962503767476691983371616846928937168597675831118940035028924833465198390244759482940308323049374375138165286059520615403612369471870091252804188300661080617932289414190516457573652457252016431844744738726453778687034348288638971655730050888368366537168582540366567568819854831237551716131503338000374471326913710840443820363566377426769444582047799935502402128976993975889647884496798793457366919233499735393638073187359481955334337684746253614878902465217971139760337564009863664017758213385420269704706094200664123731434890643820421893852181414405590510357318532716447801020158905704380830030799314831473472961284374427571528863204078374263921137567281325026607079552735225496822430715688765517267935534349712557647338440644556036512712242398296717469099420793726330525281443288772703953368904163422575738148151153400239813727804791417123967383050905614622784050411090329088070719430172220940677786944686371889710029367550979331946128851760303603664554918691526364551161470582941310934396842049919518075855049033585906613675068957521014462312785903765509609916269857152984012731855951831933846821896692571736817982479275714784335440536420477862228531173298655254592058244626663345860849051391248890577426733442034963582531179599089835474083244103761804649601052097754337060667619426252383545304624355920839401683811024493791569500552115200398172166469244095528694436470357414331012706741505095426457007387943370676511636815768823218634242961014189451547783324790525435077038766190455392280270317840796973157343280301319899429055276607243652303907075575950328650754310939529234523181287805121785376892553076527907435937529480268646841983493941547114977761430299396644006759696849416004959452602198856559291514248699546608433494621569813228961877811335108244852344030002463162286959106449213968224927977813513907424339613909941974822299952424996356164662311687232187477739991397473822540983764782329241228700688021883803046689116308464447977951491618262559875675882833093821379824670260520990720560848067353845057521873112824770894490911655332759283097401996046147486071844534991970614987474783653044878927470765390386317783088669761508621862035224180921607424417384370353519094694357972830398072857892621975194167604707266573906978785445748823858607406997356083617738752941168023785955348785135289368229596332294824340313301391186252812957125751869009609653118680807772913419480647545900308639960947050756310164285883941875935442604188020659435005227226423216404542339820182556185568884652549717350551646816538404340289530031834805352680003105560699280675428882505808989611920982223955500183420769059624728907677507894853830337227093499729205591196459683343446145527635377857690613308317430233987621345735000494826624013915411043766108254733510396729567552714014891356015919109807597519487224177728245720502452873679342329308456567940050942743799049108303967630048075344427576769791369050807268677266040239694120534139361602468633807595517667792295809964391061617265436757387611063585003071630220036272385316814392218316647672645118199897427704824691326478030517875761476544921304740208106685472182596123774172306192549143601037240500626119534314421001232145598523205946063356080547830215669464671960675404271817504886812225953278936862273063065655548661878710143190373801317073845132925065603316181109351911613690251715938945776925820592065226067842331047994871825957159816776127298302792885183802475925705172361074121626050089875839509781128448395459707284475496509567549243603686359227127007668422408802970796597090529089978339720096068867521825635615802034560594202069240923556122490274659966744428675826749588115476984697418978280082173236657031481561374777651582006925594187490621599011405757441668233160694954848334033627184677908583137448228168558488843303847326665333704095978763272203464889690426300558935921698954199245268158545948856918417730903615800146937505709198410633076198560462192225549378765596449572113225401439852249806197782525737936797571505280852816033916961700053894378716061462519136178923764125251364289780666869622992597779990664542913796792322870925012862392740702926030822803486927459452704938518065444901928245650748501885408378555692880564226732019910706115468376177612867853425574705145530413341190324586516113913385141095367462393609368425959499857978303085744851977278068821078490772329651541547737609305283258402963775127297043857208899366858820658837236367057330502134528828245182634742739232222890940727251617096102079435045733435121959703986392785266328393903849891070091288647074664012423762209311031080863812560930373871478545220743606849999235299169748143891178745162531040168268590801719046332913823140078634255015853304952425109383795635553933063393828863080674237223079672526620462171327935800064226896271247920275121927091508314904160128701879038528992070256967305683429407741906023171119717782081831981893921682977235386391653564108750531007549224312683141636627615876526439614737651357181626626904909479736411766008198669960944539004154605434423702427240414197269372236759236474566001353873475838382362654258174145191455006490571929257123409640696658757938222332079285658813293574372562948288140831473391827256834181384600687061391342684584778526943990472591506482169184594218524698844307324246769124226181999220301637115131707785220149444172431975590034266197521323430536370705987724187244476658844160189077922303624023250999451819869762210593792673633594710367239091978858886601400163722125337988688508340176397187768406012654628139761513649110438768187682902885144523947120235968542579216029884490254441989593049693808146809668279980891510329168758404727699548667798177164878649315276452708307190992190348742911466932858215225130669476752081548260527253518167136609844711360960468743567101727917461560781016917257138772532340855780873756436980932661541295776132340125907155815584528821049714789843310556478402542646206744899224416550715685687315075439911097287819385138514380598736409625832350031033956620261211892819269128664968143759626834879048139880632946908424112341498185289462065694152880306537120056432514252960062344710615615973680574172838552859407697099158491460150658536429321569906346364169347721925680922465534897405863457795552135631579369492973171473609671071156491686435235554203959539379643621831953122749975224626132433091170234409757691464557508085310450115387481811507830112237341106126840160535292114761112295113095443724594074038737386519950205750030928258282373404358445837283411383180151857837195374237857391678919359406662892356332351572277269424325616656563710312001453614224922468125216208058985787074524730059228689965670780923776005717107247527615676559683336639520229201657670122859806486999877390933827882017341098974732020572205474644841935634419832069840642139637779732321290091351949811633449804750922360123426510892295897250745912405152224112235472650765406888024400859858289075012264872848903312248238621925564113379335239463657371810135237283072013759699984415447635503995455673886560777093338063556730616403910223380362027775301963181985828494602617080109615273529753456799093710957736740784231000607464002411560861962185582351408450752018484719877523811429329179115857159785006993065304062435515798279151091809840598478109273332665161753533309751995991388949146093571799731080346674352879085554203105883704575923632694365714795167040878949498737813420492256456439796471011551804032346615855774925538418991017468605576820552348022847535013283890010014672563958331084080882340084268453580900854278524320691082394558459254516389104250592162701183520739069278517623199659043059349725202510051494502123405835290169901240190670282803460073472784604813651732922885511692336779400536122881701185379211580412262843675444906418311019778604529350441660350548599314295490543418912962828531653727957956949009244696648378990003581806575090732596787226405212425775538454180134809355265047449984753427428425210716049429944558129911568317820967290830453300795298245623674611053926554282403471817582119888264327473184065774583903367760418823494811917182564985088001049819999836857248202089188508332781698801221573952626946889370746175899829938342526386677123593556255821993535076750850494448115531535747818500546847829075270349331099759193755036500564681597872114887511830627329435875130168088929622713478550686157355348970266862823512687944587816011982895644280691657315817864575485111719435336099504833412450446589310211475401239299642807024013547068321178769902461745128183733667776008023207624189457973074674959062840386701094997801773072552299063421669077812942385424474619646625401940034720761100487251413414027190646666206117544603568044294912358997789542022025618704366102758542976899404768801221464281232426040505697458029586754059480997965024580625823687122148056847834143576253361561168532687350398251231969778216531525845775386999841897792195533942576438845239272509014147012440542477804763553419452618419050327271179259490274564849469230819357690202173412555401952520002353005594591918764088245413427166224179636267197283708410695553819844467579928003418503035275972388847625226318249358149119554729286566842452698391828227864038587485428700385927198573095002186503842293851812321374471886147158117807507402731750607648716715824557277057764340373199722236203435995819568511402302275448668367073488585152663728361328818440674712639019590047484756037038272578505332828139947872215362607760177392718588393721465467118868966315032583865000713276734395019040270648543269687400068300026993127488194198729329099466127196859133588431885537744984129995322056592744364659485150567003348976078976697778467033773925941177201328823161490097208828995521656195480859257216139099106421332940139999511662843522671697356032175527869351682343666502084648117505645185870206253686432130791850398173447141318644126519547702069660475670946504251340855662310118168818881165784442314535992075097006446515330696138653165593533661698153003200958481003212920314338003011812932431856504399589589860660071178738962072191009955478875070717999491309491246840695813902406702758733853703859367999129415110528986101347362779528234738720704452235638957680909209434923590189910096937715931733634799657641025105644008500358827705512596721313048230155347507482448018952000617727565984642277449775210663135749467180686676344974037109713740149097797282825443219000186877643872135730312440514614295019619159407317319468240638118627906879033798869404165083341450910780310297560036046756928857932297056651035227881499381594063345722727449877327476672722428760639420770045508191443023827629191994116101993897812399969244183957754161869033730691059657347924788145454804602016394365756366378641756825301634848532236642786395968412491555386568401948310001768832197802639752268311687723517143189784412566212933979778682844736681905704316041071625297993109008700290183395013856416280235593797563276160985931821339818562958669683484070307083698329484530105937588152232475266284838186157059633381923784062972875380180514988768829693645171124856538326268759708143611602506699912038603232095060143657583152587524926739839254621400896339669003001610071168426610699144247602801214703953569614296565610694242802412784796054711773454862100983651621771870007269280637409769119117665758218039748112577646054353294426902351133509588712823046193750781350273528480952918632805330113543727371296654405747940552952318488782322386386658187637635449644039415235165808383851581597373670874161155400445794398939352235736295076936230951527971944197362993178780243924220649666280754223289244947926183974460817422419249096360896356919905191358336191385425223208243233210825425136142603132048156872345382520435906072301601614601255709306354563751383540341497513865388454609886969193610650770632921465950137232355123559998717892421481447488475808824113529785253478875438262895509668682877272181131481272013357763257549039182328687696717882615481112374346391340665119295641383062478801717449085058078914146143281058096570004427702273265019066826029685947990177507897571805622453810717465494388078250195156348975397162109006959866125619155110783314420274761308453971412199211168720041856744479346509135893669970913604021470995410345942487492528682297477944165085170569018672215638958586141830982667236247448332726222162668703876652703670079411474361089798175755265744842165161773834000014600844621866497483930404868390894824637369529784853263631860863610501589739756788670688105330669114031435075151153849584394458169543155086094504043433282165777503745823487523535539891647757140386409660212727359119953010196369154887043375637807047250860981037087905811826075865266590558003675795969637272954135240408707036117764349437561344733196317398601343456869347364810089664252272862459326089626226281577758765992196259179328691748341975157933251913343399670277539328273532774771078981219683410414522983267155249403416256896280211062429293208449084210353652483117196992642636434098937847187128868206570395624356429959372217104101629600398202189693439561913278536852090281173189231910490223763956515252117623111385931816681597305368387350410897819316609400294268474908899028370470180611928340971071984885113758205936746611184880312152909797766904345003073191291234847147260738680787936981728095293198670338807547243262936118741660582612042355715831913950045137394200863996505991955303197772880656776868962386941768086740044854456670174396076535306808893432582742051017580084077135951472218515498066004825013490226147337544757392624783071467075443847380304442935830007945899373742270378895026518574284298491680586250262770836618212196443661978366521195908034872293623644077985715149345213995367985259962683512165238409263056644081261341046268118221622426268822095462443332164157375219798327812367338245912056624292527044871068130756550313198756214809489351618923133576698199581287394512959328655357911054289533480768566971234643485866788990116733250249600204791560147790434454575815477197582675361456272487997908275902546173751969412283679673903878697384992363560887396278171383216112032237186296237540895477255158442521643751729309355492032166614747744707147214105895911342817901385410820207403391180125738425276607967732743677173013655290586768504285963152750788615326767198501313172609267662544032949381883820443519602045184117609997859737705425728319587952182225078880916434989782598312777591997829413189598254464297031741996740557029523696040501028869516267007324357031138607804742779924008372314074765851693964558045949331865328909032532520887708309097072020989608222881398007831006813349024573399817430555502862858967921185140328709745718617783280110397384509675444899955269233106241140925739929154330289508069961990897495736366808393981258214149122307307538865408118847055886526288176747890395501157817679873555523392499198452767822362659589377648575565308878942978452381828812514387544479583050904985929503667754429387997023732346174365658790380971194914747768460427772174325639673400976736704126530909958869439124561577526644027146166913528053456884350780247310208731444688163105025281772277502077850719440546344455702120433168973380176697407875979685208515959389699998093243111432243709913590380498735018825758737831646124303645167728231910186165676517030433007987057350381995378001942896677228637418236041923922295923343792480561349375993895835533616744442357714545834810067880222716139322089372777215169544139241839388456859467917009556780991295174388542869341723850351757791439413295355692858202723551530002848154665935852757644956109716106428562836111009133718931226879722588267879738591993021296937816499547551749621496953575014511804686846204989411456507711759180259743687349299133661068201547562291331846942731440390000298267135418448634737694305604577377178538798781824002032437635243901967402306275081492661543063107548781846010454577613477252339770200503782980739115847162177800373247432213433948448643375941080437182647970111305236370424267568542516351119156527582630689584263019851511591442086287313058388700832417143290635981766683797014570344701611451464519370173486379473465958957723804476235491773066762775528592786140946817657532427723235421866271759124352431553722164949531849895476901759909001540045374844336284938451427586670321922208690738513073393283120155801036994436948084072700190198347872512730142087733757888635396906968893674471903861146013911364476121643048369472531542050460502970376196444211863140504670246636769337004661995307158881441644484536620034060277271397089422610266585663299712913776430088514262240720684347610046670683025665227652556597339767013997947591079940359261979686576695212386331827279039346226642238216263433912357085946314320400330135467557192202639372257794542425876834567094467598467410509508973252350761210604659367074147769788001516436735560866730531048675534299893485677527593017685991604277701161960830126995227384284975965356958519474458101120823875774995624019567855155102190430917965094962484209049951625085781370969123607158594380419381873781615137466550942457305298923022630739930726400288332665644863921526271675722306146174689617533436639299015031325940696638744636455329469981085130595179560528368858395279089495829390235189046480419519947495258015171687808971814404569347709248600367688448704581962739948988770448399952002600485265435157562646080876892980960184487810465324059252525981731559915203747003824428856374986874283718827952446149919539763531968212295727654435607145162523213552237038909816579088749850804467176673552306151350100089387515611356197413072871635163104362414499418203437278638972969362640943313310121002760154506173041083515683995692880712673029994500004238534546091616004849187590364959073935829869812332477287656446082190713215969633451482941568763354757502829939190707259328852671998912554091100803739659811138603992138485485024414760527315263515134253947957387389099938718308899270870528595260395485859660155101348782518705241009646596636032763580504802267513222696978665600950987441697901319874958507631485643028150568805188965757331550885048556204033926016302885514689878616890725626307756839827336525857520266552225038190520006394196523795609682839592713277221222515069795200612801521555521023902278221667006649776017193518580008186237641756283243958178844072884451456841248195030289661438096765428703678162445883628156498650124804347522946675510762855243079968212508164371508338691195594231132297676776870967537483495000734502432142399756526202508739201612771171902242344178597561163190094500080307393230319807354823663394597763021302080561469339829171166063929284490090261466366404141417407582079907487253913654752050787067698564943722548757408859282790403253053018164557068568451505902234964972331949270981273600325423002110933573631127304223062329855739743513881251066847849700572022701998396350980097765855667627343538366937267556995580288763145979509074625114241300588083042051547033383722162671015982949314451130198375032611807937035600037173734885252735445199552565616514665659116413567672909617214951765089080404667344862290727411206003082595700818157604510420166910823307438103010006669155569715022688267642696078808008492375560250906717326500880737553029704591253960229930018010414597750747203795753656949255538707586365933419743935559433481928552960629276889608333230269072703209104618288452674484944587901613054363976750760733094066867314735292088808497878818638235342208093672992709507733150746803502795704822422374645026508670407540688501629641993036357158192881147192496750066622113780817627506665799025995598853440374724162039174800457079256789392921876965240455545036339353988555450105358934639908895874903830187643601967442000373372924451580252530179975961943408715067798540093503215018818178072435859110892073662058660451468041836602686725296012111967688751049029375054795260356195267763984637586255069453703869883565139722543517238900781509180244015922061060692628046588581794697613763009770580571888315296434867022507576297132090474168744346340830590431702327935250783307303841614051609335474701281109766348546525239513254336932563075427330818687793585879985474855160650295731266070395403582727231866103736930185057454824485604377536184377917818221886261604005424907229369764911553936232161710096873093755484164115436302854432766504145731284092028090300950259629588904565879473899863623962131495033093078993167502360337792150078652764276848212887232458878429654027988680476242626394506370529392762544176055009169311424569435989652357018359087380432175440553787625804033813484613182688224945980208102088428936445157985349138260720793642993250719059998014150531191331886268583282026711844257687911890622334045785370742665762903311833191909229930438896498089057737401967797207273393920461927168600469159976134955334948011405933877024283175528765416153514360500412673893453953989351797639928539668623561535545652954912437226543095970410934878377027839994760325219732418909066046249529376289005542851769925075338696387445873345135694000032020390305006201034334898444307201008255571469850812365650880554540614471626227173194642140900499699907045576676282679164924100485318073402704517694440506335480139575257451219663839009475568329366634844459416100664289133769838544079302906193543618449099302858449388517998697157968867948547951642628095953331708935547966536335874057361798254582446144265768264234365283345085507826754090916984250786056623233250384459921244479292187480536263693055116875513173738247821689862424709857498152890415471591894661344391742894713173845418649968659804205357153712260971880812658986575441850556845665056397985973382769483455388473596548355628337377910855606149067076373203955192616686310917319057833221209111431738222852819522258377249041772053781655434024490697322394873813600075839632707634202581773179611672592634277060264135997583426041935825064131273770170736418103877112599998059251360880457507971663529306017020233032154626346736229534692321892328360081843120656762725158439988895382873694150090124762299148903962175680127251544488365146451048106552360508406481281729605407582994623085802464079918994369187838439571688284453927048434735892312985211420453096124487047722721935559131585800308813415296935723809310971398667610534463111648541592469033418563320064069983517288026867574654553000016318955350703277371713157098837153790254670219398515454025752032482848078583618558075471643609915684037551187102734876788888511379714894727812948949289053679170085975134070807507086667573033263377212437624071718696110049411458911733100903967868275114139917472551785476010513953393449223273845575766805719234389899593255343947689544746810162203675510631546528515757695313698129313322654163258867035100065127965445677572396866135166217498359853287083949208309537630131404876154914616226230022870236005480772780933105846028609429662812437518748297102166633610653043580702183912332966000150804977478932917959086517619879060033798450755740037414181462352929321942333014840809510753465537577296487169812075412921455505339090124250931352364988970109384289366070392458450121201733326944816874252343439261897256092962052050515501904204463319534364186069145110068590688120072188875662548546175643376894120099357460610266319076246604725389880795180116110978356782203484370036277561621070843383231774202471554977146646443450260627370792278020621637143590202198670928522178502338400186898177085980259298434616216927032206113813753905643230816793568781806002588640610953155881804435368968773762747261761937149844598284420107266280098657591251348736711394436151637771336200042839708524635010715296150743599926451277752860201557441035892568815044795814075445631976354027103733579713512295417806069710714690076871293214389864352775971178858605002787770867105095204709546569966240064183726272374362296140863598218758459105232174920312201651814022306191326440053210770699575779345683401831366606980287516480265914553925166704913775075624476622373446216774005379955981250077663634704602648796522958088808567202516769056815626716640278890788568742157206638907881863770792119857192023993106087044577777395455541751649544956217604569096881893037158424783123519515659009655515781621157708597143184832574652621239718793818385565057146073273175796850675688315752317026948534632030682681340160600083639122744817100774523693711140104946233980867382514482450733790432055687840066917250289086821648560461308409920745023919907232971798765345138999285839193810839948606329591775850336544392328669404539703528439136111747272672464489821361222543123845022545300238537374462455864345542535691007674369398732044797479417954538126172493301294723095534517009827754040064185177183782915260776133547342845856221552787254260319696507954518942292836399999024325575419998540768677837718258973895408439857675841154986049511354984813289348508615898217048623791916763626736856895946981035164014883562155762998383588003539961206621024954445227835555744663170155504672249869311169740339403955342277083729743455997155840397237865686398991318350843563172658758436253496324383533103627541185590106604802264224567984258417089374340183062798477906736862204120496746484632577008496647767043865922701783012665917807442940827271276879122886322900626586119980659586414506421196224892770232004754942461555439711312401852834976179164573106850024364081732430712412030547570934746442070965718969051495767981317483549292497586700372316575619371779641202297998533792037448416989071889863480942243721074735574016404857549233596233149012945422275078794584652242780627004932515986649620099720982838392390713219945001666686230386617095588448190659434398020019760621927698135639993187152172365838284459559195451434208033841063540644239746361662196957252492226067694069101676785230278808868049521085405722561439848319578296978531093156771003482436333945704614083611974693724175101356219253836748491917023104540557996636331175006816568751625922363952320454471382784408564415416837420887097287064341863115164514722106679801926143054153870004020945437266066634344993510788122617391401517432608998312955815568824113717478880142737858992723166084018342959534745972357583285595457466698146624593560695109172485015122216702469919200593950845395218173961653380869116858464760539944069303144309254880307623958984050720664598133936608582729385443299558414621717922252981743450363982349155776486184209396943636627592980408852472033932941512976868831825658423784680995450880673868338945431789881645567506315555483075446905319124002903699104481555479351231402320594730185680875333499937663683562635557807741683328799688479967532393563135187607559513411277415742573613388681981334590297499647744218152275101091133344912075445976749733024350536653270898754428229890743218081590174358211304520523298906575099968152520437063197918242609939420637320329394281501865825635538210848774357815405297595296389929842866653169455584272613461071342846907614190162804753783360715954625736282863144598605820940888740104832997378503000428693383224920061738523571472596761300695797587655645093958172173585065162769657256056597533936326572020113424306351378611813625061080562223883407176309368021620319560187043095700412064047062754198486570797358590540055036582982609755063584280846226423989038276101537024706300062162253424817018859303774767027182087237478787351729690867060858077373058994742107523145171701227676060002666527255201783335360320986488158310064694329024961503605873737290558669274225355956395283486666801826561589776727480088669292096598303282118247661870961503309586421237747730282390119360912064937159840237393787951366747643605083098143309372335765748306637960901672596000260350424125229270939618739457221289809750575882053854569392064594317768088081717291289555082287547868489324048121796895463966144535303629481114301820434042117776197729594978470050919804530175270964828962600327468448065552131102757028255993772090455386271694775653546675808889320719791591743079808925820648660905152608999357892611412359670196382422453363474814226017390158180947116401596731655408811379337213762345595692792315413293797835952345888901996360969553709060228809214018186807535456330837638388733836933097293792805438992116105789723305657129675373596502399106338620727589793572050005098244095359622389905720632849684722379975039792959406187159072030029142572728017501229352765762642255815970345491958428024474428785964894139006132616861215316085696589315487160456205653438609716690971805122157896863423888353788953247645898465577407161550659657943113891079395019284257634123050668877764251484527730555964021779735136927657447968312640753961057928673723937661786806646481136559598369966417547754795898496610728013914202891073356916734591851838403702323561949678758243955186494322736518971057435717962204196131410258105566105704491409767791746059601967430853075518787466530645561906627112186807315595919708086087153251339694801171207746785210522813533332085458609153478484744133014071222029739336542573971895824042888970161171592137277511860811509019050930084814080029909312993389707305714298465944534389449863532367331994350210398421224263828634963893759872620381281816853621689373820885487482502031219782545065259548981183027557849221904850554468342038664192530475370987409884609067655213722271549084334888217046223000280352137463828452636421199067987587916940901824712443407961242749695167821564184908740938375913561131081778028351599619768736607267556695259413878349558193672211420503734734298695238502428255075824533607113089099728454790943554255341254672235998073091903315431817336438066998151459944810279078647898497407256767687331527439260516656108389116833165397253039991732288006480757231294207051863525521810964130770991451791782634382645176511758655186555333865150936155930582292031360962499278942910104195637549893192332520519534287454320560661864085186538942300838014538958917629838476623567086545034299819876698447698210927834644655622940549799167860179984271850134758532864028187443410562652127013372226313868053473674406593869769996294066143989622119738397952668161390084239415384148762791882832012529059792920315615037784597146649323600356243574324598299591429353531818262316080881126804786130639278331224055333167468608991685305408979235978279924385220188161809644586271214250152869242170430976010148012254339963548426413608679346298867471620434770517208486806813381576213842957768418967760768964015253965102109621711520945021430493884324441255562930568045062039193613184836000989120175508519270973184284822075290764864075576395703061505295379133332060539519210204919809063760491283321396562984000331689632961901887493323862528375755504080771190530743697581423141010027091961030573935649711027574026207244320358661781879874783053761742859540591848026317261827324941343924301304125422239663592765699342826301743431438561532307212985679980072727513262027770896259442963280762666986328394025908045833043172876411999863598502227655224914478923874114552054876203286949545407553012539916638608905824076048980606609126478279039365341456912601144632476259942897947285690942219755181895676444782986231938054864056344563024037875804891191149192549818185113611216229104159574954576098881699878423378484778055436014238070881770781188108690308815586664051369796344352869855140351513423928437128311819837414301303073931077642776029321431470342497640062563990337624572944817556648222864293205116852440146308368000961488138616992864637017601896865849732776061369496886268566498836094677237369152484423413681283877911440760347732001036473026358034343509484656651092778260143579554857437008662857634734465448759522169579142488532155476929943985422557979234525520937686919446634531032951738201052090392102140994950003231274405979020540733860889224471519451761717936594293070558094705260943922960145065688927570721757283087556810604873476667180105778575186238426107609018628413510981859710544694127767112158201928131901319101181220110767014059763239515700250071057448117364439634482755892648798779674773467638402063631136963989792158928639671785162339272019555729428162325496377215936429094464752458338908332769656976479559546423823492651853725909403832401147955592272381935745042724220460885404970948849204405492251632151664287604779660024948328208643584848325618833215381022047515492994424653851503966807638908418465753896435675296227098859204800897662535072685422082852195392323389163285895108510374097036206721716998764015297038044427594513548394084476615600538703388392480753287402090183718804763805437532867102084490145132226120199645375507993612942194400084371410176658643789449790829993653682419807572728165462814801905778684174937648608024922804822945673846781849457308499387853575875397899955818927782815418464719700558909288487394035730449996516315608017144338909093886693002948745952652088213126144415798068556244080463897970026289183167312859089256593348793212543341233060329288195839169017273854397941392912990993776016559054615708969924485194995579920650061387808927277406667821536839112816675104899487898290645203226759115586782708929312494855533659709470533658348185688713709156960886643431173887329733598555462651986016054054790701290396147484970462272153051014409510301222710288899444272860136245215079992771779159081794682677148829833186569078188804364579792070863127525155976124337476675701887610126304054647051600293481820982705450440470554619357255513934812974217037199454811875748551373324376300602557372167056175666987861414338369351155137118148568647163028544960544109519123889534563788959427878860508173482473682003312173343365051635771364885095007731500936215980707703138228680375797805562303813578588915432556556712322341525717074147901296498142877651124845929358716151133439303878487211846301819376124347689601589309489011028479784935097645691392895242388354350846380966785923742412555267679393903545056136954507284514250286487629174123785564605691433543534277531198002301103874180328555153425199442928360816118571142997608892656469242371648416398505536469266190150274056313247683726603112758083296589006435387431761289289734733061765013463506256959220579103622396137666559331368969366810282496489350031638987463431390752819667724945352359512559045911382016522108858539430008528253243058157210847654215284933803460881531972418773870685443262860662738153752247565310633746889688404097932224728276257317328860942924124544060332913796102677511899885868271516035325889062739660601953739769902426779092011224795404582783126581279665247602650412869901297064539712523400015419979618867448775733147973962488399155418543034530133442468569729805453146256005290700453625360517401996936789634664366285381999555015967877002457620491359608250319851255589287702575954227590004276218160619823401721415014362324095512959382510032215681543414673703798410766944640259703879422627247835266240668930675092802616368979629493897137663106258333110201728611437045375494236751821408497095534090547144747247317932591336722354954004258287976497913426429464843137622892687863311138785276646111846164080536992481786750839452549427847876410754502901410888979567694467750134909516558508196368651881227128812329629931958367280119970063786147424954868822114288889743612265073159107940261272095015712086556738150819671370857917996500601172283624299462297731965716133857278264827420171323078822848663137338451352606815967353253898612607106622120391658154775860133373278525219171828659749763760090118858112071309095733167758877235791130490784734436438657035538168616167884951745366439206237344892380454862540391444463191578185537306484734320583793470649718559605795529829130988050598139730350713451463590695380842754819517351755504797286530046552506394320941134930459415527320635357494157960337661925171838715653847678586662689817050462211869855194140818931033585128648299351837581680427853166631930044448012026645376756674166560620609539594651300387259227901999379322604216299405797514081811973921445255742558049607393032174293606671168483417978567950093117691023646872540102564211601700733794627508577647280314809388916819694526723661842410105201701290553251686746835840884963714072387413841373219587783801649944311469641214130982720805042987023272917936927350893494529781093113802564483313153478561879356618096172826877858284140300968587089044450190854008853755720629906447656228655324028239420083528876863402026295006338831435565646161046160135734014643935500714886534377532381506598731449205413780167092669782318227476775007053599897107109002501955936803558838042008073999064539388419435312993322269765064633263943179645060447693976272188009025028838012835169714578304765495468332976170824644392526428065645982107928563333280908687987493226400488041293092846474089862998875605947442253122584864805229174861106509783326517490186121872556334067858362067054093137971939458429393305810786400221107583980788702169054778758680978333135909549900009218011028724826282366943875507436650483282438544235144628259903927560826527115141198179407946350944289283826713967874034402798815479547061420322354741650997535333350971375810760601099980749344929947514234806576733075522785547019234578980601424223136099371549809156850314656661881114565161761117818525380286244214461424312485933935810772576405770171886374775551175420852867400718195344024141132932706331128967543979243248007342093128818050987059862795222790545689428043413366545572515447811740350455180020897010351872202445090856020489638401852720698571305994295337764495035751174670556584567525704839072533854685254179094128081414293264732338094577081216235830904029724551957437581202014199334107691998040251637410237265055193227737426418141865511462222602865557658339858089216589149318807089501315886508152281457010615778406821537336448263756960619649177015378426870584066011521063004148644512728564389928865633754338502019887285966535402704608463585199114352865807964147878172810943709093390768731368635396266608979231133108572650280446883529694614062201252883425989303610631012046739979559989706434776908518788066541283254202698604098654434664744881838594011061512747787655838507576293259865460037610818950573228388615506699605349873871718276283086406757408144228030372607639321874743328093134050934657364709802443757621674682149594853320118371396152603320864601595640186915061977941399759456893614142111373751807268572628847309904672507637017686532499137166008544799839547163189166152505437971398475181976707568072145901584072957317672422580797522385500317151858671680958086719108430387681026048479949752430042894524491554235156863184660896824900852476730946081722587164033698241231590593689123945784460709510160997589802276829491688468406023345230121156572646769260821749911774845970888455354838531197160396462434641481914937307659534768669674076065146933346890328386284073145738618664568027528513853738541166914081072554672596526561377525796271273736660097382478033620953326769462101774619548370001582034517584460553112112800070301383280447193689570565644233594845825621352556074361554004584731809999007878912835064782583976237852625698263893828537140005928972159476506398850506381359586260399347913890307485243270905727168770269909356769909193022807380988237850569116642887858193071995949490833472451893014682596002046072454978745193728877013298583075421703110875265596441051195654649534963934053057290526321698480965273546257762690699061113817849069299639102803131534799434884369607122999145950195676114420040889476201036314320108582340892458296890319355731783249726786818013586431010839808757204391201899602228986771280844567485878783929798647404016897036063139478558672607218272839492738474495172436320331895662649619138195124350549802405718531611947465795467438287911226875646505688377471285082585336057976303165543884959153737959837555855910119481356042427872137536075834028395191818266632930371183403256029308123704491649831208414777639826640823137698675591279261762178271069557059028888765170470739068821623687983107074075122368656677391711429962917161567610697622219097334258761037499958094199726789256675626888972299964121175849452331607067842525736728497995641837220722270047616977002622496409331340984948955863889002863155221941227756775885894972732345989507732148302971042007517917146920577592239705815378917699133684535059359452253992076001695997618954408344084728699725135959755813670389109583720014302173991225017361171360595944868106634966700757489695665933639993270260404734276312062656618160189011641697205344524219555960730772243428702644444482806976430923481700353857669352138746572250234315300838388236404185383207895411047818093567063178133711363221096953400680546105318242250144345458100603695168494408329089195939581095259171112613846177745052022913425731410773240930219050278545863721040268008393901319033398717238620465468402886581458387996227112917240182864597889013758117733456311419887498973151570947515563599655064177168601712076400004316608116325589694078518958001809442666869733452308881410004050949061376320929125614813156452014171836632662128341480264024041716137676211903576612681410663169167667346008077745617016678567125770973314520799679523482924490747109091997731171424071427439748602000677809869077634681508579824790899929023258687309467029368064371823402805828798363603983670215787913656762493079880137904600619994119995889669014219471706305710069637191789727390771799857701734554697213365202336091095253893112749027309921454263376413957708734510906204694012711353479994452955821907403316423382065915699020773927492560621337401435252448294829130146700893352447736107159354865217998074763886788868023099002219706207534597253021297002619034594150977071715035356947413006813689012524862140271793963461834774026510545406545419480216438085586637027296594409878073942224467613054552892311669865037740960326195825275759434104064467367496561086406733479961854591596777820253197904893165794644663873761190210174821041327252934835997735025447533650476194935049411660081191871171970271634985774322489602815710609812945130183160055235458622088801672202150975904302692932087918950473363375637889866537689374713725186789989286566730890727718390048724110109496238414956823793238438256616426694456776511983665683589804607184071158713596897417552253614599014855988974276555785358380990346401191095377496201171422079184379492658815254351312026756181905837376933610381297335781308051061996267847682463144853636387493272891522537418404366325598669707810739380109883640044612211398208667781120961777424030693056799051231991361897616036384711697689531931472182159581088859167512986867015203391621564492428338934980519280466051877564686016248059817143844386690547164090304646338158661663384514228601804923749607581523654324002567380748828189927468084977947989935092300059551287339359035575863073994707604272743308379215677107888521162588260479332712779703720287632911177587671853464146999767776183345873631600556912635482719533550572759814197861125381653137943775489098613083378027635138277912128018165528824046075577454394770290762166141520337995117735341677066389564726882981895670009196527071306022713092089604298307460060444810087042682619667336155141601320999708038115533502109132937711356842234746450031186659005093274913997344801279085401086754960595789320264775034681777270539893727869983368628359764452049365584604246472610414144830377944382332722028788625297065161181930657387754039650652224562336625598674330291199949560922805691696947655825629350045836979123331595085059606542843331616620541787572759759376927722262266477768092621742024592320333672645437332663115000350257240778048998790533001271943906207054624578644083930151159393540823932650636164604444979627418379302524210278136698888673178101914197006430726863929897857558099392558845361445288236125123467858767503373770348040840060603441350043298780343405072706251641579641904527658519233667492602118837152416230691801709327399439642213446124757923048898175545208937501891100441358596025835013063568422281181799488932590134922994330381592127584897950648834323602139155508672257256477233270168976811990916586740626962458567228521096612810872299428214432387231721524062491105204623457302019782208589547430751505093763096675962092248263270499214871283486742194805015083720313709795921805574624999144915576217025480715300730344417909680665401547187060964989411539357154259948264330822468551887338656657715397210119667052491619646046405183412680961376835469010650208534129135764447436761465216499355631638517153080820687850270558609798325510369469613920572133880867420486223980042443345646822564341094430140922818520585908328972566080359407730651551739366245605618261167799133473054298788023188980312314715800556740097956814700552427845789752274547978323389738114772706613011570619236511912057380138678122266269106400640766778524729244865244775610002984160226303210520746663641696701039953459160365217440782630808871639728490409449302147232148056856837447531577754295995557592567668873952101597536208988290239505076160225186117257194115769868844579469774949278394174470590103893580957504230233170800348746140026598911664227456486027460913477759448717552065331064146876653981387224113395160676242756297927180335021545232623642320674233840063791142768530710191497780745357229446540311956248699003211307175706340118561564892497689167356301575023133718272959117017302776763705927274452882078774595448823833659115440420321196985096059281885268118371098096973311122866246463535450236142287835724556451080714791321232894991955653880863587303553636834048434027157465787053946558425155772974103141740613160411503942710038268025503881790710638454889371865550313001558431495764661324402243947631976171430076650796022838746660682965018961543533984320718826325456955673479670308080194226450007741230504625225051458208437658082322036879454532699894461617979891893633252210552546245585496368069828466319674705222274935248626109699257009979016044204970337276803685326209263027445886337818253727959296428376546187557770848928417021117804136827192533134481418626916810510984993259748335767060698307063148704061482486317910322419792408023809145773652932562016539944508516900050894822935134524221654816782510754407004893428411253424094049593626601116509057838933103096282607375117431458829017547492300028990981077936091205621848900666769169043354101118911948997650048957132457482217032144792813520594075554723778874385897974439445880909265986485127977486697977909894316508289263753839062983737890015976937493512574325540848094707649269630243956030082786205061752476489481602350932585791001843734281503513938350974361133019602592589923133285391667251474344931805170504781443567073419431938680922140336015261368605613146721977488561220486348689437759232506612532031782973758774267709996825193349002730969896789870322606485645808514460100821030780143805266245578049238612859807195010849888245011329205817593608731348980203165827689441109210104698130700633261674961610297703769051039294857182397357989911785086757058019556540901007032427619102418752007010988065222210809310878896231919351098315519273832029345881556320279526248467276053939899145053965973396425375842632329171155015750869520443208262197969821555275761812150131430205570493270543721508755480114954142859495785556109733043670171578411811939635585677047458260087487924290524273278266840860431866977598803222252619821421738175546723093514772909613092797979961398838680413064938319023359029749036428027226752251687003894325188292887458877441407604786386348996171556465102377876533137652641307023258217161508751490209132759685685911586636413051776438232259193702222859251969889836575660151896779392597646844545546251596559908719220390525039499100838888150639200172531449306606863673393276721874297357515417005853398726059124774277332874516056051556899109396515448158282843988909851919182994729715520933701450843710929759307948771053234793578757283086250269818883518947978227957981021030073577554467727790257547922722779544761303288007915030776280705277484147311769775301703096567768577239585808176287594810003397427871497361736334121576352704532121443470731992869301410934517127132998366301802223055078305983300796841680815839320951413487857419193498422548827303232483183816535335885470195638248049931070535315274410991118888713848968081932972934465620075513470721397918186688985988280889116542523928066392385394685578302555717864507194116197483757287480667841416252413922724949149003736414322962818515643811128646614130354866045285430959475917787047061891225899628877116430282902335850855793790368686565165930903559783949079807218124422558417672756024870468846126895923375525346341290018025094031611722482555001885188265860220050111935288311649657276697221515167745745298164211759194809487969246207592939958145117314926958646009031493555554445986147317750327778314789637518957651708703750286950283751713713487770153108177326401833436611838056149117910427307981601663711423892846836500883106889635291830388476144645374486201845173263587281676354144559376955919969237499322952827776434114534133550890886334409552992233751672697639721944937086208506900205904394679786681493175812698334619329590903364516970741663988191299117948452297646752828428999000067945242151054319789463193304076863173100003758581861202330519790409340222907128496356658976512346031176576450642539160989281798962059647080033405292256232426309501556444360211183202945650233773089432976892234470224166056189521545789078255292820276956283665711166505968526746727864298853248059023869458280743848420356959789893874063724063598767430335064435448185063339440543045730917126983075693916306451725816750150865243576077855659407541684781956557925200136616700953974025672836911569892188680866510277400630464346014093937383514559652075763109343452379751891019585669987617728207987838749207962952492468308045520045631954345481990378121880580622675235120970834648286828939395722917363959604705614910119743588435201061332269686726309815956144277583629649277657610143501344001889291551506071764808558483393913693940579071934907810683909418372798878229035850823329526699509262058086363329749319233525200198345006755792332692385072158401931498912483497351571884753924512974145887788530675579241559262714056438865094413126182655711485531390303869347024170774638494622321259274633339019593796872250620606873988674928706925578238357980021074319025127188115080826989724500061933456186344857016683304861007516653577152624673637587660775052917832296209311340552464181488934251489659276110491587560516707578711878965312004884328922255552206701556886198439079733609406388626494695696487431681396783000349737766189465413153029112717169925418954231427154249484865511141508605985618268679606593277092293947426657857125790933219226258717473522004439883502328638331486518780482780773446831224356218601403471424617000530904235427128082460278979358548933226007374559249303667727182913037966076966635754383777970878919194403075239764449133314434509537754704336598730411299270323073113070130531845440225351992798741438309861740307380865910145956071143400031580049728182860460152521820189518588106832791686056934821372366328229543935418076120258067083532779684273325673771781410130392589710538182736351232443316863698404488407518684583364855808235915518282657602741333942640826912308903982712328247670232943659166113598067615382127043097916643286624426025047515157228807055732947297908019107896622921562601357231495592621803107714058799811434711112374786550376167167200993706356304123511538170934944371235097120590520193185891022085546568082488526665461829086503677779848031227218946531759066014435451067556295775348335908534184668304153962694180494149173903659363560972664850529117622669463593448939223768127865326651889801601028616806012667885770006659778759459832192841753846290060583992035417921104520619115264068787796064558312512013822795247169240733401783033881165515549389474547048632742129802583329836508684206602658330981128539747316961976385046965212611139405776411037843418816993143474970632571528182920296174254891433435245483246374243303071690856467706311034724919051448445575863361869343570836660957878903357270962415443749253129056841145084204917930257010647939069619038418354625666947531290317770732230168274820189765285524537452078884443623790521796481639015318017249249619245142015272159226906551021366478022428834617564804902268031732706363601122472873441336780488301402910840679543384858367255419091839570058523096423853961064225323577484914141003815845445757040251770008412365052072542919914048192479187851437188165298995864491163774112026591421311288562918822650067739032965446010657558046467985582214289178556655008408296627246303287551310462816253997976642687749451729951276985168737086835087383248865362533520335041693866260752590775972808465101318047481932279063775220328841568970255084416383162484338125203828154609803450785874180894106406667029787206690483655768504861785575454034537071565450793077806194022641512571397518380725821202306239890434698519005784202219304377388496240150299261393772081694611913081315008170389005609248292548035897205827726714717675987451579534992252175439536209695958985369805042454158841925300422042834424050222449397245707052637948544262070784457608490548389937729251408120767082028730888984302081504205872507654911572815353818976442666208106901742168127543286650672592586213643315473997424223673082436762188567610061815039837139219309520606109921581561214565484168756084940800033081231181807216338300837103301714734642869422891533001538899094211081342288033028970564505969267279632444461188692270803873100790660928926648047501465325163944272599277300424518861048856029340924039042868796337287709946046911582828246343873705427264303309618223852922615508966585399089216524361737186937826002121801044779486647466922164778442334742386103318962644003756056751043412874049363473573261156334446599647260423396058193494097952260120590708646704320148981914851530192990486049213565427212531298224286800032051355031815458937557375802578570943137007576427445352016955595485342581245870408042437302490615820642687982771639123720910209623352556822917430881508832484470016772648847398285609942181332475042937039745054978324949300905288049901581982940956076634596324334957475626562287913192350894170162544898198818732105526841653578070486461434887154035522426540892912763393983563872640951982982220044300648066354427952806929708837969702823072650263413597748667354652934819047420597512894609152622180214402363033174522463892598504514591316746103556176657025898064781787171902242004577381294265838915001076354045054097591763311692271232754003488495809858279350849566106603823920097932006874294558463301830148863248669139187294991228342596013263398650727661006614498380105877727606231091699709941827283749103317410598947313322224597921232927786885112256966214023345693086565483571994784482476574341383943360519633358253281335966983158980809901326815115452307513516690270276503065043950865132150958166613087412801502869289293640293312909629938286762804609840727593061493067590874311929996268749091027053267970356564855566198652513785736596848123985312857070181705679806866658701447964655549254454381850206583654343999400511783510791462124566180769881862930731994273957774090576475766283399667529774339008449717179462203534944051420609180135483525660104438285574020875976019484409909315878464571103875481888921746000717067515492148241955167677187867901216751726409773235785200227973171665055352156958401247023955215127253017292497172052212042558629066811253939597549108286525692676431190782217948692513515284839304533427295631482187324754544409205452274618383351812006830708820757686417687966260403362853137052909279653764072214427288357301865978836420611055452468189002551949346749941466662471622856348786866620369691943313544328599204907660312039506504228106080558065404614424488470384254442726432089861094053942766451363917826686577639872024220084634811997085438975190511344289978728392312362795896784931716834748064083634459010761411925505469562300972606900231047946660315587530509009894300790677481230963492481484871896477884740938902925323616827888416102630751483043032393409978208673161771127977142189392582953369973628887395829914827849610882132217923958017743029664146002562223104027176253559219954681641839727465845512550001359570158259525573558313700211280158094407547518512562620551079913500533821276404377338589190495162140891750387292786610042749520496548336625983198050509804561839529896823486838462266979099457081295168508749813276005876805125006342330117093273871053761863959007094496573281108121015558896089523467895068617991389815611355912544530283663548831735474288324974096159028279992583907830868636651598404076753615601961621264657011303535446546712033494162536061438407199688265106459213389521649678224308875626759821798610347569300216465925595294432647707674717438999778046280407725902681543242433636247041105111350259919489778962086903487038982202128563028094930155670911654759089937147836728876334155927755644445422339578597497017906151759110812748498279117846877702393855523514095321606433652748146370236490622509593800777692474591348581212715911927053559254932645015657471479045606689213520991838864737853622435119890865459058514403369197367844672851584966125401512353700442426455786183135474273122872515737296596181964445399684201357046519299978329118495804227242913927941662255698899932777628462766814858285890986935371539902224245195337615488318310094551462396167180087534951150101503905005759002832919147340763420345841486411530611920229428082727849330729490052024249729312560220483831966119194760949653174177996611938730485847765067507925510275153567970465379736238272442569103181422633667541786711909512470514710562586573823996043043180624440877072469327136794264160682351122672819227993538591757363551735911008505121918437508783067781238883954366758004849005291143314530850842718098789523380044953856805729226292968818888529169638184144884455253507057810277342926392562864445728892976407780711971601953379804235751946284741850010828219761971211358216993370619628351259872262721544645481078344132576333415314608574064053178092947099384596664533236612167157669376425593791908760066590627095622422266672827966427845491515614539141639353603942583469972803805377999176995508352481356338045248285107961724616973895197492394364144772888772138589754844818238506359722466869288428152750436746419068485090919940493898148513844043695117280484821512492726153409940768223556795990305832518827635834920729228179485339777263776108298373748404949177745847565703831274117554335472303714070836520833939075390735716126346240055726007402695474470395019873321224130717304330338996934486904664076759788509784072619668542482764795552081484493648713911561879264165214247228893522270645250683764230092712173012143706605763462893791480765810171955222700477454969245425954329873566791458783981112257366061570380746874638761018106802192414881071012422966358520621429717284592212017452327437072884332894321915418940530043907467461700523212520758753294346481422840514945324533482996941456843867174837491813115044016476870844438472027527640318209273659451474130498212339274845719430365223941685522373934158370929593526939187645379993109481456932695913359798644189749164207655285127568802239202772739719050388897230264076921199752506859127126063587702770490642058884411668606631735145653682678133227372561959205675153469047383723000451280744292335510813676517033572967888272716697047663980644185124071749033772264300471029698166518683566814462684439809270550417919545280058114929999407565438138993189780990586862480029334787171530016911324273839551859343080380421855073252430470904287944333092249914501416475211004120881687572109714574427381855887461935945013393977259839670158409755944885083530230730089896343880772992522338733891171094570586616890565124311781883602818630326830259402885200069476093916571377012571083453930760698271953202709363150338801307131226177136992789321857993687205550642248196294662505285877852287475081586951705856448415121200155678731193879742324035480601947708302313142879768735033363773952428393287218555688134099659888917909425724166003062083989087865283508609685527690300659087566987783838792209020725081740328165546198545195458035154723885752964695186416995737572872288559287605242474754861871640374086261782911007878067848973473087669101060799551625833598403777613099487168353689001772779535048404490426252658705875372999509910006068774988005734788825226272650994657603797461788386226066235544418493607827115287172852418275088682574704034442265752620039658297472553234295091034350293354427378313770734109068117928694772820769646923517861959881279514734015857339553643211200722775283639337180011130275234151196981679440276876371986430931384556464270423014975664970935296249865602102799859852440744086110198052030105786696073908452371889312186114882522871413591760686334386000053699850195509882622076496495515457646873937488091659781934013004098891156885505399024180906279578153925627321835436086434916472612328725293714183376676927261657043365773463058155411591500147617035404240373844365109112211277718017544364761107074454190351932796511211286049688197551500933351225392110050358679996456691646330891651294341868252807646551393570789085261431345073691595513367642213133852255813811710556334053398902852864471085871639905849544984228400562079048097281846719947124055954694262715806778928281369361198950631045283275970565205763792397855563127231222439354806128342646998452989942079392651291883187155248893670582136156205470869826509635253952693416211308694421179144727066505942740921527920285061464901863301608453257302882443331537083630620491800068841767845643158874609949246345931478361028479331851841254412208873379348716892889487307903875743684022451627591726864863411487554116910016377894209379664085065560792560187097362684181332512129941928726408964033183674123085832603816782369728673160162664033386283423175169151242055377058618889447343023537409069175791768168508787305168736155893728802251264719223537882103526781279903723297623552520946017118073667977175680188859612056684434178012232812184241052574384011768865458750540015779239867853687927043619746495579729324449772304120522532974034964953013078922498629303946913055246940935263624029676848724088922025975055600062941325550970929705262762708096628201866981426554395337161242527327816317686093580617230255318204341944417633202066051666811513942607936032343128015726454258535688754273862624563162983209807859139985684610198554520888163178398729650275741289790621095979565547180569790247707156242779466003084939855786494935087336021196076378446504113843442140798717049019608876256836599478910561277601930361625113328086789456213421355595865543211280499907917578359719447616684428325051703996819101408183577482687624479427341108061619465265420987652304137419072431298047894467537533443064186954994825740870879365891864941652286479525363354822999663181920491952395480399602345415793320584262415760783915717824502494617632043943505480858110823902062368135387394580673508717673148158237098323632404161973877997502345601517342989805654905370740013836761462308474472302867014092600470457189675000365979112217793418200725203240775430786548640643921673935121347817745860022033709307117235214106012126205026863587266436396732473701229668609123342232328124461448670587978298180810694168783578267656305458448538523526014147104189702455983267924030940992424474790202628662277951276327579298724291508870197436494812946965264444393855552452063465605556089779419795559513104395826405407799737646105711976232928627351137712850290015485501826820770925790116673919276706458238886214910434858747827798472068465240692126581885710517792715448480082102361301146810075282875350607094306158283941836342611324300503490736002206725658524318126499771138138104886058582469177701434914330403516694401527426828767865897568876994615777113857627762081916941603498693300277024759621824238288729886292943254620212367156537599707735979979218480652874593486442853818906352610474417763610427245161001039705997991368315191335991226554973992995999119662528368811605998435000700037719968592927415494325736024316833322685081341129775525289448981500850762792957863124033103603719483648919059568469078998209487958300246999474886544308798093453009265303184367027453252193608939851640066118181288687226666422731423209928781811431369202583019679013001911224076209681592926112900819972082767523676126821026331674080614256308001248704874941469225498678759874461611223427606399504453803248921092856268750323235315682476061322487437007111237574773508128284261051835195047190599120817825502676375854216993901831240424165193442532562250286055955523354485155420134929256097128143622117606258424138501366746928575835098622534828909506553634048636570267190609924908548552383964166655925536416728780639935932245317904736257961495398452025315773017491945614851809801219527993587303232286799547217427625523982363962680288391782019176551723226080543586582014706248940579036284028368971275989982994982149244094301134046902451643598376936806271016627659225177303096047253467351572843486375337037747571173852542377155355676362653239168336993720905690366335521786538747146874895857874985745435158985699674165394572225780462765768361519190290293126622216844428850172884058504671888741110587140077840760221256212315599085966959849661695476953281050127494470692858465188417031120963184306066964990473010799427133890209182475479508003768927085413935916093579504739426255925330970834544314941966077695662751555232524247573272693645365871905609536453373377504824211900179778916742243388165484972998034219254268335875802302091093567375713657619052809580644290801613828822044301663262501947255864972964211821603792854296897485180979366349475211134181342693527422831070272359731761836906028921830065110046537482490168267146705926968306985464672870359362251489249732226675194937506737757720185318890251782749133232097782249936213855533853961411329803178885843880675215199202920918702769535783894448056243535965390816162071807773366105616768848137968985376576262173276329101017133036470021818009278929276344636015549890690006605891175648004287002037839466396787825641248749177275912041403177417417589158218097523419437400594013493279717217527289855267736856497263109038672647995425757421419023175476540018981345958263654114627648890896976878170353251954006786095844074930096417464154433402629590720510914068888734727896221705853347839842990155041802404955271227170406864790524965006907892311547936301215589078916113687377481470863106360657106387320982080246550085555970678360299060143881194425339422871808849281475223248828053490026074629403529922561317407372137532104489307667366706683359125118818864823954247579416688067806001137351360666235126674052193933613191213788612124650969514524903358291732291765682425487456910559935194430113985211296420011220851188494567038929764067485504987783805971304525438474934278742969700142828714094695490787711449663900648506251002558867170531181533428112323213984594308593604791681441798832190083788268161843386216102102840094234156984190926209381107152227412457324246368191619571027150225058129622945730099664572118090273439750954542828037817082624458463427504681196677797286851073991238621994615893499138509551004218360769167469341466809840761317014103664717327584136845486629645113852900357496198074817187287704907272146863133045678299223038978893939683655678861881831818672442673764235998410029818103011718583486480516935696653511090406366133815303817515008106741358966628379711715505158247561405399185258800272145790478668865229999751566172194313658391764885765725684108859838288888899371681669532951200010490225442617434530492119639721163275057526071641984422572734556008424483487034389995781902866025281993008011641090096508803399693900423993055420699175637398809349792825923227438326768587263238585462316716118040677373411226635513518154251850155732205056787965755315189689394154493152579073295984032543930276441374472654945639466659737432950921562381022778655497126824372712377583922960783078018551230791653440217824333874357565039493507375613732707808576655976293051878142050665006359851816142746834951036296116897182077214082804209915282677052382903194483257427426260235523554108916803940097538073088565850193376564869842867084993031137177212119838525075902059176376883538497998447114155448761927890208055798762029414749078733493869074557020422620910904593949783867281674491502559496467193569908388926159239377569704392785394936366648681839996830111262579428176820541713654160315497284834287057902609113097865684850272605517301056618210352838338160619988032101272550251437737516945535036893935533198997063826241184228076125273569668190800416132533371782353006473796292067343358369294092695869164219230179284895050172493078025406101277203407913317317311383485845677891277990891223839136886995220614374123617450058700137236815522321171744216496992803242137730389106698858973311775231085275143285172168913762851687599764793030978661747165308653073621879955390764446564739317937532331272801745040431606948865796940842712905729020441420868052193052563398860914489942060492712228624557488536509207404954862665116790909816867989356910754903665387927416758357271968134824494625142959931100915486670105702435034698271221362342121894241278395799393511219750878418698834002130472550408212316740948511432230109886935862688421233384095728737177744865048240336078843861124297909395194456212099569632733260037189077445350797793362655838133067453205965405281536469292931275780740149903411812743787743674958562101557154928033917775235084623712238731608304554568860686000401572624891006880308525680841542026439116495592053764239703217194215025340039613037289480439276979833906850701983011911829803453189345956022442313331218585038682960158667691797553451421041142612331085805633770289347747015654017012372562697329580171833878492322295483788426522907109820913921792564509219075377274735153394256844943874962080027295717140512828724914340081968257808061705712863091963949799778393229494770640275867382120980711616623814871171018409983357415958473024581108968124774753473845150494662539383754276294893499491079770058945548622122860026596487174740122153771273544178275779489060886565290970185906998067734124687914079232661377780134121418278928261430763471794310467560321614591060749080479612212235330731608920699156644602385007343314020695339159234771048219966497316752420029701722778318153379828257497420784546769334419638184023244323460435217628172084966406614785858607915127806256304567312593914977937127578567109801759278875078238506182284939507560434750178282894768392849128250071385372403633341119293020241198010441174275475328829348242102107240779346471843417911978665712752681069076287496588568914904251074255060300547974582299564524046121145151509367477604286649672717307841649645092333130823258448549823845429797697825280958308225530921144493449785498944462986901293826799916812372526977695174441881317259629402172807275651982317176276353669659743876512277542412463445367713697601257852101190472660845423400559169173417499156028165633910220736317270975832032269823869640184779264503651343586697525873119185373708887316410626848230177267669452542857910133166079866913041086917855311623498559823354774211561530543501057667948503493183006005651109740851785017909553524289887680118280451637681871421595172270538817040863374263734352998908881824676863281615972806182327818946303810698287156007671354024493587289090124164632205062868404178801552183229517368813124634806203818907424219011647679481636535699998354505464971595691844727826480125309121563410334096980969913161639906440573245508964700166020308072725878480993244132149566266079450691226013765639858044691883068270824119088774406368254780048270176121139365949971127835774099634519385758611098963611502002678039843378470804715851570106941271866317831060485358970080807637425660110166952052067901479313089626675039186633190631604468655200710121171052684557712746592525975457690875599375790084390275466629046961360103256163664021452616970404893923272757947727497040586696566699531776675957620117904196112810064736432612300641776492223096150940830575599951925981113250175527314287282582423654168460158705305789428786446659874693756454290216826692511329293962675157888494769783959670760677263157595594866338536900202438589009879590252099592466505961563290892717170390159401565504633133120512927432165819079040164994358406867449684190068638087581046749571031255520355918960104240856705810478672360097845139836901170956306679694324946816084901642409691759938144393415959075813320821367668536349458936724995514768516707678900632572402851856795571697906336720333087534464195465651320896100178419442464855085773047882932751453914517262635886703430794183985753661131358595517481480436530334297454113695194523016252441649471614590460552134693061936227778284411351351769944506497883653047271014700504418248942415390434510419601059742578777673919377454049176650462459187525175102387613130245998425199514517140980086020938361536064186664690885043507025676307187795677145263284921943402131183601126421180443292568691058499156743709252981993641091659767468773862425592037016176362571056089198963892518829762492477944085531629976886079769670914120772299554982968560307982147383860722845205893876267275128080720228171505704504715963065714058505618729721533136353011195232668672266325221887416267885966153664764197613347190616809943902647768273754132690928992717999585629643800023871214359524725990767635903951991434701863034358828518529971962102599393912192711169269422416223385851599926110933998934431001994830299244017351659546957045765819712826901141752433346660564015305638152209963692659702082768094040701861485980944764098437068936449986606576902775996860801136521773993212118664850077322495337892463663324051371277947861290301075771015774789176788653713025108131914264622425402261965553219859334461709649280312729396879118851177443233532479103484998339828748814639137197675251912718087989534411015178969314239165822590733963790523014227018089691749583876253851217480488166105732378053629948597875171879441302097714034106383092139201389216259351155046778744120922785682781476969389514382365453561789297334506568097217664260250290999160635377620071874750735319823221650470949346426531785302852981673330127881035365878581534980852053385073381837077211319352324732294594836382450370179311483925584888406678938347533159939833067436386444561728511873253490867998014933863897408009924987676468397663870427869215771108997838325328036655989851457707081179161057307111066693455002625773990472866350440773446131581502282928182320519114566884145208721585511503359932350703911099666854806450604635073318524062927603083064077948556427663370892134111565111942924646134915237507085725185215314552299160074102752909547723239091752349301719215383628488200445853170778169308783980520494334832602855858602328562566509025013740957376362821742716587424650139605514536722534631868201150978515264107706439325545400769690671857372839011233727501457514303445386773873529267445854261101969599873965096844434298657012747448753088560454404077614225079070082131302887552608922727178259153339428631043031198998730466311369635139606810332530679694378227069297279057840968565284854380455918721482958145325862817283674238570593382620435961600584436700548634122597728685162865553215767401456857839139989733898440479822599854442408827341313653826149922344914900621102283107871055964734989446297144847262701820290293207505805308949941738988115650309363884040772901794082119535767470566442632383853777813061224638171647659912080506072591798449227053580455809875608118511463614022748545590619798914441081531090971709589863015094738338216148036200015716626493159895363478427093850458398595722257576783611320907797376249894621783045079523162685235939853380986744956854094496842287089663599695564286710749732431169292960831471601795095835064445941154867518276608968647418616657484296001792239521077700803526273622738426698058505398548732921260831957049274843037103999500191429595649962858299359817553822923275263156224509450158185747094751124567841770010695548497376395272383910244139003898131187076923409272939098744319413509517471850412723052562367754333564344669543921940409106020083528795269638630926260807219624955397607422396610222876346106934633687056025818563130649847345083168407651384170238330946619278594191900849346427878416337315247888445208899006453481782302662727046996925176666043095254022126189204021929793792190344310776102423161544755092579589364146760194032562439479272477031656163699733157729324971673781860387196104136130113818562435326363639560138897552728269557856615404881948811678728962611156562034619423733507527899651784667395357641553028691040871982491850212330136754506883522273567596747427969893357343315988071009537558352696747992343074327894617133395883721355110723035893093229206365030989515837950371035508030107979757635869714230464290968910980384479880711937103475890761038397564878802370860582276034993468182720286177559436600058603094504741897320921070688826782041977742920260463869240320542083231174010224316356431687172631853058208909068505914740562684540524094305889333320975162898257163880158120362841137638477734773564048487000596773200246683898324779115442521569191558870773047524721303815819382895696981470175983278467215923091807177835241601757785293713091940534094682181428125790333235255337371386994396320907232374961771044683145734409673142251407492241619049629701761648177912868020608355137937021050809962872253210266378065307148850550966170477755093754132659673913653894441274845472945042646818480782960881950456806303220120316914678954503802234107186720561417077043224927833261211400927826792103246385020100707560214370826842734059594360636638465500142172878703247958805100051576317140243299858383008185548248140434301418202517311151566111017384170603742054680485754628563540635593727563122282392245604895547282121941710105318269772244249547534377238751977909476635885849246929165702052952893855870194368269135285048678708287115993499934990263752447995263453057674610666229906866394350256528074851959423462223412204452358479251165071908885988259648794797327525724715560369321429325563556295960734795563792698401826833950297146364830119649730289359132773017608203185451894395002787228373693088061561752711029049369420793535559237103350447932598232045972074262293056741941398931556089609378300160551020758825037822837301523996956371161895107018648719608944005675090800223591472311566089479605570733895288574769237660913284566001327807187421349377075504262034446333292855147324266941278986019181406763859375121763744340126018354126260281129357309632199670500191661397172140429058937704435644092951816405070764655174360523536408281232807315351184472285973873418439764053930025143883221386462699923403966177418481627083610073227616626288505020602756964345315806738669452244395809536579917197829683777918744772420102610651197881119281414419985551256928059891152597463756199440008890096429138790451577662990116727224642068589625707194148926035856926075515660847565241838925161577110080558583694804966427697447402676893237790231360242700273265830411247205879690873226246314087062622464495452940938383251805596017418986214816747974137766727126328548778374017046694418800212829269709146977625807934102233636775315968819209970939420758668693627386046251211559305299202576211349455932545403734376768295615721498476813908142274480558340647926347381304638177184240451945472223127725677288406162137560232889541922011572192984514858864898554587144768457076961724426292854075097045816986409798425323290464456978725137691020750329370378881802476415450025748376131423449472873549983063805917323684523063458716353797587972789117242990996161121779958356040811772862265565506651703589369534278388422546518927423328081323598115543793077923681712448579567176788992791953867002131107813955802418450138022948646473810267881697095615823062595925912055760138616036870034726102035746137856141565166592516467111396564051601151451666357033450424033062863915363734219643989212957810142596274598240561825157478853505630563200299951300575987167537754612845194408022498689189981352828138145408979134430434592722383244108738991860169937902968639944960527946776617636978461994829728651895652888915873721469324972796309179661956888590536836883996203997963278024971593586926506053751780413503060345689810123345570571709492400482720983936877636985704617898065452678018423251212321360359173474643254559629714774149057730348809492312090533740672363510454484279461978053621138390498101504087665115371454133369200883595417060832379234324160306116109511261170275318082200090826144467045679476816086840912724789425172587319889791139896937151568819256146939613964345492986343956198576526834137837061016844265413359791134274348890337114744490088711643806996948666079589464654691902950608763818390003217101828838859391799256797085324263196397165746736240897208147631895824942550539559633307016150413503407546646349307899075818950970890543417639244006255384209559573223965360552793437684634768999045885321243829865466341909126375172731807070083735531171094644251090583580357606751435663559697932659099261401372847688573600000663889801840797990150237893437630133268208737171149127741966340632312651347308688237493204195615004346182905594887034165791604043641130703804092600853757027002004865565914942487426973284138049949051809539118473549020298407199208302326314999250556104823077549145992179510719182094715105048894151227702212129856204624500486429541427777813848412038861183626915621824918873336875203818502098487117243557332780581323465961621629896528042466602178563372700247760306958239497798621062083741875179808423046585573876536212057960887093306381486127487773502483035073258183674062148735216208199884018230589702520459160218452650591418978238664468781579914688569823610984237367123634526394008098621468090809508804880147548205035059693396514149914091119671713345028367870313837291736345794551247416133534887756270207953333983110214673343275224004583096696508566605892511105820934912358019969359358349163646056661161972937791294858440503667659488824949544091562712679346545420385699701906996520649327639789051407573540151303116732588585649372582485041950754532721750938491325263249732545564390903020097713505814907962409238226573247189639254262040877230926787367963813913585816551548486052999932805077558684799208125688545059048759631290404873056037936851283247987281579213329233430307000565912195660834493701649287798003896266367749987735564583675522255131407100720154619736072590913134393053912410394629431465628648267655993975849247311649190461738474937053770781832756204463448142688492092714474956750118338915333425238437192514455347396079630331284909423722667466435239465558879438120923910088713990970285401181725210557489094712843391237366552748745858232265300644081136413743541800493113398212979064607197052576473909628398961600015757672354098201626773675207572510821632493564120150145043995561099615907193520646766675855069987183994448383685209347272182947358070173498832536081747741565914008344091326756199459282112682362906004971280544445479176910945559231831610537337954483733721901310942086601717334732279322105327340991880301776667185419865538922424206964595483544567874528021429054082531415349648850386822600186755147959527181415829182987184164799354912074759743078247879806343789286715151800902208827602386632118189064206794774609214961203408312030013624140632141949472658453977364355377529014149695659895739994119454574778840971133402576436514822603030680333416069484002527322335355923327922588328783411363284874695440734772756814784177913208483422476426817968967032186226025634190209645092960351828515195642120202643921981600608483823788858580697259904522573727709989899170165784172174116425334487234100175826509573728159623472434951806166993331090727262189620749307310044053794007972794713440027839291813011162211672915995488231673507497224217388569979966320530825253416396484532734008614182077187683609308688201056573576795845206034887631392788473851263467246166297470946803312829754933699382887652374871752879324920128885699794951530067994077535958192970082421646793784741118449040049873018157841990004828782241547970618237073846627354996131791634980709343320439880707275689532665276920686877118212318667650073578893749558233528724952930613938060185907994942528180490918279519783435765158867256572406025068419137555431545171363154228052654770988320139366731070129936711032839746626565954499069415158231205211238202400411114918506290074847650402216421028302114080684667318166673889213257209220203567209463157355854011087268761436385394146041567209983727997020136282714329730997745024698394878505574168933950535620093842299916482387452346539144817063642650869855172517239812529835030457732345275976227405490508852884877955141514891709465217749535646844186996951631552038178652329648605822934145424559188258505467523221245106621646573766330426697369555154193387736847933832909193727200649993767512874069786977355443404783304130198381170528121045650285179678202862211755060838408340808215816239261108131565494697250046217270512061460532612610347816875538793120418085746615079556239415624001163905410234591048515392997857564006504995430761559217165920079733234829646285988421415901301060291289124529601414779694852680003448449251303082622083388572520311549101090019142215577605453092421620055235757491310041531427448888030770174917391763065578566092708444760222527949153170439755366530360542941281602453356843899821373017160949388940921662734334459646204455850735161069653112876206555666148344375210227855860669869073888597855901369494996806695648379499026433874070326403502497429576646749044690857199395978836178603928885004742493333031830794208865994864652776131982548200009192228239372175661049189183600035261783000094233900800278101621573393440655395912210725712815360886320541188476449136427690684854037378066881062376898707267130409369031924993616881430402783660265710448653861634534437561080539107665998976095643986029370211123828316634045209654561835789518679556252464098685789081347524972878149339776012746498298332293799456433086633980240333191396760837828041480879882588835805912209857291296954605479724871900310581683615429012331926020693122684506853233691026876424255697875348952505875052232944212332683320477579563105420289065692405855202357068333908881233451737380900356892594420144361914126742870952943370913662598494634453794929426405935226139517609553727017978175195297269718643464321637185646524306978862924319777870934416337492187050659083189426397271045045154026563169553133319681276487602602288398861133689601875224043330046680078058913089113724079666693406052019976234173781538841002528452558988306506426769704375113380495512012228112663352013235980708489332328197101806686486990588973471992402180853874007363085057899393393697568610613900210911916217601283615759271082148761548503551723563094912187407836296493829780453044828217796040445426674127222789324642804347774320633151730688212980302598581809920105529833154250661225640898059068320811658134912029029595586251732856316442795608619682055832831196314017334057385278094523723839075209577285622213527723844397954879260103540826008221753381129879813861725931016786855318096100901454600782154027862666278237883090183645902746837515921403586947439949937282861345246079462903488182839550956838127814068226931563622932044654743816778954820365425039846465040560205713842064751244819595552110728686315835444294515828094257761148320861560962027224935167603018065858041060226264276066473206159744137664018079847224646680238784654083927884330634640116036762078875305162196038588044483194991479971250739802682776628446063962109673574097802532154395769724328758931057799549502093742679009039543840551343984472806844253850927596359664827674078147649646588479442428603747186365229139222507073241548881121464323797467954539142074649239297727559706782828884395351449813316197438024714421365030799607602306306677142781361334039853466570444971553474774744558417724365139595104713132345542141485369002381999820813328667011137214341140798759673825242667012608575697122912435380172609000637706463482629012656081432669741764418643542691805349982199611109182975170586721105858139064391559838290669972307618566423792297109961131197066004907887647385120677492106491164470753706924700003611159335469042041605081436571894507898006304685516113762642554273908628311754512644540409245229450186570567880591249480243624876741378645748550423945751344750838981288937554172212577688779148411556398459956443195549486283872085254239947002125094901755106561822632689685017106288755024991309408726377014208937334243020353878878740504057778359709187115956561900114341399699788851078164779251674466074910418980122281465033515278966928572649054624198318565472440807683757269360383939572789573319230109019074102962454406646354374598440046289770539432919971084555476334402535389721234002083654106033005978839097761290729446555590976406870166987875935928167978501050072770730785520140215230582081749269127275090232813850946123875239284633018192928243630775227237828348560427354128143936459769975083649918969306644305943977266703242736392292917585144531540233660333866147663641115108724455095108499270039278555009067124007287050161266629668583244690552121394557436391172543122008449593504006415699572951888483702912717600516696897167931003428718209942493777665406380347582696902769900002783635020229220477438304823749761224406321645257738347797535611487061690710408144394954398548954297795555876740626473598041853529504406179066498385871063953983806619095896877525005015750969187930066200336197465129316807687862506427968989171245144949631600743398504119884802252637078249278357018540897421373216884819282553503418558068864189987228044146538118050795412866552139631682463942126907288144014617958337923684863584351944289698889121403481274897803394633658417726482088271320602693611972796756233827452924415960221504263323171443198834832445961949597205626153910854506046295376413754829543027007670091060280923820911509234778614646574325240824855063130241206181853414667754961214294952753355107165179981684929715637443714895954038840759005224264839904014949713223391170072990034736145083556991198086493030341134326161659006672378984546186011602683593229339261327423655600389260273547246487046080376221023614706160118681570207016791583484430358905372464423110354680366874258533835090261859365309000306069693051420952744359255415460021426756194902448310163190144529652146261215123485744116673661683670691372119255586740414517965177721847028592640333366532870067404229549813273276446155244949797930077930294986780101179179507445488024267722337799259794598665998044227199968674772285861707246752529561703963904307849647516116411769531841241576502098456676649834540488171594354496450052034313015967095628121344642810494013462715516499927225169580700756626135484208534763091438817206604109870876015163819366052355020902790084728095855761210314863986173456167563539889827641034292952381444990655369951619447432844471304928821986685649328612787379227287347021730659740706659177249267878661660632145617666300071019110522893114925498406930104221267335355378978027313708977126200017640255816791247804361599007541228901560944669083782940367833348244110570008031605910919009944271714180335665632962089720645291698265294465858105956114619801140259003438949773262030478076666419997632299738541392063014325948965098712898822080762497634826541989239039000375052751418569937685767584839948353282308082032970079069763532199340174133344288737565972091628478809029719806109159467628365190129739223116008094371056902123490468194644517515928340329225151826825077513739788614196077057321356084814996728734289993709697585900488436913947389131124082653805166621152300070717221973972211767875193083961979033229145239987680622362769947748705471825803075330858491057074582105693723506403888313965635716747943777601254043322805605673746590897842748759928583727355155768564860206284084787148244438785302985189957632084345362185201444480966724707940001483856247743772468326189562075039921393681939929324145366932933831940578826847411131399218910327548594119023953094187247059786433983835014640239041572450213408516999276214750309480197664606807423864910459995295573251946843110226564468116806932471372309679454017495346324646206415625325599593722488260951782452655745461521009562716599110588896918599559654406540010993907925421127266628156064155606444559664800531872706903238345634826381487550896762234345527317298403101322549814439406808104802829482497880274966413852801436365057339552038962429671669334527358272623435517046136140899451385811899290243755574466193892023324042127306810983756246451942236414554681340036184178444794146382956333243206990336629719057535873245076576043208986386056521007960573054511601498737922677321486815075723523929430593009440182899853049102227397549024634318584640908140810564153782845179132055895707556338873251227394631271850634682004381530721249993907977624124358142124426917779787286414494458847216909092410751160124306809138856490404849536614922398108515345087236810080655538231737049366932369519264124627067014287021604452081312471664867190104991996705477792915918138217815044435838828759512386872301151126063532095950028441600447619052977977867084886380765856985125194751086660200862009632980216771949445452756267080953649295965707495532036767917160978299067935562777771139325198032794324060425598885674278742325807690076046390361747097171729529465077699335468565429966882697734468194113843691492229891991234013909086257033495794599993866013592904132389341450341499345779144938771724710428618446038604070655908712239426755917265365811680357015275540949669787178083608549465259241736330317146664846795272660280293635671508698951067273251175713287986282430016799347642733007948549283810353271694885093207976773421172702308827737186297778428136603635666707325701374699296884482177943248147421141643825845411188247060673529915458103415514648145823504825328216697689020396827467136086176213247983476486596003337466315507762945388193758935269339483491393177183939043787293266607296246132943956294798780356761917713526257730197871671144396811869169467460364934867838025847804618755171930427982346033131797835722445204572624885246654106826131457316104653623292947422882555568364269436464713217100557678407652116918521002850755274280107768780308822004464586058710848625519812397752915353337604538007140589939921085228131780991473881135775008543858397585465259439920866816361164238788258441320428688352441178036902726740974814467376178359114387104196846212062928197497485658826722850367596732212742467324067904434281770588532392430342251255363462511849100733192177474268407932630363948593746838363023278009830931108361723091363035578496440079777663162477177005318106294702333477156094112532786365457424473342429632462652843107903393951112437438782699236754692890788497833085562733439871583499065725118473491050160604250306929037052939062591874852222514967866050793362946151741710440788901958238076646788740743041903267508884272927031659904164598158195691346971767610281363693123500649853229602158008585330264632449157457259708103176553738018929875697682288483159437413432689300522976707932899169016311654331884943175076628217725609419303349802011661759669264745043793412717306563573919117704701272933443803058791437387513192639897255962596764297505375553240913738170226423700021632530356638163085832373597726459812662041905180687017393275276080571691442298448336284957846671651702815128978262690719898927068422232997872247972100828160106047167526463471037842370230268291681887117448963408063873364468801630400674749665843813273228321522325281696212975323944373371493426989526487903167057623665273084602560567126216152308318771940339925539076711028700387097956423680536015567844599481816406671638997223351217695948470485427437749596236562042419324841797341514401467229770883357280918590076896449070911582673040778425255687042502921677331861852573007046447972914845506768687278600216718003739679525434769793458860083145036312587660200010777723982676316711067821818174604228754181680698254647530737599114154413077555913020160471847940195084107270100320832905983044288752137146129249050975710136241271811106017511759363187137857513844975589649707127879735556870990985264512457009808809949087051880823844029310595162713404349539424755967389574758746227844296175691885667328116155896276039229723468581291868814410439350347994529100155530938525461890685971687144006235507854202616923545787214458958133781744840782424369754907629649405031759142868628129645709579461803384922440995895184826591829856470545075231295120482774568616341472330272334263936156523982192145123086479383056836772930910239419127945126971001765807945775848403712154572490841638834783311650063096317790765716405631258824489618659832947571831384120931811574551551000816351568658304433660228884813260582937440584459452327077166083836358561306385495286949099053054758920764147668217934929622202214984202746317996197489093769553866010773164890553218998464770436483658910819553277622268017697134521265646063527603910448807674721801432722798992787003281694562961726305020197553009052451508156019820342644822055332353931883600243129232890920678609713193038131495537481034888772329504279733327960233480462145445766508033301389288803174782246434015004031781824345212897062927398154706490950277093196434090198493710574543082551032945330492621529099141037656866666682891839923317833938731939222292417505606382052413611731908001002075834206477997575876383900103409600986195916048090456222179754982856959226178694448211100437026447039056676155062992551377112558386240451468873130897286038698945209596581065754542622822370491011851300972176588869907374533821503538386718710705494740708253132549759023986231908943150045325280471298043139014033655797951953492989496472808455213053342183619135643403872208033599885280266726784507000983227991848084651865685947720867556449176571675107388801326039152158757246402071104369448741797784094819611939445977903420034095185703736590114747394010380457609212185932543038346517006691017733860905736467914347136002673843285725319087882353583915877580860832366695916510034377711759510283933807610192188117975385275756155158116056175904520021642475898698924784685201334914636134731454056783930869915000136869453890897434361538620533585382965092653455581698673742676697204794362356401401981273542622878370689460249257916970170518426653205418760242067027865063326624736100618867259970029445225977955121948994396607998190531899983342435849035033154077066896903077533139766170364888006629670645476805876085555585400282800696126774245285771839668098303980414861987549017327057516542874698582127758835582854218732450838281496595108126672125831340405392895669127600387175452771499442192006284820640410456969896265005202352526423114779507056642650348355155936183700694577518392498517017963112766559715991365879773626210370922364235433852811378505359408691626245059892557814978347574456037767080191970157510470733153356848745346590692852502839932610815205691390082769857997989956601898311155628740455114122259816347437885104096208678360430582657057023461126264750842751621595103231107755420811211561924456509486704661017921779550035728913116201722775905014309808133822743077833979561386256040142637187463258674513569484629265187884300676951056453411643668593683401365998818996057469660135099455528583974714303042526516815282282826503145268134995841271123953097810794498527861250166753574393716669960684370285477066403717353403834889034075135406479461509801880441781067735891505361201587428521552067958816755871106680818296753962779275706466727312808319380393672408360214434562099986374286498164466797784794762225974651136390897178668735350336211420996752220496376782830528624580209223686566253301468440338002100281543289344248501205528679105613610678578720964648418824509188534846022844237082504073833749688211043530894780448657009507149414488450830397011227311035889607449614961907418786603281060097387424528301301143606171034837037367107668791967033730405042796594085092337161582453189227577287517421854485639976261447235130572359539145816716212068497016648336781217921558672252922686635521216159317750419923176464294865191456044742998298068830188779618947481571296259551881470933998304607991179386018231859161443379532002019807491879563354071556494908083713001932702382973418730695108853007301346684664612268823476906764847178000736934916591709232038658683482108259628942263683157973605906857278251632295116212700625194442908580010934655215037091898905074916160354017168028339975118658497027833903196225588976460530136284411504051804762242917676670788718167484603406522623097076083703345797398812629843951392484981128794999617936210823852313966901198469296105763918958509465471787500007714795649359761641047397213851130938080666610221713402585788344613337567194658389112903264207234278109223919722524925731116784599845052449065340843247505390964977932792408751430840721471396497041567634550854063967649445663900211081491614995307355082298486614578505431569225182124428473159655657389691337429783884674781999981470397718585440637146898655510679839398048688791470122697069322284851369426112759863670722215935994686476993446333240793361335856388555050865235760230635266523173784139772510605020680935656336267272639343287341091927276853201160231931112780384069514439580707764218487268623068865502106434706831407002572274006365599434194627144982282063997777491387683821719049163558340017813628343813629296139614620949699370345755781099173730931828675962044420458908026395209069425955920201113501819409344484524259513615814295170644733235444331218224804221583501722841474354813798565522100828814154836757931705482669984999603699016244358611760025668356823340688350132079639165391707157277820342807698888038686494450970842046544594515080856226177598220269960111503917186306703868756335758691754883194608899524493596123511543564665193314201155960775434243281100742842870046562147714963389413270723046531163291540752532218287345845460750573886342238056727840878688218177028627762606655751831795734210041923237241653172115706238997465701849631302014931188081021613619418282578751648579813123863759761666261700692194210359938154163843067116767203074970503344885012553876959915477500980153926797595996862360736710098538292013728620882479505006076281830801654695147724019023256885187401903576619768584163837806733547793225699434901128885918960660970106499732620783217775203492608614589216640169948933671319087883889823517536820293841755398098612237503404881077870992660621447821526444407272534774763188352723576355098909060754366373643036428425116891145063175736504472200341257829160267500351610956181220808349344083009824789815852678314619277369416979645066397097196148414327233130454541384146883766168972206948336191307157271560302408035587026942356241277626701582724384257059291512823684862781815543425767883304583172040673764267809414740682880366514176555257219278331733003240011961085061314371565103543301906270891004834670770767181167134570750764850363850492213796690887826568870161103405451766778390220872836682680394356343293664088212577450833415251852474550202712562173051141606519431635043133573610439328183607974657161837207313900068016700035290481997327931627224550454795519684356044194886704013268656788995649928055380444277264980962032395440276504214191202045556174047381825081584859264382918657398364117515360598410614116197726663089703153764864798386565394389124828444337204403375663204665039930687373450884881052980373950163608270784932647150000836588085942979592698610461246627515063128914427277637835753914551846229587634890227234800432137538401576432996228097492096813695740345776492955427544768753338039956509709696158011948837993460599637395618581483702560785115225192605378172653506816777460900352979629482504589534505626708607750073708684966739329432218475423490034694807069632603744024482482392266410737045775123651154956517003867588590469269483125254230021462039809818054814528372937059701880781204548611624370839156057040346491024623150086011573979342266007051108275203477955727229997464409735639132185923953899465129314575348092721844175235854303406128616059591791863425899722640210462252379202028417821320991389481209043470920331105442303393693437167441502432041423557350827845980874936518223136816224223397492790786918611423416038438424133589361303835432797076687388609125760574193389103484142456505970827606473124235075604234963342496846887687240875105916769796813261585151902374117154707497367701249178669357644387161912351394235653159526744406330927685465484394153080768541635380400996514668306052127365638219515951941897509745146779639416730803556337926863760176163697313709465458761480633047131700797491222034091819283713702610775465021115362666663219823792385241717964710258728809167598264609561609940521883585833428240103222944282773172408780034117708667100056469101598395564027018031039093779348270901204320808986067836320211974769453154124073818187305407452666826544260027741978969440387521986178388307006482130411986996840785580889823124893550505376814186376015203721565211905405866368782039438211902284190397867121774731596751904653745369608515617301453957238126475059701470128583944602467827276516326558163060226110852195792310897947490041982013366162479803101223802821814759408492945599297790861587794447073250875859058427113602615136727472790347813114293752706350521472348551558755985392699804037890083160725282332252565125753957559061908984536598179599401146952567765975572022673752459603296210756692473594370611165620069760089357685972415239520258650851740708315443783834004769443539386878661950850831986870051100623966614108642304180666313002565872305994581129402162231749248707780099225623228423216246304449817838321241126680589606904165040127746279931869210222439857660116537798605017774077362429772468621231613833106348803893993768894258277292609985923938190656098282422988345377176820275225737594130514675281216281397145762670884196838359630417553486683968082596603316903228792126941828948943025328713912471088581648763618969885679822981666485012619605177845243292938379368411326574703732457303771588718338756968994994638150048832830158955863560875762931892217051806339561330835779166157077107052374480286500625864712338166832614704734988254205466423279413993276324652012216969386325232754861425091586318505014199076360145040113353476568354826364983038604717945472642271069861706670544501219236615776523962297307016877534885000885456283405082197004883892372504416391541105846427175298354488987775370035000725280096335083976637492801227322548328458426602425304094787506228836572591704163438555888797327764758085820486177391524340861094123800840648011085760733819919780333124243700653390631923306143556799495234414661363183189325663326824364109584698778504806021524443790731239593145169354276161060087180172283980753890930806740301470886524781207279954988605631084953352151528167469276194529960238231166746762613146142194135723646885645062663545180190962638457583500545107266496678414049431653459469046499880915808863660188893596780066080424741652745275449212618478149197865670582996374070076241273133642301744572324042198740459722097820296964562682563747477630867380288412737008374103677019196150999577149031801045993061819863811715632894111948711346631515793826571307688249136892295576493066437235171574112264814749241038693138517691762893542881776252306739679613550211966626265771338572162176871849449954281576315479091409164862228289217587294362620311027480922360266321290725438255904554810784837899292422588154926825721908150476351346228763113546226887346523781254352464425635713798280404313074984530699645290089445879796552117685690296006452519254104136559814982711808984944185214116579083366367667840115505162621257874593000354987281982667644259403530282385325454531427993610983426051696906218584185552795868160770483293367672279650432212185470568513917627407347167024657934614156111382863944973403769163024484754031336940145180631469427549517192852354646197274313176803727025139332407829813774474940278049544544039793797923055239871999436776086789043888565655770782590653735687593653119354341653802099814325708178552169075548150797183730613404262495474223214522149172534679247793505483132784713892986143929493678659230845770129153829996055740877878463557735265720961008382252920345249214303055074301231201477736435962239803269832916488391708761150280547098585440209384465778849844341191753597873405555782845264521277212469658979040873128645781325396368619179477204173387082829886926909512775689264908356144467395102533481438642562302834441658091999315767169573271647177787941461575309311884174981406958456206962044290453284916144110563915902556701904526947148530904970583696296944455939797005176646690002926704419756672558568800951746643551997623812225007326570179954521257108259604966386325863875120612080703925101163046088062937612740919487924106292637337870599581402134430565174779636437495754558880661963198149645879992069078461383178327518640661843055825700484623612388728263983707041683489804292946681511236658985673550308820645500676925606546209322868774587027689334768934812969167480938204296920014225907690683330634205654363581370909727862506729936637998846022865351488278987872386799501179944728739773112400343601441059884710766125689175087578486812908363426631568057362025293863151630177065043922157342933886539145365418406773166864057910661504572332657192941884368814439684129241303719725686746397164779278941551992441282891881408654005186828306237939589056643179099854234647022403289538955859554466568164812614359177202006606867736230538646067387970833969947469015508742716164080466540779273944026353251623414525523161011344046550497316125936716328609384077851441046802829316819575121109600320438473653027732932295049798533535032801509052713347784975578445067263761228509795434436723128381675068946058492039988655753102683108123150896383134502889683022410582474107642485292718748200832447126885495738300849152865092151656628201210887461771672470892621918187528755911410752329487650655849392560137195944746253017188092798387182073772252037960987206424765433657481916042308762494083526740468025674660371037859769012238773226483090874347873746661215886870541503720863957292493346379766974666977683404609245580517559363222428325055781596480236320978475828935509215671684709512052467998628733656848584733007815163561615000182076206936744308558985584872019054378261344212077663436714394398492948010946099398389169240590707841504761332564865459797183036364263611140572478688803419030729705110776877750417238653598012499636210278338603322880905867359709336876646227120524802557663638903944178180631348548045157108638522320437190471322822420128767429730699014587006210539745009477601884917073457254156066797876722483853104262710270089909922725912237935295460097014611007547412894791272164056375117360523537004176390798385818215590830973241309866236670607738469840813753599995644095234413758822598337274985649271663524625878498884003872602325128963854858747652283032850373868622776088581626200942227834642712295072728042588311720787410678132147919594494269739975277386706228069462622338588409051889636386399503665881371062271411843233664782021914274821271049086512487233909515425261109176557928628119927607976826166480724647493542165577198681670073597991890000115560663877480840779857828031077189070937198545687306896684430278705430697239037801289834037324251829850068000091652640157192540300140379268111199089090420372330216109517146183209423535111123158251847635158141682467972424491494171091131542925172024703450834052678671483946574483556349272164951193030826222871552352762866162348247612504957848445416490930284976519798820106334768939178292187075417022426796852906257323940106341266062018569186436187114952107141622112928370408275278050491871493122186454602935177817804072450028696640292106070634471917086016978157147592620384565520306196693554993750031045167132569678853739180950727219246184751084844643732700183958107876327237009892232641961814268865215027844396178715699883124008670542334822644543651703057950245243605498361494089473405384953406564568939307243523442179722238994593040209210914715353235318086047762803650977796005279373177302769876643929291713710997441678383599983437844628448951022068717441893254389364963180730598552811055965367525668445056214769516975811536055624898465432471936489584521493244280598547174536431121327526018089130389103780692271580159432950229415768991344550638636179728604366850760206593712681206929001988414171525984399848614930276256065164574425325070888393392007034907515307996177986725007959295104652973548684607269878798429559111833435972378555437473616637119457440360090795073333417331987143859221682832116740120952169697427631255405229614833248362099471472389399453334585656454849654256384955353850396414048598002188801535874355073070276316273120586847727997614915511115305307803197444449544704692578275615092020841939496328103494436774840976523931295532443166091584807849117785614670355990161852741592451855052450736908724665350746745308453772148482643934518545718441466390179126516890222726629318687759601264117417174560927106279010689489261999185366833334815638285395931576652935135131410607097066327543175124603502730538551809578554278359173057057050893115235082178599142895112280946479401041452444897087138283763038527312346456029279995811245602040746970796739630747486182075027122970637600597778628414651303376020137946465126022905013914919537103802608500382400968537551472930268473223046560481003150531658082809193006099963221622771606005196497938154570528640049347486563207410295426166125838967320653199142969125782048685550941775257267327933941116860093519344944698689694173089995360228817619147012862097183391188188707009716036404998942463844751786269723698314008826716238059636513548543627956335881489525016429358642728033072877592219311825662419029147429435898235735468926708984426833192247733903367046864890728849720042991784995299906211858432217023298698944320029588799898775869441947769376187135852717791895751002119211165648586187911553095855239403306119077942364555109298117546497182484332661409798298433386646489374347832285664351997311473722028404824756214563952973760867574115507357261225705364489083013088933462211178996850925202529510549377060053912454630667592841096876897834084630247020764269561909593873295994065474022582906758218697379947887683377840690775591020692019346648789656193007027830391175194872254134217815648330579728946472537928911570490078703271154149187730577966812476624967534291943053288771598428768995583825429235074117412336556006591074108668197321426459129821856824136964532226597376457115905943350167234663003733794464003900136447795620772224047518914514063976902186000679312204499076376745437764542782554913469497569285957230986989672866060159632782483424307601498387026171159425977237601756145282624394379450815285156783738163442959720364114681122159924944383114834728638350519288471470391839591600960009852342406419127082097994951060252520989864314016148706698930592185354089416288217610135469510027553195918552205088403179821267701508112316066029114007842898013316534752850268306177384289434009043132478500826180947089702916556626660628202836593258897422252433710723707536158385026376328138155812348433822635933020636630567981177172779336003680751817962877509506734441504714992975297992578956350420811308764764486105740886316759778988883147638228856542205070159427542172451889213174557497339622398313322077120572481203974169807435481926479692711326401112173910325739710976227527140604425507886410564164231180539489321218800400743352114552659217654884778542375500957595088724704413755332294368633817612047794150081262054902351736043066228973779699291783647666698562353532666049384769010347230153714624749378474228143632976097870049539286993741633598281891135360329275360764889083653443547322271271161542667723245147657218874429599237536208813099710861806462594500545789077810089338976998593981938357878831501825800624960959722471248675832983680209955155029631267670873605072364309931344610683222946873737518918256425846309906334341613858023833215541724534230168613705129765896759370846361510969013096199885182387089913213591366095263007921146499007271949800784566156349212360390046264105374579056535148354208583278691989661702257086583035931469810093359781861891331318694112362994646284088196207119040838901965476176426038899930956275152830268976399291392796966077865765142610412567870850814920752780030747506463415069769545484315047540705744494591551768092302218165040283484236123872430229891118506303224024208667179225614180027517592865087428221074042614202725048514027959963458841775821008364529979947287862023030498251243736519352075185149442353534974633486293001875971291386728983887754102427928878311968420732061316900104953086804292184582094681967456182342857547471923838767518719946110053737472059115546164274150510226262349152263158130568602806041808377654163830096787537381979152045194862274992068175534369899176138983431905511883799989867838836575069359814518374118943379759739933163839678711041467254984253702529812718605140088858868982501104462252489098167374676431991799270867336771330195316173456780263333304065719306909981821716690264783281299718005938913430394866200417230662391013078222005530500068773880531465980794726477341945969292641834663804424785847785567971812199187325775993893457328557047858820205769256799285423817428071976441903730786408780441999372864614542794205232961849438249945579349946226693180101655295297953637903383884135634738313801286246686376858090458348362862683323505723350313062092955756090412401385361768249911960465263815192481200519505218167689013099134912024485469875610074311702199145974441260331440543525260259254962757836265608948008850775656835894857124820318570377138081571472235474517537067461897138215035994912430035379165221264005971911867981386642730869480159136384316316212297713701616449571011503828910388009188626384847863237963307361067433501812263807570230949653944496379721702930296912286879338529036090170250104644374891840395084208465087239699893104260203475328549625226833292901813558408379012151026030283548669380012550498472105604652660237308757904853441613290501067086663882551877094944519905715214972220498277972301687385948090091080334341647029324733981473192357501578736201091560543315245034817459633472487924019072145801353766649272745364475551762473835675644164209136215679424381002849427933575452686314090068250928142150091187007719675640650913569390176459776465560502439407318898188234610070204185810013901087038124065599517318158492201140277260889040267839531547772334778366281784786279031545913036746991971261321989227438403105522841177746268242873242884657799145936478300571152685221209462014532988566742035110347176268351788119825807606913213005563710332593732160368400992634616684980963078466828649787965040469593420311931853317105022420740763511000974883411560803586232432877355042081436555800217451593515138605595583926803109542999753678636433920563630122768490495900922356768973580190394524709709819201395143717013854751063502140414680613319950729448991423158268386087204976794064650209074328812174877812129512305596556749217158903597661781811292152697915149877718950373689960641697751848591073200621984191840641272914582174876052565057277971090825995083843446606657538978409632532034212707250327394891646671129203349356274461715070184245973603795524082201237765982380097425581448909093541330621278734663927989571052759144540084394485108769560221522220309343291093710284043130747300811838563658634432211598189517218469244752631188023125807186129913791031341559634960734392556818724249076711447467947806168539215817305460372826490104455503483606870376545011324804455999731549834729116242784385910929367714262178610210325211131315088325393535305543110671075648309734859875522060102705148266902421112369558538092735830071291926767148396453121378690661202707298959144727209730161129422901861512353729017708819430040270693729455917890174709523002680862563211758339996599762234451476384911472843024769629647139476453642019390364273701226898574145185294115683063418200680220673338097928318851745253298494833068881946706513799206413750905337197476428172551241674017654106731789391494864938902926581787607065306558633929586727069879877246105288330166797900123732233656678234504784759269276146243819216736816180823956837689240537406036330301416908919631994103225234705328216948296011320833484413869292302252571986897046610194094202986205418096199920562730087876666158648334068656794565336716419229825054232502783540409882873917426569056797921096200691976182926781855010029652053247697474629104154293527427536583801133533624864033306566159250365276785819028992414669406889602438783777165362206914241286079702964609763556176299181189304821883694646436120627484024386799331995888296370254551421007624104099577216376725083802758098385793701604037799315931216821954299109428666835246727274747948999946255431572412454197034765180737851062310143260508677240667462016468978853131932706189612862309203605269236874647491434436737895416694189082893653223042637919756597938786817068227265832632096599200532842074297017435791011061636949432832872781628895283965389252344543183928556505040726027347036683081081211519490742750526160074202586335839835961795407237266754326507040836842560760330034933470773589700605183387987203903017784953508978116556226457095311330620007518622234952122850342665555966220674124526368534210980379398528088171586562760479474471722912724211527307416384425271651208414533110072193214279206832317015697184982473923007669775436491940715476125324133208982635013604542287337002058841489509790394877468070948889611443240754027278734185438611031250359491591928334721153964228660321743062099390161918872288622878885880686868779646447430927681360413568476942299615137238354208763316436136695157016069730755781230938532917857674169300766439957069754110930038335339030521298484952167897170867982686658709842602771167709482429817072627502370802548182442935758044886931976952738170328277465060414285244168787691098582745826595980570259961090101184782554977409798035106116496057463565276778520843166103520386214101234945537413484192258881262864388665299882427835474638646770373305594805644447459314432460620992348085911718997629679623113388333125027389289762128437409561513458918223877900885988148348736296395691287455771925601508487754173360071063639479843757826522333771158462268908455320586329067084938541579459732077918015337173448555121589395053368812763324575827167336589129291653655688867667342325205628370445136245119385549080758700973875976479740949722876074964897257809168607177906625761814796992087034529399112444825848725466143298001572188364007331637154374472831849720812329120191790013358601500467233476872840253458769233047942585577881562163564889490994197226364968761063744205446756306831703491565540921427726155616367973419757502142994646855068214828227154476522715554597059440251418192410730120243327252825336505438614905893277235154492132442574455504696270308720071571769310437716094818890709066603867249280679172553196207593020706813819889528568717526572810903103305773380237130623799367768765434451945027305039706914302405884264081593351762458719521457117706567423830397092210562633818462434966744669656261826522466163866349122751066446090164472887121435223667745984698558876900085316588525377304085683423695379819220226249502107892136708984931310738553150055060806657580724345984073386014850966578812214207764803577536820398407073149510751510663061731910438723356322744530897642708003856895533975749149178561629910438444748406479314360266936445929136736929600355758629329579544649419640749036567948644708333495799061304177172290575801142675783514070578454760879098479861184807254569443809364691751386351753707307340643656359973463000961446284966717099898350285719789307285453031523766125586303481661141747595366176560400527849971908422399850526419734196116573281213249485074629638727754494440340292774205595112309970436943796419957081632049548785037270934483401344927402366350193908947203928365120283455452088744873204047675301589773830302845183702919802679175567980917559966353876859279725800519463495012931943350535269366317538960596793326769823532376390066252797203840087376334454581513085283193074500244088714497509395856794726286565960395512514771157256432667796865833790697730902949881163183019980426567840047846002357605709251250399657886483875098640115604825768175631780291439434962274902818691048715106302445596001982057648806238669137381294586922374359179668328226659900599633386248720819018823505445403773514898486814170006548982286637497337080425180094240060455870077370052540831437444169414620292829712669043529157330119038177814483464314790825820438347851189582820452869845668206464278298228553949161184757731594053237803324420828942299371261423483081411957336717789904900039850421465884836525393803608261670039533963740606940027642014725751960063790746147848758582127641250905966071988585641002361344012384324199216168205069825041813804377952091935195083767565362209483030956166658839270867397994272129102780951780336635112933205171131635257449690174891550332876854697594291740369739795732644081581360623734815093903542966582075422514592249351069437960205457205755638059614194525472312889993116042148119208614362378297766955833227558083991191946197226951095064720292538476888502182669512548561005076814729635625016016754843128778875339624400214668030055332095126978382394732947593254281484618559488720258233642563280515840222742292318679822620052541739363559266202332982580690627919436151985961346795660856449639157006223640040875217459805193678552482310032747265678235780979451186865770035097522139628189498058133907804392760905831346450863671796606547664404594409786665494907730196594578305214752003078467367283651344026884713298114842762862796149661070437552005960018230086385687339568763404981672690571049835228762123104800893085349843739256011553220305416046097142210821916707971745661399406108831022947847501815794839634191211216200599527957111969979307292500703884478546973815399919623899220120951113697435699098532905530100747629455798916448031314635157559960778579306258421505645164671353925597695474520693673761148077173770768858163753710651513965109982651630971953247951223021162820708344778880507263137352489003722037405670907874119076525664547266836916506698103163309695088178131936738298109776879777876649278652979588290212210309200696379841071207389918160570320809374352208888658674813255606669273595861482412156155424235868196490594961167251668248295556368002674884984395219460134207054275477164712484217265177904828374399757203235648734247173280410936459708125528585216199641697261875212758586088593558810793103476933021007312039613772233827619656516621769032109810509370239549914972805540353494791285702006903652173799728303480105990813219987927489307935820228828483516556041001129843090911381771097253722474094487713353056265881107814536993910613162739521102783033970575775959557173159545499068261144990360134856840252795888508429135706250555961568927493517054348499948942256202131254805136552934072246508867633648454025985033350415205749845475170490549479252804338196782432938419725385032119589912309262745471390118877278896055210852041837908214690626492969939922772650707670856238712963406603490038910713494600020888619093967495942771243339242406837462890312090131488979742752555273212894828146096822190494219760370501907933955518979700518766597708901418226812353461503025136903174667265189985010843144337065220975826212281058409070240641335044029900856209577700656353198014570786152960212566329691524509090925940673996076287056234685987769360556017559346361357431894672025179197959189464338427070870200621002125058405729181171465435319354314354657920100838139602555653579407551387307799517522474035597770294297348094311178545362352921686003522633560102689496940158845628397302719521465773144360187152043418639513689269015453670835635351646094324328774972348208395251435735557197421103445762430044724377286540854547477209841717404809111360553865133709648307624933651580755594809901119607275248012244108874655229905879516455302116360904256383769711023037100364958029169677233492686865169226805236837758061083015559891773678141859179093781485847684876029517249764117854766430350051521550343526994033728344362645211915395963109248014229860417585494484350377311883052877132849243951257543723379489828386719693148714132025305392400988234092328848701328417488706351929557952307231036313633004469299337232383324579749602465967846228978735005453121480922587728331635869252659378905175743985842461703359463703306307994062736438199662104978268672243814611201997246432655235540829998220832550662159242601903368836767963709384072330733510389912628647882908677447320676879519439370024158001789181329455068309524045451370175570018555612595176087648050799978906565157456749114695502321674317216650326734518070452317732881305981598291130635198962261862718261377132562275802937968339094560105393367988857126536375135086024937238220029939694352984656881485688530184225079346673609068494013694424332433187844576554728458868602651189923697637410729713399753659193167388561268889926248915382154090463172092770054992359322083700689946393757184117693705745568552114834318640019989132429781559959963430084511893879617781788088244447526734799623576733108699920745441122099664824281116245216066790709368602754631804820437951563434413544948666650979992806592425497203566524230255922395518075625381471791490905352987243952821281553041461181354241080382409036790884909473837444493012013973221571840949074423932216276373868040016097984470583863224392852436434779491209855891689879891455831896930135675239805482802746411139100962790808097452095415767957863322567017717591372698518159640398633777262267069612809747489892500926838388505754249330858708491742841140627572594510668851212102664359086952433446555870625069769255878276791518327732346447545138633331934533456586429769035813708415487584891964410284459652378772493338504692153368793308054345434940056901135632142111320895238813136592299553565417389654713140717548379500283245231749639953158305126399754591327423801485725167994664592734809519959200584945131504807453174791395765776129544801415628265156165274293419115427452541344608204054905691244306550162206033628932022442658435118177785941293204036230954038408933672562594832469428074984982946064542869128491766090732566595853882078836454370590590119054211189448796727918462917607683164827703523881330651536569311336025537985226806386926831542982858511686483556769103118233104154063572504298099118448102922343410568759994807089028789601448536584563509747052903989199341351377682717673423204677772216988787385619978530799109769080280090881730844902902835357054601242552913319375294369351142465272638350371077572180402428023067675940414611562786864823632401029248117942420875783578357408906494395169706220310508609247629637936013665596646091624646744287280700693179853941065122264295888100492052585883414481026628109686345081774475362232939082278017384758652515217387180009572542241181873649374078957767424097432456359025928795777078108468935683129863059789062277528464940686044416833349837412762528359297517963836338682639614631254943257823417812693360738893077330672537651293935107087383936158221397747179802394361611014210393122572839005184380933522389798664338003658091552813613281809719967796268411201802044183778899535470860988784394534159400125757507327096803744086147320290868342877220109397934812594448980049573043352492981647938894854194230438788230436828611221159218362896220200584657085715010905230668842058803070213406286589178750067379830495810570064772329259360571725747866377275446392202423276532323681378357407315329776956070503080009772952096036334699982820391370990791083071000631978078627812103356947196824162356379005698317588058086451178227976222620811177145035586318413287934381714583437689761124900086722230306197034769175688019933676602996596854601288722922924736516274312085108205587086933569161291092560079184851437006821926630143758417480211067551886315170288280837021518777164224018190319754701854285058055555222921296826616002777878606503946550626857018110813525584948369976554775370000032045789136495903360625044093814082127017409837216814782718427469624598788235118300780860509065919961349562544592472284135692915612079112528846771327601715963239871506211723011668764950963652079263958770529019309013806939730520173722046162220224928063045683507011010966331967322153396390609241837235962024924381428713623861927197046982201137902291982592619121882144370478006027239169480087357864169624507704029573513530308136342478059914332022750782555784910398813472849424377975909409133911103008016368644690358133015039577703716412011876562380654113906709807687897404235027087979332760988247057377441808040619137677747117287423243902903637699614754614968314866594552545400481773411470912674309032239639540230812877928221105054888745616742352624210658347840293348413131865613520144717786301099478620590481249867067573446859496748492359151057155719804121176865991894881068787664501307568129065135814287222150604970545177330429062679026935958781038848774292435056770937876359498524022034942114797206293701264187302555985844630987802639944312736072452805640534445471889010655740569562186106916071649087485731968436788102507932260816475467750342536743744134098809115073552165664488761766283734179689825071308559398519842488337322927838664142217897683261504593555641082774466032052993601923982283653500839568078957580506968532771518546184370153883168773932383190722026301951519583599075144044790438637717134453784132065121191152344635946213356259665474373936095915722044842374061352578700848470556367448509786117364222642283229701913991849506877121071670508424006309546471560985764724436648115538501623319818563294544238458276873831612398456908377967414223655316795003777696369759533378242552614354472087925025084134080127924931487392798512054055142752644491406677073004674120440546019053674242265788887814208128078630147926944713302229486415539395922633897542126059687831483962813545216022899163864368657976751518913751397266669661228033083037054765138984501514730266088418944783854343962875444728009824613977231053390963534773056138151917352090868752595930738037844066651894496061331487925204501032277768404346073603605245753020518449151003643389743104405221295110888655810309563319315800266021431203430762925694687331658386464669872178135204570657516812578218534183972623487368011521883010385212309905474111322072346240296723768443275625661691134626748046071041543353190447631106931773743874282204168490206797783754859816798968226838291440393773998433931156862663668825106762610570234888724727134529404130275822992271476305783200574598725481419366981672169928121564435929598845656464704351232104814976764878735681250696983438776984312291276606038639268903505244224816841356216851458440746549425756467057931564230494563016605153249154169046077299732274025440159840710820995870756976978011441390272523830529643464178015411971392923157400393563861635643546001444664147120859438722702858789513526151045057695909490462897694069293568707729807677464016181964583338896355682206738977858000665673045109670378411905029418039521392864366860251427001431372493746155164515553668426420383325882930731757200951377409664235640175533623403694604389662120618831123317976911379136673570700051558998000621350893679720638655344228779138286605023264978739084823382968433207653200097291693883843875707476209681318387744977411728744338391203605375460186778709126701917368456032451081141100702253050930046753806011578725121357522807772895935283610654115731555308329185532643326680002014030915200591862735889471154804382725454456370957994974034509961182695120442807722212121648664895559733081318719817694901278909374328050297680303544243514531783194518158916726624746284281846359510266571495062044738974114368255551486552621914765705119199869336527562536123505097233102270441343836869573653964270549832201093423878418210348962106374050663690830012310390730851255897303988500219471583475519506858990216151013684683173672954463198745103758556490644641714828282191608006605805800945187991124321961689963406812116657266351302687953503363275951106891379239663359757097962103606173158545437517412530968920199689681156935423427495864006602218862827080600832399731357765620531715175481078835858673421669004901510762368380308224973687228001225828590215744979428138629418059342653506745807222107357986749345692403818507529243100558326063315664024720146786028638281952120030253125839755262551550748120009490724281243125341384321003873100805811897197645126080370885159412028547962727016004395051168319244404038722792787884810075635583144661489885873119308217066343589515723268529733058273548663811704718396596348842451339270918747160541827665250310299657865787798581273739805449293695580037835998604541018467746675159745530465792218630497394972139729752636468898136386096049465106003952908744002470206905573855447246680249591632875251761288363981195867064335813968195558154790428123437285263382024482453440485698153616987008085728942909897458402075543540420119540376814649546939181574741770671784558189491779057278794739669211837056558701621639544859918434261555957871396477133017316451957036356746497064106928672636608338692731696685443388447557611432515364102529407059362016941487715941908507343825316548357677565981847364995418543196359571413081186447952385312142908532930875174128618274304263380464926398029810674831553794025675545475007773274215202845922525546723656639974134727490822999767435372098022946518051865562168716506167622181657367330851272076157179199729414805465478122533187103145570836794869344151342577254035537678278335882778577581249379732109080306497952896556286767090053173961514185991075641655601975035396594975263115063336267702978378614430038583940373701937555548412966507327279001317353625213894365960815150707167889529733220436832462546162600873942377136640531691729824411518763838446767440827267949286132271761481671767654551215778065164654072630490328689451556500062907673560194181264222378165697634256796218583181783598474939015477272456925264617046707879551887360258156060534925428472655137710260034585181481959383274175765723473757726362491342708560339725981636984123004031214446419348118991516338249404822332566753126313816822070434310829145472402581188234214670702737062388334586136919917913252850242114504146450947185051712958191566997754272376066744345703640914138260922856184662605638255773499024078958903264172349651570102171563162236681985743848345059279066923130388965633129823835730152003158205298796779264711573140098480109015370395308553150272027352933404484035410177018937631921018328499266689486091145294789795783083979226293995091978238195564625474063443352042085444866512659195543167633417082860721356086928254459194137174991340653087425911631854865906755531850579153380970196843460458083026132827349425781969452184582563104355335580395336464153422061433765455100339300164893282464263232968352553052531661317883981808598676436041317368169459862389430223014538879129519011453902224183699445811294617352642306497312363613854283085574097526319124587559190869646214115640255444328996531998785767662946441558468441211976738905710039870841811812377461912561367175118855097280443350671775514526309386174836467323514411874209012850508362543796419203033003170729662886925189897326078839083687551844565312864477435604846775760212667059994425367276026923026390246653023486520719503975586057758690093086544455234116897029275356163511755629941660574662713679262299955513823598341048352994892335279706874357087164709191161539623544177665189957402751375699484716907678688387026768458196348749290201837048891478344807159833683206157748589485076172970805390043712454044265180699914496059691914977731465066362339623567268845574208397954145274786725920497342827703043366967485465090058100338154254715073191674155063899876120524953030354219679147377428912586515944612076520482413061542782015475139849564670284379930603882091123805164386549842090185401440790313501234355394318684799618732187891042376815199670586921641648555439565373810933092939472293118515212673607179440078605965088309381470312795250170798039431210685869085345818582203758161716626465227340008155855814626754273565049576410028756126894937573399846993811360912535785571999136960974406375556923957583668867099555733199704527808243708349789779832011787560190643757229923700998640463773905998142448636844509787689054307355800391466961526829649123571155666991075338403184027996880335743276391623950255833293358431159888627832362519291402317405982903385882513917591378861347354686934396691357841565414316178511414036452450601024284972065252469179842591759148204208034836910510827550387118514515861522016061229690850024073037398875608465669077768147825442973316820010308137402465923740976883756141405096970950814471451701611354099014254292256715320222098737654892635918827305925609024632074135472106909296908314792808487400893701400406042950199946814394642022563361099923427195643724924867055043549356827507209548349208154131026016539278586791885030449821212736333665283232073974575508540541920455661703885925608173417688231778052274031579575488790569669055072362247865481205785480374731010441643211912257397176441303197695213735588583716589422820603239980090978338840192505633658086662271554956344536896280053062799130155885559007320073835819123648492168699926478530180348896546178292318684066768264509694175361156108412627621508080153859662294753402807755180329738084691542093079829617956828091685212132807599489796674708369829447455261367628265874290086365399457925102098118891887288445447986007799703227559405219077370964337992229564632993396110662764126652858071516627900174334896124539233773168408199861453585874295195489720809462583062046834683128308941780338376613071954623030369707471405257440785544852883442297854020743455893820781287497697562876294650534930012306029908058289390165996756315992602729444409970684185144959962380233941076635770420094596587972066642167711277660456382009168265378283217215443687889691420791393685953596716707527252025802594616758207744012702071556323019067955300948517193978674761215923136926699229429568464243792744469182322712834608150706695793266575751134891257047489616827175112404683487582377459708191904194645713658210269196080197146313269637528257215470756713510589483239470442616221046290285781987737418549064009487774419880417471512363844200530459975707136008757488841554344771003194464358174287042000368660618653873211380453621257732046985208087315991733607033812494504588163414417331329255191163258817275715804220483577099312869336878530022682751801021630690688453718486671539730441987123846380071443854249198548142047206775060039467683976261779304150570497022564571059164866325634512067722753591356624749799079444969368015917755487635969977725452346644462010985151056686009203576218720817765020267608603307856840355325311103609956935091725539145547338299041782625170013921561354334572578781790615669758652634284821291112491664575279341469794859665515184578377638826614672899413238471890924602932775226508541542971955891622540559699356224221711416042261678967767627295737444165808101007543635973150145354892525607797658038769751472548920024890161884515362512983155205287239745627286083319742085313663053283119106715017830919736072551283442758014529646848255820451808214373196593945244208249306714448949293515810954535030483561013255107603030417776180477292561920380951203068615347753562723447837777969755658073512968605801560821043816767680024094729826585045790148265110138283247798125321849191833735561917982108871996797916494666824908087371773762331728818324754727688738535648985876826545001825053223668720738154751489470207274714039759346487510779203090912895052918414101277968500790588610336816759793640086528040266638737165249489867527947089779743565576841395520741130239678241228407272231724687019262935386855987079727951366969376059894879646140594126298613098047872551351649163807948322414863456154087433378027028955114297626519516785556561472321370971854375426299817046233937501565601269627160634378861135811433857556281331978816497032588799548964509137818107319501367959605355144709720482423590522104034429498901946565355919447104229870976326150763095020849421971454330890597769808941409301718000168652339368826422342769858462748222127955938312913243911789227054540265716307207368836404402019740217316190449519621210476054006914527314259190465540874941199639493810410389534088437650589171563093111073985692160822508787379818402764816825917054369656655672644240876119033939842918907791906812067056937121520831146678977414928892133818668327205928197533153807937496882760642399912463705896169824821403386869369960608051577447101885081270182260541198390510741458459638054646922030471625343646521143290108463900341675361414546230331771325784310936789149009128565246344731722553274217629091879103520246341853758455205141717830049485175863025291506708382273074823357748394396794506816074475693378062364173214489774859638020596702227486192975802047741801864318615008950385055186790296407860228619354500343861532835585834875426934562578952064571058009112076238618718508684959203407038708652805354474202187075300334731574481783256622715437886910788291434119666664681748584514966731170626300148463272682662665002546825915746730713153027337041058937130706039299607888439391222799142129300690327343318073005642811913750038763559406939537110539789724820731176700865083113139534339020903454739449136012732223854008606572634752221125411774546574082915574724968306057903167112743826271261280522182692531411580105543053500927604473322414925755898292154802371432337243878707705831487368233536351225381229536572247577004872025339945493660094400255208202170915541415538471195580348756992589762874470749904329989644489407983160819647052934415360756517137091420501930894667430361148595645691909698236537247856785140446358172250616240196761111753299905078148515409469352428832591418996478378888673365312825770255483562114223663927324620468534845102922622569227452452922585204645803765074803994009120427693336987195006362212627699175434909743658508620343523278946739169859545817061025323355886577550521225471238469314332201116863347080671915159859698807116703248661954035092451168579921131297679662979237658186930824158289356050375659946750224933524289432398011312851938790612013119725532901863510730011216381465836322104850715832515692971215814466091104877785474679886320246500252500878137320076751778459615709873827547591748030867391408796149768745651134088143381132433916983808344487720538487374746546511658877957748300846811713969914699852863240784854996337621596518554998231207501747138404244621015316293757205574659662811498423101426235945373774471699841928641012783352415578315991071748252447905520316012567502649065523253631320914980296671468274911592766652998831895271898828646524951083448836841745819595569012052051445335454300565431401547348007454081500720281812339342831411128978640749016423794473037513841823796916642584829417866349467008341241424641443515653987661948441551043418206577452388347170707780957184890493803602596607545181164550659318742953399373767482725069385132807480536379439934656564435878278514496517688435068464729269602336860138538803257688494805287675658116293980157008512682878600283693293581005763157859052386776135685742314126300243354153142976558194306262507033963567890576237299330562938814624318830525360289656157359665459270547656846792036300729877554026562105921307137899847390940197232198421811057072123104775276039689342765836373015367164656877094089503753153073495575403335171254278646360934236413824893750957327990219062622086733812516427316872408943429722137619656959025716740038722021352745033313803520149071240929681602067477329374995521271834612632024614119966286137542846618418311540117849688474958798499364585863516185016403098115379644524131776743351373244066656729951326657324727580337632677963446051683342352960475434705733714430559026019719811885881115781199637908735166481682036728207357346854903882040676605734684665204176225714868358668972582917900679001997767961652859904580124060738358809536474417076889986511608860749326474808261027808167056270519534118215894198695571813659894571399056490920266314008774661725405350482252981246878746564889061548855236857706098281002624673672851700608480438762465030499390594229982285175334892898706734824260651319418370312823562387237272643796669248372244025710486164406646247265051270788672135026285722833130371644791516344726258265111678431510277753547215455388484659107616296831067726756731340858374675204361696436536702844014766220291248021360191690997672947633710321692467791778934340973195502921143095001694245495432118950296753065449720799234124915256857633716197548958961510852998569104328044008958401833796695622543701604978033311683620800286957216294792956260811295157799368499182551730906311286079000830474081065095935345578994066607464481040021988555533508514372262918652399002009581652749018475543543461343716391037102037648356213580138680040331341185803266077410168821423041184139324249710897997521352784471111233795329792933245692169349110418763546119735421725810142507243282373334502787574726219534003786092044286102904421658847800546937690307944380467891653657575179663262277036754781429558940393370444124209210793107837086005148634330027656723773722221086588067075863424312627304610382527601991533611445242616096084880748584704079032050677211181303973167827622092069838907322255747927428676239804830374614540644858596393267328517785685937572133830485813331369681790813903420735058806262671843158822530190293558967115987599274973412202202533385160195558435638439151788683740125605971366895113973944630445860268366330861971052325230144206027619370924510804693037228686174460701064106052630377880347961024892033608003936502410003429019230772490652938826219563832599439550387929997991971039001256881973145650581487922347921566868532594229261260718281236129176328258647486787304993170248679063854582832092773402867457816172721370294107360405856531892021591561906902111579356443864637528743465656597208290990417247181838113937876336637529200176621870462142234795413914519814792519473750666825991818227274967591227877549470233682851115495699772670892041699689411303740863724219874071064702267794082030858221855686976824937274266857757535290992041947914039168283360573349878079163991138901178667620643628818444358668744933404643440558747678818632964219101696898286886062809677709702237757913312770116182364162849839119447584279572348970800457329341062590836010560138688090942924646029972751384335087089485154475929457475648830995270324176065710961839323276774056240717604063033655725246030642726200711385556953557917262345670450041243081765315114402318659200777241444659275494579991084478687535450067480837074008089852267066934070436374440779889071908479522460393956647820334216611128295484987376329565830396268385426356227217454111808071525360123735907040735838269528763665326422310858710296606875495152824161078240291575628395575176745817394421024442769181411228059780142728696079180548587391901586631601951994177777324564118167318499821886443427012509691560256947972681839548914472177431927165608765014462724192709395772190258010140372110064187443720923933906668312531061767593203981387326567257753032479815128554409873560703746289847681215989011075973160465194857506946381643285459413390421736236100961213222607624687482763010847188393913724500090262342803131665609313793011015016475654929376526350172226330060163003064429332542996897721380863599192982580327661647602163099148556324340659037405696897516149387752013121868003416404849246214923028212101205707721799452285761429520341930447172260880158025620293086556305600533458323819356449145524786322377206724621213776141362892478659099173835643617899375956547213522943494032742840611804724476088647633381120482634587377413827750119847061996976860577097091131792802906138238911267397448098697010861061380429840503577691844542063513891001603742717022029490549508601609553270053640149126037912930747545548177951377260935229068236500094600616006051288597512083729849720804413491152783555832024570425454553143144653948012413355102614420647317997136817986597918211083769411747430065651901585522761928412066549690998996012932984181586393384997915590879783988614697533163933603883647943897703395239234505919900121338100443818188269750689706124205009431255549303175548991068875419139055349907981371506699050451153272920346444048210146984682236774804870408780456621839231612104695088373929542463592471482077905472299773441584519636189816088809188135454767374751480704955627865419905405919291822256822091292264292782440462296572715621363145555681527505580446253391130818119496449311997460337305900445352222446802547784688283276624135801832683295347677730005349004982115525100980172179550348844452067024988305044445730421974829550639186879181888731836404890022458027183656872589653844945294252859210726727069105965140325246244724574780408083040883261386495832474506114259868917913957294863431715098881854218887454100096130686874401006506850241575994071180460937968011511195654258460461995177392193710661279716711153391745334412293136246608405917923477634951969516174896815362000283217517543696615849308257503382203824681987857099747359907105923824810023062395516736584020784314208434357260992579125319587456005322518902332163346528051658154033450003867803079236236632884882759950388016466718422297347670121813943190166265029206185483740077358376485673084660369829835737740262927473699155307721600625757978609170009266618644114776153383088124846702860236543523471054489988222317406940706039911031269986582691574367407254275524549762340949956406694317440651393241598024799066674099105609502170912841669999727981736181057599818006983615505710755104701381230676043899094209000294374180288548763536470507220569394355190849638234137476530856677244616455892272260135270580861591413238091130178337129791220373589728049562662428669628176847969343975586880801374091459823962016965994884595946566710779680602168551860531254924685043713207101661815113427489030607325369554134214039326749727530101703282946309811100939754551311950250481342969912863006147817982006386275700325532832118973290664957564615563557114966405855607028062906495430892041952980659019881964366055494106662307860329614232590028735901515626413641750250099194213950805338147637933246878238917331003250814680513427175609233379025272691201636742814425246770747327354805743260098382045219792960874437766084784018816923143918516780016613476985087243828826917039537070270667883225024243588218867009187415729874203092713210105226902832446353542072168800442687701213477159677175562381890568518578092408575708733121010601808398784019482501424793800757121890764527062580218039298971405863155385295747980175871378935923025973606876309282662078603102167830381032292548616909554909291778881345011559656453260615609588309218840047102627537626439124392133456584730813320136758735691235544260549999255935139222348774915474332371019855069003032538994056373742681784241110229864440672184896696409337644387593838085253089051070562346632756237928325180726299061979696838899551289138451512362905628595720362842793422384795723263767813840804653188010436448491757864099388070108247256382255960805549120569298313955177137327453514278577428133426532172625136253217106507602844071290943051120556080179565681271123763492950288521580478466757163645707807434820924624044668353761284778116423545633896257664174203991318188454761233759903048771217947301822407458818456479827900863328731977233279426706721362717311334279187436692524531172748267355638242406499470609018810825506627696477260790633233022500750466783777555868903948413839770251848841521224373499117679130358091334370491112471945188255269079975433193326830821510710847288066640941568768828319546191835176006383979660497286840219220012709491118569665198854474898639875762084176674409212899244314651788648436030805501867192128294664685273112256478700827772088549474854333072692196675337735969386032793895691006062977909309130211610120891240509444393807962070925228178868964952886125490187765370273381240842303580836621405365715058882836018166037939418421695954557548471876773634075515373072913774357917891600491496716429385524629760764715275462459919932391072893905531324399504068930544891527814738840271095077049625098206127670425714043091333379776918553893694167813904238694114386046965990385535849088877669454602123806855364197471664540804923709705052243722176658289450426040055535895026396429920487939041612192767157724059589818323976183809974759840650189134783209222158554645030400704382017180982977584491732518273667215176405054987473004532414799214231095355352458470606425304506300812497778097956379227942618018261399300936727572137652048579224994328578979001210676428814675591772399058691967752264654303065433919215275005290499856004897569631338835230739677325380080040667779375181405508710638228131577536158222779718471221643096773185288534441845988309229458371730255719099898188524460875688115748422942643295302421574547942540662285470476798758394715279246250573016762195521876547441271245907175108274876660582269541043496842983132116974470905930916223451101241203012813149545878851265530991904810153453585392329011128513886536551840121862242272881722167274923040949339811177245807962841223756325740062665822288994160029012684312392171599804617020342161910203770185776725937350175839299091044473819086076012986964089959119492394905695333069138223211719807797335729314569275777975325880669369455354628131313791772089265437290861372049027633300035384859159842171409415590648231302662329344546973831414111641102092312367186891448475959664546816028538805628030736832689675723777322068082905603734479495204938800482128585252667089609828890466200079317475060763255193366661347294746240441335641084009027635885117873139271057637588782038273912231474029651005520901978920974580010918400888663457943058276398944173248380844501426888589303107923693791300924115915880912531040977083464147273464617806370514055616143286953894799080307390876799085745531874181778870464099673374860039173001700079368674701176930180635450691717233173355181518744186666018108025797536286873151544808058339452406707153475833941347126449476198084664648181904476263400426111889384742541430705069858288116632025600075131623222787559760740022442349071770318630018801546805451547409976801811340697012208196132354272770470555391749081958437371927817893038743741340713569000806133119792443390599788993695837580136523796414617064271064567673067790215363756443645237222754578088893280788213082873384545626818368876673576324878210892556940824499985630497782866879188351349818367701777442438971170555604291631117774383043373807893894113596036041444041145852764934979112067349898349748502054628748747001433273738996694186286907617022670356385274211248741872504128268876019856677869619055091012506335885601561556785324844675698011961798244219025892717229039180443419582053420772030509912349449179208593328440013753146038359858523191326415863965582177425463933371087534865723978049003511015604241970959231498796823714711657957544445854306343338558943180137844025901267677818597048688992104784523640100158541433270740556823515923675256466428479959002913394717402379338590517268768073352104431989636029520964135565727096484895651216062042679393786797241524390514247107406777011381915578335402610235973691681493199656395143652189530920497664386715196303433476695489059927536585023311445701411620712879362862403994022838698209455189729854437227752416838057330921968468109284725203249373343723753348359254455272907908863131064314603668989309337434308880879956608569762602276101684791596835467352264844721337058364288064300624841093910743505554502192082529199127000757636862916236235833816424147811300014433220628856888390846341106683492629013817006477164237369773248135959622234777396184744813555562207776469849242233609062401234255221529175746727939066401956351080178753815783027385596874531814991241080861010818686354003880751897257393528255734080424596046037917488352552835826203966973611497694992289029579049580562640240204120308682377995654280854215125156135632072652980481149042100781475123919384486224323554386636890425464779319542602398550419278411716251813095717775111184252892947300180847166296158227027531003214307250375929106067982339620576659412065816679217442911246043205138053646114093863920418619208960971869888323285476056613347883575764264721340407409566757085954521905289840470683167020458783173015987846138004745190899382189268920054864085931230907755441757938033035934591932002270596322680755413653830198265651928949642386017242351610944298624022342932051479701078619740879290230984481848023945902897819527442066254219945928055904486251085591420725015151905265869997341931814771478299250090615854738320235693217131315190163609012832683022099512555367292958192498704332861460972263903960104494956929163277463589359176027055315764034271556399881164930563516989307570540905104639361137103328999310427188315505854845347693939833798413339270723860265353827078192618911626733771100130847661028144240254954083182842364336545400046388898924909529884629534143369416498708342651100034280900751556992796618036000127254213202212821855791999119662395523468904331545232924495583380146358148425898419502624860899727076514526147688361637714129928341141890722565778010565885748570873819447370510363240368112103420322857050132025392514021371667809490257615359241992954519317198383431184048438824159274454396087035712580858795896667302162911587423284940912675524344494650903738947232669649164848944633247690988014750882140426376518683489594122513885244227369943336668725089069413049237653988711816147095043442445367215847169035726929927086658748607633677851609933379514718513088032601026403000883220069806213699821672235930644151805703134517573810278239838240383339083497789095391185022388235738904565787857133421535995222547850371326418562673750780573406566386246199985458111123463274098048750489089640357972400763477606741984257064672438894528491946073616998473532171732215758650262597046273604048036876558747015798712192799889350498045877674213556060456409164931123113829954996496576799431171995889413282745406334703501406874746820978000208141108600620845915528213000549191310071387263873502589130566650451071865189203537295702808520692990266280488054453611896541181358710277840590730784417967044956889430187409564156227769270553082390815973020486918705936956085329121230132426243269208178308735454876081936877406227546077533674121114461950288266839455760688897769022429714055508060905092607058233290863209223232781672359333845046055112172302204948055100235585515900526744195921447484150957434113085749403379756874812862165741770674318017541608031397790501692526371693061191923197039612615732930115876146337141212341210056605721699840793231014953200700774079464094197668249233449994280564273476203147429014029030276449423840567920348051094280518581951549878625049852261296328827454586200495605539374751794216174849069786028638655695694517366273204192644585091008754777385574076906353836979303572363269252373662357084758973764868333090228875697876963857940259666581875985217611332398168457097463068720538907004159833865852862819947722806861917740981448653234151689235001147568522468865388261968079814776708659692475051857249242903006927921420872688606549245632654398721988229617811888063995734922408969559061906043077917415169595243169207338784247989597303113359404304413161583845410368940653020689790983081555236917767423143194069862326321421690235868864610756505335198099421476666165003653249711675075938944393285941270923095879394558441838856114713372236244475708019778932089435085315591789326895161948630507696178998907024160836938059625011419107172425095882901433435463784608529392889977065041372280309784690883363121048957739625172704205240044065535763217924496265638741034472887821888521501709768925436199235424783261480013531423188356592071898901219057953324755612003760362527143769071917390986451883365698375405577454099390575887425425120597840322963435550219279571581681372178356966224165538674241070112712185183717333647919025548067221512936411422882268776733819941792865987770667829593512276058636376983915920221652097900750292369642112310998531892620192885153883566722894878318533579365728775032316406263330049199278616642489251636548114581670655650263327064789563857091345652612373387236873107837663713231422717157249595775165984365026954907296708954514819546555237020044236113253723379642551819210777918034092930717117144307324901116449384068615707087912008086316311441363149864665795957810157948530519679437442825782331936376412590397650052492447264184732240505958571576034496116168579282967445121898635663500158538556456703972285356708489333563025179947216976379840382376356561058936191343497747129415650218500207081201440962505569266585842674488364539018186385590182127274775092754907142616624766862554291199353145777319644326189648615851560916372871868903830594948662306413857925398244089639971857661483308623956526002880243538798161850473100769768464799088051411955589482492461468395848274971884704443700583677175497284395951077372208020833251720093122451369095072747297218513671944130639097180286318920594757423804650856014458379681631270613756119988890732778707949102579575391767417650074095141341582178900977465299008849603217520991551342276241488967495358369113275363993814562887810395460835411349614461207975637585204034750804714109113008497025984984501033620784629828531040001917916570834519024006165591168460186085089465966818130005165924534513064635814623211157294933109730484198890029640891111967518887562221116345004900044076177996220040340168652386501195268259095573856401130939051564916322127663205782876461741889913805985687855041206853689797373111972467896632638390339553821174869690339908369099454279194627232951873857095777691180690975745604226021114707752759906415951038319475900330652865321959290225774319150435415502318733692567472098008897744082591883703305277760403719173134515257870528586367918681788524342809212245396014357772680505189097893609243643068390676512382789498339609190588226923965125000754292119634760413015363766682702175014774635242286493395501174898393856267546694490867478441729660658422768312799267791344285634921838588167268912349714768419337145526284981988505353904082503558200357385933385715419368799058446350215521152417990278893893627954006330107475181721500414471613375291073744549657549107544192986366329747609682322353967892545590607286986631597472995058533661619120540020876151298170701174639521641477335016483810951351425376420515708310544513200858503078574003676225711026681489364754453203723183146784687548383408832498439583540574016487687902056662973098315904475536287497916452558271131311084172917150326204100898291593812826951506488620941108241667433509293539501906714232940168975415458846528845337828034290234533891692485335870596188142403933613991321968449826862412143756675778686144022318441978062215748706990082776334803023118820003702111482771734913151853249787931873549204705634783712562249453874563862803217166546721660126657529222861716442164597952468124210094157131063806052615617134285268134470047157305200802632383089699690583390693061243152317869384867863896769525659511913776164588770149970464671190631273302839661359536653470939275051039394706431111988284039689216579847746118802827963126486546050970817866986488496537108166958398874282623244677584305269988536254047682381254173253947261723918213956941559306566432691030632152023088742604609063155070504306643398225422725627406218264859330382134390306716898614851159202936575701613989530814573923484530242924533798074900613126896456782107161194031340835478032916907429059289774604229179616763045952753378921278839401046264338044913060535303684714820838496809874374432565137162605124966914084290929931504066419554243298890235025658958283906273315973812639878243909423280126377675076104116026034498013977436058455320076506286306462972728513059027915469475791373791570766109256898639675375918728933131979281746553284617863592445335241952729238484461856336147666639119845324705317095290671943380470305435780049587503519282286543997804556620593564536030661745510436216751060681466413492804693478444340190742640254218458027644068319205948614763768426405990089407160071969109779706619708489118761197270774102343742631585156204659969687304712782293801262543631533202059522518522278244102794628106910081104464225166621680028039953566092561828143717809721765218856590034906216033086731409804493796811263933728550648961737448089510590639787145113513428894795882319609250654227875580888609251373865572965189010684735899552126157874232276484790319497314993609655432077441784479043122833553083536472072676620821881767548953921041965866312835651250160762781119058577312644757291249635271554955071454549422456511615862074264912941461448613771579417568084844821370520270864761866832470588150157096933655651211420368347172794065229521703046677904115197139747687750702472293909889273773946611617246163459170815159860121073717812447743213692755167680137829142228849118963425488018001874355844586077379146763050586468839818155748239291319900071907104247503047968127624611327366492769908085548444178975435160028826281590868090609094161578571916140004016124183253266325747739290641414165771046401737891984322973262536937440447707067891541219791512293419912439630758283981245002686360188357913283130635742776016137204731627174388039505793101799457125987072699680400160727494959544271569612135623839696995058492292510588194020357012533457887892571494331043321426874051724712342397658190289466063711212825951342138604085675939231502539161293119120722952347508919618131343697168289742422659937039847361278626862056045965219855061220220339613937233917721167637325435055946525582071566760816480315360153471217661929227076510069116481993060852772514285051306806251443867639478007453446265345372436793235199954946240665519136769531733314666197571450048180551564343872028533745772070356865840785548098391511570963860350989851746251614267338783897743128553686362923130349543833143562847604280647859021592833490561457212227816683438148272660595211253931800454412682339942153958122240958904097664299503423106128182002192479596482623245643104136598914144462134965960287854577036072254504848426143200710326452350025404923983991953914319259661571409442870105026176704410136489361979572868605871535850435496137579681549034830204661417771740673553961283416184448946121199008468141435850505267140517636349519927810983153286978546266994327479992598664823971256446686319106699928467706298647207131706729217623486170604262816636785951922103598650590280815214287393558656015832589483496402446982206731924632987225748824818176858576783381465301282233736768852348587523947856752397794334246860551784345618614342217155733805173244414230683861205885825642334897178627222974256571651535209351368123289149543436311037663198867768777419366444356868286504175404171058902712919355949651002297263452222018717025984929648744285761562062571462091191237726656485124063257355504366349648478052145849860116653680971980982613902045947589457601323347572019976581489997531754721277790724818282053214219664035692478936448676614571191532171647124262163583028802734374772459699092094434844152872979558294907735657402572575029031822501511123285497682631307807929515612645087131410292852475922590952845276287666917822731146795899081284606832077043937433125221725374219950122832661446900359143143538614997023237565138927038358640571588043568184339187359028917408094098676888776386128285716074702938719510577483669965604102131574325745081346930226566608476735844421216422111768876947278093517257192617960482196536356506517461476903665652023612777071903590419557631031015399526530841715085773730843314915807962793359584181914971208724613826975109412086732770301363941321262187306391335052611280770885290885788620848019737606606025483352645597009227592308074947537600255439570378989711731773333724491094740890594573173376469212248380100800578146295117284374869579245817912750666534695950642612251477421920251398655108863196171074825894568974000434382194060229730046321096928087241483279426690146485071463680450722584996475530256679894554636844401502188280093775205902481605844727096416271224139066483981056213675649033563773593795103046874737579066053122848454969740603721928619388444713991417439924137169118182542896413931746611636724465626845589120987805119427829985105077867001937176426630547780347473793889765078945304158664968735397985582035248817179262614880880851886713366502101311666276968106131929502851456163777481784388714079660898614988725499412381429403612494182613037833072450662263461202294578559440212198252767586274971874038895309113344492548669409873123988217368498450431986639619112028167006518742352106046021043433942288184212417994201263238313744932574507791271231179999941251575202528183119888160801030505351759378852430403457729554470172036610313799336280977099739521856313575669446806916794469810933725827176333043054042448002201907476940560248768614316039283998885882539041916192212909803895532296790730795586418083380089881089802980078805420411101903292234536439022409109638961660675359515218540023740202868666356415769217346196069659327563807187486285638729845907676976551490000143503543128582257843224552784270571981398713646820216346354373226477686755225097042514487469384310885018264293087852191084867822479052391758544421846948423951053313657949025507077117537879118722635848440605165940730866651184728858319260108925477398712409413718049162513127058816653777276081286568878666446283614766461050717557926514271707379438519678892238400020556007602831613653901100670274909203306273068239064426820921965643847940425931578089745180236897805199325149109478277839786365156055728373413940216776503377433971060585245342250032785092686700077835271511968960253875474492133722947469637801870818151251415734529116935187543999384056535829016384819313559128597845713708452016527905821214412580164613299937914920288758899902062486650788795994249959197181706281258911061010155776551089170966733360620663714065899898598928752153178790754022147641565040134053831350343886174365545166938589619612704046862327221720636793713386106161143654385182505034337424686133095026925733039967087570741026301583826375578509689697060449303871974613146837944743423066889847545803731588507448463977507891619819351586188031837941489847685429314289680690980470201572523854398683386622006154797528136751039371287476312103342586344634465985250141364182549857671892651243144787866669091280567071703243181077615622151926439407546314267000934945607320607083473943682341186078728228276120729375374279273869761376837259328459172497391712846926986445048291793644486627909360566397683430854176847921967345704419602723417186771726316950244374869864903785634848831505632566987724319111470850011751499592407000723763143022590774609577641917198682801367196667690596398114772380761583317091376356654711504213317486770605881753885937193062359851348078343231748126865559132730762640834908648797052577497198216259787642482320030163005503612109616463154744076759883988489028857726410830250601581180226909525297556902073379775892321301331905764071626840888299228700963722137443579961419710990278971447211663301717592243519961468493619935371741684634719885832190197069921820817792707669921897342299197267422651815681294193972997643573710839358645296274560949954933270738861538555969472470892923446451857889599434194524324472334440262817313144751034026264396541709655286564153454460921613807797565743780689323963245450101394557980592433263053632462558584251640554897670287414987047306496580441126129508566361478836047430293420554175103571339094791120942709369383390362683878731784875239047463663407352396912737244190649032875959510392950923011890000381057920177480887146876973211586209573644970654896695265869763427879427316418433594401405334801946202751646936762305484458217842420981167514743075272548908024368859100019565724837461200173169309005505588310133580279628290776892554711618636831595863560500861634843606665974447156539488445655156896886339518290635141209516870599195829493157051136447198629688905841868277142891933814400068228034694119882305679960985744085335369045163506259055649479041491304567396302365030528768748854038546552760089062064179776392954685366422908956735842537218169607677364059491693590023721935681210813010800171460572765297545261731759274992280606477070942256755244267458971401073275297004271606386246313634425952377616637906430047142264321122693855419076444871809486650637053871963472219451676277919399894535051327896701179917464161778581338592203606494832657741493829778526645664776715750250345325317230909905828343253790087106292874849161887529330959696653674884302974256433521153726633968755297009199495945570634290451177662171980650684326455369080566797147598847439833400873471227436309577248315215096828641570190961132449061355002945239055151325555685064441421667609451509505281851015523791234392023031807946531143535651684841184737516943541895855869081868556821527520363867609972438892401385177708287452548564911540621610254916151436121005008203338215971328392849591448247362252057256127758193057841523441535199467111965222764362870198270012451147741908779134097781001939264865453014498646982065530438610739147361122178871139537261537534615998094036906364532093226117290354037922968702331991490258488668866688116555442013955819280829283599091876097041965136886032762909018438965373102243277548959205440510911375950189531971656657197951560832778156924804671977882599707828546217125675144522875236549758477455053829800232155115168428474964781706360553439027466399636457202120108455979009436831282559101051379406190164650109977387250764021870775252898847195115388573351332143588376244896919154346595872613050017197923293311912051385770184002799697500756676337229305710921904475048026887974985193531213066295796762768902331993376694160443653920901094441562939323049883388407990049816845511287010245694162777581097968305804839949304383567028407156924874440973166676055273815968290479510027934802440971874320848829612408686941175620357517933202814712714356453879258497274636504264489601095430932428061836521986064998140954806059951459969290379814137896515315435398892467785881145045968364377163487662692387428206870398278730079792058896300070956018257255900027607870116960491322906471013628134229433668373925375850217725682676077413040141310427249322149976523895113214224887385305455543301170942341337840636132017945904432951405808960798391203558661188457659377176420942223891765528552589337036690634397530591985913940426898147215936378178238594501288819183176416215691441492803109474831150777305599164572182470266261558560717530893453199544028836472482159935981134109884311965620019286170835156624564965750591784329890983510101463929463678270965096304191117268163460106686238254221952347924727946568901738874347363070961678440116492170136602692327227377529262723520164640504688245198615835285572654295380510241842863582878864561277942056913509700173452220009249869609788358912790690107937935693907957697030111454313901002560681304656335995917626117902200056134702957525492539804622786921963348521051810118916127752182116636974075724639186964074849384632089741172813864036273205537088418613496255502532702867189982782451195027023749302007360734189540832791673214594948616161033341174169630937252330238731855722400255998848352551067384574575793482429160656281738704746576703566447695879743952583222841710637829280071391616461830503171631125289785438348333251044069488964146534029038553377485028409129230491064388314444110768339384001845144026528834886769672367688747334006131909975108482797061555062568153658374461118369465111235076681183238984500944201582305319963268567421428796444488168291264450730829566243189403766569840514470381345066514901361047630225708231895528039612727399771423915294418424070458013156876005261911341520564345281338543755374011263018257145503658192969222558527142595958072432333195531068534911932339924179133404950019979496072146152771270525900801977757958174523957965560112004169045459412438635155967630838969638764369575105435490406831301164369944225535593804276846035895572235914377276381191670179275803453239927115074791014139704715825901168740525212155559108257791288155334555906695635908385495609190854607539432583342818393867934941757875390267602568269042513867956823110113613782891709744008199893836394423801968600718206149773739298231156622599822488543735138296895702847335759628494180991409580652882850888011396323332129805391122050862590578198053606400227126447182276202017641594329477770211893785819014318784914260351625459950697277442773454812814011485815040955797655682222053721239335121997888816029015603130140652840166261483394275331890970349695000819887263139644521785400289551294928822860821103604975124978409214786947154475319513087639274000090511783216209728147185070985911662649152253956129156936179750721603054898012994717209853688348923759010716699348041129350918388598701024329407266189292591370200112447328145933928068881550304671798294778276506501104184689942191367849702966381278478259067330032295101323563293120878924248669713337256415083770790547247550951947598436758084909803249863028598799871979907158685452615200462395256928530512152965337541910110955612866239269289827225012324631735031404087789609833696879494424752810728290804767787187962368811330756168979066291663028562312420612323577969923668170587286088524244328910803906251108984126388693921869659182959010830379010270641161967117874749591221400674280580425102689490331572294108029178552542599784143656599167967818201443766344852848245380473294266723554684630961025646929869721419696169597282929807102705380053576098265873002332051911364708780280505985993317921724234465645632125034053828488993694437662235841664804789747465821057894403571000457547668269079759185308725302552177582795752903992163676761739359003311320384889471914217219786190020123818212577572777736512431373694434787489508504944260806966639498783492418330175819590162030819314238939721422255521248611559126822246212483958380606440004714093294282882171194825209289025403796673108324329531514237909653856273242388868147361409117785117686785777136463584599427881290842088870293962091989244302639775436859329159052650609118204397237848143680223474777776814991743889422573944379548371559890346905827424133811983904300237110758178515164527163765183330690250895286721184182840955518123781995644276333733006547285966832495558453408745445990319633390531899100679451596505556732399207499339862989476328218634041648865494310038823676903965375517117819300401458396081872269179362920554461361910160941771444853411588925388241992872872076569437603460050784738626031888816613126446379711308942994145758171965112285882619137967265358627539711561723825422543831402627540443486910294686094245339104173837166324821617729117954901935065506830195070597728302231836951682070158114670403785729969224986800456095426322004777334437386438479872708797257801097799417187143151409856545853173224161859875022527655871264690363432658657657102565229943214999258208939553731863985557416139989266723297338119386040211851718542435805065689110305225184418553722720841984416131777677505231619589008953765849518889360341250319518320224681706000154113494023469096532698427595218350111001005907885336372945713125834385300331939483640500918466103184643070023001537115984332271920685952267297825867735885223657411094481864205420425712273548418679848281380637442474089092712675567984170884019348072009483752484370206855720068880434687941727610965336194563964430946621280940279000123845766916708743791802788124362886759387937106657573464025960153759888434014396679771131249023349959036182858604219031891637675173568758316473167937500501009205932453082382691190672771649769116356584795189829511717506255378607676709113540295694974966248866971701373458097700631700416861592970312113581967160706904336786655089502644203514436690200433934583307497109333379711642792353068577197510576102356003367102558996030654845139729547915212154041060362567293860699722583069097993910146314311607388270068222935336808895837302482075452144131553928866528997293393193485204070989733672282521731582602428701649393628348650229562707568247852706560340588856871047424324431792112499651311977072775919285818612300951297584558280703438406189627579977730982289806501239765865019406568755094195026204308889467149319493480626351158530115104132735611495646617318671643334017275166994000741198482302399216863544901432384912545371190421640122403552882639285686000558349543507462932898331377437178878540437666791756684869923450934806157082010282980424583446983519444234667170399050808837580587187256699498843795318038784573400537066256474401695371875684750245296199278155895413464149167904948089460994945242486760620435572211589202874831790287132274081182738469765289285256407662172571045538505892622002633546206248925432459958393037775830911947771935810768947106070410546993699294358861957709577105573512775045324269721955004401352252220051651874452918663125240800998496448228689743998958839549344469862731684427411304152628967708705463008952594234106301406798362695486141327665801146819842587744848905582229585912400042165281656546286072496249382322266848984727193929879280066157067338345152252570890778160794219639212188459244837797618846600440701284533346163726520930547684908798449879900958304132866981503253710739782075435592423396172539340519986504622515238483547549302415207260172490085367458232920302732250911904185305972110124395454898248843713645124416525367349280612170387069024109600452507455450785718142523849475618892589304232840787355190787546029690286432716110926157137050654441453495691127875386769263279735837733802468383724699226152471584518444905998411222811750863044585680014477406432781021089331010148683697022742292962544748740124950045386288959233097003195225168411820252456956846219406621598477822648536135897056267670181866651007998435268743713592651426990855263424298493052818372623825689344482881754518757004081791168930665444042738244604712434217663033661200777719554099582820872210860404203491868100645755606530607388253248223904965494057478353057662647869668194797416221698539173230033755518791409406048627129564377430755128540920354545004043393066528675932114516993932336117225029808186767168087730138708310839732941429779884524437945981773346586887611361495037394756669777387407497506555375766091542757254623246753087696786402873006902182675151261058292645823165259957826447117149627442590560555490758003218518021993659144772878981260562340503982177770702093272003105091046718921629757208810378790860999353395948091518017952175433028208613893521063165103869087192238789852052204277601539307500585092182160134934929795481539170365117026401922240035697862096869635363676414798883610778728243880530901159672317656405813924757284183755330826816789987980096572574454661058391658843430156982394691738189179718525212842129755757905702579152921653300778709627487096303110307509168932074793787085773893428777600668497616673018297311526455056740139451332030181083029984708087626466434267576043492078559154115224866163221426326910461110029600806193487528839131177480089044450843834577086439397622822046477057297883906237840159374537282177734147865265454303728182818484792523951556916293997714936924818550898198625690212270967891009639241992562919512615863343308417875007311043912680793059429226259494714479844936495637284698241163521196406330479086219415277498935353921380108458754448774905053820373756151592985338246041215210803816654082243661829954971599302900208136513405761851321105985144664434334235954312513002998558268174224938799565968305130711211966083705786269216316342355831806100524121797295210664256455301609251759346868543211812694064067207789802722804451040074121096303648906050983794956155560564838621368119961260608185791316821486870194411384668565211675689187096737981545274192068477190949469397483854506278095806139981563733335528736954123930843330908041564512880602434598652117619851092745481922801138532843738938904332465035302384897347402698709620810804710276658319249283346674959532152948683388172314794603649459759783283029397567332348090027426841335678100001408545700256082440703143314211933983557702948799703001679409701145896704907778987160954614235447602467311990260558036590149530810798414046605188242146123721990875151632100048400728775206304630900169038644016841903302982512198648962751105246944285434651077600330456435185569585452213077241308597315009704868814960784975567904479823518159791574017668173009816801390117026093008345673933749361941137880910888811096380106870005340163204102475206522448642796690349812865727895198822725303942517612559622200249799323786985361281910447678335169654721606960301391337640724018906921198205253063277520690042623670558771826179005462960491948489302390729495973160942961037425251114641048879122050568768536295669550026490633063457134059965775073069181953445179738600673423314460739820866158393073462651123042536094501793870923396386571330939343795710298892054539038878000884689701023892793522224399453024854311839566517877597557564583191742605449828543918208808120826677824520005952279785162065303268256046789807119337413057914477452178075624754843370887905116832163973898071309874050066691690279702754714710730677140085644107577554039504291956192237264225368671599566652080273055325307869148975272148008298567776500030059126798274966847947677308862058113456652852968193491169678263253242080093425463067693004549526310230729801092301329619827692961513781798629085666484362663569767108393583161101084711263269700473104344257202087010356429840764526127056909692855752756541177510239552387732414344318982080080952634679367268674941965762506072694363096242626288119027952647104428282651395483890200479444460104009253506887955887102648965528970238901609563622470610495036504282590520203726047252750371046735612431753892265993429366686157979657940866714987896175768537845175398076074337653436956814985128798787159267179114919267277467506510263093548095377522356652373704723493122899967830349204281283750538419570378715888110715403260258565173901645067292002516159307175932244939897126674539791616279763419178073419600557722625816290979532361049757034492229531918471004277164068182553723041083794707816571485153773608932401272833274052583425805504139982173856317725625080053845613867451546711487960427566205433964063751852310723433454000486952694644081185833014892971501412969806711384048570730133826916933106806068588930224026982968428297522646387081070628737608587454178339794336869049094161156398866218347599843083098118813965073304635758726276615357662358158119161329541746588498411593706489526986893746077369351047341255690997681625026888606553943790634479850624574577468458817574695980858421343830182355134984431152681714055490088313099633604692464520510336810321250803900252736185745041581711912104047712891650115996550339095127065810195133991804239200139372120855600989151325431180373275489534840770985719366911104405211256776125284773193937048552476047934823861768153988054457489628501572515977816812326613046126650835641660672469271591154410459099363033034008095076740384459310058066018001104664852563726744056582565422754226611037453014475612650658369229432760886449558982732476559301792912049174130516960315937582631577428085799905524067093158069332281863132631041251196993323358520495718612559908291323637798270597832006416597726702531705557624671106546806114822474616105434962079669355044436743652725000330355294224934763014502205886955565417649153036396156975617278398262893549915890451511025043777105061886822854347365692579918036954341040510561198980727674259400526130570633025606904458870307599401399038832173414494588689697248512237330215574105544039951056533280342758839830149308600365251360820208503138366362660456338465494052256923864182473259833323058719837875824795561214390058653768557055308586214957595886047032286363033835947430530670689633534431903928992980589141914095690434734987139881375508618399727575178446382912649175062768864864949945266005423865580171561925236683597231889760363414636032201451405871937555587109669983017257745457785920748471142293244566063024391867757039891863016418156573155017418040624227818996101362300556773073728011946840710501548400424676817371415704781443011257391680264233972880796588040227935423696799205043646850153405871098087936152838266327778592261053853508912121561764874036085554102232915030075189769080712039765741567740058550282983000955566014704141280390496002998032586681171431399340577293987606256788186162795605178424519168944041790077656585954013514136411053047418569973637142882711863775015963062174106868982449506258411896180841914337772474282494309709619375792997940118450890212801676745390821433888998151944530229049697041778889732455640820539895482899811708012099587581575777365104716645920842973483719173602478323903633701610884655132479509689249622182268046794313716242003507016260463781606186149567548084985055335602198450260657886788266274584224821734086579924128617426707279693169366035426662423219712396457202281715577776803592430082014998373205176695796471367964407280548356004281827619280463844550643753716525502164130141456465825661034221028907911551402873182903674276819327705638278010445825385202961588783753705745639404603213591388488679626179666900646412173623884828140859950402821798278113382804524733163389434140810665875486577484579000342735368844905698621724149967222582486514090380176792372289913921872704267489941576219384387196915331978008723820437873128715904220164919445137147935849665391965829907422999317095269264744607448304583096879979844637164194682344813942231890907887902539185601108885897999796397578746900711258258086219499317098278302609520683587868078804751429007444565373183956641432690668861191364693051384264621427181774477600814506920260508112247255361597343452971316072461942027289548966189619717016815197088972881362068705716319805791239233846390366071005744594809704644356636490341615239440398818220582721469463622204913929577258615580916324523038764611337232070075656323206285977335059383458089634242353047211934413377520412368679593347832836303478689269366328388274401805716890615230473019419228685329266004203739071562379144408969839831962728332656154278924679030516050749848008621681324182101200574303613734776413613306791318086620892865197973761461130111295436627587712352581025634502268497822461406752477913490417606513082049826133880630992858510581263848584265405869587385939953490000248108917458411959794844402124399169246022510564214523129728838172919957638095367181194678409396436696843636879827468851846093616438101688754877989331795178586811836937917384279787522739546409432890299476313614706957112753608772102166615238674784730582408059914540197951393255047606457315222956852295813030636485290835133356754719715927438488119073218115674356582275820866910204045691599804058732064848225995657289356748005674277923527262634522634436542577476886236889945437428396832379568261559363224522612405749594274510756843376465855179405638075475119000752215265695828471891925031337472223987898979299635377403928217068050382347165446889539319336555229259364982246117100737488951462612556268940155578382623326913078476096252254883442718084272646375192133584530909805580352995171420903610090376522465205647880098371986125802104436894435952649052197227431603731321572822947258263521484887613473721596367763738123546945018155916453911405186794000537103373914803734837788329211289663925941825304198878409609941156014994947792949871914759675236133453398105039307999319202303360340054246821713648918179845376556650053361339624009731892356626362540603840304556111386358245734583408306740004412153781793636460286300132270429975289506530712449802883124462393941610722296887272866661795358728841054856441944833810919942807439217038577579034897160450084881453446696374161385798993096022105047302890164061269881214602973286063053842873268270749906604049501626439874097652608609958692209674200757553028178331571470793266697866757011645464794777795321026454072479677577181355875557082250591011935714758879533957873283435879088170435853076059304683098298455552460419587822293158613145331679343319504235671305645835604574103351974863467578627594826633983250651710656951806104748707029245519150127259574887970822296354224821860890311247746198623157914747570314723796053512763069448997781078245418187799116427611600770400782254388775383845118567503958385344695856839678668641001406218807953932092903743259727847635070750663997028763787872820137026526705415089143270046531564708148645725209294253675153127429588063578026554373168092787768427906398296170693846604065445292245582387694003980921782456892440619571069986861689845854216361656934178001069083003698676143896098668235487231427920089875252439680589768105272999663789472213292319292697220014916304690351084223709638400172019588256521463864064083497422221947522355314232765212039889969679017394889004224849659376818084205962882015390333226393295323054787086743913825303727356991811720683998921728642047546951694227695530589775542948936810379003895339629012965243110113992668497958527448281109999072756611257745597527216535329663253167702145373448702023305721977941321783840571035884179154448073118135726090658118584387505005236317827470811260581332884283559243523618715659393383893064117907573830484269310669885854005104869197873694795341462836410061527782285745538331131261943533643274019784417690726142714986983486497138261465408836471416027592915553041539820426282494281039096101509785250316814036469018314281627423416359401637628830398752586609165625554881786535965135259513692553366375245999953818056993896893194552919041189752997744362808602590711868526266712775187594558923890737978597434416301411490636588668106063478842236625983667451264105951107432026159023979273047978021760772769190711338244271164765047527882187874345348861237696453385244546204984918134014009431967410932533792303855970734271840241115414385235953658819587454261708508428085815134686148690431363760703186409317717827836073962069365599525708519648686803581489752606438290274995963718682380915758191964148113121149916469999832454594115076178143037533971539403938028011523086447853939147330294377742287508606592023882045041917245297520107424133499777388458689470405963202563255309998966375224681905724040583277079999240750385497910696011120384614966950378480601209367858433160493530393603914493731320469471335578239952067863316893495346394473126692134117266717147482762032933437293248852540202647938991939079678045976283195721423661503947455028536694299224630347185137789772977534887102851215156961619203595200717545685852907906553603867673891796226858353877812712320491593649753443036248202154009718582023987270040995961118682918521979269921091553890075720573578456577616157149887462390784622858954562822656242229722463862864327395986574315740505499772759565222305317735858477732996983390055206045584200325806054843574472095677069327746530391999918230499679100784500872730637398447439784914480990416754021724581169217818949431229985828282024204442562490096331476338048604293147392800598940822162800274932813468209932418279615194916882147852288547752691121438796403915308791607813894085740619155405477028229562012900616107660586613203009768477211289585565362987866998576639783764322703038622465428598557851338178171365592103404306726832460302001251952349511767088480767646027265423421032468503088173933524229593597425856037466022863654310041296084319889476840798753681590551086816412764942059227053871345373298102079415412593702212942178943211986116314926752164463735810906753578616804601570787902997796641272812649836990268905560223952388741665177873649530324614627709381771727730778351299853749559951297692390400844090507001839710073681088961528946939550904828075417993920559100527937342850958269591944167771409478615644556744737406191371902320153872780801915925829111357789970655432452256879857247442345355748072661148033022899475208665731829764647890135658966799338735014651683295775854946388641213792915407695050760700297246729108604039678479161292967585701009784372251838496162188131419171627118711204247597078035595143196298979428256315039844617618261762638944474826992517763227209385018716329998548839012216849777925128040212093912502348186160578889749837897677127799290720949549954711946015003244738224576902274613960110868746933259203017945715178137156402210574784991099162962131928226365403124932346635892079682753752300002608549927255973282521747035111182375846739531886525047662428378917708763765605112304961379810963572026289867423303576539742402863104491697998006650836449560392104403351902103225373935655977052520295768820528193426613664029593716947031736894617129575308626512200995559420327726605386082005430716106668181372861238914564702566085800029762680406253170307201837270711653259790717347349319743210901859758609764595122734504447807305933931873360177174592681849440101389929478342329453737826937767712293736964556149421248388878179495938533230204109157065319585026683837163525160742316274138547206818240458439028407253116295743740783579293465214591538915958701606678462597995432159261149795977748906177604722359261510039097705292305027290641407055294362653429141951041178368335034511588379357140112173252646631064854290315064932759366980044328315148426822718585053597918835220349956048087802106047003942284370365303995273846721991067629081390626781283221588952780301578875982928801141271736231691144935610743997106795026182641706543385322668843256133289299775623887250324163350551929900884532721118384624126153471016383127953854176865878894529841382104084886815615908322967588888505739288872724640453063301041391714813470358253332542189959602446895953743818186120596853775681534307805905308271183782829302042754711721471902092804175637619489192851939471433809167079900478633322837197010879906313758056253661187530480004950392358892512297731124129699256104642288002722810270302015797988892495991425567306303470862693305020019696917665142571446608438723953563782148974387686920065227397458439009738946007155602989347958359403013121356079582166883423206109441837040284569437288019648719456130610139714059562242178130190987399354035854578916974918262961678577750884035126744454512357723327825923966472784459716787725501514393866238664405679222992738611267344066012996666668667955407769846461311382895405656551956756006382761165239341053577177642089075350754353514139955776169893569196554911799562872010798523227937700962127537429689724792842434843921136920956278361178702516512461092364004624602234115582149731589105556521092493312759997629279363012546923764622451239511962080427982621057595590737061109355290292637753870609861375230482103183096707703665134068439489620899020054999420017522995581101033272057725026788003688903011519444255416740807242538223454720332975441524629698847842931800924007630580000410940238148675020022047273585435273690948426703610942855077277433604194395190834998149811358640846849202590902166590576617839857081650289683705798943338656092843720971602660657545027379525522893066347693861201880329926148944922476254306911461151645526959379249953010377836219437142377437377783953599112979598493782806062883570297163831425379108997962065620631351402503935863741842735910527290204226741257858389214492664665862299835539180797075771446330004474794925276166769054605750609383499400177521854905286396390751831691955563262286947081497675696156703141047656124242281424814902434915469838338805974167065206693413502746738330712134721065270951642184276817224699472653101890363779791362523192124311798940675109593059821113510817450781503415472377047754644533753251535030294937115472486524245154118011035271160477214971351005055910419477800225532198565165413786962712011714318901143947454107461149441135155927304012289671804611487389124292354676142399862613624128078991558196123273993321274312234616450732472180259191963041630792178156197714935542021698552823682314553805904354705346117885148471222827206552798260665927110279639780852595213377070302368759592370829732200658876515880207190365432157134770536253582487627867032078022948518172881815437761586750454595705279251006934016717251924713501878664063316166178958452200415185939555740587509640231607716694360213648143857875647741480494182420322053863613731961170523882734917097597106596770320197025764888043207319182890189482716858615519683471326982986216556840827006051286889746159458852724069395172067104102944136893111229396817426162702042560171308850905970873116562946750083045567868273346480176602451044625279783967340363913669617289090431090115882082548613410127978287525942266813771158914415297876926639761655034615816087028761660632150055044793683860569102824561934040350109838938980374213887992156833557249921392508258371597782173706598354857448312780911234760681232824948063195893875834250592052210557179975138939163662524089413097080184646923645362929738174955950415218227408447690864135701074687706153109876488344433047578410921944656381001326665293568038632031491926904076314092634361813344641554112103320797090017809456073184271656913062439397071134130633603721659511027516140474922976880563372191799975044445856893065663007247055453562480971750799825180969019545157522115953314342244507933162876568969100836868386179292086280705176920147450971791282202748390319421504425485623331751088811840643159742460885237800198226993385311232804126504562927015637236991523162704647905757635422641515542375233567118942940363965481699043931797776007136991330075675906614781490793602628955177375900985584124816907495508184820186653277985577608576886069108508179384826343043057954178126821464882575953508961671262952431490406896410189265002449529670509088941141015953847406073528621393010847896966181631234637047575314222224593535599995906652411055619939412500447645583780761472534825309175818377077730656034282392726149702386033808716193831326261282481576731825533057116110925452067519110798700918358143174009189687520767659469809352462812687197946347029336769018868885587543475347850932708791444678311335543335278209991820972412584005076322604544572616263363010149370339261939547029946490497441922665764209490840092764186183397479614467546399723760704910335415527327697442072531720221697609547375541548775059052585542851112831076910145213141128092150831598593139466805615452344958484630570655843351162961253186628461519420638958326545528678115278944776980425016283209801887566280900222600546032463557812701660935580601544189549440420778847958955673975947880044015855183734095361716393504403616310696068507920575823406517784235591425049378536111635090113537573166389846195393656432086513966322485405878444487269594030355923498044183585215295850387106339968340607115540541068697448309928976190419342441615204274378764944556199323339507350186015168999375506670470110382074820244465808622756179262262941982183628258897559822064937874574140768439987136030510983173295467048340650320073731393969492256332992315167671855769664055344672168636894060668373252641007614565748230435311205293708377394956478413742438854650318100570552932077870620176104165066610994043622533882513041770415865206083649836258068046660950092221816121586683185327021452713936055944153608359317190765306478803209624767775139210027733116972387295443383883487122710927370510660371230393232213683601266081466574646973142393812012419243376129770146327819984052068541234280502727560431191547964619868751961793237981442109946740618038879687557465137362841988142388597365341460770502329412739239596280927411852197857158628179936736560173035014404096654774657708770827930281797632261261410661315458027276099351383665434415470950805680895063507105804731817313637280958339391484790561960689844888009352292816343888229758641973138353637078761203034655710523781490197665342275724104121957736601965525103426441554880061568667832267278863764560813295864887965238546338091200130533909182560226743897449836412358585843483273152447164372323625831475547084463475711275722296564594214403814937946983744708956754254070066268081528283692722995049488156561166111330292443301212306548022676134691170360004843309147504026235168247317702992654691916341252240689460495770380859102463806544464067227159887871496477332084694470213263946332319403310857641829344889958713463050241649666212547224938663176689518349813843014077563313255185456261164813964102290981454164260988105745201497746229550949357578505759609686678256969267354170839776432435088069878904402810916561763238133495253408209225007421310840078695399209099670782366209620081522899301088872772400197368892839787106356144656085608447506528562717273743235317266560971740474288743338029184436141648747133623883831609442293471494350706331497491281244618671627637945254186720190529527200988575656105354961291684483716805351342874011774136641064179692279439589533264302071025149535873050454853194664916634195920798229452530696922988990672298621144532046819865786385083655139948289170557581897772553857577009307153387025721983876771996836109916352651815959942606394618991241702850281216653630730299996338149206310380029559284551764896738593824627938535007116941110133264511798236280526909052826952483551129293116945628103605217484315216306248661178720700767473529903872516648879758009837496592320682065925049653918633232383599717799183309195112979956343756228435108311025301053506728767502808871734506588190324978789535406133222290200421580000472734100096794028633448825447219554697681818270266542135696707774889966474349019736645931818984657029533374846694570169303066891415940185774585460969422013780442841056914820329573870906492843028612319353492591297386494424599215662998094339329383021895253658619982452700987431763139072971475450969994119265347542176765852239261309940292630982244695272020451627467528388107979358788035495901480974843652136439081372297142415447003000181963778380182327759390785629782418915819318904743565538305952438194824577017226505564815963769343521168767139658281416081972569388010270248498823743668591880412917310638667928624970901615900910247450354886644506532266445683719115700026542660009265053745415248753703980340853700862283093761968011501584045260814694500346757479928324941827519891758287497465441122429470674890413488863328419109415854360511212877183601314438519013700770871733656945457218376910169368391320451600890011002956285773430168022366941429298485497195008723913528771888102576436814850924569110113898605863182342614053322089384379480855476807845533333342996652576868820006410561882688596574570846808753229106368643011901826701298041412571649909626720269194591873223295885033329961085822809529351077681052370497965143842682815526752143686418750345671323467420332254928476802600110253184055908253132781124507561908203967102712178442999250069952814843966155762441966108553628875236092335726777212383554224113589342402655302026627726588511769476300215122944118297596905070505880523138912313622931357900686572809146033452219309556957737217942699688145394226079901939575150459878106460002629645517216401289536743803815456452901215076902275941205236957107595238083116771891209670031749754940645151101476577409615756364847039311220000920675827074275176136343510579819552132112477598889897577365981363269232919923146034675427351762484209628377539217068017918204424200943461833334192022892971150800877871767970944520899795256273946980250172093865130084325672701547986712071615622688722249298919537631794513747885565205015921412285970644042224827391077059009207484119293514872375761723976607339082699799618353218568676919677628593680142934492302180107917096622757713996733775090990390408717646110172880413572161762364742227362220653641459212735286282498071519770888377920363543725811755809100364967476694189266336947432072719534447946307986779146176804790567132207175787369388183963354117503590539437784705752771002312698565370860752064112796617431135947735295532830174552367724087628601817957498278086733506863571695679354919348054951091785505910802879326197978535537345689205389875837611372571050341634533335754400504142817041490581195420070716687553758936837507297287060839555840293504778944187826608942312494609799217389094069383933911418024177892900320969152880912267149464673565057754134211982290622145969801238054570009115660956541850679338956860773957505086285513568759886479558552694157981959391249524273574887923839373186463319193367352597882347992371610862911524928407946999179282280854115523841451764846869052813366924822344806939510808770391835478603801138501490270540303159486313699665025926712159035599571846495051764959589584873037008080943932702476855028193098485911388532032456564764247466778583227958938260240500215868193594522066031874609193095679214958443173121563600190325396842733192110822780658199196543982780634286355989400801102050865358402288832737112725264055918551753234808659957729814098683656495185094103185598308540861670515815167300699456670278555847301502704735977946359157606703435879595010226985971685589335561763959436316783616095276987582645211574053445960026282722587924729337488319453555738131829970207644313557031375405839048240731409648652093109146455032110020211609547871627537943311920221707120618617661092683400846349434582573880237874236879707159027290807027024038101475502811667874370451823115828150519287155654913611761653460188354889813169107375654178582668261723864176073008823761574607489825963723629405878199225860409070585677842945943466459695346189137507317045428792486317905588478127135404242187529753096144841666533907215103350323420673778463930316361831924326614509238268161084788497822004755213390376433511904918025344403979709408013064748167648767912232033894502437383306513427537643469610922822407681354149187574216782845548694514884115577719947687218672259316910245834769072805862720938023964163865717710125008462565567339130920254715611063288023867441939816378198413856012652425787564764852273680651096793724773140772119739932107474182485283055741286477353207966890742529673384794035054081574400179004006596265072702905851833494378807403037335695347062643591685760497313305255829822030371042518169041583003171342956822686146602695735162271304183556134188380143625557315178289956273927197937012302729534362808901949200841641136519702327348948896843703333605103970259897173453790219106209682449927020327814055032318281994333657793607442037703640636565743146698257282235196226912570468472992817766173478535957883248095680858397367755645465866636173474239547792351885172487949938636617218599433308776079854907924538939783872001479071424299365003650712273226228030569362223223687447979775452234232774346330401645586712775316784241109005692459658474599887732691045371523008873996540072323073754909780122929607013044841986019875222380256303464578000206871330814126335788049431003757531750322974956722232105738413712733155007874346565808793790533945300892286192774982522987656810602770276699561064920932668256058011310257323072026673690617517604991094892652827399580015514746695463825824283542752651165576324372055186343791901015576348116261760063713143791250053616403332463281526627075475721010087318919138869979554178001864603070427974867573732201603258247600322147578136420531495355595850144849139299278478097059991126104301762744858322395039445819944245628393067195925021942381523889122547450157564408953753895783631388816293456353049154771038320458066581972903519057083014241017324907101558847074017900831764593591047695283541335314091839876613741261242830159264173561225543234411601959422787431214731929564163580865877089154127448975929793421656795755917347389569921925863893362776596967968572666358826296793828098880676387007664177484105146642070324648039297490285550359514511681566843734878754068340659942071410971148498795079837496589407246827276087141218292220043217619267056908292252741114685560967910200792985747693317216294941638624828223696620181428271518695973636406281139328205277448687778742306231560385804498088154127215409192594201044386509783021093715757903883058403286100165253840538645055751694548648727608208818310891747468250688032814180396269338920352495234002985259526162198333099140463578111380582127423324630841040391473950767341125198570692055940253948844418049249639611167913997879456297935449149059896889785911943144727406829664288885385184757130065452684519583911215753095754768911044017378830761794810145290716284805082563166282414685315533528665005116914812711956601975649209911987995816328931517487321058300597204107960140756367624308338281473520550414041523473854588910439214795092930991114908234708260033419362784524709440439249153829205266806282513765518837196248640370871085036636825376884383194684652993929788909182184403587842108062165853693213297311460397688609066004413876680154141611852490724470229330433299129843809657813470210445274459693837557644321895769440831438689965632146844425865324819136288424722612354314509881033604428681779673578547283279574441305320660048158734685495613196598799612348306751961193755629579886892432836606645969725040977222159300433233649667722111633431337238485739420269557388378917894685642717364866865847598073896622540502139845346395582122693511848007609908413173964809677452695541628262124212520758837698850165016078424185196505412949339697497848605942591587357332565309409479630158568109371277703933880994688071175353919522517088299978863472887745259590819007337769906176907249797850296554728772901901729457974533630945235532671098398915207534679137516931522888514513396737041163217391568439246611577793407734304723275032472769837683474284637752141342459441177175182857983935988432606204512755737262779492865202095708858086624458082043942930895484526986743673717873775815851918270689224603487197396348361291454240001631244554124133610104791189268531305630672156393730291366504389179271234089512656642955966129992603339005191973274210975368856571937265590658248371758088688677238780808095733852138729122536702456648482799722660560771574397296536314662771182432448438483846213224845225935677111871194384389398659667044390154353738356892926468825605790656787265434712111014137578070414406961517062001895472027050775727144109821454005887257445878931757025614287291557038774154858548643500062223446156408049467545751187917811919036266160528751393252420895830288655630785911626503517392558812926963566498764686192113301460565103879263510985434272220410790451224844016450510477386917670219424711975691004460193097317359167595167247083874773045572156859114226425826894976995795969871200270811690596677496362517396148119526841290988396872668730482231991880169761209654820059915989390760742767026163891086520105332204066210934356587547716360346160011067014125021259099229343405538420361307393599813650772362123479425267546829868326079639451226492943444553204874009855123784516834893464806804614597738719379460180195696476746559498312779623906877484610545257769483980075723958779005411640959482856989127118005508888353274962455113555480794846111684829749447156227559771484555253194508486052135479483532549199841179840386798222787379228803202828879339562149740232290229147400560504374085343560107652105145924078081533863857808678735063971834946294592104986862617428096495244282524701801168048259266208049673453623835943904558976553186433172673808208739822352216191978873877397758705760765033741170832248189121360701877910205005073593396550243398642907630085956602989074713853177758026797349270176027751346855469205089205279241946050514927194350737046851282660600822861191174582670721770334719079555776814667156558439973279363952467891671603548611661130251019477741818662486932428894776924666780610849544676734018195140768647397893318449094098172422432866804989639066728408329834170877952894215318539615850490656129809087804744349856418696286836837857369443607480868463699813782807286902472980871078355217085558440822801120190838169924666839115874121634761794991178904089774231581114511824296600837314197318119337968791459584932179953022359130613304610978349450025806627822840908970311186265597812881244763935773094989684526498323644530526002769897372715625426866693362490005718669834610069032219117074135352690367463854063888351260160328229843384895676462696820362860363322842567476447787590501142565563855019522704044171704258475495393714585988605556540779936790574251170267836076287005511428897395519520243335911577985381217599204527304586060024800646174860151525373243421186982283691197262769594237478822314847614362660885867800319607215252748518593190866709233456592521708700808252959541440857418097782396243352661236962767009624765590835655806924118620469049988067008947665423382003861369260544061166807554986723769156755716388103470388064906217199139049919033205173786469875059575080471166842488149513632736650689097501189910349022646571250077210650122092632514058497026247289588969415503771856792016046941297433692900192166103287968089866643295890900435145236810813292227435643577082299089752706665418717412521149940850212199173258561519742523112281882177165117985062764993105453994164894493748221167227369452863714654404453408476953103852248323249129871664529822926699548611606316490119112100698416409910366258411242243384953557611159158344873616333918094316525659584733966839836449606178029550721461759596447506611147290286591614962694102434524850493237223855162753888517055230532131975696402140524957816508583473735035954131175877714673388649252904673621633670798543215974215289049111977881198753784647633559773287238796545969706839994365544743168883935856292007321584148367312531235423121732706293492498739172883488969122360912825310886646232550780774366798791697147128645205207168198117131841073131073852602437557414469384098713951503376672950075115902987484962107860180069537247081063211134876890210594921592469371832904175454168036599272282064419720049289495309275332766356257658525179937420595618538506929229098487707695887845072251199372962519065182106640489889698001740046427467138339708581181244145180782097606952109535033966181322958747230138780045387000055346930885713558007503439907633614353482031492557020593571786842538577825549031841161264876027407314908826550792738695166406916812250791054371166759000594360040404535467084312628753463716011061567568221671844070634310995118446868433313465976571741132725676190958462467372570590798915903635034739298286053247248874462405128482438821492317242066788593411054930825350414611106861546486312705860413210250178983941719774441316432888720116451240390884731468010131724672908773987269266244753619600118395656616705190388849837075516294136349296888427808431922247180267198373973181454042666054386662765304347185768506623102129395399341627689219977715763270678485341522127731897951305169397462732631332504920242007660568132908018262121722931210539084631999223731614606048763517322576836550690994972119782693732180012628345916887998209837897220687442846954616975529989205881067041199853948399538933357561849729254875580277993508795115875244378512020173166725807619830217069985384955825469752818516329249821227878829658987010942731020794155346412260822348542667233431156174818988075672494501297055630741865428160300784762958911980391282380851675042654921698943535074071927957412698457692792884723382861959329862696912837543223080002829041878090258736574290698772408934522419941199880301192332640446924064792154038217830794827576494472618842186166715240665073920336604746911791110753595454681629821009898056965224207612769773047183279716596055483764916948067652208891332454856012619706977903823888024264013625327706442578001589850871088432813929372812836804699523222418641650653088772995205212008874635296629688324384743167078133250702170095722271523743917106831425094958112056823077219132101696686174493155462063526175216744422211394372960421223158896421309392860961475581923595427854064716627140181083249370616545361291416417676366916281372167913654291154501515809491626362640834234234501191502455044557763869081001563776923069573318426636037562353972470867570027994685693577525039913297098616555051914748384704918455036942803657101837004420578376652515517991746784818261901455344156002268274604722132091650366434882169420439477002638888158915306484068920190741543748764321256971597841958888188022129786107521181748615768286476811784758818980578940888312629330624152742552592345596473452887605710726269378882488999908007986409588686302771689292676583387610560129248544160365938547157635148518501609781826275334422048735533416987006519490365905871216918389249277472302971927395755667585050816123964818971380462663631946123840791208259863193420015385460442194028595730201301944317130438107117516580581201647823954110757733593353270374237732916603449131308128407608838629524128998621199399208063869397945634191311796245085463738583465606623056692079789822207416486095862826506644524693484973487527633422110635701039463091885515725686200925467125355740389511272495950525903264283715469978853392477447996465992082240311289380177006200364492953884018638160225280876130534567860019964153488770035421277463016968676222558222414765155672204455178082194539710733567325659099042024751642166212630262709501445109707112721291767222670936540457670283285468858976510958536664681834181417749579476367594951261085534075188267694932213660679514077300692135706694635893587273082165954392236990252647926581735953588995680509194259461423681708763160895138038932922889361905285543431983612390489079758100097043521373446472596379476823233785522439148616429231262524718681563244808456168096126615298582478868826878225691021763678651735521418455220615622014132680027985318637011814000413902870959527151056155147260627692624177582787909238233941484400358978836791554338071778163690278437879697971716738972477724799525028793040114656846044662529127470524421657570007313157801608705152904520180745246324201314165457090102831448331330843788090654903763828636681101477449741527795517588107398275805578529882976760242689205484140182113861620618469562588189554698990882060316113001644390105606695934159007734589493637109372707005347501453505774611246694423459574286230139284760820513331429096897356241210896347767157060322025379910842377520590682053043695191588278346036087900023789289250575371179233930441156762673151425026998563925121342129753916196799889505780589828339796980668042008003382348189461106024089155540584624397678900723147155636347478944262601379243357225127626205747729868745058843584679317026290746589995261486286313169663686523122750850301063626982427334565315242347096239776325182208501948317945010950916685568128795140048886985757355598447801338043511907719181496584762996764516238443274506827405215960982184604931729750066374188605775306154140092831529787761153186945868844803081697380196103640705524330006835008339993313893364291864460720258655181096027713381373831773915786747424002353695935623928088895974110989666404527694594900670079256568481388483779442110470319956715129505785731354225734956004397227702912738553984817852981985052261206552009876289580354930358125073918804796192717136823031812528329763294863377705047772223096241963379241068631525524307286255324540575434069129586925691931341323342368624822155994379502519307493081254623329384212793770851325244583356017050886642076784512435735112999353787194258375052340612161535016943686741053384834396133272104997497577741463909222505526336551663863669944502089409911559826688143620014618871106711754628143882297390729230584184152753026864484067154534923489115785689044210131282329446463330138621025804849699202470596512515431500351913276420032651167070177029959801335864086445600719723558190477474119303399780502179452357265812377810774433122851284457530226457251971816766569656590963982993587546014941216940196204148935446718354905087962451761742229500307012328942936375817381847856955899891878623087249394238640166809138963504220331561556327796954102328465391354364959580997397860146107490058851365195115741579888824087565853000630262390610754655300682629221330614153644557266062915277402779562992912959092391702106428147842443602357570634892656726216157598827827573028089607595668498417855595495490911181945188552466534763861543057836240471454373057706478031073728140732628611526343874688207627994989284549660723616087288376582548017269493878656861129599300495848889093942231499818198843787228562800303347976186138825738579021674764093446133854798220938957600366896809948554417642149855429501015942226686960430368651949851804090048975399572272011932757095208730097289737033600934312332201857815605966630994534763733996539771105285118269991169447551414239583985892792551536016997660151642273654008517012438558309386652118825530509216938961240592669860717602638721320030118153303241492611635431424371940185246172584797999957526438285259753722114232673953558044383515750899885836372696469649339710160277811234047305597452180039174919718869612933757466168531137458504482806391514528482613756391589419120696400480298276658992106513206194539857332222680602198688133516274224861839750921125274739292685633647673072044492725805790745066033963969260882946687725403835000753395563373958237898309108326590456987324663544573205494263995931201999499867589134309122325447286559115804439414939912986325168082630117784129425512348638280225704663763010118937946354318239362146509870740301569828871789721972142332140258684182817012587566482975854876448697576704523388113890849843794025478459783860123586154759933407126229540176877831674710007957271571921089058665020395465147805498941644777262436352277632896575688295612589068788721077367382849775488659106058875094069012788963365859844548112171014228952613384454556405959909504050960601999863607866361924816767410527146613448670023422874988498863619346077792491971045417047180013052637761513749150142051976145782731518935067614737804915019885442231575062437474654304803811898299776016193524828494941670792512682886146107053913773982627839943102338768666255082006574644371628676024471651044877634406402195408857835026964890572600931260977887643221402437173250801365225681191409216047032117693784056751369310507086920416100704595006528019536016166727128179615817340308153712875494051263359875471500437730480267520856127006402135543139699180707277226761036510004779505516549006901068441385625741649768543826962902620877373344546704614470755074864897246247057496809601986813252792009965217142024408502930594173760141864077802379997300509845440997077018804209840124672963583226670467424684408756903345444366356401530999212890117316210944729952050224867172701738922962904663389942653416093292137934465068928662104286764944312805123036148230868147838591587050199970706279374218171591307544805148223243206298953439379240857132291929018763158798174605529677503192173640342143924773883385248919477413905588624265621548336760667442436610354266972574012931045890020209120155812044819341921834579137412740406863722565735539970833194605467264448939629681374448086815486842994310677480983308238451056791367162651079032502319894384427476235177846670670778690226349574312947454672212289632023541024934593216465095579337421992723695136317506786758524680241179822588772497719012380695950102173332407325542497488158292635784010159599148292804082435510180499275351971605244440820492704367180237269537361431016983112263429681417084856769162050427289164647943386441029914056576375966703029684343110160497008942687441973562150147897163365214306748496176947371444586076054881359760833951030362805485308297869970955812079139064614520595072587018493204502600661374092443306805918740305725726755005075033749576496435685267078274421833167841250182572021294562611404762348598475678428868981548507296415415621090580307827920697280773308089502223078815479414478575209462481138799752925837852909598773992544132390794882061282548888804257081197191993868319258150035499807131058849583141640011570596767928812706441339330335168282477748847478331745999555661995181191206480521569832836773980405617983545364930989137492207706703354925106900405524477816733368434400865241117737646336096527741688340119594032304254658489833624636229178459061200010234110077179301881012543425814775692870049303438321773070982112062633287560887128178675099858136486424020247724604331271635847255724896282835940868466591850598126200599879184276932252717282720406576480715020547404272671215139397445486448608262047430498246098398881432833129437310074771969915936901447202183658232365382172427212802922064467750180311222819702564453876432211212983791111063371756637930854061883924895640094151903255452031619849193483957702968720477707977044038790794646840185690497986811229901280372329366567397897083453016546683964329725127269637629762949196266601809663421393696019273362592999426723585666351789046680983160103639987559932664647094002450914637226477967067062376477756011807262049841058860520258593370096685495503106356009417449748269472827725264450208934602191671277853051764127969529814876725569191594174718210186572803867543182416308091318637362684051272040731717662033081627916653294958868271341180436780593608117228274893297588731966683648811297728835423143922352881971482666614115693147708470094878162751950617550692360801351787802045157110015737842135483515813921712073323273139865706450120925206398235296562908806713247874939295070355824019469771746170190545322162193933134368915584163356432033094445766961542457954768323250572242676297640929728037636951113838388597056805994543061424125536272616955310348197613057218518029182695067779934826550448916609588553412170995238836159962195627285314105878974466338870905045890985443950606157031189969839839122143788156799813203057590919858811619462634867448555622149586779577168880766517971444986614141264782947747530310545581872091032327691209039646769479589315401613313092655006230472804970193837269586441844532036118642395028674826534209882237388570942417497364754667620637827088899267810318253009601145025249772660772673150797406538966516422607434030520818691911790794148084497760558510504518644785245449528353203976878135141739328960900401389654646310668284017874154774221565105115107230432147369495148370811386035511662836161357624674736220535771388631535108395620775617826659274067333367189696999023538369330568464738351928990315248979505978115317949496740985449448284023248591051253549825583018241261752698889133281104261580055601384998859986972663000978927821854694912681026569634699893565104913126537953237027996862775009192466505188028020034423451636255366355147478115946668363293205168643739485995937983457723794836742669941693482064820552567075116423902889219586922309548068115777113730970757611377175508804836241363143227093020750629711994453263043642111911563510831500623812377529639593786357455779894202978518642792777882154825308548897815627443632639301414588774451856422571354478652596117278226746620746740231457700476084704521832926418004814155577652560448586822521196327809075919216035363876868508256685401934250749817279418278427385986687419719103702353295714761077276151569403458161383379207442927416377078764754185197901457695329618479556838927764826999701031006638980670831277396464759722133501694072159040963025362766597511327096026942540197671447371285825214713959164187155163248945670094592613029491209895295743685670171498577251561984829368058485086032156717268589979987707776432944354225918817336713240023981816086041984565309903414761807077503981044167059831280922010669453597147455366178847862580788927212907150182951342466696223211546191684523458342622208310569670799258751940403643506285723369288714135814639002379857496492661458412573115679463802435950796553159242673998437016975063439718443165245437521114281837481042450227461276072493826798592045416239046055707660320754034093429220530205208619986590576734506627257864644432665637087724803979389609149271676291435466584716795927369076168493663802946464806154371743368986138687841189772679304471397419404664906087717979485870563517749224245235837562862342846595130621624991878505499745935969618733605555275502302935854826474023600274371851324671965771495500110091764520655307614452945760154079463944458756094140302395575432003635742357731078789657043164861843057927600288923610244774661669548734978657106785050212687526641567777417836177574079673993062657795568618559232015512801903449728422216170496861227260114320573849745115733468807373424512519266464384114410404686049250270065827973806432540464336542506376513542649097260413722054895129881501818531213711601485182954695580798319222268789334022949482035073227149539834709157412256146027531667699883948603298320819181072089578914344910214353076161492979518636124511653408322367301640680562918054530929445816980873642624724606689154278523005980414862647150137000612267605247243459651433154454958665005861043904119024453975659617696247344866087257814225382498342586967568371919010929098753801628447028920515521298972771678674115211725249040975006990129431084472907184091201332097554169552569309730978316911628423422750230829880504076846837097632230321501890105778447006116318638817524155571760565141891599217248611482009105496185122192707944496114795563246168619066389001523134733676095082182759848839647669281135723825218873797105731815899990782547178859590259318795184841233822847004320955635816016731839873408163892816687658837348869575260442192258176041971434146463410708249979011646614023663877218767564458227949357454787163296209391284807257938141689926337798936416262593119418868715393545863974033833712006284292241147264890599645507023647472404915146117415786022334364324726646009344859094068649150762324444484014650633523830983483370738400692611625625170738683737468947844182582299940128652154544244421357192794045083006438064778768566577679214389814203057355839981574083342139998418610109033201819611651235918271177174134088740848389438498424605433737300253425639909192159396441479991332785398728767721704340905019257398581796513812279635818804849617364184078827467771281968450813705455201599253542717379152970054657448786766539991352698262093397384306611508174037366676568884361710058526088402899649146493173132694554221445464514835209927382416593624714411586265471771662032482789101501156140941910114666805726326795808679274224313415227651013202246206616623345311644663920125529095072967932908517239144054630257352988522211888153421766477972730461256442391449547405258434917603492935266601939720889940323084402204713363437653690473253161343346295396863673452272281129474535225665028498746849200178620722670418759459413166354096558226807080069846553180064248390664153537531671580981589436045991627417745361621975962096957496961960435457830840510168745152322001153350483611497764912412470654396399708972092980069594690116021963330718453043945319152268520971814956497416970912487109410096008598086103971317766976161802206992176546700532847408957866284490736149374413908421915959569262401902839484257352835133266002076083726603488449617651800685149113800638411717143744712594533956235248057236106274525766944733559369539288560802497444433947761712316532951955423359209466474660567040243224128943667378857157988925024452693291693423934831156400448841588424486239811052442682801579312558022998232094394952743493826266116840807689804650886731077977506838765562598585402961473083926758012776791697531465809399959856267119721262165268580785743483625989475502818542468361850906883905204247720201694167039633509111911591308995102893014441393037938210450009715355103055155146991030386096950319373595606625739919186115044668543530056640290643828510375984830499889853437199073804507608382144261748655756326964074146964745242541923924583942860457245953718946822393369499701197043038584434278967025038338850420743413075842389252888205311955079639315613141811346528586441330450006159976042308575399463740864005523179510519583049820652792917010414307181644635278191779364121115270554907119239532540570959152816297793645197563199277932310792276436212847542108512636169903854059577514658699359476244609269098333939475995052022689030414639019895829411877214204319082922323172996692657139748674114147201598894434615300487222421335258061946627932912512378252814470671309916475794774403308755400077880701635653593987842379298649376235606216614424104452730675233847933542466606308107705615814448621783295146091034361138696380790534375323146531800768594562948283152053371698678639209452831547946132607831980413754637855660747112319420081556949764033081917083511968685472934206010500625303800408165523530127173589749600553274102300828350748826074113784004924194753900359772730019211003920965975188962478711756431191612723664928034750271398635519423308235193099859150678550145284583789211582971045366852260158994924094984198468299111764653570787846332621756081670411641267999509213837291798827652099325358135716416303674291758230696198955207057052714776296904590589236108239826900670903508670240297061740755294976257262974687198771888714681589129231315787043700506842860243720300389123130790277543155644749897821832242043267142959826403152063607999673354922928055473778627718217258773768268492431496645926797254887223869159047879840802003327591149707242287463698581982950978109444721627483686323248568097043967107506611105532516756792685125098433594126083848698775099468442687700118236889536873895870666770158202821908971431470063645522465985730922007939707534185562946451680125292994987055308561292027818477173273390310230683723486863731744550360063155292390669682340835016034388810375997302614951021964050300469665109012172304959209777768771660333912113336952606978884543741672552128021167886202643564256325636335801047372719100204047051075945450557816712722442570396635077955606956113947740638940061166656256025675064996892993598498005308612788866384552547699692444679513735771362913450301450211709756005007118276372481179930346239437321309828350421527735152088802009509012938731048763090022434759755614398725046367590040188402549799054821386971918251348729356296417003777982447668273868559647315074340800208669127271545681328131488487060729508765946133721993561670861943364338654931506092438205171982970740296852751890050892443955397670696731534926200306945940691724263157430977318423920449169016836257903351504985714025695669058129926870216076418729917219848682245010333970112325188742368243119108269230340853782701802462991706183430016392957617851864925530951760897525786709262398441615131387733113760313648940299398392268046115773845477489859532902677988300894647690287290948195749082786244739683925078738497532621518228829143033530248318575790522769613492230125033295049061013843474723399959650552992298325199785587541060139423284419662090987473891078743812917117495202774713369037685490452132036491766861424688511110680572135493840955584796433298990735309633955083195414261455601079657472560404116853930010989579373900552865016045419562461322935884839663708686115931383684720164628204105943097540771968820060056850564123768023589207174214044520563487248630358120659899021194154322264396117374675422467938327008828807140732244376181905727968097159824799847071921844560023308331595572462382048120910452189308104912984756095526700744154196285155582043028376730252704452951183500370592255674229763045931028077989671740319257113870664390582756439110711442561040818204921460200569060383821873050685094379221431999016755454965267104863400105481689120035573111915954760665022715483118063715877017877174278203311664728457850686455289975966091553201515402594400904458235828342860725384844034376620929665159374316913449298284017511832756641250101689094098664025132977922949318813415883798698537432105202970086209795752854888192992478960056519578518257175286892241817338170668701120838002262876865905494663494205282619806945851152588941374409474379283951724117544304901794609169439884001701523220567343651500255272186433767815461412503118951121467621000911008947757628821357359901796203905959793076910673245055232313008015860434501973534080825207200449388360313461160192288766276827132606035533195414297104221634188463330248927792009578945006938215439159420332103868529939162543563842537994619910699874538260931573981119755144721685282988311704204871939057085143641354160748140610800020544549979845168441319982957308254094398278848646049594438363294302898218329958785865273121080899620603434235387200258333001711549285934374848097931816771969567343297208247329904636174931322032556251598183351017499998045292882909026297093826540116001730153879632295798667347595177997912770072863404985899267842713039025967456983549265580041652889887648643853813982780615311045971342561165966785761124861062356740919226072759184882075318806472299640256027774353041580009305677166661607779243661685775115381545583916635523492927288905503360596627820571716224495893091713097997482640225251031680928223374934569030746926896188423126515281125128134414250899603109720535495939406885110585605199579999968809967467333368305494365981091672951072596126385403567756405841148007197291130186471179727151853040435664483856175606104725437069329668161272732742418877848259849930976198414175939394944082533096508464490401888356245200288583989794184234661917637574651903384401650731401230299970819719571577132682959176989504875408891806116157464453928841450619954694821333307269264007427745977157578446580212770801142615679534513135097013349769048824140067346466412436250141174842057386409216916258668001367285955903434758638701286669657377755918540431900841990035494814419449478577999572810405485813035227758741105630426916155461556481561061649879483095158484730984128669771220830608835937880799186523159199091128834179995208569089401691652985259672742562793168776179073129958221624347740817105966271527250822965758783629709838283260233216769576075332192683784606757225561121264176550531072550408686574767663791589380837752927476088120967833042869904564167717651491917689028767304457636746989637504772463554155414627972009306814823561470682921214692125499999797645903178214266468395370542052416082256606825420089694630136464692858414461836482886008042829155457225249619220162787329221402218635292056141632012580966581783163653880630046487884291176643244278135862596566174328477604681635279587302415809812861804457722196532111564182596954825887861047627418418048106811084032009639063338843947872447471673392669800253297233486906700864012929584651109555352207423431889106547204614841636884136289559415924555868042579630398115285880320719700769197465168908693502100214918268778159825962251385858837863562345583944245985835021220880600474181025123117964109656591002251204622158531403745510708269047703086635702180597944023153971305773616454700460338029717987388281184043677381634003573621381336365043692837475797117487115870084436293697183572790759149588106510673002188592866740565067389389441398641456580673940411541987048062581451045785887116568975354443851451987742744989432258729054887885657724272956780833092470206040474785933146032419560742157318721240516999526180652020376434499545257271133153864234553535906715158870590333308188669663567142241031969129999371920477468888785594224028913089796430759002598740511641265147132096597493716956996145523208285666296480678693396392846313085881936320794272595513836822838279679717869591277932387051773419933537528602810779642638272636090660263342692428442147096751583347228464234722688311549573927114772466741887162335100103686309620539370160071430723759730605213410350805317975030344987506331529262184972844056093983637390808634812825511366024418583476698878612538040157915046962128285997660787440412342814712453073572105136174601665011298300677171851831087566827681463011049277115591918994128854744797303422989353459015582530938684925305302904415448565111854258173342918186266668590651276514011560603799324198129386212061827788991285990490866157593306744935888766672313286631958067113204997347892328486398368448101075987807682818121928872116539260402374097956571402898782972200085345477449092689729530407267166421571885252325774062681575301977360884348111751571277046296684470783305777018961033602723965945762081316504818111841175368991956897508865983313137730921500921825806810647197069947878704898741965131432628285766790366079212158421975959876975780390550373387088535532296302809839501469146931081833418918136814798304585191209160631978834276433312004050852717127837839105923496643536328355770517467909164937847567802440008885904399112179825833529733549834491284403021472625560481080617359966029820051181863446834606999035996402672756734562957395198790911491575374321564702204745429528280672150555637326331999906880338558611863923308598367981630585171582396190066298607709917321774507239506360068179127775765841696205690791644436844411526830002709421482445527717867467666593784000517352528687258755801753994461416850145193282262595342601653716093030534270335976486204732741202632742416137051047900338017014657650092818737263013338359032704273369100612397557671567286777400688532855961813379325831416129854273356362028294878430625093528721050567167905206201579093712526213783889492186454692353521878214468480598280825986681664900982620892727908166579615238452931262562830751706703534288216063273252773629196295416829511254658943641799457961241760461764216352029448821993922320526784111641205075041461300373917530734551910834539869587444772032810350599533963692426527468753428355049658927430705613699662285496672371426617073245846980465650484630907242638674324200555538274183028135447888469005709059838845299518644087238213616936970499949546245251582161318202914249166712456358866068092053388570364826642960270282900761362061908483974986077563976741059939536923511836102945408461556127532279621549343339118786673233158152284023204524039024667972875751197602763281708367625651504460842459492553345891919556620247631229349173310470390637503518591895136253577066860937637888237141364495779627946077844285433054516916818747444247963682929991631502455602686763539208240960769953218422448803255942640022075456623218557049200508290549499937324599497877963423302864480102949337904837639351605353301920865614993544665086157612840919126240353162328458929685086364346626133817318891353677299909757236585534984984515838950443324215681652116545654493463631910076896221327186326758316277794579139635741329329544034502000775727323895986110156536427043858463134029304010299307297615977664784432583369550407401746465871368609716251992224599877009680872555214027734166190731608042150836114056561383176536771887726777643408066300816319470737340016568986534501762897382542395171618148464678555944141915487113172072360665987015934544274101231354140829150079162768034217783770815964830036344788495591108451960621957515164633878905618624991229259697948427242224149188733535794411583765396259526914363592312344214170345899460561462504572211968779315342755804278646357666371919388014157434147764608398516505716422967477504271174782443375439696532370762113085203960241471537615134281288669165465812252175271472687659872949995608187266556321140908877498513885969596845313740854906132865443852482522145718095809961136049272470095939773508664042181001570067909585135732750679539366376725802587837055508048251981675481006534478750318271604937904611610863880846838801457322253044552279739303680561314028138241012388879318581557772951537200687067495544821422882601049784732175606873793905012566722204842734134612015741604039409698420914388657240245739676551933213416016236410765567472367147988555222747656405356015451570971889157010522592089765138881444738635726057197184769082221982324274582357102777371991216657023833742880622663763632009493254951423158460605912519827485977727932268065985517006813154793796376412508726301699212058528009712839568808267600396084410276426416755827967139857527187416281409549359975084989149720649517127496318243485352051210658922711977219892636304880919685154436925916718792055888251368940654915832855926213933328493297174640487963197288929761940883986197777116983697413430079192765797503152401341458964083616645760052561327482930698563993772934355023609969116149278989885552004655609096353181396428419039747930035333587253897624004699137129023130747034506909395735555639580074880286890636265898766280385012656193531007153438769524522776333362517282450162678475209880375220877529593919939977149419660751333588814079651851336001982401164145948365613671324291246776766953155656541500845751267040042262034400368837691120028279101287321782854523607745684293111281752121721291952906061450567497228144270740289125860379580570179700445457592994217144588096773855637472209428407750587955269815568760951858840060366300867516726670282702732649139909651319783644989814886678911004301689291660665159508452073986811504887366765675317258262564129719405931162879463174364946171912650382574221977372650231954294061736275889990158200977885996898997181397212375458606602230417776519693038934530692407585866596012877901090216201865643402885107187789128546040535446215162060132333867855978981941822105737003177043271814130481536310256734525142621816264002595281505943453084632280083787047842585880203270640693873217510930245485442476731290763896646753971572082824205609884822541566976076203865326056171749829971267909200469272102333195175192637985907395661356743375152608306118562291881204012169491409073906523397000043604485006998324055496175360671833021067794225038492318692035407718860514301802511341602259893951794745297679747162644917594732622696839655143219013105329217701536435556038048203710561860417625020059428663738143440213689972750750157073062302415815384560248203229740187850592239639981071556030589110276015517258250971426081312036830500987984551830378691109399546878515211089438886296753678067076853003915896701861622102367254731461519103070655327310693253186337434347803024063660929306842165379666750471985455464140952566039785931650535898257777863208561424562657655344954610613104103627294424418450699024147324236622993215419596887015907050905932301351948541664604328526446800432446300980315928207690673447550365220697439535565132776404429425199855767335240721476773446367870564362575268353202960198918568975859933207652684566295701539643790946499976051371959319908223136327948297028417854834581563599907230524135904437204166858818173771866066198581075528662731382910081654441150310558555568964710320646015866258836258440225390810419778372598887792295607266672112957578452686351475153704407557544427265772735524013601924517253166542746147527189577115860809459267943023082856704885120963056372798227692845545299691916417914343168256141164467953826598242529696229958352865576907560062368732438199685958417694855794276391162821248739241337129733710624978110968782325433991116035515015599424569882042547782945313455148788535613489427966676524044673257588775849406086243526281930713177418858595261919182921954037005661929267361925733040979910125465561883255119777650733210025709447679782492202305419259526592654228093942167829978299584772392256445581668915791318460383968771630985484945365660939363642269776454880436493389059026444875529640983860197739429432153240464182648950015268144287550138806949429780563199933178212073409094512898139816349018771905374263741431033584090629114228363862593605381173495578538959522164122749609011266994390028554866004463486869666789485441877494334303255291965584030984739503005264058103604285463107190264935106308144525022171323354090163950501955730318287997883791252465079672110282594949930686403555027680933084871129662669780014823390110890379261789893001554927136306980727675251004400034826955912082650565701901525749542076800150983964607158889177307446254013464371490263685610990826867780737817056470522855881876148139820595862529678656388758447006126480081801789437269328716192594930895611231925630145665101979253097073837427221452270528687791205011313371361354231771990928228826645671160439898024173393510709720454986924904403588709992547090468246878069463173139720645020011870728561793249379550255486146302440857241005222092406464994696410627977288893502472487950398670343777894284547044142687069225401092052045878913218614565709343745081316218845369622222839900304090536261305277344721121131074927644961391825783219492041494328737105576375153512328803233658212983065262712129676374592594767008947823856531629661316684236878268727258308434212777481112155754406925733032061214141736904426458104358636650127826209794081923095443124611184950755732332284373771549260930048352657363051819644235005264735116536005562442421320967348203478542393774517361876923031097540633930313946905658941572788334166053379000885987722787677789956328635189856770211969704012541317052483073947911749754898700174316958087246523611251429582341654316926705171304650628742568393498003859128862037006345793385430234190541433086513502228838281228360605148734960692373262101843395700704002320560686983771739783108827478993466130464459896355995045599641079905707068686870983167200566092669010561854337537017841854660494361499861779240396159978851175681188179800077152741323353985569307958650163308068804264414329173141725288583779479841773227272577485581176895841343115122707517004499849911814319629126898030832099557242816425898020237623065345472887224429426656479524682072122745258885225455040454954574596211902537519510403104116671571801881462827691883740494020152877122181103455110284464586568235106942525988273304328829320286266269050536129997861295414593533261871340823335518608725727444359417301208247891972637515678758864905996963422329895382453360064515862093303223344583524735615115102002383776654351912328700543319507946544514743990412824439047059833882459560785619198678148801405048299410066494264649809152893760255989581566649148397581188054530664604080561337226864320686965810753996120931808413704985249039950588383001094700845790221934568252617780743250927417982276814736813817063654309524131820763018293617984777077902309397209635830059379072443541978082748040084943483186850365391035718921567115948281429157836214337933108343921102586228119364853261668465442662604914971248491259200607259372489715810443951840508788419185743714156480843450714302250355572016620652578149988399372629925036881633008864131842517633611099779529856630697402277657438138803365300836701016234938929798062834004671321406975709519712277544849103141773745706416658926346468326284904723262747471199311189290625203340403688364542193847356464450959272833935642359669651834166237137996208987170480150599948193462407607535629273808044497167173686529614371321201181995132722414287263463020429179118276128071109805206618056041218682395552482274835632250666346718992579380206461983647985929836576395769028683504469496795639932357971600731806657356978396627458996346129730927792153308247955893044134752839364404091186728102943921489280302954222391960178017628424516417938698993681807996361168790886315823796870975564831334887760892483799144852236316258393159642473451140575033259187578223494096170504656885140958697646802237809884749019496371313826763310099679442098846028049260953272413753874020341739905068584975655076449033548410066445285737940673351774338262760439424582547098161680173184228583023850506635730021346580039210298286347868990300091944076913601671933913586576411146211265160893695819614087313129513663942653193120029682956583748706009496837054080822332263910800494261375751526736568753508776755217791362935166587319415177354603749750281508879738590248392808222499670412640140034242595916686533703163293658622816413559577769846553242861054857401970472416013828232050059049876345797703265238662951873457151202649537180367812153575535277623410594875593516958970977184184011334977357203715602856168495298055607340311315311561605786664790476489284177858170860588004692659359485546515748736570340999261251866306649147055501036151939844442432348465814142327735461936960077107829153722441695446860679087189581153143805194925178253538212616241766302099724095210516327725188930520192444986333736882079755034528213581661651793161820615094580647478208009210415527368303134103445391685948587778778238204967367927710856451840172443925793170743256375525396696169969878897601172867902895601098337257453339944655049390322885185731933094832035664667700324453485899669136770928494039750431494629375618297914033306632829155451653237766178197539823673417332051614686160209763556061756268048186190710982796782492834758529711864970328495919226942932335590232146670738742990129767302166041891282794830322771631171869591646235378097000711530897062433017229148054313140909139109183871580404862229510903030037123696945390603021727989970927637697537698135122644170310380551596958614181859468846624942685388705274913545734359093111401780109244842618359461728640860298276880680891541980614413832785138235220885272757279040558613224430165686486368858356889960491200007286123220657323830330689763455952981950164469180037447956580928612794158421262454914779654248165379995600894238481627743179477890242878532132255202465085702481099961283885972614273191676206652419112134380785693807903713042032377224842873497697282466739031807408518660978619086371978666387228937693216004993304802384374129860221256947036780214238120675931998000426009497941514502517917833680520434793366064555791770519904937783099254939686248662498235817212516264907692513434163441118621559695710587683034857950834969986475981666236875901579676446030794463596264230401958511462833431299804944653949069976679314276861129370284641386472463189673536835927076905806292873268369629212383702828002028944494182804909564630707561657019170248692633672164084977483587124391662743073891482359794597139574235652982002230524656289717804480437960874619426922831368482688154533112100109396794942270011389452787152102098084879884733832145085935794418232161147592307809606405530370944712388874910350681376679853115036476081016731659446844635740897487976083772108817998026358615753009311346449379207475923691383177659627757281907107917499665583859743561644158212210935571899911158169713512883784044251784189626427938099740815743761564121873284087957179358037140825039537453953013150277367433014550263968409585590811748797768079697630612314716402390866013350826336489586741597683112167346197260625488593113322410944830881794256563529629881714716054351460926001443986723743433996368396200549413113697747167543517428370211420731798915837431625098890260437595765021001217418023100788436158218876049715448338898576958374590253167345429150474582458351713590137875156077140685560857198251229174148271354470310421118646381695867959576615652085749269824352526116858762036725584704543884106242753369879671719293371530646395854324257391246828855236522407418489154287879212133773299742832915303305297470755469851987989973236055777012495871864929499839375174037396489000609044965875559851024926525038119272484971365517063718021292729749645351760561833047105238125478666306478017163370058151548540528138512797390546958253616532741624939235190488977717523507362535693214075137779796039605807444765746553546258776448795411293916763334757091568253069086326680273109963407786671640697379471810409930061052018761332203444788681912212755864188773531900754021084827714321984634111747606092985163778665277061524660181095701205829191480445111856519556177407119338579512244955802334788249514285411110825936747827364255662314662963781510102777167251325019843225681752023131412349878259925125422538055371348472967860398783232196651590088822480679500091869470687886714140336593451892495585622733088667302362365814023579127637362603929645457690758751022750973579117670056335328965979241469893603772250528311327256552579769896514449669895078932690972307677841172738961654056945651697343016589052991775438233087095396092530490385529486432461322518429806932490089444391015987388805076557347333406149945658525880297603567206509422227079463621895475613425927583404011138109894933485971739181433629180808875141247448100454463790323442920484713846491970838051739691005661132200017037131743650574587542280851878126041358167474296313610164090666583798770555182149633563747451699769791928707026693904032118918233816747060136465095300187269599162290435155534442796686673833835767206279701333543003050116426617148659137005682938528508329424005342827001261125377485515678647160925268344429908886468327376671161956832326759936958699767091182338688224430403898534404722053578124894361767661321544654988047116080628083945531257161418090022610128861495846804617841638558322709924341371602622182244210078920776214582400370466345285317282569688213479028208917271267335188317698296181393580752007342487971951042572571450293894804330209771321788780468749455890195111900041394557340415450375351809587708737547031134261834579404458514947513062596830747970384904191850722880736315297221036368259362109330616199261794072620526132719965976886285946127292872716162455281945501413373469298025782026702716671097022727778136356135010598479169290050017956131189567481375847266840452830443169618923803450375083631742099146208543374281400830980959392036657416356714113659288447868609076891609978400782350349283611406923987308747681753545232289323584985856362590957377138089185156026958337624920002376357540531832016279948509552437553959776337517988246827658063700135691964189748065203334933549734355259733563006969989800983368809659313747142372629534332520120657364189572345077332849131070959980883808245050411246294018217944564036943669299722701250994940930612725474898764937004717476680641521273915971655898159638146800966811989534706336715718783976964365087416838996641737296700937392173114854128237291675109552741995710040207236280196885316161104035946289202869498385351490955141095562791442041068529626794535476898398902309424669473377122621982648598116282017356807369270274866735936730228432704518059470131341017316032473735902092996771085086048902555617206365453808535384801920697416880911912013809575098731478559813315436052235359754885795436010741036123624369404408660716345586256509241676328187184668726296502260118690950790704785559617053276388442874491403362023201812034835295531027797925201344013861685118239300420030877829674926608858005691961237731623280177344835037396969826680419971587636092176629634993286408626591718262597424651821973397070513930043569894368840595946396466665597207417229619239801125554760750803783215438420163368593875951764443199741302020256610639663689015137360915906986954219118534232931099044829476854484427403910064343699708735535597725988062431303992413788513225056903456636476137797397136459555388757428550135014321152589481682588445442016560985653151794252670416698916381262932611917719736461508941895623623452369617233401429536600498444472568552324569918355430418413591459293076409356837685173852637966720343779715577143330615990499903533781639141559801318292724956413103716832009203595375645102929554661963258777750864557696381084744335382378891297781844201526532446831406732948984814930519121051711914908143573725898116925707068147078719795641062069488960867737243391955023233680348450359208991346649655666471927296579666143252275968204700679512464533455782438678276660567292081451277669961104129207638346690989717230862319818719014915113886677337637391050559104226814297671666640803837023588316966816829222477382521099020843918906172631914804183534871452314730357877075306700020849442118060485033230218552019436240370260011956010023978064041839218946890371275482811049647328535668199427905527542769458228755184374206085444707558870150252916666116377131640677764766730436487995336017912499290310123797001873555466532871665873803843077461298463438461560856799555810001851849234620613585231956619136923944012776471857249574767618409434619684481437967704128559183945892915479754805480143296374303846552390838318591534046250240691330253394831102295832298060732935211618308396769552618738882368222594564570416686719382954774299099926160915460976930829886176846711241675311882603603400997121097226985946737916163227143144610702509496907518660905495566330963545336295916591199004858562503815020768775381711100392018466523251892249888191029402448713483428125046088454854373925786536141016431279023793245144795407220486276307346512232983480083901224397766213769050268647076454668163230560527583623170061381640875852465676313288347652512104482550347952882617782096922958908993414089860040373601033212425414961419357143903715008158483145467639146050534661243801117101086822773377964515599316878121645960564448416780416753410549874833164888493945535112738469808748655863597387341363467999069444155679278021037119197870965833389666844952999094791821106110302560042670909126628027175719398447278622938427017977391221401263094369139254744206751772731306496120110536834715373243184060678412458913005339680808864070345331288771817023129656704819156881478724667915588733119462842566864368776303628158375154592796687805398246654639656475002831651505743981759297130852912684908588308146445006423690336259456185392643769168579124014431127798016641394901666623515313694159450010237555769721579949381260340167007417245662895854169009153078972904674187058136453577193590591578080325062364086585793016226964734577380695731902311165513714752505365701347850374338896624277628292363860266928350201968131221144220026340416474781000816346459088533604196236954067679374782553214372200506867564249291648933048116381377767060855134320113531848615782304956067049857367036382315024168842495166434572215758867579667774602924276711985142052181403277829065760115605413272214100914118803299617532951879784202031055278778757558600018176793936257886451044526112238255802471978883826834931567180204273076013611109854006913704437854222040160729896012116464927254102004935803530289971768349935447783490954619666680621050513471727339810805000698133326195587196465283725933205393129759828079968917993911840893219366559507372671760803860736944186551465845675263374018602613083774077992186861252974583257036344051468289456796055710542249817369703162487590086483772635568269229914804772421825260016492422468710984216154093690554117909170908225459216768413610764768321360319008561143886555508877082592203601170649285910370979541923067010820517420085566273018400477276487613497415157743086337305917475864573809536205973049948653316255539290870432616442601892419946857822770802823888532589273712029521330536892147535038414186746123575566731462424977320547627725222644951988626061629348678557698641108480402115896070824775942487850896955619059749619690063979615484805988253889224610178682913617566542400047793333490326362026178118911516930451914694168440125950449195354833385421049134060417689719553453395869296536770110902243905836321499136523309407437042537830513276493039808821724066583187427113092368926638549897368017513297742635505934251016394731212917155530527120339135768214017522170558760972309467434692327832779421684645858497672526832314979880510511224154547468718560990548252143383845871638769963214996242513037204907237187859701615592768389636994877073948353304987757407048396452683959324015598052566096891176552556074316915188202159140613564547950495869400960279925131353969867665503707274532299435574902844095070773185714982883985548079900426425160195310626590694696446525606395945785684268695400889871894568014397215632817763287960290909355927289942691608318203403413734949316577755458310695041481444460020289721184374138539604042432611497757782517784290570925861402770598663233184697905223712116316980329675889885003937336590427093042949705304156685447884721428801402455615937341508085013009379160470369779442692753602846729496868942635515365041306138692967195503293077659943340123855529803180578072517422330692068442290032542551978139159684596805922916828741978602864486797723310921723484709599584631420532153708387771610372990984402518555559090538259071967762467786488562630474769885215487265766535103103473017185211699710810005836516752740948490298907996148787539849811120277097869937706326231184261037773275119377051900409448362180763613058399837925558776353812711605434831200271531045568367600993340997221023132387335636128076657481920521178097837458172784750576808888304292697567063845777358165541855997302918305882833852856198584976112882031972015692883433004082965984629843988339860967416921174350660749082490555880025980532506715771362544221103053582285907771148773425871077860678781877396301894468349686645632453556866071130542908146412772647214046491816458711585721015035088107671542178870300447832224444601279109125570602218963103673743510172260951481681418467907935946714318158236848764785263523437366115823691602730710465262949597012842418165729388039004241840087782677304229307173266264750879451539959788620925469515043038734332670153666093428717662101448904707789891368280837141544460925602397066421279906897411774287289164692884545195830330714902886701533639777130764821927766784779086542033931377789074476876276910282067835333634081513965346715879005174216288863772491720879759526730707868950754092505145801619561222684458692314199550377992273713720206921922128328172626612390423179228342168490873134696687280549508519338132726486490410296413027761330820056001961997660059114830985532004487904410615071226902019565555681365573330593899989554056348708758203431942854782485797549491416644867124803535297325457315875965316233783644789530080039694822013572018859927431687545081152965789138497286037233855981887389620266099127238680761412164971010593104222073174918757845785460411931994146061247281277425417546623848691444676916045451275064315766555878112014940012635125776710219470875087550200132223069752284640632987858557810351442428540089151784507193668131520853164249747823722080156416701696019465496804893171802745310132937689239536520773901346755791152342875809698610416319775671458476514508082981906868005891588493151975070178254398121129946429358488100090118668601797649765510351611651971567572177140772674984229054419384328329140637168438927696933610731627852497795223231800410870410453095453458214295930492895520930533846236406093643767969351642794636729114449613517192178153274618381363065009245467967989620219925085215691945896890643273993597167414622452598446264002750475625851643288685168159869892443571460958993682236833645440767952181045314229641659461203310066907320160949176796029772014996279522238547496882040158029490340657871317159559854357499040577888515971748770780923642524232073012428657604204556293697936712375669251760238634611864594879466387808809384732195704752093555018492738486111168817325341041990121287347108673661939924517355447239780898147333706576027557259778868912909353913046066768414289826558743395523357088391464507463082981543877048497088588921387407549600654008659337424321411945753714426890052297212593185377948302015882469697438038354486759802353805185360425121462274473749700743411497450953494256773836259357354197099476770991011410306208729791392853220130009044360827515597477782136097048138972932707120730906854644690819919068721551689236134048175070287628329224928399315173731948695649054735876173430501883856157130878027690529763457528961253257817738397830282523455646784986921467264233302982659802885278677133467866173966718370588480326643865676557159149248316326896135751151569034545567286936053818411842103559015392245227532824290606002340191534912657655561045725729889153473769454577431070426669543504453026790504179709228932327692962075440686629754480690308828765484279548243790482863710733250900842251280020989955551224938056729020493059125801207638392774540465124765804411185126319978674254634896252604566096330406189100597285708869524525856207398615929476265084663882779882970093233333997826956848094568073003034179823539550280582358032741917315530826956020356538393415131095223693930855144804954406471871000924707789793894064335814906855326307155069735715380029616347095223353474860529667775929705462644800046304842365230884475751177679791178448455903536479039209193637730742516557816574101597173980011632027673715666687223545059642245620737848839924932036632061674120157788179333379983535800272542929447591278493911417842292243611652930173798547063969954049310453683040806564471402870109276521239833078919050143007476852208101888973913804611144217931748798829519687854919794673029529769928465956654352259106628807566203402936809180104711751139084588998878224193410869051370585193571136193131493357381365148330254461217658808815569175701445424001849570073192871446417343502176466957440011822123856335011085453724241261245734404098911567500746094176863836750730792438431972201413247634157002229703921430364255117495032408050522888484947141504554451468142041057930869035623275103801821941240448472159786600681626855261642884250802554572294363956946653846230295964823142272495137438050027354851634116583019167326788967627213166664070626880392774593930159044421713076065729422101053684460758510447896685987886450086904943542089501402712528666170636386636769020207278807525813580000681203432890584762189273950157749998153093387525459224301706534004341025908432486491339373476462281675498854947778200205263027568940340774137371763201033241832755050000593712889247697843055815094612187144932921992307469716938547096383420425512647320616464509982761540362040842239720674127056065552710783848132529405192171875130775998390839793956533366666054407784392325694067494842837370484238923804684428614993457751408725709981770659139884952243627530464362497834677888617649211248317803660557311538586088748684575180896067129436706095092875067845295911941266343068768975409108035538177767887427900988441910022267136336802663790220375838825282527516239127000691367030197596946222768965839761626965935843541166844441686863249093157349573882586058881150794076906029638303000735203171069974846994226972675786664038257605364926173736156156072757453795056167570923441187360740942317698621498279825983901190071794377707558663658351983622666570608078817558397289596763378832128450112056613942314777826820582908748792120567653376218186047827778035545732139491620531563848823785972751666113109957875505469567035040876143274305792331820915352690897569907670594640592453008201757810961583274390743824210677781822339635423155413700103754308921545690112145955165163896629916631382769299666368474742899155954044301830335417536066415450983576227931158159472762909191515283220176647355870268085763086044269834522288568778792075724132015020803830883151845005668470838753389917869750057924337660580459397646412612566351228316881331664491522405639349165220933690879850284141178633746257366721172005533905394298849885644302321135939452114069813476137316606340141206787159360433051650341503389634397243378402030042809373171129933654838568118832417639843961594488900252703102688908534055134258973045999441378764113592797399578723728753493990766337873260715314998080490947478287753348263794809709894035031359854582845817417568171777056566748365672753123610612803709462039560307879973278580443953753546335843807757873483347791139671899314135314568591948857840259501258251743169224293949975475768239178892627248093528459824901219168319482843879129478566256363681969145649158002058238861995772612250712009724059953439185702405765655054941832158765007535146073521550505803662180495125266492533700266565627010953256813331148632769529651664821386425721379998559651730329506306877912851198966702710428461149948630203723233103496038012341742428326854386711595512127752202943035880746016554796253085129804115146243714740669095217329449479666746647817258645545168387342630821025185566135372501170862817635707235223072150225138056798767377742557379929742697160413455204903379761636009243139593438547260439430319543295087603498957824956341593072429122086609831734850497352619953528107457965006183354846260422751469819206497672697727842131450504137544212446499620985262435898745081244998448499381964502702978522251260489841481709899676543678014736774804233833536289707243163114509159805192965478845097453534513340450750376656977931005714425587677595031358045754525440558071451072578461759260216761635737090848667788338176123564649362301090772383126293104053881480698409681372478988142493839446736434145249876550162436397762385365434477642156083795136665563023385800343296479790211196687332377716976132192883300340421627022095720750414539282603776754774567585786890555308805207750689582965054480682589371343571308997889432774787599738137288631292899995078897623753385424602971790140264524925995108223443075602735528085873220798576914000579003266011424932038310786265731235025700808407654256798368879632815905702548755961748778784672397828075938729569088620099992027845206096833011727665141793844420150686627080899511669426868093172045527087326109198413553343170277366442525604488196612258218077795189856628417399535694789112922360084187433128988972873682065389628018461169218837777465215675240345007622033887737113813197697974021219975911982056047936631814476863081522609214356696165904027522251503221659458065253482864634221311645743485836487201671537544394504471514434472052108262006759508933889157288518200520811339208362221906787051564365355474385654213792683393926572491816519196927028998612722394825729981588704173588697723304405029155428713045830571605478518350801465054040362830206630648974883083070191285925791896869245609940709518608272887891599764602396167640800253195930485721676852462847615297735960191961060647334166486395388854561907311025657892118774057876002576973237087216806948913902808681429949707144431982089255443324956708850220888537069832642780935097157937577327770334470924058790526529192182239023243819289274437815176069281445339092867710934798353023052929430667511543590667935673099917060639203439826549689962028737177593731472298784698458572645630251117142977591262394807171474730908668292163600133931356824557063986741022427405501749251417297377114661068948057764259777103715632350213599593241848439229660784782066705659322453801322946212600747702817645983144242599703420988111223159741907889456614982279631866161901456860438099106939956717206282251458846361993973039033298224075350295681453410123553970074380687573472201193597784815216708272035147609710307497808854207953468538702672155620090073758618295850842036725397724771584299091896361972065779183358397226640624054460984827171369655470828414902781816886847637229630376184001419622931059934690525082147524457011915875873032111962558350937233808668447625404456263242687208222086716962387485598971176627315416336363580491177003589462843609088604755146990833752210525090561656678422633604238092714012419938919703209230559372640552373355889775772733736648209643652253033116129832659829910325279058995711274687622542479600829049698726062733994464560537077115032743023177237112048635003731833644308190620521124941231586987742251299009811305627276992491858801610884452811337853211919094866034274608233332909234375786970155741557591102870685757270101604981998560201639196335928679880528558849164193853462740392354490799165800684768739225947879635330173569961135126609766454380870608851750408012585066718918057404196020167255528896415502099096975508713284701647795517429007801008937848070936821333328913995527233027921643404475228484507641022092918892607372709982833310116415203527487886123545217547603164185083133709174220844323102847709531082318774136370801356320237653788854888297419661073522361904938418649940503151248381782062716226249069522172680366052116182379869461321782796048580354153343344587808696583454845515029615538737371146873665137612434832330364394677690574515762994986513987886608125261558208309628802970251978025947144897181136519228832863771658767778317434606635520707469005606242057947588706548119208931298247411438165378362835437435420070944558365350058813005620475917433598786269080508926259059732378226881111202347794947782892002426699348045353683733048268996446641224466274271580265482278195911450748508737988599711483512007270735688439041896212164411350248171021896256112359359608589520357948252446827984643083983288314093232448598000427599709810361087878325984642691001146261085995373299004933814383525081212153044460527718215951631205927874522238234510374317338649087935761142530840816169725513933397174693853959232069220391740832486620881543505952974324207542728824668583876074980934270787532283548553929046773589831130565014511376758657814089956607075663907437565378804859757453622250711397625670985871207136353090435551524128006617283478208287673088600224188026167317018633532296313697432910738143144324099327781186313289407907389208983469560604122924853876871984166869824868045110833847794394556317710483683123868823243958032100322317261503612315354325187855745605734266531229907104402605196492053521611176538933373432470700895048251205016240959160696049563336672585220313793573163115676930368052584519060364808352361150788931651688170698158352748410034707672878715023375663387271319803102424187624817746292669123329573673649989800123266494665624185616335772025317291800834145738431361050402216085239135356949962354444637138625928614069455709508381147795156171267400658990665409260542646998257373634401859135763861689331533113898235226765864444146246700944388863954570960567351307368530249110730492982576781026546380304719506810081054834301715874318563081994725817618530586256312365424905096410608590094190333901463136569378708483244906986900701886457428917542932331861798807402125200298249572867918457965195126857673686762987955975216081521895003529986479698047516533918157090796986959509231096856099098458011981593364747939173601747231276197213619027003402957736405620022479030992925826930198804890669443722435608851439108064339376231454716354860933715705042916122666685077800386170936857704782188419574223197104584388094970999626039323210112389062328245936030279717085145052246632725013055637609689250072338919920231513195535174582781344634982725053400863310574958606743127505936298532053881877024612181303297742010230836784111681687379989502410558333072037954722685826807519648942683754167988457808770868366581687881570915213778156501117900189045593521489940986483779030456519357013188539681894338875629375886946010159956653702011863638303346368490941747386575032084617887580165111797377502985056238629250401280846543806993733649706416294943396891849490935845422235732071513442617989425560702458283677949736702305737032151350563777240703959604958531439673192864425751361316212775353647088229861954235300751532232987991172321991857396395060095871891319132615491451170154650506014412749962426883942844325409152819961848140549800155616474970996751751171137365639521739318048975393228715682212356052153603789473286283774778107505299333927723361271873564714627367765056363413541186526765518129251060268352686272832835703868102417451833597079961026167657527208105259877545084188951674313129795366673324607735008021969657438131020136405759008584858041473862201797995125483870376549603087107162281524544669860929693484575751878008075674915825288464587307441554177691198558546790728772988050820977024795336329553612589115172401293785530281702598457037190212726476556012491924825374856159065314877760780412052905696237431760327196409234625366189388858735011526829685195731732425736095947330542888103213616902912510019935054593847169457208574031279330539445459484872018972054385684996068476101394629557368021640705943661383890277288714276664115801079448263115229748087971725349658390491911375024930369003389836238108760794653941409926579398074631037255210994489043084914107930115303950535726750340551947991144545219565406292986082885223771275801311880503201711272361710441139521546707776205714484856702116842024238954891000793778269024007967768773712717102082309812108873219700535962506461859137410079597279865137083340340183025975719887427340881693626564023093833058264860027696314700409653171978075252040625578440505297982399292724901299971774495782524949791854174017856678387112300100992786607944232838694433748825940225217749860073838840369125976273386427300153243401001195707991320845801070129811835346771323371701072909883803174665742369483221886553906618263498500732494173587778396055223242173056625029761732246442379271641620128036332026858383480340258608823727693497953742010249331691153566694211036968930947391328639788896452710823706400861156369876279434098291042096497486672317581545479600472076072317254005705614166452140439395883298941904078846956407554341428152807382331414317947328715888930628663937073924722662237684969419475856349328275054473001839466462112978676059524940756881780224250782353241841645967098799232087812428043248042160799817278487933861594482989648789107197898020079768548134191430449674786532376266455276796972490680291059815488749769765999680227404597712624031262492456494218046915755271322056397939199046728678076158265742148192080045767913240972566440301133251020751593728949409651059566809967965473777685584172811879062377344459478276724606760931222346987575925683884612409939804324578365042094302840070918286508676043092024574150589069097273993948399750383277195910405587421757668426247623188842610346634985847984224122916390840159476325072810474069252238603310494156303873378048215555995738839996428946213666686715939675274684202661306709914578454818462023606175926705242090737970269711186046088241305531410444583557512558289947958302364422711233316662569836821936472106602169508519531427569170235759411841869200348806948765058966784438107457882818105049119907442112524151853642613936351858830112435976973226334376844516767670023165061391915286853671792614619079732894209676202789246558477470842019366396734292534561385537168261669563692824848956059611067773815472333785767300479162055091023941176946816477212034066840500629737252040138075671474634115731762831425089264795635216314248421348573178562244102479149828581172724791543739292030406017899944584405238618698105267244163009850893633552822076466085774425959946706333213879056282651543374793024986806688570076059607442619106095422145677177661017911141932532350721925914664206245030761311896933367865252844191029591515383290805810244693548628133763194988433115642167080978011642597124378710336499560958238978177465229524442718935989318647874114989618145083158942242397497702616014545391864035141672290523033572418890250328223758753861091491967447730212301824212237781367807438089587566391246646656589094888549323285061698630729226871450039929472679648366094423002316728427198144433740091384699698499568091438467081995612520741832786571297597733038866456285018051545503311434918862862090375486762517236116652543321126644957090189965624875611713477802128934929762076357701046581713119265462608535307460033848178875712216540080821581306883351545429836825786493018243241513466657585171442552560695897029243191922779807260368214483136098338681223526698796117879705613514896701373026848588374260638946155423349913724592596763276128439186503709110753909042663004759020097692053917088662253159175503881212751688745420649585373407981483635217596916415914122919511008057156846812073505427465177677947121503996369918474831846666449976090844905898301728076383202219033799672112039255778418884491438453405085343918458265529356725139289717003480425940974576556569267564492713572991768630027039697088660447286322031614790086893533398399611501978864986764237487699619399234876991721847654346795909445011659458666037744096826736149948019889705845820733330421161460284593394221199682772440169308382065133184911604181442516113419492797508233605968733236466730253052117013065354218821161959780133576354169825074153862028051353907654009597018809024719304530047210027885154932315780437276518314699059046772501338479646535140235715694966671773754356622781596064042065773394232108502967149970669055536835597750042274364428790480470998357433546018394562242697672964605004129973583297546277925012048484981513424093353598815408994175098460744110592071984484098699369602201066019210679996863903060399727939843211878024118568683327609221832454183430192726153930671455021340080009403353819264138208224257821492320115240110106707173341850085090908485102877983625890615297646991921494055920460040448740714293588213846214718568121390296219287401572908941846849403228039296045699536940106338281062533658511818300863996015022434030019971332567754530231051232002545443130634450247863155029948685856073333355310166028064436447799565059794763402204823971265051293977400771413678938703266873598510677870019158827153023488707514562153213042617866658974441283329710302670305721988320315232780532319689305915024396035098325759620387832510044335902658407578882885704529115737159932710016267111990019202816329299225113154260075083306240433913692877117655417102496239079938610374967354485304355957717104756092055017930590296964205942477045341576234334027976693871000627189049406131220105824051590939269464107076492695779964776974869088682552232926811078825126311351454669644755009671688245504299878582931927909617491291510104531319453139578163426772474101312819165371309922569431727730762962047187262040079140511420575148530662523660078173521679441875081940099408356632829086495586608690672135173288011175008722180653712387248175226067672683705087090427428497188472247228161117348411970866703999882049228235596942245762471902644091354630762601657735403520765541903987870676647663348592248961161828394775105975708710114121577123267625762879670937870155284706480461513512096031088936660816550916574600843261665664878911675664504036653822173990337905705306340510734689257632014999697852898623112120095721261473075305621627121544387017884198687050869670470684665880549800499300973823554012909670598200999054902519915828718376183650722757428719188914288434623189328269011236787504708559878392299802760040790877346858897614617288367184954749453257110351844506384096017485125146164515262382934151843062706619962995560839210694820216525808647962938146360840682886921132105378347552802975693599425845187288473249415813450051622899119977999054876766677072965632651078763397423116600883461830030968766559223142735623916026233831269727908159515968650363701294134462525715132289153100978926692759341991965048948622073265013927449839511987394104418010977571522194584107815740994292632640651628801739827186664243076417257166314769793034713858086946234684302083782405096685891217035148491320256838271204118734967623608801935698275440973801278494173275280975699424445634534187566152773622895990430863920628742605868869366240101278635830315924636298489693154569881937827415237129524803228334673695727977357954969130375160227223062518653136850666499665532898801257477925841965075735864481995329683378112642978855362497930519909066650112014840640382134693469509621765200165256381526257998604144025792574746651363678557742414533269645859830034759543404538502012407635665363455076928549577036719948869397973506726098642387431556893631029322215871756957331971104995954697332255464207013969782211972612293620405501967904138863826490151667797629841858886789154786104683389937812428583312017785988564877167949704060057628966662567831481271396924197131926934161058855161799917101318291375746000076363526507651835641618281055599440082366461361119845744675736482858598314575797479327735215614879031977423279790754870810371744472376967270961406211014834504748297404830476374178791902056556607948641694795101441886561925525573643294962777700491525494426803199403321830943590249755795550573659207804420720424011348517214069007423806348494096838528517951043737902457124401811894044246837252525817903813531539946692905756209431697285452872467695485995409457697830050109771281925769944829573946839859672337328681919616106251355741523684539074559436027857064714386294592506711713228899370641250772729679542745401734111972211665206869647117915968722700897888697423329233590201094617933078215453248258611323360345602226971966569080964089371586772966179940574811940779462770099375018833744624787363950217914707126546788937134272694775478933741511566280217854151269298871589771295520316226951462026434090843954077648402472508169914862645049275870777104717082459223382376968626507036637761885043276592532380759778079117791122737486504878308823431359018676250935022595365557528241358974997984908719234713260403213588211920884865334760625241726134080027427325913726384105949952908246682389185477997306685958761657166629140264477332125590528291431589950518316224729542733000072807751843546896478871879817404218321581603731558906939671616868053832849504216655007887318667537717761002095548152725268579846134622015977102245256735278092088781154938849933240063123801879737755453291049494983924543045706068095244427931472151943736501041588483686784808182922521611622306954205355715854037399927904614212455683312076225910756167550775197233319121806919410460304934849680684856885364293209787227811212216048115969176163861467215539597346452148742603902777876257838229886521298577382827303318627663009073574648595475479941458231983104912268676593400624034965663032181009172504667452412477767964343928341843620205249070624893347411336549954920543238984802783598539906576930649588411925858511488892794220913251258128678143589486533974746214708582861495985912551695326168559483066848923312550276683301238851758178919588700235368948996010149131845648723949571298150184672392934511019899274471631587028637739357132736330495513818918719060400007601439407322712901778156212436835577637758841473111359750032585887573498328484581420876726480268244318829100316160816716442135973791440152013823555463257248026705808704275905231498757864963564946101927293456321766741359975222611708434805764018280681641145628674083822644064462063962840548840090195033954613791945559908427282241871897317865457000735864014293183789517378325337051434705088635903565731591722594299098046052184655313475787325879094181010759901965186293527151301383102354021897292347307931164853018190848100413295785627201668091651061661588811267194784497697978483055966027643554840528096387356594357788870437505453892659999148337047397042894127090656865227881330663687956300619341120100382058195750865533788496012522871391328835434507550248628002965095035737497256009878299836640022057694932405145785363113636068046970606515061642620852956950217176307613162941875870500884801129933504579671169329997898708195868145401652923568961950391957714974900171669809956410377789995001902845269151483372680334880020447140491073783207888315124079960939679386890058507369901903133303226036390319011785863929625592296165340388989493230831190161826649976603251399837460821591061985393825364296715634460786925033924233082777454639412339538378126533336859337166395462193664545037514746138651897287227027817327261131574665145448942358106983727860780308092699428918366753937569701389118692781782550678643769572639620023089383709293556397679367683917677442814299493627716109108729861640901558017696907767017460662963218799172821268400418435502110994764328663499285072851528406693467457751319773935479040612645420614220572781356208021868651403125862655761902671541610018349877920577151099943323783503047241044076363735109360803679307162014258908789767501637561955200787648967406678126076471932704178656061804824649027723540984981283534547323559221599644150890094013943307623446477636348108842411298823831420137717547710889155310041870348426871236094240959780899731608283277314602518064517308439209011765082177118573822342540852330535277612267717786386446746995219921383301390152631522801431865353755071176709099237625038301036842126756665863288639951750821974318496623314559063179800661434297526931221174018312956328582255508930621183954530403888049323568035376768522980332907457541274473170126147266021532497803734841356726823977654139356436198036132533578689588654866591395707110640487104839152255479029301982486756391547796790223415262027481731606195756091495161083638829031473671529658037082967999583492812046071437411910742075551437870323096975725252144008913737490862297837942899737900767977252804690306015440845837936539236841567157014809585387341150228579144914132523282235734221166842345043646489991172000402536065481749134618562389165153686567257101423959869880426696184949022621779868894963289732101138488541138233974940846846370164994749559688148073006022440479578236436469244094993341725944030880647839429950942074065524328612933742334686847703613394793496210366523058108821749152375267461671031516236248518771510259190861033537440947556647015312133022377999694342062314279664137923970379953380557518166426367967155328702904853648263887097258241162595311227628436673236415458415934079250133681308424057435940719944880536017003482363737156477956747146314704417152748329780023966144814931876229242641988210312510155464669808139919949930811397588353329187249422898874406007337484477081177825761139709633515387727515537742529594047270594097167264115446339276033930675524977032093849488533687023988809745439324397271523313862164807242470664658584218350149260649612894604239434616947949439622270462239600010339864352339808222891826371315006396278338600933948993991012031192495847510092524687189840841779706162673234732833005500200985282598837149970684381869311363225251427755297078249426655703700463335387753625599923961113717420393079872270126093505634135204189522590091803274717668915438053052914442682076438998861970009827328651835831132270809493798327115013211736131395531738119774418628391795768109769086871282640528619125447257312917150020215753286121001069756281354768035450853939809872178718488425376964701187584111925604626897535745589301074258834987345083668982300384603415466074327050436630982650569989520380354203839945743654380519601056366468177836790268801891119071546148036191307628337024041035777675605147027387182856375264102636734405782599934136603430099236305152299115937633677258339262766386844523098505686518540892480519525902357648434819571360847583018546539420736690841425065737398636016579575946177148165051156123309754864568356991705675376810544835630298124101622444868373900710069567374249006013060366844654207623174282965970875172523017084910392388068782731834416409741234545920545950175890016828713759122574304369153467085361787726330256792557101928923455025314767580870988505219574041439583018464861255494288686810388089461604032567981239814114137374079073112002095182336490194002281641733271257221782337732784833340292462672891208397144216610526345024337502147589378096414835989511363389461572103650479439375723529646538615681099013283959872195781960669365767323597356945550765259850474798027465039707293753670601680357529200489896048829313354764387230913316650542924164889473326225625846191946878830555950583573957643128917870157276100571306896686160094174098993519098324155759097084983347508006992245962265948471327119289231985556110380250255576361694995079425996797521365040866206538305319790725447829868358876536839645163151958523894292235981191990068127181717671053313354425921842474775218998794881310863562790830227508389864022436442653289624147755527247269359884561284267963614179029771069608723791138504720800876654283237157237618398047981052430389174304424988483250289611191380012234285778683744088147754483572116018363888872000862756761583139167520441532839093964744810234079983540110906855254522049023724586713514954905315803152594130870882572056292049016516771763656643047876659406317617745049101209261001231267996006344247900454343588603591947433579712112319994827125916743107100396195420317320151808421733183937448438963733738981954003807433896901830130946290069858583771890981759962663980647454992713147369834317745125912418788410454334275010807546186959243541469426668885649424208490575191897818154017476475623728941930546529455569704829766057261297790871663917242993531366585113401453855000359841542975732813464439267063917821081736818759300534825359235018029369265017523838036207374963437283132699504543616984004796546182548983504072357341967235641883588707498538850158457896949735802649231872072062148948743944515919865142451514116215784513668045127396424900772577547111949013854272248130094731061286048195644617366499720393497829577428196184767990701672776472519241957570107187120037991091502281606639963452238291190593002731161932355947229610733108123825753897332413233621555443665502235867095951256519432511767425263108213365598536654649631939699618975445812420652699502423634491947328217301178839740730653996669879314818855579088157096732554052541212343384823433410909830915689081599237908418522590383429867992280404934579991974733965166357247432194484256472510782077235846108159311094381027070768292214551584480262643622919897625513734816075707998026257375515456792651200857162304555488899828197591475008137494822735030241254795881988731476442975105281435209017361364882203224160234748287770190674500114337059308977431052677879820031541987488660412788666935327303959077603510883458636931744960910705648264464131512800302625803231050727862751714462963209800433646301057263092951289185742030798827300533300433384020054832092116372032776461779314105506623963562789810443930549260767383845498194178811207547942088082112444626376060202904043417735861180981546404886839779260615126212664110104389413308978804662752790232229855728921105549149062740707154607208443627306724853784217590691712452414207074537738205169514821380279780813870311784928115203287131333412059274169258170302928313943292784266619881592232588608555967346786253019037871601667081222899726933448562541473731734769349769600758781684730665116076817875424698723100566498106779994306408514369335867159264061422441585053022384404621780692914168352094115758230041165100171005053183860948358195068643036196312600589554438827226544471777562005332279481365461746932536646314258289578645840070354805217892035178870540363145815005485193308999487835319835530630313603638036595401342395008604901023635990461685631086116467123743541055525920595696166211335469170594603319071841267370258514483968143469528998067208142403218744153830582287588123575158655804565636766399112356319844769801081017572035759077436059287063333497809189590591176608743226933009040167043018881647136306048529612143611028950030267442100562281818626615054667417921715335312024766367598032671163715147594885515379182135308853253673070946717845287589527073398147622710930839120123680743312011335995219716927773425326828747651594090726777136843819079548489592141876832709783339442627446445443236749286507554761638217659018224891206918165871367646411890565285456365607071508505616044927412042886830946379337615521138608019331325271553711887461191881299538076248242175345166691324849869032620838228886129714701749111893890034055929027090970894313706573088557558462512728526619851973277821084887047872039560669124069617311622860374288406847556228759262978509913450141954495523028600171999873599512089379837061193228816388156252767674060779467155725325796305729450485294334299387511761159655978353174726746097242966484185311517757636534370370972894407871319908918634317841203471599352511884695240929887656531265097773575205511339748009518323313546317846052400264680125664105800138355521709849181313357301521571663148293572073632202054345966960160239281673578267601919776285406850769005953160558099649878095000726054686200295047057273761993718202428946723480427797991220441367432833868886602890293487656356573901842050788525887913057371259953148095239859667757780102321341968867924506990064569419148846811061725885906164935603413920640853389464182089480203894098669851999920504209629713818845926473857319688795017817723182105222177987653249709348509571573780686635707286514004268554106315128857921422133008529624214009288624922187915297977665338058680395432403210921400742569676578980653647875969464396446043856155114855777019409052017412321375457832029435781434843626615911544584956920104952573122066680278270964321954473405334697439342606833992442572780229727858854859903249350198456725993202478603771173360563321892147270254273677335431279372646464690508137427547884817941024412992048778325841010593841279117302667920838696929169912459980367166137800529356209260535518099362389821657701907976855580396631878992684749444529651089147786690676512652247038953249539999320363774105671844886753046727212639958332810979142779510457788262048490359139462625751252069980537109620352544479448064429662293972812805398015612679154900295242313125334987374623244433822096607374129964044800501677384597788256594390360543710579859730128103945291144509200629660671862563303666979176470510858985719529799505351135995571989205043488315965885702538297731792366651002451726820537710916214496441221674513753821772096966994644800526865251024764436023012774657259461023741918626151379284533141295181035274647451549241556971733261093534704482688499352267428757385239231534985791485485543482998619136594550729031845003074154882180000258074118187518216405093597653244865296308893812215692070825268491093330042362583857492744252748874297927039550389850978273201199062128308382600047990614304785485287884968460249432600860284286380515154845226704710768595720205315245109824840122779122227665201406638216961010727574221077062980213239046682995683963114704794049348228640495150660450378334563531864421049942736852827776979210939824841733439860605470331429580236629739216035972068262126742047061410035556826804215830882388439248032530086135717141527469530016781130065654905142675265208256990637960594164612859042634359514195652793797386285602479586819663614387352269032295112969677119171954696812829232527774105234068904325540189298556798701765105939128589326431792662066364433931820659615797650956431424951872685561898285021950182541284178748186479162413264848190082750573154714287857113990628512736300551543372707951752979276851093683458550416118376707945034133390950454196139242098029778916885598773467668663175607637498580471005437716828613500418842431515515619911366280104913113465271570492843547200339658524175345277361196387649624591388769341141704330732808768055182353765705341807180308652610244154322595382609934246423437247732063600838903668848744342127921781380060108366877238580569855730303740613437210823755424016435201788908575103079624569264987579195002877174028220999317317420986536919803358173051104765265424293120426696336386814697155903902680580908970546084284614545356180337026731193792262575439716259514697865952256005532167433763750722183300035960370533839476333780559654634976310173464643048052897997187777694800609046561392367728584560419020807751675738537870614302838384242975498911593433145734296509843289834589846408041612274112416465736371897715694510999759036439889329586954329816316507659235665275805636907407866886031360728722403128333753403310219573853082427337052074183799972035681838591877943537243758084372182294385558032601061921105990788602276840301635322908345775448937413229410108832083716629326481522523522394532318281916042978114997457028500640825602141253675109761958414371704998667569782503809236944574303866029765392746718846211062553393105793999245225456995141155874077876668595903516360433417844308613237089651296811653300213871116011318126272111946744082277439478473985463995386499446865863363819300717114984511230687029001577028447232151445652510996107407384816610433685176279872287601368845865246759272874958763120589288727718201888480122847490050310264130970858646103702807218279505837967863171839643683238429332448607886002498243206129261382244466782096388723014379228234006948118447770320019143558595983150523084746476641124288859683669015217543064061477064938099523946232956611083441072767005403555174705696218252073940541987791719724488171968909240299139356595215334376438091423210396864370037341595816514650904326776086670743119814465310895244664437387182392309634682440697231441663540255506277517015314867021129773435575690452925613532770327875625535457574548166201990086279417163467464595773498209343821403882641406971960904197051629367772221870755348121456546611717758342613733022553501240822311226372603956853701895111215175515379401739364448928355183767103448190398824168599862889611889656358851923719858382342649482573492155776370016763657825201468519679560783608499552038489826162581374648907542567579240493935380359900545518287240013168486282857918191207560984792186342616944947885769665617808682335099532195489232753743430663790664326894957858314509545777356520292968767621347598040363607950436939656304473057538462536943789881611614080867057658793711659347383201692665026751598692834683043415280329510136055462132183349773063288448932090405875839642042909926643657345366458111132941393990080760160175551276775328564940896976089153601376310362447114559437597349819902647402426338164713376869488709303972771998908156413629796629636706571486126945998072883888156070452332045335879115315662893230481991831035992895891879141816841229169576428791153357313710445387276190890384378303258350835632082060432740889379921420910384341531522218909000252096233026473859524653437791860262102333924418500026427588497631976198561971004837288762526846932531053070384979727036901011080591489848277309648976376633441682793453680051351733995610946263469327283929250089815989192576175644118454283206008375901300203962959295320148626410434025112737245886838419846510828793687761339121837978227949568526977974627675668926903923820692189635755189828267461256034498443341320729788968886736175418660370224218184633954841585620258757272803361556578732302607416161285013079433696009305276659414934297067472130878866186655016792499620402204787164006570943895289212161898047481271255108267523399036832478829615155448405355496274407394249818087411689836169147171188390848451938594413602655944975857805214657176408195410150428032364345790807728853946465246232525046070240387894020649631004604771853121721447980531125137449687619887195450630952272294574089870724698006367404328478660295742735746866577790382115021892984196334449042753908431279028209785726954669152486275182443029936006759916185169571455096264673728944815998119078016321904846490991553334652288825923295745232409375472478990026855277180794977957163587975503099737371258450431638427552703536442457285803822425117046372092026933548506222097493533638199507143146105635832920691130685284811331671393331179991628095758625452932008924541144458883776197722614849414693749845934127871658239705792165887863366881889411681714560247075860163257677569193965396364234170182399814359204528245156237393274267810807786867120436712659798680912703590623908117470149461125738633141067949213188536789008595103836334185829399328433753460065315277477790128441054920077756434364936544872290150808344478222894236941844364096576921100569249119578669294148551181598723072794278654370393898671043793653165365303069350781426604659779468698901685009782743193081859240270021814761361296064167920182035113915190696308569888335925732337927676756630162122156737856373199893961708315775289091001737202250830882089186659007892175069361235508859638630956051011255115964323410228185360021067305641351645572809882766401893832071833463564646633886528222336091866948007544803573690938824590044962709343677209371200114028866451809988535910151235671989610023212472741764436164576611241771261479725024841874368123010409828755938704097353325819190256586217763757931792356274666587367872643389970574144600167432404154651186189640253072162697237735251985763953739872577586115616527950471975609152034102026705161152258994316373085691834720454937560355927181436785073483991870143107135504526960015723508917175030034399480185160458692340997477683117513186567013923888112834621097435173996314973233959220218862794290099593819332441532973487638562837995837009319933331690412664945767359433336429056631332376961679383408429534972074420128784229690384704069088818524517588344357872593133474632497628583147360769897928397513991888538661775514806553654467092443930384182945521313426567501326362957361993145223099048336106304693140101995115794297272894561304594152280061361734199932421519619973671710916193410596483644456737939836069168155881863224433366460062623719113647858531188210622854637495319404369850860108145048989632552477108699733324585576085421947623941118552246088475897774447599005647603246095542575444651198715868812644479039230679322999844063429538126103335789120760367929222276015368983292820439347022418914208184588177595110442068839990584479354412808865114056128560234788737668605852584678964831780105483733963371296354466270789993327849716081178033387242976878688228862650119452151024176493745924243437315348958720685320092130334307676992998437405000324651969841533614417604878552546631419932188192947075894359840324399756963623517045296035702993860418277821386433278782196588181271328691824386060224137950768693670567680904150299832150101161454940677961353248204711646363115458886015055171946497881058655436869320819997913080572172641982347592123428407033260648473097072616881049611790598090090456288064768943174406978908751777109293471329595865199503766932160436047807601834856431497563616239819069702704779668182883056807502172257983025667798817047076208126876261325616026727015891124898146714174192540606892809747829373522029187909838797210347802535058730621839691362524265535759520019686036218210340903912467280622112586657380452980937495542437216413332281753449445801108006424355398174242184556156810789894137238579629296467793164801565811101854282613730078602157404774047210417259097105782708117735217007633992214279617425468825466103060573911628603781864881055726015380017914097804154564047855001247425479630748381930218856726665495606106306323842688852641246515397589051145063828214605654090461093288653563721932178592821599236594287503250274394542140708787765632699550568136912248173792036320862250499960091540595278493775666814736768556430496230141779786979720721562859404873125528143308331653423850620997432298790868001888524140847633106201456603789415064007933896576653897211749694248044990858066488027612571407220982501497418478615602564034583604607280755218723727472560279809750781778766917717994681806916935982912303968028393256707016415031685704525703325938837948713053225536816700062714087145551750943934617190894524494195001220907622077720686000069696699245230092414252539876391233703862548358724578374008406620677984646919498017683497217684173969612717863425745351554191522563219371557652178948440322747909820179172762345756767186729618847538250591833223570506520837667805413467630060783521587242763027738957567766250781763570986917449057707870911076633454921380197641203983525985365744413476560781945555557889653408028959705848451579319438798517635577014708209406800660130589518825387106913949854813387061550398800190815584741633392732426168019088908260172127459010973113822963898627543995576439929985134899904402355133299841008132841232926507561804660768856433918081640927007433039023155404754224168899609944211105031766183843273216541716794136414297068773786150046555849530971497788199220615988508325790985093806067321876116079320663367844044688010094926347692615538285177063616702828076787207086298910574039868762696377899286950615643801515732448184877901641013937085266270338836583910754168977200593750063109331823450476753719251786511791590944805469979201459961753364506815756870044013785361734868534672310626629050586660856440468874247185143894382021068480367830758560420797459003445657500410373813873171180604569251019081587673719742422408830166301190463958182970021956544589841676956201167842941857607837594879823379760137013427940330235397038639932136837594355723667377376206834000504680505144466757609426112545894597166419883097234859490598076479356190902576768179940127437359913064306649923339651179741807644011400163822193182259416188159167818984462580815265473635603279386306679779820490461363482357866004941876851629815335500461382058616542336998885426176581140963639462139238994341988086069097201598324912161454619677256102841845697239760599008835139698725437186470180214668021739716646289810236965750268456650778272458827230480020865615363344060505742773139513120793710335948314995980230954075026439064128880712851260380909536640841223477959083974603579884221361427250981918778597719583446599333866966083671232730393049921122461928112288527459381251447541201992878466574968550142966339457274413316557985251831293938770877961791669391321882895723935293587954102914554740472472758920182127747373124169763968080227754681292330432437912770284396165263381725716067025822649275145890508938341230565074359328845502727164122616257314388574609585909090226824105512651765143688485946073135750003245467305157500958602989070004616089793608547683231525795718186780344930224492340055599630691406615563247864678260129743566464707209846429406171669820908502151012104076684404519812210372052502469999236547617096272240895624851254697972089274643268696357190069596180840898191677826038600037657608832899844968361345948411615150556974274790956483190162362061829780229374557717715106615599856349770061118469367895756558000109859040067570351282375264958085166502410944934786043441161178081724213452482976547471943906776848111122466287149248778093073308249571581122561566523090130650677894357274985053732989487721892059392764156701341379400426667058379033859285610236183743929964931241982004870287144563358831038148660143202060283872006105606046722418236797024758059231738758411055866023343326647982248696816762198435905519198066187839915961682693366876222648123835118187713508111558877259185151732531071899826929007297856534458053850173168361719901060421819211989238340429126713450051639182826267771647521970469146634874370225510296624265458792897703516153842802248823161082615187652265600696439310442241447097785895780083298831727281061691345687010847619136996853248347152212500350397379710138616200237802048632047325064440818522456649997538175517880236785690944181190693128165258065923367142827613554511720848452949837562348831625327618900413483034835105298377406024897092875499439594543260654111518654646828391125708298833663789272477343462934902024488447515480427800989109602749951207879076585810883643978036155785941835394560687097077472207563469871850793651130826545734802023785673374925735289539879824244238311976088906585865636565880443577599253876587332219857136340399635979039019513558849543407398346339191176323989217975231329217792280714387274897553716049067789878156515635306570557785148394480265930854619352167625835269871988989292312491579332473305692496639786391234898870428252074498162234533515426990268833519424333839440275861982440662463298395476569124806281988692296380543043100246891351228440259015697749802711436887597437072017437894176233911043733529698836704007925726912528366210778018925325965143670239087736138988913466306717448367801092671858788305297509524253953099952404095695339140280436791933535224209011053602838577909597976338037859726727841174759260990120841306727915433002791884822509533389440393283961935179534524140524888395999150614549768315762840387506866487470263188187739246755885289514923464075282397340842532498334518550176830415911601933307288408815922030393182002879032616004701049487296465140098397276973065970349115013345338100963343650298634935762309618410939103929312094856735837410254035453511428418174578983986725405709508132944833854931101969699422304528980199539396639597297504323969697013159042414066279689393807238521131108040195263765442660065019225629754965642729153201087576466503202029003405571848039084361128865945013208358593068010999928510173696614532370482154091901245038714661455843735967951010304405189538591652047820094953149859583984389226798637403514399680658396592161785791272488016277981396395036844081373463965352585940570591714626663595591811534392595855302879164650441180190318561442922147614617707855117558122732650634774742797710888542182621936569033395909353304939644580481546793889940668476620365594577780362394120861217673321727692887506693474328632996666874969295650920619225839809443001697574748122485084220470307073909213087630711899599491930882832152487139466078504539606703452049732226174730318353340249107557622691345200892753039182273239168753633633917647541649090722589141995837002637601177115444151969370417046335278769614097624699058059981119198895798557845990546300071292464287962448940527378129687045269761067606261027929947454509730134754356314582132131724223650155920358309759454533568465385735043188899012935771138194212269250991393408749794430112433205340531856850287717213268017500562900879657450635574791647601230811993454775154370990574748843248536308730777721883878915148280949802122691307657708861219517189273252601098583695244698732074801565751831187889024770758219685410844869699494172422101577862580961149108786962304320887363446382295165605197546551838407678695574336320400858996457915373177491584373231990546270288368617838152314270372848519555588526555397055890029386863044069565119550207034061705562179663050745524156258617523252346840129152614977627042303022973528731438012581473195041983253459949030275636653097207524757880808679737223585008125289312899905252869347905981135171482417780314260382523159171748863708628206752342862699719636211634546932319780652465081140799472991653442073753415738606437109977559399587815573647004167817931962570704625973189015339579348636929326253598812604040530033221568113130194285777930172819325985949844130951449044194774535706811506664060555491328638511809565088357528040996857780893036514005051555189104325676125967211159121117432862783028879315117201597523967876233989036772273604259849247504981520871394204635323253077502868318686303362188101531774214271457402030497197124759551122735825909142536561464444977505175346787336488284102212700243185701448017588914868166951682637788276319193969118007454741658655946779289319764769181375526815723079103542334201300731020095112583233058729263605780343190939990777126647194243935101970651156399965239177255408391144003113924833018869244467142482479736723093432536467078498080935507540955913798076371302831009756180931366869560277278555995954761945362481537268858490278986556982104277585971759941403063303090906670368726547875486106594889885249084434972719576863737062507565779144505428638045729794828547450875695202089123120201204780497711025729984276623472077180926448269457322144413257114664434708036771316714867839478849807826801472681318480570041436691706751412930885026569119982842268034757119958304918919351210325344887318860119187703161034280277698323372405014831200141819485425138232805745863171628547884508954943418752908933897550497816750004261464476136853650381782444417822394770649067866842632571696982374399684559511492303354009288568121543227104728044343859240396131613032166788451418558661910853518290689190430168379799391283636331154375164048355456227246424473173320949839198539429219279623218208564229473316300210004812465754685027507121187131998051017578148568671751078072191140767144312549727954356312033811655483538838560446957130174521755300855899263900185070222662367734943902583252792182393139171196587427488545259747383452823874603616607744032556030720469998511355209360849092145585776556013104218033387197645948074384303295053489642359995665588027287101605415011003121523472886186524485700621061040319190000653512400004664486810799421481688846618849264919252104395475643991447856469004376338060759628918185405729231103064098139014958533761706685766976640981461650421475468228230926218248741609245136695314229985719695634541390790653429573508099533328295051172881054218910379985724715892752089651872977266282957533746738063231379246589222259796863722151505256051366335297005049875639667669483763095113912724084906066334238301768067679699773501979975673787693524864044510451607502617592712633473566920621894715945749323348354693763167351057957581342563748569689983432047774741176728793944002544775073180445384712719186662932889813309578215406768298122004783919423473272041601410943181491937907459923194768519424209599207958546457547836747816522036896271877791620171915262646071632088739294749184635560817033173708636809052923528390326859181442131409295591437855738949480516352088466740718050655184410159832175971939954977214716321620127161630182450478895960583826568253532189429890902848109655257466362852743279069915590456034157249673265547439883002719309302853148918119115114266676032225178780243948069800703611635204590807385732765871591323010182446590570902406077712742097666706892908651842375548621886063881469376853251766523900118674527133698006386616703387804493486793263863187324529479944480807592768224904118415067891878604685832594741658616921530021396036745691329707280162249208156278611947930675222701325314432948162365543123251896072490331653937874620411507382944404598273828606577304186723197417087768539338414859284049845458887911317217186950805082098970037717980413995251870599652925490843093794528894909795714610384451262021570496781854125731607799072187810650269635860171465972434208443547128086629121490443662717241982244782093847630733329296066801383763862276729677668661720088910483109052207526536778980286742012397979824134062084613673377983478086402626081810104692325029222041665180658335131099896914345290407177608058581536203741224671407052770970456509418030188305953258558946264200541014248551384786785042070335794904557686786898803038278991712468852903544472293518169457833380264110276476009189309309780153304095294392598856197309828289186939967559450856219971415004513889658661310352281423480006398671619431998651139654285554881047796565482037606350802615630244782488336288959991441285661962362865869009656761303072268739868817372638222168796990826793724284147789583208006728885390678838487131001621845850120553017468933963262088306807223133119761579808498087784140261762435734014607844845136960837478884552814887319195405476623700974440512331033228165251206402742694375030111362708189840518381021530024605502420005922484209415395585664425764392806716484613709381796032183727473768697666419835798462804237811820933338734572651452624671159507848733827219898396286407936816897372921746596660143159584936944580538953964568008446017934539841796202792499743321370502048015597529907459795642363315123514846155084522778144918971438341665435412924485395378283931841795530560537420510238432622069488077865199944390876655297077108886837030603115513441502796385012010422772056795863008434218025899470446224657975014009273014650543205978471464934723630775366540159765527280783439729769936552212275964463697043514667264661826058320254540294063804175352206534036910456758786314905422697514763087972714216265755371249972177102951582309174006476313941014749904936533900920350858147099122965460034539360034799744520177077672342312767586871014968826566219931026265508357446344207010589209483047996840723660699957970526883476975513663769453695137651382846687122402112332212623669050676515665278594862116662142538431057721639845871890749008381849872000290437695034787686263955520335941962112366811293133295968641954382454006796562990532611190042194170669126578795838014243330409681209387215329580634903139780863310933059285072568318718157064306287710211098864122415553239324533414764583389506123655718199937125400271069508026477466118593983217739799188517360324196005762994114234415425496122512328553446135134993811493119348815638777795532730678486309947760250428781420875177101848757536492481417501150057796177536130595127276244936918192132611400195423424365175153003650595077014718920194115940649960846740590868227334755910434367374453271921200425828484937582158232738797832935058221380820106195645078512003810789889133703069848191404024977534203567302294064132383510207512833570473432732895149319776495728027313076119513392218361762135024856419909896028587553856886299046547337867253480358496724756452257751638682944539014343330065797662898506965283477262649722770485133065833279145544310930845127738219069495785384365312909320113192138309898033034311154297336124423326668896701631265166168948461098524786828233783775097426862415413769398666423562505790069560914129967750454309238705816469219483737104156489984780715540584189079752971102450871113887630066078602739194481659752681509204079264961123850083606642046213941908358912938161922163107030962090119360024021332626521264528252101574215868551322590374219431580217003758721274695978754445737175032472209389860958259298747543945424063235723111609474240566070517212083846871177190408320046493514120053853725119197427531033026298919228711111068820238040129084321196628932695434586916809402952571485628544633948992313084392152633627801572347327547448530062011685623108264377237177424319088623107401023388235664221602171307293279742357958921417068606419845969403793204278269811016457610412646249464281236286898477029180751900118140372532010731859835179126836463065715597319320897167579993913645931143520292260128682370034031142691718096380766805823755293539486442064224944338901023464936343669007125741596482202423971503171016012744745632826909444651265944793301611305561206805802172973693608168024639518884672435990179266166122995007229131996419200966095779351870248946862295200140733899973372291226498621418426359377722486494350786859461406114344742501850731362222566263334091314885666576684570001138379971836016639234438820915093338273230112970101233315395769818550440066325657696175183520207630892018757752328864438893398373789626238544210982232024981090837665343304201128716138793326527635676084880815530750459655444559064631604198769208894704656544600870883436996484728033648269555132804238245765088500738728116257045255607044107106280279979405534817128062870563713986194205825949638595868379565382665285643082692563951322419934260557312067176659911323828515319707793307985442298417814709315721766663034249231628878552743302826422494512973450178997669685117461632442402105754398517795066352656535159644041132636542703011484575676236251949132878772621951090421127893459735634093880088114273948093102984043543037454654208238118186521510813097979078275170605541556110561654704741911690364112182307574220878776329440770115228170523067757638122977401640050762861085615219760141181593008432255325853501913828019229627730753736609552788682775029677137481929134973112237423935998441188918226101057332382076379316109420804519193324538990745953017894341037505117026947981585086781672752467902468534101757113711557880368808799982395709562962161919466976412071659233703393561000651624899618963901537592628452859586211890274275845361744699587071245495850075626806535095365170179110043319816591830062679995111806420570914139434623584379613270623395467948059034990998814525410504936836474463240773432054339863775815572121982912624922681630543168056326886699463309399885447229961547630135333381806518044116142448437343150501600108755461660006173863250190647130096737139052654236076462641244224043600992306982892588410556571650867364228567568670345621896405893222972690834164943497206626216411824639879123596633418261522027899116039446714346542728597454223296446395711569375558472338594341058849152934178087062759373186364336606109875487164647167745479210856652658695410359649874771240845919710808003694084535544932668380504459640222605812665864805136713281227190442310894347032257887556064280551116245072109453070217544035978225893774563375360939996321887295472251484400700081518231398866033195542908733234085661213372165888181911174902384851246392111256538141839385652387533855479799400025646329607426101717042267121593862845369547743909287491258867383845894231195066883533101134010106307814675902486910890519881185670946111131360561422047126209825136437028501809451410027591978021320503713348899275552519324273659907806465116574150359045248422320698772333048778400642228473542765900130153172202939705315247695764866520496138915894082760016454229657835762248572175154227027719563470962729862584848854920612107796932811610184488812996788864750060026699127448125061373643186436833714817437750088246594293216893921634340058289338951514947841780028301831266876399460446045377285641169452096373325301350375477388681537222509768401855189099324697375254704377320311693269081024123741592534601400225746475217471946483362431871089585363203860690618075146643266085130550160303245991590554429959807004505179680731141808937026181923751106031121286478765315275579401886226712058911843679196250152786446461432594405737124517141144430680873957717868859108290537504304453494725715344368308741774099156056245201126687065361983973278843999288355596111630481917838319874365373354344661491965085483240933427016217656507529124473839789186058624149405544293378414992413038430259102038949968989163151582480328111712132752950212648894651524215936059859997617264056480692496052390698526727901592015851880251264737791923083139628163372836504092653619782743792091445310046827606552185116338779974809562051203352975187875276547970118513520368851239460051407576424372032995832516472018454312028976664559946282460016503650512447112900788018392540668934109812417610330332378142648441080800966931079004378977440315470158378960641348877307404679005425755915278644213260537035444090201153992775321730719808223308941783636812752141327391051922687751954366816103517378036382630300229011767687985521697821174588862925017949753994196862221453429449753418950794549335894884398162420831488994705443183787551119321077736242091893609794892943876958492390585628321208130347588150008037440456531947787185539848692655348528508947878562875704807250056510196472285004514723570462995787183984158124651805491245036116273988769709540992774231713717813839446683734750614403568660319246122694297363810086877675533803858844072139056965549870966396805952246265592600885223413043162973322103521517885034676572334968453562096604168395560780458439488446436477294133571314154331015232469606357265333662453552894250273681632052050746433406841854240075649637937558535993490319315211493287052164767197442610070069144373538240815168419045972604241683809810264664744018885843066938268892539582030984002634027344180559292670846986523219329864356390459506569572663971796981625638101953033899648759753374500242497665227470045976615740116093796204931731899522212794240686964867419616468924415501971347175522945765130199521881841626388091928133726915683156824296013466029534637494509119754846335498892881796448298431759381645047573979398530311888034903041532808865847885060783424659181018614744786429269766526722432167348341223395863448657049123627520063283506225240524782520941195437364296725141978879842552732627960113571803300826083990596098821445463358635635512403371827066930938395588515602939249813501387072472479363667853291009242755192522794429570156539531025434811692010124223790061018213675016704266661390236123776956638223925526722175492967717595519132962200340719566552208920900301353339473883859812441815001885155149946562676209080964468685732933984992541620961838910720162048523246333505904212937194491590905084603860598901867451382096565174043346536052915271871027133677894689753691161534720866935070483353461026156119704799601419687287337568707747660926628595776757097932577636781552897144422178717017382765922246143535064433101667733885215810402439980798778285875787319420865038649605553825209426818657355227015359638749753260360365750844604583603749859725957816493808658013964805642172580779767972009394126160078417884297940819309946907060603798317060969084177529440540572893879723395915524530550740374035040694488343068824434805382917893176458197126014306495192418628031676897030467392764389484259199340675254026269585024914359997734026473435479706882066392580837916577987181230770028481043716608595898641231961246265488646852196737909619608495461402632635723464555482371025962402655607010334292076590942328158509778972752167015056094666312869447878832824116988857273935256581660142706711293251821717655176244633199585437033553306413573437122178111852896895676656583762485495882619399467461203958155965960057433797657821840672788328387942155831274747634547261536484368150979342438815919783585545429132680159500394518903611635698535071065722743960805584431835309701499305408092663513312983821120261331053188109238021904158713426380719688534375008265246678448931628746784134920106492681862329478797131088012248190578136431367090939403623447615042113524235007037871036390908003329339171480191915473798239426759332286636876076237654329455345975702470475401853954299334020335239745853476430212514748164582010876372437635585700299031700974132913644509492383557625890686738354193942415395202516206445186669804218452175136039105381711929851512974597900785191908235812916529595379981809095642808117178695583831719932690976279437762137042023552205819026604361262826521102586620985034067090912341650182381776942369821344538040618804331033824171679400909567677048605348608506706314445199470646572664022635136773047531194851261762460556595377087681741268373681074637646534750965668883994561989381311280830395670816393054336433711833926663244750167982480458012010034935588337076827450274906457471114857733435407294714870826407112366759938829801246377753095647551293559132922119501309898321437458922601519887224757663960959034034142548235489039605287819896812012968402325482430322110705781351590505291829676870147969837572467282968762603139210948740719230732576675827193342157196714550845902595897271629246368952666538041885015474360098533374988959107862146024370760364570421570982612163861276449692817384982467239838577566548521497220154612351402947259405709842807603885209064879788440927216825114962821191236578059358333681966932312555765271829263674917036792581894344637209708875742589303215433491739703725887020522370826573581907699666475377137059705146165017986883854746289653714723640623785549620749193657933374018135721407534817116732142840135227689058254915815574160177620067502537451256054692936007221465693217186474855044289733769682934388829341631633626823993998862581910487198865506600299621488910216840214417004500416811391994907345885448293164633438174537108628461032099348749113909309783480785658208601515433873750613765380687116390062415643467369654112562278798402707089888258299271886854807565986893244691847692872937498919951561170791397997146142624963317799220692963174010287717299532043547817057887433165566481363170210128396177087787559057972791424806373784013226521384030577110130070903584835851142254236779950573384355408058575108912302608135977306578184324430262195066286549517125052796100077087950173778210648625250901197125080673996669182096277232893470901625280228501057399552329061923440976938443034553663087759756660016097412523891858294036137979990849367738046951815529803156722101690835206436662541659255263456825455497258776968069009138511084494289176350684413516513015847563799273069539944780399543424060672417460279046182125480024085139237654666437454054939594954425119805345694438537906509178127578549065213817098046929103797013845989657025112490223563067584224576083812890581067174313222219454125157344344667168904605327497789623610428853064202477415056352383242678536320473024949463155383776251974419048124849116686358717844352757750626591165208463662461376132170051110117831779612567851973631248664910039065205978255839918539550258463045909657912250235251632799462380092864133889308548567299926365892612198321580231508325142265701156111769834216588033807955258353890934273381733049008165013265006851857509634883982746595209419209476330634458540540756021160224166745096882617858446999025399899912862180563151739139772119003545884390106601640923729469607983637623563784086417797429964400988382733022577124169526202702997339644543215334335024215393201025615649892290689104115478169169918158013133322260609896498792674600609312221686789989440579522526824744559652170544703387770527506329587122783630867732957766904708470570663005481631866090111492645996621765802750226972797547144718513339639161037337032441621757523628703933969549662677159253488250351853526415138367415642061166562610837845520609574037984749724345369556586068007671907717068942665363698169737008973131516598118736065905052584884603508173305263481963918087486975182183285611944716217071127642003228918244682868815134992143166840763755136377767504920629159871368024566019067255734939658088666946379139797788400251056412579295744966440451225138837515935844899022422664511175643058948543833854384041400022565322810832434008568473568628310740078928628764465892344902356981082636794848655415516735833074858575689539028844966050050462129762374152966651968539236105123388241859712526360555185419943170213725171309748420089045154855934713969032871897083808744528649767817841263247895236845056075745642857259276278389710308775762432146283799267262089852078512251801815610733716009795308542741867265023368654433711632185372184187639848030895443509578028982514915091237451329459988422667652118744307471720671465681810678128985981924180373501179501142729981899724340351205933969223334734261924242251451175346787139402275942310434374797219151182062239007260418047978265701479617105374760700711710049918443922113743266585011002854065236227174817628647902440110731126602051433160832884717851110818443239585127110509662151726788119638222842542021860219219406152550905099563653737402415085767133359783610343919587856264912862622723498467423890100166966986100526366184009604298190600450761431313798905297606634250048822746647282146475510753280737303563354633419045900873053645499357166691484113601726718696361278896069949219910635290621801175548495840634047905018242007442336241326115481202257325957682172198953040284682020234580031478446523807510898908298279588157539017744962024355272116699146372040715208960128810621433448878397396761445485247570645932297995778093853641471726933972341115504230145430108912916322004734832807814473655993490639149879761892556797126512811174067010389491767203339154732811528715325354358601964068031164214607452254616601659184452520036616370736679092812342497769677659343105858955529198358283583196056284530980890096516592395062546949828372336077595472305110216095935256048654484370394753521215425812287091163650557456483414809521020073308626482227099510068567695531884336726460137732535489107082829974905179683521926447081094184062192382373735427788061239126056119074807382397387287383758875302298654412072057326770169294965903553056643403136457440224099508790878330903088185577875702129704185404858176464775409481414372542759716610008808482731168852374509685883321863560976444727898782902825872833354039968260193927708208984170585508428775261712604141771564930882143877580009665329112857444388470873857762785417065488220331063123708178150772884995435703290966403874633156494538139101944969733235553178895582354006033561718116224911777671086352531292092217303494873654592724720677548630272862052022803430985907090958186846240871900229304627938954026807603083244027365880434602485585789494336398290856303791366247581621082340294023248769253914959277423500057424110675010897802358056407252361430115667812395168543310425147869010257777998801341977021560452315331575468738500544034356536612333490058885377782351367098336300300885703948109427011904058440361134474625320915252253843681424985483802007631330578886627355930673642159031089306071585638975673253491507189357019451199178384165605054061887660393154808493485012716071658502085522730983707514381526738912524793094039259183352690906284551585840104742292771038081597224485286196931805135161901237454545797177369634087341485979589848363118322930653133194707130794008412549908352766822259767613789882873121081211207485565855802102178648077963946686233849419371371351068808389211449612852520986297399363440023672116113333078450456831347394994379010327958800331258532490823292461928543994929727946505987841983560165090104083937388570661974356066409309980354096020841399589438730578882287507654233074045676292743584668629149987762770077229405133375112019108900367594010026076268588189758382475008428134716813910238049053703380133144147270717349901176470117291998782973255072848381297847869259598651181910275572770696201354488987880445365646954784691390152110198977615392470032529929452937565110956493808258603193211264452894310229201752974216282933304950645497082659098246529952845457416633518000932873819325264632504808169406069062423280849407952291904596370559147732736303251704458814440206836262809364061273244575339542761455783228621963718337906661979626543796241129619461018468646204669215385693311929123317054285306967545168859222733041996121830336908241076172499345295856520940425684503067551915221163440569643666010055835618621579082480569600317789317546142683277709010375926319630005058965343762919876551755635496166936373482186547004924743410778853932873130568342772542931142453433425613007623434082142358230136552767682501582131826027636039051124452452214497896146658314415642605637850584867910192575725500877393305622187128888034647531547921936893752242558828203305894528162794840765122465384039823708867993920142894756268787862731441384653597926137236250720186564665215323633613376001148372548208142201986934523917981064804758428486330080512098939113397041907894123210772835819762753233645240159741036756936936694695650350250728689508461558922187371162467565507486064258830784093834790579808998703467891274687889999475543687490568348540187933345752380194417832757263599580124616039431317089931061484475746078490406290096654325611323912134129486000983584635549535520419039988410331667185944758341106630087128375860823200372334042843555550704597396252286102981812752514340570282449566745813972831594535018427105802145042588953721099319346837636501943661601362398488971372856358711734116934535223783935813609331283110272254852234378838214537345028719111300809883741122585024341149121743194026983453930383277592607468661300391298216180395403119058541070796386041949227616501712509347279931111427621758794657020795910745698108398190144467909941392094625633329631705609295397641933677366544225989251233590414359175249956885408696536790076231823757724984675670482303976606186372987616953369752315674201155279055225383683524925950649941492991268277434468365411164724947468285372631121149293106514123349692555656559079896455430797968140814829710172412612989847396803413377769903805392820743965107209803204935389698963332787581188812168216610385252374406604220487749391978443661814977581194617164281601472005724665657503805286296737881554131000682100387729033323053031962005441306838250227641467918975560823366616681158560358187916535617055574232097779382394409133020706471344264705014189155330725115564862224466127857643783743473941104424308043908324023841125788651981103076606130634185852588925393609055433728412722983266945590945801245352481317675846735194746051747460234026489374327758817305392612375095845914778874262443936420564294543860499263975922961187767573725695454675690319354733615414674647661663298283206401451789825361897544143996820276937416054788403569466732567772134768799041082257874566757116228800520596566965041103462458656839643811558576735435269445439882677839162884978884688241285084944477557536429244235656755953989107727759912266808552333703119959848001692791972586830237282780692221868302772271373109762096260759869012418583883559140761019434630211075124171573664786096441878437033410308357421686742894251022613035507026406212290288076599692036397028690210840495428857757987886878352431001844802936628062034425213362424867961121233839362764433863902276509699226296605142864678695483967455873344676904874564793868685320679589281772376279909510293335925250926622655864598885219180374689907139732385577679840243357093127284502083455063066063377247264157173138721962807033136001295990290758136485397732319256017462162708842275418862804965014847119464815899021565645715120076748612033680542689308707009405583351041328199719184761856033594328854194287199832664890269652226817625227912229378572923751071577274749707448442142523741746607647816415263644775507861916211399587719046555441625421007833293819133586594797858306319057486431417352807805465708426961095256301274766347589134481483420448737984874553408772540485997847808401525315138251280048173803517214829207220950291011800327553657636246279710708627774783493431182062540044086638567112510283147480551635195681776516728531682246528907198121661112270892342776330575750432951702360977085056046402855029569057168362889410731754716598069263848400815426417346310094816538252360863080646574636429743895235077889632159052288081439455592687272934788704430494086019391175027948369226083661146518003765398385444210096706384135222605492845255718938688577741638145313324244996589826030453717401081528820723736258204993619872450279165359137025541477103267814826564474881825261708899869086935352016302616800902362779597600143186942197370241444383196827979908921341350300797262544512540051014877386348020184998831577415734595854441048783359735371772731619530883920245994426543180309179722551264156550808463327888926539827706159644792501306704891619663056720325887020912288459550138264267676293184817332992044403593413525713806919546647749376056394027859445799170633837549470564837536277266693729600036185074627740622985299700201116599257417388596890403599785260458909665407143173582644007329083788152060866630288559040925591780752500475701237186764465909082874695405788763695006288078355911322058270417167931291651731023803587358371664079745185902837716516976839508482618799009171972086948034669905429864458657720458007130574324301509700838987173969084727675814473508789675412991056443346621060474808333259516123884903176449012026843644326654449418503328155968678082666956558116498632015076766032668253240733172929058729886881266094660046690624547856263993518184638638444923958653718700071891665181687112286529733172675466258551314339991220374436070234957704428856331905758215187556088548332433843335790097950154487377726237159117648313958607508878567576256668535389483837344636854836986063234098490637635576378145595512861069246116271504652431032615316263069334468914844269967089265057627207445763358351387671174021542983144523905391560065154509735072611956485837556359499214555333325005526127881977230229860712198402130970866355032185477839985704453557854184241715127579837855943100117250102255459419864309145223228163750374996581679765830186664580161645905600580680005833771323891284024434548223496918328530816652207859607528514509454675674936011676217892637743509022325250321648525839558813697928521633227545785184129454650027353784428083743063840645768998699523406166757455342045608385954605850844961631398152912538238340566080897308669381671715231315655960202853557679996962538036950650453431094360861173022217357208693294028525004082695990494733646038567311993972632028590964691520245558763737890822729318048137958848655005645005651255529034812642086846721304197107661981718643504472453642623589587308758521741191973890678682057559831304896094106220746367413047712212108332028474145052800327243805396452855356875112183001849130329639223191371273533616741041905457989201466768409865469636926496274655165420641174726553375911380164768526410877038041720703086117447905513238846786563670469734282424831602541226387648339035523519316751197940293767595815487380106172293108690889908766209432503617087792149995908213365546469104189841851050881584368262812108111566240564314886215544196437463751148467918466975647284178164605813339212995294625131216198284928815443696036021900999303316493396969931012906702231320578967710268568089804858963441042909576749698273543040555560285515567149013452704751330570626099567338779372092893196157073110996068277403759447596256977196016403303991102041182429889320783564352177851576661651478045455954336637708571768287372772072260572535340203418050721070357197258869378719313481938918428271247756124059395396277507971397240608644252440385285058749732270272344980915478503072807384309503672635790748890629916523807332866411901340636302103377105364508232127069360768168105502725721254279588558793708431610132884739673218342919295997373480235527336878188334518057140138306712028465879142678886525270462109351728922469391266684489942672496358493430171911502963095304843460222390586425240779610270439209531411853685590501033065239038298026721143907343084203477178978702613476523258917971097189831663119848961592335845150437669645771277133084454411909795755860555501066305286536737498412286858657159471936273087615474876787306055681631640368428715786204896752426640885651125647400433913244862840995427529901200961635668627566119601048649987159810595163734562363597864913753530391752908794254952260153780405274363864841017936325165406055397906185469067337441604654132181650106927416978932281599332049944692964703583777268912880140767525805695831233454723502038872906562175353341001149629986273665986693132495660863411178445211486649918688216915281308758620282117278487926270673666690897351327969910650879757601541720786894025041020466135324132876308190403832318459505118890629152368676631999892995716495168582779400556237815864148626651419426884032089957551045201405153420886036114747992465515335001476377179517121711774397824541190482474895037536467682400863001084727521174043409534932853009305741472283841505407114860818792774108625207558968130513988127990547437035418072068801928989239551077945464525696729658748618697588786183938693340839782229252218115488642386214886200405267171255548093063624412779226769560847844311203191909233331941377223511158389338057400336764036101010036052696984871909198264814242554804036813654412437696099377748329803908199847611767881976676489969135885501779424113082554804441366123204692327792948937899656776040673079621771452288799607181716446020227346625649985039613003853940599595400880239049924189297579640038999349750121489972127540308736777685400391605745094734869065231625713493438722028803873439436265784217680860771834529089958802282480488921133679549900201520560342677823708225124457505852734261148759737818625480088702190461380873641344647437610516957493371304011600965829989920858455477677700475026396798593171352959626359848826999572105640950895554879091059972927618956409922708288266378837079118469243527959100985238091233430998523165043496035770949756028275881498479801291493278554987487279642638620760671183912232402767348662874542657199008561837361668319618598775003452426976742169971693277771485179465350707219737096266119648720530775190783835218522794657210547796244843994743516615344662946840522544367490906597155890712077015287303214409659285311132556990133221377922459949332666362573817010804926371820965490347819139054349419381417621623044129688354733948563475738665648761016821833016179039897679293344839718247232732663912121211429540239730546821969270543551078830169915763619896614995132905502330900893242782361519201313179058533147782175745528990580135680920911599427538667213915146356233889260783720324317145366548543816689146663426171392570997582567215361474112154110047269665297217121372489923110979409447408408261225186330116958725279488215672450365848743394005093320247379535687650604740769415657718968126091931549604923391610651435670725863549408697740920166410241841825625553122463894150193553983249917933419112989328392731841294820930823447044369435664702198839073048834769889007052503752742323122770011237943132213664636863429556508832890523700786516382228511752633306657279967795525330781851118519750679237776619155743769221920026503250135597449359000583733381084061193576888239818109377624521052935194005054816951927005859840212969260236027331443240335468238728271256394692596785507812223761853389005801803181643670650025080667177520098463405765607810964905578266449647794618262661931103597654342455800183378857554578749960022326641074231684323561615986628414020015816290062583402828381691587146030995614291439971243996886063637092992732183931808644635728787122326161116966242515868650486977394564005186331861111363702326269579425199771356232254061058122851949077532127662871603454576245367335621683380892596329765603524369438448378657454299455180878927320271512779901615793236296729265710070122400691027258992350416976685393770072676189711988852551466324149360169152397139241736002456297460842450876293392240109421812284828342358420895076391513724322662807037042126466895193979648059287705388006212188353533437298795759124726536400751943255696629281910503281923178533917792808156893690287744772312627538032236937718278134750532134075545510149322868064936296015289413384879274773594928299266402949332989380880790180911710602401448696468806686557183622115726215631874658178281179343082427911989066162945357282308245832605148497250023492765706859859197100060870562062217337087408332023640884219868723405765554664934041940250624522022452202132332040952961589940609311502389309222422677003899671819133022213538259935879293686116835930815302145740628485115951598987463238044692033974227445481198136950336649766482358725172930791614104422945040002396740893137816728694502022140184954951626078003123807584778027160387396314932958555559286711877843079040822981302142215654472153622645991792132492971082722720853580916036146635154554221769409099830305918670879657638248536328887683670850321481853749854596167482344730811331245121863857956133017639733399032457561208601119383382872518331946067631224146505117225146116269503190468842426310254182061061416366011682019717450445573201336441573324843736069468792832040254329663743731027077567809503836338409059250639757947513454815903893349889104821301367261312164061728921927106615615053924391558340943445880012321491126351738723501972794314840938162245117686999839000273877068142102196969973379452935980623728760789319329359004352857885193887075163799554920059590184291738260582832943325769551383322949373206748512146620249391684858014902676032562836020983547509228744578747900820507944863335105187672752711587285335195077597985754796338681253784084631068316413259305243606426594828835975779233538758014467763291747104673058594132459328225423518231441244100249812418025519676377863913351415460050148215688776184044195070897492186114523253598279805810460918338508666385919813225901725898859851992457968287153450704975803970730017625890303724523516222511856840802809298997708635587205073842379120253699361962590900308793597398651273181218520523937115526894266520801567297032546106789250761572654714509796081856619684037317342193679231753824820993130569881577134443294096982105540052181355557637694093661542930862475851055410984294265629015494717751490397993000225429371540430042132600918014017511009627262802848782110106512833483161414901231902858531985111065307906513334838969350976952882223603481803875512924899347146471406750190487579471931985178993139390487360595297321528815617589375502493661086001271999177820439230071784175440112319902097564245019566225272794902778750721528423520807091164416846000042400383661763388272283705813350384411157720514387800686623728094593369317173078292229285001301126201946276483912687978798463947221451349152025099241712540043573983118288136582842803479655083259198487043665643928666878402182746663583088183101974599286098952368105941109306986628582352861376965896772556509838041750941114279851921652988489882207397395602945941532808226337429314994154522081309232152973309114874737755867810850090428946899519906199060935135345703609893228281973683045247274543794468426809093609660568310502682948288594410963865579212457772202707610147187829955416836912583566986812053514745212623866334630500983829040975018978214290616948463213250422578449728635368166814337317540304428077654096041291601261528741993851046400105372123517295054697001416681502160987122611127830352277876449340880872651440749277751678628516669804264063369374199469398289709606461138544843231390217759904501561290265519759592969827832270176194723637029077590950171371940510936859738423552782709993496021084843625937864363998100390063683229946320169782411418986129028945953977748643633003460637415926540287798863391957083252156235185265278249446818532437071491452284677057230733641689256743578288087384592484287429479675416685421746175852066853804046319119759358293655454496430055266267165118740509817358852039944769560876181234646508802682263172132234222269524744088454373034876061209628534635856881607792228401825416532741453780845609672339272689449772253543164140543320168210373383784978166679723352543830351954274269427845966806676119978069631214462978740176022524578726796467339308903818622627384669820612077125086053636479259498642061399709872111806587982567072013989332533078455671988711773065819077940316297320005581036810619937205866385397773042576436553456434688886482324504403653281608500909149962939084711738167374121730854108098374481607599255334213405978885472058969914343753975587079070028306144782795826628180434918846739073833354123226840848395393330034091625570955115795745722815546810174371522549538779220345270287512454652431541226201416434626613929343763829944082513778239813864139012285999226267243192459558365746805169911121131717093418955418102240137890718733613648750395043753215739657607169142848862934134766073349908621441891905991007182451924011619966138224419285988387004893832348196975697491704510774592091376879506821576672103145947244657174222644864758509634489590175455880938205326062678177006713244287926957801307657409582678252638210558709414970003004380338830917607985421138170806896535984549595471397365673527006550693486731710571872756179651511934694080801170962415423447186538472297607034288869404191410866736973470909571382338373687638144103074923096660757931615697122782011734442650423761946306034420945104428580602894115478520455441985094382187072382598196645327517389124292482819031974393425031728912353711698147549199446558280462359301680682137004507891275290181907287106944084222167113543452191923703335805339416802588646244801596150098584382620176472382931280214724884583105333718184825836061527207406937483333368718113732955401421970752100003942529819988871696739881276579791958268902063752489196341487857231008276867324438422739314731829446892652251226158373610092593266634458864440311504811825165627275366444756794292860437080323107204844472002076930961642472474184300359436065299166441168484781471641145196109419261360520581782062276062879771434769147349071831956660276892504093956883375285507899339912608070060640354170609440123240041296093211916444720047001777087482708693921878641322235146502505216919057654941673060377122453593554694438884078629061827900950414946213948840264122459564843806891820402888518721548791883868876266407881534747805839656106395573337234260138817497714415196822656580134778248665183180351231856519202212803550201050242441847148326288820109155615433926405301048588050215165209994337708793111479063686867758283645175601396331349403442149472542409183976474179545609892983428975853371060712293933072068020976507238266933622395751600980641120760398834180262303408483357038273642979649340493889602150412307041891654772718812467848512267118233345527853063592962955737158374280789347764131548930882847873310050498096179539778251050980848983544439095686523535950172251964509377041502071365230058086449806734555572223298791866779272422065442585450106271445987135183963986461857401713150390222682482519641655659826689689863152853520283204075869143546463031706330221876392312092889061787015097986704030830405366142817857801703249627623649802032961059894074357802031087365062128356817193948336439471152301111150115792928412521225037477085844079898995754153940698547805823547272806267918020350701383709038217272362737743500640617273081379302022544742193874984531302983079561798098198276658805465976202251790705670735850216933409192077703104556813099428228205444561337216128732418136777520829833812328985017653943477188278126029831171881145416550597708233587594043071665196123636525908239477039450358043533327431557102245133525103732412947340088323789440642294956407928610440541067474256902366695240991963199055398909118588062376211448350790247341423027050815269410891536520407371448079688761195964431189094540821631664615046682266433925389222668854071833484592115368423249709610025050992011904839718267023440670823559135461271959220250824800675642053802719227140229684955636284664613642272330821376787412132839186472919322444855010052855862355893960645511671938525850659076589025962808925945948309435840348433607619373827427167600491266765426655657473324014420523791732805026718868681722264062045494546849833534858809517992329067589730695768792830558420414624280622837425864374182211526599604741290705424326140746277966881686742251527204872583463898443622958083782321432950324908839570948019441294406676933682895654567260399737333171319623461557783123580129275710007470495798816866705199746008037751204597697274715149930062279020576710341431605148663647519143393179211319939901191041736605205935041800042408107624039419327350224568519807443317660511580631400422296733333846097952683989237673501559067524392730950979068217627410142654120185463110811615839343310920758247521500994590755024870289640317639212385225284490150308509784768197926605512163555724329649263943245208730133365060835113302182085940091058833923340510884719687987743827300771578536438977639789804967588923127330578645090857188135867428010178158826915512156588092216770597913893697819310085758675973120382977141029950591531197733490240752598347798162900635209189577609522665078410572198845095633537327603955166166035388846937171856545470894436434310095239621806184358870034071899474564548203869262306480911674962129218676093477558817944286834123415582499758175458198628987710137381970723755263975094012787980535421179399205832164981651410337715935379200978130650095937110735809068752610037314588850322286557658259500494856444685024860772494657793229677994228358535358579662324098643670683061060644879159665160604181297406042897657841015875727395248526906871004755105924776152009197381353752869841647441829260266375844291608129727380666473822544442368306260243655682653100533129933856974261021050867492518595559571882839132712926851967360793167374606795550798000623574572569816129588227797088935036605466286295289534812080114810178632751873791055456909801982874736152881701086372474390882330455058088942369176151782160178066771056510412696351669420556977822066831357649258079559899540635081891849500956618883158305823579834757337706608689419125579945476137147626222069310941108277258152315355536337193728366071752194939615586528495826161663109462461667286611607831029232144804794504462220107262660802213498927374746173457951955519909328536954852470259222933029008714762061130369993692402186614672479727419942017271781952576258298464054617910301243976073266998792031269782610048896161722517492799799073949169156885121173113891684229743961395426426054505047609487816133496965449593973266984690471894360514598258384222016847203231159705272303380194364029071125950163454929309295871265250850287199863692275662860457105820856445447530530407952923454051597799671098447392589693097873580178709975677820952307323496216962386521316807910086797148426779258827765678297065758630896087355799740213133492081924652834490092730069991162833195590106094036914962759592382448184579598601349092539631072097575195998315677005052733362102556671934286854571139790194707295641356595920068056079602865662632841817439640758158765085291083123776893617675567476464958867595691378928089810226882317724490713816636156455870893710706377934639217117815227674071714105883954450426596822644469533626195077765010058685575728099727072192285296195744907406075864651375160763773438441233761502030892670860598845219041262089402779869822096395923404210006026302236812408736236606235004293766986653371334555858617846869059760994001191533435373136235488127994561266485833312245386201637872741082208932369088544890518288936723404326618298316176622886923900716327014692190361455335490722542038987553077977643160079641737004022956223990106214561155167233667060545568463449311589002069202053061713434880154057764540760232662691370641368570498397906629096199684320895490195568774916570405904966066632595416697413180617726629678417453058105723781566412025403343606444342504554157901036223947674064965145727072941530223925541691752555699257017363527580674094972238985543079975534078471349012922790073472405360710293469474943067799816301421191647774477093695512444486569516627672964860526889449073838347242356977704589143199557469495252376404119384157493247276113287463513991709059636431461052426245709460692399494951422450846326482222316893938220546792503290816348705630752672873458350275314010592740984958565379153050575933631677807698238297257014624934768450783499664644160246010630943147373938666079760460160640225293759058053822531466638326786467354576220561431725184791885838860989017025547693671154369286284556659823409644999768192272145418362006399873391147475939752691218624482791431460864237199447295987439351794727310919205956286100251006137584836288682361435042510052531638499241982623236201567021323907319483370899569434883382925578948302834477670783003274209671171635458599321980780109588305973357670308158278023519645779216613043770380731035167111840442455746840965001440010812053277439462104468568893200891290878595418214203531710977535938742305379454151522934994043652259467887473063348502952965513285945983227366568448525350721973948197680455967278119618413731509352396549302951807525917447901220581041060038239014748648554581885318690936083285578429508140529716952239446474284453017599787044487645071337436871992485616814032725752891833272857725899867518900861694392506786283276610046010607845123247679587726277939434317752972856901224476347547526186378123945903570348760824532949650125952385120965862538119739100298474037728166404106619658533072500410132500190387776977771496847849168777756705882719437793232945581908446433132604079242811577457088081744400238030853680805548298723690948488773913566768345695429423013401016847320535073715822346542678788722580722614570944565255618440664610908462867059218156200145386307199142810465585343694578639257167604865612980706195117040503873896236192152780166981941196803397990092569703616880803254133322810874773432135364690851659361514397387708496476569526577134395764887334746351664011429853000699599187693125801071048186684381691486757968865030156312859002688770197469848232729662561724277118758498314697067005803850056409298519474171079705837180862610565002434013623724262176418768560893671184962353337835704655690947719072185137057471133157684871554093253999766511552894916367311308063751086288033001299733407914415025151062482106691684210784045539635407377216891850462694271783755292545484170249261717986132673904636066457576187673554568834661666970319234837249757115246332290868941589153248861562826649454792275553087207912687830160923746434209892042702244493673637991076411254052018599714997736274722022046252494001579671530041517399217413328895044052136425361966453734561916677727816211489914695469869716949267284525937550511168308059920160498189114313635232508509625534221335893013922457821222909099616901505861624635779697289103899113927769668844026036191954974925266398392828700780370983785893112856426667525258491367398893610409258001979388440202846132767218015439896391260732241628038371353617043858178686410520705546487990576733093973253039290161186626392621759963484908365808493261514878273367977402780873319012716634063703261629367208022017341565721139521273067762704505659961786749521662025308767455187945488601205824103863480257697728130183005421798857649176007505161886838076163537215559756698271954359300269683713956199039375781709371522966437095023795721113915465675446130441957670100635710577344027395537373926041098374989352362894801247092779080464981171441946453550735651290724711758690335356644651479359381640964431954473883861120587677953140220933072660657601202282211256060807023871236256445388457041803980248122509505337253941241704866070775847335736415236844881807330513854205786710983658493503210109799043702137838299375186487231539510837501504780462614283512774695663281817049552206610710038443846292738086360068611837696755495122386620026156298265967077030498979047531348315821260851085797667147698536328698002050351264063011224250894468628529766664885486149509067591921193072885048215367240578493394961178814223618998240372088087728792331248092704397275896100925299142392473618709947733374589958021023067052031924456043014946600814217738628581342374423246473495024287501983754779193979489229002813497863997256693134191041576288209167488816467923483452680882462199966981675657818066048890318811060944735537931049668002175833188446232866653846784047561929035268717595340942413000029843881340035156309922538491658950179038886004434706779097692600106698015323700076295417253288470816321873375600029703862857345240340932308538690457736286676731597508279101818503707363130713470762761631894520271048072118849408951212136262714657530213411833281953462882117751878377335884826337927424005507503428471197208997862035384547054688386806773452665401011506376859643603747488314991490460696982268441492807887886374280087488473099978467688527176276887791512405276899121873385385094034400857269043488634722216167611444373167569748335382325015622472621964409715616787124245065602636616764511563452994406799473816766232137506356900320822506006328764590512339965427418861519268853975807280001905429259550402279519953817765255558374097188764944877310302987083023429360596239486043307342357937840641769768601641495440041652146693780039488464115084610833066485055061398998877380013092539417089489245717194749128986314132590694297162738454197242388566270492139271285551153223369411943042889712032375021791846728202268990382922833386074676761434570853238131938689510090934956466275804200047451073554904321183210608997299783118027908022783718240404381278885652124920490574384877389737175521893911027174594181635992239645565399317124771277609379366482211022710577070689473457174859400104645421274847330897100099742172511083532687505318580077999482309216409994438335620001913688565277812167244760177420411223727831759050884767835022459460429193950151358006811850842294387369136576329208075299569325865603529264807884791068014580958480858401547210794422456093670048786687354070351205095093994948074120995080415551025171038484230704701871667245843621219948716767212929294211530367649258194414027915980855212833078430210690800535080309749011159082362283131702169067411017053155399298601697643707104846587222616094043693625471423671607196581391440152924423057578746991381773997204985337955039390355099435648476682953687239141008751889268319585057607489819199431553656687565360465784862786372531067995025534325359432926837170464864392758002989497218465621044644075336052379042516995025655081985289313708171002164520565193220220850845316025530008838783559928445241076802155190956854053783434715225541934922178035546772291605994370654012286058907938634464693762208351017651091817591134184860257340068563864415867494875557512877778809012411031637162603482792390279179439987525062580926156798284935326093645561969621837785574779378004840045296887004842503349872620311067280786531104796670887048980717572549386936893441658020893280610775134664840559827747136592635114278320735688272975705749015616733009036652794423655835893572960562975920138832070981220657095862412113779427830488574131464838385208692389455996282354248517536641651340241190691943400419413175575818769005008482382741315212310800010019049878883034444344599984980253277662490415438458007586321697259886164594652856044936112841351510000733996462130835515371849123450317688538949165008915801039023595892217900614645155284969710468013366097102695721833619092526874396160983129912528314689592104426804195943896846458689751337850708113663974374953962757725554406446620734020890557366833408380255242303454841255785982099373936507833543463243595902314180658447071348435669232472508407895392536466006155741050240583124872162175503221281077744462293373597559578278473721742643392877160188631201721050231445111734884213196887503396252320660096957393875849588747657311474276648667689998443370744205157675597416685940717842655004606231981562344148233085653568854040869241123288816507339812864714204749068447080827292113314582194023620739265423630975580160405544805207980819985638310330739940569627045633823903530501176975461454537710104846095184298013989911238639044792524154104245184418395620445419242848988106728935670019783991394405594011519058255434688751133165065120054395033372713843734216924165970749139818040305949904799339334072805946947053447337056117116768916099904197198021961167331821701008421360212198472063922725664490001089768518713956979357969371149986980374794593308455569330263699829130092418144284361615810722206557170950961712703517188912869567441836405404417732144739819235475831048916691934226094588585248895093804733640731295262869116789104045177235672218232149301085405969857054651039481257931108936093997340598819171230753377566490478808726242926931351344351384822389545248356723468225258657998979394993853085378021046047289940351045635090335042053519144913058143572252861324194180408569819985850198528993009748578665324854802694049232703422936687166382292210497574982816852914166252785762576120598873865812611702058434199544425588225282626563640611859664734335276655293460453144652321454402215010098188627366527377329787114955948949254782119561912727427173401396769067170957275114262970109670677363969424775618782595778539715248922897002396343050515257763123625169460841956481149927400129923933103334576713660664164539110325593629912364328717101326396947793685079740286608762326026137991573019735760872059812559995969432139370091914259971158928521319032063632907110712499721139840105762540394625555170544279837260010603009427033470212459011237817346092988596260803609413919592323047129575764493156731110127466068953445410752660160488797907490349729998526081384013440735101439233010064453645525247423778819283003841707279239563796060249879590850743911854487712799027229801295313548690456759936615177882619004357692584300320375884737206247248858930197936517291161307677771365387570497984094714350471034376971867265746491135883186249359423923372853063122499332862397939991208815241605522265710163762277467250018925571633557439886150337348698988140983506943008364523788025986819994965901221043842742925192994135765392786258498879589475872265736165049036979425111881983918092963587854502992929452399848425226138491862600927029264374283772302487690187658010857339779699324030227968528066291872766623061457194938216555578099711087173624151862021005923201450514890803894359128160768885115472897150442478098615321765080847275329490944469207749370013680327225238578296822854380316869503699865286796431438792212040517450276020854946918992143155663789769238075325997814624084295557663581983206442593896028400780288742069997230219253155514725987998657598807154638068879237313187259025216730199632160114226716339850831164750169572352584791468543742669798774049992242350545836859326688459546209256184818057979128190120793714919975776803146106016989884761665323660175321127232559828505692384666409811558109744859598208146423294262192794801473250541606551233849589115586814134662853948979910273191876686391993502585979973269039744816911835431839332576461583846110035244056540364267658816934808757299875555087676338011142205409187373395023779001886453696750460010718764400634393026345699834630537709575534695024537083228877411520069314636145355983223982243894334829344575672179340106167058835322201732605486715805237025686662128267463448349742936533016266281454075673177690020343738812905196061458379910760612855606123720150284038149777803858176629687736434550658121401411762970290088274618180677336929552104161443885908323982052367319810234110758340224805318403387824807591858719616816921845284767526416882182341170543324188968145602951956907865615165259116134845984866545084340874297872525932028578993833983478136300109587632399287078195397340739406661460514659443052291706341349909812120972030937496564989255740235451629427162413975954275060996246233448552567267210815107037925249850401600561621989266170748312549806663227651950680112213454071269679201784780016239293084859776911089428572831049830154795547461596748883567378497404145057708342959820108364086161011459267110464292800666166747704649541402590220830983682616821763161312945976258168698324833314120437144983954250112007148434968951390982038574500953917802178524523640380857589051599782050118470500347259422899986084533052454386876286876922027871210499851059850927281463782457227876606453216878483882594135726197934872383252870931583142404930524684043459194079286314366645209021326607508038948442195019967827916005310447220666390682460097345993456671448997220042985573023863443983414303181025753472618888597002002686329763548942757714336105157475617037049096055875946773886834048048852222544086238945214581780190326178773590317736010128673645672554630949646185096250227015846827674925877485723056821842714830128480744024313025461030996787568757706800654519406567177628914049845390926254507626897599651745943859242999207641029913530858842223621740036694362643395507505925553563728436390361464522029383757241325681567785659929848785310377907218901334548722894676928813280397761281629429663457151281899561254261689584009623734029817832444179139773585651212958033974481252829293775542730013356166620538595842072830876124525447586891086694573987665910945231259333668626557403526919187791736306906244233225805327105009336734959972059158488559889440628468061625780101780819196080799652883484395689496530979046595149312855094236299426948436496147202157849675161599062225512544887025740719369977920302622780856665704873750446708233550640567684567431227830766118239844586850555589460478274246775803661780767024458717965519121535680278153103689134257579057966625003749775022173014171373457443024209784091979149878410648853393939781317277486916011424334617737853365339159874243301848990112184963905635026265455526951042111045999311547540243174832986207634259091349751002922200815273503304116795478974798071395190785772215332878909729627810107988867000829679831029724302917327309709554134137925865596807457574702669169760080902897219534896065917745406522798413162448359794971083678722017959677006973138537693586689326517767396373920243623206948574227476431363991550815084502954722849032276513194152138937152998530958156373790854593428807597272817615171938588738656870256240354398644211781449040310377179018146764907718234027552532467031622941801089502020177124976383498148770215611865422578639600229306369666657709228810447400477695600828762962047718134935978756885632973655094134698191019056637852638214046294962701260495943917205321647443824147740315175158788367454728693674145116121053368595832020946290478570015262827492153216735792544881428046763133756114532839813030363751086763388597081144921720147564502430386334283274982450091282530287492711738520945130046861553928187937011246669631358039140340338304280704408528062532255706905301069970552111864049211251608794043019152580296192077512820722148872346754959851118062709892633619016784910619596512961077551610137227433258591840652149667494958828230397884881824251793123082643387342161238740293094547703129442971346706020069242854451055458371963789967478313928020401595112471821373062792346102553137315739306999207535756230782091776085644191023210107148164096751285781871504696695677695602556974835234960528830529288575972335329821059798999791538950130021640928261444000289810709890810186908954531286622580111622027051117291354522563503617372613745040383329593969340374885539110826238367493047913854701357055186582372373991561288312890254327610181246567020588981052084982851534578842294885632954449036431164687752125865753600948431838594522915380812836858197687854395815685336281866933180092985949186283016338126330991443350096707599542066652450716185380305508546116236521596709474858259206865522820954059226122002161769216545926072140497088225565237941134420361464210475402841805496398821645849459235837600997246306598525409712492102381212446825072358718411319649348725941533698054829281979174098669886117266410206950396802717575790560478855106940386573382749675743210600052757901057520251683630397587919185637851591797249015956419446166424217229824057571994559617538243935158059059397387232989129119745713466214245129969660972775097625233354367443122096730872101056153783833503034382310456376857578776657903906957249341386655063057996563550862373593455458595557410201242175812378274471696002007015022495662183694112739109353118749882696429950583882953743394302797363497039717993336331052007083529726610993126912239884260245973380674773823749496990832414721939965611713133898451195965738595821253802471658324778532948954110890509457921576532252484276056909861732327695257229153265746366413073851908882265220849934036810539844350546020921253994716756356050869558452413824589790324245913753563854246434606786037198231089330877677351441432035138806033117487106365639989921221632650343723037878671417105283844033262019162324586718107251164646745410984690201211267915663439982238832333135454273831660337417834521515963968300266340447675551821065931114616919088413947355013140715583144524623234867958500371300404439354524361432497055503516949573125909992486657119611140519423243292892522216611978547930939828281692130041857282516770633451961804582327753880611632221852360678713303727759256399974762593750235730697845863452288216897943204642821364523947413594070630232876451285486171347815793139979180015417434780900266395257328142511968765275002519114592095642674306744393270900238006579747311684783714342289182212175544895410682006979337951805693094784304444494390576409324795847777726532357069145365502243313892904581996522831306231887111041660151044607567446014502889296274448079926803266285774234326401432586439895922042469849856900633304990061792204448777332531578837304829208911296789818874962246193283443318222559601379234410000752089279204816179740363928520330135821749567706790603505978463709405899845071883585398403153088052753408285665872222707749823061560950665429180275074264516122779982991185890185547038574944104151703285115281051238759334505457224223829648470860695227642674116739360672865491191688732208134446393778958002360861421041725867172889499589072084181358950030518529853034256710112122473474185495446802385019051502799430122448191724842716661427069331146384294360829572230620201428299738710422332176420452043391028305614080422866256703732052343209379425784418249875008267329692854804295500411611893576215141211149087903641751630838624958758815733893911572525537750825114742011958744812510410569978032179279126273980209075426605445293667237174891043772704340635035636248954359809492968405276298365736870076105392950762987449264729890347856807354867826019532948872581655832970336910037027073239799012671075169545589300443474487612046948671760033800014644933451114882627780638452301753993770175508197938565619018282645333435124321200961518495644363894743955252746491876251830444225169261242685143366484085116816956524601249478760198642482540223475657828700498196855229001163933708966814627541136427650672586629794774375350599421558385321826054432322106790198530692061795271211795562799452307518795362108068502402009008548507590427183077936140404601099467007565672437297857541010533591120490603523442461662479705243904411637525103004879839122058447204802187447304597704135158055408016133788331272959499866792718381621021907483541107625571025627567981279892942496550838342372933566087893061671524016978417587392997555130388541655336150229276508026908217501371402638856100016105923883351724717625525436646654348778336897771646161608401776307010123373569585612901280270850100610609683101903823238727699167404644771517114169296106897788816117274620116845885398851355821924581741985603355405536688775858848485295691717637362003627487529891998582069101280529052080462113693956404557703356142024911112425719348970851113778927064271691209954006215581582999988337853660592528771111707528134257810915686548332057808252453354884360431840654097551908923489412496184791662774820353895353383286860340386504980831484282260816037296973363330262854222404269311565856179711336449671308467687252637145430744935744765067597181992210645448567751293215458064671336909670067479021622070008941685804149856421388987783832901776903921167690519370864658483177193396929063419499847868226552284352745866848666922507592219925183241148422360481348529223680177795879479194899221424590414136021192376400447782061809888971860079539014914554451854090524260886037054502768158554081896160449761476588185156820040805416019939163462258030922000432019407601719523338277628442060335970111913422297359464282788483063140125245303123765411850236109788280526895573353416009023443206750356411435220551277138467333412938071884129761083394180415840218339603530402110503017388097396004452752179917327400299897610812758567921684721306949452815941854856162309517681656385405134184649739903383980912247599925058809723640689310064291636096912562099319861455351870228721584236882136260940530269729292507307277814881298066785235900279639828921113084749112608442681139479560044699978016539252782659161096032259796995080991153516941654781633876344366417802825297586849401483562689622701120383405295317519063170735245488296789652215570002479494379641762596122854283708156686509687767395396873109228131356933920715333114103234517273698007497516887844430648922639436255930482147878816632985602950666289586903403862743118628451388927589334882305362590332869348982665045678464813953309136251019727195488495982604205816144663255553611811993229209497231330993597963871984314572793126713864531019254189834020947155509900632051142893366614863840223279450127296122950184602462495044994307337376350369559084809380457442757705504424577645613200765648626696825173514814398346969045014042998177879194318372886699906576634979908409535712683260622729210079340709146696480416656438512183449877390843854928467835014353640418412968711773521106444778308222735648839372554751003956128945626811642176588710664373583124900493712944199801122928752333032805611426098323491118411948383023824018703535492118738803795380698967273820502140342765971288503846540315729262236179496930124774619406977670950550600316052395752276687447299298651790701458886900551448486082219890910571850627833117142102247351373700694502571433503242829238740172791885544093249355232954070904969218946478150923003089682693461890809491331557431195153375128149718396425558344945148697101006174029949797449005336595202448791628151645328853729445590003564715310642696316160960734835870240890692365351069535670792464627510912713760085030639322983932900050694081594996389577189177500861654880795609120100887315741521280347128480934856733743790243390063540753502571426881937061398770482808781049640396250602756541564165372767646157691161489965610685135267468476940908942605014545474325191135530024730290731212945783279494593861632936230974223833065838631537499573946410905979326474079240239029958997247051009775539980929079913467396601785942642657059509995216344805612787955856899472281351939167336905403675549655737382951738798261638605102877990897993243574245007003190230020586315384916768254835228515922010424041672978212277325406449120830359242357154478049795913115855964610080249181530488642916276060293514516529572014200223414843677271951320600482210177341379716763469837554224548953301528668445535466212738676912686905003931796554504902176002358555370257573960793182170509682756469612400877818521793554862371521195930359806126697754367213320645085254668172015012846806812691865272993021836695439528435268545095632437252084359382103498911818125148943324019165514809060769952229117844552523085384796110094124319617194066835586738578985252477391366119833154654537248803903263801196205346179872432027581256933569729059714972100855563171980151542793187002434944678984384688199929223260288817014561328881972135920352192899715243120576182624872334931997043473106688216050984667341463832095828497583403327874574917631976239443583850492440025588810131645572730341563721394934331698832830448694375707123713017279977443133391396407501185866532621417721431139517065029226295295035151660670399217796502366384945308250594504798770649097049276110090726755546942049509824103666389525200689567484560967047835591215633404771508601078595516209701618456310276067585307232646846520273200616744350492825677576426252340329653054024531583395838369289318131849108549187920044105608092379997234256452854766487480488933939803262358666572092886889198292600837429896215509671714185413052665422532322571362192140211047950963469351534095704537917245143335504019095304804274019067718703508855820233385676735035887914447010232377014664619352206236878265264874610125238776238290054469979837703290437285477271476819448031084038413381499849630638349473612197698716366139305749668670454578618176990875179391653867463997516352824364925277936530533930658383651999141806078695576744136662528662915326477612710748854748898347298461611581457412747395167785049014584418069908857135501083054429930230829955259871604604076146594366568109304827239382422193072812407869953758701081882927192753794224241696823897809131206897431490428006939160423335632264410577948679974807196808631655431795593094819654912804578723084993022757537443829316064730264457748362682467909520327522320432177151407264250325743952231336265680020724758681900904194822747168300821346881941185760163778104551492718525971201064585078144436455953351598530977777219203274721655826731654929365232618195394618299648733392267502511055345636501426314929323761735158500955579552210389831334526170314575617394091792299788118627668576783895997457602881578449431323032072525798290200178098554877523450756174785225910697081317563768773796652548427985693311133813788039166667887825282586658735931479218573652099120853813329437741664936137553867253226160797259349314635087038549035674028064873972511038077907833292258549404283645234484163612347813487739470170688651842610934261669272256039980151282366675042500186400542594051642405286162316418366205240286030645404824681130469375952381000330514478344774948820671493977062846063479543722770661780862138926553308032352598351035086264694325909285786201967688999451479348223720161422512739349431360918853631848097848949074774914860877632398016088158544714523126615267113277063993024659424889392444706144626480745180053596209003471470860926663587697503456454641321497939342656618584314741201994248697263287757050084230919897432885091120253214960380132409174787789770578887472449687113077851026355841697678497724102499874913089302854520837098777462581491868835661517426296724494329975844697465761436765060988646096413877796792193286099708254536491017446357604991844476522396955189904063505689128500425889622348212010050229433750835086204207105352559043645701631784234555768345001481103554277978209714055067050894536246151714573906271178135816521643758490545732075521778982937215074795602615549409893488742036883140373323767267861495274513998361309963391950844805744217004632561756373991062100928984340666911694101768752943670401180714430097159200467799815880840908644865204541099305454973768909990492026813761421076628818527741234661709947277168241298019801049537498612562355386874493795347453794708672967980854642630595880766521490483598904982910178016071380225477090964973757300644209561968033540218421050130576783848413689494086785069589445471179166884613335422605970701136160441841840714181223470670988119491664697989234822166718628293517240105823931118208999862090831618187926920070788086257212414665368927394518241731838158057940322579073094502586170170759603700210792769563987678075081915405567791612694814384059199059169032708488472604621211946224670780496898011951302971286358758126263378384987526155847144697631139009886432331321808678661217698458674422985984995706089816572248614672693448231433830419798577449565629416434015306504015710353002343126651909335100630325412282168474310754954755812750857374107527189495282624157842842726063890294297579871002116574462953263732151138440206236189682393296620147669053830789380114313758991947991559704661015227819779472323106826508963895345029893137666456995568256362189202218700819139643468254500754840906253647814947490073884516874635263006316630392293361251514867313557671868700238520570600904263627757371554387983956095650328680546858714562407938716953370677728020248206711301447791807913147473184735188790153619279327590196442961382355672658629865813649600489098440028006249084580627053362658510058464668751534468792825780764028799502136101891429968976129058629145235250354474967575491215242264775099786800715319367640000390871812334418930723854293144258951737937888867980005250622118999046217778110520151615069045740017163167318709500388669120226668787609538098674065956971286276501682623329167302907020377139629524055700030765499169195950207690570974221730994004543412642740137357201358830618188880217396139899722484153664230738104429547889770200538382841523493234191987397040337994528367655623876800585676001035459341464860180049158196286056096183795490050769282390661802051245230428829894930734437489386367496755319531113004685302545891308003733111007443864075996169578441317999977937418076495641474312951725411594620388037509713068385434636702037738596398331799702854158058744058904036073174952870692621606488563505541054622768137285441092842727064344706653239945635812974203829403099070260990468245452395820307599469887449033294946878974755812212459543955696772524128833245880954157810042163465270453729581929541676590407326321220624650246989027417910706310854189536422203620419269116526786384399990429332347983443258586903432933640605952623128098892947304796991637202931882466884943684983453649588139021311244252692038859304536379241219480363310215523234062331370727263595134100504269749835509090909929006725626677097935451668878498476601574166239296704014653154943423936157447322954706404141943257622436430947673092961639604405731070340574847963248482826750885009566060890653559691742345815475286715064209155948841537229917581153963549059668998274732337973370803347871264600127971234613903796639414687978968800465980312281186091312562367239349518212458904905924067987277436989442854405436015833471006169382769543946151659358023034282548964083028392823968771614487614970562813454302438284195088683055463211656025013839720633048112862427447172458896692577281308055476127377634305169879258455801676592114758389331616507370330028908336216350968396248408054677068260131638079833562783996283359050703781027362738207108226503949654671266161414612510550347270376516476089941818801379446514865843271577597861367407536107576536402900056651542075254845338404631757905993969957793189542948485820927202781304984382961218728836350121282295314509200618656951688296404340508583325057231175839975826244923742135901592688996046007159721315205710573156127637398874867905706396334172491216333210514374186946033552203797571164299931805557012853779504271468808865354572570596869254409547798439248048070709855431556596487387734496447541714751988154688914661792221038325053799967795409077078854729257775558274137500768780012838358137124611869220568632540451155401046390396622636322906074590663397013185473397349576689946393043148510044876167149902478834843157839136732859689087102589584896989877325899551990679252392224072257882834543131460551817668848568503171319548621834623023650944041850601046139010371262607823870078038677613403845214949853465358083604825187027222651401587382806339341742177022994999046189944143550895663482303243109114039522603797476582974943972692642432703888861302077602573041196996461152998039075170260722831100854257537017831023425167840842461066759410412122046974874711782232552088333798521850122915549571137096008349086963327842857841020395067717332544665259223935951017101457064992429610832747377202101876707334472678557987786344813160570302917340185005629544987872305017772869478694794646987408494342160534460819654678516475120499890362642055224706006446504041261535399327153717619393171452178421746289863138745721139541512381941163088962383832029907034761522987003342149199605150937969685336663714954363175365330471042581731363302683237399794004346604099392666125780334510710632469458319557680345700072300027474278989506238371914156584515535511829058683889992879367691269191892511840047467886392663086347420887858535488448965802609033038598442261090797776193570481424609498499133896833483404384869713305623162491153404156325335888117574255017944977839894945408446218427131313843691659371037235305672166752758775631265152940623306833290926315938120948319687992912212879998202435409441049361730447936456072222896396734729436463271852025045273788065316853402471620131761882671695882989336781187308246231851702464351635374567495452879135150997694744685427580127747687419647169443484442853069156478740171920398313045236822194399176715538368265499876010736208049495568298604805653843726307016562773611401271158556952887240209909634319204075340833491735816246434429154660399920670286690548506248165726906790915646629072565943457573313085871366621243003379947842181317649261926730307282044385162508233101590718054454780213702700582613137442764072565273757076290336815323089791124912155677698638937308910743318861781301610512328714199724971327252753187105680694373832795997878527420426004365076068714368102984489596641847726823051239103949426837818779411458928310332312502544285315506465722187124024453020208814914529172708531570534475779037691081521027741838351377810054263741734828330582943686064946545677187011183807686343979077678489308529664433430735480677530638206783336777408362401372747734929124862499488682581643234371004784579523506723640040443617838089401255162952668954243054449404900313953106054278237608260064423332461624506000709243198953944428442092629876248083727626500096035472662983183551892737518242464957203181636756933976213125383772745153062697477901975677196460461865684671989309149583192110595037445081793915077558319133587951657963384749657633706327289873790973332530271737535126785099552652750239390423375226654850965676781463675023023014177709865631532314960925068963374086668743194679917686818073709677745152501821499078147168137844561398371102571839340528943373221431815679700252466228983381080902831333840560928992994623053445072697805214862097508165126800933742816709008971266275564932990597693821974431361927405931169464146852346326149142888931038342817376105653786044094999978096816753396868650470707690952721114867850078264335452379013814575247450666278495241001843710835864622396027637080694263636468273472449356116599646142127114044105620679751084827047849336115993285814974688160799671865255338370284988439664400490759767707963888797454989865142308985141038868020119275419845527393714537366620456545189499749343441916864237091537775888060782564106307484840477182328493884416777593029188015563030444743583828665049274454159297863764583790738594771361790506512541979417191536759154941765083296671074848005766019256706912019233650672679513919974971453707323361345125544928201020259363806645786648820697942587009593191016188431467756133332936641090175121090266201753467383819012475916447413225115262215993107160149590341915508936197988124786063773622201562327506366473490737594322393420991541743618611817989031317817544833300839369576515514973121435323491751424621328305957772191056972086445836352222511110919896738706476056633831246470928844263224934813987276618660883123745400544309312642780022502127630262160096546288689290978893432830114829466372639150252217222571996273855304031795720622235957932899477989979887181503491418020916483376064813271798511355436511635656912100977295172303308696237867147168747091204848981634634864147892527644302855982770568671642235956707061946921949967705225674744554122453926578608304678562498793996115663261460718610654610898376312076669709155938446437027746794779559158754660292400723664394457138351829039208835869214288210232595295307186838139081580853992536408406575178553525767582160642727514113071606341010267339361523988716592903636589295824791026463134427939809179065208236245913634822044833381288955746415121038778781896233466060777653605794156597703071245506596921358778613646697772060004016847752972358468167683979713967332819516553814303225275658307684376587919617388281292460794179700901024025562660956855845733969221885829809742324442102926112675816857917299661662066906512607252790189935444064407926817250540884467990794045015485116293951567087406682949218218246859854800052515211606526645660142271518730909088683310107203068201541196511680609071140990118694782713731415584938268783795996362767346085054969478539011696720082727750267551251071975889752590138925016413057384684175794519796998357928292844401953423501824580424616541974307656026060576693123610196388705042659266781407885202878259684513880506034340738677976504157122804845139489940467675729045260769345968989015773663627305531232192281183711313202644942897094681486820416040289357250884935289211349040561398960473219647594784970345785053787947623359323667541366697949944153766920331188200141342220309762656022478483410988590929806756789441009384098627577527005311430847452037655320828069753820196448617531808729439017740900213885418620694238321691988200499170457768070345087558925928905313854886295201796438112378540069684898027084317717932367414843356253994954864306478115756366383172995125107117841519194542059547348940687042924725776611249229305879319240715164470821960775768963386646056440669102735086201803051796986280019491884802828941331841961659734400669574993619235583054430338032884685791249001294518949037548385451888045162641765020693997666309625324857870460741193107501497657451404807900144870589188499635477683805583272049204033795934935330333246467893145573650440006984734268527462077566889618996443942604933082923379518114085817902220788722631011267999333976607044501692665268534261391862760585106076043368693374050126461554513933805748625662209534534512297842640310697419737190851266293519335356845300287534123497434733600289526484338697230228165748583965967021958473233615752030939654609014047372473589387676101038653046326891750691646691803740143767102436958670891890173807512391078279587688254305003701438837522769120766242569716200544739510037241461977077742841498889196627305052980121117806040986504574190046149572716487942760095922256569040069696748873983889863609371346910357336623541359443338968291128769659071199409851185710687912759116279707368748386113662052701529297441394111495873873399730007373431739035037521168285270216965767877803078782521603286632704323707183451965996992557429815944614656159957034365682050179126501122624844316102115966790643373101062000280806041428936370377866650894713757243723803970825503101646609077944405144085271911584159544302831984874336850446563737066697123504883435065286568637139881413676683026132799419686222945150328576073296303486381634280164832351776543576146842000860557495178682220609840724948948442232046561984154893706989767759112445776381358012108317405293519649588109778179425031214947586008115473728602066511328366771632388808302899678085551796891393397309011411876863192964041807028356141599949262497985797949984215876743278754572414804017387049867416970232912153045859870608052976440380503932452573632082380127075452433741283045691422808029196283903340722518249428205678508059757831795047525963370912838738818828441443316733853244752476100862508709121236056176538477626841032409590955710263079626842622216272705430270410503416580776130032008366308261729156572881231133075453772530990886841675694453141067571649432049050756037621381594218703682894938546942800780244253071340895078398996211286876862380975693966934742012041257736361834354168735267482742277855610172496250994925795852462507218133934948046247890635167901462648814336685194963812185367743098339121962453173663094105335582275497194915728064288245249221737715339662911160885760070586757244598092903416712842576745719516347382802648824033022056311678932187605235225338733365297723449021845522007425602863523588617432356826605099120819563362007795229117307131097880662411631535117856466207121390307578959313872396035533215923943493911511141278117246705988774600623931305939767005892496687776825567459485401549789888195710264139623411385161286579441553139737163021341345769215724259837362008746650403201678215514424425499022326965155779893123594801755465969739578254577336479062286716796837421724963955965172071749201103367721906707344133174163671386668155063767753739199554026861589918780071289268822415910491725168652431839812753857249796226142915024636389488802364625886048445617804773802551001208106749617611357722030892497582657814040977059830259802331297595371448122117142523982654518481084363465593102540809387501449207477050473552569108563810571358043970760831315822413219205585457026443454898580884698805838429408247457892085243255569826249916588759715297790598721542957349298491328232431348053301210782967082592677919141654589119224783107694297216989959684127790002996508761855764053181723779953429455327273473807522682705974416280350280504399091289992741875597649973628857992387592744261729971474083801384680957239735140703697547947651695958979375554325169670399825069368019175475881863469878446362012616580327136363297831014372299114276276008085943526044766311087332331483610273238708747331843774773247552137678510122632168277676882906755920426266018808701383537291139800605225532003944031355536954196198180610558848671743911087788767180283322037825710387057323321768046265597799893565029320459464589758945378607160626031020359338311763956305734584777772431587302017658944905164692093629377239813071067626049143982909662978134876358891396849329426606775764590129003624956724974259238676725064275244280637276864828045424210259514314181797655891083447165329851641324440533042871747999719041658940007736605260224335118029779622683773789273404296595292913686412544233640647821690354111622773027556981910391687051021882911530389111927407054176278001407354971463325615937921736233259124792137779293044609834283947874805050568753784546675037310889001201081572279115823377183981780377741168577751431141315200288014585817610527638012137887583903744355888032952023982413455976276236559583479177054252831552479545900137328557217300233310572006169963945912238990707090566696928205156201248230237930363216326047976911778842827432087726738612450200254087244453201832755211845327155213615883430532843486177630668262208651635689367775756136776641306780407618379966863965809502386144401011331813883546787054137450952339384656729987051196139030706012932199298167908473762690944774675586103798248372170295245224313083662168770978185571734387629959480266202118252097584843205765426103035739274613062234732005934174301481607552804671634838394025213877920880169103759396258450630724632542102817227694232838522425676482553708792006268622293512103505427493951102567617753284877491612908698628492692157876472739322719948962112145614752220898886395958402409150609131349436065365514959957168034407847805803879896521164845791893914498738362499154267132124683868811068649894679669982349020538840064863276273863839036228145533206263772993642070358121265788797624980407873750120204161157828841813708155422707891953306613458231559536372041025588327605108572385284934543258450649473401182166079486748083586569573164812673446080473714410271171813532228417962995096096329714884118810994283404491044717156741704294001234468966177092938793245186661388251887240625222699549093365544345788183873408534572022385842502365298437565658709601259257899754329382335749985029542668844164786324938896417533827003995222104502960796668851778275420987579288112459628220472001543770740885121852139075625335999826565153731067728874256365551204741214496242012526933536369558032808399387441421188212455360309722527525587218778609240738275922223603412773238390365828304851085463069425075481610821383398619585190152124789786832202951757474628556129399029808566320054650318072900307089704168094414352085703097631198937223456013493216474079707676534390329030303391445525008084741598883213957381507013717898934922098926539220380983500534417605059076238424014171490021353861204644919464762739576287169660026578905490551244509397749030245468027374667068959702736349451387308868770262057855679823446396738603507275284521503713497975215773321054177790216668787923954583225845363160072278461377590041743951754649554764302147099718031289682089991005007934416120736724651916517551567243411263346525830566530880595971312117586864675019409154477613844310953093873538484700228684967172190037835250442134707298684408709418746405551019584528468603409569176989275354082155027803767286540626616149399377828360409945624926758640950042673393600965269114231564863226689818068148259708118191639497869797997822950239380090362430031882221819985543462244076019836519691052188245746533453671155300192926512408975319470747061851007446608970991750134593651083861354027921350197331457692667184174970690725720405120431795380000020600596394669364140918586482859080434506882343553910664092110400314498872045494675534230941606928028567775281420131158985083807532068484123618052420517923252533846946617994637911517556073243830454683858974681056035218507688423947014049680634495593783313349859155878381174861609314454289774669058026629571244217923510966115554433084923343872431872890590568556552070775868145113839809810072615408917136521315071744856456089971699163582239747852864942480822940096424790076988930361245251399470691165403636277535648173988553322053565140969537778133725570923709341497865529225846603963807538061508776267960972361062918778070842187635197340010341216639802037043062326809049744125128537976698876022350117657605478334722782196444885394344561833597874035244303773801246446336673852130908227903599755786840290275175267062206376804764370449172277211743344171346794663846625761506707825501425604729442324147421713314530588857839329809402272200955320038039542257402652377997664313529295084995781729748373561557740912798405562362257914447695849839114264485479409771819135505984709383503504527907800878916642037571678847045432896965415219221380087841904252590434859866694954370268356199168834234771764123791928989517387202539632877417109284572958102934637743312550419592115892880952987046356508407357668339427228895233937781207479021610331352771474872087361034025260529386431405810788285000792723518697122880701462968054879570483136953755897314170355303676504724128900619040832205341619185429040034739894639958600817268587851252320465050312427498336049900718861842455327017480481473556009320239921051455736865528242025455325899964606546413967851469507901529560248237613395241768337259489876693778100718831480114164001854458261515878243444711426366498345160498201721198280692873790718197287760213767173047183284542079459493556883413040764601736140396185638608675893185395490639997432295358375063064117869346724799518011347630933367688723765824887245804966464922318125871078795128696244703342650852497783589226687791067637157634718814109968425074951423114209661136256632642354835696501275838965089305824434175134746962415687756749754676785360505990992872717095276158778230921051492365940237632764299503619410080628117554255270819582474027393849712766798586405105484729372074525212666176336173200252883865823698746427108027833621158314170725819089378492577953771036168134691480991241405805963093946290655390293047521551298244716250372120774132591431646993653305347120417807649295585196697085536165586737656566291093459898021356839937601444850681590605632504748368229856702501632868113657648828687891969658702690929026709607448328231268350520411689461315446852620684714471111775489791315698295450268455010924484344516244879755893166709256833438092089532100500239535310337254072777745108899371173709247210440494218831000436924224232996513364558676530372443529584163117957144198970315079023536479433024048802351785230588317789457647311236314971961987236733470189605335953535378430904128268192173896558372967610985628386452447213567956508226854820363997262161084630314349196208241145564980826726499887983733735229763861014174097863766834739927488364552128367723066603211511500487597944255213063894783853923989036507122503884618750696770988938044768830844730584270817651368690115168912716877819283640489263557044003052520216477420141783093883858871051121224059482767722028471762831607548682404590389381896243003070143087682601877092645438242157853679791408030010389436046555463951787675644277598806907659518683459245293447416882970003300542689653118345247660069351088894114759766643259735561110499484552374784801160924461334106336781573613996762480364444311602925443413604966509304703819777077565855057686861282024481188714258365328523265485534869774700988191399666577523873463399401064647410534962975263801456121270585262998785745658179323800085473463822858216090207108733633784622494045810489033935653200578352633251744695741216149646444660584617917455681418031277118980267405665855831978883631126840377880310608239200911222070703649999385065707193491946216133006986497255845480972207737028429652817983275123405822900560342337390692362397841442245771571931950649374066140064674208040816158329732648481698174168585122249109865744210367548393745882916324098185976623786569337920263839596729603231785480474602257713199710783934520632786759067551290014426731834422132384504984369654698324185441219198526668387184388768199791878492087430281337032650004443882514319959924952154790668490300901473748191894849136712408574989598046110879497902745406447097620584495602442477942634377999835546751558364069248598502611692250741071583214430979229424068582761437506057597609558109653010755089317655822550076421534611283207769010060840639721662483635358159149659329075811391143193436592102803860313508710892406260065200455646869040881460345168764815217307031324933733687934299518561890642357993607279029943316297718224632081613974393916497813682592895111842564328151174515720969258204925118966879797191753187183670574590761113348661224785934934375450783885902070460058951644619343980036883385323042926404671751849672204260437603276400573965943724846400904724347130365020480301827398920685052928439017987392381275959293649450670020126984780844363915177219323173180917211132950495862238666092848419373126682412343970572603770595317947875551516272442890564091770453260174104944905031116182591355564307380873768605474327421931726918969465809790670227658313244410719627338391086500671970238508958663422592626109430212969540666991499497654027005388055278273668661032781006436817706929167672603113157836551185996800839172766030885131596678458312553757451153007779969426432840753187060426468174608264243381053194483379429077811235609194259768778318727690564416587061263277992499440826265351197604058690534425095098706060344043519240646649143880740367364543760551270326327098881884922714283980082600654214995791320707388274457336701018296970974763656717391674687781893683446857557117433594764080214585210797870320932839780263982661329527054083248526206527650777725565294893773764532046613014835449569248330796595164670496516526962335711520587201088322035669326777340446827445912716279030604562361704003914506433883321220443286938086378765204245003451740791408948321455831651615016204536652163665038785847893570811380769040858552010212284370237368548227384856381768420279889890109741746596330987073686989281756956581099559069788895369971969084507095303228227064534684247493433377991173575689927157793339797597868404663712205517641169995353454636179010657909217416341954249792291213565763236442394926328095328786313583837779562928274450491493791704913647707117520587780137106339441636821495938642039247508586861776952224105526488773892844414822445051090744652259990131134977832214788989620781505232905166857176385366159437119652261963738967404886165834418638325381468029623982431767947954237781831654881456183313173575527419120488910380895771849300074834180879531581901469807601995798314496226634912517455612874308050374034667008825534547939449286446105084705309192219989024007409013566670484002718102998254486944750363473610763562818211258727502167910572286791284657633678884228655674716961645829325655340073980303162828821462609397726685319026003579854521417073762414368936392806246118934473592536290354368557206689605394932567778459714899264209489119102918838606970484582254961559686511196328596409651330627661266928663010728653203941479650410407882809522747932098198602582000747427010985097406149210593340942998066348298071875906296916214653101642346899927660787871164246459402973030337344697593470171512284790823625112193618314222198115193785663758278531147047197831649516824465074701731875264563704198789180425808961440008079695589995074036837648601409656608259297297725282648395489729854344331399209622979363415761476097582522012748599015150097843219346424373068752716300714510543057436689789324592307252428062546846188511609184470865597203658263166673392357052472655635708581102958743577345892567832230717483908413870166710564393268093575736028810499088508611756007660437877818136804215087061594850698026478502188842839849368501730972095798184139014486808768864444242063800910418645117062864771548854286927278850442345370260650613331493911403947755159044385687487705932292160039996099299593667928159530061975332294675124663791057061034958229670953388741829915019464572907707425599632447549739573867880630735534506274846789543208648030654382563734667968035882405135721470676967953212818843928467550582885968180567006193438604551554852003226590990420936511483075003076127602828482332386964898862882842962249397855354758996255034887618288248913667390103523198081564361100338693373048422280976832828846966758076965389196513132325188182174699938050313119776326466179462596486098782273253840308769570524337916311062275543886403549833175070304441444059054246568969508447970380116146697765204276862945954290503355125271791097951165297221137568958421128728991905187083942923227204997590522029383207359340091083507655298951276873689790101941968003643364051367081547456781925647869670395696603100407636388533206467440088607923325043211381477416468232601365964853526371620997138736196520815146782837051486792447869888853215473307227827029430633312537295241067358939388552517685708112240825283337523580930646375109847786675355030807054040045398483026491730921261803063425191154293106762511231953434931405996545972506538901646435618373496087551903525719562870174165999602815636458505193187213498014814328020172031877926411409258783589883281687666174457703100721045806226620364837058550380547950047725988266885018397151205577181521023865433584806978693497668761868385271946235175620246396239034716364425415936603646444333038697108734599514872946498869426057102354640619162139848873141980424701807930996096386823613962272855754086423559513614236781539096627146552334305871541512001410747180105248128059026348837065528137564797903284288390552879000094401022138645420942719896279844287238365734570074733302466191778986870399985870864408687917445750504945555418829288562904072848052011876376474910103594632454225358218802630657595060062015955357569698451624899264189350509319680662236332179779046921063938428643483029194407005334737414826220529073158254030055774782440299967003547862091769227835380296975957930224066061650009429130982273671403193132603304312583319602361725521537060265338248170807890314034679620533269233040024688780772198953591236401530858064852188116346301162326651619893979775516256936715924753336229132446185255280384850846592942763566601934413894011092379753369630297636015259838015765309992326154211848063549052304325844777960683010189560669290410298816248012481586651583994160496736429569446982416753452833387289055385344144161030254313977134934224072242951007751075891867410452185656404540569852215667969044650712457111294704568858136684915458491868155682833023159573814371849766400973922458189524283404534918500770509450150261340458891738635775196848144623949294111300221268284204727591577586665195775665704871894471232253819232984746352113809910485782779722877495130104488717301644401845890711401257767201255418800786744088637518720327514355793218715980000709396537903436133197095687982234407400427068849897771507003547620095642698021315935022636774834735546233604539539161314465153578918783394289400561747785756063200787323764854633906291432008878478271682087361203661858946790187647467787641689713750585888686373089843388289538752935150710317780375314006299256742161155136690463162602367491343519558057780037472015832483650529811145402184557963391499341094129507465620578540700925641861004156178270203891518747087658522429585590976978104693963644781628620628047832596150921493421594338055240375764877846855356320523026429575742949640774578773195615477755568283689426669437906794889015832091398500799678044413540120375010747569796262135511074264841308230587233776141483665188393568048376138342750344767670429549275738712728909530142588434483104311845558136057988110077735819873751024059873801589758057050992214822699189635691391863117948234631056350492995109568077945655538713734037420238718090368377836319262519316444564231390514514610616750309160316828283626103139101262592425732875619618137283221610541621504257605837118277591111469926322997364773220037860928467767608422874590507242071404776109142856238064134873785878198876662094048587159468578304340224181456654411895279380452796472010009211479838101994145991777285185701881813908283588329274074235790144063062568661679934980014598635512178171010695531272988546172187395569258815216195789895301658352630982794850685943936678663919029410379695563933717631231721318700793815700865655920531719239485349255390785095829663262360228600893641480586689882362463283341030881197267914324581803685692360312455653505776479064568009513487886887462405901024895917974454133992336335644808098156568833264066096878575244180617438564929604475188044964686562706460312903481920747330629607467089156905596687977046691947116038773239351989764589707106704660364478731983421842997360540480160677510102134025882703163129976392050940052812862068157679642114884643812357118139441046464087502237212731176892651244528157283274756797535800252381097853443285776767360066328170924149547613602000852699272565482571535702713069609561043366368473670450675100914834625617752182866857212782252806655363935381664219769343477736528729350197290944216456430574644602676280625369248033590092553617351076959520694950089589412335689660262277178722525452326617973686361990436945955721864755828499729974336678374665628570909567061726951916731610471860490367655019905267779337975666630835722665316050222503380321768792822668062497298811591108862511039745177780933386218848124324192825451648446297786477627123287062124474001997698045558901547544868182388998536710821356546226085058852119512918712300592373200559267944779185780938528528109886392748717201198626425993538819119104188904669853981881936075539579240099314717855513213933974613537376851016387472427841219873997665196661111480121777334356714886555858223820547158533828183404660199468913390179924679972192314275503766168770156579383711450492548635216232142176435784795024820098628070081203428987014572484102149882253344673280814416391304422784930858214362242860115844747608878206802354367604482739708159589262894044491727443831822830358392765286340333950211277871226113703137404291917246891291460429504255264314176861021586908373949779008257435969236643378659529843673596044994572582237297246822937575543020962690221022071770896578211275486484819569517223819661799551919213010368033343941055742727132741780702042067962056062202327460717796233431880368828783319863965322509965248555907327472784955385156436995596755116711905141361515166049779671842430467751475573026597125617524597013752964793870305030495016264498929750904447134119053547888657947841439975420378232893682317610318789830211600778933135325081957283116937722465211472660615225620230572996854817767532310019351862797850443818724708569517265702608870520886071093224161993220072942270229066446838675594031127655857363430922611382488697608331686926330476779348911168027393293247994814795285841265636559067330111424300310653730012984543711053303066437437933271222186363579965462948947192445460320350461637253639445402671585626695788164620488774959487153774374064697062986543319443400781960643260854925572281671053067182555953380002862222620646179161960038536498453365978960246711162153912769980029534266117091557435829167695013936251066098158699089517099143862800172196963618867649967811416746746815202094949234953663813538092796601777878728479706719764050664234761664058298022325098463266214195163105112310950648208639128053394713935680816971663283665477454962760754373816034926852928582482476766343111463385317617877386177023477076443431022125481689468584710990900261170206822448250701132260283513650437008043571941432909099689798579807294925297739998180462765716898183586871007932190337363006911653210616066852144255015442554313632045063083323834953018663917025967730827328752167228940390109691253923097662813610635479261386248487946015215208417974984231284398806782032705345382762998698397433243603353325443433583150673551617136307161990100685891626946636790389340646246793799124264935814513619061588094343718175676315109513039167544330313583579817672349282114761819998143690767237968174033597438537290645979516357956348894004896952438714691992628317070674976881037465557459235620840945353062282918549569872492079223635451230465387836331327687791846405906959272350234380553526291401157410755779258768593286466272956635001880639414955635725500788507596225078342120537679736865920599370744883809617643610299977559574559558571577996669005047752762793689199742929445199089158985116135243257036757162688301291116527748217330891274890592161272180945717121685838071180991625804037100323791490889943470302736399331937432684462960726255521200756090262664470117465471103393858894013380710479896934672413413554686375299944820346166019242297965071209729107866774372060052277778892779142116937525802249566145356470221736836489618287069166803536956475451701618800509278785586246189278970868857360731018133331892555297711297727350539949622806981576929765852267358648172239435096388095474212562914127870650104775877862980569070899162503334905311075647388139368018398587020131987399420514796677544539577047443678329427483771041169243160205727314131743785399476710436242013549686355274011685452072638835505918212870965668078180426992339461896222668741176375595980788978801013484602706158894359534298204213131089585306559087028970089716964878585767915054525156833369745793629649192597362092272431149216929122746380448616619500529715943512533789941403223554982259219748349820742916361955975994766358131957801897021166367228117483126655298099136950218279381193538734319942727644675806839420985543601577201196570680931535983028938378748568273905631526789888907533836323306386845630231082858435929481370145021252172428660673951952843245892198628408834643800848051980011439747401294089521851269616466058142837671340794958448097160392364768713899760680576603585201768209739643594608981953856334206357246064994579580649040850071392755459974648329226814328358348448321343237817710787009492206024732115918023266459504318063912164745397471092320554828977759412610861713520701610012880992903715297577909710130662157934374177662831076070112781379030638837304887575969622373655788633139022909369251523370615230691257217218539014048117132999474902793487779399549011518279361994660283682720328119544206659686064706263953510473051094850009602382460842182566718034542243643202964953997824577031324612097242647568397072470170819557806609394674963916941145101726913589019648135282356042709003950388636531494740356915442539524590030297261448132445833578382071353650420611699332655039234254854559886731513783970153829142451720561632022730154880776702768250200167784948854082854809784267958167501820391138191815263671283804390569498854423835747630003884612142003575732777094854783104390525920618864132231077120644174964057771519614017109832811828819533274088125281248922545028681558771452048611791718667506453550025714585957645537170293469655090010203722716479484516340338163442271685125376648795232855738115900914831999730121664886223197223349397123612409845587048658237577197115118365693499321337718872978416812330841348631003863053653826258554920007363447900694026276995197143678642872488782303198329472366913850987093220995462124498709069332649556512354613076402562535488504275894000113957062112914402258067187234056304798704019496329111458491734808946613045690736071391410378648155803373921135495900429924991196260416684627535467910924311189512621847992301020777513013901505215770079244612630754346995677874847194048923556946241344646749767683938533738475730794208045595574711579836630626630889027096252197885430116115231896789056141703157190077128775594951232121895433700071614478486374830696381726567199384313472396975147030752562518031458951470239373727982562737974015153499460482580537044617543445831280633829643511309072141883540652808607508599723159665072138104581599366619737359502253114969876190988244334293139144022186772060961446904898596791904303953318123774456231896971867260183312678822769268557569781337045739348920411723387099897148556906607623610103050922263579857444292816328572137164003146690496723036315057220539793562602667210175107746460880442112355560535009034544389366402139983510543537679364879417413423644428915698880766494200309517752522326575238416998154485408393136997001392764142095491127576697176000772453407396666753783815951130122643971143704868935716241591154594367512057608956183504026496679935205020750965220391540763760021201726522023204611774959199469693249997344774253928381637202970393901861019619452843127532077711980390682763445069881584462812634260046644152734518993308606325362431269221287379587887808252933604738979061794137231789460482176045749731056866720523675469643948710291447612238472006497614245801143909189538951029806370511350179908783422990084242663411863647046888708683047688749783312929365500858696857441642027427592679883562891015774130547355526675142307393685337403098269228193131215771292121917767293622410554680095016061063063437961594626020794195897930903173272032141631596037969792072819749938621708444424498115294121044394450245617834977508924929974096691321199372803569767675107934351701061467545693000066603274544326000248638039061310368312350458675864192071787475986376511341736384921409163748233660667431081917057938723824860273101461403236215760768079565667113416396691424403660600712109118198189738492849686385916676412044618771101086450284661437119975246470563321085291964612450651409790082528035701044863700383777383710866924845062608168754301511313574127814830630031412380355668600837002121296138776249828460061008997885098753221856117843683129064286085263493561186710929458776145867476077562641658244801893165269942384447043222498784057731411469348748981272992356619362305011686042131579988068572037316479381510831042845884300870224271569331050904604991553897797347449989887614902862362753978776788773680995995120651799317593142487446175018752626337339211680557410631889781163214866371677177002207308139338866427463204140185793006625571759675351661417793608359008804464328239879592127571893715273373752199566307486003895325702010088140137444200748726134628416424126773678158240510094754671912832165335801564962389495117855304583264184035324599702156203031306571479864612213885022549313364080643862360631260508522713933421941521321003472982058223385944010949768576068246611875586874192854217735755249269272091367118707650991528045874927027828350510739218749507765139897958337218683694495589556481987415917169423370769226059879169206459097157760291961096719583575520066003721111264811538207000866547975957110130997465265869441615973579017411218848294177652612729755536741193983503028004098613589811074442966731766715004272649885433885940907399444563337589731890294752183229640037127028742777647426822915337664891660872226428780400435839069370134698632020158780406972577154918376440207066036197031571888456343573990754119360720089890203858389181256951904144954486701661086059929919046819049677211206550973800641777912706048392310266691306416847517898473982141359099612481661357003557527941527316938576552875992615052623346795016362407748889052817877977658741387406876386818358203999838846950509956306839567286059921208373024012806525064244258289744457134873594628692748277758358143680467432283048759338714155671160462399312587874733120831051460924400886979046785714363659320218411881226067958389994773760834795681048212612498011255207459027142150855780736190396663082140934070764123844709199962836103448086671653952801465456525783622178240850163368434223759862884257367967611819840886390485712687247643537099645759320526659947034788516337776958631783033502558215281910675968328432198073361208914030120923696369023438322397967937015241512815701716300766239319488813986753883797105380165662715026846003695679833439681740011703432297603401599932746100567010165943006320126177960933529530837956620056969617618617860988505703193948829309071939072207795592050820459626510720440112796819780185268251711420511505384405351516973483449456997953077775584032043353872413604837747546074429907007107136962834573974358096604599729099536958280005671366133746991615247071069800321713540350341296594081401839093427652558569447564465619688191001780400729529656885949569393785120361888678820740262295369585298535459044842500126840573140697029050311693473149965406444433898913847020052474652953845052793822939035665225882382712473182648421707013113293920452144768665464266018564819731645498873624484367002877727836832704382081861888761366870641984208221683797786068077598852813756819541762417211920258535590130884781229644202948579947236389675779824316419152109200951778299877173347030010765228471764570152441485545881158515129275750725066833142618662014395267090978152279184911543036532460126234880838434055234376976421453410296454241703873960965492547286566578203863042375968299732376329237916857811012889808437755481844361071984485094126770407442930581130214383500539004621807801691741200489752196403169564649987756128262498651248435950629124338688005057811660778080089725308357247685030854231787605713467665175897254678404897189305144817611639492476971877009166373315961238470209932375901367622914774623553662773979061666508466146167797512574956328435204732705881174397911394809165316279603869237280823682029511845856086816190917113775009747149040263435154618218515323712147345868805449008114653350761422067359551598385792588138016780060768040892055722679316758448663592118821349215632741735025629321682536555606799357252851144760519205213770783151968171512981733723239933314449037527528962510484032167987235281163975975879888923193696102919244181014805320760503096687681286798166295673868491463602783450468864025895486439422028475148918890273322095297882806428582658294733674987315922764098430548560275316262641767468613959497633042710218708270416138450920584813339021687611113834977634754189561045558739478890661372051218153573449289687531432487800016028434084411915969844060608653713379906746093821670488953331613297834792098394254173814114990563185696220268727489343182751458621414633412774521947580431129230049417046492180266712983118000872193265436766604024700858805441547762882371067219118765392262205265340877103323488688936469337036152612913068544095789582651205403508604394774778001319837618631540054890629440441606139811321386680058167502021017172290852704959922871761018065081059362981525853884452748040905699708204675183285637412042893766878764285467610186614223314029471137255660253235659080197993398761970062780433068169317422487765360836101991959907240687966343583906308804107126231584731973027881843033494738911136898953702407473188830378974897260383903232520443822500907177328474706236217475098225556585265356369593602294585746097850372578950810414178096955584826622731566363476126797471126951454636044277785999591850211319645620435218457653321959808243239667817101416253870336730348369687615247544508964663786997596785355468933503532199286158466066884803645385529803703923739891186678153962564294865849772431272848922666302812631957767153283172977500688031157384426491077982143383861168176757086628899855438662548193793079581260171834774779963280539403458054741795086059836090507281691265608206352622717675736183721439490856462301931159061363633125921487070615929600466176389966538949808364577480958955897425951612821352033729790508066380730267857352035589022773650119559993123263299876847869497137736141697003809779017375049095702085232788477731938613203294756260232629094728699988106101843397071887393457180226668658220270955415622600624112536862463158850035320284010301539652176503250076097875669004531738639506368322710354671007911007339253131710011028249401045728023086293030954778697213637768569178236364081944539398044738377971743865670346060623141448690412197985536806430140083406098317379983190851639606735979037070866865551833520001525699829115050576215801596994893976715085142624127305753121344209381965304684055376755755671500177670338510086468954940524499509494328296272667582221672792264290784975443835917542964045298445718943029509326804398461994026339929613611559534731935926175785350293676195628150434449976584430616013276515936002021214735892779099867836628855379913688823069295330797145771330756252634244591262856707838846440080351961998507026899032307363954371812310872387023309562127181128720261134769777632894798107588844371375155037835837535418204371781149949217294862458471139446657550554211269990301162173314193095264192284868038214145755017959525692218714012972464789764458078807633505094195633755391508731035414975857911508763428630314353191951820274768471173958759754651372290377062829236162765068413291339160988245571859913631326557179976440546125868238489813598853055414400495544625669788772692476165363284783332290342426836521624218845812523025336930704746708942850373126325226498099444124366498286904715833386432185428583085593313274364072167255135506978122729191172953608707322240989220690915713205944719984206855374878865053533376199222029984029779563415115446330665721597352787613420248873816491881657120720627107161585390253821914118159391496853425794498717280487300928742992548832780599882670625414918932632226276692061742301910807021290003197892186331337912032238720044468732705407187805880219051574574872760608177429582005630768623376053144119030884462747329818604270799196409121258942343120512549357615930193808349852029928506491482539251869291641153087572887741510477806630318301234809600443350403389104866333057802913008153880136823856034399466523819366325223147987923742865732506003528999242392680613149783901783404837084355296816020543984210263154970377317234928812899537128381088330628732471588313776353090165852245059348171531336629196608532025375128429023087121818076605375418170051789505018508283057042652677967732841421713990365858442553201937310205414531352491724495909765582861847603041309734848076086783535929705618000800591153134420743791149300890660802696788909838861405407367318487080871985751441930790222194395509453067111049684519043833115776910619569691925341739721326095753384734318461550620469451915965677331390049614973237895441234133796813608638612465059367851669295061893634079688064355032153655857113671090841729045586282243491221688426836630200044162503843722964158987753461155887389734949872913522815450402323912215387388576830891708019858436520244535559237876434056853597118657841493070408467822543207978130698977329842475427783963699137999395013392004966166555822860511034989610827403104122560566216050019212623902905367371169173624700435052998134839769828531869418480262928409296856898235769941560854494296417827242901317925147074458558722020370238313925773677270293596011234975909196909523484519562981903568392436512671391493600180495262562332122418193230839159270757786511667310881040053348962411999008026896846351357451546017194960160930985300151413803540914996964574678916159862693182670424941682714681110873687944915601360306568782787421637392238460499749512760201537809368959738524638204130436961244932491758653890708421602964470434505991503496244513295582475682549298738085983592896198471651866482258862489011445739119675978455162159664491039623854235018613101124404780891499824391366821673662963229107205851921722062124076455245023311083817612698779828384665475417146469937967441732944770794635138693285839386572864782215255346678223214092303161030481069643407451290032242761562067076724293689374515751766462976539201446666489728142620744633312391879645237948145373555356823922252046186121150782361276988189034181893468540063021509833271516236744196020206695163225602933236861873622532585198265825793830416089332049729198995728369186254742011646539273187993344163027823408742151687167837211540998940145977534060878988921187945306844659377818773418892623034339703668856801278264833048452408244467970329839892021228261577459665449115094906294434737135515759866606735965468173452832947707361416603776449344054569012113950043968375716254850918086291558995874021059499940197199320880084123530127665877737920932326047839832062374451946808415919582851215704638159777128891836241834780528086763975877421226632173513099917581217657096482693102197699245879008613802990438762202067568229531572866720107572102197981130223704589065245377636425938930742397970456294039391044538291839343141480480026600354157077175183620001939742027527809866202245825776266104961488594468191241516154381804900479824422274546093971614271196177528623493141648977807006626494943638753346349317648898364602011929235938446748097448510968517467410701359054013969207095398010049122588117210413721011527208171122776757739368640224223755511099822551225967443607525434701869823712855981503976171169665318889983429958304747516217047812178673661234847015833493351435982405917462414452326437256009689053806400032781132251914979636707427367465156370657517760028669436865374749776052792499421325050154732110719504111902085136945669499981630085216033646010627771136188918211908175375257812382323161731969484260484434800503296317115010361026359029996445874799691814656541732837579068064713301352108272896789034474692766648586341147558206258018400824896941272222710767305027584744511633613502899047542462291045684734643407026360382036792125388037878942995121692889716561173921517278734119007364921747886030885359393109753273174756638805314986472402003479197480626062557504614551211064627226529839842199836646401996718487113851736609703359042554594492451154245494230726315078915809866944083405943621535701662799711923646161339308948980716483328737055840685514199704503271759463196101260995082879987294512836501318961808549034613767519581644940207129990619613434742903832699436368764067090711380758889638281161533354720054526792008966257141837177456925964834877798400157054487986290854534313057493406100185670805001360519951021243619683604336413829221071464278561340862517502855520883831509457910550848475782819778417088551565549599044162444902671652345371676214438763943317723428824248288318660317681250099596024774536514972147939648545981438335052788965670943290298663379741753800105256360190075342298423438773456479621162830991569799605892930843488248127339193330462209946798908592123141989941988007873394314663072375103793977376068135841558354673738734757271571083942396163177301707306445098508923045071078684356609418157674106715571600818895371475316775405934227320332762401720033894605139366277876806211478809116777374247390172927456123528772248711164290022001488757713084966649847438862423882944180916704518374082165862616961984044760466844315140254284188364165795603463130281494914198700444806283849756803283160221578887746955468312285204733844613114054750548273866211411527068040333328434808209327023549109088626207497802246133251629024675436015439496261390592691770209551240242658285209482438681170881303087043854310523278489390492767072516817552019586543409885705742518669962824257673785853252085414345058207462855851210287767037595785964092910563881278400127487860197281787621466588193654530819604995105479502752873328609567425224842442034938350761329161912214700372577544978415735045841528360183712796110279750159413780789459974612347995051364510925691896289243608319792776804031968795202791058451429369483742846536623786897176843852106328826591443889613978328266342411530893010325049695873889839367479583992389686928417244500296033124063194030306037548395453337768992488798600824365475680497325024961492711925420112283329464445499890660635301345981079226621498051278778058256962201416199974281852407037033850833111503875918458763127191677304883921342612396098881415820182123340361643629882753902970657675386740437180234908206863331214468725645285000178603039245729150702950987084628420538667024779157721668433115346721032847953365164174776157268329918320550126430948695108086157052666627469289257836592291634392649761156007601528369575887201421698903955875601947501968637115330963424698036428874861152564181403389278576627813251381583870443202549135527818199962676633067586739953482190219133530188318643893409600876844994397969251556142515219664497853875142011956460074821979152464852757412609274593341062067706077925060243936662862602018805828162402225200709723892058434833649823837039690923503582289714400886059764634107309170409684309203047180377546961702736580254739281905326518156406830729985910469795812885328028362292509618586222771780834839143309005176199331395571544616663844528983798847793551848061451204766061417700433173163782120288652742602762361434932237923005221022083405328854571354814718779965146383436805146168724852882334913984781230098004331760747416208688978181509581255065406744173202009902082967397533428314744573979114621939189859306698962285799270575956966749552121756916171279244244433648760520974496638199648832027285899080559053339499671127819189385379961245006842428750148586761881236388019110290417353779764431187817499829607512183123060219203172831322170687864210515554810600284687212862391973061503128683046183478681659891693082581899080075207743003929887979211754667020659343612393947477178564041489001127988895468266376563836427268145455195908597898125420888541003093421531843054084645657698864289544187207967469490169192665446069933579245440660376589884686887568064802032389043590990294341040128630060362220466541810683474523189495178973205807354178707701807230196839011696258063805110002505519081465295912484894380864825747151059142472767341193541452978720014123868636722007494620193872228398384178065824955864045445594182003810607619025270392441499663500774557246613536390902438718121300215434496485740905955360126072003197291892149775248595614964188561507090998712042574204906594354554929093218880843077329095967773655882955160655241335745719005510922435999004143669734004203847954363678995783072230484910110155396277313607494501560457297992215073313326302953215251890792546590240330170371029524672046154692888061657913526536497131389490977508221865817989031432045614177932851270219738446026182856802902566987677956319747973607731234739438310314750201497253840350643177434454375428655893870988975070201461510685315547898276437673880273755717851665009013553653413608021640058313406228936996345764690571848799160617019958907167243274687337700943137953387841468083445052020689301256974441367973950444813910611528165496966497648609359819970120973791266585894152352689805572791231255708016484079814565880005322362097151487057473958071262997872162273482999718691526564210656405722807701805042927267179162529846164332576461217971106321126280153604582988321308578770160247889587174263981706351483811296146328614871565239078711313393494180095132744563261422612404324286532987237195716432782689176185273683080599720716631706250510672350936913680553493408895539752852811867718986693602975711160658026604082327312685185815176778685879506427583618765570086843474227218038632115509999742605232250870933798461729365456734403106076900607139738450176080003030451736703136487211457512509020527863958148044166232414793015218592099911680934602270504219351672923969075385668370020368016327072559695819143368294061486806848139212654711400833963676459369976199034649396089816983039139436142829264938381652405079105193929094919906150061243859962753828178661661221600687560323486698820913258102009367319480075187844683650393579042222746006085360983877318915747526340844518306515056880775893825812683516620190734408187553929032788337232712670483075517627951329417903351010986908825115746872741609279138422844197677538620959851319065901984410328745232501696286807360940181274712917834851837678755728388616096085045802185800021592100705632686661265764864756953272059938487411282724457002570537519920516349785644843934642455167198533429793117838672393869840328531003802247154027544680523400560456484390925936675263921190790289246982049224212343111738359992655513734750713867942576909672024261549111937098104865813703026618361897851690552204195254259002832918738114594219585901725352921670660821851021835228424981028724469315077316731161563665768465842044833451573063416788510561097392454152464753029744874218757996782469791573555703874532969349692700108658131778261073005005875943675685333049269027012266608786117189446003397506504969049546222006954736269344193517611245990710343358495669711801985907931405153946666804134955788395383282541304917739669633407064436429902395129994834499461276027289257099728945376699946557670791250747053839070964170605541821934122818133519836676320121036613860546691657827811218864803634269097851377587500982845737300270636039089728912516874598527849971420720534231544872464399410900518919366009302958435460372460105622715109347939435436622692037797869195003761778826385676272412689663212745576632337841113393685273066418027158181743316353303113500302520338085736916708830877485615166464791538717806148021291755107094913060948526347998888771097736867622068135203408813885134933745901374792187571787475234701673433938280282199060963768941866919533842836317333419209738900589878500961148515567778402538374789206365793626462304706405484844416112567439229014107704819577265341693844034903730541545724065348588064356549975662321168627706875314831515369470983451924203546207934198344987925226309834029135159263702586040157176473597770075297869322459308452055452432479543544516089967726178693678154393470016998737035433305437779050558976327827298229085124398964476620225458416888894479507672755963093169248796098598351920162591522859507521082437768889497657703853533756875178245028623079532228874337655420102169470859701418965147362904484843408541607562367616880308311014877355558611447527217228687055889243878904024880837869409673077454576121143766411333390441863098602717313423033289085765629229694300482520805649419290401819251907940182760999181390214941683038959723276326849996605261271507684186867804959791521236471841310589764064709277536001564150901104082073343803913727502669963172894485980440328460355176589302985034386442018767334411408785491218407920909747360256303409140765829577136252925084486943355215427274565969417403509726324432511686304758792911097998180438074959226701003481988952571459111295742912186779083428793298317585410577603955737674685090245430382266673759793496109186507774872126976520034323364311012035755933399331405195544494617314154815625557217416590878983549104164982685178587542679073763771306886526782783895364531094763813114374414555941157070320056018705472745359479563816120104033565220625529619071311784536409500533895746625546617851898000879850734962008714823290344219840154824237409902020698923353972529368682683725650434775311713791740458908756601932346473527345249353314054341961022100560921418197840108379215226049501001864672620757049076628075610023937389059783520354737805453225763514549765348152817232725202846302115062192916704432119638863936525950620299126677515610223014986964027717007143137179202156744619317109800417759880885944816151485059664629825580200892891335721367420979528467243882462141218586572316435404217112299279142768476891571419598345535845826391646617796647047274692980089604251122574706263482750100123106467943516880978166574108470121185648269561840809792033541890239323620197358591768486945412110164015099761025801261463846706796829364756410099839686934244198053633590520478203363271693216875375017445240739767805245470011220246291318182071312997307971002373780357726703124242174050163300454026321722975463146321797609601212979871345763120819715796638854014137390558287750730266950509539147792360877222282916254282035103951092565961354495372210162853168109798078750662417659563451874429097035795355389787142904740406263100424531336685947823795860317512884336691594630714323514800278955083723840462028766500168301262730840703345029764232066455631390866826349977370351167552557281447515149905753453727512840466135783086320319154773871517826560436457301657567462772624130514361644965997021023194679616572193740376340265786615252482285080191433955193264366135921709846869135070808167473031429051933791452231521247926777557976913042492584548139802487416109733194513264229580929036854266433763383704877240240315955030307367637869482405867184214849176770057592582774892513410995779603903898383673361404217806460533659559807757246845184147568535278528999129045863671186006797345737038945852907655946555308313694543943653215820213013530781240234219111901209399223669449005145225763845105415841953834580711417787139810582317623228493383853110034505582438093811475101075488249831506623774407644371782407502865176504878011827888051928966092870392056226586252586979699878702602520876618184706931634816523421217995553464615883171521540755076549729975848351720071504742787750294049171296619834808315131108189708435368626655140616777377256511835873954641641252722486765653089619323849089918920245228001068885715344583393771489926013093959213724835176403371746823416817062677220172258792808823796462058116387076820370208847071927916594313628510627042582340091751395186230735619296209896787431098198678354341296422103210735177635703833334651348132243739786774065107809915565250273848332332241656920103717181970621897085782400053176874026865007670360613830425159010217048786486233795057713426294490177185698963970691463782477307345776928520398833252132507730096279065364356582068560609842957483324714826718264681362784647510878923805955796799814086357473386338798618558366384218461019168067259711064829714042760291998838901892355052622832957926643857152719221977106280247743221995904520014105954951919046317164569496081251099893663655221137796432749277850383073470309112103013268910403915710900721199651111364429842316390565319829852095126457587128319611772219438065200391843284108497841417810690320780885764512880045488726390440138659825351773664340202604018738749723159906352149923784281217430764907560566665811629833059927381640495551191630836986361481450038233200987078301326529943435846193084783424044039688258075102079614029540034604508720771588142469361484240845448756379487789704527037756759958373362920354194718264573836300887316746400499394481325484332827823192303833342020034780678543885464819298039133617816967322383081220065161259540160779280592038574967137411200304682382303642678323627201421478208699612029471867460752375763653069819825137292351008003574168919317998142496417458966493224512104841989258413740388178984998625085471883200351215380037323059132880267414047738602478921256176057710636064759304298868559352901502052335028399641583726034167005383067700631798140355548838742308392838631799850076970793365643833887490796469216216637128264910312528904974306278726975635957880682618992834486392604423337351202744496273947817804543469461017462351450453433283568846462066916698263167388132009985490571997477450512600326383864568913507179281749900020498333522607796001267028492252747275298423901163621480795932281808464338409870591980133754417142725630468280855754301991502255785332663356573187970571903774386053793382407643234102454091370843871950207710990502898835426837530216372054204092371043546979119545989498202114230612446844087599487627145274908582693811651292170600981287296095221965815612382912574278453710341282969472754793380358355963469840340941441162276065212827684021194269758426119884635084557959259230592403020708805934375330289910922196972647780775165382505620783869910800858187354974273069260047849887970283534058389703023177358165664799967051183571017400395672411343760483015999775844011586157205393258916746562904762743712424367158218550459469207774705531404948415581456567119828374359098431422902752090442056774873991808366693210997631877266733057177504989220835877451057784238835218438276339186223099152466272040037472613504769788543125570041913172139334013081647550094018606140018979008945495094326549796283102854318328089088174091205505345756920739518320314338735574417512120544803357113648687797639444796102724722316349499120719523797804837925244973481151525269855479566124219955355987494495065814088879297589997600216502847536192253386887831890478037537255971234189710789210307093189204616757007089357547932089531373598207242926376571973093189815419635082981234398229354820400902772632903172338248677955231686499095460616899373305983410859191161156650024365724705821429227945158049343135621987951159543153488113996783645071569127869911707400393485073725019067703445335321845385945217290328620716075958338685952235942293132165171289347407605691089889165937407036783086985532506860971696637877982540595355260833955700028049548185891836976895369231811008491900060716093058894085846777781065890176351696356995044900723589707829661497400940912761161849202065088067948074961259969088878124354375052283971290471142956410437260988804678500434781783467149990913973955161840723057440466139190033425958060319868144159740144399734719881889165383006047284394492473179967912292129629289932328993521325975491071261238359475969225954394897955061107036001983323462669325789165467878691643101779492442134916950308569549765430445976313528057712622497241835201207673762062510537506514244398561849967105818017232388488113093896778574034171003639846043122744331816570092202353542947463949217731260074129426208979607806624042565990892986117298900593786570147116470966452692620858655120389899219206666466048335792466561784009238271100195085194585423870020417342884163492446797635428999391382713581614888226844188051017769095702937921594951609768994540482954504522943946461199140419381639843553548952821113307884504035723837599524799150801556690251076743956356600194230476752120910566128389701767296573665447805411432429904802408883536988059905222190658417888528782276430950460715161261501062856734002351179798079388904687523446396220334553058681102953164518059121280798747195514014437605359631067099525412295937896710947991552867439150027721707910835357025165946623298869598122485810507057955916885292362804019420772258932754912381358507911758743669521628261453662253384563339565596329547606127674794490715336912254286894315461866223336973133823157773511879762303167525244769145893187016908542281625038894290510472063542409463491893884374374052064775565150009440813656247605284604221112542888926880405723363727910577020995398830060369301453088134602775011818780849049733801506776622215537849142559018224939835232540556115358851082489775236401477685787506863252890805267502121399944522163044681699045468947271730556239783193025295530060198876803777338939402132343985958535829794590343011441718797432374281055317952085991161972448938464712132743209288369741956076245994328044372219079535971450500469788133797098741949358034481484952621574513853020702145943913064568737214121997944657303541281454934864963991532184948327869583055590204012130154327554817819825707021094628872100958140816174933794192611396114713425788044644018443082377870365049223351642894014386674922120307745090032843277792696629100664331114101024804947887504620576657384207261983044037491544658052711596322703036796232086389919695525474590220371684096402499343101228740724354963528945846308777344016397731208414854896628259350147297647301685602467086617370699545462708896183815378704904530743684752941919714375544505919782555971029770223278459017928178451183041781559924688089245277578043182578163285342182563296246049778802881960498057957565788458410870552361731808132845519709243648919254560890890054883371709287814270746030862677451082784446134577125829237770179438035131509372656193519077725668019059430646204183153834322854030496319146733345909447774020349988997908027790504026483234742296088335406317150687584341216758184213650735465280483792939381901472009156934772428712335925407982973329639493125725787053675368249838395696568019910238774455553999834378162153924603752395447429701747480115543075943644661407864309612367619489655048695878163537318384301718533116058057902962116018108476519147757598677455967602905524132119446490901888844139056384043717038968780869133572140575807726762005705968348103499600181340385024821189911776717359778417337076861733249630018027944366778118941099059915981935253683720513875967524769675397768463292277839960466328819030285735321428828688701274263008170954722578248068877778347333469767556785500120278879973531697646239812391746064812363502755885957219128599922936528952383815511999094950180224826080813870318953835886876731150181935554325239416726987901691045831039885832747600124119267718152882076263236696653163569809528152816025675730452758460278271591483631664956030728662183753683090491534011807046729221272268564197358563054539558650457753058794323308280238906455087834427867076770180569969649958990517016713651737057057773055334591311600142298729261687894865167111087782445142689967395353950852386079076989065300017885396993278333863536677501675921841781633551119438640817480537442728346263737531966933620342091097778665728173237700406623615920005353738221209342016760773443616250735848187257409285508924881894248963461481549180552706722607135463753448947722761863504142906396967335918099640762436797453578867218137148147810843358835206233436639806025771935346968364030484413829202310103464424152411563562896014257645178804731875313180340137138681629252734551910746979520063329447603679788812210760829823461532962126532956505188232426069046055320977874753266374682378931293744016162845902301146866719352333840801210664281588790315951425801614961590134850869476607073984137293119854231769553909614968506554744188184996167512094447425006445663426447835308500056482596958216529157295282169153586113871066130689023634922491908287877664122312230284441950206740924492530863332257305876737269377777811666708640654359421717827709797731804156119916971748804295251337111453968650602163981158985330207156378672645651159537277203666714510758714002871503569117890823479884080800575073116662373705107948767008367456212428297815113618508548198712902450882102914975231332847860740456292307965784535000138006808879022179991427420295656856720233742045107408476794496301344721411474267885354279054729457409426362110492774171345691185885980685664713301927560393589433959612875062413772691245231992236549001805446367803716899336069028538512136381583993655989348767059722362234981701966705029417538067075488832659802604462576804220746007781817298704026533693749352952868314627089835047159103174201889462434469477810969951657197744048755202835384719753951889805472922424619097455026357054780877052581072855923550486732816731599046522537105311643836504036460496601849348872050660784595228823645804425821708152683319414200732204436640703491868923640613514586501744295036852882330267352177358583205000767888379543979316402382444797851229151359386405500296317985073789647734766120362235175086243566444445204690703639332846632864350398063178389670794807780708596601560986719216054484534149766867116704721477534543517593053273685748791540652024943707929425106456031792585620227577845312542605133506656211324528617276896367797672450685892395688941047090047112779763003524760771418758106216279295749537346715294880255741067375835546413107530761943955619585749290659082622619850994302257615324314956122367179729439389460669423020004040244479836329134197737071275119699654756798619894098421842276638186665208302159410936504596795319116532709197039193338169813622735671651325067795883932928175188718670253088808590629454484372861989290988703595825659655716571062952493840603334684167256737314379626521846659285015385996335999068813200339920308905077595877049022630461912467919150361375035239001361813900031339208794635953305928572741873904663588752260618098164020138175833485929722510448116907609375383683196744350075831655195882593839723699057769998289164991883313506016030466612085641782992992461625919720076125457627661168404777419200846382198712427709548858256264400837044023787405677691490272418220708843845767105604596936976903223915249036108755994473948248231080937286687307230917314316874901490840151415265800135153348517640412512022949481462502505103549876033275403047600697424528969934416479495482619725880182883234686583756150481808404155393709166019259844126142235421754234276969393088905687257349152826666141701982257642543048927029181285457795109798659173788277121494292704079282133595265381531927069004600398897655374420798205422839868661435077243284959396917192883933971653695062455474118671527756197031247109277507960270447124219096717332900414817679537729931129994306758492622627732975569238550584136449468515756317017730981898991172292398802064650542202185636840735446088189852389808688617690709441761043161435402883868105281669647408894866139180967385861566670592216508697593711031866564521332130341420421999231452543259810317710091032905163087260594020863457712408078028250808153585588262654014003331013709107007019585628772484931780601283668740524201913608419113579823589734480352436990588667474243362740268181222110740784084209275112241915563343219171182229384544928523742141213727983331286146583744929756085409523013137753154957272396695925956104192734374229232348629172220089637092961282219651367941166601750121308534181154159148488032964376714663700821031819600556834607291791400142452325951338400957044028917820763214452364656630126477954467151765132844636120226039969830698470669517409744343530369594175623611864080383254179674913048606766882372762367962342348333227106089304028386744735822799381232907379695334347266968033100292170970245952521129673341622376881109608923522816656646578808001917482761500654078840560887833200886728062108610456174983924243326749149800801389548979000745040888313412851193670806636603642637738902181675802146434085618317865609846502884591387234583811300687529047244821648213676883349997430043922748525119408748916568346997739699620546870890043397375702854651246553263766670033258113321001692326652115963482947121621051415656459618213820093474237866272601941666820664688251327601665782835771214098833056769527766268480634555197587647500227393254076037084165065471897775155482403979990321621543779250096138182377561124436363057937394766691631640711256349299434331949917162419772230497334940253292196668536449516506257952790646981598579521553873167243421070104136994967395149217584225073110015118638999551721618579726665431265214937732542788889766980257301530259444455281416748882005341559941989976993650885384698608678602478245665360347472425593044202359479219347413037848865971517981904016719652201162042010753768162269177997387537424073483474130227897860398689599101678587838518795523940981925944254020624245619862932036798310769353035427407382058284916946879957664681979070539948804043478004653651916036083647132220024967024349451005602186491043845128297908770648823993747917609884147344655138812033069778864126618122607068473270401629623501820500045025719784847241636385000553070749271115649608097829655153750469819286915974734699045904449811891072352445933445936734729894441128844145532872930605974740428926292836738151177250710188726084016692064950375201853939815035778843887915946568094409688905828021047567334244944213331928721422631962417548300818771445465171973821946798874057595306466080331255637137319117524207490278615609534292367173611380861700930487630377651608761603499053796152562051300199957471827438186268594902876687573320744762331695435340784105415209423237874855222303532015429356505881446443054790254251929385032556920354280143255856756670634971867834596561242852831049095662637868372866007263618408413564603738639168387376045974681712847418235823733545840193008966264161957100510750862091905400976910850386389145468780371218989356875748791491251228144774744415928256401345380271417648707101767079973748916176553290865393767079992768260820887529624723541166281308390624958027207444021110377182140920118672210569691809359122661742357589573823283902755429461225856113339785712718333199893867121845469845908760608398311921137989414264463559434227478917665460441117931309900685290526432632592010785776599100830687120263515346538528105660882182456741861240654231025391853190158436009490744024595818321952849255897222634597856442113720449774873708857203246548908144550893393106443955438320232034235283040889585413377882140157551667629093243085872831972086907830344353145922686389898845323111805644239995502615121103658728210520976349061113054348836745498267641695852341240309350451195762954800538611963816359410476878695948930590041929286681974179815618388373846278720135658415358259963187893588983951208813113485665707561657035083834173005506753843817868241145763070949159526141488370421144250391340598140306457370645589360332773950520895671395818755367462023587319031202666504611913950809269207687576765530632054043174426266447633723368921385078793815606169085704055155671441778331038730196535817670753737571339254385526556282134312412979766267209333832298334657353466159064955080281435661780910182382093419839616279291486157918786665015001831118923444717367181422029177566109913336546404833665314313885180183571288585918577939307385509195770433862323062692917036451156903020752875787872356100000123008591905435736448700676581809968737498587317225913963153733509198965159905252938246995950991669261395016291481570695498566855884750639544959418362997231069390930037221009825134648477840500677490831789745367752602221776486820722083792247347308907192081735414373045696457288260888154179089262648736746412003700701463261639315569990440323527906230679155397003371426672553895798604175088730668910114186172748289907791309835325599681644901724942257472180427095911028394466327062493869421731908667077734063837374573239607096877012679517651489214509523397112451983873043803950806130973109852589767000628559839726745499383151162155156824839274400093460497480420196760441726413783946530409995318381889440391308691041390130090904842771431574683435284744188261008102477593791175121765701365091055915684033465563334729881727070578414508464648268141012429281484078844742124751086436117141883853293266325276409295692750498951664369340226999724265674684102029226983953197189882487154389607135201410431268746376354067144109328188298188325722764726081835631040622068732211733375566039199179366654296428140014226520313340226511330552770962855218680447449563984735778084512017931401881603125870698270732435299895272529622903316956100223167661876296709609808725649418766418564401250554066177938034881183988780448284851160961124974292164734672796379006285844938704715254837776089728748120075474829939672997792532455181836140604873955933355541417622694276649273906212463729138904495699182138861332062200558286906374811808203329403082675676820811363848982500995241817862656362097060456941709291096127773993240642482825528946700672906289142329139720224089329714762609477226178963337605360540916185950201558079144231654133279994068142109902745068807404527681604811121106434710272806198863434935993521317071652922868074323228783119064045069215812220851460046817693976531517706676193286417069798090269645123551119012301055245512407220102193444040436937301663542944378839748056534195262970665581818864410008643697642631080640447498317938732007080553649249523157614899227952244814937958678767681411828071612537884466768180710066304741947423433133073521888164114122711656745769617002701492353546534763887647951219954037710084950463363818597182390307368768825946083506076181435054757276390272805725383350004477581745441533523021273387089497494937147949771579695987194762181517476667584105954130072691756653986864850470943862190902495609836244007226980373341372293903084149331979663811871213056309869694605857459135979108129881490857114795572689456323373867490031331984242445610357708752812460840052974776171235294006769898935389659414455134320994375780399140880495354292295970713396728696305381009319770637051352925407665935599068773069863430768449065840969841300721873922399228872239468189095292316639125579223269016145888489221850825876573946410529219945188619998467683091866615477702883142354929132577039705587590631552353204057380192910797008728845073333485782586497966393128418307716144101933231807551057493579227368756088061923671942475451811401021473397825876262511234941447077920896581396169765551697966007633193201822349955007302162062005564820249845782328569852075785714417117109616193138862990071458029621797139380114191096709042871144883247474298828620395709449418167683678901265864492842832697182148750162383729946392302295550674317248327336553022245318243184905318647718650359043237750807160471883117927824923549526989087832857089870597036854493546176857392610974936090857612708392461751729070533652303105430087726913930768651139576773100458812630716581648621486816335622929062368193705748389570798878373812037538282629796724497071566366864192239075225317792526528140887064318309783599132167667463840916119824228129600724269074642652559704976957367654930330141157420685096682638580575791868452315098137328759901233743645063866450568879669003781516781819748870703799756062357874596131986656122650979340788713994872668105720318261286227440624836509718397463906516035638525596087501168036091659501914056734608765302241260184263588689192408714143675364991952318229591262025610947443410972722901039299875958099862826031109311618767142083428885377063331224653603721789859351890151140915456073956609097508147166753591018263905963911950542614396017510594051343123968901469799831800577789148191765903489217621407315489191164228939326833078141527144833290875840587369635790054126755509187858207397506704374028366141563271400856999882787839149052142214566161860546296018630783163022021730796107065333918333238304355337108747556209861210596335442088845396332544185748924962715674948767352126074774982843360106227270137060734678690311323488163451311973197883223912018349934952760074299463409614206400875161809978436305166607881144013633286214224872084091356698979045787724452461005619444922944264100941982248362901021309356200113182380346357370004609601492495982141478971660960600342918166856133378368700233937685691057967703445054904154421444497236593716308392167817677844423708067216695718200241741716076419383405055919295320010565911710695935834836227090386840042070137039483692239919285827705981289953780118278020341966689699985478205636905493786515762734134299546364105086928908958458447520226016282682607406495118676822672409826572647217246069090551098994652052913369234678314454558028735889656041455895219743590010071316927407966013293157442645713876013315433089658700126129736836329950922457617729140619009838375049499773362852727527952479515332496615517332861997584162829048280159235125025752181609851378993571370022006411089556544045306842647910814282612916300557667504423370241105909245445358159483853517684258463341290646964801688595977486980955007025274394360228300355333586735379230261006180917949404518430790889820103128355834435957068988983062653343561847747730929519687280095247487444797214376829662242371140134130737448938376959837616374647538152521571804751594445111956960798864621595879871937673860320469251523064032717751228254650378173556104506969267791199272171947447007100941370610257314277775889931206693860119868758789514664717167611146209030660604673480628475616136370143744202395567849314081354448201840678837529190587170726907474459278816587605076914475673987124870697362272273079651422745608771751339515005869577282261482114118487350874527784949223423727051897021767696588352087964688461908794523623300834247271940807288415798674475534487617036208720282736980824529126514335541237507212609048059497032683811567173243908527208532148137647538026040772340082634160774938621653814486734409050937712378441133120668045932769367091920348643658705147325290727164464478037786581121902200573767951409280146376787436099806724033854132670132518437563698655752158145460302521101647880737561953675748935573698778571413230966531518953332977169632742602318303069867206279329003545972675626936804996316452356631743782811446516832866730863814403882560473040640208477146930755055149810699311998546219517175161824176005600929585727186329304546534956651850391275146518679927546635275939581655263420111884400892496116675615488473211095275658683098956066851247017940304067147093894006526623142833690355676466984449071261042377003070332355330652601683676932827447490389689963912861268111911509693611909790956553255580108888152039308312630858202074962527569166410180401423317450760851393549459689462644986821496792509909195805768019211171276904325433523556496596492066506463071276737900769234549702681730743709922167313261444816448147530066736558805180742302385676054688890630231513363026064820109021742976450782208188935936603261543363754901730206116873821379915795561576570235834783739863061416397265057801442178034485729772484065892198716569018264338165261096373036396684816489777332904136626295705322212470907452134262024446762779967233443860791787305927279917072905224322281505183495804207692841825703863881000382226142069268509913627277172856946766919074057685743433178451315733663769314678514853593687942789508910988331281984996785878525155296573969568566645751581528399644301886620794553345900129296315430869313064852027440702356063697420302790886839012431052664463451871356944114798194140188683831759337469538844357295338908993019902371590977766080711826404767758905679254557079154096904230864264099589458684922982428608753571446439296922092019182815991584934518280715688166546117476268577151499657612256808110013639492946728004473994980544226210856166481849672396401939636173352079564740986619764387285763336087574944323933743119882346157175181472077130656102967758402575766037026083025348054470189023830397621554152365902367901707900991115893680371057267361774797808892879310819583177380553376790783435015893721431316171419422794822675153196293841265772078448501853874471355803800657160560552530143539120362926326175549861610355070937379469809396631467089438472732086861323548228192705046491700075676020172408973590926150912022505039786891919849288701704968278582532299468069864981538551341245472661408411275351285426526163220069722251303532019048665372151968698283051997844854384754609931851727614113607884802264345767002581147968988642808426523440577086853051589320713794950908649145960367176240586318802988911759524866165924573104125291276085364947114613136659017371073867805263552021895441147785493952846274277329974816066691553514599953945842453225381991107379250159745153941948731868487458390807095925052828290310091260801895841016666951428488864555281965384350814273179381156416315460698231756427033923357843652184164165043970941335249803782843191090127736436493156291226609140374572353337598768032682585325013291338206779038223846460151312597556570701044629845731020660506136158939907764728507944370864757245913598546818617067611755746162120398513010791114518446362282043375378085157871019783086654604883248603657027107866679232016926664138530445361959130515716097421863839867346741717220297623913309289379704818515146158543356157424371374417707189163536834358045914334770003270471144752588711323888056159604255322614262713832773015510409341680319673041643635331500836631507829175377683273034982964533264463951901548364986470339101496035229937220099477650579672977250679051196909896722642730928868060406417170088679017328318121153616285373901202522339305089094026258927035024533025914650085423684627398397565089549212804975080867350474956590800097399580212068371966507264541213695210997431096928860712726801935596424964832722932506480573005779413366069195804954770516305940309739591489720915457089879547271259851089358135514106616188260722049357263998166533697507018678971422634626321088774950580337399309397450433025400968562425935775978586013748754591327926200151117401999844785225630179480875750656948502393776587913058395802932365820905005736647738765237733645774849129216608719341112717982455270032979208222457049768630570060544057006073390964737624178779981763372775954716343749831087840470753162897505192914183372952710318232297265720794184128311344189460362127076068726144060640303316508957986180065033415355179156295369417819753292982206766518602299323814987281661122616631238949005994430639914405628166273726921508250767974066193304853961712887976631795252952524042750564315668957556662624816993132957902464061055185699002451407490751991319147128345404392363336177832022557653308047961046513295948478102120876569128888876629956501799522370321922381387213065543287123131005966170300537725615953413602351792575705738020912819848277247885647599316439997037936273714801619755102839210832399193882368971503670939022965503760258548911683947596249026346544353061783841633133287388936009277235603453974200670113160365795713335817151164870019720790411791608792134018315081280746931462194073019998477638098799504154839267902940132190268758379592300929866081711370600668392081194020073542937548219521907232865909085635149548763755625431969334265409875158863848895416558971687413141616408522191166768069966049257959752752551358147265584741408245819245616023740040077705698846856885280904063486323482824822013590848791306587760484961869472521266263589811087007537926934104970466297967049611292803042810487217438544604661122601278392561934063690277832153502250515851053928168601301419452382108621926530045519360385832311784303254703702508702847095786461445176281619707326896464270054364407594311744455380520915220426914011689034310291091977680406423265372618229528040596709197043836902011901199160620816323884973078210777510943584699120781780049730669389878220591002430293919234610357769102557754632301108838660984076892286424242679981459225321760160259478321021714587671602661760289418214579349637670062861776573057200425333250362431259007030653309776267599441647224270617029414119524670706708276763564451004550093705261742935488124014697210440368779422643059992565514422682514380037508853957965796213269627063514011833490194047760045871778335281563735600084601298997961311000325688715979129511609299713543516856836737442235430805635464650723861396684348243003105613650818054649871274036845958981016497111581998545266123479998101947492323822347779958876233758560645877897820547806682697948448888913607401824269868876740477991641731246577771781856944384929474130939122984567190699910662732509488004504966265797304190582018857151629852473283381458126073417237587055329027344565720374334538337659420045658670568251884705436889725100067937086641923442947553087473509598591858918484365145117463864443123361137370020589314080801359772942220552424547781832468169764101271140887915533728670687744008148198140183703201553117581848406527650701961198077466587489409795349697272032934625839576568809669009425352017339368546378262166949718096678148180317514255479412356717444514161145835444730230819165096542591067916774599491123224082167906761808760387296556073039091822969028319040225802290777131044856977495502091789752434569550052227423621497829415197605695160377184272183395222768063293813597491964384619613997919584968294775100220116589736174551424790926410752849163054352684359205372579017738699805802459751973322094119091470607490002260549324327673507969200202164736287694801688083081841970718508980233381128147836895704132791055312471936188498428257216500124464481628016898493219335614075297759528462700750138062055834951517334489416858489343614327505801662862520930484819443253072706780783889416680032956569868904404938075244310485807004569970762305533225978615065455959083654503749034600973531525250874251905167551763653798969080685200306675059680702030897611077573365078842155729350342886608833709263087311022170812157518501325118383820018524876675726902835600650827266634559503099016449162055902152346705140120473087613955689238935416216949184814069790951531994281535143260781437145307801593301962457348442291817610840700447870392550442069973829759689701176939275248173142030242500621872723365136343808305844469692118887940001267902390066595495058734024618203956496569760972377381315794595460699092785905246387390969384653178993467194656205006450605469232828186678815859258487942618786868904349902755294218753353908846387371568505076394348963532391142254994951609557610688958163070949526564370295224725103977240931413359897127987033893012436779236724252099146966527280854068478370901687712715643893415756266495207588484547091519380306814753411922108243500348416710096193203706711052738319937858000826730206806962562011809666370255177004205095504433560101022399610221777164783036566386664288575723283687265620155543335593761122611364393395362463387100230512402503671659448543716379488935372270247397008793558649909485555301669500462070437113419108300604240103636009184869206194419193769099433642305589333161039027951221558369680151144611349974161145954407945784977986270087417450945497465599940856567977585495088099048150099027271815811738042752758759102665634477175123378019483533402041657253852786067515417439492364505580796359454216596175916607829927386516622367245246476783454759663670941758691291536837584249676081098856563505762672297151562552833190216882990961055460211406617625511232952297555272611232736715018098295334672181308417420719179252880783670608841442292620459050886657253334487620444693950327742356289361378435229690021833858575681240557455021551180490739866376457134953165222498990431892781145659336668363035635915899174133077971053135266132644008032385644308426496510761695276732662759369216691103235779793132461808918645856936628044209140139646106262906336401093027136492913009428467967722949895906974218652284739412008079388365317117890356217400014068130436976593538754406755605819052332882303126706580764657297165035587050734169672673879139202562913602577661979397232379924526489415313313962070346132781642092636613583191317479886302044154512334481858351854070160070166169750222254557686978920034730042668176333500934469907436577215274133158236475615108831584046632420983979884888609939643104677142705615576691609834486880622450724588453629552520908778050412384142991172692327289853104884900307240785938671450877574208033660396526809013152878456577197210315612228822355066712422020650035991473581938228753057949320259449043618499859396198746427277234792622233831484247974645072710934293637436690836274806387809750254049255274244717581052135873912476884547338131640131872828122010102668229659763723371043626517625191145004130828377314357189374615368029423019144708337568764742387038174445746905015339941818614596154592877274704139986825344400769360825021738261125223391910358249477505003148322356760074051606178041302797405032521162794139467835353798930682237969501657760046899968347694177669995545100744015853403519399465637435758028912659331144276801925925381905786277763715618819301746400281376591765177607039339453382226038145278398286267849213468745626357737445493157459306315510301018009042633614760299140607948802608018746602210670784109261281120716716879678440663578571143093718741298439664208782592571447065919842613165594728140566814025279690951214504500096130425604690425951035850288555032206317443268717951210725807904191093597403648880968024346370981522376037879758859240829576790487683028355098486099502696036394628399672355322602965654002149641492091384318712123987665744667486601878346737772083379063143220123715423770474241649932872807100904426591088665395863795235879215472872917630434447471315608409785933878374397745540147674109873145963247870499992426294785774253071617909160889768250246430492686233213513501816231610088009151932957060213484158057590217793687800303047986716761166793840835213024855219720366541796667261613377879803300828602501853910467079448049195275658547966941468610142921032004779011963221641030211094413928250027803055081629702991285797989525800760882089008653741381022586184612233324215002549964330399039473452324901412588679972285963107941717772536859253132167097120954853000708351679631702666869656558113598814513235435454216329657154047504759986522462495495324808555689078777406623962190411497560069229368168285439441210146020969107463017283251659631865725574248407903465286714982438293582095877923205264232109488645425042417940515900036015987630696224541564202263003616906384761470580989911725104589003165842653535181058889182872939127874270848583069919765880804467023936305211400136809757359753107115348124599753178163841987343749911264942972737658553375636806889531055741417444956296837792525474946200332684942757648197041624569954728884109652097536740320252793162451923692931913420601130280822019421991094834675946995507091776658046090162839684282441226805378028310947702725885396600729423598886306469561751155102493614329433882530712012303109717985744690816635752059735277418205762487782917133730280767723899255783719034479200702240850458089744106699511517381006620923087104876693056703231404973801273235846478055453543905627063995716671346648577050908177408916421367373771326756360595556075588069919708341383249567717981019805616780315039270366382278957550276477355170321485061166404193208428401362067055232670573704908980576511671987655903363761136687833307259994409995627583263987321072873743724815821056163892180235058166624113435156903151815820953425824308556516590495911149215805029814326000696659834870418551564304939408796228378733571959350164870992236246685678710042530919010238742385796986763116874361404681743449045860985376328570667034151890023544680789330951643110080628059819654715693889332236584555997073816871734755308842136809789060450693463453569265081064604879553497868557142830255620353471963459222131417952826921352025379010650195935261204936798078580838479828425323340549028326765462398108516817871223953053156017991458271317873753601244907243124093491882327325093273114671983080008801719628986116902434284901403069742373820948859151319348576633875171856556282563686320940846305877274273282757427256070944266485283453439482776006721881839700415794207112842365049967732426908636049851773841260520954528411544218282535362831866658897692045167297291790881339307825494016771615509880207907531040938035842781474557614742818491219918726883925942424378447587290612277165486982618072893261418425382915687694021274948111955643438389819116332003964059448225011836722541045509226365557802316162209195562517255609648678377708241971149151013945210396446761247265487095790269067041182325295028556852572289196604245077261996322773194714755804896758626652193153359554181574456863243521160714990179159249960937410646923107099140328723421361503196208649473479790196211195745529019276020857155028734373814754565593081161394765019382564373178706717221483365054084884480021659108429133045154047169813375991737680778635608498499575405689478406531268418703855770421878900916740259512596011844665022082668405454291695088766893568868277244434537790505515313094215759028523370856705089090855901691259191959911130810613099444535574666911479734670443447304366943539036865974237546846438313156411233054752240322137479761326919149655199159351812217119579874490027421337311141210823758116607079879976419697175413204425560768637845223042925979257069022008723163845999415153375537513358231045664324813075540326614868730508153571920977232309074584275820297138499535319267262142479043463437863703757671715353567735680358737996730035744556354412906936228990969117171908707175040563942464583225508975117875427835491551866709586920021688979935115402091571920927212712812865734156407559992001300968198441996283873384091379620797118963926290262529494634760587513623022054073267457677988446881379398128863239258805877060553430570738555390691694572202524091466806135828060719033356775526455828956556859684621569379319679367502678267574813859644220959444512429834217613412912197504710969066693387233582204232719947028969052129221842307123665691557108219037774409675291389635635550339718570995940061987693693305055328631530686315492031682672966681257808614041557956477994002327422500403688644875240902908112965397536566160905917294892130284647939983250072839720040805000443131889584878941314672505838150379892885186851988095183038036145843189530012284636607517643434655375506064323310330191502143909376994054721277361992850267750849404522072850623638655492539298819108165112092556286901761624606630124732394037948006059636770552224685439636520079851697136263297954701275255524410929422585494133678937479583904019384426092876721577604945296967355187956198520596164807932424614009746491447871108713304562075211091185593014859034867562668440138027752263364035317127634577401341733661861869709533917860288582633528308175228027048879261312446343301410957397860057644889972062710554789054142743100749704820237716534240910609833852865131688454455591682838095492990641617432320475715049482520126070252164703168702542509051058015073701834185454330043196278219287959304424858838161320356377070166632518947303264899463133216327241383444491396006335721771898800793940765168651406519520616974649169184587821161957942045934281801379444930961894763432635781473348429801843521544713070702197617600904538149388082556337867018222382003781941609432260695771232675049650439418307971470301419608043144372965573128474351167505125348517178946291635531193253152913263934668748049007341849434046140709938876553658556590383720140604334771822511408390051394485283162718187363061186019742284784533079703872491371105644862526745065532908736572588249746668621529283261544317887588417406779877431937447404695121943583017794440376096031781719461211548318275421362141530422048811128654033274582529086417302766095141571139198898094689238141747623061622714185642496570113628353687548175838887765329688786694280203232131610737886300871195703671986455681741410815097710071648094499381438301294498272270636156801804224717940866296311903421562019151501629477601359791581975624524885883801748950329351561235532705189269387876481114332858014245141260519003014307495210630456465208488262644412774217804047371362250448259452195661101966591298839577988366357355582491889618803892702819050396052402203600909036312006685633321786438587059090424286706129829636843028506316817269345337529675487980938923976450678184160328416452226376381702055757985603961927017249000672961814266937602510383641781796084636410108781006601338929858977359566527101541848869121596644382901858486538716954246637713679231758026233159341545097244059193842367351611999691788652812546360921925308550297981855896268317645140909664365155890105302918844379522878292196887967507326148102424086682763100623948960486807280928875477866399799633187560172551497068885337816028341586229963355907413527816311273686093366761590611188956990265756950080398895030291652786856128849456305938611707131502283427354742725296367599840421912677882330692932835475592703376561414688078146787455684229077874284784246512826220632989001075930028832949627627253948116683450439346752611011558890362995625511787245219307469469444168564538382321169122308596143342228146568960059173457840586590779550040352689752432572702980318616010092169633952056086168750100225360960464505440955742231256834104530524651547919799016911202611614229087303928269764152036649903007849594438901421233806223861319510204077143750345961642822703293649369590051549998511505822670146138148020071675640069927458039046906923128907449246076825830864558553252005397416236917558768066369564611348545755671430598766717210784433077729208078484120964170732200516163695269378125124235968874712788315157531246975456623784755481687722679742468854950262806916694004702508494850449974098300973042175451868003264528154007021756291064706703781182972794875409629513111674164661072627342560467785363088450190844884542311008613947676931681865361611262742696846391896155837379268468659680010462001455597974607913852023271806485791711312517081149242162196308312409526067633514050746743905222965191634977399010707442722957384642572987717546057463902387503359899945355149676047028218916478384627219795581404143503831215235774203790778036626073575114773962106513303177915036733504891637716339835600950578535172094523743609595025798132549992054511808861365458768116074873437236736790862491485830145946152108927933743491571855125296116966979307141527113896813202340168267211864524387211396517127071886340040281436740905620227177858527117952491755300742402219971942342347269191266379964508860233187370248024912092275743838413734803283272277092231157755975972892246411600461100950920134841205514378494111997569781005153831824718168211693450198976272896650611174679884126508594030949278554582011508642227688775706144929477881815519560296614939694948134166601704572522939367896452057491832787008388468176994346604777588826989839030805767119075565376979684228009033219789391562838966511517428502443247896614309082078003899452514469028210485078407647294824469084534431594626380964447279820467693740033398659303438261456487093640435925421932166205463884538223872930390895977066511398806780558910521181588723034467241603507133679328372729796776785860881393552287988370730437460164400244531406014571723891681761662287995632462507226293209458909694393048692021569371773414376897340947954493852788876181031620266325954346231351219769961441623274030828917960778586368414663823865084157400709067291206252120864633145362854325190764682154159112405007572130360807631867532760608470580157871019418064083466952930503281622948811786578555417301982260176937719046641557892359683306537437162040891767808801003749098207572674316082120915397218319702740409869355568843280204749668306769666173329845182588149685267658071656000178399378706432311986534395923177486900037696541397886649087626094497654799659979918318353303120612827865669354916519332910573730644223013412379778137475435023380167286508076100587083564945644687477238884226078761172430723774163247525763169438159910936807382640053317812135796812943789696620139748932046490905572606932417905978981865106989487170704636665029750787145822402404860796618897624952840211523958230293840888728288620212115097607155148595758426803332557609879864258255224744745770894408450556650109695744568792957400459203068105616310319838464837018570686269835739305917496480747372961948597998215358870190924482443205221602996520255961602278784358902927293548306380773644079935095243290421689444837854265818138752096661500349334435511718879939873388184317095015846022186956369004824332970288538097504212472611240313385803359662318476235052286271873361831841104798656433922054853366657811546585903574305011407291728264822265314975825457773359709247627565545523074282741710896615674625489923783302452584802266913542894090872014811467444547615571010062465875116009523532826752241968445816822534071617512462901958247914897298269659121066144184025476255523922053555861500478412503642695256578880323017738116832785810190112681796716423196203457217876667245705790667732745773031724518510484108291736163620458187911856311766184128758229866464105834178773267960808041971142554477718629642216706239056580505716845880899502240691405549684125933366131712862640244859423328611467357756688197877248290355110731944818690988071797885430346313119788226721784770212362327698293388636959810644648450916607795677546693159411043863477581532439624509464433774958794099477713086669800580341922454881837838772445409382035461162616545148641549906150872435130472350856053583181893686216074662281977711176300653692529552887752011650313315993726154191212974259634935360649250176008944158643571965730599073561733310460787355148192362432361104553053087136423010553749762618071359182696635777228271673653696008900869456059948645812492146964980630634002080972168882787709529585999159985498841174708828013875378620155321258428541589303183150479445471214785626201050790834385355089704324982412811443905826069442082008942175449565717364619454472718319747009575810896136593041345039104038615421942774047328554092684419503536248099884880447860673505341784724488731634449213163640936236964722278095421327003077245852233138755183737390056299576930123007015817793746580537560764894392175015954110406686239677754087153022509568231394850877127772061524381510045268817936739982617206456734730321656137465530969221544745621398603302547592282335490424178389046889137914080074657017155087700176636268607744590490766930979144914707405044780262516074581558639115660110148023350529902700746153600671726377550336453604681488364221299292942338735105684050381800859561963045188546289612880049464030325589853654714583211629334197288340610413390918483159954026705908636221623489812268383861874575770326857011773573200284827947694240056023873495786252842743424186210494538996619201676486294405552509857691176197942927830145615870430379009944585823784091872165520072614857052162118776545482318367125302618287433618158971842514010464652121667837209344080154738254859746205611707958205181750944176834877029188484539837666321338558766423424068328510665036876479726671213555465854503312254275351914495534456459012087550313342605426073097728605688092381002360947767400953496647435349841337361373550652425021876440403431910454582744273670529610245760884946866506425759087146779451820531011412540922920536552568101871130930876015699818806557057595142329202671366433591559018082708621239263896793635780571030828523318688791579253986945117309107419179021734088073327120888468546555847233155032939432988227000270249436702985792447802779037023373131286897718685377937204765997623166463454286658753814553974000523803589283848075667720396783861310705710755881656118647990694289345884633739836471956087309995065580852820792491823585399730445292552821525279366602695160378395671916117168547723340409101918456766736667179365233254990110867253331079949534514746502466889693823221569619193054824163552486990335404725903155681001282003002355002366833155028818303140897894618659571807432981216197342429832774666048164996415857877884908303211212336237663651683011973744383777671711086117889870764934208516091872082346964346070943887419261226167427324706130755280823880402234473248801458855315159108690190401485024391472024370066623906176664211407598336912956534007719730091913240856710533967299240247224943646669167184846563676088304064572357839496472294652444167291569479667450148137770253321012129826758364380611715708196838385574182521166710744666131581875158337658900507429379220115022409582220602130617197970682033001050750292159842600060815715960502703242343733431470578895448499257231511004901465253704883440103085993701558717387987648996094489257745990642374513112660383050627195871537450756088332506065336408682547248152381169980241208494636360406770368306670861994880752235725436332248934996812955870805246414591174834494678320524401232402939396999192031470326716708529704287140614371099964082272653978463423814419974838052718944175014217421461941812848601528872065330473920266303914070643379797436064889372704710163621013503279645669707936423073617305693225481989673395267620413089379025888591189605903544682406147340140241127992371280979162327366413709662035681318753090042389527396474343717753598907900315911927126373778968607133246677447232424312410323269195231693975128288944801004022930846545109609690886830656715737540441156385034788335998983655450546651725114202069892822355048595712104697415689905492220941915103264304047050573680178218917110282426423488583491497450962050246877275275817166071695568223135834168486989687041298726047264181626776711211995127617615927320214292446092976535750023219081347144313562739850153181558952719111365718340919080706419893501138906019113549467823254884956613305450839682166161094998685599275411995031961532127632977280087305497663715670587299879093718186635785906837962407967269879516506575507907456484768587346742264463035899628380880689795941345728281290744346985729645719696934144436242324070898551669527724634618812440123183926801466225574304564997624167909426897729601540540161225833060105524010759813593911058869216721057806793658380036425338903011854387607387120616591562063308724937476572807569513466574841059641769209519072015530806457142902455740142996228585773846168139309639635978168839195694881131040264068222636643597443486944271400998067197500689481115926380851293041213438382972862546359588347551418829221380769350625723245047688188951801043992884014338358026784145524901668149416321279701537553808270972298583615088803849119674157198622947867980958288104161776546539235233697292443789122880716652577873659301351975537734744851724455723938956900956847676236543069643137646981472214454090762174290265576068897423889914857082053263858636345946055639817736943050953432602059090133883764605043674711451054280640429387481352199940294883745217409687486710446912553411409846162206241106841210602388669532413754824501387507497844081117736002214712243839910085942945567823244937567672978539696322367329376390661705238830635786565631167979307274286880687953538344129946293187649384491947009960019207960152060945183109808334768443135487736439452136439904371696094422698808061384013592235894476846776882446772880582333740975566340918805802006699365896422434344694011696930626291839760250207841090814622943544457222166600368854396720278791170549059878668542435334809484238828349117568306374247327494372739325786247963408209873815145973936241801345255476618126612647769262927643819064054884757975856482992753993220444808120661553687396216951598508888565412740082019014930895996773945596605192407332849348846038530406330116525643523129554892206450442031177241290517954280171201716516263667471053142105835893246729915169685332330837373501383521265051373019994241165061333596128081203700136984525956793864956770586821289754410952332841717124300027480931815563556604687096653842248871953241346050855572549423314674873798002929539216172969674219360554500550332231620615016122028722385783390946365234245014083435595641725249317964830344754702626565280960095561020001552608014288056535986328787566118858340682544013706458906593489837836795698029515684421124777115985928080922425130909632535344578717996980276851422438635213757091545104994433723241655513746083748163468044271184864610973350999624184505544150460011635355015263254775062640081966660960965932273769073079976636816342755853377806789041546243864682582437049838170377108639422815678620960446344708176832632910943388485995641476380075692639099947553589587835571554960060249403151294214518989724809887558556275067582645308338179060916225966587798456440078162101906266467243255076104228827229300230150000686887442985913320001532272056850756235762632184155331398604789231054223387290876045834094303074012888860322325953182256287082615982693164298790308626678376470112093894480523037357274186529836426082753658713603837627509462481943016334867957992602465073760065186533905658825357426759843136033005159778194746131452742244564378491270433379709670396548582077439015304743438774236429187820018093268822416744477513459350809545196180166112591235144782775224436893770793865797801608741416093661908978353911543773722133896642000335343694445155225011193585923362706444060256909917287825331425841182188354085912619629653969380214429964639260375156876748833939212160436946083356640073774483832622276417687345192728277315493807020072835778146688952493508579335033110483330725982979782406165969606149955267034268698052303092077769978146776320348621927957091953736489927724516822149152794878028527827534574072762981583440138767113818788915800665380564657757862339840272376230919962240288269256910238014399393799516268802527731813770904254919543512831875922774081306253296115147401380315737291076645943085799438019477530966195102728038622276743361345023429518027449272049024557249294487700521375125865176223578791391608948828829761847633013371486279284801763738544738482662872050415246401490598485389232956206267903254576833130262235402924743323988847979100311633608981213634823526295326562761053757598255522544300348611287733193413500919720049434549204447721402212187660390925652519573370341647643922853099951701224922001175322664091784962430208288833428980516871995571820026454870635434587248434086277389112930402618978401560286561967723683047215858554353535243845056348501563469631723077116290175396421443961641401975868766769494622331164648949343449644733153742300740589951269505338119032508166411174128320180839860790605537867039977979282035482512265740377080123413044904188676898051089049052740706355454130955143003663978765873507441684999119651314395306237611379894204744184959844723449764876315232147404019833883924562667522372373380275373688017950128008496691780604834933347962898716561731889773679139423846619096763377628067511463016778636637260408007807881661328211814195445186377550212457840749300126580181469602821767978323497304841061564064178371839395606293368714488295946221137120153997794666697675246695897500253170869971460489282840306787711219803849322733422366560017005334425803413226474194396246701283360678600737237840381813688324169925483270598514552172544602463800000317375224397807029526391926032513856265070344676574203571278839450934487957146802033445577361558551533144376460309556821988909360216906003395642897514953836726629247579489900327383658100896109933892169951083527157576892059477453851329023145733992541000890239767082687687146823624706043699692750473181897731838869184436077923212245957179437611460319101919448646966154244282088318087462840289520454056876900002311820728213369695503774344252862453899576366417329581501869469884665111479497247000807908354475844558233945278700727556549342962216034387090775025441049513060736122849971877636021217620080600444465772931589471131506619872427592298761495319515535240465698007110097462243133705877115637380798354445123000869183582788326369122140672162556396770952448771802890547113939788849040839786225614993764469798615608311733675636197575261560784813216423178104434283373369670070322717294525347138934178182848600007546893479585099353546772948300139729863596123412405034550492117732225217998747921852928344090434707303388269806821794995281634443556150525175885808790478649120704439194492907725042989522574187527710149043332411090555309531925806029678610043589294582263579035324233606656826065146551541048718249958329558024338489873097933156842379618620885599232870812657006600705026234593955425720904366481199203375279014931822292042585787548313801041067190333672327036237205426826133749269715475743673929128195965499873918652175910595572796534252757000638856940172485706794212118588254061609150568512386951176837382833522538297532039230144960729146234887623644609908849587105996446232067766233791793886950987546225849171667128568988540044052412975473739502765807170490510459637866620580859804503190112464558836179528921915717970546138842064179412596261214435860427472856958772999978108538325662514582029759389055480855391642114957150741048899052570680308306633154670742294772823109022166915031300750665524549725164482576076609660260386834425755747057654871672401305987536448075700130515138678974977727580141225942452958044095739793321352251872110929328107723447680709707521962626763082720862018217453345026834923249343959841171338230667040109789828410381508669913700922053207009617090642014203464133577894391108755234248717147188080422657107682298654431670843519109738605215456456300379007083068934606188950178270498263698785177178940669027970559432537588120372216915437743755409825278112886707009709009688859793670210709372060383739377967196225989594757538052016101963595752430340766393880239905034806413780902633613892405650449891679729964380232400204557545552032217284291289100888075988305300397148758716055323671619583905578746978266268054046669077269378314924363569000275819973336953769208464024318740466455167672626928469171569509757616425899392826422144901188645727041707362076040267478987235811883105809530242369257112816942104550262330959644617000985969916497895060999419344452720231762163657379863351214486799199120794849433174839223387555657205534414321112193912650726321790189919440963122229491619114908828834569517473680392721016181937643507155641831033487922678130743809153367181151547540342726692943331955129971048066513353291390855860920382323702512963234552619839576266831888687628970244156196635818339211226345778813800091723196056130124149340198949399530033745032419202203977513273227048879336348132112970364561682321060445512005800222611286583017593639807845068046149290310023264530834208316982448091177727861873926102214839000694179562679590102871878592062768173879177272578842839633489209724821411772969132411907639522669072077343727850213690336885304505950082595612535112712737821913661411383308813089240357914231114520896851657813927386568948919996941312558107735500467680500015799352548632749264795457902628156139629165581069334469906826808317453603971729558673814291485379512698517222036547477867882519823096094345947816428690527167424020993048319704527710099685387667412066066093667009887844872952479018758063698575533536091465728124871426153354066058687055094329571710118001474031804440558242722174032372204457968722676357158942766453775675416754978227704778315741703718863831039367993199088135902338082169373360247870300593751642483676218246757898025640651390295631417286052521227949987021190681836066983672208968837951493796655008670537999105410618275604921030879019933026995518816787771706772626353455632427513356711876832670755027947747444135151627297394194112329294421417272813386702936827638929516066291665809089105189454895508820910902523830244820965194557404762181117586278809828864358026747754653634155485845285414694943465992786082954524194247635497021843027209356178284817546828105641941676345320855311671857621986863636205142451613881533904800316691182678101733650136590048133733760194717886262618296875509574825986976644472244432572354041445444287181374073905416065323640454858931704865889499044733406719698982810731065831387092764135325300786360765510181037060103434129552304442892431605255663938271380927583319105985291982033945146961031141440249742328722408220284374272533387655830121558087843741033730883330495367510342294419534395244690948648038508547180403390185357783358756373721596965511376597126944693365614976553235200746250338223272000762390861232561293150054161479017785316357118278186824422404791398808364465217465960860666446628374326036367854530182332106619311806023683628196176506386301083951409936109504729281732178625730593182291477174841442746562928649705310041511329034253097240884094214974717273473535985840622967133431429635576587896023229970506248729803311844512023899637063473355848063258304959969690230430045227770114157634265401764875673188389942673005907399037958696609150395047395797520812843319438203911225871547633458971561177737206189109801149890887509064090518828171970890105546100193197942511304290356612558953038132391082758254247419189045682082645561011074533578832960817728579707066653871091628760358414603286374016232922933148166685355913795031311492661942662118687356612551268431897669626137964394882376616452084780562697718302085758886125779291222952609626822345302029845273894129268617987453460110063500039929320866864491595320063311238417797877250446538831038032501920633848104048448739080061738946351295678987618535246500501719276998072775808999455781244983566278951727183870663083088100144447769814264714233272338345005635621828997601116301629825266912500942169752131846343773577188059016431699375950154368904826368810465493941389045376764293981522208466875377975770498970509061367913998875285602127314844931639183841448972496479927050569645328340509166637391539302962170598386951881582657998741160307537002410548514789812620536377234036156646690256083776468472115744857211926093911907821043464143541845237644632209248508196858858092076387509335202251342367681141721459252181723950417807221200811883002445589800134052512001688752935150923127304688664301019961951020839689725803760089694644908469548478485610052027228103559922335680189700615487345895606349426190483590906526255215500463299709321544675209787780440724605710680992859474067370921131246355061393625856335081092369925696545350399862321546953181164835722448643641768061159684469159618627721915819372830977486504529145325649831719442602887698144048749889540338362940571519628041709737405398115967418908138138481392510479218259612778259862840972061438375667875098992973416279494526806169227748765871312020642467261522211810768032445216977104576757341307866242554850114493284750024351694585252065835562219423231218675096661513821026451079312076222919120866573705564837706196410941619107369330336430765458687976224739955011243449094401229105548109947007160445363554094718221738132069675533409798754111119798297291021155933795275144265428524202755884618840224655662524689969966955438323630420903122270013334943927627139724528038303203724520461074490110979577971384383046656261062935656108846656280072763029889622112082199658656257190578936860982948529505274362258465899793294849946016809831771458314617320558152949253636202482467095012993249670594103114136100643958753368251268253474192768034999394867920350366773741333411750120864242595289505357001084734986994847425807249551452532834049184516966843073835323045762641219599406007208350312310478136605537460444037937556393571470702060801511361559478101181160297763225361320891978763892566101627555762462881602837723130498857822462997384525106522349169921294415905761950540263450167775607625948461945849425751590741837859576453393360851802600887800604303945936172049914366737741336943488612548747196882752839801397762145014487960845989388239953128179349159633263648132191436754404514207610947920380700714756638441367891089717006084039055333075371577968224081477763348045718281131059966275339778710963816923772736476543036660106295170657553362214936920543981154002819345805697016261058342629170913972372097025083477972251071355805171879730489640607193099040428430540118390193146830918583082883633872515450627835123346630687577029351410815061856655062422189562491083451854367293674263409437741751265294222240827491673239095400181421297121008136273825965971061248131359101768072570728501518210760592227529127673650297875007736534718495016505195703919704414106292125987832469068239701848719652609076657630214961806439862216654949549747504054043016000343191594957526756312966951343295869534175449444656425355733810673671801279572761066190608674852456987565463913725020029383718037185417688569081630746370819846664797328619566469253553384040217441342138801010177406216404834394115907357440911574170556365261340358776490638410281224129415751143782103544719856468037461516157385215114004144143223543560347146018357200763885636567743967165017346811078570347650469158107068775040365899322697111985779892648205014332938967020069326509328873708072079693264648278444011107831824046874730381279147755863907902110237163199349555940701456018127265392324751090500538149757948666248022293574744298162379084328347566079012232121392085591790025719087656753212780471012117406366383190851172967205346578460143270108488530183263342534450030830361283204187219399138690109042604566704417597298310674525253884509301778254373682741067064263677133991980827709484352356867450216430483927851252955389381110500206986701397808177792252688841984279639534523311758975752916986476909576471028239407757158243370417043978878488232093397558183526265807556541819018727714131329057883754486304976986134010486528204446176627930169685831317009169505929147922448517690661611453690952206962261594430233574361681875782731111079525233897568149470759627696200465876463541548575217293196331090115041061744023478191844603685950915507369316103755759064525728327754380472799742652074493071290086400031924004004965599202733778221315414439483556119426118029602167018140711756799809731831786815130783674445120984446206013940530449669599513446961329778949389455837796273205334428445282554187013387447077973324521240866381674509459461684552897930434265963944309844898392060426995114355449743692874765544260659874339003712000937544490992432079539540536774002358171731651704451115713792819692747116762997518319985060505780700635088154769851911522759843686348225912111454603062034924526546529043320758381657320278814357764623734794017121820417101577273791224196481529426876404103035786928178863189726626895613192540890615172393396560245280420856839662741343974767475074374115440388113852494552153255535584456064547923020095468552098573916705073502463207033086986822569120287048851946421849430937211754559464967752884350652605317871333639468590116550002339241863930453232720932960705711101656445334546828702802817063429161124313258202847907148007624389323213257625445084259569543225774616495130399738030324075223381696982646593574610618662824754353105203273569367684255608640977205004660880596460885739966555530588541178832373563416047303983872877500560973225397546098295909874406514864801863516233355074637064545777578783375926038609672677852806393464982926391249791575576718246384610415577401183712796666211820545982382964137751352133372442010979818140091678531250268373419184055826744054297869943088521194953688126970845575336015781790474969766611831664409460385968837577187949920131819043632264516219272961366468557182015785965777299800061740699239106077554496705125266437365631856221329420973251815304053927890413245389676969625398347468757480086406685446804375721686000012791250812411296911863141924550020341721046777272635898413157364433287679008180122527933735538835882152814903788636304551444410288428570414923331345307045967121405268634132025065708393141686237909004995171742100034372930183468243538849624824071391074517753175944710326526811544757368521848233902605409817555309648588822336503713284991906522640786271690444425347612160506289860153586558091774460452175909725171411791305486011476896130322199414100343984360344666216487243189611852662244397327264515145368657391994624381138080588339890284287695422562791565404794885438617685932976279578890952104833809735734253282325809679551199544007602735514888964603604984163747217821234279133251070256178808426756439114510898812187728683950737760519635171104774215726451053593344810434130411704249654755343320387391253836855606033033618551845502817250892768990297382015802938499202827806336954077740130294333042578088476838656832789940376460496605047796276920372889892773018715827995075314990198054750999543282057540273611797361362710077699549074462017965811924401157999329102155944977814707616271789240619269758699353971163820150711416900726800494372081392644131723932264014565694293299362914942505218070223914548065588094604924745132142218494540397483568182951689772005148791740520450298493416823898878837304009029824458323139275565108567987450937128928488686063314819794073025973491002924989639581181575481914577643542199399369876552391292673974686065550599472412779157635803754017278982686475925969860941200444538082493433681017897949936343823435727150719734235432896562437440763851047556113548248907026715584336274818001330243296965472324162003549847185674829000291608312497490388192514150760438640130222595366300307968903801282501241540661889348652039818711377951301622928695042290571557317628589783991870575742048688079672437032257579582036695741786137164046278833277011654647792399792183664554081757223525290826835401780395731284820160358054720060113709083530275254547847032344675391645644736090455096368837351750409989233053132820424309450369488967381577063815737757736912758646695161316514589996774299483869417024878706456297778461005472015046612278048158696443300465813901510721244445093332633952778058006489527571077199713432905510327675600095796324124904848032650471389089662683419203045598741545387537527972301875504498583726216216459602446803933879180310609103265273660464039986266636566467861507767762602284363071364808222074975881640568357323095419461860297066374314882992103260603148037544569261122179343869501977599293090905930602519354405013958242297965880585168094806243118571393779489682126761769625104048269419840526903044344974046674326169922275405747111466694557695827101406318571698039885603414065649361451810787825221336201572920505292755644649537340553558718272509108001982710752990598478395072362248172667535882690527053819735216505678593671287015989773370333185038932781042414933975716706343316278465630670761271985899098231196156070522401404676897074943685688727127773939491629268571936106362046839341135833561650184700233945991099516525556607338725151883021327361202596089255702930804794194764489173516379775381183612910578499217527384504146632622398537657846726611670798443534284604976531227704042870063525196784512264494005401765899736064121782182356999851265411633316105443918239334779920814377924820723930880124326280696334537664606193945925204300991396170875052347031765864107875649760522224988226653375742004423881701487935265259545940471095917780939134866316056771246265953213567723819705447807241446187233306755400449473567165034623456389035352988651737064811592795217586259300141779891716734323187813601983404074586089238212783972627393636537728477929852083293506223428219085372212079023038207254175973861599972370616569295430691052717777335476383908508607210117925492232783882560192799370987907930753943067155175491101284176354960235552196079085364767967254974833260173148102120612178042830922348534730372633664359224600427415985846875682433414182064147874654476719018716327330247368730462287904162776759192790858760257163985296644317663689371824130919770633038308519445231549136415668537511672087824055896664404348281768250446112173955414357336179741808521869571014092854304628704631267527025030304611166320406644767650104437020054466152095555817524144108892981475071178577694144283968370588444521504395253553196897589566873776113637429811380313466534385337421800351148524755390443542641411393387109600481493688188538211255096161355199634616002370066577672506742579436186629588937162805016555199785456064982717648055380324436912110968408440883106286436260237363759451392836489170670842828532724166788636738747242639130334827417802492508099227096518685692896226050031953449482211564763721270755435037332139911211918943431847163852893908152214538869815771530855679015106913641103752896013794200491901353112176589102673320991853800102102840904212862202471092001358907197966418247431109801048068139126836867620227168419096262894890217606151198484045746394518830447220935975771847007107675837069524940588269448533960937082268957854874272880735173125480137254089971567455704803351960166896495321430906366697664995546324298663928156274959721110284953634496432623603272558867604983752837259949471973433395024369280618332340691010797223443169265071704739398149091032400456636081697149563591779292076950043088665665738425894740717844338894043356341144508504394094098206944261961495567382899115094914990017536086696172805663550287448547396578619858480139839147908504929617676027080103421088898261860994686981365727996616154015755927166934316753184511438447985708795814309675988192292000588505449165212991825293507381004624093224639354309225166463986756555657382661598050002747280797918857561580377588941542025220457343214758180972311569367598990670634242410390474645331727391547754484286041638758015882148985531081973573964862342566724085444143620310871128123237302037777980662321546950666709613101659131643010268985178676063537871335309922576488176724735903764059727739791422269200374737909856851584138638884735874265008807257212225545138258091545057998710716379315845149807360840271506091885889506028347982874729539998642812578126638475041968391362090792148090599115011469618309769993553773856928405107506071284396072856938845922813342967472460691463760833206528030896880784342832993576161519990709018844219074246561238404147058858359348720740903071143601525820590602710918984575720959574519145966604811085041654858793766219287699549591231627489557798404674127680106137257840560326121620661543310580108776574267878453725002637967103688133049737573482695949075916565914317326826357299264507011290415239002929958484266462870484894040109378545880155033352257124203123205918359839082310262738960641604049850766537506957826712066598627215572396368542398986665751734030899450074284155881114853984994816933825423783598621384392612631055895340650548648111837706199921741697219148582695396801456864487755278652623757971230639073926643948341174844926766115435524844119598019084352775418963838424976200648693253593300884622003581926185180438330062237600318083069692669661011832749167597997590420794438369617546993895983274895642037246924747235606720788487070143301278759547627616552116546751977565211976666413238243368068349272513023057824887209635843047820438051865406293837899021508328561440491291104927632068744471211503159346257636579129002022817382166625675889065757683733736033708976119322310512997679023430400738062767622434940034108664919731895874900744422491182779581507586293636631292657493503223539377371056176698988410024162195873485821667380930061221894258376629433882361267232369705806713981297584889721781882446507838198877989249991531737805277474876154733050855727012748883465566201518850029344982869506754429299632124651507762165437867435780031003720674769551440229505235051241509260695765334351442444715232732813553584869525156504786178455139216330309344759785867987321135156427854468730875521124467538692216158422898371559790482871698876435790609399870112062304368321977193627890336021364472735884577397434581642237723573296984638069840155241358572898468015529751282847816984327315225249364112000383496204552232921707178318598889422187665965068971190096750374990050553339432492399913748037596765388124805509834477038286447801326284282876360027253303534345124833501958275983861102785639559281614593980902324974467347445441602049255273919566075953325979543116348051551844396232461404534033092006233102899915643973119646521437460801764677429292109635296123038234958634248991269314210438929748735708200341947378795103630564195122299383283146368687426342840849434285421897288579355930916482282854168647985410415853134157268583957396731403569352132349971551425984644739002447561671909742262101705069976467439315052345375106052911177589461158693323402708353822234951395707349625487918496019646996226787743700365661707351312446705561481406323932900950457640130066664520634587427345649680209686618035088451454817936021425450249591659761725915081267764092820542322652390175517094698553768481549027677229918005452769179103020502111455444369457714040089047716234374289232656272251275054420857060549710037507014012981484157341577031990184901090792751079109133846709013250611108526066779014442412379810590807229538189016920275589952504380257640158767628406090933249410203137969987011634826596719917752608212034199368533775056002262014377841310548907927114611937118126522907764493795430324540004487778789679825973146424165091325206315466762084152225305249385946739349500288455865034450520369766722622934998496934156385555718251943785821350954807014704200064600768298842697743945025032859309208922691041530434720617810411442561387400457248951730254242838915826995643161477506133489439133065642823351320072911230313805438501883431227891461439887675566697712168196032173466381333688148659289696276390909253077258401568188467398056125177952346175775207602636012534235669344978614119293229155063075472024235713058761746869905408939412659123298914718177412995814830539644843649789947637288786079795334587610231508147014121128773895835297438673942999860677301832618924185366445631370690971047147351638018306798745105847424456712791745552967226227201965162041171190111691635046069967526834932688204031583345122896757289455991489526887916620863306121071037419238400870812152480975108204360952207087263400304805874797964528734333563003542094695694088663540759190504026186393602143985129120309305291341903833688528003887756670955826398768983457887560824501873133995111357524203556279145941615472401689789167629623277190048372630104438293469820328384778400685368965307963398249591801335140250276172973251127946324590701300710706607977694219952948414448172472531937919828531784208037063543592254372208349943680076927823081719650581339314567943343407019682912544921338994091316493405487044168090977801396702030712878919292401497843040378963211283989586715491523880924413552667270280666636526285001518482675317603252633736401193746945724341948558644620096020180809489234213679034614697483644325341741149621823199440905246988154096364308218662142339243430749780725506871570280183341360954531183535693137515035108716856027428267525462938907926115705133922670582919064677272293978103686049961500212500095796229104513932258795564147936564889377630685531257566100776081962453477360665191951793186430264206288105218097123186321677668509196408680312949150018135634221039249082418711289118206435519351796222124185209703246124812721874213850655952150823211863860421208464718633081661910332910184076146506822459552292148908641841824853730555917802649351315919680288694987639608904512640419944770797903068281686557361648480868783625193354833384447247518887530200408689935631137469381920193915152955823119042655065221031768002920907894979969755647784412320108519424114612436210618354624667169761525231269465300077958738027420521004660204019077491917759904393559320090220560319261639444081553217709836299726750160188306452073591627830741843504581252838364937572721056129045203818294480035513930054307302607681567583004407801746670887897618951981124050830345776495564338324223763002210635096309940299877351883721032890000067363153295067394223635428829977882820187974892806457908886713963650894500127340553202461903001284638755971194129511279229806846052806584796518887293459519238653517258042779740476083744120698064353978296415640635376364639562215216471272310667906503860487016212997592718411794854313802249611234071560132999183760684211650517674068259056433256150468921864662592661602279023986750259940572221669434272978095317203880158902725375113635636633053397464649293273522141602388470603704805121257004785350334890311495567756615609829150665813574480521618701414790481072488114402262661224696701314321453390423089459069071148544192464440859629318700220946008078542954386797310513343745041731482030843896303527673107843229207056176187837170699970710966739494492621642441696751386913861138787866428371201360538818109015273606121132557128586611962854503151410008758051095401434197992034802295486579406757562742044362803156406377076426439947959961620991994419428882303795741344253016067754795768802465524263019526657824785357077394813828610813148732351534256398754952881824379090354498227175705982034498600796254788029222431142416748677880956015114809043168694310314884996833220858994359129430772813607135026899466110713688398888234775726409093327445375281981076318959233744463897639259997446120835594788743082474837959004584370716688520190210025542369304431831973176082892941595755945114709043761757592459120909157404459637093077102581810458648766559001600716469623104670746491465884003315553878596822779219592073441613395910847774216719724851628067866157576537353323309662824480155246614374647374781857683856905030816289313032242225479874180360180770427283921934688041969376273824115175475326249819312342314983585099335662793881070634720470295637206465450698720260347053123958345973166153099673417864868378686552765052079583869430259108007067016574941563590928131300811842738359063659666807544900047503936279365515221014046369366965427736138084213343684971448751266088354019744721676892072986176458490642517727828729187050431152642250952320906830597225808255976912609927612148824184541930231160087950512752333342939523875271479108049693035755257400423930577724723502585715608227556639856664650052164663444598189072731427965718512705428842464141724022239897254981496452009978544291368025065465938826954486004085948133900783260597443739795198466010022691905860003524159968468121122128921169331943073359745856558520151385630923010381161777051745542011653898095620276433441382606350600686648068855780656875709901567552949208780830551830547038172030091496533280729702711973237638941678609471863081771698118933156098824499158044591296148528058313659732591615846917888313542582268849807291017960307812797288886862759184936068130478393383366185934990408383805795399500178707206248483760872556954687009337819247185261396590865283097793878850999039362357266220110580052664371081991273627565542343356285271908482654090776850238245152893051007640541908239001505389784561332888976252040066742257307088667044707461282257713641911922900471887659397544427829561217458688905838754146162900468718659632284871495179502996779285089875671705370352980889520918028264347180167575377748929593459657200548239990759309638376633879570504599642617075786362463673700981346236212265637963866681679467410617963924265134623839292281587075325147483017835450646540483535329440354455897990103263758833413144460775446863018697597214269706750414600177749298450092268185201405061697366677204016134615833833867397143239591082115720269316952365482606724120615309666774947503526786326597482999919611476873089893891201771889916794352074359732748437113895379227369559090828990760721323543120106207411986052370625317651674478120541211707197366350207360550242611796433141529260218997590584836997358937914495595565130946626883746658061875292044682887521701118551925503975729132082329571913753126221817104593742358524362673572548728042418196764130392050022148307160268891846027492949191320900884314659440594762402312893803455508763464018910247869842185998695430759403769306291421099161175404123168465979424955393720195381241096848455358302752247262136238914989169443592468950242784501099177805960397429012048055765465067355292192449637691463378895823099962213909424674197190867926657550699132336652390733272249652488233808397054729617154383350026137431005330970380671760738504130002201884381837111862337017827380801919862425766517971456864672327065939152638113265741087625510128421620055437323927110346103451618541860594818702696692957031829931572153077667032165351316660394709403721055610394349702889246459561854124331496829043160293481909418624715876666044208402653882281249014119828292402940056529132266555921417927812113955397337928838677796675386421430057165242145436737683649789698601621543747917663465315674228422971654244225030841902225344055866145087595542999222349795588771537030437704775860782019716111332682077209783807057871368926006694106402026772939584543539933330426676649021917339374888105256134100221559619641800949737243576978532868714470193589890311081625533917293693330980413603358758102262679385827928380897438824538284824261159378460840979971087674370749196455634802973076356261690095819297775480589465530267966766754799171914180710456423694474708860673274138990375188295147514797434977925770302623533339424361068676276345645221587875055826297756977344604262217877082436219701018284026860962426635508872836370064310581113921083581326644635688293684934216274807113264382029804805169243582490076513875220293893017878331868610634695042681328985957376938134013810069200928644964594013054818648154533981966345644650311183765908636222431162073550159924169027588976501954296551012023511787980451181356413302570542898550192518488078007910691974266033490609269733010481289846026941362568370222430515629654519348167987938360809511799576486952684522450060554915632799593081904052169264140340684970144794236195477849422552583188629634942140451253873584563100993796047733795775729636037058356559764663246228359100389522584874414956080352444011627315568318766821374166898334895967128273771770401112352760974115345636224679145631311269546783603283003726314255232128206455021057378885600732242321870865754336356839535126250791470489094106582844987120318155604825458994053115589151787258289365125218800570099314748151174727108476398702324724937684453585404281413671630158492782081062585565399875808184675309800208996518938201455087510370808262889789641985092020742997889881698890344438118650265874329622072834314211472099869247336483602537742573773934728304409211391935433325062526548169762436473733022244983135439764246479040006211254877589199818066356147086475225491417069310695674131409084396273492291530545346899560803614768671421209206696835954914371722833366766418233148239912319861823273332456061247667883052755163913605452398144977134165096338963136266097389688565782874603769426401078980429995798400205762410921095006065923810370345597216881292630927375289696157115532437590404434561248196210025938848206013402543398846453886213196756779708135241638448252465389352575139429799415102527707675534844585480557961671690805338876239071606518248689429745134969480353683128747227083324212842738666119411673011983942253696625943755109657004151014146319883620911605792650788157976549999079031133004189843412637606860002292830282287151051784407121183988832169458492060853696763485232060502351867054588123428186713356286524817463101859714095112939468380645400441312608715473089373548657451597457569667204336322725955955443526390015580833815295503995961201567998302320644987417960031594811073276886030877419749949291849975896546899967065819755628945290854169920800554193888450649387532150224678934000892702847392390418974772540971848724783445237208450183684782861270224708698290628708495653318925258938094168486649905867597685522071071695353063038891032723644955979898656347618754587747659875971024434837510208644354264720145538917809681930546183898002292453676748930528458562869139442065466154173637489291106414208858306705395455835851112145775500838896870530355774231395420113836072444960984010725149184367930457363349342675456960873874349671299700016900283166810592194015379226004205273198096411372885517498659552645690992450612271830756616157661530086939464347289428893281753755057646923402334071987713117939495818417235558653981733773162774883975957823979015969787632975158421421847642686407931985370063779126698684598952362527858413472589632620911559616890505480195405681050422975385595755955035693530674799983910495299902991367952899983267065449694399174443300773737633342457120823622126061532295134317051064224049760087503310602884721910930611734320960172711274912910656011307212347892460472445060496441336844062995285610498863763860038784760827464153302450134726935857245068374721148702166980193707160354624603918195569952094630263051793425808596297766438624766687603044748145384669818291174875462531902658486347803080043654652749090003678169248794571491298890467736296718156971980416167651320518900481382920967901479972861186893990359235017864983672463221424959567830122886868691145164050897467168677382704123975665668905276076445340321514443936181307169729845022517753038682841750465457525543741185762479784475851888514584069435399925965590519138205842794351611883572140121497332561497758861295553121110259221780036884788551376902141756807054914189581620366669629171719655330717959466991887824028579606566634839275563947608691649114968828336850865516178225971348059758376746160357959081730273081319713428620195007232623251994485649618484884203766719369638644783403494126620630926531324167260753806583751250228116771108437743265882360347630959605753341847655230341640808086407662429775630687763325338848422802766810335196708083802606757676870242814213822074951564008560535662970823819323293309981726486997434076043241089013989892011012535005316669000171730441897769126583045167908311110243440457241910872212473797608296022025133233734547197312744837823376232339304256540983568452594523409095605320697905934119726514891890584415846887753132069338983291710200260253837960438563635048312647184079264018188758207143222729050508738722391363626976163930881683485831137903011067116138626423780379271295154736741775352432691314168533229011551801166939183334381884000555482740540540477102293701997728816888334377639551303679530755860216772295993964480021964922374127511420271697516083800250077133575199730256057589792139232752195056566352096755519732919577090575830470541274605818073168573665928069328966309041499695039317664388325468343591290917976932098436581528384336592050326808431312420807217629505465560923164332728716608975195543722215273669183298458226687135745937667689836215165545889028994829486352960378852671308654389178616396281152703367518880492925836681236149217527563196680678697418028885651498588809880327631035517978730213876606271199837162661293281789599237296203337626440207373734857444256841419124485048700711555036963025359854943465909709596631112256505134684222662128335665117537201614969280476892457647535872729119694621647890678086167343237833551805966275077490273976408952765788320003128648877882527269707710956487438578527626919623462216242721104285424564592579503825405133366420110697501901133625256731243513871591461262708524789649171869207338815440724324362573197931015220861968312935695894911871615307030142476174622711706710588630624422457240743043878777423286963093664080708257187460831440152129470666093028816069066037914778405711583602213623313118892569239465293069052225207228257704101546481901694308316349370574644287023233150023625275962678892641811271335703620025994183168537921946915844574890332193922315535613179198015077758296714363176913606812162293934494048879228206086156309416729938560900717351530047614148608136325064819616911844085842523265250569465522398905650579399446759600397284183929082686559894007992738572988918778482425765654577900387868759568449192275719541512753318349355675766736802794433483552137433135837386813242725126691956419848026070498075288381749299436076270852660711585222115442526319639200460206472235826149541726363108962087253591684516546608945865319757001794226054499071170913527115198202371187318735274708169668135907697387186955884700881577070834055863863261814950621448934997469032536787592402203394187322312735424713669964328912868666243434099743211978719059605089631038109628927046928008496391310775850711149569769605590085506105727251642468094898288474829209508186735161157618718897552144124646431959798891802764149491704943624080120474807601069341759676182133031985399972047385071830767126058135232482060651155939194491206319926147845089660981700541314702994429875189225951426367439574621039814259024900314212358706870649670898370783865973364932733028646873712490727862829121894491083765509942516482612019657877720897403574895915801399318506238755545655557452278413944004136776772262400116789330636441868984509804629296240094211769952019999777359018746728994582364991967687792381911153435681707762829103043986025182132523942300363316324718571079129193760767499985410524840327001124781402328549936037909166521879716267756419486924522383453252402702874330771524824405655138499319613605205250888532064929088194404403881042018715322115052201202545629959895365482210644225653331906273944737186370040414577921710695428777717340400317602657500192642181474540873750812053351185968431719577050458152502508524623577911596418516838059324258268649829405398253414040104198172195664183019487132698338949324738271806231547462207039895978103256192196972666129510791626933314601068876870839026232822627706210351909335567517050884447102574581980030112933055875792042924305122219473150596518952248855511735669570864988734348292651430021561985509919324916856463123638663338031453650039926639839254651150599095544260606117329367781533078221022872818578224337539416817616153682624067226783465640082020816818235028081415380544246179189404334492399707618308966959142420141630796723984982529603007598300169804523787515537587019993372988388236547681588002030441827885226533104980585893295445506781140725501869592436750432309036336820842206666236105041564963275160859984881566857535194902314308668884579649936437379335989357502804524753384332740713667299142675198586345587219736709422988904039729595413508074431995215369984087390500196491291435046101563923866882314266786623117391799626633398156700239713512759477265980577409363918998043355115493147963264559018763837391691837239940204555985769566533276506985297731841572034262176284567669090131441748274670756251573674742778909074631581287369736253105838600028907686016634380614557979018426785486653197947218067557305465619106342079925422961667370322426411637295205924558579589005127665197259129050180690352983108889068839524729504878605746249815679123644893594350570599753399181374125341278402122096033322622525787899678193158468029566120722633742213322993371617687957109420025178904103162438326627358736737030566707957591373195061661569444348390480207579444917364629724939063612075940882750465495415461701483939558704064063545806842295484164009651859778814921574777470544559361218781980599413211709938765156265747823709565391470718302339964346268485866647849316849911957332784146350197641860425524086051322790893217415855636243032540563915962557535872323235262464509176829242783074933055290488012796204783924621443043920289212112221732477931614684531247050861535823560339760629488740478448579355651240623615433663938213259852025168316035731720949867611622232051586203465099304173773308938588490445805597589221363198988653841724237417888433224012413986571053661464557936065155016580321511956561924550253179667067769979020102061294920836822721164697648746881732667201248556029797263807145546345637218258848917614886950828913409801649096168741664282317308351069009016195746842311305709361400641562819864570083564919468442359579371077356870003134243537196418916553066910229500212788344993355635065813885749045804830655941345719443539486421661207419488618931261800949941370631825544185685551254076469679430830257473049250454067142766041610950131428304642931291682354295707185662302824141975398159967195873862628893147498395437091776941697925042732605078503902544564135522527333195817432986418315176188131129705121643071761641158879913863458048973029905785842143848526450861063157427431712263131654371887946012673203748033646146880335822913344890215457958771377099264030719435964586028427227864578930655681861118922533156970603548785048874410800248889415658351295649707398714286019177309527698844706311283695093532472055739382798972892861963025889091232935045231451864869604544305486794768706016324884493463903807226908257642546353418084257993348055455287670361747622657122467176803325243226545319730866733068150375133741713339735554310040932643734176859814840630963160495727196970731002050881205120644063249435866367362150047516059192632734464200226106720062463382210107110862721522579549986351673336984822943327484785544156568947363249254395197273024589014933885348863437403874601439158435268036325127719609700437103955316866642247023325747392573384035038432092042039165656040759667741123109849448024098904692525445759757596916111876140575498444808921052350974463678190188567536523830929817941319265533408626861716841013903098024516874069427808114952736348636044161528166807318688391945794270032200777990898157310165142717145677226799941187967778112805641043135995872536493168864827375002391451841859958085684521381165488116534321432121621866011983864769262776735492228554693178634615782462641551265572891700077665392082669231601200775975621633942638802744310412325370089989368665361630758554756647406075300304530474950373760432034396428030283227992471588319296167345709972214970672190557296377608322146545583687831319283887188712555137674330939878059227186743294045013252704744613475423332369872169684768870832169654882797807379684912987042634073493095104111489031455190178617299754546356598647738601754750509524192233843877010386173594010174541792602048608770308380712943678825796024689264905594449957189373967381362975574744196721006852310040778389451363993106646162481757290733340459723122321404352566038835239207388731926544334554937656408945567820235717580866237966155362782374409331039277372420091030905386243326820287128287674113327845441353374535015515257849830750866128082626612434360673366104271417417441097402115443779774914322184054335223093974928595982327029746247881863078015596112828879924641890998255498535406458573137628230759844844816018537443963768334842798294783832777102211688246125930122243400820802916440274747513081422023968130172618575683743502400190576803139504659526678706453113655469451818539718456063556183033553503601851011933687551048295525789683625666238036771350715188102834253764918830041566628459238288778808960535228365161804195420249967371876764419423452957605547132491080394150371639472814755958857212920380414371512015453554950641602376796630591668677266598947467489844821503906730814504260026369345628112897902613552329271314852671137714415748582419121916252251837068408219129614680679061130002632376432252495981229147464009508149498067144064218991494268391125268205406725742582612253341566251761456602627552243663390032747683138928553510037021037535747272455675052920897715626559693838919931510254887150339262176363962548658377445954133524774027786899969616929235276100396731668846311467428254736048090291724301824471214042839543584900504422560186907434858179930536818395114524419874086054820063994618003347025433037689903422613976302987878969396388871081025759374699348923794677158773221562024730727416923620411216261746831653056378969003625640854034956355045228374902604007793479312099742220752276927536037849891431412072711918224574635744426196391740795408811667671454990018051548916832105841775303084797923902073235624463328992953918140829053532611845039272680847490239286781286927275545607031952851574009467031171059355647154387957840603505681877993978803227568182347984810353863678658112059452594551192135659890020105715087948653287605413926249549156735743895794359830448734155473247178518536575655142752391141191748136819547591166430109228027076337558113893792948597957678587443794696188072483325549986053445294987554277187890469728575506933279709386894083766380807434086860928437221449560219073852889117783762786900308821496449383599190848890784697198243839994117899052746885194068068090451887403476982424976519623024980735579955878305974225606658373673587772200895857440950020905867066161680318836455438855965198605908097349854743738091910405101157887274523848607292270890539629921413580536801906919603682516667078571059925720416789132982696904606885965218900946801034107169934929238135447404952627638988273318516431269724811080488372519210564697300729134728584775376886290415213111175564627816513820779743899320089483538791192124506620700112623129148090712608930545863960528476383668300521450101529698698268869750334893375115467299569442447665908094367918180907979722321482130934322509658834657171077981302212958638581677325131484948138887262590476694090422392584480750135393726995949609811136004798227527855034550642676572138755558124481174218241975100126563835763609953256526849000310061354861713746018660552623112329515565997960527706863201767815528635262594028469679437489272693389013006786224396992452171073495370425614257997115281268060664482813073584364130101741955314462388117018419656085445836758159287853146612635085353149899387076146121017160734591565327129371222228100178658771327414925950355121170486780224039275225911438542172845148440614998544084910748762079361413503584438296672010623946407446616952629414022323411016851179565918591025794614797044430642492250879376270822884974128658195332414482370108116430967251536595761452092653645596824180675148709986878777036725951231008669833514999974319732850785414502036814900682484937343589608587021954995020509639174708142042917983349324950500690030851568154737027030714730896303168740262435725000260830710214528731866546207618432090885300987352603769670540413837775821028084700132859669784045083166572701058478604807636376239413653115340377011561642088830842766469853923655306512550623103186341360334794040768188702605313420205701719687717873543406184334700914733647081536057041151940470958191043641691935214713141189047575403746800554572103492722865020438688411256870358274541252082993068866504673964989278473655517242991659465856390819473517570062389316642263062573125733074479224081266287766253229860151042786485273855346347199323157985516999615037473487806715214226694316538635481762415250322761112182397791328201668883387634815193925247229423021763029072638028070528714957485042112135119589138245952985810511002055784516257519511091572140690890605329715588094837765134580098174529246638376306661459614419446465888598093277989966191096471808757016148099272991554328613418313833379412094356269004469199020521914999921282948042237673310711150477990302496026143141242839472335906429236379627216877524158570634784471618382310583978251042194695502320895445813398144796526807002746992410034337931349368669348873989603275389784913016095491418661392940986926132867182059001492626581505593464832188606171891485917495512018851102939464456269875175743126156271854289594755395241550775006591410325878839885960883549689878634820808782798306861320237147566533737504772207505865211113856002579669731716023499842845422126219751199911824695571575949716454912162796774678272061457818278519305834143495055474435809148437920974886267908501010187733543406345827708704837198757884815005967030628214193305686599035878503925067543567978120591115509414585119466109883312827247290223653191829820308208515128568493456029646274087849807543417322699881467798527954554717969765405276401949456957120887547134971789769024326789952229710585515293394438533171555881681350190662106964537192292674380496730709820129872725066966025676430183679486406506284256405033613469988879771075806895934289150888595602352651638330291856572439754506968361769279467223188030317528735063964720426807757592973511550489945416480671450806931703489264159872604991234793088879704182039318091413354666218093952392601989488192492640246960116975935708396295660381688051926037407931647865061896188724682683811390033475452260620458780563843456919014391998505643584210569272456115588770860419319831771582707761851932638973866466506159014152771473132584214472576589564167448400902245376491793869538680917456447067099123381461731982365596576760645614422285078172833388685152879461022166327569282929027597302980330801638884858217214468856255129570462322682209401912791254886407408141916520798091049264954914158662859142518976660117680458532290646706664051741167539254151467761196816928370612580033762193832136025969205222667841868489008024904807885026988239469646587847401505905900426918402219878925447398517725138111373093556441486515310374882990669569752358200651956431599535467213473587732356365537240670953738482517305951770620647264011759782674377368709134704068212314494158444451064176805462659941100178569735300847555405253738180481295516623865445318640036089274361643065020425104103144863230673025010048185759288186936547553100814148262773384775489044705365381963494406116492642621643823891100571586145148483313329107571834531946686687116013742634828332292326337112645857093829124337330008007939983159595013269302425039839819132616505648681703573666497880428743739012530328142235357481810003577579979906779368497554691514134098666546888134776550944477950561715755722576106251171382393024746557620376027518562499381357405806151988167018552727263347421069869237215970523180310468903806331910331197515330364543860239729525094413882406117144355869032347024466048581487479248769282250486774823576805166682241132491298295123834471918291207847947390136795784134813260434226669805841180690466023633353145869431538243457038422261312460496622664902081132691810090494313544977631806784731586589405049713063307062497630001261235856584345606017251911835485599223421494079025000134825301833184572439202171076913180599656490859509784220084270169733254533791163343337501164395882556522671564475355638310402556512576519020994619719294638373096125585116560522776331542063510812599746160659423104022187817494652504021425788767654292094004861253863364872832885745737574240858214864816301707651601753384977631971315640828077960374195166941611449414468238148109377236615441450305549852266272887153729936271771255260732583457950967312294512123062963673389278304348280261225387442152445731104753797579979464530840885065599361161617922330658708499390102556308138660034929016600588855974513495341203307283737546746087312625170119311037945134520916936177940831514012013710921449778022973124842058759888071569939014937521926559667256958100871638666974436553743542427239550195911169943816856422532259354765243077648893883472411482743818980274830325949451447065646335214514316114564488834645697627452934154062135180101491370796197814808865224320268464626058673181429146207298351013727182455549911619982236230900971803291803492897329375728020689386639552155165809606734057594401797355140397512906705755398454349708714759043084038667503174062191068623233671027088796817946719324387021332277116079448046280525558547042856647398625832455083659736853881908925643979767077230042115002238149064438151758450292167057059771336500279649873905338132306165913594271659563126403320690593773935281158343387596731000602224561265996428366206094037090897527117801866155615739404805315805093822437638546282271614505038090099595285552586620159417793917336706062990662891162945230848913259002630484774863511085615830024017871257266897546292196276969829979667679976711059568219707293272696123050492144386389298811522676363871288489777031737531050318920258225667047897871426363854372098162959388403801348103037968297805620784594648294477804520047200623265699945938206367030662248026473234634197965269905979007608032168815290862675685395534409452842909503186458421372492292473891620264704731946894975415629970171713886931399309459662425573509684540391244252689445976391082236513277247569591063990146031282446947359501179331623654040320548911861370450522449832030140688506101147053472192460959305022086267841197271140885697035922367167334476891658003654308444079492326070774803788005037685366345947088429911326847771750146550954983061932783621737861588651894831981287755566339167249930205861151036089141644839799219940142508587167223006190981994281000716111705193113409545212122695061851725645100403807098266224187608798668115467226657496222967145283027585852634215330237063735647822270062755718892148701609154660409434309063135875023781367193739382862264595184064365517903444608025012108773837450560763108028717160003024150510524182953236455467257126780064304904724356048406646300370677971953136207763568829620376192805612669248068208618669403617360031309937355000675645472129584455774439106722865608650129314785356352467022111061403040251331413620817971498132462082296781475994995242846699024660153770990109979097914036679936354639994363797795736888484673165974536108556650949744989790003889517897086762173134438631422697749189672297703858474882407126168654677179184193119005828884607018178118030410953322232926342652529927594027284039586360041191587102916039156882989510302788627518505791905564626408092160412280161719221926080123383913348333630348398009729606109321280905636075492877387075131125495744325563052801296344063008156889741946741732884464972901378627221140616383641651722274067349593307612935990406615977300277718986652198000468519251421067614915478148624287244894355238470457945081276063224415428636029564408710845669131202359150362808231609932902896320101864723559994191181872439419218682113795044871346477151987301735004008586327336043239678123727926987330408703193047314306642334275159670139723731145735559453880661100992416071427897619586909051445824197518631662558749369456209198648548017580884606810271032462053257308665432020679734253047482054359206569333307941189850565749691768057984147189921362719000369833322033147317568005982741503270888836431142143474717814704217472504427998994562866662407238262401187504069083820272633617409675049743457439938252525805063307761418250716884952633840176667992824459138798609388714908870719936567862638440203931782825094244025915729421942234236401911461096705609430687747503959571776377525588099495913126051241100447329717328621868647479524894411333445150947523565241924322093719568977886887607589309472101025892957384640480875899913227363706957793047550861713810179362873297082611763215232774095001201826259170049038414110685845239569508291332541615197652332577055563072418746935541767177857883236363073450964958001470407203841113362529900727877589849826489934452537572635311722516348328709501448536441730624275829145963602188165075359723910258336440886008661429512092903120864163100057985801742096438181257179832498394781193356687253272450840988256550658706948015519574419868455283004030308000538060037314752740504432395475860180759537479411788915413020513476875475172792269088518913555276624037549122392926121112664676259813844880312299950378867113890286248102630505075459046133074681198009529146527158620139016463488220184313997918161119625025738255811197340163993779093558365308583561725592321216751794744178026419530499196626706767064464928219235012079951652231171503209375129548376996059287209253215811246596000865941177472972957680185852384069747769014057326064876925463485217687631088532253470663113760778913148041566787272534899940716320077063680476114871925661697628260616364362796062883597033495759159921423679900303948016173827484766641354037582233912017639964905031060149737220239216303006771657462899041348523250159764701493001795139173622892811773299361616016465550213897100815017567055117049485366753168194526234694743127076419987210293193740390742345013851124146073965429636067735047581991298424418828725111773124023777873447455988155340247033275744621368865613311608880317277654092029732360291039260521504218933146724537159129012921878644770405635544113270769426446985696358879123705206759413186164861145057442138047689787291758234065369514353929093121678210259585528272554289378604655446119804495652426927756755868897795850972643902838057152614746026776525552113037519988416418285376372895791333536240541176935278613912744726502893259851977495902640948776917210019108885266377426257427374319657035247054165513435332649356435549570980687108012223691328574376816576205013357620387266542084952246135934710619565281435512168080190971541836602170644874184816774399142068591902300191097073416047531495459018637126800823853180224266323514217504468153815514680144218162354951186886807923806139660235057734745991120349755382349910387656411755263241443788515867235621955124227712594321599952270508411297008714084227889872372272483189582846388161610775548460657805686035166915365579681799858823389535167160427278779363958642831016812210369121119999242194677580632581692793325264627971378776010458910063891504005483313707674309693844318378900124225526241300084325542748586855622902635649705036119393791464785167465530221728064731394260419160689807394291787859826876702859729161452188132524803189400049104317797060086777741502104129262893810813784259326625247126514806094266538101928457620801599272062124660594424663042727634827586748941706761020886347967303876153567004131484502809897780673400542569219162483336244341750879602924105784602073855986656505186221943768617326444301911794437141868156013888438853002908714378128778605701131231404042208962796576396703760276355295238742947933105225743134040475463549241377863178292429555507428184529060814050718558750868069461177926340668150055107341915762274342619301381193632645220004646425379885700529981978170084179853625318282072909593872030022589283749769326092270641592487073045128111122197824800773918863460278806413909483853212649328483494213690181737994566957982751365387993250223265023314015811979981876318233692996229276778649421435429690783610983194652047711073615226484789282472620210347151871454789504469978089974510520350144581289298146759135581557322178196166695984330718883491563961916945154192182859960968852820099847863091823452168456992374003926952974164074913371421734544681062220779194835716751124286501143551228088534364358846491877011958893325383696473897836853238378517480680727838092991637356345462077646566354249587716730654833238764615604448533386904095324246894267352564598102299474898880641421818855959272770095563935264852969868173367413863514354077073979559345536333042981213543530930541110408045681492286328964349748979215308445776176377772337727014483885548197181082113339354192458296604881970629113115352281083083954373891661836779114966111852664705572272564296869962194656510177919933118929468835882718110803896648576778519563564150765029922388936616224071746607005462366418772764183058462701613870152769425991958336334427487648852103195648328351002210563417856339632858227689967484866266924871411677330726706699123760392698973272889888398527524656950659746186923742657758620770411786175765832114647670754465628026111788225992679357968249046619070665493645028436790723416435237430556579168140671066162727386643331149347146826708195171624221651662708227712955011008613448174471577439451472923160456442731947337559503243094358120387562900884586276475317760162051415765731952416679924000131166912039161654599977680707360119973930911765987983199991189882253074245074785068951925699176941902204050133954949519830342195617700163789783045746370551257225392535439601263181988024419130435477661947150074769852374809527470181775143741000554401053997081037176851207045904244370339957261644952176617446470249060971942852583631950509967580465644797605308238836986450165893639335476981785000034281902652797646721944404571505443091040954649629301725474716922248370718297551719771281761964352526158969498022729389759533132608758002024581888048010605265069886176323772374388010714804134715183772278187630312901417991018088779815100776944556026918004484753886197200147683731742088301846531150740440511141605357167490905913631768004923426655611750142919162017175774223076510252929651816322280830757002847899539124447384198166037000713729384934497528125138331328298339680810891895339843645518343642294744137266128750787428876289024203506920745799372043266753418681043959183493467965040734194805395471860199395315687527984636301125446180384271805115156264951079396813104219718337536263420664975873360344455067904397975634854614715828137617406292082651469566322993297993088915837238917355768614654608217262659093797665658274351146204190586117174916915208671676502940599252222518155300754791020993799386166516468424760382330261210814952068264663365827687861846307146084314042780715884949015798344518568922889883586954621232385713097352044503241716936036730358423426777753857918212341511874858944163815602092416106748649981299333059825763253257337833344687728741273201791966446689532991975833334948465713963813460421687039140573888163289756927293409766835373624959765128587164581849784620285394552618504092528459209492124384799599984419094865620859370222338606290623083926141314797350684432509329633738219623954269755633448319582034928546770401976814818198448373864012288092728788545171789863186920046871022463293331974464267497340061142829654018015424883432336457265320793952049001541821482837924578615078315563730119524845044614625787219341864237091521554250305059613830684922011318052613732619948358959499445773084675048742242681719971002730094918582924750576559356191068448957291658316900103936271853409012539475815163692962434024317466599782327805486989774970019509130759154206160816446621181213480076132100812856478891359499636633627891953465850176555917629490058680153483121514659954765486349191084313778780768092677732954775773493510968312306876893059351101989589979261551461989862075909373684345246913751411736425940834845535426405297032099999951684940012492088674933422590673595293539781857875766310231308347524164313664725761315862332155892372498145463118476619436763270941199612139714610350882833691729845698206840225254144734201523869354824406651406967683470726071006130973409184285443426102285383686601052614124333361933748879187647332404324618901101200184613935006947522540058656237409579392625624338155063456475013778234524676861416126966209112034472385964214471826380771625842239237182981464880588073760773646414925869483348386701172960568262868169131418918904163680705151449979188921504745819419726642425448135737839986139125653964677879272865819439632809039212630171430777941528840429199487582033344185179164744976004571141319929708148038747674557512311414234137918193092727584427768420190789664597970258972836464453892895339402282409600409422871730351854549166033158626924338171375960869037151371032735583636873152612720626866353110137678657554350914486769545471075390812303552710428785667365655182808049683864259585559585305077524376629157919047395546507235459903308241918595475347212928940529507188647432021135229749374588994452591465637288520837588875867760054929046699946492677353236458525764301121988202444785766723654219630934612178322009627879696749838439566795102121965177196228691314867645117424361650074783347273935505545382778303151911986523985664913051207128646565269858228481945064321087696946874822123749196503138409941790818994003175372456423192504283603252618061072226842213479085590523795922321055087788548260586292342985489014897787056904966381685225854357224681355994574963369661891811263757332652186761492841277312468167426927446856470908637850985084336621911043223626622566189487286194040087984786722759482241433601383883548638793959385950252751708608863956311314373057578643530352366108690599464031870848161391388099340502012361939345064725303492593106411689466556349279926735691266569169293471484510000913438757963382471723599567973123299722959849155031682309033948099018281478906943509459116032216702180942504352046292145437680422423623960608563418607783039296156720553427417890748196691433563792427608927069387870827276165804052038027401893498381230847606169376261987444167140055726554152886932347432441104036321117912228496080831909282985436137037903266515242823057853783532015676912391703711255582107569802513689958511317082300807987232027604921077672097947511587340968120804468410710690705810372990420079720803355753377644235668974681604848528811023806036785111728256146501793883749140831070265816993668996647197436089934391233279420847275416335350596778515197601890481441539389039894586177248728321374935261129124073007476751000350976032648387741551493965293335956066257937226298706819370299905575908090759568864363285113735024250974837636017204763031111133833443250323458873412660903883933042067960837982557778492603225270644834881954965219731974509105112101963047732530735525088417138005826275514598998815869097518617254295714028913177745505088976292253450503792408390493206328963388073861812288888290718940844463445117993431635033159379027136015582530807823719755778890135731331638781810945615732366392434371062030232691118304026435093237680087786938114852699305462837167847251096385761083477968848954118475025052441457370337059803927923028247056415589649757493774013579118607487194114742417606334256960435493151338700777102186995089963682176289440005136264448733170229675009331608652210413529584543665195415877872773554960493760079313889906748224249066175221637442403276287053448463479590326588761266565165646605117112423815985284811810752915894378589168469360146227321437433822087019848286620063297926859630957683782157052198650122549980689943251872539157523259858715501851174603749685201279052872961532577841214193343987304577654045101334861577156313464415310342802860376713494028549990544587165051375700156962922209313909328501283272973783483054589830887202521018439253782764137431080817319297721248443091286935387400850462204083336122139287616829579977804970622428942729042773340985991234422990380373360729534180412425714859209813217345935854603301869446880339037658632909115272427793921516231173302899444219321449450915900405158255539753964592063564909045798903052864918965570620691092748226430690874691357061589485547676424791682917104615773916666840075597184933021088244399496872952316308156880617335333046768922595276350387805049572181069927978935560174668675610529202246810519897643415743346825255119115104762273563363996578246045804121865064616494406048179082326874846494863998955960565955087462616167298411074636498461112748380628393305452691285536049877829023317360324881527488675218728304301148618661271084709850056842586105239741257955839777367543568828346059622002476256638151890275832331202339223594618700154031070855038878351651518313354786213115027164412520299356395936827838738056398530682538535972585702902377904362153630294061177892402246106416845144459980111137675489511244295767366060645690518692832517121476898853143109829799352484786005519148687359946823623666600604356034055146582566301341385110372159991335902712277613971215481972112318081585272988481864816601899870392561992735053834742403218014165719838518126141768769473566027621595416957856861843321464202167582794621159297051609479537178614472898060203456276621099311632586035312166160064231185493806401844325468112291366912189028874446206720273067737524134568179109124424424813234255563651852453824387380761619209483605656966926364550780612604644384311356577500714626466880538528245607220338981501414730773141701489372753198418322820563611431135242139810440855798022250640276350164828751595644942951025921028622315125245282395290261878747388776321961679270430987946960328147341511720542506559907776936805362700946407688268280627725153597865618114820878806942374468769870812853587952697027767783578782533251279211251619563811370864980475729588452184810868702875156840470257319208735119999794910831920530770637259493550374577383927924413885023227574794369496054566921881367261429781875748535867850100578676969598915774096544486057355055123698988555005490780468794544441046205748380298028397932677925360775809711956881217144487621093294170534030180993982179926614033283521400232919548779823159897735691309834556222759962215542702979945688995913674339628997132992915863938631226220714157795465696235007315904641816702789176908560305389280253320995353099619806534142324280739685891005476523776186050893313522763244702661310828282615069506760861609337150711388314365396526833979526748339557988656631397440526307311279729449267116838481144706266183171637787576570973620719840404622694744791177772864598730715436670814511847194899561409836077707076005702892424332295269644272770156431804313029674871968414928759058764525830736261897041400196878182120202422066800042316158606384878784656112260259196240649860063858818906080324107782776985777126453725999880316981662991664449721662724730194929370859116514997254951917821167431763889726189990012200188020440431398510149081866117928522447309155630446552121351717773249050771323442660455151294371233731330863369707653758033412819227945121095341314630593911542784915564728538478205117558770010770526292964677139707482421780030339646629375416452163611023185311791453019585628912102988821091143036067012359720866280096543943107785964024882133021641449611376287150323161789052295465750236384512619516970211587711139711347286452872511947991615892907249337592486066028744967376227886455637471330058579170827204948433117795829901973908306477590133941887528115262927221936722106375619577069190221446416446839579829488014798037696129881908074374733622014319935213217184960485671205072733445256797846109508787065027880166647595103985673480304477811358070710779269107699940245931388447774420080445992055815449295011178231252159252683724295633357075735218996770275858857400213355918452000009743690207437612346361574124093219312356995449994085700563445428899939285175780600115234856562899528081025662075608183167608519486989128519487654670672192974961751031509766364782270637713254007509741889999354450110689266528529113037172299794842206536648429476682160788787199745681686785652498738787889343479852993659240157919048077257020023289752333579950410356234194512802499364542959026736580930396513660937638445614249963842492501173293072759382684413869838225583618331334505065237108034695401795506485477813981394430315326917612533289479296323384760956943218774854876171552508984621315294117228162740638121931270346545688265358011585671551195958259667567665771606934320709988507207028878430880695181610886952818926969161052752561091466797573163994240251668136312938744935087017530877619052319348167222804996544997966905141344549521178585869725058189036933774850587784454498385648431348302384761869746355868838690757516867843246093595862696248954578366579645671963488530414713579286815724961358545754218092285938842626602111998533983867826013778580122236263691112550607292459214545972696866710952257031864722328685720164551378795889969043284505858536911188062523699892128773506580277049634519247556861734400102686496200868500947650193057892630094326808717331658777247262210285808975913807211035069454080415702229911803496128338139578462280561956975313873008925186217917782986400055910736116592375338067666249588147710153831098551147017598034007132458921897871344624256065546996066608047276757981461930585477187847211321934326024932004564478702444213973266023805176427818606504357074765024621206895365721635669791915816459429390828994215134379046037748778104307791806330153511164593263067678699814812382638950516855863871704001897798766531941497755569648336114957229564549313686432230661841948579980424729566599511613269349503503997216771200990936362922449161256815305786729962223058287089408543629025677872922637735672276243996654807715762339424863793726569719362833658208291009269662525619356162074052267998669033481026872006359220189527382704650945917848775677232627789287922059265199955972695942435519725555297808066233116792168897162204499608738540443835489440564563457701789290764309736975953007083613520607697769874511712958791040817146008089633465800247952574291100724984043991397438664480614778886948728887706990509955157262652074083347996929574275554735119060604125958751576555947613697376994184136238976305532184491074121742043070972245961102932313324581886788072697847466489141610171097016367939029261240557939598552717320185133271027309431485930640679868968064884347431262204296206264930279562118605582453288264876051545903805260572341538974735701239878754728319121285382254127846649947979798616391368269064427933081108680895210772879895281780350842962111235382046611412696086287022687778178860023587204802260737307753742229925788501799986258231515395392323181487685992005528688924138987154646076874791830738728051009134325744203420976762402750986746563527677815469956149006794454022737523306417634649826171285311385172738547119525968099727024213387729484256993723044924477561463010214443670487056195685350208130367757538387234634563103362683698050473173602726699412209105408558875625981230084246386053853894921562976441273506304813402445229337974159689471566488485993865016940321314630232473025390318710106718346189649600257396946118872429115631153584557929248639505289530990235938918803127266626136107915967896404402610987786170990392685199290651574927049246256593348354128015063379907746958603328613040430572995303161502677736084768836486196780651783460117601261355956576922229674403669439343352837576284669826803522860177629376811430862011903447973738495400468270128968745658225519192044522389445883281873292699341354625859324752244963605947285729205478468439294629550725973491249309727780609950215948986345579892577500285665344812929241777415655752855392193603682552085499936807653123422567124731037589646619344626017890511146255458497168592610375716849898490014037404920737902068997257119508232814725856643655167686162535465268795231509506122249912504046571749807527268183194619410329319402476614283496490319381460596886863609014490336305770032484153979775713100029750442570765508521211962023140328976077991181675410897895141665636572758612056687120613991106201479989832966963473588538390508512526472038348910550195287740168843148791694583014038681842476991579794710957749914467863071824341094306610057263766196115377615826227348262981265833890797459065161478801322414093737808265100748851957593790525936540938385165020039660369302552122000585074563881004981993240500907937343541714044293460347346695107498712765195330578029261635399039371730132087245530486037201181413411416762727266776633536150187224544563698248357748371394699462770453726584880449998895017249987027368096679029571777186555280269222959900182189248399525613404131847349883781790552669425524290372752245153599160659728233230278543229830236834983902680474997982677656693501215206461593933513838176567403070981508361575629543106055841778288758138130646647114661399436199539195640781379959349881362778427096623834581190481406379166379405480397593429137931835272091816050040007486216546455594646521302889366185396760893163697282227327872666497036874887540773387040493044182718267321992049078205728888033450657193646268292676957989964139484124653658500143103202118074979281479013598069013886452879316267509584158742398379872318604849274470993977080101278563974922122820285897665179711243005723032331323389953582411331012379388714417837460803100385697089828431161975161052693519330477454732804579450969142291284663228842067248567553906795205353307338992721349951305158196248771814677104802856030380639013932115336145430503838137200641192862754074983956416513581886702218026271754134213563800757082992914761392140773093671182532062760914665598991507148815295056403870364156157228390454855633567090020716620989064151249165324636977435134734952911086621625532906592466943958785106749221523546341850508734321127358773507661857026816514632788744596176437085680564607623996756456507623749386404331825130657923193684243971803798585099224681159816506836472613758790777879671243848410924709064666998596376283499231237212061833259462422207645520213755637138104194493000965058645388509950495597590578812931157096208413738194437693068886871125584699053344063729567395351001167823889164733815013207625054588893411729779100978190037069966976610764189365728085674278949029274530267144571510230504702881796408949104837973881948756987469308716669688227822129895020834022501453015882604554590675301519798447816397432328097433078539786061886568152113429436717149023867833212520283317726115733468748901244603777340852654860415677990031377148759965136781424070129291379461331572034917914551284644495595544746388602028473950241224041850325341692774554398726808435788045998214427261926598953735148085597732495093032590912204375917739237886880376276084630215244497545486305799688024257033993784050412805599348197027863893688979733710711196609792096295953298352817014951423445337614851143176628400032145285858383634447943458478455237621397708743327278880565121205489842924531483790627005586242360872350502063633286981645543632143300298640289821797276776465392824741108590030494766257046669353611002692661505640004357581109045302390894393653041220950127875481819184209915584095627339955847332549542019353026253471092987398437055118818769539792658375035224968375702861346524760327941684938510274853438223553385343742807482586727378859505297833761107045077327188065831868901472946617619254096957800756232219964029887008955836843284895890069338142675167438613718809752944659252520285557222592501972104037895594503741217843694583760418169752105147109154771916554275600093997932649590987289599069961334078748721668107014280661649936274694696970918030600899697547413106511004802021100735152719274921982987230713414538151523877119386424752961956370221529769354575171978445902900958848491946911338191951322492628049492338086666239947473169763055682916054037737604799887868554598879834638368440395458961524724101491761036726634903203719848436136905910604218089301197992627713829895671401555583796667204464607807494039940527929825027963064201840318814838647782916211586788703483514306412991313169125936285625798285579557609467294767596218276499260066325122205349799452164840370005569156332676730763024401160481058208403468850501081796137255186131089046224254004713482068314340095347970871343688506541535090981970327245982712017280686523931023429701170759999226757573137224658296313679841180124177594380500063070528139525281424571553227073068850492431743305188395382075783278617928495896121714422206552263115219426197220169897669337691608827071160902870400818586117466257192160360322131894339734004661745225711957962070725939037918842419162944590509510298560613547179746513880179818059270526089040742746190713017631560297287475798192100033430788626189697351883602875800864898836452774826046747663111123922518564236530350183621142462033515081935175690920807247124818921334164643041530233304642664303538543513997266972862781750795141369257939346360323627664307155945820143725555586856894054238051448821347798832541111101792230308972766862024166882393971977428753554201219371165298777708271722493000905342963599153220426949704992996610066300755216136775939246475512352799053937340154646502157446002851221697081100029348404751263261080083602487359719875406254786938774303302952220414406153025161553763454796034411972747486891320252054159399730923555249701918313048886863395724360830722853896667065024892202937080027288495520202779069860058930414414592234285540130811733900581412302184537143941355393823947365843481379496288838213550140993326135494293273929129403072673933291545485884654657681722452037305611746461299342045830960876511467111734521323252634411234508458025698025779379675654430594543910215158892841877635915100375571256110705201573512653347745148007468579205445873573603311498547294500972824818229978269759498018088299589391298313269732696605355011361985225707531232615822584772594726276467818465886296736349674273189022365094119061585039613418181960605610415759138903245985924039429535797524799432051885400110009396094074898590799974748613650018784683126427150813455703763564106378386204485522280418015878097149786579243694485579244477190709864036670581830258464000993299853252068960895398402476135638556340761365248036542021108313780644139811924375166295320175740628888529650442949820740278672288954046030419764546258372938070565653527993153258214058863983954563058816553188947065786075292200511923178334135776198463657507360377152675918831516981070107094954332099218514628513982755646528069026491683375244831310128893787819976783193190314981412702915938608723056935280801257299561982347790736282648396730609504611896643560450362923859526282744753598965101024366866109907166449252549451180969997781997377269465935008900907773347560288649303032604380221179070735350881806091896943700405725446010447581176932727328138342288109453252579266809008312030576380914039704809239231772575704039293265098568190354472049508897602141343261142517952751406609894937732019847425950936846648266745608557595926504637650038903852737114870978547751441087564084729791662627106562148370159048386538736133487967267263472685338769193471655047849800144193078656903700737635436531944955822312321316329260817501165149455250287887614009902687958316503307765159182603837264095546980281330691302968225957966532212769931900185399117348456402843276167194716863040393647888794669436494257314535655774416069108139328952112942121783922080646312315107805976524447827897872957321140941243259729150785982633182137178540479059746192227627826512135580410032430808017260161329485562322496045735826009253013799359197448332842779929090548699098999255315788049326564345822637885389170910268466983036716507480082108614096082418308955618408576791528310590545509010297562557390296522095460858209061353636805864571671605230233974013454323777934321717606699256322661450748045006463133811580347199400511788493308457087317941870043707120863440601198647491761548533705938333380218912085005806436129426809562250291632561857925161983012210280125032715045764334400728004723316597988003377801881883494801709713765292251488356856541394932458395832911057999542207158674588090346243676816143921918392876733747089102966320977840109697344294015569343106392487319910850066094421760146418907492436756927063575577110546899324388040109396453107682910884474096597332734944110107774711755578756203904530604082162140010749185784363999430864499092096303534124070205780757474969764100950339524357599251403538126392985998269157860277810494476965260587020237104533180520122980444752220514590150421515272168808728955043157434380601072358885516943659802133346740478508016661240259626495213154282650947618896819799224061551549309392238943337380146996541203914781733856809534619538316969871111510071244341679634231876314151220409870069918237044460113786468720035608587057211495629425591824838221124050131957460568055109221920014165288966387981989069047740888422708476066425406105636625826217420728459175239304767410652514550266075944255652451801781837464187954679768719158469864537973635712828374487033791134778249251229589761714899116828944655470518751039484651298385024967778492276831537115124874788634423094113945900116215698601448407659998319572244797796669094854040487342988375801368636554510456422130173021552711787198001336809583256411110475389894025816322806194667772519075486719467392457647734502328372753695425815809186161204719634937131947284479831886490109003804552732847653427281896023945865365962949372260802655402493289593343303359821449220616961238712928718915284744546690453575786159360527399248567392497127724673530755111717995451553324381633899773741899927181855377623613184954022868784844863331768951863789065002638387405234314006278618058468942657919699088561823217616088888204463504056724538535597465362384728233896927320862294271912704284996976076491330151696878938795721831965363707505425707324602812774534549134463661264998397275538565752213910878873062272810379659592189656175852257971807573309445817522661582968913070116986451351998627491955532732997572955598203657889057934588029919012513959270857264826049433878435388691566567124272012471220415622013862393609729801506234754653877415553735117909956483113254299186538559556719626061076576954626090283009517747116133859798884497280397492771948057720617196955487998786656322253274530792132814760228996489720960708293187364307362265100236017188091315122333231579670874637407232788350625264006700583955005861238908864403509994866436636769035063025645901317397701216131075108937261875230422374072074816600131699496483254125590318810480878169239163890083155367981310731456928057799785335870103206552607620975976237930834779017252860799044471423409788846067943426584874020865349918827765915741891930435955242458978008049203758454656005118683261079875068723627182804780790721809196910194464161078212377496451962479761999165382623394793838102669509438228874450912080324374831926082076460676605755665494579555878725779494310037766077409372734141172401697466742231900652432060370399910798690112410550979646500653879170738299429577289651135959843758759246712370127357954432598620787458999318330129708884303757332075253243047552079326076874072443660097092319295716486906668800327773289037526983721438174322522135138785738958693574591722556466969573793552789120259873111458166616125853434531736355315345165445235387035865281925644632747579243401392857526813455447601336493315913389719686762852949900594463765485585567842360743517721549612072599848690692010617486061224434522300774045334512848156709398283371917981140608596040206006291738071803583854640568843857336117022441274157449270073274882656915569286525744840903923596797621704821525556393617815676032370738652608892349550519328361654851200767846812310979565429813280282522033455059183144585687720128906591978421244441592479778770014631136436561903205020136819369516761407748019769847413066656044961300312656202748229269087403147390562035948049565428160997728131262313849008221767711783086351796430718634592052448100124557749254391741552388369466939334110913326413127839849763517406632651615356846075268616432730186400531350873050669390172470681315261307709814955402096936519536256412934293711064835038819024832090535315847791072085813531373835666652660645427423967736952155057213369767649314755778364148728182248530690239836929738335990048904695588715251374349030735007866245692122472463408321385623053396185984636543440649983246498588115616307171047827856281832903176070375757468319091581801003549865957114138611770669377456124781843706314572961067552235778476110575326525014573486848072576576350535516332582843168148850510586844118816607205263383650807268093993368754590269544844730616762612154666468501035050553708247061870953311291576300324212679319631464763096664454480422858800668402029181001062821715683091255495781605904257851956680763434253623780958662221966707024667622794894011648278141079738558423847809359009225641216804656700921898204408662670167984134760934764657131533554330932623845340481586187891587649097342340090245422377848894635431328081017885932653059980372616941295371985654794459519394462971938338046129059626537927511834857525024251626827905559354881866485229891238544968053108656305841689368030257519256321316562307145117732824796940076290566315522529332573036992985489037781596902096679915024743676934588986521151599438262397608949252003592209088951961595908338523594662809172517906750251937772779028453674625726222432304067389882124337351887294937387064740973882843603433125257316175445264642156674435484579287830860496623318095364378637809709830969513315331997031702067589630166285029494560158294534573976102821260149977344047173365270773013091169920958768502781732153430466302157960129570247942548542096652380988268979778255858323627171272348394069598589273382954138657499673636572630815446312031848110346387453349302187915441857055517030755166121863655968053826705590930545515403386223332381171872910718593640717450279747507689501463803423471645328536049746685351392485979564568405746344260133631657798059968030033801965584458294622706649166982572330285189053077466054637096523515110620244397364736468445776083044712923915508311890339791149467236783953779430058061107970909995986718139046241407695335290593928094385983758170355061348533995771175327856086196221651026263757112190888447111830112945686201498759433207725300898392001081432495201205236982016695238379049398717774950575033385225054843354613093878132149934123631974706848862914242505026613573240654505807964467659909646868373382672940397743086675830995229803734350814875297171851040391604796261685708444552256152071274898582577182233587909651919410853331347970781894563937543825812349011177738819445163467909677766072272035736992944955803177185998504733878274792595632324791268303588018019161817333857677568591687523508536473018597597221395291539913369640740550109915653216472529234530219795046676582018607640395930300698094971615466329615774002536602567239239691607135297167546364652400857148862475537005492679659413162297072818497480041476911976977336654716933838305935554836032907338757354503289946517150362522392221310589503929751525501303504650903236795508167737426070585901743086155193652351170154246891142456831256914705010271403809741707841129002838254870469733974339428841485436221123677916543996658777664998791783588952612361408851968598849905706147266866568919474627863549780771676617238063333275228453350582745898343175025412426505251025654785858973462491700600122154109048917619231489907686125006631881635362377198718761477362970429035089255777052407625963506678323204051307556567322890560224893665435159461482782535080364512940180462622072689598239970454915705417775976021863227682733806972579650734813267528237290650478283333507965196947806039878084787398180348343620860940580759752598132754799187170728333736807798382284119414608099529472255852163433301455413311222210212472065443984417932285167525497581466116884650198517333518269532342551327225572968097643320542410066624339055874269387302391452193630176820209709416263171823216254280843666342460850538631970901849044887656498790946851486929661340924159849322722277425907299607748824068713840169334691076944371470139128478430871546684786950827661899814970376057274903780752069863736292459715454666167668635557351778834147341442531914795986101581026522291173716270819179136665811027723858470140625266969722257842265918150926179274543049736638843597679767984099075004296846260899189623407336523400858556294998964148844396979988216686366864088669679799167941630402363231984439808190316602981832951393631349263442190765617822223138259577927116156323041254205627162763467460290312106554298043871834208560804164360531907905588437597919415330926446166764686535302561653490194802468991495182346532107050042657782764615949903570651403963754810902918405027010587386173109831337389733464885991880617674861049874247803210979051735812586263902796839159397137348658711982152119656401169402543244993453125579940171180501966888164749436831078795767066143721993476870361284958908827287169375450690580261074170076337862635721821297429894117140951052213673672118456437763998124408296686741707579450636280005850236236079225882071357678635191152275453426365324235356121835427455240925968288697440674532179552962152020310248311232874568630809268008197456158170907756264123373623099137997875648727803149441168917360242486882190191993184730297043953995997873420952804912550725842583174162421210448204707486909891782164226744013391198453893548986256713216846009723428956754134900400689576778386046192468264092626161275497823042875128182384339777328286743975432454257799907295821178226505706251423321223417826504174688946995439913774012173273125154135274681634264476843669668568034823517270554030216048297543527619191606377429205976829682072149838115938751309046390738023282625879792445288583683928886799273038021015843166353035699800888506374066062734490116280958190695302438390463436553636198178249998651306220889413253260228375253314793828303419682026966262168254107504611147384205038844645163101138088989491533954756495059808431215629339259122992653763599502800738987946608802506955602953387798664012453724028503569220080248705891183596050996656775518111025209693433434442629398940692267394475889739855422497896645557812782067929063768966393927436111693183212349163172213830910305707444946668786141101298763122828339118096905402249074026574591434580871328315561442671462910158716194802762440787621399043797613165552803312353945169454118928507070166101124055939101682155544970728933411284133110566377825473281645758866420538519893911635834520230876517303113239782023973100668523799617118082467276737927915581179195573167279653998069220245281256629111679562839037729536099022415572303082599357784978339033080814403915553834298445083982215463819020261177914974200118776915833626423685233098657796326336970220633482727162534281936151937464640322361830690850429291380868997436711226916452723418199366813888280134747704066826100802904178975090521403010281144469972774457322134584870095514675636031425183266021506777749475738601383986799683273096414805712850551668949094274254146903638192831955683414478689130596663255704067851814086684365872858699723868195796439103450816610843632021631976473767305258553974220907328142113495230366942162447028637247229523955752496298093754059490934687396726089626613659411948695633795967351950174581340713428533986017607117422829152582549903606241535172616149873589917822530876786116779821666179499356766016844554050022272736402144568574732924622849407498201714786995948643027461161069657583694721305519891114184628258875041634492133173198515388431763941837117867606539453009100685608770718241115569079053393468403186269172707560738217758423495345278738942922738640647272126692044340976090837968334161847872664129657514668570152751018769241012649655430196875334669546726120190544500609301291967259574793338908685607091577863801304202422304697244751540828492645837622768283130490043376426031997198166070708738494760087854465484100472419850855660382145851471638932955873541477264404269252323815878588357875436056415242824289379984061408335207995187555326321641532331239914910662305230304769871813566474965152819266561247303558536992118105345048370685500716152664399575482274938706802376329663313918810088187332537103993626822015903055227518940583966071293021806588579440113422873822374657565453181588929262080529933386106027061152213482332897824462998709001777662278030100174242535060119591160860399521184647935584902673920019356510387150909727760237465051547537359158002014592829683811194668189885446016701240308676712579497477973492723998203556325137916626541088446903138048390068220831909718925910374851867530947243091239810696597532698716477833121483470785630648187517427450188067020869771808940683528848090510863290325221673645249287052615281979880706639792793841318131823252744872415012913324855625761385670994181801337312185968161285073621505939043833586255953885430950275549621972594651405359258244551878560806017992488951693688778962691062370896334412944908822232123382284673370138589811247435227251559728976789459261064815452333135956030937979199466429685234748079356562709680012930761056245082503211566335101215273611180778914244929561688345346905504623468840496488128065999528623005189290575206453004272869529207044889503119665718108064804439316264302014931896530889840509547607776610796318498835711619526425736669272210126807346889264409986818341899170923707631623288030580507822403771894128808849933759590909877215466733347574797926540394246084017020672853258463552533800872147797189483839031868712503408745972578913016520614845084725925158863995860228364567669170417843042390375384687612193395636421375804626929004840163968796820236496293853859357124856057887047654383810090993707074436800701256932434397640117242542593914780346814817440314678954885165779932107937706261240233299822437964645763746644577562481499791494832222776963806307063577365089451186307283012863680797361554760056194528884435851568316637513313550480736287929262917445678535959784239518147328233270789867569006768682709473498566188191756575705026453902804549405783305961589302799442516484569148532202801507473158814944326735975948199817359386068990500801699543800804457101012417409104460217264734115155857724631744389824983384265423860039803000456629200620240417761596719709890010941909852296154793706709997821362415916200554401365826441708752622891616738911442414948376729876081833801501936223068483564976017783804553871253581940380393800704933382834712326476305839210268643687530286350561479053030288309332442277805415736757683191770844071280172866994530051355320580583907303755967191181568005440150436670046063113465120475174872227085493840845285873398811064028295899306041204355252629457571540095731462009551516387831645984463028199637878968470056019106271592801945616326721987253762231029535817914654382988142401562851275357625531561790709232029228535857843657500878077624611794355237922652714391747706345032406708566031733979972459931150139706557524993724335151953305050234115650068602142918914657454783911094145454937776433868606995817606666829609392190404920411936042315103723824879046402064322235618703843273599779540640959573129703011364487278993148596391404214974129156074343182735459599890496762751014153437428996517181323756383325660968731174709925628898771059783330442641039946659397325473623346680061898059377488282476418972832896115329719352503308845735146797923156605796054257593770416296113139435910217539628377496398746434391657491693893774525905083432247447176467767216409586409398941054133188634261140953755556725261728844905122939905982426199223100400336965010423324156848758491320119642203587844795932773682387519804604109967814371311586006444067385934389051489745248833848098519001787343082736445712776380406402192038444899096777847176429969144578796312313085533058336320795581291386081991713870381476428614681010074969370405973452265439147298393905216681370605344072301367513778259253319597586159666291258554464445976459137903428004136246554616738434025363176833089782666254165036352955141212486978546735719886293008069456829808086576675781905954183367434121589389644432231316668607960194863616789137106431276181685598511592613789037153869570446045750044315230507087723441342085023032656880157595725752313898710312803644133122081943353521501759601107029438568713046306934396288703043267289247483179286304754929834570141602934234130813067739320935845027517914620072624413118150416410033153197456911446050153801349626662060295456143812942466137446302907230446410785693734305304281172934482681754034491555736050960805177273864768719446233636248225633842551181283538083784125676723455463936640472091072861124495166650625618948571455027207454812089561329024583296760195150928227812192830576047270431226545150391099855959338778763271719988314670912625178622024029331013481781456493462097164716188639830695453353837243915486287382556142366103115217150062297656295715704259238677503463037966563509348416421773624172637631765227441482642654448144314745911508732720289121172684698201163988368143730530401831799182367595038651562433077003049225362714806483674683256155805386085381047340792885200250819813885543324573833479964882405513980281597608886800363814015712317053378444090455302489743107966279868640570713071213293305987873569512542542222966211479641976002356486789952125612766440774294890213068989248572478825362416479838694923472481459467327074374358355932994356443117541804718612554803373612599944878174609755682832957735115625476513946009312433235429877398695505765586839869133294866613994381173432872781487593576713130120926372811865159958001237339003167704109123722221641365637125449165374991273414684773344466766963251532082657129100384982315054470310655588647388815087097362315030847972346004853992015294509383526327961754246430599465266188827921367444757705299652738158094999228607701974994795225723590187943178527217771590837866974186012773101275253576355081950042767561722832842177449799608376938968368720683359075282623397422237988995700010953868481821197555805557427467559351284006609391721335657415843560335403064007672263520873934084693460388219206908508899832949958746478018640759437644775995377667145354987192016699490653044751219693134501941314160381507649781287398831144471521038531950204815612376983289328362194375805976511997376427887396180376136829227989303243466115050572210756604581958676472998177872590268427093452505390316415899818174696695576198569836858237040529831561032854873597446337294107735909809030989929445186441241707962888924320237977852501733348466558135936605919059959441044749817908299765693043413161754288681668716060506283095785237680486473502999899334832710539094766053729064351415216534147742852993262836249476417989388021286195773041134115805130114867429646984263053552243986667293742786005923753205048506642347544793853558527459143730588381301983205547184781483608587920718016466689584281671064253103431036628392002740927036723031134451288786340281428014358698295623950888232142257861348118400021172142243448791891121094498890750359592264312491136357215787561445901381222541713346269139033227686341267902635378853942273818307945129084947167219616164993882269397178110427993938435460691807850190377273075964432386129429885929150597170525775954297962483237623100201270479514263712393809524343668928128929297989184050525771983459935506962638790074415315820600703089183132127056461477113612402326800001404583170118013496996903832303981941485538416613736240052466570545692125185262750098612219567369362697522526051347134160574307205290614068739153057858898826299955255770037070276169744802829707727082174510299942822991696046550544521408396183116656863363943278246539979177203944552921498233089089024822422359954450873912773078739397839362047114143741725791294242718483357043138840229587024970423243225011675088664498037473498394742493090282360109333782091842019641535802193294637041159254986285564334196620354087888751992555116731286339996319968191995491925269085499926967583209290063055217005338614029912348651167636033884165401967791091958741540403456757211584642765470098423142106748461307066313319912127333563711967105243136665636041990059347506812806634469851454350867663548574525671510401134267380720053808502184395086793975180984913233965649285226674319416977635998797624752324422301708381861825843157172845060635753484473533967419891832241858808173275299950360089511509904749945530243795102014175022234171461811098770611839609406594713748555810371702820443307863777761601176861411257923654384124123122322275984221159321108627920746868871686075075796297749599202552476709611464036253870529143504665135590366853389022322977120795687674798600944312456144281524934931915316643010928551440434722511242792789964793397677712497751095596432166013836028793018851937743373795462481536689047714544577261462603164145298921332940012037905130322255313641394257966594934796510173271266953543017849775135276566919416601360567589423193828882791853602459005545884122320875474132384784382367743011439096614510392309083871270878996995376515712044806277375383844096682583454445797692857751432045119893149347108443120117367766650833603512804159832376886608102236908077025417347831334966783302610051737152577465137271508000567438476820464546699037777876137463826297829137999436366671529686895829600661344109351223290868795855536182092612959800343914421371386886507580638885891613626530520209737217907945542081356249077722902054511580452650742807020347638200196735607187039219633595048818732633977818520710239288908804770842631308753048345294046789126344431623238235963326490208512882448101452510718409203992213089431015534384644825612406577047154364308712504085886689990083525298171829081328886244968330901039054081794272442113990945017306455007823967866541284527017057541187818022161522234358196064762860792018500447925344363311082817612920651911431507147479517542400720348658865290965431982100369073910582401971845124518150103178047952309785307979709963614801681237437334246455321847523659858797603818706556061092343968529316925804188383549865282338933065429079003557387710046721748404567978162305108155646905554260516471558096714561311948498344029251952932668604177789731727948153388884426391405579584901401189439213992593920079347520588042853620720353487383894366915091613524448046900781488922071070732948539687035662832338281496073648055546782382818395640106796077459967932961126740091009881474587498409385237658334634593767126130433493104847742265156910601279018378668941013367005483657662371583947637776076017145571440661140467744769005723179565418651971212545277925589548882400393452654153924365736549863843971573902992347981735982996047014393005494408705385732657756820084451681132665899845048061059717123869733228734097224275835803983842483486554584617134578216630620902316922907627283580532890837627746086196025492787159787481841320225708942891475511204111435523780842067834767453802824400713817119017893772250351734048418968676466238683653732698166863917000309951209436918488080153489929991155346761495904289021847089080221214836601451914587295667493309950430230187008466001023948849031697005559541936375423796673614986104789023052383159537356053590081129574899589800507870949264090765753430549524819029407835196865176688466473446660627920120331837231762318906928937568197064412197066313301639634725656431439808597598333308605312775046201667391310784104141786374445123828978063256181170755611118036936298174005335288007145852055819273868819313101779919075664184064876526777552492400217603127378257426017938959727821926628157306275928492649266282936454698662533101977479218879683837546412412542034181999696569146277753846842791116287306358866578182733487035411758810921545737618286024076630114692574790939130013517755050598841944030151370629229431969798013348913670423974861268983695667601403974809406882135289077874198400174433500066771516309484732553227267428290463015531660751157416155588148120249827717359736366469091125927396428044963285338434634229683423842113440652882904061313699537815975377674367530302659901437280987380930117730317768728856025951159963048315931782358348930677679594300698050841257247925842620098143502836248090337547313999360768280373675759507917999694671622497771450771307121183165209458521602842479531132606287068976202367547821447380841690789297637364128714970122778763977231162306366572729788440890636648029259292678329361590587541581673022075960986771009877366577726025129464822285343875537450679985065655694015775853950094424790075431698800996353444559902838305647515525200709462528416139724486319253514476082711527221603162891648215190736281892393012780367622355119992100338029932924878778253994655599157131219666969702175815241925591687281475994702944631501911086829303711308538695740088466988967916640829603201214298613799514338225946661097271287970465239487616111842698801327106480598099880097412768462756978749791266517275372156630784193163241160267946963572421334803237421924801100498229061354891189518968349380128520195992872717600877666420095984141211653338723206770637346411489594198429900425590584508017083071260155634343076688756760318198469470411434387450681837481632820568744287298424623373708606770786457414749168830593713516441387500450879400864031773610698820175759112690103380761674257847726129361040569737738334737842393576674766036030097815811599259780721392763572020957974875653852148777189256153817558726450219263965554825188687829436734277570958158954064578997047455123126059690286694523791582828050145016033693671602641334002995487920019297026067795799507813098351845930234618729106801178620894376450402205316721671215004367582070745410977852767743725910601042403648406021562233406838503513725819820962475995006053169643497866512865729231427541797298285840663070343085460300249877307547977076021121011452288124580295502575418448224953190008240300683194261695676482783949233491631936181976484726130197786231329617773771987638743060030011442883825728341392724806295728270929814942084221761493180868375942241735151593095818710335947495433876866983991581497133100884782026466407614918181486823367767191273444066563415617801862945542939086114942037353686961545122921652674288708006867994218764141791185770964651150998147474413168654409104173463437805143409767468148467792326751630545595994975701934088712040681306589763169722430096481249298107023451123313440704621954907745869497616017423216200157332574920463638692179506178556128897130263564758239269051577200721985642579915183297704991457766212765377924517397348404578923996489142454606099620288778823531957891668129732661368961632401598903145921798912868796316456236861845208767177437689868040290176907517494002070032124436317344853429772926195751441373242213618414578717711977139958040978358167177291948278016423982982509680509855892357277913475192026685642416623163704099738694616371088317230444002427103013349596130507679103259942393659776035070838045358136510646518642376213550993030341071335126018485782757677922042881058050440120090128630330828544127549814279791200268480612973941870026452229088294609489510186460816852021301518036528264306749914154271094535285113793316743372700750400747179979449522784727859438186111165880747962835776618912153551769019672897298153101036979857659196842389463657512665603835882561007633479961962687141732067237132743981751358713892001760632034665977521581326132850957974695519772952715079039475610842840099607944494833351506178619253383058599717797882822929191477310241350006271506921701814913236926491929100488350916226034121309926886649172335979807870574763526896600694057987970328429942935701580830462050243688079084057545777054455709535040385732171795110478373050981877001576978299432970655221291636792099130530215190214228187183362327882682686166138313059462630902408073885815441841665567568245473766206365820719159431654415324300636054244052932822477440427617285659278598795123753739314416536185495977034467761055305402457752514242928069006527395825046517480210591104388820677891196269969566802672546782154961923932896233197809359052171235294525632014741003051883568109386498163704514116427011455322789080245847172191964436436403344014812874054011206405075147106360850992866710177444331232513064757957323363560346949119430476737352958403896741732326308607712187119908734604080958956957412000903040115790614190088212413996524457949490624416880973092352845769704653556135088092494417008153290249169657813091319519914582123451953897830403466192530184377493926736706237802135808098792503195112741140202592218282533862156499398719152893522530580172873524218345453696018932633432663896950377618847154420981367986340974102992658383099526073820137127303004142195063064241175671610035645629842899738636645418403799073446743465216738772696511605579578724727540555631090516556421230586773246076715872004299286953284362008719566513485140131170492436729016215548536348271803013335032619244853271896009852118193255912389670818763708504953947137522253657407306825678107901218632726726416710128334143280579852589382427046618930931269699609137605533505964186209275049484998788328862471153197809314302436439167988305148369700722924484274534055199095453719819336013246382707826250684680661201207219961369366303613154860243715629976159756766308632170302152562221559194478602058603076942253345699856088634066597123835432090149773449760674091628550335173570405483307547548684560952395593281743919590635846464524868761021466197069878745785402821160246237919189373279991439918680006573669446464474049417032163904559990247776915008422756235556553358232512720326772984446169124538267959005902944868224938651706863249234020424688588546605002233004376116954956373279003688947199586732409765490901630778864254599123200616099326228872287468231710532417999400146018308123812535022766367219674340792007934397548679316695431126656385392967063401967186906718531523227233946674221167073955540559906604207484241768088116867717660904344073707302933102141279075274500510065810244806817363339756905883870291275621758601842659825966715775062027191477557648853704226262154338519780798167979852448778492894599502783678664892862555309716030025546399589911262341743679702891410965907734910598447089838354701372185666283388819174383389211810300913574663595834338629780584156580125350501699359692573885027439043182074644005877353055813811327413125935653393414340743422880022286878693700073528797212667130780097316458225489647010555651719027223359722932787580425414330154871445392729151103532195755517232399259700481428950271517722881512887771249781860137529242478742539065411752876396328643557025459926560182415606815165212421081126612277364326294769722837851317206949139444602953322557352125096450870999598036169899207246369295838238578465691898830191827191718888349233870598653185119381012960414043984083627140750367263933777647704292989285553548171830791302061666627693452543203235482381361534825510062548692061435281050650200416442880621286909711594350111518828041212200586724993929583928129294014858386921243813442021107272101826373943681636366497607306312694362924670441501470285107592277908056669314756205994064236131340020818630352276926442260740995973569776736875241671373328210605388209573517487600550026763215133715222475823092130095607240783930108587108462607741248672267158013706968933151504057099829930514732344164758560248810027034459992630402528088573170674746653666538196660537359653743869065765840976394656287188838559571854370865653691921291236810053221927290535065491334205992781861177550960651295368259232140943197637889735919963126898755317532763754969263503920428747011094254836051595637968470301910017474784264832917999256818496295751189590817387956582905821022582687582338816703054341220566616322747336350654211021584716696979302972236911458327044739675015321561613302905052609583079048286397491583182375139759903211142546872412593814791940142311153218664914268705547311731658712753482278017997825046333178088782044784318870379495738702392918316576487278476068296632214245968487923895503610132855254963429526042188473526864960189823116906753380521430876416323296350166373499511910138772147215258119825205289888437422251328949634908233483225220831254179890949244877250605786626128739740065235529921448116068879219225922765003110896080149719532261366057669166309642204352986336999064677084748829565870279188640907197181291375383794118793512121943601986870401748417384577881724203512902171164613986619393745350113696901099439704914795267207999656165383927854911114866335413863594204133830580428885991976486854692314208908354529990304698370565586118753061734554538655531871655597055281518780421752993798344170250328417745293621948274920326471496012313238658108498736491809078546298269315214871953028093700895115311408341277967699791396487849194080750555847397244914330824739492028179917509611602681529111573418291961097401345132261867208091686773363509191263016840726324467136943551987276022341794493608835486415523416536302084920368947455678748546923548300395047302474794672965607883337607909135291851966886450724528938681558263106447590048627450248924034359661405158233113943545481886555088997027541591266341410621242634769317352813279556397819696463761673895006432372082559503356620081700518425810292234703663343731513042227292459138210732599347423764147150986693199455025921555362964909094861893738389289357812393432936296516966540602398967182150626729834964844477685069797388578288713697832686787458643358575864652228580522053329558884004498027124744515217674737816793178872244964179105201319978973231778735437451110268714143885378937150470051623429462641025030113866085651521789926306865556023486603263677893296503211845053471060256256675490697327844886877261857135967671892953144574113203237251009670754983929433602445821797246522810297210237344670106666026806217100856826225822895123674744152184199056944958660272520163559946126479878527956837027421422769582734900575790723237403524570314007807334119927104025413074228773380961856018252856779559230806927119523760852872997813774780838512495057323945299008702676021096755264381013736279377959959754805332891518188044427746923470908977774728738445472218831641275119046018037930786531502937425776946923309505148932967060117652912490580084559795416496259612312486305973680156000915740554637454709313523981347779036306434754020113172828232657716783517795456079380811100553062355317151920033362200511405022089777710975033759141685526573448734313080013242761584113313853162832607635480275402444555059762556449842933757121067273177460699001068453806844771406743061724743984675468726560243175321427051210101687669439789602979341799729143971552540346212326846280171476373630327551697799036602317373265836090622791379580797383711298464981338396075547377955160022718114770998661963713316904154944711444466908101020976646281110771906000211780312842434408146456001254979980292729336416403143497486711654766033058556891612603464880800877215400378986828171236868544214419806274855964982104698765533783343836749345212220708527994579438891052813507586551977665084011731840731054209691986639352968427237845868572937707528394173349209120980883628192414150899750744242812305372738822072303128595842343368375626936564683057507691250594451832500552599985509002789838545591229964423166343254321332726168583325252532860918736740989381778749345328163692028875167917570300511959053152220205053368668122388653669181141020500200595221681476975479828237260758036363309390567139626766308455545338166247141779226801531150381959202329874750821517491045216670966810719918327159261597177552366408126638070837113075069592730641188048142131687459286992845039608050628958375083827864927521662562010994782257370757869139922852956348855323637928665591516392041188987216523100591785499624844761931010484517319895205640485927787330383095451486014244238955745953157646976906270595590681950622491521349851416641460579917135831677582730018849370393322312362623838358113596938650638188164489267502090193427541326241159834707931208815620735857570069096761497793148390062838417389148682244772006877701560785796804589874114554696093059905573204205483041404115949650596240124286604843136379996045565290200565766670629758574809752850721786813750354750193537342744829857252712270368790240697745472146006043665849429834598345316356381787286703382118209600959732220174900878564341552157250298872529866759137123203277011717359310411995931583833967561813093274817741603449491950847894424232750890994121312921005421700421409750526740324296528754381969477356972640263005368236231603580107916329874590136339683222369517844620580787288131643801817464419694446512026340454539874725796047413386446642639510985764134483193991866045244632720919071062874697704669762765294620447268086175190708652884221991758313798289190022998735077986450916642244460710737642554192018243359056638491046455989467124705543917973391400991850622274937435456106066995765532405099370689418903070074793511334312243317397985865955148218145838945149085534535890189030659106505830729479953985558471720045013607978743888930533254779115078896382776012759543780240994532812745029630438135244734927660592592467560950035698643751282472815323586983008493977405730364654026637842900568690469701433125289411703846463574902777341541036508902952536572749530096008989294465099557741634978925066623654720986666191116229590773447876992808208013728471619386154433793625515070801851858481712688423545453262655817749544300071684483603013081105237939936177327124228865485470353802855404698605386780018310242882354421862065276087686102164886903549242786309334019242686828546723936285090057351635173476409380008918723404820708761235705532978979059649446331437272486685354666757414998744803639828817146022329478062397912564721875700662231161084720138593918513073831515591568982321978613074094305359472999112762772792949826694018418233476273517735406050290003414937710766450713309617848558197885363178221461697438257778610447093600119433795698951641261283456179741894260063120719718677347746928327586002391002888914143139422077583290891217962633201236980058905280551667003900675954100229611648823615507837288089176741790528981456160271061749696262212151375084238024900904516069454701875450016935844515967852085149409338420522495185669192162972043214192655705569371472240691681017242101289652156635863219982970615187567597295006203249361872814685748120420941891070123854870039960454728728346209882897180000796841628553772285727733395214393414615621230926054107743083845317355739914138374041837010140979830983339516817597897660254364750238729190007114025051467688016825230695081440568410100165210126512234243466478550797899667796276374678579646751057346724541231490762667385285388213464467076142771250528927187783580955433118869583933879599042858099978444182547738498826803325917462492098840325855123756470063341293918922334239045850328855414439136643722706382285505995045430782220190360863481118228827112496870993223654560123536586703854579400509603467576063099990190331352196835048459080118275092781597474911534694784074951437641722487256079973302416646518911799799520366476471619981684027738570329098174621390839813247472063925411131296363167240985474608776303230826618388100856462806328408827761143024213376247589180932960340347989784515397537409258485900743129698973040943474390056007417589534667266897038055941576843340976123547170220890351318606094846145668094487360102394426856110236930365506188198399809047195325454786250378817887360725752930328399669509359769201505333494534526854357155539097076523583432185145066632812335050144772088088385842255936480776508803065658899445918452758702109012897292188385664403803700169461807611148446747455960228433089851093357042914014865530354949838269395534206014484929253995872706089342443741830404547897548360321666119389931919841634008307027960672384081569612787953184825233941779747012557454648857992903776448519989305549101183501977689097065777765060086963642410211429847975733583139766281054716142832821211353465079009942204558706992090861231993986270165431521472850591033034055836177023219635432344137763826288596521335856878298386993207668466907802629889693775171505688847807253512805558127411782326924692838800115391882722068326826496045549232609836629717238375104218701288317950653349746288737482354216977947222665876323701415527340044812649572581372410967178299330288968788505101749720709158040756278384521207843710147395173204226061955050938614793596758531913194493613486215035930952916285570495127502070475226667678500607093108314700314470099705149474119990261604467153140366829017581569586907641602642800137110380932267053776958514546817091871846495611845419618310384379910784869697800983592980507084666719093700605859881954889242460122447257072614260713849832873896030928089870155097798316436797294097461466533406472585457582794859388081771583682700413491895213014342209367159300263358549829815947331045934185258915893854077915219234875358240501289046958821400484413179126797205406897128122453239477723324855438350583619500824887951011439545388956462773016768670143312077865812854823689719797760679471241657158636552911770545465317619064736399160781321439194490755531158672480800390568461312251276239342471049616256431113701405489245982541252435601775944891049199021713915519711064237761179699199496479634365606949528664919553901344312706828579429095093089968490098659278086589716871205731102315095792794279305946715992621147598849086346385474744752780664452847518336902570151554204073025351981978421993351547469341043098620455426446704061597404222330157111761753969764244369070805128449479538682818635164050923844854997628516371527757594022289139914282553825099924482946473110920050956123623357416154032448695755316731312776358338545384705193114720195705869862321977041796443637033299809803834196223028186701598338983026661475937562115793257558946986727360306761466365661356231916332127663471018694248934646854678208766564018303020952608727689939275666680904822519718361602260495448289834482128276474370457087902077950363810338639372026082687929946996842005103645434884235031298109338890568394361049971611823132250983362533610277099071121225609190565169531921599540709435478924171222983648465470343411599902294795598815302439966133417384960079459269445272814119007296648534462727076999741845687420297034182775571412431732294944306176136139575718309418213044781827565599685700585481133353714880315344250744346390017714349654219019098595480759889839640197978458885902757573051859154798252372516232954508991664707719254397794291034506280265381035672015005635762077190978721719464600740168250253425144568174864739480477728507031793300306138875836505864800425904000376375226307944088554178872520117338583904205463537747184625560297560239072730123373338173219087696871228057548149745223215857450880687388854778247112176535161731354585414018798300294530807393283888569776568058410363705166125955614436410205269065944310965966602734576506326948756860116022061474158774095490507475601483440854053105207749753627704725084768807326506458796859532285625274064437081928460112309203771471402445451124665843894676816551602260048581838309008843931428894608156301935373881637708544173591659419563339524674526809759312455566123801943104057899793181692769340458646967842529761842401124449057492288144215539523668059283304274265828841271083675268285927847194532851019160027149379790352934466779203568747706843542277361628109341195076847097626462476945853654039238605235192978421856063819637787364054165828353624544662579402064426073650939417738242494761671763382136849205688856335898537932245872482652214478226183139537698370642927812073720079271848398284949177694189872148179009791340611465989188365877512952281181748237215013999907934525599522588810253970915580107620428419972499782668056653623626553791477436051838231371551388495958367065321757122593059793617166401967498680451559530517809765139629696651454568790154991876508189735808476603787246013039912613159307333861579999523889688171097937274390299229321948857038771799604644156375566239806207085531093900257984088059168995823061805555350349058825769025688341480887306729333680527396003849792839444635372339623785165359839127813449833606813222981300728824510925519479088076353948810193498495240541422302885982549523609235660652365629931843956675694905167160061967784325629868784358492275650466955096504749137204355343887581071418077170148398224593081076999745814268281347737092305466893774269391441043212209956795980023175822532105696164940994667422296304406586860571429297583287407985497004246290585750328691175588823106621776610478501304406891515485387778604985390814497077457820418769373002703981253426548661120472899213313679647892629445352361946637523228979164190485934352169811076543189000416680961568956355020669545594515149972926669190770550966670291862987668341116408889537502072228095400359353624572126528344821873670097816384229487617223419728413676855772133220431353364191010323510097933116612466034242900904670165202029412999183267745112314954857833303782211467536758465022567528577082375801401752001114587990205381842963777819702364169416658478984622784122336710337111507337204133104386658821420835192268635657618377871331831632852621891051336893352724202124680083054623199389014337808921296141572678800714688611074286183775507715020504913148984262086267335280821377569441505109558582909078761607896747468321192590362033707218907463095360226985228068804089512507857563993478634509632365575534666395920722637758760457343838089513813373948120958571266864562841826524065357758187140888745847735053068007288238230215148820300752843965716448518932783016742778369672917442600399223441638357708469696283415810516934212500696755535885477026714693591427615041820937488868092859033554146557079725318660813527246416268666316551278911438951253923984309510019420792280974973423845290883395641799966904554757698085506667797188281308905992535962045392009723522843983799283560641556372361211315509774118534633816879287251295771339334388325217301574658655596077559133425417347832959194378211217251490554758004133913644639736394942778164366173681103443791658770354447253804290178667387068305219537027080979729649576693403653272040593248063191537091867287598037363718719512156036958131122004547238114410787075239870032889711412137226817869863331564692269876421682304333442169579296982391604970546522355590520542407130170307233642659467642188677117815391473556060235859750189148988214292053647248346711111113817539529895950487372426083473613816797428810420039793823856184653967724910357877971541056628159357112435954743915685969509099721421440917737387023344348565586375982899227110673428421550398376154666411720094782926667211000319980755852969025725041110302512809000253618041259589560494656529112838793797257523488761667620960118078200703571350306743454635260829375891534516161771642706031818878801868453834332377028600239498032602029067623733098445615238260928975251508776812303903740594568730960478508441997717507501960759475022672545573330503007160404975689056090390544540467279719990895605023000243840430492449206434819884485755791111095258243512484123776352882313477081694718905400142786726075295843060597025436236944589224671265470845511396292179843460218917794711452785330861595448661265500165754210332448777183481820295445401111544542324554473609583669432028743621112817020831907543902438636199473198489140277799119644216620392717177133224256320243637124727149212680645618022984424412323466143843268867907427192756731500604115696903577993612902795411153978719380189645246592617509554510621041930044382407906115876375336480002907879725716968602114837560842278785559791151544202860855857597471598281621905658984009052072102137503390373109499162715083600845207868277485754796408543240748700024542767789248097135487799909513618293024865703811584888743040235016117890944481696086082541441894782170383108834051551081912858490886200908258357516141140659145153278567726862279437526891494913822489975855432423389819520177270146793207964719754088638442791422588862189667247501208512889006159422238436342630637249488811244430376863577588601321432846241632800213121905830171315461254476306511786947116697338725636399143223928478535357536732103473618639327267335797489015857163668989904200726458009558943129027206285693445364006403158732935142770748325519468499407327921685973123787287947097372933483857723128671579840324389844575622598167795621563243464989718370827461319636754612330559060914506883781351137452921890467742843026581457853788810218380166987910480795394963569635021319826582095373218528918038063800263940766710677141033323738345328942292158461208929752417776039582781009586077320815354875218883001219852378707682423416384224027720253260389461028110308685758585686968954001068715948206065510705735378839910518724016152821697535816035490070766676077308759960370602349505570085941781860148845646497662056051665821134578991711124922034529830867795734089894816929199280370893058181014191910101055602994507048037866310352415493566392970490167702981836074290035550993044759819900124257964577716393382794593633587353120051189519241406730741753694859878028408868811735416905890834273965082741713625886155022083671420448530491985698674841992652205158563546431315341489537720964822654540211554955852889391335534267618646414552703882150794996621528688312320234224663962020769826738124692831409554168139119316079005545494191693826235648437455911355217351806747473001492308320975534914220616165846334263889150503166553690513355633332476431222413397670618413464539527313920552877848039297939319213446711448791760819353009082685475869229780383385124588208179207648285147751981300402959259334006565262922107049889888589832399129758290484955691259696264672265803677835455185606107155237291806717306638515683672893495199800026199396440472967663061610496806538947797667964858820524127337055970200843183491138461234721624405763008575108780911974654169593007068520404617532919674282578415988472090091974340329731003086467144193392842498382485237511544956670991328485147395342255217753071104576795220483190862022928436615018124122689865940201490947919462105202948478663923113306881106349072603294600455728829700036577717709789486750548051387684831880922927051643392938684093252434706354760428770574430600582300533246375879972608101275040707854485441425301028770245354035853718970392402841877007475387931880147505626106345027170379960415351139171384903555013471421039621650542803876375161826835222190091933636609997940212502040131313114957528267129843969979496325736714518634096264360993220231886381959540174947297488142319655878515772662719832830783459058822661706811133198710982671673140124146441750626051796257392281056981360850773737302152784872614242591790100652584153227398486184623300945362348732480929681945009981206510688160008308679669114878780452968532301513854563776407267150866093087492204744184038963271968259529076394706415251533632376566540749113026160593041984602463994887754865708927863313903647217036467785884139781524209454107499314768665876562420388010259393173726536978869867722403213655743907833326730387618580511962326800119397531419385659559638225313503370690986373517636061439063006259571075819602471905018351057438922190899453347208985447031964114103837774115827157064852304774241561095603926071155988584251364400371016692074577000115631090584562580948062125398897530328447668166538349467323594115738559597888265579939859092669194601095890448915998358673185953498197369865760203622382385977102320741420417844635915405875246455973722407296382085752347267505233762568029523032624467963654083930898626189973610218693483751503523654048700201753966282976686212592950958450525070324226125220239881908424395313181385853279457982206054088289016533993623278518802157972698748878776267346414933146404305030910250845909588572392701713193111395927244358013944187739778004049464259693761016943499085472973915667400229909884458145544485798417684166356236450038365524703982065543906138202540560787820324993959991871331539632527069603003835224639954078268393222231724957061746326123600608131540913866991854401620281940124496650388332576688801795862628274239060899646510674666203780162964668852021081047929138165702543679005972096465027086556861513739938388063811823698525159294018007225601416068403276523604162339786341075934821382557073683067425350643922584060059994499227525336471454466693574310378182554781079750532716596239013161765352832969897231547431633579330655490821881100154094750353422472592828947349019598143130405046749778462279444458084348534116904064367154689279040079637199401082863379836072203921305141356004482510541982418903015856443706340876177563750365441103293487813167802918079905247595431586981078454789055926459724058572368234261337826555858276745057241642618027795170634785947922126386483205094842246149924203016452868691140159344679218048981541923719648030516278554959833197280397286063876133958516057566928728851517809586427250119843917893454849920241855306820625493457972119506496917254833083679272029157894138365324052940760942129617850078926148315624902447858734240857260035981440513831444982972011496008879936020501016739499660503586777850709419849032570330572698351987214683446093926363996692750028919664849677135865918392843017507572768627352752341843727951700587078309227110894052404219760224684672312695201803085926691478776456028077221171739163908715043103649080902018633483705373678268164032263724537049908512406352377335226041136445816483875737979197802414261289363408284579768073480230652752991204582264097270362974193451078517950150510430524852266277309139828052737964954892715180631103972492501075546201341877994756631441111798392590802511855056066493841826589213916642947886830515406224275314819794098322174127618639013139193182660813355587739178410544968808356675041302442268234004623090941991247757378654425173604581847553183878492196835375007268124432903616863946335399581124634042398712976293092574994139573256036164075853539471323025691470900328066511288757338998730870805977217483984657283965266512362493645907329822051848008703393140952150119792814675196311930205865646970614696634525028138366387160126368544327856715694487120849162271293436388661565611773405428320766473494480464382473884364495883199446206678827954206357944583257686991573115887691130781764318527313678660779033821806743240519124140177763104974958907131271051598400965283528261339317538945078456681017394796976603061100390729324490145155274630310692093176135231573473766408801627718502830576405340231129458163203430686749325199731894625408405311861845541648192786302853832230315483982145676265043996281212089870594871113487368232212525244371976118842688058258547103145029615926621333003270268592659391845365331183591929403345839534959464933022452117562942099420477031878484012325788043146006323199181153844204298047000039970543144796718829969753676926012367843726752096595831797168123855204250946497748915840261261473850874398663252002888302237038116156811084253809763536430068465320984036660353287333328854540766399605458470995869884089417670427367957849955816269773510844869576642330376663647466343683182519751707138544714628321827710440606682532496145420944194247422969962125519516521143695765227031014483797098873688727321516003689563368235458537378903039869109126519609527360951368079377001156604920868367401812092525454149201269366627962530656663518460623043301496645758557322337083182357032892317104650028808505736607009245154797728191712938641073073241471139562413475892522130031344638065525107604513824233277158007628851368145958129382819120920635641920267609956700106963221231691239639934656376778155605982993505537890899975197010394178891669326171330016770648061590295086375286029502203766572571141057151020544478918535340204877276122203814186184960024134578817506203317703452119850507864726004914146475442111569909708227852654197797532698652152091418673976072453170779883347112734157561220157451085788026735455112769990084276725012563750669723188334516670823846728795414731463575313685080501453759742208328930665584103985694166073693663817862222267210340585323650444179433338599969400845334928144176518790141860514402486159670484976424086317141363983830544352363853308631867134852542772239531622770013047955845094994037184239165033969684835218334161987517358411184182919201698179857088771759278995029070890744441385001049060642379822861104671978841226913394664899859116278658272786426720413825681081692102328350309187855428405912835491714861343085439147771328432974256350279805992961387043229863377499268736799136086606334480667213077646150865280073292267551931581322506901387764928352363609700953411083463386135168915346839155242831357009853876361799036820042797649956082058600313391850779605067255642653693318363575674360623996586740434985177786607730311984053761451702624317725579800776856377693794297565491899014636500329164595069629827016496525777924203355303220708802537523036436799563957535881646748682092779491077652735243941386813119529864706807531648601273331004159746236990420045700349699687866059895684613612185892812990168078790452095658401023132074420371988060859125203167721711993158109405589809764918833676257118842948339156356181573128179341511028937405929574332350540762665583444700927691469409081969625034797198168850606347572120198829669726123937766545486905323273587636943164888404487453363559598250163042981110667035405655198850311437438465243879083027174828325574457629005351226093292300522080717043722747096536218642299823087031729981667550605051063487525420062011647058495712745197134300250788288768465987529222958120467545742734675321197457137697782452725730558401687780819195573670337825928823244551550069162227504634231747032711240442857770747337531378924558818943520899549450658956078821962461016559202604077226347101075801971738231083597476632689261715175516023569373564579048794896858300816081024656570758126932069705198529913289983161951905801643019794808368748827190414275282203436084106476233531972664179534648735920631328385450339895400727290739833133643547884901962005722247713135122942260804794369065178246054936787773541767346527258230766665901308535850346735912421026310289355230634975550005249622438512617722679719487835289151459560353170647334583301203295083990012936787443831047080613600770219181458970771580175701232647794215909931386263377628608061745472971092714996974760619733674413350575573702069403034691270945695338146274874914322819857134463112512765911336981382989094439078153529444940355582875659003051439974929177121335927756681887027394310841077784144169790469581304032519524866199192023231538961047951114301722450985516439657841095270989199213756330227801044322356790974904125239549862579406141789344557812780651522138639755291322592444224461720392074701131087966234725389843870110475276453633218328755465922814803036658438093474417572727757190045319518655198506275936182896279049384486212999089163980260005203504423930057673613876031410088542956471069170888680238570972198676115351862540852137963463227580823974546125288970002699082158649479803622077227759093366503880559191547973027086730232691397600138606414278594105240664974163491182977801049268076285422529167954318727317174805859600246969027232458188187636388212597415166936661113098703444162252674173563198713023683632646907154597371907003378711456761214559597551332082865699734664793198566255019246885270808775435584969151569771146220603122387220569656642061564323139464589941318736878098343348253799994394480856785629670235622583355904732314657424123589883336751410108315742758080835489099548224221546481309556543283557323374630615768241059202181337475971759358041299637182802172290218117526954213858401159936225602849651411954793031301736242676301959740185515782223637205644671370599302131597529323074091001632442930128716877279205333234423114310568115527643446920653026076763763144750281892782946309560254289881278500552626819621909748842418194626797536932972967885969289053571931691862581329788928809350797488406901577168075809560893210667063637451444089367057046331822143745316845112016156494386874209720635266980426223772010906866505905830339583640827636335484535501164480163741647479185026941287949393986329642392950471563561716065739415929821729290170835500063442062272031507611590839644798810397260575418513714536936208814638010084820988749906526143212771558593295221876872817133044238903238599908962909867261839350342588454301462640633309353358044452014134396475203284235009231096625119956629019147194254927327177917857868154468586241872986325299778007566833212334191598662106088422280317121311454438356112789082485149753124855785226281733466770537628489373806841884676493446397121616032346807006809311335194619546073960334700680303196608066707868181426673025622812317170798946827685019592547812475910407136991760962843077500489171516303770517325041920719786286683451033478162856339415510392816317612703994942715364730942380538762586854535461476628650291511196538374588849900628519074451073864280423330260735437230219680026446643266391061447978253165107013076052895936578728556540587472806980281961285266985732258389359703592045068196036780424099081576611188098236972357403400931355956515893976120530426600433535475679196603578382847291991065584357036580476373900800459859706671671967527805942985066480012415982361769112971470415860482806441205305103572316383525205071990940519860436935928075073356828671050318335404611403264384817205867117144524572659779158043095785943146274377052706017055251754184253566516413390082033924961635158225002093051906925676940874347928801108149034003501713756589094784963333140307236183781372398016426193775630762120529461898106009731336000665972282652599135129479941764768844313485682715800509932600002857880198777345666041471396330449380059077902394745628531667066474139355574407116569103444241490027954724540938318330285499726107617139485737586425451633839485055758728676100914582204237683375865815984958819246804289942548322467523256538165683635694930461411162864328165088843837299244276797148304560492627302936944404211946807428128955313597786087339434146889697523860379588083383987179740310815674550025714970915126844137665456955956248435157182063502149372853855462873039475352651766466850966119285925046847237023940417612657184662028986265843622513934552713144495635837130727484388813755806280344553886767302132002440723777271011947245057636174071438536861030014720605903937310595123762697907839359744282080107393049673541302165813697747392449119263803104172690305840319868091064738162524163998437098536076443488393448881661764118713495763935340164030820002097363061493611478491116654313049451915668086755550627172526504270544289061422846141488333454875494885076598063237459115997406244913405888502043561234464088870847548049016991226474980851723382183763906656428464997272021765815239543998134755302601279626040496171100508227000053747616844766135756721443129412440262252799067801894441304123017435721994467410228358830021112877599055178661982239577083345746998516119362543784091303625432915688594312350867680362728020046147001993492480797866724128520665282969911640539349336544350388515577461721444277851226306721750547630375075363964980678962474891959814993709557372729803245578066723502017775022672442016673410426812388753895872594826174387476885198724552082192263733844993969377567866016830573000199322842537306656332933794497470803026476497566216395478926808042223553242567981521160292386229191678096443575208969002934999230851725824325981994324545332304097588611302100701579866933513233102270110447828215322232298958125105953964371095647419720354009397208373992523863824869891737792572391608429046393156785614160503021502963803076940687135958109055349128431224403211986360027402474467525875593310738988076860395743793512430517761535780237320536293411974384261581652527839280632112459510427960252951324688654840627607333997088953912642770751375012272651080777408587016065570940958087312520965507776847505758027869730264925983396334794584738604224435821712007227851769998438574547415193129623826969957409752085796539313103875382741500061260491664345179127883281065154991370584397408066802904517507967999852186966289499158138362153656062766655503032015924432924034723287680668743374063950768949501678654395173799611831637994640783258958805606687085515639976204983124565533912275803949144382976578406052098749434377617595338936075829308831180304553384183977562268315045683183865831722661787738508276864911052603382894955155029207498865629588829235632443131440959911206159424428767010312020705216850002420991609090386509249910796168007622977664390183109756392674465115768181515565044797088119665984601202166067547033519899172794139492173202479772390179598323777078362097631289582734172937620642248611872262666683011461068858021619809411565276533762509343240709270231355907165465628714279059317600316597141945804033861326469521557994999323233301629318918115283045787551520113925159670413137849606427580351958878034643179424337734582800780744808034932148201836557992685510879361940754639847074489327088969570002451973500667549347484634485755365872204427190999688190302982514889140193357801590684954644721026095666371274461931698759861992742150456899997301558888428135808105840753853480944875076952189222175371313102836143794745098457770111737021074913352830159857689927436586945676078885401702109119817979559636654409830630915619768634975039859060995317894805178329067935413550612819031425247332762912321735127825566702233597352807697956800391491893023303459857119140536705511437475569415340112384246332348469667402883174102175228726804375546524253556937334861999922548431805859923014220919666003185224257685121987449442650536844798951927445853329201573225858527275086355017738375456740967632488540297991763209805012814165342550225481484089336490908956052705115477620708696893795139909595364407076905366486981384627262170163741510479379036920300844155725127835504601600416990486130347147172811981607111660698892420758342440056236401748368677051394677036581716397010154386671999447363348696843249244032516556102391686858147551007024200396650486467283565079392810540356488596271072212775447519409381952570969224504423602237034373124982470640889785761282777505289188577496007140184919232673737521845947664834375605859176346371188476165289153828116620420730161232737379966966864027111669462665269780557712129643749412750123349556547066328771488285330476356560476192114940713301228527825109679769435721097686764015778872396363225155959882437007543754802461145145520447333059302924497517046491580453928222134213435101603286240800011056327215252302365912380503795412566042256973704607677258133870410277163229092954401888073787953782973769507047908009814732637522645876386695488467992850378614221147314480936207677005249358122417602998344094093382307069350479807328186280328643197346389511720500364755773224173246516638430270035094457185629143924765843992512712147948409528630171930146924931226657707247242545322398496375969846888909261660314171142065577966166806862496073629540722162524445435825119295353049191568338691109121801949370084039305800117874949814586330153844240379852127566997328162809419805645956809692925022621305330761751214633060447091651040239872331333807104576585452204125396050897576275586194238097884923586381336749880489795803568609366555598461887225474388577257506856184300042288289846067090782197267588767446490403258295249030784269869884206717247376326351936686876672276054391733942433221753678370485151822755921792163571258825427868508105629059720945832974427313175929675112996328158341450445320120598514837071956976814099612104009755353012841101122545704600171114537133193660380237303350422784143269971295425791478228887358756342652552502118273822463041593436273224202734234773510892247855768285075634917798109322340900765405005430097944530176065552974778508147406856499532644908056761403706807241391666928457837963304475136822283635251453507509769871418839784730709530794654903273129371822194096394218458852108469280408035464124364637593052706642410521233964027556860968046360809643992479530351053370782395981937569905375360040559251335698117034309437861784517179997793638747326721445315554742421501631284425248112259922759540798520551539845810374310682942145150518052859488499618652365304866478491643410343004851864006172390418922464313172291284523742394241550920983237831284761704147165438141992081951507811941092768010350812323607281730748943829335108484475317055300242721393733422700724449279901078136160484964250067858555846701465115113166072663103726085728611529266507591427511327458881881904284450795533706181676827245181161968985696641266127578757463909507681804932465427030502641901116024846823223812385690408791059104359315072282901779804029404110097166165175097304452533892448221673838281750587397485732768249788119053546474231060630420796520811286976435784242097303104936610963163992968356157572625235999816559144104185815379540565591203573804268633536486855080762812272061853763813703090667886815579093464741947758546614492693111681632039008754514359896200774289536995192571802557719966786655574029831104481148935208646171373394641180555498090695403596039201016410230252711886673977537096988730934679739006853822106233946500482666926092700788103204162115057785203178717843538991546677565513239388722835249394025724655667507008528532701324908142683018212993028241137924499687542711499731529774204426953838308443236524612178898143553315242063723093322291146981897756460424147288036633534904432930436522888162772016017400321455342449997830019947008689633068354425522266460941284416835538831995899631605106180472108007122985984908623630520685994827511726382788302819969867309190472753815595453867913180493590918113617404656613396993298827799041938208184123710501508281836545616741396403523308253319464384903914038379464754234779920907005719810655837115808091167690793688924679978385617248015425882752185732235683622081108559147348058467004235471210665417572039003324857155530287283416711715949692190033389943639583150283677452756050139903824202311801296699807985989894579520028641005214149208691977137156020723848712162985693346180568837377045208116399889669579402145491122893486103179465042891774710912193729379057117057224760210512598561443857558439643415880972973563128325982353068256762341432784706865659516657647096948535830374735525623261658788002681880604991879463986735345258355165098193829288259357132238110447742237847661116036652244589264977065373517910756056211971800265460879916531189884041744928567072553601600688523519258830450782722558038260812651619825407012120082800584396741963169259885967426531960065740428004535232415735682662428383034053770874007258077713124383474169438563611283248143299995900691620854474549103741957902204726286603971312605808456731342672969768050865639769719477136801462838602154907266632886108732973316002225009767034103981150444302048365413381166121808078585117116240516279387824806010992023137226524526037012466541754406940134619294504634811357597839087349018336843888134725442311464931469420437769740668260404838509199382322703710848557123515153103013104798444391551464011934055846198894536373309588801394057759544251277230947991000294876284695965799047102154837509131716679016210849940516849273637864342453031674342081145413968703905931990732192735080617680892576546996801552299080872524301893663380236080460347660560602939510854182525412430565441012273919152576204191156741107844993667057149857594623493021350814786456391413558839483691365840207666590332348843014296090863607910419855196376670941651686137550941179476504096322732456035715142239549783734999844936289713231548185484665208895626013430744198757298166270495706035964426039924781154962681772784836255148568217150361395912954871270187077079599501704243863017091914775760887083535291901739683312397774038012522093986851182397846653908023557159931379184113711326485606063399026532472545481961392537431700256674207164286569149443860262883034135460238203117743168945158717165043246828490940245111214449319834957860213312380428708225156402167268452717830652063175021860318626934492164308083256611544161942571604643799733188789609836261943992698328089142604547977599542075549993632026718410516562199747430968267524123374826556503572026265843274778466057921421190401358436950161068667288249310339655351364067804652082323902043839366112008978571929769070239694662896319830310012647579410200037585735605924131186488157748608340580430697854887222961194740644348892619564361494894958926250089582091610904928927053371392595987785799761454328757282790772503848713365535132937639320200357143110602110591162397481048441714866120003698097585008291779518057701734910579084356504011515017754012919051490757914874864846728755166186930433586371628404894194550689638394610267490057947172758342479055530932660583742778326604055655632224617540607910088757030362505619638191285273823513848388121299198754085075789689184742429996000753605574969745448898478681308627335207029502120882596408933042413406278505382989544052650258953772806485863154624983365098904163423817673783199889623715566894853604869293102286867928597985478515947665135944818298870840917440422866621148772075685920045830598336538096008093958762162867283524374775222607992569218569130650900379753178458317422483802355944328073532180112277642571249036269349646343900258557613036755472984416910864921789355868832978298982198773317059002207783199520767366853812755308161615186965854954713044592930685217655669329229000047878952253946968015327222867926620536765914896936421349511098270761517286815652047985782923259650142133352059567253349448987235827914584535646800862148429485587872834441651878965461035048031331651796001644633769618861619535531651333208996620977135314117653752849710924011194773846581159982929077257190437438021610049571051930599234099902253660243069079384036316554423051156319171756669112805328316235571538390002519962856413982050066970874050175815254636332847596096378424561619796337393531328498486899980793541152173772071518066856686009721190886199137505901841339362719612741701878158258028070026739359695479456734228268815200948956156904215622231676104743551651388871790750999784556195140244520001627626780236337552339577572112725706375000718641304359209110629752177079547087513818089311254102350801716613667940444142151165052446029210386977801690751120201061162654276228700680256529907315110868016929679701270018154021397518134084163700762495081120945442679952587482537330547576475895352919658673410897397258626797172450375300996530873687673855099553674789298602125006079681039206509597860796397748130936343764747746133852954253860338470972109267849454746128469617798608487064186650352997928740060708461745014704968620074663100364187180389469339951574333088031720003356159126588443973251878405078356304735197367874960580448324684837096543413875548360900484559905998564882053620667723190954513893449820791132310569717829444273550449670133670445179736041562896546614867307728073253286403332107177249617016401437950389216165082653564525490144930174805557178070845497688075812966588421442016346483722581826544017714064198409552045634091432609637482275163117403131536905452672543205960173082808463119950255831097790426113144448420266670208507611518220793425516013965037930101294088285232963769337012374319449058630158221559695131561155772865500818636745418605668005404312186918189281932237451259675815752663847295330158077751291359202570440176012385630305692593859013319098301272144142699369684607697999730875653080106985510288917157859935863478049082775572104593116095474168803211833914580908694073212845835748364271026242934712719787990195642465309422125814778125196405569245823792356604537511762444109113593594934713012828550513604441121735952715639728243508160397573068738910537527738886977048088941562243567137596186126087853925308346392177710314579956377492487692947844280868980845367639793890460251229694623049623089454930331276263046314547878427251494164821427325889563294680060482024515413517196117356348819734551926730271259982584310520315018466894974894026586936826426714732299684772422363576434258859622971837738307289045075267354791593664518293960038799316525783471279988177076267368420106519525411012481661991719437359691793662802887165783107199129220757371077339364977007890290553030945875537749084706044212466168884232629664025894616605744055973970872345003352335172016043808763304613914333722771721518523615842156573394162930556940232176001809631090632231581120179188587047291429998196088732630097171831497360497637964626466053817192396491494059990903463749243069301080036603755865363848877457106292516773644129613016952196679513312051244312425591933309833238875682473667662622392386604589825271418720589899202014429370944904448007011889647033350300213487131416539691918271293572921428071396014992098953837656094566818633353623298265275850992403692104323310896876845159344937517520058666141658775670717626832051435976300687037313020269314423202061902983276793765819437540970162196254773583025277422709942201031774608040575364946654924469748263639094504066503685722998208412788498107228729790552168500537747719351394396929015488886186185321528722389434665356779761282777883941759130846921035011769078695533907957617148851598162664012230338991280242369075297451686853422029107041982477716262241435627398082075237040385063890807805917622196764977679707117975863129296884765444415977652423023797344522954331645628271875753539079928022462152962624729940728008817791019385401614843543406479140731106871078836928708327831623581720013196037688999030994143991215234787486247357220636333688236242534363555305579999571732368098937323412770417655631675240766189607809449526801366957931689570982738136899929652928945149981533053222534759018685409549828819955711172684863395864341887229107834220202972023516152901825694891650492534386551830379817870519294753731217253723646563105389518344866230198040263937787042049425758673839187691615938778659095769218634892312046043579583831222670004844511490954001184658164267681441375432052407891963236164864829585452612912146219350654803273814616378885778210027669160709574394810426430424776610290807824405720401426560494011109972748539737159234509745003264825058355521572249739576639591396733667260659817293008866595759071732356904601467546570006616839126334010951806939404812730516263792516312430581404701841244384559163114084107949630679369088114720766692502531248280495872868198698703510605249171217681307366661946134766957638174246709022796244001320873998040932391131235214388291936818262653320531269333307349863926069909897802272186125310803393223914240268705251821032592739473300956732092023408830449468521152292800098372878067912522952705734551212290095622727185414381607403752687691427029189188527347477317811007590895297423132685815368340963719200321027411015340552082779671193132904991119700022326377743653139511768947418208705599890359439320771203388279798316238530352344982224694124341021344628411321068713944216624548719926064238484254417224157689456060992765693922466429308799666386332893150481116111702372866122526466152337250954803091906192842671355733225190382997740777784025649647093261862342602748487173597538977899273914875751064973539395873030471129653932988312455312753083282242644617189993221521180569728306538890723836141441493029320009420830767004724951113076331699286849339729816719136797976229667479488629385851717910620538998039971938811121817574548806525851671354543591592162021321369360349765807706342363304747942912379718719637096360436180733984479428566311744765130847883607711073972836621786400043802934673715140772953583422686339123805500494197158614376568593791905825383480118818753754542812818540467859659599497583808826309708334357358433372214384036043616722025814336126001626333034175731413155989012782036118448689446656455103511864408695025813765316460749030466045648205401511527600280504053929372427147583637830443848047978787400465541863070066904505177716530591961041151702985949707798153042195684049453792387830710715572215812656967558221118190041946739947192861925726264271383279638615685128934735237030289045794903182106303685949531574884538565934265845708018027790951947222204124967593958296358126148927981925116733832833432693098300874189564988255039287469883828988336758031975385594938879602454349104035406006583791491998349884705713850682306575137783839143252035998960766838064054767653510479747751629094674100856184876934284578356143673772396036178439069713126217454690253371230415512362111441171877819452833675524251219427414748498851181010880990548518563743127692086506716275867717935060179620398528065463381478468712816019749848711075010511602009050168194949386667958714786300863681083064748619032510108406096834844782691285375927745750102567169060223818921262302330263213304161226661921359693624548506865833886189473796776381670107011750655723847022659467900546528353483232589262650777529848834611775802188437070471837925565243754543120727804073783885120447166537744374054398020111316687463618535673483811331108139458621573306373191455389521330223753264782418142311427202972559611231688461346755179361840984474309670197034088579044214762813443608501654111657546719876911285859912578163760171930094619587899698409526313685794761745667030466319221437488133172832898638823756237940241462703074251483786783605628075285310800804363707392148466322136246836671205360927161043487674408712538860948134398944091428029514035984251429795830147355059512427063637141263778584646605251745666193447518764321291338348294814581542505172281698191086948118803860643234542012267445798615462090094819257937161120686524639245290453928170553373809357481732500721470234766205126838373009116609150516243956842031041162675795097646579691014826136110062451991706507332500841144594854729770654716895510243320342226999089260762633632402630924129231761364923128758039516866949291626040024588043108411383005042015453679854926785648181801495803908344212134277978514412553983809143329984864788070916749287451848040253475717043973639183927443760066066830106097519299862158122450995388357170303503739213399936316489715560385560906081779582559857088984877382170545603651823283889519428030634711521916763737421642982589323320131349523659361970565251700731098173164809871289251303760108756015004268611075058766345757417109848902069057956636446682741478989317250166412061226820285475394069967641579856323140166415240140210312339710407785053807239663106316069535812561118122111481870251578108903786153055358529139314065265167448477338551911836166884513650245908491181447638218511235984668537340815333742090218600882910666636974385786338737592698017541833048744925223713433061801288737826609400815374548923669953905480874514192599400912579789069630781781770387573126935657353048469062363450078474381167239480662326280264601404164122973344959915250928706765331150925550790743107467375129578971759306326134667900268386533923099167670957028627030564893269329952792550454684009656576831351813684278469662613210448372770146301724325619135026907646359410734797628323913570204315730269407708213222407318484893193454379198844395321771306753913675842909949353806439033438327670636743426515422223146604302765783870815250296989997372594777785225987004817704163487535715233726267062484917483766166883498315157522768285461021780161902308301592143198034583038875348249340959286147851322327817569967298282029236586417026535684935712385746292886376242558677942069702855192922164938176827949256067907568727788751885051371493910832612240816878707617088450244620259395892382755311359679951688527083662462404010240938769477433709426825545378273495126959286428435692621380572246399909087658349472474582664698627228718364186354544795159858952961346582636200018685562953541598083561953984263030315649893075259609142064184023440354350175776916762395984389309761535675595167758181427376489920502504777301529476362459246392511775116376582534673564127099068213671838599100672173571304690700520628359046621172192428628866626047367879039486133895738189051042879851436881828027999718285125139358164802304577098118359043887614363051257766821257418836243148185785202925794566368256362973060097710062939070456061946013972243591151922106319349132235052984363737314561417583073672425323739187948610349967170150029618470256097643306915984251062691206561941721167859295374781430887903896404938515563071909429012507877178560170654476269151432634807172039462656255720242713159232789183357232596998761336006075658367421914867105201037144679045530259307042637482021121299115325221774491823991381870794963600480210459498497702719978733442123040925426079553615370684679515476780911686941095988013804646396979558996501757266607714818393271082158869278495952595215152593032923104788188970251452500259165323608366467234450003434247378574365307593100576053326285071728563734334745809012753959204780734393549809618861403035356803715240097474316193213892071640236387261053013398872957594471307330099182953719628172193444346162890851043375985714474820717363831921244505596777444890001034296334675142244781885278664976497018428236353659455386392715739984808170492719743128899504674392975582409443893997669593925020287349756678794961233452894019792719912725433769009363552572120881565895120596896189843372015738422554440460837532983283675975019647073323665980887510488588120956190463936144319751165294464667234728059759062211852178722092754264232395700141839198967393482247816620634758731843140736508290963265671209774185501952106732315560591852816606109980091104011770732900426928709788213757090833068199955268740440370568306792963777311676605123089210757704926928149997251188612366039111937381877534828900947340950277513166466567847528773112070961778278767174824294055356849922081625671962573646851368625491773058674457358730869747269234881135436722601196311169878894376300730633776175132764931338490012926260783784972253149842940754390782250103808294341295605888131173445039279390797477817770518812817996003193563443149734953940660814561949936711543628963294511240825828279868694523287037575159391424057329862463025668897656714326407301516862272163033497902745772519500992087531219797712410318329798464327222555393032955583238611783646470724681372897113183757097630388249610654277775289173373954820034402376278083635500333749172845219873198653841881396808566463643438204824380069228199163797182120615454190286778958267085842933489297135815492139308880146099258870450229011452702584118230882077732170813180824798652034976319825227937418102776183389407369415895450630722103803763110074896248247490821180684136367667772172348289586260136050113448561634058177010566635657622282985800951071540859318292669959412382234042137051078937218038710412091604309370937735406157756520715225563448448614484459024778014787171719474381933770954971325881236440030299782059425706057994753759400351770706417587355887298476828414230474435445415299417818365834726178589090370004909573477704252692401472326269170332242944023417487538354563584200062365139484046657389988253906111182635011509178899921455670052958361229041630685992475058727597781252114095213992054523739022647540949662070275162379923677684436958700525773487845055086287956664086059631145444618856612195750555015764810033284922778677119439066032840177136517492335671885653361535720640286884223007402258774603080312330329496382517818312628036459927846149809707336024699251308053003164601399556343538339126896397796958489166522954512062107158941714616220013768285261241415655176911057224037156497794005609940798016096621963125589910144726763607981793570714351752798392234006384541858242929184568294909122140289128908470788316030945417882284924315679184686583514593657521506843052084866678346057356683366766989287515684010904484952868175205778170686724642537875977356863889084847557427689663570846093627666518040354704502527178010635957070485255221441245648784632479624968996541609437905659528503504795396931051050413504036926376956804381379671541951736062196809651864937768948975511918152281808460620812093185440966883185345874125261336435300873022940018208882087255279811641351038984650221433793423202423929531229754052784104641885215704440390674810004115505419590867424115461611866107101237173118342621381297150658232784657469207912226374985599335606279440593902759398531657695518873744705623593586697089391206775145140055383819606712307048262070136992233041561605997467307614625817440536578815807042064691826339224468664119374384735994685259780938650470631474326686565230011488865282144869495787914947464125524492199474187557120948022568069616704261402639082183853510786356409979993381386574359827806918114611152299664997045402389241880474741919387020193188886103253773021115035160831262653055610765989486371806672963974479117431080891070066129754814748341904262076417761594488776147741259846636159330644664060511693621080155166248797319514414221800600996621473301069765867397563852211387664170605132335456039223869587658264422998832950360406103999693080412529010876382312935739737529213972639513541159970239412577969014725414479530310129261810920578503216675647286786969554641786735182558197302141089017034132714536351676426895055967532334576100431428904872522240554458513150377119831419681746359696865182601766205806236640724842844975185047760562560119544165187802267174913721173092688815160331658951766631495504568094490644212066229324802304874903238056488505249953050656485852238533456059615449387878874753119731286883660161197077802344938962110784356774001916731129955803005125810945186348736896292338788737888093382024908212814331599156353398387701566869239410819474855214307479610669184130304892958316910766147126972313771747354401861683102655914994864944656544641345946925255204640253907151709478594671870888725548203570912431374091938132367546561263590415682911034344917397528785325077331183604912496541455119863724098164980424031413421972755997574540015328741541019970585373153100965371319793907878690830456820774178891638329877273578583146810455587931841941867728283309020898108425474748955993489384712719113729424202131006374851198142761510679389798803039281207777684035121401079270918548471676682271851140307411577777130080931830677699448244003001951276226482226652444401994898128927522876712886926297634889984492276583593275374360242655771334095355645329257861100670361742356140204485659490785034917449158040318813994058767635922001558168672612511729269495181149951857375392009801095044166519206246271671866071027894549457936285303060450697662919130548064927048030210307882894569473150375032528657008036859414373318115626163246324505389947885657506208567784843611115032551327652443786438039781826663513867538917475202940456724177322020467429401100575798230525928870368015729669261815492369540774127210732052660870458435815952147827921753440458116079076739102704156538634359872396179581997691386049176677921682809847419807255142764065037817672670541031750946089996160004897644949808250810028846645768752716519597957761238350956258558031786548090337740117615482174068419747311259463643692646912576212846285075707907287119552613138251941256005150736052838994124465164377075811736071785598921157316718365302775865308969533447778755235958579412058487335700187569238830154500490598200310456102046845700312544740247567894268198145209822489521990856502890145425241446807196025904962314311101940244170292799289985789267830391570469965626118111082257232427512498214670528631791037459952869300963360150563551080097772723900076403847766501526221469731060011583607610525376726603705451649588163259499864518971905634771981210809507491923041558291269912758233785677651771709137006607796814899932256938340710950563403260889919106701413253134393167020851867829671677219477473900660409902415107106582551693987125776582545656173149674340511549037168412593498557682258944507025952703971656568103068541081734560396981430027005191177740031665194655192239123722297381473580193699928810392675391451473281046624521270599725461473306291050681346139091308953362147595230258735687317364878493301290367188935658750690545746948185611215172412883050998730059902688113714868632933181794194298728222602666148270297405066268474784052103945127177105249168175551264465244376651052206236332159904577583082105128207757806325371279467874346643365405803044979684131838996808116825306011618126852745844806625741793752717967369113045475829165719237927110234869774643918747305869525335765181869747454953082306813455616292995623025590373527503701680805652730673400824575876070776608732506420073236248053370315732651450531932388577073066015736308633740732286341071087317307861601233347809266717358340749329471160412773241434799314290844057617208085382232935599567491313449115436042746083041228098281967207932056659587162914972841752593918080557505880762146564758848890996262186117819553048711140546762538682710773107855533667440819596087328383090299302428062090494487834363444920710836125488777138240510058284478339656116040763702175841082406948628865790621146784574741345527389213497553810252346566171270817790516073811530591224083544966233086055573147240948977624101389212464933456949331529726770767626855511437045828915368097513892263554975699968892389536726143336354942660217295333300695704630618552500500885224100131534749743754315896916906302763858742857596248070215145537987526083939812557977527764433720700858453694579863385276561281145940153177782334313206942815560558604838350283116141239884328962438071245154861612783135742107126203824854313395041571844266607726212457146497791945680357770841660379695220830019632443163707515088624508366166154774410734614967909577760068607331604795762985943214117585844507142901910235292965984920918354919582870531233140749411855851360469138992053842336346567616236646123175945687895458283632375817154612871468484941207397400722450357556516133412216545910763502911229093560395883791950468707409759259890433535879259655704032908889254716602777494372673991976646277342990131867094281114205796048782909057773888854261130442181174711120039275200676716701941946050492266125635865129546238903380481617044957530080413055784096371457709479601346125281279481294076676970400780572928054917378998059118701589231235805069242046742595916627369402220201808299583927593179685541868331470784081822347993111023025008712978840968866800654436421007654169369848531592798899134935414630099440494986143526388358677561096134983923343870579650968798119796874123893346956561036487514390135682302101061323324221918399636218772029278331331263029211115204417777043779342043138723018085999355923184013513067969799665209960193220890749611615791439817170334862897833685720753534114801175183536495200973963841374567663335896871899478844436539800027230777055762030223357367448668123221150806399462276832120891536489420662875445099178301493269532557448012568417912641636495546294610651033459830100002608258968068575919620041919915668221414909489755784799259848783418721559522346204193412620017089834120139174179601744018874499242449289725831000274138350664423117448267018561577230255023007131574260945673641008547700449422842171026137258639921995646178743101063176348966342989938716043937996021305804706291756232125153832815542854779824921294239615911312251687051334335921641974870200718976824924618099216191138550142930237405566798910905147095857313798627920868121708892541125309793002344774791162657545693089951996933898653172119775446251191530662534800997589255904154670521547107171148240902591576414897571780149475141972735643025970493702517318087849905678799335858128851640284238356965750274103828756992260697914251314557073990051337240927248240292949174665187401249680590756034685997718019209724571949222836879595199958046349596064760555117262045943113143360079549190110681522091709632305983329646048652606092164251248615148864321046870510425343461506917059076227298818574508032323381399391407314541491701126981573229063285070928611326238094556957264423189027472267770844010896158584297277077550576191214367929432355913513228208278288584607245507828710208924114353546682123267893145531554809834170977903627457140802120883071711268919090042049243722275046527471395372100694672320214784889791606204686422405561659770171715311250839874915846735742944530029965403942551007526963737116051436498968575653755022721173292589142016004638963996795429842618825464661829722045417443570012775494775995153310631266768331832675950922763992347933239134712518877877576080518621858283945496896339871154271653771773995056235413749428980050353460961950974453982757999431768602232221433284886687806266830076298707102782743469927879468511890017594378721983115960267250956492743814543211915185648229245650481539399311619780524367257725439187476819112333596868402639572409646261752770715139893638473560748474593854171985945298256434690529191001217471614281961851693590363569570735835105909011536562995963538351106032057765190250834916481528358072276649818236352238652456317031284021688923916989114969359322276159661132441859743153767921217082338590672263996352606116819290987367878463103326681421190440570014488361918745424026675557219262031784074953581987033099973032519916133168981505037390968978536049779030767611513394832947919098452685057495757758044262501102219675324848777992428587160363238583598564422231715104965590144116585314487750387004937645865581484457744229341074156850133557381479412432120925456216640671640264804267052215624419340419317792482263946689847406858792173801720120159367196628104496720758235753469639311233639992931430796737593665201236967033818755764090240936120170151254845713241039840615845864737573953247637295092441644605150642069363567002890548439704909707431598116982286186358526962154982539200282514009072896021113403896580056751640701018823966139897220127236979091677268679525926109590912752747451691022340790832306282897887720571069230139263527346199809658618014967760992796473937691177642375782226607181532458963244243915947681506466214381506890960923768429024155519697192540660834931185768106497591262242898429378373874307717446863964501351816229485342619949043473335647447918216086218242457755668902686735588300075157228051856625395658892762959418647028341747291180920814676414029000712510710906899416269445388455539821136877462209078016385872613759950265361948422506668081073102531435480522542796674026011549942070039515630176175108586175780495036150025574657545029285955250393015234006928100179222816151175763507285983713348322505614423663710768700090586162788417348471739827995628150187152491374769911200223614366727818254700664326916612972541379313245342197820577024125949482494482480906121058147587107951812755125907376874840148285617488645122123263072080596783199044706805946928266820036479503368822643746741813285562373541321555810664803626793757615846043188288694948707541554705993712495738624657189104395630087537870987434265537965277089380286066472293677866014982658044059293987883809880596218599020739511837727097718854241369961541466223000906951488512270685407399482647819192293920631952362557291342329480007507741006433266559852736511847140355587788431486917782277383469922256520215324829723071351211566654569665173812517832933546768075732874312026042093568108093635785991327047569214616932943369963762277687977598698332690245466549112677739405451626355744944950645313693419346545135017404159058686161360695206709380121832566509705781233906290249039551064436631740099665826840508411428872434613920672854565945910993580309655022557818902754008230328076846973197161216490574544069036963795507027024824816634426532757674340694374486477793866186815288490937264501103986146618629873608272174056273413668882684267756112441052127956780981838667467611844845516617912663109708114920100585380028147015150638363868256922875724265624329727917599244768242453298974858502102088979456898083116292344255194951112905451758327076382299859362229836468388499000932160039296763514812760591937859977537033514747210714442334941418906290113406264965205485867891917641941042657938164645350749102199616471746238708854797911616622688067470913666571113498389345676119734838877287314308420079705964902559274709516988689541694649108144290962565793097969852112627087209534529079005730173897566875522771736268921807477827568329608182065527619965433434494059811789690912905885653115565567964078932393834543092631951650295442287701091290702635069959022151601081265613800273400408360354254887615191798661135777981646963770606147401311718503716474133038123029394136012367142157849648725580499886237893852893675122454742746920967900175626577903730881664826612215367765212546332882317592710672748961337932038506238185735343629467267192900438940588784426025715341130033681347201746134965953825897732865783133077593838678075417897204581316170558244470899543124809202418781350735625041305742283065232201298777030063338558052322855310765135804316247579604701132271099940753274766396965005647490221272434253569763700449993306932658489559463232327691000422011624605040668283149362348040406475228855588276233628269313502895962988777499513846800260315990081334354453082261999144826691962700810706664345127577914226126795181237216604613574110306126425547599646251669509316516174756499832958368339813921371467464372194628694763904120137480489583431125357417577495445231986440387856115115104363481753135337502666373435223250577496126008196054344578044512490242147017900822576184807023806795067537285827750394756269868728454319238431604812179384008584148022529973859955306609390968938330047994173792985263279338311648928191627645134947320441785901880248259825616130777926571207899770911236865300926721441975945411007013452804849217515276358045955230197032029635619248136672759822830533790438031339010261901004230336149160554073529405832066819470024765896253586787907779010982887364918571067663361122734770397517605236266343354792669370409579118764431906716226449669805428302057333985160772355854435482386246232924049923874884145286869281953993641953104057336074727274530897309877176683236331837593677241789202041423874363518349459970499842981909061063838658743082934775111482803057198203150070363364279235708898393447514833106643358342498262369454051955877102478488074024577819316381114455384597835780389356927626966620664050393840408772721262181147668987904804844078417750170439440669636644108862121864286309787389126894576678578846098117861930685244610888051714814762114164844098780426190882488737642257188225634781124578640335531813261763482127346444770576987339487389581038473250759709727180730223260436338226815289411811133739763286084909036420763310256113393583950577973469003054637692361530257869922858089780909732162189274309645300220918372318768490160185929395705396049451246550723137903518040074210199745549396002254813153386133452131736751131636984497419000927026950709303907795404152983997340703702203354376034713803331295916640717797087951142937842057238022319479038568545166242832102160303253832660918419091252468446575425825762856902334818486965789854901294745345312987671441028483423705594626689592300156870605001917346095220353955104435576800332066376400870514861086390283591186771795764910353391831660638259813320377006698513596449719764532143925610567371308612952746959458264592392604183910227899126943870279673540245076754163440532954432728313583897958070645294239667883997034085388051402528460478681305678990900654970372587664677598869725536125717046411123119083265478759283535587984546725188515616925688665742617512622243853683136177761469752510510526006907206436732641079141855049746930406539421870675547452664211985762202881188876851504587024418324062132487061564361807797369112399494450170118652146451651631511003010688476624723067937149694812561392463781572227784650453260799293662632687570308054622491976520894621927263460399441519756478942023341953916612294541927653957738072790262473532615170541972509560046197623843091036722319698133738224458211086133407454781937227369739932400782264515178230110403849058081171562203904904478929597463130362949745408632994383600149870096659240437789003682082585717093529775147504814102971769561682233070720567629319494360802551649654736034889599163103226782515350140415282664519327173482018164210732690960795544646496922059576630091512463207289578085907134611518165431109973111609990136819179495256416391522655693573877424695181817247687959560603398251532230488034610431164031557547219470498858094448173755585135162079673149887447828426172382181127450335402097489439221070859927483776690552734919342302696882201606272671044662225718580153118494697919796357683567085528631101955057638207310983415256432487946281801512686039663732353085354484002062328664008804053460465224456071973577340450522760670240121945180276036068962643188203309018138316209691297206589722356871592450921768667095846808466148902135770649308894236766271217229857932499397764616058520550172155478638143306546861769880739622101778171751463479266604562612942154686779341913429491464169822512725955031886641460526608033716661708167075472673267585988346751350955842787071022103384468566250277893908140993209117884283335607830540993793809315445925905020433554887175020717771295879275780642612556832876809821647136618136839763700408402528673159828453257061922924811041170212696681777201643993565497122761064759939104726748424411639077477266742541114957295273434018757720998817043613020163606508222183137789280068301668956149035441492483127780405646326865510649475502083297821131020842489574195154804354583573623773370694093278790519978773895938800192193793806103462906921187127418301164362928933310385762523547437196742662442656522359006396114207923469368618930240649482719463321126046052400267892645436566315268072326912452783537534597714970693990101894325856838750513137169122101090819014583886000282118848021321540783003601826917203387211623863186171855012285332967389005367793532457060490002409871690378578834174220560907607611258146666327226098266339405912045031649041687517495274321962736958200648167526339729284142200796467553251015473901882500304919963548266498317778804847685244338415568894905220380785247810829515362463097450488407896796518562805617575612239946105056557271264591164975406479885717692220187244396410346640028780536335218650064483093416830595069089005648442236323226867483667170354413275494078322033239585261274853742179042572958213070701191557218694301890212607537481197926891246080577247691188046235834855079600766414250607965899247402681847839397156695968117019335464146385331610924742175169082090430495994914015348315782078005815506270172811841839213453738097069405354910864457583271421047095175350337653455731533050362466359166832094805982925660809403060433878915630012242577263323524718602479788988985758923513776934866813366662426845331599659211506568015989023787335165383713310167827303489430971669901022730202107195171645978378458621814143861976985580823603876052852866117677961840279709848254740358440694622509931309524908623226754380673450824269597014468391252008215816983670403037742243706772587363014613412636389136495307323686892903536738356913002893436448655180148966126004183939732687110876617751300394220331516937576815348513210336197839865757233570592812654474922247229012551879267972097557173580327948058634047045280543948948592991950788796655368224047605651783053162514173663296473232573774682631417639989684140476338579492631989318960306610971908375095153909951029356857023422956639349642118220326035806925175944670787399119140667545868161793418236528234004989469052604607723574879721137235438024616612022539133313423000592518538055779216395834186831164403784579948291974740772990243418192483801942536794891759177115327042438831015509354570077745811746424882666267838187090077030793994890789069729828466583728074365540324528739437767899968902358696074700574391011793579223771036936859543512432551611467897261674945857978173248348978195132274153148133251162362109461272729232693821101033245712408112671682503960379832885542975039422307608735073816898966835325091370446442181570185255291637154786104666498758022413120148839885043664378101805802780357685058437419642016874285908926723362746389914251963450856953606745168961874409641977509187304382799506877723975705748172997594080302749048804963369693818009938880690024786870762188504424321149040231778050022583476862534762728557107760085680251958367822073783133993324080423289596975127183296424539354422910334716482317788674398440545082363133069936051764642584050458424772964336816511223696335221927153307849231555920706623186508541759899539400026661029564023808498791790204639103994410491848551722853317434891136894243118708376080209141818979570726230972886398331404355764549625612075275259420185374663238916839493162090544943460036445907076086934841014250843972984666706903444761598847620373988271495035352955864027183879692479122663112678361486629739893060715093081006104250099783347928946479677410475717938389950633367984746039838367508732592722046336966339208341329567714187909626448604763808292994623397339931432130393594720873888121059477123599253814666807237016232427955453759934382901437171854483164993653968420060923289806385534171122752187695568868492055388890424305096931887754860703204516112816181784455760180907323856767260326438560518710238711227656763833643652189736882288210922250985445976023578935306172478006411216521258406621262508430669784479046980401905250003254309591882178011660923773248550901291446468652795890452652813546174852249980257710074467676546363071339131404012888286510828890211753090071674813895429398604374346150202475962751728541140721074963245259762474751270946369444271012379227816159836971081704011294934954175333697521771689361524019673842205418730488084948595873712112975196985441738749021706567020813803066136881378517918332843134690752104558423934381018030928253268981635262772564878443070932288669265601070483236257587242179257478321549169191752691480357756815176905471592861421369815428202866057977360633727798883001131975413383222753908085413812329218219578210583485113261469498851651925292791134709711395519814065898509606918361884506289829793419912392756422027771989381557952625866507581563593603708059339888659237857028475980016076138868651563545161540242039444314346925641041014126224967268947334553872262538487212572054668168557554853452885057253862446147443958467519199943281542605059570091525358452459523373362433429259021546916690482641961244101544176911464720764549284377832465330055092176388539615506240489724570619281583080097675145811702800903555028535122045811233293113540632129476828779166416859081276781479976807110503605221113402051195294643375588825086772381844016825209461909884618118907754360106531234441934328016142209482408039034912630605596725909305821316255494357684307455638374574311341926314895499969130349737856301499892389776521546471968536369661800800530692688345942290319037230738380904302341019645658193975965764789062848196228681858821097584722531555370867750520178931726548775004929829865309371274788053587987983594845410908987320955058729242657456135230132234357064887951172288105223445883011110244489639884230836858620767541207343850333717346784940144878946446184624016260536490796444582092422619247468385924179959005858851615574576254776211541344132424829145871625860242127281128949343392243308749945255624268457483548966153940638466747588018642689902640986563723026747974760239971501726396037999594693915764939717381708479780266339913841952833513313757783937161337866696644205936553282645881336638153259766990574003962759034898056891548875443837802998824479378465032494920984087294838987080880627330029801747899327896462116645740753109060940321283161950457935428694117637401551745207834917334381779252789634335020240552201148377792963519148883101022485534325797536547995247643751426817458189880310109395790611997581951390209993244196532877763012441550019354171324330202726603227420229179793099570852047359208214297165994600169148512077339906967555804946503036252133481701905801292650117038182550336132447744009873895081763651818905754060074728337730433405881276638963502748894639061376725817506698706549501014589551332599160365695782531708424586637848937194031579774170926966110177063409185153342944606770767334922626000519137011673505653369571324380276017555280179356496707588312278207489985290990379024823022315351543877065504678475828332768761869383761443278230805438037308102329994921843466105578377733545144165875216546699018966775253456937107851973464121172986026947122009669293531331362104516643972148047667698970192351081376823223926309114411155815071903089710013937441266155706523305587139066492754585428454380800595649838126784617388149535456112280408185669061126154948491875345053231513394702033575005768908829977163635766112963683176764647090024441211031904781272815947453118614348687689806598466899752136079325542078259504883094996354379168029888827859252522219340306634583739244876788662264424574657737467000138297392858731009146727826073312626422831986383357845861636612527731352671528285302903763359744224284291700193775124290318999227659937730615831707568176261326116555574594580396752684434735111790504151328282086797906291066731655629628923314726166039964450346638921833544840471439201886831165388588717183313210365258959919474914916899699079537253164566567673497838022480058263739473187927781557700041307428930448167733039713824629633252952090974236338030067876056180734951422430064751713256253504920144795339990063057537142748034835208927154300745541574328035715049470895137251224793926206728627305903656959666930737634579777335482708420934755755355497994730234201139391614952427057630581332586462436797700748998642072221559797695190437693755073915093201408835706047963948987901098441505465200244225411083958069544562933777153550589112327194711403021880308219205321324951807297185345637300451698631425282788128337815058498819998365547327429516413970660085978291813090505282695354776672469256611199166135955286530354207026324933333086109242713428925079121247384917952893915983632557686693575932685271828595676938072451089301101121698052726569008667080102435579307330607243902044592064862963347890092307220631664603959981255145441863637288767974577511721877464012533955263951798903289256229143946061126307910075212914474644200503948131077093295201178157404472349954092361498636016145346953030489756155326287990775395226468969827339021579829337057154867774186733956400493754876731686437522397670267132090776763495781371637009718714844833220494888101381191712733612883174618701155361629742101634183751671076701321376071598843271388010863349181602765617526554828893274316375923268321585106767271898475685159631358188688097889056531214675514553303635427371105200551797618139686922970844827635385601187633564124901168989678456490527885787676017078661518788631324504308944456277418364994750590356675406334811318183728469237435465424853639631098471782140605067820438360963474901440763757254903877160262332252238582051993140823692290480717633296039212512584586459311285412569270949934428590626587054540861670249065848453948353000892057425598702356755667671734934839860644253156060907898403177179499274090591948692731914638326032126095027623962023825461717118893252574184835060232645246070487556517457618233607478830403039337712854053418406663616022040225232845562174209606744210779833179660356064042626666261123511371388055115772795997783852151262286170264393240275422990788371026908128933670757118764376619658265774472336135205754461078931320539017114401387434489697154201397509247666830890688068746002410743096668999137390181252851131542590047536603938453436450828489850383419412947824914167430208931079325012267050349153926369273714154205049970671007650521185638220942314868485195398137797483640687200300420330779636963686832969900391909775896205966582235236003900684014253379669425025216487771511282796633864049088137867030156456698021364720564084049323649020034229920999021201510975614365952401529688305271817960069798019842202800378473439584134516983249245089109493400219714528065776222534049905506475295103212387053378450422858069446040385540949118012386728068667835470658315291326390097344998480136696973010593100952788735910830215732275097355611273690970955403157850932994251505285146995781733439443205070330315721905006670530743113678992922367296666696532410281083115713185758952067995141177929999356680222841572722312120187283178824909500672560433170018520617564967763611341619536522385022465844957083232816991077780209284854188162922121021853977606942912172582126710919407862692969033314395115595480520729344072456726245612989816257470233013827687706330921898060212172795856389610598391828722148664036505872493991862114260637322501249027883748570967835611603428387620364556615435433855841534210411810872812009623898160802548756042945435801173808519920464282469450400187334250826129978309429329401419656229871203255015728518006488594962953563920026509973377413792207059084919317571357824926414504263079399739791627394678344323421538814491774219662131916192617356855359785270294771745879533634542809449851026824393732620331383342757014447143177905023276215786181695880863852646269486917570543756195061721206482591579850372934983701629640040307060982085092891714269383566491266244124527755465843441710911196938418113240070420265026913945198660558341401962189733096665478850019363116534552401867413131278851885052430058758089034968734417065305130805756655135305901239289779171701006845385931715944602871825363071423176509612285960439821534771984065935741659166332803247900504937119426521078312036621979059775136211314393601774538426658929949930447528173262971451247022045152424174092956216677607894459509539776608959704997186013760566367367889891661898480867980206153192147073707048543982968423064675096653727370750543788154621831848167810196188845795115375155598006918454274531832003844955738672036404491562680549214033855783555964665499404936892870708880459369603367124115231931533355482474846268294095737361345409440941087410869931255813990930600410093532208405482311590466911434151653376178130582011728716951573693788098016059218438852038812121270287502949773006930684772087148802755124691946730903028114024773809455788923953291976105031839100968113403511320510695522394019540050594784980043340053360962613658173717493531194633522460418150101590506799268759702305450255824352689841459661323921617359723766903866153526440034306548130622846556740977548951674135646662552337792957155375130991594741643405231746846611050250314740515981677720251901151648874425764619861779559533141495221284818006128524295490186227681746329030839222033801408593936228665539096068523453516650291195804575308538253229631226681424975844066039143231270397052350239892485667946022804010906628585812625507519061819096952449630626361561241272894292632310226463776651277954100716331994250110185194712276992483102633120354081716078485151342084385306469344003106421211737676585762677035075197176129433237874732528936912928069987572321825308318228874699122155201850806896439993997045027749536535752291632476481462707802887270820150190279608255284815070731495338077532823768882816302912252597393746048916965137054700799446398785490426221735720442174880558045436922326067125431009970203092573838040337398698464600848236033150196172866823598920678360559845222256210590585528767792816512415629082851179531001830107730620212672168246540268721945270624652758866617791846579274015027390840165188292751473857686971678624369214984507041534365343166476690130632643421891979329882900701356084125468311410645391168518061964829517714270344279044838243837555100049331154137986011385692692528403712722719302404104040386916181575419287356552799504638520831837250909850236029013065367284951214450328835110724554094594319579636761243288167973344917117075085331527464278562002465614426791329459227283489182533737775784749981876282406871632764282278041634346099773251404476436278214126978238794676662962754202142496871488846259822740363712256745295771029906687346739265578182188174423537995729608002202289440462000691935327464226592724056724637279979263214538307324981133800537918814782393058427063749762815964897272888850152206413481329235549209066276709513727448977638570383459304700760979179546066138736130617692902004410042330394125794411533620625964515811460134672991865184231197067356794704259151033049043551872616107261025463300946619432098028362942361519913958537281695249807606146204666380925008946870675933927272300862708685318227680317813411469954655432276793270331312242763189824891457335431519714568070176158454061607743223121405779303492871261431124997861586744665680003615771779751180504743739551367919795509010706422179043974560584868624929962698464162995232932886223743299042570455622934427002180058413434091821093879102129939143073606244459597991938827872585855680888567214291756221808569522787847437186244741105861868980369035287506023818988552403840461594070835881786517961648191773612138815441708592218682925427079055176680657856081522476045167863695891937141096413958307952688664414527880079878184190923331143408674968553613423479393249054971649943706570763243666835934087138283410322587013215649850086950242994662482239852928638387288504792007958399295502214502924889842281876183615458474364187617749448816129921367905845221716352938111854828692594724902543247828258165644890779930989579812168914320004038612692028264746582524099919127254064576183432836507588911877110085170771376534806902811515732925480796492801101935115793734371370619059442729355576186575127745384763611335776035207084104276042580054350817444714115733072196879553634232308408176104517625305867093146892466016163288537735669654445699045163515473993525251537870599174726019204223337090146729553308981965540783551505041980622933364493534147841970714623081634209733855012391558968750021956737043179136244561552121782378675772501419168860010514361816359556538234591290804468986880910748527025811618809797785091761982190447235991136715779355415392772199352577554339054082472294503945650311281648861565238953083807663659023681400519437208620297916993319754418887535277185201651628522891635681874449222219771499827118420362662188578295930075714026403187286395810377209679168413453930716814463408102107535949665259015847355395688284885817947058555144841307306668091496926410493879511906123407445164495766038478668929285280282230392318876310314385063910921689398650219127520309959756198811906555614051142689037517603968412965999920290831940283741315977742867472976567016810632745508599218925939870881773737859658240994512929687972438468626351186678205507287761655514609362054114865799114736827673073799231531943103927737059811999335652062153154334713602201096849836097441295307068117686004295384670113700623928048933892174222953092489058758630395463425021551590363985349936589276487074674833297502423755492764225771844165410328903257665954166175565236370012038914290492856737908630006252703145480637442807346753242728697437827744573111900800617032302118017228203140110912914075935819687830228299759039761618252375215977700333292227863859751606531895267380023125713786388135922732188963047049475413393174738440494018706272917418871803461521720738581423995047597823623439796671713852439361088425582324429271905886197992921160996398019333734879680906205043126395769111855603543784894593316187250556158473283514114961122036050566339717312476708978833310762759284457460043211339852434803885405011430543078057188956032553659952905819398176246772037404351329967231590411957908650307154069012050562254878440025269157429844131669876417342512915185763091501135832219836997676884673066500593232394066195512470938114193894703130605279072554256471489083566261910322590865007261751159778373441978976949951439163302741271570703507325317574684713134569101085232037304348920536879355067947680337854585539715596223810853336911025119214354727339107634971892864688450507938741799345615070800016087664809213840774110858364987328941157647546839361443312884442096777252961859949495801059983516181449706759038123945417102901071165139251389835791947949007630235918101227489438842401024574138589767833061171349098896936653609535378620918749129770991691220415008218473001986755912433529524295128284282986553617308857429966127420174283628672733203876501950988913413888773051035590995841999749116705151475003050755358098056451024091241346533428799428950780339569162830183140820821780620880725583563252028792165538033917050595726033543800724759205229548772870455846592369339322596641695554452961320725502777362881325020488840699949009314303437401305949403737425866642776315091372454129729717861685091959762843020132157533202327669435006983419053662103391076184334024905176643505669087009117614733327977545617767903158640120410463517781374548696207828379558436821852688200017395650209596057905264713466762090919299298544995519562909584684572991524866848831735112955779698943453166731948395413780766732972119440172133689538469861776209389122386813656636601588172846253338162615667030066608782789528571909534871386105189188856224832670285334164161417025719169719232582328295321782375151586648843596173048085887845794083287330383755681587671507221758956129750295987157651290410575949664374023794643768493308150706504666706567782695715282835705164558191110372856158115938333098397844404955630590385694435532837638596361747458013561893147765638360186568394130656383296814301038050594654826003019776907416572288092481761560589949545214205562985970957023023006746422000404837860102039486361281582939770868341700950980279029380206243830092262390371146238829193459076119266916088942036957720833489675938639948366838718507146910329634500278629850497992440617279100563973890950254588854624420371277721600841147379137519990583972111421719738285314888681133688599858488239064205069878249823931842554393063661297118181388123119852297934264342006496458179064925002363919806383566209470259081162675105893137876127935487689500709449758955956400178985901377805473679808242572505752011382857211312743939687135867248782466629684029420462657576501596815927429298174268870199861711515732928824192279444033125192669531073808157022449463771851389406474323585709389936127859768540480405660190700068856753425956209589580707835840874073230531942260704002418411431548735633617123361902001866863510060953778891778996431151732040118978751821086886107620216942473085599324354151325447099593597053830062786849194027343536199096491566417038214573514133075669474717936102878521701948461945371645042454500829001954695346309199856526739657255567831467393625501624490776009700944914481637893960395687116345403230385443175829690876498341880840386539340420095811462452972556921663220187565212577725479670110364270288176211718891656434162569516324642980766018637674414782904684495259380144687657557502310534435156651931682473438243411560796015698014957732876587011233961258268348911876590927234396140066393810463570012895187702421760784207615290860036436493927486312490695413016434513853228241394992630156546849433805295483260769408933533289397454218775135625922449896013589467978230564209001939122516676274634914626373888941514359008440832851529422947828450883271627409736653547063518220392366799661929282619358897187008182792526152684487607368351879533298676384464248019086040491391112254816545834324319934058514312976723339218176827099300907614144091411639823808773660433235217520693940035727164724609331271714187822924298604155464648688546378273090663742774936599851047761291019986081142716975597171115200429390901261759610083775824812257712143983705346874122349669693530783280785284071145750099055626786462813828566754135410378892365179389274818216191853852512462154047197710478803481418320036832717608628278219360788873292181737350277295352570113134789196362688399906422553734711132292433571639141848935685073783969380287684242270883887358331985757671588199933886972161809028432937451449810695247989130931854177914382780160925334115941096726009075596494755590504764288197292510035394508849451116384910406497918045093678664571043650371368314130090361348944092884656292963816314695128867796835454660199750930000418064202850878197958646141526879615584798108127660355362050740410112403424519082736542540829850064959986195628871237584822105061174683365752668121204129782272128791358228994564125408318323748609515415393050244211140448231322708228714959341319350431250282875474498441310081166184740256876374500022616930772549556207865715748158549640511523370492647885603882271621105424645310906178883498135791229032223144979866630036068911488708684318831187578268320266990882872709377969180960478508526376840308515813259822926683249994663006870357430856536104901772305969325101275781627411881402672936012621324973441951038590835148601772887736951851968423812592247555428489392526516784095156027159752815200583911122196766282133725388887501534031347726898511254309830943813280930390108651271371617349458827321553474006261064753924129165688099504083271984287936643876188893965896637242916029539084562262848551061903561115133065366031121764899639371529808865186885552908110750665413378091112155248705403736693870915504664519906958178907253777598631282520623660517402188884385875813660709070424675157645740343576280619528606971264879891727046436088591597707003528239773652135006993511146343153657337157535944908075171328717389181824209528909656012546512817931270243357165791380296782943782651139319679116017108260296280000576130719115375423904323402209278656786420313888793981284098319398509860221766796636740464761635355758281456418506826604315359368560402176892001693983298821636853269313212599690238911924366005728335926779248011325096704674356556695162188344492694868096287374169739535603873651633296559257564542714518647775199942542736150421137571836155912148236558123223731476663362226694954233720901760007730686519590206558589420246267284105337835283556694302497216415912036001568672473076743905116269156117396880263553652409433190500774008630764841371742518322296944597621726330665181714467420313623594456795199576727747573988771328077404202343895857052405145385687301439916369069591021174945648077523246861768744506453347145409704016458314871678447387236317448004223101603773550292738637018862279675339332874575801029698744604149377819603460889951948286241789042593624312536724218800940929688444940243888268410810323951639851047050731219809657823992359469035378748975544044517515080025106614702268687125846021312603604007929180397704892043073694450211648581241893870392908439132318209865729482471275795189384211723066671168183684351309328965013507390484631246454440627130955596596700822597689642193465153144924070451895162376999952308574574328025774630801016335342175841093568265649242917511193859007801359821766672331025599820969991727422120571201769600190693518346029522930822382433683377570153588348504695500874053123938093142136916267393759149143092323694165553132459756669845312279332800134007966561161904790061119603687038613328531305586878754883199478409979003845529350244453271174604337688820634324905979896935895863157055564966231356497063469895570647701543418294277783070818738378721566828322957638648175236710654546111983932302523852905961394229870205365891428218757859670611451508585445053592087428670830720313004589116225679278059906954086593585118045321374583240418525652575199189709516694828222373805097894288229627676424222428549369607631431232784523488089519331191025463412591874778249629811530268419025142389985808909782934767065205771604132113129942956908075258703568016273251088861971529236524943855317330538714137230085769022774056484504637539339156789071886248605404258914345776897113801314335363157169168885544029512319730548193243258908991795588116021831607149630934696569981398804522171392485871333222213829100384713943643832367412344127318232743342559345161567053934976966432255277144469144309052422399786051322397095489496035543750979426184437631919838999885284073489932923216397730007034469543172083150112497033677542398733370449692457052383664866551607884647946503673041245706402166934514063014846621801041734881429504716952603003792681986364650737919865484845697594299070788735814661623099567268798343578876450268596147114185469757131621002219481813293230533272872228875394375171973425171166649580331891621698581119397403316650494003941025837369890990243565170418484820917372675892422802575527560928398605032441941240427107730945774053575872718353750965450273963420796073092216502498602416204731104352139608622481503291059840788760104819228452639732832442924503223286749830714908458350994963389004140241681553672565517214624576892207542260745887398418973865868536186473333497437294983624712620978513199841026500375866406360597093899359412677797556504995453875027914859138093818860528552142705697172485620559616118933874533025650262316637690229069854000678018994011090372357518202851039590217554646133281831406415994918696412026209107308076779013566331642141457782435732661676900259082618181171495114069901379860541280139379320923188877804801151643791209279479951897328512812739775019056943973721739421178694463961631340139447234272474565347015373991192383868837528191342614927846773735178893613054964311305699487850996585368009299411004824071168353924688645473197467711204866466162759272054500604937725909244745036450434896098200712178585660891409194163480171728576125122485654228089326914970527284856482099629510936043748367220345600551009502884577389290823883689372062310724903242251105046282210050299007812528392354318276154479940809394996654369242158973514010744022968462453268543165679160574754784214197215310967121129828096210263877763548569893677773532857095444198892867091903247210861758413164322560738959682471746697824438001122708185103541546976777069720935211491555617093097573453107126015572923773832772223910382471346115428208461117954944488471963544745902112647534641902128766206379360890968371251720141738138256151017897068281569694299073634767428005194304540377335773467724136552436657553290104135890299380211155828345887636882813777472085260908622351815772458290741121882011309638529046457730025159296243601807365309046441732801573359691761828624537546856248005582967019056228299137650701405596055116500982879966050072180000919741138456691479445377644371788823364704561643541150153258489836721228834425949608289936742376810896698950088240346655139403716663607740707522918981095542260413555445726737725321218496005664574770268445525151624768502987779985023379124911724757002186945641994468104661257647368339540440295853159081920068609317444743868780750054966839443713900517080385228184662472378695537622495968734526119999672537368390314252262699733945948533348991861585386717759616764764028016955225991846155647373761899709996692658720828346091220405080196796508714075618851120749815359589365376225660773197335701088420454165557876611221867268888981994910235315718356101450250016096691748738184755215475704210808357120178519822308880249434853927394347239026393035150489864897703057047756791713647730370691407337246045019164669367990758430266222364613021044834933051560697203807616637317915631950800501229500082358981371467390919483415197432301915262779303160088228491556596883537282594477810220000807076171292222278830809010062692156634521682216270218975290385992389154818659384869796629614174224550512818743580593040278478898898048338410705280298607823958054900137427100073333602842070144815843968153414845973981992063542427642975806632187671622979454484090134584568003703651482481887898716718758828304073056370898485487242533471610129635521866765241950904572871739631609115177841407308191309836845258697220475121838927009264392623868741288100936183558543043366906361870206222667513628049208602850787305614373460426359650795200376899443955960555677017942631809522716141644016471719632216507239768109798257866910523766262313565706919402979373593742239674046982273757537942096490635371378914012127857576322691387347804278474592615628308166612706350571533871585573672835353903052158924561019839156518101619501864798058747711834836913792574721897494828676333781499508098813298488275367361644964550685558732436759272701047731266177844353513577143842867492839678194985833992767211880191927380551329079966259017345289207407886998801617608528823810094892760067495045702894310230279855569014542395276142229271782471779200272007194790017217120309605968919144937666227904105690958073252535839655616425472099846176139109799655806496827100869044796031703784612242815458137765802352199958058896890308395540585160045253300811517309949945323490342603757624977712722820441466913303590622752186442199179382210833116174471932448380945871944957580361684639037192105845907124963203480429056627487966560675437193967048491368664249209307078537197951671097483340282493520436224712709187691505178873227938246222830192963775931780513963328370473948138960971769137868972256773423429650072705066195937124140351928875620479509446643279291558325259748797679923969125965951681791090597781606062109915527063943436603569335577407193744981354765386198569876138395387526839785152178896061468846112216603208541131241493803458700218494373364806370740187764695275779967208225895506658531079048609657947298952951401691885476953651438064264213855137410668995262629599200430503673452506736085421158293252404538625121055505430715577409637964311056929250037744439200458043053316114164530462658363964181240523913378293097920106443820962519618831400790996341314937814634468651652006023969567474231281160898847180023671273802314807226304694224318038962655872698178071207310724370631303906487310935722108842343744608120347662556839549004575394410510442580602981844350032080016513579705757434503809994121599146965396378554183999573799739917814988878543584084801671692626545671908734443681633190907114279859614958702253335131486840803028071791737629240685532294674574780848776912341438387329757532200771889314503747966843222735723715392058554867100165533677397162337648913966195655967131229543358223708216791471981139261250373724173085580782619659206911261831699791008850982672087931908483421885090066738854299071815061812027315611967621682625710235837494038868003452945628407349207408843062555445146454234338547679141133932978161457148776797099530277464390385258479701349619193871006034563874591985141862147604119260611927607513299426769645766253101727437349362286118414909364633075449719682268407592740050103197246790157129373132712326288013426442501560309649740880446564305598202555930237532052622644271671080554375572272480331749880296552236914635725674705610211646547948802366669085812837222207526838028371911150683749816203420266089771862007949195427809134752323118043480433614527833574514120445123826970706693063726152130820837789727339374881003873372007891340842096005730992314844427466148464325080604268915293236983555584116654004321958391967245136740470527947194075261178804990479211358082891290006376462812390913585720128435258026106721393029143683072822188868299534981601411599767251626993617399519751526236517905214923463354583409053043270988354857173963422510652668605771601726075882654463995005541590018455275341792115657146621499270356833617072103428209577897007685449409128593511908184946939336622541049590474738642318074199203583275883592875272701254533103244872595426594939105950717792977348207573738769108329716965054973032370895697480002393293121797843281744878949964411462347791085681979111302215238641083114017230008952464277205962937664960423614204119044346553581483985481460716612348394444429329006812061315482009646832916152489389785441728902443805165581664188078439422621363330020333314992588230165450371739935919111847553029122285927704109867863289137612912254464764091986085257361291172586988277412704049084733902585169373402510464513456984628373658032335738913030847000694952021438074752163637439234821715951093386705979788585715241082382680355000645127491505887411629816027877124596512587455721892298412376005341780127149122090524980135309064948150575034406355895584553453962037225718897740550794740027094775865922633292750745670116766398571478144963129489062711040250650629934954135739902760915329768153090107281423827964539304157625265779097376711810993550731184104590357240037577775533006772593782435759297436678590288281038274400398102075433357785254298961221876581939507807992525186281275475812136530690646860039559437118697131544795300410434597898389979068341914910974178762984603651229457878924236502664235679485146843624388752695904107419338845474757027655781777562179315257753465350761647427803109287115604968358840123883642413485020783578806747682814203700515902919167305196893025758827546585996042694959627637379738850794938342156788794094174526896558848128443585567186603488616716277375922607743166909708480147929713617213825080133680027111602696730854389050157108589407879962201072989072177001896863396452859232723643644068613804484975195643824183817324586219178152142775083775556344122195033946732514581724135197271436766246057036116371137240207747423642368393643879833784702343150078037561505854382114189073638121790182506197940425736556686045351189587630715889056735334329955415194509065060980651811536693806108129485379642983451034226232254870614859328726778940399854672844734538466857049016973095685741671770007897675567604709203486135281722177956631726016634627208022268812775763772630845933463982124212969545862427070890843757636284897151172538211608233386638131374767205862740403891686968493767425965549518469435088295011073948687626835324004204874390305687221598388202575042877442253329052971476263906203325327922534955830086780985347464880710887450985345234066076330103154586868238345886272480348006686910302020968861253688768817705728392019652212806034808516725317877350575614724894583645434287891047638279056577437785570599551475490517570330396246430578680267672493213659388708856140036266862799086177965810496561017909319812947725479463223485131942672280586336190469202386684813933890588234338126725326551083261598930456180015259648173006822822482706411601324259872010985279950539368394772954606391221929584740081033522645626684875230204312542039692432490396395926765019787836035171993198317320122074691602941139097210409136123537924447092037613521832298654824158176298767571810053546287055789197234307045420634228754061979451187831632436176830892928860235823054442509431368767420492023039319776566249959400160187297267498133632640256247394541151988968696299754232342241632840339477564698840343547029110554059220119023805998889154689070737430350028702848390007344992499831762201389084828743407532733797304730438083329217112294510148397910628924997011816022591903592842677453242790012636029888022562740762721200461607428212863746495949118009279436166015403397437872603263058202923524636020439483496433207766024278975820012589579264150261231261363199739621743547248610491107601318964929781864229030529922490296511624418908119900290034057034254275136015087598623439741012304629220955144975486114582278066705430189989739897792432282582776594687276014232802613118579104079777623997953898369317996108842707209359873020643313599254962121604088052116556302242955093132405791067475597036948408312855569666192505746102600683828417261168744109623198395697027916833079050168726770403206296832033016305589342427008052726852383541121544820733660143411751442027906142917171614705590832547977853747740580919762744176030557105500695070985709030183319637502271459193571730817109322859304217701613594306864254364201428097603471712272162847894995075685795320138541623287415439018235149437955658577033962135441211699483144319458210044131011000295192168317047516461693351668556989384439766073616217242193015866124558545274618005705648074760864632966832211472131356508770152683552227906319970196794110143070676269689256556015479373620998463135485905547909189132727693020883574431006559687983066943685559204723252828305400116532829774086396481201436682911061804372146499065435300250922668743163433637206684527699238648030148882067114667414112085492017723614454138064053390012169612775908668251914053877813699604212565160559843820612382662871817492686002684616488165031672269992946645323281129162376014460963728160465049435472974311936157880248610556006439613137589541025116486603776738001135546001993223602275704793529969793145337291524832660058710560755958554851162811858809267414603539801977375969428485682848774638046541136630004047171832302238278899390441266513332709759766193610662723975107646396313979853439050331990388986063351434967930180379755708157419118594019055160565025903378793512659954155578075280084791837071304500457433461647612768756274703274498376610012679294132466094901920350806462189317853754776860797892852303948092489058692917143149975530821796111693923026408227981815239656942548177441418342004042742257394627449737287552070783816356505921434562301193301099288161911958223675597581078006387550011217630156181717854925576445377875783623482490674839291411761737908633082742356817752572864324712131573845026962887813238623309318117540345033736858480289219087620405683512355006434287006453568159035704689051666018606766843242324979833029362952198871678195469117327748432438147063930597050628466445077710619590105838455674136577259324328699993974652005154927129558736285865350624917783125567897794989773417536973537491194134669196130873805090573089366706815071235313016180151957223462454589162486996110866820197969215247660999805524272767442019594744440484408878949495789558662145301597232754572295572366271130002560466814159267092561487218339712321027591716559928761350291798876099757683351358579457052662345232653462469311006125649813805593237871759711174393657822832527896493538627787851350714317337045623420844944622791049928499900273964695571472042453831623397065456532937215114270541443922972525908274514773044775211702289972198586120823303810672543955029478064905062471402122748611903296668120756637431490835112943008529354160240044218781744181198258671541149809447296131202624671766457897234857641936629134462125188311653638012315366552250030093670993291976908312698720857371452746281134954111868797340703888897105585307613551140177415971394116203750241361489686944944312498979933480506740950645100533605052067392816735830137013894106141361460308159364606981349820655722175978516401517612011866164989169398923512262288042304126354009977727465748390491109835229760147071038258074478409299469290993110434089750250949571445763099630364722042417272916315941487910443805929258446716399756070510986680612557039336437092156158849605284635025728941512080703519059374056665405724423032443964372745533311115557677757114237832507670448466693976848526878573316031250007347935849560542465683610003617123896739287331145814945145159495132352498922563800045508051982349491814931021734265962152879087040491619467361008015711339490440747309743013386933787411180689015756916199348454824833956640095011258531200766950512979694593217129917025782415168573695367780527902233569759991549043270855884909704530234735802059867199310702482226704558601204501548403475765168558773337155370147140861385216887157263621695248902606540856100037177466988956945020966873413713138424974784764844245746604178773245745201491003587298439335017754952682507770908822634072437802176057531255446067072387786858378670224682713193442328419208516647534681254855053669256089114240831128087432007223907058960805149949036676104199413565763230647983625569716347606768026384757590792691147610912308953116540247482820114590954682511289937842880199658794435684374073074485541490988430055321544483574933565152975757396841953662523320341348534289557230170104990109752470722195328297440965905623066135619948728056174540170302066274904272478858229263876533564698624004838001568190408548496274758167161452407626008907963131898199143238096847496133501274467016121346834659281642425464523923255334699602422805018415247597828512199514054644208787239818461316803451445176647329797394438316129623920356169122949670187900010288931218323538846996975464819367196968779452581196035080653144911594198436391748415652266576536999196290743424429021750226675003116048737856058015224943807523957908166378568572543669345007393136514179982437720537928428562905689710571321711015269833821709672694831487120639611184986643207087289018364328557857633596099108682800910177575623538861916907844032956202802373897708842428973873575044733460997977787360589484005938712065328130738696737372483962583625284977760512575304863753315537146430984815573042434287042618226542454949788513783694262493556578986630487088058245936102815157734572368656437123885865124885465569934826949361855027504498591176651176208033168454343288775573699037180255107960220269052319135270355104619122526492369951053927435812164799154795468566411266283683071904651264674706143116949834608263854175879575248652005194665120191208331852301192603251726975141800475352499669493357751496233659546801324358893021931862857705089398087132352066659524962878613145743973523609496158454573791013588910398154542602995239667117296455277030006312939555550820437215685881707885504288695838653865529169743487137107259886557284112414042993164110939026731758077454587365087618980533528186634717121100493675797574948983384135117281570656044425029422517143652541812042631901720039988860853052240505450689146727869696594148822495097563675827930439983450682489186694237277731899459993074143215746772744886666878836905091108442586845391243659608283770963216571817308287323631547964852486350748041285418369222973127813510850771226861458281600932802832108931750239357052736596927147397707791436578298603975030707380316432333522357629383433318239097928222697469239195219534116323572961961026041293827957576554605986037080266367950001406955756371291573189340866914051694197070883325097284994253788951584561058126035345455439634501038769387200510586507129526946459545273047473074212938528881615521332545931941868855627390675363169010980020423247036383716526058103956014837248991126614579355063286063489331105266381864644795107416513001516010332821828593321646805681450218217506762828835168711563960171771449953952670741305663558459252601387348031748376059145296353501979244731526671941382653567504776347353538766070132545189869656195071059858631603147662438844409576390706756436516464874410444503748626366790544560662484814212247357273231819022435427611373654551542814027236827622448961037716730229180356417871912389585486211392276780769375913717633005036535312080120870648916233254413282020575191440442218179085371765740670400044125961292561287414821680230470578133422535261079313663522296404486012429168687542684227198890589889931934144698595058919342409183308099383429838339386749804437204277503782580687154099932077547829269934199729046901992330720924081583968715348157415150071681712931724363434944380562304855981708776296156783724371756932875371548306117335559028210542688751959087148591477654165880174965078477305982068062703295387969991673540631727565678184205705845183688507302499828717448443105620342293001452920157766481761292546836971612335267167214626620617281921340208305272007522817527539747173938523937144629058961401820732831570962951006165300681015420589467745150817698765195780096515752939929322165137607172653942083569231755777624135435096580092320084892947733505055682581578478251230425327759490958067682779262909067474516044204548846073508183201812363319416216087200138730807125862007685271508824818964747262356100940246029572711989744490238065415649582312846328027028024586036094073541468236950825923337214840410858838424212369302954300367129098327203181055228774319033095129964055505706889194738140132863026601597784099577954134872744969338948263072339094580818909720631084339919973211270618510963663665032191963426341185768258160084937636687131246565859678988288027664953993244416040752843580341879971404219562010086554300723072544023194033146896922262750187008706332423232024392094381609897093234212280924424848708221239690200604436025361904818433220251148841151446426970819966142022249617368255582861808113122395728302438447857227866474861682549842088086150389423271057882846796873002371904468787876440129206042604410901119792801267939373033011032589317276043678200597605552981761380246740416062221198489890156410876297347964281172395926217832362664209264484914872861524482668576609692399005833841474422642010040741693928949232265672126203629900766380024287155779680681710224682059263492472514151967333089786898087589400265576393301085062732807214142667707490000525070833310946568975783719200134040252630992315745088231820793127655722108033673434264908420551213748826179993793536887372432514195772828462715608604436500780722328961081029971248462109523214614589467453971965634344259412089791110588321456670638973850186089321610806577301871512806317937318334488206247465524995492767828041073770646619815820676808817521253600419599260494662914440577831480946380344692848134342880353083084397431999244735269824595562887150325888177426998063443426897375253663394741540098641024904019341566468815081251468253635594868600466894035239452134979141515717931934173459560027157588322444062316979140000460573251830768478428063632022908221901789153483815068791537527914170341223570660463423833158717679163905182164581196755601981848448704987154562863054455030235308232511701129077702306915761185686234853637520145990173566830442420093576634930461069202559299680946635778580678261842534633104871340126242886703974203138359620065139023364785311235569375276155969121501821792238774423107887453922589260143371019012278357848795769304800406464491353350912468637411436263749818639074248210149124194994670430646519825810775972862683513802633332662176829802651255504149651330086395022621903873647932668257469026198434896958310940162142504985225602742959976782487331935709303704846168859359548991254905079333567789694693049169382056798230878438408941596492258189498558135207570240811486149629308634892779989256641002635654240911317964208250262291309725724665705085691713895633183864647711525374472043455913615520086190620267920996243776562529372489775245995346107146499662087242803136018141342128001960654828303488425199694790735614898106354968020267657091393428217219921349447665380885947480111785639759241666074779940170028824234735165368550035756954730405342496365370375534643762878206513958420323337247546266133965562475452314546744554492919773515840467476209702057525342896472273271455924323765509647152284344926887414130457837853460496845824141260699459601093999695915750817949198750216582025083609514944157377093475283040171110412491166179154466315354376397299198127338677820861776216888153602848455411574057168081686932198638668592267059558446325594466368179218375781786829004209756851998475808921857876516644906054532377663463455482155999592288682189540711694536859666858784395628521660976445854907807869023457531938799913364208849444938290570223788601864448425178408451918410570683887639537773957448900942385150605335565165952828301142491627154260051638447784209748356103704259179722222360046727707315082363588138913632606117304024975240547290859143679959599913103388761784121740954836991004397896534301126534515951285742091386402178252074904047306329175882003393949277832983368519511667036388026992058392273479817740933735531042890371355739121784306852512750021150422738292781076218771180345685395102835588388008162280808014430802454140260380597579716117796374322054087651553579058401662316222411787527156721499297817556292432515444494760564156300269953341399086635368294194035004227795672358051009139736791522647876490810281062117786649564956151537539902165648481503532298304102637308950832058458715628057898235047165960434677509697342903755616935001101897849808219004414558916931495457061409986222910745683619051552282788844349067004873655178493522114887457871371510728755761046619547504089402181914152561311856153556372150411372020521448414593682669375237871851075897683112323333596217902275512685984990479133841176564004590080045123924573053541330517883362202850232279993696910768615846620007660878887767641410285118263910104896371953608321004671166706691606449928293489483730848963657246635592334742217914978323493044921992518606977967222106010643812567797102835272447366346361619794972362637130034748559788734573897549154619815471850663079845819273248080375081541955598991414961398194417191678561402501423286560335377425004858544703813645602234176289477129533348457350219049072576334697996894446546813708032444692728160359651099370168446162536539197092622498704791368922986796560021749751359011675284259870860861005459861077509217092680342158449387636054839643201023072645220165540647825469814284231370367689086480317136087844391964670048952777973295459902198787181247240004525585932935208597529825252689754636938407126394005769164127448526428520397582367325498267010302377385877935750192966099492270103062273325062272566683318994421392579468975438281692486024087021602146225987812241942701542246463453278801400959129811268785070037066039555569155322061376863991954904409845216365056568258340007696259129269436275715323672112956170672479755530081081892266145898424113670195313988577684427820349607287098509447031132156272859562680829677742182264591076086776984244587667428523341912251582270675337328048545844360604082133888433167942622623363100313118968430134332855337987968252617036440608483274657130845325986375342723458371248572357741255035363395393322468782360723398729640586582099764837967473178468465018789728003675520336386174694225255252149886850966352416595773796025628270202512364267879846467821095245736419256791406361380142691796604594654698972285289963896684797925474278763904427376044848007797459841935976151433456050892375450239867815999828474292739918707560134532869635923338692226360532988749038412763099102210522631344916222310597646040083262397001635434209558140239009807330488399102856844935529703274711290356119267718906677160566041273403797485515155479615460589885926433181136224248513537000472063174044990800981133930329924127761258081852309447653473532975770085866820837700130721957172715032069742786139810245821132232408204627670756491025417641606370806549307681132389777323087324803784168891003666848306262038361677286950683045214868400142107770736995645637038728799389482330277490345116203506076046023266525873530279145408798170056497094228153293401025371833434234649105708463160665703374957480572171851807078856361662501901971776934954998403520676497342932683794062488971939424853321563757887416112295308494554998979186593094859510164887052025513644146522399104609814332411805369578892107699981329513173524943072955769294993615609310916737721938465655443232977330430458190684610490492869336807003217585472530827611852156261808301462504614054448606770853813051927562352453534458096747519385719760813722898623515035362517463313123520487921845977146129224632460942385907083419894976891948864371804173073434335682514786270826864749087645782976134922024520034028336746739249041383543486955634296408519196781091950264526603524918138904062834555433481561397192832862669029785686536259401751391777032572999389960784988503057002461493890296642079348802864748720080730179576306708264760111868795057283952916856216150593444079059326348843081854533005390619872167256828950511197018466546550423624446799574117800665507172315976848705704879046847003671621887170627068173569744811368797162836877405419870951648264712457250517225513091195738418913049208689362258365344265971331425035232962743253534183918220528190726848534903041822734239168440468970515211230310269541602726433703803239857248716339420846470035760286904933182661434616642425366360737309208774452471399169034172714655049231238098828642468635139008557681709964155470423702023153495485862366899277450759844125230890195497430638028507496913442663182845237155968035762495181541578487458781549731077790890357407716337162192349559888111949069783363113644018926920427796866453920580867942798662564966896104017389564698521614283032953793422283781494373478102302853712437656015670669330589313373821696048196831970338129615215601381688176013477194961358624280761104892924687576595726663560364699182165876510659494722510261420756862661846143759234789222636330448855138206395049562730845901365320461093331335703546777921432470080565726665179981407805382065686201205053175521187771862420042393942151361235870985351867268860764539399374018000449313536764150302880079953344345461592401472542502143225449271249015836643849982319027099004991889568284789592274945270454668598305384717112978305612695766214967932887775817167840074671034901363502188524893604609357051397306713588914263105956526528994231536109551060832232599606809680097845856112204857030394603307519020083381133544193487858274737872455772026965926570711944075210267004827328748639036528246851409891088663213109695370912448712971422751890615784712069850759412738354180630907762677313879972778734893186714277455712236571613385834594527338681200191478615667738273203063793792893383865004878929420436115639668680494479578824655040946313748861046197537341107119745608824640853534807582438997995378372026142784367959665664427018112486675017853511892479357861550825541053245031411508852911668468446953444466690837674938541533248132367500304584772783396619106488334534996828813237943714417988766485710379596967896073191868613306214817039742945974080611916736713178559389039005744041905457941000432162527777615066222127055922459745008289059339051212548159139993872125119074003760463670885920701691577704706549363087901206905074024952471152538607041532408955908505434806746680458860064622988841442271916117129684759873084294580726119310067336964736561012330988533783373367619249787205223753018455312136521043335802395651551785849207090148348378291880499769606663127415896039642165930839194002065608473678860817553526743034422609794162280499545471133549484724755426208855601312872163414629521872091127546200932784284682111639632542832421019862496049486512776279291839657805145561271735593629812207431873915583200527953856122889218963845504561919594708381190385575536454434405590043720544127552439737111603647156145095528698257419000291502224644571620242972575582219058894725109236553534428836110258917723237672005297803164367627175672654632305212915825076774112676367010345814200166189963578585695526927381020390119405146160225280932605762049819783153374331113929724017726411120361635686319471134938390509215483258065586691976151290865176738814069244600056114763291262886478619358661905338230940658310080792117181489864287450919679090725032071581501248172995595512061844277774050136512350979706535493196015384162679117626700791134353663007578885013035992288054240713451892138052080263393212465602815017389999200799545902044856169604312243015808655113435771698924656909006541707503031892034432547942134504632643864390934741449125146315270098069995896093539330231373981278000338916569152956421052471762473076648872968553956345266937595177594270252497211620659698026534381412500817573800764071970769935922236352244032837971324498282594055881176092299239020096901330169081926356243913642722744528669613208679219600158883092730057350462826594276315969930561359546341917833580648814479379782894416379582557996092657623986697672621099016295941617247478179230779880874498278925856228137657593141322272519094514171691988141173973505721853800710986303250234101631594163638220592693830932207317164418850352948362163802979525838710641516594820139870794507172143731548252303536015798296615449101945237827161607879482888400369051554623321837247425903493232335599874010481512633916413822753927946615475995505283185830668379729728631914052134946206441770794263835497715954584734523723434923953296660260557364385421425443835244709228779338916524282371098434683774030339356705104928630380752377891424788661452098110978404952774445601366811490522220452957033627922283669857734391027738159207867914611525423894814855106028913782097131735373017503339001441279974429009125894229466188208516813422389719876471339457124910546694500577107171368382506134210745709062917331336641782108014441627514272157953745551162968967171291556995405696000412253151151941379320294033022667198553138436387937270007894308094270782666257743473639646412495664055268744303502632713520660639197044217124409716655290613893921240660627277800190807086466100464294517374518650030351498813992302082804784431857216100818414613853138456177759632663322299747420682795641328073225650597078189543054204469719945635728895458015035692220945825017140939571851352914743043931670976277782210020140414347327984156292619577150359490839289319837423657991963427884655463062226411316729720413093017802853277852452248815911419881871208565721056773306858242274838154047260339706087721127825129672600447391221949362877014579938268201347699129497195279033675389575327797740436501844596759213148775441738783728855822008287972973050795597979587123143402192485256975781149506694529579739763650050889987259285819762187103357478143186249220729752502774948492755268921558721365438925571515411768255902752368875343183177933094966637560127809030389948632117906235173244897828524683658663803336595401517980358463194043326807181043946545536433563479548152862594976581257910533866366680724994009218255513626154964263727449374225392683883021085162301386023199668677730335046477725662331341730858089390059590133190437191883838684308150899314630554660525664341883630974010852363767750479432920388465377658248354092552500072581508627538856294117429839842132425390234974763653287301311485990742923808340939654187735455622683709073754262139003774310478286974087212865180706100985865173508067904927209641239272406443331931526812582884490297083945462492248924910776331133849367782545430580822798118576933526388960324391888934785204296373943474390646464266025143819456449853899966123400184741137335644280156693585647713399330851219081497769091754424876991530523122053660537160100193384962529413101015685277014730807877989034086231695140668553805722647918146708234637014831670868461968377132388761378802786473307816774151115980693747592126691056600560207062861423644937489142907117699683437990210636442443316514187344332294803223407052020356254566012584012597142339029538556790153491771728482132269980246017602309616163514440545193598698031256832156414232349033866234710300805203270887746976111699134953338530603541903892432980570900325293538704932555959076502881708682191020701643604863615763682511595706674861993028328832294474897314714992787200986666167838904617973993449382464392064073061360354141036654564560893382773456759905024152364965351192257594060377607012670809826896015284571355488805802028733664021942742212604507622814421149879109048747313523946966681118353805421852722209718391033223041470360861449342215265528935566694597838811237443287773463914880619147872071056631180774275513760518437265223077988946141638320385407102395413887270056744187201805830730385154617202842468997901935298555956145575226067959248220317666395032589145630876464723417465993134897155186681045758638328909574872250709589210502570219525173652391524827362607483960483752377814301080626430565976228102447787375645473123326243088652800241075682081794256508657807995734178840323163425453308836131816131825840823492976458442969027373308736005517133801929871721642211056876083604833668799824145665760220407055857202428712566864360545979579361295608229200416858718151712179498287057475592334297673676396780604436862418118669788633028274518524099729471438777500685412793631686622759067284927777753504403109088200472928751856949369183887892261797829953742126206538268142767084634859066349399395615033185556425644492110989288849392565520029218027588251904988052895379803312467441496317566408299845838490699722019255470909258666337539203349907629678444069298186846925474362537855297874700224324321501626196163308043261835825486884960785902915955079193992108559988577958897958403446470963995850885729420711086374675105650679736721189314852767288271035024634792046118240850608773383766485653259037060112992858220424664205324514635191818458025441732935200952751232023475423516196692029498956476846398327382230561306144250936997628311000360349945996889915001321366299557848690796690134630952168120762424087300305436996706359240777407167199877419353138657332798292930663771469647421596595690300003128933844461204774057830909931522843975370095420703947283381415014654567016635730512324946057632306731590254589490244611126069649416415253006213176508753264008467347454388640519547631090994224795250204029664942454796407216980785014609146661085277296172936226270454076346078489709608656407967632953318022832337208656930762056351572032693681664249514198914624325494489048578163626657245643026330469265423683442244452186986242298527643426976995486636272855706416097739445622533014026189465628496558867067243981336242376255856594341000671881550775860821793474072524845636475837294558005202585031760684701908051075397825775163146954964468410543984510105948890116601326524482744817122945776282018745916470075958439940485502469961675639044118216044181861510101003732380220459273667443796445773231265692701313686332626662143055297617966084780195601950299199081472248065606271213652305985721541104148049272631747336656795153215121276871385766424007438612720637656317580417655317258917475626844697546271021043167621957653123354249465951197091647871397924641547937587351390498117794446389217058572816070572621613615927227755147284089816289193953573022610487064894922201052312810918792259456855761057072334692396389374639905761038070633878066697527879283967076352335015351706351289631800749922196219599115437486147073888244386129997324160256104181704649383852017632506292405228868938320736363643540714943400205844386659250252595474991516353426096177430518445176956979004589477063542721037355427546923739344242144386933666555115878677424729646123066564379750812758008544494175209018989671279146278174462072688786064247711600347652985618626270367096217051738407218668545386852144818453329378644389002199970144431593903201915389229959480982443558182450845536773669637802425364089612827450878807977996627564043022224160592861344015605853130185490043663122356922856688687613420291172553603809945726643872609374251230600366919401928513656048928790921448891015667709719173321040238022560390186069737135229529946307824512606425128383843598643867660359732105074208095317006206791173081636193123562226844620543719554079343526191684028007996612009554933745213400331752684399443068121957662696152389681658704284061348261899735886603081710289846329338032745504030042912671691061080560320456217841173501537588678068591021877398693370473316608809666486026276184448435017065961499805591731952971727692991159192325994746649689636165236633771893232395977294881789918986276875276243982121402368653986224362340911406905971810236567919895921763903295757626568720098478161493039073189339707653382352832199235174817340178465386018206285741306194392896703315511906093483855970319522333297968801303013029530851859347102562143716395644651769094223686108507111788793273255563960006046001778767365844151216172826618480622658044291868968669208197616195921891509232792733783895914972109094910998761420541143361578994320002220223996846909706567702549837774100122070287240130429481136734183786303483681331480074997703129785003025842464425047609682193348535908161756389909970693168419290436298307005724855478605216082441708426790774693032313439719876165695243244521167072965382980060717721130638032797003332310316021828663585899859900694397223598708014511447872040069506912517376344011254988885773429987341713959836436940048032395969793839040950327108325553623640142435423705678584561653866114058792229748521750520318500880545667129234165943018479083068114719322650555141357978220755395204341138422122235037354703041635131968087058201603524506495136461220086801962749700139978762528136667968150415044750050031146602187673929378745472855164722223875792626111090210247896204065234479185460642616555925575535298246245818931886019289176950249039858320383461387004524343978633927708263868719178655093623340561123417941270754739826180696683185829701011672802837603162984216770480053998578566574130837426765584057368274196108255666406877420236216229002126895402587882274661822293548266813261836816400989524788122508697996476497206404734406131465990220593377338584932578613302498579250171673784032684434445980767219288470575630361101830362553185788353009900178358231632041908861767962805692791516103227399228022693928680406074652747943829571973487562326138419718703455201949333807685050185310854699982165192269001102033887549325933689429241915399458172657653496315859241347021412872926916065914541002719964370946306809396464056622925383079601209947112673713552599263270095555607257952488658802886374532148787414755446857073518901154385848462598185249032499710142058621628501906289149959080436582164060313506467981730561718968234953579154836777629959801509247371181828408952352343849862532645620092140074150708726694876798601800258930610368098872123355558448523853326022145324230224523468992607186104603446204219285887945374813944448820355776841344612623209768039216058367962554975526460944817301725864310538511763594599567607128962060006604055190633690485160078061157936959423237965344141757966271232679430198001806829744230992528772888097318486246066490273069536446124115726388065483581705337984635348833180378814468060066328502087884426828338797771047270251066143636203554438427782688082945891714762514649041859044325387959119367450658068643601826657188475731759473540810357905006805152768571294707045074792213213181954236863895885684655976427797183605147011265066952743304889185466523111894630116115765161848298012648906193016878548381533768615589326153787534519439147559515434366013558256184237022839644431200025401103127453018264236768659706077316346056650276459457005759352432946887248161736503246453892600867227747505914310817510559374630200516059987963085296372000289505114012287160926231328132646017284709661792398382794101419007787711210410226861497421095449064086481224968571689426949501297733078298398771955124125321270285957162909331071121483135776927971099737989758471620086147264869737169796969081071282989213847134104520101756028793830993599703097628789561465240681927208016536117678338548699363166663338716148002869360998708532267078675988213902770190941362267719838315838730269284875283309941469770281630163393699066863977795209745633548915434735648328994187427304175294776118858526134612542111319911456948573137386158043482174186190882861598467993630289312814943680230629655276427681440819142954434701229065016888366608267869648785069798579200747449146486613990553232506889223426841326394196835898002170159765553685078963815071701574961984143315051039758898575901567365132131386980745163495802807607181018244919660591280587178186965830074377592809440676754938643633842936269425641040389662758862285493376948682850366375605761406832930047355948707794733991167132342397388596075681996785126589761939461791185242043719075939141734721655220886951504509238564762458242385600200477489016869725799395830885976776244775925111281493841894020206343270306957469476811914989593018113022578166410662663027021742289139760542657695393722908120452229506152787865790732605767262912736489788950260890457052549985779259323004002299930027829921223506728939621666203721764917870235207732188836747507239742755304926869289020048535101962239160838833846727598684212842979059132005174412360969396135980813820985557510098150543261225982180808019465656280044419004392788498738436369100506400421493519002693793312672613238386353084591247604170236677825701294931999581919063918758973579090597638871250581052460192529638473447398711293441269802530230230465879669463125699305831701013592345118892031657008825297810805472842334321232421390280245980419405750130679293540385401763573620691350315668467777558787413578988095957930069887778575453790130775141568975632189415200692647136155545314128542787127992186017311522210751020135417709148528657599960161344409028035106249582973143956356365099899018772881734052256791506465065665489505254707617510329733256470375729399130439508649110163132725262967458162224968890609777940454188651800434151964443574488823358316706172878809384678063194128173116332324335617138385784399659681829590321043700406563906376366978572077776012055115878175159481140148907075393917719955396987013459998184461880915879657213882034964970145706199930995226886875826780286430194464442374328596126128618999183041163668348331517806633938857877233472821442416686225114141820843909383860532411356215458257117278139759085478113327691616409911146769940484631760782144438754615921445670252151688300824694255847815192902723009968289880753001371055010751620051805643557333040689870874462732032174283736735487483033319165131482708443570744167509325655667050563045483481540140981532042029269171128386859073968470712015770708965700336255619529005397503229915876582976368839883450493648427956158327859414275757707574972584707830511715928104770875781032538548321755051074359191621245554585401004387714450485121456680339313111217583688227121549252735405871138421887134124152225598653877034896856857198090433997749239362784012065212911971494960687663205635048992207874728289982010398813482935492887061165477751904604471204890901429172667368074222700433184453390429036641256676214637916475037894332657475990633034734348687408564842184845746121404390997172774223107834800443639558366332724333495531716204828577889241145375467230074431933351031969062824865049692753785895010604940572047652777607417050399366180890039099500674810470671598321057217012548139063743881267802103073628307795822106749018743120449647897195798771318552741002912911330931033340970379712655964966205234808810113532015654058419608636864968991464324639852362604624571037675306692692824348522451319349941097329702160223570285667108844337330657293059203274880261420756962267447956212555589182869223880446935528789866967683793559079027856363069853065168148816402132356034522579291192651935505923755662444657701023473675445198372958868463097945226044302286440348524029905702013643614004014381258269023560610719224603940837702682305835032734206410923425195951274351051993092854062231117287278450542015858808456943613720018244465483313805231318054897485453633940579926100983297288187513411332070778394788113513942769208787229643226478361292385806627862319275157484337238273739712960007100354236640476782738597620614834243706348083907535179871759551611911072108207745266230993710757884783610062885169967192563595926299364427789353418080178306052424145888594427106825142171827112691517836157519689480198704870248612745534843361688453461485284071820459611287683226381858342464466676036343496208101237110759737327437773175496663199280264110805730739127591667487600487838215057230626316829261389210488505421246050302636781908770404187490608781094007031903428848287639708267359311197084234629647629557939107194116178389806642514348294990960015028988876766496131918294391687836478047086263963022743362888746770695119303144672879303956384820613800740731317969952692469008768418464404995828248420385980589613241545782146583366597252025697920573699083822906088992884735601422815281698399109491397250617967258832482856335534041854407938507076704789476830817047079267744368772828859874635615766541272133381731923586969050894852764878499491152461476076153117763490594181562230837600302832622277866876983256308875128982064832752851489309180905544706633145512171939812789356316562812626690761573059431358983532043616647692583421016126443906973664052761142617064165164712666728301332498476322322725824475027014012599319790050693146592231491374064786264097888697776404606794498734894123882808397221785744274055039789795946603243705730527644369962040381744172808520117748353072470126763036432262061412591501452054213606751840191709150984504103794498531620930042227454469818048851168878331887910368094777275521011897644103409669768634416051874627661736800443377514879430113042108149158082598427248952333147395663631292052243657889988357284982224505348431779473434202936177057584179906839215755547057786007737894231353752259905477308667587093792923031006847674103687307018947571407744026484928058521587671734813911432137446013184365024236854182880243480092705306718981262423838214996788365482649322235691724586174949709837711397066461841052683668319105189871803723885753353842918906591506312731366612333114585712830532736410895608345781047168334907036230481321663974977921401057793911049289503156039369647972396720937241825124595028739956858808408422782410298707875618982651882250026100131971797771308547061903545924115434427496645893929382613904375828104469265402179261893633003506154643730478488753694273574920786396981909657299770869018317244830883328585116847848990335325892981777415344768868301787728031115119499426448497688700796844138640867106230470102987985855551543559924982371159053548906465589141835852646112457690176381188056182536564437700922234557958466327047251307980562571157214838830924534008639847357625970722631698546661950314467579942085931483936406293766883160312905817828616744329613928412129669710912324308154868308651942370841378280878002702748833160602245091647278416037979123236772948636054521877252735607094246518185332656022592069778969221438050107798075711966648049239553776036052361674939111920856131458108408877191109054330221880390763396345519705207999761623452585100376766520216340547263587052412736483441647566168961968962055926634740596319738966294014400087740908545884839270477287475896752261088276489105042237528871348747026665746371632528766790885177619415823444234154993398973290600968171030119088215007683551995387024738024384308019991408339875698336001525312741792310059562449536164672711737096797951102007965170213313775152541634350589817440213891732813260833605011622725745293966090137340768669947446679901777626793537977696372664968044984971536628996024810325556780096315754689868783674513120365976519527543863554528179424019238719812162043942249382109279500250936398545758469614618114522560465745999139835941732239956631617531011232819834845737737019562396670251069043604692335682932448636868959082646623914247530479036479003023032730792292969975471876223356287153327640140587505894460850225932605535260286538295276670434746752083753384454040785231447539726317494817340651147689857190891265113237730989033219744537657007148593116695408078974940759821965565051746740241946766801155984924906860078056514223528495627062269988907455175857263267987355816417351774580510771497702582764528373772997729277003298970370039323321646680883326360410838678408591886031350365904811041701476879921157832101925563807483970908693366096904913601738535368963733914304282240112314082044319999712601894377683169528073566325991468770107542400699363658637274550104637037351464993418021574148093312686836360113852333345528904808441628217686970707526866151425787506665433941097506248257078679156160986654802547349873420044686436613479651104342595069683789546807144082728144722506372290275323884163824334932502298403093605059804126579773794839416555126072903262371903697886482129583862158447698918721036959303971245726861847115971161993623946006581994490140492369378634696430119624207660076119059748940970619197657393215574746292377526344083563368550056893231441971470085223645118891005605848151003427886921807429150784579213455990574753741436802818368244788307917240171933485449502188848691703753617822969942454861934300369959146034863771977733203556974583449701189852013751773701543938288948150432073791882562095881099156166936489785486345587531263498894208141182142848870437096296810047631610909628984818634649833104972946126181670042846101278286657703434594372727349211671971880762793585576984259939425449852800694849465466158322046627182431817557141958226408797840587971771640917770153303812548186369078750493045590253680182574668442681635519231479686807774781445847313650194965618906198040043666963847193895703354180645440725544441916573836570107410660003969292200110595199955423079227036531587123598562135016252313470559573838341053158185192044607572709908022917710061943491486266604484437972366342359242116506186882483170460008433287904933880554908466865651746933513145526320456288977604452707894897753900094280081654445142983887095677826732573228737157372873145606950667603356205624028422460444357735111514881402365751723811243053535287182718791149733071884826213785363219902682153809815123945302799672717708139965722499453304400437125857763438366564597679492639152830183664624817310211023137061289187727001779813698087377916561814625754194237157304839032076107554306440303419689549123223108871365938725401929091559592775193014741543880396417588790809971043659579944981519828650365914527840859389018345627964222440267173625274201059301385279626003597697531444654747805984015396936972882126307643425113663255086559258538131905566315614179355865049625011590255078677769752600941133351740221928410612937010383430214549301812265948978014270647397644221895468445287623074598808424374595601844885864439840058787940595700966019292338539047479807747217566126830594896976475721785391701535882351678592193965078950517151675706551088402901231721899048531533336893431739154889120212240051228509757478367934755031647112092839272834593892061414351633401640763780215786554726905783272721363403465393844197576231300365155349027891388009658496564526106898046635235002073308690132832401004867117028177984252788094177999091348893518413395775735554278931507350099176088726301534293071972787184978549635813282394257798698492484474322922426008493054032311103991950769790335750410803370839671557732202099781776635374483120507900974315955758823458566849844007907922450030711469192560790235045291433163140996917930550940059396929560396621811958018413800930902061449775657374260614427531314432840746274624199979878590860784009495099326805856012077420062348284568852570354637238881717015759146758410992988774998448308865986360509996362271593324005066624029312459581817973249528875232345962761776106830231425445896478444473706467860498244097244846613423238625531209105902285243312046930189863532259766483734172976454788201290973031589190233708222404669141870844000706264763503266258183619858258901632295536541914340579782777496903696440627356591944778371324013221134623611486866787973098469680321465464501212398548241999140730267560204074434118733654134705725216286896489783863147512073816482735133286971792766222006732650816386892498014571625166808667839529496943923407785521208841474020596688926094119600748125183448125575089682729282749764933604849161233800055159487835827895626904076922102225973538576752309234914884621880447482140111781835034356616256814349636661974724021490656615795280545744189080822103523833229695089393371363433282805965067505170630629601276064848501035247664622304916553920075622170761066272945049909795986548447379192435831022784158712370194954582058771562972318959333164669853556868523610232995527703936164545364420243962514583436236438849909379956243003437502109697934484183679080295179414087659623162400132747059988810624577995336219150878094603069969200628680978744168261040495889541146064748714313028736528539092001927552660546112974564844336507434349882522860063172718420264110619380658466445956241323697978393518879331693039593090584017219828931695802992462508630528359312917513327173587913862397606671538114929738587687938259719270701689484209737571807792382234116710290836390879024414717295414324649431642356543577937956754365814900634499747446610452205173122754707324418315974535886348761079763150880357685260076245883755355436590780674080944182757881661603145156436383761112071881619365107734240110356264443428717107919167257552093768279756344543405530775678462237677245165166018675792627345136254649959819364030309274649044275748555221881756125900468696708250074558800983808390312740925064104376183159766704701414862503421958333349437876517841104919855416229466022204522094493055967927065377237638325678080972868808400559292930574310242833949515494919904926801297679000207953484521360644095904840181373070926638201342282194994379483722904942434754234482187491283593966015082533347060026649312340822419774725260327814048042846326791911300679932116745691575595368347113208425830758977124994501971722931415099234054612734137135056542673206850823225561529724847541211045488819279255141894439589060648992310492788073320725550558153954825934226650216943493665586281783239667442887593338741444356217539201120658212324952633518996563614662029832724038224787054789349335644100360611897493893516450066663495209764081248773560212468723204752502045937822243084744585433412010297560455042379098053467558148035410208335850081129290200919561632396985668137621643418568459359854886240213008741854553661600244998851028895637738270430790597440874739058581081962001016803532255074423076598736732831636800880754675509220588619940037034881032852234099863260948481452044235085802296768502000742160048246718750737867838550122535929512078954683816135092575711216059212852317616955503192764099168964997114086206725147471702280168997998834030769131763607109017010837948960308053028686145175171774587073899705076943991368622210962313468433662584846980554404256440796368687040962097119818211637418387209543775747528305197458936326631627514607022687854292653293884007584467090956916912523621159415088474087481971888228913734430273019043906213922706542158950939040559688920326179445275716161622827463720952707951994027996440491205360250917676112763191185444490805906467530137161848346562590226831579905532344226978770315899509761730600159743423531429285072876660824875243782070412397713150487991443987581483148043362564851578336692265848358519361761922772006125095777457950852120646772075672555011144610967273046106709956478654238651503580823573138625390526642548185154073239562181493454009476639034294588238280556448129492711993151200313721768073550607174990358590371871125669252811981431933639367040943473328467405207458874856315348217082757543324152768934322967139366846724089208649175381003187108404448794430466711117116296872533894173817861055181183795509761133260793877419272354878918642984213584428568582382955447189042894753920158796762259665797542600642495033020318612018808162082006816219176500207475468305549560828271373140871620791945394989264068275911394289014977231654111313785845137574937544565335721345407087482281487158871638585998263880870774612597861596885948601629375325285284550780809795031333495892752490135017503403785673267696561603092652024162519116460418053263263391072606510252570925045776242104076055256448447073487998906143862915010548226220383933214866365862573229756468382410078865109104037374472449981940905070839209293696862509963208639307648515498605539536691763053798725699525773062146054283054727947207315355196032425163090131564369593558121146331515745373955122753202542759987822693164744940067970909376749397793701341848288370783973435148328036252683032184393152916810804219811239684989328415372442430961192746058146736544691978215201991777536060265024792852458711173830958636355950315557420121114836507678853128386907773443546604682663544131441616361963307723945338340598846301980107371560579259476327634962221066256430707363095858947276505013678396106062514353436539795251767675327915750692141739921488603632640444972724179583726448275309905077315442626341802601364635522995099490440477169078500099311503109137843039534898592297702790852704339533310008123392584616866559996348219429418762826988306564465878259293915830442130075389307333438038314102464938477138975330314645932252697765506435560862905130156670150373709666768133634598745976099672339636415160435535689647990743567354392020235211167442343553877108444972771046716344928991881065066539311357482208826734978915554466948066562829645056718670232060256433962724196928721279865028087518861340175182820166824914785504138443613742792423606085689215737187935784140243213016350583755285462523052285813847276329019765429419422359586258260114933324292478094229962224601705062325169649721505304090318684075948080962709469980649097168524056608821797746499583784934054581919165206193073454464481356057585484087251014042742530399433618153655900484572846623143221198642600562759572962229167735600501866098558790205003332249008965610901767162266671201381375736657981728768189138838811250406873037262477294170151459387952517218674543426140701803715700326219146620490203157432532968043102310179400793886900373254814429251423488355517909451047573850614005664227812157357816662371921823451855371182576180058919148493307862458278766457177362848133140751664290454064375859984018992069346469545156434916280710330469144916698653404541294219729308945368755500438575329980405812750140859689893759025742632022656455606680279694017336105146529857957174598448618331305403786535139614222893611307261468288657547732328994324222401917593711832944668682276545944759678327971191453011846472798394567599408854317038875113163275524286360988952395884773603382771212641124746170510012202894502514145759683950854057575466540787203546887777850963914913401270662034444357309072534074775954808783272371716790992114908513361174669979467453268256494235461120273920091010616477087874941619033231689960733261134851896080439016882707526549401764302369314660306479439838780005499858820874154204512652670307534004919798879013467668206034522916565495611267826729009141795759291216263313611435047682669735626892075334171237062522609797545173820301420358798202529032162029286385207024724573303556811510638157102700049079141509964020679493655019896880681340603921332748127421704156616495664749114043654404454762860238310449514000946505625355744976296698671338668814312490332337301815496506530018927809560203569507347153229548943768880425897094588930282445654594409131107609220470140626962469563774858967044368315055672356027803664843681471603460100327885908999331449777201721009694567840734962515421164722369051097233633866292837638800320884308072852674300786860787261488571682802527686313324596437316349157746733690108653592048819440930098748307996670125140867753061113966293146526878914876879591495886663745876964688631647462823527662279462261120430351529686172421502752783680954339200242883565041335460528834874056595768259665792922972345034208497755180942377875695617902196578872028249273944701359421409460868531000908140643637022058519555818773269621467526145343127090732092844103147767745781416979828979675266435237734842540935024429324392126093307740093397042500883004680400315794539517293146000644977572065138491642892835150950575840804114129646554686160232372914442251518793417653707904445000568063128808482165507271243340016760926158175197934524665425494050745468373337438286909694593233581769810645824538582756810465187107333174613591402385230248416234844890367629087019089092871720132050397852155442169629930413983560338074406748003134993545484172307700970776560872605011333956385966107707329708407247576311179709320825230142014186274766031160664502341231926464616195246574231495779358653905714751407935290542560737226466307355622908472774316674239096463382230089425190474327306320621520481137059093929264261264961023707376019514563852103248314304927121544285930641195409940841852145996948011029227680222110706457022315864125563042580240619455926641554814961468471247929142199866886388680368581738456698602853197256690630730035313474230409788395836833198827874528755174225399168307326494903734113420218608772502763311413027701661733594454776315711455677145756185745715562698656263437382994422291809169487637055076318283459898538623794822140394673437368091905157233920111984387007523729374807563612932572166805594646630887961251646612066956374711500338639897622901881841926305390122283491430514973004778631995784543180671766253059640997854418949012448356797928359221293889118306194248366126012946282710883730337816436540787172053511006567822625804208033134503869471507243321725462258784330233634824907892153198374449610538270112219474593581458891145807279769463372716343873613495356580103251795564050169101980387571972267884287443612501009247467083852234006739215122038170175831350688769225320523550347602611307390169419314148964330447015177832149313165813540317400975637699117357115411428463662948126813398651103815726277973404350700492851668115279370960453747553956179216134890244130422112592128518237550997525460442191007047586571965529221438559946279064949146064779910993637263594019034090463245706306845257306378015907780984058597311315395214615155398497063819161900709016455094375744942997014126449332246509350957503319347536166889267938755310777002684092450998000936415340902697556342587268521212730664571541636873202445560373935837522171071818652639562796430571217192144291243113770042508272932943510443575610816114232958582626648714532452827169323320841913030522545372481428277766420359313780539164178935805698629878066271702581242331558510982352520774571089267882081490280506780240679916769611530073687438603881404821207854211171068249486161673640585927009387587001211958916710243087094473363149443184044683092899415352431676083269527633163812825333981752773167653244080986871843535286642483357113248686881774542950745223523216734669956806198151173373091235159571214060992438509631914331267170304575785544164901229203624840744230308977514794348142603756127430977029772010096494370973133009077376454061956522789506289450696110553879949689243795493158722433046116753258781150837435496602672424366106366131840480983954367175874059793592016517725338731897646579481771130693204608772835939375073798286044555803373863264739250262939591339182665476590967759961707380135681174155791015910559501313912597384444970913932625100222761557543011100378245304756637378820139585916879953107990721712559393999190343608245092328631872371679749311472426668179966932366549493164790326006120690607077511029622586480878256375057129476959174070773199939832636014133082797671174854153582568097636525674499264967937771704597651007928940287392083540480847738717175339964969416652714462052552284856093841806297533834584550264677439693526875221882205891990207127486566400744898050153660020193103844745079915280951691561203788094470324911175872270319358243966225159853104432494907979515038374297107005388569612986885108659546664130309494432046559808940396392545559260370473239844072569090433025377285307480800332826197801965228603859428316019709588106901595214973579981159168107434747263198407381296795190284894044125349692339043870460773603202022627633395429096669498940299944992859989242446295469108947278488917673392639246001686079340222615398843995984832147939402284936611105883769440025818345986346677475337831521734965012148156039737905457686747453516363180687498747129523655368868631124739262306904500707270112656596988050569794767028150936951553346622608471342436488123245112655117018877029691584156604799856045268305645728930491409059085147777835546922094815929736916133135617645340414915696377545346163508595883429382633376606952295890477456049543902826997563884844374575325091551582245773758875773070078912315563593891776400779363053533420252908170467003698956995259889752809723207061694285153257396602464744648473209055211914071539875907516970697661556582927112707551790850944354317149729298417049064187443717122802554447054500880335673590198443538608175099561202298273776516635769714948484279068736282015637645807189774796449110353082953109365313642072443840747737109150965193993371807056133394173712547987021907432613551316202617494949638356711840357626083038314302807767124795090041458498279755594225499404424049564235923375931523731309103223289136945250107309982720864337842287584067752943267678881953652417901094124556974833037397382136962748255808617179465639342943572282778016084005117789981266261991277762965860217383814229890620763485404609779185814967816254675057723469471478809960038262725333783690821161911342401300481843148867174191159909675741042091282454400165383946277152078844893713994172461931764033686498038010393236088008781375046181404240733293641881756729110954505599690219602737090631010694523611697326678223693084850551160656355884974905308805551360120932344120576175915176357866804017649948778294826947784336259140365430819663812042298204419247119062182356105061616324366613757434449895149150985243448507398345462513700261055645361147955050930217111054125338605910801613312981436567220829307963854812568076207823972263758368390278565468909000167436163125163326449518056947775512202948943144919490089359077318275619132665782073506417192889036958217686846662041009326499154190250728805715188958683650837986141903030690424022286460348390577877682545416698367245277527159178814342616348109698237363463003676562412200471111531878494060949745554768724461517101984811251226562481723798036832829413892936859050528628741026231203909428996727916060374842342521228508187025075736763873025082656453193940297180379701695549329423856436371121275863053967070764285567478292832855333539040032279765971278476742847048333759149745021702430182918333142415033998900477790968589565243178936960288139292451582533924039362585028785379458762516196054796867287007090395712932674372533077657225564295993106361766986111577341869724720667243511628203933341290010891802105841110429300768139707400886220939615756295190011265018316342344671740102774492593383367840563185381124055492282647789151498505870410595123489599924965709795715120556696421398688190649316796209528601678579874744730143248037028393424043808676002152798383082150630181039348601891828997834513380660128198459851979281010828131863780474931937585087752764089409823725615823084742612891513459654367391716196293429781386635764854885064936770793303028931480099197307524640338389880957733294492871495348249630265927432939300250643119281331926167116719377812233248644059889368610854688585513573100946242212977385537806353865212612882521946298270992054041678373451769199802844302231199855945685520255516777018095128495482318415647842517885108122354657032924962280910980361325709542254824092258441778770568453576793732650200878710412725540706682673482284256574510248761402559350171741113843184454266479057092564285118480986223992078818969714151839810582816050098027453025726581551487631001420224011094407500177657242957417082278280975410576943845052772924834646281300945494267325728214670406139592065268616537151158772536769648335750523871701911666769332612793104316286432917869543614138646134167966496066055556413683359336612205380201918899227091987518417725153526461172380878752420598228635296212844035718928259512649238092617224430180852145943033671344136155755296466468946275330462263563416841551891778271330547940038949607854513284720340457292392293963980674593173365103339471410374536663879908098835813174320043669998670095928804454841385052655957111487416772049807655987932482891928079765179634605896188398727164316554843114891384064146351531405836594159960832722658321027187509072950174377741154332754079627840991729843915880347670958292537231100374111954470138472030778305465893366234501998236803541634465312525346392438866389834089980397143342387685003039368718481055014346550393141051457158761329152171237081431504870440759249728609792914061276142388127974331108408832043681375507462406080132239796091482797950172037254126006276591940968079095640411585090246956627071804996668973590404291937433031214301853278898569175179930646306766339168533451308003196662790930801533991645760127807017020344780524913964602216341497683768477665426890361511896172846390980481195290720131299840471092124211279734086497665562790883368174373760353997031136057862364025204894675096129497413826528866847422416216341614660425409075368869073914905839145713626503600792565094066320808475274432944520927556783848326273913377243772601819069382061208204032440014375575395145589896260657432386421648253360622059437710590860539277379178323236098301551939897886169142801278020576988767185414060818971929457757549541007835559015705271177227702412983031751354424883977037614976407112881405133645565528898432606249847981843067226168969594762234944571984980359678709784866768441044655447105756601920228047691753724104020502029538139051445405732344206714528882328280542038724738693210781005385255470319109283033926198538744514058500449690151491776932085710128585810791484863200466506385587496007312006878852197197361961503500162018494958694995315458799871993606358195755342222724950884356452876870986194877129067912364509756566212134628540027614507911519719158503006720568343847935406831692157707458416162041847130587548378281123168520717595408836133060704355118902375352653001693280381624005172083614855940067848563196989723163702827086285635167101553488232786550321924314200334711565978467645695166572270415651518450168198364807030876754975199088429452735766201228364040901473176860426820645145153648715236750438169713141440954437839014550968532320086036257604251382826167089641792576408471379497571231856286651723476772188319638502535365922899845234072381423952380071002924025486216483663179781873784376821064878384964040927542409940444719851215913781302114857791395346360598416561735918667450588551383364198352274345310739983571353269149653000898712680153949443350674597320751404018729348842474729793034452060026044309877356460501172489433948626476087183747777621086901349255992796747224123003510847140808233714779889868488492444183872312443456673783541489470196371438455532304858530273803344365961920670328924808881379232602669343423370804012716695270585015918288676826526872311146792489783400528046322853297480370472358087225912679459094178191331994659678297380565483551375419660713738427586703984446070804525078540463877138172108697307881499901744200772568110751026881584693945200544911464571882152373724989737129142324252986884742372100869374015131421271415170133081279607363625526164352091789445950054646771821677537582495802906799137383334775347190985185703156661878555945474318428317933253460731683898305192266556229048590568126260570668408977781049809840628716894989239825500131553812886372067956587610649898912322555618944332653879680381727780719258464180942064761588396063303971038241441739644560653556044375562088711092051033912601113910587179859205960594636636032425858549393106313820183554176374516343517730051630306528292251662733175886519635054250967871645997091945817509855713125805284398811779837117525039588379647268533929211138037462553834441354956756315811490058825019763998189402820097860127036046428008881345175337362556582404389746452470315919991044737328371923161247167903583209890973764724334325747540603742074888479919531093125089878118551496672001396512353240811796824566136959776682480856678174586615084830092959888405046153739624348192834459188174764838366187496469965245081088922450009773365047558066913331049215398098346475611332991826308929101181660298561520700405687787479863824564566604785011846516312942092664410172156675084285869242311903035283878726483740661177947157397682183066545466890792765503244610374279646510114519209516214311329209415016354912456221949467391375403706733849065158660026969392533032585041368068657608816925653155654814931717976143094044811295501276826250412009800058987417435820298643982971920988728028146017879146149993202145401266367821540559239976679647875248998329261691630675394512566380834500217841928415412472887633501266237543271271162962893718095484481201788975638642793411656691376310243741366022002541156641221672676565171846494840741197450462431593189244038121031704228684168941665454983942573446464530430890885639688940818055327510796708086827666261914808423208419576940070914510871696388324164974460571216038015630297347469932218715450275262202729000109701820861852931585803660102274519788179323154452092191064549945130748339021181314475018862139723232202445272071626500926990562996051737816690204066254954880133692114680168981077414453380492843752148769180709730355398886147597182858690090944247663995777730049843075840244982530982001829886829397146254647235380619502647613192517871006325234086741036626442718295859911348476806504842952122087425776855697023166750309717999704955370423488805728483255792875692732800406986663707476105456620111365702313287540121429358336924897541262102125407200242777058437804826723510285530968712198154176433970412147931749082804174181618623583754641586941475996454132445296242150389828922910804314014031360112768794235329631796357244105660820742300035019294335900591042936754145512369477975585380467653696570934044243381407295262552672418116022504019235842747678693600507920905544869332168659751465516238651823300595896387849510040219609944866441449390590861792774399033526644524055946856591643345012706755218336186808161291164131274720465194665271373775540960600005616476873419118463181991276274830314183817540862800650064294699258250136218204522700112938457473361723080660166789827840250513890529063313515257496223980150730836209888171607896930942086427485013414184851454653765621013981363604040143256152154344317736997795009659984331715225521964313927480462475029086766637939128318286069042770883558465741475441334608420669247446183581931003532536842991008135474244616906382886505203733949333648053872502342460962424074369766312125221218412626896552006664821705887311141191557186326693612679698882043518164689728735098794890432804211842586508885610880934351602668867808715032212424779762962258432195340241467500601509477416198244840392036379389487157525156046640902464921947713791660562972241194481537502323529992139659420180225349400069733931468007232674412195002782401043460596590555951962440635347297473343253451678267066653611377243426872406352796739714088710355294936781669498666356368296968174284528524341259179092489867880587903797609273720525575369659473931939479339365950966907328176326341885879747161660895256233791376597327702207035580030318884192615110684935760537569852775190801009680213291275716769747696236031787234219814120960993620551071892117716158622639372485948483534307793894871924688194458256007562431661786926160830303416426831426179571960227549162449971521831167752963674992168423111584994992376205832030286971344143361073354614525933424617249632123817328642580320393279590356193835540183636525171793240246519245873044255403158553841468071305653485062082554806037315948623628073771872984434647876222540449963072513381180113921498117415806384463419399034327742363777744132356782121871675080865702040701486156516658773827861581607232633187013246969434042480039097643511663001129363441962160810949570834971401894905080375181231789463901664078331220271809964097168825613616659732877900966107614802716544599676437314311329679991463829654495466784778712463192219605650384873842248485051318911729591678600102873810762860140426774261855807935447030469719238075794115818112325460991436041042045556061921186752715450470642360817358903285474257544893881695262810954270549467581366389470119474186818812899371733167416713273767525685226015609788239094952760368248475927226422234988811233625388367378914735523949424024736791894477994067211309930850414924070859873396283440677470529940407288128871075412085448891155419068815811316509357442318852834035131992235464913244685772242683102894278385793034435033427852047646225033466100080563354401553655315491848501421949481451398786444823711212481532612870417189414152714969722279872764728543551222985620122781650136253463058574982895354969340198335786988473477879116837364986935975428107252286291892448368049825130798785267827995101853050151909451818924211738974937170009608528891217462781925466828908582189412171177627188954606975947976289829421822302241223540661456987642888462008159508688404139731895482965136592983184328714999457072456579516057873016088493860294710634100920628848076750219941405696754509934588039618446085103004925877224410322202448536569541538493888326949694684034229229497318923902090840058369750582630322449515582918279141383336724762217197599840649966693888156964243500877111696928479650884409464330745512955379472697093440689994230424129420849060356991513840260701637158424092721861254616655119962953649846741896542785756335619985056997834077399343186329603390201962174604579041913166971061162715428954064271383274395332639710197828575962353218507698458252941905775223745461985020462154613989866593828027478563414973395602391949234565709539669367226583855079765701083003245192664296683056218635755921675477324608940961352607551889376565691693964209730467641704464015123922932474395200898063412660394819716142066128079132157276611256444313696391435617624928939419622792439853053346995550749351382223241563404329787988130795551343027343820855594194948892409371596023546884707632121026055264159641236855878849727307330755891430473829046178616332241679219808486501643461383451014039919327832302167155883001725116269941913946625291989260199078729308491850131310103507109096800312725298666066853765242899828657164507332448504466060781565710261575125126627673540347534812110594644333919384378602783751243416257272152029750561737741754027032646097970967308015567504268974332845499565638420909817860516566422660149214553604777946936934983504387700861641868290484224220777296753208259162296532113309319341260199065249088305976720794464797892324856368982391690496673246789661617059362785375878109680564072918750895758455913145997104724450718645656205602028491862779909551698726687089332407496951719007720535006587458543956901503273884465392592643349470568528411124968869274944205159197312894250483186362732144900151947529119524766822623744237719776649393769915692432852552234405929564385152549397975243006139098463264976722331583237955753165250642265392678933536527039284211811998971827674726084592856217134604718172778687413972537646230240010289096418949935120196832918514489558241776407286520168906364950721021336272492360273058599745760931439292965662296409567182617237119168632495233556423638342917745588014885446171974161604896643845521585053110620338505002422749922998431974515896956719538996096618116022013398079141557113420264536573694049084639597598976767770234196997763707937344018936671237150191518864412284277524131892408921709425847891451137005356307058253049221087468323307663850574744814831793699852737381168748018238110012981821536369869856021049504725104696568898517635590327554319087160268810748420555387113099423515611292743723812238524904474639299105567772178420884221036478228102057797856216780534635919739952358937460938233799577404232187769920514761954496521276596403983871124291673511135114765604453380276584060064704625472341160660010087830246798441591387168194995060862521007425685411548798667583703883157458951684982277623416449023346473718813170061449944270721365018466242510491992232644107285192223265842830707076457395070594926851058318961714186094660850618140742036947470214227121992047407489847122345356478447825636490635285676571960122650511497192373151277235388377700614813535994644133242463905188241702716066916805444990715121656614208378344432068696994760542122646884113339095741479967580886950024755923282610831617436539051610184207062509375159589097812031502986462070129986838461921164574406247435011129815171370183880064375630271531257886382701289453088110052300791602314334344057705237504213208378162143656729653024030873693178467761506646747777624687582472727800756293592544205233530987198974028610025377066401266899325850447817353147461173875237634525973782351555962160138992566018571968374378852892477522541503156475758115084969488824364556423205953237207473900785179319507773323270496264770157381693800477154117093850127399787638785845323269032730786920540135629297730656478759894997822391615770581611896682044341366278591281061125969016158422249034722133958237817003069118636456778916036834665053380077119425422977407684548548869360908850091721538525795869019143937000643425526378430352124035102456744867628181012044290838037235333663387611783971680526520842889550931550679618303691572386378470404967087411537116605400455448007788032528925737280273937307479202198287687849014271298606047273241927343250656176152813045859318009576806533413495823922749030836879854318392724978178425703560116730631397242203896639164494852087764523344462894242047546944284314271054142524149015286322175831376266712061414951370032793992261359781190301882020035301877584328194174015141811946863322667771598192356907079350603812742991597584803803014001409909175865985776366338454694689636871913374256774474078612352251097034293520238147323738992355367639627687461066439120464811444729936873454094857822592829276539172748976996088986453564857829845240240984244905928649048994328483474919371610912013370610703235904152468180449416091530175703388871344900295547615910232443789410115788462324272235677326159896354403144693317732725495942845172849273197610816699063630245745276631254886518778981941845093070606085948648546989268370501401580776939138609283495963759948894549987311589262467155077755262965395312033050791893350532615412026522211424841976452894419979255945771352654218563255139747530252751394251498778792146691380442412570792707857307425541041634422836860208428289420994537972505365427006398857734334246581046189729913725932098897927478739471627033430245100529943871667949409761648426076966631863821186198792798016426854130643152429180502230375192674927397558979441730505980200083231585825317577462764741824648769512897865131332471118520010297928070616829032589269369273692049681084241653572605869051248023624525116055684454413856434401530301457151896772569843853161720477549410876002764577665482095275989474541021464884142763198523432997942786537679247690121634936370981429717675776827580901238896381091299701045762273067870346172838833255960319145734615462622619578561966537020507545010293280277374081214321200242186928757760359489192631039475857752514593133752467101622233816482134743322584887152121310469539943461705196479017936407465241417652425067977937591806218361318815915519950882509220486585511930146791560791331173472518328301519345174537894638225093714308980230808469376773043013283418879230327191997466694297034417632459702281675293014235463396313891497547648681035388501042918408715012925513362020865901466083650532339607646146345498581966954419107571007177129196119149835445273685810369536902848613141239147060209599819794464524317861342302461240054390569962508028014642486997425828613488228422481444140640746624892263731227034701164142380966513267918383876675612888231292149863786249125268485700518371800603622954219181513497299138706537252210708080694253800795698488618996379414034750702141711945936492982037267179245446247112530693186276605191272150072461241538043456103751357684340641785695711472979268506222264251635814380734004399645931692711756171171268423457453960223818896029982911825810664660892160909603150920806314594155270601551543638911050812535675311797518623569046050339191470746461782485796624728587818053885229514176957903375922736942824851383467083892204670625483815788826063404310952120375049924023088502517914789554450765786392073306940843827824105796235440444264731073400952657237355210640516952178768495976012438287569988631868303507198786039189285729915657630395242286364837716635862888903737328268003711791613496608948714064547227525076768585583531106767171846304302144902505386786743529146900089981508358010291551549012202023553897585095065716847834675095068064106568332004137066212267810357226585121916633010934657364880754886269231279140760051488248741447502818571058823016511390759024445535625092548108515127589948066630252062452948771085237851816989563434414555217505313497033042883403674179767060089364333099157594110205809241667968872711503903099518518111986192477499058480657088535055044536985776354272530027947071124389385154409684514435126184592657313027711561189217638827202572683015955338013965261473486396946462513231373607939328831470469377753710490052191874183589749623133524949001118235506720652955859011876695160458836519685737142127279533412253170242019628868964007590942216876754831194565523809601320276566913387638537855831680498463167991200599311948992121250001176929929623936270066718731317193904773277654047379224573904704709235538749928382779459420906823491562069836389524421699864540053507846244052823273026054810021989297519278441545434473385612914344371846405642425604341096451701810223076551635145071204177998942881770025015209151257838656305082932365879510304129772324235395320509981134153021091678252447363080631943248336883042863233092759558774897575390601813389972228734712783987528910728704933598654118320742113279282698771368812996165162504395978333167329166039878404875040498934571366716185013250224773656464052898909719588129261258866193498948659341670499100591989356941386514222778617511077206124344818997976150590969270176071113197536634365132495162794621610303263628179714464130426080990784685071344902983469684143338644841101994241849257450494998735822649219577444300471437497484438122097661301419992366403302841008191572802499189230719018528990715027584400289362516868653934759185512704337393610164620172707657640733484870643383434552334772305744544002949710659198372433141928609383600460555915540596843445604759355465515214586121005169486751640668680565846795923020109945675737619584446158891485048611804676882512772148892128090861220775304012973865683022991422918469540530409111858435989924138096497494163191421903462035611005575325818280962163429736510610686338524178634655736399844367599272971011270379701233778629167353344591365719040613115544827581566976853949336431790087667601868460781339614183796771993601631887390527118489912183258930429646149186291254169683821078691669716657527064437863137788143781537375185340117762455912340546544214281515673670666804678992017649958991206237326852160958367313233832869584690449820468049973410409303114090608845734504725871258440045615624676171040102417778572173207654480413924320934074326772145494281232880676043579547304961299264871545300666864883579176075250485305390254749614886955303901011378816718792063937448578635293989680419422951316242337653603802348281495059880813489955678814338875393885070074630887699611696973914625572916113563150141645272455861083461403385186883772541221839846944341996608948417514981670073225206278448029668803835349068463958621297859203091128128269115793159643915344304561352773411739769031745613436221258218760860740301018309218971790658428311716970074838010604360975095312254453838688939258225312992090147031348938420078906092011380513581294657346425960619159564337649271916320796066923054253900824703830241502689767373408304734270514573736038494656921900799895659797638511452069440138949644175506128227532042842622355791948582810117710965889901988073751097386119117049991691746090781301903723933943250054238307584268749085743926150134497931795591124582308973418118398519759579507543742322392102529519629779201652097570386542974710058601246957509535554618684338121418490854894271568140475042419387712227889306237794445221739238453754231233846054731616921701860178701815561653875685654736112059548374057644543707376254389082691824197534885847763914934282438267560793223058869332648024322094698027329369256870958912380783069719732693994475251007232129597017729417780180431745663749502187800563567939855966376608009228630352705656368911314966003011666970009462586127454799765843719271016009241782211870625380673008408547551797186548429476540331869432329169989053474513205403877463279064785737462796159929541766522990761679297551328312542305178822215627183319904032689096519991589044996671055575011167216894416344404086104475940393281327176250674423797744009801476862601063284966745676214850888962187313300432967705940118001243689090435286973627692474587462948684394691294221513013758140399039991685420987511579188065641891854714368461315515753535994069207395027465034782500170175731693292684583004596599409177649732453406947209713375574294498297835931855057368297386048548295474005038661580943983429666030769717242115084287836379153110548576782219028963494893678138616271190779989379992754101615957458292526409991524000764397965550324067015228117995301118046080033587039792497388556536272762479204562169475892879973754733537187709428478443865406888277501713495644949316014709073075544477502116901472563180605426599643242850275786340627145058261214550378899742146124390804115661866299889572256606381759426010898833502576064158425480742730611704400146113622948440484237774272055179723592463207787484607940494895757543948726647463849565776465866371196390019298791592322595139343172279313060907882454788023449004705156569362453807538828362359484953075601426171864328443223820406185929267830022816832646865971720652623225614951226152657973217616581206411282353959403899685287777554009578544056662138547585703933526075897238676486442235048043005043689655702297502979410720174437307913508111420563584855442864910277078418952337985622650925022665831776003493534617543249259238012331685877863391188696030760754489182920425707339262423882576630372655804668034420623493653904282619789756025898375848380775668445562991580501564397171360182227304465270774348583919598312271288675057385875182034687669055550813146388588294312129920296356089169313938374477322649299822001570636760873212549534664399423126273065603188137585728390822718892061168173568561169592633833474564118643324354963411967290220267106709679142378272071036295865406256258443496762774610191855368662012569568147724272129357373187637264564976312039212459321677360684463708769955542299819124614182410121831781492695021629370120898982746788083528793727412806761599321363472593693183265109413941389856069362998629817160863600025241577772008594989741948321256430937581976780568121732281109514088923384486742405116236989318319542078321131889611303642723231411774914818911932455921387551949232043960688860789226575164309851484208892004533612179925522537706752800391549938662213276569883233653466186252379592220211843871857175427664368363366650917338341280385143138696881906822298845130805054879924682459165647712745389721408849693832374760728830476812564215303194137445627576656260368520423317645929130439754469611279802920480550550823635313331448584137005946929768580682311995750674829580184137442155572592312972874063475619218947091339845905997016371219194179614134415213870991778354290891590062392875755780872110654408579160008293386610422071460505501762767072768642791668329588649506793666861760211954059213615980916456460652420316839510779589492081757911583445028326015762246378202293252564740952856847572782408604954658326484399119262007999148307125739940370036477233466994684604673500305898547735929296349404347379582422175957163151415591130887127913002163492282753442715856571843155720825543626038199147175860157386153413747194142147110609270950495881162373040463029461688317188493844927267444586948383226748053651728028413472398695996188021363019243215021528879193169221644783801939267671811821953072008777769591969422555477008339005220044268806377474411439914522299738163372808860797961457659543129332973866488065075943116756176269727604267067985400015807923277826475520854600157200139850188799850621129225787014342290812181833835283730731589063172586747492111526360869389526376672796237504930385691120473880891533984091064646437425714643685834579857840996053626774429737461933396345621216733700272622850213544203297435535913058841450666185462639301407566000840371416275516203194768931339465605760983479582971871862965743495670647191531853411178830939866335315070410727284723238863102988813219216436114883739033059263058155178154661006167331455760113335287773245406434926311700808242440841037028911048290255152995206347527059987973445153040260422142512837139788517543472196723407889315548502874104099238839722602967357599405429740071124016434053969938468547799517109232849661043948466117006170552822210691872610754654011491140463509188572486497531391246328118173690383431891455403075636165956635694089792847575778017002248454899470888575451183021194922531569058471550344905675446855689496625134975139706020910480694835111912912248852443108008729236373534163795001967389105980352302361604551720836170211334136875255877792722965644945224343195720055527468838503701297013268160307711521204666769534446862638214076246108139405056584799705092410337725389682008696111742894690665241544925335142065269350760348272488446204585941145728683159625430556405726293425652326363638238560323040647159349239922191762218270528083514957740356118139126760262959714900127916816696013598853604552015618502241282008888695896093354430492596651973252847966734474814232495414799949413538878467746143778285496843408841108247681434542732290931890299903036603468385732279274357947386208767866518403737739876794916900539596901630290854542610364519599991184514243338213965731522329835394134507234615369773755899950333870625043365613177590808268010831589308535528789878175896934826082759644449838321656804813648877371246276892079002227142280074382045334386792804394216834681065002501753777113957120531910291040925267214262129809482189567817968818431855275873908537649568777243182152720956066955340856039185095214765241842009111202272711485879002500670124388244683398821755166326132419221930570752413050163404516038159823181692805215353646617056307999959210322869108181935106510675329570137753463518015562834365680447128896996440075756672430148542431886048711719223794367864640345693329112313680902942650894689377931293044263975923260766565940596113268927372950094535538241292985652826786021377775948386701804102576101356959807355693113774596641426901126219147150925493368371281637377498151454511356607425960278622303518426651780026047348767241294434013811603348210592307395707256273787519698291546235934369306482163858128508512259113776507597553383580999913565516238767204164638246099995736785450992723117414884595409516498007767525097811645170858962214899933493096774323583023693652370092975761567815986824420340760465473174591158974585114789747035244416591677549306002527764614843148999111855605821097726431571103877020240897780580612396785069512209461167401975414304092932136904653005685329981556828936375364553356299541953229999229876442798738200283117532368662660892151625284375942526201038328615597922917625798128400410366210093446298142084943457806945080613935798271151654316013898243847451668507698696083994671088570062806943498810962360441497097870915342149503646509478947120005815540812865994387176643229406597471579082917879575288536000335548125357909199896531917477329561938922670079414222645758611085674222253214231735789149147621512654854431302050271259888905456684397559026578243428300132910442777684396966993524314443078027799908800341576297740276776291728141940338738734084736615543469103811758306119469844954531947004781341026138297175723263902813514168593123959412867368685190195359448715262905323024631189943117222139769172543797162097410773744056457263176659780831427224672120988694593635396535025213510376333110098608355204950251255780427440864847022782600910014857800670611367989817875731509492361110451205526666432672034907691998434984723349614273561430982951620280008943183927912743548102650153125136597122927332543701327579628840774028025066767748169214340969453971622706181796554364476493507707189444430567268573487208503365095453398304349448690807604503247324892385843623292659105425385132808298746389187192788589225610425866988239816567431074531490353558744947109040708163434387564379076465489331823708450719794987049777120002592917114735105673571866424986064493011407057742771972774358125458459756079849442940716663373874432149858494551878594843265370348481223341770170106225992967781310639408881242738575868286945620373759148343189378252400395271280436545799896737347346003842209196696020791991538164733591609237178042397452917472086793499034913093551476020428999145962491210754217223270093211021638111651734301923260193366322651712387269051950215885661747612396484336660395422366142462437202475167682062090189979262544470884713313721040573086007934721251474111071454945503786099091803162226728824711333476370623524358959106353536623637182234051657665519406013120640173912450683239924349739053294615384210442239950803890126627927874531048548563271110658636735083520359633460209426204858265763332395336715245918319204202246505591476076505437143713532983328871842104126395213976484120771595361739830868338565742983368097737445330065223554640745092271693739601995180954328987515611669508953214033759262988102380634014398059039279632254429045926903373027955407161703961875450747995451999547816343145882683502766320015646383073474778933719125535861360165374248133602006213533495091767266172863502789833752631406072844367543489191383082220395863922148717678061962598792216699643839047823208747449747373938858054129910305635279324351322573964213999107899680829492589070202351854561470804117794113463444898304277640564666903791690720422991660924654869714112212150158569299781914396712528116755760990928643038888290283926560176928209727572190966378867517384849309327686476603129373495181394729399424967419181229470868330028174483561314392085155308148469573045396773059771802978078213973904266921676538875282146925574642741991596981419038503119468698494179988189954947767388111581829198798498579775824509259038677899758036478924679005262957771841323566239517683214913408116990574260300236478581620089172305615883557786183831971686069030990672617071938989140461969877169858747470487447520274282494730541856665530714760424135019585821287661111484195519461377006945695959735165627361363132305338840886710491956519608871052860549042938483473151656283889344345804503937187784877977274864057025439300488139019636137545482948698772344639183178334382106831600069040040707393052990271873175601806440848853217537732751278629025106235280519252073961262039823099740684881606646101222771329826645695534962864548172555208434205105792340384391730357341670956402883251364274557370084950748756592407995744862962532522524533708829096556019112972809204050818769329985844636094908029328415197650531943222924490659176236833507715043373802101046958920443616566446241200024337478547048339983899123369520845652881956243701595842099850083086495468780001703989670824303069016392788558384698292665903375164053240878757992548299875214824651999434047457650634858538270647107895550890126619803155372567780520849078884017145666077893145468053882760314861303479823489404521602853148851107786218536978739625819872847975044189461205182744318258924609732948052167695564551664054468649585721338490977183554334160811280989324229283605749203394498140817011813745552865690806931694275960363732459697535903734426045148169577168606008784525601847955517954446430973237758373448842973358877315467812769757257151526074141082311271671765161172915433168265345910569875553136445951947832791159268474936061339672435794708003926158769141130533685105625007990435058292505961728458612403811228452777044076550034211040729141383771925538473836174867081294469906989315000179360514723094002632973686488489999480333119203303121290559317600660310181756149751049414933853005590771268640435115256545272061367248072564837016452177646378331796147480801913266234466351033141265957466976527712249039935165211616267346637992619640192951458669198610988150764915081439650768179461745230685854910675215452347216618958834533511659705356956762290444676217160439353310650835557632646580539345460820444217221475602348659165644632783609055746036857757966469234467279191590463384188778362553192851825102381282786367323209428575668717715692554808461384686850568794799067377450413465679745340053630406978702080608542076275981454979422235758049433585931292737481976876403546487549222777256692517310503507813535211388068441001553635147738513231495980725219372476316852030638040759644690039455236193228841382083840689857173319774885869923256914412715020746080626132204284807500385996577234325003328462314169351279258270430029371442033048971991086517180492168712683192732417625154355388091983192977783554832046009892853750541400677899843156240938605570008369547326626397029765083663202213647580032015276874900540040726458284291625429265123765843442318033839080873524179572537877197628788357821032395666181248068084717917395787066471102389032005586258648918182685874039611920181001636753592476234991994413143559846333048051105654731788625311843535349654181003673053487052216932869727255110706390796473717291525129924398069180494409800407043598605873679650271312053933572060725898166249037505304528782081914330884838923629406295262131396623852196434381761560234740968101030898983449001435726184713131201664511253896581535862508187196257189768156931054267199383908389074955622113818251908051234689075587884617775856531261983209607382837338286169868565055582508414249315932086411334528803613273658853773500089141868751699171978912701232796385395268924335356772318074572703709364198226101661054867644787821972799006381271547549052509817074408494098953919702622676865708391639604642685989380568503055149078603371597278318632487658371182330438318207329354652640167993602818084133689680125689996514263186014614414728544079293024177742405162175396128789541267428860775554219028606175519684875585399531902215029336204237682607267761653655326191978953074195139733896677998187211514807562640821032458151076502220316997919561879257679718626627803452097314599883683169433159317456178380101434028605036356900120827970888077333865478426790274003166554918986844512954874628525056328345689609374347374811595128216518466404162828352871039209214649531388322666771850427916038383014264467678935875044964963315567077368139884756510719827553183583301055429513571024985735349900801930946604568579335857965846495696356686593546998166043589651896117538341979776682934492075859930850885604778358914458342945495637692972204682226675719344321371305665465925474874994963696048669479775500988439609834436244098953360302302293706586933551265551529815599816873759909565484781316950167968290992853119794575591454583665631662370513540211642110423965148085543584487383835599633833545401497922490647009680342827201191136745280067204032495819739161952131753487606728712649148206928749786744163261692490203388278685186715295896789016381315693060779558922335549887325201495366087766572453025875111644243671295948788205571900579031227115023764608591764373940169699349910035197785020477469675484637736998262217496721953243306600145984566839274057879509252965507042065316405646391032759830397611502232528045381675628887296180202887515293995570135869434410753257239038790466101841854380129946694282369835395712487369117579456296176440514501852779493356724737023987203446796523743201810909568234036232070650238515600225098223232523185777074283718679748402944706612057714663500064138486850219411748366505947573443475826057971722035378984316018840752911522451093660976728165981870400602340473320823116597507068229658867145520491839954633270567226244371496758994436146822015908171015231512198105880651793725128403443890729614247767691167225842239800786145654352067805862347962467691501126843503950201524979396366976598787784080932393350966933326879878178089969009430344591389837100422453642784227943251260117183322074368583844425315964053905100643796359064395531274483548445687739048089215914800931984377656792576980765795888252032946996558962553555962011941084538954172040730541037468251582016197054816065403829557883451857151949653944425738789733768641021228727577466658735798749842438332930690749162815105779882810731158556879850980041666042520611052431749876025471755818476709200328019435629055770445037118395136181307272603177731928136101245290624619622846218512564239841180779627072275566819826062483491452664726711185511178444459942862596931780191488096322154453146448822898790574202348986129445248045715080605547270694687855904895128139544852525608460869206669745657475526822713670733737231517460682889988876529572486286734487555210286658059929863102423169027024768796177068158802150312653779240994725009465852385903402093799037480563171224389025869157749409913593356296544253764980789274374517435583211471054109574343236882921734679666725487024159369291080185560723242453739952485819493166612223052140572960163995471947815288698797207265691742364233266088388137009567899478920137250685364421697564398651288837548196547695210311573582936073514848870823081774460274117996759973151002119463217684472083866404333106658345540571777042797266222932807169625197007642105977446803116302853699432842792662073682779662305230609742091184086586977395136113189318001751415659569661710655139568155079009015187170557427997089985064481648784256342822481850224993543163409232764078548559337464499755125256984044540246044529875162786568507008651407355237053694893662346281138180275330143336738396595671515505284537887650734607211306005152061001790588011203066166175821155032125126303689327643268721957990055362216824210163949317966603842047474057897514409705480909345832754014597217890139743297376464015817729723650601030940558183147513946326065307922353444291291304493455346160492964217431760561104303246202116395288941923312139356539454996203496975949972373542109912104777462743245452179253605568743815582278343015838612927455398231287146638350694744316413715890786201890534393037905698399231136233028055262261719293413154692839855351352605956332549918533611219995754720685605242057551218612464572010270497412449274868203989935215309641913949007242111096291230879727783856901796843428053705538076343575000014817051191926567095400115806169658919155367915403733745670350335131899831701603777084067811090351320296646730405240288341953453381937804504802868714814204591421712793734619145310439193384979106728944629876888761528701482258497995705788462155220453006450995938429632021501173760484142503073591576337774826826591457514383431466048992873353951989061907913396895005356072683262385362149270017516024633587508358840396200795752748406101539878207630090536672495614764391785482138023945578428686316209653919769801683144344220461711375774979950731839954268614451709177033756315663476641522477019248264771151540844493834667522864103120295477587410480494873039211482955989103700075471255162076754470520867634366504680517215166480076221228120210170556093251537291635852867764297645771530154964795008560725528913573128398601521036403979758539859041113153947416169889773557743044046794408244950891060349215069376777732450856310044727703599763787522606900438756813726450984770933309662961844139835940461465815284182395920229398044806022570366140599221757854772653160417779713571410555081571283710261256344810747275160175499398880045707942389407778999492087064032167735745408097519107446906709997335500817584818607538319776038951078622408458419992657209649210740777489814291399658061927890893231206009973286207941683462681891349813948921135163420962092801872235385579768693223237256984043213582591371750744576518705326922651784981777227694073039093998951609953499774514359526558262251155976839417055220901515212655214406451156992284483092403829042166638609879171872979781432421813756125294687358938083864193281035805136341990187140487698933255291051289086735484936865799316021987369332497919528344593248856230385544941950854557923049100498010855419703354545938355314560477728158077565169797148443314661450775580428456205597995175823739469226269696460586693935925197970608750556379099218847135205744705799068328981647710566152558007466669251799520596554099167903587409339574210959077073256373531858651879778912266375772351482818896825112865749908376659543577676376398328264901283494151775309870827519948488689982769235534542031198975038870925120071907855666774058529097373435833384918366606514764406819310014597126308779108833278248415441708341246930161868049460196895032171981592576378990408636851580383750029800496590732114156798461419174583591185591701968955268615039916902061892265563010188884225538756830890454077728229029474883963320199097037778400599395000930206633314720570928594798241796697030133933409265952540625465135946114287164587799342752646328689389529690591466161295106160958147345747867043453376860854794316102217548704405086804989893011127119560055853942390044856572232516363737695866457271329092107485111193278366705021602000462353437030823990420977619948767568485814654608164357453868428636390365769640981174758628420221384187296129914403364328003666180840095226428179399756816316729773111268222982745178812276478752140905469805949035968496038162475786387062588810230805514474891508890113087460313120958318034367287390127899029929209053675305560558154736164783161250942166240589016045643270796723174628583930831076495728415695021597185149510282149514141131051958749276008110104610092039735051400884652959634568748752185305162822889611098847964874848872787578670038576554591483779734390165023495830260917218956754610091538452058242154602625190290381418959313611684394363300824824768490513427804563498107720500996962491890676673933342593121714730634371401462967783158283880010707929535456285063382028422650197491649627666228633668928214159794655748406987842334163269066768999054590698377749889274248142877534281015891737371456182529660693801649918634850505972367352689286391939556241116411049457728778866383495458983749901090005527883592467165369565725195172120054504937297716110896318544891585127651115907071248514186294458027068701048730389406167865996305801976067389771756346471387028337814315685866795105608820433998198246708032576483915802277139884371521947275514314751484380693652080868595181354259206440586469605662257028587832606596981696854576293657815308556184431521988893519688064936897106524042980942151337989047124883547704639449988082988214928656288563750242824007881069213121540672558788529073767648817726162832994174917570724720840259744007523795199406476454776917752028258496842793538261919048693385241173780757942923623827696752346691992918611115721395554526404681354570077484235687169210732219205309968503027063869485968573603872989040054796292556881801442020355163946263300164005478478765679196792651849890950426684493552505589673818654623567219323324275657190063145706725813604340526996010898588111772460086249295442755166983261255056821234609419654840330919134569042121560350170561125580811909989561540489111127516360588102199972734886670454716441239688009671446446841005531474629615838361111078680718067818710797717878569742725150923543857579867731274772401520005204581489229284213612745128890757961374111417586903526928180993907830478942241091595606194710137589082260193523258181662344905446156903157037796819357372229331055796268671128333679389606956261279421048667957177241314568121123641701315604818620698741627567245573571809384401356846008993592924971648508005548566040411931461115927184467225124471409640614734873415888330673858388939772405959158459203560868224807290720959615069388561219977665491212184598344711253373425788214627167398634545386593747260840085496815009280307404635491737501847752991198742998291305428104080434314416235626304396781304011698047353012305209728016824426363229016398814990964126245896028117730771221693724763466234194498384492043775997817939695154428262911444975989721653945423013917787722309101462988387441247159334860419039110524905490122236117891756023177334675387966110130459461252017131339004433497373540702780697174670531509628287405190821510864186307159998387852681882247737207199657894065624518295731835229784549570969765082685645451169307385323494914450597075955176421440498213774736972667555910043183045292931089134531792935765122193859480021021051167736500693676166205964638236230662297470875514175046936018304269109760366937620110760564869620604841574421070710908032579812630195176491579362407753905078143426762318544724600591951078802368934272977357828552249237922147036012665213180811114582703066333624642548598057447620927477573208036495046525474634428216088696938145768623787181548025034129843617604863769921306877495135407477063612965296214163471862021314304464766046948754404717316076440694266927963385818646271593690965371962789885032490446893145581454152737563817539087227554467482797487284037140252759448905993956981375395736965958945588692225626949260317124909918457551593127267961962307367759536944321668079463294105473444149305615211873766888754341121367329648922215423879910004827093411771577672175627442425160003770995346232534048506246791850266070226399572340167528535244694891819444411431009450362165510087353197762904875977282555768080812738279290704547637362993189679749707928436776627478527883902721030029433231031511854240192678506920516475666088280120037877105394111904816230469184260277663166447646379559643347069639159466963142486985150465846343323122603490845210327658308547497014007636301272257810846386846186063568129661756586786397484148092963280203831854152641978289743337832827390196471481993876906823703479486079145774207450387941642311185054398098828532572374454271572299396414156892486794272688927804173751148376167181853277453944343794270706770631124669411429726973316717807720993507575863333829320137934271380374196398496649316745252748232788440918456022861598599837396145535381394961967804415862664819524363082522253164901140347439457152285662773521541523551250372243495719500391611766118356401528261956757912605609812955573708440098025340614410649542203974473528359159945081189471659770076214494727562200227884447273079801454505613744020267785670952878722654176026503029773183073402436587612661268915871093465000893025369751646789801435464267262299324025755019257542076875362506855794767209984493651908279592475019521682061122575436448857664661802177158798032983927848814067932107549102738730505695803542806950275056566801377332399967504651282675970735049603584434754601765991087941620318269438364682290819475773874967051008861473670548970066506662299103751768773918918200930192943588751398382683077748119616828451361150683626964510827569124204501838888628741043529638360647968210822319703539116398510953706050564006015246142936224854528152881009856036259482821926833476904655964373101382775094122035114987421807577270805037349755460663768823031077690176118509095166426238201317175198798412838716205550070840169663306078578401337015174363603690504007121590321584120617750983681575975246775107075531125686015982726329773744005153362245833122956170615915665830188460870005499536568651698742038506130282435634130019210020571989792851017599530531700772342746077266362344155962446421309609937529300094528939826120362516545588915136551798768057930220836535362727476798654503503042962133749940645674559701620942898370012241789559856398682004789181991523887526670470062552574871195272294098721265465722259305404660438525786794225960171963247492651682047851603712603824574892723030442304813681929954138384528388143991632255637162243580052962125113438521995059042799801048593563451141573366888969176667575789496328490642187314536247769667031454176008538099967499931346708277979225056978308545683991735371201673046227423588349283302533019208412866648301483894088213468561604605085272906875910186027064669977205720445183212366537961784471926852818195478434497658801932557843560524296582578939963413969645650979292511357892774834218638198497995765266291883045624925029075918750665833471931568212279742706596298304765430666989165237559957825871293244744473227860891936825777542259715964511408091172068751395275938374446335418452292852935654844685018577987260081100246435003681388672245390166875685399449060774027434330709944753174427904882584994142034799328744725954069936568606395402972322358700339703157652130588279851354491012747363228177478721448107217694252984378514705207153997890521565253552324763046583078951143437126984516193627733471475877578980866322506722687884313779379922707970565019998698148943378961585001073495163078248260811346953343502339727023638169635239856908656472017650661501259373680675442155786072794182179338658646407756404615336032642766649853945218481636725691006785151935832414573260242300226537628414636937734524990363378847763803452058798000448562236583673259408125009997416909461440914873396775962129525440209951594618350881157480306342709883733615463675908516674290915758811981545944226385610757628231425746838771819391361427381601527248591026806130114918095503550006835512422981245384405425647204081786461426836136941836827930829903978357065068729711471660851857845382184347217222259168298304803934497369765499934816366805437221149833104534558195147126907667627443010451739572238923005602686893339768066736394427403390480226388085224496619884267609876016969181017227093323714594256781630285240059713073910396079801574002512989058741509262515000687787944223869800144030611875492154601992832434822908954518410571741495198933724786504357747232935797180292585276274376638049959730312095963483448598113394122071818770652893240608152722500040799061733077241077852133506813660069913098431116742446000556432988505037167210675135239061325554158291089789542100013945965692639425518818236656437321418073388818419012572916376719918518593896904554982596826805040925315011581615609353063222658935078060721046768536666728964303718164711751334438532614494053849260963331517910932189482714267200191268094496112651939275962413777019180759751720164352162160317029805932290203855327567156330705981753238909325277356780676062284518742477601156845002268274814228019954570487959617256737489980084983222591665476082702286056145017531948522509632606741150788705283345083494408962195333822109133304997703704477633817274330101572365769854331689856543265267579635794028857809342235142924468238629045530040999502854644583005478126233604486946393721871075308606694589439847773850831073779263687348728056034811198550260660967010467459808233163356547969029164640408239362969088000114685551794471817519038708369960595598149017937538393743557545777155199241697122637605857392461828146802178100345474890038229034577245954178378389423515614038104803817053253238613263180689326444914059487970501266989277038253152443841752870677472313920785125648824259236426363695094491144509998557908722835854992455810176722751921943814856160604856215926456202646960794909982883187759248746617270030898056300481403561499978386459503962204333079801250295522571934142759994337545344510632983188573389644820492236195227954473684241991353272417552495916076159514999162351722723997709236639066240165076524164422677092024778489786131969465517119928393088288534960391731268000996425797865169411828503861195859459812354220902093907650560575569529006678944776022745363062796258161703415297542053479741896166679780921357641930041476201958973154547585862178999261487428628137719752680436764994534324227138050320598231386080858069699395667418549143129504746763844653436060211587778023816702887138708074344940921537507147003727040188036595112784466829167088654722995653131931388029620510485047081822818334055587019420451709094335125246738844477717448186674240129353862452688774205484799146007842800396901971205136403033206679246493345677386014552880914815886101232424080486196418194937712435546417303934871803646920975607196949726300463868092115703762043271471359159071156048757458308503019569773739693765610928364754669379190999970406963857220430439047842831841079488989899035031643393088219408369216681382763056935728873112736842104260124863873437424044921161686790292346094789001384928843762110083668432507403198052629889492514583538029169901550099846232954425132510043707093956033977056120374210308137328489951313288466622922192305825521254308154479219868512362128879411068189553470717372865992215776889505819521454765415665108867650275766401202185751612360396373408017037900923050194704056406107105592722288334413325270639856013790289630046260578392809517250298595202540084452236387778793796709523381242833693199897583810376329846978996590953317520308679928087905881002210958088449790658430742186690099458746364775710629581935234461562360732862436764428090839124591052777077091009687006009822405168953158044073679944017834069765043316707828104268652256148869478701589498362491268292478210953469482462552341679293508827616252503289308752112100454563095384435182587834732008184860998308892419513352595297751961229300059229241342997797041153444934775849324397662100739382309336389542901058629650189059709138450494444791735009423694129095597899895049096252922327533750681346512949263355254372409850072735556610794479019205057538317178908034717999398116906615415477119949291256360186983443374868953202153198942073623344959830775328102602645806111197230016569130044309580955713684798274965831112312031423042852765736071661838331572735274443979125078869675237929240894765783279891561935016135437054300097908768258679989863002396548554525231919016365553483286767940655582170498750287262585447613967534115539738022094076473849134594117551848461590074373817613121676754046842633773958388821834852921722806332468986579545237857531079605247853020581533351229139410540977689638292638215625719194550090136178697671036801609360815584036797535696431526195164435689789020192624118643810008829018498704146095981267195699411244521278649927003781557650375239066848899197656555652275505181580420266832320507240940003015253430182248899767319814820213286463799768313481801330229716869476608173436778441357511987365305979101770729401169985851807715953778618927045914320185416718283722305541812399288366774276382351775630015961143649205481296947496267104039358504992759015118370881190561043731897578356582351078785476896903609736848122833272354742045455288912418022751593075430180748400258250667765984602542196051022113446564392654286815977665228403943374851087445797120473461510091573682784081290050920369613999598098124845564168338711159176855561128378899197404544325836556274111211048520010206729487292805351299472244473160943903545664566803403506078414829866923442761180031977664238422794082217530163033287968561823475495273156529292926759893531957923060689339968710302067262682358792403359160449099748964913524350223062862085496289726060276782989416586394193197496171374494845032738071777316358649901755220765633091460077923404967154124496527448518794240425718436678531723614360216283508836235155539273975420388974771145232877142753185348389244189858945367502180374898344067402015168267594658346381339519105265425212362335941941645681644886555099580519989325419290295428135108181222308675290081179030847339787153157387901770936179513510568811817441776045128981995636556506396936347808475721650658899712920707169357058908147426879825730809548891571918892387608802625945927261865370264216047201505485618824601884029862124804871603090853702251640365359560920844197809388719639468099481840687681134164050958292263929878847167443243966246411958746529712974270808251412602975351357259898343234030974046918156997497838592534778185849949124704295979717123522286112677105135648674640494444630910625572937579720176523055915053499771022989117289464300973813625127707907051683260169674706423812776893676851249030613287894099154007043332268585947248673182072869219879343701445683822225405246488035624902583341861817146467643961258579825666199477545985910399883964409230152774915094042246939782989534754928663646214220598915194267487224831268669152552265788060969787771518248836671269477224391066496993241278775517397721125255476993305288480151577949898569556447350480155602845207588205911563395714028334716333430706412407017622895758356842425794281086260491813303983942536870354295139549712103900153124601891297932823682228834042964824678114845068141564551395827250724358412946284379341541467758475188289473532834060822306145995493798412453469708708131714309282612367509756791054616082225063936525075302339254473230136516668250528039209184346363995155634206905036352311565133015210172386084299861151032992518276305911414901492022815647315925319447989119242921096967673635053429491505131843359492645071826109804064934673874331547187747336535260841787018001306819835811537762973429405567870561248813351402427757504272977400132111302212470601441947883617667973812688128422683125947699297355488331806819526668222920875119633690303877791993610126054311673688726150485103994507965899857082260362541865834716470798943552007763427558997877283501107574223072287893505969026252316275731264224988334897832559893464746168670853532685462881704048719148277538626429824915031522168471143606714210863424105333942235296330842006456041178849792215658447573661562837202609941797607397305224015950623189169025995093836915415688398693251024249201170567553868237639746987225974041794840180293184630625808841122334793085709083480981763703017414732729237213650097886854070574100731002503611157025200735722300538705668465206264126300967615618987627587943345548269447326201564506784092773687697724622059802295384082299632701041817683079008375465018774482004667208093902854504774239478473531641862196189199650456564753216338376139504746954803431868981986744047803370828537815098956843444129280934905941771337969916356726804768664225727815059082712880135627371287799557432227842316708372509259546288696004625838013398409029254537516636109705011145397649102275128052307723570248874098083987006091486894587982999678566427670426371911784325626825050191592690763427516813987381194056187474938845149487095061089973590619769402678377566884325376680889143241435846363319348243823770700032825309751627770042617727837233109861029111170565154047001652403215692754682467402062935099872770314857094997015826164668892547059334888092085132304341407940402721488397666154399110394710984120700064920295651680422288854077507121551024222605281825963388100410750218630075013941063189405152982006115168321095921064947456276693167753277933693447119574696181622767132227105028139058654475280083541936839467766832359485136122568691120204158321478831898001290284370950468586030080656659003251748509966904098721878518542693286406780683326595691749905313611952868397569254039636780060609913413262230466285460026417899544682606947809084868859145034491810585537390578301322203139981911128725123258046175825913063247225607593497787887115687327216374814148228039335915936881132280044837160307095793912000039570460732030602712415410852543838805013771910170118943794218771119369931222742697142111955556029446614949759497943648574227170960138020380817351501491791065947402888830177627487465264010468479884517476347836341874545047502317724851165552808341570365106275580722073961259728792875848061948198806776286078877765275340198701714821706593955399242606453266500161914137176438242753684295374995117940378335204204550117446486671504532639968031856121934408504437657351119258197961051376644364509821706026992102124644375043555804539383537254243367788703998542287037082548230553009379066892476870260460285476544358703862101948175002548669805936120557282753420930631538987930041062814160654714841590977220321380793116596261748532588512049289722747855029431005249989573699364585882707734471184918005876551120420472276034446192592573407875528122842973602322567261477146318887708972559657366832351691339888979936289996754930304579959050071878607468435884167474419691364429702437390020042317563097441352354538029340231507317587839971842811945502230801657035272268104919557909731767041427599386947297242498815512102065285433232199217052881282128708239155616752297610935403400570210251568579555448832764834519451300518872556350939736643671103876667694758467870352955519960583533577472478450255537637995351013157232558732195929773216745613641699589039172365486593881616546356187821610895799056361161507234351451280172869302671095836741212641795984181833480017905649812460462854120888732695949594700185837944130955286986068347394527046931149958805007165845459145013820514850741112915169203064831863476415939468540007103106346630908474026186282013019976330112631278461898466384824202616006053643120203599538130332627616632511714780968160934546774960881394841948032450966856686777848036953909482254033175524946557895507847408092757059657316943814345249012175905511615063494279055498800828106620905179468358329035154448870058775190619606400547199823486568440501929255465164585525200386447192346706125119372490138298538530544660790812430359396367928857904353020474388609185030533789813244284678252424868912863646629706951217285095184256813588241361162071623384630580918923635353595581062669903394573405522029980558862471752544385077653625749664955561650361864753063112897574790472359458636616899725684320664047525016497522267425370945355832960475166863721502358906492340713457726222269851014094227161167608843928137109904253302413643598137079283341918310211065039313653862198040233440380016565691641484668455001213177489378936623877661069213423927478817653171588133072030541754606308678068020351114717964683067133504645679610650771885286825240682597798569021603063089819827993510752591639168285862710258788408343641688574131672973485428711742377537163021833962042772565978380352266584985043050218034167158949016943399313086532572072324232349889610937085234485453686235577037250429654871086223092981671259011980521311438487020286809037466582127219869924246940867508800559941011159153717898390385919149823481335981993431030700810060981697687325092911347932755632232013593674285510229673163312774786144230895329485286649244311769167789007181657450202497749195529019174010187293910645297146134560268381200424950452412633929280647422225800049420764886592968624177130639252478252631279933637821377230818714394382555057990246181558476538462138336198902528211345169070279517617550142871292570253519730538374232447839544656691061680904782818987272601261201068104318941670827515199742255731745699619212736686436583654853537724067008589034367509912177010230478719829182042907868729316160645998821494549290161109937516723967643915654884543240778384442437635710186535813548623992212213664513644046100605396194954468144862984267199350639180625786617875171154844118373273789774465789780082921832825763593572313661225071249247671100350311712961349175501915129000396270832862174123627659983741606441386062679717134905690061217382086452666400583008688142600570938509852949812914935843357757760476313045431393451769732768575455737646621617533456058117223310052899405948537741794649077835126557560241778609917434625165069453660792344243788151721443923829627544578550233307541716853265752571649339186236979226214026587643728410516937387208749480503903670786636931862037975187870337879520344239789689034295135344729579243575741608051391584753282478509677541411291154973418227036808383794896427993303986012544661902355356321522941463853845055426538672690065435866351128600547944933407463670610747245519208962672049729262070259143143932218514993397354257637804877761033317632980701582679534049936736414626560478361302181646715614246823024452694696432512655444045523048859567149636850512428605879439096285575012578443599800714634113065938281599924483709011363106709726587681021114038914588297671895552971208482059841051948518791236619413485724874273118368309290020744760617561296004383193238015485722956783371100941238073581897918784015206454825619872574871464070838446601744080969665508578354354636294987187493446434666151392523890678967139480481817067041300616334822781358908536267824452256802407086974280370627308482163654010550749380635055372080126020978799978020509413618389509061251908537354340155771299560658395082247180022996244868051243788318641558687524926957143408672460598790607360388976246848544788467162703512340503533984405177374507398685660366516253524935278074303762454631492567254574557184397407732659922068431821101423186519029098049384288075996609753247145238180580245251200538414399225996513946740700325437730539095310108875649511685418016000725990150542593426330295104010568830440312143145269459039474552763622394016218430294186845348358609536901821068487301061136000022765905395557596978567487802348374686383856795126996415466253178287025377279294063821132491975631919626461648594571813335712194895008876470547108463178029751933013588979081591995094884978541866439369249015891609815841162820766294301141602481852825811444533496618282836246198807972021827773992267386938991068229051011423351397791799092021872361766551831625220406162903230642297374776059485902741804248990627452491250100290138420862913196960632528448459300172885192028589612463034474714243859471706354782746979287514818077954361186537097244853847689759855734695816728948907470784473532629325802871563372180676097704522399686584280610381933859456813303257733909209443021481919355698558996757271049590066499908098050898021996477049189339229919815071535863880660255528027215857128279603192741589747763898737039521588033086825498695436476723501847314909567202343328013652601467134685838920669407635198280814725283069421245639438619456561974319535018489756040072681658464567502630066641701874598887520326618543056489933299934238247630236249786861249254098521052575740712046811650168487027246587106149444240115673311330386995503488318983112491451763109959365300238074099336869104268492125955676829547633587797650675090440578979583014680448305030569587764732297605783477491276150475347249004647584461753676542307203108123445373928951634635649090752734634405845670313054712868675611047615829847702520505706824653483727765910216945777957499137839358361952240950310246056548287041195800094496177464296182139719182182677346608625284038610685691739730350443914056505331569020819628453298903174056539144149731012855200555030172553383810038126792860474878854607047954265012013272917485834406825556956483137473072873115500641700266942681013461711160110076147650928971125466731121452698160772990653526671968170191457024576043776500175343542077396734302804365294069553003250906552881349591438096644850979880778111367325480874383630339444787113858516604870534151193517282339709598729855616496158695396919965166016685308811049369978107990082065206788908571012539467123239743602215327946250726503006511626926385144496606339146869770461707866389746133648808123597644988492592711901113754931757955588652705130741877885332372001791985841016127997163964523537533390206656366769826238025866402703675314225865267260921401149689340203328710681200694737633348308514053310559424990644827805732769563765843851107939395459269718835092875553978232790888811169456011038921480935385010010107584490369240174459978458733941579066053865566543276873844538971304657193838104003778008754433661097046660556630424916468648058666493983102358728235465343480727343194663617746941159260928412791016912584588954619276007872659658433475110777759825529655208995737056787379408916914621816719431039008293132564017736792211489105594489300683767600022643381127898177430324069535227254227591849696597820432152844041633049355792912148596096226258444752507146001478184148803321407606902403682924000933022319927168167321213312995791762155983354881739313888543335217790181102560108246463805523310701311158386390799485135532838128002379029794744413896448499908130312977864181746355876122522953221708031574421756323840826244286275510366348356873822440335955497397510541790916437193717625055015819163008184809980946077789497298540776941507472995936080441313849780091553082915508649165944897994806698628253430208797487213382425855017349671725784676421760018183247629246752293427106544471831695258647124344355550842638987377663299141760450870726168690543693916406539432644922096126757593323744270938302993133795559571355084299206607445691891587906520763773318851962448120915408360754544236056070549406741175277001995841179923989470503397535963428510245924728236040242879474765796130344407325304939226653983798466253050627165821961544969651265441551915324439128296258748386144025080534378097383264723771822698256225059008171335449517956847514021254673802607172580698657824242787612038441860670302731123078674691517508512077549404254031743748668311819869237546126038420253640446340139573280635311851340937684844168870503862152892286822001981627497828120940367877488192084321577326041601719470650459709744452806659179095657142869273376822193182190787450468297655738883454415632499798506870659339623063987142683711888828999504542147521215014311556360645150956463824935720475099911333488893544454422723929354436462152628402433188819229918775346628169237874658025516933249829397725173207865879801865002125746815954211478619333559551817956147169478004797795142754200002526960324393759923601020796805188745702685843854765768995691396789648589442314351157438871345694651602868165536857243399526029475659634990344334856253621188856502383547762773987659512485013960753334525928393920044829796327869940820184562019340551630477612499009641687474055670280759609754310192487005054308054034494973114282741419308784340965160069193122410013251047350178198490532908877765302325556324201072211583929835915092515399731026465205180447390164953414311287996712123217202892866410558607537180204127129575198686176995391595399966906141559816900247889719469196498581231860761225024787118120879814045995961036377348061167592814296782299848324871003506328296359932588478982095123692139687115459275186422892685301609306823565234865299603199390028559713920470093078050598385647699757878069008464430318971174067694429439288206027583946770071609199217865398806046241021219127289648950465267810378631991542624914943178296154353793861467667514604742323772472512028400884236854291612536144360961074656386374965745758028292862420263510896086330769858917046077235887841173137706092707617200267186440798232212784692344690300329638336473348310609303299469575571951269420398030741770060981354375049301447832888736280537280421880981802103902082823212202417315115801441991264017333594164210667314573364401879100572466509481918286937838545469906648265700698233201549771590545908775513093439286788135890506987146628312598031293050396749626129535970480287423039566659030669687029525137306979417357333247966001194490105215651652183881739332963502058994801777768329218689493824541799095418928207345518272342152370343039211433987868394619353514378559683989417807856567158538797059575823245649578647576343107366256265560328198864214314143456122821221366514310907756581510278212348794706381543004216292295038446210964833276178954621528913610569428410646308271860946846525648913964214834090528477631437795645756966905032610549395984621395195209906241728582550415101482561292379449407261454188566387141492477830204387156527616902763207760880573295742577492074968153918147841437370955813405871056831718444649669672446271136256497984686731848415869447978124604331433202707237333984231724134823201783948688440876535765309125544344829382266453286759080844787449799793556860047951372481964342922610425512270136415259894471805216498151375706651276658598537974839394989195715189365792854674641116895241515329344527227520429922682319305282579574511281089351826728211658588344009563235903134069822435056785120696750124955208399582362595484717520093460119110944938435834037338446472806058002677339567450847229465714132832402908546783140477818141871721390645872828076677442778303808517075065893552817014648776775751208430029691620168066474164102241987543263410279752768308556854554873659028950408899955273296120999633277881648253346966627857726183425203520942536292177795776182073550018793090308716258642488057586989812109417228102308395435083046717622822352225050861708196786039230331090111681237451417572275049930078194068363873916263006664281558367022214888678919563149191812240885678280813151768991762596419230597627556974239152624505451312443411243683031980133231900182255874607410019174719861441051286776023662512785613624536652858406818341890253452773089650319208039984691872884589498931595262109772720591197296134597339410683690335614214460971802062123963567146077112482880042934775515313420571995315314827605976787495797089554962920895670488210158801906876787810881027043865707277987852928021750178662882969410053045133954055990189866766930233784559855795213430939104913415598413860563364085568915468797581233141308449543930628834061421049372488807410905491779938784792794044071027950807531371926105050691406162294541649085385559468604296747521878708193131628264608024095054344835894634132125886047262333706210101655305898748754788709011426347860431911069922713084210079254762479580826665405006049843944553410856616063902640505841321971788124458570741678083862772990343339392809235073893700163131491737910588416240684551374131528836769441647482747495887479564059873433585134133462274952252845799337565163318469316973895795500495156442159331265007461206033605757643926180851123246583876971921725426505678184778048822435285144163064426988832691219947381237511321464497427303033667759843882335357447907953612232663183052702974292386418083340151119771833545293438237373276256195777616666004015246955158198870126556385589201521008689152241982440332026144674934730698698079187171984049915512252110756929950694626093324115770958335644951171432153234829180916410363643801881201376802700852238804433610983771164635427730293177337026604400603031924943622948572203335771105020766209522720096136709683229557696678174626565467774210942092126199824563859464777335536571838824011149960064640550885403767454600106140099109573236690895417361723323654540314641806933636068454721800600950228653485536699149327898168600106528761519450388334415430315011713462945620236272526622894031404290214174274229621233337408762829377009368950481474901727726523521193817911232211734368442322257924397007786990900609485512826136118686213838149587810729849372768397377482391048610890557793028472442439759224742303509744578169286266469788449859129667064824002577962209449416818774019309560382225665204340248893720005856180235012907073334429936173129732895651741568047917689407600307213007674168835644310418824012517711679186317831680917888267694165724188760391435971288601340296490474032845453971629809554655263524877539334009472832797971646927809142875622579305526646865687230209550571107951349101840776193231607382185282984399390045309234261739996861305583666453251369874868794297848438235765473766026470563359718317908751472242287616139655567259555145654549053674124917455262063054180830803220114620065269698255157326077693660584741615190524365410308038515025462274037712439372543372445828214889071827922764475229536898070760540053086451331114167292158612222347802554609633695886161730357691376026019746254625686458314159467571884851279046710490243519473254644061001689391983888535789114826973504013645306660777391122202236940823059645845244587513613498593526257827126488083158644036417171462348032188495474587288133062676761558028544990814356965653421055726358937689491195293444240327519108481181114398035457897660794199336383508672170738337597670871682347406950167216972546508077975024636513112524636450821052241278001382573536466798003800621278373299704213345853597259979624578609398524232945114641194944033033927321421556066833941521165983298022527541967084217988250521003096542112756825211879632033436216259128859773687135375837095349312240934879228400609565391750492529262911806062216674976475682952164089023077199673565653930832214053829359737291172649576318228778955614713531419793851230098511492892110703542294103490424463446893483098561873182919246728267503505042920029661935328096870479940296438140529518048339298549533025944040286331123002163147521123191384662824967559619714570191963898609282447028473262126210694966789100649842712438649567237847131090791248237895407314106222589151122233501682168537061740790939464649728035800988093998788739255362934316348897275989053319233137858474226189569736338034214082382213461256443342959229710994903181000202519487151995175978517085156871205044724327568949546646362394542972204053431716232133606319424528477061444159905299329350523137469454416638863165812620978091321513760897179531906698825443272297877141502115425631539260580880359143033498077590090730123597618172967401819521695950204847973373468825566371787335016214195544224465298414106444235772399797671633142158291304583723624121889799829892093620517271064047751786134585153910207884140930979482654467281800919527857001644626000180065246176229250430539476102689059166623830857090865853716193652955762157502269259661962069278712764601439121262738555586875834379797307583401249161899675674283328234596615762597161414055694406891283745222248496445825259557105235909467303532839662719274407941386179831146176743497567926914480075768446889946160732573828710609983158286598844325613652387719763261898230110323864393348686392557116247478656710057093856721039693159097145001117177969496829748462348634464304317830516199189745749602173628814690572629868587739671823210523572930055096694526680531499000474570479491041319208945607639191153800297076875318849807787936373780229235978190944494231655092923455472394069323485930074845899860104591081530013928177584843010355656056450962836990995235334542412267916454697929530608709937637566147409500740833883078563566752903818560321760991522481004204033609629368504039550402570814670242973821124638680326738983674426293230904497733884790041939730372203808857645414929109721288988455062155965789797504212372415046358515747376424151431159277089135380530703927251318370528959002600508606903543815599122182059973068552052073504823473439557538072441274934843607114738071488710691537057721867946049998074189002845832946298432469758370617516035533789421763799072886494866667415696716148538730309514653687568557696100851588647150706242926688827520284622975198044595291952810842027171485479288552399749653542872894000057750475283241802029542124227453356171764794898756473723368153984599198661245153122594881391093242738805858732306668503401489247417009611819985158099823240541726699592623499270738473248326341223939069203037279232760182295587770013504221499702668967269820605978011429800121858584614230391919216005601178644954053838979733258804234198050955300805118901489757000152485975721202491436010064083271602621549299829695816344138975907065901700971099435991134681216768304368611823918597134052083810650055020044216864060274146423254325068783032030131950160835942435073056227145378131484045064399590135454066344646036901453481869896629941351348471105676444443119545219685140769424181633221458558577116469699102489710688358565510118687436460554148220158523842796596260541883064360555117401407631616736598676238540490482919743095787673747551926436349846141021852928503050883457410655307612905006595779595672520177151158720773989941360669954173477965062974678527864128303435798790729685104571338859882979812842161775999314665431786213797963778033335801509888122803848928343321578812903984303295060784154088520001966041333047622837810740543466090857649176570929925413222042226605134952954578723841206147996693821562277110750509830588171216393172959564265170185317952990054224285017471132541695817276612796586580694922824610019517333898026970163462031303472975795913782657630969887645687736338713967421238914176081682600136547851835811432969876813550726435768811254782781031752217192270699648830845279084987035743859003333871453496117842898279131776919527386009765363247172364001325870428245926986852944942345089641508357746617960920579097925475592822556627054569587001881143524933257621302526553510536936113065158011246222246000213762345652638223677798983121274040272168947753580682965102289127267064745077449523515781069302105344592465209884202321180452230134430020138268470277780530982839372438623032330151705444609432709634341268149929892795542903684590738971265715099324531238284745650597850304662597425158344448608856381051532738721893685107078509393136184134452591963924469726112929301614721829937969462978280167276492644642245484288109154999637663771195748031281866507376236169529022481566790304166197947595036348919309254147770418468369030246838437985960595974888171085601850078362678351149113535252301497478934265827854331639946905561067082478816597413508844439944008702144177060142151740489245619382090042553828078321931956406988457081384396376138130985256071585506260560878417821558175436721311407263051146400240300848295024357827449731290787535474797989441011207406205994297043402649476548678411777172496194247905966042783507544149385276153543664693226062213519423243792630948797695181191154125446183397059741483354059144205878032780952163904616999899689540284518771029377522679546238632931543113557877898304742919572452812873087361667171982489262814021099181236367469655637461871098790745174119573870894551373061864975175785020966051686282645952648681168928098626591348990969350197665416789369361367138552661226437735288409799880578867155826868058094589360390201002382400015870930091907313269075042284566441104297896169782328298990718872554064383259055290534396433679073831736159885908190856127813175036157119529351397114061355318312533002694087226475970412053674225973041866910814054837890609082594864049309526313217697661991477464759389452447956194117168659237318943181522660320480546920066498781098517412631962076086863721955745575649513173249061286244252269429666845869533911781371171592616800130769019669539734416763377540403678667471219374460718423022994296833007593484949315033437263249931767357328686708494879075580507856768624469514395150217812349122191927101234218130509828942353080640717643607964179394101803677773250076856261960416529584901497668657568820082077289803732449268302487813851234345555244258960262465565229486205887797384623340057878274429391898316756917576493058498434005135224106040874711259915000565661119672220121453039289709860394449048723817376851233815315037971589244341533624269662865158951067480292614989270968295829406806895467040211080698162197917917282389227298235214302943917717497695070109398602999517864653685505020334900824788234765330315192070647803671875497755219841273017782742893120642056717481609211696846073365989968413998591213397955744728166126995654507862909987431757331093071890804976434666546325737122820463373436067111126657088403038973223166826955774244074674428874589785821686671471695249170855699702690550474541986761502835535509310177103041263988874474365353804698827592725761502347740306114880326239753767339701132570036271598513457222956928974672102701325182402750259600491855188334785481710610502585434187292661093740026795680177578964225068048280924347750772299022111600368801257319451818062050923756638206518535474414606834583652240687792361847228409618892659884417688761869004644855510365470051367347821395085112365273393314191719589936087495824347610576667607222018246114420980200174967053453247688512951235888614465244317595159176408509957518301105670320490403147889480468942484071416811504074240809484525001798814256619834727413948508290997467000005163396954787144590790088020159127939860250205983221242572072430192459245188164059778174558020427466238669879801633591920220729099053875680388492701001915905693334632860143649453849808564246079902892309453039454371593265759013982561832801002765540775948853013201443757273712329466956469537076006659561585899897633628314756225572674349993218194139167977112660507563252782100344512550596407662169849311554448895211659470071994054172213077581901730762946982039303064374214963538660326100125285809138864873424221873438983556247372374634326495772073986558693976170670336291830632905255355367959283124697683171071056531096307687808529838287404637841772289000613409476994335005972318557091877967187907138757127783358086059404329385757803771562314662787756748328749470222333598882123119738562104492420624735763866129889492499692613470863991924328427890418200330477724859655237956395163231466419389398903609041630757848283141768412987706169865948196373870692288007705363734579406000261279757422568315019591516032653755864159272169523998377342450274797851008743488732929334223046028868832587026155101771073326603135477219636300086772944136170826882031146626552755122982457939294711306935418794234515740642682667749960753710523419253324812888731004194359990401618104474124308216563678139609794453098408844618641956921941278833128097805296613269244789863806627389095665595912185239660732913844902892337914173145899386800121195367022982371997601459379441606138277865162089653231110213418946457630952670912702710480623560315260000787762343828478117534353570492707402863065746535212794418271920547104695402643935626991539285354099408218703060641060507020797466355233602132843531917705637885992570985156918724820219948182069677288655716917119853215067663275894962487898377753853280586573784238149910585744530629507823090131243266763608065074077780164396956684956697719370597893940754531569096811346310761113081970590787272938585810563845089780667714735477461440568221921503013634266957594156000181442869057140103295174882557352744149045440137326263767998592291240349143554251798211909703566718471118948187436019456906070274782307434510008571129485096889764415636979884815574070542760564909978769306090156582577559542455436961308535421117853350740301010171354040015730711989106724639680976681269785150288484883253624668120236147762958289497253344004011920314527924009137502522402199644327303207494195432252404137233551901705184016270552384916931168474724599599856983031395606986598420695253297202654673901991528257378737965469549695800104672750658605232867512799991979267338111383560547889404209213156190772298432959182043189657458601911301862878360281138777764602698572995051420245194261876398261192050198748198258373094611191493452731829623526366139816960883121601247906365424699330451437539158459228839392085084511249424472569753071949297705135523853545833278254748321285742861799112110960382810740614039070723821892245943113205512043067821850461397432749072155311390380046470464988669718814633399886129117186824560938644151307244765068964750948319372776072742436804622921771997559474026049980128214551996564716601190302369124997619107191523377991568304884984908926270605522247813413776991008401442602503758708025081891622243705184237878201794672109613262612107304896968440650845539622523727460625253998406004023570476188666405328958431905703127801358411282745663539062519556730604109173113744183497434235022450492363295010948351933058711288208870609923271720590776331242098467945743382084036027759496286942434384796833521227442205293131172669342283009538001692110773801076448579805257164177188335769870770159881996775511713479335924031460243551773143137422165554975267309406965687368386732193969350598054436319547275819031968961453130412964282905934406394234841644281891178201262874071646209888096741881497803449370049135179736344062214364072753658492876027792891178719071712870352102518136455733156915878312789573900119191973435422564700123468374369922686171240349718892071106268491661082727429314071141818228234862653777801586726005734987614879473768729924628556097911510611624298997501298047590170869420532518357869491809424785861198216029008984189448573706197546926724179293549740070993388871934788498326831174073231884638764498070406026063025419942344042659364054744343153056460793086737628763045455753460866051659364299187458112506245131016802617422189417094163516173958214698191927430427242414140928306262733500129611923249654699227114917382678470248682376177986688280752781134865256054202093141442737935931319987368211942970389655584762502409176402043237111419988416726727819901189085461152321546155166464335962103951519354392746964280681082643607599538574795532288004852873911546157865085105765292608688416793968749973700364672822598781608070878965109521042397612581706450052743623940555333486485280185601771426937748356449689933278701935710490016078595872424797905179419093039102859680224764915658384061942473850294096211299051470052676956079832280889393824230121503028774566146862524275089867084100312808123018541816215263324567151856869659471663720437159699453915271490531002048524235742712150746239302491824627460341472288829665436831673597285093625542659245851084371474830888105915021340982813260108911005350356695570358774800397267833694205694361514068325268524282097353016443693640783187997070557205282899025088233927867099912075864939674077329847350119467449234957237560120825754378684665167173670232135374202393643875890448913785274651831965844306146670359232461081242796006098364097931398759644463724495196991746440125880023193506104020856879891148836254744553678601692258226438145674837125539861808071741543470449218897374829267536582858222240122998210107078179913399023982835795711505838644530506567417542274101750666560916663503895502913327496754038786047723379202209384226302269799103549755534511240016386297455817412113109742482997943658626166437054726519748277705600217184440244206873802740763285804612730065802442733473376752699846677806510604988936374473183298520467934121086526137321861596923439728104812983224904902228706846050370425326154272630567298610640148252438213993011767298176916402508936030446035520301138344459802797597363332956316396639372460027222046299794168406277912215164382819009682584209350032341981045147361865328311153343468901711362422284672056958430662390358158794481167911442310673665462058821500437954196964794344338197034867780214038187353168274305379185681301452278512176630700185191489121784815827487669944594367985956720471794522910998646268119718710833651700967967603862438282591071729315682279653232827607284212740186187259557838904633993138035067978028754234338375571851975930909422892303547121001632015030839841295408695078089186088296828077892861168227758082667478190882177916886924859836871866422497131343414434260276238503914360194498149266067414851799783453289460813199828259568607107264225908991988480408183997226754969207201109174037923221033268413057979992734875530494152574562973369892939822025366846581386279536887097344327873027736176404335296551299063830732640010950678459199114123719833806717544033212093254661064463793571870738687696249156361007671153971116136952075569839881521350327754133784607666820632768976559369864011413728285502855643986017194131796756317575255470816609152510760682101153982293942491727102302005763918173001194288141047007350913225354385394610203616848255793597035624052563886934069220203538268937347144640439232229501443170998545378651575460959562745578587698732544063593505346996489690118178852515061786960988914221374594244132765885289356709826462981094222996077253284712803134335533957545972319164204017936023806943869538976029812931312670210688311832933922419921550457348466067404171323302058815000850029436491728626167876249643077496904913916716347010328119863822824566781532181985440468369361858752125658997846215803347387910943509740894951362761425270481126502272377208433328677249167892870697485036321014577421924225608640132464943315600286938530372722766246470682634391241437402863493807661739368962722084391479078468950830223412360425423925100783724924175749667673990748114913819979089613614972157941655232506920955100471379658384893957635823374987025828303220694427269641927763716221046057013712591401334903409018392104124077888296127685620143290804921103390718761993611967157754747574290507124739951215914573245576252837504428502618616966577117555881394734744251150293822406886954228147372147756138883290304337312276415101541925325256688368703204828170768682541812901658127690457022211875109784293376525175862513987746110388192372778760867854099002857622995681296434543355868547656088335911450525483262200128016614763231749272255603228443080812970055491354836189622566946479397601332490410264777802094049156042557072828413707316279935273171518585426662547890702892067343217537965133738703387004378451940448041040986307326450881758959386687808106714107446227596946075195333940675302979648437329442408353622347694915238989220482560567706383208513839798314477682591871782531418521298871381916436117480881297558937291982259316444339807745116796860643861713979898073056031051763858081374644662832678351545209191233628314440338493395520317780765078481334191248499333597645956393147423910399735206661087651545341489871256699257459274655163753363074948206044874560135890275658048529386923556024439415717682488802739542171485408855050254735958764057474470835149593855387631241754394706140879215475812053280343425273878678850481696247840678990596041732304558588018076185714331853263138919302606974088261676822803954013331290260866267120471822153143718652758036505056354735678038712181204422150684552917249954599738494394486903067047688953443174794083786969560018911350328873206624269676193860769555009581343735319336049180996478817340720610559753964958462942292848930230656431057304123375333117341249851233453256077144253447507500030835103940072029190299755376508196187334050041177982963748932308864706268438180154424601243640264643563864869803092660175280945061787778207919935703070550290007673430930556400367243106398927563299922891109168895595523421956851986611347754283811535695849823724450037360559464940808982699438332489511274752876812404764882471747624436652293553047076796163197593324501999933284220508410707884635925586469813455841310701678600936233709054619532291090549853093825236607768010001851387180817538782487916817077652898616037875206360084575779431884582471892375344504467478517221252615440637703884657755494806089494796958295022525227003111548044420350744724920851431798443488347986273505724597353418999320726673217789273472601474472953397092369161491254314048304268652192783669500900939311567906206920155001576343290916518713801841355208099880547126435380734054650073084477965032756481318991244327905772090914934642390378119859470639257140994416703947401374396602769319033458593812613510537394223317202184370099473738820864506467473602064459155761209799336932670917745021536896118634331679437655485071396514555400136683455214827563228779942896481236829339369413139324505206848143713935952918722930171345499838599281059200422830529821863864116866150453611930467190162492397837350508560977841841982892894993572513928595488750742922433807758323175530521912206412625117122470320209104261891999546619324640228931834542306944923144142117568204877185412517069750264274767984366407101757762016623122939683859193644724988828352920392557632339746598669442568748070479194912151208761841969104115020776302702432557315851355336890317396282783257281409701876317287521009033264898262573714995753090370064013761086362699250274537066904954914216822601536907580725447215811750236272489596859031604936413573756210868729711125753804876724304040828297169727173999697995563240877266869591377960634800243676829945399443225521348519135601332647845598727663834079364771880884951322497313072302168547634531882719054468701648669598782680405283550568014128711703246735991180041323579381915914772292217598984635680387508739626129304580372341028544891917886487563755518795127138351465130420261715902789355913631012657099070948720400343642990648051461814031426776255723312309111385803491201890829849712571291657525145702293045059774127809651896800313814546553698229571586303009452701080655815554250847095141150852137494095742372563691295618690704656955209020776670188779829911671020426365387153554661173259452211458855063921559514263179978359069136979664024198204938492841972974633233999799973921006343687204845008845950029253035310587230843036577774560766864419289731986634168793397381256184245482460022263322337751827499537485578041467481134932221751117094549041180808041388065140136146704397644360192068162438354606193014736240783615177391568188695057931986327402400958009605087957723607330113943396563998522885729304584804174417933043036738293325244423825431645661952419186226261245877876300145481553568775598450084523785268204167439765733542085124031297351647805336410207555356443207260141518134754313217892495356522026283995077593787821906420934684076356842588470848341754661904843031814928771461559596387617587814133561417534056920502777204927246090814689029984184777159530085611534463898339748807363068198538476267946560185199294760783565418545507780174320409350029746854916919624838990566279630272791954173050960108650145392940276104013933559723364127135200588210654675295889259190475716395092313128088301220383143218730647830802186237262786167806521916586888711479862968379909654639955788178261561574367588484405095498748303494073843798550824343087958987096785789050140583094128771677882419200931599927381044976697050513149406356564298578010165018397698328406519422114060856099289251809051874536712099178883905861750014721977545853217801320999829622511726409472948470358886389281949946055587049718677628532262365961810894071891895239089543637517056728499797925338957378964315811025229580928614076997192133497069541776342782343845340366061698257883892766243335058178340885658863034096163049539676797017889854781839717257358118015129721406100223062752932243328271956471277069465788737416703390837801362319006058075873781725713626648587793735727547376008178123611799529258755341541950425696673883309831325904141684215982754399553697356025123865106376653911760301726677332338112231116204956105793387232258613842982232206205871196692350654184212519174494768504361503432722964401258221207833335725388740744368041654985634671495238234771714539868962402739707470274946956676270624391968975999246853896822911408217152771320286913768142043706959546579636954610479504069073704062311430614127749356297567017943522013287275148367084900142009296429373139520648453893340355868956234989501257737430058128707550837834965924624638405677830785075732764876946105556683459904182176971245098532749794420415598156273501965216939906514242658279614664739752181957740630890295233220662441349738769384324292194577003449679887771695430243297573343451573528086402519330894671881423132637331829463597021266882740920815564666195984303010117078960324029330319427939367239774758856909418021364540470957998422106065271415351866321029261330512075208736803258895774591780590842472441624273985687742390584382778990786549070637055830523082910595382901465378674799765212295900639833933629960545774678519199190510654001513727311550643110238427637485483458964792951376273150557894920732529196576288920904640318709758551150001147545181745404444657907327114135172069015667199327371676807484629415207781921967678918299881888134234588809896292306440024032226370393858501048232402003143415553059967029141809402121868342187792351366995483150250966320236421586988114869326274733005437002102934122554775132829308597588005375187174758634793288099350934762122899604119350114598171747155304296745456970395408954808117849532412631866177534668900251132031731924299322818546984275909047944000526778513505417517326004288187892939930403875475414750133815912829472291720904039202743493324602026192659500317350993089434334088817953405255397851971340391656336314176348919923698286436826443123405048396076643502227835479024546600375040483543028954070109786568516564188590305873905359278628376412617001555646419007341738015424436677431434192202943204167222701347306450648129889018034704142661210117783549784146210921224888897171219433907503643979358401232134906424009870822211195307948239650687007676355072622002844141469450923151325256735767055434434289448235110898680456541269166852001489466550717078373230382871083301678630556049496902073520706151177740080224474820254256725576714422638943971516864671971217879958970759309449485122303005880150756633436392645759041087404353557339197010059781173904909306519239585506471917535950690853996718575810893883888723928145601651223157061683257836842449157256148769792708380898160052031432418777746047334692287334909097505155300460117703530055267216393886145245301107585641707886391901334485582173473927745588123518903374274543211471517374702354464131099475727835894905762116805537425261991462254064164118605412608160155836898439638003238323936393726553703065143451400407067903197718201975057194149779754391984089045386270288521992988211786195991816216075048821870438677339016526403405097435978766285383846529091876565230253430052638146341112194619471970296045220489855289562008574270229336792029266984244813949640519008146568996952213806009065899354813397927491407583153275700988598423194515992766485814377004082124486442845584068924532437581467500023708885780329154354532603616162671723857862462145498902945711219033980793870511602300933079857036964779346464272079610551808684011775493733913525355596285948115007203573453745272376191400746296028805026997836589047167525697283508318764362686037491333223315943690255344611797200872621319076097779998425261062646967871545275753076017775608607693955657238404299472181955589531999401367666917173570937587455386288938996869096898735876496993846719783466555093491530896290471744797964384751463652996661178401342436985481143220885130823967823185843819837797940656499430791338506707785223832452700234815862495112640353188766214520711036248699682326424777315705825047736437630075153313163137060575514195413751135419435583709064631983245188453446445287266012534582346268256674553384317809247219828913930209139019899327290409104519374002148985763377455619215580403279819601997037041499162426759164049099897670586844679588254708734212474765019348043073641695443213321846906414533514470015219032961849264043930952964762885305910449013381165472605059797521667013852740163689901824332518633752468464714574681359695565956420259518578570949577147676227907364070567450660032588100958175933204592629771437043043049491722538533841032965117667352743609450796316849965057828966068090873634535284351353192772853755631288515908383078552665220406523263594662453308383194114941513895293234982391298350377522771005270630668912060337131362491827604172520076952774726950952949415693439561498473244823045553758310886395103442707947377999212821629969669625163809664773782654018847445783689239020179327162141132446805043936311271338065344997912226911720480110426934463090621596362888381032298566744005288147269205665810987841131347269769407109693169183508752137179436530099795654072953520130381672006695190080021772342543578881238341173299837747446486819702425438430847305591884886569839929509946193312594220128118566072730035990293394287339584160733266152354386183707262031716847984630936976163794320480437994208343059357322174901595333716264104317321428061571878497419395682518502754714249509379848392505673814808760189732632188597741608167410020374182494664026856269621703950927055293129239357601046270496348679798296621731749002337922002069600464685148110636757594749432039760938362908483219800595091110717635858656946816841722302064104042700940535338174003036070534493847020937560394671798014524985985278557634415682563840008242146993773901329929929701643132761586175454821645285057600414051458113279879098467177437974443451324450494615673034703991074793502129372746935996694638329200904916226884135586789377109163193103376999778618458599457292482921617512035801140179735208367503395840383838697808242137549846325232654347305879510148631081116535160104430067054733358144120410740246640802043808552109496491057417097086861851680544303016534067038022580010288442620502273223827615050818949620474551993311307807637923389552226282623465432614905361087017174623167968963057997114226811741836151209418344104325447743743159779050255044129080783696526343066832801101507956699007817448436378778061136207991830010819190428377721743208196656637853416255959634791682202477699247762686267721081499705874258693065790351585344726812336942145010451238456248511641615896173675034786202822348735733898978249497719039944999860491215314587090571338992024472958471180342030917181700015682274915732819667734184667486328404320187821798701473322320489265828564673636080307781817769026849597254536822695129066317569793472392673934542972621166217774702009991024270052883365563247041005158075370484790809410945702113424151347475473610076873110162321546026268343893358887476537450888181080355377634402552740804366258501181789563002113672963376125918902257887132695992856926259927306865344626324215122423447527906436301449345608587789889122343995705660392824513158756781873692202169424235523170016002972607955314980049515611838496800102151510143229852366327615893233613829869772699519665436089096864003101393049906340348397932578438419184996253590355381556645553788749528431953938467998455804155622149528277594904260954479097907455504225611502215737330656180776943650491687723559098022874243536208405046501894757033269476205601475423255058406684978966359710582582002449908432521077570226680189201651658138152473250266558377573321107633217881749872737354917147747393110134997473018132900310199729861332612550984489874266138630809139721945051969913866062003753980048593628724324910815491417527748102965653045534423460361064970517892559296447563010534887838857586038040043477349437814857718330750132508966619241358885652462956462661637927354259516209643056196838885551365717606885750979761073589691087887012562840706819162207385197374680353295169669657449332530383079176164442698417381481049105967391605775537047642587541759636234484720873494642312160434931114928953189954080317493954477551925471026066168932661782406158145509573555141402853909545393565469821319180260344705134561159913944595420820272033303135075920614616640248496856778509533794036864253228081269014526371948966552876418892738447275517216926864342704431528639001971559274505471621566252080250650532608918346007438750956929646577127529015736279941780077531936101063352780191029663872136196750364653792995528940692751114468427205777276737854726750841208868384633367773394759217234733326576873005376007419470852379723729859747703666394790421842715764537620831543122909594500468160942641716467944438527101208305258637787900672525748059139718181181898279588612169151937646919550555308050400837948853408192194213271460193924223386907213451960035353047304931818987241327985549382907196105869270766947069156305698923685392254905958641516411313746955367229802296922495119365850637954615819061485639568244755681465206966001016461386467332918133483220237671756072647551575605752730410675716852894708995098484989644742989419736824857653975037489777887401525080008273271169130582408538780292339746015326727019836388958652117420587881255633957187970896991242232062984358374945287524889635900295921810751493293845259614744414253283312400483247322604517493098900233632943973877172935455862455693809380016274569666039573814948512891144982258535502650752058333952374930920521063682728625737001635760357768774236494064211784282445894098381257228554413282137395198551372724618267881482563916095329205475609684272869017760313791116764250542133612730047036266388424101433598389721363660604134032276336232457000469881015775605461696807629279959218129824427433833954042884177577411016053715801237730532550032495085675052048422290990677020244460913084521486574052282595302354240241913580624382819994283309293209809680767008620390093750486816312167351527511783219773943930853152362615663727398714104237561622781063259001743306061117662072875476649492283033924016933169101576040987952321675779878562641033182740676095884766937321834060988710541720044624724260751433616248664708585566974623521034882430579736329546733575826844327455866130315623771471990954249269084421694571620752049129126049619323091623764343252215734048156347261244112288210333676469864475227338903853197415833132942243430027095011767605042631828203803988817947370414582374539236432461770015822591410749776415189939812753722101353928249746760823817059279465774554006604107799032480726915973971406484531918329874634347028878603501809023864271708342394379395799938260608612114563701276610420304076995000072248594559955518525411202420026957401466822000815675837593920594155058539796933314338782514864973493935275979679799102050002880558767760650203255648458527489055051378992603919996465934077589015770291661904942251575116148458883709290352939976365409994043848229132477807487398040885586989266632936696479875680175555911517261105845091419400274593546519086894877745635601713638841317026880941222635216511552049214868983069576746160143637414630126592358468389167792925801184209093620601399981689836119156467338858204082333031770752414230136930313886997027027888900701602026377063601425838406791448157151301441215895471862468906221861304310340018120030890621420351696924968403000120872659438898986612639943482370062182727306833810247753733780411411304766071580506431013332362905930670186307350361334976717227911647794321558773295158840607176281743419654013089877198379362596935481550109672884831307980790788887032765357017293229609893852663760593394061572598696967791849711090839872482724384294230449332101569581725672848834426563406617622145278388229840898814698519066817278759576397884903516238057727412977708568519936396648989340962051556090090367263723010798327026446132053940796033014929431222935711327889354951127573321141646821970533245674540812331602772663327739032870742596727170936571720443542053300510503141118091219521767014870253135598311789172554770564063868943595568032003024378841871259176793169564018148531943342708132023047414263241756770600471882368758426269014774592097381787702896283850595548215511567467106875486757342790749633526642430800469544760666525065022692730338062012701782615527790561719733874413582455553853744468636913198150309182323554280622620126926518943124248287835464072770427814425934034423261318003447484216001980962442187366877277678399174689834531855135785843672917522741837076836909920222350766261427909208404467357899806697107473501796755469628686434789157191954744236867791447075747987863943522515960065239613937992953354295831170306512845631396549372667234524645155949813627684793367189878846504009605281455772100613412016552152295261009477440947524497048374017225767791882796853390962363257674261789420212946802216591195679503717558395150553151901796994352095705208361061245716392504218737696217123304486516068090568038088211855905951000672141490987021594971508466542311079694996408897516215789783516519808934792827159658966310089228022605202573007546451127625607374652184374324101293223186184917543216242963964387825392485649717848402342107995858383327494454636539320118307334648279871721175809208750766628343093290228488095134758265924583086121881173063411878703536259199106530395859579402030818504703147815994878658231106988391688569788424013814874694499515966596033724717609939950971231274873946072062172078756218850991318610461220518218784040466672591905546576696993792980685453700877779070041549507362144124052452496194152230208438009048743811478921911851868368279514996785340358018979384422800365632419028550231082545070618533316463540828808256685712193130979302832973976606326855779739623074360686059450781899726460365823785840959116332724583751864924024629067109728554245109605690774679264388906530288040857058610258036994006727455138905045727227091996813668181833402714220231363534621879287845799339318404576453655615111542497657342426728547543688254605506406943238508763104656847444263142276341389198705221469131747028599524827047931474292260723432817630292584222650926594477899780397337355161696654848882911588052765305008682623505664031276864935036741741490656311910059835423049688566086578346017010688545209822666049292749364784868405453875185097835992860045869045927805762884665193822863474358626044066650928679418276497249166503178340819440448418359397395150021171844137243379060397587850675406124339738147759733860509462050761194213570705139283332984737211532678892164100369697773650885769465018994321361930707784081228417736295335977264169256781606526246122246587250224613099939406921453199864611855349898115559530245098312974058130077940319629698956544959161712809197657193756692018354736349776643827054848040196592876931329143621656905866539375846135115009569584467595077915228030871127796314251153119658870987741047415669548280681696952171171436089224577664731143593127136401710076335160636162794971920141131716293007080111409388944204409582728679323021944160368536295381432735761279218309001631698495956699658343677517878366073762484740652741189520949080927812721366478686375043891173676170861372059248246329932753428033668984294763292146019776040485698752163117019318731929479153634166706265058162695993455060115037873690482578751815075794814817171549157114120043322558314783821859770919020704485279118571456517353202656878774818047358389026834435054352576222136965610718108394448605006446217824763616235989829461563319562919949285496535705219751021131405092929233214103403463262186738767660482544385711908596696829791638138133744311650417078687230372066523858871968289173842983162546475752380589037640010874801929296173362654177638668564364520241694097337511764473153464956374156637754742704334870604018540500270376102055082726178311592470672766712838971734164159292948852432950624240491199048808183032287227620963354294658166385412648827993458473970762644899961290311479794214205826119381691752114368269478377729584011967858599521602146789668703499761151772852626479265631378081603477913764393714842328285004722531999218724105565548236400608230671285406234079362146699950497133657140383972591943505164524314509973925647853895283580197783845036920441767867621850234610461555382190754717197627562469673599252939757429536803871242423703887691762132398430853056166619385193368710963171760800200486867117796761982314678708693155240470609631000961251010637566556041890748907185602182133505647851023338268661159968600269181262540645347311210601951747545532838739853866412302643473455232559910190567353474517284681974235523267158712995684024500472329666872892228456438597257417080177678419340328280326610670536567079082973569145216590746696206618870967087408755632100338248994247346004254448247125399082088461515122260668924774118781895193235395180238996300637097885381333811023267619775283176821728770329487414411006229515523825377410901562342370033704363055491584354000920259798993985712980592385664247126230978520048743787749888848224212068188364225609240825885393988671710898031623095468237274671864858610184868378162524922903412905649643423047125080382490123083205197515331503562652902660814127902174208701909582102136683366270825875424258530885971999787439036037369121549112086062681265570765820487196503846444082641674346750283884437021703073838499380687385080716020121968542406134579743108733537304321228570533302864527259038963742373232066401923854260988617918328402519768641039377540624946238027309646075198669375759058102034693372936299263703097595274396227569227390251043747450351544619216110606581043471302371035144217800623133812928085321695707306705098041677391520822686693497402722937387399826964397775129936062335321320156304847812726703628424726214151240518478256076636426529310450492286329554743863138806690502142651369067985180348993813416449633466233984520918659355086996345675659938667262488139019629436220296489488903544125433010933270604053104381674874039340596989540053381332857049379862286295039409374188116142397574068127159745414121134272352083383337533045847385074680699061312402237674029533385367155346274210271598286289629631426464087396089019612577046668272373607700977225675660410451880782500641797360441583660636098604689846614342187075892180026458500415445710676125510707741980578932407698252729225378645002582561123512411445655111980707781946179050753982097044156807561496602223783478105180723335145662611120305811374166265498812474772040092395719476050493189937446197534124400533501575017276302680269318847909866828631857787548891243268756521083316164939335975892052595614905790850802613102508953059448454486185790754127396465542726405675179691701085760212590201115598468490419374156632388681067411337112189601551730747244060564835924437104501557088441012788736216950010564359954510208299426531196017356964517037595614910457673189799420653680662780631001052000371979015839519171204679448290524632019984157321020887916150697028690973999523102968336533290889293266549767263994281484081085776820586391107973548642905117889643216851346889811869253571813441998665032774112558997072880531733415809947737417254678313570559564597322503537254018764316588956867418220875715856219380596954342802213622047907985656825117443540851974697351236273481119501131484264863515839813863738890637286695431473318326295563026880627765524687050780600665411507221913303011975756265457420576512718787676486965932767250454301729663471667135037856708436969597885916190818301315304479170992244291550681752380872917186962604447951612529777210771304873795566951292551623978445522450456144788185044091166503998512030034162867280309185167050177793825587780271349646361291160262909905070858675157547790677844322903064100029197446082309765273069888209236492172587511278069664369223466167658606215954031496179480729805694296368604759290763333007257683397344879580048745839752629721710216318133135128599444869346423090088246055151891369242257877342810711969409920689928047587756847118617269794388764732092498064811935455678727261366661609641106483971745488042595814575650606270010367078141870310531966766572521435399272465067395263797502692013103436947150338206305016059232209557834009905349991599541557739402829014370600084593727692509337024525051423378316145420010009739250901122694406358377523719716403186857894311452803710218813039208705805235865351241496319852133051213955721866802293082283756790678407062702469145962186627316240558423856059649756716512901249426964609319465647388136685815340980566734769062689216909863519158250647089821343665082381781999707718631592479694921985027089591124846692775137280741654507227550396724423003095322936506148664753923231630963180906857078733836809057961207115795040545094080500801773829314828117585628199381234268625396741608686085923138993094978953180611634223050428529322704767975543077294842848258095111491889432684706426519252658832987370872720583260999147027888464308031610437015937895317369931187278643001679440761063181358113621696896727857713132806578364559921215792980930445686091396476628565022616087023115018458395743225565410822436948509858933443051396144021933724868939506384814220927235378614386327194331840808617459974536122120946027642107489786111954907117187464824813176550773847714483914170288105739305024291458726616476069287036500682409717242557393339045359430156771484003950599011765205949951507697719483522833285478438903939338529866922318438664339113187017570246448802794992082916811937095606347156893398672643259575129828550037612712087191793704379287433278775779209987457824526580385836132215807875984953616493017395822951021072437778951857959805913933764124485301440266823857461618240964373598370149375160604460762772867478269478243131990868475046024026071576070927400730707106677882505482694416963872715127671992181771189440820660505609344821204738256652690778721529189370945913166725654970759550470738594704710319862923928939685246185828042866441978382952018019307692482678049039742450405076781654676158453858842638791353956383421291953634732640687672680425388620810136960025529515135234512468412772049634391183548310852599221624743061371062554627556497026030972913848836957722979498142317428272368458260146714214094145073234200336914814836599274143494940778813409065062422156716001505527367547578539358562444670540074781248284143503969073193036806888193312708924296226279899838304856133380468585196428265796682872253340848332251250323132918727470442399732934476480214119002148682635288423816059310646048883016985503829305295211666048912148090351855704215651282502415983232468568727341378171084410013218295640747007062143304345029081008582938577590814859920222444144578261540709559887032331999666832817043323529156154799273105762739979493388960613186223333194610742333668283308422504350782871012150051480240036465947554587994626696355484647570387874847728982177529160724285284838881720834666882143616390436327635755648375080940163188451611388434538235305968458612280024318647284610580441317255704221853555090340590392235131267015481024493607717646090425711279742623872787793442154532368165414630822866385138575046986793265240847016101388900574428553518273544391177054300607926494208936060236877248811780044703428367683953334064151573934506202836392191748990280304371001905097272526603270594610549567300758072669528675372874012581362414613263745658437348129914186093798419775938048008782351786111013603349588520713503829920555484759669560213941817062304695169085842558156622508494316404147711128935974034246805889904171324260341915351089326450891406097644307868995856418831679930579327571850647782751118634964921625928892613456913343879420421947127455314943908803495448768293062254724558327905637974947638483868455094965943530069569486891921505988567241619890213526096299609444122304388912012550638925808025727753976875327578693916171580991883469852408949186376003968024978634016262838122450258877912018182631356499346161442958500709293761564865799627451056423407522872505382371948851006805720242944985260865270067628283182914820648043765906662108227800605666860518358342599360795649193946404246932109825634152281244228736265682319358106377808102609422268718420196329660358090367717960999636589918243848569841584496390302841293687368113554074000737303413742475295157696733007319742043269039268824719372159736958134470922099192497966667366968149323241360867821546867384944176804403243882880143656044856728497707339763374776047109704348640923389588881176515589011146489042247359955243386149504662806818040272786888677753457822765660368047813541510139208148096562551857626773662300652608343599618145077771335526581369998686616825432130199437816467471049351879853888700353724509029076381695674414330947300401628883577597849551733490709570600511901823803096609065695782057540529601065425056877725898988542225277716715615751489346366856767579780869891645511903159450973943560432724934100798437257632233896154151655241324470579876096015490147023450291202708867267929831765184986229651683269485943375871344354073924066247822598001557741291410945470214704048047115025380131999533940966825204819493550493645747107248229659000496328790164195714697154071744537157778712038860659059261109836530632751752245925945840125716234908034456425642776954273610078771834698031695874843623994096986138184826397839207862162849059828890676290925713102469987165885783944060615029951589976890975309404065166934028646785169369013628730670237126526177606145295527908691762205664596676100385400306499263835290339166833966011144968312489017625017776244758551850752109026098014516242239484120635145976187226257973662139049884866860814259558787720391310447041885576682183840651718881685592007437625135079659903790096138336589062996790672421104709207284214782717090957644701437315330751099330463515209239695027663798251044380414770801375154832263213258289034079559354045944320566462115924629949697198543918018555737493672710151905739903164172377365585591729989759411266977961649659919318608788750775360621583221843312078308672674410321463362783025290876423924707575221556585738734256036250947454551322022531802170997190777466149525125612428878279167140333615498781402617545770123430059668061207686147197653958112914690700962202328694413990761475185685298968720015875072290757391513007152694683972844812839581540851456945376687300570858983315488553745171811531648655532058682487101378794280642017618626617709231415499751971712045614668055634437918098312027749846177369318650791783371562707427105073703148669848409918404793626814916392562188053055733640136514648356033787892498080009617151328541438207207122885714078250589868700724106938717896768541495407338896671724880964573369287829954873986815109628426504187346457352653092262265606031004769557666563385933918306870096720804503772948194308226595446784562913063925518526976000836004063372638236581500410071017465267724083677815277513826907520838757826685521991432050388937072959047523510750587737845451513043920826966284059306524842764747960208577584306618628035584517180530336921006532237791641871878814517317870967893425470894592479105203102577604393328676936673760753977016019769674915867160376614573335494641157113237112716270282380170541923302700935780136025246911043656724832012531113710766830301349849809038029366494890702201444616772313237533585260464535705657866509345232402769802580837318434064913948862239575365266749762518748247258664002362049018454683467707922675859394973904018587165233559618871212188674230186704493107121211959207444346492039452807318392405571487430218325512651999128918711663604241772358506080028969004412388882423926241424805721162787141981179939556974548663735013522723963364195552476573495239967237777767580015869907002802157278429710974469492241726464835627005343154636314406762663807885015696233819026370897960584228655897008940454986398536794162442962593699313173075313046126515140883228054846085264865391332052997806300334637187297720146489511571609035458125679745653020269858192186282673465981916154919361614375367018215396763126763624063544456473153520227194768250154896869928503331535876022090297133428259147285334013672405615961476889977117320240056858062307854271053876723153606744428068749781677201165140127614821374594523306527476159041620241124087254770813471983701417949193146103952914119025106536319095778857524149292967128261691319583602986453112274348424306500058804864106685448959658533496482768029473776965932936812459239420978013618202045965772658847284824345518437398626322407338601960364806259746851498400043560803858926805356021615086196664310995040638953333115023935271475932523551856078110279493977172549420299109035505865147362637747642429064621970398357146677920625279787815309970991189512052967755275565478480472032015178153973361967534888715254712066276621756517433910685422887783824013051553090061231684632382885742860150063967306704818099603471816821914913302521620613493317373996416872253252786753267645170248668900474137181669639985153805643424201623516013249862257147014727868781818676681063107035716051812934655741280732362838636552844403247513085618287531511102360867168779029645322422964253011284405592509154785850870071591874003565399188769440088284099995957933267973986724027579706937564235844047779577969578050693379547309914098346919815975331508683871159342683250198491450279957962028337901606402242384656175566098478805130396432643817840255195262990006054885792617266839896805789591001894642180668777946765212543146036936245485669948836075408597341212637582861270008090859948888156262033607261668693565634461324981619519728599270504541006401165280020283587235262015051936932548484259598937777805702864378712268146010722289104003937132270798087193516891654219793880562634833046695116129309592859707484039950578894699182791936754805331266975433884920729051191918281706396872419617967088891839800150635748771528184299305452397742529141785335601170940698680711468918295202483300144411785287320363894505474777515671274192987379617659166712244279489692155848206492070553579462212506997593018781852446174628994356574674773800057317899608709985423908359861143685485225579912412647216328534595763090486102709417438835636707445899952108914366501643040995604313088426402320316852096027985225465774839531391178088432043389472578652779316943175227823936727965149973232974188814263810933384214316551759237754213218011127783644640523361349818815481136204285712802426704045976735142410783182117528225301576000714431147992860308076274709799748554582664213024161999308909239175589652309703349358095186950031884864516991822772014729364428234384651870260004942737119962294313136050146156722671368919332414783070940405312705870081479800198081276635641042765944827632623117197210043288475885890907631989408965107846159257829795422683503518010635768700562059126601867439621836460909461589607898575973697959171874829347885156593774324018854609172545226433114320990575914965524955829733295944278726788257880325777280519343806622096635898081305427078654914719765209718435697919757024137094108930625618907077479021143414297886342960578742984801517062861014931050079902608442627253018925406797151510690727583658301490743044520339106402035065139326843751851956501872690380098507159585104625060050917532545796367919597974873617121292147349093245195564076184330830654829390807559254553282119421249547214069600369567843938213379800916835357469799629196456670835398270564287380109635954787117112240494083266309070461042714687503912279809482633265063090596753436107759993852428402199829805118557906293862046860409800931708503073411410332339413637337698907872759028625321964339749649526124136032044590304930588847023214934151337563889585120645192320956687641016838652475404535401477933722087541310332178489667511070494666264801179148505776844003314383669234055008351514021744573534116919786210651541248845263329998525565056518849449261050324060583920992972080923929971003984425407611728117417075550552247460016127572437980061474241031305357379456665505601401098188977179038398878156668408662402232149955104795159447214521285708352256337266906935222968177339417030438424404364303363709334508829686836401201084348122861354481724667825078838654524488785516121274070263544361789294309323897014220310596817544265060693384864250313555711573740075549865928295924098669606199273176052497725061077437601900435089909570387131229880817217878904118720635963794055793672861964667324908928878286962163999472212442274909422805933622607033259081358375365201847545220870910142839892208564699144811286459888628226152557588864936330964178075229736603668555558311430301475946395351426984905762639992564460619739172203575826121090961167862288256819725822939356895929510570645754904287949306006365200130321968077142791888009639412817089035556711906322787593694583255112562685767259069976556670614988795448295443044825669712878836488168942145574649913559197782770413183428024708247042490372469332507281496154270333020271845183872734172988605471718252246114336309579766983805934502417675476598080287407316712285250544336275187491224150043229304704959731754791612441077418672964057835511480223993505600120979719846822806866227223815925758510917291651190180028727415211648314320772580943470440218372500964471067885475410103734282405564707293311466850585580990720955662139012314691183200492350812149921277820091576738381332021777147351997954142902693578859312294518381768520095975898781421725566615686751073746850686146621787779411037046219009943777551410636499215065970372452046241956214796980801143552920584985757689978612226997163633530075931327997661396410914307718214785312386763117376283677712243424076115339467398529651155210821470598841014635748237165507445476630944183694159366634623925665047993536968952910234464995690120072820706398740269191122148021681319048625628726738631670766247639831492170452644940332933925894891406057357818841223722442611042754740193795677694333788586092750992928360870989295037622166553052296760282643337660845001703562533588615214974387260537726744377005404609810801350841121402852421487725106136072537471472125106584047925606578752189784112489713120670185347475378439919213353556258763797660950868972185096710485203371467272586146699653475365157087066512411621443271909449063088283619008407292717886461311911199172650690800752729051751822521786910219738582539095590243818093259531006607481673361217842429955348766209399918328002474149884924984004978096649204225387262598038090405687576002742711582909116401451125636704387243239471343524937348546882408935039719304730219729890453543857220828767240490885580825093688467118607644187565607952141852128652561772386701629507522843363256177643104626374155080405461441597302643936004777886009855122878907182085639769735066165589025912702746012112244037863699379045076739108037991219935468646816166856320943112303517454818990747339525429851632792203968284248816721027767472552184491714358800091052474622571524452932275096410999993998614786945480269438780583981455078621432175188369261238521728095820622067746931102361762984800894943774451107970029200322228606451928928119557319986315150002977489092008041470921367665134621084189998918274288795688029179420831067120319000458234965518983829154395730537648683585801843641316393350240532962359957798037378588347324522016971523042595864895450108838592400532156129715880416524460875469056555918789971269465315803741482550473557783380204937087225483819071158228035730345656221553555407909934519607934044079767752384270567025012676130499642539916278806590321374503583712026118632685694189049117648433410847505378610521068371820687749463592285706312352417524545413422602951491892139064144045518491371567973743628396746779222842843487356272760951231628111813167367869231894439141256123623826152300984335152413754599016165774528912391692721691048266372231212178996784137626534894749971270209319161228113865236491310408954089450625541965460914268999593581740685797890793420081048693988998240061770571410735167629333660658582546991404352129397061316010588614181514025799047734330983691982810085979911677636539176796371363242618770376741920899447825177680126152205607027521377214529796391318413235795778371710737217665591956527418349110141001408853586010670623038648825340585664598478982149808740547601285249516203810462412115591563682719309855275655958809899267698425472543825777828006849813468867878983907213484756903590980874812350965173520483937448297949822975449293893829151088915892235524526071542975137545018902928889066930548826679414900869990120912567358981396445531803482327655282064310896903239905130631053932334926789954625761354029066661827843203154822447250033292868847489536286976544332759071668972128696689310860126503756731617680637236411544585185101648996701343186147661778501759346457643320501756301171281997178771240112425199030834778571522900694830966813291493752966765917238114213575372366476721656811473355393705401542895149621443717782043591995579603602667949884380509598035532803104452470106447277885831631856647036290823969909975186495065533908492312744852289097714978702643064791613987815470631042159979403127301373112462934815276462252564761610710829730449844332327436565055387391922937048750305931507453502758849075422046749264132902529899772802916779848289649755471236968053111601721774272184546338117676187986620192481695718929514873790220919616609626177070993928911841868887989442519827474282875373496516683286992211737738776660976393754306855083086214430114420997227266940814641994349946248717950054285086837970370453271789120254802694074664590063976206953474753529570828816133799746442378570072605932605603186079667348065938604665203871029916444390115351404657431501828222581039124676185404941450486835608354765460017932038786028384229453057009602731980454627071514031788906899325195127289722749572171730740763962994171142935451473170029593736100763123769444785665484367218557295543934097309791370122168936058563504620967566720995145537381184697098978912402066130930260734170068526650687788620656181339340493254853611526401173909606257587013411248515600391731703614003384285655120281831263953357635799057076002821052198103420973621256329944589518941536055224304003094582277246236949970549836060875519787801396187924742526469256440456138231601401159807760598292427735413301850077577015548957783236517119185002536742206073655790945378001431467892234864242536976183320333863938974908336298850663743303475499055090454088391011693351206466843542957813617171865307308496198090718070942929225031020037803927717155061926908010967843949930419398567673445740223733635734357747051461700682852387242543746062051901020714551743458293434204156637782230884164213967330130938471659546993160505665260987916922799392398746334090261793361113371080593729936401113595034769827071317428958882247653228401258401428215216082313150076831414675894895511531243448371740380865139871671461621940593878803161104982977825743819820219188416685454896745636089744245635786946282293771381371353258975961723405744667916667071683607039056906827689461877031315818012381765985071645731006003573198866834671514090170828805979994682523873233593453605210672299170930156200944860727218301536338246817047850213593048182664257667674703451129688385700752872453155638547000247582305190664248317174086959107923217239715805648833859315109452710517418500497338573029135273089955915870096736613854836186358765560472687434789286549946556772611158369280403839916640043470398409373164359692638810005931944445236067468927861189466989800494889774255881060913035398782841035736508141048515206547937082330460234604110711814109490746671356234646460718048285700388660608777810978603562418497380674985708722316439330296003969842896715601066872605367896378675682530675182665993330975193157942540226553256255587006555525554374181386147306791676251193167358638815023819624662036376026190329967671099121486560026988762660171070029377814873473489354820791836944271031119776256370822480187152316239923611964457845000049617366209181621821230369383867482115568837067943403164329970549226265814237560993799973547504859835552990094670624107744782173687588215003914738460302684909169246179956486930173248888567460650082452587829470613566670583553265418487551207721139551584407400289484200625543554718772153195907426996086169111967502631923025801799439157943991956539701069019577085596954906018739991294022522344940224793802712769333967403232723730089753084771267905525214084535501656248731016521194021944933161823242933792574608195850315721417056083290114887401635080836546799084422293103439437336490199385370725740955398539900477308931939146039479361178691723082173144157063403802357480066876765889630135834722150078872717164634980834903509645012507210937248849466692141353504158058850398928674801945910958073897518967121087916533538082396158307202125894234175096240375756618777096722241361863840193787252738396535065951657427880684196520057729930401930473129170436418003452086609904066105556319993893256302918052281913777387149997375962075347817847038837134496831049593535860845104351974094903887466374070655286400970170168472778329701295815443473774594088080540238152589434772172143841374086914536805005200655939921044311887841566295826820815276308554113989692797723392848244922972503038223227286905355756936971079867175051630933637987395545486677128917342435176588442820771396554576251176361982617782059915084245117078191907781152898990273524884414955106258677767284759637443363682815086510644420209206482423279468072915929491239630791112225737120564593865639907311712190746625353005229321668243557318590803522301932734845306495403180280434589615285843377789125368681825868159217438766689733548942023024629104145666820337672380344403365334080084536112322213147853654001401980401020937579938663502301034176952193225790514900873466087870455672290501792296405522149347369335384167817975017108640027331393854733128910828491645025716862928541278852379854114396449878766036473767470366286587971248293427327054093130072769446033731881901360475527183328388019571511605304946677605821425996978558127347823258166349047938870999818794926363684133898726958319088993979735105877340501773403566999496980532488724134253528945202626131642968890151672290889184349699151593885190787200637073622750020766086104769943030262389981698643216241300400481296416417524729918903661692358564572496528180180265175332941981719693575796244800881482425356976174293838365837307705084535936110278940179963568334500731628552214907867859764790673323708767862191753373376736893815469783689175180695931462722528677931996150364420547609464520663019481698057072690161446955749706704071379771697640707663443868719330777056956254242081334068810363803764547203780622036708388256887555657256352118824393489825718235989026097392166856615828449526045724492997376847303836632759221719170202943293715611678632841550352203388729241201406684998969493613193744932524784135364091275007891328329210543246573509813089924430411075235514479130288597498163381639514970475355920686148897097799324766777352540734106792812010594758950987598041787792552680493255125601763319349206327658422602853769277304974742350424625486983708875450458581478563921865498423909802742039025369821863152607761026091782297002838935510992823546412378734415910454149659635746118393323385213579472669440646929764799921574106104345344364799664293169798303725490774066292965491045672683096486473393460892448558842284677978544798905960865066139585112550647024540190990090848868912190632056396848307694981226915929296729494872017267482794982736728974993306219470128126646905414888454146180524318117041715442499999502753642547505039293856316526944823719272122345113269643394169131396326410727319088305323136568531052945056481628079915957185727231024363873427779206313135962578018340989913483795343109148236152099963406956923504013384708801452104431920927314993029537232898927587322560846585764569034713416576692781538311513059300994587092862881505888776945961127487656275755266951921947184543651150496554446260947718514371087171257188313337021136671538076649815236223768892841375982999981525386526283283226139128849567572021743534159109762268412575257794319689260656454599926900991013100926512038447205667880234329654832150045709078781403408717212979357821852462799581805898003027001979110215157103125487961796744840424677988747805382994603954628782160848927798630366005960179861320495914715492959682751439870756414778471485341253748038578769206029626169625639925360486585860571337963223441770914129351308802546979220502462748210982239680740260251378224100552639789549416436786651554999189295197188773605558787168949853718990478594913751569577311848966456454391571215844757203466983733578912080466986481077040423487984230046175670839261152774608636594638468401132643899098756736899148704219374556734574568415167072258988952554852145194867853945058696245874158615775505231085711006788169683427498652762565415277677965023363414559677469850261662780070664487050121084881500202835513659260176053026181455944816060285367516998022945520751508046778394769427892206374882639216550131736752188785256984952936983144900015882824248110836382856610205227585455337732935860260300812447704508791428795143152432269951837879927476651516772101520476974314830058403274785291605536246728650460454870920745995313507835790609037782782977035804376501601651859902459512332057928132277178863486674838735770469429562848896756865461413579344866457365843790447237928076530724180957911807672096347095780647747866625821850600815028848650350300094596801236643410590016520838009967334164378164770855861429163754816847714754601537499635062370075394015643136322414104659616071167803001240240868817992580987460318977371181233015276753962358884951300555478402186911946790640102069344280238742591722130955475798225029894740150447758464305297891667502184384199618253507716396648463684216474721761703589391541484739004626482735951313069167018672615757590306905354002021585282189009609212194854630627120303732038605752837278234357418050285437015656551957959130172241378014495922256939287095055282729596387846321509626438124714545012593438421584198527064979046083321344090545640270629539254003367111323521196196515689299491230714235115774513306351479774330708969334961678436250002748353127036135146458870872841792945587970815479618169486431340260130543709198764097652958170274820152297230169132433640789816987595666168293189425492918476491011623642521632105243892983529405495139161414785750812620583192123315759091412078493342514247050184194921487013192102579254739090859778699069945279500093512211316595549781409951606670942926311001931879733284074034663771653981348719813070294261125387139146758508182280256996979086470710910754584659323106255720830013181643921310717058854537619764457673324234241153063426373943715934570405067120569319517589234886367498321879066676794987270641147424751801595418763695904670056269954611043497401606297873497886680169607113021429214054143770627732623794218331858113369179897892646054017039353968088891644225281089960594619947024639166024243462831513678452655652405402035937457797560372344743818749463271188128176117094360312523673952215284342528576254989915623659957026810983944932091658728497450730446781076185237858721132932154680502616157494940863330574498611632154814550236894706468477276460496680811259927091135385965440368354037970471161400236557054617118692249803970240933834133061746856868899463981670036974100540704489300179461301923113366593982074443737616577519313490944717484770817018284065954273911448814944100973779631758363506343798590399528693922966527759789234445395441892819743678628809922478427826832854872785918020623949268099428901458035363264446233919436618746891045252544355701417260598701089309706441385878797092873110313429182409005354532905929444765754796567645699855895574987993968482055552250393329803923041838303983028740305050084657467098415464088282552746785961928203061834011242650647622521385691023241627029161325163042257852094689457836899227136732496695585672457328126142241118805278919759356383320753665409187004285972210910958481904572659323507518203116695395064875961031617295262336843897845336760777439582190604009044495577717946180510555922260896199484554344477514647841778142768384385631834710336258982629022594277273113246227042390122686082910684036957302826720716261722490960364719752922839872356712097314161125413731414687431900927448862611974448263153046791118537112262021949019027385747114911688653826648379009459153784343235031087257906859234518128837709991479521375890073310393018611406082928569224355581015843379824588952646971376198876047211535824631627783634935075788843074612328839713546221845368431884611583505787904335479614871444728288339324405260995788713234792946473129278664533457838963015594644199496354090810790906049264355325384792966491086345434008240188494253997327021875491029196121093668830941795110338413321585404469566514486012160144938691552414656789426526388984780449570653350045277529262124210769212221202844507743774434009092101909249418583301315049421630702038799492950720440269532397528642653108038934966677605780847403922747134174264392160613285142427334112884656736510046577308283434054559619962310715936670015914156790450840032892183205994626797003292978920320113584307927706994962132845172160465328140751275623866920392554906051647167508663790670284386170485179603034979633734327573467602300402465788836872431846477174408663644319388337851425513576843256799012137930483419687863336576307144845355888659542036182350337127089953974161047728653419133095875320905973399637960031550741018641010970254023062490534932395721682416409675670680693355018418155463629082067981253668460906043413187088239503143210874469280855490733295044641415781382292350398435021781090021158443397461256087922849696489176043783265314437562616932112051763974907420915629088184031438813341309047653578180065550154178990486003831978727502152292960419623797146417839307120338248980335514965277839324883414513047615439477096976639096614706007065407651099350438710717898561927021884046482424688903501643960068560629927748996749491192902568149478873338549185657553328114694133699371393681879217378233443646436751467414855056934576986775063562359109827718961327362480002547479065073064012243592107571566602955986526015870259181425997796128680441152411990878708362605618535863451666830013554383249242066690741806123123057246131187725756997864067634788912174129242203565436359986290277768505502539334241825494623820923497037399557148910335844447299906728747990834468587792520480248314556000059677589666807288110335716598710312395036577833661743224900134380510658252334139388989749176108876270760638769087062214783245515911780891533683161715927854802620698032858642109979729080654114684000246843729588638011227278450951117388786149132308539084904054864933392012148273803432252246689071062891613862617448177663858682306143986761951373517295830399168330675853537506963594737145297920400449539588630857623106429362372591310828524710164258493284988996945836289943136190238206635621931152270036815018310083780426690723422544819741522327993861602675380440033141092364776021456235988794505286688197206766224072604084929601310978033084143462513375162278771987873185368785225072412259283570602764272261648776170609046257749452698175760837552149164695132897313087368628121070122720547055084152294564480100173101912924959657137694953720660997068446434846079962312895266650468419545019731482330739642679063626077659342225800182434392705920391158136920673629881922749575641636764095691486408502730764923225169029852047616795572600567545978741391850352365297439654181535036711332644930279685234032407201831568950088359289515970754781300988579837633676726245052024116641259700430000153546488606278765039064931665001971448499081486031088660913976589393690447107360863330002683848086814796137715860438286350875863367341110190724559089131011925704691377722124403660023782541383042330026373612252531422284004269656096650291772904066892955211610324562245478953507955837484212671090031527141561645481731976058708384935196623186547992596969605198675296700003432756098678181959634351478396540124711107271835033482264964674233886926473071138157028824974565981383621622087725267521204963101199574460229870610156488566959765649535684860824887602068612369597869377225326556740881370481559742965886785894863045311079251989082182897522578547754474167815671892108381886070176931815305071738288452422819038427743675161755087005689330470486298964470554443962760464622313409364608278555276401796683990644039076598714719171046454448200376033602153105685498385673780204845822757866252247876498261740396975555820015442496457234256477816629648427811482146262420492291714335802436855459585384082548584307063044997314763330503185422713684189426615593615335926878659750720641621385503919337921665753232212292201381253582304762896901144421127162303350546094379961960289078867671309985412226263736735495415951194318193939077861347574776136636021241958416262096686114480542014415443726730294496860305089329268747633008365504729612387532065544111318012445274029008386563168505580231680685995515848569501249893641507401106195270468996594485558334729244163291119611826772499867561367606878774150996446529819624057625511140906494853901373373216515659576020114579909786531024618770814094483693383961028612533332475828551616126237686725785256364495571824266135489722335224120430833288479157057840234230133246750100644746742154119027792700513119105458937579729474849929657730496103201143240564595747552217035552735416237367735496105260737726340837037258597108575103193597763162832022426857014717957785228732909722161163296205980430003549966044491710953018152163482735762308358205079546298963870576916782382711151255275336798712388675637483364393651148072745409090640690010112102592768029661962630514232714821281609579990501714810755925195536615166557302745768048075253071641438898591104824011682628849378096198658785926115308951678215785526905845834283048693473335623139995278924378576221745355920691281514563355119442136716258699999867363564816254656721969671413910766173608847332534201421926155444178808689588076381218221597968046771685765481560728100901990160723758881125151393629626045696783950513962874912106297062873680212744390673764090400629186346459640992177573707181179764173315829856352707652610461489611470685981169933161747935848429119570711661649719485391553675078905025158259340840944802847303241078557304043656719900603939547194821447159722651851981639292279162217130848521013551960114369321697771826335348573960248917928937890749252649032810547178232573622781775151490580097018160557469033917535153651554718484452024029708954244631924235710916966113965859460354993110842792486412169498134293386576714547662059341414673660758839888913495507766850494106230672425622506624959870862539881969086717374203462934080515446912635661768313957579075639758468432259041694172369219025737499543704880542731374614728159978725318333433550709408805570333386290064656590360842552184814598700853828197318722279515692887383850661082469282602661288085717987640212073533024060340189562390872065576883108474388542006235650392654772545041013612986408671518148932841011781096403788810595658819544468215969488371190574381420245320660435778019228398315347207244858288335684989076297000951184813875298404150284537954712678126114849009933343751004456801080730260765837651471904167222908978596498939298216600150803708896243569689439845632717931796311000747537944394219701628618811677607316056594159349493231290969252330934982425799870600408092122372550718202179525800290263438510689297355352779615118004945718852757430191837602061661780364699525511318504043137775753899309957621355114905602222213293656005614768485841968895593251412759274781478637108007376023981720550677384366182083724444300910043617057416134291014423246241412796038956908971226846159068873817083741756332983659203763393513732201788436243131598954750128892696332716819688935233738420874626796706174651602826454070234919546565049048321808425719010074574796493484434086668976269711453147003188777659554963572956941748516240190220831775926568056570104965654673006903039965233406499333424635899148615660009959199708149647003940106813255013008191674871483729353772285537130754710661056398961907382306126123990083418357506813261825057599396203980091988203282605374393060373920714472832522842044611755827486520041737028637194269194112191725372716930040764457846710224098913809874899001620920133886805755729509124310052197416569333232110473578457513482061696308884473568193102498770698381618902104371694738590549308822634322762190528577880951169269995191137869057555056622807929400992661957769784189437185097474327340255726968240020169647287542609996493653749359839182825235457161798072992122707152901607151973663606364539638398920880525905259014867612570528216411845193436444985640457909718097285089480570085890777128563104796108761914982795007717554591100144181579320659050504670502940051256938222490319482700470993016042090195977642544782923068811637252197024751207443505745441161937888279438058084952655110521142218979073629928048312250688969754217828769338145544289643814171416513433763438686539747414208430667375321913431669124053414174722782738973453240890830913098063291645285964689533339159469784100166900112442301292460300440820486045197748937832484717937402450031303506631819843398322336654964514603207066377037279122530785683021945864375601977419043674780685683735180911364113254499958167620221486772921649009483126845758996231426130873686574535340875412106706074322158206195901145071810358694216532584832168571519655626511834457002677648450459857000074376619453179698233761685348029797249358694011937512940452835311213804451034081008990117816340437804597496214192597277053230632690661690774681396689197399805836144784680240218293826071114130408574107200993942954225036115883473534951719294630867627916326413275168498099871147020824029878225079825332800769681246660366352233018568448890533597433991985941633236816937763185341611650865337974023430879887217161554460414104229826032329614681900665000179005588386135332774431479848013150183168855297346907080260886367009553422402744976367335968604990983107580770538950731601247279598595161423825844881702709699900073873832882545273976319051757847251233178912944479123383144600323087066689658587149028323956175581099244773519723739433289439930110417065777751066602994862635710872296696940781571279779993020199710191044308107349329101459043092335247009044345472969023622234434914001569322906241358373822142915444948152756659024729161731589730024985994771881077968995185493070774378500454834100066954811833892864827385093257367453289346958322824268409866012784734467277199004140982338796309113208911616174147988441557735588799343424316943465507267579783405618609248909398657008673722634052950756615841687522775887651197325301491776766845043736959545077477755346896543894796719864392869650182909619221086105309694472722350976154186329379954641337520456874455758464764683898867821834403059940912949647882596685352118413285122202902023626489780364288003914056410974693373900003070832378453425787000620634752910212038582678084381144188791832086635106259302636336387610468355321289983328360814250747254086902728557308150743563125027559545990941819225878294655275585173253571056645807043635530103809777548234857869908790357162800570031006763374806448852384587915738863746157199027391374386252255308744367549748107792517168487805263649612093781209502790708338071994425012574515352169407706363194695597401830756961305479530677170484936096785759361905606300750867951211715666373773789552969878977896703631143825241845059449212751388642690531985244898756619575126614302287136620490457399811754971019191412133595621701717483775256793184815322248875989381827551672762512569370830024827749792048924137635133220533410435755412242714583749336275120343114383228553648802057750175362962974215787461004837092812250368155158079835503748394600934421140487028575733701072910131673275186118350787652338774229199262356683736729354673754000692935849623936285763107196505032301794754664641715963724940719513683548337006949237228684388382939738332742038485085734341286523090339749355095638729407645384720682560680598028575426532144924088565571097347169321171060889509488644468125443146684275454540523738048586327306458779505327695885361156833104718317058780447112151969163906331886383041574954233765926163041485883600021631023114020264492192565225161894526492682657819769331585974700279809167624692253898898619123878642301052558041773644164540994161352696506205990781039930458774764993354622374817597094559988614388440303622321235568725425754866374980560380110960693856084013433044674031178203442640144683488074287818945193544461381755291839762289655767427527044377633170157853969698985658116590082711211748198412413997337073750822159487341975105600497824220472696082185021732822733182746198551189562860095849616651249254875742043695962772390055689875883738945786665024131986180841573135632561356485272019424137539019368407383399913628475208168863347734715363854616305157875090841664398627975528343327261331281323190330232000606018291651838997735394869789178284995875259274862608299300657308047383878718580692613766926799103850359311497890728214522608924126882799253274076158387993755021920122170846373605269912681157266122625365386669682066703092356936343638327307133525479636215705743514007894195639923369631839601675306707578655933506086665849900414747460208775407734679204161245885072875549538944198793805174557401095969188312027575273329641683105229675708387419319845288205223886044526962359575436958790120135677447930031031894044029527490443549409259622021289150247784180764977249111535549423298809502891364383826090065837061488744820879481425743486690248258792324859897008023929829886723036596587684295387862466651043911548346593595913910739986026272274522538012291901532555464285964383342729894094727492827214878174037964210784914485679043462860008719646181824371964296288407500485594404009851408854359447986081344349254737129749301987868354276468033459891962783442938893009908968626169982205738798111324088399821556470638702396577354652637053700504884122744427523323377860197871299482733872018953514763963479723786149929866112015515609132831552946907763115552622328351480472276044599188937591820769409826255336617944388878788829827649423369381411147093976607528713010826408732357688804608227978866209886998023151550988051252583323931286319667746384958574285105038802155721489789754693292771020582017685979855846601754102192242567252225256783553247480828117122872286839969958071100125351104915650473394498043060231132599671684494075936945173878878938528586538928956728315526781832259461706311259807452213055845708701008637551518244088062388138634207588718392374670462033326364343079285893419754042864924505627164419483984480777759210846320829299323886346880240706769473363986884459269339067846170886230084124338117087701357708783772746563022865756202683178986116002793402886770520975432996686609980598857868409952621040552559318552093388262841589053504553760300972073693332757654110930262517243266375925521199733960601151739981156704341679183108688050892484763320451083213324263652746797499447871268007490902674993850099476016766146738129189612718433329190983815526880912830857719797287005049301009943080178194311568848771352578709626150067542038806967338302360349642333780236878812822711967673543075414249404858087644632225103621060073553616996365538385631765630190656332271204293923186323343634664372685665050097908320742350457607371173904863802484726204118396169386618004479076749280274445587841407311276399809744457815788263172389425555193864111771565304992223906378504260116648295642763607044388167724060494799305664882701033569361600971074696618714759866645426765789682799334017367030591688878519940719909891519084710211659195058471694893531710553899614479056010024420887167812791924818720122889750080287634616108457755646249916661733485450592512050765143758663409283911662652893733861517359719182130015985618050752250619283221167681653458475286611907886949083826495839190672833073834967597523508946430005505111418740050824162672054949060023130122565156750385722979074679634260420852581914687940606146888033051187781167313111215267687838376108370301062536109359745261095395573900109830256799870981771761606434761594749560748819627667643643277342819907323150182431556256386822821482964549794707092354634289344219690821707585242732200529225498397904518988914502494768421134934992023068175388606414760723169907864568802526116636252896756861038489538701081315485592138698141805534947242078511543921993899907002698667213437049215667954594932126845219088196716819124259606731447318654294365887507947312522106091009535173423280289716858117499700703332067704982305425614180680406006726706543486689444096943022485843855281545544099819916150009889012926596963538257855493292554679689938255542723319980582693207436092803642981318211069190806045643259590306898397019971223222702453474337807979539641994500716333771743870594565255512210781883795415759232739703566560920311333157251900433379905952211691819483074957616455893177319585677919418518003424787738054360736422573924959539591445546544527809350124713561193606035570616845719455556426833768139656508041048987870092824093827121491165150979889158907401683875728440730707924752436575271524873293258265581145370917170460434822387607036800148690605117287549345559429407352773102605947370575703586976398378587125949388639239207115216153680400542548085212847982827676272596317449348188508629572539431185247959958103556110313227618479911634630573661427987444721022065965498883362782739694591094122300428772369860958148212566864211137977245272799199425989652740067904112736102146171692347765736521430663485283877482920446826556384970838234045712068856113381639020516597336880280671417170162763475901566645563737337158818656325238651655203380218271936497788494110260806670052860685845793149132741989243117064770341114346226967243404033204226404317687970737145988865180063556718861091748941278707158972416820725894527287599532559520037277683876559321293307320721791149994042686085582816094524930249765777060519062961602694321758629788015416080469098730906619106497485274815340741901923714319970461884366030516970635391454440158181505936146782350372656217710088564898221921387825627413321455642460444883374577130267929458445461351965989027478495475912395077508152477358280237980885973636726825757056439006895535150741347273899116876829538032499848556162632941531889506928075584162581112517045470354491410137570687450038511708617644224539110525225992111389986638079298140508899742194868942117369751505545769039265474875751332286810414450974651061550249552894440626749173820127976634800570708523708737178904496967589053193776884353965188211920375211753748812066506865541907133081876931619301068412645958723523948218078299981587538521039274473955781324710545073469501787527370151822632885815191880808604483779181183438464636621722105536930532769642526269148886339073843205407005899980446034756701726848728550022751625554265694939501264871601099230451275091947514894954078286107648446504751868286747014714385722182253227478364350254086102470875923827008740984776273862400706901171273498447789208618671143017754548457977645653586601660819049306052299094972604241442568818462816228820603918561333341582330235552433107470586582156132469680839619827459765590822967249338049101232077437596332309419042654685537951075746790135198675928234125987463087991411268239944540394743551940065256396482119284791938213189621331371425561597467509158538294870586573879551186221468929848122482116622306559504978699827165077467428565094535306863310517299486812320918967465546130940669657088971106059343153202913504178693023544646423433291122353549568663650948022904754974008693637397689600105343959397689274655900410210008756014663012355925966650122501199287365006520534313419296296388215618594888478782448464356408925758968901317942282982504936096047942756115439504949867661750848676980620565358614776181691513490193568891443112732905413474612869977176018007752625760436572088646174311096388684864674740184913845907040065396836915403407896530419099945119350952961974294193210145136286710831081171177238857284491102624647176168115679147075754865020973662013985855650130706392426105461119583308771733488664912206870957020845502040549876763791896466945797482244074213099504404167187987743472299001951869109557162032296629731960395370807152926054232639515862311157704937895018318996084482906595760839570325320666557093739268553672116444507089557235190380299822693200157711016798954472458457850765303808106790985813527629497995464732161745556277787408970241230028932304494549281021865815839956282756896395246860827650443702248521858229424736865159931511778446551934524505507876480146222609609836976195189084018916145648573477306405954412845354224120161554470613365592384870833039040166541957144380495414158769102128779361306375589093245241228262860110588201145000720297164614778989004026592773053408417079327890343740570491332957160589314985443247394767136981246003564009689406620995799080278019525991208380012989143957281627037149529253203967063147822114142667546138634367291477216661301854598604033512373659784654189725083589066480862279799589067143744209778714156739907457441393524051259916485470783738223707738217633511109160110464276445211851953864339244941047641321564972781372091395213840837080398244312514631745163024686770939705277861373695803130097476485930764574207963671801074129628095898467357821435764314532427454794139294814836717676695007625659690991449481353396105835987229504691270604885650090529827698610219018670780035515684423401938546040753932912183797716404752530038560374800963404363107715668516345267994415856436358334621961190108765690069570400450595616811391294266533459675672250128199771149002249454175701990018455607540958164570291677402842156561549330574956952853190264488821673469971440855906016118767930759218774036585236324974591379635659439901270092180307529478298953271584631430055637486289774014727639219099595548345821243235709357435092462927630517306874448887899415516602322496116424505704251362983296361785430337917381250498008789314630169951157503522344903373099392525814674134902111544193165484801897848476566930019606718220256877723326447046907751004236740007921675513806461586506465019023075970333619712303343778415356192461281307614439256244120214188696524630276052975118897522493735824663691554830234979125359986986142193110500764952362821326548512225496715704452567991563401677193246710493102372114305164300283159233640697128774545812314935061942704138341664534906733188192108904030313192207215863305785207343528520910673579183356305289551910900452451080469124421984871892472913041394893150510637027032019652715141492093130662170432707446682739472701540937954463304982962600570443509439396411684672509025148394181046505315834204048309658551570706535595666076307892013461827333340187235198629873802873575240874304335159739369898602475873561443502803061176114015911232610844183733435207827689900162726257241227834109932831237548547653888740069095874129629036295067208568944259112485762992400998226193296715265631823747109843620133865202951742358415670854155886111494225286129493991083287723501122489272769892851458629246644980977715355307986560569301390011081319380939337369576642883506880352496385655908846744123244309086228842226574894484375506308063651991906944670388135118524288277575108303386024390562028697300905592845248390141364679547999668310323941758555603321062075977254542760852291065524952112817822069980589160919329516665935833975117717981433897491705616860386260253921915923083457149783301200411337305500803622814968826762091324380200724590064350657484132190964643098635451848340876016387450895049187558446335835105593513399919442535638822321427848676794895392132480932542840182061482877379249226266436598386703509498527576132350441710961341567176754769016664256442188842880779722076918124517138935087383349446722984236527060062121824255253378519203785711626941808224787595030236542178555088232624111416737357677514788564548474595386963699864471571007170195421759523252345671084448331566758288056863227414350613027485577190906439058909362686931580972114606838034211163677107361251580049762982073304983391656336194216358892896343879049848256547777896842146124227930661887804561084984489561922733973383374766618362372239128481050982587325822271738788014013213503923155349764372274451760647602907359765260172323164705810409556628920431821095529995753547343451713012789489436766824689829466092418706531623756530729615610638460877304617894804458625877244760775608102925892729830931989713721027225518680614407469413879331861153229433943993891109786153485449355336275265191518205434353313152554807340654804144511225445467046578546954891793864328435349516443716919105946643174674460769752121309871097171939762289210715397298277191776367848218081396126309967501399345333674945758371228068057135756618286620189006175657867035885534590726688138460303793332300995308497651435504912053648244274723054214932530126167735453708905806833247809736604620814797755003591653021699273033380027590414614631886956637527289721557140578287048930449021791688759433173304202812125674930402641821879477496275922186980339210076153590704267386291503235245179116576755018412990479965179140274304629667226200837837157960227683607167284444097308139219930035386930210940070862696430735344058725112191887582547843544816345593786801634129511646545790090720163896173650710769072191827104818157714586741804531350740146176471567051169107584641811012111984721994870790690329776053409828128791272517433071247247310644204535217875020666493859165299003113568551041119638432958248588513728870466854489628287123529026529679579949777135187004579107780753669838837835296270171314258030503580619845073480772470889254622712791240517679321750321276449413362537316677583128769690935840480521542537494052876960014354646489783840155351672515266117838476930418871892038792435269519581957890878078739245246466949520111733653018106563602154013777904451045308024236787971049903817435017683334176974829868299474753848165391012124062737267174538969508599943632450808108022153411427081897040382845984027052138604089746462034907647018322920050712978986806006556489274223131470479282679774000936672943973849476606117281984582705235970547265042160340144352687519514906842367108617420607910877797313412089489974622854677891540858195687593054227587765260075453113723030046948717485207646932714081145997544357690950161038121557783089690638210799732522581322304632344818096646893137864018166718656332562096990149235082860578193924527783597701007606910014337580779692360783106994109332640864852072503198546928440054180664821376416502237449180200232560080934601059285983212231835306883716010175522864046738553903534848677756607523011324679334689260713861522942271204147027095832322656982414022234655684024976711289031769175029387278847478434492247848411893870530338490875588379488015318097814387441382210850348101772761933565907383012005037811688122525259411079869188099784837192946184103212603661706344941711698964379470347443130242940896456524881653569241361605343203273118420993767378693987250342630352570998285214909746632118777789737111844249211714911451445726828107549352924630108088361837252260801150612080324457694693958981913708011498707630242891015954964826664938416826177670061443295809369406880757692254086416402192920128233919085197910667141786684016107617095130667027945058499870369397102476905424650023546325902224962506751659441389128883859011754745951394022911546586949630707011414574190212461912694624389771730168900813977756171179069712120599298022254449289322938652083275863213859843095763324509078354502617477503926195327871256065475913790252361516882001686007718307446259649046678921184636033524896275939794065977196428332326476518975290632198487257791362937929954944340374003983360021046394876796681306965067705582798475797803590899560401363603148275847030238047132854178487705987702492979421568441385438254356726608333421867155186282182937895603183196189421175574512035678203969068467173371990872490682200228603496938926448134466467763240585221357126480685144071254062025159984852661388718560260180205726651090210239190562109787000982727668925518329686737179564247377222494094437202851673440252688042848947994529812289803304477781465586646427729198094273506828325051026513460082429258245067562135700967871668324689915751584068559476686983438195470152798220602405579032425148306989334440043628891745636392489927487060960634874398012129318862987977566413731544426947700180923316970199567423957253072651882799607880175411554182776611488719340307691827223864341715969761556144744234902584395905785182265819664152444446385124985253824356898313292991080622770421481522480041972306565367044471193527449675854258683900183846940968808428509116499327064167095800735177486936349499175486445456218017618249398449287950969625238482962502943559508354034887401571304352872552927490403362253527430175644163299008228650959272967077567033479134349934023968272832543563680268763197314703896542199428683494125655307566787685320884522870459331833447815415457672757421202867775470329632338133194419020953923510295272974170833053479075068051159383646328814117664273688200852306150319288980214682919027492413445566362740752668343828059771491142942987422291453520138102421501566807368699049845668563038801344654130777443042499996622148131946670290916965965131293572495880545269848843140900932442154460322742691168837138860713623979904893710704131057395756913856377507184173592601345102544895465491787994218662517336149064911944410543277577714092616514472263409903468381926558256061783131444890800915659011165825912671069981487231044291075060637446967003103998984092027400761560115658683462611997277858329208781530392127893424330401073135617190249251620029703805986279631130479142694147432862786635820625086964017315348333905901348327927774626066782610404532221605032454799279868984610421366622955760362458130544089918617398042543961515071226241750318425878865937236440085440902967354566480551989854286936051832308353892021327305978335224047487960659000361846259943145516995451459761907900929795648820239768862035128192203443585133036521665064677647458938354475573985964362829140111674835144299773265640585498407361107963459853617836567798497332303923410024402374173282943048572533621984913462779521463497787787492405553622472495633051250829953970761597251664454378588914399270319198949820178733412489693890780661790836285406547381193406089616294888659386275524167679221719563312306359962513663549222003697688189304238402137662002932089099488142971558158772129695456744630217379798258582673207752472420901861781658620284233009441252074278438343312928784194190759912388550251710633741380835776618431576452292703579823317699161668458200213221365948751498822352952271398566413593626987197998723802276878536129798338946541041965365258354082641111579148179705738301893506472813525644076731034934873788704320135116564290057928239055100932706017374743816726935988076366254030436593027857053819576546922957887637799408631753034417436603707097066763525535455798845217353810100330221460793351741197490535007865981385847979031945932007761068196113087063661604542718147168663439911099664859340341990826861169863185054418740667729593335870830569625864651864544364137391450690832430728888331008105609233458303838959587232881018228992774745639354882024205818113832980699914877819323359557812522440764673093807589224949261165381394960381979984810965881584904954974525727278772973754152667639975864344761545549061559731025497289881047487893772981483876971837796106686001807395425361595082895581643621352525552039826097108096248424782971363389942849435756592070675981891598049697957936140356657906919565644825443287106122777473652062327847479481018537480264442703526917228968545133232177365267111364252011576066843269344857633637088574192286910674242786609222071049944893900153466663999318863237834847207947564590858716976060913904293548462441816385252689312138733080726548950204143187275805253096904790527495494780765428338603488999202295065247700449901863283830878785648673637432000508729166110991158893567989734921145855531292127952259342446830971335366570912844419158492307067301136812772323325877457181722469936752318738837151600534200133652552869162965760941029074678307994826464838703704904955424630957220381565976549084794590630622646907723021158062184972141969347648939914858889571246417241414709383128586143759700488384429006714075399266931634231239557273106063434689126630570375155713250031921227453936356520098374478829710507159497923671342149075578966887998089703867303791645004011152914093553513597644620553110212588408855520167154606896201467730158283861113909328815235097866808536982049574346044962478314200891145318254152546214619064723877086115101268286393986200297385408336036695750981365445171827469510617005450494652450607278244183265016710589839715317560363079559783471157917823932635479404029625375797538332123496331898869915826980755573708467143528047059062552103575179768767664314136276978542463111882853935106545686933575340709562443230386492755979360149392976781231696784599668490637491716141680773754287680749317737089348725715440979515762537490335343511687886129782410043382293363821469867040214478812115174223599883246294905343055924731661715901156597267877924004053955647989271708594748351958307194395965817241599565715063488926954436520759531802028020188438865977884896715142230949444516386990316675231832115260459279820125700777443063397225772624071221859176394856333292683767190448599856500795583461930686304239552867838885801363830970048858577931117343226068593651821003280944455276682789481701606828028731251495613612620930582824407810379684495648561067294698869487801399382740625793895886725640812522162048019271799196733359212243153914812848114095123342566340350554250448384687204487442100444083332676905335990198353242179093629006116458895587435608781542284441892707531527377802558242339503723984017531898145845394765575513446389619049433503663428878645874435529803602019052115381183118351217176380020490893872990247845689898133442404759113789408881534216104513406314494847202784386290484302351170078322760360426546973416348859059168491555037094969079258256664692286813389453801648656302071736724515537891901517506075253729107242535471622004695742558239558182724519642340216485077248835195080993183357206969137190149899420320852131215751164322773278990315058598261463175588015479626591073488063205077536537553034318611401078438729715397374271759702840813309586051897297441592317588531195035756562491653718556900419964065433089340348335454065909858794341422953566757900053313654295725422685522601662672759060433936020878644340717416834905546353503052503985930077182779556898379200024398544601771714174147297958927336647774550901499591156448202810578447577435694815235606946008579484381290170179457221948804689870023869525599187754178656418670747188584453823675635190217675010184507151592016440748617037981596525515362846754112027107268943841398401684054306956481828615428197953530686956284494741381790651832307270592295772464136645926901910299354285129630575344644853513053552875221251178082997359205757113512421018495139095724465599959741403713195060942952009379489661256371937836431774967728502503201515239818875559336508174674070819182210732260095533237554932855370316544439816526450740862291378451882588515209443866605486349660985247490177786519118433974996954866424915890674292665098068951179449407497561135161170361114438610577569824973899097786702020268033245356787436081324153422488432438548256287033965776952420467619932721348399090542288736865514316918757315258399333530049244752229200199713744385469471412610967711964040594879070176778383764795133427302150740830888019252019714258002023263031290650576749407877272327762753178662442494324388328777530372774957675959603060054790541970981927008814299025656036586778941350123941554567348163374107453294912259864106499670462573986696659283045428823373104325910148629587688346584291793495366564460781565236039180656912757326463067200035680865991636527508987678921675158160984954585357740887173495667111406176654575305950067444143080899548933389265968270444727268274942844092097814472826228359179180517396558658937181769912671230077182225305277864322230218637327948445422017919477410895482774722154847788775897848733041399706450448319550439029353080158929053672275440285298742888176751537251648248017684460985390490944839998901379781308458784235481904735856816091531459940318393407966391423416954396572580124614853714864948515396452985142858444434995896507461834742896287108462349779178470345236672058619553864059232361676680567284344077986937753626352618895703678577784583002231506544481397759488089313551922335544064796721608522968317535733267375245486714021193708062966097317266004419029613957353617324394760295062101572532348372407304127579788110818896510883787235441906249864049848811535843356106433966506678745438097224379982751456160936036807088622401539238149482944950909285640209668743203683410556570776691710751626655002619691220155567451806667382803711463641133414387101880537960535040918486171460229282762850255140741646663112938586977762065625319052919020855877852408963868381940751694485744473180911783785080190573437998668150240574574099123594156882466493336314929515107175460213054683982678310434526894704867560336015648379776356020135408728003283726065331432179430089989249221240568136008417766167391113570126891478130668350563896360212532648656352567432554399842116227406291342676667152281380813298721087790941983133346647789056021203521633219532783970554290316612831684894796444728159438157175666922448698245785322753302122708535801091879375513369048630616366356398131231586046720016949925215328623747258801063935367619212595490996860236964961249168804215070646096779576212708895302818626729057245624457341476661027995711091386159158989187890874127217087019947379882265649217918548729397999097668057766893408355697141550280300038043045123032003264152266548353961114471070362212599441286255259216900911723368055539527642466669948075535408086081661044484849513043343506217637446101885253453425319760051525483663762605631856750493708886706243326009332197342706512911019818426160984322881036920344391234504139816725213698208684963363691152767315586021867451686673658765565270711758683178228552283334732775469794715610493160779396239301833836537090058461191792964423074997967173231477939678352162019164629670819157240463641646792748057635540833408061141907299384746434262287869351601769229709164610360368381135703989087892312654967598448331866598356833800937990201929784177412851542034238325833725698138918995686690488091238370220610624163730775104951160878720750558812022496866743279866729024472513876719606202112844926659899425921288997605550899463080596156385246537482635216916991745613365368623577156859940195414997006346067654215096715850073924840561122274023726580489381077061473196467633429633118579791349155099508982087648714900005710837280887704192522832308150075784613890679664985019440276827285300529897463014133733589272288655848606325639715530727320570965622465059991843363794179948839080167509002512730531673891482264905607187943022076974199751969179301893902000624599171599129464833617735928933753952890636570378837595461326189527427150802240317631271845795583553144376138930196389169456243776661688785577255323590167548701132039886744145887474379843450595365348223928483917313919478449677379627609025640088443448156483406262297758133531383146416306313146288855388591241507831453855633726600068847417011471008593586948667712714084842661018582195382281344786035786537688685570665712856333097334780032393935246340165067328904203844717900008817874807875625589274379154588968752782909093714743609356173049256084928113364545914011194579571240459124808158989956201851754506112807498433505971198926936497939910020799326066884283857594706184533655267761762627427636253238333194865901819826298599858055854087711788037194255214704019258652160711236581450108312277648777059160544265607562592825616511304035222512637119065541485111431781823503060947529209709581325810308798663605077385089384611145783414013220307702099913528750803427670838626527257759106652911897233402212484465921625122246533953715074931428029912856025232751347402442564105337247032131700399097710570940852196361970444349166768583954341792475181079853560908453649930305071278931729531214895778166042980014100699120987985194703069932357872614477006182265864985186337274761844643084389967721668367384323059925055070198439747288845295302765870811762635099709883676926376509365439495845142092299461057965454115169492939948486107220156202082512617065373518017615951241457267376178771641316002315458343426579748123145439702513937665305802553670358216660002957777339742128823993933706765669219863834167440823970753579168660935187039734667117429450792001972285907500512726669629399686274839785239431049641245087773805075715190278989086139961891293620962508117936908746117034290998167111433388621093993892584449996518599925729267480835217933820750538479576152798817086341024164880963595585276039650200859289024366478278677356541371308384219746571740641836278510959135327763533213392289440884427097349567179246130975499888911048240061070734350469457334234482137176079403304616793098024746514728443503034132523686506630644860338608883238198599981060598352994233698929489197916698588301519104179436160982779875085413471742356437238465060557179909847198716257517882189746120560234242042276725246447579633841398151148242798745204960626296639826626854527460051936812457843112920977392432666835638777744276303128385864885864659377696895525450093891995396276071753646987681203487285432940894314346458912524348424816921844729408437170770595837135695529249555339586552742278798298419017782381711685859276687344004554491162585261661435855705140715573365638822572070301586453475911334653342587978501280224576247005248171538112224286540914708131170591488536005625470078756101621666906547413133216682887526363993873683579631617600532358971229984080593909352656642307507575582078753702265263389721108210650888518015063794250830173075595279200759173894851951174136519248311274608664632076757300304598272821899298980395793752136725109317553771804689142314323590500159619240837506088576731575882304358234759665494359456663561914654890170709074313981367111876096122490365738690277667245870254009939432411484380156016265075233733995721769059043287121511887830305707945338284197918484677811046334985627450379498358597523132728603918018102431949485283498304845348937191759875351468497657298531913709037964902867562443467209933652021243060747992461221457035282241593992898765193537956298767234444484847417493688966998579950607825696401405917379774943227894847520568995336062258112887564857334988299348943526854738089626649873403495333950729117594177501388041811095144824632585022073394796718281971847855105283433222868035655862475359068089764916041346892140196590999171396195802011179991721181534762774610034671489471571240017457905119254885421619977527840760441774590762973875354550771335265243747760203204395094511400864863100132834753155322849245384945985639410712531672499801545248316711674955152470894510407607632596429303750194204025588156762607172073604633691474559609148315520195504778644162565298016645473221711435515492778083451079657649809253765333126394801221350925323657454189834197936590854945282877809904100667815728712499971001037234906300818634388292888632487491691343980274201309320697492685141810684825018220876686903103557537686134219973779517772451431132453611845407595865232937395003671945551089743536703520793562778238106214160157681138521994373151856390516647646369088062660407075257932410772100747938250488608847341391322913796964361539219705331205568966603185550391136410479002553153135783762029822268892139266616126465116470992980852257059843080838765083360429284351181533268481336827763720590121786335020056780678845364189083485251268361860305181945115319069716232147938146794611928863581829087698617800682753448686986594769281748234700454790813454083740474507955994081239169217552317149712065877266263283362478717159444850841125319411391248118410416072895160768512172762397504196990449684036810756053694679736890582299323077600907077568200436533949647428393681491573005705941444283433769149595930238706610739985085327928240697022828390104335622924240348240141230967020968473186155293323721189603612905977574456563967928380368387542760397270453455124652054886328389183358735275755283271050581588450010695014481534695496794054500351698569652071408699740455107160650483525384240142991705908210114723504163855850583370434134834148493963407345925475285662206658617968144769799131626239477859445272578369378144983259639324582631846602811940925956693678381669267047012339398628950779133888536657132700300230100261742666872509452498135103018301718279781581259393405303042812061041340586055599760186227953373267961572493651595402725064572433748259221237545533801770235132553576229669808106792364087815108127015827095742585843944539949693510809654382899764498571551004300227352043607174734776756529290170557291946245170740202721846565297461787815459495017718721894086639992106791045609042194584526215844391908780863474085701754518553835883630717967443908020560377462619817960538067857557568082308817602786100435263920244057923113470315459283968724982451682254228429093467181825710907297723223771502256412441160501127271510172949857269285775527193820720368750764695336161699951042548427118300820385758889196001545337826010549008307821610151696834568315661768845337315678622782511216998132672188369474636017305493513663449632767330501826044902857559119188818347872561595571081649865930435676364514914405523759641832086259503499458475037253643632601928133765705200193384567058073521511735196492922293174812055740880520872941788800123732338052180153390247886324989694956476196637902694875450011428581357791612720947281914730438901061592476723623724067556388472026494940737887248883018236994462767612771496657471877649292583906516299833341686371505119995084422621497274496553442621625886331131667140087899183003178726446495333456788236764576937456350078993315718615954061674950038160398629619480726467407757217294731023544810716154295336168152399131783869474446829993131701764948326624782139845898424039680714401997716979367991130464869559765141437438849324862336356862951199652988655712283671918056936764484676802826637924102481388931325824265540921134173639139703722856268728219014149609703798714117118423498651200262518992057921398205467532313925815986177338595357836203553566810526058484881890702192843843449266295990338074551500610891590115838881326071558672635570318447770051147697038437431192086976458421322537620470566812453963170859059918967260641446306603942698432968292188769716657603552136420912514505518869226285570383719581850264518372872676172919424161505685655425420921512695314935965042103466911000559260538529636903565280110849255176700046253089243071669295560676792126914712025803816380420370374163776829877072258006923534677973909398206620863583912617682191051396907837483166665482311036604616386926719145709925346968251662001893452544992593614982694912806769209440527766915003333252028766487875941640606375922130768710837271502893371758059141609835426508541255523342880722521542734922369595644551754959387628355379184963665340169926847564432391990058664600349194862531970321570919830901845640486860850112610101957439883023082791000832256628313218800392509179754822310934049344621179094145591050159937574717259413417617836465361300206032612474199497281853303578327683272720565757346353128579913890265318534241382034927171347151839607229857635615165802526720156695514652085861379094586421283049315473180633207920829350666907928133577009230804402017410089671206659714012317557663068829005345168829015378109700325177444241340318119690104436147632990149243988512685358506499838362115364032577465894482771706977874691215543657192868655156260547083807316015768054830548568128925741209057318354620984226721368439450161447714360382162085350588362097505040097791980661582235301311207275505390451575982878989299670881171522400466594710976769891352458576849638152562702877183462125203331325179983294535062835943301956381449152017554369488627059401555207263048448684941456568683083584028752935930032720036729530590652566996779285933660472160868352300812431704195828661231530730847161867334891524974481733463930778857812237728141382184734005569667302691424561862965576113864626216614880528797574206120038457083964918893138354928148182669350222411916941874170508438849308498144573629982126986447879160303393255009390773136908165225090189652368936526834479109730620926975285865947928296287490775408394360669469652635470805706534143065344922477992906709228813413410592944892447596118380848798286536226754025012549319976178349265466026589837469873000875990671683070840933248591106385452449817693007545874277344369171757028635156008110131858581435314773525859926557201644075508969010589996319642776179926068527359648206820752159920675939323713209499388705510802769645015035026345938878644541349639071549706863877680505131611013759457999289186087727909264093188148907906297541442718649627816586743658793939112285637272654810136657564935728473987326747994768700957621693854295704182844803124222889711786359020594415370059958682568688541630753989688402817458398618602737054348988009356208035695982559396575673656042261261897943302419782332112427075760407794316023296527263945092015761184752161378073516698103528124863645409136047730029696511709697136576259516698203350116663772962379527954004167124420456542127072516893373344596892526708763670523416961681290089922114059233288872273059236646552289299684275962936921476609873248188530380675409777073784143157474337997296413647108355123726274093139930530454051305310539802025385851689978348877625866586808171219743526054481625201408384574667786900145834114492980027579456854906302332768804284254075457207321011492110996783665193701873075655382764155583232938355042330814850524855213037503025459406977758762268789975640212174679505910801186982642116835504155710603627220195132984809294660839465869239796509790409336026343621161693314203079430749097561888072814888530233602175878110822573093271510369241215251848192126807154800333956874397375799388772361728962096949000251851908201763631715615439505542667909804875129077212550446953183506664379595566032517265277373070915864937626177544903480670177523177965279930279954067323141364853457880519015031957501249708103312213445003289266494610558411040695527510110491577245335284590766542493053433672404402387882708046552706684781601385496759294163778873237978966104071305636021839243415253161190002376526827324495428702075915585075874458652974342761565672044799743256723862861071087247402555155751483251642341432643580548790212680292086113286318752038467621205451951813385903236463222080407531252995894750874805331919459868111728386159469822228182258424584555069011482558881243133578609000480797135455462799527560853028085156027386320910611934152150013460241261591578855805770774713598302964710610614020679531635960846714961072687545654815002426113793108877547580418632606691652598887461880269369740490433488146823853160518687770099421909317242378454775391546990502206208901137916065851572176668457474708838170970057493079939460212251311581357326361287712789729883165906633299780759540684282984647522838333279543535149267843706329722692781502815540152849961694120700518708529565345739841621126417016484979901773857638411137237022731234244826900694136112637590831260290428589134163728777616447731485464885157354306772156086716035414028277745451204584900323287477873756946888235131973082567862389751156968540290991214541474157949659854153957339630204922652832614850066391481368136254740325635285350764562375454245504528621328059205248218007371895456164558331711804207429129705977344111655526447939614937259498952980724919867664322362189183787470924859765054182594388013026044148311270723100631284934812000141453841129138430348978010037966724973643210323174791246678770042095641700845190452095058004724650597393303671872557569346697305754432707973835744736891027322342211002678184348859667773980277868927790501171331206520614793567487880879771390699235092254446265659057902840666639881760029800482309062732326647490389858911786898930835425007678721384643431177764083827046225558349690074610869610819358765787711291522455045724053823196464995212353292312658672273206631904018758834326957647207697091369367577724908846614545475330517217375826439322090670050910080036409419738792726903393275833827665452505612601365819063110415761925306672510652185799591706407691162613661259755712050227446449512581549154851246793292561501660466816122855561133338630529577979673425775561297766898493196167942789541990448257302880577227197110287024864204117390252950474218378484740108610946357667662332950623887748628289650359848708161512333520125547391682587585312642681139833989181196212127173616875823339600046440520597359506901176998642941959535568895311498298272393079363052860206216474960746275339036639813273758404920409324243377002289294513883873426541615241726618503263303052424526655548399408265749128627429117198194287169856529090475506211010568319485464946798735653216637215351560468370987650862138011054311645525037688222037310101598753264182657940514982114110151863131886604096946467827240981870416282375312697671794692753507465971761878732272179371240647192057606979191376802377839468672464509867727061693084194380073468882903022382507068399020420999801204829777427277979624482725025722407332192376568071557165524175936080125304111034333917601742133508166388458927455948439751443366851635690290897359379414004660815306477236215541670655307887977743963698504930622424834850527656482141330899521021740396775275022151173140036764016538693534492486454742198983517583238271473699328889007801310878123696496959380531271115516372616495349723210866856761147388729632094272404508263589832320598915822761717918412994894201639138260681603216519420341373154817212167935544733245535398441885973764973886763376517692160986174584770831231176916781308912407473466918930001726737503234078971413422871754024757447440214866217899928526756547196720195123036693306302159147862473437506444404155867377931299009874176956466170287336236508681104938410235501257760986283811771406560267409391277449622113648907398504673109137254420614250373321240948049633627055060037096733847628966790708870242126783108327128880791734697715716734032882195397706095395169114420587884167674963903200441307974001634324228196921206809419509890341478071055452665422389155674294551704634042192174164616608898070253121708382850398631019562170250689908779880334763289900871434006506408950478449639016169217643398815157804913087223240139824265377870783815168388570001446891458695369430986568606858680836638938787810677232573472597437623539494981553670785671255465358384206802359703653719256461076660564669401372033364228447398257960427159896426706704752431345351528336152105273462195326670303485075352445486371934312396016876824913774040186296065891666573200810636660279837073417679285319030103631682132603242640030627204706473413349091874989334964973987830090140352677436311133110493317548201663374713135286639710404714268871194957165492512389831487553671539102333255294697149933491242791171957941011455087293139327207094098277816282070395997814661073536686273415053036255708442882322835864612177036668974339471875965677888484807385204913925121920344450594595029475404834150291309255281091637919415549788535082631527456487636040571151208408161075366201062090094123196927480670657496064495839685361033791971890930576082012400418045971135289411893165551981070007387950573736624055803797694742269818485100213056723224647912585347069552742045979190174631848330496969086870428881469711814504649812363470054434175684693155134225510265474253031566607567536299858762499595087291112348093945737610716200329948971297751434554593376144335500829251312454378734874815149514487691155997293645646239240497341855348827435941566744870120496508262182983452669561485763441080915339485312692910263615383452350523322965194800370851319663205961088004240514075444399861074912251919274724461947294435429656837062399205155193886150884528129835417321615648544179869237141858648842377391547100364729633068369079398115158307541105865188758363399238688589421706245083027087679882988979446810666053681294333709957586261998925606565501726053708663179109156399065598395658976763573996086417640009459493350512947206744709766754519351707130654351259742423519153382658711717039123057423352035815105788768671524207704331853510627936860949314836113604795524089584501618199155111567988065826332640183342899155078207902362678340083422990882446710744864821607952313528054188092858894001858372700043999935412153805713803625268642460643703602726248106003905131540128625034334226254389258609645292602724876291739787083176655235354851556187936945802985002417545562714440317273599478746266910802723053392263285361336702811873017737469448565875550826317702824913423417018532714759343663332001874188595877741902959597368843194771277132803444099465838293770880923494577865424023243273116046541050545064563222651401300529730656017267399739992727756483218001927629405220120006482517802483116236905292028354353052832268436651611121461612059195854278855955389987141254149637981438903246044773872952172245440157776620320118709510427311423123268409348803728358825977680723373643597204787731768223214822016286032923335250726236880741402092622076220423856545970388942664225834710685129234550243864186103963104938809564170650967159365242648965157260184518446809117945722676415989144710158132589812990474098106041886151427122510799504264578410921166818171546734184792381532270877399690786031474970943878018603282012343391940041142663619858007125485158383928133711567302718700211246568536155719966805153744905492135360357527584383985024152895612201516360123976156805741291296403959437133622241206887861461945143736642858770247463217111979663114899983102244275728672881150327755983487035313873266411144699517479516227118435510710823527342800869668016420481104982477947583349596479589245531042063789951488021838629626964469072179192650325766544023926843321961278489753054817775358076046715046311631624923194397670927950705979250401456837848066290484209200453854864007365481383377143785562802957300664348814104949496964127900952992702506959041557733026181723168389348842236758835013744074576375003296189215933577815766477717835690492348892068376024384577509695767579998675244577149807010347930707743475120582868077847305318626464308415008892298606955796288762238202173576104519045600573350238779458040767985431996922148262754470364844572852002027180828944429644444321946435292274262702840985007419783467993758808504767891772314456119033012655285918950547955234362742534483020350491657594484111557734702543409423050837539101148825946165507598111825507673108900738178872438882027614766882949949882706971494437391604631678520435856888831883086336610760596307325179745830931417657740089148733350090318704769577778265852097077285873758858909393697771942154544890289487115335900776520793056892491645447095898387721355190654608015423686384410152500128401566887020835256563512341466975314210699733703306160513842827296944391892429511868566834841948027213284982117949108524653584402145519275272803056457275699782255650936311938460333712158297461405907306551562219731436740310468944268409115802109109809665542147610371978219486692091376667327950269890165588285553091962131859615331703914092246885051356136842693814073709703419763630590413023292825833307665970972804781560507514404355630826651861350536005998049984366814216126026809737082930722593705344434930678309511941929724853457822322149873478384611024925325191392040080027120775086709674316240819639817909979417563302133131444284874617435472572326886459972198801351252129533206639082563995860872671604244791842911203594141798888728093441181632353080086667688749792451325636706659059989026845377387085432129155200590663319513622453635923416643109606589516903911050276186874638182118383580242884019550059948358941063391115242954243885839258944219753832241288460739889620462272974234416549358617186661865432314170565305736724560328502583273464840661447547849098144962217998126667301406266655181690746707264908908214833233644235598085958440410681786540570648912542369878228696848962485078689871621601043575140818524624244613324546895014538254707798737613737025828383153274799002935779847670804387923161312649752279847115040154582805860754709984711057447175292683618360997084833424615443395135284350113012876198756139081459686750736425222895653010106247873189613881133177637697496341269781694177147510080199274596458976858959468711499974113370007939318096068336133155676091732135069781190196014901970880686143501790638222162060835101951093056839631106227629139325018984659965483671120577596986280111938814480589508914333303709411871277138292968267898991521146747613767794211378839659584980474512219457093327609565009578679668953550863371663245000642100669810276053734047311109662402967718164064973985817228327596209165902165444771555917078799112262680770633819734132591333095360726615736501871754992018600066016506428308385090724233495962207915758710854520066649705471196213560203273883914645891816154091695383442405420434850717416955782097000710764245326738567538085206327917832960931504075067955429805270674802851238045615349062799928819312482023874307737713962055020684638012097666145197581300585440877216252630714334798228305766710622165588482859273713363078151520139490673218839838875900662068468743738611450979079960780043238798558398083017732902221471944180578221825858005667263172734718785267872215240989871993529343804351358695107151259557923916612964173118680658651441545610688432992500497166750772003317793008075197770851755620090556137830438298863726253487746386970213054170139658055546070400110036357686342551813867100602698635429606115316343415467458869303015826383487278593675029076377579302090970141568594442559098532266930564467746548407823878510970941901543066062244858561092988099418873505789136539994026743261797911542557449840063522722273939545506339717177203342058610974406128415247304263655452502422082712662452723844028568395291052316442619723068820999696840583207792196971717402033750334363987646837383976545214490643093754710741835762275408879993535312759237750666827038792388683603315260227724048765248084972759721941527218191801864893963450404053879333925918548914739606474888314733286188242807374872023100191274565323131394177710515118177283771720145351517018421567741702682946468580080178245304331063698958902509719991946622617810298987929257698569796335037803126838987838052478662657056686950571759320694269305064162933190504907998593137401019310498259625219785942762249869942297491929274030537017332834643211853448465865561687075084972856705261311804933158767168121383964263613677911286662475963032656749752333333441106083076739240173389194644956117955767719437040964133106362598102748896288186104519012487524196481055348929371031205506596411932585366507790826863548764492987512137160384358403911244196811142553295116490229072363053869469740082810543542500257572624317487612358167643849832331714610866266582560270578962398453345053355250285316853551807543859597582546865990327212866091440485415013183830149122186957148141589507046787267327332732459805982204013165552751672022181449380793214821278277510662865655171534515830077703386228967470862258998163978453300518160191131862196845087111967661256536448837742331749730229397306877539938601571415314174349007321100136378513226697253790785392584537931406835543287743664651079432204336884667606622227065694478284988275818805913670466585088938416349695157037542486488542306171452195630812872964141512871735493480456499044447126499823443726854278829294171075811044446869393657708427515357298315056315530648030667611275634162838915553662099656059952622659421252300789531698225264761294065281737504194907827801072959981046225949348262923921704557191462537603216503989553530321412329070561587368260122355095422346204705763459116578807803291071773173713156800889944349120184863974544508724605395603834448212296910828419088755464848904896784520771452234004588191666589133710425104783976519356211781372808854201898937470668270733536012719301483060213750453353177860201209174419731197458357279892945516354844616189464993001408990094327121666781473802211328499543765866187740535563930862538431437612604900350408544963809149189931451719827829965001737422701534615515581645937170603744643184204278245928052164445847003118259225399034257130649394042503356099887380793301166681819056148203271140166113965351211919236449180219048214470966845289096793277683065796328501498551234780412236865520276878524571650311872745135000218146982177107265829643209296179915970584615164994958757101864254940986285708177182276730683277475618711648460083874291841775811376161556592791314384891711188657139982615714656388725567818051483159931848743994072114862888281072304459677598561820139440555242625301926803754625511739482523607266363412965859670933207864114494779225028671309258640357456342928650355105081485464993726985168171882337131635478255716208076185767891810225774275852285057718769128110927843272783781027822102039820687922130108028905947333313279446524025481354767111018668610989340332258797872894540163757095036044989504501061971349095257457220338166141269684623480562578324346724289667618627289340508631024963743758979258038201923590357448335871683825468232689965784964808799937906683112251541521361334017059359391093827066805406701983253084503800202832191362762567735682609600325596899792011895171483148516266558552178389547319084490175240499288638514428629031277715547327619740281137178609146636061434267863241356507366570567346596989168695844624062951199841169713454809457914507041356993890947861060637188153411986974056165068014970737974571161404722328866147995342687882837149471845746019217952873309774600538925017920149744086666788213424696462014565502297283829491030158813075772468599187988982846962374217258869159962367580108833300382618023599691935174409293782071003143937994004934447706727106250366490126778922466376156469014389678390709076440752410343891834974100520679090307370278946259712529592175180658113349586771205608198101152184388781905780342524347578539595680323987070820067785052237001045466735140534833096538507026542460790950889224153811500573185079894107333911402376773264131650656756230688888719729666272641571427409176342141085812097476970183892683178343950861182340546081461924534488609351417394236931259162229112442992414047787504553393011810487391934679300313428969360680627669276147988032077840707920541725985581790136293652348846120633363966978529969642416025997087977238596698221042309126437713102642593873174533366019091544122988564112170921517408243567064973637530455279482994265818147647566643188172121946327404601499365093957379383298811609706169207304224115710117586851491017041191853672963033983948815908443686896129239711577878500294920068512553609566273759871002167048771847996344390605854537820634519736607538306731742235081319739776176017802608370528395289943192231370422658480151216142883650556197359166299324083806093077529903383210961065918793592759594586136082365235659572496743463510318599566952454606503834971843287973468073736568517747546187302346782952244117017897890410710286766861904158845231686159713536345370826961186914609842784278957482996164630717070603304101150607376856038541058442502014752078284316486894419017152720848854851426986214296174284365646356029266359918743657535350003683930534713166175689603717591733600611300145913163144722983148507205600774150708575165699695769003070616392568063562260102911079107910596574571906597840588892310276327147655653486226486836361551555929592080784040361432231157720895253180158294770907135813369000176376836071615265119210028943855418992179499853457230403596767603200192400349452644773103600076591015804339182023103411958286862514813787093071934457806655457113976855203074411443747386165481307946315305275597813523372113447240760516261368463821458676208362065935846886661072848202697020500754133012625995132879705078571160620315347302170312320331691001442081011091565730928568579046135310936913453132264226861097853052732304686416556023413463996540750404167464761700697802825133382342501660167286876996262241645632920890154930872272349662696878128165716874733043068951276971195793929431171796065966188472955155851875554458624805173368519859810486332880903006547981625580986916032067826831504061832647740068072348910822779317429952547479947482493021247111121078527661470529377166475448904923262268770098536624132467110813619210972311756935913460713637435469074424242168702099702594747214487004923829513087576459455189885256826796486405501217529288339544703806790037865576497923012811589930867341107798219767193979952870485481102342565729530754953085263687396794582571072163275230366147583870795923510497465404813097448696752199503307195731000621345250761886404214378083858248271813434071442546976158999123098174946766420183826932227502927886213121505595719047455656525857478686979797575313494075188833812964274937057641403300664768598970293130061873265564909087304317486579913675033254089869644718454416079887837504150628768988101882763974205089340429194053210838684594059657975751240934441691176995490206944979944854180871347522160968766298933049013124827570519233658398420941783659100358821707630707378145503139251050339051201321090602650109262631677105446848737057811515987019272277314206451440399063569763877040214763692264222503023614757570408782640401022688541192449572782840191779892150051799064878068785176690330373388606084579504986737415442530889862756161400626543342291030217412716778533445528944561426921201243673873805761199823678343113252166063862904976503632246366721251159336591290382234893426714364277695601914826648158641359133390877057459602260529465672515252176238334083460843048969535767213257664077646378605551539703191909268982948808788442852366666375560137848066307249158501954996500027960953725686064472909502470188987513180743148977419152573577424570553825932488085250196741854843052072169429119839952586711098228574364750126851413784073077026152314599725666068211732093216810617298998754417429426402761739427727095409619317946560731911565558647139438692280735149788649190542224082256163647735759422152565985433476461865921629629736395917526009490286372549983942239856189682118101178379046380596600033576270434231731038357223672051605612989598602329427493291799182520648584684781427425317631579582212998368841766099255330241553415816149490593373105780485662590682069973166008400853066538613851984667906018955231439041413973230880210605384797165003343420327132232909173617532092423133675683745502965350426314564244364689557814247885040252679866566111925670672052062639727759927225167017104626114121077211756070525127526259321272780243947623611902633843248018443393665771677212454443283522362686619276359096822368782155878913968066028401042961370300268001786804071558469995796384205866172641175608362210363423953107407179828903277691685272343451049036178059488877369458551663720646546928125327169255109951861615270461328610895519614087261751814097412945331179438654489030489328095309023498149037238852135062926944697583105110213229061402148218463646339652614012403081597217162007636581359127918380975600464174147090231369342766680506802097044985334865813311458319562141282495714562753361576003405224044227700928358986574678528853432299515655181232146453436568340919817020310155542111781272878767470743160548782618730400556279864737462775876027084023116123475553002292459632285847352680472287310439214113358099313903125832743170986932414790835099560066429495986776056440468036778769133017144666540194526008423246718579752703277185640239259220929843987938768986170856534275611317308127363781271237002316188063604399368394443822358424041551933316614004904773342509450118793066930702224810207017482597726826406461054780830673002142596364285957968342417251779295050436059506772602373463332151140132629655443348852671450262349025924208605120240043343153221993435184653591483699955947576783741392853171894381574066663918088540596904959733273156291630358898243603702017925982216895593978204659384961037360510132116424383978023837596495746788969237039630724563821165911576865565927558684730640922492014001099992100661439685315899597328234955376796826600972279120681518745860674688052091731067214136736703537097683783907734670858987723116142078615915569838234624874764905871130779281048607114966770677588397508687693894470647362266102135079351708260490967590984859491954273192322093530432540104271061476065612488569747942703988239079348197839838898686599134141619603901513272687809794832828636879937233245214104966082205364255587097966239069886354068360986818890574353087028087267065298282956211360581798070101422062024464460328742868762998632280457269364510864235050970932952868432497274694987433093770573840256152594267983946065462503698654409029071745846001179505415009519842422782206695808860912579211395674974855820001383926526003215328297236373625051294208578028937144656381613956692764391646365086008400881306873346036655321845397088855378553827685254503718514513434951286273492797262743649902736935161817482770234373258356034018944969662839437838571879034324443468289318064408039791905700488936602023576515345614364283097967086486196482397314046908798095780040471243649070139693894353741722150782932226114856626747379778638157270151500355414880049828969701257304055048401926077075055699903452826294936046592894963919340088120944867705032694766014792917155449497343920376123456162977240965690025976966615979986674162019950379927263689000650049452926104906102713800309360291277222816508949170211286495672997852723145455123235954157186570310689662692422489063170171627330021059464248711850076953369444345323471616845033873588691988017655983864308959753148755761439464579718072816057557478919683484643086668535409898595332010411439094708922194116494138365877870987614689144070701424269619403271473010599047378022694206847120096344614586052072897471899420033732612061782251023282687090708413009994279986104487574088369866309296207593012289055628402843409564367348382464543787859615479242371761185576514733780368262922937300473195870812647297732729378819033979549395179866347710771984736744997939971428292721919889982086470439413937357238813712751006077545701128876463584937337789513934193547894795147319639986959970978910168753774873904819924753517709686924059769849543926790529643445815130339789292227930695605790197095065485575695467499052375002149825373992640829605162270044781189587842619938638771278917609808617550636258280461278450844376499350999870852349661783432409816386123479335070409546025020525330348798296171487843765805315022558678144203142660618372031207935745004027713211758240204062437468101349226699893228504736424857316703537943153588517848494544787101548576507767235752016697030070246056480737715818813533022755225072281824803935244558249702812039210306473176209869877251795345150977733543023164078506573160812701860178085461918624672302383030829529872828657087078907878326107876084985560310893915448147782417139108895551953828786973648748074339524636340942093595746183465046112426151003807529495345226536019048472942226383475135669847266730839715056418326519953752610299070439188103801099423179839677289963325520091039853021748346335794917130103250048212750418624958407757255436633983155190676421290568178099974290541613168251381025872669754745129550538001263218764838072571698579335887396432761023306045424170306085699437303608979272553295909174347198342542035257515464544032756566214765873105062026877128800430534337820140906049084346055265817141546501341284976416973243277134252847310465070586142673037124262884728939703126656087171075694692020895911062815859494813608156126457204594275616460376002306460453854497800669764801742600550513504147750579789430125594605803338613086368976513237664816205648994408106613591098926387464402437979417605337026976068496310506770294884388047029092758429290094340961810213130349027029238954357019394443345738493708893748871628472346717146186762032335558034698958169734897254110344933676225800927874165175134428271296537520968200701638616558113523126789797645586516838084713794777698678689339621410526215542140798346445937456930676759532020740215564534835517308197278474546479657630536368255646946138755884108482032960983827719485813608527367129577758988342554878921689750194027323391970576222259228414672988556839933253424451396776123944397450013131796515732416530649423710694091976277596957932595497915753577473981709171766207944235643960962522615507267566908245107959896330588659862102901539616988373047600204478025013970494759238382828062444804733543543997175985503799752558090651884390020631481755993208840591425890557096014412885317693685628886793652487333894327941915297007692578457451402002255771212898742604228921347782475084399626544424048967804827718124969597408863084000972110928638411902002009809379294574613677517146967295018010303248003308017421310762318683396328602584949251552641428797857279265971806623717472763736015163870084639924048784462922032715457304947778321780838216894245622395766850922971263547003212633094641703737146150026605532559367271658390662231552595463320245565326364415352242360769214697171840619008504686179767913253109398101844366741805483451837168628110889708428015433895076807699256535975324481811823698868773015716460886336273351329910733225716411887190227974993815956535351955155626660327314132776347313854189888614041519770611143770054263191103669815447681218863865049442415000079624677525060868042726019182341868094122070372643124820502310544038096756735030169165364048560892655761282289671778218709857158753760774663255286267500863075513182063671704532283628243882718965052783930924957431217715737996526117962037004674183367183932034857931372432067699024337607199762538271393542394327880734367910241688038216636156931325519552345301794602354752892812153984075713675398493557636803127285330754416337865209310299698293179179096665966111974164908137106702722025862425599290763556712276507051521372899167597422190697788743873305909347103327181282996622129208364172032654886071467160148781358172102358061494550518805457288844580758608675912626046436179645888137227851870262379068544452604429190603980060700701778596035929018722206326405705160820852294469955454572625483306993111523183603112262676671857118464146544301523298737573973628616042099026210447707787091336195261665235106265954164021132494658266689253154647544466402086599207967838416085450574918527656806676599563624287988924481977161791374567755580546950569141331868220029302047776531145279402743434949665065671006134906156817946852154150867316731202362973229199928639468370878484023735269647746980614859584939367563496938108534425843780999153401329868103398824551562160611772580941854954574094755918759988388058476587489680097277184491570103183923914914579434759414356994000563691111437207165096513474400671682031766109313298446237322822721565201861632901423631245652276983780857876797787887983963539023026349781742117073602690223868513728505186309992816100646182750678614901556447878108507997746326455608945721496852836156747696839084000602161383515800771254812701702795762187604205958032726033970292233813696544653731094832114871340448896779627168206213489493789171561170564235080816501557746822260094138230173793641208497874843383043952820807952883241197993222300626285042747269247106231145821045299803275888357057301904924494543942791590059367973141104165821392310912514604826997643944880318543314511168132474098337084151098512646248796810392825184136022330238943084493501372834447842863151876513452160069810274522861468969710105324802292940458472766604981905369485640672660400783819722913644439496666627342394545736085817581791826833653464812917777750382568091902529647278120810271068902066903927864555030608488473485901749686833473263377431421697655237060781268441119509873077512747974782301392358664720386956231042533825893437433134103058697033930529436335936304788324776267110808052453058475039842971394487170937330698188116120015791558043218201172893909273279878513696691442346555406182063690838905559450844843750896029534533934918069355939518642165885983801027652416245949593935841816444666328525440003033704853271972031222566590447831194898365910911049687150334928106419588404681056924661759961740715123875519044039283513291416617730711873923215414886216302911259455018813814694381971104829255893994538804448673267930359056900222906211247721244720004382565474813817117768577814516188300774271913228107772172628513029011061777173145017287155327016232340755350295495555922618152328557087236944942532361874052647168012545092163254699780510845123502269571577608568819372215472658342591579471399508387784182225113641549864559451811983406589027344007919056033724550383299554690095030151449990571697109871034088662849779808362155813271752738723322576929479526809146335669090564906791738297901624779066248058736394868001049957400868349165471824099953002330700699402603748228463688695636012663064634363139760913825347591818117086944161844452903850648522475908965955553373724063291433507274508335078282880068325024867262980497010476942848795461081224114996477963792469273949689025490459924197724702825647146714069425414187352516799788327918792643821942835739623477514107469043690129841581959736572903932778052224974491242798746217825728516435998486052612323852474630580778124524241090660452473927576103227385373529279868424789674962161283822764358515938577371424984460492581871998341433750122612390291589190700447579369598664605703420884736735965939278462024136320435490858633441002765638961827031647425099252734881372592591063852327146421729843598158249354763541395018749046502016345951068885810846003173408031551130484183858961217633052173421014138043617094489459129631111121389792397482177755061282489989592797140116942478721891872228613055062551197263096359178829798693554741730207396784584899967212014964498001841329725290741339935187989729751394768880093090398504888738536920712103488764786837470792667642118103299437290034499923758244471533566065532935740837283918678925373860461323520541016286981884163702027581946193216482956105770109648779417914877645045084647226309482436523380790571976612842482776015618902631327767281540490838270060258270583151239737557753066252716940286515674005416654908578620494486212676721745756984724132164801181652502334180298940347151270713202867662213100268295427452555512329661204342199870341628452067711258548338880929606137552511314395478514761187881043668123332113393005373658288835321697584094899504763610639972750976504319334954366998352643496944593470650038705539290215483496503677252931429885603199879236305233549261499639624995446925688470004620384010521661196397959912110742074388715190053744149347041929752176595783736481544140381646263482435888019250600078995796068264454231599270757156465874554010969238603622960280097730412790668025978881099712664372502029022358464229463534783062516588356961797774170651904040716369813634198952177466143315100950155940592802213767814272797096711588938083401741252481763478546921044764577237156638832192141989590248087404193534782877655487727982595056127358984725008183005382084763663626376362909161097218926132310987085581452470371596836927952927373984144425503986018255931699209028379747743248872318608693294294437669588755124881457199616084042953619444893494791241436154992427025677017793105809758339455651240775495123689821146469431806969530828220781206054483425276997279961834942820073033540834981742928515875778787073985615860616868911078374589533948903921384950858123882912571692146615789396820134745234179177482250188095866588065234954598772941807497617659378578135344815779029640622935686112229348087220585016314256958137821671140672208050987891437534662609065433281573204838051015344863560926010841901531258280357952087839356321541405174319698629846367665176886257944056692604890028958678969744832791903966822795861048357561205572841140633413617035848097488912046935083906790318423360258923962201501100076969981128109814471494359467943224353426341952167881859780251759844290624746810502235956424490847428830507920007922635025573211915945242552277225879270321295668318034821122444698582222718664314281121966895754005418964860027458448088754568345994995406187673377133107866842082624628169910176418501991953096707635226979674171117178585457135113156530663559260375117336052607577252647013598363750646032723874638039278378662131144712150223536655753569765697743783678138472326028135838271870310705432352671480075327272794065349868654992421959241354206478148680346868729159248829066111185485377618440428516085445555603714869712104901196177780923854002026690219257418123003999949525461043103335878929904054644336146160181946542073464948541614730234685630383194075081186860501183089954344345280651104715356465765409196502705023132145753532406950994303540505033059029921330644005277596437542169009613437029529676521942610618035362343758303758283349215793083745430710110947365636981739814143688275761620237968404978759277298636912721408039209911707107012136225819751882248731254009399521670047055936699368378318476357598486567972270428269536793587420205316155418982776151585800958313920183478479467914098667297352537530938944899119296153689005106689309973027237822812257373378636837731277267758531743613938455868530516508515692501960448669436893805121000920844403798578889448317744723055153001805664989622483041863969266089581609739991582328586561714460722937400177910945260001981501530095240417498990942484887511398612273875794859142130767299425393293682657244671498261637086147207405364126736383398764158756404301163153632285584139229547626123386340251183404693545541113456305665593148140975078427724434551597023980323642431273165692896168120123855223881350202564749145732923018591313457288811900994454225955725975378626444403135789878709953487437065285292813746091265915177855703818992278445548646840161862270417913295074966679010132923187185536072663391780546907149206508189167085051341467523338301047702371141236776901740477710172044727208983596486910284036041326197689576525115237556722308605599670631940848784410519132628022239395502171033423958934197529572293973350138881740679757705513088816433677288124797630510091755147856042431456969579860674785830836402057830518724932282932361124917013380087777457820616275921145852980969685435973284197140889713791466561053384446532956670549414920723781546201850604087616078894506942868710867762603532175404745144479883589141555680571478431399949368370050366438221918464644793305253970681754866884968240804644531499249764213701728628090129535620698968241771612201258479432811183014378936340849806506298307191811554920301705931304389499892020487567959631819556970756549963106622214099394469033134385392676556753607815457398407469729180103413721433024070484373387879695861606816789767005816877976146652410254489613296921465878705763454371867015245378629011619290537045994135938875660921939881858468858884027040297791608866773494497959906197885438186134290153686337027807320043691386956299139539234051014432073505548799732415280504788678501144642842025447883804160584201338376206707477268642467521697707586277074804049457064939071165390688183819817854583204246460858761912789076908053138513997821042408379035236158602067224744961746682892743960227439569359853843629707727290495814628513265309485453986428830820699154202021126411839754498886741176299816896190847747036649472140606062130541125302248051969167614914310331460443822652127135274814454857094581226699311130598934405153542548052097634312804439390590425733767851961758279885551736458231827859974218818704146776233232825998688057778823376741668260224243904372820558032700133354838538693787417116057379779934264886230225418537724231069700574550122273784254547920331545368067262072235905510191626560647645613838075840260575363097875972395045464950807102100390125372680795528683979413419251127357369820164302681793765793173379259848988992799012084254862079155445776354316482194788302210032511208565149607833984370784782757801170806600906797283231516229960819972621355193669753498262805014798668362220776304776402949282024905566446998173631994953107449150057544235881033350949563616678208560280131051387787600170963629694091143276441671240389845388317541135929076771186375551396218897894784498073495675697885498434983097722692587407930323426308082553968796202597963588956799944551100852501111170852223938321466025454621022676670360346034459767540183303104137495759760214579813508848741456457970242925493142512411972675175493904203049458650608636762821988573898997459058807457355285807910416647807903659543830561878508816974571101963710102421914967955392709322260272023686122099280076114198092599932753557184481004935366645325683886648896241230469084972958616279209814843569930459612685377500027529776118016907745232258929828011370510334190151349807842158585799737923043476967336158003567826725748618511870732661092653865488684487241035333780674685082865986795212410219920277624221451423731176531439564253035732393712015678705795821662940801462519303795552532774372558742488635844174959652470116700435018199895728667855265484060721358018847641343093146504553747157094466138396891839410249179862636037533207612566429766778705474754543602181851730671549797186284215702162067607435480500172089597766435936996947921664454337478344764380396810564949734269349549403617024424613620659266135766948970129487787119342399476082991633051038433957126404822497849773051803140986673777295765068760040040662614417943260602417716860061178495932835839448689117657311486444263538157197464976766138612510864869402506237023145309403279137084374039627948331515603542776008998028513334016706730451292848800812383832794742718735039343435140087674001808866983631025507699073754072988900048538362897815483183668941619133661331540601450414256504887051920018773855663886472874739993488853337801719259562459354979831128855721986087307484101705708074283695018090455054435115824880412655315987567480314546920767369836110614914778071066327332073959665325374254564166672271862123548469834317791765882828499028771052401755545054223449943982910549465242519631417418827592890541867154355500181322264802766631869199779058090219752221815843674768913550123947960264941649013327441601076958559643247968565668266062704578063717918627512193332469249521685726311446287485561989904478294820384569768255542623607747194689133406882579765987269288384586717581520074686664137342616017651413521359208332580592169281774549757644529208405112067268609054081707257002046232914743145415937553760156441966402365358117265784779016601776536035776701927523197711978913350668370734709813398953193772680355770785732876329636447827836653719405646746131838175849787025162582167084953475207650814414106274423699021111110950450775771918580255135921170900499158032369017362333457253615311184850732746353104765112877517989379616604296417037580586504695385160461462017067810546269529982309900260078391276749402429187352462299340456846229206639168164982798396285646723346327695004937579822456240145131194282626122334121668269339225201590201187867257849143343531236902089399257673499660026884186224574614434546658897737251894322803792730259346454037366427935606486983711944150287739354034058117033031750273793586925949747906995703557497961282967218807103305647793182746488463925217041809658399306705671120943329901204619217375651890716736725543597372661906875151547137063444672614036391636795839137135240943202217728944998945354620773536807937177009450640478162155569672932253860323477918969981634082592342029380470982508973116128302647093506543808366346255866941787846741797961700745732938287284887395298686493797005644553115840691105656792729946447774133434765746929905893529748895640805298813575008972565511743228854015953369203533447277299249965234401077772781324233297210983744340379338034986404738245649205797807838795429386791571749181061849882472636396966299198972140054953869215453378139175115219387857229454607654297415171894602798043521091056329946351267331923632746307224681839229556734955668917916217664139513330742734896998061090319465393042186915501317463205180473928550348756190995370910497157954188752170901825027863282710123419247289255240667839401507273360839994353647234654960456789402268557224821569305674101832416607841734810453890379527420981254724654559691166174718428601252705935845272500270683179631950346414969283758082638170519487538222297101806032070558914563329074647891002096287222755724692571127571975992108357697681897850048170096208058300462925495509920074374761664028001170378893856181428789626153274071521076774680973467886386819767133687268865656859249493364079805417749362303746501951634129290037316326082311824924154754803402514380630127943617983847188574730976365427847749895522114363550032406356018617132632782978281896166062568651501642600339743076014203439007432931289627750550403965720885382431331001776005291104365746355899437865223608332366737569870021134389195773801432677698532936720572934452288844064687935609122885455169896735511870946397248871542379863594316563045663077259660654402964376557650351518389017040981148878582951675165240206319251196462495394488916994872029164244409457985185033422780329682830138481232265532719613550031386793986300789645536142190828192873630546614566096143454398338237824598925470689358955431830017925006795243326207686367303740238803135238750357886672048140807552229789976552634177368545356359468358568070802032131117322434342064452347294412695183297784368975556041423580468176260916860456961707861432848921074718374430339050567863969446523242758954339475808713927672502001203229011780969285145703248118890418031948158743605530216571161101576571540379654424425386671765089030051655782273104322743920383279006337983142060362856916953286087974703427855596429183081194828017862409806144785382803810797378201719587740171050274801422589099484052762813882471164433208811424286085869549683683852990469695737436619774970970809042079158795362538117387492801030738239574690117143669083053084052015177220132620911729022656131202872055032789867539192693707708827660431176669617706913179864144550080998398530661889339064621239260847473668401924256120571849637761262005872850294708003915470904886518533798605033457129058717874191493280900105719321373509672599816315852222376480018026885401002105609145834950252758915843550288110969809358422828595099741411325211907737583952376516388073550254798592075346230254823073118490341566575518959476875755478160426345305311601184359109723101057827435151975749498065394032766698320395927586863044444544369362587585420988512856139836902556791735704751673048828879603005730940313856763103215852968705835846190123420613183683493299930220870623826594686279162526293206995831427447874274826763900737143752716773834924432865586006337196039557841026590206076018227992329477877120019672281387972785746261623964238776577085560178316601636418969785872034018916453699882378702686359522579790973780866115197829101713613687246441540613434658799097572527444447777183407702770840689259925873873109104025125790971691025792327068821552496832904318686186903590405679545232879873947378639557472004938223759763267545786633387407570173587282769440520416970525547803848973883834812619230995655137943784494957209120330482542633219287071978802389395254339652785114405786722488900332414747422266487660866747789860016466810837039557971145487133870644752700531848799024111714164375794845621365039916234533773848124751592668245451806333454842160523662168996263619744916515064873351624110557308087416448180208520558217248838448168682311780264482933957244455966278543638886094516004133791227879001115233075706570898600946447923793435265175528581513315157735330268543510885583516083576016240761929928169317055586866496791090035476747162068762089521299974409886476775832041472792910694470454557879914945395010800679505620251857214412462509272341328228049192163170346635517536968631855021668827299698235059129580474128588613052505470957682021625333180120344781489093908993957101713454681647015676706408709416696065708857717126215455886446281860381393200117213274196438593949216041223755055939269175739821669880039219693368813758098586994579999968150805400031139953321269905973756575773450265075565403325858237565668558682997004628758513815762520419655572293148999795001627089044923458154172013922144063394282620643385717362926086177783373412815901691536224404602819698528938900423301634534593064802314365900144036836043340415029712141386747847242036349292330446101842807508627551198671771680862291523690841234372125849711555602932809494097611130288064901554112962859865157328136871608152030071180383393583317557518651371656153099768052804497715718683325557333111863038792292169207822192508384278959173712564727201112827962042374997984024719715827677689713061632931191655830527240285381904514507601893406222087532729922022320246111713862943204415161298880415983398652052416977982649766850690401964677218342001086142485906780643634138515410063133551889935286523406745899766992123598092014125969475566582222702093707639748875884524641399560747719072698818026100014073700687752995371201292110435508648213636063997421667175501728538276478250758079674015354493065426740653954764846042811570371253120994864626611321160440602132920438740238370590449776912570899862455677793510601076318947628827241448617232482943662496906612016276154789190301780387864150884284741101228504022105821910383658634050136672154858070206779281626435982314004880751410160663470511637320236796884040243683772912621068745231035226278985823722000255132616725672232007656155740666531817114610611641733003029878652108642516890588304076174374261350281970240343059987720342358262745588505609614697810324033928098959259098336582562339857908015617616050374687775048706109576412190282061408262017833260243841882328532399732032974346452308723895380950373069237636557511219431722922937649158118253125487365761218898945124057007161598713292844857567373548418119342790060572908021872730853936559047472478940791672581784419070721892863356759943645974841185856128880441603280522088319352561934502257728471496597896810416034822103706086835077297857379006091211844000532764781153013904797530663739405448216797527198787319080005946635077376335006528324065811083504065291919405206199340686763808878827937808535488948947770646400025179687059351802831105304824577428283956592486403081135728056611751258726070517461468129114466994025817820119167712516002673945462978720827856331363336694282862893245430519972758916361439359741720204481101287357911648521627678358475361920422670944998251446036281847107327635883798245747459676085543145625556857536987012244598233641209231672195343564871690204316470481538220144633445170582370630429615457759028723260743224327940589309640718436626760365523435582120220317346029712300334251118992785378939127714147736942615215943854492717830602914606103075490982677571902245617033372556301209815293354164335327521813590585972678733181976052993985287932407413356246290383263484378882793738657647761452940948846256852065126322132755084394027149901789965578342756780769066930598331939767127097535385751067751485912155267500510946726701826094778448481510338932769017352126228703383405859292242156768359388987000058850997628336296967177600439026042388650686776478072681846742945861668209298480303939693636125639782420188905808380593838051488070966308063565430118778215465649075440594506011403519785551130377777369221049641148541510224585162094318133633879919653202445210599958736078023531668183300838961048943771102278519802406605184523926177813155894708640104063193747444424136158981539219758459081941412879507136794026993348740602504718671393597393453647707169422891493795315673664699401648670506055347701494644352376384348410561410265123313827861836094842812030286864759785808439996917668976299901374890177053943465282368628230679037209691413465060084302978198293443015936699203778297774120693932469562984942631641757887852006744027471552795566574638736503537534719015921528539628420155519162272803210646168405614697943110784786339457841013896160260796852839106757736726013359331869233649413452669822560960126982687007065755301824923385140181707717639783337764588008879450268819956621139071406784760215721346432496689485068116220815810801865002991240444593328613984523011030945851662004825720933871312776502122361659641870112394978287953868363394986740448743903683385042847523451157190674277864080733200286557049453553285124271236915734150344453644315709636001691010278414370112595054224678714217609381602970325138309332484657134338912119166829730148234353441754634904119226154098092222978161273683504562233179851273512714664885758035726294568672335045244603138799457712662873896738929544339414777404074228002627254423738566202416907692767935450151879615901180973595226271960098968853060594698262294113792163485775886133321524897647385782597305859351616499208466854061579739397633978277034317902204352321812950537947346466405103352641438945157257327362113529549708498389368702940852047394381213151150057821365456954484830632917536859252898956830004058514338246619670086327717898141865999647037271993477958604444340804502535678157185976078996468401773288764205350055739681085210818853038810612126758320391500148385654363238682199557285279348900038732445561452176359456388291364675263549302081077354969150111043082671042597362282359824482106886539111650997431638090002320117197313269594914641517428817811731595332435942248729529321235025848315001569110950047969130811149826547337825824843567967056296237396847529720949417354817177603678191277645170755426364831003467864580888698193912595139044841144577731039540626657946408028927737534607156976779734499363159506437842587999271601239664442961841897318194817531004606309839305663128328895755742635560010260906756053372715377617971162099864146637115571436843616844921338172738500506230759090403015688109735990424783037215255852965261895727836505044235120654954755138632910222363874858434531228841827066107592639535985466371508505478250331382143952938148423313663565751264383249451683383574392810894349943667426272109141395066092034296671364206123035665559702673245084237429154147755378776650954141860126100673740276593634954749805957215677097083854825893669228334197304328038277344042234676891112932617325237352841598570532182338065433915416681574515808435637161773943910857643441351421033486406806609273756796274856005183831373507903270347807197488274356693424965927927613773981504364778077688671150780370388842659804949058548200651634308382471200540680694929396307827551803992571415337251906725286249974769585458442612993815070626404438234095613764410968916987110821539936926970974830474569049475978418629856028598489085496726574846484412549624511268874047612774449391388670359316149136319750015271276544254011445740036686946335280228421603860064385583149271277659053424141256791474346375460988491384844713119587055681273201867339126287843273122919512071374757290718971376656645814446815182002215068535045732959287933733774839858760332245564584023131701777561600884034293192700056948170933584075310228787434173479575065640661050950326278977678944737603052164978551340848566404181505379357231939494833055083384835160710211274703619305662784250153783174827277691509392574990191940592579513941482553392586930601478982564907754297467047881212189143561125178620249617131886866862676011405307367428258941775447581499184400586878546706053904353610881024134818330797040893586741388178357290933974803004388929683354883178210313512537711735142884254860256688534333532662534737975326891741157121345359018987483077608728437794616122751469142099958299388366613704670667662320940439671163041440102194514031023219381983310722306139738082658421130067137501614825348550061738372717036742452507883783112228712829746980054691367226246714268553621331999927996268558505288397279175838181635563075746709016681879661056325442977367166810818051426290408101712290672005425704113466236213175487458327896969230886215473701100559343332851317527231855621004114750425249712362371754129783913934927273902011453603865114679549939629418646740580932496284530178550570737566726309368682344872508136255234450546119615260185369047790077849285601409417089933421685611065856398735340131517452319989060423294212443354127630662753821002075722520766500705405790280683039411396109053551912308460167923813138897428156830425396689685824606913460871561021077477976214678494282166188327059496203724052022479107328400166481144302535367236785047843562921836330910911002878283752865303103769374056326056714067941960715788358650728536772282360046181361561275393650711371057754383550447611848261699071689900213195508921397501214698263457342183445083377170817736620209787075779929209993323223671565962016356831717960551110685468831603211746699706699919542023644125142345562266900438510632891849812852938385591042425422308534156079859689692700795085076141659353242877541266024928942716605052174722425562853715294011887485411362036738477391423645824810568540135165539699964468511222592072546659936447527348836870789216104698830477783445082611443776439484464440750579138593286527655508908359265754060339045255403291325108601176882692240789596934446895142767023801296571351983123528388159207499956933251681886052593402678293586810256643354046388605056137939752543906775536260269543475231719403989821536850005856986780075731984549864534110497910686764654765113515242098003713915692182197863915932909771910263690600171519391813399697771660913810257162697468517966188864274214035945967205043507680358383493698115581638458850209825163978913506270482116559668890695268114392427070881000588012123633859926155679065696331813709034744194716778517694033489011517489803493210400954721663277132665077731821956800771578480316427389157877367447970119733807357967055755518941546623422749552975284811918410768154622022799722347449685330799427330048177355771996463159142494096643584586057591027397051052585449576654507597226837813030560938366287488020085743772436461354509588266010526306969964438679801058688391839092745480747286149814386632429433563833460518065400038753739941743895792303810721139807360776325127289055157398060458709243243079399857582807733308963432708178774929814938845015292548905795121119532677050632630757608105685778103998631654898467706214256813451011883642248955371157713816431324356192275043650016302020788643156892602253521899272249769340461895785547896396369285402781592680842210275355113127465465609708169125400393821574957571391388770287707605262097061579754080514877327768519843182094207147003704051580441872628585702748465607165581241894383284849661930629032080871419348425233890787154723058658276820065458707353246532030459721459763741043944285406566629489954515994636259420809733028557387780259637724811359544660460429384284867219003500805164632576257572218382171339403299357335436102960147102284966944711797744981998468808037114076839288969105640390328325250232704059353406419649548431842030849386996249287575135379017520227319092219875901629239612305105956908447705011146598843220879310561997696616826606404109441974221202091520630561092785353267837076604180883413374398490564744193090147433750375868776963134196899985486939657644310178731070734298213909973654762303403892761213540477195166712365160211604626089925330596952844294668198182146564603029721788958553721716132371655773994521198518411179600002261555500625826941370880812484287846227305375478272020727424689310516581599258406571378931004147051913581896561865080933627703845641544723049574671154985396527687373673309421593929481386848616313025200716330327309708003901338810356670852494660864844446739066305834676147165029789090695507006407044552351200067482519807639431929952295237811239430271725552953956944285044765241330067294735831168285143225758287971489042031663294216719606374638734499886974465561372373523335119683027345107853856059275683938844054813012265648788013898415884699394759537534893742406300736931446422068359057463332208385093619461378402978081584708859922926996870575577876753107440027319682176723509292294437178986575759647560576868321104887525760362027629495313835432322854438341035177044553470664743481277067054020844735039869103259083542585364085950627362230033930750744097874024887105489750722558954287772237754833322462148624582608412802074152748070020809970558179953913366615262396444920156402694426110727827086438907783492509167165222672252009226419411905124531502849024492673559961326822171974466369583944777577917967664232151258325842619284718522312050682305852392199486232794172733267036441152678001695489615498544545105614992512439046567332664050405103925468339434974927336971065039997437936013746095465456227996502816143610511080918394538139822539083563823699657515041720993325933056642010963090558406867967057117131080955805250852988784678297826731194089257657350858008537713481870354325795916238807076920829903595903792987563117082690102976542486098962989903322323262153266735458274002263634179991730656617616542457047601543825798007300289235209985654347491364705575124728152987876814066970066388425546606984332809087727511910800417435485204734112587821247724791559679910806241273071804127289668915678994894071004332201962600385063094462215866259163508836810129258773529690964934312720928089691021317052411032481691314779946458155181972713023629602811380667821783435633368969593837881114060752581998759219040474014325417360123840791729751207155287636589066008947309368176142454565185993004547637468960821355383166445357315272493416394689733668518464500635824813489959494547687121070642015878618794421634835673409261287827767404533356799841205588639312136895636005876747413774427793129972817250000242289409036130548080779237560284077178064288494882652000375655594393284090239372610249825749989513508791852656185909686889774426459744059887292704669699817818707898251747421399948223350807264887795461437992402737928068444943894670558523632748469940521536246973620052338563110134753138174318334299996458852904220581144332835737847068882819524862745406790197271779678843996094242870335417783421433417399670424412502354853691383886535654744025878917944474176238756351793511893727459348050364493494969803706430455165054389988680198474668546079320275334979414757338611431950043804558876761713360645366671936454341461475875670790814246032055456208564210051310608346023994294574127185902784105041930484009228427151303681906326195497243814940780142387692687534612441181169786238081990269894398016845119693349170825810278601700987296945442745553860807707113669319193223377594304022028905301638709606633701131655782621857867303580809936934971934706936731658427789015616938874714962081497044655992791466660681066293416046898869639160104145564835463369533246555529827192701684506543471356348006460387925579827576179133537443008318372883749777499808512269153519445871682303431140483457599096315340364407172235765147348924693474942942190040469740834440426208272721729239766954077607642988216680565646175533268501186045562887568615373452011837916456503462844520018055040206743393596176107696856916806733728771170504032172091102470757639031192151419837837656208717046848139649475904501634001088568944509466591742815905970389848652720571362421553718713375328243103432777532526844043150336734117434327787472757181816091806134891934726615326220416064362551255090558917130835021316568440558857399355756381387019005652983195368983809044056309012294913667364233142724524947233640621426872263055121705749557332621932871601782067756797632095921716892838666417354282997737794580514967740983495232318974198754048184668617986531477591578297491649584354843889413698743636960835618092374582637714557042760854415565760840956373280073471040418176708376950446137299458522935993785663299121519962271609592795314360210484981665003468837832287197958626370471301191724934645610759525582654794701408276373785546753622878902112334246252774269816640206433610423265173708268572165386581368210952408342218271621963652495888803988647658078469412357258559510341251849137456973687974582230068745121901479275151778477293484589664568122167774919687626578891352458353572411612450616803670200922041389424301788734919562835191621898645549834164822275007860709499205456551264626998289470621066719389312536727546685804468448754727984208018122178769012538250301351547083570756389157981420413800774555552760965543148407859223125548757832439161796164474851136548149436448391684813587925810190927490953010315099696728096705767509783375837287028106340145199245537834220497331501038346208878402072360720730272434582062290393732417040744062021376092138135180613140474636708863700739459923780934552218052808646863985161661516094830438689317834659279392659744082801196910460436205210600594093112839668724239240011486260943917236076497642019238979459533389561228022569929758630043398478425276400143249306085745675170190552206790221911710433250534284529930197835233600273154883858086834572945503017197140851795460803944432832879223498509484238151253282914060224277365687210739515451592260383045252871228520265517075171840964520199393652763743477020374348766314755126759484199711542404612174815414797711724523244154195303647940510387978748107153173369584501804361529533982964971285099838220774967782464817801668886001312616423609732721922832458041395453241086162365430559591983298122558198541784214951023269050041128558378869257745916840343082596201174145675622501245622069926586542758440185881917125591539300824137919998789344260310224741057561528126541035792296858773325583975649810099525604400677666331300054528625313719120764292308935147308121007750996551522963760231337934787378196702050227048010382371407223549742495425608264971592452881391080162996380135915609777366311271761015200478034955887286603529739852837106833233005680562626714810977724133051274962307625610939088458613784284890836416905747803223334512805263709600079471955397995192158691873093683200134258924869338414549549483359110144187586695158282427861252739953551065004389850056135297123531911308951610813385078100146621457540815770055841520182437527625367093751559135707956234532409242292497690442137184516152300368094566452310615576087473449372405819624772682201366584749361092917565435298879652395555633790182531875260297297509151491230701809638269741360699062493979881582080051127418045727144978945886589112489548328140936142872798042040980438011856106454263058198460560364487883023631063266455876844148052794832319986466167895533844672007726803450692896620635688033684948973463520692135365899987286205272073297869045901325877569170995369503733086082484431719388331892917172532231618351312646507329406353013975957461315637827225759714162750806024914603844504562083116520119562449564533480264948975475826059690031972510181939594814439445836930046772602243192747798805863911426873556888177957747365498198120320835645452334254406224036838632640723630726753690774265032359149184225746350887813904199412344604544660159896754634599406405056340372086949082180543881734111589392571965748370934484814654077888318164159755497312923999066208358523337315677246996037956868429522201514931108836686081659049962884499825124494812255823172260994628768825418346559115450587353056980711319824565288505121512590421421562064126268540381291177059600412043941377129757138095503018428625374757531563772511797333489600405298211003868848939482023939683141445999907510748233650850149443514413078284807750948976671187459081232142429145296373231312787253735418135269939334140432662180304874786375818431864753744700084539703399313313581162301520895322026792784841660380318094017264253791043578765989621836292550960694689520453789710274606278557173228617624692358081641923595635887067544248078888350191765919588169353819691802571449707546396040006399192117717979713393916453093525712735126301852403034572296252491901547487380809084678505290666724016878572548320866664686903545319581671544740565270533065844159231888767722436628460543587887065076720023908987395719757062025241764410082451388153136371907975718960819837568120782406640711183801141308756875830991543396441977043313961387418790614389105207907411900638793996152659572765938249639334558973112948502409839917989729894069368203305367229999407408644553182850652467992927462813362002633668999135419129610658019216376140480687900282206412852969139327982586580924364886179903936157938441731417829281636963370580787219097287841804050013674900123421778462357214820916037038964134391666230767692518323870347562162243499094068344065623102544080670029204434613536960008380841436481915959427613528773039844612995894987868634437493455021299190104730727114999901727552493605810627559575075414368675353414448278217294931606696420512717604778121247644538914230158003495119277325755689903634045932467614957945367014120035308452462571899802036193639586224116075882658271337102211987935750895297317307124345059255976629905141004055980002040993542523741947293846408619674046788409959054436074504970987749439112726309007423283134069098106757915824576302437009042804157485296989561899517166269543266721662209237173742575771021107092514849069684741928108347103095975690007615038957128556408028783169999188011845501529933225889115615845771921931119258923792004184826500444426055774007156748875609338075749239835931123167201654614384553781762399782235935292623265369535219290116365404649577576653021650106674400633981333330993623258864925526115994092875685026514354958073156060901234974992143382558656680335166131536868682025400178043434347491039334677276640265615295780065872827755081134504503708767163077099498013215198054394904289570014724724069611615957166162479623899656219779564874830615709692850956037008428625652180299494516553096666157232551458106370352684044934657274268077939088991757868442385258346476422697064185265574164671162810706752520975414877399754375170673440995438779091622692013359543385122669857954395967738076447602691203286004477143071674294794393366021631212273140384315829840941415364014309811845136471746022067460978585493142728190786385938374592405924659358060163990955465139466196800451289911148359319737637844359901982196359789819838145646615505617393731040739910799329102469635813019712982263377298024786619466467356121495933662726322502300605740294417137278553455297252459641540773067701087170984325915520701860408783305464890688470030003077406476919859014579819401662316505333801153033481727691435688355907137012358449183966842556142035551584452228667695901241952821943764441944265492885653965150063471384369195071334245259252771015995649732401109622736934470899873315084310768885150776036728429467887890795472961420201255684451782217919184230485919087617508074171722076873315160622331119823786803710002549502470505992118528182150181946011637659895559667722031317282240692092784043001439729178374238945207454791322372834522569868297883726973155660202275854062096402704744941618076342615019599944816414876351652651812517140089347835507126652894356009115976687848865037457595783790351514665853478562704620312290608787696741654076137713923901862073364319364376252457028789428266492579978263424884779150754347518394803323568409096487984348332124379767018503556051749767864799321678234440340003179976290688346822235042330179106653487361264187444121686065410079455201453435994430689996342300124534204137181311164138231070453820486094509696458322564655018929942192918008596007666734020705948508986373757654026708969342423409850342819484760746610262786988569251060680009514299580340309009663544205203004995120762613316848103342632847239425710121675077674268289704933530344039783656041259028780946854990456488543016292484332557826703739399235813264419699822022214796255228456408265390551049718206150822512840483753591112806400243025807992623701739435573885484182770786684537655891507604174116556374630433820089430600128759207394538244267642240842945526824690037392530972148409971449970809510523279855330385511042500144373449075967383724148784896569053425086677440678316981321504960449962014314276006488484654517658366446234657873233838782639411650359705572085010734876937394487863260387455615434919682749224981530450627641796766177814755165679628250409531009567225888683175289877221085975282781964305468044401728125635756666886050907728819280969542369852241635976522002956135390729198936841692334733648328805496091467952086564617079697504634470462235901245895696010808631714605761672167838025449393339181896029771932561831180747568509489948924015197867728949912261949153124226323765630626628458723222591846113890451784511904847588690479438869319020077125947795967088941969593011765791102434684190717176483098725707689657241342229906273641301846608439617676459789246335273085721151781732885491284984374473616099285232660827586727990810654128681777596338105564741040245023890917172584598957768702030903336809686955965327534413552940325794746648531206276684503625740827894887806128589739948522644453677703598459937627089987096185303753422763300340278541737239369817632831690466034397759503176197247102470978460937849061112921853932325066223434089734928685833371167493292339544703607738746596673277778645703984351039235350685544828600050390645785522874255020105524179784442158495629145064516381473675166128964524053866445007056345740632497199861729933761160136692564654254754374414171738808112280095444532635851603594363626439872934826212958539756866387063615370130424381190043106107536994224963202535699233546358711353588146213187217829766639319458351082609773591129526942498784796789159232685160886854881536687453398448630567625603245519956405918361134191599192304331529647725722951071231613808886061064393056737304781642077631529570191354903387844180442252399093418824499307521529793872591143938584850250561459270236709360594454605199145085162337434407899818647360642708757729093095385682735583452047210287870621783829411614319250239822965306977233977361962514226664298381789559406213406016267844365375087916035123260779965950117881997951572975707126059506803034752174400120102020340929485690273574310210832673255811702216820118938500034502640707087034474684686037259730516095724412909116464084001031437664800399502742152592986801696893880458110622526243024787699766371422174871793994131697126609052020967037132825632855152553977336556226073995020085873038994781656650855618396337683662304684931689873209137759968416716459037388979364249660042052931263317326180526885463737728030677519578006349982972730267424603758379257941251698597184527728189950567877772704660732843208293161861281350223253261664315899493111541556453908490698391539474541989999039380847653952599492598404643288959959882258231915859244065570046501343192602877262754569755466763812617864529431272419046751875056949755910742994330255351194974790557324442341373551398419011235242584157581268888508665804349158377986237467249672634650608402447641143014639228565145759149679585078395616070477732283636939228688324102534294684117650511274952027169802942063381751065901358596752656296836285402961077263552369298826077839888598541604402557314999538817059654413522050518823303037118951562657550535502084762951508329923591143166109213192900332039491471441458397997734720782086433389171830890384495928716945121381171384352561947451067213654805316147522715217922005618044719897151058152153992201205924680012500675796031900602085409056810702429587613350200025610113754058312156979889229241656704815310955766221926658052367942925991281186164529190621609584882262010325843466842320623501199816904573703813718707364778035932583182709814138903183816248038085053298569060492582944357029879263461272670215706737403410050230753488103295254775748969165444234917252608493456750612337945450463292683730569831976595313434168310465906539805454271888401250544800519733074748712877385565907498028189259444967631301327950767172233868709677138724815853537032533985016290643232027813534337244359627308853488394138706781324295555861257590511016976742430567864000939373800348610449844930902405928285822414284135094279051741851852358965607213499903848768668248663817400536133370357178381574045471220393233757471546452310611316023620289557518206863193384532255912894872634985656932607419318501447882435292630231408906572485502065948690031023582012026930919082093264555073615255121348647608785997043626910964590003676699029955707526858482455089429200491921314343021319585383064883858677098749680898346069361649748575368531946894167851888089546999857144384095546327148735749635097562714624114738093574389071899443150029896456848133458383959988280439382355160868194998561255068876905354363019143986661720489360015558854341956238966532391556939098381786388137912264221446321935680609383041265949657422081053527116534989061861523515429645041812938873784088113891560814491178833983562512785202705402882812254383726313611822941533928788475856830599846516602608228390232906008261329284876620517595253951856534919254461329159765866012426741660146791511888224471104127890515656799506585729405963262802941693076519906931187372417498929161909371294463323517305665477725262076995709602992137615188842448072824025788189725916719818876257011216224544490642904018023460319551115014011030175479568324881586385509278536830159057213219874628999335757900184643342599199922524424876211385751395617848971863118312111609362319661443262030529768938486620211007707853714713612211908321838565865312344422952367541655237754500111960012628691924686240572166667796043543514394011143015365736083523755508259593044166644777349679189557170949598442324310677776267190716467286494690507966477843271066514350830659431350013796182986925733473532860082893859441697179008173547202630354251351264445377386126891633400799834756365695850923341966146030261279231203746246794450722751032358358813308380936365448778301813468300271220222158353088668436049355097315393500937790117000554267359272332655854258227019222104032778315351115091267862467443086340743848737405375948009535175177654471866656843772048998624820745503428759255857374442268177428191480615685530960554604002312529655119664268631278306388544815727954546587363161455976411204585869564499162968812087860965628519328064575506636807232840599673396548283176115796351949440054603590186509722483658115837052117799576068284766014936776298059233371771516556842590019928941238693727225058661236756333193815379511858522168745451004829309494461023517953542820812031808342256449844410378800576865715794717824724114200955558529620703794372667724164848954878228223689652125891835146969765567875706067067005453015515828312721239376268073537493264541763796870931646637097544954589626021921794965440473240055195065663453989916030196862051388103528125438365723008426206179343577244287139451034153487033520742183869339081451040409941372905321602856591067937595076973164206374609538873030518532591935317318001482423853442731894645439775539882623932725476032987860886018917415017822144062395814830277109693839524317420841880776265193637416863426052010168779848196946481626196993911937960185070724789065530629414687956022705136248458868525807771037021995556238882309504270292565902947118986330548788640813435259703739056950620021757191329836715187024687851933294163911829970463922248818694612493629773311505188437714063572912149490173856647608739736669509250032726551768005333191610658652700518864902895577059375765822190535356725056980700482988091633851464592637964936333103026258609957721801767589302723846247931075737960643546385836918272110749533688562015422104439029622564973178848260399945165533840902627473561922742475902854587556467517872189887885300228441040597906260998997573314999059609853750695518708285926022173227773157147975766142892432808025243559944964394005207129787514377818392137046308848039355943072384518537068351647819286562444818345967155094925011807175523487489485645062843142757113348467739507564905445408644189936416385006805647431353879036119307107272558049811051438224908198824602878961241232162734552985145264914549673704977383929376928309731575472455963838342690421128717032681775038983717537496675690597615278872303523876746147621541166911828564874436367179401700012729227558868413556186750328463164564573109861283632813230428859958383333703675504531616596715538251083146640550987372487405820529924429414087280752218281049668005586324815843510435003991170446109830810821064098678446731964661158273790365828659480369839060220053246833244248013270945425730723102797702011473119017373535063567349823516539747495110915018533489584042881863268703879960884407284524902470571642288836439362328812538008922767322402830904213301117958048034047283842897039216470565484290409175480764414071422000765042161646050388462118804224122952343678867485275470479710737020939256067685316009121326572364922874456818995910783302977117882154177182527794458928504955677468746682540798228666149668107053831432337233074611409251629478762935663543057617078172873284715237677149185233295578545793783951805227779883082394806604924840661614252072467053051642434720220630325889748149229477539612177262440197361145642037341771457145651158762552313900122067569213333722670123941086453543409948570154395627115886542712080881613802605732742186729171210424438143932350760630591565317866487262857880738745312654040131330776965772943153522242173026253638546154905719481063243073197203071692229932294088415884101387001486110934399000705989584685167606424911694583127861610316675002882071283898656107357240201354618387220026662846839430329402278261655776189412480463094004039558993729611723783233673223766008866658055141781631285282509439091026540965611279544877825648562849156533250009895833558609518624832132052537672481023780743018894657507517179813829141018681479642153857802844452014711815165529240478674564189827887232158372581481651498825015580863519211295760467242375214281402035590900987904444722721134960720031827426299663753892083901816282788524191002546343434208970424644387430537118737276638563407126618900426762526113943035569366108115009508546795875599822150860022168114218108127124616631748981524423025233792803324981999064417555974258310337541604658910321634790136542349677661872732827261397609304944650819250019673571254421061875906610007197756541573609887926732548336671887387958941317521101406393263945804492378353747313505723636871321246985683059769639082715565378797083299802930606801719178213067772937790454725991786891683506589066174973700102825949980597314289673365936989328966713101597570760843710160872094440539140238089611218616146266031150375671519311358991655619806981791133247396888729236329119667808714839262711207638457083103837662745136645339933320676320421482030667657368750791265261383888629458713723079878199847663488678089978876570185952701126727798334674792743813479039195790935271920183375763846234619905087377443852023777806992862190441042218266338307390638523370861439733702640954699577564746371944630779027558763791233081839617315491805984923013519348368101899215378095746926553107916573512242614578754196837901367685629116518786231254147657538161978758815208469478467005341764718122371376754882675679805115324294212390424045519505015470059876352889070571703662994748533315950275531915117604277095741700077341436530603224437693556554437718108562572083770209706802024022527091806296151106109681306430260499760314721081497053287246062300689432533066996916383961127800079683175078161626603603430370277053734555473251798674078900635793964875018684377261720742732039035869557333525718988399027346701709121732945605837821277303512809449826031037999974458810412908621920633937871759288933736286948671457585297912532787712987858283934732323388100588316773315120816047556309679204629196425196047860854368030685851841585209158540827137461803705542186353357346772244700453049154027191266382448391471593318436205505114690462435324154719934946279635291136860658501873351187123335209140046166884631000030699141769990398459775694483090004464605916898370364535329259967882603594716509402429976387825168297537486620015543264841047330683380418708483980451813477330630762580941222457411822668272585665353756550528348098848713227513447054216312614649200616401140608983352051145145284239465578363559506178530202531596335202459697014320981167830335891413761773925019499005234949154811831784677123851897387020881150725245590004179167093350072677647528107176366077439531602918216231687353874026385724942025784772261517020522274930558988905600792176261176275358249233151084809855839036818090444671857914164146100968246289662566658037069848268505439323680671138667219721418393610813410184932203711536928560989782575719329638761747638366609978520336981454901223742093519666380355203025998895070727016930468352611060519599093404152594917961606791122527089110251092007283638224734791890674305156910501651711137024365694873422648800283246188751776461256449121304555711387846207091723995064147614479467446855028582992080208778952289251393436975544726230153280975498103838226014491904581442239797185919050822349626954244522169781827219250686153671480526499930414722729445786409226410749241368378102050462500429663628525454372077518980499086347922471009050875778581860186021724017144468996720347910882585448818730613409912347987686747482194790413830038047722289364562817331746859734024365817439441403256542649117836131184850381732247158715441806512693322382498817809633498228726430462841075304887387470493079967961373044288843908592193838651159095645965732567753067380932594805358144451124515155943516760766408360017236519714724011473101342051299043345929259090452692229056582449371524890323168830183506452784671314302090205763259453615616035384654255495523251055469804004315367783251834998341402486888194232476629573511081369370450060175911836502672777752784209580498206578212951745784326443721173577721641038107333941248846540972620803751251353023272021461926686741237664493072889508997713890319462266916982450163386181221169426461452845905521509790967938097682278374910904774669444228611565804913395932684898005221657184785612002396168296040209864410257028985142777987345191186818744897240910853486104666504901962891636793357359140597749281827355655322298926631919741166862955084784299958062971067376739210464738428412402815758404842876340904720700437098117406044531642675241873457897324489649981367930055199719402697373700737625990105567449452348283671612173573320114793513355097668543725154886258003012947916994276659780219495036911590436577670403136970722073131286812625656077905434484243044224047618089499093777611509923170447563665624494714648168509770175737137269972340425765944177321890898782849469038368858634294305650533813771016318338334125952529184127496669437535943718688952724314776613549983886642009259460688791853753599347765841317965525556499150801375324185383476621207406766806180425966127564052663228036951923035574580310701594986310527211515972618968707854638655727880042478824214686090928764928936379277921890628647000515477042063169185876859849706886836657096772413937100864232319388647541993932285191291015986293727224448119158818068122740608536962802106920125423056413864156402361186843929606778759657356650596823123172483068306848745001768776602930760030043199131996648455146174441830879415475347632185407532099610268323080170926438586358399540612910389983955057918110051494172525786185496283106806660030815983703119610318485617560548146581005738743219013330872074616191230762752924381169911210710972767641356319254801113921207559320493223841830009789231525170665649460906479206591156221556333701607346780779584367965643230466318837264752841077049769434651234931128740104454736085340074079078043012263524125426607234381755101666886949927852894038412685577916038572313297790867506577448231738538864334476788127805483814674512646664154258140039828513379786150374524404512233256632218601360023836576239023731287862372283669391663637242379423379201463098184141104546565953000535404972208296890777276630879489533635689542299240841331188630675455572349758526518914566556312087081080422876410646724500881050013615437661375320004853975275277936208915020497895611584807778407263712391568415895093276831412144850594492662159200061725135727633889380805430423763586152143821568145310887855635465407480477250652248121874152248783690555653975746783622699586199377324221113836794042479297646359698444600359119445521202485270546585996378325302643838937229615540890334053460906264168626730277202966178375354756967337045480105050264123159229232220400616386131251188770426465779918261347993849646825670987604515728523546034105139640008361898791454082560021268613718830077925169589222002052857469048251592985328644801393503684900039897570844044970171311874351425506119986462116600405894543298497220438364976035443263043395736764152734669458865992071853177711505124890133101174405130380517209579686413647024053436961354260477556360228734461135892618815821727679528656547822208184114300267591791273587395909056411325687286833955729008939808116420048976994488816465381799948579762912708816339878622284248201143545754637893017410563080144866480553512231759348441882098570257495908374689893751510242848154464246181835645318355203515307695549439782523082708040297940259935890466080718078589535561159006706135533922925184145494956842641936342615213925060011581540092588765961441911789587724788862094376412425841786705201308056791943345191363047735730545304100401042695111219112136460782792374161517348570798723648742699411502517742000054822036344610353515444728557024537596064981772873358514502478269172450588705836577234091783215534420082824642371090093210125538892791922076869929902539577760938508728831199213331468317975843735709886391018866936046885223657986061236943694733628899866323242573766815834552350528467197705951346547296254780830440327413419423936819384772910355174178959270724487682932432988178090890571457153507439679709777163689849918483194134191730247076317310878228772059299321836065504047805001251397174789354751329652135090584715701708380474885878667697883251535432553834471920179822408479708199729683441478690499547017772299337162312333729918058161506697747889860967645895788230456875368202523681690549209445184601353015280456600676971144005332503103305870474943722720154103809008195861367062415892534840069144457181722582578055988481655038488038960172497338069132890107051069628170347340945709183149749181583031308767385112645825712675127526640264246906500796751415145973546327564812469944251020675424554582610564095919967420588434830605062135418740586450362789948221456402751784097587849197042796420402321947193318806702492881580953600961619021807639998070406792949457512441343779673777613969850342260189109225585030091381220716481442335327828276013097110964712946763417505308913224693961716995062441989295552394736015930183940866822377275699694640243630051199600240617622194858085713248960872544820678994255210864085457987391304807484412415967319760867971021148200727102577470721180805993323128847771086847909971223553962644321680549582497455671098382061508704230128584167237138134376202274474831885345261765408887369155419045750288560975267810828992286400698352702287697438350872099904643402706785157812805609415566762583690432700912716851276944232191851594335735541355895950683081214166821219190796894693695237037703401172320227682501623365585576838431929759312238134500699667986676523223202176899035547721432469424397805867859002181002529225411828051623798709971699258427047457260724004075908611944176381164086492398523830834138956641561447729273098058820080915649256133316375621966916916764566502743789755606504554919979596325384484051566745060683994578600658052982175870480233372137985487472605322148084475061710608499880393402032942500679852370806854559660000495173115118556698598671974899608026120061719872584949780007681716793216206961154710353074358230341161485773160082139307616747213062343224112452555602920142518347661809324840503431821851092909622248087205020896629332388368024247585761806991685273319156921294855404840984084250016921425190319279005738712731460528378919046290395243623244862796525942594858382177138861829264772946413680675043224375611556074496433532618822225632285860640740269044535109970647091173801078168654400813472277327994902800878034267909373972528517506968107995579831905675951691358959503309739575505509453751473118175556792652829851746197517856489257542222822580712533899530298821755955905711472421896861658991641230482862451411771034450423400370999597451960822403744849976715816322960829584333389828385357736656545845315842699321480405461598902758171306449949598431514982914467128477128209599977842035658512304384798140250659867718973422330414043929909307358533765061023650308372365800836890309705262160429590743046807781279901990107324325375851145824063298262461488640062099926601489344507352521604139246758384373185491381767213853813619507351142911803743994701279686424502133332745089723433740868199105426540907070295153591080142182480136728412072022465008981212396968205400568968858993266593834793378656545228733154242484465190689899443218481084275860812057218403272268086647610828337299506664474081389026175447577814841553783963031539900248724932727612094178121268340622697509545281525788284833629103633096851977681554361364396673066610810820464735111815238079966021213638823982388990005035774678292408070234482127806314856025823397108783781317990564730356986464645706102751459789654413727350812100489450591458300541149234472529630634293255308817292374339789669181814120199335178035845310129831299670738200507325747873054564551732642696029229980945732826921890549924101786342466749912319597310413104446308540210126431480952267358958364685912423353971852916199550653868868562426253747555857244606310069533972266423383845568238044632049604631425031642165866517632753663726166301737493888853589021441899899174862564699190149314051021778066049307110163687366967794355314621062695427618196528952995293955016611912789457099932652729514191613852819045642813410900207855940090328549520282882419823535598792586682088739812768234611213189118640570657209580679865129684065051882188182479894597369670815525085811136297311292590754167042427385609076714860364170284213520635792729602732248534971880436211570175093959728611582444209124811446061405701523998577065417088781322367201662126064027601106196477520680108424910279067334604258708110132956629834106738162885148727218056513104754795141084419062893926675894648376016366098564913831337043781455351353127454908482101618858869492438581220476056684385980825998780449195449698042631374966018195975836137648647726768702842927072528549292201537207377477211962411590329125406638066855558340319370496109948321711647778545457734273096361010047237802567327548944428086579544703770321654767870819399491446057238771711064685211015139955822908668017054241183296009169436998295774012500265838516600915840193220659590791085967004481416227364078275571405202692075801810828395056452377931456613866811701671441105640536962078866758467217793930009502217797663296356019302219617348908031232539967252590432561072937331130683666410226895082540631734079249382048942913219284693775501474719800031201746974725675602793202988820594165172034663935248903325448334344262749774421485448476588597219088360417321790886855074542716993615022177870714198130808938174297488883868489819221708375722345336902742712710038134790884754487649749550069992720278704750744642924454864124884488943496445704662859282074650632058811550504740006814296024645272739172541767467142962116343913861376945401884927553396821422883038642786524115077534691569182478464530775632724499419689383510368006739518258185557337796308347144128365920420942498141319519392590206193425441462549923227154701889789121501752706825879813338926562291117549805880820210534441729480711934718133980661605593630284905076219205283154862372645267109357920401350922085041801722175984348506685800610508515503042479670599947671656259642616861059991610422961191592973433106202417386471233870887242243922183630967973310321049779034434689257373731597128060082264545607948872883763353455483807527301489798087757641014769136747689016272533602174790575690959568682967520201873596646432229751158679223336934371533239695818674948966644007440723269187178747196401529142449355594094755360100445704752099797970890906333295318390324305634920423073380236745811666045646981744928989455215110614568906896311939070662681845698130259094616517613116723897276554098132758182668948687888348473430328896304990359171344538626617881505886052875143848874783751391087765296827477246246236685303042280763132699140080972957977312627460606184234389886546550020758116689501253636108506666672888269309756262717819548307448744179478821550914582444480093589070099457227436714564081896104364665555375471078774895897919007616550081619713555476962003342963138710184563048648460798913653644903445659072318426909301336904784358588816996064276173262038062033206931525592612666251136880366436518433848531658746325644428253480016417684914518705929265220989535010384008309474444004782597363746753779034300747250539768960726547030864909211224071798328606230621536916915660628017755624753959783153827283173899902099440801989157155883958241266368408559111641991206731953344385342003596588667451461801442081310018200603652947596545517327694710876859775997150190271986859082406526163031549294663799814548102743549732701110751339442972470588317924280063723901389968169854335408444709647941129259194483708995764190201522385527216441154051959742447825098159115408459212651300506919856467447606924560604046240526386578360539031152637848823131630518831910317846528457284573862193990784166234447523663650413359044073692325154590551039984626459349104471098273373781962737231930556869909268043771678029679262722649521783560693401200606103732715406706370747090203254272953562879393680729125983954317989526007374167200360694798294751502787504838639498203599095083209604298443940445585425792115114090321167499197321813169627758876157368902833071234954852283795328199740263051568060057782653799523054454571819270967970794923351392262280263765593228376497407125269529126816888099465473168093257626110427339549188546509771523078871950919186909923623688457450600840179610651960636982742703075312460037544387680684580804200972411981311375199351485593954049405181714600281868358863815949355218341360990854384536686658937051196023576768156662709273407481801161036800450572406447163774688118450276709203523772865144298607899601324897448457567247844895654319422813623719099515416279426150476914970286348240933037642803307220649668397260872044295877132886203284407996100643789457775230966482807055844568028270085449277811834578364725792666435407209459822938197900716725772851048173928625631827444827479090534900095099392020971771976373245437032118443398867867939345309309386425271254424724036514278968446060509643621900905084986229223746730563189565523619742168284457890510275974792771784053751736631480992104416434920944094361446625712214056263643134178244106910533767766073033551851901944620867567302627683314727426706045144840264377907721753590704449307604890949788050563007235444454666304120565619928348789555579344483101840832159720980853891292158933303343319728655681325590019611581410322616190905720582725286719973192504649225265632967832855144303463828850027278223004712646017922054426962733323536752180963702781875680719936107724935645933303373758935953977858007517567144255335257879971352602767810596005067860759237244079921243729042612982777856819574804974519693189244279655238952850791157376471428708373178333888230148071094647795249410588759273017506906014482251096169472199122659557156478381125969513892655887411628153570755904605092889690890782242711723498802714876661473517047282031724365409687635812010479121694168930297957526986437625305739504946639860250729069464057377060706298849586123950856171632745365199384654751487186414908572556445270390300187231094016914513725362034112340200747455918494921334279785101443354755204105703422950259460091080422586915471946093787613679284185218559172485429004264568063723743343405331811427918148652018027795821788477903003014381610361631714722485970555504141998385278673626736067585959743849877479403763687384362723102545410983547863095233709956374959555337037398901482273233484058322510713042187626315895006996248478092698889695967374085177395556349977113943513875714467699846054714185284775843427220796969164506559375490555518205773575508843557899856453900685048420443029375435933173084124297916361827315272007384706359297511035886998637585992744207268363557073172005316316003160198105367395899307518869953031401893620437358324681796181835702501532586481683624204265650703646140384330208817684495648056601907664278871104128893569548878732451423762608509213220990939384425769027708574226355660372952597596598906906684602985676498735762203200448001285950581176587116677267857506532706330619533387082983235848882118096570956177920419471161001078503106527851468343435505009147107915403775748517888373204241165460213146198753245213142756662659492598490906154742848297886702287185984642664032959523286446115835974750028147409913312644238345485135942023003276679303821363558719660632599637278423768922745327198664997887679153879999866359757124813497721113056687941938826268114205563395047018164212533817799790094069166935200002478194607309990765162488962287926493705770505888410485146212041533901712444242330994358473818029444441149111864848746834913270617160664312268167229780099451421275238732177526635039793878030890504180334681867887510700778206198318479297355136076966300102286891935780933681177631819161654002763068846632812388007063510920937731517323909610988906306728033785467290727898940836254026466596584762190666503219689400538623583439586052241892562452251161600665485738174144091411147469553885398496241329056892041208456109723874950905402115929369360088876775160056394883964911039704985810630500421231556669310350480379136086565600729934058035535281780327007732669275154863640062938649840809114635288739182222577173963348684785721554565500265846918949167497627276772068780172387393477966045377587746936750930132809508292130737360638962257187445927493130532686522069455302515020288550733618490364381159924126625990034532043282100994663736741496954688761518308001563995784358614783534528518323336084030961602501653287158369475367563318056866477839057233679119659072966469883416673359752372485501896016785330085003674000838174166399475205354669929800225182086011890652752597319175733842855494895785951276806574679764440448294084025877925393147808259010932782646435877327854617121481512125367414553480463379189687304852299903996374341030074940584535929785198858402648072800989764565578129353933932135617923538680924668836816472774473761004854852588794402046662393605298815739013378519406961731912840023537936625704717730334799874299680166594045462556362284482110437925459466186683942323751186982373606993168072493067917525690103368178715616908184980541921182516734045189468312559199985166937117508407043651449565047812219633460231003954684172133214013769294135092177143034443559877030871479580231124388667949420769820602845786002862734229824539708509023835537360193099488022194666151169506879751823150184565191893841600058237341179195603632199415825583404497878696623902580055992381751063924420218665924448949481787873335931164043711008580077402023446092304478138393378292102248530166105373487657987674300580105355929049999248617185635569151995803435926964491724079525381486511197181080446265963296969542581729750617947159370683533545360743084850427460567210418788622882375946977023449812233800457472040766880173261622375665718192398164067811185580791347870318552260414770055477644721227339477523323574205441255369020153341368470511668506404682637377625934600623957457920113287110660399944540638527634595955360055343159490264622096132956910664501304054930132180493610304007507338453704931652963437518767578822172121565656514434673372276922266307312694766815795595577990918958940298586778352261566139336339328012498489410916772744283851588955120855259229003459736503523627704124636742007248746575709635661617720488642200122171336882400014017761995699881963936093949938594609157000741233891432924714597181161897961714312090471482992518364478682625803398918706116079384878019331729501719955608964715955353745360814220970916536101680646572103277977621806090755595070920809702110767901229662323597702891781550198400508417545137813031295222814913271188167396681384582752783583790995309974570404029809856100338784991924879515449882114064552533357101495588497337156538006179283067423461687570081504186340688646763011277600362976430863983686453557435573728356942340467685505951304012566906338104961804142977554772263787651427325773217567138515089860301694246874242764875743083459116906423295566556194256300551278850131463405102760794712812891253430912499598739105926885309614269157175810928666665369309583010210459505462032710191752729727899582522499504624517979404873922110867939495292898313711475477946071865097154368486984572674059012402580642365798408820997719743450070719018891805481196562658915329338581679422371710645152384585911087601443309631102037411018386305105347200703908587402445188481177982424018583967942144034634224129055848531638797710430172139572994861359127054155339426609900779346929033736556179808813149557792576293154853358616664439909764456353825600710850290896101741779153650350961606074054389567246891749605679294598948216831982398888172873831365830381886639152611238745391608137632377632596637129692136858445700931236514795477338244700343307423710807127648570915515551940203848311201649912733711662412621692288789776056003444217809311747884171735020367290697763744841332792173385998789591963616089889456807207698970081454000409296467291495883645386100814596156253765831005299376975742397726993591372315931899043508363728005773519333423478490967741342479785155710014211057222954696481484521769591107960266525121694178108308353123718759507537566709725011534831226418823302011017448239394445752932749453676751061918248634952164682648029576307283253307176612659520434863232208865664822183680482559543412471111957677450202219045577458729995734707779275605983857434562143818854905428867919068621658450050062012729324102018296940747040693219842184648774460823896434419272008665110222800284271348615915010771913150956936390339764544967521453810244451821231789708919487512697921824117694873296833749340583320109377381121421730935813483991141577109593671998864292949621226739901697959952063112132017774409930704888700306492780001956726756563459396099657510018343684064117870454754427276188242722758534058357587870931866512725963736302099856105726913237748717946358264417255640610386968240848183384876254412612632415121602920263646480797972013844359171508394482340053296007755258603002245124242058406348250778185928244811824962896258699842138943193498715313712067990353897282872122720864179464006212943023375811010383178869798270822182046172780663210273467910258779337088746444497146847259568422574141658830245459798870408520016161828662826332785193405928193677310266740732339520333189360615390039533193703027067771063446227973655707753117324941153010628988968613724687337326307290856130396760964351474241879865032196039988418591802403119339207533255307952028780483779538712696982122580750908844876986749181028746217312097506817702407139784026247779676084995175225187870375780959406171579085267667466311950332015444349260098253385862117495370266919484303697785099471023940634832885145214335313605036705760079868582823297092570096397532472791036494516838925664583210411598900696133923394944256064915495233169778418464407524304801521679454193178797393198267941953359202233845196596681907524762599443369577743032855609210788052036084959299416033457231687322811037528539367605572644383414098735619451873931750351099469680571091089860497792258077932881310438579201292788240734131687817328300469058596107873680608065390638204962202112872388391813662555961745819548753851434472548266779971138919444175499366818402559712664171272911051350956440717919676539514233319439435578133380391816348729550965750480929227535787923469673685733137847713485068303119415297904895793649302152144770845766486980139683081030605814417622700566396794378047537789646777616907442343777513054481704825076257831989090929692510559531005741919214822523684950499087830109160381478235721004934126562627255444410773413299693294361680659613429338898238232995380297920674999132422399179351492023165660728201153111568734423790771907079098484304525985192187458521036292578551292008504831874868090003705482921041240021960342331891601795850998668380125871962491258007027982806463735773490585622919353073355829039698195981981124948794504521258441908632423456461394198402060607384513443439309429157761008317239935693169531708622345639201585691132409803806956330269974155353846680478423338694031360275629093137100889976405292783498821957409703693353455333342376211567682799649396751768717528748858289388731057655576600955096150419809566793691161131755085986445300285384282014766692370378370098721509635088097094743972408133897793793632202097374981014954118756250472315070774007315482687875763404162291521653063856696617029524974023708863259018705847038261842781399129224139275908205512233425479872818846872947542671342701182561880635289675987743950323113581669092771050372263823779032597319891145426753050905626990632702271687167034299286797106791406277274260758189169249721957428181033350602709382353300861590666901044005850235482612934954548329441532937054619634809902446807741814051703953314317411583221723542271060940115918142513658913152011421517457939268600296433945289773351349652474843904428363069916989632545739976754520399649040782399559633658388165115646105831775066036044126818877608159315822330670226223350184322902450515940693336368836400376879264171029113716198131384108849135608997088893790261311438946853259315031851269170041647831722061095826641417257783797954732548848491292309595288084418755247271229084436904768929104586019797430034128962989127794561802956182697679233772720314600330810682156031580237282190131730935286247169180274182442953611110163705034533256632835275117128834322887193754952293631097657075118291344680724564274099208235168776527516598041564118987683443594365960732337212928819882101591907237374499491135957750932814392771674728560711351436855268848742314511473178861001735077338435757144542850501087511238986985066916110801305388067981229106675792640167090265031689060707901477567347081192091958300945727921761609283799519567116362283189332806123960473982189552255161717870412346103327007782607245828883011883331337616571903915422544091877879548177198330179992009327902876383173119786668804908912944690547153771532336698624089282654974813304796574787536737821564178500518822358080501999469953560369381702354669343670350661383039521319787517209500294420413113345439613824612945000033334039513654218297040852378896152879086500745234364209644478977555609170024697333791213982456767856971578332212844205184989245643442420480301034720476332038368077000327985207715442059814721617430009186515267564892770807959522660292467282772037177536656772561664435418201541849102255258929123772460108010076212074845554164649883231104042039713799949390887796845279394157711713043134606322988266134814199945175683678923725377987464201548076090843872282099286394059562592229578646766865282871218578020256686020642466976881706904310837817592958107642382688657253486833167609711404818601023345629608413303696943720541238375369525626007223434425795222515763300737577882248570482822620992838854646042948045550294415822697714024072049989048329778509509606593536380639222989788232641559368899440033545571753021414367407524443691066680504973753700453664902833105186190070575369795683875534720087195408443623624571785809617262887946251506078467301248790123091889184624055534069959572927996134417107071272416190235140126687798048003863208011370701807836543886332569312963455704459235813309546326279275093603982737170090020786609774932460703319894503022297697792595447009972925417090666539947197165100209352258841207515265039993514552589781735938012360546410701438362545298615952621571509499987668233219311266301630506925246967430233488593656633968025902185775038618698184443591984533146125918600265474144748360430979962342288030760304889025668169298520136655782182527804457515145810513998322542762608367958138863314907542827147511735439986087775284730687295315368245129813594082398233271388796168888813413295305006558183493593558778997626161354516013682128766325014223810282564401623395512592487329516595451765973600915286519487103560111628951678497198655494615546547413636913011960961117325470535289459151669953967613992124620058872126050160832583316434869189498103796746323257909813103266308258127376191336833485627301387220372681593369706760498965614467160308006147201142072633709054272872012330549781962679380207934995448290650720559317618104647730471481871503847832051743395336794253276129123455985025713534090581069942391926473288441175596652371539373420071417223954810977542932004232900219933701261560914591922177336263550188813098874233045938297810428741814839633602739538083355358045082736556112662529029687844825206639391561437627617991379628045664513980826906022111514064104475801701613825292530789572851121517191718831943094532572184532165683684406956259895339992903855499333132237475794615064888593886399828439386758116324967291250933473318162285947997372528044499253814519326961112785435168979675788823136118854289632085739633619689503950219965664912658762375051067876113694578630751249799483089923438896017156868521071756614846709476663978766782416893910810730473481684584121613085992244124152741071341865001363674221824568819326566199296414960445195174968725315641365559987066908327178693716383366285681306192240632673656020582976917527851513040688041269932083456997878885500406334938138430099590337128902882689966048901354046500517447343356982681168400328771943311868792793271579402720334476539340910766473677390174099757413097726552149863541239943156343325207700666382777640202936486265429655742819840623421325220846580453325822364501290160107515262422717800200262672282170455534059322135159766970843847858884525056985396719066527104964245725126209721708331584630881898204728001081513360157708034674182814107925198097631970436379895152843946152514999767933046743169374946531605532654174526733632182882750625437536135089410445584653264546560918028301673771416373073288409275751516509975765828780584840793400992349737745074535986483093919822646848160246391133592710143876512912056786436397220157400016749429823695228667150783035640544591839016053725752813773699216719935175832655738633531798539162767863907130954166233600883740005721546715359774729742119853345313710870851213781850257087598064409318011209781019104599891343739561771722434507842041643660657644385165308243353624113662433600462402108474768364695003654346946134524416764056156857418769174184745408165268255133428702997288875262268916692964629201847284280906965409273062086016712992107772293093849528787005188818574660704936131168722212224234241532149124713983547408366396969205271335304719380680716074891931435724902863136247830429393558744211284661511872132089614862334477456985072584414395404681447251954161930142007338865870333372376185706983273188814607246632973005858562036721748977801024747709023733182252724124960337239482029037517552539546070978404264262889070938198546667667465273022939586341178956211169010465276377850531048140078985404908331239447115796769029215339594610405387380066566997380554755783319092605230048646902520212892490135360643221306501842318416545255844737614875525479024396920738325860750613444467380854712785407170172368547723353364483480029896851660454775876929265857165236352127362352435789049769922681302900073203982609443102980662671697849604331260711999352392842427783945449883214481509676190061816305804081547253589582115269534609577056745594173541905802392228255654787451886033446272703773603513628931571517455749605221245015664644908348394292683999394616925739659039891552480432935028635688179259914415522255252893673326799356559944441104813658271631237553364937236892156461977599312937868859105573016218270098391498079864752780156544012602491175771014422536911353015469464827970561304431436102175848234136059920827764192791539170151141287270496163905523635935973010859147738126238080584472566946058014817186193596667179990050408793574505386955445955450389932189759817703035708612625715041855553015193945732495860033798072868577871286857009757334671570595685979125985296875430057613689242489982510940300708438785653720375538422144332855502700843036574084560951610284462766005425618059373223830055821338846456204876849166287748836239644354463192242697468170809332663234038560964025295616688938793375031132944894702699572636994502599988635449774116958822308818044855607153380446887557700596854589043706332774611904615561393255104362087195545810587210131661909180147653686727805161794232132649179994474009680635016241607596175588462886967196881801150615929359040035035197991911262532450838423366911831640173641313964647899801856618443919792032426406230094668210906448816780745498284923115323462661082393723770433619327636463853237320907665847786678733831410876736574649076716479827472244100046609438922786486878021007134271604155185853076419995956939548925634774919928021571688754942592747512480548069245792554447157365922284549984994909506750341284414682183651027884608600297751661316482433633285101824064619474401631579609163275993280074479786303629286369520742779140706216267535152415073715506291126921633538771261365972081360124644627161408186987588289368176431745062144524832872969380315846147975878280756804039901319924274814881008761364157883318696949577424521116400682004435407336252398808791726457024921361510358865930024423735943173023610752956728529126565461481845892559720735634008946361253807619921927691046337769545773196010695532971823846300888871407662758903282964360189735654363896183401499835220585546478654948165279928099075951165600174799045821081785954540728490309207254265638321856172114725438005524886094337166142112925259051555067048970617768364188790472140664270800675242479735390500597258262034715036721377069969894515335681576112908201682954023307732900389041774412677574743269971649545831650460136774763516692951339524752622489187182564362313589324168278410225391001244211732948130737053152483463620418384043878768747788998859307888236544882711029083896220191855452142023166462092095371154304754277215921320490894926995743948939173788117591331774679354332517464420551217780823160437305486631144182559693905242003192225478565305056676353351425499545459905978428385680931884946670167228049599579722097772443721589600478564153233363030550252418973723505457098545813460253361646049349359591558035648574961957448800985830565746872709143249481362872439309598431501639957096116056468056804738698058084714583617117823282048550249917163779773059598823909368007713899701865357709020271869467975096247083646462970864644381479249087520693118070608865383626844730538438216909603019170613494540109798565381456701410851094802213454599381340593620260283609044257947836116920608158067545745060160901383239304127105209476105352121663513659229630065484016887837932344843781819030597180660921790108037126760609314619377185656457648540267968597421971072072030907845964929544429161422694643908041771378756574396663977367109953169109031441995603884140903304803918552131936412405709324115858778693279890567174066701223346533419158943923532813463271164148358351378253316282499088546860223451591247973404206631260034137017655982164002786619939811639015285227276770467197982753721610361153461475515317820535960185876662118150257721964195485061134254930727378173571627790032457525054084019009488961431659593562938178120480553596292697232076944546441997904019463226432640599394543937919669345956188605480572481853430789682949365129017742758045223219254459104330082001240720669962659660033071430536375495898270862168592970743144927093447315587170121026434738451261688969351061944278613922157114980142154491962939763207802303754432259355620821426196370389217052023371960798396955758045148282621916064943365601047362959348463931780422005892166596427752547704099553926062437792096404071478251833111391238759385973153250691943581261073638203022525153409896071243725502682095551097793769539675610329707915663393660665782042651492827874824861517334456287998528961367734912503333554005230020182074368632370304030265178064175278310978373226996425774464151021497474780746244495348384653690324798522034209512429100247677257268551681645921117471098406720582225895674328033125157310597978759478995547625589703393731005225009483745909189257878449292856458434169318525804295597395116912313565334005184179907548829609075128500916644148327801462065667354306406328700493954678494847383789672707363897765039228309073954140474815297705510942902480925336333822799880921631818667588022015144479227540783173405405381311679314908486455817467460331653933997458214687613983420124600878726460127263625679082737441692852676361800042542871944100766074385392516982559800704067739573169631029267689769781678690187575380077414210126935910471224199695164786405469962446367984869399672933684016943993212093231718387677823896144379238473182271748546995355107002536580877076145639787432078698446290440417586525146878631152076762319041595031915938856433323495342964962821949470422600022873318524806149373059856832232563012681680283766482002557364839519259325512355197999495536357896180977443642923281929438156649162395965327259863820613883990805759343968225344318567637776544726973038702088809967026860027260291623666208494981746500396170641288779661472759596353943734670923749223412181187813887917699895780030219467653621710708917876647214082504831286425387650986577897455790801751644970956231218545754378869689206375179774339800003913506040582485475739865543514795053717573904115567260621170852083284550880055486768592823830058179418601157205778703449051982295395798320697303891658528276546307894571132606792306598593562883780540938665269613343722239466634465806039889465033160945232099150303376584237904608421815658195221319091660346247931050440484745308871530417894474386572038622758050187561838678279827042937300242942844583988635403830773181308544724700142007958508659987136264592190923104183084892123007451188227749209152993030084881425440109166325265096412836215669696607149913922478327917437342537089513187223343337395273666164663361568784208764803288168314771414864411670445449358015985461051604080642852111528765006227692769340460015264911905583909227147080270226222274654848179471306971288356602350478714567970754074984134663327542799067123437669164549708619076331493868818994031766500634922722046552404604753517606680191110092680731276945820282035073281537273661537647621847636211543925604330980959401175064635750129102296848900550072768329551528834150765185939490407933071414974369600999362898467440736426761241661895954194160062474690421150409273730896090480541314176793617375604513534260873404012978166256597029648621312718182223978877302392571184740702012737047535038663416119905700302344153337440868573880723549186006098245419515589127191857795602246760231935351994991208331044900417111748333597260236763582156486426559180221943890188696974687946654952179905650479828669897565147503810881410565570429287879154834803715687339762700438429861324252571465325653969232468499713400764782671841887271401550645670551274794334908703629657119311042460205399166828138109708508247586556658599663878183285112977972178608307041521961534722174614120099826176371512042926469994079523044947880960121298401282450639624325628399111115841465821554743278987630188347111652151899376022052734052928000712699057843594666278255739982432067602810976049595557287900751950402134193155118368678972486186995379217993310933179023543751175841459697281956190757187628674972880442793023515834885172712846033332005859181748845764586382829659018920803737801400877677884026887319845035391262794260793252998729084019376626615118872903219379229299355037549164162548565631302750246215812876208298922302334494562111401871077419447120666542317349871313955452907758101644005204034015976882380141429680633635286300669438523061777247774604365204218405305206743038845062094959242387925890567249914201377516413236642800250485926842941731638146616125497330485497024674791618888380824977550647895355862505036448503081900847687183408309371677681137150167322717042290978353677343618229921745251433175283116807890680988172694960778817365007862877132351301472608644006724587623358484008393340557083325253520948027717442891065573218866919208364640006984336105984863848243054795610904223812009593399418129462546035746735107019709348044691964520768677327484355192985880272246284097537196608525534486899512472559595437192551946077436133745261980842859683211802651440619277416933469819648242697607181568155110863511342729171439452941749918634417604590953309361946925687249041377724554709100316610556678070176620952230798048695768381235303724024356124645278275045745776008732340025034816532925050539829996442108795356569905544084630829107195370001325690379373844143791168595894137839409260311625155421029368212800625901114898021560125000745257439561059243750354093470833182219615760951385812383875245073704491254331740750859359813906572949592012730807029317015135549109692155330387069480320888087363035615866379982686543449721485911247716466098367351597807325795995365525058493970890992791241646799889277706155155828082320109215562791268985300799546801455675899818713892489324186203487353107140667825897412343890343043320415959821409868353104982083785317572607760896220205690455902391500450739186931499500055898186606019585163468904854414052403452588913540288280913210227265256920776436847194318696109750649320636194809562077035143418442317257551272553769245621217109650576468546174068984497013848693686302192894541381365723824656039632801856816310964789661070144395950753179417016079412797296226611033891683142250728185067585288398874710807328438385793130334721015183545255069151248778357527893294718064082238958121553364615802756669891149397509783467646678052581137938234088656280390541752450772374383582540236644218329706437859576903196139557307944088585157397318353835072647323781743544194941057774194294193267779457291408101884988378767769150509962249740741968720242383378129497639608552341983879181230650070309084452913411081327346692394161611317009777718595346761273119837361055356143170170344963439408920578356765298216388829085708608741094778678372848366316540214790974034737467121639724056885803673390870858089171144573354093301080537082745324315601060829266106146945608194753583890950643002784373007226545935357860594936899426078900873957174437194536379947068501741181910947467508285825874241735848295102013331110181771374726770028829716170662743752896844499710993272860122606520662514935517251106832638312683263557696791362872102361382234742303961420840978864495036136319950470011286853769325732742446806552201957497165044397281499530516544808825663145122291137502333780527060564693283512560705884161641542853750850403537627024815746636177193268655081467970765538521340991025134241656231742980568201723097851336340395770165684324901162465418980547084007194180774520880383094279457410646003790378030247333757174486986302356735978580286450538213917703084339557183605061137507033251652659067470672264575362771308546951462737458968653734450172021473334592179956567163882657418381785447155305775397681487028098143123238108713548216697521955953051956386606284650399100432645941440375961229645697286599919097559374910143584419632928367257320769355995601425920822277846370819353466105021931481429938569975524427959936744511369350883447485817950356260491571083099425558992021699658505139370815024805346321536369553095623699852195820510022262989631432981640551703974119693413459019631863021007677294902919413954168011010746587646349970428725713977468690157235662130652793030973879878377486567114937861385609504301720750681690029501060337463425339006907076976091136053766832773874996382322199497645980723224992927319514528645682879698477300045733494286138667821140050519716880700547843935764965290348650718925007600759070953081984810214264948368126863355100522962842213024026319682731964356938714176850023638173344730021331907020682807524497674958306197065032853867722511529552535596368863311393520506586761532180963010573014706754967834656403020428196074824809218407343482899488126625588144994374407814318932824391860335205160993151717234193174042650513668147219847788192403717030776198780305137074643806228133227124737602588025589080557662977826871853577359126489109035310354562643002113997888362364436918375759824929712350522628680531111056974244142259878482938864792093500137448568016862173370596961104558385403249809218268540315904473250023136978804751362369463635285447135959466040070338464873592828807691994510928590552358439854909599289654350978134058084468742244626644334005971722551378795723653110645444100043879722430284064376394075135998456143606578326717615442850067452167769747836220383565567348642784003151212752523382669907685333063325419819871085682024857632257115127092781118456094711208681636094135917583835286684013345561554260852618804288859142839376871187426518284609735450862316714579493043991087177717470277259888385320342164597706899611975613734600450083458378873591174296798382415350187166914961412835512200732109255432350513849521444721391953364734013965779794407647245482402558049613582156314934337658466176354562393103338632378159724884657123194994661054731042052237726897587656909515652419268478813423610455418804386835797364786446228265471990337938864076308800150461360448133193235025691324632734869379601697905966865626640101958619070299831279273605580934743909680123197232200070634613798057666751391759045699264532037322848232051300312787866973156270369144420488778810104210183970542441794505396692413972886211491064171630384327184914135339612982985750954825781166598659704732781327406451522751615329624945740320560337672201751273746964127281522702297542946976224072150113487663908980777180112874464420622117516392904050863843198175690351815739495759141285074188530130774411921111371693962166033879159215285931175592663228373761844226314226851126663097274636840057002781872560864589334063640596602610817524935634061438005575762624748103367634326492111490126435889626294517534216951561874621775954537232864914068753549997323879348745879298805192939129409086262278827205040874740216393777358471337904111747194934258052601847100599492570646254676650566713410171586226625866189690173261015316213767871777198785119179633882525873064408875709934834188257701419866541364901890228505611105077668551506572696632998224242349578820688915010217145170325936938480864658190947743572929810117027936470977054952821013127419679305027918279130236686504339873813558373604701597503076855076417741959105205731028911368496782062813678832246172611447321297758425671011290797772950761791615754462604627590069319603988350631076876416638928328274638357303899973171616482352920020615860949236855163860418574125837013450674289707790653292809211044454170604293881394264318406674406281474753511272048080217901695667702792385977840301076593535004815793050669462462453132139533131519754400020846415391246461201589594510863703757767238877861831266754274363694950714568282998078208852165501430180745758856535303679512530057449819335548921936285252180257985276824750771063063535902198862630273040865429082525635678430525539907590281331310595724259154598893240369029269083541846174295130698792033501539269061395705095888990493831021316522481900732761673530685457387014587734456847517492798573398961093508019171900069875387334111916752786618840317039951828190955294620255521190730366851794352027683629048484128745089241196654091287424280485879776355384358058730920273605623228674692853126802383346275588526723630228668062239142036412385498956989945948318026896491961704131586788046542007730309069013410441543683157720693425178262215206140564598331159248511688148856918819279400562293228252048971655330063936202194547975065039543519554361802207511587708592505690422427036882953531009480101336000767383614595599392860099209527352809103378764889418421729162131767152383292104749303256581104513541140747287657857295043063898203169034143687839220248285724449214272693744577375672352877952720872669634558455181855603739247928043820728160324256775007723727578550550652023404515003756948612582985476688690882789655071509993149461827695045598847500824755423043231918424272587138924988706496392529881886549110541572804883217378715613236815326035002441355474701277338097489093393960604305973623892125702767582680118214943922963471200152177106554811182301894420025131604002952126910058115683425049654955748774031220808518831315938134606409270067204943498849852418123560960917195270916362858833383969070597452608266728753609518979347519165791550063005672783174087660848301791858145740157975882499662008707136543605402598391322596261194280602038145396908333102544424066168740228361807982099606638392211194560464128597086094900578629558516719834276544994554343188398588162557696910248910146395667002692309151432989571836417947813053090979656403514652678476365511484601764621803664340176277141727830294479059606806885657896004284927139788032253129794834561452240365380351658585624571436932634100926431001136492880536739802516653699018101759352045472482974018918620378468411487178201096773809714098432805731277839616309606325971359067779654829724809903671695101233270558607929244011880147980915090301257169504257360698121457434612392214035877946539054021493250245549405018156079863021765331927711809326026460239832074052418996964179230851053212896071783395908670845743424356148377383008919573057210146253530181440393949716076207046676438955673705473726340618607191684462573879371421844638549303677192730467685028261382680272317612992812803858744332112378725186866182490538735383538161897310765821152615730673947621438855821251994827973307756920957133523123909807567134875107421887439657551381687240099937508711168823172794616627770134220316283276028367637375039380200019432543951869423301827878605726437721865769059052023557965880984726178310312385756469354892998636943553521240807142890260345572776024870962393308087529093716743019708121116580294011352736811662454101492956674495342441331189217555620375797051737770131230879952812471543116319990354893578251968831575664794525169436741425639532236795371435398988129114572980902003939581688719743118991410988665817430609142180093202025843330713098937994121135263492027598046121607344996250092578006683571813049579591019031959528926066574341757879233006423698876882371382786559013016072571977006216482438247656366894665025319062928101517671744591996750559400244282813026048446330648915741142267731135229888151381385675072814418771589881955957263912181294673638993019007374292486916632857762959347381712418848412683533114981982573777455906361022125244806085734444811127935156799018515417839491807511106474403442360709758634956792942782362040843663020448546208563111273910282070298616374010883275541681380660089383730092817594520185093071072236901994646506139707319287434919527121608085878629525394336083911734695204281121497329649400475058455140196478928371436198152403065762354599331063672232649243568789965435308494542686377465122853012380326328331499570767071319574288620887681264370328544164520839222709544286621006740813616343596842512232372283819416482345010775582803121464974148130228182475169911870061191940601340792646786004295309562980756081788067159603331098006921325227894143782645212757120871052733339041996474414048405749826892227339557343357592806228608499163928219917646339622697587324241709483929623624093574426061760942547703233279215102208334155403458113169230968995143613388213265884623667305479166328436552201235395293825865091148756251186804897721283005412917305914695523137129091751119807539672805643458045692470977830432743988299409215309624400916402669883257875824621689162715493576742962954566985306829449462624453711018481284943698154771051552163944877130891375032430883407554863391047962533989794697759245804848086261137277725375541887221614361810431997189253768883084993465382985860887042298271816583066460876334943521802187375374424688722951030209537066071017169802600170277145081395156219849323597008439828906928029081274939538306751650108632863216838614520502325469510694021504595801279662853367343798435002257719383529410863626972865952744752470757838443900783227475709167132249792467471494877517554314983367245803476305535479146109815654972256391210597957355456663447077732804987938142394852489820550765865390040326089864108954355208330241464022011172197356031850838398778573949925779838040268639478953743801816283519118345098749854016556375188256586466973365458833754540173671257671977018973942945887619132193563570401879804181230533952431506565473432357204958030707337191978971125583749497320217193276038275340725598278212728051194020237193602871056158630589631551061039830371662473911735992648875029425657400933714477990294623088194863844057584264080496213737506401811276748183240603893396730709974521517234186704190057061946041744338136996172922245703907037222396654753360763509090231831234936347528983679893753487997398116022080327675096772069641907863247137345209925617247528552828179692517664350308342064423212821068232942103988544496237318002361520659865565151040511203700327549224985370769006897202976104522335892017607601008653726238760904953228531848980953296131837549766096470064165203169857786655070062087584343923289625143437308230375127117107977253558522472081074343811471094548055371007258408355189475087477513259458906737921970303992081378831353234944199590916212428299761754012654279743950448867647296788577215247188401085637200560412551948207737603463212162564747616846725696743823776105047658723351658148081068684095496930642755304518166952435750511779006884392528061601428482895921796106272137615863419841178809176625775451287833699246531443645136313383034719409735468616278558596789766013278074739479856620808909416420951021067533404290317394912132878820278256415160250923641206181319252547848438665616355189331799407955304092772710914940558159426581400216972658035897567686738414837445796329637879359245331169472686481836209979068640293825885540250818579054761050974149729960574988817250578888504270457973228195201763356378963521195126384832793100568120179827434213503036011141503373293505248855576842198320141730311098426028061571336934107381704135499132444126440328871889222345676105273671282604299850616977010660833095259376674379312069428856649894698749578467538323467928510947875687118819950446575495880576132533448873033615354084690686197968257622999986588233443198915134212923627770359146468102443429408687540086865099644151520742372656267866823811397422153965229892451511113749187567644290689540748225289436365016444925021655022703000821960076973671071564845829109907080715154837491473139393118589235248821929445426984321984653682553688247009449358087137445648043720672816866772005809603108931332253297412506966282446111739198743129056214018829099410404992264228421324294086026240720892286021695557091825799742363600360132783531856264381841037272080463859993361983067910671117225920921462701747878753773607951811724573666176124808376959289934006183042976029174940873712307718274563793864127176426170513741184648250239806086062841720851939643060282968677669352574946476006809505131648745112134587150874305682276213756579979434319935354708132758158221814992115420252152658311120688665052191632830604197710978724515654583929319804469478517483387455118133920449312920817226988330034434121175305903106417759009650531298853242897808308355327511724129070640147405329273921483573043206742818991744914731963722476796686923311042457526928830900263794320838399119155683884550469173833849262791999577465066074804052790895229439854535447464368817648123136321715066191567170328979273598195441687934743917695288805794905048468772802902115554211402034341389796347505707669759128394696352715210408558780652033791372302674442991893398686808019887875534247710291846674475322131029519302508276686026811081958093064032472368939976658061152415748055526544738862217595162557774809528370663394175903787956626450469370582234052311170863068208296715611082860002472229471019858775772416509212398568445979075606474654357878340628972590896887135879398772126714883085334371785536850214525181459127519825314097948853423043804433107281666187387677432396679280572080692255878894786280191423278118048129246137897145545190215839906267785273834249837757742322009524704880636611425698483539264354709259428621537106287003354229849011631619118213140114900850795633211341920187743466275274902245183245041890036314387122086059469023635970832771962989101560968399635428972224277889994172942661255934950439670805392558086454441790317983127064424610936049952080501975465558863777071581720333634010418272209632983947806541356559254946793370467460559086263191731166372126138456502915415125142125191342625354571641358021130633252404180267707887208961699338445584288962237791111131920935402292135197242007806101633261982028312127560766493335653662469978200300722314900147010135915582894081109513481779736043551162425375977306323124582997918129390219721813594227239195212265885988763112872241852246680569061352243796329911839242249049291784277854258126508145640731930551252086154918367548538256975121523283264775452229759595178068108814829056569538204452652567984030877581690648364981768800865380059677558669789515553839875969272228708085638728067762471073339604616596983714064926848846113625057463021291057155905729755210597642459815492584149394849650884867912723508617512329852207349849773142781806320035094742300669144427258708467953191951685354445527735415619399346939460800534947604334599926196292900982242768738559552254160814487166477045304008540958525407711554247911919233985910387835565323726838400113153647802715057316632294753611839989298474027256256984619839607880112677192847535031889119349729549816856781769709164477408839497344731139314396666747824457674070828359507985929154856189519215096386503256547391617217419609270877628494280130198417873650867660254230508235673112587345886742778978018396736296562570613344563467924796561560777647297828118381118327343166388593706078066924056769924745746237816819138978140631833313084541395101927037524885885895193514817865088272986530479689284054158900030106213660012537662270023679854633234426746716217602000493486405995513588443863281984243195200262131692475486552248343252329744263943384840690071210259153407921265186363747554625116728710121194659629770502893529533156262750678204430969562767915297990537613023069920375440016852748486493478766994720607629926663295785341895171646451991556446724512451421937180004509232545321318737575086095015389202822261588460635519835902502548728347027981140434724785829716319084343948988458366967457778455119922201125867114345359258406111653787449244773412897530294385762391898224749748808985834411534796869620775807983311454289963785078109520927049412627903149614285959044860960537404329644147279999018973945467182295441906447706892111707675029690284513874246726180380756798249052934917039556365459399389111669447780930585425326894247447104276150153670916329009597310060504160406297891310142289152652433318051280950566920206335800364334592507856685234844098821992012338778530670258797062294431063322366105204860143900658210202566369066221947880902771263542097851374826257771495510385142218333339634116637833308559318188354790620216080661935256399450055899845655870356255959313407973814883692832362733143957792452354038334091768412545955590140790099975225035097507398462530255353551494847669615258096156870226291911564087475150478108928931154063600895877368595279820186062396943729682267623227844942189256549931289875748777038870247363831046747357861754182327016064684233042535338994725874393283428534561691327209862842436367632847160116237585764122413581659114628905208369992557337178455771075019931906759316009719029434978445704338644026720849621990408309524609162955410006739973592814761334532820712798521110551125655727545468309001131060065153277370196754477071126262525089806439194195745474490059350924553431534177803491007842465743682729235112262902277576804960990470902636379647954219921328139886838387513183558198779724344447029562989997399559191161622891526958229527257332038113102126502932399720222504367499093293342574687618688704474639810958342302814126667895488011270624679034551872129114044222542591349052860388282823380985242831658229242830017885336932193785100585933875254475479543240843320040892068363710366030740966856526422369167925489187168202311200860074013095947316906299681273274563220779424046075895967557112652725842987951856251775318282836333599368945413564213617708953413608673576927370374075704341446878603997890498863796362429656493490735847905122746641401312049918630268515266974653128551977348512167117382791553762126517940545188065171647963350793358081384214263624814825755588787196588758614877358192040256440566120921700593767626459709699901904442226205791552654011371896087749047008436216251912456308817844549911817962560007648115990428368949111979185234516774735308497109307950211772658684612394607302209089389372393336399429126340253299998269062556301678527057221979429405781698356126686209828561926008629870460000819813840195531417515456847675738798352298735563890068291634378586900636026143357223772200250565279988870521108206132797850822078550188268064501013744220112403093509847981758772694111420211136844844091512435447391458484975291024927273155475787662010626968343861536565420322085348448345950679256101212614445599504246022905488614713702865970104585084638560754613470991153924738109345991268277383725682119465669498206647677821142820016261390258054359076897690757572525095139610706060363633358464231766701581631569064088462696629171247071751720349187487452772756136254586301539350488181693599013083364922860239618613289780765416366101078358552172663998742385177303588575333920074141104950215427432884300063443108918013577118309279738670222688731447942368496223064053587553607296794218168584734849076080050799245302876834627062630197274583430414314896564119788625506125893756938329865108955685604869895118304171857953236607225333499854670834654383614135973714898949566964797367707643241110958211012699620395898632988128203007006742045469969372971832832583621471348481493597626232072713396862062446186633883356520588822082415426266625586510944132606191633290621351349726974091034866320345324308060708122259486449969667894864637948388338735456514001800212032611922574940870325037732869200583805590188625664105056157309115881446855700908895022067102813074762182195271017627251078265739570541165978613744082091656494111560789347540236116069602702450457831509066891588684398657274212440322484259318342493650471754636577228815854075198228686341188286236477716954992870278767611170175203741579658628981144299223887043731024340540417591045108294927582648242811822204340553233840106768658826755968617302471346691729268593987425372999248649262871902214169564063924644310540179255704085454007982670318534825257464511989220824877083554036879358921602673123755068388546658666436209144238012170794880805676679623526412087805408771274288803487811575486906449590512049867219346818851352123297048883228206537705899093522793479600997528344409681884968388950142499983122312576626564187392105455511552265626763421345550424331179368101586300890073558383486230702193143910782434679217173526140377211977383697233859546019760548203229966154215657350074990614328366870870066354174503635030934524739160355108931768505273816992506781323524882604809673817901714424349193232199191816464753043056101436091057828926690837144465270802614633931193534318635848853655858537985316967766004313488499632086523844439480312534572645266442610396331196028734452656528264098404104546395647081770039201942821992818370541968379774376919963236490792113416964006559022277676412381028607036878907917194529083997689904721737196685339310696872316638337461196094878244296403524960643466605359777325932829094757193991352807351412749500282944155411231170325881764905687410015044539684968402141715758036076071271822630926521604430486766640504256399845372120058934809401039339242997161872545502652012287278931036576355975180075307727765410193902224256836614444622088613471686567164519319612077393731083664260229876791174486998644511586672479244518865518312532021813051280308434748641505727788379109953451576868781690986608199851430553667071555283692012211148953922185090710782310847258579008608341986455250511780486035450520148678211948927109764017738133622565392648267155711814306708986246422932197566180230101173050983239532747315581730336734660064624133799971879869784701046719754390364231891878729834901413211508277749694242302150448376074579156879841615755983610432526007702809546371750235267744063944432987489423208601871581479664849867136091736221100673817598919988462152556838333815480464735596963938736544962448438600815294265198690027897460879244495183755607223209371631360538715881254405172003058102286982072005514318032998754140987017936098337100364189102259705266891134954475614490389246239101092680779039098071775877096155416061344052667855118585814455060201809573693532722542525596758297810574904382243817978232104715671473928272168008794806439900814927561295374544918773876805355282610675901043960157936110138880921575705202006328937921523650151212030119230170949725320198732736557297160574951606298270908635522878967170637833105088820077405089262912276908275168020365384944254910314495756948983160794064451416774228616096340802207753338572915914478518075435467566692199501441710468292822601926783140746071999688494269727291093208457977882691000267754613738942835157206519846083674763987490399995739914324569372256097868297954572608059373047630597677339569105595404892695565617750981585210036065955418292853040957936891569705519267405186450753208680716426568165996444757911263020096495400845474934587706857437836516598743105243070525374101508010699625593866786939887258629202956277602407621360250175745268984527519277716883340878282293017936839182864478732742979283526756686321906572779551566456745032412885899489351653557250301977514736958765570220677181299259144248657392660234447293151418370033382343019485657437302252422906367553754873681781257575309893410292435783159621055484650304377875397418867105399660602281505969166501833405255661352698915035081076626597332614093355655374207164945571711784147376444884238218731538892403473663023867218304264955432520364923869448671344064453091853173618916716741616196997828893629802536954155184694271132473521342038581881813753230709973171270053176767959130137579533488306680540165057837402552710280715509263365831508337001429199176560189635241082543175821909029676547075618871706162075903489800859059530350089437273595459919578027817121847341674846257480949412242787646742198791805764186641731289109699285094614125448854355895806471545035349121489523276877263970443241725140955790894185036599095018095452951161626130906371311253086680373165145540657958977401665578181571585537752529500336772452703072115413257824694879503465656021511679432949707739076120028051284749810359949062043030576562735363157068082927704182771303386789022317013244215524429838814523322836460767205844494946933810249351246249191752188971272359157857026979597991315517942368727883834609495509515293975742820181187825202356908671496159233708056180506523213169611023965744009308222812372452619122952353985263810133960503605752743575892160537362237755954972792151625882448924437043531905564842474330234599234326387236428134854027163241918553178102048798166573215070675037938811374244800474983020602349770299132944185354370340312090386608202587009617566833613679890602668661378316820590169742350595274983495195885812942677971988092114315926168439437782702655873292597659642190163028351642610831201334527234183043414077041733163927520066558838724442442833906537123174941312407882615271672145510492092074539553489228794646933966003251150320874160382652414119082391913939605678783955516122861794918922277766100158625971389070007638456717022760138725621826482241326240685967115619811371719849032256842387280219279484049158329342880150084262586378051995663156485192455829150652093621463763584751402894226300988623261125799911852754254023941946777069182199536373692060878952206735202079438392604482140192245958087741663078031082160458692828030367516784978856116790811108425680867860437491695331938306809156338934882817050357324106038791713267331693956031347528412664332175943683871707844017155268401724580153807382068755795580974118153620870130962875315939866243212031574110329644075558306717184750963845403437135705741908262281626583130429853020212058491718611395493680754403618834876877506070535621722116727634082060946645529200247735365291250906057061373123954360526767874050991565971178086538800346632568511938118666797380174606344836530603003208293144471365648765734775946245766985398316847935084048264291748471833779761109220348477390032100915163200557519471354311792565571697239927733746187382263101868883620835712317126994825393608342433812194196797002731539271654445283872713681455404650113818617818782871467129929275585103103756194090190004164013411940019455338916074936630579748143240558681875429639085321025762927334219539674269039393019542510872634875934644289980920207244621448912580243223535642093676982011005426267266454694962582595556704354559678698259525534793991376834426802922918929344537250368931994471347430137971861229085446514988741089617249376956837867258816847487963483939222827276544061282815562684597816996043786476401394183864313218719896865359783699402675424040856218977713561037216517311758390338744295365760839270090048600470830511478650506108058724403750612930722784265771313389392018714888700411604556631764055270663736565054691765538467054992561266168872717476926930210182152497236319058425802394620931862622279442411964392159763018041701550053971045576013387580972766584802790096454142208995288056478855398292083631903108357943240842533387004045789459271152204298903839548813853991965215749364274912243203817721000343374593597756080440723008782390176226649159947084401540828758292785928583048062085993447240222305983048744977650954712773922351902956098384985606423425678233186714294332133145279043551962428449854890307226675925948823514437163274157472776914065673800623502346529948016490530885298161826854976203328549218355628959133951492199280945661905264178965332973021863911914161298298591798740902796699783362389645872290365235866387617864361305767031188878737587965370847242734300615227912692639047639218159734551757676036784518853561247046293127232669805547912862766150851651015444716792730995916294731458115929382507944554224211297031833443701895759547333151345444578567811751899037593509636682636654193787468111436257336596865099534975072703528922549321101916257878924993428725089154868960881347498241725704616433723619885920168367170435197667981390744753858392117216861745191107574960284869449508700721310706415177033554652732531380805014108805533227916738622069343210215294684092751437114923952514726794198142111301312460094296126902107422224352962114285201865339045674311442265280514399395495685783539791854965207944143640245786228207746303650535727715780561183146613880483096183986982235234192045515314632515537375576649130786130788057196904220978540414256311693142132258465136786826310665347153272129096900033238074512471845061653233308160237053001216996554468922824380793121662702267674063879979907851337698453464279500151609463813686784989943930947099772702981451265657687802601933743441680694972825415349323265320224808280899328334712409370666598835947977189112103294216360701236490636640698633475655756533040695000310803998428035805383396019697836333003133267461663404076294866192261929673624250947383306366866122135053586156749429196637043375469770340956030175592194770138381261446293424987582894483815002147711027893017991135492892890392808242325006426595236534040611273790212606705747112248559552645604904121762141680824525188691222862377450516832757626061646472961143739234342420780055758351990471545259867344881510085775775293206037631014116632521931825113387936336145436341680741782937138490977985417647065814848126950335469942055958088660786072658279164571959535433026485863303996210239052507426220832470440801624127560613542552876371043052398014348431002630589357184426989159841918105540943094076662708039615439848175755017593083807843572116074506228340278145316359006601980105496156213334329793734745342314935048485249546592844882900167867221028753028492694957132831341062739871147716829072572718294806087102302848978155632381482069281211262875598110316069461829350844928787020655992773036745964469362232262844816422641098103584463777903590891300869557136891357087326551549823556059965695776339039111606069502681285629409039272845088824280550128868158254204376452696648971164632569075549927405274128122736915931518020565892231080150023964454886901430106153849597532876594590394420767593260653869415994455531708734394758882266178235184920168729896166894503371422762726649318917426042602364491108131594496605423097379349194016955215149434896741933390867050126439171993028584135623727220918775079038704250813833103875376656590677343356072917661003784615895612082919846395096587262122558338746735143337122280284642821491768678989162128224348468271027172611729273977523533834237567897424493727061984096587747719292283809207764131623999805071905126979173261212292803573314923018957996749115458059577647282008124623244964917790232066916024546992289128555642190385142844625761167377034742224388708689284841665877343762821749743319426868119916322989053383321163173632024348405542192856003929197224763028298347117929821672212030537989307315047779267729389597175846698610784410823553651298432618431527290516171140946552552806742050972030965914806510250850783524788144863066822930289840094753484056709804688510757034660198020269111428194170543873651582396616798220408725290599551508684177757584198588950080885304837321231306555314774107094819349364692931340943587009791362529660772065133202279463312024365611903604960280767831238688853955973413965761370531066874731412788984978397007361825410930703872304445870000138444607598469603273405748665879948602984415553475311194395043247118170251381145371871646477371076187487178546028861905775880960002064038542856046525448208022956862625055234929687219117791903982053683271102159843225737029618755635345001958472672290081702695641505417128439329333307365610537528974156435403227600077787589199417868682373782060901983123595372499369705114759399172038982454274291863209817706244597320659577001670434205424325822488456699306138929912305311176748784744350379242891452277451471726487072794146646342084444129952005492929696274596419030609715471718613938656175974929266848486222804548406349143699316669306542764897818581054743898314499481907596113074107828386255017908702492536738975727820406360686563698187257111324407535072047411968701472531610010594753054165645457746255422062091069640382936062991481992063704988942518672777863363144593389686001687549998211635204157372432925091394904692080849278875210457163812260259507377831670534337274263395547945056472688731932089428240630329280959839078080902662735535132699880140142583025611363194264994772074367337053045143741665448388182700499136000137495723469097545802847166666244845690588571520634329777170573178093563466022645505391392114485466823600800291886209712378960349793581310293871131166435165575759047897104736755335037556880940371126833221426963119839065314301283035145126985431718730060882578559219996822070022766088441526871505483107974205108644159271446701168552569560006184481849156593972321923248772087429999905407107853072570964039102143127682257212702343866400832332436771868893067007517294345953928244166491025556531092910525566795351596135019837597665886567787340489824661088130583822288042930888524485039194664849195822130360465344617159766122127280643051650217833723121301495729603524681003689313864447357527169592308348004664992400048932588493482692999200108058302928106681400991946319668990489585320186162561419317280449272580007498530037254008226499521981646061423224225557316180805577253861359265754991528634157546445692111256971020086294717211649642316368782125384976805678029030902914468360476629763522248827037484830386588510925178661883740506780818435263771021480483445202193059528935876641119760583972321671589625502317447776000865176299814055416160525003053225633967018621532066988601273952250878368890316088091521866539856308233295319693013127363515833568458765359686368720721007282888459085122896689976895113279324669100187575523682619961881079964424716883156043299920536968674668361208986857886727361951392287116112011125115441692870587533306264428352155575050382491550714083122368383653387475225106540432532538097850624026187598295528616204714888203127458095059110691543394014392250318110248244170855772827478169803396750201733232515950220524137455568271738065873156397100740700460426919241124743510666922141795403217324472337197336110311215011925420383670226237221635694118062009013047719476334331020592978550585552853136487841001480128725335425346896003987897145341883554407443424429042118322822917666090235738625468675838256908270258828714524862399054719483314817191907050898966800229293454919077753666951631746931215434445581394132065974090301455975633248669546036860708567482059748931021096722217714206246182212519728031812812163271091444163543160193278897961859120816610103653699470542551246843632481397124411932602206254929022005228591163087921670010280084945815930625744568827729639076432885443724406725749827798559748193183898241834286588219642999798482531113161916999744077767685033846376225889360607896214435319781784154702359791883991302790144252630144156549214626919710470529676709303408078887139968999575783889714413776665846845025597651213157881730998621261380917691355443552440455571533900468370521610412992204386209535228837863046507934666217736640055276374388021303494491214582384986279441645856248626615620489619700024366684720424988431544551817413814012955342164793938225770909627812706764057659211909555729130049964534736107042437411253063063069678690950861810411726640760134640623482542629906182887568541380946282167896064551045917812959556250201999290630328908853294627850308390507745509275632634926548145479986145201766618167433893516009058420939567943512253053932958734038571677620358822464949373763766258938712717975586387784836786124339851751294375335020835694751381575071832559438878077669954026399679064589892720171093840418408348608702153366488285714467226056739432465694127281006755375724386275715516964534961608516310101578682175374823416388266662767839098698004770263245218615113817627075139862853720484253081379104174107490027995240916160309484665084675477290347292536650902390751199613434758380465153762085857944691980369350960680282829489757605692426528273415290000805458883822505247776084345357572579080046131915476887737899894465553594933091077679804668486290489744598179831944966416669230327597621747398605425774782612114279874440200615204450055739030667182848792547356772455302246322372187542949807112370199979766651099642581915582269115146459339208868885958613260734190846737530688902921046316583885348058151088999656859120067023681090552455636341497349365646518771796737108816250913450458243440581081859344848794445571942877255103635726872039928357832010405891638800408347907732501298873540282367113158822481837788199873623166362383491659918002716625780781104267234831808612171483607575847925181872395559166759068028497248384233616532776847428804351614073618221075017159326805361272510757306940646217258815364397958020339006907537908313476987218072059646445790463349973586542646619966302673646629352422386062402985876611048317312343451919076431635530965098859221900285641178797901041789488770653487317175241522992339401231359239999549785931795511400742851912604552919556733487294926994643341328293928239916975984840833458399181670409014894568713282494887747176578207059323399051419629950729669001889239244171785104518577482757087025262998868359386912626793050431071936875036311873953560632422205009700705287677362508927611859672316482932446757503559997842544488752764613671502630386048410124353654542499967904808495050487435453538474075938912315054907474744400032020429415632675689502755192000053839281888384127585045858338882925175128387606497362156488812579249956614527308359776679379291347937539287515259147521136623883081100450012553334250524389981684458372083861324366545149322206982104073627584368182125932034731166533831541760780011120006774571468582556362777098813719026718551274158660476582449296954041733380324778108241534968959122885325996247767782115516565430633214026549735578158749951905992746285777075985686212864447302294608781252871740816487990810957625995199403001286783814729733133951363666343986574914680801714896328292539526193415620819433674705589755374688414724982048389885197907757968498703650733845781989202822229397619056763434291857219399202250176096275701314773771175839521779901238689533578674746785622343860307438718438464856681685520970297526721000417807709232100935509632161157509221191438737916099097216649125154613341966990461686871651426016406039039890992864138146971604976843064606732307204443226151536411989725485975300707065483128792684052058589302634921204699504515868889171441262537406041819292030103327605935677441703046795298443528998202660496392200853741597303588169322588068852292110650515016014548331245709656895340855840269646884556678389832249073541455813245549099687864533715247869349745641264403295313133162555441648298803135664153074683605385320417676858504627093375825377234147414012359897555371083358661023894578218056126899324588919670221990830172283360794720483747681166018454718245622469473768014402397609419647343502276593117621167890113395543326705514827113849704662377135856166167854743920353290773771960434680292155969988195052646882435742875262467462988977242736316704530931708542061493488410462636411093379492132982799353636893864204962920088489506786527187757678406291661294016460248324885586352383559558642838135817969121598267247297659227831409639439830816644861253274527133459050424077210109245810571498284118725541504856675836180804719039964707296529826394134036171060610571937858260975025508071333923486742408720734791177928629510371963850506642721148784014527962730350048774009499836837218562471582828478174170188673742163027679981300996501830152879643194267838565968438181655170144742932090318765906668822320478377946683759343783091741383887439992249477799532586471929661049874904258569122891895274486016987711817729640148857184771286989009999723110535776989547724826676144561669434689009010410554974657738934546676605176233806608191728210982726866560748507845159161622349388195758309809629356841160489455891080864907529776228111920959638532596841990346580883683072800046059756542588704445169981074359169295407207324500252726440875978878279455523854862270116424889061102485632542411878199722334494601257226900457821784191285123463371476689082832833524227654154820037189353860798119948580573858137795118610954855091608500242615568190062445150871170825391568993151710531682922505742708945685990596228127744290945548205420878143931809723869113356509282459610847261682799341236749325526452568887489017424424088403386491983409799616453089980401345341115270763669378256789488945841388295056162278804977383178658718047128301114852895490648395151791430207445174746414650438439239623297103350752280468765565227705748809496379252384973201282082642402659279826383002685990715279081990205956363652456460754686514185093660811067228585469297859319774862597862746603769259844900480953026454183951889744699138498940792420554626165028055035092709370155720882993412961616424852071461026971118952342052989551009400427444097230320311157164059058388080800947600704972189587608501902518773043672497423292653038565136369012818609715151676177746734590715002887149168038792119916756311453872991949109551211277139940335205530060294368471322710060496857786381635677147932773522156966592235699611449125166104549804716220157100330783792276028517405455086721398240031997617130709238997230797223617933717720177858346368305801653630226607414474324845797784380076989718163081875160683680538066146709710960931037873193289920006942915804693690307557605239989497450185286553617277731528891769132424905049165853327874376499328049154713080003658049314138275616448503811054021979625231925423803109149560976027199734105776508953343955187383157800155225200486613904289131508129109524307742511496375773696973766850629412369251379250054285678390575745859883396865833734750013681115180395221972377108933395814174027773763101622550174163583097228821189504453003856219395924064296844252246511236790687071352143720321996359178411309335392369470176763787987816452977540172237407124689659137635433103815001026270705871823091205780286233570829515072665699516873798047353486330402401429503444162553810781975586588373528544506088823529345161207670905709659720591944117903819025728750964872238447011544043303093593455549482202195890908520095018063321001888831256394791223595781820974185106007954079438496784547698733397100344257265756103798357394791832933000957768933541106768328266665013885153659023425219909159425982600782571935559090587993106096372836404708669742496579426826741624585305075286692464796696868679980549899480303986598883039272045051322959414334381042629087525510538877625705434790464787280816515105310658376497620402911216807289067664370596608574418491372600184928116873756141629779253766060263116358631502896499967783382748420521363288808480776634471208315747576668984378849714299702275532318898901204077743562238086263319767446363213220043248862300511382527707386560699366771819358287428574686678381236495927309573123920948954325449557262510955432592067891154979647956141658140222821088127734796929986681324679758730313182692641732062750071467937099171602333237419704043501535245112802518999008250101415420576635361662930231486925352307365468778194184895327255835185297895907352117297010365482055731763831522573269577985598688207347461851220963615023182199929645603197001445660271538010822253681361296365030674995078066892339903736958859791274653886264279882403963808308516702594737101190916278332257179172173776944186652200571564320395130882488545791799996958126220360054706264164459899112084869873802958608610181261274445914635654553393500962416974034664763932480163788663459523473569409192425330074698764571490638039542344953891668926455519746476798035619894953439648410352640103785169121178951450544419372792243544120592865135060404263168423267503360224906809929787718952174524206970478816422715681611428790634515113759180140585893251379015591306171257328049652910727794999252649658699659645100827256987995256812810288741672048570438755826989601243553368230303312382882788882351511171743611497003200743987464083329826646313185170091292732537238521030816034818327764153418115296658588412603675254089008841539377237442290168588985109412626825282171087160204644138089087144313140163588257450901487491666972240273244216729268281719202413006333701043707710257163049798250589277762514794163521345601930047572683198277053241031581552018150642329767380427876419128695591255792069225731651037662621366136267356081351030688939771305559105430812745873043074071565993440692803399049497384938255631624340358068389559682861441296519500267645536445571405797081005235138281315055807750892441528162559422790608570199971885791316434669964366795765685410302243012975907511413855594844914314595340848259463645557294122870018791232387550107044517641384788795822306039357248473600477884495862630295951363021152680810031443488865956194514016795478613192256171627378370850212415929548493372713270755899142602989673512441579074360204815416339382941110042422064656147843070385224313298800233670740986614438308316791007588978619591157670712886409987000837058014643799198795361914826562832373871088116379720557213569245525866966490034740274107437569721069619377895374578954583976941058079757489219653286841497660293083733580868700562104214204356860315367172265597941410530815303702020847167351576938735887720688687604471816125571640903814704331315228601761873535682778661398238893226922846127354516921976899872686097295383799320869774891761905568321176405980917793585939671821272964809312334260451393439681606914267169293598163847133807453857849299574501787531985619495595586050611713902008242506320911977363368510981940943139246315630910176840772189575981155529040124621430964272199019144481784282273224882543509143251808218896045201488161621049265645662062630118503703859358961338113535762641861284194584076029848830409807664087624296969083306205215069884388638011897887756126172400969556464379253640349889348766408178329474469029064336650041975731329280048778494422261036461838268203232568986388658425377563628649138384834655294793290258087203618595139193140469453271386294868456911746355155711444682426873514177891259346670741637516251236913018551902283513369667633462875884907501635265317279903269366408578058203965592204057091025816395954490398049010286331402742443756828898814380391907864402170863805368746529795358940929772794187227365834472070849059526997250377293270114847773063927903170871070770819788260413400513493105815762792037996312900669499018027850864106895192811195454587116844346205329658648867805537414432713795188735294725231202882446673026034695627996666301116400934776431249420080485683467517165200430799852025570234471853264519658018044745332524003958109663715835031655307333446327577219498470209785850353278589109262740708992435943877884788059010595837526897203449861025839610679373134455861166977396524789540819434796143983101966906561508910068904610560981761199701793658117549364736106060813659328844953741191827016292238531676965031541892983140354426884578417762379088830250695132239742925322569860284321444567435822410466528290335213536667797282477016574049138676785053909382504056337097271843393446183607287593695394382824767208799112063154729570614336319163199916612599907498175851562945623894931864703854829722540340525435033138906748139261073518801259157531099585379794621884185673807385954515592907676879274693795492905235546268605395557549386249284106925790849173249656412533887923468220281180013475571032676350684466809658938305009561161371847416057464323109214967402163928230695368402032392207183844447536339671442823895691772927583907522209020491999285495840252643518703160841103205534245764302387602110156176140807076018404826540744055527942745827378231773805905222953806657835318208129658899668795073420932669310709449463170851367037511833064707090311785953152387210895653846211017243881860054346204582792712004383768525885158198787986566232610268189239559557966267106665532929400824637507258177533957031733944364381407604333108586061534874847348199512234072828043626429048173961407021367330483718988083317572304300494243867299726319613006904397503612643499981529214382198157413777945989634096328169064350087567510125098428179615584592404707706804553240660367346605550606021577904298988612388690370048055026059927343374146732278235129018360872219087373397376906448433707012859093994607122120671108564932551157805197455095442631581963435029607564640177279429240266471442419981994315288345893640829543179158876091362601289784645514287891906393946753880059063011701018712251993801619173368585717714900955202415285223591264642911346714515880344729513842038836761205289997475235907164285907052584265598660256051903757216160164090187796137602351614430615954881764267117144997258459360384825458585557243011951352317225992497610224597698671128956067451097449355377074026249247989417080589050099229456801239752753880813435025831466515295381487451087635725446934022934844955711923641071614574627159204877777755452000867892548683672142961047947223645830755157385163631949468916712224014968669664881316044825946168783836692130336864836289805623764947310199911210608444873555508147721795210316285097212799274687622659649617631731395119530323591213245843720678712551182705961801542120616997592339306514238236094771757597333874765950149361055709982107454367208700532356211646081614798359834809516529856200026666012987185553333804884882013252286780739509515357705362111047161073387741571508260852838957686528810994498473378354036908344974521024307328686525893228009050823688192163914212449798375199542187878909285924799097942703054013248853490885962291257419692557380234375514308790090890470938801215945581235954575171436512042477189873829031703786856853008931353406400506649689678334576603300406734265699217009775587776960708015635556003475617085003785790707751544140830336546793267647054687021679558084903558179172848663707959741447790570063099567723590381756995368563935701917018702104756599658725038604104732576054172365044484849768106941694943530769740348405644847795882003618330291894432447996098580055815148458579194444827359364592948229975144637203136861593955575376692939356726057964558129248849311323854405097598758721887370441624445516956074028914734662988897271324447139856950911810425279201429213884367363247266485472244680310467972695147778866765907010386882970324768107454474259211196189588665411456353311087596565389418098064956578138133715515323924513843676356733547306654769797278327101884141123439342220453147177326761538141610976426334246711167005204349393821614694850673816570993570290431752384490245833287305844171036231282469472846926755545733976476250058515292283787088886925211590963244382149431203781412502620549352559533550375218574293474439136093150983810509665897980493209773575364974625326458621456824509058303335202348521860212688522608254214841125966337322756481799139726219621288861627053227911983199308459526166249216331060824918365648294938232619514553617310810610627661852137695030999664213924909307124306425396810240644103879083662195082036101210760359986316003025731684368403697846581175953799390294292836083407985846854195547799938912722100262413440508096147900833426142683207307638422305409321182191727890175047392325438857307200831714746787582445963703922496442573500646766128471950398318064690882260799087847179943574478931738377366708359755123857988970131790805349371152385865149313514007934798885661733617129056640387902043965849167061665020480197697898902211746458504375181050345528074961697130522637678039512643342775412620006672550070837828422978947618145315997371544210169121164505520188042967115872274615169448214952037726680545345216740548787446119518227088468835639465716527333111211764604240222626380593843885859529610226765594221913219311984222856963067450389666221920716337740645492598142077063964177812642638010931151823022583198077687165194659073925337966958835905061266499271482210253127918388832461880736194409422504168823257860985612098513294136455671122581786812153317504334528661342057688670424909075958733690845327146773289257732280958100517671591945445975629803054108343359605282757896497271113967685916746853289909558057516559196592413932343030704847244788986180584094715503139533369244223838354793615374643880112096446181691967610503894351597243868838484012556446622214279705235833169712324120992377067213941766583306201802357319778110907452298700437530808571954894007685365737161155558688881532556483280234818191305418947781660123201619327022909648230812119227853050372771153517973856766878827854580441724846009521663202584366188009386888768515146245902160303480826817878311182531383572957910447309291035495028439995578542298276462112194048278846035756501305877751190771430270679344204946355839210277456116195358202965746722633012130700399613136636124663500941802756990182594706033918229135737834230297135120122698512825507383363384168145960106613252730299624960528265067560093608846883165367306603223675444435282342218791984846654728270920679722907186750142684107464507107345167571041011974110244640215374240947288636631356549193405333268361204493173054126846105700673954002450821156494377473207110004834300112931077187628472536352210775756348457926599168752091987813926812148075518323351333005799092646195653761398485391337369637392508750003246245890494620288567938466800737349973272905092542466488285803128936281296904838896224863608967505069491081120251352246471820135923844869156106650828046443147532483815218681525587217030608881357239545950123293823168803107156720778115643286417619588415972420537027807864308641133704597505056245600371667328360150487421268617347401140185788314079020943846954320459465766209845022086208086955677303236781623440665135633842025164376664671310535273565549720104403876730623077419241492131077919402829759770233386873854717159480846283815922505972154456909563091230410836168934830244137353689948534604205328358167852274380611958838219433933312413321601850555445069101930189451788217327629172246527018548541432523960059888665371298478777105425223968434577779541656798290472879239365347774779477430338065019231007906832586273354056307519917686426047546362712048324272174896038810013281460904412206431255367927757742466094956075326060527196842832557757000830027058366187125763594668076379885710621083126597688325323578587643725255829080551975279205899170527170205674855847062473716145923622178893202730188471705690823381264832664343209322117807086764550830609830243489683414388639994145559395473464152183233081874185145095595971514398805749651250365427640206073100765577541603178816091907189260881533207051571666569463199211845865396185825692766788545957317762052316478038931605125412859606396683262399537549971597164982254584683098429269792346021639998240527145379125841636458882491092156290397854523669896060806440328063224393814813327119780560919776874155849115673939888493148698171836552836139726047893013612448122987613400442446822775279366748563436774195316409455308222508647467704737418749900592978677138347966737574653391768738450749326237266977630872355793972370198430809756840037458274392990224466086216863294568535733736972532445527232788012556750370872888525946105193943074678218448397205912932683446379846486208131410470346392550951792859889965089380510045336694783625655814530363667624515317205889459782187150920648727029910841694445396008600449403536102985612286948187852925039803794093602243145552992471219515608855370779830082459845213080024103383992673591132924690358309714826803439564408962033891505092887338463648234934364252561988532382800230405679257498658045913167490524812236218014792448671381214800922580947224317151313398015166987443279649573275570172591152052009735412879543576677288095627054534758377759697482375249082934256149245768909461605304338257592912809366270155832323305711350392797585936368189380117255344945733872169352301519271035940825421938144637947805855746910182409875504853386244880947094250390128055774521099486802048427896415681084773176129035345230342776190082368574062829672621717641681987665404548595737112610639393504763378892411271448469441622119071988873752111159672717585155119745662219442862911645164954631764411852595313790746035229326998723507450987093820340818092826106017158989857817916164468336161805261685642192483920832987438468705264892899489108719075785615023118574343844343884617480413197637513327677168814667328898130553620259362212179761404532827648605050171342751353158681633251592267385996436880050954452621295028039586492478689562230619212878088387674098004399880598815750772956069294605220658404368638406011213219738806425529741667251401604318465568069869640076576684300716595256854857217705618035006114404805409268968821530637510700866062301830669465984450492461161612851439193017405703424808436465855845291689926760815017350993014151249733688402214415818514293279307512609943966584640840075966813767367587977710483356440856492265989684695108933739048842058949822994555967996163057062683529160894645435466994269796454230627419821478207733423004750389997104456367116314073436118864285669680685984046058368652117790764774134216909417003022991907210047220311057659996799104627246778713275686761125668611811346698562777007167912938364820370884600209375797954782859891473119179141284652894194139503219749228496962565164763133580449737531590417529471208532431909833766092605533754986151652242733279926162610001331804842507855191897024714246633989933527080431840422900378491807680295669328157040284343004484794281428888519412538594298440441384172739588454094143742457189801628167536753306234639809044495717787249400848381861113472896569107101181805286766913232757915887671857004610702966061837219861506157489092639619728875135731759172150706033816255653500894283225738410189503025406942655673459044705038516202182990213990383072236778479870142381114365539103424781740092059317555474452659926183902903253793691111755398966495524316105102512694839026496005554136054926764205068274997822766459097184329228937320728602270652334631292096839198480353771613610936291418675261471840199189327621164960255544139485467581070907926839030869691273334314549500693233373539824606227590035531783353701142569891539420439094370374175972173943585703191354563272751412554389648525126727363922953260152147093706174700768982868679023155773807196498260438516948526717966350742411049762331004878432273891060278897189479796829086215209299871733126068109817450854527962849362870922799015604153483737383823021295786987530174487893572855363230835820211717350142459890556649814241942539676292605401409481756301207594549126464317278999797893983020027896238887440020749718485914855368870796806319347096757092041960782752876667953272585664734106586691755082677333155428741266820864677122889938210317689928790557460818820819714006455636373393924968933233947280822287436066428404199646599904746423649864939512782887202271073680509914622777007395657934963587262311308876427371166491119100988052086901765164468514928058422943772361481653726738165700416805644728974443116557362988013046085380750347849752851924326974439358204481249620728192709971289113602441461073293934281881057730121743960700192457334234183958956522656896160909672073109335791628288994467383279477639612914539254298828238701000216743834875535123854372700093667433914192142365807976881035010131568200868376650160813685763652387438482759259155758624813019370434807775113871585478883095423293982047015378732672529572337753273724153861920618266701122450484435677694550604664798113651555381323213857359854150060481656466078057707777569379975622021707279171746550414583967629966781870267460989938618345974352151737857986021932043944842360284442805671560181137931837259486229016700887413832999889107119279552231033262796879742547379078947725046519672899068708207858844623210132078498115772630502205619821961339345729041448658333637992591080546918042158458551751180314410216797985342825748375845941764925394342323832473158382957105493072156275642248416036381275676576362108262607999012294140353123974431406971079615048144711358086039099444277276865569825395965182820205149775846829478951758708537406159576162909676234218138225941760755974905144780591259914314250487780432584980245619356205168906916844990954878243514511229375689494426452797542122277964167241973001913306747324270972963818743812491290544916683370602236253862428606246646697136645506551791973165547263916939099296285877058180641928991101327042458227329172627184729501385373871984346991985105185245537811552424374741948165723646481032782998787442905559787556345633631786532233995626187903222593703784693020641784315914771509715194025934208244101468764505307271935768136676756371201481190061141439082957233607237871364047557677570177008257905466173923234364111656017141628957031224669217252803024987618592454536483400787689471458762634084528691748143389651940889643210141242174506760952690219235478175400153695278585378135860352533630869609529673644688631813278216680044951164231126997715084517276407965956473302824521411001195380045647938355233675120777673007717162115410518922778944701223703851984410941272348267654072161655304151296922128760129317602110304020549353474265897034390553030239346813540744138129538183230641625709295404579426958107206133172781807822929957333809527488984695907795739356906343541037837372797003351764798280805752008378443033592615948944989823858443577084586985221654269355554725508579654028100518300270662576733358026167193649310375542971896817872568873243969831414662433737445958710116704006533873358871879227965955298768592547654956174090263169282012081641055275145977010861975081902399236761215686367289229073446419826495035211730775825403021338132745366721964199615289008492162237621825033870795608348043095144882172907148041656303611637994256533147558790762004441452188653245868317192986830779818005449316525524518824122221341377600969660097194763088673858190647744481567564734402796954398943910586421726278540694044283708521275665870998527623836528713730074962363985771247583094996202842754247153069486913413439647152424857554714895988760262321301922736901990675136164061596008381472305380252709124233947668021388643537829322942311830961634311726139517467748712634430064109763080142445308099153885812615060770785298643609885904991277284355144906539065616047223891348170368502240786036005757413205471285555220736715523177977955490836801030270008761574143704415218111702854369072264632204053025795350515925015136559349845170304451301842609247294456632884869764018922393989789284438551501750072852400434834544048313996535344764965849943743624505739056551012750050425816098306831075306744417664742867731213737307073381583618899097818971478578434543143810165453825607404902928755311203411595815283715190437797014644451158039639566406117968674575904882754588933058254551329097992789374880508194600743322393168858909348855055563548516072717386299777067520020798372282772049919370778026138273776361706768072240382108436680644183829614717928316910125033825244601202873554342749492889690437570614940047276930796683800614697098464635048807552650011458984513582674996076290699300423320155556876402791557844940523549703936490978596281455540325632508007587195144918392384683769701217829724150262013471218452804974251673457924473310548753652853416899669314794608665888931596537965222152707325439307662857074015301454937246821155476008352985869889548859238250904371271913540221042493676308890171978748306740362328105826798938756888429043020956997432850245542969248561172865811483476648056432531105261166005150026845275901246287826894359333101093337234488478056446316638804168890566223870768115092444783593326505576057810333642281752893147196861635512080045610725860649059946792022926174398770635865714249066549127819468811107013564993619255745085034937526390594003179884154019178326072554360267369576438864599004451440084614573062336447213110434206850965058030764123374808589445877957913833606608223293206710591774240941600832739298949216595208852574727101494562595826256303709709400805427838858556303181725104088596810094626005732224430663815631754470409682645370927576583216060138073421813278058619600095742662927569721486348368255272279348708278136659563174706698157282647157518146948355374581088773627870288057557141944052751149730886038465661820945524798495517784746521878814155066915305426825879097829595161543639386273733514280127976531543664133592641162292508915775385382613624708476268213047870483420667909335875428368882505348491485910876287357204876132164130359485741497547150222708090162246288150216040458313059038415899516614015136883446199406436793113889494219790081195339352821217360651077397852079196986195085833364127633220061515265671473702940639987897426780683811407802860853601658080764969122843495053328867122281661977781133458916544635863365362680282143707964845763516093038831777495830656364530299227140763712607872157087606401275507496587010592832263475348079570816658943054557012747628568727176217904936931394836597857339418934906824699961452962512556927962842143642224643548031830910773043337685471314990830844066508073729227576966076996416797781917162832627185448595612525965551320461331846954718972764688845749559334980988724700681619858287368801904241660411614975090514649128157791551088138735833746463236557527563909411906575046028692652826825401271409464798368122179374744288220899279434798180856519308477060232269423068393561547149440630399836635898743191235247586274414408882560949503256345270641646094816821359759931384438984078775870179125730854691879515402891681121232879938527372215762607755148827506986257174939032914461861176938661098249388257067658894348726680201906123800164438159901367426268937563864011484710041574378888913941107448904650518577326532546350042191923664165067979552044016692259087566261086777229123704349858197219453985541624752980190110149492461238140592615694382560217880961399009251532598223554717661682665068255748321387467480534109285565245102794363138759435891164249296300816045269951083615756881916252119541352742165449570150546903706042528493759352035208888209785562267764834462695271718784110460013223512902532650220143686619082983322827223846317705050215668049842784631056575607388454494984766567064462253146352811481449090982849559537076867565698031718216241986007680522782023915382020873851401158132406818008154143427103023930299542836674622695878549721607220907657446329179509055438684595728875832164489714070827047244455258838727824545268030400852991905506924601651464577103684468225004952902680848263596218302041156374592399397216326864246520406927482784396675557857541896596854605506608745600698419345445929780246081054523442640669236601025613308141855123115371369692011323905489043514743749259708893348958168996217516989048886724957556794813212639125831372395792484326624949275337314378539030366831624036902670585907137142981198031741694036703885807509983993187734657657302700909524323360705758128107879365717457768477030376268816469492577017883138055654833615666167881405409155950154682145606399672456850735694274038921972658955359070303609853500925568195176070841881488569305400206098553122478493704369993578826115189377486736199043898990253628054404050401617066654797069311853955931683625750330240509039616875965513563649853390914838931682555099375839809377618605633306654560916789646142954890214020712248936268815212884325417469332598317269163889601309986343363040769834709935596732648234917663915401238771560191030308809370788667149817327256564224276011313432260238042277090775724817098880758427046320430348121056997029906716085609301782503370176785413604478687594330391400012741782463172806879731200700514499866538031774248429478332030598830773704746127032697131882362829018496055023279084634585541338475249050650682409718200094340622831360256178395382749796491676347114529318855110859210587289385137145857370301484265402658216030223729981965522018757895634448901279814687427430316826999225375434988054595556915364566138119383615494341258698097411170221854795136878774990537952109607352874711594780596993589102860982460057023795889106901753899685426622423107687327985927174005350377491818294648138671815112058508171738152553841505080168718540514998687257799121589757959655427242548403469369523072580390449987713648608420601382178466873072665128425925178351205450501004438554857596540814731078383391370523972684365259372887605237143142514805031418694415726563659001358162556304706394675389239640433221706148145486690512102222340742789696885579788377096671441160038751874039367083975689559254074531548687080564338232639456606082018007911276429496410440825031364375949629901260135444311348753041322887005989170624264192192582487889364710926545117709895781106715747788658246022298332400595765591447737552726911893471698366831044724668388094745381003859784034175476048377359265885438691729570646156909515985247737318802361780194958940507244500359533829162843672247063907721856946614401725032829429460142311650008407927100259303471394204845010874891479724997444622385259857475867011087603870486685426081260337515098299270103470485437909062613369924988205282553147949802949010902201280779593354459802346073334344122530756490770434492116098710187562062170613659761525994352162708188232691283764696924987249576425033032327004697464818478789052975781827179611253033968994278862547890733783610028082595424570099317959388459627997940526425425427735936631221136491882453488935949709210321114503183739654298468081925697454550204845813543811638753337111888438877422326032831782648151416632904130756826377689989985910893746157835560993753493863003033833802847770553677651217280555930702653993092279204508105627301853807617358722241677111731080340813155289931011836788242019808403066327299510313789471975371327654256316665951277193953971759543086345316679760866612747306809475942696758530337883784825546654847752674673698961350788921802292855162801418899439180362788867320720345453092807868126786380916362913546549692242589290334043254795537076569304316822385655235681105327787816285810553066206983035517623191009646946808227748788661643968797094776339218698265518780198245225671332263055672942310609470924555437343751789632714648584648473986642896611729045597438356117460222523149126830735450003424134256765736793018267441765402653334184124993969882766506275346743071129179437019822833042318515835772066609111180761423438784932284049070403098118409521157267507960221070208826373238169585490647090187713125738937147425098153612720339080107864254277300301943839593090208457417040764008251492103297589113877343093397320207981482224285985152098463087542141499046620994313233585917068535656466606769519287346214324803314604372819007717404144698237310171713328348685835853671217988584374159457758718801507202030728447504641708431074532470235309455322210256308440453725145672393847365402014906573680622253458172790959759824146607747607810768162956717169397449306589313300575125735991145247818806344998145496987345923573968804270243509334060566469051940140006794159093695810133307231900140997661353900479990218194032597364776582077720651540507717304504915147471360684414672490424611374838404648952634107088120113789385709288317508101192425256101718913100368432016987826562983725477489089664951468077894611549523166173211964926246190778652474554580588581506088154719849742223912061811551819622543165494251351284133781325689730680359323026712608677093277821250348811810384483650882886410015152358412967038500686212095286402799778358044029178947032993522046909346472465415205003798344746297335102162755791196808463636631571413010114105240687407718041605913824017141689797734356146391036274569424506647162628433364018747319441414754579702203873331567495660567048949436829462921708758381985688844011406825835154415179892027229828303563052561320840868767485073848588444488169084953156939912924696611378241378688638388440673638088360303034579540593610138813218314187980212742393500740984514200407716950877131388711270192286175259200082423435252615990026670020970567812782514193497769599827558349220164352997689902704767403358280169083108024730947521879549076406647036150918870321612323242266720948508911404348425579698611571835489655719881303185300584341542577083560200458362499229838736873236194286560569658796547504903940810012674986087000157507306254850007828640044204235808089794347207900784618048233965979733689430188188520187516268959724835885491209617260425023653369388339500852353448726871646415327587410921263721260306712687770193623666794704898016544193064162789017739013560379622246850432514140794715137519624079270042438508744275223456477834363342811549287334316378189013724286125199227132298405079194048935152068852550934202184885600741578377111356441625301392591939120973193509551743563866382774416534240805802935868403740750846528529679328770070886616442656970257603176689310355265437992826826354073805798837754956438890767987790322829215692451788768000631974746390585262126267668693914606593771712358082222925552732264659630154445667216789055100720990290811431125270476410302418893648529448170909804547598572890070741152682646404311444770238286891534849984388220496054807408945497203945103024650175203407150472269599158609676944472622644067422864459237611851367244047576347847445600181718389562526185716850470314102719203745204662486513730175960554298195264486273040690577528052548307728672801823760958391213161622275317946310484652111414145572357382929002523310706282797775211375640640480621683525359978839798382810250400507562016320274872100455156159396851481161480899653897971546496719679801039690615991519684131374941965703977992700520923040045702953895287129694477788996835075550548363705027584408391423474359735694291046890426906277048954705107608348209936852099858734736742032573215698840863521708495426260511991976500969515205870017072821827660843293870636553755874172782121102051642238956171181384868193901513901518699101468669348886190562575389438976714616518704269479932419052026985276909729914785929559594291348827852366958361854364847311596310413501856360164569631774155930632967392198629649840811357810740969387801080276828278671472450167289833914500235923132318543258918629086725229507796120739989405016142120727450074046215864791796948863306163200888260289739794708767564722696962086787936326659160827327652687359322351665052062637364599696257494378741479712709889830779300602519998749998089529079575584984049897708079199601653819684894429713740059227259756710224592469671289269431845433887062623940951394738005187477696585980850908720505230208246020903998734560469902170615393766368818757857655682204124532865845167869065192706465977721109463590546469899718632260898699962289972747938418208014224714732644302775188350399103365187002166531374715370137247304285848471266493936563079935775090921076473188152892901263253331278467943289800556398433575404172459385918865438042482399121173717464531193784961074850510654426221481863027459140707319295093208280947319262190883931304324080222009649217822093138680315991121192579186828809869389878977582607073493322563076014670313764696605620208116876975932110572576199128235381828160303924604968298074411933655594371596013701512939958822153499607421650825446174745411161375767696830493779945752386029582061822074456828538061812268592065550447937015044068437002244062257445483333943557915098982640981974958376434252877085531578644834627259013715670239879293619088152812142026537864611226950580415400033893996624227025792546144689591565528600901501218550348420568681261338743311811646368576907690044944954078738871957921500003073787044238098651681276929636202868612911274512156588698866301669146556697111496252735153987845620955522312341530104624472885680595628667119742720888938826205078576908199572046082022228850383128444938267893771850886454114636103130550542183731590745035265083318414614075159484585188409134664591449232928854681112416863714180520433035308177048703571608632932907019228205967246486738045858799625666409765078355528051880856955897132328835522612642834416920796665875655847284505394916099211183230472416774921510501148913331163097522016740481260892498821322956579902155026419634808912873723566415265385780875427989045075387978001855158376033121570354520203382987377198418146297532411234906372116612676182293478243792415897184818854084625746470656828757192687690347871677441955139448346440801540411883424453967625815136751833138678846963116701295339967357700774539087800343921589651028629444363193924676965351993656674174352984991870381773347405185996959336720819919032136664587204909489584393268133403316079413322280739389891995298391809671507148620908574644122015065524225601932780102074759337652965668347307288057117539349511505049968195654663883849330310886743168914635184668752515017032618567438868635915016343430388530168943795591416011081069279893026537828425294738323339475734581490273495640112803955245804719665133136704341655187200386135642943737054290833738096703534226254992976749865705293850274520008767039211786659877583776235031867483538053541338384461922719727780083666797372826980507771514472712504824192908881097304057627610891345126364152752669618696426015744186724234561299453553752623481359105659291567375827653272603968711798249540449625715524728530496340710479055309146396395812819536400759566332140621903499769866178778327072856624200516410843063619609364145700547394697598843200357445448179628252499349990072240000128933715027711393729400744904120430443731376488517450936744193810598512358150907558625820450997233370645652890125452162480665814458344729648439390422421970104792797068228626763278223704703780906667026532136095204670031016094092640880309245528643357969027749174317245877037366938912197438277205651224589475198427623214600940963282427698069560149599190296102693176508466606844214119738912496180314011817377671303072127786515624209810746483780478420342394216834446862788688649992409206403642160741807729277794020287670667599187344621193746681056789518547495518622907204156586874937186555833275187134543309279958522823825068973624679642521721771788513046936068138337479855048991692580726704354543612572523343712482326643540203707488752275156320478768703476044131465533804589999287539583291225718260675960509681299755678747622350388521466123916366198486144267604975311562362476967134438284770508028490007852928455787801391927067403097470636554302902064291777313318727860556191355375186322825753870836679663315906140366214983675052952336731228660925730563338416661307241649854215067727541160674904109979521027277920904843466146968019799496507545150508494043326124740824374942143968831994175553928561496975329408394131144452993797325852878060694843076299675526806981880239231511217054782809833468397605849746086826184779783208882349796061645695117405597605434982142323731499225393224674314514073457608016677783173999142138951840975691308026878317646355961530245194168599228827068530071981763768794172955777548767052174443776330584029076492544693791727927924742980649022349668371545512410702529403064344609485661425396333531863135189510412438680372293963039219346557633783450793034560217933679256828087105325485312800397354985948851047534418035168389983899578288168568824068269709315215577220308920731524847089483870504727824168471917191616803372064228587766143459436977961131816017580587232874051024592440465851873488015827265309429680899285379448664462388076842225328869396302988360752746000911677250570539730228812459179894707528890958755755344850165936817312277121591837219155361421315487240180380167230486474937952542029752846744852321267453482202050291003814487006420234766935139855761587739980209744402065516094098949697884042445804516665991545162329220578168040479328424809769468942964319385523139853879920281615340061607964875055826235619157561997911136149644718114004945938204533461718891753368294593365368111060554507684055667957393637914816602138211286888520107630387945688088969467421726219500861692463530265459774193368687739673965449412848635893682073991208923943703518750920716276494520561985589012326708149735930413232784476430052702982505587327991525098454191076958358247698501154404502733171454310833957639291295811067345733876766094734849866848912357397106684107529970080317028373002229486429959530546363520039478163135273718469875988800827511302889829936186355369906738394877027799680590245609263124686302114409752153330289159104370379078862262686960683993418391587562542345136178722841749160026937256728519701068256591004917440801411859445360077616629524153816525427692291227664867118623402244415749000782196089703960046840500623398892139272892832493117945620361306250666576144922939463868985676746086256732723043214658225123123429689014079173316559570067583303652372124673162040980010364563150404242505360678718758409737848782943375580145731602289681505038997008458711481186587298288458259303255215851694784234255793463669983666884457806542936406881520918386935162097024458320223732079972152024818554978711529593840281278352037437651949450567994463344406305960242844876353352048517771908267677934213692494607931547237641220926211800879803221794027368047039932261087329766055394918929742534715081888161420627056374794548896547262707746457392545242002926340538807253214463157622888983768255169515217600398625024484093728249031616426354528241198857383079805912204299270697535755788166630826039817970052722952720868452567560851206382466687377652695781162820281100640682682243576540565899548752990179570972217648518279431784127232185581158447785567148409205541610214583698517769995625985140287535018732000091103218146525962013091483998398106681716739528896021813974757552397889410222500307761812268833977150248723960721640194512602419619108758093116441405604462607955764020231867815342759412824535685807488069294103851649784764997985643104551864715289453408224059255105302237121109758068644675451181638085296129511653495584872853292615354912871021352515479991038176410769040622644673226597555861863165883672060322163443124920353567338075887113577617427822364521136253543162148424110224836159060436472343185816538358671757144148007432044186839658075082894306084812455022454964622130826019205779502626949737339812420548107833360467074573156092277698221646202018904720464427290486685070292626726409732525335912775834432617257742318037615367229610881310244577663193916769656036467818295775391044182006824776529477205213567146786633589470829772052064048256165107709691749847984282771406260127360494355489402859510056470995077500177131476518858277861291856365760015186346080058108470822238464145559818116037501908773317434811509863002509610785917956023534822806440152863831008312121766319113255891205952543834011254853134798783609632305185960799846527243969396579961051819183581837542433947245924894806596036383223188575711101733477768495876887347655625005597248678248768729236007962930543136218432057206042505781780004559433446650339233601099513882363187776633913371423204318531577318057503871220518023134526479563018748031863957526770727670159914337952131104122745643610025694933829573507851804030817176770882875837286325989096369720354873453398024338620496854760575301256260369867417692339776734200584355907816149848189278481475925413932926322091461379512660021515342649575228444106153209281309385679812323485187295002241693565432526981558969361413891436595910202745880236103775885131587719436637550485012097219982787129685180692758298523102468258005281579781634292866459249669239896581661069715280628393045450052904101768894996059370909572596045056354178499566911069055715807941348243858838588609047949575601089396829486994715409246104669247487906914836450601914100146018348723111348951034618559591375187198771053500759584254674405468517323869138152382445135605649308155205202491644852110781421986240524151123855636734901660448995432368428338042141192188609351788759696506520893342992762463237601951207637043146471003517664336609745032041918896597467077861230739430050834592005476688339675561190085807305452621096239527381817893039725299679079659059345609006852275528653643670467351584922538037228075283972263804311303320641977086133344538091958712940496384196233272070012205612003658147155421171485186678180603982544991855574671184274007315787127964961709640025815219026029705956070599828542781501250074609754104935085267989053195420390595478307704249979859855597586312801700847399023615063029526016101787789282115269947730754734175688937015647202189926497101916364691403458628082659436097699299980038577596688273275660391334616963474806947327033653510160008111832295364377406226456686486391593122265424595581417200737220280776285098578342870444838334348965156880409520031901110430267318882103839063273742601777394172727442281380406016369167937928725345700201136974175403383687138327340057262685775846537997834060706352120587630310185557618605341955167639573707409285377611614277754363863441367269234765259938143250936824899879138038940878495190878389755144963393654078606816112713445548072446247565656390111419606346393022153649174284486871683319671881227241609140780761603868055884693429355614568683426142044364146887825966691872440120192490398719643795486854310530647581444804200117467922498010517488334394204290609739234427138956252179461725277561682627188384039651269660579047857762845352294005456798407664389296839092479987422893666499119610538262231139644935256546675937235872226570060458925097097069140028620357613852110186008949184515977912019856878312838641636963678636890801823224950626816374011167590539457267309017061054365795441023312537743532288523958193717573410023785241248657392186894937516380683953037485252055840690157796499161838628953436052698389496170411282306317260784782250851787285746756496040700111482259645800977521037256404262111834705377234544561026278720529289545657527159897652984143355554877967207162862862127141344585244759998054482709175810853473655362932531975807313774453138874674527794705613926044661256014659094687551617802211096594055838290167213308745122461083130314222202543434166195427935001283005483694220808327845645923046419504575178755615671304775281976717259889794899740787561976410229643205437986695676564120277287257587907796588108476592863870930572207943030379139290620585058976442802925043376131385062697837548402563062389376045127924507509107775905350300899817915726953303496705005688871407168335861849327453848124419047812331137956072666317061172401424114716971062144141991776251904821644680919035811497976528328814247814174453808916856266133571505485388421348582621617978296058348010461426115064426962174253847860326255177703560694441928819341261791386216561339396995172510575284288733298534267808986215198795065816581793983298922109039176079822307332360700846916915704329656437909276683088385141647917405607687659178495178348823962617770837777937567476255592418465645506542017016080591587462260989972707225364050563916753337294582816218583563752840803559490092072536084353411353504381293699326821354101976148111036312429821071768329754013032369621593145527588287717398987915427146817398240677141022811122880849450240043581681093235686266775770629203774149481574902451270356491123324416731119796031958506749638244112563157321125329835459684598447447367912192586928799947079526803926610452030411883557621714411529809168876745310213521867831956672037527397634734368042391430684030497697252662004952370568170225509819551849812564434149113892766047950800224369719419941853625423629995726049699907495533811939646472713542966025963473410970272577415455245150678956299471886567300991875479091062323514401609777269122736546804647105421018322313257557943852294013038827815126806089610269536993198331525737285242767396375155083849704274916688844324227833906483480012148801800824351369174606871480865557352735116986498082759361935983505174960050240000518771394489917856417066415337685932812104078719574068289682400277533905990135015530530051108503715707466284754428671153042824855921539881441822726447684662468372906577141775552470917278701327389272065808733515178348080772515832711891153582024723375822371028179828128539280327528153253425674443798595134423809605570879745113441962896235356474247152832050311202932391685551489918805945255355719719680606241082182783314020177579627987356650012236199999842466322989413555999244343282319922703306946274836264667645815435577039489840877144798940864311917532170233894521248765108867323883916199049945685286929378192328348947180372170557490587876137591478533219039599285041058584803457865995282154184080878436583845730453340889612150789412910840920229017756814648813807909705645771157725809890050837086704267192315249602447131952786177778503514200620989329067898586080858023175264731556063810424288136294746990625334089221832766142164525329240715808798105697327308900961641647000565247082571645092241212441205412630038414850380091002603881885297875730755454754954991609676208919678263656143150951709304309257093862227955869444647076034968390164473045260800712742689593004658066983539075981684746645059697184654190297916085894811749061291292111008872756301793988739716048751013051782077715765984300644043855316218405925189258045469576954266411821880341626952286214384335103273517093911441437654597896157444978548653017556387266300379626424855728972732650739198781641151580095195162401763914802468961197658233605086974151444280883911579863436441747209705689024075472920058444040816516630623988953237492428730246987891171432164089282844597566333507158008701583401577008126226772965513993730091012815178537990422808785515360318816015340037051481756636378215428737684216536535859788263397883207541619837707826126797101549370161467450775537263541777378228096946551402971817725906842098747977774532247550640931888340907751127110936045897132611927010057246378669687874722119379828862165766675714356475128120412807101778332055381529344531815755429894816066422377980591158144157553795457425443677500253610015806282145152442941656045241089591891333973690012854546102214498352704049281474480622712984133984680270953429511466598346161110856440919286615854837924316583526078736512384054243011687456944527231955331091707813937227844139990409492643856462323272346326327175197208673739023847090867178439772743200731959816673415025708874195451142765383969803130723698026077279163025437381852648973776350313570380933383766836688113089749475820217437361698887315378747843435104344192359329779536396970562885592611948309697743866386017093093885488217181764776679585649080273899707789765811181378492069634557797193736486488050340721521666593757665436515393382958185011440184967530966889385784151116445758476965752301790423039132211360810557843133031096269521426548411686773763957679506758993774236846934119996013203734087060444707991573647129125311017440782530577998812932760207587044385049193548803046000649249742237880052036261632410026380114853707269261058557136341490324989054243246798417554037687862761972805856665067609944900568021660927810920367235995623452714787270683907111314982302028452101996230952245084446382416078779507357974364933387971013770383724570493828561865698776597343796424045251613591985638166992566252582684674951263930646117082834003600512044561649199032490952538478271867465393090527467278947585158752003187269748084270740394453890904977784719931083677766039045035332124533204197654946313653011163217433038838232417142321503805905258260732873681807512459067749913562086374479733729446125672495110267571454771660128263085957672138395452993902023219494389437110587966485699232968652267661697879711194402363292338304678336072933891587375798900193169979103045897509052500739226296997137723125694159107303149067453436991611013516337520022468238429474971193927316680051360258657372363079908411002986076376791020954019913339888309227818194685287722939350936460757171384521805677903076483328856332862564327500949964098706446123578648663483442332090429924842030933773093863052040360918173028707991158776407758256423221467914243684935575305496459908169020473489754930740095012021079728478384643179886162492730798535847039307417140781562444144785947671946896598519385685459346521144754239608724773650322630693187971155497615725129202761794691054586795987263814476140962573592736771096144078732521452771630810100402232191539534995686163985171790433698846533746096779507972049575691550195596399763222932262576247209980842596407587587345434298436776839758447576175707645416753856239290994286928021422270789974135405238628072341069007383358749204298191102132705251517892674264967868326186443360837189051767571107275329040400219358426801077568576393796215205093619686467685914586868286738528792251830154734248579443789156144039175477112630032718584097439367087963235416571641354677365835352090607825096509138731728141714447216065540438715260737224426959875082295681018102319569277941084211723668232171829444224365307196615133969721759752497132510441331095640884416801964761526263023860520552341870092582054893124747391591169849776877439932728449851838694343952667867311576794729303284775297576274703641726946735583441778914749182361978837179759100860275389006440163494236697520616428892423969072752230721301165273284537237426556188317932172482272938642100255854535242099791811230231978630555902208569676991059616994517975177562921553090598262848995276284029975258133897947708773176463285792985132638743465509153060187420794730758984284090728385418452912955531540385757718221046764923200398538170199588542397601526994126583416213049275105555120542276847602685312551810280741744254911955517096074429558485624635226404146108934693164161406684473933942438488222856824740826267806114704567698238910518519610579645266014115610127410700230494648702620057349727842875643279387577027560164700343122678594180288746261280252573029852613209414157063794290628005883217189817778591581178351270103560598433671823509414322565974131866012002995928830822634789064110398956956780385669772098669389603572743944523808739750785667577852759830751957301591371643321387383606094749189220751432975441113614838477663837320501858768467155138054237329340568209757348970313032882462719089301625182302299825600289329154774302251109226860831979028792836936840958698355465535338957232925626521862733194591817134932658141577467006440080511546500374743626652056034797420516754302487334843974800637855433215073904821126272403308559799409362750467243440737518749533244928282298720982468111953784789668445974592587638959849147429323060874877527978352390805413329096509344560404978415032547679343339614813886924863676677988183365646946942002280398227656133172606601532352992131513383384003195641166905951952304804671866082738638225955046151303997758213670100772576392316040933745350489172581590085449943725949337714998177983206863160699997126866120804880351038555090884348579416455842329176185311018842613380957555144589248906173846253183772538025571995283261071080520802443394548785246268667102145599775462373662482380044136334580421471189859202261189996741318771708016694069202290135048226470639837344212944944533256055161987744929950769978215262267802613280462183624859521552224943805840673300587809766974718285718067578185471149094933097954192820066852736387058705028459726172133719627067728585690367588150977284834260637676692735496941156575794931077898254141694013524537817147209547367543053175924657980712096601033010415934235978403507830593319731693382843294246910600880956358141187073402065644647118090586203648838046574501103684454939387820539178541567683224456108866761298243180805623870352944157051740440787901368788561054781826806644972513297591841472740678302683858508053967299909202912738762634173966403236005838514878367260334652210356279984867835999514423540242755250505602430117920137696561583738103835134537834445412414346869583961923117715343202674275977793942176245668848914172880471564964754445514883461657256366939871904726920525171362148944931307814373546472743331179931273912997226272195107111443495573340578493005166360500025810023112707592167958641802483893770680710801697892504456652128497368031968633326201254207474431032305444627862348047012484324457207619760194381576347726887064776554879994811112492688645114196428570163460119659078703759713414856439826175607769655842280119045875260452283326281911777427955903800928849583548808851071973239165373612361515241239963427330902453317780019470066681679551593610574790091290766972689146873645841397697523522909595853741745314533278463626739401992336531277629110048062330923248452705751137250623641004383616979840963279361969348641465095868452751409528182657674287315981565020026073868068029997579141790718268102978443278136706060638216385179628352148345614924199154296674526411013635322245463137009195928844829191536016102449389897216524482222558025257737229571390540111816140449133700667501859246362106892127884321762862742094278697819869632820663233168403270126343927662050306053051552758203801136025639575300284769771525798267387668731166958120209973202913438178245278459428867213781497853349875170747480237261132024899004980391136276117090925505030449165479969710648535047395370891816334562991914109223956789282047187326018125494982237814491543863699751037357648994198673974095452437371965830934568088997355778859003674785301454032520770284785770485186067303304747554871950402791765379848051817929156599471106496428177252116202673801868514492001905556702507241062737626493918852709911558282502373471787179752068134254404872897549275604371501016245892798354787021557764423285214408988633271673002252296755408024594938778135914623005923619847890305546535484358241315639338876102541725685759525423672394769209201613855977515364659156183065336363713192160455601132721004367640796511818878669075798572147403376690141136697157753198270469157738704756937904397683260984697338023283976076806786459460591211184999246326795953486163204592061945007504597185271883675048126108060738143613287466078818658120761178703611880320834009127051172374568237283396266529597234441902384989940660568372161884957373117831653389666346556733458937086212473732330251564913943119166058468311661695267178718307416992805455291234794272543185357158048002806630043796161956040252643496169486971271267127139584367248588029414098845072318362924768083836583992286919230817766966832032943422981617326718343621643344127745192987536157223469212890570760207934026336025451662346757953127048926177069084634943340315938712735269838793596692265482500439753385054037074691828613051302728560080357721099169115945430862176536796744594829373693750197767628844846290588067580483281509831765327613719664090523521477862075246138450232864823124699426438661110476742596077408673258639577542992918486459679257146822876263541560215525241932814650231764219673700912458065235705519997990280195412493384642004864976327508540404787402134817361099263718123367087322904055210853977460909380346004817638425705462445010171829982562068403708164765266095205076178183579825268363456106267360416118731100265973106856893564174534217231230498150625728855091532246434612356378404750950378377900441289564558669949796357391997236872511115384081508976551940632945353874668069755279766290119329000389838716689268212438684892445862672600839877319354702736148461312044989524358469080342486051732333132554254279491322472940077649821550437644430908949079607722644829337918340552520685119415849770116703124761095120581342504694300189180951864884992787325726995936792578767263548119725754995147567484906212885221540639561165445223965376866098089286251570974397187283646697306293403798307459351147793839597994538483463802057134712844177926850549143389131999596471543431185609995148800729954121231514935344396582117588102386770857587025106442474668421126878873526757557772701740545692578982364549581696711046724443761885207591832871399751761268015344243530019886338632117014234386981494784611307067075051021762642226337065395208317905334318901446647942086420067777220903649282815130181812792141349200953261782677295469625970504690360497749823833572288887268920867475211868372400141112651740455259201674776092613731902341271542009589197118324941440530939435253440931857328302020538443546244308099121101630412797792637293654554788662402745492814790137257926303606962908119823169197676549354449651288206994136367773786158366329723385508919273525266685068837210415148179485550366608845915720643636833035704311310171174573299757336935605309635605977971210930069742249693683082087351697537052126854296416666623990061295071227780150383974299322040365349668673392267938642761433304205548412099008934831663999220330686871756506612599038664062726793042525048645947656646183214429976440844927571596121059901192410979469595437332066785436433203270710114064150219579416469471729259233939100594671451779746512499771399559865920477598523353330232174656926639197301625380358788637976565620938392842091553896991726785052617783897158874063043800837659349601406357786794875759381396084607821557529684363537554163578038002324295516423549212865741081329415055655366070921674193065812188771411731844638276238727123149727916221148934425892514761078033911182727081377794612310903437224373751075458763335200660802744322479322442607920418359746390907683810840644994649771072773760853738197555319112715196592657165637470173141372620021959267267322688158364725951124320041518669913085016922394114054359263677005890943744230504845290273132269121887244800082012354171684617960270992501325623173677228935797765981117514010042094618520832933424122021692041208382777632460447364780234941398869242453849131610338739965288914653636313112020716615247957945203899373296451415155882820150836229420667387119202973173429544663221878914118738234302726023404363630212985223613950573470817156424513465450370344767964786519162952580273432717990809137622011845533553590090421911938532392369448857760449301786833265963832715829557049008172303368932313130649847466686759880182580594793681837186398585773343079581128109334858950917667409723171662634426925974953985414748204064546541547925755190185047270498032928775820230752994577451666260131765677639019838849485305658782768484202348963446711283309676049483140691120781335572679723282664025736839637363860030904321960175478541373540523464079331403787097710634994803260536097175046048121685787134947865417505585524245256556164168594237717497220180289837004050387508382419491219372010302368377945114667916316737312384207654267301104606075925309618859783780714036580052258537019689315140481266457407742291992707632307405246973911221556514861613143156630815965690214166293195916501979014739995235961853650042896596305670953009811702358711210218281669834466766754627041320573474229387057411652879611287408793095741023379450488994709441926900319370036746824181365497876694453815861400434051283302509718152475850621640520700874677605968833046218740833402223405985965671959898587956630165327680172057882658765595414664740818832060717853345047646977837794914253515259670920049228150086825004175297509396782314559494089603301405363340330329174339748840243257128377910050035597072678014227200676870854688672376478079289257988726476604432172027097882321439894617785562980658378837650020610509236062432338373469667741597061944262344242040609492399814624239415096527546501290561160479573883837615401199850142712803175413192971129231363466360064846526093208390754555494495905988052615562458853742395964398259822377943143867180716181648655214648470082389815070043775438970414535971049549464068862502855044809799389356278453215875600679364872983561622757640391554245769129933293551900264414028361408991029329734965569514329820010730535730600878859726415379963546310538148602060311069237588496406457433629052676919458487221524794213742788708361137740556636852861744459381663370226960947572031883679303761927678346862486570973346270464392715680694076021280811961771454367589142309492693235697349153261089535900897676727222415841604446434936545202255171339989475120930193203366898904067798779657594122848737373562636066652475029372968013468457849225579654537222594389025256892349964010313912205246021944728377051686803465235108173628758003334476797289731403349221713611272946977590516806240729926414919165558774329917739151649879712159164872875663510202437879376793674618943811503483408426645626196448025721880100582897807157535699315744835597292719625131531214094177008697858860418611080536734970709204362261290805613417928091499583199744844626807830918419713107339098790813133623124320598151056430340723589771331853372079464267112969450058716257209641367722644594431868906830973909829044120111644779510824320915940460626435764342970482667698309061872492850406688966199666616338854602336793329007070314300424750832635357937047661901072266123878786637451235999711287264786227712458049417377734255687775671213197069022213958409292973925386583002688490635421722149030712837707890788687831676901100484775984664364542572659827295802292939237142060362687051256277176968722684121927507400778391610376549072606377578800269230359750611602761767332975297703442879659797232256489244750230965661185902416815215486015785776108704427095254950059208262651085856189019831703210369590745726820909086977532906395169783118535308259509900081385011455265914922721721049769015304858196295621668875251086773408106880174628841439119106897417189732189693687222588496818210740307946059805191567615800538791814625635777774804740464827825583982733601753649083368337345295385436820220443362531508935428977915279845542758351611788831491421017862619463398824972795164997809181874912714118971624358978355999203493573940558297395698576154919007008793501949558461214611020948822543564156742944721434183752658704578029180917265376215051284184839673805187470261708290221819566447802479445314205287321379934315614955556914578486331880009033988170432284428855864443014795051687047075949098695963620560523361140156368941356839239583043069175588284895246736167091975975967089458931441457735831999885745567879472780521918817830333343391741442697761239927583137333410820083880695303490861977732662348522499616353500830685331005184895438689947229199709837312598604844998010803198000171948873019766539933847051181839537305231914482022677620936127253275108919393944021112851518467706285784599260325025550724495110342220021281091816441465553900751855600627708928166984452411743542588621623480861833137761272963660293896159987312303553993475179218768206775590888460996878078082171746025241590563555768510867121123442300072627250035167439722985893843831060457464261726649399450170939029784243644836225433623231471899328651241068369627046308165552599845671338040261436866701369173264182335700814598630041178158487505378552526757450528262212441439935986986714181837168490356056721306883273835169892695378313087866095757516591616337014913963762788682099089660485316585200111741165588855317985585709497116665301941272711771465863950283076505975868011342050558366347053178885611746903044737835712471902724376607740577546816445973573126021506243854433482352436751487821222503538000085975867251807391129212945572669551021637070013878868741949870322294702622479220278311938017040549984329365622053449104184564126615903424917254068366098725666888827339588707344943291216951873491246877968689934327112888449626308426134213129400662340956761455071380892384543083693968932402024268182290039239313686099454946805230821012404035690458098448894665685345385750134116915288993649252608057699339558883799828603418804862111182987031128859978208408743153217058857011676349544007907962973520850435998980911097181201045220622598468197158850649765219772983681800089112016833016174378177764310880733391016590033410599820481775794954440076019757018656288628872781983079005265196104168853530948096352992730924261472130748891325398334170747517162762359693708744723698389337986247208750352293538100073516605386105325669649637220956939382838670209520040801469345780823890982907149984116539476273294724218083962661470644956574321854493299187876302889001882440147101211475639829345856376036584159856209964223098414879082521135453454957661216412237849361552896565394306714119095018823369691774817016651724815571957896935263728973414888984305674449288571681069165266716252227901362481327987397359902386112216332035206879897128634891031225944815914428343809871914790801466881330649670909353219654539316320150873370565513557809974995728535511710997308106099526882415539110258247620804994402718523413720607916922752501726848757533153668618047307806005415630150636524045563882063975043768300566398640627057141091365853523757407544535757908901535002983102887863384946520729581474437734620037164796718147913593248119019837584562588665043350267682351448563659689446585099840262837023417456567340784111425158923358635185802577121536094630889990491620028919256188993110367608427826453332288816076813480655100491971884153225673859428066814704442506229348763030757127252085561934133750991651614851744784335997752347171734261210285942338297077914177669708777759626365031121496836812253313328734521742501507146681366302081899608825530572380989049413799868062960387994158726488115872747521901685630606549846694708590017518127737910609773202271962821486190278139343197894167044164390101101960892466562102064704140915153905934485299345127556340639154703735417875768949546421573664665520495046928909112877396669325234365047541400332503905057683922694593391338691245788609281179697271945997857736846032394062947549152069690165595154639452249149587951591552451923639728778922317458822530281134477356184624123364898057604212957791616832548282209107644365431664331941575716913422293097837213446016272844054451724566335970004218688261052632257572351281372960395068792702238413410339042341939471342572157367277787933453774383750286206944002877315563866343048022203396782815367782940125254731747560848995471714612389917241151933207151123791351701032542979363182018769881155620142522079939599148781856071002818737981578737568592166248310275150139945862500382577031980079742531519146586803072089065532675532786873680210646198291392049477412459496530793708544868332245890386680809941022920331842306568982587335075643280965757859760352623040896906929135085093037821004295142065422520803440462177019513491418662766640038902468185207787554349966543656478379891325255715575789682307342751138153344447678835763917286529945477086269017005709159280435537560571658310880805168342958462368049992515160183196477154984617000084582755849004145162510629837817635117744076706949444244038985537175729182279309090882288441031751896598539867009650250723744156156321280850717649791409450340869126923209144314118662114413942734917495911559599324892375192328251340695329446916685895886133114097997835719089015606291734148230921195940732900585694682867926628862195600950164830272141692758484423344531978860263443586515706245244751265869164464122539118574614072781782345063767344017526745500237613738454043846849724557483686850625793649711030480719078794929686067716204348773840678257713628210937997297826044287014614911366787290357856741527371663096137323186511847646971756026259666062642182892957527615902097469552320048958208589548518242303207617976427333533951394879260448059770379860811859752896012947816547807722814868466850654419037189250973544238423189612121757229858431812435395333410779664100194784692131310492984598395615342906657396979880563344512778492020727693638761067746974655677394544507071580106242226162559153284932614193558094216267335222953844360984094197956367760625572322871150606331953655020702838567079042642403474672446829400308273186297477706488535316520674867786061335498799363599182743274131889174761525296748882015177979910287037832100427365957843787992162073155163065191536486823541831064549179957987454314042936804249411238685394544230604135852216318120447591448363671037272965788981320481563892180852625996045174055600642836660210201669029727617017853596721925478016778436529468530230467215742650127204285329194274601457379417788452771878305775031399622993740995169679701286194517177619086770121236873120702761933847426654757439644589654204376326207679415497660288131206485854972217677162864536179111534223718082594773132522445029613334949452636675914150597592104296295553023795901070868623975318823148491965950238576018430302571397639508991323960587330555760793841577672340751505945103590386955172635172936459171952356743773575464559496892499738890162380318661937677194639333137813164277338227743580994377589363849100324392300626308777452917483068152481887035802629245109569120736952534338205446123991600015601815385660623514679553770174705878054215363741491652939031055922280227805120286131195131503003270650111732534097199457094425884553341942172051654345421717212599524482965869248271376435292055831453200186834404416587384092213216100476574044292960113737057882995047079376707487117630350066698984135165299530163995920625387441379036320943972606455295773654207551949664477347098413984226658897031749501819909736717854204563208817160297625602269905866173110745074920416380672116836803023623148353751476501958949801837655622834048975920306488030849753768549772011834134318780221303178491648471054078910360781283045628530815591069682088109556685703817697120944374367212912104985651583208599156051361580588131855166541348225109811395304521817289372471506482274247541519599098751178146704090949680528793279294055289782248675685743302628199022484653135213475824002227687125566036096061599349067715450968832916408467454413748217074986541712356160145842188461545672566461249836451696812001123555742209559459334722309372791041278375836703702361492381618865983502628281931798601826161594625598189290662019336697074053765090271041913973692395398433781128452594190058199107000825835106480455858793514385748490008007209419976839590951025048165105193495265054866079968998355366883233947017427674821720801339946131444230355211821053560645163280754938150187804230841999037601464468815955261648815245367743214038987734041834988948185383583931894569037219022447768402420547603856303371040255559654252497555158705159050909982968349495395233530350978800998827197927872936017136673713669177672774081205892943386548264550892821291722662233415964361663840118026979280938213584318009371406656396202495468738627755466009700946306736338562632599556986388713568407010837035636757599887357907379508228182154172863732430438366932235246732860755387596046725130007698643178732117881742940299046757933382437408969773368131871655854254783367469644642615113869473265530787328911030990086498668745250362379259962340246211971024557640605491483290387082023551650606612513812369263485120847801284287048120211953326036305030427936475257118334410977015852362396383592511623586823215362044966538428539955604858333319831643665850333680888479559652177135745284815705467556716266213622196453980751828921657888727341454454449710772246402200870778417209916753987921170203593107815455046792659024847395668136859284842060992149091100982748281178958825090695093846088175563566006109572312538928760300953652019655478120751641011296402194041653233335086383941202793562033498119139142507891167470931697065587067180220038824398521107205581715326255139972525933124059289159784746728766208753515497923399647566955933896329067833890560268300989548771800047678213249923345946977017868263940070715942759836255505643382557717872134620828756098446009794105056760917978328480895357366064083469475895281076044125349907256491619893456945069678560659710483970725990499605654319726636405314500723974974745580717516516275418992888813460040102251276323764790509941808107665255502209152837738077119295976939059860999082247538730457895695153088588083713271694386139407141654397585482522513456244061262174629906146112377422783659468701510480546814000572563769977934226470965232029226438240453225190542511525654729171811171971896687475202883297562299044842395396395215390240960507935062558355106134342713267083255100679873960328295039385886913678583126027297034100517136194259573720199129384789806275086374248578953677092481909790474228742187558311396189014660098667091004583258389543478162137084574651397409782352093673643641892214444939462697950433589927533863793515877825778453060548833008068142970106403555877837248174696169068293869208323921698020492043642649058925334668358926836903657074740669719679428071299829244917613730362136758373782020513348349708600568875557798741913908137241713554228130903465181293584939732572340587320933027905508643989304680468034449402048358551157483009457295546824994021858043427561589119578815597759809186740254652567583312851785812781936004944308436434447433028492328638452084786505507568726223934400224330064003314770341771180320630038375689205443912226681270182324795671489782862296431635327099924533703210238177654812819542333474513165143163836112502102641158817632948288245296369837437245545159537432547743966673011333194068354119228084430838598227730213971546116214700903279179665937768075258687065426942066748468279266342589113577508003846966786086719820949997332845943375338594679513369022790590904425559881508222997766694052791504570129134746198510363289519588707924125904951114243805666912524677921526842470197492999007845696041169719917815921249939622672269246496281916292337697393962638886547995631124157279890146435511438855897821337870853973038082140399223080736362875300388865672689298453792194089343086462087842217599337242186733354524612092788568298593979452415772533950822800448304781911853555339077881551920829145276033786219329762131653920069174186763048815212121805889656651905921170584872585531652747526541622001991943572482188563479879222718877042779867658063391272866125134554367240626652915916805546303472841672034728833242064913459966188893726718986933989732594170108799095497781099620939155089058768076096166249779994950407430525584234853461616500639497930537178794170049462628268743421337240192001785175152487488058761745549867687905123468969962390854185592498270711214796978725762784643284547110258197434968406248993988573345110247614449012083384953887915564431400985695270674680123937172913575932449876081502314275961865681658210359978601464508586720223886592324292726013335100393026348841042437938379799759534023815524494079749663309653730277954253109115265783139766582341374496669736645548483378680589164275467977199740997495800514496622434245875885794118450778820543561571811535671896451275345643625345235109736397959962557280731059730484316879474876755079795029326593624091655016467590230441247166910269980839906237687971611423461375097121350449382691673197404094620536164182635643517191784958442052631884782239125754634647427291482407561496216996030865098420503117071751210326782105542710049239037586242940928705488816577192179866649073014782734307088954446581935381751914980981336025359153498850599488023714774500860199702052179434411955902446858368569886510153360397240314831171990790268971639423989616172006024389256283898419516391584378590672448999324019346598771456009922709931701398317075699808007220919251618900629457259760249984570688508739006173540171736350119875139939365935519557384097223174291256261192222625448866853913696803879837374492168933587448727098633260181244787695762796427066757933043697757828625812389572108725580594221535838701941118051970619824627157986275538147951472030932456856331921217256002977698706587808568704386125030745606322352803041846236581455431216791085079364718218714010903934936830446561420254340122663618542761985178701262034117137122009520634094163858219350764698575936439704846308641316045555358084921221007863538268008814775051825417167250427945578339518070906011830896948114663284836551371058980608224507748772596178826290660111830115084931331564555602519358162206664405704430377346916839188786585067124462914425115202310994626664889542968873579021964085978242562647068879966383716900571916140409360309555638710680103595263372613479794148454739344732043064524861602956615401330360779065242803747163597877501552256999675778285080178690013324465909623011949059491312667313075879608969121292401006390866554224555145334901068462893374781029443879790341406491628688497807317406707360402483175792829822545587225534223423157209152814279932892668648652334409355741262342814749412089923777323770440351796771048004325757928582489167281445528140434477276488409715060947703476394867305990309472612919079428383433459568043078782401902134764383258708727412860064033746261460288582362090073960137932838703727253363159408127268208409110865674469494469472882301996171835730084957246215415063928281019731114748209990596948058509925312333265307115841850151273729435891972847410456948366296048257680288183165109860514736932418553499722248669395933843840811829514163045327841215638252647097140911411155354291739391408082274986885651161707901654018259024501503239657905980834255411702622098453483316609304776218297112902120937248507955290220927178125643899973417539922104337483086137662722938134261528948867926985139345700898952815525429300265093276142807594068659209138680674580248464453426550055102663675161277271970359953557164577456907826629222664352364379735859006198089272831606619777606475003008863449746790945518513642913187490238771601449292031011820914560002838487034239411941984487715704228884217419567256145793810113081447195162277129109225452210865411702156383324545872765208738574252249540356207646603699931821051392079548982620254228213565559741017338443380859108072347758007665576112911976731612810856162063260449550934062955123565089091042673670453227947198816284581168828745240173273478993655304568192038759931829049048915417340379628381052398325469096255786093743874301907116508713871953235739900843893822372078764619375424629954823096536347729567544262556524562510163757811994432022982362557274338697683920369287747905143118021674528586625106455922100054761685022160034239934113120473970627770305226847231894325593908801429442871225852117581681350826517329763751837733110952272621350402732348260261255591472798835339879859327668411201290179577664876000698871235624697884503715252577878979223785890472218198843857130952148479344437502856185487691631080671149055999838006581336994822996440811525527236789240342187163721074771350253456537936498734971909879522513891586695044659483197465353120034132197240556135779221064247663765598021879187569709760534055058836682869627140104164241516818212863956395303585017591473374041900489914592103298663640114270109479015312004455110469192955817475062079896978090376351971372082131695880964374188324342572401690512858979929239651484241750694589642243872414051149103131638345911253352301366540525179197059693800033604699704819752269708807533678900928480553872504610958713912961706483102125573438210773861789556144466690131338994111764643570108066419911551440075080369040868607989317007111404920629470119076800033176841165421476259789620599255417464956873273506478188267296132910780487911190449367656015316019590715867193691051482051886386226954076340044592020158903855724739682307383790747955287220512571500708159231169337396424832179198234605325158157567554220306623183683536518688672338359159576719859563411316173444364737805233569587569750422833178497241045206666438645286625285981824823037610995905753694831800583770509612049785264951309688026010240148961961521022824344994656442200010794039226430329939747534112433971939508351556016471618231145454575473172299856800051867270927685233853870424811027823726778024341067737938773274194873807297597993958064371927975660317259991786820257044525860703976728393501729494627901497324904744986733745243866542611131978947087666222422927145383415481855443978198363915515562804817416883820512519325578273376541332007933119136953109936386275170805667517486944226257907586732152616908899145804541608955677359639493694100246289538160415950776704144148068610934534246438943436074349292269134588231515816290247771654041742666160295040497836624910200610478624855363475409323112312008398409946682962852747593423336935393520174194762970047062653990995892242945130871981872205223528818655229076974682473357907840685937325150744645331396250066338936899563519407811004566440828634836017967975668016571673089162462620633453624893559693052561535646502692711801403282928886325967672932628257456060909865814596272210877725091172047267338401828506165357836723304568871397077925473499917890111968891081429377858396276756151775276952912001729347415381822585036123017712163741372644441405206030717453872538500869927281684199991609137834280726616656206195878349087168260867191218188164819302845778169886180713333328754850328218903038734482864922908232786718140917184793885252673525737295250497524738746385986462721268626219717691202373985373395507166340863737888471246029794561701863397730642240368037674457906824548897592460251761714892322263541833723238852932420324258985174898565150623003996681775078404115411075979968022492251412626903102368741934108021967431901029301722338587589086526113715958734036650721837740737988939365749477385946929074329997330965719439976539342357702893104415991780865346503260093996704690418275119011123557913666865342887765196157353431842414456685301170737052470452662597642088617913025461559550116065652252898125055327332025961922178875384876046117756929204098106162179004923939220482656579905565690317663603544414742003964468290781726039547632820452156633022751523436049041942525127563744375153882836750196982311148974738181831517848603453593671857954405999777915403193562718337124261195967449462901057208576193800393821195297713957120699168194793006482956359751156751119231103186110587552013294459749379342440205722264861240022968280229808572052882212629580941164935801407174309419783020756390822551958754513724222389555508812020283899599263505279460974084577782128724764364083056751089737288892962179988141513579268919157716870808281695040982506577440276158237758501381805910473081513400629228182587872915533589463730081127824129172352932061763500299066822639757735186737911223311710174131516597066648113369316063045035007791323862927870827579247052432179796003901619603498809725640159348563986095935250862401848137493958463944173087777193581627732030843523514543425395670393280489377523392619372342674542875766476196253642612290993704173130077815137838046736406314465398672171035912538053793068825098862356961781171014536625399731922308772456141815278646152149723673402270058424976708950600780895628705568074470975318346818300766982189369484114948055181406790162736192334085063944521641030967778752763714248805120620062917510756559477799491195046191215346936508000307182716298814293547733816159271598953952650051210814758830261682620279185865066974335731031358041957754745289831063714975922745108479776205141598707585519835666095374188096811393928156548624759343287887687788557474032204781874760719065490608742535776686629871372422597290304359575000245365597281274809096111680555959541553293063464307526872755436951723506739083282400944706286113469523901044133514136201746405217408359549591093379069842950460962506265530351410765192804166505957225365232351025600858258939070367407515169730385141082030867658297705831475560870451572708757218239032211743647753201587195398116613398992349550658272104172448716118257867705497440467796923672737838810651297788970071626971680289746053316849112238579617349228934230380202984923419094555962133478580710295922190781666617314155041922195374777205754302153544767338658174905336540637819148858242396805064443734361866727508068846782169909765437948900679265103395702051599932217731729070691644454814956384560900244241833729574954927876800449043895630827713819570917538352500599485727111503139016748186427287334115843834076315341391652397573715310480072924343392721341989364814767539949596448538827868593844845433667871580645976568395779443522574455772978030042189643708144031455416964708441225632570546771595711111624453842867686733300452233809247171183320472379213055365946679351236010656338736130823830833460522523400189159502917889677578130226384837029295360145094505982852449267616780099965715358731392027988981611530164642869622555628889944668193815854394345453905191138851704435800624813433965490202616981576121623697209742941185004177594380279927579302003388294933585045805911116790557151813780962748709326581223355709009850591680545654268426346251661555471617407147603348189526620249047586096288777142799114625691960129234907800092609464226705853686925332824798253664736518169621810294718913454900409748124045137969909084090549650220045737164982346362550299638219795108144819224476723399051197744027890708065376719972740080500551279209291576365419602575100033593463048745079798561090229064403134385964504088224645152051064474631717160892138022691981027989899884165288600918489929528916201850438600960809152223523997341374398438253689398729820729786099237948386746643382291777136955379038357192625186416776104331701968778708881402714015442202537724621969626710604739653145945990594952789765156836765302013116827681998805326270154013567577625874915767543846581037172142005699022192247126303107015152727863066991335527970106050536531389265107067242178029748902281490331555318475317781658471794264817152096329798675569588519571461120636826284054644398004274098208191849043233090775601867497050872420224701007111988563792566815792452017267330849261721219081848180452453706057411191612614315085579095851712674439565265349946250897141167714511297335780685233583626328523199054882757428097606852303917915138163118932630457680792982570943624413774535369437519701997707174652129548124970409374095361712471098596795049863269512450318213447276660653816189180892795464962330965572020759156128844462617033436319322732853688957228671870983169275394485916094143204406459889454534646519825311921715504342314577434092184268207677583457225671333925417859009499409570750599850200119840534185513250516135176450743306310347848274829214571029296333912133286075647203305022523706398661517224661804293847684063381401961186573439948075546971813364641709487867369060542822421003488804943771239924355030936072059767341580382319368613322514077325982351948653136172171954843781712999488477280306471605120618676019596385564006291301012330977128377082496907693634374787493161617300208474591408823476939182363481575723599479157506305685913533915299598587135627449734938423627445307767441313780097444344087952373142629400529817129196704559779981998809008549400181389954198487761579835280535224619006678979761539204385999496326929609040613496658800266093072910253161054440544894883775953063006114130702789694126507386116344096473470608259085770391587070623197945140135079493597625546082879833556424659571364965597940642747486511978889788889491185575866494873433339557946125956573516572675667774934452089617636563863971377831110087015426604175389414323962579432017935689849297593183118977866731306572828389621545911839295187436426633908599951606830832589710994955053863338597274145581843900593202678737586604434689385994232281267049543449616591460913352497941355525577381860710364856391652883912930234805792040149404321241107291207343112643878554946130369536354851912889349167346702980427739892203907350323908405792441326469241127691205027947133691404791698532565103009365672579247719032846431420203364699874936504418925386342238177464302247652816758024524142915709266627058314090572815863951358726293953619435440298553361259652951390007133138027687460073285784764758500374781018748460725241388213780070522632444627132518096842524774030899708805192855093130974740227796751292980788387084628096211915756317088748520949157037303427401322147306191200022269502870236887563687832520713408878339876173360077643260906687596283587409231941078599561655969891905302653925580768771194037615647403692813011883268173117648397383930602036175871121528326278536318191632354780753978024952136067857268055837211422995033791009008611819748880017907769234169070879878262241144124069483989738376680673812434363047116948876416091765799688895166099553194468200730606005371786333974643233996886487711370251773071408517101418440073680098867349668791572298548032056120913076792664469618127777170410161054020202179878654681722547155266306558219300053543034567915881157597100060148281770354181676933643366284950838626151087985240714434468273649154837056809813905115779619591268653691970748579453087383160400043954049806787893874207017676763521262564121932983627205704647341799347631366937159418888538467445824755763285023268788631121276839775149982426280592149028390179611851035884682012436534978308867256287504732418788252718692885752064816114942794849995510404406529113545344528011494515652818876656802421265670931440713317097012356772099160427431281740487075646672482751926314773884542843863866976340779224996780970153152753642651355000172753955672531806936026943516093698159365486940976578932387373207941435855137900975789395637761262047708548810464289938991772290050690378969168903618474154406980424905874227606869146516445831356320533127879143803167405037945102325806500535015939377784132575759485838036386687023324481719778997348729422786492160399083736685581652129358532210747606576663424662359700190862654516269979249258018096310985590862393804431156099825579217467877069941801454769064882516818155097978282172963217697628451578470328483177954315259912361223399010146901351277845847782682318368887131381603338722417816308792197582946347482699702119502901490079731493084543051035088397335416678754721760061289636259241076997360047472006673486034857784030602662281812755700136608490396544085560298689754133678146034196026279780662357356471442247630717360208876621024629724860037374986718308345811932265953278469780737273037896970473356991337783048283379184480603267744417521759914877109753072770275175357801607760081256556934889421750956694317214044571161792207965357591510715680893115618352793985088701563568446389670970832452253104280456276500667818689513633578721000084763033529455623372151000502246903607283687146894672631715419943655110230839683941591476905293442351389459193097747559491360351996947518550644329571033954653177345636021293207046482464456237804587665307302540466168133549469350244440303106354405508699660877166703090798651512221462936868787048569032107182962411362941102935312605217713766666625682813645078504498364799845032862473355802607130518120976110685972289877160839498533464191630611051976732295434235319114866124709160268008615094185418513749207745011881902413466568259872542931752412480947415314477358404389966821694917531179778666477835093185449956014132509825392981092689586674587127469810592850399903660382520356403408688130175029570271587793071337125008096680429922539302867194204871773191620452980434706061263040899692141840315619867441487672570736826184177849862951699781482549508417520427848547030617811993085089178575914144639275596631170975213071175702038756678833331092206011426961145217809491023655016894165560825269825705849273365082274926088973244624113193753169473257850834274182301810698644264414036410931484037574531306075560441100718857105980610061312622206254512088351386418455368605605133113418394280574888617276295094238431058765670432920064928926350178225678199913388993774701613862121704350912506152865331955831941214396819552086148599154909389505746159601725469687584168578608040727497502321125505978649682873915899876506735922887141966208088808747906989227815209102899858664974442451127296236157119159692384665760950227538047682748197351914358004587362582966687389551016083032865582693202268860784865207480939288409283224710948245549651502701526882774470820754273105786676438363996058537893900439677186048095823964578656138018111714035585267912426958454679338059900243466885290709658791868053222123553075161880009637316059905735801038371093012104344225479884105124280003294607653483176194709312831064366910379368271038150200416204667062745853351450442549569310590512227912115967653076852492951952274690770549067310347524436031922020376635995635888229268534643100693849831208091272816489852547329648323977942634369413206990522404345821774698641744235882810588430322500331935778511828265760071675285980817766145854996823554551252275080175088220224634465186018298060204637506289741345519898976642205815168080854097941999076462042158745119194261026152142803063111943310889033530416086205666819807178773523967482932016146277092360925885248841391409915165675864893271036841321510775706148875224934080435594860035372703197179984328805445701679055230898255883859808604169598045127713204410967209654458441913055692091478332188880679216921985915571981389460014613930257084029529983672561383572340998878119624749859631071885141542287930084557602828006349842619608297442272653167657801685320942663129679490908766670191520472053909059302367826146247461704885836467502686438197687054466872821743815474335589513027769324946762256400625576769948190059352484902211772210550486099414554635276861472784753912247908960578257533428951197462492972929992657058746037616542207102210603237710427733912324262359656615971775228968709852646366270859697799310594891403204162090765482707212012939155477494827310113416059710160372590011246939240503368565672320637482142316866689336782079668932446017430211470017004593661412731934865725768020397892875566219731091966885953469802450650172511208173632966672360305275604069127943908726878258258895665022697294120117560913612471583201913681397844116918699605973529985220990553863502895345436217606288014168382910416738353357687842388251369390120272027978532538830981044241989786044142739060374701703287856576038071171988765262236730371020853854591828102647228886315937759327492945231236446355696574911928646303373288783581344211160902906611164806119575364257669812265577383108069591584767911443964525329183225746075681442831972253936247043537572867439540649303009647689162388422707548334171271581216980002174420332357582395572728293309467446636169599634586024635738000584678059381005806613811783536059419749066709194618370369501269152694357706762774564632574686854231095523086315743252655073703265631324033019384643938333471445151712424727309216055426175643182033736840438588106959057819357421048390587982342181049248389988282064006203947267229133899622720270866304430077967312772182259098145105844230222212902161758226645539852662413598035448247330606832171033847361640852016914129389240224974280752298240960778951583620514786714101293487596664445507020885686996624797278825929315324357558287653201503964889479009583842207680854562383603301125915899022758982249039869679366671202941276132539522187256190233484044606646554237031409935882320829025159201836269202100432863844304900392480589521359171387597927342110503237566843847996121685175445195955951833586799224071356556054340029155065397677342736463611492962554495843227586695946715208010465018349308743840009299320504180044729630644848636468293798832321331871853839290669889414227946889780675864543603714824544310710991786423728795932737579451070075662021072588832115211395128209752645331097793670719511595696158187081483627466256220295837290440276894445963667037828558305072706275976440575594755341431678406875240153729243465412035037102920952400336037189310146373550216729000042149840471758672830411264350493565088616373030245524002174685185618456546058787449900185608683750932225607442207363664386111456269302772528247067004353328103464786038827123542997719326111190743536599691453105757053607873559886743423540770578170861778472158379117107580191713347688920368454902575132227626819972860370102584883353499632441154684494016374887756858269543319093170593164128811338900507561408756805635592713252138085617580789806750718084725485693102698291037848875958388902132076883650225499002569113410715259891713084251035717937543348049743426799214945418403093941480501202349005373098838971809422698662228665442921834423440404426934219297668808788364107347952404335844121161261469612608224094510001142767969054841846799854238204920147147786989794093486350577940256461723661266536794006895992397298941306132767935062783431730427219536602980175014428214859683788253440704510629315783939952741853013344480233599616307018640094384474834581983909673070589445152071238675922458095164096185381091465633980245834056398474585624405162124363951771841429939827631241440907244290760050124128274214740771222677820442560166648591899866990630893992327807654300247971271387244002630652821102513670234811697836678853046349832430222207739677421866802964096884299234114827481537923293247244434526152397743722065067391102388512408113433476558477474302562505589216066027091322072975042549097657051414380644808543628376247816428757704573180715763638113313881168572094765470566535012520173185226249280698298947959825741515955790460089870687889735989385740237246293594039393962832292839888374963355352325504474062910189838644614840395305441372859304484209253888556110465869625330899018753329092453315804730002642237118044820576285489428444062780639900246184731888832150123056026793911073922245050247221009629144604604418378435090454413138373717677472408846543519260613821480129777694028821796541120381444458233950163734002903988217045554067081933100168960716847414808218868636609017034314633666319822862332522880454594536595073649825729349813544456749477831317423382418605599670671258847780940110459847667504659501678065396148910428567177381139199039371431110408715622404470230549816428008648446302320288339270128944336562932309945393701096314286368575696863320622263264774326179046002702803203644158212294632973448436443094041135184522533405360576382537667320450039014498400342708697824247889606537425046884527033666217357616316805997373522952251783977681043310547584239547552649999896509061678700107108731625349015963418101256575341048390201362677055047506277065171338765385491033143640395562745238738205642161999255644461668651487702518655192513425751649579651580915787722853897583983119870795246100454584954065828893861506632936824878667806793327695521517819314384282785603755923297342782804787108174151583663584435416045264655457726193725361217180839664965583217416192620721821216530708311577521178594980607975653229935521570744157679884453513117484143290734232926762663744734736064251750544155123420361655465037757587839376096072844581609327844535514361506734894981113322701958590578510565686461504782438345675581918332602657565030574819250480287770478365488668439936274971475620711149586298733941034769741083987337289613502237241551881080626815479304878529959529436831959459683381837520932326274751191207399816126005366808504924721501148282840446286317784426210732784397690269626700777187290139981526261805831466186717383848236407660242179205454978626080102756776958752918660691786950480732246344198741724597156662051432841215069385853326339119950464951860236871413737023797640888988069689862008003904868176645294173397491108780025975500897166087934801233196105185891089681987640848986039887345181382313699594629177330294171855175638872140025773939392445905383731367628511328340499045053859379934696881024615176803098410518588503912141266968352748658579445429081128843065441929148117546380870619003641754016329405514744927483800451213196276017479372926728509866026594328828575943872504547226958392752744685832319865082557066934478183738942378384148711167067991628594419595895181488176749912863636468584500422063356254649569119352446790867005959468714228755972901185972252438921410955726045298588416609117440606874359064407379316657921950433968792349994135629117500938607674691750376283500983466363252688802232116311232292871268847973261620204487630038469319305082540888790737261942375338378751477450301537729613508007692169296568454905178682961186823751092599912501145445728195742230462465378489080039244207231944937426427716952831902337478240317722993890253495031248625105774270977945718869826850350504591208172282765468566693855011802601813716831198083539357570051666238000394376413283937955312263560987229129933626186214234211443162637181637198647530222228545667480286686637656854499952001832500317991121152715125373538840044692236084005241438853334698378189082400679328175879035034693513042311613454678080699383618182819033439333973167830361100211749884695254041278748344972711552113136471297081174398418905664759780376402736230345089605693426452529223782462495020707992427625807482232678511044782904379981438026567962629496570225686828110708532373283069261038986915803676702408897396296534964882866992679718530608686245111188565442461186161826535500359617473728311451361860154404210481039300707643842439851490181209186653919946810341944121125889112502004753840678377385813789991995638985402876298310760671128964718019647076688079266489468121053754921685147667746511050290870899488246330376272816342451324085564742704212792384949762901576616536793113018086602485750187974652268345111731236854502566029355160858723822198820696245362653265551584393552931697918779513150082240127213855922479968114965029117190522940801979272861270258293904187453650314431406070121177006511451725398242761347078438014072511212560044577778007046949314718210200787916622506048985678407036832780770191253217967766455511123347474955391144751556312677787597010809852500674469889461370079618800619182166839392051528779409881285023127288651089479349895910063777323775204428135197896124967340944768146439904614222509718036455420251936974100713399407495865239697268228654594894064045165357230814030569720590239617140951788750473562599869502912598070232272168130652965745266148597966964837999807380923607769695325589577270349574508304084556478339183011383126543858938897214631957859272588170029538106002749888691031921135797872445491080358335914998622105879897974716891624223372144552276073313786633795148976022170264855540131091833975270590221305735035546719085286963385261258384798635975050032233475367861427560244179222972862690541876161693358363988005608185211948853436412095440967052386164632033349385178707448178404564720786656651620310902242621828530732762644480881948968722776067138641511193378292848681787060485871031675565934986241636356424513308679038215760070815538505810130908787298306627791250974702073483967005133041484815585926787279587090433520445808883565918120257237758571114034306670862074107618286343842959793576455666176906177910044235835780735969971751388564913187413965977050933771023287380693285801919004696713555586550545435014371637616376162211555949587144296747360032367974125142057873419334092564813470324524738949039020702432417459684071075693779612181894184497675265335384599197156256728099019195397219245997313885813345070407693156930495906694812806511815911890079097001794590815718178701700350015779269139417658082196890939323007497179899306766175898177242988104911106075080813946237545714259115441834683945000051173409876357080155474559610713961853666066976404757768626882641129655836766141712669582447909144049268843853717096115627166947562691209854184295780721876842834009598682554209839727363974103021340008028833367195431442349869017404654646301066471045288130859934056395002485776161233362975171099022666702360155849280066592986856314815362060175819862343384264733598804203605086352913515765681875996669733515275569034709992604367937603477563020091154106183530460911240721072563098894258801205936586218016232128607924751909558042381041766296507050740723913112766972412076402918248387454330682231447739589265059172175993830039630715929955717500105228566748124463463135398437995721174990271561994623351536216947312128532089551978421547866633839347403194836926730588641104230718425949291355448157415779191114135443929381485927310364530748323858759794937895701234577479695511931911316245673175438126249540977803139147482564431373544722115053331144586365582366648260622549948141165023354508540476246446808106403583440899984641251021930011677980243921024639711802851007280917288967266042680114392160927475081481217705289061504729589047719322765651177341502712573855733311342622871327517386668954433755865029451777882197166087973359906975163070825612169347507961891176390763134409591097162367170709275514633669904137867717171137817601165463992865677695297599200503154869902386693164067844483748949017370965076455776147974817422356285056041184351140079841321311036801842581835304094208501893074689367740754020952119625363882795951265696092411869123808379371703691393047488541407077145699034431758560092756213778896655363673524773999017857374282504587998032309396618694112217831595204542466974166532091602315062211471367031005511756059970998303471023020525112177428213583021337834838285517373546755253970596135173851752463485616920014475602703114960175947764421297043663284533447708152531592367273794620560151748241641459689428310921035811638103190073204840367984026248268334944833942468903792475488190103604822019471938733417939865265467572201166897333457644120094142610761611049354459500791281010324131737440217022903489033522004402708726535370316864737401346817649380471562424833893544156863336479748501320208590068586857792002610539247137028022048646576274344694048966697174020584106437972834220012441618084856082834989764026257297471437791605796770241741908699350752890539201381495772890905786454884475689245688573962813709930848094599134108148094691169510094889301738422264689111383242797058946921917687392995177677805347658177764759819356551669449791270997145272395886336104785819487054809105484808674343792484261135528772426240204621624825906002103943033827530293564510669173870828112286812141893484716886366243763847004614534438640051437066144400431052196883915997178670231407690623061905094726200676257431416238362733196793094919251992956284042386295823546865707654406414248379085100657292642094085496838376962250713416767353994696372690348365482777912870022133947092243053570754900728761703239130969348901424935706568299898685613453108342165069956871516602728007062330501732827346492125084752772187330218242020804610538466889537652821419265609508640353048033410535502749915910513615516696594580900330476674533874304978829457781739115414066923929608777901820570634475646067172755086870559880496655911283476241653291588567989718423222937144796521837951912451561185019308988794230010886359387874769377517887682514534775604769643006417125254008603315028766216396635971240520779118828259727704580568412856073263152301057332179727383996537222366848989293949957250571877114063504442966292663622837379836551734723502412992221130785335367184892136784952221872098576935876726483224915989887490737339128665726172858399728094932362899371187236705301993186195725373610050530521028524255233221030590018178984864737310103181458327853771214329331653383314444194164546529464514211013720239022465150796436652783929609569051792283989520521087982404412060428792368019470338222451996759274602295157772365194659727578851128773840382587095714191664824131670451249243223787877833248640182350440997192014316458227088899386560588770774617914449740615162931673815814472150598811878324018600134373278744721788322266429636638199854963901178767145705883483580673329268026111650478345534881639201042597002030540186032398899764931936867165786293508418457964586634708229756452123609181141670080019286343440588853473719726026404111660433874680759175557802003172940780817794278935442268942580135328201310523508590913250866878667186611272231655243490239000564435154353347310759887305537926637482752254623966432925052641987042816846608826457002335221595948235524295951288296430801438780070737298362854892700038544260072228168624454439858093902895705562337779353572711335025232926888828179455580169952639582563972808021112379735841692936765117786310324756887729748813890124842481100909956726107634428200930505811729191148907756308947745486974092595017662220588610426870495651135415143586047225866154756268971812825089908854191347079363098208410406742516605818625720598963454449869268309991722904214947977950420821294286575018996986117601860612097198686041815456559903113195467167847228220354209035262328180280504678371867980756587952457053926380484907485006663382054543974769079143927094912744026980085238435160437584591495572410890651210310235651478046492369848242163459078681799384114780655093139081288494149684960953952262654282738468343385501258997416132929981691243798801921318788971570704750569805015477344074784296978433417526003524269471705430870357856099000523982395667897067799755275679319531329083447184167594953578926195992494874677097782501328679102400198829409246430819645759364145473331754095582499779409588727144846635967250701238283633823495878740136068961063300267002667796952662353942353792277995578175575275984219900317955131846873988836023920189676876064389607836353380787868839410965850998029041804116774676717382656899770593970344509423514966252845950125819996940805334501446906844207124836205269652739117743513080845088024837137117109813324002141706455273122915396486054536417243436027094994624637592371307139610781331807297335018507792723349371641209091250635084395283153238138544242126112832479475213169653496452958661722328260988996480753312675355176209174079078605281521590498139017193502546724166826404769337272325053243883221365269107164882964478135824704137269853840068190462747748655408993113088517423884602896411249391080333291761060361717364627649650916629531952334252691055219228896032527356280110942567411046361648879218582696794915484607993404424261304142930070149824740674021486185572346554545623145649871207021628647005622847237076778603472898873328898604347907547300676795017157010594567590775611915293599030951815786774288428548128733277631271476475989776907991978939970435013868141837032725932111511377939828632653883601592816537422027227267345122388373478097513635541197492125718311699496773428369590073372781241624183699624211700872088921122430864120777885981649131401776139124681759562312763480885164409889325669328376973125170238195615684601851765125149323311046986643244045863593947096719381737077816991729992235890982685800681972596362007193214746402687388942310671733290456764846372731109566528084840127633523767585328275136736316164429601812471194605824956409849348524496823896628529932642668082312645467042192877809151192372882417935468939564272881825397341345685486149704473502759372803696336060866562477156511502764191033119047801703569924039451310574885534468191704916607761333240425761779632558296190969220270850619396163658559917639560785993901795718530541428515680103586936388286924175911718422694346854493474177316555454682986506344013164666439981518547741553147840058593036575191158108097085800781845248670015785312197656469917192756046570575757322096049299929502938536201730686664160230633977570790533640873293322053894131422019888986799973420940534312932054808642643005711706467816807156663766634046629222178293955809051469926377490672814519104592510754181066595871156419331556911474030224805847436712371820693227149079619863162202817093478193492578893129815665551998664789666563488562068305774630555987185287243330134151496912862303993034940775757650762196740321015750846338774820784895530838629549446094000911247760529115252612109463898194929310816032080493147061912247389025306981692508466999536097172168444379263467926862071851599290729307757380168247235965986587952386745516508484305410117033724966741016420839918490336621469361018705229583547641436595933661690151555465840009034851508730228510764968144607159771844318817065769676600454040689720375931980970399120981410588976387403510359490073152892247572277244325863722282180425954781481510030558013459664519915483548940893822374404361814864673401939731446813513121151182762408508729219724481063544206376904572781758344384160776734833759208644532317557293842301862177519022979006613454043401618578488560444485056155552466023616379923560734134988334622987896439073117707194655283851555544014239425537514082872454606318063210940306823856896084445768705277702522337607463427484594546664498867554104076989568311845406985220026217713505630748256127126639855419585372531787037188434139919322816542089827638458844554268623103272445088165130873037089804054776758673690088904258544311719458361953561066640704416897387412361898989125462968536765318963540768373207526065026554837631117203722105490870356782531564472736686401284632820619565084596169870483990002299592897128185105952535774952402703724061031058459524492314800400121057136362808827587354780071712010086404604906634616173546065658559843514206118491323211613451394093851927415017765961989257168303869079560202769665471780851677986616816864991054613659764705716162113524660615911262737283109858977481425610273000296864490699545726782147358098571834416503471509970238367601961649547741605211240258098763123919860777987746476967813678373558822235228529322380716465175576537345610630137187114100212722482105550346084878822844784028321905363579931093859860596679863774871651815272145701118538862048756893308854213731425938763855236230295591766412800921001324207110420062450774905475736626209312526320455248103995025157665299585225953134453700078192026974002666277181383716012316890962791425864623221707230601211684315831699805962658871933199571358020047237145283713913805915885423877047469352727799917457825251133343620550127121142528474888309322457609776044204125620925478593971064157396514433313050394336620168083901922665593743337188296690527673153744522768600266210929720196251509845578447564016407739486712580582980596300932804472601645143303393689546729092663167064393607306064886600348564594056468190082996399159877688270552132657269800084890649334831455848595849125563120804994864050342878707995004874830530264479386240449850675752539907123574944348600670905725564596096969729959524732974367279504079058315615589809440210365816024814229389791064451339360872398552609028431509409956067328692759834137768220966456136678533767135484317265478567224466679619485012830421213944402229207373154658300688869802825494346331891469272744868012809948844922810547971575213205140777451768086302677649338213680441638695959471417076042664993541623781193845120296903807955585114099130065824744327842875025505536330317138708862874784478486088104422450645240213965762413136148401090857343641915752177845013919037047143258214897359480779287662643610069210937380841670835984351047371244342681129395918735506171101632884983421339561135559612229879221404815255998202354339781044378985020757379215029449652486048864659632564498153346979777333175786878201127394549096842200020174739731772956609649487527575072378721064502709208032693144832573984104291097141900352831910700039649764552009749200198909862981179350532221877329813631970304424563507098394111033079222089021820702925129713435454211736091727578854711698001660012337050799177532201984976263582352797450524074012078424631550606565506531084538395150605225895752391656980792680395221617003390991613629678251778335018540153231826525270703383586289570964939867749932815560471808791061368053052084321429930500033068669279088560543140293796867998541473425334543565943021221627152640710410201352043722515567567928670619997857443704674630889651089434188341325614082538187046782398260884001927708368712420032308415447778848074011507032838769083678920402830843576597514981738258082997228579092523709563842111947630558035176703825969799200583587364187878690997132398931354949610744195713362692994252515710956275945052372532791321821142366898522359231483101595965362366645200238192429995440723238160877213435256417913167648091557630621541925884491873360310905281029233895381624404955666407865558050167363543190803261872631274195728563810483564978043153881359511544147027475732430996176687457986503458904965666679774774413622159122854887814012617895533806041288331353049480158829652872215072283330900231899658440531849103463353625371427888097817475688748348403860310659574355877173210944663231246830762519309339998728977672142190904817455844586032227744396655501137813882439537156036972452152628129310743488316177922075245932775867376623682792204614759048818589124410995678361234802685194640244160532856864502749594475043407461080772234670354112593032925746878757358119774766932754484622360989431522304481059082016237727274918758845950192187026872258203792441229144197927374992445397157229756607776873915682519492184999184377430903546180355198606157706153175633466540536773412672257398988709269211475759256955276357329929175288920158018954404352568826936213638798308023620796855952175777595738535921343326754214757427668453967398314450051333655025853656317136203595097406679305866191139504516976300462437775753344724984305752903848081257983246505154730254819885906089579146034418106681604416552110869320815334337354156354121997756755196899029071931209079731620917655369763450827579082106092068559572435560076029492709077366670141014232441714829372847499637235438600699147658537052896129811234958193461806393553282660293056143697667996837011587431293379394599026682895514490923362310907852797602825514808875315394870874890261550096904457014144544288958093344342343007921542652224686211469339269705932095541195818678700954208495151196913322783149375926675060787418223214251518267709546262505967770697972202320071473668835381650301168325782093534750709801976792694003197336519510474407958853550367003480878254012522652624106096777437528639512543101000795480703709310678097788909861385202461799992494085083074759988793751009960512787051564725952456291769351593803288233848429134663082894478617382403177887315009379792224886830332750559501953140152387911645688768755741869881614135601947413409183484839131369373634104576343243912154801078446932663203488765447541267628570883763174872439520015918170722551890962269360254031909898845322717765387977705249951074192855915588038778211976200819454145224267805231416359487959300822079907517806283727534051859357605654324548562445404022105351211520885046104009674805261531633181411121852478586521691478062514527197402637157464010974055364971416652391390958839997225700577402075694489382456029403003814612647278180162245368027478495751478678938201119175238602222751942311790279038288477496838321274278214594470690525900245692138405490327781959053203581730049968675652014854702867897295132913150048983595254075421846321479775383655345142424176566563089293391376259460155321045501480496080662519236673079118132042237056559985790140111581999219034629470410995300342794009119326914748808862929581812271154408453429867229436421757355986162688062700616365896355160089152793032778364517926326503441979855858275905655483649513868495881110517476992389290180611165825897904740804848476321884179740921848326919588830208936302189338620420303943821785614895683683089525040202450477876258013574938670318588205912507487183498609191882494315943448683947316719471628079690635124165383970481917317160047196654293305431458102142173987320240184624536373499437298670818444028746882643038882975939235716845532265356167210508005442765546238296404283544264120075987021856593781104145760846797152789610201483389141780558235506018473916666520666439575838319994593769365354175265298580987671832940329162790440272301721234758409259857153646618944261386672340295910878196756458984758796676408803108759767855951974620806779200538934824679537627335312492608933233908599795017623704396844192458877032461566711466725574370335795700716774066631823912000187736659416075638399307181239846794673007671029572532677447888119041731820777699466755973237031882722684518359521977982994511784396570108055928029048119703442568273656986442761470934145196663049269736181742900052590499225657945196335438466248835958030757932668206551418407675283164207943115614098464347588586403038247981992575527663555797181854062236775792496009869589967258766088714494228912653826722646826714596103280485654060618791012515046418327058024079351653217154012028780625925811208711880346392039095898710443921923697190034246615773303502360673825880966832456618611048173073372396625444033018885919218004352018721589479086431182605576214477966837138046074990117019246599250386677026693338641044357016733046873835483389628279664075738008591566362766543714544149427398015456529713703014475442021676719755540507796839102624875143584100106141929563410463380917226176971362789906551873474569091403792522922764131575588379578882750752410362533006408903796845452004150932809658309004934929494491210965819489033831318965621749975519149578885976253600197856937086913906896557488472652048301754427472883454157801382893368599236234691950953933190342698947158125314452172227382238567180487298392724509359294334936424464007029828594993717703925252731183900270407305010869986529956016257161718344452357346211125195621577122857556056133246635316480905868053406886972888536144120050806227456874424690185908401302743940659324880222885541681954747623307799326034016691722824105493538963952542503015055617573427851896732530591662007697901007238597370241379423434392776553165991245816749022100092079698443561879486392630363717986148133682753904463454641718621673444561910234775445958159458124020440608197283570948168811922993546051842854908543943453917724001322351127920596476600875359962945090229248087295361272786238699982393339770819933826497948754226920846569688168239224676343051384969931208460316536220480282220962470540146644080861667025793307269773999401589021713781698265992188922284514122867739536102498626336000838808625225482524553935287913431616506556006867586973142052443226953628400529005920206874562611493095968979567687897900902717741115933528831717116896441959350423974209701440999839703690531293731956172563960562322213348980666891960052282000695529327169322421531151981450456484789412417918875699483085343394787290792415451801819731227968448187023550722939642272720914027054561342487357209654458262289309338773952875150604105321057715229723235031315995131761444269129149114904652215890955274223859278455045362789861045204052898602626583471803837199623679788310818178855663368080463349009187650196705177971210210521858325175104886858753928738616426339267224936638943256014675867870553214994944878604676373960185561913484283114982308106838592700342979796907894475611965557359690725186656547648446220971946777490742816440262759097567497511963190153906149726588914746545982595069378493965835452999847798048490179553767586360788664921660407151025578974393996760174155656923836066947041881746462613974587110218798779455613755079682055257470629206503542047495205810594881448726582821095649571590898713112640559752870275317008410879246316629978007036336197984464649619024406351319021256009907014261999249075446522915369681488745991696365480557701588948113129022753310943867080859939548296070415782776738823718113694717450686009816668240712042777804321068900875187663484812528577941648179720864811959925817206689272271131853905536318480900472007032959059282840170954421271412964104402716684413356972688803888508881472341433623336035058574162958394084479337749471802548432275647386583259396684717498007601281215935097002031811278222259233998708905953028688990854498344417364923878772862753755517720506578384890393440615680160118179272574555680895598499754708009954554341468475935364137504340790359354325074711683018173046701937855439773676046227539691851630403515861676167906983978139825667807236391221578325981315682165861341506644168700462099597198158044577235894263572542934924268201753957433293539556677427873330058716995723593193281120712369460161175946393968571419736904654388292672624556453150563693100076558342169254840425718593673440394319633196539000221745106785409364455160949661585830457991177443163799468324990585920388984557302764352588019880374608161738082463210497486721244257502829617459774204957318300711740859365430085536770729077869630645808906421612828418401518597639144047229596982636929235031486809393243780761029877899176047767034845273871357729089296884351651209021956654499873238539331146465309641148510595782192188823973918139996578964317088960955221716794876921351210446121234421797314910397995827934273633089928038622988746751360003857870148001438081567895260650511558697329148483036942369628263274012070347930061490259910039887185161067474695749041237667177603515669065001537389502683494988699059499633650696099204887913715132316877958583673689290378696361142665295636112964974777120200960563559723246393448948709623109143113241310502953431406719097660183486005476414867762497836821786938352230047512854955915581229990742209739436297648799236188788643563643084475155329810804962249183923187048879292026310649885788186596414461885987732002399457968571635108892672645665347044854302954197101961778873991806106408123453609695396202315123831885535263867265648568493750815247215233238608878550754089990770390903770093193184337307765297443845071270845057270802974275149874237107606887980611009100028752504825263894072117240352541951282054284598872458507932622519884509510353967767008650693768977100417090720785488915375150833780917744273528053919710913507158609876805402457230979596621731127531249312941516857069784805812053456779033552973915784011585046588550939502756021345099888607214394241385183371260322841032950993563108684836901772599194652769018836335993366255986829580220397154325944259325818788229097399482781579334464334087409762953445236887792824191607330872375771453283133231319840070386511740703047130168160798158185818250463323466209867335682283408072689660669483749077554213677738072944451344052587806049725741722207798361924244002485478785708578301807915655224158953023599094200365700446700737725399038541392404549465222717677428630888632778537660964350682636061985412633263443042434080581995248701663195169225013876749420242848429827702088071023969487328190051613356844007431932057158980840362529428342115739392873338768333991164148238526554566826665044997683304100360889100259479334286367458524813850294591189206198241064067116063732638957675369261251155334048346010460337463285019201023030225273220989653059812800378533022877928831903030824691674303325328288699529880287035349579654177016130652827857754574546355080242636588383782431789736360823396254303113314374956333997968690754037314443077972746610629349257343780695832803588310654074272682894723860996512440251507231806614748057373258799668892528454819452887079982229739519109640451692927821260177859199708738412201608644925481177013934033768375783881606882069574431145103407581959406086387679804729034114688785205192927166811933509844125528468429895832553347174012171322656610029405904670118943129784841439910906972201730253110804439702907904408573307744137614295537871812335114559099330729639359919252919613957108298435636962387445260561602253479685337890797600180831992214585810783872851058183358558408346707851017685523808988111872682143364259562996041595047396550284300385460678200585936570544592888938231001728085755007078701728171833162922121456002369417835692228552662868181736152954924824110864955202917548773887955011104040195727090713951639897356676322601860428481371732795306721231251642245664783230664327964712843972874811183017715782898643600118693745027328483690665963293671241416645862830280977240949860541628879642670126372636557528662051987835381786246238909951990878478659911317032736161675067337664648114183266947762919664963150058214673670072843340444286254557925373990733891989763208834658875999850029030105135516747988159543552219559616676596439280308182538646433326795729324976233791373363397315486321157901120499113184881337400787051085399596205613588286816930763042694447004993507922061290390377150306821035242488981816027009391773764406719948502038621454866716148734463744790328684356421032060912433014579675154886516175253928667772897582727786979252733427477948532935208767728208813914316774196392817066319538918806241190393527241220979198011911194578447546880679731267441593177950316500839532497772056033454284732025357982858959998606412293939067492789480822559421758343378054977659839872356812674559234356015903307219808356078988302304289727449288386490373755837976889919366207497382774687810527834174456471021792639005931822159897184485836126022001162134935363546271456295252551913715361672120815478968361899863529781565386739326619710642633195808769304801617495873685225216931602814930047164290237920063460164747068005686321544546853921241434708837555516741200092066502506348515760966267722617120011188435245000758125681416079995383412741829844947713341464432802226405279525604557661458933196981074253335746691568791645470282263306557552898119877159515893600588978602514620543537193881916046457072818227268038719138931140598421945197933317159587361368794861663515650264733921989372506857989552818446429976867588468694633544819367512920306433621794108607215497493190639654831224982471328784445112696059462678922639091195826839242248589058160968598729021312169263795227009067028236326058997126736187433841167256585447074473234337576891711058893024012887119925787227491023480431972052508139393216258568649057297570749361146883207834022604511526802788395852232031285047228606182040387263193279816882331430341376627578318526543430878696686320335871227856091884464018013582205408954678302303539077361438528756812808843542635376949317212352093298372270512537824263873087029039971634457813841875422114989584960929846313620511160455042466851319777714213094356538181870490629601746349475940212752201068291348620637551665627032052075004990231180811452395376475381385215085721730933644680565066391838093851029766725686105334306255807537651402829978565818889043396934010704575422385349581319439500771940108544541618908349530007318063706677863611887420646213740624127254708293619104258060507842233659746413169695424239082323948828848531266604400912495768660878489694625763041223476100782022390023641192244394042954595361265119873318789896470969669326408925346907626088572862347832056860701869180762181842149092958837535366707225053106094210078807326041623226113832465291516576418567609258769251342404111367614105732112520284201438463716828671803179578358065774076318187249076695578084322863130245802213312155939693704438981091788433361016086188294077011779387950066419510471825682484121425060942721636945877047081890143517521560945452337320405442382853561504550458443307857023026678624414148176170455847779157149275726112985907503143449573317655645494628923820295088898342081261152459056256231288041570309172184046835654386527406747196759296787755616819998624332221136488718378027803815071096507607643001061382612671444954196317759262062396689494471078671971017180222828584042292342230993112313741966478890278889392705249231457671384328711335146020065639326162548567844734726391574844145646432253311578141761340054302821804821452754498272012678978530844940954789697864121566449928841562183652535270655565126175100093678525711748183130782612717847817623196849260943356194368265948390630697574138748802151121487248865320095290983545524994365089581013172302017907566158683538517393762450376714816481028301809470735364461408038448230891684239239240464476807742738309828029359670235850244512127443814629328347846495727957821043809843098520720876903622685993684777518305993423554958328143381322844738642617556272471865962085766154898665565585412867118855314529647450720471874164678308789165742181260130784711012103503549101792148552995283134455916475874074289202469016230447716620952797394933286216475903071830924203743314938330145574260011207152373201282903403976040159792930024036854188809307477326197924527218138038759446415877000922791047085542724262176289052350818499290589526614919046409358443563569823502983062380652944017004085470921450927846895276617761058697939061991821179060464618546114645962824560971283172312334788292441249167878634967363893459129985276009527544368365305316466197931421878391635765139155501716403414335717323320732218398888455497462580027547076143083585226616442025041947549127130874959994615563932924028954215537089202007519628484157185401324774442287430127747513275714380308437587564874663836359563383218501665806106411892040971385360095449733584839463201328969418775315501777922764337402358286681266145364864024971201296887367527230038889256925575313944497994255343953545904322261573386251765692067259495907928418119721947532533975414061587842835021916615178201652731065129261541723580262546609302167245383301911935879559399476514695836330619606280306165501242081040225910676630939790845067138517910297466887235529301297575963669811780779819678007619298754738473476161262814972316818736076026210527873114948575005261127737515029166608751703613555789151768936614471237816137198431393165838942201282472108762591434254613386445865342750046833536297145364007793142712511643086914816145992367977838525168339358227468280895617828712343402624690187158038504833135034817735550900580497544991387766726596870633256427497379332804624636815133963268097419787655400908442964700011670019691636522636726390832683660104394798082115075966217785086677126987907350812078591317754754468390627734062160273284867441700413990962024310093082863615287854069416569700798762184331326224209540084265939383918056270294600875778506674212274724217243875097660225386814210240665006415630699750863875597058466010682307659900921489622251549202107287004172864243165710101949696891673258530725263689942226059836533502945958382578737560361296987279227123230576622371503009090926178800309658515589141311244252038004308910231198122228288164251842822625812724434647586264225750169045544437631786691654511011720142268790190853482379383702656024756497351960200120169954843729144798948130299115604845242003554917878612216383211300762982887461704313173557006947796392997388461671925230552408497828883260965669583265017902119093596221919379134453148309976446854234398831318437898658745763322031870719082731844229763071398674858639992971987560229259239369200635918557503958847496256034021472100205129582586841628087876778633134248647901432093315497812312433503801874125505406993024959356490311280906138572696004647242563444877122924573173270560201426976096443550612975784487447456628624908426821961671527030830532894680418569187190951190467907234232816589046945049435477988628004360322599389429858859647540325511591220485772932557729528583260558132777118164836581317124401976872141264426390978219664091797117676346271447579883074039458215713631197964883987694562459181391632451634929409444334652454858565054019507578249048126831384235991926771971647029995348594015101831994505078447615192581264981785940491393190825119803379094474628100538476484661952975182362070816353989752881412405451514682243878798977612888812648513586696867950833873197185202517190421533491404632229844430125800045745785643016144086402925518841827196216892689737492623098392993382372502405473607514450610384929839164483305937021794225733251634751461763613486799458847322243452863378040040009006462783307675710124678156522089669719033623735444528086494665167479855816009433610416235494570301933983075387269991734377506801407658746953482489980240599168833117656134350798116227378372593519425457050933008065410129147420780052557794763027652103681525842638853830069118929382011878106245279103171204241795337524779862030325277199112656146992209452629708846612591555406369327670496520015951141817260002042596185735792596518982219441618246090776605489894178928824109787042146963579211381559294532463044084065231858236813424402289129148755459682961418011576860231525590767944128045014632950674020165956596578711123671397493437209452785994808495012974455635366119887918115042411596981896701286450779541835225040166225336031670925502873814194280773129679635551220698271804459885507605963901823348208945676855708772037020928553375393908574078012977903481657332403168663729783248207341319156106232055204834768000665403230265796912898791935733037922680508763695345404042365723839901056743812737691342786678996074047306635609201737091402947737590359246944175035411969300288074864331788044898450974493494852769239695721668027930946185790191992170544477737403473082667247957747404105249144957180715484025514302771641328903279131493225273702135027059435697301873153032055898150675791309947923502219385443341553455800354419130378813012167047714580614969267186882178577217598500231335606126512456396029061805961935475440231254320536753220219049025760777348458631209148968529581362200672889844024985668772038845833654011325889905122908290723677095459140677768699122126203791359284530130461899518691667800278837430805410057188390341836545489272241436118210063241455616362521615290968575812315738127324544514357404326323975680230480467259759665770071107816748421776116663706685622873974937024659004702629373082945890073242856607320449531055845166802035893215235610890796193894662399420285294091899832979390732012786361748782436772204331827621066942086254242806665389927283384986928903045069046210479924682610489761136830245982726270257176212956395007808599267920889810208541294200915758874708368853530732819219983062695092096183707958806810511649357836288067789796295944961076779008574386541368375908854010463599705187324784774359670715905531059231438181241425006935520570735944649480800471962440078371584467916508844041910863108899214269193662335157831162285248423737673151498664983097077108499570297416810487475076592048482124176758879678782533823271272256539496314254189904907597365115226246381199299499205379891650324297369304661432936115711372219871370179985686863448577050751112919540783423991304057563083074000711889840539760856632146421273463503686436457274294446117635680188014520146786520986467709260469567889795760278488686186388935623586258459811142690860764702998169890280481223569449789104823228145427035265133452988531834413512268832771997959077597049033160961549910684066195430307319567691166530319508690676984452437828596121299877808212804732750738892549378132436058968737999376058232263540801003319044567876693783370783510883669334195640731497340523811652960925803220393628062318713757230236508722205006747505276169566247936187442919782971485035696332331237764527567745037305398050812942174934148001051434422251942446396308554244044907743942184524281762133416319622442093287542865472356095800269464617738054848510887348694380504338583120299065706757438893010907901647650828637797780446313011240847724308916601269273228325494749493927787342059975307109133684490778846805705953577282285965005173291042077848676406421104403892737986942325261507020340770754532515178918563982655393655572089867298215393820888491771178867067945975713371640820977792461938163765145422591147650740271663956682356246823774361828905474630067040987932102237335605881989784665302996446569765892539190366860339576057833700721545456946053986354005351748312834070132190197734782252711795107592694439013230722409193143421363075702478198585640990662244571402718937336278101946583840693434610607716739402932644384203750162412431550992054489740593804511210297121051578347269645312228148996875894837839301562214887189472255678109149396345131930646030687122342677280531957793258330229888255848777311353503873637685347123237300055275803146894210008313419940740445384285705400508998973416526590789855941743207735087775211964504797060709107609188627586804460771109313718422438623944075387841174043759173342929160857055746863196002294105468990201521717203996869587665519651028584776113085199362788358255891174344010575787212059704362302783727178796258003471127762809407632992597980213630922461640551902994299555778309372447788699058887499274716273498688112510201894959490045216563335843448733671776713180597405396263012129053409912047162590115480194016224062277286408211822775915627496750065566961276498528153966066215107451031534029286506914286838608601584580733254861135434995119963815469924257506844593957099672985913667955748734626119880275431409948026935840137020135439155055191798738713983102678736641706217172214393681103121015187381384478503570710685135603564778886514076821490210793484017534515556240962211487902504498158651433459516723434659390498518410955910325721361942261557509278950117102732070157604009072673948830732154137440677884728112347717404302949349863757049333496602533763569380694726498843381948623553042223467676189989976724029789137259337213199473032282191853701409469054620426995614279456017154388528065494792225269410892311538157585807190670604617202510862120121169895751318158321702489406876003434901002494447277242248676946217043388883454752488689364009725560734602158403878252031270970773378130797942990878308027384354657996877293198210798039933028475397170213065347921491370988645731525332284257448930622822099827627817745641345825502369313588835086602321829207499217574303021390911491089319355347248376041780437923475570665502130844816770084554647237048335440201835606183496118206862257818092750280776182246586466161674857585615259113962511365713318776417068837417231457706484090167813570831954013510405145098091674473729476660791822595919332700588506518923186824483960516181964455938540892851235435221564114819021485165954239169954171778875514066440977647127660034718162212747843309003469152946431378524801173017390298507422534353658221463713219448000683488656484729828076126276251439979587736232719844918230050823765470021517480491435724358807039061601459916918288142863448272336089357628448770588774571125824819847009492810735440823139475237663512709731687035728577441731677395933009065458810032380781905619868327691768380234551640351487088410831710284668040084107276206231570689567383109949696439555876578451630506946684329801369865759402242248372803620763459317925410959527874554881278929220933192035589086746795128321432201082575924289599944893950051621237288593841488702758401046632053970627144397611298700818015906084487610257047015111182555893810508205739070810111710930694890591910550363073965620334087042707488385017705681409828507539981023929265841211757282799573890654458493696123039549101218840582614159944653410810336093503859607520135887204921021366105934079666754078000011882791016675553467302502009301774597223995865575455655906255573395437418682828902573371480460474962629978044832704313655258331978327894076051343538735131491422101314603471092641362225306877521994551356068217280723657144964422247258123033822665253924702011299393168582519598304330383645139572565325058970879553236922795056863257438608580253522405489422878653256613744247240419170601313385597520476772292406666025349856194689794305051690558815986030211946321458085769014693247317147511767577107404423231449899509572394792573644854473635005143714623083782435816216441519241124319643943137401530769914338214006671228376813156345483157124973122073173440689983525936754003570435644108323183513413289521941964169019218412424167887493304599659684652412712343000780165314203299528232592887159782580387786684331852060854902428130389599092311417064542946040062298498333172191566748026176270891580160051988814921140395176709078350236229556633622742813371106066247980312089731238637553822557269893738222714726589038437112638488217959265160204756443199694846192243442681236255233415511515154543816656103533949984244206779845463913681887146847743208744035586848918939863830639208780416685492667998607927519732388695696898845103883481344001804546579013503737500307125222810167247441268406451185957340538247454144664455458880370745811313511346356670228355303358823452785442998183139833396456898786664332416018660411095029016442765117170121866355819231244122088315001353983189820480128565074108194923417471430695276711843186248597893126572817860608765699276016773115761985164373714483995722499809354079571040292287191805429245496242577741631251032193920138649885949673058269225174412679411862568658077925755959273886274609223394897282590285512217948590132534705612652220494378748652813761755551564315582309120746115588974646005733467894702818708865768984088495678482200697832172330605182424506407868338311615011819438032674636478103926337936818433964941834671870806740293540337014091235580903101395344999411044051787278931398337720013198327464063697805120882624161985685397270586466859105403815692370970197551181885715255507064247014244025428394461155267182999270799836371163529346658862204465541906198397556387169819965137881995192233113759543869621597938555838818866352149141762994551034581709787696096908684658473078680722175539185621131140900721951546733020758544502423797158034531456168847285216832994872980364869631720047133404019076214708803994442814892287725779917627367798827878814606729548903512666872478963246182205898039691222610913000426819166396804672133160285183957828150636960523739803543788814471740589486988708959709794364723867615143629746136402283332030799924406377329333232385782487107863385409241528484215111242343594000540168662066096511320344989710568155129446344183217974815129449656893305755787596279490560125999946038512476724154312740162741634715010738816169350136300138210466783372533106660409191757836496835384882842537848885228105534692829417568859675373494444449163348043644802457954990641163178131731500532100444470687795946260320516691981346448883622747430597554375007079763415298717032930705684613426943233412831855906644844480723006967301870822267186531613785075049636965931175650911649284377098858314367937000958384121684129929247129755482036847304369870004119865813338294482519238507975070448493491611384417066318010330625465032365848633898336154144679461932299994211824775670195357762740353410726636575887060487499112991433597414566842252133171135767326863421819426555718750801710733334264136048825368241820299783598454862096544219392027223066564104627356818265131058940502528972191826078000236517823029078383785592545545604978291845919038851524379219015902944746803128699510212259842947792651788120089296560415858184298414019623063418992781466936926225461241003118628672528747762452096605903002404798494006449990183817150269160246239821592473139696763343362226290150448715028660747441385827275109814772831206885799554343057119197521984886785678152257300572919713574453380306673404649475375273869958299090168482931336208368226516454546052171517011497537014539190632739982126700498272329672548149588748823687941051405810127070809453893914562985121292244261306609926947114655215892683753461009566287198836014359630471285281431533719446352852655981266913286474840410700107063133362143763511615518298628833583004324595380705016351972915377665414221752507366679036835508342154473971441989698202161697689648800393576833766905967555120635526964273317924765711949702345068770193287964169700330877431387233717668765808236261853530201530275691132334823737595990444064816382692793405059932693536382270996473875686076108379186667353632020024126076477562817302515239351996849614829366704225399846139123622949140971662295204520551163728102445264895982815735611210792159515931589959886856630979729957110472938346441746453069068580040906570013924544796766614574113132507061105368760794937382606357197712166012997887678257740146817378498561189283459885025717171637838316327933317339737470058648055900194484819602263914765255385888385328703713678824019767363306104929508827013932127128763913136141465394187682901781846062839962681235000862597216285895303123978175073927903009376781250581408777964047242490609347983879890057731731635265194605525831283523461893149614101114370438084746884616103476425784142800169189739222633082226683668644056418145506213627619856053606614842328131338161877190017761241782560175904480154937156516233584269022682089038848503789819430556113749498507484039131426072406829119609404193064674527676393164499448243888766483513544388785850884555168467466636881300852584182117976627439613341733474361573303321097645480345540423509584452218999082552381313909512351238060065308439726201384841777673699587758949749473460953035878498831218250607346969477135854170651577107594604924174510461247902402434445555282442570214353197604530199015828214567602394259465057995759857933720507333735374416723505746212342458630431403220038566408386296823964859499068147791962655365358871218472613993435806277033415577967514768707476469612210372732891692163926526762263553927493745167044970790831088190407189585847381161305102278150509477212774987686452292723153695790589661855397446156770159007192088553313348629836109632521334519719701301223843688329333591622011657618720107196534091001504421637255910851185924452796983135302422093426112982596723111781373916036311996479262719545807941646838116230910952398025315161153670184080233555943354748063144246213345558164203305961707783415420859899293878380177140918332820738783658242945928741874382430289153344642815541771505551069354899450844132300382038319564072552902597730643855408720069212817280161617780055304776392243879985406244870357729092599203347311201283135267681961320731313280313824450795455009956670106845105274564806313506668094928613707968472976209351079346585064589485433513464368949717501658838703468033287134735117082666770296927737662491324846868253684372947519461990192532667686432667863441672180109106291188851202643832362028441340718365581831560662568958610382827129441160008951352357023319921944963387778866390999588134779736950128606894659494524788444122078602740180562921728234645731908300387999818745183510406670318176489577150364876550119045962293243705806827084349786410307836219702705404732231613686084934093342325452002773133108072359667323954052497580041907921862662195811756571697670352236531366937378013919779007179979848421434168813137544000664992906328260355047221163505773157563446487798644470107765629129442467920549055192821082725347929875094526170814119724181078296029772852374829980988771967562834886461455907755905818308372045912326343918310926353991089327534735158357064051591753151541313284043339388017565363109364288299055247722576038060050926316532909967954411903586090124533834082630246973405261474903679308320284880639574981786566581124569952605382579840544410597413116179703723311015407199298838752820851441498868436022188728695868567322856005955484927824423532409412003400898702468902210454780584369860165923742688450875232886510185835744051091421630942035507344282140587547213322000725270656262531794993171727050793887833452075588412325390102975452207513837777071287682681342560110248226352080058593916962027936735466019284674913253579010130339011177116278547806980246395124961584221210204990717047636226913612341526667547815635590238544185463196551936224470859363650190518604451084060900366224910648169414893531141752261334784187660627065889671526805874022369857656950498760806458373787797950020649481320140964467584730084467963664406305129100853253764654828496052167364302587315756995039408884919897482502469476928377395837095714258080803764858964519917041922870815080491090507766893192714080039197562464830406453960925393289389771736037595241035230947894518212631622216594175737579137372591873036217524480902682610342907697216157169554410675816120870016318381677503804317531381757913846532306366303676743746588977804303330654118155615601000537511196737138997559754067594229777633156433960566870565914810512685294204165055486884735918546186033066376048340961435970870240374303078795763561243483646854405069698717622122166357487396391565035697091800741915456149873194781257762681189541001868388430734174888970896078429683783583282385390747817122335357555303911088347217015370739047078761908078370583609455435814452571854464882462668563527602068746955907675843800048817154840653697807687929685529947223826232543483236819051801697988894834424806152835107722309468100643950124584548859208134323059411456968660149093308563542724264505599287764457497049699702284822442449789429450825658364227410113512822382856218132679173799365726662677234862597157614448309002907160678359467057798601940408939010001538657581586006272456200730394490680095327677837239463536497612745333109037675659746253537636056518083049271518973511741575421824829989686517028538887553719252414498375529875128041890240638290020756020632016258238813083026943802957244331730738768134395112517674719111449696711699450885156907609284592890029014376027720333795577922002490711523626038042146517949081361394798607503302114165106210030631315717280111373760369611883172747399123051530891243256678558898800944403957924847775047299829566978164520982266366277812756328140054619658222866879652351769134086666593097681792375642751891577437258223721285242029780084130777765050993467821622425266124912993236087350083834065399249866006048430522248716526176222276685900560943671110672393618349470222463891653079307622498009366946840803329386965675696106997603760297237106985474347799359241933001477669411780717661945827970541287659777813451565542544810112109534393999954699456725427257761298052594999800140626546982820241502439461570189494376325478250692807507965689356218178841342604533457045018827706075576368929856941069284769172769467685008815775692731419786918320119456353646000067583889408174040655345054305676749494087963006057159753904452561905257859119218671177000997862166245939826522153626446217642008111751977854544895804610846235368564427092889844046256390811937160096962609897928711915179144474284271927204285950958715306213389358815465171896674492650127286459851001181659897191736296561944271892651745770912298063502799157901978986125490209111722129616307585128032098883119457708259842855175023140885729011652232921627370698660795756612786775177756742401447609648201057037010875682832248509984914734000473806110074997302306830149116487264974067775376290958830313773930622476323741377083437171116331538311167872107570194275259951272672618063985240052951549114110984057710847736807105355095548200972043553210416831285864626244101307792638128080075077550711426452797458192150715301841688005132136608992283511208979775157536483432674414168782065788144544095235035405472951081853013010011560880583986831282790419539049101854448091119627784136828448313180296478473055285180301913281029513106195341422309191220005436230459355696341442817307675888624183220788253309676707101868574732326625701280668598346831757851677024168289140296159301917990260156496374442434727768109924412993618106425322548206268145541106071169313972359085429501706339219332055010753794577778243481172372137680058291571536073395039639101035430563708300109170194199337560002761783120046621875859475828148036856664138028835262740024921839684418445518097972483525023320823286867414994968112555510855812019979480617450857877923104840804207005923427330893164711211323153227393126838547593610499463806819106439187209008592380140020792612667392892517099166501690813168619724649959196448040532828172186891968233311041825118253017098436445444944910127405804850018376297380455464409901791829881753834793404412728929274685959432786823186318293139363921759060423452179826009373252393598325512247680958612051291483115559837973441854471621888923397511261018907920099310359078378820658917484225171257608812872739024212272555238423059931585616497196459260115001364581127493350539178183437213932949963156848185996344034630543595742446236862248465381819647077117376760578720039451630220339692859421819326072203758834467546186061309509812082685259986165249049293000660535879089232155136302049515065402350906053634741201512195579631871686370456243416809492661405945937178160533243844809358260837896932549322000709918127171790507807844778474207715297782059665842939686904738419999192430927744027604634036370451731519946413407195063555153400086593003641110751464798855095560516988934453597425752720367310805523555034045168230251623881094989804116839581638723694454803915061671181288686461565608098278841752014200308868607797528681131065151193958455471898936131001206441429764366409053249491328167737705998155524256999906202491903983397782130972055452624602506612241428319160777686725188173892625821599382461752922473530453447261180242698526461358516147629507660007763580509565349956459068740255985371056890615936182080106792514262645985366610984965002872074861024340739957162995326174144196260329301318670158094653915736379278375844215509789744314194348267041078313940193729275901492964776238273991289954103728352125419779463718826929715095038952627588322240336766809938101525329493074718741769080637069914859871420502017619197006233361320054586701603581177760750306939377253924583428690174986393265865079422721851941548213838209923158751025635978494410951754065009948455989908560418218303211978933605234932264828831628585054486476427252169983471339518031617106268629453179069738354356614140668340809494667974335157762562488550412839386589225233022730261173522221817275967032329841984468210662404323120887204453709787396349892340620401016061016351066197570118155137258496570038700853566419030600595835859614814428329135481225972619304265132955644718814891142943636306566356899168516245754031851555780689606768194338534171227814821797522262022441157458984034988125278657689464789312980646760393626253769606278156864366053458114004841928685245176066110847257737134122311994790343759584360848962826310615559798870407512605520376732828954332651613808696524772971809235695185768747026822078819043985152971535150502017315009048392862567999232151251709230295043283878202945497323224720482079979695839994384419886046372839006570328882371184785165593233350631796475928443501770742271215319669085250977391824489390263365945873158615389291736025651768217941441471624401319923659216178362614828693304294852612792236397243855350668436124124189946755096109914676343929316332152198285219858051582398513171007070817212339388509248283797638590562957738850231414980525664751542591760517874468906151934531618245818291631686212772230055069910888364124574165846057179552090760585618418366993425789488432296948106194745518972688050727714388037381528741250140199857669786178879684928291982400184957516054946543652641255815683185109513463590663750462871238237931549621823594376877207072268457031265082288439152879330476654874745463478111269830880800514039192925396881388466462534837259242964646776719342480983642625668257850167809304005389009310813792759283265076158193411850152822723811583064850902636199712465873632720079880993879733239143691762390629837803113000098599145550534153044449580009270360548457134707215669907676037943937468577189129313711169722478326312087708219434013881064352933878775272920511105124677831335181628798441759611820108016988328355364434156069150656530977943943073754653192087604136279049382475520999299713047719357092524445055964109712851832147851509251965441124081868522723758536659142335420444390412444071632872201903074717401849933139145746783915460375071117950446635781107127276240358153914615333539421088196034866263766924932101062240702259574551254470192831370319973606084761407305006936352313015824720778177302014123539825651146446757660137246598780529301695209084692025542181866267935355661490411728086075664771444615942745668543540261131867347255880013124654787958293895609280041238888273004709945235008754226524275328702452598706381044262418615518067732536934481861810295373764020315595191954421345272188130808487532824328650068732075591510264524840359545578614128390893295642162891062099307162283730397752375492790292197678309546059465065804638991392497598399314851411501589607297604853802047354266977183678148225437553500744542130194579233761877842265180638920601957581141700987503124391611580888614101836412521468267494703843455250175862333602975719217089154391258602525787438792229108535143582932654015771917319303661816493389985968808725195767592718484967589695280985058129487498447213033423239250601574063226691367480193080633947997889325422003068015856163765132439228159692900525424789663101795615879223895136497007910998236233026089822847723122902128042179421462179922760077600966998874522984909081451477383660036852877127568132164114576520367223131514626316717497426393111074174825789976341715015556578510224362833891188052516722394963388616255380478021491130401394982399036067754103371186588318006269850748635063377146139684997096317951630231256563749514344177207279496003357360959414943788249949508009826815713810985180838727831221822221523592754361792663318272277261794554092627781941877527804241690541290775617310963760004715373454348597591362659022303469476116591479519197818588895297179969426879756276765643507901276967758449856414778208611122395284942069881973545230657639955687758074998595983466214945735991544005833639795301839814992605843050558772050686641298750833337207513000040049213090051916527588034824780858617817504235655404460649792276809262031783716412188267578306606590409441523950905605276680040321658287169081325078868008791985731283696237625836211258275015209663539881339918548650704672265445080091369984149653997263997601114694429073269998983564303830475710436514084678362705667166109251928875167260696507035836682964255826772467378605576755138436067703917414658272966986969884507073868869192456915798856670424988134483250469420013258425859040935016893937348769944084958490667608207631462507159110760853006187220158388507320542941863126141846107211012428525999382205833056518484458310929079275179558670366650299967158572577906057114910086327399822004159148344389540885765959962643893394836486071636019844820947308770288119833595103368857434454226551047161562285309693662662791642480132096849370495968087215318163268175239134764651806946897218105857149138214418078618162226386860612803857158710327454562702451925532175376053251728134540588328627329829499102532911462977160630855993353047364969118325374239453996879362039677251736298964202308495541243247077556556437645767170996960644901141327658688824929754860355976987416823007751818659952818583678228485388529661358478035637183562164997269052075118475158924462068151730895840727361229136020889598196102059198826417735145091678597043025859475826139395958941810684929833473177820958357747645484171520116492698885344042446605676818687953761012406370024578009207805682850404944046046468744886439283795333330778554531835420629881951933714203700316683243430155515162462079853661333813603132196168281555606694725561080101893665930805371496757112008506508617627288212709163315581752964730551786272391084890251354537261069296945396920729175563519310631506047465139976070978188601273034095592401784590617222214057684728753221706664202029575422910063429092192033836689540589821157411330855096469367539209211565516418142963813338076279892140463702937983334674388384272141267870307096013903932203969607335812662319055013540275582407347546406145376275195726304475668485520208997256239230628302687057225640328756712494090491710015652256899772118309338717364218912613896316962998166372200138674251684691928735446045974010029074822735128089351115643377766407550518279624051655026066737139358510334275122696149623654205240399602759230470113083105319031116610861256633538084590263889407916214228111535705830583983337962049533847019174986834447287533888775742190312174808569600763866547639728159993378714132851553831410809663784678294852401964617669614932840943601794796295573661940154943994942920074968325074777177438880071077486857375092588213036747884706861019423742640987960007034950181984377617047402845443743141990762927590673707522526169245270734872465380781105414904949436580583046317211760775352825778604074103205895392870600378312607687761359605801200543004379759549306697750279603508204859567122958744746479447402934643058490031803105345531586373413345415858573378027256370184681324666807869277922710895272808145223768266687201719967118570380773534639107681526079077848709529882504798890714384521744760224317250394287814144247448300360269046219396501007001209447017664643180956771836773884151775974962605645904736288460460130408121572086742529839660953287160080343490995884298791351203504602051562377864507450640965550623367417728883212653260253808365301256630657752299873966966158459230773174505693494969285712501201077771439885479849895718505923476990416835590763362099356511099067593637596981241888596181930059738950190367127549150441852725753292748697538613087671461439869316968612622758885779530405370699370906539548250311813260740213864916837176070360293052419540455816309210117779803275527393271715051835350813948780850758125740355736814732115573735567532965628932063217823438485463194974656002896990552727718994071787559193760605287119452494693336503535504274523727458168376369045526364545330461041296862816033729880970321226409016939518849128577389644202660601698218873699706223496531306898249917609365215405938048299745711010095673419197878098777398115390036684616634082679814870257684009129762592480926560921749717657618131730467447791252289840764739662110996364052643944274466809355583159372414735074437244959124575098218803491864758161345411831880412462062408741202586374050842875880910305376599611353240276412655817567181021120260775514482553384712586086457313284258394222410775400777470840932551265353008422377662694256008704686928004427995000440286020056420882807419983789206144407363871260261559360691901912381371235837532653289664530746695045513619965276432729960832778293121465969884011415711718658848137150413453307151705725596324367645118169499173518101487011896698509818753850604644056026320914884193238583377190967953410130230535123446927514106385151349008137787907227649764673756533241289821934596204822545492703403886007750090617070445828620057102291538460472413215657119371619646276094193415216875982945504448262580283371682223782158027726383798496173325638038391511212020538539316191564808520084146089260183261978363934917851824920095116782414554219269274119924382807054972668621042322242441044536888851162417404019592716282933459938037489760559852872176618973249826677824642786372642063686383564036479629787724103625464144862189186244205222334673939844761302356893426488578940629962456321167160491482217354001895329814990564998446846724323543047576660272199494128225841315406539382313246784400681935046542997479661934007553996401273520753881444313306113839033454224810405463308160923340241908002464752964228610531086429563843453315069426058245014346525232723397022311346273823999418769555344261643398189539896643934272732416133843222898246768000191134574296448044281630064167183064707561540267554645041873936981459576292280830101563983913945715532009393626394109388789313442199263901744073114397766486732037834210711960355230820800461553930731988819329686166184080344961326212404177728459496590672661016361949607694921218379670889603497742322402317284741886601343561539177391542652164145593360714322615602442329807502290612803833795710280935531451326064221787838150341140042543210714482440807787117462926790891607224580401564414082508336170473431245977563311470005829609788333469063347503900322889624662737738578959561467543211630153072513810568180145965909038373313096778757737223912055643275331010336459303906884765418555999044089164543589223592160098379133649036372494165455445349026560929830588845374696513348539088260264792071692834000721128202147581519794093673728329312119185344081622725961448733296821951231249613903169676600181578783132032391924888879124391727568893222278617368241364613785640420213727462794656336514870158338703931403500880438349261292261117898808281249078207511611599368550634322511060178317424217294449241319076914099958207934936316631713865753861843356577262623520116699803900910424543572343077704978673779570702254724244942180754125529191932311285500646521116244455942783069407477008136476229133535651894023250272877631689143069351379493532653524450141513020587049079709466508446968840026312296247239561043448163335804410543487204274196025250585745198373876383633859390789274240694832129900781930038740049286383768534254610907820839925759214249573944006942866472748879738082384093097248865160477849081088785271258178370735500774204799615039202225172594258948222767952782236340088088514536060074350854111043040379901692822150028834731981377440214329294833887923403901549658246599012988977958900611972757787365330392515158367268044622919696019141605501242392338565868357463524625627319522835748730911846189954969860687738952912410697233772264676433095887447774846283551971714249435358220888913413041820176495529537142962075073861320751179366806030128722452252056905851749311411778507756822581790801901164381056926911479988513098050883209133579312524476025259216467012089107194468305337753805971475568815591225743133403243681670705664964137405928206778941877386094640411435611737253719821712267046788138411162745388394211641114079645844466382464176573174955273883526775604883188485843474214795794464219914746308675719449351485668429587077155682408744572676316705208144011789066745760457443073645339271951094731431765355081176872806683534859561150458487751549175231614136503242171583564297830600185175444590419849409483237120834651734525176159310907319729964990837183802109077233506457568624396322799068195009692376844763540545647866673825794315838122337959992904998144869770212892556867204626006249258875840792542692626215292915996547708027205564446762645761214731478162381695402347741415294148787586897974306859147720101327979707275044241921952780968150988950461014937874332589949451630150541294663005448260060229014108821298569505444053207870135796325719211470491382452039117526450101019693563028287694955787655658036505732625053832730578412929429138304937244500548237223348060435556405313617494301498962686608762415145179199144297601219866417701028884665368611889785031710090035583656539409958881499286075600635329590047826251618658888706785086345565955680843048216476906224144046084508485432989943895914474210834651105995383973299166529074640990028640884765129037753895691811950207822383775465265541428060165375754687125216030366158745379647695065083120098709489419512620461043337939013420603168760867709657345683268118360281812729201178465781808003360998010372356077640418401532717925917635050151069308531969515989445805834534849370948349458646282077691688846377301151784693039043187929287752195322971393245463369035666745731587461774989016507387955780988805657918811784145477838013151220407877227335862637817926999018221322902650092489065290012166215612766209808863084062049968574365868154634515389557883009654340483474939952816968723920457883414414590627325954453878641957359179731455950906490374126662423357939677768704847134107243132762545706913536497522629738046633440567429367945797703099007257266386223964658058373986016770669371274596206047328445297784969556264666385664922840817984363648815053584715528048336263072739910742078839971332561914496004856240229306820400774974202005171893638432815325473148834485825588368037725595563039493065819339816304261167626052480581234648747358402305246194245826107165357740895956651364505920291199216503049780202695945635610432722264598054005104868604608712800247418236493313126366161359732021053002047365251447337152954421778478586962427590895768800383299617865146081226259827339719927654832043541181934371848203792096350586963246081660251038139877904708372963929058274305883272682505785117917791820205514979775792473229735094352791267799142315475124727485874039299903927824732203444302782350552979045350632801328643925512699901299056473838855443909152359846612931725753559815843749897683769826433594182647729217286825196365758952642298729688977050927448164988517720947691143701680306901463963361239676423085733617651907689973072614374940051650163102398607506613793934491473370784678038869393463889203462989783522629105689871794189271204087398739391058009574295220429854616190484190878662847758546218961693851778189929012978365584511172870534705673375157854651072657459730691718454220204868582340367301652645595678168276036260075687633398395683891114271746337853439956148570384591606997393372466956804606293680841975032575282829123472188493697153516131129855833117463512288975158750257416342460576376467332006883385197231377359162678861841314004236769835505096574346865173028324430423970989354362088677690715599192390390734872317535017332535963670032483946158302210178053698960660275742080809325795909484240154171827703540640263298356876037763046650855626058231499654509236480531375593200022046893624912413848653498157072642810656354048572677208283602076800082901657878950284729545363816061464426767190175800810000603415684272808648679975485963284306943567649479954660907146299383781930140107136363129374477233902037889327414552476183992307783374402984262612273884278160248766291441915637450258669894160296446063023926819296014620502434354930062389313907601201077672091504337195079273452620336777420939381385300828100382485946784977644634379203930633939062509392262861481874085955076546915785483358050020707406154218451649384177939018632107475506509694537172061299899396322229805101606691812164497110243222496307565625023884412561845945584617296289866517874660766516745000300627435879596857563201991499212875982903262040156313810865974398724793125766645351887094539886586622410918593739119074655005819182223636972032758029785041918000870192100305228871523574375428144640129700958917751998310179986013187286237993821052196890756974870200841022113749179952478005731662329720140926860908640339011753206711162312886176652674074200855768240702426846945883771796361364641978931309658074999675226559744241235553163961595702709483709893851064622977840529147980470017444782951941033370670311677627862699870557803496162331562865758609133914015319815410905233079051103091968723266014510089220670067172566661619669203362607707731111203347175308208963195943949539370987176362467243281705262849124512889913337336819464177554933608249226952983316415470067822399887888098130495122891548993702946235023046353938534519976548600507770144854588820063468752282965921991314856195944376284062936612236199216996255104832159473746681133944883343305690476209617472384282774432249939326136647646669856268739258256028383524266062204702252095425019687469997989623967170174306131196350245482905200791580908768166496623595011971470167660773307093785752206901695358856694346455659718406323898570852004628402468627487033076635054981855455180144747962474884205876132453168092933771013948645883777978225426353712369827506962013979001895445060787894871650429350814519198907098373601460231855688043853242608454698836648354564328397065466617778951804417458463675070258302278336376326515520140266052096640463746399490450126489872206761566497867281573503069569769567372894697890902457241267175090492594806239266869070867183985317868951707448739880355850416455454156350643000483453726051187820606738543873907646986543871072094529855709132106304139136365660874279399097976970169218161770403514842991723935655923669516060569913073664482517906397620099959550786210959528253049140533917848761380745493516721180326271788920712519075947084827209258754655347995183465641689952190701582977122840258133051070717908649571934713629059972898897633690171590288023039701782854684597297612189507980504698365794189192527375737868064813052287445333143735390064696822997465048030721076582340553854318378084852660645846033930243240271519213279979893562999318577209092544958940931054182196544681412298396255222366870083182579096067051668363969351978805843849201776337514952531121483882033104591334325593743317280828661380582594574244070907255867826818571378545500402089616651970328139385818343646819792552787616842574144455662582883983697967782776626244961943428607622058107150320010610362378545532741259225768271457294656309248219936764443051404377702020622350002917090285577421644961532350489705587857230922317418506470719613252755533537220687497848102383052573723463164519918558620629251494835204368193349407488405756096327137706733454775289092228008144088102727129967615364418604344330973408926493712964031592514629396525841181919593462811796410268035943967706907966510795155382780012364789994300736594270859366182948677820157488582010902550772441437852374448152501873202180326869237118352034109424392376459027932010442199558095018293026270760477041428585360094943087681554492944481231664395576882998920718151285035273332771930331882709762040066505656836318582564994216432986819970113105131744241114239619915343644176376453548363919531761580018135275497786905718936198544875647378637107443904639624309266343824961675981601292270240899025769850225088556481466762686408430959746627085215450519731073463302937643136893446796031203440018557785902548082950770989258130567560186774546816702427879573528765296456799314817584549665970643441086465316704424241475736541907210837347056838646313136630525296704131840146708863981644061580250783030951740691130358414042394841742655393432500425627459171645526956094956212149941006591382304352376665079267526472504136472949676962451914584584508603007901473556771693505613604758650583698056503364076492577894900395659007375711064227073143810411978907107433324050665738641562134230400037553750747569067214982752238847312763105776704924749397388742059313986046434553923645786879955108424363712684710768166213063678607288336163811451972081867925192865525957468767524524743610949673916773643762723013160481636647428041697776775212111611465919731714500148617284129742757579980171363853224416424655279068012623966815305466850729613014626363318293952346758923141124528947510468502339815131241718350861683349202766692269413982165643817968649459381832440157696879836783784763082411824324279485795475329144318072683897172905708504749132481592531055969168815018697836110997453395663913171723148666479316494495817789180514463829793647923682603214013976768058374917012610977155253055223209319696408470460018869081364975577441050567785658754859252634798944181026638223236501870704330345229858496889483565892057481588276436112069369717012710858231513642709641899683106850601456611535872747167712518000770266962040447411164533410062106055466620009073140132108135449329078280088885255634985113209383360468983340795771740346476597083886192908847907311642394848657121654955216087320248084068660005671889120419005961629166876607531137951712549828868174391938114815187818077472134043252859464724363613573713955531483178368661638040059025576893612559262188845851720360288041542876850106857938847646852637195853688446060204758383142337662498822706522133299972528809133480536958659260379578980819386854220529404148327822668347391751865826976125787766478462787089766280471521234226890953483171219591167735470186158793877368809388026692027258040442501150875947410908209455314352578084049214862117377386495055448930415259271191079996101447409157192509072131132150159234688001447069433479353677627214412228544224695977877053916045218952849881959193788327815982325845994145573445990612718531790513551659557287569232113192513257505532774660152511720066298883780860324589852187708676208664934041155778038345910601915269658545917454807865023066246131143544929060994513412073959286837067199000661249196283706933012807722564066122058740781438865142564470574116269170810573944415883737254205989934667304732259190204417039639039643805527622616304530623460643638919973577864860533177750593823636800784504923211898729150855507224381896427481126534070480701332383040527739782463520004222502067675606537146022686545652218516293407132129384228999121566069209167596950768912264032605162949845972436207061121538095696396565218432845233862183546004324582274706422726326268787439558157291171099145942414880317238960624437054706734951945892655147886566553204573882377262237267852754417557961040980993215426529885306131969858025438060717017214621849417317416538330696049444922585701824657337524323262309964424349531723012136347221653801597474099221291753478246448570058234693771253551857977691807021062770487583816350360308996571229308908464879180812821687262624987755537799948284668967839419456821659442859597340940239815647472839391657177619450327673541488439375068957782424705136304118848321947598942009123533421059587993353324705892971347585640193480952701596741192840825001728539943949457383477003383471123383856182374846530781442275418321266712375524179560187697109793742412723444500141314345461618875159189077138056428904061562244889039116583264414679906398232633849291432344927119197491151098086642041989571440145935730371937551056920206150173978936902553894708428751418363983584635984981452334821598389453278471343028231316547637264240624945137905661870534716382072848945742516128016668892255074470458522546919917427185093140105014326751048958313724347290098746186390964812948850067141148524135311125608100547776248275316055773653572073059142153094201624557226744279356729265917460736681932818958486203282302708489909078121035017471323698903118556946515893260010002706592673131410195831512874142760947734308279773582774050409840174174665503512302185697940986404989252346787710244400275715644847721068806445285126410627629563254347907068700506050425365824963158359907640864109781832374638153362215134114420226967998425241432789621771764051671164379294638678943838659783541115956839794142723397029804229420747167631635808653183544999545467018978418103872645365604494475942742058826609451061001403424313399177531697564551806602249410845701185884474420809092799075242980185732463176857901160109339763149627686641521964579944005944473018185841518759769511314360574706224285510242325886405797542734082025000518495201246344515258537399766327482228909569371498311504035784277384070616522119227149611628947828374627415062630340666803743014691220402825482995361891083231546442470875774790276423445319516340001132500065569566049715398839372018005721535982061363768414674903480373157125232545026919576845117946518664410899969197590006738298069478869719268792249452420626968822164156320502788519380075610272512352385318032018091288723255913930501900301207261181536510809564814324732952601469884171163163910342187057673224918969378815270091317119027268271816478373277341369835443240093205643549228591396670147654944455627459830165006948308229588303505012241372409118895461714974785385246121917078601629053990287114093154180453289143587184431410593666432916018845096287270742692352981924113661063422019838594455975457886953635895253636177873466907932048831145705140046161304507184905988796434171590681740909511568700412124623218006958618777271951317781357112011894667740270459202164456504884390212946146297015182896410564759528388073069359269552291446647777803881719812022430607237372196536390169447770302841481584522120026731545138190782850616521229469800426599410182885221462619272246625768075240435623763578323631748494491604003961205807032103646507682856667510959033749006563859993587295204478216375703154357406067698129961515343474328114094513435989284889320714341667632077602483418942133003854707051004960311723889818745740588059804200548856977482492093831943581591174817752944396544007001483892147218910052392773903041754499391689019859442020204884764394290568524772465565006301198621777457035159449620034838254014476003656535579343720188718310763873387955726823493977601770339236370906836851971358772168345401729766149532162621791398098023450161234987317793174835778458343520659057544889113115522493539442601707976159318862677989149309710713464222285038186800808894385343727448567187887697628540941596349836661302826810476205034233064747079781520586627117603393601860093421645031384229040667847346630921402498751419115061387675951124814389789520229258482180785316777217909028379497229644983136462931706995059461610984054465801829716437805048459963014059540516494531483656725403606249121216385469913749395955268313885679341507138146034438754162207152158640628059017498611161492001136143590038132996792963048240289663500275518065718156935714414504179516887730662643717217258878607990133905893413383353862349428282581632853310987123614526263334937509460888500515414969282819647602097228602638775101498350692327292294457067283167203106508526460331161592929172434248575874643836028836962725468336602288820100629071674841512767900652385043410640720759822327413050049102297244842226935656058283636306902944619219884708086080057123447426175012367866649695614737117782768371949624479382803136858904024504684066259227213528356501241841369555413365234926639691218199025248789642561987250803773253306108253493518065418167405843806455834084140457051983196216546574414905877821688022752179641893066229756916760011116031971091805990571875040004680698772363063228377477053234604141828410147690782867344164716958048036576887495712778342227139921782382402320596324468837747362571231122524755665378624830197935601620751448893314678344744908640315438715021558405506548540676173450349772658724185881791166826916492468660697203988320236525454916570144602725876525092897407695933914797843064469042668870298260536783804544359266365472153047122134182613821078105237752374763389919508784418297125613151211524755010804699518407812362255360147595926258900292780692113541708229994555810170804336363087292929242013293732458187269456404883421764916071520496214372793037067666774270779574277349502190708707475706676985770316207592866418116819802148136931192779675566004750597244808962433135949285397630539593934636809709495729138639512620992488642309114899455055421733797030449590481901648583271859203894878796506285329344035937724453057248000821170966504303450250176463302428636865036890364605319771313304797540260785057034795572436722972505399044861915672387267827149792100425610974873461928225905134291509300341034788787500076777049498439926933152064889675093379384170578636901028418876811952842777928063797794514838119694751840221979888198151966206822267741142483462646045109443716429419000672766788075066364671489541754890235481331267341331688445788433419027195714332262962249137734607500753774061835424974334017437589477337476671366433936657747282169231695957109132267567305965635028306636526019015264557205103519877076209487104752245950651514934923689331657413897731819451088036730850735544039575876407231920162586190936925843779530177727186370184140656344041839432926738838204961245736707235902145356020546159590295954916677883707330403083502505168874597542622137273431633146560528559142500262718848311129053867298475392083524718955972509152502684279983603804472165458211819328846815178069140562184998435130519687851566327665545319541158043455638078128986672704066660870197748703179149539049362381869697611283242751764169354204658059131726315641383475221959126759390334568446320013876468762582400238292538985567553922958435100762425084828712926499479497635883385283038496158475863110230985712574079284435677036931420615045518977124149563043945987749246338777375759582974169903934245243403481595378765872883272122703035025830300619566722188827803313113550770904789706599036533250876369105640126478918303825909835483547204146460169625768370556170807468246232764303606647016633682701496867278284726707106239565586956282641726535203036937994952679523703008524286005352132743254686853454720571124748936939501264499325999401085718015986413012177422857712748656240660942596378950633111070206011344386213427954886681207506943550132973603325266797477696038474830662107378448901500655229346987543778304982812827115190686591859903425759920521263271340956976698357772629118153511552809361959122209962647696776845628907463999744896431446005570430233568420187325506895141951861905267042709653394633588203894354315713291240028208033551932578299967248004299128475015406159854281155244924818986010849391108796407850389208908849648176192753898567590086586119620047074193979688628913092547848731207259762578371103848300320883584687194691709068704665150388184785410617192134902983733474799992440370315623676795605146975451935195865769100934046636320593939367716525897752983975489049108285982155194193777878780968519734422139856624547210994725787515167684227846640591452361380872543469045402841377138481473530799676075855432504093481542098064085829956371975601308767211235927651322248473788760779221874476379897129285359184510757497509587158472460467288349826522140772649948862082555332635793644728528899345040562567360267387926042354291681978116236717741614310449160491789077910166321863261278245215517443677441032996261874522531160548092996595701698129337757177567695371903306912226551529520108153621121568103251364021077835891787249493774330000132814358505139918593369157696129941367014956902950555886974069838334351122351692859878061003635426373068186122960328273224593615507593644935611190180028730986436844229548485093114271282890264577142246082858162265601859599102510065823697955657020129655217765171990893270877187176763320343011261479502580092691898274515344042899366829567656693213089700405045457653714592348101849785081924076173464621320644488691026409564099393709213456335890247011461047067804876960918194328584109242612363706520937961022948386144835746036149965001629359514992876052804111437842893711577065564609763951233188292582846668462540079678616768418687579491611279222227110185502065726257765088946120389084234581065660184797983527620555717879163410027005255950111868666190875055110386470160887102147800649269442030003281431092093338465918354903428045340371703528608205345805618875907694183364553495684381874867403638677441253524757429150264791469326776043513289298815251911540834193578522443490375185410047887230554439242296449383537604675169763961167774283939332462492866991730967018586444099569920775973326417001657487125741367751998100474221937743796295744346714261884817570060632105890934294426084567319664385920397178477790493510664994937438694512184203269637358095304553859126354562563811346302016524489633183857599211227418738116411820300080340051121313232310215835083004132233389237679678474333006667367041617483022071673908904960102229021514225735550628935258686457123729819388170413973630902803039987513974502996397344155371699007653385722516556567625867463502744500284327189435076985965702416128694464808235991228992732012431194819780524723283544129605114155050654800885721579178756771696703910780527753055474377870288112175147639458886472443200021099191508156432788973287791571054132126441630917258617251228410093121005863503328695994480742456831100189042517448773423412712791587727390939333040559149075479817899562683504304608673589222609174683118363236797581263527623753818258377179552764484532220400994192626289539832493169866003659277685027108468224644226002731916912650093464239763504582815366431608686309694559818017127912388216537185306626330908811823385327912161537914625097313295720783328475845196994840946283248904629297554923889294860635936377648560697669188109781371882795569679926427693193504439179004152812580731881127628787150944499175702446232065311933559363710216224474357009231813553146262920747463106001885245022600717673713080592041570734138224929408438887153713735459224538978056089256600757362099218339160917057242347580935468635820245255144021715865492291571344011058404149501515368795502063200277876492956491196618216776263177297027489323059140608527320400232188847271451349855950052418945728474659888345341048172130849736717174738500441936464665490501140088637962973921785816237047562420864321741536505308862706103272091228951691116766906652091706706106922456231357275920760156856534828518340974602449779776287861261988673173881985547827297854665695649946621147964727205953389042549032553376685870824384919882797238130459417454312263915105174480749635237084391842235453454944549983838222270999876400627149693142490112058655875414237721323619716588009772989417010606245838419579362955357971151640069656622155984595986551176451204600129738181715287472613486778055904000991716860903739903624705907094215039375238369375225498987646535007571227991165020912561008317129443041799775873159819097007800878472669177075513700872955424680546600436538803832585257153788140076320623392543713417077085529767403638444357630768783066246834779333591947502581552643683771004713033654131200596038610837142758412792411374876858196979608621390362285805918607623969406484702355693075747847747095808201096554521298172992970909040308287809125651203995445744158017062974737596891971702417083072843704480056776728602413719005237250086780155103140644022883039647211466818454253468929466229039196812100121778395853589727326607741506949781450832544366894971491096749955023847592626958058298712447669766123179714266967130504959485745969151385117832193713954359308717507721918268616048919760255323176185469849367610719244603558166734658269607763745019854119364611434729708386024501269420568714849203248978058398359321188523455665499387728710275493530771239828466039204957143654211404469436480980277898053387853990150626519114219416136159583063412671512236170176651056420834502243479141436473089602566526584594521243737105423129681505675137420718755920171553574452138839852359473178557642780232223858267019020777000545957771333285224976389287864549355777896456419891257492335603849236182889013755909966614921648605547347109006688317858601687663163562654070425269005933886566951221413407687186218285205729344613328869954877760381094877340859575572908536049810677279514223172385086897846158027628162201949408709944536916689827386571180666734987533158744107382985579664781104607230072653866215420512387393016134621823220991898553715296735449348538123665383938623854712333367585452531230793418279386966655402629986973609468398423786478378507782247498465847670190860776264902201650653945669372082241749371879363188314386353643382877933332811070904552487810914402645007915765489310154391311717394022769690269592833945407872005808976924996209505024069309474200400914019660312081531187103866879970028927095724864735642258814260601682748488014624086301306557407735388016772577609623916517439785424094895134276476989686395797886753212695992682120776138060500777811517709596502377694837772849253507476667116999254187156123651738823132514365417870233226243328258446477012252819895589678431245958513198511538843593776084816666479479386399224856134633661326415569963003303952697553078389079518808863655378594980768298720852227503535778365285974515676131976577769114419133613183357234864432581679225879167558289357734938421134732480451340409984009200726158531944052535849022407469747890588509989116582963507205792918644468688255064539409547478043338450030447709952874653001908434652975984137464013498043530339585915952757324907456025078692057769029387435396563250223193201054886949889103168426112435615876847560170460955097928638520444630528466244831812823507796764403060321910837193615283551056323787809128274673310204892938610367635575550706401598641011384366257356043856010757125098048985046944370613032136678173831865857123107768270705755915905175646349650565920327644502902791193693729666604664289400149943003449531129895670160947828271519482165552701549089613274278327142924774313671018479541244540677988845855639906782486924734834155159022944286111719490222305241741154462206188102769175284653169488650230190525478833127634047812329595320706583576412855480175031604858009455536057536881880049600373055866399514150093909633080501879739879766069556875590436403739522995010534446748913605446356813010710379002522856620665054200791432704639277028483485951770200752805019026723684127817938161804703256824021863303652348679197490840593005200976453895109310171760675882243539945740540447790101437945328039747224533265914783765119151955533521865777074717139579114130066366608403395399080943246665162602795317620415345905289467584059932436685993081228750653757308257818598166273060314494486002080094685283585574382356114081470672213891906387536085830687903184001524380021236951289726279682935448954314298525195745514007293255590327487368713683427895210132326078659293117812458199373764971464132374517814689378276856543698985306957841637507799543822707678151340120862706976617765848599237563169799298013453386456602258784275971008193677442557268973589387950432486421195496575260059106582649369957857028883409299955729559190329945577640619834800956769421120839865666002395415013456505647284434246474786961179580608233468328118108937916759463950026110776942762038927461171147431824608261739817666284645662441486696114140847556113450776800981057932332617036010467569520534723898574823312450887928896571359058528003826916815152220564076661057889110280550476158725497625854239144915562798816325979584489170698623416372469663586892218299469564557440301078880126144506939737572954841597290309338077764144500289318728469144070443698335079231357414677726222094411363355135523134821999655249240472679780767374079395001199125210694504439121425621657397746389889479720954417657810772051561654216018108111610075820500865848323667230994347428264262377984068264487199520865300691143927543050574244556854144316768317490598449905989681952561512800663675903301469531623320303915149325803380190828550251842528021466454065922988438866322158224329653881904005905022073575938505246414471991721551610712806384160226638874600827959806036510385752990657857884280119826878537337588361526996084485726840638999527914182130418481325078921573436960806290261259778970959746800506280727490873301616834442467584266389408059950585037903189889126608006269545533871068319607751106179020566470900228153201815963734224309147177975682865095301644570537571334603319919321685754055097115047376134552619427665991143047344286084558172990211765050357526772422153179283340527184154862842650426409580214638388816000187458244205409380180672845367790743099611587277390002012567245543097488526092345291613647059488983992170516136538508156871104282330421625765424241821485155750851709282991226660043132217041503883068105830831516596203523328237229659726150559051371375137407142437298247251537208073965879883731798324255333170560737006104220270101337428647296142895137378819651835161041785518135669885757739267490966806442460068578184299306180007466798066852497638570302196192104994641733737488260794398139493430599169318853851195851932135651808480934569814682468792842629867441919218956574313698027784653548611679960658561873069621997554132394543730370548513337144577492659534285291669163833748842046691090340882686658796171199631819302292117264696199503046729381615717594439359045502922167895636161190012698735609046642211058410859946366448306447103236111622915570137405468921985089130817324293166540550547769038469632355754117199821655167986287165371929734984827921669781718206334807708194111772805215054201471234293389647065535190994015257273039778051362277487352196232080386131583437233000791994848049525677578322370604468465807676085349831753091624076405954903756649996975234713696353733256703546594078546023468890687234269207425517055488325137776018240252297674796192122045382293661820916969046083515684374774436440301604140120936407476770237812767563748312247806726513493301922499414232779666686814549810093386505972830925455364798229587996862294447735711739717865439171301392767630495312482637311368253939820838517727160358568014531753753445357445759592193745629721431387261505909629851767664217936602011403217893371393565969107284490912698021776568338824664255713747574487085864202985755869980470380686385033691925291036691091437949538798787700273272006348909091044319978610568263322980238690686613814360361145134603899338567194901585012302839822003405413046635980755161442677269912142155254495666309794137043712977255035120903789130255034910873561039900149489144083519326846337626443921702544646207770840906632324852639040639585970484932585440607833423929322566954477980559031948547622918109143331840007427653391105591267548941538555433998450391440611864791059352106647840072573858584477600619768425921148553561059576320641942340863514840515864562965848373545565401886393481029476517557385547643294067577974910677104476932048520513565851374124118700659473978975324043094217581160647186784746398812567292735494548079187591161445255068616969322915624933842706495997027697293581774086759005133847266090446786751913686720093849039197465599031102034996664878602352523791462701159346881965105776871572768838491188943807205989610809631245501499491724679479924414852781930835528976718475170219863353255731075926824358503025335420204674287312573412871517164473980062811569443367677182421471809095743390100517656069165425665270014225497095780385170292651118166948157905561689287496133770564119634321374844741990697069177190428590311843817089127516665884963308293669749506739883407400116911992582377683308552965191968446982753230804825204125957456885779044646603180556429904192255248081984688860053509298582424455367494664217075014979792626334886599305945564223335047407943257296645279539028839100024622474625391682808283731401450025378758575058624830416560975188356089349239532071176168986907930672815120946572059233118070399947034152018837851668092750239659655777981282985715505348951229655379130229512927374354304467608984091045823829987724569383582864937838416592735576060735759835242228369166793177401702770530364106415027962878742536801855062790046023896454803562492753240578414816834858214111221250140640912853565001946666741632277210522332860476367994455718145700404812527849264359148417390811713613757570234164818852635932487750345458405392785317273048044579933862496335913442187080751924410685747032934931500735957307997335599741358145371641035280219561106632136507651999638732660679447220279587262270425011744561237099606097022790708428137245751581394050140787998535813430025652319268565438622709629196975845846852790603732758496339185130763808141809720355249654766381463156723190838096327685875194789107551608849436069847898096160878735502384923048191613098744719833330023557146155396730001912946985487996364146800087061234123932909392892516841208006876915355905946799565507499994031661111360517988009955941225276365511788441389497324667458775827950687478562057767040300126445251477487524338101388016364702612914249570126816788374388450169845592291465233596529138153789355503136908273950476033084904576410497265664425422633090185999752276391980868934636145932522993527666904405809730432410402858764130575642635396976828792199535223308989452930144944777552329600541970014563620918020836839337242709856830137277845941452925177618886705165102864985077425487739941327007245747429237947989955324736368130707478965058617751360528357380276776242517669430936921539631795911260932663807990336935862474817200618354229444688220503950021094459965222922247262125616631270189833924626785571398628539602899916972838366893501029991436816513236659232019849812066947387379455199342787890080374271787209351844077696753751628525089315291443529220939173911422513945030175417232324228615827760687822894771975647969030170503384699492795241781596860731810987692999814246953904531230248122248446750503492052675214850891238382128464036359835560719387394396048289443815979916840914378162269117100976450364429060260836590993008078587556682869698409442377526355537510683106471179935596985236494377041584129804326585327000379399891804971131771908255594064608893662338953432785664019035933206544817569938292796466316479752198473499046395484254880771718912202447652251709266911671510279949340597380427932791396707091106900505994673140748929586238094209834124376967346935170484104876745044917901325666151476899433123097361368652499627558272403035227773363147249938211382328654433708129842392878046047680040567198608511246635244724490512886124678046650862257298009606189133636543443174833533024557737951143503884489588546812889193160726785281400580424018326868217323118062443024386512622692698778465057102829639455015772502262438949236061741168034060513703829585835817928070593565249736269378548926380342084064202400043294247081605574144138309243491898524929152930555239623415654776705133289995191448095543102092582937463833306843635071776693099775300962148529061039486930350712788843518207607605689141861330034482845021742521085770973229032227894286027263277566665659084210373962447615645577066544454235961729626429371759105321629213027022522374446700126791005453779877237556119191894266117879793867933012655080829031659661622425861950653165221060268878104954960645403056073135004314441530602743148480443068000109752791136212911932679209073468854213713853047080528141580919902828902802125587608861791506369575357414403422667605641695779022675341447581537688194493585327645988032076584908618468528451172981387257761783143059164785741691253041430483122419412629443071697239873281749149448118463843060268123336232267080628501710737323176561105896616364469792801430901489577190791534797758807954748590029555350214897380841708589075255431877529034469759134657564438324016222108393428686616754922994946387654906132012644356133250460691549972786648530740370202049728050288291155834075544937302388341268290344221834448031754558242301848311429095782158305639538587947487143356389447354909016588031666439009080046639110126012617720373606277642265103574427469346672675188394791714056735994260525825666713239040351163917303221644903800272930239336441814399827835072495914318695840979944514262793872084214943041939047471033738673742052146521979177808224878586045473210578028296989143329339663187692757022958347448101894598434205162820812739906081795088853037769273750894953313401398383828870807095256173571500555035580127384653288421456742858754892114996544564336148135912935117056535943297801572152762726204624033698174311271448044842343817942034423551108265346849684035635520144979054129220774012258606705889042514612829979930534231841504605367985549444622602213646351200788034108506090840646196940467342379312534709739305059556560069169598935534697352271001023173159765942729149126587055057748767722451136323246461455490281634342950075988896826058252574361361161157998584243605081190586649069185452873198780500205711046007555072852879414143903043130070446895613807402569278511763490193339199164793204723167218096999462579738403678415165574927985086652067530610905704630557138125001698591379302228247489631024555842516300462305276235131584601809354868139061462998572977110418464672399358861050494582311219575347994620873371730138449948963917228391709861318065599632448053009133288370108503687188922114318237001107509026030409255857173490330126438426776408726030517494814134561521667092567627588977732096354470282211191586140097884660630960831057080108741311925193237446777738988116983495853821379683296427817790544475639937378805527580982719812269397284616907351110880893074324448647444167432465051410254487202481179808660636819445102059203634488097196731844172663493198136076514282431142207954101287538861700822764588969784812564096236747879462220208668401467585697145222264846160431983142817719010574369088291422688530566943735620110481676162980610746766936938178453881877240200452665064233437978164334109312697645030223887654888630156151409068147168482195871183408331163418414944064689762339355776161143996207296072672013077610264906308288856365459613723705660538830722345115240824472052046942380278671696068388262151806449148035497418052114461119280219211380282956222977694152860809907391341796757887627165382578153895062684993063785104362464789294554543773888217508106198560984987857682844311546369260929472227061395428271114944482367129208830804809907012836150807043127498827772573194356073117366994327927623994645267302405350666603919406128650464268882392566604075257279441229706657628565679354952840625045131251741002615733135869862091935899560183408346831328897808439235848243174719321968424283023645882574095380946840565167759972678309497547567249794623612230180253331875266876657771580684096004705212037300496302002639702111344699914702020064706836471860916966471815051564658418853069640578683356094181991975539146382409653122978316689595675361542832118371762363342867299954434448167463748823364939793770618085137455449422241772043413417722870150784599183927715339687530151292576631401650005432562864424957754896097636718008394805027122446512121620338585997204784109606862462127626987642550839304724514837948756219041324154748485501713274028666211325499574606567357817818342251466680127708979866072392898150338428043861851190536005423472661634998876147857840025539244700183676159492179292886624357029306264454353074116755959415151554748078809724524163085601205249121364223874959213156389448544893864873539027582536366065074372004430320447517165084971445856936689716346062296458865680293062721639647902687980508778352126657332905986550342337887667191794297028188767556228660281373299057591538822691749541051390708461346987667907353955406388680014240677629245791844193625840356663950511693382751401789434825068657290281073184446460528856992320472304326042214497037994322896399576751687620297918412589153663682018216933137625206864088514344703674497411316400241690566303655472776860703724386704521916360694252424815990100092675929570093966225949627078966195015653633766002958406744516423690427908104443585169446867659757712584973293820040912843468508773064969608305938738483090918661408380081713363178891716131767948465809432874362359102206067586800925311984952687521315421659530016748610228948810972976672693193982604514041665663360495224148947827720998191667563298541772909154982578609677489149067264538450653525712817255870996511576934236508541475611246122989947523592722039544860434284975910738463601436177997476988597553776932607046582174152869329663197623560652313001554813820620948745885489990251605739620258686845595950427751027247740938593255968456987960574079601524183341480212565976755253219683446097389792022250855224674352093649457509595865066010197942905254132747194733509998972286030229595212585139796886117798587152608112212983630856440512924063023684547434826730311488238454811850984267611530285184827294041748246642454224390267575222879105246212439997791631178800461378322731279948694580711367222404817612340751839765834653825549343040867673089653341824977618484385807939225027118166425969610521385034703550026398640099196288416827590826602063747348546084454808398848416682575336549439692042665063192842306774796023611281755467464247242226833364950728369314596191132668055928907735984845207362386970473867653614833518791939800731008946642558823403257760943582849877248122579931180270166623328978470567821454191300329529852873553380189959984399625245516202150086656622334164617331071286329419511364432023949365709033251215196680632297428708600630343651701804056554601818873277909601397917714977615921749944037902921784732361574951900856043809641318990653554360021419019381569937019645385692627426147052363353913218927099851374480441677027827052230368440694782095978529181312401747776716225656959254048929130670060491535721990083121548608898241408625405833750392418931201864193203124035435144496514555385347496620868223845159593970247612364883168432731072996997987971946220076947206592316162720397164946442355664340930022866769834312850859154721851079770026671537906172364021805600721719304191857572524585128473755848717957398012815377648337989566987437912661697646122425103478459865787820150556910852699470779650744627261079327927411040960766135657557654873579165982212056414494299910665196073791215258328277563652640750343058209131951314348034150855005183189913340704563860600200280816619968245397564906815784790782805327681291110878925034795396502834543418038338164680969195960676664372206081802333418599259703704911139912522940711183795128835561804750487951960870658912743247796912479056894120481817693451613352669822269787587353731823507194767026077349734864177201196621844108410440260844641328181488141821130303905062315094956197285008691194428447816029276457561664919310884113279290291850146958632873235724606696234272846172303409371323437823664425372063585791411655979039766370745919812418432528094907578763378400816846455089568334585932868035327444786344395626334105670728931181816725445256770810560528635780872089364155958005688072978705658890135054922605695026552577588014779399531527055217050803341387254444108021623316668224504541416110946604208361620671390850722402405778336390761429443055839948488868994373393933101658986533379767175362119352439982518357084319608279693560628141816826279993071613274860258146080423252209713614118709121539318655120723680578041732345927638604519419118220792547890834091997608196866628681584932858295120641125875317446433359412391080709948243927934893844462079801373772505780907410836984584682776091681192844218503950585793133204676441861915789920073070208425183879490142876903332143186356567398015434000241776083775409533831944563497167688402503865573317293781662356760456236696915482712962084950623241465423998784813132239567305483561860109193705025538471340477710810966517748881873570133581776401097437252479587193680937000332721514294471877357050636284354177845240213935037539181282375605988792420257560390112361962680669437459184659383923005689659439606322289697974692886506060042608832877603128663482607843791808178491954720323449238343398916017688033878564105849845477882284376694680049032331360512215077304373120002535905578868446772914805388830442239463938983698627046457289846542144726820599066241857187110073351528835407266799392095541881175450697488866288060066499257491919064056115646854154647151826559847138555026657594906642754098290989408987161086790882816826173965525961263699824862812025337576136337413732800803621060959662129211890449300706117525275100248901273576109091950034546105449871776608414054959842388337678693547096473518695179259739052335030103961510296103538054408312237840441531153756401802150528785421276206920766013476312614331333719102679661564302153693746519463891332140837129582289001332410734925006289362985766318087309872079001064074436044970191589909068760451345106106265665269779994408774455165165862331608240604232159888531350433832769363782043564095842537332324936483539623249338954953916323825531335704965648661310356015324325153137412368026528317031904028098572574001316078236323927416969191635494763981019823154730293222752639585578585897434102792858371242082030309799911235265284701068295491115474100394441508349130487455701766936173336116072848203189833105690202465551858113211104443064386546611848433933537758223583709928102523212473861385846152297026594559422968158271068894521839065935140615725124981140802016687973384357639804066006630519290206548849491195471058127779416364652228429651431445166917415843608734124969066769191995270617968753456363437655571875052533252169066799467848117982057055121005568716531636649496611575746470912837605288926362450604540624104786189943135109312449662346906244921772061154763858171893925643365864822001897226616218814192657180116225154869233469497692006628282424293950746221531303985127046184613073753167997262511577056941170895098877855885656037190159031611025491592385575632937238214601311314523376720264806122995946751791686524299940583737278555687108405500187117400846784839496021261064171404035776594852444750247356091590735377979913429161907870816973165339307406168091427698732430165636857802512935114691873432563931704102630027678501561589531533727791042744665116768352229654369145960918185159025616858687469336068111905693729700928233726365734272536589332571513257497072266916747395183871516035568737045676137773360903903221177880946652126920411225053636798915019310370853861335798460822146252207382471419681177725618582231366429994009867835471859249176469509883689895929608404604768410951154536541449380048773655524529079892818188718896397816448686122590872842871034117979284583099910053975497118961909388709690567759770052772061892879762459757317388960864477461497345248634261833512646538741067596684006250596545382935235521243429243241752107052631425591395947174950349542018055117956260327168647276118083184505448371397139394674326578364580040009690684808751459662399201511831374141278177954604709616489593893284429172941396282986535239685533811291201962906826149279154423840285104168521242481222594017627288403887915388714674102711642238997363009525962284759038348749642708384428188985013193811388007628222226076935803590935782176729403688388239100653544996363898061969273638420105380377666661506853923580286596671199081881517118721282476788791820193679130851968136053534659938820394552897509137815575587233313473253213322063418393755442243020380170273548513379845663244219381065728763571470661670758375230105891438813906482771186991400819269449380075378348822790324514939506602042861637373867013539787066714474219038629818518348830993471225241024496938824966218026904437864355393034088629530791202227622374707237153327404747376984998618255022497075460289557810046806657952468124569124722151756106491925680309156587491521379942247850204872557400063989902369525808626011643797225470938208123078221089293175728203826949424275794069810618092898928914995060810234355147424179217818621955630950400880293611122839137563603304353305846137810019061167346950334769621307539202894637059215300782418725813062150298004772990440124158946583185715093941111253123327071347853656246221497502075496839580172361732605336729269292472579942567326703995582851583665511818955063875907724784283618114521207093722650145663593551619877971593956033134813156689800734894645062212690315432286518206587513073919103227026454453054815284654217093353462769708050552198656889434646116654021717811214772258637942198103835132647112801838030860187218623092896407368758442599466425513439781663966015509870193863852387656000822169758166337791507975091489084753477900315732016623528968281048462072677610116578033142698117913721316981254648733566480542532540094986171631744729613574541059965752353379161153250830092824774736098632434940766551774328892595197836869643856882056493433018528483728360450101296570723692169935806747912805402249206403589945800968051990608959205366922341561271427894246222309622325239235469271065949569682350479130300601144579405460284254134021943714482915693091870266971065137953493157880040531182893047013133705232308708525673507302457240037481019565516010500977403621327993042948107201349868141277389361556182729350390669645012683412836435491190059181249747100060750074114483008289666459476837142078449458562679396016467923576555564692089016260869939480651872442200031986637597321808922918799648216489755136566766285759679014578341385579019223757015737017458053384885416270495915375548306359576245208023190900394781071746709878713387634304423824622124660872108279702185360593123888473442248086238963511539865393218124623727607601158571766884378709756734641095465155042595375140465217738141549405875780080489592506074113034363577537074851269791999312643766529162651522220389045861300034313238478055464868921239031648851610159788068966181824275502008453651948043545336533369501849795027586879038323179230866396283537129307905282637757446616587861398818828031970266066213348910881701405540689398775340443909560968220427505919621217438435947101283091903181604456998017030358583564107002301434392694606974417406124887598037777908358219415286416964423907167350436456101331369997726886659718823107453074392876228922727905722764068776879830067603077977705958435797734977031897315027918570549611528647040862393229705650152829191280744653703284692850413925773912471595571597701484283969082618240216322775557885490719760476027674614626430398407938194828334198863609814212942295355671513229952723345232118426209455978964403230465621117206057160415559929397130053700430647528836984912281918172741012560520806356709459270477976577152067367322857551360623566685298422455489161148724296669290456048918867558998442547683222169087575396802815460586181216564177011547342724815815667797320519695823566716274051875567017732981311585726730192742214787086519877431667822603729890607239713773453513460167730562290201451415209422935545395847444050866205984268734781317326268090214823167350765248753092937683915017913465240020836921890438999001837213180068716615956654563996210177246343759622340622622332416764949653256541178751758016165611259384029315708133178394016954509572228987706750059526736218778304563124293099506591249162338975139092179141276291163551656199083227179729403825222407867332158309144520749444586744853365444330925526400173183040453489135052351621640639164787659105577019873189111850375585404258205537914645209849999402655930593391918017559186020200218372150181153533089075204316124165135848893485700345500348272105356161245274622726339966369559017652565152196471112580168114638527854863769094023210608143295373074664441700728703696457568156910254547057518841553880073972841002694245451921655012648907303558484422464244772101790462039859453767238421898123443012262854728507455764170856855983911055578577564024109846174269457319509534302588225335792644466310919614224775925130756434975191300429691402421667752677524360226304420067038170422022304144384109264445394905534369205892377585641175456517196605384115685021902745724453231914954860255795865706744376574735508858367806823169815022311230938455357069277889475534447695909285564026025437928831828688698859683395163989947965654073482289060404643301951652021009194793672009901093712626246164882695139267783451898053259806251271547244841432119053508332695025796380027042467801384338859886173356045540668893186598181940707109232909666912717244045861273823575913357703918204168287610732758369834791304082925948459167752707475887514381770613303980666336287001005399244733916618023424877919784913031559641877762943068869464716256640405325441132508779216006504124535785698527571907201424395762104573280273498735110325440682632955633713384072882402399563572518159124859839649736645843905907456583430464321951220788514660853622670064579484791498507083713650875344681737514253437174303466333415460479636900615892381939109769201168506682617393835365953460828417702417414368586224158476716758302788662321427041989683274931772924889719908486438120433267873963358207544586660616629307573730833960717198000173619239260540215424763744190422494471174595636492531917304492637420843678312162979966673626529997466601346330471264463614281823163609084743589224138429705265239371379185900463717045736621985674075032456994328751808830927843152897168283982124540218469189440721720459187649949695426130498640154093213808272371767201660804499152370340361812264219641940112897905446954234187127569465437646421597092289486277541517403890132117543126831685730855655865033650150379114478110016552882735766993492147731479986038388738891346393783250459563009688315731836273442172912996911107754918813797763467930738263827193394312095829183865164867641610097268959701958708747466101236291090477500889564609009572020228331979838105769922231155714053669674913425074638489981607331539273931081022153730780100998877186337852647817872683127015769542896731287492824942177193096729922994606070183982955582966699535775583114924623365401968769527120392879462686451493531664793293124206309292885819267567814581957011463284090612889197370518176929311464639807896833190917716979378185778896146849899737473738288639562723207989763497890214605052152546913363999373328176905411544282721945995058617336426909433915773189072202633301718029385347313646251339071184068739839271395271326299337537638520181133995340212102236614028219218262083566005668460062114886409837423839131391025033216083651114731789409285051083511915244258002438978667189009166357007498157574464454418708580405114559911594502957924425520767146279760017554218352039801912023348745113052051661176370709481198166257953751464083312356251731464439845766980252319112227339716215584619946571779164060412962787633406218558584353286752907253029205229041231215305420606346409374537075144161724185349172559000831713008193090006000474971052080245643005942935355404713310836908160434008438925476424899342413578682011304752365832377693543504903248853375693906843819610810396695356987791508926249603039997789593396647069259204661932709499318678991896922778594393936488954278478643955830552925054598561368423347802269602095188754598932833352764254661916102827833821982900008707705985711140674759868116145012758753531075133444178421174400590415976765002068487902488246287577183582046988773062881194937086294465625341127074248765289707248804289116403963883530120614642192777308219012285439521479238400712852485071770192770831181802503700928955305537664322257044413684039096946044856386612244672848596772928357912667037098380628408923565461956037330650901883883201649781895026741548815140225757585661353530358421704947623634876302985169057289064987916213751773105320173607001250149682532990273929118237821995398464199397188000581254407394384586728095282640770915686669405746539110637653731788162270650770702347676291769799074274480617010267578264902772305680059268947370308534038963220776009922761848639078377130963994389587000492582825335149192641361827426588731751209446484972498297827548068750061983241739071026159287365091800894006609901553027899554440702511537483331793484946526035887428027486177237654532393806280715114277825196188689238552220081185307112852854766698156072002377349999231604222234133148785155056904035677647166791197350624853007295828571912441936949221997436431879060935332293436751496227702448550515568255303988693889604084446323858861811899181840920474064495114668040269788932695699284278888288181118584688857944349140439529566094574031399118216231892170351064059591759627260403793591087319752556771115621750112799699693579780544641812685384115391719451906579515445954692313911961856820349548625646712090937039705695725108139964586090057403150725878030290544960626680421771152711095776391379865658084095108738923139054640496024169497043656087098613869664235428633506820463253916964907548630942326708042059532899245696054823509876903934689703589796259564075072057519830769760256318048241307565891151497852751103110288345450515091379547842961399072013392705487690267567826301929753692399666977196152350006251952003161752763047483162924330777693970745852531260196225050181241322819508503710834849006031388473298238343205857330676691552339814468608496610655507212858599505042588838301482605252586835635828912428283666143040442301586668314167970745591947991257251315234163268578197172421628941684347242120744835373589195774124995289368864449859923859914531096096917389737346065162977700417167477168198360739567360839924744946820342972032396356381933273411195675482307409452657302785541620550190106709207498371917016298622772591606864988585006056295875817606821498923729677183920399061654641722382493190281823221955688093812491863927313365844438393182077011965166757785472133702637417500614790870341219038783351168886253060714251505082864093470461335604614752901755544825965470210142998943912772377188418528221041496811993824693501096019152691762182627278012796265364999409796582568805649648028764586727008198503223854882089239128799027199755113904088042154276491686060307967197768628554092116045050722187650100467441470279841795850394608647827520903314174159020591098425727050195770601639138777414343212694401040751062078192948186519655535772856095702203946867551067516207010045657365002611352155843755384432985405378495534922036494930243487043417127004659572107045466707152295566534577913097130736974017453576888224664046583577159849132909714056992761296087222063148535464735996202594782412824693997888609025434316647814334193206663696070322015508965932098404698055648007732915783320191481343950816552737062222898470052344332607717840780014027034366254678722045425874718484805022886458974457747450228796729128017830405436906317417800403701415971851692449719124221717278089174887599075840556616748134719578983299998646905194177373990721047251291061905706434338334091894614388681632521590386168528743945661423712248034894369455021444548362588517414863461145977804510576012107615673326214950990659053445125859216321811644416453372757762015090999663336269799470128160680567042891103016106363217314584000093213591408755447508485412854932124994656597618449134599652671583592123865459251636606566533622022501063522171414967395136217857159716628815309648601315735232530045798581718346408583776763266864812931449902366349938949741425336241161471076869099696219441387937448394244901734887560052875656116458001304779989734547696501292495652240146566875933699279009295988786155642497189108482472657024071950318355290789450650325782459044424969366360096264097160373846620740847785676434441545859030381480130046543860932601375608617003169944794693571742540174510784795931774536602838666804362549998465334649536604214058040358737367606351676540797925262641106236734638385430635681915661318190750821565573344714992136884459580535837424173719203936587224903929874167452534301400615519743885763898759080184465427588715340702813188348306549843559926545097533259532511282175759892423145400639278009481107440228845699361248313655547284484289514725070487206987240371082124226824217466445780081709116661506764893974243923295341216501287609739996708092768390174667603848684080344124754018104353123356549523835464243532825751797637144418216053628619478816253697097261457383577721618469207502654353590837955170801945560030949110127917264381171932349918697325920147018220884058106891348901663395925822387781415196311734806222662696165908487207666352661235510416600202840721294094665050909497359689280132155654206459938285991650195407468465889491698301501162700261511161395020793103563054078543198274193931599042646738288860913801002898086908745424679220588915084185174109288139139545196801818293287248222568302613151905162851375788118043014950656402665688831630987602781869729974733474726143372668555512318642838965858142950644274651485609031634550441119292307090173307650041091390549210268625514289076334572221934795106865630016658825227547913562477427014621760665338671396806145069474870606507140633073326582298893636749041896274130890059570035782546125401927338678689312046859892380672778212132967986841777974969085163644202160630233489043060609969894399877623935114980848738751554957522010239698459509850173069596144456666340370732957533535955007252639967216284817516575459700440827122106299753165744703820373481369060322128887782228850029683213916367361800101058704182279111818421535457164133008173433397376713935710114271907583945014071546689422098753668102798174509945581705879945191387136246423406485208021574788286889728158958638715866189138346925060829448235577459775242128639364675630590763322655368337321090631672477198338761937332624434199623325598212158298826013948614049143653380935479697311142602078000989685483349379558377401272553640958716812883957224401754046736318529104823132203695209757166856054178192085144000571339460187679876423529925525696188230790338162369635194728116729405314447490562200291542080852055463707362945042910808418079867594772784406332755840305083359508192997209506091473547274032453438275563487425172812092201308210885135245771209538202255664414593090723762828328203725202284312087144774178496872026112848179019719548173083886389023614561202783053633273375575640256675716892802755598992190098484226917107445392733818530023468426812358055541452835708560192781640586957695281269061759802283157151830415236232745177253590947777051897526911770210391816588464918985371284226320067030160905356150388039550260167848833565306837186150655397859386275087325718213625970118924183354698070458744379691348774016853634482807727559096988530453869259427362733978727473511467445372652854994174224470524074656229311266558300159118968246573616112156337832283747366738305659925734950791508519294901734564064068371561257464884437899603541617744851922355848194291706585954079624204680135900895106274384172146721473945704288948254554705177857131669537077527479192363219708430054512751085184016791510848675270010409776742568485352458435364963537040072073599438327442021067140173344955038690343642012351160979297143613475227452050878042998783760861289817720413114020079365446981554224883968775342415144138200588470535930351591442338546319568488868383756460957511991170707613423829370377157068485821413227978576328066346364429109387779500606306613434736624301818009103763997937435792276791004475813512840405921862571242523191348605642302421159433930495753751634121849457472670827526439389600463286739554515734933689369921421061224869560453034015748528347434837044287928280374208057979845034080650944753302626467062953406017917044981355857098691565124836813292707338793053978565112980701243103803353476117918360695032343450433463213094183981139118801786203611493257819245711512560181943030223930863900219662659766015274708053515429264734935475282398153080719888850539119383775568346531850533392794816565924368267307512880082704962036433488719327291522384351612082031662278988028720539625306363772343722640014840022458971017543644754803757561715292596182111831496452745090911641202461961200057085241243899043327842195185220451661873542275762097945065454610578047007984536317761016497626182043855868151662717614667892489681852397694836626617211400689393390011524499909876771662060443192757232315529178078263111756007736483744298146903884923430365949778949915810195009391715251474638728314386215584926635719220938705030595450958087073236744451845781336269775331702896857251374928737727160921707244595315506151910746062278974241322358435858533985835951035549194762493582223178680611534519704301481165619802715176550400365578689467219055902629665770393529260653845110916486222162610255356936973720893774539517236127468217774913819228622757237203535440798749483655845446603317272279315408642057281325930132999572238016162764177645822616632714283730083082883882915238278297464650040042867409811155416609984950936294325173892715641701600773718554273763508878719335014952238810203097143766530021675867108694980618734895461974325805985835911162233604144223362856280770703109860442541908941788915863705876351974516694950145399778027641279257150705098423503198497178092280945948245472707685393862778683575342121946471684089050532952901982123790292531330948717901287737549203438756579544505818913843466583286589751417907167006758135994438273454065537361402368037819730190883407427416171292859033075050651442800746033392868682243179246150239690488652255505312109734702494230302461416819040304778988320609088748158063077986977244284173701768300541600688687988701472820144799374030598215559234847254899953632326529318120660463869515236006652362686163505251362933817072662947121883954143452459894499108943954880620186897597754290404129237246810294592022621671586522633821912455798117591367236833243695719284415266163257955826847885795120726463888757588037648094848043132555997025061751368817287227854328146486637168014994989461564188769734058330923170710385322929193686459050944561553360675275681601149987678927059721342480038816489464022137677550004577528224331390297568302054557658212202873187697604764138596696100950991872852772010612433602047609339853013816622759123259455934098099601562981857473903282020910218396575082518029087383515730612135383240532820212300036386672167673994103942505298806910303218425575533757886523976081971017631281098777824592711954877363035137964821125707002115900640330245491681672491375191609291064012325954809364638377240750955428824001625095972511657950388895364604419611930514558993856547071204845946586613024796180094387245415015473015150661221208173121958570144601266441028342235680520791803816128519710294810849932927606426102220255489570983654609696737737511207928823594351129775181882053234993628634558718815686976136834380174211576576310515988232786284640269664130027229729321350894022053114054568891789509565076392428234529594670920338755978762038213227579906319207733852136669451687372707564106826843349278490658163143718254122498610618844552532547642193230081406276192482178478452993821301098078049538634770251832236577819133624772406182815194908760066831491535833739755402876861801550738147087653054372636747526632253818268749511233244112027163984228232056242792107084287953259715834652321355076111031645179099512033474376633653824348376843325980693782437532537772755700885319447631884659164358774560004767750290134881901883199239478547245389984923106257449930261076859939844879946123939597417437274647462350481319863768568825505319289934786142910945493734370745821143017213285423724605725299304882050419969498436263515472923727338475898756053916118688993232433964335486432248930123481118314098944674543116267223410651374604592228951375560727949980605112814251817432584923658962722075438866756569909206463438979916118902147815580548742291863785282364263733093498363873917554759846289303814734720082138467452371245342659540757325124302489375321514870311985077229735131319603735349942834592667119539468856837216830957326107891895707697315211165728162121291795794358260904585612049462569406100317528239737025718045438992047468301247255564851949304389673292849850509243461115399758044295416058968964283146990602435394427589099616582219812243797015235804241995766017896019779951282080916553705478256418739570094377880843956815532534601983698746793934392481990391880769459252484410984033898388975285808842159775513719531258576005943429021514480177892488927843265448506924213495995240820014457489075061157822707723751563970013475966077214110960008053982637658756042753338813754709894898465609613731139312286305852157076625116365881953361188821719681680757432262201658227620129567658697559120668798602822738934977027697681582858123586511968114702876156749121143724994861407032358488786208234333961275985780588574746578858225702614609056897285762218508888447800162236897278137853131736548677046250900817748904880727602032117660954794580707057356519986903709099833100406521608014553178370900403590062874737100827089206401460449115284047220511805727729715658090779797753661736860408341247771059036755004951938157173276478976996345924929102030193757289212218765543133376039893486018155875895281062272667908190930295830245125017038566944037859766320954609026437362974658490004620355296130521064839819526107246520282324183984227813099034422619815794414064285298643285921178969764795049653808304732223315969189760826539336335507376415140134255978717982688863537978503812359629913953994168475403858389816645154715057307344568072287195973859886133069995936787250361614101814466375269466239066137949429957513049109136115706011653702146769425884794346702770829359763854854272015548326596995700091075743130466390057497644781640845582292125899402950882773916271589860610269687221238313282813622245315148370924061060646343861952160625979537523123751823412378652123447773839600746766399151594015601163959563683041937040718185134102227872831988570821812455697747602646101519547369504625782641908244495435762645691308250615954904569514664697430452504319385884026135531964500493181384509108087192273199226296658025289446927423011016153619137938351971740190678355731873564732620537546778336898213369354991826861142152266928738700198544442502317773908968255932486115273585858645435344728873194177291853077468104509781692352127016410050124474319268048024172772688465111950585488908288613941093232796606605881775717279495022672846170517687342851694624857105903323910631580256145804742138837118787396590533206522270842980856696941347194248767796458607611420102939354150779954816176712284025431145702010042836695148378177977912948783901094309213778964495845675662595153787627540124723423248041385493233401369190571267772106882356115601186008373171294970690952891538804149619958769856961947204703531661076913612549979210662435725638527203374206786305310172176725618537108758985424589379626787137946081531304437632581793078295363790358911656881565074552662155768808833618140060720495732574700001357156875115405775135715535660069092304474603566131216285183517729573289388418856979933943537922197002640878423154045735017004278404645419526755428162815438033701282319928708122933033384957205329322069320991040324098655566649886083953901475710310505306196641407859734320707798961814456498682005140398730220465591779263604551030510515673705287641905570817977675965879538639240794995608190123709936401489467265132471187477161458558761128329745272316107531063692000626373212605705121593526884778017644312174449841436125361685028656411107536334563447769170821721158153609646798077885170296577394845975105899503251841717672033664742150713627530223136717894896718318561106383117567512967966224052491412852157136580955080393473599487722437621465401787381931132288426748201073586848715947611658656577489839786657379983349138636866636555485918882763435371931949266704867491487820748366684830085300523336207163229391907524186746564505560734541734029308170792760546797400213816679714191337881332759738247178661529395107112621463720355188883003024709806626415746761011582128021304553316093220798482929827033689265562960400361922078773535983265185666123092656954712390833973329745587151831493529116208526333805242623991010535411974189773570362535722647152986474637466836561293209091427182202221975976556879384738965525878662895841536728160653819302060379069742600724110666562306511812965085821519791985648126578785506956866371783211996400382455270710542202088269578864558183577488593061347165784517928453118548187605592131095732978094886700830853267271042080869908219522988675322288784658751052576680818718595112161238281216279914948606887164198602532487028393221000372086190222971900094978881245851143293604080733648293486198621586335229634046444846447848506561768017289680029191045042322922841241762429427945801914702883045209867851281719190965583810691591528090129850227293354459400536210226550643102736036475118215465683239306822344525848954653812111681599326546575344737484610055902264499327890347393092704409621141818800103976618499856029512488873574489048674507974866836815641070811751789568582733511154261390621257100169532871299255852765842982972891248852413430910381806559260769532877589949148315115267631920702290387581331003406186763132689833169295860263636932334841737785318981838830197375985161838831541778482366077198721877443879147834379597283623650865572885427463686972849678196057215861943274250622998849175417624677700815808886183882360901066802561654650016706595500364921366765891133748584467103870530621096688967579193758028333411577301410286451617405678850700275201844233890638851550065334159920574120209365918073032505173840216911693218408687365340279710533217390265783024329723740011423261405708749955289032275120348634902368342371375814962020095244805602559003057803409232646984827463985888864138884688916141125126926259390374636193098020662196082488946291904164403904069456900157325920097040471076944978732004832319533119880903899977649006370075726829602576874343407428843596974708952518835921473866184256127893075794667813011622139884405112319709019916093460011956398774957295213574117892117303007198848175021340531676786468225171857354061185729627442611914752828810737051383492963930378994509593540949079309567910953838195742524213254429186764127854007701369502155794129726632092578714678990776775105311305319482380717798761338250079546621486286239145444227167335698639852336674144466810369914983055177876823799377825481034773388731480457699687996010229676268016407125019162225624168256517728162900874814938635638847519554982871236329088953448274650934762011941267870707376720256670053378535081279227383741494230125121151493823424762832845969016755194829370536183133661224028844763935407576024564953873672649894414108278931832367335586570314243563760503919236909647859199449411615504111516647870746925005248399918607099812798148979450013536640412023504086462650783760627866568520847906340512268787146196728581342884303153569971392318991008570882820706148692639833702650712128000065551072420461402767674248481123757453256515966459935413401453349900119688631443588698116750148895875460725624360859182353302306950464905384514000664819837024009347317170940623045092376576645914125799869073723902762314270180425189662903787306140248641181760520327827694317933497150111987247151802465117514088270339864574329258184750126237655176554077227728025555577320632828917605989093639722827337181877939237817428319118990006682308783654577294595304545363546127954439157541872578680984483865184985724964343561375067301115661599898217788055498288179604410079699812368820748213777717648633450283992269415411592819064583379194069061850001155751815943490850662910518033161442865736882287659509220074074827303447595487518848950684967217377734747795477273145205748766648785960112002599435285807040472960659152916291344780548181235139265573425023369366593199107406910519464780731306569122212025301709121586000861598295182346938362456060026934456378947742963681796996329108035878605936520254273491343284950207393399003080047311167234335505330501324881174995756771336513590309931927188847534327944226031058129915499295530692304655126527939753079888285699960365362949860277551715707107498884701804576361672782182754270112919941362976129376636317220623887445234266978073566077993746308505472997465382944536837170338178790876765024998948623353306002304327126943281228859034395211548859155553194368013150470034811183911631076112620890321935205260164886260403994148008614666520916372300246131980521403135878244403596756286686576520719000240855015021802657229403312059056202224941528135423827512234711796771555285904026575630840049808842170678867898239137254681469284003886462455536387669715243691275493357670200093242989330090575544265559002258683957205510296535574193301581033863489909008336820144393319020749949250039444749132314380036412318867747395544259924905652982181521961266831438094486945686193913234796358538355824174792945994724815509279792495975188166652281386769073803576731668333399228772853916604734420908005495705062072175443980326833018409489116459479340289276207672626740108438255980763622874395596391563134936835054784984196067719584631064222081524510590150846403279141671071541752742055584218515812816204281444794582006355111637121898251600684507040972706974165760063389302557629959968161178769202552603933269075510862478577882001223526382959385511195598405111172839031414573321600691912051069819458295619482886856199226734983782719956855225289600166560331296753691836250728524896738791088326216877979106638330612805482157680362332544200385103902661454895401241681838807298112993562361933256530530399511890510756029251168620045174869368616309452104706005552038628753351288756342309905333521647573532213502819313190479249963912278802433271772427562638825544409991158558736403461011043391100863680345153200722007861667817067121135620381264117882019878170673050023002187573624141804640906161259507720492674882361929583217123200434169719244043176376286744780235336357351796915594309653542641953796623702897162280095868256605483554565938858103891758411760347679635283801889813809273805550442424282000831388885753949049068629029081253360218861125487437685845778938643540354609402699049161491034098523036922919308437061193829873889415441045527692224793149077249667246377122450919868024316047859343382517069193752214215920918816204824723245104531185531454234232603138574729567155697476978023713383717814898291221534254570045278072687970079358321856520593473652109828886254266805783330229788399530555387878432860449672692733839243066040330659699915552690060135818145907206077228235731348680219298995506700427692900282554333254421240599048965903872057730713725706756577211999621108286336348719066858566967100636764737401569278973213561572464580502559243784177039228820387382685346882858898883897178096300923619007708520987416146662208011800529718583747447443556713182674766130624267739459960838058930951964077519109665277070270103393572748578814715057159335001478433968262055915741192485455426845406276883779750828300749462783207076109813580819383382864598370812313250980579020929909222590070961899371086615428473154368745300264728472636678999238531222434409429342822543897597454274553004961928404551520894720013556253179590562607272270773126395865481427464740155722865822648567088441203012036621567634781477735550839726077116733754247241850884011474999433580270195303742969870826332314764618152013258690184065308070357418873981122351505488541031218875124540486713251111244507121009228594053092491373059158960088429420595852980606033429507798329276413094531703393295310356764781648613017983366213940889154327826750422251747962464023889407350988570654283492426265122714154140231536978666542546163279665099517224299291908273345254025643833032681554942880816082293446389838508085870319630475063969412467597984185024964416465450107718047999635292769865204586316235422604719522026126446048638773083736120138838317211469976806181660140613451343990729299201720899861388097198720338787369272767630869433867384772764672583870768031604023383059299028049157767578555637554992280181081977190969524152826507120103040331300917777348057811172557195773323315831784450077279259185897337539601387611624485846353573431490194103709044500341910269569831942419418961705837188358708494045271013169271478109135027848061380740242320353881075379190119320362335798566912012950933910530481808154174818675719051428155158877083136590917592403681767776274211955676295550677498327677525441625380470236750783148134930212022091910365814674519276187063946357350451176995060088484599324537345626825276772254498791431699434427094594853677131170395155909936532285108462065693646905760845199384113241991046503546118346982683374325635650919011408358895243363835490725476958981454470170777506317859708925417859514847512209023929618377108490865756225866122356231799124990902241570569105169454080341905420495682690577034077137009918996349101414251299155504970853495761057683360850160695374381340093090107159936410846191243813556307277244799417931402136786541472826135113651465071200316229175144111212980011956794207414556156553532996029324774009262119549562987735931756937771723344076641416284062375769189216572941436875122062579891618738845442209211286829504097690527436086839731361674151570712619930562029279658309035547468171669153913813048303854306662252019262422001633865058571302579407179690316307073331051929100808640030402749417814687127218439437542860651941989207122501580667834565173650022696270456782411241600397255040860125692628880114607386875772639568883440304236989035002769965071652973015499252159064258727553395713212455386482658014266713008735222329088783745547238141304372200777463055162105469961124635239896118376111037650588362011243128989767995723212582760533007206576609897573554447473167866968025770712573349403779057218147407702431818186916589448911408602830668536805927843074394523821795685365254437014164903484113371165620514184197527109856600125753232715121554601339289498525446937901395622358834722265979002125955587327196491065893353934033414063707859863914889802917950710743018413467673901951841923333370837217886598962450301295869434298795654694690280341762460393181314478940747845418340669072025790054657220126299000697440269435894754719192701176648208631569512825227225202977449654810563932499847097317953133291240030947782917733084105857911310503330884877563824875200775848292780883116735907858840999702168658016734259451036662124175752396921305179594396642862728287380318746551370411205833222656474803060651607723069399671370517467359798931919467155239547300923396562206113154715623201673801111475738742692538913730919317087665380276364167661628566112526156835848745137466884406966715272989186979040164574025164991219959273085871510545544923078881856569742392734631519220495965729923947607326793045801191936670682047812105806062415060432656147331234320742723645659049655640096428882537966679672061311451096993093184909064450814940124503710235494386018667242853155635675168054471548375386922413798347325233915374603375924011967376737439222305930765821412565507462328386809849158708156517511701134677439071014007564898298827655960636298171353273074356013276059444856426927279729041235536056724231887767816740323199901945471384594267567226236176917842088794859930813928494191223450512897074527864118231392524097844722162564294336795650417508789905954214949503378224827478630719485747286207210624532679339096557731294567682186889539610958019805080174154624245549018219019380984468037383558698638841948113282185055580466508543095533574743028793178923850079776654332059372092726780903026449265446711309434390514612951251466263719650820057930898103050852183788994016178918204095989031482683922793246086413943977428136013881478932526815764716647134434112346500306394363486722739806351258705278413891587069205378805830432801716843952483563719521372681944435361645665734686816854673817452998772126343158828227523452681131618696561184977365689739864797156490083157047345271899248175051448778378700174850899611417085321985690720651391462738442607006590267522480196337643226896160120961073601485352077421766405661451239871243719824739917270703460081442412395661082351297923198021503581006767762493738159122681754978799738054225443022222035326673386096304651102571392122107787299049854486728699575314016908521995050965045180907415838020214578672999103709532200878343929201245225540020410749476266418226245778920794944294536456520610493645101548961907875879964796563237086047293471031164436333629265563214725724643987822456687938564302963717719839874430112547352375745093251660072235022507101029245003629992856355901913564816513041372978411940357177699195512264531455481712859799137645688695693971979276887661180387671191462374277174380376263811979031110309053549192135769471527332551130909856053153535656993118784169336563880978716896347073415584932356128551065727258865968691504484828615449387264644662933784394415111303953693086007956102543862458514238025800017335306294338944231753494877480356875552543875289574427463933444599971027341517403143152425962223077049446361944967617941647385351397028684993716495655505243761956925462536231985284272432391927596671795915939666845688684026521299566334986545179548503734195917839178804205522322184387564850499619193750866262767376900331073674050390466012962908047540887204411061153337364718983393088693669334974322460840453487272602044261042600122550492476673346408471587304549774736821818798258934591396715255897833506738466889289049816799068935722181012674237363284034014361047964918682016234076931966024813654590429101727744005144699204551714270359419131470372518477210869292861231994368846643751459484369199828088537044725368838816778718263592063513843986446624985616599638386633022062724040808302796774345101467974336976001704650708948114672297778238923977606453918342321480004079319668769449824805399409424223867290004000253373580424897308691969815842084243339181097141273550340947054691088536814632255748424225956168112756623032524021772717520600094134408550009361753803213487646633182303786756354745189389786281577448720878491267335252438674540871984854850635081877236680313906485825726824548898354782425506338591456104126637861795527537917493874913228853695252496261296685249495354035855031549042403722496465661047591874972710931578773492840775285767127797853096473171669322435957292967746655691867542269185889070258583875988795403673496510290411804776631325437590823420165153373593110580234126108919454511106500869137769783784993829024468214052558244742822905175729283539707760498422337999541373011814687582692664172740821480438558749838456857103837535506341521203479878788397598199155935169504123219815945491420407725872785581380598986636876649948779136885560144661873481634625473422193328890973563547904038245189046039829657177953524587008603877641425404506248074514452723098578478781705987552425904655373752780962026911239386427940162563952394248655084742646742478021179846187288492854886635164419054763639720434132899357170617198576061741611526296463032166332859492529032340222534207765329224316852581935391555959812827304100851279322254001901156148300595396253963625410706247547036039764417862409476485037673468336955302533992114473254015029915252180160084006015921238886903638248779179071728467735812003325024044644522479367823190867851529385854126712634115697970041811802395274691681965568242452785429522848439194908705353766707408433827006872105332615896833089931066342296311614524387828556711766737701782074708107707688056107846161458021016812622061006094634719374770949744805589601867251125080809779665723764238386436043983385940559028338792755392252970272476498537039088955587957148438369900967376023229593071684240762167184839365715309552550603688080126326317949422015348530221287510284211773955235434551313856653659969688243809314249142733049921393175971476306077069790434576622341748711510680899340786452994656070213400124845040791114189411185366074763480795283830046821512338798878118465905028398246546392456279154011425427815615378638346543236539245727976883629663970802905039135569931576532686624123110612425082737227965938177571446094169789938003092883010062334909246892976248705051010618057586771552882181498186263543355190090256261565090379583638810138635139099597041357080064529828941332300310528281399381345255161252076828872475678948584849833282435392300777446967759093192434250373874669539000110308105053514422922592207537353441686261321221312699311635711432608285722850063244379909585380540649941202435684950286887110830921594874822054792317803679729317592161052233011977276700421493449594435328110547855429740396158871385956196514596800755461682692332533799823201954033331226232852548999930158105652055617503280503900754332295850170760688043010538316509876240715936773215255071485178742018232854807180795223293150773197661501563077426380243904138766419302198338928053497267611932107621358764203348161831660047795129482901294789291491113525766892492061327153901667948304310130269688452087613276495403889842847826069172750313011897775197645124230786055853317183218347605587132350203980289284394624318842956576317255004868307092387444649340113176924926676440194783201878650211452887858790660297719690998831947434864200792280831664235988999547954655531687679781263620868699058224433586401357733589108936954344007503664118598381462806550674236779195111024474339659173846604833173902875491967679283904249878083907683069114839746697523630488645801962827663313396362306525974172263385495083719587419571024123888875412170029976180795934016127182282548703299055094493049921212079243109895569154998098365355685529759302287001635719886287777743267693630588627455982122711927231978900661698635751630008165790136102750859049283512837317369614832655465139118051742725750829675415942864323009434498607687059065855408373783150126043143481815213905501638223255420681344942442502476049462011812579990420501008380411401023637519691304984116892203564703269863753726410284835238698390872522401096133690808854967533277855890322299614156102784643696383944574470457053145972085838243291451073861678910076177883251194351894705007379575317575679350949649706489715726992989626366591570608065862716288273864666675422628223175502355581353679481802023281249438711278178107336063762546630097056120823514299284901382511888957457447144558346795079558296604338221547766965712622899590025881674665684866923859761524551099118453387854952271512189382110094602372414783923884126069251044709060179574885297040615957920321652180830708557820135924046671922478624718862211356544844531973252989599543463967129029120579272743220560302594042427099495980752227989794575052156212082486596863132234931373019600426168917757383203017420235895743351387311205705089786408860488161380453998705237210909567575525853619553912510687635441908424866918884699721382724216396666542862376664918688404255596598977507327365534189086147541353616335388431619450659173051809911144172013932345610324777662622140358460353203499498333035002846452946883003047455267207350089616387392503091811371787314078638303193742610644253813901032217171946468501099461658263967637756871831116394092674953262922991667397946971476140391957348801692062715579139381437822233468301798269857947754673021146619379291219584350096517309455028652040123568148785201563426653449498344777134140663311741461045795029873674230857793389283767507051366897464934405092762170427700567655081598065741204299004614256609515089271309987433123107844486686261372941386054495222871355860350171361557358916482174300286012068122321337488042269763309573995290180691141661542890011197694490048618678612261889834626020443763729697321721257852262062376321887354691260112355571270108964110634951635741245805374243038456309455053150035636500602465214984135297317145962885234595960400078091964543026780790435629116313548754443202636526598333794360073889217355878503058367432445240589803986585874822662508170210211652549360873255447779549408325489489161028542110984424355530080309743946098559725393565551495693683677515695824769354415876436501864162505132264694739358304905941695436424381988674373912446259096910478295363549803172063004008446908619048043220794827998819190406492291108835928770263621507504574865468152999523604800169091547554544808954888518496522911127941740482237598753561799041589263969924019949369623362059162767255474006996233524773737701450454480178669647447945955109153997193438194096055728466444044266382876987576345213895181422060222447890216774473547238565909085641154919902935794415750169862369018872665110581626355348587340491993376390886694670079721316446741950153779752524216713700978781891480033222087267156609991192507900799933917632059038396788399613662632958591986984230758302245420697887097764061543603115786169121730224817311013923940190726465511270655373865723710424964772712488945163217710149532658308492318557162076807825239221364885431291673261849099151825096710538925556826777746428896125570430876562915859153516242846278755391019183555105512014361483256061250401575950261235784529433687967875834856208995127785376734060455413832225345416649000523122648204931908339126043029029467844028042168703045925571406408680479857876968448981259826253854602456291051296714105921656164555654357616525050947592621558336215767625689330210132232117822357340813127534063980649763619739181052031770463302696152388308892453779754239578989211688288343131127137324962037965487941826217653010622489801322830371814909688589645795547629898424152869218509923240909501507256808885406235200977155386045237909421436423168147322144451732804211603269132939047357699508492547029673257197914441060641299036030708143419108697287770094380942370197572743760696626307189732016361739363081420097709422065403627754916858357712605615042386554560319949564342926576067115669233076302497718383621686713647513827891344824301802266043163613288252359608946152909596272839454147258171637112442663318537232360957068746778216560420682209506162122005388548584808229774456662725099767824845050488220094767946131257149243155152791269979528985918823716585419141753341342189457215133494244045067491368888721266142177332774963854883872106815267193196620712673486507499984808040962687475754012610892700966923322781474153426059573179185256695943563893326958687443070865606984171177649652252397982476374313479624725488243499135872184715378075246948517618771960740687599596725741049149358501184605463593045705063344247173745603514625027044444600593788438280417886444887427626213609978256018117872378705835138121005597757814534965149875578524226831610607049919214178298659191369635062691388565615280426079092149612703855463871225401709775946027280017650768346566206956174778772389009191163107425013320237919783815122636977425010240198396475441029332683605518252246186833538685922473550343290142928757146137999225902357770838218142124936135233967947148917000669813081780177030050177305618602911212358433314890410321618100792997023298763405881626414691263289240980787567430350020896083443503268941672682226775943145863653908889702430976079411208170202704778688449615651819904244277498544150606923278159227347985651010344017926731743393205043921343925104372760685404510253301417873580172688759749512992373598389740662476311132135898843605446344939095190538057367976806562238578610783110478094505082987782075777134673744273163297648387121066353195835024436171523468864886571927776610130724682731398446332069728738211077745360016072992019472941638133775583230919044579058681062498361882129200634233142759566502695490285520782552926689958090138611931625139902275490823720668325895985205878936503886397189721073520210660776122544538512242716278169884679097851297387359645658005979809344404040648629329758616596985010827156406161682229378239963510443438614368958185057458629110927236968791318620708456616072341164322538284725619550236604001426633636707985291600046555286054386160017028270620535521214144906429450137696082983874444710505054145834001413120250630360387457501400808113181337161033725485587317949663394131214400553748305360145135356591580057797041225423223517128079468322779261514673299320293155232314558632710044733060864332962962457317500088437389162777480935163750963674830031741591465447290585392512464563497351991951854409917733972105872750457202955508320033268099141428057308498366923110737506162292870668516843633855581102460414528831341144526883259977103841781210844764402747408426279761802013758784746642497828721859066260089899516117031633835783513680727108932863238265148753625625904306024335392604912269728331159291916548630856579476063549199590191729838928437576975116056548608359277766194720171054849504630510624315725380591560679746255625215296286310952047965581345382382550998864705737151924579652627138010585949170955391537684816195131171966564165433642952299258630203881440318972650660943792505773977633725743291445917371011319480169226095252092838613072601399040976557276013586245661977668580072610850149698647987622657211486685942124989312663855064729518876976931422717849939983949933842739634192787221362825227887625171734439937661941852068936440589036826729361249987346442840989867402190439405021070064012310729857101099258266095211579796227471217295527992928823368446616974419210561598447980791150703362074795931725515428048458041566718856744086280934377813894443402489170722109810549029026743850017470459366922809442600603287996964953757423355651017607900444727245282457496168633858386788099581070894806459240882608012397826358131356094618049292530876100918907342399183790518623039531538557268511350122924729946843752702288091145623370474760858089556800433198528863536157789701269117034745554470945117012330689921340786691065437637995287318030857534673697428390792844154023834976206999201911182124243966571229191166963343362859423417165349584856528309841091426602239652261835079903452725695795541199491523732765020322539186813853172103852023440483662126658316349280313739756866004289171467917046092441631622094690738098194867061476370825074391305601384460653041633139977487799826252682373494902926765793875773336003335957411158827524292377648384152853758666886255299179320724339549017716262428898779454977045156377585544610382431783513223324421952228982674774114336196070127621695951289789758888102904173599928333027849091022376595002537639222349228233694138575918855595724710206657641210804704318085741478390136239503308551341156467023366362810138277650903683064153562026042622650933017608186580118383000188795517264194261466285520159424622818633422791418517835479301205175600949707304482704996974869781222664585158638890625493748590560207421151007615761663525763924403287399277116690503953195431845753864237175351719712477104947579738105148115333589746771569011219621949703478671369993016139359127296757452114724998725485322453540615386515473482506758679931555229453567056299043532022574670713454359989935763142186730514823172794007637506131813053745144804623595827263146430343637833369002459973874536608723194692863840565145290458263864218157490201253402400057673926948862700825101612957698327068287796172289169589157263350686499357560406426329064403108102543534215057281996875956107996571283428066348335081446348756447937280283173483989299990294614694975482086478143770758134408120570023689721118196717083649993674598325301035324893773380178465051976828327180311473666940222725835824585750091494864220085650639218831254948074778615160008845165025780231415396803906954020929462301768244921368790090243637653457903258811867390699126638508473619869014223502532944989122441596570827060879757269782722041995977420915118669791659180992327295307044900842491812810063661335076271703737406044547811505739870583753373717302532031076720881534121960411790195043343017278515035763032473122583113171593605534415497303177892759704899567949347226553273497368355580976081137012646018211674742752570180932875067502590127005219947838232400264850358900714391901252275708138433377672548987037853473300883572442154756611126029208319843948025877994406357275238316510032645400572361925873189561279016980454735916925655231993540268101444543666173121604696971005017885463875553920064406011931819472115078459157010909371498189564930745399004909211147466489756250214308109470477822134006549115166859181284833989349182986025603537987604940873567474036907277167725643739329445575992102575697903445712834212672440289322905373403469489317181704802819314994922532672316604829521683268356485084990558803734085607370405319791007854824330440954209555656534168196296399266629758982678268696344159102492987682982366366436678917792686768138432738628795677184925344473667021341279119621552154861873147751676883761105625858867036835328010344594822544398020385392119508380014121244574747294513788982967268819339690661464401763286808280116536167167684177188319075848832359391239295744733913441789090032931264365142178736130088740166443960245995840768892308650046124582958728539914268956764727339103467248053679556814644760048728656591380079125885549783897357819952523431057198035052558356011445657230157676182357135043852497918805620734042438937928069778618544489752486037045515622435321549064473028538541152571488619575249423972835709033092669645706583627484995960858949117489021414426273669946004246832720310329045687183151181613730866887405786208863939940401453334935099872475376929550973201576315429696691677775511002483730651664652982935594122774861506719657020894744493491471839121166616480700735814995619097354994843878399062674564225557826291224502426901096261321501599837749975003377114478412914931135028628981009419999801389344952270425756881285239787493598318883794911011821648662831270801490195979002608335638810006078869827401927160989972052691064589706363739445338180624841101663424113924285977655059587483088071285964219998352690284663457339531682460846992500950101608108486017756031823889000207412983025856951141341500812691764142300200258361727800708770365126619928584056711122881090121679545630268806362752000748122325719767118546476032405288832459586699780483790884348796012684705637117529365088294918141509497293500113353822633454355569294179992206835090402240251530576415126805417957403298759221084905197706522522279690346295102497108509381990291446123568409620438042236433561944386930922341146756880850223101904482493564748756803044284093232365246184145862970085884487216457429632638937988725698960190359799814626218969303773968652850446643652717779306973127575013600874324886661950551827554976353194678853530807886238635185526153304959319605266504258210467221599295946930508822632173614866902028405158531542911344731946322903127770273789807578271923698075038522439617898110871435988185612078643400445657830062396298399164567222749748953344899152329665636747364032188830356799934568316869392054612170917742618592255471187358658355611796314753302565715751651143167618803026441153117425257905397424058880879872096077024767511945212017180261544204411736286421700066036139358984129401717872380368379867813473736950083018288914567418333446844634862109459360524792299641291296121543607591348270131234417906830009948978376042926648684416856359221350474882586395723663215437126609674996842302473163175392629445083062302947167236305482907898599559141278295422639865478650804153892875597844820719020490378094001421168742100659193567932430281858891729180221638874761197377016103664670387477097667225506635523557925687270344809849591207894018285137798839127452530492899971116845131634453223567783274941504222681664862671333100539979168799742502390649478663809819459726847384422135885220116003307784140395345613727324681394740340399517292056753467201233948304320389807040673466781984574021735094490036105785108353447515356949638020742149568070917384452369334141581495362919500711264577062722770277888462354037685399348926752648865194888604974348762979243816196402828649586472711308771017737231546319437979410945391474355164739627377258086710183627658981964885969904328950702857981696175995478048277849622008713709334700351468353854418889913229042342510686690086854256603775607967215097696555544327525928164910130430862065828330918519236186922623521206178929623237085088010695450558122814612263099838730051436574372177327188650525978121042127883625687770670175449511190841959665982188986332644690176750553127296563908218517231862552587976702392830582675820565507685964915717758385637230933740404296079329944026910603368377825556295843966158193102135107038275567132303366869262127719867222190139971926359246360314793519534907329416445591965353347217858945996977309277876355666280797647789332838175630548686001740445922020144691357007816445440951182436909788172142279953767682175412730912137030148459365486115662003261859156551631549749407433162016252078752835758468765472182578156482793223909914881371005015285050957050846071162554717204789188482549242062360617917321843667296325207666945636652294501166010041900858668561999643213402934606798360034610823790874365993009051346880161768714912362550026999841957555072615895887384396835624382095862364212930405718557655821345337950769093145922164963724043380356430010678224908761974757311790145855101551028774647917482562463944060056669611506742404653984067221084993624978205819502666578079340267753161562996374847532563513900363128927264950066424366806246535189853213718062178471873289601775228236069655679560565686284785029541789872278410158176964603778401667165425656626149615980364908137820868270390052437490001725709824727097203328779878142756197391526728454856248347795584840219380447300936542359639319448548233039931925443578870269064915378416745624937577014906616933083411354005378891496927076868110664501833208167322127656773592975176775949992794811759386255944551479753286232411726031312609668541460098281187015357480716084808859476922164233491447211110727531760182788179261009193644605703860445407208011788984559938529529726173353069709876043328874464712221003397838178729840753024941752323344415479346960018216482220717707567779443280042257105966093675605884098713109228023745282217230449048867830318156328262481847592469004097697191528722905244984837570098293188453938822294900370361472252212656633112214240144039186056145385863800912632287123724856586396408349749555421239528381106649281208226137681994548249176141089927222756408709110037547850802537848693928196022602314052558274352070962557844477299736219982399120396538420001594324542265483119184627099992140892589077643738583929632812393830053460269152285547857117051413049400701576792637749210137507946665009952200476976824740392625880882456611716275930335369362145614479821729996047001685105203666113411209200511356454092007145840705138927794099136348715614797289428700805826869097364300100898432920075970554324094004407139873222159540155200908894146338799176701102482212586717564508779718845511831473152003436752259257162418822196246375626675300098736667203040459868235136508472170468787417918185417861521597966306256739208503987501345936295635753036741941988611491672754190320768455352289005797430708558935378491460351405286974569470737845680460428234082611969083947528701876692314879163451081258966621527886726489037649700034797679598408575126264222546251684202063309563994911700913979526246011337503376737007937421023989223963697221209218249644836399289512379012322915920209703204058545583947724270936104925685476246856627177023513104722722655068538615741201340404979417799318489874054734700887987013542821626387495292438206996488871464783145258580948327074341345496944419845844655634719723180865503173210618048996376016858618967023851259158103410009306889555620552263326135392107600896154459455228239602377435702523873868747936745305800888644208441073996178469495518295565572199688879120387750097260942783698934694761553471236226530002739545157979587378502715293991069916259552992699623717106154768740063906125363084223273894959358929210830680632091765046778645481340977357210410417335525800263806056439981307585824438679360907161351962089944203950238574250382138155502918945404115702979861257012987267980708340544588840575285105086401129177578637911503404946158756542812458615153204950887442283726999740049321939646481757047028224401223415519025113256040096994965634337462793500154470329716317752849315490506307997575501046521146044185022633233408520463839499648308306182489286731886245751695097371537351547312332827435833761727376598571082126391333189049571183859421925232216451017815988255749986209419136962246677487800486726997775244623026405120594461279124361817846272663251388988516560729316257478529638131012317509728599911240758893781348945007497134336511199746210894799481187118867644587958787419935599103607908092466497054471680917042195720399179535324418565284368490806957497213483005335042395399465861092962190557802902719937556198250797855586190824222996483349255935279723577374723931441651109538239866942115041679159401658130879664399781844679592992751157867025581807234062293629132048786933617710188324007012981444075202315127933912460148567383551580304465248310903494339287305847624915615394508888568784417015220194307716429444503770103823938052193428224602375592656347573880550183279234556686064005271858158031185031740150220616003125754305511502302050263244829698074356082940642704969424886438500807623130996152144207928940015061411510868110765559167813610263160730629493509927755678884422810519015603791085577062726571967478633682864917816344796156529434620263692368914451079665832000843953615834916917903694311723151823501736315641576653268839753847459130306345300221688703626700555532928190165281968393062214677133331860882712041501627819526392993489772393401228138232955590793390350567553818478530880867288863921605578504713826236505286099041395823924285859539038145465520096401117155303415426634782668400977052574045607697430577414070590064286727312359516798578415390460994963980124458382628888204941350239912695235208406588020995940918200624678154071396984006498719444855310973475810963892442587497579032762915316003294566201473831333344893550035063696428798245504967832810624778459767683490372316908922728521758821045754511516210268504847187453828863175113856752080489083949660346436557674780954825820071260286693900695993052477459519756942103524618322181415204309405521908026637248281979885296080522039784571791839876714877584183607810727951639121308409316535689974597110648577924543997653584270679631090798458879072091120146736653734428822096632005270344091106272992792792599216065344386388108454634127323644994048199589360639237833795004344023096403705323605286114092117440176156659854311130541699784425743703388881881732785807399776861559751928832069668787713367508696317448221179731271612401968714844052510024390836275508319344133714711062954442590593893877567906705855514980129431023560245674464308839319280591565633943408591361843259006398540450882873084999407328713159109878903429793522652254209494873694228764714837138033457595850807494785113980779270004619022842687637223454851374536740786409891054470915872499883415510429931766797160581210030136319715736101220999584495532422649841969768365242744013576140429863916653174037364302343941623019102424637979529223390557307698655410072947357587003624993837632009078306171685215294253429612184329603073404614797768241008339483371393560631715972781682079927342695085328992891266706654172973931248317913980200362008400790560438889925966865170597496479438790060453612643882504501289087705690458935474279113412781284221388647584486097724717180012283234465349991731377900256640078480856374918984201368461860827869269648891957795391994679605731224447169226594574351665155184986006477176504655273958910088248629104700763446078964792349156769585077241048437862943178995631303192755636699142735755341890581146285625100287746785197957831251284239602406806821316248047648602529202810340908404873156405580485846265076547190590449226036898827367641411883056010620548733275261512128106060566923849787821786967269534420586571697198716640517538111087579132413663189734974227300834939608941094625419436183040180585297677992505514565991226311572840642059270537251401896550593568290661891635815250754893464908583140114995092167009868030016815367471003079270543856953292530630724363574539463464861316608650256319164276224264765786875037994726636970379163100918231712935723729231617215947289421969794190041719627493929878241415313628672524607819946452836093410454753865877318480829441803039182094967739129920795744724541876432013771665300195718268057660193307083000071673300315516893285169132484516256349363372614524676049377384873778244088658200340546375824126296939372105377405556235221516609123277186746237377515081668092451051161443765404757671403119087518343031464388623350172620600317621298347072849476075357938063985246172590128330296577830596839453845427616195174017919075514172766243428486674079196598692472023376343692950515395008442291416213387367965531113891583575617042279555399657766074399803347691009456259553221395332581027348121872197525338026924488787004702887192042164355686465306200453291884543783704038460539509838962507695885961247555757935084110294829560007409943338202452252684191899051340301249620247026962859703040028813318422995882068843297982861972831057761590810686004276433785750620726215105844475272398412158792971259926019096110974112465003128684907494937723395414353808001427641232507753573994162302902040639131973703445831357725550992397857374389316742548709718233619529160060935527503686946157830758898753317534515505734529845467824278760148655944631797280264909941162223398514318440201186588951262649716303760378933545612323535929914534321047932127949566148251793597940186178140561192957398508581804137595998754690856587177658488297914073278633496918276329274081291077119931585421043007003078652686953708310135093204922709773233694463327123648031970310780399396200058802802244565598259167909225786774676905542554750986105512391195113038772951007700623343555350992901194428488322411835768368476678301350307559595908401984559116706241369659392773139727009632853661884728673392087570761517530975677956835142091734353645319952763286728695165907259580247202640682305939376517806771220940101587776357448392507898511252591647629076885686767508330475937125170904889795157848865394854852994636505330829929472315184881658099093676391333018494448966137578748540003324026145206101382083289688190988715748107832550611667346701610398337363653005583238604343778802591980153470784521518710828821702263319588844033479635495466626478396644379035777974880900997676891441846578940048057608090918919840597552684899746807246825586191920131050853877454651204614276163830358885268797120125294794511133377268838084075247119468310331340327770155989189533239487437717067825216260120048401088803610637767609612030094278058827536597253226852834007444831373188653635929890508747923553377766039384046617344973015695941130028295129651659150103740096960905110875672392390574313611839526295188284695586868295243887340924466818657165286939762617375282322922467583751908184403828306505342008147704760828705979615763853505920042605012465816325463310502849087722375626619430357362137150008624410690671124041088921832563144682409775524125569691055026632222346055041233220576640082383943897406486871373772975581973860644922617230342420422487429204493863810278092106388261723791681870532497748175314866382955730808685060869525742983693266134401303827656889681537540256463352254989665172049562590864950076101178855159498792100975403802755937577101315497014995573296768162880130124060959154427169693797391520183718172705804364405521123524461480848603253478701591060941232407481495940412991206380401919478656051977843645712255265845228924061092285262606170425218521771350433271126642869455162457011686145984191510426111179365257414165525804377951126274783165913318277854096605066869450163542698680011017337360685343741286973709802052804860666549544500443312579859649627009783551306735238050604020017143489074700458933728266578609288067222002414069959126264146877549968458276461787260810347191284038156722088827320708001278077850842123982735351064902686729247595002270688025889385712448053686721603529977064290909869522256294144212707918742077897559298400052500877635217774480393011673294008737879342711295117973032735424701505887810023294156161716530889031833703100489790250134409354941286072249714100677890769254218730288384639405534900248318144478322481941054670386199430471918964949009159647352236700505742017558491627410604102896507827472407062803745217175380170661723717787635811609531706908687119727734788714082135229468412226679696229920271170249619716750188574443896146957859555879584384922043904722018983199779156752117414098758889469011773188369212196482487019067804889742693532861925400347200417156527545520000730475830121730362084081659881675263436158796574189705775043481993640480337645707143248798112436440836644305593864865248354897440473164510064583937892567632667806933004270762963922558394523675826985283383027322411518081179218622970010055950713631554597521360552846058369301920990666941788605184892905840446866263498474672342939353766746799612379045398179109478272087144333078558737534689639856954101866401742872643370700510718888810154698934072499797832409929607760895054153414917437840406959110216718929333898098210860620137646612939467090954470474109496845964820464166311603306194820620905985091369433217586656520401087949277797919024116729333513077775837023930307296712487380038000496453264710672161168124918762374399823448387088306749958672209191260511465925650783388135208260763378088228023190529393134395616569323004677607471483749282598083525100739725383352717677272462772328055041350547498831504156199795103537339259244026378308596929946883774028446197813513641144952552289028794508539057902743086370462725144568680450577228140924130341403387838753679428559727133631781231721891443883165294566546121646543740006481914981787836725831967836359610475115874233624296330787385942536461576622274784935190294615924544302610839879812057464876161925264716097765188162167721940029097925638185988250400756818833457671958888982771939182300115124403458951100487386357378787186193312260138658615824722359773194866466929948636493881712884253195533254688669853382218487734944216818623986200272510022893494969095315902686920535377321159679762484283663785256210960124984262240062476860657527681763502843943262645836275467293966754435369729033385981152713874695535782945116481332669220970471602363137618700849559185577300900793112099404880470069750416124327934516628742687502466460297102473433164462954715281686683468345181274550989780143324252328330554923718798888867826688779891098970101760189439443380464260135714608987528210609118636364237801194082810141293779118664233993845163678200200426769372415694405425208574353196007665593385338671176295443353864471258322691536104083475879059312317414488955296386751143067632939109701969921216138781471104267250550163341082308179611720329413093889061332099232221236224473444064858777290591610999927849971904411825210230685343933776899254472549693750536519243475282240581632787778257537537331424843396312145246262973338244695831099887442310825440320551904361146336208345927727464938423252975488290751364951896745334878612676028472396077876234799686421016557729008895695580270680802130778955783116397101834252810126148901294409899852294184554679405134006971000599236787606076114443281975824450341278892361479772471013991916978777180981581821061559919795628770890174382412675901115648764450038632337385332837624352757682401319905438903893566638185245864988715247515841311468886253086271178287901294418054689026158131055755335560381695600156230691152658973133035469960552551535430371756297731670099496704056798290035193491149871165423790414464342909211514386381756544575008797808243681408727043796050746907176059611802505084663242794809057594358200841495859359547247211832397913873432373243716151444479361177426710427586104986590873016291615103479197362421357828991867924695019889300372273516330432899208268244287072748736253687196764023370557387761413454339494835494378657965194924410772431183623029030106041458283924069021154130931542912562368332790355979993376958994253838827177720880401638418079147972328226868207616815102491159841388164642858887213638102130015178487340507660195921672978372611728243086487472857868676944121381699411122496994129847465974022594680014061126700427608199821067203393963783503057308682478692094643030253811725598242570672244637893689350686734106466778572512797084601116665951103396672598957354873251793084665925307950814158527195907566990988872129579773860174507158901702342844507909826313425662079967405159119094850809636426309086650240334284696295143629023222896945912543065292338127702973182366570845965471915732822392753518206839781644953884589640151511489219358862464769047742355445293565785415189408152972163079120453166429909858954411135667264764165424145918326554620803027756778696810942581655218849520980433337728706891963896049697009159514833690565040078095722630408937631421199320791092780960342341186069247873833702206343745343455378682509558984560281705190302052087253376890155347737523941046502956118420084380780389430633323710111328623984328317686294289663229158777370265338722395964784522160331685477180386766921586712105824668783349083784382057337549588878579511367410732014556461985390974579604923614302100518518469062881317493643213764618127504140470181519309725602138300654196983382521861905607407532096488355610795914730942519317601571305458455999613972292634439786846234278040662229730984396849738236746786090900908596701264259780793268377015509564380516302638578592008257319567765525544659852767788027486857080218787686902820556834290276422508960938206396449502775837490953866148778341726843475068193740449572987970354152151814156912081578026088512952738994912081663010349064589308247950616602433965487256566882135665672161854288324816682227029097099656062891554188206718978927260400298096702333857876106601823033212315488854264626469987745167370016088838059442999014856064972195791328370455167536328175641272630740173179519426820476612670195895164568040709022538925436525027002272787305912510678791018302999399455552071424040783745267617699245279344435001872807303131632462723934064856395853539970573699775433623684187893855318244609977388643943885128440955057696110736827422231514729809267400309372502596717030630135516331650071252437195882083961538862423059983912873327401996226564344889003744003871070993811044980155513998178587638975588603548081781414539625391798252376138853774950309939020155153061410734871236262629364217395826014436794577620921435272645663798922269305611446400016917672314784604923025159999513355066502080569666536761715425024514427156283090788348748721483206822422784856533462058666829537540597077665738122002361392938308963265100706543655677773310569586414972731448039555120727314081383304338942753861260982826883061797884555512823437725880541378281849410010193814667391534448865617761861223026786916670015446531213560524565132763765435677091570998545001891065396405891995460439760085090866354077923173672092039292974885656906363745668141127927460307646510669866278855649049238854580780180193099733179835414560151781935539584210305560532738247207760219567186674497365425144309331629961086565156587788384112997468563548778733588726721838291284450339089393496665362633380309258424485805465142281759213616139637114930333701074817232445394871312292666167286024200223282734717406734328187534461543133603957020145706889240041463973043640750224819463228456779236630081359056268454929025007345418050578576206427667099423947830799510082979781789147040725109653476652534371544899822028648953017079301508348022266357499882738198384236247909354887850547976698522792563096341731717527220636414155525914789080592381609535845692185201292596264549006754348863411378343140858361294952804873925655969464497766977358506067994929193360315426359733949249796700439364823288402253662611166110061627729031604728555789718099219867171147217310388206722758154345849183112042744416977617885399194751949819569314116265017531177513901773033762905710156576048331783674616954533006092158372864445675383017747867004344779423119154933803548709752003610960635933915340213431359683596535641855951869710378899242014860582841719436348091000609403260650270247220145763674144714857314880377202446342001428532579713964835449083281479283539528794389072988404704071806355679176101333399117538918248502148346291869958571113900396510516113559370550595052552895368168036975371758714341395268045855249820627221959815535740408306854536593764906224885048054467859677346356924891018161982522633635840675880218991171606809795376883073944252303793685229182934304328138506428971984084383876829770307603380147878421745657460849117113551883881180688193068590381576634023897342270590581190214670770247917387046807494493690662144766909378245243155175071483312926193757202632671733894752191802972174044934973918969921630307805758223231986557307845569097696061757746903487089112243125302075334978628301038799985961428117634585917818956574593154987012304250782696255954315995501850717873514473550546616114905445118819076985278563614995470566539117915732262637548476930725018433393957400386329147894200900334414273562395512568087692477949823087426779934711757331566867249326908520010957808273563829783915971050438229425115967337852963501437830525972569009951501411307246348772429913982465772823229004182114207098856074645613915917868171707807290955605503363735097238525499393642836880055057292957392139393498444586338210721768299403262521125537257485151377661887820217045439899121472982622312108106574508719079158383664580440366665251087439340285072184862105724031738471221526000680507710391906665348060134424013239427435912944097669759734373055377333296749268754053583934159608198310594882444499312148496551495667292500110845454358345154501739481167946931065517584305979171413642928117218373626559859728213817226084992356273645915865347803763154258673011405217518896818000695231848029192753182138257633750920756712713916678456802810114517967628062856510148824368836285734062386855219427490578639469761514822142813737952148352185899659045685748815028134088501380345811226181428663565768749234264705227949276788085055615365803482211420108764187994859678013193591844665601623014005551138562127581584636778311432544238433919451894003297588064232261560299340636309260746376386165246717054387813701480869934602827892904657849330783145977689988392534706618289657962955925170570108496397538183762771703209590135602320952720815259841099848295219264015203179406227135290840704883856561817206640390036014045301206945446462508779511088325791282299338719969559522193466959732456192602876890122607672240438339872459386527400614702359643519514912622222098838212550496970522653124078776575550375338425781847762154859387418815832512311593291171430990490404935431037824536258167431953715579521897325552805277399933694130212575420072102633633449220143789368253957291360974615483210727273777198935632565318873054012412470750138263393075721158396150071833963698741129150428242766657764147835834096592972521329220895948207575712339511906320467261451519756057598133540570829121916985024603282358761855871448909486554183862542524037307738146957784172857393192281435781518182913293443463099184480359283715683564695734751410474231912421984398740696608058910402092918921102180641899687909042860148286280832419817621581175836238292697837571915576903237454221345866835327712617463479541319708372462180559777697038340533075439780348061851575506575151611076153526941058480861174970555839972508958807425380900362704531745871367179656508251808507597692211407087397672972923117296578556866350246740086929139298277681482880393197408388064436831215133586983379852313830220594684621192562657455681710026651447750840815653498420918709732232980840955622777626085757026913872636616541240470124721817384453526899317557107409533033859682831717589254856400426488335561550137913056472911830814367913491078129472321360990512576811392259735370231682453859517462461860966526212106443844650940066882668531965014703929502005043377496016983975782205059503328162526037103138960271872717548502888049309414583952791253927440568786801964383137650303629587626514867807989454680074419016637319167895081080861498114299300150951179645720710190508438504003877309340770217491193185742406270284794135456999186139451605771619512412735237361125639945440448596212968612621024253742083055337455959680980733815823431269245407104088086974585292715020785694602058416752630131123254047127336748832497039323782685879339591329786231709942445978194869713339488365320470814102151497158445255601571568807530538273449710972237540734671940831585178955690164666123595317607887581111442707654143464461135342188429988731471467515554459144964274242483019978150276787980998555696630795714039130751251852155856377658760065275586438196919728795158687058434156044763456044039992180365125449697734805680108410050631008988293216936510243834684945104534020979000430880262366874378047698894566745737197480367095228560838876942612569969912977781758383181119458869280686203880557463715301804529667691175029163134933504785055126116085471595832926725892430479483142295274343309934487454772606045061439843894712249707074836616356443377565462299460157224144167439250950049870148957493191564154618155774896117112770716121493877425743467990232713313233602027124130298731349657250599745773304856568845492329356244629620975729750903968198113819133295533408037355368582584601137333086907020769332877720518107842518463468421989995637337452843269862650581575695677432533459069320621772983123959036962604560400625894375271334894983518762913747811100911495123740069200612204611653848557531010134219995374585722864898295912786027457762445168456629115294756779525577235932898490094789918477881342834800226980557711842358284851798541379123398303953091357920635486894193806223254093093996168361607467785330453240879512569045963170478699009238664528773946385579384737576723660613126560201061699815930271676759447451132333627204485542991760375502929274476231708679947043256280769086315213525155853730202393222721227214892115845438860428338172978125400953676994163494180833292918153274063484299489266910727689244894106207347303698664611143608326836413643289636639227432263227325969641448133432571396186409584318840984759240727620113082955166169910872977984866436112733091316118166312576130520451142668273556949929141016751406951515707521513056808608185843888413786866468251901732226693014575938418000973686942352401683808678534041373286067976235340591920139644964761726154369239873173624387384554500134807023972093752274959021507642286084290388645619734008087566776496101951103631801259341604975435651839475009122092395934700776128286182126102972809569801459732922554477787646218870877450327546245607819765200601717347146779347819586662951127968478948108542947889183853495741215904330311172536870041239340550575157338380390043119396314111209382957886653960734599889403852222022316628013702530774762654799763661106652674105220648744654875289608476123047138083505793657886784783539904625567348191128161645761201683268830930838971945931674693028011856613516238186442133970908076891982953042055712996489449038159565280233528234854528711896892558907560989124084600625297384752437111543948780244234357559297730466620446717026185434119924706210024032447704648186298700869678111808907445544225815241470602305201438779987785544688616985395555074270854590623895825745050159735252889037013063060475073477350912863191897449219367940556447807796502171003505836292306374689125165269013781457153702006094965382890730701221796035188483477374871690799337593440610093723399113183999929352024545238227116599015780178150840945026343593831846078757769620307601210604159558044242054966854242874128431480836506353074505061791763496630946912312916637704778799170673431627292172897013580909218877191331127177834172481345500279389029044821941077389873384317094525426136621623908889676593545506695457874341100430627733433807381286771188478428037705162810235435521661500951821626999106930953058201189092072139627458747946353640661909752609810068743176192739455551283453877202003939864467871972334733563787273825174344590123310452199688999977347113363076672994203183149799977214533483875933677827300588243692465508878263542897417272493803522027793835665994493345423868630986355897736786289507985182460999648759783161165066250601488366972525724299052982691851849218645736157364830289503627525417727770969874890347198639802037711141304596167512803107527238724532434282116399119918727624080712798204806743112941796424300073695586249361357799737131336707578114225822097636423448616120690677011658190825088786627214234170370381063313829381908329288223492407321096452311210884485544145177358437552348823530054501800538953385353753029307322639726404570176250519515865215121385811461786849567015894149371260194889631374403767182871042373125217080993932392721273881545096052862635803643365854077283857751086858480653316655865064999515526151115289663753989538522116056550960691326292518007461076790338905852879899009655540196940200288059479121430109017716055133725319034880089228048249308332568006588293750573784284404089584974463361860100165767049770458224782482765803112279690910486021787553972207826233708909710174423451031037009938547910718067559711351788069478100754574205017722759657253107320600260066048665067812574165901800369741201801795114050540034279775982991202189080884422513742641111150202785940002483796914257029275033612102581986276997312589389683834315471229847235061692367146727686322091307563401137041863905204699262329778997278995523775686879245027151082162176546355049458904819626284467767463081946578345900246888787510479312529453231524752401354226306577543437729044707260733722002649472307235578657303143314617609788764252929986066089242825944542267755248899466065133709259768233977482369460416124523346111056871969702486386892552676137165668258150671522986146039229275641676015166285021183620385720049856015552160977083620040705227716728266993143311803567147691906462229227803606255057325509230320658694578068621588732515082465710464132950675741954263846392255440645765942708101024304165766273450692120973836011853736253326856224963997417116373126104413712809362281064236695493550797515298945158386071455474006617714987846714918737734454447954534452966988286715097228038739598199257660872141953208128306369227531017963620899948942070306628172412004850270691888230044368730875502181582849425530920404405122111302244065983845795202149237799862917363971758297978818091174000159972493207790489407239777491153241302668165920428670053381861067649572618306326366049245219944072314875019834485214263711796578539648440053802370125037779612727702733345107198090775623100093690259770656577298676131961019030972085694425038738450722294875408337376801849632599812427162939287319372449648813174065762680255002682117818540809662104609725011676301382772554588858204591350039173960792355239821938427626648573166591732139200510641995982377512046717717088166975750774032482980359707894147363684566329288256406053475093539362993198874853362831637117608469245490391309403240175170959063089827697483040096969669656277198232945511823945691171065464212190900216832671188586064415195299318616592939652068023571322695774588306418743918177696823268077408133767743296726177829084607946377469862957923460598643389632197486218430569543100766747539434362290539916530627112161827121570667048813496692258247114790876393021723954220579411498501012066088443581776071936784135695587850937973464506978164758868215423058054010788971670467463520794784581452473325114276101433517798065553500217986111320916522023948849121732814156635996642946796438818095580285588097671384973953200340316571547175447217917487665004047955457885601576890039537469267317817857323530903881215478206805838972526870467596360337094597639972797264676238544532705963365015535220969641861382096969621263322116404237558508872962135918681090881637097662134817770902485682375582749426807571313479856892843349867293116864933663232382838777141379466312109174898898205510827891326566912973593161869136858406223939244399850958469480388854354544720477380839313068059948171928874529251021057021641414055327159691207320345312478808046643367829918599387241766519929567083651401571831482248620873429155635026341832625208094714655118808539108575692463251511840514284777034289674326886846128719396574878297773711852889583424557929201249541845916779479383231056964356900853434624765912980333352089391500321387130728642081477985553388295567814698621160342969982204650951418843892257921323901454244053486237802632347645642462694037139080255242537776017424257737449136420619683624847986987089575644415132459692720553447484931835173422189422030155765777307808817442108929213012461438265419757314368802066002298386761463346772954301710851048385997553667469437628010825905628563113340007787921044462715788521401571387537135110913052380021802982639090831706115559788931739646759110503506642034492367832123965606597583196589273611078900250708694963040983882127760723372349037287754784970649657811638066412903422288128602468243491419388136096247820283323966774536390746951561158858007925968308009951513117710185821462047878569609883467817824376165190334818642393523159132062912189857179264625797153795393016154611467954217442611983012257406699223865345310400635679572575858547250990871066784895481913885693796454136737846623730176793804601158141086708921729706597016934007531388169478044071214632131274971883402112280324529823269342318127335542468195479301565318621060419821186646134487212129086399503952760440426801392270544312373223092252894381937287690087629799130761935146333654065710882810700873658572501429221832474906372061538977132312316451649273190263106645780071042855277598783314737225638465288700198300888814852309524568031004403086820235569492918037856890803958713772469711135441921606420409716911635340718753321597210423344205962659935884550404360100431736254139363623410244602301033259818131924252898544166743105145285801221088884874988708517441610900142260523712850328604274632790226352045420904172707687959109061382404437081249374840366522322022334059083000999748044796958171313862616268495482079443018898845254202216050185433263477409902457567698416859358050409558779287230832013848077555001409903464954779835553509789930228411168579002771207626255932957035971131646114380801898874031987234291704400761506487226083212247867431169005575991149905551159691185723997459736480626132160346042175303780255418680024962153108456254535578930995735045791760402412148314394363962011269883257184223776985237638199778379293230240098730200251491482533722187567431778913035855535451741282122096816531645665889447905889926803150160637779212380458354024747512651587488033740650498968508157887009346417725293849075344694752319616878585113316057949493280942948514579445674645019202389958810125567303299230572478652448415183231450812779494397748083864644071566940085989476608601424049282955928178502965098095211672351473795614166640917859337478545813731818736496599727596154600451368795280584715633191872550380498441883820876504610905384196879623636873456510371209748359607054151404972158739300562529099136646443083612291383337842060305185091415464771344913748497032792318973170261179764014814391425359848560426926320458566039629173188430028358954655627440712807300141809891051426754750796205789298828300175032474457085548564022337250851186926512160640652693728167520699770602254888967929422468371002089849346806597460474016512886352071911721139982914022042630824167090280912083897085320237886612909562043201697245443153625147416401348993369019077309313505055820863034352739903542437528388379849726561423984973761318952173016226645516825832663042759231140296330429070350717611975402722712278595031721214315110632196650664445604260784546438441858083403160557845403928898568673008496069643740087330348733955129069351830545584126719909258136352029803769498450313476596777330696168939760056739370504211533112902992992937208408814275012419946446857192319998643887553206233703076786237253374727287739066753120389476641105210873654855995860482472407119921316675658639084928871749968880321396337119331806570891341310450209355970372394820597007563590436828372814895332143700908840198809957897573619795929004780977624190617006357226570831625275691838069186197738037631830422159853614410857523670571194767620968642134380607938587882216885791181540584338917691864866934752665433597071850229369442558679282090225568403483896217131363923257906600399464006196347960004850271418286873561794273970505036271460233721648887786123212277632383918162748057543335141563562732284280733496249028724850134429064169258450084545482383606930937380879184450384017114045838289261907944244861882464213560643879522927495149656406554323087728787797155199420234528283043120255144258580602487024400717545207465245525483089215349087773146865978589951058524714327805147989357750621615324401943707737750786651415032811633650005578555235174884559823811594899522864064604271629457971676162811206671857718629094855892410793024012197935412584480383703974696957320524961284407039286958038155139604732472551238637131420693812868979027006934936752865299349480299548112972210721208330692069739646912479492499720232154484715009724667102409899836463998787612134028633476907779805689018436855537067514080349552262424097367249583417110108058653445484724402774484233500002624137657765618527966327935567579199524160549864564123169558816600226420272728882181774736127419963482287572279360278025698210580210406566153273157475034555377544809007471171256799747209341419584066685295802501821158178382541984699014132764419832864274927437451909226896303480323350567078336084354490085096993994884844543885887324421240792353033923410451587104980991887536854895630912875619345460408144387856240490302951075528388098863057910540526905703182226814701475768780660007422719365038108947841142998740182025301500732397486314276839333128163725905487012140766868790131431547040355489033331761512970380051503041640462363332694515033223267367767729753631028222399605748967256132737641982324233244999010956650251809871953809871662838599806509860906080631706010175989524098238187958612025018072012928900374026891434130640309620573549539026639681308298286156149508389232748620419712572716910273970383308720035616568996181868668380439213852792485831346473453724350845903243650349626316703783402041532880813041781075696527721757093965738041138937052734065821052074811981123950296489591143496199223423042945913018369976217626412518359655164571953401919644431533354681126243255811868362885478463671321631232333878214093017299027805463011573314739731374286744719084477421287055047028453342178005129171973244339724380118900079448218008105708129737009965189307226939742618837138639262492137355023209508421203824293002237533572135292957494534917559941579531146373784215721779680037458008962655017996908738632680338416459158923159806497372380311137850255109466077639229703952494030154933111172451110392490149781554864316075171973300304251679155226914529065886597940201541484646305666417760750695453133067394014134875584593068151654049414412012608832006580815480435726041362810809712974297394257212833954260756880524326928999264743454294634115239530326148022971345640738032700099760406593025554947787245440551186425819162760088457890142972170507930212590516831342525771658378893583040653771423794981473134216147564054916311540498125521751650509373904034261477466570654037069060817695295561576904357849098281170028348467924961472449636408275333839678219259200077056090811581031458583735191482241129130055886369729261994562856845245721947807750981307994304000033650344409936289170441352762504957515432176719661437101371714952567522744557939821875550097883097833738983335428228658954907564227026008222606927835950774731180359641620431643984362755475452025370339249931448743501342178135461298183914477126988974088179777398916437904897327581920307691898348722535781240634204721618171631733768740712544885548398630637688892096521675264944829448613026667027663935471778062349805881696653381378291713837570934690282135053373327251739617617485261961256197296685050049126749656853596267900553858324954914451617957756300422266060355344687555759873864085980518647137120998117273973914171395660573888909012201917031911540781572085493338265921304224498192807467042113128054006855757836515070586417185723250159101296657868425237962268361876591345760500427763965740001497673217444381200316611933552493113611438874478176511112516503984378319366630564644084094170973770139458229384715681119421619274013675365649928840346712246862615995822287115140924866480913160401107437514021329670630163635606217993925398895357174261971939620804443014603383517480149590461493381193818865215813304011167819764388085993740056471027659304735384353065495938186995599514312256617282037408239479907575742160944993846104031486507664323227446900219928920723961007994082524803953450636511398306415484819647329622823132645044734094590040265141014369291098172196555309289488256694044243331003476209247832232099804262257374647827770854583586779710903431663546202464860964160872060104986778784984014044843043756442236136466916174747752098528016584389269157833514200974857656260606117357227518769655229953476269559521744772203218783605088536747498805604136686896480759628810670414609764975740102724124336110132920396356238982636646372435238867072308506719349053801688663945544275551912995143604217040159574382886646087675982835557200844195072656264769809835639846005245236057425598709090298306157548006252093232768609523381635891017042507579767840338035089164254312002113363277187984696444432364009640654330192217344705518468121483815903701892173743562244745697032489023446948714126684188763762262756365126379537719003348021609377520149538362507944590379411356660021283591660734664162479297795257060235046371861079185508264772817040121650169702122075301458616808645827976173406448891479530704402900782579862938857486508936241030147655026356141297248622247925000547550573740738656032385294380243089390043417232683727279935763300728091371392918526147202645325883693929579703530529841501474519359170177393543469737539561289718161364842719748711013960938387084526774058671861684047900874347730053001154855355519903909559134546222035738629228349311769604656417373703260903018880860076628148222202173476456767323032988806610376519972887734568261057222443188304587482496048442933508621158269641000142450350701118678825956165237527937199440877198517868701030168172212211601088729321640223259128941580700241100772086445552852501550098524111063726602783618546592124893858547138002484011028930988820725539337488600083910615211334561775329632727044574817338349459181774538059113200316004191674358870906416273945101021155096377723244497150070403511684899025393463487331805192165412307004901454482388696667808551439681168343353209472404504495856631454204910644219699935112999811193596639739443901826307562261404507228269786165523862989780729666596193428854897363742370729453364035462519630570426460941816066190104837040042623858426206522967112775025723513178961588049502742597969708686717143011494343961362591584825488276236619735657351570423146668467883298686632699624896561697636343092685607505236964654000559977053337540391616687384779407357090816715038092198268694746375162971084100378025311418571820377564354382817064204765203725708507049423042352182980891922525133991167126705595145751328202875809862235633296455903783582776688286637075988392943092411573713064612166321336734660920685833222687491203627659865058038439794121795057622526422197565759745908064497885981075239953997609894685024690486419109608898570715668574289946180383361008419212221152877793026784110016147298373690260595399570680495724829394367024492091239472473257524438055128570527623605272231640973946706047722971273566174858229310823284238255681334884871723947189564063015676197683503258642362743492946857706680110206461725190570133318292721728502508851258447110830035867804860068586442942010662077372093229079739798703943907653433511722512593257986249999997815826159010747142410042314168978271189025401649176827387474241546565354571155069359465471486767293883732838724698809253927312092367563326083398603257932547629327836480975156311436658208340088801049675682423249924241260813344520529775675182353633014764313789433255213463398156175726773303636992827266481518087298168032121088027754828955287895246843355615334065194611837867919833803347093105814694420388926761248140029320830003862748002425996110611051540455279075717068454205820964416742116037855286650824170536973603400946384930280235613880512221573382298154194076544068315258192936997339294655645965306301983726854191953578593595701559401428611641272426138442683597297991427464725155894457279509111379422312544915635443414557642170837551198138660735867905122178824404434164961929258995199139938866220047111150067495597017882174693940878687734456524841325370259573636866074341724791404760977221963427007402675257651408973727912003982634885671396160167253618770431357591853080068897953035423926466941642804848160928590476257054113262173431813496324258370265796883862412044859818030073061867388026853715201960472570338816912929861592888510433724417373186951892311623898351436397072752704073969893181135823108337583379424530504246846036295999966654374384554335646091673158971476970447701643609839497205163877588764550309229860161000071962595318709571103140803622984168006411572453583548239102041717616747053756806302136816701950481220957576119550742992503628930364492679260614387979319006499522648459363052632666580713539661481638078873104673051637925046838385946459421128736350881978726993157530061352219207557465900892067793174536615952277026617581050248117884875969373080554350102583201127907590502305833790325818846245196248282934397646479528722917761949629948696352765653619167547754892651707004571384591560927582371180350356885593077174468449792961911887937833973443913067121670784507524859860921287150652567766303114833362921166285485204932753508324207559856674285524395108653451091700132279219280076949614664612828245472387925940949638473922923972137406184770930921726278599197457866134429446285377889718766931285635872460072935968520344345163917800774223926215790988236247272014075901236161997460266711873416957805292736166818509228894412749266829231435976806136438479383786542773052934456657724510720483530054245298031241483797007693271289820992125393511222333111648223432907016305472348519917490169925951316469907903283750745330901177147527157540177582971105642257980281347812512675531613346760997709613416532299398008821253851917181647156651271827651427953620411700490544263195056774758336297781574471793677331217513666655536480521311999826260717667059846037215227637561177434074987693625693120331550016643089006821891157017930736514111263579659150782981206832019468094616439461072613095283320263528959571283556362039457718001872421482387817356246851612416929389469465306294315467688008966117043340578793200759047834800024411687329285556468638932301109033494543409741600976340116607431660217501316178430395419027705797864233470868929541832501047729420390996946451787216843319200700009473927652236803945878460723441881638605448363484156042039815515166660134087622518438585825276545527346106302370367558535029674476141988713312657962285665904520790765565664022484499541025635519203993318907436433180116700651166396793098382443756728945712915656134126869393923320023301632886020673836070024788547162882535154222141297022891258869450620035615526054954340410963441217244316803059441348228387810664366110702537685435033254851736460614517429056969556191590150574899547246414299160013810363004248216755624832813283749855101465646832348919674289812116348165723329826226726687889249811795766907628089250151858464588615923370623002548109500583547840639713245972855053480193191092241142970035777630113299164835395583375219911778784146167221300306385691045228454854761682977611169400186950855689927334266157247810664914166646629728989902431412866591393410836802710944042512722549836183266105454063828398863151334227813235564755796511079681310036663406696210664609272618040587776537355078983018106560127405983110982291580871418675053246349582720976815000457800031431616293698528362733548189122968330010501596410187211162335478385539132940228587802027258667011775475472260132583138514650976449956286439431105503992231460870440398323827575892260064263214117061346363265322122855599409031878441937305596570547279731635248421901155949282061239534557368510830765150580104347900596903267393266630714494636465806317398688738493364019585903849257119213915406216756589093686129452178457914738472323161590108163587889228938566240092133977479325451162521267448667186341980097031226919344787091580793557069783873748763605253385830416766655334475444037607971842149383777217872597723090613224626698007380861965726141928712989742163811277772700563521210902889361987284089536004377954575953503666591177133968974130666439466069735553241023398550201935198339001158922907992940459528722167437726274637209681435529926653061353349463522201061087475563521224773872126230936131947671415393458012444938162939063138566062614312429095466581665377187651971256982658646459269708156430513004014557093901577810207535615117656321303247035964254369918798213866563630697946792582566965509953299499702331560212607526475980641550987818146419569292140771150306357118243636520904478439498327140144293916342734446478281105242380141747313518943310579134869530232069429598153457811698621404904986072650157353647227908731413663806537746573928839697417512025952033728464419306861052477511920138307432981167476271290815622786351382795588212017361964816478172587224299929342655179461848809366651003661722150895543557219340092679246673264939620898329077561967960923334862123704662245187796688961746379832038577855798892832685778457045550841796332394233460779523899212050361711674356107833539652838453068628013074286211120935118566649070280428697619370749310198386363981273434615616225891497368294501044898766929648156047650475234435349153884269021813097860721146999666058583996059378832771840981258376271125143015256332951225163408157911501515549280481724028128638155682483103156768442384665759237886630021001928070755508195788753493378283527728340888039026945307123157786497470347669311250888197154589588440459150545582905774114799341464190786788540871544320658598141289291125270337055307713809257929189739889232439846384457908054259052857260099977864841366132376433437186473710609645286776812211690108244514838528498534983050127620880371486195232589632530749669929744948192309511846004633066275055677563177215377980365213442504992757162161565679521997376083436843686521201667081031662285100862303742444338213480149028285831359794026122174400644501666073038013264665931181762644755136545344878707069477231066856965771319907879018767194737005207956224067265023575678232152906612200198538384997536375282524537721369346208924013632115551121563688148293281019574080536689030401861770906425181822910485907729168686944509663610330853260826109767898344860676747597491170798088893867979362916822273746540847030994413102166782344954219953172154193972276028834241059722601563429733128098926026502084016442251154500313832412813847741894840569483747061566176648637567722458295182479562716992470993493231738595549669244950829832819149539813330923563491771742853872656945175414538125334335369898271032911286381734652223346343705982749854086415733844759101700885284830887373341623302158564591022713855233460825409170300090503177490477017730234778636105406811885028272213305548433628854860529717416053330478895474612353281131442399066548790959428750059992485612518543377912642408836603067682023408638103552780787254800653183983542881543111429257545331075839506396718576872778441324338042785407807460628419667980739959951928431014238361613661951112252117345892340782813809033296782710855285862060234905014955628339969584937492359600807932629647099638944660737919271869950920706030606021386826169500132731251761954899143879270070386581506505510257079610542899125879142764677318460638196571422923645942594837392292629420873463242590054771092286940977822627141681242018757782571847392977095268304254004348552958251054525385986011906469822827893249935393001217124982714768741207142662936810955139960830783592952152847018113928486945143624073622747753097518140275257653367408555917170596634825101309945412446014235699499673548406128196786716643710891935070384412453236664620576581756492958038286782554061773563300586636897950764379258563235260551991457875434750823863543444910307534146321475353251390001946902485633212568291526700258084653604414195447189310503677528831815183826381806845730580134217909447736176040477689774481247491049224620973853101804647374813102819908692664044278960528035727765553112186407599447374225911295554126168667292142277645137039560170440979300558679718415644778082154822927773379170558199005002207139397255824967056038159113706784164815780460473477890694441721946076511755997906709924722607143140322882725789604897996342786882649288771887402430208926164393915319333594299687765618892361425090798538711398185745699072355709202354200992117161192487060414465848165912353654692360704385054026824179730961981352374171246155294513862387230987220879676594512416908545117605227532230283592607788649350842390191443814673422254890771386395631409763587560108998503580965584507733144355006205771741016377579381997903600892733999747188463573581678437043544944166477914721827859325560213907921675677815867794153345453618592565357613781109626006511646934445347641856879476013365818764116820797827259740663859715856928282899611361603371786731710449004399273448027544815527531507428870162832701472011332893645919636100584320329972353740155712337720217369796717496589197303520043322381233752725895357052970207048162412072890130337786514804656912421265634018256234817757216260899760038284150917578531673740330838566357757642747109266781840393776658104627787411047802109522257303195448972605612134639327502019554509423818866466550134703282900701428137987956784023466510960727398909015005710946561509347697472007222074031982210341629868162787419919896767156901686050802394654946081566103947522218304974057260353663711754466275774827487587454369070410673457841258039995676331607931915490367327069830552759671523959226562669419184669039075605227630686896026810079065241966850846025708194063296705324028812103288594363538033192922057514597280299564071414222781436316201356872955006396093246767336762290721950832347468638907645764980038775095504688911569707733940333057354730535911722062745676699732945295386053317629932900219179017973488021534546522366590823752352823608049879098634600498823769743089984950177954062753649330420657142134208065724609874001056748525763569156794680116287526069736368070784371986488911042152612600248551372962249481463257184779018748520311335903943974734690028682762754525687380099269600426325182395052316281403572357954792675156713820155849849580546879859461050376243353049365446250612611872068817872049586196341160317007443693875242337117717776621622108748335194951810580840613663282182325748322597309967421592543875133431868188923594563499659143652238822889204415488999253931625756705380499620798487069546489157437816245871446386102530742943320949559532921316936079275789093830390979220402257480136829297972298436921150805827741223866859824693733143812437914674025264032439111876346066318320379559509633513776109618429084765542845941101221293922044417612544081746401076663997978195624818203322686180290603900042664338037496228439728463922345174395130109415775245980608974874123997378657102342354867022483466909066632277638177591516461947447970612014702791286774933348237413886712729608509796047741106829071278176830612835378746194342339697629152172927813853022258304154832592361664867185847810602214238820595941720911475391906750130645097005294647083527713407224084214606653331084827889230084272375578472693935880802141885512149310728461424438059649501200641933263790715856893045045543411443388464838167068639815851920584782459901714233677927450041146559241777913074434002072436431880342824582580928750620272060288029818436885998745097601841863367385613167085783203672570337323690091755653215813406924147699353436485394578804701799564563347666786327241388696039231340210098991562980123690286473897653602453132425565223598283476068555426435420693193029179962221792638967393896347394210922872700601325115425986272008963671584397926905250955727140735437473971846704630105609666895933579062214545643048240270829700538274986746594854956627603131440553024510064847799242252751442693237446253986790035468912127663013909439424419636200054146936000431568155310423098502094225851903807256142408320554911560986151159028201624824664209589898931988230269297370539059124533674137587522504962311924587623015084034428444695937394629425203454619449154064922183782784226571057775213990321868211829429417067683793582422035815677811391125459524632260353917433230424229403349206181681111684940232398410205931321469554045472648751729870785726902884538795119639394148734890262729396979235021010147383189065523316319261404199490854154947179275982083523287681517337278457526248713857067670180111507945538383937960904569305015744820528446364076764712090966214099779769719317782442507026049340969157838323601497283485914880455220933631842690630041955692086891853285102542168347510723880289322934089532846139201963879921467400149489998555792476299754169462568589689055536990637486060626448326328459380791809516394971703957823493581480622553406460827710886087767047790011640648627417227317807546410571330291064402643555021426234255426562543035285720827194037972018294339489159684467027576807479831475227694359307072988989675671451444336266555976938258201360535915255465507158555907961975102654957113282458562344678652438153255135267076086328144756509619417104986852572288049147580257197161264862469080538650473837737996067447987856426561374670219370066240201629890564343642951702433786878990028742685228451866375652443377263500321998919129620586643108302652610648618970310543572425103012951157997103662311498013325071162624636529612299632008919148876625792544547771091111318026627120224144975320711097761867189553399049418794796056140606872783168962616796060137846268665632375538728002345205040435541620508446286658900909082230111373076833730729722772398931702597215679668368587251994242842133812953961905123519402147090544981461008006892131296854986387797892865248559722967295047861671820670495484459703055415501099647465646684826916235146571677592621446901015828302246886012387497149924570720522279030680559363578784947272532121657838135000387050144054245177768903730291375383782107710454504317721792684896535313140861958864423027988442715552930776213421847921313821006104182907257570908747704719593054442838209645429368744222494672166688226326593969506747488930128843927290765285349285672738148794445807777498099426658204696565512981347131265851365631307269745118136618327792108222875829012025876078198576422254949283068618422096646072915661616232178835173646968788282031157833703302482271088112549055713013047219159673277103793927233919581845545994956622986133630378233139439387640954126734543782153689394165631072060350425262008547709203478578321006924949799787667504524777088866348591032304548536488054070257154691654946525640319892424903175331526070132652299573962891842506696985451660536392427954547001641431975649488439574617432365035827031629656840524907917023622266570858075804666864138751777783873684335550657686988014591248354599078581107798840967767738670712021802305597570362740265945772234764914691247518079421531307274146874575353687599660002616421349767021125010452784138329385058421455793163963440946017607300208422489003055839884053142125025175658516902105955442311393625676871164057786593489815900575676062332131932923854050562038161781163265580127678257275973446207179045898250509496760062305788635315115496192771885656226715911514088829556760006097401129714174875143593949867093390632303837757920774107382245162048071034254736923965517683674046240818402004144603996597117163900268650632701477247140412378549300809793960319113663587968054441397490302563720109130650531939623687666046452686273246316317600841598941100795691047819669325127912368387326557352610286098161666858006490086388177075133463392207861973429094707473960053716117165094312390728028872599030975239406212398497249044232257163388178710434587576818408408518212102855663560848470319413829381487755152991439988428452088938408992349214615920737000097359247416609800203726336061555018676409897400644216151976344877561647971940708821759164153998686863635552176445017886807583103297163638817371029997303761892287976701605434830996984479376304808396359844951528572836897401719451564577801937178553590821429007475641226977255880959496996100739285628381273011916848924854377100201536140367576438872437819866407993191045873250562233454074427103486946002273697511486657313774634198849454136401101621484708367183738804241981018793575130446025331690182592695879856755561766149371476689525524442117505628332274467900627969772224381603632692129138811971970117002988441688783182573169800322188339347286484500310652639925204693058020719086374020507790302379795598002336379050222778275190095401114644338606429275429051433630110544320608546191658555899029496110261737033821728583326820601340956176658579521580201533368641654296973276284724236728973498476658855882106707128028965385164632466530596069509118556015980652164211412609532800628374825190741746635443513690310431340425647676818163186838766934486903414812134654427334300864787752993520771171158105899732267494692444824620547195314762213380331558693646945184829527181807995467775047513729188688029381700531643043019258595281102474699836846333853389969545488808563766526262032048806950636350933021702027727315118671529330477524061633549211074660109843276276788683381193705683948815623422082786619702894653148905624754439401178491002131030144172189340760976486241004025935204467327197665235605148814300204796883399177820196754345641883666444494510460632480615678378800764183795091120830632493860499990113557334786156913217398800284931034627557448798975827075363685072383407273196237151100706106173266277240354503868436428347842716962600978552848588370028797022152418416227779969894315101363050006285599824824726474931686801214610406214614281108038318101259313613431095678590830201994394262321142758943393255308594440854303015331035227358909674370460141186727400189787513183652033266921993744999943789970418946960759446056237004175819899366993773979184988943855438799416452251253886350406828699020792728094779423292373752019323667313334039278495315387419987271036275209511052421850134986439877697974958449369743504750010895629938369278832836725663172363728275088219739256547466081099749023448725784103802638172442642593952285961745847694591231926785765768094213897974451929274457738090248654060822853059937721681186537117779363554398629344384237928097674663084671789201322437094514797561666755976032956766920341656140889610685152172410342614967860790237776284271079150062721052557562633206564210241010063054088162796302292255961235370895951176051076273834278376760214925465741749219515814876907426603253619656476663844466836238242526351665257929862246858462392510440704833282648086361926153338605382609860916731132780992439236093936117494447347407620197226510480272500629149376853088651403583382888831447851504400909105174783085395527486122157658303824893608247944912957255460198523603993174661968608678285724078613815104544529772394593142119208909333200693106800188967877711770037841485284203130309137622979922861522933886089129727042600526674835733746060357156723814074115327720951401076686761020526957622184586102949508231554710746006844944148146582037075054140529139566486143821050129204714085999334207040699627008186777373026568340205244687642049572461395126853796468351814948416671015372754756031000684666108500640191726556321807018541754977619552240251814261974849290674057710892807327438573022712448696663697655202415798829454226281258912475845402376493906077699754026558812903207493931477696532944830652060674403906689945059655507947722247512828742694888858865880473949126188188887143106711028778919351306988843994432931504024385608169685747780168819847287200538528102025825891903808230125613496888839993607037367417548561489724363690668856448371297393255295171518946056034921051537828076483745596163706304482429187239760633986409290786914825493167567293765180534223845737893298778979316278460379822006906309124373285681981427480033667690443779835543466741913770300465088292794154780348780532942247444328933950101769246098594764083855869094850090171620831689741049980239484122762729818294137861231036595719526876369637025538322786106477394713095032987065115799264898002227780082731692859771160285063839316400450005025519468627557910893573137011891453612412716395474089163722359219872188161469953468606330777663130801107155906204863237820300472499435224481017486188109852761607319932605376525308915643276965671044393461273911713995439556319718015153196734833040169532924527481482555949770040761028234119183881053608427219395601017670742942058563636347910020395062326559463913038359314720342278299754465993745305749515218050965677307954316327335490365122475182375836424350109806353132916148396002968631460807544203613926349205945384876933788195086943518034588303331207971883560030262830499918481999982051974644040313497722667828875948960393897661229177427230202799222308400495993234202580714412219870415969472988486401933297410666376418581931369468964848103747420307427771398526862183263835915091986662647745141280371971687020186950367681192682989305908383522150649680057381573874895275394523157197591368600364269950904531023596035335692435839760454030535050033106971267707678554802586362251229199891920680282074322676145461260844267023891674535388872540245623435550730155195798351139522540900081194333640913243324357344062578966309719069041392071064252038355039876747396995266707852598203574436400599585724181441087188380614991152672079612311951207129340654746988485020346363995981205954492455859983828884829198684775241515226300439174267817506075939052990002583323126822600410460834844598087206696444095198667737177385504992389391641564872094031475589399820700561991759720354270290813772147009265966305410178858857658789097579950712868484401837928351738075055685731001884563886537978844830288207055393510683488401609994845848873758199450944099840238027750977199481227306745300357261147823009988638778049885320216739407573006890216837050854448883053991999453178561978602379582466868588513998899045973366958934636322895419869941393994940615524479950101312506044797082515203033299904959598401598619977427342787905620207468998388872952269845864016916361180390612881236352690682746046218801996375164687416236982144798866201033143515335876871111326037744261532014330355550561596852383470787708880016857411119393263615792210181673388596321565350112876585672688150161132727001245525939829203808930522876701977104965225818243755338982557706989946504052955352074597867799245284084278630273131400458653421159544685278547308068316566290982436014384357833429272394659428710363712304586095587126928273899377356910240855518511836994726703963089112168347287657169451066555268098092706309633762291048683485342141555371483493522532674325037418961127985969952081001178958228367172399272341165589908633713280874242103784672118637220651955125545868907128107790046134757483085429093107432738709661034786930871911427130626983197583461593657522398571827947123158924322417115554702942370411893223157093515175976218415313079604879719937394951074947783548245337049640453543463696140492910376982588162269185434772173764704387681831952557985949064605988650717187490225174724525779006886696538893891922083550624452564244207271884364713992553685882523308425648296178879259064407957994131511949469914601686884544394165344771608637601790050940172609774571207710441423688680111289488681030017472057838537820654415121079832855503756031122896255531853383311856912916708320749303380963392490581252675352825965485182580796380815875517493539031168908719204126643028809258997980612425198536092901898771097677246651197575282043702922413610936953303694312678581456901377642484545170455136342569545317215622318627802376666114011769085523391131278974673184512190881739036335754916273026987024868179477039504073661336713924340618197683569347945935422184140885053953696448966503108440702126966753685332058974279227378030502415459703187130817219467586557681092682743521814848748439210571809134330685407923921719291454745581224167126873086754645262011697689801621010378005210153337704345049217893648050331846420367551626613509284277550782544590601574277769108025990897636993594637619253663947248015952258467615542267084182958547152313409431927713998960224251300254558669803459859253474181590870404797093990118174333556994925952297352346511429204981141445559321338238462479168684738232026772865738822189111253816355142427367398725231082650183028700619682664750319095184829726129210553083802096258568868865198531304093308186460716376742745825484091291524935882420780168539259737668959351061989059163361306374192045339936018901568964098994536253659582390062471511277302040852750365276905061010400537041205764529875906513158794426293922265940173188123507349304524796914591904623946187070975696788413005563365915941241490583431486260965514804516218696212872264136067498155120828802160593410248215405872065302359358490897886581140622513986495569008260993685917143586469479678354262244464059404534170068088560635533124122029261740442099979047545886867843372003663445273020367513938736428398588607527399871745396782239480614333482453387922091222795797722399420773384849196257793445638241377276707729725683625257790175921415351144676807035269071728611868001705144841543273438880948494601706622216901799043276137015657536176465104751440265273443439633407919335577150228196115103429429484788684997730067851944346341609774959928139439824588763537973970081915013536363245184084626144783125894657469465578039018234542997891279488017846536924341996059152919855307017174956541105843598094481028527888470644361852345877917479964254930159884890744609528966052354043550667487293796817947190444454570952775594584912229175643470208038454004975471397225143534884131504391842820048514158358420635165277143183624011013189364158074775410838667289040494958985087674343832642857209785133694346090950242930994879628604132006006924621812457144231008564064118104819291067546948909390893775982089011781387115882947038575199813437598058411067983176029387371728760355734827104383856592328055439027915309255247608369812567310677479181679634722848967454058295976946253334588843979838842269496053987728186951420534641850323139591385800285075764052651571704725015630284523660469584088602795622003744678624670293700438891329996122045955295294309686634518061177966300858399653152729540111933995940388846214050690231031378937520766606772759444020767208409982225121061601802657476061752495200304641723485103295615810114813027557591037765696325336084263987240593830018036003859034772345475417118631713782460592016892001810192985071122302140181544875537856409381733136159032356598010774797081887825012743683538215372767310377030771716063740021273837996231645341483032418034087248359662013714505758862540264302072304222230372044203676515861909197845369141104606959944892190231106042247559852039285118974685306771633070885295110542308652897653850492298777020938907948094777807321418797764072014167053816394569673428858139273814639418399414349593411108530614287087048957838371361333352355759765262606041932711210195896327300321091158267382506504200661658992515242433711582639486026883569207640780375862628101194538507220693058094169999201104549423777880368183253308203700748996784940752863661204286875487904705648811064151042200893216011925019454652021163069986390790330081580766800931713823064580953476844022176853162454351525185764424596574024319433697324186892950756245476424464259966083563451221547804130256170231807295205409414499178019839290625816291886256227684317362020719654820426288377680803824590298015745937147601544710328501178655991086711853223193192685395559449220244996550379226373766894857878338826732224299819044723857751530841416790019402687265690664219439315833581346983809642580011281925989597012917004192228926119151059399206573581619118537395072811841009746259853453542004726976915594690444190111951078240533128423178425895200565173178545278395398310657260820552775315424619652556961318460118003262281724801854687026082825398607202335464916165592629534648490540842447651950968527488000371261513635979761967082054967532493160163826698561855711864662601465201872186051525855817116562584161425549838987309632248039334835909533092981396468784423101648653340586760676224883321687715815680426606780073407943046789388045936690178250701538360288841779054643378040917314389659503051926062588769476887909573774043696343389429008309579800383025365716951592447116873525771398897885541382532384788064951295970755102476368891844441683121924454302373004877009978997473431920736927389808233100396933212797589302248478025925764778260951875152861931951872572268418459498382475655347576848622456493733533629327775809618181906219088697927984618722663401491546159879007508819049288255206092450149182146455962021624216776357908579550574302346017306837460901967198449479469511682350278051866128961098087916822262813001754807326342464465844684583938107471662568600028820052752045914051801842487358163152615730496362185358760272052755452783859779897392621080962622738817672253957093786400218797062426771701977503879500052894511855679406942316678897084323319381882217969952725943635119399559654736788432325350400654246492037609948352816466177047510069058780810902365444526694134963239882205649257216071970790364676544852146078114943119598305061503253798878450754407511113569489907438519505907140385928229187804145727675379483956232137924469108682455261184847434762141642390447780024803573238911393865361783570633801574052053227653140928258607488228644653101546355281839359225124005227024339830671201010099959034181896975401201768189351818913080754256836229660777592260575579541674609737865598692624799204256462499212698817738204287174023674028729330012410602684381556567825242082897987321002930586080108892862527586778614137008580390373211691825128209502639534951000949080186632039963051370293233692728238436381415191776679374237493101416385501952045918232706182936566747328483216170821995224111315242593381355532449716832881215965477268703555277068989120883305892660167992276774790433275478508956970645644763334738799551939242449293950574943449270088062879218260648998390450284243087380114265789513744037245682742045747947745847717349413982215354165197744361613261835317994017330680232577994902535015936284525153820744133814594062252560301592194135233998992231677928615368438805675186081243437746434077872303612048630898367232636130760211991150621689783108203319207560346956775284191673939059809768996506978180561231710657122262169528593143141075289659960961160744962812814166944637493769864352216516917181803064885041960897830108751486538253134464310955094936257649847137308322593914725505590358364313636692676474147277674165277142985525619621428383204454284316868737583187621668438063007804140231596815538508043689220116476452682760197434895651354606017720397879814900370625785078616429936747189501745148145967956406949167138247645491606453420126151053935155309595269902546542236588433143542222622339390118994898709111526337012309915964335332771762654233767061540987709157113949234885783717249397260278402142748288895407963243105805947054436657526523605267791886431254333312105765776260083100774407527024518135355330089058826071579461737661868734399104739851656791360663380800440976242938287018945274658852692456031924274850630013881395773974516786388624893265828937414281531360532941270353513389265385083206500491194322764261852410474018236196957116481867503551004445877232315160425477496057550240905065856970162735237570954761207057990716173100372582291668855582004829762805412821470487426862889981060742602097473107463152254186163614241827985992636004447409825980978114742182122292324699768362508248074246248627588745506917413638257783574447488508783591894922344609019734622721108796146791787046165894019910647111344409137346227416743791594867178963757280400171381565938220661044815962743251290772322657452726966306381546457273172549331865051694067062357944684258039494943496373720298586075015343097479337468888155378135230209879746062007988960237161881749679999859350254137643307663616314329999180594078220991211846385144362450658176593865839282303761221909980150318744553465223583169494922910645353128850145504490754928636903656911722253711612537399424664997517711108176445615388588359916817438519802962635923925899422950668889002192740460294492403673059890872707908608338693413815557857053798832087029877992756858976427674955128481534647519162168435403134535725017234716309970500599115592263025940848482028169853949357074771557977283223608133922490572036987209608998149800040930034868245908470362611077267728670386749941749979682859142005750118726016234184896843328753205815009372041947095391990743392360955458464799159065973251178316890678132325127674482996185626406414821035470120556273605198047113184658343690178427797139846996481745728653081022993071788695632266148310255997857840984629353084378817160302774144209908857357093902710162368599259289328966492407895377611573579479934770331015831410939650180471430486190763272010998405534583617492247965268343705650181430649730115228637935239919842873196118454723999800168268903438353726545156670328415766284278995192685690346789601851976494733169779369758960054628077121078149290221849200589177303268319825000427841100867598906340730260268002390037711343549508478533357433960093742813380385298557109977123701140548902661988846083171550412042337178720764544217937821383914538297565003587113686929292692688715476023966403421028119396998495837049737680739994742284377298617851040962614516926077103787774792789568776276204890099338379799186475896639565661480113815759545193148334974175814432536203079593681053294258220330730700124988186617559292834614571740429746359706154051315320588519889890515685774323721028926789558853414019263841990496684008428719581524779743058132263708576844206765993478524115418023156881382477312356261330601163901490923850063826720150734532711874886564993611098859285232825215061210672065119622929490878031424751771958596471025970923793409728672912277859487563702113566975410141646343143973904014969870905325160631692348490427198116646458863956610376408574019472868023168313430359381018722612711680197345120079783548776831350186177761904647526155192068682779930118478905480480706614132283174571635199999596140091081041762335696050493287985843565359340778035617528171446289854730469378237100994697354564511124297269333544696798738761345473863417234384661490378746995707570002779452256900904400167805855512394326935961420796510286887579880599214397917204175931004102204956766321051700567445320505707022932080363262193207134952782737871938928053327763610775057067621572105567774825818931823291914614657167609874592834001111327423400611990195081807036555938670603591954091738594619701835488672381322645854249935849512713970471334586719418392994760317237777437692494292403188742133773325158492279074918855554128889582716895439067687758039783096262326571972953949884930822628191709137424499433202863101781475104564400483710831437756107674168676204687684163711470822012915883868846487479692156500028670320987211934052630023512001010155849966806570143650451410551654256962770183493369669409430127314225774541771315036093773592620300174664536553017195589543116306565671049536863057968015537113062161299903607694371782672793325741778543171127125965197605404344070455646859327617176777479758835692105555650845220667848311334882913502575195625812935847211868980050848905107406318557630774079213125468966431776568204864914664015014004916262247331617018448579631244297454770641886168754880125044001888383348812749972339475331861055673492518714411486872119800941442499170404046285463945890392155976930739753240341118318528116494000825975754556642807606611555320622972157087347039132565736278172205303170326930564220841413812131886510268283775250305865344096512917962787126794529856409997369707530269542248668710362388908017069520957287065537403059576232744233564118809698304250385114651095348702299671368893587560685767772870287855158567863735750305323757140808180849867241510280554209025570355790870279117395952685828556650755202296943512768745242386565101137083622458227973695058836856246046885180607893882284430770366421901749454716921579391259792578707701044385876428064104490809058930103513093794240452439500908822461951746322582218657946386499815454418746428986010201404072976588722409631590925847405100609932266293464376612434188288058290130248995789332869272934790057166975972965912598621048097001049487995319532860953639595794549061395233614389378588165476678901837903443385553446787679023650596663130844066188695868207476008301181160572788739466525776589574262403359597070960583799504894147901420207976412283352716166579976643326334084674152326579990054299503458392373323601284363243100605644079054701687562636354623139497632965217222432558228259472676900621267344803215701443607995471205353967010045739450448044592030609376866407241468386258310663355689150733237184859657926575155355892562803623873720334572950446305702835456709353152898905936121489764447395725923351364750629044339646595118567097085247001003501896584215603360260558092262862766285062837412307699805029140312722964046848552930169903322508834668157758181790303540253929934131289136813207228882676439237340133630879112704714688962775532184206061816061901810472330734990484143628550603347987957758283886111146522850693093446394090177085163980567951122446524968971173629173042168331887667472680601873000510846613675328300015050009185554700061007325756293018569215430400961733386764503537060473025408443693049038064601034010794610782348495292261546759166874607224707160752115619767719026128957205094245350904271572499100416822535473120535965773646060438773341417231023657157929822780686754105865012318066007905253936569189017633977769615176415734578513378009507552370780781663527548229341228401205967736397844124386428223293179225058964482080994973098106318170289067396719227198756679600870042269723938065122044769491945477887293131899666710910215153306077307432038978957384350509391668795111460303735348418691846255639946896371998777167032430871705277701910636169023921994672370991547621526995509436548024843268884454335425695221792880805215444092415574426934971687765947564135700350909521688994018868958089440534707930336145002254670215059770801955922883689397313832759108272081104346235311970126506461770937635421622306283379263056387377552357731274320362849680176118002027277881632264966800183480490484722482910263975635877503588810742875045996580823713131756230287395243344612776536450149189071806774736555578168203324719747701194696372617588750982253983788183275785967525545180632756833749973297901756525701340899960941604695908049333620524982492109715263279094098636795327389882306075094343217217064899682167427587295406260466115968708366938069070866717072348137418573073805821292000985973077969779228822974604796627473308322796898240874296814433161361873542767200685586841435000642025933042463138633153614222329635384947518581516868035506281930796065426051186815116786783558966230314589880142026793745270641200227200858127009763647607185239929252099045562635204971902538832599006538295360869232735613027899367698749129222442519817046255709053061491435340295176659669054097942174767008489665623900998488669583195284915318164895368961921719740882937271892793753326980863305792966642548399942660063415663578202344333907632117784466159116506695830463143527649086357406082095732593645653111039611094822506957847474448433113277506980722862332713986252303823954519721337280430220629499023647205956056226504904498214384893879556212658629748966440954243302493632685790633733201540206490079616038670667092457974777986133303169049918574972715588313129410377893322067917486532688379679613668581253030136948157218702716894721009905794620522137703464886801803257534610020256379033435485757906529518194374524275181286746735426925703564159213755012284386833112680901005323396272538737190297848077799846437201189252683427489257138342723079367714435472440801638199571624142746291393665572882422797188400930773598864778916538194396514886850443104670890387783921167908681014496414062744562819850995046324972629100518485396517556862773055531840910104743678524729937609240589001466237611334390093724196359475010082074623444520651607314988255162381427232078093621355532804429767047642000557740220218435904742903705953256674342537467879003239757647326817729894347179998068182508226378568347060890633848708860277208001410987342375324515084065606554129345617701489647093577191825319193953602997851607124375886405588664689562774819025516907767906957993556535851912663174735716118740312085816115044521352091009177046608555651836756762219106514780832849369365307441674955716691197455287330853368098691439562246314063156459592241792769868292772420947019122501778928117874789704203109744102739937664891087567801526289408114477662598700905297858100025388686487350774169659497064972158992186548915174733352919461805117909194669492110365572542642702344987387905407772577346177825486338032715157917866062382301456109163623788179726705333484330842032108824012378114221098598872257628507008911826808033212801339440649291469556321119099560739675833772493383412551353391675626581367091447127281260251156820688592416279444536054969396867768257126613539125402958616339128360087097527163542574293967408370170630647501217775102951194637589898558682461069870608938918063864231335231109456688916126255162998155031647903996317501957582363341004184727655734137924660273342184194570893688092622044216771574414602606207398380619018132929202826774135698142390159556857260383365844092655714534603827986913479137483186715654139947736859251328897450812894111472079856327001371548144610758229119980172803018131125647581032756224201978905418663163711970241553325600300123336267526526511686497826784392980027311793012694775791711681704307833986728041879684942755408461774760087057069262030565464654426243307894648431362384465061801430176010334573051816568096278237327678048953798432445821725332963396046216782789143551114289288866037901653764165953488172182416544615556163006052802909666609205072595436671741434159405770009548623972536740082147917953313212239444661745676992032582058876068530457098091932803634805294078042913897017434254700556604321066338675362358040784253348063191471403181328134770701725924495919310112281164570217492837752510714841517667209673123005431916242729033058523656869524062648525141038502072203567742037991930317613841390524471649124934920655627850278126401931329252473039349589015124789351653866454573033134472501347971371833920175941249262630664435302158126686750433982485755583269861760962299205420217464199156574863332998862726450805396474228333297723115355254565067687785817122703469255005470721001464923524965721369358597809562611923084210904284340344436970455863891316708877293488397148890503234534892554520890735024655821527079768866303808773731539233143728000347601804321392228322346995198592935142196040951883831050344300387104199732783236198184169444858722066751131902195683746738204801977940244920034145110436940983116747950831612544576432953595136541621032034074829037436733220730165046982513536104346277140504161504116283282885157531328379045132947697457446196249561664539386615904569456574116815237693895449951902751091641179184780491702959632058247250414147014713049804879498241368138973441159228685786661142982739974039739721358221567650355286103518956375727170424051177636363203227342858763092622375515818522532564243017030200722560390609215425994654332075529600384996310713841735731068702768598651825980249090651188943983822376744636120960879733905910888178399009961377524332906264979863607184177012509466067166729768180682179412528922685843303107201781006993071836842097130818754905311135207408490970270347864822814746453113388703340261475857446317653340857542917023492777947310906702893981582763484744816649786957393501774555199137246858386305890433681663041956930079558970080942190984549220200800640022590770852291876790854199854455295141621518037942352960516296181182777949393501538309726922862372005837753890495751025813312490012741267540995605320451228699952953744195584746488008058628252156157656420153658018197504556123054391917881559782316983935664054210389492268329483020113138155299065860157466738291756047024427686538690336161356897995715747570714626584077926228809033083379508111383581167792258538711065694061851862578858811019168209823289025165167743691246972861215290671359363958893035268816592401287384463461851217905382319416118493760125976278644530907793416780279953339205338227728304241215928445973117084413608074297735010450801189777863441460576292705749182391992952406518565924009997005475096677699417113888895710857233547798466968356134720992064801057818039522211397124332088300565340072479516695186930102016236825185114063823932893666984044425287852961260516526511753099750741316830321638794608535667844679602636470518054372915158114889153702415654622011148946536556148544762011107639437822197395081285620265925086151506292507423500106090185139107416253060026511657803783508347100666571216162484357580240876980678512500990353332754655036105371447384818425957421124151552401820749035179907879918823084188468425637295594647893007466797932542767063225893153568190222468190938951323906316467540351325397719242980631860787858263414551277849683374201167693764030308386144266162971381222672302188912496028021502958310218023202097573558345535299494026981130514971661961213596347393798301925020928299666819516788045182790446743531887322896229663017693741151503316897581233790941919605048735533756201435700201854634342160261530453692380365610749529153998683632880926585552610000352846273971548039353640473843129725151658830939001546407734155826407855508291670140969048578918519254509102632853305899224740547506899809238971120023975849396616961021319009646943950602955613384035725648771331513069046276946117524851203351601021349265861732546075288706305150004248349351293078270282778004680438831045546384425268415206032107484099205025433375001761252056901942844430581298709553502628044620079335033314154475563272840101905974648002601130241779598203529530792407851251316199955328684982086715423835241049330946173087312237386154605923372410603811039009806943875998834409523526991064537600219607355781346405484492992712785753994897647264954116802009842969946126251697645930358887217032248409266652510348547476395793250244205430179370573830484812920995509543530307893241763442435187779674924476098306839195368496745150348287067849499102890341714361209467400051415441461910210963503329617604450405443767203972495924665840103061766639716027314265546006056791234138417824083301615107417152395220620652784924805979832708349137316455481675226164313216075001773610398200261826771605855967323925224276035039015197229545003665939691257012867637264356888818513594487420383680915216593270198561908026032779062725531544953259951986739824450461791147427221776936200118124277976937428943785198113021265939800899782706195314315620290684496718271971738247922466129979900137186740497752726958418156544187712947687856756533506794918333998761001371240121289361959134396725958500585338766412293826443024794985403109889859371553023897326628319484419633147123720835557999804354620946699400756430244571454675711456683088841692661592534259152995334644619041853434419868835683177749926660349673316911303908033298692635013402247228270727146298323189163636533647621398950054059375968372474125508386182017481323682127436397315335063439055087047451686995371602864765415450336063928976027826708632713492805031709935610437137852930347401065694719168999962723138072618983742325026015172421277874168009585678984475409331544420079617366074932163457004003423366970349829451819451638298826917866540484701413492501038506953332158050273384982597474800566572448536712782052988583162821422675388212066313324781648095828372361126977784130041856713914009252662446088978359192325177268945958020280537097784478655891890450768748949761364750735548243327311776644308757438356338482129147616553269010245704561561541354029702938136164802844090091800236006688989579897416522220883102672244488293451247533929674245942436171657126448755725764127468645747721296710908734275314682878349625076791889007851556232814869423126853834802608832270329465088970782832575840690221740655442314275780855372014915903658903545043391570382548567744322605703632279781762021501178698492588950503901381227697530658951198032920667192201187053043957374492131831662998310497463850838845452675551687801597032750903566282373344235893631546806554487867773052768991839794427994219177641497388225648512114396279635709350461809889295460460443647897234373625305003928361366884743664186541535241143982226457184779608832051329332451797731727800128246236775927811362126236005753441737791233662111560083290835157200088640697093464772119896702838911782324526981033758736364964007708696155228356655845503334827080408938182584058033445498117323255532309281140004787861179963000153762385248054237485729079569920075326835341925365244322204777395139841738663158186562820303220047643583165885822059094973188491790689749610755432020820087076651088433446057159929940789047302024147272262096787710913908987654006176985267428433253833430149103760893354485177481870336368533832375360561760405465388163797180804690776960120213908426011314767166002582946430948388676992071798274402698866015326063604093423352319775579265145907704192408847777295694714842497563461911320373792631877544656182476711613660030022154232047093885748870496648400420275746622258335642191853292554700405714055669635587737674818508017021346890375467746464431541365080972049224151769564014488651001078263600586061177041722674917844972051675662296859815969728193138601535794061611317135698633451384221088854770242357607110719683572298138250167936362234043645235513173896065443418699037042896671657895209721295797879749072096223052642798565344536974101560466783875799792898802062639527361462604406835064256815933381778373730081976034663944701747034262162563027226224755371186150837981529802965189700951798777469272733130007544860970256802801602571090770478973661848664108289714402168493850450232647018328018398821649533613791736462410546367041495594575322623826415267673878304100332402277870111275578567454155991273094258986273612709268024720933065140288722020369334156264101226829649775119744892013660273148929621115343568220735873569044644902198711585122651485655313424717588159366725940335260383692586739759057025863290602381698469076156574485075507307479172986558322372501687921657100367747445305622840425120866713819389124819313496325853510485904188869782862513036083773966469117490688851445593195557812623847914427219398709002801642472325296254972944550398390698540640623508505146870068421664523854903555202330054774891428382899706441029044011782075599597505573351930834923657335649991750688302786310581934247645894674172555273252170694926030938076531768072470316441645543444896984419552491653804436570477316082377409657159551827617947424980167513413713662486137517802590711565842794877862600541521586543958093649280334881420716948843831978624877745380064204543041072334626997558765861781780235005626092100055664149089563038168751295875187860103462824735568421549562258683861319027815191406708940192233788444067485519585989478543826188619251432886492470710572051388591164955623137994929108041186194951214263207242164082580237924867463131343318690531367111732689078320598629754636255644236647903230587273956447791174494245095431730052411186332728275858734752242695062896684657271452306689280480133101728645605934223541525419578723298099843904586953339998552709750554726712526352753336152127482006693732245242965374714613924882692504792679247846401224975770146136670947721507190285344354692139116127297705285946944794478215122242187067240007603163672038860784370134053549010040714299961387777392168658584999996485684567277850256434251064134196686594492677523553066499480163522528649747735172188691865930743440028827379719071936770154189965404458462436107500075383037603592878013254178173884206398102173893436215448322437074036615760579890038158826690654193366555490462505576079806844445629935132019080010576157649540274235361437357204810215936140149786149024374285082968703914675154698447861521750892651616188486923424073360925325081657752081382940848799072229623151693494110702604156720733884799784684452321991122729226053898513256623877822900364960368400206965763432871952513377237109505498685776457488429560277160247826389038743027082577457482469050545403830962129890730625398213033427684221233155476541244551021249713268667344632619836760685775124703164930582015810701505346643712714359094212815866894518581371315831511529071921115288907468524836349842195686674979373269660494762933526113944649080518729657376947509319449392092726461622875215161971417041777270330944669375774733946235071419493392376990406517285341755163527653728030348239988279038709659352622961505072058691308877235486954356391955846693950643403298451704231338241948561195541514939576643134660181627156186426868121738285657629943320143027982665579336968729836474936562719263397909604437116500072331178504035527518744711243951156641034871681790433301591906044254045310647672380144193084944933155545683322153620075138685972125320959604852916559806197663548276371616355195432403252929543771654599042573758637830985897391561341470467949622307269390205895785225642037252116903864320964341722651238401690189081141998451999158542107367658532707147049640293728271772957249901548853142748887900390951952921121321788601457643220865243750962144775068218752562218112796779065881374028896678319852171401886639264270862249710597812625593908731839616125366620627139714248980554766729856552257941546502794258558263686434575830634573739867852931952213086597661530270415996510063292646386513529940385801872907251524642884253347775018439443533240984546255335842940407914062144206619366386455555743041903253207914978969662289949672498595137334279701450813319721869604360862890252022085725809366262945525410568870854898649498548381105508142813541187184386463883283622691608962764217075033790528793336733338157338653621916341220805039516780392049661558523893071799674361389611168283552524883451820686144244637255203978973844380310131671973455655840493641172367836166025281485068114976801691230770428257015394655883191723851476658578313691554353338018390511799447834288825787339113914842646768175963074580137428878176527793769612843546154765369852964700765779173782209376831245679790957236100870748781616416096598591823786657308312603829796056393991003791744302543261952371536508322221478190016823307983511839986732058831811409199712870193265957303348918491843858993187861747825710300933547286951344101138977986472038040071632233660667087711458323407227177412527782358836000724231417313645720318278823564135702054799771874957361615104981052879099249144598340397734162367595879639983143025043761346253982134636033963231561160184648124058849752038145822458443141726371842917291009695886218701810518099361086333668786606460491895036668597449555591702299774067931045298325733070470823264086244531440216003368699058652384381001430379838131924509988187964242704175391156853800527643848121959243272773056059772497560326877897433488972200359674894434529831418101056227682998715022288139991353887384138793522530719417452911265653227925605939092150214607529056796899437683431071145239118077280898363142789970970209288949202785003521965152309830124721402479269911111067160639618276423905404412367202251668921764271409471533344433903053007058395386391664344185462978471195039637552852445907826751853928564648552845438303384320531350827860393499539639891945290727607759318940706418713597092966900180519963964598092241076808098597711883371213309922589683643712093097853188332682622003530830218933212501662309658684047895410907993842716881953843564138743719995860979143185017724722583528710103237642054231242793160168140808416448094420166789242996173363388262004998163296846532602156124229400386957875418522468909619967749951227501267601661661347242215812976725347328334062374441471642257390265299701785382033571736649181923260984939744277179866582384112401843879668296616841695350228676913450864403339933160566958454990266446965575477549000076738928673219768138329150578819531231927757468386528698540779982365692639808477942553081045691702248224487751003400555545185748101815233315834317251901782551490952102415706335757400991820195639610568606668628309415896318609353148185593899577502220257027504264711829793020031176665110537751800198388685008478245799838579694623040822667767234255496331051328241985582409224456611394041425059916519510523587169223981748956337851210179209072448663905888363164480424710922035316996280608198074144696399979725868756371864942684954820635043646485281791385263776335172562610722270748291777702128068295639679945373851555769706746059184795416846736670244737247370388074484753843386069070885423889573277812439614714156412905296739984122286021210016426431244860190040296701895776202681830660047650089208107165972392045186494608921682508365831283892373969542419898902818036797273215880407446376483590781571996599481212961647940656761338953317194775878817805354254464642889750839031661006931530389172974440605493782932399729202848860267888422052308878095994996115550312369218450989917675219599069437603673886303794256552650082458250958934950118610547154530847452710986777510887809849699028658139145568093450720889985978679579390060736094836707381727728270452870544319678948969455027741388069069392681715929128150935721491468479671104338393140106623217378973665518633748681868500859749005648394101017617912979687907593666158373751338022516418884530426844764459281702440596575161776667015564028561848914132164290459397957825052961537443842899082595844011374054622950811829516723624540528472568216076364708971796615730859476105039670854990974253626280289398148199397845396494514883621573837975425132220340195128324422572996771771816414515767518343088846201139653587417911147054518343107274556432099029400355224799972534559250661110863502749929205737352467333580704218782221544838491539347077504977504923543264731466480116127092543342756283855207755867731503122050421162110389944937842026589324584883781287471467556555342133685357993102655709182539362790020875691517573665201568634523195664137346985398568934230023264279310433268845312924202083998887893638034260824625400441000242139341502540346151606754228110446306990569707883463580132935443429799300421150678874701091753297083762632946611470846717332504220301698486108899034512534540486673456566373103698245914943550645650392957806040724483857376453994850956013062858020809125496114938157094046685659745782003303348359026385354297623663191846106851124933894833373585124872200431123655430517608211185506884911414522454444560567926843416773088271106299767292017615607941535029848581816149519087426745764759956578725765574771175461228359313659759689158987103002904530137308400472491601953788839822276283700653068125338070806353590455751298316752934558758560066737865739032383956404792809487885291000895111001182071900796242254795702004098196737925412816673509363124804088688637858470091441538065094526276945250421502055367045180554501574096392444957858215353883970485588732730065197715231664553550545430401698377320333920242794468789975187016653726617339514322115482485042603066438670642593629458267848504681160216559205509904075498451505303257238586863692338210212695848096344506150970386474277249246782180709681649203336970223575199897741091517850013070417079122450357503402299881215924047300975476615524270157331004768507981438306752866189226408562898499910059638477770682566439714538709860179489534299882246782916089269563632065363232062983455608211934017099470351314484125143958454707428551083080841267631541895812687885227435464814561699478487897268208863909307239383863936588187765868823548050850165682692100171615177030756643766000120594080769011335248552639946728063033318288557425016051343940674081697465633429082607654650471299258581542513911309894426149065904990563360234731229001214465580300300680059533974144704536918126193421025213115624338740896932592403237615091504619217390241745008969783464474998689265682560771686620813701280564824282947842096608573678667052873768597864596861016096538340216453546060113172171173637501709371121345126991573383960255268456881023106146568833072681480272210126411412126217791677249858006950558174163728871977815188465251111718008003994021626422443351395732193181616744817079200207109705882343494990106189090797129311562640058040687523901038197024684213919082637270220009674936215769275011111746005203385997031484198852216661485477132155275720317645671082945138687261816351262134060355237364046647448127357527115712568743004989800318772246771724346258912906518590818891231447447354778780530931842623823234803737818759398187379012108742097764674061886504670383581052978536144808178181756541128744122980953507775909340042422236973439346654890440256681706738645173235460164156266092477087448229213035663825691012110459751840839107297720274771440118714348618398327864963322709498399507954385322923511229578790850634779096752021344603470565491749380963354846683724860218768736548671088743142570286803290670196115561587374446567138563460236670542826609599376137372955857764829821003002826097977301603275098120878908487429523095675902622697528811054549967143605623804540189221236178482692464399858336954762218723235742095208302735671292567372129311794236483953645593792578479070309964036659131179591799918140309996964767860086810084375736958528155314190334324783296606460924714141504874993818659773355386789283831818391555369458364012727775897942103159485610692518960741407370148201639764459427514164087908039050168897994908843072200377253061628021362730547185467550179454744876251605063403115605375881328651291401472769155652344620680362202311391752669089309514176538457899600549653218147847756881230511524748323881164022983417393793087798744843890451765441203485315593650814002376311077943051643404706683409031967457614378226170064641852572407524129083237015576275525064223298946365401824171017619505267767783542713837389730943456351287073894916437875328421958667675903585754625832846991996137781441971384908705545990473530700941959359127733788137604824732493537217848982622067701443751025260785797317971064046507717203961766640279304447331746813587716005244081816001031482583553282010322425831167950678081325947909105884657958507637618904814625384577814261369111059892257841334104683213674458781507507253620245311245863974285300632374786276780427086264542195875341979792226768155967213279763776245226080314650361656154564480130256485540659313140201296799409357453531932322740802158785394973726382479156733621019365832987143099628253098845127321323048034275562717807222927160988225565053722677375033071373230836359921369099464692831735496321686903336320998878433553447733535029002846616575612931987097355161291603041319182292709123234696634741831547351827477657251062596770487097763670270350031109352965891511420873169911753699423840599623764959663861539794956074338988299954244222965400638107592005218601963777254739104083961953902961830111559375974486362007928357931007696576468503254623954984681138000998273018522927632345777998769884722566031648867790191448943650589171532596548034936346873945144191603547750838184643801358805940809788522106954418071731020855766051203113589452299782302746959482865690773786645159641440239000159398464095283617911308301202256385664277099160780822640356757762802519369721570931750403354019616997187662347917880430576808021565246477462221891893423291555299072465765269110461999704751636106895739333409047627246513403611651465190255427015818205524109490889436140007970383093980553476110532975708810449063785344466845970538278512960429158418451609058730293262111961513571436459044225357310794137767524413896375414780460520202234674512156059325577161626619553567229231325610232836384308242047574884384403361225612373368670364371740762465201615399019231774555325432040794114659305806448620503491393114100982752894210095598446905440325492628681618695334181572399740572330743887242464835829906261790628412322494017782304424799872553696875208475215762460044603443648556074082138215398550456661645201938928698755867531542972301833966616539408251707143914468045439514592041749901009275651571512175291650958128174035700164563821301310167440206123302575794902937256825021683741040277303211231931575028840093736690740344021612488389753440778361448630897036647593061594963788632929252338264830353719613251233639723883133928402952910537397590978386007731005014729623357706056901042322591307513463154247178617966520374757758617780084553613136347853408100314370741590190918953094029496395364802985305155164850183867638642753704735589670050875762040459403324229254491559035996174445874410474969985613360119885207638200017404053337044453586574492632817935492882615684615030753873452214833727907686583901071713172226062983824853238596288935874136289488711572447910383979805628186323373845640027698778763520200497511773383849458969690006146568091770207922267401012805740207153750890045877770266302282106193544583442051570877248286217597856474862809727269528296549148685401742901582295615509935377315360470280896426572392647507356724160268674877155310514710203806867976637945734422119360470001900636564256861828869422760599871942153926523891561267868579986922062035465820664470926713607103321321883556313241128969692987029949181259856167439649917613036298164930774767530022035817272776944339671330755325605001078250740340945958836642898650286375604339522732336268645195534160646395853781176083453020042984988686765480236856074928115927397978233709461775795156257557008204819954583803048968428303669129233773338903960254372697842378981258146368690221725011512484104221011833502762368763036482430265840797735543861839621970851243620809797504128911314418028798303670604681877405208079009761795129883334013026864019053419239878151288827978083148880340630823592227367528259527435850696715813050409612908156440322468279547629389174399073499128264580034956151838491238907561286427483751801014070851914725828480641224628116437851530865717483018779186779075272084248902476199851651317775644852653867526592789849589359402488536916319114026846972545274222624690385454023935872449089838228141361881119267475610938591568162829142443878245995467394149171581489463124895661698792431795388473996600023837142172418021152339464402559814652049423989785419352429258467482267281652334592198504287242377809395790055123452940386300746902762709591686055853393219552964338322406626455326206714141254360983568978333752911274133595863182902603838396088065272730737321197792690537568346060029481021212822440780735161490957353342361730895731018053055008527029391169825549457957792301703501823732973844868467941441113683485513400424806466307483445677514248011462733347398043305787013534215367657447564009866105738427897568583436747527175565229132241800855051428421431913080287063694471597607185895947483156983046612375846285392751455288405728886354597552630656140945448406510483039041108412488866802669616947682755419945766084718430906876271252325406655572811976519361761452301156574524361143406340301083820453728258072726958561155402521121046128093165924319848561324031162694567561737405496398547453800784398343678702367637229985439909090027405501516852258180023694190451815024222044536678956750083026969644838630552801244930220944397193580677828798332668750677536467912256216041242563779115205881287432205403043310799160573224573274961408056991820835637260065554540431779718229021097370345923735127243216097847933259245852223559994463564397546102972470247961351593893143055101905912730877034628483850097107199683274175717102277172027018595133990283878874659784687001628704556888707178310307035562188060932434355520771616169610477609180784918126842583624923832428875816574762366489654276620547814755365205718132109987224008828829468628560815614580150806934991515876211716797237018820501938451382792394792701058812000440794745014155350013518725456383511524904081637642949961573143332483855899176341853960412903429126741587613682773975979436851740821841696911492033560056851909421306102948160751170561998303022008061394615016729352093529754681016011554125403144858904739055382875969870094764124093532851132834165672855485145305602393090440519504782573027788744453702100562471426033924233099407404496970326601193469251395058878429066478159328653701801738369059236545385464541522249184521520424188426444120485199133504783674790881256976457948881104370846888034713830270606348960615989405111680259409682558670465729315951509561052356727634604636938026557804594108536387720391698073790869967853299788371074707023004283968469150045141427859279198741454622476116584424151302453278662619822054386562620416100140480033232007838007920237754124987515353808093341976273649959056568553669070303339850897009781054992173759961738021103058121197067800233042038940720910289966788712064212296407722051966887201109234949829573268293627486682684738645305219192244143289170462854355873410226747778848770467858821600581800038016612254044804836932932090451126899539192807041858536565137915360720171865815358937065216237086523887098468092279667276112716582471663064619982019289415058854362555544360791441953297085506076227354714882521524884689750176072318265954627733851515486896261494127622716153113656570729476206713161914537789868424754830194587247681510731939994679249865458597322081988933787737178184973703912235075120613354213042313375718657317452479294733061753766525962305176953535381298088190930669389620978968072228749446511841809549453961338136425599998277282234053316204584349337637213077351021718962380474296966244821700754979549979801650758380209209477260132595012641508355977990548959629413845599969956195029327343545217879883047758854056363959097770393582297760651130457407130683801710229122968315947888057405118545804288976703315197755425815311650919050870715193838022402273520286616453949826829861413226816535220685700822095453669124571312946929419278556752458771288512490290042123726882330506001229116924404133871724397280953104287591737943777602142201279725801780360910140846138415198913694789121032741403207923421785063553349467446846429396802366098731497965873062554521775660650368502245999026833769792246537480648054222420864098354642988313703043217311421971188693749318432323675350671089831620403831161132516239173314287479996941739859817128995619161574704579402830237407560952466638351949324720753095256488376255627923610417736388509025479474082861355571927856221662219660841409450897239830935845796832850409359396867015665362945755467384315214189559353740422908307494645335048518217412192499927617720241928266627081350401392795618440898792856818692369805397475416724709254724476292068084334170538493282271749382640597916958226808259958248797770134829830149537741436030932983676596036050731253895837275567220790824971757632990119334954966594176063048039803360664252635839779079562878049333698050616398173997514208100061269158133633969135976277501588054271996025339602605483285611611525423565736274660849365313599162605473829363834155316808215141389905921152013578416846923478324454238899491246310903212243443624376011173991040276705749899971590246681414723397287449734434224283273966474464778388453132157799276488834171361237672110085984084491665662210364140690823005757090138871917185752797468648700629963377445740798008359150175333670349246297148878362358174469345078554859564027182003346047871634330701843012911731134242595102522485405434647928570984785406967264705200197369674531313283004172253655159903746239009027448673383196476384479607564366753059894406503963773160551812694316215859253414332232808137801725567987421476054394777861590537812799215200344552237978849721910068882864847796483332225607214583087308235525063885410619444480299479698881204372790835374530640180685054992028980368026661464709438199604819060065655468837854421784056258657314964320196348869211900014609343822829199782822822078575782922330465659230947584279133657980355159322308277921733338554208729470344145988984555485437519887425120021862390632132991756928581201477432180520504531282893306195241840303970090792925224519473621879171077752160787992626470269198315646476933620557852973283838539199176654165876583523284279992405018197615391312315398922074136145291276896456675713698810861450227334368226742508369194267925248387874552475806070905733356754545406869305831081646480620064851025462747586335862228174963583067246876294534542749627714414606644161070638936688232589767936017472696234800713706730717663747725665659069917367530877726034446701136077053137524522013064820499321999471585378449823434062438577656111862898220432112275976447527999900222687076167397307744649924283968622447169783745405519826781122184185300426216973230160260733232522557916503836580752013572720454288438100632180620756615360565831266031179069418474305737840359067327053260048481244705199724098572324104409921429659434908575471389221792883361660334995370947884447226027927028899354384860172928509149571453998878427034564259625826594124074316118614469578722949062187629276406689424392627784829443259215336094462323098576925642651683158042679546641925739086210691239677575362991075644871722246448895192424744324819340841108305498214939242148155013638631228299018387643218817673188678532648548233884293295370547179826139725518691126966385254903696371492823589638504599928417633288990377845584102237895340752314394869154863738167498833630308072190181118290534977966637957034805624589936641866971902656152441043496038633576609633992103277029085166341354116567590438577053799655238706355641952861997624259299677404810601418265419883738255924107985590198088913647947910883963459699768625511577492883457012119904323438827240651503620043401112466736857251956455675954427552532033087655758796982645543750875139563272954459833528724162628424599164492098185869644742367670630081309500025205676465420177831196287844527037825080270971207187030780037258397009800362873891809734702781322470172111702496287186784282861680692462020179175487669454579506859982900526803812742580872834050130603647940112922043666598022320745322749914858752454138721437359605947989590885380521850774379129094820534089823386835139305390183120830891374075487804590489875589895196966031088733338058290942864694979090434898889942532490530678392135003335582056547940405386020579908570112081174812739387005275563518219496837938038227685400712737688375799309784320391866471410684915181952428837930367357442101118595360482731911580002085369955515182280465412092440752759242894913095293706491344990104842878535634747541794916735906261356380187652768359839125396176948091053391764741381089180554293526553699581382608617307486932465861161751712041905322933846907685377613058338026248106921676166265038488087523136604109708379612766374886174605875235360874376864052487356256697929813138509785444203271203068351085721830093750349190446459058228682544824079801601565489787640046493807387812785515933854303357856225925878361242048488076126800424725886948089153991178595901016324524335646002495620251016053874424079585444936210882443985112368035027163466597992198539877848188758902256504363743284010510642499515643251418747025434099404310137674205692718705477493959266641523737811993997103370269563889943862954764928540703928102208059368679056286926855127522111824888093305954304914691323745166317521580320656413304193176800112050670288348707291710627378624069472387635851032901072283077517347877617079707173408976612137786877472776020461777537169698729869065030316263891003586584358106643433353127006544371316661373727580693571137572906314912377860781918976660778594995223686264869487420186750076649783954627778514437256029550944412813841759582823281864645379481439339680491157862321019851304448354238686378367805469211923839175081847983812484495871462433184573243698197767020378730209640423434360776758552122649006059172973507566555388097975720583575517341793969487085628265451243456182135941510444605262608707294174196857580982272772341893229294668572482626553519172468420756338128921141973344603851320398261233422060774968164564036723387274112749443479092020149613110727294816455853575551120579590804343038556947536048695080581621146123180448556364178927403030335419956046709769355461517235197073099011482772352788359141251638557438954205034571480274624841295454130123288493951987920487451244569738622794168930375332689425759584058248683103126958991686411917350901021292981255499302636490369761077648173272399273342709019018979262844412542425170677644578895865176338201505106168690196612721736105246141310237124683802060992550362579188678398693686653557314960231652418745537683240609589154653530939874134730415632383060304579629077171450481373562946887123167682099374143247394467077930863569465370966853028365378907788849582475738515251684920752978184978087213596360222656995747493959689785667493691989380105696664919307739456950408351806308245143496398608558210433803472396160273109511854180802615417828720392438792634608014296082793579690312958227843468549117742047733863469332081139746177219581735511742433354830579587986268555874541688332917529233923938458218510792204951901723297981937352938465041816253425128835930076771019653491315477376192227041885710156040202183656872251032146346469546147959495064855823365210931160523918857503437146138780149634614212391541499624270203894494900612968905494456479563729527567467214689278669177288116432773434880027848299535375490906708146221912322012590152226597342282262838475815415203323469502431802985113719575316449318283203399958219681910003344057341811598766463487639874032503031759579775962376910817057746105218949772541184551744669368744755870175933984252274388547159950201099354749567419482891360591739111288377951194196845189741784847463562890591639832090478853228387359062061631276694952659368795519159500647890737268063200561450402874041191466019997056496139524583446123442813105099393031302771251559796952252185924192252915072313981747427037244820026816523190048163731534213476334369980568966556161352712295944353929218363534423572596737486368897032893306691065208140269723964551483845718279074388248561534371213684394246428793992096623295984249877747807334753270087935978412180742874019842200448921773430339039534600937418318921108909165616280465569362309059733711876568101256809084974054799568508604424756265511063342970753640841272290688072538783965350120230337267973910868605642502446208818617567089076797377876257523462469257144643304204381008274681144109926122642742309354006353753147844497962368665434434618168533919090420428458397156966429252613904586248868562082683657050143086833945834585662652835393577775786565502310325416813791644306564566130924381406692914338336431741611569878488843698418443298493925776632360686141561775631402427499597652083320333162778544762365194622012840368044969470605709824242176926504342050895747525000189363579772097518417762732850678469475747564598247651754088639198992740247363641237217716579077587530699698774073177182520714705765528911667371261363943153612797682743832347579417532662167195797761452554920151143731469881971668664307729337102251021198401185031058101457735397398405188904777621935533731178975533419677736699358201155617093288607158607692341201677625930855587491725130689035746864062174668312220149218385696356875518468585297813865407198221202002227006579926208340581111904039640798797377663642044924632181503233388409265318315901160639030207949999038572484403591912229328333928574762224612799151035535952573104526486329746727953172454254900075465142363499674497947928865895202136529479332558210471176833632886661430139375733005336454071567072204642104886314592233419034130845074605245303904199855313130369300788471271852565820793335054395436476349149920910420273588168159602074050084238720330470088565337927106855824664929105428130077260623219169815264931481648895324737264516915892852511754776175423846104197722264162911918138682364114809801177853838041873352956222060175906232440493874109911682299687303172202683289215702994993777582164547195724577897652117531041037769861217578961284688815114181674180895426549658978299689140316523368135915358599944031466867528499090821209581472959519314881714983468549439425492782294036304632569055846875524866273331088830498027108697232620917028268121511922478581976558483571483276967474238239099227846296202006793480942891385001753553848602353961556783661571150460948143475191437205261671035725592085027011963729610940467632068508389571584971260191947635224486382314204024688575577006086836974663763135483135959516215973414535937174239516692719302992166712275203258543915542583254314345750023595076961827102666406165121466340236870357736179058954068779358061669334863439621557375638601429477079311017077105070471716621969296527097292488622751242562326994910097032714183674858502915651514628185918539051695936551792390160907655823934633085322444538738579732557398810404849276026198613980241483968265610594811978152483836391120681547002864907649706426617026735736877262852355443747647963686722863049561316581672002964835800016418297260782380727079545940717542530741882241256905828036695942937295740999516013429170257171556147857523504901277917341934062542293965827428092967294111370049723263798082295266172970142639727768205791060786974133544313124845006381275647809935585336547442979504955191627272763557061293898381649656613976379711339594308455641036007539503026117971746818296135704046636538291646138076703496387089719885567753342875834800010735304378681967352643991517870955872519760122112369582255882682160601945042084980982873014004757161746631363147472894350797958939936715975465885143051572270123516557238424513051665271187317963987394909419870021037588894791895164906208231916277155464878152335713771806123023975763076408528645618285527126341704057084261330756239371899117191912312754656827792577387100355154214721055708983618031456541823117145181572526670884583093158909100916328542566089709653543098115125934566576889720154038633880448939986779227626151159175603223377721728556910716255393962309702333185718885205225692855926752846260074302383459662498843220328702529595605134573134599598062239572584591850480685154631234724455782398770143203697146314740903121419640073693560504294692985554902169698953423483642113694929132898996855508793493567582588970257703448827545916819513236301878551672426523203908162793843225651655383087486145734016533182207090159648426076758090288640777350257256435444676157983116772134862990864047412212586641781826777333514921066152287062983887668290539023785289840233744271759689811910660118913859477210912318906594581138882946432190951282813846908713478950086864469132126374462363531437948607175957069044505040650115239349639057655479583171699810930112837589042284756360288183777851792764900517734534038294667714478223675824504873002468164613882736112207044586936744875065059487517646885164636334999926251974011628755636794869629495492717185377393546626598377352353858362792316462011820053018298123725626954069730475795772468312075074301124319111224025123807557306672756722450480990894820570501776768963831601732082518066149215164919192309043038640598697367428901636234537086915237411033025799521471550012586817298171599049620912977232995113699110297381382651089243631645004630228661365415776817207982590213792723005685363888272220142991250767552524141013657902811150258009477379374869344499325178803027683566701028375506966531889563442031686013727692240215000134854130665428715133468568498607716070134956356609448283398304558154679846614246327282545219980242471546554033790140251334298299484377445039783071380271837230766733011506177012117009880199810374713348375096923174027960747932676630158189142772874989858354532557834219604807882064261394011193810877781962784165887176642450346610956794478309298135917618841704302600196394245034574343294130665884281748080201991677624716060005839353570438491635313738294339266543644427192548064490460783116686973673755683885044999786994621543930869588767965231886531499199797903425638512526609794664374831434465158748412036167965609937245265407265858746846632787815564711274989842581548839634637222124558048090193977075767960007002541433517354817667228525987725409456452518776280772156409954858392185264912529319151401095053330216010276191593953317202324249767082606864525876984043502121463702200279055821422813229275148064748045703973721235572779961349129612670808394643743573839862238211400986660831191108121440822256945042350891324791693621130896075112852264737987059363565803235589638783150186659045706243872120955517530361221551923459846365591457322893283244848616172096639457924824611994433097079326687612922341247198172538285410300359962019846052191517309975319351982126861059009539224899443726907265935793540006594709268988636991015116230029746541325104695010577401030563081732179878751206094727357398241206047885154859339242378234474710185441441058121871843959690640081705548791874338255886480640343421202425682028707497076247788371631267056089632204104795876947246540575621288713734011018547536508399539531208530300881777882239827861176077981388931740415161567872923569056544832806512777036747991983108871026431066281270318930356675387713568104343174307173847138557762421928855145805333991121610288003579814180573968350577131795523299668558790725990637269998777985453907162897420931643955868172086002851417619935381781802821726603975786316712519986093717664085396533576697062588206537755596413109504783946801815539634342753904414323310838441716327045028302531603822800317604166953002062515489234183886012355308946735725425642948737154374416468805886742453297618389895203101171877658662949604385613523917867751475054307995041566615694640295101597492486695482069399011683460809619668181098733263612568374301884728134216724337743871003400632277865241020852733776206195009170666205595980915428011822380556913902592233253853747475578637657991273744549267416775122833630797382004091361216940625961011994242882087838053557630707846252079729501516309900570407222100720991917147880119428532780972403465298783121149730426630982292447764711859103770689258967716078001051090223702910087620875762283564477011239329457948128350662271683001971194597283651799128498675294952772862572774750760702634048862917324168542181660122062920367994236456646761928684821969989193179462087503448081765533877729190851541447819265623204592947072546798055467920903778183933863963187370521164530466086676956778826147368921064529385387644241937693071086130584295321212955471971704435001368655694235644457463375323838114613029069627538002815147353618006600074818230854572829351421948475624524088822381505386239467984606263156173778628400266398370129951606674665603076789745268529789714617793573369080868651874212149057643453950275875019154916827695057302968941133584412522675272693942783046690059187770102133588565572093458786329530719781222121774523289299836954374577680427805740671221140782926061549581798478633528362164301391219252457114783585879287187809606386555284586454244942420862883783447225332924571488862629065617282886036283729847702691409228504173494522948543142563457820657410095408430019302875303118306618739090888175574655212277025825969399015752986717968024473346444973977333832557867753888009628827341928713849534692015210025484202219913708341012430154171502738756005376844186080053599163548596618429876756631825073256973924308791931641222836204404633034151772204262448721034308394078791687309187852640475402627732817382444270802005923103434543292880949835421529368511693112625937865091131277116916560256527679992756956766099008888844813469564316030931426295503987566204129041118116702356701190584303034960477354437440043801009808937273087111537128888912556708757873501283275984395467153280404058904537808146947403525043579735473399115715075176059758542954264281737631903177461523146989872752069721812280015989320383220282203910899746805508604714422886618414292632018694748715351583919568590938022128548505275293862049666724287581223423208563788040047429366460741505356282062327440215273250122847561055491906369370859976554807675172288704713791214079114751467196255768596849527644975494194829826418207291216111719979723120249462106596515544725584797942746956078419926355052291944484248790017226881811594708272565611788660574668272153520930269538519097294269442121858010545751564928663751870092039242864285060776718299439274812903651792878890361606590614002583536446824956390198318496069270746621222193059225872989901799364925119484426469545012912029342066222917797119349994070043781428529555029776992747236505174726778719405833906699753172954818971893920499422093119057583410713722035648250867124164255775759862455328651420596101997509364479827831018752647626967899887432795854542260730031118562501606627499042922801801680229766618327857547865121586260163050275642622909193598406355459174296060078059249211469320879301285219363587352347604323227255868167429929897117966922608489395470942827949718659395529380924678782169576337435655411141100585006392454890168450587856925502290945551767670886221624343358208946759148025643499533537115877404442510276965500264373326063590023049202854018962457462427085218623109599096407343244440660095932581774946624093636943967420124939977796055542291153386595720321394584825489558500280733719842535629363449966041427552134841182434162908412529340075923353154161408560437236061830213887273407349303606506718021825992672894799017923211950044785732294990111681890434721886830169254479710064325617502572407574521903742962031455795931386924945970528358891223098392257610411386053558141377005364211329155736112769072822056598513456888659132579145769840241894590448707738130538028476839514051540055880508680015659961854498857371915373128532435343673940863785539828546927008802532105868528243775845558629351554975656630339676908059953173895466637363558946911074081701178589529186669071531129876171503692322741768731555090235080402459471865790960571319251683259978896897978528910617709058807949043148786014703769123507554380803855092796698864812431800869398189468769025549183348399760822571106379194560976963153955106376880178210822286141770289043247243821651211521482000162296625610161959242085737446548519177711162386324469999839356610508745089865668683420030834978136027656686881345522447746518358725722670614368349769364052597346537091289890961174552084429676328728454740525101747083947017411568966583455895128314783408362968815003255592241539019243531502695021036496623547471370463386436785140348010262093912364494272350433893827606836425538604321910820392834868820186665429269082785637345709567843347857484538978707786913889098700631039372939404639325429446716456248317705415295702600656164872482927743822036598037440053494772314139519428206121673276678271111087954646779548011813981288806298193987323334282733614388758265203957681260827086859139375754008559041738167097018874139952430510146243881864844781025295587613349540398095902370676394837249603264151451984367783246233479632235136413604540528803856607017240028289757927806138302977428124091832613558279046788392651240057514689184626413779245734764543926310462878562010383513051489122264047795539614425580089270518362626774426480181724327742436837259213449558249402830347027623683251767252162140759762582219283535874721598922390759233160835771781064109319345901557215053628941968348828958555288715851330777895870582522444425713359658580130244609307274111589041584955125717306530402486647823176137160396127293915490022049735911550268327360507200951191290254563715632013749941493870932189683766496393314854080122344850912245063953075922790584555928525398155609170908188481163347057850517936941531950030147091539176102780718954431839626888310829899344439487213029281936215653445562894554190590653439092098906276703153322323805163686802709343509248103722065783595375913188652078279003063738573209943249032704088792594972315128245445259817022456617021965823778971990791284410717404804443685042311211730248133837092726099211322784429433889545151337165171610429212149159715814768303715103096722635428775497092565812344873591575589628723681402723945903838565646259654712589829058540583503159380336558419736107199607584931475989959510167169635131358662399419099737146291765120208962031259035110805819419401048671010456272500422280003985147225196170994199395173359959937320534763648976369605846513466260726032164457366781601974013463312350930957271987237230923082167629041361934369749162402141498576831532953036976198024136578036567796705183827800566473019304642592709968019211119739666365126840840407800320316911167467063586155128367397264002125113208034946329312091956863332183422923290966255176967213395148351668441217961572662129458762645192328913931558415756112599270586672778664190941460852380911327324181983632359793869246426406136717293120208794864227786579684228236297305054083685580063539095283624440330149538039390377466210964425997439296519570254204957257983040249581239324617087388407789377433703152131527102565057988115484414993834171632168442577885386897332229524791917135945682799791439406769518623303494325238246128354506288656672689888147219118091229994443841782514318272460562090467444991767610539081048302850020769470437689875980982755979039136086979001083686924210324832975233481700076122879554639245979854881194037728872924043897076769181556744708204691523867748548943592385749182147955399309666938018028733371931992285453282173797982566004317724628397904094452409248805447972733737282376046199919220222377031608664650509010588481655894857570892860942727417414956370325987024620602937112389473951411194683216596702896097907718458615597752128754372384386460194671549292525463941447213137039856507092571157527857947057968964774063058475305167542112994424282918359674689632809086167409197216379968266413731762295244381094130849957031415900373826795752584267862457834505413542153384104895357206020830905163986662938016855449361915829445709665492237422289114060390367362079454161336431892538509293133460553821414593353819732989727350285624321023626798505285295200382798386247701184814925762853377525928129562550607319679182863021749765911528175856137893483131273794864531821234894938181934787509352764453588571415877616972412028442107242224100784460186856324379451235075365310997400329722427976875020714408998531387543874359539432566398028536189815429319400523334853677409424896693341608802302665736453770841110242642425380226614399079263731584986858063754266322749258241011360108112815132264622884655248800029322379538962779229101132310081668652171601506599684559403788558303163481407211734841284902888648663787288900394931279552332768684256204378810577153334894640726350669836963529936965657977743202654149289745317655613822287405692583224714576553612072035939481022879790999903839146113807765682749095962849336469926401481459535278781151565149114257153325123488258974083217941279081942601974068977913747080659843734925045729637767098324195991822868788746944905472323256235473063664149469981917980638496078375549616362973257384917916688446087238029852900008993996608403415355046100817873700335797736911076716753678374625247796489783060554997996843642304869165076185322108038052542763330991456704112802402517303702516307150006838820060267888648237931935426401061653743995956570260311521724418488385295776045504933392124453598362911082422622519118316750654872979264973676503880034239432447234752120463579234200761686776361892001499881015426489869779474022718281494422826846056151778824563754466404126797248536061990456017800808212057340062538921142153325110917250705796557250932737371518256353192322618003246791749270397699896467090819297050755927351424632424259878817206149949565579918069033724420243906066473497323379491824230942273839287845646929802269012383287611633978095203892185275047815896196157604266003382028188670734292213011932011923658610796550097592747343900700617321179541385375646865322259090154732022532625279950565192155208776222076910704795945339673084596026359107026659365867755609452253793200702996595567077135892938794384157246517337261944565241978355054004138950259385280000923985629858753593499245465151805721039101655571017372420198176345364324699497383492095820522523808719199849966992381743219281600312816296172195287156080568209868781466889456445536265862647448846599683919131944118445742988970379236774007622135483803769127141220530278661057443275300658037212667098352547489053644824663561352536516629395875415110413358172117867454670097491321131807683472558683921266963188360201831411808072015344943784701768972788816622462299399915160890908358176910741673408685357866731243428027354127313500223099478267126352887053655594404044569818538518412466064716897024602643757395535726496519393890110737862911216689791817512994903945977529213007720656091065615184182513345786931734729728943101346731678160041065473044259732982234874434084350723365259620435737512397661228412884214828914016631203190573177412537015678716364173994774351581019140194241975839954962613824832062376108635588407339504218031687531174239009075082618139990079237744844367882944409195347273116422511773549605803007071238177759913399566300079584913606335742754989442965358286848232114199816270203695749155190436507431829264883655581088396303907454675137301723642917724776235572075941735408358441838596317262529644295393748846747388028202442651650535986862939754447739450627538015054438905285826151832208150799649519355174179120549269484963892472983542867757362325812350892382806254121569403289657374642518866988503980895143019414139562803826373661165163774353270089617930597792444942845879876372613073400532224807742110441308097754607997884565034049958902596136182159539125523825345677893267455004712511877379833774124851684974116200895244109607710647099796670343866989438751928166106263847192337280420532538764696292238499662282671703588037450404770075672603619266702009122494176444223952442939875693346059208505940005059914490484656633612443729202820267624751880258584625151166010535504077607324605225412687783144611087352708513454497225953680606234777329084166575900196624505010231700376035350801912240150803375692881527720546899788805121833298817150981886827017350239458980732868987034843644305915835618539311936958684816258033236355028410701714229395943414707399720213231118230884487257827180899818189980744892712877629464233983627309223489163855751612469188860270321076267837850798374186540849677311596488506986727497278204120523197441797823114270157160764301814481341148188900143415591135415248009777204141009163495765407378652468255511941482840279707389180097012156848633867548909641373693523814869385564976858420252593853727307664871495130814757155289437179229848686879165007022177305837401221567983735286260051541122204537235996061126954442196776224959077417557431180696137225124499870017719712611917526950855952714348433268745077314585536158751134765020184464650072188333489812661939397650949980148642454422854788859977504570745556673263073139427808943874363570964300085189903457472522152738393013276486711094507487844425360705219800473445147636315473909993973573996080564739041439637269896582610329545719107004123483434218194387536594432540749721636381187403433854423256470959601120620759756849474537304042086996987649854312702258907396985041835350839378908320784366874341604296482810257994157361024952702990077017840537122819948242611188327120802349551451700529091674278600098884720791250069767647972281703507616010193227092743884181878666429642091175533319681642268688345591941333852742331846581043755551017712168826819484610349894376891930302784938627407960374928684199453259000042558480060516313720795912902379376347542504852412635686654733095159524109358402346235157718172490750061406480533479521164635281777262921656920626847291062609094010727720728326370394027382686461664030603666443417235350889986786695678420516692050526824174300020831846139447661944331809333178254150079173835186368543465799237759946151561694524502215745394920750290608456237375264034719567108212495837237549076607246774242353419670401220480718181141317358000634807833286269258917831821762873380797306414701350687007864425665192352406351987418585595985116286156546035200007956723989898386236246814330215340254625768743668172756466426652458139053170503855636635896214930770035740673923056914898089600488588262266190904854377372349395203023651213728872111212841192074759149193605991954346877712624853702817491881238963042016114776259628410670721450082394946068583557628434731775539022232026707214153729390620456941908518506148680415676583709456566489464759570401952461218403454012294516707286871321419798140910515662809775459397839840590211146539545502641376679665704983472716978110723835692749232511984421548247431550345937831713304513646021643537390611773003600739965603037036928096714095520680476558278107841053163979481859088374956735482359498158409184187307631975907795677706569956621451017403840135365157424685892621778526998610885365899052566528399694607468810864848314966978874548465907720756037852702718262771657973717388869416210503121850967176228525836606070802032130168979546510309757640060948032840917842835863761679488987545569992956362435318382848978452064018183552310990868192803624937886225214681576471147747958181107682835165640712195381500226125688311694277052588075304706716444917224724366602063340385233104893694842165111127243689996757988969859579641120745044918265861104108343058575555638488341337724239678961880664628206378307402718243183475299533552818485632890958642742365692521668719232277578946404305808160987880395908074757269043656643720480728966189245453350201851330261252876471530302913706235284086047367123730849267183314467663235373045451373428844432146862195639870507900083180460208338964529602012809167920410134110957049830107482124977376250700215908019811259327836238077654793635383067709873283581904407738819306723631957743383202106362871365747144095304213057812928202090848427839427313857613867639465350836137407759611493488499796940901722043746715780537962058270410379379211674354617101734048245883725081531423378136783867001793711014857803987357179728975937933336004592962590078406922218839125910488847167214257011864733890945797973661589026720866025802299643932086702925352760339086203926120125890812898184272377163336625921531001679136517280608263279017354099858809531330225048990841272584962765681167400387058153980968739866736456878165058363068961853182193782945687463125924046051431839519559798633440358521836435322556342319536322906505798061950325415849876028457701854176397780542718126141741094422039146628413838545356520269042055842571272375031038033115622554417922662067655654133753827527922763626624250148392264551867909655913682505574058728635650347900025386886871464267954592617161615778189063865117739293352167715606933756466889169604924824759464776538507346617776864569933861337102785024588137679568499601496391066681044819610631427282978017816592053842901766504778494850098090318034523905112853128740996596107217518269669167965506056820977845154737668442919250534669707655043116621062687970014079157971066943454500475806693620498364519893556884722047757734073125901275002303980863688911284672334856012567026281949322917510090795987684671627647882046511864841021994256791286608902478084995022917505266529495172142845634818013119039886819543795962094344068491837385692356688076434242218043880526658648619378804639212434994652641107106029114685510330230471684915993040889982377480804982136896095208564240011878661898164546386007196033043965740185548223624775119096175564742848911335049569934516295062971348851527467530078352515387997911343098568672466825334947480518311553940101032556321939141960491699101382100421906789940144026822348730217320353685344618687879967420239839917554752368254579911523650557404004806474561679771049848405338503664836194467792216255197044391230995913966435760696151566222143248282849748503864580186744070048758725204263805561944974112484659706326590984439028044316884960332550632128816947425330969936964443368123535635076085349961856312478522657782891804736273113512851384142257597607373231375898307098181910632406293477103008226702123142895082133765015184621719971965819470918368543444848048344250871713925910343977687598271960090854596242687586182352465361051165957789645334015700068443428078015946662330787359785697900475643690695292068398720844321326184202022403221508007048018979987816167541084145565394743162007178833038338645040747675791449134957525612696665022789388978221386296055156005933424031548529786765103695248774418251514428342148226937504335831161822286178656149367917615512103109022553571310397279786552434209071509315732055645400753192194814548689380270107695539891514475427122766278838085677399271891024344226593696438550142063248343164819400412922778261539494425081633989096719301736360779096307383068038911794271153465393230587248130326039253073365188386440563950129340213735956433275764748361712141287115586385490058339160463167089696312121868330395516167569509093225954072576408235244230844014277799855247779783224669297679191464840121525741391330126036314917882961759197208091682812075800425243396255865082577896155660180885554296687037077685964743632892673271877688141971952504656477652632022258284358079502087373774771165424987219429849599954397072052666804267733094629366645078500873278709654118531912484722916357443679522331041997682752412331840020151457804190330099611525010639296319001009586231950640206343301462419116652803605629354529028095305770917024860791641099255252647791071699821274763599619514166216874535116851496306137561472206682501657429580551519138243703794061510200966326563782412020936825112381436034024008317098494696229537839229259429416488458744090371921418488374038930591341262484049782059625838117418134702551700976024591655347496838762138958190342390589976377521154692667341016337984711120987577349251907101551464923265484885520882160521603718686744590806187712522339239656373063614674289451317795434578690050700184142935979120178854421788940523731558237746507736795736134709657077084837106248872282872685542910117807212459176640316401795160857996410772761929584070269002772615728361808487495061504390397370435620400636416366972471648384422386998627982389375676289498999015414024887200059592439017760550709586428065634880291777615921849189161741798455981756457009554524773789098937090370330634584063565801543034987662666147055172790777104695846418140883446367381368104138865327092283548713544743932820464790447777999875537352800498102934483247850508474222584371172741619902660127359404352643600898239973140061095025533867775061581492915484765960953113615281552453010639090628577846809718922836330682986877478313375960274382937398781616581249357660983907280595663787536505821600389289548906379126740355912300198271517320628838719965871656576618633902428200568030296575876699144769308873141484756102459106272263293713618254074470895965772645046824459657206178159420311727536306585933423099214874070982372444973755996087083240343728531436313282344072026046771346016131352321256574922859674266926497388079851417606837075990829310176481342311430683169978447809359118021368741199513847495518278550397192733953586333956424581020321257776103260005111833363837055886916389269958212955594111847786070817283685148652130955662526582080544299099077788235171072125051171725806313135949287171913422549253048877603432212620728237296306993801820926530389939336435879264331703067214353627149466943187265670400908601827373446115873809693921232945782153044759547410721687914374408981398226164615408385443728890966242808293690837556559602319712947883753789930999688522433476053115571655721015213086855160325411709812926493977027899390567059373580498460144725829847048113546324130700097289606627795036236908896044224017277466164450524070840922639187815393335205830857749320232703809368523595836438777157243769043518056911739193726374919478691410402843664103577384122987634003763736609629755118804789922268954933042106687203366786220137186237360464731016827880806646778532398914322465649818253365081137364196676386389623070919537749827547452638073805053533856237147924474699951586557805754966133298500367046172334265131929915884457535922390203441214095714757854002558279008543531841466690000830003546936695935497537708416958866167116300133078203603472388794835967792959555802446073838662745845340257723514171567774943583815982720957670179223558403314962591497531339678870910842520548865925558331569215667253945418473605003713916974139328020373910400837815574200801193437037679234688973905518599277090613243817636053857559011996255801200644491946115073382002874628018889006708034602208664484885357274458539919208400344466675728071086073422314206585806188049451055645517580945989375753753831474029424957779234105816608487775805017735023216997851127893350645500940182909706416722810401395811721724512502329716834933105004817287658069154096059150937116623313627035586621638519707450151129037476107643204770795720000697223944421808505762443466142167038437052743125313627636116623019473161115685905169975223499744178256669594971914634306454939359856685740836096194629216202363242008036405710192399864401234667042717174335456470770099290589840401836979894638315683780408857187211264516105045275565139176785913790005918567374936308800409151922412223225804910189927581467099008858627590229680373106579302595145782450447826320000563555683306231856303498309853885185341855679470689091204793730160148330391482282873732365445841183598477147149219805887950929275759941520661569093763976514941279495769940374274971431728933553344422456408975021887497674874829985078450113581679541012016813072605687648466981743362399028046558899801885010773102635574739649821122983625575463004493716780016174296509021246870315168637716378844338286877098544651540417518694391334731108577387133293569404741642454569820254209642900345497653490604117337340193300121472792078336312929902481620358229691037528883781731052579289835654282867794857657128428430966636458746077915228031102220507554052773560243403020265338791796977785086633311266891904315681026033250493722789432672570372603973251286259684965206913344157320543661173103300573784650193592518476433046540297676979304954543027941231162696330332620344757079082148070113784078567417461751780233036439668166239587850599842505410797785544139204198474664394737664718987006899154153702069381587207802706084987016583317246218400066565232668469475176857518663143729241647648009142224677907387737538071545057017421006591786780778805209082196452581731277599942124488760391807324848035059071228713132613384932607523302377827732046178145283110256556785512532758473032087331391037583660600530244303438054717598527000282969963506401438638792745582133339956259076618141031930909154287089506977700304024751248608756878372695512782847206377949786692073948626209889397529339370095003259041218117829482760713263870218043984394355605738298265223751180976329802321509156904134200417947033024249181949136128695206591518650700157479748640230545798566890190221536613991434679795865639099003235036672040103489325686246459439288114261847304299445167520130076071108583255796697175174758344082318698356040935275597777526876646918637849482316374546297946807206801631909937693017297123513274582472198175072516935187617635200219057230426300999273749310121562876646912691043102041606775443433673846370215919596236522276161232626347923194883532502997564792579707016010317077232219620420566424214569577799805953129042787879419639110265406514695357422570106375313684366397316606613987763660395504884994894409875231501882546841273190003233762537933804778780108071506462664220376414105806188614414850817594167892297103787190975645102459555156054208351061462165331037965712232469528833526997945866753532823205566690378233002924904340899839075619753738629822153764390779412656376150646021266712099831260536117101023873622315123483865693157648624397962495537081081504912240638020659430670252852831581792902725368425013921433377797732077919286690451052737866762842745957997015238453984166553471969649165269656329595708170403650810570334840287087168527624877846437662946748299308324033733260647040976035479350218470863953634961349027696327771096177978173720881531101472025633199584173667960499419213682716397563030284834132711521278523901944760757230097469593526996379907149297951432071189667731978413134912944278097578789197149040327861093377219423725827111696782460352671411043020671509860237208203861655135057494344247883590516901050581523229475639172325472885085422996304391207122733509817828075467694699720929383858339615346029572577504824854937069575175710187518516346309791933567862700557032487636477577042912516527491600595158435623144222125471768735365219976263723619456960471583916245171723170774670478598395829122082253673033554317574279297548301125218852999481060135207823345173664983397320662602547847873654473057805117623055994274196792136093552132261949092229690239820198772601443315040621251374855167206887642323422678837520347857368222563546394342129930996490279509250494598620402902156659033502907328147156253896638728747673807637024312072355346333417740912466537108893369224346871791067165722174964114843688792640170074186519041455182568969363531737076765940087627361912953326887260499091743115870720791197309185297632696589396195831256861390206084438072442764069492238297783460560710991811814551212471189476199050355740781233088344127634539946710770302968159419870091055798546606545023256451009941330990722348550685934009879914448374300788299183914704587863648722063410423918116201613352658920212054303112822547644597936549444915943010560655589855550911802357643655061985228640667110775059954699370080595994545683718449218117536720539157286359293084548046375343671354072635965362025825996295137273584647995006183922540936437887779648233559211666723031935322391474016181986538465675390423870124651557184746115314180718060198453790256666193571320781774043311764701158213333244164146497300617405506697012896598112986453929174309451177532600141368657595953620764182814074749527208639756843981709768977013585271319089539010013795612327537592654097022329014076599653796641142012064001948783271075663202751691994086278008223292715961549418670660055215893811268797833458235690474146563810251843444900025550804992011341830221134010704734333986458267472914214060130394282820508562757156656744916939277265835921929181238819437650312142831985466253200140688257633958316745814826335952014218943910914782573012500986320014213066073413440240905167546743142460583748270572001693863151955283070599908659257533235478930453463035992054209215413333817365322469265615894311945629315617083340104361404399638227189196177641529027472874510368824679154022634514481414422394325138560015206858443533046870791378658256746988873826378120709676358834288781469056442178700603771607802105301511919417770256696258915433898541520734759276257025139560871810553429010560974264569626353478865406121262368818188950358743980770564311626303326843551319252762359721397177998234235400207911923023575913473118048467443174958489523862250260638811383109799826799658693554015348462374372482708936458876835485392894898458443456310906390191730232721823478304294128825365445903322081755273604211623302844235270551303306669034628476840046563897183889997012450061689040050052922982405460237266486807165418338075013608194018550596861174425985168351938243392894416033706096884321680471767530529189941258990341818443933315203033458434955468192894493336726236351387276318828019647547367292147162373839074782197476130263789501566641822091458897250859351316795981792935225766460379357536821070424994940372235594789002037140800193264979428192878586364358649832786354954604180775450681418646182570094121051436790908266124712102766273284300985916058501800915314598120629137708031198902610161074808937677029749540950009379991129259657342753188545387105288122462820756810426767637416572336856646536261347152532651116555053099730773298947169127295971653399724826550658616681584532641403546897324858648182335050422679854745475049411077262227185492615312364178951013182183783346805810756785132881547943797851522610382108869904761846723391205030741029631413645774892092008634202223553287712413035408920648128650752356659010865104369020573403648252455053328028470190130323906334635144393651360395520639912398714678046912661752069564926146784366171138194104757704524110736462911488394214037466889518993662289393713705403394595609990806490683831993913510223779626365251082597869561306612733284008492253408159878516405116127119077209921389422595137707901382296155409604855426530005089952036415893233848676124987584069800369622784102885631727975550052432607323907595187398488860991150699901116017505404807508709410299298879752823051570787706357512433217083031104173382529154108842335333912010295965066789453981697475418018314171837941471077173802070237126134353713323905949129985822251397182252034528053938283101971264815731582412867811303084288823646541764184950448737715651795896052452034723723194869983775276247495995627392543434433398993298198774165591108349979681282023462128368900756024191661019046777116639497712232600138705373331641728099662334876014705039573442300885439920448828582232895216368432583052790160375450187367569709055923018679156511138260170280464296996160669976174633671724952622674472128285047283419383935508724303759762667199578794810738799933578536674534776237889458088288147279847433524423771792882744100299077534049422227122919537860556966845677276615762572996985229136260652465438617408565587541105704372607387593231448327436627144001668769415750035128146313083493157076354402134847624978937086116931817039935018690116905493743098611037185586648305285223854898923357093528941219532449230534169873125723778723973132051862392629245758230906490338091907203880366249888300400572917378513014669449873259204713903687797719238382751292046958343402297042502662308148521872437680227295674278247664809776041265843868910558715943222008136181910551774387010825589493314145218345129242808053264411368940983672709430814761531238348617881327218417682590510438651064295594280637351994053328114868614266668826346819735890206768011854961259576641820434288302633394956204959355150199001939399081615727741196809949847914524242646637589888491282096712671982464830105039245510788294086284831563735257986428476290202866227457095952628702594218976667117060747994487868980726354634574705651339846857500061398252236302254947681474388777394371829247395110958772781515504408167556091723488773358417244835349276192498639341887961321668781547991915675328264269287280277359472973001143488456120993303652159384587649865876609294746118711851006444945534700128394665192980558246378081208026703852813972492879288622286855023349944243683953455493001968190629165742989811244527976952319643769031134794944462147788167534028887575191091831062500261504545500274265109465103925907857836216984067547618209152249452669132959750814000141474404666332861009214130559476959332570252077452826449143889715493653805347878080805722866556184739359438281772492323843077028837418370634528569415528547014167969029967219643709220756630281856471426318473443355268273906768738206673934668824632517571403958271045292283573253539829169999464951846382913861359544475844635928113675123322833972719994861684587277648450740649880495681840625563423546607990014839075219326406049685026635111682391336082515457204625570801540582181528532836323034573636378459719750523992287586807481753824833948883655783999440119834827597172311043151227837855553395787991400266285296012178137768999446744594957809485532774790667178581781755542542173497276327586096544142415892901964874626001020544029398911345463041752611912009968483796144161122309143290546270728280334841867994012927852505744676376901011178713747888614374548041530993433687347506520213497754306008315373851999351130272396776823286625267864784517083642802291570699396577362023932185496684645480262415887228325119454318810846250170784828334098089294290844319459250509425308829971414084752222501354637417161749176899565888223331629970771690845417846902463373573100490309657235057410713724454349424111606222297043578095537004965119936966938657255734153106555324958312223923565751124952869609535474518763000799712244167584920431992653961892546488657339747447934055188401898898289681489600771164485876949346745579678863632350252399058652659397678818405265142130017823401437231818474261456871695268239506385486052195362591996005954031006013298415141894635928984783171566423668171449838729232977569818511544477781279409560122965170249504577525157107032564499156049931002965221176721358539233106109577607344361949111494026509567897764529663087396571524807169022982326240504746119625416374869013337186324136699850827147980861259122889914650533961544736847853904704537669876850710814457519666606373997940599523481529047461038787035969590869112495739843273640372554368037944847609494923641602819681423108086943127458146672229642852815485667362191781342379012133386612140645342925221526788330912379716663773574055500363362493570896927000388548264714638127460684719608812184951243975658540955661671417797372246270003719153640507593866872269996278796564900453165463309336421071851611594238232405334759129709540190222164374871524314732087064282294084615788778310596542708840633369834301767398740032575407893317340052250476758868560681572222029565002828755651289784041581987112290534510764518454724331093870428833980635822836557880159951228619965288819319223006857840319265800650873371887246381841444873678906063588307285899982685656968230241748588439961453794355825442645838273223649976250562898911674013974145614672713293878358416666378033961858431744072848927481426891660245895382550959212982916819526233895643904624427675820268460373210675078637908709970292353665850430703863930163038671686076333528849816665983196572213660677637012772689297389379096625639337995152741071421577380706829544617694857304653430478229972350707786639651388473887677205892280561926717797504613002300774417677033145165974857194636802868877686862031342058715923993090199322699035060733527686030879565957729908503546366788986370794615879329236616029719562295691485695658608724451956253168939278680161061094940949138007837694213039453780574154009789990347345981125246956021321439677268817777923432800100932281079530063628032072983094424885542812137059040337003072944072584136608678405947791876159131233695477363770174600272452172023890244193883811878549065739962407396260566694440497369945541995948605537910531147289116268418030546310597450260305141419298910503129966182808188052311109535605314900238500347285409231255279422295599996970870056056020832040799272106058711984317959662463752171599797379609830395067200154794828177606195181119582953249217156429775051711005101917042456710453181997029569138607579827743164480932402329485757452618541193980795375124863539114095698808276141680633355729385682142797880283769823067896726999486950364624260445789053623309813342543795300822875092899740520311644279682929046722122040807078654227794953736646118688729550448717326848565007951821146170044244860651671867652690874100175110074817336177846813186409666475978336303714575339857060180419329287370981963279698606573438775676273064262241227455733100689753052733714900073116570537864064751208623574288669749901668514649737123494688676232531035627922317033786358286934019458744920620737781635115774820593791536466182953056292062106257047198014499729085330374901386723041267141931316141055064910143663291446178397265835756552933087967191177409325264113150465621904899551605572319296300287704132338489371836411200511115255507987428077051926422123724542105390025619448882325613805542101467060285527478485974355644895311583534008020188001626163527910168236114555493387644604966616930704186624425375721716380153624048676449349673120834748882325352219069082001653672520628995946010224488775909846984227200285999875520454832538169960274433746341161857531170008144900318580412193373937425581717009949034774249370107074308353939419311588352512288726440538788612457444442822750021580543240144678845521028339821175940797875623375645451925154415040598862132315548127303886323919494870377142001531310537357599480824786365488317917655113778238629436434873855991937542447464368905287783391229277769603694165466306694496686391324799578860617532276619453789298969257647284229181332285355756685579344816564713734589751849677456482723937291234141620168316711934424919057833051030535861167840076221008009183026968617577669260033575841650561017750090942143552691157273834612807656975723155906829114134626522905964458102536900414560700955413125931611950492272406873753012189865383536227927336014606650890271632788546511056171724793305434090538177334741068860607791508758497930754509677186611180869868272277811244770555226196387723071662334136203500049434237466919824833253514205622860656617551823347064024281312506197724027615937291521232754570768316083851342583401248329082461228270828584788072277914449865810199495581783795548863447871025344855007906667337254880620576287016968279344792069423136899554774238295209487770139941316703889875557897958516539324071647508670056354967430745021294674989337217145809640600536570801328874668614273109869306131636878056213471477221535818899178184978569472614334178568046163234372217400628380029427173749224637744068830388575616990022662612668985082376482819230787779075615679391995588024088154073315750158678353542794639289459594632909203604816035234956636943620119116769993579806772672137988218272888711403199959742501486445506358284729164787063198171440118776618591369797937683850748732696130937136209128755931433744315473239860590453061595965746428312572726399228930955980796171141577707944891100217764508384359626780874249894197671755529870182909793848474241040062967481194777678614617223777794368539318780248537852058557887593574660709621017180876984800115024413416871937870950659467897557382644251010049725292109935551284867873039312071591764401508907476071954377336708593488688553711239684599117148582854962188371317231438920926285638091567665694987168617820805570693682477832829901389200220451949017407179127588632967775555634888832827525515086535515508938644738171447601424370667027974262236375848805149811931152064997971956274957537955460109096092856458915545190615461019174974229825600255301855721113342016660558468959439550515167653939101069898741678312313778473332110558605062717944524861062771788222205273477016801903740060125954590179757071001235655640277312110599705051839043997031577675762721817598020715858430782463735772182308656342594772799900493177574645356926932680196748350315651568032269149886205202106099855574607026013871161053465176520514619135398921580922726405112332351529354506595689159709709491994325675579738226484184049658298896061138718809984666985379780593252520620241474754598345290718556392672610770178279413635479223721249279855953251223847686502311608818814035796558784319423757363065219609590341747729217761560958897410136209851512070671432588968305234660889160699713050609008286479955709366288284996104962373135855638857729429744370588497429794799461175731971075922005067896434431945371835239613929987432355540290950243540608487789098130078605439676968579223654036241984039456224819591316617717009996020358713363740053562849175025806222572603467727383811775768742756552525033681066376893246183268016295781055670950331008270757193937855431985567890149212741640499992331387379138816007024745095341859356980030519235966973685429068524306281063551662086945510999960789157974560655915033030228287960124720485307117265983859062923466630681324702108039265159307285395174808681377642158931854966038831515556514060557229365084322030982276118040177583899398264616295372171092528248464319149919056708240376021724707235321928348596262417265029648319759906625999667458989587269332963340010709741371884894392888903319057407487482565230096050706772038023733921823160152555702185230473494267388853768880178062350860717525072550135530553488335369865971578940969259866921594759789960882197902063197351874541556731217506136161971258065091181270871771370353461482416611786496359934253451600902720780651330896277115671410443263381139032687395697803339812318897266676502959341022326488909380091524265205854788926624584910042097288008057884859552043737155228850384723090428406620548412477622306651213927689804558911266588576733721347397810346877503577861862129272242122679132886149580879165215815382577022182596448683636102999246352149083058958264252956419862032905987254209732595657090401087009041933103284161048412184401906450316601301327298843532475738150755906353127426561947457736687739859716003024895567266053552560684161201651899348923993085063479934090567700776879852064604962770465630632368430152273253706690566138842098284165642691745663776785048011296176856540178824661089981872117199958237790735838457094435383457346578646029104851111553543866575864129420021890753297702352069424556963156698719934774400931608139774662358475170917357575912300112936894566773036468174709076860022574097851120389834724059576966084240529323500393973700549027915136482921567726624816811602847025333341200278835995564502929600826506527415044891604644605651452948309575262477952228933999744104866075939267801657976179021533676681679537468933017676318578371945088722782946565009688210042020244432714246065832662870100613445058624425800201255911036547202740687615266969501498487893206279153960437279198083870796428133977082806574458396441474937864786799951384497707407709384824534602152857959866664125360123545190226091735700027758351399787955647245750508224175084530240310683644189219091297909332323710588051632621839042744414538039316981045623169721055324104755968516044409306463469236962963223424590835299927471919320221411693486867100942172102922040455518947185932956430761076047678528399963991344657092417851892344194948930327179885941926656339884025422697194241577542828465062137240062119524598671199862636535464758084353192442761632144216381432901064439673691313118004843318972018975313916586347710047616149369759813827716492330209855763049863170858311277464158383482014605877045148353319238059749382471299937394130614127354154630275374625135069675140240760523557095129598332144699956993530193591980670420528866439369037530247164066714144247987730900988264400530611105780995947180601426606986765877936880453733531953750590840801203549890837555561044210605146721905995222772507664537149922404727455137706726402919317973270379589221067325099012805599804300715428441571683890311331709290141587007290851799911394884432526263627654130760732808216060161612086540660478428307179065882815470989341800029256118884847631005181970637163751146368228700939355159846940223428063287703735332187067492005825192663672137329701004286657070881230282782256760469483549835987878685282083365278993536248073119784923531508400595084210897243664732389316578832894399811538745748216357145658927048598496545687778927369257718178897894820723775447160358203104452710152043958155479469473951520811990401660917909933071218659523640131542859313360969345701533686662426685435991532064738239005475464266042901708748588515171266976800498172678285397764124399472704735586343780920083214760628830879809209948618912151262128699066103188200962342688523896381903054636678599094614350846099735523327852042020570939044827057851427811257329772110938857222472813833702642655507509086562951584421877832745984491276649551956637261450654398403347155978004530863112266675520845377158538262842699188701036928759675756659995597935047203027791769710313522310946154025113039047151549637205433501465245240641435728172936550861363502163655835769786444653174678214753202351662954486394813874074254380196097635664237370309282167191586466116621087688675821445104387397440446692145680669326392090054438503048649545080665821103166715431701671386464207516129246145413658537122075990913302937709228586677430004356884304373485449808541024372089623391733996773226827215739536527036394926969056239164755861827392999322380324843713507837283439579883337876649305317590756029301731877075553428239410154509358965236088175251942057152710831639774317097545657677677234419105145176948497361913368098269024144296414864446968368114739193802463568820131578220721598898114119673141035609145222064050641767343059285287574774188271854611288882468996594730310699362229275650895959228769433076693994236786751353434493456657415559561153056971302764533270869326184150770012075302104642679963007115985172430647354628941500040939483404567988764329925197249645378488193783741759859378763089383208596206186488012961822545496040133342534797148748886581929219208983721270570023911010023059959612393619469727596819331005421024712499662398240527213749010828457006698493640028011084364133264603210981854240093703223778362663107683928129707250884601838558951528513921530076699595535995758656396197973957258903634659520977658463945902237853466460015639310136661125748368787802508788872070024242450674751091988953780553584496872359955311521611329426233462949321628083417511183495664352109427162753120948503712726360958750328398061876467844258884474506820945587782250391088074238896825292737110630454245703198810809710994487258997413747649869394772259900116298404318224398325214783381109242006623940660387998337952886325598128843067744777440545050124873828112750262135180497961345330864998806075866559521792481174955593495011820593423651099738437254288887253451955629646707730149095595674260628649133675900287112487223280277439311588878446460894303339368466467575083178992330394953966297809393381332418771256870986007223403739672488067089634324193015479876707875097160821659877237366375283879971037627016194126908747196071680681719316920682026971406900114463247097397539448961648471575210694658199794119504049457595936433422888350020009925663785134464137171005662692033514232256805521477276873671880346682134793673566956270911889726969214210911445967070966799662368814551711614065162137941635929684526366668975975057524813189402238488032668819826581898566392885848812774500298842499506552242851775960392734805162630551175256451306173028101063035572974399557856385435939319985905239189827095025960248591313940667271915397765984871662897478948203137126535342212497455820421247975248432774267712536471299944024173537226623631152091617229313238035713288572368533138094898531405800216216152801954540060795225714860164662698828757000379194408687479637404211753712440362561367601854731652435615345059733747391069547553149533743943264434154632152842360691273568397017952756259590591239394100571860851922708785953498691179855675661258617398466856567470081018471563405476157992763773045550269203355189758274272176153127535736981516517096917941982644831683017947908069201571465889130065719868539541068631152310334920550054947948797371456338846822082063770241244417015086086306874846993557720943520681276096106677329899890792708266725651682994759820706970970675188052878961744090725728277786871568080669067069094837170164493242249141434987440140792221757653376212971205344686885388022848410625605145081927330231084429022054874763893963985890028017335270663635238067485299302521658449321478352239389259247676741223947860767240350454399003596109129040363821131766741149800375621257689518775719581095155862591060266044775437067842235490629978223686975751293664986256371127427298599298712534505904895693333127224575804683712989434540151739143311380004394432202827485219181170224452884567769464811277798427090750812583047238893427590753361735678008143545017790214099534022219020931509600749552581927431183450002105796788640075699324535525690472698043385892246971600955680924281120423207329988825337251777681758866752228697647516100522640766455819746427979722310674201075119239334809655324528485179966276356703668300869689585573671301474495499393706330279841356149388628051446581377687345119921066620203736675564286818620229792098802913577568043964568522081044332812737114731935462887806098885089935410472158783790172509989423811662461048127503189217438495229154673410176690274075856992680490881444762179172905896087673984242412799187952250536269819012560091371712001320217031190628006888135997030468094668101515733741297775443062806675463824520173622367221489242841687919627053345925658955186377611288315744905619895431841560597607416958336441122762052135033947703676328511396569958362897083697460966304377625472813577236838342520487126727414652144469070822072659242474883431990925537592268363947807258338945174279053490971923700670926733692589958579950214568530413332602287996951197714686631710789337135853960768731781613895309457876986697186398734630067848268343170204415816225944823157459456667853740259638092369392679058665425344586564982806997550473625537079203273682535568999174757027725634564896642552208917312142483046674880262508874799377635477206242212677814425266773964304594620564707602673465963113283430919778255910297255357737096495073186887678172784658960889467091112796263741866657961588231242285290105316829593748574552714337807043685329880046930206393879361489163485582964597016271250050068915282564588321666817996650650700639435321246375364705388298346601166931680015774616204336329055685052460351039178719059897847389568908296163166766063669903373449896939100013196719909356068049563336679961294525846960212835405568925554905504783031288492326852760104608640272160554247516059168271513543910077986704780695519354885187150372452973305661400911091883133230690380889014762225542550233642661573270190433744975001385356605978909634752977671758440048846934339093053046114765502375056265430258236357264557611998382854909392764455232949774560707897459587939964710491671786454905556884204746957505560148128769748256568615065816190679251654488385022951302752468276092389699735401152563848641383287896648430038529666671524394142860175588563669994556326611641304178549295387286309424134600466821710086689217151967098980131694371723333601021853228957195379865103366907874430557752049256175729432695321525832767734041955322189201649429122460325278062747678256794934524036286009704377037323524169349168085828748102672767161811200312538640087896187410094543497035065987104311559416404483717069336248385265867592621150574146530159853728845004011598746675186424847862930599545039710709471768779220634851103342961471820578894987771330545089419959962789112319581537869242429643959368676060422203636532017006459424988345331639560680614753351115257971216636052469156346488786880118293085549395206220410272021287503930299764898453356515784413164971820937353125758792266355953393332795542960863706927622596391158320959524559587540025200768269218114266773793935247612167643280443480294003715177848174177720653750501085090425965941389686372066744590152732703678654141415208993303845294960310392633689610537188620551704034986337010175957243903073544190929299703637377171457566356942550188831068095085272757715148940780786301356829576018681855216403921371146661328770475981811873091972036981422461355030888591922532923400704603925864605484404995368820050110688650636789591798836309773532980989167504254868135758306921472589215984458132069702440356040398885428556085030440534131587111787330981042557117002994678313809172155919277924493193728228194974651661437865404845545441113270556415956360420926746417574088090758197263339258754505974667810150039211824887897556526202157446705908867012298814921775542302488607951898170360357683477881923979790560596633041957430937737046482718193513981702614716285479942409138354645661978562783984979531124049629682093137482936584213807848879507337915832995011469706084943795151953710614609228509889838687150450520988284560577768617670118788897819676956203181515450913667082671721995866759061631934594601042125215899066834316957532705467196314673193546251938866748990267820774238905041492692020318467037325828899448366551189463452948263277507205308307084622398668857146864609052754458510285322009554731803013785536735425933597150454670377400719240471374415992588638386158218133326486034768036115542630370262502510488374404740043120437023415786488756091822575062111062293384134161258172259864916251149210807051380490160455532644973022560755448951375303764907345952530006941169372469894231397174957078640219846766208896203339701277112607054700898503970920472523567667001861888825954145701695965699695188187602614908310096795735118041769800845653049227388413022830205516221171431821530178470556749314807541272082807430270810867314322038344707442495820308229058288084036931677110796558969088076750126617681573841797693966817110495881927006312442067278284834850196426171697335760675537080818632953344355150936593228173938982696467056205345589173719558639709370502337507961919579087467919882347625413863596192154486689550690999470953776230871307003762161881840071368921055354841995061521202895740817500334307810524883425357561449343888254254153415358946387697935955516929422114156459247681064374170860482400012254928106058753181696159957104231012849159011075778555006139166168199629547057858339944393437727400217099019368567267933984382886959624399138600116445441951254386692307818019763572778861476828453243018168263561815596215037679733303083585959908355814536750097109180094108311348842507582218742546140858420631034583386206155953061245495041380060717202934233764145343943171915373013778718859062720056894331802400397726018991911765333475615862639696571150771618210517107597011253643218453796517567644908287544383973150365573226244101744356969731531564297133676390788345434489211205028818954122854466191460903650895430440285235850235975763678721753870778823674250839822507437069870012149229150783880404834075410231656886898794749670764153346919075978987540947197099938892304049425721510150245012240959171468855893349234574014053419094527022150230627075248448554376900002080266996119369888159790446975964969370401503019702117745614518029476443291599142531354069274874903528882277329491015548714858098641666552406597508026914725694909039094626754241956466540986838055630925795507848845858942400863314386704761641678875814304075977063367898861900207253101804115495520941796012114719774168565522474908741334397345022454228468632825668300536990407533415019414669249734760669804884604065377369974096111272081782390130164052312844412820352789526952921785814821064798164414790936468320958412305062100393352442228621242385930822231459720448464308943320003204869269214376580569631296395075887023250265596323100838769049929522323791076635173967054796421660891972172350705460409776300685946451861531266681516198677792384049020913856151299796554803889895110507802854959022747750061828253111990808808811561540303618729312804490960002415981474740726607967871066551606483266177974347964485174310359972342323021194812070863784117572414273122224730116559246579754934766982845806181257780636365241290830335918977591871428942492226801676794362999172141810237750317329130021213485979431879103139936351140498892255774559560859561100879756264987616857728104130494633295079514006566291753083853870751317352307662018403433764585188117418752995184730225580417745180654031838441479914608785933307670775496969115243735059128703998807232694710581315859211721355700528358411416117916052658453517432882299811426704862933081380181937368813817783478521447373520418370656397581175779876749184613947860470254255061731986539490305229871012871205353799286947419015782161716467999740484609730128992579023808478745528282006394374816190240306357407187551283299390069375453852081469323273799482605345843010583206848267978565250555636638089823609802763249985451388005893790652372804588649752996592990222970436025652814646732784956458186024485119703269979958574198270686427171821743481455541565659807710515285960542378098234747612117292785172725357357375048928574958356376956837981792759770023003045708746717221924991038808660446215987881870871949863608878744067331421828204896581079776265992238940430916996180181873196314723061147187414904314947225767542007666800480136616162815393341096541018437740973119907638139397439758457020517800882769458117852586549594815870895773930141284770935811969504952072025920583959926285433420520636264118612284876015977070631591957317047242347969562082687359468350902961013014254570880333210572010858485348116810746283454481898535433761375970762862230973949199991630754455042168002218667131516946931429884685132903811632365480183169901734285479527198511100937586675059326338530452481452135667919194630131777042429088092495646316218919708405597268100020111500237802681487595673092545422144146785786157026300216093289700956203483349261364907955846060096640208813767637989024069896855573622469271234913652915878056660226837026878825327094327110680105030911152777322086785484670845877677029820441355155722789218143988511252540178455593029733123881383897504234889214085274810067055544904472525519998442812125653411983863797209766223411208205953695523895212919804442039623013152090349001026616521666651119176255162196114035384893115560246127770169071721448927568897412870439220691825626536315938681118990287498302753998664399432749809622314420995205080219635683305143098415252954046245210562688761268583755831148391735069354662180797765970213654745378211247407556903128144153465480630151309672519887311158022339547507646371836539454183206026455132911798584550726501624543316984543432188447785347385552751182469819653534898401958926704840242323779227612234178371076185561011349804077481692561677095927033655910830926751211268997340280499505969751027140311477554227791650879382800385271699638777519106614982780474576082283312570628128569289510203134078806343212674368446298218669657083142264375857864763773765521699393840875537434454051266906163198287515890234888537073222266081488880132257114876332533374696585656681036076331022880164821717811465551358283227095045841756452147891810088320788798789034419207122620155190476873555388291159904230744020915028748336406563228900914192263255322807655046027978771410984663825727564239596442639321114177553131628090807365905429659172229420091455220972452511428135418409579025903176540051132890551791403107584431407958496544810592651525099817285259109690696999838412528424223301995497733522796963589884053128224063946298259519022241749398038944694022267625534115719186982975287165821648520964657914387627197562192222726637346173065803935266858041060717228300083580127469791555596416473947783455413636912939848018733827177518961507862761428519627124852109192148069206489644422738738405262917472526187951704494826149662572896947452212020685191316341200863581366450085697290127246087548159139011297563036605175470469303900049693141107156499204156035115999675386368849641458773288409553752832611123587828031422527598645016478146281511715086076745202854056022120240771332047851137291163880941603802779660875478787143889139105248605821670681341006277939209916627752009266573287684525844554809120039105280050889287800982222899819466212496162796928899596535823182439245753647596949913074551773920309350074988332143980114681038239024024089687507977094550216124571436053484633734187144330464213887283816319015012921921150260184531217173125365633921491762261545559414491746307214350332193778053757317316070041020049613407067056124543838118098771226776435292590165901772353668802970491507791907005786101722970328988322594051045974954001766090112714294375855034627827166149436469873877959839486844047652539040710441479216309851901821212284264504232726375497706980416632128586822738175356230116975886715237366024144582262144157984184626610069712346772850977758559748805795918356520757640675594604957371855730634387720096618906628819775880376078751044700030545090919081808042851588736736220024461013625068746660121463129601351549159541831802118766157623404320697966008506870245453313971423844714311508783976785201898043843734567491722885281373218964127899466408053024481898533048682033208069906017169885702206161017688146914783109596232547301488478652055405833062873823793906220035219925997871997695315179419937521679188714970759449674713738037589425149639439763615443887532211791520325104658328669748170860812283659390060150585254445694364616889588466661577414726654360745608381021643603364526968612509486178813033074949938957914813621279004191696805183549167921533602033588037423430786736389421015812195802297857888206214836287395377872561407889231193327490812698400504024657347772756669461533110269224822088206156049197523195295634203857852410223949712812985707023942823369710897997179743635065044289508552302074997806637948845962120038337866802954825160230825863092392538057282906577659328451616203092070479751910812947951613901767408572795790475922733546315290523649678468336942972370626328197194430670607213946739113030391176846373826041063821441801085523860678644766862587527622487509222796475648162122948714616469136112103282980643472440824934929439244240775576948950034471630102979724765590931791665726912786145273651102050740727336719716581223377963550647571869835971576115315723840524304034384395837197592434201909836027329159313362651904361055533039282233702492345421197637940999957029049231811734764349384114981308540257046739947649260259424214168766385332590882158347804567836869888958670206673629534884918974838606159327589240349337957995711816470979376873619519665762283446546310189323510992123024347609614418937949375575491679589421332280101348199991497051134355487697652266812196475877897777846188148941193909030114191440853489428073174513361321149320623155712896336266501402973172331753879342354385019658432649554158774642286500889356873816269372226751886637257547223807104962300250998568044457097549009805850784808249259862146052291319302881679161630930086012632534435347265728968346050385801500880642326247951893578957191869141631261696474997694603382935502518908298932759076425356441750313218271157686239035674694325099334838819910160431472909046875117923022123789658722308174236981498325923630363527729948443629568621439476855566672008454432857480969799156038240675909515401233634221683023089381637453196794598376515552467031018834684973183646073894700664093549248487426026416395995590060442791323152912382600713790011127886288661532586793212298219898442860994485821784150150246265783846363920843054794605160858445195896963659435623473005704645201949265526694573133001517692742497057200171427581677334559939511656332784564893683065021587277413111397315006339987347021225615057879455320755997359850501050944077071758951713083778345748756821349169330790137572923520567560026976680483491985661903808191038900508635250612403161346664114539295662487212003696934128389596504129950277633177715721100426461576433149222967245784995623347411737208000369506669858070390696617058271360369866918464270220208918043984102967500801953540054145226073905377293489172011382418736284458617427894837045871400913337300906347740387552018504671561900675609539233064850950682916713653715508477682701644853288618439245784456746311579982081309105220161385725730450726208738441603860468416754352421684421496416262396981682037886610482772873224775820652173390959020334922117792401014073265249699788714129327847499675706115565946579725305073555716115759337172991244529067802289619070556392961548623326034899697996439842429722832145373349757911678118041800256430774747048993306419763106919258336612368989971867031239243734985315346731428735787867281547286995724409978070381966900380342789759588821414251351122042713988503472467976730070631614477244266348854173717508399908398898666493613410994775323156233869545313142753246724995872602086098299539939548001950210789138999058927256515749802854488472475401156377755484409364400485113692295133921648110094228601711903764582420283011314679311735268569971692102052497076580850228784223083702466405307395635209219700144108357710718091698635242519430130371537346880733975543208327721937176600850721740407994963679918577923171516404349690625393931709452494759200789035205789973070061020553946176730921654695120570929032521304714698098759158510761953445493926163446622410278883912683180175022515860251506063483880033719367879098417960622779198791630603131569727193505739745215715153256194605261691737562337613810552565352882569407465106257063993599697787347166291549753857130229047609473493136960029454971998393509837672168204490907463363525380238630733572953492259687408143404128565002607640904810096093124162547574190487049881070115564094906673506099056454103691234552841843030873085997602658453244246700119905313023112512427182582453791466572978246363441673244249752245561154958667330813100801753035607381229786879782562999622983340897934453584314416503014610192165415610189383226514608439385368512183642555357442300989501604196114685763503534576439444117832437401452336334309632620544970233803915086374160838337995282785707319071814159874059932381111533861236763626151283851930554180362158405397202728368633750504171261539887085969845750202387909729431827302047650492944103656022399717840829016812563199827212373934268561468914207449866148341736419425169012587942058683262339547076059574620125925954205181457320605196397044435554130093352685729934353789083866949264864043047863786820695799639419315789890961417201873514051847110646475141170157640659399970184580141889851558821997267649413058642877810875987022480233754580590967067647874309149748350624707921418644264272055656955061477064466961792455074719343896643709766175177629246927463797493101152931569093475629570393071762895577628175847488742859301438570937850315772713928067436786260133607418278013841127797128723860472507732135876825496696814239246384702539540488190519407707773494776605159551391709289221518751433683705132557617578866560411320772191851424453249120370804835292590621711443641897895839701491973872147886847939150131816118527124970126990810394280578190039540548352993447159829060939028769623571455608670159625906755845351193924150470788439804430672339027029012186154228361461716162256034977792422900093644632760581075437852900058242703073694089295658872355642705937811516953679982927351773898667017749440353741223635386854297257459032637799795278207221425312342464131260568404387443934955553888240614262988287249516528279644003870459140050426164982857834573657038182291894097508102525318515548877702033902526863736740602187414265061881979068627192995276189535350069301339584481174582180239873275347588071253003258773077039912832662390115561182123316709312775249097178639715518193330134791801503783441597493228491952243433595494176882232417077980178983966789191826259611340625711065834537936427403441519509828035110537998760662507306161721819357390672589366207107872495925252098125935205315011440076450712018998570859952439445692545303222714542117335529773531475221907745561282634488122507915283408247381324227662098024479828555754237320358175398439914931751507982281561357752775669586259807431355997160003665270445850917485653168162126573454480152570586725286172382735979004293271164360529782262031929120384612920098906498155945711332930135455464710181329327980388064371376810705264343611000395472728134211967538627627339961559777928081520863018985277550588126410562756126784251120384777870203705455984346926216278893382438206328075182102258896606620464595278958543693949025896426471934174891104953556472460214493570954945617500283075775344286993319658799985137994692720542626912549046817437011933105885856292402458101478149570728139941796235865350759427566658870531751119758850059567340502116464631220980971977735711587822108372351069721014094382962987870930906173873664710843392135462596220922741694461544625096612103090381810594579996754648025377873357865681322365444486652316497805771449825570489267044080853483360849644658578543702086550669583564609043965790223383801616364952550656500527604682485703747205879304947279284399144458710108083777448235122779889739029774194367795324317730881366828568814241722023141012129536748557568158040294314317461171805053237369793302659625031248476012614426679659084550665447182976949361429323005696441505211620068162896621243035168773036160219730066189990560644032427721169434305681585154105492435460271558969212791126999421722207888314543324279317030486599929878424199848320324306021125349648648338466415053408872904439417596486689105335739130527632786074942811856316707406821376246349135937783796548076423672158567628616750725813937449185877515311950990203608611412686436578425885350937974060744594832263737093722377092214472323749179504140475122843934080175557951409886872470458378423645051549084160066860822512956565918449941746182212091930314780858659797964808350971305533791482774721213188221510370217189281226988880023936307298789384904330781737301615515086163850269349712743818682659836192648307106657096121198270045738434067508843626917993579773673858305156490782692350130759650934628761849052688372890651071026226273082981795077628384673577114644261471797808434733012350980752236463486039219114774300822539367524021920194083488912596354935007263449952046340133174123548693064029987728250246054720861449560911347042237913232770426542442588553868054013135273527794700317812596052227124599244225998524258020685034221607811833762869285570113689326634637563321684265696795625948825191967020793064767137450398564635724430173275291125044322097841515612494953475558274524256237385102633297708943314565596533117020186403449734220107191438850354126488416678768796793319884016700083476298171387070005427484216888058961286765203848049111588247513557737867384889988667953330871329554083923037876680709434911550882545490890990680061261561487688873315749106899814334230835907212396719951100524216862805223568828686593113428743234335154067914866375379378566615060975763341647375601260089167042339473154332019723376486730948845596411546214475838223971127130260329184859381718431039488259229162388529772494578478598417276367421268576344712724177010356463184835898232774302848111329652873890698231561633336596476673846845656736407551207955702325347892667078284125313540580836360562312973946646690811315672589900993110917657069926759531011745797093903649816710844346715941583064550925543290651663397367027227767782473378228354053027913004078877209482120585099529815057928009586146730833081599050596796026330352205006006581993762052581528702729619014642337019605800514601147121888573180518592362230203590659370744801835691047235446826847780528300604848239957049545060036488509777033329391097236392348672735532955522220298935705943111647309686161247932089846367035069598841059203173560859563899416816740998291045411165420411441584426767111777545353700202565416441881654684813273207723783951927723213582484814650193475002206470101091299172463937151037307073639703754705191954803230454182963448937004421533596101334479016995465929904242725037419698294443885342066228153847593452438859359898606115194980992372114506752735662049653784109505362268664238561378687472566476043877980939013906959251330861438636566654171121587036155806582313336853699491694983168859457783179813897511802226910030848051970971685872110023431253352224642883477611936673707255910353017892321598954131691432137532552469607246855070638440212975688107280327224910709143456130059726621053092827853898034192277653425524686488018857302266483560196779104599722526355700164294442820482229718239674356693590727606899158425694968875920111991420961136663776781796713458586211714991512961125442017012385488302173886822296568223001224224997630231923630064795452926272847330891768799350779440197408694206295989836580381349322821480341184859250804804682535924961258124424616788897278888087792669246707060272563108095355829702777374799054092838977391765684929505407001707822007219327670952461886154970921739582852217593338013243462499334717624288277983184277609440378101419346368731938772050315004422391198376096864065090115569331774716029239742999204875586601884096455139731808903209752866766933206953495061735162643358271985366679577982262133293761951582532116976786102015680036082954047366706676852983721262974847978791834228772253977917654076164214536021072614185814380911537647552298201507240545365412642836268663664957766524533240175571468926882876781379890347498997278558414732278310191524238065681884055752762899912072867952948707217381350521516682879911711715612736109925311919568222073435174272411294603016227672106400399491757655049612047509506524745271686451613537239326945814893368815561043348596105125647709564048641327888898842601676836974583709481868535877586294561169025871453267879851310620776008918886107277008929905852264572759064600815197677082605984684329653658845948434183203606909618042640190862673643046077945984533562647559523088938054998765750538617112978925398717856952057791204838238985400496321858654423069844324641580209744281488860391223437859593413286718768089007154783282391333692736084771830792975381100993630959281331453761059910586277961423591010892245396334823634886973665961834374346196134549711636522167037198600875076448623512200593683326439306134484971648666800547399109788882064103788749665643501598694202332899485508898110523977159781555823294458976051915155132713458507681472848961405093973198332969742394678504453730271160050062559739177868622212927737016660762599072675457392030800181896711197625590062492611259499096316886937859554252017723167847702114900977911006794044795450630928796798828997853276556183935567786548356780072086228688548776048030506457173433728993138504137018791750305993164532163391615570890393551457907111935217018600586366829712798677296693089701293397084537003694335777264602849589484791038196455805677232553810278626704012248174815506294250582563858092415692149979159412485663130135744096941132024710196796648347566174108774466570201285527825331361869321701316315109069857833830250445664355795868652371570133354359090656651002043167825431108267674320388911153003005541636534495495980323646995984907184291081542352676903475166406798732382113088693201107825586939809905445428965572287067466358819705413803481647259551545871731307080782229209024226614679892303813300753562495377054293235776300866647431612376925604013429265694818009120768000330475911030893904790888293298220142689011206987259474037785521168622671087587015989460187171735623840705390476906018366849617736315460670448181000774821714807066147790019238309956377295259944735878464376333874724789388079461871091111165097267658616071186351807223333289813009913666791682431750682296420728044392705995088345541753263410794651846643027584346573315668758522464841173449164514257571740926070397807691292539216931822277197535806559249041345994782634917224738637770746734658386370235093541371315733436160108126157002051111638481411583129304592159408496881462990203056479029492112393810461040617721359022768354444501572252819938263463966018941122519986355166081523549342216902447711716383233403496769753150417398951789398144176103562182860238042221150087997035293434183398107034424314404756329675802695394991613438443237812349012645749547249807425131946766735086015403190856009671455188696667512431615695125512400577766445840462854217526598102592891236496329454818928925909164772828242766226366196363733596125970229707898515204653356566341133881426435371435334656141699451193139508164827644945350214711508337860143541881061957065283370647848277303476032176724905730664141650591321385880974439378302069777230872761935872116451932664802945172121729463229642413275015264663844470505532297830272157911638711291202549049791677432739350129642417363915087045052785646090833015267755366705481627894372153178662410759871712221739447239950606794591180703946172031280238343388178078007096468563794359351357507362836367973575993437078224868736334233710637301746946305586199865989471085986917124525263463872404920859978490498734312111641226682363438812612878912064235690372487254779194311431023970691176630399531000892774999235463834436069334038892901482562652568421873157197938939423684043673230980405113222398308350802642108321471957010967739321122064141142577956368973681531792777222865129598803434592667404188274695390593594029031697913702318282131898232308481765903159840708508354171957569906325243623021873989513344849926236598951914899011916182784129403052811590753035014287803747638642770832137907387091137058186284144365588022386020280881036238861019238514577019047159911883304477510677721669125548991106252609193800687488007227590258264685106906699570923402682421532232339554384035200077831576593494584574256015483347521946129974241678354797366459639747445057937344262704639107034974438572873683844116643125658088915451243330924945964084640653384725594121361611446683944092959179227834303232124087279922956119859605692320174910673173312758341991985171232639826578662626162171689548187226762535085575043521959080276081783462928656929150513970566635980290025895287397661206028275490547357871967660087874911228476410964761350415417598388345240131961003637704705046733035712505532404429255683072214577357995361432502077203152841791496173322827961145457127471821351968032120389606113824225822634507905626617657531954481949724869584140809694889166873220867469791931790805975221993797173732356144451075010041374831220275388339505343782030521307799839671767750843257150459874629977148249992196396673348835936188173859994750007675568253227858120595114228710279976438153611296622956428744278813895665168404404854918895477218647995828070476371531308157462112026140566383817253349340587072429098923719462133148184212627236266834093480599661091512031185301574105578019439190922672461998154570028903502882251924966142062821271572521388974989154995068600180943813243233466314284494983732781140754744756072613820141423292385510337927029728399675829566534448999053251248302086831559215151922158521878226089656264978086498700783623138374528259650699042447523855704518373962690519151460955450055872757376090260238485147533031738527117833306448847000624012932275700811259005029812875276731960371962033872294217683738025482476002507208158426903453681726027016990978442007881809794978493735032862165115525766881567611008261803503981193912868824963126314169817326350552069131169972476667824043975123584152954183792705374234807394315349397641423536252839392697289856037843328599578323441150504286800568146912474809293871824318877992092039088804923220778461989649225531403633156701516875623296645003009341535141197315152450035856707718589569044650967366027969684752573428740874586863947436610850894144899671446808203628940269133499549800206295676993575646058354288662888552799218942190194880992100766417217480445485857543477976701001296310720291227140080020189034347918423087299683612520466452717834486134012117164280524830846207953633626327437332503791789584157812351977069855779600041991635269665378892106078832916221096432105356132154764197847904465491593809951437588765651205432490168500143666898247558928999009229642463733228353866192192640750780619688776963984578354900152911383437294998605468570961162464634414761021999258431974851495760803317937880373974294125562519180607485124851887666054604345299957834551605130635216711038884630803920683825677336297996232289174861908170581454548188619743396343155136322119914233619504783976040634003360531385812251670965309946804069311829653588205132723557049568595723672892381551953899459666338263799442422529799379970405781364979835807086470364428542022733351908340384718684598201492879275916577746680990295077236722825933712719216452589638093166279247839681076710029209084302647727367783506563350331405722306096590275789867794592945790478956436696379427927453547130157411577688913392285147391048921936572578443834379281556152883378623873342575827982563417592774333536035284777874600698765465154891754369231219737740300710587792334995081625291199950230945039307184589305653788068766623364372654867248290888574346764700951980273354124311680168114406434465538740634540557243581625138217414596981532976678389041591241562264139942979389039053406939611952416058955201007157760043412729917455995901586634028937290344606176060512762987226931749148679172532173289616721597568853673173877854337048488304819343050269991454322435151529325730140039936217963490543701471759984714480796427594488617485658138784591402259669298682506731734865816149420193440110016259019452981697825394515521101609112715259906763040831789270952494202729644856540307826070571476990754092640051056865445405508065772354449725394367667548117208744419561729224454546158464824417121453325004848693601921995453313995875560322174477593797713115386061540400594487395203176863087960091275655361142728628999608651596451676582807673206992004279626077241330830962119296846049680873042947487801521023281345643374944333480635862346439029309039196032344850952686625650051052867250014320125130211059922642418696231766382574827670754120040554943000747167129308424769055414491497672096195825646837490128959026584520313940074878447434061194770044460043582035178523114899107281314814057338306672487912916873395821915292877637946842853375158429350748821701804572614601697119811774309980596711263633205114023717757380943354480764976714221991971718517442520920862165306275758523570811615447767196444144015478451752787234309892294838342128090526535944939473719299123636742497515038910588416893222540497765155533515386722698168913327216376289587310645838166671473087420772414796158237582343491366745418448691573150542221314736456959783413611390557353575902290996113602533365557796637159933245882744548943265473782881662036685197534136437029838021432632611335672466309166560461550357892635132964924707314151662585667521464682632272337526517320129725020446585569639783032388916026237603099583638482550136280063754258476372671670051769060910998722073880472163390687196134161929251564527084779869689622524349470062472861380685696462466287918613264305128043773085986892105232392684248809877252042156223999777934969236889576179015529162670471797900494916614444163050065566918479853519816573364983491109242684907998411594311029331518513986557421922991946882949627770579629455077485805785110274483381576025629356814213069022778655837736942879714238654728180904912291505235650819041491467217146937456791645984997748776644511408631372130804326725889096145687507772682160077837108091550608191044262096663001593837797037100875170013683504742875939637011700383366298373031971690111351344940354062144706013612535912111463000458841327146877857971186949658335724891565623928169914184544507213669551361863429973730951225674748435535283522998767300577801686016408400337190832709866318491770640022226323753374936123245505230799306090471682456303133920859384414527064030385023238900399268069077008234353175004104437406557606869819938902634261098133294037554105699767560881369493114487998700887566821507907730246953227830291733929358567744566584344924007875610164531645450894407199059709183883380662841108449623193225126129571487551947541141786058154700405075625404764850839853715540666471454240838021970840938581518790366902518669518645764955186232994265013979817111848901885086988690336557467334849109387518704153662825758861316969427280504621804590772040798320924929796828777693544425917180731568679470050744140253825619555936366264730662953150272696505886654579541328374885180654410495613231528028528020290811085226060367510836309703373222080706184744948331698182405213368977730968321251642464452675399174147949044335497142497248099278171403430897934184893345399823669298201728756603974353561620249654233912008765937982396261194582187126864436425621471616111805286301827492582934802777926437486305309470699166616556831400405877918644343612848477618859336034230076547964693026869938508617345664141119417203814301976130549919645672367494642923868267703381762473735617955108606072052711281479811686595585544084049307679232748622621284159099929931578706348290577719763217675486950925187820793039820600781458220007126492932265527352767476351152670510678308228470758428734001667048562865304269673283663696856028138391558647030611802197298989255365495119398139427039817680982350435540005552966856925538513550504439944960436200076766870377562427135783229637619414397459962086192589582977926095405096827480167039081865866234614025721117125411837216265814639503368703268039288005646448360375256601015254358117703328664343110941521444826364489123513966331993451851958834724944623413764813065083034150245300700970218135100026443713867592652268501728160554353774333090105277454056279103482745246466914330202758556144828428622150396740260838238850935604872930534919823646723165503682404222701867303563384889113129470706593716681385106193256048298149083769506721452731485005083322858585417503726804843797761051565455642155544740539305652347967534174286596721301885168919301566875918636983225010872666238604562563007732472116240407303594106005973342927438516343166158946756622232120354582751489987962538911604993136026307214960532833653914340422867293369556678470046726056066580600228160848054428417933596495432538446458548326839535182760078045576536334076583626813291441669602282136057281186126462528175171769659930584033284756165362489912270993301582026566628736509429446266788961893307717461193352516870720389249792081040549110113604588294339712598075480785471608895936891039090179240765007498760044006167393910632400260765238796840063538316683750336482258026643101731508472072862485505361695156101007582225490332997458066426860569824409657413382581986965528164753118169565518077887527416132844569741668831641679793276517983845953926620578362001838799853852799449855966677117427692316957169415303017264603952372163778749752880547176739096972347629489357040089281301296138998716791403732459725029177245998711668849428900993744356571244488307619362157829785335638987425625833137867123740993835997861260806841371378715280435767121866157413348676904790729754694439134906133168774220033122946048817600739199534208353248647521896828274403288905120222970147980242421906753076367301203309481311271979847636232193681929195968481450889748307484895130493081431979583232096034185764242879105740255800593030369987584115266851535568928866850600463650409705969875137923055476331386193949369329136100928101426506900513028284897278087354359610715625251665488755551524856242146007707964795369258916071544371828227998627456641904826947434348944035989073581950689954954468810838300147081201361256009311736524191319412724016557888932158287306624423311028914850476398622739833098040660520599096832995085023243022894440153066644796445919854811905852994336709790071809201131067376132157644929146260536293469132456773405971101744527259114043600630499051869542578965921449259965620726066877498257724583822799273465053122698048385986167381668084596229973983416564662804829197150394277346332393876137153791026109759545885240683063906072488906131022127677977985082309435215170358201853583682134507355469246641348013678195015511287627960152936926722685380252609867884310848731079939774502129612904235931232054322573279634625592627979907137033413328618265847601437031788713139215496986164427258082038216646514241157601522779831995424491996487070321655898842791296933540543305586785390999047353111596087545268209936251242561016721765396574827027034731141028524623161340027245792724797373774400281671322214148318777272664150652391257850250450409336118692807639039801433743232472492177964217820731594902743305221982654812975099865496366971183045464952349713466266788053100115794355777491535897080764410157948650749492385800453306813118304431869135408049455259146015798234356191015345622829711335913248229345990769773264650918251269753513183845459176284612402617570381147058936592953382323552082631284556009411279700962600515079111162711076391265736464216444764234484109937253832356211715067316444291633788546218936307925082542974936234176046755473057032591089418743588316148991009659498039439854581668930537960295526263798909170435561114193589009087926003734837767994793639710882245198732077942469248102612455454112422602229989956239815629652082976882048924436953660089073719656953597214205589341786737197496208921643502260129308329482820156513208160455801899561335601057136606382136649969466423403707091001583319685678423441314380432533791458852151707561839746848041370488274039611556736483586082164798861229609495760556052780217176489544481513855097471877808423328933620160524232768822957534427271462370467291469945759390081744126932436029582570839151102413110409018886480855086405462031798862372960732570189912954913004105368602687055607633193929540249730964655301573980947532549323070352940150486165359754522420753162834154684355673903917817285027778265570876827185095029635485846955522277495652048461065532338879701172222112139491059587287088372039511400074520926545741317638068173402516389077905241710073511539869750596828814235013220454672910719148133013048388432989465899827274975637220591667676703274264319819735314109234127715984855779094023166042487588250422393724888176577175878368152330880872353699103015860392921005027522227300864084637804188790876652559904337853541896323837518927706187744394366931671717963241871720779055332224363083513878404659535093146202182396228445978841313887451831270490967386552860856320066423197884016232697054838183933886077211329680292819291465808945212281602417479203034088858214692700413299284878871654295627242491372587788206816718312834325582998184684783414215447939531855104846495029988875091968100087399974784797803640720511355653242538782910015396937961701996146616021029970310391114046391855766024401512479842087094194524297656322205495359315737996416287193428547535360037471150146447272134310817415946993143934401364363336917233394999403832381252187488459777747091588318705144317589371565876568010887014456601362404223821993638652172755854883980680235468234452065437343954581636041128685203964258711585158509019736691358782000734150102418212100932237991652653083888642440170283834162846491866576588784257830015327943282217787785131673441025117545788168965409318328628881646885321083896354736078435272236202607021703722972977919184000757178982910092971023882119953478606966098359528395570888425269470118256987703383339008563028147056114695159642249880729613733523893608773859960003678146611386150229373068085781296052342663980187435629819576181144586074034975716527679521001548920141517257679821002984092515141787139075083107176451704497090603714211519208935265113107764810662053532420636729671195104113664320937397507545530460201441573036828113148863536102442859201663451639584357322227087941279572692826573247966224164622599637502044064181310931838107270031943512533384792671553009696259444291117649399197319386385303863104518719462233468561928168401015041898018165489712418397192706675883727397499890189903380428091162888591313303136092373370984858541443711702496274827864322640120257272267978852519450630762066851832533305977328545824309025606503897198775799777656080480385415502791647775477312796820933483343227193969638522447619483768454933381629460521948014071044490883703077370450614866731882534091148353034453869935210127293717173323289445604415622320348707387722374322023529894849062605158308892274849372035644489283677483382519680899453674610665301804708121318836096618091718628342560486200183726463288625391678902217086346258329569269486931301917835849753271801210574759933779117214122795480884343305180186738239895785642679910366489822640738828634285230909670407225817302611332976894312206392835430001003412207802471618973203108966983229785685246105863960333635757452835079351464186203545462260926287854894223722308124271375956497472697895919863748529658782821565758502373029083836541968195220113436485762074360400832671619204338567910276323138877314380173962028490146788504525498948858200868076675231827758985478876848782274820370088996209183094428328450254963226721800542500526738350923968277711634328680588697683821432413448050962825466815383274388284724666285786891099483469850511230968620896768362614933925359638690501201540446935276956462586295508600798909547532626104917653536506723091449712505647402626336584400056145154407515307273867771119226455195202534982547068235277613556744250832482354322584008450793787940960632646980658047815853229423084863140315497491800277547040143483533034080101478731205589361729774631155184628228584877075547439172197539996889611061357420645099583081714337358467956205198556006456646329094405985525862234196497468647099289302438059252076732693339871334327710479426193238024232009838489729524042818747913863334114171810804427588468290174060657783881844683869035221554514760771503517399250792792073779083163245482344194117837338479300388698153512847162587743926386735694030150654739169383947047169387904685771537852174294082990150874405235781266664108054721957077059614992587222458921798895348335171992829388287737168721909467291086740079203068037924186542410753486138868203953815924170866122524597425910099485543428258842906497994373807645722672481702579625804530860545332555973459293535905542012180466242347454819977937139898303320286889879303901629272770614815720452524752645242824029733331873105037164566578652028168144620320557453841896922652011682222461799185990023880040838574171935638488529346987352732871963909082039739872566110405470079648898590020142741224566840453683996435744014920095794464692585100904472615670960076686037670639559246859249057674722024714398687960127199129185525039549685693336109754100882147880845793980158775112036296689028642824253951335216454915046812401636812503067221849499513779488158178612109733975146198322319493791639822510526389016045419354855882543544751947429694828161044482647630919253253628667678149161725785086914516191359980641182845625245758341295229529866917754874739080765399663639442782256642813272499540409366686980984091143936740564240887806270016093991476551660862695724957953913210302160725132165443151059133655227570692629325505644965185716482273663658203553576017507193233614632525085205028919520333614890661396302607515266743484265373979839649613163672840347628765320341676591834624387818101838547914373264138235523636480325085084455227658975336296142856447154212272159924596445872154683228933940370665164709110829973519940495888625005968131269187542289172886536504224122955739145805290207010392376866924371148691479124793635588226767671537758070586933148725785435415420707924991890240865077264612612807114814999877991443993502517837773299647872110721050406408702829243837325222696900674043792509715364534624890471554797027986306467675982640612651213357273647091538064929389341769835274965128351846933695984026500329186482771645747144530698840188621816021002319340572530253927241883611876387119893570000998092897475317859092293713884950285859448397602056832356960734132001096565429622373087246778790375108104186704818108509332771571725323530924161132460575548210654284259040172074393939028115160497847918321111586429901961596372021048179778018083704551798869458099736446528692046509660042181430962268329918303077984655044199841304092520894429973145411980471535009979907233782052707504080809102928120795074022703724087931648643913669248238830601963222082948896312638919559228072278895467299481489964704297433982861130827701898990038443578611998833453181203728460929405989746809763722252126245639159154389908384510659986418728340437631913816348273578548191619890454824166517846691801028390777654239850725730904080361693301577244873293125911630482497297748989371983691821814473517628280278794161688055151249708759829258364044599331195892568738674155170471185839744812172016327634515949446991112814658178747964232086706927088957280405430433108399435747033459996472769816418010824779553284244821922399374663879172490810886326133827756523012159221336371359871511939093013723465646268773630844473824262940898151629474089638155491257793516808116540726054688428517529205974006151836764007480136432406619619438816953181831195903049324355887467220398418091024509873783867621000208825503093694380979566203982113328133345779252210547682522866564371384102699634483903179356802758393414863784493947363337991466028944805867686849797010310327626187452536471535486386329813952714566378100400845394294722818136525404718258956525620156562621182033187479065296362258938332483119850971482732978929725974455809432280376615809948655007896509564259048743687356928898809617592432426080019823600055866741850234460942268321676947096183693250365268830262650159825845409063969201948813209746631379319545904782988556953637949361672753376460870491078057045108148802321796713624253449928201006650322984271113512855747121368454419841121936643946463693785370960262212014767362884810014983449763673334975692049043329764940875192712123929759539090758906882844025428936109846554493246991140047899418890093685382616851627396613926626992460868345525915570944272979273756729272329015923059118217490589285044930463663462691600943186663426883695817784158702824510328113260049559146412645290095541318234716628398875268645456517004774457434019469396470240472129418043847626450456956255082726244037701293189236053579946920123831407140829590281701380935337750317200065005577138109049198886168614707360034263010192388924450151991102135897444081425549276706070718657504223470137873024279703571786250854087903926512980908475937218840196688590177632967095810270747061391990220686563143962765475172660857869210516683197610406392508760541015883960103022280050894479732365666773004248654683189313217999119849315913162069011113330321320818637089034412644398692186325004205447113532109225111804196744115639374559653259446642343090106791707110819677345116646630833700054735051856234445306174928763750389764069173684202775311192201401467939460973877953286931406319899480485158207564304702908482348310274838637320160822620802362144578392963732024920825288456304736597609303462735434078279524874922836618094557593114460482743389376637953186699986783264135182074921473285963438345078032157460726485246055210131062000344275796969826267074852642700223720874843552708674170360884852051780034523105815578987464245877838203895146579007881889294438463341371694989462028194063821144418362298371423128055528110656247553859198801133247098095729447513276471613461446589091974253343107781378600016776750624867713909392748523498884057228959002338539727015325845694208155170877613609911369891517968654689072846638296239714961720472951438144435387520387575047943295549268665523363537798183385005709675814717942477002738741849982123518174079115835505482405868341745937703338315584962736646302004171550709903324424379007316681604670585256498029828039388175492204395778797285291231560215501808260373200393024332742274660558571787581082180587256585366502923701626739992749579804218603692242652702801580688405968471318480340934074914391018703068738044511990415939980260640885009015632269178808196026374628309678015788347753855813697184222334840817025683020906987514560803154620014773801122379519176163740097961598874162878899720640380300557193930504461904174236087702043323097134155470920393412980245154361389762019539295688774804521419082499013934001783485148360656035893235666451637699971323936195032066239832719570861157705166046851857765817066218177137136915787439465550769085595377860220478015311490032296916949533372865583184948407467590133617403215043313138863488297129113749251996159300665748196148759545419471931254044845861614343011168168510479280898152296298298757282113039883816153937353370869978431649386273805644320325533520573708403379670473392466353006624793027917891094453040096497969822428677240962521296642167477994093571015593625714628146697460780078927782508222867468240205564514686654686659576803113600331242138730151813325500990250993371297765500672533199744478542028059079924091963836383184151577028250276450421943161943313649698657205001511265319922497884271352384879851680527788926918783640234770120167828603383461148193448288477926734970286869594349597584998887038844293469794761128649257982878325718997637984166637019590664735503884329160878633172245677057282156416689164630497848562669591274365843593047086813420189754770939914597703761461081223879692517736411188532928302045296332165691595440616997637633512371378998083418405223012051983545253302442409636730479949925857160916253827860540187543330786085263380847634902929743310607495730134627158123607756603236353217349426163360963275326925499567182590628606915881887651221882837656995410098690193562594582171717613734505771496724926049664563154666929601914699278411615300175150363480105403400197697859712949427174794878193372816150987652262294133542180861215798415540415260048140565071886094275488408929347632844459190762154478758128569900738208993514180037893025396979560562933718719896655671391513802206598940578038505548517796056104199313316784332029864140186294535817498289718117451238910770161004554424366027629309579703785720070955301983736669829818867773449052263856764858361669508377283334087659644300485390896800964494415190126293693911551408259664202558207010436943022010545672648985591010723009295345011826372189493456186280244145658646923707942731380037544288514566686006427471576089495995989269695397915430359780164301992081403567563380542575461162084625206694902761100448286445029178854737019451970200706949921294480549153153452115118520734085509060649704291301200533836609105601780692391385490044001916538769732689631599889828591377729008494703069825673251352636968586855174450793925054198689770346832044411244458279323329118086962487837463946708897830261049468186518830217577807337652773783527204317546139247863391206806639351260680521460503165007325387074567945738932689790466898516103296337008856482771956530099181592766539101786843815347737608244076148945496216536888815586515205734703996640175680304554629325215333727650933557648068752229521805001286818583188820875207187952685607506624790890046281887779639960912196561445242588303764222052726283958575521117950964355989905941907295793366301425848330754497213597252690029138393880570031360086652580650068217541775145568695560795340234743687687938399723367434213875330842884767263423582401737631762279156280080931294915475367018070189546904789726773349011052043937048818349635252343743215252356643387685597994379871757703498182620043024177339190714205590848919009504814937077498673053467454265126557168317371572173534707373164311303305685169193544446616579228142408798432459084225343954482201853198068084173296970191322248666854102807816968925522487441636084503478263565962108731956652628357239563486330011698263784542305634546749837152922047818597598935456769987360358795934463229129717813273095549282722163175913805850644730277858632995071046462793963218523535267179861987108478916761270767140858358352514505678371830344564695236341531063621615140192268627239272555441437156657815170898663928228784426360833523667481406900887817130686079976330387550048019091371748013483007847570031728813977744098530491362975410405811365469708547701638592182529813282047860852569088773856388241815934897207979397182235275086791005156491635704673053819075890731675977008056415241326502821268379108591063404744465948765666059904133474727226090480814241812630336618903534482502671325200890635355639521200357704258691434062031434167093268219114103054686280409670000613486059831631562606035227937719189422723158216290541924937627137494275222605556547853250170679676814197794668978696115480906702523326285200946354459071867555169942876865691775087085828017579238010312315872207909985376345819202665393599495207308350569674703785775184243004110842850089481897031525591533024466831877557068426527450342761008476296673858435409664253250280513489818282731446566168798422943463893840191115587751917109170402772544413016500458904897883002158054860101185026153298686386649202275086742988148873812924791796070505385556643387447682110317035939815908232823361981961740351714306137073785646834174303313357583331977337104138529772828518798340166690919818744439031509502251526274295533858150246963325454868220692432905373469334510190900410387131693832948077658907515043099077675545967441278527620358166983566843838198880928289064886170523473775123345008569577765633116052495569749781214873132633985115688268959883637041211129780960922036037747725991728940600817883573053425918570325866626585698974988585566853711051968326595507167996318546044238901514231956914971580547218599312490542019598869648742733643051341424991333386789446573554635608833718152556198755805377616140665237323971341350840739352880409831083050577277607873751090768012950504704251925629017670542868730605203895536262403726212531674850565864637021524144479318566414045962232532814980171213554768641103467525608237934470222967136142239366811957598792856963601081784103328117511821474194260750999427361013355155450917890210794032422191954893678366694417845430796572539049327546151490715925611720351077064209259322351011228668213908152625998761238048415511183707509342898751211393757552698741416969016035607425542875708518121182417350298113968959993246768997851177176009484381256580314381824777978023099176403141248283547493111109802519033854851474578069790600392765997128480520221506381502516989219754161745907618053543174230478125489109885537757315600573821595158064669589859503007813389450690326927873473362317517283721699360807008386484638821297504724674331549069640131255145520841252160340501769984284461607767248113458171418071034548795154563527665747224773744836772654131359376421421085975609284135963274756537364869286354106656114228786894096410679608786475112117353858393719705361218895658253984883785254516946383730112783891926862443087426995750827451462504858570606599923007258120105826076841795625373096892705759777345923645539029202736895347251850395562579625830974763881173526236176988162493574673621677401817881631199998428245905004760544685592475849527972126554476021023615122822639168958635083296434691196562724271595722687960969101466618197752956745301531393424299083599950240760227487436393838216419466730920849359307920837570722716234376590713657075529873164818374461144667713362919812164599414288486914536412854849332374477029685723004380372985953812494738583036268787758768758472845702434207591284968247588968488716263697568306238491790186580230942951606812629129058936019091405731575953976714346430273904197536446466527794966589642845773062588806767162282572704672412802251459521909244854907036543857992728851341001256282206015332533091283068358769796097143614641282847033964761448407992324886833664961864162140632848359947459598108048227936219669577898349029185920128325337088517288699347420508700656570282140410266674366842063213472929059963070426409942085164470790162481793736651894682292230445898257743107140558360996391578939511680350647588769555470835908773127648983033422612477677117208243332284933374884845321387495252147728224409906071930924073775466292774888789355977714137108817746672815151647124822842934761170805907705207569897250327182732054969588483374972859662140866754257531814970562848727366067195148974661179867218722888901650501256030921845597904892080060574277889300305193512897977206874157649558741224991278103374633511418546554652409924223592221267507400342157655429994845869654435795949862982660911523102853744134594543245931902381150685956092521609249517670263574574589753607744426529619706717940647899518255573844080703780933329575707310575334280650273196795906665926099320523747531306594037694678598503051937806846922342532992664141090401400829844392966837477637991236038379890118960358905894489380800538990741722570210030157692008637890630953554387200654235959462927470947632935891331456322160756755971348851838425167934641673100336959547202256763789641175924626089996442020606454350783784984052516979820424270896611442483353466535973094821334968616432617036192625806557573472514759023839010614876116750395207042747224767709862863674517528545708510801588054026968735253246607075179376715278283303484854625158102844989592335349063844228380153090409147448841957982397875173362365894719927345704594340255594192868756136728509650330745226725418970822245367255192998976671721220592347643547051109599927741559549019503930900672253721141973385235715307219087138152203456306761558189621489260906749027391086823397889360761825128829119340855178359210748584033051763872437604037898560205868528262719274661453802614563513879254561258439620283182941407191331170628266424297042649082767107022105020681248751198631203234872096435820765980510100913550925831691741767639758868177552106426991448560531342627211802789280722903252264061282690281202727637712335502786895331843410530082586373324772037030247752155712499968789857066628860734488012705633082419945246356147407777128680382058312740139970071142564091701391746503355407428681124922057773102833365303518191258302406752996549000470964202136287413611478019288413154296004256020457457757494201183475733150940990933705513921506625601418839469893934152663975118699147417141832237330985613287168377665354134085904874412135563859450295796888138408676904395762883855471590472960968653735795095271506056007279228151379131732815326788364575992543085795253363433065576020601589058142808983460659787501549687069695186454760995007107051271799828628292490231663181190922754526781956807391627099593768211784325992805137651865484633235421144258062703376714481317242323044473692394435313832314393435576625449970897173447667950362667770001617015236205670610665419954075262495554687695628598519971601010278618889757299584564579121548114499773792622831386761099034986404935201181054884811642134798742913453675979622193657954573196467494384912481122428187966275850390127994385332345935946171103619375460793950556694840815086718344771205967433946123167863113545665568169277072319077150762674751888668003547027555650532854950337927104345846937648775015444387680901776629809905389310065086726515129800588917439752361628503790044916838815709990279612835437220976477296856783558143033036179915109874865342809310347955627102297664609867084690451329490633259324937432990172193958955057119723167912588900147361115757967049276692195566013266603056412581180025767525811605132195977842137851716221022245167592498796761979162400788544403018195829253792696674981623892686135016018920594791768157517044800258776985425757673202380832433388623208212354819666190145235332466347686398091511890261235955337207553508669884280489086501609055360565649595718338345265751931622913960954787507195603219913373760812811932614375103879239618119201761513217799266012653523162343662095554141051375599328045030573005508596392469507935807200347295095608631933051151915477576614627767276690784080633798833594921087617161782916778857860079579338426147694305671137694790030956708586911803432092445572105747359679514838793817519950915270773698416981119832413427658481194900234881698028896205879262397644632916100577812983289665115248481142763278945821632149886280396757799221390474288586536538261649858978866631654316357356450402512489293871399720097750200301344318958709349662565001712435630185466348337536739970012523542625373829135486095241231244904181387921261023812038914477612874313874856331512606878285437465210258239162928945585318587912905932666472317212121408145932972788729639043705725687361773339977408056350632776990064812996320772335746802135474300235862035239204142567923484037717513527155545044158354025303191761462410765320079134335453897029078509852105576218312303611714075369277925034668348154636240310518752704193048797232002496480301051632288886577714743744042375391789468929766839291277166736374171627317104826196028424832528585864150118810996652844824778861658706788461884768576009177219235390632083111748455807774430246296061321348037440853059523360029759634529861646746583346987619115517489946892971026724917081573008536700745380682766035505161670671620816447768537341946311194272584606087265764611366531188893678611314481018311969673622842199728210305555284222838209451676215950738820342454605937193547197025342968479099392471625665729055864850382640967680912256154394299758857906877857910500915037285435997643043524250412557107095958886460335076003683252028961198799114274605483065236962573390781773487523308826735019388775795521555002290343412823452100512792840919025499173644590652973012218589633061596670920782690712875303159338818418248417009899556919714854256965040730509241124047028247479990025303346399159751100006725898366897134079423341477201572207990673510476061230887986019640462463348557189620328493367456517057910587978990134875910185620672763567059797656872435279360259097513910338881239337038134721030857681937219098457808879300839542241197129442654850476181111897527445353653849830828381541033747734776381585673808546892598773646122900384717357235561094245259478884311221912148144024540002222880258465451177256371331835728249545178776146091244900297430265421627814729714050587355590621965983253962916468065967306655907155503573067869316604936682942864664928223551100290555577237517139581774795524909596168813846465573141905461046865312480617971484729893979110485930307072605520233580479251608471178846787583051949062006138953815149438086563588396618071514114626556895604431510010819566352500071126718810078825057049554128667394027406184808972529483147499034818713387469841225450795518693400493780851514150219753055989698878589410523672417411848429165072376550748482788703565321223981345782790647523976643840429625747104475490772501493396390249738749739900617503082781396799494476292683052731174554547781212965369556696938285164478539727527393396458197719372606026609610537641551787450433242086445783852355809489097991244592741568560886921589769263725735328455412936985667984973674614622198540583515561618524701591666611639703369181422198672967099801208584996030229653457902910054609626013164812271002370367475291042286394759469321537299369077251602107345062438784267276036238629153224791220484846923297407640227723937433478043721711055878681809505934050808778461256349429576259952257883696066275868436764392939755854853824462769690538783853990744118682218459308872220071587371644635695673017118490069243837936784902058535026235097565973556422405449793606234337582621423918338006540168130441162257385591914475411155639677613260855020106999952048407309869636899201556213303956431158696917838844666696218712076177699225777824418079005864044564075661666698128125632456085775937246090558653409948026621333026676750620315501151513239433597578366103513099754818800040506095773497338897217733724335797193955149742782104347967371566729205152161270315939221606019144644531699789422701140026480500068007808973347768795658422489666728173246998405444089292190264204643353648169041910236774655395041034240288041770289530862511455659002707863153797360687838668856377500216913926744511229823330551789468533599974580120921679819359532944678261316929748945924065312048247132028414216734918990442523485880502443334630750197563261363325406904379155453490885869765631396760923617210520886400094834820457068157720371035775375404472239623056038510352587138583566785456028286270547875697079592924398234283104568991460148259848879787419211334722183089572147447021141045968826775066264740433360347564857670332749532712915120665741863494950855913112748008386239795471112370979823642445624304912773339768463459310319424217830171244057753206923344332154818738418669290900010429847232041288862854657383015899038264886447412772053228817644330504246019164929638793557957846019026133940509806895990519543908908839058447674577230602302174932743820738619788398818123791910823008596071195499951400583028925560221529585949254175967831087727719120400699965260416975036041926380186991660344721586455936735826305653315817536421529487224560185636389496692090500823532195674382119697888293785132997618739828600945320559781390081372841005276378359630669407668545991759069972733646330800056270402383597420323777629518310515844529116007336234881694783731770728294915687608069994781837998976948470540844527534334317533014203239524311722898234175258327787850248270190676348260635733997412510603357700691198936951536022082148137023657941412956630608359005220407560008085125785527816705251779571530710861278308014235059203729205135328098024348066465433923976701312838674240638260630146446931006202553171722835271840258857437571283692875227717436853796700951071200771832631724043989234664549090664989031972241025782868401645348185404813322850224275014330767802281667658689911426121513616473494493562822287576509332884073676240180753438185281069250518994102895600648238889489213864378410025282316888702296324300571492698675420331196259457068512180496988539235877655603149916785071666318787310577329068101134537943750963433768435972464328621817035993514470983254290655063681811537625980429545254274793775533796207045065844686202294394611228754148634617329813805706322941593351247614118801940193459763490463377074358964059231511624467484804851138535583893269214216016899947603524066991030182411224358449805819370146243041500349663546899460799993652152329498931903329317991459823854925413438790509965426909677410495296494491916247689595926893206930939791079897116481218975635080710114556923688351895935938154919736657786849848109448770486105501736501068247253415024578688790732860792385664242515592088367058005754460620533234354593524664136848295980203941880661266572509787975113563786185496897356674560020084488024998172119610499728490458898534075757302914887326030674469607044892962494977146859339889279603221032931086594976630188170173001034879685751674149598302487301495957168983570037850110553477390450390827302186542075092165325391619698231785443563062528879549246807984831752218833234890291559527119456532871732594299822855705547308547928120923489078893781812426418235083821986115341688349691975648731867610067365778908886455755868452146509696757364419764498650732020876378629227677987324147263701056910363492106177473335271288182768348111572806226821966062965086925863421273030971785463577366803875218421329086501780775431637810869473060622314316551902352271538971549713143683754155012742836910208813422952037801014607612699901367768086041375462928307346352641256695232936788838016192648021819231336785348339847715473174510243330734534280501667678555717961949137746186687734911838140883506615182978159039802671315937185451354117614223683141999293139639151617871749156240874302217254398059477358270953365469589602871884054519094463536807158400376228941375771503663982381180088525892452429120400373871929760054542543919125213109000852053134602161666731846811721151829358329449209317307323117776370794535646781253947346017295158896955745788667765942918851035829172532110427236589488670500096850268954720216555048220560723090095792071441338670515499324248270494470776276646631477606915604408141248611491550875572898133441114878031642900573126842880509407497325119026049163710729965221926389932023668543702784394382280376758462726288387725856667186375109160368639168889571856758399433342379884970255106306718375562182732825345992425284813457054263446331970291741031665751086860602276166444023856871626884061407297842764966848353623626371901007050794060411695524792359668557681671024022614990607908623300511669137840839888824257309240201916895021740324515003010906834519499745889929293466554842684442178816004539522521819218725327850129257825348287397276583683193535037296506128343396913381456945295061493683182380035155351893137132650065391434560274577735528167898010592735821447386035215909262333663825268344155938302469022318725726342186753008709240514375746180033266237125886336766162575808198521232197391909770523025108939417690522802923673828476814868716528105048589400478454032733941771954795854832736039393134775356183201615442033929217994005220598213248480603841335944299624956042772778071267868640964641310430661347292755580969605053094271865806801842523536489318946247062005557886247274833848091155501325654417978876143176979067146864236638140746588085494213568379705385524022182067646437279424568122032141858570120063043908674339522327674804256036650914766313346847159398910198752097056867253572470921346864873905629699709613706395401204926973890714735875477141784831296049991495270441214567320328781987632754578244082660796898581917622871085602356550223879555624923533632054206674747960832518819157765208637912798068170357145126425376868488093214006277266444719026111448236359292714962789969300919420250878679499352153109588756664226612621543453792764375992901951905382846758447751066402051767256307341187455158394423571028845982616385413423029036064111889402637185256097508194246288710173987369669640984897129259870228655398790674619515700863078293382929078869580782086008552895329745808730944514668299045491649324476731972813358491141147719980089705311703075704082883743535304871152551182838333682140842435782282148785883244775930769372392427321418348080952478712868866966751330675761030240839129574841709384909738675180399850262601558838619955016649125976194922003362260527820059117871286517065743884484240391774276140938573296530793507511669338627827755227566073415522324264252884263901371345145371289267967527121027465737670699120776735446226940960128826023031957727546705733983960415183172546591492850233160097094949524400661581580100530550220336671618762054310108915958131844166512786349612413838810266560010995926573220402301956559379765800462575829006544664630768407023964924052387389673383324868602044062325901696389811884105617326651982576118733062458941989397613765543499819790508354764247083045333551579993928478001869466152470235574729793414057492895680948068816721854214048569151889466963620447709720321443285631349853664471109698805286605636835062204237004003778861624183721809554366791646971602519171410600929355711249081751904471645367922751225806896160403623289122535425735130925813137280434667440540074128573045137950722457518631740801191795770031557216134234910548188665630219235439050702461113374038923322060877475088465574653968413199599998750999912636033657516651320431688493652604063183215544446131856415998662161624423003106348492523004169955939425183720980059130912020776812044763618847457635292464339470868148150749063698201749064185096353151953079630764578320939492009753689209263876032600269251074382675872997572381154109110790858381839182441254123155835284611317133981156867412214281570195195532652944121613725379677611959037776435393455651095754843645175826612863360872106345419942399023706514794046360822697129371141139122299792637554639005258825116269577049822946255040946632073305850531354945529424070573727834515627949945543804270871052466077943549225259188831070695788460160023708850228572704633843516080589152949123230932847971406068391171728188415101742749880845088736988389181125872529042925532408608190231752377954648890627887690902255769434866687423137572580108550300408727850088705689465036127917395038967452041890812058562462964925228506331502103213789742084992561277484025517839427841381678042530570733936264253369134435253847212925760932162903807061436951086985269790801494130577843589089458752090327149327719128705053295702785568799537326744195911915679411410967207024111341828034301310344122485645416579936336266856581374514624536869321628668080283887617711285958298469087747809342629244152584878747706565419286135938038201972080917172762551443800250022962712804053662488073434279655705993791415123486259547788178182440746758525734269412721698468988667342520893710974188265079149127363747251831825508998828932531471745835765405869470952504408975914544458406933641879653210358323010403058878491761186765653943782862743649958393294616271918888055535130029337197676185759758056825174609914870994137888845292746018010651502364413938583012604989053154489689252613189035830101422596424958925505787879882769732309134518792499914420680962625367058990293954772387099671664104906510692900052554981274968435570462315728286281323093488545985246057467957709994928620799149935154759277122143680073797687327196073501478604156487868162742907876236882756993783974781527677800443688183172782068064812812235700344203967811712161786463905504802312983876089842653079483998959135006311689060056930009621044184085712161240241237886998740166236666838790506368238826746901731858199221386238347570895152155288825442577713599954586725818914780010187778037283508240778619761988966339131412685862037555706765636269800739670224372008062771813604452283608334891886082268202459128737631337904209516950144679179353791065860715204359429500882735046009756093669026138220716748874288283104774696159448943817777821686961931133105523368420656140175841351283871090936219372280189515714502692558375415134024458875942189552524865962655610762875689228498287783275141012766169629651946044615648248022316365844248065372552230455052176219983009198534766768384225027944467449745214621225350739579872900326626318570965807826126614618281535229434630947290163854491327758226703386674625238296789716428826713412946998860244205487525379330606841487053665186537557315360658878483045057193818168505187407902138795768542056238716484592085516585617929591783373066363470223535519923039104407253317587025784493321492216856453827955708236978629964346653708396573088777344676230971913867465548499816527301112110392712554857050428815068131855822739731857551518924342024912367316108374071330610715946247180647705012240775897764920529448961061450522089044711646364021663801823193229898345563163435730404650927986089075208573000784751645262397843731009916134150739965669342933731051809355795602779102626842823312506313985949414003047189757125522130076958992528719586452492590874685461998170780690204598406431837827502335507347280623090310589545944538526972960026581826452245362472590961812692604401582723542118766919757206184070473550622228897783336618272187897460807155107476276587841016422106561812142545309884201621339053859569101128566407097040642748207802896328951895902705610535451941773165169343792488129941881333385490373505906963083329996133721802948617695416508716338142785603641167762784262640193328479901440902602244537374314084678816365116823223597505491646176525972051694403518388865371603288967027459952237376545337085086580338645007325691499182043756521583242538410175143902752095371764589366660545533958189800486981418406101952010813775455032342446928364996976904479388565836264429986118412313756862721249304894772109380325562418446654924389368392312058388104447775044151343864178336955466204421494917029666001308106596827245184021533778229584369851916185732462930651574048101995242645562130408873411826922174555662844907311323752122356248704824779014037834555788140329513620737741213775666959269579937816009956365885423408590023332755342766316970955040977206571608255717183746661543964507871028702620191892019056173564174641004449718486936090225399230268164284914566465825982910200109638076294602791540175970473969030344469928282219084580592515870363033127576757396529307888096600132326566084175247285398216617061677188561557494719973116854902200061315215829122860497073009365937588849699119690233046013202675268296040923827713841430235961569846142364585396169922788130261007965866759145752427069076507485587331686221503862575594498624014624111425424234615208611469158583764578567654983511003092669223331259653694534607720347356802007786722603166253032978383112722293249696715748838672589686778999568899149865283168768245405502584309717100800271965590493517561546625949666093966788906406065157265445500666007285862572479543496337267160437173142880905354968489271698069335408360165970590331095448469673326049778867423857113754988470474958792263870135345513696527130838714219992035557113453569944563749147323055908332399160909044273701722225585771574167068761500869469330823886113877338083341245634916348624524998089386774564302231785109868726804270032882761195923517997100894698954911339820698372027372223487961477801570840784943735964437818141468589044502687912963961614625469576217152490577198930231693410680541945105671786720836972883078093286756136045990218533412541189783670871801181958529398311674972556574790667054225056795248791956576966887565839609986416411847815702625196841868626385818881733933689238172807592014067803031842550332830016030721361876896657383579635843266368943100861551422065250355860633443138843622909754936131363928693953395573337423914299213753484156102861856059164080748684315598594596856299833485045579085775331749714656133948404642956311582032449427546783847516675464486877380582821476026730433854398445269455978136161418545153594925961172628567940028632945976751597373608869790904117022802635017157262492996702392201552754341732283165638046798190607736394825079024133500133207496316242543874846743813982108263158743979634955907988194116527176646379909936686269262588249570231642456830409242030662758759339636382312929583581727417321657409831792910607499189266261436803590707258068952494177815889229740675517431099525311454187487963179198925944811692498506789206241055463438912372894008919342763379350641906276259524898541976416524622128998887214227309246370283936982652319100443940769101457439918610630531951487714157342661716011744681528592230393580923366653832045253146281833215787450714609426667298235745738102553617673453660258661058719050238238331975306647063048085782458988109163003097464254907595879748211797367751425875169176135585934032857651068276452716480167955075266094263688109301184247479384846440934135564530205350832795482490031259482972228420287285052381712460394743045913910503858635956736329674703921900180521724712888555572306978115525234752745645814607912274992680947944560246346277974098668898652716559602463235855905485021733288818610538619476644380968165374188667208312939627146783216443271646521407175504406187086973734570160331503668405578224102051557785159847591070131293501311867496758766295616490587485469563243766129399338417021714555607063766554322860020378767706581525456529704174568217623191803298585978855920447432743567905060675388899854988171982060134379157855935184968438735252113939896944823828800661831782660292019935651792662212789078598066815224789805145856729735774567568120035731102317376771784308014718255391486072785945065746047103407222287465662354815726942280403316247879502715405487839398561502858944043036496168860536784626779168616835704907595108164010806322891930576788384447983323483001995392381289766909573609099813509607567255524007120517767597500781979109063859990182608628958799568293452192898555056263551876100363479190681035451780604369479473501575757262966512308600857074362292591713001150853410261116820113390135374238937352639357603402881964233019248772104127114525880055599491742735361117034609347622548172370968181204784343478526312979173819393625267650107336175206351834197902419205615430420724753178022508517854133643623988413500418672354351687173076775962372297823166799020934264908651315201418223652915548575304838367024108961815511413213788848092068706981956222389936546826718926853737077851636633632558313703998497953734811180402214081481212706624166352596835358240663318730720422313335897888687527624502056050907794814477303102959694698750570751505821162625469275936718428095304436989133485610214752416987103323494564816200804904972392168226639509142408838330444471473746400543857950136946278903821279314389856693073170169604258240204994247176149189508043154093148132532135190136728009939596129281690591157070028566692695340942270044734456860342568956660175565672208445924578464588474791612757832207127300464458192211267896434484956515218323869930490532827217706603433038286575789486752802662153572138239981220692414290004236738441397518456649706278560290854008867326980181496874163285619369254463280812640758478844639204323684579523702840370662596170503644323663119229505304743349391052001796970233449450190000691187969763559060885776725012583653944820865353837049324370137500373173464945027154406976627305284532273423549376793737210284708519987791881346157032294253795811508409706858762004944197814082286642322649330524543193646725329625136724953424294158497202695629942431004718036908110148694093492621711073971984320424325601775402168104502735197232812618241622652872900198740008159025501851781049702731154829937581010907236194735960739114358038846508807036584880440604602891163860950033752182137828637804711645304041406456710204868993286825579637285203895153908201154853861661682876659657168583244538305968016309958771297062881247155201914188963796892461660249363671129061099233673333476648903871782705855961922066896699069169134092737415357304743316576878951486349809206325944124323566636557928752637555364630809889014695898477710749910113893221454900355948143647082522920041520746228464592198519932989627640091584147844732337703341622261673676057322633215432903239983928762314785870140473266970322496379365326466586960505882475094496094820675095417858086907545064492177068306369951289319248945815372676049922129244276154042001598131503287670534986407878717765056243760752587952968696775854301197139642458068106617455058120562472146761887425444023200229800018027251131257831192371817617947594647359139777196931790927019142436884204858728053545126475925909170765456477427253283060304444998385747980424541826901097587521368934882390464673546175406341035911610062309630553290187183300088184053380796124907259374303187026860142251025510344008805035547601093837408547758024077568141573538920292674791585585170024818742654419623406862807511910070581917181595591064627336296010263541722635893421560106320068731337683442257837263275976949928373543063095483438412164186240632219284970775433586016210285301416041812093678874542532329172575936566656497540768242444489948322234950297444558259406286960480533542040245399991767197547058436334748940379915388291510248543907224841563851742087781190501764932588782696135215015787562076157794649666744425071526362683823369045388251916494984008429874373614100513845494846950174287111735225511983981716450169555759841391617482960781797380900070586866621252464709527019910253344006198630165845650285658225447350290726310921593586110350353987232474409168857700954680426710788204176845390571058058159844447495049279655038780048153314960262405982326696446319296525387777630498144526049281379661150252789756758539747965916000606400842271025182724615602895115953030342897028798247469253178624774445977727795167945720685301802568374237357652144836540696815467943486188716983755228680567280910084248940413760417744004161757572385766347278470389753561193718733857664727145296885147060180237265115392101547893870997809726219211546529122450484244800048273666791261556321716389444969301765862652983341489366477285299951140993055924913863123666811330430251633976686646336756533788599430404524160568140876143041396577128875663805976249620302806483126843599673476850391448509928655531732658412492163229507582820560672763838592603153819430142307833031471020053901695773010645342476083944431097771207924079196830617037110375727354382776627601592573332066472631057580492515569913398861932531091126787665041426268136439699195264406513470467229476189208651111429115161767504691317431329172618934689371974391983088683202627159711506113840646687433568942221663387899468492102770645567355354730359247528504673080574583546758960893336527016100156034178812524288390548073506557447520079328482736567971166814208562986714792226761401514411854761053279890974545867593994308519494319494404542313616217678028821292794415205177381232449258896025538728652744672509299328416402796471522629804976434647214071350270021747772059115831124549154697036540823136145741332965746173621202009413580611851318718955230455814587698101499238560803968088450572864840250085265477476196557125324631355296036544786548371241298070995212119440218867954354423741143568425162572290420403592101163340638794949018322646378088772745633664715449338790880038490678555517411333729284714317254454341937399137005653701896143553829008348509326166663534821940000123876155694247068609048357606487231916425677889181369331435048397466638523110586645944922663298400351924553972917958508232582370852220214042919426177441116667008422722223158626067638618762889520740048178144961777810902349483530234410465368688636457029665808048078245758729190738320383207871204719571891206979311932046808098948397778654394347211884994547016196833298338623044088058529470256829096788025338109564299737480713292830288963059722161077738629706569573877344478915726281994138038961259206996444334161942878621999240117260801588139225342054986885591581004668776329198058778541093442606668156486245553573604944790946730988506056480730792142813329890034383380565238197529788278143667492710108890689245254679577040173456273684113589342158469237162572304039061609822377494748588252407093027763501895766418728215551056753803970280447421615367338274265165251923603009129125130250480101625774841838158764406219739679164565519514954711577384437108240958023953951920156350394356180035756736834022569942118496620613464067827793610756567299980867247911551877373410543682011826127039763349441653090299352403150176485724866504189891981986498612816664635692916644035457765374594807109815594981937518564831927567329208696934240457652981172821142592424292945257433482822296337608876850726899157721754985206031201872855732944867240022119537399831057112752973640257929200645464144427427857763553462851280999133386675391320980053505978480294600030242062415963392446530068980156432729402779039355258990991833074474683275301741879765730797722619078850050272314194855335415340655926110170718446038731054197775083042555065186119523420479866723805377239772421892752686978901133540692644066174936454209431879439775501035537929613363627148308643542315888323767547942967603706759276667948218654663646188507355823052681549211314141484958481846908109954490854722952063209446396039880788220207841172556125222191288508682830859286238739251013809254056079684036843874145659736467498303867951015264206808736764475703244546396114225665432402697596932087088562287054040108958490283481305861474063752793591497161926924160388190334725348266551100795377079771359260935372232183149039253810799697579282738395606743630296091210771033782207177833589488541866973163424198511005190573011386244702345669386267118491503276042029427633609171255523478105634257105209007199839489218697723293642817768657921715180292721019158216902523254328961795448571158311967383162334114358009113141493983301138910335485296992875602622679598173926495436638501166167177339411628408738447810485691448841247261450603631356386838052726303056341851409136183543083875789380599665537378758259943586094461722975138983590953093821095441252224047058772725759686549585481374196174111469851240375270610767674407720467427680646474242762454522878206102399315663926442598017836140464891493026203812158795515122186886965573510601136901875037490572324559137452734433630319787648458491838204329005669212141728233265233224201216758424800510808322289537953895108249499990239732170934176699965992358753508196664964470518411931145161215025342772922247271893051742216102503416203110250477431371558211577363345131005706189475152689147355382990683581940807656995861759126763447550459145915398906913755098030372876774406879422006292130497763477456007460998149376926644821545660638184607818114746357359819287142403996426690805467798428197606156500053221498033446650966321034791415330786942317481709003873536407424462729824025046968275448330029893915430410000906804046135884283313133798804920028345209407093154929497350083090806413586927066292761006280739433939371286063222295951542414088491457791723056124235720643434334634097418780978882872725021779365479669592045385268910818881895651107964618498719752202310928192469207045607555561689607461310125917376481526940022005963676394803230726037557765792381593390971839856324173870439825777343441375910328976197540556191082544956879528492199417790266900501176866642497258831104122488308936049526633493657063032677009883225246952508186571652158404744280718512201563345575375575772977232104108750124768437519149686503333900409099370209299866432826870430517994753198690609359902692578966755967651098026103131965652620730409489085393248922537137460959540639090531818147125800086121874102443536544990838556272742629391127243620061421445384091903928525530242658221939352205884741948214091112232151544684417114813426394341143079093438746882376926330899877727816582739852174682107364455882988214352021198622564323540719030221165952963586050876224163031656141561078967785905714647895690647795236582673504074085952494479606174398711737030273251985157265875521591780040132071864156708269323265171209455783746957902538033155604774841175684066669223694241954823024632458407317081462090563882719973030601488780238645739033043483195054645538504149686940919583031139366125730102318433047264147640585776151391280076287680470410324467184124478886321170710440471663681319998154420984581232879558423879820434523587121716504184574105827580954879889706798347304641886600253267808554905300880718962270570076949621112083897531508975507491978726682271117145907719189541881982122955637929353682818847665585021716894905076828828857793895082055263106886080877856030817056367847877256309519551103352573146290569231446909233449989050696998476489082475863305254616055202489528025436696461344512131481334886995257214010883513446301970340974234813241578043151630128439291619213833007316250873196367712848437467831853385589435448495464538710436388258057296189149537583919608655216385372969474227117576793952476289726126298963887575732550755476207129165655232256314747415222683337039332881719215221924553637243670587484250042997925508373170740394379849845320697594021752239767026479673776053170824639307301725678912997959135156016784550816113240896830111611063616946848679117155943478655556528001833316293607296193837116669162952897231843086112568565895025697917616490973258531798306731185259047736306974016937440036433007674773757608051915220240346789913340977544725407553008513844391460608526590295425758967297108014076508308854970023388140685952589994178223962711004349812070327541004550303102522768672904176819091392028115330518208047150120778837327464325811099663223615955317729711081227270593653426215528888947454928089159982762468629900520345933870639885124058915461415676933998938980812361116212164139239531748835805664817254591730980360631704833261226565643176196688336838571283939185236928016287944157279412222032863773388938871037985039351096560487069139946362724341276819757133792965454100932061218118204581950315274362699655407553029331234415426922786046683795623894415095830721716886320165219918705099945520653385690935212902001341114169098366698163643335127005970429231944570666286179155893259116714961104663028184235530135963228148252879303923806682788329473365321485486010332210053139333923945357992627653594348478957675129910958111520127377995855151978052946357095143944849232727132977419939901525313118320958957440112942887214068251050581821591219769894038430049148668188646790594656588819951517122812033991489008761446346828692179174457741501955996937235074995679183603553426063088637089350339255366900849453346309262069591281873240625207948240306379162948840797818609280934439440674216510685635413621638490957150463470436581722154823596385053121826649162296171449718485780660710941806650667934416108979004283112839329460759676464755389795224610501939729961041989755215047733806672547416217031765577388933099135105178680835702476726722335256328011963412761894080470897016869479775399065751331248724777571099248287472988740627407690710848089224602391605646830844760819006212655131763023508479154429225747137240928559712889836435143507339370460380847069103740428795773877586242266935215675449210175973646763931998219595451400248164973826277538011277822942906591590277921593914016562648730369708155449738730271057306966026456340280404993567921725922865128878904232869735855402015597939018909783319536208984526461229119751372609173093740997222181883249875394763288312721958043771349670265303163356160868852090322028598649647252064029837024987311799114454768781099497362302746614291067002362131644196146782794221912265481210303148133287909245050496117679899308955086138167977095306404278788178521121590220700805547520854587457612048090570809734330306891998043805546990365918573343663477804812863144094075110005530183860304470173740420552005111340056007194063448601660947643777676108053555527316756957965865697469015100738104335538194642923072803501159099352675612057065779475558027252360962616497321448438918595079655580934371354037869862806712309462589037858276971321099089199990269762482249194002710779986273145758371023029724327803527671648161287820538556734492208892975542052835335119625971559946782213433234127787262186777192310483625409488725040427211220293623633724722295198406784900563140091876100944536324070370215461305214099555740602101563189708772630126983393720417658322789930942797541501400833285241953805852642261304012989055762721864377024751922284259890102929825292251288156807197670619592294081771672876280768950769579734967027242364153806717918916753626616106797941500124723573441827061506352267287368538403309483846157241580036353083832058098835341360586958861131074027286002936578159714270306070667526368133738728226786331276668629478375775855763661744184569245846139361054013125551779490902719583025426826434562957447042028277855068968509884063681999836282916927251208040305229186212945370474196794700177734946424500076431211768675772463659770512988033348127890056420324403680892523378174947538970375733863230329071655994667806626581140473582523166359870300930900039926398619848659557694703337805101239209337823552230080622905389138500637439750253553888783490699685638345531159480209949171572303986648958703214274152079374064295690860043528888272275537463873561814439105889771092979373905559968636677080321189343834944335026160089180753459866373935632190620241901157970394282248547107129680022007394629855051795350021619514625821230965427996237410272146816552251606237343315091167753123267734601059611881845759471369885281790188596241567148251780754118529661269634426721941710718636285979588513362676579882427804325866442023947158668958399209355881233241969274640872221159716419870922924188657566147899582403412581490242560461857453196532717755931676263219104294391060159761183700648400689373919875599161796189693695160140448649152527694072863289336106209423620554837928369347073245272279444095335208171708118391710194741560681718412827688279270299968177149192148327729977177807703545248510932843348182961635535781400399093695576435541303326537710619854676947587512656667458452041249140961437425482667277154190125582536860616470779782081196970870219007163662792365319487772879189495592158859972945186060244713765526047388084973969402764193591683495088688056456974585468605389027851623574251495639426029634145472241418824926508864862273212135109865610036255643329859719015627895839464349833239000271508378470036618934109901676987986759432649710267625173690826965275321744503838197248591267714785310725668296584759886847047499270646808764246538431100465254194734683031993678182569313698135666109212349557305278383537256573223007666581769377986877445400402004973792562498913975113959745829359998596495174099238259137969714933990914029020661682699488287113531171664547516546656026250375744988212769831906616364417632816425983841573006671968441242589561463707700141248416048969181539623069977113759042744373690600992438792105507461023409294086149125471730692284772291355526670796278565638177350546748577299930444735186147181624923965168982414111949479786223847661202176448055120277638837324837357970946744017181637454427868924598941473951561865337522239294034082715495691172423371063586681668065980483233574214160342946120924636191838566025242916852301778314486710481929212203919096239659747276019767149280269935439407682270045259922509397499811474065648577816152367582102743242963461819547052225380119766012830422564205554558833457757755134768285109394520953639319605131916621992824942319674659032440854165928846170575478001084691085180040394836272848229448332500471552187474902164866813196830775707263936622496019881719207793820372560529140453558851246758651908305482102647301810373730367253883020952190549377099137520538523520719964646831276860648399212152228084455210188729097230402535812672661979534159713073016459727954421720485074706394004497942239227691902359164317824550718910863909096270145986096640335227816649414423727201002823423110891130916267379441568790749689875837547121027064343586949711450156012277442742623997960796717335908976528135631140919231814567446232469234303756045564637125993609680952018181690296660223209071816447806923419455885531082561193386553284957143374768143568644253697357784022448639367810844042779737362500585527127125036568131065382339104227176843651631021429501397817327600261115502946970535014500676040588515767607334336729366386937342909746885181998922951788002044686255407606726369190765857264374001132337795988781551440655457062405329893707255541208718967315635157812731796120448285927073355123631809422545760975521656941946160291998564671667714800746833423115872877837839987769684374886771722074288041733089669627142896459872989216982821194177287466636918359323647304735323835018373373747833423199799097540851929196377761293266483830585508362207648681496352935704762320607819420355501963079815776318838116483920780202160601297478152699494008634437634959797857871799657841370202790358387831985978235604531450601947385406024155983509547056743307518289183179754570720048434479959022895011537423054378770763256749560616001098341011555884732569528143362594809512772560902359678860829416253102219500026596695913698496649313839746111334721687572199233157276609688744841887610337298762052219967695388875600307563123822234158520231074037861074882084612237621906761791827440846085157083450896042841897782330348968669807072462282745905108054446463249383464087776757409818678879114123498154731591528146289605901816461946158020465688866173182514593685528372902278335536472246379952072956583478864078883012169241722656318321295445732229540400544142678067050496772204927863448791892070131951690015971351493796088340063690757872577605600311479342499875662260563759199891583854698281851541371620984610268886452388609727769096687976714434994996594225175711860023429666804323786958153338041417306439145065127045187213747198024960849724263722291812851418453534965386020097721487680665884252007634379560885742166979666641615039389298926789999308689381763551311351317367233441962377407151128416211665664438153779412511212770567118629190449803974150953418837246786776941005000161372350705677097336991175281734864859398641964920557214065303553748571915935733959005357583783489085579487915098455070437623215170416809967326443723931329436277883649696894972493735466509760519045510608645618575666255440100896348159441647122897370774862590879899168559838457730978728076528654818596503090624718085128538892144473898761904824806163062344015083099628712355016185538330924311345025585250340592248403522945805959667086102750607764467087106519663348611142291728767651306905750687836440861587645282418755131915747891425911645539895714888079076116352974864700400149374883124341776466394904891890574143361946191262872236870376304245277058608102239876705491328477144026702745174189833955881990876146531108690648374532573696438194656617653112229912815248320887027805594517803085116055038071077020848426974358177256630013365365771227977564949664283123144121882538666836872667618612436334604282373269614433042410532640897054837200799788110781065037116033287332294183501055929486484724421458982688372972521489866335524176774154149632495720104037657906334300728674995695222684937736904539034271079601881052792004074724878671197975716422800166119873100822908887642262678086815207307551460944257387879485438255818955444011947890011942380941131172176332435157159542490630607718623312805588909829449989206971514870089936593065235339415689063218790329118072559003424809680682205556849481836890632083871415758500533227239108960220858986776410464281580687402270627925491837959579353729397366271815345213323803908264048133250011834332915484630983301833155411982657192783699465070524743730729468527549784638892678821092313433161217180360407697053226172000931309680957497747451046818100172604277895623831875031641968179314919045125534568335333755653026968332493028334794406093236376459247555907687794652568367017468208718864767143732529910527075251785510037409613072184572101652316156124541232929361197215424274342525281992176549033182836480296569626531576319816537078333675075984601038796777664333240861085596113422673745160404705536213683743083470241801478564889537238019551848711661530919224188566615175313128823351322148156853661408655671183543423908076560426278661514505427891304075488837365739189249403467452367023419177733655469256376241096220353442461388093952216939747271739074077741200133975052585224417989630007463153986277129552612419354729224781630948933275153118132159307783325751599988918448286109787076671318931069014433186040179576827094070571816788161942866692726087770885481716138184446974281926508264348517248545115596157546597299029111671932132018318844956147246111760532939150776849219054757061201805927859195115653643782467377013306828058045816988813231187841641882992369137732946022402041513911909267004593854612277276099753006363565006133622875424965060069712600420040987952895995571127310652789606787761228714362723918363363438819715307322400355529548471551471136696728306480725675523580630816049663803862145652012982986364112195617354355159662325799456805164029104041753335863506879262333284202575027062875976402678037273547791359180755777714114436619552730302934633944448002069787328891932916494932182873728428357139559672349410509603865304821838966171428060713247373036876244189206145992447141668927665418007519834508074063669791692843554204078336868916663815425328932425509703213850708648595674196808143352631251497862064973729167944057991473239265999138545102988645253035586042655597839579736894887664464897816104543572043123569346184456368685917414602806161310514221641502011994114916665846566027531209508214203960081698875150979047672704754124995950260878904246945381954405795272321710157055552680937832047268098461966542801539594088542491347949274030413599538038448735251798826624351784914987149892245632874411613469744150304564172778026619519557536481467499230979203257711639459830286589883651020719213232353755700703385309471934682834441535224084441294760284574444280527469533316437887834704229064927667474802358602077097598106126440459529566663204754820450506080676369805126986854409644274960396068788587138496977476548875097967056555950672504745646929757466928706947603990422313960834504440164818349459642006275675550725269630067517329582649043312371179894400379032307445458931911882633109852917451651755945096597772276121383741834018500205016500106396760980569523672186557116489502428611639447580711880726518370258046540424712711884970478175385028507842695890737200786532852130284548083373074823342291357065508317483581311863589563824151998333114145766481163802844716975799539629035919030815295197061980766168060047335927991484446501795421406488330597433771263436916489856618969093884013442153240699402314204741733574240806986179739265485325031430169324175788724560891157858076994741054824681340223901782811245359153909988650079101054474039325924625659049584394037428825454866099759423987148660513938695076038066189950483994892954315934016417824936803532006185646266105343253842503475723234826017615031423262174130249887197111608263386788711826349314638314152569447823304971502163158174852761096443621950929987713155157328271613207750045350158636248567887615032495436825336841262906582290639723388101804924182355410038387531260926626227439254131085371207989804339038677525764311751037613008518918755287749944955102663912243270094691421401959482999618665926280923301270813027555913800469546527412213145790009917266434792619473560991988656202803062774915804587093966409633113782774831378640717481105353915367955873146104563707488426727714171375743278785045043107624791258676936287299402876039353916639128846099164021532113126024989733705055584176543131147478843515580380150818580728258694845812050185944925828078551693951345692507903694266936077449024122490087694623992255178066384710712739611511793908292330962596878632896625899222246657093451706751357865502246976778205211140722524400351604791277997424105250510373749717664571440893904628370724103145059315587123691170886160044323732231154953084471332897644734798357236066515959356344384565902282875078692094020768880197678026266421927784333071282053991004395374204731191869884972795164329956622644320376559880130397654309145111477480250682064206579990260150336113797290636035659909644585040049593522004897870044846245786937206578937124879767668170540308684044608427025697447231790912976898865616102488364326023158587066797939424766300228798949094131791935334126453315650309164213425624823929528576151395388701844438940460286638269059341028826983209273557207395105979581549517965265382227917054924018185832024778986112141882828726638945781466751212710345576512137507014035604955324344630995705659631908841805388729006520507433273866113505595630831950342717128873548527168323435924752010941274561813397334972902291353776867816186445584679719870188254733439921750882369018258717030813638884121101765141376492201038137128022754705394995804670478396065062058560713267259892449009592273758688843010356608581175967261769401083740865621595007211831748797081766150691648223361604331094375142194715660344297790338109150104934995314988892879530540239386074459973494098998395196016583380880617990365324576062742997233604717528351385559258664679653999478948277547755147180624919738288209160771229216260191397603112693113817197640900825205874785885719071656711541371334523501538372758220965804844742794289548333165445587562118673327243796735789623537459495221082442797396470123338176004925392433725720917587870502735668484711648525482198521637924325858828369835925079821984534336523574888642793138449168357469843325099398416952949696381803358898761451930737348857557852434166772827838405121908756969123455493948220008106783155850750022594753071448774123624627148152144571050269262693565400386896259448014978271461948299321215578597363842948081372835035333862730726870794353991271249349797804990102031535875794088174819245814860477350179190162587882899413430026261467784368689946220490476524176091292704134554421585422646942024762157053037695788702041252963832440827583613457556334722836729583157591513645071245971115630687179123234143556153921345105663231406524439448573926165725403387609657379812766037200234278378212935403760599733079148599787605091618986459248153301545270289619751532275742255368456220927585434134490838322193301939944464365743687706808964209806321554926738089639342508780102069126700943304469216103575814813468239963275049974091487870254035327503167635540223271614526769042161586550320013071005990160720850624660787708848565193895816393223955671063062946700043004859440427164684042322954958704565807928837516942480499065007597599528821593164268459942937329711172735960018872815791430182005829808959990726890382802192933314477405100694864636346909024053741744274409961112756702052962938362559462445615270755752741777240180295893460851041715592722007766051292326748895119025460511828934480206826626171202579502576339470003435998143896824975602820769522799563498146298762041474645869605743532640263368901317329950300547618044489650755645297670317858119875381176521881706798766128072812599599573452141552006969237466757050120935571251713689995246717155833582476332321604679185386761358685696549946778305167231123000667937449193765240233386421139310102533167839560020927500431095765593836170320632325635457044650889332440404962839457813553382671924289578596191651682723530494047080590812988127899408389874218050910804887885121451628086788246620880543908190166738242005575337815224206495617294589864678965027600274892177702816712925831930012459613106408093728456431280423972897036581471001094478289882553527295433972955140573777480500424858916311088016482686480657397652840704047287298261919084692255796526721793171327888782417822719380794194617438015315431188909266755900157727109471291333113473656490025333342901676677234879263494031857111291636269136893171614164082220945921263567540266953839833814307181759726018269742530773039174412047316431273635290654218183910686423472586556494322396732869269229339246891649761785721842641177411912077966759106066191524999083366139559775407065518345714363801884378310535246158646741848811877082084549503412978843271297965870546316272285792407920236051382394632304350965381968754316508891546178620156048634417391418984154387494667025781759670312895317264307123327082201649915421296988287057621478751304733757429519436221895864112140917276487831435430567236296021877477718619062758024890998791646593802345354806712409692095175247382539213748535206037058720133595303256036088417385872808517285762061959326430102689101255453352998866082441954517141070548743498150725396560388650809109135824956804853513786355459089911110769007245495086309390587830271785137228005028093939211560857718342690637452150684424259150388353016092923353437568046971395726064522880352434121541329067566423271043652577459560693755681246120630713977783867805609413224851963307126894241514354620408127674985631968559960835826951333730357098011222094420036739295588927038623365878282842556682466686788765375572105339597189823794246803377540894206380470319993128502855572585397784383300519633639696755446351878380479208988874427065923735878037768371312593137017384988891222367981429477548318083215825144399378092028794863486703653704897006813098003833536460349268949772482850786178065960738412695954034432985868919316949636628491801029212895989838918634577037816519279774119611152470490472530483895061785215617921607351787709637013144183321169214746687009673240560617774860317824826392685188911795861949520684953574452406541375950356494533019869402575957313111319931119587072210917293262817641960187805417983252475222894038817481604617214076186391872907722493787748663426035552955507243578886306154081004968701281052261576451397986616155373513703194584527680318428072337990419782640309015046983178854854241063824979361195893451238137758217354923285852094185166678971495017205506959401949948126555036825169547258084995983346695101513915158306008496014939653290393135492659472925570511829859267735196309661231473565246929693543327178281149789344301592191613671363292058132461195005670664447075925731115183589660620402069608183218485660856373602011438737394592625912808616457692320495584023444706348746973761698199380458051985582522684798990131460600334889149581009047102670256197330351917668790362901968690192531127362327469410507945143165408567126838648186261340056034377436550192620298875943886149077455748434223514657499979068512502016669749112956674260295734567231289564808290965180009751603089096443617477641253241946727332843882543779914333600975529000117585652319388349830563495481266063329811851882477435047935697574212662045505852928186871299682637514390079485822748557937732531918503646685658156490102894582851391727945120947262569118789527603369475632865151667480109638747809987088954944037689763507624299825602575050044689513631084934340827730790259744020025922113556479399066459905627513623604120739955554424065998017351592153510586309361145033022712641998965426413426720134786019336999451446985144672168575137897031063940083661908358274318771433812265494044606751792968403255440933043542033741981920758966976061961428990160795924258146039006275581712331636522858323461772312342708616893962800473276487375691149063194639988767521927669166294562242991246028157119925981523460585666531886724229133335206094881877951140422339153732663965536172088902102166125419693044887562255415268995619461759760778522506781021626979472155054619891784141970111165049085616076345563696136703615621428828054933599296825131244988230345311714268543711038650914201767178270643503812547750951992478726265309390312602490109789438228811558245866246334460195475048648728046810983071339742162466339609307123731792515253283284386776913230696286679366684607225257394503018991311656049566914168035716218023974022479005272906599641021330404627758156056146609791295778034904918077473822709925241729445967719763108470333712236216013516520349540555359695401152779942873844734047717602512424908440941878607768895909637482180125089783946043123529626093101792094118746964554436869445159271464961121929473651653065962848692210690700531981835448637117902457437516786161080844692426158873749635361198175303007754838922763823092924709046636654774992436406734156603546189075475584712177931462634991883672480147764007618179001409670870431513584801131192218786247388581440879113168110287794514016224975342347572813239545388576792718286246479107453808090021743862408961188118890826751817269590406022992423723621322863368544673717292450026604682324485717012925163913605217939813151082405575352629987428555037391549149597896502338805031382283272167548213257272511597554014159512723319662395096174413574193678294371801124930375659637416976439290466004442309303966152799371205770363496119836489023481235198350518553611546563712492777266231295404368058350420008904423929778178101828815553545818755103346025013341356506259526084500506326821066926474344526670952281307246165556749332638244644754536913240272105739104433470520599667256311723678355573785598905359482946236095926170022953722167010759286382181942471443586180949864630703841268979364552829507303902169473416851382869382568088771338002714328796848495021690877117684419703730813289918830797594709512878625048879759460634955921106527269853027885737496991677244066142485974996680331343448371528535376351711654397093188450729554573261130743012036688864559643636948556368448145648997580496019885174755039104916571972548272397241782219861904648278513050740095893160581519640562641437170299353460941359469444700479473154363674265719372874891873627047025044561980141626225361447734603089209646601460089030787597203548505202690425588521978515303494957767358317493611599297310163036915431216138571572592914396074853898370683593272303770856941165773388110742412525055452965649980025877156254971908163450579299047254906240208889444284709931229555751475668419766606212563148144812420948235690965421006731565314242494210822013070404351638427049564132788295575317847600672411683251883486992281908445373000916561227457252916804878082063122746859416834452482884170411123315020002896971802376936990384581852195723968899750684628792880563004844853181167483005760556881385050094028849897984898328409580535464729730946380068720520643440759142965233001411839396593475272909934095153274262788463895122464569855292136546048623746599991475056054031792321202129991576564650649228567372377772034135684957600724569950222878993031555989233107346841469690523766079645111017192754655317648572660062395450802391804238356444850402443680912461058317137173962606455200672043841358243051409201651641991529238691871285783465613630471879941321674202839936747805225820803009260524094177693956567714439960707601501673331737538521075487831205343972036153100989455481959813753527762249913055408605869168915161646698835928948528635504611273431011758406892714626777571973093215072904702064787464074203961006354252996786816439833019494921705037743208147080791779509424400002230020951329705120717349266057140493345722352110674782038090648573154752887445873624846552687950509402774725722421718264191066466119789255793346465323959411864503609669311830824582118779498710038816809598021464647500006286079758617316538162096182914008715351307062913682036177004907181065947487152092824456380496913379730106153682097557187935919412571278574451553715516482970408022784491524694316772193707696927396597011854795345100847368760569884796280276456885769888263463262119312225800081888738501301236285053954086797833392460229331571789340542401362309591519964146512365657817253487253168420980555709716134676816625890072843716029774953408296243026289806835082423503365743853827978018530482482515327762433742961084076225542877072715942864505650687025795851935609875541289947826942860123999149183098117230542839255852661211295874794440837932029927251227556996678975985516584290487125819376570366521006062737639894785644393003099656678243239717016448166327281884727156144004700298579942103800568972399817769351514134015895623001268757916617280443913810862736942101810195710732812822993208479479494299283312662912956878764847322264807700518440063391558232841852966003094927915312516862662605132777008447828139608238632337732362161558893941077067593979984616874761928616092161995311294911911451594749110467377068865818554345435913210371188341351226061828229772759912229586634558923973637262687742949998325100728346833035093216467764342267738243273248719316475195943699407945776467403555001887325393617120834630813545706780237525413501792709686304581757315053966855097720714730537101479079107269433309786047142508357202814146498018469289909335982999018500107956900380985887575752183037279342913627314475404582192038632972092640258789102305965043845446237845268047902526648186664270762967991434897401023131633542845955412195609335027764001793842370064812883936894542671957495904941837857636485863689380448138023569353262326640257926269510679779987892663975697833944320941578038768701215456222152383962432324001053882945986746498007056768257211728717976668954327930718642788170469222898823037783469390902062707222502079848768047431452475762829915683093458702508833397853648948557077076900846870556539467980116233997288657504949925140092339290791341774935798615470721553538131923766505567964660799926015301686338334298612962581331288280907064904840600415350530731102506961002761931953915955245675035826945028157911763860745514862011639966965566262883500573816547501830942615673089094320133300910190948241029456820086991778480291602024263095582392785234623257666282146027647277933363656462075940743427941885467008317425045861091623600305173202524105574975254609234773541256475880172619884149227265145303904333790001984189266660469100351554112057119998360104516525625092809564092896000927552873170466427032676079928465308415047941248825306184181234199383137951813533959656373914785970081226489461019550059846855946940477852063444071607393812022637727473909872890502922574548347305713130847152360723124380003885209887482727802835950761189659340343458736707195740407408429432096850884803641481409303209805342672812888445152927117780972459208606062271128915616784986369301276028042485940245617695918918427683601692586652312515589568536509900770100421283152103196789945372819703704665095874751762710252798897126001184309143591690572752331916842348735806132557532565286254708574559515650060433138473897785134222917452997920252673904214326300714537513897251106599524056454815495103203284796932640425464287109575285234350535836850959383319079385111210602333869764726895263177537786591989793327851685158376341174998856265700316297013877161736097833128434852232758143980223889500645455250588950408883881988810685068130720037637283641402304021611157805621656393348031401716158609791422659214550935859580338651795826510261693433305453012990464457870298333914774726370612889548822912508921112007041716759001027037741493333227269107630271584412306523189291041695132312811467695813116762747271791672313103323459612562874032059098173101225574139339155488434034890425555826383772571977380401133659704140903646647844480046275231727724672898059102207898224037454564883935607817026623534528233740498916804262918966032425156689358537002582424036253186747262555547621038176194915528304979674193092542971366364362788655633628640553484365359026086262894869062484561856752584324959475012689959295002460865093705002573932296999740481989150073727256304324164307445459445112120654642593222300981139867351981707762862024309668045643468876503061888539838969475772485068546302669236614345822333416080624653171387412221742596123847812253780623585929154479549997449346392957558879173269656772299821668114993542850377802726031543438212323669104307495822266473224760251436527307147417933841140064529800709838697254998843330475283194706874111159637660738185780503286066219328502208659249793274646016651680469306097051619912891485503710798871568060588368551763059564403866605312957613587494787904365014571812970436902020507280970249746644286479907549243549100101716364291492909697178192414977896643638810916943727065708698168261096001450222502781689798974918293472431965259679574988806192325606086544642734891827533386341821733632783696169625084122143919520538495925346116296422824585582527026002936771016966845455872924499058171764811296185539928285366630609210661511687460679426411397468314531099652740838769033975146733541873672946463432972042426489301717516180542404826743705364795062193881189833298199823741552343068367975685848098949056459020059119483598620433742604291055317942636652838361934843944561377935492181339099405655562732366875598923049692640940587700706428914702200603932820800396253420744018896601412544172828184735455239081047320588574611375533391594071460743840298039953265010877232422738074326137869803400598965677338826140853722759617667775325971206845611254010187398145973671684142757710247385588082378721316317547342844196657656811196430902824829717495060574098011742376427645916853646469113937309002534450663521217639282917860261079091753943423416317617721201028638191724384044108457486916806612871528229705378789787285891189171438508604657166688868984098430235016583691275243247323058336236591143856898737525353275595401052194249043245306468814768303350616290739168287659273664305662643563647494362903214470421712146390521245087587942340074229916689944898744953420891835614420300641173037830710806735162398114018346383999411300481477784629950821352873155533369702904154592558461977867271900999555863372300226345829828260143279547098958856772140748415286616413121959440189359082713001157097432185776635590830337781597554391609507534588761918900310565142872728067164078328256413714401086564504232351031446869498419045234553389689630501772083731253199069106329996128746926993609461998686494034828494901014672361990260491206021133652668597980877223172570637966809500599317943258768111176397003236466787225200806613383505348606768548810772436132921098301758469474442669951599990097934398568484819842377225403398337040454052416474157466639526334059383887056677931274150416628180218935724341745762089698014868175156203995885999278328092782594381894085569435728134147694609869654436913214054450939201984727130675272982753827888687909521129912242956273718760601030385694703649272595781706586012366203514734230871926797786669460443225751024521816022185118573714890778277580952086564752095684112653245098092797110035368992738654472715601659158880603551066928699056807802487857346084508042038545089995618214233985696098517982680207521890057767165092899315111430525546590779776268292367853656634289201402547258339785692205669678878769221403576435371151451111751501184397341269105148367037879722810978619807971193868977993392390097882929408113293661134429627907751403503450786169973144494237218632137390748967637264757998560715257661885917346370726138176453462127950298797492260757339773282585746153229305116009745577380770391940955548399581773911553841108257322778686519205018673539778093367404861301801949975692336365532430027273881408598030539673069706036141111053803040191024476334518355963230374905348715965203099181881719773990672421880088846463954651398045198661209164107734016118371602928141232732955940983187464892071387507489685801823267161870106011135189834461984690957237375255787412741928947468360981746018556084517868883941278264512026560106434285491616634881509096552254279378822202425167129941650507989337071095737047196556749288709446360272041634726071051804586125229821933143421303504353303024039596258133174737020772503677664667136127489353405955694857666659102253301594762039797622938122736365556846404357888735548933602152079716826953313269944457671658831128162326596180954377627131803417482226070115251587847921410735612638577797777204027919624505205677071978682509320783144294381820962439866604001165276481067692117075674782152394090053590341092396168028296259243523100125306791166015358448821291562683511360735116697637254893200228217278226229188812832917657069853918396141687307430527121900836897680233176789257525926246350592267694386020608141650217945101875670995322614770084554655395388760901064573756471794779672186990912157360387324313633503748290372755461651689357536310596849651008696088307200325315423762596137354688366004974521464293729673189456790415356056454518242253860944717213093839114600916459359783370773171234180526614010364374118449264330886826129646752695679664106973812527290247339083839023650436419180026616584717642488062908484658833387743244858610319148257116809741136037095405823286731465803781970844605284392177518470668824416089820702352281167960910375091284608701479142457956913239759320339581253623446051792729562333450704436743952980432726382756899021638529990762264194372041007199051756235196916484022202359825675928315421800498368442267505560886771937745766696466657297810651412567710185940724467371777238682881062012464739315067286235634515258204278556258078310806781271783917250589197844413398446666949185632373572933367693066340740989084252324855684546662227368314867723901742140955054811878517336650100324365275511954734335682012095757974498049923401106627638476964687728637601552543890301146117512029334053075234181321600105495649254853145005784949638062109851378199446712891574042382624438306463291697617635007506137609600627833895484972679989661551715787186971855909570699191116687214868504418845576665117749318077905988044979620300034503457815284430589742982818332170476994186425295205394494574132597800727344208552751886133238061633496993256644415055619584474240667215116987670058681038381412904743106352302206880457223915925491334889253685934162869391260332413419956635878548386892814649581183534604918487843751456778936601871706546421040784295169488704736281322202135356515493219671751038889305754200152873606518957175972890620400931760231339296067718594553535949601947209247827725586800101272069535169238029522807476210546081224544389648880006210094023868563648146795474376835746313814908965602705227865522455115058575763010494947488004442652391795468579170229636114856523937852941198656236559661768764411375726988036193280838713287168783414799517562567289687963576537340309987801582659199667092789430685675904244926399235667086187308944376998687359474239792469178310913396732169674606897535303686915272717645348852222839057204656817311559773259283039230885146937338737616151791382876331855504685616562008654097870244917096364920200451242797735298676774729733139381457091664557676600966108064267790341115107262386096455813031080604644387781711863427547649332174862030335200008299934880903064448557726979978715694809394512327720624264411588847063195796234184687608462018964256385339779207323579199698027713393979253884979483707879500192899652302319087561990291538458602026981831487887574155915738473484107245751580573434520634212788275529608413882748780877499763671871000963482086054589305918945477185851969571913539571930173569083045584087110045120837592145123780324313585490520801898274986487111348950398211080428274636531580960373090814937005018144834835024628109950161436151770152957486271839279063727604842870791018143770261304693773092016334112352635206561013688904240852352761442487648899981019183613886987822177326760014178865886292025511958372412835265733688008846062395556689420074020675652667567471936325472713953277802659304082888760512350625936313471217409534529171449855923291739616476431598129440474904343351202562097114839313721618536237375429897877282364878145370914419158252357334482459773680139222345018125796834420117545336274423964112950856969580396148822431418929183259764657660851697881968222596655643864536994328492132719237532996809299799707406288680088501464227805647135507872042834470647651757660791778704071958840308806819086509205954811934661308337525324289416919062709590238974254051669750867938786786575724445310737730709162797824850708793871086244447438943200605935444268829036324453727089748057534614582724311012470891292299597076878227464370897520958900278642144196736094891484988438373393615191577011091009889416279242644672315105378808798482177929059600657354403723908782016413195317386000846603056126999092846107169429834232834349739797468203030543696965227842812625197045358260179303320320431147994673425423122977260275862479239737661604369448962341658605898810875498579290888581766653753547929173789949517820302866906768821577521829502922839168768625983421865006155947636917863927903078467963882425478628252623232113940920274485044785423004744297971751395407232200233804321795766325555562190318408658166462206095583639552518701030397225018637640839673641924106132888386760756447603515857285229289323756474001147712860592546184616077609505550533437301929211982833094328792940293970041930151681068311329333134300966371214831079463299220688636021163048519779347720464020543335004996489527709188979810537049080310920835924908698262533646901146736828118252135553500206115301522746170644454542840624085595465664390694202374679233172043739068835165669869912462923039890628403963893801206183053724680024069106242802466459495864402183509917969477472664800087842271169404153409346588970626229235996646679865140445651343368637786406118895856618818696296113229053277116229257333396216262543510979237497028933946681690931598896648463827063887320617857155566086939502140613457443104011023575288057665381067603084332750517434664174728613599925136437369661641280170450329444058636232431785599002187262085572435305164945831969147369753024244980357727500213896110036089477923734794273688403879023065194421079596732392928712728095009724115618069649251564918617685519484405358708896416090143448485470559713169046537269391095890471325935070633104267053929931926545094987353494207393981390582417606425049201153498939157498527919717050876894767766728604789428877908121549426528507503848339017370779675325185940240456265813350341936870460923475618755889348479574399976588155948773362271990667846322243863399756373184799352151680361640141500199840516628780893858807875982056854186627183767395069840226337653490315386491185259670546694340575462161971696723692183988304169026522800558597366495222929572473615034962400331957741949360471479792652513360689644697177835032436256323866687940141558018858490780575697609912973712399756460573456550045897675288580083799361235382333520329222221382269953358524237658732258055853343118925758518146645867179665136616561972182548895928541705054104388515688744134589408731879701719738037436521172608268528051463846444692509337822659580035460389719407212539451847859012817093563053793024442047880721192189884548749618318471290027232023251494832491383305073874968565250757307157981560348303575800448205357977409129913575061519489031154781173444279814389328975994425642519128329075838442673362928457677736895600841814897684137277250817386125073250872840258390166309864251832226951698265524371770840870321163169260036696627967989575077687921164038163852735673844975938987250697460351108979011342482438125131801974088200661042869338678229093969688014854214226360520352088254305673975143939572197045193801358285943524826617903309920948859001938627559823928121608230579038962771170763153188223634416726903761274050350027592868081818693639815613403567629660684225234365994594108118535356612746019743674083869905473342079513139731752690195198880802697705250727064468448539365249512548979025259057858247683937363692621422644036719508154070702454331848407320792166748714312573404829012985854088317567254975655308963535221602955383848805598847720699264715885597408867924096514774459521071664807251849425933653155468687583256855044962854913786619730029136296643179450547503199371753339637776334453773300598632221548385094614253106458417198675052532732959971548581946793269387615216517411788267150680607584724645280227177364381535599586927506292461043103620264805035548654444722807543138767984628683786736617984518000432942416088536157408422590765707013179109005218102439055273882401450027944135668858681001466170033959559553009602170160113529400133969312724921893671025153191124048609008018619467673173097709955909928368776669155142979984120082455471461401539464752941559207423407645810812483345820397706276361547498088031320565227166283329361301785082604013406318587821414426256201278551195810464415206572893383118275699905830200804810657858491817146516751639010717538567698327982781425524021492131851142253378351060513723154099020156580582981831416352765952599886332759713651683298879520381226582260134648228780694473043151064169350837289865433876454570748309370349575484154760146381278383050971288136076966940304565232395359518464312148702760718131157020702584388246516443911926835867295677191983160521732498392532942689330443995211053635906162668407351428739092025038163608913037451568993863835553896573623509441539489420838947993267235114217245171849399332924253784789778575646697607119568680054117993930658489701123718880035888171781761306492703124612563253753509358549312238402681722754117314871681758423421268766133616074739707535723989867878087322103945358278025352587436038334274167835497887585800051571816262127627209559064912612155453702671810902227652628545237634211909582955514825504311821648150658173852663802757963941998871186118914551885062259091361656795666835409716907475611409704880767020351143500041966875416265251195244315468669754033839370465060515473042984690768700634663681510947456436273389764888188464378494240784508137994264026261683649092184823136907485212770384371702044402694429793149134697756645070208563982491432509118662691710323216532560667011581870060422619214510797270363731373347594988275023390460064617076566420989950009333778615521340277707469881640785271685206138556674315352528654068246376454231401462010633683140284340812239980832029103282956898293408245338472417583485138578206713826505868464586274452364351361425050259006680930362429303321132645881649520162094917564623754573446470823172427820998433969711365145336284196011664571992155181666002673050684845383777523637492463752034434308076990693235696010976178349868949333570831495607980985847196248359658105945339731690421402420479913068297494287774987955955323158236588054101125536430576642063017495584465861311852556035929520604796468048569329053215057579553660552244911934961986452326821562401409046454764396531949494442921707148141288656410580344223149193921000292143084932160623886855752873607384348904090061372426998908417307267171906877126010312251464754738354717927497002301310186226784843585955719675536413712179816755095422439274097085649823388296806721613310648041347098214159163670555963161066526186921822066941142189509619580136764553338571085658447243780799249794737310246617805217378103443535271132022559497338310297887185068176708911836463638069492042597131012597271341731182133501051084919873679190757332948124734264386404574367548855106641183496468492462533294465683736319577265687650030955494873230600840312744644927329662090663092412749479226616393363682149348653880626555841569449227346035130958836013114175682687878416183885385768250501622219017448016556578025146527263140567463554781174043855777972075659987837026277287118881037349097744991516084620487818617173292875043983790242341559626478136651149123026921747707335790457782508151843249431608265463252345283274363919773088171724830654540900271019620005156678537971189666583425973496317334977094074938388225810383331516700287180092507878715487659524867510424558763802467321322477032379749217993056542918882194817513850632382006699806223455195614198335092850972268042238648898292962460799134750403328147240906371356818475162839778505030256109638658573946667870241706814220498863804551497982641613143915673406946279070833514833157161039070948365792894343258395911026804834357072984619913410176708180983177598117682207713715279571574518048053175855895709447743807442870522741612374285562730262732408826764971027456992980968981923484002497644912881671132129981669824843549525983356824566743136614886309851662961312635374577001563522626191876587112118951827862301112962628727548908304445493440235105860395153201391221889388563691352556907528986522593408756990522067420934301546538368048746241815299132431034490797416598228254750319615815792507964003411858034937680058686857639079708166345899408305974610859859991512731063026672430215335882915753787580543386985859845539911679507561257809308339245915384755085539842726294619238298975341697925430835978418939627831402768811306215001753548189596550725025421489654213038887021878412468144758377073077475334727769071644733593463133477320808936270893988949801575849585035518583623979012920726859452841072349198338028406410096445546236413885095242393123220051299748738314997996620006006617272947221058988964581345337163749772155442188220540817543359679559260212709754975136390329844206601776666915541627383481363251910901824484162116195551997426583785984036681458454724843255268928039957769100094368219338377551402236053008307029428003668156112276641688983919145081928204729093933063304905406237721887297051104292926542891009211348708962049279018516742568247310717302820132019238967995198224871702137374010932246688194038515914476921335653907835738161715816421382728820992908074568376148087642368392528730795006361401502818136534204442542390346071360653456218838635148634848826094942537736207252305709319525584182853698789761438836498102955647230111319431535193075923503722223032067544886923400279323748154592581904457765632541373643624591690481384778459079154248672047937002984094220514345793394522265661672022952636314604499116568297694306205799385489166301911566782474997679745475702720600541732869619594729181931245935311102860856409255415380520342426608919660344288370176291672846844750861289530767372458060385762359912864489268337689990564485667019369866912134861042789684650462525091016913035928523255259418193860839870789820056199788556689782236751396304483254078098574970212902445986622719848741561366404968169428022471438887853039692106476150973549140858996657019331719946521746001236294841340348713463326772094153478395120610297560409797048903131064557114687319500152204963512049599132697407151137210843318523870808031478003000546392856299407732775794965823159209538371819956927125975967950265937371730797758343888311947861797782629096157857364850935769683218877361590139896140388407750038189861427470903341540914903950264089545015813699719650939272460194473975031476163351900141006927767783563124643821093738707922086072807794677049097478193574250858192057616226097799392118368251423768044845676774131596131536687193199462907674804471566575179864023655931002918297209340621813010198897381484544187982545175063054790439305157060005108186314001012065052082559571405110490045784329877071122082143969173820753103987839143390880052944893170695709714976468522873400321853081634335653490500690992050329047578000437642082350774552442628257178978912759877231096895912916146323927204361798895914250453316237123241963964274253595928201260133512503237136340262260136279388660097187287978437934609041054726311010839192277034748101846870045852517690073164115474300892565836993263657559944753298007612189981013234462279232302108972582473293124986439875590261955307173591748297831123927202019887190421045865162389468747525861842912537136538274662601709885915479217293597240093777451811259983616411867713362907005491006183518746586622511025837040623570549765283427473028356179592771432767359493511446554342667298724774279589611068953756874161552161183679424325462869110947475975027782983776495351335057328206816053384090909274853212349982911845007384129190877979468088422171953984135240940265733172595169223968514232287343350113393410767159318802759593009693494830325605408640692038059153866769213652421273052233657568009024277152508789590511772880357359129924142345860053287896958052533193905944343596405965578860873288850991112930544491043259327601546927497727009644211708782211393108753362429867979112298929764354429990305821690866971955023140316971128892659091935819941922685959800783659436311224951144626810451647584180533753929009750056060815100261552968253413000329987200734093885065657632167038486117389322750732173397336356979941863875936506791066959788535622805028605387481940553793945403634661030282047587375951782772254014740693757071295152578746079396579276600785712630791630367302803229124138130046455085563249291636788570555323542227702947938078642416968906535272146679500221730869019789997497096623547514040648921335066325743930304008488848780068722184757115652352078138048500888617302499224913689738411854910636705417949531861751345624287619100777595916742674581860642302626491164955525932146999398706055678584043402525382988276293511602553464929139200594339202110843245770035971307755122487001982838471199948926578024955361982627312048328029148861146444335241358724049682006236690117168780404081271318409484762569346564206491546546467021733164560264583089192778592462300946908698792692445627391285828306341130610476609550603299655666010011717151867317690561107623601456742684912605651883299081871163886214279351608733171232655328325128701898946026516843898522754876948618900519692097905356769843235958792575054903689141714110881410773619646281707332477806985162321541275973536399315814787581273762334200246814407565846245100186294756374748786560795357184900091037388634735136837460126412706279965444905620538298297795428110554820077881294672275782344301969146249096947950897128359673055183255559562112042880636998870189877107246565970923882338991233169993464282304496056043537602603152478046318541089867878749561569518010018295926568650773265754081884321336414159876210916930100561593160823530482092982875643703049742860206317212413352107079086353723729389459768783012358532965393462364304443326715919669406954242456719703000701712274379068860951808126439383935898087017168612458100047050669096728514303922701718653647652949041563724083443934268081972166725912679359682453945170475780349609547677342583230816799833961358467048278026368210389903542320310992534915527016071804133349034895177685788713022248284970096758263026334022816777022217100741146659405652881711473298488114030125034134308407033581973363415569162349374304047360390231596810010771924959299695304975285984875126179665639753283043998849375198725974694684680588088928230471309435114854682939494572792329713074379188236963957758156832378192834656268839749852932542815791706120200757274680676177149136583028506141303826116242217723707998541762589524538750203123199640914838133953149674123915161796250237638539271901461403432935464087772234760238448470863300815259426721597716841549245128437898737688939673222032648511422407854454542475883194546385866036949747306862208290099887660770580882668111092500049959748309896658333116844459366261278024331791077848459589135496599423921512088537458425109739577817356992186050439212710413898471334737040726713957985414493086903690267605204470698497687312396904982322537962145619862583227709207961919150234837924492463754900559166770738668760932615515421374650080228142445004387597637259453722961109402339673380431091843214363002091272428944487495168141340170980167535951146177906306457389605205606606477352992780595425527745104884346233293072673605706626476235344672604968970669553627493020449891802711371804069516270121297664620024380597599321938397014513215032900913359711552539530180939574607812798646827136569757778175767794696185996819851114403361247064818024022255596749744574323216868841420694664812232094220938304575925242103782480280715902109078073906703060259196765273737482282884876902062657983436693553083586045375866872095159505039855831751042157473643268756909897778197898062873807000373975043002978763754135915064744714599353719047853000759452744164115485529926333632579335748917576127241052749945286732340994682854205842745331312931703870992488974991976132644233296100618023070595733860229696933017053040957375429640272168122100828743976627171397567355463206825293906638348111249833583225121328279806458031041336488283988923455394409048609999819391106010327456067747657827762429683930443942805856932539400034138354201208815166953437760352554987100739232665269779162667980231290724657843252591396391648114189198365227208774325274098497172099383733410847666182477051607949990321268705484994940383312154511607508745261047093124054160449218225446539683569981614380515042078408064969903291894448968476780513579976805335530713471330548282446041829922598794951163410871255003354385889199814977342619975849339487470253109595649768227056500859736486823063826924802160890707721367612860789576989667201259798383141646558297445032590502735913956398494255693381540489820813655541438870824718131099245364057204179640377012771704221897540093328769118448599199542384162274374760653085218626867112797153835861933775802735501449627664804311694130993128191516479491784481828772070631710329123800991291468025246813812647453756240780596127905687885012753280996896485102297750504786398608535692528398300002769427994546360950978694458042643967727918292647206703230407580123670197873221847574041415321287345551256614452999450587323793043700462078096840949375713582378924475417049113184077596602782228938400988815280758991314271730473605622775013903884456257810871719586001515289437549349170640820648723203330617707674458181214601443939967171676754723202345080175559236030326100396732300742197853874407304887924410803960280275176762607339626818441870692031357603814238958697935193613758513593169761034684419385510360071471868465118144176529843624490166368227714813891025883761956515470613495053570050585469828228516901761241359597536642504178582825971503613236610521968216655870052095758840805669496159872103072800461535348435231184423491807180040820395329878681520303411697252744745286085746873898347781075859001194030222342099856916007720632538823577313469564525026034979233490293169417957345165985458768949750010617401362277253785969867799352044014055626276295702909077596063953750324198114886004415157733545491097226299128613748024591495279982981071755566832844947067579672676168372304465300996388376122442138338833454570787951704390208340224193930428968289067113558237084606151361598419867282705885075900723820706529355044714102646050635473703325786448391310020912187641801165091969303586764009931838634412406363118381753263862726949596398863248054174806582736473735408460376510989367119326704545375259200578585982975124487440903340424843695880866963905892552913955504824720069074124139404285624203528794509560058243369861326194953228031738383625943504963598421630554151883294505041789473515037039008763521247401970188848298827285121961675157155518051399610994932265776606033836324395764637136253771321447323867825635645873275639487443075594722157242309756195789398328462143452002690744900727760646496182741450001839832672174152467878992133552617855117542447282197804462573629178184229907123633650571486923116288657963410426435833081211793787590175392379023758404193937719862959090391221061774016686266160891450016835552408319700624751472211415321871702089236179499386831376889918937894563327081342074888390438877915308126657902917999315748656416940676676365407182152945445198349016531683437789267782382478993395399345573330692428366907512230453828654331329469170400576496685945045499031495325835211095424773633833592121195232973153834096879626521334052639903761152756380027897103069852186525865504965558019648725601866858897010759386592130923481014937678601372847635662325540178597425014684607707162081742534783373682136611766413122247655269071204836913261566510957406402143381223812103113709134356138086763081107839444386462881057740605383919200958714926134146278613008692005211683633120764356022818151856504168277969037077568199191679362814161442664282241038098825718913934570145454922054486302479017113586228889699315700093119151506348370150250350343422331502526689544754013668417026951592755960424969918582284210943942488775467052779474734609956925270616600605848684945746112588420363537397960764615354740876593524727642469003462128249365911287274860503232159768778599533966781709598420571242159032166960586271782965489681477506190549232010444673624700950214084310316485271013305882996405409984708559698316174967882518115970949210360004812835721616552211709047862412668327551763460407146053431706250477673703036695475716972670415236212900882072134820456090815679656712337302396800169697134958559596335589910611590582929454198968676029887961398506134988113772823225521320281348149643980593979688892777320357253769207883775950636464798688080565253680691675817574824062092878393843204365514473633137980303131955063976492720756536069079564543292553767089821048668271130912265545223251336963294241686480470206788660380696831183790428185569938852269243808435878494626521024000540477402270047206269594371030787152803993172552632616346954697161309014714093461267195671361399746491054239718265135626328286466035990732864032206060884182283938499080897982908679645200720060149640140451699336118132621134189961974862235532691440398481037493171150592877623897111428888894092348547164508153242509305395527945361693356153259725496575145700566826302167205830883628290274984917716984470380313560861131964774478800010501116725297343568274150296399871877496481494269202015885107154167450806175718597474735594970666179723874929100599429278246718949787750791070391247647057415736030091287998284440068164243971439837752349915948091583912171198825760252761226219435760764313784339478693862520657238881975037517755119840292480454743666766869603065879375753011970797013232540184346335029820020402390351990094946457869659619139948448679084940478099462831940100028616166704961892516185217773375095105361808101634219029020242216875479227781906144147628006800911767475732008509952628875198613944029644687744343530997433026266389881604698411520380551209695951664556839127699763120563656406970828968434645893199515365219260188549895665470388272971532007436140345473937103200897814336416999444481164978938613055698381752599767500374325037354335431985637561045439653141264811954347367501993327126187238290133186018303431496032037243130569289799399486897425106207484093092131428146735709338593701290838053262041830916938325921037482217740802454740321566562503561419077204860173692775266169960647041871610234537145587182883150567314099152807010259002577955715627646186477658254488312156697002234260192592873940317288789449683711259439864921074000800454431523928344827810851758886718337542345162074806015417648918436654237082152220689688456141376253290558177306254514409500686607402768137279567719201648976740291874416411564646959074290369740228211859734038194629156484494475880206368303874762078983832685405353421653285219526370866229210158655036284865061004571426166472741507687430825125860488097845827746418249564486705292932970437470655805463558948559631680497725771898762045452955307354685447050437836236244926249242998212934198557811758671104810393379294675030152910108992062342967013983555012614226976054529758120222639492572014367487654796494837268537336408703673926613342681972321226557287749514835234747392051141250160252620099808416231897486022101018565375499420064415698627911211111726658145569960350895437267059460493741939373389262831141508697974410695436633539111983279942763618922443388694170880848476632971590365920942572812630485606348247496940288129918986011322964327854554235397314494306924850509098651388712237701348277083680636768764554344102663771746342037778221917481091655789441066973959290845263905512819810869746494688953818583131735103548203519586352309945502238327843906295166823186133919967852039645106607970624065846829454928680205189068123822498978354319859836354016181379123793994605396187342063788918809324496804277023667543633261332285787081319659630520745982957762545149628041674573504477549057790764857763926571108186207904999619221228297819237329233268035540235681354346624387004319791155729465154624104973028568592113170276600902566051066594013828992769491220602840592961304106096894716437093753368089247606551067319674433792842559890995903209266339015996627720882907116894048788197756416876594433357398648451853142160154264319933518843766207105968469492803775807264490910853171910614136393565736469662082477191440307495991161751702123266973346063466786598196396149916871147758523058177727328789988218253941880257616662965019153312383773031439901607290969069608168912504803401352728317387365788531346950222882601400858383557720725602020777739281475221256970777947382349511255066421752133244844193196950085980565926434368291687223204218886969586331177824510035384368993834353678100699740379557269706771467214720099679447927184122866724906578469841601129506073215924592795886240904124660146738151605714966782838075951318103943081021356196894700681823612747015610119431175476279046069753696731471884085715288515969388135693787622647472738885303921223881356311849191417460090505353401426090458936365683730389212927517818543720939669639850813252847943800190364353661721441241451120507228223437656559664535061786669040823340270884275553167227537703638318514804060842662714146139701258041802611741694068164978504680064810288760807175261574263593358033856312143122429192756616350625747027368979186758179864606341801171215689660877378438797310823504615200843241291382644392226911902045387147495280541228792517265280967426438974875929175631856553082464177385846992187869976007069349405801590111766538511154943458656246097155507719948400256917186894541324611628194498218620782685753270186701608206101962145622030945955785087226264578410984848573750083254858194206532504203206209958619154254107140696386848108774106803115276051398063259368597118327967072893514310448988075189532823233998723009302744579752328707056106764174976971776602890403387657565892828127873645000473971588069849748425932396539779122281927618560000525489451300981591450422481434357615383283713425887616444168828331173486726156556023818749623253582474267210380257903407558695115503120914229401719630521841562654888248079446918352775418073805355111792189519129095461439350261515067886654680418863656019125449206791635430523691618454557675359812754112872260456538081245184896440235774505510321706806033355574009212420620269122069106372833454233267817177598146926924195786881492460586473298026975725742302386436499378758642086359114798916484177848652509996354034830949656881909546061726763397420701153560699076932848659627585570891328848992624898962425513773212162771336897383256799073018165031094592498827106583700554179616713456542043003981094202015184541511344412287639311093756182608265429143640823788113257734456806252719721406764923304982081251981048531782537865668488749476297417557990597319433228227813181354016248384745176125613884091273303754405364233716963623842563936113628931921834350210346568967448323054382369307459461196378029665045788867857718183581578868154747959152034014278930482703695206687161477137851911708276353523235792336476435996552496743700035080206242686924179415745298379516556550978040787220422817726811730108230956041405763331519087921784345112080300057990692698516541948566955967558948790191297691614175619043694264997864515563495390160001381620680407563510098561329689317597647864146629113203946775446329697582254592111089093664908589445161183676237450791441483333334197672892564365934087694472669798411301665826591155785354963179024693815616565296860528179640987913960862180500138523889002732306074066603355151808490097962315810914437018422536488383095331692793936244817034287795472584959201443074565212388198839893093068766070838763405234431183487502237992151655494559957964688918555901610009911079331331717600303536916984877731091826639083964421954981208908372349110942617185364189372010903860258539044517287976719464521426132979525596663006262524061642584287177247033268718890812575839426235003682741602007082928797922684307532161843808101231834591906969244832597599066806224052199942285653345715880588028250720142285751946545722360108826307157791712650843398990994138760474619853575062058069115609805931604004993857735164370046487243922160223990946070725663564467553832173865790022333502680295254203030576364341447638841937842423925087656259884735517667813117268557769135530610778882921842298284399931223354405086237096264698987727333876620138053406895857516460297191622839143440481349001691931217021630099766705059628097107969397070045983993925486675783489339688074857076199173773452569566603454919029859585600087136647517934049924836379672129659462932641896527459190633205277331195504350018030197170792615901780154160261132900033397159638154320400302870072173890330696799099473412144893090118711966795726506084431600453096983276597722580261989094319970228966692490671319148273698646166132286881002818222216680875288249775020867967313718098337293583193051887646510745742466669347819487032824981225294609590653864405826063849647902275122997316105359860305515159062226900919244822768691145218368090082525809660403786897992454069071430955269278097137555783519812765534813849885493558841431555764239940999730191489355949791288653093194275442396171503061069118839490551950583276797079531010704851362965917509897743507702044339011362030464461547935894157736734927081598176611794818351239952893988218918703553126570111013867204013039892746773643767865717825102273682225167363233646190292452146488026005728251447601009731595844203203848662923517233054552741673267873632275004948406842632155853253770686577140589300601176752932072594194389201168306366581455516417307543078825213886309981166603378311818762019442698147156936827335242503229274987025291224546535320241575575214241511300713917791446528694696412951210427535530838052560257940933981096269790453402799679171082494135429128225843136495460796111576087520316473169237753248556831991168920630536836012178746985282496644095455061539549518779142870247921937063535008290393416408064934892318539230635836779065426038438860898177460928435879082381670644204924135188032312708930813253404387329248344989102896078866611031360403104108956534024142876783454350364926883135853693902600380776624848516939163616476698544145932529621861885695906349718449333553328392710176160963845490862236072995884558597762330899760426042430836381034744931965041476531602089156084163698419833538067578861700204218338226031865280662474033803560704423384584248193930792500858385796743949838828442802130875975361958356609929770288275788885391673353719995226270020567855278169508849466288892786152294681510417734220628419964348360448926108265795796943685924451058181872579117597244210941420821154427558524296711239861147242834654710244580496818529500176789276069675708219845679528831946527338988338375517448912620647694824897988404651844160774859098415751064001570509130326333950895496844626431308627502150582326073777100323167049951524762088232776888236141509676711671393847307167126375327519018835355925038720076501974171424279908980825335175910893112474397496120903169333749231045265752838290692811935424900853352553003326826622183048171834016204098332202458690909764997663873869232404455270248396787469267614380040361166074145162507928515475214441016948132763452192248301689556467048963059709586051711632257790164759020955330985946053506680744923007230030453284351079504707411271064936106060613465196149049143848040689276732105970113594941089715525434242473367126003988720521089300051742872808132925137994762005386447914349433326140139939462750922440520731079810990545667309581954490570619770049427763645564237637813529612283528533376243453908871868349791080853670489125349569443498917789695449222975674085007739466433303656702971573101057717347045755132481561644880593917325300500056221754446276625759643840755087947442970790637195893611979508751824583162096143095536989446305315490965645029968169090614066005198388200004904797293329163996854980684025800555673571215680096684549102216220492105276143490251359784600820238149994699996769171398922084820114001718018924952499328277540966329152772836764110543420355990386307175948364908818879263947902450937009536407876594794502368849757190697941312762445159375610053718550918445929049723115452924829661909993389343900529409829679702351500228313797395621877864839524311538232053642679470277743398859453687529073605858954388317830162077860188466401527471875666632043244352252370465776395052773667971399274281928808882989815701745951774911696552181476506274189454497002383487242083726713701199338362527746689566085281529546001413272013306798742142183124489861748026637810649102705534465854309711819044036059289119921110780398437108223365171508754031216329298412959308326848107823674663799291334575676684567726148887087742623586715575123257961941387416336205408824978947005087537458012696772467205453500906146929352015153431985156760651745070923984399758187548769015732102517829507448268751758381332509704156252115004906470832338696793343173394298268795400909682042405827015641787798479843660920823391710180466755840337629228849710276731916887170606863887301856733887412906422846236695634988995977983004943845543255215694741349430095621923970669062181510725037595414042984730640344731035549083205771606307154140442395528521059844992798780008412524977377375128095673046167680480375998215061386522423402264929578789084753685258498468998851613251765131540915199545050148958767771515052766747290887258986172766385824322012734662544704195743156556289270821806209855854238489838251673991472074348165875213798275749220655145274543785538492409870524937747254259891327039878586618711566574792944034902394183156703672441801730782373550915204341780019061130903835776069623906489544430061379553157172962430845362544722453987702617361336081271502933343891954489018939217802695967197009792780528243631922102945759312351664639761006226543589831950840368150700659209606901217572786207903052315279151384747905465088548594105947920931188891093396788690125391251725006850698256184508151649733557000967519087297908686983597104942321597075077472523952753940765955419589607701103168250033575167389807067696200147573850731979743501094185843863209571528738354626167953551882496362962052898568732513472296983305955001789775078296309943244333690108965162171180138208411008953545618936452776247414213949204039961455266767281330018363013398513128013342005675106599498974519630334865175782885468353254047203929650196186192559173870037375846879697401222282486893647849932824965496320225323707226686378758649733754992105363386676078463252948906003199816795287299483317457231601563197672018012548119334327898989064536790233612466829802415818798042736679664168068509538579611994321909765940991728820366039397992149946979833147030846508633126460931013492243621834433480071019463976536934879972768880175195350163319333816360006193604249818354215758320962873918058345856193908366176376979721306816602946247251243565153353757699924060442286095610214628992468522377626573869319133434367184495678600506751899683268136536411262868906356114981598593147034193831386206947824731144221218000948634038239648666500117891332673515287420765069908132735243953543277243553412392369958388697435456872562339453622835158928217774540380927840710293653262769463814161402355586057332653538246106491192984572647988209506852302890557273841117369802429640510474299129313814809651016777315112938803926454104217386464838399641078566419881369245452903548093360934569731202011168471959703869589609881563633336016198140755412272265746367203225921417204123285157548465086055548410639971256363861073789911531042481844189439071193787661902012879500599840157832362530524835509667918631696174921068012588587513271611110558207215039554904079569337193137109601491249908932863509044637708335671005110775908400501635363940002114784993668897517693699125272773480439188347408395217911536402765440670807288346934025616912104967186257893509016153210900612122305296379184039217119438063807879937060039950302843990523014643730429728000481511766804363341738882983267827308434654042899770227107112553898679184562336950769298418523379795578731919812981390385306914770617698592360583218689095521300775481558921720321862204590195913602431897396211038661832602330942733192924134742848005337636851765818510365940407216346699604219286632118894084129710549157947572835712816151719597109783806976990243842064303020775309332755045182573949587906697004364716849409850509064147127830329195632633236659012824388907451736915892926309603096899313911437066370196633924829273092717873012524416805574969373034469686201501597542124491003793577555437528476942030105817658589513533429210879404510689682750989059985020927387297961844877493105808099395456002574046589245737483133886907248339145849645175088540606459056159580923657340182879839820781598680162638507566494361951421253929074799525287351972305708653664794962302972874345554380788954897766687683045782941482966755600587480002577896941926299372817150200830135171751153369354212858992605461104266403603612230742636185808129156036431848962048014681906730086956047735061833704042433449706776276067477891279694364022782850951938636028524465336336416278545117740649561700098904406604094537566126591746053652820147168544496239294069117728878924831561796640658316904514057834383569706324124205168437692350761402183147141991667807906550251468344413769001286856846991921432127752326677016814433961421530187044642868518567521980675685423085609951708267021276568309527275345258607224620140856753914239540101234493027993285577735910012908688978711386433874432508021585895984415895948914420204736286152456064506404119417511100598618911758678290252360875888447420837322725536209980292824314721872287487354834556220966972749659590179789086322105977649767025058549451760704168013527027519248369288339438171987504068491887211072350970749316308810096686113764329625799928405948333989036998618558872179352096118652468187742087859217997751317834783444411465252487797650734198164164049454853343775630316094293269905656241440688186098056904927951598269445886369636578200307151592196562620859210186934443367812099010591307117460756488985509533314631994031337833844384167953230857829411818235445473271963861753895196257985956649354996213422494898712672523655081359755850418893459821130872669484783897756878048381626232544376672375614592893248001538316418283617275346673085859744362299256026797482637957992929911092988254245874533627163563696167002931015306804844760660636276756270665542921450168034570669907402533028863975227875400078065074092319483198260314625487978900849446392401470226699055817949466270283586130071154213223438435644790898862860223157570374896827734364573061542222932513445320193185293464390401619237151356086128278445253166624364728754797949750683406761597751210920464935749512282397330253871123830416411581338350066977564396715633247105778266749310018203296503405696961781684985879666217263235785826397329832265562807528974639253735503397134705875858739784957688618404801956632149430669068601442041186515457503527814826442022802100215304090209665120477523340003013864224196375645696041701219089640135603951384788077167626407336546945874354179715825957219020988407593696708146764113794463131536139084017557188218025655658854608937724835902722939174998364019008862014803581136736499789525367287648326389845276280793794696817253459845792444221489200925528973166342343674105512099739830392276281689387720593965653630320007072908022615602749260396067723563122741117279939103787881783566671554151703130137010670689497560764689864335994085404038731101084193732846453928590524150244605048138690239611842375204476480666578250164135340440424300549000821357190378948268394130129845385054173221705800585415404670884021241010572523993208077150193939214881076456378255877105291930894019319776265722963146563960742758791655048783251386527381363696429772119872007968157483909484651425710665539194896333504517215347160077889347786423181259345307934858754822365180893596158441620616300046531635342605464517590217260072393545681717696202262852943407133608443016474613022267471212982685781005605063758707121976127582954863908734618030208942090476426663402743425330915780590525562438486332755465389600295570976631752077687912427942203979692469594013388958076528183005351560310822638237064956887286795297846148097674915135281865161791533719754259114272491595564394098974157727310923289824776347768482817597201651624067331780441277407951886094495021622157095113858160371680347188771488774837370153669071893530781296342278586453037930947025346765987287656818203635104279637107182112868364138933436750828154909766828343381124775676442784872080179631525703342187063995549452109268483546771257660452412189193832908215373416948089628891135557811524971933958562217704020413448279430298437311133425480993872454970495031510658860004879810448515482698374073472220634821368160743512502545308953545034562591799562306535051144894720052120088587781916172248388928027094303297755760089235212636214920028177843969822855063142631193227533876991158766737122239287842352848804767610021054297232734702617973142887595614798666103155827744521878639723154777208229611251587446842526023421246801907205073120306266063016607148385298605087551709899143811673777218742926894864798988520769221179925871016156777252402850330985749729865632073198585594434075976934065153446063178103456142581844016020867249635443697706894241914618895879397765732215025832524512295479279078671175317502212263362959742732552610244884966070737713211652092951489460976532362229216917823956019243975072133347362923367611191911642149541891990622887539694264493026357530943528654618384542217520766505164734520628186222609940356825306266663357536937129702187573768525184797981360178908118843931318573519814795602466417489308955632232831216003335629192030406561303372173382427032746932254205484411457866238754478958216083714049019519723722802951909844134172349579789931374471220658274915614836952580351283523339101558473075975390925193075789635568702430417098781639105745117306092246271578935198183461598327469104476111983510333621517718556058214729713982261713924910007027478061895501378562711435114424136837052088088595058438025767754794106025935371012520415155875951469858213183002564424567906980996323128012591657677523122825381363011976562355386617677510844149261093241077685473218240776331695554058914675303618994207813936339611272701290568690113215634871789791441960614955452486089672862138470295040492132936447866273531598784441124121494991023855712429564451201646238498756828417557512151010203986661070036891631548445472856395521275185387446821824759594128790352282460032225373222461152877282464922881572052596274087993252345197542665605467732553233917541203671774611686905076628307430398748739234599147324134970641834052341748403087618716498409773093580021211964751523866204994333916801493443151614992390813163348093876287678935863829437285697978230418673751637025362458641307782538370061354765657834586700428544627342213688696292379720789541012574599768745888906474148338301715460343732035529529775073642311861080625590824292421662402353333400010528090518562110821466435784253193226657379810445768680416017959959449439256356991487586636026051712810802760072253444875323243227309267374463545560158729457911547329595362078486121841392904144501169495785927438834146817323931148316217804851236178038579057678864945036553759383893766144408243994395439151466588500460888311697260925341644955479905013945558873204750586445589932730924476631696636395035845886866312151666542280085414702449616026011820500450919803691975538096905224977342108971430628196563004889749453996492039776660750426869740047528601794021994123219912687302453287044574225764403187678919160498331943059778975504007478344623098915226143680400880028207072565299062929011044589195097267987994426752609759592912374973518526482890175564270833107596790080788366359662344840606328447230812640079092560548306266407005565044103721017060039746581873620082975917491742985597657620363200467031961840854794263852454753848892866057910322239760187833735013918587498927098014143777053663211479531111922201831884261613447003156766283781502052285790013656005868152449306746508435106327507933221206260208580067467134546146875425407931473066327444211812769038786873287267412843820771732191008050629389473566812875826150636053357148527270986785983334327989976043821092932883586140695357150980881762624534800699725564037537167168043443894751223678842656817723672141477366666689319631601970252229227991072303818046553589015208000251026063036564093917988294152440666659122880431533283721549938982751800581158479285332796607419639893894246927565355042940973135906472388201951517375795580827460524355337958382540403482277488172516159175478702271228152415303474151682871070043211382304518462436998639972249859535540578644595389198448779880881033728125791581890411280796153648804881208418641343785834149151172319096642681532514558531887161278865208441301625815932846978703652906803303208084005525908979091224109629142224304069096812305287303194401771874430680222818122565726531032853549636365127810449463460418970320845710099920625063991709007461830058374341692088419222987378600308916578909030574803949027113105706362624027081259663906409852004596029136143865937233404118535973604320439893986576904043399846626993075968689024397966021113622976660531261837819792354662874691746040495272715726115763786940856533692105642991100189966115986641030236904598302540843811297791884049020619544990109130313040826533334759658451125696839085390940188744782473625038679148662073788710027035833401222515569836897764589668961813455925284094652230600233563487579097809332620268869102996320377909779767164565889593410922679960879066902816532445749653936113969422949592009734061005530132664215090437529279829501240693529510284570944697596457313669357463263799936504593570971006917299555779856490154245223676341171560547924878978021628723692520331736621963650832355219531161848218064747475208711118457596979027760968541359183032425510081640069288497623281591808964626991108423134049430631523332324532951597048861926995499021906612727727219259843660423686020431836989185124574476854732064946999198703535676367806898404632663945690512915872309704390651244981793873223781890897681230450922783313047625655040157084261001954060630760033769283876248720413012417469408247243617858420521925713760477149380202222049259300289533139903398368646805848698184034599089288045599394110660261334018496837103237501475778449400712866317123855367767816109099634190905712319590696961559030818344146389720218828471663024016877328653805281610687712463425624859382073101569347134832062840623621713100313662574817409179722200764281582765371860164174825493213954897853901351829799818600402070064124041665686431729930593473283879347277485827110595377543369919876726816924505470868162846383350581948089476059690072960423899951888948828422542491484157077839712824042633678257954817695764893731319074101021704118197197503409902259690699766985156366215599395805611425880667032549021314376080969472388234888331435397156800033191536648880581203331173816057089352986469814589407504508549221856560621604688600118654961158914295097118951345014722918372422686560248314383867092415690561997303141541775598628501507255918828609624037304491162613790409643498862094626983382158175941426462021656679313103724564556487926550147500419248110504346566015995681552764767323741911043134165856671640472961803534685446744969908642734776045736562628222714976450703350091927453886916589037060122327206107487100569810327112245136677208117610693407423422390708751077817741343397619288321609595382852406311764706177157496414095453210384049222100983476454503722681321879145733634273041268212495715275091114747875181432000842544444210669088623568539596976846031563294610851134930072174408950196701101420256783830528663773071361396101553575203387422505156748053678594714592309289547322976318109226206256580332673711532513066889387505881650126016837332723746786946319687803859722405140321363908872191743133608111607778859623273506972313671168206897163604369463522094860680154197400872986634783306893942405816330713091800172042058534692123843650724521340402685095996327495121509267088619780718476491895791916639000689877987621337042868664523225855107369421779971724473855110660530447859162468754933378762431173561580967021605478934634559964463471141645125772978399492475742164989552925324490447317173970830214614819211101814138571352754630157923137382277404132507063338989245222949697532359631216378067244713926938985992402259062295341832145731965641592748599999839738422871535702560718791283881347529826220651838019050658612471036073448046658099313384004525393479430700674629787300954752567614043794500942910939654563988250756881346221981731234048499502863516488258324279780661185890113916883753100842412412480802851007710435768877734392441205498134645697390070261421295933677590502604349794523091919326322944269683311981923471044443192376707380292726004363197573019667672060696297088367489801585104712918805745749586588697201145889707969684651235014107241878129074549922258910388456470245651862325891172093152774806573783144832235615815662156975858182990731696865676016239862894572990720081984459381317946087638154991832140163985100493786245571366907250628738993621265760327757270705256116105642934918328834813477389941251016633736850239414567567625224891240280336093886452945891623192173921378365059068209634664661038784601343241092271977411952141118155402730762968570054649160631403497046275216660758555458337618781311901008490012794458473939076682344203002581186669398892992680225370203507770396205177141881226715864496664775910077904674654376871099299708600038979733682770560189119321757139657021535222352854127317767865185374138616390320738837264705894948989748003619769913254002152645889916498051877185262866303030619935696476773256830259025485064588414946557449039384167634456130801727498632464824908856144954093734145156604026272875405551791607371321622397095165998586787951356337595430525514177982443592170828790901828103223050457546121934613369501702201010259680280854072465128262022580456339784392129445188541580248301095184556756351973904717473450253035603042951689879006774409855236373062512960846224499709187888260047573653224081971031243698515629118784704121200671858493440379357954497714809330284595664504876781319224559592057728452499681425778945726279823486039321421691807846592586704201602396919979301341433818904563820092782041177495050670760263448408193006212394367798164252039688656541631561157277524257860902728506141190120410653763315245009947722646255028594704224367048246334090964099102127553880221973949513789406163917550147497753055702453912628600255286265557101349873253833545714826077237144362504920977546548503002675594937324687609698787613016901348273070716353216611759553403980669676621441579012327648866861929918147293426687770421607275890658176191766868130977796541347765178359539746472905859422851858209449415339270759506798584395807333722208776189780856304582842480657597932638115758980695946459052024397133013287121843927025877265142754367819791373137265167199974450532770594021590934756421047986825464483274858152643395133454647945934170776810892079270999842911582182234022613261922658120843609275822849766488003919617563256649660082656349454329105556785234018258910299430904337403299067845736255340713315582106626925433482268569839906758858646545696963288927047041042391999427297804731785811634598679950255516300977746233130182679586023468477613543367003795776661507641852701344273883694539007391302529907109433286094383743228640775566006065518125296035076117034966864506337379521075416313987431996446575551216330240416275372248498142776478105531858414509154560884251956055416235801700380010971582501869294509203595943847762524382312401064422948875895391470253013170586653728726918421262918778588471381399525071214319289811946586542407232646555620311868475252896449302617745170836011906937131186933498510536576662538148333541630712048552572494459665016915671605067754357068413138344521529032691918613031301205373349669296166867299372603518230231163286026132303460362392967420217743996283099716813878014335212007340805212579011066071479938274020418079938234344205389352449772445165516172263032450663849345873964357086633776180598851294440119785988363689533424258147961528468993070264654061728263189099454605487572941384076257312140137866703725806380906179849883091545365174422963238121393605858819484380974730620585440342154119532534446647605066599786033303804547963033112426455106320558889128311185839635057986133813182122753693176859512435094532021196809875056438453304953601877165373471747859628665987113654057993642997739143855864789030119689932236305222392838159795852680072794783055746479294037516839588033611050885349099433313216692402310455713187086288669584771257909271961409100422155343858146693454181469545618570134692257435968632529706962655019390563186119380630071426010715455419709818684354304345848650299417698419282717552554174277133307540029094380879846816557416426419019757050422078628609097985930634277429448183136656394993187938408766700008519287647336369004933768409711768129362577548169906682414268440378086534669542328053011483791009594832179263870973574782148102109345247448143954421580820779353970735449417671402568630321779594653648227233141220958166768243539118968312507083480277034262936393234768877048219723429321715580394133846300814226298669076450085519609256213224074579072553438386264378824979664216067475047331107213573055439218927735897938005146193000234905067527212050460811002030620675569420075292303610122519734905762572415683340375051562317283616114555665071142988631222052940922480779875151223457194132442060053090189634462348525235207601173980739003162018911911286652717960864972145543780956023739337597676352141305244158932151646982106042286270719380157421569868565020182580181384201325209604285074031598974528330516323592458227830843483210052771797371921653057008530094700443014716496831659715929158761738105433331670746909678589149650281258420760075526643102946142423514987939007682535962587079395146577386555040095967375077244214767004378493564671391386294697309566653808538242911132285501667235221018451436714867960384099109437472820968283243539854132950872790838472144281636145338398733627127612940982500087626089217946484382598349840939653167121302769249945682267564390298544557479341741565014512699368024562430871244301462740027876068125462154570798228517441617222146788576707287070429613020590265103548471219648403637590811460645487297482303063389624027714028452624321261058837903246031804731477305766033540485144698850597383865331566084147458869042298674083253417916829740348475073725216695357157401787091297338507536611783342265173303581583355825112307167814660984705057958352131305418720304007224765563974002027284269108703019184562476658157264966104123498770813014125097354632749234078061703415514719398836617143981292388978846755633847019325781417781642685190050699169111194068067896387746579162826905447776686144428047160955954335065511399844127076384159081854878412870509912319522366522948941702384629502057867003566219730869749086815221468297649739348270920526326170704165689323392122821110969805905191958210725456277643804245449433018639034222878686171377544657191946149771092432745403551999009226613243752787029863215669713823265440062413528594855452193720508418411365412627957605231712350989995629872899326370161797470031630870012380419916446205963258429825815200978510956394011105483883254825463377189575083348807623538350319408808242420545644547113560926692046005379422250083126632378430250858913290055244236757065706926631915160642720443015564429150563944541860016111540156858327567586573373526408840985181050864298715113113217564122716047092433585964827678333485010789782410091600697045509283796849465290678369843082879944537846753464108006518259596763699340529202533334847807007076538468287165549488297646621280443997048311424591920672470153806558080644427615322240802680392449255777838171193291863218901954094076872612823488563741913017321671494369941068530888112123736295450139578013010180605030422516557362815681948159349318286333124624785741389468047241524508322860964120981175199991704800099509274210713867738264578041358532478298762526651623170270516388974419982348726621352294458346415409772849550123212566693404121527897553380293002038135791585065033934450248477681698361101224116381067499490514536322403272605329913896872523490598297020935085090960925843272905972435202374708582828414278193893664359365906545167592412571318217759152896309513785550685528251122040448990513371013502147208947966754660153603358691288548286234147091258073699062425504271424702996471346575012222520541648806870270385410185767529681977857140487730771890965429490403907438414130093398533057337564803406914719278444353683109164945877422426944776767350392588201864130757149546654914132024206812605178283136187294151603602243590750982728223938088106657212789580689012300996528806906877897193481083389761911892091046350694959718616530800887316319315337182371313937730307312382634238259280027826201584511969611247263987636747657150804689097828492890024171662328733027522928240576078740918232499220829833857282874292779562708195918367223462889352361974764818024096702314114247182556197844685121370666263404345463705851025202798365132553059875754901698703342151571731450942473965222215899698801565046164665144820736283467045881244019692743758582623879078243599917586728251506735587558940120316563250445889399643654283205510812416419933566693087980854481704778216905923812532432231089554060059022337019332073327660363685616428117034629883082164197882804710135743808101634814657412838053930539457221305146694490076132540527556656463898002172291289866145411577309837623475508970068552870682868614010400601444932196617590807314323886651345428087085238246574425578785495938299646144022597750144566733944315824785049802812095096749390406081065485453042008482627114429618245314092628377476499872187331467383826462598457103096010691838496790599222515381620267098363747489716284575875130272345336285324010767419661310460625407602753528531627096968697221671606900302203875486663069428930202213140946148197151875894908626108824715123185236126786009852333598967641838841448887122352988328636362428177306413755092869848423211191876011275984065740286414470711648213061505967926435782860831943531931263043019356131794290300331426891547386305000283667322870087479340866330461754583403524067506117725308789392408463824353797103782649726404951460167374684893385402306770517704971397981500143989615354889639797160004694120779305765340916331544636749377284503297336300319889933603607293556470768923264419980501068602703385393655303250533731931412797563141534317439584311515006942855110376791870575235589149218992025118229177919341626166181531465690597911833438698154788876951659863644731258471999436310501186354321654220028685093431791426639973374257394086665468734799548303116408659711186098234018685988475161493364411195308095073131188695336543314011091307318958039995016712700505503289885584590205947773776083797155834270134687234992866149958405836050813774721839028958736345357563183096719212537693405240076018113571612433850182887558486973766319568808985765685716659178050665507322620880903431829405915103630174152846094001828852300181950549788998275409702256477431305907041487578169955972685585760754639343422784877474369911934821007462725741088602763841221433666370089265273565807949095580572522930010565106238275455918099020404174721366390428714365115034552933383169803351537391388794888385094273806675574875402153296366152530101629439867324802113479388221131097284684663536573814794172902699261917534466300712354150640708168108145201037224414833492662670669967682037224885059822289213566630848942785009575403568684647987265427081509916015002952032886348989987682994205902617810570167863919385265095302761351411627021687127399463340288654561248118838361705462231625492475001832827804705105457389412294509404700435498193596652429774507654281427222746202630292757643071345052967193746283238346918896488690786442563619511459880842423834898591654352558225795251728776126895276894968989408057192610520455961908264286496849056856515848844272676639786222837038024958424475600171729434100159904148913741506701663285732025680319476022672992348866453322748454823002013462531761618677844397208509282416820433490077246291821931707745543917846794456055764746379378741604346747654673715025589276753049145715770529049285576222318975961447512883755554222707927386030654820730474896939833208330114728219253799612197860585114400966002074067473560390424954033150534976308592672685421072822249313899914128842519601791600717459347152331981971591299467036719860113321905249197710017069641163947335855070897032870195302599954352567784023563347521521751560291409137380571362361833266158794485969821901352902649550444999996101672018996616305017183680869305452787481110550317754313408105681003370254000670169034589847261707753870764007638896776395741268181903290455783440590681241577112471032400173833084759980577771147144033962674100936140402729015431622441799580223592243064428145284359670822677670031254803412957735180537431243803748336373385376196799285677408844274095103627299031743126068345882657404609734447977462520259420043130865001252228668613429442452868186990206579937226353524962067323035612516934544456643980073000926756979863902831758256528141758952323023785136927205973480525484478414880868824138928006917936543542694996888563560552332135712359995234162419992423562074674260027290047232667566607269252221131353320143852693581176304532760852302609156748816011750217099313329954990246553692488514071338141365900048389666669540814727463998490423847555592026158797665711502439649214684215042554831230256962413614128516528254750079706605590239102824021139638135462348610712044522954871272852311801290196675336692185791257874871221216158363789201959843344956177983101754369653072674912170353433238531740057354269577136158776127780862013746259727303872187876661308998545034723799261446727701142364724994675613201942334194791262879071069065047173489505109952654129715415671964132267798964361806358865774323323670032728855392349484402213791286303080818733641155044635269206449415437598888155398594326069757108148793601759042419217341260508320302971590748239538062812262013596278175230193494746665158438946474293403483294860227245462722310773933326517341295635676510750912211729448531852367469713023535333998713159384374837823972670370399958378724751858639649604031329021496917934468309750753745343299593165743858300042675705468945218066778056351150371567256891739223370883337733897457408024609743876680578139098753130307726479589664037862915764485690150535732861906316253054656036947907347929205114190991816885833815653477004100215646625541662680390674165915721984526698071979314469844200773857103611317588903116528925842836422831849349991651730864405271721124884432487085450761891709063020036406407729401670505450125377934865697279726865635936153175327354183725687153380509831670860927771853154202730118607296353190455727070062497835995804219651270629693791164587305153490561278182246556635767851826561269725225991880178149557296014688970389739114026528732042528067958651524689194419670193220973183093841108010935312354033412704803314523049337495317120575822453312615624413778452543415775931417672216823071973413092099391298065519732116359918846984994333945022825176358963766119660822696785877512624798710029439964155334398426440701511448065171585784799862764357541725018061393404799498002996024194577227474875791309295444883240152119101912400176688737934584241311364319539239654876588823163173591162098156916368732439010591737406286425356100967989816935717198417394234938229800912170655155043910061271479948086325784711554645852765856478675991722449649631707400144109619639078555403191416433288721980282846683751405891831348510124762817487615557909541625381287145982469764264188068194509214067308106962412930495458697238026002829378644592680585874767297056613301598725911644183840218066155853551728616699149321410595323775663669709287537885993534721321558973620952160524720770385342607868790251852627577994886163854552727887062548796000168457427381343910324459106911905348253324920285049189541651477263256638054662497854786113783994248492080120588723228348631943839557939869007438791086425601934798516296947309407134837581675669607212142694214130509480471097886632206855477884935995882517310997307056397897555321341464918993091673299926261045995499095976084070989562481540072657176129576071488787188215183068591642053490321297436629847990854308347407803535158360775096403374069927039998066801657448191039233489795382353420144466583752327316366670857912645397417096062342959105111040040904344653085443465371284914140661374732573690937010157652507113477354656647189967874240894290745344476682369103192505745535920360246719643598663949635553610024520293687334916235599168960022105390485257207744845418526114366673439437039748191404939175598405771528572621700746147923201706345550150979353936996791807452579289573943436938550595372693008474369609560151029634993584210341721377454985873186679704575173337563828825904851284512100834191601318848795027319434606223575160725099058685500459151510545913246710963926414486573829510450089952589877919045171263579572291589887709987414987121222672451141724375005645536707291481129803239059470568529159549784216976857636076846065065374761814115659777282694805253584580079739777981846322771988818912266037249844036297911748069067268049194719210890289517513955388749671239745068729197891120956538840684063426868873516140005301164253217531201355008213004738651843380892583634924648034321285573817415136320683282550307085741702876292897836210015758299000696529774921234824760987370631312723515824820225658504986877901821347661445288072631191152885489966298684086488789878383677680341061242995739079155774941721648015986307555380931621274270982053464471899662227395135669471809753054419958321112448594838687863413469705109280125748193986624799701014221502815237424964655734382426289459998058234380911821256079425406579819809153361806719875819321416390998196368689933090989742962861113282058894665648460097979151754606383730647699996812607595356063631410872979553921826440658733587194696708018638792576537612418473367777322276737249085341787580607408169750536791171043433032696527983892170061050694079182819943094152494340065823775544070883014871183517590605333459485590846659296385675068029313566746325108192526222034903375116359455274753469132648480371510466498740901690417741763843586138341954081318523947193758010629406413283360545986418464403810062787081302503140937035911787674541193295939490961868585252555462511420775814761500092495334980013551780549385646829068540154913311078379995284772829803229968836873376772655428421739676047620127075649530059238410685314704268971132799157605958576358132033796803883641675364512408469897659875615112738409409490678325583757883586716782438407243516414805402022205741422155112520877640959436962970221633945829641179740157459427970125308757100233529209911326365934136120533717594620483071895243448930007061056762224832122354880832034008815779616182587943230045773720713379819975686810746760933913341764742313219395714350123354993650927443601802368328608181174763479120677251121624298408968719157680709186950441402577750647716941450918532873515475835802828298819144580272820178538522642953953043007878495546221117906132335325279992654345363632733171291961336670677112322674483982353879693878035682078428302159050492518085371506968860914830862205587615911136435370964626784389516280486714993363449536004404752525102344036784718142155783136235439453705586566760700747893272650908735766645965095502755031743690526762418982781926848020837018136243054854962609357869781836909365272298382351337241326153651733848496777665796287081905438493539278378755890904013074367700732265445178124899051527735020136735551784048803278981959175945640661774579078782065352106671911409734559352126398047848494757243776473301378969440989125666010140270919048022838089952445183096736742093868740855704596806450882490054439358915034319444482203531395901218485077145144656973534674978548824974369507312846314761015939248354980885747320231834288844669501335814203165296287752404377966484214252484783779392973281938361789296144673407289409265345357101178639297770385219570688852222091978525396974490648625533672628891418344734361097210608812976960296288747493380975106171987342567818668788703038623431892914250726613628480820678988841007717572996953298825579328311076549919662130926175004259252138021139836356290821545011363873489014588293007485356924297495342059170100361394863609135356008949250873479224549983527922811806921916673633875819093206685033315423318555315773896008384228162814260899117127378870833262433361028468052291228052306407014187214261972128489467247379049788101845001605863836967747684504432115719578625722478576881168634295003427459082075633279887805171279880229480750550969642156674692378270224089205142814244638222499369123883409508965749548416818146190112025513172194974119276573844099437187146202805642632749157169169302819751689776585558043841635126303220556980063678493026872209719679065752248650164582318398119403841560077161346178758421010414215937080920123627335949140564383403942706021104421645527935635713214083935550959229399868602771961352112805467550128782138874176603188147284494445167820008464801047136846749426775016373687593924471885722228016849997247110706098406906462869777821175785326505545104048823941366016574613712165437522401631893480393883139713799356148136994286189413203978813824379198945920911188192747570506676106042477151025900168582708914529889195974942551197651575413561629522378691356736362822950132751784448673076680463616656634824434540863215283368014580658538292300647446806113982217776962056567377909029345866402094299077312708623572279186325130079749063063500323894463651307910997392011237349492001016205746187984153726139303022731157863086139848842630694616151774395131592060294828453398085813234082411595072102888017308625425413746754959446847687626313574006162411435960376956471294678603385282031468591485424221829591644791449085192717277251259343404831287960588882331277615071840999855400962112701620041275891461289023620751101348103469761895893020424642902918813569769900251339512425882172538985773104034228034170075461456802975135326432694126761072082576713750691058835082551912964456659532633327963831630036789102916459855336638914062216850957948265629968276195961763679479037072656625622871075477539586085046675690311458249929463237926758653712777899340698425106288681774135079564209746606142858152359138275452175101856411456771491497656660685769622786801847906561319986197771461919673840402113515236608672233327072635394904374846831313739622796196857946562724242190463088460445264122081064455318808962247344996530419437560959810553180057041524859156156515823537668063317493483545042205244248438845564580646771993587364951133735087951641401198520164048382037303103134329316750682243447215306840302937581583609339715056714711683727323716936013012686753944592723889832581348015982169311845138757777007552693990490121415130728304236870913067354968788812911595642984053235687223680135667344113422233817066000552504739471127495461204561810319359558938154419987692511502700449135782270460091334826578507347874659267682834038929325761054571016156162786664264959610398833681585483095493631151684094269307804229432605153843580904346167676889616079535611111533342581786385839198964853767628946436776033443659009869276984706737651297285774917767152001364566849101656001444879088515124790219488491750874310956302097844396888646922485655211756093921129746386704828494296422127955960141495958775504478403807631419445048119844949525170370612779549836917797265345237410598842111431809475248451107343387956961416911253602767191830270524560061186077011839502417601104344403647037416340997900002306395282103252964907963308825955943972795571428298899665422473434249491059142901297483942174917636885919276407933446584321769098777450807356555741317482635506126178110407079503124826955140177185605936513926838021850923143088456923016658762614255774046211470337674314868772354212272518646535917072587690551416999399455013707812355073465669426266594864117160437853999485727321173848748893749320817740529359942708581298483622281356094996273931221610568364062854647526412740285860204807296843224562314043244876392352531711879271821783579754154771328887590263851635779953292378564300271018478067209118230629904364301441913669964495624504431465951202297854344119875706902136063055484482834281247920859399181176880077510434406215752155997836387385794462228445495085827321910390351893785994464613382608094829888449518507520688711038859677550492221666318298122890087138249479107734132612560404596290299537074915064264078029136715022742120660876851747240093753654975296378763765705937702743704732138836575108084530265196541912703916426469065782072730251913236190391268802148789023211213182127388673042879790886488280153487522557719138928597173188161689439121927729203537788831372452191949100352989755133118694972769446264715037591110066818868334122093080227172108508334949418163167211641056848555835323405429530260696057145076843577929673923740581827422489771582815976943735557308596567185037014237154689268581401336841869674513911454874780467712383961486401380716611014206289663149458698563892902051604719706881010108693015977569651674311100278831185685588515559831211551489779697432357606851090797792857829008139294967426114875083780276971244884041151992040840896862713811727272952661342432015551438888666928843665190167332600345262899463338500552125084702222349720505983671314027511394885416150975789951257189651343776103962788774405944411938517222878388624518631317034426221306860123774183034471262444583689490305724267587615413603166241689393732553233739295381044965375259671166628871908280519276866320741484160084877749291198185342716227258042200553086541585243214690101759699108199287261650783298310110607395877946662078060524396020393435892577378109103045752953367214295402754256145994069995059903805313218497593428217353625555828872355997167700019427428594878098232671499279393321045207044042436634352799710771811247710552294155881488324209059785933899280205311259966136218690822409330069915507014082025103519757988998090763081728012435539336925976463775466021516526200408990800050666984093095167517072195035355566743449341119571676205620284332624527563272181595911247138825868748198533944522254854487400998790840505602841850451764119682235530542900910024401653556613160346540325624854425229389614590148470002458810908566493502073755444282416082227739993120821840799623618404094056119226378180525842754051347358450526591021713619750885375319891966863686049981932915438384625624278967711120893887209846979366817522264916657390026460818874914908054463757089395394559384117892122336509063541913825984983285009840062446981326073057223195710102592659557725738874512884618345484735754230039979406628960421162942166538383837539788522436338944035264675552997791583933188007697681982297589509770399666468890572320258702473199598046422594656367551127498734601693414392243318499231843627578803399053382112545590690480406138275217814061134906670996604646020659980914938620997390739250612186966047667217562417756983386166505949489301732959297285729916535088710872565775065854116423298462816745612049176708263241219933043169600870348534017357786482051435457021052232880977664500519539448862768769211208136419116052644298546001908500237328505823799535229475636186433744574986837767323735808090488907665725026529350544561887458663247686721873261761042623195567716827227143843952573511741096090420894125320914268376288238475101621529295315772752075359387057137184963038587011938651751245090310926121354640463547957988241158043107168928935308872098100772270810715502408785143242296302105649189099583727741819442379891614446639702912128034067660769881640670671578208023229631194117312956031112051992715078644431427811468686234385322617780630194603298758761138621697847612028308552644566583341041010127732828193069466794998638437949497228522611033358803116788315593529801606130003826807508234866417400183480523077065209975861381972058829371556000257543535483483139855873905554711830379405900895738537320497339552335618736739325870385745782947450193500735376410681680323947183791114271632014782132747523963061539793503687139952680556852884637894466455360002001051610866619648786504828497913475105840727209514466178343667917871939365094477104889882452448923656924746453064753869864463656954827463609932204773007123479261572934508208229402017101991314532134829794154847291556984322667217310524933115251780177236107450301514498715754429058851195648896658947778071190299920644358749231957991398789669720669641605904044691052996078575834197470657250267903918784873103120634660902504123148967424017776236474203268441257461137750018061029851163111331187921198924126817420406697950620978847315294698504132024995353564920747306273691353492479852447933507747357035715080551976269767903103187289239819668973195633458509135629991714872974949643301756578952885221465809081672769844957254049997965477964474607290053364962112657132927344606176444378420879477199964659931514486517736981637418128470501211780487481987994715142352892985315459551417135417168641749969276814297845281081502000132702363067044551433910748260935901408087869793127068253702749787660650808972822571621381351679197630943745316164734410755644217469482139903890917800841507681899860192908808625144401368008054042790339320511304919340754414898851997712405700441640099800628177250395143636768530453850611876121287247992901313884706640973103066335216821651797011920227919652339173126682350788237146295431243117743022324621319678244943871347711631781466580649259899106538689345399594145986913842382621088419761745373668475326280573712293360401001361380535928080396605080791832372718829767823520669820843754985125111385832294339651296984958404593733744358498679228874789297378360813768062776738509317208268550498452384684034617201728086926026066336571500427137792876445035629304479665861736810062489976704682847271246194817547879903980051312998837823300237011324341071593033333049447028077258991017862215882053831551156314967225813969045436083163689488794552450479622801667505855874427232742183752978915439310773760458690826146243880014747280421608876555623140411356625509976497051584296365939824819130624286459227411950454440989639581943582601139416749989819388980363926823912690229377108860187491204959293283209895922716092343908441933461394343384601264250967638033812444596687415572913627495608927141078826678871340593526478289688559425509811833384258580487835332146689068747807943375279001142955897022346876507078209823379498218876345694013768782151882811646648824115774116686549739049302888193223819254487593665159381469548068257353439864043998900319131604624894297330751120822713633000950411097879125472729602969012824745621655611875138498921629317416427407578378651703020200436216483096398750513235863471827016550154319840496251606812473639340655486933895109104192437814662775677288484269558534983374888929875710810556509910709620913260301369598126699744883964471766959725961575313124750433342295857084133694548201448040300141275612684589351106146067073261999036205421551001572540172877725879693978034829333328096635650037877981436914730700830061728154004863058812380381503579452920691098901042651823141866037702114052810405436749256479468644133267415587696271721017761356175716480422172338226196397751434518600760904207097663990958826631787268375728541801221574183400084373538935414018296773768496696622620901863669990618604333065348669649784554881736451593264719845389932941534698769052589827392038878111280831158963436078571868939240962349978648549229920401132247815202566456792553114240586224810900091060399450100449145043095584355688169167984539312730587986382099610171930831697686573544911826718114165084625813072254384862068250859748918505790921578101716396763414111129586114619795307225718621907423433947643731489363966779381932508947199289938011445646145689091773659345791226546756098136401835277505894718330569968176999554212902752484941975871621871103059622365093030794542698331780406027774084955524302032096625063639825396084595889737688891634550609793659589174720596678296037495991018362701397659864203349934908977056856260561988770270618655587827575282723482425800996254321605432832328443060869598432954509945307279066328179832239499282315258796349603221967947892401024177145503782231782649798725378239380706292172552474614919935119279935832409006312262867064763806912869650611732140675770869973854864105761580538110647624971426254978792768881067776195430857056377841914784979410545562568216437148934718277570644749175349141330159611029537493112417520101246316649315914309514272669796683098283378176759782371379030538553177851557323313440291695128780798977510331341940539053548409242188139717854747317731796200482636242793502100757342330969833369667015390115296008036065654250103377085881455032400577421917981742010379734549851498853919980066423264143013015244508740003174286580898825238539564587686640055062682194017513697476354813397502668695474959403559078062295339924278959601672183773815928187327626690761022423891394826256247064452567787361679552263695544324360267016253002070065831435338222778453519768927591999141442529164835050125245800952477684844432200163892843475761952737933567663719515617743886399855802913307553887380515545500659337209890819225858669314092433722136000218844602706448655527966641771164054657355654892077663403155884333648999783197913202057413042433523872116583522526136163436327450237430835157762943359112536335419144137426333401217237111227338218423061266732231040777673834044524024248119537994144634896139707094805796324119092902877536474286162430199612647873453153926522569403457609788002707908517106191400909179210337225766923293375727272805428544515404558558122138838337126613648272104817931110015926379643012254943749501792029153677909527873012568110332982618994624386239029849841216013711743084676827421993161802661702944787034486836278281127549164510321828197855756971854151394269439450916191890750734128407809796255690501334451986265698685658961440962804865052649997980255114665511049495517047219743810435331702024708770261943265468870538987816355562291843155542997175388811354132444218827590219885925004034852125797509536862457428366795147897767925344194811156585417102727357085272059367887741852683353173268649589163758638353063281178603027365280525920588801839233306005985085332821171294852607580935835673367147474431087011697848011298177223177149133378993898422500938940498697943454568210916214502224062359517886629602492723166158953118217764407191652460611945064947450675629611987683025563318358980513090030475821432695650934359642114025560034062377793084397352705284088953701963534015172384187517007767272939755890748635053551789169360945665715017968693483913552829757376836210669094105601149538755738995323181352586307257467937279383994914574867989279171978135587646391696644171775797965072271118294296727853208081274997026459276573868000517786720243498195579275850663923837066214659144137246163357037671801082504792981736021749581861491432610907752282252024159562760515650631644046509920668116824232829121705991914749132315101551542827653398554830539804169496207492520143472892547582296828924364017441016322842216391573845443454014429181029436303077199177936287733651619538758120712942435125974792396567717656404991749656976010676930851722298566664694841912214414913566390910369259071953526382700245819070948789599095450847060182890729208189696856493641270703419817482082400570097762885067931365668276904563178448364079119402220678469991197612627022119721864728340366025355455013943309106827825386370026077386038400411515342283799527149542582963268240213217694691204100430479920402112097308721649259403282684630133614179619234156634730580989417530435514845597019893450828201117169454949388859691808004205582808278578197682895126772947427974713700584048384517822034399544878929211054010599016508706664679230907384251089980046671562975545286148205126576575931005686109096508084013135809585974447672284924049246826747347221459997245534187802691658187524199635545714266443694688661898636434388003644800915130422559985523732537360166874106908235310051885348913806936383224436481476228361128839738224639431426558690525314939633467084348459258694081127707506048438094370666689131607729441299963470543741807321879539991067159119094608997132500190680769494431036149233411502273023773483468739540716298462347448871574311796039370087614677536432127877627268395147294824390436233985120968845692191436872577745868136111814419107532411646742688523882003638360324656313960495724347601559658864331239460068740272256278655353212941766537726201133151476902446283597792509478343546880584159230224568352085898331455326558193997760474968435264310968316602985711787229310753728256884218735436014544092902454345269865329894641488326704442649598134799753497034309381055067480787814336044259987673694152051174613004536794936457045467775637576188807390251790362045085205913688101976521212664546537877506509142565216146623641358956074787176707954501618870534163099897438914652364537198111058976578694444450704063805345981290081946448873779724581053368931655289404571227878531529892821390221774496811488150997660565972859164750227965895573129874944926561781490008901575865258569940075496186555135120301218638102832327963952534903196544540254026775592301561157471727087345234519325857898223959843123200567591243199489095364001491332167551224369233913633630487837278862085965021901173506446398951407996673568391841962261010856762746668703868677788286919274096224377366844204977562292439980719451548287720628922888157466811309284176062708312977353984924109736576141571252649230434608336392769272249707214301696256113473469793195110308120801091958168164101447999052819082977215961039751915693019139065231725621940444676072030483571562502579638604995638054540863058755863203216351836122204068108434858627865446117883654705177846869362194396757161100980773503957510940758608220184564495220266252083576978858322560195538208789208556022830088581004547616760212518246976009142240555977610792459440952811234636867602798239268922641127126485089904489725929222255036499204589131339042763115640133476770264565900776352624898318367589415064547599177234500912635447173408581563961758211635076371745509209934286029393413485991215442025339480566646124038230370356431944529893488874404452928211216324141138804205927811389338322767165256059262960196669564554409171018200488245479206680488089132910501793283803535715401037061057146626626099812686043999342520822440091130809147698381442544597674219729408212135052205399429393167322064312969222154254801938452319690367764755632633207245357125924960101269655248568711335948857242665571033856582619569509343498401412003600841178604499356823515203711763484123623095669602047440882845552354479538264078948410982411390352453138104482023102673622559629363782016452614296371450366127281759633231981949670366138331652578426954940378823231071912394868516120215402162518081299701421456107710024346012689641545328537812609593984962552673469817646640764528521869477750478247469007324035240486702085739260847680410570111474566451090702632715413295599381357690660951066399757372312604173675916361539327783931583258675100351115856973705266779360931796559359429974595511680552578279421124032792459904080625605825911964044307730831226431570621799650014734157999899153599687409999447508192348143693442893627615413436951402573535722284778445742731005717357138588086409585673566933793200514365106441941465543430897302991925631830791569555273982254240364593998480264424421450833690634596727279814575881223144510267943712975506991165893836101713733844891888815340226880634568301967389042638269209079306022775963453853022687011689194085930516801429377670607894797328387445604797491882938338203486602335619135323593218114283346171496939186627292515519578974840003634041285500766312593155893695785000765365583264300315625737007175520373189389001125477530389433045199077004097839459071603187731834161982054380281829288653328290237747863168197039998370838016158398251977805445640188778674008215741374722287651887021734974177639256798691702601176584955646416970625148374497422979273660826649552533015616347740978340753864827012255665371180799843357567609418660004432351246823063003603858851930943874243733444714880778233916525646897170110203739362019585739197817379944719548284149356091361401310984199490884110624593014158982384832780229075687296052648461887014577244933628447816352436280131844310791428632894080689384735124469541372608109371868932806906658023946944272431427818482358326190643414261591664411774028088513391802398508015248933949316598410838865483930166194841233347191337946513397530688862296407432528179752749910496833603582320226416075798321917140321902140441523163417710022686515601962450671643350570612403588999469930303271073870422449692653952873925683256198781763394249343592963660907532160502456407185630774400923217689169361739849351691828771133893828258185171202768053165835012622538946153122629646700659966553660504291081678553344563731453237160556527642748227733466259081759969330168262369765775996137404333864240833196491812892733112125970227611527194374658241572089561005148100717990558185013550300198130389628436636976428478357265207362123521650910982146042753872872489804291812564148665949142461633718923538415418321770326346320243485359787457136228586676229379488080838503877439660984731979199794431277907428308426494031831803926569659151259981679084055289521378610065981990356071476275917292725193951341692449629433384520428901336557733968972865942727974174035539329443562895868267354268843820614804392886167857733618818466828144511232843244531686289112274273492205099494257253305784224994009774325047533725200873470662714819499232462514865753493079477311174215288409131562449481532993530064214905667520427784429307573143976032345684186060090038729422824905264043118682749570964787607727628781607563209072968463043908974335312526802730645898654677044875354681200794834855758195659062892332462541140489905715121186303481701603614195584421372550156298072170322028454602511233768801432103901301058574030786847115385657765654464648075062256571803587755420884953561909778438377416326031831018744920403910853562509562456152994504598273630118439401281860430425732628601681995034822693752700886073981815690219424297457788218581733151721388785879126001872706855536144540886166593517924106326962705234009859339299782762059778639616890014475266862760226399796993482938371630579488550165846068850709244216959090627638049128328588425100284818782251600091909876472777841541793186858269168721677853943893481116543564057862190971158319722817006649446700407448030211397093804224399078883456396162534086069305904365293063073412424309464945118630352237558875056805144944476721480400660210942367393872094727346893478659599036796206753018945619507710575184236512239545965636665832943465906967620416493802441303854089292379973399150492686970249825182602615073202006462066272959525492186940331283446163803810787637900482036139969286392970577414903358576647168378363134981374953872593737569115356849867466075107628989169455361935825297325342926274788955427077623893230573753758272749042348583444453298611416767362171446802422085913417342183375968174727855825458013289272542388090866334845917576600372480752603590142031814375344813448474694097376509344949174157572819045374351434636940456223286916724860509085693382490178693229118751140011167953467280197189787275715966879184357082583576998087154813897655212802122308339327223025127392513517502488252766020454230669552072173779456694193416753791878132259205497510683263769002865860100290534677726003690557110236699960244759541994301233766603777185016361575331617904761980960004137504179397893281515537803085100075813831326860403139000472709640003660858846294179717517523058932515037131031597598135397724295326208226525585090044319812484585114610384212664201453872065076976972380527209229553480290302823798930061483365139855699481122748288367471116915367518017517779636064749515324464544238919384673688179986206931934132253726072073378839496309540974734442431494945657759218103079211944968915194487696648306185631178566486099610033941156622768024154633896309428980848008164366356867077738799442506923823510935284452726561035247299520299984884318250414219672268397295260385662711446781698106353904510372034236782088730531371568052571715429797315508591922576117030042835121232272825081508029593410420474230275875249451307486067010088932323930668028993866086781191779319831257199734842323287717565044630865501419993146416552323452506282063885101514533518754704182782453566568686105333651592318106131016158100176272947620317465679172613526209654956272642562725139506426362316957143584127940143724780794093604362416394560013163729564090536526641561848258610039234762375453992673151795198961956897301130620113925900349791152049270414497767631726797728499322970140190325331343905343458186363029318446786921190407058850124037444524836289245403576210829934298049262714819397969443870671902081060480062167135703746042534346805291052444887145257912967159914999740169143328499926093536738575725572774624336713546582677996674211222916639604472669015497097502430271065806384176942701354208045123838088934790996396601030425875532680299558905264744327051440260329623299443326455734563367446686853258475998959242568992107746989354947618946866310533317937830615134943497333306110283334310400396599698477457968160372500060314138123200279148323595584309129733068145735450483817714657700872733059597373401497926695364962164645306105500506846053532748758228038306912667483404353144237062659345347582308566617504246566532979754990352137509085513593903959098676616146496826135329537771657473842664144409668232484265345707618961035951588302936536213963741621328533548780553575120230966273534598169474106899226822290650048440143223054922147901746067762129055812476204773903750606357315919640695859446712372028469248456341574553973289700917924404264748506519761801468825738864100833099145079893335183474947471039542872459100850317683798031821910619817072949238422924542609477170235015492113665810938593020326273126534926825721184929027429738608078167073667606170688781446006707862780352967911926248632076600832330473441084568861913659274458310015648729640372446756569031059648514482367299701892333371998549723043319382693258746879324225352191797755049583880764067359751311987602114730982197778946546707620920721592403792886537044054309318830061431300026171783078927488506055945001120810117448283562579235440146568477550846781820178297013259182732496112131439671590441915906768135659323489343714241935628813311770871672093001656269801999682134036888180841865742723107238782009422811447538241542628846486772672310271536374303303988417746800575983870408397637182025344194766270353889308675089184781645233435405942940612316351011523260954045663483938030683145257819088399067571611443438775258047978152180641634042006363131549237755612927242960618122995319396326414150353772368489303795665002255160257085428677181239979169081105829985360084112175696601847128923544449627654738529354991785839765119219854296575268087465651125834542592117837581708472843188263353972726735273021123295173705179953859162034904837623100477729666520308004662899462706488312215470391179414397038896526216220866385293583672695839498869339722462612683371030108196018758778556272614802046180502234332352806571267423241138945555637169278912798574445138691634722864494631313883088063311697869610322908833295756387239322299580663275213823862461045619245818000856986483167484333043461282454447313694523994665177324807448483476971022996686226252378057380599396019847447283821859400436301516600046789361066715964342438727949138665037994179776272865921401457159312844664580572318855196476146646210217876984993821698576590223104727108944285193525296847237324208189102306300997529752570695118824184927926072028048812226666487532020485148176242340140282217167459560308821884048387959000068812139482383404388342935743886561509894156317003879960288602240104304512903010429013923495820993626107655683168307302478405073740271721338207545172127139079465195642904305151144537767401810110089281862267917766759111736734678320583974306756341622171735817774733290933225447887557827112730808473544561301823402487803885627840690023190686190677650997832705867309447706500883551596748518634353798180387757811095518802394060428738412095306430753409653448070028252341179456435148342371512512144200112024032072584646831924550289514655326390774789409798672200822706386322001143371038645497750015792300507797974840122593691827999083382606169657083598907139874755373139998403196706754490144888338565868654573679621865923643538877820178188523178371982116079679259001323730210676615689086556238573770077678916425872674775742266530219025199585841737291433778890749569968716341405900304649855278348050309777656635107475719029006063663853436287999342032006077316777859205065737971236602940033849087292384551423865135573620414673883009411042050888052329781931203684404012304846649527636088218131599328917549509075154618262540016185004048603011579267978664700491919014369118953815983283654724188524376112202557456910210454605790042379828788254694064618656585436961388351252622172590814127799256393927800857322646156932859053437818304234494118339625130362437870686606715255846386623600309814720076824158910263916904279881782108025060928508183039515781671508919952676409435767464965708926369910740888555994256175282291787830700376618902551581521751323430821244767160293619350816666774214999987563708789822253071534178477301848290636767630243857222129141981762406614610375015420724784743560479109246548919114579704466596737053918682640642865444835879143485798545619898970442576285829236348373667651575007667383191950527753577870690966032946338906798966357888763971553990766127112882891882632194298600459453156061782929877245667091908361407990460970952322929743370695438755335926734585989289192730252378448165897023041839254413476763848752031240318175493559512779053778564465505238256636068578163061055542019557971360636218479892079119830649999446874355890109309506822687837571035733467062721120306905205317493318538284846368304667941422216729876597989922005657615980881277612136376959899914581915493932604973846127488080827910262046419507453561895231129486513406660257910208870599015921201872914247077571713257184605844884438585666352660904132747450884204055940469513902991523744110869471705974923202087915338471829568504596822951255258763681720629790134134795978300559408341185925244179408670693045029441682973297232108057615223242678165091144765436260726692086482639110031384507140420288852366618018802934228848981534927261209560965062196350589913662061675387864529294513840962994272199090472124340530863450333057043907521858519729547476608710715003293710713483028889569545753564040234262729485340906135183127045404706398760194060044708523653668224761042876795691274236004808251615219602850608772740001367629446340386907806644282475243910676052106129197329851421094324921393834270480696932287794097427613680581781175580331362421213501798630145318814632435703813575001437035544440589792669620263528623500450272431675237724185368235706086336355449494202961315527540938544855224990470002493488574895861074736308532814512515119927366595832164842110618597596771194481721894964394951170006165955933350866399404229602303774464175157850822827532732523808407855729474040109779310926642427418014668922655646006671995078704897000135923879334491911737283754630602586596167808240537972277825703988410183456649482790419013878263736197606933368619725519433799103356779957488516362200316595032422741079602726889434049906730407071696949486186722864920715145926768299140244077371400524374441244613551538300000184038759916668312108200295639768572873333511780092139017970080238811437716298508716482385452715229232595923157349603754936725241594627099052245667156749961329637396023602557619411240376613492281186301782892375172325676384750010686627557605700536838642386761998256507261635783872118121474169425774454403704882026825343604570663095374775677411134324703184472240999231704820424524748585608497899311131318597725835925406979286075029298041982500934405595077360653373602358662914551959779897573021635679704800562215575424634676210136839754732235691554609050802031595346925436831544958108322871881137008299981775817869951964874250492259211810814269222383510501456598305712583797585545158257714222488713524623277375808941746869205624209935838241981800583204281487596090568732318971841275912115363703230492648586423448391664070654761890641872656658894230352438072094872305834497155858182444076392915032879718212421013331323113135241734094032997503549661595762219723273414673370378448714238563881094657272865378833442656430274557756507637103317895123375547186985451579311492005637679106684903344375583774784206211501461370364677354182990154247903412458830546055066613838056685560796614222260552026681655449951323131770850136071761408189079244105582039641901866495965633261904738192205642082877394106054348388676992100797743838147101639514220979311792160319667766304338698470352440634446324615334483493862712507243777967991624488149712741208047632637977033260007012770063113539152434438139501441266425835070901734950989571227771028395198464554642318658694437912517794890792265991393027133873170951809640128543844382696725702694180261743430138081311649832440802145564074116882894884075923144739356167463744592796657435262707725573613098869133974702631097071890194014817194956881422831104224383515426531599135437152807723292055268034176802011611022901224800335578094455564613704928104355015611376228382942995462754176857654276547965397279805379746970897994268660403498824297540234193472741616367918193648510557467433605062528643278838439847770489168169941331004664000695078773966580734488723302948526440544721728647340520022928809960626504228002181239177767293207763513877727497900509256553054547271843535602145725963791130046076864839865611652313266814435850529971639475588075038793512383716349084189267113052217282414363084444735387145420138651000610444195063667551075957511441883461108771652064752160919828963671857075285154929966300037636455022043958070860185139956850447800509076270483684920993559495310902862245223628287119802480115729920618059444201209264452055675895802710728665466394098121556046822154180673886504009682376490100024482792832580086700255373080905299634624335836903722216395344838347018147615831632538827358320546585711763138679931490840582636356055714156553061822879460236392552833359867802581757208052145883275992065168842404031836039281410860447123470851719013898861928305351009320334808729514808415271772813822119918147974473038378890483589288957356984831277168577925378739052544171828449071085363877831243161716320830181918500714789605570712166943357052657493055123122035721122127616839398291246165031473529363285442554396020124678165875979926601014188682544294654050927047539869314861592048324049820830142762402946895943337303750586274059986178720210823752781133663505781516999656436713575719505145605358895227980425202134837795017313839451935278209442575682654690760000685080186725419110987789767380654982412462033199869887427325961634784433188030195108988987829821820689639286004601678005702368962693802825109577504792701310864305328735174375464037137596353716039370343386618745333770549321749339238605645223442679308752507993481646453130478175299155532120906322776955027284146269722570030183998964654733249642558224559850171224896424736840483948686188910226343700570733645700817902265006307393132646678380649969695835734851332900694140276064194291886125654342868756409013964308358449833002749763125161064196268403191430090318492363172518214034823856948410514771616244548518185639643807940152150975561812663590510410208310018216445122812441902227658817473160954427318759838073298997416111536258384128334558083497534435088122118620671517106430392758833101662633939510791857526503511096897246548505860107210425980686351699215960089798294619552039617705337206731524821257221828411114667277386213663141285839380789158373866585928828269055114996245995265208358178670243284169217427136492571430199609532275273968818749919021492460000723718187532924803505448819463925546737309973690379340406959686297087065047852056623962253753470866816409982412587647373306239639094301768121800741959315534925711449024479545918057168597351148166681133998709685348294160233502906522409016245725994320703752527350771556508014810430399348473628481560157647772739094911509778050983146771671483561773793683257174883336651885880912747837902534619808292844290725429008106852224241218958863665551460292402557062155617112538544062108539551322351354166441080403446336880479559661065289277358988205686651208297318233980053771920401801598050903022938455619123731571869807979090736134292151128313373256803710576769349698408364992329384571249768426897161458330311955013469318642946069849027209987785966666620839464530108200477424326448485283957918222929613528932316192478228153835507010241860618248587424338017439392822245645230145455870779372727118004207282865271938431048891380906223600340784583607908209521103057223696979743845184706545780220288465915493881405320504140085618213012027371285841940616776948056134524029523258385888326175944973013723716413133408191564932348531264415352328512405669030697388825774495248393762355170704236126231582198638459000789475040726579059285670121947542946841919589605818491117095643148338012044511533146989028033760843878706201032369057977492756916755667325899822164548659911204259660551166046130126989521073110320511807067140935885478384298037880019581729212884853519362754334799682039496145793995843675614191961227626978723179824744824375196811768122549459729481284793510536469582968510361979240663044620386599914971453017088585981976062877164386480971012812412626903453831383464227659049573792518548020500603883487208775457446608254586395025663428202671266035338745204245496749916234660347163825702696485731366158162950085198447511511184447034503493710450991131065700824969051753059342375687705930750117398889496587871115086040967946281664408212360015273784223108925905800576084001667622914033025126919383681041995688688492333044595361527579325433453872539834599998008399600219725212881437645414073246020033701541783136377832644008113248874835360361699620327081637626184450327201296801953706723446831598319203310073896131278503408880161688565029693445908956437953884115642510788380188647659659188749937517593680250961664934836588575838479157062309035200381147683066717413181830223574421650195713674313317453523573574028764937462492753410386844851066850168610513289004282090698378708699567751053311291352320912932439236311682804201666622027584427643333147576095212119637407491857415299124733126678431216769577459724116818087628610983000421219392343578698655926977521247506049317073572903742651522100865359733650680189928065502916505516305585317898160493171830277564505581071687682907746844424685307389008475600742362148689059052340439983850364849358120994137288337531500497620925520581404409024829765309087921582427297817944916934258828671668330694992818184935442706961420322150667597576260314591094763052380373301826358911737847331738543054834441660123522887310087819550398313713408223917419773602967362544845125959790092153484143616242559746678804237396215114680647947893030588765068644356577321432931694387404034782823174202418402563976877952984641413123657439644103289078319805935556148359085487365796521857104157333700220047581459134860138855721604793628504918398051543393403993928560154043558954365661185139270600227687936129424893587155760682924924039962823894134513201543964730054336223006703319486345461228703005617079767489882827631310490556898871180090265577571874395168930687670586472334529976941300683000452938345956201227903123633620531216942069702065511541652682719678906675203804962330904040938533035301783362547961393205355362671703163207795541937127365136098088462369885419717060811681418226593064605502919137681717617562198581285964297021105439666188217971767807743250043706319443286124319073344435475565856555043723820937665130514550330976657447385992320914706477751012819943849245298719123077664847526964925892882200750198436235529410229646064986546202482277508837853378884865364795110221109059727181517236586211489079815506178318471619114791090087842655536719722675427636403279630534515062446265708076428998409562977820694432994715258631071865288823765133408465383563702002582054768207341688658201563876770387163056058470404011736309815784235280450016484050179391170696097566623486009577283642732153294660786871753971142506454788732350022741776146728590838051863575892168794793951299450914102662694311720017553778714408254604249808946024354089263600023868812687160803171271408590866005302384056824450971453994035212600969053117825046316413805828013576433994079000058781018402371510330627525747650969056107762270306700729657098218173489637305870320314708513607563383772372988827506855717447861490754075847831124919008836737015039815993485858875008690827300549961529010585298602442083157293780174556537272689272306415014233936071460287534773997416666577104061215589232680916335689970207864475567400332106380425818744782395667078485078387046304001943171969000998252626651721267671540333699733732956515097674674287926773876583832547756156735612603265407987817018527616402593501328415727044496838818903380037189537382213956423408651817270052380018771333980782498600850760149886112365145173054418261309034887085217123743957997261268859614868095258876137548351993532871806432602462261535468265405231667283980394089435028976321527359651820077682317933180906795871417375590928160636376719826885972835820048742795882992469174087198210297266511544603180169950656730291759119838215225463387342610118606100696917117347351933735958339041910476993256866801095669768504139020227346896931832156121129039490036537642522782228936623100454848216005532527312535645039646635101331807066315118796309650095354499142938670802975429210485017381436519390623375804892936361643256665897691663960771473129872880368740836320722841828398152315169773213292530407598116255287078421496696290428629628187738064367247439090747225690827375911282918965803966422651431537231752041861932833382219934246961316091495560534285389088881351239242874557830525924228937472428590295393586368112479774879562592831308673721509344780262732842629663994900447972415397965556438863914696000506234569119840745989472362250209237611835068976451446295695545878831613371558346068164592338823961114067592691802923218502945258080219148247914758002883812417128452196516476091827267581491993664462489269668603535099202165335490525043622433345598166429210734268402393142758742112707865219813411822991971907028756185175009110875427387687019752179623911660804313381214870390666122740100737149170318486450130574978356061120123703433814171246533108783279514474880864071679666450506722916713641484113459015232704798603384051493794235544384690911313568192142632456034538303683051964367051563212766964343781824180290865133917528729399258047952731310168092318033400887287971545505796238307367051236276895403687371298306009506670386771801428913878441939373508945067821336392961417410704681201415132380893539314740796036662154446497258884684279488151974578080467578731109832166985432704781269030623465034519136342684895603006903375897169684259817961185738757555807183284770468173629632510435931910966376242194463121317470256668767958531430518251610794807799853213167736604723019662612271380643135600841092899133535587760070382615471134645119060065545132247909269484311050001249669775142181609473739307462315227381772234763311195203749248847869914474880834741942168757112518910798392032824447784970348807339713672476378862531475177887905792808671525975034239058780002675202652681914790228965235631349457791532705478590128054584238818332981793208731890022496469199757413288115577488628487671420433411786684847154720149610138252993363541633622474053225383376783580391652561097336141894795993875822501426709095139020795782571500333725200516026842263333961031183167112967709598755963101145391408671532929996777057022130151707829763507090105846738772362848334509557609207370759380108263017500842692288370379725103860218800850891586913048502643319858913933979427303574752965675390907213095069249766253748436196273975726275072958848590876616709130632239242863934718828595673381682922925398601784948074725254571856036548179182833956842113994881772015186527016964573741816169108302633871687952087242243492631733385683017709557776337014716445972483577016349355480855813225466461739638674695711576568381263115094157876282862024464185806142985915013250740623703087568625031608432493692832945712662402308945697206368321311547452844809275862128576330608393549535060907089140284027894218329777958557477077727929656649374440743862450000628435952726500655131679389113536377058051825249099254895450972789444027265915704720212034029471473503725453844525701168896439954609202019027986901484665249169094059999612335615285555905151970373593409516924282672992489020382473285457615556786028067465907438838324461613337384636478673145283630021059294588258515470984904674090408940559351619476899456646782018518596660780225078217001194126441025558791721914633268578696473242582787933459432120729950214802748315565393484557296745938623218595198005473898177963196512643092715129428727690965692216573148135738300697339521630420596908656466602991464929022874526315039337397784390773502840362731715925736523852663158583540958153086324203036621710062887282907972963602429374121010522315086183724017076728979487681379911583243660304792032960957514209056439348085832206225863789543779127419851294875683298241335900220487966563082097130285520791726943417711957886427496847647900694330428537077441852858948334645396325673319497957817467207011838842752701249341111007795698388840279213566710240576277053726363139340382325353248093918701532607674993839032642844158490121371561723900964832837298231669436082533176416037861055951729223804587763427445655321892863976335070615757481922732562895519704828365754359319050665141080861939869874356799694083177861569477061209710120728273734405821087980868063514784375299005429420743444691748030047505957309645900083309072250963432286459076743802045217406622908397674973598917744447366129271047279095571484193240033182409929575901479007662095092723033841552373331825170449913240760575497166697917342426104600596452500157206800247409718227073909839928549139324320285683693172435078655617852252776444824110185726706547702729145764194510948407375674151971250827078194793636994403247400309918631360555401200373439663598613410164014178760236836288262951774602805625814863905452631413200177669664118357222006886477318894778374557392807055049093742483124643873014445670474815259863604339170586637872145903186681620549222270485534721404404354536650383866185380123772855966176901061636032978453888680971877014254484909669258835025983542604858841739480696432696617152193745451112874937001673398731949498445282472548502463428473794467822698732568622678217756357944856720087117777125665600481080452774686482461305356163844840712330494700392305250450402165523486020366108493644314794262200242882726834133452867236111320439095684327379604324576344269954211347589237372178023360112292889325077715286418905353316127108620287045426850042075795500573686825442344445607362507912151250260450580889609122452007516201762139365465144947188930329901588852023183354710029110154817106342727646003473310516516418782026726608768455489556196299509475716344883314804286360654562224510940656165012580165846181522166508798743368987097317109724762534506160908709403082662076806338998298679319342286021250439267375636635588960203940295026995567512645972475365882768711989851733409894049329767540774584703076220944808126817400832388504757043383078149543877225220005236261478448414497988675587726899512222895534819100169749158934216171452798667481014902099292240895600666759886601772678897329756908128890742099794992964192820510663244005202624336692483039404173459991200019442846781868839109532010931902935789556712378202626735007200262037183883475321923005703620510009625112665408011442976859842815674931856537196583173840561678444250079731880000179414959627640639255020725378424446406284134701293527641278536268711444850004343359658385751024328810742177461011688325502107735720661695304359655257717080201069410085148358025766672801376768387323370589664909853091446819541204551090661206198331486034650440983176005976114116435602191483709451157491081968320586616107693917242744719758146785343022959659031297933990102744020744376942650417616992987475634872298522355400948149018550773917778102303351052390671368801774395742996784537677045461506832422629060585257411040716431927877543972885635552690006005370645184377889686080498191500770480107899159650732774121119131303542293530110088829104672305939406514665068506119951110897787309313683283890940703063621443814194784443879492195520177729177513733294532973251594796137909820876609050377517160402290223417900256363616713108237720890022900681182150538886029238890105394365429224137968229898852287472705381740893605905602645424604217079876164799211671094218556707299869466797060808282051749516882496820432735682514599603343717408400621081152566963457035164891044834954781829526848111616235102632497245662693303712031832634082475534758733729323512665168361890066488711470312465186995465648502117712746181762266438819169001488201113261588165395423730052421267878122628706686543760906384106779431577823223106011289076191733270856028941709614094021238054133043941883142863807283652898896480298769866858736600952718581763693567887639297017394931907140954747964922059003600148762007037204418439275767716628291726817046871290372024162034333134983916815667875082840168686890978186539885203981305712859409618092170177510128518218813846365859001882463203402269955039840107564764149985050780968993349745877933890812885697235019792162197535228166146829247669709558679314360454008627539106121513005934328008958944199147353004559527745571385363461696287105998108390061222149361937044341959206064225792666755540062812204331090636646389578833002692192000741105530934258471292417909226441534637179175689615162720542064059795445612914048697263885619818548536153234320485198679627576923088251158386929912375285986255054881309581066134743205737767320429601396446597582812713697645502706642471227656871412032357549474311182559612253729919885846167871993393284540069228635851663753334093777550531219504748093890871849871668685217145502337150369393769762666868313013616033433082872065643132524953462764013664414264246727171281391036536024801103746360949806251431434638952942421733073056195951154193238712137122340365883591508069621773043234294443122282439839540200529898669757122469259756848063157823369015369835677875293360165293557947133847376189588598750201517842987739899263211806944821493584551193111225195172156019561645426595138104739695649849932067725491025307268157483457939286082849942459125105168755787055053856831484831851163921470328027494142767202104689163121135625588282611673629564248842270304867589549509518600077647303599618004983399727417770116598577037432539338354272954137154180194831521031595240616557297872839986409291521079329627417520011515049052060120019598480396014175062740389402786257185350425456536078737702390068999799611927426108643487736118681498809068015526188814603449918562677464239715483827463786082713025941740964564243828926814308870150564362486818908212485030025260477863807451589981820664597015094017243596909235899933672500930779073500191041809591593545938067676116369266560830279812024905875096917058878854745988545266895468659503099200967210392396291992593034415972407855136972493476959724602141857671737453977512698066435447737476090627284550114082270950007637843006125285410065488144386572766590085504498420438154361057822649685738781613918837117223176294713338254822098414829844645329393305666647044459095704092120925570343343876550475071304427130116754509256693080117021992578262691780431298875962549840044498393654512753536304815060145394714594330398663702090638845286651033221857927452453226365544514636038784075067464222619001092905344850575799680423787750825362004181948534826693699053764134275530192065717922386742410331455461825895406571222265282462839929916283058188327811228476316080194664450497125105912258197363109441466796560512169816875968612426788486941340523223963352422247578403580812046309434369201136712893568142553366825976992689908505937655226929468813868948558619410874479107582364122544248608303160266373816416500557105259255536326979338081917738236982810680789446030469410723134451346868842159657677176488466816819405428203447548260876117700099378625807241719851811282652816963635255068457521123924984096461921327316330076639196656343581253066175812698867986492513389047274339638787909815716518434922621344129395884123079031630159623467929981306143861212276391255527549697789334818851863372061012557955753128438475660289410081850298695427127966442324707550887137816114976986075676335587481496381701626879157540883592487643678985220290439844477076394371121133832621915878825537204022461342993600931922232620023214588855522005632834198658630246553213521885709159774955041661279957652365410406921131435344585448509630846616639221656554331117644707014149972005365905548003356526232371443687323214338171120852708005104702363025548359868976477093649456058479858577371921177080339586381187357563162088060698675194401867593497178127517501907083742515209151891157659524052061297329305068341431382813723189589222593484344424274482128157233855199680782216631946315060492148721660808620305189035874654304494768457580541169108036297235873755262279675421549811717531476815806520181640591648575884903888752349339511482854588225143155483789913921240033537476684967283230973159360962144723863278548102604999862334014900217581504420287031671695005183489630898439804048289275796796897626264015704366163424047766573748897385243719873749732919870239430531103174894090199286734282081757521461271561231317820868371363753036702595589805503350222235123945358738196692356181278784105522708419636730139962738394302028921804259558890743990117009648470891208345329289475365574754918900029143040603261692084056910455742897132248134933963530366798870740514245694434553514183557256660416846724826423070801009759831077828588679314103166992218207117267037042576877522981570905187978815800262585664699327912065967475603587108779320452337344001596838842346537309981732357752831827370953878146233160224940166252270792790917902375286691191516909459280952276349745826833596476394332137279521242154980613789558483848254285782536447362080289951381203463608622355129940959509243408145739573485128647256827186048380515624648023649201048812572092281410637699517165258979032596369816734943690171617737825684932504029767592487782709712196446315569196227029700790168131820158010719639229669708171917902576654403466565546533668994844566187123016937564617445250570194519334849697351724806114605014021017355974514654783146470776150137595392785318284231340198939148110699386733911271873841762827306524787177599067955050884725673590521852081032068710992685899351281787751216261435106582494557903331747517622446818653349631474573362942555464077665705025680117322341211048148670422010073836976027603606473176191806703566159821788611555685607564442727953395472441391083599720009783298511246108331718686254125494767740184411984890417361550222261852590756059497935394186046834520015916742323595696119060476877595836481676445112093312004573401794005217280221804195828835058211070608571069167670993267188602264560582700118042763347471579882510341299466946886443381628111964017107222511448369975607936985318192113984799204534136960170353940234579305234598222125175445764065026948369500583814959432182724566245747336324603125475638913229450873800300583001796554272256283338597930787430868808726444163672597953489873855336469277528529872225797880014539433274507288897451884261296411748052851645001050188630305359314930392445746803868913607634073797103499743635437378205113230485452421970169769000614939457222276691481798555246094871287265625049515880522563752078894006290734002079656740912294424592949107159089779968888109538707336490078543167755474029182301811492684416179779479797808746869158532977072275612713549838950730803584106740406556432948536272966077026063448826861205403093791559433736293424755978116290906877972976719209581537748067709693275788946746423440720856825478645587313506823545974153209820676457862847168684226800572816107285110595198501641636251832234878908002334231944384202182726665262759639681418313843081224192100129403751618917374738742281570961252100457038429540150854519019514255163248171106351983462007898886519860842536247837968609607455784752071442655027504188837013784172611347699850099075314727410360162425474460300974093886295074755810862103122812696816926340216531895967770893218998172698759505570636656998586902810173153150509711850107980508813508536435413547110201699585336416669370455864425561008056186548290178823471288675098567268867576380170038515676741816710026796408831376210750924049277024286602866280303209546251379704319056442792539955902192698712805401767393388005364314405709117564321284377661882690021157110532667566748884742177775570767225418478673208699006464234932895722618659634543545918927894382008328117038378643969103489702700418029697664235799773103297719508492568651206153853267136915491751096473691038936283670028842641887560476497927607025827832515249651574703720803903152217609900501835910612771025319140284298997755807918661748910786242108059187421733541484253389519155058519466437484532152695418012044095907691260366170127565346619069085610827973924388855492220927339196040342830700297358985263409908715361093150278070205040390676495431143716990149222123213532154448645134869398320865752485356204501030064182962966300111962092677602174809690006902960199201409534356409844901702554855778799460776480196190890576875702709186389173429726931603336332792278410329346640480960743085867818442588851220809977680761751992225997976691565659939990134152379952553676878682854842133247971678716961515571116098687572210148709795272860727859820084409434552963037581618402807077385335978764646251602983175555443211128276941239627447019029932552523359271246414725774034664404638063837436285607397442141628446866957097028438031133885230982209611175787378965788515140935987340901190392639946791969568336622907773841642832201385840111624225126486640448508337820809852039317884342008652655642258707048846263135462802871248634433245724934665766790322386523652659828791386026261082116841354057288139046667184258353754665966649484015572459355686447696358857652492036072125627339281175677586543735166886149439392311342255407735685505562667463903921736175645384221433476824617974859244300809911607957351656429785988701284277391917874175991099946752960142431384673428332662874473917280509502581557703047314061090572353939743772046691034006422874178006862807255896256334433351225284756386132231979775868400496214487309260939795909907819959075887711476353704894610651092409980060671681526827205730690647259919314092099576845521309554310476486490618324610023023989665725511875807961842051985715211277316034840650665161908199083158355578410983157827880159307457915184255188173457960163582254266099703633780458999940419895518667161356876336818069294169445111114589335338386487115833082590032670896980215982914012331783779039382306513962074243248642614806260504659921367349068496232396955265764844241910850562414578469571796077523947506086994647120817240651950554667003873258068956806744346108252779527144768378614956829405560102222307963033923114294468451630750197367450259247385058548942622332373538225621551074787594144178392792742672725057532502655963341756841679426863910495552996944298978681654031723266250160218639212494962608687109525664317057426121519179429739388824308047659672070030075028372585458697268051787680956106580176144081140705030773747525364908531067115787309511063167276721408821083909552408064082051903991540936996196264165552123230184715842530205014527412275889577548167912696151609595356327968648954917473102761916464807656384486944356809445754022207927426707789702937252894556582160868393070705864746365682144881039305983795856929346298818000176959200687302119898460434854065163916054024988274576934624159463194580292357688119072279927365692300638009888988534128575767369461796592851412448645350830883222845540926944176410090685187195671667195478798048695771953389894674909593363112431499540181865603603465742238546996277591279840381611755986018268195212856229977038263534932376441675781506049326986579824948883516147256937594408980539401402942255699268984774954088907799090781304561449189714136727449717140878302669444523861654813453977328309287107903927522743205985255990964054216735134477794966224418787901559762816569259720421592466459903890695607956355243706918042318014885817724467289199717527730209487677988200588921845563643314208447054422031252625805104888107317665299133899956643631080746508434929121348741856777208703940205585355788242114089985100211064924251041048451189369413709886099136347017138403586239896384478081755549727684582065252032359239655798254472558021887101884010467015925762351906375452691489435324613197046210176294379425154247208823101820933893723094589874213828086976209582898705254454301581894870860014446682263773536541725615694911595024747681547539616536878073892330580711276407355833595235626546959956525111740629795222495208682470951770328208888464914550337609911188068426071531204619929566175046094067645805829092036879449605284309341542419174495819512820334716421905634908209622356952252745012383358747871981645486276226578672038994051700805459336072543393024991299390634608301498678422207393898494972112567086683047516291708339559391339289334195777189074733694071093339960472586401288042265601738149179109464621931486101374614968314129504671949024832997851515337511274854711984399816802213865486955583266729920719874281381920187560856447960657395432596577527802024147561218841536921748387502865511661139958276345547603375077059518152099403065524670208645912612270711315500671379982534634194759927230421754870270311395750973796418699900672046090399903549841512526658173735301872677438967039137993926339132474291574586382091110988524331752116746479386180447334729420774560158456234327137572147818276090393666612249481748990906915979637872368540897426465900049025702507441492663189524948545050689028564388504139181732015410778424514267672812478379442078364277183285216867477603404787147255472316452562740208042283879019261867476386863477414713321324854812074362123260120004721132169525137581591493542942061376946363987235450887582532784799652975690050107980830242109371950262531012148933990418109479872028945957637179005744151690610380843040016806927098290817807955875938905705328818907119522282301272290612135243043920751187955648779665842902139469056524948231622679127870835025088556011926266217482793076027717727363197303816958850104464178984900755022045693043940110603986432694420161161346585364731796147440852005390845907332346665055053688600585679555583542781383427717567561539258530864647556691001482056332588814664491336421189294351074862676678793679945060826825808862387634733003325173951455194477312248007850171143182488733917878821554112059572020745290986966961878896159620008201135667447312620719466687420294595039573257906924326206237663127557720192394273890964592376689517928622363515073640592325741526556364181956817568854927704501906969482053251143533280232559808810215873389067084804171208580504474679155363153243455367397314441820613940362298167443406129321270640270643466297935362952349869814663879646501550424852755603004481750423406559062171261212577091046693992826182834257617875111178476609338509234625645073759997341254351115206013380581209739399375334580029874857263341535539064652857170874362547271513786914237003366882271455050232234488550951900858318731247635374331252235022805660859853650228449652307746470315438324263608039662707528353564490484510900753957034231832585023699604223318667532403465819185017676068033716038234124371144103500980985636601343817493251082300474359593591901509690202847223661941408652164710966426456685763099574811928055864783659403103202421548504350283231838262091919925773641624044355179734338003596992342978029520653081217483639435959558335066423094842790538284640471887303464702479276740856852913416430529906134122037428272858698023857498798579174823985519495070113412513382606579243198671957004558554684188866989923756528578520838911063491038975131181959733406075439093951457599057763332582804170571642315090717387893373574986669014652367960699850939122036361275526999232612345810744041393199398726568533369450117777689539181080784362162240168530968863251305112407125063241795874093598451898033295571497932885553158232674586159302643212184931427005358352193178817441138333397455141856267929305336743762305057901210318301616021474419384009068574638000391453065368636865069398256824482509532979652009834841442601065774216940732672000501154024083112646292256897768732605293515986112941944223907956125279646763740057284380899313513254367481308627103581503422759823214830189074657305681444664420424488292946088484366943400253188773288067385912962133757871976513424055469979165375377732090535804946138973425612730457916141634284463071474999374214670024847618823684529917070773652607125074407007853587564554376671104333855793110939914376214939890428636866039539173860716329568963097490770702032248111450063352852084191838966823235860114747140622019632516893055014098240216521868193574073715549112601256297565560644594157382684680341494927436172450843631291888856859945481610327140270265748721790769405869979063438804363433596984851036094210213869448109570411230602999552949687566266079235594633364432854335921451007391067210242359292380847177114978353822150652483238098675188593516478816070364801587536087644636656789270668283364882605198731560385870023694159542638054646128736419831167257496848922681397906488264975273262101770262590443786377942639368969856349263173771960257998688043232379167186374243904135229156522689774188976857983073206936667377388416984443542065975292197096401744438562700332375951677848059834821991017771291267072608629683231103285465733634727047615678856164105526250319701266636970496032629770172922420593892984262902105454166603384744387327333168879309137048564873173344169600231393775608367578134093280431568407999400157648815401209247948180678810492760959875566342809505028912519633500474302467692815059440821283864182632115621774668473982346412314497831601188826589164957930936288558069277156687961019830086526291805917718154029495025197304849946286108596543484645365406357408859938705478908589196421259860598842262466170783386967868967330270898173866804842909403001267585680219085356082511251227039283182201022572403216910389510628884918333729102586782536902492465083798579089457641398144569947597994471802960583443263943137749913088874205456854478837650964836152906491609959698371416006147367367767359020471896265108086778790859137654905358462108183860167192976235523226395562180361399065944085000782626193602821455496694201420284996568128467744695051966819675621078359330953650145695183882936059960567115406858059839692787269488224346753157616867511155635838465659780179903171379380472600864914242220945637113474267541875983028763730458871099884244231361698586862505972878481769056778222450233718941377158786246564555024366135032138836184469721627916631051969327402382688895370170306832999981738113332942507984729863152193217944301105610809295793865493970006269331080468241610976627137911348356815567257200263170453214549385446925809117999389780518018675261803785124833733631059707843924059243950735418067532868927839327586948638839884196077816355602032740586215074311513678012949176794479165293893168638882671201045020030962263470055286259950283760090516554558624397589976127760748191057514137420387134017274943315373502072000398881425359574937493667043741855235379397348497705055237845244529912040657655645969835078550427785478202095005300664091844180184944764453530240744450155287751662402189621537404352962000661268795499626246907444074096258559084917599110214325088528342239178977637678205995111958342790749925148609813861620001190476789676237042474957611491349603587279802732983191994791845853304766773449254569999540468044168708011544921591299963391944842321789813681233888660634629984579052007610527701856254689209733963001270445694047410733107150062435315510114971479581910975338308075262214130105795629850080513362352704370951352856449126108515105910477950208522407234005673683843287352895610801299258509572491919578492239762528241364507079563238586343143553077452372677351399124772968598522288041992188235942140411956434815328108584400540522269532192040593204670498976878906461245787187853489545976697547472297624722757832394014482566611719714483875810608168582023874408143468468857524298421514822382959110094617963982689032522585327452292770752744053692745342815156625682893628136318723861613590422184618527911843258418301792262856640348062152389813448063503992912412432398911054983191932816577434919472971166950424241588858145828613470833380413792708670590688852302615810193337079834732782360202043032404293878280535233634380967669777480486534146339518643088317210106990768974758736626965550878328456197976819589568321348983963447308971954603272389041197307618992627239891020037501309287373523141782622475601064569181029611517381395318123289016090012723393704337245728210275551997435958340257108765720134935651529011261633128796938353994042941695239653804483509648009886456568712913982208808144137958801721018836763959624027887306763868878968341009197996624686871979778478209041783937098272210372422522466742606958371909027905169285535893618719235965071669040887436362339369698006549683833868781201729687489292960039464258788623501905967682602556040944876929545995575350892915029237657611273702535207861702822614960510581847719062568611961673537918855657236036387091628383693515833503911733184485045501882856735605242523127979655500867792348319148724485696568938545233943527740397001947649110935789009467277224094905143215788328783430378971350894993636587542284491714753439594990483885034364383984315718962472811262644075431094776415886460921226137766794272551652812364478190494175730225184844087747341046560978219989089543782641911203723596976020737729638228105428086484519732597091498323730699792467108720323800630166849721014243154024863934734411957349677726209697048966074846541632872947323160740319707261338459788597717254169624427136052310848414596766020845257911747927475478479874934901748983238242507089196943553543732319037230027690016735993789005136154589579284721331074846171803535329455229440883292956435462152605508546894090845634340624865231297575668235451187559905775375460610939139049264664201789143098072627827708067818685108797418942904794601739190359703011886519790372524309280450930810393835543640551496594116206496935807779892903780716893924473844884124959402108413797911925274540088521378344454465204429418156796321030639572681264947944876970267965482094773668737071350464975026554149982983120753307900644102595311099608006192706639689482623077342489795848208170187075730085314838200879555539896057410562761069514121933847339905365501382698221920479401179430584532558598897476657314342564616967267105179645901499185178327774633042975598558462345881777025518105656123629134445965199588904465609603685452632154587011752995213660793006447292608860282092894506558907608393110840669385373666420417820799921984902272961004696568123028516432159795213180976583508821772798485485204683798397014985408861029676377948687973604493364066382077033506178309383124344247277453583009421889344003491800134145712008276901925537121211056956769300236801273455791609661575327804430316135214846301270725456349126553925413824195921052599480082012254229830420127652006335149903494389103479151251034305605073316529157017240560262232607337079919613226090991253515611965367578158192413353731604686867082674492780524305075361494912316815045748682304324863101214485734471098707543942362720037316999794372744042826032220175561454893140289553178950608612605756601902710529733703967124187229320477082635707534279072863858693401856817370768094102123045294997753437212701818970984486644633700666930953321214417525386741413311719523249391301717106155861584545545891727090541931330521052063613115667648270486143260613767034565245746443755855278410030782725063999453874017625779726291740583596364152582016518066371728249817136346899400740971609096191447474484725385500387648137004320452892093214985078068115890522390239869570502622005640034385672658507250492763629023996631762304681547041666983471255472241431488454816639241668206616118760312363384706811711614352001078670531392993879467339264756675960625265963071431814746922096412773492519068608573974456695324276937841206465005090914513149000523974860921436256090556384421010545263146618080131348117585574156411251932185122592522971716523099927741255913984106982864553876287502209377512723804977434353997908602081835432830854341899220549997830698595011537135821829794274460955360581999848826813791678311687338180109213292862830126183118719148566856259535309160051047426956794367847587786854188017408177980588961426927774558717989549503189972817900063146855482133048154854464636961351086377081357731877137462148341112182567144669607769169360679582571119841680766085335397666017027137076634848165008856822647938632059220410530883762270348161216718652685005057994665491952019435783031827928364837914012872221107508479634629419363736932369696264626659596353501873185681453485690969922358324845821648173112645087361121495853340076336746952356109421897619783480298711400440635831272760935963046837627136477766940240936619323265940529711243336303352841896799379822891184640327962138969008504002737854252081611705581812670764156540744212059244190008380717603173926175433071960958683190214435992622043579577602706987338848333830329096318967768324195693121829479201736332852180346806157463850818263077852741785825404738263268999978738128758785566625834984398493426708870223354856213859307132267382265781138408832424522665617110247686995101928867346241525569683884554097027719146405956552302900724509738057597642376533220932150950349867751729881248462953740902247541128027296419003894217784508997700212391487872938008281553092951401852257908455129728482306483064718216534307756125128058812856308986171041434746482346190529684776871201415872959373887226001639919796716547499701561743498609604962410059085504500550340948436896964079629644239421379921411978862048799562891486895425253338552080213713471749607509458997685641957659355409939676511417355397664809713096353235322691655745722046302309469658884960453136918578630402949359068389673955933385867232087425058120474246028608408356078045202038531291217803078859169064130005838352880111251703770886257800768622485939305519670202654926064011637197038560620445521174408883805541965216185595049428671328490724923697313537597429716288967980643022251763759275639325302478126297016328601631696314387923509379920527721378340220645499544757338773571417156632280374708344253414980427696069906591875133646781403063242484265658920148253767225720136061890222843129552694934121437668473890842852717511979588285588994782893189408626907100639260219535554897400650318011904928909265966636374857813497078832342946343276199484192996069102246582094193034367369974514161040606149032765121230517949881777747591542413476091402358932559636461169723801317828399546317853856565224345160892646530374686404703525513560471623552480576002704450128760660051257153950763664423651758796141625841555945393803389690788288124105596538729400400142274209177267811032009868338127523696589931973773042213950440384981381177515636258168213899352681488944300145864243386378265460408555224865895025047349288632670491064293908359721772747059153849379821925914155405867683606987090557498989228143438914111913283200436697583566180970413616075293211828563318708827973817772984650338904636364183525569184396570047442939496417821462668014890665896129667525926072288791722530017389315846601387977358408201354819470920048910996081413306250769703294733636077922572846129710414386008686670802467041192684973876366424245403695821828770817166866408057771958138264504805243564291837588582233897340973384959298752086231490384497621273969051332145727123506467491066536134992561035893984476361834379941947199083072321612546634507271063242448033357981859665584354087353622097475760169320576240868135122803728382274275669623516337893170202712203740485193190968809484186616660045991723906009412573180363661147069266449658406347645968420069696947400391434008024536235478801958734926637653316168420971231397536107786315041284553657025780113775447626303308245096714071178658486286671851208501914763088349470834444699884972396381400980750164859122582279143020500189476372812894094623056504005643646639641935457593960656694172152243286328770001641554551955827986414226497891949295060277644090320032636913421086805355610869178568008532007229126420255973592968729032472769538084965156852378128537428335601402009533369396532295595774328230530885254077333010583259388199724566923306460154666698516618752023755745732370259440988753938860236302587012214320267584058096740211770695817311298114093927053214487986688650536333044467248217535990912094740087139675692786869112229607553099614893280250167186336772815548737901028542699698451440429454515552455149542809464731972745152688616665955248125566713020115701620452629893444267527618788592494417138528263822765286309129524313538245216152608501095177203757593217533494393311150409160330632733269144563052018765998289797913627102681785586876427299215935336584632499954598171118379882360630740767339702081469402973767191979254030094376681039370964496531586121748414656639634633753977492228241095491042781243609896350855938031851049736179734909239352316929337669031266554034872530608961743678269429964349840805079843426277930868958610963290678779383741242841846003172463622372594633265507938400047637437394716489501060250286772732709542022638370847330355076532136336120363656947682390869639413704488386333128134676155683766028916884588450884464069588841585833339738536541324190955410662073511514586397615275140800341707620186943904325329814939781174494724390973081900354811637987333693134138083453478892071644781421230285214904856155670856808555069828408758682466682361732845220229096637252969170703162191604159457691589247624302842275232036470706345440842993230756109954415044013193714173619105348853335627164706116188081794511254158822422508128568719662531950659328148312871419489679409170433627344071168979583976916237101740167756606776766760186754897056758595124074499696383225689437980264537266196770479247585771789042968140284253873587826369156785050705687573079620802448951300160591673630905153088584595611246854335946571939454103611788731644903786263126977184735900998514308628855902064592632371585243413321619351541675961390436683036456629060408775544525575597158186036663145491357588534366847637805300451521133391214069954735514457907688170613195869537678252499460572509538991781075680657460991189215900850400538238357352531794688609203571003295014835534073029524767016654932252281949507561667927750095607242426871482404617124772429033900649320740882475172624384388605694804785939284622547641916073505389968524153405734765665694760936601305858531677929527311293848357791058879868841237908644836569334698805911809875862086300860594149303170862220350303893122143122059461498702562931454519721637345473726681699047653258549333736760477862937955726283268472168897738143397904435659429685021769761841598535987464070139440203350696978143732389871938594680868163399183480588987274872973503933033665525146803895453283308364405422761477388406389395432764857928007958738105182073366050969471950821368563485606345733877781487632289115045292191345088097394262183841199723772438946392161938462174731737181015454853959207965877365869769049758296403988667065590090605920193687263604834146108156841091616057398026484319005923426216018070373439665030921290533443844508858579156467557894232359311311964123679170535424389298006991798730024238060143304949328521973405170657282875830989151031908807412400523789805012274908353859232057037614144832968004537114269595714851412714945087646853866832190107315201102185220814914556809404449078295360501103789511810637955205730852661590430969038654840575728797942429899112559124974772818733959033828354209097687602325028563381828534443046113520743394275814526781068769277978598778234183982239312522820387411068184999298302009507618020815376853086733119127474293965885100116147087396161218611978401339780949212001455394302527995757159086499414321382249538452998667998352589506387618180611551705432644064951935586713568513432198627949093623320961305356432449032282302916101652246799478199252978250134266080429362688641938842994341516780080318852750388835306823948487057268314467133415652417940247589096111511680363877154917714719606297271781395281096607839363570453351096914119778057379487620891610484749005058365406343926100129119250914584094800311827814078783991332387048774366984899070222925278766648043555479318328967873714733143393050494189667600141146500776801781525880352382433804824837900429331686073062457624443802726508245198796936455786133099150661826969527353310832214532727294040245952458412382315811243261930215219725741925681584559834701129486876692040732549032865419768968736280472124557633508345579343393340840281836250189955998598566498050340097508508405761271805175967251591661969636951063037459180831518329101415322006856216789446338326161572646280731877616401645971142656383009426792284421088884068447537923574295111513768451347576546682796524856573202087186013047235799646459772633659627295939976782713382719508843957959808809762644920180547446588513660759211541106607516742658369185003945877325033890111157805689325970940777981241518866333280330988453346716936338891630065381089094528069217336371686585959240828316551590247306010715283910829195561694326033917727711520674921777985150807553028131675078931622463586569492124272763967064082530743607298788128149388728596245046747693054609204343137717787015056215183144850768297867749622880839921636072364648837055873097758902962116978459197061181495534271884439324883785761894313665356928437852608415024833158870370449084260111670190032951752066631203858789921725960342954190483474444417504250851548480751003346257368034004141945536956228549531040406594280986394522374871307197580653096474771608703962572891570018670340419051013562059085631677453110349790411952913435045315079153732620218467559032083965129066759392087841863058918550092904930831890071894760195275509286883351167161388959660010536113553318531575522871896069539596071973317028127809283752209572287995639819697322787576300600609797036794261974635569054895850950351471353938899466198240251133017781228302441421030147523016965260482928503689345642380244833866319964622701546698670405833701277010902753532792125615533821795901632336375446953220584684732599163273710644736934313872304068269763402812272030918451029362222076091734688823801097178163471603541016306568989373807480704692259452581335263728265758159420326520080574399693813151064909382052811876312712417415100853467828224797692512857246258349691351478857926167952621073190811909431754121820245431526723393997819142535081137953328317684225971587660014123261304898724236182444605640923683879319167037883832660556943092278795196214757421685734790963053028790870525889139951914386611892473502151582759528720496870903733784930486014119864572030463218429008327648051696772175638785021837200021296800243038193698288588003372861053273771236916139226960883133275438427702039821531734613180455146935801976521571631612788367080821616635853698865245394122678434618541800584663903097125262292726398521403657463558364187155261913029200153711915670872413442426047386710133417145757870744748284408484843984915750500835071152209275914326231413948256826561630697940611132288105627951428396887908009453481418538975154430880715830260611799962506311114928638425919527031335469591205196797721948665098412628879394206539551971076824109138053965497568458059096032250770683735390542021460047499498515763331160988961360661625057650996018089634271395180641571754199072090154965199720290150955543105381265645757641837012464422040456184530854764006911982624222338813148404529339356185263006712957094180455076590828816471834097339912602776433981956406850191138967594343171506982620016767080335194321603701421556633850770330929477256075368848051652546051965236532306017268860854732568344014383521937371520149578796499343045705567704799577047712961789426043475488451046691348451245625073721802091516396305063716051059333236709372699583850008946631923065901106201054656989958997251285919783289311257469247363490766597379746368636242774079019244308727929038074667257676923367098871742116885126259371090334587135395766629628013055509163466992702429059136869436875619423839674417494993255300409452538238623801477088738885574054318563745839294647190104025887237163889085338589037253721507096269718683520282043315372992853334386255012591390784103915452825479679478963703263654248436688249309831929278080760590927762872126632748416014945637248070936441979885746644321943045042117551175129639603748429925875219117414402652775479106355446004414022729010850779138424977128708602802626406857707859038417868779220975316921511319191735976426659583149184828326789556603644867947109357420745562019717323856147848002930488405994413562249246678636690469706820867874340762814274883781971904324938003867274482127952050885268082868553946109377778276230280643127381795585717712476291622992850352567501372326187917447804346271424057409313696530904496495019754319137317541348785043920292845278120507273735985257600527992658284032700691756791011590319030843185006103642384188158009422928202990124028255100087631000719059712389889432648431872797665077151303770457133984241397468768405391309161240228721048108095479238861684039449490916566202738529804819200663932632361883069239240948936923808675031441873000464918486365142795049357355909428789440459679438548799454728021701856297602393873163031191926784208360446813706840930884890549740977290364414281522484071507438966848773128351173222155711481639319159645511289339960891798745592913477297320061082583540815112759168037055293466974533990970318847753628684015075818421924888129925588684389957440201411383939902399617782991549323911691148184963601623486628543877639730918514443429512210697338044831227666188284716547758148054373043873562096640573051770241430804702328582683941113784078505876897269446955985217271826914484249428906096977218384228031250577674819557187903148978814446992692929777232598501053493652283457320087875581381205832971593346729932412603838475892965497691358277029203679918715471850950496291991963033900908924464456066911664165488848553287082428822301668501634391154074819564297236587561995331297208201983482863203366930794304974098602763956980825339904107809534989063784212175034731028503041299733944446186650529870393971685991220124623224761954708719436606533090028729138773233995808048367261558598058636134875628941399438611289119576319511095077685295496167430334331820143998706582902513258319739540698847955237019828139383993446060860405732982051122622745642117792702652752770514769335093477636077322488320223543020073885903435204899991627408839162206828289600099086417775965385233924503070988478546967374099741266561298224265380223609989764059330915601820742732635013587099373628154507152860068558308490854484110872302146197405438394211543024084268345191509273893998299508684705626590440460390820353932879898963129984214836700438138277512440672516696199742713098187888641398715935223934077828527735573329023725685347674562162956632475732629325051337815871749448782792110317372163621843136461196056340038642246539381796867948477269977805571670752786413910898029483280952102181704061355106724921848062804209554920027864526122099639592950654863916413931810162109969865179675005037342225568211319801325567471792579271240868886826939348561642594648460469662713999954468783223200069893017449379549395778923199058518704954812092130985588175368911478267787717873858841740382618197273402626979990991796929121768974196193739850766031112668939886504435139933906436633942811113393562164604551042420557841607525032762348248509155814447343562984557025643894229900481258958923963777799589039948134295553620362120655955744852460208891352660156216500441076427944871846290581060110226968996167192006592467000782190218665320804322059717747703323827241071100752148338092099211659365003087374748384247548129199201209665396053593055230948177889286884444974695919361088023265151010871910940614378371681299644546747254322320879373537326093577779960638279077424683079209112697655717972539560463593317082168513473950441363217713577307715408940517857701070311498108530157492750770433876602343452255834320356541938678450856872845271816598564100368262742326649564191228907302618570663030107884118607057628096348604660623859312074998285832138447880255297779319932161436642992819177663448660088313319800386647526708504056428203019232359136600464323357524471403327146760016013064693806475727936537582990331372780906388476127765942749859344771665676490778312518305844440823021647945881080150217997433235394267290142168483247167383630064531101433467368665689618782726597108108679636828635353425566622174016015988768244103006886124516088705982394774809552394556698126877038551185551345490453683528582251309272709429935404902485463249950900928329393989665243420918717844095341410908069986825623946716546951570870504962255193735503382313724008574642447741460937144125932776911950050243050020707291811444790033666345629015416665137989515131578752882477990453120664025854852489852863757617073516061964912102089903107189426284848632966038441333426157092685047901907820347999283924985282459848530837208400263564022900451201481995423184282590439711151686125362644497954267443517617568161745405981817886831472287399261748992332836176707458403156169191213476617882579333728398196562826315025074491333435959155588397232777721274329616085611830343159403508088192668144430331450449766017967353100028954442275173985541621072278720383641816034978184640011212261648462486017435458108957989639424058777741600988501809102659772122556972570417189310363033004049922104787127396264059686593951425928587377824382084249092115233285356724614215389972513141148349971044430339788724254649644314840039886901979031566243565714943009529212722834434363524979449300385444044534038780603156056449512046007016845796763365129732364463591816952549371762433089032388556681452602683220738456773472725636451171743393266687612307653873586677024508597599506156897069583648046244877158115785061468340084917761982453341842177649521367635347068219865628379152621955959961674889914931961409285973246301374385357454970399726943435848429321368520915900412593180747798442194128319764158784696444170379476040024544843833386158177623720284302823068678168407929293869618666157551895102436099060606722503264359900460593044511256259647594794860705921772100683601770312411336733278190118459322950014373429899496680026218471729881405860760695191377934835175676549604035811965034193454116877389635457420054350080391084871522047326901070436539064744826450389821839122519062502365554031916506665014714905320247908967232634323838588717443776818652107602902075238975173508899013904401235368163230410273714297608040186213558358421981349303022794470799735566279829400434280997873591061929143290461046837629472213979221625076394852452743281281753729586761915145591769276346407322366098751469367026957129074110333876916367297218665414019881893761630786220650137993144102957360874277105454849739558015640629526167618266484452865090782750449584728337040141256501091620114269014797076969475882780341660642010341982434916070279632214263047060639808781705882900398850766401138493933572136462524932290465956259407834152353714145670383762300190597203184794642720338115086861035759127013892883550967508436170204309946770842526203600699805374240639635880028780745296279615648149508612439870842590047740460462747975242947093987375364048280197552497011460155323049800431355101703939281814003330223093952843175354768776570092877319930213314854978489090119497248203905712385678485035601431563633658954820447772359266827609111026164784102542224252278496638954793144648541583751485250558176213766610415616333601449389053071849150143443474578262049995813570272503345780985265626766280508275785559276672342578597769504637738976290261758084633061589009329708087184851919039072613679821846969871198763568243383468535766695335440526869104210015523042685487398305057126276571563868424550150844443255707088506969148932955205335585972018279100311637338637376849793156369605585390418512359640931040315686633404907303354033282505813879698383026955582467818285111804241018775393312903065760091129858543805980479736938343599558555568398976600443193789204172141084016264484917631300778261549793433021845739734876840117788975771118089207572991351206465252960600507112322713986908090442009748169786855680460273952267426576879556930239896433733809320424620639904958587114117556952102487680271633808534433334964890495522784440412960328335482491981066034302251700094521334163216489183195006278343855989554239579877610141836336313442096259601312473426056284333741494921373802869135740158710642823139301700844698497235358902546612233473032389889779313884147454036766801855976567371508573242165777480534456318664681572576989806285351571754410164966613325646742698210642871338230888837753154783429332023495614005789672160000384202530619637117270971109040931649717777286897163882179245954458430690662122236885757653487101211491564452163551105665822393782791547283641084997857606841452214844545823216405152773400861649818726593120950514717242392527756785927922592414955246476198961752714973969661797831786743930333747508990347304818579090658614177808428554046614851001823761682263992806148715908399575979304485146709272758594084408673670629696742442790116027584222964674715809926037830983850905745727292603470616324182553211580595046778752231852057523872729812611570326201576958270927487154412100446129567531318971562662143494973960697510226828069465931080290919343709900485726466607660282950339829116679499676606286545309921262931980808593995975057648707931536815317672258772031533409451853217450166281394614915050117905801241293080064421739457106074696030848304324968944743976148223702683036710249282141545220544150210401154000902059849727518610265921874996254189479802346131855432951919072234562846257203706313316697061356819500053388099767265969429415232841075452043207548054239466444250296021850626109962932831899090792373719730355932001671650824718179926018159625531608934132547229809617791076645445264178716895196965465007994911481531271323450747563544262837396209697118820566660366140491003200743776857039211612850914269443814025418441003740777765274136500986696195833933767803341313112951368865127837503905219338957588968446842289206858425291826533600303166272039904526972230250954469749696047713626834266224145808459963769092507155831924328419906978669035007928229610961852718773367667709382244554224931381720598813241652234424115459044898436140952324376097134493261068087533256065743671282884812136608248577979025068513586350529068863055919593622337404278711220078114825044048249437605246023718567564020256562410639299682393250367734195304189286312469069981725319722527358882041931169943224210697692700228828978172520106470910329319022698465309288701759092912701254194343059996224008792777244944328234694412363159183001690525725252589535022144107214616378874991096973246752409778379976659746374480897662512075741805176916896496950320230480650849417077169447146356679343072594438699719516790701697520559411381842755450093987411532244774979669763552971263457131076706552595413388815092941978674576789689204772282503083017489526146101534959043358341227197814169259183080981495505091842251668963102998096841401071488955538338504542244748190482131750038262467771727852875303762015861932873760172306036426444562604494377358642342563166365994139511417618124263815062699478920214888100461694781708772227735691050668882729529333757061125629846004637459578798467956702770066348659453760122793344962193604622393992735896850193952674093418842115161640399007007481716659098116016579977616804141977462240507782447166811701114022586766082360877179029021798522955019426611315541636550203637817988996638623648534572411928365506636455689253975099197799666910290529119850351817225238718701036878219060598600479100480139266576395658852708003114671161662143468602547211698087685662128540823325911535396397771993517156499983377164694016522625825160927599351843620260568323146362208007183788708400950987520088548887599666221822804074327169378612739096208528451603586713164303130248336779873323667342789530068419109638410216190151500928286030741658811438016798084054742280841821133976704068347817412423724202622112952474377960857582679165114780349694804522040300603794088249641809922065678391932528361924101154805856262507790583460743803956819798334145957372323402577317915089280494031989439624919675475479189860193266242300427103576031380080605530362362366740546310314366381316905881041871321865004686762942032117547433418666419353000831310204610625107120381013336134936412882928908931155797555926108689789829431371986953924203667452483467213124651788374437149783409432547768550037120754979672363538697180103843575763818371642354615588590643717577485060920971885216082296151047929063710493088932590822923861603290469907311603103832720550170911729260167731508672597197313143643124007047606342394646453987753501159023365929869875934395170997925320102132247725368116075588915371658233845704374486927635735036381694614186648236441671004917952440628453207473180180227598027629022378026516650144692386337334506450762990785259289295776294806080107521588997055216010035787957641654806368326884793420820265281739850049003983972679393127102779398219544409701659686728687520516011125687685347757501577914585265179005961798593611502611987816997020708532449593771274480876422392375918168906758206163988650925606941216359636164880124445083477045372489097204158846609842574781102621681204796965846469903917416270059189725968560493942304837505874434741909907109563108188145938993787509535361088001011205218569972686076178317831819072389539612735796938984545338379101449856017899407846288479238322112507518908911090168931359711300379334231456896799142660930769236434820397111073759327389931871345828661621799322273453385322936925784486339466187219609880706032876055984286625348356303523436454297783028278987209801524235785056536155357398818536273726337952753966533826206106260055511108060031984950033143747967333856699060662068286047148865884112400712003807286337193297877321569521621261807156485645327534413071140721107273934930396703815308706867287361343742442490054423766432370346009180185663107428619134966182552250875344444801809234033367563930218097920252759730753158898024041927789799586948453373151017171533738576364427348896886698271146203353927640828519563167338450257305620519393810079617687320836027027753906086629880042246838492897858086343376730126115035067660163826339907694121720309426308805733973110010505294509186775506388260652017541914939902769832341695115733974052810734724721193271440011263147666868711907635846487574713478233046479766920305961452366599914017087769212346464431668737656622658092737611698019948738502047140085469651668156259860587604051725732293023221828085390576024200746683043224526169712455260518377669989017638707484389346857946080787626195859091006127760181882192486159011046909583554559574060518164333305370165933920343520014710204294891893981618169676099479011116962795722835396328722672297954281088363028454626246079572033569872481818385998002202563735601096149934118106403133433706175065626571221531559973844950684150994396955955057400604960450520084167165964615913998655052174513060485058524474217216570992926879522740239525764354427034893151638842403808741290243138483160735228119459343992282892160204789214567844656384633645329396623720600765815380456473406546742162018223885514705130061107823944423149163081623530482481813340715746518642807259120932121091829210794091058561925910899375136353558896034605847816848365904080718993914485092505006670779703745284349158594063086354200782327281741707084783867405807236732138869099048043052247262205888540921374095545254687290298354937252855046906914409307768053755127736567103533761105385503290551410646060104074020653601374373935216971370111801976055827286818602827522728615231587271262361613127849981320770781513204697213350335350697713862470064660858567549909634959920111417215751467078691027721704565720946777411594479194019436015764917269658184519562682968590533483232490789707716257777281210117380468338492023952922819481150854182982988932455920214899515298492859303243212843747844204682954349845096261498858958384220715410139694506531512254791088866622905379342381857769548439507017060342690389499631881622373130998938875804903166566635081460232077178606916729045380310345071060710464114793916502699445665294787186725613676039474948061012070850061689813192012666385421216478914283786450872634927260091664098528372765307634893313034503257669399524012873002038858681829011094190666711566238699545826391226783718025906843619611273055534524053009363365700375632178301779465740656061853947819575747979435466150986512722609614503679467841658331605065305029529798665366222240578666125133764445732471022830547902657580131757030752455936455006204702100854969132662651800907485925738223312762381481135288435763734103417561134285247091443849102320853637176489026258479525826665200528663955624290436033329291313099764026982637205494029213322121488287624000422345571577987182957953268132517735473782770495778798722926511749473425621981340190203413862944359222354963205726296313086251044986279627693548960661277266205538770808012931676182590479053330868388636188658790880313635902015905186175132895256301636504265963784014153565960841954813360451711143459364890846220348451206843072701516499086943351581899690273195186152529552589717549854447863284991490741539743242430554270076106809194717409379998700168434880531144472611729079411131826307168210199835166122567446008716166184767021048701826317894320867077305903142854286926596877679159944097731977879503190440093284224321207923530595243260215429424524846805532759870040150314527971052850480462079836978096184888200536100247783689768268759548285428309624130290973451466927856434986057991606068561535557904517008031264544819754216499887318096011497299724279086058397708434068191363491748101167166669521298127164162469674712868304863150582516612265493994113589330849328076772279014851744378059355674984314266201196385030896135039644714340792422676415942773236355560587376761045040839433235511442174182684730900405177702964087588060148975263359206601795314758162264693287495132093716812438480017062214362153009478449905407918853324118624234312896087448297846683970756798128156364291428800905265313036804473680069698698349868830102027599363561112811088225498571831123258522169267474059681071275630092326873135810172181087549100390715263158904002789250627051716257383006695492725791060592414578006312153929090290181221849662230376803919056516980913539219993855931217015468681826190939497908765456164173810041926336691512679161833359275625671251978562764797402541385085147857080260151274548106746179904332135073689389953969879389181114936275175537076941619208367198022526644699021003404950840706135792032685688530185389522192158517992415012370771071766177474778928145295522763266538061545490535883526228888975281115010643594603285751371099455069896086988044058254630470430031619848176948997894958569576213234340241013274354340632959457010349150610418120656863557684912540653556132443645354138589034712442480667446379476812381672719980286261009267609042579772106609091629679952669387853129151733988373260957838713985738161882195315544601188854286932518209207415215276220786836090788120131421586117204707212669947900023222103640064566795388557287109738184986592463295308558238503902814012270365614518079431246898491821129846377673713169548889459991700550429885636535539368729628869495973976247201994875796186532187298642495789073583648939835061099401513195334164135095882225715176106443614864826665570193986960055515843551973739439175535977753030717409169916148624543953960750974274065030417123025917764718822786695775486698266993778067104096572044710103431069520445524528288645131571736801372807094650843592953921622797268677529972297281779657299560904738050014412799317771246914682442681620788155486280841207370808723334015128665194293956084317908679490200209636541600825564722964575614967779226917797698954662291141217996948057166990188809203760130136674226312744788484660451528953961803344520418918763860537508360067900924301923167656632399761202440125901188188131432032561518506762385911040498546513202189859433009863383860735771646610231122764168329689517299028590657458449213809387448578476904191682969144533882307062671389875326669199956442244814585250085447754398552645437780846177322437412441792760805784330802414861815963652063795943610446193647055052852028012117129466363721696670688385950864432027613030792498334476329592178008599713434229486418475442249146226582131447327171544978551791039414930903703629106981058410238122184631582618530261584506619501151788310280324708096649726968167236195982955147998201124624686802574455308895818206784210152151434959274963231119973276294782616176722927420025545938401305467654619577535909301556524647460951547847842547408411223795785040131588761821743835717913647275039576237369214747631946129805389883812260792284434972846376196090915811048078430922294510205230073769204375207857451966298281455828179512317259342965025257891652852766209373249614566074453098189781120268317160381246681979959563538646918874851587294562769158578683584189092058557846895805394568239803290879591296116229473739634007995291575087464544053087620160827709292303068137034434818020769637732056084025972459312381586273123896537732086239318575313236399633399399521875776491465882984714433974195761390076906925489398535635625178215429661283662580369888285333206074277312493392632574694767005970335296941585159976137393295756435142774123132672957242383828312664746017174826415127816035730007133470644841602600200037002931839615608267896859735881251277035172090605737681974230074835920793981465008163220390665154682077684493030853372645742797046016423037062558004363647055409230914519646415207668703889115155360450156824968299346022111351956606571988871401013866436828570505225354140608710179308820072807852952824269061552631762470699398938615739014766900817592856123256534042509905508740729886624055900981715490465139013732945132838672799381325339332774541166272991113356663011302608099003880952534894058825128128041089900784927588103515500691743547227291289833483480827697631979294714611305250820137449361238298391203695229804593449084033473786631163281483945472168579501111286108122189357624959584207548218767267959094176697336569404786529937004988141194596005788080921858670380421205953272840333534304375348250259151232690475026660148251751890887722629914076957758205049341484937128773505380800253054002424549061838095825247649389161477437754604766822414249226135569417932795886871756063053381449533416000313660077587052203964860529584207059152353769361999316605207698020432837522700494308438845628748387048964683223332355669874378160656448915233819315000307340834887611355435393839301418224101499686732651834212971038869692022122226260321284275991227333386262104847261471143165559179090683167963770513774105812567707535451573475336257665353049599907323482727948645679419807441923473780796312006393490006171755884384460336066940033485937694739382072848420433181697414414597071376804432998376737308708300126609874200708446643972253204423279973051061823858441557385193017089564730429693290848561574471598692770454252023920752104057816736778037169477977039843598381921834317632648674042812120977991697336157789523872166833393996909096583594752093499698590958801795799417660565428526457143491205563513323335119878115652297199298929642242575813534249257179626974869396067665032415231099832707541356094447334949167967636401710510597673739970922084431705508496041764627955924749751844993545229607588863480710308718836330193536834204936639019120646114806344820962619967490280746344376800980167653354394220658712242381581382520188883578512058330886679664296804373568714666092077363773836165562489628494518370566949139220438225311431545643425904827425543162214969124506199710145273436484159688579848884851662322742243810610528382374686371396758508682363436731757121833666552006525007102083282866640030960762746728110462024502964695011461038299706497130221731379923808766243846049485354198411602510931119299364475854142806852979868935719788542747096747225104203774492672902157500401506757461939283109050842271348162636832240021523879675181229795710867150902908765870320162942951503064363265333503159676553349727845290671940152270166321329410316509036757212295547125113227885164878057237115628619883618367848908079840464524103705899972979293626571623364644233939586691846532050945280156736918017565546236618129753485519890355006136152711112555752434787911549690876629070951511340547983516488014552821287359546267370956874982831586844317270417314125693958883355734740801488042934580271134250681156278970709026391599622919872713731356515144147509416593004594188416797688504541257448997769543165935948380016109890249698755684582200571785195677793719371836363925707936577633471682484191908041635975564030975036365229642558415251157596306046598811965749498256187800684377198107347644483544683454730756578840926378461300200700137842265365706487315430243440056288479338543879729866543684128760107202792431890450866993605003378671586678286422957271103070173453339376440194043567518267751697411656576939473199964035860870078073605555398421828605497722978703135702591381720927694917443353578805755915876599263278901707933850831463675591566742895491459133446532684828579236506076221664180219541577611521408612037415547413653482329109305411608413435355327734963074751085882026833041596963125734104283279400622433832220241849887844326486870057139196794311184596353788182928366574509672858183173514385869535199170783859469323706858721314496383428441600626736164542218593724671980466304965181639752299102403270924205759135648528406612119875606693644857745103019445464867542532905636988005462282762035980206796391782626682462738386195748090160544315282132386491385395436862806509967173755690800565251698658187249197615813889178827927617556135095788771796271970918123591167157164776400981553798342913896257998721289694049224171899738128305386416411627069392880032800224010016391794150157503288239547035780857752738385733239851453879942959269851362532509661647277723857504421755826051405833137998418637647773581222911033647794074852715008484924411010774905101429426569323208454576746532011718576413420769676111223238156040181041985686066835602194070743195643075552007663053868460007095782886179306042468843818975995380919806613325794311800571745143280139259288317405959560792696026108781378091395820605884979138048833261340226444395600704837452515433449808076260472161042329211306205853646727327040463225465853718091447901324425869302370744998920042756672018439359830579773499468496895559610666694154418380468723888844389083097518127522592183116278452496926453356767972375278405398395453456066437973732971792580285269976027373242635861907448737021084694412452874654434526483631572009254757498452712520560926508562773138418828677520927748546239203385603612810511551383892845971461028019880279858476497184009090080453904315039575250202806996515140713101286971119621845289664645967577124455121039432160495684595982291673704935696722756866193556177141952753077235725601377008183430379394088393175412399800202535883522820889321892608272867210660819451505049416515313381204699558307558872552273658386347678830512341660626978723184056679626611836252705727720924730316090899422756791453741367779618455862441078874514045511283677845223564769063197979215456195481859783155705978879419930550953350920942753198650613285536687022807803314448282109862529938552904420485822537718710530032164499330096498170954400070289614838001205551421693510960914750582298723066793109638876465092235382221234754973445434770376271305260973290628606167359250012599636715067657894965868286354433837766447817839982308220605933020511031930998139390545801815374725141574480315604993150839964650346761423278406730325590573493466730806866820103988471592705312706682509312182725237829739537119173634302050181004804508939462732529706104921155388528196978006502194611062660981585018594378230985670708027624399582846433650057305727389798746837189924328445404285258315871987738298152182954878350387437312167199807585497030970378825126281276162902720934107639919420204654571036577126487713589731565067322662765136324892670981957943515898306924639926862059355618224972176414522910223620844472627880290899510430561250077543420261240344076576852200756727189224604926703909853355415218914472883440762511165491176825542346083184599941362523208704714585435972027424986359151483717847115304728045797313407923920156389176854942191316784820549370755745185629850344676797328181020704739452531844240709359545338217547322989216238036344814577216936781226207968617172890901567712184046711582039813797053254448510745868550006209955162049711343194630911148451918817192745990404448061520704107820667669863057859156531594347870697939490095727937060994660107784315124309290927262194333945619829692566533959825616769940866218245107750240062178385043533481788553986001743466127773884564288611613022660581660988548383121479163158562391610854821068665444456355154124916007758311275958999515040829936036357611878849542369147214219720538583083941420284994779348389174788618721591145172271963460597142147311746475559232597438843953499343000235057976585375849053654788760297198432313260952581474868481621632865980715800348029032960745489499945569307924643980161757933172615287461637782601884775826798149133571476235534441279787617187680405002502061609381571595760074000889242330775431014272167625546488629167117380100094092377268308350697331614428962909881000668144650718988246307879676594454067056415482610359191322735150483640425278860181494857245286721705813266443552702692788023090420259565074379456289074750048217702670925431047066922713907947406489298991044020240506423005864203822640613662831837542069645540849008986746788794120466486370934107482540704830988528051785112046250118933367174715912928262667734178026761779794729288715446303480844921854384337549882169331103486839238139168281483568064147269126691131151108087410658560694014338971344269276892436929669178139323666718690001391441882756706911510678115378032213723154668892230157973708399797362891790886739647343528127772778783238107145060276500781764502687181328662982843246360486869198767784817430661413532346877585584373297958906316616966259049280962228385668112300285981028394492109562697511561660771627096895163328942987056000575967823192903361439636653722128318187026105775311047727786874088349630094950122723546243598192505700409821418907285646891116343609664166169576736436592098431210178234950380898666195748738379311256297967085816699371321993650553722047449773780515280612842333937342585435800631448928787395870968852215822524942077360270610430782405514758080676030570149631651827477658034391848872660198353473324257666390954326719613021624067458681426997130821065467345267498838683667486431989980216422447282726308380412177260031799346770409747849555160054784304294152684238751990475000566255981830692015535703296344346040481053227484070913354804068790444302555459441985730849274598719783359533582919401670292393006765258310443137648011535750314384248503099316455210111232981859190927974923434977153748648025340647574309665299804123973563247229890379229835660315375186739781988067315803308469562639142903467632256398504780785034449998105375238498801401913975705130157612773424016186365318297403163236260574652872624351835320860092464029017370757840328061936328982625536835507865485640414864768790129799439590741007423560279224173495332074137102383994055814440943136152223429154379184125752246255677412584128688873825149893710639005684844525464449721360888153342958425016941199969499237533894465912772133883744128421301637261320156852328434876204496303721502984260775627734196669824607261887568110398175546825265550578756601102428227689515504110118806396231132778016562801722116788014958352294095696373575451109896387824351495235469961398100752346385888168149134757464987148875115235763137790004668503139577850486829783306190075856781456312303297468025731104400124015215712065621825061803769956445243218916974153084422549817482105882012733946477430992024980129866744876607351022070942353144198106723820066650324820648215480043616134507611151003403994954821094414452588432902756551341454108634163624510523974268962890250417904389387063731799233836597159294504520011314053343305366615018170993955544545035007743062104259965487525385165494058638407479885622006407159450884534863498825989389062962220833590937254969437031835700288155020759059433126919910391957627542316842930892000947837323631927472180305262989523846914267922602008384673749155923695935329356072603783350979514540352669827142204878400073485466496931208018875386232525427782768015080652585234290933049769499278625257128782341712627360940917297126045008177441863983400455055657641538224257649618640294160120090144984682564931020950944051791096328233607142674046731298767500910782838035266795797235945209456941348014139055059397858675396593372256599549584833515359220340399781666574710126119552275724095249797936272978653323373527693315155721679971936564170844816137090294990337350863909808861908240887675624956175263524310292158041239944501618567087616195977062671043666124896338978380115351803623719061611674845020110614737321729206241339711658783989603274084739750624745820370933714006726507576799631671009317122728341805209538483058567589288845045320710035535123721086392979480632836796778130058296104328290982852828233946827017158681149264073594570762994387590882954269020428296177181649900960043974837467674638506743629619654405499929196684132190920518137882145309812229611451084177466222097439521006150789155137766068032671270238614588333899170952934231418051842408101111460157111719312479646563278137633353726677429172738739723902771198052812761913472567878719307464476822555154328039787712592879316165470861099898184923490764014278340918232481037141426798011292959918189179824278616045595775966762532565500743983541180266448975212723253877178009499555381856090875566470071080798709451843928892356973289833700369331903126699438762378945116022431699982990820274032775363543083702423735681735380955003262788310359739261255418569286983028351732221782045413512081508317500240116036163819744695872544678253206133574846227960740934829267051844874063438518942115357531148618706911093235806023700523550497306026153263990746421038377478880319310436912906699530728329035904444794697482826745340944702271774485696186648582957259702011335408813422610351553318988932264356055395725092386431923635765895247266836933916348702116024088086962238543667977171808814710971748588962618908475524069039003595883190980082603101516668533659137356966418875324570837808543797221863915358794316618648906686774992015023053290652741983122630178767654567612471418734673033197772758625047741601215846732000995913598594791863583139217973665350706766615610429997058500429565168349288152548873654525812840113575636540193732535177403120718308461893201759125722577523362402276465180759740135840013829175889149229014380861941513865596890292893003159431483982713177744057512915410128610628022073885930792809639564038508318988267185656465502527314193616414570568094167296710630845611202356531857338596107459741798610587899472189339753655709171340887896316762079588912374492614578847755861704616238097455636462201951562416164761636033823738160534784977079208665790972212517927322579639518779258929294332004462242589900274990928277375463390538364707651346116359291826601523581439169397724736400095989535778702801808759935289760433857135649662848673554347538769277627964669093588888538691485689979557453527218209076020309545023629803975399758866987698810297757521998370497419061790773008622486638246203261601951287391133224513069241838288532202834225105345405744484133825940972239124252225592060215467952720969848546144449380712567832164096260627688833815488354611378326820771666372224058434216412485238376924385009032018361580662016120582169191875436997095297653630644280836408147986191676466627842385198536162095953255949966180273954955109325704202907036362414872775377958842075106672948595301361255408165298003561210107203727118391846921015749867633216313858868529315849586398589608106340406605999000469977977097762527838479968296049409042748291072870305183021405863577218848204495074284955555134818934633055580350583920596610672663566309142283466473258616792222912932543188323942867037732591867630603612029423069590275837266361721314925556479316702982056716118205639781898331746692998794835299178587419349734928776665690223357967005545006155545354133916339575689128220100595467658658620047198860241807800107345779441916429706235445243759694992074810316733184070034644933714101087021042271565432404406510410908292295480380929928572309254475880010905747066610821132375634715995728319325865727900763757895152193332131955928493372357068122782351808213460133310385993569690166754976550722085562919309155932527841814107532457403446227173757661163245687460557383437587569417430715550506276878969381271353160364194496183293994952385703414756245078234950079846022586870941130773958349855898814943571944612386966335126353875545933806499839040345402622543250050119466725375811176371266806068431221148952551995548463163014060699428154531064117447900663059362024263423331481476625821553749566025104666029935411806915239447019867318676008695619016634475023759609142697061173797972688470695346239697823679533798170807408358220822926992100314711492009980457564264133788891226513648717662023291929059836611071632171516373300288061755995856644898409727540424761964529599024040157324181352106912290134029584201006280326796138415193052289065102812643139950942431653759066202910779604461492603075009881993233036946195104716959084674102522908144791830961281004867912792614535610654282560220531174144354913776181344869087477573406212574526657856986848219989244282307122734933670471240224357781542543193652059726541084045971680407604082356358647215145978629454854438947061580122997079396959915228642995244726901757818902095547370940661932406946952036453594341037263759942888977760965586281033557546727429095437714747830337216922277616396740522027050451099797693311771793182044282321198048079085798453258409711441246655799250873766366677794604722984129241471443594391946385051197587961789473031096837026444506951862147113799318209791467461817924215512423172162804845757157196462974997831598941957484081077566560595059712035732405250433875840636826508283570239639931894242006377726162163026122688634528878844771137651030431295499197290629835105301231466669457078125418518611636199866739210679996075296517215543803132256824859988481510203414100049708124583086954494881009249328989966865076764632385446303177723227653404718233181449982645046912298205519508973500454364613543120425441143374144731259112181409041738223882567781383050754217503671957143587422131970777926216064479735646648347774182334286639090837343898468119746132040200994460400495427613183383688453001083287811717308173064939750777400754505183972926428402825750838072350069666816938813513608823718334209685697065644535139701093884712363792880683698437819225297295181168563366054352749693797598800380687211488183407711142411563994300611931168208286084662506394039206639067357847906772502896911223644291726017835283046693234997605596108815782545414573171527216242431287865008528697672890314065831703788412509395926435618565878668625276671267365953393132102800779511599229271223669716866376491570937182125236195818489444625797541543318726751336236277960605347064134632077373675011637535863952488512748679323089710273247484907352074361311794796508566164530287539973011799689350162041538929297740221050163826309887143758642450386537944441740886279247076219709894749255178561326263948873295770805376637472275249525354308310146494045928958111231406291369482045838364813707483260323065465916489995023183169200303408346878830086183276248751415005408881547529042808583002887723044912993427783359703618692758577786677832523625521173993140526106982204413807786788845258054128363444639226640610307846274497662683607604773947465150381413552487544592198749263740615398576286148145515980804925013270070309196638673451875429783945906585019546004895649836515880367158101757310365679332430595763855210897598585221060981212155088742685559035789949498723765726214149934673937511450711853827227621044579914262415179032341612903705754734142938028742358106989707591297770487541071820708278500623531140259639312950475435240871152190003905361859395922622111519396129821944871158124726303178340096758914643873194788789279044201440166459785542229768761531496116950854441401306453340448260728251278876929001863100210047035880586029249788259443721667147849297725337252026170113198743139376748599263313385088049844490617266973058908350828155795512150458967918735128491745560680050863857087639371919950217000979940213147607724328655621075204032488240439088201173563081092896213694157112828446471607708226294705162309012062694370802023245068883042851635522029126486582070077409814338058252098997842557471181725117183828441691758809472113048538658206361802574728520400077509140650051735092672612888214438994946591026658162492428120645895479956854458716566685608983378392708642279425768810101042651059837858603706663935552853474076505858418147974125584547482125570707864623955241226790522022856979278293653562167199504051265801570081619730327890004987327084197334377961045199319011008847871736063077933087468055268536944935604731493363317297653799916992748134807543111387827855795944384860346261379413549751715741038959703885716571771926387796172967262312511698440598442372046384821065276299689319277455535164938719618631533209128974922596944294516008939992723206284713419341118058762052631139663163954797395920859824167543369353338725124442174449094595749102952601794238445271556106945666153448508118186902976212865365077048946136186910274508421160991922772975104197560482521612434406713734384726454382727170716053045394671301052237345572223308695717126464137189532500753703984728086823402743240611481767325047135345534053487939880879355042602254013133083508220015864773182966741927123009240581040845596933544572692359508044370062692133042145979967071005794479186855430797047900535111374281625330442150969343673307900449421640231903203041988994779533624382437122321140004788634108853395301150070928097456663001412502555976098541103512122407363066707814952049760007217707526653785942257384102213437419344487735964805992829966558602058846257349956313485861337175720068171081559616768470196614530855493541281919059807211384336670479636118853661176527070586727357785368254158791148573622427948703256775959229296052522752372602051020586989768346416702152031123855720876659550356755346317318803559461173302140328134410252856769694625968375747664750154164582575220640910061318078567804840114689881646041149513710137618475893164481398521180055765113796990571999432518872997873994288577402941996677306330648015237628133602652591737192419901488521962694814342695479539411862124544444616819064108474284201226115003719491052901396842889479136761791378501367857443208578670954980138180914866705383216850176768842522977943276184855073160001578647063149795424885882147957221263940878121203378346980925066542664134060365983374097339242737822263073701611101433673351956195809349547791911321099723848382615608215721540361170367089855523874947526790173162225456561048935753955467813221273536981559682010215952120944669431645538691544200141444994221488379837073522177653798560132613399409043406715223851116387233775948614885721262886112698365245688277556140132746346700595925950266214861114948265590604737369728268895318628522074930863338127561441714503632360352754345236207533201832628163730843948688643989379416455474553625340184204758592266892763943964266998010006529272852907401887569564768406404419075631039985242741545897618763516065014380487521206755229088105089583320744208719154532255636313085068203020701112022396114896197887412474600832579258691137562890972481704644274404586096505879172916853151418680991542223497875504127473712187772282337151093619070326337947657962342434356683743506547669134717047438800329152315367909568869784187271398768026141506972857011656331199648498442081456974734180909064499217301566875556338702012152313507642976081518296079731162697212919325873972287598225858840150858193606113403464015265262672141482627718571359061094864730981564187940160790829414537176370966455408318466189893222394232146809699160772310760735604041561136509831939858746820037473641476309010861636782294270367675201983576731104166589684586819360827841734721826651461988771475915601064221516404237468300940284998031400540471375410408631496125949809458325483504901115355229166828928405413857941623716900094455898657542893296742475031494698725030589372744224192257132698917861982468139778320270433598316757982275612243466598419652394087724583028987263340716584687157011526401872667654851926142947869689130208026209637874072894784561262113970378827118599426629007767491894413222938366317078258413420419648869238172070369469267740867293515232104556073628301250902581145904468662195526090842679247879861273572349506616816891809773280536696706187537158184036170838570523468892212764532186825166109769637548690079833517133784651126091193660342104002371358403508809329956380347055619271301638359824983874440846069797370617720489733676475084121737639224000605206022432894106449583685073751510634054017994217204635189315208175183393118581364729357310223609251505915118600846694791668453127491311167768068653811171250657838995581184041906855398123164606721119554737626019988024145798928282124470924589418480393008325790177827304878275890654084343558195735438719620427978899756505177442883279203421313347724944885263930768990638367744373387293684145455950960716106976799863576322450943556691869181612618016576906406732210847537637868913239145949574444009874978425730425369759814483760146338645091513422709472436474577948024825544188891266271221922422116553621031527906849472520126333916351542136497403818024946310809774386923353000621283089328443965811283002325493072739734576857470304232261311785817088981903926318505406804838815760961839437017979192976871064078372019027845777033322632608776066877154505713060291632990945967123796031738999540385691595934252039674713869622297506900458303585927592175752185456082073505120017708280226973740492941204630854386613610288788190858444596847871190464818441940049596780966017494839408685569895740932386056941995591645835580630959332061441822643326834430124951843220524689491148795313998969992051742438919883064384295361641889306453720096997557282632115024741055826088882124594763319353953011809228966789923074938054670837202563776088610925865141852993935907434038674625016411395086885254250829388398514551985786904689285986454951310434410755083239748823198646000452579300035394748835961737997507367067141952008085292587333805848829223797676351382974181470184665579988004567822696078145118704136093216448527676198786221206876751983526094363036142509012051068280732350404388093930397967970761150800564816477843125548942967512055536890082330549585258370615134508302071571251305273570057391542822527191067005631250128667379405592989801111377422992655360557087232957755711639053219367012687818002807290259030399481768330357443760352620137207352786729043748403130248768844488754426843835934885084930350416074867310721342387434501785533457437630098667369228856476020762291833771260684722527728563796118610955698233421704853250893134878465183190080277027666823342668342956811598262196960181317151187459233362913043888086287735193488270799783872787941285171761629215273515697251135748370683052882686085129990866387991118758697490205338808449350525248167853381900213418935667668047097944548178803585148807863618659192279663510083676878234568794183964105156453974826708355910148303738603600539755225116916348294685126519863282201308905284737034748099528137218438399072896162262920133294697080862035159256809787419666808781357592407923643236246541255162314516853863642498530126572375514375885210835199765767888341307721030505442552538947070063524636043855735311946855075862719233511380613066165476976904424855949009936091188018276731322238881284789782727227237175429850007962070646701775663520629007278586836071578673138420591704718313655331887359835295550800818828716839297601451641232598102313750862228332994277479685494871067543629856317798127635226274014004740367293295667609562312081573567086458619427290366121289791802764793740629663336081772330129459494427627648064374433732195322259928735367549144433353204467180381423194955508756441839978392242787372824489284947166057752670019716668072992263940498284345450357537800369630709414227762664916708855152917599625670493555197837266715815942847041375721987707814763002093189543148957707575691803740275870845649599448742381791138256302525387128473318044075994125608050130967531647926907508476901637867972402564960668605058929846091205626644944062815879587622379598314404382706219789786829559219254758397971628679468172400326492425214682138220333660794671529143964023792359806020238628474153022891631181955705550706128859949678436279451832994423836413208149843474466434401206229159816769937951595010996702814131124398007913448860356831238883093551339439929818650861613467582694723533191376240375754581426640317154127885748519524057853464287548970986413467656208493794416516484606380399142230770742384292769540405112880556203169686777851458463723976943056506198689827529744566401647822106754993862890615137815634381731680466094644070945806874849375460850434192853971809204420149060177995756043968911702642821141391285542629783781878606463858215541887525685414877846618625556792087941892127903997892352597780376626634044629127229041726552957062455465875236901569332829626958935795281977382019902826413532607716623583335659105589544787199475922966956361398994833520455348484973240288625749964385586770591066505383430230655558772399240584585441785318803229873037448009005681284673067232409258286955052391042513595815427180765795924519678171045389543816006614528359374216149468372020502433387004526397998967374511890062394487194497134549429838459997013333574043635122401735011440998156652397209490445940522098045110458898228856796095021123753263949239721131936608006470998826674767717284733524052064840219642985115032209833651563335510927607575231892785887340736074566815270553874658455264813675492352350456529316365750600484496150576615776088731715452988811967663750696289762386347694549953542503217900775159930305726062405385490600453267503272453493825749194847793418160946302865277180791440290039064387703834426968146173547350654329454570528016117475350293117795571083895232440016367531764998382506252984811549782955985524987454669212503697595201276723269774500784161713287665615535164577500518771774993289816772348923421600816310890394360994088171431551174697352123039635524072159981848853296776050256277539762603747642114114147101910169240414200296265538731595842655202143912758290449990403927867534051195374150965800101873740330015960581039604284134386667975368814158792251787822030057861246077400738117218887696371647954921609268022882372335547148214012065984448546474316529500606985049377845775397018778396899507888077695459322985036946593007459167479316446155165854369862462360582795090371745612923824890662629786648486567785743218330414362223682412989640744316204203379672414585862907672416061711442715005472413255345175407095014680610553501144112162901794359913568904135247810647349393764525381781811897198129903801188629592676580892481473610681009102062679232373402724398721747531754397986302169614679332263872559372435136667873539904870054963882298267884924701823616426040470298535295044570114439265887309669959837816142084942039850360236189848600913074322959084463358227263629861004670331255586345953898056997999182720781893069442652415121416076882348664554515992452786547595317079681521668205289063253179824530595423044318831264729781009562690992675982972022333807191328732191981776139816983035317255301835870879898949601282125707694020599047561393709854716587344752997639058720513360019577036275923708398442096495635785928857986921767519691189441056463506250976998613255830590487549557924798277097830357739527273741302596644493007216274440334695158244795974044548275874093801023977402384796156888374211317415938202886465819349873959696831005603459619068246510716552124640967762544985371691063365117840552907237021609483445597718950777136305631068428555203887668128824007120998133718912873596386108780729696659901980476322609173409890959384751447921549174447242419201729596690201876404406430418317467406447463387238383777197989745068127913582799464291997864430037681088105724783957630810385536235786079147588384238308969939280126829087799438618277064701067918775534626077018798809816665062483967826598352224023175323895070918107092480879922538942791179377302912482300526040212668178688981012325080138438723047041972878059937239943152062327266938967242225803713834308518670457467120980033592412460046007071546440668090905571690453148082548765174977943204070250142961802336627778592679122237311509734344838803118148154765858658785145542315335458702637584824283285069733308102904908637002549444146489116649853953832770089858285046205840465553861696289527578559773673450307391180922507688640599540820642908108602538711731162768791163716387048532907193085756779875795667553833146511736777726207682059136998457170865960007023201394103633061140045475541477285915222980823759433780161474352903315856154104191801235941608965575379484188363349269421864390045504211251812234581454197510568472660473741374521483162459338241086980713539683979799844108751463264778287768301852294303366258303492009270331869458380516757861850052957010140409736566270333426718539605218495398550469292777282270916169322538554636690550204291108587999186738339395367937339771638523054584870658793904581838925190373428002437975957056091998126337643476566273350988576436263920938914720397362010740636685623034284550878315343738809866384815091513784901544998928651009493944404004217481809104242683086621573465655498618863764850808556423674634223696887747592932860029557192638894266082745687721761536956413775273392067164604967239867504232420101815056647061065194501441189933156388138389568062128936053390026302948751022336602383241349927213886892420121998592607224379139478930002463758400629009349773344527362556095043256760398415528185831217455670167395680226551848190913816606819692605390836686707486535364316805687776872109286535055503862184863105274194127703813383555721199890992026437965263321489916068805441155097412195806003260835021642822541458820625460919095260168710498068690308116232180764006583304488497405544233106911148540472403680234106105655382354375174407048899755285242459532637930204405077622691909161987961760699186455451512214938033773016610540153680751368508492140312314756025419120362794284057340655989233468792428278643957891035921947198450547253434034042869071589877213454107101455769507813873310255932450102662643465219366054375982756982121925154747632619257225677655197431117641252715828970518753841344200005931500567368225064229176026346645049435445480193926367066132629289985288492585105715912023068111884113788290327097122058209479609594918613756887120413073069815108648981949549823101647279747057580030794702706389711925545990352693904791956681075153729455445003969519034737177024146196051733827206458386859948030468399819135138661217951295475739168840361486415635791252876242433330430377866199447280732709810769472155814931533941962256357186411939348461626121583581536283395107383076857749194908481773313973271587349992949604467249295608590705787356218897273865404683709923023950633582407477438193365990091605717780796168902387391967716124390138881059300836951878689406045089952456184892747328389301547593673502145551001552070360560354382929493805079994472452540953799319304293387345701319747138937077056039966324076749420659707851193481105894318223741925383077363942170448453137488640943695883139230028921194113631557950315444412864073602720648487077930788025835047899881296418703359056269902807942067271282138671482673942926927963998751074627808999310791969841423864501858929331732580383910020344410049334170647819704191084219480905020827487823631139348092215299471696454549170352029062726389674627718551460273208277650492888323178136328009301747314559253760971539660409530018310062089900790528055332593756549279336137410383052928713432379877544953613235246376376129831529749363063251932556598202906275169470495741608327317755029852746810603471658793741324200080856419404126411539215914801116126607986076072618613141884080229787082706642391785095557613988591180608557933594404934463555060858937194166467024578450343740108605559344625785620075593312897460520373056103972497957660013461074354965001729924165993710477614383387379554929188533411114880585732291504809035558479450921527703128790659764521729829185897251938931563790922802298976573872219765952696656393827159428647650882443817401464166870880937128892035312035059568563277448670111552231846697275689433835992067547713304727206388981461824151834404960432371068272457914864141599064396732540884186218253300671333285574239007450730727269746517442787420027904194259206905027024261859769269141250364521910393993733701320315156251232967048772817633500995646410051009932014288128854476572756848548367502026590440506357247027998759902502702935830754604781529676126742102277593695481405125595564661109154579383494595824558423661813558108019738747604737583466195843142623965579358078177545823440653596593284598326308495456535575235635591260751759350379207762222114207560699086083618201153118638738437387577432627034539964640775735227188758922882969173916129145447239603230751543826479014926859368760555305814404926751386838966590131827016778023121401663880171633082965208656537494714047648885871770314824582851355359339984712465925082598309027901739480235648488358518398725266029445152568682441170242626942245043173586722975079493427093039851431080522349818818701164692432445834278012648634476730199513202387353226310977593886018830726944241551902387715816992039456382979462417205428673178380824440802612354736151994880215675262374733576813394889644105479532083459834063166359720780999789776388312859588234766244760580275165198409571094052490802693676163659995229850552450466506001802932173259243667689923965202348285981521916113874236991412481684094244225091433213819712394594150772283144562431338392025943716530180469777036438316162772391003653698933505804311833413569696574460919151133358428283172333799280485023129299763848106466788009705235428412230410303093651753203183054883549284621762013474973323534498930143334566986639816144520269679844961620820513710446353028548200331261911006678568615937668244415128922466690804045332246040636374099135330332123805140102097568122527532376478311321204903127819652004667469118696954487487686877290434644261405456556103471181657148850955347523768480289748388389969859715980234086058016161611154991770748310113095485643569354347837798681818965187305840658298145319609605279300020472415953560829080916305543533085453122334540450136494343594187891388625008907662028242129382067043308287376580765426444903572780368780491436635504396521812187217352388381048801557248633797682744115477297224742739592332334659727754769127805073461389823653953559867101750524098800388553178268271127281261641463869077462680338964044365674788658973756446710906079553126281942802164898822868128788060202365501902272153189214390926400279723757691524166190456078000987150594315343465128454699115230065205511327840753477255441870205363051866696104084502312517038548420759566935615929593988267575420086027893980200984377547945792379427317029743344828630139574638572232182941388849817731455806082185614894673535081430463967969289364876980471944001432477486404788894034245378654219345132089478674194890591935946848859071041877377264087817447655273031669518150673338166154963991729264734464385507408145404789128301306793875298912876383870914967860939010649532788276906837423054121485665757579180654047920655293321428896711162130323085212234068038822524424417874787085197074548487944315114221965164428660303931890684345823799434585185577870353605166819398237238942200541557922851768413043908801337639848651098168957599612536494729257893178195015486856216685049571184016312457605242057798069755392105595111737934198461859980754948671175872030807490679197976102653653100107599918612379586788486374513542668089300324899014309938676492935364517325346754749490334116790742983212730678911513327216411017124769124922555945607036367674181484326056369060476104284533042898183562406476064149799622141636388916939009219514383108832847508203004732343404080230681080314456384339709178786966433548453376580534340392994149281155690729471917261347773328309428714861585516851048616382285418488721784450265795683533539646824330929578664199961437094554446081713814685958120043835709974524740530148056785158223095286971323624499939032430613121196709402706503837879381714527726668406255973100774311522628810009797509881865715903675520926396695477482170908466808366184830484923047953224485887368068941283866380842612573907576067150910473231762626799517784535519073079430182202393025736625375209710437444251756834611005443319958039758256140608681970962627900176628562803958142791284118040421442602234089283003230019751885587320360620285461415179712101179674991821987267497686288735034799673122254806537131133983457531374519970588245285616152194344737210322214933109100721956741756755133341585034035936769752523596242468781208229895444627287040053071560538532422489852308473707464487501114429939286433752396889939376532591868064453052692210565280331422100573342916636014061245886645540193383896369058740881296572873642418015088140051961531267712318755908528070174598676953681416035924261212982885385964929708503420187960532446171948570811845209801131115002180044566981334391602548478233728425450098601984593722693471421562179631205689988544629730881392899147832369704537133786252202542507667082456924750918782220687379016982187260565346257967291679883461557328303373802708321547695104138232255749114583037407675789951573421672599533824983905420005612804681299267491906012630217436262891458522898016868780937636620982424385117551307959050137626744256871710155320594323168671218753104200524403932698348282300897759068280195490942235962269448703242088583159566399457506040951323066725819421342888262152540977349832421042728600626654396245900026731099712323607673520086813310994885298823863180868300738069246105504624818423008127989090763736260302664329756969263487353153992658138650293477445393620700311446406934201470736731475610268801170070535303113528826141774736110274228225331557043585590569397452689102719239868037980468651909784213093172344715534007595054926316775954512705414738083825728894538988469755572866426224364018624666728240067608489121133950817842188626559187899164070972314963578985668566175041863322927740149283641982780216470115502078917119885507134824181877788662895471421327576121281723162394812080534131773783671038601504946571281756437630291100183116604951629236886577826212403230766753338781642438530819338817089136089382215609209132493561013307249917635502809844238401689149393085476390503408009406073075986304266811031551711874554568525288996394322408098418799438719649638579674561007862686231528410588670609263277362883455832818974023721445535821357119238027881815015128694228527456477215812089959679372520347963892135552375090269487563073022686170726538357876079998230134393868035015920399353876142581353562650339556737848928996398523002577482378025123931643726555487611543776739015900532063598593284812343704400861795784386578138099140534275187397881087941815051069667444992336457008512080205404880069305788862011214709035138232275067319273789298185341557822091981953584665934687157143220662265633369116471320536001759812224622611379606273114238315628270876209315966402873258504303341111646164800693013865048594645408696877424991948447789854530036816762924762404591803261777815891792045722896888889589168265174647509866219974524536355487942497833602006295274359445606418164357733217257646992382313263771686464207560409386778991512826114920183921576923467704661159682394336658238702214839555950718055954340581989090817773223203783832488513160510709214724024800160365402866297428360502748416281952825705642265484131682759243935650849419049157168253698584181338829385473752407719477981591105613415780526105239062662891327992778202704284986677257300954373767164519540574998539514799401519802312788500568896012201930561488857586046283494755567120710725047695374179998450116713463897929456747133365587362809571950606253305950941526313252086307270119905252168631930652856910011811853339119842587564183834707554159658716785187649903459656243476173023539636333407339702152973096158377314912500783496557588905199210493193645362637391737306963045517632864171606900472662354843679474801884215904563008324347258899193585313557339459062706788336273396607659240690534680846150636799435791471306845328892379092155821368522614630494385022248850458548591657385001231509556023945383259256644422910866987379648461922102635522568496149294769811106548575823504695306331187955696121715687284972395347127390343860184904487061554049574191099785162647972641072645170111434415999152831984013433233175310631972512845207182162856528152088596073332000295942338545650219982130229227273546889551987033102127936297635334992413294192590908701896280542276611201055608369668964181563262960637999251831124656428287781637702027065090327056227653074492121783001943400432085532695248611917251193493610176858624919168733394605052760593051173850538616225550301781312701114971502013459986885938616692789728297684531903029970052816564426726921235804978020179256518142539567733480957523780187362903050884197325533336827345806217765313504038177029044899394601964767395965051171171442984633968545622593346366437122239258518334291400637843979147992040936462475420272338688735503250449396302745732569220071129714978127886937943992048597201453589861397887904445276877276709494835263464852476815073637166366319858486785397484441281669752306890939763275467931327772913682291015648160474948005540471638506513970525993308317100122576859926950330785255431811063191364159252487641533141502422755150936964561781335548416491281504833097261772029236669770829912924746936165818612266785852292155169292058612289118140325296320765077549538235242889531958655880908434282358545489397619717258474440589276096318350623325223627627594844774151790036756781237785087134019694293879009474706613363783386440499144851165976874877398087935366624512433817643280528026351252498079025069610132862356321926591840115413977181602847556018250424673396642037028497147654505801281361113935645117166328501198642961605819294606038307853163776084016672643512906241189495781488924162816404947763248211492806533869589518393779618527241789970166216592885279813646896020866339246268593212152794740347260055375317066441127958980751155619774395435856015864082810010368764969246022413792724880254527349077800259284005324917067513142629332732951881572567231244452984782617167185602028165929244863209703967558663456749439947902498997938251329243976222756437113370347471576271623061586974591890009937856874151545540400804346212064872629385157384100486740098953605029598655473937193435191843228349226331457364129887068285580635609329866266389169967443687213509535840053241380089960631301223434654019063292543030366842216177158571885934111990305804138039425477557914469838074070611204191613941090372621326989544216634712546982897201398680644785524655691810604683894204490182650467635102688147481540578107217149736536741148883749620680693520535885394717942785204658029624283170991602125123465099606897325602055038260380110190701322091734919994275568609834201968767016363646594494523966660239750461158928402831618630418805052441388148341918123181094034644397943313072169509390238241372178985497614536122488981550063468501116693714363178492985491302388461100595746264990696190201584256904456941746888197856862757531645026608147880702457912841343301885190358731509304705404414646143445457972276139588825137818264542602273805063472325054474687729840827199022266925452601285017749041098180508810547546980146409159237087242176060167457288136908718956044096324788662305751907088037095551749052845618451645901730337845618328883796184636561819715250517301957456562113689222656823989279337609173792930381109450374732176534117540424527176554225607955727201072342896010835539518011349377469233491915159666584674349576481255567391994317955514820902237724551565603294056227288908675810220767779302993503011247716039905244332379613280593963636730504349842427016973362808966583348023684184423483266358445212951123189610949092432665346936160030595253607607550800796526197854851997562406174404660103487512690267862244289071845160576247685687096365162126697374713861219620140421601824061063158721358629311845605214391907231962246223036226935640920716452566950384326652611308066628464466013890689088635904221503669379504835419122151136900314870745935940550937647194733951647438175404205590537639770724400562088550606621756951108484939846151372997117807477445783592298204597917463012587432168268070041710413014632656042759799959606096189820586053218438288314431342363344677791410755711709079839135455110206777927449867129634025487995217440319087729372008906087887333084753661662312358242140805836169152245314471976574623300691677398791242144595065476249877053699649218103493929686255442118208068155002471818598917817444793446925029450471792089275163532387495576828207374516142855040851777085627251115738556994087557343789203841036382313550875139174968025096757863128523613772996589125242445345567134269297422030872651142607195028649523873326932753961424926355347584738858465452719328015678969980475375667499005829323250445852202060354701502551668147621166602463754712866002451989697181643052893435947882895875551573355146946371787208743364714155197949299430945657102079836107331641909839677461181391835551872374579388695477537800144491057960845091300758613601344782018389573986675916683303849380419055377372505944535943558292277004943051097824878997403924771915263215070203122685884026341193373080653999782871775862670475795693327617487306649120946049609261240091783068762296656167271729424000598047758230105304815049305725432988894034447689841415604859236320579933126456825348286926299121401435574061929959645568129060293840186488074998058555172318496746604255675862713163429308574588071386417798180423502847737403192126555238834440473219779646478702672247756718673108642461108367896732183850782642319587124946347898297338479986418972386511645959156148158946942647290994579967394658754705224550010022052145192083386339674327943690474550454352846579425047091702007607932101668045651012269047721353459917535685337142529608484709548095570750057315902883574173464779622901646265232214915016047248070133761211016649073053246266612298004685548165486746895946301955678016852985047583628231670350450295440140745188948845201827589777897457805959950103900954809143831361423792531392387839640661238423288099240363408779834482541686683908768455010995526751939791063699456018519665009997919711532742159152007394213449758184364687627150884393141449212407040807584140535127991158267588332063151243055713877012735539423168515248730476810578876200039724554194154285801351707466408764453847453569342979105571899488562720860469575447785045882156164531098268972306441086589646856272387143871356249797290403905822953919235168070300284584627595966115494728572766036798807452516618094802974365141644547950595426712530360382778703270631593166251801315064091322816173231640597787744370913922564110716519982814894608922923937840134679642821148334839991380044463383697977223137091715382301178188887539125860513046067881671512074858491904602351962037127074137715377846275683006840414947941224229628910560770444338538448465112052875396273055020039491822124878126191433091734831212369659555170156389116247130335811181192579505087692011761253460580397326098207593220782352422542785195257823805700185932361048597305975872067782899289317596265969632561720655282792960942541220593911343268419868510324654633331866415252263113102466960061595727802518394684206522798511802516280323742490249161480990298666442838532407938229654333065894564029525359898215283051515911775308505669530193008552885504505489485725338143151514341870459259991113328751230471729831153384444468956358523174383719828329705633088880749255943329611206290442144614068393459692757330808448306182498183277406509955431915792933994097609691133013824571340590590266918766989122748086500263675215740080090204920692940910078116368782985792531455766673920648728554916109371978684050158392518702739752161639492141467384825812135080170156483824865572829694958202427342801513043379667413459796195395056566419705075699424236936908152295826586556872703926337184550746889946454988960430647161013779709254690275176281465828704278195213003484042004862869312094853637184000309691556570235413896570961190140075492162889753022479341540974599919410907920477530377442235137666080780698514297875729200577132563716220661572204590403648565697785953060323867487982021456912174290515399326266665494267214997300597134703511128750856185357319717551655870503839891654858426836846067862879459105777767948735280780379199672270874388855229899006081966977921997035355297983956020692955638095025712260983775275373041508631785022982622693366368740225482314132154836935292534178690917227646913714918746273679963368527064944963510842892961623551347419931380332114089008055249382085114906757597190504471977308118575019670425057571716796986466325267675243615569663769610196180289568121496582500878718717308874078770523750364243961007248943888261143236983266362501138754484301848699694486806117136180542577217026391193308737671957032768748440330875598146822162003092741884946341778427171036871924095065622522602741532804491876563612700709336519047148090703785887503248360878140734043011260521238625246738812028194391833626687158525201538183275983463470116389297032553605582034870354250936490047101306095923489771030959695487427995196295105277743979354665504903180513319986590851439118192493514064133700548612129653238330815493443694282391549638753728427839604750157597950688639098905411716561782957404315763828299905683514850581037662932421235325935861373701547902818563119937044643217111385048294707944986948067298585964115188746445074072595894144228544193445847463952119828343321843809376110286447598924537190793339188727981439846967839683073274013180694709747184630759178578484102425202705787071724656004926884979470091772237577001681622887962209913118293128935364127082854839865018013332845280260159324084608711224740661088807152397338056093753459546095961658176496374164387102908214468177263811118423142238639641540019333448382832120924791325862399568185230294365938718136785329679489895268583284308226123026430500858005324109972919457813793197928170879614937051942538829040504286222132383089917422784810755525599693469226585086349475744946210771117310331327740511977913066157424477435926258936058797366532458907719503639881293294303828033976058550482664002057327071082843483429911893224092129769425900917344095002617906235465649027980954159371959213001089732974901243609215532749769711759312112621779948418372659072606774118399096216078829118599829917585255221813076439176904219630669991942020297975267416194117168802204301288113758068373621075627867611058082026146431371746819326662223768997870461385790203679016654296049169218643792235943311517664533417946450228280486791016300753408609491070423757686286124898069639612004994382520966509595548134066298813381934010297140724814325106155312012637831137253008735249579297812350406356977024258465270376371924986968391260122923654421503223445355545682324225208079337283417233768001885078634392108827710214600710396183797407759780804422484634003868235317796243450100204663859648175819187903740103188571774181970993139273313748898085470836124396515435679179905733938571485406247097819320536834289280241215142662028903175791563046609772679606631320413882868235871036450446729616261019597368057464612219409861583070883256209268430665513135229820949744017436515010725403672027840588118749343288198043013190845709149308488896894184207731804410183608295219643966406040318942455724117766758577639315358643329170398974120765240768667317685930014539597257485173285465217561110208969976135173860100617344143891585656369360839354542019265917877983541577340358771745371551400578197411356872333977409566654954877590710009497627430091055698359759806284143065195329402017957575551748300239105818226621074946384944662741662458328251978126074980507962654508815737517318525131512343115434832129709392408074312308635686717527943022968391419137142197008180050826366228354541077411077255273395510066450188707729417724870014151401296206654674029003424452364354669349404292323930910491229376926181927419804298114278133334398238087268629442879744307459397802709279170218816668132547408898359615921186185198402884066971814161154211578930279087002266503546062558119197083778192438210956353301373485570901523533557236292023632143897580700718355441380606822104766307944299239612578881123364581565563680394542347899709421413132317636613318912318021754156571010996524620402083549654475371103599380588834615891408904444493644206932180789478193528711774999595298308386033367465895117481561213299335878218391752609491859668175976412037778025569821397214035971411383964501058998793513304985438207031548134981364245529404062524862032145544503235456181437261176663642912524081492846905865377175804681088805019871719176589361381120860443554677955000003583300167233278655620324481911727270751515154561497663922506274297282104532480218788354421376107575565656873295945360259900487584538023846574355663219437593971524934753124896844566953031061111506160993910382707869135448821984634421117002071263784234322408328624564482523331297141473928405911932723119623962301907962912667137572967529414138520737775867040221272259931782593422757085159850714582634769854511712363660117512026825727060259266820485544002378743999002604949252707894768909261711298026046036030803438711931772672212704628169172643590913777149117712001998235181524317439791101694310362522637460677900366616896085359193520218990302335076945925292881406124594243238710946102584959043935241789768815811517773178779898561062744129907489771599665723928773682039131516944796698646544689951791798410214761883898266410408466813850712310169015263890934711724380822593698180461394161320369010159406302862285401073390306251642064897833068330524489370807142820532548089460279021095652012992316190340335146934296148057542916759422958755039712449123053310765807328299859009754619227560963720887896462567561215647000344119071314413520816898908490612148767825204833644733901312461616309475213925491148371779021509469416650290408515922359891818112104428956811284042572395812310091974568591895016873560816514229823810170238197018544660853191579439755335371928100496089211962468791932263430316509177333000103523881832319707177624766923840309118318521070533745971151520483644485606617051667562045433839812912327104897816769648662443969917550702595441873973908420337298636795370285416525071319770180615202703489925597211998488388168555386619645065520783487723030145691272455412602752804861901013489615191107513621016109858535986645530146051550874701992106838020160003126680980920926538276404112382681511689705266892825555504237874328548933661265617918281162883618304232364376292746433691800363246201053068843439141166927223978278948803784230018748413122919164281450035264274386901732348002207115825687847524190178280427799433341005349634443215305878369889074755057649689170283594497652067081955612021940402579084392200159984365343894301348562289063126006540946692425103528454590288171961039387934936649293709266902276935542823971605514606037636551344417149686062651089239301874085666942085518193018741450439640041993232494669126864040019805488625473463278319543773039119547583568866980551037856728318179759380722799142866571595588679133597071159835766239428144167732863473501276975588553648219681382281956150356800445968565331599536711033289911007288919624457248735988222718654373808768376571394018574082906582106813275657273819265810181362428116822731025799985862439823890722602883851022477812762077360635167223525756022995631512487335770906164268895812784685172067519351916892643978780701638094481695967458864038247439535384612461516680817394755724521498599585751949429627384284818480367542148095044724265958839498129156329604610983334337355517976107505633515328413375418210628773658745815445697850835502182067462716470048730732682075907344530750406496668134312871371161582179523923796422667534816286365263169428146710599557844739337359831432684663992035454591093091766601725538858443437101597939844238065096978806772152127713541461467641210898289177419716922820429380037205088673479782147389234475947826682551586939559859011394062597791358870322872632979809755700937248949660729419398162677630842129906200740034065559633928420803468536740296896135649339443632219023754653405883877816096999862280584508029966871232741688073261666701479448704841885959243544531570621188230880174986679777607015079980762803667107133074891952079920275508018199997049151476286196659687526896097362762430566894895578790984729263061620619635205131596330111635922956467543584792984424050213904358959913488164661924389896935395273299280594245401924644536609648887941602904196888982674864886318311856604876555126788464689412357643643510626765892506811955337056770542402111678686008692899377170948363862828823279786600270700752079811011290866928994867301734080704332226474792488029524323617714703623321336863821538321143777629910495565547172077098991542271430223890234156783703395323469704929042380483807115740316611247527985637753796273141458331911444058872437289303662342073936401021494538988235728937090894347399596050441745447124261303671859991344828398001821151609163972273997700622807943095728242805570953560336599759262216388770600167033332498498366327547475383501929644377432413903149898282269638062129255867364408496807177324325021416344012482902604266698531663406004612611528919344186672079890762965991708227360224523568785985766092858362274264994898310102384026485016249865580342758293462923043910447696558013254849755081494805682832759129236261155537173884371432578626125748644251986474219671230133027969581485967848079715973228345685698693769012588101134146467391668031356010052869695048777038859194344737945724052582999352200148367697846647973762290360602429148495005605605564249356628797120750541164787204777323498270581146554828155948821726884362588698447245735046271117076010821875674882788108664181102296203307798991859021271076960232022888466590028471384795484158613406526640980734524907906795651819594329207535088573020162694437792621317954931667724489984383592440867534408084061072699109581150433207305277858117840266688549214497940212480873583682312462622862103294685399146920352026148613157871568150579957642055624500195842757764401214492745298671997779180572294511838555609825254578351597509363863174342527401754307393055393408365926905117152192970620404943256929820102088285415692555190324016044544400744805159629898669642785404167281217979335539035052325525437566811424566528335982249611706101105611690866164062826988380838347567773133777530986676549933866972363888629157754238510521956238419954410531669892218842049707348753966285803130180082352275651168218960280349035212777392014571474345497326826272872820645949476550139681672462022518197316846512292484813340850050849428930378590098399258594533537226050114634791263335813024899368134508009401349123981273756097388121902100334077119920422613123836515662986579824373826654660265895591048907327830003059298713366493378310114158748278655153528684097973092525343885822805864872812546858530427306964547528661454274505570490623143542976748601550168697972535022085807434164447481232057809481345570678854383851142234764715063446944993054696264776735642611540592436795309050938567977149524428778873921996100844139462149571672454257298469945777484238735865734170610197855086217769068352299541253022145723731415523241849547545631702406497728467444843140666776103957212084190344345183606164031022626880341494231361633918713956129699259028338512721139166555316292702046690022061774356857460307359158301013351380648255812766314296577622304617631044354833647847327980730338886263572268878830546582088972287911019410923715079345113266422281541818872874717877024981075960939910097068840174704625057327836300999454530958211366182901195407336853027594123615098248639890735214997500897722697792457944512074598706484546871490123217921525587354928393250129286438417090075470142800685842984720190738261629996644395089341175477536180701251230779135519739873105275450778593268817147336806011492859108207700574862193488782137105089021253421467456089389662301937625549056373470446993426336095600879976219812272985136635528683672565951055948129226237275349601243848448611922630977287257543176894033810308508599653302997941576369281392729818644496010987883826740313746446317751948232922316644421794443035626523235109339374599191240254202416115900456454717870917031851234102233104157593564596560392563050247877941938341241562423983165836782588477061764415677148151709187041150317909044518670775628978900403660726630374293991877388615348429674458536274643308341490437495841424316141175373293660052146923906066539440994228251549905884168844708651936448800849006370369520349979083104863172637232524455389102433207752275530869623042108678420299274365291624359685335055878048263749853071989772368652821528457409491699793700619970607361780099730793846985619265964388297932323200849275508451523890820364814456394806450250517117613180178227200682822735022417455819785136555745037308115938795599121441994493417670162173609312229779627915610770516170389240166444770871595527321840165676963845513020995264333833930276103227805687566831914079724672927068621719325660331485504199820313062193043239581561157722569162485770983918008052412002174306472661067567336526372247350647608707230525848184942022341130671697024519327610183962662484023358620260302918885135775750867631527970972811950029001287809112884941785589099345815223421922393817743017165166329398281420010631433090072744052291845940455045337156234985052267937159306844120327837107275396062382751275945176876773996533082665420827442803504782457910457661549436493901775188213111241921617802909164371149142546351650017330141599784042476174155920908118923828090134266727771811545323168814783213007074412252889880279170523880732583205058576212347733942007333110257138907659320760773831713485717282016815441348783163865402779284072105752629872369004200332799070014581200077759627471638816104033139642918689424594857360613474576035901321260301303595639982207437914182541656594100463771007335533254535079053022355767263492544335847851433646248542399929944057618558765858134820593603476829671802607474371165982894896949075280270382200091632530540360957784258853660142789068933673684430049960209933886854461458771522536712181713692543835285243806145667252857512694802294967889256585454964223150620753920049793528735186171753770683298948899677720154467594653032030592114057795875272286368439117135413854931426265639017232567275764403893885460928204308085708743293368694436094453458555964588122650607870886644193487050906317724218952169154585623025452745820142459118700560135448197773139623545908439138819527598826109036450669796345293318943620299352215734241649313603048759118291642748037511105813632287777121917953563758598667179605150739813310402945863334422866591906596096171693876259677530170486609539051982105219185851320539710552577998412077563058502100205151420720721357583098319873475707668524138745057737205853294568127822905103401309014798597456222096773581669641323965719281984403910817021959503451489880101433503944878373904750719687100476408868678908597284779896067343066712562698029867020636670503994789788668316348093257922630379087814518130450367659753948317483226003489856883731256050430428032461014111471681806587405983260034403010828521689573864097014952739412381746613306617710573172832254125693506997661598925740188858121273231283846807609808882591406868060421915910660574860268385766534788024982420281779208578958881729222141214256733346153117918886131591228779026011799812295491002811241242981780080717058998227285657199607585145848454512280040608139246693269176489990634738402998513982218766232778046870827299584562187459036055223779043865857556546697244693960289247234365479636080566819840832636176535962035120364340517737281504645935565476782899231639161911328735537520061806901173773170825419308544588565763076644487476139973646680146846280293012774595689528172400554948632394020301590195691833089386014138668300127555568145025663974551506539318317574141285427618895851270979261927197715425970470831714535859324662477680860398980566973171727128654353075433636909362641406149218150431627327354611190068389882345947023921315762149042719219966616756354505697814622973844730455736999900686753262626700617383463255558438420547969305721935294602823487308509363135719473349456109922148993876007956250431481721891558314086489225020451009124345922001701195370308018309139112595806055316900603881394812977940260352514380425835373749190060683360536716492122597999295229790425718314669494032184596295172928289337237100539416452580516372808303429101586434676004336092248389986234203576188714469505740641821114693179505163808775753282963884550612746953515047451372108742709660833168045579951432078365063739783250404895106004715840642850612203415594189547617265131283941653878620768119720585686669884227517395723426845421035920608763114812278093912765229211784152232900339036492699108323123187619402307938520315121504298525565387282569106841604982848008073732178326751801921301852723898518413435900833454259724829121708748657286759772958668001581110397078098208582780561053452348822216045719009357334767662015358958086733291641343217526430221309942498597794254859684103320034868013025822089731434805317968719566105687953377106243822606820117968921901358678396885473016826389675470037541755426733859843680461514313839253126034300898018254817370121387145960690516504103601676307551200191684624636185524349254833434394622232158272724594890976932410528688910269282152446793034718740165240557949752379162911755760495071344759292524432132076357773029460360566880459950712101266473832378603219222836479753948843182736059641567868453085235860043343141942447895246942866792804054871565703454778307582738792272961370165720974480487574138721089996990189015142074338317115323602564224184559882458462888309601843445211211847194041486411780562051911681329782487424054323228039132847442907817321298762164014448690161697698218968533210166420964637241918320109807348910399494080709896962554343446400514443601283316933213005925296457370844307087407964283486866291519109953438526829755762096608638047707680511475799661313594032156613846372074916105797856273884597727742087409218950839009303075988777468694716286339010973019011040266311407683040691270297872037749168935705968901535269691676796948318788396829547246677174404706237763837992603597343712984098124109010251153283778914602665802093918296208989210886468570737332276781196181654830698520293559478752908643162030987274781734179838727279186509706538707006621267474421634064457545325009507293762504197694168550139797785031913338976364668525121321210404520277233734574121320266463317673160051997898695055021270359177039526107657116913325858541256142578998680796267219677965153193072875345318726507971034304519504549665282693743394346155073316356952056682997511083745097675261494061350305123611566080583396110704597434760987446708812881543268908940206886551530180047346250128379833825376857826028116633892006058649089592863054835358835566450631379233247418779750360887118532567481273074733128289071879731473659012306407265262144779614225369571410543173390050388407461677643686317005783487824739012360714849711199707548939268541290284927487271700327158935865049596445460422515520911521667381760382288680317751768044647099400171176269583202542012890149859468615956897416490562634161042993793066413814034440792589664120757143862625663657723037329676701770606965827078658987515928039380920649470944878950078681165245096086662265429627103400218270646576350491749196864081911413605417449944902170687334493941451838424667335495065303415754005875617024399168788608616405860592960780178598914509625481236524772579962404700335381257605934451818823235389858737423996366824248710191588667264172781466770908163229766451575182070657549288827886426908580682709856340413280057790343322428189548351306454669108935853958709003747929442107658014814816177047577809830995071505574242165706512547321614176158686544005236221501410318817750039306724702291512332568647973618991645860908752198306142091848009177850731326988411589686498090370614267029799605382647495414630764822615605155734282828332623502731065567139541877851759971987600151339896351386881207589989936175531082568684738740713844417250339659364118145529543922941985000669811681658592517865953744674177693882673605026316326827076185058113149217663389080075995541336892353556812031985545363302336485090829231465613276407616522744544969702682761202085299498640120115618973569129259552406555454831924750119630792732376953783969325516746620900265041994620422073713630510116361305784298130467083303486372169238484936433731650486527984974118995658310565695841609281549796496957911132200044273298112856476042455281854838888186177386671393500290036204922374780216108493133134987517765993846765791100832779190492538561216593236895946618376185192775316727357487617840771576841987584576670810814499821976667362638981108470180461536279988751153466234558101592222324747390335441035970602457060061488583941821594210266952545388418469838318061215336108907239090259758242789881123107543283211892584969854564865820421187639499979025010349787563190543447199220629052816121521283332221256637930182165956047919718166089135432316541171153567640201008834875033384020785872085317002578693010224887389444277706260170550733698963151328331686120189350763511287104948089035444963193396200994082535229723278465407857655903797361855397995116226325772883684060888480363200671616876878591802768819816706188579357015272460515619528237334552695566308924213313467619109295209105690931112166482807148772000103523647583830789832434459364618223290388055869075756451640604122704175417555173157182527891159166260999796200380024099020779958609834056531893136952494549259953507342016799774167979092079747274001820793299690189600094103420840647048710273917835269474385551574099311864499924477558735286213923439316753435621316106579341306343312562743076243489568795803121787607371310019409173968183133481053568331402375655446071645226441122617535965852813140469488752306685891529587958540215486229914388718981460068397359216903614648210644179013930702012069464915819723181097596140688839313392086470661020179502745459520233050846307962944091087784510993605342042975231474521844065507966393504224943339724463482537132206954708938965465776364086335463528543322226773970335076017702582582788350498602789551909657911780809806166026939805805304389456390328570935174324512236077391019665069754345381202174082107758896288338780139378128997766501645358100311114808036214796122482668226023788060271702096988211795755366106507100534630264961282823612442850555124525517939460676890160390879498092226514839055134877129863034968964986874461683323766432391781891575031034244313750184459330607014576326951969762412563955086440640974889077278468059135288022093382565656140697257183250795425271382573271412382267851480542244823889798313485177469738990453277973735714039881550742734513848313783670981398221183531243927993606641739250754298348350924035437130835078194236522564787551113984100259851635171261745493813961426823368481619756288282746455423193304409927374990350833163249129042263922359725251358894284548648439856055058609016939923339316425026345548138170353909514865901054656928111677794818713224070275927882095111565551469902505804862362892482003455015003173332520842802312909056075018797464974841410759651291121992036770719044659684508676046973312017607074774049727261991193502612377852718107610210103393790243593081718288381077439157014861144234348263644109752853859704549297254702415590545153208373910642822634145507297609927687128644020801602029598277938528757299500655206624896214285011277253816635824014744344541144847134995068601742990497961879031438057745964728395881143860600637390237364220515203708869340432066851094566685962139336730043695882384703091961615900688343221861285597132647121555780878918191090326026045415254459165782762840880742143528124971718048980941281295969481976443693520816181708054263042665719423860958898586967813627644001433759193993323354881092345179042100861146428712299958913344132832133505325052154884949251784033327828220583476749445511566966049587248128188555972365081775935091687222265124911357756994556854428640742480124850216731331267851690794666224701949484529342575903676407172226096688486672879675258718009441139605703454765793973750918904096040670295289541358605797116436996414681181617725965216827712492835818344092599251999796252502844279557592287067800715836945697021070445430629599236322279800071191038386120010779921195264333712883629834989629304787066810178077521810774296745360704743161757612215213823659415616377743732483375237472272728385869397263621995966133937719694191485899102370537314344282554201685477869046449067145499351200597420928539552488160303356423653525611714156912479470693541550573439118279565680365626738786990439064572271591135897880298241786854863677682987448872772976518837248403825337450448787476924627649150961494857443807716327684217156965067847591456982164036981378278184154566821357946266205168127246195033542130044003543662292796931728948707618285095651156048165427586698647674709941446962398649924093959070671159249839379159222614927483781185960238738097709431191430987545632551983655110533324436395846621062325711963439924522497854991056486798837720015247969386679593382350345223324233148767084023547678671164828147961750319044062276838002877942978817009460889830051906265220445073268467687796052133139967827721438209647198124287191886334775391301966361960318660072063639348333126204039835973743635427913422507029777746369983400877539572224220478369962682463626501243019069094886436574314129324483922749069315819885501559358730308170253026398782793771049621457545572503064639579343304343313894576388511246411913083790693161028027136498449807210618497807209575367453128341711514609106435196459654782196273706651397741104782623246069359871258462349075190636123054715097065260617150948779646518701475389919062031902706993910804429704246626690173675862810040029946570336038471032231407186400795216766844808729066214572604066397943453129927131063810064244683383868046660907301005396764143680792524151791795714040510040706207537945966377653647029302632407552993488039130081243935726369296464213636554987348180063581119365116971555414499165352728497922731405725684539415976866071815191170439182224795582153263786496600409053955676979654974480909350200668688950551489967056805111054791504439087451221548845161620442455076991743448687155356426725556846976350988000414471014276715875330570390920542436103571292977554497023528089071467546877025211432748176300410369800645709871241819057377613790332839555337614658090597980698040434482682512304268497976325227843995142206539571473123479738950640372271972413966864517003530973760678855001598656049497405539836902292938424474768708323873015030042936177792214524210431366454203435917038160504677130216243408336880989608776062313000577773660425206704150645809228334713067717639075646948475812775197672820170321181769683918582137842166617474461695595101935993043579016039853657583934150895780738268226228045827861569635880164383497461959908877777384878309405771114552404011390510250865333150220324832959301301951536746050265733359627347785394944281029847975229731741580969798039104578486778294378249673085259799894012287002286899958787958483291686955627383191287800948222174334482366288957784846757918009199508130426693024211352640056394864551671418797660646417889808336476390815254655970242500071098556445129536526758724731532901596999270259014162283957772033421624707584020713539329787388808406350474846091811325147671542091192517054477063925294027637999353119162657578827428107671368708182319183982065847493287912035929173011213389603885675300893297773229678636686906030642161851483062547981526303051366519922862591967669113098095157009400476359295523446798260576696844896778933985074630864010367897056323473156732412417509895476740774280442951671018669324932166348460302959742280285115211577563019881367440522336060198276554075810451712093092450397989324261605878873549703846657718006006562280745512410551173217848860609011107234044411040488759075528675905606747033761662799469666985947435671536157098182738719132241446314709227920123958909358428356857635899047285568927549178170212102389780041389594302848745031610779281253063690092075165367994403962829328163560013786047142052045945694896715122989941543996075313417557639123143339579411829199477985827207767026658347658403637473495378296216846235946287440394820276503604707432406325836139044121531586558381258049141271193825121798770670622493735457263558226705472055740068357701898393795844595370341941935127864784404171609260465028301525845119403287133545270615716632796743386434565040769195561541546438280726356098031525564472538230599138198361267921688596075270219859413700104008420006185510025784584969050954806682376219985491511766430316860338023755530349318682467212306398302160373677793412208054218383175139412633076295769170240744827989044311384257368292120349631115155646981726461396230806630901851649794029987647042846569793078315818187110452874912185010955034350555662148683991331893549739540537997103025099411059136349391734291594436804095525815931903263717971286661278635350866569853538594943796459389439977720932258072530316904187927683281863924467049159649083838742605240775118279423875345880612376716157600258997845180633892246328227764855497119047504321317515303319556721364609301911447925276148806172376551856099047411507596296099023561130314785745956604079931058553291732001307930984886052517930245757341402800108113994481341403315702202906406193364960620071119813774583174861038634703764829865755419453959455571577914391204835569383314062991317293468846035682866294636857911624840671324805211452010415982888174473629334777364348439307807157596831596112918828926276936726342751392149631315546288514300349407400390478018534828726190879154058037075000188508588243477109351505339482825970347689977834365345618267364437411368994985426048379360667584891544448709126531102341539568787227492111110525679330925294582858422419659736452819051895636950468531343947360628128666372499070539547543747332332166761882554468407823236739771093364647457607038605475811248630552103733184309602994597925678504163472739530248467701480842431255550006187789562284320346421132094112279007125370536878873254249978526690785496966073058612571103555312474894388270250332092259525978085765634277499020221809278546090430518513320165820719993601954639658249757046901797207843534134782963434265750254355947088368183041964981282118988673866543132313097387389441405465737415146768399210819016684400611969263086611124588177462081960377161930895118848675164984946384712496574683293142101410819944317154522074185169807207355420158695427958350769856747694050275357506777888347765868641881197575763484959049745240838576811561207864436040135261159109508279766081339056906449511096736642618001592191549960833621797965961177126461278256941246793151343290331484644501442174746708797502561976803408416038605033287106160812936398939800904887572015940506499796119535244359151752949917897080526160452143516091395378274844847228266208861736179891530660425836802983665353504101076606087084658928063137198281295217060464493751614672213936433333123400841853711340911926652666956158777696147016264590684056582125644375323273469657596066962699294615816912854159613102878718986967507486176489946468256545312050184339080821497256728979409131610021042214076822142322707330988803332346324545388729739956083049886010872556585965562249731196880965441412442765213816820157203806139964462188677733460213062712930658466934539461765414757235655359840639524153008571967166581249882262220649986716889450785797605202940879795797620631798689289475254530977371747474165501199575003373306189853408307041189659061039898501958923072945411806547751775632023539019779816398030143674476756457837786179110293792487203140067195471264489644779250593666002675712115789615941291018565290392462155893955278812734900526984580243264697893661348428022145540974215945786223762795075764777986289236880765186832818020671094179467465537837998764832061519743604164371095677634633475526124055586899563407827622907415087189507648495608385731448503697465812887525442300216028934063968615596196362326846167740849156810390690622776244202173923582935950056603842486092176834999789482511589071052997054252634291097815764923381545861902507709033317584936171904927721189319502005210425228298820219718865959985362395225835354553051027697099114835329617527348700718234797948173370341916938002556929633496789306709695170951353498437772880303636726716930667998857138211664067808783250622226579834069941634994105580478754079814899255207160715862109698254178450902183647993937657574868423104151849411749212555734154051825873273474390197915002506188453362974316854034665860648659384738508384211321567796566303606834418870147830584105034357910214668410204017783270622586385488246248878447474290285265916969627341669154352294550349122164692918173483635687606881549632414405688958125526026248282794755349556174420100096709166876336856486825073373413968155649956431967150899016764153473975649123270468273101069558790434068372018965451921042284315344629849526414655450447960240774540799791778636740796247228564872754543782331134259701185794323015035883198187194331555923244129705997294198963911835248945059231104235676090350142586014773440078335988687774076540554658908632293101186175976907069752243224776391319729868105470696948781367762525974331552117712177101983500337055934131353907861286555846426944517702133232353025480902583270575368149214182679425129886558657986659584420421631042908084929061921190621520612969047143063125113303072318036525857060659893709799408700217891214044862681498333407228955451800668941173787325837174002639962702361268758082389211359570873936816083669336294044603736183686705444670448603559773518599439212543000679908027215254487280308722912098106348198023554913119363579962751852684438187020496442718614494510451871153984413200765695079418799915699799951462211870211135354906597210929294903651293837551228621557468759776553680234678555908307515271943583465817138658893260998646926490735672624609624788158940388145318747761026956450897864984146128790759476086291693599379714326985718845196367294750444066667584674639807889689580617669544874600587009674131330959938453224863188588571521299013266452812716995735425243675023238030161114320277600974449266147255612885656097575448277697187580846432708005999438211262463216826424693597783462760248259050343243038824776932905588772324688833308769100970815098243793045479383000880368224752007109376148873370480241899717478670691131202847304872234468139707604826996116450398580566992878049981837774880820862799369160440972774306250680333879926056000886978347092804777605907772782187782737422799007955205740953952424083819111054309926106100983007615554682459729244110764235842759737258776307465180885939925163430528083721134906569403142178456573663822180242452991030609493149841642096435263212702752875901704988119428977608591690039716554670607006163895994376191294120562853530017759409506332970311344377898325152199807362413248903514032725647713241462768706122976306354326026665768034539781467501638632658654007516324379139740382770388779370256805150563405148960433652487372314735264753455676585615889137173453217958414142303455736684823617194358217024095198307473897213917239888879978409013265867046419086466333702604285599141249825416392829510945175488271503195336419475767096834849081761246158644126971181408966581277424613187867484573931327953261924811918212479786498097387279619865413295920816325398705644878576787616535625210763592044718288501901100258417938225319295271820904736476785740301315349730816152789899402735658698933136812533118968599536408006218974817012822040499238228233465631160240077028707067896253239335460404236097064690207662756875480470972232135725452108459765516493916755756697081417981339005319370451607931516741484620779364193169606611472318005348597094240603537053452548072262845433647916018338362007343261704605075325547224482694251829948342813210139946991775640300658136632890403342462201577047677325707345289185912452559404666707294561336270061934631835075926715628665719827818996937581896309962998593056521472431016531035103328578067028191868151396461176436728661185790148571445232736938909240010706432632161289144518331035015971047149591376505757143655857143431028108329818843005971904135214829227245550228676379680669580798607802846054378058010320465951956799258676776473807924146439069948540272142342007954696086786853233047281418195329022452595016027999594396434363465845040984689697604767827202026358078729915521589020774530154569821363308047683051161462805878676982430939614852009698015776110972059146905276481492650333980886999574618287393899187072174141733972045931497414359855675601927204099603756058635862437777847548890013102779288733018329069694973679189283485739444646158885415243785960014062603279761112515945587506305084314214279867150484552861615655065367087426732735538268619054658855606594475588021778895208595352480867246551765364347954627764402405057275409670711475467877536557990973074299044983366557491992723648583992430471254882793225345039560819025146613039638316002016099411605800465372209874508821738429358035852021405871180592720180926637047274412565268928044417911299331251737627228672682902556417806352555617087173845413407709159636608564172683539680714225279100510877089683970781701969840756349457570105563821082266170049280177574147607046999505016032123389550506586136073067025682679719006648838867816620219973768280106097946499916274555945113624114680449301455140057989355697542368706090816075462912790393323957591783974062757815819444781761994032743050969738592103325521938752008535569111667467381344385967146768998059131990400563246206066196787637671536612172645868734302141488759957146765010918712963971227647177890915892441979811505253545595965021616625900362781808239523546774172523967687346082352639437368714874363742337083629565793244322673570807599447293038845541296950768968593626549319322748059395935537754910857538406365863742678617493767567710062464487393024005054358451964962048380103339818652797979526642867797931523821374929726429678078806685249236572231650471756007360669475501297015687636421438616805352346616588164423176425856152197341236170062720843542451482138461168050822596378561877529521612872887917194451785783518798326360028827526400299070843341252487123442412925803019820310862155102551130678864221986207199234459266978065768526755547577794749062935052360170371049681871389240076072026296471948295725162030702794890585130863502912935454574334512950968391820996869378253556047182713627153640995159130135646749564126935654978643207457252883306107624579437260675310717214691844589112089734433624854728474716577599317590188494103462276436760761785685046061651532175521972698137775092012853029828714885625415596687500354163517122698248503570607195805719856338483172240972941794433161787672720731263386362931645225949129734503495938969762941238806743210359918473084380019747290912543959213215507893179361302183318371549407435103495835587151615885012086616158898786337918279974156997225566672246730526714346081806542790172972571194543683615319974908007178508748067284270061388748652580272828114279118706097847056822952592321135442899790640374900036704649114019504808865722424883593083495646819084317746800794527116068986457754256029239377676360457595355742827621969450781416515405787093836430091025670979558958023307611803087474421718472099278753434840371237164803750211472382558036351630522843770004643577700443437376307893357244887817311592486362658999404462642376644255669724470367256144667957748748341045860611649161127028344934271651861812280687411362360669919650442943998642635769536491071194039352176343337365771678661937951323909026628463343001635756921667674278983962792613411828051372002611599540108198989208025507024799496056508980535204755361718627896313425716365774172463337858276202999747130097367319065926076837343063273163958199622345695605526732446037494734325057515285479225063661890282356612600345959479913506583436572338658733777411655839287763994290745064219990347335972046966037653433567328253163786326237720502655769756217863475442490118710098701780014204052819658690124926802007422325551832217375207604848743593170006239581859684896857704923165853649014260029717212725918850264691762503060282322379143906573177075179245346490582200596798830877877497163984696973939141064750570004672200519261506884693883506238489982393094275909961839312970369880587242507373889137759035382588874007696012467238000112995118662031436188986612448711284768591267300700509061683224872252967302051339150151495558043353052776389486168023380534980611343277121939150628798999169977789761004426383834784412317212456167633507614975652692080927439637525201788893564347947155098828947877603988868031897796286792961813832898682622349560926531201505979932078286459579964116910354927435929491497505564059597404641690746008600212038476773034016186631341484501476258664343440918086190385789775866570829573838606876600183230235204599794747471669563511964501306688815560480299321617617933228776610049319517789201880820527336095784475127930921738403428721600385700449338065606583999125258412788441617894570127468478041258870397369482241198501495693133044465530749825697816317812191074827488749957503951389521622785956207286648917753147859884419716096504800387530942025006561406603985211388288372544940491054406480648920543640260737788489555861013174854202224066221732436195159264463024418859722580591853046347426370376875633962097339203254983732477928671922791058431439631189119018326328521278993022691249606617616694546165025442095393086081588741450893439559670062163645454918972781134682808537315415981968008942290389250811349585408713222253886847579473914518877040453170589465068300630109428930399924704327959149587757430460291115178117431299286982387594610671832354373983062709885596961176124334043016583930143041121252425592768974130158479615772145484189438505739173421273382215727456351912213746961779851243752256500515408951526452227140787304116197309748658564663304781437929426791560951564582519453084089448211964667261693881824097821337828318907973771921017778770513262418487819032124830514302840674009937486749985784515149520806580619952411497754553095066832013434290341859999873105096269901927460105010235608922943641335614926262280450397918266346473205588888202365510570738136539618252269268521855558387271249770549860930486146480086295448111621570535458714836372584570350618705345721682954624150333323988931887583735582627440141955525888554474335771237259823136317083766727700244166462127789329125418283755935250864345770197958035078654759510286990527602493591224516773229515656999486272107021126489079477479368917316726825664982361760546149616298438390011619656337466798874769102547199103005687120325527977483564219665536072451680254739905523467661436296175715792603369909949932119067152260766080010008138385740027169994508209556501318463709964309454463614001322284472073516807548631924845880136060316352555911367064827376051942829060781714255307446283762111444894299896752214576761495549773109790197583387473020384803926063479602671902478744074260634507097896177011192783745415490549888832086373990338474852471506819470498720897596914225571307693947801374649544925588345415759422663214616574569068900981273716730403204179471496406538673805418397405855771595809796625899074941245439030411075367936506019801683144719217077031908026326901009062813598572639408979648342131143580150410375557316396253349243416245530295623180971162171270685313264697262699278124467828513247549472727355281261613935742829512489648906822020812109819714886026609566977053376383927554966449796675786827169362884226961319715260873731853870151014496728001926079022428631581363688640850133019210061542039053118345223242688917915382325771161224946769131058939294814751212482399882768174995420817929221903050708658430125683811311012195401318711351188039788663771430925095085665846305279443917655389028094177601672241626700692482920126490084570171798470865520056200226111141368220131313407339105741040308137380974272410363398777884929890266431081331786998416951111834001552672806945348315040017795133227284121077439580831607898759753573877614066417900193717736319726197974793142496869644768875131856995117158270909335162115717551682644289763701315947784608096619600480606437307704075507718601614891413269707458189637407025174963943839423832113973631923406852107307240572817032377549839908590838610286302123318325823347524085409858667694882830198752097352436318076608328211796152746225701650792248703010804764029849220540390027462576748203294819145333139507175629725310050765063364718171095267468956914578706345258766418408164447516526045811136871426088755357154150454065466315517802492377099853335382632197066112634394758839179020615634542069477062136733125018855164578238477739227682240995153320318229008059125493095280529555776744436920950910503171891360786174315704097133252135561427064941902846048671450866386116220247680100355544031631515581443846487214721881746125709666665373578465361274785335684121201857782191147718567930421137395641788726650473183844824488654399027902373710234305444691603424137642441332142405467883385403474399599972601002014935142456123169794813406457261707512259440119597148793879183080882108670788698037867745676719639011269326186989500311629733131220031331866674498330044253404438317731753711781367146040763658357364978079196567187026156922715101203696924892170040507605489115678298221069312333125103906805775531062168140562765508421440499557162816411270484267086729497871552403348366623873697890863932017743041523158024207780913541090278965985742447611180125620642242023422511105848567664468755019541308504443832272050319828413227938972487020292276970969711344499305581484301258674963410983714287138842274081271805952395345660273357426248978509950054501179452180374745741896376605949055600180882511197384366606400483836502985169987879644445985945363414581742613057568559802241829707550813192149228370172326232322945281628095312736875395887267102313836906779661994366551443317297209095245968585716229120252095945673196491199297166098512161396560040921826398897214899785244155524641816363491635023311602840208713201069153572410222895127911039617082869480562119903236185374288795572734152054829395812728736621309178184813872974046569605484732167818680948407048070486083271309215456803060815540233520138928593512202553870703265632264100472561502060522010242726534115440267573006220819076538244300181143321099061312322568139013185864245415191261446141491021783157634922264263048285393676614941845166334250072334207397612754605339971929998228406035258875121174471695931696994179890081517497364868798222729875096709784911143280509498569073220479239832508294296843307924585463082734901786186155527851812147661729353785589269274299471664844034958958315727542367951654215178315233251904920924242705070050440334061886803126201850649725352264008381132880711057552658966605613340891731669247450773714178650809666271836670114783644344064568347118011736301786871501107095582727492999878323240790479907944685333369514874636308287147081346049293999303553725686372066947785101461936020072682772734074772988536985282489888381023975543440807687168191323969840989243295783401323334366801172814515549625285571684863744728345674249861370584576056884018616626158842516853806778994948137336810666918761860590875281179646963802503050371217509264152277414033666397757775478133830316909734097142456140172090007864438659647619687192753189768389012441896781047787316686708491566021201651670234728299159988480086407158554550515643411112948046964350580234177703064449219742144358816450646402853539654309115683333903097970243102396943708166862520168295683488031300552716182200937162110976156754207311492693851802606896699434631305760158476363500320739692246359815699218288698982526992254203488647098610049218029014246460076138263814207779279670333837174846522932097469165976000176859410579532411069255490231895217803676653789417818038847166741318173802342682215122154256412262697067263555013649421124807399268575343745684560667894309327083362050315663767682719336343439256627147140268706988916702484131181738180390257205694620922007374041557440743069528239403396039693694350372392575117422241099624656245618598616035659036989650739861614131982806641277043238991904628004687554365417092922310342787070466997150690799576913443635144820146935035726331713716642495073705478578561953773079699994675835694230346986132305127920575189915363845266330370043463866611753303021520170686632467529599801343038455717670945105330427400057774686604277228462674383127123906112788213105882786935962364171702596493148461150358815475050477917766485784852227459586725103779572640743586542159326935375483200827491348460993537668893325279688992197719595880357833590548308044534353802180590644262994393954556554306689009758897035137490310682104627169840839911310168130255357950298392406219145701503802425811163660301250875378955938931577711956614561266108043131251039297496644616388389755287252361207266386921711773937748938106379224115255020862264273081455136434927511759346392868656260240056483348662066181964269585674642736475273131825591013749098318231441151580101980938524261706286537047247333948525202308004263408674688669895432107763918104984036502336515055321375869966867777832881874334093605943005771402248808905400513770906010078720933359819400197883065621951625087777873127045242924591445297531247003865008930512762315161946425710987291263936082575274448989180094677316989499993123261184255435922448292091709837191176813448540686159744788442492261063391504146574717947538032270394744106836900514020749881119486096055154638649602052941295335535643698226580121567514658114501807352739870447124715483698494006323571276452027988588724858678894975751999769892923176030772779480420773551255157077252172967790778596227062002454491281352161288852500999673407374339669201794045118164151388793328449950977936315078407922772227955400646362522658232489055220759402167113342561721759831150579077944163083141600543801391389225024332901097132755035132692941768244300444935787105331636999826915499553526757123998155326988993896280168671069898883612449863731706231811855201305671141898332384400714384549484081819376938944785135749522049325050624347099336224156985152830865558743926786594276835093004812367703634373959796034689249294957374707091165090169936865557416765289423603902123622621546714058232947333925853222352969135256749151503698793088453329978286752818034460652874152651071749578365560920128656612090296932546256518654447147038229003314914212527301641903654320833381121997847773816031568676387528126363039985010582079668793056978311847475151474350422958792324419681597354225732575483551003102821707104054168401262733546190644576169371826131417476848959029942304154591841203349624236133271736521243948609020738724475909928989582955265908567880063964008789258201645534835481043377439920878840483262163027053317366558421349648165985819090402357179432916465146127067009465974188084421352470664932324020363974727069758236776051322625588284897785739758790300053460511835415617861052366372250261773769832950144607812420621080368756059012089610321526798067234554055994529316351836924865803611177777573438079313146558368462259504780352729469626769671012605722732375433366672996716019315689009475702123986347028913285978873294188492140480845493161152748119989918874646042370572377805031721841314643146155378031926761208425066284188422396468575076785624963511599154243372851660438998642351847090160242600902138834012760247323783751758184064144552150500669489760910698037175837658069588208306434800402055715193107062920911515068687401490504773892351486452340872937504472753386068136948086710943199673976527623671713691978906693391865265577160529587019128205354560749165157981837109231558538162228459980645352814624139204336007900642114426524955088833803802708150403767845159332466661792937637411307101045316149899307595469680808121716818819183040760324521901165832218295672033417186503618745095342327706147394745514366606704994763215048714238713401303369291446398800762946363166143053785816990139853439104288049704975736387520038136888852790309275588905221759610034954147247897306143352736204489198019855759856410024862151163075325799918590965951606217183316146144755712344184378781878151156452065153545856276545976477908365549184909807272058164275989285480635315096588214973816864285241018683932693595850450059990355364305665380959902709627008696349294262730667950938152966168684242385133027588722369664652473853423897416781653585498738842908924277386044150265084365179002599709828629667700396152773540866792729008529502552346284685205028725052973008029907750378506993440717030179911247025839314167361369231122529876285983801987027105732545757907136896243841808352459774993728140006238067455547820441180957195804585201373997097974159639644239939184902896333538154106626859461324335505902777120747794392406438126186016646639391161246754321289222416657404615576150378452885696709555758346763923234242670208959484226510339851826743520520075982180761750421787332477423199286408963868580371563823224087169937457733058220937268734956116208572269357289633400356956067124669449751192117046174708372269475949943366997291938205112298979677604588661704200869128866435135536970676661577928199386058790763987839477547133796868306501159781721868610288828806772352170067690059440346739836699224586643030776955644464202479957611603359470551459838090489499681464018962372009740711570453916452767051541598453266651774453735389759957983299313484867317334004860882538997984114057976433039063024608990829967051726666664937723812282508134004647426676383131313108969497429901087408264559133599453238352734222474110545325064600757680729720466943366297312860102541739149043020961753752247556601668343408081720714101486200966851874908260973479418673213757088871952463626875802483400049942024240176260706413658009713622343220255359188652604536394330076919927984995549600057113196693191310776004783267585014933330351017815951052963845271518202937351571345543689116360636093170316430158878671970990750825572145446345407124135441601635425092374720146051051389956190788085853025712816704492244613512257798170460587761454696042169355067719434385086634982878849987325135589517597734414870671946095239124496909320790388820042117564136631337481691251724125245183699768936066101112158103442957574101866078557178256701658883992201980217968487174452995067935580580949251856714951784453900177430053866870476666818381285142857505722506941829393152824539874124793915587381161035146573580195003874685046572446703882692791704522992899291608199313851628300175230649170291595408726146979591107908029634003425234196091236958922005893911425941984901909647526026075773084451343906356095819510998591797900123821027142387895804289444448704169169008772892532100236025010445633812960532395513611266641339566447336418085953938764827530595432345235895730188621686776041920332578205006051178915101323628642783181528193492259527120560285972545550911598443334178779375426343362344108495882175545879746164450507771782370685126137400142136761443560168755007524218811407205866015361208047974000587571927925064290141832535119210220401276700738910952528263443639123459118406248671240619296146555681342111895940514360458807456850787193700236125164737066438380678309400631299507686219387457682332992856676972555216571252832614263593535345252029799071245654339326830283283062738973083366340741590772218161387805009828385162365791150565736821865677690357114518729476234490049364729132271244589634026191444622863375616401196053454442700981845106984115367754249704657541510994164212608599001068720060051535369056084801079268459449872898047470167412272270834340863605482270779178235035137880424414743518002323919038562868460119008252666938482026794220266337221972953661064063077024831706242613030061947352521622925332569203594912700620628687692582349177755710365151088594659928627608289852685586172789965637268123302766112234184962338664457560078231966732239454337039507893361830347932164447007210956036737171868842346487314970885702303992594457335750232035681251755277149998158555869612527478297736561544721812513190719491222948877643653364553863677338138818795205801316279596561439844228874969651537507322317747538563320601066428310300916801403157227759943778138833704938818351453079153420272907394710701967773069627578657508656621511043370748837700323474743716642301640637523058386859714918156468118750100235087135662932554803000496588805362045990059324398969977435793365889955769657461748242016853140686271184995891678446824739801073894913638913551492672821015407033101154111505079521743403283391408252619741804849872630343286895769031951845596587611395862030554242587181524592175172454894661629211379685543773628209902780947646260740838481094967117655393936147133210780590532710105366415265822449028784208136290118317694649938185202426134699321405648199886464740704254162116633744433763185337291741056081755971108229279421818664851740192328808505439607136609849682144071142438294796352039523819722742596458616895242901370411736873567405953340503438922851687015620235700285138661436111035063049745011344763164676053802652434672015509299478654633671448073553806279369603724025070702158474225204476026489308361792620813046102880852842733749823991103585811319484727996854903812799642496013539626484034009208418348016253938670449910409598314719462652304020130619516383204549447235896895029988624495902038849521285239036227690538094869706656264642302062767348653761969853186408479433787840751773355939639531929023510115009543415672325125336543471939784662549449720974593799605504168078886681855793864829784232112961068641643324671765422424712028422185593538963283458688325149320769106529014134700635555430535767491176118520115457529100226344977175808142675551928126583176034412912791755890081877839608500743709966650062034353895205362532139929024429308347757410805561717752218124830147832656588490088238137231263624923909455862040607560779364364758258709340087367022803978029241884883798253348686974145485473523007917863396932820839295912721432096623727031901927640702678300857264649876893882454795348488308373111058673277303677925643482048231465655008000988194451567489325349749553944387500312190567550345250927051426485510314353400779748919414773379111997161324030108683985640401886515381663989617465443169259806516856387241243898870963658981491327411374700332797278030512251885315528916032454355002092559897088073061103460176391916597607422155852860146766922779738506216438208644120044604425316955062138219079138832042379882915658357697447908559305061509238207614557014189654348822619698682908015728412622826567764963594450404739672049658074344845111071451050024987294023927818915794711829120849213776971729447490073916547421364756975466504890659747893389869355604486077933491849811405129690005752290090547509998536786057858184475386187351634451171062520156850737326554493747362852379932105657772763062530736042452155541879536619555296512467291102584653977568154461909061426089112521235599294479024987515019160837379245850161698494599109961466447282854645892904009385227639991495964129465220116210134916345826604028158572179677068416762155768437101088004959966014778873087110621137337332901954454187765988164806179962836620112462914217414443072681712672535698922162362874559647651268373172209169806326690233630940547789421821098019965464778682933667509373746252140371829036221424026715616572916215717105202928292219002382235974120490607130704176078239365283625729904662909600475916570777455617401459808503795680210796162674526516997831168712300936894121980214467198733644851644866106364917432214454009986841371249883974456464585291245699792804267818998419971728156062258272032385000016016384675729591386398467726044451754942895335814651600628273306012951335285756239983700163965413724958742169088062422103017721886055303166569765508728817866237468403951088717606733988432923027463099204581917637378623096456444162418962295020198818581548734575337646950675958642652461442039896534280736068018102445497604733063584414345515250185945687623113284406989280308072068718053143653778869727318142564442188573152414269970398975975516921411337609885555266929654584645897252953525336719237554891227362756651505631662099686342075070466478712040603276910313177378288022521786817095873121771850598685372696523020400066963992024169250513197568587596831393169116949550889239428605721947433542677602318216774635750339068009038298302130251283414057701143203005545692173133005043494637389325451499392093122228106391672973811271211862225738548502432005426553601216338951947736673397163681343027868084442077435490346555993687257173305360789054937567607691140478554807684681741401338732802523628421587888695740298874957733887759049877495658896577321759587995607420306153314741270599348122010370476389373341787233573468155166850448683433922508887364549402413553077572662706376102841951716970087976232813497213868735585306045079221718908825965339467830193181263041709442578844933044888505737053412615096598924317502826865923681324916093864285085096059191100457712191311694603683705018841826525894660834105794395268337798796404633436414491561831398891577155654838459052296381970011040763758409859653769466500845389517784610659867489992333111329834051097152235495574420224927180115830184521100154934032176433670399658234761830833868282058979001679547728920987025901883344593922291474894663804070657237566567847791101426905216671671540461501773634428240632020113082474570494464707083363760186300880293214467912195206924209687944157762542918352489967060501686398060153014192215306496696867260584610347505235686664493300327125025341171729442917423520679570342655707981450756474080068785976801469034331733158204296605277838058485771108616837188753378296320062586625960839026890730238245832340322802112143837532448078324058667225098608805256127859860039038091927977576343300409473145637841644778906179477586534452516680260605712169290731826209917889974429207590323680907015551569693960831097479122602516012003154669556823905911015752821831000877520354800111744422338831854412452604875989249570913276288532650959691973731642860374708190037156612074378039688664603517528883509896512114906567779446848923368947721068036368007614556380110116908863663619689838170184292497081659330898615215673521944607400191348535278458475705236165371566682241773175430043126752826272619813782032526975509239483374376256766591196871276008925277331337449716869297220619372131083759963881696899304473868412427012451608917753269287231913614455495620115408550117548934181497098686118875808029129376554121017846501945596674535006874102018889615954658327243759874522880349170621610090568040720279632209238262387598904391631354119768784955957281186463113047012253314886499101370193346420274080612141340510082986360445983179752704174926856958877734560326984794757314079533007234283952742608046856336989697526549448209436326185853995436630597901350331945406956369689766445903868839842576670240924163672641405768427578376192121394818264740472983447537987330318663938476019992038042027764775924043827455279575607114487422889576065389148888609126875492200454498020092300192448636154311750618125487262661338933262314207057589905502952806985183062671767571281359149868065901024456436698391888357726076082482703940753801608842923165311899031097749715779502994328292121423725243704379380073446194835364343887231135409300891971949036544401085976371291873840468012436883667091755366875313169933335383244634880087677594229322234557076777369693874251044510451992158685158565920859432443208705407590778283852836501357253814227083863934618657307176834560277460366649577140611284920089817881584190766835771864154490516796722577924136368685718056208641215992504572650697531580119886725181464763804077129049565541886844318830431365752082840771380906642750578841301992768464509114347561951988880690979235872843545220853722274064011311313447565069220731981312569243484800178489813152466924202359061216894409346248122705585225536582675111736403399291704800780609543492772878654340564853543832385915924624960729513422719053672371619779936920563395845362353982698288560888359736649618612753471686401437767125490015033116899420073751072358397775315403050372639432380982406031623629902555495167705665123157272579066495773704085249069253400536677833631133638243102450845792029440680477912315110415992081862641330632993448900241269626704574766464094138258704699973134713057089959462543887911612168045675060720936519405559981190064114651609043340670750895977616255036043111380852619928509707285959900619979756303658669305710627418293015931927795547462572383033972065127244599303442439996408746011424432373854026912116673193548216209910664394860698208654336976205772293838943777473842762611374285385363004350699885631236888018755940887412094721863077954830195681223713010644252030562409474859103112491448086492448687346619582410398753631040447021265260708428141107904740069138373052778477723933109570938590683317321557397958178794957660988737798949624937627522975204975287744451634768383437413278238575876670450364563423168711745114484489548361463330942039977584060202489230375857875190028558418353044394871408298243141703845711215374874820192151777815036280690801494368390439958722501404432532434232787619582486103487177433169320740336040374039685736615418770456913121009463624457338094332621778011531765903388442352180880991951864071312310059452387194917121610549876472257171182162671804275539436372677316878938188281572171227640171352945108701984648782305056511520455346485540743703792319534248122699094955799896000145549709910224051160284753742547879464880514293149399342612353407051199166378451073243153932074089257720068743742517057124861984982652852957068377150653763228672580482637206439556599553336925116987463885327605045051899431727240016524236172834660493375469504582911043739802645512277401474910686156600448673132518336100849846684216333029818839108990343839147643684729289741717830463995656425372376564329867126629549562467090354067253961188011713916837797755569266029889430420401896579421797003352005514084616457903481577216166522456771228439211876048440079541232196564686538370527223835053963631111646727458869734237091407494566916889490697167458208232861470297282190059083790809242591100737347891482132337268684908776824961395620284128094834802602877947127169109099045911449806968339488942059745199844938179460905722760929853735069969925504608408330612344483713558814767929740734950634221327651480161302503638469673078406721856055113340692785125172672309418633886945346835567093881968973447359151730170703173280406582201716289187427124159496604971641700089258134548909091577072324712227917517060704233599358036991511634541703332204060282631869369034735004980635519930203853074202687096428280550894457244179569252742290851502869871078872109881980848263642486756383376468455029788614984054838116645223306774585848329706433051034387140530221862491465471279882279113104970518644401431197218282889762090614852934744469753440072258921981746819745295335634015577708064470387087842722136909639589829141574554297471534391034800937793670928993997119587320759577738099274916807911316412631514237480919947821840715998062690434740234350503024072429906587375573346220400259159697048386043584118496477047774127470965506171862138799834926832031356061409441596565328057658865998235401732533903674723528211611521708001449588987558589623708040480382859092378896753158004662760004558103509299093157442718436136079089528804342847193098343357737616006216478694571179940722716397618847971743112299650531554683553429876363775191468388553442040423637344716774815200921383617302292353779439530569795867376622612072307218182256849187636918846325774388175276039417284740840640459309011947564594836499785630535776187558635889885102073057444139920633854781241533168576708318521549778230909590608960932527569101726127071374721393707112606762223719631756658039376856638234091399217107175767677056186195784258738909928657889181184726543421436998740173352934921599251644496370361991665806417392741798822849632082520860704700618827323423859332226828378112208472667279529416177953261856160268571032911611255254455732238271913483276832494820617065873358100918195275807903078085344034637843547738482838096460879247528420909708601916118211754271749789868576586627688586579606585194803175651452042706796257870888628308238717508731232869930925477442353045978574985951374970189861322973508411301919008594849079651948879043243737720192318536436537494340710589107995145811459509183685209052534448823743665598822894331635431414902308339320863087118809520905019092024361393238616362137471945965021880108200402364649736234412568466584008132980968647607850943343078640193573592659761989808516845589289665485811386419857324561169010404383693503670717698688783949733316741762723461993751285509653579415128871092981667492649495361022838384080882489705575320699223465002802567857652918818001693707727684623392490471657854759095236029790713205047690945419229566934474526320444845488401452040456697002325257248300822445242936072152814956867312204409362740091596422362401564427134148253336919260025640303631604243515859725782044441250859380476613585638181892052623396629821033376700974967265005140064955755642865057156795346506163934384688426146236570164399390282150000854837094809143547223544097072304008008378914163649129647336885883151370682606872718876891321159701827344782339087259590878209650465607827230080541851237364500442928129572154776020899091186843674892630242229111019809624591409089220757898018929354718654201229402068701472244128986911261934965512350187462108046888294586863110784252609257244478365089034221801710726668302577902212609016983797606493721542468195066012811292341462728603967257908678360089638019836181704638355890904320304928972969450031862724239682913665644515930908727371514606446002478496545902406726514860258880324852077073310817427404721655686787911029763262356343760743605623709313083894277094297771417429172216318366433204622174344183267055770838260818767873000335854894808329583991680951365214701520802057527025107193575708187027159444541532145004980981871818085790485064180889407356004381081759020439575179603599414163598668512881533762167824718821492745391128953489526208617356060354837545468735632135857275292472065459978456316022791669481617977034898807179565742808907085198315784000051497980997601230239066134284840704096112160864205111768829970459261240826385837411075873395167135403279937144295508829964157762535454441011566582240758638120267804278132738399491555511237703354634533634354754945440630434857106239517395187118746487553515843367377478792289885646191649777481572687220036587400875322601599468715571370049935755173183902754801489830449866535406169430962710573122927193797478059985800951334144931519439955282490810557235619522469512502435896162417974859595104751600194060792946956524459992162822650305584596482881621630476947954456517058185013254606801460607263546106020034787831861471540414223713914589895297871624766456888780347551411813393804381643920685308301317081175579176464559978649160660390789979396790135889672527049956420810422095311525579637390893016198807279609841193190471350365086294513065640475284922380114339263307460006507718344434523652250251869694305342675133330370478262817238352248618820096679977755278737712249938472370450099064534523832485561763425487368622921698009550223365220551131430662523962552629202959001903038765025534653963531928562154092501998694942714993031056312997535677905061175176508168648519792635050665332582331889557233131872110831101579626392675572847255087608608253761151259030578613513807853213806196961387329421594478730383593802111057205004962756864456075475378019135936790478352020847533527334062987908496546841028383435498899837202803538688339496364320379698776606864278931833748777816227249573395046593830414503803717120325382750191812821724846437663212094765623556516416894991484067181746836806119203051310121174818070686847354275503287522881648311006681809249141391726171863261043109877747737265730167161350973561423798610519915325254351990010328138223865044924861450722914165860007541323485730458683527930397584722319496839453620623620979828534533402604404456912557276060378940758682175221534967179994877693619727722747880276637984105860146003826829620991624639789642211916949978560905175912632731132672330293926619741623933086433510655770161606560484247899621880170809397959156826084446434127186062971404789528178798279728822389908249836239383318415669937867243453410490453877459750688623547545456362683184050049644616660393721900312319461789890268961314365244945297588882984159451927172988003216429092930398553763002085057594977517939703889467505360678347662055340338410587361149534024147270257769639770034679772759060647290958771549187875021100672841663711229185390519974603527005475841301758761435400752464715936809308546520114221731338878821618145808934733040295766732412723489171014712517588625309307853634196771299380170077867641046215514374890388588382981611117173448070008199399922701216742866746928038910324447817127807183396336091993907229284364007303022602649467883707590159867668728518303716830640863167349823533510253628058672820736391016969019914217114130181826218808127273097387546626411187655317280004064953151587758708942994934681153431386879670505647122325041530595733061092616684690804868129999004545284661670643390266321481125076808246214484088986287147582866166319502759071600602287754051345488262758812607668504997220527545916489776346063584610874286763820818251515270964317593005478427949718668995451831637886177002423271719372065836460544061250139524312599972650040618933808534182095217458486741066110634356212039725158268395248776974812227473723335957595422865888529270911573991444317510659496409249017163591761111512012887326851232839157631136786911728469128420957012032168622640365715692977374866030394191238450749878863910643525292141547083468392851195428963337815181859972412458606393195632777540774008899702422316872080714658351338062603115465087117896196733361451520451328265805797952050148250022495089187377064682105874584532394078240034004249124801553513480819008238725365822566370590389338887577013897883404954899473731246853631558224601976011647528026783564964462116337219697672160397333206017852092433911183419224834245271878484845976872065971826272113670641174508808077003216266028057423228156742028717287169009543341414097027349188970034231559178866855567024714612930757861921959361057113745036206289617930043759665252466691026714962279272465254808499006000905807015929274689341564271236169386376399285388460692803950920436097067337446328102878538902513373512302452177932820567057513426781104593723628477920961865446385736150152241088765654847718910417623766181674672164414051346322034920361066373775395888633476145238506873816946716843634963027890871587962736282130351471464036055695149304375929970551866420209453355351745688139284008899726273481142226842371589421113578354880194205041885941114699703508557387379579533362266553328451762725630966471913298473042057258207221872340365871409031306536811065940403424064457786756200562711681419643020821615671661295903832446491386984285803163981179210824792947787620977223866662306584973684701467264084837945892288273659133964062198555691398347496577980648567607990057955253257493984686565263370205184014783308626021836221255470820828543010708466673211008207068942256501019825588071973566785566459039838120191332427756571024677311455139856319383574196368076106531945027110467750421362264944029015190549639399862805261135791679246489743722520417315295642988050409847203837346319239202243894360767532255326264034222683938023392379993341237514492799543848931416335445954541387190638896140640787159052614792594563560460877282417786851245121923362082956732558857006083172268003667918540091711142658070197897434235534380508073178522812889542696027663271996100555395647807631828344071656254015420413102670091565747271882496855256842088465298408107389119212331498037092283473792399089724297595991193714383781202718730205730235293498630616495640144266241615179882660362288527223777944726329763458461471855489066263721454007310293341609539592130458824070347856747004965678023796445466615458722180952653911998129087805463384646403411036302547209906209729599809080920566492738609816107397177002479951737243281602400800644501920990907297223291146599079404275082849845969017513200426230927465822753787249753281552437672794065846648501530208025606685267112092892245960184358261184688677760986051637814148531656368870311175319862026100078734511052486393428192098836130351360682893806858706927710140432351402175639812173963963716763713451865741476802003017597867568601405522640615758585041987193539730085851046399602537425851054236089418751956117571247330991151556249589104202951863022421746241347476856065262509826102925457435976849034936798162893371767651953934509427518035106300693445592507175864776056188512683787911429507404780021260318022010771473856589671456140787670909927109935007202807749295349830376683228269180416493472586159360553028419982680494595059201403606496320405955460385520664362290005214653196293675399047096406978114107823317217237340144564117431036030373588268024655980188167616413136416178986609457606365184182032525940517250535113314406244202524054997728428568022837083743532994633325574120678432106250101973196774203032203269504593766547734700321616209161094377509698155579137234871055226034498944519735802074529231273059174290383666696186204791630572721795019051792413940442519259624192476750728667591849854924173552984513577071590674185968481586743171556868587294684174133040005003269848797506452570839045434744178778448778090473961417746076885117898489615173334221865967245896496617125423898049931857853531893671133874230213105238109076980283670233624648949997384790644514605349650527997270801872305542521445237265490423138944067590658873861985404067032776263253620371248976917457456299657296659064759292049922805494439228222676226840304603262179969032433888416792330705636777707156636216868843308340312189357459249261788744199009200165387844842533184734064204133809808361258783768392033210146405918715677755034602569545854421304654668864049173179445073797256212152269184322720104061281561715402534389708037691332230678033242579501979253219710329227334433308158590254943542634014914730315273523722559790135187272189453363440941054442176697229338442724057874515207625258243166847854876796686512277926206327336378369132014996984151827588542290928527856431919715541145923857647491094051557255215956723834351584794481339508628229320236282002085903754509780943260378873972251275827330621673328798358353882326101960355531767783317286217830546117504304384021565776126528000094288321678214548871338859888468792327246292562510802083047587463603020545584088517451493819323092039682145124923169823523064910744455058269921583619084142251306207066977180099031953239330243207123539971859280757620281575536154532004847904675796127972914005078527982019891449069428695683765584888929984564876001497296890775617059198667204957598526088477663864143289747525210710000501347433136641672255472762941394663362643589862531486721800371836806365408894656334692000743209558324343846377426953935119014737083138242191803559615564429401579071576313576742629716083140991304048494229367345259922822212850800585712975957115202290349962470950327889647133449944036495661525454272011797374973968483310021489508588500371611075251592769161223071686313574341218118029637735067843790061704670264377976317181996041570151269638353201835469356324379070070035645518209771894324207577554927103484362537769382255126974578395411038187358533007391477349590875132275874231574839711366810759216888245502189723112307540647973934203857695799577050433942175853276241189859070117209233459529175196112305112831575904189973392491399066295919927834901783703046285654222474772750324559190845332909794648813496263612486613988403113155305075121291428602682239723702435356093743544833794694539781935591155735442523667787204184457490217268580914217381301975969406543208357220642943435312219469241325597280265509036435708003903020731998504236043763223955971496756821934087455688666187991915193510772599566900614215827502034395927587349903283485215185492774163253813996672181702569603185182031251211460520076126302874841005014879654705799409782376249897840426874711900810202536938275571882842406502776592495243390941491592807721508082226291628337603846246104835641651143803915968644791351329455545951078710167273727403667718920912360598763022695868114385567781819503615124642061557735875304850117302689008592547040931464971169654056976734018679872326107210955842359391007592299858863510967273185124115505951999727646013976820432881475924182066572777338351180835398262569894817357531351061276825063040772005879562153047460298949359211517552746911787566476042553961635426054094227985515607919631983661356917210679894969333697124231159302106515276774086730212807465527719353987858379545409312646065462759401554156639724105282372514369878935295970666363912051408231626628720161271422033425927659456396959920641711783631633432400863104746813985713531510206822312497292480072125146011629513100339395182651117223182692107640198849191229116873498524139865239599429233380014853314031351301259621708164013204885567871406422240315125963353129017671022834444000607860876525835362690070782386334746806499371158744132160346598436424765865169064097367752406556395914019917995656334521562134717526579349415576576804072062500843855906956080518815528429889248145786367250681440261802125440507687678750946633778388661050340842305877256488992114990029660327836158623814761438161361842842231517895114424635401608638866747751604623136029100003621298433842150714514403378720011974203248950160124766221426664740945306763211006415591082374063424704472327913250443406550110278767789044157067564609065664211516201144904342338819159352312146625422529406416613958402569531523716978710384257827367946762675568830892465438952049545482576911693206667843975403467069860589356975623623433140112492152270333842645579407079057553748829187740565508207973130644899756914611262102337073619102793588148375488204195638217785374084228560075884612315884296243096699150250331891504134716945539210203988523187157495786198390967896226839656793109253909935709000776577717234169411704999397186189365905014169843118099651336001020083602815199798898852355657819572828330318424700447272776974645316738997725322630308389903556782508506522090488361232678024778649812295371727807548348924956247866761112050492746468772711248352514631860461071812649402216322888856217776808231487138774671990540343857951195904955967417950315329177064957919300979398853386957409270562557087884519135868277906565598907735383175067258509417926960799091189355145172896107090694661437786076794426574416411722501552511505038185265566362316096825217757625516690114552538015649227514991632358353503042704935138150571090786503616463452602658811561431482170393687515717251115078233070167758653572851378410057502131281833758408821286112607580749122402057700988378383226094091863250682629035151959650141312685770850416013375784183962100393970686110236724962023428314213514360726973935529591464307371826020509183808505122100754553935659072822059777523416023453584234288899214142250082606708357611244142953755229373750360142111989141776718723523439125322549724609730510719879442679121310293134449783632898960250445035073395490711056448844112324248249634641475887719728062949381095612882304275151912145610152484817308696508271024062520900873527030331001590875174995483394752314218213471732274728104490137156246817552304780603005626229040168705551347316623163329458091610644642355761789816470641524041196752514586347888334802303217335202477108345383334528595242342059698741199506959551206528005978453576766649657052341771812793875032551305889724550969752259113783771990401329872334222734378374152216785367046140076949480199706831627607783630076733992713484641915533342348009535853279197069052777969794137591215671205229264483272942150327376711140909637577061757799609808448138314671604256442877159121372035346823114440959369099310398614702138803578356064504433720266418133387677435212390522842675004820687372647155155627828656991548655735377580392727792618277442605891499725880977264269505017394189634139930470410719290607806895117820090765524787358367642704104959412309929111017116135720781899592558172248125944719445368332970412910640688073273453150336417097526861999548832610253232957048920902926941440259832307348918219328968111905874669938976155869253286118026316181425288045106449050752112904606863465947454160631216229626557175842163876032496625411926627899464968656699561678236461631521685422613546729638791373846207469592466442353283747845139616271555973547646821443250759387529733390131137831146446137226968293268331354965011720782240502681498000983425911712203212387911520493585180997123333057560715682194570253856822356642793329064199949924805239882558519458041181473982469427369016902782888875819855392813509845230947579405115446833321244439554975177937445450212635553273083679512185251370378012461449474451241719241018586049297931297669786635655543588580388690000083140751372627019122189050037157768788509086380324202273989797828343354326179329026265930394616199528663216741167677049360612787147326603088248732546487992059343832718458367622030461168389462380207279430497004642825731203476453413072586658777369696468251237580475859731105250127869513605308237189711200322096481848356417132950601000200657664775727368418972983544532897323099556317376577005728011807499618469850119735039763454438715771261991838595238857205612101634292715577725720261896524115892258117861683778339057461455133406412164711016283778299413460758970105759773819825923819505661125657177174401255645978328884133659107324690694785147785483302246213532225181134003907886569246797262802248870570424421915867538226757437744481511732093044779388489614106982621074960447522255963811416385796014123564921285848273346930937708420568721003611983935129831044145636331967846900627346438685936371850248445095097642173069433382383354568145215374928253532801693288713732665285839186256758780847518984765508082075317073086027422690648883271810475006918207667529704776375967214046192590111394549279482243375077051437433867336858685942546585796966853812043827309611914951028169805657758799293418151931517849256578065214785492397702033218816265015186957579961844360919613075409137359293137554527690893682822229594039143651221141609149415627079144753936552670489309524895152213029960736988594721444744128500534227841801227854552876825226059354738871202464267333705578720694351705294860039420447283476835464707429110956673700257104632161181284464087403195527415406986292355363255970077544723685230452009562419673190937165818250054929784546045520599803728944351452096759870402510535359477901404552992444293674785498295354003313250199576283775136348703420700980851096416330462943584341913322937029154154580211330608149888339702553420626173687044430106214892386082585724563963456120725094328284159879326438768996480208878162951821424586131226109822644681588119751252232384447609753369253289875596506387488265885423115601225812837230589620933755230145802265240290580715424189403287965868112547718875993253935814910362081603189653687663351039630112946028384203288351019298240797981636899108155623108877046985842310026855952923260343169968827707460320494743779425133697271920159301277893182808243057018690550184964790255868731817943065373116671572400365495330884061371549066723494840459813105616893022077171152227391354973240328726663050987055393258703376901210665706938301970909621322332289672293313831707258066549748029766618658847571558857507381454241408788733103011952519418251175699987278235783865390674527980941368680525257126777332579544273312870286152501846219416664135250077855243969136931858571281338514604120617723227629562113592037097988153836608545108111801574020803500872520305552923404994755299283369366105033023956575097478095643263655655822358214373569951495315222677178575982762504852653817017660359831822900328115516109788719054106359159396621718508552083679081515795279944872090846767517760297740599893264907954253425018888505716173933344827334661624918294250427091978113505071041097426201379607438740486013028956812384907905280430815019759430404327524173171153663862670031912073447712907186481073586186973377088329044043283803187324961426793579291066764153246145212780177543027402759789621891306472728970584457427540872682903749628673319558806184246960981345160315684753375287588918085225586651988951662440519096711921532209430524075029295599316119370056944544114522667073477723102132573722661871092331053371956795047341854771922013351017155609380706626987925699851571855111286582043640076030663734584384328181555188916389220807746526407063286708831762101470799998392570260549295220883345339568879153264424396003928492404521972071513373267940297102073644728633591089165915619197858445082972267259812428705386133992723518541266277619805841848282114193759088429907583756917554272216865706165574463765703027606940758748328083037994663077016604514638101440459578538012158454099343784422766262762812027928703342004900600599145417074538020189993827924901663588507281270132527451794975870155513289890738598430011359916483408856239286264812350686693914314881260170893496383117890548310915350976650583045973906217913633306948380203311161384165592554624852242323972777154185038203342094852169203793555084074592337734077731843251786343069675343057789393401909687932522811182302462857100107591963207982157124296135661861514376545933970669603901828514031575822471652434342638949792498638323270393082029037464475598007853755716959670204637782908925681209911851984064732524583249328158368398236362933963927132628944455511002369482640678243990781969624144854882229450697038559852438605686455275755939839604656371303979207621951238820099058023414071783871993872496641117604285655645794743967794996193299373100416870362696934791465954338355904535894118804118445429253147082537730085892370549178332583622361246096237433134775716925118825619261558205589492613805324016633068123543067236246981318387031893012192746538609286960164514177738704176014019680631629357247230853231628462173063957808452011326173553406251993636924848520447968715690570508408159529663493594597802639697828032689174238065977334314573859560828983296446346427031730061036341926326971215546467065510799884816459746072457899567475549401672723314888316893952638199457561302649133435950632211695804774206309586262405068498282071600617522146496215217482908110527662741368309030818025937185395228373775750871264013130488364130189418283948696768446260619665120399902729984288184998379804337356174152507570913074824419050887646032494475087773578644428626216246430714349800244945457677174229476663300647356021633128387498941138287569579188515397955250927274025228772243424498820539081354966566203380819397579448579115866338984749986931980909394835432747414567319848169737738897260482616444103047510698539249571424914554965861772592127262613742329402642988735544668998920551781237537106885434377678459936964150444670090625904937311990718339189683155620176743446569124392596898013508671662158586096321647769083020994930144586813626395062663418158726213027624992352590506103206567557810601606957151551281414222057593715978190570545383341109015671544183183877728237269576518984166339953907281128536497121275393286674424665056440416076180123237591591312464845527807231889247015922877210346836571613378255729806905649878755319900247464861207302165208110696452753136861470518672821320509398388647397383908161283836413329047615661449842318741798730687150102296589458214051212314394718679432336950487329934821082712005285000780283069982934512923154193489379951635796394317821048057627782054203680038019836949443735034902288811710936714806822390545634845467943048793922244292964458655964005651165861546195598699232330804278279948046837184508978821622811227016852257649312699473808346622790262817653083400317111037515754310300405053618709991981504253716841100258471377679082125877166869164566426589245634435221636930127393794770089621924046376975118945967454840656653690909518552984508373133706180224642766499936455939864405521866299823734115419064109441065030303673460511076400268190286817230255839009478723697879464001713882523732063202272207069371889819753991494172998439436620181822873585816121823358748199091916949872143838513517310696327915711075300958847203241316240627697713828332334163328162090590305520026963205863811104660929958959991721190822354545852521018568393488870581672082852266917591895028415669145494470209575543320704168179799118665403661067237693835715475939048729796460624065932026812488914926514002504443712497352493123084274649507654639372239462927842081327482966241055175505513690626155255076810921903937075450575962420187824313746708611990510104002388040900469332121144365090663829213053107902483445127963204225964167961997044501852447024080147510897459451040836599276856746340588264256945077709432575229265444888816238465080378240127358847196348982520369974126133062337363967093655359204407387843367698187793615997428879963133586733079092333381037998810985054493998869433913085010647598681246116932989885634681858150306418606011119190123141173486293072690718987507253851537310809963163876029915937444015061975107539641792833397043362811872178744647107972111126180264431927763962567660182758884037865778990741639203173066003715325424632647588927237243940669047610106344387869442340369554305219988557320581313501212961234276472062390388819064397648653319186209740237245234363132956439712335528673701686020908977002168063333852871991116960849603474057271042119542029601318542533206071930920564053669779961539528287096699866481056111508826185285901556790248661769787202235572097487496167459840770061363101680527951611452243760934665225756786035535085001778674367394020389064763774074925024003847557619279221299140589788668986167738702339794103756884645820876619001988566372963872690880101279935486521239238485525888423493205224902596292669131810395543228638537706357239439567457692941035933162839289374093214947437125387908060133098809341624974808865619060520915797337832815975709874504566351379028068730037030184469948974545686431019933501264373221460489327772111362687528822407057769053294037635356808550513233151796132470551560373725247933759780711894185798023374447315286279424817667491946482735352711290866822284273293052560037801050472928939849315532555993356042797044268548064532117834308558840420262230444279395144992664761010065885568793200464242630943180689304235212900240099660351440920694106928979776508654485166939805115666890520157441865624007224831586193061322330473793493229059490272891518067719233589580703579080284633254290889083970389029948073258527185303651093496886637691458185021804709605159802839900165821292187317164628403766609428914227003126360080087661282697533869387593246108309591476934499762241456148369432991358885753903236631838083200431610329405559359936174343343556878518231723245036786251760455648523304228947680691627105111992881628025855698367922457577126974451824892059172113449252443174082524507017843714262754009196243123766300690912371986367799359384771426744624591337112168386050102706073955989606678829653533706555844350160878436804640013307389533840373549237040503734942151616201932795538949320405876463350105516721008525729715910909076158606498822548150291698944660099506159387773619674946702374634806254465798551555841394382734011028141736437701279159064751080039092938548690526087363279071667594830916401223593311897390285512294148176504384021403111661820096075772160197847960329950879297494257147441340061345424611024211075222568943276320200760405447142986840559344519704989386454233350957902963873576730760568209442557251306703130911852518414594256679994670824765839432820310259420702868752005838514550857345408162994536113164533286995243698934131708586178333549766598899112624645935446900469809470729071790749885311906112811028164529505981764751505250432056714329481776958992607553073150221926843519198025871832598542074682098501976635661045848725191191446786646683263490649512992910560220069291664675099449978211975442785780850532171613853519848713138324124891065874508184805997460464965762782859897655702265564259041964513506986673895917809435001802221879069569618698457825847011534467836417010484172594586878811564663935727816550272469020645538019034000998066866885798816760938669234669436639907949629341907645868898846018941139610065528466813293825733902580019828384549534329253745923748419260971635989024321164073507421884890131656696175610583660419646772795347371366076249320471951265322886999047009029062163452534497251528190520676419803794324842876055585531358879006139802757437884575526384003257931400850723193081470463948180935169905713229648773674903782237124581851930134817872467840417572256764766377578617862174364024417978838284608308031965164031079557663009655264738256729391875789425934935696196304712338838970228322592570944737240798334302225942724216867974952288770997768785884613377944311886250925939573955592978158593107080353589676905650443539103525542030366093996769866163583451104094661942851983069287464235458507893047872491068974054606041747137377817235474444676992273027668166639586464212422394768019401794989325693442629163614709608293785965129339975160344198612651609674979264415137857955516127743419935911357657735379876531585024463886350966124278043121996872901054776000516399416282606346525503200423193903431346714557082703292996211025447233772927486565519100898017409628308442686037931582015331429471341223192023794799449080598172861489764921658395244818052922507502065505122482466245344131806341811818286547809943797305582553008866474037296096878678242050974365939371265090736448804884243355724678394029444736074445735867369579656643528181485538851587244226399221486258366833093820564857496059494574653856322421961836115414372301617279253331109320091552724388041530839013366710610012639435334861347556424045972450470722793019596293300359686448458026590063825727502367619334116759599985065868846012624980969450721577356253688978196646464119001616007080510626779829817607737271896501782329705118157586985057112223830613343100107476226491520009283632595666080625889139465781368549855505662748920725024909499645076962543483290305506621777442029012207190152137129427437520024066185660604717664754707264025262895667094843166480495073091922690644583057433012418105404797564628537898513901148120533188741826304871451781299224325254884818166034147287820526118958709567235640690821135747873431096406383085855253309714889798778094303265263889007014673765036101155734558477283955407840551818538002372405492899488346460504352706729381001847048268920610845816187799406742153774899695606997290661368290853535937624619825945565644184292730283320115859649192203503199670264131009141072291226700107575821240307635741113749448498737207239723066669233619146795476321650046965131826925875081241698720564393900849957639930641973537709718812177925731839364534901707790605621464606168251509896857373127468779847595776442591986007421306257035382158908996704581557684324542853722559433669508501093661455129182594674531942649960263157065146576557804061715491613247889098224276400787237644474395368939297406974060891726928173068887768735378650168786937481782631951400648292485635664742058072996945267638508707026310318238700507582816934687511311244031074847497280442182854300296728012346693021934161560837637416101838806276311533108742396333352158029710940868442939002323877302130721962217280198031391120039299014196282293729455395712669367550151509962631620632544463657992510715943480659770564745128996271985147793381374512256318078297776146860434010521420166253278691947484849643104000774597647588689658115599381396847839128629477577490303186171148915657826266773483805059975092174691168798095114871864689304609664843790860199818970058236052078907732749634891199128405005811900609582315071041708951132147446528389721906714696721794167668099986043898987287035589631184049614876900241935894313799242431360595429293430186186379522211026677100922719437199892288975292251533552866446482013063080524496401375155325563795195654929734810660883653310469585574807909774166568699804325756511844349933981257696665151883382391602564228503738861403905568940114729350216680270449749953856388983301394938696956303880216994627389882573715048802274016268051109682541771023412383219176602228556145360420447735652905537592489708747243815973611407582635239798968434148313359827482831655790468675530105543975727976937189546185661260298919931289548200047046189968636159492880353415521348184348581310920596345868285709503610023575346937727850613767064825353456620698609752998550929002354139474552260933697450666997772932425716423004540421843254531990118123380042491661770032753717915260236653257901283690372751035559525756932914246565711254463445074988651959194965800848942455243688245519307751675676763067024744197975750149097064492038631375797995301039925728999048928950981596133027886487998807589918209106542861224276737868813092323790576861205837774625018123973012039199335278724993287959959143424149346968277622513978787152629328810963403397578058465199089107880859897710650333870951715747599624530382447875235038933197025437820603715977122318254950560819810969796808444093070015841760704516096564832054405405678591327340883773353586956974105648534947317873671497239362694635683560560905092749529212872712918715602326078871454435722624368802351984289305383141707500727019868058092919176142547760375050635053424171711434277609926333746124166481732006243068139546048319523259734878248579211937006182413552618734364090347324441009606097996321462826763632957822142575140061916469569016787186417190192248251467106584041223296167155309285680529932963417160555181469869303622138723000173957727742296664816403333823075699479892654133986629449499874936776175483835688193855940852941093647638699205095363288088671742202210342412904034635723328215919002130704081723262189021933868790864118314343928631787090895886887566469088107779261595384656746121731423881110163057031332467791810012158181393097682327474801786962479450905625064762511121587286256775559159370860023545820892946210322396654962229448067833319660133999955498753397136472827943347509310135747689913670635016411376280407115149633599354941865643413492000797970986145159756804060641097702777282589623526941035262947788272249061987654236668391082731271222106713833982907804328196455784034271518746157305531051398296689718686569428394422421656717497292928431507811428423000402975291420597793603943386848878226636735261963807564206837051742322317046890998850448572911414334474238420799168092174297479573938859797723099748902268266783631269770737143066970405041033859516179152563785321259085436667371093097885360157906966024767294202044807047129576238753182380044334134331241716384434556962564337491343704843176799788479029998168266945935026677671928182418843769679660227874944091616959654960106652213344590357108514440120408654037318159221161847360893103427149350816100557633682823148526006127972599175934770301647712804969156714147151998764566290625313182878119089667425680038161252525063342203460183166280730015305623776212623413908904537665362372046142497696834313044704971612121041269592808197898959262920366339587291224725632148445365926008368262316691987444678055803096047998549293439504114832138480333091954394397986251019458812451841544354213107325865502174479511942575950142428378762390639176863204232496333764022618346860413088015816298295100900512319536410875172480851961539238352918912913279283650536609285166336417478160655731460258686565503202587885936718455334791118919829234899826011247503443300946938072717159355992577851181798207492146020270594862052172150798415764471398621380592564692062761294724737976776610888669663651040718445865559026385649738920259173058216511430034985594797940159369155093405729846837870702265585306874735817471969681911201341567438360686534561753941404677059826270449096278259175400035978201683383046645616830161278271171448993700705537428474752366740187490240112470623410159860492918767543335143457323411871684745922271937641269647818900926499451569044254897340377832914562943511275381850398223416517947622707680174752137019296037837147696213628099780903054468387275405932652765385060363206940960917781608273940130817718343967935292023236389265520642498291893344705241946263618374285883782574795252085476302475820936196567612392371329087573991672750594748150883549873399634959653000913050263138082796273324604671774448280181335784855456348595120731022606432430920331291863597192902169577160291505984766969749782462646685885571894052860485784751702875686445412108325787120016315801428588346699595494489331609112714062159791318398401798589770521905715668374773987862276384674266443026612604865191760873449516734853341728875799250035566392910464339004771597940800711546339764714037106067788137095385934370845288286392626634649162830446312418722515221832088200044088648297396143071489110409443528573691917999127507284644292432139657941831850465255546010606936757142303586486077003063260777496354610877547473683082257134712100611289983342951905398488555403958041516468675499567142750525559546154001978196153972504228830736522977691373532688844350745975552741750045365686693583029269143757725666272230105585213387236492336802097800508388289746996601924169112741979033992063143925643706650100055135591495159039807547973759160744781426870954622673080655519816940886685600134135843675739109348768964478934514328736767777670594902231358043024451937061720594025410532826885476687730190850563440185659224740286134210708333779946089753003792212056313268772141089935572212359050947751399741516340624671698322877292655315206711443562208973448127394011724677241012192478665510151521000271446181567264202108236378869490339425454412070650537426453217994520341609124452344548425721608361433658461916495771005668310191114907135906752896693188829570457915108801190828464112694490216008647735759231403153323117800808156427626065757079903807191670713558581097601484348520002732155364854898059399741005455357143789217040145289353517091990179499479758608856849955500370422633909074269608518126115057025426405408201566530122464062568791830969952048575478364333641820202568246049060477418757582360627952371546522455507820895266283931848082619165547338820032756913111693621354971148957676624857555501573857809795600665286096426919299829323680123830452723806183815826990522245669561720065383966848413651436841771754856346332026164452191453767722420522004081453426830563266821416906940132076895714318829616716486956403565554107995118051453491032559139399740357567687785154875087957319332963273437483612492755482732618417042558096459064544625774404946454899098984358227764850921647373965199219277064024070791774150068469625151513430959627016026922388212717880383316835036583890297856055799591751746429870623138465882943947717954073953555642559638134685039031026183622177282360653137791683899738805747810853067952344826635285567228878415468053354734777183929032320356207005359924174315899784262411215253408493681041826589815739550093125537429682363221221114035826871436607365376452053348889254995339133698131245769413960410832226563258614578252780436293200295643073869358138599450465805392639069627706047702257246701371758531811189855698363931056954099710445218186702496315807575239434707545170485626431730470968292603032173553622725691569892983108923038283412953223532520022974468946193824412087629400236409015156909999771182067177741105335816378753794636474367577037974992646997900426826162583465422555000117128350383834849750306221508910258339605982363337202817014780153696617860454850539287431994076950177048850351808822901318606450038812607823536479921374669215084302453263087490456590804710349693816644945562983592858951224239958903718345426432067458236019873557920270713331335060266291486864980067894905236657858682321097091804912818916009292092134978040669015382028326897633455758561051575714104574127272766121096766805614240714653128589966186046560069108323381817251726258026070193751016438223608678800607475045451081435939408166570217533641451391973813179424623262785323930157587818842077585672215234800466530452124074203431090506943235238236568012078755350978922408581043363563691252711648255956319986798899827201368656142594383835807753785178380310898696670388618735550756596914766833101446071741216789929423460574885401075758134136705573786028860693279460038089756384794379275901580881130578100703936737982430812754351768050630459160681139805930284227916365205501119314265300764476195079295322707945161436627186172396601364695960200769502439048642768845093265788627645341483364403153550733286896552492662155507667982935214010454082887960022166906940327132508078762023395986138607614090176301937619059947228520261744770909263505250517393109056119539691353832679395167412704215232549033019046680572611301501992780315412878020535989040223289590284164682769358324064124449619050501642592728383201501727049107515449095340880937074396111474997762537106970921009787904607019709050899123378341587142134101644647527975046008182617478744658954617658412038122847557990290786669290359941000973075427856881720353823279286637160200113125956778222925909059715423167253770508874864675270716701545379891526127998490870978818920096212225025470620891900907458553281626980398276991744731147920544779456975688797104086005941483852248367132447135506592738724574328664476819804638527854492884350210375509088273302520728694150498097214816048072028641685012948112681885926008337679512125969397273155232637373541895488234440313940068975307282294372720742968578779229801089989091661712748658322080110442743173354779459450043022627424391583530478324152826710083817091077474101892039653030640387783469272442745514851031416055601742433646534424337227249670549028704555823816185073560562124459991742966147523898221380459951339934803502244696623405107679837258612975127396304635207460536155343699574655692743673598244919993115023595043871251003980735076048492452506952331463261724590301357589902426577826888689253477713914026895931308720061479274033701399234530258281984513188968540496955853530285356822362697200542261233349484593155782310635814428313555802711575327896971499773832192973095040891370228335221007722300679770517397186836488334296617203893706579347047854895010853659235862486768190645324018919041005327117053001144361511704392457501786745227557565469505179073644906343294628700420690444754384635731472944625030094574339859820083101165009292231051336624664787911781783925463659787403218315578096753331834402618148253916381944839419376341130562710030823265187971423948577632210228856069860097268256679335390602802440565636856263807403167045515248219098658861226121015449415506629687025814165989511020142654816505893241215564479422929805481865420647424814702248421644517975633943868322391476943816631069228279131982719970836746299310990422077013319754150707065722110836658479718126118565493213771629953099331976260923617427084470810772723930202441480391133647352090796149250862884623702252418130457176992537237770832387818901464945450459540881023542119883545962115016044035711575754579705570692780384440951255883221603788480037072959431612073434303358520944416342562898119356341214452728988010099719574376331077490025641700460499236251404350747848384197517040792281517259586333161688427889360167930136115980097153940597699060668272933256559535546264057132449318739114820585302005459924013631111697404342228000248112302599071478668257597096885348745543125830180737994451329259474057800288317551902056760482587622003160790884792121501503705444544598222377123930814743770033458197134801810719296475566134546617788583964645457436223426929689771208855472462131963729887821733144965170165491934247190901552623151657593888640868437088902575244997869666669608272469295999300557940591086514560064105923263951530380009657319592431441052842028724321077895340704137611795917782079453565323961149538760164482252303150414757013659343737922290652481346985740337326460248984748003419033826470768484644824257861841852410672666218713549160643872756501168727373914141455181768453744937176675916277563514191420139885044185035608393671264696878210905362898174894347863570827709780164528525530470074786459875953342757012422446131536285561898621887349699749936761087373238437280073325292971089611197012475836265217393105460150775227460681116149055074879797574948274208250736561318357902708389844616015987967446095136296146363491853745723020413029592778853490797168961730187965794456743958082516168586716990297623944011849563912235106001836895412926178629510156892653102100477415868381245591886388026574502701340945202338748255427700904958785372373082716383805148876023556452744594992607250963624766363715178331738619970749635716427642428536158359017390629683227671969775405265973664135888961217073655056679133603522022083113291491486277801444430756590944135264539255839716695200184757411743287704013995650454156129137081284961612330360392390505481833154007903901669767948678317601304458540550629200184379144548576168878997709096385220963243589634448898938370499707536530258693143240666352782160138157065200513810239445436498189326651001963948510249121632294548303737639649619024734339945353677331269897378391497927286185466960534951812957555086677874989244922090694268882250919092062467987073214286472566086073251531958890989157546818463372611998879084810274018229322356750255706776292814363022678758161494656244419423360291523946052333065271566275580353541943686608614106004522027049855468409038584851646554215403974838154854546541234371380337883960268420989786606488093245404005586267277183313538671158809076108281549319767625006536407530540690930642342742999629830262157056008250085727150508143952322893401793233902348396592311114941214022972375659398097273432553104324256618712729954794311169089623694188971491915732503121921624254771980301047290676965705884899206284525195444860786483588467918493388333190415444755613568382884193137513350332776043915838998496689598192993236392348410925928313828336129624263447695665185684445507901333766937781485123203585420893317852932075086749749898742937267112333602171184527138553715364963879204409629206421122442164835897104211657097377782595908443794739564774961108108877018445600306165267622791540808024864513169416094151474650268667075997157979815722661462120462873366206534848186908306589004906694859589311109263965038772228825048674504986608345645163272161460854742450753639610847799523683890124050651446910676885367665216832520817065235096221594965804302150895812126029361790931405284763937795808999049597419606795345580247204809682785194983297234081805954257453162356926135884926389424419216268537763914543151542609046910362549082057759632579042249472542291984378349340593909588446384739279504838385021223268805238350342650388560964127270791583963237729761527717177096133120843812201666210591086878191424742793790738090492023960255522260649309546581703652453559058534295776396076482761595858172938743566572562218176143120328167088656051043300454535777189706993469358519786660388416557350967065854551077749687536981963630658835438852264632867652856823556274161911213719863736922402316333515092088801244994558303277505495728248491986781500304469297219880695554381568757089668187802709660188575549194528720000790622952741357586797673609777521457008792282347399836149316421663646550418356168495835336322163852029952232965423054777324250424177192603311590283277106569076297748652165897298972326464152202119090112793738883131718678256915503589866012282624482909273092717767535604550350603135655729729067842158076524774713879173474597631884464204197785509712717596490677656634099728125000010057036264187946203766184222167073053561307136928759046935378191821615780438349531982119841095999268688598737163288757616993431020061261475576209059127879344209024960003281619564807134592009237748955228117421627901490524628039389566667916173433664513627395990064346272661665779470833179175301882546548652131149072722929804599768151193708897933968334769678080577904975902042203013274063666884132785049630314316515062673578537422519021958253674094883703720913316407607673208120665666847363237387960430690421395014243857348619288137959065857930850492251505222041418472454504107255225739444278889094656083943421581631598674680790718162184639120430968967092547473604463813052175513737201562950526916429388801459270068913493755136021124685861233764085517446841841271382842827762966638258435448753649652294303154972076002016931310080662392844666590578628382672527399859183243284826833395925839898053134718659230744241611369786578379387568330201751291607200650034072044722661379681137097429561524571740905423819716270597054224534583458488225957262267256303732722264687401796353120026354852715832445869908456417340013415392605534661950101848656591586088442270972240631637828220032475888358346572267214803294423883671434843536475496199456353065890955870339385194816625458995848176559409785298650266814790113074562379629237011484444305930013655454644195944013856221944044737719520441779674285761331021074160429713919864990699395269656277571039893692566788445472299777406044579162655459971092253040334642770755914392939933505240837127006426734530253951515018276321853533415972924630339126240416892174821266104787961544478159880810690799005294813156849211879069060928631428320305871870693940456604448365212510360664403241356345535451918545482072157058970776298741866330344014445379304059800958908420490015498350880959731369536293810705678673898047099766161107723026912408924904437840195027788652939082379825528453639007177351585731275910332035466228805019673860333680453956213064686754631612207487467950334917970684646090764302100551585367382949400952561199870565647656180382992150666212410225442495709257501077607557988413120243668740702957925569615964751712600050850949167181829248988889146943009537286884912855643908613430527329963261340997274559433282392434394013239608388553949993293580745826877549223436186239072469335841026134978790809019031847487759261757778208680996196641397138020620899833499354590403756767334490080819234882168571973091121293796966326931869647466716331735810213192453651059892774406138841203957407636412731645158002300115118249544705696805303727008986826736046213191030779407636568688813299462059403140859471930745468957402346457307227038741227690766772803416981523787527693945382997492169856338359301988035173393972853331426436615435987370729857305853812913624766445969970594903345393080656860529806070138670812351617592096058810681569528953422610863040495151437544951803125995818136857668672048588338651985424015810516140558416037181956661384121657284832427536754686957091595530025937725600698974998376190248836429961317100185883509354071691877890017268145496679780711847586601287684149876956434463698202978375498888191296541567842261726098818446842432814214374662899006091802142881395225898438030785195515659466071386324135706495111354766207039732330133760636886258446510927913543830926823117812986006885271906297014457747807408211183714560467965236820001867262394347909925834292729664608440570969587263182499522713891481381399746362239374701893762677968769838223332248850854790328163879332257548338949072974778726435061017038985507256682420146766630361897754717894500258397589662082905609957802431306085505845923550841281187537968317523205965098199989787947347391497767025689980617756612017989691705041598517125416448855382261422401112382528078736052535289821559299028121414929965117705659015942900948558955263918359426370393119388590155740877851739298770505373359589379755110850663621839871059062251068833942007405528462120202120920983607852148677914129792604779488548056427630624576167550501256416745735973487776209907327931553554590835636909203804149392680948925368179239859502898794644315049065194642942921320609056734125015998853081147672533557434949064952042953278808985272633122907053573886119090505109384007214133608325673263591344744286620575345608788242250556680456655629998111968287505401992155548141974303878897115027612764542989742021578324025373448236247107968303524689273886604702764469875922912887674809007086118885594348538254409560846352585781074854782187732264621924234166619663741831520594857204715686878599335510895401657514800304705268210193448027565934575504374934371824188481280443800585143887499223903359007660650505559844965533388298985718116319538456208769791574196593706763678770938469482009110002868452204067901083521195014678521108906719427425233689843669905094897055894376270540046643702558379234608505801135328938027268611009284142104565585184626709504909844306942389072561792973810639544217045657095789494183627473980436368929423531282562560184188250408899991129575122535394937507590162188573789167604067645717485372972158653051768521593559821462737331718608600384545598352083719346921095100412230708791706012032512093228662344980669737602837325018419739577140939669172400052303547385977665584426628362665992139046496552802056944595218682182508603285700469035595859243452360606293948650831202819448449735493248607476981793577272592595386312125178775512698162639672480900848423794641279867543031880395231589451805909505376318571412184814761956789089157222766427216369199357530948817206089911822096694166600663944012693428031320283669069983030176938082507875013100169235692919187394028725573889182500180905895947383125173633864049819565708387570566143931315758308682338143806419759210884607977300633069251749472755986217618284932090014069970222444815285637163375535091005993779211516652422907890924892110654191358807424362889590122712860929023219718130253111921517109997409846693172182737803655664504603131897872404378299135659827443065123306165775435382105482503003110508439616799959060586915682372595340416628714599972958611448884557238764704427008394807522815070213240005162252063343151235154927926882087326762970315929484837654298280119039682790416644034881004964951107412666018121947740122411258134154774376829705517707334726545250458097757132611597144165889000475087261261203168723886181954155138451950242645779689290759702134199270626912194290895239973371941043514431022724068706198496870195752711962457156524499181111325471494705049689007526285434601064956489876488185802498155012510311092976664970513683592549895330346704889958271222309894196496541921644622466132391333148634664306535052479273135831943459424764261968006290528304691852175360994952062593420208972925368245693275062451424548432298594652709895577798821261437933423407214118439535877252724086988999938587422955985543151991510106087144447007368812370944989551889455431343543525953408505906735691544239019667023508089466263026905583882205085422382476935240848061816042404528463173557241693921145304329892417805309663727718051828970146739636003660900681067199399063226361603839056145259739742103229393215303318455823538917920501494327584190838590840294075979235002803937497677486171737918226605402532920169611342901556551891061203649868301685678789323921490628013736593521291099021555404725684684366242600935159282441532286258220325877021184571377477998945531838316326104756537724198492887421825588486858545784432406605470932865130065790794471109100719028961856460864457665028185019238006040103572849209351324643520433379582286654828256080720692982885508999509049677519851365373244345011675884149796909833371129154815766734983195056431168761064407021682745355630796024017171786361452213413971108044133917429629548298788922385371911829784945756601357964759585298126955645940109723514786976864363177890517198675954136768764078994261213262360666772937570120435752498922286057929592998630787187881296159000882161353535759320007703714022483355170724729199010271780177680657129893101010846288769146074560858329064265018893714620291102503956990382603996191778438327037821704679166192738560308685697279528340666581999740367121073349254816523517732306495056534300924674391907545443671837039842217439122605218752136403383328548174244177987441221564466649178881164183661448768163451121984130703280888585977455095701496272776162445732092142343910737669208365070458048884358640181488678358596958475672525132148864389205368620890305096486391764872340738573172126921758197222193970089704991161759463924538229842689871252817172694842385891774783952270149031746682750047705869513749185531858105044754197713775274025535884066775423461617281955318712585442518310966841771014894204890714649416950783968275941255958855540293994800220857667293266118015370322802689735881490412031328690450751395286085418650482618668842396874577363052554320357503366996065271515688090947840380969079487731446755663742976552934572012922648448792544304314509510348509445826848640361079654316647969852494353017773044988025452335024379272031082473583438535552463493868983506652873616967434744665923944895255780210112860328755636964497358180222453213784692946873875108423200998236405015367701804855558529314553311259336523441363348792015590986067719546624529142721637103806581464904873116306473176251221844696629899969848065398460156286891578029654212973236477652476878615055213060110851822064422618110519116512173685502985893097782836767745439345877227902126156593294389761629917376362305445479994671960229379708786754088397568043495618083313069794777411046452116187968990378359928961160234689171518986177363558870278072132586894424247141761121785359366071326804934659883215959405935669451360989114404794173436634473280200391428053092943717344316644177038126065745007961333297068561427808641644005927405953843632281576434823930745880759230921264286041022769436597707968698468135882425773412646012145809759895960805927323435657953213398955844064713270014009402682155404431002873297345997662625203651514257201440945466255983762680091077297512499713199394627927681951151970741310069158767541556294838060905270443290475318726604157713642039395466454386293014488521517014558840369681690883164335613406783577477276865112957598351633120478873331805749136990849965140365590221253451670975269007824398225617627317038203024075294941480953928883364069996381211501103650688978737651253127861180440915667421411679695483361343247985196145575661350171462344480688281065876956488720880757477100786366315729548964283909610865307890538577511738951708120076015846332110502619704528259477383415941283926674843110690822332616148306208540524028704663784097081489756952073306386928924472142192859596298089209052740546198890993400662940670840578200950764076494870363060656944098678869508988209742467491324043684319853540725948424975820990968532145356211764594102433359570318927225158023763338681406913537199659827121528544896765235600537434444691332406107828843506997425337832680795256950760979865880096159733992361476650193203995073075148586962064276299311509920839693607226553746776203235941358174298936283086614577415216313400662376623008493000051466667564953293708457844500957843676426025920120066990253052020096127531407614841118904514391839377341404496071960166133651914854376424783327021876954814798494143602921317163109998297983152218861853572799974777852881375863860856673936353071094393367041850997754881510193267523232802192859657797973244027406656255679930500679860160231118375314943304567877589912131978398049917792305537636065009945547312751791042611181079203945379999433254688478477930999749606407975002162110682315934729597421258279446633727891649521948048722668798975697152580805373179599616583968593322157176138482409247171786498836575732238355914977698920063133321059538366393537269544687275536401242828095475681987751923651530252206429412786929361976732436945419767376748504602922878848512975269510631831153544683945193341702099042963676676824791703455285157508212837035258934349970527531787119074978399942441013053965993866774012553077579879484585690493824762751420662462124910070742469698178274593281805532223519518477399750902511363047424308349228090485715661458853817788542820105279769617702463628009165092792480260595438271108603538398220361519822694668680397672731468971061263601203122942316836545358347823938414904154912411096949548238432812726593537633641604910186728670102107151266166629262955472970328638950664361970250225659709989711338592564760981861254303973222386950366190591977051955105143018000717778792273481485854942464100842952965941727383970094370821266286150631525462772163058560714401033820213324750196871069432165961190208170323838782605383948178913916736067140209970797729534165735947398326931454780349923925562019889230301180678544120326969510381817783950076173403021788899356170059371551986635346491742412217415519004237214141166381757160836849360212106367550464088955665585753293894490391829066716907813887115565261708892700206988784177703078601247932918432512581424633418054989971420260704636097437762207036930493591154385113111721074569908860525367645706873261239541176540129731464725171283291749359290160260059602831339093180916388823716203125592015302101049887897361713082156233901922952681930809111987069666771367261382442095238868232969614243928011373566250555447495692696405697936012827590488551926487375054894777210072609591851239461473170577532590385916418304821241066870092692002988806113937657178348309865832182824041606606796366481103269762664549803127398421585022458857387925943326386001248183538117023608453933419999290995988703726207674497135722943966770322671286494369796978225140395968772212841169193519285127702236314472328871687394879713010183526521460130457724272774680139595300214337192657934772271586128688549353030959875934164663041562565385787148330690249453408654173686603476506868976085463201025457488065340449240549292366905830489169572296880419923679491773200444056868844296051252375471144876284100227709841132132659668487511401044616450388520727394052644740587308748955262804565947708200397372079089134405882715022978572179976688699742677222654629871589759261624173059855128536619291587580050875698306533952395077716972585348509250482253306168477006211790032370287998576225693991372555965245173111734985699162387531203295939575256739976209033866582410816467915485136610309152815245271867208626552176496443136350215712461734981524002499039341648449357393089262235969203336216289151344128441366225669343846346357791448053552273677971323387262004042430700327754728791290221933495801756378874449826844025333212975562618884700454178408831735589558111531196986061365019818196560512488759576054566343117055479975927835842643912838783577377337056905182936934915469012491325374071265316461574524914618852688214350568740823260098891760436521103885819213735276974389435405516011178174476005220163543726649981453501445503035649612566595990955482139311260480726729555022719580953954324829033529588839933038336219093651325183824748769993831933095167400987528584857952255038409865180083251840964686832008915982964439756476549476584824513357676242661396684730464170636419375949877724732139375882506789956218901416427019717541168393179582774942574064214221799294621608688643186708254798986437782547174895822922806360133016788241407195328250540695647187194821768385889498889959489745169174603803423513743700963072620950120000752830143717948625484001025240899381712700112418513532738821419147691765623176123238334577355032059213559388804438289590632919132398029767089805752860406370778972119442715807810287341244692520014228096141224375911422178650467929141550768142526410451680509653880014095481452238030959585524567118553100422804801960243619234116559334162597806538068481013539838917972401092441202965028886185768024526429654374788955398292398512699386212335936984116709700349981935096637421177298150307254271574377184897936300867772276357580479306682429212234814237407505891739788800595929387392861350831245041628287649901486988053872459685478498086324432031535512497574460261020478840433758415804333020540073988201707882445506704915693234451808369725709427546719648745020738191616074354374109909452810841944192358646576430842931162855561358308077968217520292706071111238327775691286688949946979103056045404295633146100746469960095281874234096831699294427397500862153570756413579262012001686574815876351318448959101662000552762051883735963096778435864861694581165625221288185694322692007479751475597713895356959945234169683538551515633164460588157310430754063517824994822570610613425733898469979121215223107147649281490848825868844294581385060019134034597857284933179560573245222167163768943856330068797871980522422678259396862210437854366898481719197224119526004319938534851607678530131051425553540577445013739145687681071601392029254843836674227435951998615745265677645970662714655521569552481686941483307379267860128190590655330185212988847586044365637578463749218236671187914959720438530005208793969025883417017951636783513276214021579301690946596464053139861382494211152843054712824066909827125520575282801818638437823145226433740940804857347268191765180496761304030876378423187892257486062791465017491003709167657320447038002991019715737925473554734195308553310797240624447852160903155639547967315769966260013157602485495447517306507962475653260712577983373554434580112762046922764014781368391514964075575677736999240104112913347175262182497188898677280308853438070334831509074932675961473558987494755948943266166684270210728513302421411691337041106113471656664364913902749134208784423229576693273150924067176347606123268533171830865901620477133355519277752051268406081247733506915112833640734251158840252279348960715586023846518368756383561034421697271158958895625043332103490425720334038917007633385735859442234526202794417717478522840725905942494165114749304031916081943684958423646444633870863209886945709469292762960258332528266865513107218845805371253256152158319197011853924872047996468680727707574305756866485367518159867125403608071935727844586233768437338965303047308684990867503189295282659547777075094749116030658678058364919835482378585269735976546670472081770779110249990427027078408384350805645225469977064193850574190646390804918230884361434459449872893212068786918585388938098614451801501096674537640033736246053342227419893860463726551555591970195785708744869209049190447691170938490428816705758602217227768567784303542170192962685311703254606872201303099437086638051480211329831468002535968879249400302030204260001134544342778930918096827283465566509667195856765143632454304545367154783314802963634843420516971344211712232448030585984193342396569759499509236277957390065894246966817335288256105993962570340405668444051914335682413786364569458888747966821722117123674721735457365311191069113904325948147736953570391806088055542333700437749773830680414294195806613841497263532534961748547764364101103376778980166926640224518205506070662655169937830768800263362872751332033423219543044442180430862389320981026212759291817741296662619696081788259561038408791655234284349697252651024153304988037492739701389648948851487972981178169701000836368486448609131179760136336229845607515027645343982777014886978680182059179610312954157088299625494394718264843950715175198382441869712399720132140329740801458253025958233447397329206415903172836882740141101259783852384370867971244022241573124417712222677205539123389731025306474769682824219901095134053154113963690286441185036223185941476875143408163498215589719346789415518794822033078640789153798730426679594092434879219813042036676366207309209232061432933000144979104784817705392972195146817491588304168943195121449971378323886045492539856938288905424461502843619463608271011779057542341472281090268988981598418592502829097761609680105736224029771201361540484880633328930813811881188542820341193197781139977052298050877351557255037556550522450072195751928180084454273634613336506553196386457281559350734726460790324818513025057225397486786746146123739359777645459314011051536161114483564461719586696875747801080912950103884681973951325342700698074601168177300303779507624185472686288865149475535362792313037678380556329243286454787649525556498783095953495410912462583094600011152489496699045253978156133335431584748420229950056212009370091588673358348703079620143982976525807429354436410896439300315492200927312759672166746441102660978648299668104951830134742637077326183663633071571080899628703444654998161039976894424422934699309751422677156020662578922698986116481124532589709466399681201803740236545949797405698772708743680664208057152970876977853057163762942083847736166378924716649440463565628575012133761096284672424459779450546988977922309863326393424459965164321362226023305975276374531163280637066811034525679055976334119899833229696443735017073398071240812594583185400120946699459584558186803704386021682258545795005942004070783037632456045760990502520296881648077033757710789241694857343730852652037979222028772004139328138483945198893233629703003789029596232388477630958308915822933237650539034023017944689107935002685853728009327161182412574899485301411848208308165789887399616430655888394285654271198558574274808001286284007802075409474871026761826234447304395330953851142985784880613794926787961712004900060274901554912666143912079341874191841973630762901282458973657407084055977590693597528558950081991799754600294698390823458042268428562102241783674194222472572402840837287675985251466286913809855546196980178369981194437939473161394328334216682042612942056322136059836031606856531444666715578901611752001404000301651858145392661448464947428249794439839113760143216907925689514923697233868378972742212724484031092518663434084843731941019687536382733215513515173545288212008800505222987816080145755656312106435671363125169204966117413688988743583067762272147731866797774342518029344168110268210435124708809357794636836736797938954437790967834600743429622203112443123953017483193753085325796235039404987473345843519162016625141876655710934036993407038004359181009610674376919459328911074554673615031312666126498062212132357093243640915254099309295301281945572765186593723726672062528512239683504348740462339849510458039661475377750034397442821367686747411037255873248166646222833842286226267103536645444401737821545470363315325986232572938589541375342256383017839474126290869795179133636838705823054699914087877040847588005027901917044157755585898330194329204348223710326878143686326172824170077610129602284815034100597495455194658146815634634630874483877415594162596089016656864161255277177990088552150887392161244447107506296600015950846395793788669983807402102366561643880098523014045439798541360396074794497253135179574076785019046161714782830521386387307080709122666554950216752074368165319091328115476969368387867106443342584986398364271396754883216282603131025255182021127436568391948456382620368442237953991640868965705402171170881060786417342965510680542894831065357964471567851544237495595059020630374780868924407468095727098280068364457994527819324366922462032905563692973232163463658383274298937299508847094908145375192826688726671864170546956055280112269808913729950123077707858952615197546652652478037711757323072206639821052982374232814842213582201151518985724070176785255188710335008317729175414992633261894620073786126313303164329364729008322589394093953257753808902759442073827424274978208163094285578987363409157023849360416280566146395373295005671155474280650410389870079271491171082342608850185315918962224372406268981492852599756771630403246181749109460124683924071944467793142119574430236821131631280875355172263012358086956970129704847228166749818713325650284603541368256565998581823689472707897586228098677143049597549035324185855473944217111739615253418616270341427820967126696731790941187191618138978266699223447014465090389079374801953686210126040027791712279752027660402049813627110268212058276464797220489528019100465073141908513418004746752828782504861064559709872441817221234713057532270040680143919944567140026357878977087434869510487985418925742011052888268463538102157080522717721489197932137940786207507538681084665735455645830468681467201945199625713151191805222187543307130662264105378640830279826123716655971743174299920160488465861424602656554746336098129631294667581075838162091880243192433277793398475808351651932138232981083749302600463369596051427112194228431022509553852686782107614139239241621528171274291136150831019057317462274616798573437608036915127206710386190718169827828731924129992147808849314374424875959538933625298973197359216063329152980491997824376107598083720646636771597115087672983924394849212875971387794583914366796871741474701524758705558625527136309533435928861048549461411217705663775526170186658300098306559121815325206054984455277920972633671707725540607355671734027473128133448774477153332721933528876235109159824820057096174673456874607797692385827835928340057518485259125058778401953017702831796081357662897012399393346651044229209751169527509419857209819610579660336246859962816117027649549541281905497261450043861872589026647372544234035428932012056271075206592916738079810077291364605272622962395232040581856617556596914264641880078120293161368898849871436390995172142900258582757150459049765631989316894280816489995619243335620281980306350199621342555041654010840726714620642436470712125089515786488321336402146401255020803775632919950747768156049517005985432655134275522243934412821999422023605098047616138948159954884088732889208710474586002631138365393876505257094547840747853353733118162534923699581897699636512766742569431657128422339708939342796002006478224537827712474853574296756058286118771953078949961600182997471578453070513447174750105221985107402424877046474641717391871423877867203794220409554344965472425848747243110907567290281247799932234545758539647409762886094825241442500447057941665100271656961027979142835205500693278896094585695001956123576858296098791511079747912133216189748801975407256448830345462896372380658842682628734851154663604319408506321429269211537726161435669872462929603644408827595615356446526041473612519662149359176231960907569624623917041437405877141152071021989906497249342191991869744738363118139476925007204851732324572723592131593193952124208540731227503793747976376022457817124171321122682832476941500846088650880671616971535525777747120612529751592557587227457508917484954801940744114089212068635562447582515413335139968801584715802073870249207423106096786252369976084072684779551073140672149344664448521607091507580147437397653215961919825655782224811492369703370492338887455717472590377161709565215773195092438020780527263106880299431658326833790136513031063849178444340447660589952439336143926939104425118544361507152591648693484377382220317362306144868040122993961994636393560241989588728628269095507823262771162943861272875734232304204524740211729920943217852787837068631706301739974481385569535284020339736648594943061681454588760910671726999788150444216806793141090440466464235484161283734134256573240205508421154794421256207058147202559295940964460332647901610691956412803697540999397439046147525165739077776011413557369657084228937639043727042979827667079241647636175877674027773423136373802410065328732125372074734548768050269008038924266903053013886764925027771301859960727003730531719981446053473794754468633028390227060614261746103903137453236063948072137235373726449404794373011168353255034621901038185234452612418611025740609597062622172352943233031730762876495060894224305899931821540227728740723098296578347276544544522151577916831923112600397743644895150494851021088834698609024123624778078544389781166699518157333865129311271105348541688687626404290592977740962031954497067203101495174492779498007949449024307624501464066359223152085625642039596858138125464597797543990222043704081824999243176790490477190951677572641940293245108500103022305389857967176635305593058033421582116378881104001864438642848145042224102636449278296059133616705205473575653825355128929592946966936301692747692839904752905296918537127662732172919188885254933648015664679477190700146655923351098862488801019602586682248845311444735561269303577401464437159549571575530228617962613245650766671104937319996557024596318365874871327444808069545741459395392614504340705698534149870814006231921389561241472569020638585152451793107230993335549537189602907106948972326418761719655093409334106883548770387095746561368054643101874392122086113331736232218045105985008060214975623721114007179994874248511887409094233944288934903533455410422522820158664470953186664584780863854893855502310152707151045479486459212154702441762092957616394401091562564407614761298002956484412226996127877778440066884926585373502693540486805096686956132418255927213520285292387585877754104213527242244298167081619552370286390427365392360092973671711950659426743131949215998159226055082032486528089460752782145617261193640920598484071778716517098559607650401583343853485692788987805542597831322677703358135712498051442824137444955611050186543731829694981614682318368009143168694982967459583834218236944131852461656096978267587084440958543858546469236469298907281102196524959742380200143035960422624552295725812497914739966179491528550601175033380277729897519549414840361428734502536727695619142295041983234767945874470059657163835068791797841193684513407077196215078877291064127786539461896662664512510197293923190515734873360394634593434085429449869397344327648077906800640915945791349990046130448912960581071448094075261540233518876648304407549689099965911576196593064812951240693592068897195762298160254294253596582131921124513290159412072424893162509369160464255244318101663535242203382695896689955919194487347474973084036272061023618040569129470377474168286823245640010509730504850675119904227856435133995550987318214390644021003125457001051918163226581076585732662892974802620861579448421659845258382640139117480080297607888927322810680596157052838399951284315423799798422519924795202948780684719011182502780164752232000402104946401432400117964656129597339123804572307201932146790622007802954062357714330565514627735825562269040965181568668447517122629459156587597387751920636921777093973836951364343853582227570322763022114540836495354287126397483233166526133435029175463566453882355969961754714147902560248844624040681186363245848789372380255649134911166022026106557595582400076875616753834011287535704286449052611135466442734579979915525125908638733231939248314460792225565143363652199364237512534284063301941792667651217157797739901432561441292290844167885522936131362422766106097749816631852219989734369879899072041554791836968537100069445178295864368441316466848285522145343667512629424689141065933060428403460821513173830031588886353687494682378997745939926574942265759799286325027598357683200737397903980963568857107219114738547803886186186600596554244838399539630846098265406158979416035419299993847462930655415160908366646580611933874989244073277277182676419966773173350301639977704655780364632478861313067636617848241534069451149569191229660015497415653917397266453878544049400222099069523019395324857527903482688476503153368214311175009794851408069007057753836394394689828637214879439540981570956127706596432711239336922935053557322896279538071147829844589807158557830437293965055889199536799598768876242391419105317694055061204419497290053169977259021218908791076480082757031709395091585335666189314009272870131985805919759082070763428192803676006180529733883095367670134928428606767314465290309246755437999731272926394439001214607624941775544570037937953307029432316403276882632895671669782858304118707018955155213369346334710385683220261429640781593746493980566640130054394656263507907760806690842444326972620636613364781723949434922141738376162923119051081989672017426341759612038899369215270913682347930657941113320242610661098420577624126803877400595451427244360326843448811013641432460643804794524260535164321190576015873641233380418237537612921094235793429626934588148657391854395859998745834911802880594665683324491429677607310760676879212751259596608717132503146597457994748083460234866754108802020446224794648293367793184370841187506405315670212375035684758160596256108509137853588886045987563851113295362411037881285633843228049046609306283983068742748396449013247540342933038142137985440220083612008056219147011879759283202654183758018200273847821525972849765179263150350511635526300853106948433842144108244857610008210741700247536471744441267799335701917891690477620088435625216377496121854175980756544244152243770738993681720421843423575956241558639990120509159674886017223284851479447993142787638648239611739038178283557075339883692778677424583781025204379545868778571080367492875890209251023902660129135139251277692347804745898718356424609783715472875559015523031942982182228204205682763711546999448607851302704384604031377763775577678392269854827472929085868798543840355225856443171858179713737347255212771871797609556198976519253800948862644588411031562648874374333064484346079869774468148815596819176534969972842000894425637090672938663078471289238757516532545070323283104234319294809773095420436637576836111627324069189703380673146311825059912954477187784785986796846152337879276705984789558473160949883946949929285407516805599147043620028303899174248896741115379806364640742262375465235680946026413779179680345930809447590674429906621580327467487556828847941057148463997597320111713047868532227257317362026356372736394972712401186344923075900665973146925384929597046359369656723204821126424002788584200389538646219007914698564441418703603223701171004626487574278828527388084902347932410661635921216536683302430201765267185989265875076421226606885601366878165713692197582977642226366673257966834176313461852495368133906833050756763814268644326320029913571635120464245827630256882792869186618577737803627306777855647110304501803754999231001301197412732248894470672612273810357144947396156963966282220078612943844933456942073331553341371019348956748591780827283134004354255578575504556110322348346626161143377186994130357006338104193960676655888730431973050503709785385522021726588876325873996480827454547558151489909665147182108545751549036964166364738442417132398336660050485613500224168506066950807505140848026660391502692827735042842839265484909896538946212900918024937498338342522815509420800703652634549421422703826269854054872729407208115728259048776098239007943255679740384713221707702217280544044506429803996940412060203451361814741633915404894381625254135570239022203164976548307280904765424979227744755071219556990049714539002387194090331174750928515319233643309715042532255069954247803904883981322503919558692950055768315756360381304401979139187513074809901024870352889263030152260012813262006758914382452146569904260271835669454955620573417420505330559832030030216730463598828381142327943668635602834981277908694419041800888073816268463841814817633100907421107282829647947033803280117424611616613354003159224922242865197787499962473205298277008637973792449758331705064421412475613355585950585167100384658650945180053690817281129014097778498832255122339356875032776995835546546394537756870292273300433998558575986462128825067024167709836052940622512727897683595061216311360826689120279277319891488652383329911465031705273952171994859615861381494025386153562675125500490686064020341147863222199307837660631560264999420558816725954501495482738271940481214648099218935054636128888921608549051165575424515150761796748473629392947674098575310408982717601553073371796530739845843330775132268356045853042699430008168258981134137873293157882960733311026600338601696339129942680312573406346635585030638139169905428487409840822841554488450656530111322214947863529036355385046227681422497708683647553468017483613627084841107516197774957314093247224393477145936084485576044975237945476139833567799195633982099928579730992645373307938870333110477960013113700098565191357267706894285798972348372636299026553698191013869089228389683855479790072851695104641488695462182921931453837732167964035624942900370889628598834622050583769481517033144592197660462085908171309306354426824868607699828728672977145532651639728266300488242955197575835082708037125026083213305209735897914978703067173174120893853392107228161685946867166983017213413220218473401597293046154898438655844997307120203152479787354721711986636060160639731952976636324227725500004878210722759679754209467260461172527203202338931013461242181480663092456227279720119260658557286018689690471115134758644488033174343636996648071669909260513556797605077426613338007859236549077815839986608332242911352661726002711341563159819956165246759941209923827168872516533607550095983042430822079146853057138215654288023704966327286853269937992339280196166522387731317626395960032226899085534096665858345142206312879845703996254225582938608131626840647212691219600107617507624134597000441462880458561728107025098737891215379906398397860633646259974302930506747261763530608443951026735641649776901969450880220528514670573402273489557313169583081474837337260031912389013169376837623760614977647682068924862389056270181096596819107156872024002745972079112263114347703712650328731010513762660570729353147512780244901072164985228852840972250970079943694534428950031412291599618187273809065085066717631956441087744602127297079895199537584756381561247095044427752909343187869359976249836675955390368767036506048726283861224592631113937267916466988819211451313972784724772041761058414133593007713813976732825161492915466422722265682094708884317853241856739867651554385800247124697940939599309420637400140013024197880689300372149923614427973136576806116112257015600909448747474307736030660227043761747901680160543117674034155109443281323469270105935149925613021021297653018043552515945375540152718437525611736302555322730278190682589561236658385592175298453850876429500198890097144882677633560240951653512473222262094623355302044202353276988623524276337463527512841485102850211356902039625511867348668542367369043070853181770416428097900973465373326226969068018874121779853352530001173666313439986617566179194591426214583647865397084140170700723430624211435047132689024296407825419619302215713741300626271065595897422303797731034278458661483245130640969629284922271528501581750061060372245095473522819442638147209661423401323154623783415323700017715890560456601187673178534478078218557638821137165581242037556795030753829519247211873081508195521959127335296681748098900083656187081698664331604350057920049386502373854198217321102829796288047284882122286073157567198745371822635903214055871083333389160823964520247609432489750089332029592503853242515275841699436877282454542725764767309991904766037495305241533701322376554261625213293047416155767000330154724284766518612186729934120961008591827545157684516478625536144712680583638099695621191668737296940733130486818069040661847936288785557723762936418596468598238969029666927096856291090352795351943824397752716584447109797873505250612519648134723272337292528024278597092455102768380743146238264075304207694291925465488468943198088505872466480406967255042284287950942185928795353542199651419615023870848303191009153763604621495264498688987069797998604541281888301922437474475127456663866676966438560932610281982135585500956173501847313099516084195638663723197554808926998499923398810893478993242164315424169674752106349839052167293874086326266113759315910216050018957182487094972933695014467482231706398654454683185649594682646488372150548842051000990718287358496446693727139970089971604663802082280108406557169184964554337799170004056270136888257822535117750534935445433688215121527244042671776385866718973848288078391046892195226582078287410062861761012957570179207744218392432896470919136291783433384359760777983020927053804112375855174162418003479506488510275373078187191636009202110832325807535617914616047723461878803924561218434790801759462050212452644441354725639747503985800160109117149602748397336946053358506781469600858351314767315903992639988931593727862791648826542166787428884642426003737430525610480457788511369611680645456768201090413056261945468196351216267923638149055119742619762196983975768654247881862548867410254208802045759471597009539050453388268176385630553142637923744239956771347393148064157162524279113511909302045604894684875368989892758793099839576333920091830670786896425540934007803464500587669434415842585740917822001872845318077934203149912990160449092129560564393779647665523463974484059524688830016743067506708972536690128765608330809392283315365014533300916120898396158660955114514479604046039837904275394231389584321017938477919961907670037602042137223895772590895801285677147669847029341630443767286491541206088280269267924262705350978632821275894182113383495239608410754220845112271507075089227082664980251964383533328275863494347141453338388971686599058872593196748474498903052206293662213886602819822778016206275468621243320752082632589680335435382326514927390802216664519876915495172997058320673288411393257430813172295378435027156588442020074052937869801103417272498341531518674112370747888178588307780454708239692029746978031147543402525954810027933129357644095491744597248372586885014237806986993493634720506427374525789295711783048916203859454319507894396360232835020203204464545572116942983678424172413330619613520124548197350410843904246072972161088933549840833975993394927142940258071200563075548721006602296852517037405150648305009735780100811306884857104744064872720638178088374262744077023506931554636443071116391422259240565703147244579854043347156084283114516383547277542249721480486897994222702050511849196417807660587171885378986251466558298803379046396425533362175330182888701131489105638162095005905132869087272025978534859812984602096676257287984273551325692993844672102428373632220789103195300020632369053035325219534541015806339137333601197521787226115770116718370217267177567072379443983042439563909658315081658479169316351104346059258088126008276232879098730860498577138542795094996962143902861791114325555974146349082568483937160347145691597323429798362801005938697000466366164044687573331366499934582422642219863976172352018741315294197546584421421291195504561631417218930551731300990524609859384754392693861677014676513881423865786621553675945766878124588777558351810100690855416164269008129023525415433292334426204166395759851244167963543859189253293863572527580645423452616446341990367120199493950617765509619938806279660262162965622860758303452371561581891208022583020346668112959638340186152561810019709369450816264500404615599188716973419335950223937390383953160669781404137529239786797686492796925869092610848427668335791167525425208670865575603442093888844584377284199153275693815177619469914899507214107608683440185063916614456063699018413467645238621266109733648399348579223699239661377471342319249694421419175008871561326883037820876487507303864047202230662795097981786760565685617063951077350321610396757836530947737597195876998025603208583713234364438361148074278808464130632278768692787127768126188758374446084513809279675521119549686934622040701138617852729073890963494443086011030158044995828199492267720699662343376985209909514617429250974390235109059007131150644146272893773601601458775270246720697648647657592203476615975740965192207349818397814481315486145892600977786956347518086605617117309281984517213088799669372971445454211940021236016597654898683817031070421934766126712634210811789298791238102685185700106893187544323653700684905705045924168546225554849763535194470084802436823289330723611518828043924733860758415320360755565140575519438476170824044875343451189403484800095386412614399668886733234953497127992059841237897099496397762420217913871081791373642747526264176522548796110652085024355252085731459549818905835255550343108016353673764661572535263962236346596987773843896923030025191942337158320211860849661294997452262045059591250692725102250048172122418677258683707439888605179709053117948259885965939753709130210334037554119286448970665130568926625018402831781442681497587471472637342383102567039418628728151179269767222228228564195010744301470534129840722623273892683501319181078740248825202176603609858192797638374957107046167640141188167609219582257857314218495199306538671305075098463549698957868247021836535880677878339027450427223044694498193506360176364059860617348430181457384515250695436128142118001195818141672416513911739792886986637682929054376806775372882873712140651904951338037239459898984937254426747515020747630176417597509457089136183175326766054122496370742225315677664109894027597683848255164267471617580292823179424047363257959868085850540071564829695554889561738424893495084715659823454689031769685761795706315388773148799346884706116340848162606813570038026581631404206346417963737701497756883693400365034522381709776136895101921421862522277713768552246168048484352562263222874488144322261735822594262107832540918511387250882340539897887403729477272636925740396915793509284662433105760562193839266389653017863816543428358073615769617456319012112802797031897205443818424697222809504280163843409364892765881711598131591903097343051780483424667063528682932790279977071608780180366506569709896528191259958310833908045644245062177273731457717617018835320209576979529445821741197414432852639098330846487056728432292042377341807620257752481995259138265891650186244966585358499949163796126709062862183939673596472795643233815968818742254730738252942845447678659271976853397256885537447633231172301907253043670171605508322729944010689634287696435205073824693939569265490013920516991453036791621399414859814218353861506497844336348791944231546849743978391720642001441785219762179386822740431263093368665217815216708626787442072042202109577891848039452044361167987886358179774879494914394526977674527611118921147194893886294579286424297213599381863731845879361415204461604379261342801786681379676147175939040533467944596193955389728574935507708929444013425128573260239337337264781287378909512887994934754841683293891026992196264796800536284620217843013035337892497570967745199720173527584057296141156360924436430438623582198278284153940269030802160053962370453248757698539195993177962704482817061555288947362161029003189770728091519973773453657401505461651273911472140743101810363612225245584415293908853109805008987228911760534638617711732887259752568005618983493382342935313540265986423046491337243621885906806107639275227914560359134061376110308037585868769459481302927376700266359045520415583741561537053970314500437357210121658611027615077759064682939263600336075859650293467341577661722866117945578551952552169234969183928482931016035149984615262350799188820310655453890176289115456890295678695310257858785240053100535826105879068932047362703710127394893823863323816157768629840806459325386195812902472627961427131257338174933656538521611265560851480603968200716583979899135619108601781456328504378828984083114802404150608056015177515857167780089601913971228410642504264951574428558206357527715021017104586836488206279280869057053496465926299582349912194160189209169327239427680690085649934513034839403483558831515492776522825112593433645850943710557712308769651047011874261959131795008227655649695383504491391980362699339066243454964874005661769773328405890763476498892210626299574320081325027392400271113288604438839346717301197431858258100724483089335365529078807158083467948813997577254421986920333391671481467640168842752190486112793011779064368165214454041849217304899274365343851684487217482967225819550150283518964282466954706493433178307716478063178121135765210968722087048155612866077800800586360150740769432443182155495937864203458462042628802497033123128261625049670689580308438849400136089862042047622588026017505308091610000862741015528997526422603968757239137878041580897932145795220162750324999928239795495785912722721776480095825030635324901691292558614164927789145595187730544270738308643990845170568799660471721359975448275052844477057546946042595961848879866683071203105577333713132992554888904859973866296281907820775160755544488176189977435755261029003508402055209271857425561926643570945077700623382482495986793549321712923522044727537252695046897244321691735565170361728667211084546170386133465761240789900085188587444419003057604632014101677838681369786405256407956557828231555844619557869156470216215740960049955006936264552636837431799137795711649857449338940748830783671170806930583914473687559432033776935353043828604643856101618219331621746869298023521247472336541965021718457187712181148117515599883021154447404800860696149977570562416810880105358088749937047939975382054933258468396129733195234455699746878451474842084193350260808814103738315995409349769498033098211421151536616352930950674437389619403112875852863993121697158983443337920855111696472989295233382722371100334326697879962059452924685213133391409858712463156625154816081143769880342238364735650971284886856693065313966062095506983418076153822901794181901774786359705876608086513574999997254096615336790234412101291075959300197506705716823450364783080089931832485022431594075635214286471516156179773044296243983273667927644823803767326479925678927263431399836928105261354094518440432813349529310627218854339948983260360821639022355474597151449256252256852090782467710552966425833612952980619041556850908866892025313656109714164392738559614570246156181197846625976207292772802105377318064516701207306413645195505332409460859600774728626126262755944216576395637915632249133151932229395827799277210935988345625606635525235617063073334816759479812658726931365835473273577474566937212425086992366685775193745582958134003474079729846904013875107420072702587907679802096761099134559482574249334986901961267768680004791951895132349029102257399204873909015059639038942242331813137450601602164117840002736130326377490401012430896959379547407011725858643616173648138681929708913183780223324639470189567631145452577767144951999204153878890888491934143758841885499919614177508268944035170450226715793602173451695935552299231651376257907035500102712756442981047181348035813303628198788207799615373316584523361971050896617432317214255890346287715777663106236216422743049713379141093806082493256159275125388732355408867768493480148729997236896832952023638972290936036649601502163556356195807881345543216029978447047177272180190614741792800306772051520801102429894585435783658153603773433977364323112227968769528091910963504752126104998844312324507729579572392818986444348690489137887670111523223953029598553796694820661993822178888432792943879301508078405699308121071236667352706598537420542397241969889026997031738872254213274533412892669119401008688519825274468202802809211831522596568226675695326359695580457630070405974697000515609209460720439469777421688156061624751047003954612404638942018787359363738238965990038653264804927101247274864418301642034731420045817990890828291411196423858359224247434310571067404556047102923630264817854761461076787119759061732321503019401644297599607543045136388788161996976614636999901303830698650234087895218456387088936063324501272754685542082990792994463591456628132430821648000744477439281972259762783826716198541063911761940926885509273912961967460639774231785299056311121326453316222428090325381026491443566495533442055343616074006893601219433537625948495630539977521987972761232235345814552952205876531176863534939992313586713605278410717400835443214438936927266569603678153346287884185145624487130353332485143800051036228062549886521796269404293618809329471052368770858858632023751354630362472566478851837260007909537940637065763871620848275380426453560141075463031207166281610043743526854319198216805080829708143575783595918146406160699652320050362462977916752155390561056997364316481375354404462346013528876543957175341977278895608121795507834318042018283963253896685103360825439629485926437282601121129376445102127981609107501941637226039455310106959475900617306578798202472984931619893183605570820194056526366706378236974006100971649782115333101326079213119433744624624214473865145792484151059386359844917752200376705233044686864089720610156053146342907402937764050186415369544684038054382723276394655594028070509965138247432833691871376132349185579831856723186642883250329955060215266393185737968769305758716941368371774097416361181856838482475996763441236736119108449380168253387524864011624545857251723666989247662713778783857360980721450811600167915914074144264517083978428931856298438071109069213702882673992826297029224337358077044358807705087265450864381772247281477643756032441550688000224318280870528725239633197826442694949272406191123437919727723105227275634565713019815726918009495720794713631315700729329378913362253948596944897872935460085507734876827143243868484159368895083779316456012932608087249374310086926524117738501002033338574127331185477879054745341214154316147485021510393731554743703702778505009529541296532897526567419775922174893967033641710323562148216613673974529620838735514913231090076571244992023858120683207525044355489138641055605098920940338055393538038940782211593305640254307454121708669251096300265807477286220154439891690758385480426226065545300115837915014596054681559619474573981791804081360233732494153439020441325167008261877755969781348051821842905763164816440909853407550443499340190616915253657543549830370406145857865464424809022548731533958521846834115370309810818100158628813282979116955308197180717508455769985463573414705361635095296813841660614222659930238180071321443270606025312484151521847322319634753016972845630586844783715310435055915795059680248840234982280285424012667975512248219749118063986880181767204477177841067576846358572508638843678100907652400840749553915488021570651557059929659057621028390741154221997152756047339172626063591391733719920673985741017904434807057455394806751463209122984311197201328851757170301175450440660785622407195847536740606241005704614500897113072457817916262741964182727157749619817672938251149810773259241504369891653590187808898306056930010783013507665686936798467223923175204664787560943909053046118011855017635888971666358320949334452513337412761164091666031568536835870620958381596245528611959802064090358472771738571099415594910115429226986168286966346005051861181195350811284735360019506536571804945137369966160668225208003323998122270248834424239347619136075267132985691974981107731977037176909399178264602184136190481874188492809798087331818603270631495629810224012585575637073548130168840984703864429099217651032294588528511394584410117828848134214532058881973883110619559063167421414763814109796314815202146596343486494734423647865050425248198567970046572189041754943756425716587598239324909534344643631721400763397446919789258102822992844565754898201470886180701137672974735158190406771297842311063030741154451761809203864421529263319693550268818999980015300393283738375541720204799459802121291163493739227185863580696691927254544432537009656982191493392776945091331939912990747156998674681235962469099076363138716152940671866777667637743032735419098275092578285557444040030261516500401801959755629311383136862930854198508570521144889630680695538660981388047221097142751436114046446302466115840178735130529884750211676637487003293095450882516840869282253174772130810092957084407127727580820601939122104815477483487203910213452952898834449584269953134689347832633994287956149351864292457257247200310126678826021247652691733157911028583552440609717626906586334829916223208481805840978227643732355231966939295293824801002406496677674428693018642623638844198330591016844569693179432664085593725823784882601152156577064382090308699984148841262327380461619966322478175987366203425613973438833141155957074486359199217859379056379376985572605908385530832633940257067669320415154539321549679020069097716911055788445860045134622837049897360473862072941041083136643666559944518797990503335064586354963528336660614183143547888479727456476000986571707859047175521022316010562673819549650673567487799783057849582569056190101182195754320182201584484352598897662117129315973886776094327032556622511399239589772529199015327995992759434323814100354770133407998141425338241648747589720457949123025221459108160411310597114194067900107702786407027293283398226842911716118846134552850618505427532816962132208918094883428018860374857370514211462185077707453647155982494876385254999601184936162900273962121677604374852942216088103288642131091478075605129446804310616082339806403678329358291355548319750596363721390327009258003341327120583153536068541846679274687964697633986232633713992745451803791992602666514234237002689608422023251361742894012176632010924416181897113350894255988340825669274994667039733440459732279638030334990609691136102488549152937204246484045203825993875035536886839399842691810604548142134881670921497980384021361998247538916747051364148287639392984064868271361454629390328667622790078288547259673413596554617714571800283297702316077757150013961718473063344606615793528309144368951301966372650919349189004544537652207311279120001968695733554805143002650140578173229245634319697036084376104800392488402495399431345687154152565834828702595429507033325211747454378493877158012743228347614721696583019882030157345316659674635929195429178367958322789303506186190921341602900490387925913747965224764438623100331730454801281816813636284545411306820929579139376172552659585989795479539043817973183004441536999495680049055719411685153281970947288297455903269568442945719837992505684205368039844875464573247905049487162460152515286394935523250492590925350770385264607468032379471183132212906871183567650191443867593575602529908151880418600752590266812573091934744034728751539498727152723533911417704814079403335254931283094403879130862784107661509550224465344473582935054415662298918981771416882974627552825236072733044228310533446305093349922374253741618136472791501248950318405760774862862427124416649655531816474133175094250681078558521235497727556974576112130796643259846456388858177680958287683938818099634830243797163347956545243741277889666499967661958317353639476635381911535701202138152086498991670923531960256846711020310044545418953052575286849285765076008923721168290032240286092330542323210325035840368223654839434203444329186633729191205703887912607378519035585083253814506770648919717400871663882877489420341013776367818503282573705320835765795013748363864412175996581229347604613571299541460718242948496260995031281692935714491499257823315515611543306324386492443700094117124541891003675152347606152121873359144125886439831726338714915868778171756632927563216884747484795323760219989133129115010422502849506159726771801206130968540043542699451918665014785820391190902623424030294399192689964365483865316460392207343042481001570072280187301153070823606351236185804746372406836951976030847311582671362336437453281622247507976873643656273905624400157462612126855106033047666335465312315090194270698100415079421992266814349204617875801588288829789379303544530914863381908881869165902297920952090763216386004413327107495183410460821325763307208468480647719335536316091521143518898846712137689043922943937168278380049431243135682713321803578825786867825355859514307571069360746128311978009346481100228528768857102156098852403757994018716776622401930281621822133404710964037905874403727205159721612964861350403811023072942772499147168832845132096430010866214893778994082230908330900825236488206950462810580994697420593043912536265774926912961700436911585059244236462239356419215872021453258718487864842973364637437816979296548406989258429119227785121880981144621494954519310812547510543445733320471833089891880528067567012624254854167873244758384241790437269171271836834616128928083993818604987455681884051792444950000230753305953289181962227943868662631667151271018540273824282503356642298951676203705413669583253774593102960502808563975953774918711938187244980562462098388290658337924146061732783854283578000509572909424058298795164755122181275762574268200204919983087860989558290971844667988037288622956080484023293385385306070201544854520737530097311249576322142442879796836411479791445359884325019926316040531598715739791310512701801159466864096093097339592145898854982038635145647634310465896124808535028965833169937431552983734829483881576269028218488702657383428851833453488136518024670145135633323431238048056154066964944972089219147614816338372212820240703410319569447370421628846201932051857259478826542482840505731210462274004962842921982576488613667426085113394923000631405649161632411334898076763958058820743683509958666192939578541079863758177504053172330481603449906875504946705949099645825016292550477985032477610649534731253290498192103343110427312269179711406657337148690953837092069931915852068046149487223589820002837069827875195867129006236563170237038250893924366879608904219629057124360495297531481828971562288964764620398724842362301359802226172470762640409201581215911294307859757327304620520608163923243947289667391401335304950897472397144812348610652506352150937291980899113174542073432110763468418849628926853769578269384386899816652684582746334735334900760201634431625709114470629810379054169625846856914906323043243030141970657962934696172863654141817774833640529112046464953792582233080256965145378926445581635179779996827346409465915659739046352190799025513279855829635637044475994203535294796436137367712970309853690675811492601165933910633291037675401551724695025367158940873579725676180151168081322948583804308487604350831663177240512639894048075811800503532926469036817565571936001724392962908859577178683217338695574849149042590290944087317986922108092672148506385718381490824540491009611593881498329861442442635056777968606815212433825952048424697323640937945056237766145298859602536802569044430237312302747084254677966934985247595904784169049991550697425731141544037698795513490990093257076499080874053973777825788516903159444957849144767664552757586622781450717531347301975189396289085891475493136908101389036116161272222043471965027359406299612274932209319876652269856384661931004096056974733791236163694540756239797139473976948812910092689300651470400866816364502965675685609218753394169322157750676695069467113445536729411549468983321317747995181032839960097628560022088574839330257125600515957504855693926058598328442649994777530189540177066743683071797621108782193151205191750579975036732020241269867567314293058626790482758186021191623004825996625737631899177242514326290580392854161651814612923797013818712337506164746772805415968277605301707599711963362803250390987430442240719908599309556665135508722302111253077872357776003994386969016945069539251728463476018559069704276843883652985216950594952121738543032702832043921125933700070013285532288848779462389204516013992310620354991704998346389220224732545887565914757708025085039849238617346852591351583991474662700227780681755222248958603812548163843878776415612257951792247904580094386607419141114877143578344426204611071902064181929458814261735349335426191593566848915808986317447933885235700090417775758136088832024491410009160850023711310546759428846089590073468353413514183206078112485414458768453054807588253168920438120878835858475863400650298827128893812367446427005984168652002008744180829896682145271260444479463568919345005532088669915438758476688948253757298721687480993303127512096615698295150510823710139676922317246752011513453195803309082249964392209655793891117685129054194056927540456612060714355825465354039451530127714969947836469196400142429118632640654969818973058479041692002490544202906994332008968086491170645197509271569203045211356606565348798255716489300367163049880392171208320632654896473316213199012123007885153660346517909148171858916514296287465936094419102998022463681983483417282464750888332583965613722863247541634633040193257024070812057653761471103014224374559057749781414099800215412429849254703992711020853718164813582022704254058011510709659363245583616990265291510684680766842781697343232966501718922497976221282812205976793318444503270019769615508757946782151650574971887421678701089958191936403741690112709495139906430978803425157250624010834699750859411565262418118079856192188880945628526162209533136781642905427612410700980912701769511546671267918915485033172287150023964362110888337632807570861716310337603242417761438894174667590884876575181271436431307015283275322107247137538093680498467009565542861151283800294909924414438333415173832202917984913853640775375530248984665783970444086877799572752985405983229381822597898710604019843146156063749574241939430462643339887542882418496203040169515280524084827359905446952233613710478458166049252165737647961906058732111206065902206642407789971973559887785089271890496179235413998848607002497979694225543102429306643093146172123779884276481877158739979544520323484160687806588540621205624991283142209101433325207145444117914301871697318550844204359368006691277967026281449735094732836998663853890513358983663914794561620092763056984634783053465959290622060050988974775602126549496391097817348673519560343137202959953772141039716026635763926496001677624518662592797954462325717068017135625457924278110781113285571759218555424058860094534062194816730463990146330932038026421834153370771899302046589896126209922175967637542470830407417014885269345999131861599857435293192141719560381496945851780261209135955018975511125453942102859651165684681168778193964213751638514264286496366572824977903924394078367853903501596720519512304488366931279165752967699870495668662527141502548199810281438774116438273548672451593900570716755573643737786745280640080714809740751796944040184630434961646458239219160740979564366617568769775847901964194183108729565043022048892793617406322529929188602225013098211583419505498691486594674147763205496192836343662877187194183509236758192104109872362548716379226914963632839186799437863081372684369697317958155349259204810678458632192646434527400635052652935124456179706477727421822372689577523083550946398801975513857423454101184539265306031196543671969758713715105457332880338589788609167538333480627054378633870115882205253364078616665930597719592734541804191477931601365621697336618288633033424240735512535264363867765826892713066325385057316281475019044480961272677951243923364052545181238389009218558978831777654265048293561610931307543076071445809085148331845192854625815212320341657311589714481201570113172717216962126433648715718730650419143614148194773560051627498809752918619959133337849181812172738714761445165021545206175805949065713862647318974918551343143438043766152502329593908429271887307728835995147600402156460538214152440209979961305006321381440048233196114757618693405636884596565119174052899707898585446277953968554745770602490260227123609843331812136366740929311208843280013307988134115537823122660790169089971787056588880831654608902631261056695876494288018690650440103605135899338344546276481388811457131203889981305195962735321479343302627891660716300778359501194080206822864326624017598814149327745847656214620632424114596387874751398022098443976940763979092356832420701784218437734076722626614060412574853035050559879395343510144981983314772929723087329632073357493855097884294460905163393020209868538933445811330099851155273545155100695818977580100107135832460454415442140120155099034281326495401924171423621467657351493723175718524996234488632020355861825668689204162533422034461863902897309192053333513254534810552817899928618967131803271235074644714037985456035090383450800270379340244375331341378191502317460269476061831634079979246339452687048784217763871631736127777829717150150779432746672499738164932111956939621234275947649494175183117167841323673478546863779531339572577551065054421140354480491339561652218446275183979486624331025169612367842303817829340780835622215336420879909069066534050966663797329619860666103929085350442653807666160713186139714311725857757294266163372093890294473450785746387104654403863977290166871984321242368468041469053391743714667630184828396810159875533794594569757384365888016456823913736551155001970568504606898900430750808026985272422686669881366010420192771641026564100460109788827897303899214745201603356477641111070134737978967944316394849322120663759282601861771012815479696207316009681403139114445705446662676667744546598938108070093267426955388221675203075542960145825737533379333490252188484789983906078340520440917307332645774492811094876989606358109731172733919717464023195141307637986472857531355810177438753270490935429554503115230468185283829746949798723062495370579677599816560259619515695509336468143767666244530609710680847298116781016058797889940628363534943355953438464625549483866131492360887440345886173189758266721114764460193858948142005985689013375540168310118664631976924329787256853318707580268496777657492682780157068166716567661189146400387356598705721460672456051128569711898093243562213948702375907479644234169915748440965133136089675745508869394416177433703632645229434229689093002804834617033484486463776293726798097417790783869640610669898020221611134969668498368050166109410144071128117273864081575471271352687558659784769930242417824114749327371328789192016405121584306528237791284006008879978243549495142254374982156075560694124420001495904393883358326275451825939285664760340120740552482294596648425845129787951520439726031958548660678572102095357283575022390124423778515359307854096163197031192658377530853645910124226595743106875450805142235406174169618020316079590707570133907740084124639648468769640917324038826928985005371051181687829338928724328884738463054572798513285993327541105024092377952254173107162700728383564023868617997153422464576511973565023827193436465734611575348060527723446481561610471449443683200271091851463711112030481646025062516687222174641543171000083877833537088281274830679763659295735519548117473905679965329007159395621365134382249381512146298193159418498557039674251671864001830861628183240452333667314662148557411330393335288431157118902403410140002991979953162959820504797739105976382117264965245521063068180916190321562956168801042952597513161267952710229233041993582237468481170409903003965799443265305018504381131282853343046683876641873916344747829355958754964092353719950978757036333331927456296156437057916042173706907046904316532748423265218326276155704910925656371985586047409675602090023476441035306025196211329971965947847925663239821811756761544733992283815689316648272811469818814956622427918131798747496060880133782910295029225146265993941503911877822912521490685678331660032878861069847581666401023029756766255550921398943102644521511641343019878490091637883686828310146491412007758232012621286594300620628638577465461628969080576345766537255569042247937690808367484765430196862478565390554801083525209827424200138599946466928413212535066466594487244634051435599767981671750642111685503294706111283430762336605602248266092361459970887077841529949713398187885892920339047278133788012982262790098713350206359783832647082071096445236118328580023386496699704789991193683778426619222334267622356115620750858381657048151656925117717223229043265465851977868600191455916873885375924221956467956239416375601981608707832591664312138162145617489788088497717180714208564383154706980612887466725170611306778551640828311100576970481926442131167746573505956533293562114369847131047446197630769314790149069533049283645608700787706997253343697245966950112674102819467468514501224317595820143746618251112712937057931356226954449138053448436536667986519531965416248511027260934601561696233375395545456977240224782943891593800906621565531906118435082096969113275408135843007651730313854820627682061932428317670914019839299834692777719110839448907445453929622213684047532668581473359929605016853537862917821998487016540979011215119265158144993933088937586300624752061558733792041927673049233775375713705100325422703440857326295754063544295895526471380160933392438291686047014214594094961985809958033520361628087637745084861351001880921448628316994741879155289978993765014415719578419062759751424367307960473221559954094837102056283201984048936650516772316310802501419524262007112077750221422358984844810234876743204669787642924353022342286716538132173909760691370169397171352928962447788990581687560147053418654139776308474769653806789575681111648049495949666175877705146812239164112758931961981188075807168640532825449430670078419649205502772933916011672267266655827233197790252894024672057724906303682449820005871639002632876069913710184490060581767373195551879944253321398332989349423700986823534845437319990761592069148602600106158816350807708543257631670943382422280118642345357991551704731145433521008850542734682476807400133993082872778501207588112707363221424235264244145481736346843642781581864314629630513417725433998965355158185853656377412474063547225041914206513573042592906491223894552173338171458596755793535658258061891173088978947744195615561385733931436743059211801221973627420872222540596815909015864283276229807586075201710526261693818118004865919111756014404229117074447241044963217168701776914916522717275740079025594000195544333573574613306332379451285584619855948621836980159074226998003027270341268412258555938023756004718884545971152350962703630072930782227095048319657301865058811391978052525945063107809683372639739126117639331164912686357238227832981631867156723715894022965349250720540127502746669917420019203099852948703544230756260496495207267736838216002124745261024609968892735373464266363527471290455888082156496099852079794121576433096295012144872120793609293233783771071064427836790724829495862116890932757782984357734907484618240608893319938530626158071298985482427989883054690349806364807519166844122326031431697528094244849994744419722553097841550342337921738039162150385777792748123000864468112789357309252504949300085779471721138383757807836341096263000871285238178316108517016926167728956994449270829289160585636892860815922266632248419523698867182827380817181039469886709616230303247891592383636093780436916787173140212104237235602863775948176252631265348306875018882501613342438135897072088854498565598617534827197696002885472695595867442280395667466538789470617789974634276600746160603519131806193805745526532784614835595025628636210629569707189688783451571958931233311107621375457838744481194454321877685026068743635213056815710523240449932645069219606741258250343696972142486257456522810804956088510881467353078517064862576199335430453035474651590201418471982959517105014267957200568082552239601607982306150625811908751503861449297897453278025388171262176856895478407924741067925338291480412601992817306821308628344853493643886179286055887838905996016226924942062645826252677203704366744375831337399981408375558733465499762228214179172817580310656314978641786538158932243503313612046697554794835541193423319024549702962002219924640368563964885351880107534721697959625961786769956412855418355270554556811509634561449293046287346316024495665236918972992461139371838693723799707747227006291868446773258536804979168847830712120484494555823152276920394964792134613235085656254846704497446737697310977192692702058215868150024268209507095395088782345647755004695048000585079762947921553673287168214336359678053649359572683615894678175972246384507454494144746107355866419624704631128483752442498394771659126371091560509387475643253914096822691424958390853107539564659426803107359479932194705218198960278545190445399122251378999591989336818869000386951032713771812464188573248280132686942866890564081072998113857431776027198954810828640064624684434490522801984842203178521782808627365872474517068658872059991762753171275310369631587605520660010239158432193539906577456062315609571227326004243027985845929676590956413495830556412392091539454284676496096316805801965625090066022707041058133381954467068939348073177580086586045687008305500212079957770983202649886718143659465219976513948888779438733213809031221282789579952145200679288859451894519647974413356153828843793176725001855148673903177756287362797883979102789365983861036431472571555842002645107131678259132367968200801453126578291025659219417317621851032650017304779923265805366262990223536735399089121154952758876839125148076710099242583702277937419290960177612397382226276761172627519049178516462523578081422645657724692316049330347368748062758468952266760692288920773375615076097649303985051706316364257116567283847249715190146550299709723121200062167805901027307114812817279866992808225488116926196507019504063291397383360359901079666523349646216204315219741145024097220879916019743145692095471684674616925155696067370076973829728535936992382861933468545787856147467208855408066536478936346081654815981510143575996791585355196131190942676728699144513018395735743912294690647277600903493208188690688824152922890419697971847098870926765397339575155917803305626254015987455433570609444413192593526899211166904665317627819749820286834592408485114736766970857948109870711665081896633630477055844842640791041892401675151220082926010369556140920184006013212317058502994525972347470880664127578044789840069850944184227515632625274540587932673917109891128762023243703406008533824177685217807662488045047122309201886161028871649020516874462930806254950128431197953365399420587092337340654967934869833219129850982792891032974685474962037329693571175806438810028817046828066449221524363864794458888112964901369397111231224285358485647836524171931041412527058908856603733486146099212828056620457329620654373552317544849192440549883850749546029277995261226401473217257702075281973314398852941292077815945019770296875243356603845251288528330401556437906178462106216734034771051601032838643904932830600377635292759615835704451316387446113403884792219809460463967862293775167356128380616334977478253285646885540374756530573030324598806132425912714207775904361763641974039743075487776004992601481883676366239366240850093160909371029762408236959793450330823544665038361386763975760840940528535432863543200207900446284848179926472580090894979360725648647758440772057040808955429694099541424334689258779599649086395707927498068753154243656586503330186353658529940156613543510080041179539384934037372303317805499314506039234008762795124260282214204724788797487360914745680423803813327121681504015154936121222186840076111740673697502413060409306267077353982656904315626847987923008270694236205202665106493175119523698775547272681520560283580993118859535178460498910011602810156539577476317898280525547694469351000133181152306956170907183832462576693408279706168696319813232715515451177104581511961273862592844310713543299669604124155325617639068847677366378519409292174907296040371174774149180487723035466638557114084453741204583918872990229665773154251117758467024198840225608275209899593041431490247268097551829761021358217768765020740190033688617176866357685572981430086432258916743566444105585602392424989283792408455253627778076308235038835933122888034904721604445639180705094004765093341695464091032736605920693915303113097799548387343510029097311136703931077936968347214894130802209497437056555974627829628980137184217816073885860658205940624522382922368107515138206657945878137995674063086967044005464189765737374108895777980522487877973097953559975819736577753035406662326410491424575475693997407654014279936498585899196279407151984478526455269787857680140035153984837761315507422008454891204437564316477883096724985949496669394400476673665818903943937459294764157091908214598810004316810222584743130917861049436956210809965957986356142106414456451095346083694497620022203181306632569756184916138565252540642407862637168984732408519989337937245777503919579475790686957464180126678116633343312172508795410165012381511273088045133347568410509447868825343168181933521033796225666887945091352839098698034643123637261721943802290269357767066434230758217060007786187565969442290564091847211078502224516298766844446568331693537969677898754618565362947891293597706764357146613723848745391289338536076481158556448025988246136794625347652551641705897779650373045705751253238416874497665429402031139372906337336388877617172444757344041725972469867706910935606574414602123797945220151707906974776609688040605758528642145862473747892360006424920163085323817590462209420953491187826449286457511142194326851357922987622582107397323906623840141494341312897209438102164065730691843637719028453248628876446026635694727268489840126178385573333749420331425546503532224832646636937369219813192314393412708358543886112458729215030916742581722456867140056757084268831869526311950390502769711859238529787772682764686838467083844613218318610417567387826329993973574507995480316421050982952642712025041370208450118825371177606574091108381411654236906532449423660832504602564457089810981278512460871836560383285111842955317442684826307588897569557686010163938708552221571898124045309041082181377719706249935203252944472087841223693206836263755308995825405451700369104355087636795853339024742201411496725193259541039978346997133761124505267308543039908738661271835039572973640614637170514784760842820156074137434633464320598186454993855772533117103310678290858927513655852301982940590829401433105599201807298919510653891901971954651298301220701818365672177658877425412181091762779730369834002742072659287455179697131528197138893334287862391241814049834000166114345519696173345918693105855977278622099992743824050089470430592210175814888617314747583212978843989629767997793603221972966361697514689793346810392299398310990676543244236002423948894406729739748356456224161742348790591059756764474381848111181390303091288961608525566391538170712114946633748427213687745192877793479918783985059302293387387943310901885274782998984527814520505410874628446133149323263043389932075370809715103035418209030307979532628984550525444013349787669706110390597580235991212568491664710003478005773758147968938761982154830507359204583314551636332411018975359484193174100097349956154007514997417179629731058457505129320887361194024144871634050607802760093626508246545418165871768530223154036681285042478468210625341365979098332089345629553522188944249544696039846032219591841794709626527516720132704225173250915714550396454244042355305483336598015105696503423521452180638029290813283430965682413813012184935440690053600238639750273741472185233042723013971209824133426212852839985412237499714009804255884220241242056642929068416883230747311348928130178495708992616898778709998063577610060867413765083737631301539303253959284806508860313413171109039000067344463701925249182010140901557506049745009312057130701785997622751168208594023520798782867110501734037639386902828614966200905142185197150998554369152239563272224371818722248640707909091170562662428074297785286239265608656253354472796888422800782470618654689894013575740188790144715175547923852019204686646118011785095567927679152253584799474363469448034224418408693311606393115992439874200487769713624657281409720802136132479583580656254324803617530064066554152223616994380480114090175124447377722430415853312555725939050276416317074817561140847070308460918690082041418683143042467068584226098907650403680705066108182508214335153634765403529369641884453906283389078922251755236650680217564607167607960775018513776946300309756906179142295151447341619170859310613455252962591074736218155418612601013215141326423213397121234168912698603097126521358104358146610592065544640523117699093764207107758054374429797065136512329058520994495354017421941301849937575425934951732108998718707698458011784997015040782450865300359796624827062582785347182937243347573970226503832584089128761398748735736947802230684700657065948604125180963569820774554439236537557478527332877405916178119047524951238730868441813225555164227141961078453902465760245945040766727142320431515048056229238224901851323100157598157000825414399374647999476399852683157573464984816294123442724285084833000721141017671861491098622599025827213838665230727882366626881953727421378947930271764746023676718760962710711307137584842716862661917747674874290528290401122015757353215767192979566373240689635746575477507339337771171145099588443645469083556610590446026018699114864622843703050384198537970623025230251002312640023199549892269290354695719371990959879917569236564358323892654877516415039041837677741521671520848298699663858619747736375623440995411824018004803458060366599234226320490704313843777863960848878526073441354113623238425829532236315821619237087652873384601194248884525482276239307810181285415907053969503208001420089321490595313177487157534788282857662123188085289914427383389603357591153161842701585639232223314933698009925658982932191199864952365380237067672081115932872080363117180280452814416865454222846499557285797168583224555524510936382689908459808255844886150585341883277117667792322603407846398859525101161908016321708380259624423313781679812520153476916684149712098261723777303914127722890451970513237749677323143373201160264229906169364675432615544613362055847124341689024739852837925970217459905016335517545125571898905391166263435739288105395408202224334927845012232786381593818541422605797977915591070775597690283094162576116755749920834775474877233207214986048093531620580865869740613298835056724871263345295760786204302233249266370858377110265208724150987094568970565228888836239469052076390187669718905710902888337704812129189235151746473522717335254074594729293971360320853693887431931343223640126278111157647070145535541146219599485020320157252777261431326806452750820624985237895400761770558769315772657866546486739011680706579648368216912382959063496473617415718053924768570195403096859875999826237525054415499260396442875378214579723828625144412020689451971628946915640541398895020983640051710030502386987841352043096245525696082638081887943570342024397434939011337363389982002491986810344564953948129071596758539430089231159535473827961847120761111933742622095898964723111406657057175294183810287683405148695650224197319159631050275921379019904467171753255105938917822072416661650310643798402178054527902616944799512770003314034879969357028816363020888050860480505460339171210520059088528634483305079512792797016326670211578627987882773434718815529156599716873985812178851906965218138844403215854851040803320233811634098651002039996642348343193807526461996077404005706853774124013108239441743733994277489696485533047013226517072781458810662614699769983290695197624942384132499911957146887997143709041504863620220117280819648260354566415412296222513254399786340839191088612969051408669307472020112902572164585323336001667934858036458333433345200753297298515336736553755303947834808947848572631029477884674731180417310509133008934575449962723528724507770142052890352371137524063038284074615431341626081872529652697355848590459487740476417366741854123605602588765636211148272961586971357852278792910428210475017224478100322127564140265660393773356469429791090858107365975522317511735512215005096732161319162686306874417384872317075673279336602958614133006375957306125903175448089846512679710113910781544294926906216213027387401264762578639176816566179730528716000644820819762942272368363480055294621526242944496013180117661661477109552308291703224616700045635659634296910883789027886370723267680120121313066952391172937593349332457922632574072006214600066999294298345641237148338484229081682931048721814232858215221732724088791726958630170099419528682388714104017224132092533788295643473608404000216516577185715797227388147451486543878260577136205062955818618800937327768700214717916931982859288306365181731036975969295466926182824400355522866112575435081963766616339494032171167617695169809715053811106537831932633975877838565824649151609405663738039873413318746745912746423616869097414702963298619048422376617840392625473556282236903029027428479689591750914336242261070133665956694001418483659477213111536460427508703266278557792102939529975876963070277601370926410477997932298205482325543363110154157274786167192282513493542464473329083077042395687960329944246379865664783911892720627577946631708324142442695005845553404721710780433277248466824827861062955668262051234309146465891787273522961510457985872384672084925103555143576097455474847659113819199844142554632205704804428839527004276093192034944640440994628012688382462119854386024301592654915093488310754768578765837628016158168207626651256548084174156752957650829792688948065898368727189330159036578810553370110358215856449816257275573468544997144196390834829756450236578135135035952905706161075992721465744742823805417018512208481044015071789622744253390932006187346375179746213608439240662347722938269335934248160335312586341384392315092191044609891872609015131921222843289407079569337798018580663710953558850310513321022888821782958242262197667799094133440216013184084593915181741703829509077277391182262068636544266941665996554957543903381598842676288057620736440066613263548865384158707752242119084400285424502565081395269978119382552571075502988188479746782907599183641162445388062535531985770432451269197454991474883172197202122096923963177820666062622487250914897524426689233441392221447757097855718911005512281129070488279660526513689277955676733242136151171185176711972171796969027200855052492213855144761222498905929573686608539126388885884275419119696270075995493407473637894529712530016261650196452868302151974283220543451049627194971563803259872901120823692998075649070078057597477131528809611130514596803226358871778373118205867664945637399712272284865775937107266287131537701976277010960862583799790479782416432972497576235598480977438989419279721692093439872105500952267937253750714050913979879997781348369110033299481759544353612785800562494387868578657320787112547719229874719710706923318449379935951773372790095265439987089303203338139551758879502837992274096064230567147796951945848800213791907467190603564092070407504933464135256473944685145173852695212712249050288272658272537275224706042552536637863349362866949007163006505886288740671435206018293092216184091097580227600867513405559310617148692492299812088963971146707778891640632517366053219746277568463722200944852525997225850098855705608547266401657545056846782671800981960656587066403882801381536878187338958248225834145000433654914436503886281734901856747484069929569455735381098308901375542925198576815295767727557199705213715431489941423247803200976711391969150295267257154575365642595505982989905897277716678651746559156569538670809153003453130964882039548844962168518090309003790413234724559674234106071810708486116628816293934334915569972588934542352690659863043627613115288601522032970190224746958443993474156847254508412079841161862592783671737921064706988391808785808752559694255268350241922727913839655980226188585212914924018336123269780102480882849013879044923728760765795068287455705068044169112532041773633315542988707384642034100339062741729479854162891483968253622579152540871272845630948672842060393517962945176926540538005057514837890372960855218360263501536756650893748020255056280076578332696239838629998069448005457726291925463753049787469146555598321823479204151579845351073580882871705568385975614658112592721973080753768572900551652163969164069927827914057642114299763389287628927567183041198290812775528377982915951809259678090795598275403249481623808052548071962602608941345584744629717430973324784619234691905295811498566312385244515041516314250095795115931859443634419010858155897358669254084431053799863057688026807198451012136248026277731369464879940246494715773033366898426890701449364341898050756838736091837789880389378926544969372551840436959847779516063240679830139584555500429315784619541741202295805534031248364329532692357785068725106664432005281075447221167932505103022098734076081196334929368769416674880874279747597187288375746726879980481729927655111855823708960833006637048752484850294732880701654510944647091025948280672988579482954655574291496000828570699498882240566309268824009623638289577922575320693225879636583123679520361820601714828092134776938032225267631617683902022134109502011277458912696887163273419889787264429443746764587802731892067643593554861449670980300957856368231508431506629336097728258828482738252894142725831090236362526177521020263859786386460909554919130986227277774182783701975090612427322271912195823344538666396432511967537110957996687689163345068274138957118664169784519756872340583674890963463207380362587319424287264893785598358396539958436264535850282218420005470144587159067514550341591965739787103128830251011509681393712455752712823203761547474739255710758559186698035710474941527346573221122719774892317785232089421905238753963060109595107546985507180332998470192651859070961374332811785352547866698639210583613327663583624523521205056338016519018566203536132917012361651497188951352856269493319755868928308895348828455863557007327156015009742458606276519360734443958260992166919223955694014521447626850565867082202642861558724554519264737802556975202229435813604497551316844590157648107395031263136418808729261851666433479369345557981464881366924725357345467307864102966342250687641022431345644426431416133088544356696510756370234368085299183088520056812157782872794339411686720341084194596292370296664655880518960992892769611917369006432331078790201151199523958152748831216966035404506035620942065132294485780530957643996402765434011143216390984560661813949808116086261203114201843956929255147342568117143342790853661707499645724325581671823748194047303254842974379817730528110643046644895349728877815966948882213314121551676506746574731069933399185595629743849220488799465138931723994597261164802925993886834367259040322496234155150881086211440781939898930343114303931580467699412555525327646952275039365927147307564102037852569576628239591702184339585739776903027028793441089346716333934334501370242690788398677822974582094728030040167268318052522032145067151376700004144737487787553129652360012798406371143526013214543965843705384707264697398205681686739461504847413549459774107152652536465199303330871273423434694433974199796418258410098840226095416598619972678582831891740304254376223635829840086098989139962374592944964134736992250512686411583764098602304112579602549584821186823562245629186664327758113770567303266576955693017242070714039344712539033309770394570970478456383435838263264951670263512451097415344802889839671956985815187983438021993788178184030154481207218169152197032039799196447191080877738437119507696108861372827294133564170116259546326262358648874074517768544634209384822123644361568055154014792166615010290421019401299516763607481260245639470816044071590471981146422329041686893215658204714963182630764220012197315189236508089465217775327626489333719865830061813042889147515512409594062821118891707938889390348634251929592050168628986452728568552390287048727714629636214966887235085252468985664069226010626124466587403399200972195836764019820696835518080358863072865612691276800513129599475910097354100467656217063995411403721261141134023833679213869545007136060366049210629541803378179139733575473682730276925793624389236301906767787976594135024870318440322890791719750464392038282281336424220035555173645361246570699937157855174596351178820600139968801754759436835471916083881659945784907894661927056680429783225104643205223135579302292409030464454968699047609671731519670822753726587034245127377137491556412625993290068360337986776738410982921459028884137316131636765449084788352788352027061214330310242821795797481591863791605086259539156615525137166376205136868378584003541914452533838135645081580642312853631867372250739955564750109949894618567522364618612946342524211256606867429100978426890873987994999323905252557581144115854369987309885794256382651404451470621250799234182479705953093395838364092282524506619582577355126035763870691016204605371090870020836416276156970956534807865948978775280378690683384443932174421469518658648842177656099160438707205745386351668961915226827764176405038143902538536010477452199857569379874599498183231353033082871463418461353015348313425047175188577869490536377516328349041596472536887250384338920415824778283028741376717719041322654860333090300883683425813678000494251568337443390379464408072948519656976697341187765115904788672331342102711652397472665420367071274638735009213630519200181029424203364104756266463312096098950254991299510666284916724811858010022494513301167465868430797020076541921264374382604352988639427936573281571614210124976983059168321074891382156489607579428350504441581144207925498383878966853169636270408059244739606063420156319219444152421818904187213079591851921436345323592957778337506996275475482891142538179924098564204422104236713980745124223018663619232530794626079572485459377131903176636251538493365935643212513373226928656337073211384827573231597058253044359487646307633031437221841153617970897082890763149695297215418809022567252832253276328282888293040313852992383980584562365554646155156936174103684076160683761735811630421347132229757142932208597818366310718799060381116560709714231132382396224776966165024023081818680330694256579611216141092142403031091003774050866380418960646541290892023191762457137469990334313116217799899431749098252147198530451326221464765131144319320382689561434495323927110138773394448221683621838598779470213593714063667653109231491878814221813102599993774637852860848662272073343330993597853247130915357052258278615710732376008524477452740304248409004931747656806498469236279594210173182401746358362462810059745792436991314232345999795504694659740591351850017111407617472691356024580801995431518700001923372544595755100127671097968560815128616180609213850942416121393978852575611136767646002956861269102732094512866771328013899358430210439748566357173370181173163108181916824693890721587677242437767853733944429265563549466513970239969991286627730195185775085544289615651550161876445453283412201459237448999224791256758046356028060832959624087599310351914668560819340467278859923260971990734620043928029549038270974659580566514809154734945870544933546896016192005585053154249805568017705923106418822154630134998924869863807107040086074310366226593291021244623376920511776003646174987123524443543247391805070363870531373118916390317685480795319891903077915473540948109121143492966241698186971179495263196573490735836755397548895369001824954168933306862012041660191119953988648841310531456136858725643461830922347637354936027562790308830680772581093038364939760034039613216191339998990086506481623998710028364767099609078342395456326328195472104939513922837912598560872267289326587972378355807281365438816640951648813804436407246874627196264357886603063768112911255152895900575924739183810908786298568815430993017261038472561585749738531082193598588646866044148967878622250331398075659721006169374628985139275221621042812416182724691137415969466234136144660215946431216125725941943853763084330161493124239903411820829900639783770613639619726595915277021129889780056052048193598882915856936603763748250206102782064077938253716510759990066742906479854862117031649045767168077316655771552564252698623831908584280024251364902735028891601075787918815720038497482501048518272725388685892092279968027903318588235736392353683307595055854654742364923479953568181840290447255311098336672448854662544629614665884367011644530801723583580819448511723340493562136274542970689366595836081105340805667920393018021428237022380083082831921563906604745782473607686344341760456019945180817031660358774160001376774506716524198623724410152797270642436591612786304883671871009506418799558148204237376524538902263316288540850296722664107463955395969827283159463407473385971924841229913710672516009688461928856570338896255516340716884558524599750038817557951882539492175537790442477563394115798388873207295360466966631241360308353290008047468302636037308313627052938623604280082542420540726886298470364606896581747184055931045793101706344248589770396664489787099323229655060497600715687146705274817121456149084891469917544965438776897661616196824678563166876887026788457000763795004021050684636527126777779584735258900928266970538526401467434969107930754862428931553128458371475351517907289395366519023254690894109992209997542920243822097382366146300355999287817229820165788986611173142375787672456738025015007416387084575785177081819920158149443756968552143331087269380966633237700601881092004107614980250633549957110312784496354525282822709923174488248068462446234232789234138596344717027127828582578761815029306439316657473912875561221389970727050480757499510805373150458875420998891981721947298704826867173843904327991203390095812278540743479300999450956633381730346920159402386190349039330093607196149491122521311151010338588063095098526229578491532994901168714475728229833458940259958371147029801364201177584975024023425655481372875373246948428257439724027812327626346771812517819385186197250566575873670190313976080732806258396324193076461689108020878248301620128932012288494840277439492903880135683006028084012254715515366054183336023315207869616290601254549866968035596338078933095974509595173806945337377554059630772547447662084459968648215845311318080549601270221616984524425030378315588026326185398799681220677573570963763560921874805304523877950585053293936752679356203919180656221445580277830875409408526141027068809082180306606555694780666256482817299835223298248907798837871305671025300576038627459245746012084005073385229936846795781207082770106588979405253209334418007041046271987985835985551585671814613787425224282105043736811422850767153265545566639225570037666497131732393311145993298999932413143415209939454765641123614211101749580937708897281571664442187115566490029863626519085751562594128711468413105104690794499935772350693769288896515562981912290313597182083063734784228408426105626178580102805829847337533836916609568649798935251490228367026601130028382801249375164922616015672153614829347704987190806616737470603830513725322820551713872855553430417578961291555885471409545787030226731482611041003229276199850808831518442089875822932198740733596117241440906966019738691687416414335460466159764891824486491366299519090528020719513043584191846550721370840590217723229258793718518895865110038584351406127466363299590463038562535847033042378452932617280681694754319685031456414615799663710286068185386537149865795780658023727650930788711500431765718636091410508210993148713122988577557103975046954087903667534734637428226039447096662177454396195257688966916724339200920615108049110766160434190971141849624453452210631299329057507632452030418539413512849928678426230865818787758810827820898507371160948163077812029560590132334043974709231168958293533693664750952182683671876710396381757496501111297903810696494430956100864317331245309025687135676373311027134766182407399620477098531950216749442337125960509269048295760271118716695075959779882016925714708610289528748721280838510050935855629652359807735505718594519022699034305786410697952633453414533218377158835239714646976397616920495157422510139850786366528731274456429481040319980079412340581872181159857331181125763614173148193516158998997731607611944653676391873352002617348129842514070024103193945991055445217729847937665335641909250471945331905289218110780432960068483282799488967348631766607815898325117299360106726839125983049211980985514436911617642298703108632370997592693365417478990585812988940186561201394429092384236403788518312543378636245495640286063211428394249597572041836137480559213975735596648977262223600850698326250223890161651568275781550071632026681277110630312125867550788418642470802843239989807752642310350363446876569523771081357678115784295171657557631919953133539957119709974573113288748500452056953651760198957995492767312104443431880210190260896571697425217642293490714201715926282974359488012746606402193956563476364879475108507341661846804489139675729518314471436879808994443192567582531525314913270020826552482767913733189904553960510159832965829133983256451574740465616906011360310650530127605409579625594690678462877038542623092248313457207332046853342775510769402465693669467063603930439855021101571313603463260448298728739834706164185827613300523146089944983287526647520592199763616184834001280218186040892828452551082990249387060276463280419960059687517313056026090800226823374064742959348880671164067369641332938217375788526025047172628588180727679723026297948784387952338285662838152018757893833468181903564169825043557576326105447588664202563795611083963088014440964382782352112818280137255596244587255480656124690736258378243239998857284907213818755930084861148715864465457032473661408824570615243576596176383414530603098521144751081870079258891495994895194924274913122115495880227911676629917893175219165936353375104806118073272797658513732078906219872254418629600194314392295067931994460936676558037097132826202116583440520503198820137669219807298084268095669056279110646632323993744805491891139080110276221039433567022848700054400806211717655332881494676371262416413537360614166438465923254394565219915229446324880193107211711684953746730024182371904073910366798959655450364404018803315497894840671048750404625972893733515763142634992750565209482854320727737279237902207313278064197578619579474252326197739625223680130584778366120405588715431916946621983449545156590669506406975172128625904929716412617712861083397833278931748932119267547582952628206025518121090490064307395671946699242171248133093729831289206319183570110046777518726125247171455585106488496456812400243004591162181357327854033233326785616926387298877518766113641744392309668893810030351431675718008036269371933258546705274376591821892862192366671500075396356656107542213107736371242325619923579081205380597228661572706777301047456527818653251327208800510297192530206735369438263209981691214475434635531037519283382531740168727781449233113892398857436207150538905438478737328925684450009630884690434404238736227166677353171901087155164237578668276519293306548088553304898081147137334524741606089502735228814437732708153260003915397670340149996973363765503703766911274804620522089703976028090495133827584464257050677470425768927572311627783036256008246146925906943699082723262261433203475585528052924068473878149722101794600183409514783543593617857406572850078135785343420567562339786567373606985231032652753609902389412523473378836463846259116835236491889465008183847243736310051634226097769095446925105891378692384891695882352462322602699263781988268722039779689763756704473850806149347629636992439612743312023503709363995244795693501412945355262235785451552002302253555652583890570190436396442861510634185850462359528198868171078564296585492970949455606005181148190180746649899136981415349755899377987447257429624338373564820173067873542295638676428464844258401338589460735290955602252697929610535039238707065431566068435918754434078453311236551337400447378459917256190229093636633947685884150233092807297220772013804685440769823135934026487276916339024753484986891326615408305692834437307092138291884569691442506215211681931138367717467396330402066151844021303171932998350483431402530952693390199729883291271742032528189967528326861132497076759377366243231410896348755774116339731166894381102153827130808874667656342460993449557508553382532543092978338282240587145972778604741320190988732224888518196257975682276739650317452738458494396130849638056511672595818249545382938321748129745011440054780618643377215002603947909982549485993528778497399276785140453586575748821885685211323829579279463925663992750985980429992103958702231501240654822455223381602918987447985562497987346433962711772973138445006336330940022927509654456022269415559080768780485081962886191047349781265547425363746701728320274264227620779538566781881154729513327048440184186536108849183054488040820639695137639584403647077480479822671866054967289189373678690814488656353125575264538643993523130983971542196282414694927105676972718489772514221570535456269935423445519724296598489416052113777116943565960402165048737322671451922356876292151875287103907172322432555141244744344866033174689359894414566402543397737977924825502031792064338084252503182198009167354801141240592912074791189041795658489445069805964627050793399018265389772535026692831856720163549269567301512461179000830306470313897722339162142666680284830047583589154225926004824946348540962477853302374273961270697346448372779466105585694148862859149107231467291996454421303184854735228330917833892530483767768709725730966962118110430812629145745894070610503089074586630815704173406498603266073482480619621279405571240316475704203737239099544074084670335198754988032573924638183765333223860053515993883288849817106088383126182798656993503643694022131035075579831299624100524733692714821095029396923568501163026596345268604151151686486627931776075942608551285372540079329388717265947412630223791211978653517922012499862993892437147938377651086753759626401742287311887076357426003083566997812778331743463172229019657775650820902897997970793578305733546261357190793797185895087413666867818551079101609988450402460362655348966714429375716655838890497630074226214652183596504640290907112902167495351020636709606824142826025347059532391590211749011844463541799796952775231997467348410827655703867717778098817211479477530648186397930224138439315845979178737795100370147389347518180021180220064192164829520488345087636374321905330155225153683540902166945969283087580772161496810180964415941838806052694654537847082586610549392937157518759878528803592903565583064525829987032084540732381453152703171777403391111604367556434229166464203079693595426912491590924547695135495050627746544289334055655877453366975568521606628695801275038618372677146517240660069420308943128404498656645782710590746705273589573437483459864756609151039271159069636698450385558347471267051328258117847087984167349331054140439473620505983617974433673358578902093226287913983080319034089394337820085457061939098750891052284437587570962485344756701356127492264513305603264738033353930831684221411625689163940389225918703880325977756448322963408090372779904105242775493579469298006260923638043984689559642614255905252035976533106351470180404650731703741511944966675690228121878007673122080362512123872084321711056154957011682989879822432062528680267758332963817120176711513086668498836723175912994317736638024098523834428956302686725682396955852602095411464542509470045574779393187523776078791579870773338767653751139933225243278954262101822247684578964214473143588157328505248704943566379722512184680634956906643472296876650992891880197058936849322981985184849640506637588523050312124864061093633806097376010783655061548104318704592906654420241717399837863573757979361307955308207355562197236057427011908032324470643859570379207425261985117238371751232043434760706417020682589301032889898936202705053958861193016113401352929581591081547725727166314566656337735372266682512852466074400340432167692611980009625949199414813032659525026304586987508929952632831181458913452717597843975567452075601381260488688495511208616325347613799566606651518169916396600214533281736755278661432939786139571994135930773334912902352729052683344367372550360944939985832974148547363081454331198503644282235231754377203101805442282719157373151111918779506276700183974456810387461984654723866518471426271098036712232676365044024475030102035097036451371664866744008303871866827810597697414285280148370427882910553631704154355211503423181875494999633831846010416926643411172999898260745216988022375054769676078455190399658992852094099439347396847051428529817520458963826867683471258767870365816917293096662349622504299175378857377245437706719646001403443732521951311246785260369247213829701722081596103463805148195361352709289303211403280482463820053310531210248625356244224156315677882872734616359968438316987169872314813422164166192995467842979238052610474028132958197163831852863931965484614418240369310780758290102571721964982376176721142671775084339381097556005509961561203774720966857305610403924802038930238380624680647610424425609651462660512784339570934787219769965921521102592030513390122736019428743738241701165430561547275650365325196915240938789785543153103064819104019349803484406040278949644336995390963973519037094674374377980083431463016594604769668978295887204184213849864780837960881579242363089059469611059579835009157728588909067763769063358118614977310451849388420222824981759305695211844937687469193989553324114439614294286519098219987114647499123166993087415612253600182349236476404740744490830583180629673405060080783000934479180399855188189829144063576385100007440326092687473840709670564951823743404113715029256951194731621896084468056804869852928904998829361808595070326999552225232738353779534491617206477196528769295554705730671768632956979433397327899068080664667709345341026684201919286270868548129221782813235880832962957336598306874809513425541555053759697898554195606426012306021126042409765512363774681188492694900256869281950006931047556154722299186123749450885361148583871140461060011928711673634773838039827227759784250377227811489159320136647344439470127433105597128053266473916356390480354087083818523106157170312768413493720380501443880949977264665054289366965500714190000263021780023293027402622103608003460561264236856930070602089535867954673758799744434018214903890465603341443725440343120898795936587325186879634995707873703156051062054506998408601412966310027394886655121776840717950970001417109052498047527839852576075176025857944333049956167187977320544419921865878923684772217335859680112768097596853202868985987901113448558822588888762105687595507176295889271059083371939469829055310021349527823866123769981919778009684202959653663224309829255212976279144907136070667013004100906691588706200360197995153233094350885300318651525844969592706127204690676392002040154081660595810662866616775053449292096886630039139902464001592058686306597171511996504350543547756450921307600581874742372021013261116841459493060022990206533792416006296646507377541252608762163541586766667202373888347583591863299075323488274445560616588790151278570657116524542568050721045781336411902080097135729580961582669302853460426142902449344878995845266681745459468651912701728874781547171669030370369079380199379078388630408314134272280649623283666047270616361337837171690787505779708637148561576423927850621341246233834535882878242518367577018823001774286454496286694026534833585860892969187370778391900516720492137898151275878786934552852221837838974882064248045494201853915798511628853375059644192833331636800598003442168555849796760751591307540299106720011352334956713919213126204425564039122089659356462460253665528631270546056198117195204138249408837828473566497372618243655407541309488104556383134336570341020585571210883231826700479644253719893276125178382360533031859909675374889224817136004369512609292158757243455741509774630046888043266828295781721010494851840491855649251794005767643633942277229170982527035298853220894072654209993867643038452438641006902234617479524257379482699635259203933259458281788197018437788736728399167052249149955668208771942499557779155027795909351738419434195603527494289991856214974010395217138441210062406222891998055903014519906977344269566535545674678160231573481848614113163780217548272157368406885229021533999932748256656706423946055670219082095423219043508913854950091590776446685742273099435050092510744087895643618469276345924794682943936473571491363491909254456821641312171196507858453374477061103385246012840430194577270105556653455976243612608238739473334308682061033242990815433920959341973454491711343261864209207768501681162096709824036356716064912286443985548948266223366559482742500624190840630623023977629628306387852891510332462529353280489284394197003356568293569043646910122731873265735738609791211463159708656785806993570804444871385967108291532384189912929490986438296504525585787938512919656588342143876401312493314969545710825470843184611483159495562217615216811660121515112533561438664703962306487746307080051943279726637037650763206569674461120518236134450065248920781717851318879901411648010912018843606891920267481324463897377066690187204364419972690049876487186159684869617462256662315716501510108331291563356950079378394825519581687615779041771881143623947189209905969514349198660277866890839848451849083102011606954848429326909834131395403145953818952077738506083919839719082947451180817610968729657698356406474272921538127427739595708237829464312553216266388643846840469228975214423950893073464590624614774925567807323849469871774622512994608653362482062354823517399823098192941512790679985334517307391351324522569187735372058955374069132911004475174688911481593263889342264302903072466038144112724111311432534914612540561169003583961178204189120239056366658877522242603285180396090137027655946109561218351029389673437471232021809047273983575241401309206526731096633937694705476054166776322531807259319655852908936585744848024848396884668136235044500852135334484364896789413260599706998607710587784117669654618096558627070828798966681394889850773890934316002630756865626546923101294370324291976298713621676480829270379296263627507637652925008536829707067326131889679635325223078394613591004101354153701237187696811361329129720120299271544501825425624147626474682503990225565974934976038836950885984567441300090744172378391136923148381675304466518998630151991338042251812660254802464825425708450964101748518473812045103131572149584723907554629575125689882617326210709948566616203179683695024017388934812102000023475931848341107889952388169887334276665260641813265369537178775880911003383187228321960453146943053523213344511791076604270195831370677563076501318007376045755191153781816301814621590809561935233457128008372763028364443436805555569540581095037272277163809206334014361160485713538325766055564276732261696862642022557160599402790775999883675119583971357009678316785934389660644835212549375363740374166282691427432296950202461850303250611289713801954899000001715812609214153605476501329720840602678116415734086755779139171028378463767795382778001750398638376539745350597570292005668240017044972164256712350240139913984751727411003979123621138434919516518190910461437678052917645237897409027901724984322316230931354608331813057341709952051435255578453051068169346098638589666845266630801036183782199340486404528055417392450929501420377808801551085363701983251938886412970969458614756173447250788561554909746845085880500280601954031134909400153379012587273485855774885047149668116562153349801623762481689773220216996006935844960585430995097860153462000577147417425376912214945881200233920478615911625079139301271477441207135376224976499624656968871446278774972424500938960847056341160863962959575269960171033847157735583089871547112774167939595122239105666001203980766890150662209339139011077693287984596607668885121410204794680978367875227738436182454392439174359667695429388608945691165636323332259101296866536623484010769978203941154229442648062436589140669739389376146003997462709088177704050537693900021789431863183977810115804846740169796465078476134162329637513957523206644800576470403406464690266904303935124137816293680992844361159667733069687737207809108587788684152704782477673583810983633903120379869637352389041227188336147293660179658768889473979327297242112139508098788703645188518943725070555265763963047636518626674544375115745794477052513926374875140646377083402881424415546475875140097137116690275321666991956973578572697124702558999273563961611709848269814700630534728902187724484827334279841652355445348413113232851655729983908238065329940585350129575618042965537045437530430941663235938442998136617761092937322578730925519278987852262006980573569000577754308057663273502004527131293301097860742682899125031066790883069080907747347954507661359687805822313355925248616108609539674687276645297721450047694250100485931700923409394262182597557140210603775629004543084700821456794156911470350361750980586956085359492505251651798637856906220919293183883729085081529872111119145086403490442258207526747086835685360239704716268142925580356537841380044530872164715866065254794927249207538880864528232809299871951715752109615273491282854848809792457325847689209325139990084150762059287435338297478526995588461612053515856614000583832509102782588099183837731083935533975082889613034453565287821739198763959075923081585285636769470695904869715320860013775365051935879072733451098605621641415469199113163325925112295319663260902810232635881368018736038380533319813815133512825131466258965354435432333169827354438612220207380573264929836398016903622239174806164310730117649227527294024079140658558791915695671260401517231347212175807842002790040958067233023487606163713580992044514616956775143884519102326567700353010219031633165405953594518715481664541412961754278486498952721160487270932538144815783681936191670911104716523610921749909316178507115703687322157048205691377769148759261270312807901635591771529122180428536517344708875340114453231241634866311312017432738429588851432108060264052161751226301499109360473312941164614397371072576961218715901683985660967616763388536068243046383206587800373192055306497525288522488933957515823562290153111729081281318948426080465244764377778000644037022334540878498429801022697918905815648158109008220985978308400329832025234887046024441302536643476929473620574961499566843764625332408803656697956198027804523790518551028402940451185971970526463402748073433438639649069358093430634846585409805988148643665778693048648542272140452465705750542110130992352460182491465344509027710370923539999089386754023924067086106924288389873013126768434353056475476514373374311844233538797806636039119436403704172069518572690584356052351026719042264361946240365841733130655317615709639424508390935857142732933627216254751868688511299380811679527831474302658975069088012748514466134498538517643036426021776247455918678769384809256131000511555949399528938494547203095184073495093385936522577834142233232535473244949179567265303147831243920475546646205281696743420558276164082649480865100312424369734798697150843786683926577107755311177745026374626649102805308844569735622577569953887894622229525568186270364175423308089437271526940794586156484084312076220458319488499514590142475205321198930815114088782493076395589537994234632871145523475081084492173463886784800431287644610537740477574102447637251061320449179827440671593267227912235593020371269707821734968173351569563476659943084947878219601689504636213879107806880161203357940184785356402762906037385106302836819259831051833396162906778533677015394785038795710168264017050487334347219226384628616723831913256014869181046327457451777528181185024925133216891225181620666771319724624970575114909386582699490591246757188414756766325661594108130318432590510732582594713405376676625904062162989263902621562354811371370903658311043697960581063433061640687584705797198683846684062273872232962399418297230485987447934384074545506197939795045778253273984222972026887424775074702981541146199055048071348120857277519817755705113697812277792944170601040058358693237857536103517892304544971470183385844256114428235992014516666883120706164363175498223517542700700606060329846524394353495380214489835207212911713925565924331882542034408199757048335011778061003488247059919553485459309442136742841829998805693673277706231862623737797454651423641266699327506895468740422370338357186580138538947942590298645939024992591790871643929809976585837663297476321997302650091675409273192325920246259915151302606080434979896257644694418503365387640583804546905573694609326469359476109831989243664014350470583708340808519174874701292360143217486184690398323707078297206418434361459352366159768668833424063137027348488527509279879710396136909387602884679912138322388896008909159017380373147257726152330378948150517340152456343960307132939293937145417100489633627208688831445107253343557318097041234952532167792612109326093463421477992967758014436653126733309476296015217851793159261979776427269525837483337676606925254171233600581333537194827443543851776879455811744523215742048265190420534480471910405740751729305431475017895585594109129431977613065894531115652385169657420359409965754515046836204268951038881609124251385147959269561608672422346093488480303921749708150018464305121942147895271690066840947057407284866867703538003307335066719036197164019906700994532549863710548085640239851817048521799141882358883824847205988536477067273965146799136725196484739278856811995687081299567424305471847582579833238832867086900956374442977868428594230179864717606388920419819201061433223051565552856018862915982540147721075249544667081078360230463024228495117965900239755136037962464612120713702355753868364217522863569015825214557876783704744191799673182081941156163986393391683477443196103908852873007329514799558263804223632781310546380619216474707389897525309769679615594716196462937381579855506193388555375227877964785464043864228819386545500140596137180435877649771034752863030603870291289895609742750190184369605470038108006520192411852023952944952711812538802358034529157191938633017900791961139651582885600717854142740998913703035172787537813679873695779454824980362213743092903604196025337111360192204612284306822767539120310930597307139687132144673525004440444031679708377039499928478651377480152234319317783261193159881756024522949114675710308242181549764328946297078332583415685306222234989480212085806666201952366408479931631281198612221665398710346008988257168398685773570729841227801023059214441516835219369825721292421434841754995044236764180748544085490053476481085727334258651670096236463660217572928032359440338455258336027969538238309801191158203223127976901506826219699102920324356795346415596327450952098731254470747907764158570717216468865228856785121379207227771574325424408119970700923425951843833225988638322229938574665522478477993886766263519409477162892787167172209090155259772849324935738123864852054139248908003207362495243788246806574628799852799950611647189506931666882212301807451941696257530227027143851878913955628506700882655324830602728857750426820964728895686728030846944333386873107328088951399487458674966335771798591990823363889066294510837140460480244199926306106731358560167923492743628890529257681792690018907702745131209699689186388839202008029866775218712880029509279037967463062308649721637782906310580830067252845888197882791060054738443978478491717168484651144718990826211972956068841860621607062711659748881207955225441888477456785772480342953659501738322878044713679368083559117646468179752246823539913495213496781729999421698059226582541229957607790922025250142197740057251932679078291155957988221916417823645913371614863853263655242267279979665853221296495112542837431831629089246568266932085449252537001596230664156711441730433026682639933808421723362756609561205889447177435593568992501024861045649780626284801265681970714024241801216083441891773917281455679436152840750746017286395638106425178794053443441961540197910976143093793851831696041374452862788523238562746276608128871644492792063138979337358849182691001119071346047762984260643253849674021859700743876891257103667550842133719122199584334934653297667999760079652572259703769792091993203618350382330155210615862552178512406352884884517140538956623167562888412183040308444678367163669682613643755549385575420868378937853166526456335903950818403789059073868566841414106728335564800321583974159859073600380977127258232250784734501259801233204533001634518743151544865539292754951106938920077641657906205654250193722196013558696555032020945355593053319070710684706354902644034558087661383674076049877293699712499517433166065957688735657427402001299048925379185314492864145256728658070527893043802057021859246099829768530180135261841534466746147373261407029532964724875660606813836835519061411973170947534301130668036013097314860208684632072037553595841336135991095848826857544872630972193557509028386556571069057338450978488567765745597324360258605590369764963344919112979633602381569818324111860813198108042871439655461830129589239294364433972507346462642058202886816128761418072360878150636304570864828358975210272053458269417256154639927258458461458244745604725028589205525219160496945129542083101265802716951479412301143954393073592985562585269962789625556463799037122569924918567643341341178118989337397079553460270411076245707313591263489991697460105314598326422279934092969206078537107834111382287651608010175856963847558382321755298850266401404055161669261896174745528342804089584016110324083470081397787795932831140713144892576539560370015753633597715956297084353499504878449367737620813240262552655364816026488148811992820757416754654104945225558427211191678018412895577330090324955247611932168313159271682908305004286896255509772056227006682706382501419173294393062961889048637451887303562843145126866573977949784661799817467993712215046418464778984936579027989732231170687558133597366427270228247333624211362208856703314852722068410722930301636412361546887579113296184408762742108008657729257446559323828945068094827478240562113398635270372638633230697616797193903585699086302501397405673439609122652548789806888556394147776099387105723764561035801395252222623488798494720666832246776494943265382928904054568626543644735895336769548170561932752496360842815384973416456765400164563792292887643178623795571766525696404685399610421762627415308071323543487683310522613420182732259802982967104728612314792942239036497061918551617840148541379256047618185395367196784343298075402059509886302289914816459488119013853803604961094321738785496504400432201383628572122470207857436159052665413876336611674230473231905495123107190358652280414911396019877089995421673219531379084965317369008505035413230252142896276561046406445095303853518884839951793810428213529343178385935030970676689826364756344731366549199660825387515471565080637564807244237397736571628210486586489469416264564652883826683133015176751967266147742358132364968545745683152233077726106186788548104781067628364401365883521713523062584922232592170630959085495628824454617328851974361171541994574050567354748649829850676497364992684990345100572604527786363499091176470270138638757065160526002081701230333614289754266665669419741745454005362080175400366674561921472085583988369681249368344534949381945437624258878397468705888849065080941138662952092476921584114288198222326185653276109313161331343730847805687097475430661955166362397373164418900747848522873933525697002197455342906352860838178555156295453169476366078987156161669929594644871928356725150641500487868588464989261502900303674119465425618430087170185749850013745140374499720103215006651249553289300473726661013055196068341836034316938360570842304275263674866145966387203255190103766490585249730752625785917122679885944928435076441306143426445849054121562394028853116326304498898617982563915307527008901791621790312031169486542703368271910036264051145154235452572375182987224161673637056325023371437501297043336537025235030235453167658516696097304890629312038815262025243089514238372187596138866635901896137705273013300099766661842822104492605219391443879935321221186917164248702096219466826632208633884724311340490192724255363749523318220214592879181952304534320999406819052372787668566418830425414959510149912961180944993716159418251373768639520107025804619487458242441101945344259552359991905470691931789525417698217208663819722096042658836265792252314391596138625414561476082747484190526556467848857136231124840210855290883245952418104550003720560383831047470511540422872321338280308078614988503938204480457520965324413847010209583614652304930563183955911748580869753841209713373684679814644017861508304273280572676700075411749533520903086818400210067248059840723991930161006478653219002558736235555407022282643069178467580664618387695680658505627211127820286904691780305489646179293601092981423967483525079356004613558471965973326771216558006204771369553053054751101458630794376202333775307348043313363430320041176267178927509983818998200863087810651232150790543319983651097076860600099360264307809432506887683991041872676990920326891876805690590750303504777911885627267987258195163060890979422886225875412543528252074739060987299874071876720691037353668140114742994892196080941363425580750028259261873734786818351338303792534365333218742181427916008749844898751213321097860553813325321196199805169356606167326119282443231331651027097532987117968139558775376155709450519676918168420040737443896064277192630950294551039350936942600570082534411349947851576087390114385269692641954936355326165034392462646361554862250422808304627855682086855257323834348853115895861684396721666743268906308047374733007281914837595510590213235828950791650458946051320743324655488021671717787468791091930931810893831275526526489962964583394341472120916119937803848556727808704377040885717748023168575455116935517833777576157695114950469934127881336707078271672312200413638402093260870912366684732648243700869399934016087287015101482538694400238810798015744199895911511272241208163489914817180366194314010171403529395864130633909093480194288602864376051173042446725862895433557967620295866439167716769312401577799410890429268406652953443955634200544755883026963603761485877542467357367984593589886189509128734328476186303927010844509131137154231736350049521763634161810598313194789938796022150530455858371524797962300736902973591206320848990110272145399347729550585952719230763131960935667645551900499652713111187556353288584607342979608123652476626662778843974202484332831108820837557452267778641398700607527789486165636669182336149398956851010489742985218565553083941481301225156632485827164483821514245840391000445954383253931445610439618775009713105697018174470354862351345828352954155586877207955088607042856172398088032985312217843065550231222017074998932590779518118050870422905296333818943760915803234628870428741293817191167258642388793159070770224998164513395479446248899558685722031079413549714685671127493239018033836095512748854286792658974926265298258906471780894783987693782534376456030439855497571680438589483638009004159447092638822630699678023651707427018358262048296117017601307930271827872685413507429182252054427152043773154120694148345119048978664172564095748223409193264033786017162203653672203534440832569605232795497169377402959086076239900670891004720278743297589386953728754215035242298034974596025426314861757009181731341278818358265098465111861021321426635602627995227622427981357468062138515583651540088806175399266654600945710566264467904401869767108040579540995380778103105174365412134183473358239558048665263134527179863523812859406204842728178508319673501062558076880865748543446821695371936352668077640772041690152639184280204988406576378771844950706144982844180167105777532474703268209532791318914631857434369508888073626986573670645164912609668165134717586056326051265449028215514754160864409067663739463322274884084356169028019291763568915307545164931309221683180326321882319833858181568313516384972503998739589580876838098979609937782636598536664384772352360467890886933147558245649998179464072469046579359374100173395279563605075431293839570571006513872903281957974043742404010087583514194046952837323201292551776792194219565408759371922821378219476008206189556202715642470982650181290261440499585917668083125443017798988818214387397710668466467412209166176293695236216119925153268890323626724233951005107054049126264061005929416414757292903461030027710877212524972482572716117694920548439757689234899543357993530345597158299461401061412959211005869676353878061989333830727626640983478679056441607203016117622628211259507773727006558028270809975392502727693430802324423531748451464048886080548810977543622683723019427799660608149743624636377309717738980439106625626857251748902851168747373612102741696148165200039240737886230551646474042863298666004838763375652078012055838607908162765252728065837725053847343659868202912858586578141177948844141300598611504904998578299028267485179810523850496236456973135613231449179328602124989100900125717774485260824015700414976216599140344158147586493826985703942007703432937964938834816493604607281771974699542479464652189445707959260378466838185236270502828578769314852575037732072293783719005556645609684421366084838787558290268111032823697047390747785861159969417322535129615207702527045404614077319455500438940917325278094530381370200973744492229825077466642856042039054279817014561176227118096387797110742804599872654315714634104866601298641664978470695977993399951075134297357600021304470029923738242863406644836951324111044148739070749166469789301780559354399871287305737667512621370695081754128083069780718843039804901009091019716248464484921502124809776144975780971090292194233365841785074246816509371058634062681877426421318169312696561733140759886151323560443735700638285897182444869603940543135905415475057017687454875337148302181171003117814475106810376126170960964174831496221934381880103635346924338305673680577411679840285590569511933044620306477826184432483021363199366492053874216616847531227224849531824858560665612901774288789486314344031223413573848251726539433358885469541292286282964031334239226113096360412765405405007660406513638360316328951223985046438741340736858817263486666049393343580751841045548290701829963895966910405365666071705339691271003196070801667984232561836965928272071417552550731816010985061924106409380809739930172045397307158619133678377869429117703573026859199408579131062569002900185228276081371750556948398517404323351624869148577464899801768943184422272495554882240588212373168132035087103916672227960227529688735130158062693562898461313301476701181609680827330934601861356635868940878017648816602935088783417002601263459713283629651707883893484548990938680343123425160586432567824061261891119285875984274519888496343825491621958156504697351673089122425454300416765015553695287479688622110412773098581431054616645949674329895866058087747738393931688954194599216668587495074210988980351966254933050369576646820398161018204610531407019086977798486385416449222257000637979506473029886884981516387399786085197333574478285767041171434817811165255457136429402499509500248149228948970342280277918410641173217410264403050260069712840264838304268692347465984559193615574407077096507765346612748516566919968014998902141935958194066570288548504844668890588484668278916961778028138914212379603790840918389538335018679532923761956487766930453644181403679859737625837565175979374281100798731164380673974533456193875575185434968450256972155795913175777794961252194633861936294779249419465892109520605413363207436121656825419371856363330637381429651016358263691116761814791915853645199028835577241978868117752403887473101905826528779742919431604297697987676411984368247519144967526765233698823382708406350259056302577302312915164091164930302431222346809532431309861703604534206931446581262873666117432326729018075206805870384283626876076883780199148511149395526335725555018381485886210705115225935487225748218933596081450438226075960800248380289774326279463680115469298811024004421069596678179084827395877251251826381038639370886764238507024928990582038277004432340515949534265832635012654216389643760498674455515829745521779985681662980853990683827805503421592343751000994132993879482421717782507956849898873426795232767436540295367049988990109083709631520826266125231854412085054146898674235287558791322776554418904087711406875308967388136368377847964061459740737886843564532157902458489386115631245801204072656786296270241478577462615328049141201746272592241752382545331746277961224187712499111105187939042344107149513609558966960671724008734745204836031884562111087640703485307494687602270956386489894165667179745575517750182727840718220512388608452837904406061108477002457707039434225065176955624697392324658797356881468444498834797473089259886324353567153530501865709011793955335753160703512635937966902182918706835904577590131015621741354383836571728703935302979042766617980964663096875921884050834120773685501715186064952976131714518520826873440986250265375566479780402015015689216082831533144368866261443860607639604791199912160781918064844155432081300169256550092765337046673817924360695706474702718600845144318160598401207714216705614043700815292243837173960931964504851918004644835487294761681463257216473643113282348619718842650244326475031343899855739612602138484034954328848799886141430734569596750928896921704684139543190294523464801899401468715156845810065567675867071117806755486189612979841331745167926937404752347980943283838370215118631316657178528728891264991432146671585100705716598229960293777486857962162473612262946859148384137984131448385958516223660814857462008451680310814521356397457750081589613604510480314837796927181240226172218166619032807148471661972800106026052919452254757588260620623993789475890436855410587459751334027936619412498220313572938236966483358546763475512636326398922439270294473482180849847728601322834431286488437145434198898923306950531161922804545293285323896998385153880201318322060426320406706560332400058376935738032300731320689781280140624486336396807300116035410845393977463944759504878410145388728141733916092942542669065933377859239898656662508122165136875010936787900641010679836018760788630024574088019815218486958310588238018999862206945578367751274832738920966358921174406404080869861479582587066643762664743673696019981351960943734493495622572307733615027365539258855297873132003178541147230927965707014391237433990411982780808674555086316634156103015547315939454972836385085181508515013749495804789201493579712516622265272039712250102911070379098509361964092178494572033030966407970973764080116345225300634765482486143835853506310970996785460988684935688610938994575714683509280908383560051243231291006868649594677887305926717675026543390673417773471511219465133914050455751987778188201967027196505352846746415817985995511059991404950001784544283493401916250073528034272916360972022862696455369833074419135590163393062277591756911933939291447332994136250893057747561539770235825054401299043621128525661296523383246390920383833573553031870705210246467128629965708394005787801781494291013030828817074950790722972736363852813136055743792404899337292911754592473330259059117178612183126614411637053976032923544095338575591773638695046370276361541214142494868279993853444632418869015086347768551911448774161142088626215446717000888137233459105743564109810217792154175793646921967241025711090335074110607730945348669987747031212306504079735044337094003525114850042175239854566369004306972190653636197657297320628476906767280262421583640539502424580736741170548201628524537342841622998387138312697048130607794908319207376238524602292335657518374607694606422733082381992066186681894213607693480784475094568503238862481663200517263095593548099684676861445843635222912121966856714619774556820688772268857098603128325392229233031771349283756793191694158063521691372791261595592406670413169123773071774066883429600900075619599866548099465351162616552468616183596881781814080245500416090037322500909709060539655237365379582181869309755225533495714368926129897866514376493801632966838449334426945584383542569393031655027505335169820634524293351555107164064988201454756912675852689591807607361899334428162692351477239428109043579306168286543485724976384622192727567184500419619249243820941590867925065392388135248699411407042795015071112202143761755732401912695306410134891239401528826650891806367012496292388956198882636290171658629346877083882314555611635488109004900532366091870698521068866439172750500248555547247171757666939518438407968789843287158559838753970186906071828589104564919279932901296420035791457406016952240053874991521411439479413898546058091890447031351007041871247481991951035747666053832774930579358664385041627613399966219653476442979216187357260587815188121321996667093306084633804159200302571327546272379734414958855458254021664596273719701852184063734724182888232975887836441771411117145618619813371734519529826963123260820214756336325624592011219985876131982155124890660418946268053028160321884410817045101347968074745223004356887372132971056262456962223969542461725459676592511758222370132940560698049931041631529550944693035376992930024423533291255243179591620552103383633767708434110381170388607477860759026403820760263810453365883996098086634712956215447722850230312753365138190160064800254162104958003387134382878486756002286524948357379060306712031269129849215207277010489447421962086501655215324608057984103060032153062792891517409937100741369667176752401929348978802803863465195660699382979060620609573096693947049864004217076675973475849499402511316104429332473235949491861747863788882669882742768232491922919009947286829482841710365968855612918158327872315910766501742431786729906513668924356677710463892768048567555043768491341576529360537778471585058871365984917976032136040816080447276933784255655943445880424306426970021046558584534533663841283693823818078170010198005149116468167227832375698848039349907537271836481537428379730859043772447289208974935773366713784192716635533667795132966487135880585660002445727363814351655357385094479871684566400351178641532960099695879894739860576005905534474183984412902885280574474293486192015473870962655274945975583455046492636973509182297805780310694806307855448201695509576759806773641177311520058446967959861549599907778023021979278282087903016546200328203204721499619077465037026013752237818346758331525688739784798323269679566020174262012207569426778162256642115220994166388212572354805284095053684019711287053161480531748506574321150654844013366947356970128457621925773192691693954174006565839419202721048035545365822055901114045358047800875541097776305450714633355647535870012947203281784225493022483815425585025321433179363386087596375323430630436675141194738635819026029133620245845018236051280515372016407213786884758111206683812706188122780614818590679119533345785285977352193115751206945514381938588783486076445248316692215502342058605221684771897945401436426803624977322211195241717525708110594573291053661942728831915703151586102908211651306658573051318164479291589049752193314238052119834148819497215532897148544333082813679956304519391366786733259550097088532373360122495003345285912977553672216062834589096974914353820617867530850257708389451743385390716859316379733969574788968611975987194309976860792956647725080402031542533813866208365566607674893528929105149350684693378232778645741770813396198100508612038335779252216720463501726079503668051386442207077931912766381693571242351817075281044587247853265531864753971583350753377178441922238764495941086988587821235029233678550030410195265598456915461332770605466545565332754366210571374077724762990563160067484692884470144528160742572360200744366239355882233732226543733835079991341878479502103493932657904513997555431945775737094921932248508560746592902819433849070055336923590343993000041931816556324609629937002869516617180825547737882625434102944139473325289735315799707607096826795866046869602885819935368456349097253553488899741320882541825724992221105423692861681574963686515341168972936911127363286878532209836557135497144740621107128528345247610908819105897801377028461680563639188524344397300897592358927138368288820619430012729616898408772076594604764822908096597748753467669677256841157450603430230980139623095861233375477401550548194399724423134040342238449467735732546022895272157407110838845018273606977184954307273453499229969748975863683797540562169173753717956105714778477270810698000427806620865825635163045770394659194578257561622463734972548640190298350578128224751294941268904763289819988250316940083366223668535542984808181198832413499081612904107942041192747303047135660217972938453960139984274151233611833545271035671020549437124918254135939779838002922609227179767717454393966249922789263612782140672646382726731913588116623203327762772720802230691523612358999872729550569637811363805611712210604509982692606208914584242633899122624154523322886841860532024215800643180134080043990386545193302024064140590495442513510191142563652972018915724168684198430591532875629256745733409694001317656039024475487061919314504743196152143352324603958867666390534021028724536937921757429800895371373683609995917761064114550556046226345243827161688899785529062610016744467447333821237614439576331481570510636677305083352592497317344099471595275074860232622797422977548509600026319113191310257345420734632546628161641471956971836595915376912352179327536859303479899342450599864662365960328657950620319848788183361271867664949936025446879225414977485479317374113556301598612615453373406212266806817020943979032758116738891072006282924836597909145675999090566228161095416596161042021046565913108261242809460601372539037048747718498614867530715730745259746260907801536829862793083405906627904487815439929434586431403234093150862715540147092536268685955786528430642647333007367141343955418316467653931759301946317472833963836965071671975605363543564892306676767133574921171148527448364787322417562742639074372802451845536668710895007076193154158137320489178576027685154034931853077771918264004523904817671871725807969776024255927465879844119116606231941945661521104503816231705875546264591949277413967068199436295607760095312782750982137085676053323100150821132822752763170351895883495870536271200763011093453195300411630566255560930607065074285754430641943228054639540023735125194609868072013491571698352060950548715007105841699161668587370493797513186141051827373854193057477604544401758108327398439085288067085206558367055398190847915815377590174709195409002401926077617110940720105598514979753122039051299869444428250122904531895236021663183687036351149521074160155336310715809937131762402086153605375527587355796795597603859264663178484299144955000547430341877435802889485739549447118152690010349083719841622907381769193627535486361504412511622065920427867696245482321421538778316028545702626231904341830493547993788325442060559971981967783778108290640463720081691451170187776726531338991908734180591901221670738173912136744854374335841857537453031893917906430703880224743520752171846861273291620180878825088023635248000920672266213680771928086955113854319262875551821297627018464124457364891294945847673145700795960396590752748303669545956367479206434493389659275069886883571455305382916238501198667906981003663529640937780624201033219682483394415578282759721431055855176971186866571401180040725136994632331496826181835797008254688737304394084019360495538795625329819502090740842349876360775570299825036532070200327705292065643275650843179624562636622114298069458639066214514182929944478366786827839484403124086441716607495172496326572860429085072574358170563332879815814177304045949827497940272723814643081709947250448237231792186348731276608844954952022823391074705167501054225402441365816519930796266263529581570262667325514764749789365623391010536350498202155817052193616416057129786491981330310059428705931881774581320656590224409856634555971592270024047144847792675742461985418347936333990069356750540308676077252579645156769895809845272010503241862937973686573794454063445069775565520186072160582386984659531165520529106872547409379627337486979645473878492630771143476949585300688689246958278772125101494523764324967477387575395133115414361024496264730628671974774559521335245711036927447295841199423516678106391165341008522486484889447221591405027352947080760234041548588799427794799375125779630519314801939091400520589698467071163998055035379823590376196919901088925958310999038546069494695838575142435957693602542228969050979585710927220134439261130122261523246798586946237610308342049303303396317866978371649076057576906972332975575980593869509078531473308625182848822360866684946657789734280563444051637613228199985355766095950680161577483462117042570488835762849867245763732116270998448290738340480791512734937846460064285798341353721816214898026951912475205304866210782030178326272772642891070802079758078623156252791267427685689565597036164694210976874895835251534402849472167386870822556057819139993138643503810296668245136347322862851854602728430565938313293712140819151183491281780805849616854507080769783785576748426940377001480175261239468292579287970728610988849926330549846639726739621636206348814221466886662734315746787995216857506394871596273188705786043728675373575276272434436190179471317655574060804467232069813056068533665685241327271095846081169616149539041140478651477718350006631076114234104054998517441369490108752203360382316952073541546277875001016960908013792620855927595464955410452621002824621447115115879248289924689654180782062738919729468235988602968657556109144637879365327678891526203572862680605004551458960457350941914106781264583979529362530213048588554769952646737123095590181033037407207660989017174294050861256047115243065161557110155096425472328970054296554245436320311708576486065340826951874719492484963738559381983240524456171573487753366693414855647796273432368364723316468310876812602369539837714968485510355039015086227048428817731580874126918155720385662947576677266181949040803232161737593547372183079029466220366433523117361651489241847815547376917076616630221630223559179399998979087042947232650711514380882274941072420424370121528812947374998412203158376667482782184384298977007105956699948927691214192551640447425149459495276367005939746916364608144421554300664985354229267695956074953105978204621229807912437290537029971653128088729109662594045078653533124306367293363930828991439672109940418898735271139511066821061948938663827495854242240623753982232081603082673779380343263249657946799083057563356465719309259111759312419184032569370095402014843456243937214728739698662347810555496269313314748343145225739447269852711348953279839977417625176304086746004450988958059035813040742180071923990448148089570941655973087451470591492664583430630929938602932916209876344205920744071429704396231043386258106969021906917212334099746740329345598583055453753291271365598607081700334801747964537985239094685090425989072815827706292629481314251619860645502129348537522507115081059710085244128780034251930410803714099285783098324491239172757261559453434506380818851126629590262319813050377758099265705514510262761065839329140494644825559700346423815434019126887907782803207292509482194382120035886322651426274280875329037439743800253814370074354243272018370241280522272364151403362047459679294199725354265483881206068983311163864551853290089745661521580973338558061255611255948629946696229870325564022660041548772942407970537510936248701173735497754357483286028296100033925481304520149926757171532072168727349701287734236158041218297445742061588283523511938485429496909309014758147520286022405454891218363239693581543450555427645329016545816629869288128063377210241315649987918490165211940106782075199551982305997992005597253644825157208080595475317152191801030740307231990767791581849846815141028717807134882077103413819398532247475433233607238240590596761793093022203616282265270768898151661153193135264032669260007312283121791451828448057129571896766413493918180076098907189842077853815741905280862352143779608205484674091211717926323322548230037419458021288103559334761313632991492504461128029906713165359265410752213512264670366247477175335652852120600945138116238164120184829114023506982935136293665947854491782285713444790411183677837986488562910507049660840771085395301588569309986397158776610254638815609767354481636637848115055135330342851689705233181647397388188868144127653964353317490974042606311478999097992210392672131038037427543281303314280446067685738755540036871830389956200271560818824969695480962305241126167975520298362514775219555695605645405728509459293803258559189116234843146462103283789342158323120937587492323053657901328182517925739797497066572770885678179677045049138304407639525992341662777351348917257737393979429096021040967158586289364018681253637785235355037630274524062397439226494459370544359599569752341363226949920855040089164987191676266633572262527132595612056414187671419047130094111470397047754596679135562402836678477844891241940882072802664547482509692691633110388177838629192083821263481372080854326394084126623419476257880049923370277566397840752101247876518661873554318844721671619901347200912369539530033906221582114603848464565139670538611281889139490698245839241670262991864767137647647382194570872055765031104000654842366652463872045146163077260897815509955870857323742472788545648413333768303364115162908750165036223758306925808238742822964907515824290839122783984931014778134009919075186514633796445434858563198203966287328694432933757890887221884217615136376433924149956209827716271635547430605744415247669774811516277649002821707378562022482355233964403280305204332635325588842627187912009874025763110741228727567183013251819585171998496740120808781718225607708090838972265409309694107555142338907746964071718938507549639979699438945663258396339231938563546226339828486371331181714782138117891202615632110649585448727466089974934603227366047190195475320551522029104031878647652916454843796262753888799267572656798592392514626534158266942398381038503901558814755754912407670162493172792645692461919322192876996396268249725161480432851735386588757935127778098189825231972992651975037726635043821423434112146367920247642755721605171912317672768336289913379492444115230152135263552734341969785456694538221575340291373524217609214121402655774511719457683624263174678063557594000034811611949098193633654164253475138260912627082410996223129420842442811477746213488577374764673980783805078901133745408335649888493913590670514474681992534054547744243068197034572781081181994354610252589319346758495406654077692652643439911871238319584998165596175999633818312116000748098351591896154610614860048874144259641349206781540797155189446695314793187185139249783171326840232212916369320230720122760126430960583019543569678719390713390727157432605716989453888735377894322760957157978134051919123422878830624247616521805973608269455095778405735717231549399497502324958128614990357739068908406518029202286710122726962529432663139077302304504932156709945734414433783194197465816328660876542561981663859183200367165580347587560833904374285920967842671116329666531750260647106409800193677558871839542778253609364322843400199231164832826313993389403440875223497345065903605267748619079062722999100574276884833842843819492788566100056914627877486883725362426876373042401757255050894891220939256178695631943616914630865687445412874171008461013732221210460091631071423351331392554874619540624674960643976411987104852004647998611250787246701311399540226056095948097018935386348343727411883566070014974153455882992675280853935080500615640331246068828189832948022878449777990109373052253200168447149806721085950764246165630759920889651867712901340763169869439242302134078205380605925789724672167729453041601693678378221475162053253200078294339156645849424766956624546550493032901765086684385383623801759692788726179205588291681323035785787474613902719693107489429902700797903283411388161821534391602453672059442595225933593136971393923082894417877082326882529207559646074859922343956014374347353197915801506464198415582709944123230080667374925376777379021088836504227445581047907403220231490111746904008383532516490102882109301767091349124915473359931371556081525684662751043413140038515477771119175335872279295369008981265640312058221279517845120243607057881315814200573209605396889077511783574041201627227382211923284837944967832269888869105868405486804751318014185478681949537141854309674947368830879046260114646000537996788307127895884968186391320835855878325451064003612232326559651321314169638348852039446513635812515069384620775790486537626606356125119936210783043659309001361062450037847201192049721459695174669140820244273456944192402003817132323329060578278244859197669658873481501472446978851802107635011192676797000405156308253870564609496970069772331876779659588604988604980844181469037176202821351322448637477241984949139990009905175804959307876994981218403270961803203537059075371135984877923551985542917944582312207498681496313631466498765397537891131028599698098330156365565663832725602127287999396527456492410322099331140546103861870503250091848801097668852145382660755447250765277181618061489162040844831515191403117825304101089326259143514804718597313502346185450101334950340561832937294519692792635409171867747002912785774103104872085494408824902104234650899653718465065943167109654190644138099434242966116375399820488495866863241270327969778352539445313830020494419633594499192955701028632447295061634630061303950769690249346202313357938701862155741219938681614664577374633746175109865728431231031725848524308911951559761368492349259556331744515993085584581476918084499287085164051708929300504057059813270135880916496612176056644719984092245883611124576239388004256978190735672518307393344772953811662373100757353075120459126752804082176110483656723262558684141257877409853332583519959106277467853008008267118530051627056021557120899603411806329773257616887185125157537493693633231920605159912663796137992076437303065911572783137599155547449856421053064093522991716003414918821912658603035854265038944450339135837448298542266721087159306684893944129043480148117610326039298549692433401953960451854669758592641740479073177216528721584309793250341280257249450407574526865248277510435129447857739061674630271874571457313280289197401833450700416233755430692330788375323992420386037946778505694981726128422149775941395638252723778640325300320225679930638187400809778737181596453193437238554836600339734548752495661071536593801331610430550701101041454200425116902614496808580677344746718622932366222731594477599123206890883195409078217038604665132549610349549934249949585456222994118351949026025628571287562195351604080966750765992433067320335353698805592798664935266880797569637006311698830186327764416409214683396725374302944822995308091607074665284628843503101734630380227155609488108539555261657720886121961691522409247083171665185319887050274011642334623012525000676509376825450379930965761919498353502305811495054251489573180423200294782088582991357510726278542736971016876389385322353796880449215468009758095345208899484465909511621498723439924537103094086437560018912955299826068987446321967768731669054515069038493757804532272751397218358166390716835475271366181698654838489817609259727112738669394732487954435769534327011616394033791393146677452986002283108997204435347114974718659300610389742200646527770288856351695056837542357183882118334664644420537608162589703106979493870950188971273259930781595093985848794870773579540028060614314897834223875109319464922093830673140140631381333077245654720422899376278684013256747934812822917365725307634182952415008263881669621575422539487347480743666892194224630263693985324166945446477546591052544496882938241671388908580569879343401053609567627943356304226170080598812873399607448969231626928747109934502500374669049051947987518931390510371066091624467542024785842333727842155905811404508660487353062208303684721236425657560003005270191659890611304243319096547352262126882423835369981047937265177416332990115966609963564370607678267426598122612422165167191181904340297928896329413343721565928362351056105732279838507806105242672788398485517946489419365503981526411745897960581589300068864924508803044455081204670189281730359711019763003147472828628689042016836806503420394992879688475988902611222396476671402119774572860063945808824884019410814521464958317490833086923085145262161934585252924121287757442304623415219384027240786702368158575721902230519663934958728153062614173077768967689478744246350484172966815137438025909456371137285703770714136026825842738841873695341924254790829834685136057990337964885395549781168432126137728715383899928703041185158663443693120664768747933430951609733755841316743003443625679691962570473100011009336783728661267707444740505109603797657030154678273606459905324383625307960541340029481189331480691273893546191687116257704690516821235386141357288337779291461970056262606514308628830694961135404647052602769267887910800811229181384508873117556810978014610168478945399451025440649088585060912757096026562486535804979837417158852224906741682175926257640331562309287376701307413690570362638980675612792778027890731140705385924743532089664464467783022256143243412122119034259702190313099456359306957528226271057425055424171456316362632449270932298857057638355545268113980150857705365473201555299763532611775601356854215104002136883780781522861989615538248211748365795935990441927562563079993019993837316943843820548356437416620382998324547191055832124816810307521218157753228238266300186217984260517355698080436286607093651479165782533205995171882508165236338349536558108260021045592251012632017536176226898561921203800472117856438155206465373105981589950932779625116978182945123728138387862867934277083211808797484694163139354753609555507121198743275895929826237150008744439206933808042773028708895551046052138222243443023820292163312716844748695489973484134955793053981131724976738232364305030484232228372359086554119279736217440054077014787442568144883234616687914148506775681977627125937151750219806397028045980839813748017777140244504545696999242721496871061434252571342737131920396450138290754282079830771824311711755461009080492747201859491084870128712701192720200978675784701595835826067284644690227447867343769245039253095041136323531469425731573317673175533203845098693229143986837423268440231306971899128595016581939479036555231418039964665835582444973629518304242253168557347687454705714911112911697154806502982002229236210400023472343467972177092548804402373604295894225206171558565638993954055659639385532220751188930036575356738750222964566190797660103158152974593011859197073045421475438538558313664208325803859456855530345172310385349154256006595305429242937945957069938845671608910230147908826513004808333606169772306297010556691290074664453957106942195119050665250318557457275658057542897883299030316629438475490218685090483649210000783123642904252117245583387137471209803011562222252911582297811336100947935097734444176695961155636696084499883014245662751365745646625505701060621297968876028506575815204444753107982450944532020201760827842761251246869798044301306436116809924513506756712522392691847833056163690853665247498319253430596616735269147263569641251538013328232508205134944368385775319142443358314768131820443861988019062531204316677994918958366813365086408196242805906769237889255238405454751927888502163604016440385208009665227528515304693844518005012123346337820353694624241705106230006401062812259657186762176481651323888260402431127339102694252309623374501330210522489244823819527315795570956592072082840782429370073496175226721487693586725907864197869767448027064371199267296336378954509387909016205244577004345389919950792555172175974977477564477665172208036392163243141790165437720950242251547090627399697467380654214934409696403895484422597278793590507137538850306980477573897943116355797385794424269748980943580738951365121672996556140447261734537199251289256264534975675968390748245425022843928483026395569214962121900455004374222750695997078293594405120917751740557190838985808429182183805353341284395154716286291611375838382430704734213491300704055706450584631714962912184759225418515625901501918918771289465814760434652356892286187628461418236322959687102997561172181771319394419377176377284880907880600268514944270086596443031411938004735015624247286280238483141294160520285517405277358108058153991175762453498010286499715092003116298517452455319689238648257391206624347015473906360255524899130778421970033238253566515552446365950751840733755982354968779561898933128444028528406504441024988778989713128883591659466956259670650235563203526923668301940452531121441594830400919431876148620040114396226854476433229446055254125150900047869373686625053954290066268935153197006938863355472738056531645442769200228648420400954641886608620436474689164355276894903502283021968865287672380521885209757317288014607760112658552115072535304255070998563050423334298973678450051559529155991625065506687415238951167252941317975544120451447842893108973878981611512910615765806857081155674491990412501703612607104991922401166569633660763967059348868943130830282813631359066500950882132766883228341691628112171695803038763984495196281509132444436314683705663957557404815053442679370125716478121393721237414630964209202406701662740973531205287669286143680027585112798198279203957162495593653957819777754785999202630198353189389445402388544499170470595223900170670924223484190031929692287940168373496637147439010330042450168902637122944924471877696453597798247871389235206337113188716837924254948753629054430493342701863000041858009867427911378926775994300202365904092532898010524861745799453987023235809578108053123175572936750414680621805014240153550332244554297129385808297675727330810083044604098223678055506089745802235447041907844459711033091929594347625017514596119727590030367551372694847296556833570321355515845346703969561134306866043218131562062756848093995096038814241196447831757633413711397693200418906348478554055261373422936260619872350111009673432760825117740267335235061064093931317787152914609158294569755007623181455049903106218780226458598729595283933097509282356242361034603201993105871754245436117109157841464594808473362517639158921335966283693245597157275378077590572607685509840505553970339624454215899137881086775803755500458070168544473402118385989206040980776488059653430369994203636934809059043623642787428719860066901579930395120204351901473330916945282930865933273569351914277399510554715583088059632429120653375503376064652481818696642525115502202490006751251639007291243287336629896070011920747475302275819861767174343742169792602378186056834182199438506487373484393233339670194606643155045106499323920801832097897926886501961731579994443345494049503018167202660960534487994560632892229194644264321117458449017712086539258825081174083401422258834831709449029823917833487538344314152023046119059086199515608385517755909288172184509035195301124656659777840898434585024438104341638400356522153160706742852055137963947063493330404943711984104134622558066992900281392391364172174786741814830409844892930871860433289555210376362455692090740713883521351794670043684507835976622093541111458946105212544191085113588991277877709760302681348991864510763804100588866036657340170728716825367872912645258321001188867585723628276629620404347248321023651358038922497262609030285763590357523217564955541641741312178299998288203563146407058934698758538214607719226877293709926761611803565661842281278254368529417419616810044451798245979260476446374124439120992552898489064545243384950820938162634554878152549628524219182170744891362955416106284000060040937993055381002932114264689843511555494867250479675728351827794253165631463352210468099018775998135555027919432989720809896123505865426065342322270894790896770236376062311320500165528289296611532472294400901115403711139510746420734884436839240478893796342010567260043369011047930374298677906301802998475158952232542120371266068848062846179253749829692281914687664120720260855523635995465997764481090170626004170411235911712266991514152291689233176402425517231095283144467750502011974140081903948412407667186401551920075258533617289656809042404086942234085443886135173429519888465522996171641623863388357915207882425475009989054998135782906400573003432458299065752871548018450873054100189243769522349345827989581209697761047872010639131421000104256973475415821269652699786989402555919798171143543719456643556198480906339208523571426334859488250451999359482810189487179670730042183060927056945920073646005941943704558443798602059588242414529617536025150910671851348151859624850404280422075147309266627511802498756540596498400562319147502844235740598689976733970183618664884914588094184126785556596877026733555013492643868691252697533155173567610827424059420414982194187352589075581271661265568553322291957618676326148708565773207336234947632014938391009385276357412090966513770099588092122026931003072567020261492958598639036847932951533676981057740256254898282052681969438853724005775248866490962575756394220364055464367059578969396176414771999327191294390709212475149362218379367056893950568219270106634476666465285917751580975626851028470061606479501114746021047142356877194100312509425296679963878237033246277921469227979415253284945680324504518539767964650769812172917523365271080071820121227039554543910643765955641044298247659785379994091337853014299208212921046621494025355717791103085594720021692522787284373772743046223376057274810196933908469826589557709107155770561098800706918111030401228880249645282203699123896237797606614843039929027546569268865045109691951215017915362667979332235621919548063937832965135307666901054910142819085542154958882461529800360138024737693744747239923438599145211480143571996695802219533571161070469034981986598402683002033421355004267727860347744219660234351096600301143910614880600642763257078498009951684100601576269287998395513306357403922771874656751493847980274703708105515250240648895271962715559178770002535340986614428833346994301271638081590213550529236547446055388094162631371438863472170756544761965815148105802045053002544661766108643703735310084655133526637208004462241305432085962174388784550598147671373118621015010156876847098196222513200386657000613461608387556371670442915442606086198094012268683065930364714155303538107471067234877166653660771049720597598389818295304288309247695206774877828533713554599614687354114024956199816098193764652147618305994521164554017188233108201470854976956248677679235710238609168082260529012496783269155807356667528616954681007674198481203222260944010617491829910530625806634911040127697012855624252457420328203421580712369333161859467744648373893958980155175210647913687900390630416473194833853512034965653639226987677990205283998381111333785971694683019794295973534936519560659621820202011824829911569617418022248338611551044566209670241942292594333327104248707031919729324191864970378806728755925756018806451352100207971327014748258449984696151889599355409307500235324172924413490465360691490901074637240269067324383756793434581158056489514633037666309227182452746798116354013841617020393818224364434824282234023508885346230067847721345284606063880116780552581086784888393187179531652796978832761908683269625929614334399162535013805295000536776855032395259042411070965627989013491597514424005188821872702456645127525218940065386229321015843157134619617380262944855167910914487839702021231712619802636232879167716037582197743342440128348507388875829751984074657678315089934143999928889989231320828116097449167102101044505732723088952099754258350067654702788968709107893740754888858304940637671005663355862688813534255634356167410902120089669943526325741981297438761068169123450773082630678517591657302096079160443891330707113386010351243994424996445761663435009484371272409437701971426067583115154593743572417170608091827228538605520979499262047101602048467827924655214087072227617072312255339362462744988957961003069747703842134190262938663171267146307552942643220376359954250125313991791887988112885779305181038542048443348627015023137920174224203841623854496633274904164034161619248371023170780100303305646423163373390317336645965392041539923013073235978336602854920076425259362187339862515730321809097352130109244270853636542885867169293311608457155378023097167095370673655688572930880396059442519247130685115281230931045150538436919034316964815013397934040271652382113618919570998301593540547312712658869858105250979991053458095826674335317631007687035915666774987828942728776557622775474813003272254479539106694423597741198075167666701866012998506435298792850227543518005248015318001038138866539561004505437210717483872633615857761506548076708168888503592518280744485923639154952328513454064954757799548698873877405909664282397128801996213161088205590512289354361536735997210667643060669602745554926710470010160689115898519031411714923507301595703009850542901729720596138695529217349202277770517786666710574868581813470945275922252045152612860096046646080717586436527257584131604044150833072388472466790906288242234456082716340309946525937764261441567881682805707970019661981386244524687478052574636026470249293311175020989049203371432874148314279488574958554761266711294523137553997756429109802520422215545242779556383256414796612417180346742637571657528653081725979817136559841246215218289422063275845380018038495016755928288895702967631411821846895923341860396801836444995718003893533329216840551533045949821808063580426352567786555676512206391023064094560992382836202818539174106806729777322821775273609984465904571412401672745685908608138159349515513371029278653148087892708808090963206077393108697833659306420805999724026671122271222063581500471912699553288360130915929387851258270941981605337733618782407126329182280243902936511023511872829160242045183043762463710875573737235024321332821761732096534505192043061896457652561230439206218671758206168684284188031950643568650134983957197340907144675687092777854206141731261551402907374953597435786694633875852457819263824826316825940632260129219618850668950398958658552044927888515057197640206869249806454083039644715024398563429475405490290875280178582763305427258343627263994734391207618593327742094354001579279155158829057481237247311036964784827562396633655283881770393166325758943840711913288078593503079257863628221294885846425315770687297275135794820860013048825472423823395473969780309375108936588803589512896306009568186847692937083394930857594396038696265261346626351460671100700344204348822476383449629267300739388099682285993690926233204046722406926854421406817803753816026206414552851857653747223640127113593239336817246831720899714015381223852743888087140096489728471198329049956697479657082551753472230858537553873872072313014019967770722541405687035488102969844964288638482435410362595840467888124736436622454833289133267885171826103369937726045020281026342131415858248147752954079755784020667048722297082979124543362973862678442502531000784866023333092830902676875642692411009329619502452992400051709363017539212254991798158371485407864236996025790965019292133513412969318623671100475932474084047888068618578761032401507440926586514058366104466663735958339726432280513770858651818404073289609225002522015237940890509471452073244921863448797750190316001218416743694784543171023126028630577321314825943837316850565587654236945005822564069412835870525638511740338875933783075838841687462747527968848217344815372558953977451407691473963073389028863167023952583993608136357562897656381717181014950715685887736667884725745892123848668049405185096390242841012087374435780552906510028328008720780312665206774312478054124226049606621623936572288935629041134565377354623450592248261666846446365115150445998332880088071491724355759520178226248936797866531786813733946844841405166610570948025420708268893265907410986763693801145513535803810328859240194987048941518860154085640798088844654846697063143073101651806604513560119592779855837006407943672321756205948599480287796211937387991840524439109163893559407175062440555195498857039174514632476601783308890841384059915870421753202961852032756578467515344292311558226367900727535969633242693291519144601096085596104555244434151520842328231784055871156113375178637139486166713968134236834750634670351500945100480363372231862794756546207455912207112523273401405149024983184811717028354359369137721250142573797801840695856562978218454687887135044976047601374290175525112902884380403129335767704004022659466066738908540289038358832327772379529152814216144384891086517971570602424083949656398145348694393604786484066306986237150213841396739788849909969900355512011714195229202854312127942546617123683189335706260659292014265957411371870184576059412086628376214627196765204752856598191728677358127520756674351477323155073297764124481212333951994656315738641719682542169358137292914699474795485831313944868464855009287182465498518119116935164760267562575312850831371686165940027668007218260574903978976724764896801488420084586335458063948835603715174373938118756806366600746146051561404326576475965648741723596672604493741102201165760059646660172960850411835778240016426995528693339775116328814240309237579126041209354521307747493505534160678110207915842965470742106131041975828490018958620126041276427954861228979923999850943119973602046944996004288116193059933733963185032678435302962704414913854733867350339995106437219700737857758000457613128651647105562816152703069273244027173762286715376649160530905406112560404845490068561353903523737406994478925080110529668655549687386843532131082753877141705305179816729694646627815946226891144422684513424869118961259907509960999814850331216462666939103102267545003070345981581089529264002789655169832309131190508648646295386019642248384826895612470238842697031011296858481764904452670075629799221260150454400363454598029583256443782938010424145313488602884721133148784262407263469430674931263192072441377793399440872876959533840769821094983277537743274002675252284477498351686378468747860451256060955482587004547185570710499267214067814483976698725280445107164040043625784091996587628504270706573714930860997588165555929033005730499036505311700549796313932924918070268925464267917777570860511756122562946095824092457046556328416415071133520307476225798047692955183582119946181134496858087376260259550457470417196533082659810505710984301306916198475845886063421672912621261254689954173108973024120689833784816220545874247944926766992074344592707623192197650198837397071169813169173076322130108307528329484564374240550718978204505321171457803883583838447923191043425243500525907949196555382599487330352186198099771981763866548314016134795025780470417663545855382293736295401388587037065315545939007702812933693882829795075277974373635397393473934731545441562229289722352286329286012769272136438820404280092618245094657802260179241186897497074305021582503025886136106969420598778592299080088843432225521963218978191590153641543594134907482052617186993313393967017705405638816891377569881267346065808905827439506384550818717897684096218755559316249627698513229047615480128205582810877764839473111090444799586902986167445413132758778400455719434091075906505002628823473987195470819510144669589269074199194653341431124901259467584503670097571235563969717038678645502462723509348099187744792628975743061101466658731886886116900827381106687747916198325233344900180798939883298360759446449103177226541279914224953865628316974314472173382675973851824118950985429919067048610862874765912188251588191403999829204057239242712813682058490943787226736274226571706070053952988671106401271572776392452922498488541278288862310040080390961830173373055151080833980062443637768471318925415654670399354555840191257492727486849770067213614345471209721302549586225445808554241640827528796547112581233880564043918281492749992558030850973150414924543778836635460499837226108503477415377724230101638171923079407811172900272487491858020793057287509783561287960095077247851000396085316923085220220287426918029773722092917889283285387476388211252607919927654146090567396319066576033790379870208515810802865523819364172222307328374285400099959034529834815655258717256203295230480567443059937262503706126473698323714768007485811142520618463023982708655675561047658257185599440362822140095739462997023822087829900196505380959083721638167053608206465555246565718971373801525624058999100469713058803323752016443093105286896705556770259811578135410099608190169551542463798556875509102768005840750600388268403653572076813671192881691938820598266633078311592615177774741130674320614631946047191445563854470877656074852748791360310804081572350156509282559202422959219467550673118230292150850260326117390246181905115360659522140218068837829273501697802589654959548100806240267272258115600372728241966336848696211953254478281125165772478109804259082001098910651906284472943666980016963048538464666423849258610625901499471554773709256599316753688828652776929922459535604635845829706883015592382352357474792429335560478614895854816244018497091191052626381824241640732049063666752842581443652231224893848848454754985205192780013629209016429092880853794333091365283541582773481147406598243813434770172504482802854662544456470993666236295898197062790389911229598150727630758405385412556858266242051342387700464428442735286208590724283761153824916102024347960039979066791562627025430119732194221253374819069978894460000690365791354482392534312706535287948167144888212844929226181605767104570839206706825238641781162565033487243732402278033373897367016993973893423917787628961041462040381484382742925775051749059227185096210995735510454903367599799491062142388699435041304571550535710902814945911719392530327275454953279993046379848499212033798225436982639319126610683270876897751766292019019094177399089160913668907535445761870994705687062308760713197047697662942453245038887165996938173436627908145926693883301654845184800969496325733108426220344946532923368362058007177746258973191499773474673796902118462904017065064472823038984319074003055990096001116965105369972707929431967142696846015298697489541264650578037144246959090333519596890149119633687733117401365335484839444666070760134332488946943646390821314970893615420649884048817286561524615606496507566675596922493077116183842773560830913952104828068593089810838496556674777218557069191789385870198526606674926039764485091744521119596817639191234263265064402769889534522043703075054179447993119089914369047563205549060907522721881913954989203099075429391695921985365435933989022962040143812616924910480922402825096958428775281382011749529461531751290894712708414601239375477030045663452700033876766569815599770077570259032363002370610901506817519998499007522214325504174165732433832540540114528104407327181628667670974093039151726372485046786150140501270923731498009013124115109746893148495571037443171303953010135805568156560370649543916239454918029588654654447146986175994191264612633636131717847765416964946851841996366428420413503003423669656186633554478626989383597463493240470682399347199010193232912107320419763282221914255209134819951065969940844030724809381875352121766322014609809180928423669813573005108138229920270270214039852527732748242696582285316538828839192690253233362276158034559249810540054070795506089128631969201031445071502787933791753163845684437257014647632463298134729520885208983201623408978280166337880257773909150004335856347987087538155482623555526221455908317216110803921655120176505331125509091910702634599309958199000608532965119520382612237385241097011744621552433846319960979864713542214799831904412089514372304620208668104731319050235728408211340369533074651106251551700325329998218708176656594825031885707926180832315359894114641433789309720333418774160256959122966598125003706231129176810857945689440098453930127916891386175902116536854337284546316936749923370967008840359216512244245040526157331173843377922706042911898797233562980571873994447123710988144776960563736291437121677020806495949289273987627956401537524601168270372579829507544833961066604560829579141174153767527978863306859572864036617022847462478349288601725560390031965522818407659926955592143164639204683310869487851976003875922371906673856101405556292337025288791762142778511130092917607014218038941230330497438428934819968550228953105398007957704521854783766403872527243285758494017592514081338957159934426797479540224322025427689706566721556611606411064460610258928036918673438859835748149737091741891965621537066119903898237110079310189079340377063247477020209746144221205146088621416553027275917095957468344084973340060230734582565933587416581970019315249853739094997353836952926582084983392634392808380849559980908470713179882960693319325675572147433090826717170365373512277172717157733406451876383720964578948620571154343992656182418125031317985989191704039359774644969282778657608311948894651472968436189830902075814033354935535650555015984917931530465942375758588295219400895023068629628103933217011655322542105507770385805518932227789646799782760660110476928850542926734931379219453341600484227222621010329898146254034979051959631002416470728147023609185976438292914868156593677341668527513326255470967261844985866518679543265110729245754238775259747418042509047944606695229656795413824896510516159577042188294101231881145772226599417024862399894309603079483129960178856755711894512420528257383663883951413593214787054710971041379158227770063898077899774531800471749483424880433922699340389362808810866276527045187264347328223361921423217808302869208072169935549358493055794282904252752295322034842460048736709701406050488195588100843139003848685467445057686189909775076956184071581867266076079780934085948559987098233170216331016940870706129834502713943284833169610661765225398673869170301920024076651223656933449066390223695556286375129802031023134828136227930161335721367379038833299307579973802339539720625272301222596051730803015001589405739549187685171377673220960524247267625931895880247700091452690777506507770631823718041028279548901174016478912262586781671207320183008441689317557645822234264520277911886998971577543696628123963760154161763008843774953772204610071322169123746810757802320364729124694690792435714381987668589629501031918880022495667601948981808174634889732674527133951258762236861855357214740467131035173306153784618186235573178264596609290502784221656624068462609764755363354289645221219911651242778919572947448634468819015270812082622745350894242764431505442339229942576416364718805736444362554341212630268269419916701746754554146022329019069387930054515533076590982309691535436699697953419058460238344176310455223217486451514845626626836212489527491075586119191844631000188637995187298969029837110232430766134769835144305201000280472715002324050632785242594754066987466012019788024209143193773835351547803241390149587169946829136883753450936601233873073887101235537671745621966744540277496468547465317895967735845076108991767581372315122715354690925385896410570014855819030475427962379747183105861201102677988294923292706864841649450130310702283508842068483580082171402956504952654057323991250980384412038401562852955812897995198042559699276537090978452170089900225584025917010752214998326990407151921910286474575056422605659266557408349504807463204866808689072223618205629440759570785251504068086575495205332318550221423285469368345412475330670648477522089742038122590502662101045428228536190319510826775275782747841617884244454410487583103245211272544226372945759508537682298888716377854869319738031276812474163784686614933137879324833239940660400699683161442675703881060442416178168580285561953451262813400656946205826902771061752873306219138717832838832849953554050811623334449427027858877561425712924507906831361333839125083886042733266262922778485793879583806395103107259647901114523312157877518249814565007256639535934561519625206193510920618841619234860212789831250399434474828719934652916410930967725207702779022342280520030928069059851736451513217707624773915432164027537563317492083126707739001533373866667428453534151276811266283382093155993284054998704676092496964036267930221344681033948481571622245863053853584201981178910530105060495755274071115087894354515228624922041120694101466113180519768357872226083643005110829783428233768446415285568440886130385764940807409775641751621466558699157074681193975344763192019092357463323025294729927085608313845110728067696801196647303233654663730758392905711083882099503180699924093028811080528688038966358209316324546628035419783736213868896688130182005752860394722059457190464672061698487413111742177702122330273102050258469830831340684365651581134765215259038971448314786093619250260821110872731442258360938436025855294012332325261825551515733635924256117277305982228685782209947125493057711900043013261114488874682745362778265699925309765225227611004378189722125773427133358220473361293469417232164567776256558583867163547277132892334093935940296800152632546364854994232153670780090206420814369809088315278156990506976269191393183369371876570357210161711426137476153293228701277567883903499823877083730240625195461531971809451413314211110025759050902950882367003753962275621317478764400884771205161962965646059373447285255231289685644084695434864016494202652857061043091183376957768947306778572147206805358516236555182109277372532751350703830984391936917946255419664539895343918332906041763344315446306239591538465517333084328992648315706648934035574624523083934540108706628471688604349247190987447956929166159328010511019798881324098271722086775235625078961829577762343484168805624980540593815734985137284422409725014288070630106880118501559189851719180865211622865259291198916113231880703410527576103721638643732964142884514841910099397158467563042968312633590250608363417772128386466034158945468141502942785531990736987276276135269091903942833147160189556410983165715578679460050089907751838297145840900922135698215601357005187162940768395059336350542983769200716791039443956236681566573502273268891646458001310644053057991591706387656775545346842167683253146317758310275607587979307476426025698050466284640099000922756694511732754399873791693773463485610504604786553023818719950170843144181797302421655845159765758820685811966165435127791035796521252114869183291747408871089561750604634279578642549112369080179249177289580167865927937400173138632481964727730179451613627842094938111225044550672180086740361812062715742379046786658519539573571925483577839959092728102822078570116573936711498638625549787057126868571661440297872465857041056617515441112440491907966307824352909765464237606085430770792590467617554394491065007507822652720567310789873440169867317319908430467805362513354060185188035298774884365440743030731319058803409880483788813420266139221008274706300154200291346183785843092087288125357845719724726225158335808018115368566338259660315599161211265914684510909843467973391926839108834681253947326322910491237667739592628708634302335830331126919028965256212592222162757631579726111754436278968391292948238225630548630469752956261654233895172996079801195634104643517597972303111441564948370730439492675596770107553804675033822584834278694575247578277172632050757795432703303126906005169913157458457785226461705906518272763257418500743012595587240364724266735744256661969093301446438763369217282015794216072627470966734748093025697791458743739006013315250642776755736807590895266441293184831417803258042280123477783781761672221904126476764828617498570524338580059134420202944541755488491207668492207722885286835387771335293888381222459010344905250308168459682960080960067198295495830124240568738484972487083767494426589139746445555666399707236788096372168513787977335919731962901426041661233027293212869555185401380677113094791233779509421959030926493548395898361544478014527914380173276838241765282771668109972235797951987600749304399970772636120937141514923469518042427348303429510380481989796819920140300169298655779571707020739545996266716561195157457055075663269890927027390011376397813815211012165419770465268538822758873910237798339038444605560774378075478386918004785335373875691590893355197435447701111669130691269788761718174873163980858141698090571427669549926931497863553986030055097395927424501350478448055079506251348038201259199229183386185909037456027290130439828218637428216909666192566036768803243359896029128078577968019112893305884665990815987403660122320781596865187759185757811442411464561711817389183600077766487302582280264331688141093739822923484120983362180647918691812177995939598674533684282665551026846749990409995763863026994347383238431010619082007952302600267500687416790108778380079109163362449873961503591013152557478917731592030626878728499954186813132203421378102023037891252766143407676440725468014780390273605824699796816320005875843226469640049347367020096170775147574867988510397305373040898171553110312921791551934666310238842165914780647345238722640476176251175518631177635409116082716906305226512316728730811709010731452097959559454590976154100328081016731336001260981567405553612294901246119387612612506090680335370148966324053350389064876610508143237667600206132712509261944308354016236934764110725690309119163758537415172006836153511069957487437693029524787918051427157327359849209723006354675810177105964322965260648243161520438005204928054512343093884177509510086567111845642978671812860069805230275834681628394137141953360713593731731083937359996973738831729851491251831614592153478294602573116495536982400414428895252254796064929697022118502171552561295178520613443038469628625487027820807428024380762611553398324275688905925265587310189369570989008397354199685960586820605813380312710445197587235533294449561815385976770610927511724017671014498687979476688491453399375800964452625927293248902715348526841521208795148654935894070243276007305438511418833889008384631227006546787420020876413980970574387709306211202492002525784521890131264437556759456292465677851599753791324156949801890218141833975728351503859213267925515097567857646934282381219202805929762925962519812910906350638128954853698795482621344439585322877373377416992648799542546199701277006597519793592719407927349546295616789124629317643010220682136343891804167547845119777254488148612921140913207242336953082627999017708013103093881274701738742825796426909203226075172850308636995566189115269185803152790195390576618279273507709648470970599775019453390210448783688973407642603683770836154565065227216518816357131493446421597770975400857087867974938051327120941400783655978033325701116168708093380348855907342898917129818628615837322994039584824648093337121463215941778434033587644181272240122165333693504630519177196628613257789002877530489761146858683284976470784689071499602366771750279077872668347142570011445235005216229672314098218869608067967141230338013191213016566589815744849659127905969409127777420080081043869925622667855460116829672400446720937037838056631299365125257443326890125784671480022675366833290119967084128284624795200381574988040428193021999569268162344427674205040000573349403486641994792851987257235773468959391348070439697650287910558842559113958976625452978734034651240865958384700054033954545110607714014240015761769327606958812934549728523227537922404191065124997068105929013203571798935057319088178724074430130921056052576446950953280751000535354408993214580607012838493663504046123318574383527867743615192334716541295199954338087141504901174594501546277084796937060879705276082371612692434307090882569054367366075968476652043315958098011737113149549020050382407095332524654622699901730124820860922745989517756989887890056113115341985989196715640626053156870462364158872930143939215771850536576634655276887589002715561601232884614819733749841084642459115423462608394509164725815629908910265986579250606572214210789841171224948691693033269413520680172240654947530646719079361362278721960320159868037810870863591662029969829407054386593418873681008065417990690771591187889027054918737786769780619899493400425877279090016984331342751645839333710060187958606664573391961431225915739094399193187655616673764421172984503378289197468769221785018495732385948316113425802084612744655443973588076357483939681322176045565161945883892612353987564906936982913629596439974896555518050044753223074455555831936199306143318868853952762354288744135239858721157750123244157178275271943328560928779169308327726459449068487075620497426504631225980937770772046050813685540343236375077501604422085720925355168487995071525626823062608012957753066269773887831911494823250576265834061454411472840507621773568528861636978545222806544614302662539084536509261781756881796620867977410398352275171635486786991484975986985631472642079787506038151957263856306092863816972627182717658558873779045792577371776705131428746250020554534569923835300394174564993959480634969934541085135939545576058378912570121632072487895164293971010965188732867715468524026847093480215330933821526512474952172611654095816254303842911426035732462652662028507677220078998251089358979061322788847155083868886552683483519515116624502169989769301848218530387921111543923330133410543127627866575544167268870234828273481382010458965585179022309678644413449082878164193635428230981426519981759770482780072302460966809242874487010925935718941958240116096734898128420586235777001438236739747312299001095433482980786217877220310884972306434145147804929196675244003590454500951206208535728167012379229555311021712346751110251120879136734794033280596630481712676619970582311627460566962435761448312247359268684583249652208894433336708793082857573922163109567972892247449181930297307164627512026656193155859342221267283857893630494339678679693664391713921618309064779436292466327177708266550056044681286985123075136351608366357905938405474352900654932109597134683587338678569657607896511776554934264037800616972317149359793328383928748582371407142775936746756721113317739359248038803206629550327898381972489663398976422386895799424450018384194634119596868485562546588151585919539744271290076190295429784417408151061111331063389550406970667154038619428058580725260330544792939848684624045684566237237316033018544284085470204510824847154952457884021395257754420105050698070961890740381821184169574619536609347831669246465539271131449104069505925933995804696722461909480202211647988153814382889658352520413802517993514360841116340645815470639758308489564041593079027122529985827501634892092866199044781743951631093690195405643879498709891806119379281635024766449526146501725371381346006509397017996187690341643093931417538439252433910592640719958141979663091252814142312421686182212722315610535707692412564806851870223796420089359420276766570978705149720072276505766982454989617548694678238502014310521037513971080008030465344784868475856852708031417129128380241026949963638293547314554972803909714338091210230794875440165359355105662363389114865578580539347907053242938312405979779624348560132623820791871642703968119383345511393234025236962882434657385073494228311144575000675423681358332621455991983129621191805924214632443862589687690243532507311490836220437147728117808161561350125978833240139525423629483996757007431370274959502334435989622853569877092993228478597164346487335619581721286551038381451074408298593603551325048642885415119903993636267855135070387415331115842875108892183587631107179783025838211200794700777274175964139840245090819342780775161171787970473908414951603387459168298983499681896838780109947352878388889227771137544955938087694812868631536742419947408538705817155124571160196926409655975676218328514776462184813581270371099012315772801729400226276313387633611596507212315746419003994821624817488846528863173478620081661578902428684462344699581319423763845179197613038038981198796297095860783067561869340324995311901609846997215059548738326738087884747029045609294514099375151709214487726302133039040152242537967335441181010803703757695000849019119680795298727368440654290519793453625526142417135732705864724931782517560228425308206899662374667156943001019799172005809777246997471732036587784266164815118907900035142115563940985383574686301782303066350999593730797636811869764953950929667910784296153699917521511886266784901143697644512017091668051729095466074943663362974862780855368549249367738259322890589374113921336119267065891839741447270575088052656347390811335012073449553441993195931430010034248492184017538680085210537610284555428274104147838557619436652654773976261469674680031746199260340564424613033088481414310235035027589425871198352747451703279868501646363236794699999553925446822488808722502850940534909537283268609195314792980872069285864781031000800443983904257172813359199118532967322010906958750629037401967605007787823457253362730636361230210931018468779241804402267942946514514760023519273176133687712752271066986053691008547979302080730184692237560638135359398405247782524793043722070881710869832711086204688782433853518481445852109554010103766959925330173476076711077437699511308604094765731947856947923989038366768298548576718907189115751888691466942699595616115078925304515420829657536731865824121834933418647807159560127696547860614722434277466088933714336160184286887195327096866472865568299217215521915363397415832723338983913398996575200540659830865938921362132423077558344296729070278050748193055586270788889591073209655559602029750640897061200626763356391153098837327373689352508570676201197912207273315122192001217178072202431601853820659371130651195813897202427514175979089954234078944162596512506380314836250600648261143477389396178126393382081082772399254544580577791040748692704832146507482061153289556366848715437879050898318481468729563124834537478511494423617804495198143980616588322045368554160505799915131340800152479455575045862885242588156576956031919020117139345180637919272416221798597325417996672366070585641815915278690725183868294618950239995295370500757902250868743576648009021216837440786751610850391446490341641524449640182920569030293572199043980275948126351700502021711933463799179078459072074805143837376762679602940374641336841735665657153789616752681505594811642825489075990113590967128799292852903429987948170760820520382625090165232075550401628036101695753377009691243419254184574632902650807594192405101374231449363435507300682249920490250334819415407990475761904129683631277699250781482784220399624534927913464663393895961772818771271905106578176875389161541424146295385333868761626010052188914277489935147482715054775648227642075408427861601028846092577168251990137686537508065722857835257235801393152092612985296780971276689630611726843021578445953087327001992412814122061138439450652759626403069093228608730626521037586894762503255566867873520405892465016732797482312957685060950924977290127657748176669727561831328339713221566771169262972359480500888860032079949221288313061998005876151438704027691437154178552102390033838096201192605056160829369198452856385051585412713440334147813179225174015660426732384807313751997310894932016514200770845706438434259053114574220874355892511047778348118034884485976322734496709368958449853821666971855432462463382613537718457615300081225540189043796543498130197313468805396750410253091980806418702696883060548183798327365106956793020569584021276351235967534779359635178418242393602805960001771600792016470558797562191233073266240073981720447658346241883157107283747708867687145012595310567814045751325026840878405139853951144853499722711814086976010825548071835323716461177989425749404634026476506324479952325083516904337533834955095444025481609683646440531267051227843991413446820001583337884258532965252654462229028080773397578330139863597633967632217739169074967008066129810737753376154412829144980473004464955684500684622293947272667234054788659855328104598539479137286654185842879814736053336784313920968658185601523469189254073109889539210000281083524608976016206994030004759551030335776857122472943819780451612817361489723795796674617288123437506469961340247885397620199062545513970161915668832960209069597476468636622980683815658517812507883464043395897507308388060331333790273707247473959101350894366236303203012550273224058081841543643961469405291118498810434900060858328730726021428580340176154961886060043957128602182998005807951986044092330406863922322065046375502132525103704211332070667977482776041982277150849812043658465844604436055206961192459349491354013028589787620086358266856960553689757245033453179024880501056519263735055380798231886727504482644714157377838477747518874247780624565021623672340137769157344154165389805619294572929494912929837331295190386102346250568929474232045647725742217728026828882908173546093338965623923365714028552709091204281147297947968553334321825479704890513185434861464181856501508821254477701389598119872677413034730763235423168368146185254803572197657058206903176608965397391783546620794135995295914884845201943002143091964627318703402027608384447856085862016956756736256900833565624395194077870299581276794408291029200654109472902394069976876564766687665969767965468642757065893765065999922823717937492566547244501010891758953038995506039560782833327646265540599703985636919617804643701610654127892694213524689639591180824928747839381236561935541080130519524286438806497178673859579058020789715934745702216139628348858602395256230046867672153981920661158538880756353835550669412203632829491346837215475425201674268099410756372379891799605504530300044222317772344207771677862517347868563726960339570646367546588007543354730626153578966642168796194320381638425909048856793003572856106431240936550432147142118066515071381696019572445544532165856369948516055528516777605050233902202825824074506744351963077022037735982625012386071991770445778684255092468741424560482910301347436598660740400249614597339004027991592940501712425045608848719484385095378341296224719589095280787568846328042478586143714546348805491210205220828967281687388973876322470914212501343259226372054285421144902183308605909721066198485818600953545189849806510358963207381975086559393635111589881058021640710739795844888481229000328929126450548773593056917314916033805636522416924745817811389898254922473664385115637117867293553556184653009973996364892089502297344269297928826564419085775620573449978710272136956293093367877178630281784303499588018538563616061139548149044556128202314397514679711942116429941336540742906818221422913220900705014350661775542559031553229179785341645883217244086525819434989628901253333575515641204788829747657337164670800699354671631453760810960151051350348326541458678361534392675210369402072483329992037538613101314028362985117465440053026268619342678873087374408750141036385123321866216810722490024700472142993982637010312255786930938532350419382282646177104857741202980540169824378345253224085371184011538643413245216909871016886236304664940132952148759290005862280725089972769781989390709150046605152645044219975033558977387216278024057385486551343676434560476435717335048392827619468515417997727894627064908893370608759210018420898764802450991162875381385613811281929045332967720099817484852349870792329787609212863596642113872207458798109659458144522286915869105976791177546489971667319346837147494963192154232236540317943578950644400680999382151519745785590404177951909012024516695769355472082367165145571000605408782836079023957341362517258865024800709671709659106077263894456582868424771873210297297679762432551127260746228663324252748619105371670269454042415863251623858492225306099528490563546757815032259251529863255007213240069348770947194571860413566514268034998991505261153384544166616360076764152761456699492465554565906446308240150570517814325547390585890010338552497105885849499261622920320216297160714569080764539963262149940931256274294312376798154865279267737518836493195755598145979372057859316640437791466977920437947570159418984602656158824892568478862685782379958969293376114011211144796668551456643858808678183251270648422340465602505537848953881374736615547976853826999886561495872242627607584166632502243045799686646579129342306036899831930647861013594675239011765904431284475043590266823986121586877387434374022479237718829076884888584733921122267525206596917047681542144980435552428910094018439733303816055438756062945639821881484967826100742399533720804516026236670320218429623033771066850768745101376386239801863547119855804548435749312408759586280507515449177184825210759436113766056996629430260165001842090070490460149210563349222558097588662163413923113847108926893589654377805958873242996120825552501811645780350859864291834234774226476193820392513293625942556252708772369145769705722517443558341525102364821611473427161214445778618662576291531157130731042857941741143913265084080371235908291825526233939321790873792551603905169010273089421521364926223485770098921868482628853435447162737362084962340727311146334409435615003599731549003226615736278870772087379926715857500831736569607084067573888544071690743560372487553219277831577091236876468853731079420532044804744908455320744241598891993754750769726557083043594850545835729085075559431432586599049479422823473948337982403880929426323792246759617080669443183532225166627560044160662904410220671593805969077150631857629967577086383169493251189914341217611435959428302889672966290706593664880794399168058187579694373358469740635115280791650339852830414320715095327369573290547239706885475297385037184735899407641083260602896255282589487846446107799276814342462403985815046499359210689477992142300751490044397318368455379557446504914417348386429675816735599116668180934916000163082930875371624966062718407894658076052678985460474405359534012000865939426826800951463247053756797617700236843216127913611738727846897994323358698186348402515928348894230708867800791862857377186106437068078858049639908074124752494252846719808288406038907105072760031118760510761350126919714600687487587337190198384260331920309734719955024900906325671669438337594413482016400777994654768948475044051120594903706331235314761420409993785512420964219100716262316450247497605411889132921198385590780842133961091851920418692456776746163673619228159661599962141654517343087783168378816456647929992929564205548751497885546716259831463805001961751289319780487982945299031162476784194065457188556227786799466333229076590664067423290344330369721756796607637407535293190045757361148238054123199840230296326697797490056598184827903593158519661501910707645759120333227332314955541903646744754949823893339840319791964242079545350261959054592544396766453718641319523639037617255345107911479291359199634957904356287268361722607780807130709186648329273711590191130798591801487710826234532195768436852147917083497129887682651845994269472916782743546170347611695448662962505472663666739648591590961830091776693658234986555375224260452289737903993519450858086549051586373935551534560237022120064291819622074799223862037799322144330175523744263802763219149644766675348261515887528145912849975877943512607161493466314135763105523077227857227373648437620878664463847787059903810894899809052213793980705975525324223473211241301498404771662729143042510763367635442946286690144709545853382429446317127141840513428435832055391002322694659398269937569637789779054212868915969718997182008301259290463310730363648339082711945276852215748124712719203878678144117613821098615130881985110457752663131122796207373107581601475039104428071662087809608458515333110820632789643451555628319310540881191662511047540180724083377254052902485108843824997308565217637475051411219191841388969743601753375311027736487411117701312955811363788733511802899121971040239404562915362286746384590709752499165087513043061323618070814724848277586460756934710015288092713333306146066803251191846548349495012997295085741887790735040404394199482874321847939722403523350348233096501154482457172770882404175364266665852721088809700267179437675781983386236254574032553811602509521659340662305792892235272940407180885022116419940983482918793592077715171845932545876104958733009632039223106187990814907703908313510440721499203988386845681450309502657027302817952342350575461221306900270565665152418094581353509669116061342383346063890871780439557443197490804221997604430200278163686521127217689943321795183608489630979996343527720195897188622287707754858541994105926454022793348506329084400814984108591953231809428176587651499713317844003592882220728949556349062218570171268079149098866671945320975336334858064230366849456463321525571771300288612816575722944202991449715522737137580033678179643457278752228533744815069368875550582414657334680882992937498760131923940306963921783902053274637450575135499390511314060164053726493366998549451917567350604446802631134912345804851908666864933299837427203813151218320519754075533158610354360322727021720336230891094518255519915687852756066907958106807221058264689504664706250907555054957709592658150739996985306908517415554863976408539627806959367195466878768287277420817357778991902358681020423235141666324533056835296597073157473076102810434018603060831925286997207068332040457039832938131412235767532355921612887488158407083220523724932999315867170244999299009211216806488736529490219601627294954465788471441492089899954506013816924907460849373979758945812895194125993116932812251192230549383679125120273171811903704507305240721283736411703786168509135176208285093777879734927263932440904324158763495000915939494457666411087357505979955165857539511985769813466763913941905612749856320402680869075754461975987138425830959409090253662587244796364004706606015277194244460792434805369156270702359671585078715660706747045006449732240487062960657985421472253530707322058745699620366504173792509641041229351627659234222690759022986205823224666051099666626044706111070097682698267902845899725290232243276693479155285635467917817266831881258463664841602306719400851048960474524332401374699033682486728447374768564949313250392796245122254024573710519667220589800250525759423610661491285007122824318545368221382638524961617263710671977735209843540427182443416230323211568130390589823561795716695419741514384929902670836202141587807962033196665413881743025942956801290361131413074932647028315562783377130107874566920384699330001246700882390605988762083021831445244547137901699414584369918660520610452935082694695023105641813928276698146205726045621758877796902847461085488455521657936390944301567789104928584597660853498662776962006950805523715029536912925763638656559014398821344551900334302745967403167849096896165500543195700633553398865721573409426869618554333575215170989439890163017776587132499372820627816321572256444852114384465819220730847607747554227220138175356225931448154276381235870160642532367706768594636216026234004707445754429600002350301077826454312816332548809199524764281360128764500554998461037520148886189833103454177773139217260600556668904395687932792124461674515297579872359793264265745117723919041930340185332207006323920002219547462127052629069655905212208454018802290681918155475956234956301668608189093424901355841916694460694296509149594069368726533940632735935542929467017103678559680439724725487581694773146893646795340499136820605732589233259219967756796305571549629526645327553325849977677761756999531782576871363557421928718782055147933827522542206610549939319761463264028593950083517121198440960561439207246060598561527212131068946641316595165489993872573448615180324671664336418679142351878448563290011374746626410690029693068997017227767634831071117675607226611676381916353690543205926152978705601610134157143333951830588757801641613949493808919275726296275394500269638583282265076852541363184432866800002710433898720942716294825480972992879644102274596470261894622747738325591482271046242401654736764435617316013446196350239103445176946043348189152132076011261578552026575692900930762553478390510490146033101989952686472431902126283839566797944982128575481971583150005441480285079405552036418046702581720450181810352715651085965004162954324238323039902848694974271718021670362272525222418179378924167168129973178698564149326042069199476113307881363903514172536748269653378582644593653178407198688957298286689659324100878872633416323829442397120829936689872468863358695608650981927630292247561328555658279506133492006052840237252496941133353786777074047323590465473247975119791971561391447435966521652012226180233366246037894946731719241253606465818472980387700036345564391873952173133157525116132719252910673913589956940005215927741955766785823081663581004049725967199565052603415491356918921108760437625987840194232981683117282361206769999714626019567166594486487466811763167106805105026914355435161743845912041710296741469046234528540301630647423002620437647561601370161491776072151090586422277209674961713051599141575736968932048403636954285072231120238685458049470413463862527374071498588839725654569071438869787317300148337933118166940952009208140287280126125414292318948300977114129413600074823182620615702262941987510550250799355077528287396678781908379378412116354855814874958407784932468146848235979572463756397209088234184516748266814473532437449050103297594418257927834076931005088720082684986664123472254093943619257076817350816134631727961633075009226039366965942325178764479949772870312543110429438165441101796160789686237632589357081018210547977435184856172649944970742757512958298810803583300093228847061475612894054194798623953684459337937918348429285428506651958809633787161916774005886345473833746362482891530417469576975907308381702009103199216039759911509265009471996521653957982651609546485745890543646984140638068420126380693206316005493056428503321243892325012011855481617138225554094563104530890483393985889894999271669016647877710348049450931781928739306416880126810909205209115757114784524051371855443629068240518103676434934630227616285448138798284385315806590657400749395216236579068574095126438157942030426956080031582823032839541174318380106196559831754419883604095666934246078972479832792742429745522475061135219331529426372779443463117550112102073965215009889046908819716875781756082413101611304135984114883800437717092273167464060104922197820414647162467183118697003228982110547707119243147821951926731786678570069930666970569852440893943967783226500597214346169266845527849806072596995608918635068801499303423470512972444549143116186424819755306813112187180792892753559119424320346705286233150616302699642544626758427715907459973226822527406691047192390421463659491185161031965285088268534723872246798044923837454710243157526766872774697950220285278856065046255049789422041119692013273534015986011929972745240134885520627886231511962184688523820949740788811035635188698351908211407229863248898934838822753054580089642807030692495667224659258648979155295218828567022596627851963193476645487345728275574367947897254541814716654478900646431754780631535325318296688784684040886808966608251283635355028107241775695579331021255179638132948642261840689060090443193405096794036212348803843789996664797627712017216891408785045427812927818604155091579774590765990670222770455477929937564949531097766410987570417144929027253933134217133117578221118114597807138134702072425769946238491495879195649073607047100652841952876606852016931031219728773762792903353719916098311682028527678388059760274144775201310999321567143677431037912060612190056186601286231921405151386031403866757540203688507786703662423794795345792466061460202036180788071663322290545851716411460256158865913485817386485038985762814331442099039058239794937268998879266679238870528014479901112138076409701207034486127600221784636575589447600640574221812879088562096150768196423618082064287671751688400944002610074040051044041534275395315070056481626762349199051966659440135243740870347380937305613744922094839815987413655801123361796282061843062580382370426255099151262175248599756000689730575790103505728179627908626485516281788474480882678988732747398749167909854831707079461780763783233177935609763885035040617960867214639302911152434594067251454897846436736367477057330820400040256200476196216064314454050555950658365680777656424317523703842503258389731350095372705943517082200326630805853862498427441896141720902966083943185852543362431063239000882012167334387524902466820660189175219830203118053745329833160014650794588239732594789523222249762521357273186751133015680442183032183581258686415897342855159536800296727572549066545200922830027677058439171626125931358646974864581067891865052959268200721934384382595786181964455657495073492368045031699844372952238919212305067934307860677977676153677504993867210460088278140330220169468317870062559559002355373355502425593720564858697618748896061267330337256243654531174844376841840490506807050761051509489727912141492471114544190857549971940131196152813127280627714678051856475940416897168121122613654215262902804525805702545021445375389539559833963865437429708439923835960033233409094514055496151718976961927622941650149832650450873725279116645387009124514837520698635030656811571088282319936630689819595339046407848943800571300561631833848263706325837175393972641903251222883897241888156582748134367196258996165396875807898293774087462741580941166638005111421202507569922578937686757390559742549877187617994923619175536984635773181579631159660262328161199616128010680476835467665116173755692025303522214462499154335222225355387617464172968170993974333417944422918742064614172107103616487306752853471811671014083747530665396622273104190970403154271629680732328304896189776879011898156178705477152821963598633938888713464747587343606099428005597742236776223830004611511153986565411484162839262151227945127769679945257222745697272805501075391027034494212897887419070234144494256456855560106113267776577093491768368881072076837246264693539649989653359002392418555657487011208034065953223049146258564145547412380958524236356553131388078200389770093403125431810498449360007185762531760690324879553693884301081787839368971361079740876315737304942772791923963160247666486685954760719709845170419164249030030352035070480161168513076593713969209376826940206111946932890400501315018896164401887056368311866147985308899171924805401500402517800976605425187429462682902727969428830419083910953736295736002779280465079443945281778676908090907742072972280288415611213323765048346952983806162018440145397291746687665110717200049613453676150571219910382850089360821125752453304751117049151472280584221656248491907537457427379805624296649967943323722154095883435951873440576665757567249211525333682443658535299071547562699049883790617546132769980214842175518454784348437787429946096611284851782340308939973735488593685691439727296755069451361759374732132760629232397714877853661797967348506547345514220220676754435723317006386316803881927575717499627124046535081560914126265453479123929570193824972125876768812036056352058528097820847702532857500957922315087710448023878023768624107548112203332454265888167830591259208071132630107254412182367090201439752091918608314738708200845827321753835042164510763572715533642220415151345921708964286894629120075029477917918153717142615736937053932901838046379184678262618438543713003583834798353303782422400235296249546810532497278521258348758972715412269177561395144866833235804963240943555130980467646719279308829078825482135160198707499653479554901419694968892063016291197213437580398652932571581488824944701988714280113948189849560217771571059927836824687903015551141171296376774927938207335413039176090123352216242656388917401513256350052866233294839228928271021123670192097907024783829836381342811688965918356590789110290683959665340907486598742787889016231708928880607755852223363561248133652010385451598726697019487507565235103057370462885045121836716342337876137949907478994448796202018510952075243505064109479330338186947258647334086639388511544277708115089536326399783583319642105658540520676846500988201090347711347037722961835268872327376546065476169957189574695885552152810992127775060222920948279227138867117498671269799128661802195241467613741890096048093488366873660475899466086217580996637632128646445624308230276428999703666841264912785741645690615583529248776352277867795182298725587537868701767765200640323167757426508624590113578757465786585743548477423797598325930473353221999913586102938318306356971248526384750447722172810364480286628794621015943525138602387100255384324745239975986653134739637891952455118139130850952286482661077386453582440838946356298795272689494789424518168807134604490911812021789750071974781595598974596051199064167468948232296931656587133535765903827409469342902291204706120076750041243626443917758845637554072939762303597208553532864201640545193073087616055076192559392838346912659038043448119554440062510815822428206074889593550728626951620001407405788216900048673048767574297728902286012038676241599659872042954573659392397167530961447355976511068678914759115505625809515676618008902472352165517755985517383941237003772925969482533179958682591916550707927033569199397836395961943092973133194011863284279130646542294570054729737745009384677454780881276823357986386485827590615515733651502760818325055640116546045834285101829217813069263629616708556637748801816800784752426623551781505400883660040944731677242594762776760268378380754027069959536815150609010575563310842389875615582382812411532259189622717335357279126738519066160067701423561670734337447961797617478098377451947400348500041638122629393188999156246865637041457363779048946053387906917545018798282932221857885410459780257960212558123555413607778558316327845395489080071158334678797507020953412230494337432516418864511928990415346673489774341737879502193863089224126727425863342894092477901849032343702503589458332108244721975407820151713314003736738193296441970678404616309843758810384701758487595943298537851396866472549888277430915626961866704138436705507660060226049947721427348623801548852371752465714054210014028889548024172308737568575905517952159753778759534693930964351311473192887900020302805538790101904497133660747836520493810341384062226494506447912896547024181867678771615409754557245599315421394792452835811224810393936547815177323517847219409360660262618734604622764406856962375863660461934211142423553089795788149027533396231107359694874690644221641616487979298290175221099813039907797091024604079392522767154997417148556332519827021276883298546465903425602631489068606911306350956684492795172464598222583333351506152602153562211941983223594645951803054215729142040909117426110920761749959552154504230940573205492585633054369483683958446562585896337400253870183495503059887845969677841886909278100253786405492665765836320677470768641208601636565975519094282762062844400770936775508928733844001077955467658287618957067055963231712537515800881917837611373287256737837588255891732263520662147485675045588592264537918992383617355245694004714346115903322238810512171561428495353310969459268143876034085026603298855847743942388967546997276976514491800068134629856694748601899819417345239335771935543207667521299168236691600246133945843085612604855430521026498674274995992739105303511748700129314705187812061586871149037129530024817261320721027615009412888041644440302163532306770716575504423767655442203761443851594798851029477927103572382525668140492701774138587049393231736721065748545289330268613044697172997793369655584610236885693899416377091801801601860245886562401522330806210222278950615818605113885204286146843866088751804157107866813061673169318816039380028909649562334664537040199421374770086796446749280492435230089639098418250673081826989029576226782215911969599892835832703291463422189209293790752433739160996371522589987323958043687433223342429483824669721662822352286264020470589402642813556834358972972092081800395531933137203674371104559105233554497926212958537122254707237321105570235937404611622293866756229226498038308744883179374412665948447648742967919322400960551334412552607712321860427707987393588256124971071139904558704912579186408027408897864106988104811485277412518329273676848976288404986035378459082715744432117379825714475528059672353694599615093332682783299545314861523148950499620278647365891556648409356740545809095103060310553551220918419642891466837320215256820269078414743393900140835464068854307017813401587536705851531357333602938744815977029747701613661634654625795324027783843440746150106111897912748184768696977581973416768165824235643218522865302269447060895858273789056485914761938848545681799350268200779953853207644611593665353685777835984505160632079701104692431355627836487690383760357073376058342463024870524755682229735967974594920257869286758882174735485869905926475396767271999797599838519713312703769140525417656211748153220559795151827804421741038900968694426394941586228522744813679046181482120523424873998061128365721482212814497282713317336824686280173976231870317912070876208265197785771246850031911130815594495711257294815570723074002167547943216980635739996695361102642688664475909868556845593685125080906508022208988452381703925524030368339756738798226990220210735799237436880734440801009415447361829996402368224022316328494958918344639297456420799760471035854247778414131054182818351801561350393052303548834821285136668373670821715601171431743160374774301758723101885825933196268338019707431476805787552104239156198101268820488380104097503409618649960933917299831235096454867055183947559386608352588156706606962072906968419093794834285840822801614073979703576674583612935941186206955753752776033967629391092367176624832922096745811131425170056726191009144843724895834417799797772445894741173467860767640661548511914026450386340453641820092360732389462596192478206834126468735699458906865501638834679822209654076645737109526537557135236159329455916751387351623898957311945326525245839189771883240762376046901798842190273989487145066212012628594380026440725603845930593742810503500706022373220260059504883165164315879107237551438310308438487566689636191598716419497790529980621888664544993170219364655415060858381247462011022422923367628081908042139314449275281728369580402934112740381215637805738285770580196628157317241906064197284125230305086560113589211318278651474984945689144565249854761691509962837009827052701020903948283730137076522730651248840066664209967986486139101235938245114506122389349071669064818238281119506601557895250866229273378676809080030769378374375472010442568621458357387333890691855002625332911106633168711065309908616621713351932365683806992816641143965826291311351390424819338673185090951088269477317676862141944484103818903371054664872248040770474577560866759485796385222797756793747337721006878121438361219771286515901958264663889605390444950785453902218232463022871378992717930707227443008633600864835603675500315610217014530157189094459249597196606210876824599770291763725577304605756057067719860511795967324108674470969546904414312373637131074197193171444317025268207180059927669533633376046697690261474597429441853049022705706924834823304874054713441763280356612612518453203844636021820106463853055324238065144939581933551049818086617157172195452449925540682040173128084448447195336260410228753578393380157803159570062460313382663437563772891648194809494696855840194114386408047161922158902062066557801603668440697142973724276844827195184387127466810035004478124696336333220252309353367283931267723312986367573769961419637518944099957112994715427661291693732275844076718208436369927461410473800057436091389527813766041075167704310058707651916875258990199320363813624192033449484189055787532159239961455607622064836845541303830123533489147152528290367914835317454899288784258964021440131328967051714954903037625642074918436522441209204022056014791127334932357309388075291688424646696826284931856358586724754279643116387097207818526453077275016095772830910973653203062715148540271578045553928189858009581741848364634894245895546355850168470183351865462784928920447386638905526250591742945761132585501148546983604014882055583063761444450826965307660491374429049532332751979409316703002732361434615598242924829302726727930269449391371427882292120393428711931018447684949815674885858895985728998034706294613105347748376897867128971278388740429026683728869667686543629387957943989669690842662359421419353629362256122783636477437270407374636797120765302325303907997897416623111119883380633541933361527360308483115451127233734260175932557652091929839336976139300228604460625583083017412338838539202799687231463760453622497146327403107436256082708944285798810293252198311729829819217844598284499769704921092445779548257658004722564005602920918060153441781093331907144746302740337641884131384571122838948586692727250769374873788935281652817973930618210431717649432209775742523259053606875269699737321551548646231057991577319662843772750409044681381517569278095125854811804622525922428173875547353527483008989358729373944580075446130571359694112403301526667022836732815097656435173014923775176026199687812762353177395733116629431461296258237567175804947222712270483635097657913874639123693341434458365677586805389409895522535066193023438616774462930216647342870362864588475154873224604956538579125251741488089506068483892201393616105647091472627197706010402308760706192540315762472452508081237381777010226643985865179135914193117039044546385475801038367706069619151824082239462990887874841664174011702962308918504366962241821855193324909204357974096203975718707514342126150920526267549695562894190084917664967951241471392724209362592223260205526701073877192037214646221439398166364358331555066168728240607762182885826749878064004903445395494027043053752363885691524801610215645200730971885470530170277550690571904204068007910499509859383470205150797832783027388204734242278186679452436192280410162111081082781305554189731067842157035883646513550735981342218307876171324739293742418477643547904582074485703143767247762012910026984563649734118401379958523951595982087966786651742090506222687434740689538267863160647007874114412523975668165567632942462524614985390495820067097505619063068747746649551932452919875393364301138420049458055582882400270173374427733969595647232878469518239845419440895999504948257329732869127582744258651986712613365539914720130856067508512497236199409957735177615858966469339555168575063606208755122207947547798312151008149559587896606679557182386155134752822259932875759529175681996550892983791612334865271068135446915450459861348895500893074150078434940060120796099901701964188678697256451686955993887441362543789801579336385946535929187712947793817798798215450597310218140006186450259492427064156403665660501228085453787580956913861696567336720947683060270714110404039447129823995847307027236565081272751112648221261485411525603950746584262135056685199165253090645815927176509592117622390166891278416951446999690901935494213844289558159175786735691632202583474685663532436562463312948671861750671566482989597124991130060357864392093326215096544370392944041734659587062706737968323934893335719473976978823636718198564716535893345020987026678126912005907453819565386202107503717108315358406526731387686538334548670861477119289788545859071016200016483641597022091746437912754146698788684469169720857147631639541063481464684817164983434750606960685565695054519422074705241910033256396631286175867058831225036022857534759602301213018573034179552019478339811247829662992421163984467174574427749298347805839112192779151053515399815972052843168670446699146640803919849407622458866762888171030862237797837718670811900200153153636706191784569649306458205912082695186384835417831387755249183203219793250795414618756135613504962341048278007500640873926414224119251520950216953877412028508801120795145626891425192598598656271279952158781502576519664389138117824889899425044541812157848554025308174001635184326674169865237660348202219841508196209414861582501683574813259122538012767869713946659128929186986689301242414070975823577453166204819652965381284980897547073491548519739538703602714975281637764699358305131915617853178198983627064955807234542506891666462276938259554158689230928319883866727904105995224491426708804576939359168427401040734683090387373338731594284442156304791179449459777505251142809362020966125349113323990865010091171250825870002725665387794019984174351974346432380653804155422776767423611146775776669106853293462201544329712490991560150411943642231715359036476179957887749839116458546004163242740449576866232136869359656071593085761941576279557605373445517161781464820233377376365039177914769163106344184468150931469990053905125492097182618771168519464542340535622098627439216339674770818397623399135445761913430889463865430422783826343442113807356039731237339818879592061725734018073748528761917141828854645371093718575527367888017601454480513991786960710711096816687021498352921906726475564326930172399548325331454066737800765368951593148862969138344245869604486109651536637214442537772244455148892674646774831478235318436130463818790637542500142769627669332206954363521701461188600716490888996265910046141233634068724397239784903102566615970689949595905821230960530418200648830941677631990923879696810440186285344899706355548766896598445920012646863110813980099351300663809044255818013713344891420080973896228114984141951156469143646486098405900360044488299485130220126472596787833630775586571276229406009846863376613169821028486329327581997971624304721354415831037152387400349896461197188156209062144994271734312405889260134720002062673377258557426075292855957712945251572065476246506061206191572553814028610998406694048749933884486334962145994658580855793947709963360954391568134479332973561223530720875809941673209390687563162372664511178121077011472771574187098685079710253387110720312695849676375355722200985211035237702069101940421133338234188657019890630191321187444961310375845977362004204616704740895458476349746127863683041678707671275757700995896338322010310436207941854485773894258518307034505158865690965984866474213467546509433235015534325415260037102468217442951172819455958422424725099922764814957257023760976759707771082769038363895394399288724703518409199986143134179394154684421857109533852916631817052701058813230875224313829908033415863840698197945117581433379825912990088316482243232748237677542043970770383842522683072645422333562744168318333155650060437275148392671703323218203075240787547825370637945521849554052887527990787975760803330745155431560916439750318863579670740124098645546667793130263345972293175317119359973120330062818434225434513379012651265264116730819934490278065876775694524292149376361056623689376659775857331902073310577110975239529952005381015574244772214458486564934811329834344133233206073531713197765610483915751008713286505538592756069371281932377870238653528504332655407165103169694791439455319506839575856109015684932837589422697933812186506852244817594546272292450294009648545976967218730219894329900476136180708293938958530516397579886751321836218335540967623741933174749994995821629317708008379772916235949125098701334064662387330834860751463724845590397387296428808119660375900380786492434368895444388785119827671711688494770939413389697752085814907002076507608196863546679793312432501055269825407063474751370963214259930269502129655864370501871433887125188605134028425322747118501160581831055851209807594455210311147375826810009883038359380923538824179723124451201540327445428783699155584434832615164003835683971651864914344115684365233105345075945110138789364477654888336099977218939343014171115536927338590354790268756633889108540600123014985865475690721243554100684968629597195709093221322438978813844580849377029211926766539621806638681100186657820386810208858464410011658725827363518599516272699680153582216256743186390367735042085671937921587813832935381898709478124848612434631048384058310557118057617990276689044533937003615978517557257059525734253312485849024224937519709138872813456952354322402619372982982384656257969164951121347489837999599367877058140370249234300561536951458107656430258771639345928061542787216555808472323215706644982622391743622244281845652667710388543462076793314723919719875387837978822717503251315743432228492152625715831427731937234318368756405043871697775428795400457675106738031089995094779209958382690660358387090791807149651323553742997921752856505381452781396042822946498374359433360983338344681095401095359154512484668915688453563455642099125689956431456681827931539429176428676010085029036242367975983003504442584385646150094452791737620410612883521780446127757481851527715681360504167143401635498279895405065260964435020661727375246885610563187006620090726358972997087719003550171842457266629927265607665447523428574774800708097202981067123719468601936820583238181581735575402307526897622705084423852156748469969877630601381270079029943549326158281709631866509532635220451579255076191293746896312624440663873467583634016371827376060837431895748731187430036789107977755177353507572777327282610353423515654941708338508184041361004383939966856947880761333133930942678074886601812198918242644830284879807613485200829072610884559825175947239433556670809382209525789603225296485945686964070991467808645824573264135129326332573490667461919418192709759294373423780196153637351983659800171859212884644715539007662297646171090534004365717915357879465954551560898952757660632916929907860452102816367235218459210934034128337294395963706477211006848102709311290214115255341926892679538283535679501141369762783519184849051179392029476253575302402550991057784939914728885934005548353221197625452905606003757001237220226860135995367112327886242507349274439032925493369529808051897669575826680244390418491514097577750523227867188218239911583895860076902793888502566242216187413666839353163313381444982870967469947147112115963417016862489870818498599267852800164737208994980024189850589739298036601909454132592047927377983021608738651980090769801643117010222028372635406979146749918447843119834529910431195999570853653576190324226662086907507917333666052328709323931146264547673668166257213629173911543617305101501753947629639333163963276852764662313676569163633341901386581704704400405966833830345399581252211813507443805868969747073513660574728692894717131371333110645571606484305156582540188971961496218979821214757194968254476637854058602941407862663696967794269498092909277847781409014428436960313308949609060254123861297459549014743345542252863990465935569147852755686411903877038649495485584663980149067555040615914140835157458137555312587227188482222394967475024695820196295214439555408101632874450261256030241240752284046942556305453880201605114437789304540239208134268711540758389805986106466931357274095543248935927965603061743753991167567904211562647541299086976283678147829693499229800243199718070622658029811968722951119811821632973593149773440065363410354210093832954254969212712910171013941909070158648147378850203821074331437752663931989275942227149322403827968677364722908521606279931904645359513745450450838662670834699475534058605448563409014039132572302647293300109040443120423232334002996701433953722821248258413927917232373979239281332877957241166510472292863977857557524563758437398716235217370074344024306819255891806408326749282893478062410571239558956594858986628349543132748445180506412570794018092943370674983819336905388927975963331279003283522943146579931881291285126988984176115756443238368740351425351355526824680744881459644873160963855283847243458252978475665456660530059820392787199140849452491826379933834073100010212819793605520171367960428796809915570047997920392515865588772037497229383277278035499612980938506575196373729489561247971838987487208145562848144825899144597147975812526783939322412861932060176282541792442214527650739522481527860021592061248527284932173274396309452402629788657765267018870442060389194215609599759607298144815325939518846869759858355782079891460261145088400024438189141868441703208798117166198689695885323018756176512220427465771807123531246039088145149755952150764838599521109612574018175403958241404538066272085515985562379473999452621699683178225685076277154123748824616020762275476144178645192572441048758280173215519190962328810798203239787738510084271059858318151185044234293694954097350003425369881644343020366290313150801545486087263429041156153566862272172375042783454216442554417547130744664693541078856312326337513798141024343955215260719891726880164847288749987207225958619415712475332444776448981663926073545533474547985379747965196453961310452436429170370520030104926015325958775837722353491087636827019610209992484906403196096222920665570341490570213051508084657063108797723857820937098591842115797079448453394241067977228479378550115251950950546250670409230795896085573497760935786958982209900297308191048070381647106550950761505373696519674959239214700531523825260377424660091266203065401391786073966460024998486940188310893930770948815942887971302143858906467801987957193303904112439304798079243248981139634447823722183273517399482766145244372963149800861365644266602010457420295409978869298393566163358648167473096305786060031857569594263314594663714312793007663132825099179818995767310385961114318940350028145960544059221251293384127855955420907683084007289871891486396494220283871695591879995607001278232440895237471529137787147632220823619482902618889350958673987603140437768066773006432405167179403929640952732592117073740458238496756654781525898337540690293609474742934062796493071308589824856974327896357995592999856101608400345323255882405005446707033606979168955500954574750504251983306432037208393568774356273750164354821996067279130150169336562901785558816395088221367993148733362902959202031886600573780583443394816395608218186784184910798127043001327110992475585278813907190709961253508318787033622991441351206401112431984942411984708972542088062503058824665544075543422482492486358401553536811031130645396459809102432229844425446372954700619985051589616893830470944398155825422989318052276593847986021275272096696651880140577394000294864449712108953016579169416963881189306375712566042448985780571763131189658656277220713481253742810565296813700211115819822430946238017971890318579123374951088742603497401188253865038089976356097187153057797923947684655855438302324802414366645492682060197100558543960454171210041118469556677918931162473876367068750520916979329842605967396601697996307133961814491155647470122680758924549417761622842449262987349310665829594447453976622779378881571671703359909273101707198229230453283589640371393539376076734563479303919792313963838041552146593547689238650527746569905973487557931154530477919596506822533797304073185179840613028972128524143460346774730179423285385946112141387366851873222473267090098306613953638667817673572170830790816565009776184317128249996673913631171561448627582448427301842206945307608820392299090782575386666520816682620160383100446107028470496685798755517487178141006148234082577644111946902643013954425604071057839913720409310560097279836399233612938969552096518751806767458835907351617039595987120699460613429574580869936606211607621981157288776836522897229731656092950687372044441909748020464458629748188409193124959054573373397945650957699950915562772582174188537978187508500202541442544122599963115916084423549897760459182381599980259011929726972666621078623936135607226516444860254309510004135215009536382658390723279253821754063980341200955728311192850291438516392685670120448149531043855777073603021908329894274254110753099328677153461892650892972440877960609368636201311454778987269788711673340837177272255277460278431394089420640605012844371400492458217647700586354265831438667565868013996524260457671951343602021793992622468394391731129174311485647217075759183408806906485467347279375140995725930350235847501874883452032689158107286348612846141588618763595525238138241910956750953083867205559450685891601683732178703205702542819328644895915966722650758990048504341802011078224333480452196563672277829903882347576417175539665516676947872314187789535346027231459209424253049959604400064257288818113736160230686239696347350467842373327494206241805979844390669546447854408301573298150040696530183459297787805834421887214593175510774611201639192239447767574513038710201580218407692492302079905215313378943280615250213495730874533500077568491531896507409599351245766225558745233419815920878003032543075153553735506798906779022489194018066875451788306510090992538937612719550801187213680468054242099984503264376855798680371603637599798729853490302798000322399918300865467683483313488665620410129986194996087683061832623856436014907995937802097530001166175704942264885798365774987608505652497437577373696893584045770894512853604553695775249474472866395434022663840122113509367057541178379978758782210239784486697871242236428602528708482569785275363816174749930194365457206038106964421482733433313846080593717551539555655919894309309650388076747605495179637895570767661825423976835087129405347639873122851969782828621927251021251873772846196515075977780646137121660614518444809718937847593266462357070109570216985991626825654897577788902704875777376313323706258342888772066049868036134772939376311059695584261479708070236355114031320287195196868584067795510431409391304332030499708789440274754085553608829073690625536143926453635710271189852318650313538834960835756699043757303575421009495488357655635321605697307614263588314400869554350314672198134035869475946673504984735722925099638580062370856791644070476026106283601885081363949139213631550638582713973128666522052658027134999426538942275796142328907656880318969358580779793345804532004711700504064699422343419994065210589333866191246838600306635545121659518514020177266933137732105827470251542072967132784199838682619225348886589205271783262678676158048741036844515042319655410951286478477810674944817912974108918103832383098514089221876566149707954801316949900533287143626355619725002676295168910139392614288320153108542647944799449682101905949152162074505640863193014319633813825883196122782997860629936742680917011184667830731987304209146206899101055649316371642079745238055296248006203953911672272370551292343650500657647019057024941618975776356135580590965410656696977263711305260176905889319190557924264120763408155758266849379907447328706460853653654090098969256940867244073966265198195959124600292751200708327106859519011226094524890153705919602037501173618242139667138340675852619914119132561800745231878540646058651236435224512799365686453272681093557676397072038849053681943359448252131260856674609251736640674615286103613134279407241408758357735561587631528718853807242851043921521890441548232785820539790401153055875136218839400408385650378767605595765582412201811542253957356645062856748393805911030775977663785593493140415794302342934192968475506571370054495455158648381275326788734715438858035854726226278662895177919272861247125203748968904641811925419393372131795513631403223980819718830556494009427704626157934302193386425665856214597027450746030019138088250947132913113229025527349144176463643772761082313746053507405355497445988452920050683185183759884044197953071456114778956053286793492876844154156169867267086037184614433192788859572724946582341333100142371914434994324592842277541200796845002397696079637169006023763785935112955721775710153880695650572578909034682847453696966231518275713592223520395251528888077403157887262457556449388475969143300655174575634138269666741572093930367344080363384361723248127208387081120153189020015974830463207215400141851474968959932456535894932485831922740016350528203070765900516935505480572351263072413428124914308747129697538457337971369318709941689925215992845320042098355452547673916314827287706040136510440713264319646087605920116214447017102219948710355045707181244032691343553282344524600627629169389011524905582522776756069415549383533129550489672005171820197272451722108862971829313475345679398927896487161398997045329042396014516145413977093753983944490401977176677013833457136827004186572266090869084046939306459845822159327773069931517194433281249465524937551435853267340257869035020332892385721302594849732252899755762987204694821447545471320214149747151051750425268434142294841832511720824390345641893023492461563917416583964469082122792665895433056871880930067125753395564083107771574697400953547123353489124225484698454551446089055794444300396022621064706857355864767696626510294181251604721759348968012453649407481843354428484028553420799244736201118632209958334894645488694520375250962214176776873619877213947127354601467511984927348332012712449575226675261538155977774109146218115195745114440007865024462565303854922283659274431827065029650934653354546312485709604879091659640084934554291820876241622548193965338222055604171333920271774085278701817995839985726258471489502344601799617237792055874147474203240172683462056617381603720368196325376116663600110965403830799817134235907048701810089088085865379540053863298688334887214893948586764866432428185095265721878424991749032271261070286318052344696637495192359666704245918236033303442974205241437789389506740792081576159863232339608009257912762696096043340098551312344827282726048704308628343197448203590419243700779510492526267115198726966686502368951766678625866632578916026460050834885755707761475002168014168570886876763863713712730514864040322237004840334242320075440413967953717515975075440170168509368125932959198048696568992351086273918733205818798620333680177522294468104127550950851184910183043794060626853619675426838041685187604372843566308342556427603775284992221408108669300579537546345971949167814983934306497862713491134458045300609678095902628187385859563993261744490975117803200370329255240838578505771344206291488010035870567751038203769218222037518238856321972718410767299691056814560723090887978112541136053409025957001458274313060095094232616421054702079115084344148507566951079817923479597436752612512882364297383690925255819961719822924679430878949686795169900716598379623200826767398095157894759043814908487419769198758157219019531664208808867993787515922995767856263064229763563275151881667530822977346563349001373728084460265001094996792863673964031869618244141248374112574438229577590386924779600689812955854430512853694210535067768041662530165168221947935252664706928213655010938367840428049848532289545026346624966156435272111784658549737781563481304652924495865165136856044404862641542665621109678976630089627100459637880319110107280735618867506002111584931543360825445455263965399461360111312922451857719944943371326024691053303747349925980702616987077528658841705230840615217833674522852994833847526438121611956535218824312865035426242606208259478817785830296953968088800978529553564559930351522852577436347211920232420320420981394393932857755550719391459458572376476347717423981806739061164982101727821312409699093808514961722457212503377328451447553727034720592346939552402990370322836527261877060937747145492502043603269227884809165354345761732684060508550901108746857964407616345701864666388462219483556212246409723994054442257828065260374136340695378578861454003683768568524563801841778281773063985801012766458634663021098248168829746744420648198741119722842742143374051707096216607635833827812381295490727916724231509320773810993417820706304728827999874810766257558446201948567032967362185779081548174815638470514093907466197984683447592819498338764585397515126621952399281777366060998865900169381960865382390923277079820499058628465094591294151415511626254473710986847726474077831337614298862149474765325392709710382662098984971603472194878054828312681413004698223087275997165205203955132565550585767460856822781402202665151875721306265492281861014265987408286052154157591455321560573894674748057919928136534074713720216124754036401186075344080944370192793098974540217429253894192768499826817491076964346736139239355576535089096399735924906337244777559234951143356079209128059186589381406316313247931219022474378861865480979299758145923166641741004457466354359382653511446789175549416149789683489323231298498690833941012834956048226271006676227450968158867356688863804235561438211525557292041781288183109555829991687240170770774589608944063948815600965466410416528060296167843186173792507270391521972636669275980653904328555221722579442846473302362068025861338267460921604623001925894795782470248779559439152589011448159109833519892952834658650157670195072878268322452582956954121223716492061612263367632835985277611099540757491403209350299624449783118790845317155696517141655987422049524679826999791583095918191577287525497123249487719796175925565286137737819342101795618925102433522534059755495926179720638931832840975762709601013807729629177899426641775434977861957654933056638290623772667053871739257307867365511055191369835049619521289319971379942696710581242134304505190248750561860699531306961376277611339603509621374418116996712932640004679626869398115120203386602174395352097868580619501285070543305819107374645621951837530336881751841315893579249768664524990310026387289089879073574480355465206192375008577838150104800111596591775690109155425255712874841228154098411982910410436568599100828181915232658237536470655058285482459549855718649170949436807026818012910101035981105066799920551372726244379839602635890031271243924907410505498245048999805822623367479469134430111946575289043127100454068691540065827179464623193842123089643448703120750550936621066232908476693522567997014917498849476094364621154113599468923254293209565230429026111922825834568067575388990664613488817036132895894730690606668923675623404522825205153368183537104257551807835563142141473884017426945946267203622861180554559726976903151356859430529032270756823707359116654807316642335603878959781754794620326818635641592978319315202100891561084355297250910669583062397403313129067164115065722083458765466059022591251302194850591060895063383572850663017522100906039990355500859601679061237888056892934854120009508789847721727772774383333113984031768907957194095615896166658678337930638533774067544328721651749382435207533823874544198530219747339585612035496436406878739829428444668884029430521695881743992999407498038252883557110470660528598186425115939406874105484197035204575060242093630421536774493898841165423702096604854568025763862928225486958991514180647483722177286183783131385391013616157309682176244904422352195919631280995850962564534347110307141588719902837313885535974387984984959690954441266604548148241323121233948792914576043363110596683285299677465213913886175709131584351004104311481007297261838717836364269806302508415992916913099434711176520523141468722299571822958508883110379639521428314031019632823881508411950796722588467713847250652509928039445694792153797330666517619361084041222497682288799999755300626262600853156490935480004642694111220174564312290877975619233123404374590969152785518353411896315564722643534188111130414406286451141885243701908556831927020995740127136231619536823915447666368160826957300173455370980615753825426730287449947953420953272676391218247874218522451809546821068186652140932618569162320560477712727631629349160669254234327008195083568183045846204731460889065387062250549711065985145273426723056739620240355509325150388991058911413623881417785914732236346140904679809906047101527254204746318970622508193400115630958450550436101236717686128658764128531019184843911667810940538481470972453600107324347953890598560500031134253973086945245620398582673886856424838227199584136332952990541135903674467083999167548920592510187650488063363897066936069882138600637444820186244915834451648553931867930753639868612428379342392617689173990068238566171780684399541408409436347494335983246585885806147696864868389061343728029673260606986056454357295766101439916482566530723214631201242426254727864318837864718659785048687145474778667570889597581416381288798342335173249237929711204414629613060892503975089690404163134704169929155375931578895160283146669142058257399434471077363890348325773194966831838334399165691330244367221070367514959237717934449630898131890701743029237091252662852690712409754573257237484666303839898469000155658825186365755445929875066552055895198170736662562759787452137201950620595531599649658124808217153891547741577651677590459164453406639782257165160894935774578768618189014074477776471044048282166867637067332099236839272529761738252264940802170345931490906670420179458241941817574625110059440936902450776377803280717462133911967410107791417494662289565035850377628667053596236812511885892852513669891939987108250829912632825002272654959837385568050897399133532883544189529719667004310726598965119392508437489087648317943397594474308312537174024626681305848884609603443716415687725765354442558205080168881928722009430757914963698709129018165256249016268650231882089485053386155831931657141333222962812129001717160038969601284296199603147063799618894501942401043443102692619861365004494046572421056411313498008645285487319731539148703998814887843899516237718556429533408183234720939068808038462063371366819675186087282745003784666772318975282131235140449396056163501034860692165739504447616154798432694607024479133191729033672559144425312066961935868770677929040078223902618523216468535485730366630268641812910625537397282038067571787599541382429461963281644366975096747865678256257400382975746543457669045776924141294042077397223550590539788956611322872855342397978510651664288407670238777887794756742507997069810601318832830875441331482104891478147368276188094413712598976006621043527394464404006157210781823766091679779239250617909451843796110077008429161150847198664087013600964258863701490813625507739029605753527924901258918705408749904244141404076486322113868101371178654238266737450267913416448883067542115425059063101914807055364264931505691805673562069453347325016429379207382107173860226548089202031847759841752508931047951321422074761991822125616311630443816184124962442041875302638236552702852776774871716689369811770675057634067258258553114448933633107332116862006361892527864882877193307501373100053340051267871391791709593359594203978921769748129284554576673651451254862144611935100545285777313438819509318348609106795358355059320770647762386919095935248648404873277466086319562535690560684235925985480067762927511197228181993437965859042344572566748607544474032764723255483506679657867566311730100798473337013225815055967813532817959384798049215850891124076756135089048069204437515251065246089695971073958977829029534609556444833405530312469804098388338728902045273396027657725540182221367628200202360354401748302535403264058884939689282475521203900440974355814992622984834974394855045144144078567645403513950902675396937130200311291015608814394583859116150939644760961004659660040376171764058491551742681066150461223961523805567027663567567811161260496448948509051767932806075081048495729919502745992959512258957509539775402299282987727434090757439340590280328713442489365286841731191100183278665857033782993629160928594574736482967536721363439787724997869799344541043047438517581861871082588814821349555642853158810916403297045010137107141069854846503120782987174905536698152982799926187561654452797352081643044098244816524425561143787899076349742342203499793264384949062352364918461164785981824288695630926914938324789042120478757212506220833949002476085211675444829741842423449548847582302652998590798070961320174362113963976856209180462232081989806872474065897795743095176179239108831094497132892058312347054162698409213871777360168193973018660798561737936125543506871842410307435650979720017721196221063067362615223119205907441194348503788232078704392406534741223986114970681345452257800873539611731118992434407307417210905068535672588971068274380241285173250270812451967121529751196708864315722679975951074155488168454536444556625381188706698995425328001010263899501543278620265436378083326875426337332003709524024716538685669990602210307190631315697028038271053939955119566512196747292366502143313977213119018281246179852579977646597051638787147022504123241627396062218505132649038850980063914705504814945695870126454503671327314878886107842685820492813556539334902249173095193009137466338756178128094274899107827099234552821359555585538080850179992647472147543096682276941278440248452199346592782834531516195343573173742427194074071149705002954498163125385348047553143300565824579145526800967366350625155391345704169831350029752311984506551579395498721450971079825937997810282804380145053921013478923552908841940134954549905967378909117133537605323269640569660113591340032197826536875502182901948131985124852220759899002853979234023169681587504454524234612774342269337189564518315570960060711408341864925900299779133623430581379898457266996289093727975725744865027618635601631339458606021268660737643159541297912459538158355489098758924286880733102551463242611214062226523453169860310514301369162379831801551141318726032362240828324067752187718849372081004366145202511656997863306314735743662949247531835710693562519883654214574939247329421779988690580567549891636797148851331879733749040252682003652065155578377953696386140641646028890607883397866512494052791800275574808100165272647042646729420297641842430356660321083725093788761637888136994284463027916721876195677669093839471494363074629406165520927412538485809547874060848659104439963303358457979630278342359560172984409602643879411737088748284477671357670195850869900182672835005011741157436491253569380306724802746931501807479710377078718954587467239895137694255987394175484784449769784224064277154123335846053786891828063684991380148398705678669124832367857424932567258590126528929120618161874604684594030925571626627502788838592027111488324523661034524274876223442788769855192355358082427212496641953806647475190984403024509741849696482501410656384865586829260006606500033960166126187474323688748782009772152244593003389494266176837268305004124323224057161095007560264261420032894139623811290454548680341582155439866675332109538453238012511184166894777396698316875596041514519083927630952203550514813965583593102688236173928075287438408953654052012368207634872031749370940885906569103169610182428069338746446508724215136650866233326944777116143901607457410878613362449340692356209401160270032569804947584317187986201681127857969029306273738055323663079594282090695704491754434368477014952227222138369052879056830350354159740827195700103530168923247634929614538040758874235361719295221288442705074238116194741584866122643301750676106795993226910952174717333102592995804823588557260590194466931991351343761800048931757202216692989325087710578713593016430128602100010812662895296330215055202342276278533783009575882330332053457137035450272259151797254086178025107549530252188467689164781001576874554997907769904461109270741353729502349959880079653798342243798927325230355280179952883355286605170996302193548318007410102804097093896445577855937615180977033875818789395577389271500957100352184349524071121715528527291118879098358057982410721862908096620422097037262927204976880555724199492849275026514967198716451954292180911020290599219052204796227018838982830429134494931234326796990735371698405852291812268455453926386475493786475508085578769481107410506588908333961821363676024525759600386080615350496618059274536178061475482082499619226909941599110759558669459414325240065349293517162666436613489144865716422523834129789649746824689890463181936171556326374818077007013514845018227309402440605302043678721176132915137440856879731315814996770215538765832045538582265323171582635936585758849858228173152372469138103132526703817426027139523261879989560662838743766232284662989862856129819207416692191211701639898696906570421789082159947116391650659771744830368035154971743471325668227198366126095611521572219262336042884937698440781802166956486241185980606505182151020729515173193605329735743485432880671265387977221537634580360501090890743795874221173904702189433797517478058035374985711915542295493899521925078907520982827986752077290264076790638871531421763746243739264889370418622252391713503514385362201238635842835723720014266220343140453331430118618479072255810626901019528084819984284962513215393667136601319204496087256245160300095272068844075548823925311193357736304056088327886306228896517463788304955480626643235469778011931355857543748854183342660771420677678693051417726001129802414826700683458297985031251269371240122725064439559312431967955539380151587737616948138443652619842792315912461717013648580452858177843911473407410794857125277228852472223039708498173177890869856230389160002774773080017911204011538602323713311135501700820291973601721960498967422795424031610812615375735794939677353044613428694147803322182335430371312193465593957244690396873427696899266689319139818698578036026489679774562830040832211703484335375010276639502201911893047557185455638008836168992772601178701030553603737440355772742944384579532191396900684020686508329501564992476347044035643769085677857665362181102098740434681837685115235878969960349080854300223751903019776540338730658249716832823740279212851645828052750417467426474207442599190194661913871410805233702444651768333689332935243282947692735449573746611839025513062400792532540785913864048596666724819856392906477920345828106609145750214427095682769524536483338318935790810210184153501169073659733452426982708780540908496141682833083166649021733166658825957020776935097437647216070556678987281644401509535661158984130353682418231872960143885441573954514170249130465632214633344707636551051858827910675621915392281383771368821919068637300725205866905729440021260311061071158456705355868220599858116224059622103345428472063290628067875757610746784518924118319737618850699370009785342486997929905759641024114703137848757716037107049415075858693618602041810604753431273003358664060505170399256401483319544164496504891664285456430740619493043811227729688890635142440636226343435792591193014734695825895985574080290945154878622063133726840089190191950329191850992551045858843075556945451069389879560727292631908821437746616236825118448015061948901132737414786912523193332199842775052070419399982999540617470665600739426204566237220935573768635406949798633324358546818804110119961011044842576452984184959387505507344531196245931122232951937370673157337345195474210422502196360415411951597066682139614080424693456939557163021290771778143043060532591969726445873382087411388790351218129568108269075544584987634542614735557598519824896440586485137193226793212500797711656172618609663375790375293781370969208018678305881526371470949130234018605647514123464960992784980741676557452045518453433350278473627663175358521205006768947070051855769956424266789879703738668168570828584946780761923378623466508686537429396960924762021938627806593074570005268792984715788398145286861391083779720460749960087344207831206925075788522767075019816739989415802857918589363615898791361653714959573626869884066896383456421584200561255058132850512913201015305940383590169872752343011566491387350051423836480300263507553410885436992838156185165890641950337541079662277378329481751380510307940579889790066363034786844733722726936548749308088178533781380324339638677297165440564243263822828217872341682652652886856428062007257777302246715863540993958156513541690911947848328104599959933606992798904045346120113019096463219552854438499109631718121194154873954917025882385161758070298084528477221958846561710723965014905571904739970474738138310754967519821977957818186957057766404025750776925944873235648415489817289319984211285839656209619574835051479739736496376526391251613307096403960143018590182743870323685068757734891952599821979196842766623468291822147581961388814024665748471349959277492439608895292225420965729383039442454352658719644282694450968662561779357223653293676300526473076406922216024516098417835072837069884469031216280979919613278426431232350478753658724808912429489026400780380196805533310105013852799056293033989470410937330782933276907046854944798519959022682519462305012172213136122543208564044700318893128418197376912546770107155359788135722186383547709197474394264643143889925190361807274567883156806317890551511270971644361897708542083453853607006724832899350201119721543823388882897194880589070402391934640957898547619193454957466288569059898250717732345356445334120732533780108128854167346469522767117908049402401627035162897550364705503557625740756846413494883151529775107927583575949472085811692866012733895006781053451443835905742821277028463828108495666052491772699017637329426714981410428734949637414578849557291016917044925668405219180993918564469009847308774961314019817837770961034870104915139523745793368146618974585531947901926252021026981002317843976848223665119787771756009090248877428692511920998976250545040569305244299194319877606629020272586477883077571796645695834149124500079953888437723325332717124440402704225441094768876107758804874537021672994475712690070745683477445997551169893085957055566518921689219148441553097266633498072454580804267334403222204611280194231926811932024804124647057386654310552738797776777133451837036511666341315213892252466607813219431583103866700139477436566508605196516818755112272039182703551125926770026051873564175113496907629281813176081521946783262917230268127497921748849310282474246280386611488407560937865964713207173350424713861336677486812137096399754624672018937110127384870032759751058479347740877098532525956560817970174817777139205746906335833445628106506575803308025656200828578425640102130919445352013466684001816014622315409617198503388826477736416111263662849522427521141531503095421536677330845996575932959504924937961271036829570735333487415529089165437498578212561164852199845954161668001035662908575772043847734295276937732788527515413089269367933716096082936755426900107319507688117691016640964173969812596270323556746042432149541501887491398668926709073077394245497429252849380899443983721814984141631074134829199950548194713250656181660637508324607152212745055288175420681116516238502206715696816523008621646690124857505586639110454774785618846070950762110194283644675243378549374833800196312085793085398159601182319866783982879350973824154554843809004938645544252777697300928189877381195922923128015986615847150519729491596995222029313291759129251770610331529655988368686717959598999526328905539788615127545536945137853241877978560140957022558853934118161008231215335819664209155395719195906469297567553867902802580424023781187954470696240983724284061288185569337960462027556421556401493545912188039668257503355465664864859977725123851590053320590154922780097139671920674983625440838919760863606021539785137365709133464435970344106479114495425198723247793084387929098835454322741532594225946745767949053885270035380990162178488037484322425428774013598515601007159818894906498263472358712318059104578851435054095598532099796855083228560938985491596686461964496691133362770722521545607298754837709984363979018046422568614747738651899242922488968267432706234006106124376557118010132058928018431111603914521099380518867836248197023200340046936893051076792829032903224435678904236898740975478476973212838491676589636565698136770940733616032773277871074350485517010299358054368095973306062811474864483999940653839173002319471148097760993080909179265478669379188570619068040514844888857094165684105273061060529107440204094230827014929879244820483521085732584844786316696192787739291525443349269668635275379561792830410836889609703131437358169133981940417727843361760038419478238571955522028098363480575735841857533442638713569312612268160598242457948149400944203817470095330830984772063489867630338047631094190472202342440316990188901934656370248399350809080091479009616476397211340983155763863369009092318447809095409934026690299389004913172874240568020889519879774994171804407842079801924934013942026198774240607470726220008805377581506630278471549955677420031885524340154728565303868310420929072220178686786566119883071341494258939670073051593982669182909027145992610342005785635958424564868083362549616068365644223898592243744284826730620785416979299820072853548221396476501767702242076438523692821137388274984442085661271953944342637274276370566310214860365920728090082201684816896780690204832576470724776953282229942675903869178335444002237462268653963498902003862471839580614074606248828417884504241705999601221705680944720291284360013233703273088977358472335169669322882773044448557476651831125652637109380538621125532611399303236394198831768257405115167646381200315660798280468319105502021581158873943491203763801050219786889949882314766359389215293013079244455842250700475318313120964218931028737814623450854994300153520735108470979794990163977867693227579435660008154475347762753805014344947861490189674855008089863070281875467959380907845361520418559630981494728181681107961195806235612598270466491103078724745367368521294380280655597675984524374443221925137604543209636739281808261211901795599560118588028567299472286447142589378503964649698310546695482748987494008190962365818335286952643194933825238482470071645809670865251565962463099203167554469526324799070381661623149397577491683823344523061035849401263074199241307713572255262969008457136370290758914279820906641875742519412370335702179066410087427073705572219623330447950767427622912886583770482385859661227118058264288213602050953793472861555770628918190665019084746151844211115169078247301003243592125202070848771206338427137786190657752028590368924805494337465997991615985297324866497611809419229368836092107387756083623641159391884581638570435358779279087846657722409415413185366886210364853294867341314006253948266322434008551624850117611787847541740770370505752289572278319879619661723814901183530887780649802972794193593428403016496595651159176449291586809155228630413191980071132849980067633559813902532701254648399953181322420452501910826651128626525565120496921258672525333155695460564860783082860484072365495865639797600708396244994279845986408896050439512277549595189065518160809232738712389390277828037824776799074237719599400804216890782254377287984545765457853632934164800641675749090329283541053049834731546614606185651226703275274096166815172643787615796623194467352019027962686937199922734317093758989114438474335065710393331463833352118303800095414283543267729521313390478840453483113684517581232860681838885257376625650170422307095883085163693450568949824713955846337698823164277628303626867542302494701680707620550257918680663566936029514352257171428326829610132268552673204091659264677160080130079685865430456534171476269904633901030047432817272513099253038711495822664982767934524487180653823212567676027561981179194558360353496262022048513882568747599520518517657954560729143913824274206226179087065673135108570644731070553233496453627945148855796951228114601277586665156988988628481981830940385020900577866699477490714379961506924749651006360315874856902860452998815002139372490988923632531565224323611482874824453354630135867799279670583062502656667374364738886302059322768562781569062854841421875154912455341742224804423071183832378459313304373642975360433836970100568883512214026649480851713109619190334961783538752824665433017768568994863815940970678282450092312599312672239078065784891467607209256947173238807714871529331762109299206691513912881250064918525834329312689701269202502768054735973621122069001697498913856198219877988315088756838207049340782509412019968145617336724428079258314530212331680206301050524093667470420997669245560856598559710382271987141835087335397126726015892101081531781653983707222972101415594939395007348588908380978703170986174590032218305062881043116456149011383612383366486357290558276434147444494243381305597958754713982249507213903604897299048252775221352010322803089898052086874428531381341020216893757158676213723525698786882292095750815405791204291219074988975758534830379095938699943565525021038577703734560181631566169238146417869255456290520788263018986339994715194373982240631439617234662509457384980683961575716303430000152062753244930468093069077918730532616153653054723872255537636287865037075163352706578975940607750132186979763126334608070464736281965222615890301763036298503998647221238447762806749000716805738074504272390715842226670105701959248084698376281691381260467731266892276207604886028274466301287594723791672963473345234644388301942128085214334124919067570201704357619533414961320214659361246294592473227808404600637096311283214866418195936295851617746692202083777030545373855544272063653607369032997412009686341599698604096069950904903116051350923351567333085234750107609602390048841680850466640084024269201411730633268014552337593265895346066473297959509665749384513711810112930710118283238267909746768449642535833411778422245673862658564102350827487113801761818940502192537086860024191925517611386127512633519114167439387970451007892868440150467287906401336408670207709936753804733343264408376573520875503460348067517009284004198036011205835065635235314230135231923247177297875871472599341764452809020364133522184469227370756871173905157544238956772390158655487460150585543408415060132356613291358042464628662618609424944837645993966378211974753419234841734635336833300481236199138960179781553706633818040054069283412439804278869023368295827427408148499723762577187979796423927706926753144808717107378208353003324578204004676142652491899066274654063225871515089037561662590619965384512907868611534199003100633780713188185270108438080342710657749209097635469454444813335120094691699734942371598856532394298173792368391776240217423184524607080311406630977565147428352392982592518761230344418897464819556793477423291622093093214135057713254186573970309584629205989244606217366917751356518553937577755192890639569129803273360457836403251378625213953555287780434526295224056761209810748592716627756744278586881249391744563377046252924950715615205812627042883850462087354470420115161668768274768660847257302780423670003159413256671495165333362379284303515490789007987321178955011117848350228881030320891492741667003306729401368724338254503178981669699696907011184287256136767839506460891780975009889598238155015998830893049974463319493150169089017701645627025336253177195512545056344483603558405564335692492802416433336688610970194830246388290835979511502107994169557430567851117015195228583590058213825031346609515718052154590902070289142903006058862599736848016639410314697907010732117774674608111392403803024514396382322360455856718461841027813939363533478899124030917324487739730427205492100980729717595908073002006911282082069953445383220553378250441812230030468949016707660134393150525047859235592690683301756988261252500259814480747288162772926780787976198039191525735674097397163773773723638218053205050621244313327599833407175043791056915288744414534616607980236367611587813477436916801706390436721776299391512769936751465071985568128942786089212106001940017268094012673841965066580706300882455990403283223741407947358910201764115887783380282623992959929679564471407913877176035031932796484474961000705843473707126250226289348740868976825834022732827072572178649155893086130040897349126397148623721664978182145920062657341705191283667243960677160354599220166690777369798805359815215351137874184156585828446210126079251729535696717318749860569546070011447407874138157811476433756311268769063430693573462868410846621624763612926128227056201839039510894716061040106694664698839901708249815588364301736628610387276447445853192131716098344261296455889954400874758418775023966688521498061139279959103846409350829429173921989238996300690622224818768750181171798620646242933581924492388398437702057192170522628267923776824816600103578928743787574623618429373785907259291421320021156052901130267358888054122094553361088712458001698346880314119892057274058572704812667568345371048171965384628769166719862531983679462673401917115979682962301258642140086475817799243771234769454688230652289024807966153756609024138923973827179204414218154789660939439830077642207052424200576969691416623931095424588334782603838302161117621330299386696155138404375275535367636105240712245894096799807903700108486577490391403931007668439811244234209868237554164589875323699455252493311489931993429219512710561465572388102120192581520004060058344799841576200870753823257035209035580863721918312894116546121642408250572318198081714007906972342843291155741266091391050021010934840527141328950252613174164254302059684516301487716599643452030214990836814273685363450409231117024571842776538935041400482612520309485477854890741241912142203912844866365094367931888838958340589992671458270054422145310037570671527822726462298519052936531772874616530798040101195743979852753070887644385140611761903328427146444351985785187634175177681281131226621370053309412373661670099246165933788665281801046237778419572358561036597863658813215395226546504330451099316513064754780604167635383387634478106279384672482183656162341315150574507630348584055226922820722981861319332787297635894665217694471196950491792511073894130542614661135792163066651259877826245620693709836535130658413435450756944099150011834364968004327574864747198708323500060930421309988188054756939897106395421713824328657333364932846982310032343108141842553359153460503698754520716663434269787906764551665925857024535499826780149184173069326887452384643437286639322412327355600200562832803251766618006443348992502267535245449277988074954176933738735994080150578265581841509775630674256992900308953002740185597146640661634074039359115372678157711180695230877158928062235761724895466952986217974277812690944769413322350190547177753519255364090893933589994316977920862141543073707439514849486777239447525308492841491153186992565596887449024044130108655092090401058300262895931229578768417303019900886385525558024135507487208992940362631724532116106350727884035862643421052656136508130493844996395762162668350491313418807158489027352624446345413097224853544651977698127494081125044610909822783946602154925521880808581902917334066280743597203395848129201707281448011053698902429285883781221929587985697095323446201418016708884704439470865959938928121013049517084677168220432411148599686900949526479814597160199028463147629813716055829785051280133677585104844541950196874820732119028942268896702276210543718031539533403957237247759744846203684941289800999642695453100397609534909450466733612715630677150785314868267585863973683119371102452981088606230598599173203315742420937977922634426201441318407113080046184806605004579655725099595423752062439356804556264143841028657229257621230814889661379737010325259189084173970983922414879088342773159694170332520403519302789710452857678284151737070525304371928952626620715171828818923869617581159075498019841254235603912950997581309305249470293468359062695586503633285793781647954368443443070744210458446777153466554671258207348329940899776724923830272132329879343842803037163582250280612234254076831579009031390134436411183902767511525754718995819039570013509663131154551463392104987671387522530920479870744581538714867885420226808808146560327044157498367629896010420311801290331037291978747767519982976232907232252000171071352970832846877252363686698030156887796610820863693686422775349966240020724461000804126246943792402051254962534812772404138804840319458791650062843459538534747923806260173089109979827282090346194961756191478556699577880773969245418689144789820080551405198630826843812519646534026033578765697332105713382955790773432201532303007943434548651493381203753528927830335886962412439584315561429368659441327035969119359170879109506582016851198110406508654645710642695453422433626567871162301303109916501284386036743816597364460264361571071101127669454318329278258936488323469299234042327831010987123103926019803359805392193608368412832863690615013730374164122924821228898826625842190517777456198096354467378749223490590362230248576770563951852573200285596077197345562964509029853353344175244345276219167885442995668147509707243794502277764709276343818584388422598080818222020762559144344860598790915271469290019721144375325325442316776742855057250783307845613442961231220860076654735546114118662238504795737194779086492907475754525105576772118167968727281424663524659332501086862570177496761376230124590739642331253641625705522163331939068792405274367732108654032899574431745710391274511979133131561139033621337859813801047741008787828495502322209538620623437738817403255521955954797551987247452410891975906142449821959555782183915852990778802464026192147127794085943299097345606517967499760174913086509794132214131972664461994656833785360579758630876568029322730108755106420474777998739990052548793731421296172726403895811884784808852056523643318878964976506308406913445516514898071383118535763777690253539941060771564324830540552880212993422634706594094054449491587704449795206219383013757350113014933330483031086791834077425288457812084377897963176882192542570328493267507382822343831620416928037863152595258018052782903861426000045925053390559870972804960313190062562671096872383524151737703144693043767341507674121074982835677364101169376690544642773359300145355613069786912454090433334458445837534841512713405617474648712802208162327845365670167477189137707946051564489243617127175457763669680326617497684821726601763644991778266734167331887657178069105352258123617767549353955769645092457203397380688898835926065127807602107698560761729545664195231164432481433247817007221427855617640826397023672837784013341365748132380393502882506051064783808298723258886650175709703863817389121789890147667948767810421242704298420360681880277412560717603325249715909343171171580471392090306878977299536324196210707399473205986651236310108415590116752184435311788338244710925259703126917867180163792008059875861629688987981083701512885482450059471507774459213621342322872198504021805769505472254489851939896248971116693680644311070516749713459906247070586906557110138246958172901252954361121434227431035793864869684147193068590703172934581884634884220430144812518570367337396702973064953378358120233704285482105414665116848040386096119208432817842200333976820366997919358070560702689370689868877195772919843255936547070470608610381729375779074657157542165175958706946151582149898804781616711629533941239670478755983082768274930322101066357540423880775293838432083424339633052023492099265584110915790867316082477439768720952398511451428668050207191321478791880668919338510082985975564403128599947577704215710018564708276658119468494856142453726540646111366510967286682279767806589754562571937619451625313273483165015117582391755690343335652661702365172881739245774863286542412560042878058337161924788731590642509876847683095072083798825429063338318924267752976283686772099731271954328708990869627423415539384598840121597762315293157233282904765157195337716394300465673506252428449141512093027258489804070221516246085228043453301916973539136726198238088029167740231103211186175703489652065068225918179997672223437492597603855368772018821085620945726140507676226640003858116528098797658098383048622175903485060137688707690822785383320816419156244435514120544739763706023174241135906362127484905694187179722402157289072669659611939318833321095586994846093008635232099661350332852049191090154959847215805442020695524012958056212737397763680158102566115307819021479121524272857972905959350593935001276487377599678114286775004166363037122690851729708382244998632965403850005415666287626624035687356940899577279423920345227493045506070240333791368184446611160254885172707632463711534400670798662490550852984392853607391038662434481247666902275163131393436842564920123454466532495701369099673788178773638060845141622737724572383941665401717297243897472382937220057905881828839859244716568572491275359325673274646619147949906154093739949540390239569731450460187800851761967349401953489793826690186416301909866677341439590025330046174093557182306674064605453161072541156282581035690050518309573761004947626940288119569253339129934021749151737669589122835632732732138671365934182436680115040849595944243503417676303693400124599610004647601863600627833900088505215345558535218936613668146443660313933283130487253251503235622246819117154881574428652357725643664448197706105656396743374657866681872587211905485587071500066967393076605934531478569708827085340153539446775299580036713943068270219658789871069692579453613402237261391602819490939131567655212743305018072597069352115052588804487031918960548802148026900667320720041946541555009569822195736918438100348581618607867228705856445171028199782741329831236761460302246867565602647461492769983784753873597092959611261286271850611313814411793308968502152325566897224377638461524190092182109243075870530054091509957013507566404037044437711787817735560744507450334154275629699331452450254395428307812858369586312192218709916591862799287877763657160412709885118457570670932818168234973021786301315708890362940543612312574356694826170542103622868345142421562674676255433450821321707963761835720251733118541150170097633214886918799345815793350164046994325573120238244633560889804725121300490890219375073008042458729193064952843724007487708668351663942959481954211909599662294326242319239303443577919959255760634959115554514878960495311193700359461120343965459078270169685531041529719544735227849433950472930687987692661897431441897893068647248691467810898904803938704092977337225736946340242535125252656034680674615967288751896040815592588759702437156976244817722779552808278580158865273650389507340110116276579570041006872234605895759446124858700891212371500678622468427657748594858676332025841667160127489139765800870371932230483005654149478812225881339235502948024216636577886106081735463968707871917760371747358738517584770972268301532400466744518234683391542158381802579958367524631054263290614423551311315409500377958244743049654144231448919938800830970017710748760193457597453194657292730082482928746356852818640915556644374318872377621600058558506710724818671639158667555122178869401379213337314766968542803604514973001281924333463988187318598149629693737383085233260217146987553533585972041617790923225675116987184301141504631112225392381485655356262782473168661487328416229334073179860937017496418911070708308789481087895561230579544459802180690608747732203005849716032406752288669972991309357690619158149777454295852131042460629378438712247970123584528619143085955902770155961092272969682876740328976508920759800569558262947589694833591706605795432171121677749061502064321248095138212805182520933275332747836906130666217357615986052130279853625576093688930539544019024305095518924020411510531940911745546754989945203972873916192883472363888774132742628506815689224576578859117281005963083216157750293054482057776664401431425452707569079384966589831207419877296209671938634385843631879581444961419400515727959809496272266055543107143212124070983508291929227808765885663897718971252571566491556803394225181165144714331772953352673263980383992066737670231662704047676511335971291246124148392414676782934759216034758196208826193657416374225629469028014141872732199578718192102904330172042624637832241538808282301348981633225649360799517993397679312683028193657656062711935216901388203810007737027916015848294941166352158112015485584077821970147826091821347668605890110619966345377825243979022375471846416012099847567971160071484095783411463001416965431179409068017974727600508145412927594105291737576333095909887055667171799926367456621917531068542554057907220766791383928094409894408517157871341978467147521137674801051933280629409532180164562173373720471472223816985747526350854777092164357420595858989402776023961007515622058086055367082708466382538649779506553099037493739615229941903477838383896591255796871159822066026003181357278955377354149712316668856719433673954763469768158641036735749572067121214509726674269807118759807035992849433648384423598500669336001575873645153079546823458643761017275158366528554713896551644559627632459109123888542168141535112927572440533836702487627088322162523947025944887705459400712566183798330602945957569172827552038323374216492145606300096052804692333352034472849219518823092843666598005234250699086772278631691535732051368200684748389578139774089543413271082639340909070964433421789261376835691963164540620934540064406488126603308207373676072406010936516103755174636650148096673605316613819966762599074597031765531354161991003496762844101506653556774320256303612422999655146831465323017586800323269088599617027725287608078073750116941524458202225243624844271304527342809608969832435294142278568858533903000863176417609304917719079929665319359677947725937855230201483016695786170786162175741238497699234812014107485143895884200204038366558436231720952801954256040606620175892317138834396594366366214202883124098133193340560251355269847985299334956350991977382909494859832083946380662858165532140843877067514291613914597170280255841246560998210067251638035969980864902574788944778173721495842727547556334109655419233323875788761977341221259661639836274352863622434358046674633612096616365759356180209358806281773306517238661535162108622346445145523783958056142547193477605317265428383325320270028332049866031966371506763562157611339726348141802515156499221525042859596321592950477584399347232233392938990347368884122235079243895658940500949680476304293973503704191877337329469068219410618742699012914828076242547901084136288015710398597258194831696302410876787837672314024939958196862014267805075671744000716605655292490117589568126930018370544550930242261933802346835224353966728390591822744984224634281588204869866307532906439444036643961444109124903948809950444033642201095410690828152987038529192612023399886667459304911711268106154345628329847898391636098330985413113648114574286109283650468553114429594463340657778385774687754459357346803823554265740291635874785691025651148356384949494876478597981631321390286929102584412859727156376331598252905866051866420964227240181914273642519818506548471682584544897494877080911298577671165753941065050431519730252422787514340099971319008000101465624375467401572791416943479253504628075578345987446410562730693359815568109029039618498063233850871244793461524615416529839234088863878667775127177318006522192526817123907860780494690503027377940283696523797999864946147038629801873862983013761363984638733446767343912979972178453302859990893892815247651797201226221988095674939613512161994525742244807000383912325871133041304067757776735052850320885360884165017287442825877151052236553045227425484154896081043144048811325353057178269813391498013648309717947267844091488162777133952903438215650994550667595140968047768256763113212380348953003777349331908932059418898210106196868109534897515589429830962749969651739520998901414211484278359652888027705459510252330529287084253105177032930107088836207094994236196035973412273957928205417933032856481871386373717988516533913370665180169828343957462491771099201025026986455431113088423902819607746798014813108447868406125913473743692935298508823901437259572617629115099167187309540324793062715113575188479300951117971325589381351919841526868834341522692212725417199890633457815093762582282117712448005516785624635658087824429926451104196074466094380783159436381467636677675377882530941910269009117880183200700430116675859553771072526762040442296804103273007773720784352795526489948092459309324419171698892524579664566258101947290265074422791810280590277853611687412455590252464049071705564013287344585830335386239109137058487851246610735525870569297531495130878206328292166883139061418585118726217698298638211114931595871571598179377288324970834185784428233418146230038777019378392847521512931365736925022299981840614799255490133741583907458975978715928504380429689128693283990688140099091398286720125013172962917401637507892884879418078447272025354701543626006858684497838476067518476576073658610303914126833279453664491954789841677001869899719023242913773603060201477482263761915400552350036719217337119105352693097141410550805939434500767220521305135008153304393946883488424007180491592787141081982485581860634576685537031036476880862803491539700991256133040575903194242418196620050842450864219981965074492992115406936959191589512394015620757446368555277153119923050006612965025945444116628152951664709913259639291176953371733789264287735248687852953621898860528189143678359619736959435850439895726279578939789441004271114196586430673987522714913153120813174893534764570761288880801556156046171742509563730719505503160553848653646668893298746088546054914271498223583119221460969479795437063996854532117432015010386908685638583952594511488170384079264394711321242925490802790958783618267373897098135927947472341653381986648266401773987541078748276679774972515028261077865904654439981049160354783432029405763677861769287322986334531387526967136472038586113014333857802406525434352388722546332013519744164970670512735819601092859022910864228280819338153722553894124404418803757376050801872454020822676087099403844015858931994659535872038384201201695677561212353870624424535923632811085891074780525158190916753566908186747375657593766774406993641968003274377012280700520425257794228280959351586745596621255947635859343855893419108065065502957857750497139043380064052672501060454422655191464779381609811788869538959383033521520523205012427274932872897972320509865159536383477571082882343867000401907174778085592945609299483968666344979294374824503869145748985466181843610096111690264300071724994448513712986332457449511678818157538055685430216781121525495150244670389224352519918582312532932010417074838712787567022857253866155385572521986760339252357702772868417766117814431536862384333901733283333594264979174125648490629172289688781146407106055974379854962540415325476564595725092651915681786029157404579474080488021794568147985998863896287440544668879496710518338695553253941016571457865273057219872613462023402430128960610401367842583910572377727442281606929394446180323471998640022626168323457053770380831651903674874490993490261013064470956177141454561497970800601215421234702114970862148471772883609708181792436550675042517750315167001060856866488600769380187125152636587903356283442102355296840145168508121825333029399077515688451705260953937177594973749830963211578192689967578670639929713106908237979454837886004581873374756711140879619582518606138455843816757476114514232089001554018534079100799148898967221975401822287599695594521014957368347794117073632417111935872990219231678804251954870013001698641863432909339076274948210438124968257432397666091494681168458791527402066415959890696602377969075308337857043386371407559437522693136354369003812090167547917562850621630130635020431725321268556365664967898396399439537896432411169292214787104425994038535982725976571906659086424951396074156026654987126679733685216660643705111094377306640222307818923324506759625326324605427586498659692411735102230642373218383392183357443678409285137867545795294845865586718049229016005392084967262335197113608208150525333497264164654527550153991006506811807050687899974837170254401547347515100266603850821114252590620544927625679097259200824609872008844256212270973330764850371457947765595295595964653832080670377031846282898185599158302165753419354692157359039135447077596343943689530381512282412407932109367594209782759273199490145832152891832311253980567926840125484086783421179461690199477973032370184328956835438104033848719483607376175428908129183345326510023427782778913211180213359307456291161924246865105799567730892094789351567692246057240389218340618765264909589668961448818469691792858940944257930572595437490588538723028073315135790072106316153807584927850040326253143172306035522508791127550025591450677765806980516289652348970798981211538965115960915120094588122771103266676595100625103423760841308382840682451732470948887146154430058666557611970687798370896275732260543033419202003687207976262752191640980411541572387580726726054544303960155029067795287979155777532677318622319806185723600030780813567063622523072735488305324366757773567839413728897393024814591461333186056334203587934733128135231780389983153778841604845527345905011656712448023805793090072137680896870640773434186354763648114025925321052508689100770958009133235885614607663165675559036910128288118524107478111998981417813743047779832662478516669570391790579851268172863076482400699357556407593209859156376037346325614496175807933503772034067830266173415046735876993509753467381359832473828862249865706623593483649590464535984402204567664673324595780959883783760257824714495935268878447063969889216605654118491549405887521901314902053520845664966380463649815604076056614657952128284788622324330009305104485693679463466936862588258378523916640871554859892090572344475553723481757032616326707394528804974670857811094611660786838975469700574219068366696285065293041318405260431284817144119449801320889023248218526856750740106604902487388210360564371352795527759721422217531759831886274283646508598062779671052592139470129748954652104495581716596637237806399842986234577250454027755567566680587956768292406820996243172714372374542334447676316222404195904379512785565714440668837436182151999707303035440421876432476276228958877522681032555580448901009161169969893704354162285158446583465063815044184967453299866535972574939874833116891202487939900181869280336289375097462655436787897397450349673761318634658607256062082524792450201963702977533497073352222833788393535690602083752446812463394262037261834845934651270651958688594565896521371919383593725142630890361813650792417746875122697867172591922236699868714053706945059517842795591931773760179072294497430166381232004565970084681590555935768128764055124087325028501212926269176688152156466630150248402662032252762755088398132362871142065902526938726019140607666542946081674418628889102448004028877429698285639158634194028876752908346429448973264098097466419921316687413104382519548601897319163881002244263485984872532306883597864178062328308735193042230986492112406659526455659688694335263342899369788695707472047838448924549165910762785119457338108454038902920881401386196468154406039603565591532070171432334962745436845534257437821757819683224047434918451543142945648753847769322266173448615840957052227244117933489239808550831268474018311549333296207838430411328461000218635624435669315864581954010632602435270271057902005114811669808516827903588000599683215512091119227915841811474278635377275684058547667399514135894762762312028920442735401670381615247948725822856551863542681181131496969433006461519090528295497290888893977260557398907394324498242964732622527122010531214594769490758793960472041470704277630609357653708951467760214389012243519269794331710471550433922968755395352915068292663397940069603528151175895700279733983674804020454165586528113329347641383755042511354093704557009226950778398602727055747007114661866686198998662758643801237608635784157570966751262931688297080435105123835302880884874677925086445562187039448601741641846312199571330934635178140297555265827617334561429223738488098290843968660848369101422758795373109223884471285330768592862566098737424004255154353198414334391089212996573137276013350356196332286943499941668468298017285392972780158140250577462082885669999701135863179442429763656922743521669642873816111894446369668916763967040865168907994937189708430472149685627379170611103118434287233484432257425560424324837038450797872114698776535134913790121818658987461392228961570380912438253364325132479113957154317178191807619450298462512729981378445210165638202255922912129812618261284707491477524988134709937546336784813882934236504056224852100998595228360116119064703809083860386607507948861536916981523651676060388244524718198712274241122937991931292977656249675946619296833747261812628354411865252793503503126944176868315749645059849868664616122717667763198743407213191996477914704046687468970988092175821453224585134828740412871252009933077532471800861880098572537669337527036480594524495256838219577575123035080915099764079684527355316460019384815198941655084534792962024801698273611143950004013461868707897745104113527481689472046397476010468707889558400865433205075244114651633364218836822661338392387077364980347273671455333518484338628001421366874429959649114978673737519302121506211524037430756206759370746250348342388664606404928836787441004222084550694262403435717457041135482053036278310359090847424852003161380875261782189923062773408119813834814179411482973480148050743204643202272686730891243820382481257764927478479296672317952593264006615375993604009301769720514983674821413095892982892052627703680403788331131320040431639726655379675329631338671916371428076985247495853861110564446648118720781966190621749946056828468282188768852863841858508044698644015057891102281335729067165192435529687806820524928756239002671934207035566969190066790623655807517239605102366583249211645712622217874770721398171279800837736609372122619042270382841523108197209723886081914733267847087890791686708470941452894311016004075221134043746092510872835988877058015850393100277040994531283097704360124815347291948617967118544984165382413352563725121235425642131664533083529660393959047653828667500992829561845155874040121448490050687120148627942800975183871524302899904375046147335549128925447154651238178706053281207741963845680734982003395171355139535848704912659091761765359578922491552379483747058780337372228140539211833495428327600275806634968100854605246439561125186284622472367948726011201474368781968902778206867919672875587800869723265312518621923199894577311551668313661897568311688275029761326033977934979540029806577300887198338588285371226116202513370890688365941035490573295838748359747019500000218158299859920160216894291630694090979898806053701857599965451476363745342617625658511419854686538911625283311721338914192061839064408669923683035976233080043919199683673387221799730222997254522314302820350823550968044095770828434821865322887290622197592061906748926768523040065746382863072080006616595017140695415414743454017855084514577542885846419837677083349136483348171377623718911775592603957019168200512432146632117955761363192868868686512125216739878477450663794007277674735255992005927502745593814821369310855153908390032562002553592802501461509964310857392510990765749591102217574086551984603974508330463204980402057486335321863437428892364551432265150084348692469573066043020535947118337606904262970720737192131964367434526612806643885688478167355656647840512861416315567238277833222319943338738365469683741393727004899039439133183545457614909338114304378227769783698283209186221065117938649440533666324101849349624964828494895143858034546891053394334848546904642891395215495855716332064789140921951541823637938889431605708916299858469669460979531421517510320070955344585551379509602720069348411498049272944304404273222695647558062531006416383817619455684083825573518704476504344480592821488419469776135243824254988791856634705151438742394538659444153091986372420583846478590764685678750759329229282484959377242447195905929325269293105478089343632871616913912667172549868888927260438503665926215246139810631499648246287184009715300095744897051752334322516245472485066760797334277023302247722883347386044867085487874823027926685636665710316297974058659217136961864000211998389021305081589731084300488160017432018413183916250166574139172121344429747478457959230332104885753730796051999276679176125879149798282903945579481318326555029939418942989480653425349152805447891188977345013515359787950609556351337716646028607411353736508553635213427707465271667486398336419946779127830043877825156256728222408100933853392627634109127392872037387546006724481993037390952891509343265287799939441088489093612959085453512324655272531802415958858093394077475025876625688518261825467391162302533427390130708121871604610539008520891882128458463260275702780502894813607905090321939805963894370769519035783643601822296074877269176805103200099840114787832733077052427588925849959849215652864959087609285425767976748053840632432636886821976638990997571404130381950293380374619957538282394966612754713464645023637427804018915138824089652130357567902915941161976043442223877743651415270486940856731202883298026274295310418708987631379321811896819412132892692520601363984964132788938116719699397368805705218431629378954112107485833971236514689112277294200037039007265685768064098688928941542259117335094311577920735891070323049634711571911787810497672308563860098394547067097008912908048958763281962080114186137907590129911002919261703772940284517651992565471127717042982986214511663477703653483830908600169382119838709869859626900789164241983628573976975489612900976736351391210161202098579480729369605276892933609891418665359213742794822797952691372173292315333057503004512500499695277452745383119232077172768371191375982936185392946320087488237998868623047500777215805543034560383502036174087973174990994339032524211625689398184069558331686999594615871961155039221644162626643881404901434494434713215195591954452909603743418394700695020913755491013690496608199806178120722204178952223064362362121621222961822681437071622588352453784406455081110560154438258781922328463282331364398586265764755336431333077064614717081259381907010140778625117763992493430813500047139121139266406719700749873432698317032658011538835617641801029775197289869474258224155130602516526030951832908120983119311919930566815021202553932485678284099528150837351008978098494186112470509253403487151410745630102377816980488814997492505331697346579835415807012599319729758878988256998607899518346143137510435812842911788091285592256196213016923240727318413780372921321384892399335049182627172605902350013998751533422782119416865602577553739190960008956297530709244651759065605505155024702482148388507159255033443189377194804722044146535537984706009985326484411043438520663412833766122545972577977534083217686826214866199434704378076873104888401435947488485658799868198799590266914479027874043356078639856255795116321834738535735976207452662086355720810196249657058803354143938015903790033258971901036204079161283738166034846797151071538979695429452248454631198932142475847995355052459221482126778865139777024183400548285423763511992139570235488750862226475990475462525769016534903603078152205145277569768032745653774707971035224228398694258807377801130912604677635329296467190510683624009833771915565407327905478891424188251094417587622886072882061139458149707938795695773367407526316814362075784599922077115004072550308380812053177137472533884549907389717751218566058057409417889733200678588851632402884749306367158074403746754574879507544470674570889469687408914310459333608889720445631982977628516025649263750493812471529205129735200335645492558130365176789721165544886385582606361237437795273281497988188602567338749515668808469858340243840623974175028274783428106316775512698366244747159237311632980793682770791707710494854188769755256426502941201984854796043790279715405558704072067706537430171431243023237472709929211576072882801473348324719764498181973406802971419025744154350046107159947063736666204493928461064919427691471283236627988649332260293060451993906008018469985586150001236939669728817150147587394246521321768630984099890693612483918438372809105068412062140910321249365219389905144940245962147481702688591495649674884803474916938881720419872818431256638415180619929960255945521852261441994073499284406180267121810305067134341669325338536345117526039045066002990687620043425542573171024686120802489676604088782819914089697365973409566392789588245966546419326202494180134423296745005049159612945075290826660628903904596494646054328322678357912086178277169193049602515047365058200795426177581080493174952842848578219879868523499772008172696091866403009773350675074367897795065869724210562754359065398629083850364495615433538359942766849913375998766768067409447742266344278668913520250433189589278058091441589163895505197669181279626229097757617927089716705279918880457524047408042803667728586239109766382809573092173851581631121265634808936419870231524559518396875623647478753726353142159993190286277147331769315977642797388235535638346177681242310126740770347448628521654836579840850099335266535280730683486430445766319491108061822007088566835130087811750714697501597039989027771681294026393485394620707023953738871962403075455409104243013861267907786778321079270042327903177646864670091121656550431699284925219263332004532607380467854259840613536854846547992266880203412644377882529096949655697202766576986207231483814922422713795422663117840133295898052555756574297796612014687559923728013866838878422832932881940914762854100838687263889308187301612313431515682974970711888574329570769358750428181561556692766181291770644488558959768604536402338164199556768886111557074740482654462568037370347215821532343089753416480849182119774674088839843827270498203583580183990631725239781793358223863567926195250912327836924747810030332270212811241034220529583841260001879302336864908741005970208240640987123740181101193215609975470467849450469612651578531311001107062640815209050809019049770682156504176358734293317387925182013660713540176642575201900716949705572264495091073122857787268368053591585330322097002729519703697040160788171940469703649044891879631623089058217316639243470200172640565122211629883505036888805260637564334541975108132948404218157927572807858199970590859203248849881468340425273515052376900584537316061188724564421088249322273256338586203086485740301155461510994178847861825186234918671149836756790891452277620121236091168964645510048835501072581554009744149351740163444670647250433755315168714848360628772082846863400524160998374076767236772775671279748669198313150112975798194627208117734959188090748162796178402714370680694485922536598700981258093754777052514741745877198504625657159259610039078940785165877079042914556445129439613685333484231386615524399106798799940812476994593163025497368178862771966562200857597611128003249999469920218368798597359251504485745270453612144707514902382130145516839664744874202673966882729843589716528509754036972623475361083036087241037425759547572770272961029294020049906274752819426699992177511892885856973952841263689193932744617310607748245487982183419458145250830535976855915908585426965886460020497226995529495470055024893750646484027393868595757875583417783267585816727303246042874425981386319912779696790285160301278175179856896400793949336916847132527940764551072593160276515144219220951538492304115850680097185282965016279132796921567523013553349815475770658327297800501566670057022929268340719648663406040028093632619594710489898399130572186078256976959128242370930012406248360520581418866402924248057019643675233807595805303346525183333172465604084536625089276110881633172376220988700381192975789322865274518318764949166457522930324324743137190762573568935181934576037517282925483107539397888546408055788425286397233806667830798269720381367825232296256544089292627693888129031658605974047742649504580108070931501352514663366591469477747743172917667935834814807420607568024048695292699005722861770610480489600126215974748260514543886072190795615603266389261381348112643666736390962376061664507722554096124979818757390509188025188367798589095571697769396121059893109619034920779316819716549745718648974381630392640064964875553114282451736528601514564284089939018808563060745999473074361994499619454414951218623785442632127051337100006971101206560228087262820167802778952598447258292626222054955994812214661594759605624501043077742340094524702204743145519306450196698014113750992335225252695371705688315709451103498513684303683580015946003783250261625579357675600806400803461408392222180537675318141621831393862285148809863195965161021625286122328514662595452129562190401215972370872836948059351265042487502564985547523124554366693978021551394623921922386088283169880350724952175298141169927272898798188205739046193208230254478811595026377959475131413934215076302616041829460087824067352300124639044864303971617889830676674498323234066527865432038840331370525751040320340264078144922238256204575618439272486516011130458231355474452250813456443235084503552493813404540248720474050950518941358462599053630021804405288682410045393603170229932298916606052720988347665947498472461020416082079799477226100754565227593411950534252841288655582886503440138250128447274616814481252210283734583373448546035654227254388391743852917369068157378208223966841605281916660151247756123748364402989772455844903379133909762743116305358803876076036178317404531431925463392869953792206140200878093905592005679682069471366782115503131955620490374744403603517173361794809801674044772744180279047179317376591171633136775820545252731380955746898969733038621953577364947323471326735539200775634966293875501912347881145503991475011644426171168306229603861091195738345549600241546528783483015569939407183937154659622524299186822619870019838940648736881216519081957238696502065453198672408181705952272207678050011493035130404708290197976297104331525542154710337837420029319081598581433225765486865865062176357647220112076777889259886918100461655844592260447665603629354542402038526671688123215052981009003797015828092323768103449516372687113488213074647648826817761882279767199008679179204203267614128863349599415957434391937512899910711683689750432670073328608313354491043233106112635702387345835202950867252753558835589646020160051955140451341574431187421895114565374157326481170408273914563005970111024446342165462627323117355790066044266167470783559301872618419153567082435210539699809751666312387852447624052318775281556865258024972600635258748116902200332685241984958064013750412137846310043460076649567257091657993713173451473880319647168791869651174273271838206599446852712993095228069771928175826304468210381166716994885148566396070612855682680153533215074375774973211497451975149251121044605009772224613156000160355903932363925289093579237710154109256348228383717712489801745616621797033012941131488576652696416989472191274440076193386845076332689372097290497420461742595421379440014129966707978056778661083949965152168071491696844084627597299710090846228149944224419703044323129278871487986188337961902276669187142496766714888690587721953199424922846787171356163397986510412287177417861092828433810978583058638835982517285202504281706669899140167675161357426985585331060523065528009249646963222218486734424586866490132288063744377238595296649717089322160078393769643221891720026849360158374433412627282701196391008846244085436289957368674028530822094191824095132524332510240425779108245929995232176235890580427845971897663631034496534629248623454916606081072236691491820051893988393005267711328641808634397137959937619478965423223625718255017671854157333238440779037713133906439329464099023236925307391211114384150573321101538950660793481881425017323392866991494369493419850463372788355681718514235819202157941958971747847829111020413218624296548518586603823860971442137675671587486470123170497277197104704207069511658605133866424361117580040003152047406621283091203169466959726424473308618550281336264696129329629731825884479946087496914870765731166039632487352391780038892524947008745851031105556171679398393357253456989297853863873970848128325001439919960157581532329091530804180723756160696885397343935422923080547109105738371511664640511689886589284138001820573316132624550007151445114984731614799138144674167585240376507495431553329595765808076903406314691811905324452365228517104998450256132347118649839644419170273567432762111092989319412247778212196197194040818568733466568202199660135164456696155418927802227318379621646881574919201885517326683829931755679902296469021151799211145885923530196374004108220230672048888308084899282431496617880920696445137908129603532364788784447273243600933696943181035759164768860587818806452500621345264702175783083056862057537566515122677171774611671941910534567356578546019190100176456795018764487142186726773127111990995942529933937598541256638730801976736155905202132821028933321022940148681324248459707818333328094103596970052664680958495598259159791314666749933829286796478456365643547619304730427612971680998440225028332922924397248196574353216571675527801409436064373759214180452647009804894340909617465576458281236250594692088770942493525070099939951219840906498474259663349787619562293490773647354223672990160075959074318829323373243357032423747322779893248520677757610917741722137208280180804921313564276894789696167147827345945140777693140461649676401687915835221192558161346118081545905663687174924640207640177101591135281328249915964928359849630991413037507566301396075257304467241151105738564343690064651819285985617915183262103188178186988410282451401957570818422269939329024082584962685305120087280359150555769451690569399097442013481623886063316521803055818341699780931618594313051417239285682499865266388009619148194549572420858062492049016739229953993159608716088928846880970697485807661435368410613333477762974022143990564695545595964205920770836767321280152964095368837347089509838568332224793895429138374192798350666682149217420285779378395323323012643865023983186700503547527733670468862591858914060341360548450905895516312669560019618782298898178212610375493325777790937792835506262299151895219992340267639739056770848113549397722890020143080204601525936214821713067481890474281152788160465226388028846994661980983967580142862271271539553449867430856910350335782088808005600595276569722961346947070834839324974555861286082702440890894570592148743933156986528683059556207953646313530108846226653452050694465989491042385701761238540037004448465865619441882277426387992798304565648309114975037497113600052407850457396873323553158275964460924766649544513629078478534053613064608473367159351998097906584719829273935407333581519063064383885859857788120293197893697336596683167535732684733836527610484889411518143452008815634128721217867577390983059562109392921076070476868002245721380992896071351484872060646808032138543690971486608688894401793239135543967903174363245419513091759575590888467732944745393073923196853312214044624549871265149230073036556492583619970146924064779297659318998965089607926907682414216322944458085323274294376983593330157987059899778700545061608346745572210222969195654425033591993008513085067511971992219948615507409538311607569765873800679756198068834524129971472688366758589342408432000225687904856133617219380312699652398391464753768037770258624172352053541437671760183681976943810341920344667775283734243074976501236249813799212059362131773853133011352610380970814633485918340322219085828930361766888833915216596579641849072198202399243452291648847714851341055973813406386964088932717341228837846773395792443479784132131314525414087361462606849613147240775210211768716888617522922237530952772136018427480238317733000775002966980864862590068232139322245024578817870993766216177829420819145754068618611224483153578009669729906605411837530286806941185138801935370095363468280219369233433661217559750066485070371956570481640020404928186609420104861878343228240642095612378594868529597330953163383520486098400914619314794218058344415748023765144726375736078169659613479746018185608916487128127999637554923608161709579714036616268120932990516641792180657777311928918039037398240144162561323638074446734091247154445566527856941608874929765024635474361458966985004635251637277938264687982143685390905545476002093039513634067798843546402757623989591816702200526727875029972272092165029619572445514154304612924184640811784127087299476582917950517530291088053336962419706796940561735900112081888520814584046956311239161704138782354104865821598036205312513884880663463008208954642074418986203446437810113990969887645909379503625992052144403932550327524565754925024459174085357736117079287735890327401291829457603413635701200902555699730827201038147444149384304500766905124735710983786403671865918308138899943974512907968239505449309787886290322061033526155905151924333632249506616798130406666066970315036190606780177182075362377208565739634927396763155469370932489096396291832221076555081317264484449361196937854691070062910244259749641022853834658964364593848325686561467369208429521117708408728674358385865571061337497963778229118360749416242100921524705975923961038907196131860206577937737433016495592316593114537538144518965138579195735522512358659508177706342694893989863682251901470032835017460852539402607444152338354415169765474124160628855104478020712900775829272398364146104368616009771446071081666928458675980670121391958230141069141489469317362619949562867734817423483075913627680676025125162840819785958541746614334988169877229751036341217582447934162148610068983116400336642546026904684738464974076673560897845360756099932902529016355108787042458016563256425217129013488814074330505706128005287955506717838156250905984974455472416117763856761867942553312856076469582274758871834711605676873303020180794730151095014180841384978721807547207072975198884027889929252895458569746682781445336860749403708826774303816230969033752113610860579950519240056122124840773924571479855294650973479363622778997277868622419578525478318276102659618943303225446795523086819983948777617250594838557559264104439625909126072002318614360814762309861026793594030390819858263770641180397858945751528614866226327493078573750697950853952674454719931144523450024663642553490252653454441070820786091731680133985960111104288427366550529810793812797175313313050540073034049742832016925198872281073520913945117766848649232572777011343556740472408975416908510806691959386320537825136557922603642595001121120936939614196092709635921571796619923997078831384389815555493142259705730107304312182542434420264501098434243936855622314422826736075174939400139888021735137399081196595752853323760632270450208926857499860400833557407553082325049618948788493056105889193180748388950419212347898306764311608710950972720521359455725484901123813619470354921194775292702009277986106205785550330016676422500607074587597935415209355217193227186639703305298181210379575635091663646226362638736366630848233031365071990783334940999882949403965307242039577098446259182247071727874824192212521960728975365082270983371229091911053436250336986712882825487956271057862453968918707815600377272266097748378547488269859301584396296135385542571453614800245860842531845929212295839050770075204754197780202504319256196581333734056205136666505740179771138355994694084359855316618844420629976018470162802052632321237111872424205180704537298307101030021216884907154776505992975558050636371095484490817942203829116622992746895732865380009931352926727603857785083783442679560432067102828629540803985008047877241630784069164065022289250058627681138375439301018874742259954201203371949350366071869641794907190785807204329288353864692285278419424230907103204569477509770659576619271622441610547112755096708394495996635367415706362136876705475871274043334675290300578895436768524719023757325570464568016866076843187194192323994346600072488293732703480861616884207349383236768297991438367568557930695461117022420222204581848906064552578636201890376376642645807327409781195298518810535265782904692948496725270731942922478217875366242434735039023631657336409497796317293260002240830758665274484745984788990158517241605858200992662091174747142182178347824792991571352695478538598616924219521427286973716101823660412833944720997423427659160951228017770506785028958920702375063878785840994351300910761978036714991913366680251347760292160918942325036345321592422277448037808527027247418528372417563010830098532367367859893428884737927892845965831269954925273288043128917332520494329991129257177261341178727278061157663919457881578415749703078335533404061360167345078743701117493195674324814276677356225541163939221480100169019447205450802139555099143455543655563577441464349514692136938796878249580568121159815935290776647673540056350500110804801892806802072263686696015556954990397690370986950318403526316919707911371199634562731548586949094090501893057366840926127308529777439695472722442617690940637567834608347051915113539086277553899044144852124197099919453535437705985297225606722479956101135060656526759767333021731254394075343452142667066119460918480141528563675236651674278077291440470335450617754713587563608304519608204153507128736681933868388321315232288309197162143902871250346841155304824795549400259599255657596137834478636399857530186867518258307154625941664813516282759011507274450251996069972047506283029484723130077356529324476885865150879157331338531670040439526598898114912051011538165927109952192156929915185078264611000441778954552877699801809682120296401883018514060532906560707227810801740070937167842330720192957436486360026827442266070621010061821371072877891007450407359197470705486119956108678672457562391382274941373454914950122038571709776956874542804999306178325353310305342735927606712761021752642170293886556411949969263341578811516437901055795024671788379812153188600250564612265179943877927831440954773475764654607908106266161357283101768592719519447335963374302246979416073835884476822290895109170859968319927432733004220165827065983465984952346943780834968799938975015372650843680130098194674589125918012603876855080432132099331197950486222336167896084161537062576226266844108469594700149386765326241174422972081173570028593810574574457389579725462123936330122422877747233982921316050488326393414174587261739208200654234656519876953268096432682689041763596067130707707507336720739730374058589486979585137963419025806659045695413051528707025095396226915559677215760913937448925815110638157828071041497316716772972114738478123079420082399169178628474446233507773892815908778962910619889575528953644677940245069207050752705099230232347841581512242405942295889652430391167503807168376989523415912904634808205142481391289652437297160959472254168989941594629730698588841772756589657208267662723338609154462590985400796760713998046605203465740460295217771211156468624097340683275362748733559095932712164421819197866314139560670104588739448203094844994999119366754667129814106619793062587110742622419414045209756392900183228627349188591560568581180369356085824039488959556602573625819486843186817936342310751097220946071058848167657799223492184340573789094270856356538588120324004678967116030634190070718810460834056156732962313186788266633112306341724667767251351916879291133530031708198557959781713173038560868666660297364163986770442452233126379616949907699114256590665778799273254057679153276964320259707759571091963153638161259461159717272440935919085186650415080777696389563898681150421724132012038705237716085398112143679689544261660128986201495193060849243875563150138775594258455456765851675186540907180314187370136058962899764511245525681391554217931961477552622894204181687438474467444017944381108409653847641375380587759035728403207546849638063713352220708493623084563411811114235995259398704283455334905148212365506318159541494394663083794543755438783805160994080789994007433751986978883122491891552862681242784685234905906205353211669640497188338454506693974905283719896692147589653247168367317166055340806772920762575806434686534530257438108908017730122892332289695237022955394901312149464441944431264515979831925979845608683445349452255419111186030607242697400222519093218697813354603099716902608252642212014067192847314602755257614706216599494334102505850713693358106314614714161994471413734758893294068448880328183416906991217787875990124057024545469914109055568243105931915264100204956144325255175487278849875831931999487697209801065328293978056872489807351903518371471236018981809187412082085222607999142248320716081631893163047929982768784668580160458944156325559958594177483065117533931991324404383316146267405343221431129838740753573194367013541753319615338045195851187256474643088185506459864951811782543977748144611646732095429078543669536098758237612815981225734103577127791565045394825345596104619487794153608648468921004118685208314935262584171549933152096556057262908504165733595287449003937383752678087580613094359611928498881134599255146953597252334683124785714770838288185358111196870950662547169802281157993330288358551456441455456880484595407880502764416188554325886429178438410583982196523612912632038848337745140745531701548589871921465153987425895409345773298509976532268644879766782304303943345820830185067010313457374109352472771080991487410061329624322511728700607539355364833248072287753914705564769947172414648956973420015319902290844652067759009727936565756437828020674774407738824211277041207854196400940173946872766920964849507161042283294025433243577387588092372832473304089480722887030216518221374657510598893311115285615474552801921361170792587670087392486185815371161316558262687428999389514118316049406815892413269208300333038726863364167368216738873486132307399773974410665866537602489029960642104012066312430679003438199480332907921808402237407911547121674160214471416475453009711543358057744940108120203468639602124292837944503586802924457255473391280826957040589775678545980865319122397161623489823298411013843530643020059360255660502886407664139327760862351696242081419492470293343821388664336223724003026483102390101325486331943138222945397114360140535254607279737295636180782951780230664141593479075029630518052574056015208319610595940734499324352991601417133629736049779980046145367292456223342501348054643370113834530623032398591455353849485469914666669334476606735049645141429532414765582001779180473990925440952896495359902718106909417791071832763405916177418642112123214551671784985019333635639458817938018793096487417461212991818563155043118367316758239206520567812506695053680372326305561124037895444071563948750288500438485548016452932709503735995389591991984789811995864492513095201975167460047905930626112528094907697194223101065447342056222182531092187653942845003657692324883958744117198662338876031614605347433715837466769482301066337238893124974879339058247785779841667480758369332263877238742034615230046600444712975625964906999161436511308850501433957965843882974132720849673875697859012577270914663688486265567213411124612824804487842170974356957481144866473467049819139498613864499175027389781568362462371093469360138550936448753248431397147051454630221813008420531702467560089609163669959333796587138194001166417496558271718393062307805544333633265126043718418070234789387245054373262417675814407770776159115829711148292643503705137779598273347022241422274182418711686397267781990704935777587415449556125852830426753629160154227042180523322254013593341241478365708549952463206040700527431343169584660289906491377779493739308327846264828266341068034418185528902830144057719466581276280261722672295077571368226432772783459065575422857679029330295740418773224864822872751688238545805838031391453466598127223937208294735870870221656455931252161960616277912348402020542464952448319556583867176174148077507038498047287576584772738001308294753168614084078132086165874221446057725185855570206194517443599421125417439882525180017130137373159423546420233171774913358979398041809586223111646496725580847757613722086454283715512786531348663680551797699098043895051203681815560701085218467852823044661848861904542161464517272832836576230362004413575729138162802310947127717315090304339329218437965034978089756648800339042350509695941733564921925246085541622971346344766049923729790003441492396589789419550071857216326746070234087455194984294761511076117091385694418805627036764320258453802069312180743591694823186598419451010086885079216551728268804803771684313080316561943869903156674360271762060401217962018680287389597720756114599938930042630569910678128091168380768596194476873585191643513858501626971315062987378965306529455857496917921904675154100775478839042574812852244864231267825339025231300632911276677660493593895899287699412654985583568846120626028483093789997458153217198989561959776419015522646661305597761707303911678112283312163451165269912026653185701105802370660933809925863895100754003064440888576577073583211383558851381847195758590737908805353158705011221721916216785675009701785795231956254618045842371012358869555472708856618054185836525465192645751246517245843128383098729679657298968756293070784100756982913528311750304023856496208163555149957971971563263869005507657508352251132112881279004150140950817509884395213838685619415780183706822799822757587715991602669385492436798261137509153247052318631249453028413775191832228123032983697387624933711285913152543729605799073547127956124777771158814329252935338904861559462392049150336247796608566031813351371882464122126726773327880765735007146123700984618739872458955745768729729804322500543822048343226450449052996921854873209529545327453382104650631763071338359927552766898078090643737909738161233897172172940364869374954150139255360351694487713349154231947332759676632916146920337580687134632552118491142557407543984173212350425556636654293201041663606851594321942070595940231933308428274860818429263111911168119631811775567466208750159960314979826615888960591675261569749312245956860124682175118493232106564989052983935457383796235096532273530007544458017671136768517673449991767517281095362313610893444627627060666432686262245287001405299601713309393167023621195085603110177890945263396000234136596602550580268036596327753596797941380981716770343926645110986029844233963042630195289728745687599278605069166857859487319744410317129473438281228413647936224516804159262716688063490530124710560188418238491680129967638344004300572688773118402746932634802423387938268239632885844689359413977941385211572353733412328567357745031415273870238843038974246811438297342965155410319268524469342650870731480395378144421947875289833838103503766819213597842105948590570145717631109643780967367741444911407321256880809895896124819767773415321925399887082480163995207534972037209995915272617650517084041536512400922165902346314938465403037113257772977060277033130364977295372050123730095533019213262167443185952508676747691937923574693269817862477359496889258068827174651584927743701141118420723477205452216360646890108235691890096225905216844241131697657987069802381095024044200633326409825107057444959127729483781847467320228896143732086406313412757036562869281916896073630889374577151370790248427068377139224737316052139394631117791125775114432217543104199303167609295279259983092916254818997972961859602755039720735029464262261989820561063723199976569227701769578917569558148448542872760631924675385380728528768315061850674559761551892820051711136383193156118128740775983948680800273720337756017771071104239469633458535001211951516451133602264228818993419107368230736207932949081431674395704047403483590126580170324050933040173321195353158526298432536433491529772916662755553130077710550640766112601519603287779556480686659276653606624225691270794717955884141673372811672694144475852711189157633057066794835354645306599322286968001119853387669340429085531492929954966453860247758740259822318435025320609553133872512499590724135584087202012338311781952843107785117616342684552438808889236282907689663575243267208044576588511478289296439658200509570923131664079531846676158651917044905266218904007200186833517514914121251476141064313889943845004687303657015676085031872851765679501408241407329596189713498785497364215352915307388310926752902447228924096727473216316488114619648833007081801766139408345936885713805981363267228973906965486919374174466001580942939691145788129851266185527292568463070339167043592247917418487127408968583506718237810007811003887223492718640547852793721685580964902060443432585558517911416258136216608000062544947278865427919428321585760680686085377131560323556441764761495504889881214399035051617851088515652873247271621522515139064084519035889539905409487746362711278861336128889624128207029545942314524834108612622747523284591231843675050081426864548922220251516611223793603136484389067578480004752116292599355824101838798964387294717522743183918398996230716301230021540014352724345504564413905562834164323419100867441528463192591233233265944271182173296860638719892763964102687379342765112927587255217750840316865594316165148105647261306622964315751782680069218055665926624470221459110870891760778972295462539404625874288623694335225529116604820929571185230096392756735046373030359424874025009136379384032825621494350514586908939822492103135008543231405772389583866051752945603808099176694453363594713086542952214087485445140431371618274586742229760962010766703101883630765762887950553614445885555661400020375645699272264058624699695049539198287622227411767141697976861616428264030184084252660064586947955569652289212907669195735363870660592154055241531052983281786748294356434172960084746627676647426065989946822128937215244827613146047763446519984889840157435543683326701186014077486072014931982617861227927324372289867792548595967767852457221214041555108085753504966262193212393426857012379951742919167894778396304454957159725030106296040593567519779836060246180751460045963930957063532776053401080448983159266049109798936440613509441726030754544629323938384460902150496410194339099457663033504575742614160359444753970117786659150181028749590765201398008940142100872675632695471290005481420354035777376524024942650718480079131397624281500372062247679888752297514650720296731463689422676621669679060296913808619805957709148253997548675369021275191831292847503814341936384199697311818692123106238997476223851275664096592711380905066958474776909271271825430300554951984633257342776179611124478838133861757347693952795642636755060436352808160294207121813284688987238430979747350550660038814781165621951391583720059938629716968219841482819073969786059184894009143972281301641781843983804450296659614296437339431608408214927832673729037653200207908369517914440672448322180458420496556066824760905762545759338783178147594335096336234320671176347605194246292771289111038281942559610235217689467259456028062166858545854664844962015060740758575215024190423140533420578882652524469576826199485153590668003593153587560707503530789817027599410892534766592657479504592168353575114385150228190824868131394015549787541427468062118983043461044191338823651341226855614808954413685190492103589977699229848524287790048893009353159853527025238985321649812324138275295913442069447377933032401805567872390298476000853535138161218002875027163849004431378016720197977919162485828967367613985551249745716044824085982016694387531911669030895280691347374458334835703651522206802519534395427196003156860072978206684882107953738337926468388531228467822770364874297732838435849276508233597906241028199363682990622833251201162983687396944568037468850510984796574654485384690748065125740399548417905125249862616804641986621732431252264592914088529718508870049403827789186295075927298079555357236517957986261635191892480026934486215902557781671589870533514069451896027315533934350675100915974937166179343810431658601916360296170114072289430053652009982674228300716961872727233618972927102913529769557496319303566217291446253168170734907778073188971966151453645358133808290865180498395176969591462588931095868420398283149720297490018037331053690461194731447053408358901514378397659656443833191905314046534477984803607872207021734375125317196699510031293808836443282745991784716634438868558383958812100487501059143221816572381922443850482848741420604708395547617877913454381894773609664452598816285751818537663761360376668434507764512045134791158906917431973368399470248722310324767379377681022945864333563256243761982585010025431852320602666291982834176751143018989670543518698391405947664307248213527043819802047692020186600059104567086504202799566289641009904869209588099280522317050855340406484247368041608933453193325859068346762226962381389757144851772792891928957879923191688696808965457638981542192294617337751847441449287731398712411518749050211262007447551367183407671730862877070820837258362118084935829027421912635116707034489509440165345483527464090955841769516819780492170141176517435965186076260160040841362021880738685100836638557016984339787730506461382477136545109787131930782128936350283602746949519549883377678092317881266654267453328211055201332709442808326198363958591893151418455012462451768521214369266998633956727874769302547535752528806814372368432039724727331903591776620699031542140621949424586476646865019467561729502459706249308275963086460891875966149291651954240143016530588560228347106316012385180642942981844293832095348441534717771572134114789171044442802366477216706729046082268800781935681416207969582516478319829060986611972808443162899427516131931031334913658489138423481404656199910423744420623157008396219985636698440708970860345750142043467462683650603372931109180540881643895705435195458564384096754468910308779991951736009489353278288203018281711441906392064944988493396095310328993895445134062599114829316808322854247231378444661663838317611165231948168388256253216534282274215217692634037537306004565283205791310156553742656604005362217294556142714185789880143336976356856151686646083888472959824379240228212268839624253331350103909638731606170053813319539986788348335669351906492374201532407892657460794835806474467054126424725006641817449962164916861988413160629929925991153049678003498975230163476453405635905621895046454164740956413657039038794794073842796716442458413014787070440693768875137511188244760393072433390681079651773800376563794441818394653064876770403289589673959206195906353439772612966098699607109458437778532275694895153946188465392561064187212331878130458254459334291813019127883494304315015118430770882483175097927245036515959946351586948839059125564221443282383556107571001631595514282078659276881028331610434235552118217496510292129145667422920261487927705061787893121961566683506835982858632602763332699706488526659197434569658160148000269734462137783544915118239224771907247390019346783385790307918820130018852202564195430090722553209879045456154500396986380794473173334866809879451636993928530321381574623602797725846890614655800248526441731201341743657776489606797450095272724087295326878247573475130086432772385901010165867151128422843716846120994142633606307855515603381076203580510087505589292786439021628908858678699991284599862878471950605832085932570266676244704672960608228601716943540384626978894394020362731520045260468111492667487904748318006823859418825905715880389159023846431524052154083337866317306745183077566327798284586315286745235021613970777889450369976492338339816496381811171247924672150795231388406119031108336738789601449529436159146009991885716639616664984921160013213179204774551976185271969327505043420961115062750619279365372523571159192871733037383023973933989671438712595554712454824102230270426542385919767592743224189898176009218810075779787898115850230166656403481240337518686214467431014440676131362525418205399039271432208402697585407899068925610304879620875700611779251302426284806757933120066802555056561744003076023419449594606487386920020057126928318720190370833059240766641643389200155485599632575407495632072648350768222831561768797398992841457194294503123421079516009174497797800782600706192800480218839085522284060556207032736014825205165467864206619896307385501597517603314830174681364272943767686790888856602513851985831835457377851144234116443789728842470189909515920237552442792030128443152873235137946924957941233076711750962945834224198325860151053068496823532180534933980425320689477251779969644865128891296052032942665084955881061210185935163772210635101503772678349998398710815465087293577983277464218163572391977697805919679247297985559673144188624147364269298044337540366088256591383448600641120162211302600945192801871034166623064199804873988740102679764615769013378239327719144416755043214643723676299784662557847880289917993825055335352825905612148042952411611037190028958686579835925636643799637184520121947942882797126934035083261035463840896632747187383498148941458089451526672321456844270599273934417766693041709110582298638001075409873069012812084739221597893322406854674929481953518762828776447961527381939573702980704886727686506950003789475303978284275901872370262877658287470150634811142407183785825760250292928853896939034837094328030455148474542798407064965604168539445984244559004960972749221815221968619006477364904295316148100820092417987712180933609977398491979236204540796972795234849789177419271666748734575671199560257483298372752462405756634834574547001548737974444211949094358595322410710314199352464390571955215424890034173439469426245775418078939829316213139506994323993709319870675416168603429275075785259733641960168584952510871586836145605568134252929789939681302795575125097413164299131209495768821244977507971129137145365258611587399864663570121164954506094869489133203629138532897586917696036798665387381129593227706023738859268620452763090590285892108826946904122039580190214410796499130720626174722063278121155240878262883625563815880626768256261471864493451430515909795937744531762413251041036761390262568710470943564019157680623668234757646054006635815083178489931928841148965507872705392153663596219863799686598758797635226250497025362813845988934348377716318691709998007440391175806211891458668111830616533974105030232858673691908119081515115674376414933129272959146338867437894510228021381556691222683803640441272739278866086732506623631194890055868204593135941313972242648438245088971688916022337705099926380522717742377305452301853124839574761247737512530059282028088565788135741615145657084085344996461822687241260815543010787452687910547351986485994106944311313380651300062442758400549842018430588375600411874598809698029198652615901258003593612809645786223720308694038546061935090156378654149511892346901190096663232402178151216447782261711083403779457711702754524952429776839346955967088113837179860028241597974966078841516766720089039518661088479715579622903470542882226527738800870850191774858951657551393160126679704979741122983266552974006884300239079724077431012273959636168932474093455419407931477361581523489013574872455900463003284204105284686240584236741339865854724559381709550261666608568521142942862761163546342932774037333194834898300180209093947698908170370913322184625454526539766949754253515043394045126925193329463072041149146518834838389842857096007476923162217487080608464646854719331276726081464168064465523779990531663877143534188596123212210252224111987462528402412761474687908438966766587349801181587328446321049821961643968953599292454709682438035236602298692852004866201379498680536351550351511897631018426308284265926084736707756054721353148905513801810468146886911378482213076994128353179730363473253411043708593006518471684303771589844322706916262885659636833660264194970519119491617778234270292589506633892600859565264497089681287007309737418920392735623252383226497407427603764745592796709163923138368919662815311685421379118421676214409205718845921339938425538760539938066073817471750192330213206222570417069770710858127499412722734780124932218879164312697114649059322783510957426097825565142597367957235092022648895616420964358195601065302402308755825386856914736974768171703000251182048794038767795384425363360183754562665177316128496629229923294852510810807468999836633278404114039092214933633948444591524210058172211539202314707190899696367861085226348901809630129203232095645714961468728353060838594170173904092747012290501781955992690953113316101166148947291761571418595126992689030809404476293341292569912998933728168967994640586280622653048250096217227986587918110762804689228945452514439896165294770084623313010358047232104207061589515423915222918916465798642347570681371565469199348108236925980078654820949602936886392853377973768421790421553431190998241020271297388109692839976855953964509707262659687124703709992830783421394614114797153915706680970557588679793006031937554610800764374591070894848034934349062468447921636170832180312421967353880843734758036697046079455417354994628274906702694027725715902142768069023674668504189443442601263681632960262121070004947878914987419729020775009423376572299489365681273338337525892636821685370663014260423382413239496545236221174615040189353285913785664142101595843565415414084550436229888771251600172482054709498101547581743060351621740865044233378221331089649591828127412139048427013138421656734798544031837188554938194234146191895281529264366889584988266451177638996678404174897645965740880033560157326143660903563717605318473848148010615409591524688835339631374270825981476052179400501603899575588838851036989835463950785844467214793753210397457732842836009772360033082914756780139670399958946958642017100527540917156761509471167986207366655317798570472296786495768817417294496462631799300684189144203390112166912717572751872676751779443822847438681278384144940282298032876642918028216889322175008713182196194638266185959067923112457204488609772819224582532551565393631319427665799967041987134240481069294842593159206687860021195015163264850432429854171820960558540830395431535750300427563619259372391186413939193500815131904966128220420984789951109127568708686693009942902089927005666660089967868374829232598614786450519883815342089709619940990279099407369489586475989396256300896500581118187897518366126518891938302715833827066489570885554952254922304439383828823033890406272446431733980351848417317252374889887269188762881350430106540123072648532392444025885230571877548029717024200592900058082895310100564095493975532476397830091057974712630299861916245891242151219797477542216526958472209360204302299258098582706906441666193033753807548642813591522267632519340419232372636698817697801450175802478476417791308778567883047072913389822969401074494420547010927828867654150249683326651724567497077859558158959981148751952997206099520701913666659002481293714689972578544703922767304029559920321363915348348024501645224630018694838560498644014912916157349968230433659936714222565296755016050587684703747342294866230302420684260758511529253339690502686149442604775108978476545874352682289433098439360955252478399136257619560608783963676215167097393508558401166109265847404476071822921361893003148386350121926204294986397569591242469400293368342288392535774435756182933368429719893585393083434386697863256561987867925984084687158079114159955320465063975802547511174192583026314046128242243889671561029350112994825744628591435725011137993657510518991720804590002272332708400103035086526360534506850262414273076760622745707921577174647575337948780562556027882738271276584415525226437159734327714208897393101866273181332627857942808523089131550511499016876585480377585921646292023540948968593410303809144803421924704850311236935224950379841611837816637779949381456693832790465652224220489391937377477529706063879765656758915969531406848184437990396937760558485110413878483576495810659335952604980264994170744415044094525715230766621852096723405857456985968401088741077097531430403047428545788369100212447728766469004857195305218829888273130782565849467510621450409733489563210166689222387171589751750502756490921815587560218386105383255072685556864759109422553460194219543236159283508224164010511890781947871863425629974823543878868217927465598876909396262689334710239741880060425874490367941114680762026294478937175530024703927037172545774366694616844373304875836668811689302772844861570004894182047934974807638608794608016779271553987787310377753664185717091986763778589893370665949603019233529856553966392458598063177693844228303237830824979535397768379584533201002091920289081575895528668834507676974920916331779027666393184652585264828749028189983074245773098393025254928029871602422679896453213011581972078214486135096025033630121485288843101351670829635559221884406067591603917671267281916695869147516016848319130123843261488707588879531499032357050980478573340711787990416110616581241548546705585177766463828262331940399500967440604349666903484905278364328877836943179793347002569633590333931960173197234175116330381090074181572478206971950472272272138511482986332135813597991980548447483058223733244541726274773493679787413347594780521251189513931947148362509714440344622528932096875201589637292509164481752074693626905187198692287319927979442649003635227914542180563835019897754260572748572840982572793109683147345442220654190713621240976607434387610128875432830401795747033636641038141931470288162210858976098432046207900893566965008709236426425805273534892190068410872981252920960296151949902245856168001150060524185702111853647188539384950466229775631024234788214373348904441271716292595561686008913754162630841341451472097364633684805083621711497271484207606166043761747954534495190038716278675979031199791143156874795732825270585081196748303600098556105500415610436443644571923044903431109074932734561441470057887025430786631848782127334451186105553884433949306464386621314062565880933229438381846330901107088142941779408488612974817173629851904663118320810225435942534582798907943683168012196251822263276686762871714372321185077655831089402024910000101437746077615809983193755777507961626827789578992639176060343675159865226123413800331903881247923933094320169748120085661280887146730253202102739785818101621421688748281800316200133159396550528532600401804776108250296033413474745975119125313560170541381926238540051052846333153386561992933277379098628615234766727785059658831117354109853613686063149639332767644298657212584428526107246077952258222910472203860720010508616614272698142594826148738363238531774091569527364952878077776346039112831950063996095836461920651862822729973470805034247032492651153406217917356031299895242227642251957026655624332608533386917981521974539105997816471873521811781667105915182033967763729958386234031642423456308919042755080805030725575857790007239822388585284961586984177001274973124462261054057423022524687572000874557625780783199116122657843514351637245496946379800327638888783744776179218933679430669532935466362410545164263579502148242827717930851109076140234173131189512589036400813747167181500164165268238800240977829266036726817462606829650704594739705325582616426250618761471315903656666820305395345653250650748371625017672284821522170567868655894855085832739053548128846866779002123090591041882226005076943967118105009510981557505321451376355843754883236771525589554571143561174337812295204822221022078668535469125128340417236541161631433725060069258056498060444534844798024206500019252062253317523134156534976115896627766905908268127593478920365798831867398548999727161067152990686811833504618929823605798531514924839347115869222300112453239311500586878200180064367118544036313771779555760930819655466061187698264242011437698460160794381072063265136598322593978210933630179391582837661295601407891183414593802698750766100240477199602425524323733805621013566312049108427622711060196278414847039192201666940669213331218702045575867531934224002333493851351845530465789011912384148145850989068956870833848780243715560594892105432490807991289267214472416089627564196350690672940516008964140237855099773931599173167135370870259202940668664033368742553310256479802932635487626894027411532450777443196878649875074686075137715314140354289455221763957576996602532009838581768285381259460235672823706113725553245590369033025406890989105876072976839525938219575408571846818626209760880845396696124821096272444854282577990231234397389873814676724932788979639762163569245760040822793094009084531887253555853150224752390232309688426820260055121243977640201458394939651252392203518575262796295758797957860144302797636251788306489261927086118164224618029700571982186441011126564899439394850062574860062118073973973319289598201531399590888843542669567835812844060391148462905041811955329827522811991948087354774853435597968697721456026369461871468379379171527669502578670086282711337876592184088044002377203119308404766802749491898061807701084876769743029552196330606405385854250267316784469190087323991684247362176961760079988651462233329540418707819144360553140957923090387370894719752820528126207957314440530756393939016186291607473024536220611139509313605254001548518588696764534532686074908873729226012448426160679505158011891559230117365599764448401292831846866835603154743702747788602804180704373615466828568980210351561493824058980365735727578952508927799671184942794178199377040406409413808984620410603497806027973677426680257364538308596763856206302695661942060858637954315317185295785448398875594083866554109231780234255658405158543305311124112940672114543160576178293176175443543236347803094920336059198806224435512712929230762859138943223683375762100259334577264306660667366666430257163908718527107463114993703537257700045354379856487345457563752203182056939454937837160593664038049462025443583289720160836883328813918371991404969579057951971406964293721567211581852800540175768827122583304896731950715106189577178876216540922177669928280750822201212863236743138975278560621807075257128406877801449423214005229200614482101092985541700672126000684896348862539560759873604445116470326656030704602910338626486615542433980253538619843143224134849001235699417471615320050058418708016813514306087357385542424071239513705241032929690290276905532960663339538065697431046964617179896715431782337218404183107644057248377922362926243246814249180537410859744726309707670821355610512279440847359555666828681477405862021007050849625229694587342364573396555430677460420877035245334151568993472147498821224660978233222155197654650758360080785790794060427708858907045605149790250005160565196856377401131134014457681740649944299851026545564402786165562782983994822654363840371338802510128061328916194834636392735889196779780087622061328576597121852872497236939105943877794456502896596218326643456702929493234362463213220074815594563264431559630892440523475487830826400724670662660565918356343093133325668952868304826322893124756483743463352146207136354272516476849939895148240625539189812427309414259726611227486553622010062686515814145134775970442665566241443215333734095365172850913893797031159068641262025601317474834962693925048406292510616211854337990365806373955836123372389079589540273329683436276630121493741142098462582469071985462884166781109268895814621321810519598133665315113430180304212202836624032714881372865124796098902338729953673551863639885156149546457800200926140415996831797953252153419468774111378569292897222835989920102209518778366166878375448403664585323013746487472170387774071330513580302534700563582660965539298446598246756580844853026943852858266783721697493459959297357895057405922548070113619284197623678676673652342822944985844556482239588473869173349606155787328422609657868561088890010820721134984251265859045395696729823755078826497833631558066207039067906369338034671557686736527465642562218508878432360243685004967071521029877963384532541174716871129028384144161914714751138031382087973774524799088331068523888918005028921753743492025815513973901206358212198625921626421733012578744682157411882171968319557595416441328237815751904382158277414098846448193890234372881504928753596829708677439803629124504097752121914232317651854537818393725196589548331929997497776687214058758831213808736080781847748393183315535572652901388718214480486093600232791188873054748101854625995221288736600771730522897012495277950960655525753301604568527569689195851339951818072725558067429096158725746249845272531844555952583543429591597267973019113246204273692232811928605181395233829988118474552948969618040289544429484222621482202506422358162852253941823813926667250388065278232978681494640298914972618835326469326070890107930383814160220823427320780728892470176867908398324451454885041737930460818203824314948338067186079651876698841221095542054090294934262607267129699937466402654069643165591794831808049269047938868107800573923814900267310345080969344517400203247359292869312241395953414308885053029618700919352858054170582562094439423440443618289897746771887437632656670421816458357064569109906329759314617208912355936362453570114748623737202761691962901943485519752668136461487581583039288290270999918323039179495941955425858801858611961969071748134729973680087771351221069471345783032945244863899298861334885814745692554683840898305538365635402106295108349492481603037003131948177004806008140537179749962879811980632130283425135066040779618425374455937187035473234219215901522767963834188220434389349390215546703165278336543751186880441867338108425561812232330508667460779296755669746599888117180682188293027231716112632197309199527222146491474590508000684315396027411035020040709406973613840655054482475523667052942523369634519106355915824208437013708901701807372499869730820112402466464665763918321532251569022517376505781960578902514902216949501917144048757705661359321480078331596914054417286277383289703079606964087793764057978156236625031685323184611061659054900611964923125220824419820019163828588639327630266349683846854347017586990297651822452929090129842250156665355021091714250807796890032437578029129538969516569506183296466812429331317449803870794687559168203983677606239623257070048471432503069165044497020848139456006503077870200122547058841635768706261264517542675847619616749019326362253410340802828120601820272575586167591188616170662893698810848340553510400343219679034078219312433011196790763601359456201025810528291911736141753734705523735292575774321667659092800661502420779430439627735250383725022813012337137769744235856428286750307156038361614806355323778937956897217682018254427291103689700301514532533872331646348589141427935378014308018736440540570913304168488155358631729284808375848576659216322412649994673885861538958917936710365871845010306204694821717969900117375634343596087105990624530317652934911831993282211506943474067374965630673701774528749251497801220540437119523805717976460830265185092990769571127460044937868315652523122100993861229888326469125222705706018625908294004598639779397412405821723236182964495189238938875990737888358656956584228395823930732286780206115500722060968387637276854339105320671108765844502114980545176592150996006963155216150703413075306607290487745061232138596058948493867696037274556046707197777164247227636254624552019949561790635480791366465882241772226471111828878665073581586426479524514304551719475330786282469493884040917067340781710308983124160300858041991284069909661174240058273080135369351647017963369453313002229250455812428095395947710503828446073671505540882664077144595865202143135030429245012031812130815375076047897681444079391550538471443273329982111432776399142212081789430411701213379001881947135768539073652723575005205348569159301967287311364835648633680176974974044179425457712158531049856501485146183541128000396217605773925692089952088756856109332354475935297250907046068608811166353810333045730723074513857789327875916769722737831379961135113358094159793008789054576101368793012718414969603394809739898186293327239919448358043887269955769962384393601159930908036595988216447075835959835882553394836471424826341785176558686680963364088616299506585323432655951264989115378692373485357859547991769147107410970362528082369824394978132248471852439955929550832223298257281836884100623175786355007329578458336117875067970089221487316245578822059201203511259370089698179877050301425827165550815885640161530882737341696740471299617792648923191174287610826846301742768463835001636011612602125255537537451837690431145492566448212083168787485218913466595568894901141458108774093917436600167285441687640992582864326925430316353715784084086854600570627359218039746194411798021851823263359921990180437363821801427562016892171969895476482298106286392787161325097851421033639513871293242917615315230305191677780303206559935685743758210964481591162565104218801428777899864676782087005640488560054441326345404500054414625309886788952091813021326799874175235713724598115961722587244225983157279920100915347498640759711142510319840464443925142763090297868195337096087774353425524132537012069366883755771008946053605981266064719040197078211335405464700078586761976037072973625265455695263482929715515943804893604845197744541275543200133179982402969657296805325461674198775129360134935165902253144872785374215962792920046251429338593920395756529847580409660420567539018206518163142305943502648298523629180202754279007206668858449234320244852996928987100508787835533023557640777644699394644489530038302747738079364556901529720709883664748526932019611813278435171574804093881370320518486082322179747262395703889776887898416024453523007434653624072422751162827700696487540836881189982075929341222113022477780989362834519135139264755816570915379262069406442181656124843047653811851241019160852259253630035066433668991087238150562699309630234112783167223345365174564259982198922451095493547848069375369068473864722710472436856247462859315983493196866043634029925428290718537093286070861278898868170886479441752419368783628225023466638939474890257200617159665300008790895313734892479998427705424987321530058794280860901383423531100032808624942919692469817454778358664304351365750827583057531252837258621416699436082080720074906563972761673767538114256895820691708353529810576749102528904015515616431073855998944413347432253743371498548860642454903417898393274024428578634737352393592225464916291847233258509028872989583026323379906789691558566586545058285689879608490033680316899321444799036102420698244211403515289616449563080223632893592287686870449362540406746774481823400952775053147799928433663612371833595254495244753959519452546144766866335032990880577071626403998090575361807541171378509732081891834181904540237114405098355410414297941901234754553791082214638631044214486115880063254212281448549150690735453306645995466764379829343833276816741620859372802006320585009059440948044572853225551243300012467917091835960684639476458822490262629461573297162447088375265450841552796378741603607208018296111512286202830752816809866637002176485356597308142059501412969663965589047951144304182354222438560471138002256561026426016426139218263585256287153764390619617418029221280847058535451715017214768762209973807166583611389696045395709319352408702962038205779673645371855144654847056301367345341572101318179869478732266811256421482934725367435751033648102306950962617509302452943360614812368484008813581491114305702800010901198056807754340093845760113459225425816022193534857634884161889867794980964803253338731376380238876530878021692489675335225210994073060418147357493643498751779955789051900551857712870440884983779819717638065088518474900945612759951681420900011596702030795292630450986621436787162461782182576114397672848970184851676123582156140637464133611553776781928031071005545872375216407116721954525192378894157361482950499073562637519946823137217839076763418674173810712430898897302439739747430939053963866025271473430917838740751495698932173517262755736001420562658295578192268814656312523107526467158527309185064325730952777644884980239447512584434044572121493671798960976520908779892446100222536355702590901078760417467156762499663812604039245263292617487947629071003453680654664354718600370024073909305081472438438270016654959451738246366889316126305573936037035668600998811124392660976521838423867025960833228772254127857108029019554926426006036408857365519142002912363906916198703916837770645242972467533937272393440994898539513779350368471154735279653713854243405893179983814736786515267063228233704271452633258873491361731342683034476713229390712478355624460771903891710637150267797057521000941200025895608692490603511460848384038864270076869063864457069852832618563657999176784443980404293420390213588673594867586258526837297268345167235537607848416761627233072585285705467280389725726394179076270170900665810023931017485207081946124464877371704683960389876516799724366287518795695281596844678115899401569461597882946312696500780120806304633081637565864200021887888549118272358160012431364382304116184130368073064649005631033226857088775110656953279235555454009393379045896459418005495750710406284437419773675071746543563717107958336936756537305049449558359370335210742686014492324526857528231751424869876570895769975319996023719552486167579154462752774955268916586654361132126522210413695840647237701594855465016404609781196681553912284398593491373249433189095618489451170144047555498688752173285159421204716922496676142407412090512473395898973565664217803590837584147516679675888207709148030854692659399990580707251146948516884122615000506487623980874207057836205389039917449418721709307004844130225865501936607618349221783438331436133355066135620413054217743926567585053452041825958091786323468895776728289362974173554334622855986219540416475741529886504953705102562197311518311508413187729319743047058122808977086191842656405635027076547659787391453025875748158866373967510694694273587177538433531590963132085930419589611825964852929425055906743789515206723469096822584127342647264323441592113663696837304059944343955059401124422401111737792002858390702473827333415965469462209039239715719845262174762488520427718241693329671932272003425150963462833730703629284658433592767825342726474498295068219073855620659020528347803124871072838679038709393798959234967110230066467726722147470777556701879461288576928467953432885031752015408034622415391600666588044444128699086270488754791547974749928346901108770948058040594176566035253420755409183314208860806334789686191458370349439377313249447908837115546967952583828836513652156314217024283471600960856822988800801027307644231014531789565616414130837839028122844173015951329644686084536582464620293964921705653660733309961499741081372471004177340513460331003603185332508566330939709011573750748412952276616491146806572340333705266054820336120752304524611219407592808501560078145562632006163110242871601472742510765901780243850578474073377841391195697602942872596169522025519707482889032314191012061686021431647013499237585134900329640626286162051472432613673006263355057660181777085177064606869565656487538048754520195417331910464191253488581975765566151366551938686398544501802484891488193416428798953980976911423346517785089081934754966530061569095133547203403418591093708466373911946216683801026625063958673421799463755959976301038528848267370952638652553707859909999080911622930104557369738516109599047311772240792405238152267625523004168015359820217438762548625394471791659598543776591163342977398012956855205259523611594327585995893782597652414013785898880646150724997782429661988447456720140541742312962157669681433030649342218858668681191782841031660803990479156115313708425558231566035038895335058210652190894116567425239851849269869672947837972418433138566988940653284312530418312293364741973665471715586989400207223199124559196173650223750142662605123154412455973974649779059972636579670581307155162972221204895843669787139541443527873185238970313807946278065075719448031052630422648095158490659178576925707040968539792314886551886131870277333825746571565059569903402805604829390390414121311377187823933838800514237944120919243814652614277337094295527481608067274484259841854292622200883223634314412054268848861539312520564763147079286861952691264807394865426252840700115968195861324273320928697182822827052200836158607886551139531062407506464613591114378258009087667928500532591869726461311811694389610514379682119907138409381545696107444313470702075541083206332796756993347480113656218495479470150161929449388504304415565389400707080832703085922809007799287776523408326890719895726285330701827642515501107838930555604591385044034850840254224487979084805400577266937566712563719540726618996390980035876345840888658629145434245014705580291343999664883699701323536133063826783543962350529797180923269510640710134004374256219915184563130827987090285331243390972475080891096946143068294991383377358143264507409751284412021123839104304565968687216279387463673789539054045260040009132910697632661150519951330515272467331418005602372919033234030490213983742620547081681330850674867500337115253551036382600192090983611807093201265900401459644775780448440431714722346140613817934482108328411094193258132831895120376207716100595127961671397590712251949181269707769732609258034653871701148397507845196528225445463530558321687825417701152999751464748987589132902825900108096578661179295751666159778061649153013067478784180187846112705067076701631897844914776963592045118281878758550505647450682113974219847288263146774712791034921357301754801918905041431973102559933019419444798152099336621256189519302271918876663440999442582005634314072309612565351215005968011735487512454111109756675069057338375191427242988616452929827029931933884237039805830785429550663903818952750428573371582253311035641362795706595079572612275156181630327313483297492677156562279340591712669727961920866929339584097353836695451311000075417921307704481695246723110226246692576709409117239446571039586182246984448468798277622611064354991664407910341524509231512720595367513236586901803291896920127224110014589883008864542507607340005895898884686443297729702496233661621924129536665499227680727477755831948683393266173091455459473339106479349166033362670424045445540198041351104331226489080971068547061009804870792815626731730495862761163440918334212566674711229817596318437413514456798043301058349865761925892425316656279900398525761450382903729943788874851567548511125984192612907371473392844224576234870461468801216082696432295594379981823184358327338333133093933892198002888185004734587336376614451485119572371403403486373835941606494873015871172065079670698966288174216730450438158509223308986828964700072968826957803924325430698857188290459808197428108371892250459780855004088038464092884551065448862966952207766609239494315554273521741298625010738840084959020071721506002998522847364101256866860797092710653950960589741147280592724793808646958590737141781615067994705223871840294151141503606951555877562224048708497759422292460564603568235671831370720914904267225607847244591569732387609634891009897007334072824112307651798172321563940147814752019242032913957114366446971023291137924518722327465926843096484796660235872635501130671689321739744435439051089495687052769925127299187559755276398617223983170762405492288757624332059914438587835431057451232650032837147197026652665449179464688027255257876459431751376803906755100105011162312514465038340896486686869066719149806921181668484017398403687579334195583286886848658060562663114879060498509942874356773359763853254975082856605331579708001920650825579477218607739795571908191126099893591362423399843440240148979056715152980290802533329242744387820400084250981303965848078122531205120553441148960739612382282050041072076550747994447573094385604285221745341520353989733543635733559920891406425597698873702749828185282845647142677508670333468644700477657371776559457363610855461223120535343548104600673599164567604234312334852159281579438427263856590890725913918210804785700342789979653148077791398515905292652002135831760429479518901709568729200236856148261915219630535385807571857857274640449853295397194269489119603317983684864921055288731705373030525185912015882585486829980048607222276393637284481255258347481862249841553990907476236169478448681760038365083559181246700023870725605745701637152706890250494729018639862023061424993224128074258910556833477407393131538371649245633387428463719387323373768039039525386327452554010993489749131388626540475413456246759285880770878299631640374709856519983841772994465035442859648923031067865053644250109276205709667646426467662189368889101603906963991262571153734039175829078711973024298268560446803654963248197278127260346689342698045073509166448038691008685813254617875877580082995801788428466123092355724734204176818042207557126895601695206565452319872331403810376180733252378837177122288525938520230479890916086961412069951542554857455810692650071956075367316309500952609898399686512831416755416920746269762944221069186043880192879662662441687307215864202082545602088426864758599258178137780537786794576328304932865448392333571879638064963141811416907611822364683580440616526133702331920669385304227022548842061410350693462725176363261932737149564643104851383995603917764291829849138795764489371589998195125953714521195150191094384388293809297664768297616438187387451011281653799073294478784308843717563752291723065453934196842780940443501201888184661671912058282589446655969475298642906751517428603949011795926710970758087786068034613922248937204025487334317754445609597896822499266207641964680683825040333179880176360248817819341147873032219567874640850376363763369575380011357068911201253973771363451346999220385024080005696866597854120166602668167281276261297378238133377435948088415598552907132408259475020657147820809225662398539817250484178969389391145727516978069995385514742222136366068476485895598033321703767318110162514853609179830072416457657358326443285715265796462889085565828143808497040718827522852581375873683528090451909961786516888912533764295672170302248013535297807878841672210151146113648189403125076190870864657372600100539926249513716395692125293098247508738369023967851636120097711532722339444332009913570351451328285961034914866128690961892689430905471000032984226413959082703359620304046803429731352721309009955447595519851841448400718380294236413798238158046522551860019812697818660630497713540339949842072833580926437439539375411847458154293203408071593830434888902414007648331064017229352499919813266684722397610562820920316249906131860699422413573111788168893230185792906070344526190774374381239713955219975076656742451039305904194037248321510319252295763107334420442893987021909833970725183510494393899979934225619771261092229402921695489068411169305784767995892663828433657852858056415312403161727018618713725645415125982933960339422778794730044899704683903998605239327799337209153307015589784563248082445963709133497528860171119843757534986915037549900324009862641542631157928435042845388151418666090935053009377574830683521039627374750732183886522701469751462914486101009162033244219280098963994665609447663188488052923025543402424895841740258243836773605314906012500904791398509370486793019177630720177614659949417519260781799516000200323641866180946496288462319843714238118875432533806599661599482171133475668839584418820344573696923375560587721689422533035804605214516934353887378698360269554234876438632944438691631047552024099899127434520262118806628305314643308369477492051830221832976976170578800850507737161836277898055038080845412812497250665265438212809361326150432043485877016344156129695749877197291432954851677158398075090705870582158005041884635414459024598954717381866924206589409480319758735227024841082001623962178182372709311058896076763790539699587585467296097830849095179031125609333461015402656890453514384566007751243739828317402069393892269721592669956429645160687464649544116170249395517116698022354949395389435557919689654943177608514824719590136124063840755776294736232187371429995280745983333755263714482877286792058672442138419706504965083591509917661590929414768780153838620032316008014395319968073796689106433123039702695385030274289510283543688187745235569067557595398952162982798798008198225327562827557638974722764458446463808235896655604660072450170985087266372530089157872535542923580795858663020171446420757416030037688290433812609964747842681396826149219399047042999954928507113916469874887185272501109621235817492707804939668342004252732958040098746639475299032514729277924852240658054237397199687062617604835877532381793871863729506880431686198278604455106508910033660408988464155492615565400029079371981212658362402214237094161767074280654799646053940037410472373256736593730983476844278922445377396881227427049826721457996239352172121267905422771109382668877006370888292010683020287370953124230105897365565580551061058614829029201070547864944724368513277132553417966644401859977345264475130843294965028449628754667770644557698276416667944554898553268902123979157601644537195715678559550074674624500103696746305499823984028554907812075882439004497679727845791497419172034820513821641690742061353764255522236277640654987451656610023657382759601207998743005856782766059709424653731168554441903820670611870272843334244723441244600315862705903095502612395639538726306005353681850817942286351542861386445702945847287031824867824442650313370730540698523980445580190009948756105400309528351172140425452833042339255842078989380341137322298861999920903327990061392721041868328043235440623068217543534102260564341965765732147485976874906256018494688234844984958452888864890932945133563606676684765776130859792308038162079916526448532434405877573798941569572353676129003928658289959719290315942055506282455903557450507789977685825573162755432273366918676838896300438652815195259683226700096732467264111424431593291650645224547307233267225452243181345555976565679362077752855849095087571984940642379060084930047922467827985849830474926362838386989287689282612469774323632712943418031448054375551690909638753054883770802020571363196192630652939202707547837463116863175555624703422778813146438960303474570677360918643519389385411526057937224886056750145929257052059778556054089268315369960816605637251012869261416216377149613622450777082228429108128304832871433909062544649837083535927579740818117654414038802180738774031875635923783369817422548680564611659723750600482769852910123345183563010171813100022340903958763706120508565359985260218084063636354279484751904196544346694891044805824323608773320047989762353929228169179329434507639907801672405551840806146867741079413548114787817612786534318543023566971998155279002720754161701172177772040704942248165345665426754113493014464130280907794432603958318843130353257505043570670439914630669614217548920222771911256845885364590206843330784036374109147187484079711742569979755164201109550209461704410851796553918120367288044402674979879252784712266166878465800021406756898415279020384392516194417237782240674483064098816161879614072888419797203734752661239508680120654972281451729795822379683370041993637059048577435275474587760824736338880610999230334388688092336916601746008201375094195993612953331424315179852302116899721784253484994266222860953578490970665168077281154598587901007109674443015676756224717251890084911469574466125091465142466271403398876804730923835469037596643912308960051584637227748228650806835528779007452862797740771793824560576564204217088570244141023502691900445522407648831585686798336481460476155033470545103908163926848890634503563807441813338265280913030561040738709153480149031602478577774089011803789216466614360956197372797232032903200104893622452128156062549845931638254201598468393709164510512745266699736636728025962208075999756404718034267475081980506450816468945503971800817288763183325069982244381454389589558996987534652037993458755502212596258239025176004920583752350483386737197977269271054406915163112161957524808050004420837984484167775435201754293004275607467499345209977895736631675877062692295207622805280680727588652579629147480051145313612992869024114145889140049886684904793905896463457838834206030494261241078106975460692702027679865867363703240694526246547157591179973857250526417583571294705962319792324567663214831084557884096623849425091332646193685477580120163907972157504048598696442877309325339269911732917220516207348461081081745179050894913743790931320725642952030520460567213938864061515083692637994707774080595822569755066819481993134456233717384942635352784345539961549206636264050602840766948118622490617005970784326408874463842016718280824532980582217978806283310379840994135928488754351105388487491125986341794968189936382184676772960613866091000478970431790230408908862192641423170824610861760168294552982498519729045317202588009609728414717145867705782489757299664797127443133153931167469914158605366619143055846326763896918366634614199982377436207942939344635028109680195009250670572262467071375928505635293380586858620135747116956410096708275126262812630415938505163441489415930154564447704056385769409282043470401425710489063106280737629603883368827845918261272565126465503709612695128468284005206644271694078119734597524973346731893982824870258492582170050666286395614040478121401808897930308295939590439429232159650700201990410967395562541714755422828824740066149102933638306871584558582455277854039939959578061803013279103259737754729095178102911954921056923837389912333966863323776434086868037162394435136361552517318004008762250787360446358836368734418161514335697884544628736730737903121214597736062175193794938024545071934998036879814437149968902200149317170274764163400748255928723750623352273914210620364468061228700244266526605749029807908317330761443027293505521496636745168838871095825820122079312846480399712332644305363845501873116716796161313687954509312797640547505749309228854949276609355005697662964676974782585995944159216613743971287969962308833407401501057866971353627826357462367970935482670186325085497854940352051370004539613024718847716374867458339056241350897409133660942241029707394565088512778014811660194510844108300185212377541737239131058229752369008520058010329256423148389868129168789235679424575204604551241398010097447156005279499201777063325027551410906439357155975710765515830689191967166384070445015542568800352575740117536258851448804822036115751400700417225745510491819749222683021855720183779226412491361182212310986369278808471264865098435382944388535037754003693342142933539227938876299143547187853313639080030461013456918868513048880823445678847823594256660071779819986401637806630953571836145899039732257135261285737284515069538546544702384378453683750893895493983011765703821574750799067938309857257243844304418493142082157563689413049531071019360937643254515675071434487044997610039463654191536419908540401029540297222240044467346115854458861713276375844385438276615393399442801466017810599457926855287849375227471763563537216834399203186024729374008523857621733203571925810964553078093407559449917711375526194756038547716665605772122360583765836159241416259401451683391021590669675553841555822992273898629679037534365384164348283133756892463814131262824590402142893375210089338637115203192617631046778675376806958364299842776486006620158656260991890415851448418773712987902972512230462033050501122241740510679415671467849015061649002428871321415989686201424620066406233321028274092667478612614312733729839823395023913814884473531708474365107678107881851537307767130503282478351414833024155575287915612563670781765904344392943953852310693981033620392923186856069266688966924642277397850820852683910483074605956951764386947021258597091119010557064955493789089171857423204009125152720163114151464294053373166124484986461286831920962898986277390270575529820879828776399202084735388308881237245486281210363789924320302016779325815884480759661198048386253836332498746208597529108096683584544071349445796110254111307850223265613074785736814904163570661055272749860006715631453656672700841035250802953794175027593717752638802888291857019837594233244544115427879608829780193802529704883274653669017739480585275925227059341364159951828720253432409985804831561857121138993044338542060386989215395566990950643884033735105025678047552258017169290187322722493351380911921374651043091076737100255486166695775135053624238033193658188843085536246302575241852877987862755493389395303008350495557968391543123584247379960863316631240067901690461776821595895472454322208073538108971612008107420119550823117027300901312216490361303137442429112860861658071464466933501988513067101891352677760077972902114254239857818615711354161526078022434627478251641085303549375896818289565490721384231463997124146084028410921775296078166377899474078004430763323432842227626880788612380974469975996798121037203790925515071184068832560708504336240441991205085639949757613203233880145289618762203661191760892758298639880735116584338780734179091854203232829031954322824687245405014090621017939821484498202078945937133721061162619383231730594126704548273642287729035484778113021587519305034262345775191373514381851325790555056854392553188554658841625641190017623260867685397027728039755775384081952626880784298898703588556773557692527491775915995009878251812053929448453193300766855514073492976275300017754725385261178167363628072750536804030459095115765179346978949713325117141123514893498867004458054639439262237239360116816649488312207893523063429945293652189997189805013909383016039043533662380353038282452283679943421488444780664117514926977502269401453225583957612093662845345426392647610846303343231194256278389231757504019060252764033834727093554068130612394833847316285535855802048218646461520146539757249769599280915303753497103138956350159901725362857412152416496009780270950569659300316510737210284691313819641705978834297287300894163119018154346373922042916551175209447337584133458819093223140914433360023228993075804587724118515262596443881565322340661227895236913593435683854146818411575205308136262354246167272258067038410667662284018525068380891851750947601963557114324980382374219743373163708674858373144185280964743524760927770839198329182426533312106358464764422498272525451214010247471206148661378066009596160506784947704609980509387367910744137657038315669407525333162466621342707450702984293195210306070618483222690321754203467358099997855023692711903681509804622813997382271032767071552868743116796909173296903788280943473600884810538511062937365645185911434794732989241017314590680955093403334461950130817004536775234421208410148327412248907889968173488125772722734217379222932128588668415948967332445713521661815600086406810871869454541905514119169611530508839803570459043952923084575836235790950819685006715212204410697434294082994795341944101590242076743371199041152099493022369234404477390094277509145365159422858816605129503494260801203742917690547153631293237373871253448199601545126317023180787110065037335813370426873106019178768477834677752314212344090816869603724199135621757696048997624990941183153135686094814216683696547657081896207623791298415761984810630349939935020319543753012549486051430952786773732935866355195457530464987683667817738642242436936170431967017661845798331464339658088980815370812990641356748633058982386255791802013896192885548386109663112726499665789879204862201689984480055508547382923989533418214340628490718117359728885097198635387991823824618603856921636238418260152665775237285659091000449413771773904408144023660038723260230829269253457985826111636123356381846534815977103235232711479599021037497688393569764270135708851588131029645394482791421591849085538296116768084851649342656469860936981844001884854493917263973910461563155424265762915457607783607118231727086874989435154115103870319520388106765455834872987280772783384876072952616462975773407668077009983434657059820096255484243604633146572342292954177272920718582424271788271215700731506750507001805148656888764402115182891894154254139579144122940206144133988318158706878447293798901001426030219540422556461402499129710020715273264545491159494941048966300083187098997564912115621315291136308041674747041169278853342791055708029759882546179688728989381158165043365484280948287820035464414430196739224123645336836402112233352033431966239761777862022567331416658111897389511200095948823165420882781570500502273572390721041032656468616815650114209611361003720039790548244504854857579253411821796924470200682910493952711260399776480958842775842948014017320229774756843216490825553688326573071825745088586134735074624378890223161836639404674332328131749052419338355561352076613307828138306153488657455167679959484501460327792608337991844145086655489566209391206219747886481761921784972505861448384437342517439965424478318571397018573467314097411281595266280265872478434668189551786562845324182306749628034403269974327835908622617101672565081590997043558287167429315291514567406355150465948064465938857093008724142606735136566189743640288605473187907984179040964295521207919190468867573801867295280647749839804925040462207755327404250071445347468979795647069880641853617215051146767916841439983582785972144554821518214227066067834358943574012308343341237804418019302020816508285582764038582751431681598252697648775648197051616280684347072867083986297526360815406192310912998650866239148491883930260870090127620120994197306016799612672551479609681132444280476247584503766729882844216463367027906195196616002527750779504285537017269897398363320151154885040321243443142206634786927558050043106731539136470345600214616221736970335946883868629188638507839340223804152344246049345898475255790644253640954617542999981082063504142344800190163487983671283080188567225270248649472247994500356126961688856912079644988389340127215507997044880212891197105015965213648670515135071119565186936091173446686037877672037899634232211936262319391881481841714187995865838821819698831672697275199263932293601877942516866305218324195931480746323742140788660973710573744520717557047694934800332055035298492598357555138136869917645560876322807377491645028795982231825692538970494637084426928221554544071660541543771009111676273950889482056154799475507244074988641035074416345835006356819516486996845425564479143844226545537066487862472302187362602689133566710452265159352222092265849308321725470699739026395232173781595013569556330411130960690744086662443999672673900451968820847767640179956514601059285969044231634110794635858577328460058631792342159316014965149972934718189570803260791637794721486027949035790627366202103904880590640969504559911979709112904414078384946196597057483186436115109012138212659295413907143854032726354733301527345971128997066144744396433722032139529365280034536442198412380876977068309426470015921144076265442731356749102586593314069892641668981889026211339477617015923950779146442210335018919363086124106394081837536523525412211410984654587854233316978111607049347704922812412761040388713049720401987717106465432100188027442551472240979388673951132483562381634588577892280456990890520765723594684532918596588985756322449700324335393290010558830210721693827544979022679695977822111515356168566812737691808610225821905771710674052498940739672471640493914348109458071636718184388001986856022458034696468720300070925170466203005781692759085512125090732099318197199404053928735975492316989666244660745808758023014391904848415562839606222013121305938295298651617361226655532574630211224944945993881241888000474431787317888684479335587561772614542297424635743922761433012349179713027156977386446205372929831631756814862356261779201826145787649117027886477184473371090845270093137093024244339182154395348211080996686380754464134708455787598715987379471400583180512776242840509933535303334262058793922207562203121043399322060332082418075629211342270958372211580010061012206341401592804050831297233736359539118306492184411461679024435808102479102350796499938664413186456497244410660035253859955743516941109503754009239731592354986776853924579447781208863180678592466564128697849259493805966167879057250302356877388869194637074265538589953967069723541997091401747082560660171104070916224972902645828116876372920664077857020637101717571123553994570828616019101272376735639228342707665591051803678510444615790835886621754445728009558588367140456014056376484979905324880443478077565806278144568885344779299884460070424922117355493241079608576061229304269112410262837457344640066150477270964972113405919759103954090002356838938673766736758544992205040071585972711030049157746585618784369138182718914805924799435166613710717445499061302663644418344282264267303133257148414744842670140318250177007912254542573698378773547269332205622133143704113797376932751140666400092925768968533288481198278100205528916703464929913688830984536883036827051552987964183137447248906908915855767603556983803625576004157143147500661452454617487010116894124767626935178248989421988933368644028663149548251863760484177087314054564993435216104269974611222751995194477438511648997457401889623554239761726725468845628917419961448600313032680981262262105926170134361941970639102519157231809849828972451463645357753152559665785136795990761825309768075334268586642782274884868763408893333367992638071507515183629686466060813149947555726205150624503004867481881557983403347369101680114324468877056484755229867675089816483536482648694251291808533052203009515038953090763529542914143254983405479766436904150662561637269661661331717238901704976134531308886289920060997526401759386362727886920348932089868312921629990540653376873550668547111538778460733134151394664890584909857318687099529097802791900773424333310418146642881320763163787623038781423696306301252904811643827873466205326039306937163816058594635641229924692801029147180448354429610307340143179336482877668136068664230885183748524118168881060083590651191490401281323826243978511302246718521376231815185287208804102664152915188895140575164602384436887737712408599790158261724893817930170767694340579709585057398713802260934738398469197912827174677094768463629962929712510244156905125817904697977843073528161092009515386865838318622458956596640802785811925429805141457501465860791384795636688418679516649732177401097158176584723686978805904553456533809873752681646013527459094330550888753942707710703900248114683852163191485848596354112853628928592190222507237385513533039672031168770790810451972509233647184785724169837887717048385002239677787653461532435857123678871815276257100772298454506400880807627917278124806365925068485968847908889608278050952037605817966844325446709275617242198484109849580345095171362074709611328966827872054779301039106730534028141610412720614503346196276671073162865719458256677141942403169079543775083672190295723150995418790647535350972699123813532383520976739811551772878090436313053351899977835451852692329921940839693908291022195693067856321267815887549546284379124769624775946463874753613482877817794574498300109539606682911984096581955244106125695887443094553251104316932170163956138801083715364154777740960111239590053400388220117166743827332714251762171912671990135754549621952359663624013183966926501174392007845190917200350449616145687108167338161033426883304325033605841719619701935635634384764894565491698001922193750645832959776446084342451082910180640543494178555475462560123880467539505877981393352160028006648427857942206121340199702849179263253409510920389060758310939371851225185084248575250935824099748906744154410530016515499408695625450822877264960138984229987151706203196603526042812548305979726434043471503587689341627846600691782126841450452964744548746764579891660647355861617418020023876408440953789763804930748578507363554972102292875025901497698317844688156248440267372245142738613695928481393233633343462500376296545533727363525177734066052417394342925042504756802207806579153321628418296095975830134977163222223922814988043476058241382376383932543393878473175469825203503828032293781589458547903905657084578288387746714771850458224191438948184260753005517155247510030743446974732488392593882988250999853567352780420094543368781202012460315629669944533107969454027718009822895684852379370910717223357904875541624973144123348982066655954100896377480476426376856887972490929194913525214615941659955496429197889189964093260023740964141170850349820675524966370811205963868699603602425526543280326021641042510651646297950578221837993809082873717763517536353952605376884399726788898868438318375109928406834272710631218343655759462820489747237223766608332715059956406118894817821748598896537547533651996868952699253182733927034983059378107226020268987692975461868203230564230305621926132376738189449611822220883629917746752811778242651788564763754589064668342330333044126837364740279825115841480115617207265838618692909716401350959138393270086523413978961787815451327000368666790620357246312658148893668785450357321082402854499154367608987919971547547721493832680071487172314372178428706821863725158009119082087497752567885286876304199227287140226866517364116128072608561932409637877211268983805869538582996465429312472454300608371876587970899790796780299156959247393067978461776299650200114681211811113625580082840698340511498539752160821338396377447135984185772966832337653756956039052027894667051101448856164206218544848076887769220651667788829300712590329709360612583449913763658720054287088989146759542428676605967047120018537224074011052434021312188412784836308873517730446310071102370917444795638785218565793365501774625540886630993826315970440848281065836357045055104539047169518358866682646157526044594200463440343922393616767345927784426406263521136024704719546118764152983735679173777884923514183766298419189838106674183794224600170627675266724550514216762852100158253918925459706789495587732386151439640549429399955205643254382355499146987090677431183064280740884213566438275505382461295048122599251782142859535205168435133715167135676314063127469426230931999232523285575024662975823395380104199296160204467708984938366887870471603799868328663252268664792267678582744121339454002761597296332530498613231192516580327048721646618827276044811476479415733488667865352620554525045393216327063122638374343390423350654854562047581161165031199785467601524002962798977865493273117184236908353938782792500957412197400380781069678303710993899763141403382675620286414073022030548679470909212907513543044664228233911866614897935916753734447371657821185705236448877496150712801182590018711527562807042029156246378397627214617744611643050022936684635142898869573127532283758195642671202052213760286387571184813450010358974966212618731272727611038393414189497324773853844813338779439698031367187257738740326824135483744297532161517953064969925904730105378864385253983853221159492807662138902382470706746073350400106722049932141663034772862068361158527827669693687037054593558771980982196733725417864597746386962847026636948022850502215573361320613714554470948795653337448679619225389172865514392498931266114729916264665962908430329798320783251912260076717008869437489604707880706787454744020932151129313908553292046689421223280446512566253584618616877641897460275081629192460610875660262744190401586335779734376497492310565608844978188462266254185618718173587792805387000693110771687665229264635060472744397482693998565701104915894872527274055720029277793747486338293163802571155656159389218002006880677303124896307213837287209912183624845488875162793701123583677033198745392127437188579740196787847532190810243463845314641826442570021785430313167214709427072316975335067111990458430521370846199984475688794403833500688776301485849725242287355012319127890273326200851293219771011757096305018806671161389862654086244409075331659745947768372083030724466013257726438211745989258772701277293160938468344147806048552542766901782565850219381118212791935454879883145478707933624223821551196488700248197677815384195509372707010002679888028458158233209180518771551089063510314076735414636253544543828255071527997238569266204813191089481570515498079299291550639518342175719337755372738523843416029743075066724434276412727500705426280803797321261810779863665965668100434206952280611669010385107271231216817190099637471513003395841710009582600140495503051240514132637667425785407561128551408637084486902540270294999737368135972026389694955311112923029706615364293330507610917088322560894476989154775712223918868475706376888295216110983516785487949196872705134245368843326606948007797517068522709041673329081031318714884304954262408485445728804172201989219733237478534725436876745468405573289614435540004637125457699763629187847367903947503728694371017825279745833680911287994929472042646102825064200783579638594489596283321505184172352616265700834908713831268597717597562727216926875056298323657587169694961767906012367528411580588283279564864815450386922780561995949777845084255788540605391103697216558452839006788956773358628429942328294918382932851750255660939489716388858854459478615565458828215522841160476342384586890575401386529705164005267066507211694112241621462150479240869092973580589534030318027163263002296618341461982110916516650235064983222113737994720570118422499915935771931573376480251512230208440299654041572636849850362456794492585039544831791770010403925425482264969172961569597127269666924901902652085031728384268517151587802192787353119294250179872096166232082719686526815691870700608706028774536933574185876600026904258974445127803467361587156482910843235464304285261969813150225257527505603118102978256455472578636160894996811160353742834166881987829055993507209171497280427838664486361231061601713307745130801851003175365915421303964903606281719166605067569975470560076730546620992306742681124391299257629648972999105449306559294971418681671060282270412165440699786356091921920094511019647270945754901440206526560532135190165722576446617025489008740981627525478331794291034131165240193680104670350552174536390629460675536249486749560398353396807717582965447216058949486072129348599564901766101217776836758653764548907255111575297403533749526098317055364619569370545146444523286996041486553186879329385251809158852372650548340449224587299097184569088358515112936747073471992908500020905223061096414038888265310797860389778280678606242273129966956012571926551466230049223980297725437689063423947082483300263708230934969688601115817089545034886075887728595341340438570838194032970430459423936407557722773420725547683123992633704328273016621024003248739590445537841033525810027271956282281932254994287325023876292365315338069502181227859627620801217471652991558590500471983731691842419280542856215669579806246602275799145649996564480019314802113869799002360384169826241404699672626474331912452278276903589584719590228142970783518793753866348988015337595835535058672678009130629700237310121212731734928455661780721369370751465909680400182274328261010194868864589093693269115244413761834492147574430765716438214629793600330825781836650821354885897016102490899187900844895904451325769179599263404514919603551388634636684360323770331674809206960980625722114365178877941855079785258142435839923942179373872376735471751961217491584281135203787560070431614267957381829437166910919525293800506897799160424189365470202947338873437085038615971244297880275414329673725984774489126831639900120786342250137961731650062769999565781520388855628654582265545178847634167593127899630747028244068657617268167015453167661151896582263583025608727463427640034410059417727755791998088306864278032574424062607067644127615748607557355379002293912869106258112472112326758226569765270385587390582170920573907161460526621850119175234248924046610186837453250224164298039485003814047526373378010902792869956365795034724745169289645115053812373994750653638190526875927968919643421856429508260815656957810423232880429881918358486789974744919457160748512697337393377327692286935441018727478457957554430415838918181846056824948225096906614140588974371346373598400696042665424745073402817577054484110021565406202662024862716096027292870400159886954089607806046261551248914522368792841072612657638443699773775624980962938531370521934332495755947801987667341516072286476176507593534998641161455150955954179901519645181112556266613964902995096425211599994427075534520018832849305292539480717390712613857435172857382083144486711212197721598226111622661325136506023445785560925526782535808019951628857169153514740893330650962762332413788960163769100141808108231432135602443707051006179337078463825343553226756374391588410206799014702090459464865854178782526927190954055183763104802614909523033901163116782675687408682466937627170561363538800987991824815410459475437177830941754484588348464391230498481567098543197729450215605751250411328219026151407800907871835358903630799457539593469651424938995140109839169558010085409221050046551588683756276211339332544200920533741117008012779916690809985368826192254126703166597608265591617675613109137726642535340460704735893741373054446699949121050993105025848860942804663091193461217805440501993395890908480267594148857927553768248150775476996511656892685668426003656712038327235931929320866392681967002654063338788292137863821121928257527290254317265407520693113253989232259089246996990591059106180288523289618379600542724761099807001619358534326450493984582483795492793031051797495548633444143863574396602320565720953281175215261571327015105274454578769063238585980982506169668400924925513308904835255391612597741633488379211575974502379917138055262012094501186505980343395239651793462461405336794494379348293010557457284158521363012255076567968018353689206175062282477763250684027509303686911024552278450259229994854858354257605012978699159677075445687821000278844845230584934074054136558029436578419016800808975382312325972314040579035248641914430570340573088650549126336062637933573378746610897050652440799544370691421777573652382597191129219248504585370145945157258912581911604842147762908133404833543394342986822031729118684215932724899005580492161874725130803871934656090482704611382299159829389722470748036399778332846657526711559994686483135286411829787010512723839988229610613772403246050538201785801085745624658598878178630443872642857851852472674224919137465674174983929502864534651149579160918319564306285719014657626891448014922588236176598633366280728922652280638588907033156085094262857029588211808041818993623342000493303312446453539124467628232398990347441701088836772860926913535982627618614329512877201523475490295004725029924545069425955456510656727026961470315913783338952190812762927390997986346010353660726716368789997189015666175324325151480380980329447849041225186981864204606595315437510531325984562331163747047827191646605173853430201406628696027648663138961949742073693630834816241742968895087162145520114182837907616561227947703207741903811817465223823640800687398079049070792857972155397413834926680249675874543317218094076974610520238638064318203748957138939482330051698437156086275715890003799135902490896468772219391403679875929131800984966305111793385720077149841741638552920451998579614262027899179969057202907919601457464422773265473174973476763219577236621200476210908727785538171016033750287654008577591705853903448968787556014431851234768579443661082064387817561734131087532795127002922423295411745149992467883947571219494059111371109641588489370707130085492834183919196105592571248135773249379426102192161065563098767551437797846568429382419604634930061059684794161334287190637370094738747347449108921701040744637620579063499527289566989252826428895039833363210253687529352930427338969156871474065137788769924492145706520912478859142390793101493079345229702155939930233597772508836805498880008279457667980472326709695672981386830015630771283488578767186233828709915236745618920295066188002681734855574698198320270445181367536380659539087144535418492751742094886828186729730327460679310767940493916476548473919164588623055950937300102132842538069682483419657466968669291349945737418281980023134518232178331450873264738876978187219851879258997358400851911470437522791990333782233145920553160757420518555271610417442687060716796839671158928371402698274862865181053774293021433871735622411826976499677346722933628732479089476357864804015343987885280651802545688240053311273559824448572911376694396423998607406652416207642012893391977055424219663894874434214466303327297144594063426973921994678896569504320615177063184991508376180054599307853010898631817176303799339943502782429491877147590488908811230622029210166453649015333430487528394110659834931195377990690816991191779667809289568433248041378258172649245424419107358429786846365173630581327677428611284060974681852795523571050134046662293286944661338053412906934666030177987268299719900286872470869052001990910635960076168975723040770142084824227369503442263411178428483531832889809802586771527051465828812237049632153012447011014742902234913856297589356574073489166489426423118249293733030780962888573506861031102604839054323310735785991043945122572949846643400907098838012013075199821410210245894761963631073697325532423931274494480210801302044617299008255817033817760077458050219884473318724127307465587911224441334320035877284271393107181526949856203807609812859394905804040037918907684450645484937537680082488645364292134937380857568051131957024945232539521306334083589763252842813274892659974466917606615382262406748986169114834504110708598372679659107547511552595705777467297916325465407874153344308330964004877711534764921598758807353811653310339221422123386079369299427918512198928166890515596405613802209160432520178108300065352262865635437562765096315650763792734709623555044415807611255712430098607173453702655731057174951245460599694974435399901048470281810364431915347810184335914356516096014735236563936953496337628030621895880162836262718812458090822032929975811537644414930628960902280364260349208514148657252463168753351312442693602688093822660321790178343921184304014344113229777286839601689836209459415943913743048861037365722380724266236210948648700646446460465108271452226237711480187275540012719007981826322085588309332244239513869528741731089042270035737370645138641662199991592081581849200533687163688070328430678822507409630680515105085014281284156184199969312254979449986395469190933451483276669227655814974055884988925282567006182145514046981711648024341234381190325884106400464409142578309650297687598055006102050909734235552291208974970456792055909137196828059292808733562189280503867987027870870063201527495752474640027603978218857855514849453368191842183591244011530351096439001638794910598541888901520207561779997018377278862257271471877045868600100537396531971867246922220700401752182355235774199382112852262191613284083596335271864424758597551765988719706014908600472820009517795977643639350412745943937488851269496962070145570315892464031006642161158777253812835144200964790556870617002726903277594327158054805060237614485179342480735088385544918465771930889834620081688360394442214915833301588732302458083241482953286833770066802927749923340491781819561589758398707076668603894824057754841413505706300946441264647769103790840324943162767019363362237847183555695312007065721849535337734529724369796148699953341478079289515920389592819754837072433016681168233764606726368800217355902129082396118295365779854173428977875877898317538997853647364061425434279272623584857774430881172090924034230000800825022220200485098114938596303053051550831869348147466633854175958844839697229312634623987104193256022188606638140520718038095939519423740796263931777881432956623681839325333553800224905711790676390131114069107832213254693602063935079874636190603987926010624417912562442691850030385431798620736208852301758667553754827722617259188367960512209919631376293189368689687602169945149274593706067993080197314629508247802342866853721519850413672584480136574807050538274450499428489231842922827892473191847705808467343050072283962128588821593987294095751558626634346462418312625005829384330426588278944239373950296626195170179578029408377469594810094914395183361701320614861795768818322052607040022668891078128477159544109336401360219503052265750587186805481806855383170285592718644339110070748038246273818384065418782099572691569907466912409806544965276357904200764381077208921743265451200056291361297317387151412685612362660133458744756901541642490570492757206978929934724417171761966094236524828339265317899770027048321617770715334279423092046273156890127574441232473769857032344831023696193445685975147955899118108575459412227312030515871873297327454644854977190088769792006134127720761172493596668330739670453851299569117752178281172663619464516794026596706092470160277896589811505655194265471584320735677751743147043810265764364312632470825333665687429048831301429100406022033873983153127242870795945059605189689103144720541348096902371138715429388480771138365264290543194746522558523256281072280822607431842553070688205062590433055039876207968630317195517431976818640702665866063564532100262049062956999725897844961638103023708325262297693178005124294163060675294232047922541499237282631653894559718966037986165674722898404733696470349878957961973056585882714662843119711998867675624283805167947261094885847374357403825601995434290953162554305516887738763607011634405786032295931835066178538605988106726933687554143680261879806201352748149323501386342418304087283681467062521617661760116540803365398622447384190455869491814706571540423652946731669821145074405469092765089395477986792650748901327348910290794887864717165957154534788371070906676563033371116437827091169490146024482182155562181609245038665813797382479875633522472107020189363636157131406152488048175153231771840614434146812699894975284011188969410280189292785990344739261335963601610286165467093252116950961225456831811854903588284707759771362805668294687322065890671252207083313999720337431549829859269680642149257308688322079628552926750104635223145269809202719291327036874606507314367765357228066328158706909314729280443688049405581382888924014859038658552433982205866731580265383461906771095072112888757550215737455226723538819104565843382205134421076973569042574906905810765350649234172242543232537059398256533788712974126186188234047857990572380194572397379891838347284242874273238484382225027028571757282852513700640175101755040559038343734505759403250500517438354555956604111800618441621947974595310169002402625311938085723048030967083654813201691792972711046133938867789577328142023220833759947033513086756349825661317530056832230651304714692935006258222970269521138502684342999595727192425140103660964140328509137919152671525030132473102552883250994003045000376953152232460453826989846121529949008387852010500627500652537417153186941627816737259590497454362742739982109421494178755336188638103322362755381062038333532644790570810861913002521466703767182349069464477228625224154169121020742721054048234433083009275909891806208499123979032906482621864280427354596673747391244525934960073555750006551883759889030689160914681543780056338720136583382851887478154816261670558280997848661419842467637675780914995924366417476078871687910938863207566396374679059091462677790453899878906390849190536408262636055234266844785888820084315713175553486145654037553371561308324238718861638738426072884489064491227939991776682702089234579089951177224393134768466787289201869119150057420496417493707117602154372361610418492864931007172698435468301714649914476897780562287262412800456103072331459587870758985386477048057176892716206419249753966688713454909373811165099043338480072105190369666354496466134300275027497703684102493550432084108548763374675806956354853408803511891232002782800352413312420347562572859806179843903276402746466395879878872236449975743113855537798699139881291153892221391526306914836662259438624124792326439740124937888949669847838476541781069578648498026930890934565123865569279972564478400727288588174683165076134596771724934022374902134545454957809479354245893589994221778467609902514314692123832481977595689343222469267631854374317342054048432891891772757208712490071384242678691350833600997179234326255192628310044270264221711877822108107700014407387439080575992302703212646292109200160214124834172094604000800802917290246549950914354904655388939274723691820649528883124275827854915761864463526379976619948551563727064527753709552110325932138091722927651814273106504884885271772210627559332275095173738106063578238059318894997521937515625903695471873047454387494754695998270121720590982707837692024801521192769166969491289234458434603790501162433252752903413387218196858106347187330625556271522641826462679857962013661168174911674608159015059950248167065041651791222026470557004346187639886752807442654569188922359215835684466985647841109391840961689229468997699479139216256558624099455088131031650971004655814451309429005862296766477815290107052549654438454510631897995059423571277623021276090173154671645441961529869548710881781941586610480340736516695432187913973637602409858486770619550059338956466470241687803071625263836195623298906651586629144204375649684932825683914249034757055720563692786274039732340068103687147695865188068190848405660891370392832653788526675065184941348252634044445777185969444210063708298900828871397418264216645906594139285043818985666378895847746293256093300749700462643469450327790129089068981928073334476996974692947254043695944336788137658786874773518569670213894452611098051411376951928445665111650383234752954968544628748506778791303330623841481930341740332153721590872483272819020415721377667697992721226741586926054418044031169535008439610989176326882225207451296266353014071290478418804653020740867937608706591268275954388375259405413653178543498381746243439020828248607467733843842284443525160187519741289352184514361493452767296699719238812898837673537147084278380653165962169274873677855399588223803033347692552885832889265942153465702074319286575417950302956445820526084383713805846265071501290407679174139522238896814208370985373932406420615309317508978379494482127186806687507195308259248166671087556169504985330553121690174321549175460928807932322624975067145823639530646640658970350804876908035183894442017341039309045229258179194206184387575106737895225101882712644169349162508875470683379883935633106714106829033183773015428911228100564306423989956720547914746931157399345138686642287717070346556442685486012145274913932775714172316100660511730756620362126066426966839183897555668012430251022335953616429632236330375379801539911673538938565762038431648526855236187090888906746816344084897429325006420616228996481808711831722771758631016202154243095777343789944349918565884064866486469805338006843343711759211582324970412431966386668520109630301179434002472099596536242713982139452573710251937486704223708985440284714985756275720461141362803447786462017169064761038310339585133719905476300782021502354539655094575623874021440664096445404978714746948357999887908709855332926969547663660646209174325147298198405420500052555609482829398860123310265281035038016187467153417710093589356437994140538544147233536636525570320917729970137883402317969181640074312674477425733173152973222943704897794705072809840640388023266875906080040516418650003114840245615699142689041971648919674928974017088857737466880347980853186710510374162836023453437160080889286534350881977367808782265567080064872104909279599274552701512222495711849998477542117686550849996585274896154941461847461713992809059078875449108153735115687010872486270548387453183931874938345509401157084539974146625533747632125756819159871820575564979206502638861523051321263119999704282956311134912629325202334831274168991036788192005111655631841799021974713525592460992679507265252353021482828418074822361154860254054130909749567074091644937873461660368175604286595908273414941988290928894396495410987957457295911764055727045575275326521482957924942846285834800335872426065702083814320438693895913103110776637768133307790284539125490534288357829565144482812259031979172070554762941833244777043124438230886146477323072585420396112735786684740632521502096668506113123719568463857985363152354609408293090407016441377245459673938601444653571021384725342609607390111158329018582808559545507373050943233038234313357216545843595637607966226442611620785750550327169912773241856559338724540815785890340437804230063453993897474419198987072339506430084959220979106596113575430988030713694655497016994188465750610259875775706631889485013048230084199355851654143264412550446542346571558857493364167421732840681735473737283815974359832010209477285837254923119832907494392883491810834108947503730000991649389363934472357082358972888185275219733895930075836834585818523401598369030725258260661985417291557182487936927662903843484994385451537134674919770446107068234635661699754107015236555103279998078927450538329965863034635713360130352623099954965511365135459181469293924214017443784682467861288489182225913822017182015308274927728323679218099751229700123800473374931823604060439765174198472578755393559777418665022652912763835104868882289384799703614581865366156796631320763346585350759769381224960643014361553987819159208873289217910691006263224422649184641418253673224786081699451085021991253048900164280241195680772048839947829572356032046499343761205673925372002450051039392640994704646026890318781409122943466038906000521951904359062861694653866494719036067449684057074001155392469152719015964163632423649457724835641386617276600781975789058613125710017700424644786803606984340096809276972792557841857346520687677287146609614863227933503452443919392438790173692799287417411303471981129056547581312546829306236586197425261860762631241639625172261783242525021426522407542660886373452218290374703104732100605792782234246317715626907773016471848345826564681268358064599344676602811485171789476959788781309449470737668789742393390669105028590019529151813885684914327730127439158538586507411431898414964755301440631492141464263095246217883483105587333872075498763004629421787031730896064634932224623331996810603065977459032488158846422404220344096628191766529529368802742029393794669369922617285623898070117135006276339646582600628700727001771536250679887103917846133158847126466608328595655549119722233300142452738980828474250391744572262457903772224096543666262476665005337701061195047720313954389333555240441468051637671950465409354141562071336427258719243470205009427600277903157272381700933731621189161630189777124557107004685312288368038058127616972372415026200551203266416792853354842437526698946223020394899535719479474725032905955138148213631810038214702848370596570412380315468152328952672432431441058704927666247340390832568817574050814771098094251241000405275315396311994376769467362307796915852911980107326624789804473998291433366153628116501173362632057848231028224425603824120800654427061066655779958103624058563482682847867620063777785058607479152984844866499793660278919777969206942668650098748723090203077660778729091169659769803693259066251050434983788810690116855379731420259153822937356067420730537860624429519450371909387948218916837497994199704213685529176157300746399737261178170686187725607394684300957178803886710088818854374214258491692956491235955734595492396267876018583861036346398175217884802879981350573234145489077948000860665903930819626496688244205061025867456505103734274081777692879960524094063926271418478464287457223155671128143446491144874169965833737976622921952604618310583422543462322331847275352559595810484623865435854973232445077734437002545895406529711029040700011120148804085285729945882392791111569467457270970108536239529524629557545792319318736685789446225918492096623766737039336721116536605460061711404111950733532551450131161256862039798627088385505002660101468238241856646195625641971520147214740750679334627449714077081525508951426589582628208826138605127768546701653418589290212394004812724682383363284243514754753011856840951262819360548060830356944153199261102084970941397650868746705915371874318969340948430579725459264163018350861281965647027660732301340513916953376039150773414901762978353193977092110480513379122624373104481241091590248520476232929517268458189105990108741055847720558205450706020230187075420599660981590652175572614522248441258789554973840141132758036972426127314398171824631424402376039778783608014038498040697102280007218093048349325925054923116351626026267388335498258902898353066726942480733267868689792411663896707281986649418441739220466341510892934978384125138787392890758209820543203441943119157889948288298873266761806731435566765208595066247200642907533871405251783377802640796543784361381200047908474357305317966877663518221245175479065428391356048781933093585113316807207460365230720628927156170960636252691646157621211540563833776687539292754746259404355857302943488467639068075956786530696525560384888242801714144892750192474174291044701841742934499425454908242144915586732810514254024919843111519314136625699004465570144292453458854620455155566705991938945508390012536031239954368832004228982012864473321164539257261114136331629168633808255429797826078932083601670995454941610108965110377561482646638808931431896140468418754517991731714419991568860534760799769233105302385475091244640052805065255393712321343572994238336974330759382607615974371661474643554147068912180148940735403213984268374147323965562567990388926534502577905824643537795925243524341236598398249613926707026869115675294394370450558183419393533580155024417369298728814928434263393593722950582317641765794044775022290740098021398878018087529828207451034001949505604289460465446952846596359206787246632981572694562417841781221375103676530414430709507277483966058281461937654815866845853361442015352654452295765823350302080997608439441975467063134422286019755174688906277723193349797626458834763180819440338494679519310897486240644091180977869355225920838778119057131044318624995537311835470205276908472764439233648847227300567826208517500761357029663824585591072198572631719923591193924598212225571271091678330455527306747040916025865267006967529918264277765394167020510710099465974007490898773773060679942076263634569280202889728518582891504176964056475149354761883813369675398769779344358092852060741046186846855994429301459989639679611552357575124433650688816847538824818890646631488611023787759021577024890299791821967158604788838399692189045684421131229993782291018917217639566845004218232728765673145025074392630518428355836811647638846630518512364020722901750797583313234020910967295427328058353123161590255828363081068892973407636325271541560493379158727390156256633617460335033195631895515771795521000117205647946112274378744928094137173296957064086364834478980843812708964405377006569120273418670224341136730703782601622413668763112619336227343550604914329531427288853870904455904798142752996779583977280579416146469541787048481818020017240255426504983767235927391009737054505139437589080431100390925071721857004753106032444010552000903371653439877800126415522791494354130226511096985707879895351108459006014695084502748001234769286341545584712109668840015482553334030747327854944375585593219078196392754797442574074062962955768094640333393498733595976959561881138112627580183460665421365404114266405035025669385212403472645025688006330070067652444743137663137639380491116248422863660124690998157619324980720064677009187270341340515944850889703680482185226345519178448720034939255602913140665633878272613381469909170931905670274106355804772251527001932164001916069466414693265767826029915392329400327960031608851101695848263111366209672959900974135650866167597724099249009470185313861611658340207303419175004904396411294314551787060668684426295641883765217529015443500493535184695702137277911348213528148727920944536102677966013163450183070147216293831556160784985638471553464530050403747485449663013068177409531096951760054699626654258938556068962000233703709672967968602861874137610114268364877047363531902490073399117462117212290101673229285968689668098212631330068007668144565317995265003425127316826995972075439688996573477691715755219068424853439906503454130287909322856496204254069299048842813200306675019930338248241849409569976796519565772147636697606971325755974961643173305757875956699058038256809645647451354704532095881184564327991400835573170361753745492120719745887806206784025713256068940808695877452064683998419713571102134475040807086638665588992051722597914901262119974916955190620470219707508402688378144800213166405513995099307222554819838759968056845344965258924477198932473658081434440780487500588488990812273771517886894788425806870575812561505482852251220750101156356714427029076106688933334197364175074815424713008950577957597408228652469952279245998199327717408768648154714468684070144501235575042121012152061342016295754218812698034652795841452367472337944738341535306272944870558483477111278175472910412414342988501098087561116308764242200764464509289812617527544805428054041651618942496374170309545717483493219071896534816469962015760931378571350480046328988279318149805756301611802742561081289212131252595006335855531705400907298522986304103057945421083670385448334567039659860305046270666488160359123413551617309303754229644472722549131310483476301223359468649877557670313767706816423395853950132729461060919317899335152056347320793704254238003504995015142941604871957671385379425657963728570680168039061251538912429018516826807104102828273349458627449097040048891228433236658917364495655672078944602737665602807898322325024005185132682574025055359496399273014898355171338022251873516953469946494355081159166102887195368205220922563986691807381416386330135148440963943876734356064857801046942123566759341000742131421904284619706711284404284554908763971466563091723382633734028510846643004126502133644137928467495056839134888581825211506472310478003442036302226165732348410155090561392351367439653790369078705999868043847984491891586854546975347301364806278398325562148991957751638647665656673007778580427133203750013340013793236674870103135043545485517071819986457075868233569225959813036274537399393762421248171584494154540998762571547483833176250797310353644893382215942560086387551130927332228690480878723014885385007696399948535451841013322374779437071977242767379467700212617921597527170932295319773784566747243029127137185524759651922342614564874443275730645599761984523549443617747635194008021297140539436441009956928942303876545996327792218528017275550528833592453301018720548719488790781893755061259098991372203633331154646451554640401663665609094898616669025677165206374658761944074021462642063598774139230866099374718048826821108057878713255190387203138024491030258279047442307810038304342629886724127699511519436999300597597657482267047141720244324350388616864793197273580181363218832231261252618341319662452721559717201130666581469719201656904138356353815561002539065038073084196197584611251253377963335317688611631663553544289087821165614598326270959104322132991721174038488459693454641881048025705908850006991655469517779178360206501958655323767668932135953895936001335709606378120965277100319421974139503509350097378946996387980073070653580129364290158520381492617440041736225407062314425573419376105946252829573068663290349420804951986444384913608557412371630293191959405083669544792083855144669391585747581973940507171642134782053007117744664095762807539060634518107978647411415439018887757374521765030737869071280574382411674539280735906117781783316729063920303183013480235266470391081075778767171637668789395988622233811806531666169667384889662097265207992898870008795997937266752234122379862628053447991945083926930343871321690130785498645926669433509570677752412481989327430046212629640590141787386450719067215637699612696382376224496591948588323077748291815855080524096035789373235190943451918796534055500652293697713490455525692913993318022975750780962254677076385048309891953657406491533640455592704128681703914917159972986781438283917388006783059258536347278815391556037643140691332144942630152943851919163731045320839736641732950421412003454625409489602489334483275855387678431688938585303279908129668569902690675067740275261208806725299863208499982213925483097193785173492238815969036230521695312646649255381784629915338808600012851453032084469009703555492038870639737083001854819203296091400387262634193507039378161569017261330561974298485911870238662161453341564115382222932179119586116813125176035343347440367517989726258054022058756944579440362348349325317297125461975928243809034352226391831752416708575882288328964456674585600889520021301845124439105009056753208680133869167976488964546991504175441517973238355290981205947168791888133013011316150499785029395672600317800540507257933193215853046536297914301820212409310669003577847441873588636896418950605509890380410211484375757492111294126027014076976253726465034899623892427760488674550806083516133531674479925995905354437449289892849956658217218890287520502423781076959049828479568289354635289141137354563838311603083879394128247727117180206128118193177627653188718817452150147248499001336999511844454253626092630489935537328997110497760191581996298946910985366332478530945763938459727613399093220679952163459652501588702059325977044069118137987172405394855511549533133172608142105791508191433129860376677014291825989258905555480554197229425704168166162771735205930185542896641409888990012097088693114498227353106167647734446686017847711734820051493931253560544888629837882172706627373380961951984322447301329898640649426712173876074984558186033258981765990758447240396009322954726150452505103238533585326480290030651458908950954253417654431767585836974667068315311232499403467710075290918705402989861950028836747747923599897822727748426099664673999030874611900089376757414849485217754197618071734011630679178845030433965350323879439655378133104720367781822778254684214861585541032869819637976566988672819337952762074299181923160387607349631042534764495330510495586475334852301503181551359797916518344587429782161722950144389243525561354709237383866745820699068969113589052328128940091572491963255534931687794871021172048999390653910207997736189296039187661836506573996769775638710339091858820197231301538276718437738179277644708816928971036080631612435772687204217981424164599399371884211064669461133057725163209676296755875465057321590998702766797814749816819048684792255991410017271832160368754955948452967200262765258904301427702791531883378375022935342640734320176528192184471241013961485102886781334778924259393332526679834647784982727321306062555679521036773348648863599637950397399729420917293786434393120732573034904273438391211211472565082673541650570305151061185299893873751432809720724433496502425144009818252033401681851725951387363719740280772473954111919266701608034353450620915932523716004425248764365084633211668408176162092157992799232051428555327017738953429032418821795048692778996551731637707136706514865762866188920031141484992047426101284621811049966135291254836095248791502880011480676318541099491587923347190977187684444283764715298931619439555106234671812666418629287530718062653267284469304721278632889707233521733419318032364553058432822597104904513947496351813104891028976751805676104554641281718782895511253527989966269232292121874247361691483663864480797799377382057109319088250406554942840821089053888243462419896644558321672263364492070523234291004134031770905153150225445807549270765040688799802077028202442857014587860553043068669147544663032374786719781744129576425170088844122100840336274701337392861605054647136774312666143889331941424632713681001720522733848359353169569394959289446483663149630819351695786727627639628360918869149133459388258100528876629583776076140792572128554762102571776740839784688993926243314216485308171981421452817367579599783128716535518685649807640800739162097941311816012224315531149688143362506584328456755503028970712263260501454318686826887497344527331308281809306315553502691410891343603297098158603234854092934245343745281029578236565567059708216617279620733359119604061579010623082750961149753247584513609004406494917746713734339729489321736338869775305875157375249683355122279437629569960295875974172571822704645144828354111130863694255487974205758421669268534998913860749186622339934003617275681458179223273084268851050123019643416585148636051084404465074500439979752318552369202156726570203650156153504247262696209446340936084899028255783012645830590618542753732087025400510894351950170893960936459374359520612916595651836999937162192995960943411050078272189375830033735534529617664030698117002745515187001167551091624663027359948359431310720399960611836278454003117719020558520049361713692359306012440099226769757466332048947796641834383858440881220680360077987409482653612375796708850743863658508838509608558722419312406370991999607149932443273575944813266371434905537528821251415023402451392836978558404590555791287643424545947840384095010811377667335252067060614106141184520407013840702131901721458961978956468623363713051193518303555936724990751696869566270224031900697237544604724699689074356648530004240277556154536212162676031560932497953195050722139500061266823281420510401691979495457659117167146017237657547047902150112284399269125310774444047148667819417635712117415998489222739081099050045827495072315179969685560857213491216693111221541993901956394581179279474185040144051536096998163935563308793426190172036254743742628971984396269035720867687099916102433942342081317056881214788892228947143601833192006858421268583934125246323432149594619665842178717157973156981960876364023715389030259051866569078934393167231322703724147071892499131587104331488026768681467016093244030220731977382598045494352924566377335286681213164717221526611724932679699491911292997457773218453803197821286280953302917525250914271991786225407539091400713067743391121233085665409086908890747354301036877309184247950583463057012992453053073468052619747400432738345912855898686671101611745917380023429568875892354989659296226103833152120496974826394013562586083766041446382543504108865900336210803889435438273855202830907365169611134601609030159806902536265482246920092057691057222517129934783626312906000984362851493953975610513721540740939006645002208915151053683325981286675368138212248029562285139636147023543486084978285086091461845492253382991239811155448806908285114424559919605611896938895000152451312113656275679697637145834591260385902187906753412038511566983272549313000371849340626524591797279149297969510694297998513634223678062479597238285371298256479584641854477739559907565135325514614054355893919372778683309703738450434416704550091504483237569690389714528644375685580623793624340098555758803109822371290984591501543297787052864397457225012104939762284110447547583256938131639202118540446140533200548250136763256011480290191219759854923970445430538492583275838199375934672334265056584599251996774883786170178307222798772427737400682795330640585516960146889229131991900637584879872048914907597690045859820533429919705662567104363097864632390336068475970704387592328463000260707888687894851899122693050298042699251347372578567387053516718386459957306173800948741153121249823797527379827936616395552618590492723997678124553091867121136953896325282898040495154642931488229107750831888493093947161327180749174966095292106002084573473877893464132602616812287529126902053095423738645864378968346364291601106324190292076656220661811411978988519751893915269702005933854062773687281882663459260101568170611110306115221018269436737568408132212397333129679892527587154972327805900651382036996137466972078358756163186937058740167093349534910475979055287183303572605612996035234088709588054763184243168613600522809536115638558597187295818672905716559713573789253654014559003419069073954526169457008940741275362859829911262527985390052328708870199903078159109503848164240328045622562506217514803496023958800913270316577109265910099450678527850973976506872768256450514097098723246070041139134535158294678468615331658516801581330955738019042866484585734145995234426639388561589606058726681781054799275445620021986511301255098772936383629015714916280989538980016997437906180697881410154130488497512049101715031000303822105012715241345834394368652484631900387899370421194715588318279231862912415630257065099211501953604054716516396202402369126847512339893845863694482420302294307298896884393064023867109117306305635253248405726901295844425318988160203224107984744352632872574696767611692255585559295876819269836829935793137311718840991327806317279855968252974878909213264017576984542432085267455288925725844589300007393558564393700371930611310911393411393004546637117103937675789670947228732913836980093187350084218660835524114689853165297359026288153976357662085947810308657487545553577252563553315745068971012360871671817786075516139399763410008790320492885008599199563341759639452257797976586952492764980365255298412123091140981486759885175160653818970931305725357385793672935424736229348815228824776729464856707277617001866567076845571676435285394728023239668139458019864590001864321431630736014975943155279528150931089433228351708947843671323612023340234538419691484263292389408440329710833326910201307345728532411663383696874597395834944303572288742633719076693288316982723437783234844134656564817517650854892904775873339269252435624693421126279280892225585084176122235323820150539136299603337349372740757182493169491609749850597762994508933899992591465461430850552859818059828723195903579086669533665841693066414184049663924599574280418912203367569454592761904065277600924004285094763854026169248056540828522249225965788777944054496269441956992569575395873506910277414699707357549902063705157120880702750015427808697742962193161505444740813880798291807689623219798810615922155765868064164133596698338730885111949741517500543250706924701012323406996947220318967656580780900000942293571304735597215134906325486109289943739783286268034645915746929740543392267503915697011014767112597626354649431132022863891040040350619689283243278890591449401326063475454287093167131901985942172703867177503273293233461090107503693793202737859100530650968499727069259290893278062267786339614591592169682004132879188506638356551103348792781865028845288482372929774359071987606317610023849944646559164140695900820238783689881419427079618765913500935594296466958958882861810342824560793130074942641195086799006704900472590381742784271987004263584522863405352673888796097239369848907134621321671019441430591251211105079889022339336290494363377746312814413132786931312478805963703339848474400948745146038656131811265200675132151066706548627768670588503972747213697170524692768943696833897269176811451148875326826237629653731447220077868762634004621717491335311116390349713431070669684786155764757213820998718244272576443847490411459898937291834356483353475893818519554589616913076055308587669342618703353104344698364544227801533923033582631953285953934609595779912406227844565654336166053702940650651648293786451076477366216252508565522599370568978529724972470035250619766314897444605553601674647899504139810031972387569775103037623890823360334915593394178776293071579936934704977826125033293826092514443479701363098194131883971371093927090016334354230383000351916615276806999449821405266798137727422658865041276724244589079131002170316024519966970932551773004067126375181080389220013242984427431054510240333531998436703359975840385526837740208448554925894441964264163939181122823591145896247518888663514103022535522747139141464829948653557844240864463291277861800460261388571438830550633643695827122499979361393603743054333785156477619506082599021070311750647988673738773893813643323490881367423122102997756138794592807737854434113371558347374622093675621025576472919471799900725725947208169659047509548924634316349698731351173083545339698001995415891645109798007578046761737664110048077008060542151699741210350239918857514240786847268585911758868680390463309400303799897854216522331613565140604369809149993742651399429506951586652411043877673564931825677699702282885641777919820585074415829022658222905420975620276015990203103703138702881903069341853919507172913844893033530339623212795914917948512353362459154849247421372796715104785227889240112550514050087125904157744530201323667774209420095654418027634453736262783540381910447312255429217313988830241052548240424098448642237861941308605870100599585989764590372168111303777128528252538411367415164985087516506369799066273892170145188991199218472800419962862059285708604085661447388684083264055674470853237260177778425440578020370058506858209087703510800862503938333755120913263721854091278183840009388603683168383787331108799552858316624632197368463876360587156112714087441010080938384932101831741818037204942809693356559293094416074324487262315435406894667574349688064991065164408365522081378783498423376889154693956245139628539629799593879083124498996613982843763351466822952699689749156690330834854659929579603954922004091130004969521362659390648869789032918897261881299871435039643704162800138626531920447543878165167790624698306210697605508895118672878354676126610150163497620902278786130210638426200315682469722197057994352725181498808995704446264934781619809681748517680271296823299060517148815484328149926103056422176740839658255693891082206759889779889446021659345186056533651149101925554703750629591722615947270088783603518757043476897660889494292929006014508654088111279874068186233229186671652256170385489565224793485825610244819475551560519852537339611050009811951507691326496162060475028388223094861945072981153031563493782085951700554720860507768879039792175532454184742112954642855223230466364722105781139886631147543254216236299234349548096544943422780004631496284389131839222641472328728526502718601737606857388997409881372483093099632219019150151710152877951856680505788496318801685160394102883484607127813401189166452299247242304077864278918902964702834088582228364468745833617857913511425460354050312521513790089369288669538773108123641821356572501451297573132710538177371909282217305684490585113269465694339745909447043217935362384790339696100637080920056938405531677991481198419764978710665527544216189371738528269484612682663795079323625377646833402162851670191516883279258210209945738940059589318766042695225007221950101131172664278234616602059258306535524681906158187575350952876829743940332990060525870676185630900927740002187654911450627667006407956466089654136931640287472643723024999931712427046390708819480769738568598712041648853157639777228438068572062611801894775360147091805849553063061759687553167853351841052472770093671474458958947744183127876837603629697178201507890210280832121889657816720578825904852779609103865674504584578148366676002732995762443660545429282901448784209114393223086520689384532882812290223105181592296031464979738692774096317850355540284785891901672215077936892143189745566829633148045750209645245219998405881725464121192434374260572804630901084119689457277891998658070035660254916696255929422250499967234626575082877275210764940613357328232274344152287960926691535076756117758407670562158259456678997805998334493598233961610100521720313398745076882665462041217664175554242398349751503501844523291091051954787568695072603394433495144189285602835596906137193402802275967825560654145535454805776882747642543826578311124234757798912033458360961246306636204848877011270718960355830734521754737765986960140548215354447890631418777721336742016326712159470406821675842387338040796120678271119133452003022387410174293920778645802960216553269692897844426309484804555860989819963652583786412767069518159935182160821466811129951123828467118763548814392017964630567267404853411138992115778397164076867610136427967538585081826217488283042940391549047729664699338702686573336155744989685419110664773304312363996880551235061365895816279043851223911204915980770750772364632867582573894884706011131543439170458453255641879843427502277969172277667706657768099029040476426657229297044380962543503766311191840634919049778737542409723997493506022003260660363502031126181617979053069242551942984339766818564486017073266583062492491849309666012943400087378415195194208567196276981247439945145619076450235967667315322790887612272716472767200558564086970103725030532325131657940382682945410719527535253536656238761206127604948414531304558468458909394627300944130039412942444887575274202973279712850127319737535022730304654706968893273445272116116719910441844095051062468416650467744314003425540271737815886500014674464708773943990360501473925554975974569411912085840730894987920500459987174830015924034350706997527652549978359665224279550956380903778737653234986976304694275241270754822125477597143410840697392720658718964283599600763224897052960952092042745312355530803311144686588260798606713981083553886504565781015327659707009253514389955230389810098014046692387921871810967856987078878614974716088616521872986713577313668615905883054258589504950692990597862018398234714934044890498961414599136912919669295794260368119045725847418213228739400468166959174006398528320885804116034179019702092556969923269688411547531821051195631769102700246549639183453569485380687550770510430405365807715757861664037110321720526323599186829417347731745380357133640968463837824511874911357195852066069990867501452105347355434624089499869945585917581153623432679135388618407391890844735814371390861382593615699309546646480644607705749821621643769385381539586023525753853314668483008808283062299913805022618736171525429194041176726834587609435697606423333774367953819145459921141631412925997659090885754948720894590764670166256123790699888261314607825309931383188385810884906123610294858163181346505135989684314881743944380389030970446719947587789330727012364538388169489252800380350631110280512957926857840785580188305440174809721959490917546662160153673507533724542886434990673142032069404347343518248054587926654084099344177811651043665456947373177715232904642446398365175853478220628940887863890580812585154382656052593147321212252725903439835807340664740949765119360331025272698992253136923406848832246371614337759677922089482079635672324125265949942210445928112227718006369211290601661259056063687260865460027268354748270221224929598802327265607319894031227116445535058394652450440609993959661648055719128460409476975658386372273161458454139036116205159519816264203167406211026560389093367666615217346000641688933540496355690178553163179180786412905695836330624357189018080417301710643991976292907867923001899558820293545924900378035693577645507472693070639829880575265354786893810696132981716615529147305390707898744881966945287591394870090178439640681747486065282446823509598414138311174143310784131388110439903800625389000957367372697889021528110123581870364079296119045563922569171452824649614897346821441457778960568750768564177828158223542855262616178923893711801385953714247240661836300302155776853301574427184456923622293055766500221981609609065442681766106364609175212406377132566857047764871012393836852152124209104796419204068531555245328483208081424490195478879730430654214304174986567953756132474909350941884061265440900869147440264851611600929148787834502282510552959741144698676590210709112658109000624241388068576586360668039547788531500087173053969219547213844795530828934686600090479889444171454106777809606914878252168408608079916696007288683840011926015200070604590317306177659245282726901741109646852946557239021519045712775144785644922832148062562918215597886148266873612780960921412501221193312753793666738267198401504203776977754888831789666132791209128648782493861732604086880422092539869679430460800164952972646797401236632043090762151598202125577482371842807394050236752134659197477277466601398648401947796631476559286795998274211568130281655840442525253421780599440073839460273946013978565608064646597595284174261694144759865833017278261319980973511059374807566456505611403938893393877704476134973675991348914477596689170327990024989318382784513476823114939907523279697933732080415015513946751609856150634196163652913892362438013690590430369161803641303929752892806680470309490242372665021942287520431639254834318859701155098264266474976892585558895286446373957104300248998561222943308536220261036014208092963554435370236827134264682933930116382606585946821159864967294254216455758086499369555658499393937767453014440532202538506608695757443719434490145431297601507035797614999774545222476050333556871824664801578855827826004254776134304293289495602988347819602586737520669462003045777384052183717368509140320332826350219806780479753898796844099794573716225765012631824305246827955283392570087286611655534252403140578517187424919756852840409262510963087539407439260359174331094885119275270072878583526550943058965244076582354242260080623062803526077954269936232248397345673041549262815965669380466648481068697490620036409493249785494784786368470657024082212119323003928405772098209909513339762075607894142196808034275984294189740808301162595035537906879176076377194240892652919386646430499096004562061143663887683618944109317724869962569845347789416031244667334898428751480262121783767648222873493207347651558812252578057568156027567583850193569043848361343861599966861563998326540756591488064255455146885162730276575591156392678104429128613538482844286499741102464588931222237291730400016490599858847017813417735644708311508396340189444931126071117507295940371944330803962902464891238495066331625438092323901055392964485368885257942818304406005506895718856523587509997134932366911022954493494607026885087925739157671499671752111398275076749569953538076742521164454380795896259459931554654261775531310821924715725016034850181871942398095753539050501826445780623683421244333576417952604137740674387323869968174544327652787095880548848409982249465775233008162104407614884388046018754505514029988539330349974068743233476573381352454835067387424288060721762685104956185318832265432254704929146851492355726864876163261180279074229259390164088343846631159053066451482399256961378609467839203758399852804293808708068730231067372717402351224940970393362198775077941848416652378342832884874166727125007025971774640025683343877389058586343492503916882547081106238218877569102719528483818033407159963917408636935770452218559521823689254644425059308986823383394939777099210306214249272729208216819530159533403061508510582566730743816372263818937005782633460167838532546820109418485873376324171422245764486911379685761557002254221216607569838121440026860908764572155544949447217099819550556683667860990871767104742145530564603652969003906867235460376105250654225482371675065664533533452542217777808391660531675183254005926994540243264028260588879021471812938604293006481736183670914959358458110616170000008528787731367000964893727132416504865448858844239177568777008694979978919035797246429077929469350670610619685805060379033585172367207540206764202757371658622916132339650354849771285210243935675191394693635661900612793548022025383725985645757577046991050349487960196168873100396825039417638872716550376798084298318598269519285975219016270185387498675459195319896580381948867858778616733625662926294832006526298327810542797080794302599310675782783163872056049519913511971870817895997574206415583292168643227482497379641104769239700421885660727140792523232234443201990285578006950379815599141962635289570051624355624885508082489397938626992676911759619931513182808180265171808976453647360732317851228379430392378584045845209400774350664789577251754107132050980081665274055025573270926781227881771259379869584857309940921828297321843982189400069523969050072912149078866892624135378885196192837012672108239058915274838078115850620552957323741804014402773364981604639951532050695951376606953772963815945767984880181991342184082016001957830877481731642628345602641331591694786343288426994926821777621959797059211700817034044429259974431798093238517319933704627499947756850359611919084182291032517158457273658893201895795998557497103869560637114628442005330506066652887502259908109683695870970188923811926126607524822817521006523505447911582872108607879134946838623171607558887843267256510638849166355271788565923819564483904670728641899966699793054596520063852063535623475174294053152988833246657110316018649281217472645806951815726854307832740633603551373992716988303887358835539654026615120581741662679769845394142917017227920274615542070744510029539823300072773951824482363719376557775729427434034175813730387338016242481895566605190719460244006913122151269143287126677063658354731710444531024274662429266175580049940304717428430299912152295197975606177376441101271931062540329089218462922855492506653731568217703320820245410526013368381858328523606709873023179583923912067734823509473847258005834544857894194480943290011646468779393942434485220620812756339263691734512922410376591583247133977463878397992044733182607704203768401126916188593954934585799306094570733019117982784934408438910755260858933817145832932280810833427362774855376980440813155452906175325939042910891240686690558597185509347187884297622659675962678031073304264132282725983248403623916673963817700380709952897689805969370914832990328356361846193023562915465017037626410197495288508626278624397776908162355664557999531247857692284987949437905047519730582737076907406270787811738282255567690710969703439250582022472905028454702531725619009319309466877186836884450458630634729196529277560847320500980621648349338288766262085319119612347188907191516736091138785554156028824221293224364012219349102862052032546627665285184553818775916895298616541776040553103934253522707408671584799266983209235459014766711662653092671848975328392878806577634762746296488302693701226603551870094725407188574909914484129260685355539251738271748746127057965289293022701342530087610662781082806452819624170633118362301229553020164143681555907338528973814134090943395408734306469420505439967511492449911784299125131259295901016587209661481416125513692851386860504935024210034343325383192099091590156293486719089244106796687310481154232787400671806626954623614867325557668689674347167057306729386453003961614162384942837103035090223064974295852631109206231534136996008747636647117612996439550381275573795962314539296104461949396468180164854842936102751024981169260479811339747359390197736343729007025892128186319362881877926269643027670405553676801954018324377785810526313474274256888244261064051886340504127536636899371923647436354023688127420294855245447848197792098395661048262338611474125278030670112918249442516590383352886631402603418089393018951325479132721562431449121402178298911355154033195982040042415904605044488971747929338444676214223912355195179277286562551965802756821639036007201828263042416863597050204204713224078625254397759552881015834854488765749314513277451590149170064448722829278059220618266300311679235802295643215581568257216919680141368970855895807084831503297886082564852203694011783554638890171710520010914763477074738652690450879783141598116196254485996663998292771654432342028595336145349840920007065893844672329079544006515610155350561978481874738492503244602312554702825520760718997381705742766323134307507099558194782319741053586402370295794340698709675308051993814991835312301456327721091236229230896429155603066525138087054045318080319935643229000273803397201172992381169391833140791664551113014908306655600420316509976667344625135490089945927701897271747289327366907064901420364056609893392005449678496402587458905290299934520467670042666883795246275594757045677118647288166809616877942275008322647729621450858998352156865149894181147431485491407693627490243188876140432716685695648105167308753265986474677757704342042274580763016643185549372352641776130920760629776580554396804397357722091663566221384199982340092113457900611773960929561922353089958446297775981258809226076411550312402183875017663089203699487058332881971122629551084841990253337827814524688349752789133330960749255328036644256379969080961672451936320589575458167585180150243970788892474715459930292682760558295346363829640401883946690122992268204022704713470693370827280512545613609626818620385913605877842680978081085664539347617961620253222702563421436485553021386800097061684695165751998183909131472818723746094782449558837220117372648778033571614361576559806126660825214584553524980268695739791969066663850281976519310475159027802868157783103402967033789345018931132480461588278375078264670275542471649962543014040273673751193557275828044493457295480447554356316274513228121636353601017829363583880095397127645048298378276683807818282184599188273314905870860559405269996713991383476208246520636417486304163492832186910256809601836610820171034575886174495832874497377070007253527357825506729035228922205460336034889654794111671640848096044882303541509065319228973462944923954349197255835849836719551759658683540871112459462180516342467152972773698985738641052021304063826583951558907616159464437268381298093263924855252953864934663265967718893797048607011658953319653910807924334631980121751458889056235003548064262596925424412728724603943671528129147091432462856742106915235158032425778163858280891899538752714382305223879761233766269826712351802824410618940857646638424835444802340803493924483087774560024337355661772430425411089730637536553130723912988852800145409233140678458774734515596249952178083931859385408004860090507306477361699796227657253076179964495347378032386187885824824596135820024097979319352985463263062107798439511645982193896247878111120294532857835650096703993796111180009251557728141790072851266798201792517773359527905480420129172506367541092773628678945132171765422004677695849954958633763378596046122757923285335252240467417570013767456598742474954492725989866992563490049802249025978850429183254943108132493255763942926587004287103069210789632949447746071560953335903411483832333597705077629394798648904346796580321544389300864803150258046858462977444019140488378889720433252705745155738989998703074192554733364759401654864290804431782394943405677821286814899825819216274121445935871184687453013075255951193795789995132883315790727093968175094501274285694106728529079859160238853825947546773751038325798013634364905223620619347944475861208518337217103847814157585605998453616214214488431486930294276965021257019413471963147257124591007391128821782915128904247578002681367888597063850177668358958365484924014657621739255635779113149227899510389466111289458823255498408937107299247643543290159988504761023546935076469417090515439717756405375423390768864730504496162151816950927861851556309283086762287231784797970657693418817901861720772512123812356418868329603567964304036805173610406646708112004766328728860390422753082628049436699753184620291211611802693804532616678979578408080840789743687834625648658604313613911472583184502891905947758680809693626092438433366113004843384088051336278702699621576936216915160948849022518808740211835208027945244888101402241388538771373038625021873109606269095261735513135204622110159985693558608008496470172845603213803425110538087515586885370138615436376228624078467895043548228047747493912806926560142994620655374121626856820355980606510959908367906280563586603005536439015719509372506991445210756936870267423352411147355330929302962741964993003808326566509958061905430890707900861735999571547984588155313963408555586218364580061026572304414759555670452980854189245143671748120389356547645131540143406154098860929834223534132840389421603137129343753982692439344777807598296466088136295786862958077124910455308685664538025546088542322246979018584195445163059773715894845051901629815976085687764397626107719019023639842513702820079769900172512976106848517052122302326890584818511109231753302138808725855588136739253898254746509092392776154147024457235825125055720934187161530295931300962287708702293356603601215856406760937783302679760575587049117226130984395533097006843891865905775572003668078003523759073067306663631556009368752748361797317087773724624509516571804702554295709139833596986790137342827972025158768969278244303105049907470057820871540214011712091259719766527059364505372865591499476425324416510039324644563576699343804354313961130560997873830462468719998483848259675003123849262955088624184085961033189661720388645111587949779482955854116454875562995258316172527178651397004289827193105680857140466846887724935518864662223539701295031472890536312220366041713022781082534306048406411311449336743179644918578501132349081468407489425940286628263655784879886056501441753912891381611841383219892775342747647860436719322009215151555117781256069372869355696261347156336800364486920429033877057735232099063627537652516771784866764058935258551556406589949295907059964604712045710826764252798744024509444276342245037494823572991268044310880839942543234902352333521056896285110775215074172943197409500765142314499007796626613241477896291338166017414153836808982413957883506175568127716905224548867229355994579355662847074635221223540075231509252281675862607205835394749298672868432491463221025044961971067339736805201034421905876517361604741701380685173384518129558832733968222868373573765315489799316980792221966978660720667241256906887067451792793663157828348176578738558498766753522848072956830250385815792014969093898475826750032020662918153973666225432003574002731792941143672288043651949065813287808217861758552177453349560344761821398763595819387725274306256497500375242030904822467756482261349484844327531837300969009689504757045463313535516939865939870740460901487871442751384364976151120060356373622994471026450450142166659007805928245797963722819268510380550930229922313692092654136019441301239026091589671815989860281560452624832339265620362386951253415567882644223524781461135342086088720776874275872602218963461113730925873482348168189304942997410750039009146516979871829982903209124645314840260474781553261074062839429728998879644869366236859971546953148733344552181154982171300135592214881033545839546491738680685125418733762662619495059902476127365851749365784875325033597374986577357093576188227829503016114083637871432139009075237581790100579057756570050126078747177426484802956763285896388695773097272486124806440901009011589044868062867213764227314308622449910332320986572564226493567410922324253419520579777685037294542553784545787040833155176583455516489098339736498236685565833091012499839835674610010719428136607976377597278288766195927269755667382615021710994854557197015670531785130175029976198566522182549044413671133113912850333777068972337334983017560453152264339051318015954007986048698490052827873977848408411180457738071501497518756735075382083849583942124383315407304628452176900470509040933802839818212371264762220836977583214722884671554550163077484706164246287620933523320032429204582949060314386014847946380195294130358026580461782965960585444101613553400924323890883706268357955979226610894048825889836634643460609110702929928818269376852824200203871516956401468731916483399700343601451735629144663955555821799779205050652715706671273607842544020480724435758814986250281466515041991022063505825510981976121889389485211871871552712190039257133976288658533000080495277015151729515849372679261700269413385149907707267603948735494905955371086978950171077942002683175908788683047706138047939131843811725619635288723414471153634809245343029790046064101533519272111282152213986170383971756265390225888396592357837203657131287612672901515558832261789780941722009216376026436611135416933968958258230796656021174474130506704106496927763668759795568623922254663256546191387987773498333557693675327606269505837107515020938134785783250683276306010146393142584824641895141780395506847989592408549469383715441064685394153376257631627229381298398150884249540207529702555444708813079660335542086187863978270068027250495990390925837139529464139605627252649493247592550945181857910633539721057969246053071244157259403133287505622631199086602346963575692489879322385851464421196051206403654774569534073394907898576087604482890912669048996397742906658469065819322754926968026781411015520478822218807686294087592368816842337866122998708200637175578899710303235256210414654692236009057180774055278361846442914742255971643504008079124436113770241510461263576826301920622763702094335371018687666855680130157837762938628123286068072074838399424298699296157725669238405611829651097875630403765518324354415639917259456422057180443926197205149768222215332774415954009575317747962057512961757979106767407911708781985920072121360941989008116293943581777090081374950015208048325318578084156188575136377845831340955172908226010407124419504195698884870298308317770038908484946513163794780714222223588327874584510368888456707939448486483726693485082545026331680836842621349207809799378564571738832151294361014040757886165430350546992660424187431638246478207532800659404861184432559838788346366051184022728197820780110915000787555940002869206591495076105711683748081805084950791884763284611268400497324471973162136355579064131694229152243934636557791782781442289417910247400738510736137364650091050872028902503032648257525156097499437315959393534255137074124288234118299224411357510928658679641703396924749243761408179173705816584784135414910184648422745305367514500441815977196873483510685005266127230401660789661371643975632659173158224086065673440967743477205804132000730350248065613511753038529383559504601759114677507182228156202843013110126249733769513427209918215141981667478221726791299128097147720525841936061178525736637687780950885165648879925492895830637353717587763426835707099685154121676468612181765418421570050160731772015239948971390130461247747286353150036411384204509473256213054732946616210781825381198539783805837318099395491507207523451389947326675528829867268072213204038945111708308656297202051697079776082513676777576388548099043514138059027954415523227489987614874757319829143299365877113780226634221625801105704208727642517949204197563714678813987286927774158740923981914370817785186375442595687339536849925413060178294795899448935765446488143639428337166885522312724821841832861903445473592187300828229036022742515694387115048011860012457101803932438016465890502557064621891970281737166722474695198286288837200238891641725850802119873212921231724160702676193758655587997020274928485504341500266920408910592500558121218370925741474808362044941816999105830237833023894159874709235247588721840708351283455903428164147357188662439094757952238770069508551290176688447970153127777233721645202243732877275414186583416616003571822225486485680065525311712370433477586784011631923453864517056629732732097149056072382812852399174059539032985911561180650990954526063487806678180420816604351588837723287635407820306736639006781588935525305345020424218393370530849652968185806903656641067947897517770245978749995167676628874777186820967626513046353048210055869538385378778230420786099086229718857071843768024381127761503367520455120173259287850262622166167296263924907949329773783039593845928757797954738629197318752785780465444956955416954880766085707242446657472980078489636358408665437522128564548602931292307646997549893134306495918605544406137655109776032737586947692165458696174918327377777553436208889673624422715509853829352349632914218076550301295363565371827449464226981687716260062112279513786256116580881945123051680976253454185528379422020557886810344213780340639740243823847570822115747860528842761424831240233848338580931779855527546017255991462091230993834268600577451430925693987079115687941857424659833645999517599167599576096102532632245347077044096627445449273361858634005657526947137917971997706822396684876470432270732029583992154862398113546535267353737799351661678823634283291625476479796609137605751869275829950659890151714735701092248299318653857724803708211842380004750499350268649966463122207354943844928718168357914175843588385739102856680494089367114248031636995407612367550712904399463013895646600822838192676943156612410868672916307260006011157912216601525733568290040592895706291045027649670360424044486780123270824566982378908689203355691295003359932411056740582933896898076067932776596222626677771410871287124988371297870816599171061619051757717791867612636440995291124293839194150067837640988351760574475999145148791312108159034377425468849027816946248424444315790183881460048882426761888498821936519567813250960354709362473603979270666046119282967049585135054677399778483976551211261235066519552675113096921575007673833575261379449209271223483122297556362214144665390797108870657532095421550095758023901910764981105879427612785242768741785010167762121398007964332073948812802460184462970829624555612854344222406585300351278280864626679637158396916866194280303254925765460230558201480123164948698727487983258398746423463238617945470651988138742227873533428527584391436581090089448053557233915557628213364969079042649831786592059890666875780463962106852202853258576364777422446697964975495074136298294955555854767240166095945916497069925097689920159798367805994876672627089853173325410095828284048789619216291894985450697132454954160677047903902701062228652657921694104603475204835884423689047001936070493368507114294984048259765980663724145660630360377010532664574857749035596757114948399974868209257345959809479658555194894475481789086232832555135717150028625611504782768467863545745483945450895875733130637610612750513564951723817354177252518407202817562504547881668136695914229333161963303024986418016719143261539408421217862157365888555149289576184280026718087384308749426834815508146832987514970511779806016837220574579516183412600068560443284619082344405891528936059386792834871019127176186127024523654764154527733780660413566704514642013793937170148378126319270817032496937272656504790039468644525274667397562541626919797067293795435452633499967688179455182033249685777328341233162914447376439668481111250592483855161957104821692464563158417121819154657645841960863468489644325153097051534913164533015953596612450929697844456365163469183818614414893471090852632199747874853343977743713632505330459270036123633015184241533302059003677345573198636164984780148785562173673993261547055084348712348337352908325103051721143753754364927763829935162954745248782157584510788149629027040376203319949990408276276770249462078011567194897217385605085002044608108731417840642572441834585621731241393929257770553911363274435754626087523807997600990380802209952621451883843464740385043877118601253080460229503189317143527198644264043071479408457742795752479395878866895797388754878373987940888367627216851076944059572344539998996689623016354402464373182510301277371756353768381103728226807833563774073520836234769805586156375375647296759504724277572764508229620847236088819139318066992201384695097816759400470426666218519941585126142137468460034753490853548723442740326198825780824887340610327648965744836498955457492914886350720807553269373391605322301620788921592582355256218968989868849264451313887952859696362623686816560350047986107456987350844788501780849232974425649804747973939581686324397575004260867333633562119444700640239391290204481982799543309496945088050010365484203730191153400256080108416965661873177099898333101337959442837034377574163080588198756753658002243521074256610621330844360953615511475698678318253892805562479888621282989527294575573698054356440905420529791592857127299453718429370793181300320949959819606698328683671282422427721243175418899632020041144051490525157143381715775547284162604548300184036122379812980134068807097340775383057994114926232557940514839458164691354342440957455229572979957686429420114745917555208780438973855782772576680824632264338747394388958708945740010916965802608250019765031148064790587651905879002629187484995740512130871328145913715887091496254570568198211310030170270556226791062453900694776724689931926232036410794136859410224216059445624718763033915863669385280183463462153578147523738335903140137332042240172285185747639117107523994700795063853624877101140342945537704707739862656625760637813893388909421870671060723620691951273161733716111281793364283540414595690808840254302528114716020671247474283726615851798922823025646692325684424962011112644676666443637703381531657803689695590958986019023053151383420424923894901138909639716122793097447164795239644610099123050577650176357108263486410909509434340992130538202133375205842201827369639499858002789724166901275843718854498849910933338266753680653243680309463648509569836025496559765838438807271999661522897494660036394912426732636075834961191234392680385436976655397510125998068294691708764207080114906440712491948186373672883063656871720512268776165719964880257044414566975155567697021546351919521228507008937184683541447206943449932606532085125385107670972318638009955227664610855879877051251025864926828271445379463690120698787855746649116134003764260322059983881451881384204726395109386795284301563331999913573892155776674340821466220588860448638814572807439871819759044740656352029768050071423946995619908350094562532317684949144406512137145772717054521767122562121972810220533117904753625523067464818473540970071943889427504848393200488672443459015782074758169889826329811573412616012898228640472695069336952988331408192099178438789708945200962927075784696554519435183794670234299136815217537824173193155416293858001689706116682361050318358927052654966840065057162556584970772859093235442049756409518668194674692038657084644454292388436792920346248650526942653648031201086634237765052605089799924506865849071406048386068557740319228593998975189958540332684558234854488242084928859263245303074732680007850858111484626058343841106033614772576209453245207457373208923881357029071967612366089587165729926639446386566620171373610207056392740444621436786554002237761071178267965690620715189560857660101295792082157372764568834762580312732451847108079980576636001893315094495010932881359482116888281341237891829286961824714294969935461821526358347593314286900967309544167996314494210769184152483956484309243902203297428940689389619195328762394827423702930647223720532093679552200114764071718891150522242480274730529373385310407637782798626665701230534959277451437019859417001917521556727509128261270398507976616352023102160202947895974426270181406699343389006399516596445132017566367308773962446793759156558893287208330339554056472562372103343757913756524810042803712943129020956709991941937807856687072426074823615451055648572203283026428622468962979344013734033120657381074182801952602842457737383138364323059484765744559359065505223528295223996153305606698136622757256027509116769845475085950588381949573174085236757002143909797636979357515580042061614059468095677736748974983374241058985144954425843328776338276288299149431386901764055789996181546260946966074145058971698118709925471148735453938671777008905994561099035542948801727141517924379369840762836218337592134090892208047008710242306088628034271402496723861468715673158463635251555361736056392053364276900108206968928183470379087343696695115796503099453538852006788177811747804224236779105655888853337451468648849430149945356831933231507402123511777242694019206329166123061439713785056012969215140951309179306436511700142913162673557852129840789614845682863069111533095589587190465038591590579685764952572285313066643858189914187294801249868152817350757936947287675643304928667750780410195126839086593962149287585662886376541787017986234079246838075486908742514429343809456490284013253993389102960137391961776307654717493158998636852613121097279081345054494957193614368090800676592220503189163695523859436100536496659079230095848775131686726813572483399991126048347077132741427676776278918555318820962222489679154416155977012821086745981763806813984869610053212316352334218678359521820012936316754653587777952684121057337940376439895316636031346246542121965562119585064933468445357802374973899696477459745364403223448843360648860532140868189327056737679697577707277435725166342941423860938383358964812198954638837911702201921453643615514151028191508483105138453751818196364473442087596592400907845401198186465677916071212187889285371436972272973393308038984383138647558639371031085978121746136220185516612596346927763554672812523272155723246442103471496669517658348699070967164690932500771376877317668185608454543271835379980428533735590534027242827460113674096973009565415594009828439210970885113987011117129743663892772145820172973736481906319608280626706383685816534179583370909256543873451745173522191151914641784393157439110062834794832123829386156020522149476310913437702732881460438603159970075862740257214075153970882246968510416813128927978432475970469220271129303903703606168213225437662632834724539285826236545530290799717824824629478562521512620889457286149311278691893649652730465934283786223583410748372859915812631979788026437867871491827145912182232584241790633335005277359277649929048894596110679216628614893708790754644355683565590266916722388976530342238822708137350264318872008953670145634673558902109032617547461229376964168883776347499584518585235877357663096582088262921167644049714946031278163378364292906321025639691769608704152511142955615856215468856247135962611623891923847221646028615962408472946104547654601460438733326418928670868885747928268778710541560531163712061777431092756872886246446887954516119876947462598478501676269651111146501148898075734560409149277476635520715957425216188460438645364537663096945677255201213308842441041909914031366171252598463111115289077727707353529299782379956982645984511604297620525256395909296185144306004065023810617207670127441790275160863485948307800796289165346423342926998794172349161034986921780764252343312988121328258299148597618095430635097587496451431737868219574827441553527820470914863215449144062865353955399933333056509744374496519091594840292631196753363386799508216186673429999417142055763418444813146566921135704214460651495169492091305994256278029453469301888857893444757102004192502244904687956991944123782702537593895722014628194197423206020644096066513660424054730486281644689005161750641091945554526509644645651934410316160003141933539710662598500977547458718673300097978124259731912240943802902817932669352714826325978985937854487102626651383853678719036219568156423077915083072185316933177457872517829267122471460831628975773844367182566424479934805057883840725793598095644756440938926593498852415769317326742435156685591726456456052845799880141114084336864006089171205424533855380083535995097063009245164852805987549813271261610570263009331886813497157174283447167427603437360388630816197259722756736677287229196551429466908938796412142442967030920506978832498624630262305093922559599965224176354191520251294991899255036804014963465296934123283783956765957505127050866539392484642585013213498453613459214112299808782818284329371353608638266092769827256676238758475132562946574726602818750608601607986585949513076441428050641373528317469917229687482643069651870971443058464422662871529988595581433869460094838471542021333601036792272076435175303890609016430759170573224776611762093363321738240411792345858848061900865505078396520851098019748293532528354381516457161385201086449073110722758935543774702913749902662873894153461462376388688765098385809789169418548459544582285156324002287643489971999870329375464940782018024187100680589480630763658054336010478004425111399362362794842904108857108816797152304954208305539843082638867324599801078392836795411830816573609841781996190025197302976857847102879529066649969956460845621301984912968533550821828989855656758292475149049984884623809681527867891143591973605460568026402030913104195927046057277709279913153730372959403433155198806141368260857239122408488426246984587285340188184679895029091394211334471379111358008553782888937725209224722960039051559105622652857716936104516861188080319603615757695233615010028848973080604349886886029522308927591037553457117591979348413399704840924911665179990908493835666546918929358301678040570472627962458764587777940250803303023906739727120274567151643969284123011938856946428390906052367513984892911549098902173866677088456701991896077017841553625612153677119633563530343787667847807887979363426037987368400090252053583095805290430602100483906764348756614229541663471964851427053424002227033902527435785332364390630713343241467070351762636196506743429204965039257992514880144680239114665613326916313650416917282608490843913042128349056405464715185728336110657631677861580507900701559253983432752201236898888304102321796375631651119205987422810768339373407902791634036187524253473830327868179271440799211846328983096959625948139995071088690983517104013169029617675527960216739926733516290573463491313384153433565950477770663896415168256903461097029503866844509129504300440170043640285647911686811013387696636771827207917862871853505414150895700418960270058804202846563567204008915169863830145237356077866985887626973684507084060763041238311459340986007817281592502050991804816011175436545084381269370594534090341328934082900356410074216651323168148636525560324404620420386992946475484120221307070027680542331775308357633064958927566948999241051637061076041588550725923457571533233866734836104710414301496583127069911998928662332179881228896220420438191738674394926873814250612908713988875295821103164619398397175560423765388745218245003877475636107601813640708325665831796428226534363424861482349575055165912157957279994700529771669270347075132274531951555725173636892763261667102589798342933606302102874944832531041641037716957243665940762582698802709795425067772777103024178777445367034684648018643428819417766917210012530519282727935401850113251308942050905952344428187298991799797290693873638355947962260129220272274894914551888461560032059554165339119716298147111156741864951061939536357176389297802744961942009488262004413027519357514166126779289250734544745529373369228970291982113317453798482249312183381550084255118968986809310854113835857545750794381182614209977534545445272968122408194474379095815476329180652491826989128334781660924845359945807206066969272529332328744372833912699384661997224058258263436907553248584705759737084543402899550074790687516346841535842896327507626583124484370820200011592637841972299937780729244009611320028075913823793609220937543915497343995998185033622196933096676555479130614682508238947046926678096355094585605736047413983549600261395379773727756855035782048287243382400916444354927225087687524642319218900324988559755312995019185046949939316744529403813657283771269760862705376237453047916194740877378957092656126168145924260445149920238315498505793566864465518022931692224967622522699812226289606950399487886135070506331368825856009902280155253451463812218327638595786159336196305162538981661471360730845954851243052926203415521949507322966760873782283540715940469321001582567413188219252283526363002746548023965800766727588904350236954588527710014926743690075371280634267878840532129766912695354885986450257932740047463250592574809202603156336233345152197762412710061432427952730091588869771683566891245979519168581077807321030862324540406362334669905885745329084388097667707702423943413143491237197761696135922827385443041958868387487041768483292259412939752492373960312469822045743624195447767423422617493346434508998098251880570490147016738691822091089431310969142811600795813448776991976931150137789655652381940259691967484204189495759283751771880934794105499863291175613991224364084217831301352341221711627488751221274709305878347096202990342668398073356171203541142856530555735232854717502277746079394798408022518083962918511787579254085282883811041136438041106989771805468532913553951801365663458626270658780810332123626060987008510644304161323807990754687190916240162007284205526533605380636579830897083766053183351011117233157889583587815865597765563751618092331810133012307975040226412164820057834560028170441511734434483739331581602479862044043766033190375268573751383972406851162171355779510496079117100563309335314360802375309555782800026261650624699016135898322888358190832289379116714174729933539963083351836771759198073319380673959840161055369440829678503024913802491919787990404727541657210614471718342582445593107037986444934386204311209844763160815205013977025710460093174602240412482370943202502588413764207031372239732382580726284915608123723321083164186796047671208621046206351525829692907199964072770280410204181919988658110272117002550514001845247428964175921608424155660460299918459892349964524944596033764990990737642459076885170312729003669445898388151677635646046178261290182858409339208449371381220797654726691057697367571455608578144762134018044592761913891114149328592474053132405690922159806887173906508149973419367942862117390391660801826866790900140375684272587432472695249662372613591958629615720466942564639575103931998359010138612730545991616512784268414344858751043430634758266177049577416106218229295758747823037759635950317301320010899673132275960026827513775347846980733141853496951101624280775120389361825202543493859910326060245986736330569577872303812787549040469864604273262949700019364174742388634241204341710297465431935400799448023742180896613829249101608007281887672333133706138096745670545775688986803065137619662240485561364366580770731044588496097834612247574358909295207181298715078917411197780485519034346892449172499653787221069654865393176718679497330270279421631102288489603174381185678780323681834101877944452351045489351039993289498643911752991152931284873141588848530622353036756659933392882980158887902399223340171577955615487958164024964516065896867026791496749381572129801801457015179090262157619624594978484535578870004531015631007430692025694903593787522070168708275863061618730694649933108435098244533112708957969435778096416761890168609819857037272309014753874143066560988062885118858910862097628925439705709061969171476013819097983603229128554289074487995562217056780534634773622671137651243882311538851895325480218720706115805699975662883775463960389569362162123788865495489691688266214772237817543881167180729366201757249298543574840543140063946459625025252982565095532335522266174583419902551021105669084249241698202793405763906783724877365620414434368735456136094649270378588696341688889002196783472940123467761183750819542197376972054148646525069267046746200757420520748855403090735961206750164515001510727545184099689102654873442499124392712021717269547622233130351210295442044171651311856503513853850623100498259408478662725156766312832203169665814719771330529770367411077491678914404280200001200645113096322996746211696187629879615434574346753284810944601044205273677795910177509177387205552959172196921045398637658066788366451985869188519435676220655338897086309683933601585748504075385727132120252818911687497617819811743061618151935095406076838566390672923786555238470627594257002919843629141528656619911243710400456922868779746908697945039771536983413254334541464364554853999817660761339556550619799106180916390246152223948826842370124343332311251276501724983478241912596384536122630879450338943888871511100471773173353591413187724525002799934094249174089814340422551855583611267072743303291645876821708498529906217580297428260118699051004879342477551869831912046585671498250418782404731071397763409643828552173078590608420713307248365134928734746156453009141745252090760097833668042935821677972606394186143589227819107783077145029180776130719680764531447899098630021428090381362999128816028300565608906612779127045249581216605876473101253212233458728384925144668913727066729575168559527596086088405370997200031833721356249719499947245239732297306313212032049471888964571156632476295360325306300789193151989978720858928056676591539314574269996829707889400180375377602437060140518872296762690165284720485188865288501086978200752908808758636615835511738640722875087645302712213683654206872527689657763891693120033831621114492962274071700639165268719859806387529915688980168579229059453105580616239431263087939451625894071034756984827458936804743995936068357260667503412995603064848155193580428553204888158721331273719871601432772921474748448804312246714474357132187391077210677462697149928117773039948134306082351749474989713058512002272749149506524390188521460725469967417784664186588397088194448013065624762170367649311431518534571840088138951401240884960659643162860018476390413815866667410129302794939237879866857215305602189593508932727876021731184171217454330055865702822231908618950916109238602794821465388943820794947184503699620365984580879978789453191297761626465658595077642826718261491422639323505886051824648725599595794865067262131490609482231345146586946846981260483175278998948319359625870642872907922881397731655055342961403465577466852575268063092852225927358867583722344835236846100691452082160652879125348165393176959680517608797911270629787304759910973728620646298259446470264946699553112279815376023205061840069849812196504068526980989489182884069563025471807447922979914175169623035526749991821240929467240081252756725489016415181488422205415780931074982263555060646451402989860507084508693883706107655533540705046342804535434124595912501080119419437321247219046135100290816925737325330735900709158731969002079723877633467060453177403669380837384940328721185182628486306443859745681223351893907252651165243273435518385757528988974087466527686236123167609434121344516741905692402236635423644639473197597476793146128580589151802458587756813153409851192320783946184137884907733574838667525160271904440500540350866896600098234852842428929411654693870889082430077598011324914696878036102616392821718234885451920162725350735336772029919248244167562570819253483320710820910463449495450813342351381476380398446162228478796965170553438778359649082918762680378041809626456465409177234928755281182325758316387572789262876485217836702082151688945064139631043196520098441559243828046454922125685295971682964488630647289006869075874783295054818433234469511908018883718722680244135792637235802890973908268762655105444530629684030309055984440254804250342898908596445596763497331329689596757521518282810683563084264499469201211747429184278266825488241844441848622998973675114538586551549429037712228170445209776134345264138600149079091835673433349065116503422904315369401194413678887746343781226352084884375666122323394146436663750363669420265925764449688696805776752300913865484449669147862060322449244323302482472583690336614767337575651245262918611607045697916645823143496503903573267680605078891630453836830337660203871440933305245266571214631845885032278334385425024476302678714168372486782873922676077607212130050917940911514248033736001053284420585789951395047472959644964844285199216156734465605987849095806341054918237409077168546550416418660825380387387369820686809279811737946377062708957777558873726938937345255390220766633705257109915675431550075718995688709364638360503347768502317864495691770931147311213500036670670481970207017871100951885453456321080863712958926609673086304183222937269131967523160561516537947273963564963392253453544160924807762054706229425160331745008427783415594957738174240845625226139039934756529875200827204558716923195926786945862231319883504277737014010661123916074587682391264741395639408331229465814640661276716887318790356624769311906461773401613469505829600345063656725333874645748325855949330644269415803915093107408563659516509260061371391154645530741295177974158655351451933894371186522505596782657890854540270519086071144016531576467038426870847526939450971368135498274735329978027170850825200724002291304247051960936839262300807712337599931654751815504905043882569526075564279754080430761167270350413947994883766197221520544519646842226219657001170415782579567317716818261524524135921007143104319060620445560187733832079151622071253623178411608966616838566160020500417452754740075393432954380071775780806052111544005748575631885238324715725908587718900286915759106529687923761253912569604723143385025093142830981705197084763741430667828235262294614145309699909269322275202982489462804306687507707247040899708655523060848829301814210105671336312377276803853046247671776840497468609517904627686033204211214557004685817885770304040220825997021646870956804493509962677376997971109081397372364521934734198236579593620109899693868847526250972359867285216404534075311183372369048495609398668113450324533018588913085405785800448735993428803249188974815164165272430200146475585073926271670874117050778829013417663451017475545794807238689404409241752052279351455789190477705295321796932675146674186851795450130966190308037175206575680623646684977249721573331744146856051934545624647291878598937124547786990283076418165244593580938149089755178157145083375208721067231115858139579543553751956162480580039454994775573504107673834662914849781798598710993688834264550615583678084186164237539171584365341735742624868741381442656733009283300199599491167992402239148730304631157227538725961661150054678735945672798990041446101162420427799018055396916507415048732968568613461138815190908547190169060971318689063219826615660254121993396064186885114299338708703532493147859625047314181454104427488485164384887292787140198670679785347054513612916802093488895040555198015858957477689697416357259942270880441264517051784693096319913295371359531340402578003575249216262304081275505601832715639115950268991128346175714464508032867170055972251558411152151819067687511662461226929130127413586049195888412854592387507907030421286572378796293804831058204918955471838065783493190908157785759166845619106323467178281424789907285223004062111466047263842030949619486508524104050718896429566315557183889405012423926544761020748207942292084741297519256994263722560030101817805929651246386294681768028315286219373717602720049522523098862278494292446898100644511339317046236381194879995429719251712002642274581293271540538373749386852006494465856854824343941397000582724246288530597959345007377300449053805905008238186497410409768958166753113817625385630857147872707179578892384606971410242514302996072190652244320528708242348068222390237914389330048412968448510302245782528463908695354606730224352189818160694058215143513630168922784700089725392904068998794205278187288811185511180998525537097501854251040127965031641914856929367853596427183695332904352988220810601651019295640704746691752833816658135009390544976510320057058244510229846275920432011251392893276075951571034522748872629962668776644172760802328850147371120843307954419492165287335105484837991419591984642992837019713155215247964827988682989223284612356974958045745801207424473993979965784550352141630857030690801530867878436021004789303910444835552990449944675004977732184762085779050459937011975685087928632383186776260881150184339133651644608126740208361620182010226982898847507629645330224035788216063102401904740723801716983071189751389728865439215256745866329415766878630126738960900025684271257049358225028228171707412047952348781501635448370613408185131157237833795812659202569591077089051199119502725165334087450796232056977773947966767083261914215069777626610061361446648678404447940586274573287460394349023429302155500390911646104919278289539164132251174622355952191036819275996991451659009469965293183345181459121237799245938741925330793835849612001057389349532451091468395153362503850864421581041919247737729718022978020144861431237013151960356935397696326191016318989995620247057809941031795306360523286255556203828975025846249170060897746703814912949195188475386121721272837642726671054583191351473485247526702511300710556160590791885553686440139459542941961088314355993475427070005583279090376296237932202836915856678292792972678462387931470879030284071764621473400157777813373446656221343474784682056651542661700335055776942200574789528503532513476904879678508006105238120993970877216428248137324365445965408347454182485015937864435836294771279388188574452390847813543544122327223744542330488997376580933309526185178755941885009860379734233818882805940453072778798587342708672205258005163074287843413624461275722956614281771256022011655849188066349409119332684055342774485431721398642747518288928464214422202648849797958785895359595746357035707263532141378726615791335285499446869431534396965097777555184789335765879440445559865255029025425806383249847487681594305649463479492746594884775186688977094740388690337808789782213014517859958718427307072763373764705225828024658124504998506194251199920603280182222638095468578444612954860447130530114062842843311104762512148774214898910526352638197458672318110343119003298617806323077621351933965140775361504386932042833392734273599883438467720602588524586815994532609438157696699131435015963763534328874917007756083134506683375938416700256462593399299196981368723103638848697775591942356860612944472323444217135375620910853829682061798517007345651667426672581659822775982374478961836610196161078274009564285138790401338568692598247699698391012724784275122352883186113758474117976379402053079613558247055374994403486266132831833731618099236092420142325247890054287261800438564797947654158644807424693034004267848467879935333655919815267473204697484882277488658092219118264110065798516904599694360978345274932455075819900279390208107940820530375491523729891076112565408455181706670342026564479122648075410719173543242343361734045929244590056055854633455521513740841434412041884375013111909714721851654641295931133413477064434756627163038875463566681922799619829590086110165552701492873320580922977870594519666888736631162047564878411739235534891694100650382355059397229901676163251403041620703108565983248518550255154321954833673287910110883553740393543187526335300478057437466774895141039968954531118142634975198665942450959913773423613760752137223856785502235142907395149707591164700638501684289837108972990311011740755833143872185075660957535248154646840707917363070815162350033814801190680300310329774319438773767739267304756333355643928421941904814759789043983248799123078798689165279286392039789609487267946654896518083760011336677394314646749207788850500929981369809764533761606583659240503074915777963851775851169413683983112194287593170842009424810897876605125121153536825251336686803232444944938995449841471810361896331449072997431610631299941743987837528082857961889391813196566618173796303741042052232731944249875751735207648771548849964310571485485681604802687025580577678090329168874604162512709106844592402935642370309300286159095782153266550299823538667156759265123728993124499982723467737289856895130309817333453026974250258012586998626083924547183696153131797860445906855281590889777450662510830080156434203430077603559618902366595293459806113664819253243473650190818132846854397680511157322306760764739462348404279141112689238213605439848805023378177105089674783380989675020689875315246542184147709360641953365228420749237048869665112427561641864502973408996990645131722920482710048381662077491202557541386551540047209931550989809406640805047721246548074466053862041437501053466357976669389527081960930113088945318496304902940931250735130005094677485573844683104661872045668489554073968017643754393232902356017312010808513624567796344124661123094756184160698491149888187988956145103863934222978410566623397493598160511098501623834001687977896750881916997760791239675934180884960957274381004936681773119982496694051845565970500472291928927134646010534436336862866842136911602514127293539964821059426500285026808203191967989353493320067667005313444960733712926230649147468640642538950086954012188512318773082779859151047110909948876621558007021811017206894347263103299983779376952519354421507097895187333982813622322930388485512173706880996906093825363349529051400728867797441730809366912910248619881154536989248394465853027003475172818082020595317626949830485334767656872762294793540131700287364636863534251208006803759740224234987951519977389162484400886215750711851181947840328456182246398977177518007520532174840025573481103678287302801094740646862021515272319227571847234521873352213458385267347381783699907758197730416135017025884257485438134577837933904926340081287647394948872309820069570621802719779177071432925494750072330791406881817784825259077016637519943052121432751921414000201657751685571169513482016281532898145485069035185860615839340221990923502608091722347046517840508754110038359584040549686805543744458557641755020907461139142417798107753336570815368287785250636921682178730404264097176545360401325597787590884014307854897938713295949842187826904657835581498262851898924854938363608331828739208534389427356262903186921185205587641058761709205531138060912843620778042632603915663865344295582116120279083307969632171974080846961382224978588333570202941373604224050928073700295170064179173394513095355654151365644001323307828859269194186582421865650366289844665093625491776727345436968137234375797623991141647254354213008445107264236769808730633558544863754567903081801520790851586828006535001371501432320316954691182623790234869016186299274475038767696753970496859117976761715374885401185884239279962867058142987523268332061888723942772036077194235098819150936183446312382208577331097547308182829351743837755456548210374422231717234174153356449449369540728627643904355618523257534207223910926343716303170241615820242682473633278963631896441707567207570014693359176014180985896872474581705637735882706172643128892472080492488010039445290034216261102857609271073056862834622487786882804818444228302013430320953154587131685635463701139770306660693055825767470291156956410524787221901202032564711473199092594571215925317405164992025169047492401472390972950345800378003200922105855396604052977996200192195689094657354820960322812159725522541875665214177213489029722133092156030052739709180830012339709207278604541462904833119845251608809656210135507951202792816394953948346782067392883214079267802442143125810416824478703261857193464038933261230112009818865991450203489032530637079419088461229662811812338865850453578024621839109226224317418793892557201784528556535811600136307751715251359464216585076178030891618163255423020509394088525321095850091721948726128397695077593582742165682942083884543040806435807529671105301580158705604573166716474212960426358751590078618015344157497884564814948147262044411271952793246129961966519515764507722971695430633788490066182172122428825059472877789483030913148841461011450190471037206018134999369746574399171849440089715111442277145748688339092444795692993543216256835623286784761370998495253070105891453826733319717218969956211692309768770752800153094251633395247062919065808079475488882390319057244230643513678821284530835510873610765431904504481546133786346202614387689279764133305008610610272471327738182350264458577771255854257478406565302452238577519668330474417133900429531593977100183928957948666256804054143352978896177198936553821667625332637799177979344099575068752959112246703126049323408145422544231911419598485260937857806685026881017236687559390748344581773714969206142277080382430565826326495586659272933339887305724440415734813643481249502613981952281945674457264937468075265838666133008021625795556728774211097157664134528094588087141526212582167894668788933337643093303422265518955730113437771281161760830272412912379937174381931961600599884610403967448146634846918356530696861562719279824135483668226695954366283741289969585364635049445584468266303883168854735750024942951231847069597656301279574102444121315847946418339086080557522899946817563538098649900401719428156556967672579474636976386204578533374019516113156565481776022601212658595533566042524263885114590443403142551890064161317285207579209253819170859411075065096900713251442923732929391992046368939746512754682585954396995521864341024102593983639705033363571447350555703224615814267904236748013738088158576363217439314981309415849906459982262862920700950321166534227507202949576644435288973583786133548643863463104689663986709122057769481089277701194332377153318025845842459769901904544831829174134447353350610551460988452372566449160414124333034926508864489515303189310913944097842683680150772344655095837372164226433186999063141063969960758155952591890294666227084599969857115109278283966223365647207857132460446222719544473665192488453870938461528438057201763606726707431408939113165090452507906758443593568093299651730521092443827574849509780873551548959754641168096637991538138176436614953188309505229664043974041845126090592532680288462181222735923118830230653676242851288513358543758249471425287658188755511075360461805154855016663131824485900710682233154506404318489167037397053424033244003504603116602610466230000982847837291846994431471200084600692810698634599321518763193653844770551112922307207810940958499787605509285761892459063599240638081979323087266095483077427311829046151844564742684675274814649178966595886098999529274368156685985370372108032605173429977137749414664286178538709359034284214815503859063359204783909410117541986141187656595707843847213626733493831573615423601158998347120472922924724349848039846127202746728328220032780064871575336541791078670217633386015242683687168363754992242352182912158430576694871029615245489755102538868790623459772721249020513449564544655397720554748492074982911966281997364484789816246324081125312690824290297469143155747573589718083418276376369515365196184632331115172434686368353489695990609601199936643000712259258897343472330567148506922892465409317354526885773985584712998443823440457550128958290827501230722189109714534470665795334706571970679336904866578993968937989326675446968260556090510219040391796580012462075813114215538592779534344533882483815997015009218801305208242346318612861392361617994539041434251132196716937354706685392480978654604100929828317894680364410827689876874252578722224970278200639993896471487519206081173961537957461372314912236395427159962962349490324402605210604478841647068673245684353585834892991251661595050866504778975528501097698890010134394597431745254449843164447865736150866718895412870491561872464901461099302011696410568783438726188593014278855672189865059722788029696133551909156244137706817428148379661359483700369512640501114041248668401680779831525211917310991643113934767988778769329564018043054221140083031248795548407751196424969504154037231790146060105638203446669115485296079588409618951308176556437423902482402030819833950928724084076056148997013800947936233849140192463275502712846885690083447664582225159401323773819444237186235690214692641703596785706351401450723520686031674569440503213753498492123560055926168917597938112344040023314490727185545074965028952862626814845410996527362283208270382048141279710615069397084468887308356589216605824114631143487760056678776135388246922331097092099866609951899139874114226117036324743950024453295815523377051258665056447928928031874272977020113084005646506095612205275334606990287935314794580823822272221060510315260626887002689487147615287271173516899877518867474057952931962687007975688551850838974650643509095152720377102164554827738833551683241936909673905696353254481534659449511617375070684389865411842276358460933064303193804435647493007455070717317239175890287269810436945068396458805509476472915482983311760978220237679677767955418824528260464615652043229719824783377277581744135250361126990433840440959515230029382439729307602976329111970651074216527681080591140222132873422914409053705134998329050397702113812102813926970480818827365757733805976407392899762530020642133683572275510089749001656995800344542872320359311012165329156384026341269650944317328140711558231509810613885392034480879594016199243860901441799394080039764252339467918732553120475837539575222127401243679604439645898520304139703901774276404902730919312485877003713443740535944142512165870540306078074483838200232987710966694742851618466053914503074808814222354648737922810313278090277609729099051597956893826674695258908972770912049811055929525243959357465873957280521647467542095893484758281296357028927618856921401362584358052681139166027331285311810269568531867478532811204206047201836351543731759665391138289556559140917174300461387319600652367315844306394274335482466328523676054951142164767020961065519164842597715189917360471218544586962457182120328560324091197033675796983634918714354488624100554101856834016720789454110833302731990160640722507779883853275918009227143725871920544900166330995986849786221501606874301035338250315359762615003166048381791660504328755480641923582392860417507190751544861976379081063335270212554899305805117390798983406493158342205637675716035331055452640570944149730209510957822117385953524805470396550197617674393146584578885583751041429029530027117105035668865780703625776979188572339006846668670816442890535905323734372453400821942531170436507445896099675729318586638667002121987378200596248908311459488066225197987051179662385007720651986229213411180634638346181381897559764359359409918291589483775003271334686909599971344471008339227364246233825692102721990566270610190052774363113568103166480323438612761701765424382258576438491239087371843267895607576950761051016384332928746537487712051526684461210169134930592673921981739715805559768218653385469453579583126808476600728160354690896110586768434856661722086898942350659629421444361404779145619057071028777966372274831921351589188257874098648221888095680152030362688792866664161491536412717825494682289190225375853522951997221425420090104514067364843144298427239833840465862941909180377946471184906658288183377338474285444556198282191033949568614167626634755946855359581599176139660655585655551055234232624944492223880103544794756174205590951748691853517433077681076177877337657981467341097728444432761702034175863471210686898185730780585248542869581845848637350323386016624914031347489153545340431638814326166379386518218817004918416071251762291128293201308804454883355922911210219936455208758555402606793146532707132072450646692520220592783368530384455091522703179368967771025648645361080767725334741015300505476646411793297110114946663029058791824673674709627886579384210571255495796633651256505383903810749958219328700182735799416985075558082542860698006420824642992104824935837857572126355887754974287326078178678155857586838030828554803239979352883074571129719658842060266725336774453286745193608288608919800675434329256739455525986915613237630182217475468830297690735204531036988866454941195446628143311252361068764529800887009329941110377192233947686779071122315052242280396982425509743359489712109541137400604204048943108383832674531547857207233844900855376867061506926837327490426081102936507171810353122180895355978950513244955264657115782606128105021414343436327934836652876227345017497137890217107725320152014129940144787731259093588168368335331641366562419711766772786018831244499831341170480712953159657178859144562218836442736624647951312280990248979225655093939283352337447936342192958952222695568161729750906859716960323087545458893136748139619244093434179549573703953941636689757324894892697427725334005032828908774605363624416589990348861045176976688324872684218989295634282067686719895341249611999109000585536813554138223362297789471108849955328617951967984726354354300683973909949181573817794375752091920756635462053676477533170108132388959724041231720522671470262102115860409192259118779223411781705661437884194522107380134255461728134078405966182487141481602413048917142918848782172277901395725431071787953772950726792674420846619658464130056010605861026908332627286902730574148385496270585381266688245294872932235920858299404499881115735118241053592250377722102096961634767886819019251885604508103556068843568399435508498065391920830191183802806090094559691101419420753919918224699459106813244462023373619743424849732376464403458888840686410439572641553477800093618668906349306827847480116142229235887690625541446045581611272033750716401768310485692235434288617544814334560115114615643311381649141636413132160335798704136519662397227552538600164808322141566562944116205960298519056257406966956767982796001164835822268176011738221593111483381968655648239706227012245572094420081675589898479806660760384234029977703650058304159697963590051785940543621219728643977510448844910283404080579003008991087935201405336229986565538743989316587266771696822454249117728702451880966864965822931139121027170941552420208164463682313057855410535771908623337702679376896866112140614072740881536601613367348236357175745072691572181101581488492241085118820766203151240598363662650713165069072922401687334059863563946926852523694762007343297018953989293539130531127543624198592127605858043850093437191324693602895364628940656296246196763341580064472578079429450994908127552929629926037929303964472632084114387559117416942888232667381537707478463210770818202275623262494916341545176284532773838469270709432722050575308321533404893236185822519934523827056498572927585459578501876794710722616420036387082461635529568909815938581053082069760772437057078221745877755661078258642965147370492781935662983336744016665095936720491511230545122533892526290572872756670519295470427635957684523467428034488112765882387630138793921638115087262002983328835490719727630661246911311186748863046635108342744684419727607918004881147185623488424642949378907408646964109574572807785699015644889452156377826776312687484494709408131739698804898545115169394557222823124374678038397894774387605952206823067063482031390899891947297347472776705012822885581389569906005761322612920877984919276935980227013081082963355213336649329133504187887966073889435363268708825306092636499865973967806685410977260912002725107554676041767614571050429606299125700240953603832389148252076022927176982184330753081256397425288506077968245911937405782067496974966335643339435198284206771375695299068856217589920381803508566790298644508584735188645331121644140427108227319863397555206857163411422654220631037790674630472393239084741744149686327716823689411352259849379997665437559563894007987394397101441403662729259496830800263991507504540406885377888177153457532270991602904724397683010332386049585223267384671060275983806247325576506930361700837695310686091203246585167401436845200842262644690000923323993290000785377065905242555901653140099274414360267818965207072394200137387359911728301935925757782132727334957796332756446709953155734960487552084508594337831683030862010956586608469017766914905992308848935970592466335219820906244722588414690253942614057996210998029477175005393973613246633136319553741249097246612986519939184400807120166019246681775673652450358163991098449833034251722657293814634539501560989630812659012950240410482192541399095547055584346982349174586372486874098235733124400757044756572772554812313447069626154699068448766181206703206193778672647669247201552855903417161445220981231678457740541691848444411825266788475589467212233091006659493274715337846597592957974627633317475673426522403977012247184820537008426614411679371497410970881907047537950167977871150298394087070446094353679421373624207576470036332895542597243785065158925020084012035911121672187039736191202528166973387842139118399531014575971911545044038572655235310873620442262022702811256351341022644476841657373179053877989761794414751789116054451494820777896063123365082713830558352758937525618050420196730153654934379828640908844321005284381697952530737207071699845003731970562589492540932725628692679847712624672203978020711953663895467886571307878570508411514831452134928860703627376251195947915205085717947054275795741132572548539736823874529689535129380785960600345441523093226713965516396704239521408412860915803423946876846438467295111716864989814929294579743387937769150988827074184756304698320130554734576109868670577152541395795310461540578418379568760543884517825543243030922125621433168892455056899493032161490228578232820527490585165636314479470959665367877357164248191220685004017315986941551078422794581369758764394304418352559084886941957539041773086712110043574707552009287506816575729454963098697951256252613377718764391637593272955720136946859055182788003951244187697959814835912046854065860298942921843381280776066566907840965756026183246093461781886421949361438294376585944222181151829510600922731402971466306945323961576983689356869495763352959005620811655282524366879405085030081526396350119778120321943771883971506099415287300452564263324227644488164178677125485718641964867062940789931122297058892872926751587161540086698177405064312480208260083386678730932673278939267359697203882987869109670303953662418780433442214124520050708596107571816499493186790001991700653108669756882325851068287086219038781583125526559167685145302159877239120876650111152855693816730246935789644886383845943726051307354976681303389084605450513204067962522573803408647862497739238482950457694953222703489724302049859905455583592164033187510195395025183162254243677049352284635396995388391883939344050041942781592218980487197049837903914759501539314355421726390463064650479773220605242508074223021196195707364298027908137851231068443262174241892242182326948541305200661157469080355402583309678061927224653517519326386962527096473064745429498994979595907164643410285550749926048073072261882626885593426546077975234960260588779031549361207980075557703490470530254372650918251512810500209862610457090333006733374224444255460028228699520270555471421450691103024100401103089367238447694836450205494024740872458114097748282384001171473413286580118060913245810030578315456209397481931522803770942993434121638935846090616601954697851304598786582198450571685680967907908523450183678940738136912190761315239420546846792024784471020575269982894403101955464402169073974240592677134026197375357417421715415905100550949308155275413941107834474244927409205524576377913488625938213388737831855089695929732982369566423656864134806779388372682702329172983369399017225103803727747335410615244839476455097444922006463666295246068899227025463229252623232751553959063016963613243609341149970869707140907634561013500622882981875493563867305320105773657806913450305600318037952271153866747711402539667320001517249843856832254240809053212480323154203708559177634014766053384093192611015877902924109949900864566323993964823618492075931270781020868399915654709866960934103758589895419684558212570303881930317934383899444545757899110273933346957321231113230359257843080101342544759069214460017147425268807212378310301587145596766705703721320301418812416164948865761055122014818345431752534012342546237441199394884238361853237288769520750282286644481394163431574736314548327191646959842236195008660225132790590863853754761247055768041294822508064992630016677680340467158681159406834360753115088039155790048364065613393400368848291760607433834037219110417099471977398060549641364554998518722023941774591094723224256967694414284094742031700029971632992615147161589442856644570830636584122602860942914195487281430826225090161352608895602428390877766016894948711445696331042031083929302197978296626366497952077104458140940576722790123451760043651154899552694831371410326708248173656194527325775073932306576253303228647886206914301371847612610496456690199767804275867769347365402998361490739541773546085345003505601275939509037402569232994299216906630022418225476017247067731949904239473007175687761534158441589276950616977309928176562544829934332542742745098741189792333128939217633731575745638494913748048036024405825188014533461683970656000835169696762376859199578912066666065293395469787228333000269219924436388722299733991727355241067464154203702019904304179274769689882055746207668644090944126032884948141513172911717797737899820886242985757735144225168030387709548911324479891911052194435194194427522348729086673041160817828292119392875304834156970776880041701278030451356390799777857346384858552677464881562959091930121851630184569427381771307363783244254196119530725331371759137705748057004829388204508490317725997376634948435704180787345512721475610823733877677137807624876303659615604324598010156977090056546258833387967086764581903964954916222876946964949827162882436238065482244139076134829263221701238669740377797851671758169272021421418710218186901931018345752114580305752218244341755482217839004589600153865001772862241058415863101890860914242954615221867643260951936079082645095903488728182585463533781962561660252854425707917633875083492758394617470953580742946202271053953795383811747360676111380697023673641512924395500782136219425925156506041409788275096865768783643160185954480861202537142839173993315493086603412766231440463255956333721124663315284342825327789653987463645405107644992664159634061996106557592151386903643866465392392716370286032861500197218262490842553515672567823765874358824836477441621834478933164423777782588910008712318013114600720061072936886813982880850869340831823009754410008458390633484789327766735509922887667270477011407636756852775942308262154970494074184906471454307722160622188240615905251472133116764840165639838209614383956433862743939997317955957003706754822380451247262723299466595066448330120087318282468847730395989950837407031688353282915160867832588881667689459736823894554310058255645638280862882276136292238256550134872856137090920736425200973004659588505094408618441941511779138630149422643359952395840462162881217525317216410197352404628721005071322773058419377398515486426188116313587717831642962464586743104040895496435163234556089239775203642472826025172316827102338614022074984990980324627201418103374881456161390777188613537006071674194493788594499967926320743406756681404019646302747814863073730715552880987812389753565107977591563163595764830510423027250858507237568770569432785671123215879935773568637693156594665265398543961803602414534378086679324649051787708238085783812960304072741850960715186683076673888732448125003475003916823291680293585101306849009378363968497311064289884220516322345689408793841554983753592722573581148944360220361054000302687731971936974310975924249876447992295402416282010215101319683944457146219002081297564155247396229037936907335686012330476027332139412693071524614712759935172624269092955396656614775642070074841740798071969202289258945330868540684820708264442882570342860497412931231299580635886423143914282689012182814803346582299459157219802880741755021948430358156895079625331231444243091756134550925771147676487019557910544868025884034322104049836465363088395185375086761432860847658218985722858490083328270815937312078684100541369513796042983000222849764109591901101626431676197942743793649125368495411127161273263247598096929866351394074576333557050481267009993225225420500927339424153222494486072348487974199152434891183513872376442792609149521937531615253026090868195004181226465200131202552625604606162938639039958926527774459964851846264753658108307218420468736755254804189430227745782723514077548768282801157217912877809194267289237257535754145133437845365255076563449455202028339633647640830554098630061142651661247790264062183331396461816083952716139564797603487484934438211121939973911735298400410276442404851603791697902450131365261081552716349408934445725859050078245176116361647245729702837493152453378656563660904003583574173805096215212645002600501146996661957463371700877971923053780003915790218949458605989352894570753977274307529600540586300291043654543476143353732126228948484406012123396674477536755603831074212034011452187082006115398913800667737780699447666961577853162969499909829239609959609495754547854634483957000775952118673183240740365360051950329500453084020408434569010160678933082665199614874750410404544069693145660835835318667862079401611759440286693309893678436687213549451796135788385237309482549553460490604148145274415564741033908633389613070163458264836743300826192928378617616210844549220855582500795277988026610541460985942078054906183807817074885524786715348088924445478243002441023537954488880080164075767938532485521278345559534693600609372211246099671538193595595575114488361945405424536935045799115271950695368347246847977744793851517594918082829842923434450622149277306076721303638736385085798282990950203971906890639899002793429948863658849560207168533026310926874450055899768050667325596522296703951608236353800521497900123697222487109482247388531563190430457852184152202037114989017609604390778916155771609823553957597269209470525091314250191514606922633636288749941201776314353161587926912629393452215547818941904410999595888851341433004573149160550321948579314033764109019859350854820306130367351836513658601747893707923985458244977961359034445250126450323547076375240255532084323554956268458943473332731033451120751936126938909405713156500770250134267309086567100094810493708071103564977081059261258817614224797509298091293041779960691563564523600166556293451621200399186695176231558177821052060217053208440027063528714319776353504408190573687898323070367230434494281872424260221286947088056389230020948306480631268123931406195493624141528514721336375980403686767086407474886486139040326270574414788298090412604738900750847127262801867054447393570222116685763774106143250830537025962385681599673940456050890825062076532378168404959342068174957865741946497481969932522745320237295695747777437297271177356883628693778497473377292434360266913972522275006993205144842622025805983067157656106618273441663888322739788432562773483462613203105046586028982004607931586692365711058934420809638306213750348332756446079046302739437139093354017446889107912088938800472391224274439248966073153599094979225404228271783526238505815045926832397646371721236281678465006227299722172445819809518323974757856286741162004182463104606404870031345293948633128187594549548140522795465020180207653043222824340283885990897512618245277585834667616147650538066874848787500091837821908542875523093990630945023580378628250692819410040851194734705099585452159510920744315157479016405572989764033007921206665774696900781443173240528861242334457678316173415094338786307468466023402534502971631843210966206723259226903560310931749062944636828621725130901048540258398225161583726440887052590561049687701650566887422739404980246643003333072930459469198137703045519999492881519681823723142734641235778949231081654628281316450510001637916748463956608746860603931776155730719326460408237858487234128114603043346078900531227038024385636941943317258292725630821342599156114728505209410567229891872509770428484783880336760642664354886061832025200780970897439277567235257031295885717156878827649588712538748062476147502992410171511754524481543705255300472491863948544387682162709922368850074508902006015457555275960080201565304354416911325800859757830589405581976653660966327786447603819543529337547896108355074312045695375031266286658681286779816641827317621672893840726506798462406838224989312686216573205676832692402879527832429108291451434762720943207009818683481721573163392715715327227522517554481083372804578124314391600362542342085469244103670742020494263484369892872325987852361337346085380366425715415755860950731710161561199964496360587053298890994139275367529389239057111232411677513422913641218446013962227363915993905929691904159666972529455320194880710469696504926344985643825419701915119632807241811707339872595680854814533367116890097055727902923932945744803112101171766310688100596663020481969442129825966503450497354454053937826444950161333779439693913043017126202285023175252696762263186442975397220617290255624607453400905037027098334204251075076349888000120080050397554964237073301318531006073076683470400642774252059009576387779878639236576073653493319073240967004464906483206536944389201347122617327816627708750651481044593682031352201543874381739885417938173416231366441706642078680271112389208759534182595545979564948092496849736092680800173757341269039629818032293822392543464967662190086535921511353796363744548718406249622594060048088693062913902708451230273899972499621291171965684923222887180123834230065683889358316184854585731179915229605129484166991542235703352853774264284545795167221218485922680361564079149017820917107558644879502748662153011033047679311675727078014336850004412015937278253776252182194583292440683275881246589808407884037479753290574596478527034481345152712777768771388110836755364929802683898437465804905429527143632961015622944561885524592686504819105933030950869652192776124434476449288307222642073569893111395780505665620934466498855439019745298745985810248366024563898610962722600866091095897821651250285804929478159794259422930296734760810896254999864219904978880243802974107595228131122799233931390723766502712654592710557841055590238623133843988552324358705069390153516603611227406200968745303074991596576735366406745468797192211087897816670909227830400901526683971553650965136144227474082230629426184334655802102281678635343083525441077767483596606352685347775987943939826090224916172594236609601725565645575259129882522424330366156131610495912069793384627923571930141951195433192037781821128142909419036960391438914938801293673765628195330768240747325903366223002634664662713550290082597058842187731376434275985617862706652440203779261761091219380274980093778578762383807365003301042325674593380604708074791792229744151101935270226865489752622880277308097956901025153745070508755169388640796788415060491349042967413283627115787326302992005070206504433628779829821554139743975252417098429015151131400433433203199609638210214625470140200270689882433225275440119188526839392263431535096405729503458968947662018157543411853641784312193539981897602771474526113831101837927586790736539361003858569737724924364036197044256719863973526249244143202241192284526492108549514714421656772603977945593393595780315710391693400025410797854295741745272743134708202879719969127346405330340536637245301195226078865746137853914386742152407870159782086483321481080644216893136384980129764023191423256612555309966494028868663216998300043442427922476253238513432946500610366610392518942802458985170395673030350635595776176104644939286426393514599488041313424750266209153161014273059429761460927108828190738358702007954367843161037607736647717124723190453435782649827721274988433377666616333689199012639398416477438959304970110352321995909569310554626977493566789844379207534396575759103805300238256693886621738595428980724051493712322496923849519941236812396313740083204400861188789049266329758018069431142723066287705877944576181662052006041720581865213463044809267902592702656066034366578616477928022209597995310501787239547674201026728085960640354618782556001686090885068901873699149518258854855238351880921448961793045851777754586553951155200168753923469107846239748918479709192166382987343524210399378583365145754218738670499719828941748528787038703754521321384782958889308767076368795145259276599004328129665482563252428993773924038121806504783741220334207889237573645885679359557918833915616501631470192736878306965379400672371267465492175381316815314796279085873191723998997541705646930036280397129827178633252473778690117176821984429172427124264575718790094741822265983508295185280895150441638737694976840704656960657249540873852117669654346959222186321551669639322754820973264372781347001718001926380290810010341910057404424992628763551142480941917634884274246925503704825245236538676881415386916423938349855579332091900800305863284696196633306244323557807919848169521123658443864668056208799981294720873937592201293546803540517316841461185091092226938555879876695583024838509716473034305244373088104148059444248288219858055815083794062089833458628817950228028349051968378723873812163577066342809712537562570292946152744838465979155185048629769621013475981568560711435430233686470136930537420636318358265639479442001999354511640238455598153479172993839287147749035877962200210982712380703615949410486699521781641673760471627853765593547473134106882128220497445609612305748556788229507294744245971272857185383881864139947678225943833768189754537268795874652572070688297941079782995350279525519979107014115709821775774626168355508108720468443842987430340070683571460126745224083313706054934191221853434663153670778660215240609821986620917144399060697604768774477137075377723645997897902366484398259109223268116588510250332117890046976396782259765911502163931730628142234406758540249521354050329170221360214220063988987593528173500151505365128303102703076066334902808056095668087524106668997879086654621557732233984429916378051297141855704622638308198736009699286300851653711728162862124350857429866194523790779701374820579371749662129763500292088377497319330245058097596343317545925953714530863403879958063867843563681350792991234461723488621839519059405397557038945826764226185372815764254768141807425669685502178419356804000871882729031311159152002461452454383154636151569581288779345988044702980452722756703039324800400444153425143678749580871459326739366688506477442569142270954275295858196446166666263342892001531617365221004376618268247509979002010542604553495375440873988526170682736131264276255045728822800727199241311060388429747926597703807517505476095515804047801915320856244431654385762083618108704500385559034893203415294730446775166357996959352450186875292505661334970549322361350286259969632273434673512419439410223944237840067206706400880753412153456388595035612014511383411233387503394638225220986363956393801513370516330303041360339741421964831670618249456694037556584246252431796895199803243404818893223433550517515576419005766512205005646620870497757622488111889939954161209583908153045898749748997983059541504495759628022721115117561516075572569037941113494618960149078190666371243243826939150449932693162459570452978421104951081585526424984492298490880175285155374598067599628670009271984618742792777587421637807019666783168647015921649652946301021691925899295077813256796975959947032773607648580440975100063229971717143135006703803674042527986357094702335416127820444102166478468682111948842055011988452361225896508955977359617112792785493689496975604971257656050403264378149236126663591021580812893243861036626278405530273759483875755345415351973371693661857882252412405185832338171384982674385506838314182370388283053065382381163469561329923377634679256020988638838713005700043606357423444006583042978193405765097848822676526828150664056559990927832685464885844195622965898698625750497204256755486434106315076030272951221418601809895912300981997030776683856176275584509728566179412265117509635752708496160537414537406422705396952998683936331790813505809353757318169764338831355411263219318359662727065755038988744248419928721362418180707440707011875396166425404044173605673835293469716786341568216620506341359339100437860460386525106587752285504899694429961817416769018196205393518163768259934728142013722256805381196230057049137903169489987860560679933949399092147187909570748315549665379870586760345108088716173568649326370312373237872643796665161497430649923878639535003008440602866270704926523328518928526546299351693733099754571261503242757509606165706318616383353735994067240706010765285442826046545895669364900975652665107523276131200830748359439787103526283306498713776259631530407746634595635088033970241064326596625923469507614470061361082891122374274992462424164895817568326311552232845844251947266300623353493582756963233660767630953713321938683111181156896934297375218441846038659339196167325191978487910592537383465173637112028569175286149183837272983993085105920583376476564944491888629235985723187174611718703031454521058541522682656495085062663656450574989306628839128765322626555317618192948223572843031240199680263594286596191966246703612398017967030312292300582479847753845346554377536644880258907895164602898386807115893746516846179504250126159851705155531219767950172269718123358077113555928913786493654671599529479859753544474256130481587466898167767418582340269026523848259713911521727764123504371038866036213230348427954519784879675760168263451428284137089925754225164385211101775587004821372829353133810701273713018426469576773877681381183093067939250781485560015426199641803570912397869099165742622688839145970722563385467425844084867338273088561204492314128669363148564957601476662826037631606987455724835515658666953051516745528657494462915648569954688103529274227031354457942305064151568167437801715031144941077249850480043239753221230297581084055319295125366564672620477778587197682178819387788731457842786492252296761453040311666176487971404156259245819390441795759516287472355678874006708020285089338990390363158765128398625681082473522451051093319605719494745626426400140885923460399620442995406370440433796836443805097724925837653131048664153580727018792824344725851852962533288259066971018327820439341017180171080527905129746460386115675253066313103956622343356474555733623983854899861431893246587807309323452652801208654888162929468268366364083393147078841290671415039596730917372282294439671940956462677095680815022202504104210592754198579378379300701501729440409938511713850940155088545307993233670737637770870765038587152940361422427991614174532160808113392464070927814567843335902829752137486896252135779872835763528276062916611706618798898451142434570517289812825570889157376525150331258304658704509798212025452094568850295182658742893918703071162118651275194184353421389559564531826950073334932718754498385507561614438093164544746309510044700717826371900940453110126295189961465234631802796617423583667326528449506728057529708039987702092534126859468654473151901159781072394796472159495298626849926070797180465136357666086605322219366702729310422499468241297089824656231484224667326329683060609410640571412812710477088362534742251868820083140738603007858449925455379442248574009059452443020406794362491336136003028037985199777993656779393670932753400529596435629045353993723311728990600153596240695707456551266249625707409528618916528901604819545113098990404209448321869863551438273161358555149678739725310715522506021677039534484823067911873905394993903609104004172331931872860585874085001079039076597088079561239513276901106610933297633693705807194228891838916998826621708240257870386986874568229222391935534770487392393196715487994954505162776020865929030558927488318028382810273119128548832527444051396897509429690684501620904428656074888611484590420650256766227205390223098112157290849976398662958566796841128421897421070628296365272489426663075140498285378402382866214666728811896518944165830736968292382019213457267542290792851239878846965064083691471939589066047012394814139585113851502345419668576906684381112497718267003757029323871559789271563458471168329616995217875506281686188863756171069208185089102310571416405615264800791781232046718692414056814915038788411570525070793136182093258604092336637567250402241890584402469791363748248891629367214050253536959981718482493662081616109490349622890909226885981555661901799210116490146363388706392713530210065225065285779711932109227810385877996154546180734893455284446836060314079034551237895312734912898657381683461824328265988714544910261174421939925267027015002567540900592376133916128376575739018105521413894193058706540050919419065916744700328168185905818518021962585389808998803009372794062737753116022238064096307464914087319992731444179877629347475838042584358220765425545144037520698331692167854826586549348440465385178341263976290954711697293764749386467987396855365336181218601790778563522348664746642607517720517585585543976636373853444864878601760399274729016200876620034054079221947931058982717802471918520691494163636958070654217009708105918416463063142766301365293992573048397958581653643553038888719889107694197798214929719326237721153576942778358776390798225012417000990048259980341237783793217254380857258718963865751216535426596732269659394872696914880853820294113029325844608017947572150381161914402266155681900373793471090492283647447879958245691073683655680174973691763378188222126244276720053465649791099091936395900150341054122663527830651445450625859380687473594417936374819969639295245507085816850715366026536096724506822395998261222481270010595208471840115586688659422279660837235009417825282052147322310533050605080755329490617813878129791928432426594082092344676914885197121368997326928432858450311896378921519113109632246670113888678836129006373249559550164806560604493046276407210182202841966961082222083209171958665630948104006468949954753403255103081340083297991104185605019725024581531674611786921813072313247530864849391552621999654438007732550060482240372951308916820846621467768613062139524999676261373923361753731947546027247391840296759118898603608389989979698516127973518025939974704934757284060136266199069775462596012780531646065430925385601286172702661407122519774374274108552292692999898453384225399040234199307087109599542214000455378010002018109208987614878292808240632415723712116387045195301734960683406095224477502941843940992076518764717299623154845432506471251388297266569974037105504592967040764916484900610351914764558191400573326291838865662849764480047593166369982477551334832529852507661034019054788587913391540209154312994674634581056758332529636190959367959161972999138988159520295518056799820905777564727224140370980459601420227349950101979808430757460308712508005911971650861023538454003452436138575513349891353709924817345828071716834895439911311383962425199568565349915440768235387977229411066527398366800790025844342074060657199142482867933966603735828229786688749127415873362470168995885272517688791188288867324822437097477546987414916196163218399775271306699835088353439891723917796410070409217901158281096194435451416327426330821223068547558625745933909066465117281622852539534085450269590654370929678511753324093801683844358209235293807863502318369937251472963513258428297308262308175971439005505610114664603191323821181960276737086237971174279703463428152888388318495873691360558782835260262288889619903864527425651535960569523467491060790992181225861027918198569355852432163519533579940101177155186663608373351627995603384655437223182765717347507273300243837281476343784223876371295208718357183589510911510541610236136357539211775078881704842293448572785268888218260896655592247095973156987721609330761813023270393874310325626111932551807378644998000336561423196261812903048541947918529171790235648289675141217458427815726783291367280206250844003926622049846565068740595665357648501672837990247654979332189191444743816017472110666311234242244176672071434697730949488401003731823190918852486597543189026590535542846486350309080971861578351356018602385894864495663439474477457152868443747440219268774822147643288404005641951281836642116248849782145127641479438160003357682942927646739812165119933870492270349468913116943338285154342527498730185156789373772139608996343629967055690917250750894159723345347041297985725950936684762099558377680405362710036826294868842507767997517075775617043542996529874776524503767165849936667183567698270407491153152697213767667423475640128495291279001971761605293517257987968317258351945762194004668769081025843322332811358187097642213105472810423003956747256873760945748424390269155628021800791202352258284960394970659741302906212777665412695450643295477923646811545603865304164365380981716132038494346812756599356042923728960813020885390849030941979070296658527130169365051472629458301232406668710922834969802380220921709494891645231763227272779902085332509807812140216007309745637054577920195322154441283679419093608249740684703886991980822119104736272418955284610881204524523265996952946148949136366446685216429811804057783231102155382837558362193548379847347519612935187901410781960226135995274319325063786141748539926919693667566956756630924156499368723001530702277104806450715123579400401854669812869400086336823570903446229291502893663613160352274247966751340890581989271603180184602099597068301319266166185361407619987716286038226315440253942267524825219238419599262640233924662988024348096915329367963951734874403020729370553586302016255525372739833526727160752636118705715317732494566506612449952679015506758232888135446594894711551104988012296784929091724979059323295212020622450489459796925863026610139997859851387411010914589559674394609045642071381304189711236294205166872038763570569347198016601206651870959959880068162342862976056379966754680341420611483362137307426673652683348777086283050220037165010475126606241553280007377974590381887051392725074230851203001790419909812843450652156866430444129065431881806852311664767859377713557123619540242107094804925550424524313147626289221641481938205221947353649236578520350006151004680742565880731753517822538469747475775025728370467537609864087259792444738638047961244416129894979221534428330514188080425978472504576117932272704428797097956644708287302662570379527503350320294017070687258424360241957938357305027357721136090994735526896620871247152519794742589013298290513623474582489861798977544534395526586492179195178090207941861190022029332783456647121092399914055698723342121405384110643194587325504681520965181275933456728489596606265780954538393541786593408183670328803330757890531102180683651367474095455795184236935650714046314911310871847684398865132622088035635433156079755559984222886133369554896569920855505835953861032242812712210230657959237827341099738337771288167595510854122403547841869922397545944092910479990503969238426542181390138074460492208600757348655052954489942760651715051199523236518665248181385159079281015106998017117759483620141610470482853232038273810535118422916704239234555895908989383232424574299356703887138935005286705390117611674633294112598368674999374913084931831040970575402540491268371205602324486609830667221570635161542447314029060595993033693538505914685094718827446137474675434678925775347623765357611101150110830088502071236557717640206872078005973872370478879229455960157400677299848226986699389967493653957542228472294202906319794247389217716308560608218468657870059404435324621279076230272691814576288561805435797077919828314864813458629111404095921723258033594524456375646414369551303010641462355520169733401755376916101788072514381009371285068781421783114419291139888470155121421968860970781290481935906654374902869620930403564779469211212379991355240762550039840083212530047330489257674469895094415466575865735987611207093704414101539693548255311127610842102594568266460919082728929990517773618059025622537495488854932931502794426666567782816355287276282279742948339953028185650723341975043968182367647559866784861926040282282582308774129636452757178304717438825896558689581345549538244144860181334950628265643280591219808196243858145887510956827849138142105029008719354053352662370662505109259709348711551322404846195863423085529012277032200734575127837030264766376772103624374719656922296318472851026823741750812208164197260082489409843364554390756221876856800970916355307414583733182250952599191112011818999516683996314589303665881765761615607824394847345229304789345749905145680966465534676269488430160875570206606212237304503069243997185285635902095367009968963985171813089369804690647177131378568222079391633243928255419808980528535169783621928381421643247696262003710303331936598517264345174641209153707851061494838719298371170525637819285670979388488479932129765957179334588259657016567883745346818831169528520916427856069533211577234945391244459764293085643127540713712541049513021976761076511659166422912247585780315867147613826107566120647071610715053054664185977658796220994256238306972391243251236047326925186371413350017269348088772314114401221235600477044288909644903331802089679786128746485634703477475183324897224354155520896081821788035659154992383958452249001722874007835482912928500513661392614498639036638034595879021757683209308287553843238154572568863355899523550963762741354118469015771150376953482113070130150120910033248218470556154201419189018707206842533488401094264011966120062400950761750115429284861752453513113743694051146112107343661531554613447958577833449766398411565180149585887457247508525853588502361686358754686413001660295783609226565591640621717010144576102773454462458123672925841358985860655419453101963431889703153633015793438760837146748389814992998763855482066048012595734303957004314772703911941077955748370632506080024903312203964349784398313325234359224093500396773789245241907817690222075573621180321769150043037305684949600145999047135199211631922046867019482388166904373648671092011023826314671710753489443465432491224677672064406268523322505902868337856968902466895390598430205536550716564776127516269727007693307621633013823488505624844212280847661829674258218949475377256161519663961469915842524638873252648544532507466586401569179704250037951472757546174376816369672669272687121230419703935035685776352217663447417135768753280173842706243253144907814772449917533423698390965084094668796411599129969288552136968953009918213231702362809358093162512628675409997483580751848917576049195006880536478355103718081385321131814153405799050739162477070985759905471961039541417127926668933784975631036645739172367182920587439054150285233869713814817175037007763503022894297351172379562330719200911294655581130454128657212498310828097238054720016658058920347479719311245926814733439884858923133332464921974286579919430000796230885034189556573049561898305897075958187845987475604656613539901541059175703689491662772123824390134004892147388345141945495880323101925811502528942362829331633197920968246827720281226260456862174607752672596074781976974056280617347522434677137666695007632213406228942478185760053727639250625427753552983526856083221759748689383818484182333219713437462085239950145709711138108623561131950836537978936967646899608874759493710381052071004872412891105924095441117047442382367073076571854279376540006744550350245676458654406501059633484651693893524869617833942092952554406445915081662247233772861680610742645235506024388409088897211756269185354901904038701233726268396503993447065803543800358284476259233682779504908186659961377918083647724427438114977182897201521346004627596505382230755361758744923198765458719599286659624516203994697413701652871964611316266750564335751736879911793102158990911883189249739280984585088360124188611165990921755454038286819482024651965298085530004597820592933557292114366901623344944730810485689333015867574237507274801452823394100281721384942806394426641104556360989928328432930030390283671167413562110540355187468142094318746876562247162986749596823074082419526460473137989748858919012025559332800299066927973680525516733359124646884148690253872633399648278058849067140096257745663660264675440122070057825348827486724110009015340184439831523449073049516131833901859390350906508039924006276363753387480508498296899081994106814921165883907341283622457915317813194775217863600945084942394156043236162928672974391673731839528962740755804278896717770713816209331257818072070010702082380355830273415300117373365636220170232519988565512553947208215520741407037094023049295989677234687533882732089041203431312357933819630971326940504287671177761394651170447625089814891175543880570528508502176970581323278490314645953425271747691077677076766805003026694509797796434546011514102230847109952582114370425471692955683618151356627186205796135262775785113384880025638784718828160999893126306683051506603293934774161341506113424371208809944876846631909389595024077778358483817414407485127502836826157211682470995285407305110436830851654289452531432288453625819965486055991501204003923299818499787455094046762463974803072422217192082512095476044620451584898422700888193114388573441317546337867239417274932820182006848468922529955121288817605366907345305654941885825985349643995880985760808900686137863697702274072491671346924518745969951484948511951524377063347039428216303565604940143334358108962709800165660109888671154172447396759060848205511509523824218628293368912904005081918124764078944870261396972086277763919124748429174955382213118086678441883230163455484421170564573086695721996592219131545457739826305256095119074762191319009923493464722038889447129814053718054559118984116357376442152525879465453353533146888087596748957783121659494785302261099547600763342172178720648723074718366467068737175509733990610940910552155891049617887893288601976839149082607472012789180702275540706688773589035670224010334533205890986874888738744240461092693993551356087217495925875206813861840767489416884832355960324794787146420952467694965396036414322764363116452017797599511555747529032132501802455619611955439976649662866858514340068655151618381896832657779672910831118848428204571911800670947342485431722432006928721640542678060965718515988763238095890013208516348724638940594862813735842752696623996812411675480839357529170306799366340564187110143359175905451082269039736316500861563202044387033456350940309307912987212301913913938381288598577495878557024339288907929946048669995280673794362988557718666955545644096221258187631463106775573471300249068649638407159938579360251196190424476531595372749711029335389242719655803199118394990955231267952475622450551847039131169183924808686298779756744190291165399789026211286576693967424534699373569222070082939280734953536076440204577896132392044804273847981929488550905463061819422022176216708899038514564889887382672202445381166692540018275335612540971709894370265116386644340766488849788572546418031845883982712871890061375211976710096180779550190146386776908822359840540169304986827390500585812710140960975740511465436883247417575697868009559244367374994404822169492658937749359884668302560954602022225002916692557322770716560574568057708819193842729906933594029606939987932580155450554888973747387439498238108695656926297069365419999180022749007626532675637734369325351203098729104001699093531792083113421311854770102840050384953906117012379753975460587837972735970198491721145922938181653368649583133631836387098113396535398067623059499106889961640895426496562757781982466722305032365666468358425210641047947494164872527910207213497748593211393292473356172259869150968450950074862947768095514235617656278205074521042022884688847968327333371015490903576265193441688024467462742316905112234184844456401241335500038277634711347181210864615612521988423214414170241222748335048322975818280431702501043935394328800159416522901212056365467216419768448273958861394304467479993614676884079910440544870123396857003107148116575773031587419014514564730969226867631127005989666009638143331849508798874052579095004323835336392529563132339396335630089951089548209673418293875374074562670212212176267759385150858241589653748973057002683120286990945715446561758524431086919446859923619270334223201830919507622796093252587429757953754815156210807494793612296280252086376280374399173902676765067600883497483657942745261203092111513494986666358237754896417480111954803583737783068970557218618704636153326003566542394711192983437362749416117590879789766629542688631897837846062673292721695311657642558019717213401083372937270625835021999375858436485380394865414731767201843857808734720324384573026886229785606731088975928737894320213223299212773252878914391498022959666180179435232253309704686241898934830457476774692106386851254184015687919724747221120453068403753505581024506696309990347167713858111955555353007348726164972610074181364058157150461661729242146865432564451839225287336174296507767718583555024049021480629539897658798264536756682420882507790139799512023188621588452464408086370181381704647881137771343233211596593878725666156635214368981333537494009912823460345255662719802756628836675880974896211998862472172048972948002998310308927171064800099718453174866378938327859159911482371387043169234218513342310875119021152702769988227318805590362578544379382982417950787611393328151409942907154921396517935705452806338583072760704681575602245310853512962041264346964301372230577515043120003487480209070346814973234017371386478804627440340073150238503641551117344729025856277946244089156338202569291259955823781541585724632546001139441499838781951072088178000757850540378810082497626046240050153066940131307795687025527140343479972057416095611928790231437546435143096761490744493258903589711516989820503858072222950693890639821898314139934308314043459317382011859848003586858811781988816140732171817937306316440237621833322091284001230596425156590265917938690534316704451489845308003772358669322071060565110497615233706041064306340400347205231420908429221333434222361474442777034862763651083436413250511444938065822805791071135291494236057230896095909505789502805939346827446498480600222684520042855043344410966547298409697213432945616017243250025020721047770372138790836674914928351105456206181249598359482462878225758373317135208679950184721070672347941557909005875399257419266082430913656311446872951344248141271262652884920796636474777018950795376077403247900501965474474767714638889815521344395236862146398917875742429426691903045311054696581609497824535970103937757092922255181003302621450490846535718986555115404972416185435884761122527092864071597371984599963200526848821167878485496821717583759963933933953682903007520447013680576717840308146735725213211390839132525447256577678391979597225861713692428835736642764773474626819932647503548774777852652287507973292505769991920459116562110008933839342823460107034204821324953264945655928565617721673423882028596990501732942321229511451209838391710304523954858620514775507357684901750106151963967402805762278341693061190295953833665011004425298445500915632133657636944454327369326039062388647054522685138771529717740150201247676231097960382022807754651788941183435658712769683292819288418783946628496299870852843094534514849088934479730663985166443158349268427770599827388738640714186898573939278334844667386951390158191976790217356180665678719329538416809619957512127145827550456065263820445738563503887679702104916117760355068769049308932651995057685640455297537939142155928531531014331263596182138116997121928375320734102356948119691099087467092921866180675640021493739488146445248922129694568253103914469646178213600948508204164832710463412320383180370266831789615963049712743388020913002547210627587496260792080795701607305450064896276627384375119948894029619295721448981070520914555918838112282164544634927369635478217087933665018694803498899771139734380695724458602286835491641885492581801242863146220554609863939883724402464990814348701595209733616085797233224903290203800852372736969837457560963251805369854831120433194508163264852576348442111020173470284830740707921861079524304115463782300610511846615446261744562696954706987787505787156395461478446900257714977344567354636286975228292916165647085913409630607496315687629339600886057390331115573289888510844203156992965927159828282684712179308588183681635785232495576525771471085085612899337995391047874584168568125926618847340350475056937702346765888020308292995722557474964996126801319967571585191371411748343086887561503129381046743322057682618405781561225267946428301648927534214808261579797384068090082246992029974341814325529055480109027218733317727763362773120966650243065607687324344450794787893334834126797744717498809429710829421164432775947374616821096905398913203085767907664583695271170345178138033110367510915708018902031014510024832655559335134798119621136941342274156071714508820291658462750702910964334227901076731280973606684911471442119151540436340830985055617898237165103926367885869510412555548757761357055943970231856977087683059823242345130812322329880692635768368332112890182356183531689836789086343157092141955017676277071326773666147025550295606541579319990432247132608399205679612651321300508009943131534762815231603553662930548627441617823928116510152010238810186280312478358734387172933376932659046817904102376933191328309735708041247137578751553566420270607537019626847764081909176731148079689231324964924928455610054983883910830046162036289102040800646292780158690283465714043088608457514596165423562181125353791992480330149615990569254118908675183297546439788583058563204204116918691949835500217158797537901489032104643992430354686926524510631533312873166555247984322329695406703154474055579283688130991759752649999874270705615692990475280977763451030993111787308498359228677647029797882925276787002267002781959572043774339601882601823036563852130038770150278474574406403840249116856329869109934458234673308332724078473005833196705504641881261289686086971172656240142484606535923928278291580605748899870446144773089813660968366041225276067456329880248378252969474396100448881063271500361360102560791602601953873487733100236031179290841194563407889845728540515694784287944836824310675236731971187227035206645757957089635227063456608090406513360411057662093672624360756671794528476164791040089153731518849701586034246221533503469259978969032727605388103992033591527076351452271464205333861555770460283508290504516910696818596316021560878166014456857432381949369066297680252955590521834170687665822163965080990675516399042823759640158543913904238569264217571963582929455272865145523333428156856316493626304349341137636295076979194248796956076081361914477158074027908984891548624705217771893113280865310893515479158445412150531940866992033417716443541963787661587950207456770176865063431594882285100778285020294084420530961602223224244360424944117577122461330601639745374756210784029946343116684608554859513079211754671281687565626075722802294864785001001563359606700617789593063544687378922981796145885924654965768542894264524694502299299631020706447030084741440193784261310678086668207014904786509145021035277111435704726123356628728095195834592121324910215892510732089829267140206365275125843060889428560195693171320754665299673648574951081316092113527758911146009345975105456730732668758312778510016530464704345603930237178812738110258948121209844620258642845907954604531733250883504777519510838093202991856946028535554203798887219802486343008318401872020032918267858675392796071471542555808882408170794255361938167291872545463255322616681082367719743111560633093016096330475586724587715876021452147379144061923840233516933104549610623328161211782481992841455564597086330031329867536743544999628798217037873195131044777450657671618663648680908562894720851896485776240571925610053706351145403201406932446096325558800644843326320419899729691267864774624766306636105964781701725828205247033907291312686647646147674107147477310514163465554756107052186714536014571578279033255611163909399103157663663547043133589947482990281072122689643880780892631402447923396956635726422348251304407247661832744559132177627202129178115195890315022323798986090853258562074315355933114360521076707383753470228603436150171471900324597031945587465200816382472632613667126536090069870663533796157669287037667599949134902388946800314151053944336842363203406087942531747925715332426417019369492915109506414248575942500777979216484983762886527778194496412958246734045128814715879652977445872714650695313389265195880064409184986441740830134118006094834092889980679388923582192391015297689560495089786471781002515949177654364893655184642807751763720551623054446466054280853569860125507465092452910970126322375340252019264403350474897612785800844837130157481748023793351379376486582661014794520793038134963853311536593604334733451982423832500607831913721181174506125560811188164956572038149650154337171410512717003109045662081268008781289773127348677460697597572305882644769939116204559790292201299405078585109475907691346869220311635123684823763799567872600853037194538891135754765470500592807929120859766718522768486640769344714393655548736361421809284715086228283504938404048937610426049528585269685875254544163028509931590397876548434860638117320344097203403457426630800300844262038772200228889556461023129806823109334472790678367463079727779379998102677631653237049558965971544403008639406317161089320552485199666788638744172650094493195873723710683739352129830660921878127448170701678566399508269822523228557774215196415856054932042141287314607910217808925514365596343332236016395537490231169743281324148023835063402595815834555084763419011979002919398886711917875281647263266527842356246325892155365201625236644549576237106976292974111598045242943525621929023590638867297078035999786900464237980930457458229134492461464077758666157909931138268680924853669461599913916341810069478915421869130057436320670754424453236532274440909181316945270395106038178986888649077912365036835616531712996830097382900437208303759369917811457443029166440333081574274498834301805705130058904635430490191720737563341301208025765873627602564959109424380882424444479348342487833029729582761924351211657773215391080400753339416856999532382311979245455004984610188152022891163782868246654837226910292430027663403201225047441323308933299588521090898143376242277579911007301253964942149251639712783038122113666281993182992453217183100986993503158357865193323001589092088259140123394680125852990255134611161973251952767669303406585431045607670357829380813596307383083102474892956699780045534701164573723676368826641641796084520828583637437296167239881688479386253285949244365023579867475635058615016381984515890702929866458554354273435171280589597539241188649804399200693359469360914410389983170388139832125743815359626994279240034806400607068862756036718545631700663357199352361470912926410315225618403275788738664616698930397774112661891471870708873718286147774673624665257504462485925404318088994363633936992401379423269093859898803706497847654267817025093171477903858513180831288417179009116718907411603615370209814351067558306963429652776408118291020217284534329239250938240412031547147588852698175110807191974898107794478904360144084408178424036358508183620496560441993717355156868575298661321991095070240190165279348404733658296673306394821001789124588960281651768488822714530545115393652279798315167218238103812815875993185499572843286342970478061694364255776501726767006661102214402313046158975382828350406069487120406042257490634622679098931872583561321868792394620357628250055643329030662368549088523118225951118099319070112208403500827778467098574053687180061554365414160609892796838708149363833077160020121408616946895919948548988534651836821401851878937307060235382535135035161160302559197481795498928354727738652601621651138058169549427852792284259825545768640218386831936420572130860702722018688673636563499782416393068692777562085314007143750556503276247896473507712067327275818846795516137556824084128686658047107080965632436974879898756719983780951706396778585627451897650454226263558125097523150143067229375666659969892521787128675311635904190228557601379242822672612765032901145770305167687367707762929952787025107469783762324987897795493957155426818793753065271359768662659481479449093424554480004243970481924013832703044828004315484687072574078244121257552876150482253350130133396672213958872690713177397331885666450289233983548451414919981856409746104131863937775803960549500473251552976348192947948607988103161669706687939284950149217528247735611845536761275358037506505493774749739314996767161976600705517651710381157502102336488084661554667889829654367774556482224926062383780983647474423965780729587184201941731174912828845740534925883171472702533577343089751487002771760691600308497632018361861609847969525808354618292748541469601132488691039774126002447018745317201075047800559341094198463899331838685296925120595753981492331505649328727209496002571715530125137878132267099073727155430629932315192908988766025070996368135496040789434765169030563028868264672708803282584902069607025888025291728564256206735590681173020063869746250416834099606492499272588549074164692994403643159931509738171474633256653035724109694637940952291612703336367341887251048534888727778859273602971685279916425361291415512642117647865052208484085787512939062987645829633102514919773043259474879683389051858493259732315207533516273911115451775379735948685167363603604251619102517909810155016220099103272246290990027980170164800408971162199046828384796732125099932404964189115007889661244957588596635690075777750081538218442817943883052483683480230133107568354806443135580810361219158008365706434897984269581498230561724298124409408147785444969712199772305799659561854970349279074462367405417731106007928343739707325845630142351324367999302518277820152918901802100611702480836177036436024410732752818511786783685144039906339458442787855727883786358227267457760358108643210828888962189607873123785921123971865731460261448186791674826234546571455805007707601034938562900773666647399909185406078704372977312149497975201919978312921430038866339432770331166876511457914070457221738951569666238170456169709557779187691669036270159702203483217172617586485365699182511027332923497746353574760408436705754722433623780481823208793648117884635714542689121471291325147499037508286529211383883625422927491660900929141308601178452592712363921322955220782467034043889852865015370061551512837874113610486640723579768068885774132329145860530767239438224326674131466216451716750850840225850597223564585235300137839807093335152191778411599698187808485579833287909319854096610686666032034864493490039946022780885540677985061437018723279125640482442414734625864244254640974133273759320193493422766212898585951967111938139623936010826703035194447440602709892467557063635465206682193573746102470540306610055371937085647292840953875135869971414120487879728486764791800328952484889143213891661906399015482746703511807923423563700266428182169142395157102694483499339082312116300630855618811706307448338175201121304214196563385452907910039038381887913946563233712200091362141845829894357378922140625051853430907517075291912886203612823395698020138626662903181860022888784425250364564738097825806015542964833037560055724811022569623293593895393065410640890036137055205489898514941637600205332918778729157187879155723133571018241544158459804184567610754157389960872713670379875892772894218159555820710825185297663747303249624287997269260488879209739944287399868778930068225578891550161215686585696118400578972052099644501234372922001191548272800018114962750970833232999053575928525340626231055908721238721126837240249098101582896496873591168840424497100844666342299477465809724089050756422418737105445659493109105530070893149633941197856809982412990892084687179112036895848246658587448086414402891630416321525349423127023570233171038877448591180022851947375418322821581323747369824607714124047466983508530288962761284159377034575420021632445784890145799551371602125846480362086609995048042115747200496881579547115225541028688213507467882235278290586617465241741092925924379501322299618617438634251113788316350165639536236620952714317092671985681893125478586232297390957344172175304892635842148943216681226482991026931111683377427510507370360203160301692888534843956924606820755826108818317604583186606483897872885406391587558699036852228922509991305859388812313257940296583908082967928619310070182178301415615325081377402041680596795233985717397078645566190132371256780448443053902765416267189228530967593260304629029380167821946899525314329675469893204983963551300786601596213341015021850143759232932409906908701865603443897194674433297759946046633112678680724606139601041224397896308184209640699779569151414611854494718914812550963995315141253816845063353364693449784471873000648736235706325114794717309551986566925729651116838315344389095590519236504251356247099593444949726875998189119420812393296859091641306692922945114883557197898148489411229458587025875107258545982236497869453334626024626657045498868847814170861673973093760325912751171387429887121598851462578426684786501842654056500764179490214853941336168647358696343882502469619258408168468268048084472162131464094180802126837750948125631257407924799313557468040278350830039145606641357150823831150554042738327438136873154758620407917652320888408355190355066742781592640033475753377935854934513687484594946782645195561678662303146798740949465533986144647620151495017438351462821394438424726245439918310165816071241051001805352294814505252093397735484204181643576392676503152342761552451014250715515378679497048269601680274915826201823114697152452183508119569518550093691681977528390217488661813307269981851585019464390692558041973105524567878969626082658710290258499548727246229578983431185057960606451684306088942540573485384976563262082552357183457311706771261180129861324880915517667558817567472410418068903356403801673250083901790699588563988643875592967745232831327049028503824059622720429213147617491859445607599279844316479196965631179240908703882026791671343731897191699916954709170927434701420847646172758286856743846163773500356866805827452329804208685856306726425181991391383266229730816788240566834286506011196009124018267348539893240373962491345938030197853922855292472106911445737610890508435619632899937462535020604363677949084062238924820359222976814322253692252138214293874847629713223423444305674036159635763327740678672121474708582198028756953286272934920169344573033527284638843311917976771993347720900411811007809763127228853347891699729547327022779062625058290793509732692881923294288334430868480048872718483974334930451555812821680203126722724697520158109881551073643693630332362582578706300649649744963339960681276793210688716851900884697164652756533372566388837254063593228391474790998272104814374209293718653420029379314591670222532815465179875526526833567429573035450966728378175230804091365204534723806750631312888841717728131822054417888943830597882553837330432560814735724183074160115629327547143434226371537354192935425246081579543134951520282610221477336132586428394492258403687479860812090792870185391750385852790984608526836569635893706623293087915955395808854031907368380897672584089717652612104266570756021902207476879938431022955765359870451420932017360475349529296168869793193758936122107624749075797911400721804409576544450400897744596728938727221558502289732294959684420942639527336025831716212885930155866275066342383722167647131521691680283059744470530297246780937845139047720993122584664415262515789351443944403552066748522015141887504952155442580407251990531138876379122265242741851186351651969540261122404031216077885523429144942726225941183593780766419383531951115268872616541018996678441040685897218614342534348792360340423752065847812847482415338563335551128803483042551637993886823202928789592872328220440705607850545104044698544822057759168787678370336153458083643936213012064660098850640890093134397267027309207153926026488636739286404047712236328662357016814566409946986351761068909957899238419378133303109361730624607437742160882046680557944676662798815659350935855756708047280177235307290994366491784028283610147215546764234875717888519071783329582357580834389402058537115162296954909483607561892473008970060658015007910211601649093512318216168662223328913109690247099695772983537755304295354160395046170576772391670722044595669798531708134074153004662552861363198529966910744842497159887819033080171687274895379590250853124561163017067613038324509838023256298821540902892283032375851841184385741773436123666204299283581642667752951509659594038556820720199491206536833890297311879214643897665951649326985403042254850980225718766463834404713337698342204510867505248930540481287768227634022429991819919731818312133043365713109799765492219681188553579056377586876360437250043509560782314708803674221608563068540628868693604844962797835555820798738092258264995952288749798438376526517123975810627232898302662672284571788173659504927445526004904752670493706512992787185033652731678058435415604006572057458243857008599631225007726425545193482800863412980220369690432123192511510434421055973733940770946776522549635658045058736665715242840916953229559240572724017986519853102518209846274481947039839005237216825949040835407206115638628434069828650364818437881994028493473347465867115621273615949528073302422686830756226227075359486796841083691333828062800729254505099438485771285873917013148955251860189456632488629479666450713559789138197169200038213590945169733184754855540477851537851416493470966823761312420909874716300872128730374191489186460325756227644509599385860570195943733667619843948413678303922957603406251506301318884673993606772504960766088964212949773664055457394734123386603503639470952371191138898463967364209632719501043629415957954285341806103392692931865076534053518109273535600251943099091895167233374420299893589254443265331434138732854683868009873666091318991068210700572675887794749130607231426789214834163863782424546215341817178535568855314709350722312465163377298332163810400968820660429159389504062788664284291836375155307594270352056866740289700874426979516294513239533964895625399979136536251316949098675527453245370896119827689645885241769580667477671499078458728751888652734554778543061972383941962635825723794352083075077862310750459047321863408669497908535338502689209491054355371353865892468940822211661263924220138803087591679707886775577788587285410434952506435897973891149959225826107770603472137407751039271396448465037627522805112696680012590017655513676702399412202870914262063744455016594376392332116698049784338435751587939760004939507452983649991126800849416758753842921901857195787514096413739745970921033235796610139315761038092299748513346059819907616876407926808216308074013838871862391623220375775833879875631865417564970555548847646746549106305422297147550429581819403852237585579980386772547846944720769138269047377340203948448478188412283003453373630480222147883812337969998157925602374863999920618237435196053220436288469942032577105925452253004966639537815475339400675341781495924359293171915462758209700495627948960907749254630418431689297810652433275577799365086596125777006326249010244768409819268426602768314808613152283476342196674473582632291155657218788347236874976647820820785582715955191853472627240708299927379012429532010877379754814323122266802112671367685587452561686875233273321466896939294392726979035904435309736639998747210651664211533706148739968414586011018873906836070084385949382737384858579722010770226926331128268630929334245184853651086841921535644694351682148821506979441440099068238233164785939633464950252130602971533988416718346965283219594318102327385411908715835208653090975793599963556275216111010784823338247806399611540490983585034705552271140016921226762314748979025786543875519189135728433243958545494159167510202302790349755269033785927559237296964902155174105867871669692415688023615684340896629531119018717539306246706455141634184164832856166537368816082765719407575858227593031147042753085551341063428533647612839625451395907543991028990790911478634796834809104987136955754415095857877363001449553047263474294054763535038724892860230498487142029049190470828729157185869901810391274619567912209116563566270773544212179791529080749502564970616955355495156770073425535009348844588497612894561584732847301903071099481752741361239912437148639491503654911410140905059445392685978122834597873714083850607167102099381292304451816326841476354006823204999214648782048321383493233594341466647506063664204626078047124621551805613610444322349135338644967168636878313365284859756130946759016427101224426604976805783854630278065510864724914595637946199350570860686370405972500515501914475880159621270957673964540159479468722911772106313404584732074263256327708600941388847000703492981477467478562735004417414946176703125181261276366318077155935012202032339438276367273957483428275114341210054763823198360075596154105748731665424522891170342043442539240032026091432979634165819421626407121071849260222821173962792683221082215835853954406150309295124928981176938021739500149258433710574562096796108760040855915073065490901025501878830243050309005829162499104842768194364933248004565594635985484816560365876328123485093749737877375851610337530652307659415273157188564317853298381010130559753285855874121945352435590074214235432784759219074196323527479466728700460507230951830696626136138239193622274647192785162436481069959717120376897868028189575930878693233088176960297928579506405607593212888441216407817362056837574799685514465558831749978766971631846319835531853926051901936364292462361242001188220797865907751140993595189446393706798467859511678263988082613261001963964744499904728952368310081141090794098001344898936592661308926730866445891396499247644534532171015391908871621757567170824482750768083312077720064403883222470287310200250890369858943680652898528202836445051551919375560425318301997231969115699679030079766793162475558126993795610816952676247725448806051210625684279170297153064799100623428891768162136339791000355255034259713649509721643920765004061989899925014718516513245665576663966599353675115165814996305987969141325115514746378107927746664301108903066350160427433768433287618425515946277793974494254124142122449117898151190846605071423093827181465589658564881577022553851867544516068164969942881795374476847196615186536273875398694942274423640560936777499083153802326679806286905991531656365541125803525408255849057119669946440843552933434857942072103652885271612616899645567135910972562029502676105738237172602926998373694522047763819158711190730268737699610889961645971672334998636136132228118446810549550320307336262262925106896321956683799865492472987894984591657173862136666421082851189221897981904180560477939202102519826903475517779086092385130895728789949664399061702422358653111703261364026264507081551805601009075374470988557430356878917296041912249127038455450188784062905278731967511516753458765333080217130498406081083631478247036636616775982731635985026195182946614445450507139031909874663984676077993169514018864941133888775653352571623591320344467923427243852964556629657033195118330216354446714964179369051934682719024871914998943786227088725552968848530926992381211422882948439491483655502147785769954113567841162195060140780321434102848431490876548772623342254722632772508555440544212342364708815002498151895941834096018039391815644060080030789579092241973675571562637135962822626921145602265472179781741254010290576105144339301825219362609987158342356718654841784622873460341343135708984745175513776969340596265345130853658986363796658261914317729334218220025296990101790839176573589172176916651194508653232295698396084277983321412652885573429274219628774787583651378262412196727709606091612359438088646410240139183683503371246089041752801480586453417012779094762214136144733208709899468088413089299170281094383079468462814546911073380014749107584541896795501424337473735920909489813389326145131018468387343341465625944030527780522143662421174542667267672181264339944436497928833572922423695853964276076444888801395492942966937624458389806531390012767449636491148265482443632738528667077451247537721264760233377329561675731201544952497303483289041858990309457383017953044572435007001031152459968080083622847127018116123090594401632489627311606245822243110183628737923522531335276543188945326020534558557286972267161196680096105678617242914719122281548135018169357488546833440573645127050627057095827463135602704906706385583021080497231627142265299889251799897481628650779975151461635498229869493652898492940935452468540494153497976121197847129540725435949413491585568515238513183516354338629046400086568365971244997197936866416853963816348987200118516563485192228414849583851260246568697656622604786294010741954820591324152334202209651330149838893895561123889115122193928064234424440057570177876802269926639422965907949782106945659093638711832512566611480493014100924714949579753584194678461954742143465916074426888414031174734727903131850237504276905285269892884085393302596503084440500879056666243819019389594621785590855877770345285121579744575717198013876004664385304489448107584467180170129367369240310126835526155959813860671285303921517062544995037375862176508115607249182554109149562067703000298406133575168454006800112001909335751721181454234862933052787141336969584991730072800128382003284961837191098237506444376088829236426579651965571183424775793589577061962740167754322897278840013857446652661077133338022405909638406362607562811510906416478115091888233559247754058280790191111576994891195224124484941462123566281860362850225780065067617907394350134527134514772497576166098511102449135518701682058692999802493005649058477557646355253191951489068947338940460156254720395646170654724898406352809273707723060791356917018027098400908552761047372781695749092082114216807758771670448739439430022251812235388687047418968772678297303251047084260364369905553116391510474752890154889250675121901847409568591370456370899218270161812976313034284292747610869228415134438833576226044504809658167607798383813432616757890452860060315153320168513537933810513087002644448434914785038053627634461579056275317445158789859772020157495897617814120834887009066367210320621867879302250190497571571544544172193340055904554126206500136689116645828670609109924274120867836716751847810263588984814634879631351450477341379899683416369854872790515198097930248042306205812528916177439396571404959435566685538582858597156073329670636095659727826772734808083791266611694218627335503188420965505094952749585433058386228711784585289922510559641717588796181297499317775714996005041983550511378246673276097716170411648535449692031644313414384693009826236780722933181241625881776840993471113065400905749775718788181652151227194834203580995024981594142190310135222763088252410644002694438362273531039826315005487045315945392733400978991550836416591994331363211371536103661708741919205337924449152300715654144507246627850302535115155870377149353096535352168256833402962672698905275786731253105575444910431667842685737552602413470107936929537400859645250611769692997266715114464469649096538646507426675550447417787536939582131204019462403670483133481980636443719367315179036952379280310424885610489121548266689938662053857216078062057476339972928211464020424822138104463161670924267207412806954760258551529192609547216675731025198735112532236071086319034676485623990635502223931742350737058480081180751772567843303559145091223044770169480132672921501922146761776101467027054783769382789347606555859410576528794407339555428295456524163861879793372850644368121788397711388058077715604280786253458495255452439810119072312405031176926665292515522265296957544623306402662082923334852352509725957856833515765343857253503213966743375097382229910565762528235167043855374401322732346617741931746256204067347696226821815907568727207104958452020168416767073916339722211799838400765665989771246730780818322521006877229304594157063224400429035937930378834268348222069789986452233243045743198952162119944921454923545112815220079259151033385042698687292269260845760283716980147099377425202256010092802228563103783721980297931704003228626678388196907220739664074234829232506971998552249000977341614056728371737064613238201661632933829233984764582621040845043151019570471754836211337139205042392355250552944506018673425278267562289504571361710010914444126190947844105906666756147563234768677325836337627999917325756146042392870542456429057394462104123548778654932305333335188513838746019777012910803154457237534584220017854517162446627700612566855313274661321928366822442439879261152113880965447249606582411621005137034498932778077255573214502647954227538256561493487555250025233017744984175428742171030795704973574184410401129297669441200807308884325653577509939670377993197001039408944572152118717612644410825455368044404203441237428734564447015067259158091524430045787771130123124375126630542589396854840211546157235439711109885841211652519796693673882670679125065447982179173516489410691875249813128617508241240439831282629941777353813869693958319290052880071445622111542011536390617665945864326378444420190847566702831406156702907308997721511383822682086599620237258314966603079373917652879432818001706541613654406367991872101739320362241700951190494127306862283728936491236288569790577739825317459343782589726312430116213146907183764303608903108795288160387585725052585300540570435734474646764902767293148411635408439573807877852440002757641362377518939184325040327457044894333963936786247323860953762561501150628934447026640824481284308748303045010701169380312890636509522177596464768981355000696812059347671157115666636552038686073329990478940886629555681864670221384485619411311718262456601024348549059597211007683112076627360362291343282349037281305343547212801986947892062639980462188836879322837904515187602900089037715050024488128496319434496521099676744324913389133159888321058160655054544273600435947868307349336598985021730611617970101254604442576854120692356257241873901123986950797116248481601933342424345038118921953600484792169417796503367495350191249880328965133506012868004905596916866504075409508934462027699709386824115094592451130446927713822758692469096665670184093044014345858825676436608159481530520266065967831149242786582496185474646834595013649896016522928596117797656601699881623573946056074019777037818437563959664483502041976978209222136251006193635339112395128274977304489416001505175464201949459019833708179508434082558821881399995250817794732947295717755095432600048296617902308388936491543601614747974578202954982774018225297514781528701874690874955104016951496589881667440378585269270103109482788190164922282813710924095675699066598209842531404361816011699182425120855982422351371245015963716967163365474406449513734610190109078398402014344809954006907626792735653412180403324627206309859629936116809686653819894964886070988156798509203359211283770652410308340093660717863385065667700628647384995076412638929423888391208989296883774927839175713807128687640320514331575842061639542865867151969784879825378661968059234025194408742745966490095525493067656855651829091093065790947941002683922851305683948817347762315744147278913565030170130753758610936486871395264487128123592600278899110824929781766045562858511741164012549350753167876870232692854648785452920823695820655713994504970227554842077853260546385021499085708516092302793883924881641898675908722450487928568762206718398678177085386023777395918539206139058452277310751346609158639973456524680241966656577256518165428077168010851536098262438401805981230530711913777379375197635072064811571538909179128960297971668961016001766443040706009748705403399700681965765826943485607794134216844963013218280197753601204752853752976208508452856421443955123598150595938538856918791175839787757327731790284058874383077925979228622318034606549093204523854727044205005778423709129602799183421482535073586993623780930954657082045882457306271434199320427455622875837934446105732065331052218389029140915940987920852066439268703390385474186420531672930359822802061342554069828055334236014624675006826974870512688913816498480500210732813027282213484400784447330370833976324958382179151196023888310882617777827690177844647217729663341698565955284664521741575965292179428433437866422437563748496795172252411888892181489109784862401626256609741275415963031592278548689797092659535228563536298387930049060583436184690894387511041654334138412440332385024448721882169287161704887936695293017474862755243162566751577301937104619826612743357462077812278524945510591140311696666147575560256238937629611414294181137152739713556855295607407719067405219382433766882988828617626599875745027248666373812099716358589836290675664080925922152431655340844149255442721264983967920218210700077989930923211364812822400359792650284162529947119894013365778590969454197308777047414785098618549443893389225234161983915734262304658537911201265103145071208652050627023854362526952914472240407550312967740860463881048696410499444081428540139475288981056717099403411945764550104211682115469259464679225628359172965586206627876524725868183031634084384409003906551080653058363552306405117030718424138634620775904016314964252157287592481312882010497606587993064403096790423623799210905653176454891418984869969579891535217472289840311723633787832572562387492516862754796542803515220009577751712444963112361960930196186739098519136813430226176839400661415380937794734567507133019966521477315811201646342242931863750834455025516192229763140920605416999405496973239632316240168532741561917126004781778900804507710978810019998245144141830192995769974534189979819704224627675128245956200865841514914130381951896327611332196088525371957164017184563234450953526076994026693355155845420893116413121099615077783529172129732973361637470971885942748681334593061814423710287243604263532862746168691738730946019254275367823263952494330149510236249547210212159397578932907942356388652688551719823926792918113491206840290898825343837728158999724826432153972338132682999431040938819004019511619835209594292079393502955813433507714418833946314072618141640529322736078373722770239075640871115871876564001666768385587035116716052050578523413606539460652533755328030127339689920477665491605691863533076970041164547236769278627985402764691544768251322109484913924980359964430652814626829344973783187731431587180822197020371325154206904854166929175083717667489053126827931752073928200274834168662358403411232021962933326418519498053511719222465270238367261582905244870341248229235878629574677604374433916713834946527601854436486381983249791091614388326315980636381666418890758099472246653374293513816289018853913251921912460395250329821049416720333952722367694275381187289385988072707570829036594062319680518348626138287162094447534170814298854975480419525095476567490688894058123186138456543035394857818889746371686061378600001101877954625631887163300227293274046731001080979095962452137406569037450833058880745793497356008009970420007324029604054049245877843177129570522854626194496649133569006641003885511352923762065720378033053487597185874838985029300910432966741535744713826483567791951176746046571835757168175270238917564954461748560187396589049654532694781739686136074511122207693585260322885833541764534161598319059908909879780357623371913929536558642930074104019628679517244596727511721280460801335238155276612603835229151861517142264011837406964409753732387954179261920500192081201141999994370593244097611755990264184625267325675854856471808713055206797040460373228186967676759533872639281001161009144371107130485859677019792240732274784901054473718678600330406881327807886812704817141366393835397768665273989466150110566244427892076910459911875385520715979249029737673536812668865563418793367288316131386967242295586326741088594058251978251367077147865334277414119556690160911993502680768323199147455716424244956054441483215040802241538436064707784301591571448241969039316695842258174748661649575735201266879930466924981054567958790894662027394415066633461711154290733482069832264729693944716323579569559345057655778416384884752438314778191073894762419408996355490354953578004213990178046739386405859442917735460069754494270866044887223034562237714807418250608647455503632072094173703030742488538879446306806545618838787386883818807388555049393593315833796552957606243987330306356590757029104463482539071065718467154406913323385243391689745241334140571048034216880565450971860426932158957790769637825553592879851059725628604197994988539435980143550214855307379556647102116976923435054135890361070680743851401978552005453076918926824364326575378805410233820054675183005276598512051597331412051643992170842718488871658500410573060570834347298953714207380750430947615342800795500197397497927341696081387984286907807239803827121904963040965176719240541243513666396271919345394700593065384967539149522589412166290583412248685576855840373465695255568312643826739652193244198656821536247084877130499583108172968424307166928827109260744451351273837762492901962502679497720968593012803972724668062720664275745005422745883194068678350041313896682528006657535620509210516893076895817329407908337224480929642406360257839767515833095301363940899195379286154239399928410694444495642140973315623813060768408909867598734358572952068686659684092674744265709166581598328076090738528024507324632605445190242516946203425211207710708719194268502795335741986125682759864729680655412339228113818145493556246933446811254440481001185268922237178158607014804328267577173474483911155400743257228411607648817268800829947901017619127498798883816777132722358883267220194690009068750353714631866506637957109603235750002172671829002911435353222584699996001743841874738473735127810946878815223580049396039624843924199297182334575829369235539360510363016688373330797862879710820012565320566672356036405073462896499499803997482862582434658616396573899790641371445269587126394678494625522010588777419920167130637000991448216678598252920048618843494942170710580690464905954737000976677693528694662486449956913712977352304665837440519935100023704079260725277873975736471720939212229168344992848758000153827788146777208358764397770628428911154490805534303811480497847588504111873074471744722827996312950900939120606372850762998755217722555277697895131149988367074266643499832890445312964389775330117764951333004266735421755458546801326228299576036149646341017079489554731124277444708598918008989254359925900511041152887704594669541789203673339578019904457245792776792341823268211562444117702621124183166911578304353179998081888939482590717883473485323011617388946841038505526187161270220485027504419795422953593415950223345422768670875553967241401376184727102627950302875997045498872824150920495941154852439264639493795048674646577105960540747970624793135040212687132773309625072021508994895934381099867836526519160056164420696908073281989917768698714204823308815290690407443181303814860970113570224143584385099824261379886462390362609711824286844042329427266851684230569287725006606850938866421964847141229825179304147222568766102544102515811767501386308359620041556072668166215515350196202012351048088243012150195280789132465106402557335634415316794661803929142140428745875721907399431869930031497450761675160767089176103286388207161613760298442064500885259689780887422931046716363668448859069420019639974081499833727278652871186770502656326997730669903174877879178168724552728151043773851573374492391250746713280696963381240440982176406896266920877852255751164835319634907762613219088777141541288731894432813126887456079180820328823849175653937161549805032061151806693718060402961296300693424633682113258019628574972294084588014354688279362506005189117079474104050437991688301366015972271740600431719533268055743574108036633233943415295356870406255126882693557739265595144396047696496513797319630777702702851996862264564527175300858831645328722655750382361389275092580669635716598407997389000684222338365672518614320725660592766542796995523519280790701775733968261096983134273934692107208421867655860065278694455138595841969829933032474213447607599137357305714737596510084871168755757808306341112897003203548097692789997516855116588159789940089984238167839533417050356621538297334570085622680752897139144102852009329986900117420645263539731168338191107004958086401148035917245980708388258597958682978636687950087072608054026384808696367316916246567195730852729960782954129308122506734703248855317845726039900717863562232194370314489276569507118585556800989603245145103003614895333993842331362477878476027968348074899108658634060854924360707498079802377664985254566746311330569099293821086367270682132049267121794428392602760090358540886042969368178172451584302150075746329041382790149515554327221319839946057630879352476776044793947830590564562711949582167988878974238267501571452911406707663069222269290968531123931611734946125428329662990571553175357485996277803729484366151761266206484613138479302379767609282249846547584016296851079638602745882887106209940728295087977291709802447897598934013788239087192966563710590399705643209744152388722517759611147068594028801000406672459415609725767622852498096970849610190789542048084077809073259777406202408789979164252385192171323989000558450033740661966830773790705573893616473755801768485615226192754311832684893566192155736771755841158631651861191567025939635395517301439837762075757522696816101012990301844746432149054437592909885551436844806082818771948483746915628093336198185733044420411708960125905616106304903138881233882158331467928005297745377003780321277747509049903769053045105882903626477411256070005232159852124870223884194636034506589489624975277577412107608276250809399315517651844764093924102156533778400786679886743379243889301723852137320887631120128469705139111246403004772291147240511647701523765931303999499684990000182765929433378192649147952354444268940123441026407054184039816952603074606078236313865596417652620437790538517859417583372140514527056681575994359915890339605245328094500918923157494062246537698460624836222718216113661220267182082777105930503619166025179512131544716057802057219536686315887628377855139584677704920961266665628530776706008057524209569569479951270054998287517513349745553393586937713088843512391993431988258755330267231736405412247310543210247869741792199507722048863603048541636613745217908634165975430886419443819740176535048118935205278275837000443169892308102644628461023545313014540548296446370648205536583931408153079179558041534931041121069884921456904146172854154111805497440705982638795915907452211801369146442964095043829764329412458245083009791906476172971099015561834655154174545785644618514802251090838103794438530477640495887925128619344402541291114085319989456828986663346648633994301685379504816660074960751705324910163619913992916666795239207545299308695049516169571829165617849944240940463086052386009629915935658209565432220697500607532586620351213048643765884841242067178217007972429890490660066315578054098586519294213629006323148940591800016989657196209560708391581743366693235616819217486521080427703901726645961905266918870997453020040222153019550655185765297832431654762857909868618127823923093424887224489285511763691551664783560750220285383729787438794450074477395045490527448347444826335862155859785594868141942841505839424105067880184979842652327957505822327012340241792686278261649671422594272333196001086431553435049878717629794546689350327053871968241795009446487037175556372551587035823020817012450892407466550183830303965461014398398372499512881526288309936450459734219179583885322978396655564738027764034167231430577576454318709692765610665197273203218471389833599431955471535518761512750825274851155543363647626179525447277215524378356378358972274608338208554498683506892914881419851036098864068456504440325524248693988728054407131662782402054074444296449209617220806380239366981805494467238484694745335735151136579379693827402845971029432825879686225610562102397879888259282076998760261361298791121539543392479374913210569637504100673702406972139307950766961598397736782035956250601185875629802926851753514754034151567294283865914374173549853909680509002183387777479671240844024384533708861605875752363821224280587194094825335155955838448947381662038110810320972889704492930620296589214422852590320101950581379498627776154838696863862191439501931333304411493704987760046058054354077556757046867165269535850903974614167095500846431433293974901087463015464735569309585057151005266395316687469169318067514113134918730829050756119056428349179491108246971822232632278925645055806129305723205077702453105282673504991430344138544891848694754025666564791292739677701100085549434314812887726806671646078361001238566213806712029734454285245759459007625423023417490466714085758055671348039474186951275593808907808890682315379483954643937139350220450877368229453061522660252642009751043934758496268023822691526761650440113807423483560723673834911795814670300733582514764710464790967420380039416846806547718094667280277065958521077706981568865138911386623796370642856858711965058026156116771836797524116584364896038352247126632755614945254873979407710005451489030405009548269108161707969139871880645103316511772887086412795295779086586845103483809211109843118312003478530171505228413188627840862620289221527718266510854539267294802881622119190288268224682923927725329285273620325977617754188842044713411236514312683314902742898494232319085335331378007376438101119464407834556528414325378879247849359667896215667154387073756758262112156159713510897960983100752128479389559913927301152554627386767846101551555254652494994541631650734082120987605212167022537820216612099476839883032774103421840188947445251006135907965720873650306108879768501148575958677507644894283598883307397792296537968391737074928444162053805977907750520367204961623494722587024835395041647642098305859445307408162059104112725732132088012502473943024097226936769690939951522632409076326531711411098377555608466176936243788942449944432676058089467783336151712190555519670717005856909912082915485025258836898917785264937809876480216530726756484108302275007729027156806985234987818878819259985496444754152464720938355371827523619682272829690571819518739688549013545704180130074495299498599169281095991849789346748042205813758128243370937673442466677347749736865521209088019037220750046623328934139828529502496475592041536452626420500345014385886469041619925956868746661494120383534115048589870463170972884223086507571990345612072256124859906106612585441629661781451469914192920797315941151626573527129727800443451865077908975136811579794073748488516362090976311069392587119239357229098326387058804509214135116831440544883182942704328453741747728557908264935235917986073641753089355516210901895327252354650283854630680223408282832107169975734441584022632126048241184968551230737070524077338082324544014767594702170335806089736532176769913245809611696783193787004427134465973250123856583647875082619026532457120861618061743010578017949820478841484083584790581930642939623837290202972911387735424305081786391779754936471139711574208540289009145119764056224634424173024881608464423711884462489911859203346242342004858572472337184469489528511398120105000279807311252727351483579993579076473778933057626675161587600918059726101449101572504255807745001727207632632113967537654463211465834886735275436995271868461133269149559309214907788937182269298967445830062116063550262241743302645259409147889218563803909357248233469333909349971499694159591444938693566241398503613075142180243393331820495570477465887341509604861144829106669549331113311719309698700991010683581672464117914154854592299687312833171648970735098251377596673437953358549274585949478789459041197735592315244246319889000279853884374730668073691397990940817274390777753093664486437448112029296704901502736383188431327382743390826549480810338734542278263241549572421531089445857542057805812457183056999259326774476858845718213237015641220253535328837461590742024255193107583180238849919568545277322121156076241890771620781506641661581182238165690970978314311354286813785406394711928237233139295225108887129420495331936468343425352512688171611294692054868014575000852463874882337500037904809157896606981401385754878647612348650068451533466438045472337831102093407186838891025838129628060056581868506910621097998646527689106832154734218134203645274508690885060451721541807452462235994158004617536951862827021180985302033041484533364555294006610898198564502446926937608855638756402730830076106818863905068489392870674215772410245840271791334814661409270739599781434963725667062123075470553337650564094036722590986577678446407135153522894150382111755535562452099691188493119815002202541106950996130067081252996009449403263231352619785173743750101334859362620446997682596201153873532294442884662699305754900165534221076590570392230331760768497788032652212382178832118418109853381247520623474445736474079798516071945858991966673223061994923289272191990254467968132746299166954494106590600919021190394060762210494691178776917043704608351438032869250297430200020272894989796048580230374577906318457503467548907434160825123856577570698294610357896268289378701052174421972058748924299489650762912158823192780300221940486884811054767476151882195943800172491239094077067905587038330456118817018925693116099925502718452944084866409761757780109584413885325890997367354485979929160898300442123220429934189993565353869441016457858882174587892996148055883044008685145582292099076365424588600780894955064115123529485012372985656698078911565388114881503258921743180026491453066038599927625735012328464813300056652255618912248503961947734492104520596860830927654020049510951365204563837512510538167111303298093191502960480352828088327355872295522562567601872686639161911488489330364024691730685874261075371109069753866510426667174878715614577880798206131385097202853258459318702871508035851564643105042672965761505946682366383018150169354495887689780901593324269437908431987631945741459867228210661377814056036865237939892762438486782888825605359158180555642931097557946581664864194551574510708456938560219240094520035432688896515078953805453723280640959645040852267836016968899236773730334640558659081223667936810929529679182065449952006215852219958520598414848113554854932323572560262613063918523209402555789039238074839659342379813512730574916118948048510529347421904740629803763416174561240896687889455792777740893442991848114557272784085553592993171242306334905305687793689553088192541819704077840446843248758144981496979123857804212853081525164521501436186456676459253077452715865906714087243858876627526966813200751174212237416543196772070298774496602953493407514239650407085624966171832666392254062279825763219092657776814724657500426556376988235552238425671262142289046858278212346886522228875734875538467874484646368298784422968403292079288979358354984561161479207845517970491958654058283727792718984049088729927523810561523001875761482124122076346648549113395897129169434847398808797818272211101139997612436749243971325209669450873388525183666130447085038274921654852827898962109583517646455861507239668655026230032731321788560761665150175603852775849958178814145396793179925117410206995319741198307334678482750637013276613332373975327331832483851630759575015926949461868828737690285954344743903762382406245950654047626231265026770404590840829485116069185191188034646059373559672231070053073805655528623710645463358358498087305591214624506422364247665977277119637298303364524872004215304411385036207160336449495922098782691834290035093629385653580400789381523549638065860630686510760444926722747949902635345739613467898299713435151125828633894741127486094547363459839588762780927766650222198777315171173524497553952878606508693699463893627682830969418099064747617573971992809391517118738961532677062371667996463528457179564047485399341347522768296124442405234145215633944895956812788234945519337921429084508627819639296444369676657936279737518875282844267575367778141625141302841665655974162913241644197190392854355158210096696438208387729244382178788630008115053850175955240609926860433756673619364054474546981306311940031090127155205635648474901263921870599629642168283378011006079665091081504937316375238277979365490750236619552415339868603311741079006419517751008548882182386450667166196532221308820495665600635634508647426110294049435839819759804434760396894967240606537585605767308029320690665595679730512841978760757915656222042722057878337159627551132126150518617225579408838533029570628168255304944446069895718018879999297903972005106176683462206943139879096794754829080089164689537123259322105208062590944579287919255673507919501924217076576769476184129753853241149565881180426642260316989167391225096906009683778211764785968268774460187976948331763228885000217770887988287175323665571311887368495674881534794681298951227623965658877631882729089453921714150930500155136926084983833983600197827818763766758221792368067890184472154345331622320115723942386678072182555042408822352253251219279160090249970279509945017101145595539175524210081248103211049524100885440374033816534263110824584619727545721259484762717225296050862141123740905376990885990831382373977932238380119198771780824424643554526884094008548397582551712980929346896267030803919841602978432549526160666944309697996616302464553021015543627294492496280036727791623355556181847359334968855182146852712019534987608097419176263618437535245656582403186462482542710750786953960645015404808974428351379800066010302284064755546542795104441728583930806433589561928975451950890582167548250261284688132536137614670545060595929420159520642409384658195561860020286171416472965595219199359278884270381519459751792639948898861408043744682126064827657908399671156964721985674864174193167811440874059037837328720690001301836782653820450033012581268088852778419387134026839814375397486494021268021359023574806329845643579709502837661413112828817079552312330355501698202506639303001660110390545598651290971464030230864996598717238241278695858423976559657370884673536267233792019139888328901365855440396740318158246330416966209720420338242808533516360622020373088530099845726039763856054685108304119003401730907587656931742326699631659732851826813621862837532178990555142695998565563712497936549822602046285192765432849553951033306490231206333938219553299731356093767028978238958380418741078646662772379330357514458634510363706761703885402277258113945604783529524416236758255334035135198134645130444080302181432489505066938822911321341486684749369567405939243275266329965616956009726961878599573086243459249409104419232365964936585541518892958591902804014634143384678740069042952967345358419698071974419352045469808274247664251680702168316061361350298133165344940760344926801073021886466238335349072168674135665456399334194330157546449811203599577380731912164326732395140897820353858235407371025284269386024385902326647439866434541282962356066127717259306240162501687966514686185455822044284840282418747505578908978843538785828064008191724031959900606774489174434764428114175245657419604723679746700285329039486446860169641344456213534784115192872817334578561352046928166426733223915017434361314167302936137477790199693094120556412353434191460533317883700343468744602311238320374954205442667887130339542544582278312457929484930171571019312359259426112134876396723765553070010633596495459185818660823117653173346082351848664416855856805240406709857287646306716066813229996696840341594196089591236680217715848647879210749775647166614505667977396938863882422610442512302516795640941140587075546924264524197626449034675348810024169343828650298644953686074639291423312017136331911889058161541816122926274427917277368380093958655478877111859872414677981521267581889678195064968009574871503130381565688145363425364837165068788814105022195629888013507996920204557480228873246771908204005996968148136429030573010430023840801981237590820507442427478987270565395001971565055823790969163941687876746594813302730871801987834231551719345150341122516352593795607072241222473924652393510367079204389436869028349453936796150017586449260428046058072389018267557226393860051771461967627027349816482555345251924667531424473462481725517780752630170373649925568668189110782188206363627310552910838166433839846340195606222203817159902719033612817258742938383014110329019352619141938284061309671659069856453555098095514863404034651863900163686926665575388912217678199981137059141059165947115279624567623843799839220213812171723483709845508426898116055718998542675064703834413314290687065541235291508895254590637523931636980122575587039463822766962334907744011797920588836788944355482109426806948190913451131142501216324350173230113227583117658929660829789697568876598576146544065397480401428873043624777709966762650504832236748791791701556588064276711773503502039459449273765763102223622643680808177422445172631422150316164617040773843543238365459891594460340660918113975627880126073499271222490527000463077541062912252262963979119780260055897607446845429707863439766980476588114532120092570841059128210836291510740442347085486094053305614641825136653644289395326566157136503706270358729429552177617169799166931063056750609882136859621097065945545467847545746238712664336377242064175037940672989061342893189859883688198892110372966662230272343503184896470464189469841213422851698669380061747477555327545973013979832496107707713462205840498848183009087979859530687400985257446282780466385456593315555655239364505904203335597623813532455626044509137978787200499276273367336455299200109373173559901258466754100444752184444416380091771323909609956418336049521938262040973217563535671358145712199393152126330457709273604779319705153578702067379952065633524630319558573745654192342596878368157457317691125711427165590569300330030207201256768546105682629225091909448012812325363179974663760834160213142543985515190367057176335881862268640927894615158338155482504454699401796009054731579989613427851785005874543645384278343889879354328271162901511369689254074231511515754971593571806009849949662650529759119090406338406841318008201020488459974584656887755107055177520177894803722595546362632409583161559156728982929849878800802393682963318553756722157178969947064365100033340887546389245700067641003949436242661857822904887477629469826618637175985775041349721329778334637838902848536843461967209013927348569979348713964081480250131063711575487190965619825405015990853262293372734636710010874783433136032034494851859482475325837563315240752830902531432294077155924459792667055623498123827016676276394003623453846222401223315663117527433283038292692854467510492701357237626962484373460855821611409088567036932763086619079858200596057595753373794560652630718618468483474098550402112695101715201590105548198349477961155404308780698414756068938700978840966609944824585990076068307024490720201619412181797218185069603785904117762336606104388855025982572238632805913619762709753715109067016208231214982364656702077620859942734422226140207833331773392705979568885698001688423879424467794920042243070465552410592298248455622743848192119162800915064931803004009593892651570874846528551880712440894530903194422683699880884106934132637211311304642114632890182969340433106089520628846869252208124309258663977226363388690431108164398836629752594259593051722065318204138323891431397693259535338206157651274045108360421234463762133865116212202815791298053330245457186365164284225634552742281282231261341652580679774818681455657185611780804757203552423187768011474665707149160244756339838371302523054489696072848652723424984529913116651589406173369334009405367432727758970632783280280686548582979410592431277991725970515264900299189366240048350322869038586802359792896156822558098741174255644239244139182856779371321049140930263438611239952646528875266526321272270857393446420934935800941630130485619227852818275982164307269234359197885358848581144425568418880808913478369026868286965723069255955090162526913371120523701133528897693278439987708702134628039093380340930804152636223161217685501135774716759383046367231342796047312481593750625894630592085728088093151986762482136262473898572916711737720272302960394254606170458882253439025663273802196484712590135256122570187489543404787354435111325256540688217291995822805258535445962932908174243350956674794161537421954211322747957769953075708877169651478929237734683471421127430607291850926046693616918394624558257140440307629142103183650893378935806341890449467134162570614555700689461068039093990635938405556569214996894533437170100814883113875176878885897447138642083895418614468793122482084892842085261661354924970111251480316799660775337263240424958135798899080136644099260157572301489456165984267033253889930936961745924328322643018995924164244522759269026085503221834352665831776721045336426317470163929725954281340053384134505514943284549157131481960423525172851516756864038294859777377784440127232685025786086351894160001291431763659435164150876220171042114016552064896427412800984465538840482943459417962381813116456100164091449023858825444053782487657755280106765801151413111940814007677146478148760989633678505891455050675826135760663568335744071301203558514632138621673644659824785356098062728409836029419830933962742608173597729880722567310802435365521087401252497095590166081276480756033677680912625249185803925436081140233237020413415492850032803271355210010551265400740542287050817996529618251158153846629720231447753639114649347561150760471224201278044184829710139166927025184407175040772587310995739093118930735169794143612172990274039789735202970400669913269580428331093070266889554132891867100651268417868082568942229445960355929364786365923750755107874245715030890610389111697899641748590262905331813518547505899992281571645563216974883167214851601057568997671321151873993190968533524006449692799412191305023537037738023801140122721404262925476816753939309576927729898819262597109756419703609326183175993475361906945652407556077257001633823095308183870353538282580913252710885097452142118046014441281785064576008919853278441376784831674287657678945929425255788979180047751799959994889562657706738379961646580061085951245194792055318840769596721259610290462125354646524443950457004067922972507198486000236366140565943527649070554921116955728346906133988979792544096559031646876941307884731061602617018972690930328349332824701027816581768783281757737432556451369794180951581232635915347809280428885162252882425215171561039732504076697861705467168297107201204989935309665824525518374592104054427370970515641982437798242581916306823934881737046388139088235135404719831145372374448941172784524485828893423991695659453402696174593442045180796228926613342779339823355498657615908408761402517104099213556467072068392414883820944840046667085744432644469332206108481917588977268524953537429643941393613372781467102871955683335557399157121592236711690484938043255591947866700738090892668395227985541617091578568094643979544163556674052231837814441412065032994427003578124954033295497423681343958327857849240390285711477011609119310425392466963474679312424701214185077081495210195192346902085324702641040999707955295797788629167387253010366545026852529870493483183275093158600445086033524410877848924649322098130137790705218906766162985011194169819505691918806756544826140470054438412524492060058068064230981457761822684211907569527559494920486254798491412524463717505422894836580235450986030660325827489941334086414343061016815362954710520040346569395632723812786723440995321774559283392710838528708327686909146495914065185772842702297590781697591540361758367110055012877945858409578333038303882461488732035550860592180804786013971627083507416862333701390567499220680217633449665741583127419224007062630661182897207092679885177518758848836345079947001691211095836052936853630830176014903384882338123492487811301150714262561318628702943737489722651119440487137426413321347707196379925210016701389485964542522336137892008815978743721048007609875875742531052294861381332568511006234543959956741333325254161729888938712644095863394374573274084185316271693429095429343273511510002984691721167233889547795204963626946252707125396562388285858929158036121970505957378300068337322495474349632417505989826206986354162661409837764802358940144787993041429972923941305391142787734951925000708162175767054643852912602868967371155773718713205742507914092884186306679695644068505938155677800506844228299001261346627284451174850235186084258438381434047858745484355518901269063136177550290468867364768079347708428029581599089274111097742576421956188846009535364884359939797013993314162796602007289733748252299474587757904891812547803215308734759181389502829803483454478012009677731916843236805089157884548569197294926236321864106538037131755081415597144464382083209791641491372928697523359879222023440176677213794809286061438136215757631854190817129236916033809955353133444684545020282699632618814152071447575002963023214056091295759662330569054210667539284002986417593107823391722450054450130762274634985361103153471713525038369902797340210884773051604600454554163128304337355275441066081239476931567674072388409413373903746170825579333075296946667621377446909711318778577307225768045808438022271323679220267651321895966338038671470977051063815603266294195090609537062523623143632667312169215698916072081756876116177902724475555277799970592613302204006133913620569393434731274768628832278496351939561293900274392844226721099371067193168832531864404447881578123572833380762262625536941750787275539648872317408387011267608374639896552754174935437068082642849747583230604238583415643064082042869951892151507115214213214758345114066981457216596818399726042473939731555228218490318978271697838012137123516945916148341828314829008736343413872560534429512012528033708879584190928137578928416912152133008925773074440849365275913355718973328749889672779183624626875472149340828762086526425946525948434468197871868222044476118800700694904220098478226791472688723480732732198755797571766628917922279407960474450943149510603182150752468406989790861748551715824382712141816541149700985872777381140549566786525300225817402352114957278654032313132456176485083778230633655527679023951116379307755979097847661549608549544294422390887612089691681489347781659198668506737105811958787915763033383634187518028826883920216348596239499386709254673949064162100238781711883404739835856562339229397462418845718106195318640038751917817319663593759792837705240008177897413717829328023946199694110223083046973399250059342705021252649728707162891706869300824593184556171416570117019342814135309559023976577236409912287836894328515785439541258080646500443410650807742236661467282831407259035149328511841470523026342223824016085789607390735224625537619162409359783358181693837123999909516482544369425429029187715379982843763694805095085590447638118157623614508630414548281396194963853833944250857779342558522246913518163358823442571482759468902610332645492174311874195359522301086615304865416832391764758584821093052562847237853970992364121866239623322503542314083723748527603083743905650770957926931339782942853353255991887989326426793314203386292479063455450141170585837202729169880643178265665112011658626876946507735746101318646763631776499958680981367630452901859905488125330826442761832019107554469977692866069756379086049315620855845946949906299466933655603326495201472334417812287444318701809726185041582519963983135365618842782396678114093839495118186368526595476946319407063386513464103013041857238036542724694063232257723481289035169523008781425514978137533946737075141306269635308584739061409751427951565413457420540967639555296420816863984887783224257364272501279485718122529602173106641767386776095492097230606849286505940179740611733654292807735986978628490722190985906894617098572005534337131804116707726290225406597049230023677529342223282082566099526516195032243887277131214348007943721310726098441522111066244415812182044364810245591249342647389256263015734981746246156224625310117054844128424465168159971533103957810629136157727773879883335765183862120243242560874474122824329905161748022873330744516840713958827451420590089785744972370762549603831848138394497715733299356243085267895504257502280269015944766776748405638959711492932800693111313694533661030423078106550059631591282180174690803968911756169549557389761958562192106159458642028144964714629068979551236352401860726790684580559373088574589400901779629567821221105544515398290968410968892650517345412355915170669840870717623308259478952674931840202164998435493096660327249767116716381020091461115585014024755854114635441748555834190772750334974493219460038677539244456089840595881801626542506706845026021357225827257476000668615637062695724680596821615636912541716055698075392699757781951786262894474215473726296929696352372265269173613621601077756014979192430308065671308316665723880359039234031857653764128588430521561988736620835633307511897497400457139477066467958711149788722267075964653440167036403723485137492511666491588600242339576285369432952875710797567858521461280777881521872977474964345874732937002610071602522787414027131824713539294926427919753205697324557942019308884898069251370489154062147056086767052612520864899889913724500671412435773435898238134576668151107854144499304873538601158764758152496537925945604556922552717484537788085812084640174325012073699149111603069221001295305250633028034001698129315403981650248418773436150909347949724594989069994804815477459546402037041402527237438587080244807419908885233300123970202305817054797070117972321824978027447332552309129288143047525306697061680625216528834674183363523201189157481297337681225096540114492378160323213211168619287374599668438720554314311397960055138420335258599347902264071409937716062132811435246611663838589450841274484401488738079104528810897247918042174960648971816619797497423614568373140458828405679277181107589653396309261734919740230059207684600547211543166409546373019963707155448848282894230715067481765378875416206364836053230106620143685540218157140853262120392924632525878744668221416536008052261432408845511681616568768181235210827767917858773706172073590348189596349965085647898125716007241968879697638615387325649421664896688080439280220187236753367506779679131847790335383141113760300517311752778368937826205007021795957045890389027140404445303659015173265783383152024438673517191652317783762565822167648825726190383416285254697753112925395235151451511217957632053048576434633018065303633564726790432606091994549736479891089919613747488962733805108976724747499241803688170674588470475338497016956903587834504950528009312154238098886984048143292611529501665700302746077212019429396670047367135965708013245513766191055729799417999662845167795154309906813980657262386707431461795209261633200112963072825283138461529566309892740365322823859214350164980099710336400166463889031000190128168585771421222650007647871643767212228300676313784094621422838743394521918682832269309120759959673577228092785860217594402303370486147022206448669010169392648747624845805685775713955526164955713947391425843533858340600567506144985751242941251743375761786764755290113764307934819523993562497064007808838182202365154287823899088562359668588043427104995013969793208716054489205148490305435120331551572655718308328055846595150726890486666239178515535292594211546053945739924698652852441865499063097169097868803803863854492991482579475352763846398360167162911942225817683037657025733921696712228652955617110082095105039118746638714852724643498989269907557962505199124914723095669553547835768445644124229818669175635933324298620925792927389424804047965265947797140193797114891654304349386908069782201520343649066775416670356165630434450119599005330118590134768745474869395833529282991070618821646416664716934517310000710363684055438805247918186002970971304148483869507062501098954689872252680706065116502404599172632956998055499827907579245109602122954372121447273390653094656377124693688935306988002910090973435501617059557606283711006105307851985282435631781367454794165648682905331174867077553307665414181747436149706484007590680152599107422020457796003956718986464494244368624342716140105722317183685596366947029323888523420918625393596692372022004982737849568307371355260099999468146500570925148525102636471037052064956382571994338161628246731897307872865167484508043878442469767279818899829166078922483533204940368531434602277444778930780479406372551532724979773478642076910883695948942370052154579255009084662861673675402549334640127723942674696339419355926996484540463716764745039530919804879368102900011132700436348831971010819657773284234980652948654970607965929820584904295149954130045622640941946977056462157265531338196957025552063005577800593911189805306372202791353865148053366880239012996394562173257603143998426275516116047770927825192894228913628485135869148082746554012451733685779355083099942619799683465354973120938583458179399419653307572067287014812902477686959655471001978117039137110672896036837357558735785624452659359482332042796001974531023469843179375940488443959092828940538391747266793193948621019672883891359973391931637507958656306523863785304769816630855037670359036017677059491587431526995706189162737746299932478572235161790375520668630293815053074254966864903954225250057886469787167375744346945915496774820207211260987918386814507889077480324331720512144146180246906685895076667028550403540077659487019826291170040623233673719667877051818361738381204401869300149093402511448849545803584656141965084563012583455055323428080795011469592905671946141048611863384801918512636658616027500671660506288187302608729098940778996948534530722636948324646002692158542578054663205040050473890099343830405689439041936006557057141151585702914485521172480967745079968250086778135078257784202997815623007433828081140470707242274405589032405269450061642262152582674411448951544611575479835940897159158880694854352918515447170034624029798426579085858072065871759815309476448643363444766142018865863975652627924858499788928560220128804101041256198673936352510876748549656451087835733184069097894329947338499595216568442635476208267235525851201923186366928407305214976048686305578558222181376146709966336010079774235325032049193865390379024711634495242229887688052441868940824785621353574046469027966518053870540832669653331005953908088941081679243882250991121984917520178485029767585268615046505664712016530572910966911453292583348713580061282253070740205069182888216716900595201347539247165924268355068121568997010676357211982214771380364950702802580066915564980849919888658286706660509681069910463090342819543716596411733740700589680790798057917840599218369060194098938177201337352754150826596720896567933359538184069957690677552053556160053528797049352642244084189217749825625208033095418585774267111707370556038129464967151104865832769686431031231725237655953044730532183920249628228866579817074968965337437104110789620346949188031508619815765695209911860621607850530615137888214557749199202185412119820490236561845659760488292752691128581586517394084844683479449536303955169971160606626462472520031195321611027207250854118729429261213789653706580786876287909742396043731458949187328426226446157240783162443764127593920094255237267245803104998064922553013013623831114593216442262631851607251857935666008312804436050734812402714911902437263641286754878800310919914654102850552962641297946067597042567230477951189340871217617755809813965111788316912209538527443563024339141941593694931642441985418675800280029933947045627009850173032877466904791679913613599689533516945873442925990805569709662626562814627523132130871129840631378258531683310616074669667925389064766524455572989102495044411796658958639788816069320937129049720812608448506943080287736407890070935139109565357025032686729006703081190738427572425918141378403839127617484323694610788605884341597480712074802149769404639317852554182144023464638013024677240700766037908468569694992804941860657972526716303057474619053167142375857461518843099971571756932052988007484582664442696117971218374252057109189401605341641628189142884901373922551379956827108121911272583083338885070437736436361299494457195536698842878727880785328547876689867485199482139197933348029350333455718641620016135351421647335876150429601495277237693821363596704950264764304063612972532979905600893938250552059099693694859276943631432693465562632783787619027902115454634787971680862057585811636593341813630338731697130970171722529293204080323724417453621840634202539367169192314920370700915287214377315960275600789272870452647751233212524922212350947609240344728408714625261546508817857455631634693908112313972258079821858767462157599022920674603365572258044227657171783494426353821028930166243582709795576753780533317056530692702448840441530733286660303964584078697830335788666650916058618206576724249724354627665318231760032117258872792750184761769759043783264860191023394370136596347737975298911875526103973242943058941497904721015259413288258246840499785367769123394716145931354237705757274125843804635510318785350165599338590561546831414951528625493832378027350193237723846353946811187676724395303024408965034654722042673462223207216488459511839382252245503877273570695449647039609035015750303794751550536262851700937557444361127761560620401235003231582545623676297736091113683225161446251148436464388699637254812228701189100306426449289017395539274493809109066206757378673709887247867018072412566867614509192696120905999430938926984153093801287834756647630154216386170106959135029155484023419919036782665335317412026616174889593996366619150719429974930560189070357697616363299744462731748686110518601893731174572371033045505703000400382675735520878229185041317345015786317025175926196239543446645369125258839267470640614975729163253760618201052277423154487627003909704413421115095952861270594399082845731020359066858534098280840397248240867410224638351164280132032366644150878823016483142207207928909137114117516493293709918749620988146882431606697865157474337105027086165125341172509750162561633252393800763840275108771842611161077898689840053282434184533878507472446462126828064255859093192839239829709887883407809046103799373635623768904066904308884749998570050066831381111396149295645275367545422545127342512553179353704569487620816782307821240907338037803061471122126304227425412430192139046926668904344797249564324240438903918390510759156852335518800664261504591212339372859553367637283208275370169153259739323255587546313453940323945487864104811802195181825743787467778525459166442454870344170914191159881891951896809277122319916864491452523417469824361066236103615527225949594173927801589246483341969167253161434502763916908183837010439654513147755039070571346815194735166988962699280966708528860198135379899819321954051987616587408465753272492576355495518935852624752466765727324789308934534966773466312222175181803058567385428669389334208138996265896659007024297089764985586634119437674194192949106545219508862003704312934286084888687664409414060754441951857399386210776251764543398050446484883079747283813237529199875472464747987444240683173909396475999545769934985792802797859789407727363866323539699331516332776372726285909717585415062438960478667206577438514873310547991320414900889405923834581616755064629842709354818704708994105965993009769570682970545547946703172867806493377348630009898410161932154956608110157443455606572992736230815563669639726653578130812909938555049263132201250109353109197372578042835581545489984051058765306740473973185113603761818786239639783133812862888170345145263651843986715679152683219294910217528313347069941099109736510277008209395098826800070378052314997947749014245147876443776648385077524986068262788325536201446306364668831383602787188588839710508977863683660237056823890979529904193962891813133181626142005283818769480780057516964957928455578257157050870694409962535345183468032248550540399348384600069672705487982339212960486008738686759538780050279335063136294041603607104269906054546350992611917840177944167759667978168126087425407189688520131154540608472112816199834225836792344359908442888722800512465242709098938387842472245501462498793555876713335604068394618244210381280187769956745268941228223513485930679031806663829079927179901973085736765447731720063384460381090307100613669534118084463263090867377398846745298474997473239892094587837854269725412781215016987173540953412136401757279038573371348912829718767965225050073871595745252478018943891358796841146289929665287737391181667627682062693142540528805952557190730464728396927391188078967875721686900687710550720049127413347344453172480376726160919326679700139099786926338376578172510097604787451949389185800602432710646286316558006907635959514415125264547975354642393823210900659983274390140582981017827096324409127884563872860913578545645858300985505365846776805458970307387060953011294318794964954671296515528536810097393506856373816722267759034679841059501978795216547514566921782852522460995110015180464893255976409907970999991521490735920515552061567518531894623173872148984612051134403575094317571314417832494183535108946996649177356326553279712149170775200635372843837643684532772414589337153290179226237992072803750195214668042012965166848831897804532142175453368513244271827697636342494529646382119033763756100278472596579643463817767475781605047590858511493937867909643840434096811866033896913544624085251459078818222444540525314823761217057936300692532513953331485872267371394370499920547429209297039945404102127531737469371026000239657176569443864348655679360335127504284098175753970046480892837207612657476720433822581297600500080182440103657751513846023200828005917877906998322311411250413917828732015315388041334131607917785294676655269348018403269799399690568943623094908662447280422834507022454950156551821894773222243543723048630530816090697285418591644506741536463605174929713227558722224858196430315605983484826332795529072125420137494406895882392877240566759683477499745856716997423179699845886307149102408452213021288323520466523222518438112724861988718795700675977217567532500318935348113130244691566779607030126972521904349106923860287235967306520968383793744981331348867750679916578952955679526446422553410278500062976367148784552469609842029458832036231780298172161180341820366551564173910093468309474497674556929132932712477120278730609797585936196984686245951554834798985435137860573030846607398639482500624351569883028150335069289740744652206173203348799041747388884540404419681518721266595130693711128782636784282724599337696876800537132032241200461509773813293292159212504002117118839263291588376156976074261490690553454986053335855229414496841325364313995396783853613514731886812487838090107692620859370815309525465274374915862075700508701577367906968915967989934654471382156887420345780407596697041697385162527686200966146941942435964229922098442165807853555472319721034516154667821891705894437096502492797076181966205338922730138903982632943507833026476775908255559636512268680096957031857604192040972390865387928754693747644368509460134398510691842059408536253429322362748147750674548460882381620155928056832716172885772835216727600375784754686206301083754987482120180847223145641805593680855429257597880082781434771457376615367232799956558208647165930968115612914692048468240627868144616499569606178569811060246262985409606931454564323392474282786744778612213268796084849561550799526314576973096173382069022827274531140363076015078651508893104839750790540229574055061172770492301096686800987704345699760814913660413292207093140175479831480902935041250491400394132479399294614899075438894228426471662265160379673919530160692355672399912847427770140494677102682809765351247259545593373747061549720258123187648772837635058878711637344912759414155307134606590475532447050043213683025862068952431178804438297824360105439797244182711925342633247221919078385778484440962389093163619149582274993431591561674480149977113567078818186428786084618830840430346888772715385333370724676685953955629208603006791372210749994405681058547379150217988300313124374515625081949860909754883280328792704238789279954180009984086521728226916382435801068699942774679036122757763776299227404657551549402782797639415538822299386340457800974237860373958023214377880503512451559431487260995936156776845441146421343946887637253094571065429294233012904830257452228656231536900248637987424431675331672926928732210149071772015755750969626130035357085388219985901431304147552715066132738864824517506490391364013903907696039069400201500423838460771011684042579775493352316684116469775526182495099757043968275838249803940914271895082010449593380246696042246704225376907372211843204263532990205645373016756185997631266936075961766042465373309843854962812441689023737970793692327635547201128763152687781675038789407464537849227991287729491624804495963463257740586022131043973178944072040123929649520109859832556591218782713742085378896225645493676039346994614959020831598652692002141815374867384077342677938078107191717105792880317376230561258507979693354195140279706689487887055146270440871731618217231515631095034841543668548492063958203543329638612321723847301665736974427783449416846615353313638282748944140592249539382672026511900491594682841072078210622238750925874846773517459873589072140511267497739196914395656942911092474260435194971828721600168137725720544314007818249064033664707258368062551666677683870269457681752983136925887517907068093466237648931249562115602783446450106298770770245341081548416115903195140000777768652319893383956665494849936053612140867074528284953612717946080419089718802814258491045976398118063827306735534283775680237390010720927605744884965046170644448011876391910489719609706391529537115999225738062009808162053033798655270643230568355352469769703509102476752114503125805872221654124808382894196370105341754193441047228625312912000053068684673979207237982403031458924898448917182014935550599821605546965258077384848644465791832735167484697134179143329929244943267455322612895614498005627603664301494211324818845612529899469497690558267695375478907551571921732640723970346099260280734319117719246011043255085637335381091825213259359867249550299297536457567841424872084891616451740052421528525091695646886653505262639675364306334870024286657194083950128482016798471263051052877774139194682799040355911140948413723803568393288916542059812109226163945142786893213143116320910876399480657292581425613960310651210498987309398838463328366778907924757333427108195551339889826021332831725669892569239621214195707426822809404622749352037867084572051018177280245589783748572447713994731889872072745737093458043325234460938807658453974900439040805213352907662667872479225130232105038930060730026034733231855568029782955032368902011443841195292974963325294388877656873837184757739417454048302296590608066001338405667999308302147839855957570732855625518230660029076262867086148224053638784726292310137331588813519536884791739041520199475709027894697569948276671232504336873219656912730055061523268025491546943396004425726556119571435587985554465593304195845974308860069980650933506666399568656997912868137646874995686955578759092236008512719542345416894452383871615055205737964319652696300937825131980061384986129307274799400279655030831381931438138682553362365724994472643062445617879100351473829638005700904970386779754722379108780593082714950341562420463610513385191017434946497533015042560725469795642800042367838617755508784739922151030316465627813842359923602789180328249957066737779209591574716969011004764978736894961086513505949892852297570302097132952518009899398435540480107743328672539310249074217641869442946755773520882448337956030492842892168404777387495787289167062045381656929840065787676141987267862881862561348350478642736838711771800119529338166634330861023176919103062405939247065985477840332773661638683492979306698309390981160645693123676013703397256438993499608596709402995064254319508039420606631484772733539809644221701165215565167607328249503492405517393926319347915125077148357158965942445300550018727078392541560178150924140489250373353538307805848592738139637613594106925674158354677210831033690350763567617503280062287961278338239402597137449888826373911448444567202966674646020297897864361173609007016682531362547129115919129689786200937184049396579492803035347002109285525771367433092596671790898079628560662029553429942307822783833610182649614981623812517457791078527577940090177657047856577692829748086688457167780787573833532627775626808504892586244772381932849821963652905981552630715436145965831243393001925307207478473619838822696073747385968634986535137134793426487988973828118447759103673682201635674781624735324844666515920682200134208354540185535850085101117482565925906932746936602468959346051674484135604558420638175139947778770374553702880832410972492487736719547719520405740370700884057004006285387639239936288623617998164612457996393371359529750051388049464803332193965731207125981167510848132533794058475947329528466879093534101219202497692178609557608737054726652237271064584253167205626682163753005637994700801373921329570401520404738792193364383038600208719458152892607461740882715524766356967912305267873950068827246549525627682907629798758213894944037170828952462612742566393099859802483659876845987213703068989827619500328292091641407099315451615544775745906733973231368115987834610640684050254141423755501324569262829093045206834806310442843769750635634006865693066776901651340219816545668221472120898809811774183520747576200536655890931292561082044105664639325116592387343233024931395220546024626265051282592670301681401871106985189163506240601039324901568921330055520905867168452809729237106422009300682344654165061766478888369465018150705866220546736939460382721770419774706712441739572684643775150038106846541440923583657629015861565399942917011953470499498921126947623583328397471862488106257213753731732658163450856840145342373992386861829255418712082839042668873679401574717875067009884510104712726123171388902878923404390370714758986463437339814623097563880276843623945729618958627543049049276482862205157504804963875208970725028183568492340815046400280264993420424062442057032712591643696351922134236231455082894277883394656469983245356601089782586383556211315820991659324254300548193788053868628035533529706957478124161252912274976238087651914842038753568611746573936554749679666129532074896512336943401204605784432273489126519753318455338549069095216950209263199122720584423027746524871906984845959922252982574946204679828365578294695967652443098794117621782091875342941484490032063930590765020872557200826634542701614002899595873254080373110327277486431187590349299026958694334274205649563075791338248344089047943434668422996876972809661568491358123675902351041759995789358506641397880368389216115964808652463671579656181062272894837216924585413423778184485024594328688640301189248332077404095787749436352110139252461583823882023154793965650191975404209577174229291833023533644053992945143414088780732993429153917250972070282512858795521803470711617302807134406821379762417715564566555862910760444070651709836249023702455799013541839553303269106229023765238452252185572135255293074807040922323035122470824896275531735512699793532976101957163263526779816670596885340287760066777195681032916114804731469227616078684184826205963965778661701087117085476599524022153596322772144389635041417148174169819011587472613209286271679978975809929063357384011453567323992576555214470092138475079569476242654144899589242004048905619615125216695404372782095656195732648618594137461729449133821928314255840162305585053701434556222707780000584184014612868247453275443633989316510922735561494933778706555535713298391102163253072072032979810169313826715865917172264717564818217308619532360608120258932857831902268138076814837272878490271047304650499321816079977361745125599097523877288128916568576158798810453167714309469278784113374693282164264983370232468765234525104639832410208535744893515697081900821014519242872757406249517788441529797593310829755499458264185645312007379476333681720509150190806938125324889999402562698164463219397236427569213736182336049083132610656849209421028075865407786458381363789202849315595189200496984657351655878815552981714929188216598424969448597750406657156839945691448771280798673202294129645323244329623277509025260036654627570739285698571195272419691019074433706800319718808533163657721201551230817202522259038943513911593127718244185672068716062172911112435277514689402409655072623999921085423993701474966276868453760810478935862495897148316597930771942674167935006862691965393705170677965777567094496003320451262985064305741891908020623374870847444458322691575544480392724219842738008859360960280948037616852295574474619233839674455489501349108384951486315632984715538984467105920113631557875140314371941429167698307737638474037616457876071836073957872118912530310537916225156477036411078373860162293906215575200740176590081593009532864232677078546695933176926421724249117992329106087005847694568897099982908099894178177621089558664078443853935990972371672391619744488015318895578667919143263982302816010333278216557074206322158264787771286556172841591746909929937958503880301717819514003895114529300319341982751861642349691318694365842119386765571787917599895468023435467480600552526422480750363497793417764718827670406770141253387635548757536047714657584109092955447216578647655442720995836228414487978541065492597219199449776704372627738219598412690160034814401111209367454333805302726936455634816592914905290229841438122924830645046049548953548810703879401724608687203262401078282321312213882825960336711327022294593712552820122502620089166942187105790870245997453292230453761468793943232888183176721032925741424700935508213590828830187356966391782305260361457444486959299341235076150128323742553410724761353721494875654599357114027730435409419482700571518605186184725993572291298366977369726306432103755791045356541913300558095913919197001438197986847500828359043757987953632274021520129246824286760630743359028042790868249930771863398467408316326460852397960778860473071623801856167520358178434397717917863786638771165637374621535853991978809449140372791803695686054176132328559734972053117164080643730015104700777311079999493436646242556003935977419564388691548970485731883485978214554813767164194285452187237753064266287474816140387797236589876661309594447965978610404499436513216586825861147982783327767010653004130774520089393654225307255179612323374193697724158354386726051471656087225151335085406062280272827981731368109406966354608648661174275575057939180134819451590952506547386464902596707773904215467544187425180190620805504267586117675489905952691472991547482295473760031355847815263834995073111155230097070612151964870889707282423300014735960911938296588406263342605748642322281733796797465409054294313135132015241197113521205589693311980994083123263542195069311655300581795944501934394600924220485951166608232892084654533740683186031159866092479879260131475809820154556218684757847486125538173972032702565833141719226177247938631331458884644894515625207123659547211676470424143902545826086035718482388354407398289532096334222796668628189820870014811311534957261116136993062950284961722525426711004405039857088517798895857279504838056393071227625172339595434156114526691843640155818369727872614269564703949099139518601788867211441566771037377807206646402112812710403688832833807442434989535288405803501862167846501223351666880021614054285734162561945784232280043858950150774947984311845637798637336351967027206867105620742030931761508345829890413156745465272943996869924409493595360498916275646526990982990233437112770534420857282639214298759815605568987599339503416331659424638547379636816997310207968675094024869977351975739619051340037924277438564776774920292556845824816394382837019504387507173480120285720543796142533321590464265923937660741122333558237930481498717211151347916598331790887790911601546360107153067029814487888773843037092557191463092922235318934767101717881327853787135857699307504621614846667467551771205274784303146685162483615093590576011860110442467695540413884460476756798189011924932302864843873107147080751676948954399526842351763700938800870548330712291415906665502009278746122097639351847380920902387672597310062181574735963771862692891998945232081325818255276357140935003830227644558809080536780777602685899218336918911350722865131846993275669781366631307005257531119708879348867591002834910885448852126192317904022203963388270491410208677471742475331947911991124422513268763083373665523486502716407053127301354949246494295401025782956559621310559845660655025600870996778474721070204142452949102851773703563187876492955774619073994354683714839143654256474463075997117450558516795716471088167094892890887684609110580447493135432082954939032415943951031076335600938878952324969059895620368931041383584699088774786317708647558139809959356645377232613870576391983461759319241212829860745372616172606433825868292613437102554373786452728297291915311791829153298788182617970456084476186348612523990964863392267845430088611504361899090004256896609560047681389897595518056950289075334776904673979928370760483068067554247962069767817801341745671860224855644509931130075467913043857985621185253805364259303193348564554105979410551946825206401018680050726040647518662049701175739719116916089924498353591655970677078124240433841069336363934402987570992323601763211139263623858829319551070284416939390666836521454986915881427549684442893088405148144086594552226665669273657901643473345359571545209698047885420211380460106653169323409052166704045249095309378183199138773749692204734213096359705391184384531195683572310010569919451465183981457904878946812069047472798538608857567714654190830017775515542705811160224905473723743323807028278852463157358875711275063350491620336586273700225344135951152285841441055206617951851152342712503300160464712776354469621495825115825435101430279631433730579036856055649629536192871346761847480359150393011390707401216830290063423159074785588685628110894312915189392452474853699112775418325543548092439132459838306109509527839089969153610211452895242424541471385596872441593966932667620399225440939710009342712642018496758064117018657944488982118646100505770662376917551228740570925577266385347173780734052339826894625181501411461249923059406320733806091728595312148399034597145075305300178576381965978456608066354996329239758005631154497289767381096351938966918430867805208701607032277438681247114808538259418887281630263474702068689772767426415298913587297516587189091007871806376554246214454665690008343205772154078879871552056483807599794423684026469974032708142049879573806107203320193969569859636993782111785530258940802289051378740920514439055481676118251945631861519080725389054452942560059505911960400376736460672661705685076368614230255902619721354846504841463944682484472462291876290489457796816536561283934544882908248318521763725623903315659290904367265686205295946038609593386468095465510479780139936929274499438200880132753285182922916856632725321212188488483226178579058514399472001739148662285407741202911779235886198197888170813348547891401566460743399090537699192127147976674964228464924453793863006488989554743509151309197513455899589195361063445667979679798918566089226426540935448048936262234110386426926241214981197991485581127943163701432404526719462548493358873723811123012620534436866635521087353754298249549745059074290826355582920350565213172251047130799652210758286268317713543551552216580209000953016053379170167273926866876478494475960818525424638996200954137248935916479356226515426744742849224286548514674089672867340583993096139386200836654590098583578763573822819411790519259967648122752159297582864206832701618747416888130333815906643668061995718761951617830771364337256262077736893110414398463819966388471037806416989358305354924210204064721220879377809509105870057772176960217490150215929150069594509002418345352762231070574852925096828874910806071146568461643809679519448562441053404990794554448459762523299965231383087728963085818113845099857521741026687375429772181066882623182727612814698265822718292402159043086608000534561922208741983197882774460769322905371328033666891809024027231345211129295128185298646880666303967945609135904553578038164179943674377843808979411759218794740739289264884565136316814008625780944585958404527908855069319248950079524527431609813421267379937398730006000819502617300251034404600382198039543142197483636412746190732334469603810578678965458194783041134985819416011857481334920432831518608110844867209235257995887002272358093243987185000327918663436833389471859202500932772157203579176853745862973249801831017204351416103677471022531945585652394993676724185302961680464469222284915967236941622066828177120761232571596688757924863134823244247845017376321218857307742134670419709370725258084650633999133572783045239604513803564353090054088016774453812917602760058888701426519959732729504248133486422371080419045743959160961345656061664792612981538332601107873296887194811232791355140514104912909072638150013255974453430562245326730597750527758998263573059379151057301536255589818750875679285505208695187748234158630394659680552300364473872026266670676349950486001001015624399801385743752133144466470545505803725912820160343624081849912505413721254933354810573483692509403899592856553354487780710409438445931127471709158442355197074869670126009174897200776094544033988488948749097579228418426404858846337667476531535934413115449846111042390872427983415019135057215154061202548073406295032218766920855196430944855170277278832665353203269389209999234844763119431527270580383196390122039749485836962225209971837873390672471856855039139992050257785953319041979842135986300098046905658186736284398094450039505550357146629721941549710262912284261556288567177170602526942591338659818884672644377666772225082793095012657403661876138796924531307796239631790706932447249444605147343248435183174551662230005431749469874634846077720028777827038283635546178804583419995697440923748442506461041036178655461664950711022716522901270691175795429382173663920699430633481866817727247041830784374594592087899205790222550651065836109364407329808739670489972963638307217374654713021654043064325624401937329408134835992316871056023818988109317421587742419089528897343296508229735746286559203404155566124348800538672846734010761352112635385712958337867516697092544491527172056190091185860349384414458914287054037455477430971139975085016937236413209228358859850362174907281330409322177412200407422518789618139740788751277273990534378390239089070780387560465689212468581907391735364934528271444140950339487161802107091682575357177319458001844444537631652298863174449083001350216754122298145173165780708030787690090618508852212531229443978166058492158771089946515060992991800980552239017966727677402018079012228085018868187882646100622015443940915851417770302362900700712314161818972967902925806623962885722240259364718641931739561587430427292412656078278005797991790845794351014996686667632136024414055023653202887788188999057807730211877382060286984492854726364351115958957210789836014217421901739335070448479876354896659962795671339515635614595892613014670955626259055808188211654854529211923667740942627082262697875673014138127928347648419291047855347403898859153484182608474473356619434077914168725722037817281000106438457288291732626567118708796306371952559406506501903161115222768451025019341995390011092653586921494468198630383026186656250932559219570727886721346256652027117014009811350145278632156326003190144118524963147015492016874992458246825684232076912473997201803289172677462426436848985640388928739844424780897411745004875261242378551472357664141839528773715094281201078142468897817512645871709554977401407763856717633760623895346441993299758123130342692894291815539422631891294274331569022708958623884940547877392469405332915796582528831691077304490523483258949343788673021556666721092175020771874623680396507720146582736118843368404749472463393740370840797532309032166121545961981104518778468402858352131843475845646212975536056159920456793121059474740396423942650459633515303208625115865668046721028326021896216082338567168010510694091135243177793954640853493754736345737734573873125772704293806214847284848139005146455628796972202901879910703840287140936769098884958641380616707945553249298322534815659368681695753565850105015663416030669449472782465024598353311416339821505947766530317520683475249728249487542758638786036560855063978387057340786125542366188216371411093477985713863283982257316464116887406865056518019650405813652399908784552751746940982454938687694999295960107430864660687486058886376625290346420112223516190502683770862372280737279903751272543433883653307966070168535871563808973897200128813374239497742802308568367526833909557116274959232761763148681358521093033886603228632287781305708750016671756657848651180966132105874362784867632162971255798757981788635367234419308414391567750139785541401363280909047695316471277084269681648521778954504818593491338942556503428057214109551438844722329592701152808876089771259655903165614394764028934401835693680898092402345119243521589715253624088506045053634103346951134985264155098930852193093577175583512828536844662291985037034762190634500698698657871345435686284955184075038563286380596277468899248646645275378345111171968973570766251167867313065482733183468874927332749326668118149238458380111916979334833677614029657323330183772077157099235955056466211556041132722488064455846954360792555218950391134179519320575119516185492011998916793969788830239290414884016306799057510428777380087555583818642481170210120902893802835965916937810867966803071709809065776873496000757707085218623056320340491568329177906534920374153615657297885328890401021700398963214331154331371557481593538686176231829354681550864435400287977745570018773905209209904225150124964847926219642933879022506476032501764528470806214633836530310135977094738353392031920791846133359033075642740618047318962679288800057873165518733690145218211159266553739187648288734610657136125140561688428097388195624638113699329936014436730614808782416175062783560850956957803505820629966602755859438832963041687550794852375780604689148830130986489559757722815890235100079238674172414406167657326381914471218382261168987876763689139807043923761864880332220745532443952815778785573407751573214300303930983756065501928659301796224224543069844997082678689335440049458904646173944838151221724790518677185434260682751586232763393493067698271002397710349243194453792506333508981108634643668609961341641160512704788142817437164913495088682530753600801962658734147477743470067062773429889958951389827384369210478511588032810905378701300714426036788370461203553520637989975647309134599694986769711989671521975608849382698351478417357059111908327560883546886692301872377781046499979767645048542440074384550681412473411916556112888971654897063154788458392313613175070978683046139257847889148335698387555502914347056004968636334187050638736042540794475899383883521153547348723598192106530385647721759826648489989029801456555868633153866374828967993968685588046293635576996899738607371727806827696720837895462585635622969326045279542222062466065326640836028576885880460850077019605908799252952419651209779397287695179537757344589950686411046815962365438778950610090787867198526550411081936329292046321918114220230934861543084938348459985001537878428869083582042978745851246886233384393225686140304917937580923769879748564455484663032332542719691630157150236736312282131393099457005745998077367705908959117268079227941174953651483862923345068429140047801222331761841386803622571961114627337959878004302484954222634389113121205118401438884349565008298300637607774932530418355114192665335496914072500140666588926159369292477786717804092519352727375463854988404500869173197280955623955633319908459043659073671686774462781524528661904614923139022481315354852855333845692977082900741685853576474669631677658927631085414059215292203061735318868004620491175688005722920992023329444245419282918407878612372818395117685777956307657078873317785921383067217711094326583963162841494470180132778773243999261215440219820921836608608099551725125811881861227066690542239266517195193983611909814908631455562905041083771692655698601503164244689937138101248779255266244405745022257432817689291034701986571624188666562668829119836718847793656579778811336742135737065851340612663219420008742180517021112653488601525445442271653397574900522221391062484172819938011897376092817862380426918013497447351789552457799140724539592414165906355880384450074728523499546584057283407014048484727871949261200421553281023917360188642045252456287052108561014844907473280857040574236256759804081770656571361190438543734133976996453208011974951031231415683479434874165575667814196092477132692488962320051497298405064816093942578265219242790044306535828410259270250056895612873951191760798049321508498264826113421372742060708500494875148939389339521451960114953054208521220078436069938937346591381616368761537786362644349007518697338426951613457423749314486654547543365711187343653701776480829952941222735309790794202271048320557474876995291940276201873372818860517629192545697804295394198048933965909869199760488182535840882455197671499695089243557988454190968003104157309327541958380846060251225789264648958341213235055265516421718314859720692388035041633344645003525343086656638436177480202715566373249520064531804257922527584050720011871670025881423579122471810493699329531388300767046347562923498263552340347386909553264341270835428592942466645028321678713271878528661706597306916067926062235059122290112681521862104841585756340256506073395681048769406821946539583983484829724942095287390565046129592092586483425792410142409164837761955896469039423333492056979788398584483589518499587056295417280910393927984262460147337796834542550649946793412801918980016055651784981015118856880861248597755860211079725175013486407365995298994393683312432696413137215174209289146101107498928901538552055622602545600089812403116491456963824711737786576977333014619208279743525408842119819507253927491635610310995768596145965609464057199649105475226437280185898516489117061436834947600397907283191108961751215697322788085701916298122317462802549615215959548059227492330692533719717443338441936179642381110668001650455931501406766817908233512179370885694857553834861137027122485692816549635712760165686842728280900322160482023358490717619561954671478541391519778880857300736356108895642897396806508573852230116507287482143185768308566034340428143444693816787916732495094461456702403974599465216690960940022774329322230244950493006776456334067405503361074919006828140387716445249405134344931925768020457513098449253423445662589462393623354077607952255716440260947223751330814764925626453601278454012469370414280861167557786629107073076421658017532516610180322592421998040084610085157481829235186045357686764855496354318560348047790707473223159309646733930124938273592963648419850980898509813908918185103049230993338601916889119922858681759986973423403261790623072672009633559110029356949418327506540926159388224202476237690214523103066197035037138007081108261358042368256876615198570858671163373686257379198720710098626868636960713126241092974630977321303713163017531564031175007149347210751753369017702205363579692234986277180244952161724624774507784833369125984035883309101987914278918594321439145241640297192965436229658385058014497335795401215003421440296548826566614319984654716413053694658809276525457113591068294733874454947726458178107572641122422967758041819792604855293703897088173489485088742603853440204562772216349846767577897117384384536519077259169552243255560182091141104832581596657946387048038710250055563913438431196984580113462636160946515743035326007656790174214832849668846200862599426508903710649850574705839872178212858336535274865040822228041624389314980790275093175783140824003719015918666686001106244340922691388922810672216145211813445237224944242099643144457825199216424005960872844662754992793536321936849552924815566816733603330917435392731598371825031183640913711518481642911971254681924312129666951387669829248658501789801936250628906317894357045857735571749643273240582274312795992489325188260848234249604235993703205904744743091446055401326825308671863429146422337028007509044255734699489562004174182869863917575912375168744371762672318009213405551614435496867410608717737796140687371788310177291934793946949762232175987400736461905743623834429201624916284097384699649843942752910026376220854393975597160878041651375672417496727516647057139071475102190460826651935467771258090025250686215122666427865387594052615149246770678476204380086767689924220502089041066996206709013209067538326424978552532431163847386751884038371871074344972598303269137474773858432157257436933237107309456017407840160547111708868642358319565779046701780107859129649430182186759212352972561896779665199799965218050109109887066353965075132969572766675113846659491584934472525415006124073362870406107036496719477127175895103602204266268600665460674380648289557423666285771118235380702859927728917732507217747090947214689620932629804534133377557531673431595835733761800382059185236796808999931108130315543670248704445984571071015151985183377042909144207463807702498422619530122746175162810808795492759178692349788877163398452934695435301755501721533942188107544856831177364191990593897209187519940769068062862953376933374881931469047383644398160708386503774643369678935190338036843406910753011104482443814408806651095719319490349702262020260309956945500339408311982622235178185614810493990296967489809197269710352585128762427831020071763572785073338384308117413670305075355889394897984185186628061978472455133247856239362927311147169744012768339498452001272608138033252864274521735941435595975687416244296594943268039474579951075027220698046261307488469887581430946256586300846367119710084373477687771555761947997944492531523957892358903936624720876235323470254397040271747788816079895307470783352865083113720030469014465981460797056514739878021048689653230655244063188768405433358522414963553899847478079794062539833249970183549574402862103878851327611284432363985376800385987956257828121335200549598753385481363743186395143086055659909712858075909859006254525866026674098436297848730738558882324378465269780850554850721429667090059455871317480022253357615912227009822156682272276666599485895321986910884677318449771122042907912540169974156244914197756069477145503620756484512988963696224719609436208610245489910016418102300048908724129019146772461677838355138693621919531893253148234325194802895960877851091753652923379623371692846891122799722360478269350041980467649888550890953358045994244011827677956527818789542849093344228529681850539833028287198537738610101847694623027781939075308171086301746173658939632105099869713209421508747089268483378403552562665071402048670488183598600995369736154768818861365245326857753360285976588614232201438201024570171661892453040102156914263466434802240225943140602970854355808240414003058915702863391665568649590074029346901768160266629288755860188663146099397044288790678001453305696143818942696449806648117344727262837521067321858576978813412392228245374027454743776972201251442334558732398996069199897997863176213012776646896828902519457152131999796665303384111338637758882260571559591016711705650905077155437401292174502825616572321736931387969510396130564312125026709940305945379126334023378305456322005683485865865317589110266614041890127558425456849940539655335504326966174546894203605571968569859083041377400253222289417942337662141367313764119267178986243739132512108154329509650124503526299973563349099805116157049212425464992845405423014203147723948592081843325666795119302880070799136682336644646877702856582275443649391529086305239790418369761744512467884952659857051602129466743228051323703048620419999918504034330467775471535501921289609283231375756993388185876074722265672482255448451008139612122063523310901712951677465032745262349832773811769276523949722626410884528778692317195320587218120388375179406055700791717769521732492975594062945374284638822467047781682055434078133254189867381432462985138663260115337639179251442752861070405196084041127070040192654750848862195746454228025628976614775670426788251993414109492900264766399783755747674917939594367364105893776357323284322411920989268150193925304828410236923818548785758708680208531593862999194988055567204985053606489341552226695255879202836936296533818121235009444774554159085150898996512429808912663054979747930871562102746169839520662451143032168929108045362030366697836327362553228616090038906797790355389699579777969614184319947202489116350363758411440666007926722307482268867272962958357891319559035349155775014711762140468286631578836243740789638927501726493585624667975227269421435037401327190731305129995167231593781849455243240959075177669537454959821020070784567601672395299189513463976202684407865985451822451620974579713394009415072694754540594440183597028880836809308668592854617280603202063138045424717351952650609886551266370357966424053289539439903418064996509842145413071952209161825024511207459415002250259093316759739465538185483428331710144893816364915842957609458916756583828968926350851741201186613040965332896305215292622080200034269299048881021400942043690825038702359792922895041721030567369527129673260892632788353200213699233282645254554116001059681819558725646298361439636754831814690518050029003741954949639016925505207145068259508353970871788077535923134375712017541353316453199419248446593056552046345382869541549111125381233760833990879793374044345924247218896149998889567263623206033315096260500757061920331369940754880432842762378683808300725437997929440232197093099904359937810487951915206062008888815145750194154876577333647937559830846421015002841058541299879904242516121968706872467938439666563855748997580058774690019253826460308144406135140694723354388133222110174942351716114402727138433428069789380957866398800246840888805084550637592857952697719452315366284776238745148109593476716900893060527592759893749992732093601914813850413023131697873038662216868578844909660656734884445198268421178545239202532505205201969326134849439928162863578629056390092358863085582134209375064899718405341587675926600937651857222429253487935989999234752241062140119111992527870784374744357026560610118355853235842062124887834904965095109504980299445050104179261422103249914960707422298800243512992492546760168667179266299963985607742774502091423550377256643753096723054212283987771085959400983066867514587723838792466290324378491733209351016914693066491248031244591015083600098361617657536202025494624549877661486457581493427844928916525264618266669263644323987326314915085072196716266464363921945214242728657171100115281695054452008667305974564049919303257191037341019568170584303105856193949976229283413735876289901574327161641531541056433107286728807982466765867106312660900958600226539915443931658588204614515602557432169549535080486234414224856262404243607783458304986235484178465882584685556303458047221486958533546440196092353841933242566020192385147854153955247145373428113444645940837475509662293501097039389593285598898813917359293133577416448613629632927116276762037702381874415273294447452336984977542929395996546543126213937817141603647666634489996353351075848220708794274249160167717470185248258578403549485763293169694186185882378041125907262385566443575607131480502725972112975960960390329144109140329466831252923822640964915233079287869826337308621842853787629035004394156378149235146806391809393404773181504981233130674929622008235095268576663124864025524074947427502081912965696676732791775348866842872033981098947540662958751884864977270451471278905162430601168546392879869256193832890798334872700017966471958606022305867679579288344609128286489262329974791938249608731933440698521565061601365939602176497760118930086565345408061984486183605577900603786770855766618784971622151069204110303237996035366552989173951288302794297259074568217860996555564714079524411864725544603972903516323440665135462159825901810019525959066638076946888460352260043811870952954281660447498309104783307789433857976698447414929046864349850688879322651807253558976885688294273752141116903461212913468777649624569309761117175275087407259424692995596594151035728150568443679933489247899583828447669774811600369995983834877383390842259225511341271966828928813488768545216602287194502042463929037828377672203685471064462560338725279301871386435619978310580411271761376767772389072914622006179822703795484867824811302099974477465184491716818281125680293434354523889480909740054983033355943303902112710979574700467228371653439400999854557825027230355270244695732879357842544188244250476826871088469773086319388592294379859665640207203055172748259518741180074816125567552644513620405113778306196047409744899751333051814708962107360337201134600228011813210684260467749480251698437292149573750976715743381181839463285726232650115869995285549845830175579674201261315974660294300538791956920395768353505361193108379070771019745176191481821701569161048103649409952795367180301529020816053677627840497920860531077758420657490172017758544319657274603477615049403095468256299271197904192880080526022658169451213127945928018049523772299404499213851341487737995971865865191648913198121016837393577399078078464109358058857858693094304092220144307986202071278764177724258755186837787810047809841610435652925553768117850915865950755622728534541687700331571480520494238554286823410915719194971395005263973515211189818273582386142243518561229850210944858103246811408186313131130210201424705645176920240219728054109471664787761577174074276240495618092932696318384782792928434948903084387956043841635430227040716007732029435375527957378846546969478017244050534976003968779249516650416936096820554890991166214730742769590614471917579335496744463686543633408767983477132504643796632243995090018866221686629884138306304075005511233497308600196169767523599767139354258588651440264481970163166229628717926629944738078041574927836159091142335232239765535030590228363413330393082051661451269100244890127915876287261409366995685217540902489256603854750790754881152299080019968284589228563931220689475545010152802496354027643362884746111820015685632241246588180808831665324162720030868755893914836773226470341564653176588590377265377090257920216431794298870820804422644583984434674573005445886503887329037622355086341543879003690629761858246537796615655585947224514083291152970768537316027617267718499649340554655003642199105678031833545132404852297696296622434708583829427356808756048826072006610545311667314643512578984899892508037783416210712005856439121496876928347047253842254252212032795358276087814218340234180821446203860574242246362075264917875287311750310667114428088875640034973611970235379039592872060264650403013914586956793649633633331485582147826395548312817243484391645257326675731683381936427042706485450114421123002048858887570314395828854459390417909555168168637098184282392929673811802034918246909876497880595200354932771628764007045866406772381617671277080527467347263105350659955597700151860864746391904330846407840018497984335913311987413778736453095839470686337864210155226106312909391194544812042968878613824538303698515914016997653715240470337510172360416997069664355044687113707447214244117085202961740424003471395676953473482442870081385622497850744929842492313192547023345073156295959507269693269230676093819218035036586468836709829479730283268736893925341125501485050628356388184244677909566985366050027945859846992264542175430392507610236539302182553373577316198153230199993977756330784131397679146577764713067435302888703900737540566340155273620955234639145467705390504063188869147893385714983660786629480484197621896970285863490019481367762703130187916881316364901112061390065959485984498111245990631239064741171869376744361261014446739925839202129701957152293839885447663185063023525454245291097906859977945156400096430465509901424946338840680861871070016967599372691791248350417315097151482506299449223309942400576895406691522127899548297243722824319204507241391362803228433872986916729482632929319870991945964582127408476126358241194415555512660010642665574594835230258115173359897134533223916469143145369375196031030365655159090778408929499926226075692235018945735930067415547954240396303617090405437576022285350619450322757372950194310526972907890082327784138744882442992681420191185194447055619811509589668590240538158415617805747501679957939388062114844884686323205198702584829188736756730897313890814050606473402843479832586946215135120904366554905901014995424365975255205122442343499611286057036439347210829753017830283705862367411883771982559178531142907080515206190390740543436533787241727787298118550626784000276135295567513331433484835338855099532447497067265316273630802108283240966459256286750691933863967912159431156186413564700425928886099454869072198421493918250665094198309118322774164402835924164522846255852671851613761698307804967312927251132382549589409442528898168884289481192625152066918518294240539601405817445129717340918257700115601191794303857047670900776913032432616872487668059793893886857595621971078929262086523400461868641590544014217264000255486443372037924016223341506287400962182869434571440992456895949875272599262652493357293878811011532191310692561742277731242016437590262111837118178450199567690919173810837231421841528319591249101675734226115381369355332132543136508065702144034049677028957385614379110455634456574462941475552409579045347616454772403649132991395819235174100393502769120828335450771972241638393891354759773666852098744936957212590795046762824409670631256446974208065378027942101701153906580352889542170665568492013124829661362845218745151699290287056781592544445097687155061619375268218977047351134522136792434497850890401238321716611261409652052067819846176292453339659709875454969043827466501474828538393826781579916680777341427634470786343382918956857929662761245173578319961541759964271073481251687375138585264592519270771997061084439572461693372692260163784552371309229082249325411851312860812326589028157516209224620153874946763932250128830123486375519727635749488489777519286310208851698524646136855268267199342281547591114540431254775592731821377991191735439031045562038002696829988376321420930854899158929931496173453081242876785479813720322894310433252116844633594776429892158127056951285813080930566807200572809424436404043393433758809333989958340057302453777931780814995631297583284280380288635156506905290584576016567077342878252974952399570217184146455743244487766462983468415415063714076967847797535044207453062051889085413604270148305340835704619410009925882562144465239434121904346898469994435811277550244871112864362051305198505310370930275102583024576264718039278359405645806299010425182329231519876989408889852270147900178105061072105879920390858794821886970099899424558973662594482804224208745937576448336160308141068952670403512433586566185329481652352712036648600250871747997641826644267232890435090218203770306990520189424390207202443583121135499308198047044556408896855983384815666444810511872016652984391592693486386271223706232210813858827281962322898135257410054357054820765264450487961118655212142908529512339173665658537908803126630235686399045590890936651910557415339068875099850423313880311095075130292471285990789159951314614394404818012597260482577839103975207129472851188349427100716719476866697371082529398362413276968476072423108836645187310952455968387820904601918229375923697610716204737465713791686028954469483100059590986587042304823696119408864364747753408300486911161930072049984657626957542400816105214315758056753956142183346405841396041344264245318156969968743673692346639208866709337018604929679466518515276335030482559904560642086739680335967013545673197001855883323217901421683620365081790879002648548239162037640456660064842214604223127711749022510890541353099645440183695500275601073531595161574485017410646655346800371277277975226880055723249332422899015128121924766788072674672623279595795902481542253387430701279446773401779387204576789738397934079766710177677309742967647754147603048386589809171799756739669759969530085069984207959799104475148359368033044136260954675585299565705287798332274532825665562831974866451329413988368591667194603815562725666572408008985439899304098394415116481462091723181135309234490376027227599572336892702598064326643448440761806114953301427072520731048880125858736772597896468432765551583140582512393510988965599002252535150461925271271956635076694533154680352479565847359533472090386212834171870728432222082823219605577961884045449000264921393331850696673077670513726554020279441227628808205509708308870491271888779182193300594293919930356042675491363927502897717821269878940186738577535240780285546244314474475040063178465178476377243356821247156634667652399970605168775803317407044237573609485476624794374173051354917107101796076469156067267784241523229665229173021762989495006271117256001625395559777672679267752774398647842037273571776962740154709810624806553649264656418559185797599943542611451604953723682587206967733905158376297717774676562149382857604861427468523563861570739318965026388527868938368526275903722350178804148896501635202550419691324603732008439428091590259580066645210031989423739489638012721513895165930328258041702924506446700988323587962884752470189014792078162473276378261063114860468628357487851856599981112805019332748044993675362063414195937960879925446589750132905051745707000573589104978720210396635090054662703796329845756155014433842666774295734988493067108887136693042884520481670633094877606092885644417306019672079877151734127122006663293274194740473354226675464249105046801055307186047366857057607161149604490105836179258322707677484375010657660586481258823474073787330737711961459311122139761068443240058789362385987507228395464295663059045937572919697164260998018133311042881834989788207914520503071921836001840065335704525052779540742077681884007787715319967008915880079674520257635115295214088015359868536615099978725863867836322187610022275498227267867951641652064182195131265008345548354009082508545702815190938866481475269926224974359715405565109379491708365229694260344218479703675552497879827243219764115700140488663716432048692469920101331528244550718649400963033391681961205807898041583972463540916893479982214280696055460289172303669780175634686087217415008184139484010337167542580439053677067395606082403384746256118430322583174972995658145483812120586437844374487484731887074663001132500710139522704010189182321134054283374387047921510479527808715552202849690826992558027200202242221225352008614831381863672695912710525307761719170188686444445357898895342537490076279583879404936903823031243823340269118820959262619758277785828770062803910947291651710072842353715342113228855762584302734092162414262356817199385638120010295694288320828967159569485082063617419382311705351672271396618732563970536921735121977370679439822497576003253831085701090572472184786598154653952990029595384256339814877840580542717129695441448699514158361146318872690520229121471130643225123471350697491040844612903494896988325253117611483774218711173509549344534997019675337999153442119052783947028534135366536601723971763977153992968234874717882662525420303445864971175633263745598798342925567605860113155234000408518609730025555255712966382977668611104803317550891928859565360368780072097035478583530274687282820466437216863953388597704993528307583338354490956599342074458883684510011059853849788181183982769321420194552143668662965549464084695332303009727805764916333544646242979092201937845586298825032536062467736425023631801406474931931099969345490278584004190236290216252235593870350131326252182355586854072630788636734561315845477608304661171810460569524491828015067369846323073147462149239729221521734608712245381249979175466902055105718392989096238253580310340859682667401899596827345346260038164272893465019448359096843253713328418850433184450463660747420232107598419664390041309134320800444221640777071531886597209739239000262627325959211017853955289417785490048695696154998704737019365205300372448758028683537056736198755474452349312572503219892644181798078470080602089000918503945574356495235580902448714548323952633548001934550553199039086687906632924072445812825904776195307917672048305787222810257214978083738113216070165273494881701642603662047600117714285971159797874114709213615449753264403780600967119450989977206648242409069891993915274438927822394212007958233673642414217188381911698844291489329719269572476545264910195474230642849857711214110170958489509456964137060927576577659363081703004865980637435431342264019242639091624692477149884673946013331944540487394752523443037110181206363646580186643999722966289754814404659732306657654979189098943403000978950947789497419462813730122782636659821072250118215695703242732828781261835185700253708637434193672095607117821998483440697157767832939188787374338344637970980894931690171292568713376482179457880214276896236169319473682986499980954074979815244158373497755579526079447595358145517360737711321557149965149212975460369064900684143256134108184350303172762233371701305332073520953101425355483422274785886368734750919084305658223764673289656251710707096617522924357426087948576085224775637792790389795998789770816952276948786513934661608985404266850086678834137369527927811473685348623408357779659131315094181687181715852822964823907489201308648060513056691777138367016389054195999753732264939191096261982938386865109579714004678312505110173697263031835187080473096558825877835116822654686911038895448125322545260765447813429619105745496905633308671192699236646453183323128391140390618299873544219887808266084790604968362277945953619206746811801881078389896639556917040152371374674166493089738469623652904568889378289640561051410131822354470050709548708734474209961155288331976570850340405674624720501232709895599397664095648559251563684851376993648521390748909025416469753354647590275882657634992940598540902120042462002276642262678284079213595532285117598275932184264825151394877692678351889412256252495660424330083725692120537342655003389680186166250390610466122043390636380409039725641024194428168079693061446228084675768652497943940737874291470086515022065813509870083997189287374366677538278487797816013073202525996251844394010769807159430723699609813779590939259697847261212008730519401739751865252393321462801256703748465458031863762561592627803334178252304932951270351323932942176830593453537047087515610248604097540805311670533822600440141349090784887211843167677940933074548536674475102360467986781238888284649325294173453525893148987725182290288770184152258675060079079221147197747579350498070424589353895960002142834523701727727960278602051688110971822655777281872213020482218743023402237148497855531611754235022560996863680655108830017711539957904865538083927121504632220378416373994637501342400428630058556600603161524930315458509699777451059245843999392902022221122205473521000143921230540408454649913517972115775659750245513302099774924128434820177817690585034793898508896772415032033141218999668777862725068795507365560668714373059426820526772750820076030408241634161495246542936313881003262492947082958479547891325191024389513685327421264167148042170766142357093081008495163262870366749236479529446853699314651723484859910281731537491943546114273527022803054942869568297769284593398337807728251283840393256799037204038059082441941339496812418581383385618905984538246958830574214486211114801411128896314835231032865652014925900613883184222452675483561888096306416008750486572690467965032197330434347988721936317878285150212119873115406771887807174496362122480075607735188365235216410703106054535617704961088712033337432072336796011611520264813898097400488644048688212463691721108249251874322790874511128914833221365829709392380325117296036363795278410248309185447114427875975748396907269575312143331388345924893533551045929084836038730580361341768166856222784265361599762864765104830221379627286735006121067655849002593064860651423877035616274948049396968309655420831516140200503556393971389198789485563189071328858153593015693988629510713575675047716210131825389389082967042825069827062049318049450880297600312478863996435660138796033096112067035658072701401973620484805174294705425235543875484739806355456252539491119073000104477087732438627822216692293696346503752256470969249490131944870573868766087002002518622186493825403145056481656516461196077323717208298975352639128298350144422989118537993415554990949693363187865663654376005425167516946730739067496471146713523159830340017779590846343233521560685764853213603897235634157565363349461224785173442845563782613777695245175165976592027015397812300871559506871131117082902978613289836186321946941557262264912265872141175178488049974076010587345484423133791478826202790897555755852173382983061793168913146875362996747450872020609528994242542953964636845643339334426114387439773512538081093621433946358558139307690719674960128707983617373332833663528097340960908978387574148542678106869619097659120252702893832421151418707972690483683944887084995319198268799109522678954593931858553018840988331415904946303485073537027882821549061500414538044832397032508959722109554179978110012578768207178101256174111029340850967403838950398012792081523459647926677379752253687749661570974743321064297903978663876130228161048947535971037635889374184930305468694720932287630243136482381338815410270164617544945946405924976719890546994979197317818159954464774412102474222174360248912491083433664181077684578716190357081501907874058278877088973668400579559508797060446703030841377457988186826913994743102010577154670506169947735176718570706789481082114321811005432194594783716814089325809104422878035409831260023383242962507155999865737483779079802459929223579763905775413947661909117087054132605716533519458078348925919149247450498994120112817657913605736004845726801552790368292838110051832434265332779492314229175553024754298489186130834233443585120270565216136625056860360089890946994965538072715754999123135791546573221076082036438875698384387602136657454353586994878027203870789090449635385204802440445041530644479308051879909506366585858713061498048498895846965972806815119418911098683556667968913541653550897441954616623464729817130950354439981461606210658920762781972379184500408647489690159056968816659443935542573975969659418804305804774257096103434116175376064560383512179398419821746648159501523686470947185071315055201902049987158919557454610229681445486507171245448567855547448231890692837998175921706176333411653411228653991179786816496787605123834176176694840305796078088746783342620679664519917851385947333146449144543991028450948984768032286851223987761346371842645692738407495381372266041642245858541147959551920366109319297753828935288138221549532077765431315018178164237662917318258955877187641108912538174820133878016899085792724898795670373304411630255154281120278369702812642716298075458831263244388034676685385076546365825877967731735148962071060203927328814616097336116085413072088518633709459777152535816920892803583639013610982587816759280076529269465077157540763226022570167204394464774021679388551321448111252409472567960047844703644808665639388947593995231158246981104695690433162073944038205207857824436108808549734662252933241960082064084691208161355126479426744260881765833154669419439797479015453850604530009665979999596061011117814494121126396170485434936462768842328049044448328860328659704228579798085905507358369596451698773689674427259903221464887999204819103900835677696792556720010444712652513716340800040523258153088764414599868388653379523322383286882978277074894084483946330134156740688189825699424855894449931537562418419400060701846316242614682772013054157568793524185945133590560570026908349935042215001168032187147770078640506983700070493426876212856418312879804633723896740477710727239331795138665856941645015027368497308011687331828752046722482869541056981694679058894091260865588510831002598028258883825553680618345649722597787282513433965986602343817954487515799586529681704139096589212328253195083240211626307600986208681983899059402241502180920583693643767440111097818578638299531113394651245188624754588309419727313634893513931946108452356527482595682190105467248085805523316702263538765402157063869429960775667291409341160760708877014522808369951186273527424369357546400939685869031766543155071868010544020692702496776368089563368372701296388446257773476531228945901892769861595363382979779075724120088880441590659478642166524935413742857860945936122640775116281734618160963723204374606538922889948401489693268332609231615963937821047193762194013849317353613694368853899528965779433346143844876584477242504741023792185034810893575177025526270531226541681398858465664975300555254819129713229418063578310440202926748913375808486940988432156466149274499074802649519999235150051805756517970799600933824502641392369064487797669971633485626184841057971819442218362939533661413836512912119356916708432247231078522537366338314220848846047552962734223951665898486744200756509786232114033046323457811511502657541523973668723144856740589171376387267846030880534048548475060630188429311726829894197972684080499721626133438238179645999628059050007051572383086607555389597244454659664836276685271592668649050573778102152509262358661224961815983783309837602679437108695758831582879104750369459329209773607547088992427402478161324253653285209373618349884610786231086899902773319334208575126140097591839170309133315128111025736224728097107144736427750248802706877925126938968895095189078082857089796189635592872591808897226356952831850157046054530098347317531634101673288324626070066007299139280383642393608803737298581478902749881476474014675721000028589561451155926926329562332839076167949097610493789560652489468735403998074598145317694172112990871154725489790093468219291759915888947092467177894931374309629614679737807029016275518463144133948191592432603718645507318524180922603838976419945081188923277344727648538093236234276211739560307880930152433710015693511075473799023709894206581842096369902951262534886231492137318642879335511181812269512784322331475678586980243056832571294411921490676374204122462575926223636879718843500376943264522035499350373697242119230976290773579335127876602277215615971290746120630927885500351368355691877259080112131251326555884207712850981073204029506965403937310018190720100053142460447417444102358803534492920453638950139634135679177017100028636055602505670263048348198624906015036202875572118619134971094757560773890718024876718523526431898525549203217072474160605503687806035541853488554496660912530723328643487867968990341581599109166828307520048326495007887715537898763466163416700044914666096306518700719294551905163205987583603102029986694980449649360477897219694722776891523510475344328219931199269962657056623738295743426515974485285132005559852913012080237041000802480647820500279632318153140663371165607452473745544631127593333805717233227187023262934067774890149589159355847833075363275455602988024738330226608006647760201763007776191531936704632505192957104722540018476816069122007403497237036441170353332501498318692938052569276913380901413017384338382611411414154155387166546170577351718189942688572516029096633386919204531735241808067686897563676908209142375977104562786114003233236926976704417898556758710324735139831147888837401406401306719353633724301127447039053293880588949229689593038254040610270871962473700320763852491301845955816749120328333502107728158567214064181665472679913552263590738439517286934710279490566413429133876241892550233997339614350492406891960832080537441367083349515533124886376814185918413921471580683803671910485320975161501010883532167315562942761695493032244229198057194481049603821817739353335737865798668316726389370502427248786626855086901564798494669209289436833020610926948000522870098184446768008807772329376605224082785614310256390243252037388028343293293992978834289981518103673662575498405092372294440023824111370918477905767017491655364555592222407844305076268386185920366232849966681189280055767143609655144023950379544101265240289950460149639140613655388420216432708154355899448255581476727264073136612429901838580839795684355957864125104508622236994867714399363540858385871360021605052942485473116303206397202122627035708696502736314778671043150027296308598373871566855711342126734038176947738713557171202641779858972908717414390143920500349008580760609328794061602653624324306854781162620673721292701407161581914559092755118871067176221905296587704093977256483029576449544060332968230904314465933512206001108762285463470753172545938466857945423709189441056947421338246325651054097455920505934882658142613465125556312514992640022430646773007118503810724579011343308572703792533971471810566018022756506760825573171152526236724083327587602770760316040748208457495291294754219272489855167445760001679489866462798000980954442349425171748618417210962716456254266279488129886283831295314704460259277879937214167118269530336819174017710770238070658362637193848317357098447009350322506418350327826445199655942726315021068762195852110178741787641150584044697645131903984342457718322050645511032753256611038383173494726732497904359733384582712818693180648851473439604977936609829119103640080687395648947710834459546585467917485745349147424842526536307951948420936350620662082838721311128256185279845763120106210425203916722746593087756951372502735926876590072852313819605858133015957014722968641236854588815608981882958164790124255618318440913570389501694270624467590462769136584445696587944353848214663978722980624232410145471814086352158037198331182090344922626441561021236345670140811997997690366642275612425561316186967939775423799226293046142449992391520102277982103789278555976991422556332733364505193950871838188315817832410621239109035538820114923000239117146232542503277361892787807969993756620200216477567677939568069804044085855693343667956735822685693894557725848015776854457106451651934552096320135583517757336735891302880923698839567428961663084615319274829946317499670063110525892587679780671268550805493317899103374085608288984563781128295063128273906429322462444165721458482759651532511679279859565577592939214090765616390673890018718948408907293805402109967942805623658253255290120973106336215560534588880539755298077155742817447884649654326211086737836033443196316204328713222121272521927156352654601081592387498884967091454697658057250148792626108406341243162710717255962407722017505715002038923422319673693318416114885303923382599114910947821761618183718748669959876984544304322949326245141461450359748981696435552739389791073171130673951601592539310465312454230752939417662075756597677813550386759484672500832438879097756429674682530034417536358960297862186014504036188086963468497616526566850066332111284809621970970375540392339993298914281859693241595511619815198715566753902489650344103465140337454741008778711071227289797419963383812223905024146996484571137953515490814462939721434253195423955753870764478982850952489347328624502336280086225763746686667709916619009498729758762158483261507905820071605058756232804409024483039543520314078218599095841596561356252183712131684590385505177954286151114464183706945608045505705578642499867144888856824708665622579760279144365993002818262127154879353452118691126516145625709333822661112125027800892293762334208920593047193243248950502504557493165109567587572068688655152818529778211436621945217737042564027682715232710683633586006724097438762991883369599485170655606953527223974154020903200381321802936323148556234148883250737382666701510859742837432210036070696645737278142774464588495252826414399336826665019050107614718941232346679269725492295141427529591977565396714619323505310360579359520855600939773484658968352958454286120818183086511545045099945658773700382644857041399786612838605919474693625248939574986042516174480718593587789719664536016713424085969013659328285596750098065861202328419200364730897555956156965645881454917169274507270075787779876098199715564346484885882981980826834053427584797059165856123810401548804668427036171666883708644035452715113090773285840957508293211243656296956037785744044835219757022435897933596728650907338833561622418518082887363927835317497317676375304156406312508750660936383227108753947953229603887979573746546559450640309129017780664313420696264040887563981769060759877077165027796456696659094367453490032292564245797498236170158689811376576365245927211340952236265319518379774894431131824152195515404386849429540565871423734500937100224100097174035763133842127660231518444013772865932778524480639563166475954358098512001579329968064991302484769061746180450141227531929669647179535459010740512529945844122618043846015682727113033968514486297853499857922505033276479593471159774952001403123386982939381108611757208356943235575112098625674919973657069509037736642164510126512183800588561709146992661266490581281436646902170752515389538792049879729934421663028343258899053541047392998335760410233768936246977054807581519666979427211722256832940554357187463094878289884051815301604850667981262054291473871045387665939426863103630110737919692325218627189530841750601321822329914042092166483254741534620641757363444584122531803814472345216778821607050594086812894866199222475156986786380173557881574668523073109228558216319419599800145486613194968067580357527310115955090648554614725687738357353168327657474964457585078885596348793003579570724114034385467854527527567714412534306599100779800101623794172355443871464303088458697658205837184124273742135697088073318771293953007120146626166282932181620715281856614274402076830845277844815788615308976382690536319602033374381903376528006323282778885456892899091102515196605283209781097090454928023580112741575568215309181347977794207872438590792702608210253770810321243094367822678905363946312349577135760954762602016337139070339668992521732292780019094931132437537853919493398987401460320293088507305317425858913097907687373787380188006076164673195430873360479210673864417017766755729095752630658089451941886116535674313763647996069582921057246113193988594248993390369625706925044204739176418730227219479410679454483297453308198678198135212378186818294930150207376758109044732293144010290356802311470681134019501480622084429804071553937667581249603031023575680942568318003513852951285325857153914207882792505291412211828325372055031113179934279913621256143343729658854146926358214407545467277690045449346044837645956974092894318890758009811741529636478096098437629867607266774081382903849824191333591542881988888695260251349500496384596639643992354749957139594146393464244370031120508470081977036687065303397801495052618726721253908122599547550594519780548141299795001235442943472625224237108939973766436616322981949168789471623514833523422349526190402596883200597356618149553663181410996019951719613200856769940739486586697678534440806367919024870225269815496400445148106556290038698120974671590978579888996100033174866019666288535798843942227142253042771167760774155533989269953420598853672274875709628660016597746354465632339059326143323434408099486534098656498021513837937589580106754882704733661555168924210738336511088526850294376920041293171895571146668311977023267119376158481674990158563535777412075294483213510358049357273664866127523204008314002396785154342218940605813300241668873775112508014432037713308538212578110662471770902645552739820797634970381395091125365641578106213494198383154996617001855029968537291310957762967580067254190209118532025698287833111395066965275143100633153040382657503112091331825218773870626933154810351828233987739591220201186727915003063759613874313539701288310173654802039112724712191860064496681890893628331426178696943795426563407522389046694028282580993863380631706144052448256746417064569568924952796678712737530053420399940287961565140998613748180584269855667701131332619714189889471207037064077717678107550616343543340423289756280193925481783514933701896633277845460626000240268719998657309795591887318629276743259051170571783339505325456889657606180198668069105491670351106029054995345642352960058648964549064685062174753319279943409048826932938738079081072773740831530669093861834762197055323395926348798974979401447672718636105365404393374573329067220807906129882973977719894394622815406691901475283539542396170309069633393423866715371739297039324908712317419153880657767097645782781277266466170631911288947017200544517641055053384169839892456030289724351368284369320519401860390242580275162444632140279198169689520546428282493711312057198398300888297018364959178182856112160105838955664636777101931170997113576678579590346524046805242471482615062005596761785580238633609694243099271493198670249044869484556827934139581382357311482949628399189200875469636330200365492359803869923165401514005066376067446326231775966757738204255344974017355557715557684448771504472156669367407758834262863730011627105911388074807676708143081053693438695482181649747146940374400482117443708598187794162311860406308480850043821096632167888088371544214843105825937578656369273741302851939112054250496752257863637707951895754224147433548238322625206647688611430376574764736135937705934246777426885957908057417878275731243495032771041477725743904997130338549456585201100382259617168055546600816245399482549389812072809098701885025772955062436727798067827857618140708638190465275998680535257687821193311233538810813740073627636852917302112002440531129329106402187115477006597514997998781884817334043037761570936143515037460748613527104092000355280150061901950278538326362257518732914326670316353115915796667387844419357538572840933283774719362743356609295553800219216342882055202062260611036325427177110631025395121962877193538559271778609271379744749415630633849687143504564202659974736292808588294340710203379510650594983316703851889543953230562578970293393289028704062272367523751078539543018434313398201038139897929262062053639120430742348256799687073462731071307300348511072694364463856384302038094114306180448791700926081511868274841753403709786744832942851296145441191543661925519160097645300093122296068582192092572930591376997678300036724340677755011527578768402765042740607063003340594715472157179241027054164061841599351772361377144815886395699821745422306738617516524835936224091134290238810452168508563332208386131243954807873663961597927382419384571913188175244979503641482421795275558358735498616783859723070094760061117056832041387703579267319178781723747876381367451187440821452945277481833531659592539305889419572971658885479097320981851327205002073585908970771215303118299657498033964736936831047087956576654185326781334201950870016815021637322797632719904172011831718745562077887870485231468094307003886818340058099027472593852728572899467020422372800915207420363657639604426283462762811209866132355083936945500344519166928660464813958928279909057524616834163207328008529109936575974123437606071397925084160945050667679254729638140232651742673929988710267091592806318859609897826585785381307511577733238317084981453710886182395310823945052324456010599928032256662032217477726515735766904364005753166557405416718892343567713683646573664375696474712131198006115851386536054104062815914365529935758855109163623621932202768837994343125095908556264218332822953791923965791718215890835436596032567553752528681444126485068425510753981287095466632970958674670673915400538077903722339598681315532363449071674185624110042632549365592178690224590381934367723128404604920186350518352378575109731518168190519613663134263876606313836635950177056112324842007414882854615877061155261469010372934776300275786218150851908476790082130651679189936180512535339223973887536882169080607392123697854461581942869052838615837576301833581425914004809000018241484507451792504967570015534224839480224967980150482705472021035810185765731127478802442539124139260035389548013931892512630529714469749360912847487541832249364546855794181270622233650790626233352766363080023597297745544823497608045862273653937624507682781614895205294018603115808140614887827642040059249201869959887038231634215483153837344753384954762126040759359489907096235355420759603982151982857937780217003138951379558815623867657079685307464607976356309241443562824406942241308813286029399279705034969455014188521402025348432072707879214485548923714152675667289691157166230443495305818661606882938826668398064683410591811071876968664522985098686011419795591853296335415968493621812344275836949684948518818930144697037647980377019044193864097809259148842607744889652266884319532710321681170198876914674061431689089480878112836271594638431856764770163730160940409716069373575648763875738048556260718051680862918238004921416651668544321567738911284786508360471598224655177835514657770565840531530350791285090094829077218338975590833911920041732856478078533399864284049206869047597773771715774970896881610968297749195002407030101324555414872237486955960562959399989079699111744156414172223765166578163486045475734022858824425631875645339368901139378465757441480067952695301881908439098461650500217678290102110628743161268454143271849362870210798855498317735559066212033025753954854073906130874177011113162981091687583049759962369552341906101318140229849995738049551520304650156223902343597944605606934486093493774677344546065431385976988942460013988674522778799889088373742486387576926185554281624090884224723359540853260818892158700502437142883455971951463115648345651575884452724458965949275269196638017381683257562460633569815011668227708016807252693987878830628087193508158747352319020456179972576981805223783186346154152136086650546350217170526308407459078189275013246719037829459878308067415683122652663121718528810235133848976486421389271643215019120457308444352840880554293180824657189410022841385897600830109715720724471859877442089666853076998459869410418457802980791985492321156112417797877849739356784659926351319418319350433707645078036005144178610748528666173910916676882025701806490523762367020430278499777425958323386703188911282312763419045246040444832647248870549902876829879728926117630483145314044775462468394191439012029757751455341099812469195001401898324975860793903505902336590151360275818397405057945905332092678368895392013197145133157541405451550479491426283284327843708874522776122418038339800849676516222736717093123939729901080067477823409135951892160441030874120472214074653062125814025050172503044441045314795463552005259771286809225512342348372758783600960375673069480064552173506929394679035008494531673921332288764497380029200286938080484932523934641495386026087790756739390163676048257328491988058609160056325893576289090646268385730395345851122161777106298616362889158673821947335992139689164788123438682978833136730595432861898842223645225496416211836879658516233009513316754941244424921117395894768987768766524562979669484495233776317869431446383469906912894354538779207312291989155551094319800018886152858355259669242129007968207058185914754906749855059452070331406764386591016758397247572539556509006134514594469181580700200584792269501062957143717666343662045618699121085933671536351120200618789480569233563431335084587791851326270381364124462443040694331421013755555721577361416181975296118496727545526203706392350171011776225799758889498473466534320760944161113207683275545391454058128196818593691340209562999908219754593873931028991403686027970446260600669106054690696924359435801697002649176631806172471042693498082990757320447746335205918956227070654057186729112415986555676390525533207432600445527629270230797940647001815235179632013069088352660991073682301368880575925220753431283428710573976943317648691823987167044821072534312560230069372346638289607061159682476378970890588534050074216357186290116744376800095932893041177418823014579489521797337859896065949168808196560956570018603710711634195836297036005609464151924425857928866782982909057444429205809707417074038489384433970289031139773556829034453842312187977258516059690100392114028892153701734884950768647544797216685058038690315942622829274036993707819115971114593957495440308155832201143075317372190967481104604436122636725270106161541977153402216801638548138326017230229378713286091011037767211643086305201198695017541893376125067237865605286075644230673032975071413875495946761878462197674434648891913362274147535158042916953906599425299074848859579938219037805090703413840588550564807117897916519196546105788374906244898867971410623413626952284731655253856960257938835826594268642087667371143878846552796773435617227980968140746411974608673449239963102403957022586772421118748033489346231071507565500421352047230088533127766875957422252829836490981836828552328542198530562591608739653562673243800921929837409062073655391134046110867319591387899308689742198410636589086670766732754344358184867594929271398267122192701843406218263932325162375782503708157383965945491063358703761848505949673717554059752627694739977603755805306536061509963103912682793175279992185794193486912003514175054850003311703061852469777652852787907577357714058539866137514358790353938825193308916343337088193983329220065453534856803330150424485926762205875317529172457515452544923441769920913395980694360924427460039835057312085725184073006870657854792498156497243852200815668869138561746705010901773223558246394313992159555824316192246933713476876897620668645635638556315286895042698396708629785799318349506303377615629163227702044194705618547431894627840946633992465372489648277565271059427513495529540212345603644080531894590916798548850361377253553226938970776043803981945187337494292365418846557201082332596174396810098511172593088209926226422040997443479470545197750951978299067824273537249145071234396803798116911151734299180450730493109340795432354070177097894233672427156969445519297797854642274683803535460723531948538728993141161981053823021312001438560121244862417278916301208788708329434396546817708841097025896596501414159310296328401611404618482096332350603189584666741703888652652379063324412386269000666168361660178866843408119356708879746460412171779659091879610605645182992690851141138713821304455716878937761479627260843655968523503742647991794378329615204311590547788745970912245857396431014472408741785165971530387063287883853049470832395847253115325295704334430013297302537064900886740120370744914563571875819455394216687868847615380472875048588509610971959430491061720327202595897398770499521211022154726692440213567657151608282074262460139732462802917404746833547614767577314863528565703067851107300750969150434351621004793991170826678975227366543359355942993734649315109042583228158650186899785950701540341687642171714451684144698720463786283352812533468636014278843479911471381777809765423891455624477825087461060630428533401167498151498259016772417860492345632161799854964588253663603682014186352402421907663710671772983361727372091765896638326326491987370291771287662496721567811555140539054308255837385509405969372416611576369299950114053559043436640674390883314869858230810911639209399661708952490789815860534178033426875439888391989030638154549986120440672224730924536950469611954592037785135187991263650623257323517425406368610701331516236002459977332489631586641396807118927282816093248530694399232401179260731668051629087000200716072779972219198947428686159747757546630124115042879904828759346597881146256954398100046193139172408804994703204772324359160516139142589203946526181124008553749267031531240723283747524196744407467228363861594773855178325076480984756847193417159705912017212778743746300059050839654034677399788987168826616085679532601604007087134432384057091323414764434935330551821960518469394034552990671629568940629221636633583809773887533983039027577595030632567814992581363760582959306750806740292478672308030829813469758606738418287807360333666786344681023575725252176642423154355372172251219562027270977265036885635570404317847771623729940225192463288844751098719503744236663129003662217064532480402922396524224054597327378512522423788913226263825196673105291436415098009506850394993431098307340689728044235194351375698593626342767463417313107951448990166587726252816164161918327224368137239200997887524000030074658764987094970319334365626305437138249110473598576706947192272539611085121245887571608631598894050705088136412120410386631220205545824729607118877788499757062354083249738599557771103014412752503378511501627779543408993966481091818373743362883360383147124598149288459678235926829059434808932424749989657222270991433335718550515934460108631337536271101910056712811695518085209526534919746617233901984284953048307479469662858290656522938236409659473018333183972919657612184314192918923195607633362887637547950058905019000194312196877967336738271794544001610185921634488970313939494905161968202183120484993644615834828439477367829830093626492016948330683314774906343349385368052632552893360368420272770680628636280481511124487748709675972000978322539429167557891322731100737205833621264819045087722533631280491860435256809892140158712507858669802803640209612400580084328075017001821908800364956751186711493979861600068266405966657790212069155677489329709090785925114852316273554076339498441499686109666411801208010076745289573588129448922269847095957542686011660810965298971957219496557397028065120379887733700962950526835960217264609743888584925191322803599976569377076169281790289875166109155390642130682885206410646289699433374647621872048683630974790335942396436222002496363013863243688114505371809098798099681707185124298422737564174621801592481267529221853997345956886285690744327858959335854479341336613270284550291094551043961572143287944590726777123253714184671135719902540083032430649503179682283063057947288958772407856603512102226437671609324629208302556191667551973442215655137370096856660605528742429846129572979363691493944087735862969553973570076701077200332529810904329719185311584942554226111055620647340529164025656230302483235013673365400134465512754870485283235609823702980895504906047541524111318339357244668936818188118858413986150204688897643325348546234541377308364081592705030257020217216712821815424794402346002632719129723331922009887339711558587394786865555208769612047296618942549501584267536469012065221800497660562254983153652013776352827561269762043623143318585626392735407120744980422216239260709123599466392005118318000279490753475980888900195838184266610849262910311702397691305667830699900301100183250101579110630299349015497686784171626012762826161346032747311387538957535050201268469230532248716490527487288456430211689283857790360243113647565141330743655056270243303073988997942749832740363927401933944162704945480300515267892978380257693766595513852150259487933535224112771117843893510370758525267879830263315199301791483333735390155927305470456406832163285724469186898232406676875149601609241043552563801300859370420846654198528568984909462764873747675657683913203979953354393273527306021262519520526541935307229601512240825819373413175767195731373479727963659966933786461404974174563040113643115691097894207704373900382039523584027663900040108050802353891059600134190488134683360946080001652010753704341385215963263214959825029037229607686325100542884515926660120696238738803279317801535620113991708799808913852965724898090195121319367685334675732688840024431430420091301360964718565753984103443579288190051720109512049176985963420040905303443165338701176470223749160496753934691829249780499672710976950866506922728357271172571711436639915817130582522904251851277945885899459325540694826387955323103230132351311798606958359289041688175025610843403152523840826252556581759851586622806700736706856433899111411624710673464113846146598215493338795196211254793742907402908226738288758935742845341032134413425102853557591092699087539161320778984320656220166123329294292941358655457521965422828441975896685463363254609168877869332045327067970968707726924855116168162506141570816247362704008613246477465669869626197396827256496487181615465864409710608566980491051841574987518125531752041978752096190559475643147067575581715468482739550120965880926234639886550067598663389219481717073835634923098227583027519260805404422074232564509109252571855589872098915973238719003493022961501856555822861672954961012450567310128077076257108135774281609803228555087225187509900298206175556615565849502830650758907483098022015068960435531356750403059267288712066231391985007059883522179568416824184816170132965074919932679587218063261679699750449105024955289106947026827579531319749937766073849577253500841412336839876888671555359259666755617930324557801614178500601286985227796354512439947645592076570425740675262007534694209779522299126987646150959776010510348111988187401390115476873177549565060138026902511845760590463273292390089143007258121387425431980803558329884097992678094534881662102411608616035008030071441623463839826272530375203918800939232397422614010662602378395131295735950719226801193662881073088042975213460178762857457966528256059701377410311088507719858838213710034971180831965773102879286369039111026277532726966331765049697158931603871151235438863031534683868789154901375837152841604285142941222897278465597446740107307137167499616145410724927801354327440232347826320432882611591219176903100681946732566917247311106243068262802739366419026029773361923466971909546002561261296040324202757386404419773270002240035898252702417775353431059601689647510997053817229005473750579605069533559698294480864080229626167708239332495351302887704469773004101996196557253015861473211655198184964383512483183940585242382160790017035973614831199471300597601895709711487637467115324008708692309863712893840999440693833433886004302551419253015628715666581905034170490059433835955370553034123511689084398529586919673249111794986579158469052470573174214079429262381375721366023062897041976835616676635799767055308010318427537391049516493888307995047307406125925746735490150243831609154886795948836752169016934568996608775047988009252020643071572489672808335276079334991794452757132345551069917150658809303694188942714594140893975117228158981301219112593250959781754630614479222882672529756762837768309125437321000715086070956419142992676406312995266643883308983854100105084905263233705047856849470771920533658471720862857916947761837944460729732716467257240000561590358910121909138995397991553003003889307050002374938765370745042049388987132064818715393571187635685142830556782773929289900124793646160042798825750220692768388773642695145782781358673874863389257998449134388519040168315313981978871095739898315941456895543092761758155808850922728574830940593135542610407157468047630616825522494578475909942685086308554745527103537822082267285995955834792559669485493419399707259950448422792056522716329465847565746812196221212705305525911263957208511281098966192532197303176067709189964787961731194638986907667976333042417863851193205433914202107926314209325254504196270105722694330755892584677132582762538094751918094659773243581863886440028985175793737493842851636240289498165862036031516941951877634555903341021856570348528452394969015814425922035974355483009490952996530480046065772454448573128789031736070444721918843571574004733433941584951692267205446765401829664083425555285025993474275350040041818315218278785714008654384891888562958874893617753246876529235146251427133904242960802167312343736724444647418218526348630794921041173006681378043056863772438111812224726279891757594086650794050988297926277201176972194233898342829061022107385652010049286139566576642308413658135408525539100860519067518681129300524053253070106318943595013256237936277226157146141517145765805127576811440946806971496159531765317535213039730122871733831174190237825794913317749542821069534912724479650596574956270763772604828015949453895577396384796268686005761320324919175332654730638546656595308891425162420985474202393654246939661147191111078331728321172330204750600794918919181601129249100671726884765720834300366926901289862247883910828071337113662348086854657289777719960485285713642984576966167450777811500541236092945147750180406904659081258335923505586117667999642838824142760422230284248740349401332997686042816547871003693783353959290748270911836626653286328409320116438411108738049528269631957851305006029771961127944189244968094031652861999456861198260378223033341704936112112735833272644087096150318937993504813828563301444251063756672200605520963263156177979752302719673585184916567096667787773990865420157923975040375682236626761270586845947160621370012006064651074780952855217625611837661306297668954173519021074218571190469133581070806047876077568394050218964522324696977533164436298155825419395330750305058676075570321375193983635360772816805247256585757390705138704818085316486285729725281259448283977190049836421971459082776399881908220449581570382894325685029089583836800358349194573977680222640300106681763604192556216438353297863235949789912904976375174546632284640318014652800765388996952185719092189988152851340975648255346274635009248286479895034461888552489220874965022545188988536841896426837726588149391842991605263042620743389887261289670357686781791188599872539915354541081883152930287965052698961544274537901144499190897300304045310625330364165638220308717604702111737861661935191413774134352468572042167394108539817370897186238290640053628670974481305696646761945526173819724159914109618029066065590180562026445963958710968357623472988812944721881184412788815169552199383162878868408936760646327241646531142635399579122315757581723684255878640811170371325084264069561045935874930145263587855568869221584110858020827262305559352897469936511642893088664383029649230672366806756176959969063265398354120012279047976407843439733371234700707358806305742519989649915702721620149599434824027494843200544738043350065656799109793526498811066041696944228791494314163970403491452321245562910634288207233524094718869909782039016270980876759788689934664032782665920710521804976154143052782582567621265634037802870304170187040137218083360711351271015971035858407559999829296907242592106960459111293057178702274738508634629906143371501954011904919477346032361140620003238462944227648516582680225003790516962719646712315104596773835512398644420207854538766569470370640780452592568671661433856169861404549854440764409922357388645139147798640007761233298707345867736107535589356767097722683126691021381575798693823703043692910339984681208703941693686308305903988479053234153548196753316347571451601015233498882649401039077526224203028669808005093035472585644548027312589194279855445824513858502765253511734985223433019758955110471745180217422266228001813834806996583542175480858936086548345346144453264089575525268184044930569778950424176403107335095377950932530674838651999987810387704359234932109560559000847771163657311275954995626158174913508868305133121857195872286340895660685486051203687407327739210217080271981049993984188900986105945120518375383087618229612533279871315778801074256118684553248554777789985625874259289896702510818189596708067899454405975501490062078980647356868605562141299524583894160833741259480869209419530846192120771233829287397568297431864535150791166524651619003671691756376895000184888639776075800285318804473865078942937347830312830478465663199597894903193090787702842423893681034624715257856807313224530754828354393994754063198346036879114859956730935052662365786991243256194025973943698055637273362053670501218604007333110431162161398811119586800407060741129796216421523966043000332882004909522290374487412271726881957680572142832108837200551253704518110221064906398396034490340362462208783732964967837810864915976122223487011283115651331237059603516562768600715954657380815619562044851419742526567549719513168457387477718719430273089860545666630765043495716657745956368995667328486931539180916021980805889597229929703944128261301654055983195247081147780652170890571960350718228513194976458302860378137338210232804658767674318096028341174366981540400570230514047837651418760909848595498826370096005415304839717481656263143467295864291997527195215749129355846708440143721787147138341152998250379290548048216260480951064648714323573412901119810738520487946789264173086857040306867789698014068238390532995897816204461957521396039037688074158103221550713660758937499498422409331248733943169987269754814974398246677544629398027992187488752970316855064518084857205122269326337623428507775163153425490416588802533530249746930487007971468718834667017328761773442841584198732871385970321285660161131041503713924395061977127027362714254920382549796526684407843984256737584078934167244274594198782275224141758420494557785066266856740649455877011723430142439185470438394324076091201462120717183133562428392085793985867497162988872119954126845643675119826772628611469624223636609861128872235182019987633825025262242686077188112623057544773284447936027668387869211645819000378083729319210500720385965442585792735156663930531798670635828304796412021917716448519079570785107276018619656167037192746071735279569520684239453219547290406638545553463352802345972429904692526761542283206683601650914249522124590794523409477429074280005887592689095500736338414736626621383331952845576160719794244470114927556130323096354862038118546510862014643133737881564110684199876614151028565677074165033417494025813953776849758761776138206701813211548125312527050642478778305075697381540140541412758164724127179433014785776108357651047567881077217509070509558565960262385837347691301246658754881616520838126988674389720330474013800456672676806817114369138003148025168192782058702876834809272904948077172137205008094710724072765111246089665620976012310788340494952633823786427543177237629629471278032092647812447670936266712952420924800607635959991081701882502454576506695727458895893474090876412315258299256809525768686355333630773642134283949346983731609756969634982996635758491094977064046674375259212561328115872223494031265910945610289314135007384286387519818282525477458964905748235503392160602263675708365775590746093997683984854025387921043055441063313129036123490920039358683071989164989064593313913041823246920931064697808184423661044289618383207994447517516102755028175077699582117136003207792308210916715102014067386928308521584647423394084009168743092207458040139028505518253879037000722905053230864431484264754115763776975146130647379651724730244802452335723755302486322919135142274745289219921392947967339534042816013017502484879879114680878809494710278486091898184302690210899314439672759369003695587505019030311674925287410531660006084116251001459962828833245358585073460185026321844917112592974846275417048430588020503629185152900870701955565974753774336206964783700507121510589705138433584248279398155632555991413012441689321195633471715640845179281469035531351580636383318120788857856013954841956672686571598499928326778734325691849831540428101774329566726712715982640153333926859613166378793945029685796035118960114920207734639242059505268801406760839789333195473461849493016140759940459395139318691518605296294406800062061876555371338981888789548461710425239064699711149645804782041139396853572200488114398558471300116216311480376195290519967034947414581430047680385824842094852405761091639147812059105505542745002255099624417538153492808350459744974324798094381033490050085969936768895622714237379202221426585028680637651934091389243091503558959662341536538816159821968467524087784506430393781805441616140506411993344811084422238110289531501797030065879046937277395730769019804841409279773554200975289920032940047718020892668647142940681879237000294738570974976987411261924738441185255239532159724229044016907024955638637603651034849534434153490157084484964066920129587422191083980263250727705833835151174493617485020904460437810130707759076391805448602109367782615937692314195048380262373335592366720850066968959424809136576255193706355827798350699608216305688181442775472877929234685346550398509932764027511687053577785645815695265393449550948710496676860519402267110458687672660265920709125429531396668578345011699522481001951297279433046841748685080299180499794423749815198740300750269470914999289405227465848936025768568775016644290113826633929676698666472317268242174406659591575051436518772589111824496213851326847798591296728933855244351566878461111502263259311955216320667568991278125699988481747190619534915055587058326424694419021114701911666490156607883773718838319428894685222321889952643633679409031583060990390868044810233703741849580176856109828837805799571074304344250051421561296354681128464431567783089193521471532128362794287614866410600244668504026538594613602917993863493890319557880969352502326789570046167305471783251324375540190419048539988327662248910212238696219560602110964325002463712636986615572091687387217463631850831659178079395604387572913876705305564926353942113055426855907065524820192885221840386704071008433781689628324582759160608003148895920124212809715313651018530705302995240448406871463226437279914941947468261078365621455990741842600106684581184633487242236574385389642189773859222969688843122406994628157307221183658959279092236233227284520682505651789410744344698992216157082930538724863869313996674475397073657988844018163481650413479377261772264938188500318523014455298037437947162404805278320819424617506754617766272043500348557736579662056954624288280731812997215970208119960977005902026117451039691424379609250397459280832893673497939909405464200846962239783520678291919241451833381153907804181068242139004788688795941807262308445554202273652176879845516689920201646015569665489811142409853274179077967804046036674730467641546014270865989369877869986140195767260039563910481055634071670820676731359602990462996671600407122228277028189402262713199067682346795233717947755988961383216115107554943477176298509391588110943299841138944553932611179919361576878040261256205768082414370919450012600948578670143241514120493039498811290305640007948038009902809827378894449750625783598733114617860624232983830921617904776582656826888387603857748078256301072640203519810767185389648842556383533688158727259305051276587843673114583103810720099293939241970931582157267551588802505551267701706791958275211314434130025727701861611896769121572825979419667856024405475684680308433069571320647885647624974472984046924819260696183836090130531809725188609203729561416820469211415018629580644172292862543831266647439820834581187665145213591632584487885483239748605902718478692770501089987859713382185209581057050458460310601206008822148747112294386296777446753793820348909546512998617278195102032869425846590815822344137919839044385022367387374249663922674451688507540422306363784837728884388738903777605159981475929113668241328358102089652898090503530806440266366483141973076657175497258815578072171065061866538287487567721778926626813775506842586407794514053526667464990979263114645304182417953668600783124887703640994280033324199876567701284095424390991203197878726089243015468277578278617620646866775194533927310267536421715852916124236359294134327937463307227512864758348200128683017444958186908701905259704567133553166482111454085154717530351140396598530455216073208292331402909975415501609300264088617716376189081977435608656428412537361941802341766631739176621989493168928753716918723645118789104431659678771380450616846113231938729177385258428388567282317598367932404321030351802649542457644413911993548305449556872029303555931742352459872875548203854435147907319592528651385815582684263515873613973124451382636652726958132753718837115742721824355733133947850996520767680191394569671562613869532488073440328693379450424151356971267026565537969783919966832157092817118167821613274234729429038656349679331011073193764354065938439168733454011863731223977393290079126179774471744586447882120476409059951409844920839309865937351200255071704546398654165424845667931035751754483265636078069442483237405665265037666564005953403593176427521916408435229470847834442755270348868532381513217206924075195173501952669361081864605351376171217617641975663014740253728196027971283990836716419691955408606085805284078438922038020498967975912187181863076463706073871607189759830420414909538551143822381187537602539828288237472532606391149768099095143858047474005620520288921879519985807748916848807353105676035661605745344753923438001039625911754989518883780930041162002324596272520699874828350491305646396367111990372999298174047317411417386678215405248372187078301706675771634037631959762982973884244626773071537629919227220599305142822190564210764760788388360351073879894044034891712155211661161049420303097108068644040931751236301626268171791612509869219067667343264261779392633750286370915406593116830604027539112595649016000094560069647441943389087015806728405521906281237523839752489551658401124325619616773170677923918134927736989405448956877372952315726540703934042512328967039158973473468922425337872004313483993885277086649169665761298259014765934836445033164978561837176371490220043197234468850879152378408537352003649484821855185093857487735821315928631418581935564045503210616891497413757427833662245533612394822676636681187072265879590994172677908177442544222192036866647611704028202952867558146958930920226677609292908081235880610685512031738437236136228022309320511084775968053669625285584138442329444337416974139435254482117721714697333211897086235992549590585988738317346913037596188835331117477777827035798618794843255768698241289898829759104819688186959150958895168181499534904824725307072207907700060682219981768370125924637013571551467534409896274189781095143601457881567791675212424320321518086244458728497670141638849990185304168007154538383459638675054289128125473526367607632675940293907807595302907499530109727948406406763713876289435813782563906548470323617007078715679047302827771682753076140840976661997137211695759962338922182311614289292489769605647883244241838932800034210441833321948057057939185137283718937059413322883471969011881798881009078578915896776286685720571870601163987980663742197866442861141156812331302845156600388302756875333622886057293004771024250451451108830368874578273985849033082612848863201602862069310574421094375556843839697680322341646448915860577776660202569276194165620226666246043107091638194480252168472296392077943987643411665531939531372785722207349845532267029883508399127634371232338128640411761464438149285503912001918737367133069579897679030218218851306134949866201177233139710601385241243384169004942297988023715696817013456667356643808505097219602447492499579017252989387822389202711696404217990991047789458942890028428346198642019636458181616284984023619202930233543041940778335889239419329603598835485157157111924813750882921116927157964752049040233776057885312922710363820342667812671768152053526370924834556348528074322587600683716646355800299996502603848671532190320904613008099932250225736895615182887236281943373619537317067742619854180405654026174538515568348643515827587854058938979084563761252821650217623141228560998613247587476787938401986836818058228607982207641315779338706793614009535768618053278282090359988884238818159007570714892150004458949190772257565111000435961810811478334123822967162205138989195143166645367966104344870797690825085972472782344793447675561369945426223220496159436809842869382927429874606768968036698111349113563673160123257758355527486448921992414059750278427760090165867083703338162510871111134736398245095912090014788371114503679626831391684553672104002182767421132295857515562684530037169066731975684434317108541684445865608713729341795681549095529080680653454420538663950118381971443232064711380014873830266888636193323009901128563538983267312556869331488118850829160340199824968025169596486364595492544210468650591395712401951958434212006525689339303124188040034004824423197938200990891956131012294267221302376062017826936697136364585939923739863881680726357877619514237744966436834930570808463311092719043998590896374853705380268882476614738958136647260554843166426693269665766965728766266906986123724876646359086188987367342493871495181385516390111800563600058792998431978784339697928667748414839053856690371027464441324127841545147240875143577110136544186415039429582856032903659607902237464683827366566650419841089587593247861276507943639730485871821708311987875858630051585053767098347094565386006238424134995350267787371441299219226750591409042902611444790957009288698042768209471576371079989990044602330598506472054261551062932111490519004934906181880314349014325022152300410447651952770685306911868790830217022030099754864874584578942691151905874610946401403903796149203218865519751209960093386972689088509118405666867343611263710434694615222333546105333142612868798215959104356361670922345463796818867593083886685314670095441979253733649769669446007511912573321005720353797879533918198570878087933706074501201672082517819613356423170664314158367739195763869507486598500911596230455041089569728974784707011106547960597992432578360117642909592342363386305172790720911988209339461391164610646061681727889200293491384456563648869156768256921339792428992197573410196917306154704907402532293676919293563497811172199774883781227297784757258475272048111643394481235083451550652127354753212489485117931659688388856169336143644187863708547181435488589935759701180423701162271237135399743004964122618688532311240687664017220251804571254111691127528099757678515975063315021022605974269378559731204231029355626539571560676617379895840520074836221463411445512427184918358444182676117977662057980110905220456755854257134114211638327541029745201685853945587996632421282644031361299375499217227070803779856038073523927128724641306582356475177154386308936015484365007349566078824630484342056583991321995498153144457265886140212487332382063710006682340502780002126751498260385064654691835845941083758107957879464515450542149420961269391187782617679541685708160409399388137189504433962020838323008026062756878330948813463744187084852241110033406443732238398404281018165941332337277752220224206413152164808467243711592475553028558035565184323731089758393919196092661322960108406964453794276481193854863734775295614819581607470138551349161261937490666383530563923690244552586006105391112960019911204917219872249220672922816908996186275543565389381386353326727712435514556068521298506284997249781714476001141862869811912808823608676088297327544534596995584379953177478190726755298522476569440712731309625404305939862830024842630355815180602104242678095172156732132464882658228681663706091429583351313630338253500820083314390872576225105238101549810790900420387749535836174239049712475543667360071254663162173828182095076806768479325964513559010096217704059596524941124910477329184283810295592648126535701822091876791683090702726264108479430466358209719921848491906838114924498154759461310928888087882133018792852622236675726211229107987037928636071783824163906786891745059863178696807605193085154252597820533760500262314970837338007368717760176212123116570325064703892726109441845157914869814300357245919030274211580543900224970855022162069153550846227398851444050411650562862023047263149896289305442964604750982950954025382074256019948347551609618352342677110365743373491051613140218158247889726800187350855411898308893100081854858215550409981725714592473742087507871381879308000700365460840257333886457812767098215273549781087124302437316840485394940852798124823406863219765311574180176197149552837444052092235586985208379584042274798023937162569329257583701464044221713478994846418339537204088939786443091355738965795201510938057198945028421379339503344392521876975986032245677303777666571486986639875796453508427262913343835296916861817202235857705057885170783531892353425924430731152920052193238775822674863168447002444143486096097704707250337027464322385251737127274236065184905116463580409669081438129256846799883550952587665444330774767415200656803659767187602342106793494284147274116421057485624530174284809424915704070193609982223253778264424147554205786171526705979813252655247961510481727534022996577854981997362483408912503179022918876953853167109589554828995088597696163781304227275934485552904037642250876090080608694033875351488569133445319181179345649360480632479157581145092728960296459806195968183543565912211632981812323339437533261869844458057637238890488848664844940261119200814405848785468889425010635363046946428422427528067761160550604781815977902807514799826226691073203344171511713953067890200265899425290517692586287036135002098922117486994869526430352387709597203878183366842798859088767625402092525571728473341377627636659489988793850843811525596774267206695726871869138494695326640800019702242487923351591340738516599134942406740349023930078549582335925152701684588632298802933443057040252125795111685439711701002810342461497509841272441755522340412571932010426656838956615129694159276028750360447078335882076038450813919523216675055369304644131352754344295612640835846488864070736539401662447428362250623018951000399550019205294854474006392976186758530014624778122578730352610971354229689707671045122994122517526029166993234116377345102313083775001043447764925943888030256382205778780736891589479050591239539585827912733904773297097326319186776619718861009728695683718362759514994505785324736949870157595573129004902410387935456052766403827937948423442463841761271915103756168225820214226732430176753580625101506662816642457677489408700375111224400251149190573627283699461538144198196402169803607143340228768817707627383798298547168616651342342798415208608759983247781243810807112496001598029097916999087561830903751189090393424704561155495028229563566222992148992370499781272362519768516673098391175941499182863655177805241050987542758459862354291798683869821743740314002016748431603380980607168191601529388911825038271624117289458852316544537933585254614367617106737170909160673344811439774593832070800010766031826920025657812764033397534294365477817574712528126989371507624270499026800470099814335980102094474627287952381742488324954177787679351440434585796948426048659620399287926518142834246344767830231887824449533492855432112588842105395005910038918795262564378870286416245819433104665839885026063724432774895443610602235385211535438346496428801645318324918978757462454944015615378736883235897758614151657960943594547833179647913543597402681260556331559360604988439542378972634855603511278194322526964551113897578110902312685119269664228005897397346164818215238915445183838295744616331102084960080303742925952553488050458134674700201390992764178026838263043065990009556317156607065506782015760058106552840830873592884284301845219869269386305743655119459433854266086683073997308036892487543720872727731389836277318201388766394193627866223263735214243425212393996239488017363910137972730357508476657134792233164592734542360752139348165409089972630553161544564179066650657853501858361916042584354029105339587834798820139578759607798831786775755178226837670346623519681071470469233506703164837783635418072562901260884243752616797740581773265310466639741747988604213302408620352014271769919585639824229007508499506557005833469333761986572759534651029469717446262076742925165668543142756830857323131920572121149986704770407554093828591366362115415092466095393259668266815382764813730204595164964906954005410003191027883726092817175472085505851303878196431320537627006134386135694916486995824167392269022801985573113583262548537342286743276608448488897893037834944214689831289414626444195974676035028395260799184314476630314483993705375808824321812348836168547695658943037280017452697422936403668463785968744656577982845208776822584753525102926451760616294381411808964614730919613238896842969789202185969051065787416339669047525986944261362621021950569804146985059826147429240301591071618577143319840551020772760319038174826668625112371100527307587368012911592486702157140778543142545487763314860820780734734094542999841161968078956586206488837318844430233732192249526811137435765776287099006536266033545956833600277986044440981214079243128860283019818000522477067586368429510248785561607300721861921800252294418576011958222354496504808120620150986966521580139647449377272319815062246726675611208125052516693145096105046463627649182821626573223865467560336077763465259665456462342521541332091767397780236210151978723799996273341722988419019578801679560359025872411427872384611595744859306603039552475867790901899834886114720580059592287224414562868840718765420370508119932342109375553375160859799205611634473590907715052432678123524083072902845156697303943990580030815878958902454638078372005727839119970213979070160823260980095866412255714327896674007168484547243757105249378693868368060145987784814920153360089403781641193804624111281525985423444002049204767401574493948195347711215232758175251010091082537892879948887295447077202298630979840891927086440449946251722430682242544825457362971864166297507471694531602798527525689900528361302658887702887132772681604353297900367646325019569083641700663973234853617538728695615915238971922012541606612951820089972726073232724027084658597372069182883677188101912192689200958789539210675923085908876765590484795803073010630007734819647214161653254795958090375840037292826073384521702152489689660762424475650425682204038616895241433777662968684311993887367866379938163189627795578253288944388201417193839867206058562880895940507641393718289606417447921823436274394250015981167077216192646205864257426130891753771584543002132014483208461386061590392601305291490218637870815544760817199428972769035254031231834210062591759340855288617961305594372922993868943071324696925069605248131472033086238307271387371087101977395466103993246410450147616065205047551301014190949216616676678727626840273474805153913318087080922375850698513794275141080967088791675927686192982034764986980043227566635116612159595172654292204472029074071018943179746995023721479315686935399225292558566015840935530387065736261892618820794572441032752410954256200169663804395893952086817558129164321453424207361912674874695498275089559342637357655656741071332184188690666627933316005287165820489829791106529622920260814148801266223091108342072332600391184725012746953829727731104742328274833825156078343076383752301561671536003979791155984585967088337722263394569266261980436031090605088286482152958666454637839495596293237926527665451350444099325226064358104749379799546713478298138600974646197227644749962106691690315101491766529008997796429254586482753876250042261259928112287136613779052878583039125364558731120100300541589605241322874771451995514654335338270056270442477992970061468776655404238867845385541581524711283105441620173311423257925232091947022577397477766414486174466916443865568118689888696419738357832639420912277244784637430181265388436959546278676602504570573162467154499614391554779442449061170181696960598679650185607311385589626222781695934481316439408579533087255595382281577900405330193178207120855388287291482818737382471505995767094692061868393429178264998966963893027049178168331261156673617551562751079494179481529496225338826765901905024760426563697829890365977156819488607371258680271590827181977750711231007984407505258730324124707360184494979077303432362255465562425840022827634161105512873913148523081393380684312358454251098138736126529586827232640810211349290315965153296652682629516166485867366001295365469912593650662858771972309922841369796043226469832553825201967369837875915377993278762846863491534095671418593186737408637164175748557627758966988716025001817946457590232915222376595960706682249358808042714081392276292363965336361523138779586996271008930851976989918987799220519299338132102432318577911503568779926428159157077810539123485467913194079948762424880769867004254810055339171678264343500495553787076326890952723073717468252943848023871741450916737570997658225822558526697890336775199280419208467362630261279535937906771922249401623172341979321189851750279624328270170040682445659640092024074714510549134511169511373770886940560208995680913448726155111035447151414327268228578410071897172236687926501578777222403784218903060982709617095856713065601977944794131828257822600933935166014400757056613130482745615979990285270522603458462932749114952236703138190388253395898520121694082078753732784867411129261579934516464820991803826012241618355922398124333958183682941642577084103082835174851303878918059785837164083380495457158784116159194524178189913944793501286823174674153796492291704222028400450835094272873422442335019879868056367500155965307541269886962389500703263888712369199339472951279797880047571046250701408519654348822091959622801592568217779939914560974856635096727132884551214894682617921315242559350876767146200717356978413829276130590371087881923523870775144593727836995646853054676555204288985784914009779248642766216885931368819774958575444205698426585489011696534005595996337482352593220026393231518962629044221769675809132406010125216038058417885193866254951083659061345597003928876105351293727752638881255231580214660862736594511437880919169270683133134261752459070385917022087239262621468866043083797968010763469917124433741554140485227970196297623248884961360612892828453925838034878882704682784678373434208910098719851841666661041805914816899311573947052949966146341053859103982167381952025765437766408940566778000091003741587684895739900481363926575430454093841573390145816997580770079227749264443968461288215736190123003487431658119518379806048105630468494080002613884869117068824895986082092906890201445394882667228202587855540778544694258993843460631914103528830247663573355322156883993863869897495336604006068814926431959101339248227737729530298714944554614781389016381314118168094256261044602727550584708595035526848216910264978181930349278268401874403259477228772947383319906314535251772365029651151590960708304572541867864634983147907678677268047402735519991644032025134625155697489363934662794492505658607236956431037768464347024481619343764292833435744716938338793690194071319450681454969309099702913818742118790242027657699154797571381138733674059975409153153661186827336445922306535300598382737473699764038427058153302666752916887752705915613671470518791212764438124884550006140112947281845432086553840536125774436365733816906805913412957087384029185137494556132238105825752681573442582490549158684487762655726954629930484656560101583048442936926986004705443903688408019401884960233823407824823612948793750961131051625420469017228773694641680647551238443426107447433326455274297450624527215171109795483650407701614562340927680348398420460122170828544492545876972144031618373425144039039548053552783292708533956834456793363453826914041611282410399051435883291031938267498348548586861077132135046626337546280597395986951045038391761789661881639571907382611589363448088105826696463071332092974892063142118864237925704554342575421205299027669522914771127404481994873930895396955585605112839613427521959409356772446517085498222302449478737137562983549944437373874302815280751736022443958571895343937804249983155567868663541433017918314178141884680349500033443064344957422459375071347889314998555303562175516114435733718258999498934702037793686617053362180198922246691446757962723352577101227841511143271565942437998372382247328611533786521041156450361537515475407234801328730423858282385240342121458932633471737426073121381493082382496954169861125730248015043609988702509158922838243809649610050676366555931536933402479813546176010075789688325235504526412324884928742619659155219695605995004413869877026299046042458195174230842706358138690682220893543542058149820660994774368613639191067734516295814008975224610345738214861507606702299267050362972163674847019960349044225722695758543767833663566973106049264913909091132960110542224082199379224828579023927914208023767375922336300773424074356243855563845998782085511978501563269976593925347575466525749004044532209660571295742789431797486912141435925626209040695470228636618046798880292312529122379028536283971096675368876377426297793918696735994790913471130913482798754657795382916470081531531957899691234625382954801785861511785137150689736695885544236828202396745349100478812361046281172401992951174892686385494289783958644672158112167871852123797050005874002721064508358475289989398221305655318470437551027027649461986341192508527963421210746137657053000713772110122585784884375735091455494197396984109118998355373119594265170903429474649059291113490257623317728904715455122591816038297621058644207787573060506391344655406944127247101296282460575580382196165112248277392199390029638748222507840687074440415974327013922385123732824652660516385687526446885034353665877660224193261390315474048297327748523048936479786528541231647949131761372595603234258309711000420063777878917444521690778511792009549601736156900476464652338793757724472226797644503868636453223839705876098367178236128391409371740562383703272605438077147207415139040198020394560947214965353098928915300337192110114828182763607262684262152085134464089122606978937127709564279474347738047041524543092292548798804744265863741863405914045623590080394709463478497842115930484200047114672642858968666249698789290102820993695053674316614287858914665551549166612174651772166793222755749339800683983698601014337263794733674752984056395628316343100236152850008293459134635144138800233658634782157515824342239934061769045938237716352378638800981222890579162701607547004405521947146015224459108918054841106314968327753949702662149977974467445614958053363828438376071128825526630769356561126911952392209856931151172916341963097053053911058512676958916150003506094138753467380310280463684755805131157632211939288046172845545354544163529201210018489551716894522837178052517957918074704043021715473696169527005164895891488312393784793647850910848264104394591445318528042938460211002521404572009116976620342340361010787033974588686972374284131762873196562424735694540506170293519325488110969282709687658644673253304237792165328892127144433778787432887831700212237716443077178383666839794084053967472158002003010252852032080879159524921463499540708812275427473557106433093953920918448929799005110885877577457312648355858737978735144872688967247825909327355770621800852489620755201662307355487218936472516065187624033810444727467644703203417954482484094516741527329176952898342765193518219565799647258204631531384025809479487156904143591611572539432417384735200833834035557121610605514880929924439156360886657074602100071809853708943644442994450822221992182704028495036798633653207552945804575831969427763028142638504773497620353367501755534049296555293772330991279565075211230009219471291967018985520920368025191805180491744220302039699176291116765478609141759854819795434563024657004387758196143068406646062105373821222038512740906166390556371291880285738942145672229554280903116931050263817774731194815585783806318310592179541953160763768282221163665365361444203561731710428598381956019156424444523647093544350921356673564641376143944959136078965054589800007232884814239587077350577511043698807601734178378168452528219842227200314545146961232024386843996466748183230771027772402542918780257815131544689125159404977834879767740288920597556547513110936527338146769630596799427596636319597734951102515031674675155736301088017645367136326564015785643457433860765770415011259135440611918851964462028388391114009688980428593109384174389382172427761435553981955632731349731936725924528828393365634105606261755029686853498738499977783459708237146018640490575920602932365697661215980412744141958943967181954225997312444026886184107736790712603871913784147398104690563014272300020048143467245208771403969700286715753018482876003921455318941518436118724825334064174125973284623721250024702583377553011500495950796603857606202302678678731268254298467773919770253645093706251011423170683345194446183102629110721523010079913709078765493401690665253330967411304601350335447784943229940130975537222982681136508856471742156865214722781247090462244522477420776553756137607401065693684269238907986678076004150777105358593821181438447444075032911765908143532571182633138720654330979349391982737597702416305293900012410274906524980387767306040110864088251505124314333845346410673120160004932358076212998665286743355961593319693227915955801518489792607055663815062415486241492973768981913750075731664862998228679104452518539166490037686849878441363349824757942635360298925570556963894082841395459794775341646795514427460341052571100876090969190704138732774135793466324954821396140095950642549731494304550980616823032235415692319698818867170239237873661110456670834662856810933066118071169286014392873681220377350505601642788809288551981734632070826271873578907123014198771432851557229674624409743987719566554338374228241661328381628616659758133707866191019830694198798081116015426033409519867863456652693210209767929490412289421618534084733757943973168511065000095859890723609160121081267277935156857549441725261404076810040468401711807974690357366633247883168128643148940759475534864041351969583460195205506532432734272222799596922334068981272858614183597767527144593376382769291167452736782245110263000616031255273917544884379034497263540326838468738740945746490140297241351968427468848724142289843423104641657042282399354769904068873895468447731991785455590131030833967371517846835849161119497915542429958991356304907694711472816671642424809947315977987307311278021338729795162056080580593918989171423544730524989102145921073990256944529435997605110428897310117549433568198974578648201096671739540257681029134526834819439625424565189988137602867509063380005924126100403777424680209747444478688598758382843463970372418606930122468672409750132031204874367010406658270599262149267336290155527706922239370799770054978500780326959478198969762562149661344223820740995403394971565465006521159221557839445867791466041333757620463370385346944356857543717192199504970360088924931146170796521027109026703260057695655836873039249639100211745582160431588120831280680380311374618396873044933844411689878625597038379342011014305032966302136340694264677785614248117914369608150543544050948161652309228636623989514092695470641974079935652613606098377049492213453246602325821486054042039735793181167216805367518925623925186179895420116378229568096476045324146322799941543270969407595343181023953989643818401145415294437824209429158602317557450520436319336183969688183336097043034960942015343177378785227911131023237415359341133477237771797734832238487782119475550526355262524686754661754060172467147272719221497647832454065975805793057423438622969098328989901565653970653572855622988309522784013564932543261237552623909619134084144906644389139433802062955985326095639101465765997869683199952505378688345093309720666447130251198792755843037625738825946481399421820499448702737105160718072405256616994824325349446074704879735047814624200358194127333951587077839546472529923499027420630997149221997976444601499332364620915656461265499004758817238434574423917607394143314623822836204796316218917724925831094459587658391319941925498656495825618352299913944905720851770318157688656695256862338466995897859653054019222697481624878602374441229513701666858711333836630086253518825773918264408852704590853711966675852472541608354166633249026703585212878839735382736968788384024737636093974557514603965390253826206764966098034558036893356513731507699800593390872453443514388778901230171860027011758154131651551135092677647800491879638652039351648166385475799800301556291083342687552570441327687182110861659822859453744005727831544409105974240761722786996960309845768367034150128760707958804696234735587005967741896843593933973513972575065662080184791913794095114855913271520093075245516945280849920687054638197738006401329449368997035743613155526229799960809843171015120983210620073494077029337935242233090105109551214189279968616647001829655827207691437004457634111510753245839076210983951186758229992296020952452190711029693416805160306391290020336075435714014412001470111515368058151556882364497893489966873587721386588498675516041750627365592124860659682784818046482525399696544778640392089934012306154430122632633730123763373920304766750719627450740135815379182475120668312788787688962810683559112014120315754671274325144859128856900315744579600628804532450361804578197247584728817907931118677125450338577982940215334788731680513484848684725353289632492814442126911834542875257483465890288721802313280515188957356291063129218863280584990130827618695282881250590436850482733703467225203618934845231259569596261351654254518835138272414689651063311847097456459721317723343840553043795944476685825122121360651145987268397259272937221640707607882658424477175200501935997050783709771473721324349352719734029330744841435308829765921923205800826935553132915561062506081116757302408708444964167770660317738123428021335206644710310802273320100694440557664220030798030241621039984510026415368340339966413438495975523732613601979930936862054373751807807557271189370439334068750715974453151956662974312811650980091532729970212396996172251643262920335366325076715864574409411361612477771678422640806925573168606378819495202710996972010062900910974600131856622588663709299053983789137715110497485821369314158402945775467440101431432843030215509716300311538837494972737352207722720816348538911098185968997306798355746023775647861039862000774603271184270412287965018703843813722983572354426700381489939589358209696720792512345701597821574569743028286204850329543563616196997645033627889974267965910748973017419277401979192005845469344946510528860878158929942134632395873217553866636111152878843871647147063167854245060995670755259765287098795052294523826639447573992245174346571058469313758782635640209968992601872561938131852751338700096892829268794040411259336588256000062494389319564896882564113732025074812058577579581084737298685186785840375615654405310815727432145516181661686197102388576081900290956478493888476248592711178703116277855982592932094144480770560718561842479913783522594500251158609127094955855565241637112813623561674125021304126358266120922402336389368196327361719273195040688649214360427056536275361109520032143647134563998570126920731761605053789416511919857001626673626717342483500620777826492663904158066111552064800792416813388377757484926035434747818182968326660503624469934948230253455838305870167418556932790752985327041580612061156544216404662751727581092193776941365696755528383703799214843857279943534433022373353240258043763211390347670082332529914929176729686727084188936889834406414572091285639051810544245398471881138087297969552413364383821678496808341983201400530614094622376398441759218818295234901710144007063705994827138823169820772338176888504788107795492491300294511063517815772827347872468413229820790993108119999095181642147454277641381746531286452179320477448817964511825346220746272727541313816597545155799495877204526829722643714186361060118122937869301442403560849467925967483108816762282787888196181811987014304338335206160387067840847206320406388842079977718471450152476242923373853664641686808139684941692097755512063306057128617639280108340235778690557821030165442133496376776895514731494752364105893110387145635920268127954044178196577629459203693108842302765222758897451180734511267180949246343288958519959053263353179233966909199044583397948990483091443175247415510159831555915673575651538167190695455326881378587290730381558010214199325866830331398426397092595404971691813006982707568192510473382265621263108848059103997705018032741874598511678742692357612148240588737683386111728466641797660974609923778127361733242867284568138592326751101971800603962621220815809248868827109286267277648848202536787739239462536043818399339275050362429614536495907643158795078475884126301600059556109185821735510331229973309593745344132837106721536049389517281669406407314402252587138621282693362432340737683815967764334437789309785619323771470014123314464005196266906487607727878780917531623101035462913751306197521199812158420882918861476518766902787933088178232274880851080502740995149234042179896047918032536553010183369905727572032550541400117517090174670575323340629695248599146398225942092851813892289669638414608039778223442513036711368407357473600641275521410600403239057545365622892153449387797121779227516840289852973307559671162708435252957581711912308291690416606931428609197917211357163665710717215636386227412278351576739040085961822840292281844582803188392892344596781474669393291390009076703394859716199171241012719424659977658161197783916302766789522102423169665840503798241477485355130060690452348644308056439703014310220704524820731094513936707947702117323513188547499200176239403535832383126793766596634315954364559107451866134217858823127137474086097036555373927033709829082004625750506354720154030814028925687821400949675922547867169326665557816291599521514759985669655773850702595503406654886074405925742877333625604478119555283648992856781397665536055195128038515838125495570256176933641011803082164083650190152187831018241014322541903089557374357714584648854273106969663196996822668157516898190771443568487841661987474431055172983531895690846404152511393234838283986399999632807065172449216727340885723422232884008990444004909771482958845745511836981963155877322763613783161690279514718770354990550594015477204418258899193301001221881946446059088699793773403564436052998075101901048688872240199019307884240452152178830543809140765233738113133080991540676080672544488953739859906771110058153907889537691715582478301146455553910789710136825769505611778423722682890701910742934433830936611488093918803516957977722796013054849773992091370507564657804956024118477919493325792639589046185819447481041368302120482787136920269057566789530603571275702211041434689063098078843685975153996978446879818279570978924531480275769715873413746814480619156589866557731476958067694752206389893026358037100795116516859905933109384284446200098128399486187158041784149991264547424414370344190888447871390841970947755902044596287161939906177415407742198070946340645480608116593890705141849718409668691697828053005917168030446288973653810681190728101694623537730551443407017403949023285856133121689615730621813667693927878067951307532756011850241700804845157129007471718568704115424855113789963280162292481021077141019273400547608296311395800715655652486119582056191750055455628947302769873776107600716994965009806307055403280502135390872444609473720055291205984143478659891002000534135295625958867004405448283644712024508111768383197049087792793836230355654981372436645100780871373064043604032828650492467748810431321797704519902434112878533174954506957478478931702306274752654774410936078689743708940526890036312898010584986497434314696162387456820945995344497672870557214006012599496266580475332717942859506265947200963448766535102702144303320867039943634010815920361722147939532744918162388233199368598248405281906626637362756655898114761158208942111903798269349099363448848846011263628654869718057834050209165104775361910239688437807248289478921806009282038194841276757060071711029291448106417731929963418758304674380376907922663283961788353018820266448703995763258687294079660398589162591693553163383445859199276474860474467697265954900313230229199955076222375090380496299761450209432207608389595118343594831470183340655415698738041762206797594036021981111196167847988028654154088695844938504282992586805842803174784624409978178410795685186644183923842822525994584007921931946276019564914121818679538080495249065476360645345642514020034366353489476592093717779813836668407593923266278295422472679474489996336235687987048590649628226745720912792029127414662181004170175868291864681670931182694655772345257149258692455214782603975569374559335429891901625784477354500319961466308783565062502507797535957462646341889248088475818177665630026501955524547823956649378550853143787530740619384696383545805275879193849607240344026125098828411442744829101728966976679098757838194656150899639259422503888376984316132582795545497698450602019161043218944591286911437629873373268730570149420357116166895648366539166776639478842820309583908721243175425794959757791891777773474369857119409375472593901337216868071904770099676734737367613161310990595391217812709734866188433690628170095141290081649381648004017545859715699174217677607157092178993746733923974204708220626028601952546259968202886359079247249527424406126193401975961119080185291438060613148752573570352121613416866931456483543993171559758313361081596534310238289661155985209633997307702374297863786628670311882898024874499115546640563939291815294605338203964788977031410284056339534900573478131812155634185919191763911732627709623159089968275536931021355374546224216981351519353598648877951089788106845752292806642748672222007011627226922796380308329922905511473126587942262137672382533044596333070112247985620968526018783748550363021248608256553170752190708810032273641052288593710916431902828684509273212482984462180306629512958735390676673616779934027441606355480709050175541618392441955436179134232020062615441193829851937690843774677227942597214804096242302754178917630998639968890542449399409247792522735542677730532184541089343480903619759159818750192068460091042118337677496774550265169978112942523096015537360514568619678565032400935062010693620846298360212237008764090484777147179745324663189189010616354061928517221666538715325815882561554303914069730287119863032276833333281337527583350243133310347097951441247194376998355233152069816869028831535247094355862178037329218817603863815240038317096985296710566657788518929549185996198203532909028866906455854091099780633606908345316717578956350088228368115087861503667175100765723847347773899033851980835965370585560054744849114783494187849029179240609790043862174745671351479737702194659536885230256009955069763940614232924844142355868944537166761871133328907017555942321369491053423386950868029465135507992197738985167248527780459934533360698144744144191281071598422159351879093435840816561451680356989529098537441227352220355751657897085235224953760108735442659745611324141887702592673306791848760707047718607488844933683060072704358843036167999308133126036888545061283339799143020015141560659247520297383002868696697399251113642104324743287893707912660789993641536639192446099491513964393763200097484675416713283319441118188507977433724371929738047126037990985972058309602229614145272488075714016045624186641634877888036620732815981081169329317397159093140666952560538717444999625888941187635050139956454184635077292207971075103808350844544981849314530332734457342568524047669857000192172465993954168982527988717713128091224749584447552551027099333122810245452473082837184555812287754753693127700049293167440672182859269788870306680296822853885452581620591458923332744391014281721532111308343340763792907187123319311338599606259105476862235677165221029672045894989773401890287030490924689601357834924132648250211090977185786001581177676421156652698761709292698824817961601740712130690535629703898953700997260812154984451216530907673189360229323582976816600966595520952528242803191910511164182223134507738580030031014879086844099611947021948127840788175798055526194634766595779828224958790572309040292936373865578305699124449605187834652706659917094852514827343397859900026365251834990544227217572826413946011808693333236779332581643310191670347509082387011283216082096803428357631572821813081733103992256495518028086137362006042543573040493835642260340457983762341798180077472988570992054465501147086217412788075840974249901175762898790278792108082693490038984682224688414035735790352098206480036602268079089228455413111784760858032080666133261571658120547990941840373777765718835255551204361272246704606713860144410972570314735087674614309131847119548068071432113599451929951411869164019710191760814596850411587376597906240203320947379021730222286672292864668445335915217428808412431903956680019397934094728704268781949876487488600356208106492806810519974956084750764713856854767169641523323071896008956141072646445456751134599349763268055184110858358277040325875854757719148474925303545622411532663916410998986311764899891053487635486572507579727737233465750615917724775990504645082581233149860295791543389922560647827389829372234071875876475710211173150336505169122893149448947297037346927966303316513338540615636401344578839226498818582544626545391081728393585422397692520623631708252114560390516794163281298489016248315667947553417981141322201713800282512568403195175437444610562295968667445859674281171921313229444456811113906756283389407625669336725739132168271985098758234732471228376824933936433462490377747932501371681512072039240928320027180152433042260320045639792577012985434882367559033921991713991174316408011664645312659953314050469891958136767490727061526717595383842705059655898132045520017191650847659601332470945074505433725893662133229598605846920364011271639937122530645742015219802706763580589900219455243699794085460913805097304224942824751140445886259940325161639746187354895148050257694000907746667811961791576333823440512897906990532373402506032105785612703519738270242216563389158052938503364035169031119075775242185148737478690886386905781367667083464966375200278758978747717215459221920717816770309350082453114480650944216837768775482567999800203870399469896873873345240842287002574034824760775621943819944846101064977320093133942030150502018913031454363214885690151128060174870841206382480360646396600257628572580952629585452413547087740097466940868703954830199650257544300115213298215679767456531515394307279964600921398590658797441703846154068850317013354706290091092442354994128160240042860558134474337831920204889805921217893356627268048018478700321420213100091266352543773461882958257093018457052362865825951154111357686134042641548525619506733319589876054662550528514280447846604720173245025080141551099248787920050866604780562641241343733534266681053410357796798973120062690071392357010405895035376090060744113518469406959416844966316202660875910423087188641857892477110785477785156392378224836157626854884305071096281644964779211794745848126619283874811427194768221128983335961204523173481016046007226161446126452998605120175031150647140073239367037781004389873659489055384695718475323390739164063240327908790651813518707815333398217857504259194368733837705944225847292456548327904446890224118283744736167831423563479395459734969946359697806449919532966524172916227606378639271064881184370076113839732961116603463793972124479709408724435825121904101421801840439194924413127775229541829102489895788382700609386692839170996498363121550634032816273065672267131909331346064054919758734093883137226846764963982626266976331455181919736700647264873756765097501540841608546208850974902212707156130274239506409978442548530130687849825401383969483847770737708048924936059249445826989057099168363115353713074974984387761327997037256610964343769267998146421879977726353062292656728578952873333011572159106503574574318969340510290081293769309526469294086250518298877296916425155000445597422950684822896797965974828395349342487733090349292422762989850665334706209739885302045412951505608018340357804026107342409479170024657150045005134074509159956181633994798710706353238033506229233362534014979392727902276426515497297719258118604734428743193328073216863875487067295182516685543387850714670065515946326909080802308596543081194830925331192323460245299646196743501530027510538025723770407166555549694967937957951355592673161290140104747443941269480632202571553481170978103167008593087185928993472104616006422205020057495478603433062952169632269657904165394476158886370407206922367454677244018889242218786298427901552022844750354732284613149064566875824015141934755923965388086031980261273500925411068020830688699721319339608940693603804371359761013452597919876921407387190471605050725369038182626284765547620684569752091248453906542836001730479785314467894986292908760517850608057248706865331841737950001294557592751553917884420921204387950668396799251464132966313596601659929148993260271280217473454496438996461625956359233269332269504975167199626657590022084345480418248589477850442603967294916431334123829594580899208734007878770576917318084990483101199902372911171289649327075150555980181740891597903001315856493186044173184756525604405316703436864217004969393091058189453955267978493222881971472759421924997566308987869958987802280814108940201301620921494708138312679303690964659908260911825874322421244860354122284551568574888936939921349794128876426279140394293664958686796302631404098539864062048075456129794220565733723845406852184384212229428181719819558661126448654654350589640852768677650077535853637295524942837037325689586457829527870398943636232828582342149699743771647177493234509538999381499780905757987344164229898172938144231370370207349633098948558906554523356359381390520351200737001002734930601109635767719241373548231372280485985642419759378239340103535518214130924508806189858857610252677058341475339275965811077501478863518249979143176220768732416286051769451328719726059685564878971653051580168004234935973208089432887801187529999848751028304986917348261325052773538171495745059862726853804192305536623604939418222923278748435422201268010287857955710391031374707388022272757976919241713280511417402310981125520785255719524514003388709656488450110364090035379908715062729297982953968823444519064744446859700615772163467064587032945346169699248310106036313212498880830963857672931689398303968581295491436390330182268049464096773560008190971105532629354223857978609352931393899102538867491650337118210953558291841013108768067804350220995503652718394004876677177610134862474303806904333708068290463043691572608137413541550404973185810672928813153488662000813126769862709982857474301510193796854818509952504436675264093106080580436060420133705280639504415588157699656540820193212946547647922710165318594753199051618337140825683073441771667314871511944563440294138729310007531332365069484644142319279784304413760132420667189898073321146707786527318240608463780859174211707608817698541000213771553803474123758181965074158274679609647828428315510193874175123764513254322044303386562960932309171479667388670003656764293764892995422919159116766398763657444172478403313174593447394756087247337058272114620703741980595027161765731955239729030591433493077553873348375450709728415286189470867618551049843586840911488451135426541043700194226581030898875844042689658533907680582865754286810398781899867611516951224479653319606715700886258107669182992750908120182564137654922755398156711306689400021812078850910187379061675902304165102494283713509576958581805658459472339905907473304567830896055732330964321836033195807013963776380892725801975904422887059679611831670811835721927573721975688414444303172604518413033533260046634422391655344703124890199805306697814169747948131673795064249688386640311692026916181987160687741682872339314576530044626688701207408034700203151313879222072138342634505052225176987213012165558945933638119402075860578624581794107431389567677471781619003911310624470574751075473167200064056310217504240872748925902649133178187768179315500815150279171609849547505725251935095196376397269381621345947259610115608518789248262973325677901452860964782587121710116783823901596600936421777513472032881206147566491051838199380351394780312437020225787625515743644579378964051027863772281826594585462275769587721304232806411430239573264248726147593446095767852750175399235502956933176147702901877780713593210504524671841888885472141115599503315554939367383177307740759959341261525591167407652325191945786776350741392240080733984200334979720965369799232313908049729985562777719664294266016179183085322162094057021292749559062868593589830201371729105619759811778931341455435585046954756665482835600252576604138914017344895143912137936718423352446301224589689697756033971171081319156531768462863339622982114052341165840339757357970041446223001663907757833139253184975138833053591098472570074156831524816500996217189235508630312830967588199291786320964081551777283625699500825873047097368830970787943426792592144714138117815644230059673503634127711330447649844578942546990113449274837243931408512584340865114461370305496374201577193183267147300977737081809083192358867203939653612732048679684745090749250580083003447809834758040917481212141457222233623843752013582799579097245741015162240009720436757387213855700804808946272806748078706404278340278169539294786110810534023827378370376018045823045260313326717006371845664007908380069780685197549669939929456403974454381951420694076660082826718103638622983198427363686210327669593148391110379044494277623180739890604066490327710178048735318389417537982333117768237597060618644386923006884142990115130466974995152371082741171118978924313866748746117933882647570222042680511749378252071842683344972978859480752138112581154847072385866617688903406096206432791885557025793553270254398092217824461637034166270461375022623751106487380917360048963943947605990812219886854233509421708380106986658907255009136475723926806574064597731151487874008093056380177559219905815313076231786980308986337760122497061475737970206417196588147818883547877160959445450665764760699371772857387306451086177938128035630363705922029622560484181031133133950000138583642117630688754247408727439281353721672779765676432823597363745334522609712266734005876416829899702633970358212602933970479459108902722829941229746015204145411471997793296417809757575455036499335766226775535176656174864781143400636456608462477650816798574851633146172554576297108035759657526424786300668286820495856375367575109973121207827438546727578772113316852157527448251055785608656889352453327145879557450032669089689930314626643961579857307833095105464982544186454445395542357772926666780690550528596344514402474273312927203722172024012935148339924230773326935480760623070599255970466350758031614273670583154868625312303301908544308130532815686516183846488966897932518802916539099564451194574990137723914718475681970246988565365936291065462805987456862823065646803046882470902276394036802841343326329736884161551505121965920497411085399737226340324357859769050280715695600500388615214262273489183342316476394252219241291141086444149976462841325805449684492655456014941768823150845351928096952751761371287968881057827545863120145956144608534999496062536172914713807277121500442518182739580961015722839404188712070269630131656103357905601746136147244434407312436653390577507525557493109757266839820240369992269533089976857653754582211705387623518586855688803305406291121730858649106285000781033171954840810235402883772598438489832092411711487179238137838651007754783502515427863281701991925761970378360970879642983172668548742389212175448756109276374157575306562423359255984059434657964354489308401830357273910766304659645515906656339937200789589581798449978847360250344475645472547978427078401896588267428255278482033351999499711710887359913735956958560445611274950216639311417987712467971964941176104991724097982155798778210455500751986933059961397713218274325283063126007090691978197241007004422300391292817117740652445263205057071969000838053822816807935779162343352571407496023153962382830325908916285434596942458894164017912908909135329091759694845169641748462363085355210831677759328707972863664385623540275581325249928827124576952184291443500913857334474803600103202477630140719032352134852072820440967556560525353060191944815829894707360129903570261919786301938435142924600564735823720013769899710245656843062544742950890366143562170429875496174793134975695463956303416216863991683559688621808545240264882105882092076170595469174315368349700709444624648750167476560555152527619611043483930880547705456647635479035346860982005722695507816217227382939426034699160879740804013984137701958593545934682926989613334558684442621344527497649473810937092814836018954098505753182010724194918929128317405428197687302496508450365091485134555867172689029322344051779543531883552472779280600211582690532899591013342235132686942253371944987569130774344716300575148320559291901702879380351102814374740153604775666464016204332116384600187676146198835925243300404185507299730909829392619450902211634612809741371671039021477383758184565598884617136643204135558320707349326493141064281454145085312296419148831375000603752300765356359764299136536974646560835238320500003670648795716288972437764433203363107676531763168759431157409437486838104551520079976653908146759218013777066878234611699010803910130287678863791240109412267995062865928878163170053895410254453090604390821953091644604268839224988254608175698895077727687714933742398084094934317977135411527130635033282301273549071584246780231942938477080096338230442851768258020906011012375791663654180908981045545514490173482640757168023421970645820775003207407777116363039568949569791206809847982859080867145043021467006751785437941073474724708502902744070232222640344453367287652587458197176202994456121539006780942650039625748736746908580286884357606924964885345906800098259997994931064636751073563968225038017957843507536110672875410072055576125309003706401940539957605523577281881757237560759173117314953902625178413445024162598918060964725966397315827492451030491808861186220188300689403070486044133975884367696227296810699928217980035849101566681853133783095761361367258241451960780909010730399119235758506963535372111136930476601681615121586471174160834427203325952695218282666599880286953507168920076409613656676187917806330713481947740547242627450311941234241042616326489848371716293964508200139359927023254028447279993700095691740343583620412199704085521058103627279540148508687180642867316735707188501942144593781870671321635916078856018802449720486933238380340574993699522332209375611478077621758432614282065083895543203281381794817689144695817533886437579431083415401933724348754878135512508950938125009020830239598473867315866805592231478202904357809955672488155887868445629027736252293237787825688685254347233305339311258631531652043016215074683494170349819287791079742944896696807448810811411375215605616219035529797404041997986191146050892087593744448234390731612351654701038213407711313133767181559833318269806576241170810895484280701304719915115529462181952981471512743344471684502090422189929093803800813034347998020264599811807563412329254154268825229413877851508651433154706794854832014572628605034287160273913096268856987047577540059866544883373614242977696523074108925261358204942858116287700225370101870101635589567166084704756196537112674077810610713796082302215490970277935953229904236182518560837394568824892085721455480082965311691159029729736761266653704934546187604470085394754625045948891630862633259252933794573087097099347810487684146326484777598592296142199223567095487881870150378232149640474040664075962876492512044335453810238046877787461529713838006733652502006483704692955658416710256521400549885536395150934647505078743300214357857906092082649694350869075954826382961384338800540300473198394563836855175791526348216862690218983032199573078642595163618456908511747269047063234240675748480799866990299689576494628464688993111017343853162802231681567883535192034294171988526245664875266044159177926752530701288396185037539564478121051084155009758622818273069430470946263809369485466011634708078287434443813163167626009594102306318747575540197922335119859684278896915930964613475382522290401967217465065314877937624811940681720697750995876420384755301094148753920071559748509247055827841988876382096692446736785437270770567400580501118750743212659963445153784905688591608771636025862971887516802409878811996257767656340139387815756001157502662062212569651317086192972617487108044427115489710312869491334064395185579118512485521528891192181111258056067323559939440037512938280850572782701291045517852016723920163029148448045916390775338677433153030713738780566637990790010712826466165358777028503768362199066110906217295676764919538213295125116238486245889362919331253607127051462574267194358642569578264689323740620276852723617208483983740455448087056492612962861867510709761317089366824708656075819110054490104027087883037061973104178308740075355095044498346548049944315335168826966259720951327274631748629379730300926657917676969953506227707340604056945384544599357651394970843826447230590743915668179602687926610331457598989866169575474037640538096376768003485714822015570823056625829002180037761892444201283141696864224529907987919044400579046813842011998755476988616507698118187906285404796887625922002349908904611441562090205400276952111494299281195035224925486199665652736159687147738204825743963190357305626155993820266328449530455622204943194962254029042416413382039013637600531063334426657249018760615068079521836076797780727881461924086688614928359409968058484008519608799004563904613970263046867511213050543485090061583751944707772348924572042691729417603626585373295516970049888510727155191474256920853625671965755988390587905994814872647840293298116989711271435791394817340974160490389493451440068514505861645812715984527089446797635310052600107167865641326785794248625202651363300799392117105145409523160987361034904288913497807291515867387880078968280192106759874361600252317769634950590621030080064363809617615791684982500937847536303540150142272518135388202032132377355751175825524271222711499482451150066645311954310952739483453543431628675762559806365023234313154964887029632210231190961667668707776714129348242846468528850744690842605350266299245942927001576959420016289505646322807257038098709055669670633223825445916205550740360136124023529587745326907461531287929940408086645551223899716023742684137864405080239018089736287302447966838044735956089224154027130621777641651152247414423773562395599471811808884687312511638271543394741531267336882270896139106532596701310169564496726624151253588949565844658593426564697233503752974603644468248432097910445016523915277294245933964953612290696126822396914376170442259005349864834348958246762027463788708763810661896160619608950874327767763759728767745095035651935003003683205675566632818810256776881025734184173797174666569920062360578931595687428713075699155886300973589299328122830468009859759300852562565606194827737057025668692729251053370598408476180757361139458372442542894684814481681492352923533546675754504385622524944257597539235928570640467233378420503906425001532398737614226348178051414544947710512484069828361048262253989924979885698811900504888952020739330360678588035847630868402108995015148041613919371059152846174997406095937623832389712333796738020163899458221563736717465659456457691826623199848672966179758129020591976717134961657835319249839493349188063701650028084970626407886728260329284864384496981086342634746252615464872188078382765230494076506337288666364628233226363253514414506173900496771405687224877180606673801509972396044264630995123418271135666748502603421388419674852852621026036229978022598469422460521237028761717196383054451185784505903681614277852305406722295704775176148826035826032100589830123273369160808544868043898708795447758623676814393512203481176137755262284456920925104819432225784642880822408257486815284000574928300294631258323310383027989508366249038024742328144001760477768995436923218491168395043467799046479309444676481435961948273149197997093943065548990512867363078137889806477193425146015936402511220879994329383531040214931069536315698937067882503619968753207507766664685499710202556959350556317002768979018203661539232743828779758779341621319664818170902681264597601702198661494602291082443840974951625203086149546254194193669098946979299373008171731837879504789855248743197488644745124272229268866321131819094485704058218226908494321625907139150435470692238741243994064023964547969763982367678583234274116866760578518891280463530669536625444786972341109608364482001031838910902950589416571485280220326095036616285122218751186472633633984299880240197701085418533619603199108360262911773710151115475352886074655034420135528052262022045588317864269694220361709031255592988905473464604934077382211541168638450148582697235475686060594300324914179343229192789373436112537605118457500502769552391802934034116413956963115925520384821528095532104911650895028790879890055944360153828748359939186900748110523057396902297951960843346732166994197066348848239071715766170787737116161061991129372723852282836225670191565871615448334546357170580004447927730608474495614227578411920604957155801701705045205669978028292392646720300448501760018541398573701253324587323530408337036126731486426977769291337064780760561419772580199298237879914056766958309037918539499673040864856161963913830325015475445486029254312693616021005999741043255135738425410019943164877914573267540411492059762526745500995264228024451532146077192094405136836627591488484610325426703638085476155547440243989201397367898465864742679094873244911100988600593727268155728264195453545397813150212386666160542050498649924159125689965819171822093441951814622887028132068306273453442612658767526581988918061056152700354052363604330126244272712091372563857330946881904095414963248407151301289408796428488886063431367417370040849246782465619768066134797557806706775473336981159511558408324035978676592187829873498400690744967763335320965505163325198426365773298818890998741122825299574927847238319230410757265380697616475802617259256344596982548641487304353004910246390909183918562346376474215380324503392058877421824180931856056437227930958957931019969017406971938561125271084556433907096261185970076245931156868059589110596090278287269853169044579645006652845696320354845694773210761960548012115523716265308782636010459270800839032265288689257348888449772437418681374682650547036394543970159803782474763606254379649579884767076575493877202851727100705406971263627767501674860583772239170507545681663260119544942056672250628113049610801454721707383627348611252627512584052495386249561182665852296505003849337927662635600103161466084813333276866926670634584633584040226020598659299094827534765950604852919494434820718802374733734079833100116427653264503955147735453871875928053478265538331539307457840539708231649579302734472834312297467202727053161922515280269004375164222332335319975024344220620116654879533575581362904894949964013153938462601393271561055560818023558622567581065755665093665444719920883695507394990503316999348787570382653530595732306712151298816326227694755197499788546823628065432701636864737389079673444503415488948684459788452162038199386956555036511842386789142787440860084245008821436046881832317718258592746434552041590221908532937511183941919946795460501549043815592775319254691161455338586242824583544939239661241628870485240415696233272911782716880484609821615834024701047577031953334483418091847965369727557044016606879371597687673542301587808623031405042310046850243136145062355494367555240586363617629366065152905007989713688057216837909871235534279301878919739286440561952226464563618702104244312356504142486813645833114448990199630563235689908159062091747174675337824267717286421872038066823628748202131864096025709813289186306820796800574382427314638569862304059062448686075662692900995565041296733302456697477345633541490242588766162361342099620933921496508147727869390250296278059746186360248811286729446813411395761908570451833509259148173001250057819239921564447717296229245435074061831290256163564022296549614974533977993325192009110138324213579914760666587243466710784133572557911884203568105936247102650890435399060580742002093405537816680489527348862509816839088339535935619414972145773062282393552347065868931220001319030142101287793664548093404315922175643314256129664212949521869497105473708169398461663970472034498925990764831740325784701307340201063568707840652114732003949622339120804650285655201973933854467230297528536652611283973664260673552491845870374999534405161842199996189001150641858479513559687232657158024489935494335194614467858998311485779906374080800205221899737017444070397185594543300595536831328357605773573484107978280176968559111750330902215643069192325215448958276749786430769969866942854154067543471887532249123360348520831565110801824518376281006355477010366668591814698779662961610051241539233271865397619502713640344850300828352246660421164729005068829444087175677059865786060359165655117261513249697801844992932746099466882135494191650066217971543542945344287988988570121932499439972338086411505755400585266866349601864655492297290119070990548899927439783917781120608709961636967866429398009637517510559454690903036921716296773610608380626646925210012660504888180841764363591651317705932717000702746274234057053416319412388588509080411179228605773363509722598332574411141729121348989415741422715787543720458857776628837448941762970135898087276621348482166545169908522938316965930620264828101976815198934998568474590118111155205181531377594216210824686985995075038481191779088018787450442445063788828276105293444281515109136719932010972310728787448513839798837444468141382685641192643025405987183077918285326536551271461783960690088278946354617577647737652254610075284559088829175531550528440598191077690116401584982230566150863558956392529752884682607831011568727346161111368552175290423575197311613485771077404714735021351341552751720562392090044558951170249550170425840093299638737642239251819147782404953136660966775561318096548926982433282388960326490992666696517382760865048220522608414808493837734576853098856692451292010094371905697001041557727543781676047838086773912849965628636916939299110129789429824043577850299018600815594944711952938615408145792520784225340423036940335674542033803691328266558599594579736258018046506618669086689851363782267321248187284276406575063293295195934071920493970118262962176184832095746545351869992770539528328861434516377076050854757173021582688062069970243550303359568081024959601519748327189272614358559681605672603067983250591018523748828376848554515148224865497138225584627009236144967482979684469030439289914024384216893912118586681697934723969289389208071003530233598000451896902567349821391693417033086950355604378903050034712234281669224748594910507259370186655866089244241038456278529202042923385836694718327914894686576058357208723096406484130714394972272404686403475709367824681641521491039975323059817809449435822021506429178640263021887453764543071800865338886622142226763056641665416388142945344886809166191483980921232789421155975819060305720804975175324580568322761757968491645498804825454250751175520008880498974827981565221230361287715100872656010659491881681755441400038616159540544956826935081189198136947645059416249880306202744621117348362722899999956963772423650021916705731862328669185848607890461170745960762721499515748580100383949138589486207899506682824468672897015762007611390900244112741827576199904804197097873673878842809373370509796494077179557728212677866178355275406456621954819585278069415544360599629362649925024540541221128792959015846602397009246283892626978159836170801853154361318264767136151649178207228510102214324268578270666260865397937456531186656190345686490525286764225034743639884457097185037296578678077499365388183857594500258844092953835828923717126097903745544372873310095525266023054887964585348296065469847354456935616968897226906825452074217877290192370698638748626167819196557229059065905256479853803817648849805456521414663681902377699435115792577257027881114734225365774895896747226144425063806432673896083962527868604423061079469449743514071569486494540473278155325707856939205988438700870386432990135281116573390439060748286072128099116175079360734975556604267725277979948923364813563080703446038361301073146451364494668319369654275633667394658999800639453972891444669676511045947880410890385082010131916060405434098894449434880060375473519048744818754127565074104120222826335730900670260128110808518250577738487567788008978980237469456782945422552522568312284757593779317784517796613796335962206766616459401073585992397882082420485477783072649401700192452782396321381855502512215256330765727537560210036100555399204351951007196155631223356600851090040413240188500052754881175473567310927235339048160239836514784974372830081627990165230573562396813668187101407160968035902022340040767457876848505526913748407060793631595518716257266296142895112638901739080555513832504094706372900383446556847562236246603746739519403019841896400513569268139107520880089176329820005995981014450783431883500239039100196226745421518237126529818724834385471246864333218585098546426656566208492646174805224944195701523782111211410526642286285178470308928414194798480613083304269112012244512087952258567756312701814013585761340436512908765911784120591074795531069502200987812274564795394029219074402325588896025240789034862023476361356768031896259586955652102327628078258234829652015935877090856251734785116533353430813997590946673162783469986102546866984618307787024255312160917209950125065667893262634038086783778250325195855807044879803306670004034429095256668567595439192485869438399753906793889836249363072259047925879596113994948617403390173037700489224734994449772716798043926577089565179553159731171780629567649709121451472606871715968526353414418365270701755711589122957462096826020100569159303844550138989090579708978502398462790010137104776071000660604154974454904443558473387502753334893668627584397387358939769460867892446640517808804800324760628850933443877105505131401944785190796561354511307228232344115036951071284313143151020307005480775720547702833862716223909223023440305670843576211323558802513066260136472324441274147940206217805567638082798225460526656995033708927335793936965323000149087234051055465836939829342375502541677592402671662334183347728407786402601877576505058882056548331321117043764215647540578609409046393790167552361896633707633058468085759942843829030330899456303075950123667765119420200633049878115291284004175569410556756834055925361577460393877683594810591740581158125396515889590468221271400826047953110056548499476025937427215800431541946717229263097330569459539991054825314481857561249187928138635716561579017054475472239552417282271615669996639001367906582803956015949055542601638913708072005117935079124666208375386175667208688515992837898985983734420488921912651084574641936237121618201055318484016384821067931018383725292841799251817406474595842475029014861085675017424774212071577103057275838663464050222704098284417960201141000108656388369766498677476775653147198012338785845760793535054449473477832380262931198154841013799566004176578972030096764323229409150323782811647259744503461107364680275928266351276388544645276717736951588176571312342684225652194793916569666349690149339443959675888168126829898359731568716596452834009386487036739621346444369856776937614198776369050037819188580868655936003269057307540162340846534014183711549074218773896929886132602041653243687236334087699816689394608180255159773312281012935760250816732547372270518222083563334550153394944990369366914096045744820046894768187586605770400082463570857145715912354743022461081734268495874697554562959842249443889417815968404069213427246147269861818991150322940225626257468790507816854393885170444444003533143285321106624975829675340941228167581523960752530895954608182081289298964802267060409469876843019910077481281787859347996454536174771704870715780209692897900374897803676465159844053334580578697399785327349176575439257018317195040216191824640487809338294923612250319906352991429101719484452137864331857431177204961787075511665237435514719952444542574863635080064912791250087303662344226930082644331018199155412843141731169260372051447666346518333764262111691785143465215919877222171279853631895812049728003806095488680069646675619724610106703725247714334197139842777554029787479905688154815593977504794021853521910530851972528967069749947573765365337618616879218102385862932817592943289779096897551147167525364939995285177186575958118233139996347143603823716751512026299198439253380464432056510473367197642065328841020076251351018086640586234857333568244397032885217405325176843481410999145977204210198719451063665317476060300967864736376363162469847010171618419798576043416912238649771687960911876218287936173028323344617883981233114051215140593853501595660550742687176204017598068739052700183819799121852208147556384333287203005773255044784593285523059873499207940259093569669610695840312790006408384312771216051622188526948552120758153873100801326175869026337585690759579364333344434292350202113791928710452228422058025543397636647175954918774128828566735526992629108864111980107586054103189676845341081879324317380937238891326741462834035670218775609934401498160910363955241027238582853405757832293092940393818999991366963313928099157682384408021211646706964383326981763456163250901270120240482294297806438617214919544580775578885437456803984353905204598245615200785683054010416529322415879535928154413548751904219504462047634401941543179137597183355998405340699777534968020157674716483031645163459185185841533459624609555782017617218224435479860264391913585227597672079463579209961343297800790352649428390835736247385261360832796063138332017048603489061458029710355026872653745417223353626038784284260018599852629188681664719670381520752606736588682410921785008961806154801955239539014927388941778937049021945698497432880533649208801207971930943191534720055224683358305221632312294909975511670966572963116429296052675419296410874309344564668755400815379905245400935582341454626238349059640499535028340970155116947121768840432789063009464268103947346500175071258422063758884789188202869415834192535178170654458789598437008099571610229263097371095100795313227144623635840691694336509491076407099905460039802476163034562126575387913965618119688869736413075421579226398894259445957194719943537665101594591674950422860203688923712890380337578504047066486655152402526846784084288258457254392835225625684276844850703002014148540853053013212371626672902686423434908117677104686208582424200452928922478810994562167234141168551240193934917410125508328670157612040913813679977697565491893048393971907182102923111811623410250976017516510159224614312034342061630090164629726407260547110098051656492220396947592583388562494914529722372321796550248876728098188170800175698617445860206510725149533912452297886079282676292901415749602568442138021839700291464818658069283045613896703507505432609448340632811260494042599884824774795022508057663522793349934864976496820111493064238254410829570183004897162347673871117975862014935745423672701484059455544265347547699300836318903554046394506793174078455667049991173715455148267321851388087063986322195258067496246289879333872885672879812874240907684083031980805306393714689970217458294444256575072825111304706645924929655331291114112245215304701058580988706578985737585538051748349463033845056662093913721381773725877332453051200387472202222472022164256786242189170049281399494197861078890447888418444415329271326438617641445563694714529739835624116008349221679042823575144398395244559499091640721768433689833399209003794228250836819629995248351295622533124011085707905126649048761407395783372509119407399344810597517639881645167596494299218009582924005109625249601026528107676450419563190730081619332917875783764768613188666389884541554772911793535830285756323300927589346661305657248351357979961730715695505681087592317462122188463750240450861433874241546591566792760473009318262306997878776553038257920298544994778605160936014201598118946583410740154648779243086127480826101251037330265082166939829088423728526612890192306190244090327891229179859879224185452039592692391729062491989424312495540476443667222171838878459251554797701238558430457650793104506322330769162055912306140504081065025087818517040970263412040071774125137548073971960652262710074014430646873133591609641138660245627479953057367584159533919452838823659185490233479387257424113598963278416739760853596707458082326389972440454765433470376979333334716485191749619517072482899484732981586074880048936327170148863828403443278795566175776923690455430660332761693002286732560457800457364316433837439782964241730758118915564471969938782513451868374052624244456497143026545016502389022508417392758301909874675726995342102300291718097046844218966929212726748061707175829783125343501407193190753475176969925910782417660354206393234844862922765811155658439510172685716437966702443536938311553518982328766492640425789954760897915772028877196467839911608837784632020804403463279503363264862058712038929576618782716921077268660796485097248279015560570852871530082945490583294175307325073510312182362260268520162695339890067804840508112807975570563817019760826602586582811957903850159702459651049279417971509886359887308319578967509738638151749876181227895107938132758123926263768579567467304486968716363419054916130060665077952926101288929194920041154258058932477815987415532809140295347212947235496432691146801580366996850056661240945626373358447391155980355336276278147000649805143025017615550013925854082873208271077560292835031990953896390482159150933828235967075665447410640062201317879439713414297159467568427221639802208247865646093448739805523543082689854996706791350909041082673274300725121781755792560957667059996443892290726747268126748959028283609258657411853824402409545389814860419525741773865009920088360509489763589206676906812124567807234821431059584913487653900462012367238357844693689360009617866165381898911266379759412670034942796907869984355257310753009046281670390586985076738683955236214621942613479675748026052531861456835416538530380316849024821579208073913310968207140278845031146512766971880037604931617080318718524320166621729126830192544438653099513367635511975765306213530783103082459790199625602361706759530259003093205989596429098117361708070710490815289155569651030435991263937668893454799152875713700242744565411552167312848206619802790664420287157586363508008682498456264292754785531875518004103323624479284604496368399318403553097437976208517617165330271933169862012371619569763260413104970732470541395513110698010768269510954603175298184588804990240835053752875374267143293897056099071684860777293577794875183822379934317074484996166033957993841780320545191835192144210665957385204265108130310985450389940233577832283419352123981942297988224051912093942949299264157789854184371367240933125953565473089358984831499495415558782592742456315448759356284255559439832296369551739059873340857076602403289595129421543931782329407628512027564304510204152997183381244706274524200851300188267626509396193691612734872498429174772692475045896291126859887819311207804394828699372045868873392290253891643059758040914392684338669430399988907356945787982829615934267369283719929638457870243964593713227354315367539875540134575015753722165089834394820681452673124865966249308351311533733658883681903048676380798132307912157951931033053172705985601001389126768553192520158717235113445088053030437961853183735254074624879752205921800157635129493345622132024319838776619946462083785310414809432471447752772114205223213439874789235114780949718723104674442312222668680239469525899137204931808084577374016609914799121311809006153406478233250110436163209520751323202311333201344195220876894448948301984041116167830227164125363536097614004417513027638706524468339938916699039514218200782393154592355528462549637693452402361920035708807360371866255204389389084378707053622198157896247197480565064190225001966497659848408690393389242489730590305958323674610119733259223806028599240263361487835163035774738514633654570410883896678832697779228265942817277749506030632088448369634368442762964875408135685223669921141249240739831805117999036975165803542602692489963527980151458021231285681467372636414896184008597785694807958564575005392489520159011564786804310344052851493182240534100750966466108182591683630484864144455428555966606713748744833989169930976220060502394004237284801870111346709240542177378532726000524580889663340479504746011640979615371266907020984876753486864268719480296388652487668067423168006889154355791671792937130132447070983136408839679321680113702651364560191293059483780816502908758297424059928806092907524350241432835158305289534320507636053227698554165667495517413398172930970313762227888379083168548359499177402414585517430085403759080636045568399543045908910846598250827692722411099522374688470735386766802220476225490544388546268009362200616338044001167584318450045751920727518874959629219532288224731542282626529337096259156964054905167689537986446315257885466150075134118650196617704738207265031062432537956013897822876228269360478301778947778957122591095280781962823325383345555187625450913985047351079964157804116080484060343236095067390369967163585555666600927825326533927521934090813048906907152143895712169011664319080343549119180505071690643282965651541626324088904655245944842812992101917761720772039624987953101416764386993625307679377229419179865596410562262005630985261694011673911963470623775501512249112201120521521299313432464449403308776731228186685928676276787002654442360922051852726454548699097311546816810431483768982856278408656124527692813277675271312659455146505647912117560430912008004929173984475890415197795680276748326966147841690470024045536873275752205807497745300371501814545227750292941556398255798918954890773870941821403290128833297012060106713337951915352090658687609372508736077908112049128510631922283483555840802373445255360463733684349094995341078477607814181535694792937071810111826289367676363425164745878728476203653935552158497692308289725429846775577017510162009562582669951911773247522224186761536597041365043270525027631309112693035239355903978311144144321485264470460706093231908161404987119173076814519472710326690762540953133152340386238278562166177907703814252928698077475766111890083136224380476074570883858854917713644098418759772587305070165776089225370234638625774887777431692108066910384132373967821115115030091322309230180109497971442083291014109230447007692141777753349621621336090038706560747495652053672251571933022796194120931237815011589369534771930709082948787629760192002942409481604145612321867739848257853044376507240563917072150551083862943534546423154361440038617267887998412819272663375380939045146510065905878421648491395884953925840487946812792604433551306609608567722219103379807264052556505981470712900656723642612138583780443311505378177730567402860542127141589150727003380973511842473915657351228228960659856257122240695595816779220514265856925726784806190128120106537602566669811875845845287866986802304827159446382500311899975488229530031472691144510707648051448799570216223864988466110447504244240638492085945796762400814569841760102942152542172351004130474514560188804067786401567370736073436519742478495237927192420013580948622392941768526667167838701232197756766830647926325441926069893679949751817871538511357897812821631752396967145580153137720152498265638371310771318882063324812582944565924405608930562508485898205342555851412927873038605637950707630439546238014213387499591021877412320565803595076225332914625598670719128237225667907620191725598995024144578621755339216005224935282316269865186380722530108145632941487992945660191703303384706474796980455239565521268402907700849626556605785470725197129239945222342697001083943171354166006314823994072353475902200904151534006864054358142218228926430650622514407437929642464243452308185995305372836068928712378050862085941932292346876819780287268008933163787782115130898294890110289771969089705900410862251038077558632759884777194580003796871113113252446544469103427816710834006804820582455191666383783796729351893768086256185673918107891395590089185011145559360088412223299955743402947315452564772038856753559741190038761641589745939723085320047143358797741861579640650530794809044764906833527088256613520733229582953651570049762169742850181387577867046689891830429277548034734292864297507008343026187388530648705276339745040858929354113456110683834494600566985717443263338148515679110586198919502496086239367160052622843989544048099987773073270306432743157391443312184484921583567743164751374618759258439884883934916943859159276815638497998578225635918057649493682694020750991460042917446884186786887466274410447459276836055866340132465796777679982190970848051753431254395563638013842214040646012216185937547234526984154106063824294187251157354952136807918689641118422955181597170476838522168375356611253472245319897774316798542741195445364259601377079152886792108134610680905841643406069381717271009169051464851714268772774990543269701913695454293707559405010015411253323972811952259671587507073815751748951393009075097106680786067171718910340430245664285091683327335040944582153465489019494931928826685625992539088908633500150596342017826206353044552789034981416160647442410434286056435265803034321027880960140741343061284300664943127156884356426906419352055715521741392335572349187229661928172160062127028003778853134423142647004339748792354990850534216186265123244618771085332479679362620944959708456439829465717032013283061251372272043094518758175794107211341100319675144941053397280649874867236518957861617626522614898106096980185361871441575485601455770029710912305958779624026385435188694396128886621612501580783299587779414951583708830002901460146587133381464766783813114020270650273494663551912056530835620545577134941817235514647326966402628821288487490881280986079068645090893283798835741865366863252790020927095579885486872479642284043955568547792650712338139033109427974048179735191847235182330485674637932875617193660181156756548757461317723742409603835609235751819537688430616159777362985725329555837250264596865272177534574212071662965239194073219308605459017691203489783381898808122458265469363713672722051752359075835574788017941673601971179543186890048370428881402626691732140370337100906516908429283211746644831228018210020820021168084266993992181185788510445486904673508637486964946703176770453747023646832246449851422696533313792248342889959641368796993318646450494464549425074466594807626947323062217830634052148494435122408113230034003476274377626952617185723647912513709733867214206791968854465144163259969527911274113976879603327441699465997235506701321311516102356912015165214242308876895135443826517467786524811500516063117664375506561036206111707061249457173638461018653523387633237728901621025187561914739771599388719942666041865021351440519063299895861001804155766539035806529506432216867371530768617562726621185290370601198158773499186248488082800028940384038115358724921538222906948419758973227233373490622167813619393050118252232621432190132668410252450160627726467228440331920701304204187412213846125366208602860400028745008571584690933477954698721181743754984330096764045207396148134768478996699314024305872149029180178424228025725434467329403938013146579654533978713449609756820905661913436369331522285471244996866686408665004256073380785844838353146741107611063661145669504076549054421629880549843480253408553806842744027488814697254900643102858025988570725646324833749176709478749460607283546664524650620936844697461708620117979289842559719431669559317347507755368489688283357552844388912756478407910272763164070541836198850250415107477155017045486949152838539422035145740711516616324927476414746851876558124182216936174710379068000378417500672881646146245649863417474923119201872954857685749015801056944500864111211345364623031118410982674525564426073894133083946092724673450101991570286450944067876908166681552213260498368377244392014765876992104987280951719254694894861224269221595431484942644495811132028883160648851242573131409265122114873001573637851012783500883782470100720451843969571499363996522869117643597048326650072999324787755896455917373384117690206464976106760279496460572930731121370414149597535373549483527924689987640637440608576863447036078069637286557097978663966656402903127032798606775684775806649487837692296779918783664079969450126743851197378905728331272269097747026435217764265503201906325204249463423005692825101781502954911243753634459446963158960788426341484402294165531656055258489760446159782726404792524703434276266513764091223652531701282095809076985197278100389822158205920170985289267672618860600215779111014802884086312198138620336896505459214205668940127244644231270447321788485946197321122579158222253575679523392837341472584901206165585691037265492314167150916907645599005247170939485748128960284028194661951984971800466879356876059033411301605044019420564347441788469023764242228228111759022690409928042144098907464034785707739068886629656950949887868055377402562863674542820295329730505968931925793478011354859768677756054173504004372048079267934830214904662906656980967638932883000117310659122122149099739001162230523617912295878487988116811163439575052253227041571722590846219540386963870688200102662577483939424147467548829236142992499162414826177180944414361918442952393667486607024360892415341128264747922037867998502344992121815901935396355858586481864564384228783109697186734928469785826677944969946157090668361889872625531605708355157887439981161771681356233284816209292337336459420505707750624159593905006200282119013984035942807882835253644442671701711552533147204617308513511057859039591573701247999136505551655985857708773267537257998199453282172332142166743622540479191521781170445329281663599679435686954607102167326604867934621186243000181913915038871283872833174172544081184436621640733089507722301288589048311428065115021707373823496785933412985698627896968681082061014216260988049713677588375663810825941758059231851914259670766502291754130355524613923213510533837460028202799968080686562569816219865473833656814309613510598828379620627773182271136171652266497065383466663554597762104818630983784855961397644931937818787888822420188008286178413519112815470790096492682806522542042922166281712699947439433306254325278774077585581870015328464814344725751788836260415561775245364351207043823826622224908448474242244489429205358589445981518670096020325505136181979493605793841775538004052480209980185050358385864747125355929171890751012464073423250410228767160466967444652966746199318246884236940815742734933613686725569440231513722727360637971517210184136445397863181792505776463718228235599572697364825195742840415561713847682595614448236605774281191234567322803467233300042201077037476129036090874951678788980279772815688312068348748207024193098764944004067440597901618361881623064435356749130533709382057297612321765118623157626306359876252961671606823407821848620748774374683862728272258251538201365767844466854289247994663502352811638815275697365280605863913302165366238155210255715459742457279733678986588409067017766440238111590822372488059462634384168758677614969652154691461175822789639911027366522398999599166605463902937047068099745335385441949570545270448582796778144314075475097949808112313971163845120809081472193761211988933906839767611390086461118603475869767975349899235451784397594715723634839575687090053023552328586484792816005306408801299334577503647000908084031433797742244555469472806376311121726836739360795393079828527380201761933643742736274203059061450488100664155037546801836068920739950801848296514783894216040304379019443021453146161330154520051600056615684744125071362475136121152600997830100300575172338431182481206816408203197636891704022311169414049994476265484224282707119929478013506594191882138861691967477418684939925833539387927496569292045184057166830532711915878441431201287877546242822326455862960279241624400117775709260291027837372305305335570855270011233664843036685594580918258811445509097606475245851395711353161683496594131183120356420093697594622599618038439554098925350729000180696726260957377132923744426790765877902088105055212601132800034485781675980032691454893635764702764210902167206468217627286051875243953199046638574443477367846608929457374590174404837115259744156701907206519940487433310507722297829978844439275475410170144991673805977357704547699550806128500534313674023858897554708310053228370411761468233011593091978714113897331441807417587400238956277616796831258364634522598946574256964586871015769256549316493533631137518644311526711725571736758533498654103537592364722293283459350921312448194060380125814518233781094069884926221026689625448951664977524694595430197474044637435385552197334821236323034571414132551653979380562594658085425532868683362187718895704926359131114084104261091544652526965731187386127554754650250998849573502792809471926904858823213380921792266068368606005964624235113987870653367427064653404354434166646369491081698653221367024862446125854302981376286794813324036373237259012633156859072552032268019056828348738457876277455361939045459690126810301568539752855517664970175934163573787876840473209877056760904056901889024147454533314831663435893893877194172547496580235986842707334861421551765351613530886660809866135286548635776637159089485928248266737814703734211921495717198879037175884912975644603320957177307883533493749893091879692166547369456359835195806678461861465808278888060914383752821403055292414232204158595769791242917818699411012408199317252712817878315131913626206009531988617473179949357797342784874313685743887599594986453069146123755064138102490910768522969221607781665228084291758099758390015990303604798879464247533562196560339571173517968165514739136560482907144936661329004460615617187589981283238899216124981129903550786716556769443682610270190681127937508537985247441362133667853854279094566061454136333309447745238159335094476397631033171003195649001746242397555499291091957064164592443997594504602627128858248058071124935742892013114362471068573648023016800227268394248692142959434392571259062033276237246349812792414517520830472845454829644002432430740316026939804460900093531442418456955391195673398391267764549044943948612406222808415423141960057132976280185489531286515589258638133893090154194609065265133563678909734100479264700714485961009130326699729115006663593617801913481620785749659306995133458898693447451309317053740159552101407359233613060549975222955315562436483998710725885328248451538773345647927718896322756620655798130249303239078369221025354796422330462362006419770112752791434293354220506947296953644478281696058526584926417908712419740764407271841572670559347498600224139492727057370797848007739640923241012863544411302476435023619879141048525753152146361739433693245098287007303099244761564277015960300990085951809123172795434955813748108361453941160666395031793231041653989254930015842187852386877910187059852253380620336958406720664984712242793616481765147474713177222518277667810487760985105677450729819963133665320786714324228132883121402325775057197740248057452052151169210432848587588008367041879580940525090096105589811247638784918472587830600632190766276390348386615179562871004054084382486890096051032691671132968377056223898517657865019637303329954621474640355168289907704188969930765201012492555247819331122351305182223633235613632777825220267715269241211035578294176465192634661579841261928794542136418749971820573504899428624931373935217655800008976949332519124927677826329277111250725420451238733622387389067458307160054737249777727586632085545951248930254496236592445468568019409556850070726983227995057431392380186169345983623485800966719731232554645368322513364058071462442128979934778981490069134259215225972137299623560749548605244592173450716497429209815836604337566679608058451766012189832428344248486961993459044906612383161718282988779716567893489321587550577696471486015939158245241586873143147118456333450342790145472929292306414545446985071627252554345572721888956708935053837777435284202472687017809311196815171998852769249168021177998543464059607392416817491684351393634687398896371180197372531846629768372103674044210630790725557050252332476304680231738556367412587107124995949575802246677915467640862902306501348251378450264888397785257295955512097775254212707083912611932637124995304527960275588912436622596336544812112085746498551441048190062461991497524758171235992076893565259420110772352787762716806879306634675949027892751166474066397910409230178029773944272221212264026787200411903615367884047503389944173629496391064936968271008569696679175299351712052429178693947543110713713118421161089703298817338583406631448293029103677612079307167095019528993830414650075299539800757749249580804313606431221969107454976004055452496441810289507114243265906247228804658237363852627926694733427717392942486177857910605223249829542385898013937506393572599726465224200617542974682221759266656127263534382341685052095834583095635701419795887864972037326665263391756137031706285799402821744725199802633753699028842103609353079924504184784856428437738286667431915185116361616874256838051293244723869368854096959678326436471725940789156292376015362798984929456699122438543486521744726910588165152835056881146979855031094869281453283044218942358867413863613704135574578949925019013023428528684732370316209409244574868479543589550556912173540674210469270536766047360484909701494004996436061382152244735375227285512114728755211034390483332829124575904949956651644833932781716942211070651206883013651155741873539637640347314628659049929161843566783847350573259831185499463010576402732028577310142131183483408327206150878069942904438711926173654912681160513622019182783231989932460222760809854887268780957806493683408964270164942868825608466684466907281004664260607833429039036013975878550950652548255235537554636547113757509300823481900783902923812331238375963084267421524876426775440424292778542133171886767571332595168328452077022191062811469521634741826590722600705178970436472063234835612073768680812704786876276893462931702092768050807718122715846741847540059767800876575123107406436634901142546646432826159379344368963354755005223064500232075930185684994918515516711202524315506221990950208584845719416726958947907117225411505525328471621283195346626871933749414052804348493046739246969282854906910055305850356869397205275493484725177816384315935485989532589666012080854000308269426644612002310128251949706173068496535651739724258602394477777847184114626205530508431702743078786737170172110214732377182153128107297486902924817155813721641739139337529646868859754412212765443590543265993359744976425441018606057140430690033158428299061713022961326820728197225774156987484698854216449789342168193304001678333037467834456819202104533566724606634915498901617220603764216501996338913716719175405594306249713990321330120937678127623651429765029537800516224956545649505107718996987499290458588325040082003180728702423970157975148327493862441912459826692666524013699322641435325855261682240957968396866041019992905042995922473945155943023410453195079478143493070421306246894308616765883183675001436998538295203627447308866159780337824544667205936444366233605282432624865343084657993566113986921361960603420726893145857741927119955893051127564134492612828833841948823895308505780762038689289541311860717994493582423264589995135213728772759585937677314749942724541316793844128083085714088267069500940971421904340971769460318468200805316667501651304919123180919524443688666205872424540506901019749861496198290001296842579256587480694247845776923325423649457736632404244799346769738092563163865756649470680241596530176334736635940793346415047864266701120427940857825700365667002300298927486881550080087640247252534360468738918699120669883193939189144456935582722069838855931782393044178858827054207280059396984413944795874320918717718331415051494939501223718085145402367599111344902326344271815895195596822785257495802710410005628641985676988598188780576042618792853529535231910626251359526733053650644028802830205988640105535254822191276634069574791852842813026943458880901740446558022810264499074206316455798494551546039490313822249140458787061915111939146885688101142439515866641317155037249169445687366572190561343101211321726898713708013080348713908671048044732503804631601026891222725838228152279465219711157721899093385785122131775039228467924855842402583571542827184422412420980405362601414138634933337058040276308384127256177674532432503840910757564503107428059224496776468259160110075659300674869684528992300015568750016683729425607826315581124921410548718710464026071832993115180145575091088865705594342983611350739038782799379565836349789373531219709420922328280989348193348827915911730268212680549532644497567239912439953246002975063028642255963245789197404364358456173260067323063733360700015748308473968262408035529491749838327132810570447928043009050995515219940910404424434203537737828107827380203272568773064472171220753977933128458105667125440166139569685596963658567883546567428373890079405850737593947765869119520545002746891122971984044832789286448361196017518365015637782117133063531593010628146024373543440440359816595200003150306802170039064314990642806060242034815282354927557679933991400674149908692933442768856531464332747925205530665737950789680509973071698446543239023928576508890574386815449410683366135963948137588256004985961422836000737473344186124058996723468799828555035901604582327103407801494000135269526711114484847417327703456688471601159452215260358442647324669868900574183642798906897043046041456547539811274445720475256127279097374570708405525018795040303654952847949510817231338821521213871432365651980809165230168611761885888292690226433241697510362891456366616499251103901910830446610145644715844920329058687047555942350393278432451246055033492981239523490797756212815544858679551219952234442051198345252311519209826766745237886838826834997640023906025199658866435329645769608142664703698159432186361432542296997772757371171130988941749901279494387914867433653777319981163159877093806358449528515436189413470306605516878752324794481899644027962529280578171390611398865340972100539258866367856433178260106045473736571164887846603025979087463560906817928323413622734471306305507214528059545260905614976888275188515378627650346979585934407139655372559868801640240307841629883610779113834478613963006667139067202537301707004296051574360156827512517919832863833928000583139581476811634962241360290590576225180076603421102154613743262938079711465190322473437905406874415184224782965539609720912676446650154426548705959302462928308200683388637024674683526795848129638092353500275161015624559925171353274725433022944046961700952248496055071555458106062234473397963366254627004891898514884291800290978635692212169001023246423135807801202818354009682661135149868024070423198153050315038361926191029729462761659033528385925235098857185982378675647597941606063401196800792495975337188511363407219576269806487049689405935624638795407056607482921222243071924626719509164862260035178231533938274405565641908335982141187130380833271079588097761189299550000884704090191898386257629556203455446198632723637985154040361954401373906847442390468200946903004913510795019263485306166780722155948331304149027291700876566760767885904504327227636637578836939804469312968857721945372063396791679087750137222866456042419480259299902805381172600853137416672833038576477104750525359224486575557379500293689575456200106232881459776475647922252773829508607643543838949220401643072127525790798925778015196115965085755167067946010099890146451471546078449771684268427203583708437475654969120313221602868407181836422684622905368782330881278926189404842132087325303744146212527539562653155296583522301468953450990820274634551885315842923475312558036438925470997776102359768541123470995687207817015156059555120532009176965333764653172558239494854230187663884298247746753343065553283122456143503163744256024372282934397379970490238649126917968466835517878274344571074204581326276598184749369228922268881416702301630599069084279538108400769268783614442796777172453875175521461184504452755117773543811486287819009613144190304356010289139325780604159616759572808588185651451701883539901048667172578549243044281383198858677185108707430273888094947848645983672346727942918051533691081708675166974384941448784988806834310119596534616023482410854620150968243171471330930971312183667009419056560507419710856481778241871751701865232338649862787326077851507545617191930690891020509730385165230634025031291943541196109267130010741718528133838565666882958457661026186042791408842267850829288597099757075197310488923703174533442977996799980834619465134605512035124357266062198300928126818871504125564418243886191696402618668480120768281732862147272173938895670079800736116583447760006998797379149496940643501265249224646583988769853293961511713246243189252106122340398598484131469814374012468655464522955755000384628849392574659331315012787400704713168021348708058700823676070964455340633485384417490008412424524228926818413458858410595200503750261812564080821433342962723752692993890394288788156155362895876110309696354596214790237022910836235669125560314318854804295068953446579770431727781752236732403132793437263138651190915927673672367128151240875437665224262912320060467458864230876090487900524038474633637538652417943397850212702847721329029771992978223460747421826119301979774383313529762508400989758461992034576107445389276695987160316588068844267233964078941616878783604466216541157000937245918562414268341271815244458933620595137793158238246382941773810089311365390140512830435462986209322684969826403216725824276997064970310164401498446903876719928764469175053007506159790299025980851677519255958848527920434088586801491840293247233397689065485155899120784200412534266730402502750638432273934971463109343382306087657762298795633621812824151444442959575481227916582984449342730538261139789848906246611982238961840660362527114232943670285725183326486197837403382671599824069717311059167926390044656893000798279144439366148807579997867104422585698420725793010880644250111938427542939354307383877696404898252400733825662438841541130586285256255330640704536417823159376119501039167857053497531240144771298358267132938586211358127529051198481133116849439770799990068873696134012963012996902606821755261917795056962398343530658841808382806936547119860945735818006010551450481050780751526566902439488983778922659400304453158611832530039662936870278856639266976462551039447527796067310107401298947198361553557929559822491176977344131785116685509540313144178599345902279503371289060992808160261148957565190507101779290504269559197240807670485199036451906566910590290429566892964816861873686513386863532420190832283711476919606943453991640398931022091590228281435724188573232116681981765034497340133021519379359235087371743166615259226362441383089253264935748202802002944347655552340456750213716184029122791578032465981370807599815758385456382027182537513278336788857946380279973396497495043152279548744450610401650298354185579075347708201946709422767021239457320365719829260983335623926247508764048172512443950916716931211168315238645990533410587989607018621144782847693206587526186122414368071298010035051712255530749712604850520601266745454191179612830559913285431218778064375043733828198058969857958837549341965509507462243474956809612765026713378706370806795340956493055388968590798956396275028507849109651534520007682666465957301409301743569654938909847398181793338565890491718821254226743975805797974166308756640117828165619650964393020487279449285793030577214139269452750972933945814990704730303950101984710016492691960076154574611275538047180604025506067796692345871746574319460715343835807264674603170412240871377997342491797332737977740900713761882012094486476214284460930186642864379359458540854116171000957362230578524660729849407432804448500292489473096419610517006063395149605496249115751636027278557847675700378956041600443742564154126777804809024457355229005475679842936471741512695395833330656116745868335045929069599366644628692537861847922822640745761993946654211554299282360865061685478988038449012980328336736667733997663493164199570234378813268719572967327485785203331427372843286353790934442955637063889124527731009314653904770208447502310795163393943151263447278549009507163156111015157994948353302654121289039540472004005873436493982642347592931404365267650481625714730104562804175513333113832576976903636654257564180914076203780061276495016674082463791458582695130616279377138561535748326124140532751096167204185624646468604821547853353115017208289477349180469482651688716215396197542703382599854779766958069341388179913687956453517000731771606477894711211619644485857193556033665221768874084285533474058290391349263352600769956077823273696314461512744974252523770489421893085581630627299023684275043781790626250823061398032365581239238342754726802164778642227425512912513569219933431088207639897946554000449429697997865126882933374613884055037933942056486175334618411558748649848835344036111710578961190978057937047082924138901427217931798827173717115719078839308607794076414915167434961566152380905959113574436436467406641939797746468165444977897054143297769113626583056796441248671710177638261310958488809616755850947757218306597724040971527028996049312146141487245685466211996606011582511985134112875758491509144473059491095915212876616066627739088137945658836494631851688780658563723149304261977308197524857240991804383237799688389083298083023475251993540003336950675743821516908918421288574291613423327490919675199583406025968202151509300147900662865956087402470391857216742975925575159780059306431742694044488586236337453125771411422324268673948578836800660316758700240667034772459126209375893203687158191853511289358359718759469918369859962026028757108725188510891898135718870245072398720586128599225656546596115014119647797128026552765670400239664960532407443535712558118154010566418689846535345312602430382154820426753260803318608229455445298020345260590851365628156953382373911896143450989352907990639989892044170789322050855349014262997979506749363611190352729214125116407278421581897887578085830662480132354387131213040094945347319540882917832483143459920405909686383639343288862879290696288537199544005998621823967302415064135038885332515996653875330368730736438902936176940956840040507068224182203164969286170294880739123216500031941869785534406119261292913329203451285191551385464269882459031870399690065312505005546834324718752653890008700570914114160926590190591057283184691140857311209089452225335246653996595250504342560970213328259725596437288648751021220418858529687072666523451998695704464464350184376609678501191941574278078781087802113295605077045263406846429901676699355949491584612323165052814183218219522153316370481514342513116672410561597126520037585157566946814918672909609462371074777204740846073627697092423994430200370259356962556788189435716501816495016195416347083069459302507178478914117965851970434602101756977176521348359391002743446834469445622255801148806390815647337902215962987377943567087212256572583822466620171171230446191530408047041335705585151341665625852876016648164994358616627265528726998451330874139816943914861891356204107003472551854901211632183249128605872484161353957427494991661408152566222626964122902606985290969321503391360609904579574109672807042472309058079756293442996798115713509567264403429285082824780432151341738411330495522117741928532142986747473274816198465544418265209350760024886420418455144726838259049419495886292962355868679366138663234321612600762958084599991939595715045522601567986316533444049784802256809706112903766655458863028516241412961156149288918094126836253913177756077546719766608908576671119493431109947580952940668630754964632154291183405430108796094335859542606400934902082762220657874873844989889451855262684118518845049115884556732091493102667283729702116625153881634068411729319786098485053420014432663233886570517369207771688064473471215461578923095530708901696457397318867114334326863736518933502799228342213635495765451793222823293680561195922053473392032341614789528643124426245993077880010589828779067817922200444469312478758745221713389925738352174800918786498294548176048041692459003266024147129063354496878413483993082490068594329818617908002908712425862585751317014707029184332967148165312812621232008180266502194588363803284867494519372272747771409749468479701308834581395317911659401878225974327622374208202793091013082136424104156753055731029827363804348611111932526120914116141238053931464880608450507421373533194041073739047268600230591346925757133765123895544725617330760208427619137050345264426206863239312338412957979607569713733442109069622732105365736319317341282188807841201584278702498412119301901101495492449910190059775235970287503274130016337280923461402584581195925171358380202437138500117346540403614110560590484721442887942312869616851042930158981336340808665240194680181695912697458291006608388865109297585782490816418962292711610268815129324342568326257417121366503892331326238054132630530243379492574199764438007055842651823144153155274011071751023763023759897287436885131011895831177137649234161660605471553072011612723786976707510293128922727404017328849169923484621790783371661246420751679220555291919560858981685819351219157629541406709445065975135937111475377669857643618392635428421647738964670351707451950499979931135166181840180431578682717873844152964209556782512799410150963802619847166408252006731308705215875490100822785471059090286812087489964147791229208891641209016577305786492636776215045040880653389097838045223712873545655379110413762984474624830514250682369386166292844674214810934337899368963980008458058235816574110143503073545324825907182254668299243302299271354630501832614453205591298937277171737493014288373928900925504298178054207072157406660213278690508939439830927870927016340642102922043322127433121678120108843735178457660404632275785376450693047542050419777642247875409743471013224814235936854624370962292807637918557194541228767463024209618231209649389817940943965627221240235676479412430428234347489187833838084561858009874077963086288632002775748152593845715782103396379391108340878691968890986082882583820961024976711107529017377321023028652118964512091908783084312931945836356685614397451594996190034260359207423549788009138091853308803191700622948270140438441375839296195661345549951085761655004355317949670972149541214372524561927251229640081630591772857368897641852612584163035125555606937965873191164263930856480602342145914130714825062657811695916382500155983922414260428396765151543538259987970996832071818819428308738732027455132691924104067191636234233031550798912985117471453510376505086110358431008275120607951893576756114278483967041095918915326375896055614762894140039576290772206594468978860164389550415913925910855955135340593475203980277528866291297802017237433528307594900202648458326628622050615225133027502730720848910909047796883385805635254100740828329791171856706637991663832189687415265945643088909036742720370263647459592824089825865465279649975135988657147028588170746112489922662637158517168314831309034315788085642414461204075282575755205692936347607496903528390493741680157978997964172071057929688924022383852917061641505548173360361315649879686353089086181364580141144274035549531375238414029118462794180931861075535302473620544857864284081753382318358280758787439375968296241005272800171069351087116500299974142321470643617109125605097606229664549921567258625173654750395536975999957609033701397147514314258618548384032369476127608286803838662719175726835853782092790247873510980219951388719245430712533747484355205763540736011322499798253564590553152906956799994293831407582903554152550730761480300940731272092598950005368583680347039604091975754537737166527341359610197224318644403645384127057771853493547563175067680833261823723842334220342519086476256105245534280892600552123007216537679329174346727101563479618037327772504651302180851872579815006085391140646431108948349838360862559888789335706224985024689931594819598046993158945884443784300625086126534321215846668110776232446346599897511247194610885491447751876634120351817729198613438126933038470149259110504662832727070444546540477842059278833442234218205519995126821701849762081773658859098458584093644425007680278470427410015803915960226545664868898024919556464685559176476455968817615586679959295728377269455478070874802632384485115983073220605522285904353860172152052896905274310188413560680921009907111075205764961994287591268612003494232777523045100830682204678447576693122754237813602220484649916907191040440503981868234359481594019412773670685129878006269675620866290323873246525441201676506748556271296658393472764186973597940748299648719826491978889344749516478375208138553072560836516920930908403952972286377681577412879457562818716957731427310212596597111429208117774761081283095289732049447687120689447745156426026486262030988556213730542465134274040117685237196359098374867474764988906157487050908281032909856578439830230086203536192336236015732000562731267038093256900470239673639470922275712526676149311135858452819717608134166913872320414763179618408377422566985977268059335063001006374576370396049612025735000543209046260445336946105621262325178825009268723329517869168769644463848650809093436293090768414411234377360946222625777377805329653683185089990319020983674411703075006897073563737701522114614799349529760681674573179600682415860880025138957170748134761042899908763108941246784272825492176414484389488857550995013835997788961221800719744648187999173805113752833846341627179353207962322993440484092082042644104753066059243083643166780243241637350124859290015499778048540176324459846793115232674176392918717039451665370091865545085499899936372167915256666679678965379184498174020287836029424142200715447835162045617153513781228251678332797570238407111093470229864641008768734790693610963076327626495569902107285817947966524017070755574739623888713526327966215562180473276212906659775099106143655470872162763861247375511639587611870814680245615561557185288373153897991922138095417801008417866135682269939409652597825355518899479970246342707473884717674434575175426783917125411340671073539954508905278918162171317990377055711522022743081401790625388741756365422502655393954888246519091090005811744599642818348739025727601259135364996176595385435109052924734681576210830670756866647794652321314617432186145597632376003530688855358212965591707412666216530384999369528450009555371936049399455930055580680369479757346696867316472492683594128443075227102364526908169177335767086406957253876529702181813860217121888693229091528696862141876538895663531669938739885304893662898212895498400157973365436478923716112093812039798806014258422713299304659683492018794081330262951208842579406406537136902562187890944345756627467342557727798432380025495425096826672420174645203549328416297481871991500521698656682040349911526926502126476879255560270486003725635837029529876567991080180719580500748777386543068301395659277507324874811746989095600335231912531870826689469365771687020744381722085838121995859461194889082923900369941857089871546638196611344893167631654111606719193187153597990494775671413510531666076492205450969440049963956102656077260411687030929373349807811592688278993010705599316158707838375804873451811805784858989112170384579911087473335141712205640395316448466165831261593168430354994217507170392967116437814717875792998249977560406262909737299064659208363075426388158508893314671324454633343322146356743733500928027129087289515673375036158347179019763356318953212709535093509485813274116087651289191641108222055293678704245191652547038336116938087845273818238705754030791170281847409870927885737026458610004751752061254455348239814664576105356720945763858845279561473688036550070931079643945781900980241130201868374514898904479943369920116827742680530549754411546097484175347886277142179046194660721770705479290624453116945375391249676513713832921701993992584432537641939953003909764735210390700341370548611405286799727603834871396151247792170253455005480712167687526789255743659361392913230076323883411243761723028752004089247301796075523627884938974359543400520238180279065344686021118528523127506288618465145525665564558683434053002515367468747643285399789454796085724277742249538970228951014220506521068992216770073252452551113806030173310613147835119857863204561763798457062297024689968373269952022987683921497953708435473738300517252883061248127951623492736433131549059634434372574757722944454022107538252598882454736449559989039913262988012032595887360451462820203567691473123589252037453849942792795436352052777798660684988908685736381280918035899167859078643144740135879078170605128890967560305812443321704821377295890260937327360390749025899573463272388057875034347084730695419292489330961311650074601878113432254682378645879076696659347989504839413335681563829254071739448592018501288484792533468004094145856071584454413271674354108790069404536439422971697137001239398660270610741728356177208923581426262158347952410940383718143575422721620590603775302813299308043197408197745476032434060852435394482019325730397567086108774695145395761636499785481761678071651588095944698181017434051356177272644231414135408936066284346484716244287851487686586042836913382050670527548833905514325852024024439079427037055378656045785411048966191166601151187112112273212762585803852239297408463223225398769343355214292901694921623060607416450083809225148624316750110462966466552369767091635685248003439374677074014289195265133528944039258777423692625376961472376787362832472936303432222849847425619316679320411116343373262148405713367127877059061241504038238764814031025057310087042071388542533949377860262287232924060982115667427155951899190033887027656003943893578778179445589903558088430015095493452644604194970238838433497638923286513682202934498393075738463789550140964509798482626401351590386526559313565992751582730104713086490538996905485749848978405369830818808642302933031699201653941096509488220804871891140696751492658142079821642698919017748919405143284855960175299061350607712878391254620782144451163137623768350948495924508036832173500984783073755043292764619186532207188113284030612569660360656996059861304604953237361377290804170089494275792933678168461162262365524117086254299204582846743146381139303490024096052597405811953980226726102525820987208637872564725039751503868765050886105303510694479506046983946219962349610420454611557284358853858227893675896337756970379175804495132557103264820080715882930946833621553523516470466768975531348866515499266931293864708476602671978183631577320087885657952095110825491505546581684120082715690022769990673312173892603073333822567071064896450095062401322979461010238942008309894379908446367850258960672412232785824398871969983288476223919590753811570625944834604000405203307187489909298535605155730551686403081174043143113321383040580670946237351105158473253084612789618919655006864872434422489979030607321943032144906760453267502920635013056772111901740910616963319398229589433736467193126493715116165037047238890099489744104551254434047282760763062544894204785108332037699387571152591577280123546633402707222855981273288177810809801656566097455331289355043142481970645274479701853663759342529141596914692285337311763086877326425234546599777805259383454851580948394937538899960641122921616306757436022230805841731226658797504505711277218072632269983737451087473071461550736468036215973360559505511548295408896094439892564958598510848733643715583957732342468196195919199154792559471382095785097104563214036087510179950884260227366927210273114269230570559102600056715633381575271796615225660817173026506286358074153196777540287803516146632272881696016458104374577542143872550901300905504090065303503974572164904675714644780481396284733868508530938035069422337520938084310403218829743765330125735570496727361999217743225465769668417026233514455575447607802749516455904278338436850702472212759075312032293250874491036648008426021943587969067920804360531591037283449611624263325672192432037305715917241097863758799291231829586452699152979137415342461482251578715972429604343693935012862847895345432837637787075903415738088692317051530101857307262390552752741736373431870563702138892880010291965447174105392909642043040947890435359682440317786064590586151876291020846697902956651877292191670821110328491274884150871024124076525562322399833410134567051903947712877732098871932552258081360838159094343181010172788667325857094840054699985117899989060406180767920096837291841116265751301164770638806800193238566090692486897500392311033058592719915448982708695669446871015445779276125586183013725187545882522891897073891982005087115207947181773503602790787055440124441761262030998903177119443704264938948531861556119614665094845743656524892799147352728411089788074539744979308540339221192078307941726875251851008144385559254045512875440016853062647742092861079418387243324698888719804081977105083048783635839998772991770924004202108602977416434031677776134930590317326579737400781561158305498950859444564216830987816444690907966974496058189049750708591496548705922315967743518477220162696765250003134400597569775797971347596188961197337748846694207155449401211051277227688001106607198438195155397688977558817910785330557239747838099284184393312217695289184503239843800413569876464770032730881959699413055749132956371311362047711768465253337050244249629158989425932038109854090543183226417398607467996134581543988216899049825580097611949439922898525259476668736845239616390143951771243151992065471266655449387095898167951019256498369993891153672937520653648399760398954995689009026254675303972280190813976907877937663397111302404867770609295738680721146893531161128411664050443997605365868781017651179468974526727034431771463456389324781263580285316248957193261299808092421402720431671057709468437118225356341837313038998021254749708057458077357809759629968358674250818668415314707442823279332695917942860936654687168084846379414890034447899313867677836400264772767233495942119499617786597935702734057453505104251053950035604845287322554529948647899740688260927955787030300413847097874858795481423487512724558576572939350732794523322403527435972520991941229785957028910261785713161336881323348353827160804851027151421619639872374396876756816750366372516181784534106482123373203176923103586746344323250243524632900087472440037060960979730922181694550003322231447727878513903761811787755996754049281898043117037846438302051056673026085378183943108789889038191304529835735233623615766670313354297316098570566901122003491969019276207957556167342122140707303417815779779261710568203960376430463804659807526250040199081528346052312333030010669685814786467898372342718491581561030043052700091629496823697683019975049863420863840710038493044472468269339565578262331271269761985202226267299151550704213736125455422398236888532869648370674292844437502509375048526565082845663265317018902228770175553964396287588035957740658879431865812524385826048515574997250861983983035833411469606445856601514014189925146058221830831806375409131478465411845475535161737374825938920981383537201016424930400463778293223185511699982907121214854120902377503717485936676821199589818576640309648553437266414386217831734924751574146716698670894357231143776653558289463999250376014558279915709070892653507164606257836033689491746243244065691990707269700991473093763672940889982474881676674764583838301750915889296587767777439552021712987345200677010644549687554170427469029107399024121025801394607074958078294906749111216110618680363609712841035006850944832552502802883228077519064395815019684568332008750121406482394583633927558387353926225848781442312054443541663237383419672797851710606341240476692295093615526555405031458771133530544686910423947596549457492388421271958421211439081018999465608936689497626400012776274522131436479573996730000711737471258403198645555145192873398784418098341460902921863239232119122364258014782962697460586418842700493854678115806725285844742796907706470438954081183788691953373811354135888441631935581461120665744662431961477442774262305478537596506166698383670246634174048826937297095835516250951349647358901878586043537864854977752455138668369362332462573727206135665420575229450948094316918158319530236715583905352344200210120731687443447662432500069890733317519110904956570140496484011964646765683162320873045258272712731746129132515001020571386579092746101626402028100507564427518891218178113238841334196683101898064114902837938642647743616517789329232872974394577496945603677038790355329116252056801516899722651561606488909590920859139559329565049777713081787049098704736511970626584567325091524295680295986427949296286437332964567744638726954844210964781290043002626245811007294429544361392329992741287612477108069811121275733158808450597819426180621410554500436467908689385307053439873144324820182146871342802678317856953564537192236050864718022486731371943660494351390285803946179919484528438028553459372134187586587314767786616940120114060795728153406904732040345410361988204729191368255282324115351368813831496443693369144076047068658725837880447220924352904565794632561756651290517073459315713980459805500153987273068388268237211419759507741419956377969094413339500228257301838229902536143817740971642316136185841594269200673200098849993013841317547953168992555129835844587596247023901758373978449002272549488261945966233749566132108052852493172200215478967177758345246830812549420501849370302214879774499450506396445589615047741759637758619676263921668849569940458477457897111815840975374102034514310598354461793080251837080928513711721828685306181661986064219574746837892229386133353856111467873365916501421024949184032222722028886142994999558306415051848699142514275614296223495777362842206327048112255718631461817825374460513921075442557497602494439198859631514815390224455936486910163444815286220478842618912202382336665086347913084626262805049819424386018731518983503328013119381011219862479408408805817023804906556830719504062015270456904551106711410488069905866150560427707452494777965636387665909784960373251144211805288884564158629974320456750117495054345196314847766940878808537945034215031100795620573972043570732595976911724223100924848334757876764577582029091641679262945562942305315067141880318512908848863835291080297757330202237835699689838781856143481496593084439172081384698015753876821214866667630742829568711444821101518048017821991879676817663599423479298029823970890284121827383054414988958263202704016740908760318430784265751795376182869614241009976805801922208292710651802712960825591404549552936468665229132365770698602157613645750672698381308730352809656214258307567110989455103354500511002968573954081626210743042818745405177107180496786973599952774657657370759989437357373777923331675656612038395940317362713617481918140243622312176083931218611866454484813975868929469054781329562320759282581072287449459953438912111163975139685504687079419120784767652647861202185424343843297733249882368085741899419977273876372627613105705570271249577603264561098907725797816217800115860965635010846489664158663323458255147274457535262865965366858745745239316936352844613323014436806761478619959262098158900692088171781773797286267930499989392164920063870021274089771315680473542833053440162282136221030771668425049806316537584194594460059384316257612717854455544119533368229614603582077666498196589227319882798677520505869515267031188827830244348200828980455028860696068409990725318173498947157890635189641359062123176703847843888779072808327261524849222349794586333491719940411096126021768235776136234125563618242824075611858399874042422655991165958259291675356906461655886018615793896308753033872682201930785919297833048264283317212625145039010137501482465725889591855679682843136351719428916796963540768981946088448149353845696065029910909370750269786040841593681397850684193178516980197116678225967963226412503316545395453594552999069710760212568406938575924885350773040449777252622154198934937307890449454130071183775978603055159548682248597117262888765049674005921953091020765034089313342523991487664239053339105306626962145416437737628978204592335410748043615987980368239895670693637752907839066869865788487592381380120625799633634354855616481259648124870820018892662010040100276327268051857758544622629476197864606929754789938272244872599754071294967331072272702951425507293945358791863466727994335491616259075938444647829925161708761898973294962336947006061457439452050509538042850067798882917535060960354385296715857019121018559457105255476419260577382691496633933709459169197687900393030609221776188006398883480685633704269146737995268113683410502042028795509500749397641282673948263560245657752663476793768562598739525828030243575570916588699133128014381463839356430412917207602570177339765507576540738541937966990960463213593826526476741405944716250946813269096664022954470292611986237140258131520555659990223459542655191688242534850637469884140069167166181173201890867685624436220160046588991871132957300877973878883831263050767748769271394812317994455029228128615662229402239295254952935848650529470098424668061929734742844615916176209424470622617957430244164170962412734105933902544514472530261679508543316622066926912907770275735593077854624743116074183917447319648542141944059922734465566971966221709512165789533680546050100279216966281472224319432810448747093895987020068388781732703607244426869373633088774647852919382495158290671401584828126543469560259955063811048938131459152732142848441776320919845647610148507634062577333659077788036663320466909451731736173439126929574401152517844397013842585333792800025873712859818287418878901753343712460018411636140209148643230607963829324827577174868172717337621528132742161280918544534669214672791991395852626153658251670542564598704488738288945558034861993578651659076424575847690689672751995362974689036368333376700031172511263783036095038710077792602761581907053651926870212653630119824543224853377897258243953897541857928496401245577877862997296994490540257435571204139912505932265662155054173623772866613312090009018622163392899963360807788667323783068553014014406131907263756887845094312825060697062435076487632553471265692186460707728708711924007573552432077741582535586207006956031988657197595850010397349540264646265477312840820336652858840196117985345388872198583080009690880099518507906642534856272793145676378134532922364804852920774378273783192991880569647355405747255597205844764566042789369281926149072099239207313400896592111894154518410851897840926016344781130929067652972526120486383677751084013037587813917230609629238657720932497414142546825710814146232978090524813445959869625429280721824306327367204022000440879530283177367318909209093357753708393984024214073095911446242479510159559080022845142392833912748447801148343639527540528568090057790584289141279978591714246856374748759890128120503399491404939556302873198888412963808691335430611996512511222303158109654904900463031159386873005778726048970009661231947978727579416909899999982872511084380016410260113305438278953450377451367692469786168153278469365520622246797036699483039275489323276323550361158369621429906887818148798837153546039952568717816496160079761138509481238258434738956015726457861096324312028695384789676657845813745563534004551313951955278891773225226286234254345276484017544985652457238505727951045342585320954873425185715397856122594688009878090058082117791025589275089218404388491934807744875985787021261747451706997917719149565796516721674119035997307569585164467417355564460415249208459053283064329443153515421350986028351142081606102480968227233649256059665332610487482507370087558338104452673558545551061914837281152454046625445748554785276792437120432600956532135472073501905230985413295643241387250617560022117157798078121994548656026465722862747626898013641359835483516786606081339649104442292874491011925463865382469440813807336393912119618097032985177336014092036883780661503841527565753136326781132050035608967564056820578460476015082005249472788735023353172423468623555969694294725199051448163604334663086004690831984504111912434246793007640954695620800775285490157530495874596586397479237249938281022746179689181407140923878010177644035208741129367953376293034797580873207560799569110555226745874002939403622427225943177724689108691196637167995665068980117233511571603193878782872630324149614753384290342335085580998154985166468559268931938242376831631629401566003577939836020379419095153615271110066695064335251431473292757909602872693886995912696184443319906655656634397723879882637800559199176902504560795988802767443491945468623979359144580684348130009925626354323873600614578542874061481287311959265246755001148511673373885198810111516975245116592889831813229147892256678360586714784314409212135480969563475332897724301473243992659022479244503002292554998667197108249163555000770825146419724637382715546753985572275163872277579345135490034049301313141669497402563740775887145214127032373322516082177038774624524585594416092369848888257426719060470421206676760106476652392160494413021898461019370049622034949560859975253046710573890071288346719280603046338615360388649121009366322379659841868144525396843307174151504972475143053703579277517398511363996014776505398343989495098519069065219252109536821267355306612979848857300723442512366269274463007096099173900447034826425507686198050537979225870022369009145364898240942957674233034960992123664449988911141329874771692580556429905040861938403775189577883432726550182430550006679828719561173379108838922184318355196819543041785210280197165248135563417120308186252320848581692030008941060897174420606502156292469799894700799350217618950919807193838105924090363505268695281706403464304077707572321495568968565889198234574691432185698776152263078689441771978382977360908327037190179448233439038224283307052529540777332663926038630964180831052330671742624684402407718319375439202996453432698585375192975356640698862310729188346469939175177867328779532254664253467967364395962739750732256855526401999272786950232520489283316732174725091514654957058512750106810303055146413071670818206994502974322006095488511833765208137056799578651444289984595832935981677590245598418684742566406278177755866089920519764008340686518302860292795771639766355203162326466484208002356947292639421478690069944173059698951609035754455453900013875278313215759584395711096915026936489977940874416462825130807324166073771914725591669562668002512803931236833591697938320498586237036414282682751623412795813383153309261140396068969247810903694886442545265035357845048315232716025568914415451311647643437961651914706953832430734537463667944626988378141487172894816638526657326352161625138531959624411932094947999139933289489982544271150922801734812024506825080188819865252033361318379787324912446075447320739693022456701928422972895089108287688305660203688068476014098055273713972593013028724352081791978670611294774570038829807530219995673857932967054328866534343908464949817028184423942433953046472758718240571744244111975152375915757274524550953426629401426078560904422899732141282015888627992900233456804735495692154440510033250137600010700170997326842034725587658317547308570417677253794444223332757504537221769909966126590814779333734398487134157230430742971509992687103011872312815275963816855307465966060438153592297038080149477600220088289519611025288042785527953599434682410524739632622486667865622532987279990309087247999331679659876654217275114391955936632237361448359874248336131827841603709781525162136250701795385621208695764328105582298500637376428468613048066036030782907775299258515620721852399495209240974985340099004582154143407374737041839827526104641827411369014706134153195958874845793723144570157262247270163064978927064329010142482634169624014972010716188635317200392605837301674317728957202451457397491710817404015243424021883955897926486612646594666417440522648829766627594563996650112391532366297637492184534893702048685946884364995340584707648953327454418900328268292594595682530307863818271433998427974048743275257549555396428784136600606019124374295120649188816288926393645829510267467470882483741017167674883774771554213390739226661375663421462354420668023967871791270178148321401328134576412643101320998282689361889358191047295672725786020817652527252016920207992357641926729858498212259252927331514748375191609465363211493885521364844406998560161944416521985103683011266112221562606919297050251367294365146442484943789506765045423747681824319110135729633855060149786048109797443166225584141596082878903856546373029690761897945523143539727763807531940693804226447163491037478527515708050030009493483834659437725383127769373079398806763611054064516719371724339277841396664047099754041826420974403518284337947168504175589852925871129229157275775027890360822843210933254360663074312501957261541011403691467433230959750602159420977550430316371309011467849683282259808936330232043431263423640004235050941611424665809041957545351962712047006524278944546587817301582761663480750832336521522321006268079389420031260536810183476328163614263896224940974719561339819537672770960807036817589859162526064780338701261905904130325898614065917792925349565716793697557748517375558810004656899628036034627986645466026679393150706919698086973416168596318818601977334515711852618430355810925037632112690987007271576872399997961062432553624584004868306710297104691470217671915909810909495073943855999795897569147328067594364845427402198483004136277523779658063433492875363763213643408281486427120833933767494895739927184070634889762242910503492952194122724697244339924311738645936191551175499571299535962794030207804797658126216558503492607148653840634986149681354905753396515494396119573916986043139002930906356403040512361145324486416827540549390646358376945190253440549823265161918256490365382747332977161745520758688436174703132305113155928037984180475172374298131664971786560121725246221067947266827564557267949994382496082878918602083083290162937588679211830641222653182069858774374744404537932012658814405419444624996985179606041471356533636413834434514984333340434711952396339187417094519410200302796340370062746246059224345494718128329696938675048468812821829809230614303924120636614395165608472906777567955154218688153724317083891754072176056994667005177271724761616955541292364589040662237365084587536614066790119438826628942886642143478858380444524841899035603635338504019507818697465149754525324379916953596080938100964405004579116170287832749781922916796425031343389481388489496310517696461160777734151905147629074549665987383034946942550079066887167825002652799763549338596416872324300830935184142874624291550196300240122787465775432409812174577045891167948220269256686567540404612002674448691627160609731949368010501560557907316855941447763628212831817713418401308944484151957503500026764074233344043186413466615866811757005789972599704694975003126819129537439204805806771907672358628889558704607006170876324429477633035871857082949263528054023235595378288102653712720135278770789008515968125125094460960452832072036232983894170020815485118386908761976972788860636778215586377235741283770929350417261400953741048858741855002959107088067619573188850816671059594734205684755663902895494214992357428089519525811805680431391840934802758401339127615818938051969219982015946974800208807525711974652081859660237220570513650316745708387680963801824850243815494809839605064398149234524588150908776774991396421072722960022408239396826849646641301795973301172938893096921404446404101685358623790114480917284820380662979180191002428367960063554257521544178459281111612764596591061365993569123252606897811120180787616949071563241455736200791588878503425650887940184077117960500227175126451539012159473373975998303692761899181842276722225356599806544552967388590964322798051769382542723487785314765098417496899784325293311121873946169778196259820986866591526902105256022394154559917946803009556687796449405611630192702199614552099874145219444515787145882686512818394414090157846097486037467164277968199714279857256603670859551332523107650475324717955032341529780806876651113580873526303844412306126175313836325969846033714806517078640862870861231992089218355288587408825737668320361095015417095582421003279296413043430998991535187189979040693015590737908378941933716744302202268045914127179975103365387431865810460450966411764564432586536342063781556743539038437033294215491648699475000049057051052511599656603770619470624621956373798964565525207770989765109376796789714763016731938448006315569574768833947862989771658458373823115107607575143349937781080906370095987015159565576371460889204783454350822420115048496226210684154917589076402208556726574407336826712007005996489149229145194163922428597508795577238360589425421243360261683257195518589584718845724046154914337406246654112495850447839144154471213998328737780546176012603215618478572012446194131165429836413619781531370656395862477489179936023743863514780911599464938355989314206022260624634487899664222196298677461073401486835429061896302701862325728841579685301374163021664672252997218871441135102783992892937560304404555338983766346754840912564022492857331718954279475305324057199180370908351403815115702598225033009277560649778928255918644821134555197326620493906035152059197716005173583798422883441892313102759849941075064314695041511526966454923845238284793735167100908194425060122635252145478622850321085889827695090843560096769585408542981897716406453294869867978897037520774944804825194450876584984600339366292717359129336294028747431879862202590971624662420355494263977604778294011557401172687456509414503791389464270025681520392708740939670906256295682411806820425770282423166992318166436831767295781985053471241785623533967391094237216417283170737317178963685607227723532260492748106651536222723553988061194141205613480129743377928645364963121029694104851413011292392529957245913504634136509310869384177917453483783929943914700003114429750687369720861865975177186330012234710913075199821636260261762606839669822864024987289372621397887139003891588415240492087246454082151421730398692331675054075975508413754215342516178280204734084338996310842985118865786894015969902622189372811642729194886239315408739251509849835302314331513601625992199774319530939267599989822137385278335861731810839609497228734810255105443779234723516703604189324110447749791735332744333008843289695948556289519590340556723103830884867977399538867010696218197119646458091806892851972733880975351273162363990446402851169150220583619982950293808643548956069833480638374910416671594526608194241134490779466868044956561312033716563595961718044249243563649975439213517386817493884793079388078461565400744661663158668861312579966124638946709741654249394817932916173694365842637037518440053169702209013819444725594552107193233622320163534487279023828082633671524432486845637448863135388928792151346941591161029944820211953542156769593189103515237043867011973020076098738371532823102207205739773781923372468686897602459449203680893568500427386492202730726984493012038575917399124073893659391000022025067626181967186617260112092626795394720439953168500764407506991634918017173578169681973214726714543626202317308054104179277926286377128923599046270650328200815670624086159487844108830738730901175656289907295323951585718151516937086907193843757066686041098942128682638187736592426107780530106486697029052063287191849253810990863690356844126873683944478639772228811621841895480399499853140803973193180657378858608437552256832732897942160387784445614272511560672456273606083408037026122282012481656645970691087173356003116857087382407988585660255999123926994211541941545681186739158662047436052246963343178922642001707921121198562665052201544631613317131458401951341828326717307325709854284212803617192845921512965416454451524153010112673728430933003218751697077569957347162597596144814111167208497813657862783346695870514456450595877903721904979752482120243094855982491572657368335001381610285405316821314147032077877168973331005389423433537669931388191981062627235546200717306013568720732882312245105077677147261708646030973589902904280752011192432881325440500872414056298815192267633644626075886403958111379239511435411026617409664875183414475778292737218769122384390681091965829595186777709409267025461130739963807323614632076741106820896139859586550916545703159538398026262763358563738081016058517065272495596134906640682658869179328952163830116524952778423308618238619695270475072194137010541553088927096442667985870430850304268501195526405321733590457398770578673765957773127566860842832502216859220839568237281666327868818988203775251513063709686972553371307904924680664603232306829203522670258731305643103306389792076596606232456821010214859128619560633254411184832877514157315704043163370615699247822809639213267385172356719787926471151303505669747322140943571997165881591587192528265622319432922750101166155499049939071692052820044894389391320758462868666023916938620858640811303845028389972647909900622455044710659818936465031638671867134645875606635923359025467879012865411777558355902492522990781281617962240957304330935589590505474071681058234183368945780488286027933195350064941884422781524516434494355343178791496003009186479061101355786909213082631979763532699764781328098867857644301557955675977627818165985714679187797212755225945699791281181808533081730858267614504526389159797081497316774573193412295883545480641496585727150305589393402550542905349184298492714101720118789585661404802354029653211119368315219571527893888213672405174290607893096629335642836033644620656495648844910681218971274826435464351326649791472735207256348692165485594024122335396955316508611803230497124617173926083129021251043890980320220935341569732277610909945082173495063889411943463874996412289799021999022780200951957391672052183056484961319016522694956427806575785146282189591507599871497389997107240490271194614271494265428256317867151127381241825643159267295855513120613677510654533350001513467959014435122164533939143914372319464457848767148957393834341072838761559749792841430813468170864292813316094455526427461400617293488675705419731948889891758292528851838673658946140216374829734576453056968749525269714377653021258221048100210935438069242097708938342147106455360490856585129250699389810661441338372364431345637076757275587714061383037420717603830515901527573695373351797473303544745341251316493299542298162114662115130690486221676903221358092889831682664348836025663250933380567251041604025926297891589204377657883613749117849557000726480941627805320261828848197992306062692426579328238050021929674700638018307867064248986777042049623936838128279785368046147759685729119749284053182334406286970849423372317449295129821390861875462626907645768895850680574492319353751975076216509813933014747036830639290160783846128132457105856527670147570951907532859315314967527651424724368921522445256596933494345459401754785458985707395448782464780303409838394283138281002499205386724054961127825139645931344575423360244672966573206206225854842311176261822488413360481806966641902989758467728922078049946341101131956838871035910410654860252572420692251316963306036772758199243773725191965850610366305236968606628004276197576264929558889816944895396252419460945796238006355759078068719876427136203951519692896264120695672815278068267330817267826529888459478899682510175482700120592426257245594017555151996477053335727452999823123317836973676528281227328427307927632078574188319837100204383355825851206942071240561079252661714740295023730841994032025267734925371172221603266808973184094950414708348155591540220677812493335724814969160377048072754319492504478584096521322306421464595737028566088541232523318275034347927691501402476460840759508411997294161901136376012696820514385967735164513935103721233230808213976153140240672273094757521128391136050242950495834484119550841847760108094869394237460965141203099159634814938049587807251834323438840416584280786390599033628177005535773460954817156697558061310155005920148052695798260214442842603256366463785375622001474724841464413289934010987005174928829485590274742757052541909751976528282229896163853218856867445152042958735729080868531141048020526755808041878194995874453551721771638168542027653871333173228240432783986781257982156309256805322768765087150131041364263863566278362838089418293812441751059865422827022452097636318060416172093137692001891433476163235952896441719521213224999999276104741643841747601433795476937796155257881794121820242579579024464028874062572543709226796976640222440567559038621082012646548450823549354495717825231809930296845372440065020672293942593973112358621357774991986822057630803683080413384780470728341786194649228203462467687705588143634707838204384166077309509454014047474893075588562382107546553481255676514758227775770058506433454980022795062797428433350062345255798409441699973940999973512832152318866746794021855584494219470468821203004914151001988950602820298637521166162892878681498981557647205689799877385413673340035223434683318206601942337636601837699451758664493182452858585193557216278824320301809404498680063492831220304073275225716237819816450160148220762540558399091262852428622591409786637342432253605202337164578903620359712230411036755285440908661242724892201039508094173198418877354046300359715473686211225024198510540927913562596242121704683862665039613578273895885751110164757966448755212461446293244102570308162767271235781189211745872860816137810263138028545858419601458162324715853200489732452979295285789372923170670286616477983448951753104897099925323983972995375518236041888056008914776168747994975760950702723174202284986424303011707613345411691513854995850150765972792253509125004496414625792607985493203078348074844758673487766502345040494900935745286053735725188001647929986344903108693053972490256041572106718510403194118524885722055588495030709409669837408879112416443809048522832150692821641627055431270552235978434020172622911916267750063409377793741223538411658425837588305267891525652440412982801930997957679426302491873315764876441705109988751405088940522645751128298469487848782391152835077790504083895753164582250993150079292331050161100734419270116427166345669258644145918086000546305767859924474970498972693158105040905604441625252818824916928789321143258330256748755826532048642351751107674343500318842964094534074808365223178810379464879521032335301375915715986605472656907325564072105613830317296454940808608594863096939006311005333782289965414616813217621172621790641484309893084790660299862619193141669567974961596562683157719287175902477424308107760478093850191704800637612469173295165562410206734258123499588644963815169204348172476729830134157907903800190741444538468757116639463797850807190718253061535060756647228232050008224253831946917898943182684624895226369967454609075963287111465190748098766559086460893425729327982352054169656055182374670921859744599044019133701408732426907178043789015197283638121066502731481716621956431303511145874456167129436668439889089187690547901169572092831296131781897925067549635406731167752069199587056334297057966860634853571454625334744672316869032869329523916156162920097246615835177951958686014767842840103838320087318630900601189384409868507517202757105084311166737933284826122359712824292531907484360557619190932215856562669688320380722715042552127593531998922732120517350592964042718208810739775954949519667889933998333656020259165194464096941672280088944897098814647489182417010450109786969708913259860499263008207495981755140470377572516286423347648437814907703041435587422939362060293834422978386636814485988361443802116001744649753855342669766298956125847075819253945820618936575508754588532992029816657811570482860261894438174576194770743073590313339049022513425811740519403683380377388713632979821362404813951946106526410548038953730094666114170793724827077851172900256495540894917177643189153722720394555611306067590450104533138059238720361459517670185304529344590678578662766155426465187117236238039295906566359263858664347205128848008542671966730882505439953527996188354950189043644166752976558384736603963420686829640057497131983399116497598035739547632545728773469788787750178978356172907976940459768413601257076172690888274406892810840419663821103112426836378657266784026983543484675057543660596213863895029874640445921505644029679771980257205132615061716434681694178114569144085436937437182299864092734691721770039254033171434462254503345109070225149925602609107281985864670143267723018432767720264212141734765878110431021216810579737029569971133392639627216078869643162016196703485647974883824319436234109353533966753272996655340761149781415827124143179823331979740365461013227979281037209565723883183430920264404122078844212409685515336755607050351816118281846470195673922609173399404406828886337821203515413331613412780003615546147605971474301205767888808363188751000471992671893415288834179957308200273610194341283342168060644108403639745882162725947150404881337077546694930232531218846220017082714096747541541405758985685729299391102445463695910947755336810012329924143231083845833904492270895292843942882769411963808615921228362948606679893034014191771963871812731802292706708594200350432254992054990906377605983294056316637181870676291464846918613764732427470789833405895694992088042710701146822970796037946593567302895591684315228958043632587888982716172293632888123614477866757351276457908299253067481418219704505595686657531418154290894726257092260688785711120169578326721739607580733000141460961040263801653598900337390418147980310674003792601805115349384099927567655019419619355504149579071184032996715148834693519681607015023149270055963999544729303640093641505143198092759302083755328361219893852385512572351729178305678314816221690156647545368890677081010039871596038774568306967344401652727763129676719295987197486388400588026116039557743179967246969667646326029822883174902188417564421157580656407346470471661976467138559832684597629873590617687455209041681271008288417618856907358129231505686957844370973722135452331158051912877152950809765668294938253368725492317845745719715367752422047643748701818584088104382133689500627234450826943168478645637195065247380723306158818915872865272828116340502700347701903167129708805689585088160636533609856013968129127534091802084678372126516546278956448099943228463797450996476295453469713351946302188111490963274001619733845839622569503493425111269406031826754917998997435189133603258796186917247165063616301882067357856955584332549660976876469508204832448365623666693804909173961821589888806738173814481617410786480011289718585937206572968008960138375600813705777637148396599152322022334030047076100633215191882686983067893693650882316561461944021308329949476958576479988683983948246118417089018239184497753282767962230012126558525289114866578936035420845255106450695121726208126987462422633853144742684343131185196976305537044331650603915866528872767814671203526456801474052339134278971781485256723633994276174113894068012547071129752902503417834201197899845500598308174960955569241294099134567846748547259867312808466417338875960228461125808062382498556091633151916032924496063854661276162962201842989656512319889923174332221692114874976875674189684713535930935369085570757961391692174676115792915502095786977452439547607724913665229332858589912097458979615347241464296845266019047574115386169132756743900291857374741337472434123067501517734691323613756465694091327236028393649054332988077435309530836540664193430340708241265040942827397320881782233952413805675622965841435106972477757202789207148719546651206065542647368115436850593207476345823704762716599258005361241708001942062176439046234641248228881155930782314486832418553247030860395381306174351222289071076852858376013753638884975388669524729623794301192556589566240974762351314443407026292056250068918847479572042460815657407248439693368331523353641172604910679093835852215841140308998368258773134504483433932170573346535586752046138861527159856200469741938689626799043103934108941290322622372148351965398508012299670287913008017136272018831801818164470812931647473303921664834999844338714471557171942056158774052052724782590770587588870012766009999734769372078810915838372442281097600167976461417349836559728648271205416636739100550669172984727257195195516550383416593409591052805569876694537280723516641389719844598740354462724320583743716715018593706066210762967826522675478339715608022082773581754003060970613606482728492470223457171386373053581999241768708684991605763195799438475443551261614641971368553538684521195618618190620013943611611490441196300777931311719817693079947694803294693136537671682827117352532565118502836543881417890840185222532498222631059883747943782733448139807988930916702949858054964524209168127230553976120522079950521657467420255589864353326914191409689915717563594058311512366033364460246492459492642199854699706132098044081306667552972339945816503253618717438500009645542580973798440360356287834099817003541911942071273681066460544532182303997636851855432286019262825651242422213810860918400817543412693635112485661004557285051432377918038344211202177491452734869106855306887473042706688378381134234274920291482688928315627428029774301869614658798556786441749387917121857275395453855640645820567252249465721830839904544621823097011627064606532805578608924081233504879907846985987874756829686943700890032427431377541044466472209987572609787707856262388771602683274206630664118481939879050476243522652801645889481600807516971840226468717653564185207741037866186855546232531954213083577976592280709694730463479821580546367529692573357208157652818172431146679348540323333918737868528635328669784698550357017623044750723430122982137319031557771949542286860986294089869286328572460320151176019245641395063741908790360958150494117057672148933038184368735109177842313675266116517235990190696303934579334964297567644357193758388855478133314206342933796503661602269248172172820834052676905659226054704467137790797219986010684838309340817726538581786823872752027383412414973317649370420799091769834055857103998142304972271882740995397820145697246498763785454336128721331070832472863108703149117951511911044196376785037169571030394855918433409698741348587027779656203030222642148520698415278461403980433544361893479510080812787684055840253405166352050782816143543096490001809342410848816741372842640569722171699586360544536842963022412516031195571954765099245553169485089262419993821104860151713625467989501269892080374959345852816171814013386435852445296072066848989454160576528768864964233325024046346602842781399457871618917329971901287605316630393998006345361044158274908581417708853663669132786726426457791416817391154504782787287181954017316966593640758846921986813231105938641971738126485252590812294986660947528887214442205810659294011232132114168673428087151096598507552234465395126977806847249920826004383941796000801714330933157477646610775127164984978970686162554018255638905784913344804007463070370240369216631445065195488755686678782292272320333670413250722906436405496033956355845348395983803456487065266697041224318542078114680773595656472180270757961284671227599098704533426296557484959587053367333563434631031966986379970824743638502440749744188322448033943068733554299747447160736239452873815269023326430759645852994342715251497195932863719471859462330406953644785231674709099080236041118651621251828262660248188695651798482225411904846594302929437965614563581124689774747786961182659189511878124066318700002932100936877251542549499217849641220826229857627203252978978707705397312903159976624361031412706006056124507896358791269726945609510829284906614834060914434547502158633667223290763509722596578963215574436315674228745450615131231375480333319452082068959344460885479642392797457294637311028375438938338524303658799782492850865647636608354694108524139748275926452415707670538360253413501746951162763636764593238231631423033598823551983368975781867773091171304561526373439871290573250466035405755710358807095826095304229963255582671887485996239865670985257178425009463787325842457829003111884321399424977407264175501611414443675824524996270190827919509245037678512539338269988699694557980012727091479398977949190234851594326866718889952983913007380505365422512868906607558017120403443914777869799995785774513481342913764473283474545306361037596822654260044559172836925536918921422258717434139042705462730783871604931083983892808239184882575903777279173349794408467468990192198715635518176565217067031723121381581880530578459708932514611887863415901661190909889629262904569031397333565112230205435887368192451880547167275409407795915662557533377959678164147298046013300130570567413501585856523086072225555684715086065033360733407728556105887269699772342546856919314511568540187184997884738054453386848569814034728797715217395402456310872929157701130586322894071572089549958659533952597453504464017040937776809751322742737978139608096357643531299594990698055987157238856458112571723494024825426481478105288282497391287443793927378165633530009201766576994461753215664733863302726514773308733349714163169287258173203944564786931126352417790207243673254339505524213969183814266209781784620248745852696508311012140782204571695871606847068183144029142906545795210779450078248300697727170733159483937687406106862326452448812947830867134331559284407825278751867491141694464324578807155662785330887327186487593192870299699590900368664293683355489009515714579361562032322854459093021668000001419008989289993943117775394917548123822583753221597576051489446037265606472678771745052982638551961171613324585290476498516612125347561614365470287046135451097539380559253907604928605087170240438465630041949921394489059562698101877401019955867136922100980318439542752742424633628607648904551666758134899514259503864606622074501152316780122848686238517531109826856248059043276757809773865330088503878402717435782657653796257742855797499806055211974557290452754862189157468001311345804763886113568261780335681979948956220172488662486453806977219996868526272753392159092326571466457592917615101267091357946503081192309402231596872827673843676341762415767954088870719319290148124154484088356810203876356421680221590997313078964683945159155170797705922411707625978920379364419547324826358988355494130904559349043898477251640427009089607403240045580758703834715492984947876836675996949320800702201515329168390778176010737678338485250994159541179222589870988407467937598136449582190402300712669905075535709878938781683626840779544106594676608352440880717698949819342061147387457086068849972377461553825259211173217498437379444735301473830778292004315560839363398743163481718224998543281644993380249194299754097816936352307409214927052995862267808105214982035751689762141093634490788682734902270693227168103781953303970444433275444356306696939799274109974702374253345961483006775952106046900199379017230629768587060035574080449231410965490206681257370969509371486792450928092448055746085063837205806255139588074653314867035070602871152732698963839794962997346298424167159639551265342101707112994103402908317740373848897923934560650147240542098372451316777381613013307219859985547838941797009459584981722075242259816105206715883727107254590004497811124204441522270904716814172062055908177498913902788556119405426409566320924967386075534891661927622620245750945522044199545142183588288849343470045250868777928523031320733066934150092879624327381637571475338552333803065054376876492592825478669647505469751255686339498176477423777902110418331754902763099376564439007568225289193613670961061263600929712242639829222638226393268317558345093969102876646770950226770553172803598613108130127156133595796480480328966447683931442022792119461216716603693790541859245844052490359773771841687415275175151940929869673901098261899661073632749795570262803042006379109070841595290029077708790266380753511778558507250747301435181539343346064006611302171547290825675450211907536819391368367735420735457093463829710036202973322680905542507797328410709712529769515976201592829439562427323241653380850787028977312201361701829379650599849137898767378545476279368488736259941464778012840020578739480150318305665057647286451333317461687213523613798706510301149711694945783120842867857191450619485645975116035621841660126942069375541008036607248300103090472084328840922292092261654416538275588625862386025882317975474399568504176388195186322474429058052340274738957127617203739737839424589834741562272761458476033445503760443444506688631654197777240502676798242184247674476779268778966310185115998926022275138729547656867114025380279185002921528707551003031583330371875969490209642779361911729893168154996293187948001731796763049019740327569081532446692137202492535403999984304732461781455938903678211505892011375104780825046782897097478249432570064362223724332331557582870796037214907337894822335807319011068377618475063439127974320400873488975996607386545475066629003151909626973301861441796929917179701717810874439267355822831546265016069633771896434588623760580753357941271191716807945446878006216979351288332573538185237484219756996190713857841083156238701178571600002277088220306073598632919503632171329896121273848417903024936382625277195207593192016874953753859126707781035546424186717475038134750763925770106882393598933116504110120687000642903688520137333011812360766085964116978761983190844519606090397547782518579569474456418339448112412486686994991606316650988182963064067623931317633854340859106239306499751938074768007243482202719860586838347444402337657168103346540650651397772978238590011028603525362483089541380958117097139779374645576097274271284156575985177308040278402330858055847907976222665559537940487625728421183867229017527382859208524237668979300829540099017943998111429517025941160552180459496497810087715718992967164349632238716260859219643594620818215938309612584117679385789602422008512328142895117871096595774616311453333944358527569499034263121047908289896229271395778174996846139019150875356087466784291340875208010971583007013153175673815970363687274000468643885803185981977342015772654227473673432925134187958503699505431034841656231119248493621082178126866454395576053722379223087425415294887323816070125097450914473560101540263396395607305497388141881231426780175183280292424691831366225176554867114867079239848244382790470290085123912699179178028734212311337614477386363587151214848803797521716026312241611267318173085635334497685337704387801550889320733868151687177178326444376723846398628899451571773440579550514721074883419421181519427558358192012176284266697015579735343087027088087805630202504733982450319734887376620797155520783283926610498220623409785881774228946943751760335492476623412185145622519199359502792405117800408807901533065143564190337161925800270719834789946295123760623908026246948278621071869231481857841358982853009610881668936175143778578475824940586831598582082129356257544971765736320823638533437870444452637007281916824850730461417663127641006797924591425103484850618195793922152190527331949898081068105394818031545313340858433984802343246906102038669652692354277368749972843540920712193702500932608520819989961909932135739824717324374230675677535091467405118355603032130569101414677358827750769751840851600325378888399564800674224477388249889084636281132876130551620520684178335530245749008863805217938833239879257613753832565303893462091472662043008274755671705325505350983226958122392536457771218540969712829855495232661040641867683788856523433312788956101925281239601689855216504660609286049964272276629698306519221768641133797882921365096266417274750893470392522169808449369035362090406162272509750167911442124381518893167423311069882736863404531599058350964410075452924848156081428804039668694415279147115755750356046990646666977979153155554188308731582970602242330353189795397580419909047351131616202913855201690184860109685213563845118701842038456345659469704249387711024245987335393461994218002749117114912246335134449894975884191969114256386341417008182119618090984795503889030808997240356636563784767394692219907739374423589492387984433427535123407423033059963517075375162271521200635798363131169995223786533718690788687080751977530080248321422686369787952385926481125566298160001958930302034226844859383971338089774114079467451168974008945889208011257621767390179682851394461931132972281398153095198087290431126438126921611246278210641788849160873665114625771841721606139036901815893178744243382973016883075229313662806854357939999775012387965463981725551111024203936335201838513430236611558272592200820112078085221391161243737149007392857691353630678465502051284473306335711689766310307535275411129998375920685640676609968182166241615056669192775394931949073626773880328157641293361141752569783028879203848339029018233290564530322033182546280844395917214268901523446494736274006354050494306194531913221017644544085678593475307319820396431570583587990712359016230110547077399627665837816156766087860778819378793480288336236962110528225855331055940611104578384865237836147897473502433702737319785356392333049270643862455321593213037618593575834583655592497034629089763383110218421530484667850963076230601760999887113619431741040445452302380322290718722901172250525357128568856723029562914895451118226007313470061523540447693952195320484809722292400162118748472436269440292442097676798094616452342083460037213854077946674310678119498021558305519607775958554848021721818933565221673530383987325269974956982917310197092392244981701197087409880653593692002289346493910186330910249441632634994900577328795593446791697671140945469308604140472225364245534196774871730036139112278717823674221913422703888952770103933419587330916948474750690599104773326379470525819015975892852712310626194176833389715894462467170177922569869220480905071888805418083461097181336167647525137209887115314460610788016485769471417586751938828339050911142940803801460231813072959336468454352387878284326305899547610427858280835838282188035298672124731653608196525246792150210870772442513542577633646656713202269570777984550976289245133017558667730172480538234335960962274189678308140426440839565691958087945209682423676316754338094137193661743545614565899129411192551824320391151911762676706724962044789303497631019623901152458741177833938559234606325903692637755388965248403888575352382771514809897149159767634823594688841534846273412678738439589412357822485137863343014404356684252841114257164479243032254001524217741174330995821783502607539405532194380651516419013211145919422647058829573761308674810801836143037985388963741798053094470644175081863639125806985560222823655694401254350922592030147979318330267491761300563659125743410533212703134883163429684220446740144240011137940407636616971554095247611068353967964521393114121594244263690369169951514356884910356492278325674891071765635607847549077086739939344677837130975579493659827992202515057045380658223744118803639863829660024235769985502032266396477095022396397434506980574409123687165848455058808317757730453840937816345133982705833370645402314111868141801236578528246887571035852203970130967880258966217570089569136845217174575087625585081739610050119099198087840660639744807226530651022088266054099233321487013483724803916249858675749445295921330312384639393372869484419629152704116188311864720943716214658070891721175310399134603152543923094919599134602516001950453788244585529928858035476908790333353556951407554033565071992604000920967863375934686736636271794951074754133913005148291234653842225365888395237548572525696261178182051522369825548868247909890622470589587384540110135218595405336098115406285239644581902220210097950791157689389322457193129871835283665941025629555387406826422192516290819402712566653443858831509985292478353855253385281557013314892314689263265838925200366412583310917973187659229393725747825270701500045590878290515845152972346690430003865177494880962133749146455420838330865954744418410645151518374692491562240234169874407068135938508762386182695810180568141244973953363736067263925835682407131128472699561460275393521107498949413088540372419447693473788324716685282863902984304211785365206873311427959424150216533381875182154278364551086234508848828874000567745999166483489571984367678002225444652981902565585454765939501570799982584179427365362227825504930443700225574727143200786765813804116678753406920159354133796767692605704510225875227632229110657224332953437046215743278529669028847705254271436645272876769673737573881241023385650823336929964842798871627698678097179942515276181769663086172007959541046251649589376719363181858890304320231939960395563979556188079566031143313762454282943075120098905274216141677199960714242356038658269686246486764087092877561655530040750933651549213045846371368413236792503089056394617221801369405810076476105668868409150265488378349207387771564045948761726377135070852550407770510252181050116232575563459411351641757215212829512790058315378312227983840772531423816852389842428206619186175231692206491722526966632102852154667045295548583100722492442892169895142489637238627911531691211266347571270721793317021453140414190561786760755596354105409351613085755619925484924829247150756952371308965387162395424126636779615575831924892168905824730295305878577926573856825742162994371498109350480999773784647025171392607259487234711670474111540680882333252046113683012577706747025324341650444789127234646649355358500380547476320290569894197783772956984602225386439844761522338836590883578862502469173468360810114073446790440536698285608895055129088278182009029759931586519368449600157587455420671925468968586908961220196878972476042234255348863292515964984724778450696697224760907700542887105422834759670188226765017511155840033793396277842713486162322566575720978694113389180880817299400818145530183880569837398340577243052823084914377629946830150405422544182160421066843137163881004723302357844748369970446176846430836322844948824147351702435137157201178635297720177565509895022461318944836149891899455583024453841191211280970756717470204333216444619381758110331865707634820409742998842922510082307023118850215041516277964460535188614028206344559112503233182835510748411201528194489541381498008824019951225804118247765346380996702946686606241619527081626097404527962544631874601567672382287245795537044099509416841279046476665388319915059553198766809573122928900642408461585302192101754485945159165568637751388051321880258201021583091355585423958193344998844152326967242167520602619349624813382633764592331252150271692708011245404805604115636099987866303689517757066832418547610114019074388334188507382162506705741838386260257006299395361280353329136949142367752572050897311958293422908252275819423067304364169813170559022884040498679055147930199920412093604357591678415620385667961249309398367991859353595335517095135579184316417689979968814909584546775365609570997454809546028125201335722116963509954916262603166579792855076699196490407690683601248189324300281452163699204942435636843056545926190391204097237389121538930350236918330247009796590463761036696106316997708961488538373062999316064063362206053316239101814211521926940221987794921333242315310962767080312293593412819843755079038945305073037091836213596190834782980112836821808882138795148254664833096555198426370500705459663893873783108890833276886258009954184216208935582181376951028414254565612957703877288500263473069680180747975679191027630571945408980885134732393051209432601149792943737463654480046929278011808077896065807877991751750939807206739635738104260640175262824604091964047578249855399682991881003390541678729506746612160445624849096793727877294157321009548126513303515024269769584487025434942026559038369763970543624445802330837361931132209250282141489081280103125496848248309118581237469809864254208271723153696105590044414172177108023146239199473487787621503383358975496399472710180446728360801866881095248371811374102376712290985429216847323905902142436042742775860038206427793854597088150883660213176606525203771020698890582052580152227129819590954448424492564410165380946483799378630791977511015962598397127013282625463203771412850128606096770320262056492420655000218085505979647452044906198172206110112772379238877217262911867010051119597574994590054155831032130929954516981898849524157559629735808456358307226604845121190828702518880375551274044846626962780408544082411171618018879963366427324364673390047407409157383658092258441370161895137436692137076697996895016034196970699358762177389933502774581040926079018987013032897673392381356881083037638360856627248895829851824461788818830663606743144009224990395902975659354502319042988495869525099780905017814482884184941493077583666174251479342183345039699965571987577602670492262189484203180465409385269308049342457493932515579681694060033502362858672653242716854219806846583101569214499767019610180066637896502592272715066079596943208943514133632204446019918865830312793923282206662429743252671893953659546162234370179182217591897778607146603183691413732147784205946939011839771914114975075429110866649536695603786892221755095267452847877926062131174656957590628016218616500526900201818948866160225044394630234465571593439636750001925886485352909181824842439066743710162722967722494287295440232292169450948286911059704511277831742331044549028093716790687561960559552134600184425177699754690688583680282312822003883584961777004866427680235757574704963406882507496028270683612477759409672115364224553465230897798929541751545997724711202226807037570261253369761830216610436962957798552593259046993977707977252991065448697533530190243980720831716421767131534333121640862190898304330754426310418828971576336980162148214936291425559334419468182167121599166415906171952190089075531512523527620025348447332839614196671382517834032208377462261690730605280831206396032824577382321497166977030401624943517532128471558836470913860392029182005995978542941247847579598386627771061748621318944500904237831338378860294149679085842884523038698124896215694291748317221456735334287894336389257060244957682665857895456801886929756544494645235591693309029138780808101963146575406856800512061032695847339035607634837188474946413484155766208058001905441802378710294330022953347292898664180974791276038268054522721888185931677712498332172800215450722456950479881187814366714925663012881498258590294253275445490526310745560093142593394247145348578676821840789698703799304485295540937092509605562391898984548573660998603220712338108281818051088418516748653298474968397236080122298169411679517707873298166199275891095625257799168744483214844760583524656825573809452907347914755542521427651702413302406542866976164169158635398206520154728848601565743722734473393195013953448246103944998084515681290969132745395880070389483258628689047886862480888330699426882827440256853245855008002810459023712713340638770519759195165469498163328244928965896827133240801494682026195631775479714938866571203411389961927511940617355958081642253125305991358508555672881978175302448515315328775481586217255988934229467455385060977226480286197655733476411010992327172828285581347734683975226877246723208591559005210565060679615704078056871628287049192392872376473439537069836036461009950106852592293843081942119092645004355012879097456685060371769995466305892192480552934639024910477164182527395956847592172572349538697661677855959025157390354002365714690243945993045821867872891181741730635297875458965429478238903754764192599030855777611316689133120568923641244441034271705458148852558665902950611603258597743704765208085549716916217864208768698466016530501698107942639429257444569028418731317268045076496351730365853831567375252597250567324663008302834442417049065340556455396064019472984080085790255256505126504498384163897880566213315067191471557173328303214571770501502977048038683021181637606842087241739061354630163313116628613715170012250899202417310593174824733078207263023846107267087623433113319156906360752693793288045839678641133532529863206029296510193773276501164169047362583468771399259623337165561851189758298072640181666199390058707012606694189443978262740992490062030691339631007625113660252534370980997852250646705936122317570662655877688491148357465646166334868689118018378557282679637083116492912595246728803451760445759058953496302731274567084598360165524389035807856332109040098395939594762370421169579241323874696247266405127436929614116562930561748081385226521809509673522174822258836853938707398081647270939470829579732731578041149580549352076195643129622759805299164917472416244264464506676332196840529135605016017500636855090228015314460526944722159912505052546657300062443769354546698363953139366153274366543430901972085135583160607598989368184737474510281901178289787936417108082714692908963198349335947156170993511696039095127383572802009217572297435388211394356323903153779438280531351490918111594689654643256091802153761608650844816618523181148252046321681802410143527716282388946807970308993371362704683525848756440602717856203581580815962055554492831281275435576018163664119265288460417901340945775831073131783525998955259498999544343653783744337557840634826845003211916842164764764789595045380424837273162704654908973543790065146700301853491534847640623630980325255412208999315659539213222523512056579978408366349437320283485121032035218114593079614885432959576752175247993999490355689847623413210374572258830466489912810762280174564643328275511604988331155094594867729076808699411092355522418646385522443786553160996902004109206994045745245642116057343441234387942341509246969546563235673089045364373839222408959301031834767441080448256057790505355089676414418223508930534322320181765584035743370605866174885125373391978657262877706286674401102743133999931038170515446282860980349874321477250039909075587127338562954184729900895077726942583539984911744746971342531021779766683331434436665768930596403336069048556364961644980771476314310599567892579122912968260259045843649362373250720848687540340240118756322334692321889602145364526065550272022594767216697128206779047483143193862418037919564736345399070867245545110460100473280313756989385136047034946197839865491467790320268171981713344401967088404480479874890486778639212717383774282495600327828499344380701243004022296702717127368804210341359565967586865816750785537466808914688144756061645536783406768689174199409833898452808419511659740489053553403646965619913547388152109302285732794918732848122521078336212156675216600266807178861791040084568313465113835350000549990545351793230251578718924559532151698833994013529211166317919763085583260731661228893815425430347638442717353644766607906164236593562955721839051187154356072142177607946100003690605851133445435741905430956952785362182579292485059860434738184529388165121889979022571581923396018235233163667422560772818932458116142284739163337919110465786026409934207274228772576772409043267509093574117540601883133992600334809487165194989405174903461463964735031994927207100873494158638700618029193151763413486403373545822433786013775992601048582317983798686640939715169498851910252252609609639181390734335656213312276791319581908849830926980342310195494783910670410991522008633096531845965799662027182610102042505723969712318257025618756427641717401832073692763692491203227586267756291007350165530247368286185998014613260955657402929582041284071109771927921013006452667152975905719922095171874126539503859917237636091592155529280695942700387152119447344152705980362229033674346019022558575003604269403429691119461644017130791272755385536632764737529471822025014405384194634891209105516160514924950839977398195041730377501001429479377726003295266400755739227069399557422181374959526336127518744125623703796296986550154133701469796267429872701891207493211244637892048497000934270351212314580249675665077697377527655514114877494742034223036863080727875205227397262657236663419931278024643861619605432553951347369477898609223477874912275057308896582058826903708776345729709936825685493257411511994951596787887028784811230418194751265698328375575874122025913673749797589393216083089087197811876661064279113462210347837358290043167636886905219503161231954439838439954540788910670347879364381159771490966224949770747581705905167895177813809249360493885549187560569131735139359262318343735884939432980789051603543994249702962383626742550355253835616472102472218290127169092823100247566202814707183360432206868089288191737477101162418028459820221876122714342015842711601668163980008109928553250971352847155767425109902360381005990255953217168778886660379425535787199106973213865461317374448402191457262803648403632413738537766040274025370340579492050592939433724491160481030747473159967396100471065298148692891091989290252293119572342971310067945416619871956249199878759899755418911337418306061476044700678310035334034533214551480566812737872354975066141713631979600284066818931003453516550719403714511887622872110108340868620099890559373861948512064944142797641100881473522623776307828048777415762844412330119973386359703259307693790821658898363006181372085090432389575727384198370698239736807692932903385154188315851619615454566100419375716927588853292019055964210830404048839845734008374658775169326404246835004494987759689151534567918419820468557170976381271189178948805641689472555852677623025928375636299526871904251323782379168581080715186589967202783683892034714607237788805545044106571421910725601282345058483296781755348235899375092981808936999716936325714606978355176399943312682234151749420226050230418491686744607603372571887755920278213025635688936555219983959988541840929118818133297761206236055690066786643629637442060882591675258424063896789043106478838022771945952792791001354662052419032497133705770507011421858643444575581837080039290725083365489806858836319005014650770155160674170408522131431742657666090555808601729179567459936730688378474225926791818213008538244773713365862677230228122162263686804058932615669727611449377442149007759587409855695348417561428400887207224830560563560164926245708274757543383454568453808492162908723170653971361476182201957792776151523187291265150656064048813455013094639538411995656830934889974257301681163584210022587534005632154127200220199569221045893089256069378221864732525308449995660786705939329384734026936507845128780556319729993846267416665096738650418090522100050394923179897630661472334354746055105383578029272538307643754578316234731270789824544713124805549006435121257405924204102781831468120545972264530051245441884255108334363361212212485361908340378333534943702260423000298178184414840279961353858413534028730001761634138479781079063805825738606746956411549749981906332282920441635287139761224414665477790582172920074801297502425836335749539461045013710485433633889679869412250837928712225613256877908106283385025590220010900297791994246386809640026702961864227942852373612369028002731382693391034253125886833126478419479473749835187567246278877122453381923779467235594174997010810781837927764720814292661524568572599220959304230054578076506954140165282312174563618272189573335946451411489614821117769019350026492623364797466552867977568123132489819960701725518255769197192113049895874898081693519704934544772790251594969709416238779242240368746443027825885774550018853211584334579539912490500194761700740196608611052807104631440633008451701478210554660472231560514840983463048384205263887472423315361367464605000421345010217991834980744807420151064723707604596311237685748114304502678624477407717383358804667079187346164073053769503867038984193512073443681495810310507321032609046058518460157789222287181185353298780084206206676700834132945717882243661990025349376090563569723869439675227156922690248609959450755964455013187289202330761912542826801831038387314563627138400819354924261724030390940600940284920129747667648391990284109664059131287715093832905793560877799955009612393019150878987563274626989591310328254658255249582674399049077979889268544128956753879513954936330235118412870543289682735025172864405150176198430980197802498048421836186694521582334778456480657890279481865585705512869744778432506948524270814784178067784922807454388052860452487720943379720051643135359539451914833745496761218003364226343913888346526080657744033604652956368045592230965924466126974182881237047560287619292829153350476951970879753639860501083280494877059240351147930832664569613812265928084359996111906504828824982557025904780120300799617955593190047643172524105050264256304443734824919027304063915427081258689346272727419739816952349520404041476787655684964483711794488694379662197633815889337335109395908017626122114144865587576759420609744606557529921466152936023128012098162948121805912842980216600756828034441629993238299210876102763127895937635899690854589032117826942314273113804653109724407119655357144112246353090525201073319237138336784187617344547502223485787498570236672628681053668573885139601043575056609606048892924314447680457884323902517199373765143995835915274787506913821147752278932826829547125118949717721607690153847648424672343319238865511920672368994872893532729909783848888290224292596666778224088477930531329751998704896286452957069327067701527664361522975161876943345689808757510900334214753932291901287268589688608257119800954218328961713747396166640012874376996062836703023641647190778410980045632672571536785876298620677247073631581987843538148783903249271883251638111799759880595426077075243116915601199851787773701711542169547158931387314320844936032742092232754263504184917466945342021039389601691560952860237065668919202261386333447385652262598788372593484551576834355130595069728827795190123243031197432928931190684579529281879865317748697624960808383275623844838029364436923374140031620777890834677880082762212170057299468266558732625029066792017498278916102123801925120871829597851287167144659912971826999092593210816685065714475816870121031495507036251347923169592820028375760231675233279699064399739680943428746469841929129244853254938798752742068171739857810767892265988104501227311987019319629572769098219914077630241008073187121352472358201521148855733337416251508317794991160236594930660893134237392628563824751080363105960206401199870718498915880866716835802287317774491666007564209557750836087582957048522151974112523968757753600506892724466856682007177484193740671824290675963751968387495452784102491595842561332347048824526435070808654162446318441600319116233445492003720807853181588262712397750745581015793914615419901246837921173334613759723448047466016070869814283162366539966326282407929284197555824314468134627887300644244640846759865010007507555288804876238854673294817521939663483737598502432865677447814565809041835426790038745435760415526846018230697861087001452200534116377494294548108456765463366603154992465202120921544920569055493820403353874344147323149436368932609635279900580683374118655353664491806840139921587135104784347647863232022028573304570183718254212495992295391889528969670997746030653449588107007245474950232088322043488220044397653863060126415448296460758099632687200042174308980898444478766365118700758609736969685844426527955305834228586702039777849783240709436010526600963510079230121493714370295940230537134059093657327684555267156129187892225194019102205234706181128749460118660902594173780431384373511414257358855176965147438913898968288634202040793841709248299183842399251853064946727828153195535512893593254474906407848365066866810171063190817851385052627180205208556335497719187624305595908259229587442484843319759839223509409613550935025503989485823540049284988485145676168316685046275021861159516216226553115480583553364682481585625541314415167767859227530235885009805790495718001929727368668867560290400639759244568425488662056132587888520892610561157775808651199085955064306104014487537322441792123894614009688471675296228354632591639687339003226909867123369401552958562461391715040617994180851557427270269243752770313384585584655347181973936461166604770352713846416417795496432111303719155751362775051575197299857477836046091852508186349401723546460751927456857004334993779035580770474861677375043422680064812390894716526433562669631243510100019135559589984568941241232710448307324070655436419587111482783889868729213864199558267058171672366613836439096023717991041996930204308849695750869027664209176248975984845273068777020335631768203958006977676792802561336316800806099272019498688281527070123732349633144054771046008450302938126727371077854482505865597249707316980696892101840205590439625280501834068248684197770239293812343926949218223059750623137903034972853497559176895467954939940709728287348043051246417673493470203448652329353295729088093395589233896067992326926353567288270776222303149287304722525770585041085600010746986672941766126077573721214342712689886326641775995884586178798413929092936180555403142942428138521198273183504595368398632346608385595682954193075354838580983783707100597431665671301072898767083886549764366567175493337462738079016362874477635669499573313880601080531727162864285086811222220136955924407839480239651730185435895787828824616646971569780288442488963719302982148809500668226397999446524360118487405278936849545227111319352593084570327324543488998233951654988751325664633637752764863728353443637133420376192650453659925112501936407809977673060425393411095818963631243385500864569157842430866116768866409267939063589786946132833250801887794633810288523294874612345421811905744345240712289860506824270574803068243305320144220807078046222451003784137572342340091621677194299839432232049711828017708000335353642308741985638221296175745973272604810827110306432481568480634992022350365905478834529509568833624097894513549643284086054102957673338222427516991200131590128735467363922494586099551336327412966148787097281916747519760815310190974941517603827453206188995133642299324546632640949226506016808715655727727706894795524040929208096367958758625622108303309298867786533222936120843893860467706087249227187240368126985727594189294630422465376370517110827822414842989787407220065139622471506589940712648694604373099080282655554888952607657072444719729675316017848373658516213767728735112405205106671882878685891793784063488319728195867291505307645641880724023665912102005065770403187724371682140752615239005861997442594375560134164946664900708096905212838744901024694835769243762817335429368709689418026510903265518659971030877571976748893818071372784720594721156512406529669228039669276111579825757444243126548251647750064471834189071205315140420503083963851857770281200842094741039700771112702329111116286183494895396798714245927343992444628045070288774954655690536192835940230934596837593516609389264146830799729482738770907295961129554681383982834495154831029118922391646819651545933877132343135291684377952069832625419691718776902589166976483165273722650686877479220300683032636173385556092826300221867578704609254132616054899599606628146314591497744049098634597613630533279279754020054932319889583804950496288778676711965776276721649087125240014021238007933664524247657263517460564984757735549032475037164558586283585082910263273214599653937845561417528810014273959760283081346007655306394626730478997111659543275148409617783905349448386738431022996968979473815342713583142251020539883834967715243497467495543480547588681970643270768864934597753385532376046029608264133753658736502577619161145221693369102203563100140367487396878305506421346548785939866673725531633062938501680633315708466109167991244659066814288993097907178983377112935065980806135990349527876952106300304954361787984869729893183931135854495650825347241856908774319229007738651286373674830666753492648131288714722432396819740905095772584372827666135307902506749452423308745450271013441532347464016967642657944528507878195235976156240768295285040634665760760130782837444499905667309729060961454058209708041611103202326109449165573742638160919288138478472782156833217071549287572720760273098208282193919752807810243133983944871434178911387084767119701257924010426777313852550658436377977668074574996017264995220007167475127118175587983355910395474329664073231839288790632385531688116474909536676668162020534141652473770706681574089768366235716905754543996097792522011265547991552451393216890907712351399585522129814719335330727296499561561317092644049333822365405835900453492090607542157415133297280525753431256882998058084315653582075287423519863454465496550993331234311078930548718531033751841354045256862071610369796227098493652351386487596454851053474070683165794461394987582943388417445238831955816691628005951645228468920453696501881654339936929546634964670012732587767976905611708248237075010427009881625303943328281435745291395421620449031264607513779928857295624232759711235650501618766555167672270113491369936846108605822198205244326997457104995466062270641636157352921068557192719600322500062166482070500334990669859698615709688013171209925402414836615289466549940844299235030781919846246025683842201977071487906366503344940128142417069920603256316303864913953058192651656661941508688439606767274602221873832662496631395573533498596020217996647165947623870629069513389817310757971565447971850723617578780447750979634124763503081998300084679344387623464708853630574965076780618054609739555334501447362063689668276966493694928645483125362040688612056797777040110423934599938197822810507618417132328208949770637308598740390721687781455610993230714092812482117924345140073278739164668125238073405074133599953425435497298066749946530202873283494341313918098038004407125945664611548846236962438610659205886406768188029861132621455308472104694033608349261006780292763255605377536805045597014085463776859647133841910217731453138498174211799668440647924427328678729496758205519061209254385351733557262089178644466563119078974131707737447369901475769071475772861874796247906039981985819469454905692249278517158205969031454138699252864171486577735420663942622077738299157744360658094014577803034261060378339823133984678977695193196337990052768241379914953247286713642734078970012769711630912399584969333690747666293072346192329317744398091875687553499200560347112698586290422413230138758834502400294890497711339733057591145826194741572071287677185638591399041731164688547438631859614148421540989672762468854290065968759905196490201944173487631055969133175734781384657113126082680334397232079032255681608381255995468213661498672102816781020922251902687737641536628673038469897404919173085841563688480232939322600401420339205062100226272665606566529939460795530497137555864128512505982924748186881890656789386168210360182213355570913383954549264237276551928785608912311161033420680462816141468096555590707465158936360825379512230175784453934515752253815211515267325640529754946744966665994328988949763126754361001790753600574871060542468333151745763542889138615036242017076062866376633575591119394750819769319523240320184710278307243674883498356767884370694021355105163396427554856575622105881975020941702921146703273393009705913136222782466056977064486580375059822094662762941611217513246118777296626460892256489883553215649108932357620415409931816394687011212020817253327002016232243595014971298784538540366168585945160920673044765193406339591078504453251341846912987553534648775215963217135867653489745656524399886962884876516201467365411058597910599681140734874234363506931021150434352756890119552277838683246774800655121958931973315371657294332175825700589823386329233536094638873609426758745263634062091303698937795620474306218273766451321027232645812172025976525496306027181796274879927491523439554467097694615161801904175971353917321088645161540269189674109976841526177269158922113345581344581232905967766000070039919758525206023313212676488499261109155408454240904023941070672217003053828930595669051608918454786444797572364504964149255599480296046005890232267936524918505626642141574966528459118948726585271611764516405368580957315992067629884706080268142838682972524108508337530374280701668295415730493459887883403952500218613224418080839832927067861904231832602817651073837584347622487082044477937492165216417385576490546328753640501229647799602117258165805905275214667420308092867176256758779022060520950278303879324457341462826004588030560042716077764316675088109601744697287281949598729100489380656479498776715842069362523037286862847585639009143051491778640826357061758551542681680177778195609350701420825637216392744517704419705988090412544671656982061803152761997555802336319470621235846991602737958386390237115890498535027775849138153016564629829629053338924389317402617391573111595742144333927879911271133792556988853926121608981027470067606020537211287717577428512852659226671974440340083809679451691511529317732446951063767553248411102883591530216752013064870854225169244999732445983806559058465009417423926588588833698091783628458264398917491061049579044150909339005497296208248281380337280723698719626697965472813102445956935576041657274224504159400980223495752231718005329612171269524201537773638549118350064525088190150202334185060437280927901130939184396673930395164524866662203634966550271367407082524576457943124157566448157360388051717364175916937375659235849075979626216448456486609086980868647939363557370780954965063145007725909008059389093000448674200206573014206825520633700341076669352074284668116037680055628007867611746157787734671226799992645080596109803753020369521489689195200060041649497299665291740516004836587918699059123891242571894972419496990450701767710241695519901954008215214812065959304488193055626699287837673292268789526758360390653867150946635385822784512236816574561184726997449976313970356043060257180119525951040914468599350691408536999524578417328425242984823679907154763054227012641848507028847390430894471882820137181384138755421588721153222709789767808743531988589524339811135422856943881656615778975260998711256894616242684881155778238357380968635596647674129422234254830071771147225701195081416199045797157875346397838769134324820527031983249487483182563819588892558783282092757960640859142659044657313850518016501022499935954106287995390382931582251668651435442630907826211821309985029145001259068506856977040919787232414810993813119802965747034306471976030782693120151990399802491946969929705392197802788492853538149649517012699218199656070279730280965193513322406805216852588106332894130800234633576019373979878402878110926118956984238130105238897934240793869273027893324742506781343020736408791768004887316594223293314362360739660008008647570225725300704543541924605221663097229253046108452385255751992750281291785443835562176250392649503617959693682836640575605354781823924070487735277878624538061227158900135918685072831182490271699124577052074220411080965986023921595779103086606089907930814561435367035533298567212242129973055602915771346765976648285415499504474864952658683238904556325286566146782893431055824871557179123780881013737654899090455868298845182588106221924482372891809836372793501041560224289586192923050610966421222229398057145430675025683309855984363211246535202867633141990985970377103855320778018351428776042771905871781620908695620283905204640129229967635843225368991625655233191301732241889167382592761604334339211093123469057610731698909394125752304928243420614854118823434408100269253009980924184437242128425137051878383622633926869615716066504537381054664220845785555394395144711439507959882299704929142802989718914554935885463482611747214433022616495953686757683119254893421734990426279235498000498446409954491072584928123935084318493353524288979158042909042425086744018519226143042896292545673792056235240652415102819039773489041049401142664332100524271979644526015466428361147669099210772679890002500747817372058625895024448550027113003520848055097074288113572125815055467248962150062455361957406705821172648218510321226741355819725893549784671089826874392141945212272038951748026625185397249784900360397969046047934109121493109872234239388889042915048280290399455474380830886198063197611086100550291620882768597154913971023198464965519363455080867594590988266798242306981651120549308959878839641270778167890707145808889288126066873956659422708602015715578735951508477563328437577758675150075180264252104359151084026744144702253214116152898106624936386003147181973686680903264810621820780627410575463577949840295895767096428702100123201304742981406307721327606890222447641391510822525516599396354819696799169900582675684933824851622859821503766878594878727309524749497580558295144775959693165031251378493656732655142477791623035877119495999772766423046803803243284056225248248775161475393097220860795244889816004170405553583318117849896248003354028153223232630494454431539537524440238780498532278334502520121300186438503989260136077862088839878954801680155867074392147297836496731642150207311289588862634693216048556189558150538008080938400748288449571069133714524694314224423822890433972091098804666391446989369661267617598658249289035829589950170778106124240013771630496820684223976955265090547102728500285873701152159875401369253159370495600432143083119669214216049441325873593724612711612552380815595080870816843541119070555779871240117489498188255264139741621307411572099077743243597552586290363316458027199768249483775079520877696888528628325225560836008512999782633929160739782634691757616036586923034017434283144405875765318793597203956642437335124112079311600569939028055145765443229380614000880682928639184464196307297303809269095295008591123805877099541922470101869456215517769343513928424410081302734338981048606557221414885961100933593186050602852675535005663106232123426265733909679972622686213554041867657197104718582678953281918793053710145775650881421143433731105266831702844590480437727157771640612551278951734963331896408158555139111439108420011198363134031161662410423874438307181418162364577634857188928754409860268126091342990825921803216923156713806615115867142977182732080479124460116712129522384566334447436484988046311135952747625572498381983443473514397361004858824190916582938724967265702133946225642223657335378538984741983293613925252944511774469593848023856043628734565273853805487488727219457204164026360223233935237925534425257629890401907911940469714165476904576750526877310042610696614525141681363054800953391677563932543964343935209453278712217913726191126119363757703229400138409622697452013243539590952529197405965301234097833485758327455403812239876355525011170917993715508452759807126240573987858743473509821871818587567831893179630220929508503678539592872940066976017000490627285752278103383081052645779315816920802642587029815353970135243251627100587691002120993183727810609695491399752408345108216976560056599974842035196565495867585510274843717764837616984657173180683616627120191892861576008730834646167837240506814466252410407769383652905257604049811142429154791962321822707105681127112354956904226381604514523330078758719311371622803676704298575756095847354389319383899240003417263045130936069376889940775448339133346450487030539613963829137854664333379821541597665861765438806259935403210203875477827383473118666107686109153700355631277160506094131178040547675093239601236132712254430406786732964748794510439879853403058581937479818585887028334160966184955094451009653567480840129003588097680947700668690196899961505164842321773989181555499421977568616849202209306062145888747581394614861571788487556410587074618844395153723287307301464306330899162944712239684390094645563645935907779848665134971546151566788133386419370558126398600805604940001540149844313453933039858766539852755843514535594222738201643357418680087980787373264725621803962915676482300268161315194220237121046302488993238640685031192754175080350498571890057907810052274438316089436859294643881884344227068437222736935143570144051791744770634432212385684860565001172111058945817530572124660148490097942335190632427892688254482972986803983545096388085551428110575932241766322946679498482995117164158083074508652189971013825169988169044278129892407990111008554177031199175421859319872000486176446878520820159444950259842212106223785469240862790933872647326945558814245687392440454727304490181131177637566429552982355379794457654972441769109450579303405629228600709012642379341908402446493339114626343496855287987209893635199606815016401680119870637245401881162903936714803585713079464296163196360645215167003332309090682227758846703512064995131562313566382767981687065740482824272049515698138010346021040856764394299886736121755239660008731924057883159548855607013024967452114349088273569864543959155578345214106604366048369520517479728512817964988460956858204180443577717372591178810083301121938807243783291864178040709715629682856956928346085519168088242003811602414446698479246607308374847472543855962215626087417470017955454500112566855816970108866675252113691832020332977325553462924276089343544425589273615744732870819639380445477487238436775772993839225505478997651665596752153977247291329302316739261051586931347014554785451312134927306661284053107205276587062361659293659445629367114869162200576843243708246363340042747005681332432715971443626212330626578031368910462240927674986490077306962555880977581054522710792919999734519578060859777012739575502870152420883095349357508615667832620690907240279587160201017186484709645959097536733269828366830883070395531424772587588441497791675780035905366257310262365822181160625227907861599368287337231337759948558092032711131812577912491229995086644139281516344201122801566891100651282036690018111437556773333298027278677395373870686326213684092951101917266375393000129867213393600974883282743551295258982158788971776204923933158241925645995411259340367284124669449568856507593214888005576908673671429573672138938199463006358130063581243525673757503886831047856521272020159305460603713956488007981731770667749789526937468761322753846212661957294564577376831418106913946691074781006838363486074361720081998602819837213467412711984699280600341183248892286879644697640857359637191827429564750557144180888462763725690067630100764356908567173209341885506583641348302364128529422027070039498340231887421010595075526668288220608886611161636136074915423172181243811647030722346953332039619462234715387162821414891403295960113253172134703361491362345688497697247099485080822702196887977845012816823995058322603823412691882811057513172517676789557319332148258685112678218867792748684971330338711496763944218156015900515749904154697377369426325014691329083924993903723545143011165324418381782615154849108210348424621268883655616516295970983634717084218017884194661241178835579766545654764923100538455121402135747203139720540827498196488233489811529692996309413231654698431132749707531820287107248788022060896209714434358990017309253038200786551619016273181296497444700410232867416756715960146716019925129737979122499359911495934379906462986598756369162104890122260925958165106753571731070588814904357886300029837623924368066076886441838729126015069004772562762560400321354583614530603795072011092470261779559552413248339546149286586318468577910708475935026486163403610077200018759361384613249298250297518480887357571928947057518648753235288681119734271904743268666053262483767169563194082770785615942963752225858893722491434267471615187885299772597500140262119376440702010455761806212750377439249114926479867923073383584769234165371701757816101055818722837325335835487741723680660942748613776054592130971933078778773205110914742406770064251304344049983810758794631309332240362705444795210800466985989084041698503030196468439378269126074985392570615339244276280581500580400201167764836343521237790275557175950176426148885428970268064249049710797746421784065788723695796117535886069318985868242657846574972017480353964843771992671204252017380989443400321178510683764298725460041399052941177570839783391988727871951207986402256466498103296738274389346052704901037227418201075843510513924028319595332905212448190901131314231927195410928615213237325186608638332458745989677471081523749516372358810005109023851709918559634866765062431735782595340278543400502982219176299743257352569780811398764300009744657909925451494167540277565419482646946476451024700606332060352376119794196530504878577532197801167005582241800682074813930335093393447075200011521013853714926912008490624698528591257465943596941417664968460065698992339229112489890958790913158314354696198744927132450398296750460917026860985247039174170976064787808611623438118880594948053318480401215707225872322456637284374014109094211631323509404193400938388283174942474965703454930973707731837568760448136652253943434271792403878250645812998087279860301792220894067771240774380072595813921744502582743799785771761573565039881515902725824331111332832848483353742944098378114836192746342651520186480169100258197730849339415321080203880005878695745374902333267571880857519214112616833041288971079995779000016841213445082360054866329126210301765321391918302707094077691531964174280045552875566791965740827468814568979793922616011457392048013649134668014647709973673794925821054249928301938762121799248570910657445853372744370582102642891763861063978299384902828634327620994419233395016501263246961580511576850585417239706778340647811344754689762492100293867333774607944136741679093260640779303450458375873596443450288268794897221714783313224977686884291710556560909055171298226153199156431700793220733163952612372367689535958660476441705212229328503949119321973457933761798724950915870289380906880263838273792834370004913727086542558167646569016407725229738639179443530786703788674927596565234264326999557349323534117165209916149944267889817769869343570404277697201319805983446851818109455043746019571470473892730451536945452110172461126878146677972008401660984967450502563108992932555893497942923260175286671930587089294599023360276733321047925680061561850997912354076193706458987533586637173493195396683951385724125892343821061841587154748783194057986286105201620313440644069602605377750342891543982250781628511473499623798034371784512236327766460199092184047796837005829362407705539621764899074014300119973210972837299841244436137636559948135982749754866280786793621911361577566805367540849154035288056483785425336783084809158913641306065424534448920849316982998947355694466280863839166900887635314905849689831842707545518311153797443507010069289951687940653426740928819736546145132999657125636934032338149733911338946063718460745736545432173764346938476785401969859703510508223218165492472720923457115878528774034318646018078819810592075071072375903460833546606511114153201899519452704706680421932719461513547206486813008478340042215025418017353402372689591392536004105036021008127558791506722938351053229930504366568487546229965564127260306262233003905487095316818661066651288541441678798709210124282336117668314949698489184479547898604053585333934721570976465671721112517527243296729400289322816781304021833883669002544053513840015836234107413904427816827893785762573174281806154809936862827286038808924976375277502790309945465561888360638516564534632368005159091981837853791204959914039173956626590887224681237910101690624887052217988235665154115174742582640406739015385826634441964554888185645589272975483293332871365988184125080354885473000416161662857965996542728313165614634767903807287905282667247781515620417903449946566312237430110555081864592401534098592287492062590976788987146659184666525085340648112575388867385535247382264800437198975556483479043916292251631230134070361679101681932061030118579922628823042729223247007649759390701867885319975677533068892861537171098989165368522547454948158544508453905760370091598688691662742445570881556092112650745079683072161496232286641872529885363697481732889091787961271401641320385415011508622727743133862836927698121496577860942174576418704661486667397117019702976887615272500253945061228172701531036493160611718813181959354681399434348419315866473057594147903893849917303796322270460227304539380541996013613079158663566536696110366056887783788931128437763124873893853536246322818127326947061656012333967523737760305762622233558642913682439787251194466359113658413585017113547094977944593165662449296912509215795236784229360335869537629214051733527211814678096474335347053955928047787923263086492213449448800542789655856720298228445284163176307900916610246284325853313674856837057590592501666404003007284174811756085124309800369895110504194323316830658877980810561398248229229644042926466755840596457535500742292492250555353224856414769482356726397409560248788395624353531418666057449321156991565991481757235245525865228066963638925955695629856187620752679502923077513153085678553021506982814510590418909435293191676137039260849472784302539659496146724954304800130769178223118154720369354778109337658524667902829309158376511610673584377788512509444094435615472283139670077733276062583970701484307237879052885488968891862950632388607001712536658503823450198365539635619426007678433796678817240858471681399689871874404246666161001691917892065012112408001988964271554258362369220726349003031109491011260180206671877487649543264225820740835474388856297712100329416645972140095745669515156816129578251582785628768679535708264125451571960253587383506522716196945688871086948919810978904502569909021529520870474635415274484029854125141761189639862807361005112408473561861624106482094218076722264508286885224145418815567802587945867804512578575563003671393491130165277741686321212640087285863884244776734120940029739957177339745799399207049604611101587695409123777211146542744181660470248759864497396156671390866011254476492447801961719555463336432998985372445505879133277033415301069280253863129166557209830238197488382269303714566648142884558173341746764266305517605873087436227525354165824641072639489313340275130472048066844620553010731333129981815370776128264149937778052454389836744729979489422237904433375854574118567190016257841909946880524264922516642204978489489796865853911508077820420469624414167653453119893672422992253151154734742456542818867730142833402656645798180266402906265848268524520290845739064148297268905035309884569160919427923237689975133916920279301762375034012893540553646376371207501068531220864830741487404892055129385960751940655517310314805137369813324416535690502884840658489802500596591683524649200681486895968687104405327994533705711459086077990518395765770209169026086685132047555895311384923943638448843640624654400307617954927244290586769675931635512502270799978551062484011379687271385783149390958179724073248023182246085451423779296486272999303609134081777757078467790257149254540771826062203220577833210719199115030438834041913285847248073770955364076670368586749696158569328282806921611100939301547560868494094798847528603091979915621434447612172526816024831080997156192002552872797804065988998452976904626372279034031134577768992174458434812178912278490657234151951894888261735773020856308766564330807509560219309735259781299943504498252826712011424585277438758288733029124137575530984212824389636129498200451373798628188179076915020952559472816433381586333279070852882611844360908949326560666936857077726174797923181805491480959913804702607379923048827934411296437075763545884715600798356259984258162657715796438895634707036124393350721254316071692886464485661263900881156817014803708891356868530789558265495382956097000709465342267938020273591598634705336995382537977683203653487204225199691620393909738761372145852620354356128763446050799875046672780540480259580837993789318530578063976503040480901427980717627286359322546215016079831650515067886805045562157252673323166352506731121952927664159766948064428950342367633180780750957477712751219174955904106102927631098697201108954320137560963507353107810582932330741079877610535139960805874691248727263423163051290179602084204848780575494563637817985278911412141912012966681548846254987219277559484540532454975708757580821298841072162314001872037092530176405267790954470755612189059258284681850372914264115165703241134771099554967638046026587903517097348837008139927727313322946763879262506568403753168500224630070847225835693360232715389024849837471139231128075269965351236300079654601245016708060197604054044083251022251666699085456729616174012698658776460833370145212901265249480689922778765137092219501736457786129779655268356261844444471949580711627821347103414688828829808824278598375899538493034310847721818929127850599457848525409158506320750614828667692138981454495297850944303240539293131425101805007998980366616124368910553700391089797306313605137761721634772962881788231626293860149486609570880596361911119722632522334436369952585835289443697136728384568042019152660733982126046326455260701956105220352350756686195177385439753134674827310404467772661164508340583125744129426430401314315519273660561641774074827221686558373152768210157724969878935621431593488402487588603114073934376425133369838013140168044747120372442092069975456500313334770502314675881196601725358802683063999350236028575247377047366635526393823869531015143226220405103359745089729999531565031857328429425494430226841290530333782381103777450227864596024109901961175861208433069044103978077110790985496446755883410977813406890198831665512904718985217905394245333324260087502832583388730155581216808096635594907596003787998048173739617579886685262696168826084493507988463148019160595459174142956789751172413190274028543875523663954065266889862305388179806423189510457318521691489773593773031837906359061772829398258323962126154081682516816546034726695420332009431072206035753959219213883348635235264959804600452689406950282653538733990510273047928271043058858645894006720875408708096850964036191493697505135626347124830692516253761013169798134453173714848254500891996729812744479295593362700063044256130868132825291073077335884764722316297046885029007470531972497654324907572574314113649070032791751339172232392021172723876929603954626865663875410419723242089917929122430509363236703145702287965126174758315465404845546972955757641309214181270994877364467927758602405682010393005941818085268123000945230032459017482947960432900028871368059661148000735306798054495654781686624434049289786527365596412839393381492657620667027303405389835141511815754805602436881129085751548408382413851610518241546367220707190108559963754559637120907812971047890878518309466618229017273428906661353538080337800467611590224159466126772174888640894712261393404683352188576897535242471645503109555753609733062379696396206207683701835077465550643413222445128902275433816483707861795987196413763081233551196780699445845207596045930934843953727825732511655027671564658253122229668582779125281735460134976039932940675048221679265775569201242740777581203119008188457743206098206992250364847046145535454984514732234298810805534533301795257976408412549160365879469552259605042785187515790701386812484998959001941318073376313461580020359789761395638259250309250013021252976299455444722825797690487022162666086933644341531789112857098149882312469315680769831912725958423705045111122844426502418720924786119081841869600048279558388668126552154638755039051099083707678733020210888823006714365920620155612252128686727412192113769852292497077386542496061888712352196738296704307552848796582652563989901301208001365754297368257865405113207198114954226205180938191406037180821366104495674049549343305339148146485780277168438042457338651951923028515250750508291945175567182395825445773729600882587546787456100090048365893790538797905251184421093893514775196741263365165240957505659268808380157605540556508102937506640117030588081140649889903624618749008214611331556494049630104812778812509607059750942916717381222694420115552829012065490187215791689346136938034392045728063771879528684689575032726796363749761251010810564031729744328406389636320990778723695024203824582003451881109032008705792162656892953923524722559236094455596953982502363663367908482154584120879574661826971514912193645240756899896254782970322462927595550849031393197545707657840017263510743954113549086653796599721150183936643558830211923966743675324388053273666702730609956387601737108908651313023319818286835768187706632265077116184882890444472847714362806176437056629755442857609276171200557950123725525829929984999283674254615202099228276393026476632453986606968851087713716824862063971817762219967658797020654160517791460602421020752083044584799555255501076086593045245697040750938453518885326847994447700933814389355956016579139189536070177325049096404329333937901595996048820007808737326360287517490570182960755466677107582325214792280888273164200413739206471077157428772568722916665950227565507566413822452964628779488568689456148331760090137777134545742308346547247124445861560831693403791803798747245290639130574356852485364707246737907883624741850701045101562520379876441610122247680322381792307476164823862473808046871969067519842674043538005166141558154676604001828082301123148313339958373411646126635620807667964451953574451750670304798310931197006618911484180594420008467864306182710584758305803511519541239640050830986699761835836105977290887149604210726686650002194051260509751257012085947691209784828666327823305826097063579455701165134808649444920749378408089398550425430006409976059884464571148263316073414903154744997612482470699764083968050277716435105274729104040383443470014005383963266336728858465356793587586804894609460739218228567878308055721350464758231936363030148673646704135467590601226133767870409871456435611252959131967438072661902198045685269494249022941213474642485565474220411669297539254930624026183146754462844168843234643745390840586722768657350756239973622982773528609183942281504404744587023496262306749795996337423306511644979069432271125736901154113042401967433456613372329813687950196393828870555012844839591134025086257358135176836788471420448919773307527065923297157598745367464377528859455838608207513457669056144613826603847991519821853306879203094177560596971199605725653659379034749502289924684972939652294229563767704869808814958041448625239500604724205160850648353677081593053886510654704070362450979487787448272828732661017022720250650436006229138137478332522526211395279285055984193682955869447190947958836491178995846965336692186760897626542309680121348925072127789833402761215380156205211555038985860308773129056580593065260633321661664188979799727598232913828408845734169961980344944825938018621487017382977880407496877336864720762308919814742572581419434571404587795893799606674044402094195353863014464207056141490735107683023224826046238741295535570049218702880442918806523073613783764900956087971982617783172823308968370553412016076251706755931585042036171594507717406886712150695897013201911026679745260931631864176172185502034248068261342445627608288360242064940044510749919177386146777076138841576823203430875464725204525089586937863089887993125254177960558055830410805358161588417934084113925427209141589080357131207162996284088826130045264523336848646007040203929203685479393438513776299951201192016448832809680910204905930848694072132648449540067809173486645988971078687708802863245674363275528684814404821259219177236354400315065254731943498540871867957335242654183655721091200525876667568124669195873883579769597131399768132240268582362216907662679134289269461466014887720898895418189430231046918509931093081195586265305837251974109517370814556709762855484104197763281487947424443963094023160138701385924966053310098615395862647746808708643189455096193264870642887534688508711260221522754750781116527849329924688709802541613952829682057303135169996026217529388480783373815774943820765290646391074526150012739028557466921888486334535645735098066344296942959864328059292354413760164228972473117950301815490601377529808139807398069494275551479933035294072466116670790407134572763503350272546077559700507147674906067003625080059471926708824554035631186971885689837244247662172771793931810757908512392290811499983500801191029007533002281268165531783506415178641357103227867271567726113714384799410253110444616745948065955537297618878295824906817785021439905499413606788356853043981700566418019734210229351724962640809177884449210108910547851277765148712358699163106336496633806486600118385623683131709253361101662659475350251104762836260070203426144686021444544031068751830378312635380192554914962317448819727304481824330641536967819432800340847315778189780631514661574293474174896376424493093117261236713870746946131007367898475090363144555468459409532831363472318650464721775050352984627184958878888370957059194083594173367816410717067671440241800141702988778092375346516118808394721585723561690782634797788130120476241130112775132479140540190202913154985911272426998450917499398839139581076994967068428543316653326401961558572085990214289062638797535977138799143577135413782919549886445110900919581574457021821629073900161815176180104234136355791388267797188690381521605457531654037114108165347831594854275475434291443698444189864542420376787841667305236601150728126547819936305744271354868556459951366415119589691910289469136358323510773052726667340273470540008238367574928172707255019388606655359271738164257033305629882333300203842954087627409243400172456895814567194139783360297400496359860711692778334407768527781684349913322755951902725106375400091113022355831844714192318432298724068335428324425935683569990710912802805561391147909518141791099924842433171303117888210456451910711267922267635009628234868025949890250305526150388880694507652760753903948613904189841105290919447587421726963606074737159674578022539586804780086034504724087003101421242212517352159261544737548535700707685765894999169326980531226490256473904161725110844524489994211259295750676637704379256734895472409714332872898400457145365085040923797661414437253686781781303019788162352180304663498505943833922223678732759411897398212584476980994616203439314168490107583539391801792792076475146369453609299357456823873918934603920504047391350362161867699585511636745823873986765019656421891267418487413492186172359264485489015268199072682401311895711328685479244790499179274726267936563112610321223501817977870974867506642292706575636299792711011282637828294651128476886460852588416730088963625577697376623575838028943973365379881533776422946959331111864441631894567592356002787574756322857539188443368537013665916373775759192863140167972612636660140833724170450211499176263749519923850009697608842657117822696365527601204143468535175949689301233768545134299831863850873592367533692670987361919429589290558927464698989045631159026744190175578336201566602175344116910896826977287407929515781337895578657768916887181826533989834274344147495752861207201236922295694386268836345165295636923287574831348270140011403572099698849328937534989911636149581934894161696303901935515971771273278898213397027124087657258316236198591857836645922080758368633606328978716502537258458932539991937478446599033056590535425002470892575575358837070125873323630548874812709690016146546674181838514755814729609435764857218584521357299962562911920133769653109587717059381936670875235618237985289664914669921922765729238205380203782441997800958214292477412035430167734483232712983690983778354419742662147102543905428828196428095614086651886137561352696610884762262947523121472709970061804233430428660893126781012513183972220056653206511366739766498169668181108120462217017037052590124647724125583018981801480392165320876473866794965431238393634092629140597984537075821204876143893930043863540553826589334578745679640389481158705988698184825191814827217718565367994652406351675435751813014390610976360807473212548034709325309363248493133212080845184992498738744572887270265157523339257527863170057087930898079266620993288601412488775101831133211780338075623588316690159982332735419163302669381631915437847352222680597894619286817428364995711837369715836325435890008234866001670401880875864837204907075658779594328434450505534088918880312470800831040514478035450479133209114380941567984447653546215800923345512135209025573472864319885137824461758643822970991483664650725430844874282257348551135220320999538851026146677393544064064541139245917917579890159212366222377998827259340873601335512752184339744696746125353317268133439510070469823974615232443387594181422188465272467713105297362265423521299629922928366508212821150842060889221424259664648007959354272032743450481642947870381633574671092769351321883801562400672570903984036846161945079881164443660904069914051880090432955483426465938979733439699382114185647222470734646205370067485218014204476540366616354095526814705305219428125431659023523727366481498850078056979977579637315737248755021424062843675887565358905320244414093859838659536180343128556280683694633531412086557004752209986167204359586465112623918642425782737150483799254959613295436912750315074205535046787749058426007073536882549369260698475435179319726829134438608110662312644233978058000233846871105574612715866570171004241068770061784493892217372679114749469033729188227209895218658032011208015146038711161256058388904260583504797781082901448352905394576228200218657991905218030264047164731747842341545680559970304376280908384478065586458590054814090584541051156982693416645038824560293230427268139340794800198431778686787224640063531783476990568055039471306563524295478689699610898015573920179544572158572026935368985177607324756778337068110351897019682409332833555690418879073856857368785440936853213355001570376486684510269556847038160390952070428688770140029885494671757831934498030045117992189828854349493889535020457913750980514782343557342022695267033012221579178600875162988559934620506236881874145142295640243984219353701811634964067079409439280970841907973252863872119963251416385922083597649222342068900406336044794274644772096062955262945312745131763004928944322783749587466798967411589472382613849106768564667576030550030628844069470127606130256344452014896519119243437729469412178147296483727201091046200293297280110619762219060705305220698748992130684674936942213323381676890485133914284929731119952794085676347068971229858192979596544545182671147209446918684685357475812207449543677025448495772173371939768831618905566091004558121457759128888795153561206462627198116805951169780957365737427172176952359370846128729619358979209316230603359987498779150639021912105055042988080682227890990158513513619255046120343216602304752255786454845979916727900460924217301097187710923953554919124184887274904627559766165914756651006441341259791559367354845579571267459808808184836407451405353027375484500639686248397382285465848749752690282857906875910736223114477668295461233340455119317102398274104853074499403870420224431685882676452100848197222439000215543317744126452902874358722999522527116909727525320501300766305468284951862128425093687268910430818583751235594992366766084858006962028520771291991602417264773630225923853737161695048900719610043511478672772647611727028478467606951675754616448338245034447634413774060644679238480989177986715517253502080730315391946269348974345829192347781022371944327223527218887181462843408690105433581221413310033000581750157988121352008873001412893507240799512362958903947533968693416501193538919347024352128794615075489743004454078812701605505167225099257390259877076825647776205937022516279259835046154622762668566114296020366627233444564756816289384068534774224828217062674619335071319846986692441065095464064909646082573742021698659533440499411620266499054269450699934391288067114920548683407467979768118820012852874134657096234132577464871907964789356815954351012800492342314004270705654467526180275691255115096578051846860929891256490102351895956416660228131784143292989740933941383963181344979215388187247418416622594064711110045388521072361239395893142089840654860731980468207338948049880057894685655436935765575105551872008071460299362613910781273611317742250156351052829919856692574005345435051814982038893262262251645159987826607109805292689501231060880750907987310008655556738159155669056804213714444742380921846289947357429920945159650759729572623427906773780193055195187137267308195058336981763090130400768080311109203082596999841093240031771676922693143675120290337510988072872571601653385273827876077581272347921545952062423550121857744020642810999879170381562333958907102206454957294408738984208494404312724556561360364518461278394454581294045299450194723521818967179605274182579285109700502097167972048962075064329236852984174156417727672710648355776026469140574932904266659920802024567677617100608496112635918354548387042617687233224224402870640240149585928416133065934490098163869238279670036832088885139530699881788215723640691371778962425065602177785699108186563601187010816089548499157621330979616122623325475162711814684239760508738681541558817762308136047144131279558387562742395040214360114290925110123738481092555323568531783616247675194566390907889858753605600401449052151564202537430273978533164083855995429574593699138028409312563285928316606592301116182248766833126101509462638014235877267938862765917430564603085680639121007724623171110090052967006256267329945304613350932229751660739494266274663695333774658433969186552782811640951826919049757431413792959268257396212920558555363607091895824278047611299735396303473323975328440439380977803893550656996401843269469421159765333530211171227031808212260616386808948654787936357494903217569917878845282265322091297836110418350073712562938832494036007722996463273197793743760661474112360733610415283972481903403594871480295297908452519337662221604565680769450993166212021519484911489325835727674857783806837311870200101392251292292033924250868921823555614523797022336550442757295921649927708050257504922052522987669907951329738655238723982838375073404901162113119231003741247544726181481989493098500292121317996187399467746292503650980004938469001314112181369279803896218700694397861942852882985398736501515273366622730064139499063995503884380912035728688318238323506775950474846013691609794795834848607698284856821289680149189675248478190992590551666003332347154242067458891394785023272557876298252536700426452409239090656677348744028054617969729837883084010104545292147012529643706178342965594900720780309246753916842011890852811763530705133371015368820197039028475222615135976613028447222542539857191654372984097479987664135843628347380058063551968190500049839166255970069616058464660146796348028134581857741422212972318054414416192999165562683888193770381922533550888560849427898169708581586220000899083706123450306453382484204169719312371695419113526269781157686301206291983110317469988827370971411999541896505592108053295591627900819922135299137304972331939020214169881370369394080671426271671301186196572441900734289036771788822363546814351460005923106958187275329406326867699455884171789790176194199345855797753567833506536734624446466172469937606831078814658208607033857051998424890542465999120921388931775400076858521612278098558248594864561244627403549500733229725039573200455175121969613480429145224837836080982263321028708361536416811135738422193919021599355078025331028841379336823581325879869126154745381400335371960226099633451195956665659693120591397635389477616508160981587510861848981342563138059959978840449564064827637587776575286443519334014417659742709576793517410723395671321744076155834496208166974119963873724882149334065071939905959783076093523653799531312195404538506419683890189442004567789866193819778647643915051782285803121084131665087115916170613540679176373032668630828013263586205716454168349519849468542953329782908698372693744544692042985409461771400421903233799053335313422573981883491461811648114536303510872694572235913879959457444482293854987157049657935648815950560138632774168279775280807524508834298552892673778840229273524010612936748866430635332415601291484560483826143485276194012656285495443392719271746056888944591370277648764665115259390967990174508123526491443852363945198961033805981839524627634476434115668233215791807193229665214085438883669361029520034462054604887896223809255159696957131864557842106509202788518485576708336165435628996317875799189760918606497863597913066024158168183917516252250906286115926620408916331193563943669349145371054738273663800448936165871650184250603298014321628845647929690563090364905061620179291452529778667694318641816065754374699907800641977747351448075105221132464057544756300789697850201985452842584333520392266034657024275358618413850266778648133242865687486226586143461218146559813127832018541638683965073465325649446188419167394509695347514804257792001561364678709080302724521298169971925717903351047339052063441021183677405097849612953987877750449032298083098992471741210955841234155059371336684203380026908865477083811690322937633795619578103990148413050550883410783153236701896836626698861039017720408487909094641800073396299806494351506723168079494463088268751219432489732652476103247081930384131601336643867001965768080932416145997659103540648780854411508456627894924570209500745549529504743312639188415405884247232699824394184790261714746886762826286249244950979406171004235418030688996465911525795980819075604539930041054942102153854272648136864120324380417706684495222328873104698367136271986952653070800128994683037437789049347173491506592627006766353114966646671609646836958213723463445027738507110761842440578389453375226920660007791795218935594569275473776814921553023965196585322565699667970368532383675622203773145785933205393678448112393522235104745345563282047423277111732379693112474142880070798597061145760966131838437451637942827366756559314858470122996330604194938451511553720900100263090395461158098097473851577941114183791488449470550128422595547166199837048710045198681461192848591120526806335235358855753763846173137831623021932623117810595650281979267894630205574054045166723112404552770342000245714814567926794555092871719572492365688196782800886626583057979622459633395219631997786286671881173001439358905709890716854890362757341614955306242786141991565993129768921918213425955216315805435360223741757821491333196389406236855463430275535180388861112920059007021452984476061831100815692183465566800174604122518440748466364702531791990938400925394184096423361064601637278690417834953141443947689122534528419583497615558869418866990178648640319809640802923966823047072225345900553726857429106799200499998120582484045862703321659837297486126116615447090668058187797542921247125433783620183555434463922711155585481003014587346091426765894093007003451511616443286561312207677905091956225327383978098740744877087742419115972289207628711137967896035107346876751387413897862690039617117260041931761130936501595754428624752626273743765074525753829986482525685704588881834360269225625041620166017500285768727429951050024533226050778609997717929204326932280845887935646521743722284454504127466999799499967706840190532197947330466490208765876523261320282352941352923392123933541195504339479728217820658551119831047097090755656504299925746801616451179052686449032039942912976830105782027370424059891606962628337554688229784238253169890291244666591647256399734122038093817452960895286615526637281254807339104243951364235341696731381922799510435044200242882248556105362298701910025470789016354102299945397697800769101908351838583681925511665101332701222961987567273532146330374827040647106372150906067002401761907491093058322172338726267477255727685288358966483806532657163459249779147027447309252945510777194471127705347416208700132252784559984117396710782154172648030425430342621877292195034991216044182459077899770673406718840471479036722013275182477798649778955453833184903915577581458497936736713438036104881094868114442330242170862998271444177269826171126749657283986402744296331608356405983820511758513285679971237468756943864842101400297425501870708200475417422670573549266443306685639550000608813683328334830438298000215810699809964510197745173853328400956479168402320096957865795469452040619614047915154055154406186108058721557805337543342381911601508376524998152987122320841648084773196279602089966608518835216030419552303619476802097910088621581422556768849050001182702765771664366661706103770688758452393316692147224442623880066233429895155066508454491001597598390269793517697126786846764025267390219222229231640291081460144320905748932700780432420608945190756107598730347795449641626998619874695275731340001897003916432960070460562835175950574675917446302296198946811607832284418212531416828650472152862033988075787813732337410690094316037716307706906856171369256787254982567125897666185224962557707264119630498479207670411062616598806776682125429599969016916078042285543260124334735393419374640578795098489794744420604909291058949059439384772248632879784349477727136584476825416681212357770434464996271555217964763665958747287294621815128809573275992930785354775495531098651953801396690667488934986482550784544085955839018400384897699441369887810866253172723444459676198865188583146314604065051353677592685875303779093916862789405834107168230560207470430362150160416182585152412285982092271065068022764954898207807151576084844154229950325111858190036983479270025362423783829355861008680730237196170627188896825925878882803874550277485480206429884955288555001081943323015453248420222275976113691892884113495657910252033432253186206892039472337257377626676487370980572936977931019581143893850839843850209857513361535526710254929680289348399627988748030424696866110703852984141759152236681442174109904176164509027685171793849398056634142813892583244919679988539253146888247014710693270668835706443621781508919066768632470635272683941018124865958462169697278515800946380300914091671090739422109260041242063445463999834255074900668841745466067232456469438837283514282599815812594697799027042334253801513422081363319825831472996815314619635103243784650678978285398033434448323169871320175976280175182297438091482907757138683591750909927264198819973039893863776151692757075316571430259841657600801664954641976418784924421679785103575211295057051926875630315291977757742770200844160119032172848132130936362540233079267583516623167721717621737284026925275968011720437982030540269572177390386065389927317403521484840980074763236630846603634154223302190273895747988338111201407105072187437786863142768786694848698087239304444496354534665011822438288335898261823754318353033376921015636550381522157379963047409992255150089632846102950833289964858044727190399942883247753157732844205730898643338568858594184952736037113111905297155650127758080107774485077577904979787553704628013810209569390343528928084625937071419934391311964958110432087942282882329058962937251098147750191571334179169006220673749362220047088687148464538947554659668814672552490619457181408930546327214423667133923336921386245866926929898265182875191696398526093480289240881928982847914905977134119266991719974912144567799284355896737442887814624855569154877716310023807572195020300741397806046496214951771947418848645513693020396448932366486120879844800086689775618283669796285029623042819455061736889212822864257320081758282219397583707033083122956577428896267368156394453172751131704822706530801428693054067085035294762980356982094111488813793087880821094475988521782038284102017385277363209862930029947497242882280478683290895549230491288825772139125323988056813307040321291317967692169723563487353419939397479495688521830744656109969502765003369828083121835606606984904006986531719407476650782428850822413751242081480365841646092247301689423938196326767459482317297775293428229192953296706897869115098730023937598072302988689722935741986441242579072194556688616354799945392548728402562174513602915977150796075315669861938080763666254411659584346364343142191873442130138542993036698639545264294684467558382350481227486370337977460365963215391888605157659363081531902719792179682938823690037448159623266340405477100123251727845668907770672532826857328677898594503508095569148439638384555413807696598222129813141411147574715943997444957820325031226249334370930861095918732097873145977736372798240415102278079987257605609486047301500300690318521534117607862566865038085004034239616163766841851873979098493490169167397773123912193986724662490391494021258766031830665288313667961469119921694903434654011278929483281389177559588498206121478471847124376546037965868208907463887554436495874469256479853501469695691962615469354720583639104336475668924540808183839721471504327979321447174933505137717978461438720111544764067972480863978417274147050433562467377194094530344385264735799340830573403569029775327376641625042468316999100259690497124990503621559431902115089762682927866788127826034808214287921658075861063838827937126496924513496201416606369430742392154879467026533068069801170676590277280166305105499113931079806686210456751001020228841146347103185275489385573568929063534036874000669535908483730536200050085127694151125183858816546079214541355682281583203670414556122477831505889308308361507974876591150369858398541951881084662161518458577942712297663246993448057403059221305971114215390536854723333867764199619141469120599612492447633930920940970145172278373254565105752244106933548471264508948729189553231932537184684131042417822544039379660322853427711215762324845229187397309835091294403386153759212111465491070193520239187018515319616594285935009955417063351517672530595763962595372738838050494342045496494367686393372303218719315960549444299766761673524615905609295997859751274314356739142299419004646261472553929427732899458627510654789502528913241843052269384871753392767455759142560669967053603788116866589719453748672000962522830718683803183203329962693445108088543775530715631015897839994500643713516418984647675694218313902076288748070205669541254851761946804908679012618093815444839662863691905025831425288505801905860742928406745339997965239844665854619084226488357172287519388904856769821152738314837014693176551648236578716115682788485468791463107715909756886104395616180235040828211441873785903763720369726247298587487824894466100974300828303391429990657500610010763993301675851783897078774774279797957667005996400546616743092186065861409050882737719676309200501849463752658243266374283321238992748302005047365761756514285260218658413466336319292338224391912795954393016475512638278318202434846366985458328593035271094372954479442535178620304375505192660553831562459696295616227346243211115403712143204996534456371553224888966732879007295446207124401392802197511827124681093097182002908724687297301853818326204362820520065928795893159387603499244542588229993656430597385128622217688945380039530253909612412316764783810115430333162115763834888311762770294856539463058613468206405557676216594978164825079558787932088810741618599325181569128616001944727005357984525322267624758706195550820175015020817814386569453502077358061495044559278926533258759315467653691936816166723008911774068395121090801908775512728182202503737493848067201641322405258161460511117873869045733788744140076551344746971100295238413638919029582720511157525918784305037347119771888756251364052988362867821199338690673051806597263395728384513845964225956220048805394972073396124677671496360034031845946585463201441491172280067161677423706966262201031585336086959563545025721047830596461827709315140684886177590841572398613802702954561764799961702711511637243785252391434090094263287689392081295498277269910313495505881114765795857416835660858369905793977708672013846020990067631399960481494294520331669263361647772164432650554536549583101996057630243816043131467007497547260030887751798940489042848836684027672553040238959508032141799915267576003091463951844899639676163466788159789043413939432255486160335465614121604012365950112185978466286922266177094977556431535930236262888758117362648039583013984668235526116911730536575314687568307590528660050629802516805326492910489288452461951602105313293114211692721173475403534255368923699292605943245562511441055067034981091207071399513116695987626075527981402611053498500929306731409847464276097341787749651598975801786653401189899195326201238363444601114435403759727393061919438731535686532293916199782477032646378551744403518736291201506265708064874216541294079771517449029657803647450816786492753821663057190849679569983021799511728071788868456617836753073174747008662996775653995547985517929700052711345849990323536206736187229552542085725511943068414360579692134258827299136321536767466951082931783900831221088512579555406137325961952585396849852034343394722898060926462529350815477868304713990504781508262344563482582572697264317365627702910897374907751781763811284971927871929558863822294034229205530035302822151625365074607031580122426748453210207524017475023537756395916369686577677875488617121778455218113347206942701329133276829049472825301158824949932197283883705013817101853557889330538964993204553205395710198633542614371503365122422355076353268176047289938223677392450449389300019769267381518855925067232323379679740201162707625882316804915892630652737183395339939140452833854217094930013824615300483452667869017318799398365830240733083874252110803582823786100782062654651657200308808436134764661601084555063964105322511286930082653892659458848151747392906379728515887517047862822891759346804489625197973690087933939840296980574760003703629815231116944826164921437644207475352513699944168972356323605384462856672971368806570213652736787126229435840350112879164063706472635211989512902526037968459051041967500093584693108527334835090629784146340536679855854360563128073922311361393136825498558521518385996633094563723218416307010535575173610716602950524153752385563241500502010618581597727632213146133391675086123621228184134081909925732120348989745095910326212874228526530201241575644145528578645960998889644039388867025536047611933518930280575783034985515935895051803665483204897905567025558665018938437919841406084551711402351524722626720596380195420127879610196508033100431351629930219257500389541575084946479863416202480314108597945204678660501065800302229803051900049717683299276737804170172816970869118283653420063261679411601100189676925975086631818610350033172461468463227333444050699224930313323936418493137998944951740605835269850667347231579775061859632412397368558699966559814434942466397592649970696249882757083065988497882884420678582998679031686064029847171812136575683643790721515463697034607546194634748816112168602307983592705142755197869465390272907762367603025651884976161364732806777968052863144878533455410788466136967657147226211535449622226206231424492112873242683374496597995217721567711381105225641681645378369998332545790028139020006243867735170491904730188624670692955385342417163373847760901895193029037017237907531876878944765590743582371352337355979040593032146240369237425219488495302479159660575822607017939572663351427378577873743790541289807734802993004922411700458286107456253733215392877368499511459615887080004619891672259096012915139382660886623977088184810530599346711169858754261252852856828185317952408899893928329000109601305809648457795711916894654189527178152477556951392615100565082021924336842606565292222560912077751300209897021440226880821134463513645893271025389081529357513554344515070634850292565435759650725154862068444606081725969537288453072943621971356458857346082738487902126136127145480943209114994930864389017106253923959998497907326591601961928424822405041214192735967391651188803422262772611009098674116065883216835885089366641163229237796476080948879035997887644679276020348606197313214214421618185970170432930487650277921266399288794974094410401894055886548442423387086415760438993584202747808255302949166669061117723577321551013049415330498831850524978613958496857719747824367009318979169368772380939827551501141529671596632939060070142179747715842341103108970948368979626288832270343654215361088035268067674378332350619850197762303156430415779338421024376522241788052447265305242803010813138568199069459585370489268365872161492571102525866897837533164867508470803196976070829994556170621545557088553665607408695415235254678948338372636574990577453930238941946556963232488255921539823977863840456333787643781620705392056718356726447758533717640062139348723893768152988826689769120800697654695468182011110795489974393635872734743516475188965667187654584930242085050151888394860449944583586062469045722796759796086545856492563631249442226295262905868433149890786721912890008939632970489088469310087001346783004541056169411652874756629509047820886596420425965939398176914750870708028617402764723357409551709571459338869339866762538368625148150556966091287220611735516486347899994488994127260358613685938351333304807694525654823450571659921529341851391808599366842943818595772558934949997766241704610651223328177381790562840277517217940206893095730144792341070531051300872211646885382935208030629084536103847521934689137283924873556781135517567375106194234346809224164205352780105690997197577489942107330477799215920034146076218184745159878233821408436919247033718628436127125707296353614817760802139835868327221420512978546420582985138870661371535063497122474495132849606944910464113701802396592159388835888606620663042054037536426780532959705389409377604571142271073673586411746042673862212780011702620331780940305943321526201667217989976936366009169872801934740285003648473411057632755907577205653030157490277739246061568621312211939513051618255459356997647529562596198981411788722540889020149995022677105705737429268930062163283515507141882661018952382208685247981685956154697245671414200743141228277529682829345376844588152615337242502993871334026541029011101331068033020744970214877290501943769318285644537051738803242181580797053443138593521003715447250948923576784719703371362319132710584790183666069007397292691656756184335037692122568297424955598333763158545169800505348607604224110968261894943251616984914508141606501651415912404387573622527819040891202608143956916888696586149926348697367570639844096827368271126367714405939163798450989469978913931131014550327906194058477387252524923262406189148664495655806579218524271080757575954794982617831201980947699263803912926504124557770067027900520881989227231750531716058540119298529254657811219545020802502972639526482029959935653021996654574182918424226878459884249042900992852878119365173210212994008221591272490170302691201316658531393177018185141021595564359262329821021620571809453173264747088171401719930891357370537958206254452260178807411250891027962450176974640829365476039409767520373026920986003822720083200105982413628943167815733657702531363004709098214179298014203599294661189806259121784898455985440939869805922608615769445898647706153896110582459893796009553938187858677906603647354704187989306527999895521506527380364068913253536782948730398777453064630467741201405270339135967893431461289035754474102900907577247702176656759148844757696247426211989100989681464020761296952462338085067205149431248103491981323541567569275950753209192013968528793624091361050637926123747192928357964870909841875180280081816286955167643735586771064747861952532397165852964970685239494067180200993798971089071498561085071237467984054741222698630790452679608329927814704971743880634607508390815729706116491585009984186678632943387894494455655102563064672492844427865510330610504741664295211838818611976160439110000080868303168244351466821437477192773850552777369417303357081601926434043721814223252559678155922048279471971045506966345007363396196561036639702493495490105337019407612548475019117314555774372262349704851827640392255037718732476240452522382513730208630271109495205648785399941004855517085585005493847353295316079196452508554862828446804332332571041257855463891901352742962260184160825932337362851055809091612203402931830059464685223421075533962777366028977713895573697197934723212370187652513938594103514254140863494342240391960240380261796882928083155685019235714050871338653372489476976493160495193649829984285045097230758779266843542234551671027532256539214596173021029426393403109569153836161534932844446302880280706531633692541454426016951296239211374204289704918071766314377246134718881729967960961654069705698641211348729100572009568409219101417057222903758503085571496783409967465037256650773205225820095417606612028859976428727626152972923607469456102637486788051405873339188918501740412588344617123631087815789317774073726741969671906651907535843397602144413759226422309576621944674770751058603886177473603242443778951771485224627885735349047986265741135576497242246570872257306955627208164067217874309741091206966442977751856899444153818542866043489888636683647369780530235568555129398571045035066242052955366292071430363815345227153556273347180245000149532469387807940075833403141344847736458180398181660173211815787712020930757917833676921817894787063256431505847055318157777858169051739572608092647181605178302541797173119761265586398165276297236999657340903568585481468259700874560220661059198152459903677326267537286132899508293426181218521845965828495136235142413847595947064609080394582395813574234311463087838933541468601179948040660219195474181007637377089183596799515428751662261005974985600377251154214712515846157741645979825744578395700326606929747212262830003966930005120455788979010246388584222529596680737703182076638704412405542983339974277141668135520765115070351280508910599854175143350563798923273754236198612784609097546795068857343301067782197834600995313906913486817590709667582381075494639752079601498581286465662293418511874486570793773450715077124164782960537349074560770604171916626062692955570319771629477773589900947461495453672419798848314632494106258920527715292382589664350532064043342996547054588458080573467297707693400043503241111716077155759763440538434177651697912297022438135769707121987279579998979203493290071969307683495244131035661054845283980001134607593208892124609861125687566888437710859788328453003293128028820853006254623583275599749062779041494979806378503023745401884484006651426765348833133931712821625785582651925395856424316277639797830649423195335973501101024880284863847811268716254342736862336327742107648212379572159407923753183427849681661866909192997957692300678424734282652457268061447317332165466672627066300948972224953806170545666181996259768314696278579800490968371355576756633959802707004675371828036645422125594017615021216470407047759186101433047972828625817850485404684097884957476394782302592059060691885305580212608945558179124318644966535753201519127967611604749220230078590533474360399898396312982032683050313762345028078030435666509105756691063424967851108427316968001162676825409282612054170835061401924204490194591405563438376781875101259524104614626332523948707557981446032612566354106288371179500736197942002305547088654400277089496846942100353795814149387359589610296832173005831913537407372884729723414308823533116046346199992296497199220892891492332143824345274659608493653966098145738504167944011752219526453868648055006705525101465132439197470237795407377718249161389945122692975113209509833690961337528060161387853245062376604395564854112007553305000669176043801237476526022708900169909094450803207297632904224104652621940351703376807100464523462398454900997527030162343574705063134094074558384911982535647037175301184150639745159990325969108190383230237533871276214403844861990842052857793445966942556175989338655817533213222347017693472225704774101212658617405306801986452178112471187081043043493724098760656844313492168419758515637536655800904498514346878497603807298975244750680340126952492928871205706742772997424683476227903401175244409778643526737402017730305304728659519753296099692121965241032913471140633869467610266112220775074726929743758107223965330601935475165843415973362012939206502899650760741301521263914498093746562318557711461261055279796372022795275435024073231280558693864576321836097446110368143607738374909070193350954875975677232702152451907588552004421177080451389131590272437517584567553323944100169962431333804541795810305230794233372623226036141676291293321183027586082490039525010909119358595082984380381986981284224376175355717511185029641930667460418668167354859545756430928637486333350905656508680530507509208604561746633401624020467589139377916844710911164717927443451868300254616337415734134402969529791007464306738831791618707907628309944889144662523382570690489795591880808574814589406738998281624357422301189879063349709340244025079611809706791283702183773390526980943664550263073508433008766794777746960386345146853945954143928280831224911091543644364967846304008741476638391280000723486603158212086662405341853412586145806426251585348828333262320455770232997278036837610586204396267536597330674441351519943329934704311275022285631507063639317534998928525887294363779421725890327935297348184669833211180644648970469108173687634899862085676898483907774842171687358933192978422739508537316973188582530655324470695062256135940352283373245587063333822744694027253944989261616950153377051840391822996233472875995671203687238230908326743762477981631020560948042564222941829777733133992812214919888057398647853656141210071667937359975845743841588213557158311260094919533819784367295220839044349410537113979156325538686114162877741426990155677122899530518285824974196959224773214539188159169800545712355352077100397841751324497755800964751805770437084856776122286947422314151221789025868380222421490897836567387188273824420862939042689350825095127778231619518259225356879644432744260978817662094227762906405364118372721101240446466211604946519346237200158741653591981546471379856144238689088337339725207998386172522745650531223914212391493606679723721977948295864288001895134721159130194571790141033601326019994679948860819577242346282342651677935166212939330034143171789767501451088633715128235446342337345376372720819605893437824717337517436732762868383434737564578471771188776580189846652249581432282068239081081810796732363997691706755274403699400761472655213945943975726641771459893559961893442853977913555496205038420306392180541342006817091436922284184760764881810975906715997400952526025115247377602592405066687765257330225510184588182353334016019856900834651543415426053645715273821539511252234113806831890408467685876615023805763588294646846717805786316825137482896926695509399832716406452054453447070536736105165849110101328100383425327465536380331671871686607389677901708398061258450585673815295326862290857565619660643473061287376265085192295562810698438444190169053009730213134020191909354672454765328527715652400953363096841717663060583382077140610591192158529461953121236583887552872863109669725090977796864574725660680718848943994991002619601022787744327353469876781369874677991134332800701781623160902791655708046222633891261686821888764841469626922716476296249530520359718305730375606568608018042473431075175183380631659904605803845884165041968155471316342351128048496335220892446637332014934139566388803254210528780368684096518944193343282540139376394835195868949668547584645988738433090932633149485462594310382818680644490103038857926778710599306594117529985480899256676507894026281495160590294483509269449235652321344143827351195867771942908482041901188942346070453058595249906013678324443703289434309554497547337908720915068912639029138437171730693070361740031651274990718001455569428795761236253157540285134077764397428708731721299753550071174129825752796356049773135342268762216653207409198718357768004300598197174841818600988274054235491441559646403822753012025507797739499437304519928048450293563554572336999131299658269485412619123159717477462912804042319848206396045731249641375543491789227503473732619377791685339130982954630611830668292150501214971346022140066460119616439704340990409958637357215588374801295025042140868277569579961902414871178553666129875798846274277890359517419516382393767608776047157483299787473874992647083892631631930582305284405137879872791374763455625087807078186627044525181071561739860529191674913146960304850759692102625788980413662230143077868836733658452442250953503081051985598862821677685997672352743345904515192733464191633097334249932486129110601244171216084104751832486304864974212726736267027840713946450776969533624687772175763214381200687406276467765714476986813334396553619362398497895551054377537160459292012176598819929958405001808776520216370464862894779304563156129286297862303334649277734158042659587608856186627397001191980628622363803338913936371585128856643581701854234521637588304435394792224296459827546654141092629021284498728902156897611472151661129721454724838281814759905227357771929960986765192327225565847330159506631776513770707790773731504524228057177678078166782005494004568298275458612205122098669168524932228921661010540848752990640051736621635749426074126171795938143477128743132833684788127655094984041994748403967048684888844612298537137362361265300005563961098002374204379708762039176263665666978504505529433740299718425919704252413650130957281337204521724156499826252780528405317046938396689425993085269414307936346875690515138657819634874453741464647863421278627826602146870658482250223448274022997791270320266115163554061746507190053048973566281897663012289218613500024098420278651771287380550566515128131106340479353595574608426435211145791715016167827559737871270588910557611474110248705336286408373770888392551742664001592493649862005548010596933061796464062398054958214372956308239197088090292895739266582403774028231020490183812901080032335847829961567042546528775697694244518530670285596111396269072381144989683298753548271354748859073852783962582251718846714622305510876682433669285742288164186615886098035504536986886359839040102736405319800737638359854484140157362014384130000663663918338615754365961842883170201459168537458692106097038085435593495736206539542911570608844491455144727256740379641416333418361891443392135303707520141058396826178129012840789943842887556812719356944272347066391285047167925153116368053651028905634329026778781462076242202666665998068386834384163643647476594354939101412525901131976115983209994230486221744024528373755569355490132262459794175851989217287104225754483636099016737990391192539340753710984384339332703100305044580525236873097296677512208430950994042689913663230955028588975660872252136990662909670207612025139037983973312976363310108568511461916048697972668376667426961397668107191785559763682472472903706073244814594216671720435154403716992513573364487949040054875146617098744073877212814140999244292445234197579748393633050596917182210288870785434462246164942907291574104357901284126508666699983763779181678013238191424466671059285542861200665812140511265005991954239602624417626907191658199574547349781566068153683515272308956925198758457208684345807611510185453309576709622546882534417515686678504973514102992934982925911381168234530802863034349941204350264426784777822957734305647256915328857477743802007346238091993772159941052518653531980070299766479205293869345020144293356556567803712672363315027076443914955583397542642288309088113360330542855694364936598415779196835948564466650184656436997795724120110611434980276795674095714301605833765498867704389309324790450985187221979085161255444536082941266281730266112019131664541600801158247310753680997387355920106812707552449678225181253805435581382332195457704363545212360655411396826889619498534277180559680048896265255076936657812139609237222259485045620441207435089892322093174316347859702607755606759933767240041869772586687404655793445788687958679359505819538075938585652058210381092521955832373387998577837028981524114774469014238485414464437092036059280450602185037628913122948507925090484361321843479547599825088533645959140993335235015517811941446951575098243461831754030478595488790550582033832595759161921965203865264438957610304592220245755379249465610511140494110531606293152023011135426515238196775952475624880039110236588464887510897420518078817135934035944380591921483057034681278584914545761081601940930619500275543736261297522639133819965749722362509988415277593103266999207802800888745114258707471539864468694891175255588842518889557687701259735246624230118840708446890936013539811106929430219997144960605772171752125634501006070234413272261203358225921149782378162225694712994242610159579135208134647589916948822894082393738937035160259667966708585774838552703792917303015599118358534540517971672392489298345703899829722782260752781822186287119665575850583715907698507859467591198968275150915073612501890825696346558858240156319306172734941158816007110333202112415634592277425552800690381854427450969389464830773025070215717003366371287328679301607808591445055505086286382141895783934315197058877187983679268326439926947736054897913055480327004074724827686040751417914830276438186035208048698255896336087835048461785657820845898130362055949524070318952652920386905204111593503993983468053259629575640817323991888508549871605557177836790853167134590847432159561229097932028860008648955154922461809640131023757088261904525955810522740624188691473956716889040126457086385459692137897051791949172136021738556664838083741428491209434201232401410068486187957685307931366880826538194997050515676654679554544637979267629358798117218861717865185951849904851969391048848642715448442021424472261964669321085829970312047027983716705239159440370933221320566411591464016003635752224487417233722965549868749184223154250346832769816094429769896465004953691318527134311945918253365577919940664527486777636965399693445720841944873420355554063737695481215556825186802583736382605678621188852374458226766599424897260505677614779879537856032714963045173567445815197890559375863344706684589183832653797444279984849514057499316548826781990414768198229139830968770968398052771673887297779114170615234883726245178399901352260773969203511536496720388505433553555626490390159290529725018631588952053697726875998643451385532789842886343094792283442696842886948530117285704736028029704681490671504478920851152214178454820439787081009793786995900201592161675337309079870119277136309006852009173617053466589034094884822243849707486539937820752809756781393036907691709344997362919112339542975356646845768206024506853311860064366435488769959205588074534467243780857723402644597118256200801129317481660680399256448259010174709360411696208447860151216579175085867231866752990027901139979015406878656137890519799202454447678878286622056995005456895144634956074545171864380383820736882547928591832039844732012979388301651172445880873814581562902933400193708393584332960023520812983024989307364713518882655701335923500090059590003156359392573350271090938639230876289369337118582449336883905784451144714446674825084592847747756347232538068685055841740817492106117302467944728379080216459928693232283866672973224525354117086948526970304667620923893227514495606193631187504377871626028594681781687163403713010150764777454098466196049506724549839783207422885570955981276203914010321123058483699948115153221657887512211851264176080698440794406287306712157215927086923857785699354179993087151577379324276638161184804984968904215748988812845292945063303449293425745482123720220679913090674738106955697927623833381724943878173703521408885047987695979282268840712511973467033518032532882939955008091305806143858510297612341635590649839980135536357490121601523565642809142728664934224316171245308254649379165709217907008084935386773426157243028808646318092318286985881673684035775799637013406382451414304371887357251853996281092340421730418957722068454636387409655169064827294205529434497942452508925789794666361904642903187206994364755285230371025297833412721448550127027025521459497198798005233205085164514332101539150612562928483680410003620357015377667922597585475281170438359691299852626028467424080762267093662615884742680978657508098896388708651183838139649533662450802056392813146391774531988839671638643753715004062043888424166977871860778051299050435432401404554541693678940300595145316974058973894351993324452192793622208113818016581977178851219795954561907410443093040007440816895710168416064910439691250480154640054478850623742844100969112059567416423421800430204686411987787995919042644178500188713769641533887002958469285294398732570983190096528013765512717831984156333461652944306308283097284966121507756855134832513206660479699754013529967938573530976397078033525549698412264157485158653593571378115079450519899232456293019224774481842498948121432452339436517453631731179806860281451574471197670379621769549946614329306545741190165830298586636615510245041255163456762348540003008749718914833566107634202429915563467377404155479726504071844789009999079366246232371809756796343175642194867339694882493644926550097487218079473981732615492783208859081909875651374897652669207151716254109419162030224963112585790776243397915731997408552697625939444902507745427426047346003701336411128895249014077068131011701026382022087387633217526110825404612839588748704761503011414218337937125505458437447253648276337605814328912724576532851266981568104967135115735876347956587899359352235819301407914025440639794169812461237111048669723845785736341373836280814955917679508493487775479941656053271705240322917347268242155393447725361905551576992877467863921717658722349529014200721889087824694378286532346864408073155100566818129027252594739664493759086250184300495915837055615471978439767399053767847161715894522857506709621144668153269061156830890647673007269100004736916365328174149339907574787215436180085436479935453541146514378991591290560336063751221818594619458574065547959239083699575680750256247222579533076035908565938791564106176192061224717650523554277452384866579242510836039432398468402516439136957642812266328972244855529129835949677090695372431094265962675343202642014562178171891273055381668506449565606850284829575294183187883183164276223552281397711223889492382378111469703299580928110466809878304565344703575982327237140871144931228519248502455352630003837781195144791462506356510713024702272781885222137031580796473190683293235023775808092216522517557809425850078185698064888716460449875568316185354866560112299651709065484642161525344673663633049903515241853047035222499870462514884929002439838785774173775455801278386458265427165823942526471229499208660482729237097980320748199207210369755694092127579687082681791883116356287850732015214930355377466931904348084154953445565283634471746976539009672264022119574558813059803272483534608516755545468845100392905962020940049066652932789008980234666310818746329351743492157520405528821334782928173230429777005490443631374769519866797332736337342213527753202952845374815653898146091920594236440219605583179782119557792135954188321858441658078818118742934874886308122683615741487884363479811733649533828782527007850879157600208362884231985155539926308544147148066695390608175988320828944761717940660586832034890683676790195777061290689890252174674861776369541672325302917066701523239938080325518651088825318798435768283063319558840387901800111146533592526051191723324254530654306088611149683074775634058222830170737018171074779613970359190309466307248501787808793511719398641292160067473019757440524717871149283293110627653809662354004747541342170237210435592489602480120834771955752993364430438620949331744518265011277668771068471570155095287738337266151221457692214746649975525843417759470909848120853239250345869999215364895382584775615761383141728008609594302800439686516023102535718265990234881858539814501267586592712626315254378332054682736137957222303879667179380802060346826286390813216927394564862756161507492153386346081330014111305099022644818071969129597892766154577451628715943528927487385423405178023335376029511530571116018698442523165688126775907405997210901142063078442371609891399219544709906663272971992944972285967601681849789777574057071049151462329065246020056901508715058485777691490028657420198669348109978711618719543592768383913996314137267181750522603567478859844978748774396359336708168900117051852787405102991594039248915340560692918564432077405197095589880800199458322948985665859262776863442467252234339122771654427979688412391834760695123534349304322286088271118310680056844138251491915331556592364111742686174101446423343873432901419367833682676546688420826245536468414324913749844480694957709382265819263353162934380742869639247980267773210535288120737829139384625476370955529755545224315423380063958285728234110314867809812275273999301773763107606574204863655168848570579264595794729935688612641679319096043917060440991180604575370829232836344708324752197282313524565650556620129916080922357533079939149105838099829195753324140370691850255732711223445630705569605793540922278691652940419586500220004780285228567250710926202180102245160282119761276448890930454014068400821315989456472055397912687243259059867919207647956280338379381843835346823681643451479366464041124741069688757636995451641259213650832248597381311346701739380203240124919437440704436357718957787013125272210387488341485390428107739498239912313464974274374215679614844062718568665340601027567882376184689461730240852521505207032534440604090613791896199916638689154287773723215317982865557153771274405699974910038642699746404566178847468681602347338377616433752015965289223815914351232595421304367763820348346495268877939835500351549573414046373774949029311497515348924647724444037457108956053542447725019892223882601793815860099125988640263557336258898835703582369666991738646559310408512763677048690953396987275089007485100665021071767896140877232062513596171508937906799298405347489288918396791575210650028735851685574266635781721471868631568509953835051226041257264108319187198523872037725928153573548659312641466297326312369232797570638699417095256291344089984328598303027013862122048797206972052947950267952979474775093192117182184408226148662474858562459308854920338184246248035685830731153407097069425495286598714947081130199840727687237057083659728202874476676341587529606518199746731848030544365606740640302156125507985330936560421075990625517283056219495388886828982751603135900037208417222205157786258625355946100208839146768329892318166994512722931370591609082337813155073630973525070435938406130223651594638588434228970504552669069121305828671009898756806066201385817250457515236547472264400173945509829502466830120220866802710909585919608576673386130956012130824935220372254752754017247189286329415123248076931640571149660852177999229642901499050701446467876800742470458804408395220935360560579857835623031086289338387128948216418483049778258215540525537917517175220376504966476811467972411396305238333219762024292112763208978958191949824310062847294577939503591516035403045867003351772556903665724971487879789885541013781489642645123447511178369566555560314832269711216046550859161717715068401985358726441737827208661938780491692343754007761986775953965734900560202828859178236249169436636687991018845796295498717585373375436504405408839308584281051292421749832273805835749776042541749131235009350395528169693456686353958041726660809477750001225720217860214623341886595001904603053875427949791436841776531652121482606935480152269954273034121204578696909740723430254282960957772284856336131549723773100077018661124579779264412966298236074014480728540963198365208598253784993136888323731956252082646285663372809714889699196983908333049527393129419482965070540750568395204917637698013037790611073697774133274823859494211597940307672004690653924903287495673905309368578606021213280674368207008354257735743625793848139297034863847363722478599557660907012156568904433037314891922836541255645088759812779802608469899617052838323216257414790723306126285493545983363053149342913952289904420178672203421390333759662342907963724894416954947904736481369649060909619649251620738152816766970541476266121923509241656519783203735441160171455229697997280451067527800328378802027547379282555069627401973178399577480895498525637329626089824435806878922726425935035527480349896493387452942191732016920060476296064321013387362023505928805125669577360549666108159788225579831246297251278013338004435204905026784500805039587783350826601729325462030696174820554801522792374866107883577224161195087085366061623915877915974339863255785304911885054335353011493352600292914638528074999957421545033297760633908278604817497214274901170154059561150968167231465981068629600787386679597327530268779135963515357792994137978127661217830875765947871062730993752786173000382758727335293669759542224572767282260908012277224588006756442658246197954345684644357952114075990522620768493168637181807524021319814233405552244093252182903347616187578125280400787843716456867110553044206728205537285666761160180578877753057739698997443001974956600267858639572812245646884719226591456907057462657439551874935650693769302227475734159215518835334189255605549115210410442228489964513227350069827713202636665131145941742665064069127146285099284248125350318146959381612470609166977130288340803405312326426893002815937726956574420264144263839838986910356055780639240999361438441252322772246722520671845430964371846701189280479781372167418872898721466903926847945682199944529430602726298219325339198569346216193462802210430689827550397127218264524834448856334079967611058708378810081188705931911033938476702646404178818583068763080181338870572599391092932616549533046958780141360995919115014448254512565816711142033532616863887643853256933873565371414616012587722732248980783954818173878618171248310382210308170884751135864715732756813286795973056266386065754837007745877828701012348800663547877337338258764782232641427472599862241994135304477295500113697043952553504714883679702219729817017194633740006028039528809255968900673924625185471215781010455074692252239233664844087310403783574642727496089881081761276104972230669455636119403197163371246829283240700928832489131371666985082060577815985073020576763232774063348192141350958286556405496886623358003779855987489099337151149989935451554293163700452473567985465599901876217008089783707429904006515898654291066546920263349880650133599451108541928533967883047974094159621159553320460032158559013147685170774252727554098192241078752803454199988940935848874665825067972490676952626115470312522994017758903241877148828167013810821202446950811920449129905357473294021979753714949190628736483100498082305007924076579556418283745655391809012404355177530249299659547873107636126800746635997822424018361701561129067460915044730120569144012207277179377767705040986888766000437681727596701602309999686706506582529750560665474600445047857240265967526587323509344711257914864495620965868930901768279660095892176032863778908328301433415806097979415925533440755158128407452978954076328562242051546914898599417480117539427568977622703246340488261646065966244562048564519357890843036401056781292993561723019715846647235204581849642616659409437416229717907126726597472640123425796991873106115799725178627705823136054389198068764437971410927040459852527164212219407765172554940466461063753610032413967251226754821767217944623823323348215175139066151974054215249505720531010080578098544579252088164801419437324797504543702885645408242866651474554224416781547457197566356997820030069204034690869099480482322553113412708247290287872900268048581446441934613989664052130407943005446869276407775280309341218605600656686702862809542729873650140381904795363799526782261953824154689532035043794562678633438213512920192172072910257425076947934942965050687138351393387956610913598322681490992707457424923473451242677007498727307004040947932564442214814588573531655120256242035164783794975080126906630980986399800606661389058673607477777688382279275930448162860876544938518365746345780532916929874884665293193639573783846269036156979313049511709220310584466156641291338350753984342121290001071230786656496161870471731684609365079331743093661986081046002606680894454684872820830532994422557431788310668094183883309007941899281239953800096533515284020636981351482241450923500778712242006420305912366018006541834478718965050239628696711773107315353891760088075468910894004076562368330593107594396530445490134842076662748413781733378412846918672149655169224842990129501991880846797013063859673097706402907778157045470375239178604162150510858257831152616257724419440737759810850512447173494149838618644759786103571432691760178583894745732867545039382349079380820400324748030912401760921193770725148632099900490355497324120102422182123075583536624788704524810019035454370293433586923473685308279479018216891850060446633499344861848663821577704054728314870337867145243591960461283967339390332931237782513712493676426285626511848136886734683546886183880483008349707507283790435268447991561689070421357963179071975433190380347061519003867543184123131880837860487761358679598889015746629993530827001524742860885964446525155763286156430111816754259370362625252286340104916123674374686566682253299055423108530191905174539391798498570884528624719975411685257941657677748271688768232490993407665409502308894047149962359315935506020231333796462812209129220440300170771488298244299153324946755891089127626890996451916325024521014816114550169749403501279448897446467921858361139082849129379385787741745610314258700839495410410692394594920408998893676874257395375704076080725764350059173391777741808113585243901054626929995597562739699938511975910976545156736366073739390911440627346635172393249092602878243401468541285933352112455276512136379821156609927705312374192507943563998079131605258012213778687660453816288888860439898183301980382393028108970906963281906249724805621876552814624972121819038560637370687705663270488320502550865463849075618296721480990740083566487172324776595835062410218774080760637425820275121134710131936767904645408373627534954296454884740083672064420544048622524597565870095455912397629365362036424129288051929754059102900523580445101554511639029730010892236782596333977023444521304380340107631258332077626666172139519804120791377523697753940085967223959308242546911397504011396023781604280814545068232668222543071863328813815139066402297601307600410691284379898915467405494196406388504291764965302158732188309084851890872418681844601103538668317588891456553931807758247091713742495952122854486092269180364828339780910017476173695114467819839091208354128251443612962217294071696232250184743555275401737380306462132448466491767678495069827545774217744983232455917855117509420997899621785314047798608652976655744610323373656450351226928447366344481249362079582987900911013907544237276895051363568934704654586355089943276751010109872270841647402723394050932618972353290648244193102164416597843897352489387558442420435902614707415995037838857606329236143933441043724612965252332497121368490135844249579369201877070244330671464615821011926709951612490224235605915411092151942150514007824193423835725561274006901303675290416271610392842619916184760889981724641045545364517878825264845153921050890333974502984844902590624986159482555209437559266831477904612516709419764610848313498679134561142497926433963237623075339045278267527414737170215696440677541450534521427988894289351596626597161606664574173364218075674145870834149246951733209962783315169490563199471346546425175276227508605264993366759552587064346006516263158205574946567377756737268563487951548837768930549756505577640777822402600612286151196532404140819671636578942088765012178270354968549379279535716208994628326493010696246872319721318616601434333627194255381051602777993148612125833314677386250967700810473015211905325815819160159588730706808585305013069740285909405187289189806432982386986488493431780051654756544119548031856206254879886554041472224434809688330359410890023630406874698934140150086678604588659012689319355677670965172018341732422560475604758122484961253824955054160493925766784645783825179831159675232375031407322894905292677333153543624721349198287045164710986513388065766957934734130615512751480571076189812026493592849960691169268005800323797997608729066681685466679139983986942223394396358848177964858723543613664071089080174696656730146451790484576341635790053182622089710003864165267393350340467916389012333731217753923741356725879797179177102450330510956961181887447544616079124687762941004274096227554912389657663894609671997636390249845784676813544177414356016127859957286358998772693321365883592387877924963394081882913585332192928253922121794168294295286384376791000624666586864800500224696044336329869102054507096243621323667299486570312099323331868732257738432981185019851674481199878187450547576016317925998131950018538270761731043002462239011384556794180671737878103668811444685347222473162845152986624583179793017754216470263948921569788124972045242628026383738675986473793654238512167009248596242706166156102981458878050178902695581350178135170104617163166520487854027267869630197872261545664703813552441992675821014889351850084658971476888999863511630752303690233587358753294821949257202299870299107522142081290044380354631889616421675895645842232064834379534439505195667824218561042769226964071243001893591296545206657571682263662894272603385844740164903645212883919869305823972676329900006686197826550288756203533880885023096802634256279136244868419886142259197945627540323628025083435805021538205167065866231999865821840392836490652943299157734300172548575543920983644453347091078561578189649124521495056409584169984241381467521579710443288376286061043474961565980806476811845734442372559177465912770479007278159515011463725007202913748732690185101524799591836879016993628520602917806942747630085809015226488223522875236803537646449604744460796622961219493140145264185253286576668823485200187397211710688441952094533704630595493961183953833525191457270298010651603915869590170845420222273736840065192799683918985097157030144433345082471615135256828036975621631382604372697491730691406229940551721241999945511292784396775283503705874551561678933537851902933463338396682370833161168922970146544559418716763598223275606834226223159476773902263405095699235752259592236161710198209824715483052886331688312625558328542192119006921653692633675394738394991262524581574006286082380399170661768589943496099829074695776922513776845723963101447762543387346025402596828897110182891400723286957485928703126343608660436950713760475131349747615216053519025479081868034426606832017151884035900697047066689412482549825908827718533241684314119494390973066223960125750576684905265002481568769910672924119777108648916016413482760912989091296396663039629247996836567832694682421053698092990962878926516550403430207810645883857127122375603868046395450679053963694077373865832947094439227137745535194202281551428250537040487259872519231096748443864742652170065495258828429551446547741265074149480670195504072845711340376896180603732783031937085662605380122058356174326616437476920073275306348050773783657266020379095632915093148897682279173805896122097032268537459063555766045604679551580715006606623193383886231507819880227323080153350397966904393245312274395912571721981447494018030046740431014741164318320049161745949303779935163854641180551999426292832457876640615934757972538101139614723506394324436454565469232503026947283421523519436559322047923793502931164156112287520255250236196251550855731049815508722712848570558078813750736074156304872374180645915620777887761611019697459669591039970090062516328791196275458897271175329546990918698074833991997542469424863929185779629818347138614996778521542986132430295333944781660225911904960289923329502168231892174653146632442738041109644613771842762008580286987457265398802793938928242218464289456850814853308942635128482030205422406104794796320102917237867026093254923207720281584942738738924472578963883366048357834657194989596714439499787456807207822936930868899398209215134309695823102942804845648589614551003358928770270020429024572538511121017190216208281653432580876633093063403159916478530866113812757248165222176906537459111438753720610448261294959818610336205757190666709504235313350873353704429537219035624482094647271932338491746532273554066603544547403830187887159148625877705834728330235124353012911875568136785357130738984481807943438876771930228391800599597126263238837891696814315867682646285226118776966813170560962249055164999657925899845800218486927477020587503375506162899542110476807199730640886922204108822179270112317960999798511980835775142663867667767698759296704668474996147711242689897612674626728475937176857949223263998021704612600432238189051088915456762410629118995945583791227711637956237969077358877598789799299076241103484637693157422966451257965100615438803465730444012233028684409976854593797421388371080812789542246288143370482890641942429468185136386887309788013550923194222192148784517959413653645370695606619540617050879913120997298047329553850123794186444563151007557586668043832002274717330791691365766011122975872927919860823394891197458368639870962686983660018798617059546012063389672786296384587390778117491493027030804084089423592546459417788276455744568375789525246627034135152071397397723785526117412198713313721595462659324625692240485935716811757775838977718059037585371559204208599207952244470129367565134010232707987420919915804966257649243086732088403651218158236596293533356391851426010262954320008802379665549576530214069232137742726789852846588419378576506725462866846787784598523040088730361563795801690891948813705887698753457565897686970202064301694187828421829939965945692530943638181448744995827780309933563597735941839584850486798396240739173416219993579609147055910513389627393063650756419300848335272267141037554725489700937197062579023464360329788001330074739870920214604250420501964080237223447676266852256539671439793150946347619957393222620231001808793364433303030233532093959747120861915079762448959582338556194051409198880045407638417723317513262969079101657974288710409402473075569386030726786323840351935590837711995251162761011682071163061465888020986073229609807305988518767689462518424942481529889026012785330213598470084298970876187144642847785791779202398924673580130806183179494123569921573021793670237356531471960978694778644151645562184687517548066516923970733561423685339743727218073399296740937525552032143645524176615333077219440941627627758362724431664655788095810869322922017326262692901300722710339839480058577318704289080245447656640125677035897135524246734083032023208763304709324354862954555474956908870299257412401096076247196708455114691507672303764846664578644570760295935075286525045956156287056466673304615166682209232811171363807218012187222251973511121001242961927149701734697134137339684698574332289392905374695780587237531945508499266260969781332615171416950620903675328879892242018412130544370749315809562118051236595106714946922624673428824131217886876563300985383321921374275690287999185626518708389333721408307897580461380026485720074060913855013448946223352435005327582586253772931004044662395509678686579774777139043761980459720269017282824733993436507125043983849392507358608089402950901425261402036677943730376117728533547865408810513052083030050762530601037501436756928264060509631215149367863542296468621053800095705797819652150146435599991734595763340760570302800243319552844698246770114802731805006410756122078792588942040598654675660523223192836143415962609762784973201541367961455291455849744786056424941218535994706911736475824553237044024160065436038664859782315351565271981358692266764265659437506145749943423139567629963608160183083766449361099615938546096310942785557174650015614308631324426134454548825790532665942516220528194213144842664947455577529055721272880217028809570579841255132303788670047322011862442174602322737211419660996979953743937475499940255876715328549877200940837669845006802645921219446150998303976994442488759719066833237206322951681526530335269012463899845184011985696622477431678751779572439102902445884757383234268460903431369860646214019241502755000468135750399878293417610725322690076347088830838913776501854942399044219319102603285639734833837488134649979148971499058140066575317256644205685550764396635737928953300809560473517967048223956858073332752191868315768334204908137630387802859580084108237912523655397176435279568908079538952327497400166916854701318431959897347601910030086790856900332524615885797155059877370738934676139677521749542446955904021280983878102628431209799927322393914109843536520026264388465052814296497283365558826970284331292731757461135669977923783561245028477689700593445407286503075040655418414510006103298906939771548338446695874085943734894952693034651879038356362107687514134395200451125210738084953395481086426185509869493974494972479110034816186245696240658590289974895258364360080962025841473034698327812389075941396316118832447221520458770432147257595665944358473572118042552006124851752566504047268029396042250790436683619559560899109471387322976064661022584596457268785486580949494631331244409254504971426035274936463230756334970516099925468887813386035225024989503413909746834240560015128534514193398280186105321344172946829038104071205655053469857801013484656198207062629921968827285504050878658245072871967828555084382715330812860383724507197242815230649730602406176731098736992264064234566037886610913144983234987747098467121475893262813888796747868452197367986755279373832910416274863184780291949530342015772893497065617421385989981684512455599778528318033557968176086413001080901524793079460272063052550065030775703849647962456233722134815451468084048828226126903515608254959454219621408216414551897057960442835411498568226701531165302662142810050778527032998969831779318766692806522837754880142733076954863544465783456529282448980276423121004564130017739330617149637949358745385545423924541667964591311840679449817353606677266195257762251096503799245376418194965658049095498638072507929854378078068276231836255501761960009265298432119083869304105160211520073328918510744831034160030716905355123875523990198686616458989824878783374239989026605891156163061555774262946658660861830943697020002115730427790060581981622444932867251952463950984741200598121026987558846839042888590820036803344202401083263170039519383521063724023448014499842373606147256177508091851784316688061237219011847886077692253528387667918369423331935030221255599817849898567622146595872963222471881451815942306830801797398200445399987491383758764245060189707202774464126007366936044461193008422901312715636212078884718980757368455268527007090887806712106808222319181633354475754804263404937953177529447000770817147506511278279760426858665104178999601530299330648309579603439947100023388274138955706862927799330945690406055373630399440665195087823177129123551075579359461401493911563467062187139460602758471994909608096604955976834638598936094720186091279625613349691440366200669056250346361226627883175898971226738916986881595813766449626102649556703583863952722166331816399756907414331747467542686700455780245391989278625140317831311383937124094572338232278283364898998447030011477625880622583646558913893766562389671687268428387779719735067543944900866786551595533653892630993515038450624757843643194516657951802525491531691864296812186701132230568135059747634673954837897277296455557419111274339978898456254580996481026101031383582866798433493088414422936468288585181017209507602689024577727559424453382015892156997376098555080588657020477852308457925124221973540302568406442991789856351625807936686956604915287208724252334439108590464611011385099890142392949798836996261476689368644040026422657780245311665638178465315742417334692645548424110191029028873933056154397188324341389625431276044551486335322926564125502652133977588254535754411223353474098231480480704777996180078844914159359375114917204389439040427770767461974406807252222137461385214850933606365038281653626454729589485201768114653365991344472033813394047406734826392820381553464100439381862974327698637418916512037566949899224719908939590144795930155755683295079847018240906402482497296912963734598975939855548178103767422487405690961224921741699385786877026532494810902522372294680053524842215462382354011452397196985283519140000850506177472506592095373621135850954275698056576073765033145782987533527182876454881618473355313735025783602010935328499030680204143601118664147552928312141070230574858806480699673646603947297552219078528324793304759885928880896267476793398148895034314839699293358155462497303232692100014248309768972522915895302263911666877434775965986122963093872998097509014323636817184621805338829089705280085261535128954608560295906476186261213521613317532611265706001939841602116266639449593486094331457047077746320242267016295149864816016810197655540318216392167196747811824209041980499113582655236968673625930025537450447934672590134355236553259633177840955410177338575511693601605671702274831743710868415005608422570369291014271852876379626874417936784932517401877575351777769976238237440163042037606448672750821636496313681322720942354142961910491765198543950077770713444980871493649452132095586143208961313157925338005380568057259656691470521255011038614868898817571927336558326819257213938419174719788043461618255787674701558167701769127722754025445870633641044966705442613721926306057600728619556954220655506402916522649539745559271743632334652472075012893762662988606841270672986548941631041995122938677829712127247885623394441108452427440516735555130581404531185927374326889258178137270043311367330732562033376004307073601732466710886460437239436356523462758358563059001682778812340970035312608382704750233405367653568849296628904769767059902870144558978004058715293792464328696805375781516585248733259338452128094072917848233894183920134274794070821277414352828093769173944214744359109416559786258625540125491073893617862074001929036175992906297006324823663257258917146956596567031817914074389296122846166183084295873811252124507771776186576777646963053787710632450866506541045336313687947799993399927204976254460674304858464827371081595046544635630480942655486192686642044599083212808950171195916813017073292305432799750595625978734820684286621593837484465193363871195885893403592031426434437604563330528930591496917801476942872221507738404559575213409752224615665962544295212980045823723736197603884718345383819563108875912422950995326623685307230874095266267911847392209792932635808804773580386833263820238238264488847525693512392616380755983332757483683045285722286208201474607749753661944939187519874842211645791850194560333522084101802870568477964937022542813587972971033183279119381581301410626050934029377218944796111443189062767758448891902985214115018352692019816606597628134969438835294707700267109844267023011057102844997292836806460268341380047204362720504350500411227347512952791650772284836230470893660549547897386918754922864600551771087128677884361083729029294487010961246553848494912088152661805054206370130020018862662246566901761873221898409522461976260892266572783595817843309109307974199196998343701135963973825484637984092144260253396487534433829112964007948349464415494762370478747181097659589647306640985955085643070083668154037596748081474117731960179569757528184329027984404762397393312472041317074312240047331385419383178152031663611792617144273175985144173802213795498852131473955744853267479137399309673194374653128430385535614862883970128389941678543829653061397053542772051237047759092861491509074468185288002356290827381621884724894067655229848029655212111937776516689102966101094438492110478613027499597724986761531562848402564118404078134326561659357252345941692273106644416841061367051813640575885733458348537035750838158193170414144519998623414213064311654993789203547036130969329819895884199728359191177201564114901671585069904298902930211040398037938823160878742188876305798737079591992771759382747143599282907391470107959163406450452712464653737503351630067113317054900968312402472834946149219615624295073907549615352770828476049806396201748370356713374878049840685132114481629763891714708910931097767725908821110577017114787333664769585333004057678036642000764699643621981833809528676074613244908296363814132752638508374992985261256471707547706810340237141487207485965026472209831496339223454349099607013229484416673890225561142749314973606058979367652708853972944833581665730506588045294042149868228850592660825630239799008559331362520599820222270597541578641694862894719103135465086818713307138563743727402263743060321849151081847019458112102424299390429554065266369278755750129546529769583225265016590326818960397931324065862808301273712828365029643171552569739511589493843046067150691248360810027445482014568344854745714262171037784469633224472594643524660823126961152631242962860287383517301100258413390111498437845209739203534788142726101608683308090842303945731175609518035705839176560162137187779666197484872684094804143123242814031690976252243923739959321086128991060503601628380708348394760004102425259886737960541499719212401820857364665193817441642217635394255563042471970410629975042255912989966163118437155685417006895972541882268614879419663991158280753342386498322662677328210046565370318741659837386150347229463392025843911217244632495649287093279203059693907461653219584742381124528205078499524095251017304397128949764521357084214117876018322252527983952559265019648769317224225340107230438690734753302546094850149505419971381441922935944788925706990682857054776895558729628700675182228449060928703366551409333558185544222363488573039980378711630903976677674054922295101065918931584239946586715483186538340810576094727558543101430809508413184061174008838818373368579523779883630968065218665685696144193373659145808224448746629697465294755055421774615175022670528100998778018142335324808785814057869356707080269086368188319060462490389488042658353793034287433941274088599362856788487176607829134376615557470700284987212490175198082934705199008852946092666847816259614175192801372863247737503381729536854684722455160830100479271748602208955814639282499720604285206589980342725101020967587946904977869646322292334980837684973073437324752984349760781688142023895613100967102954850640644776029067151114135303801097861558953037815386153285462544148224227403360806173456815348895399919501394637721114700707406020527173263691268033091451229080415775794481497889736084017947035159013147921767267250255554743933222769963467803944961235744194405692416102712947582219258299582452504037918956006455361546249216889857229105239533107374168481059495434858866139029417149565067755720084924941066247869203864104652143181657993114862229747078469092074398309550785102501772931552272066928023089103530536334512228338365888494333970735047969055366086842860999027578129942798565656259909225525946072340473738158276741525181757327119248295534350408938016622571433847061389605710783124713906275519718323113643849049486886724510237911435455294078453299906574341301823938172480482932734670618038715666525185684986040704721703635748045511380266038387676555145968882711954506681090602337156297385199410007903020627383661980634131304172903129052569708776266871221757822012361322997177322216544219063395909396973303698977349082298769875832815694888338143516137344284394790544105981473695041218527390490463096787292072323125446219468310758758334406703494781275597408319969521829035232261518422693679359494680126598056476207689689591510212409494519131577783620678302775716425255440569155965999618903983315878474265400140438511611791664198604671911633754567090831031952820402335482674714200788170834109088315265161264411599638322660837289835648120702098904927266488256473013799427556775636961632979756023450973746944607252507049922581597104675946346516400485887281448041570657057925824091131969206637269663819639222439402974166912921068612438550388994156072449399635404310902660704516307974846810148647073600065153020713402653746397135262809090985387213713747591735039408788603279197223118040388579495794353393942524103803126392642190020023126029393035724506408897370169703753651378545825122921183143909405619219376495455000443262290745338425942344933645070044866664064098957826385451462221302961128893526096102833860256930426644615232040950807807018604026004813078779366304622875504508421164164116193796913448051968822045889407887565149509266936935220348461348711004628597951599679051342405718543588897132265620710960309497666745963718795671971268052771874059817302769835653612564382071237194151630576700934037863183567312719323914778231246816165217564340913637457055374963968278020216731847945358739736625586062390618063766587780159301729713011379107906323950347572294989622626281059758234526559296677398495548638212800947640983193785381508528614535406849030557702370347163476868371184946708810192603814787442287435481263727620459352061288359227091652505824747967461330838206039596473077493644871976786163890320563000474282045539257635621945700914556508293785223867153823894786727609968727536415686297502392613930711314229228835149630713760772183873827171374151458642691512781853840606660141977264317958781362998150940862312026103320626031018616944547696361401871129500722419262262659787939264379117813609076084698069214933018830373711257118294344489454076281758969806539667216356820098615847746035019924759521153469085385389108737235436274471226948093389853576473331077564555201158383942341832612691842213495411760246732983597825543673706435021150469340406433400959320909991822812653221444801951295985626665414679408884100325533287341078671474817816204645751217725627918468080676677371050721333179070450212952108099578517591779062383492959004999110223503294751713433647619433708207384483002277825614580018368690745882188297932724300619903120479281997984262658919253791407513522423141513005984218956558989008883786636316050159421174133244129723292905140747042160969699553518224918393819251367938550252426019033466835495210368188191717187329383190302997210567879763374534825670645245218781058049810576956093983997484411254607360962822951749045370550462543188819690354473991677757223903649167399538779760560621934792801267565031342971885616855923458064889934769128897854605974849567439495672328742835041993300331763644494897822446467614207645418485270451381958542664780204166430698416525139943074289483148443464370960810247074938731396556296259142520809669646122895679244015589416528934055573162705095614721611283992364112367133416234621547676415396192305445154576395626165755354435531553329905199828057794387438418818210931543897919926638940659091084240222418626784468575507318903255763615469179049034436301532517863951494593925459237852955782695783541814217624025258681020175284923709071038951642290761097462702155691364989146304150083651945621244971442922126650136678405264557107111160990836968687257091982422300111441095363216463368014471263649875790082771712544314898824538535814149069945285583027367210422938609935332382297039294722660407557725399526939977447920887926193244371984564478459742249361055761806896720704663774042054019048882765691736933582900131656769671465421057344310381986166936228285818247542061690229734368488220891032286408901214881741090442236254900810382154280248152315790792936092273059030734056580113985718388182614693784545651840527433209335576980316821804306346972433965652930429588824981974906670866628652920542300305174487247514703786637785493578672235900852499582125746399944558972555107934852724160532161823315293722830484867780095474653876357152489683791999961256301234542552428266936807332174322518667158148453690116724123324866373072387010095215796876360845393231914579058426890801570021313688917133545897463445479740465665309690135515565639462628586557625211190497961043103549211852922798114195002140912287164969860653665840647565994227943570837726202755730806683516018865004605251936812158651826061638752497925573436857056580100241549499764096416009203026287748727559317490957792305219567608213248486361170087688633648914578797336906821294176159777618606357697259110304398511063985149003024023757073840132698644217833807766980226562645297941663300097133214567550105477761396704717963704185299021035451437807610662919341878814118570959596990800329203603167302522447175106337856711185353795594651231070319709576465404308176579595282557776048738545100169000162105183163168895872992181087656483145214849195014125397772125052376035725690924567587582470665616095274499385928663573392508707539433112072506327167830925930524172454963374973056184591662983382819795307891085715987394871874514564544372378800955400538534676099642276501866280367529082006505390321077382212965756432171731955059096229653730443095187240781591286462566865527127898757324403317404082513649739255413025580099567214040816564484815597016884822368040181674284366875839972538655449323343637340268035903081446887691000108890168268573034477342066274935501114890026813425084481647685505548567384946405136509194339717720278467313694505672680224187582077457058361138136631548165149293662047524442252263653736653187015504896445422486011494162183934328105643031783024820557041692470884497061110867808951383022371871487240366106716072121049377449359386908017998027312726550853327281569717972690601771847023542761916230341168200749431024708919826167389881573894349159099460585026794819201259411365049789181644336714502072895629700546592692332151329371084881790146103464716238481938393139979864251877686846473763801832744633587423227031368548882707482591854899162409074688386381185690812779483787134607321060437270341092176271511444357829911198792728470482716571301944963885320272115115185959234768536439156708556673643646851832264932142515697444732389215022872564814009991090700535807062047652170875718548827097895694176118132011447604020675445229945324429487244083757289551233489723367906166918166119499946778720822034863160671176419004624330835477787710025823985657907588484468994640938062082667608078213693960254700435361610443769208559846610345465170079929967476370398007627243501016727142387401040916129895611916191680355347479464213916030837382665894530686238325607374470741307634320688095337369864767077726922543722711784282287297314207676545838318418676199547643509897902147921750751362280334352402363867261228365721963476290266339820276157646236102713878945840662141423376645698169733741969214988773859389827757049888109237990219420829945837825273286034029434454535643620602165611839911577264118560325440634171936598709838282928705175385679279526068678638583753054336727296903369782039213176741575603775699773633577439806025296551539556678168204051914483604120923530933096817476655262726472833635721445929962673325526088691392899591658649511941950258805012614736497227338190607068341171223570601390855539769773819898943979692311843650979520903617237627897395136299320029693924306072483224961128657954100659114317890766503089433535650929702436116479613465719811376780850562792856995601119887357032044436492410832842131008677722627682072878645333771500898752120798304087299933226228337297750166193110552938769719647585875567661934192402402917897877576782685078340466303963160777397944413177048420450246264275776655092509482370895365284596059812445536730058387896443824570346641080956111231918818471351814317794987911618408281077921574335646347116172078784181058380044029279297850377353953490146905518501420861812127663450057737871928865796563512156414526340506606866203732059598351205455766583549056954843693679282879109259340839832733717630829892024258371301994159539535785891917229744617109361919149774598602918183957509552168182081308033091282343834847993828306603369239362228121065176042977388362781865603879839082212905323435819353638380007923805809005315084206521786753593576900674299567538704854024619962672537915753060460246393786085139268330691413769157579628902701531585304023465260759339825756377442204150819355195660714070495670967898884720663232288493689357857611110549050140300637191568454035452495380847441496522950845534396114016815985546400370116145520821986104084034279404333810306285357355579899954925154815846312010899724245973012644569151241980507565829043317604433406734951174218260671881285654714411590915958887366173012816565661614507357070272867784471230808325177630817153746095468744507863223569621067218241850662986054419596202382370768737557603208507771938065725908048277723161208433946227835511161198015696432255460203984980238804337469445143761888286322229585649714996151388479641707436852694729790769143553991083736947176863705840879682265845029640756186927356919964859909763730929369348956295586550499190780109972916543812845104950016216226037219149728854371611737504202989517356016504587164251343030013229444165618790472467294175304166578280118515847926156610005464315553806085734278603923719820605199953731503848900076674897781958052975523275506014967709383525632566997682334701627852259315872488520303039684999159029322722707665968585415747356338603223653222341841716958666223337903649034785498757956263862140920176587715187526437017926720389095977823677230805996451196322274557809187065894980115345181521081222337510135529494050037844065414361383540483839351094261197594777841973261724782769306910414262784050089310713445696684767321780845701644235882058797780967863463311410280775116227809027668865495083610802535981930564576356569810453684758098000202656163648639806434577574768769015998789091543426650868545145324533450414354857210692472678397988030165960003641566550675433451067842156995514611212664666921452552701615636912839724793316295643382940182507044537530396345819867481354743245505555722866271008911130361378742992689634676044221214035754914066673733221020778244364615519587516669207532004689825772366735054745134793850518113539570914545929010198743122369981091302603915410706418414775813936626459078064675340838884941905035868642767024880789117150520987824788355558965630202982708198937888303983479403007502320168621680171823328596923942634518900723738404910181526193106962193972061436672301777536949107553127143251411745776802820978394670499300788245179809816070271967547739022089599450567358178812871414560520417618707086054956559823621838441202838427974590798879731500318172757395859520683793559979301169699910247204770614410265757011197858503700569479499084900785953446565807510307018607557888127753256954261403133237455721611720290924099864024185428040535219759648322946486535956129680172448544262984989593676227218948403000672865065542699518520214483677068542971566295684277100782861360442215501468499473790272250026332803645824348859880180024974096753192467170721385600544217445191614401801699791683589400152206344348563637587835459044670312627646167870668661946599335277534101876348535930939041973964947262320007047570025147665848271439973193293085763950479416071629296323230106952877193358493554372653460890269707328482723446385100759959067123014214422397496469978225725847415577613567871075774765120024360174840493384934909163584550390238814290668864929185664508227568847274714884911196575220700988705096856283590664209312483725484739268326278209041041039710101218727516905863428864510884597248797696073715342749168832405176092254315380560472238340904410059172129670445886465842633427949549878218967313709077250182011700169902616316284820436508701252338628486795551741653147691960881123031947479694739011339610976922505097320147617993493648292469262672696346835785231849903452778544050923185533271524660382397009105086780885367226306021853600015578312657453942299530647949805748351244227806942879093160297401090530714882178418991145515604341997614100203408628376419027908649560918142751309907557320930677814036265149881953282506611442989781994754929498841005357444513054368987516113051805717739256075748783772738441407346576998683191014000208730161421801147256030349265500451809934305127521914608682548243448523303944537130557300053267325984710774398462395105197645651027929765320240024117887818317786427662020066736031963286857852991796253739455853447579149174195831754516783782791945547061672617322485128144434309908094067296228004741973826458765684771932432982115779453538970726731088106543733613421541000632559117726812861145974250169183494694219054999535486814565955474089861828705208349751136908949284802040054747212614993085230979073933209528154866638634929494270550521571582184502031179525791013839279544812971404458799746127820555586333081758679928185502623200611556758031794660488719121804405171447759490820801211872503628108796293354258053682074270819085218809712907469466062373228069278505534685752984227250847713952886408398299242944613946505965920891692102949642977354908145917906938006648307659111051114897612772134835770977541113143312593793199431258905770441027162975432355698415737739871909859719547568277490712264799622482108671656174250434496853859838563338584247328045525012668083564923644995084002763654532655717177552906181787975115208777709025902897426771722250334420304040129601213294938210900336187730395207064388191107825966815861739471171424007476321180135541366126373182886884921645934549714625772213675765377064935263169557558908725202638871521252340696744319385602868533780235186772689827162331058143129289568300041959910295642595638724354318665558398594137146430481152844588603408999311998760121322200091560064140841758259807905343426536931538151047634413932364473637396215898917769871593100638914691690513059328217132472839197908620217888312629440248116094742929823458633621521323554898395677705614830948837397146869680837206455550849842985800123987691971350678008644280618526898901086834337219708984282500972277552681663418482406238773300068482420256575817369210074048059252149037984178858569384955024338637452307797225275711165394198281440172801026853578388751933581587609629979956692700860875045526405299579004824007406442000052199706556780114699139137249880547950192592688381793059200466503243156308011417092411849614547158202640874477745212176851852895613196760324104724952291474254983746489388354737933687260566780327332893940733425129856282655135639862909458570720104978606972624995295589905905766006541127714040600850823574726125234067467776129693860050734714412234612495824984639635407581832216026944287175616129252285449726220987052319827109833172297870339887930664753373242609986363073077983848873260627969286540113261811854867771931033912255485906740299260427422093639896166182445811286934302435965936010265381197928811240047185465039775429798243348273295978894714185006439976596924896801105397741654965935712174760714521303701229959878219792399261784680275778948166412753033741698291551688373936474185816921100206424559528451230678329458363748969030289009254487167618565470568604900233235884058178453103758362856261201235875923279004328081873912683311731612326620133811365155076082626604225700431524488456777443957638637194220510324630684440063749090797891591704620842823132436775419502334803008020037440678133040924371853792954896406250525994447185160195124242522149077798880909210945401974773411703669691737819404135727464670930804930176417038896062705224801202247229561142596626122926250355869502717051536185694633320709851857228835236557585098023324915771836245459403848187589293317292996473993496117351330147807210172903093735068451843015892076278967083583614313757613644074872124117502414512688453441338392278576734195149208495168781444529532111789802705224541492392685261802915066653244473794731222896084714216047359198352001793602591620461399431569324292484052907102933472792595321261611649391430334044028508005717026150512423559544072939755429679578846139446270281150259191791082147293411067111741159328518519248644124064541424867778594034643115733366421898638141988473719043982602685579417920806256883333174247925565070430586109623522291400124297783566477529553268877609336473245239648594187301069497206273541302435881861733671839861199481557416122335293405555573246792295756890391723763195430885460426588501390119492801428938660399435202440024982375471075102507541231909879112699545134815252646456711401293014341857253243148807805300578781488984159995906675383916270913772163402921109359849435699178086838642833526064493348880707593142314864031053839992296594066707387714448290930872301578330192606836656979915944349839935417246758815321989192788053678253513890541563749581218472844042691953172701780674654255920719727227080839147131735981032840570536406745735320126199779287958220719325343780940789408021731944025600506776467804270114135398436525767385146330964404707712409107327861172429367835742880674030040745921071450952691090140395932346940545247731012088483153887835426586078247253267247380090020308556771599513395597040556734378022618823595069548189884106482836014201617428752133693060308534033290836463581087926300902748740615305052381717649045933642838465968984880872928617205550468289000614762270000884768550210027749025833997992396344057072148908367909190526159868642206575225726817100875377809772992178269156051299801181327622930365744500818004289107524985232546488827182467932934580733642536646728654652251944855340677644530566948751262946189731078352662818664570053784555614811157753930798721044603843183306813770293652699757935966872095567585956275313980829908221087252006713455687275933708191925720552301913109975809943772471005788145744799870772067049421465203646959216821851083658335842005908962194728228217321641706788556793420403453703765607376897634377628934024168396865548681047806957545304040708845867514087171140187114147355809090411050988729018194848490244810340427293970742154353727179773069901752407674379680290061421937253889147910135735079149142860960632299140133749176731416896926663125277060480124026232743304654891796205174580264440416687636607662248482232254091076496713449491988998856646818152427220063103459139945395589509571691469851496979526651152200734019652348109821651240466329703321648216339327609043059376375511410565523561300980460378326564225524003166126439769981254845839412018688737967280199857417453545563152082084523646324550453405212049647348566760616308990651874887984632704212602440384202765651700186337492604637870533006518595046826921752183111613664663119383664372817199923005457649397557826694667879013207065455123459152227384555658656784469332692801999059519059278916750419151647863373613258238553400044110621959788213226170168415547932387257175719865212989705368016659045599525667239082956516755307072685666773972542926232806271961280562149037713414136359962448811241717993748630563341334032667087588080242565779685503648245118005418539734822548753311819650189466012039083716453282319090540973887027013238368959172661018940761147932800122968439137079454343961646370145213325548371198626039137909776299478861432872625779079019341879821307922876650103160729099226651457411327077139421789867159651781378345660227332451404542012088790949939122872024144177227665606361961179402113644507495088536727653128952257996000205745726567480408317776552879893962386716816276683737475861434386371749224666428548001854491181657019617046331583678641130343184676346701892413573245570727316059891841172593118596960002129760110032760198850011386984162040210279856866162038899692743386623750735314369515079678718997358536314415262766242618522461336100507886461204808708525916144614132123183814187768956627235535003878431555646613000096728868796881161624300245590858152925576433482462321396674247998913618947193497649483342749481995545969453530962632205846504028486573454613117273172591529501593867836341484048110052082976526582714827910012056907568414309898376713005837985181582325888410993086405740106021729382629389537816270456670306761212115953884770377372904311344307347046701131450603200344896584438544120245551906952290363297372057830989027068391114366431729546114601584811641167772465375698603388748984345062419681296724194242605035076134979727021710584506759689513748329374728061562988946659980011169829879050031102447422821052958502689517677380097343381403397256281694116886393173610915377327407725746252174757972367800059358434913464522090149540128007962405228706080223559571072436356227070189538648676143272157788964360624378170010605044169624245226193003198772932720846334841451144454460231889094145271417983133444550188048605247641215251700409906933910881620684188656425062702980502099356522614574076595338772946386429920582450012155361658328056978711583777525776737735454984241586864765698613840937803474930416365314372049896498846199752358899414949699143766754439513089220447858144472850955250288735640852905815868727856795554660806260965164944561090831317210260905360253078190692121673638588180403314965133678105418758169515834148145687726104642236087344385418166175864676417086293018529633283042595027464233891641453500036966609411368964906376470695859625493610118957199022599269298291976774468587808836779940680137123621601500309304789010301426489559170055786943494616598680620853219280280559279660530897912129647456688140745144642192743454520287936196740944011118657442866596081612301629353738618492669897038534770071085410814330403926364967365564524300990713679870054565284039746518742721650708823805094160766484342098189813647851557571533997200766224345550394138201846510371975338651628344995693832262040105415091145870273670672479243626637417998030844327491331501978195459759104201355512634635329692361727570974070898548691248513034709809224439386844464786837511502318948892690239220403774874764624872399364131423878084814553011886403101298023591423830020895577323853796406830257979947092553773019871777327138786688603924551317697091741612691303581210149539073228158141717393520447533282520209573280913975545638711994560812466516123930892061161736902082912807161064279858574484568792932338321315692177572362227999711915111803724090456123725244214980317358242510444436298875147666447801344805082685961746341713060591705333568936231506162637224333402265388902190336763104313767408153155470497969944752809503525546146562681937187212479747034245723890912365919936979474951030056810660036722097302912856683282959151636586286270187158659196080740668684916401821160006796339830850277049253155350847252588646328838185924839911024483452969354695346107033261636905535050643286663745307149625360821445283414082742499798915317162363296090502547807740827179084744227517498369178946617851873670504911413779080273353414150886854428686120676817764894717914786832224364380502949344255137108311121721077545280590175352244376722482989381938601058340704771965125352166652149798182424029266750388015269098345141095496056663128408837241318549368096561867214590067031369342441610952381319689646955061756762810743860649265900778426849805618863904456525184751102174546143148653101251743130719394769684982393123092958932266883385521449350338427911539867859141027097391387728583999874498838141712196870508456760027048077035819896642012470524268861478312408089534383080578454041351226154959447677618411399408682000596465629719197414038661123881579346334511746076059151455169291208205328301721145905591244856411107727738019926598115307928221725090210483700786201590686901473059877834042920659291765619621915581600427825910726418968714189002879560518930105531692863544833037037401816141415522522040123460384948665943439558534364852505911783360048386026098025212244245954603128458929062128800158180306523289898360465334048010100892707691882254297016531707430651965996723022497361696994403406355245286784948369460713012164339117684792861872084117631358210215604911902538784268404311101198389360090915892449730727608952720466233241422716544882761305924996269562715591897319167634873282654039626214519720929768843136840718640694927850520773238736290643107422064838567831692062280226896214188160460213922576097716804905255895047813734555842105229732204364291054913591415075876514411656673819072924394326471440147367653471874283062323325772241157826640744717266943073277661960997814570975255060576867418822850586669139098021793568473468197681494516044912163866797770165154628647154304425331865241181604808971914045576779943026707309990745886300470682620333199540515551119877245173492018281696761831118466178434590461214644108739122455862634845177020540191100895895699302489775004091637815985041761544241286807008186714411687599396984716990505144745234966001506315381163661534217472652485538208530097326921895867924636073448741295213784389258752605440038971220483815135321787375865570153930671187008239868405713437895380324046369850396642025800504791807515006851790542534055344476354176117087885093171596377580546640257936168848981796363849078268826613932129389807094955135102156268774303627916876604969703491733627721024505062346192295133224669252505317927075722854553993112435348965777464433130112729329246498993004328399194757035747940354897581991416193028671004603924492731217156253545969236574760764673007194009400122598963912633286677732251178332665306230498832660300127720163423134995345353071516040402095225554143205393292718576690939362027905326390910420357763748013154091721507424155234019992368871266690426016689684393285245571856304224360788855108594064021097056123227875279493127923021214850593959149222897566565091907897344653841448376086043813131884881175412438531119169536732785426540199336640307450972036569113961389891168158616931969639634384568458799205428110540853050571007238536384865431782082740703769479429695478965633061239624303263968437387653713524618571594118032498885040468912459547755309740906135581089117293452295852597578759015385232909302980551636897657799639203667651066191481962556712814170401672198033161172329812226150801569370680591267141269598966381527499448742789030502798195693253219795337291581438852436883495196976161935008723608954062750328699952535270809009917805007179411683887130072383660380676812694515746969447536494648345359827086263936255827665440204618932211996054277813490439641407931999494865137120061736227724007772633290884433243359255741055017322630759534768560830959046149057961535308319504344107854604764395269875423775503124702583482791131052316307329473904204338068953533768919595721264257583718103822418192381214324211425127929066916664100850834678765748940977283918116882870341752347015865181722734943870182484921098941376900165743216968398817220189418516090933902431606018557943003365967792072705837481497200249634495915636753560509164417816023203167096858035873606108143179459952158249546539072627046701201709433238581859499956100957424544882440528914715459209459962167597112432951641210247011184809864868198993758642649812119771393537741842719499611807996529125341189278679954413986974289329400869015233494208889600220623313632087326271121646762676358323072604261402987964476062854539262203129580731560812367878350455355342314812807918940003490259174816614176085808772432826549917679087365754641231532539054302469673560451790874879532190271047121293169816496942621292353191899641762046643980620462284978007508030642423396511791802981780369353035962274213798270193247647209997262363754318403981423280562500240795987811117065814247765938428694307784011442654518760300054425389536350452588826541066918161159068900400302309637040680953580346087272349067166004305994909760028742716879665367295112048881431181643091401708688943538201747748176920661177960650081222615818709741593546344522371878695905203998043035549908206370845532822941898153534561749711679232280901385030748785140961912095158572908178863820899223326995707426144599714611340915602548714757117171058924025864267136558701672720992091450659401007024557133411353890411891432612101442736393769596810899950932922919788959262223650858267700291068115365508192591557242237584644939475650739876783925247357216471192310331034330873400857146375743254776827014434536593783467485844279945386879612302178396778122468921467410062912020031599253729413657448118644945437255021963586249087496861907059042133910870415920378900741161133622108656908525767774546388110229629254616692432906921202527983866371845431031756457096017787155089533261688454770415626037240619871747099672779641349098291602209778388428341000567636774603973291217041436329964766698849844277705667881506222283194578646394565482504615265822165163286774203595139317544561969512120014159815467235015909406045397960932482047119034148847512986446592226127658770977907673649998009689550211618852663499277632943910497250525893390374538444007643971097434866546330208253883745429390822234949685860039162307596749045656003068134711560426738431923426888330373374169076342457800789211201107206017786331724311036734990693031410489582958757048841257168431455606850023596110586179284872004076640220074591724867322034249445211385677359856299651740529874920947985317313513982538909957046744764884925285886358796589248815149958216757990571006334332321725710814009506410851358248296639591616892196017642967467543666249530906523790221545226565170646760630625348892389600312814001971130781973906582601261838058071001587349341472383661407644254426041371975102753623734060668355018662595653809011959652215630885516206540948057151638599285647230793996257395713446591654516348332149091849340292403423752789715971615429568059717270623279267876198423969350738425020027954196964403975139225915286601335893174571892177203527374297023872504203393679287201966664112145501251193169219387705188331089367076362105865144913807618323359430040180509100881695193406268681968294350295312644430454727041640839543467914839220292425623303122847286983423823039710681189911996309980787802332701836287747694076183662775802791313374811675266129775943811019817638927591517186567619566615359320958429796275562600625637715009177309201520308230541536267075055816967620388341337096945521966384687919335755569674057293104219199362416123290749516968689056211891307144134311167688977680150296030923063577979253715579048376032592594594393606426446439482545320811803902194840917424476958565141404408936869222062667220978684924461595264357167243286508981228789918793581155394483611726436525063291225600736506832956794624393969597313127617865621916829725407552196246925073102137069189463593510466574832220813276759528649006516079773273412612195887322304222283518321687864703285619420050250145366155368144930487862062320491991071517214989164321006338277907740089587165668493142553986048191634393962514427066536502772631301477487154937561343640092210017152492221540699926786633765965258732799180098551192303996410686732265917346008282860431450730056590280254363373046245664807214721286778085125105838660189904238237158309402639984194799435915893160709813184527509867458983452421508213917656157188623368727874366806465200791799562611207728915988224034067809308803519940039797309680287258764389445793163909024359510424648260886157196992327391632298989401736457643215384603285336016628297214860746164794487585078090571698438339043389819283042154144383736595858963634248376168148509446543089971478355745670632243720237233091296889527136446596709722974732094497262858029967345842296125690182109778033783374025981697759733886114122011245760686734116925076279335567497625551355969546728682318436952210193061208073959465209539207960754950659724204281793903253922607853580906842205852110386620612243727459245163846459684737327416089298422668609865867789383665486511642386779506264160590930961878878255669598668089162162377534249038081788132931649430198234163344367788246980995463412652836223687672779881093466369713381337849570057583887106076800285417934014245459462142776829839260768382089600023560285206410173817837452663354122482520106467958166656970852209408608046169133849676372949150918345981409965739672109574569212491484161654003598927987610598308284319596756916080526065080615365223642663066143153838888849701563129597943189014203472442878078796361787918251932088344740652814550833817641574483534031032235546889351539203886384296006085962228600550989076201621739534963960957744925002249786080866400649809994124868175620408699082255468566412583745163677771323856831410112691574609139847818183819151848521594025791362784529027816201624195136666722919387634021286684648593393353680341055548332947676398084749485761715655830171044657052139464437170347508442754908984671530557693485589372094051628138968220177385660236452089734027375879326966864442646654874374127214646639287788828102361375638802232384384190722326215004259609070124392479514820830411210175995066483742208745013953511026744333514598290944166541650578559148615869878765598562543209033192019271340518836543680425860016721957338387565398698574191280416261773453557790391547920689803563328750724227534130117451239149844170621135098497330223478649185522907640647466573980076284413565106028548779130315731541398852675570820738470338574275776253637921655278982605828720279026342517110887268484525183787058936598607522950459573104866331824835624173298901187534585836751743966437569011577941280106200448932955054241667246952590529119795714698161954879927883027346525365226336310495779782491360586385509144465147305969685255805281293532925749043163970090846867434200831186033314764760887651847868563721089692782827620957881491781768963718023423035041398221942195628317054287519435395556473890436640965572751169381426886043895000619820354488225658326577743720210044564401951865491664060514449691586381412936652058135239537316235411032962334837163373083432139948484997304151541083134421076614395133437095837962250727784042750679190416127958453418714633003361573619935486030394004317238505459794083557476699038263072059004887331051097423149619321489388989841127757839683697409717808197747718614743922357685991205504759318009608695261554865390845999689520540001233166374621984991751008943050667880888329470379770005788039344889336156270842903447672541720062341320671115524254404499449802177215041196351642865503026333337990576853004965273745827669573934572579320588229910054731935017087242924010194862102537847019497189620237597678782688255615555618553358303150304329015593798181038565432269779138274374015116115208215487533727546015616595922587302713823189859813492157593112813877297425261167053511677931225652764314613845191985521547244474338862671062164071264289667194146137972783115863836781626119223599819807441630809282006563541846720917175838481495170572474367252036572115036823114350552192709028379353118061134203559081000633419880124488916835498029256500497124435732997440818062151414944705836217393417008845054739922301336917807485093417666887190434527335676043656464596976888083299499718630311661239471825733172898070208590508097349491102110826961667201542718750003757275648983818205111502290603130510288213812798462610192344424559654066336967841342339904868519126238189702500865274434751634316171304344852376926650558592763930879282158935099915363191787020576527770252937906521436379736844079804340464531445593057850795272949017838209235276857231710658458863329619836706037807148041679416189185161805436119465897772865893161361512927401316130892329222165211632725992631004224296064247534235162672667480038431758767170635265041558627851690876551743530972261158975907386234447541993877435505832806352487713718871906067866709565603061199054582555285747671010307534259156220927920235121775302257421054107222443558779018086577376079800765860122915693429010825359878695503417029449721890556162918137391580857502109548982533438427566248746306721161700536628972677280868490340079079569030122592290996256484850771513548410290329449888853754346897659669475910832054252226113744348577387244997676250517472873545733728823516036436609634948622597536702423308811420740798802174383908798204898287470377248858671395227739638619323781251948158102430140077641453249142241309870008038295815111294753551895985830123588003509415495294369196271995602058108579116644303162846040286305911249500023725794374268681818012253517797887529692033948566038857809240905926237651086752319397638459865676946395556274981474661212414758313513656399455189527724761016644012903310622748381591620575261799049851660968243235335337000053856451564512173314519946346799768745294444262036754271949622789146346641190622508913169483873057041687082520719259095651074156047387471092616261530539119397448680879393010667351742288479765123602873654654678117702068196873799520720649641225625359284675619950338495443343115332217673904399503251940214166489429167396048420054619482620717500611393044434668924066843955866702707462872862758667235503908507481270343940482445484297527316017736901518926759880827252750839071051788104694195831268937732319553851560316542208505614134401241641018282269811558342487590187618943822818734462392241974249042928910165376729078580942821275746436620051703466080292971161044238739966259472407431186097854799930772532704437309258359466992406243192936545229905343464666549296395216379430669528340246193066153405657440705989741210958940806521064164716561578542022670962472193565969012239025827488942065734282648900700595797463447026162606503038003063095729266144182026398711787601342356696475982589644406897884552474902945092073994133526881803100722064575459211245592641261146662018990121282591771333959587277874005741372763231224125487461170246295526770538857660563295370547872175690063177956374555743639315979066261222698373485655243017521392889557418014351209910446107038040456023275169185995619939446715700333891763054195184698335783920261479210502817316041361911442844284939711536309553310908437641597585060817549906701252164003968038648903731045746125342426702733872790082393760190295995846414485687816277991092871302673252885528752486259862045903989757095857762634908731464221088021528551958536603394909663147477500243231123769268978914588551463190149621119645353761494791233963874958690671674896356016923365643757148733340809974559543204936796836082210308741306942584159231166458841617139293427901153938308905116964926323991806862177118755070234109325875037645988473027800317299184706574473301115253839452399568926244348800550795440178193365465588026084370690329523131021288779661511678140679791513579399474120746658213868776222285813581180715173132063715796583069648877369879420093665846329019487161495263297889515387183203279020248135840693408960694545407276664311274397291031259263376456094007601519800011523630793518961118951735263571483667679741590979473276043526701866456549525388048173159735752362135064414793506715841708039105563120517033726100882551155224927747979338388512308216550893058390266133968673045070336534831334553922159551344060641758432096940822352090963357011660827731350321920216389285540845996006695017890165070166425416927239671342448840710127344558220361741832017530287354527959735257557894680200450570698425646713235327420480865028698049142890762775986451286984710873938631429741773340504230060732144542327698062943299244785088157785953052169192888369290537920825314808054081396504980750949981498012557790077292502472882405167186305373614327554984082094056169799017222872991875447369619796793122017881742335342631821416208056554037390818682936338079981368251553394098908750229712845152583252987815501164926460890973091709181825982289785422077105847382384774897980195943030606192395092786693862124478913472616442923602086146608196870227330776066736699265693804459984047243541334882065183312203130666402832941757816641605323176682011971651988958758700232171905888943586374073715547809738532012745774949631634172148692091825328340812690487561721198472502513224085877716864604155465625546454091979522417133302901674759271487438746038096760744132052484874572285606147063300926084552001993286576360194209529464427979853155406805193270282942461728693088991947504164921623593904483338873206213669264179783785313281662464606484521297701645887066614963502736984085436096779074323037285344390306272461702085586607226501751224603322058581221092404760320055547745523343058738612998257308539563239247991814063381860678293295168953416164617607179793641094270608287054592924094647621195537351078532747583117817122276570135583872543296122578634773977346965679344335371957360391772896047694725811993466113406856887679631686370635667381449886461033387555734613767205743691271037959939710508301294677952241664990104021466424300849048947349245278853420161885248271313005299944140225222523318317083855524433523781885342964410607065396875163786636780808436432842379202599868612019733457350687331248967779571893135253987025169175468383503691661618836334322476010955203464703059868257832611647287433186979810279174712241470148692250091374303002846430236036091212113348399165915000787640028499159185461541084269849839583363749307464900898500309985634603066224085873726270908950613201501894066879891898417893909296593269257243646792669938136838141248005418011648977489333007561536112479161231816185446502451011309119014054136380380036553493450279031475960489121928595940307790567151549334957229749823337934907683755714327308318381885712181892241407648123509825081070975077792462098917850250145696703502212646700073662433777018383565466624158104575523678599893502812572266735731335892259821066451102085029998434615763378504985824141654170872646947162487440832457167781309486846640206321762792552775085272439245614835256454983952797258431148106136280821482404838880153824997064258275860170326450346282104099011240703878769232703331710166219164543306369207461528348703517061381862011564408882877819413421644010366144231829909085556791709743871915220805967780435705329802118932801318000120836973907160455058850316857234498379963594298837849791231842503428530428186227595176210953910649740507094511604778031810304871543142156361448756243012682667969300479415458857620449916423946776416059545802722653068183834392149017180487056602812932169726996775095924237734042696477871962160244962861237572131465730735828394389444862774078137539165007776356802082496504662780702614248070523637460389246554528224827662626248244438629548636471676384992288132435831318310243267071745313879831370689924674286848970103217827216051681695821192441402884999359638091813357324978944108354700959329821253785644603461940497745825567000144240866899334366043842550107962364755331644935828092002401751985776407839443024996072175921040532915123644153027715366027036408470529223959104353468332569141756018930017462605665544162813012814897791718010341715675518993456240053248608584938632615904318114172751884053220764841963108309452243701324197948902825266568718392408016140958939387897806848960117762976169145608858826070537319192146934229114950087714882840244327721247455751460661345576113863645562306326625948592422081580060754986160414666472989034107729193039459038475999712103163247503984679354598389177819861782592627228370770586566407608829743301225005214186374772677371949922622359568381827683951448464215018662508725443206312369902876112684917208468038538242111334464773933726220446838325144826981083641415105775183997499449261104513943338469350026286094274751084724660719478899547541090590213399957644050924606154592769825434986420687567033860095685516488797396399098993209595018258820421085474719022842870017274856518307909756769770734178244118299585582906115118839923588827039420841278054875705726817997537441450373882039154358024482142923073660141240026725295986464698547570229781136719857444722200097855235563746607968122938881805758564791111506901076899524898429781774925460877215837979579228480149024659395611648095262985500352806986366283259058996423635739546792130387432601313514284788081648093575211369754777033579736740756979526656830128367253064883169254367977566941467093676722926332226920524770139119484000101328890490406691018629939058165055796616535446264187465711940058519037713893052127552031742279929562568752088679008435477723967400933279750818152638737415539487840675630679543638797043598025274933389369833290259161492278916985717945832445985729094397379794832148561671493650690421469308465089832261480179717978201699569833236361166324308426319815088181873539372024306915127650035779477046611480377410640938650503620190164731295510618606779297952621594261087540456460629666001906808682502292655111062733106581066277186730391439864045067938548442237920827360408460507831867233320292317739637637936466560784349653786868800007595724478640405248319640198601088722318778487404319407775850605567571763903969349345132558837093610499503827398744447606817548419072684665177124822134751989942682071599340633604549165554349604110685401235456559250917569375802287691432069681536776443066991163587341022338626793948127140684676996292544154871082159455416399287850379481598494062228214513505269573903216094608741097362835597424700055804172405600853240908772107581806497457216320412773648793730522400890086402650768428135234198300459269715167048821796147092724680453783696389837597807224295673206755210866788267169186427486406434885484918849703756970120691640284688161149890631983296684640994596328636424619625697067704167827460660453834358986306943331997382647135592722054713942215177669451865414530562116481200067058777365964267441975126131481712910297882496408393455724325087418989761457048463898729438225100850372441172704515543947373821195580055359860078821042754384430445530586118594082119338905442633383969924123512332267292901999825804706550464459956715800924695399170526659831613489921081658841135515800833923591773811424214093499510095034602794609373518743057152889001491944153674975800799724562192297599389952931985978935850339935065126316399324953405458713019982056281384785794911405277079924107979340038371791352508651345315756291927043718239110076741569933858477441197683960990807498118052401890083184610066382567120460250790803392307041726826104362633393205256341438972900942959440189968766166508472889639923762649229197171887496490431756000479824769073676081652198356796880625170720690837650652826092761290245170293606293279581994604986576937801989707696709094402631911611865366361772735481309629082351059406664117668354997554882348332042597131968999497834667948234602670958946517209329727556211674795011692046153859796101350340383707001440657636932683771312466619618272143628956315818378153557811542594617299968099720379288952255437905150876992876211875405418365594367133030704236624962705382344996335746207612647149002870131951458295086576422375348466556667102461071391170084703492120967394080117688111663302862847674996639643925791507939918571956411792625370519960092075623758919662431578694533502576042485955157281204809363099061616276340254352236774235711050577874950312722934065117843891094204777198239161656319481276136531716655487639205236070343862248024440218461781012499681524400541863635164008206434517269048056843532851941144169049345690459892560277772751213136026058660997651918062404884617877590735891791669234093690571417190060343311964451963429444902121705994979325011458082560417323653320079978015425129073640115498044565988226226479187526635268267511478019498672080897111698546714111865217371194607317483937828953191247363582825837948282547115219942938968048040484110500441487749902554406164052151370617739725325611548154983743132200193724795254749302404334043209707471913300795992012936938415940985142084532685335070989202189058559710546331790461097080813680566038428412237917337181199089308710924652742586779105271114645425324324207321836032688219476697442788334647251860820566057751476828347395909070641984768436143814714859205758702266251376035846455965752965712896087479486248789576093273264163989078261461469458380766748119697913100745960454143271547466250819470507537168293947645934523644048301739391651178088424777678367420591673083199639155119041318590166584111466607071719183287938313454604052965820349417222860873992266646602172753791770670275882350896769581526474984935587765974969704315345390888046653924128156675678705174644690093516970819993424515203939063254443110270354012756626877822797962580918432066444559095211517852472428575815850584608332250035588752352601328252447813185659398057412649304018613514711425220916634469185934379313300527438795212690879924755482048155292117343223398506999005180321669761507724813325152682625890678436796031580577680224405871788037527867023375938871104063966459505465103554271291636191915556380518012525170040712657850302816918498182531790030089602386002202148006831082205524361232164514338660838792249965205830339588576805546140296430092998246527513706409926328049474176305939395467269545048297685151395663080207367933816517253234254722321532903393197890849450883974668206476518093066715569944905087319246477650224112451159029990253660340142016514339216646658687793745496987766980049659020364575244572239618901250628014916413786328700843410055302539074408460624353606678492968864372078085430923824024995157765309324033283825899628605952995860397816256227061474198838605228774439466300412550971155204858604152110900736136181182777758251315012884980504577823780866207550406866974562209158549621283866290193483544637139037769972281093721800121692054069285603465571350307295326570488646970217745031990118618315692942074616754360694010576168844611245948177755193689183983534153954655838926096262101657213343611827561699542963114024516216995645530956552171333281488113821712732979767097227443650371174444957542828334361176149422667937607052950086098317310655718907854293860788477569530485647062704869748245949867065764717823457337969707057053445227928724360294582686886611500845843979467842867081769599222701253604921123536102356585506582353175568997409388290961657587193577405960124726762213695255231973818454205070070849992146740212618979285995379075529582914118889246144167652067744034214413902898073446851687250528059756100724894744856567619156894587115044817610564413201721974473971582946502200113409503922446192866890965960310900884243029752905563808455837171907503652060336934969370235149158427554807957817725255947407241490148246536746147695166846843593768353188239104791605878791886396262637112511724805238147400242603560985567615087871061497014521029059807896041582294762945070309485386319617143311653838218768336039913963521701615676931493030070815333945307167310851255249673812840700080620180312122659094570147852192122417744059427493401418218543603089824070172291468240073301925224421246959355304800382426578013145161825380351298691681560398249374821764222305978516923307522881400045235504094487768074141763708726307758372455443305912298320851421070800365455682814688218638872913046437021091577073887969310442477991210176864238430163772714901734794645449494082745839148109690591422848960590038810426016104494009990442148264609675734202847310193016803474788988905000632639698699548264666940513326253402860467438218259013634180378380181124776443929528262767139992876193715227719157600869521153079950712941358147887270004213710110353085655662268254804084273199714360310025019460576008546752306693351918700127513485465348200205645269361804254516230777035435216268287641929744098610990087947524894256528439900490501023433683028710611752934470969984353050524951556112687628957773899741677545727001403520905998351181518277889268514656748738259678142087043061984704422824490309904477472899892452411552582966840529333349929243381099222975648092565282331886485599036560153227657318398009145483433428020160730315331572512705864646330600320531818770123655000740622747015162106968767991630821215324979291610571231054495193969904076279482339820617015494457564271424198256548927162552048616460125883703209900786407679201912529963586299219592246468659891157806235689541534826180178535854671495861179477468093683533786476494732479670342044801811426434683803743014456950036238765112463295046089646665174042280057668105985535722717796934806314991005136301901780359893556395603531600411112787751822759048952300337589425582904065491998958303719116710855751681388176039467399937833215315474523914536956595350240100979922406180343516873197906032344360445293211742354607569179900872763530454293854565953111131939495099168089176794122724660590502172313483225434771345293024114734924172638605693809005402596074182978873993666524411668271564328941508437708489014756842405154678797309465552221069407746527366909901984021958930929130414893136414276026176573611500569131072053614366051586327289429428052739513833008509225002188412528493495236377130091445493706161663073984219744604298949614402025842459527855062178359116039769989536534630783735630766061469595631436439183064735843742394273806132243457542732044827736019556163001082548246635103734381374775415989549487950977688550709962165558141775080879607596087118692127085419959886860015715545914227348468153361564697604832184635915501042213619059089952851184042002221653906243921525601872932179715379446874150957404480006289480004813741339670702621625347034039325125877600643337376102411222985212858618184268501739732721702059366989709116233204045765653718852973876908492772316239943753117978226828414908477419418361120751461331437643324893102542612578309251535924900697607980614845571522049746624759090202160014559836542738278895702006629713469764288023425898047809525118248147440886675911984498841325024003349183103040586109735419690379267735215302055017337479210927587822292835647408847437897021512516228397255049765483895417524201468447721554411235230752821925856634464418169682384870558615113588982241104730459040649202852507546794731755896043155273633538146731499484067068504420690891229836689409305020346424578314932713830847296437128888686692817042937375124741087907724008200351807571788723742665333643542423699180088303282881936667277621044741375166134308040607988572672756558446211212589737995618259881960140941539960693384917655382003538110553156719988986277525798436901841766894405999789892975866959984480374061889416816159901357135030948915002473978926703187529429981177498895058918178421793536051486116851177910504302207481564909672443265096757558752702350244898379828562260846832759043798706494395130680177684180519556417000364767843941041322856661007821642613511231504024948592530870748918036344438623366394261102197941898036505112927667975550641567061236688294558565613126987787170705448955362041668715866915169066626168723099151537468551263726186021156420279308384716683514543330246019722753643781382243352564306585829048360653624252232350013322440281524634271738979958902699074645468246488912301362555016219858275173674717506447774144686644220535791048460072201261070103751244700301979005856937025938169146514495747624097313216142757465265977252712768158447093540948056466844094813771402727291298628793412013554931303584181228037592551781516175759494634445616583480930743964543517036004304726918380901151509942758172083121781078065031777144365500284168648621669764669146621764574904637822568281603562666846711804407087863774467435359865635795833921313916625270467295047110297934369625175915413462226512562294356386169434926717878163819153419093160890729197490537555916933067248900036168847894034173620225394646198485526812323568475934060178585764860115246360433309434677543661368540347712004791277281769353675651051971902831427960528249755125054445148872373922724607982244906458698116624821190061015969084736137403278218998931233408634422581420271614800764760110110098108683413302365503645205428669891808759663269581582029290709086368107516461292703802735986407380272814822882871437380203833967445629442395298959178647686817122772432269802963701968736897128324755839067988231556767618785943900554308242801314791715546332573034140189349551564756237942951230120833332083814499846291564120263361465136519309129155714585562421837361590118169104321816231636690560660850075323032388728169059172888886699285163531592766039713931750568671084945706182521326339257633067918797025080472016313412178403304764891072525015480507579246751882400599579391460138622773743686084505503046765519386834860431230052523437125013359112415366569335120038829659245234095038871928272999856007144275980444299898537900744537710508673819840758098580847167503470726467190257042870789502003563107387406692669509285744899609400652184134749355462603488846726292814330759532319714129964039735620666056282061309634971446823666096456793409001097464166770094149328607571529584621387290628918706775231594877419268369119951613841765989921587317007143366690958698786330050549293512189220475211485107722220540355729038578310240464904072274669219403237312056812310586289488406368982539955459729044438855321113446487958544094331117993416551248402194697449483853542899875793693604686085500599793611333499247063219794474682234762895642713108720432178126430889234033087477028024329013244430189917808708470859101989263035226318028852900543168069862918889837908504783399186958464830557766174593191774039262951446827157908785623251387700268861664261079948688625179327368157759036754632957291603534183471151125338547691025025609242846197558508898937051900559076421440269993957283790870899322087158125149833497786642632634323308806068985843260257224481408760099645748775140417756982606010630387489754198992723056347306484923264862533433376358127888822471050992799557423618044188549977270788248461874845411551406049554799716562047050925041188540261594974638435094619855355395271846001310329075742952996609514777395401276294970972521880534050701885073215089957335604046353562804447810285234544156368298861931519858828435017127858926819365584986368371617720692825672872182504090740558268297461575891288922537291061544671065410659502660481808705959631229300666069492549962881093527390542199950845138222642941444889883079667139009886547500882059604010273308982787083334559695678179203846998033855069864290889434517964256354259796139386577228004365716579204123931357275835043892317387424280415314474154018315366896335973363767460240040316569286280529772624849801750637837561390287392853980231054246704011370705849016703373419032040424349873426342573974328997253763977575316934112547220704727446828691794670454805155308944238837629608328528415801108526345825816317023397871769682142086346014157201874484265687902263433294539763093794521585519071748377946985729356238955783677480742120189132857591410720428941563303060607767354912779647764604346630424487455019819373599673138068258175135496592879269759532389393642343156019034513325394901802925483762386278793145149473131976293561857617678003949802481295840255805823200894417638927375667653306731237885921484370471880753918363259825989983587020794222584873905032434655863930984699123631248234636083792066967379313239646887875184042251146449398535883751595555194976162997363418297838218216461431972830394657202474952649824467162267619247401570367109156305052234420998516678619753409276133290671427959728487383965934402712700383818941159879068541014051603719947562006298117672818647956701200590466401743737913884807198357764423010722175431188824880139746728288563897284889513996370884879846945987429643324580842439325274810564892649251657871151138760996943025479663311878381143879832524319618369743388352287360622242715135885106455871808296605428418479081896500595508751004080167316696224579655904169568131096457351095941687591432619318520618722499969838853008206377234073246881003685302438979022308027470659740365453573359621268099488782908423188891057923205666961681213050225296636570445441192990341310928437440761361974339229755697327128526071969487521721327747277533660512510724131611309397374977736367435889723635958917903214623995024936694612991524391549690487282658175984647457711686143085539877299754959068383422960969477988542578832816411745091333586177770184449748065138558460711443057741969065712486875424833652773223431827692198584532778440087677682418580959018907392262876442441455210720855520543790230102105320999066484617047906632621874079860047710183678216274298494441460560500005397079656260290758662045641218174934261553698947248649994804677603638682455857599467391078995398201689418213781256265375262015783298966445609792267556019561588355559791572996526976502319479427984049212871690330608030468871809209589561723446713865127488161459721355730984743275087793331932301301283763295323395029705375623393140364994764192001365568770093924923732291759292416849672265779976870469065696125624048286003831564198569685594541230052542027031553693007255718081882822305684108634480834505053499760531032704186614099123830459421656927374291925379743389499320428590258388173575598841532461090492058750680184854397362570293996394349905573010456890484968170089118024427410472664102573416363100135544603594354018823966430307007861181869340309060165247234274387956768473764815859696133368104926724478854171057692383193893834658521439565671947656395072952807871827934496025716899511724341355221094541372277607489563531112739259858866195933001093313349676570309046011437459970809338426935006149345851893551482675940364966804816474443336713729821485154024159715534612301267579929051098934324926702830398827284079707324363909635367912258811968910910437235301255219446902001372343500408348160649132555024594328112475264121357635227217333162247939957094624900770409324103322225476394538503747216910917761565885166511692735123562423507043178798122648869224764304201303956654850522978488536786680643346392994293855479830716234616376120420425864379513347496859962391425228674657467509601469280298734312702447335880969725115903601655479871913290824461691947027027601517309734656485876978827415170146052629903258878476465354114175150487486866448252557466278677787059913575317037272271303052956455346175747919647853958303926896429685335308305522238841270359284108474197325636851777975615760986450311227885022599033204530204047515600923690924901580696472798683664016322096625324114093931164586301050595213027655324492390079291357519882853124402362035448118171674262315968825698903726340770128113853593815013054889859070984480850642239668381800208715420333516095634043299444594150083208561261725490541099509620522832879323658983148195977825425827499429818943927699861419265675188414760239796874161314177317593651574441817622097495744233057918631820951957616380829630970914797765662070530640954033736980109360500758769973906120963233604615602497619058423141031769591590172470154548421341794034180312072777510557654788380149012590261211764529828120623570057169078042183232367431513678650512506017426333478748816834134818508724335814581692732280801456144450510252061716839352914953970292891990597118215301920280255072308791988231494173168035979878305275576488635828182161080109361825906063830705013690884602844751286137334460585080197589458812810597684766866587743471104443712489231548376143051275846883336484746717275502516794638704473476664210162831583682457587613338834801088771487193064083276561952476273635992136518209404341937548299909934376487138595854348614358454417440218998014958170132734149083069830029977276414817291957541441243320913385132399910897090639213194103285365293572107407483737871902040932703920994949833515793168777680595751444052799392300890640290160541692775423102191133992148432386376327448255919050811100196818926288098026055974260837233154466019150695194296703988375272358205114276680582517494438704157272992659678582872390895431002450011553162009173533381413469099955387495574350565376625618949061619645415543311404830356227178198448179528027144848797368353487638809819243238145925879576356264532446182654765234458582438450119101394282141122591468304323474785391944637603909388525815797722256661435941212134394534360021974943548167932027225660202985275137613862990092657893851436986731620502909860964741257890309707893106355278194389104202639671102987957638913544268372050702848847230923196436172817366093108436560729059395937996438935251531190898969723404926260401454245501955099331103188166156772402760333676964901748834315826382489520902665591088147499765434894332282779368789411276667276849855505807004788004652814960138213755791418265475651491809266965157676140882072312892900347272005350920595910912173404463376352775707358708265078633084072530946956985084122611811147254330368915776603527701409580096269804149807368304716714012319564661292472538390549422710986053792101753018613853333802444497132704433710465008514617349665533256623936255403996221383254036889543134481223667702867701757845630689252378054844182544931138076771560507701886312783347575386658006999132927872675213786206391908892269778494741023921323964365179583247787608382249602095695202504631801427464490523748856516890655653939333542366333744646891089169490955342449780752385250105023711188444019970043731968107589936564069739910589107487742429867814341911314020507789834055630341702645059730782770382740187679300305121009714833689704752066505946423222018675178364522930616564347177428576383910585555623176361773069740651256177388443531719477109000071372103289950245452400833734304804263971529312129444612347439611882121236135926034360765263434141410057700202466328059360799322253728031239042322793478673158240355783188466706644412373504954964084325500273708117047156569114991305594486219985036113104771485963889590592128297096434875775254132038693575985367476158047885059278182348171624933524008389036959514818287768076049590575712171578853786845966497859382108451653241025101735269828540537964906840185460732656855480187781138890131105467593967210068144947735583354281454014214338371984455210381991185346462876946580271083445085502397023826552728245268793381920874075985694981794801939101309104070322679169890140845194723094105146259901216848611838175693833692175817738983823949538305522728993751834100432436023845996946708798751044371394500425220226521299016761315772642253645843258701499184677119161226548226076666970967433383412540620397511834937908500587612811279168104250322935161769053380248915161591611191336767107896152983123446161850816807060797063928228157597803245796502451787662247589358148614714217383501940907672923762294328730973422132585566583317418622571844970055994143747739566512141890674766155664860300636720998504225431006431112950978910720907805362704730875550341762672040228816693242811197234149619370700447514966798807094070701810473186695884070749003539079837033206650214733474358244877588870110103391143559656299854300824396227853197375861681150078741793380754035358341234359046317535762856939506027523273821594404314892541797059336245313625163553739988291948686054109171695243020192698318184806173808850061096431400862685088997669811875302916651568213012794401655355242229960679778236082673108826778167291357253420538053511178573262828254226902989539212385602052959954780192448974806555889942748213470557251188485852863436474886835876102707393793898620846239310444341769576923704142950950074617339948469047630897156415302242531580174509249033006034726633627654532484524959753506488017318468130784401783198247028482951093086801644718089668848110723215928611711441056908440179152235805412361107132827752977279473177048627165875647584256017812444163685427267372905301468513538862779104395951954209445549303323536661456109109811720095511278897365001952351266229574019340095500486360084167625221656021557168673474767408200943858186499333464280493171945408780398668305701884162114335917761605247517878238102943875645794891803748214634011660607510919568859677490567203645135658741808343159684874553701434081670711725763116974450317239432173349805513791374479784461917042320263758487564546885659097247229803918266925685078824470804887514264825038165449778208932741762309746866117641404819094395155772422026961266029440997958071545818102001363544882813423251416965206011675248626199798619491044632546528992832487821026701265295480747741136353841868877196381932294358765520749706531405711146031291036769146758184046058661732602827613651765919231020141565664088274270017209839991555669187633953704457434769564799599996251131698053159705752771231487682515667362215512622437601251765029878788987039038804217808666685762605422067821891063122451448832720455278276224680399240087630608904462152378247628775023453840246674084844481968290077029184397423382394552271575108121260864302971703658346292696321500513492776292943520988608809465965221558616989413528192245865830364078928071586890103799691792352292354415341659171123963895110242382891752855872805044566088827224774289591748097961829848573870203893331612699590025430041210009611681310258981565950798390636208648288351451124883977604574154907842258269963738672938598712123735482358635104464458188292053525963323993411859050651328728375211463193014682721876713139146832668869866388893960213270488369336599213490431135088079993098179682610310638078752604140218172977924067137267396925893559392963767858837776016546622185532445581811808547913293784014994488228078403449815934581060904405005164643590764177299885605695156396868064101292088538198882479862267547732605117184063731416061960409002105723111634767569575418478505584541640512870755555740579777285789850584920534018837143403299854749160059816626217847931709667158450276299179168245568899643529164763860988783538148861975082107882913406701794156473731509858554498213764181215774725545575445256308581031831835511963926848827616977673423199068043881404732352730642446862602045061060700702246011627804934286500935138042096637333775080693497420190136768425827902630419430101873306976402899850844951771979807368677572224167462065452697966315981980345375488730736762773076480725110681714893826494784847820178301004058380999990738362340480700503531425904804461907472766857645879667917588920844419640360502880219690868722742153453133153257940591845492014176962538320705712315483378487271948772849951390139617864466816699137813697280421117291851766070660048593186548479854434444654324211640613981211815962603098952248087470408798810556874677931450109880558646862876988011840993031041603562179546808365246829250366854252483737797062558016098541556565866321908188191730548262213046307846450274867992964604070048256967793026667659061590426595043370355759260988725797282401934992979689604202476405834678295860575341794993224036470946897486461062219432828822703333226150226851623191106962030223452522413370007692585219573775716785168233795523841119865101871297546834282382300267742035708383145934104855170968188784130238995977772224318833728225208733264142281269008573430454143972290255750486049127100202287322268322747751003473378831669618532311550469311500259574568768464825132049067240576186827799026901717442520553583219364984590759239864027400994894038381849743749705738716402690863957121642607659146949137640795796895030057821721053638489389824209329446662441671743329627140886218997269331480990926880697115784137865739645768576798352020457137344170199716107778322216640781314077151353327554133187905910399643811911488117094528653929958668173749070309270229273298664042206709425686501014545860182357410288273294402374621240840043317795632190124389251348264252703715821609194817887719685911296218059347915028909935642632912984473647931347311789153797736902524388352215923198146275600136891882000749089111894725150960223603294726910863386584738076361178144672696000807290868176492568361148815174305236905128290669941459370951328478450354126210982323048604975171007357794100348220531257233942284593735481306754549729875610551562874115501671044900891295763618421319364670944812156984338106471564272170726053480326849857023207334110809161241669407911010240171132897718002123509403414327589029786995090355631406102767318231274043641340281969505220129930582546594436572087980045150081838893294233420185273630820044222234205241659577907166713583825096552418793967604257202400173843027593160277235479786533291560091619857664176566209949381842266690300531596915237498993320100740698267167606799367756596036950088004049477981683864406440689116688199646951903282985622291251798145126661863907865820348747190415743092949064213888676085066717290963775901719534064776839186447230424108987546948419443907669452029832196315326375993424056946264549586728904649220290271659064820733893893354321495237638216601559091147208100127478565662283960838358049829623604747727390609787082616898450107030043196494454254455802465881095414570705448012856834570766250317915585536319538820768791127993563271414030385096447400586278049883930587895968061216549611104996555353681554634070182999041233406387652471108721225941877131900184869497777059640506435316941430829381737320248142900322537845426966738458778113788565126391038446910024295644828797436663685367277282236115448617423614368571106081930318684822828251370453491612801669202637144501506598605102052940476378356650393516717425586420639581069837370190546285618824134522270381963674854682652871885564765515238470894221833359645700144975814249826379856682361025932093219041922294523708037352657317311595334683027859885881111816887806415692351055083818133725876697441990711156862217977448429133129965531745811847841436573009553238739199909718017686616079285550436259436783191261566014822072568552917835448016581967111426502997985731375799411063409956163084913403104930234351421459199621422339673080801947348560703896806132122815134475142500746766970147034258915001074230588532225141236385107909814844534527412284122943812884736355822137126002276257211156701221213616940792954942164778823422685601674387091503737849907421108249832955164992178444455799296509500802090411596555500993851654707625210428591073639154567927563461620629441613546565656631404260326619135085781508902812539613192915629935790068211902839802677234160982376833161251848426988494510038214904912231310497631543756655567516644136870185356653534276327143505452827597743034021040298713121323694556943401870690839437992815461692639955498245987617755168338723881238891889265080249616875941485126606834420020658706920443949442265003159046383303800943151121771707483012379157932673114012647267116362801379714544188813424831550977994932298114918300591219241776718582507547858015876937969608508589411822742930080340894865678560080460850204969995565578207336861121563757117725764671681801274923256151127411319567075722254946581297937106886303228436751976939440966488570524958475207466809633329981380934231118408680884916466241766299009969065482455956580634483272079845903841037992371513127202125492108176792952815187126454270706568867189804830386739176929022929113444402636395805440397151011490159114585992360585461499095800337531716606638636580768300907107758159290194287154289303735874599528393583863782546322529553640128476413504361526033374153721415315999278306955520081077812513394502449122860184903816501505097785262556333256101967525024271208493702340633078671759858101458536117441361298426120351979738673454890193835389814289039714997928811908349911159906919272359579251454576678533401618939313701612503639548029843529636202149209308920037717831864583984967703738836512590350099245982274559137677745817113931073505793605399591645834196325598829020457822494449628443730200302392409920542224776945846010110649908748067387391192244697450400416856318397860334119281607402482779286980529267066156911465005565104696436083711984600043675072269586756832131538525523429023553664697016891575830433694100309566308365579491091038417284859547156126336165035065649964843357013159104376441042495635054160649102978293827762514827750952132603511527175983084662441804250030620902774301516687075649556180764993986062360384317073116468457765140720704893133891911777766559140314091954793202717222758634897201361124515102081078963262277376356446792501078197047988917289790807026558484511353905144979435253039800620571941629734245720032777327344797069116333616221520563222369837475724386053323710079176953719279716693596928648477240394534922847610269486284414375225692022309164777244251730656388440910168524419332097407334744065578674638274972949809560961484331186276915985786218745909994930019648432125606424622749614327581695073485484831293946376856957164866378691577786711857736001896951393864534209780571779590308410733513625747306334667297825191436931277803153226197679432841729110612374029240492395317452890020464817820748468339949811271051052063384420653717449154597261250675225661300987475226413682672597686369079349090761925354597849226103339042542104142383057699445797670584190623075302746081216290796357673921646028387288801495037432597157628834410487317784758339935549613262929734619818833048025481565273134970585552204900783156365251275683898748665153904739464983586037801190831378045686048531950476247996587159178797810619778426695068977628279508342627018810440633599018081730663912972344080124501643840929214974679684682739149658897228757681102001527829534205212264805273282783637332028955842192786952341875782047516615282143887485897563191004998494718767051985463873768550347218710362855387104636295592087011070007617976350262946895588113890355615133285824406369920398566329555040661110422978897311665382471074136006302148283936676281536587801454268497203988290026324700719655129887818218641824032192130206557830755800956297407643799189567682209997914172791367759408170511900877083423727423495326178055271641041702732328046099870297544267219274740230933601247683247138435632030021913145254935729151587406939406336904068076746649917456622865165182570178299680186791361028162697120234461209724560397245561507282641459944090637163243484615412967035218276775203618862263559303013438662504289932908820767996005197007587754692983457851427726022150564025245353754668231406380013222569661092762580609799866594767454748646162707752189838708511211547365065054724462872639457969490515496646718519445596330247998942866598958080733874521271444032973292039655437090151342565688304157260084931675447210515458054184519941576366699768321823844295846961341164500064202762700862556466927745957749453809752687310160157921759027860007289022926647798013107211103582648525052614076600119970730227580687942136286168607038291641154038605195155680970775561722007553240152137338802186593742111212658345402621543845140146492681881153676917609811022821768622505808944584390305614757872324588620852821767998205590589148547114282306322555126116321713509294339219115293938273189622747579210818760838974698559608225213234093854989777250833534882124844236588103195591835611084673882976529027338412724974662233190005239398339021708903302112067742873226692823497236153214557993039244538763775707430735879004825687662387275363460621818794465489131036555554337402126726258324369983241786731300259179017735399198231456995066734246970802522333114871476049488122334735085091769639141802168288530878741363010081988466518646933117066451485432032017382257433511879711656830684916732881753252929488713516609951351660443308126006001347865459140402410014827240678692383485999425302076693678119619403189265916355208120288654665548901602055423723851566957435146311453821807696673770977334131204281312617123262631560435199962660668726026372299433368704583463390236731347580299591714249031873501701639615370493147142232722131634854494224081225373914518937150970361760586906468736991064374864858593493424232013925163251524635295237906976321422835783975649194711725110123470297960140630827886122908297520908733870510302961393117300798476552782227516544665110296681740549199303524414419803799239879647411414532848744283184602193435098097329509523650256917761890953876934906640201111561584130081049711084344588284226753116878699690865591789817414330419722492629424858255900593388631889382535589923957081200537288986674141133255712853054395274801315742316860591521291264066474385010934009107019987408894258114768488928563467324849576273606448047723048839124078341177283555911784739455056083873707544317896193885075667820817638706597751057617258723370452945305449852862376170056781681510176897619091581895489391793444077376626838387967870911971952406047109504643519240644879907679390664528845521445393936269483560597835806063664498672358739019437116398993828397520287707784606153014097489154231224633759450848879203388135598363999732282855501540426298031662196272137016026724512730727940712013490168644668702012935444620400273577052988584704223693444594140576805970038706564193416676565539499310711758657240446327751538922822222531134388554523960955392763525158716507115922774452510702328708106972749409525852294352338392448454598584562332923211507988554529170360623080770975188040488283657873865185960521570267161997565361993502416897105564367322174161967765098119121968116269043117231265592696298538533426287267801249598787982156001945599973923214165560475809760452662632309068133307625067144491210072704672204257324593368890213850574253024464939751857228554311545107888000062568791117369094288146830402844889172347277619546277978946314526009341112747957846418408841025096300224396397272369872889773677015696869808425436827281265659626478617556309041079832533484287635298487285881516395367534506830093227494689099476591725529890476195299012492393850681983851400487164532829611852248298225515201729938330357018852399532548686589060005647622177794198245250298877400910279392032612643352212543217752927965954329589887199062490171589485394577431763713797123715044339844789712266183792001519503506378482941167809471900090747206667968518733813883508515544923328038952752413216843866113111323636966986560691886189114981035942792941811784496361051806496245588946598142875292401434650589404732712515088295348868252589472327300470003864011017134442878811014168631313112041941153600230380038664233398119635702083957937430829719690907167172511839126165712964829492672837791177212194653519463968472357746798762374596554301522086492509278324056384080364256518512901780167245682953790908725643822957923072734109727951561132081370344876527531925366563769192446162472705654452438565014369887560843260662703248560170470604405650108808658230315888681530881399014643759689286047226124446752343306390136831935486556191753718262988859016371452331555113823972893558078899437596382162793462516346730593856190737696801536826288949192770380639620377753970558679081384038553074931342583838973655091921245066805385271993230032922330155212617771839808398775560774713126494443747196358155541162066622410937641261503859024733316281511712220026692910464104844638367276227254833095647628098551560146283578403605097055714741101542611077113951721602143250176775857720293104547757987213159396423251960403882155561632965260539647860158488952167243518521272498770574312284200148536435363609790935742952728790849603018866324285340821442782410069085531522573105256282771544660072408961152006311350547699499951711895211614583270405134530306851104977106363134269504046380829547171350767370303768305131964655838818620272106836911519568994206548408112293951253444544407996955308666650530327280060177634683359603640272140897504351893558287892916093144773642658495078556134324543032399416454082796682340327758849868975806471276435572251370984815840884263831449857672776762483268348048280844586379226972995834076586397534208432417991297556908163405775431334283402174697271115559417816338469171153868267716954382613550482058593095808128650650818513166617713161295647081654132546932801601125327701478544719958100467740272910015764340705882652096397162422286614009437616111875601405009219915190701661015877804615152595831628400503911145045819998502744729179887161514316798992187460730339710092728078268113780393334113542728395653522751801829125602143349343501500500306413890473169743226874915166962422006383864334997282561894652839394231798648434709751338942188982082730893350249343518229402252530086683961887216146729066301260056158250614765182042939176183708851904325268135974895018009908392459239748613890859910439732962292604994751699548641968467950867513452088649634338356315957507753823150977661313469910781609103877693703010906003481853218773105433408449025753205739674768370836411636698067484578475826438768420069866047139638378460530789632275528507398533890591435303092479515553475431624315790820406770351581391513887976455637900329715468173000912530809757348810397750556611782908025719516382800146734409455798147926546319606526841985735971211744370389879122237341183142936280038254825114372931126201650926855079952344777801557576422820022526078682226753836446036908714209881319199566129576005898668052589304923489609616060053449310013930400329538956958311668265983850961691351647252630063827452704395184733535388998775132530613985658885457259159302991375527353033472992664414822290789442252952347003600925228772405086522042111990782612519835458734314009859954281862809008322832825810450073461409153685466404681521850440427272437864579105126945871913245638987566162764698125861382761825762327552061299483211882810076035064615763334890108138189279846602967609952222505538252217201647330301051917457869307233370271715615815247607307117157473014630324683095684197245560249660660146468794228201719862213280045870927187042394650007208267553422253256675909759610408330609356831196841271537279003399328211326554060746025688537887836733369738842752238266702291608805243626263259012914579767488879737327582437648577775052913652423588103071471430578773720908197623932318381029070997514338685783131412519411212071896667498049727771201616375250288495842280611926724577793864925679270437081940679936981487005869930850271478592560759686634026825708009634956955338602450989716827699734436452676441217691850034820658145871082108040763164143319166023501047474228338885832534135565287554052372389154086214456558168648762491798576758995601646170630391959991079981814976781997288102289030890058829616365089023311589875320917825855386105452984774113323304090585191192038110341096058029672874578130958002745485405359204459575328162865940170381200949631802885402320046553553248747829272253758888671379839001904693967789069113154378182695442213680300026495588967761584273358096870997676888010578558877863119507021903711654260100502547799461879290466332343796605619768428790846936231949717804278283250208998458196923089042980792660960802281428991664357163029539750633398133322826735179611266745619121307549521367961024394871167777231813362476150317682245810769564629238202569518486295404133814376040975861099145905123478129869531336153218998723666830314541846870449283566113256451971225546237453398323242694280376478103895501952427493446626801928107081971816205127518249387637837229803611584965527994864208429995946478882477357713418143044459289811251978400589950762512299715599753862718365395024614880268804550075358010501251933522671756380521797542331414620946027816754813328818309337980798309540958001088199791687729717238402624710870248797687264988915181545568359359909425446368168884324081946449963056823258343385047446828880487817680659905342301417407435074709354905888663316454821284217661175838398408615595894054222035680240394188810074833158529155476793627089114697588605816487651560766116309514146928585252197016796080372750174096146781936240347547133258328017246283676374135286476509692461034216057411192359122764096322597469499396135155782525311931460758683345919253080886724331221489289013898797890654434257052749850163234219131465260040736116180519755287803641227494788899016388728677305721909510320082121482774587815783308882904593669189263649456490026815680744030705510469137593671572608735769599089432538323362375234607337379757110244682175811822518857188229571843230678867230921215191354774715363857216608077633613717829340926715654771697737527477325944612200830225441673025486621648967705178775396838131953169128775931650466869250792590682737938018889935623356397672197943908170864198192626815581439047402915897647154423379532663671500173987286494908678374357575051244846667668814353308724285911957132994997627347250702307800092079706095123485598779971661576137581810014544060387236044704222140140505886843562371207470599299252669162765151193451004178171687520968819828688911726531175478092963852978234685599880255080271706829948615580111189768360838339765593379952460132344090752786843897347726435582589340514626585118404779582945343989300621647227270004842541660847242573920661453004206892715713926191257347264765910226838287728845835074032751853964577861434309714005777691213822609205308272684045027164697859729174231825734730222146636266319121159101778166932699488024470610024781636495398650563424422302324532963835342764994665683965087579369545193099614196326875363252132267255283469701453336363735443532020223961457020663890576372163399976355442204066045741787687753988900269825169499158917931164059202571319310608170991364516545541934268340841818279047368200546161797035540225624671714794298610212034949705017470661043666358594844591950128491266611748716229855272511838043994246582632314066238458018756777243775471100102527116859996999730388401047803601113767783898923601291592290142449599459429911413795931044491450913380477427520373947466538952129044790186442452917057321419424660664792443292188868142841757989631722231032007298343453262195028925584894570878716001849629119643845450899310536775688094159230496625328621098301383780650113488300129731753520654295984524393014302004798526644341639350907995680157745307067214939651986371937039466652696028671739203910856001844723870617913792724022260943275302699017162234816412940397353954808247873513007583347647575187465292311166767034166426871795206365785714503527537386858321174279105874077802599828890336712285247389725117049393572679387080734536201523309708126534195735079394013659448375201423585756674994943888976298964055604712735788618311152541393512674702818119353800840522551005747008696290964879023305960124770951726503194996492437495979478788636123850457253458611200026285145453159650603870683473175031113554335610855175570083541572810713714581331971121531095075515661156684468536293532027630057758848628621951437141111025106979131837769073245953170796520156430449941276974284234066901738144973369499060136795448747160155773189561311989207263111860811042999215143454040419478609655633418636116374567581450638046732397897795964619689840106000441845188969558592228000892426171369834575275278233913549764053883850084019462655871640667446046824007999709589796906498141804495165742137330010488100621335389504734798656312272139406980032621084866737649189148146270394870901242195893584990851398360151976735405165072496204916747906786701071826941197297932894877012254411333595706747449850539404398898254063379677244983300149816862012443712974593795967155882813372240015695149935810891606542928915675599325703215341813068802245480665726850487778398556549748101958525614868823276144616215915323389963759748051934031445049976344447599665668019042114519234557407434128993894698761073890552977050290813494473975291514400006543845569990780514027606309899964463069536302849146465175383600758220576475782597556916734766987288206859178908158800508611570872417604045151233425257890946389620645310665657057341900299308798968418879197952211695593387871533274690417118005218549312811482809647162202410507293214809057179211045905931556082145047688236701852038066586332616435546705330326123324104016534827427459097480190390270703153069609658413936706460466417521352912517201338240943526723535942746001688961915193053051858678042436187486833501492542166720457801507459813459575554805385203059217126490098545952016447058993873608429089807183895224065795445041648726423810971424311788997253383728213940321273907499036133390978775169643804200381233441139872463592371330453911542305350494481476623689729433880050692094926156568618610199079231385119504359726463984040285164217747142330834907989609684049472437098792607656950933244722153407963285652538593989648081205764681922826023892872048398376326675248261341933730134975123045541529025518343368539196292412022561579937412534793634344466839443500748215009138356109863152428278325999095576291755356132669989650025953957902902539214033272444865549293761172697410819123829139287248801700488720050371943907738518179183851713119892008141113631858683881200198759036595232783014125824377013405572574147035739365764155513061778208426734436838435543839742439701913566771160438964956522721842499333036781872241510048016151801467192925066053628142053380674450998482615052170729271401447366569387380787705988530038602748471102335738849555702279010712933883446533723241614122550677604775638268122107343793712895110969445297254505888484011144693218657542209198186254510414157882510241045595598250517912869335498966490006588262719028879702758020829757147054148275575378857167713721279120529604266937812678425938213916288833531396689828260143633564750002480193987194082846328223259693829197282535262203196463868873281813568007756711273333425685312998587847463527901213382141460243250748685411147156279961467688227544174585168928560477919832856508094820816763026095236750159981913835553924336912497714807111037447296287077112898837276623858023612370476986775554831996219544886022626699352131219143177554956656383135754709998361451097330328155356859218667513711990979140795269244621524410463889217489085555745890698295629845814780302603135851473427273304722784956670176771515861019984003996178326711940826867676406177792030448640129412199771732594008775357692634277503493881250864310188589023199342314944778614375926316638220576372073603078985544716827177818777593611262916438081861801508966189543138348360058304362249649771097585161739029815314605256178450551965235642139602293610205552984828389966202675331852809096792251057215990607474043355280322808409154337229388106203179658842232488306891579163038401112065686985119223905403674862032055226915299853288648507900575669496984869828834819308966334594570883218660449909097671690835518143521479698372125283964015007788391216385793990625264671680766278067325623009235351723392764102901491362358125213053077554566414986802252105563891017610745103565120936631114581400664502618931139700418845103381029786809542298256918838932156934301799620895548766260346715651628812406098367948746669680891685214080391527842239590868740231117655779558072276831688141054116469003201175715046446746878383671924827224327356991783231231419766786468275322333413131587480831763576658105576410584930743250334953124826707336244948452815984665686951795127682500726711479463813829543063099644714766088795588461235810936752801086356458729866363426409336234250668766732814268764541807195331913048818052609454424687493221324280934627501336403581514974335398554827158075797074549150836254566524210062628418402372266529001713902422757945452289003516987231735328803347756560090427689215165588955384413833738350132314764583536405085088757594905612102302609111091845522782728027825009351098531773603075188750108658239409882445358645268863196753934709502414236968434891271880135708494496842195559292045748690765344662228934440100208832194867050008671118236757431472164845112751278835983292674913871854018442856781799878884581397074657384233651861203928476108899868345117087798749847311957357928696022887354025009112495903862670244174920329707876843600198476200782407745892479370597043252708287564655736842515138521763120467997901867728903653612037253133395645549535779045598095456546327998170937572785632601918405846424626722023619189152669605400827912638327131069043969678692790033000189284876542651517372425248231209340315460544240572981253416042277994643774772165820316925528219581906102530467425191067846495897313122594869848912052291439112153855818521712603876496477292407960071510314131034502441349282527619210655562391002743960455628461888086008963843201160121533887661937550781216818323384076177446078016989120104122887449963644679560599431811710156463510633065958249012649626491403845982702451163216890509364433631135820895804028264657649132684779900886345549077749047462057796936322391657579103847786684354990329344199307575638392199912966322510490305910744180462060131902701345452825940843066840635862717292006159733070082516817523165698189008482811171173874055951637052996998201685075040954814704816288916246635311226485974615651731415866394858237802473302160718833212445290364265685327169018976367428396400312830008367176655366679229497470690223810891969891054932583896204955005566544493937598728141275213546627954955406990826890070243768607966218489977144986218014952508418254347214103855267939369535126916751776118465073880433510012910552263732091138591467261604411492073793787997970543028192168269344496040322097637285356554905862795013944437059246869539176226653051078076907172801058888643053984014032826622276047844334720174446313809480587098223002666383838350365898497008507004793256128793197480470537345719041895962249591526972332670416672047395461584594856163821011181001933922702406610270685374205647127918466397530059291179804928917013257807156750478631436198387354382423987291139755261662743817676262201902273656280690621746950005653689163749733835820931685929202816278369801066455721792152086790584382622358614984483901054518357077447021916725913264971650068197004150370112657213692783685116416618505964840407865242357868246958614148513890298930854954533102204141928261966812711139555579787722847095072205635558485165558048099682255204587158619530849583055482561432704305040503291448014795034558170605572847675162476163992031872241869133295379641148043104281863076346106661425320683772064288894582020123206841537760242056579931635486606435715735399188843094342677673472436285041934726723228587740381861031826582455094264645357555597798495892047691713559757532694497053985026904739385863697647658594933413897291702667084962045239420612609076436873271233122629352671981765268833553650266185536255050753857396912250668618266446193579722406814663124060638201807373771881443159074703075283879227863181708618486959934337141370398837455912186465866092002277417338333166625729740300537085234091016145240359049664227357879759315979976324051529199839524581508671751916428417640570513298442679474685995878594512015623645197198134363311407724838527995561743975327652882805625598458119891222257135361480850923442049540455693435580242319675822246878439632408921954027540760266249227921186699560665851431219586465709224127473983240763123539561963831684320843390540551401072884686153572644161713045537147588780864685588447335384529629057802027031457545187496440772425467336907947149586802888526935310895337975505163632817650626602927381015389779701616348208298283337790552684508495977071703500696099796488535506505685023017141197124426225443897922033345071019166114188001589422531343619213384919452568805197100546596402431895765324268316489832190980286803437817381897182638851704223739886850325102388953829865943778593900444824500760414777913997812551071400767048218282045150699127127554123650949969165016198709147707842723960427319082534190138132926524147381425065315997995626409128020406003609016818605232068570613817490460367880510830957837161398301733482128443331250281017211379793734020471237009682159960938758024768683786117506218418591248814346119299109795413831861420069482477353408863357990401342284823060095793262272884649780886990798230023211192840650757556886014570937739948849997204363747699269071123688291654372563893733301035694794821960747681948002162779448128108241941395046082869088501545629610957339560689727945980806229293921031774245486196967765065487146740216166602106686732705516565331322859510767834437670939182824378704312271517663077254446568985217749944185793818530911212390404670531970541537898322466760606736637064653575696888038118228707827284833064694511481349255460714847589591944738823789362881201343307661168764357945153862861765900605601881385031006117110066809935029485625322337322116140219214272021200164699177749396366634676347528746089510877494114762263430565303766770389490432346524786446102762536210190605306884997406631434424788460985703299488905539401277656244658430100340031452386386019149889351939665177306325707129820726778101651105262525984978223813640991570897849064753762388477751370129886809000390856589339421320326605721480721706755042615825246001798292314043366650468762638894049474530875371427748229708699326659154419644603889455564247925083041937593190682397670978141945439775181371348849158955780943048066035688084921498808470806174478555699977049010911711744897994430405192281616844959468718519564780176265202007248293713081761684846444543471386626566982766592727203690668068808281198456026107200956502855174046653830480809058619684023185968441887273265049227933402972442944762337743195988889464244781675947141689402704359811607585425452512046300773221551950748877174517138406076951877258324364712130517015522168584861771337010019900480676956483535881513045404670405679942981713268872870386402790951615927846067044540267407890582265793547137875145315268197949110191439526785456051390181072668488369570793125895876278660861864825547259149044330769806216298934672891818229033309572417159645842598012603225645123627582925311351102157744231750692875410351011433941046007392874221055889819403410645203500185300949712057890029141274642748276380343258024039619004562462030697395327541425348584735323469115944943965377165780332549055983846842641888553049856453412635812338920679481552129760296426546512267856627425549369592857060975060487942065502739604968496865757623803704670455427880766668894255425330088147742567057450910196149176052112170784968267520985760757546173820682364326858272614858837263926293459660984106775558284252435103411511944183673149093877972011239397359731131197672298415845130006477067743529493884525579494742608178539460550947554762980227700740980962001672373530571410269417551211108855386075920717157453007220356497812261561895583221620151881976219827211200205691772415470481152713416109767713189503560613371732614897540328531875126958084905479013982388079570629096533001019141942500633477928692779589689692706144322228961632823765318396784225509788500742901861247224070081074487186572092700249786822464741504508904151147528937454446276814873855705586380950029482376762952808336278582632986101122254776497923368034751874600949651638540078930660270907621637199489259058860902663253340937777298881684153051953904317411931302879774227008475096238668776616300463160679514660410045427130496416355362900012816028287298784221589332957703740801906629123769749532760274341711513394621157060328299181540386200080120287423439661709222958298291715292148816841230496837457027978658985282498689660747618894785836555853911398856631181492777238556097284010765946866584395184047141370486252626310697901001814878002870100890002724966646717246260420357942466896872590797088215782911205481718203209946009780554488280780377728373478060698389976354785491610863279487942254580978123315551079488959159047868724216178898755015725252689868309546301786324032093591552126749573899449716306067534478586184695647384957418539114639411018424214147387824028623167049754395558174469157542030319645727408250204959904835161786667760447189093597978112420955788344855841344953563654161187199083189925470709201387682335936144016369142582854830612815604849203387973979563541335954154061680406957108109186084692177469848589777344305547979815247848723894708617782522751436053782486597453905240824540340087390367082645276045428902625731998350560482789920737832731502952387848285824644306931205237679261893295161737139443287777114433985248415507472624198828588371560333615238896822680802053316754463625295893361259180493744793214124945621034716187761409592177745002988944781478088969809991031539751208629623710169547146035875423938815588663722062684952963793832225368739242321914576556802903277962487843070957874821732958342625261961127273492024922374489359209254873656372929659152867979138602073505861972163256095848745922313156469439368267634535101199797147204321483633236907669407652788487733569711262058756426857863422393121965730011609105579198885183712508178662350889133555997666862380064089044182487401405339699625480201274865096951924410225755988879023540345926074193586207162081468304443502693573679112396741225328706777842248108663060577148312273163495298819481498357088490688856763555020481492821318620760967953089261523468580057116889004805710927510291309095690377388074552940762598059050017566828277493647480779002395611408469007671611432840046001921253046925249730208915985716967730700165101644211707023430965575558929668416731101101855237607361194837730764701554353571510557552863040470833898316905618131323008308306583425991616688054226746445450227016299093239299475305936101383961347630163280605332016254615257602438867119622821741367073521814704897630449812305841546761466548207066928249369882246738473467897833667551683261506632270162159873147654749884506368250810563720815241185785292355738127509335950500305065141934982325581810174679985803726131137991175045881833032069312556598942249540220461169423566737598915211685509063005983052534833965623813209651869969738232452064212185694028589944003827572815790446881641270938671290909488145017630233809222965992836281968223858270592063383928706495357530187304142367545569542768239515008089779941909922126099039773117809691198456313057965668793383420016721309173934877480261790996778259841245869788221806483780345527379282857623949094255297497292778414503691583025527651794875246488689941328311241319026002074050293600554445424561959571525885421776137558016065616188730568429647777913218540421471480820655406619964549430277626141623307342869969698094712605043164816026559920839717461085496319481692061397616175783927448339627952848999353724935446644379663395063142209183094579290639861331817088216218188655192626703016439644933682989495638586300967943210621991883783790192122247471715662227836818552194973240605776823828426502851859342607163038882025540668091894188852472090315918816174527522592606785354503489966058612547358456708736150633060698326242167883406173627825989182845441077665204864736534176346996538281493358802981233445924441890810442630572232342871374897291158890433871215105264882948805336948335915542723618622222328762076792409297239997010395890930032044802854222497330815548515212169594016369122719530013457515621867208019399492196907302159818090531425966328744766550341170796688875596249209062556085792478002159422286128884024140844744231713194091206626031423385444884184636128223595137815228656403140872529826109296329043891659804845548937034251421359675946325875716273773733792942710879930702353755293402895652054870778983521582529100712172808872154368325481342275375923072431835454147353177060906464711827600250418694137575036307277205619984980112416444008793734297837959977845065957839970407790978162079186792175994310955518826768513672675102354266681355911445697639394220730968363736325067008993002252575715444442184403706734169634541024136183490335403156472478275967735506707420652527666522726872140865815016950899606545095272631107146974423504950006333628003637915304172297424556325013946829339133790436660765420724480520309826893417263983114488507925065397499462194640984620541635008561093872349512973698567563424992791511173262052861941598007944479767072203530292373537558224110292093094542882585816614945451283116595273607722553502364471939423672289357728335721975726366759014426939597411486265922350670595007780419458721884872506389531504373891983033390341321952849326179701760337874753026018791178382871697821380973948959765836561524136761201775646829098394829609830629398659406820961238224649717723494406372096386281223034533061311448398195056093688586548932279001840539109818805953787181957629058181255716232245132071189644885431938783190301414868184699358699011866470255957449612846363312601246380284559527338183555013557706359570318150145285701790667576619923692839374700254574797910538372098535817871652466518895553004359900713999935563633261660756614445381166079076253609398851530459974440870566884403144876807098854150263237952669043764578649523175439608009540794361982468915631744533077874801401949146013884567542116642383764752469898146281478849928107934192052275514672123226268908444088446171158035276103142024344656616395259396314471303050762623608536706918885832491785939648384247194093720853800790313841344058490231305380908713066120639024457428620906594635316496060997346387414895826805012764007511804291108765192076598640390352724310901916590237859199328693142042037557965789020637895204852247306035418164678461072861707368390317662412596690332845346802250484383519382774591276638796317894452651225909715768484911518289953477040225866404008183385701672715077092525765116927386675940699477840736518454480180085635872904344381698644668785820998949353454866447429151855624063236714723919533173050777611152570605954342655196620894958194599441638397050179868855699652989143561698680079995660830200898378519541644416904359287378592353752139099640988593317031356568551306858115202131195695426098866685836296322072194651089141511536629452638303383566553875446075356780426868396417215584127573151236948388156826189547660598914244415310649171923902143395222375997736577296562037567178196398698494746939641630857702901660514656396724808765193034039422893012786446848142383018307400368836853448471531207825117710537792604366446779623781561204672714588556004608088776218686851381442829316352325794517547378265679635713289913996662323794250919690452191322684834250503937417075251547379918088806573671952777073386151657240885904657027432547628507929659944921505550233857864933392786460630999588593003103587460419267650068197664744796724573128918631271608240175144634637208983736638078049081283694379697544114371606285654735182792757939133694913841072585324515512358102636717290363634019974486790069988311603158140031148093328028392537121040883137467878959789603265859286968752065171705444763677259338693371566680211544317687185430348812516860357086817210301105941476745736201049465467740806006257728345810145539420745416347584427296132853516090731089772128259818609830413210140226967002477541180250609160927179433354265982884348138408890880230837842660703939874103548991066668337258403177649578061740952515771613459227204182976862022499907048543896001843605477599697938079688020734193678162321897289818601566979727624595191980593810118299575088651966873188428610982021983169689092658825730395692476554953857827353713188676948192140295361568485582879763953505338813700623133574941975470964648783900551375798028916393138832124929509457690619604631465225289875515206777851659225032111633067124089035023352802485697200447790693483764932348241680955988297233520415702726870835485279614932653484595828435586772870442085971094735187776116526979602977742216255999762527739365009045108216966302570915865749964183782995498234829595352676867013367748396402680203394083668403095084205169379026105613449656920517764076862032879876585286790980372244544978492800901785703776097362670087045255541945551627530007234069224424822593960466416754836260063951834903421775314392265691949484747542989616693421619904904476629367427946877593411086571392769744136399923168825533545724768577129825479088860511184618469551337421997002055132398222497054996124661105271608293135530066130008831429899412813363021648021561640882186440444858945530418978232718530055304436037098294126606121361485366362629822329666112601826371688132627950581416715977495314032203972857657493851375136018703994135165132921931678919299525978742948630472437317497133087371120841102311935927067522233224957688268063523773003544482294685457103829334805296145614240189161120457268092018742419927363488144145009487786574078394869920443863430596422389585785631301508720356664588510395156826362469948525111223017514069057485289637773924706096860027957638202036466028770571577610264160944078026413535930637687188251295164766790332526601082105193450736690734160734604887948028005255277936157589646061538863383582221152800721067846876831625660520540223047311501486649180687204759050634610162736651007055436733529073821475492983360882795071540349055930873498499069145322751572221304741273866631042810421324017518126639130150828591080979314718799743152420658101466217548591839234720510133786245586181645427784640480665494238759852492327191751157579489661571960562543481812753863264381617160202685259981396259442071969387294163416041701451245031793884320325391615668395701473644385726742373117567432900768033400020077694179490997854008110041972634860906208754228962001164600928747701854268719238189776600322403187610814937317133885079878308972396179786498705542707581113061486286256105787031681286644804153958355968819958556980043561808092982996460246199147861567432170045551652837201487786485947271943166214219138970254445263482394099503727111594839184789499743618814640598906041785169253335950685526230341374562239785548489578490098582450860735726310949733931837143357591979497281567679840352210378023436473694425768549272545984692036947912326262551341758094920789524898226132251703966469003535166043351095185207201128795071553962968212927231732467147175295726989751683995584658829294848935128262296875395314185708580562277379944842609822489317555637982045721676477242765729933321575090382548314479795274918823705855321758468524438874924016875808412347977087363154958403810171044171688071833904845007639702186310142291139292634703468634997720780587012385101473251617448748919357318652529378380846923585976341643768686470678259348780563742381021299400778556102021078250423375347867065969245140490512160724688783684266632644595449618828168729732917473648503924545812998229710419381823039663381702671144819737775825074375433094127620431083723376518070984557464640263339371488390147619392683159239883236795071364723588270483371332275655704415544019822230066876946950260662752325017309566496928102339379504186497333474339216889588588918599139803065375474842903466673659884346705135926814379226967917738565108330687249936658501714590907389201982700166770951546193509452436673766101863211572552965158909601021118815297202902137237338199646169167002666693338030397926218977489175971585607888309121339298099548037753006508074086059688619918108591497582897836760191912939715019557646862708558017346577183856863981853541147519951867599895485456261567460284363832736323226249674589694046580222692075669468462910557791833137384268219950058008595173250662081767467751945672279077760452208671122641813731043611969849965169156463716573443183383264509936380260315070088153917071498816373008079212589538330015062361231027259973447671840542517530581540192015222392422752368727466005124662507793682694280425744298950135852171787167706824138377699930233607555263512647284404056929210466530607039838375949807573734293805151485572679315557213508316128613360164873397558656491767715896813164772475278282806641753958897262628974033595366572168646322995554778692975147206159163958194763347299240024474705421424959449456823430277916828763422330522386252768928929253671059808578235693669718189860295524382336778828695650068596563975160646512379043282851913809746791023200609797262241877379534339747690072659005375285290681874369735902601765989583194013498593390837975092515756438208964991012093337665850001755600439846089943341194068820707600803309517576387154965849722591510125177296349830165465827297879512526774270122823016212712580890855386934671024280115971291543870870994071476416146673425086249463042427656872012236699400544729909518542963397612626326339917339927244898219240691755724574409043306108966637839442012432618601398555756907644203213332629368893805388674428332906387254986723560955528043051456165295661339211978984695125327681572612379549602097090394217945454912935142893578053532159911844301007393718959093592614816218338682733427718515242490944358037430614026474591081534019225840243444052739507504919492421353729971525938903399154011734810377198488800569661654934018350708661846756542695182330710721205632925643219166817878536031076541286458880129968277263693496824053168440015370281004135120589799412429575833095274461804670411102542034789690399646624821105840264159075154431085555179003530672793337833594059374894991171291764422972476930964420530968557375217850052891004746791078946995664217445676040671020079565754004436148913906432513815342289318224997103902591922268412187327744238669163391692040179017660636192347036789936975237344505821227799817038049964917417196261811645102598380226091375131351262813399458541264583166275314739619231236723454574251861557562280888731656650039692268983278870495667226789232423637891476610318283020547242439695406621818625862393176339260591111479407390734801505889239199157711550685873008096884008356431887467777786683225254217259356331892012781614853509294343168245725999831615345819390425912992369969106103398539144490654644607565062212626098132795321722911261799111121557140856641442532633917261353345094446045885807397973695425722988240097856156477622229460317380984299616954872002796176722787903896292173550702424886575578443715026234731007160497271416037178546906782919597564846440442016489492236265891500729248982536330873355049767813216084524854614715360442113773048630296092069974574282066583355531188984378522161231779476064479329478997071280772937295383418980200794007316622469578128138095154189648282029268907431009894987085014974124231155288226701910709620921755129552050838876407641872749736657873689707789398892473626088096537306076857796197238759424094094474196109179285938925989747815443721917948498130556786894957615118732704676920258634647730095618466204466997785258978763091018023244265089926513369623329548420622009369427584948989626082292974367079068835346062033443132341435049099567152761968043018980122345328744677879848274942984307992473412590812662525687769353165457593666073151698161474484452588203098476866472294727004529667821641695077906356835500007049063850391315932000473487439451415847797740758469777930955503097242668580148898635339190757527864869453141096313935810653848926587292449741828076099379581692039835935076899178863399588444762462465050522515947692531483867746019486311100055920087144661576859311836357093647639507687619299642492649792073532792702536393514162744722608011304069306352825140984674430585837267490653056720567262995002936955389798378496492871469027683914075406035596565473138469995766429732318227978246855340489321558444663297136196951174259393176943741301951401772633067495296685035432484031517209834572483737678885889876590676781509489323801647690370912959786795393876289511206202785235327610346481475755637707484350531799153346497887402479350074518548351430612853946130976026981170105883413586940835770367985024600104902520446043821120445480097577305232137189693565651174621620146111263580547929505336610480698057955746481460839982705339409651975597041677817876798341525124067087935104011331404282787482357724264810095755825201030151874621381771461644446604345104356796158714147427580611402330654172886331486754624490503951849464041013859961053312979043296201837805957396931064844763125895469251071349793255158547109479101125728059229150311210407892780863619316392875739452379929568908525071277306524379848010337481926196485085083508169501020384867892972177905965363934162496284851706719436528883444078244863365746367292517614516757909363246346375636380398839767041129726309535071375470349772257873186124349916696729086630534776817978067879353587978206334769679384652535413717271885301236205868651050037313341581823217168671334556614498296831576831138448772430354828862542026338960394992299609258484634434903094371076212889362351152307494825043162210467831427504529092737128812201371371734148592237815617507349994171207657366558369739836518407303107839702311997106584641103940842114387147647867024735393884484309701220357804627972280673242786339711464668789873188575383715651797843743072433836603217827134514680686648584744978712636781060292893189583024940962116174838671813363819742629220894690013797776175368184031164783619814437927399821388771457361735612892172984012306699941612401148151192627589428723533087069823071054295185743565496304940840236434569670689558428091190123892549704086542723444827107512447122153164732125388554139885201105521064219438718869534529564204200582465450770787590538671890013902240100536241721779231747475212127349348670690014187996814110788931797426150299945928006861090179222170032424479081968065633391650922554659445459868643762023592005925949405701859950585936207077985958835775153104976681914044748901032815177915881612186055646187467236386750314841263362716715603016120179568878838009579516740342281363645395277502552608959243204506759649562482167802016172947849211630557559306608348492127911912007874903265337889380205636992929452967621330665099386530594141715992612200318641068041590466411749787811722105925138806954177705439572182502984208874536204666000626384830802751634147514489964526013648360622589556191146468594015373772920658842070873723236740501849256406967249718590254281389300579484737634174081092852989356717677380084252320697764433985530457265736050122138587681014562373369976522107896195225153713176500841698435845411554200754518674038721545753016940388720143526148176609441694604994911957599279262820860289367450977623405423166090089113513806787854769095571345545626501167352590773823513406176712276925996556701075024740595488297627094772955626996274694467533604948691350660741718903352496353168390921429605224039620958193109735474936270711745604475214047958050475149749515876667718162401253353523655202987243729024814426825229734509416252654151790683737805562344070093587520399583042877427380236941356369432954042268830224750793917886292697784238919241363738282182343462181764723121740121230526633821624595311027826400488919484820820080427162980361012801279277925546323850320571929923092596321613479727152377829796650463532503840307142471978192455790991752169578252053083859620449372473588480761577340923734837827833570499264893055082207218165652563506562043878906713801831780193851936463911260361344890038696131208330689398085682036230942111168739649262025434715590729663489366361076792082964638276448397811158325492128495993466408281359126162507040534030891113824919189866300918658347040132362763197021310676491492724977948567950334233138426812045068244349869365624910722123321232598263396224459381324248461247501065711367554652535931759687516019562805930317223208672408100315349132830524420754909572505321091997655586693801360784541457706867909353566485424351479865003919647577326776321133039134065472891432116555789725995857231172600167220676285980361772145117616021700610166258904071729503231806549070066606647448965652095139226371860748458546813165698065929537440122847303189837864445699625340810302242677499715640332813120542182026687356402985521592495024183256774424633375473652495735973521518781951881508146881883665680514789956213584083654746165378095138519166763424216711410707001901589558267533155036852300667300554492824039026757764711995703820066389087464786649645641084431387083968001750775553026694619345821338276213339415357193794589709399148043661792485683575612541955766593781234453126325853800219056899870170976532865571198189694437583153839683834341865067576706017071832849282052055092194987343835390747964314933491006847603894747980863411838179453558452807797060346965097211147942474354997723726884488928947058940570632559924592120997718515840019502480464349227464750711304348997995305063222921851445427681856597889784545356583791746677527322813675552259456598663759936439489616910375705920273160079594334448046311042029633082219937860360482520333265758520677071697660304196426105822175898503485542686943383332211128659086455587957822466664392261953430818003261059177695157349790857252208656465217596100607251421249895938558019708972086439552065771936106696369581922816551732737772255561580243671818643649412283560903744439697961524301306302009837822897724046191542341182906257677381978332746885535664607048070947121519356874862870548367196855151880764222646416375458497358434563375491969577067987108396819428268427789758889124812476013711317744414886981079719505012245987348763450192678547237809603735392567774313190149379177090111018770056430341676456418773940726947049119867016927270141358564548743543467426048351559136026095607325922139933020528874579741746198780001330904190105561494252395857333883215169353284788484244225625412940547402221664650052948525375003267012150095043414476710698052338400052435511888348042090373659447389827247375365928032525755264702589429425232178080621128830146588442784803941052056401848585125058860016060341095059410307698926838426502891490286005060050677100423114664640063032329556974313746650556029861466682645536705723314079585342240957270483835516655933821020563025939609548460440324321095676614356845661399947447107498662503380669674148459561361501113280912125045291012970158104509146788978364415477066071863001670579705156770819687621914488022429850370924884507902027643453904200531772992861822344893563557465702363731117190620171596885813259921782421456363412930665996323958085183584472207750445030479913887210477458039137540147595749574087397234079741653916743364311498366057905654074958415338472488939207260256814509421304893543968229827625092350490498572935421001737683936767862864281299645501582834135621276564804785942274447095059362296662099339037915598042899347030346098110335496327973658198382793031442364866406290358127732417545282457289796790618622359895430888252546436816029672557660988690491493612042801020500328786272464548383502041054971022336104448781039394994723361053947846571777809131997591343496154515978023705367747825163407020572029149794379215299175654566176689976155850264911903516682334883300565323647403807786516255050852669846629751458927660273129910574969201559441357655024290026599764917701033964694626529537781890883337695574920879688750032756944061860193771868133698208318431556466853834034189889507689806874753277741138987975415530589926349892845377459069933978780360662035506718181463633483411525195332267681528598969573576670324040379202821258715567234914363947281208690022600167556621201926359827286156703595142274083218984625383015695266730408256245264385056494932891427170466376535150982460551615475026071669281929423010450634903656515640880342595504873374951278693041482002267269015756836199845646328174406725837424785331171944807360107818764247195289623135216151483040667056698770113026196760658763847441254023187754713919144280761856965099667538720445761208546663061969434788637783540918284695013416062903343731879919306803961184986928252118995340018446912632229485962964484570305416350753056900735150037380833084214294860781933028483944533266818832855905953295840825498027806854342036292406229828899824208912117395538615737305963722062485719543410496163652988354276547910636534822329857146438845497586507008558274043910422780132432709802205295292588041304618524018240493969237635971270901125985832691233294584132577203806133927513179040875167901688084014933609212757422023013145079416914377047057872207726396975036347985359943578312080019138581618820913701071485031942616357277280350216307694060644097144504401117109275572195541027001065281879622182569209172688843714245733719995423821731679072316541638027205400181106646829096678108129673526946027355418872750295098495997667235091613956806935157604874941381311246665624307846906731469481828705478550122453441888549381413102480577267933684953390569537136734741019534077222834413223388608597641342106205361041501901585496681374279580612125912729200492412109742828627738348757026548278050807561144654470535672044831062004016853705486297847262396483079754036243602476469922496541062952957283401287958438693617613622019526242762727337925254020690108951044675633929933109197391944906737376293855094915933145052431799882548307046212001956171419445671755411342669851360435134687640885837137278943136413976205293255219071727213674915653995084311842972598445741577175771895733154951373227787797867150399325508180324582009872437866559518216768882366422442420469227558029816570568057303712076333205051082838410399626776984079441446157707127885619318982662324537406360311954435477604812256380985242609379809796209811443609158629465526390480547197646838029029612550321517964653207632462127777216805057533629549442108300872917502972542110837213821902981137982390515058733891497286127399514779437471585589024514156417924281133184030938797263089405069258709001474235994452049888135257464786009812887017472662220784627104093436409695537638838082554743452944244631449287456781077892491380237135326535333387818179619715328138813124786050097284052760822983508615999541076480504152367249950303615367410575131319485383869548574683751292696662803333527791794171503199337680440975540071414946569057401642798118572667843199882266210998797087485785264011298947551901593266046844241534111491119733794213990781941114254858540721598290227447642234992660694386750737936979538198259619381394093265197008253017339480365759736390881085320977753585491152952391289688692405570531166896959603386925284881291686640533343372199410879574896226253679394448124285250428359563917091639563296817547802268920472627247527700361395367390694180690527219074826230601012719629084421279522834818215457571795875399379909257754462923287326782368471674993302704814407666364496067821082819256758301801360851433033737286969276503909211041007614316977494778426641650478230243342076455305626761749301277224497248176191274605472160795973873491607600917972860703475846561669146212201637445177897661054975030140391161262091605835655700566588215092473460123556264954398546251402743517726735393428370205539905977627791523953726919048238195815457548282903884317959835431771961946704105666759224608848421813718649734674162636194463250026213687333550121094488746480451610984619763525542721803518403573797092117084871544875096222934410386819566399230999830081373158875480825776043080853445841692132736900712699877489379307887734384575331949986316632778006231863000614081799154396100511759573195331569176023779451511216559919762062736641941313874260532359151652100312815735048897520497715171153358211933033580350304219579803539977440455245417147030496512677861530725894497276005177248200160678348534449461375809187832157173360640829025494122565963432259898939653513260901495313658293317136811991775316787527192278299481710365727819020422797924293884616959129877198871878298431715448636496794175065073019033551532841894374738536311159775795289930287268002178025619648229279348625490317852740139597766751810718423796079380275650238627573433153750684442905887958997185426737998481210117251645835128509178348382657188538911655884919925349606301590759817753657557115722925502860967203403067474602312513260058959062221163947409296571024213986876854818627848971070650280027935298130738084765388484725236062180649924425167902589882842929131864422583567471405359137498091549871844976914950587167300077276550872056395341687202553076326728236798829435269639901936902894281731932756023497581528669988026140522921026731802022967255194315412133226915539846603130001887111422684402057620015173114388402542942511715901517955281425287685779895668530625742113769063124267885555406931918655605131910605680211026520041993247822367967263058460571005046947030563209783311380453631756075074826399039510602830114836128768398295847209904268120110966617376375677290327567648646849381355736608536956552757044627082585427337911185160063830863325770937564421111990859380001256098477269662081981503367508398066263511620948165682545128917839118684283188804987350485277278484724826958843362102672261653406265305137842036558754007389726903256595754550402773833146262198636868751892529366820268836321282478567264704990911161010611631341139073981731194281461626202955317761740005448352229802277930475965241514205867524301494183083410219757192775228918337552000825435106838646369438416166687381747255317396478961394275561228572593479556465970752766465771900715994656632568698717732357040744690212720140796118614654324532985564376067405743870487233139472343402010258538508621271501693779879050062417629559714705995095576824987352045445024423999848012815593721336687866821082928765233255627888888346755078168396620252039627499183300803898790249557174467414102493789942431023379898499171997042639871195515372399865670863750207427723924982783284053022949467242714851325147426705567523657420197079169646735762995657991066873364408066462484120890603794261611665951416748748296603075286096186048585365553808248317804272017502554324312099428645439374325902162425497923358081427518173549708952206352350998558199747047250121194099477145181126270390187196914639190896714482716474948187825144413871290345582170824380438893615585996503910805469909552624321890236178599998221397375803564115028011449740944727407817490083970318393174582115776384751628039201972653706051007946583129329811041213124841379937010569501624422658763185193255006345995003730509331949222553633071205216453285884562481938871251054059198723950204255655469059042071523500750370282544557519212761932185401007824468595245039348558016174105405749871812338429240757790084497514118358315974002246533958839737911212180410794139238144450998385124513500630178552738031399790614578095371958230672526228192727617837888734769406110620547836788930978649066731502140064210605237680807031806610300319319973886990616342388650458090880745318714874869754934014965717102341910573622059212461354970959757747066351034901641358525049252897687472592477181533844469200356596000564822895564106764454654225745955729677258951655904002585411587405726848897225531023687157927021709705919128991158907304626241036509830851043295589959823248101642891071184692690246460917602572386707992676688033430579236517692991030254765028428995413717253875105242267446230597627653549277760702718131138910763509227000406154340141897189170754734673408822293214972101249223363598947487675648262495792660923050978022974357660099442475636041954724330435990805960870314887984000414445332956346870717171065633189579465579662499247282963010809186189404019998757781311740407525876929651355448679593942881610611650792881378483387165488483736697547690054392283888138314622393439216874104844948300328631423078432025185613326243370567525696325400858202995457847762371069009331108503187918538356449994854548975537829240974776419976362142891002729132871172958610261092838229033571955282651824991200078159725104744297156206943953520079433417526611430790859359791706186931157524577277095812593489812236102471962958939415177048656953607232359630587167321507249278066505575350186039465980947086100594021255453589546614027679401455788853607960183278473287187950937696212355017964454968220684103397531818474244984469059518553093444192454033470422914902125946661984243317769943771881284904550014913767570609380222879608432784880850240605251886479886214986409870355314128311737116541627883253760764649270974127427528987824077215268163897230506664916129515758456313220572825448275666332993614537189784278453654536525316051222426896013150970673954341560540083007033091986996037771097636809337027065326866961952264786167063315349478692468945677225259184817553651738239010515057200897801763535839483568288480595145692412465317884814053572596595080328098084425422223913483520964284147012533851100641022386995636570690193348702527066916716417290604771245441577247273641609990518393787795429760242770234155391084776035695520128109127933659240171029962693828665239393302262449053603265555422200044902133076983455667557171280087312946919213745056002588512679925248035332878266591358107861108288158152914941571171690082156744563302054379644036271062182239286890417039452271411260518670641868167197504992095437557303311461049911664373129672441062862936787874008158932077341267370588783087010658784541818908320192610231270890060193585412068351600285222841399651234521577865647331810216173625925946945654208758843670761513072106432760337234780716526041550225037241845691637143462605802980877431824614056798109062764931694787713284679017790096936997983667188721808582653727616630444495117884146036015052618059904213991441053077675616369294047040743795618205562526669080950675453134444822013731138651345521100875618468320010873024875741883575131603128849830217221970468459473197151882847258620119664257570050759702797733559555690524152965042117831361346738523027446166321477095912282864019012147972549665921567790470798847754537755111226806680743668087712558563780604442289569829203467757001692743555026612768905282323931300063801018857978972640003556834055469938328643971551982368600291700272159733740816153755516940653541122998109206755530744217509505888609374735177560486561491006505141039216968572855421242311502497681964775177933593868815094838182161352053385003692289576674060247388071131494896525114800138990188293273203739054313810815878928269019100102204070496798068392142369980435958269856253389825854562298069378268778404780073197829242941033557661236563257942206882512224165768843699149892312831456301575745580043784930086142105667769975014295838558276899234464863822561796224033116377575528235430441967248521174541949800981096195426729559482478634180014147068220767562700453373601347513337516128534860611471668652843666734269033861356083031818920781068825647661310196724103665929759545114907729024283208212599567406915420772728313173210985767956907378992627263791850162326475402641938989453570348588307632916616401662519038137459284349157816712509282323072700057543461483143777404924858712697960453946630146242875818045668711870631162395862808779887720047403313886989776660740818874155519440690791240183949398823358841154502716303313775232200146344480877437475168674068988499079891419665630668725674649425537271327164754907476838715370856709552784875560886853873974853582964202331201896554010360576163772828141512562568360468573847767927782681074042007829410325647938667549130959698229540312711345721516550084185636748075550596987646739559586848231260992966407516536848357152297445040632317417991746018319106680452838252866766073680867383844493260508523794508157423669896900123714211346756945469819548307190724455869615631650377229382746904069395019961000400522200076020484920287982003781279189268960390798223734094256045457695613197471602029274927705788149449096238253446493711496526348847082025285979931917339778056110688272613876622325511586311913166290740011081325796243252728148226217589277652812538751742638773505837482596573495499275888940604662849953637360583674574624627208551338352778243328035382686536003401375264274846271077977980043893687322205953191509691511939517166832991567063140015690543804832830905581817851673907860970935070518723774848812333351105393146713274031493258951362894220588350171600985756553495142543143717409759007178493600227131978186694610944236527186485284652133147412494774615602898185534101890208791644463297771509268174513100276762466012434330983941760982454764434573447251005019254214579673458350226569843263337369386077499715850285237342841469896722201047058402970666758045534919390157198545985869942687696558764332724753709026443402528481188993137853950436000192266498559111242323934976238751480517307427896606026932484934402494172823714295236928537738502113166277181099188591839529208962446085615457240968618709526069285473115089708459806537441597321616813232984148828512512860746995363911715946138270764556385419414502126250415729712683533060773497794189908303117935364978322430749039263432193400713156105971918654799988470268997840060186874996381547109778677738890045343029252838335911622240998632650052073736661648639997564432055289550499390421909870233920823163010803347856441645114311825512105481840763805413508886358140076689543690322325903363794004894818603969757358416674024224231740215654236637315529141338826682350140531225040335628790788082932562279717455901807816173535455229959642750063525496504991170099901863618188737334432139183458526789903970220764080473147086663373329014967945198385285643644645717623138352572161740114245412920032414296564228772332493467884321517095387015611432724999063268128336940898598798697479747582175531873917844578373653622982637759463330237156833706183505946456112634135303675549444850925892119222125406029150891593847550132529507592080347455876289981723655139636290724309906651210865501437033557799886392812190920051618781022106114712104700914826773479473448948271706536814836290151234534310413516677736199323404989883101356090683723507539752116961869112459428244405419013293336587480074490977870505960789193055026206666652577136890024188744883641978590404386990356148426518151950505607061135234278668783898356794667076797603172805970723324401007541553540189102507920137454519721330489346814769107010582396422720264362872511086375542562499943955531711824156130333283764322957030835331432042359490166984405921022023722787338827490232243278745802325037400574019806966338804456319669311045600943815149064534457155166089420722040689407247751684774482001585212012859347222509860406890881614374942871315906500366531116904414574263994866262696084385218173077274948054341064861950925587418042400478268577606802616259661740018947498155213030288651687845570640787813849446865561199941391317202642181007811307510599037010006442104220038679290703017372477200760811259520157892309668393183231376611709010187021580418619900725459280650639250386863102520573944896853165199702050652943594863784528917260732697063792392787650943424496096581331102043897374727778356245339805242314886182817785831045318542577221691511666088275739007658412100806051530099565010010609464760197795510753546213708265154799905625714688952022768974334183291384582664423800921651275412260298251869587479184119416738381529231077882620180027988034417491365744499128153012296465528972791298552320949786865658727647824188695815369086357610987026239383413513353066940080517740904982614914413832745323534686576678997155208377792455644075856140329443960076562220877977798332035928186499499158848347958734253966536357323632133674461426899436374142355707517853486546207597328860699029536129111144835281729805831308295258550024611604324905266930683017890946236252367867569871835376725624885359192904009925265870416525007923587484326081166887160009437365591775029690000213165043400061243348306323864403592525529926717293560658612883860646864074375817450613815728329758208128294461893497911150000420445079935117407552859329700382174983046992903654804982206949008405286512287862029659274878621165324683722333694495611186526016452258015456290234504839734429114214775919217619396252900583457799551004252109347138009799370256309195033838398057236134884294962547312852832729680335389419124632295925745719421030559355229382813854261831948752319582629874875036025307369688022692887619380512578562532289290630135113173317815156394046222995489298041750888685681447965543175841336290308069181944511838026850417648683663712910489021101366139129233090641780925028826977337362755682676034461250410827491815809465189319325781548698920801911963208917804793169520713123853778871038906939268644763608658612700117294014619054185832235280046295388695364295114547155024427875318926330877224534826875117649256567790125762893067796352763193707910252545283815686973989847555207033889736145796582265120186549485139926743456252281755849464939842599433277119362715183765633671427222500585242489089376377317581129186643964367485917848354641795938110550597073666950092749830893908114068656350201176601382925017448611616744035644591036306351808635471521478955509821812406599335883785700980016740777482406652618126133542873243276681636186437885225305188818054481623576864526374213235322978949450303617806193125874065420700989480980203153381082371281369331575818473735551280516724387661764488077097671610430876409606932140835643328096736538128370959798761816694913569553844762235670958599114277899808328609119272593358706140725087965092294739761616487938695848746267440120408679204968570002401431043553074582546280943497841823264831577538972070629248769439928281069903211255300219201481658598541201777131518863635746330715028404815780770008248964927877666000788417798303045138149917064096256370691704975486758319441848299060516807665700236268694156538693303927646981738668940922588298250846964448515397463686197888555642188182062436117285906943014028783808558630964681461019245130313426238532618329930265791488840144117836584667980378357381626417962830855077000354640266887877423681200903982426026520755636190134827265240552492882606989810100761216558107906129088153373294807893557232507319592251225290782339873598927899822495666652085597262365234600207445115346470983296532667095556425833253716422194409695902409367136681565491619529764439076066712621942493104441117012028608233344016979394602287357227581543803604722666936804468862546071639349300948793169451309858399639615378691358082136503985652819655679829053473011461785957397720775046990229299753227550197961759330511972527596137715876927796940591723692763226174960496076631205357181298502883283797581344410103766412705655743693074678045406387194047178818565831543289407345477908179447875143109884210043675930698994913900895925698017873731100356801388479855125691045641646360965746978041040210145391059840446473692461239863789707765856124490176483587723450556708441698017619501427775115646490110547583687477728139459119870696795557991182926411015977501035295276757571113925689822576290724522434632174381082494647437751494630989406033372931261024783955076803470672772104295668108669207661433500959519193805077347441294823604200213325631223673033600102782137205716961541652140482489251626769976979401392290685040546386276080040065814246115263411803700578916665720066793950647649088588939764415395790116686635581720110971960691825638395052690892097823002693209230980249842596791571289742961835875149994071432315246777837067460069844694480894634685948052862535049277080151298644500905540067129794630670944626544795369566992320309422434772248200605026362850499743786683999521099646318722573320531189904920817584456570446360139058769091000695814276218166292100786776672614952788205812638011645097480748296190253498188572381183039876570895842003646300998618915505470869138342668176335395116447745403455357258871591809511719243978371907781246392359744383164280671634027420517370078992687446749260831918723575394590252534076403405126338888973888129166016887239285737557711123314927228685142148423729562296623400138428840042038275360261830990710905395233897915769772089984281010509182430686479431219924138748383140957243031282934550002227104796636865967115566751936101642419584353118483063646082877790564349958851127109248700166345662697897416518768342121362217964445854627085845610100346977562584865673912115280314191601939345194428180046577242291966457710082382472273902333677631861953943309457592266988069491195181111348640692577750493703052948706942119362030830043003594444255740344871314239006171703661448408028109852144667824245483633208014887460013925220359821694724320618823505970094818966977113198676235720714686796828305403228925217235328890367893487726191854273002068806957178456950369436961254919523329290411567242179432667793264129706894999735306642336856257783056942175170079673059011133430864628332078497823451027713121136245729590193676681429349558985239735644683674762556325311717172503981489029432478005734089971019096482342688183753768640893317447213632891327627700796009705144512670060615429536906092656602162847214854864793530375127493752088448187752282217838781004961583434777953287113323465593653314170120579210087057247519772085423010048945501510925707863061197937083933973150785314841654398081390302889895479317327349177744962734601474833106247913032935326715598037368404857619269702135156577996558078491073326151186067166009859118143792442478663344998060623578195132596148068306897583996551159578983603493833271115902044957897593923704732282063951681073184802162049071698095765281988222369019257824603488369334823336956190672557172509496313539849307646384231792531061015102634283821932707853688472409587034747458444730806184014089212046250841326011306174331816934246597060380772902644033150634819689309158130427894861953885436781817027808385669740083732380296243709085131490834522088974934844642255803984085187019922302717360030301046098724172483804524740888644744990051594610422844940889292449738501580839599680518481700261885539000138228250700624697378438379140541572882193926111103270274481940093741527050281227303162292185420308561991912729480441362699582880716215253023411839558127414349462408204205124238145454752798189210866894983532172726413402067542384093761365848760523712851271713625460954909108558756053957399335803607218132461606073694656515371817129835550181065478062824510997118882583288763644442649393090681393630457060091684522698815749551249361476849796851928926533610068014987241922885190672985043171432982653760347767950802537574577842188844981779870541079823890398899468108139283782271137348160087154830855705362962530983875140939796012945515195183167083260256506019774422717829510222207340159703088905814637096776291848031097746295197949664584253481272940152144099565543163953011740156499030718127690732380690264628180835897810092806724461195507716290316793267394306395503639099378174608528166715596753521966007308601403856814246502066485043133889744653866655757161431228987646757424169028361550593355978427121299205783122146815521476157940516045904948585931258134904216879191290067142840905339339476700919206286806799779040417263001171501768220866059867741293790081034593477519634922538393563207594831057282190920779292306988710753548738970925415135988973913484921435192571589275625568726762366743280271799837583873261752686315567135695527169021679239446744263436441633300303708437079585015489462279680275197422003422340607736110704597996952852611068292160221526568497514122017351397897749281366784343009880669355317816482446329751689772205787399351035202782336024145533319612540801680887969647808430649756994632108067862587353810279835901026899812876057251740273549422379472742006238555325655184259271048409654170710445426580336653965196655433798221001873732813851590115219942175415022067610158570746820596203873306280404851532199228308458717141319169077706256500336969544098769694184757629789287745812825478736990149504405221650607104937515277187806901842751120154683346956804748697223200434940415142524052141319046617321293547757362153284668978866795167432874069958083044945701872205670619985357275212972816759269237695686713168890887764140110906966687501981660172364232078198532571261599978960461680433643897965638842861473493323794655836512529925575338699702152921888581445041613407848169406732092323822519364302132707687926727631053911978979881304802994931749077358221018657295523487991089954364818170670278466813771247880957795318865796139242905009398050275556059113530926909005922123150572997757439587740610567764214019638465498466378230795483339110212340255285884493699130207428543895307942971024794564432046187414367830805151438496713243550622411634434517213045066984847826033616363114762211158556509270603456365116210019874457030359410083722297121064002907248496456704702567660595674009912848078028844444990332128124412115382771041312749598637566781829195048097421107459064021433321409627409088771947075883707379291250999622279795609210591952718480171752744766811496808642701882915932854091248159436605915408711485669913641289971719188425677752129218926810576450336590521376740543907353469765315029017760792807860819626780526710532122512485879051683640463551621011661716333352728061322480391917658027748709314803809089263086151992429181848173347534256934621355912420058408957726771142134666709825750468882787860190005469576242175152301483796740198292273260697378909353792020694174182963062778091474464701723933195208212675003230808501021109254883527049325336714185713436485251081895189682799425962693488312290828864780379399667574110058361180835947084673236978472494529874561533414877922104539005958892767844269487923241930099003513296536210506318006095491220583688974734261425316358370525948811533506253940638967585711381930516636989924910957481701637945343653382481553520652953581171354918244120176316276441781213109325138451180902781769565197337044507089437851332834144380962407258690519682539128548814030268752948050553046599663900228021811419704658689907947222420203809286450452314371530425478189338756418483744996591389571024976411640196511132227392798470222272417877040021834747493517810471228538226610519098334650137214067935542111154739441805707313496824624923828786789838171784084198941055011406759514815666861336813352818777827327582086835008858535084708142246004223917321067236785024114838319918609625121655283212540885492381504838024363699887434105426974559876896599633355368235411815034084249777958743244506434450052235746283838249087948903020464172156768210537050992627729607194945494198119412647334271954526586358079518083813193138764656980423978647729456829477883138582866141488305334180780153797265740846014329952124707452733126122837264985147073829706130355563963139129497371161702814963784073568070622910206352861855703947935341821481559793817320746680184308479189151279966245134626518397662711155297073002429733968085242561748551996293847377939228752438958751211002111808679327722606950021779033940144450707131779998807035249428232871609281728390024061827054104435158855759680165711555415467188164127400737418193482219263324011194619503553567151724862809924035830089281543617830477693952942079702743171662699268697522366915492539008820054225592066621082498146649220288141425159377950172398362956875209718635269580813535268400740747766422261855883077100044684239616480233531831381329303579194342033399170331325337015257748591229935502109192287285355358391390342806454988268869289109520929371089410100401714164819313801837213674030283575070234573979614671281039663800284173958029327597323846984491132299120597815745702448141180346489352834053593935775510272290933818293865191212013445313411770353930083332036476113562437800346903811365991965786499306049353224446962793096720500048761239694842108838102314251796369310033615762339716413818564704953045055499486759671352765614939435694066044482476924985999221040158383839455193707856375637312191717608236538725269527991625948116598458671010400615276330986630123073054909162914748365507149478959043243998412738852668814133058028351781179161371338263782358606498646514277536334639543008316124426452111202888306226943550458677083972844150291973149504295217112616740502333951928399967920627361755537043632915318650032055748134076010234957210445720020393637735731206741802423779972626827635028767102083721552734993681937839414942292904038298747130673412781303207388419094134204467043425600408278223003200197999784301215029464961326678133429953148994268858203617616587479016884452738518546193071138995714479918263670186332126281567728276925275173260448700603307705047145507391352274320638977187536729765874933835710801992126173204734671593067628409864725208113023919774411603406607693375977980513805987493670016985516296526884519457258783745653357286395766492192706543124163223614570456473907175914816943348692164730754385698049228992032462941578043448919032793961952738370324441103577408773259691664821640193022623222138934060209737300912928207814066911595069318032323586498084666887071434978236353506210813376822654757531211999450190613680706268766521042847581741308715379707978952490901793148513337842127710879862154094058342753036984035644897417994990226047346028595532335142063640123847523378387718345992430916768525455071282382359673501731726029515424363858666033738677645146126387755764913173726022519028357655799231646176358140262455013125703641012321088079591808904367534222857172193622251222142548631374737644245825002134166658401362461918775910032095761323988081635584344343435218028516387157670515759242340833963653934352923462375908983963785376772079504631182477638238068869972369828461200528349430913509672275813932134881495354136520937671866261914557198391139349622153080954233397807945023208039513820160696576969419593805787879880909417108656775967366213473323539592841918671854499052892748962816731936618105816286489619440070726673076709027117310932869556187573384721143117839371027358541418387061139811746059140472962806026630487901505895094113068584625546894264156928747015905151356698260006661031632964024035845965047603626601430615716283436213171712219532412818637820141073992349089370835967332491207618742406671557269398549226228457660590854400640785955908046785032443123354854902805832510569760338621123245262409213947638166499276792469155090914587504038680956174865127048023544065841389396121266111596147534888271045304538608667296274384987736541468042736976623761115444826924991266404952595516753155404160884370213018988981051070259391574072387875511022467096610074362133799376953691133975625266193669172556752663641833353020077948022666788471482318801099959311271597949484737453797096695633938825723382767958035421383894761481569476062597647111341171831412503021032574401740068649988761465494392467998087026344612546730663542560364321172955531640672585359357494046564552393588580962019529956552965784136629708066563508207988301379799090582466675603745438708109605225671949079080988456593913303827324279374144512576491802515165394215372129828128144721991889343279852345559945906935990783940182683014830171113433133344456577579441579691761218671182669030734854227132762904077942000776396025390880225766261971381361596770144619955419238205453332069846834028198201706309446487689086583497418057074797620993571525775906160175572560787027188240724720549203108945331857146758903273773611025621669721996759309605790957262426885297836650402806694243780250346820039885266882621870896018204278261398912818865029717550183922993715597050936255783917136484314500587457772788550102201386321611833033830821885026416329252483071697251880880177440690708282937476622444165909573965346126880654882805318587606868506104113048289817830400261698763804490450502330130194319058896857533309291537785476082803477765995758433961994711823663301233100126765338190273506078173541537300770172079705780304052733633833925813293776692633089734410257413413897675824479132513629252757374159586772219537300098299862398643866249681922848553703569769750543144691352741073589605279274309258073114865910933788943269083300184355885870299455013708253022046101904928317730763052970068435313064131855341606219127905833021228976439996411487335450821210428180815133761119641984985445123383188617775508761399278194929599594294009519074590579808911452141323670622412363438850303119069269638995761212478550169912190262202810410198346264950285776326000295344105225594311033181598830057675637038988133132459624219638828936928223177706342712202051837084127392316973772857174179084694433283252374612857388408162418985320632355021905782949466172404674013267557083657348380423869667249953938117390471698785851438281794275276905440441214131771543110612165585779992593410227428985293946186152521439251224163150566604764759483912851660041559424809384935676494067500174046392898533625329642928070853280301996382840707997544823309217800099768236437315358582844907832542333865875274942004631480594787718263656423708204743036757881955093736415571366907485912504563020495072903347881362976906085072412427119176968267246338506049768347320894727985301207890875707571973095943453830239736335939763544206950559330812487023050096252141559736140506233475012359454800953895459559229942639803598944440434178956659495359644201610089525343864010438332878343434861151277438177883822304787159476993164155212890364377737965923429364066476426986038752348600587722593168164731500169344087067451194276596955880582611967681472650583761310936810236838328927588227330578078018335689631200286257142484293623075932815432845519768458853724570515704006451487455726135275640810934799578805417061894714983914533716488513318560070682240227548834727749764276940319852752678251966398797908057785468647565410358456599255654851664912769305713526800574659335628386007388070244345929999075497186774085387158577542778222399458337938007757266163300629294931834100552090190146075661740547878116573213798896115378056518432362049463680695432695856267672337683433933679037351862339309994048782962900508784510387653948795008915251789357330850905062080569413987580594560338921001777593938039516405640723326654065513531342775419508722354956149747640242298700307008902210520713206163063113369094681897767461660021751378127222446201810588212703002182708959406899145601233816849392635197844310065960189640514894184223377727963750539869297839079308059994101461224751508804966460614724826350592585076555702894805325451769416934118685800192602729723101498809823722987523828500646023384200377805067494658391799867168892835628782706687045113890055502109570295675628666164736441080265044529997469847792434268223122182533905437271978514144948351783289122137932135058943298480380509150415628524668315331517322262898577788923823547172870604272198929259353926806833048535240650671288243827311653495840795696867743945079260748965654459697141114651646333934488096755159687663427524360891761882906133001549077055596154231936025278353658875106790463572921355421258864118549098343194206954557407256879316887767441249121793620979751183920375589865292322972863466995793009593019251191309257941659255987826241230685371422744144540440535679947811238718684449185944613096717405287010223482462021617389190974155519029276976215683558223943203115242777120170420085326481842626042035151532733760759764378052295337087097192025582972844813776330755835118121069630022579202323022980114662843396116266049683403279402089078261777639727156464673094833016851071522436228805956797076298781372968464130690165229783742847399754701852675830647543632593320317813588701247848544865618276848208227166726545447016559152482777157356628884596156777792050119074859247142089103471226441161910520998909736193969717302670554750251895625729372075090888351152907274069310262719086078571044872523506845953045297983609655434422209175556575472922199530800876089908117799983652392932738611579677924665548631185371848245533094448971551283436631190331777878434181442659574412787671734373100783279918470460162541415538048559763994730148718912625335690362523747095249419778210237751422482231704962613429409093430713045566048007732945519069072568342143731697264301519955360530747163597963915802556043817503410998693580983101906955743960843299969984915594156323508464585484220891943933659366866727194973955885985441551007229503444181377901257012600867827810439805308689856171204633337621410554672438284762026761435740219160802420303025067539241499274554281885421902143849597170900506852996816607379209956761796689922287727613389599835968702843147094045338767548173674517493741313687386384873194173892726367338878787908594808656121115659811268580238705370103857314392228544102123085507194671382466297826123262219221895135825073437330904071694278882516993055810848372580291425149159823765019000762647918035599319086835811029991063698062229882142557341264347412339555282190677244947876249693343711169407240440967057633132005362424107085295382992363079982775960015363595637238107743876929022490340768051171214580386298494894109884145340457101209201874908288887888466162242053452605894485245261255371965222015236432398799345983373260065928453049889651340888834458171723067453514741677078499192993002319350530723941839642663386271101780801541263385845596985521531710499500368253724878271017412252266556891321302742487002894032923883073912594359959732510161280352505493287759750002611673961291794241825211585922815322547420164413022943376684296335035095250033825606469145210061071036255166146084079045380732275135861361379667841401513716253642635013594652746571331967736780598114603455593611470859346516903094750631531943155801253112864733368087479250966277435010038822810175857819362698350105482689503770063024021552081291311065762393135261709335298162036554897092693935990425985491316471380250241096487572698300778164832376316023484138446925640444294948702517111903954729666507478073339177963214702494674731488394752288578571310472950451200236734485842875161921711648927092569470859543429108146268692772559314835861516316640708309381732793852302394960098497960493324453633060545372787684822548312716339600515481388574816231169221530957124272663231193004201638591472723475831110919620095362081856552675888721810026025077851953429242812198516181214155269488068927757509007495935879162376349578182966540337142600693726792114741727641579649430610998857217895119224112540456389843278773996889665517961273445135128734406159137039274853606833435421484559145792116095939785859024257890262249194026767040622000006839235365813290749040225024205668751833354947719045267683351974820680543270267759543280834491671772135388948214747655179397983484633249902471443471503656765414775150443025507724681129132292355154177416465729323601178337967545694433772275148744398680329320796830659982763775936057246633890668835170805385107245704776222770851149054850367633967503988334629756471106562065202477781898436256267637411057889561114826239443455211577557709928036385808214930890209969636636569836146384341964660047052508600787916638448667758946171741151357206922570867887778760509441132300881275064826631140661592220286896233824632733235119607666268341275098173576081075050893280766380795073414429014333835786728862047642353994653506530332969461517526734161516308789947103633223298023418675916598173728102515162424248451424772033665122165263469367051922020574691254697019198763616228800222208450618946240724408594641565227754000309306933336505080546553528305534037353939860264876198990287388639287171932148591033654678420105255282688397333682397100591896187130512612089458381049610896356151100986650590321769945603515516667995866369913181639160637424087432538232516765039314498416660614268827501563965043927922328386054922331399749780463633548040650680229336833384795885487845857017567843485283447503890639290671399457406582468003581142744051501983837471996353759627902417008823499117098513698670864166868364837357698493007273181001936012975137754200122884852262024685825954221570035382048897588958366744807134153709919165977064191401620785849887419256732204461238161145737568653449197581383507026441100623664663948874482428648118637494512110058412608774594096594666841248541135047820857407128394933490131318569679365364012621547069904260072259289940497170699079626349539426305910123065353158452603413793053284882352780611225064587196844071181956367361627008041147828295958556759974481560050161153090980985961927071381279924752330664270264202594443597885338003625646654754593338027256095953867071300649340826686600106315625874918080408750002988421109282789627771373654471574187187950040285128378787281747701956142002148413222538062411508284945905283431072553174591340074728264438162362051319964501040427918239270996878677826212673937109280848925022490077845482927331484898166924899169464354276741630569616403168262453821701263967950216818040104344862669810060036000832302441746242915201457672235486148454434281073422005129254216797640736655895305298029460205357572040435161001609667470415214746716599174487300180925960008161379456765847524269191345463023294917383964471080389896295696073130721587814167755948478794679193635658909453980201013044165740656725549611190794375042690384179621043938589030733997978228756456382486333278310015915259269468971496601834815926774276943495648807527548849218403675907674834966425883276066209549966641525158292244365141143715065025842136143999862760021823564357814672451170457711108837902320552947899043429022357926337805119444990593605224943075337023858984016657537741318650773934413707552256585016736377950719253474306456835897264182702054046398247108238779512165017449265701422210627410834895344242971087145802536946795368941495903930542014820846765741201759665425278188027968907040534703388635659729384089373887257465667888296420643970629103482106413165396787594506700579780189194689373473217783955747929575718950483743900488050526257235845945289673259832836151817448966233485384936767842968847145047078209199787268205614062062751841777812111380542006442147223283487623955123661510468620496430485496780600720901795401573782875449821142307048798918436888493842200650232892954361761135891324513036649306870719499434734774604103156866158415728460752021800558855324299223803708988139001810648211146941973601893620215371286245851886935809786702446889599325165566811156704745767191331468414379441739643010944840390411071498087230076934896952312942805199626153097315034662509621370232486439565435975452069402222860430976420127197306914179222093211429031501942566534834616271163065555030996319912093594458755925792975250288424049919387382639656130570226564816357018016244987982161992310868554972605345411321681963921372991699265968299474197962108639275503008536831076942649539482170597870723666561903482076724713257392245975351516140362991131531789468226166891976845252489289041811021765771813733390483111114523985500839293372556946330516952900599682152310193671288470179874157692070557022993594116526675684576381223176953360692633541619359129492892461094453649049175596306383443291754137702229177186183930462038070468441183631469731519646669658425679214066795962166981571485773274664338393966198424398626463013857370151885269650956275702234591652812973334724090520469097610648078819748586401827205162371776841447123733728788182192962711718492591655503347784182002832949627642140224287454835986183315376945540010798717310348450297328808727679505725522727385247375802619179674385073762557253306184378123281381455644466524890715106762784812236110755956300371855822431733257146960908326696659135750556300681003769282410902470816660942943678851434133043481093889696677896186217801149008624113561332388003401453120567448148129314547032672459596211795849869127616003249653642355886961580920645739858025787882800586666917588698239345391065137864071569170460850532774588716112503684388976667108076045572574990169490849469395406294804517212664345720959771419177996127094775872001804618389910025510182373200661688470825947861525241156842001698206115628089983095285496442553055164454759079941749078680201704699211008093019403212371896129169796096134810332040049867385965210855615138611306663062970840665051965609228932944415341916748899296731609682417096111774432999395847936399591818271946166632288696123766717556025005470942723639006836772970125969827058998672874677765705139734685748651007892290764551674043674434985139106657177356550744023617372865251545969593027291131439597864118720195081509773270092122994301686758150641804967906342332524248551863792412069093921420269568354854039670339846331608836040357495051862967185325385104101093187910058641557802772929126177778866678251000119266690236120057683221528388635070791371922700762574467619819180829907694040995464218019720189205272437345717813207777689812718425610316410393640086459308155687799843183550896590314394854106191933406832951821042139234605056576212493558030517890548649438566883214211780536946776191969814323383137997607835754482773648996989618551941992585379002193988650773209738877097217802715280274338528248846108634721479978261437771299528976780662364458032240645188342479360768771943622198880611854097325247502331656737765040571134687518765986713921095306041917940718102572173868275814869749810070782792420327464506091802023411405860838905377708086411377181683525839557627018240498268175321228048263221670737366653442234084912470904580141494003647281006839535766736337998213171276228013707857231309291154433928170618238951941219813376223660186850040333772253206399171423260440427244372044982934299375584137289299686340579516265867577219039870508146570015430064100787080879547430001860535436262248770659435443221899217194143170066969913535936281697530139108129029383272443303778819364535947238798175031489845519654960971136884385004784094337568812256430839206611107137213936178175875535477468969958205425536029031542820955799962008770564867689443512873017228720480696342398916860135945527611130078672812814640150490104375154366933500540400698080698121501950190885832637182025124091731007139422991294503721342962440970425248458709224227415617829484912404666622348404336300667148136158007630672577792528764455620610201777441365283577087602691437209756642869670441209356399166599902076833071046902737051443727710103906002458913368998028139963285019928945154725634105722172898993499807118013434795727453942248619068913543566250844935934890097140246926613395498780873335211937375131682776258076064731604112486576361946067288864873744464262895484321377854022538676739203976060878428067945430402703952686723549747966910530272004047099230922627600701203535517748126869602627202803396277387876377746465923906622002951124926758706110386423412842919400483729725131926756319556587171476228187447244193968647955178403089787424246009623480575645959424992850208426071037999712262928351914319244612583402309904511109268439521834353829119276210160457441045733004008043584745928797037563811796098555197826700815240897453331746130472090917222166090891279753131158479391457655161566252705786514122715170637323032622399815651427918064405708979672340422379351398005750034930257637158913289688555477541427937179923938907882158071853374391826533071491813185156140398741010257359946381608164607083638793434130566425507553634441575706363132494945585298088283666209573420097327825482809423080780397718250162860183744983192765262313180965053221549642514981382461563352980690417712187815703293509754195421307222067789302975077162702969649036723568676591667803588061354500936896639577772303834516236528469143178875638441123921017283421269650499975070208115391606054970037629746770403583312429319607338527558929765251889420753414035164947318151821255747370448253033294019008257348686327101248172452823795212614008960798434911025886196216104644477986782420576028493633208038919172899839656301115954372315997591181942852682630380085590192292759489063314910746951115482589466556924184367746016902432529855789666917773627336527935787411672995840424712317481845723149749850898228524032951367447549862775694029545978331384345514166536124613816362019602684821759689904503651341934216243386468234928938713961679063290662803235138378498244320517833450295704130709699804776313657329052137219914943343070698249821520686657612545379269642060546780230726548170375215512222161545310800476301875157263103309221078748796699919919563695283044617480999836530466476954870041783205471905775629663592604931992273293499113657890223132739220304731284327117026269011062269498829548988996977354029515304373944881859076391492782241947900222474485499140612178606933055725374136684932378882120552555804297834596091594116871270076073491673373013857597651155659757833067029396280722470758254627448332505306525624499091037645838436576236252136165648205052927925311135404789199667804786900878001201128770137689924245527777772716480414712350669625897602913152474380528380105364933164192065653542299119518012973593877133862892000223240777869074236442259838638533648397007568860717802863157240140793828249499357431995611403493497717035757773243712796806437066071714607274335631236045765676231814654964955080033144517275254074837917591348380987070791153927755171589226447137840746856200531238124113525501756403153590406553411892980570772497982294520564677682902358051999595553987893937799837785113073508223099128770080022939099684265054395476292604496024358097389027632320871469467292199002695157221149166835372867419045163611163541506495570983954262861196351608407454252834919018081660340612810020775088583185912178025748024664955565291445782190017479334653475133307850676945654305905306874090683485728419418376873675831845274155060964938485009544474119707929112261517272476284364822019731762294266104398677537472562373268469375724585356932505560997223590076568967686022174506360701671179864305448209208401006797667333902554748867087090255110279268905383145402167046664970403564267449800716287102067473146216075608580928450540935138090592773270752443649633121494078520826716987190053877922812974824516045888614695228635107999673767507785124538860627795061847203240494616005276486651496938362703830645708620810173203578562859772566046817325744623441057587109702400322174310087496762642414331386939226062586410420461715576982912577796687053829499487380130265171503193771122546036056029492516081225918437466176026120351353140244340930841251358509138777974320396196479472787907337204945414893607770353324527708499938668017299125259222830512120763692426271249240794200666478166281742273263398819447491730825438100698820958773990091701689947112228571603161630986462016839052498428496271433768403668834535514352244430907270383130946128069785227637858425760623599144274813919398615232049940465026002850043144872915520130571460233353626954261683058856569400437521781233902552456443814661111233307223072951522465605475102705022656004850741689361057688223716003365610667658968131812370213582101434793569240472835916788924569448852944230562768910687068215756368317772002420142223515806304974185293941239710428994778257952793725370591245955772218087764299940854206528312657573806428079744359016112684539877831337103193842070759482450037873601801772414512894920636669993721269243337127732761534004482945613599652128204069521773076458796584622601054704451818643895946702234273240697092457870999376546793598233330332520502584337888421573197456538592248839384352031018266906260172287870240646870250344033536806768227399168593125472830077107640047586681549667742697743936373241489103337122337128428537445961325927012480308573522451299803803490039247460307789136259017978196331814546082823701071036410269905808693447661704946182239378238484500934875162445727189512941421921610000051511709581397903407422470666436501533263198044890232131294058166005031553652263951514481405599540505121649075360766865285789026671421505330790954144578993423325306667865670959427399462415668360908653593338139753464779275810834181592026573111675750822906929295282005600966109746333194531679172361336885759028030788641304080333398936487670832068553429970355244894959125260998142773011489725018456539531561425993812850112546003629081345460730882513236127961672426570727118433130855693910238371106622419301820413867098621312718576566073050059996927306042483588919651600372246767746896326079471558062703419352104027996779745862195940395536856019865732336459515463889854790100702063501369530299388194175227492802546163160041122060267871195156864415824785943187724628506870778860699540793358343815055678412246719077583609964782836659832665198382240724140943298812732290689716331987234673123982809096885472385671172880568971175087046827972903163952417554417462516805785124414550910351125299132504577879158023279167964502461144687581785848685464219528708131011421269489937907533482757488581043999467589909956553728486985763489234651212081736832912144820906414868443962852492408808987215995926383272801252046513638161463993701003338258449537884517307685619019930275641261725095833507356643578473370940388222343253552284334951342574135988594475788631315277182467469558345573871465467201847744712992385691386058545451696387976621488677298934514812711398452737295442621217398583779731157072187624930106818952657512530828111024964513516427284216982279091877404003271244934840547913353187949353715240140248922211247798420184953162924333002829054647366016171224338615271084895212406929063187312591509877249188725485343574992273406767713231844984995578284044052082407706411139411252627621339424305824155309006129701377411182985292746358185868964189072848932956287558980305228105607295192607857833778756646784262447560865285251789042327152332025764270834962041056107689333905735656837808422650655806238992241491310815328761309128077999990561945572268966123300001012801982432929951303389312622004793113218689879017108266475012631647128037562716146888148662778159509242558814737236225120147303867584046582407656382465342153731009047780756212739610047779287567139488503777171685189107246962585917864848893781809828256601771775372481768102099293115715235578123496059468000990937959122835569594203891650007969142156423464563303938067402782617758706876236879250561153351081437414578118605076077268626606980277286104590847414418170505617531789167655632398354258776057667739340978572489898340196391478908009595116299205076795081834214309410563940136180035019240244441098309906069388548866867229290525314563427637449532790893033795607416906834728560815271810286463915264754377136957017102107290533651587152705280349293029630079012887165642686598570574083520861586230604529633620396428905312214006214114481261516013754462752269886472037146834525238815488503437007769775939764537904501095471692049447634130658639242286689007229523172238054107627102720778267346716416178080825463797009258731043291664263421753037299112281994813572006639424369664420380036374264697552159453356247785742076733546465947890955243299636184277784620889772511346324668834358384554873557235098590377263625012083046202775846412585870314971032037779113504922493941208066619266271178528990198789339898912267984111977460420227812103072207178850388973855426301942573352935620740286618409857628187857945452535458026060866641029714903029420672208518773854835299110575328683462447893711425361221292860412449702771637000228654817702698861203933889103023974876737731143835916115528562288954713357691853830553527728569459937940273992899299059604329803331854965995049085913857883713923245597117309927188626680834008935326839252681651760517300363340728811890879033513544965332932161125628212585786340324755631688940961568303037892550453775391942335733281820769540991255535382204563807064028607086167991341917840317868800851972093074898425128401922275903437624104775342217800112277403250653105971544845179872679934007726305666011812065835002857270937580443401994916343200145898216470672158532559236116967856514434346460383903324886622976811854792896540919900878004729739969140016983233559873761110711267832018357325844832244374860660137149796914252303973777382434892525387348616530373169899978705017402704140526167556106597691523416730938495525933120579278648191939745117852837734768311240404716622608729538873897028292702511055526051918087118783589334029128538664201481971232094703105756455469233715155481918757954129168266578515223519196578867497949650713455822782962041514851948650302374157779131987677435488617523042585316525506862087734230048973557139132234713368423960852445708954082142991212450761964734492312697736132599686037280717102711246105601983563541193949622489867164730030152264191555429381140710037971478157314721996145791037875909603810146367064213169258059209966898556182646288460753022558514450892940819017076245922202583364819137612600502342298875419873384177672000326765647578352845918337192607287186974655101363215979823839516754987433695825300027725420816585305969403013365094761203012928492083570939662764624732676207993615600565069190816610689189733640350284078066134217351350699247102769492758792533954615030637612999647069016802065711902781384527021253741296175117884305444844964558693456038461745009465865204776623498412691563782911393454755176304092022190080824991779576080350893566632862468591153991332238282700687190445257250624224748153339484260001475732199850665772272495018390126078434314309642858810359516645196773684479426273795632296449500397566907417352428474461074795637767740901984717921928826007109973717801258707312939931982922644020714759034429887616774257713196802619613672941856643305209448088648266357048200381805390243709979981484644470035441895907003024759658959276474359148246136735564640154765972809425567583991878977470620070986112365832842836129160766272478590108229405922851700531222922455699618857077273397319261255250191027569612639532358572858748785877853191696178614737361554229430332884971268346839568694379796907023842358743541423260220702987752484359508416300881141769826067800750494412376555978652471988178417091215002026752465695657838509786164018364417395978218946282641846910933759289737077415837401102847446564518544584903131021183994503282840924559211725334812140660207023835436153625418822813799380603744560615605197155135464293704316443990011178359625731634081489749084484200719671829761394644936548464517689648435277453071317767785220949910102775650710355787959876493633429763427041199379061098729590916872895113563428794362640955950474327526082982612670444151841808863223717969099711772435895156951302656906166262626489595079079254065967278254194828435961410054613600462175419655952431055172600736150447458646939460331272932297013987184603041614621997043643238923266629414328732862111007170978299343655686571853549665857265824958487450054784894312092032335821887558731674109100354314005971975481235593996235755053981226482547373035332373225395900288699132628956865126430937580514202604157350701015286295168630683861687857055634929795223232424032591690620262440176921951983168193694004388504144921402967704478819458706621586716375118157817495660198339148394246260250140723037651883200919425373417636951052028353908905615008341861961516184738602814774837694194949506071944660342681145224874777719355751537495718686473540115535643800624333746832047309735770954599272372874744223000499796407624378609861216822932161439650887773964438491809552669794862904553344390685637365975232522294390717908007662513972711747408032007892606352060172054127115410191309752056131385587076658557819212565732066987177203746276006829777739230374805182056849093398121692739484069482879136866490418746919827128155711202793652649392603280527320157022415519149266415130113325786822768294205226404017366207737451172776362875237133663609221208043902619425144992153501131499885234261542307599088286088163605431858964424089133797468902179702697387331554304188735874920739231246578675403270490023205171121909858210760425782379249736390155222590971402930070515660615560371224539327950241209168689805675496768250243370473863945523183829703086074611090830309925236963051206510644566006063742161597824985442099596633788404426379197633675483827406840848370726169629861856801415038260407531887255969721020481963191220313110964255890877251229716193030504975586268448148876138244874878138458847768929596708743366871940952771912521715468674419444656810626382595412364883116391184111009652320488770064946544735369732980181477967405382021958566092336319519355312943669333385509706837825557077324798073658419714616950299040741047159864089521293694448695338652611019674432038361423433714759371858612013259497806484817794515524590213612063528164983196156612860969220694831460717759446151996855896123533169033217630756767358670256388803855854604440759075359915520820379792026132502705354794898236489080849152593684989260577896573589024087087057622938466847007976441407574228360734022915504032880690812182313883225874204327250569067070328584921603118053013016102928564669486602717541749775910389679875568244510389676007774924151178913876194911610409163096243186050851445870577126835123126635006058677805358330014825524100291369794902551709269475871164288592331162487630238447565658181662186004101807063706805867937876983451134298923487131898202231419182951083661966507451776888360628227176189482568473803098883972954172580959823512071279361386343024610563723872540614756086568807533713369090800788800910123307878721832131794682034843789568389378006108199947211292742008537110662688296505249469159940892060543849112056480812266444392058954292444711074292012420945347439847340488926964342139710146114960571661861489333256618908868239692076446740536038843141932184380878349531791789252823987880159332075872049341335565269520643061591425464483587352967509763092533215904642877393397585191555207197449482089477150962651973401285876021370440992315394681919177869470914933768088452187406739097782935819914566416822626149098650809297821639850573450278300631743906289322516937764374209232790021984402532117175240371632565251151533336805552967290044379001524986521125533311920416278882719755360372860536389655908604984146955956156025894597654882231253081686523450030743613430752814968892542212031925272395773519368180842827416135830126918588222809803479289804231709609984458781295809458822624993868693393761371919960299077075671024073489403757144104117927770026287891158460222602015579812330449651609672849260100435883739170204735768013200958383744483928875313475794358703914340430978242268555916158268362958065913009714716721831164992936124237314748449430204605578078867874427528446023277653458962336976989052052025881273796676274470139436046811524256359385737446977057728731509023794401139343841236097754898379565163726738830502538194340462257949536850955229942895871517456831214975621297807225985675582051950676897623437198959824839937632583632601324555282354763066119948849311446092861577160796563351608316266130811652378770777160550805020130746455987898967286938670653434630944618488932080926563374196916037946308071314348356793516611410154106567986788506005376213585047743522710984315159237612071967231989225771327341795332197971098413711253941473216969724307659037947465205895705906610888129767639884712523899191779082295964550566170965881917879169054521906656159930449522978825980352492072348688106659209780538353152516761986285989176511089509082971530153607765097031840309054725204573350277558992752439337230190726978463253230537392707236295607167467676673387981474179081476132892798915533239138453346664088736932933664135294312924192054687492009657725022239822570025808349092311985809600303179741944399534631583782091809351558345247756456383162584226899727570818668264649722295725997105105878391744111791625063280639164632652788537843015434568260410118783963570089835136851999726016535566442236278019591688430198389597510551437066927894864695434407782216718978352091832380018911181425627953182225915018736709943602453952809011448454018091017714915953892006831212878845794870916565096567441583338276719021124717512128640133115865176915323790307862654123402634648802196807754884371641956947119661405626896825184738073736519027700610537557715150903658056834706612254367971477305619222533366794199303415584594586107769513423262317620629649606416556962517990034023374798697849892241582601958801674869348152201095601313023048128717905445228844707520300902826240972426950546956469597163635888961746004784245779478696194123146534733593134782724928908003197821982417902719507083329583903553425696440149528638571434903456520703031856760059653081434686522889882518234828916113730245045896842243599550291531558285835340258515634642332241143300791182599415205308556574548967490467581856027044975080183008295300522385608334488709026591044871505111473928942195876172930563337584344579320721321156647809127281321509657712568330705567157871922051109258840961706775518720999004375647534365191587884439780323281208312434235307512758669327932549834029194699563374579915883652047427345308077026383908171100760548394881204815044397532625147580482631351436121628076954569983738257658618517143950501335203855757874603987098508809943822901564123650076329933699046388635088970605895617148541474552996439799896308333852110231773192836193795626677967012018749709772630601991728257972497713878560063614685235842567677075385943465389522996270472360116307797265003193519594174566863746818926724187627004503102051466069341083110234787867437154752505040973464511686729618915409473612594340916520099721716107425303377305366378217207908083665491025062991888136924373209450265107053504265013474635043277935906604332646974878979933149529879692612910885358010218100388599214073828545993025799961857864891926680812226474210961359441214957413354291848497436024148019869489377182143497565681929827010697698669348460907677333298444238370929118921015396229736287771995736689376808834388065050064106359647589086444409118386538463044187806683376053931770280049860046527686795333661289694805002713188091000373284150133140328452797573221404022028687829695090756239090574432443666767145921333195993294669396167690863118319754114065354666353166154636830010156542297596207674986795904313307018189867179728049366995067582489815968817152742119183554932613214788623408534967666146544413289136323715315994866844319832506135175313115944751898574870914053858944690769694069399838327734531154329597603542744167763216352833575089267124735955863202888809170967468642974387324615559938712100028730703847975844860790763521405511823790379196780808957904743137978519697826708925622372701621213830380294921905063233709511571088600756373982713076080191409730366223619536647056421000393476084681492260404193650242098467474417419474132260965774693082986947703610501952773245305959527510908614137332169532746302204705421414509893021317844825491528114924893724283875954814070271815429743514090649121875026606684585676372752888621951564781318149423350512871027569582610283155811887087621141871107134248294237827713447878067746925728422317320708859664250036711379006453845468100504954668977390826169420236723179710733165923182883670338220056009787449881044413379102332355019092619779259778826182283618543430153095550926713509323185224273405578018162650723117006976032964027650995679456675063061649318809562451679891783728580136158712187862430275860594748277991105182910744476530378827118404650850630460629841203247405689132865826621856180174102667065505302158692333135844639239730398158164772843279102569140936729990789339378195357515607292110979825307376450576632483840727311431635331847178775188969227933940596066526712119403643905246086236673323722869650100856555409094632770213589429796736727603915576991143368737680959372426234315627281936835460421329506920668413690067164081594708015820492756294322538979223860593973793828772929901560557438203439574793896233319838017462998691375804446658302027152292222909585612122500465179181228227110524875587081415269410082757873102971266356966456288843895871503089567788513407154655963462668326969722101196323534858214495364982141719946873897254781577193911299009914037730426778791599129569384569573060157955294938592820947122366888884818830461798405655027035555908211373838224645430957533464062234075641340047934400973364373755670177391620124154442251897461461060058984833930871756866474147299774379591556829739479736406662486917698846408537401278619576039747856100753894967003691259471792728369950018132687280955183568543566017764192996230809085783486078583454186022743141160953612147315021459611337845876983844877275962297955578816150855076446634818719096000642305009863269197450181664428077066918979008903164650999275677724473847312967127249144211432990941353882058799162594399454049750955428450335414937924673838462144999364389019009209607658744727198625715070853806755825324062235686791788369061279195645635716041949678401334041797920196517625108510519838065021265765961859101795338836975742402999166257325191235968494024149184458410149399063748617236606009939264089848658584991583898836356141480484522067120448959708692465176621102416609132292599385459485650636978122298141471259278396907344798763257861381998413391222790058521695613938146059516991681906981134044415611448973762110768620230495801151254054539657734559222134860032725181187860759595146938472135349805612407604997948022225285998482830506545913711552858078642358943994245990997004269768595314277340134214327461474375301946221015513718263609513019548673496534307602615256178329340982347632390360056696152317330438664997591263471929861062760569795672407985427905750526309346665475101925431174399424819552792989143195722681793234379482421953667342344147535714479339647009789082535202026527987308412052476225931380434897759426107816069423254936465852591555496948576080062315859347449878235434481275345874603799443273950459069268143092196115967420647491892416550246397685255622702772616310348579128700532028543394012760530515858504449856724746797598232950016407429498574464299441075634059311293149602491940688094892008336141455624604866819418284169296900008277144027657848276955921151420159640305967564686824449716741585946479149421317774707177266498220423804053765313750207910410544657800044696892603145322999479496954605447388198924420083542579750870694389849956466552288855794044577132649790881962305920325373046791453763922360363822543809467651020126928641519932258709283981758833889960037069098435533142093628082512816452384892544871406922936235101907190560991746392494028459195395373903121889444902144002634528211287045860784245394741206741625028766179972436883214957238916856894196825060456088328239599375116120027582467563966862723333516273508349231843544268747140895811260927254868852710377390190168549356879041207713434887485792430741395067623886865794983593117479538685039708217344541361248612372906068258716916197304015972354952196982735859451633380880317605717730621446095996026567212871479780773355740754310585756324120658233724646907360107513268568223660809858517147325647611511023263669845329630289548866705427294915677343660017901240044948050117345702325742944666304695468925785560003043605882626429093425116885868602009374658392516632044953091279488209361917026698158731811788764942135641509827434859698877180157150328047614922628137869162010274595365655480252943180154135092196206459193768757112033093357681816103432913356480991283289752028030500842023754584409177180346301391271812427393430061280835130977275323772730901757044517267849279212836811925756241000965936676232463190175901336164092390611516461813199075013153890230569900204462529919525071881614380742604682058704275640970932423457626835017386433784282636388573787928596319485795713528385204487351002053022860211626027289631067808478725434493615858504619220684766612384726163466187464793759427586987302290675357540268016940935724268237792587606409531975772407509078695758815708679391075983074984919169891291963715283580079907461518174548564672393430085765236655074934183427429394613877213643610848894357193564711261978792286124517221468749919315438058650002326301220356907009094345292534487400389020078755702305727781242685233983701633223977696397406290603145541002473921012819300100387248191789493081657878178628053103968188047439617025062165488623121493660136628046092633446583165093331661511815686880155154263412313097722588031307802157731615737908511980875661014165455359366457172342118330123613146095922475348788852061485547190137228961871085561611735344218741075372608653638687402586037235276261959419670774531023024722525404049540237107946364695831247965636825427874835420819141720243804657796417083208619573324035042784531292985303951899211434073902597882560496291411508749914191853863282761306188474885631964411762349270360846698755631103678250688595495827941684351254879512192604200973505905791875718340178021305900061987483774903504945984553779266766941390174029101121388620709826062437076233367019742113320551915269387593264490582820423282159401731055939140436086336681061554937598022351900877067708961826501652126467418958245993752500967092711066024721230021870112560956026814203099175992522308407008216737928643766623191194798663660434812354531980186254963858443245212312402292454201543448168150765499515741756591341908563464606781477374976943847906494829294845519752790390481098272000721154763126684837929394975387921527659810392337486983966495402279189965949042161888532908050239696278887279977573553921154399015849221477902633477907806346909015911483955685085754298815926416627625859464250214528264700055767218670643043869217832812572939408179273295876891878418381138535523568734609425702368950203577647522481666416218031821642931774220782860949030416463540730346744127974348132257627629019998739904106149914906176011622062659448934537924533149735284089479930167509590149012118419573606883383306693053702074086604620626501384172182662480940259974050817748510268670273917117637395330730498945868762872260650271815475472306312195929435601550235384339272861150015449892649010309070763311119701028605566105571000702507390277250361237416776084612557814930307400456227848773765119564150547182062144478333106773054377570781773314151065782001054976384131735758832639833767693648798054936823414512336746718016808605271665246634515895383241353190440423094568743456516778933935158384732324728732834287756886538056322714618456551154723448626364979980642229147562079409401202670468186082098644035898344669696026529302888056060832007058003382110768699103930389409088620707860332618701895730443464711688315975048587187492266156109900079667899696035806617264351992623861306573964111725771448075919899218912410008246665500178297155900491023130593727283013040102729061328235812945985646393694601620164688969699281365083399045160967403403762827613427418994792701084852510198788513237815810592668994337430184641005885463228407705365053834706205029132345130567195408228214079196252603115162482166756783779588872184158783216122654340700850895473653537743695249052682365487122393699269281607586327857914545263929581986211573950108666796630236677709316920086353091643864982388912985230524108615633172880995386646960785821920692474832818487498275728176460585434476113864606115855585153004330150978493598299539979205251170123302331921578118800364842670431028874687225773812665300130706414489349534573566665159252115801283060382766150871867943510336048349531246590817806121546507617532426529137034141833027914773443971680039663819950136922971150363471500767232803862592948237091211985452285813322052504440018048223916877088263639694162630134115880883991845494401614322444219304030410957824873085838066334155550917016640314272411606333903298532331758488993508624804359203986104320371012086856885393372392162521866081223979447879161711005391126692994461855675605824660309944957224020086188561356611606498518024350966026917954812892341249476036593117659891100383592507219950559008695221688823984147401941057965879191988661158620404217533969395003858265342266317173311156148496099591857016238596796118344687905125800156153467353916046259661652376070634127158938822329820187210349450299722144433721068747948197968860667916833692014296854337801624298094970855134128624045237498617846220584145103494840890003713722118256956654698279038495218384527724060042716333786099012490032990726129145362434403728777596175506310923962070986942392861156975427340630862927650860693649735213679366881573098556900720874054672798786548178606099353373082075661341772053988136494719529742402351526868442524205873224445761448241348335382316835559486601189393564117214961308090982013505870713178986787783347395873817481769284661722226272604870619702733242048935653674802052584885917356025057208118306846732451180032430573933514128073443800296029910832689892470347520814399605051214766038429039703459227112906910071100596870472636258208765357322589362469443524813812630734936237242554206307446258523184335635063044504609743767068327321582804809420685493538383224335345975473700603503396351846600129790904810337840482826393712679010390049223854597531120866196139689719913140326730379167637808149458151953040379374066926764286846078957809151508316392275828382007217123185346281519799707187685943043542478382761988220778650443528506456802772846565337420652786956331139534386327415093620180688426277032845494459482524370528216743231567671197958116901095010871658404977028428755475319894547770101699272126978944535025055254238194084633647745015947463357002098330632648538147976251473544730602409876599482166633621346625546730128377290050165034716388961502521643678532994947005442821450045108054538080030528170500021473619545065596244081557221944626325603680428045356546815248135730507830064550439169680646333507388086085816247901836329469403634074087396350396070279589633115573497551408395124128086356702404561779078492992288654957227395973542540254672476256834768941507390021728303878881595036529030093513360188836775248989855426670140400566022651953480336300847457052631986434240154598475273328784042288593036175979605311699300653304744339991050287242616387106708105242458340912229139800228783982024404876376410094302828725759200760167559813859460357580849135315931163616411809898839175540180677926731401276329810867101917547305863944332234958296192724509566684097003981439988714487539890869897343023076394235662474676452707301329314403793125546914741935156347034828761463355868382647962407362468478377492859319846419178814471299915277298075118627978107472962474681824863749191925773114364068783498992768245248133743959987723817204614722024970431239934704267284148281560989084941816547487975396802671373989425487140669489765589664286766283142574448076494720863775392309050491695713689365735605186574671655226070805230257702144324299668745423925502150948247759865443976944261385599561261580049102236908016940738057330109752870056724667555505561295140107822522842754927780952323121574329579775549883936512486307935887804604702475882214728332835405090023131020302263287328471588762245520881588695609344195321118354083159906419914392533313630386542397299907206019959039084108931056950035701955800170722890042976912830199124983585337290734568023427328408651825725076588230445540785840110499299304966990932354149936346095324180135108436774064214147760235280796153365908277293332232285176938630707171193804999910413293835293317774066887254333613709712616299543627082354606360824414499895343042557278119864791850042263894286132802440259426123183500471758700857604116151947738799100197858594177475683584084241190793891953557748871532693732681587150485077330520908520415772239017164586920041147806252780928182463581636350393963099767038041006514580752644890698588393987385097676089620617903069800386303452400483947476485825225360967775078074151910559668488434395501933102528081705123242051330134850876850025081896504797875067946254875665263906411247373740867149026067763846236360763560883666714553803040741193909693519690231850243378963287746209838568169128121482548602992367313407954443900968731379516944157167478716425965521743165138107570191947492648489939843385467895418820060341254124764793497829616594412576172519171335843197669080570558682267162886354845399351304963345755818412970151965459233304011057349851759765612368364369296788156540327248621252817166873201699361049065516556584557181838240896436612166576644182403058226055398531884261917352497569687918733671376095819910995743781804613816184571825901012535965855645635786692244371532832616485621853547253968969146457883554679544187850327089640842849367719574740668064250261788603695688595491607500551364260769060052237156818057496439221000084753496092375661171815029222278823494882318230857285906083988636233460455757103143305261255907699192710754783399563003558515968731943864822790137371836819543759526492853705533912873021970564079788218111178128674292994429059007710222492992825154287524842642266288877156202592439423246670151093683852202064975188965744416136230675063950986944324850034087751304786530559276820404047519095047117587043001442452338837771101268568777681692196297468846396779782899393087266695217289109626177729110038304421600350092355049154842592658459645183702771937563821050067522784610091277623078612125157333317463865019570490425348034387171531084909390809379849069823360110914213500147091566813709233054066703285979728037481734685016847673823533447072156536455108168786101561260505149743807724735581732080390771394423487360454789109681019109277731758401911327310688759982228061000232926992634590197957662962400867715600178136252641563160596826532250634202549066609665776138305823374318726333412438761883362488361579599063046679063794359563763763076366249529236439025400568539597401983468483640232803591423989601046562272894146209899442066233702132157142138269738581744257775837963817360380011604101611311242757847504254281806828762792260540072569092678070576511350971019836481783469628245905098946231509705744122810730888634885128845852819908820454479260695115677034994868845238124678410401722601109320360827240211226627233099538536410526833947919721582116923041146987675944491550069639476791014219922966162741596996170936289250900024384905670389255819951814053059643964772496873946214008038684580643504004552398224902768062322090154426078143473012237475521164955853950998855237792746272523972901088663830749473249703225975351090477271856178340120513332546726988307340791898760554414845706157264573008279668795118929975274559754607463474360373138759205885051311838116740546197913445412824579591789230934799749481238980242455204196542618843517242271385678705821002203016524516808239265078547039315850101850238289833710791348939620061647176295262207508023545986803900974823943347250710098386623679106135919002961999084790971491416416616397680177998737964930995874654030039132456153422315143728497979540851404221769490072856892242688673963753559372095175296739760358434469748209402732748640013288977939438626780731441494316630462268531879412011532173889204962691813411006653722228687586454816738022810942695106564002073899407587963207594705931634039303915112713109988206583414512632074238009638873913543463476075011557966945154818149047462574812102647870032580284303915712083354709619791715850048230158946378983026176617015979362212904931193534085379626361110408774161710826074763670819012669539292574580626709462453271462899385114621651540368757394395409424891059470307464909024045243273532798504342760223692030665206888457839619001275540210752044700497282993631135792227305896636049016748263387055157750862316505352122373231519899490799535133751866632242735271393803928720383416410374303867791811972636747993082435874929406995325468627734663137883822807295411541745345589202009590138138615026158732901844597338268288784441046952135467538900362843446088363736712236454719515642666944619011311804408765593650439038230546844875620366611002097478979497888288612184014785367655347866581001327515536324801147198975497109892867634947148385255154898232144254647595892377053817592601326383649492360246841292430073735430407680141194733854447056083561488045409033880748490676235953254628559837709911499486395282087714877846834968646476032807928242280192038414473309356743168542087338674202803642030853320568403560520918795340847143113176734804845386975763332749334810351045988559818359349330618257154375199082599983436792240878396821120750598617444012049042099381158586389989264041274455542349465689518901466284981403979045142241046459315292822997246794057158590925296758541339628760728233328166256241139264391712749064643498537275511924484659862797135303942187308607267625496138686222911277024064209002813937339748890404578941543825690157315884690034207131787323019858015601830501888195296035549486465721994217773680440358915439106537854461016427050267188673241829400358469946123738050156570145194245735182149692914848793418243412459717454195152793734075615843317879144571468243401416879306265769526272158684476540463180825547964477869599678732536464542036911190627782655599697181122717549720939325963555158438076199002081645525127006493878766555844387794873541961851102315304985195651082559131354131095268181620166100202227097797093250957695105070205973622100734915141079345831291549917699745256615527969894123927238161766960294113490779078836209353487140288570517892083494386178821480685186621581914332710112419651373557699721525954318449434432466150148897425839270217793657558347345687214944097833251107584471653699413202348743140757859262259802657179849794656067941444947028345542676306359261352530596522885949923748851194987400061618692320357452725437785140852543335915619413170795349154510640546284259699958279880627208243356527786028359034782891224646556958016808962881699291135680774741941419189795233397491323981609613010519202793038114848493818272655992643757268239135817423922522249613671753912613344298640516096228590820353814428432108684126406644195986871190844333146192226780026695611743326599111203718803958389376466448540678661327278200476842746288058398039441074024587406269095948984588731155344398672711836841220432715306917514910570611034301981953399641172254038253545422872029432628392599674009177375505282967347387960065242324512946420359334063627878951511132165347287125863036898148686178854333939099506245108331432291745923143840014913681644042055448606035427340992520567984336865451116380352686137212525757633747341928526834364619032482508533731298410505773584781443664517700576306132026189911062582840011989756734553987705698349644581379118295342478265623723185792344829890542803289100164089997865196793084690048094559652662627400075787173723890304717814640483677361179656633376836599882512967675723424972651050943848808310124903931229053716486226534886734273291876288210777804095966410204319438918039140614480276481108705064122959574269887939031988787462018228601579329244681795572756234416888431464093550794843221990203420171785026279856930847301055842781234794556834260466332505141439462741611690511288240877391176605637768202616009206936259547887927808072698071323579831488864809361445030262136718873232934641807729453693281398672683661590869525498112052499719172568588839957748075621788861104401486149618797031835257064054779750242514129601073025814337845764054080212793292381739426630568848057805393400502750728236470210926240752172303720754636292779473548750798847051354196437599385985002706065232118775434443601080277335262493805579673308514103236379693668287045630495032458517458547814358083427247932967456442815425541473911732860651214533050505337857302888919295393364047004424767980467633080186688858490929363994444241414492038201747869542396562981746784007492903072955259677673481594956539242330929227321591519620594829311551315401254841007902168778218831311436139095194851998504887681791137805076298837567095970620966105963398568894562742471456609536216126609790372003193343347905132253605461145090182703973784299383049960350025025188232720474627157875281781480421118850064346331974771139145904160129899551992035550639457915910408977496585364958924299892893406106347903915665093527249696231890966135556889390025746749373014466804104416152311580730028379949943082679249342155831124520358340573409032174199241731586827168503481959028404156823732342087413516670802569233584890208005868767602655919540977399660060102872375260587634889967999670623341640678390837384209197827358126859300128729079662193872869734601039393867908988016126632687518565278792696276659777511622481459743882381920346603263458137276984318615965748788318539196309272865597980158647232302415082075694460462413629965044903094102868363779127774432504060443263380349495329290550190410359726941461080773251590423348755474222930889795890030389532585762343895202837760410797600293582615296923159068882709214819419275950824463391857012929600296139962122984785473720669392068620533148777743601162598927718479821050978014668360610581067022744672844458571435989063390249565502789541219694668656259344624645017485589297548762501567991237577185462662582644396841031925489735340794664472002213623088485324347623910262764258806991783007950716621960822090358693809954083285487621328240548461482392929442455065096871900577549323488044086871311256677582689522799078225152980902712394151478881390540442004911575234526624250719393700421953549202275266698253372342384134676590267672309794180438702106955117408500018246696830605520859118868242152098828498592686395501563872320135859847209131932384230612167785296513456274092206775634964246091828305334883995852610845246396306621903571953249863796001382177068883955381593823450412149296097088680958895012313524846340034804072197780723798230097950096533452918997195383420076964262467363140382114922885744892251823259433224838112746187917548986301769045755802349923755457517117305059635877591126129261175294000824148881802933217276671065116362844123719021977925617567724609133578392570947110835969818985264467734578950055910351351119851950355340993062656195613466512701723501300576223274579713554188572223573474077053102454208068341551319079063878170491354014524239434428462520035812637872262905279543963246438205941039734371603977801923140247677848761325528319130032929367433634720680917000360943960161745784926753466527136023771409229342070998491998073587035773214785191028011877458833338611706693389980820323742981014565505923819305373605040454589651580313497461821326486224794088550465091452879878346837276109099641966922589494089099446210941773191422207497273228072838828502707537465167267905848426686233246547039341869116092923126149664582686853666031548173474564238050032526008327057907131139354326763325190646028840610491813722922487414724027749372814412956915815881659163160682652578168961855847235812854593035549284400980628470105597752214825138872338244768343380062784893579099398598071602942539226612222949133231324303754814161195186612773323317044359927549457305177911153881776020699209178561260903728646998701014068762387037647297302059589764219278029359107301451107984738849562438736914576605646232470915489000505150223798584914018468249259688664371965777301012500285835956200493819644347196624987173894578009750084756884528180021310250988302513213028832590733552659023713421338198750415457041029068644897316569341458512615489654400450398390507464021011232979121718885366583713354293953206887998421292890600278481535646554334261846043165206128033365395356092839837231017333619670895591412753024433072042543036581795101295371300685313971714003394753609042651861355677941210897844581840290048830286265518753119111948996772909514529899518151428995048296338736715619458094227661348038629037177188703257257244449681574542324712355573193046161483473178259786305585467748641423553059638762576003513528434760160433920157940610600329060754118166451707841901329683683342378542994092789450614932315611488737357883853369626812539287371406052090507735714364081715989859554019362343121293438216191290107485260253234600439698770633458478991386010356651501517516042369581801581119491347384213930228303004959635426967647255933198315679280927686802879131835129099123721578370788348553296305397754882868286275987404642710644263609626942455638519245247305749168058130420774387675472062354108763189782463838575081208661496950149220941522285725856556437834581209316413219499022158860635696309450670668790166098984076699350123568650795578756174799223756705772552698499605060070592676091742751899697618947576430140631576211443965282570588048013449524070482462889681930367467704255913199500533137336763846438841468539886146480105062562901891848503713089078067919552637693215556645547412724530232457688556002648924225320776982291360815985525302531195839788479735910576214465228354668376566100956643219322599028678909589843434148900280038403942114462867439928771791386002119114195789458316769140567058681241316528974681860473594161930136575756641347886628887288086771922728940705207239907538869830435609002329063747379308251038152037061363003316788896136545222483307250821892571360034283975269820677823457235189478300342636592178211278548659826586783195973832966935828465081321381292773448391342752536669993881787392930146909900528578374296362870681435841979518004401915904397685181851699919290380428991016301598818280738949104316631432377898018852132233636485433282404726220870502623969952011310321100495756332109756586501030235692493477381780642254514767295641052962975298195605689531195885331117753363857194827867254704773120819602428609993783084226861129627650161923542143577346007832536512755410141561911628829261823003227393553343984376455093348024055753455990878954071414361459859750988691800374023472703630772259214809799713681638038607142002348735565147725184499630700113755230118002672389926962771456079082147287472413924323668441012271025044474662270700666256503463858978033579246321130008584805187173310273771769864239178198878970964445407371035989676404653481240294251210607401686447803660735078282719490068998051732894117079116214113992911889376522852195653637123008038306968480644884405560017551614129521783659018013573409868882726289140707507832801060397193154201302490799092595951670600423250855945756187815050456331851335663358433094837946519775422825648889008953415038759062484226670880874253122108735553501791348161114780586597828640637102300548186405686788951278237051588743481709999695452833687468734260504152841059338138613657569504772170536434597786480898018184173162362127462055390582124385237144114149075415971488983669924142156487609002641960503511368852366615052829320741495301449658150506511942987054628856776600885495585958778431278379912998460784881380028470136564959812047220023816450305888788475284463473635569581993473532574220255213998158339515583331600961340182031955503957972440265734756814412469427479347093272190403061872570463903806974463492859448330911773570176927401634143996512472601572521127837464730581195968912164365553815681803071043588777353460381873231462801893211084029686495196778788710610406863312045668159388194530760166798668301166699865626251724103692716250541893070969050645164080707404939878074119035781319583188272024655878206007699779114353183725862357947898482831546492938473619140588892300132534834646554613190807818558179016319528455289325599895434739606439488593538152661426335446469759774771910783385809969006569024386400286941120296671982072844240011691195154546719115903958217364649322153975210550013234644223557901962049575207492323538690477229466899433224521860115264314303945943310084811332714666071121343411387459865346547410161231277542860769880677703915825052159117457952559696469762961865483680768608253232849097498930933262713698616120645412631697396167860385388274940520060016489879215423879517575126031592047918248251555331429219815103349868726187428063168082608483209890479505413331176100670678965750574081946330992413139358638321822722250810224962302094836867122795071014520792574252270249290331024824290510463171906222960716145856256143366701565879434245562232677065324231054267909841433716927088000321510011590976874475336530875862736361201789812015973558864645148946045600949137310270932617766343228858808139615238330443551307602008895657554298201886355268154237950840521650005863649646143485961132556258682078648942798553312168567297082275114705542289856602057761694731846128827871982753831389423956073577611328185095539209759216622362799528676414836716529662878146074562952899723091087257535490380096226165116131436593433583417578703322351983334236931495626239418746009707466154530020066728887233122529467298455653697273415706466826008407749572742068397548552313777170104854639690719461653749756204177108318346449572564268843564664954190660900144967343534627754079729845532236964372338978989035137957326724486246754603708821893917335829951922500537456000796400357742601269982226298416971834522640807308510042278640668494055221294933352219010643335830082918772206795189213529551041049857698256695912917906853120705296876427387597130521378125773316867683688179742606360908962704166400604715990100097709484085347156660339542108285417204208116862629021738521165293778730158077851192349616266074814897204993376571257739027380319702603091451059039289028701937071637659706867065059210495728779932290910033085107409662755049565556875436521240175468283869823187284244019356576941714289242749140090289014437989020925019536875749265487463485127411060507938064697172757433087066057516427632822345957117548866539250036396021919035730358164532810874143583913757657904839615433543531807812822613505433937077295298356574394414910753240151673559648713885518035702386053632111292272334802269129881446963693006457413568420616215089976509479395475591445875170055979808344409687838287983692283590580311408747696270532761420069521255926925017854119558301427928705754961401738350258229490809210704793276916758336298594641804843502040591612496364793788475152036577781954168445798661888314033832131292709205716636232639025965499979146088762732000723026854140515690883043760206574058120314916547790131632987179752431802787795432284105306579090103591987096359891364102359281090913168478585895095098674734814888441366341652488284215315563642322932415960910924439894282794667411970715773543551595774442385664548130598075414102914901522796620214424319244898915436901695859741958430234259004389318249153069586417289784843112727080426770906645323180147880514656968859012559692379115085999281088620998297151781130608698375047040712908786110598707389358454052607777925914252373686792523899014785215136131472903933162398485598334324699234878029273057616689419470943348687460218124233418162130455720153821636549622088938051155616774140335009531550709335588740886554125063066361491496985730351765076871275432534228478808901170627871013158793058702969825103701870814898013852092046404217486634016578748794618012219044503297593232297442469014803714013856675726753229742695121053599481803418199684978827380441779511884939672122798131369904471993678120634858299974825916146072764547766065681007103610016109943749783249608802161438981855065921086479032759785711577400330727816076219342789352005733782852050163940695279263189304710101772853706257351774210858609115012479767308031963269566540179957606722410132060827827841550723652014920133973864332016397325698705371028755118241493573497590601714806681308607209251391409852385193493983916139003624160667202367826559030955600792074597027878852958985069592461237788966625834639250563490420951202683182437375099734228738578386686860782444304916848223268127498950928603696070050086701329966796967355759685630611380011152845831113894951524457996095137434603269167675148072302919564429868781889529389722764858803975828723328231056110073613993308173711035005612211840143101865837369520739261948480680317973016043298923332315349488940019715038898556625354919690643624948191201589838123475418873394299894480494164325187113375602292119327769034115048460671421917812107882380215149927550360695357668084768158902497244519211301082895622023357262788297419249983774275081078787282458984613667699629687341570500857596870948785206825130967887072571151554656022079566622975182995917738784217241383840237902654173893461780371759562353219826302715301433123658327293184359656147401371429078243032562260732210483277159066177047122360778536776804625013668644244776055830872361997844267842155443017443844140999681217831254055718260330696479603444896298121608738799152063404755072879380870583810007384083510366273144527427858009071232965703446062438921124789704035178824161818376848655354661836124721579113856289196800042900614966753745950186373981181475323638381269450831107702118132467117450704546369745684903844375662336485676248528172735817622205174634817470073998451638178282672074074984345337363679820059722443997792290616791184584195552168698262661661638581955588998470617639359716296933602068964454365152154160016357797279832503450991235310792097334704677878730521383832250475932469394127734929361252422663042900734921976987141290246862758176373112927987282549291910179727875909727223584274541399612703395482304123187481161292258204458294700445511058197484275582858680152669941877577976085131314941772728718450070092982107910420989321530796689536847011433393627856309191263067589231294139166453085378258184382772967216653190282741207648895240266541588330057493258437324692528970774107726129909052405527070651289516015572329630599053103513780297875073917839679982123501179263760980839264665710497053951610578282492971721759187306454311540673762873275352206306157672984300995977678053489759779563640304982118552326067584316605568648477660079364849402102536347224287595869875913669826791650029297518735127814488803426218664554443573385199706424219876698171573998298899537808966040649441778882597002829045388698136425589867166279330017385125491341620752003307218074647041378581598913660318779321398798380443269273920313360265571831741538458978315339352466726639450856076756172723810317515307050117728642719725605256356559513219818514078877668840450547084006060657368529458173242265058226057844130251268181855700335852078828089818491744617633443853631674948811098894091059215255272476240835567961022871677040309178849951633198979762141738641255442495920920068005446460249989117809991093072660923341550928086165313458107637378301493540802154118459222971340798623770550842118644142765225880024357239064372624214480776535091478868465036938464751333805541276978186762031487640383257826807071526754820848391919529730511361674467098137842012676263316440288926265244641652648669401270946229663339953679870897692302214244439886523336147185691679732865074450215278584416377935917390278740724659957357299195374902549788005570254174565017913489811946003676477123268252481970992513527157426201403825931611135512896835796483098606099441246523912261175762104254812584394083389961846895631638533872978742008893773058926583814175326563763904646878960940852240149568651740264360075577526207725112884972452425419102326852027000050947062544636090997031698150613112669915824313389373014592862893196600496975923435640750375723018894817299836241901248910912775334790985875828747152073114719807220900768030882031137694570155027634555770026803517708991535101372753536211221930052708073338410820172554143962442867786293243696725733914947886306582937077293190670526984450675588833737048646147903983442416150189833093534275104299766120977165509963337425586477802241350359397535535001022049898243135000252047945412080379260303111582265117661813746816366426332344174264477937635124286621665757959085093040674394278958168766823199138835649882706817879021807134846405945997905270824595270251895946457719325784499847715906952815682171475266731706453589350839837328944729908109299798343762473196851519751384358127372421776623691260865424825567166008191483780761790719892571020563623970324655777341512952702782737114779762794167720061356453950838496712716806371519005900728534594472134819519381714003840069181176174819732019083672918896796917790490810935059008414702389921761688483591565297488775149190581063068348424845717300806002038329720933366997721776370157930772822965678324652783297555286352939242885194812530753810754258820197994424167621500165734562404564802623286202008367390320645038198397157641139774374387913842459252708129571172729847664936050424911018903850654639300759111271072560220184877069561908759381743306681684375969104887982468864108418473865241566981774438252930849389953822662792887080994588123218709514393026575120691714326810805948113487443245133385976705287356306378958481751593890634827796481364090480283184087770546374018411028409629500972019874604418847131493313740647787738492837454071016388892515735529111461404361567245841375362465204556234328504450659969094946309976569740718286194280832949158917241446616050778913628094547603316802714117302400535573920429601762599145387866801869802261781317069509485643749534393838102952583025380219272724627214633274948872957607715802751122269636823970524750323340166544226646425397363524713833330280829795401109987108424968333045560416650502546501996188762356561436412158551612636844215057183985769488121918210032745783736119195376316832845727335438789744452444242984631694745704856919371747628463469022316654554900479814718082575557713256484836763565796110320550296691956082639612819705256084060415924435388661285208530192818285515523415732371897653703254354377058578768912428955010760061967692038278829807182973838537025260487754109392325338999534819097446555988799654677922295430729923985809230264256904013764157218871899204099097969721980825898776421901663132006609016604430131746940350511935463242831636476036857054987587117339753867064907612312315503552438738388057411085344507000553014092093252165661452811231154213308930947347634767036870990089902229943063280728905871152996988052796497396653889874609734006917542798286936225024774865588671779833596881572727237496097532469655812832799242977701297277449830930290994071081319996024756767413892170790423105089420644839196067572015867030501489743947208827895824116663963405512913379613729823882139545315364167137900988574170558767490026457747945314748119225970328736971245048423410690266658417762775678200791714956539567978287744346843406897755940002359700501931029487789340280567631450515213895363065048793078430346948534375529171823325077170153933921553086666677292161610656070785539350897118015207249248528869315750026179792280354566755660081357004622483747684577979755953057113625128310083659811948710435276856569078082688610735473435941529963778434324746550942343649758385737123391142912362826326772875644670796841179094346666150479858347180928204254741744369829082224511006178684797666703404535704885033289084536993433971035895754206283962833305242913421261786262692649006049971279693438355534111977741007206990356739577788638997042693417920950632068029360428191256252172823162431071727000621603143408134704212482340807392021458776072850837685423224311560077278269353498589358783083534107996743247782960133219432690287099061911700350918215102789025334349124337705019456387527597281470729187074161835344014253543261075811117853935821193560034453080049758738865555683962834725233904131199391624878673247073243368589489932129723385634794505247388584544081818710717784004776137576976644682620057819125675198130328149349456987754451389315621549264417195275283351805025074617438314787809735185860032975370280659581000713102619225294105936176301467125691632843088819137925682089684874895041942786307315853628229680548210581249369054107280815289451365851470244019953688385682285208965950731586339289759662035890422933142613214434275954794652269383041172952771870307503670159346029204380818518755733860675404467809567037937525148276128201414170735596460675336765829270913726766620738043129502126523706690397995171539206594019566950155093248960622888487882720074980323914825339670202856485179723747772969083221742296323949903497108907412132105770090618498781760154400698382066719553485409819111519610350659203710027938885726614428454696022150254484765636591838303740231657645981031356025180929371248503209560573285289779580939771555421514823183170184950916768188442756929337506942139662042278299232285153331846492570712334806236390000527255135934495555496546832178634338060521852590061046595309375936519798688422685325623463480708414704002599327879815228774192184507856298504505084338262193871343078982608059891140784418853128757472761985274419501682413883490767706550019670454599501295627522239938740148622080012453438713854587580095697492315394746699130915195650476696807039556958527435737122458469734160610560326988401439617047478030474425005308588197623956909586492706931909674930247715159009052785759025439929668490003973644476145104251918791140243165810963712511112344036604267950802864093238885436370054796904980560563885567434859413967930889269977935298961443054564132750632437776433869801247720800132347274501477870611378136673917956842459021097516852426454675707260065872280183036106394388717955941777954924326498540220569161454449887069948163653255491373033827315793753715411147150624330541222796871551939573480515892849482198907543824773135340452690073585600454532630319531552337312550547957657383641573074356670861824025289355518420065073417406191965098523101108046328511909104662163692841214828556604472852805765741642704429974757392374380156147558348811445932762730924010641801803960019188193480701641322090672556075142851129583617555049053291556677503975439223895688142960330512734894381426806707899484985901971531403520762004122694399323850198847603071693002312840368109182180855571148631170046735668253826687118840480975319531711232285648971643304860162412424780268832576172660360442583081186142160565116341513629670927332859217347514186509901527572931905658244497680349715609017348871818743814099283318424091827320410023933625439879392004424505233747181442418746416910046166318789454116662328141567263078013822809144593439002059655388582561092374227154335527389626530423943871855878417153957926128430713243636610853002372404185503121869995776670571864581910437561767845888114004729838014587402944445841524787917722290592148971099850903998193863634854309931779886726182079629418861202323590127119104959226132467337768339649021652344150758053605908600593733983267972526310872138025417966944857914515751104516855069699136617477116032758861908291061088630425734772870754418948543387742548804756300263045098609336415202708889922124148257826118635615801737259803471299263591303435663286448489039060838025471268852557227951816138851433973331466777582642807460509166929927970601529885229945033231685653653878113370177512192384714165847344557599507663984495866743989753474483973125898566999489619016354134558395930192537240795367475776760230587378068649946720631778791695838823688732387981969713041494764308934949610203947100673765086034518564344419676094343483493680390012228376050113835427800668613039424046440331838856324139297193152415139022764704289964031013213311025966957900278719048754663805658740722614027480112944548170188030375702754181454156419759133495138317013636453567401434936811765431809333171300931061040132349227693566107659714599970353600118579749283953098508784848892424758121350754799067501900795918961962071770285158881331898025293082414350746196925903359941042511538193369257537548827047228397915904833639442608258946789452486830905868824470436870454471405932368995224776005569986470147464530344657280835633182948996142543511120332777593390127966299578581985224461899899726072437120454483554727690886042643642402464683374112415224637795843889882887106776033524694812799537430084926919201213491088754644729281279010733371945938164648535040259415130822410330618798601327240858731295560910272244528463185835010059021794220890536026759845617808559388459469177524266205158605423008572108180201150108217619688016487608330667309777239774020138024802892977469571620550162583397249970113791978918109778120192335876065083093482201874003484487077650811873246836232011136840282330910890762060592878483260077517568757728193528019120076523593953800611587077585549569957706713731011517485420633070808880746773384035110809562782143543510711397533376474269960289355987024640818500645768125904971041618799335044064009094193310276296073582967421270971900936259083928458875134793236229813026299953482060844719505704065473433670373446770053227337501981813759409849584336551348828772223789855244483338472009021994225335492304606348891633125561395123351070998527005564605107649907705589607581609263233488009384424089836982075885011134027282651686945340274842619439534131187158051830672706661837472767304049353824344410045651060842756032042859556731355130394757079129782229387408179819703680529493117482875246517870185870360910406623873811370545898619365876544321176133324988274135710968566856576208229158882254816611257700430401876945650291597686686457576608342718303925234333489551384071601327950409567515495484974884263100959218175835470573184393737757037066954695218833768912512979590525113770046833110870547469355902339632835490256636348713344927333432459624268021113933148299204134373137254313465948270020556047412378909813913903613354608467758910098409008518475388982240692955144541014392597816925304134977605481622791710850126405854135689242824726161065335105491383425848531611361463075418217210939047222492983720751828077923077381260051797252459397011231207428212121404066412113926030989708042696692114014542970994941004202448612989385887293815737505269547943451729526174011986789800689614032823675004385602219559428236956335489393977480275562137547008879820124234557850301216345580140311766108360839600067282094197733518885705058378738085492836290252489477037226017951510804581754132148687487345848193816224627224378843383219617913591779613006088202712907104585049791673050695487979534080505143117701538029672486615292165665664205823575670589485178245876333736905480059913131148515951603784936677806921195963826913990780646340471610717371882380552167873481275808519558944170449211673503104208625159865188625998875134487134755224213298795732372041532729743872091966867628121607825639453643457832111536814677557061783421221736782825138727764943026488100351450152457699292635499447134556363451395283070507216957146105888816538852715477651150484624246887770681451285308711564501207251963730188232647644404280874171977171059850164078739761400588083952673275115428080278845129455313015694498385829293278716899500270176283697015836322917446986770865489204876918551060917551689602582238064143993757460316274709158154935558297850514825278721951487307763169484295357552182058390785919747834154688659115597144909403567658558216230603005729947027533422364358096830291537920719488061275335410725312209662897511320479289799589996734799471454990121128726084726651240152750867984784628237511452416663608826413016779519861919281762383777236351249168084773042009333709340285255029878285358857743107208231583813278284419898924132990410656668292820483776079498927883666624592435820287231282782853969629995851969922843598330617878057776275940118880736217522673225877095824729479306646323270232611479636122010514676720829783509289226999476854943812807643406266611174091656501764695761285176241081329381580319599056387263230369331660887599236723385766309782075695288502120866582480496328847838782839987000858610353112141431927867316678695741938175714366145464961237495701408079178671460551476350556063683953265372120482950970300825510611436074443671537564757188712885872727480221405823218113704359282086934237421876034117279023811646924588890313859679027864384345064850140131149834772659707301246197339068494858871926124066220849580419143693308938067055086138830450711801095173080691795209086570392622314071543662644952273377366645366645876010932326708494317269808723735836359340420803474209554951360652835817519706429063704059909974872850292595662630917786953259902280182735549295608810359144380363057160544848988718840169423732229319796042248391080626008510279841439258187457335252109765851449139946716726503815066729599616353236032746335379664426149798604872421033704216510074508401148135392751197134233426052772111536102379551431908357942068063331649971561588264172369867728419924151690605839363539606965806850534853853492552634525798343992775222601586080338132508680414549492879741196559840908083587090401340055224987005249383758972508888133650237053559848323987195620609725268848895432510438187946687892531278144075747235725619805884655222524811234209357263074802734838857256214654528100462348162658553187223519955110891672449318446600879040673459541861784311470145587353523906717937722071690829119266306156815045765717033754897787250000911767630086960119682478699148958192967853708044553289396568694227009272732733963876644374511293718466657387325488565102799340432252795857656637655069725804804549488690983823876755364878055911192849571532541429927949965263769682040980269422279309535756913144967841883564169428316599866940269347346486105228841568248677095770357606708721795418208694800326288645834607210567700157974723586497469788685272830941117362851933517920560069026127401281725469312081985733494413169821652109321650815930841086217752796552369924136230743073581423564460306042912561186487183685417800437877113768060520306307777037273580877491559063075571469508031456623564796437326568458935398472641950964293012583845655383083597063502117872658701878028844279165168784039589370517139423418204831511982641682571573503951321227089894695388036062286815687530570210707727361670564421697738631312949246548029247896940437744720286902027078594070768863162793121440734041100271493151453443560306784215147617775027811331283071102561590429471970246629659625999299717919749220014106807964253583986933466457820483680139466237722431447037184440721837323441558122405412914726595825658975921601795988634609810796642936480133893498783745320673867690549392077000167642216547473373564466088534777047519931833353424405001592718755389065122490331715412491465965717295145828416858704592494256031254604701529928552880395364191432193386027149469981054828952525677293937203198888117552321279062557127381830354041669151167959950535897143746523213385840250812475081157592858290526268571949071490233208751020861376575800714566209869867117509925493923293879261662974418625846382435286938295182178604228368921147171702222028717907527810180303709394252990361768167838713352481697305402406441077411731024330419495260850590776888980674557612584739523197938373566065545903467317658252839286376797349410245881033628729070562368970094069329795894298553233290317425791579668722821795321624198310048849632270967908585566371000998425938605435866163020371290920289816993020492683891120565850236144456183739006097417861787069972953333582479441656392720448463698750295657662071744195312448536451271117542773275026775862535602969905463135921176641339197836001118042196794850483501553520970274430181446049877812068967979454183031424446691727662916469269320779409702940186842295503423479314771958524963223085636133791911360713648641224139405222368275522886824132043599458561884493975713561992814172437182692480201921948004150342032330030714013419842157535265328590989911151574077449698673128346102023102610096465519695838489544524968101751223755989641360587507283324053336652931056419992069404440541856737394983122412136688473394556220802895535287492706157046209098100718113364898461736653225848444476259486622714319321345804282000009628997521193078779676671072600961995137570943031725830505553970575070021616290658764379776350640914765174741079442179598419153583508063722050419114122103915513591813329204263736692818060562216517280737225487259162468061703175815220985288401524624095377114654523082483703408234016642901767934676296084124254415088900342451174994825927628254738677635521627305557467379189161061504709334197120691645312447581372695240871083997401952022432004701689726250027169866571279384093794657536019644527174366580422777710566172355958577656997395208328750511943958721661532706786476429020413847596282412543835842812984196435730425861793745269720559205487484038949294025774421586155277222831806300511213403508872549927042637985254858394895774102410183008045185083225254620361358350401566801584010399246392068462054562056736082964552439213549561499458340038644444459559999406353430061796381621817029013848226007997854048171693029013608772584110295961948479720756924263268158625850839701590821845893423000498552348188603885257575891112599338719947434768096986092016353454146989119884950841932579613008400844381649711386413189607241641771819996778625652291549400355616434039975938093969322518680991786761873831890176473804328448010850945272429186826866526490864489343031795585143514929045744311924908084381034564593303785756771677299666263881818671727177136749804057368662932801138166176831536986727290415526433251385258347439572003554582051315948220420532764633098642710758505089277552191163331349777691182751004816793109139477105149855225646805865090820712966805883854113264994409491765583889932716560587084850660731145880736328487207006515785543018213030971865546974722738370218434546800348741922895450111232403734544596602034427950201870656065207121023877701387313386411973893048210058623592552407429836384055891514979452248555220405957103278560342910127051016167118412201639348722879972437892353174120540257104466914814364493044950176661755790880080848537751500599927821992851199439465397241296495843218420107777847912468665701618727731675629053784311007751976934354300888534727283364681642205850464000615888955923880853413675390671557861957706316274421623646840308838003491694419916007101304107239991050409951932375884955210862776411813881193837923778541186585865151939181640519172073578708519893336390680929731597423050862800823956253432001982468188027811207191084505976456120225237141918871851364155192631167294577681578262067705846112292668851350904070133774247160132759388470615119260715108544233447302271094836257531050145465694662887783346790468585898559201974387700707232409424962336468743446883135290265791230907628362912509661724777506966694148574004552864257505818522217021213968115708400615270100526307053499413730826715652468899190507493368681285952436330776753475276051489960439767031304335348130477804875371472603961001377154721908031658380775294712760349771271965534271375588695338370783873646688948657869719129691956724757217880700146887305624092655522615963857123584877109072750681270905954470111557653107621852485644933835056750046461558466293926185079839891579266772800953210286756411405891415050501220418115169785771918324360733398304541700000051039477897346141416757710826431627242222460153889542579765981318231643960306457207552656889451623026216974604932360679382729511212610189350556627748889875773381924512178095893515817719616938580457430485417074335981649596387139822667603351195557647569198137370454990894747403168677177548698649188626537380219141425153908662442302886613021652435000487731998320766334254659802728711920452951509126583633922554174866359619468313211795260075352638361175237075517300935062622080496237759053673912048352297644135334868513685829832273797605779940642448666461764861999091262938232564803712526583837485456089129083834601030477285145335296134529528974169975065416405488887998956802867209487783557211558099752885784249513049427895047855613131953123769499919131118639170242900548723126124851122830106655910879448169593681112466140742893533196704034743338437005209432307054979074869081143309443372541663937566484534776034299497552162832858238229719123787108732344891095644693500332255801925164871633552271834769236290456157400249210559045617668230397486539601738238875983939998082097969209020753818127842711559419355216265530726659517974433422862253909884977630961643789249253383669802202503125094328012187817265005026663480812560655675111646762077370298376291326978968419546316340220790888285986407284687468995298084012389040535939953771426919079661845272678463245995630717373433884155019079260591409795635182586094256287087988588642022172303687457338517552918624403305305351955652966401461638805923270985402946715310497716060535035127414113608369562101992873151882220037524289343950931311014690365997796577780467359762593095086461529229742189609654866267957649101902486749229065683772898047145330897848403011724551072386358364535500400641201404917526927090424513753254086236911258461932373075721228456505704258945317473580183627638809595667079112633776217602273072931109026914555895516211071302536891824388108846039984027978443170256637781468755263617811882450751885189920160871308009037058437385197068721794631447618187053820523825445415228997132621655659376280249047348077992329294986058617647554871444919458032458132696592807708748911762487076051527955136646992322786676072492339848843759736555900118195483378409260640339613984732695879953612524415754484051943979469136257863521464235567663512646425304668066474594362994389343966312493860976064031249329614873621502371193751378738997792628094998142978605375606696204170324147555888213358526421354690876821832751047103027183144631851897937286154044372104744479893974539996620964237378794745457908614015955101241946715787270541760006582147217422334828313025719205623841780801202791145468872023280419394800916201114558879982571403652301068777122016162597978919902642949550603428227424216151867624046195161114338429797864766833074470894493006020209132820608023945818718596268341477151407511328511169121201053729217471523889562146618266013093982443695344593757272795662671314583492087155815050120465190398593985836990236657944968343693164820867605292713370370728105051534550814810573803642720284537230719484955900782356229315259295004991462384137394540161849074142238248335653051469608934334101283150690244772367678309893832555354051554729000335817992009694747473036838824189598682358274984658306558707995851031498786843804225603595880899723643828603636089679329149685845612059311308228452216038017472952667346915948283710566974433834045174519803338875060484262571776964002651084820303173172323446896543247104526059082851065104507483019911395650249235322240610869856741425205236743958276387030521086733881482203690768723757578004575284106294846683144382387647940541381058347432653202355572167598677341293529873522415338336630147523542133373495092863044790984006157363217369172244350276062889929688681297667784127723711629952966874962123580812849170706233383473532681766267269726581735032383337823485624670360963482882248380785511968204402876666043176231738570807594845770839079746891509574272586367772398684802486710431306948156456860214649993718993581758917391152299428546095163199029129073163578285343489800557042255544450247137145719181770273471166127621628468332095676583790970589671192018044158325644248453425872003747634969111409231491647901326037236187104712800810223181211896875822683977664025614976816327804325816376673309805917312393498891839730132466220669099096231382226026511458444292425859693965646191708544430729339882603757080782361388148436130573513024112238306615308824544273552114068729676895104871988467841115805340534601951659133960686622084049355598877649218121822256767039233148125890241881780998738183047173924709373481606781958772855434831155911210922988747672230899511719741189643291410637191814496020863739477000918253325953845840857532260918771189869473639666721016334310691618703959576498993608821997498619082289442947134818258669312225394048723795888838345185180377827800160804937523090177997632039097788503622629735158784182030313775643375651206252073601488450495759041372604891907474767469215566855115270242275428159765910625211841004499243258492478879160919383863661507950886198892169563286285782569731782119788837325741897455961303610089294650369513636962814816571869278040918911631931773716471167927718187082794111275505342317313016654114905645374649297482574169078297011005772438093820400655022445749281415487008781412801328417155045561271380990257828849098257178556679120139110013254037354408686073592663876798933236607895518357825712380727484334016300393224040606357687999764844700364375950864493062748506995025869782282215173394594843167675707710487805477195165392145836884663407410512426002940570302083172379515421465200928747631722183883226435462480437079550475787767153492925383214166718019960280815953584825860560177848996971183483028819464791437616564757526836316422412175432584024753742201296292402495560866486497435721718560072389607564402780883543668855979305884543579728377764827545030697363417434726051952320470114665461957937605227598346298286195545175267699249653566004124955084445363714961908920569730595700674287661201769429111344147993720074466112961686911711705592175873769697847774946918915798491357931243124186426275767341527117493681525281724701523340607238998637144690183223030267571043173424477532026394276201424002512169220896061869702174448233677850087448567953830305914492945357530587542262834507596052071259878453221430608211644873826724585592733444628389854973578140698366190470635395882711601496012223913792738944648236514700459492121703230075181894742285727036478403398473697588923400962832599063165884536189938149469648260788779889476490184781085620034593613186080534289901607943923850557835007931534733025433795244030259691837645826567202099257780726430501414840159391948451948099316585357416120000835284239406653011658971048220057976009503451863843652955239657653198744384356167060902975031074234445666344095082021868760059802569534051082321376466235014405834779251154213260166682536845562197733952537459825820121194782055462274586828091947488545320230173315475720214053919635543220853910557818250524802689890955471424981251082144698348328747152731564120670965564856123304389802689952950476283474433691549315613644681195553011723171738682560408570877003647631720991500036337148101631829023626039639007819859832546046493285016751036012861525015782651364077598284022817418880352703067026910758526362864180067946730614854501758919917128876192843990135770528450052630572469168180971192198766513297345512872221897478430504138609635705519111650648112742910362969790547151911437595026190758956139601407280607106241217525955383057149020864880794101541251175803864152344426610535849098575911910552192489587629535484559676629992829119267322158099220920944999846787009184298531323586568423783977754653201584642387083565610192692392358051620369124425335377732301224429489341528978251232044795524739726477882635474730996131619378516644208875094958721870099059249407836740736153355379283305978138745949013205798917071575075603965672560573386954935951067719278218368380910280982267217579856898859069126989204872071003635764996891625987728163567585323744090748108774728218500573447525417973070746102909298485196614732205716101801439211830399909501670791255469990661520488699391943611157659912098990924025800191441257701013040989814127906932516102079396843237194088502477950940224183268041491345057524507070751789830801841746017895878058406844690651046955405127765244302264803415880551543053915665498186429272880089360341674394500585708434023418846788234424810484440163774511515113968770503216085704059470856133691762895518562889296114658719569661869934159960741313400900791923878224987923368505504795213863580270580992491165794587985243738642702802697265978298990909859369534972294293118027125745461857861159401650047533195076295525150765420351091057438534492996995803708280718227702511183490418684796673746087655663786024270457803993947771837271417595539733776256269147892675147974097290858089750504860435057301788734069755364785969679666211231822993386337418418611940376333861973830446608472537079355525629953604079063052472873592387244500485479863191145097559378237035215413963832967476341063880652774178845328935317435471570135190012268225302999334414110586814040926218284070852895563887570613094733742854870613397748915256655274785834081183530681992775501880772946731487073137266954571894438007799835795048973685524955354298800540408845899725038023743069306224083700605200197601297037603918672659042537010199741693451778951818586838062925652181993774077698895045647182227180862458512074814373015189053624524729116731233960845483102554664179983677285898864196426069339487626675712459541279598072560677949695500585223250146555427988581721414978343545685909792319302262063453263694067651163580337407382836337696750444653447680230292872646411453921924101743574211839964953421380905976022716824954779970238142596509759949758036239522547109180350836973306648078757744063765510572350764041900060919484853830783104219748976499861758536413420573185499658837322055077893029104467507549909178674473169595238141378023797422976438752902661533383713276842386699320906250854413195622538195608947134061888127062754362522807512554561430007964226554810660376364687998979465629299597856017177857323071380496432438955519739708564099082752795245751101959033374709664052357590978452117125542328197913380362891004862488362585074139863227562469921207627106122227487516070136436480918878038665125550337501556022739809595009463438919565061968140861517650341220149200103780294467343939946036796284483178947345113948473139357188087117138077878427674919229478935187932271961998268774119160633686809931906330099496113653151167876515616659573361484992950023748417688375621992895709102968296247162612279748143379961690929382342420757285858946131054627536839577012091524235995232856974305857875138279046878435426809856876888841282774417483100068803645887493046412547801857953033333025842419855785620471727262814776247533551587780169590486769154359580988447222824127042117301981592762284150177376846880238751818603043855978860594630081485034579256419098544220344839358811943653749609070154724513563408667867834676390330646382470384584756663654004925354017282488606039427139683511552440571510240098324442284528330491573336161765943296682353410614440495698862426530268777851591677307896902493689239304278574826422532400275604983747886582527595576643686433835908695457306146153008086326214115890174285207130562489364166683729172244253988023246578802293378816897011017621373044372542182631562127114918031297077612366263561200808051251969519213034243097124774488651739419661124316975768346519876217821614472792448989091217613800832065552475417873249148812460649472023859662854845485733918420432149624619302517286687072913965008890154661745188590861669757096849525379825937325308500521253904104928893466619665009477508565148925698744516125640555960608652694688313828689272810844445071230255705804794517284288269768251678616016225390448976400688803547349016816475531599806383692658169252920550056819746904586745294716554750418630439975255178427767981649238054161764644448132504581268474370072168978335973102253034253208678443383660898258529393940072446683974413531440388695208176945037670717395289127231757045940868651832903500495785021348300866443894440481909958384531056199190764804991936358571911220485378329586679469430794694228815763508773362663456843202349601539649305870998736622411423594759213659658363921084036516802245981964917032403369803755123641291202286056831969692984871240602012635141305224711473587242797212565488915010853224843191583016102416539088387014626339313698934113688482607175443677262113469040147491523131141802909024908744853338638354623117609605966664718292125119958723704082141563778744418100161862217913169320856032764356187114213203255548685113238907043271843070236745830449571383862543796942710310442902542266400414225732757842006163381578385234690986354929848827953363501058509159633237821029735928790742234203315541881377247007992499419830845286027811547398482557802582413820389073461093788012276527758505936892810772064106437716233153457345733068890633611775409159956279920599274951916983606492224351429589223082501993347564392540164498972082805024748380162358426550820580091180867814707085856168023427026226263516230716396099090855404875697019151380299294507524193707933671021779290197836941693414534321750228224137732203587908721419553832473656801362275205316210127455078258872120810650714915036033046854583866587197968209730784670889976366933013582945631414950599961213498457471238119539720586396491150286712063228994660313503337132677595372072369901901020671663096960914624405961027375826459018705666040534153844941141116728690756365320795879718120678918040458302064082206727875297276332861916906463677956410778820789287452347965083244579750726310435411456591993479052214427850796778711168863235118810257030621575312158294477161782879148252184947570580870568504283756192379007076891765065066031198517393021373865264104998827624913130830333888916000828881734247701423820006052766754393010910881690405938601338053669159994623525718724703382057973254434051173448337940564719843560336549743881603105383986517950515612080205951332156448832916157616079452444842082132891320330763175119133970412710529106164328634650657069436150730669838060283544328137670795343113141535951668447274494033648552378251767476124682184414135742802776338409661166937483641315028207983449307092503123252696740701528430066803835850554858117967848575391420269415544740523443621596818010032982819614834400144876557395349616667547882771872644485582283991192468032842417317835785761488669412034622003609335986536782748738554298343551519390711936279348985481001077277890376173389557094147162970385419493907489692980844918221751441579960274814281432798032373617917202844202123012848422434831359909504901377487149953050969820705866088265513346841643635793092161231536805516461734300622486219671391083278691128533508664185117758546195867493236103444467927923202037042228455464909983119795872825170591216559211536403517315232160613884166751558628731550406499557002623337974282745499314618911702207915341467220519879564856635733919578344838912510945538757766621768768253129425829718217753128714452409232085907011814426795214556971578655015111838069512506455402011858611044268096836331760516261318455983769876428509259639868418657415487316517300341489835452621261141848266062957921489994644622255560975713348411098568317798932597664178818702427669721703839731235325592890016336999380246543583246516483919074471847694569285822580556159502389097452001336741662010162058211160169553150351660371542435275012405110099317453102229999211116305469194245788424281602499920204934111426547152227245520940175056640981665348609542115699360595245402391439122798939647296249803395165439132655404103223526940007336822267876375015596942684896059034363188367486496114422569563101550255035939946444288794097459320508073592133636228528908972758547348443200835367018789475035374456563264379607176373887195534769909183511368194454077752324288255964471963603304915802349909452508339946377852685530613241728107121992025585480518475329304815439528859750300091548180528163033859143337912436487361731264294274260974732371591905567586992308175100842392959560264634374845760774563678901745649589136101857432078819943078244123590262673239681059702704766569158602884469041156160977199442713999783252605937042433947352854968035948919521609763624564093212575375806655819008180870248244416524894266877113261487408590603560867005888516483724011665827530785880797169440596737395492120920782597025603929504282417353844359395490488975050454662057099556780117750509475508523188610045624297142047283085301940285771551045498423853684322103421471735097537012778362459452605307806853235095750540105562984799717974806109538244313922370039096086064137861084416506605552931835327832658952966157271654986229435853467105000453642382655964422582110824392541559354859398600184267875300161404725649910333365430132550402104323055660322933738589254034297690718111517942199932168700749242469880883389879248022908045065987274387790054925731694783869105500926472336212914855518968688057354301330144094144754964927582112581835162615885145730665416073331928473217537793393381837823620845589470965082232096711157450109373436735503807850311524748016504559132376560575668634509675627088913389725202885426383182421879128608497465061528963043853529700456373242428279424042772247735899824850306315434229176838181434935151408331699528665685599403743207094713639937243388716126458410391486095177987162495206402380067921472167960797788628307048582492343007716066759655258238746060170351448009036725460185451982262069191118303514942331779351474517224890387885033257849099058370488874591976120637028411929999687657261066121006650530937572282701658761608514364991728954485532566133055295873225706920094805537401308871176407937264521673249292760295616744689373343534449879145705033840998163899337831428484862399274063765906075283033331971455723912281222818079619782648311902922255903201643057482378837449039624536625153075314852385765534706401645997120874951194646157532758947949273035938601933442024190633919073866912142867919154796966981452965187494554969732447830076997382505901714517088356552399445682822974680387128111036131402001863151605628144056761147514815559126959459571863736251305151207030641420509633665192519898175586838686021135793471929692323921585389916619752670307860790589579218896159889655748034264358941855925914151760749380633001443353352760438269858326093390819051148150719822264536147957700341458053297137750409684683274711269454936466300745790353602665505953549850319841280478739501258732593631143652407498920479637970155033371258834345794525815979901476102119083759529352700914495842268383315544406926162094611481963402607348726272281517023546363682697654067747384809334553309501032945391970980363549708190079169642386980122913310254372611619841692737222976169520707503684397298491315408764151195085835782296592645576355648271099568840169635189757001324007659878752521184277551333369010336618766571071159916396747113537248618589134196483939505809531711243602372427521867187857835415141336754997830481648765400467125858402062686793708615290845150712292932700258491471102079470456551261356719059463040232571766306056136261029921258869181459293287794745682182100862888549436674089945636651134096665687694109491450894833788211839239442426288526118477277310443115792579976698491098434534065135127693180483843229465670259552829535025810638556626537589892143848078146144234417861187541955855507085853270733891291833417010723265539398876584060365602754056083820805512111416026831445483911879045088849333826014211084006923058319312750706616946510790199753541439008008839486991838169044983515037539308064457077435396537639573699741672968122819260113911920739787993474237320409961951867227693949678084824387627970109813248235547725358793238532548768873803366080637247370611161740145215269303335394891576660653120093405551721147559477228864568361888988826861245691502699514963209101394347311126643223359278523338615523019530901313931105449941289051909472869896617752396412460729279419461113375116439847511696618411777067967165744863140892569369053445420292898951078985692607884840082050365142411813622654705055602785497367099968659030178600746936579753940409290981779665770620470645592493134962037572930762991145151813941281896893534371579831720097744793838210316077901271202927848880294170472035245788961323354524233708387246279611061785002264694446501406860532253257152670806375899980604779358831261707092097226040002342260623961644989231746392509624827920044733366511649931594685258229909366369303067095510884532564039934921995310105133151792194750461119492412326576144812961567632862353983998566436072731111440462420138739197803454776805801477163249666558549866804158044726308853575579083482101715233223964733212543420789005340590704698682866421946246879709561685113392376595201127993335152186120388147450381007319027469625658477476332324885703182805496276622563366606776437852292204667226688281789677645938748268018329752267419978322580304291226637920023351148674497240816905432586238365470501740327650960021674338474340015158479571131605176898117499055471700723807219647838459920063378480090727441669194768945549590317728514962147496499044642339934113016718585439941605598621098408951503650801377377052365888927098943812437452938068425966259081459075331297671980398663163615923047822070234440013337339437513844549446803138610727919959967412210981395709535783149447620149372151903414756681245619928794032936718548772311237757863356606240662666554345777124647374949197176560756994159951662079900049687595104999758055201612030066650265917705074404591769427471164759918327964057805882024859875062008312787696430221072427531199845103017071756043740324426404102353917000680256792996128373368434017137762706424840668480057271614680447196247230684343369439321622079896458399933745305248664820611024914105977434701134128368221957167977475305348874494186138270430977484552853782739436948220541533093907461463078333502478113198550206299950185477503269362548502163437347572244532734593349381120813949078222834441156249159667751946938358881453757782622508741361058026615036004189794972136715588161477943700653473244088655500410750565345022472985541568750563455850764741787432635710514830250507928547730250855462946067369448820426867364545926329725039315589182449642302141608053509313285970713713714774318259575787945821731990053649547840850283277461297879422801929615174805547048300320833232696071949461486533680992538966593106109819209680091355949303006578848665999257883509446785236670453033678252331993909027146915651578806571831025396330937608795513360925747409827060444673493228814565964306124150096132411192676265447750894844559961139623654878908586764972663391048291054314761581278454840273720675269700073813215223661729352218518176880071324468718868152477440136320268264580544279851123380651106187607679438663982356381990670718744574286829467036360209906686821479184124497974657575204815668715090354186532018722416143985801657830258119747488627985808515020020226503639693353690555013616973128787526748939649269014633472046236810144068045898932418574167006528007313925889461419893602695167343989419694573049615947750308292517502222741599679043763130541907606963325912468100820920439247915905962822593339333469437998315449926295887825827539412502516778427680746048598924886812072983229118902321564948724683081092446004785606229004640555504446302947155776392268450233119977153849439427121502375004468980567444361567565701314131588951611639117164707645029699781293541023491047008492474211805569902150570383476724067774528895088542667461074414932733555229089180055000580410766838591453413999426715817670870298155575521072142613374031983158907991245309282720319654521866132663944876884822067488118976177754880842842763485312973343682457612080428927867538528872174618998070943291711879834459958109286200959085584428280844803833475619969246680085770882997280806668572637469071654937775596514639943449973252189440172375749242795264672773522383657668481813637565990542644864700238323316703693857177653678859301947211211796260586587835160643860417064593627333088074141562004024499692446305680420153286317489688101611826641844997809345813140562913339974983482676503753916510475149481657539447353725774936029862057585492818770980727155995070413203742814857729948230334386135102993372675061053881428918434719292767710931112930296484087865479913575768436147620879775380227992856418894322491520078032452450391511165971442827390174952391923128701649584941650103867432957372360892888143500044573900265578707333365117271794823477939280242320983902020102282588108242586241558919782920075036285005302799433364742163790930532951821192226552893550965226759969890367438795000405787405145974671143941926454453266122740770807745043129963121045470571825883206724031220572489134167078050326312884438328520252668088576635987634289692240171316863595715772974532329038524908614432626594358330458933543356570209171138655374744909215925921638353156953935491200596377814811539734339547549589767095930465005001934492108076632396688931463630771646739901126693977025930560170261601834470359672261283502193817255662528878119261196764555928841504234726638919705552287296086622896556122432870758280653359084340592970211560818186363656917745148714437294939943332030497529462174298654206668299467255048644619307062941006509526986110757269223971335594129976212656292193058921185128305255878958148208233694053658195630756929499267648209789437938793250959450266622215246619608080206026454525113503556339898979985847807818217691617236984757286545968844026550242655205795022280857657488760663040137741504563246569439331794484759923121879874911112828409579771499898475550173133476136533303321515160234663727549346876896383803052825418763816186418579656958995799042381887996182069200415527994814296606725374235580532542276471946449618392352999987125575777815722519854875297226503246376465900277527079760050748752726240142779329224045518845718942507906766735915287224883477226751366920401261427893471690492792097437900432511151265806940051550581416978560617585024139909422876891283269353744924644316570281735955378230140884139612137878350656741805862423018494291054857647991197266437012512953974050310678785084092833626664449059343801036695116153398841345724812151974762129309133634091352521995062536378205375556143711480786513876769180491527421368310163667742268118404998535751141632675767307506353727933341695548774946602914589462344969449570107603614200981261339784177920299898269445256637256837549747835356896415181522633285313917815025864087696023481098387966564925082424929930446650941221791607826356041674865140138207517673885427438983607786955242142516744264051525884981660881812670044962447446868922954793378539327723658305260101369633845386036989709919884400200824818217631902695761434781041655072863424827397993861569415521663084540776681013614209895248875400361293392982857564828805476210185969255852893439188139102650386062467264471423401263402815550060004469156143654692740809929858637771738450828374134456379419564546968786037761556057192234859666667006320147677828803219791364990800684507898653789546208340886762324169690121054526955901668430466912472361424267873340580072875095642392202968338566689293244814810386530433817684470019186161319491105106964789887758114238676543415725546493437744244129696943479958863288545026398514921581468360550557671938757608337198057510543051116386424537516813694192839500525849699336365883755193042451808163219633376416202077590282158887772847884113426641869265401043688843052016570508657155347592055201179900057019718978895992909040969742313005626841377670401798720148585538758946490489670448089880760485363639238684921581322660609803951037107190969417962023573688560588694302503538415385899156658703575501024959829437523407095404314387766822468913478550791325551134860594608249333937677318958195065478724263137432696950689771016677191532940989928854214392987120092204801034643104960318719452015315279635116906402785336610121687619550138245114150441912273765278521333414395195266180911522423927234392505548874026100796129778460642003821579254266346736458643008589446878515341821402662676729152754715429827617095674745567402136739648515011845722320401927885850671482627106412232503635951880694226759522161478261645661414867345808059286909321476823290219689387222735534373240926142743749793682896825711505680392368413861071181758265710516922390861154018469559605791306368940765663878975140240407123243020853468900226341206960688527942824447085575307099064574803905759998525166131505244216285737885081422983016537047409693387920818522941205256566734673164066010272361796931952598291047495434064990863110841290330808411223521490098888145870438548637053660692812034004532650221866261187644775527124193363596770548329220031260210504468666741884491770178186037305701092269196951730844043593120109101787805609906598449557072978799628685550927008165177214487243330846532487106692883188980105940572261049974051557954808529681463529549605883910859102817322066017700849435817842783565496693959517583990869343949907621184255739500653308575653040529655023684683503537331443096690526012441979083643702110807662068186258430163803224415391445613922184446639991879133971453434397343800732466865498196743188215154745443887537096670057756326184298886361364042097225663511714288998077960270246196482449342634229989570433713185078418961177972097957773716959796967842273863639966762029711489599678580269412955717106859298245021589784067240780058397091792768277927963699013819112762767309847474192322917450070439328281420793300003444291537181596188910542570485915987540292722540404994235561975124017077336636770261581310153631111575628857666134319548444802493952543066937117999955801702617601884197093221536556430057061155634775590087644560988197365075469777684380344580071277424043724141940922816993274454059209808332199713837255183375697202299354767649654305115312057735754476957482436623953367310254719437102599616429685679314539021365807741895350575064192922560420459296388796967168065966023803779010402771285468781931533714802733489866856354243536907001656758661792731476888183479256822271303952679815518484926308989265996915066755085243333181611659413981468773448336437044354376966408857076906087320227584371624340569832702377316475479442902686343792917250694158909580530992372451088548290111778992351619836810777306121294128439807496314504954352670108421886390070831473584835376571645528879492897223198037869801120784123878575038441718450351236579197185254931012769928105953982131559785070371201594047290537006237856864224990353237267735211773563717958812958759233332389253411994443352997297564273867843651068341727368917484352656618786223460828895689625761668468892811409187453502588963059358365535617777549549605084777061439713510684470138465165535631664600725555356133426070841413868398015185650866426068849280797173012573012248792791470384731157077958173884215939292116377930238067186383968399487500110490771049865025398970176088549005740521743485022164406782908619300112990690630454052056407676300283452028114874868318868309885981912627887067609026768702734860001627377524848046272480212903085208276370808840696781332491209914172035084229544268706358241993034273631106918985376280152574530610185196153892414938032728296854869681013195617714269914658766201980487339595420154080152475015676163435617284515800588829745417381447312276841744595347507878483105855713219056864822213989010141213781862101455707392507254286941612890645272948747381126300058916041969160912714594426801373123884128286923423412153054557736492542708820395452886225181332549957963161303411829477975579623272949287664612397657827347463193460217952743514121756168797364008277148638667817147193665538894823405454018182142849435888897759192556559372469187312869881433695053454819639205656632279700068652496624058677717124796418229579129316864474719017863118017742476975526787088216313855734303584142400618962463807270232827089087598794985548874639397828655890961157398834788781697293135817095852359800371908670182447924274010417489723017325022442215819568501914629113993503795076623781217975031555023902385791592501160864159665093158936909325377529444525266296389380183420907351913643075526761797660309568299571961735015236647898816091860734129847601659548478121474509163298983522992965863632352534616443809648144419185578402307711756751777775519042483245888531761903094058720389212304520846101666713221656881565872058198244825362065462788464629576405035628494576540266843015081856692376698235714183114009715036512314627788317068344698344329355834562936093264182230009856750032174308483896344471121961249107709374978824291046676299262983177808656067635185685873666490078638055874444841160219183206120156618350985342748766017919306066025797981796402764803837625767047609008512692428398036027648699675038278798921979371050795219904382787263008131514551684031285041126801073413151439353226567422964576257292622035647476491754082591041720337586655199990243045855045841654829866320893436510428016493303177206823164099583053284678444069666776293677783037085723911386111130495029272210992677514043850246509652502796189059659284601487786030519504155910796733563248957922609767226480468494901006735382119885572621475330337147431583863113098481882713612194461521548235117042032686119194037228572434198770697971953075023232000434540480768543022010692098040992549601872319858603209404154950605171133630096912136568802636227376571535235402057839777748036631821096812673032550311079883502086040638857869088677584960320878172845149951271729745675001326813080480960423155712247537598005592540058725980874613375890319999202280244793480268815052754605709039625008475035326123979962417882966081720946455032122598982948675218729177006533514265295922159847939998584252758742637571627885898489180693646540028865736857095353647988211458756193580082556331088780599747629719375863181498404939362169377742555923075823733096454017879797527247495184254102010713766544831337118615953815598524579857484496957707795618914418674595390806893147303284680289967060252930647399140420711457264920878383444840580371840728833200604396192235536347334771644710599753434437032971141307960010989174704800144414409539289793062910160877901503568299383858698519014647787395364439897612014577376847975081905018308275830714312283297941305847268778652757833419934470678123536966165666204335626381994800520447317450650098557706220683594693604041603139113626104577137584304158435279768651658914506689808443084497842711776796853491811661565146960050045626702271315266784214442260676231905610109839942912704391398223563163004554419137469861778698079595309786655307859206822906524516680075926982535287393869131985191682649960189563138215355103358461532888396685884151038583364027299430310947861088871832784912197094099893611657035198131299033621749888905696535792513556659381320397381463795323734502883746181404281962059697424836647330449940186076892602118253703821672557113661178697138816374190681571310334031807040199458959311755403807316918688142628087637214211986197443930194464347240076171991189106364917793801864659005289433824680036694392668953695054433325957150135712471691746163539337017973608934026203844996339283897506976608912797973891780517113250015886414889780788180598285762907839490282924830788443638036927282447167080916586775315183191158731397046019725114658180047346454262312417672624087744789422615462446481724982639187548456772311156486291579856356842757066032858229850204209218248272703719092320178949473254066395251191708670158627622593869247276268267697720143586416750116000783604596062843784618719254208548135870985593068018959034495342989848143400952873337271729821005187398310443126335917788402601638749147026407639469457479993858612150267283304377637005369768757568455186430830922716407023736762302476918907034763059294391929559633363535557454512890814370477280994651874772799317035739749598867018275606578794358144643992773513082973574991283517808415776917615409279619214772978885705821237371664696579684238510718959322363589413675711410441444453874819663800517090697274076582143335636381057911230767186276665610594496798193738874043889103684224440724314962788636740860733054536791498748802442223188170997702029486968212591677309637034118794129608961991946662794623539762801046235126908236986266801447919650506029148827054458243504569862723945732480394894853998105147875997589936522789104896918943500384773197761597334016759888394125983975742972305454361768888125592468450105246941435547265757732652931592287826553375252201384326009054296505596502242276506811365258905833775246600645894493509387565154591732841518124376750349122405647842535575491078431360292877873986981259674245335716268577316912607279982614993590488868590314120785418265366774135343117404951095887533023077475084093300904565174210693224212560190039188432193001140107212115967001360883661165870863606994590226098303499090887165457188528157626444616282964530800593909656483316833882506928462480638685179571805574689379080175468445125162464666998012792032754833701214059741425290823340443201108428719807594053993321679377609762973535024997169653542902615465633700568914492207033198513404886031559266390523460082584372292046025884723914330860420901566871566740271499386839617836178223261384334608506861051021430392802534344578516788129598301643731155827961252492774202662378499896628610068453422535329127385164591475111059570462885416105261413481183998331119707228353948663420703447137381195284800689193484986423546426156218497858529095356776462389755372812691895949576523579548826729856009064803632694042580780300268292976240581348492382145965526843604610713723099314136707023788515961913522397617136696042016197847254031079180290796200068220785421351244544296793043614291168683500285969337592540147953590704099857715077436518600737034464779170669510822710618635476108257027503583717802976855269303226292427232631084120445015697155840372372538792391749801197471602991117933059421195571373459299389638669074575740970049459273128096171359852054287462852783727945070728237520092366172394952617798887910528892229001927385820538628388543633631343481823817940635475025156261292073531622097877841201417179126096459946318439951397349060292204026543703969136810152383523513312193552166949656897491962475669606460582536694152763080270230045316024054924193042593422302782310714517699598721260111964247460198671978405621095164480622539155692344885859118329909184213428711790799979526041263384679307742752463020162054775983133239104053681942159538829512539544638303155337155404317921828010969529244383552471846725797500007442230870172917952302934641444321674135912345968800612612224455493991012520009904510548054413880986959522811232025788579071801619601040428096587216288352697877935141055889828918071545084476535987592525629720705721132068229281584371869734167458896427035692801238859883210483607029553664924827285002420216022681008106411729978988662169743538133783845486808237142994359653430192171587878704119795575674098790592046616412685185080687169844506634456729707530780067996325122488397665640105370983231796065453858722599616608522578431316939419152231077474444217519169465525054998528489434397188805448414853938358564153319758083563174352050208550743007623935210599698124506707744344674486174859312978533243217351991922873578532661800180675743154877724513089706966183040909819470952085823837942424794320564694972161181805160853595301391174059869775259578534824951427097293987774769802676019011356005205500291389648713115536371797829741615875731138323092893452726105140506748577229015474909647050827046115909846981447299243204907685368246417358790458720567775386171834441696620542892345573236128055257627024149629750637811687294077315180103490005730466238826895700130010429100525451794001422096384378861175172607929266854060235705761546302043054662322109930289640353097286132835975512254902870847346138876197257205022541616740723456280897510286561170280739026170332428361890106053952181635486849582490949877387781632225190243811682474491204407741732478571348198479256011918892271490034008903253528011596955569952027473945018867209947326007053181653167213370589981214500365951836127317093886091018969068849396323627683555049661355170958905968394931573723156234163616779841068237890384322631996388924479537932087938552904142047244357813725531434757096332172115449563664462595008384926843835978178278533896858743861190789497978048700001154023663105050240037032923139002331131649969883249499468327160169281963670144927549912644790641393956708012480896530058827553284623509574085955321237411467207445589938504194353663041536835784648608588925856320351489638239703287167192122130350636052052032587198517805567774591549722166003622452164046800415169831418424983543094595314289611040059533928859806846783065633501877936948925853313683669827619396715207215595119342127386706705774162630008265010006065912878572877305271735136621627756170073350585928558987050762183209637377104013121115230775832795142683430305239242007057464435860771059698138155123542947416619451936404580447112850893398059332511070303448893783957407555455812624563562774670260822275102405617542933123750290401708051135689626419376427079769629457815575708683361078855757032466364088686562278471206960099411916988927609376839774502050074396221920090920159120871661859772243156174098495947008556134487594839832994191935316078515814683120063784961475936887104002201559433626271476860109001574515198686069295614614343465843459382549614896980261476181624313712241125788598956468522452149973700519952872054216353782949645512408644560644263525207269975913855364730701677606781227662980080299517498295652509460761874616675035160595378719336041290644311052054343086342213266310984877391665026274494244789850513546666692110716361013207865723095252264024666915256037599736516460705322103220116167854417755394218544190645793211366732567279894009783441992122898657659106540801865279540661208036678905354912863518674301314441888567172853318715460700480534016451966621840496051749028532924176623897526341611340580127961517993068395545209087406153064507160010901829445176968084192028757820033418211020923766600502921307705824161186461097303972526182921555013327740262885042957452397995456484925888144327051549026648244912260765266730798622575098679029388520958671476913311642604980010076915865286544340192925996014292749067932410125159743799867348630671071473450527226527683253819913784409432963450702994961263209815817244488474677735832670162459181358030938511916625368203746665914462825780996819436416247002076714403506567602300622677775606936623481497546083303115797884926211832496680635566396674162830567453082980054826001831499141760529243607282435303461237632194421342663806985743886333230430934230499104109963041256568602163763072773232939799963844158732076980003201495939423792919805225119727884952113823931178122424930984641366911123606827119860807724632495437972170255891809123413026252477634988603688943777450703098857055955015305788174505104079576675126392852285700734177450640940086172778402938328893767327334919445598270382710579610039919086911781186061821739916902619975265412353792182298154062707543247104973545568540079752046849989629681984324476195273322917891497097831684755158313549691394992633415954813629999885756722175550653130292208354318390076803513222457945086148109322470914729029799861613704793344065840843775895181315570556135245970720363558556325208685630980689669231548418727636681840728661264389192790747119632810150023951734656359180473151224967212838233098941439164516376389597455117728508698736502404381883384609533969285410275013873376494200097940804576672311336402858280310151226662003926102463336108781567282258806705685041993380467145011464693069559753966465248511086790821087521968891697888921645350924608648702922974728322943371773148222010995264568965627117289605577530677429628727542434640905407634640418342436772456456058178982862321736227979651204860363272103760960311743996870361485606580529632567055299826451733074094299650536179012423959313556207106369333815637426152445820139259662129453461317328239479815908710463753392238663943753595068741599875245099527447370799733211762042442502158555215080038119625738619680147518547920068070685215149430991970218211645207462386635854209414358378521605635168884074387759913787843124268100474895456572162111165689422797646805111450502822345764044967990434460059817084110837126562227270627237546546669249225558004981370029864849900535250108208579985432032601520330666685685829945690752642714047186736647199261350722430494851241812256874019300492003088607189058121129217047416181939171938098566655596581670038453276356392025731894699050869553758038305380198950915117138369804678795550095074049458872734001564914025365913030366342486618151437104502840876229641511299032763890005653920325874975602504382039196870216678972980764043220894547523734211290105983104727480163929337610398792027008607722328682818067953727923441818003878104683872427331575371734576630194201391121882545000077675320384919649059312372730660357881578877747974942162192024537270762270411022618050460676652665084632763960563391014233449953862035804914581837117857548382902046426954296363843871007867976707594810198515978632510143586405075242453533250622633318946635833398183282294204480683899778583342808592680226441491656375597471271926542491931080893879655765645162743094611118695205818475692062184920674397458556452508808459815797878048924249008266027656479287070503325550608698890375034081016678456146519633859041007618544567347222638820772098696652523096041013042909176849823716789804064426881607157555389763820704573711105542315139880484276260685271562101993223134786385673633286256448328575694085209505799229696320713311331862286493785126921369987167710994502210483425797913890641375754300485583311873762956799455051862172607261732364045189755154324468367907304945392348163383623702995846887302096003209181442576119852934801565159934819984571606750758392887906462223130561424289989389629165730862656841042307360433268572881010788132706208700149470027795481684524789047063227415825344408256185956915782754233257710679808658898842399987155300609473960268981163054768821214984903672735227952531287856631824187730345086518551032219590024012823974577931175618651158076805832647849969998778733598732643156888766762715189650033826482636547327171396569171186226764143974491083115725759679919153451889103488867042489872584078332407714367932745206490241677606465788774375589775080069534490302195070443585433589599986014996806283856033993609808568990867508782727855981555651731779213172921636340400931683597427443071711336125384876869252575805717580837271930020677153884508492927966245933852604275013638038713816314819580926775577063559438529299743730685013746530596871990981819277485986422990008826381859622896922429215089170670839777541956905298672235744646294330064729879459895554169169737010329001856967032116469258377050889482793899892932708767889273343557359102131846343617585666364849888171699955092091842970207347837748042481984964278483992972673494428970988490524178037131769421645148449060528575185694264312721991415270175949525388993286197969236759861586350171013346479013181231093124835462974695424957832707794849782926578885604079470930526871174847710425164822924622894014594147797860489566925615633954491794565027094029260179732639097513590166729872128196399373275728729819323827891361345930990730600974079284321272306614298008047120576655223126562079623083423553290980426152572688673193945322259465757892037552157720990384270492843512506886362818307764636630966658476281206032741266645337738823630242615814512245266850388245879783726470816013833292458087312679911902764591620775592776101329978122556463579531581792294038486909424415050993454423772274502215627632939483080881561837610926540481736421359578783836842757485695165685841815659563847886524443396437119228927320746283915624877824610326766043746856397156007556430006272477573940634817600740522788681560866346494956815425906812313725699512960532059944104516717196392123977927185352812670931714348316348191297782590391964626448723748953447482122570176964511021576864419625874545752125343422102386428634325301455988477442501499877874953327306790267596905534379196105433151641500185343066802893465557696776451478743246687862408179257092841349078071633039143244303820228689574006713869467814883636972966520118550583549240458814724141101859436914177556521620859650028933880861003038464533110938396822705577078150886457741985106183498269806888415488600275704400983356438677335821226353619932568957351647805145693372990227729518553142817660827239840457619182163457446620330414301781440742383511157356476586692801452097356546210999356993808640290119858378599064406902001042474240268023384741850947942454574003529362836845322603062240017028067588050924288201450323463376018333553301583048062778295770255285349187591601040710723644409767686679066486073005399163404444140420922707262699210969933977446159552245958438308040617893136340959533583571196609405718814715321962843305956549301590769715732025953525822668266885675145295180437741709279455562175055068485154398003004892343746372679645077758790119639229273954508448013736000508358485798895141521061271630095476765641942065820842285631120560756651258639744079250500568908121312330194018570140338968675367669576780993008100659109796581093971928967868506581740107170311010959221642280049316780579987794728490136437156768915098238487344278437141869526906484771523994015352803248117099438804405897678612234525624457314189993896066936101352294328364565105845666471247801201716404941604154247657878870408344218290587590285677760230911127647520582707513607348918106995169541252697656963336639664092195588048576748488483184401566051232506594809895406118950474516430388050046088013719330069529978598878060570279876095963160284280783919394813822169835629988094072854100543388333050363701937539009886475472096025282321026001981216713217112521688168238354994026604325124043688918462705417183571171360448864215741966433839852017240326866096960105067797498133984020501873714580318299780379599515167577508537021348184314891428019378974749913328450654347449746955632737867403588803373360511161287014308279362992479627724784607615963835103209785575469547123414836209602101141222324520444425674135841992790595459514951612738194893354429064326070887418139272478980184158006706481062697023184324076020328358392616426547543935101186746272360079716845994618004273593825864028828370058912368402359773206604842705107103156601442893084363441854862960160075664623663531405013546441947339818017264160385074342335920640284720333152932689030080961443232551762933222376938930941611505111880191288404132163847065377107901168672612165451972137137809301932925937837595010750885250654433169840083782339532969457404499766097389285997291716843625562963710172281192779772622060112505515571512945693540614509041386841375543972004795436338347486769559312402997167274051653985326141159249034530940807551741120140754505857006963168818726386692696028775264374979717330381368506802086601131767450252481904693088839497961463977884008539924214850004617652872024467530950768267962170446338849732422171586486014054316777225694227296070200976036882405167074135551139984817740030281450294989079305965570708621859932848705369033495358121096058458182498563479343786698288812861544201488131582387844788719359619502895495174450304640197304966055755977468698726259844131735783600997395874293976196074117292436565540337323899684540983622595630749315606747147926367235306755590962678858680588743256859908417237268213389781821758831523105110835857978172054295979823549664648885286218343558460828812446038955551403188667256877512663646213066689881486545858247521601643708031187975033804389495728272313530527629747310211162335188811788508063235073547212355927706406271170863332001395490498612017705258909721135007598348420050251508563044909659821859706897217087825045597440227373120681754685066249956471867434886004834804014061852393092531559519417946901896803376788594397469588384675542100027271219417169165507215083947261415285828940148345930043895987436061652122605748226436308113905476939137803486173804853204134528915094577775333508755446441407003145667327684426816985432296467064314931636694583135897927725049044839201412783551418578585738366721269589320108441262501631846960720253716255749201133585937227870801202396901847566711979355095402841248434830134056174602414051356048132316163546705483377997425782325774867299997262746831649538061003311089448497762885901140326311254401760597232990603322530491000331721296310398651362207911964764237929777870555935063798447832495382013868942990849707916534661886395669474385074233263697686925780499442179318989941656045361322931057251663756442647179237379407348890384262748712151618734021269919474592422648139480159507437918275455564913868541737910597601683203487197536885506540143455981369642650815828629679416407866639575197791029930181815758559740255920034028028021179120946633858232255359598506275447310118047716141929203272167379221492066794352639517555020448491237505623785956865009853861304630513885040355180294905587386992068241746142187342118544867734436047946733494227716131821078334176233540732149144978602233263842981969306620114738195947528595465426532725456155160676717551682555046054302277458265619761005516437561954123248262219889360008989736231709593693870147666406229732847775045693346367362156943977882117576959406062288669434640593361950029152825695778142864773855381238177191252343147458536743674077775145139802623255724530812998777962056406728149088636035362676336036644395183672313242466521982262010617473581299964926800665997049906486817244125516231049438681794108189597689937917855824123458638991496229808878559985937573816999124961780144531339470056800135637779841460721828113369397566251066473786867997282220450387723722093702447635175232878681958983722145438265995130129885851703686852143126969948138149561128215225507311925040915699474546079817111772190813111786496926185058153390134825413764827935194442956145898215798244969096844295492556872203694999443023762924607490219930216000242029229707678220720741700696023490934319257955161119132236106213835462916512753278450102648847946719411876413841012906705247104145648755573961913091111209582376626474308687987418567061812493477619678194667922193480520084359895415739489936828251719240107258031473958241510163380699641476811882943117468773706920750018720400568532639232813857017898711717256323044203061692524556728198517417222870226323216663077121257552919131327564509230499712698398068970181087774840203368506819717608081318800929755250014923566770130672935000641648506582611213221425452142797178483143427060535201026889661298511669914127091025251302555121768494954978209279445697987639805625026982890333497296667282791121276146537023158654029626078497834792893914897647303271510020664964666001966120800915111471435275804276275282816084390267730018989926244201949098409753802177631761561585366518226479569241372443500317999575739590672083657041099978881122812267643071796559117564932310747975528653039667727214138293579831289959744782808988175079111655505353192107935313740918534434122517245909693576388731625220505319388091292351959473179101123962974013795136192031604268980568922398369121300828506002912180656228395237170858109006569701002599036955058775492316495725628633553758599307280700874071013230019262467620316037616375633247196656341610762296378514602262623104922835084692784429124280602306288552583317699986984165310680579504529721941779022955932979426711071736043957629179540659693380444734775010742286535283426649942614534049587046579601296785893518641353573070803822346005478497871730581695912102143360123446346663779155381365680141425001407458633904637531632932653442041851727756067809940238146754847507443061125970867767868184476926687814986227979653191804193395911090391442820824747277527587076326476394883610535153117251733591861043433759477942941141776586275844135288590260820610697067284428398036344067809027893287247072066892581716238461606633781759006913147869245584285446856674184032254872475085521133540505662445920585517421994381258512916648427980050826728496229320544019021000369703048153256595724956438467511386768623966828492078938787859419279113651258135852975370047515463593189475327387530067131202826399087966541142682674482708343110937786078195180776491421394881288541343621958498519207238731475439784008423657799655669230413558334976681745576329673059289632128500264233646368066755033982583361454290851780243466414784898373474853352913294888546310165063684670785088102444227873775228859312558795837233618451475470651912760197527615137982718822618703848504711564556899464971041341986236763354510189931249711185389433478923780609256223491350696693306776623423464504625183846213732376367186428967832342453211459979186290976735811414632339176747194779793558733690855618324049081161786109237046184167195033383326242283495525008662212227743136683389519187919357606308515321129424656222020574093921952000192696420861388972898448838948702633141058981991132367604528851260351567271829067562291448958484479397539742301758906239639054053835012669725271495170479899615494647046604670382972059780458315607612350892325125999384544940952124799545893089830632078547078010194590114154079338869777472676727074797042858803527763801070728158594113041677568813550084097092846229950285530026742088967165697635504514991556637646603871835922721858672851155081943762429742735443852261655503265060764979051063659113810829169857354586227975006551720502054001892828905889486804476529053116213663593504958337244606256856239090501319495573568618358705733586376558475139988419287201377776272845079828452637812543101699349905418544885680366240625222197643611147692873668738321500852426541065201452976668762121577807579189896440133688866998311349564222782690639502227772869761007658399470529791590512379276807377822402726763921178801328280975109264566482663842683768852603511974199060163442934397350534239074263017318083365872096462820467949085128148369799777403153483586010032685789534990482096795102508538451793630404833591516956196336190827040690901506644677664689746084249287653490651047751333192837959628029307422133505824162146995347983269743983744801212050294258865841974679911540531160534973788505301075130770588182367799092831772214845980250888510557557962707738688316284838587139255096504807774459566100510851274391550227050582946399424757962053016622716964707014871553550179778430196158155042704736565368471108565202436447936423737611553339419415700871223289257850141342034960765885303576535450832556710729970222708421668381450852332730473207779817835725953338440893172329114570495997112836650891201823083643485081964184186268717397850230060853500850747348393324657962058754423158987572302165074700002387147853151912928344180061522860029948508170744384031441915836211538642030696098823434031142866799867580491852396217356732346096880344308209795283003450383124497061292249257072572875953680136024787840323422616800231946264514367823845366128325615580458271790057465051615834601048551988316630926387369656409974331708842133318109878034996380583555468941008176236134768946702396260148307344125945884120908367920926028641381954995021937891418976587094848273034096445567601766615373100748749427413916074487780037783496038286483589161038850533599008670499042038808368398713890003130161574080548268077062290983124198990385004867838987985906730867894180383180450839724057079229725760245689197285099682007865869810949862704112898117620094956974032901157733060667545536780996567305959684978148501904190132182010592129544697963070418643436419561219318305488207650763203222615730076203229845389973484687499189272584605479961695753394059362463104423128220591512283735705248971997139294499039422413204810255422022830905240626106676584445966044212904611881916311552704640195562678390997065517284264161156383103045034185477599773654116768196404358180644554897057869792322926807499303495014927453096571689405835592590446443061681727429152307774382997640996546976494166140168434101059834162023136361929068047207540058614016356968609655784826433857182492943337022699443132541163027007870437029880306032029109253423454468861061636671118466559292719540399995052272127999953103738249360597048769267212230702233541235985361073404195837115752875979851190709025947394274644718955277976113751609949184033094148050896834980039702462256205081572893894682730786605704854029117068494920996878426154950959656161234808766486201648355586385714236086576742971462465391879729012059622045470371313173642198637094030912212272937637548206384907872299817160357989308626690502803971113904585503204101418868123636391878657389741308926622727946727864465613980704308944364628259683096828274657622420841966676287363068721619619915441306443359194608803580827677053110144435251583057819037912621487566538479929521981248932699074257442903128279890986357538213844346877353208663081602446409543029941768787759903467329162393456858891453709331591663385608408353326867339400659745311230937103529218602807625068049055300321664350588112693030013478895250751800848501568641655004411935920374513188494906371639745306174011182817719951055951916353886805950843453831669960130484222282580224603167953915241074271151406932811369451596308469100881781648079537368101430949382584793482776423417915756854407324590730219832425253105197687622284015233396455091281784834944618570005675431885862264701070263425712606677020971652608484285283445476528690072295118063144391860049103555917686685176542862895621366807177709747297395714217723507605304547974597240064550264045323256198448217285442804067131471117755298016787144669184939766899803938850431947205191554136138257744351619535573681087376223103211574650451312373477975700662932025325287318279270932064204398744714294300612594151644481861351508135801262079806660614208324295770596023732198912039854109929977454542174655695490530276127712469642804823856103620724487679888242867705672839952329908414389631454894410962305229252150244047481907625361761558357145816757914827608332973837986036195917077016455606608156526655947890258495574887821356188749426032360483548192875816810872037151345474192373564481401542840246714733115906211417926211543786961820743971287310661658985744846166173119124153046286185146087944847125288387278335276217877370040110826442856196933114962293667659909791803005086728071642941793952489429993255645421569044363687129906423530389540788602323794601768375222070781795413964790981272485204312363924061385539487557168256705315025562577011422121674522091959009918225800179947324255305013727541309114291298699300541655728964398825517786225144840121829423334554981280567367887545727597025719092500707323453024696512282173789464774438982024443822580410838226187784877106292991770953937370337450016431404206322208670937651245288700047019500485483909693491884721401490482467565685793269767575378801162442487259569982253425779169650725606224922952786516236947922783107619520382577327256730937855637081220223342051415226446057638376886485970440305282446509484846124288467853598541508675025482479161665417423108101920670647665845511289777663119289280364311420188492727696769786432558774335320462318287949687212949366421234194618513002627983630624506100623760324761874393651399936400681615042966198653435189476851560196836598290219665735176818125426187113448833620709325516824002479074279732971881998456664031749768455249327045907219584523940764116229090080267394255174590256015370842808477670184681212184740257916734737206111777656908500234250789031930686287080557943975013990186535991220061549332798314506284846306721988321257829508818758306537263477128123755481860264971688893179391696486492435491308031691006205377781345177462484868717614041797184186085215880741288623406482791767866816548034908003101574526011284060009676233643728059629418051776934712361995590761650176462219355184332861169531082257941549599758059112173803213852397705008049832845960955400975754486774270792330315795782996381540333322835388096455491113016290030826579486959958325515914551547730805125433788484279012113937774024540715296847633723938146503234200442513355888535523924010226963729429864829980941290465950825681776065697561115696783220196170594119395102128443568590586326019075772326295454102839568082883449514259708169285905328422287821866597950496831663032414813843577085920794013903102083631444405106150794798789723187715089456179676126238239347655896013130891113510839019099798790652093706333602472918716302470364551494094829154250442231969407601156157700133776759531034486964301014086672884443191475774867670235770902693679070456208854466338212164425378638892847576070622264812229890389533088965868149834306230215184336775565011142965245769576666691513110495313234226026788999175838139031827179220758587677640446702523674065995526977391660877817698171789228610793616965690751190826135477586773585804726162226568901518502033862782594288212480404533596186090595791496135153064293093586450109133332767532630322355270537899832730563522876143801223983943201293309839412289288015404008484460121464167029354738239098536670826786404431040983775539553199050276789061850173769973558977347572395381412174906874714529517128907510677999968855751855834199431116201135159708712891661426280131124507499327399883289956247679301509637540965627802357058710283346286127474975797051322380255123678254233091682505005192521305695660542290763504259068832316200941843960510777331525056450773276708919666221543135637881806105181255434691217608551071253254644971329427617333131758397123812982778066758877047609295208436653962050711705193566567327912216075536740959196646469481589072238828844402708671164582110018379783179801481074975046005730305834442676875922570825528332967723090770679063441732454674811481199547519505264624329261170938699501553898834334799585998513813378050384161100111814561848263868613226226495475117572457978547749814686469320045056086164056616794963839587843460133622712113547052483230083433070026795508834116724586981010774998194321249149825226361106309531399546699926596345894322000042365034677348089668271111514529090326899549639056659909816456482048259228759377043658893593225015926480495011521170475850509909993255274085181287576872782182434245229106629155393284513988157164283406297479742272726033577012880138887103637989796047958000664936496669359054427189937618914213914347902912228846132428567826661005220107346330423526153078480152860629249959168472369379902327020046553881747997528576008239359920158990664733121504262905245038653893013449172232460835122041635570900702518615673296796959868551669310732656596082045181802964531676016789790936684815195950636036242809146626982020695681351352128375937288570596997030951891219476454099118896024358157411342514227748671728939566800452682756975069613561065006021970998652035506922333166192861234963530796618129615052052810431973872567272417225703785202719569451333100563764079015299687953388178340843344720835354505866252555708169609168919221693704396190653274362694378566826738124087361846173018499912532808941231634280140173083136415177196895208373690501065415092296531815573260026818551922613920228988124740512369640455953841661594357528016303215974129486968098977723531861492945717557433924193194501699253918041469044061151262235419797554818888566231850659304172651170340027891423423417846650046482658607639440134829998585593438124306119200883717440939031045322136687415329309739407806358585991687735127529350603192853098085395188108152441575824977874018280762114251071348194778776267189384340543090659867177489146744903369127286005958119450766076132060347875075437582743884670114526195282789234495283108156312335468302266218389167551933496639599770267164193673902433979641185009034735363469119809055223064377322186500217619255016810807129790199562240181988289982953187484510315553354694047825886864692577263208519364973250696151003196540506733955150403628118019652490906844238769734188396504319628470209365576131604627391725607012729218168805101575955651671991290207196206721095218674102652084126619202414108666920733271389867921587265178419807355540221847234064032022143397700274583014879302415577128068153605606809043919634294153148737287875948294656072865002093541700009709178413657506341140846781710252783854154538017108035901747648689942330899522237166197644589889214346939561248843792363140441765107553007427833577864389335609187769888497542372070513375322883343518997341614394001638041894964926064214002620955210335365877685780406984871971722768825563175918927894770062038699208215679577640408874565422939321998250683782539939573632643284786490596938001889328436730408574539142836092054534733490670456867509326800161542471202175853557389712861138769091562890426488827104401039252137447976523400826747412891877984593246024924273462288857761335145164799332531495606103922850300720784818295052641797328689194766445120300280837525345402396138413931588812355987486085235492306516823424959465293665954441835332069038662763093919223945746259108194919650293811499261856686848245223417939648717281429635089763300414763957446137293641041038526202031613656361191731932251954192898022432348850458135021233608602783854611843340483395972797763777517935572161359614819159828396065382497146588530067185630885786835669472342037079149803841773819927972001263312370001369390486749408105101387523961219196802921426502950992456866776416889709219967590571919832806035544078488930186348761870100249469810335989054624348384504983342463387251066142593840772230599069403830591714596579129962507208190498944683296131994652699371285519965647137894826094966858356964800782306427294751288181211878673123718811137638914462287687274656846346323786282500570150171821984980098245019365978407160344413019326074183330649539889915160997734932830286927821540611607825248017308432467710476855524950489872977129803024859572269556274911317023436407171972195123117296500530989186422879234325835802008682312519574197856281118930613484168540599113185375536404125804435041891597102741318906660419928957160719304470802788445273312454324137556449203020994516973485241091586409261722074443368013764059890855891021875077371441205351482315363491804493544535712883847184701567407313418970699409401678984352698644055331979836808425385348725383633622448920492839469604590208399719908310121067740872363105533725854688855167440701838518818378245152179191273425532855159414387797284935702337433696759289971835902867101539638476804799303572684823349857478326554760334377307408299768731992108674017120403060172877303805670451045068299075672999535010414995368036209171243996626031881726408664853796453417759554439973971578341174308309497839111792918428749459507091033250029422912104618470126076165418009065697963969869869415230387415920143061430787082231658623263009779462697920477245881970297619338260650008422059621228450821872254426617035122991127697418347852255783791527540774977788993557352132888057973070123027751086886043290939410681603048945000286355495584912331497713189208346053625840680574036083441376108710626890658369209638713182874594257896678423249221547436104633596937511947139576988738429878240024663175065781667938304870934706807315408676800343914271215140203564966118383707499795418525812909478907527259192670846913500847151466952846996602114105354188228708080208325727459269281974394120335549324089234446624688678457183671735286541538394276881811632001065028090168619698173950842006925538900283785207077251531914596913787149129773230427647039251047311869506685247105629789394934888623285823998013907563077471320454563909402373252694430626897765900773199550961051921058895371427075181930685167800315179371806398010757072519342731649050880829233421250578075735751817758132132002882621042437998362998247147273569661292368666408160230407954960996730468768976054658403163337616883962319489049002112681239655341856477348154238925864964231755183286071396745336370777873609716854063480632083583612402655996665162999210345319889456445450541442882938347229118664829916582200862743734166834813489150611255815068649220287680664236182564718605333952251054058158289050503722838836570729078098125520930256039354883589237370909280082795027003235015714803518069333954945905295394924292417558799103328429897352861012473479010451040949822122182230945016174528114530541267343873879972284405320381464837396356710532621856510884912307466216762267241971728970155100673284178727872692876522713322177154358306819035523841060466945138193064515832566450447293670198910899402350085734919426878233885636262400097375234465828995617695055360737429763928253662960612552919852621549154372089586965790436281425509992704680895068775062356741465510257549529371767864129137130644862591011305670313634566159275862543831529080553314657824441333471735390495936332674374194946613099446214407770733285260477212273626102970142386257109223288883453852658819191979589910062891995969628746273155526095434667760957250249417346438412114394991349558729678632102455984576893610941091381529376812908854119821373982381374269269541971597850317092195610570280616112544261320951821323486378131712587101810302061439204581594450815661488332559519816654179582349756493471106427121407665643039277326406841940627329131560491267875911921189141566677080196688969915522039335157096996521951195508374850009834592371669443917983767288753007785202215744228611034517584440992348222377965193004361586673759472013847531477878059313326767365286844181900162496167729133139200440306845789559946871723696434267417684512319277504546351747960165409376464258328786655343458863155903697373699524848011210830533276633270224480470767159896683223045998974530079736926909270500052197348806708867991713388756059757944080115279136596526245392194988150308448340574896048199504460923880429476249793549739778332323632262461084371193081739637929593720822080729857457959121970558173492370131625601089181576349152465105430251386203331953918770217939950034917630148953700264641586824747630997302520212495361865222246487807074328441203525281360283428243681747024566735001179524803292716008034518168308061799187693118216891827230448328764363033522873404303975349181166842366253707624181987235133188310729876917799339409438982279421715744012646807472429185085108644358746159700034167618616096773865926738499840845218534495610635311250353740331168934649257177898701343925997333518467651464571468146109422442500981901243723923975745526839491451559002851092408633078636178292321025119566331235475598380329588988352281548935258684449629284718804444166707904676243382732824732325656830945414438221989088034107668472410256898775159480288582791479769819513205453737718715182024534041615905245346342830835712120924416803115264304692031680990917630184721271713491386159754517757207743353503678551495508148500520925098197783351614221760962961572180951743782184173322222289329942000588868824043567234595790785564644316549136616487373046689530898076653373673497253240537962980592587269834375964404128781599891867649544630847240728721372424371941164806552316287342501419443060374714394531790849730342837445122416402377085488740301605817344746268433919971217084881518269857680598936860106011189192236489174209445478986091484693790200128866154845224976352300261190056892874291231202206973708820307089597588683337044716917631320396054501904688680953118896839107965973570399402293216814266434849377327305824977364020612467276935918440063762777576140615693140547209404431602957452415338792367269836783894190884582076479427146790920373526559087519609876441352682743325464336781438660779415373220053008056608043905570397689962475790832821319769164034289214906738692497659571093422372510692875804698630864751336709768924819957581454570784854904359027790001935839521639463955992785773504344222037805628713891812460662336382842840104165176217465356809313017413398722547275079194766843618619813724861406215734117742383863433726565069696062919638558986209280529726582649928950473584911802745671697452373270078258715787766932577290826635310068515120838825626860363069984826598771378336181966388574960615914324681662923552372181794876450868006716359124312093883079083545177002046108827733635190446791925406800267009793305024016037203808599191803741671191942795866924855261971278611438446564931643065690719711749433496764288684858596586207171309119171393210213843180235778934475411617828511739935033917609845705062536233844502033358555348603877678205038311781219509222662663198184145166947350748700832792916346447503078082115984448362831385463660008320477109597426527165409265726178716944913748330996082687890575388178925174538121315748208019993277045754852788835969112261565731686744392989444209329754871324206911660152554497820042577187885909585603766365486270843430465229079716525570053398125897662387619969639769581403615636392770380614783411484893750833448620447512027535205012570616575977106510164466609254560287872985105684387719432658930119511743245186176229993095338564342471243637953137706720788136190945753702002064185371917177857849660729118225569756779786633336734253408062838346733426499591305074750206019271854380166533301276548806745381742489464518749895951395758380969083799352763559869597256390757048317641272898616304509470496076204144923004071380522653882669105952175682151743774890549514837834617335029698324868046121081078867208512319088813904766489121195483888604933147371439249687489575410216634915550470603553785195296076873774092943680236672362692581654634914457766250358841470765353962332421077480787211109458197976455985545132187840417671762003925874018592035398351852796615486445237304527298694203218063217674908096381790096821988152932696629798986548908338074152410427506140693139914476698909597529113096058165460464303149777932168860485250143996885766653301727778963653660101182849931120695085474846470420318449640407436625576792837595686035304119707193480057526064277575978002417726879386157591745913027175654221023099288350769065500766270252074615085360448197083120451264463371661484148189106626067648850503460292131274273045269354435665450686502789844837803336376919316399012105094354466161373680751276438899002018625838984139367328505499633813718644201171834487580463332031894349938719362722520243696109966377951012378669388753405612793628257911905269548243374026810625043569064810085667489488553496524442925544201581716137937757422765383399085707699752686701264203685754139470476291118667237459917179819020131603525195585835732352622517391812945762102751162377725556072018401819026872204444500901683324803590035585126226142840494156472718979420696267679706559216008262059472309614771536498242521713087410237968602316575981291715802400744691929476251125340142955759520545588843525505524699203907827006839539235100606558188622643121851106868445595969031348220844035999926180584435716923739150141410251951601316362500723486112160510475562899862359396822980900727207989224472974888258928626548069539691829770514442742919420221400682774905319309196615938448032567456188427254495748968089791461322974979397033156589361808814231622689911074749744806450362514898129663380333769604347837756212505414852395645333749357426497266698876183669252441758563582502176712763034724939834844990906335235578182492110090109176289261572416381078300702291055457569303417533653034220411997799013121330467317089143456831910162144015561925533703165676213836872232166926573368797399298763246093333546519199592366512399611113206078238665598081629313600034571781606713804075585824797554325214533634762578548561166202415745942499594305748542316908793930564920308949584838867719176941607961640690272747457413611283489828680868270026376962283041816518283285280551690276246090650213701634209457878658397871274937524018996477052455574978463253650976835993209896862805846137397684835658567122170369426393002525390613479394329225164294551345331587345595076568806537522089814348533854393392829060112446350380814295445481332958536752765257951616457127105733972003020517317479531323793433786404448672840109557050248246629003143213559875876384668594701332691572577361167529846694856736769190025145080528161422838702232757348585618933380070223917202139915420190058118601272807057477635503847333285832335356851893543311109179966867853447591697588454335306274460472260163869640902090750734114090000568953532696582484457186211403989855902173263995957596232381792170978149966336943137880391428683463514084077134958222277902391397470352961701836523562649432558529282971543876149681607106123173398138875397184363662955367331723652903682268739479747936414127541331940806756972976834772462832572835893464211831959048611133661953503974430901064589077354874166744862785591841642523375004850887637398616628897318461231047489773464456394621978397937258324940768931368031758085390931830823307651998041518213675381063308435062677095241612801086476964866252949847610045299094055256253580847410847862088173142907242277377601017925441472506080098511683730438888628715905869056132203931263858308737700895123175863034493058619461057854059662619145118926708645229168571596098423273427338776815163674739830780276965439328183109773596617229704370275463042665193436251841163133010219993199051586413582205874792741908714208149709452216854188621802153179100750610478648022218497347779064695415048709708477371186201760108863145494821209062599197537056969107794139217973537263991567201664056157870983015690955998527573879027886721637493338595112944188960452654621524870774934721458103704425318533584766187004110011706671969658623242764950769499718512663490929626729347178388255084685524581554872478106080955143751175091224876297829388303418493292174507272756675754273436521294775636430755461534486586246664035681307303434059633804032724715976744641253889526722627493302700739327582554974054312439424210632157477169967087910968595275023576180900851732756491635379149018783978178924083183091303871942071414027479128868191290079444392438822233264844588011800412859057946412056242478626384436848260240213171126702433027462093610541922136069809170037393043031539562244426566078434154401712484297546640150252745948019407419273683720248393966552272188662686854736341596830473614023531491424263926470127074685904783795537967682912343584365548760932840622652191359147622037488612932291372738117979477601773959348866012700647690668918407412513004989813920094120510097656257366356135776681148610397799877471772797056855803102504631394147197393618007127648100990974232572915485142338218556474713018095218454760478429789622508803168592953060261347948318724593879448581059539487097104153089003126876959681040006535312925692386248673505258250380531374015082181182723209358748479846929363627570354088060745195908059059507767021409997573929985627996979664965799032631760028818872702112011221382928034498827008040601098763257190741557596363235758070666120334983561903344978584877658820018735709573070241512021103161153452799643936247385669274057470523893829027030082914544397646502463737848172934667079229395529904974246518229921893685246725435189646250705186856122997896473297501876102853422985033703399124599614472092385664652061428406018658177606251607182265952067855296479253691340752847633780987553686281982826172875711651354700439854415821637646559229923365290288835653380326361786351139516014686656084985305718396674023016617131718072695808715933840366730449713388220854549024186265342219024853367440699538982406868611777968959077864846131959353719694531171530838266998869985952342276157790814105749884062053016874727398684327560023514386303724966864017001660843264979320855298858236535400994411782273791321684154068042368923986640195966992480811564463037836677817678329740113534138901548284588234856208859182919757223619660169680150976577241462236683509992921379093198086764938605374222397343210665110287353949459258273281139250579164374037520780348346152273111125672804580832862874744277673247650048960514717089796153345521344926528299305570924586381042482326037510830728429119204862644951416266411102987802076397278562267479192664798584611412796943085189000948019029391537490860622718874708126511703193627789871696736680423976618900217944985603333545376321752624858854566021606279593033949401363886047737694672843154595946644232288117669116422260077211701394259922503936330500008920361397772315749130693356507437182309632796719553070333456503430473611126547279797014353941026093501620347481024239964644852634140326038891097127942968627014903012034800620036300366479413095769964349338786502841299651237105970891678473893082110228296991998203586546441497424628608089597036206308753766883248683719860540847818596563476423771963078473998301425016624639544105319545106361811218825175499874758271073838652675563939227151634328401201231536013986794718115648830292580468092525168611592971447733817904071709823358391352557936507333707519374193867969543424577883300622596360255455224982916940461033607538957763208518706430473936417679855008054930172021091946963712243366449667227481926727630881969816858594849652906111262864548373010647588744789591025023556773693457885444763523105787999257642903443035651032869913382749652200679350588442007617958967564241859538165080299867226430342515915177695941168437291311186248704905492512089245045364954672004115969877451997247616842154617402467296180896544078717529307641528258772351016375396482992260010511690344876869545552067365675293930306100642228749716638748995226709326324272608945618176254897804053831894158536134627019006799960777275155244808673816104544471626698565531156864299623099111177521943343906567009988938393728028754018398282227779288947245514027023062172469998101772152700389305553954325893819204587380417370341910454670214078525383193509848312025787938685445853186903144172437068205925636978466391525289832427001438616736607144023481195505055209141846455624175162442976680273846733037324882222174999349515408808468388769760116589989703339109510274100432135886599171425214701847896562070626952306256558706386692967900205326778289981941791721870295927979855239089168078388668806810745759401769373412344347144699041811649118307689086718282741649705210840790591997780859123693429067047416355863387813090475208366715317504134520997359541092743255817596824453921982491974071475016318089993652416453835571906524544724126635397866847863816290118522075369388740780059514450821871211373911396311730681734449423878162475842557989771635217917457577611812664869559967326103121214761756215725601391504215028758817044341144655407027115001778928628735547217377261136188535244474430561579749022472754619764967867027677503700288057418380507826485889315995759911314903287652556684426027374214364616273715306129574191428028513638688618606772760954042159301782606093910224238561150512491240640871440781330866765289559373544311834245899202080677500137621649041051394667783259855065067422434538494135238176499133199433876288111875579805588321248090063341930947040230056755597215065732359300438835091992096934126992382373381235857793565030482380075612990910787620793556730662653678599987397516404935217256330411339089429082635602349613357341226815189625314633259701647998690264496081959707764861620097582410920849999735260256860502649218278601517005422226940828751650908043839915527976349836573754159073747765264139770005620171002946413520803433149505350202289842118963141150434095294749968138615375707777982358703951108786325640234737385946617391614236651503484497083409809581785679051020775394038975781392985595924800861968196528706327880692926622986460896917973864023157920236793464862228306482018868434073694410444673290280338615385125859648886987374861923889578439832832639613819894345816902511361822998835604111566454659797247847841516654610799998062124471158934870228814495306447129330877245073481844045041993814537579506656267334943839268506726664493427189429680199705425995101489157908013966701381658694424674393654795557231076625292019847392908280436779389458524220028369063308549590037734312330754613581868838405293144252989542640956971583282175673312036309627115247787265558754283495322093715008547594876463263751336261555691828803346206052842305053589234061442420457241869785158422628800370508513134354277299610755564069667893749799006782225603225551034665465044955543298081477397764811599368221167072253805518761309920064326588576268148736950868382000196201314583189468749436453788559609238151895364608404015620620608598063054028166070547429327624083680798773680279852893021766180022329521100664626067719125553797466866617731154204573616421487030920318187994331021888436972498510749711297361259270036881697978885159739749544493129669739217393758760671886842522370574329247215360627891791109326933553906792479666504998276454066575054499084572936523401202218756929541556823182686679989633170072184963251737033680087125152116084571970837612896666201590323701069148812751215218609409927880322282756942444955150839419675411245406354416424468478492886605748108228800390600072532140678985552002971307789109142285801147203020701583091932891698990182636108738335487720952791978646337547574875746740496973560069519289065569976749538579043003363928790055261554922553708741094252864297614206811090563543790625456665693842064407499967772408343704550473642210608166258441029681099014259676224551854546871872670294141720870310268195408284383256208308719698131705590034519068783369387145480180509425494398753765423823732915521288556330384872268079071756956893007783508607967686147568083431869784518000604451045178745837045623663594570428439339253231430838440013203034019923347122534090479184278766895597853309835563276945066706440939816230340802108856568118056649534913144516657684559473367839442100882795377974006196019646536503528545128374696043063580255268757492445025001873525417618010646459934314751651166708618883343532312231741404012043556173912691619246806249896225527818046050513425747975832326078611242238781414622514995784175350388247371017416575677677439417343572253108877292902376029311718764095888696874296639243542910614482918879250387808310055980272441542104656501451001575866252574383549201348406919400417548675445584007231291879955342426147494206874594874357876145881414823954328144966611203804669037395033867880515075526861956003169101027346398939339994209951811449200043115801033103487157656441814083006167667491495528364386303235507969309583724982650876381745498675593852031372882780562336104784747021634494350223391703219481189071723395970481777276609899301056499231507522730438190082041668205233684316164662184276073675325583426402776175053899546233793463787194800690301883992932619267199322209319455687039667394649605669869666408605362787965365856880457680681711267076189994645650393087042026758681281369419243032872483383606480746420235376772932474884019309288236040597925686402925339185344543688775455527877073277150092257294651388370841392508681742045763032559096662404160821616037663063028675018797987706981560332663008650983769760812303481340427794872094621168407298805355350758254325800142340010689667377333611030852609476959956611333770584498066741359380283506407497058573344428511697133527939208417431931147902795082767620194204940004806264533292284020582635049891849199435998652426487458650784798051032153958673242386244126014826885726679450117830424494828088064915668214984855640173461369034586912096341452497600719231460622580796549216233391280828276259787427857789712902167132866574199083873515844408192157831126200459615757230523068167198015406290060031683719327917594551388509720586730195317454408317262556229296179449292573416338428601163098471863553708809133708981629705227747008494416781088946595804073045413745624327992940171568656884319369439671450800028828865098666758096870947037423337443149062293157376278688318653330622640840188535231827227753287588377629087635292439770698190974661286745530479334322680556286560122002058486117633697677328544181322514504008442507255425518400852845901542891335077147889914819376190845062664629147301092944039453618107274306599329252757769975463897818589800914902320493077019646929717179303523031338912363744124496485275481443902361825082952343379338082230025550416473465197021074030782222359197662031997862015172852198445559114950983551420556097999922570993081305955925773727885842324141125279050848959550601175149915995707259601928315504102788470029802062250042778946061842661367650361643020082216970794821040880500655219028933327783003449727100786808890186328985030146840245484915772609791885895667963161795126579153884748881296332653241830184729504093926580051886904397290742347264375152357747809445108318335612143663624381040308574965107730277067585871200690669093479570071112527154875798860837389833914750559253835645125670253232927882035061445667246051061253399267381798581417576652054033992342865135401509478971518735017908792264075653537530499837489790904251701351799229369425634848791628872052021770509171289917422769234402825861785998200194245280809554403654505631903034511675495609676213040867707262132729098188617909080321477697667383011642245607502793985331497853493780509179734203966363978579294219670393477210170147281313140289762073463666028532536065612631798360570458387430112423513092178946202959376103536760484347512834679908806813147231363815714113733186185586032703479050534911907734772116373788645688801273306027818629959813432452820548367662210744509774088669855532798783805730127090839750687869545908549532316655775335489016302234768927260284570167723730348493437331308987793597660757830197944292030731324793885767832891028557755901211265169968032744604117921191132838227508014152714783027792610890909623822104365557736866631873126737787563759958473303843465929850803392703864786810075647185538684813946191057085736882367271272622526399343739197621681211451114692740853431917473003400093379893513606225884434915309579770990757251522150525475761580082482614366856242519033630947873403404487260867814448471172436571974805564840950177004250724199355543297017410955652283700036578441215729850726466990392237428968484486413346405626592422709190324480500574321001154872021451267106778756354682912026850138035257148872396753992547542520762011276052688753815626349651291628798080642512742287807974224094232219766363614358017453158073300903401303390510481835446769650484119690755284047903884601272490492072228152145722344822653067572824141217953417318917705093319657321354955729167149767916537455218677476744125090701352087066266668850428704990396810793776000142250354064791434279381299312174175035168035493539029056962213223424066385956871014761580057190361445901187180044547079887486616518850824642398898095280184476600103614827234986357082963242522543357807285659127203053841135515112410933125047894237525175798062578633912347579628351860101552665902468154066604636299965689352762721658963731890089446421270378725554008066130086423604822093947306929201240013540550936201371024190455061746512487763104908266542794281082154732494559448360023857494818327037888349040480263000070487333493535060016732165535605982204110055544364386245035555785746764834034726026596530148045877363926627517988125237505649482660325220342043429672807866052082011683779323517052571875667036939521604271882762293150117810571554394197054704893440449465531776011668259944846639039060799919720086527969337723095827990683563385038765190867151694385396584065821700338961957616012712108862294198078002806230781881288578690750157537039328809811338256178884686035231437339169806898441761609172891535498037797917724329865380410942257303704734498058937850424488906008919464775212413560384662447178911031981873295155323325221565249986322347270583994105361511900278173733644472058318635292074745939221919236350560382836118303636792068622193871870885438844206924745248460924468724931071742723457142416250130418393929539006163172676716127843769294789553003482463890516216748393845444872118488231871351419572019888961441431576634631049468302803171787001978610402797659307675848866272251575743045694999296943988934002914595341096819958991695291299675373892849357222712092854070264976195781633575596866826033853866893001676245776933499041607967658327204149678891515315358209237982336563293838645793339453770146645026781707057644676056558913530860808480240139522726414323567087943659404459691954167082164341649915332401252000700392459907324440128174918399041814313147225859691463975426780469812874979116033747678521044671052131508416817301817264132220741385327381679024578380015997654231380186307785447123963782332027803435344251427675727277625197917978757745962122689823394315032579869567124707318877417757307104268036724979361953296260903153291069684847302187873429701420198941031448011734136097403072136983146374745401794136995201966463511417069268457749524956421244767881569030546308527229239540200868952395579337644219965278156868243454448318987226000805342704423088000055798435036454978680488066522209897151709046863241675717739595605923607066986678847646000220367922744674369398326419131333624219742128344632058167453380675081348377785448658243165365163339078072969873896743776962139616502574330611861535784119057869111378120140771268921483613937364053298536396875481780068717288763711442872673458592226192094356100065201601401965467555953411062619283146464888346325296172731993292187347489135731693787247055594918593781763653965034324137629047856763639461269542511213454755416206691187325029352998754021295253113354053404378131186673545469887350587075462924433687452850918018427702817307655744426365131492998375823833274493712959410813757078115322023800646705835744965899326617584372339963332044775417478748272849767385461922396611651875134736225141927053710229007394644550496525460246076341812070580530910831597668188591014239867306157761556701093723928183517074527721673342536811309123530500652448465223641699354628911747507997134068034905285670035193787905067862436387259973380007002866655727555545938562457519293415442885438937304094131873860640433052969406345179009902822049489084703025908681552141503064811613539852614143490479927048459438484928972831506362054267777339817741762681434504379391044886328329021801926100106443435933162170794040746337885400311038741381930002816025209039004495167301586365822181330159827686542631611821675236547922048671142780891411273015808917368575781816956200670265616597122365984539651051735643742040538270595123759851081949486015882961250695660791146681930981850533157505209349405250696462576468233521968577862659344363948817939983664463016101918497372402934626624964696403142110066556043000811362957760150089885019768393995963082050768866626579637883827331992277435448076884664846639079487354725079199843637175593124752741861578838908738370808689430496528290229836884248944725308465092699791480574719401803812089797361786142613950229646748103944307591566808711071128924287718814089962336701135477484685298221094003900093880514600058614529295742220527515652067424969829116146928291852254676496302048825112035378063081259672045035728022030442375387826998144668827763083821680448335721262188059702760246554579669589335403695518995485843378015641671297630447465917262971185214640469208121493890002274057092133730866885299810214494233086069382436084329483389926663307886533220501263890114569854249320870718158654198715123935526996576950469055086192388560749928103476054053828931341162379056641043018670966106828081399025862847071610936785301561728710665653793133134115523962870491271599547866256813814543233388100864748979429536560483455819597655376080915175070339012403582147368553386176939779308657594797585884226100691856732127171452485268186767901128365076506463825492860589862919013781647803873487367894290053939792747936233689527696037632516257081150371490972845745968891152177991359832806355804963982410561549851417069290124316196989629751793167071317891633187847951854932700700664014799205107259024107011373292406545696944732920173150135122427402171151142701230963262700372572957585425538506728538873949153163404997428490975267047682500142743122829657453606749473017132536271201641914055426722743796262901747306080205128788021934470066768209964533759479175154123338846178421117579310699349664700113612255288257381275982572768953191403695108958121984035327894963427732879959555930983665680974815715113133229451344070410473866953038979573226528761464046142347038427519858589817201315458432044217740468540545453727903692673410934302551840112529125985103015887977026865038292223153656317192805162694150228556610941254179559741118694185001065750910541020004572406704747251641813549909580990226728995432661363381123087701056674677052941210444178536029587279686792687643413141199383996395615482542961555214537975585630434496549124503220270750154909039381587783319183078835944021815405953397254282655586069330807036218407428029734768927045219471359218012093357662114202065364899057666026124761638879056173253670171704373759293860996651779224401992731063988017419922481512908679881211813883844041821191694613944039084703377139196351752770626404196101161676242456094948045298093862101990981696298737909267744291120634975743476750877714526650484636200424591253877231191066110520109612425261818397475883923679051175825810883520797249260060413620415473529228830786449970082070180438686087215664633651747687398645102642996559798458866939269258954591144660339230275069336109797789230626471477140241202464755682034897776287119708109482870534033356751689742153149943109441894246696906282488876898597132990518681071108612801172557382337862739675928567877011895282637753576657990581227838042851922793111759368676569633922721874559234279043199274958318845970035452537027126697567170685110818319280509860981420870777835395886737213229486377058244267874167531621367742578356220891902425866425933891433399862033694278375965631801912211908415737953464445334791415187085416979963567648189288448834250071843470220455410093220012524380254560973792772309085506215532980580025145613893580291964533190701554532044518630586841241870979934638917328903750585616584857664701120734392233738144831274110675798761750660080986443306395663931424767515741728251442621273440974785738364497561682580790085060801055449273566336065046612496178376452841695781414483350800066583408394901635272364425716378966819499181975277289854367714967804618589602020717422206473875287259360090447271433009332473417185213963608588172261220058710783169773912816226665050627204741144589939639637418725266154185230413958921609594793158169591358612865924330518430997542460381014508410469065432402724290072888480189970476852613950622776921352849121305923351939605407435670817033415334778921539033676534520710035273330580929930041114701186964563454775149600552021192688330058134930840520043737654170393619961167706595299313673639699497224481690008422289127850557461133778820556416660829044374436277433115533211035824096846264318965999703324177396905936741617049018654262314648989061985354067887079653876610821548854344556522881432325262373685600959891465132387882713584282264701612067916308914979809463420542251825349614752532496873201646946054310521715981247077500618063735833199601792594343895002420683940005395702898180740444918381578165787378148536120257334250797576607213495357118050902718106025596979628193407452227113098667246368625889037989991742842344957241022534179619936085762352968712669808877357140661722897169772420828362225752959925642260224328942896862736013038106171806663547814303554717972295884766534265105567917215553647696733347788411091884563470077467401723493929778110588130522457823423417041799448122099889344887131018337685288946444288453096431186356246537285857946607682473059140431640312487575939519808964840925289000308677588699394855400248709677230016189823982741112809261210088947710903649436744178729683891346947747565177422459315113661257596932135033909764855530018882373682445054844026469144206977928533493795200274420290288622284324100363823627772049238502780304307333863704972133563930623322590449349828179191639215859933096597583370852331655868354935119481062322744701951318079002645571563289888536133478373111352275973280658803990686202477546238309346745769017529808006504687346309257108228957737259768238696031815623266631415842243627913604396635808356836579614131847167835693791561185912911338542548262912556768464820374874304890583897139931973498336895071968178291366013760948481843447112722833593983425309564931565566101999133256226599603959573220660041376488835674939667011461371159891366954846080271829260783610472287125284857285422473427916790271522145721232467370524618384468125958653611127419934361974948298172267276420822699854639575476947657500931510997890863277738273577101316258840836993459713414929959888257640857989768480514854544408111436441458278578231430229069975018376988819396121832775209251564419520998128971467943043893062686614204685374839135551637995701642003391680759504421691072019838723869635020614962458691193092070661503593038674353021980657825472948088063796252692957243262986947665126647673105245800966514124680160656632025910808949131958630268470929942217810678160714389789421114599002908533768588010846178502298108091380912112755119825228093954149893847544023981883474453528158657627701671043939093835225273599492137946796627363551865908311665694084420774903065555226154215326870394415692974576231573015485799761515339707914215552998292356040163973579143857230304540189704304250484999100484854145099805874154507678663231588459993777624857499826217672882786334633085083512573474631985745968255141519197672323722259357501436227291527690907069127965384765505092131990497888378240891714549925624074916102377956178302140065914285366487393753072234576148778152939758527349425692632688061635059703259434510319767895867005371519684674102051327716341473977899934409906490182947164956923447115929949524955460809296951893079726107189650197209885191523084612418528477813906940896217607867912436650247075349635531401328333392380757108155324849389548423172844034392695373993457388970785471675818666665193218089683552203765926314541898933146555210855559033116633095760240741175331799951705824477765850315812030536262032522358489450568009188045418350060221735600206373754352548497440387134349306256315615441277745391024694192495811917242507274120793417454938709380296215389024910415588222877952790944592850028476337466631544643998098992127558775024393551059893622266942838325361943142865395295530697829409140370226306000805731904774609922514942069482190225898391031023056440508378455057993406787105597905281479661720655163070836544058805948015244342846219993545570611621843718947188380436432629176785257907547617714323048402142412062902107662207791598637412808411113165291805805292587713711386059745271112417036196003837344111681958718808971668249654058875723760070167167810660544829878492931150258186434090421407648046051852976676854794291440614274286611903739449131586235515001698757480864026851985243225517266958692718478749635646732271374516283809735615255659635768918151543077866154699345008844554765959295801916133841919419597509331162952650028583004513148680713012020759715852439919503697666289926119182104735258235401515303385725545460061982282090617226280053409848875827417624028530493029543483560826661036311080119366510965730842582237112358372750617850184248667675889747649895705961198631033185471821307504008036372940008089344385780630960925166386867199045651067782554662218156937792062757180021768411972263958274060526240592882092559809644946028034581846213681979690538533119477279507892668518165065455070547173907802425648087380785152029873609673939981571344269564927497094301687480441807555793285340093271202712267352399722886081119901678601688504833081690328344759156945784529307757232834534662365742353331630470944372797036560567184047144760931521122855564216408270225226210104937928451154611747700107643628189998077015154175851006136949404474238632652928419920000480378319676307924822707426674724732997275917206905380393997718985175476758104231632812974207761857616899448088317889631406189002363382231426311427773776927595275170993327681824544199736677710428755270821348839030286810391534406843007600821221060146261669330766581714932507501855886412885925092258188448639178465624258590165330484217097757959614480284444593867587391200306448178722776853022771126440647069271739446364464767988910801682708909137134408921801805825550037109098215951150780590637384110802878289278611615741477208218005146273628621222356269326003864430680654182311562345876231116922717441569399598789112589729331699599853399928692196224463969428400322810837434168603861198892751491411706689453603968344952242278562740511591969399899721360152270580477589226026952356330697137946114550358740236685752352980495636523370924942558175779322328777385773844366678891899553678760313877065314955031889675447044745722311957381344624226054658986390317300570555587079813379205503106369713862499574146773488079766320776637014302094443109294518862224022192777717774007223279653514760948396101820732826914751564197878352801826303434452202647165738456734268441202303554086006085813199284037774017887031398417575609951708866293483143284436782168874204455517448132463036735193567301873660928048385176606491339220680230775679895152488589150333787563002739487941610884175694860389753440507899364534636663865927574240712132572793625153161936961738101051584191245495766958683977918022999434740381630689520633218558946689406581553006725702028550686047600071523302069469433587810465291225123257083609893621414333331508206555463617808017267305333448540969212962661001963641288383772806528150417297697913035547253447319988749070761719517474107414341643618406538788986570127628190733746128448269513505307613932728529055887211442958003485016850616821299864044947246474131056022102458085128088109332282388710718557991460971840748204505947860129488313355880542082883830517392793849736280716130042455487431953998744602222142876088792654796299416835093687714692145367638392885929692260662645439601769988452858142725905199876569576687867592835770843109256303064708761693846819940623514144077713432262203307493375850538475161628745415557102451468182628078640955043612471149206555804213129495628091975734900016867861783875909433096576020851996387315782697031490414926181103628074063761875174714274586054213313700654457956627331398677462900451743276173003074367789488468283077410666293380189642767475453115722011599328201956266198143309939833402858603894309085195810007497962483746269588530426405356965374471833139366080906355559403659319104804020216054583471176248724927583694665685286442617205119367124136973859140148720664584515879712813365588203535343347719386661975963271089531543342680599829963072419739553946615398119078699642761031463592221428248567911317811815310365164949275177515220870739834848045011766244983361892570976792663257793552079774617940360685997658874850599410900962277873004327691457770405391907600903660432102991141353916593261235692021072942184123757731380811206287086620291439403194278093494055456198512122134717770982623758677419707837040632923255412668233308893355958192811066274630761405582683190537931852682296234872606201043444336990451754351390714716258784282292285067153389749603671814941965263206609299479608230708518804553658354627111963060901499659012897074742566559481529284625821523812122062705560371121723182138810038650409936973603376393394816596201034992562950449746943621616545292326214484503429392110866989524130225672384297482862726101248865134223562578500268599420987938560143545821665508701848844921358449076582838728696997321718641741326577662719796838603330685888492660348591138314397080091226013406812927175452438190655690437631100497862739083880093330746545534362937179318416996890023618486229945281785240748770926356769334423704679678838971381540938284808468454473571392972816972532664674248099272734777143990852603954638592037111136209692994025276617308938139394209157808824896897001369562830785408711473956018339837333717731834532879019439774612375210931089401846346292965142069544471169194936904093397710450424847912940536250236721353116278605472425386986987748928907944450860091084302737211310901922708177800383536591643839533728272534959469146001062207358120408220655975990445137588525447358592115717100926427119877503233322029146702499186744207904364003263581617652625735572139068689687085198709827579652145599863386713950986896051902258276818334824900971718188162525748128152127764447446410851004480068174038778338422335974762963988756298529765751081928237358285614323242071209710793826693257300132515518060634905765802638067822718811446731653306946892683868504158200838982783824709184430107006744184351787024584061713378269741644121235007983170197081225073027668044420974322941389931346156883560612210502089689226024591534714653498188366391505793814907637264075659268981978876463952301996237032479583473299150494657921942789142000056551955854019023179019943084193926578571062610182911271358458749663084187754459907807730320096667162211464104389084329836734577751827130097283459489309625303989463296086356453922914690001685829069361846875937171449924864464957088600978387121712556129311417598169976028450497719403035670000983092470299012358933967079010886980982166452345462105351396677651135961056662818482984625920312641631210563222446955488161517478121631288219775351093270429751478504224705962709225693726205919750214777273595784863707114826028031293011660569329666692166229374223420452045668143736968873742584973358774065798125312981550361977268816415040082614088775496182847683279188010526189382775956257160199543592036037051757160720394668053562419815983309277447130776928326358388725166147810310963422238632615807199489294774926064931821355290239831309213129999039717493240424445535494347431680557904705690094598307178866755404775120364310915720862373569064859316685601167210233079428538018309649451309820950790317660849610463119885112033677382600979630423756987171075190664538157508538654142022971356042815030243811759549616865607217489227194867410198399831061958123487839741530525361040908991321233734480079363559455906343140242236043897278797449186310973120829078685999536007613253359003953212254599763562298271511920698175761667241328342050882334951468819453117050136839802902513412948699591968243865607875121610491086284194739107985310789366944244082997238201475181514139836554296777889221795533453450990120270707435317841442278481570239955267841162311544641598829486578139662042669719429198924144995152504584793487238448285296650625674282598934540722329579809868193147755593907114903702981766917789559551067789843469977936874090610342166711040454663625823078819916386326156613245767263748307720054118409393601605528667210671803943640351023907283891886253694654788907554061396270408624469430622504285102766410430654965925969444098798776648700844090582375172604743042617152117635782204672368206790901442007614942040257660808239805714434255193350011314614301850697846520364970593061058249029464227727650231544728073408862377093227170198452199153943589758086684373571036652173064500228474839448744769185853216518794397056173172178214444099660756973142375820442570589080722059108133039110372351248520966651209071400942200895456777576818954595770025789435987376232202136558515833075835329759122491562326122864758718886872290709982826828048317271783350106189253331595219187007809260806758831845032360199129933012287307981994332715674245284629682656833792656487279503544268246358329809825061536140996183517828235081515783175566432188769676355641284322070925156260940230585729127361762490209519072242596872239860021896829696553043253386899752830489713097082888148687342598403424024847027330625404053493928212885763639055662671454382067997514195617782841920047424627349012297453125155921860433590113737258115791728441423465051496062130721852797088597819236565757545161835769884687369382120149022318763771987551452598979969973740057675322511675704928230415321374406693566994855615397547091920616765419716270700911755654172335521841490315423743238345607928392497315793504967032366020214401158303358769674947451164360948841583533617752288232812380538078864112402470316368633074833547524149263043796957553762647753385983884910765366136448365074863219414129564982537063010003890295776683078655586312816792864280357279972706614655949896298259920948129143900060871904446862009577797711614714058052825588622173086262253916533549701112387631132119404064106915618893594660593769290522118698428022193212215507826660483989411675257216496102727187995614682650407382660134600281637985855886664130048785532734549463321553189255233292340339397305307839033626855302896141659472652739658000844618173938871545133108587125744700651758057327964918898143396365482621593612383371676092272964643240353137572462380314563532785448826662676208527230756571458101942309435556453685906792361827718405097750457703916778292183765584891026222511994147524446512021282560175779987932478096329442390800294453516440199316003907343674830869662529786748330994920006274198078092036555163411791801986741962859472556705580568800373534155867979996517533247575940047010707393907684368645150933669410178376513683616132117168731871410461032356076747264689434174858282694103571393034796447815736535873969985508745302022710719023925745523439647046684594533547837495779174643433637864487444991972449238727926706650726337407027690219340494834739058234841161438981883775052028599551334209340681156185197537961848085676293286810681194337889410288862341556282418208954614486227402927908280779266557884855912056144963883798589256593251473851842461441300671863480804588125924995148133147423573367817420991431894542862277766059801964417332858399596437548702459644479608873749253744884884333752089657535500155606838437732065193684588987721180213545009448666856981548217328756950536465110154255090345062379808185951695478063929684856322932684438831198220814284249075822858281716171945499829493916556376010762509266060518549688390979290681500742386883470855668311144601787033638734832160223481864908868275008434159839667653307156783258060781835542559628499891914153142684194000894729684264322121385443059805299873214456598292001303095467991399480127917659664369573360548626991627674157776146493819185362297373734201760887100490536856739720844760049630560105836849014659459900267764098595423188640630409234269624641966715982921214790873726166318200542996118777533591938714468180192421623449145304701220860416574139944288519553800958736000161944458422402376870178358103644993766079929797937459512448301523369431282134684309115275103407633023521194331542340167720378210459564043349385685458363158996318241157112095200395129203770216366491997385967973145464086168267741641377551899953319621745825417575399379605179852373645403513097443581676404438887974481738034480012161262363066420166118792928376081809026737166106099780600732268264346781119107034196042027872291066914341764816806111476217339744547918672632196446900017522384305737197382877674306767072476361799654201334635899173097440079169335690240540795869954692977504316239494469611790632556931415799746102074055027373431577850382169348450836569635800309714084407359176707734030195040930531437501522545398861315392993891800698195144531836128859703938011419586846478396312685697374522851840302778627558460316157149963871063323297376533921494597285309991049858669815877330306017263348911309098016649107221868179013183745385134984367067757336424966514347541574682168805033707919141951165321363160076498541170937182497318188430151383077735590827860320828917448876234570216211077907176664909058641208401930777488914566851355509220383957404957260731535956936833436780401049008643335338932276216854637086566398785906569530928525852133309089922934874223944601004177915223633221029116315298413022900082789961851857421600643083469032297414461593070105382558212164843237918824990569541601347871947177042475089676799910387970953592358446980042166777139123390300743134081924782592936224167543388863234060108272947279437064726451613784941066143620547978512945080565696325934645298236243970807240460365452259839547145822781579220276071427335150305299844271225918479272937387020586640939413426167208695929961411169872992333515325259119802857625490600975433695309282982125355358995926410749573381212230915884807690404581902583589317124342135517460444472229365069098474846652710599829564459571351394263547236625938317576509011610531861311119989051139327837444894245648127503132716702019482827403808227013286972206810051066036480949259918237060902841053284695180371682541501712691156810396852044661709380484778948033474694776414164704122072536458598149362961742571908075463406211139457880696751868240094429112783984504919797650130685977837899519922015976920480881644911034556009981830336830399635599784490592425087255478435013359461435627946201285635794874822933592094856492782832531080018104489144748669940818017793058982994926907285549488792771245530876780189256389723076990087669955835434233854484391101973863970126121459765354049911874118546409321307686342303370424164999299910361612091595534038967344979640337068901595276817617336028723259031096473798557065121134710246139055940851660239015394950761181514703376863289992056354907501048226984078633866040907110332469108120775479566957541652119694390054765387068196781634194589795904749135152703362755352860665340570505334634226294278984562408895459814320432154867777159736221285555148260989542258943184519189993912393029702394331930032779643479451698289128149088242443816051824128355074136649192818916364563334458108576664762961736262449742658271353698174870082456819549013327379794015989524679157942423485043382165098297642159238691390654134283925857360579263301896538542606885166774876772111833216517931487096560148556704750285420165104013212392524690169871972134552000532038654833374021589363441199081128136016817865530191583738671254040206431653550973673833794567381109978207646879201302790494948445933239386996362733382415488684117570785841370014706416310941868932354993169419437064767216735289470260958883206972908889935972459803726790170454041492140506284242725266915421458057586329347766117093895053137189242858820825870657902112728516960260230689670244500277213579741170771798464309501129144579764869980387608938936702869675726679353823479435979813990069301063908289389815726725744589164323799118941092043294999243659012319152162305722785025225179980716467014445302140251576546892884845844087535244129884859243254842181876932424597827477146718910373120329717360520580938734310000418384210779042056572817886397146335451729998950225325536366931085083533926328825458718357916760389324850666154288571718126334183010549352599299137479837206537742925616040709863946326415894952011052252684257849181462304400809616586016358057504041678200230759592373795274919453076814429381478313934438867491564288956194071411616099231450603389955700643490703727560185629236157266026327549096655704751477056798714358934919567032596125923174889692654421859221268282760915423552731422634963580613630771715863848488444591587609702949557085893376320435407676974196886273096395062895456591828437086050574639871108621663610482176137880627157897692847814470488179948557082001121028174022384689198507908359623256799975309661391308598637815842241503829750885735877301997038845412373491570621558009012935224331957874950595241683556327356074744384685514466862307793976624240212933757154433101552902954856100061166519950456213602384784300886081207721579757406306340459869589319424905505915013796901260576628011356352427234800603960445896007799107074718246535275033227001264758954447787544227468123643629243803107973788225625130484970653988572971330287321736997636822298811181423053887989467663865342568335999755484785023397568941478005260386296782371157047511868556499877884234131212375284256435208309559504090098863028540766120977991633793009661450709274307568095741441418771810124859379742604920939505284737004694323345198317503496086479411503510969375421987012093259976310589298980105228345909160361222548499157948238556660779529126338292904214025614236064119434129116571682916567138685045547349666257102420728497927355683212614528457978497325665921854673374509020445544722314481366351070220414674595260389801718812775141611965547549839950786309870795502085818758362415661764099144566692728615681554806666897780438256653441840204143789809078879380251054427261278374889261290923291792181711974699114149782255613377651425853396193348094422004730208088638800886266756457467021901093562981527324201955475206095885250224050334106365375552707714457873488287108628419400081391029251116891389238286025027246142412692878598263445568946031975339586310436825360149032007525572154273146486113218299758671748240591088954797292406681346774279001738025736576560872371527976002530844365710248789461389229949556252168648595960928440117034869818718354795641223496436757086226437819127267515361232918715648241020140531467665756988785084935401787003335278933416497313231707178545133318014041650366220624868732825935894339867367595140407676212237846893544021702578745208429152657609221643734192953985138975349911490250607679946782645270288010074527889826317606847108294479999430563114685997972735205511397871577969328718564429368049653022278256024417798437917298798274040433962416090611963053469184294506655010231999800073733622855384993498867973076746982363412360828595248702775873526499519102344936592970409478793006152360095588465881800581380524540251451441563427615344317993588155416648698711247446218348494581843661829169871248797589763106622796879979517424902161096443322600662600100792680366216583186487462422045399278854903000926960433572340587447633304444180324738760923445117034387382569194124767021186408329848111786966861641756790089394640326805752376621471840825548081450928257076232321310765810363169242800390186969119844839058358101735138735164364389824975466831398608983054092853409344454856669866944261527405891830617977197019478377303784224194280636717746641802511613227792985347553174906942682396923078955870312050136353964178225339677845362996946350071203749246816197003259861168491073207092194613112822436454983410248870389807303009019662348929203977775976810314995697637654383248761508948529694583277283098138704303517489409132924649138030903315563373827497630092228205393831201047955867596448538902424282525007513402864864775798768348623304619250199012205702742389969364271312466678462256971297342404481076395661208617516316709768555443188780962838258443593278600217579406295597175042543809723742368079015236025567625235503079191403865656720518809978410911051287703029771035163486459703786650641058433208135150113040959299432180156488995104033172278019319206909638814588204475577197471692456650441059881431011705733953971617029754985959462758338344563655874307919249048243633014085064495467112689820719349294340985888608468435320259435143810228281486343533723721030781940723717040516182526651967780069214819257188140489215652807968631233518359851064570435263320841913740768114378914145653102866228307910958540731976173402594628424723773935688525701090535915862156545523111339153914073445826424718859487474392628961615499718060689384250283554687490845882954707219285122028242541420136892041315083572340377426206961422987425045596898542219192063476851874683423014211604157862278053379750991195556922100776084296219466892033758830117917853503931360547978828315412615898719207319618568533979127300366513628704185676832713331591999005368811198417462833888932915287955894184286083727329328111823410048679937524426956035270018988249807768506176389507575233960404208584285374923980221606471350798129187333030486611421193051128482007520388300794809022785083950949412240745015127098291204090370277623021309969341230973695709035071715047924703173373106114446097290483217377375257343833859791999435626896537573652439092884944984755742461522014256391027254355965903830914030131416300001791227809532814303143416796588787893592259644004252296190606010567198210408952423269266523218972952580672977404768080506210468072051759051792466565921568352283965098692807593199181443023643029096943131085664646396867610127160345868101231799746009426142124850033280399157790497277673498985897811571896381634178345304797604712667836008788697205474550440600181297004415122171231482850287322915060039398673638890980085432052118991875225945921531466487119742751463485433600426487879978840473985195889056442658338704107253686357503299344071826885567228229835533756069930371657180693597129191001930027888874788176553104096222628343690834021098382384766331427416585940209755641921719418017537544268903530776120232152386446798184412058033646588161946686859132630251135900294345048882805989187793418001630573177636880110317723899598085684050042279450231095653717639091401307684007935833375277341394728491875979834795487885476362562261038770166849343397387839913415759541747251445102249376220675931612953703533586245168414025181649570718413271429857639348107031984997183938212658323040224111714422674959916462567356507577435934354435075137666252054326329023440998156479040030958718074876211526553953769914192427965977321274412087086756169532555441764994640894972446378189289729450865672022414100332625267370237013470534600657016878703514877181635839182156059452037739561846262207106379337138132292245244235499818754900402544880528885674411684892392774991881117866566543790082553225910090444283528507363968498160425841943384543803343171895302759912653470943148768776273374464396513242629092104605429062663215346523781874429142824189774896615751706219243703643089270512454915921910848129607137193497444677854068364592880895338402626570829523629564976596347815993025135563851433098868373509078186391224533611403881251835858870626189962115251891846360408836297835914739097163579965196955939937053233181298923034327098017295902451499693571682226343481719640234112783743782410058362816490199321920356528086327425181183240448465010817511861906821599336443671510574054888263976620860651735181784837775523533428343840732400097247649181977223737896687867704782093999719294845988180579010032501909012190168314158566677763197109674496852491044242107798026439946565986595980103174248358033202598685356612842351868187945858940102295689992197303744631637839537207102075026875905916725964083618457709635656396824763614042047927902381505778245176179009698742398273194331477018259964045743719693689546085281122054404600823125388210497696187367143536218835105753273744124730183699813572135973195296751883305230349902901560539721900158519215690294794921362573304967174906626820645823927409235551442855156057369417335902201315355171639673745002103849351922852692758372529306509489208467430015408828892117983373062503619921525037514049818632900595066456970199632483010407087315065741122900113618263913081468968249296913570966956213719477620745485511937437587865395251126750097516800826045434081976764569431406527783344258281134856999544237231984048613902130803001361420756637587434501256691810173520418311424418569408592753576979360870467231567224649018729111917396511402595362997141791973578937216290680574872972709072332416258803176797693883209600838493824460687886433300525945450943642930112155943927001138097037744398312663010202678165856702423958650128263574673151006066777264698931853172518570056705720660091575467940247102253611522875454236739802776501604863747753191809428071457225243583036922652125113965336175939198921328231417694357628116858989574142808463425053573431634803643167075750374186645049889723653443097605551214009065170977704300770713604990383047929515912812242951338274078107257059832059790984358293807541937814884264014817848313320428445254455242191323480294845989921759661700252062985396751031890089604775447946258039932104823815586095228171109233531344566008865594689149961580158152996765872455462563990134920960917362944860614932743741017680478646732219400059332702659318918899153026783738921138732337310728186634701601131428909289123062858489771506571018126642596161940806690761065014829135251772625989205920199892432464555073346574370640054516413771826995389437390489877820260082461217551960034596055432905156564467721304545181500344603258149804801062573641152672833833534081012629175645774244811526485618506959237172136405545124016423118486510751032380620540145435101138489415270153418183103863323293322443538981195234953320158158019269318736333986312595950956261665292251529139907644863144530002175847367696512646820044898428529650454015021109991610078087440765621850492815539186766015136269110032295636433180484739735981423434744280606942209106789326027997077046545175798120857333569314960916599499211653922608053343419268408244025160142263982668203531157139198070938754430376162738137011200466636559596731359064359921774331474088767176827741122370567457650739985135369508660583292199468977806696250424080004327316816069734652647830761642153659052289865097071402713248784148848411081220505057171343556057633684329650810489547769500333328621127978634556213263759928760044067990278995468341119100846988586859553579152077841788704870691428404744482765164041190038738609238104673750595218063244516283381700764063021192809897608208610909862365895786769897748466032155050662070424863034784613980246938464543411411858652882047777397064664552293230802970611886560980162633477614785537652021253700679419715425015089075616464064767610698159145099510284078109171051931510361815072602702792794162746105941811829711955703981331901055001987864413434971688056819084770769102804003706531618252189642199386246653358455494865708013032336859316254930791494773855718620485376885283899756855758907896257682839527265978874865456607259465073536662034474624517008481594825615672522671338980965631166839235563474417399701792015140942557931685787495620121181814885979466891001414391033032189025214707585138039057233395756096407186590331817966583810065440695892470490613636831927541309588231160621724476942240584667479343279852416375126881436934612659398417251447358354901661555587935913349150123748695807268793370474432397326189861915165077713539607506429203117895993187083714807300602077163055934852590530765834174207449227777627652439987953247834828293596694704394817638061591402571694643039871766825993982321733085069277734298106902136882003673641862913081423927612339091299004445358658642363703184678644606289599050968070590543633480506464338164519204656554208411490965786254628066397132294214098690493663029758805044439977902025161160769841818426593179784545531837220965097320893370980348170278488068224803726510386567573203417041627466960165332984335106603591390210818272741416490731773838298431363411928096374777494692326100407881167786044514063935780006616129432980508147787937958847892212421681013211066220032416449389977391313666854192650790495275632447850436111396355091304840148484686264118475571837151501405397070171415507611499430680173896197001349560810534428832810415737732259129804194792170384898298376172656415514438720359283961028076990331327226967862517672546131999806156878926408088290821866219163628644533277376962845790680297955358097739341345216125572581031833371083895190152019723085243416196962584663951625916443969737369180240452034434260274871801926120248195087305108685676600307868614968433430223119930202057850938383687425659679608153304850488362921368454721912118347722953842600429726558092143263803276053525497285620141658178973868907335375393255487638068331020379275938105775100006440017529975574628733960510414093670827960424693212738293927136089391697095097987840967943276035879626180634407708372723766755221462191879749722676605483556269566621358693289665566332336655593423357814778960337852188841824470399589560827283388496485515075633315531707772075193747632904483919363763746190450959521697083568779253079026277019892140773543429187428578480706462892330999130512293251491263944865549489154835943562533265233421680288772483596209188601892207471807942676979488475463549134493920744542929752235159435520400688668858112753515566168751327615409864028575745460247146320523235486595536289402451003420062740589650705509837765952635556268922695480411933769038910540001047705218768284512343447978872817471913847749475887457407633873523890256418014229914943660270885167694868528225161954835728158795523423929126166089568788856972645691467663477100002066693850685142958291026831638098671752320782509613814929993928552296623073270632220260351595571299951754782285203643609215315343654136736581593633586511241540021584403364730145506690022469985910786226932421955193325574276177726732717690055090814944432421179576304368525173112718485517381008858303413291232797791007451581229176582948941580535524132504320284390022221897338475261414084963948068931011790720644190004938176208568427579922562817895347094204257426507502380573112588732029970415438357972302089034181505924382159324453556415400688407771392424489638987080528199791181730995896582299756311907099814037830113231267770469200056339600953903683475041153190988763208359882221233744517978815610961257414926284465581833291022139887334258977862447449430036586306911030983718958411323232839386627074605458240192992174777694367832938504077088121931063774631913954426679856232131908455596243426261786541249175226970167243920086437431022629531996898750082545693206233245763140968162847081073022749777806595121782049248693784926947727883618689038761257272928855213047450042649247051383424962850683385676873923424888621527529563585589195928806226400411114898648239365903212675583253368497860458643998230809078663000390935532668248483137019580671447084450277590656978313537764873048075008446581037306176050476614874355917539334578713681963769707098476477438879296778933207772722685055808973933891316450754857778260827000106022941543549836752123067198087560419658910666005989189625443997080989353937897251391580227808294737187399908557004684013686825085877716311216902800302087436796915017699855395575001992603281518911543694519861682448780820708805752034716335945760776657628835209445657634749640375917370204849536078588284624265609162665399862374478707356848080528845816420559131231294727463826978517098888832245230334205133168098220489214167031994871514598630367198173411247117621976401624657756541227016274232880737384474019989300632869390333387109838231567480209458135358055798100265772030810527342431363291467299801372296775571030278543177812109059168599931972077257037309580339422786278638960537448879286339612810083730257378723705859714894733106460186314799156161893857867942802968943546474370273702558947179408648096217449112337553828017741900691796664467664487502621871639088886495407160565183936823404420762340650713879676039174707909515850194214585755607111989772590538087218844537358668187495172982964233803918984210781392759525515304167319859559220080540520301996049548380090839812019688525062847145349473777370885258807250876504233208539236658454102237470325420351557119933437421923247277685051727686581303056152981901793309780197214325329193759200706940513985797465020953908917070831752072298421122467979544198648282350786062686739197155640028896620019933554425996681196559592979921913929307914824463986720078048596151445955229131781932454581027103638072397364015899153327530763452295792034817953327345513977106197545700830612806101544223908462861876324209771704034917888694631751694580869030822062039914792919030746559105877784319888992023043270078315578393388189069890886857017202529948108263337709780415642243635452791026439095933363792257911320747890763615359260471366750965647046382472628337713223350736456471074247830973304347449341266939783683308362468993837230734481438722169786108819297784036288035510539983660622254961821469749783909585857247282084060076160084623206436260584946388352803046856997797374680230079532215466614037850651812486232156111393783958235539369710209204479221073363252238834488815202652989975687663872794576976050289614526272265951087041794490278555618462643255596526427701609871082527952225763171854918716693259270292619789826716685688461532576735103954188260128749736578151276573718665792206926778264333788976564349032489902103406412329153402531720032513021307652760589055281121620689462250945108233643497405291749702778362041339442122836169534848787431050382036419489000689544838363050686291223558024261895387885565113743405480618306905345740658402768609406393461195527977918395769175027410396285050872226212834146275594087555362047019545732622846541902843278202491071153684950234207447897692656918720873362610319706124905195276689843399202492407701239735820916505501162256649956800533272765140011443196296678545174243558946603611459434681048089346448580715197767676614860074800633651887204711033616266377931833225211569303343907909671212467028848206921074922737740449058275299534575767373198407196882626021631458532069786686212178268390153504228983474274970292781358773309057734883574515149746943155629990358635662228450354695360670885786965303236481954378481762368224120914555359222158369993609797019913254331602420030851420712919000325496022691835130110225614175475528831805731179870553713052117432630250022682809977682818000239608212248033458396635492232199300934920786050230505872105477103717097875669088661574756809551422431778836176115262695292471389218035063434230605024408905135857611397030210180873773390108362609648166325785335346216766384558235348073072837822807063784750426202511081935417664080058514519555971315121090383173708846527938024891628988385746961253684142300098261395294319801876683222019275522673008524649837236971368741767046162643554003324652661739390698262398744400498187664188569642376973459628613196875223773242070450604151658497687232802238714073963235260951340600909676482385035698104306208398024325718695509142926178402703366455863779181187101349915632611130984246627129274606921666331408780722899921943027855309020267726260876344731380303306239506485806755687399677803050357123533930354327493230482094850599470055358492107448928064327894709445498553633088655120485161470816777635809647472866317926393684225487088665528647350846794055015686617248113649544294835371545382325235227968314497254087530921159655742829674247906299369828149744573473206243330300547557309082214532771393187831393981224027803118196723134352545724806190412568574722812409799182848706010274712921480935329127045999540184902488407771015542311819879811453321308451419576320773462310869217901427716252274499191158037144356352139486485509912917991368260294262920327948664977803980963188128852552901009999927585596216925436255370132329915082737216702389223244874190500895969265719224226740795974946673205359720950094505411700845535484403832432881015267894957169979888023668112456957015764696585064659109167270679254360648731948061333752876852883037202200512090398411077187189865100584544669479819536130662516197574003303334376575332975067208910083389463805155355259374858064423924660981635744678830367752117095255898810733410910225014221898303535328471127305160046732298579217938709568431779836923865229690672567409239833730890166721521607405730519724878128423716892752093429818297333205085865994851065568395321445996629204903319614117905637181355726685351005764149971122248768704714550022950728897546974818069320224937823251180345096574892900469179866998979934428189175003257148690913122493475703624279318311477854733969693975743235427038998708453564328853098961582496778816295297247493629742577549067113709888167256142799599474379484092176769345467348729952220335867662306488993703042335598499473620361400602887773241683536046804454565759647851011518019413019305902103620043583663992055888526518669995192313594521033076516753351046017159266391463839331135498146519064206113152203184468041658402012299746430031302622639694597544344836186107616270068690667076225724158738528149123375401115592587128885355911072590063415638559085537677354946362222914763811116635250443014221806336524369293253689033688827646815263060595030061294613350052199095200744470236857728415821466371836181773414427371653057290669231596092221581425118579312599942563187003820435249182186344417144211888793143434230537922234817059944116326783008751183359826465873638966315650308243792110930745131211745744319580082416231410417935240584559417394377401273457281736721537713875872664321158280103262591666263861732234324382397691863734859778541913437736582268149561270509368870398478100076269366234533177372421295174219772785131111127028500487304690878765354902133399787143801589697761201016784322189832186086309811903608005769700317336905802858387755207231199216734296835249689924341540517455232133483714302103011256310354808683150564095811507577374348274962178844394057973011396410926871912467014223845826250814812620004509129548432341263551627251885319179778651743186202942657926042353248613905128167735339031652025831834903303968687136243348390028648698336217272755539501392036076959741952445744216729057535207782135855278705722576732333039387636468133028166949520172201577866729658283826892529832363068622896170045680678234976869997226761795115508001323081937589512065298367564130306219527891706903909905761259645814102715909504675100728420599414729688857206543911285120920749976049277361411347899639228510944863246297124408380041461628232560585830775486928957193066557314199137177022563043795526517942199660368662777633667732104029607716865987607192407108418268296915047805018070103190703715942404030288584587847021871440374412657048998103091099357306792210701827669416793350698916023204142939425751596380407821553326850164257454731926132729236091902043826762239532585566222053705086757842272898094251517807705334144048020638559858322693533231925853146708537124668929328436312629489155017434596255155714663936596793699599326231126528124567059878021443748638544875202554899387926186406710119246795568838608215042250592350124174649337674174619996120927051906276219477923793454423242224945142699326399313408648134719807073010523780267119071930047984962798019299185223331349835131331724245543357546253680156553209135775717639479067085776219022466501288369047212255251227697384338958212758764258397785759878534527336320621641963093953913899335491404632691474950209055516122058917606319780394347865941928305796579011331119592680020582767038072844611546448199351427237364344856810846624455162520809998599730001111252699204844166878775113877498410739489271133654433118580874927705838833387635294000224222272257320175310317046662784147703509611413380738522686156484075479629248095286792513612863036804765406261101323425562905690577498893193407098114987485176861925512847201627747320460275730705091710281837154100443669067788380503519277518931275813159842988689477330077761854248041947461361195250489035878608252312039937911552222109182129124068970508491238659902094324143531412672605700910685467302414963675953711885766082886709290947175355227633112493615999056776932948051436903194537786590245933697046707214134027710137962817631374658505680414476054457910615159765032060842758189414269989770414394828920829651925577344466859331471891564497319105924123728012105096215419549340451697629323247851104316907814631492471272943515205690568579900801166146873290852312211949389910926179123192916620364416534505664424855129616047286010539376954877423816668461043800438504608405529460024679335313834019020101047088612313785542027884200917972415950424555359831632055115635997251508573906877153625980810044578504225629856333204264507009508202964058003503796444864840738069313572619215864947277300030917364673786392976194990656066987964911197977311670072019289450721049954700700933843234436041827827777958598403549499841370463999191031963607704506029641042159115017633814615190728184004651177604753722517522906355831710846339661776832709061651962824060866727655315337565578483589544795106683451578386065155631438376048026970517207945620893911616876129087301542210756672242692359894210024022308501800084659433381702132563510597970544455881244521989315146192913459081718154607778016885808632726965989800038393573840140032003957791013895973478241837021411192641319403578881718710299435478126745748630587657461984550497876887851038436572709823910629916801583017846470675422453370695569577920288003584448579518413453068950132338230369320727586763744382159145477812014609144044075189915096312836871986649842262780622235175253883641410076001012196079957784955082265034086720183669111831851939094687432390822513667498062426907861948104928676471003723195398978361253205581921909996460133246566175330405133794753453833776855209209117428771755268587033056429396552577543242858444424153620262613240125460995121981187319943041901753887347664139022826798085281936342544014174344095091302673506888905945495281302108107849111635601225030828525217085529040806111741388240652579043923592614059175903262607490472483786490755868280243824433897068420050400654815735955511954676628732909238558959908724363800039669364082455950331079357807155010626756989577951257997491086121036859353669004240459145651095712068088163430170206776093639475302385549717958466949019429053602894346584730771417282543288220496218154256610114303079633769000554915146324569400864770904827339184463000878930196977907702345196945694140531432625948160309756848635167542298753493632964721838280498663184976889671964099701570077474041816430678778435110721422720489706719157114304379349909578142792794552886286658948411301020330956240961615002959312648608770265730365201878432619909224645139045653477023506170969713812846674214035591257051268592242013786316498698962695675267797459964778699882403498909267826184241447906960077384590867093428249382461839425168911825426914534682502362826066626298255512002305114856694164741935566708527754564035649650370754124984535677566891804961910397893696359039119319422903541355507424698675016206873281969156435707728867179085364851474307078742683331949921193623297897388947113722612008681527851856383177411610294059371534116322006733469876010352571157309435554526399177655071824706450428000751152361703086251764231366087308910537605279572429334000377767306874313087388778308390309397387118846026037416611130495386109139530012670180784471929499562540597931522841643544139418745099218227459581864781228539937585203032230968380355163497280276952877438170118200731660308327969697871406018298171635443089811520674325579039578240249076908897839314393541853075089513226895004892939127676772958047063119518506199632520690397733962917225877419317902594177829745028749014404482252397935356597465661829425044073194069130828568773787637420539792391836304025897003472906734885960571454313396328795836077086209936685425253632722959301271755562011145516192850429318024506196413056217859531438325103821836089723895764115904131735395263901999523081940773801724274237713144883720663898042526507532229727150223126589225592053939237009937868472558492818569398905198175871672647964210145883077113350561677547193949789721600168454557628581337580822527921461096463839449149302170919658825979432584665849056316456179736230843584032793288523340579061853486554882749524906208552470033096027352288990873996775210623866052203579843882510273269100708838195221069393173512508604435724857620181815915540014409742650849676026553428329532008369679088451934031010932905721253449380076701938910373623638231034846258889095810022925490926745306245119417793253020431575316856226300844179269169978010690173516186693033593396105232440179395603299932268327321899331299132993279510949296829822177359758693623629769990885039029507538587228184023333633783520351286074643822121411381347921884857881706850814667840294707199319805895366361143674114275532013268230815693358090373036961356352927162845547701724042803301623695934891647523996626405800297736694761100939506152916732848699012631503604950039129370883541297183126621830211442201585264862217382858729936171438213064711684549463424207697643446562125101586438462592399667433847933996729504928180407157577840903152257399333730509821706859529849249440334067057528872460491953079391954473902622281485913414352713861628440879033091758804503452844635903312435476091263815964419868786038856424840167029285116697271636623502744467292451983062689501854727099920525667202790930648479206682868030817054774437915116650495761138405363406803148053933350693397541187034857317499671910771551119225500098142267712979960950553188197625159032163608125546527073666107768424063153772865623146529478255060720038273689135237709693168223985736756494556697683739272069857388945691337288789018760369673756232522735603410003047614048825963244416394549338136435406743897773990170138355197396712718428122995932748512586466472699246715687870454468279511196528031864826405842341544499308704529706469458239156409932930913863067180617364748795365633688293159854354354365343870358205972575202568502827890961417660677448496911251697960487855573875060383320127807401629201063443376084371743281899226850651592399580332679017854642933329013638552966737026603129208125480149699760543534143486879981853768718318677691854918614645065408439237784438250652404232116670569468832931341444807179688286709455611979792085073330515039253099323601066080214934387722552904963980943676213338405282370986942076520321598088153589549192661872694621175072337941629506526927218005062889027857199517490579816847194757054338891123150310002563692779978195734206897750730558080924712437979368248834119587321438073808447741848587490778538377006309350950426911192445204207273023627921096062881869938460324650437941896798574911991873471097240006247573797301403424397895876804444420283081283021332346170195062601571219565601764477900939481103985112757302704517035596241566706896125572882777447517319150795149283490731621652617908246165233604443495348527095598373799295478070515732929498091795231255356327150471254031366434826731425824755568165336098335648091294349316986593105564281638542030735080110922388864720079335767667078477554743991636114880775353795709553246722695762153074469492913270400967607060483745688723958327559321851927683564081809871574439966106399941736456143012317593086445792907855810673442987556936441796059651204788680730447443995379487154980793012191343862986442787142500506773434970320350196805724638107890163084980363017290669918801162694202161619617486926743127347138256414515419883501378668879188438805893119586610010747977811376727562621130548991589068111960893405754721453325795498689707680498503258087380203346846455377454442625313652383177167746491615201535650971657816067826177712959246502116010232533731425702446852920025614415046744576324709563588311880404697720156356907181709757377184388661131989056978079096932792860904757227371160950448070648840233311093612063438207098761446409117028468471150167702754273660905084698495146443050067891745253724638506692725470916566856427701211685705280827595895228073665588259685391492030644967337153708500402055908310670863846042623583785859730217618679640949234253271923434467187050954888821860847964876070454669964252525318920051665746638294703579670290285586073274752453358665023574317476631624864235256383748584899248534454420635649677593147680311805350285660057765657126345796150050436003429956792515874081729155321638971642538183025541413541952936854336596703551408446738984983195528798558740322562136778953722152620772049481318774626178689164924506776867255897406988626776393674287050143058529007204954464421319571582774577556056887451093694999899828016555450510574815689595807276438364782456653871805371274709651019126705794739281627355783717947939429088181540664777015811396975157752093684489083519224300260728975896816254721268355763155962726656182234104422441399293268431961478778093034860328200561112158280046979945575859930481228070303447677395374592742446604869922629134363306991163962622737575938059470138661197467075357028700336226952525031936613274405936613619076347268581619835638097083106370256492264306996099561869571804709278599368050902766275113741588778304662415665709079373383500620421269908845994145005522770769851092249764690201306651239074108540421673245455999013759482925717282549860129953230014129597148269554291812758665516659613095466162418087208012205035418656099636389792292421608439273696645859706220599467864859288919378577961108781633064016538198186678839317781091474622150649662376186378932919613434129375674650250534803381545533416311897283380628003679200659058371595584447041444261369165917699485735171116595738723200778996199292053886749422232062843484104739055317873172270466733256602766946044422090882288859743362283303625059932590616811362142424068934277641922618988637981794849759212468306865414584257376865435338455012480692128385158029338824611604225160438109421303092052604163094561955269548720228484124590437705358472719581227349791544612119628443544892330523310168234254298026948989462197298737776760352508789983610648821839479645693976968660279959983438580139874223355501636975061998755521843897143509867411255365372960073670985532655636592322071620501904382606206614937346492564550568967440998004130028139346388280614577264991319110854076094991206139378901152549406335511322957336187958234973422553379608102011438967733352285725792065963074215872116526750245877324544951483455971510939891088284642367319871842895076200593147002736956779684152847407527467453068126024283253350505172478722470205770978595124711123236978999333028272520066679200431151652135267973345828136071365643126265427231400023568861697091482018994218431671270269974508443788816038778202399005467195855177711612394386389899056308522034508527282321198239833975051400876475515934595705972409209656026729131193067255544779744338818354039407183726311850701896328653201943150599866879227464660222353759118109196801824093479364044200428591829504794438427878610031122945481829787746032374761065946154328752386304552782585739726745820218068371941504002555981411124317612518713933567673600631213157287774976369736473108000359182608018476101588111109417924338500863804674580411144009466409868516496761984159304253940327490168804761601086273384689777379246355307321669733368864432668293311782561858543175381153744353193558790712368138234210176734629477699851166193341529145422469202720201669528128410989809514534376516676042241689571684789673870422540058995419911888262243054687297189990067510191082281910909697203102494318088610167136152047713331908260928389881116623763728202718924375332123048174302203942212374464780047701163190468453120547428942304362535128323999055774219281591106785975019690979567524267946196451611249561392912340073515611050750493840733986141683350893145783439350671383949354138223605610435483380993405782366520310405886199255168465577350571683381337979243196578111182022709968084821683241209428027851136392944108126897281117989886903875418642956000639530139337460710008722389398303948258792391719454238549128687248708632572088291777535302444421434423989002783184533339067130663228562391350111030877951070971888977340057244403592551942638648498307948795596280564054758833042058869651301588664680067344681204343445815215281407225121232217764520841921545797707150950032554954766293128473823831606613698488738320212571291122167709020524815769437934884270711247950159194983303306795652995466971900013531024842383081608653062646793262207872271031483001128889342144597274787561111474725289734870531801163473665085684467601046131813059245438199413549475185391915941056936200589894788237236431809117997325577014990202588803562069140493398969556350468714040188290094040912810969483076777617038670751092515840548022752653696871639298629761401883356788974353817696117484792756651083592533099040068740460965972112623578956208065761620868780143423280287968876594747090560957256689698797751537543088336471072813140319293182331352864562456331485069100207783827148910620997267856169616612406410128742645146440658872330438565334184998991255729580172988312648873765064510752091472761227304242945879835997960615392594479434813896616941484866013708219972036561689115258304823775980739885599125943825676711049771447607959350670519812758598076851798725753128057835471710515815037443043669392361314348532380624246052837187061398898535625574814868187261731259385585735062475064564104569647858732187534857662903083134797517451533829314031157876975892106651099071538774754418627547537704988499357614088906229276187402299525390879239546286029668751755113885708236671422898902680028085148354271320644288236197883339664252634921922430526491014145738251850843634758179726707129774758638876441680078594242619676271634670986150035717064481530198239037303988779249520414366230141750753959103891208491193135096672864289753487529944393752702988178884447051959186801725811279026379999491670867720082960456170211366790954975929223068403711283667178949597102820769897585936125724578564645393866349954728646433956921532411345830886363022221584974731802530709389315971064839184241450706162642124844749736157876230449770863273689361810829821618062642077489987507069590384509702652094576438887317936450215870374268516483067074466895395514792203751076561861243941586534294201069279141402549818076764284601633564637980374618857876059744183849695158283463477254387841178554191443518257030296847730416384127671303208275493339707223706495935390250776208476900945484851358544288474825097859985088343250931437308910131920364636440303049757033842339290591241269341949349338676061350495403692584953632576339687631806780984706457317785080988511985266571656775163775078332036802974170210490451036559276942620062638132740418365634629469676234181809731099085869404301964999973483093986295245718850107622182656569694088644928802891939782281129349068043744353719536970431354580361715085264405129727548623430116857129362312125801009298941779454423786512728825038556020334070189702943592034192442772644489488052409099377583732199066945895494113080184248585722814641944241354938791696927462089730246894219060285665369930314721001211357617816113880697883258451691168977866796920392113169174316597100103912265123614234058476971106717798381615129595463763862876946067871761689626627597544696429729419025458282836071741844654278693641711132566898079920815514249290656630237081451470228004428246174958489338018814869462938891741681436388455394456095488463475804133619675764674967821019616637472663229366223436485380359429453189788405030127691931768757899709115550847298908015794636906981929784840202743058408234141975030920437347243426198600152752842115854469400580535056903969950439693519156047571658222811674589659438490502036677617921687285653368228868458923217383413655591376090627882250565836068147380974911920506988192726266369418688056384128471794733012638844355329238381362639575716017171711643982587915020418874511368898817225597664035818625261449626130596223668599563761911292890459558302323928929486604458341505314784828835353583785253590898777200240843237581581631170014320745889841034512661589713923478250078598636724397375909736068889086899127370525829720898445723837797920729778265221783838107089977644288825103788413255206430961905182931126879289246481137837021609183800006797511287995121315382619405789350831037268216306450508251619845848146760337725904690350578861851844118462400619785774870400958723522111488768306527489160088223476070069826817295829297061277521978287927979155435425052476297204461715862371051059427224713519135719628898358904569711510661945552692334429867993876597231687227397416770984610122770142347670724966607096965096196293712869962806887547142853136184137103169346174787782075664911264730520000909736373236077685890433939082247809630475817268072895660020643800468477001103939711876649859658676715229575238903051973293273254942442097373976430773292858106427019071380007056942388907814549471799070126048195816863748817050135904368500285900601908105813070805755241434042948527816606520979385407796381903944230503827897073079300732281730331916330337362172640870065219802520756108489948054218778892917137806455823750271306502277761582073732912336367880333232187371388451353437270731713976243723663134912044254773911378142157575403355190507677527627069077637066635275038458110204873299267236050386493912043647702048111775655668494924264966437567066418601591638821265441196681633849781532856318212172426262380948311203872495454650796660316543377600242408746966066516765697963715305600537612183716020085154805504191239136903617132870648397710658907348590670762693990588327646843678663933105450503122815599758452489392881500922150552565518151269326382229883131701735980119787306789954752909756956757734475289964154819863057511021394623998344847575287167022572989652552839619687648144645751842307271416669681999803419685007952534107053345725133303044900625752075590378882108132126669835187383742896897544280088964882526910900288789327868085931933106708227571153816047025415278058622296287455891733499593945829620616244684304892362795727020768937994860401374197000176974267632217143968408260279117418885896480088818184500010892689027720965196845128903901218555467239478577497451339125659536322326326252258999939568844787191774954802243066811951099927591770149401741246234565315747443563843401500879443672141379745294353663973743935967490416660171021467426180751746702468529244861485711898176254247982514824566342097366433097096704844767759457657005143672495415191800239636792808638019100418119564639682073249609524676566838797520600193474912013821911656360191871330442860732434419547418279513767222971732872963747750281269175065692185091548042429289862953034710575686921806791949327540973222540748528239048265510028277635715343639292755807745922625343211079782289346747912635020241445047973609734112240188092778483195683252160587064104319996115938980928254339055492307824578903641189167493228257713619463579218846848629158007118127361379603804526472878902359203885889373449855538831001693984575286015651758804861380229683591034893531956906174387443857160031382241774212706088180916177576227232227354241827675281436164040812930364209395835601369930877716013939367255814666504411086546922950635822180685573177981197941678669069100111757467202137865986772173425186175557512796527841724107905997088388487038870072399793591674957505668454595208083685290969158044539007803383197202200472766163928864354368150163060228266396855201336191915879412871076079843685893539119435812009841310521954545423365090507853313761179041769459073422119406361677717945328705287528067026103796795310068484597977051314377611737537048428157449234862176904820295298917808790310519393866903295549306361668774623644255030182920212136774347091943288939148680764074372525354157407479281774365615070594918223537328016465864993483451510911265959152008081618261820315821128370904982773170815489859610803523873189977272026599111004271328828572524439441141158634646557261063018615191925902556354759324890614034842513512465778940881781113667728457578339551846309370357231727343032385659204783735371203284670946511449841239585962684138856446538474050497744268114731298892055794479182191650428285007794078113285482836229899280152152191533288830811813854850720347467419278821443007599151713999821256376463698415959839579567501668899474827052443027890016379727068030692106512703641759068225362511485576446392136539854460555931475291382229872532296213472430432449158305476197621241155682351727747805109727043262343181537309565207856622139593356865096907205778810691233223446248453224051556123987847612119027990075133580076638785835746175965548306002516153812858299404485530794586504755055232867895575345421367126462935880871025774226995848903856682311929123978811023808792666045094153311905805812980664749890404652183203130061236697807477205138527350414295593427347827276473294181278995197543529527764070530453822543640746982328097793806971957407248792013852176583440122707185184187148344643070399267553097611271474973220456402392727662218688447486918734082778936007206718788063267738112648583308748932732315572627535574810561296289994443160528919422286868160810410081570838729883480830981426234497877290221674194018371247284849169402673972970454561509686770154064644525838162468063755433009848187826751407241192368811669546314394642931529040583014118772983199816076529403434918309541503589641940930485981102959854200107118266532230696955008651081691558162754871012869251618733563192516473296414379889032061813042099794001886972405468772932345972207154127686303680467792463787258885480585987952465779926574404865640058869622937935566144359228977595522033205390020392118075095115340666376242712224983956246014499415939510659635428624862078198887396825691448466460062723777106257037285759123004620115802454308950571527891806753381383530009940395913774684881273338148962926405157939234646904132324303961906266971944013561628568296988701112796104613105825781837486496484365587224628312467057238304662533037268769761033304378191743521680363331619686859768628179713779866585255044197124571537761310747416377856006984035225680612079374220018135371249276177274793673346419005686991415748276905782573989278113648819924242917826086323543562521145069018232662778187710945467752172120066365835099264174099585049850896325690036734623779472014283421258138611242214229172483883381172468374402310343988802495165570379267197113919327104898264472689665988253123349883056570943692250685314458820968269070143259070301728511448612351834385492489378099411986292062138798026384675301509849335148527024680799021822412341420700879199127805532543397436883853579935136546694843185081698265214203257699145405186964492955900747041207159721708152988250890467337523659966234449599424813555442277232975969933868305200257277216328461610598320556230150913483852735382645604929448501533025916803670248102575706969425592268231095037423214293919783008333605620139080591803993477220014266324460707873108189748332005388838001864185112668514031472366107955054637889847996419298719461082960295361641665009805149037890036690138210007837862178594419349109475243174916214891461596677612379415000699864477663765414304910119530372244803111245003410986488761776834455090175821222662938488045311827568910030227206475560749280072175322594934242216360433148872130179603778474860907395268051196720319788219110909293029446820666267005392539274208716952771808320132592461644492316511558401625993167464889556448165221714824421930680103386457180942861383594835376414640282484552149721811710814685966075517046844882885448985356934937562881519849913902127569288619288585263185592749920315651590839671412177267143820348499115660104884290025143700728601150326097219584592882505771901192964018715635301273756752176796198611252775958667376364862373497975929919038485958990730839925914484959018207972756002974603266460593073274031318554768684738458734155752284490530622576288525113769939281161147891928719003497823322105680815641057624239104066093440723705688020935936380702418161559969719623520095921527034440950265901347402886649530700023348449676057240386152287036671080079587707494638185957287216662545279016629572512439729573304221793754512466464325817758316673858453963361546866156716883485361453535774697665704952404148718349352919104552550704464818599391248536665563928550554596020442549036234257220805949477882256951664313903548801844126236796053269239794491337223506960876254959212747467762446585905821836759502412237357548203212477533239975271038774333891528282062832084718506707621123340149552720322343070119863899064592953852274233802726389134200385874393426214223600107986950319781354225617410805049898219175037944152868357626479670166630299539160939946951110565725451422224354624356830533373192778393671771459819803802907738443287066807102826209350142281587276815992481359346955638525121048587946410480856102939832067386762659201970957259859748548092288178958717984076976029431818689039614975504761387957405694005123628197433315894551658441416736965373506042780753810402299609276608115330075855930916301339408032037965728847645843457011008782881398748225240016697719273411546709171440765519727452989215019171036930534365583422308378906973737690000444603578677210656288692718892899532409957567368545587186892077523622588252250578023546909667684845449597174952139376104597023038093798235083509758659789691423127774084376663868243705421107311236703193559609443107268368367948757012601569758954921971248213612248991195720941020496305331067857988707252389909629230017879588105128717483283058109744413867715407741862993474668668845743545697728361940675022145262699700964190449238973779435776383864491484051337008303700092126105635873134447645646475025450020623361241785029426582547869046883754874857844778238275262771322351495840546338869015114322576360383403069270424799548353170948757944788648483800933650248446327709147312165808501296227061283644278024153451400833844040713713107710237721519504157107729125352587842100038724470522269598586448940171211305634994741756418005513779230636047493121220070329529429735457532451113177107587386298849900688810694287163508044276476783371630307621784497592114250722307311105648161241918446699648173081825466554052344849835314268558221223906176401079450466372128552642342779451530269248362057488196431881079877407055460471841936990221935025855371798606565350311759836646550522115056351894940757412705400047026172498497900767359678497862103712061974152501188401231786962087829784541372388740240283648288688392409465138935151491093355656937569097301968370078858254390879392434246497568032138507142638824708700035200850765272604793401410727290634877639580894174880101020582405048120824159073899796499841619026409793239392146037460813594368730631476896274149350346781827000532742060613646843019156200355411760212535957411243786262612283032866993849426728204688027540881214792506450810388848009775811004524644094758637922921563803278013268036063232374724388910062681126084511392287475384277966936213707025345681308073306377119060838450620741944946756609801266785980662363947388267352689359212873141281032903467882450104108247776659087903236600824174455221420341218673651437921694524282352086896269707129361893186414193679637392496390287320885718200053041651698115202187953454298045793667054575417486034840688093401986884323867429854873793476782197947874031610984855678460188132290589999161227079809524742702950053540741333401329123534230084347860690095244414113786059792594496281117839336117630254579298087446000118323619464593414124371814828826453111816902198300500827914971347909576541522944620582814627010185826271142700335621764791765678203123725575928068078519931101951658883048169991445126088581440346076572188819616594852047425028539618763818748727843983632505106981959100219424975706229267264015642135705054337546841143395343874180541495505395791230641115150429385673917736985828635998020298744088588991515406274038558557765695512745448445217027765155040712109917863919240390419054663357738146651923868226853408149920261283366869793397596581229702202016107755842521716653441518196456373403462410291774328999667586355852499743433624530893474938480411802316832657655370240806838631019522213584300598132407023257528649224113277188663913300253642607021703701665070111995157585937121595209683997606709556962058785532838314313925570075218916992166569601103605736654400588444437686010850533668267798045741129763758237889283030339471746634398675913760407750833627797320862133502718414038474280380077763233986453486808553069130098083536147137000343312149418357262137916321789974488768814476372401372665013951876268418441055864547140667607177577427944644292006163206023594584795276589664929037350635520790917235756943881827896077218279715984831673189865441593100909479671208020804775225956888991335383717132003279798648315672701261515032938323969305702386141375270596087704044347453709174480913282261070251020654004367675909406151360673525847617937581366591220193966024908785039536582101464590598713030020550468331108195882105557135777316764855941115495090218287327618828291918323329546924464983648211218056087151754800456220133197861244123614043955945713430979710386344357281985770823451150188105940074654239019850751081300046143141098034887572646623029053900794422487488952813065698040453705083116719765943419203644569607759678774729918655672431549497670788469128515165223400667481704261999266333305408598750095623574787772308618285413229343857230279302455112961668085102645237342619968639878789026900396455641129055380767050992842199956524267593874972321069240670632775323010463342766005372708753443132333502818330646893478003681008993743276375707506990307272338776612659512216023233154841588867777619750571432911179416972050871412871764245533384881400472348238098666527865369496696429604236334585634526946236683211527355420206558968837560604198959120905951428976226089777104029218505088465657724682598292456153569839008940644195931809796546709545117018166964419210106908087927381796638594130138840662719021188027855471549904647256014285217941309454799303484415574305967408298224461414688296446946089774892160770486143657827056182662023652890734060898388480852704900688892855301384166140738054396308991694442151473631825994092485102435478281627027330748000449028901059388731143816129372520445334916826009942753007066336883596065809797439248029392651783887149432752381740725615411682700579576705144995323146986683541320915133695946477163045245802093661952380151323337214624957990168739648814935656800523159864860456037966194841359137289961058798657114288777824615950349970598552469710976419194652033222874790865526652838706643959774781384802159104689506993329123158593814770191981655278144656561637317980783842683103510455947351996680142665884548687297069690586965879159843012467923566925481889405186809346224633846073857010485269182741960088158117200742072090354163824733994697230794630055026845788882727929545307193070063615907673440683573099484119851232811289776681328727583200789148426800726624655910775093329068336217380597011739816531902440089378500256348881573625893584436438817395203427051013501244681543579749695078524805778771073599255171573630869690094227712223872657434617432781068044967997545598762932132659163830812414927611611468826545224212081057929191302520263963962830766912088915435918610239785181501217919273603559704160481257743967149081232459297913517842550539038273018681503968152171159113433420692682149965229385050492205490214324581509840683862377935760868431991852789521871279599873484654294872714686952691047617706039198121286784941179778972210160522644331317277960070422413374999300961482207415341997590056222359887637624344105214807640312874849172587442669768245491418203086952850008390890235438669827489712048620212745015048285660994735612652446588886764845559813005650235770991791357602729254909935701859323918766305699292911818128122481532888797242664027505339151786336308079718068879120476374432898389033410144450517155200617430143575640151282949626335048452951033411425422235228942366032210379648849973985809791973709492851069839056251338958547056708837742925973883672163916834529943760693770577269097767111039162569101736676894690795367273987971561005666035710166787255170124224878023550973766587092452334019664304538140199784011711707284603441700460114630522010489348467598497193870032478581030901714339978130675855129141327101114138520875219515979713641711965903258956344936608053529380042730885393556715821339786976538421776825870227572536408933786273696084749801501633328464663596491538157007597220227385132629802189621819954542883667567323802297764108982455705431434817412868998653815668525955463980445239352432092237248656377678722820671429151055132799498675857408381788430619772603875572079147512573776508037808109534900727980012708434731902852499369629369366825207138508426937722785577302656439381020107734450439685907726654511067860922305297380205427325653272755930430762644052443552387945528835774614886595919213134865551609740962683155955716812953962361427467791907476798376349356629730491795199256771642367986655213656129492300895787732402528418227458425155020240628867962016587022376677898398232020540724078222918814193485566029013841316219639235493567166358828847097050854697872412679797162346563929394167875046059390890695943467233353054339844743997047651260991811821879485363357283079786808112951561142805702800765059781902990007731192054406228527411784011310713022459567818251572226701871510935315812703489246760610171886591890196052459213220300537755492841102913471268648018061779636568497609648335642405885498173205664486711594774990373461425433578748563577307069789975360265867070522268836181784977625774344699479351143278483317998404106380980062910901591755692889604096183865440045680212511426951774284584215096747471695200846447317335266652695684323905021080950784669435149550385019155630320643832048376912435490853676949727957922588883810651621051744911482604622909328174840940791718346984545113528688272725233190262509119548701431612405965463525151479642148435138349115851021759367576659653994436826296563144956140596087717997399150024378846324489641709118045254232733216455296905165715005206564713084670572252282823783315168354374353880899756538085815810217377269306315011019455376247441241204310096083051422766748323231747904865208947645070170781857002466663075971503887566219517342189820692381454238730036740144672507811003745219432393389389296767163651683769529108880647826421008240889819452904208879271150897857561456409048884965682083591029744521382139131778152498200796339856060728770196253302200066738419257181770345311131258890841726484537482112265274435667814809487543957885342472946367984679778511682954824489129504145987823288992636113262187789087695821360556432322556223252529259507116826749547289902794028327785495277485032872434122533291188376356345417732125363670532281405505318802631015091565702645219536002321242868566276232592264206646184843578606372391273803946656813937452053861932171853704174363541864565687782402107096259016849531057083140079947747824913867083266834164439243558177711737674584389232772442575306705559969961920810738555053911004288114282070726775801628674281412489437370852768754987341181039947931779948184250254279071812922160171828388893980149599900544952674289561836862836125564175056338559453312008938234885788154963974567984128593427424148533009258383294039322178958301992888528419440369590237986383498282972976161869441796158432991809796487241066375803569009770139389005899269554355162502932583740387470262135494720480708291912954409597088621586863355202965682316855139817765475732800766609380863577111067023191231984531188499473718746303166423598899358155985392508482571830627479732035995484323059798718873182476464570586188570396614181220374817228218737590537366681444342083298714227445200093670438508001123115641564629624350416617796434423112616785681694300423274929182420475047933010534493827900319642673830808138452094900275390435480485200639072403073926318641991354797526298195276550828086556923374873009928037890805564861535272631042854062538998139296745217687758865948977859144683748350972964027868287063739011528099495700990411641333158537764998256093105807931190642428929057210322946047183110086677535665670461687510161642742184883842487276168822286339677007645657978391450831378048623057718320706786925198458282522514405413942145090350039206049412046896482163500922615245408687780808957483403098099828246614527484669412880781378409498515370748692369312373457578805107546993517755154124608613564482330670802050012336627661841528503193749795191154086000576609355765539623496995585415241559102841867470199676056998796769585649135016283077308922066459635191391040029978185866980455581580426701910838230698505336396172924857702032879816796686268846225397068611799532042364473574570667163614457069586935893095379077155200075447637102968016264086778610245424218269714892023709416656992937106526359100148918206711238905018043002920074292232992181623265088244685540364042587575992239408272872757931892577080964252768864045123894880413219526952059389868080114088771152694979906077396101199171542116046546434189316268457558863182523335936364602358777827087999559157262434028384132621302622199755928131673523035757808685917790179178460484041717456548505831963765052268961147259620207809668855079648170142268759235810895562849596966299315689754893246222474756714012235788290601363746768680839537741272083796423057216466631704516960657264264599030782248152073795177433434031598955171466209162091553456445919732095511728351375214303769613422594057611504851187535247727641440659376408270098411049854991966470270838280076162569267349646509415747904081157725708854879708277735172412349148734800745632296492320767851581507845845009645830217939668764715869260349699985716842631119582698927453247227836826305912098726118429557523704829364206035832194992367164230889401109037376511038438825611946065055999691997981707324110220935858769755899050845777910764484366098590895224885659185435050336288415298952929683189904036845116652726345130602649249127016701405622759755186590499427355620493394919144071955889492749704807979966223602467667428288828230186071706008001170637466647058057270329973243574580105842282689491612926323471576060933845360190387371923491062300505422357555114511830650292583499662457269867727822200783280487538823330548879650605541062397704958984748801275767393807500388293557276577743571539848621523694843727378480680664906640383979576587068659529373912733883865862600389458309576325589499190137322224402423160130103855007018533099360721524611140178779244405071812253925092812369876893840469185977223819567524885598776362509160864081774390977076535487239621025027590180447692175397357494720506819450171567316323784701177958982233134555333576775305523906190895258713903969231402825557466993407668072089576190068844840115760464284630809487844041931997527092951914418535711793112473645520591106447179642854400937585222229218584962204179902092165543659931873824432925615361181010844667583675847735654923032720285582529635810423751055206464721383391460453963095634337353307446069401923849281652402989928121412720794645498528824824681799725101602813043880264059032652586030685315465427269019271870505773253599360693330916538861868416270451919689581395193921211732572270021145829639154343737456770683567626052745892867950871958057115965498955820448520428462698472574546528892099543348764670870979193454395053527439842916545275734313447696037865692818312149678674012387776763289704495102578886748747668980878458938549151694658235113237207470991125315482022361219222433255533529384703262966436351384017689050987305270496577102405923055000469321330518127189101374095411864078290345007769560983545065396992679562882602115061138248284639750721526550884504616093554120382501812192529182141089656295978701799231626247191956368204723917295356184275802661168091609721144054185320591773553086759352974201867801901608773959452153150294511875963974818864060436877314244599167573253977865217222410853838795062179524318250434943348062139826539395365422149135005005146562563750149843568701911707948947548405568891047599261984747115237040043877320121843338381352368556881053987979850750640951561655070859866077798000843774439181445184947671290614976359325243951011449200349301477401160197832360157971099198947477847955356095806385714010621014890482429314932848367678314988731539772677652521733257560879449416915000088627306331651100738780255447869052872173742457755848685424980754960825065557530151182422987301248011292696512542966296066314376148521649686807159838681321792153745570525132892564418740114157689287860027902114870493136778165006527363928917229150335317588835999810228855522435192724123082563752956862743606951112297766700962136786869942325994134041553102660207398938680490772280895719394970004118638079959790517315046293254926791796121219352233021181123416819899290012152599999205577180956703718335573998273117707474519864589175049668308272116535320195261937547307025598766856791953544637180674605670276993171477153494952038510227667045120694520527158978362247351184976011110220400455882994995971571490264942519605603677977650396305076975517994745116967944650716816464730264624801293004902414303152802347724501915120397820571110912650508140396539206722786148222749384643497248703797501274586011756342543632610114424263382718715128573145878944095333184371850026804321174637484106820396647549446898790162846773737182659753317494389242693759276660376444145522345330474850476142088699173879951473364901295506403306994020279262627615517402544461888781607295186749881392605628164923470772387277468650692302779185709788239634944104193219283338893759203775818245635666560218956572093791999145717339656602619800508366124596889433272675744327792338502759754896141640146955143720656470125893864343337242913556181006351274219524252349768275918016121435455506925753106977757675516654394148071978788085935127276218574558280696459312429305784157113497631869843983188924974072733419402642615715451969601478372825040360658789465627508295306594599257134840698782073031294488502912917170520483797377463610549351924976165137349930216897320427112438323896011907100432779785035523023342326820937910350931700497489843481250715749516489320619062822712081168865808140587386064057060902773935332324722597645926411087042579841655693170438442239307249750420464761115723140598678073273804717722196487127846568902934171510283213460859928576846823514905925326931383983607946506382057316134723657746384821121201261007027355259563674854065229914846419917678963966504877275885071521474993268982337349429911236939524469478544304091293789027190711465744024564773659247110424141211000767241424454880405294128448296846240029806639013795032936257498339781162292831721675980691648261917447866896030996689554455828795067147630092001311166251478785158353930228888368881411993570800111514756607289126365543502475238456399889397972960867111169802416944314825758336492627968933803017539312447404445353590572662229431573453562511177824620963717030210986984746882699762467210049563671045366022112336202037785057629925167224183513502088732716566555617517170213195589568124146705568012813044963295548187270835816445877347565994940460196351096978863907831468111259961750917031324680365818127171231552415392523187996778080348277262840057496752019502650982311764802921837388221074302996846235844380309100495642479570963533589732104643334187512337791307979145133633377359923946778921707898555097645718756377214681526757619786790602615016870063060233121997907036179998367683482233069533205168034796190341162521765389945268476466501501311387915505969238237804937052552581254845392173687900108755650934876241114475401771905566934571631253862422795163728094279690292092153586489076121933498155444498186449080351006032220691949480434024599374467020832179829099046626939430086210781027311976177126472205483243141586830318273122178418543554993121695213999759451119646775367408433479019047299914878691362102860845161778847575013201214064588206481193240029545461780896083393959473467708732321980575638033327269254175844113978201386581650083153517944804345324227563398526125065389560142174664614251912465521821725065231493324258696306638710600499387369438196146918423361449670985392055495058937421037922362973456729123915773603351700714435141726003536456366926975163883797874088569375078720189903811191276484054277677562686219481707375164132624369079336052969489090784053283063659053107589301569294008232709686782255498941674720068370249525938895274986331580140203638787093655421892680940246833324448515745979337281876901759345268019646506445245817153743097826513964255919799883310719286200809076284448090935630696260361551655690565863957808434179924049370069092650007520831514341116916019453632950198194282849608233447409601025608035497189953846689661814111128674163875190283357440762500472483824592540016288132504676718895656819695688191835731965996635261355958777084536560918773670343278076038027442725413118778137887106169053726364062625218907808632206648962027287520466222288454639899129849232783917157741588364503145147238310865203977540370027473322156982558316021419341217816068088532100780894728479739252524579699403362997265055610845566356214856229277205577634967348968585923294065654998138258157846173933565965305239993305441763053890767520744805063483760111815012778807261118893953226099755703344622157300077649199562909057285374991327145040686285323208993950641489990105159682821802120417436912403280417659540176638243856609405690117809169106512693132630255637345799539574028658153824776391729723082336759054296138305705632170621168016431294036536673638520666821760277368552221273517209617098541176070921546954734169487573354812683999595007538393755235726881169299606347572223981664515035075774150933471108225049490300676801860467673989790792281317225619802904327244161674424763375942366669952924807393703510022258011047439696161497230809552383976033148903645738047366354415535729979250551641196726017886091945624221657722503511292207179425207730375887740809520053020640175113980398151787077670984810650841598447936584054459103031307319717729392466915746901686344184855373269540142249408852888319632568229795121589296099959351633562664452742152396057225810031553269197202746102109024269260601093703429821318012840583855049595932712553089581658676254060623240794414351913872136257249026617916388206094574909875269185993827398799948873313750324081996142149597059342260230357568006635416171052145082525806911147417218601672794311757259409563246606132581747369335837456539659566495062234576955158552074746537775878936124452387118687564178385536560952410934927130753831484060042710518254899221147067871105047641440492110142218351957507282278798691074990516876105594375265209055929000828646483274105807602916334014785237669507457163804704850800441975943594646868449724793115926747833295709505647560727746106347939492439054194388390937499342934470408001826119705080184725068259065571423894520962470674222655275807806384874591332644106663477189429844422889720816563478380489467214539203519469817232956828600603365129982223201209122421843433536247060126330002673267462077123583388026852379527332069426902650268331466387659659235086089519630131586692271160321011246362445372949663977373247057032893476916518450462758956045918477449512419879569941161563100778627623479388238557306471211173077672607079432400488957704797769978456536592697276420546952461614197724458069002941140106342739567938817716424970835706637381034581979394692571790657361257913247530414956347750588575954136274963342633577956478986548041902622605304858098141791280854837924465525643342963616934243039258793762157942573505958451575944497697143285806242672612718090506408200434861830705969468431140342777558326321149014746837361105091890630497180240553173243383883302308345566671762585633322147200174364199540485749738158222088289549732310275466600629366255983698394677644433937339736657249427246760841003877214573667615168203178967310820703030339886771825201615584711789446722451037651218076582874977364418576593755583883863708085934595528905638266994850814745765476862662279608037507054320496258028290983426904863926766545105763225538838796145040457795811608098008503134622299400107140505472983950249096318681700101077986713400709961638982392772124820279463557066052083142862383067430773113327558390560036021739473688266281147897880701059217913496196977606819297132934745440620658743809264549792435105226553063953438324477719595306942816147710177184922844045031622338464696360261628992924904246991546147628795825799186118898073502865246917107969320668984925211567326843652228145957114149088808956920328490106563054235830878329506844889893191913467024289090338181471153198205165611513196056997673644875057622346697821019151079931110592211692388513305015590723485660311205734004785004017915163843574661258934496493289495600104124839957963418897519890906520417433323680510572306713209246404819442117002536730378143600392206241271415609065263466435667513374493087721610802563029668560181137235713354945051377788269467997441001020655766205931462725210440291353144229687433290702905567931449606680044588776815029383242098455444754519584343461540217728213404260615115618432080168253052951593491727314974182558527504576625487993786124917363071287339007661608999044573937077012984545382393894335271727825705952716656908206428862075541342131679727392797871976480204964095879835362821278705261107659048319802974295616144739081954469493525509736525282392545135670606704045487772853317008187062147938990169948946078954367527148121595272066586259100610824764761666638114293395333425026536838235642294342267560771936989362905316962644102920957670980060806992856583480762744642240526735725720936614112162439007749691761202364004840804464192415535357596840030989575648165691283462016412479627727493677758922989125920280560289416629607148620633765487046559751507642709424305259710522589343132495652962827514698378310319113387717913179262475891952464497569721150705562966450414541398509534942939900630887504881959178121856082874316448797153971083935303335174209316631658991853536450732093834867081666180074154224070784319816363776686716685182722983218483539611527711835135141935217138132667025599352972772172043055279712676770858550780642107507815308595039458548752285254701486273030535406274190149362159372288797874323075683339906349307134679804388440455787618448982737433581473802499134816464376334003248367367043491526703888491705356800518181560952885087526725996853936559740185858846824912666711099253898535815203663605871878890960706869546401913001534229580107245301862801753960680467346799711788918697645711542543098237269412708637905671420416606364297307613315593270993188480323180928455767252454611806175746399335654280400129216950163171443795024962185933676176950560949961338594428347618925443727765443444970183733327705717912914739450580481000100708564728317145814555082188428659028001235138179704517011664766314972651782886906448538032828532056505425429252156359263212644932045385818212361776656529488578011243424873303530515175256119200352405027694519317924711680898838109707792641617720724267666381839983869339025272273810016770596340239761828289596117527049320798211979178568844374849507333608811092217618448381134991627340189717957666204525293576895656963730898308813777774908642537136560003743826495979382409647638944995495656545875492206607600214784966478531435231581343917601477833301087287365212188420526529223322228194369603288116168296628898647119112233198125983462725018714292665276985552636708937878646098477101529352953400013792014094388090935351059625893147041803678558660731709802609205313188508277930118245442931148916319827308829841546640374385407123753334936868286573889729423671636109758204170402024909431708316847685289641612506762223732708308751382807586679295321239197329952422281756971387486956768621460663565404163858272528898660825328536148815888382973665156476063162439216031396842073727673102648199739095392661401252845653931067336941789576995609159640481060196332071834491512040073607407222350233946264871652819945702080637769267103678672044427854360004824302279986489056173431151850132590856594903138064504942183780171764482630823487731512648144397770951652881836546843890532397586480460126535725745192225239823008933848164865213754773518676883517804363737833681550147657931662758137649835537285103047669095486632994441009119580346562270676307524647359941269039157390544976008550741672639137944977771618544707163088552444849095734765416941188553408023209998967299326393030830049541118160513370734587989822106886992048421127160988519120674080001082610222716626989193082801516688698362236133900966473392967478848137185195316829016590461838478504856529387251429923186471682236267257364170337913861671585305404950842377345904555771604325760455334974903109203641187304182908797174858569403165478250073697173664443015922233514581918760505151299114748917545943804245714494389525935693909452030680790193880010085215836698777866040983999947138516097713733198022519777802456680765648761136041810808032097645364853939619378392328839125971994485177726600005146100515102677240856067255091217825700888002697592335507528041087958974441214705467264479266381776966477895417430678779272923032341489883344539971055504598669887122079869920777787735134561874437124675886755596398188408973707240209072342037009929423920442147940080878126357632537388695878545671053664103838890784138029368658337813976525674523070636807923486770595008542041147431904706449856095081331168903164968543655656105706635120488822392721316489676734601672904242981814027275480534457603731772098408434456692698765996527346572751799630091683741913177054687319746359627268580953003798573488022113963815998176213903607285931106598818723716311296173998310837399488548089473455794007590157669356617463278250749850825652727956240634226236456486908075674440348484613425731431095048020127831842609475538768369831904945368857600721133951782695711761052181505211419578833385151456975222274687734388030149313424303968993617428468809691681974380613975651512649967289843219763907652797469670786359990723239390291311541693685864621851604786364421327839254561159039089064416552629322520817678730597001754431453238594920376421538427320555812464626955065671307085952974921599257787873280006666918334650593598578485128313742326240760789312050437273848670789767642741767219344737642836247068087843574851555631859507455725687795771659499669370444087246029053400610157294654361974836276308815296421490044575687792131123137296541411898989362763647184190128141598092154619164969527231654323825547727466026194306295543606144601029435612282438589290468318852097906235176270055767232034255034334384031930360108244751688624533367995615159598274498431014740023715484389109878971953582808602664333988011661795752912283645403722626723390733133816791281231967686480926886569625379899831128085761576144777551910006116675916768806949618759506116031168808876376751670673123108013611390502625733130978963246805494371316040214438423320203166030560027155313990726042300916102565548900990950213289782274340651738736297795652657771064258216822883670568472447958393724776026805398740450824144151466551263203760054079313130906500294300359288792241998308887875679622846685021002617636361388545545540208104188051290724545202636403679833090047723410229450240925360244158968134632218131291890389017381150766388287881441062308795360721427548987233385040671248545025915086515083332794616245585342296509700944794784560393669454655423839995892404088894983046979558198607792180161578938317795800138300481301772753820042451665289346259049521603279981408219434427458417030311587653519841551767459402672497919727239359810948683446766686502964794435888811181954409945008608837870262532742083477782394014704069034074513601157734310538186300877212545430839809405033119827773118276797778578153696760618850509826244039786257059182579024236837432905997377669126394650578268609368501414257686496273153207015267090932355819501076031618152250009262450121890572389403604460317244320679694555321504805503569113860753196726124984268120084835949859954069607572906881801980827117201121214295841968473642219081136391495130937306758761798145753967122897668448375769864851719869959788691144723284383310128202626214255348788590167243756160545868895340644182790904455624489344219645493603156798892234684420036563500823396808090044883397416875339872271156075703340400016909780543957868726008180881489252807331232320143290847724157593134168649888929683882795597512134970088618353457651586884536062606217451488907694327791756229762831406463187923945097291155086156774645636945647473218021275464794710655614248875920010842462697507498063331878422386034091776447910209220309217011419470135415907500358824657935890163472995607334225069044544677665385267604778219285215857849060806467296995065710688614847315806804865997950233509102250693174237815752142755597403834724407523132637368881207241677948983630988613732914374417222296950372377338332709895306801346953157434914410924372415832294479076077045558856012168724763865925487297556074054877465139033397559822637858340806270301250120515325913100395697391360187381357155720237851866222478789827904888404445323827966083287471058081518319719276996312074181805931082721063464680043620809735456671967664446043427843164736883088418042381113510339808947547134310964930174199572911435769676052817409457994463844946953632345219745024578295236269938814518046687145513851961920365140772379494808715678178066259767736780422640426530112154704603170682637778721275636123772193582091242597918125270308446935619806017800577432698294763469127087507115840509970973201047597943127279982017254986063624372147911793861688662778468800357884343656738956269638154966207636098561960275646678718455891876248764715648946380096643606347851256543203824370421177601813160116851358493669188906226277637652766004122905030533423703952263244494318072820653116018964043856359727892557327025930200288632628788382257518790135003429139954397589455224068192120951469554945913167417791272887790917549111548201329045821589451776048185377099020446279702461910429061315915793220940397906421490537436880813802427484689893363298248495416703277163384730457800332999079203963394354573777863932210929443395316030200290785662911355224591399914851717993876359661532217070965901799310116887234830916541333885771625159870257121951457812461955943113558331698592581669154233810405427819008560633801323260347028872190372583138171347609258805233711084338440351559030290782024211159348562157494556318557407015048877405515083061093737299148939515093598882554644725519406711417170838114471970141768101345131387253485534965101173321096533037546684936478008846738325055922221402635190871820372313230912185301077879931620710969237779710299704329224934898475252674758479913067389360929453613651333776399502434316661369244034689048408138069667341473339491289088581166884253721913682022419942967947480608418189448306206355863681273756780308517432598569144216797794793522504528118840636578021418422742317005977074425927423121004214076394582687951520614030968423411127553767489778989363880936367549466291903514877237484694966460572154303572182133169281561223228122583921827549967835627204900686852433958444190585307126439501462352400486901861395235914219186556603512836736585081213914603903156772445356494936084356069568993082604276875922278754300050200131200069626869614207939954915138443158574983016652322309604928745600403349163505733246170720576645508998671870868622816257214746497656791652221344285278062520195876063879130574263733215116470112080954145259917513048603606492446316975805724384314731802763489552199967938165270620658348844781489100084578636887774676693016875228960000204272369293324833444287335235641388802128853957842874500680848261157108972934929510329698463810425158592304755595924776897710187055719602654663888787820028747843314494307514238917277381961257060192344253004575985641850501460199486233810157801648222508229498886078983240693893907238314407340407206908885133983931279044697891062049319987692528139669809256723489164326345127066148495364892623724215108050290537249197543858140942322823335265865754775726798731969478928152420261225231143496986319806533637962338096148805176172527904479353648958588264664410512581876493669905387931755701778908975735574616611323849788078078854050802868009777854753760455806586060849662185260413550560980034997118655965626144080214687845811256939117376510428892129571914332297122213465584932278725664852020147983206127590808723129191457641386773781604344174004253723708974064810288888035502064941668724302040822695278191815384549926611914810828051011050963715601562711978832558861498700863711137006084373361792971558139063354454178503626444326136015654170231887703579356594466582046063522469624144033885580923266383955601629519159459453621822334369884722109133105402276759192171241949285362795116798755616469366831221264278781487744548183731336328846873912676387038968560066675346935795698703333421159434392665422912230569703074156115501377728951340395775785659597379353152578695686909827356750593094347956603051684608032831070484814638143142893120707215388513403674302022031320847919434878649018882770174381724481496134772957596113260105383941324951943336330637599799171253009693751915217053201464194606922225585187688130907981308048916829963781349327672012681741730196592742740671438864741224349999748721249435001143767965936599839071011066712278528444790908488198074913987485667446360754108328057036578681991440682574839791212684990506685541292754892397077129716874276882502473022895884235454770106830959793873853921816961640089931601199899154048179639078038611259338857833856567875205216915764437802415669184973910245295799869159429337891593377721558984597843867436543351632535966377691970796049902982011856172992231004363585035921390071884776785031295846359005080686861751465798036785487324892686290656910662829899664172413087356432306905618358091883505794316127223971964239894196553310268262994266473836908183325709874634136431263500217539429854130942339451852469929556407072584299758684543916131230371163661901078325069900974113579176426689295635522566561458966506377256703161353953527154730582140018374914519148864766850277493324525125607153887859665002342761254268065320723858246115020881905616866658060776131524983607946637496627127913894875037623962335570890991058686096872307838707392932046944905726649555005337933816870376766402190326660870019009938013042399736931391697567123123206025275444740482420974455796874693707577038312818669478407880243435597059724124387612069373142718026044922358511806232440003818717733078512904582123067894626536592181561548728947732870323975722083528847929639432347976070236322590504250035462685845936926521307693987858960771646021202078476915452871008054080355712053614283432769195102616283176464806483057819775346723245183970340644308541063294419617336114140196900115730445789329274019145835362702033792167469868705464399448974263953546776612454938000238629510672947730184492927490957219942593388154329512423579467660169733002266118959019531724316313143065139232214474374739970659692363467632918469900436091370503536793640508245348599832240634527039341857964197579237620730170486174941323312533040204371198267694170579238578227291779281054862909846853899411739191673699895693920044917523421447526205305673967384070462005660322291573016496652913020860551350694820187350241201805862475598118081646947370224612239894802781436142240899521161422830091590534727537951495687836340282784833413185570207191031320378492492068455120139203861457174592426569870910874977883690129288155962422985983191206061296818736184006899195654600333247429261033109444448543691585458317364778018582873584687024209499369090173936142619013167527952091136048478058254781590346188794694465432721096700571525704903552957987564859400094795568217186742784040370990097124092321322391451686036526639015521598943533895838804297295887079432966418833040539567226985023278307331697995558614259624988559645610975428670245788082172980338450473291074959461514135791048940291266483394502751452512004836738483875133320640226739998919892788613392610609887555364613839885211358510376464100119378276573974123107538613927181575113619120796057462767695869405990337748353628725294532354666529706370765023883902957498785897871632909657762472716107857506142976923995919860853431289010542473753763761239866175546241011458494506206627520244788846370277473923146701092420473016680395103133013306045342139648109498574347120340186106537767711628962877655735502084466424467122531437162732068520475613659814782016473791088233083716377301354602512063693081499595178907850249709977316469454169192256742721293440077906192769756082674568568760080000485470378620771253979501772094231913972448548556434521556847043209187345614699912525141555525358414412374116689702413613274313202110692880956652707864426722993190630529796386470088817384877686861656323985357351658598338132963675327677800514715897220426754376507489103667731065172346882484988262738260014647778765856643737673442661682396669642955368367582463662616270640636353134877417958165023560761152802542008196939361684828801918851434564997112336598681753036599985834683734612061150994370680676860215358248409348146541942387604244851409673630052788869243626362875021363486284459260098853164092282401123052618507190638775526143507268370696105881645391496712729488699569459220950792144532999540476978223797831432913734638195774338815761266519013855793494995592811724705453447959951179786574636054390296895753602521512783853784316480214541177251971307074654659243601647940520646347507009418798219150239065098658182850489579998229764360610892457313113999975568790068025306847709918022097318885360238380157584342730637663834164626243735023084209538755348051844213719656935089733345584067818379487130873280309809574208373375536508484411955056406272738671246858232559137188878230781533033577477542593511333735725305032786060493409988089354515919708076871238238377979454238819661213338609760671071849067764819656277088324739897503833899511006141663388110790997988863069003545806621662452006942405019716957578236250834848367503197176229938609620160271096144330403549041267836587464006815283380676497703403830316351537104914809592503960346315328762678635269181422838572146845951235495701263263124167824722527503383136704423929084899710776898999143853104383381404529240143693693437084211721516158065514900036947650109184271785787784150931408805578836928227365292243450334039916537083210553903508675954667926470447212207247095048430927494695229876676585200984932120740978303527364257228152827261220818581248472521649987851402444947711142703793936852008750556223083364949247950340234870548776167987034883432555519429988888967826829438503520156026775147606917779270375752646836816974452648732809013501106320939258859119848488566709885497236176751967756349627075227498884870702949980670752329005774190050071722341766672244670631053271901546237200072441250355746725408064448409874870733822409508133657582859163904488492522617357045529802897029768036544680420011507525905347256341983506385248151797865073556929057368952854291612784149141282124255472375061642741103595466767013284563243638719430880275193385976539886123400636862316014762046852145095478092012261728899613168061801759040814117519543984293641359375502516162858046063315770007524475282638407418663044395671775752964632429503710690833855515048425754138212985268341884800223473655929201627474827402280128821261086930701716340515512605289393071410689545261464946701888890050741279310390922262222917936912334045511188491783672533760694127547626302371516176257857611329356213244202260493565814410199829013353836816685821424385642978125560310326756768765298715861386661207262934204300220929399345610944515846783187363261342812807714711043908919915491948906599859504307794545417911812347649089609920898623981081660545092550531579991582316807572919858271580421821464099045942255976588237651689678593827377327942970255925065884986390860905323648924679112880019615806931355209865373297912962019776519920679124280271523750138035301383217704586605099811823031888208455430855849991319101170321680238064718808589765108138151961213294059765496723962092951873389601851923062488407706447486528812196517134442508866931726453003725383125516423337362755805819956949478612889160106470427020388675468860018183645336610707822235745000924484398318264875852829403022956262786798439463569561983071524550996370030167399759604164314960186514913870455574569582289497979652007541958721806380764640606960276020853001158816264356162071773800652732783097864177289049245907756081440187869411095791666147852010702687755292350108323953026626780432028254163268451415731070870572226910996931741067304826927025226979528033157227607083035641668380090205806436317187427629895301785967885013906130889980381527752648345269500303083536856113126154781255061152978955677964733349445209634393219895309392290755430857882828285135581648577843598739250913925843986083740241050739717858340511919149976944167370095039300566911356003461296576853805690295182683069663493055457224364425642168860527554401716923352862440958259541562510303879426763196654942417390880056230819370297008547234129812242906184549259695171430461027228351885347413745920368391763863164960195419211557956305958350327807290918823526908929737156261175731354132412182336720103799771414193156312328591849302631847054612545905677581816695826264944712320522153294934139407698698246164503001315322122674150751039825135610401332817763720541567625105593662199403178670296404411200486537275591074450521453507948039427730907855577262942964708622024818685773013550689894493805044050637037381172556321473293127674462117112145257976483929800292502111769738425821476112583846350864098094070624479481258678183976832674120083131941431930981908468559840976187526803915848015754278827115798171612649305795407956555739117193330330239146133944877241269744018057090184042295894380319546117726946750935658958739408163039901893314910497571290082807480717451360854946626696444104147858832228539730141567802425133746071326329593828142213360680747493987775594413799799785186847962800923743633668838580662187189784085313865794637221274857565297453164204752220928026153515166594613074952874027120575628895736448028625103024696403545595062160416830095134973834275423689877377330876178486359866244850243596804928280096344242653298044201192092465098910088477997151146506452490282850110278936979172529561246158966472240319697224785230285789912603475458799353497727855524165793178117427243316849530968216569549294553507472275924948747106452650795808886576707420066553144270243144671158765474713648425879664019877956121034764855166745714053182241462200771413779271176581976795769502829133155877168322551714929590346773540056838597207287874493644038525044745276622251158732224975474245547429524674861527563169815431348560797779822614135810195599024888415342659331323055131001750756379616687491024745965551189444374346697117125456110710925010091882820422149419715915667329523391458829603188365832593685465581196240966720901040889962398997278255094181843274775276223154353319458979894907089586539872509150505173354602172704859933054119485025905872510317057950129518323391468433977338591215762187001622452007941451032341672329797236537824251561401909608603732066885488146159753710998908884263802724734512180012679890143183377392971203954993019301317440135577264233686961590404839007079469182972537670771767203446457541346335498411081323410902214199288266096038844590461728261598580213083050526422461625562827460375828849300208729911188833504501964244322059340778125262824080444282760556621317373779441561005520244489114671786760452225955284266366542033633891111527343617253900756864057952579234110476438370180257354793667245196527533896596581471259767852508921717375207308198583574872015778201725896415442715947243190747865918330244893086389160452740549196109992918061638506195163644506682026938957394086237899735093658384322406241644610929637726525862218284865790343213934052385900241235145282484453389058044871882080205085830162723558174609808964967858380104006208942314828671584948062489312648096011415685900280845371370870981146157307744951642754892168115951904092094350081489755150564637604627976014868894286011358481149820177963732370448143355321764818015696220822649162460534526208556607994801693785228944712985890027253830363229885937908346563234445223744395319928032965525040634253281159108798504188702231134513606227616111909786404825550256225202126707262075735116629750987205000940026294421117272526199206160830148517083505347723879090154378169603286931127986692453826299352016034611878683745399790285476009753496916213912753946351682617156088587756478962538157450923865763694513767516403961857516092536324598750941764513092393825490198724991404389750063667550931710763903364604429571084830648149219858213057455800074265046245909055253021406870817059475565997199512463551030226986588097807466343937607154205079096972165405228429144699220697321882884293346520925443338135805346950488525783297110802634072800459406193426278051087207242911168022224899635969136423713288671323336278948873683121027004210813198269464744158235147258803418193058134769693093329216084172196617652979291311067619754376528644387853942565540318818855805137495819270158588124146156481109937911318549418792864849822618402264026284249555095007629513121704097672983385556882681234335854160665706386042252252625971707761195555079456287243594509144032999930484010392885544170454724044117245896890373914757655850718845626922569572991515553392858277446922500335618535003606745653144099538679292565955876206429333255479627170393552313154538706276764151635870605785225857382456478058787823040479466552669433319514114100548809114440349596846633462050379858883435474167001589582444998160166736044689819563003383248434690432033962782899774801272914592618392369160989597100371020558050033815498554573874935640253535911254300885420513164801624085963872711174525445847317749141311228377167113231720335544448123328772507884266587055918124853837335788773118779983350849554440185292685201181819992241219602894850020056417746024277510599241477878172813973422184066786534347080695817990279171712565437575784990644335428420827881769804894369726672936643846063840377155998202309843008842415400888964761312275999451314890695930902024420950348364731675695142463300603685508391205824298393263432871736081117423790979328917996737573608156749222948721392633531903168193101569959309635420278502917311143817438142017313951389915456955215714502630901462382984325505610518734642091643794405229413191679512578871863849134138168223175289143761287035691347849501811089110276404723585394857137286794180364058965740960347121585865245746309731565830781278922763018315781068942965354234118920085097730013205595705371615704867418864688351962605232300431779657425555989092207494728458323926373748373488305216921251233606508519782360436870254366400085313738180249792033170139885643746082880279706385211026845981971808318755456475172106638756088449008039686223652711798099000586882106059801543670849858016971178556558215232605118052830968614091494645454289617766882781109382648641009360441885226498630318230507885286875751718250229047530202155804236966875006235656129853914491290608434322320079992145394945347910327331432587155985192648912358134129029401812941846644930502684738275365348645720114015011575810035222233787657919230298112956313399237523923399113455523050755002873022807321465237342363072192998018516166349730206953058338546636510545501959337683486347628960977028963826928119561927755502174974456456954454685421550461390209948835916609198557558340100427471338820079892805038199283723879226762615514351154014689034075998928538028033033615431724969375698329387731490524438944587914905212899482316717155161310669428204980868960282368635934143497940231857815048365860964025587259460853937341814176254791069476419081043040688738301981144715861991244404971153610725488492859519871093469405486398867364228828544229650616693607180332630465315064105274697218907767904245751386380602290618924372810426850890321825555751923154800927729259496283380573374145407672509952862086920968455581277993793367824007896528895062098412009445096654926119467441126328896350959689458586944602584202336973606609542581289903044207566812935955875642253640412179771266409466140300917315953862526847053073796811808768245103380227750803552772699035670999289544669698696161596330574220409467165366808577432805947822337127990585180994326778300609839421496442199611156949997019091667140423094436851099990052686742930356456617265290760971148714102594118416256310958060756888144534124037850479870733141833346205015129939953251199933161903633074347571610192522227820745350226070173365138510004109763174450042424740794445629978728308194750043271377065057312868021944450554921733273997377601179786893992469396293197538613360170285455136732906332292084404117735086520469433779383751885706684865824449220564791710547931540708584791020808561881563047181910870824368884310433188483505910386560864413993873229637446346797217895891006554801752132148199708002809194572626731997364116274324377801833836812327877753049363719404117048957082602349717069959860927344302984764251488961811783785406336039508513323866745587493832352933186729820173938438936338416356326475304468427714171819518192006996846690665861194727711897675718568958243229648249624267326882979907333894822460944335321478332265642850425267323468040944115959127168426483144444816660554826618017908415497389954787419872884432800985249011669375646355038918863748454249316914634865503964154682869880634023141544581749062750823616548898570929906840706580100890131092674168758176160378122174548611160839047170929620745410250684041223572956850081189410152464486461508431755678118106468735169997386894209108170561443053842169083223193390718158191214935085679840761622068723686490482436476640215951302494624545712566916915758911754045310018260085973291897121951137729827214416819539975351213051019631281653789533034987161212295347452977629397113272355516078096563614636203281798188145656617586383023356045933031647001271327671263037586669200166994972841951519465463592134623997454946144044326259498565425820550367383974597388539980122181783496929111691870830462198261842067988104106596156265728299432970442780985393595484419884569812126662334262869219497135824530441643765570322264566400829832612323354128016708861758497493241641608497900653787340387848742758205719359845276818691048070908371583670317358468637199741854596797512510684137587815448434583016367437151050888153484468757252076793862058258035860788827368214484065239890371447252767757085593093383421108811698944134043192085358475433535120319800269642991969262309207955041840754691005030869737929556231728051378444304819629485640494085581334637477198667146482012329497669674958168966085293511867549016270613419488554166576165614917635568256194539120038793780193227612893756978711071701439557153173636938108315903202125398427818970123723553112442016332255533304097480901931571269476343724993400147544695888096979097660631931161757240891720325592952241065099863864081806579228604532005468075110364095234810100028952235804547876627633343471727131454401762130774485741072039635148933777045317658964799785359148864618228504947260440256363351199459235163782443912238504012848652285546710770121492931839159855181484280512534791905380651490726857826118180635975941014858839355926060777234106184856677913654069712198550606138820742851870340360399315722825611070460066975012400446669225641478827263256584689977070610263053789987685743605792293768276946924018076436855377566136746606370358934614682453830503700695167090470006254444485317335656346413259588869530217926415378503522005859933821688604895842176234724580169203246174846652960673041781836627376083261821262534672803840079131973255079656689970496021489886388465933814220729815970706702903038346199117235222346215463000903386631608212767632856512728506307524638465737588304920144085239852730095113853703856755376270039956227004015853995944728130467783114175245333240160854300914551317585762368178497986533693483710095654284908131540546664037043631092101505610962153597654690942311295298113594238678738026895350039302045271063921915052645397748467263371581568531830231135320758709462298844071684726672191593775076391939596520200912405780805356094844378115813212021651527187092766948677013693440393265843026432027407754148843540370940361624876427941182569656965043676238903623617673935899918812918848943793564102157621997249984738779697075576949044774745347808757636026159839680141589363590623143766067120223108479486586922284281042983494776489980499130011571406908128379753417968263900189491970755694140746271053450861121735578844438762190454702084082601529271303062728560253559977004764898330276685397225063900321730325958047066469860354660152758559724454859534554639863137740712093602182516612368432633595817505121886695420980537865379152542751616882502818218172125228197189715052286681261918326596098828335002014286713167046245342471148752772552762185241278667030418793943504533470250686292718968825172122091400038139376295183652695340541149631247917929766719847636895780761189293803424514505764299655160696061347963554170728770665813457952652562549531252966383077284998675169167757540045379649423490204764966270419291394191482892205212233375645605394913983194265248201226914460755295411644874328915345328814648642179699445687710951062067317448273145903733432934356807189810999064808072654112061660072056156215313379273429635597774237472485414734559621271914917483114531050217178480496275843451500298348990333071132000887294179426289482071072790127713493929054993329194584784915694255352604022970956216184670156804458019037584183729113381540312451406931208384861645935362040258652274938486802425537308016371951037422846375092647493412349413104566773205865733035454965779179941725444696788955856749948761703258831078403359912244665306654389549737189459926225542681536388527389740250448453807519684785343491760736595596864058729112849025642503394331098853844127524744584026165479877148491969244052106040035490997391880847960988050009026670888405054598434264623817538737160246600053155598722807656971692657440506686726224820089200403828144891289566659832205991724324908287114001417753482772634107536045901366456331200188028313857785058975521246020835211813595008464991046321444063080995901596494996871906853532404021518763546633371259144083111036732007444310848949408086894397185800488717475168806484870670276274603828950774859054036891883633627334413016548238043918371988199611077306148012358328975160925391327416813833348443806437249135162815751755361946844190685678699391102330283843919315290944837105065508698076343436919121862271224149522590768664869981013948594477516834260052552590978381952748248170506250705530048469129372273768597054997173910968054157307320603170946004175483201810860735980253548800905896300242524793135458009944821527880794964699035883105233874197380629055463474439082884399081030648075757631708697209792412524237597018142221996226450810128048697429394938670595291207076038997472493628887390921866661998132196734157618656109651202647567656493599653878126425685665418564513773691735827491926615971817125496382910876015518488084228121296656316834493081849760265103504581077845258399407354471111474252638483473168044016830119975197176861717009961942865121183743997713869078641922238880976480283306016858620734831864887543101728126672874556878297282504714331852436442269375729576811348184088743883032350402554473699676509502038273828507486922686042518425341970645644001509422380565691929435175325371360176830452725191567382486199941758246272274354280579476381944997136290149506486942079104329039412696100292054653320285838814682022222864853433915801415346329963178102102484833399732506921853956880839154415678717262671719054650920632739877531389193170018171848740118634296600284962743419632430992766268269063701614968552935717609513847528622884441440320484394580697072608105607615243866267011914927493077365653758431384132449907654259065964668814814706909296364869164418351088164047352256253227328965700283819043026515193296079906412238121450358464244229164700558646923555894719188946009134453156781191541165929082251518215902485772299902229690894563072378802694630494943354483281018144330804962788569862365802945411635638877073776220425822778773805011344682184255072043454612277147910506802969679204836717307792985894182329545960328095877688069084987093596759915267717732303662032940071576050158456444711917531277452649358872244357159931891702719858866153961048958463209302303745431996595852436449001763762981634314574549670094568159865990811841720098823518389472301971665843889901157966420163595948868633761473516575893309707893298401543776870328911379637820035080766928119462695318787194266006303625419824599118676612956908368670516402228762267346216113592511266691511766080422717820375614344015316001985167279324788409912809429250749802588045493699367986994581615456130226394725723266415932567789181655592812689493126459913325939979791129449040776279696166293245402893349286214391172878466129613326062065267426402696176290952585848518287166653705684366303658489308256473317617804215254307863949555081462074545133567889917889294607576291159171912254654698121879139622448174887884602650797386548425011016524467206553112739090685145040341198895498986920483436500317419004668634260077120940574760871648541715053857396212492801847204314075156330456476018536462868487809198407666177142959028853273575616407269193323451586448513976627536461390438358831842038591942952451422547017977350947557844437152875434823787014221005391320782427871169561381012930511106223601794478446508280134958171076899672903711652831074249314009018743931465388748485382469485527089554176034016012561314067210740430669360898257276481470985923334377111134786610827066419818030048096341946955216694845626300633979103335709205502338703686260297223149554522723039029114477356474941723555106641549387548075135477604924381116295360981383374949991287657894318129995534424814676712864154492605333590096911512509142750823354480235684744912297711622426435771618843535435070395994659516041726874292087934225048284704994966351743191122220467792260460165408820982979448151754785007665226602756033867508455250220252741288183776764963424026742925662960708143348591742933955422721733625592931634860385587086133395161592449567591265797511072384198517956230772112082453088973231334156845610519948224436102339007223182661726511170202583160368929555313583449780160648105566267372464810523745288806879277639739661366847956837278507845780719351747600523516628075319138577215360451930743350615413360982552881158085307920977887715901717037260411741054007676966779241602495400489596951611443312730292566850982255849422229910082156826462668993676647216503138266830194530518440530119024010985820700022841305897069043774292854564620092824466864912184306432589327097525502736362404330229229905065908350908205215359445155857167007774131849380380001262493927761818165214631181524114126979629250207399239225398080636903651427163453871836878370765563205901692594461874032805427267726637058165881074436425572438233051713522933330346026054206936557758990713917941367186847975278308342344453143227319000203412669281136277660474528015744315904248442276709032310378096823591869060089486679616981541032804072015746636410541732231050965759459856713633524142216041285658199074764054522473930737134301164637840186511238860953616890416058889149715334514779242205010808224501060731949887049748046265327057781202854767062674589617363163164329216077920631994718927514527547010701726426446907283570567925013113029952387468675538082532873786738871090639394309326571459832455694088723937172339080424898822524863376638826055970313785064605206774547615949157119642390274975358320032090645712800519128148551941097299894281045959602909382652015155940855048730984212945131989883747791456624495477696060778527576130330025927853913891859089011315836989525530160107787644664243775244145406338931874371697314283853598622910747227205580395836653328766447998968788102422053933384144458410306840482599983328338170777439046317674385951004459631299918660016398574026217837774066056113833343103641108013479692030915961362887635646845301412986696064065835465523796288986821563391017408079164331803674973304167338537120160068564117625191839477592234099190684274217308858482032299544293871786282794659978569058632591514723227400783961498824840071062129751761530842076278538966193005904980278973196710770065253628116036633767152190917751021062802488228364594976103726557252126438420770684015321161391601967433371911299829165368615586424237597828993421910068301373774558461271147412288266337245211604165894488300756636857184541145332897185527529383481441508252342732097711862752319184881078445536898216179092583663440557008330868013160459694572794081034395900710003877681428730802438785228299565909322673779405697278066359859075617271363722664469735452914017932478336023454121217225029901826293586130952494545244515246309583669717855262104652865648688572733637243028512162804970015546701367855859535240045265764581620633301787629482771264363541678869745548061321302277358707735318488912304355289799356568816971666315239690742616348688661302177825604363256224353911978288511119424845185322615730524795761363819615229511368654069570403433771126183293768668014107382419462074191664070069167120247902682039371097463852296421642766611021819554897365240479097919600762051238333786806420370015225600511763616253587519831438896186942134748970039026525263522580465650893258111587202377882452740912532447796104245995278835710611864537083322259946049942803330668132135575013624685495673186024831323975290782799710159220657747427903420479118196623251156632102221891312696707270168743328496356900895202611600416802424373317703376756182420562375558242279123153618542330197750568557975728384689025531519805745350138357019669423112086645384261676449147156420749124838265347857956129793526624059334544340570947677909504855090301149779593888067723155146148690677198316039044668466061201258285792607284527343007355929350546685519391977782156097836193931801397189906916640926116171907118448955292436274750472317855447716529458405664943669361353759196918922778772692051155167945348686660447834921367730637073917757087017547268979009511223468493858044125749913035060843202311758161403570039202791127619827455705641819104205224265743156890636488756289802518524432154694149222310178056132859862099796196666943781390737589762190513791606027628927493631099360933026716792188462314468141739370936430354002730911072780495445319352645313611510109126119104311401633180469134124616227215076613461562403773066459636665467756170686443909045617430567857525524907787383883267295007804000302844324738864540195454088075697612819669236318618009175099385331052701069418911647341975558484402159664386504357303830700098567034953826340863647192082587794824660858881863399854279274745701518059257858114442111762584123721472012585221751009770024052842402180077082576147582802379392043233618296985920467137150661764667774427526645077221188970256650215835130321389536475838003818900376699450873672207110328012628712298182681788456040103313217962939589649383178118863760759295326946694666456091233349276587486668933449639533172526656187491159298942652675337706834077458734884043990435046234369069138635831018118340135087893871230434646189360164692865694568212826620252066391962381087585633738552799110277211229365545910563090377088428275604924481703536707645754861986609757695490189152775760879574024357518218730937386168079639342490630008957114894007159714592290575914075507665996562279621164509520256261202879566020835208402710710068420635153312028507938785835234716437548264177467938950956112069803739638199725134054126390188019766186934200918329556325965135224714871132114919858222075106814838452012282337010759755080123257198464718370792567800651831292210453272208375460301471450218293036227913233415372575443327464952953434415556786054496650443864323617906628632544029562661088391871617390609364029721517554578689953145227633272656708239052816258665329929772310361092385528124648583830558965505124309577486998956024363501174150023882156451441589437640857123934217672057159369969169253525238714403745091358275668980711836014922510403987744714395399897591396988809248274256698709278364675233326052877549104492542370650306680368491106908845249601694463653131856522433894740437124853470485543457990207745066612189393000011081364942402436781682604472724611412123701830400242105463951331859905023711465983812867930532660430379142003547309789250911878651548922859858697877392028331152874112303658725591120449628782592043006875162719743452162838369061433885120279338662414103653684923528021828922686473876496920527302955650383417657532749994272131235350687432776112988866318693573943399835100182222444431198669743365189007293015506676019529200370482688018448151186886411340040596349291439834203435949223152405369024233863604160293461710631377752778741233199583863192101670996977683968681064672292156090352389149091621355230308258090819103374387189612979147031477443569025149342664501618079235582654754656157477844745397102105226561341453478755075990600032467392087917166657143411037890442031574177690592827704955990883949657975097675649687190488082668105469112857481856379987359999253910788767000225773375982208255339003952450688608776447540772463783933190283985134544495037225573661092658182155810869800855716457652193103699194693048438251087249084885835837772663169352854918721916578077415979394669250842252956337301511209966700135325396385211014728600338186595992755979425748799497895706331633517289035928597211692695496277055470000498767838640788105362563899057742042465871814978463432142177605833311661429751685287502242654220394184180426581339953340504485320963175001649347700665394559251474830418841038792183184381119718413840760480367387861202863020955472330733474357254548242129443822249155912998661619408503031641011108861754210342113142566009229875327604186357968876651997220457365246382453627094736832743421173292767527687113892185525743572894825699554098247630370627934646824264996252608184540570745481488759830115349686356639622576929768129073960798282322715621877822612532998633113099044405889727887271061543205095825181661832190389735082015548005129041583534073612178217354876002638708432633516436511239718541388651688148352134710785981884380526360876777116869456955003530909245216713646311519713887102507875846141099458867500959061254839831154348069239438271282086452952601153902358646116520874903571413335846662515386780523387195064646870859990180282493675548862788150714197855731612747179699816089061800111170707302925213328751931696079602158993275783360109220946573705923451309631351468253688383730502451630281742949154686905063272503456039267844756796926496618776297435165774676465890377702627499500423900499080988888805720616640238448644858195720121719130992574212947744096218678636751731603492851641953576353257871211035829121992275416286591962546549419191231557363017143063513713885506233680467790689269695175006757718303799654721233047527596914805197806770124162953280678202509840952864295653711297995910539639080547028291051749425921220484684503685795180803941452327794089420132874838430098606627899946094048504398956096364015802570498805943818552223985294102143962280668716422116963965102483780767948434026777505926099886131924364324829358502181862842711824162374661643666815392248363292362539165316131937261132861464266021951610878103593510820147131663631266496192278892940970699881611700274016472648863281634230271270077132566332453587099949196529176716079081406226472172124160949533301725737948200717527784430073346628531412933436712806831858847024069102439851900097829810253616204138548247512990809554330648924608502295002692830361383003498603795836416020753941977025974240141547705786300250900342341593428056428716473463421070625919616783679693943080681990835724153643899911254925595215370485978711219196545206966654097448687894746752207256175435845520088858811593617670825142665352103210946756991399230496361372147665146639679121823474564746612080379344988670506883463804711950727036885909208474304894576742361315369796114068663667398679555375160253347520537540167462028801114055131753701699889633332203397350427996538817307439372325479827527971417480741543726345717576573854966851054028762068179307595202753540798024709934187706901947798662513590386982772726584273961712098975169082968971775674598645085765827752533937111509797895240873432366122093108240620708633310887342898738399022141961357615340101899872649237450523948970929913065470362145079431812828713919025703853174931960439513632952554623378730569425906365726924548109871307330870034583923008917096132097577272838563125747932103231077158258693483549049633606887940243117907621536469104900734396331734842658184450080816054537289208506071371827848884667852380848436814749670684671230122841344387918812510077001380999932239890327202557597179563830580140669713722857802497588901985920385180570808685676888731666899595364615545815128075360437280950278466213832056777776672073548950517054611834457100064967305713534685057958286767845261175177689879396597417903463191913467712476792149838045446738678340436279691524352936679774023852150338972873573296739784691867707637995653174533614052955857384449419954161319785237437772026679510304043768258720829001776626227543717687117565094259830870936236536494176586085616374843542476170814538392293147185702004041404510669484146820274634525017430892822710281314643002012352234924981194066412999077303319825321370104380429213719288524470832574980003314155686684279482948218724968723419907681704659383041928577504415041734665341766366061351209413578998135639588418933136530811926498780029065303909112007864408796695745161946324869486337746859467379499948303924564388996284926145522772434049199589393590358730936687893408783655777501060881653320501115778674705007811021720571146834396497542512567712259378060536411393907587670480930289766918829152903641172856613590910553913807618110757808632742840060804975410188149140931822242396151221090086041786966379869729259837833953659524357570925706556478655239034016215168881903540899738790077305402426669872947956975079052823090514885006269109099304203618760218045848468888604709719779441036243185764478341327540814103590894003963097423512903383913396086884121955204184339449268118015111528576582072783423917850157329442098818424228288740200080419848411656330833621563866270976212906012275165481262838890649546579724067329519260145110115840681522226483474633886022044048855588409833621299486533123308730844272091952447868059860211926212413780915630919856769686555164932150609958511199287305540787414822420173878151469848798966100381534782938862725765885563350296053090457215326957112569469405084309663763787858438809568071492886107867790450128850306334600794079688873845201563635160386241932455388321870433872212096182509401189726116263216581022986622791491963064967462767619492152868516020830128117665619965253061676716296226095150577201912397048919340786985794382397304249546208712267621737076075235818144736408787508702822660961868877748574403291480864743651626250709030220205303420074919867054922640027961168577268695478430946640292335957472335448982705079421518027868127001123044663070915604971600767995266680266003990319549088470772219274047159136314846760300239154755568876857260726089552640210039514849090891983559778887949106590238286626496993704837824232749750466225881595681727520118127557410461658992881628320316102828886725852683963102691844948752278252621178935570691408712806379997977395657987326466465169267262153152946486354314194688140117586583977234540797022915783397237524396313172800336578878095401393587199081958956674580308088749066846130856695958401307792333211015029884061133320548675257581050385700745880183968457101187922809958529259426494808009350772201223578796577160713949245189767297928165030590703432941461830099105670050955186386544528317309716318729556024028481804341355325257957487779610586299770128504749136648127220983229829628472539509099222297544519571578916696740486041698773628199476461750013039148136644849859595046455396528853464769313521032584636767894070244422710119937565409730746610535284515880007453393779168895636600662502882308380401399320206534876567978411725553563937779351313314931705951979807312754930081468496983011940668421605281306224675871446711655289678278900597583057951768757309835293518177655281946174791387142619183617833708745330304596060045758172796822988189841604241110744504602440743655340820128644336116003506853112040889536789514280873582650930845735382122005275636382384704182520920712943047282415337249538260494043452657821270004295058862530499026422025683267943472595999041504329249252229020228375139548395394991413827804754039949210619861542919537186984912024133723308250123887078695319958564274286076683279328041745386916877498478636912936200760809676870768627552226282289919889333698577312680212558383706476508799762378854927591839560716654350465408553064137010712122653084491224537310650379483340869924763163215710041142141246321972127836250593266623123270662978821105188301707592662543637918122230034018486225789436046868863411177367193932102314903748580304432254813079957813088409227922099558944158521469813934172690758660320553736931718794801039571494065583771553365433772945942378575981814569000585333433491035106574216163994090223393255034174655320161369418344494111700728621598877575622947899781857795374628448600905794283364135374072395937308428504963609118137192893220016113946192937139878871661013753659153896460771902266488456689927993293749521003065728892060176706562871080705268856744085084684589163380794359472602823350440494979146678514384046723034295933782256221040065676666620645158622578807905942271667249168614246183965476256183128813581728501026475446586261229877633036168035203402180047886536930899952811273669765349043566241352197063446401087818972972837930313012466654675662315681629728575716348058362869411489883372718896371059352633947980709002059835587022965301080548295183032052221161090118973468528394316343455763727602450764290710597335404492444708493509992157350335273179787896165124961398720082758918380944724054774203028317842825948966856377445173919681407252097282533906274712942460314411923990407355757300162966047481792739527222210425931796784194547818458599313234089536921748846030712156040726193765294300863424407238970371666621732866839402234456115177907202271708992307912404767871210786590694160878636086961757262627647570901839182825560378670037238629109011509454469885027370490348101879462840027437669711818236705233355453847046902930651604260389773509017605557056180899440444039360999966729769114443789133746960335517217855922320808245342296152815079801066541670035617323345967939628241705811833516452610417427177978184375975586453110295770443927913868573275928611792945677055174910709803374530494462534714517645059211207785200934917377469203250286653559775816579855820149519286617250088832934801808490515725219342781166462485010928139239265059922630370486949717786548225513815173363527937167637669060475436587252051607628917244850418842063097864269190194981103373837069508627734546874945801759141450179033311388193930068983540517842663239167633595960516020841332986621512396584253809821373400402880934334175329815273743247881729575084612842355325797422587579444129857258277985058543606372753989057293808090300162207699576119512492175585496883035912590910663883589217498874249033888828054640704171707295384272800426693447209494972561341792186528956081568040227159620365595153024242747374263653200410502581943226099738920231638380504941218260006106155457339872310135442748518590834854925428839980708767492023468862798773460334826657582878992255577901512390313662363982200498724465538572079601253520302929790569754720011557516671269649517823432762825804189910143469911098535116664401661238232449392903013411042563395736972790955699952139617040944173788739113843178896906580907286210555098174383167754063387844010146804457991442247217138838585832720144387577934059446535003624017553457254120159119806800214171531148909430843612599862346188496637048944856007857799230930150983368292144076858291521918476536482674095041751136984762418973597094948825913124638181283337013928627318649745469154774939168367069939911129953681158266755022086996908016648407573207480576488187623466707826124519663536967391531708203636719005282368662728992752903810322195496565778076222628397514511958455786365258703747401063199118770988529570231509601075483542083318395868155339295030594855560527182725208988104960986827922843811885314437669316960081522891600446904870220270042810361592674844189354231001829173676796695579030966909444450153617102915402059471205554247646861306826408197030325158771660163866962228175552784524953396592048215224012161387854611664033707174143006454631602988704232901762136442526957563645691328986756601759620861003849451711005695498836372252036796648257779786328706800886975819925155288742835259604852575879786995466646086756990935188903243358553921368173653578817651145709039554697893398334233258740008462666825245772137182514265198462507634488214455495957565622375867279696906435398613468132363659965228926296383971823366251233863340891892010058733219933351097321608637995676419184228729007042431716603308630438644780810672712676796156058758445774289797703214044030069972699644978069534257884347676286212764602442406275276499565659310941534495879586176939625552487164600949635907689017743643553206161616994851449563821455960198831196453529735948343759843353790575665312433533872142483882245325519401848750907657249031161760846418103037676102495618256169631380551829703691869952691595313464848297930336844588936898051420914414683268182736217041015507365809095328364455976743012461973026100875698844798099999042292425030111426848959111141229297467029273167246389079324836708298757816564489809963216887552044716351765599218189229047591339281049676780299194733092878708949655052921723737799697590200182501168482225571947093793829785493697757238516332703207589837539207321319564676504978052635747235250471104983270235698218274064666262894247186371983515266913987156169342251980975872978170799677600633096088996693818587789540660424679572317088302226632809654612026204513487807234576940448929345905707660624638026546521082796713493066573028440830195322816144568698261063984560088225087547818563149198927784911592400124140101493051191603600922460810925465240071882791380164944171726399362933435730039063136670985629372517913417709524611505373861427954662484284488649504588934849750440500474353453065991825652226655428989244674929469216591926749875428309869518915581109156189647937468017730259243010183790084366234420501368857313254612235328558937474961114107470766415609273515694811090198412014815973102346846053144733536733464968862262683580172572290439429824741488657235161219717291750730796076911123233327502500890422346608646069637616020042355576181179075190124570047157319702377740404107054824608698070604488407429435597166423602760272256617782626869755266252710594529398076112226591927434526733853541492349193914323473992075987183083505846300188758870616380752575724128911310161350898195467034078309642917226743810987297160125866458687595210042458869150694868151998650801613917877089537712012642165236431691080354716293300275932976253148695292077042468845411888577183642905985773225569091318552664030568761828148623240819431848244540043937407799559335181769510365071865462649171027203525633447879338171387084063955427900736057015497533341572654347419736270735327019077064632670581170145359819770775500056750304724325977319065734887936135772722323126126674434192546437975079177919904661036358041035475855611989429950347225496005599853926837582800765046202925140746777171984718898828551931830067070634351011944025880603714620348935439628303787087220904030270109121077128772341676613019460881275682791177938874109089283140264611470028163964072037733108589480118512814958346958336061594292468640399523012590868714927491854359118591481651366474880971098143768372559584756615015291724863663708930976597567127676441683986806431032744228508609139161003697160521828541452204246331335082423165776867220314298489673272704302309564257849361347678264968349878636869054183848318455197970701445272747592357402950993549288124604434910521754348403985991909950776981802628751000017362142691976212150532099577915445293541555808699507041428386795942009933963011801342969625308706171477195225253863748125119448129856587047150858468201116922129846998784398015031402129696468794281848767945948997587750589293969975023481189887045861388840939739757737244385639228999540474239695829521319443044234907020345018288779234354551819923036687706980514913028860151130089053906404657453757161551179694510362530669616745035044615512242176719963274047865408596712095226046785696398816231694123281649466592638424139035952180918433870354182550255425281926348795172791674265051949614588881661573833645635338100776237110999566526053950800624421930315641176356896000199269537058581336403681571377208062228824942702655182538700068473204497173641034538291633224709680079565365579404770237518480461602301617767798454110013583412691549309689013425870365813171683668202506285816492417757697553065168539935682520263985029127099184470668466404768257439959886477655938294614190077278098410566448869294961882565241274178268389255477415290981476926120215398421620424497381512774241990963858634425407823930013436103372691612668710403685638979451526472203512405753038990960425493854509733589598048145041686875851766050398596957224150855808053161749518717392704324848983356334666619544087002955279703005042251732718819820269660433386739312337650493157283524470463255390380093492435453364182333494655283216104245468689028565012115658391088274580854859897987761848666371038411335748057879449507006392380941989230378317800058097480344860404499033610265275326012873532281712258743450274015091290288395245767551585551426920132977046354413052967443932321062093970068441726547406536302114959668268983987975666103860430690219209551043333756338497539431081993127714414983340755698022412767663599522257076545891350573031395713579759555567430597953181031414112997961423858979561701677242206545177569252494590021445528046989336088151010342542449579125375727849987293718807579416992510755064898300682936462021110471329392433207338785682705106462322357685560095020437792520853852258111570243419756852158604674045644855859522762147507566885324472368817202994907715441869747633531731253607152874566771737468322179896382716118703910658947753769542519549594780027056575330670899460333267177819824334340237668049335808282614754250849155461091194341083957427115874425505649185763711287845660459663922586180058728132707298349677230635696980488643851831012053766501263299135694298994432417047629847478430690278903502141084051985421893500265756113343825831281909108837624621852568391347654854452901655963089754338245298831238208931496112374425570835344594854150927919291042439023712648421050978557406390489986258449674036350045194925583422789729304584037041121717000271142843204768077456793923840410291503524065509104647985999751691084622457737539258250701253562482346703972346428027321307746757442421675689654979397716963346688964519252933702833040634610703699816191743995012123043164778608468012602393186704264343892517235033048700960362932280946840411882946315319524897908038635714667243192396504699389774617280647968249332513611322762479851534867503993276599780048239016641064846950003619871098716922525544234327595152767624718891711369084226957964166698272003452448621747498858196148889213908880543669336510225187116056482203091843858602409094211065659359953354492414174643562066041158068519512079667893015558907608870510137285360573763939390388434977820966523243395648134975239424882862189923138201876343057873443861844940503280888596618732710217384657990746464338739236576682296829732960670680325023385755256647215830734564129109718619646683416936802517494370310532714978420528232517090971167363790370056236306293486722463760839413438901707009266519879135258761874385593308262106634978475086544655618238338078861334479569600765853706070037691721702531748074235225377021171708388975647789623227914243625465940806748282737093932249424556499104937734022277460073573827341640397484308428566776120635289565895187313000863698836424968234533262782137147119310234936703770480121784740627872755115978232441882608357940478662769647144591592104358613006890550536030173911636436463167122574783677356872637910018626537441841012682311722116386388021594029333003643894398558523712237094304262888956935381642801605017093920122162611862066808375287868049195737116145574859415895876042159913817744633026658800971121060070772588780517930496008346739724942272181225812214085113646864695231934485197814974471859139445646414339690051618938176257394244516375839359611205217654662134481889910347308979320846536708536780416553270328217168410439902568312983440337095321202480569368970355301012421188293439696659209462086437331480087131299958144231243570825170888974366431339816160493680850324612099086629986619507533273635259962766809402103835234230236672719945664101442883776010685089883617001076642413631617319890132328602378098050298842532923844454812220992764109750276553688947997909058561358057822950764054488933547772617803296823703427215434918617720491460535243057957771872986752695113031054641690330031230821164656001576810923134872987725517951357009453621957104710561181768448778670825096985313380352262264146546451173300959463327053455546935991744562722850527664237449210538404681173218850743629897956935384187918590081646628699406147219670669679032801321217682514538301064365187646637919356585781349344228750157374260288577516593839827943611420414947933392261075890563621679316263054802161622187437905776197027805403197358135729904498058472242093456797005927030190938533004844657706720186868398412397568828060451378935479749070369858781039728656197171288054497532512488430028454286866136769318465701087368182912757148305555291128292971943245044976827167450286494127013880085833416358569044830944970825674367106356569316267473686520589518620343575035173603018457928796713769618488515633048263634733633694965508104802256801748300093216342861197951657424544260620843350708933158504607341704179249548489179716879363451407956745947614222110801231489911795349680681151666396268362027655533277505290334482561964757996354794058791157082710167319481605014860244670476209207978036315045789545876643678852898983992046735354257258954325385962508764584355719325951454214542079438334230274654215007683194252540818395580027779074596295974629880666100953485593634909124607702204503880507227356275823865658989506549755087564675500182892992538303866412548281887950641452596878476110906104287574539604290060903804036921280669197982012073120803138934334329830185885314317022252254104824304401760892937880367981564914291605286858439104392562283427250011954474501279939306422967504753360209774801556658487905801800216317996022499289791872463946617179112180504755944499165046072178693855040412100818035221691790853790843369587710282971992531355676568695954072065572017212953849720642662108417886653729509574372692873597211596918862611039114165530517394361371118893187465085918451867701237777328239516688189109456220868811821022985232080654740590581032437223636620636402497493679155701574659522831989367557274956276004863968381955756943382324510362280383867107452410686319958807264437561756763975244731743495994987074056551078545628823825807142405102430637679104265406250371434503441902672649738663210316110278781065468538051642965550943234833428735006987628222575111532084254273669607355506543646373601792614729493688915182565981490846555559101590617602080957242823648272798886939834703616649846510731000905040497434496066448352018301585940342850812266083326400564805064415910760014996718621909196786976988527175564866642101834548787339333585411400177083412869660073107169421006874910744243623234051975269199193003284093734743898824720397426057831832715251679066634434289036620621026014099288943029332944938411572253618546363387437168452818618924355635385997975682614284626050796808171527989897077724737736147749840950812572513604481560524872019644754159547008324990412863175708032333013756352681384437695292901555905920606475666241191485228386857052559931520423479571762114385410301158502395203758823949737682264575934747857173164942413507312711402165094836296571000582876207280002070240225261201290514944631749270581617321813808330110752969547409108152284090092154456495063603931396360545770845632609313647437869168464505990790124554196877299959115970178347306635796666156330075272028176764190872533750801998617602558451656441019601743792750420219781590279494167721559364267957616010853797403298847302441707714503555049566744422983867295713908875637136965144978788023632369019312521095888245848758410485034332442403642513725120842834370541307154098707254877935533363792334348407476614048421123238421138702032665619251960841337037605687001242649369380847538256636355922351490722518073242274846893131897526441077710581976596174113402416872385316440772908015561869847123914994759596964505431775247778861577549255069024823740001086963887916399291303366089575106537539498312969645173332796916871852047680294393941039078738105893492791668502736579585722755988217692440269555050754393813265579192606982733048746312283300201380527548584286462208315940109087297249529958275742954186275741306684876053061631244055850841129275139779768308691435564278026331957302408603513506517021157356302092153312906228428063116317775231687401785679613418233023485872559631329141186131937180911827793706846434076357306095489302480808920482853251519990319268125501492581228720217308790987688989102985135863837559065277540070887554164616123444710448147194277249397108589670247620430505530165116044648785380017937216623904886152154418080862938670330142678147808969414048326417805458779529834501100965495848676348786936580226439932915442206655947633138346014952319840357075472571773290748178649520397311952212257902111557626932093352473928603140802564147652847644827952740482377929153782106320315924982751256808198425162058346596811059606042914228497811254581130094060656432346142237761442600173787974786591774629242633037240436783090560178004067486661681729456169878581934163594291597387957787296359281777623614177562839620846944055543472475021546394901761908403427035295954483465735327811900472810090013318456700576582195044361742450982824666304523816415086688970575831803048845655162459806977247409527786885368792206677967637668773556681669094751138794150820659752756248216349717085324493531594194051867456649142964807136303798480869080560720410041039910925612079287894173194296007530347061968066637478506843537871065844440146681400934818487467941461137967806515721217498310408288235234318312018983316874204680874317843628586205381534999134330316401906043304645263136038238587232320374908011878627249568232594729815208592344857656442716737191687087782585988966128283154824130686646769103698476286278669978487349681484507671504475399361169854994689219321301759226440823416900755060335650033732154420560232034757863564574207807148238448295799160473281083338158679175399310088631331650592107888933475474658176215597899214486742381821071635820095265388476800761886451471587420826301751916192948715790403469254721502696119517826971837329017733738466281398037314053581497881701660348205306407726232218796233298327468610518072051391349112175205280131626495832192744673655031978112201707728844770793837773325781902267948576237758644678450562827343567028807031464764012667233584535758416947267322477020607696007802021356881303778142296481103461542900821313238386554806385217841193450672142003445687235165719854006691897585526000591365724364243826694195714713839728727642138312979743720943441156604783802397704860951290174917206936472083427731289791946963209715324510048757359667693690634789410600936953802888277050459534696993387384358657436924124914787421076884634238693645300251830641537617298189267017665014377388558947262587290118549442282854374923244140301437000329120428872123343132922539688125229130212587210953003699078583714195546503233889084202733735040598083089805001403218302864445813034144909866941903928744997074495945828637743767482187771902498546257842376849387794847917033881411552129714986521360594518601437258403950221346586368854580581505218263460074629911838923507451534204066667172945141560342592149581639490370486230428704695062050441169052085223372718165872524424410622866501455021193143338717855978768385252748378609712006001518026411269059438236954777510304758177434822019974185270666806749381429460217321936879575745388354214956372358238963659104754707791905535391844427417361271602302328646716832035236577127910374394157876459675708258643243076982303473170215712916303412728273355168165311302702565063595065380104388089787737242286466623191301984817398924414564649703730839965524923481909475574860536030371631433632131269212318007185097461008366956763023317875838086283556789452251611684045413507800287649477045794267203958732930997232504399308481429026423741916655026176585569118156791340034172566964858486926863135336143284196897963543377511357067870688247573370838114598160984214228970183792488390011063949036832741650130216320508548880843738770958462603260775858914297689176796110594998282794419734961178031624336347535502660039700580335509722065975854415040230129543156137948201125954835285422033481545825251986809044336163661446898752444021097733077204841706528929759606460949021028762401583287024298419510807559871668903529967146238556737046947751507950070980188776218146175031432660523356937409738203041589462596448512452469574206076779071753563164208800689988763578040141634654608986798728126388410380303851239170677872128221640706334953880022863680727379743617734360832432292233331856260419275552427950877789784541404238698594205993920281711765539031768112772753661749650294464316122757512393346760879336192529528271852657610098000975507436373525215565802681865204234576864413020064073035251354135658754665717512445761797986821309180688069176198748753741352359531461390253205459430552136916612517253076194900672776547183955249665994810105413328059664457175864467905434932095915872858389099884285771982035173116079832531738028950672570807632109014935241262756867759200814533195416558838301779084895767223953876553406672707406228700271884208843847541882807759099949166081402478748102673904228501306688269981131378598208636802073265659904628103019960922693116683159464100960375905404411359296254005084555337959993763648040460894527602099955215381787941323295240209206150137211699835597164312069382079914499001997785635600157047664414529830557939168084046762852880756078260357491229172970099689321768571872915591322693405916620292450929446081295075028371725966182569420384125994971868237862259372034112477393018966332956590859079507575338460234765472718097672192529599170199014236714960484995424993474303224347667087472446464023381467739348597479306230053633739338580285676134924788560503086574768526916072158763102454606442044632795741561796562737514950878153365340268711853436687771442080989092936692281988198288757287477570858123379518021466907686737435505167653053848622441640096621945368156180671589884455457361516547997409020458526880878513716742711268067701283481054939414810704186323548106245888122913940799264544177848009165141983710650035307008459873623078667964637349758245340980920094525204845607056355286409404169004024330827398896141768717877522133227577974901450066826681431651495301893931291930663502149611882608287307912671559978850641593108365750318874988138165964017959244003767851852508080311846928942065581096086915701867668179004071082046627626146170869706862705922443982340274247304146619093656861433503894306369788168457646305579061112537249631446462525901066231649521170262580021315468550234495778687781343447405508386563411614536092922350638549415456639701742351283364737815871940675522357917037856365110249227648307456585857504507064657697855304541307365918860153626670021851784243819319456945770987770681446200444570545763916615625026104504149353577067258826155823067673109391467863270932852822458777264816455101101885734646776811703219702161335039445009515363459351391111038872630741484428723305841782170043782890005296475078032336381676419740166081947828057244586359783027677556252808849422587812868983397293055527400448789908420639852152205757498006528905191742177479622336188643180324742394446268720827037946624082495788213028735265718888928950775789361103842976274801249575775108077387493596164596241503633037901883411718908636139729774860616614628061794487593003120798095726774674644065388925841910519862484221760003189293268845068721871248015278125047407477694907715466337144837277030914126538708997159225745522365610853689983603599517681566599875360073740007474287230821956944402126517195920403889443087362269302753955453345790226754092270852487345940103922682067762191062366010709086753173678627358236131473594731677051987419786803321790499588944491954502485573372690173340471756165010685380896363507183399104419357824000368748041948731245368502232171487977731412419261974792181544716637811726864985312474312111347290229054301299369508664642712105438737780746016519235058894047671461401986305795097996302903048650163462072231481508787437933096210120467985895568993747072603457673406811219574480469695410670050257015677637368459497135505149921672469999877513744258726080292741458681474817199338479806426924299808464096197694517321835409538889073046293618165201306519534375036904351350978094987404595195615512215507630365061335821151748831501048566952951847352269190315429044899066423374314138469291111391475314608594271888190434404147729923113433437618161597437917058097015708574948591413341873719113951082624202727166232829756888962700385180020477057797835457436204389740316460404396719078754100827964102635123800443296575106339721861358710305928608227282196147084719536029380849818963003871081762070260420592954738073294595552636042505972713237121203364700781614035539532642850516089255907919837856492208590540224289564615996463551442648077445834570145126794950432278781311821666137132555086720904447348779861735164758695180265957221627004977253844840606396343887542474840960146152410983423395381450405365917596439684338470461997183483194363579029980097259259718827640050174922613083522876680110511080970669500062487880391755265752231104168594083131455157062405807923499612081385136182526124035842022906286006792890338803131534382679116405129112535573750158290315064528805539076595016618836542491930796363010940263743171058566171353817798348883558855334600430559572407259721396366331794614586683984737892111105365453363835660665880664165288561533434864083962166429758288213147073344400767066981292504036904166526417787580996328226601117550848064376950427874663812434131287444969715331393616412360741448533032537848934785033725293106843146972151177179328707658742250142794965568671731138219433008217928906580321550008281205749308818998787606800095084100749209861464677221622073578248815707738207699894584867281053817256799561521367857093035982182955841342920324168776868709841198938433833894020093340892438163256671768730843908138859020947627425579437831347795236743810749095464788300077624386971265711771637940474191441298549663072236093693181742596508388607517216511594437210343335394482102446716002418159417686988580756458589993101405179909885915733308289187600392547636933136802324587763537387901700541062023142942546261753843514524154509632262393894200133167721437726376616077048034292165065962565859782034608087335182179167503538184077570507626355329822902289345646512542822386058501431976560835291847877361571525172050080673432488554806433939019499716283479340345262938426806306473288932629296850544212345148222116853695928086690934340987731640688516254517741187561184603612184214490033801322970701213868320326254420240500060809556876596542144360262026180328819375158207928228903708915131048309805444026609496429476353227798233467978529831462647677806008825771427426098106387160080409560091941658067030892359260646687529271178044830248403785733726735933021063670937302808148861387935291548579998088709692906326200302445841584244325158045493168117761708978235445445756833590288851332164924119135274858032403382334436537718638485293397926158112118647860228016710736615799648887956824590477053876811042570320849894473457545859083604394735949945328998569537417655230969996803426936476218317854860458871098935564935705563818919940746234877211538117202643228505829074006498838009629216361867119883948620658043633071462510997143506788733658879824721190899737676480844296330562498361411166469580932694267856373899073850780621922810640230909968240701574047025270527255762209022174643555026318939971134645389389774073783140459855432284855696905399983053507861531356704237021236847743409483062383364186706235110590031882279765374262976612759359987630740193546393185821565240098542607837836041420043069624138753891300460629177701220038784005108232517017327250761819886810686670004508692533527079186728333620707970349196900351830276022060610558641052097959904525067204763260428456961199708082926093335223501792466248494491144732673037340268685576146543574106368243081586851992483980432102126996244705960869747630808192481531330832804102093715860790923944432498634528143517707301835082864511761164564796511035326785282147011966872820685296195843764023842529048368151083847282601548215901922670705609706042063014181449294641226374536979927708059493364678974375708582330381151867954385173991993561457321211219287112400280935738356980448647533955778674224045094703690114292561064179023008329665342640350790996568112429337842404576322992722771787630146707042577768193933536179282274854016720483351966699254914436570780503356343014083129743126326358279103227157485992064995717413854700778672923219991973557769818897622444516681179959651483825289819275430437442112827631399351949768515622150630872876339741459026212269588498042299483739200260047934831320015074776972663249893281970858443195599188923230293813848930329078314437167227482603158724002941236445757223134357726693656430110583820966205380324678744913753464745313217928096059529102765269460737792818646068851070598746387789204190277380673332491891263468896117262245826326777511500901989107538758471080350819252759826681212703062444340948983521295092066620866812680453594904316865615135507337680121109182847246239983757464417589464355753233217754924820956441867163395019116791487611520866071489883321361094249554772370521941716331252420538173303449508186262381159796048914718059428100695349699659949406531089522588262884136222436403363206992424438102124450390151330400036584167332529158525953303534052811867599673804037897800575608848192758228634574620025120969879330331510958293551417671600887208340505646155480170898663225549300251704242770436346963381791909408688869495025001376933657454477558592610842596553563887856817848241999681157344730449567678922960773585632716375265501723815526225954660057132908389188163356290487517979092640133351846863854697344860730290950035788676769760037802494472315253579615462722671420608946756822904199130834563290435756424863970757132727187992185429661318986775342399303260404249442682354405864622221993324969339329804698921783789490746558574374195499765493417837889683428087686382164505781325166947308914248631215463975397374550335390215799382890413093927072900286931530197066992030081320656798533927743774592184420062227103784841639895033342392072935621072436972845072756643340022346556690443670624241811140420721824111904917742629291777205241400475749294562939581477804479404485088057283252028979726847340008734128151254447467637480722005692514058301616834249184654213706019963909485569684852880838728797389281071529081851492291584382225850927244806285056257724225687650552678255678999771241408153051458375862978743079618144420357376910430866589639713220892007642261490825646517448634369930433851423793690234236683244797131023628132108964386714596219703674532757989347654588835710773515480798550553241773167132867244283146374946618537088188930118409625682362326200419371232904656890825654505195254308572659856638404825838900065307151804366250940646498532781570150702302947640319688793881351073212789061491425904802194299753010435384881287349839343504417028289468296005124630161193036798542518858242290004615414310034241894558255967303787109063083184328808074043764903591025459483115877161097736133982768850240929357826409364909365072574049651600429136401922208959130755973993950554061731825592763264971158301536268859207678278681804511535347443493255983077953314851850425128763184682863647807506835079805648552123627281806566932004783404977602224883044606670964615590385212745286409184231014041167826156342245876267156116682073396619029651774241610302292394295901175260607031115648764425935150646526486913276827877392697463374468150909044826867994043458182262082764842905524932550770518331542287788385785966502669738720172394962811748928431504989809489854139757599908583678333596809334177548507517711282225362264315437625682292297016281520210920607493114783599727299973928096405921687548092728737792565676097246823241092511842793263076236989235184202677504086427585044155110259354703324308468132439199703326785420598969009461602336575043869156683403772401140489557336439170223678071559761479318813172840258565388148998208232854063279752287240713986575136469544700353818141212735977992744685848114638726686514408628635393187578299057736927121908449494461732134944582699709021663741572852781994327670774886672456585863459353643592458343700327177313858704576050979609153787237437468145770463253869366973925254384614947865686670277600242337279407103155332211136278396050835139742396830232975581734612645325544547389618916351042549100313961028321375989048655769357144923191736942494528206170000669025845678146017056510242040951143527771520353149622016535229480058951051918180044948064347527967606159776790871270157641507296417743984246675682204768329325693923750446165534609759946334839351224620127843684901774791835541365712778939320767115868575341501032126830127193325067491301190035848778358730116647268300335767001900938864712487666857841185997820103744358205029840157042815097744641641696966586482915303253125075120105348821065080897342923736237916758887831844200911374745956271738659233236273916778781392036238493349357723807366427515642826615141726759661579101853387307780252861532906007557467207162368552405124718462132873019519213215175498856084193588343438461751855173684245229216203647048293653536310649002940880544173297011512601901661340267525553436356181886346746327373867862263430340344634737171771260910077669033319995243548039675321643923732516715208043594227543172943287933978679141736647405324655011440030000290893406105736694707995668743610466918645021088878631317532580141579867576898991164432220212532831810614819431380238854777280168233655414277897792107353519557456348214806519268942504207080218121300712721006577307696914033755934555128267867290237722349608446942727051613614640676992218248519822005866032678618229710605480923289094254833044425755205023564954545314302274621501910359974830199481613389888522667790305859964686833393196601610460874029719130780663222721355430513815320562881806902995027516123561032407391296162229031867370938609285757722861694593109989958502628858232505698716954980983162869340464693582906565176248584512505408853846789347930756801865243255746682373200982766714478814757207157246535251040601479219678319961138983849138356476083831841497834696586868711498821684849357190960303080917923750960730889859316936413861880742589788132038814724370374350768448523958979138763624835841165885918994619228196234833353542000638301048416628124632421820420009343537656506776430795120966763829355679595806215741712296600979029723623219415625100084654605607217363040656617938446234729756510977456903457418557631783731508820532908921038200870690329031523143850494948862462141211879103795712411522694344635028736479651243118007444891435174571775500949478478487267017125772677084541045874810890623838295927185204889742066229080281719303586286244387362312572019934171345941644975632906645145774479517807791208801070027333514111236595049182044076236729545280943344661747078118626283374304195796397265676112929206710720671651556275772440814126244457012982072047243467633406915737782134109867368169922864869428796164826039911033902204711031448535685297876796291400481606932966765652612070309444621661855474017303747111356305520118852149899475347069085221058907521398978743142081644874396610102930452429253433213866093798544568225560118977345882304862287270550966218347008655156573988579193713182223733928640705199408088774047518448238350698636799439662737775341378376593063420496051157979638287614539830465138197802353431656064616744847255472773558650670568364412517122091114341152850575235800036261302441539221604160726100061620540376375531623060496554248585574220119158176868726783033622012099513557184999717490123839598196570990773012532050094528745460021391342568633781344500578083618376800453491949858063746934429863768983465162973793501002588490045281192770827322007088161798166702458934998984529944787024736359766598532736303907384517111220102281074968223774641658806147882299030166258649355589652589304515632670218933162591872886031895814228772691196883295355125176087733510982264733466362991981529825609528443184129127372669717593450086361186805845275200505827030933060767488939248013547316176214633826854320925579182275463149625076041096532441806243229254976498696073198195772130488147422523189036570634207111763659864687469587417861808386687655242657384925426908122643101904666465340314152473038933361487881688929641740883860554353879200137799508214455873382922540133579171205070425612021344367204564422599349644786733592017671331093964213831681578836164041763736167940545704702620166806113614917598867757684220757912745057808175431457544007035627039148494631103033456245043084457999830709661402810429155483793407951156379322282248918389894487204724367840206880826867212685258497175176850117845091323544597991858175789014652689726452498427148711246809640057801733005407258972698012902297422037302861538955244245200793466622180830317519270039895843625145551132832511890802108205304934834822064639928656054753264318721917101987133420903885768299311714911384747875995540403836888909002430825196681516561879456948644462882771065866775447857246914403500542637994241679000712755140261272428147473846253971119720826002623132240150561644011127077296907357466033723433063570339852507696669798009379508202099967028491412025236044911823963863120700939798514014947842823447713699925013033623430032605936536162348145496790139952467152566947816284944912771520417911910094653533699075993318209309443783926096313832553995819686837344153536385410163371046128335583737347408221588585634524453459493202654298962154305776796355184248988746492599613470088668249255676893045396045395929103126856038569780418215744795211146881129633427215995506151534549047376364232200047630077275632584334313740910149598719737418759051016086470644909732110054674572883350047392951429436483473337184646170916180934100979971564672602446413030979830125504266079226264090032619147849913318023191360145816192550160606222703813557786320646748930513286436627684106393195772856418885925718860958166343726658982414980490704430549878281673188495403978739036655655814256833493473088232069087194704776530529237507176762779224465542309373936736138794856577406291255801039515300879341086389546267501128193278493134369939429739501705227208662760153586551489427678181101780862036464147588634597913299857276456820871654839137489174402149774905766103690913941949466279510795884467921291846856389173910108919109100236968068661621869822665373254903152621386786220676192886211460250405302509794196045586636728601195633975270702675784940874281166473746929758555778312901312039817836594930008832778067945099703453329889421849210316510885265623684506454557917433870648303283846684210317623327922776942092065761708655486581810609012294639713704407066837254666197772511837377728850171877298152259452585818399152079727714579871501092859720436509674612621122194095802126426034463224124638084887364773458118909270578200415677441148013453359163358579146296389447571180238235534457768925191602609174726253739090345145464513614984963046855015841666032661247815441171529900526334824329848539573148528957906912977166434081758370765057617131214211741528770091451275937756594219663021112622478565614636199713199697517866228621342796879741354924270066170032021674039348273406364529859769876385712066576600500719500396559177916686842158315386950328991657747123818747318075316825993505811136519037028531821503504742870010254588780891110124901574416786125306794268897735902518097218152591296299923757186895339129203134400676711658050343211399197315422866179413926563869086046224981100886126626416042563330977989419890370059119821439344893543522325890198406943765633566516863762562211236121767886032185768002873449505203972849173929072584579563222815632493959643784496099403391091306300023209791456224973619879126440392439304433206806331142953654803876108970615530913380473464300835965308717304744425935486724995290725760581827291531969982435410807316050471831712035720011778186112031398547307670652397998499152480867017869065679841286438380247758071959020113433793124558017921897727555644411105026111110542504408599539915809556561385403009830862141844855649594448905008892823522314226332501555978953076598574576518515104847600562795566087472621246315488374929779733790183261857973888369514253816371654791820201956535514695789807339735851432613267806999455082867015160628394635472043991378797240927885800367028504994569526070317750193072776367169648362641985437303007054937265804920343038998474637935229237242383047314317303155503203152507678656114714003979075802885275811422412970886763026744081194334796074309646220244770712600609427372928193809090874907733658475135464291440531318012412364588008484184295276163593485371159221294892964242378960718791000689532090424361975671144936105466637936597588608273699988674123883286249880958298146240796445949926387997188668576042502838395799740750519534076063266642687687766368841286422744683862369543369114416199904164967679616948773292090274856421229716603322935821803356282507288731512925886912619012880077143562291172169552363745321820498475330758761825345717288942658854235610768390250708254156044059113868537916436088109501922012048638476972101145059126385461640722045677752557609861156944290089273765202797869657642229782706323059795574820649996008110337719123895202995831760002725796783057278111221551767334540647962736096351903705229883125783158429008359786769460453777454077793324093353278273510210787180754398782090343711583741006294446993776306277095099035767443529961495490675368386477836534086184588039581043717211977229483932620544222835221919257699866921919669214272821054207534417045175929309746213676965201625870457773820748514873411085633733436361346561410186191233890314948999978962733160027750528425973378212841754420152624851688683289594320845304102093517718547735910344688281830387826463436386514961548113703526674625316334244108018682456306127476673602968661834823735470750495151980321307594963615576608280786702135619158669097313723049112094967625977705642152509864152277610470760300099975010954760257431868242669248509986404983721341521611413257523704120743593552263464473562680047600545012311203089335989665143628029689294481785234642938172069716375755201774678021090067799932854496423193204748022735512567671008056133793675577887510691705940992564880960826448262059824265135391384806120617823364753091228355807257045006664058056071270016287742354664772166179934166607169740473462996844621651292386926841564410667311573163805267200220663044380926427302252312661272356678857904960384882355467681258948179724989476817630940075329385834790884864599525678316453875513238686317119674764726091779145253565981064454211325850533608197811781181823353651504641166123265298517227812931698249297979940736152233827588848943091195749721172046993143631361357174906780205218894933676529832583293960409348344272547079390943743702270580698060810834305169129473061505353939607835863603268948399555876062890695876823301689465448193657042425602690308129050467332599622367720888009364523806868784348959444316509894380594047920302874680423269216858571091929271711770222681628320896714743236230016754734336922551754125749241089468624662753911769357076712122472752177343000909737523666968974613858995357745462887679902184223857791087478443275621904959725050037706718497184920199601750422218392737747960022901734544162197547771141072320602720026273365735915690683078180090627367250402735197420470560447548083608884043587659928502500877377140218840923247012633778463413865118912290025482033576911591823631129537084250748178611415908861471824003879868190306525277551968470218580403126657502332374506237661366237669158021488693557504571256679554574764895985730264898581441909925466662867491863523134754869882366688731359046348640460569861171535888445243612806349662222375279930561413900958878138226366619746075813633849243832658377830365791743816274853092153932473750966219032807462696165531266960683631390357885573493133950179327088929472026589212848808417184323359086339586815535990622290566323196955037754876124162977403058047860311728096398614847401797533738135737258307017395762421430290750618895090905656340537832000450475846493014998412067943421566040352982599572645459084856210143291533394202370972898690241496487763885713068466298249884119435921040123456083453649466463958509538745743180802355448297624160112868917213734146495421192530526762474586938620552114352039838035623089919920228673022777291895071501240447872553013426120036795220823863602308779710315300548227401392518175957862446212845009153594198044199531752655031866961663804576272579984484703922819374133226996666417381208005109308489578353231141090210898499882129581830644503996726624446121049963804978654598577504047962306920282315996135419861688198119644617656970832850565816425205596701091961524937879662954616534451489210853307626827767753340462741961195521460132682692939773606731417723083279908701899987990121939628309612770282919808612787483870905401856275882813275715181206950514297169855835515362003779216712241309642953120323760045713317409554834336855026914997357424660039640865940304256159150086434226988583475078645571643365005602327153949091780949876966393991348797433184500470916498654793318015452976891381551298060368621065991198696128289772958532477412313898484140836210674372708033761164699302978914095859423068521497154653161014502299525447744253335689498155281277578659070543115489564094771913635055645033417301319992413525327496378438579668165287429279526693745521435816732529630815152638003230762517147863765375615685334887320807697917066339149839943170497150142672751761033088035726782800123853315031034970724685693057114551587824817987192441232457502374275096824153226024064722549888354706928368635443714173682227186419140538554250109826661742086388420343063461673995225462428742143670218603763806544557178251420047124779296198233286461394299057035395209928709745556301412714461213423793100986524584719183394828114223985015244795402093501518010940370994323805274860234503913341506852197992007708729834822206112518005757675213277920126325942897172504269933548428346294983584614758299030958695109291026596910405520897962097764662925988635183856542470875837058668706136163993305971724754504292967945131980836642896318762542843473746177850908307026425147607464246050926013602675696681658015786698918596177538538180591042299056279477596548594172217940512789792616281817180211127115800082797236230956075860762212809498584458845778332695804009403976411510604915631972074905813356325325900435954518261929919440656908836856474582054212837252184424816228239968704627880352139163287001735330799876968916696180307736566900766999520574787296026299151111042804351717402254701358603061783347636327841596561867173434339381241898840078084032226401988200395937931454084700089719432556415380865757091782858657294480763695821521267252197270656428552729235810413578714237200199197921194222298139835903756925110226006996794160823106108811982298585266006907071027925474950252597874774805552725223240530855854479876145293261423280540223295692556438459615038074430527786934688819001267494066682110691149508399239451551774113323771209455693208384618122724602312624625145574985021187438099600656763682695113975560572771599962633809212400413851319249389757325544153770311614616342464364404656906725822936404625379644209921975386279434458581130034280627222030180362090944970973298119334010686385118933184121016081415061634281007962247037466715148183312056337513674914244219395324509074771305771241276057259295609148673157724238696991650569877816545708555561555782116500343946318071664850343274572626795610181695944863492469243626525438526059894542214271283976993889983612378431025423175714892788378022638995479549777121906334895300606007733042560076928018727406890176993592688332626703869371297578348900089543915814141652344141079101175658026760503258664165615527696648914309464843967168712462052617961411771307171563897649116860585201832611278921355175197776542902399163432286949684620000856997460145358268307250792752094137344192871563632994979573894057138012038487817539666138673542545598501993945114701249955285547331173203658578998568036636213930026354661325717914716104056658944830646024160589363924401852131110671461005273050364916534416618027071283708062739662350005976969761706523861505454107565000025288535735002704403532552276158794545865715496796081272273382144934758225450830585186278087172038072303361953671182800179465655760125142617665026404591585288506811210548537584220679070887520446408187095912453364363494537112602729009699567489480121869289036061881237810690464140580862777786053485120685296018219688161440860074279171954447609714524055525422101056433768440280013755877166013326378918185007000313632701990023470074311593478134333459219455122005064065433426992581978626662856321495531091652320886346322707433233740895405547068296666428980245559614799237072867433134832276925409488686695445448203965657703028276965570686602486077379328287320460445079761254887637317777812989625372174572301993303383501911364483947917788357114031252267604607087975189189778213067457103119189884479126986587931657683434399037993201828861817019437387085896217859946403735545817496025809077700588304647567604307407213477998669086979613215495800960482964022061368786580403860741583146870843161567181186740251753115459488149046777171133458538607553533559897143098091732856948177438802287096561794013986149162847865092796587462082306275824699496903661524754022310768935951946335845980979617294011530753773917092995916530627826122972549578095031707618314046320908225579286116754118711352622552334965810409797826251557196560118953630897413206129952094825361849304559868533215702235520156304206900817378375923925072878692518120460655012259963229286349895792462813354035855035225061428283953856204575205507814501189559369391976460550732684504848350782168406511201301119552234129681955184284302194027981726358540255276468190131322145939164830760867655188542946369473456417114274403784118743744492573103041992041284048604514749180807016893957956273117355513903046886115264674628283796443552715303308716175604094155786012986194169981303300878291896654096507868021668643939793062255374235743657235305524524148852301322077775048313249606079778674437874898134705451028977975055550846758200223074671788137442182733620792981659128334097837584634418149277996330685026526417512771481483864134747626477785513386773835576834928464553815458011505182035007822731042029391861787395519217356219060667153296599133184587581222372591038134376712405736250090121936401632014234561741491701948347360791635309135184070461716560127216840608929010386148923497949574822461119633969756335602671817326772051635971755160577378498826710547658258310704715671675752909246974965496488472321425574647088569827389735498630362841216012141475446952508009393838627578897418751451000293571261026162391914427595446224814966770690160425700337159543968487142930478367848438158752187967343032764422472829538985602352241685934449066439882905344216219062260927866776574724449296163825272945982398224010527900960077348825672669512491888713680034959370137393367394975569120323565942096098147729466933355441393583722450395839965306257259609578719504318894307709962857159727500071632741293430988629435085648598194120915906724373639863003331068021872025807760593372270145930191125261735750799414118950181643206851747903717415043494838234320743132461471992997434578417522154138088981802149219690352732888713615701311898193662842986039845615436422806785392795531096539596752085814666114774181961698936306264591542654532899513518228516941673889132158418073340800674632365208202428723648315711463254056124535361805187568606780067744989622300160761755366253763960294315245287268402149726390731190268447966247459676932959778878386044819811391293714882169590727220183991487437056492458769101851771069351432923224319594200179519908372455427278169827187973215334515626121907095462941112209365971980370665584793203378631573565304520253956435604672241527321670055613266770234338083748392303331809278228042080075903166397171609895920189858795085471263967713210232513126439452517314380355486987947781225206210743939625472947419682295275560735298438193428319521197291402322326506745857223081098521090008175474376561253106858746869117883103513716339966421075183812904073439804000558201372903325402793835316317521580111755813500998445482186836773793379600120156908708225753930033600637868944783402185010910798219919089802475663801788261110867110260757348449027453851991691548566750209377553258895520850757678784524360932770799283483946526441947683267165263359633969063611925802299431506087324993828923204287059111000243022808993762344494799005161883058500505359356215525759173282851961039408221162761548000144399544644721938407402244694031981776861104272033708398947798286313514151844520717389782669724777202070820984401062770963347582004294468085144283253554866625154039025342603312201619998070121537723481124197655066297942902911703705563171809491002095934477292148969544556068601449764176013470217575613162216797129477429217700067261587738304831512423126480501839041432882282978401151754049904421589336829005674332669305800057335255612679476127475611727646494528573324682725779715044081724945503322106574489300914163352150540235314152127733178091396069491631563784508828040476989932081377714253810537625058392258568094535297659408780719114454872864379350598482672574223738616169809849142810566568888351638954024461087120060574281616211659712372329275308255103853170736158444124661382098202845775848199029887187817012481097392541994191872048237107127520012884730806807496325463536736824989226422073899502703403400529649313240165490310119604417689197190878980050887996152984746807415520340034909981310362717462788137797497208250633938188621554983445803679320517428592362297264402531719296393527291349802191094837416583611217890996329829744709013837238812147463761959158577851233889762705121509973776181063749313702535026071044469569242445953953243935980885666359376626643520948686949093099250602444412569407128940298200053625940327071937324850925426320360225596622538332922617822858440031295670844007801177277774818761322912436838451886982420271005074262614662969539743354741838927644688992902051955673435157516674705248822916995078703142391079027040090472994853818201066596063029945943401838382490733510108213783681801091890492472855023377788268404939999193002408288658280014438013721081062928999599230465405806389498369592968278382486077668663264269187570889353139705934721402250382515708684552769428319489476817909634681154225987241228144674550378930724571959258627339332364498415626023366817121692801377123844238814098205295624831517453260523821763278375120054426768489522936259471248047216018111690712383062182059545967558318708041705587082274259882972946143959000864629264931401118647472507050852745875695352613747434832519297469631707112334323830282775045326033354242523370980441589588161823835465436793990451754453747342820748581138152008784022237240200901318812037378314608924872520442508916125597075675380968750810162861201491894827135382588539988948593429692621745771213464969995183794888521437697895301039037527318531491056337950885725436612871757795421572114990653289510100175348783228015267110708716929148568838899315096742300612468649300613654822843762983405988019124450330768826620101878618379170012914707195265942029185997487651339051805921933847025985065699172235242272816045844867885922875239310253944076733349977083011999517020446577426528698655748861521854428690897321703967215556060007011477386028027192136417613898457977568327701856891835811671672246920189643792052372738345123197534773039688227929285880324618548879127592086763738035769562409490207600448513420420520177141518481163542536451358353929520537431791130960857439432186869763224938097429505967423506459048971812550150808517445222097008867178542102163647464516435142091619559476644962999669432498526578569875372422425540883793603519334870946479118169933273233345268585620010613675217986650447429398314644101029938530308158696987653746665940993846254940750433156158451111257508652081814844565976122494199896382268049240403342890374033066277286226940374288679008782621551679862933302284653250137496679216466973507115030093001954017741473877115122958183315339504119826671640107433836544919104743063939595549783255302236779050322727695986518526694301321149374139191990057548468468622350486418927175734631966531650165270488071799398258347622887087079359607785661249799436172931230658734615341397209817250414315031225506103601563797319440780672468151009598510544305594252868834571387434474610965657474991550341787401350605040877207075866895377815354686378869938616124723618863978899795475785661815181265415602834768338262829521231656557444997728175706374224620962421809184091084526629336937973316668741704491569711707979994008642875298636263107239579883862153891071336979093185658203597810188101814371995821459698602670362276663804867349049046503526669415508886513745660880050637458494759794576696299441129333293131032495395795445551927674715640321844693869295023034888779901113000232185389388239828239297238184307590959031975474143076705827524344368528947418473840228161409064610822902597805522438989662302775704515200610192781992216557276869399696894839181849919708757469724935275510173928388225277834778543819539406026225896469012690016517988311035365205161209238433945421395996351509676751286721681290886549686011444774981528106568183931928594706481151895293139532068859029589712049126079554512981970806753333736122997574095211125887958229614661977829848101455266571950552833293545167626440699236314409713074286611927982224892773977699099245920342960503729207318085469607756880463037059072544634093074580317383681036233294996451875151852886317815379917430162499437435048192113474481026829717374625665650879886118546816505613584104500195792191901593273673599670610998164432646975349248413692979915049771990644680383756311135530231052813548932437354453067812932225401185940092997837872647266582680255193012500713228704826328243578403516215638931992149647904436309513801961676087759363938759699757651277125400580925413138454364018522634419993470836262018834532129992001210167320829202864860195608491631474724815871464111796912056796851543458254954463129196551594880923483212005908145367465602626714689155339732522171674120363717359798035600828076452611511266825733213511177406189732726559201629019016481411313286241864116469066587382441411829769741193575934870168379956627083695542790616306458548817398004306474071909269425784408923830212025480029420796826802656166474282982054820507186106341762538132896640384583545427755525875726168939513730074177910877432914161299524017690825672164093463318229091193091473230109553614528250420248653779102693752622134009858698451496678190421618173521961028289265513923736369114131200729231067369035311545323643394336284354140343947035595843938515128865967115461535367789633125099381117165679692169116475982777136666632568506098511440342284633753237137731834905107091556213020629388947674318981729630260482349655935573557368170093876535696620143498027049542152295483413062245345346204486537205588144271798484214248550326122999447931992341384033603191279322797481974064568244583575159632022429607406289598928720010201144172602064339611775465583408549245304976194723958881557785156040656211461052668683286571081938743829845434757770923955607758527495207106794959246374442494614628595737052369757961875660029921906864631987539442541018082932163160963116466854725404321876480351872986508655268944805123845993589964821398494806179120275548224946450363720345368018770172920574758319555510257611375349655880642111828411161528385369491642890669613577745839651103849342094809233035412821772443624511376394734816811774642551852354425883205272665043921514906432329708338558548587575084896893414217054657029544985732780486814916010194180618087032831921740273455457160916790453755339807776568245382191162441146612878046172180603149306846170666775755266846164442140337526011700772225096620362405677746889476089800122617714629202116623634339057471943192553927336774510645150672164618498827344652596855883306538124632183611966635010383398554105332797141260634291281041541041570706641156432796255350657322659614864284762480794354669831738338005148326772203313857987390764894557538208974350237499770684670702511078232925744230432584095081756035450755552587107438847613242234395362659861708656456147665216161446011235859089040333621431863597180000715417995311256762224689230926542628151700936267404701375662993605252530426983488960786428336894548104849802120532615885712273280738453561072655190445956787457964519232938105823988018298768624749333350728442650840345327818518215054935710163688116951724240370509682804992526395436558986667637628454563586983298309859397114711057313321233458943698169552351238475471575937333506743510196887247154969074391113053506052938596840610990079748537092655991848027890179711689899229946413039953823441425086138548663601569514674200285077952547916903833734768598133462241922452885765005327915271967945244234121631723900476089911926111104836768515943454545541923756845389928443195897459989814394704264369756211663592718102751930094754877767885543430329089760411072838413685563932613399592772976064637167946892750941288074597175221464801214223430718536164402718160008409200132952453196438705341740316156957942043631685658338962975650654169168930883521407657777623553750157223115049835340496246587485714234264131426004841125025376344701303804790994760050388936508773992425917783913030414621510948137856456840455621625828960503628887489341855880159590580044631965849408023725804161845385367088191839495986241030628257917141472231442508848856928010568432553938144376309077132650210388290478826973927280247793575352243144830177381742623948925023092563140636621938121286924324433528053412990190644267644573539181619129500273544126579776689487550791734369563305257020952956320293807556671883966718805135092320045109918344357565443375595276993090362104327395822373455618025508376042621034269998244946621924260248296934212214222677124221439927737585388357069363164895509349494403706664846050747648524543262010175856324751974675765669426369448443434416271066820179313571541697853927572070401531570583316735640387756629242726725727567538052049796315258248999603052120335683919665093163952482499226588465750961837515236192471999130994328627940221339385957222136787800264666605761320056171337080920824191446837379682574372189870561656838007764397156430431940296676732628667203544244735454019174123063109263022574616018711501894452711359708059517563068495326926409185271976681218355552097123536289900491832615669232647545940591659721557296692797507011485343242726584686801152216396499542757228763454053843742621911023052822967601466066944366666471786024924213037336057420363075516609123373713693998419974402122573741050479780297542498997275208759209482626466709027372840831930422591458429376465246721919582244443851260542562066644710916431481782363948872183021931391397742601951250706859169080467088971796160381712255390999261815167826080540872043615540856662590338408442360773598932198748757397036146517208500553008521052151748339171716429204806326913339343321377740357418707973941378420625099924863890930180224812764311579149408466588479046813136604881203515984330970675373055927761546175648219786597447655786137036856009982632273451122303657504582855970760762266293703774922732067118167120939950289129290993820648158702733592522677094774572374050024724678226113075726155514514896879701994535122655738246229798346681945762380306273918381881378189839961725012283380886159194352738657059929169487222880236034450643541916143251268866509023505426062312917419819457629346353051134998327572249489933151984927283656976809626836940368781807246095649757126164863711889637425055659768020483627344152305892470576480610506122873306912718800873391764552346710142360270994818604433559924056646562413584560596433206940407529477222888558157424643223117589446688388097962443272525275777485362857506634029617036803298915531946157010796533109292897837477835517133484249049904101642149272296558252090404402971323655264788298188914442563183167337864229230100917295367225622440197682452281680229081955129454798556354321118828987477337158193792951474703547868083859875818644129308633513990720779198256972084819475296228604162070274065753876069680061712570594418414827184986497588874002547083065249411410965763169154403816294256526804255259392226013550212148147677470478245334382244402255322286242602601308312467171450480761552849627506037064359647150556776806468384011127746093384850704018854488201380372908713615618806709356137854757798348284757242359299654070562344200945485401743068270573394643716803466331718142202065136978692210576526757209924415175852523935870417408139548612488098104737792836205167978886324141485417223327948947335853242143975184592842248832222678274289129102727700801040378811347860170460556834281934399063482931978013209378724542933934179174277352799835733229222005009152060508202646495182735926579696568861545975144266003733828535872530057728510981789101241430440193690628519558234306443116152610935850199106694029616254890819916469352886658617276209579786871132273206779357048402993012794203728793835524569423922764504003986894184164420591765642785438855254665654597910607370753533325407982832233690244101460506001337518204934786305926603429169189940613310928025223088098846620035185312436452071301564344867124416382307941257335994360681793920772232591770443203390297970473940390356577615081291020108202830026965894376089952917814934845252965392605024326866738750117218478780151194742716219372996282486422799727223660533743224043160589576022093708584792411186734453807534205574057578026799905943108737471050426486547841124923829573802273647891943613221010810333545345700770241544769880043877446463860833111384869539477589246859063294264807094912008314291810474174762977766684106726467432295455380006981757097324177869629543695023802559335955615996499134720228529483429891977949977186349473115292737998803123252561447575562625178353481729827021078006325545297341030516643091739449763184942446923100975121150780718528174675945671428386815682213616298440328906553613551140547631314231264858264774689897786392370756534413354784331995618494533036089999254412346530640684509715460535637080730329319411956968691764498032521919226298917018815737278871467025933320042255208292191231039871101164998977653421048726670455499217196114838365948002288494793321475513038892846427618578218736694917774404413504651722230222349505591557128710216906978500445222793643196324588420691660995514120890597462653478423586724575503619403675851794034647039582631248163771425333140253665873337255277918302497427280330147067880870778795889732684095708642366407267130710190705942504601349346840702447409615824979506922861685255716295698121571605902776809417124332400936627067526882229477124283355892303382021535611713752496519330676434326368952335480879753507120053749512331419425018579881910778517349042834404089884597356671391261358499425527338145301264200793604194875394716083806137681493956980739742363989516197751591384363651475506269883628532923348945070501806127114752266350916468589376067173203703827576227195099199601710338160082469215193165911400514002316523169987525656512135285844966337034111377219747344478556038919695829292871145802672568976341721474794741654500727552112491615589639841023188306320484799136769973727224345596249499536773698553396810414365107888744913506376136424543894113702919086095702368560874987200506861358213753582195347189288886136238431781417220291348602495056641979622411477732337830113246866827035052049505457257992546990184765478646750988943526141881122752872886109285299692944378848064498195393372672332124887029582707287552882970246945785758389331096472359160314742001879562571162535418652404833391877626151382814991981280031182375480051885989434938404144411565492311832524758226070526904941074869661168638252553887487969316015200669957298470873145618364184418653104272337459108582872317599936975067149573075575375058989189637033187533352165584257331910409553582798414703852431158821732113434572277097506803020263938198550153034533405065048788350617586539274938625407880481560929808023343333164775762443014058278760271883856437155005331813144464175148529971705525472429755066168760399000743917552608279761244789792912074411980753575516428451384925880478301339218917515930449149240248945879460162153228729833276099106504070279441121544697895867797788252971076895531618695772860945684773628119042018989695500310528189899113469783999768294378391788444279123489840575989830394169958554040843446004497117274648245287787694723384190421232081948240490778002564199566379184985333448302492466561738836095768089657215613301563313763787498378705716311928411545940212851485441869816893479529578813918984488934164888288733336869331718386650324693972031602877074405213625883077866289411489653417403138560634525734207900134815298784097028232960552158920983956152545825942632080597687387161376212516860223439678865436343510376859983118830131056979898759625725017229800589161091477874887801948060565815547899707894545734275327604239908494804459477695216343064040872809704920879692998853838362094031330750136579883182133871902287544405952312244178213961469367543461560792338423868149192345046960157250397229072788770172437693117665996655315873437982580853043135125996731025186667751913939160488116387106326649584602716345307148655132471790492498033496176395004021951251909047383888573625072516966599145127255480653326735742281964692968329829926581751971602862589903284954639836071018152986833195463796065983136547453002343873224592996634292698110800606120225505297917340915345264179755292895355755075191577116152215458166925878514334900242029829318768113345377031989218812001631643333301883628838720751238967882219015395187811308547153879219433101569982604782003962239138589754703732919209701373551759590999148687877870464571680524684338087511813922821392840605054925520259128312168302423869038907738214153249311805703004291450847552581919199965645842288081176130620888682741105853500319851066667275919737895799158257118390005893363644311152776533249236415707261007369320438256131359622997850373628173963310635581136243629572915391402131231347198491481724256835875704342690976662105916333788060139976418157211113242226255657019886078872585701121006450877489955813463880220226268014152904927332095244340717888897783113256787745632927064177656098557770132055504607750933062257048439054979419526818738977942963463549575512971543945877038955628802806664653209891772175837102150862629125068980110452243049804926156020589736745813315365558192347579049736541815012484515191510035084101256360556305055283125166530466879023810255117943244825859773894855407440988611543625680717216384483076982719994517282361470688004040869108532290865370528502401470562045742558410957152701019901742014386615298357510264058239586843304340850180166770861176683942984783960274153083164349903700609682742287264928175465981685909645466799373565544522412201785919763102809980022714602563486405160086718966890419593365179646639658495438394551476985306508852733864288048557578224273624327909024001950654499608077797963579120691406792391552431369968874535397912335133439138824313264548922446016110828309810235661480626625644907620628951581506420102639182016215662186839155178102871810257706453132036871239299797445845288463082243169980924279510010640477422932307453732398798676634577424930370068410573641360302065058996457864905060552490295267276462853989113016737296376956445363011555572405859333388409842186336620905492622732149703239286571767700001503627696185244654507246433841591126503556745905636168760031193483918051164337500457888993877827597498220005210663730262747002217545216681233701465796185368231706128318688435985486829408904293081105251274875511533781968821680163751469742483464507125127820644372027102014471505806752423210354748741874116234161273350089415724313162410290699345242682740896724836302308340291363958789374425716091992357084263094640719935333650344452145845937922021996390477959400217843359579806490746327070951025027389275987833001079224730402058137803603176510132014061483560602517470777501710392843276402296351959522325766121202166050821355386927529074127945666006624872826866223286572145335192531311582041586343816417242884042707914623373875355435996613763744348236991244789838913314918346293426068711522334170223287777156381537232914146859324043328523810869176312265504266316894089131358109114656857848225917746943029342602710692277019980812646188948550158287361058383009030692523988810625143225584365005889346541993037704623508485019259564502962624743893280238012115321796237579206498763958982258591544166106408331178536949384513624144240432715023729768755924244180491881014524396781053356818670988016246435291316347697550686817312630898911605050743036025391864852147218625726009064006141996902700866002359678129685191651279449292039159771653551151036964464107777163594804498177320776264619031194416185196644299691827193220174836170564468427678430486977310811284798911080530057067599495493010600591336768952127662176865002503794822152525537940776625063763603223652628157734384145272332767793427839802797577523890820099866620856153343236704550358734329597038459516237947123809211040609510909353382276828257899205045612550992816874846905744012056549769458069397504862343909603643448669346171461008179919914427910680906539029654521170586894939237135450416864909467147122825841835616243825006980821832977274621427924159317730952807789599667116088015705482818327361810852579987624533574573817200768618757338268140926010252842291841028024005200349201292477141607778691628867240853473139433303770014863654945935220190067835119814194302432739995069329052313457077039929324264903739115250659562644967399238302476395056145797804284495353204063268912595586496260275965037043107403448349779202651338067483382536672788259875999890787014131635248524197791083597839318235612612135247318481488326929018663661802708737883089705971667543172213073432080344932953672340069199755646622997015465374087950592698380023952250986722020624399306274123081103978062263030309103426967781928913629713245301195694583137627344414880835139925866466757178469994886011008459313443832473152396466735010038364239687248292853517524132287599275241857771548024089782863828107261430973939232597926721080670069423046396849875044696214783003681824626207170623830709475985273648973957863545211093122136027317341681100936856119117981919997637047911196633237917546500741698396670137788922429450147084056745407947302474760274094362264586527846552262042536341465106150361699546166999172756815249705654287934068758816599831052589963747844625699399914007297590024855196704530088690261051320358760723326163559194402378375705657211495025657063950753304813488816759208450235398769505142886154116938017963137601477469538494575896646950024680536766619784551536003806353318162379661451981395531810920236518276521548485157567895355560172742372803439252774979990100955637996702575282122961452953065095264354725458461988834234659395804748344630962130788770364506696748224268895947195773540505109263055694944759452051215488819753294759269593813171321616332135324045779041652123258915497973915605625071029584504426340899137455624456923496727174493823047797871181736237303783571554583553520879004883211242539125791926476375057508123057491343270155971057047490993523913289775394555423465288128631560077332301543985763042698337398364136609795348168187543069552976936719692124188836965864814142518947560641481039778573282417809320776554333994691104143309682123495090738984845872616446517176688894735742184146194462152572751366236739203470765751826575827857457697292193332699608911926246787837398846351691383723183317798823379457945237369838979579769793922458463823051353610383587812701460193638109740895567470330940729498305682719282795102152602114500682755517487786274615910834524226695337448122983470545080081745763856764349211353187586691296165426668034668255605763769491342503663087265334203688493276378680059251507594758136533556973806434159123670701882790834751146857657874564964663614930525968369721886868092633103231119902971698172614382609761499173293563658730868047155911061773526079208476941958578182600816168500888592082794750036276814702803341595153293669526764698965820516243480550446771419701190120198428944294192007356677700683411141390513651617871787732054291510099600671067757522902731274505603952726715510139157506916127581469788756585257515091112050783764352570276537186288354929538969523830700977181981445084145535876336055354831566164753061956522310982092319345436696381157331484232126793322368703413813701236108700398973385332728748308374512314729593287162278253646691575216910965269388373386131787995280302080764265022565980059310606398519519114056400037057129582925733547401132763467082642463578835846891713370445047695622181095415901004256567694239327932590420159399449009666447409327749612275541083825649705620919175840252142870371117557088147724450175616288547856728280036109009910334493600705643754784355508765166751768454116358550688445055182840079796741172539670185393815147052388704761572627391562059683698514518932806858458016657854598779342774646588588792405658743718461532371971135872618155663611984790634257081645715079600857341291724390198045603544627870582625722240429042811739213359167269564915923251049742864172956552891555923288784865139595444587247209851601263159735973348197277900735324547379631220422727735686083779553589045333170628543563095995930017429848097974080658534182814521850398765145321365205142835945670213532256441211649718053784490905910565477523087731165359918075484460437023029276863022858366938559417286207155315527515359419196770602826373381554609729634304628732249959604799022546547293735245871391413569047735420256844705426163010032872373872540092188069890095507051466836186632570432162249066324620517370935510468574531254347897365384513944959751863166011168450909427045604528653864191613678600166977736025053275756946094777405277051505701679026314309363911160702915747659751194518025193063389549930030407066236745280726644776198839753556269342884666633944768457674926010272239097934465745330021272262127505332131973310916890814999120909527143913303782199751040193369937115780014344346442271909667898061499647798328018317201730832495470023468970935420251330590741056935626730972199280449089595991521621112201392559439116191857473861247074373688680820576141986409975983568368299767135108267153330177041161522721044661346192489331365293022512662239933498936874308553049763792389001486523446489081189278206317945544534221792466106190959577911863146917568739396365936991433574100579835367165593807330314805522717930081669654013815578658651605235291718096476303112942963895291048276752948534603340791953742435545793141831962688749219937976110499612259362763648607797991634984113338585217810876418952533085623578819427806879160413300456379751755153485039243593136142665147785483771995909167257897863725161106330994498136152513755049619592507396497167840850496147148863946355716276440311458859896707900045899745683474156675753706699379044948541256172719011356958042193063112008255964163078965092108577162054031167066882485394819099123524986847587390729731663759800272278308738757365764112576990992068933822204064519634079475211719024427550330000843427260166611683204068704435994543633095803566964503145219176998883023715850922583893514909008685777567132632747480411807531678895550357755016338377180686962767802007435418300129590424518596324237968085486872059965105164160745807384309307968448457292613324859845972761260298664861750824791879449365129123372516305902328715611112435165976210639198015218565553773368557293763736279231319229405548968772204194017649647627787004469916007408580788162127937167774925563643203729569368663108359232336362461163195278057752123303400297741070898895704245048519266867233490267217649480041201635159406881375704199584617260477049098185094729456883412713318311339449483028303463338731246704178721831828699219638683080304720885125955199677000496516522551474676589496230373528201393975422232501618787073618661694070514843286374895229709309590822644572249639048109856424759532265558475576209614672719671432151643417891607945099306008843590609553304579339827885440476626928799598648448109460508688880196174971407689284719606204812018340105688990522882153561964322895505809853939601842472145859778538735078160057660605299966972588266045983698469053164715105778996297211345187449201888071597444151598760882759482827981930334822331690847396380879197837675486920859535715803393764588161410392366187562411445203815852423230753264869502873698846425202502590763807967440894498929939192946825771884385529030814923233378398750012686548881192216889508209125597348883821058450417246493520633330664818797112800357305490653269521259960245359667340717567587505813437425387747207412168783116507239579843897195499622410915036547484857658241531700424309870066027493787049340157934320517342142690667972209745987996479309693303504478451696521441178281315564122715576034103679583174769997679241684066708351300350414107932122971273049450785320888707441205175507447418025806198399735921524916982740279799360796023990557829682809854841970801042803773908369619531765243380200599501728656778931497458156526507592049199565876601413448690876896725322474201810152614398558226796917330253238977081658095933064598307594230201021321008137554724452626497323986168560704288162573461949019766528577139405733761594330563286135328794109363136585527290114592350292030538880654369403566345415405100073592667918000575768566738592325686366212983813737606098592243819329384657082037590191376998421363845559988957638821244335670352637843693147653056727023137610451063520051372374039270678262460371569118777600510169741024154770730804541025909919562890569043141909333193929923959836806715778487177093629900014434489406922270650348855840571679676689337163451677141595482920209304922435592349188610044814420826142895247517203113142567104552374561409365320915285324381112815084915591905780123996782756174884675157247944898961340965120658537673421729097622526334850634051440015352679899561284159906157872405860760916441947549283595679130865721358644388675920139019494827893069547417265457851253766468578931098474447222162737022837403382550558008493017512075623893602649867944145489962640389347141426126058570121754859379899196532373610969984854836053033639586637728291713878746443851566988769812331681581436411765117735206209529048341806670064479585396815768630237890746959986407947662251133415911176616834934535030486482600819988544540356364854556579381302798633412349045849927926263612715135568953164870018625285393542175222489536699216489297421735213075972957762965260271205255680758717422913758767666059031092480611084411237604320212530914419363687109567923936922527502073863719241618807128180468398043949180290731749247335171079742060857748148119240731283970443932908778514291424796192308690422353625780743063495979188800099511655603304598277595563618429189210960445556858804354438096131958334667963793684078256340748212219750074872811945052078467221168385915094494946162116091648562399363085203397092446682107028981379224615009353204242376328006779583920636116335449595959527395795394451017821068845375733381698868317458688304448375523191895052213212605232754661936271213100808722219552482953078409245446317285266482500386793110806731132446898497852373796286899559274238213042275126524831076600283214105044482455383599431219019361218105579084680757944592345875128651588136188031721686467178530852619488503007724777507848536346170200664413051785206186595349614008113252105781108061469346121962932745298947921451848660775038695965382452432071202348416133609216904072664624897979230207741282178410340686691858713268003537569090126707876490781244205873524993279135043702285353750475360738112360528823767281612562221091679152790003494110225124783956115720234122457781131589494977344575378161176154585572013078723690361736092495105994986574990808197212458879245109769709420599111288037854992246677430517679857468075010082532774114365649967070825777146716303340278347458268112593008279551624179117023480903664624662116030898417224861741637820047916558457749778621568531414062278483838322314389752583689494562673436776260342598797514580960943871765517771844499816952629100358977519422578905641989118866982627017963095918788968689265168169234478138177389026708736942582478742092690611833329924168460141265833534123121117637397109754053876912587799271395607603675076339733949531682889722613285676849255179846218181880706499853823699742523218838455808462131685098316912371759627165935890050704924873000119302739760126818524839083936791794756348573387024530300065633380798557600539158097479337343111599005546451577311041958524256046375473259230027187235781228879554006571927670427439000281414965720787424214140339031898847888167446326002858492297338478818033279377177531037016419080728596181281092976785750941612237191506427634171604668774877962927037779124256286327839193260401612332869694314553690978391534157317376638544936264701920311256586249397272680433025989876224265718009372124312847094276226683512660488113094417436796801459036743856841468943526433557186263502012622258983227869771242680438878100022912899608542555710930932381896445353218330811355210443514625774996001045669063742480234149237501365184130612604576692911580069623853117259774281911998299214316583389129850717871496956745930105875548956204050298670194397696502330850332944695844848816636717796110920284765176917476259364008454081579415031214813482083714857345047997597722022979857140330596559055140719684107078374586319962569709064576747884596199916426966861753985420541807112863543430639424507604566772293763650562140383329634456310750181564728772539604085197410040647248692656890667888113987553225169164885967182131131948295034782972263759669386414565214284849770919705715819553037568329351728387172769548936141679392982052475777911908521339746080030975641145405282192132494507586625185223771306848517219170967239210091880268019408863749389407992919324754852400569359486806169505541167429196399610816818528984143155777888681495910280732701279977899054509942068788043555263864437226760701813339926501705331764032839476079215255038873111437197819056257707011318375306000845908441797479905381954544400190535557261828953931914595857931966597220415574800396854915657748721244476140007518066954479226847732063880466103633261429914476385484172152907622632170133358066075209229942801568132447363530887087566013814354315727642093449193277424620556738942934072430716916448524270214526596138261005671973539853458374395425220686223415697674497581649699867140752999955007244799896635914278703873403627182200392811026829688645728208262527294895595490027504623500439991072813258567531270882277934226584569125893976697178575207483803715651646636673153952048987064606434023156085225306994796418891671380275425061765389512832461300353665324089927545339238755382827562236013166747669930844581984751350662897290016575547022400320427083771504344948453446571368433450239498225122989224998043166106871547558434038172684296013655830702113755137389131716712278944561505987120187913031984348025376713956212144194544815611068913513271786464102921720772770466999243290578434204766474881107403903234515845051027412840527718956013627781656128721341384772239908034180245403951740644225287924649622625894883319836345398790695957340338883030447837501714052558972208025132868620513436032994691524831375601287245193689763237689314314118653417520903759813086798252038213555043254922565092872812062329423413648335915993671660931799764275786466148948787250281426923764065775198353344942302036361345974690082816015064493576727577841335302241898300125436096573078043674107055922021173360064516087557875805842372575386777474635335671130543589156122408430432277968814729537812842101255774017556076557153603038856586162536748476943969140971025279375370744900943598871626648104698173548717381162331131885078710377808585408517730749335491832914615890803761091629712488979855621605850049543158400921836880678392003995054129738580197322614831300395177532323826037842481772048668236742949002703152429528668796668823145957473457048086950430826791615619562678139010759853777605276194994786399505208531542802048174103545500698081474790442841500025472303752516313566669796607460328600146958757130644062532228810705218685143026293274362741067853646476175395670005247216586431535541566283526366679310703601997872207462743144260424639942049266455610014406391912355827119076559396251135259672256376304038185080738413070806682731010975285999903595894587536080607045793288448282847588821500297786853985465134096380333752382843302554286798187267170274214821082279216351385323182344054549568737374556589350500364993716162070939242068218915315350755795183933659601869654211100210338358656767361934814115147751961659512547894848238864269614893459547250410331666294296037913892095822836007805780337243068215335889296187652794468279048047023973386251650019109531419315833349356742017412164981099517297399161561468964724819617507535793242388916629479911898343540558089776594756713123868605765140589978734225779459912254035432135688909605371318324783664914886864854223409630765069466938661849015746964224760508334320912615854625699490210986278606152099492882624917139701044476706418259625160231496775531191362358675239123998090406746068874098905964251541724982283026284894243300048712385331134195427268371397940928521939064826482966723217749313318002084731925557272808053897529033775636101759081914923023294961687518146895030263290052145436189176155096049688555084621058667464651421728735072069555448867222281772107653945320184880030734313039874094024164855586563682274037766354672742711740451878301163711888880101492904089513064354632986441195563580604077708494973121679517820431194421835687071393502246540890813088393835619865026345027368644504299654425661257797396273067442338575252125203101729268993444525793756084634710225416864207067445569071459139015724221368203061036217177481892674073940277940886462587476055349560496168774377401477452834825370818088078881795135608047326354121775070661572980157305572252267304318610416516039312047677670230933150913967089797544624363338432654399055695212044572734432019632065132274881381793238479143769580939642315448542921009307922861456432903197392790845485796464550518942922769204718868029800519857026709275541377482921955598987340883106827206627011008912883432419183986760328627568738090569691798631802794960411360337972300954945964760082854308197465593898067979656403135317314182849273283938577892682029631913898285887005853246738938918296713210969778729569851238729282789397119340257860764892975496795078848875890847873633402569501658761312941628729199785717850958363098158619825668447660305301815443542243996407546460505756134432471995664972752855517875826595149778858537779862441683337161600482906481763341491944610725219340880949877431013165596736239942761334623188311334095812667925838240886581204867427560195720102470541095699318407312978250013203758350579475285107104439242530053375053235230286384461398534204793431122162895800698193929929796880807876340314708860914693836910316738672744099188368986637939692262109936337853599694890973064991145581597298779715066565405258528168403013792713122054471231641716709830024800541535308421677890186247714635707196578149561405941886725109807647524094662392914491611192731789056231297099859682722982860710338651334378338218061147221904219925899834765449843185257532739992182237189873204055551852130726886540316025529460920995601703794904351405281335349128996526714669204837420312877234948411778381298942585790670644837578019675974790816455836271060925610549971374929958876585308757209507456885590610344342842326259307699014357560100497748711479234207222533697429702114721368771578216581982322203534729396482251776150323558080228605838900379766614074812775349498031272535621417738966244199757070290238651998367960609337503010688001006840741164818176323813279433572508201171633060796968820306453892543577636379410698936768264279305318683843869083897805635587674310761890842131436907965458528565939324309042903581554958826366933907281753613336775482440137616859471647150659969301162286823200389293382167019707767225633461483728896349042598269134639477665174568770356120683531148029173739892610255048526460117306131465331714958858945992469294784378238224598418323424232599217406925674335803737779983780434184610231885696153047568048735675672259296075302830772864936730632970062428872275244495114765566661693384524780041787294133515165550523042145831874633823963907557253442836106147957742244644879669421888026790604098460116624778412602639079614506260580737829788939586877474485132470953637163199218083314130262122740047523485453040392801396910390420771837698372585286258901450194826095763855056225269625831550605250792063920313115864618129800092649148384522087605812351291325319930192836745015651259552760342863996245934163413195399209103429947921271918153527637294164565722887487248763828474044636961917408348216417038052460835425946612854738598441902677761456546944616550513937622930599241711868090627877300381142282442065601319814527040941235506853375647552554228159618251135171732309985568471131559635613546665274846027432805085865166260034957157978587439460160955621755890263857289991354612553874218064877644094318372591426585963969652262777736018281474170240361561351257738957476871899896765040706856342384877972876963165584213297703583801126234391995738733534523343617205664059412804857263167694610997648551470137547590237960531303978132343652853587232512293055604309318716837019355646480637670034926918437569470883261896614676653993118084710326587081175298210608467940108974347600098536769208260212365040297041660043054613493662695027250100559234837597895928305583716108726675898322705718703851231481584379617301379402758660805687138906921971087705418277522207052033683548708008233168813340565114838567197504549222105395636124640836153341406794828689087309518219893019669414802495926257802933266948450374257425157388335438060957766220563203313561178167285436502327703195873176864765937745078966808045555291961501349880492327213448731119016241806279538001967542086461164804172304648526574012045879104550718290802810724487381655871983434482092934274560058867946401637109913240599023725819946197135219181612551502236666705986658998922309178873885016501367260366599156656366279237341628810622936057363410257077254070927534953334906361059385634285867387425939095256200684291886299079166560064622215321151130450556222783564195322325628675440977758701680481809260482660381726008405219251665177277277378511801946841295099586494807511268159761537261364088307543838742928809781605526043789069175920591613984632603885320489088699962304381354732729976810403688616506283557225934041419569584745395247681835555094861123411381444459299810602158935649879067880197589569801810961297134266851056987424366578972481317084931783895784801781283868238451305471814704852423893826272973938859918277975856655408106063363738446924716340305472050814135474378600290987814782442248167712808482459186446678159829786161337298065923572066245528065989448766826081088486181863620273226709704635099253314935822759347901672393409741685192198711303932947502414780863160005348852266949518008453126411892531516529000632153860034606078618045591530152184244929295247520559879075357450160147224996457348973446045426920806897317920008700839889617149328638770582683489660454154011863297575571768150040690838360742977685163042810526642949541543006335470149332372374347233804152969108744072222604971106317423411296603985130423726953165045301956332179132746483483031433992459612494941063491478966921959809537695144308231893667998018447155811023189934765299803950640125786119985845883682445371683402892022676849638098809685618371246408670373066023131131961672278623708929805753467023131671204953943072133881264131776748798357792377489280257075459154943363827147890476203632795087083508135614902552060995509885826784954251999261150529899055738361329471792452593062529251861408427092935764008279044957009746080195206781105525973623518258500711385913107388300760153834826158302432075371652815722900758760894939495463233683085433885626626750910624208083618438295881231655177120960523599110949703762131763461782902966741934026922504873921220662110215321858838007156588439116030277476507874743917283736537602607267264398240938897899005689002233985809772014245566560668299546044961331784940430247022982489104017069283962981087131668002811643260417508012221618273335075620283120020926910191740674916014445815596710179423735366655512061903194995377022595593613860253157315727868907358887198811388660585875593039859527641644642229489281063158476785379017085785670359458364708689605840357676236029905324488425960966558138444209940869619192839420848470992404502593896650187921503605291917762044183704254515068406331942581680485947992387736237905795664683878819053355439349726170782812702911730760763919175202552276154822364195290367359436939049046190966525355783919547911817565295095083460682279229122439510322894420906384921225466225815703463662064069791182006073291684986543024055250442820240873712205840152768985994931674405970582277033542496684921234810574073378622046435135318765929458816797144747458965601415998383931072784386772454724045673961497640836840785897823862945604182896332606741643948278733262233067832049946168891080730019034206910816101707927593374326323913570342035606958418304149021691444834040551475097269705340147760289579987743948740339628401970570052272157973929501873998099019244170361049490105630179713704916933994291512305549848679211582394583954823447671683803302879218753068497570325941027503556636122846743192975631892925492590877970112648400250364027491077994104943632094745801793430644358083769114713297525442407717445676698284995101862893797959888834884562658782093884993270845767253364819453165654834997518094465267480459357350112944128205372842836946729701495223009637933142277806932644370081370799815618480065810895375493763729138817179243171689957261236098782732011216984290066838140274208954942458334056510652246239784736387663657379132746119781663476712012887093316632825120643196834058447138565706374159413374069273385459226512536403726864099222449585374635070370120995284792457991737135190628232271893953723102958536231250163841754834011952468954340624568595844787131291678954819370053537740724108064669847579590646179327827779837927856779156742324930621881698110966673058449403820906792922912488623651718892182528621926277949222295149178904115376018385114482518737396578984874507821893347629018881252740145245021527830280842948573744314867195317852107735959156969069965884454326178392285441934139555387388868268837254525396329576297042520296546178896302740530649030715405540392091733860951804947042219291790220246995238249683264247224314183295919656595864168358642256424639272473809407998911505467565700834673878480602513283761362138319621411102275323389575083524357580050638699394230723316467235810457444107796968077459783546773637962579654137833178142626049513716632157207150839290470894510158023446507106319632617999721171685718122562399347549613394686846624543805194354711369043798288507386253457800505036886468886661347829550191649657652990942794905780010193846132163573694796087216062500050120580463882582541943895597645012790348506785005537036787519206476549606586397836289714998803181241412695099433575276383408762708368595348537248239198511796520272214956185106129078626422330705915373200246487862032746055299670289639970532151533659898361640071040213240264496629298402223398483698732549748191890101904271262522251596838219105444792949754521221637088126139062776231780229524079987081045879107066397973918526925407315946185498327003690229448431822492186467129093440926981893129743154140031557989738738010532289173030078256678007253138892575896742153334564923592753009899235989702053797984892846849504530586681496770432603375659878609859495107731652097400756696240192394073775531214389176083297597474539738220127562406720047815317569349689905955745822259092780577529791548439473800445331876564599149638637420684979162144880571869745123060479635850838985400644410161531887216108132369443077642452683105737552839686851989574712761420839108567913061161484078961515092099626552936793124186101162702401753125314529350054932514939163599453586883344704394666209262102293861900253838105145253686743691881775413352965829713280964081150202067573074939259182090812457598245733414443239192613096664264824681765769097283661711435391128356631475261956010126073265251705272442393464422483180642272563424209868322702207502598911471276655196184828973988566656041278964660899928496975741392701894069994681940432923878829437139908514404416769385314618094948671259499681478883309604833858106659124960956322917996297217594558956672204721746893865910854663321277912582587501466530211676363892016652507059556213037319762711793357345245361157976350466982786861964250072677580834884349370971226101383458469624314970676489383299659233707163651222573773808800854694583058763321435817292639612676810219049784367659740669569582886572365709202724933323262763535951969146508518768935543911466842993145470855407374841039016888177512248417308414554591995400547681932473579276426317576607895476428914644398849422569514550473515489304629686701760756180398349175855941664185513410314692103854644099865402212070322869293327045416598032723018905738009542015574485644575979557873733091580896778859002287589918288087675883023640164980874910898128484058411583329749587976031624220327405951895072130556426443067326854380917781133120619182089124967695436248682642975897456008387837176552855110905057325900759878446576906205058310715829747054668191553077250486878593917021634247770383245433033365514544713946417878443533006167171218649725830952645676650385915445620421766589631886357915033379290289127091871781285100256365596587470253585056983555302793636899454871421691858026625496644369579316382553793159754527997284540311661229699202283580740520395852885117977321268845480618131384389427627817927443922325407256903255055056928962128715223095898905490249802727358011276547784262230545301787577236255039566530759248474819094926523412332234549051023679236924777743886810749802287766721838323050932122241097805349365805992079705912365760797410193404307113837726937624378852259121996128785282401044456116345127186015359847895982804062376725208231121335465574268752789451136107930037807478039126474148258333670554190167528522652515012205616778746315640917189562936371106355865099512920421812404719808817910352275597114886426726515672503567231102780265564727209305226643475257466456669206207858742701609992574518518881634785077279224446968122746320369147776064586862250087007897842139314255627741001668239081617203135266743352395354523916486951671119900140169727658273754512561075790633570940004355483841524496800617884697709205953989504391833095615990518596422030191418228396512453910525338365047781227668813002320073131251248417536236204309998782873894453007775942171374210306419118518448764139900346852951711028081293569666313190221268939005309973372448588596487024802230421030144299416718970078581345083845288955351116051205126310801327962925238249075682797423629113460719590408313275182917445014991524225231621362131104432616060740281907496994786212063836745505217937510595728683008034688415235244225123952023646754095927931446226641049203127558372903922640729980728484146656783503797850431361183306119561565062643039540013029788771807271891819719433157532578894047180005467588882648829543929783678161575796510995603501195839777658907152273700451660318858208144243184706429285079421419218932760543986133104080790507221208421763610696866408452118041272114123067834082886353028255836359384819446630860054801726538407844487047338563904497077033028727300616805656890771949403290779677611513328963022633619847352614383628752790873220087558363823239267772321918312960960155059818898594444185943046707788106590231026660062437502120082883241236877495797933957299207671718408665907413123248824517841897563757379437486766157352802245283568510491237826118642305439341402135783739029804513463302341725786756186652319171194722699037653441196314487984061329893856289793412694085284718244277315784520640992235453157659279761576983265575483666718647386055416994591230696635467925818265920958298742525528792632994820844821218975813340963218906317946997806358239857884512542003751759752478928497718572304829685672837960720156152309819087422862166851038593926944533654420056751399225574031216984132409462737544483552403768724534111975499738655347636090407053773857475364662864864281473709218988646718510721774517515160751707263839122681279617633835476314103958573185096164409574904546569475020778017042442219835336324076255855284460895964481865296309165364849589963268959081386494175841971550139884019917709912402011997325425656296278835696288304843715929256423378980177590410590606372858308553313563189024715147631537758535130123776658431276422200842633314322906998399328099659309120169106064991000353946448283128601757729841352063598028573386926358240123640457699565479844672056642031837170551174373006636741721704504948134923413673832203865021595593834903599182147753377401991765492006205126808071395871054191488351218945128646127918230494869369268194759348751227882100155902814662461799077168398098482976951892648748896703911216899877521649266408802226562282245246960308834048829836104942554034269988060067317488310159731745344265287156971048091688202776970253890861922473542894060993289419147543846698556393759632845794619627205071344862321272475915699191487840953788572828015063027394374815555060148760714023006709308298624887132193732159207239540583166654384525771080511196008571597455675690084365255037519639513663945630678433069367161884210997890260065046004626847132991256230600653660024379502221229902481697756176476743238524342853384066403541180852094880549426908212613767264210842940314670864888941905501040667774297520912609860070801916757869600871747142400028408497893415074238506280266975540319854944931379662897023653673965296316701474019330189137793275003424059648003058649540161731802827021937896152748858483640790615354439012885317724816656575119044701881209185488268223700582456516117657756569482150117581005946543907137579165360957950125473979873393553617997477854692375324776732029134186431006344876064568404111870768608783850177927414882422356243970065141491857349921834667324853661018110432475407646654631349673364953061391964762363250951079801299642862500397809460131963917197535721416984044459357762433294537143417473786606031239368072966854697591132472711659944618082773775504017989195784717864412313140331764016259134991864400740888447524084513252482692539225393958798370465130431163420057695497715839929844822162366278112166645310385381627319907074984531900337858608026012276758695433046953711905481404338573148963386270729710569679754284018197319546199199641052418448161917391803887100409148532052280162652089837823857879108518886255882528121582720477864648971078947334621574260614786534811816872198245981754753795637412981634175266518075964423999319414139778606338044017875346049037740211263132693346903607216231310334743813212048473647228588605329375057462151909858862288681270359765162445972658653503681946439806579973278331331997148978122968279675252127039671713861451992425936301538812653245793721763780852144831838533045232683195121718647506795614993120019274912612055383540455607603494588488623399975529410651428451258695100869949789456759040269363432441783465363564134987861838966823271701908087055630524274011399727749922790554645891379470014546989871312938598123092523808947091293494606858185991908187958888155897995176184585992009810980339309553895933704708233860145124712350988161074034833972374702509304949109011779698238914075405877747915297438074226173788767864755728017894293526999234584258397757891121907024986050391300518101824361963379573256642583448233569373897743204953925202709418900597028702948091898423064228404843162397283454384383057313198405404898305087281906176382031721631044718013919014612221036590446839700810596705620643364182741098834939641171392953316038491018632043023432966906853710306023264473301300970813756923366109914835597082177537076559565920601857375417374439090207815451282689470288744453449317602553468057438307903155819661981039739046003739064247770690263796615979393753826191630417590074427780926037847956928754758481736800708619119026763384680606391775970939694326694323716540716836249021649531711384752818767195865322380629584815422416915613241629955669677687814641068789692932292980068665763148078935177671338354376708765601915428878765514956563435039212542698262703798359198189696345684487600747485176192665132464049718008565158531620217033923443179870843707520784970533309645390958078261123449505524517805796097449588428073576684736042804975115523326358778917492965226102970099899963428821307173125908897323418651833600383313810988499617220792244757671146958890831071722836392010916886889311252253222672408712207668801939738572652315535435205372171959901299409011518043189093499486218187594786902200563326728881743181750063760062148688128228185563715545642492656609812971363484330939660361895094115413919701636837358954274275447193195752521963150743435830252190195772452893841515436608810307522465768886265314965379950099582514957692700566492674137828570339374291921567188626764587379932026622612957424005910704432595267751878329408317287487613897232879650129625005555419181085940960223495168158211547376796532474259125768627105058630567764799790996384874134887245944272957903549949693872170339262333050300978158531038227230087626752260295932476849635505485745332337354238147898916969188833552006930248099716653057810866465229776171947288728614369235404920698257759517233956439329847644092242321916734554720070466688724789178318896149233570195302655818631767624050469156047684547786268961850935264647283228661898097548852968543875372738669063420540770479582460479539916524345890382393236091085293628979582889694711644043149750391723439476604074387025863464209801667500083854201605899700996579073549652852025743302535778899982744275668977015779196395491913097730105356511660466435214483705973156503577272947275805263658716920692827624219494732119718821742098730541153267664909516120468493107096933751416858616070421062804553411488166671519107337767233801562120317912765826826316154143448111831303695781241685676107778850485655016609012690794286854529000172218433641429631244037245474156274053354905353938682097167905155821378975453322682260260327142647501381592008209558829657354301470224040066696750795103637998109059590841794251619044599052314792495826712527418526306125853954636830587911191842243565652237921446247902479110676728615439278427757980397861888307671337132883920987667388037241316686983743668834722560679203168434566321605537983282816973146774229942725253788195896732123322645596195105006863659925700690841815932774069298793136833403013898482378913394415621748305860899735192695373000471427830780265769566317974728340437645236229831987598336766952337022085690832587681269975317185347387638241387140415927146909112262401000741054652552428772914249803726453934057730640920760674452436910659687663796175627626468255310735319221479128943963367110270626871963720518102845994436517164788097548397115144660446827702907311411406543365167264014462360197739816749148191000525077600844362929375792274649709475519379141912895257110957364585034392952712335766653559735283691647233030650067561416435668377660913960257434604726813514803206428294379764628746801974906890475105110507355586568613534767845283718384717063132693869207387546760222037169916380671882620510594962528276602096336923722381564334570625324011443867923199733453387621089619521499980067482503396643540023208044810549116231321787377784944979488637455727967405846874034144861320521050160537235748750844932571984696377048383882538245207440379621940346041692261567726610212645905611049915341349279500949206059002225343096500098252518937835935304817336741844586161584847644273668060170892349875127339758984490103027644381541137124901920583333775348328210733925228443626872058647771987617870694938962273248378450733620897884594199406794681071750064552714180885114472389333065307911938551206347296177151587382507686109262072990436813198681849921721314704376394208545141340722027616216229178531073306374697151179564410383848534309383643143047396324745172264344705336275479160199974348428686479082277502944555128140488530477257641600890920214778309128390751961854200605234969497087434029517302325232332975608001959224370003893177369170400054032952042514834122918766815989524487280388747691611132091418330762295415961374448189612738370359370141307933095068641897424343732892407121838718037458930318104800026607374249337146479048623779386339858123870651121359206035567795456517666211413549304006656334521091728627088705117611730389643136561270370862949242768663428751680420478493311888864813866351940305094149591889304438350822088032463015353431984981024592711455570245313366915851744175968758474791398238367832200788630176826151447684291153812844924541842872801117892316035268994905818195417207554400233795465834033388835920490163978883755688605287549987956473060632279936399069641759335993067694982045441461584944781455928851321778408541847339303021085801914035402344520500789995340749566096032676166525380038079894800534403408456068012160538120339623259090577534673645370415996470371111774836023397513460688888542712147379651214838388959367366670400215517411953027820077567287790403543768024964441728226198134152287461548555211270189984483775743055656236361957713682793697890886121179952731120500249335605435318507060115276049385026720105657152024226376030958589894913328341598020424840101510911457829581934171982407164092540071474417548523739295395073281611356699769793284823724111454170994406221414667036999569530702070760180066900075785069749553488217349188561723724131462698702167692273836050801726939007853578838096442587002202743471875061045509878652323487206679462089824690735458431239731688471390066412292402364218594895576142810456596899687225513551264341235886146076455668624304168329809225902741278161378714526260111651548844939967562849639725036428039341276982674650176810323629101751238106349416624120437272328054105740195626220103006923174030856343449902021629163339224505839180821765286622194815510121003843885911326641733922678729391332200124756970984723923526596241331856278974238659910558959665803544265192616776934155551778193711950084854010254060683998801539212164639799312542173934523144224599133802147504725978652375820089481818775206903909678971015785857725306149473526811217314834017701102320580069704594827552304717653141520813719929837193537165738614813852359996591635315219675753755213215262161890200671851249771375168420178596961867026087326030214162224330135418361316294414361495032628973901966689819109051799490146188780646660607713369641200477327493237997161754909595720806889525434890009915010604893272055893025979975998276119773973483184659024792965271392048753577127749436979730736000492976084729226640095889845506562542195606353832680745167072508451833898474369881986243927002813999421325290668250946605370153679266233952727928579343232077110418651058190752436586422601460605503687014479667980773966735618542178597071013281765757442310846507354546503093700245964534585018574213364832324402614672542680626897273347453265328185730593646614018259613383985884440470021385984342271566979223122135851388924920863212436587736733081547976813347459354359517189433103946871989650258517091360260245173692922547430181971963253029485586632378531352613695467176352436083721376699681494181111826520959806104724012634810840853865397525466393191656806757316549434832248496643205058422642144006363631113034242260693902332041604400358296290898612148407659633633583655345838768941871194400182857812813927097342942379170790803215831976412931254474137377121845415496995078142170744271173113053697773992002195825918782124756180914052968929395930695678219411204892498801722990558405286015679179259485508684828503494686597301136695477276274644020232882820806018581087316858951528372800173148486934586935484050599228196072112629253335274006521742694920257854707160478747272021115568421543667774206672074089704649627924015717814833142791725443859952665690520594032557205042048166882142907548541340150651888976637341270661131065070774097158352752387298319292983561119603651408899065691790575907606076498479903977749884699826431444509799559312031120521225651240023173101574453443230318746655197740587045940706168402927158609088111187617346568516068463113754622838596549611871383551828276288074905073987948223029222972515524512599402382801149205725516895812464344997210100726352295066198499355407270969507174508440819026902365304074709505204005834295034815504349226727135932851142381683148820720995502955244432315569678677514862363278647106717307301324851273705125910849567334360566900836644996345027059067224098377290741476018416931102346870020646781216561953468915511377331500223451390563166580747535603746210967256758863251808324497049097041586265006643983993726649413523191568422876814635442543801712067226829642704247256413835240000893002674767092989906441625938224321221727511657546089910041849354379820003054604355688684694479385179328676364045852921818673732991332638071626255861087265578062226056998833016932747635075369766142031255619595719710507744152815471202000014439953575703739755103368946594561856737013506087528665325783983870439121574445241511195026031818562238321434496679901102799560077919063218918508863132353188537258988895356569169183838678446474727254314195600580252712074673938744792192632257400349778194463179793263402781937317699586041464082989869322109169536757199502157868293729558436794170031631645845378926332818518501049236195874002565852322588930964309601868158829653875666465156541333210854915742908728344309214400847838506947826152477874142801011235798551611494481369479572077175486456194201068639042470348321945855042189254759500524260336137806582310197452883164761485308499473018196007644517718115007199270700313066872102430998062216118473981048979868466974357594171487620750774750437120315062243298282381508063844234430837294316903241687719072733852376675535248307477750117117539310814937476239929914910084973347931760761037102052504212210956793808123589780719449482499698480301005436754712211711382275710878738576151798822603435528009012519560324729303689233931346274656142123433215089411183487533764284338399125994331891029059586124703052466695949935627056754326316788080934064570951941192713280295781081515064732676549757564050930467287845030090166336107452518625595201531604274627830836294240025285585973382662582302127215640507528468390456792804653934446683734337698505757183637826834361295220045566488930183762268491221677146633059821254018593949960236219659916021476140617399650094864776027576679133334633936563560199944197560954280741172856034378657758236079057462080488598309591038001671506856979352750046799687258487717658595138995731290084396178374109228513501037936464792988004501524490270378946644817529084325809407737662724136559394241691901127855257256136909956418518610207267509747398841624592170126008069091531566144436171104911070200473417693390723464249801816788410598251146035911023039300744516573775535689896079105909028892789457967850851436462139571820701367282770538188365192637240153196010343064186013128694544275639288277245564334788737338155589981428905986756243648291373517897097794790128420847014843779175021681457853577273686525780192982563045272436161599440562704985423463986202182065824679238519123034083638095505707946683132062027367864652236819658612951869613499033961607128065404177166153789995713314978469206233010840036804326351961941069480828742045464147148064210005685008356500077941281775089185030254499930565626021633179318798671703477259277604332989600872711744145526373811040238877861728516292300499856179342670940567795682894262240235580861149155741385803764849332347597618407570394015733889557993256586425419879525001516920096509336612423476438249794553450344549560072549968299817514545962325889471601466340932702969414114410271764267994420240550672380770210374867267828418219690862254739231611633201321823436327815123323987430702622521706816914111455121542064911076406413122727274384424079121247074603245960697435617719399817187303387817621085067706329979845032920054105208196282412269228822018815258976031533914123142350308069834511863749266517241722911855475181450789026999980522349029732253926407633042827244627180044523752692004043836460354763358899234356368321256763036772587399204248937015888705044166591928784506145336625001227704864014473891738416779863203171540135905133994807719069538972556022276129356218800964174632158712753973545546562386524289269775802142739155443508109110010475608565443923620178599582135306080367821630853358267997431833018399452315790872081944859920216424879974669211401387618935995414318822467773133318304531964017542533032631562905460885330966115887281735071803563789461700661505410811322645775462910463542844856250539483209440624198858331879500267114970410880491078926015761684970184092222518054462703397302310959886712837003318868450345431544457372664304894166130810090257133990919798614313832084720156810386514051846915194444105360101852170103787736415836072619041383882357845239256013710056159874576609895608530432781750803927967015069219032417763999042753025461683487835842022345231478721461150373751822587132732784775395026292238719961222095462503777485473494705367852780894198338148961010426866897310777175604911204120977578806811082317127130707264565299124727183401185622487972270033051186189449279194870013112034938445429309528899970886114251888417438850942087760706257302507316521482829904821115086964119237665189141862525403202464770850103000505827364542695266369437318390537143588379046015940896977421882497156538474810703271806648377417022470266813126800162479399383635657892425046301762898905960429433246955611986612421556736411500916121605130232395802959163787211306874267835244680139234317515185120958320367338963786802299099254072269909146319756513708650690072391353276999631016056005013449362736214278441974853902855432481993861746430415269725839768074831718357214304359439028264685039132803133299289257968475405143997646296931028644903244249344559686054957090089442586093441691141651849792526937427714077154397322462829653876258820108757023381265654404426776130640939945866427705218297546614946133506777588667308830220774211272900777664800735604477593936251118151742369070585614390741979601937085158917639190192372169920871304458950780834780116216362391163094279276625143689835308215484158616548507637803344841879998137783146442181517039229617147940644825524426572564706047729854860148399118462746223651505706847036416372975354594853570537605744110540853658264089891241168815619289209650145036859209372771554201253209866488557694288833414060132707009941612783888667413161911137832289689891252257665827351207217472434680007353999333679175547751037531190696440725707962782374944905645712098790478040638192234941616305533734389035029447592861185025549000707941383909216120531598086041307245474565513074181233718120986886665553388059664071681228262388795584347600127493970499266208425352739047606208660359744429529731854732300298209280549697049400871303346514495143237406192422118462555157054476992986516269148428852588745181549255035489161364611542888713608939871811057076742208018495392823852785549894515678461763478515999329882904221214074147327251753717598939569740281849143479426247208725532511803476903361134599751378111782138777953544827403944408300330601249387906549094665187534327666289255163761036965049853124910735891359038777986194655284476421258090918997138835729382132282013579179084890614137228083381969382802906349781272512880897393209805491518143350100945779933868863492236359175952416736263668561496912121963155264820834021031062160320489523356259440937512191399498030889961654741089325471954484412017527845186527591372090896685743631588804499434008718567613817801620372085919649103109907466914494092893316266180489086181392649663319523422286936816781370919352944681192448716333221794371655318801149853663018866437031197825492497675757159736782735187341677213069941215692356700137588171926234067814773113025285786753759751299165337303915054604968259259343587590745994957016360214680537631771378800063534497498986189508528322534251874180096678217672435318805268451797810701741145823306153068976505755419236197805271701105299306361157703887547423098764940728024082224516625444481842098387645576941409665257009228147099325783917302254319802638102295399288851497285742933661017921873439107814552754939382999241419344289733975192017357932318376445857815258718123915749099917110624968224098535655431224996262159903262532273812046347717211598074862519850490958080853504610179176966340395765986260382692109366340907945040681734149271751275079737001188107867044533702554251006843827504012178921819759608378519269323887579145566049685784595618625853531626664975509813103633865411071449980043887002136809947541490965054146854173636447113954895063975791496321577911639787151567610313228205437358639735866653100742704094148235031086083719063079450937899711595569009563365364351439452745108576430256686301009060940276194229568744001611069061367940025199254341877774941404660068883309444897228805311829700884146920443000741727049990227339479189545453113604834582108536503300649619157106696410135817570298136752380526469236490510746811880020563621984900423463783700020555498596692645019929990510604725816418164471317896004399939339533905788772935210539037981619300191371521001147253043646967319214684517676020034331031305689430998544815701062629969494357852914279311777547136845669452878631957565657961063563062914658243766058229946819427062128430959211325982197284000379501675059252430044956793232137710670201536226354583527335374120012099253909730477045982187692233231305342136022073427336121730621415491669423733803600426731623829520313034401063397440667897652385457463317954339370753857344053042301269549183821741521933745963782950657210289882039183608259639355772430016660344771600427676365109662239680972271190182563292434533622386515558986981322481729651827022809845201632548838951703656731780562500494584086609324545173735601943227394320146587712040638407117333050253350841167517086063295424415157573394936411132392223066372662639066339999642999866705292660297298823329603295510481311688248624125136006985091225195538391675543545533475359431950298439219623152360445964196062668526291877342323353928567506511140672549958752319122710262272585571221788680596875653918195528336254973568587731059031049185985158303454004443392291511672913757984462852340902678685006285606671599348616544569850799493500767300653834638998490869353002088879083367722174084473906631200553364625775203564476883403942768849890831072999231581232629227167446502999155965651837441303296432664781107629645177587968724280158694570745778489913736234383398416532721352999098799767075767818198920504869635785909517788556270056234852518492669862876848289344037940417767423290522452896609522388946640785083144472644583971934214897443700760462728817681545475693326372853356620351889967909864299103696671203037605668605125014708681356517444918672135775329279727135245441051970262195101666086698382594847754219683138290738655754482199030206010922357721508189251683084366030629898111663645006429838868578878067158494277478888906583655805893946612992265568419625786694872701888433714881158735963888667109747866105550423344252893939621247233276598017631269374991240510445085948948856034262850984558179387135511167533499420122097494975558302370439197869441224076939511832611530439316615981581341537641920072870964026556099020246724924858408376432189854125625798127988282896300543778988398188640436308391258747952778857303949546752403462826932467394277200937185204495811165913078962027087343641557834617087588537261249648735406704252066339108964786464288610812021613615021144402642918161642551757001886250307248155601515270540996003284704514556777240982965734200798699923051887720678583519991064246255826510131221600750101516846035216574515074669988314661871799173730465880048793408112715991174171704507450472040734575208584303765072667123829674519230008468101237035633786233529669681810148496602671140136660248957709186058698959352844313053970450014406494312668418556531164615282754053096132288927502471804702411411990225039669838685111580613241577047213953211017431038193502185314243496907031807853952139473605244868448857038708390378978845685916921243029865914464199518731816056940426786874791521763287182040985495815386044749361847716436935070300059672763370085117314261746836964618992312360480533989083631197939235858163954749006615914428146937074228035785504867810945669288867701787763781691221217683745718917365789191089390906595735395878881409410596856930180321085135397407749180689693763086630884756896637175685709808858372754055308545397934514758145847340277085565982135655152157143431456000121764217942406245029304271430951378341832521799886853426100344923455972302936802735290527605496676819990547935038193399448349021641080915166726533347160501768472242429661467797842036353409386298091878290215130433369349325839198230066688634140309654655415523054485236745236461836459104920220338429561607642337027006297698492030848953143410315377593567853398777456100523579611075442737794567386692890393544228850604209307791059937026479744925240441162875978869094431272852926279566436103824097480282485819364582533750575309664116297107949493837915482439808794861356354827862631521083383317515317973984350360924393751491733433550843163811364910902764912862631413867584743596236744634853562295082513493097140506182406634952274070870694240582546682247393450258243546458769554197698678181410237042776592496406487960467290324392044752522042083655615637542698933786015044189384790746167838427188810513398127761763378935063579394258307690623406454472204661456484017285589463534491781535258521205500934632507430593755476007890358809132501876087463242530526889018777554294735446413762529927397545050706791763200431745335229066161907556369046644535250358772309207526647715899786304648763352540844809138714632145775547730138457081015347239204520041511968862593684123234075702658957228531505597692966931663313923254603362263548360746778856873723621871649833892137731830866532542803068484199036127835886489816036822744729079272435964545942058632895547258101469114010728150937457755994755604892190074486282987974107334485359428324645253199249058869873682604973243626925268780185431589902141621960745484688853254105965760880511687679361477717818978956780771345567952370838070406210317087600289299665174355968419376134673855694682924341165453949266716213801241872927248770833022007194409802945968344876644476494987229692932432241812131737039987852675577352742517630517690568879885486132811588814202534462123285725665172258018219220260596083316739476602882809935503939457934805720172651037526363513434880182449848935612410357874253795500376931040633790002833039653428782428227537541062388971345108136673378904799362652817733292830315453215571956132256650454729201642257236965886514806585217999951552252274602924527138977013561966399822901342132550848129614518235506550164554138495593588894091649108289632015090275559378919487361463058673314316754288795268841606169789168113894036276200662091888901829500823028183708745528639029343049419301714386721719810051952692737456333455513349429391564215746264505568075671971463989392347277422033408586927197098951211303607769196162465471093853585775792034896142274451284078795552671992194551605414971588844052446945155580514793861378628316110168414278452033167035141842171605969854468095554053550445320132461472101327457089037147893814692500896284572577205066327083400329145290379151495504936845024328103032595473070307220646431579721973996739478121398537580235864021406224741036593778913305311096349340446010841857932937592894466294144748147542791751706389200013722029832692846633409942945549467229681327887375651659257336716948850235090722360502706691139155752297981604860828173328582282719722879112391445077765477088280516728878015607849967517266439256000376636370719980137538389493585965419943676560302613809293866458596205716707148421568942892621020082577498280155852919875339811684133268192611417122494297217518776543476945421017701344163780544521069826909916546390146781901737189499289112158806756436219174598984813185889179686792290634117702880726616881742209820740567842834606857614052866298665863968661549329224623674436203859523514245529057167120262965967868299098623137394581346787580785768062692169275494018051459724547282584917661111247362830003561844600783759207357092138894401392775777177826440263851899387855866430616906442822592710837505090472534977292635521281675718498309693152286860542853790296679935883254706005295248152001109881785450926550469280452392886396527745431608708918674438542409786453953491991369282856164133115736905294708759353469874847257319408396643051414160183088893600632645130163244737246799650633609148916546357244693436609790267902898919362808385653790123979961920448869606668273844606410736466908396858125272950553601393515961636693413915446646980117129482828003508866164365960986435716957466679199855202166576505882485200550212351758957432211660595303485287292281845374010404064386187748400676006006034178829974004510531136409842394355874627660941784194418750309832161402777926062314767137340739918242111812958821457118709612762438827129397430906201717581296894804247492949870446521820157582399922599259286659721843504264335142446160042991437481065215781218222767087904133834316233474685872128103924566769760724721131513159416298913461820108405872738186772271698024482311505545079053742742111197121589345186560567707002529341008594029134047803248639959066674923035859642547286582530127392726084587898870463962203368918504435946690418095533014346036981082844288338271466801486269808569017465412786808740168429346688969398315578671011214953277090752925582768297936833148414196297377480431682273933043057637626036242616241719087268848780215856384907440989103476527524598896912855676212263122331254611407442548710228214442489747012125640653444031825548131583777891453227294026400241633080761542641989752157476448878722021623279583478870936086364597458063249703929214466781594679257550880186338558493633752277211126291958435346212709575367083854435664296626016039772063052669607254455357203069045243030179380578431041242276039063749126626902812554047855099702375719598347824283383299408830778294692791725874658494174189912725470880342277793257423672332576137197645596588331459667525428527455605231117840747250547266500926716274648498412771235065218037382698277210123296691134508519929290211991729353596933739657516814494556814406630764692561921671140896652564623657367632831410104020171956831299278195058801447955448428612947709907245064822410143163208160905494987498168490592188021114178354272909185762830779892054957649773685132205309452834678568410684208107606928999410931950387635790078614069880135496555470346882494772858167983725815497904625586254727065485636244499953391734609076697609403743618511279519130423272564222546905493407345837608980633705706164284321591560966530325208154013340306769732521002702764922834948438655681325136462129138780526635988501985647541676942569853298281528711282899322955049510409869867323102975521766081436221296343474830158947363300988023967207787444195918611726928122947809972415340840520219632372144437606612518003790427479156915662530381027047056936586925576662290704846849162947168497278806183092124602581255237298856873571771809751373451295927382288515529420914745455434336501676841011088303823663931411961944605870884369861157503469978057342392212944158373281551515653201825881249196759047616492773749472935405296194809147636883515315264431104516805378133728242838638558917729223854785838431557230828752378696898761153498576789779261544385506979560002229629170659660472934535707001427562822663210867011667091256356880145330617034465558144307075609608964926981046526249220907388598657793892265033613612729679578569421391920482064019945903772964410383572481154151675266514745288200707540916918896674166343713749692179721012154320691241217109069477667912584244968926894634723731453914671116560657066711611707401808503066439473991190920681999648375680285629916044272804007229283868315627507996938817589585551314545706742335237513919498153652816872637443383263321784850198517587459714984275141052775970709264351551974409870216316337305564591728353506093877817492387224328194477885097656048606092448054978636252071713945381060040022264205828251223594532793294833898317390535831947028148681794991638675802722456451439606034509304639211055338373501545977569792286745438343894963272030619493097320175957866082557618295490722891336908450307929220628610243595401547496142547446745334563447010965469718453224326592856032199957240723806422304094050298921651307676311105438524717846873203158375490788240977028403500403669359016005544698944873651262971448830819674281762268917085821859292049106134790370208433834920594717763345208687606293912371347253215497323048479518594734591040174355800164171934433578523604457769449197779973190075895421137804902032451862375619069593523758070432480014642927244383403021710895826994979413252696346983579019170544506436260484331799041445482812064375398949509887328329053478338425197891442294065119575461305463522491228464570562474232487501778344804296925618978113418362850232733537642767273969196395351303364028205721244217615876066632222905481999413224631239768681466981415512406701007600562831376777773235708171623930238676761106989420841853529019510801653111085014874509543346295396087870928883806918159658898179891802988579149548156151574097809877391085224995602952718974069722824085589448119332793391256574350403484558192976906798513574753583919540370923653858065159253436587607545425884479857693034357726840026537438586946207246631839317503073214723568983300072881550860090497161213756069153278923507818364730181918371416221898896406329832388920287827337443028366476900056679310718556225833073615831231315102223716574114702762729381718310744233512671525894507370156003356079925493142330399918980434822925141984925647531822465043211561770021051041755417916838234889229731740728662921422277185765818749895554681572275241294715761277357757030732285973768222956071837415528043616961511146503950951276693833377004803458426670701133098941479536869651646534514188052907417152761537933444867279723740979088221686482490478491866275167216839786287722959473608803043344371984232342008765396835331275910844908747071437991592363328023394441946217160648465563741446827176621629263228427736606576022519302581184702206984571295075015494355827847000544788511417943173600618610580799273580257372910690893185249481115747994041902972462388029226618181862371968640268454718606537180639073311484202891132300856416253374490272308447059051073483158571917031815684522042295526611506056956382352066582128437150583460510963972916613103700357401983026583397669740118229220152414802819037141923982710877029771982113611962406541272376431956907380585750409968321262375874340193213156790069397624339173786576406961023272564742605645055038589335798476367877759060186351021182914211274622814275119160291289320958930376446876428047938555955803918187973396961924416650073029101727576467157461398077512965155174246188727153534682732310458789379209137360548152126519746013538831442722239394124902200798818500855978581681785159676588505248519641322569258641286531113428787840128719080815551955370375037433275593526213294997217209872454173791024185679460507940109076308343661566083523413878226633922031317815271680734002591987076319998849786109707373537219575162254189121135219325091904848123022784664206661698624716069052098550090707354256190880988128090665861436579635425875549765370527405406492584181508590265615898103489461488650021746294608945636251735917434612747865355846270894014031944658121828574438291432779358814176042836612563095504209923718162327728725878249024524458284043920301983014961767588329863891128817893939695797057186223313025515859173582389448807172214766853046046728803965562127377132818656696875304954135628863215017688914228010860313041811454849788571747812682639441189124513861412548654077288055042644367784039781076429503982908451900168180928185752437732252921103365289928306161607294696218609497239098976956000490422673793909230397157619127168244353973446740945234099780663683078745536766516221064248210537962638987741753077013340067984707635681275431971848846496198348845934446457606837832997973263464799101610843257855058250125382396039716787280621612843526499617379404269887072530132402746333035978998909050619324107752870149178107517900536996724111858731965884133697215820082175614417869491917318229641992884044234320852587405431042970003507452810420004873354128247155901897218390050032731206060994424957162665010088556096051490520908112044352314758415599315322462397893824602541001566965472247881245943759808899135047812937944813937600550613489426813372255423267463197567652707209683698881539069284570425889728569156683292521762595908032840415065623908509980470922776966502008616858249037157182760300279777894797966097436728721898572915951662620014822613468116024640302503493837634353337676953095868387306326251897604007786354648621540263420656125290101186479170844072050024263301142059312802604691169574226060889998088318686252818162353025813972952366441556772339284894872793582154421341371125766568243243182280634065163432681292147478428298230414417514429644236229749995674778687645910510497130224286226614882552265111701328552041580594667459131774941664008471804377580308217841493749537781243365959869523204498951180523376068265946074501454795274119142451692617191335906854495857879718182965578905660488872485884817233872359588070474064106369032707952022457760764729375827280784696796862562649758679841353643269665879847938264963311064089262195157952228372927122704195100970704227592570925782650100033303878403940853276772456748893096186893252385289209564745810556793572687633826583006979168533058822587319745445288501369602183278204764299526032384824465733069839487011735293596235049243400514026344160009404257383230169479499441833787639549381966210393447292393068211286909521935916167264444997464466921757164862487076055049457771707331126252271802746027837911185119412925609232928793069857792615604620512846288233751783600899054643660319628459722677962427631505687024257846267230201301709818783924854123083502248301416601776030048992043303052277241755173582250277343844330074627901258377922074542929762189758758308684978880203059335253177374292619321003602720829929910303765904026841175143935348628756542899414539893512286693556700882407303823464126869925515087404454895266192542467765484632669297596210034753839389925757120775718430581055596803491031900886115574183327277828733892267028446913784568966165401433692783279902430382746802032686185596234994371012041442959505216073600308574791510357705400621627546186374159484950633028675102260928600525348480896006252069298017797043728962525560621904479638537123696032282483725527335528082999072963147667762145165053230504043779321549058726880930078979755113685623968213662124309385428669168527843843765737349873444953034452099699418353148876966692238909216067294321149353773243859774003076536956819267332868841927266075960365110088225820574104402372535936557021604800569686474691595353358402235150477971875561061785740461856856731649105981728327023454178940924881494284736722084959828294493906188086074294428278456554392798480229445929552812844704113128022188367791808279078714337322951914781945730735372763146928256155575352295565347900207749573660307818804855445070160877321179994225092791360015819786415687243041644335355577517468419317731118774564770528157477997075896858690451337684854515392475436438662073122843094120793064822894701130663153152919741464076951497865763214863872811410935102978530467599838784424922107040394840442992048100972746557521280205424375371802899794813770374275300821306793391038309182538264003265055716638386121792256440651665253292869435191135941694131375235294560477643921793172615525485095994740640870894312138762577537542007025641718347486524276467295716900187789096154807119154802762162384734332488543379990904751512169472254511519019866099421639644914290581951333850390703621960982958432697461376585087776009153936511358015620525176010197527563015095613957479069140280362991060746479288977095300063107918082635315533099913491944020819451803673560246929890861414440514702853601410105375906207777948598142084494334368009888701920740473241693393272985114578693768122984094113540723286057838496485244071950196942915801217811588211998005275998741627476008486585406758399159801310547695349924018092460479819566234175550368520676379167808135994580541076069990185792399069675128643004730991275703063653021583140393246988545010690558610441799552720021318883768626115441972692337318637389150493289800654810945697432293232465424723652093765890116198845454282445743285574382276995976530911255743390202811466410611478848184169809815412173888347503836469531039906661224780168027397440120976126426133733346407101459526794331459493799070805547451127612583533135790076074685926076142350538893313502014520438914915381695215242943955536644365765516980998088896890662143217053250174038523900888951336040652261666996113527678880898567991844150904233969975622413315178894879174777376032759937528901270602868221641101704083616321369191895041741155011883129978962513170140040775803528765054067669787358841724260899132794056815033404747528419439123577102945511928064572944950718295480564103484760882555622163793242886448929999569905625019480879213838755467979473819076771805598431778683511905156006810838778085208800207166150877059932333330215886311647439948236668218208190105853569961656992774786647900491018879161365343625068286420216962233692964908527735364520197525855812178773298919761054150479698608037912991350401014122142218707107259434910410163980260856741158597755792302361206262360575668983899407803895236514465198157827544770956447078519177299285139501083398313500242677078318901324215300894311694519296510270425884057749727929405177355919319789865466791929751435721137439443160048397260495521798299464580331376360316140043425161727132899048865450025032563852395453990939634938844029794736971969882343240853060008398439171696227308643083304212762919858209044730477205197059632253687473464541349558264768127927453487697633416432571528374902213776013214720163625121960773390306442869342405244296561376026255186761655046005905355115053083151961045839422398953732711912223622980127078809887944967202543088825550828401540911903288879379294431909102491558566959469010300714285171751489621621006829625660269224612392250242967897840170086516939281654094597671839916221402497439375373702227218473692734113282573008214200741937334410073890752321295411558922857459537231998343525154829671866702973322363766071531630500822910438471765982884295348127091025777408145122038011585688363568689044504520647090091540935659527480536631544538815256394729685891019225929887450881064310544228230474183555664684438112879978479254436121194146298175349530700479406475624168667313168872243905195318304976206921609528487234707005080926525855438473668047268378984553958433542929066268020488119454365638212654251657977452149648545445316182942693935132080734160104119893601996181280444086686585472530620893058697808354546862642360467846545334405613659831425800234352787875039725456825934393006563268651737930523827498161540447374770968804120603314143739255992171979205401803958458718722514657305142907361773567408354593140918010121977315764366697345980029747642745444116344970324292854248939804807352892458929770388805897035490011351101107058766431253106684564164712416787064131470056570284102222772098019413911262726246504044327113230588036130363709290159602057697318870548733048762889243386764246725840248668570917316228711557297980423158602407869251085569524389966654976127379951760563428130091324831473043926388606489144092509616968551982791496332118338561443744388607824738106615312239494345647499653463621549319427262223468081629644764421564622826768953598911799521424198016443175103853897132091138779864017593616443503281820537919112771947628225892072609489685332398236084289203500733610554512198559159124808442120648084779930858030568973661276598672304987911116129736350384644187221965279546374080479866978977207137799075754467611794863641245693920216200675049917261444271904159879678511413530122565021478584786178783710189500449860112974022711304152466488356623784572416174441689493762233401434421597765730559740335447515971211662206999273523745746196216635144979077301385523361771269418555459824177351479601553785280760318801424998492969824087444259288358381077564297233515419253385961011227448954770865132289293351155178376449886211421966569371634977870994935667419569263368795384598267337659275088952105425854580733187628782534538627455175963872595706656983984400241063141084532198360382289453811229762600773635386404484756702283816181184854377281757237763083439666094277244009005161228663217959698407276530156676431861727689793414072344286876384885876702238501176410409198557201739207168293807466303062282724097175735901783250775760549778853297048469170947185158945243623765403990246020140386411470999952763576471456108083814769460931536276988891035161721660462563956267112522889734666386372107374428331724735802689103834760603725487873924440021019381249370764700964874586369384536561532955718480783191033982125743791559875265387469742240297614115530329489593357907366486921190523854629307607858560594076218221712283588487784718378922725074009068892044429321440823033104225742863002133470553935766572805382509068902891921595132680035733995277687840901971546748495964900363727748425163659760980685203681764041008578930850698495371822492166774024557672194018317562523149465305192717672547412108141874245933705235185277704875859311164190573181358494379535302233712272354344278987530003149717417515618676159748908260740668268545939041721778507804022401328013765376171431567260945979633486387969891136311444899217024627811367361945274751334415739269974186645032686792179574314247892928135164902597812100661470384098964466003636162497980108102165667878592015435166919953328453455070211275728606056590122707454573738952237182396102027133324575055917323695019502082434738268196505423971629757307254751688502357836740596037555950206731592522260253321866017530796058540026728597492692553038753134708810818243754536504924872741771282188119018756037222573660284395976004090767854365974532341955531053447116458406472841504678634639290132128129534097657470094908674910641145865594409298960464115683107568796344135944255196930726574350180716478395008158630577223861476896915596103884263699722633045562310862962537922243000124318131291426973472657286643877673777672215928429025379378127654749627440402035464713387202104484080987421293597912263322558305106577602076092686527294396589294810461906056144784038807787561481333806944890461495104649316188591092630217079527714819543022351945363363114751871506224540198184291986798650309453489941745779825203846065745292632650821076455805487010545327231227358227114300021667270085676308689931386596490978903759043066188983686832617391844644563533587653165141296405830633241072895364645613731965323918363406411700968022880231817544931896300446800184273197383346738267043063831287060549331644647275634824546249975942829422908263664417813600810249132322135415178578569163610343468216137685283336083524747008418706644070638482200687413639123727991569746996123835943296025604832480532208630853558642759849899782369507265761695274541944317052372833652931648088322642184190720316912756918764723324124866214742431391522678851285546010667932242811103624895191191987939077253434435270478772440267393723550293439816295741524676467714468131630211448649346330360621154067207007005159547623570026421753788470575494440923879247465754165689304478151184806152418757656552219605304934672674199237149889044257105427774166054040353870094795715720612144117923263415149887186578158301123482555029179707840260179290536373576104826213337783403555191742960373572547531956106584925420456379566763560747474460836343627491248938840543573386536347663655689922064273375410026565920700385182946594965426518474183618571467379761529991999601293248334776082790844822719143059485955150982874432729113130751760878973293944063650633140673567083336315298709666120503759341606729089391017852300958162163477395744630317729421784307543388416081050473642917513767139802250270316373425299180084921597785017377188852873187868601466985896420166027752788512191822747579940073076577569449803842679253128597066733593443249898238403291569487290345188331239903535692280148088218835234544112123386366108129093874671793716377526781735409554117833004264481282375900041396669930866664544451947906611184203195886582860943657766063465228159042335035804798702214349136305543616630771730983836696707077595420743284849431403652174812462692638983317612498258992301300955614102048217473605470456723683709132367142352153399906230508835879576288584745409178176051393263261624723345695979806468272466815870942170721709822263787820516311177670022830583652182108041040489121121328278974027378615741353198434400347765070888290006179141860826537950617758270066273818758728909268932113221111438257934371517616095740837355139235472549982182810122617906534666479075718469963732854497616073878775041530671015645956018338235496884781703158188283018498731762449901976743203136619297676732396831229957812664901394217188611753085880941691483043480070695965646921247762546719649008156554647224607658726829431043932205794663500772392685156302826767713156168472692320742998824495164373566562799700729199297675187263435450282848051620888877007643505173630386871804583972469310900372894666542059233662555935038022391517600873402953371418687318312179620171955862055095653377110822489139324699047849011107371013099881057271981992840012326171443679332643596433857431408456656862447013446701334788363442249083822320785825408009721624363768833685377957992810216563073174087351233657345996221982450705418887342554626790374881441312018789128528094127978849101285298227133870185224788976050574541020795004807391017419599079917634436123867440071061276146628589748199979783282819518941165801312799857904993341934708554449962594175300172907858195368977715988694686484138880495506142164380977834319693587545874542968388629197149673098556454722840748069820298354085655449934814113360009227195130697412457917301098841744150009430231887955522938519010042779873659581282147742508155254170417987628708984652880819832130484712124352528385225254475788769415758764541326296926571247471711118040206783260663893539795600826836934005542268277548754857182035724492068224529015614848519522522531855792521570692777304767761954137912245220290609271395030113587202274708904913345689351478435080273737961581851489054950809398739624486794479482332892407079972579834116471776040053548091600313949606978837137684997526652008893379604434883163911512921828794449861249211797118283776558118149936139343222698271214041898629297741000458440466756346018232313104596601805031567286288146807841291809643046639565885483552990009851081903509751410155823487403665842117835115568443218428010260075475755996571602552024176089644363571658422653649103199666181967408562134468474111096648968015341657634245061180843593286938243226394514725394751785455114586413034602800846599252872856147241101592243152571529986362883682801134160895797481392268626654104916621610229801128552801215185195359291729336374638811919049107740563564906544529682107860919036641394860377768572948948654666238985904580229701263329836511702206780087566402967824366602861509761206184145616921612550116959451451448291634702287283083789068109315646691165886239050857593360912873444696231224021588291168863995654257053940633043458984898345576875266650365867869738260181208253382360571414711761902840175158808765169311989273272523089255318968896883128121327675416410128963946012134948207631336150194485478423194507215443022788288133866430081353577066053910281708556085505648380988055673701860601918983004457746396447796259426637249136205437207243212211605791893141531296990401828281611696717937225767538526201179154088935448311551685133747749045958231897886161181394374917648380920922177012994786556263784733262689853545728484634805056836817247980592709191925928874905709832578685650103664650796456248035260660437422426217301889371706080865635637504425774180963416051168695305703250232830417488107668159762791431459485247836622688138910722499313967380884038277868886703945615726039836567513901374444041196018765702628588668916726230255129426195966541920285285127956292261281803499386295097304825849810979794439433677552950054273351722984245875796206483678789356223127307218439587457160296694300068078504554955343311631922077897882608960812247043403705001973739343044356877352221953418425035361864668046607461328606214433505643056244457767671695424360146915793461356753962238141145613799179801459276025490317498256953395194123253130962454773565254785187933982324346285447595901460579243783568368722747156917559657640824212325399059561205299608639035249949901662790578626730372072977128988031412282211220409141307305053326963778353229075081083287624993141861338863082267768324829918615829485611175738371408476023832656893512300947896913299266505281768987533871106601578176927782952011372914334022460290231779397083411939074718977419578778168177947706394184083471236932429139208440067351130586661604231077537185547044444614517714184472353604165320653048629209576503024252883071023770712215618614115964109053125707289954991135971289364103075598934752215769503626886859748603921455735558813174616144699202816213140924942395740891733404068284397218725850774957929573803896295854217826449464814194098649259978569380733595277624745858309990268225068027438074521571968687187556001486549066813007622067934968484122875156222706316786022802553231944430382159825529454850189993999239111695385032198617066904266767548817551164479270263481105409528853230792441859610619684639504465088729403278199250709078224874690611516079822446735929959292903905618314109905940838794086268326048512003731511155813662878586252327701115677123557445941695133591024264422885490193140929039784773490048950891773578581371625327226569630836864767140998924249977307379527654391812744183215124678010954609975682440261156099103220506956873429879950199268119060699358985585933580011703174254671276265830432229724819361350736083481872270688700223748603988944924590206211649761201623795445540147645306985908990441146036561823262882467166390961962981006546288488171536095964794558009251787755168784969603317672020833826454293077887972099527632243142707993085125437085473870112920906688677912413233185722550279320464578244913096801207449788351536953216359021921192396081241002543511509611690378250507987404017891573612370461992966849364108187619070504656612061974077947578976122855218564779685284187067504229955409430623108987215986360249116931861616167769588314255638782233615085113429699175627395850782537156616035394055053233767285681972104491704055603842021879001879467448533493759436132332392255362738881203612259944768124403337428842095540161547179788625208652964421808412774823102120861344955310485729333389117687836387635874394262850939762070023079211321243828114080161878634286733810733336567718357036493342529274037373434148925357305386252294500942424240344773432387607956994486433462136429384298637073284686176381053530637226599211713587101850255834662618788283488342177667483582590893736296411033272142208104036564245959530561705292946061628668701612801149481047288894466269233343629942636628396538176650883297129207637924758434291355753544769445172190044266187809910718188570222570817186119037843571486336819772036782205947204507372201811705820959438025773710432232978781899186708856468089465840937230385952309784199787497093007676365855947840711740877137461608727309920943817983545801048166288637739833525511960998766559121519911104597469005148061572056851689113366290760519787707506876740296152097176738516734175293496847652219819135142390293790174196118409036034600703694705958076258874593885322468536113300790918378881497675426369053649888661434975509300723556458632343772407972783177034372026818253277389222669629112390764298938812172138863191073070708720355631697161620089436611433296265207633619732884101516494436331004529882571494728460027170416631145043663142317894116385565186701847705283351521775129237319697337231574576864961537915863159237378786103908608475654650322601908860993205742494006511167728976022055557847484888325290441894173912359169821773578329812402245283644511193530971736562034780935616928617731464858659817508519028073970632223312118719260519396240473706652832219169172149942410613381403840348767420522996195419714227627676434337108992900253417931269068641839774969549866242758865518249144780422299805673208128790962222095693955248752289199062184939867243720417534978678401394520614311699548107082103256384041193272002069400448216753964244477939949819038898300405792617699726190840130424295345951782495359815905827601469890670433524195790105505772455377777660532754364865218910040439315345365113749151881000671943191446604197980457102163185912188609046055904276907373744865942055046960289247551214168689736028595446929273240687677079436057690687367417142918759582661780605812146771325083376759877936665674259683363716606880044825233143243398289087509624575580760209262970809827267090475246188658829000239785165211081312116321493423433343490250621402015919269892718178311287573156400662422636823868415488065366252803874826165413573241599114534554806831287631901613002425671781415112436366514746964902627546640140242219239940509278841744687409280966353947843281961392740101833221605648310896666745442017564535613423950145147029723585993887314486260879179411503455793709052935871394644923581509781939590581840801560776083814931231794015340080772628121345533963153740446520572314564591417485261224680958745956012486731958970349863505061017324245171375920447491954778880760587992588044343432323532369216707034093752029759171990610184875771617501073416165026936137053320386466539050372293763524494501794587513155841168640251133911588872337086030309438995881440875184860648990411828827785347379170394242500196147535500090017984482487343117851517400553042387071808540953846333623232309327484564966896288272758465072146492243083398923246346997157453431699794246632421562539741586851930218659791297216464696688424701558273347864206522075191225545671568549131866937259611042193429984278607127275669879934982575823476502710799581652337043377909801491014599473443753163258316420776209456421424089081925290270324492881783686616226910270722584985170476808127555060367401375986274749669697375594044706578583124903212085169858400340109572302331762402706527575662983949391773258347694076397284967276956699683366872724767709599188250512518125717698016537149649487320216644661819859370187916720598508708723342985570064446583871467650161212384491470404428984657095843024606734258973044265842112777930333386291573150152391391936768882212325016397974639645666433353697237470162491521536753471174338264650535816898594883410038528207725491625124559790974231590601321967468116670473351945408126560871150602696538196326825096546805327233792796558931502646917836028841947741330943094665371477218647501099414009695225968167139984020308276212241786288669903613220771292134356132663380500207045370941802718162492888670535147686527820904092359448068666344976917266429314877260845876936638737372779767283631564130297628547750342370205334938788747435876544524422109461570924579268624230255255857005933389196248992092910088317551744805446465540740195940725551132178979109170385563050219290611265209770011776001144598231642275026667977062198257664863003987291687602697605474761130021953574308475712801954053353365106007159295427762668310967518497263902021982061505391450307542487582193611863032857707090241443934733101678021067173658004288692878806353646905750715605324770811333985035171689663037487719054766181409932273608607347740820521902457778730784610283518752981530638534915267147351774348666091669886820507774579312986813575190205121642683562366178237874331044532283438989480222513758340846297447501307144141957392826468071792189469344899942775058426789982168224649132090368926091354509516417861908425201418204307368816259905172751353760371321729950221403602994797528237391211938262937416206889392792058420846607953521580633864619994657229188654657988308512691769593539352983562420651796302898820548304383892350025429681407445925850418542452287738444040672440287631815568583938508102144279285682180232052149809432833063367585047860890234158567009572787203966197207422640875455156161330107373392657995004087141577589120222359933279171045608340861404648802700390321821515725308104145071377907843426067425667331954171361808311623092686825756336393326965474552320261368263151041427499432310751865643525573640580659459533048752213439750841339812964222440493004715861393270737719104174663074200164620729832898643485031363337935434094979278293798125010051270653706529942527379132086468889690696287099182153499314729579942085233290959131868776684576711916976665597942741611475530895709182337952086109391161322958410114770824658511110322067870288185490741856231740496217229244078718172014054693080935641621998521157615833851392068510615076261369353735577757611052805653113684244937284567747654348740339986890870907532639758619269889331346922005063193680894271468971327096298456473340545399553118807299635709227467147478543798621687220742132178065378745961894103220898083253895569941015066618023230473944737510860088719212407893301907382599007594140229360320096373030801118327804482987124685812781110371184415726780806393765069075147875374286629118710457382352495319160916442823168020822745161565373164507183763172895994748266970717669247257650260825616849338814916269097614727810615599006808153626767858001598142535326150962587533344385913934415563291012429202362453621338626772322272195054514744206527711886541383299708637263416600279400173991722162211710834146039432364064127787320882263085212765752524118120012790368865267663741519758216811492927363938770348971144538014515314572473822054762754684653229874660434518446979979870925481550476840772468066062649453580830070418637613048817258168539443617912459130599418990983186003069871049982794427219935895154692329758157520471561561006992269796260262044443771965645525410194833787885264387360276690209146695477034275829368286584349331663816711293356003262447999308208796499555456406650140175346345132856883341372494014286873788562083940635725286829885177071579321050077723563231881181009998444393235370299687068571232180998472175496853890487604001547379476223266942175597184140501539194185583246707222269025529557542949591243463653562836735988660857801616994451036094390649405700892868975596367777126149927268699761830889429377314981594031638368506235766273745586448322131313387318225766962898108018994624876041311861455534305334007548252751055996842901287906176042189997865208720473067238125544188467543873471118382867639623921722739509285231089820768236402618301977253602828326417135451641569184202431300613723058944985459189252846046668260420548480596078909442003218561234266803443763029290509413232824123031280406713847032087115362976490143110552981725625070399808661991466731215317971964348604403792027371225900731009833528196849436037885386783712289092612716988881247277707053272668885756325854561312051667202487553390622693311193582940880500488312999614256435997566222634170455620061851027887324226025942968658420425959470256043209098774006900020823492305488553179815221797382163601276138887395154472780913037645189449517971325789387053525611805324536185836408549761587122046005028255253001143859324117152106328839947254084582076061884278467359412581660470659912167892915587212716626014353053413523701361019712634566337075877512730513559302834731189389205880809848977319528106561048152910754577668826904566168248855019682833121652266031554646104545682072200651977966802028539975240653196535086288594697903995888769110415542552810052018307926730026969847561534448628356901401215809425637863569353458497071196324748544022230256189904569010105486262082066620880485001337140500220887288016979108592943635385973301712707214636181574614859303987218287417581442819431437023828343955218228745282346502310971763694002221945922471979213664592760106963350980059809120064325207855466833026657639038057815142715412214149975182575295074440401221993214061605616162192601949804531349190814952382316662376720237614171362896714447235974892211681356638126836286910198780874302067660670915434732869930406100445497693421660740172522287942380536043773108399452974233349124603067575058013963492859697393304599294866784246920284608770886446400319969926683284529372624669318127779609012913049258056355637074964920540589253943154820059267419620484811740131649363947629507001812121512034168591701887035195414849623117936887181455373255413364984046149613174169830366950236597944438366964284358250578436212898977832229541932283410564466779483833271983121332818004521089553672996922193125342112292767995729367088965239089839951148919176886751207038212267784235183453504064785898012448325598997743082439444509867326198716129683031087502830079748608810515779713968521072693630765546916471518271664158505474828548996688568089946311911660395547062654867800798718500065808720473570950631679639118066180249609977894175778950002301194278689088534403238448649606536359675484412540808235940482990211056797528091042419415354420487265127485221935296778861174115648134128877845326176990359407735162206710745540664133601225013939070591413626341245130330514231216853770693506052967940339336952229068915605957490340880801709316036163957484165804030755547947179518745181430767191706843292971582206373840551387583893486450522783959353569652451164520163923543346476932515568641858663803989528998308037748214158428871206664354569299292171780014105005174099178376007928705063229034373705854474367203848422877109692746843044318082440260830210934487375429457229209929481092661339942505612769119535639477778606086649207906050083219129145302535856100598726253736660910262837202866122264722664551669705457408452638294231652461333448834535127792200301128205080680941920318644008665088743251586321179993924969291487716521707556064567596098930179175608431613140652883394213372719276599563890584784930180989189532974304933924350031639989637108499525990185441703113904611608224788382475814285627701224642370337568005102865828433043743233613886674674399515667003588968050899472125973879212622892023777612079138337527125450498261142352019884450393721950182924797379027013651990615947346183343766057990148170325822393526288683243561975503747076225212938858779594423506951333940027755336316568857083547254965488303677516335063857833813947301981657082197109750951335588623963568824658866842229277811536633165236215888566549413665773731477195366580232941116908960096391766790954400630728549743655529100931234224355642245653774540310809014010577368464440249223426349745274907771024753474201991086289010764238226931959617601165257786169886074663982399658017676444296715903056675330898062130349703754602551859832641562105782119750964351180101099284052148922035619341782274390388655372432383534797804820442255297052122378770688737404909545576933923682957255741607001462993019151706766168689674612161661996269227511070455474853625309889416700826640686727753631225486930710050858789565225058138651316552392977825481006355340329630157653313683106039978988106911870272356987217740925734446150246576453059750799681523825228917141151312631394764782388237822503068366628458801914039229943030390926572170148231008659777253061751461176102401778001463393416747869012876021618767108002571880997412534536309985254379157101876997830738746591306351720282458042039641399850763643664442212811617468467987092617615699714667996312904960017142224281827327920589948741266451862259398190337642665355610784698188643103006121520636332534444110071680737029759419766108217756789704456096927746865402014414088487341657077967183352222493451637266784834776254863028125420140909382036333183530123791291425642806445039247157820488010726594822575765536493641219498564439178419890323517528920638039274407415318217297243922748342580322526546227399398592720626753645076684442739358959456310680424532185316819320020078425867409678683654085246855002223873044389877984149697206182471908770712865395338388290035127531966846371600813580659891009455691622458625168259819477365043137171583891709984644739218144715827201372358085554657468632615361312983553492001406920205014722686246386002463730916285261680206579225151393515633390619632866719611635097087933041467361092112849424279803932687880259036211961693930353706316172758462569670100633305952229521525668213601710358893619084341630487982714721164715238719478138786437552897191059236953613109402737201739482054842768837832412590817059538647706148460624475397626192453143985590867589542773973009897844835246213531319414862315931044542193653064672624926652396915529928085558583372598162217560646749359722028283578393178623189855690913554506440687859054573098383653926776888871645710105253939733514088380952991572429172611750552947361801190158651980080756175684238007935818022195860831595269931403875285506424968545331607973687266700329782696421715731998276574057750981776099081264412243081408685814170157000775992722461583463675112523224430634735587713364585840354172545493675019651552916365343415820046097960802098580932728558745339425275974072227274577520549108828255823682608430264355917668815645147928958468713382149926106920628675426740465512614962014432819567452245483813110848702898791914877237558538284879446369469773707356637246228937875727234651728736467835563462295593696740206817507974842535042713809203051847587299190676565979713016828591412071869547184292547890612188319371406643225167464803566429835332263374986743120135687141654685633091734466732363010763061069096445150786780263560157655796575368193143479358310891684103810909465595204471615410325356130926480523038755047969278994785755781211094263164158900797083356720881590515331133152250754768984665273744814551950044588250803392321788418681614233950405190416790634063324060339787764140955173257289519284626669113633174878883939381842742113037659423940651488992119173320679225754851471088796023225237368911868651279777994051363349862138019523815430856040688503437478121179245336561418215105657583833966931618225094040897077862743833036060832736593420520469513313496245198508074621786978578944274556823716475817992756904973055849295323895489576043018986915685351098773919506649262515266639666462351995664167065869320307342175464406791630053509078736661595023474303901826245812408993960140321422851220420550426162977644485567986560061733785716390055968799493141816855475905713057063036756196417772513903387816305889635284247412932986653761342032167424521592110457117520400057891702603643639459880050029651203356483828685762884499133362407648747111551901278880334936127716843553710165408141474943867063418841312990101198884899393343283368534327494533249346439692969241752811317312390600912913980227190167781936872405572118466678446822566003888096010233128187205917495688546848219219146335811539178427646428071100198896187197533678004961896223159632903950263127756690538500626577575223556386747670487311018398556269848279213485945936000825264840877256181536053059232036857536952512941346050281745292225426780978717182328086360096723770461850648935321567547412259810741574965673335758042383098208640220589572257205826167591315723455553708387847433254175220978935138991261082192881227138127676988759365910790764773389098566431596533162057579829276503184212025897370848016047919356072370072986802346233783944258951797030946588447805425355526113239692491868701495016329572302773592237716747129711317360588976104187992452887324328840876597021610770393340656050559282813621785013334655773914521232335730013776812899777135330028312592963541900021859388614691388192793583549449772941605067299240048116779253374384707839819064596758945962249940585117863699600937734702062506963477643140948148117042798442343120192469484862065295299800343862094212898619881419173103096951504050210331825111850706086958132553373887968407809296698768627346305738578685663077840537385169042940973541787064529866374392187398324935173387977894530284319957469312460828182396970524486258651944877218077280904569254423873613329220891606012324326685721758492473937283820062988308676387413102264661657259070181657942190321180716901533348669760643538984847503893511172593077622565639059566291552057846333206510046442956162707763266700003288782851488199817634298820448772099044722341356910786297151315125122883513721029040998319958487850647406392708804510206429662928342382020534886301726249214912996419126348951328469674085544719857278512075928910120870583005373406115795905777869562501490997882556767408680446650135915143194886727159093008203978942147522716985808566196801303087515221617592249614192216743146044288443971341583487434622046280930859622315548846885716409316796185964603558277154296558594013992898989557715371641013858577166440245584458278359113030061376011327748044166841423990235103503627940423271348118794275079729764795420718021405173057556148063586696719472263867439716165373980113618552429179354532484394371894362231174930280875634740524295881928261389745918447765825842939196492859634146092979620611281301959373315385649548423611305567828018596097379505781396709715220366269569743630786487104430485371911861165749956658207385857179649692072529268873036231728603624528408681626125091688455854580657157640360724529565529240399469621388924168442214804207332399523382841834824998284303784559678947923339136316569473814066507407468582030820361247326561332015560972842429932801914678198568339967880451008909967377447911972707999068810544882050349562984406156166501911338077941043862381785365249303869612353974595280760571787425706665960847082491409132310922779821487153457355500772175353287742074869513240147155696347835248222796639956025575226838191975418604999607928818556680955457023661673229612308994599603198627017464641431579650968183942214302235185530463747336070832736855393612781845497665626961907304394041904802206243270133541678074585990307452997457079661205438445044066987186599970580518295146055489965381640632380290138987444360457394909177039970143641696176403815391870541530307126607128294414803840926450744747230143865180787429331825950230097266079185550537609472702857523740467374381005637834698576821857352987582948158934321867174686496950095975597695744689065647117206343659078377942431326707668846027503662452672365494024082889403663447975048544147207938670796527286064049279661453422279791176306744352680808329529240968755239425770192557852351238886082495255747040501824738115944224460465074174628385959722128488488981303114556107383507363882053182365612606926614785347938453305056255402437364041337129234474255747827074958432967287673889193254152600074340369399146835874805513227959646115002734087465943718592516392972329108817689881412360482570254238299634135749849530886051779353449764594766201960860143573666227562982896977215265383599533780185051771708503050024669072594475687262687332499860329087575055709357622424728567123299938475651489060897905542230185738561844692649430250309139178327256478325134661474877073116571204011035941952496478226240512697559884162013290212944287909891607304003189945219195850123711205544682955972397372454053904304804031020316500719685796807783375545505041976348306594648033886925197513562377074759806186846929170304602147654868132270751881381617119464259798749621479600350855312340650012018082449906822107983315136722036893980549974538549007809440756761675579470831962836907612578114138034146216850275207742259854441065487446697613758660823885289991403939711953860501047214050114554841165559382279968404815719086892381091661118849057621854910920437929740018655287537508245632405379014824807378249351980195963228103081359159840409705161144975330350688676704511477622694150602408456460432669615410075584690605111076434723843573509029144037652632100194768759262319911900699624119040707407462491195426206003377787236831517908049687338524149214963617204322875222684618617159996826914757767340408142819735422938226024237290037175920950005932976588323350884501090088562966679274856658456537374071058119106617868571757028427272370589161391648071675187603168958578813766239612875510083039210225287688363239281555344081155324692863868599378785281015515806291290466068823299316399933103575102251595121202616868876271909534690349136560804293650792788603810400235790019562274875497988709728869335860948276080212072739631274172583418373620597688394007970561600856630825439426260432468367927944441906437430123925650692812781954667571266717508986334161923410567032927108539787964650227620157685011558688496634142615162701950951130456503247726560190754197897279004513028104180303569947613800096114987310237865853625022223516958287407329129186624203536792478025952511153239538891708994477712089457541251678425698705030821820093783429673969151220398886681049486069636613956386096148147091302311254746874413726552011752425724623284965437866158529768127926336608587169348461654367782161492726098346444047806649105275796644113758940732549224423054846475003766112099422497918431214523818240675366337433153802100492058265688477221991079078267801900415188025036640901523192276330371170108178273843087111688426229167634204113709124320255414934472619323125038710618349236391584571909231525234596089956071564029202826664960750586352945870327857706294608919639702226062766609969406082166827349784058509531959457879599288916788031197365724073237789792359852824333276525592150446682297103135629645679882735556788537282133915963631309290201086072277769521548048745861922968217458749443496458705858107287446118747877274740266416633793463346604381481310564286506726464887793651866366249876698008901539863455957493097066795988797829530105142230946692011876071832181041493386393056524527097325987717921558488530199498354350420879567135131044050514319952932423265930416950880474868566408594859295490600738639473118296135135435691729589812083423748604691555462048823076281745073605428214007971146426322525655500631572283907151939865531583961875621433091388914788994115557680911861493072335966515750021353779377433664155375153524198882001693343454144102014466339380833823667363649636978293146977291148990409156228212685508199956025859438182361143557842866350311983509025062470806748063075458055285391414475490018108433306354371355182116644972011516908440717700689181628236053867203075578118046010117923203577398932923260728130681101563203216494708654002984042413838166637608105205056864257639062509547788739917622108880471201548200305364740723152399359152732623346537382924969061600585823041825185857902252041184228535882666960102762757811648330433474045496740146210450563021855306357904184228113646454364109873867264329761135201505771068660022584682559446712193056047556737379173862959077041099864405317586081415585435339845037938499612842073824756510962145445392371413883291407041542468537943055842721739163553470222111165856389271505992934498354458171013916624746938847854671648801444030165548019571880125523034830131136197173087255892682608312772250591742236751680782984460082680650390360411191086034996966397565500681163676981357618890849174318467235514536004734964683503147762928165624784474687505181414278842539308815750315298701476692279498427765878293863134294970532042363957015511565059809178053958111327084059673218911783026038178474612549089861449898052624684076043243529060570468381566290276800174954959860575338586139775284992234223153181826092640376345189641623842192507749941896159403923487877532121331301223822839905193156377571775921943693731238032647405859105003406772886104154373899917897917650602196972230400745582940976308939197587709573347612620317075904127922864207627171939111154064248115493370131375143200750565465683702337044250595107691494936498892962248631155140561348600144429754785075497433195991775718741732734412037582416521997237971624866485533701146885124011518234432107483587147677741617690038882031582609894985183758869425292203694033058940805885105979124718373530881194824333984601726089977808980518670294216957650122505356424146774907838762588843840239579804345368720990083603972420567454012429273976546155536411229173017169328892177790428670241344118555296959471497576516771787872151850806664627360330329029024425832217738408457128275314877449681175205526851475379521621220901037808316572607617598485765979565580046605667255504063504954934065011288572203837862447193266699419415742069886575696204787945739362280046263063618643138076619482459289777296299991247305950798548257350799805453689122048682600751786609002279680642216251430268725091594830957947340199217931511499603082709381339441330827798116734469839160012631295999916292458311476802004888524782540665661620575937249105602548454848491790012286203387683687128537842735050703711479602064872122769206919625483255973470410340409540979935888888064415957898766504871672409207075724862371740265014235395003052908251834825350514172820173246453267476632011673414294897344654511132271440915439485600613957376699005198675624885927749975247060560313277540359450516550061109691409022200692506189489584336788105332510104154419481298839267106012054185388324630551658346112254269268918378885545052372419687815491822482464473755668228185688936758190124353322741447765200784730060075531701108565803580591001736804924552434273094213892238584100260595172387671529785741420423697239362321713335531837131795958614878780113647422565475622629511757874749602265584469520211024048790138731506312460803922285639108358704015610456610883820139598866808778877559153726512658335444044501590632890782978260414024533639166553368485785706580469825737485293138666163694538161796435452358151369447489762953932721352647521509430574014718484592641247874084578859868847362337806687782387843173672202342046409365502475246332315091956059699480399726795554634363405771002592333216691146530516504566560670659259701238056914815384603938840339121724787403676043243663693651156614629548372829488121905982474170777432767350540753740387723505513917681345975645184209500401555286662803765789217727214491647076612723471921338625637514735524107135056694575123412424766944062850876079190505271204964198085472362596122278219040226899301416238489205420311952938848260876006329905070513472012686989100874505554784501370512344533547187101487734454563247062380587325123105659597418803690327606261948562203499179825239536775375038542294782603967405062216279995291607042716676583750341159661456277213807513138993592996990388358761971309952158735965188016491682893620248494075453742376189750576077732906996387146553291322873440978354481391610064617344642702943447856455904124714602424871280349931707134244422381717726674781481707229258942847810876086971300135129336158093890781390583142374377495633154683557480760472895984268870760579573239778066449738457946997211061923043491214668009617053057528196314766964584482209006798407592950618579648726337396557268045476610363087083111801505274635252054222040464046906765931169509446522881877619474574896408786512719129044994110685354927868548162795310645352670148901276892409968391852224183092675144409189180412766574557534876359780190241474486576349060514767668854586460579604069462717078916608108905664095807927077046795801539286117011949878224776282745259439900241163408992465377624603961643554007968444302874530662498097735627493063216532312179743833918558269270817413563035922673774228588581033632701302676040702089164850265129350514552192564731814430497996042625083504062596721166294991321366350361489194619248287752752184199026343184896603142168688702830002556630609057850099798689186386308967383328412466270984763731794116202516413723281634446022119485795384515675868723003873631377463470587789961097652149794809974697205099334566797263947860842442512706555436924475887099508574662973453220903106430661710268154412215897231604831938564848585604129811790028858774790383270432787060041564718827071164539376822666071702371726315452334361370814680936427513082596774008397925820010980808511615103286768396775226074315479336038472873043874997685894679808333040514365656572764450408807825908426766932182712931411125497168986551802474690583787891664260613266112946055528016731913747062002538739691922396750688137122932387210288085000580734338988459418247402496764184354692592157675734840087815402990955759688517371611619081366808186441927367873252734599773924496500586554806036153230614831951168030673427951437945324857715633233431451935439676666540045745713493659978402511897108775835076944172467299264251431466059593958650289470321142140904635775850478866711522973051725006076434856631780469844718130313500404597309265108878677718657587122421570751111875099765613400414029240300037402038817098299578627714116660889695586742339292500708043693060937072208881054949879279890732500751274814025980039278247425040240495013437383140170931588671170532314698673007411589434752625586949531603596077775173123469041106185907085297820775094155543604280740938130904442282172689141722341433084259612661673206399664228638380452167358215042579885517443927443009691902682089120926531935399740562415948227487321815797913439628513831052434029782544658688057208726476691345733780379827758005194914444652318826332473036530479548145256446084702977748692352249786376992441378063622158972697465309150813297006179721467370906742281524816857398469227096293089371403145498485181677784612969745244065002128299638359689917974582167112421885085464724962110353113787944718945591544514767962905656102494161502802317801120584714532931582057338065761628877280067489649478162935238636750377647206060257828978408768762925738597957523858864381304783077745114107553295536426475451786552824677415891811362440485755450683864975476583903986412995881670694781707533406001481888186639337937544391919769380496849034333256504744172811524611222139525641772265992847403515820618505227226429128149227352979090404154037037533232822025053114481208494322296543332110383969815074967425941372316974583260629377029241435341675510386627241873808324084197132407328822944332012097154362077122225313638919128373030821484331509735596352101820660418079513323372909995981489692982277905402746324419244170302975920216614580989014604968505151244879028994345995481138468575912706468712283412516301486634858402463974473026819190073519277456289513102571799706094263335933176987143783848571554037697599880748287916905108724341396068217939708737445113680603009145656645246302370451378737013273379824031370719093534744462914018881943955143372545632284463095961318826678738544872976455754065562685591144674920485146861356970814701871222755653866776489986881936326282335173358873604915219397039502251162175356032348323887118058138543174721011721446536761166489773967002247275607009777860885023357820718991690135771713173707009832214695239998902197772731454747162715472744139059367920828644923493544229401930271148044522793273768258051860671522233168311884414514704529128264747663269362848263408697974572682513407520050753445392458141403787246637586496993579162467524224829246783594323856831089632641481894827705861642287359670491208700306382741182883937209821354407257441159782179653380514643169017866768407256181699528151839375621283152933010977695005050130566041341861870402382962996095308631282640373956371946268920025904499018413759284593316371610488686220531655436955653763350349356317323787318241491652370924113206293800986344447563955469463632439734434358798398369258768286227601608587076120373802014766911948422087878666840943118266429908308020483010933432111476283432944336074301827743971016331077078312287474477628650753391310753090130062496638005449557899009827236998237595673218848331349358680550545513852641746708392811539188438176400167562523334340199914293479036074054053426798561192013532439687800018606108290885141800053456409256909267707553011701119871204418842492860797191103412084776599092359337848942907273785843798418084751648968067884770553936717620734120486063775075979132005293395590908634775796177300605116893887773269052259423850850332560639876063218473911025603832509297433486415582915929080913359350348839187681348993536122643299601488634993529092336485834576670201855223520470160351810104050051542381684101710017916158265504916592714428677185224119000349877162566626563434395102695131658928555447268060329372594975528595378757174904609395710905922771589590040799396208034346800626153102729775395950072427089212064103729444888946067291099542726655442886919625752207336183797943903691202873172128067316994905883555798127792604030417018085857547166251149567834719282620382769285970473660760370918623687650591911971509638457550204402963641683635928336374859630147371906943902121902303175207348212475585966692220128454948233212393030023025405533241297759923519067226934601860759249220703617903932483202032137200383618942124948694780494881708247171738205184102337370861331730058393634170187833595223219377202217799688798174452280038100596741453885797037442609272625142156539683740357896590922915986602181810219670261973675953243388716738914299878817293623655463301305207843114233194189424243908344314327158505673617489387928709874218922509920156232814292364604821566348496642565173325998488889381665748568935441917578544881003721718470506707702548610242613620213696941110438028215487627399990281050604913200563838424903011973046484538652947108098334573721522200313725869720957488318395577247528925169338203952975070922023785629491399765984738641299569802585567271777392825569697400229363929941503658081949052414198442141402845605294625578846568593871061091521466548108997114928685212216116275407622218263596419454283960060847671587163475792656174634466286892225530847785193903333511127617441117861670537965208435614523826731174573608227882120111919135809809829821416393892973336270588551936243794420035615939235911944006481192215238052807929041209633872282520956531275066768724646911695351211828116533404520541795232147895543343524337927756027461824492454783724707200498518665145387101987966258350910618969374433885073636235129526552050203131068801276863835264224660817670313990398598629725793737194848599126091021913634915391973045250385502091192376807382607718901535125802643544331598037782576708834804632313356696766945229328415912653060767401512538940792901363673711804674177317576416118528989683099960260749674009310538880068553697329757235250841932723987023034653499413520473129453948463743364486867767764257761255727324380320728146439714205686895429186213479075521280562629745936174391618434739508112326302123957672937882590593569668528818453037307762346647130344947494541579033753169210152456466475285941367610165790609773280884045536026761011900379245796902363065312461868469764437539518563395759320011808493391928126828555530125632373714314737900748327421009796526758639263657373603558728864431628783017172275804667455899455457755461504346885738274712801639205183799395359417981423508720318117457331984845585495549013852708624073809835708895835882010648542818531970629432224512955540066124903220192439110727457110381639708466809692834266290079868847724649469487914456075460037319434741872769797038578282291388230634401805513067604348410929754702755387082081796935900097313184178699422410063907860823774704045473514737172455231024167931991832090104836492767497808524871750616539390383512366483901914220486134643598114685372027454628424264952646296947851792671860945427178217982721522957119574855814847567817409533502130927263269287855729406975034181904971745280755167520964874990647399988082371474561546515056081734004767092258297899534978210572130872041857739039435225275735146547313241107084096017230460857750242111621047169309875311925541336889363221623900975633851237774653366643770875730163276166678296125347946939759823681754331235841283796072248045889957720664832955000933172439949979440200089745482995467161655393483618278395543522455810410352772505045701974713832374720011965069566244076020395066413694452328439405142975511214198575110805627970656074574774943493765639884526427569963851370938853972089539166786786523464863976372030442164217011384731933357311241294362506752815096676082550056069428024631777319895736244222773593583919663532541816507331231854442256044917592069746008306006724031566642434621307439464241421374408829595585576643131887533247928320361365348813997931606599114838740829280416389375561813108648937897281429817801078409195579823808133344129755550837607253930856709562949370141619506019896590049482747423009079261020731247327302142970723713308623153456905097510362145787085014423571778479218872011303179223106932425800435635981831012363070367667125793481001315411470121498005777146474307895892664565102678428309163774522057487019029311649294768039446696411288586224868983906090592915931347364109931902466544572128267986007305210349075574237665845603393773354907588443631632161250872363122615802509568776817438413898434350312992121161883441177001215610398190007499253104764334719645168795970719953642821665689313252462969423006997108052863036134585369291440113210733465061581937588267788552361455882792563274587859171709448702004015109954756105395671974167089279706943303777083076160977295183657377101176199961138790117950014820403296987406973788901249023954820274216631561673642831420860418571817274400337010932548451287854609252924796846206784179742306023122029467001225372748861792032216056323435478072722007073369895636223399475425011214823442455489886405382387310765747030717266096563743309600609774024649208038956629781756193468041604757544996401996549676002046547171377869088404938932535381850631891416348786763023037846608828707771814688763524616320526530917965648162535265988950186607937842976652833466292749092747678508188586256726858434229429738784133413189369077508965473906430768707744295880335054586043629140489492247640274532716372740458118788841525625675873563270425475187833882885790720813425581547856478609241445686391611881679950252554254770158671156872668339418897648602686062019557236779632891398718174573418536745606037369543612307465050883449546248479029071673777574993934550647126715199029363783898377302933785356273184857658058179198634651794488684457722164942720014064372817032969989246037075766909840261832581450196573306489509924917177579991873210637892890060845282928916916526206411816151301300594883698591093306880577134338387610237664811236354042994127679525606660916464966025205026211592311637643319156618197920405275198519170181062498947222377044670128084723578201165986874567438849730562461865323106088514574209178655486070170423670128648544924310427470197511721585175555144876370438775708006851459317438457526680556563686852391590440611470582730705198808125696089567594556401103540992068161035235141365283200146682110335031146982983258539913937612345816195694489793607382406974273221936764817442597803400940854987550857791485474595537933137161363308963954156977942415467684601897519682526491308549920867533691032685973685044665770553146184536151634370578267158045323166166442673463207534134909344106389839762682271694265941214952979122424682508792876636085959583972387786814637635864944791043511837092018873548294412510606617547629207387147987683088694638582814636947613910816025677830280586640549761134702990290065191089909782129663918258976554054905705568005358454185089824468890868564540941556058985869966351769046437331363190654561629239202255734533691062406826065018382384051277382907495468880113754622494587275677081084149110524103892739264714591150859545410936904470938571738687980232058358654882716552379891542072765924222396949260395937792916201248877784191071618877439680325333477028033255345958805623321146739830114433727893634483580259948196623742903206228112718600637507861230908470440451584665000085480681195694357875945431105188113517386515109401190437263679835754125365789358517513102829969804121890856223863296121447301228388796526847085378402006931445184533888159142519001719044974494445156430196924047121953356764430530429600714690364412710036252905886442951778384070964569251793174460681194487872591136977256525163573856388591170541653896654339138999669494818697564094856471710065502913260281070938275391444301443965030054344231120671618089969062826686635422619913979728752293656490941112499975335516866846447065563410729713303950645118303892644721920511911785535881222868012537838001614579954026723027772682634558637755883399078214306612117657311308127478524192610090720588322490047767146265082405311020197308806365458005792475236444551584663966333239739162631299290543215787430348409488306716428814391229234048651125488402383400640796219917298875617742106770542527049981145693080727763607598512933563133135114936240922377118713592012080045907690214341716175198567295265607640137621406486800455429397430466457446370393188086254869942101387169891727541462652377301457829006317451597092103734264210967474021762220142428484303308471254686854524037517669113537680497547094876019428314455012435037642409065875385023419820651433929623511382478341143153693438752362609004555313668937446950813059988837095921266679402114773709011669178402432121216078828277558033849298786380773957136704538536250859340097720586475736483454160262921208134962788186866041959026694765194497518168024235557134452003608035769258947304133946156857810932367467433387803179844002322101429080906663259562436504192279989118137412116325238828417115641160138758243129700130285309523320479970009634071993604869463964968608407012800872931719722840446586268214414521711956018725231741907813588087744108641626516892831883923285508046578116046140585889932885231297494100014173662729022434137972451483757320349074749398644417847088993481530840522966916396582127234894573232814136752020106659783203044897917455222843828632197826262382882818474048014634636604799704673384079259050003669268915114908855231054355943972036488488208521905928197942240669510324762382967252802771404264663296864487294764099934652373139937590434601174085381846543678400354960439575303900238675662061559554503795343310318662735411247851905032027452188270677835205013064903169885146528487264567338838985326055005349581013334013302296641334103502891207513769748549949496610175570934122399005584533236655721619276069056177528669920392794345076708397475710105593159403423126246370171283434841752230422817528916766719409763529396705160825055450063432721243298264863104813473869225378081403099212158849008040384718687886019604622355461406176193955029754216220686081149930867347448223848697114319336035640589946571872774880314027079549898833496821125987671891010674974069728600022776260340029835954647755415475242703769935078266151535822456287450761224974763582675181171000147217390735260263621678220457688111843455512418390277719396025493618163628697511948847033538708162553561817581622802692396064725311791372041651788142242408676631230274353419804059426497748010602731512129652652042671480873829057396236594650036713549537253476200130301037198902847345448518730798764074866553107257499862213703911537265353219673341092983225125733098427962395806719978283050344184880935839698588201512997595257086073566720841771441123266051952075664388563453083752656514255518626942228990692357272034435324364474544797187015857015711021334308613212837505740383632479465140626172848001432906155465745781616156299469791043480757055399751772008230884335572282825963949931852019462400029906512348377124991306109323820563529903248600622831397775058797538514769147642108576115940737362715142461403618476085172227805495334483479525973746242441133560323943899979454764975056543104728418914795085008536547934325527246778366687909289907174252861763928563521995631931849336118176979212489248546231265027219240877587377298920342144570736006967310200472965571664122315794858089468164680399424809025293353027616586267359231097823481247408162878157463416183700272277882877483849284850577540143616270843220085793903640386125133667851498343887262363756215732060314054496683972697860813077856225791778677808552333063273617163317622548777448250133322632791734037569725564402621731003538990123718261672539516661747502915643448955744391604610311274971927741020267506885549330897111939567835453125028190779900164011157729663501343888485525489548274626289982502738848823658194123809940223282480161100154418878475056077760547354833071032154531710875008927853716575822276102793764006079012032217576297212350580063516194110035456336951136038088344261464388311163676401825419257472196360113567757798469887090270417989882622224069413282186239379164207207654857281132867779947192433886495387249558459293835295708786360880347689148407824151495012541165077117606915278702124779995119998627545326597974085084432493792276973194443560767153738554383126094164205314456089149069567184453359195709617273935733061527643733653974636543725450044837564363816391113607539998701491403156023189154644851465847340350329188126600286275396094351098915315234639453223337004574458488260199740516712699693060893591034497629685536189123628312659611881905865580764928876844327318226233230410904779918022722398187363291048241729382603635267916016951700443888137817404861253450401908064361399619784433707658035443123248862706975241628633414809176106723139844874577254112146729691914870491431939967672372649504349077755615368149442936292331373581065017739267568115081958635915440723470509861914904433032734632155001944542170277319876268474580058068914525736776823301289978305830591465389841629918489089322182123853442894453385949594089139460194698266459348409915610384193168741271455397746254478351270888176268966104927398572759776909545587901744046796882678659963478541976041404974849971317073559230805563047934145400549299794022839127266495284736614565962909468309015448152089026284623472745063374385403874631722460588411373114483731060211576214077711414664422336726900387769500369864410405412895240605678226321320011394968258606924716024783316062892925811230051261074698591641311759450421433690664313217744616959750722509135836374776108056924081555269333254749230290590722569363099896692141386538004042387988104102538011833782169909275523466140670335623410838278674040345019502321624001800460439449026204362015657405515185344576373768073309371775954728962687110774884886793194014550780028229110495769042774725796413960380108460052611426344622397990751990590132336628542274640695566276016899754318937619396464452068302380916770943713880714168298774405431999690815417093031233362374579775580487143385763391101384147590351586699113757777291568916079474159726310518920132995837156880346429829649753533077656150279662347453265550460758328679934000378841025719309054909138856193925170923081322130288160861259180808018421041193939970216071279319003706152424855801124725077203189257393225907441114797968810944483461671726436285235305495552506718005188003846321777587991591238089744475824783590694912914295664075391351876397714885937908288912351770483359008336025030065002994832470106503091242274975468269485595718000911095315468071279760919364489909765541042971028291511217083434370443018862906195120585690223119484446784895269928357304698325401721840756789529604468438533018165783449123747242943475788304466388139701747765390366594734974815128537897870803618110787699264745782499337141636641481347284910170023931074469214918920053784917900508415836451307274006987146397992659598857105426373138629929652715455964572659223158413619236921668734658039141541592766069160509456590189338188011696535358653396322085041682465626148661333943046330079623710373391226274285544639942284724970105243753505356296415239783488851894014230036024361644061290413799003064428857682370779509777802009438130245153585623948747681104682949984175119215356051935486393792153074469317854756107040742458963827172502410405068931299828847508452109196379042293127085317428654853950339508920502450444890532199909137296260848025918057255935407425860371598629942894176713045728204193619335494937056974210369005497243360690303748504697356229396047053908002891388089916303253921979511558296834555516636770014905783852084612438569935360045258926125815980877329309135430045954997787449617314190270836224067821853909559550192279963663689571104187388295521190751161266575992265494560519679113952158371531727218588144401885359360561775693136403708778746853141321490393693626697334093612502404421653738460539587060500622362640515319445012036133227095906637157512428184712106675507286370329812504144062103055562836933838262899671215668271748350093666934467162518649625182095148903525129312513837884734082902989208844193825641439949688534108950118352696046365749990146087426178711786570712782822518675888402330862206279730651725143977158210354073037199279415723720586236145968061038728530822944517809734459696475610400087598155097335423953679617424450005280129397030278684724661931146727497298827112118705707113951593360107779875265674457374758322597767958388689471068778664807397200999918991144671746938914359577376954888350509083371467295461537488347039996090365503566281564376367133279818784751327704468332416952079808758413983429425921997572036668618072192046224096350696671563338958336283151806860956986649800862816277267984096164166166662224966192988864706552862264083566036186647760943088816562320271178785242254278179109584044275126593472789024366455044108526051219535550468674953675853527971111416546930350938236180136591432489439743518767973567326748092801263072678060675883445939491705599781165604325928522234893638623726163252568588129539750880193270899360944409208263027595537177600100997049867470395845491239166931183582684868414343514218452724842143579135745235773310261270163050200065169209989277897360862414219421562637617536076134092220921628729703813712002396951876785001240007120511446525840078591159215194148604978766487855134962186207625691952849084511079935415872084843078541190246019457990298945799044417470369735272964681584773871612106980544820309047180673835493659260687327601678063569607183615353293398349687501587151273851731196830395310918800866831064963514711825735893777009403624272853747220152504926291953649215145383493430612413509409826342425976701595296601135443687349924123811637569892967505963081729027154499458058574865491882911884985540634351460231313221464701751764003529111549214315876114849422738476943773055208193796640260214457094350323755637582356050560059330512656617827965621298547441204953618237857152275203973726022223230325316279616463395890375811607730281819875760523666202969474516404854639606864504193981056433249223818261748930305562819352935689436748051846351733456965784107196342002198237329060766248509644108262573078946054528401874174591152511419457870157059513666110274444984658799959912411430887805478481070601823699199713918139502585225457477965617789339008041261201701972679894661762045256475560638190274638174048135988546910302906160211892430431466175266387325422163943876672391958406051270823758630951311493863399208621517663046684625375457231652961309018711841248781873898476628714964100943563883421040897380572967680467108988607071091004151808785634664693868942244569618585202448708506708563042114024945074000658319766230836071625952873471965405135316341713418491310910250297039740116745862566655106596965387680283752633843671653343094101448239872070469517274611385086253232676802503078418577798823653014566840143452893596121730196255671876256499847958500028597583408511909778246732820316815840840082684932358224032509607274475978435707507493850815790183863605521224796957420131486216765495120056961629759186177284832387389522497028867462964424709938124643269571743472926783454288734789868722595533556636581044234023806496685553285471601962146220313139433564464343018736373870164856247255833598095613921170385215260108352269512733080131213623661704498554251059635969746715702852751778958144474569424362996105710230144178882456088301415933309226421675892560153588210720856188478424371746759943772052578176706650972295077795039756758879274579487234773379419352232787262647851001789031345837313473118634831310019660217960270565967850734227363621471639948917477152981219153993133560712305366497762910858027342253711210672049059619803337343798425613276736308964515019264468100318676982289298115449422100211553562235831010984454111601902247221696621845902274705807729029198124439983322210691001593221620272184994217587847021696557366171254598096131525677305597759450200675887325034295136253323716023041618695968203973417245470879469909856882789525084454991411609911156005525016446266867922749057060447948887548982351077736579685236607762167982442192637854412606387642569590900829498202888812852601442881447053505611933375026330687214509419001939318455897573806518652181718889480142823171337681638520865573944874284899583955606214124866486241370086874157978285122152717449079385254825535650846973148533667383294375806541203570078871073054777699951245495622000262084734432753627932195036812009945696319979441624432051791395666249829775876660263585654647067577433393863035991264985184413711523669583768044625604588210047507790333454720099757919801070746156842026788429901544195642682336396816751610736999359495775994723498129480182886399678088207677986480035055767386721358824213294586368582625728661333412177318684963717768618085828645156300888136418375531475984694579054508019072086218702929277677109322050527058576464631716998670799526208076276061121375501221490123555423412281681113585558838501738523524441372047156929791729130219633904135685122643055306141332968809818875826673627119984484661712583965631975373582730875816828549139325548970714950618422510865103799055988692427259684800285345941112543194833845944986640848554776211802788183097157855972043364185138572415428258376933458073036828938874058348226755938693071346173159359075359747105222100865785325470495617655437410786925983142600240135324006829089580779166740826448651681399676093741264089807905617734563329216811853004814339501777596262703576172680086525508661514288146611893791466879436548365492782718507757982975624690486935430330589507607023095629792319795621230091703118132886341441274215336001230820513390161293377152270882226850906502608577967405336479024508632802296170168463400196161369003435727950882455689088389286926630591790482493823505222087729614483181991765948944454276345343539915863241712040996731732311196368370448083964468671039372640663782317652945558666251745462036626524770198035179421123202196668455560441320004176595628819776425437183868721468248881535322646139459738751914805852987195293051454343546443421895686071679567794866975173771942116483751194854358648449798265361168443791518411968438928551192808287766012597260799008561374756586794206158801716251093950806859984775662780638283954920429270963121754570103231852145256011946846260055585896428113101265284615256637252825274339957726244820099105132780747418932342610767117805125755471410000382643985105753580830623359152415967040452749500082172806898608437017072166162348598313842810189827475421947282625031924101424633232494003258166245282026016476665860935807191334632141625708520270987511233657036108720523435321079645415479485729705198988351389911269236166836937193441438223832179551939743984237399956706037077490133523620176834256988705962178261521862923574310604690200901110167001878007633143854345940278484385579360588369831362218317157157981051655833116282011444661073928712625196890171348226998006550821005791620960851592180918140806794525603389134913598987262693345849528827723064684053840284798474347040235727514656829362363880148100992988326358378523402275158486963377468381919496773887783496409543311818412660503978377984380127887215234886095420385013205039706095908129164416754040761312571588948584444201804277895460644950734769682055180833635578084400780044593902788788058715872198114689136563008788719440015696300063690982751939738185467300549006051060454558289709834985416243640397669917892774965590863888360746517021743892691480595985953723303979554551720025272800859295427168142782415320320300297560732258903549607715288490846817512607054935658527144169289802790783560754945372154611839795300315622505340972827548691068058112258132996971257433905012437260029964188102591038419829914953654147467836587386472036901991071204910431146955101156932799831342434014800522936745963004642416594435236723441086850151378043322955835621414773986028850022891904204091592089407349322373617937855209309236622019383386477118547698541915058741479316141002588328496240276816470041011576140802676462904075046946988013111769374893587295335332185025893427627677923732249701834860077107435164049061675833802634571606490383349014422074179861349113562114190894881916049062740731530212717399908299620472190360764497914937360568404158881534145786528155130182086524935442972173327242127029059725938673596632677667257142924485404748668401900294413338068966885177762180789292120915533283046987232090108555731897148971421908298698974782341312601282318085349222986671360270522120289633284678311887057800408222645783447042975033730407883518180004875284669982903441805011863140519173769732702882493002412069456127208289828761486015933910462118445153577369161691499356735013453003248759525658807898963661077090223267630531951773765189920264946595116940400000418185725498454840951305805599256757104332301411504824856386887819977426300008001739689184474403971434642920782371861184180912644831442500979158102163600358757957724413458630077432239191491047823071026269387348813755281012435013320225049449591531059320367869246530084535167124603280377229098227928689683289266142482889372237393836086000087416752281816173639918722284619394801187947029017797772732763038149938094468592805715875414386943335853555938351569711585624417223026603037209054866528019295026473649117319465837656787763451526573671497059719625573916869957846201810170947348471173394497134686680151221807395336257749470600210559170904324554273101436271738198801527645578307098410548575732151615858382826395746086465420164959366963127829823106420837609358613613431751685912485211147182331465770508106356276619769005185803486611534462292039945855859674638086898473500978585347651811471597692082653684551635352275815240895861052980226952738450660359068648575218798021591938762404897292107635584246308824779774164966724739084127065875736908919962340112984353983656145275621225493879764960241292829845021303373155444522868030428234195165892845267793061211482522496091547873899151283665837474596373332136919573513028324406715895354234071746496034464030776529084193453688313431651474701006081235398234767207905977030177025524491252021428945402065242177493823025029776088197906557978653665301821158539863087020338715015819542734081184718076630652170891436373036137907862981474525316210666073489545303214131167607885693550448015402258763287555567730307621379806915398823060545799231420511773381597530989568194985627360517312798713113961287642772113504949442590246229147644280515909950583478353308796431297893734579763344525799766390037952708066939689733022326823457239070223455278068746065711006647107240289036298029239472930904098452219841679519010535290643362145620111302358933682196294123989040384787424781554558259880862974918117495878524178043563861292307368566641820905817274402716866819312168213842844138834783012402966634224917834345324468526548114353502021861018656886853230705334232467905498860855420010068546065402628026982413539343680394429210986187466349760749571204668878999647019674629969448399971552133807015479616023285792955342207054797126214043016918262710333507573163403019526995872551968394963136393044394680732360688606430939246081608437904222924976052590317691693022755213473834970201768122387431061305944942354595261116907030860741521043965506235808678853054752586518710034695968764287628888454017855720442943566659536834854085955503105109713037504144839201777818100703805788065919948247320624103350600951138809571244966590119336383401181857763310943433895462741856755434320440743779548226759339844058090032426902231076476623459314217967506428995233163092830733631808691932075365723068146910640203163243429156537113785886177928095254097493235507862555433701846926593132425797052396189592790352247085442697573102967848041074902822609827020488348683779099231843294432279114137407077045488557667786285879891925691217460863072186841821383008265166401168921335063345900750485866209390612610724248694192437682253766683027172587520003361300898972438551171673392525410429637059049837791371488890996294677749915235530847309708533500076995116557979346230093647843612103572789789281599648423585667120308109274597497809924486092423394912662232698130649401685114416777547418376685536014250418608675723528768166481674394795099775438004925652989968347473803033884622081718446067934142440958777478597181511428969085142527504631310272436526597608090784351035069825724222678473675506577861082893279958209264559357876112825617351174438252801836617522365337665904383032764630265694656238958537275056577640941674278457996240686388277910485912469740287970838217793528460715323928418246890202648261454916448658920502041627394683886572270439128356323475817832876248333299092939711415213253578555281386963621256970231966783191771705214632927655978671091021859634319161404744693746998215581258248207195017859713316206116253752228895315366177938836717860164738059112375549209138263662614052435222942058287939331697137860920217689733790888721728372080110942012181281285318050175417552260787475964303695150217137542111814622552962167840963437461550691038208819325934970963738925938874618191611617235575158700315344104188942350084163541622323856662273083400799015502981352329604724341215820737861680121815846152311953348851632193066847356979721532761721969528562726701414662165448415969772147944005674382810265862914613197522558502758957550955593019145310764966272579728493421456896510193200146942699970426422680807398439793078136160538453978892666873426535863628890084118868944100698776878050023831736373231025031431905528042155588026627131475530869472345756874176908057492764078897809489837883344298294018220668546942834211227239367743433155796318114347878871293294019984126350066150520509043885474377293158710279708278097616646803716938701862945166651641639119223767687332815983395127536865405711658223195942011720846105339805866484054489124022820728100981679770528917903979653379312303361518134473141068007390421136020931452480111290891826490783345589688822743417549746856164716000704804493625181100543309919906207374676833683597938793059337894216054595466469075524346517471448026134286229308163201110270568697838687611138052656671455870656709139746791292243540965676522695217433602154434262193968481220410457822733598411259345841838519423133606854153047304043986588444913098334279096650456135246888440359300912327670766569652555495794112875130135103410979524188332574810678591687480051462907357260610075377986670315030811314460597258242098666237569194885375312626599841745148769521041959069563413243487321333685905600437064977590383205754289725070033307856382407826460259053118397596787531968706421066584276089997945294194140166760682480629473953242378676830634691521622038687110260771862946846140342727192124659245755903549129739653897873722265367114576277599804482238657195169010297384940020432091644477205847026242614823901475792593692918224108173547697412057103374401141240060454212856079464106563810917838761416719077942084506460649524921274926376052305836036966138515479804007872010931032708836555930447015358333072404475087896220773336994102160414583268477596958726122784120027799675892434091061753057812077142970651621744610687076207843371512998920309452200766699770953824904544431431655261107913538221300658100390667528024696384640440889203369028034941813820739834613908494959835474302552838361289278059717960879319917607756863092674699069406271068486512615222105179129891037533936288786423048017402656847266247237202294767526224696842022685224266242379366614487155672176681796688847447967406669764769800849869964874528249369493654097577065782263129178344107085069528750713225576131927095983837909942397982666755906962178015558397973423238566909664460373567145218253947132813295097779985133468605973401531951417696580540604567322585043223335997104595286370520285403972985100065399637239986753333937034183788211110148470179956414018539678577089432952138114646055251791098257774504167464123483889596241586471315273401756608826818642488866464821847775316115558220807340381412991651099059750060699711609907297386505710724439969833027684053067886265504491374115849394489278300645480443104999409947141341626277976010213065962382100787031976080980615549815749479902084677142557792720506230753580418570501459468075024074027538805553241169753376174493240264105847386621608841537086135909091733349492456654531942669496890108672228952201503451197152117162607176437538304311062346025041364410185910128796065139897071301899097314286362116641864493348866480314225763494915175918734392330263212998781753161619659522696072034853939615796116369208476462729469163608055284658739049709781683273849306974357290170231811880692349534181826865996351315504624214412260000199518622128907198927093006505822984561124908738178597176572667819916817808295074769011465122362991281447765430105173966606630129636374825791145011701991129626485666690190880918367420960835946041263088354796579819863313601183095012637158927003343771290091303312649711676605006390891983745788417049006206381860973078885466357334494899514479071408013535948615345745169461410536726093981421459105794959042256207970563260807930326836287328185917703893840727151457479450707408629810915531514048600490144527894461721892875821947490144097112177400894943636739608600351839587542074765382208906268270473829925976742426239840651392692092552649393041007352072124009995447743955916365868811654845270283202368497347026943834382520654619057645861943826632033303318513462401999754887814629294253857715602456039525252730872089529819889552782269236221633563499527862380862514154157667278820940671863814692763532774056994325225332449527667128720012033238921781041626085470633337278300876047295523387362680217782793004872056073215427191884609494048527944603572396054123765651788235998339966259320395064551543908344252209661403736195041847104749044063199130589957723883527923206296429514107757549350745582092185375566877821774118585415991628833232885027631562100734204657002284843664728234833795922868217707259595072223696483299071152377516382138655618558265976338193599075495423611945117621533416931394729059046251348840562550906343402641950581721346555386858982636517150600888152913379842149957398616663588054841512369723300314931768090803073047251519259634488999740394838747513944936419134407623169542177236116094016178903540841247694282050673187041368124487125590069054548416556893959462341833184152639014789171014452049805186247508246507149828376475427621485001016092420506745300526699796397184272243191221429322429184629139863302176340654222298654211523333165873468149465896155673063723431551220633638586910875408867956876670564500653330050858800547993588549827624530401246761066778515362359946791571380831310146138354027110895647189723635632632432905410987768984974606644717681560482504857845810005124031115419147250508132168562915362324747952781192230736506804724354124876626097643187012783939683925858576775781354190697967434352985651558007038893560026334536946313811310996314627685456147173936986194690804701719628808333826068999730249760930628262033814462971661672972041175437007475185243582221830264676753086292420707044479115437229084722584023331189400570912812196351156155069265240952390513515249496673920447173450652705969789528410883582738088123324486349690223499470695258584297101977667944223695150944277168060674105840175194479793579998234050465188366899279869874092517967412455761313965610104644016577068745966263000611069944315746141371137788040093986935089230200243036168991639648736892767856270537094261509951698248999603852780499015298770344765161334590180120854941566110100433248454875298610686560168040041564679558369013608165696578975889472491752000619082934853258201133929370388089036348539282627788573201847422877556781898622419327802873978503837587266641781893871617813821328454824626719344895334637164043209685879581641225446827589638200826909539325488756854741566747176773399767315295479856515633674354249173673075978343669208022542619620289772956934302775296082226030334305416608363670060252389219628888527309275642097747974740214016508873656806098743704682068086537012339820494628535279643438245269395192491766612287987595580760904304718970494390280200537095643366003710196427006823160534569149923370838254878999900844778678645267988476694424625934933192660469312415636834576465484082998671921673503910450391666342095634980423416099446605793325682501274392391161457281300964743791140093262962630210867543462154201042267495278313014783638172731907836806699513478231702186914577253037920270346741428262731245461893070584147589235473684593311229567838355265583520918596077682974756781195323010145714949222039939562429513330385245321554316067438752943589237989503469794931981350083262486452554930730695921625378265823615713201191696259110760233785721908669724817054571032409419709092686113769920325184430424630414937119652118313537725824597356607747859160871838504192428882522185070325095819244999699750517891973608743462630609968227991263119222676922857653398522652632019446000958671678437498741388821575748765120062455859432312245806445939598387436893085624882224706972830237284586722056137911022455789194833657163314715308043450164955115743196956173048873471566190635306702176754841743137520347661758964201506468276685273915808651286591893127127754420094483350647723354160783253579273010160236597410158790808323623544920453614631057735819922306038663969791029482308911322771218410078098486445340417444585438392133943338866742868411978896315332817754562397930626694771547635820900766864408950877384279338436601899307672855335373752007107697955991695864881793311644900648368574476573853679079043531119683051797606122990673737155746722366453146849398412228368660815383406529318838970150017853853707652006240149878464798531153727167389505347294863110782242424456504256718157060693945891202271497664644868334890665905618646572916293341794005385546979619536408895738557044218241640366636154469959603466708696885026034354603546325506527851723440501508305644809702522813294673637607846002809839412071194458728387227531398702518425521822172911671302243198122238175710118453534473460324245567035710878469451107495821963290028987924270494073487639235359895691734796106924633607826645750187576053448202084663884706517431576300508135406013607363451767600233634909970338979345375796146730438115996544301539943943446407591049173356838494537383379969201967786939046250325629156507467069622360986092877393449412087597175211015372592353260160742119624477805187197012336097605263212363807961196559457803745736242785451878148244315777956946044179266902315422866870586704739089440817998113082450680921687837008526807532762919663612160472395088418298273192181821534332739491359228683009434530161558628102197790550940033589507555817839935964957576536081656937561577354731992681722936363051806272296684390914044281961760535371648810741539831746460912622078282871604961389607070993910673132773887819933546192154145026762268456553009513381406901021249575529856110336562311630491592390927628725087188162261289922986487163367225468783281160649025374193478909347200794275223498264934222473009508123854526281590074705530905817799213678566918669618787307635256243956954374426601362125276171117058890060844830084710524006496455184230891137776829443906958609555944897129273652964469950532686286547124594577998925688027557335363090881762400672590051148414736852971637059429663461763475586155448007813229415628635874443541506003623684480424898420970512601624630119532861342555813405774236725697035297153244968539541561285331795049377428500949764514826057234051247238981404561950681261797442583358079678225535074429181343151669574547343385194640720659573879671388549750435749645913327483135694959599588679696883380396855915919259561388981918252314256892301996187933162331775385136989836823907939224020756059225788705432729947091031575426325503044765231903334683778269717303501172783299179793945905848502082073589143215271093980620308183942689575656731109386059869097832745686946414033916482855346343544261778715232892935119783368194595268452938686589627692855017270040785092787107287629493831274478831944739749689189350559671037256436677207558294787322462823477959848615452873395414760454540868821390116854792036785647293969164987213736620022494638245081870553838952325095345478538346527013856481558022702600558906989296924757153981275425248224221574165807606260359508770606960207469469961636957108468029852301957790509062994738452093335429835142754813889570168206765558379330396461840707458344061368010136802670603509461041547234108737705342625579562741606825952689984184556039799725870118389177509328405917346919533481628198341249650867326363099287490903796634431955950210863005420272851421923118660911014225417992753158715896629602991439410279840419044850289114230636176578363613426539452919296982470990068626855900829264379177223105362799464146020528206374377236887255836906921029123653408197143546843081164520576709992526690263376098109867877534374526281771173083684522517451117689023672634572767005826117711368512064547063570043634426015729176249710749599764676662254662660388067192571054393694033017949986286514314359865296567164616781238354360156084416281945976471351401269252729160531800256799466102099976888438574597517921419815356846385669829378535307770118266835652150275104110116515521289185687112844501858881915560221469211100846914879763793580521191595080238328375279759235676454694003045162459944877011684948115207551154278510991232730804037099441157225802719627452047850677311668096280489132045563107587897708829092462562227333589192825254610359729042694790132305781701436097250499202909744344006716317751199907766178520755949060455668948212149669962779092155877955472173808367601597073133432336264216207286072413142160849182190001404051175593904060896417350994319902183252307441305986996309175190896679756773625259281200987496003706434017982721687039498977680064038953157934633028850517282827981066072291263714710942950905208924133232239694365187688903307061383180462374834376294141329980882771316071910176848990205444785820810588582991418537028536587041785710569355617791061280134436868381535748800554778020441450261668081886482718981905842130979869666717385116390592014409720838255918254964221768788532921435919096858719202870489486069910845199324893536383489261580670328899157253785339069666057381810767592374088109207160200512107944947371803101579272141713833122741889879314722498725996311573058388848475696390745253963675386465473750285783859778890940719908345975035631560233557353144957605749328745757958509387873869872488522252189332038997653259020534990418307468099664191270647889133510990446988382678136917796468956991924944739944736255052589614558634592054100877305843399853859869685391475163386442981540451211414012955931318470534338288380183029210783264059231241241698644526594182390305063338271171539635423486329851124820391709004399648262874786192986517861314160299080804390225051437437195405086433685509149058817820338038725574686427024558831029983439517449348959443509467382192216595943457055392323186341619764542070083468203371051978675373680328778599330634868675730860817695247601840857187749980220211089989858049879126487347659860364041022025892257758367024193161813089527980083289405848341820967569958942368078062060952378467443772291107159111954769738665261848474802765832976053824891810024833528885720627475197726825754593714104609298736618790372968041429575566650874606533790584225548137231258972260882422091484875885834450061427983263736400624947140660410723904859746794668133353325537463188355658643919662486525099261150241134812101640837461960506897020908721793393029740018226743514413365516785228606554855772781467443770870114857931448926728303393887915067594795911486497502190951526732012780522896977365458379211138040012880951808517651653673157617932201746997343851045515674226051186870191133262617463602543502169989969371779161453891028330013044034997383834513869278675755720213691614825659967299513586711403396475022554753805420360658789631530267158077361258943246347687538441414071493817947502007758101533942817640467751911004292049891769709928783650947108800702020758562734783563948689230212868796450036697470671577959973715086629869313729692727354820566997432738085476931019617156003551527351185115058877386781873458772147202837593060597107226428964369882396412437224631775135395522129033371718198070298164210162466698568775613961260117127838839688647467822160685246956514282396882707263183953546818095189141339649209066492006326361305070029254677874379767067526716699930277187146115494482115065651948878757704647929620085457494223038614425088605433937802339779371305389217402252908540491060170088463765431242355390494644743200001147598043854159094282782504402231724913557872332621634733295430819310633100589028831253868124345680425757969835620327302041886429750296029024027034552751833793111627157934722573924203274958676256440577327691999516574683779293213678675322695880892960155365583665986708037572369868271551247479787502761753246948605830246107489835525480321388867231708731596319478845900763965327257133904468319368173022783715949082143779835896986086225409562125034248659625861156393996018736555856317013206378184424904919408580766483406218299121197493747968099593533305866328591898763249106533917239968497079195750354963068094328870114263940889931593285117174081582259294985599669659951834284097939764709877887157875623866641640544304641343460481123612156400373012345400974391160093634511895203965677758058958673673696162595003978584997431437969741743375553081477656168307736133881104712564402977850546975159466077117283706929075498558457299220315173444652786745870717305867355814456390798765903356383793354460620710308479815510211916393855599430552620538516437701624487967446189887404249430554126949969260732254111592793958971623973243632453065600735710531124793599949060211492929199575715977837073574382586810202402437160314810162700945283177084722668172504334309665823804005478667105411372322960012938881972463866243433738642181285545897362091027741691499849606107185054873855953095086758829357847813701101907914778134531509917518231380198563034499556515177818736557639291303788205527038552773627426697530161558576380944565708722819735603748062734190678841323075382541068926497533561543059754557267942006812348629908162849339326107346655523977965751725681909452136144828607082977945398570874402784842901222701158138199204001848889195722869899907343300462876790000440978206902568990217885755515533675015666480838811917867770816135504744842797805744056005030168443316236710108565464925483465504602240460498842870172617645987820925353221013183985880327345948490868501349067022302956527281931206205681695058695542229149490515739164145844820727628521717565052079049877450749910250658880246582805270603038491859478928418706334999111363372862028673200785317248627353373975425850562430323499509939024081348803696242976063973063720130222854054277844804182871944159392250527675766168367295377793566686547367952086935987199089105405229096766891085737206438782641214476838378605729486467094808102643420083616591658262206539441479770796580654001515305477432672058724587026600114953156787868044128989034472068130363626577420118364986794482438833655881540247968383320225951239188269089266626483367940823593314739695175608754152727839627121874244141765157449630195037777629213226493860314843176720508957243925527710445386901154570824420468700801836060609179260321660279717681889280584286003176003588183384843878482142549648035756313081396215533421461742824656816982800828534930195177928507797004082294749787280839289591019648712093672824738417554227625602401609730035406890940984532383493943983192575629561273367003854064938691865847655194166736870224239266575656043452079357010965327625089523098565465097937050993476028927504112013402581784149886016543129271566521721495583792563701816749661771882641771846982575906815611101347576085108861058799536800815149848933674153601885023720286596047745839667478432518269367464034930258375297257727091850854348197885694719738114901005774422066198032518457535856789791447959225374032765384509572000501955753211242375833873249814110723805306804731966016260701390491699265180603250248734554412461493801107162837913263066564200462506019556045264440630904390070284408490644652963218866056292095976409236695980548545611565597555661425132379222181093365247069861136985532661298195507790616488541458005106371921497475070413558200050440819565405557191150305767040829090325206248935750908615185508267303386965038959799048351865990489467185610807956590700457586260715353405115560006673849276958337785075175934135823283957737294104068798685249976348159538398707276985120413841703607971318737085001015754116489381751201263760168073824775117050010936375566366841097987284338198592069158239802349000293573302306125161072183542208297064655884786954351391463413903423571391468457156006495276429494332016746849112832261410546707981042495982309607440956135537737316389162559573760878670345610602914960782874649029955573199224097733429688113418649218518147386690773561521813118835141205624244505910068017225850682175218723425242106624568416712721649923975657241754388085022777640815044524752269693314180615467733120405600318945801304353451103694200275317204209155343206990518297153586994360700203366529980048828387407450948440868441246025566745057875287580768426062191614659329153389744615924758066651228126614550729364295035508074417443260595454878977296460184609356752144437433384112291972203586546425570011860955537351303319672636269817890329192729492227050459923844824554678290456660295477945742858408179612618485073547399106591106397440651913700715817467458624885631220866023413705039006980308462419924043362468751398873674932936888478039306060250961145650125066633016258076388103238540378602729487117163452716513797195822349994700148692125471342470850684309007261898985712167919651358592943297486438527515083448140337148248189182049614110473586352953205470574475638834388380485406150814326165430059217597581626487997596582132806194311746573728226537149338670724035908721571853532389964718308815006003535967803232606468049351076661487036280177003270316494099303502545157935740517214628721999318696392302456605045781245469993327410494565886343706593854017927706040267335596171064049539079640934365734023644038248982571075464754296786216852279825838126926793202590576853979436379681128803261010579772394342047128215461601337464902116737203832473918886938652385673393118946996173623015880980235994990925469943918562924251181236718123520026650486450592550128569139362637180844724061061891222645752813481452353301882343986382639401654986987586971647818255253484819349455104158482599205656787253304936955662408028352955298726340579622531868857310032056742890860316502580501745823004770193301074483164610449604152413600192351076857569408631714819978938241574506158483615262240792040941412804080029772417763100294826300392561947074838113762925560734754897583189830294182287773057494430085918403206855052977921684069691264565440257281191920663382003119647605855632908721083639263133412102676789826325839150914050771594893031620298326291359167313590648340676006722590401455538805613924118867257906089004303952427122962013094298602715485242710801609641758679176705803365599533851181921902605855943878619385677848165230390707696559321808803093674880089098736155983548874098707438048938360301517899099461481238838053408807255663582440490407298129745437463606840426132077346666984760596478597184482725270213449874326540785508799638955910192974980629276140588358628883895403839745553870052302056351691062877487111154836664961688008022733091701529340849161601877496835886555057257379809850988823959328719526666639732693952669658818404910914129266903602114932642068370719034152223743723825501788430457283855670377674994749726647713950749908070815082332977146445936716339563015981269511278893943750243881353460754822348022957235989840882640282973721826559040303332064283130783458925550772972134151997083793098260778693180621481910724506988475726497384504482801623859832028613605930463706855969939593827476812385721343342874656032794029955936663332648878311881763513472632128337226811074942666746018398354838388766442641374291762970289631815123218898919478155163902102046090462219464736302009213102967491344362672339065896606882012199702505192655605870432210576629195221529323279174498871069051465547796385207046462888887779009462350096567490885920913773692740556460796659455503388085693832934524131313427562399916296274981803125705249668698407081032323794582280655380053642192909807366826149949934471226282774379691351915918408564790775454071209534345153404131029721769333514275354127018150291098010055486276389393728068150716284181843602927019939663643302362214067132002380194564995455852674913494070476608783166046860752482337520163046966551274539847829726888146375312099205598085566460467028294512648088711903670926480653106002489686193658533324921011889707268572067303744135496006505347422104665668556041623084864029272782582756637858510945879683155222365713522183869942709599333375723403315143828872012394145971702955244166369203052001544056943341379294711975131244266495384300040419602140713761113142099095369593830759354480436095164828329838537878396505241534256568871975084474639269527543816016018301516766333095460035632034171817163499495515227378881795894553206070229529884137360773179120181311073927132131380814067281964004081087749714577159638513761972356151234104442992128443647274031635640435560687074123336939497381952280515175513957443154696362690431013991207252971079040398586053606216362926650741216089420872731333217136723892870929939106165899212504134988967774828771992973685430177528064498278994665687495693340613580411214747501211843130943574814257088203783009516140856282540653738559642676106479070503139038305078762712140579323055462575422544544357688695599185771202063349644885069548070063623400123755725528769762400121440312395113299626045278996874052601232192500187685375576248122474879068357683827960856935847456027382780311348696874578120039057604663787048228800030863338872044593720844117687250032196220022479604425733609540317440732125823566674610275355924343717341020849807225216894826119791609303500194153322421991848302495115495836612134508835924822356794064554078507074838896365062895661905776456512413554022891343846311986765399333275741999071067867781405388403061843650590684893665097339878620599411984556850285348077955344852010528532591255474382402135690740278936596756546793677082065019370580687364640879980924374545350895855106309162868012775102063148276759311547959454522236729743381176236928106218244278070218488212197391237911637064090692575733048535297914788162048652656227244856607114292480184585365380368127527291113043355953024429003241189820533837693834820284114614679244959246585955212767854639390893406533304845258569882815108521550674694615144341125797481677572126627123968280960842377684897602903959662058107572453994847469377833898602907835214679204848026561900890027543706472346896789068355057919094128705420700410074010556445264910989724281224825183810111048835080248752795668997189484161098272407989870484057629459512665175767234901593030419721712122626168293143593882388878770907549702801429240347596805298160960311351832268075604071351457565429270706002022673306715855684258982699583438950818435836173430969955740659641741122325242378017667567648102555314371855756711251718539776732391837088245613976279101072321191855818396629179115703972001988328627791085443665777179058124321127869852054279307496301584967434309798359773554469738469531055655052493597264374092955846596469413938941366728838639585254379721217999238728714122677016996290354833558349507871543103754745897283232062377185572881530488228023568584263118633763919137201077985978659276201053999185359784514420636417511262324833082536090050421182794703035172263038893810576813190633664317995414543418413831604666594813025097820687980924686364257248307281837617590155586944248926873329604071068392245085671914504049706180597618510361310749551584408555098680806428475898394657286279463898355712935888653061763397362664536263122606292752399798062649024591999966285038315549985355186608345890644176754290198335743647458217763390193600277509173460133299105548012075696730637251062242227108898553944527864248787640731177521277939707252801653276844949227992294621431128576514855576315963312373746660277624265851912558968466784170507950191833088658994932963347469847072330780986926815793838100241748272184295797638787637317492434833544980479362629955504574064052619665039223209503013273797344229499514059114165062403761115391413117302109690122018066707074847541872447046112758708564577400054553114701345567170586310786036931486033809074874536805091915156641106122480972175538238197619698508673340462880229158301545406544018402320693980167545776659843061432603692791475991181940840207679327283887561126213816099433709711803418328682877220978938820539404052637198955319900630440943783759838754096170643710508526155289142466889317503643807111825464766472968843712875251763489149286163798397287207590911406272856455223569276658045565223876644574551936515886154711386142964652884302459803258610560733302227055603518899370886452415555338646066372075130925837806298505174092364850143550663364708159843571821388114485239988270072424698671424407698358323779204948143461863891597353877258021675823795771907348707607529427145123846696484341210686790282746067953340754021013434590504878488992544542360785897828038828878345339505246854237970815105090816973200989015948934625041080603903629445846880526751050712410532383434507070630535098381862007970426586538884861372228769205617475903876384596838842325323843371588708502599855806348829020984870136005520022509922394183856051105101436652391495056364591994472261674019012791719266849493309400314347061990637193613203811849660834660274214829024088630827904266577949563691233942145097865628276941534796010824332589806590964805884503328476798201396024240675473389995182641719278503785698423905861614888176739410561710834475115824761260560937649581176233813448819604938029332831244718762209187855374457023291884060041410026577631821543688335188500290263592391027268484747626783420150879814040412784912431625114303062427796399833838866099700883565721646875638231433936467773383050785070497767135719907681317210690070976255102759837514128245545538336086737898941350786293931071395251696663138171766835781383598040500433862560886019500097074024664943419789813205942628546600988943545668172513055126206584604122606817601419320179446826674196982739085233510992904649249891097847947267074755496772244549491095071917625267440092720981403219207770921081795388682455017150700284259441751068467821257324513584126162018837767097357756261444929196466275015021668384129470520350418545900926038186521710786604403154513914028057954994951800123361274228834362687080985967905851417856579404665378625304793664015525583905685632120436583036238496213717974716609289637595132703302493382553817288993516304972878602553119276231476244511962934720879743555679419173118387250952178843969434884180106690246275563045405855027034496787876815500281298203814214125637759164998391730818644599698157563189913112753368216628540891706638524484509462831907055731800304766838290837496463612081049580641447413374976155592597399550107730365641027841856628897130661171985239752708128130609217994364719805089099173027257852727250809400614071375573981043822938304956223894236041017928129318788822288157411644893773970135496479920793218222323685670135519417673615058520766451956965257896553247475579230912961777166520338845149914538036481913141780507706876863903237662831916916571331581071788850047900650786736538448982971295041472462386793487318849963428389973361100082114358428933097636795908949435304285220903988820513620908522366373621988611302881240858257031553574236752457677609367637645830098093047868737426673078973769109808267458568344794805662649893585376512119675085822824713331042787725989840163496463742545824856951517870614040613125425750127924734519940007415773173769012009540952141562597548609692122683623987620933970521519991481223609787396094684532801409456077602311042209429325506488612798699661763137453765824318839182949941395319718862272028046559446739659054889057313634946961605415408760143883740660353255547353456571923772494618508409966233704087709796503213060889020055532675127411815816521944262237714446849113102728409047670684097204060677342535499028739354189753370649832352089180419559308278575954970096812442946808056848513886639631724981476499457195931905350087112125708423365773078233294901068685911142143463055099557865627357480217909533133087944345755011892460900792530095072252157896821773804305372487587625677493741860183934506936646415488736644904220158329642412048924159255147912454794434391479970873118088826114489316835552779717635435395498038651097697333896897504418830569698273681687123802597361336030026463409152811055919242069552398846722312884656716164846325988526191417332679987774373043295965906459727577545216926890717081650273636440161467972762990996642525607818676472583628875546602050828045531275361657126700588913288843910278095585537779473066566078452157557129294488388379350849869999202925505915157914569595341084482637600733771262998236651896061654280602291472363028491451532190847518231126792967746941735334869332613958970714883599627822511791039031378364140181175715816985977264998205800134632587111604720575426295868907272049655100092443260793483170523295165904683482431025405613860597831594697917727234950769719118248831662600415984847030369320144247372691964100046625655336434091458240655099416902114393266680104749885648266667832655794176909389079150211740749461565076349041703228724435294270573842719890442494132621744013476937519359481256345401568513774161825563014528945820603086534697488575122955856048988865004248285809047283623888203803276531442531348296509755899618095204391739920477439870494586240556575825283085723554358112587148312531933826805635855701060217175995758124306304762764271444895446185756902939449898610478043601949177566128362839761424108673159553544200984661448141444026483527684643905127936120474556596043524397289631904763817199038521180226813594378147553259158531132466077665830963239310644343540124890356564583244286766181104871228430608129207545212817217471935940007451769798149957137056396129218880552487702583064857470159085556475340758556716112103565649029274517076475843046774065628319451600313465948895434840586765307049638081924541291576191285524673373310043688749415427696691238987813428330747029049261585398938794874588588600551089942898508707794564467451032636474148584177724644438948672067342530065825891259084113105590770080007541041756556444535712841727022601024725044087550570067260128228677635298360709105345083750331178537229029225273994677346541613606496538013510457748465125220720129765814210763891210510621579578461580667965372330833165661403336287557766499852408248228898641279903389427354287680359828575113027481561098284269290503905203135465438457627824494699483876231565461742133064746897300092418631414175327013312743852081217165911287755782100551962905823185940945069670383107358724255607274926495076277847319637608160552695085075256759995776798350530130662024051482215506894672206556867408117337086641916438375381203342970690738344596523218164648850681774945478506239276831621152000975041392203603353729406006255908113266011196052732988101749319161566983322552341276013721779092021227006077422142535483446477507246044411696293955768542599069849175748195856756221383644719829125212840391731596223496043188318024392517624129697342208901306231082426444604584976001758209287431555493078805953593236434068442330257994726808195923577827752318432861091171748858558013977801784184844793027831586368219426185286166626303890634211504418974900049298408389755727990598588748638147829174728331444642546356824044503536976081514320103495518756270841693886201846191667445297543075824935684603921950611060568672331270840749530553005276183915102186815162351573288778136030811049129885003165177730142519021405095388757722975598474030495957211438962739856345178154353973718854137703499474628214675222327817399678852322178681748648942697081794180403985866446459759069514416108088684910906477968788657973513634163322836218569410944036284286449646162541113624942467416080252561011628085618615392686071132089364861916260316199642938278158216098320397423660542316058216132744378330288531347694971715942727360746750140936779053554202359261756042145978128983028964172463817600491985976118763753986442821084672285480882025155544331328693101237350137968229613684421670354338122544373988286434355985657947086789136202481762335267075778390395553669267045203757813248796384107953141797213103558518462450480209586091115116140191855038031325426566323252397856421908757867595880161595090406698177550023634090908562901888320453968571349485347893012367528805055763694946992882248715310117331069364894811391768176672009211252839890473697254651348848212004432851500979515956094353980420920945058754495403244179354276271825037098506154581141275312391483962315531499259534038972641400881332108641059067783644032614627409282183547780014872501737441089785311898764531753064741255667625516181562775581678047161357115445493893767073343697017831553472708962589593430621528474044495640988122592239905234954306998410776100465706494129719553704995863619440802438800995954160376202173396216089453939730062618665972268393845339325790056226453789719506132317132964645517003832563380057235542987795952092835054446054007588213076485299164885178913477087249379564651236531890257130270953854543339527904183520261946598793560984361729426449319839676679124022646880710884166814776504967350344240336159977697721434184972063079107627214696158800939594141933267889889427579348560163225026706878763206566028624636898367572962782976529093654934800618243209808750319039227828850297443677876298190987991967442723013930493445147075262010355271037840144854952613937692810764698435613676574499390091321214014635550314043747329517058454386513346556335126031896542940520128804690244053694758942264356287984790606942524353899632902328752815822524177185858846974099033195039368951447737401097689668386893151987929237887782564593214222667364214349269549036830148428434277677196689846665110115018836567455360925566662816966363818118055090890078474456480626792149147542080994427004829067941525434899118699329286156659173280515872386368520436046719960316618249742822547970979484296242550025882019289770255719441158191949948888771936228617708617249642127055289483392412560990839345633754779212544420311316475973207460466068172058323916147194350302242309434302316684301021580464938588130887127978761428213575198449754408491755927452376580550542602238055686348283022729023579638727826457329912021543924644337881546203998967060706841418762372509473921594491180704110838336601842536685567066474251604071027998063067235477419220670846524835701635394423762178256736381399517671358496415114241262823608570650024785104992874888134139916497779774138805557872200553930956157857316633374922589368192622103632530345705949531361756031241358711270228109939786350882855887716589701863262578414406717770264094000105952758993245299601074040064020930869242896102611266913441152684139850713886104336555698299284150871072289560788638130796471435669845136165511354601501583024904109732238324376168668539116067726495428639916209415629117291211822743049527233250650919254234844948277251542842278566917340322398586946991808771109738533622027487107963614000148860866830051030601910258492746410669635249352641864846235394843661995082811698602685439379669128231552792992982752173636333540998692108248013844722485710874640542959858482562796676096151431373288906161152794593645890281076813929785815465989286175956673705488720350785872684589432689519524014015985164389673036677370872312722015776408973486577246132188637177064957729450089457538620648077058622054415525191460068892545147357691444283409693878986835949064016616906365853578131260556307878954987953260055417007914791749735427825738464806455999241727689525900587610337249720418971929765749762460950887830500170966572421747619129206985301134488512280301279441083338030810540852286720423116457539370983936914991587962493905444324730528707633578036944566341349625118051677012748382439173996466641711787634786148333512628461289976049658467923297069533028082460435522302505729873118230723699938386727041305857820063336915632380412931812026819643638485417027299499470912521135214306036870874635520791873666727070965313841655616598412761256717057794426375992208086644459374305686941520709629155060629874564102604948027191835574442812191231976225847098225777357323961094219215483785698338809590649067245290844013109082029173954665719228412367165294563262767703852547121811202992623049000085083177674287755932259819121887160589602937187703435405743699861685543688124742474428795808606999486963838661788689596376045409840758273695127907491630856953954588064486013287316073884490112548541533740503501501423231215287319916430494949569965484522937982678873162197394190956359357316431215071128031385052987666794524823660457692650687264900538869460801148990339197959249429215920296940273956914865172062970546525452749126523411467591861430885011987976633298609019292535265855562377993154568054226772331711099805486276036933439524800557610913206915786686173492141816680815222640955549523922945697162838543250135690321616934784973807479315840879195100719215352912695297085709777719906243370497598912111678076168610783631914435887425291731724252594482696949573955347918402074640943400199777749420595117108777446007170005390417246350964781400369147625168452952300416229371395683359075172817128257244895385726432206544432838729120244673117073299365840090640604227991476787939436258165490762026522162325005116222120139471450340092796128813940938374760231577872212008878103717624972920355387526515512623168687369349869522863955407925230912113444348364360912174253983152163741042877084700176379612251359833444580764678207952587298691489970939737777222648442994546589409217537881459196054260062558670302509070966627051587159096873766728723721117630330945041626594647612328206179683324452394826250758682435109049807929158787217965912637599180116856829468679277461594428969191983665666849299216132656547268895602823891891084888135907768185839332206809182619392129330345657677039720017178562054570091965253076045697041520871349039417844214539572350956403504564152007147596038981575445840635493727665575205546623773398321147866803563955224769095684232913519681894186643207692845970249563832329995442675761039603274989392184020811353120716945861982724376362144970878460925901758572352453603729238288212919514885054640681737090305569105456921588678854520462076015407687270959723134544949234585137914131716115582006604305038680849188221704407999042973648747090078935528450103831667378881777205093904205677743575950538933285652032366391448688472856877046023958191711931263091493375299126880223625831859704915233648332991239584837294885438557867232435398785168654536515827785086223380519440633445641306944318002766689123498411066767676421365313264326435289963125871831132390656739769749217105851774415694545123702555325027152341598119657712131108163580360360406091206540898617500882927379898201193332131511593918931009654998926240708098596522573695794278679669296550856575272177667101151240509402321118008621903442122821684679975147514081034489124935999951228640775451658006956746638565256297789728354606462399859506010107340276429090808509909084398729538797621567169178586939872680268782917192945444522701665433611497532810919879653533675944916863410441504284491148950775386640430027747318247674902588139739737978572638086715726831139167405394336089952213997036954681485330638808212537670305287071089444373288329695590020199793374561831901053093142777212772970216802035503565310887992198494701785816508311826713416064532581205640697110988189930033117171125153168706689689082146840748293494978427759595629569928896710847776919602122402429736817409520065212139236186008070424102438479209549915567175775871360801902336201755844706683619583740647432754960316644021918127967187280346157712414555821408027201334444368629528135890811032692896427570020708984407810933905260951301230914256989503291010675486558282413134031511672567200149647312730741098776531013435191405767007918977037931147652326563882888051349137510358469794833389758836324654521178242413527458517887855423280485749766501928598400973564196469576804535619084754964043464339577949088113292327041187054393963677109387839835018118872045235315875368017342527780030223218096938809619060352628716626385348220877712665917132780125164035957320667438177228542757190112269513546474299853150215359694618135652519534701208546850673988911668721409198963774352329624671663371719245862644482818116945861442957242188662148850683451022687855363180826666837785149397207325702419717102495149377540767740733398553873838666150299199022480322629318983403777189530417223497117897092552454578916242663811115553153229990182976900920964299119384719663739117951840504252504462667517233414149136405942171665193152315242253383204226948217355371098984538202788020970839181046924092032226271907848809008148361568595566476127605783162868496696445021271196757734004339561083019363855502517755713483109163823490574665682731828655171459996582862395588450712138670811699911666870198078710442459587353884339746600076557368325170688337849418087364702128295235674291023050787756119866081637575466790443005267780277402257534984941847050737609146712106706913616859498814087186081329703012073743505827559862004546502185809418018254360850912860864053255356012928183200165412704221378710173294639397904179072463189596682291725334340321742865301061410238733331284132446471861406602113536206702491138319516646443217773140226878184038130008991081908494370251315399646649055960496965721022874167815822106724015374967714295410859838178243260639574369608950028326854838795492054507286326350944285402784311214323402714233459457649843742044681617628654173825112334605388254998112503293845637280744289791154408119649554339020083517643309830814003096451863480382250980337458847489877906039209611115761543189787223953012763405158929530879405426882551232081254643754957928625193090189305880048433241123490002720572506613565700769184274892041987187220433144329582105415018235492605134450357153375830709310350174751466683055790470011238762634141738715675321093766555811644583913080869259743457092089137106972422363531524039454902436582890738688924935077028277174716057655322244633359897336151485516066902706747766487774701710396694801370970636621181802084793052605997103520431212615500350739976569384529844437919729015316649987796444759039816373698517694831574583091970347749158588099726221121662972320573285580092740165959570294389438853301579074790685137551149644142177086289311566546342927927036266071545301092788105605528365029377518739000233017482594235807811431739772756621382941500651545765720576172826599887450129549810030693741416780735514360906858537193814012811056547581305526488693199214968031771046704110162167719709315393042691426575551269518689194725651975721776869981072585771976838303588852217798935521028813741137609780786482491737321499890857640680944618807565212233968605748798047699322407725480561626291390559808927569747360634749838241702304873812864598630572088447770255104538619822232360425900715399694639890126135732377730592203267261304502289651159379653081138542981807169901982143698476193805227638446838239263874781406885295191306149210733441895792287973076725172088486899240438419192021306882847377058835494140991319213133908458528796682839007468831475325530291907840053417285506640086159354546787886964118903555834854891207840715381588997822069701692440175372601498945231162584850169242618920241817814255775451722051610526108498286786776791557634769012418080286126283041884766134587398306407217443415935355485517518024157491211138399946722195162667637561194887139491813375767442090450869227159352405463985146185235074849928524233790854883564750074702381512128373569258360874314493892613385963242360683811046361608125950465731616629879940880340336730727928593010150470582630556880936251087094724067816358317477563636668674458343948386465190261044256787167475795229958605330401067236282444043013203515300318994351815670131417775615473638304205228724707035018445840764867564022933376140930890690209394550924309284815781063274786086656951372858314887922650583494896501567665025180074643088717257032769911238806648330215799521122172663886807853008861364972129829926150491479951074980071006633760113581366660521545122684283238167964788078394095200220451016756501266739102681601766620914937639708538554830971145293990614518799463887476297149663705814480917901168909379433204463099013125213770770221745936605228943256729786894258529004716149376411338013892160809631593796876479777060330092862437372924865019969813719924504722241374009613206054950115961049277026698319539232357894630773162727722271304938174341046164796739574197719596557791177387989015698851228735109508646123571741558793359677104038534786154654098266003260169493322005717671643678162101701627430262647719424816109891132991158270833006213679255914642223720777257356111913788175770895434089811026227215224965796693573676954149938505610479660509095364560458297353863016816012927020722521351249478426091919443126637126022743691114632531893833094071992377242372844891166272424639192723095507001929378407568568324175654724840553450652423344391452854589777382774806950307243224145351396355620532159612109860370906841467135585696034942730711248278443368362160625321992968358932335528613470548036889914011296041365719710486839308204805924800867348897697009517195512575726199020932079921678529476329447480888997944102931857557967992565763940811235699112146187580430266837945684184471982192879266402489864977991090190441127563921822274394476085692247376446754458403551206871802969938494804639519754700894121518502893559752735332582562366868468444471572392535158576489676536667024864988914145990645591579610918411024213422423763164285540975778680663744528325894599674761165951099408572779560072751278963024842769627458901737612216467987648585325723973059007392238510679250179257981238368988053514412911004258645174566670160117571438515451612001686013603424433746012515854075814616861214769615661667555788352657096409074197745168403418926148218286063423698259421154021092095759928750461304355755966426542723109068075471136030500981956963176369715876522982956932240954791178541163798265246481566360239303317551282909126298750362937173611171499167416668285144284128965105489575714619252284053012577726659888480818420926998697022056939898264980488371117255178476010552130187730161033062660057357269520837569892051648604315091308458942208058029771312760586436853064819669843928091571662578435302456318691797405007050006925704766172707507350859543596330326695461014811253522269670196560834803680195039598891072950009448834902287623681741834023819698910026602213843961186282821358922511207374487328345034362166948664273089705948105462567710017626500688050819259997708828581988396588532825698787632042171860399890343664449501593615610918316432435771575111255954710539561000778786612028864856900169113877511721120160334466568948112897328938890127149370305270533184267640859061615693583659775618171490781206713889793124696821039226369489798369352869308526706820348524888042363188430720338623091690083461202332987045142584359756457018003768531199139074526212063277731171846607688544240876872275375692700878727084274391517054531113807203241869154229334949247057235592468068063077997900131226618157388338635935083127903758357548618513137084118380966258539814110210459335420781485264035379060354096334512441151573981148941541675948313891433816683005528670827775475267274741943251518649724217817255709318592720047487026942855058101525447993444257540584837236131163439586571577975379479068017582028163776677853876082080245734419373117689311326039888475310390434529284693422065860112077019163411435922760832490714044233006250781113971986322151400033996214258500633945732186891038562402030919622017603898325353859051545773129590257903506665695516178377648952097291724593110173831973420880729924318747071536094543013853662662997070759600865083939976436276974378791781809301788470802431947245458296646881805849018297348578881588095532589976707721083310401606558053138993712640695252804883324248673036195350694282978507260833651525372085303451013063541711485476217600856817685513021667864605844883794507186332801098275278933285817569663101115316547187798232199931348610062036781102058048980672806900043288873148219548035879390456360267146199632117711418908277720281744172778963401167600832606750311571524760763441581214586832891503304612415045521734697184597605932431391314603971669907978137645673244391780047718924808500059422880977521150961287592575553276300110173217118815924831127610059080570212883067236119249014956415780392733818721077837372489376461213118927376954446620902798590040078596410816103812429809229697852044197555327578667242685241131720002014729216185136114438708738467384807802740647356503072765602211245738305285730411014059934490263388691108043873060958430246226465080345013280295448930415893187616691906707064565396149173979900053629024939030269056473234005424208887886738429240794294454398260479404048951475035013377868114599451780043635833834058362082429019424194300763532915966139816941606342584220847601134689072195036988930457987434528767917336847578279011349931749783131371870636851534316296356758034104121789362142903831653279218329872757721311556750683450672691096591159911293832670733667535019440186364173593928987267115759265503399276254877187242323372841866789673719564634991755023286824636239124506276849300810540404966706047578156438294532336704957679114481413470949016019973534763046612797552785951226839237024556926396852353147860291308050225420064406964096531911637921811536841327220621937388464272274524515677287380232382338917940827787157098832465857398033656883450125722688243411127059083199321581075521964791094256520802724012926289721480698755007796747843652211868281263972706329476584953651206714012093987489455231035545659183185896406896037227975932252538180183786018622113306342840441364852685134674321497322135346089692766859560707917976467471790675333309718589816046198741760120026335257872229453743914797986198407893227472327209731946187970254721597745466982447785629437071390236961705045239339851153125737473529874612523333804600425634801060610590336378819996091639370051810047287787915104677003048638071817852254050080252439879306585216100062730137266320698721785720370484093382468457080558144361001787812814468369776624820009942515152869102742137909856300351123202815992547844059147625021065700511303602244256070057617768470882138801514225389165527946412820324024530476112137873036158349651063920747811798366819622422432070246745115235182781173978466775617910516132827043866594595848666806063067810693300475749502496573914843313776586884983487671061809394346727358829442247954884310462012969244633022587851452826584910689948830867364796810150270922819662115644166630233508803619980466240691928385718324250720957538921501169762265736586799534998986630480799974092550414944317201835553878497064542466649084946550211481997330066201721677611491859602382122118342988567657458361522313100024680495429681910194631992647065058285534494042749966669237398657180904079672220169346091610018856867839164243880984448859194801618632041530733334597825414556225238860033287654076974722706030414561047958514053122162675810995807434027451892980032379216027489782384232540676491115763482750343637744459244321228643452880176344128569745717872081079417495613797983144742157726604522002518853148922242981266354118685441085280246084757261402478289779730992810192087106742742541817397454417310585151512727113452227516918018172979977166562523062733226469555532290494183493179706973473771818340993981088352719370905771666107875512559956224573568186625308029928974415167961149623971922247936018671265537433998502359317096019723543822141264000729945401557297016766381166373014197149937769493638069314442661774031295195333144247876328508185882300030005532077963921689241817916684855015886118575986792297020337982453603543398968861157813516406624796067600109694423796196900767665465429264089536685690517562076370634481187643730815944685536462147923499961623113009719391974196068826928225112269739901733751761234543698314176297165648566213552110188749909543497836624049721176591516853161833770857591526859554802847503772034817790842650970077765726765976514037743362675352452594108252712233477633122305906839437218860935859293063526584643633144357829312549730957516332851210443271857231141186344711499398444424180437170877089872669900048732820031744317970496732029285847649459555172518107120207441709139549133543777859579129368584483201915216127591774315269575695116412519116210634441591168489142849392710387100604987389646602755549451657066962891703865073837063122221652865467324431553168579946755115415764159325059500375247654876162547607455641414099427050491957425530082741904964650074063332177877707396720066505003975145061488702136224460065515830635222884264972378185507638165097275335821521900941162606342724500873337679968653140300738367667386561144293747154531806387317024495615139832716876557650367203932616728218924729062290192174150268984173854425959767756120423910084701692155028101034757741349382951228478309463386879163963360193116226593865090082027751051648250991039104157978319075520360703087626612222346041605488801376401875047749672167226224320353244852530411876448642361604656732746346280628423315086699581884359179756549147750484540433411534344913177754680640033547429015013230805172413785007218096938514297015811597519483683248789760973445440469285404632594701790392716495568409656176000812802185905615832184155551098872432995031447323325998278223666785263180559503842543805346238539054428305851960330953391395006173658115088153664979689850195215002731753198047993663319982993366116838395877509599041253512255287637106641263996923077203954534809906462439741861836471598798069478097121666508580410588080886302708919085152291108553482794661235628216686354857663941986816981350230743573672175141094624614989132773173451151265212768223392567053645199429373061605561866844913050498546357560329099391447203553241144838779951752488514799228472251739061836244378387818057952542808445215586465250891947495178794401503428568961909532311287506831550461260099251727754697397276794471682197436450990566915567956470109933132156567778314022436281950462689607219044719658711526480851385982826304361697729908474858580353733152299339952832106593119619726954490293884587344135848882531992309178561855091072387234119191731826517452864889660860444186966782691371239304402142090717294247727816889867389510603754839665428534869763329786221159065415074444153134021678547961967838660320273812206376751498272222797168405076079451019446593944595895851670067946054004846908625750828398560198409148615659293886990095493616950663711899824178982682977094096533331862225486134510848635235246840450753010782274538320624693739079913913969140395860763343500502575856646970271498285996116687559601680412181006818818034180250306346276177360804582066448255386141943991523421094680514105209277150939328138545615969005805715881873675942666936075113784579149653655311299868204785396401506320696015567998933229159218565759559515881612674885611344544676569196939207176103456425622399668915003041542293420382305367603355504247735460922627001888314767075962991157100340133915816818843450351172965700627097557034998105012654913301484163967681438795759348332229688438044910089369351481542452011575029578682760038005083457184842860870553449134673672955666055979715726617206443226462335777039419753888944345660593487269321403328539754848734753809933081417616901347792628217564367613528075691683553962225056515930397931773860737374167959766686110919698464332641929174459952558816866117246882987551486071114428771719839716448220778446096729447128078968804885729526441632026953061964827609910261890313357039902739554727862792325171872908125229041980798518221134931715420616090898075011333131389371774219629865573422942676450255282577539968719101043767834134252577200722252535478433461614929619233190814309291556770576626304907055835583649203522388662458230721625098250526252099769260367683509250986338320272107372516673510621446662797891400237227132363754352425631672489309728950022836282045864700393566809188367591405905042999602047917579710331262948711559920550385040025566733120724038550072237804156646459710002052465741828246053376722555525968472535544432447773176022295861168222096824028659463931156640279690012027795215043907726995248224491249066201457451364476115897244536453464350764635734554575713716220969798419297779232449725052056175663812402273326243385325337829164127184604219902113744119134320220780539739899421449336095757809589121590249412701513337770740396067404303666997077998088143647350557068006147766113956045555686093621231101974791424903000264419032577642872147607988400551335095980936920329890943899954615724660374622423875038896206322650296692766055744747840104934883691376131989412121701577014202110913238699703807827883211031859627576322600806952629687427350606478848406387690052235161256488501147975039844245296774753450677952597757165755384351331259803077686711097670493995781246233946849563517338064477351760975303783282504151713161661221149081446153246263372043368209291150340399661043111996904121808672002839112974474226438816191378646066067220681977163820414028848471607372869982134526576523483269567574367397514911798731271023311445531679030973182430398653449265689551875619883390833434094945838981863019788855208504950246118170636737354550054121040919688730005972567611369416026139036146645992412440902816483330494217211141372772910118372401632530107999712782193442497595426572827758065515811698164346349374573220255682966771772091804079685273583734533511157217832487438819566936653458003908339723259866590016598788297361276482257887925392393806535504175894642727262493594631420560748355687245019646320070149203492087991191944899446938539927395015086069003727625357479710201168177040775919701015286325578516735517703342665222391930914695326644373413796642203706930272013951871391339144755119113175680391656953337204807495092795286430262443156361387111871944015632577928882667617653691547293842160856910135736683824464669014390484972254808044850510001767863530878095830242307364850089589590502228676989485335918670680302157713039339636063721873241483912215160446187734434006083039469471448509770595096181758274336383022493375417086385985688662344066528007160463135831743595346008874954482741848960044044113758100703293512807103461942001116450103492106198541100173346249146634478857903557747470297580415745530704543475695432786445284211771010461733729719466919884413186387046768784488739465703943647290630774190957101760873843656942307209169034204451142074290916173531631823919997229089211951996597653229935792056598844470689406531978919106705222358234986913579384823126711577824866269442882271269935859050468228826432775337865777122889016151633036521729479093561723903989621911843308749759570032085757221150552400304409011332652741371894166446582264685881515325307799876360771047784465011573117475201188941332782717602055898515196031549790435552929480074144615597299234060151149013989931691952777850192417489283574372907200450655449717970828391817914302652385647382515068929531446166628059128268624493551043782805996565785816134186702370773534764132764845074185197645124410138272081253029665469953469843541937071733307728092091731559658759099282196754492811969940948762365189558431454182307000148250556808512770808515567559837087106508313189158002015946180691427995394008089070582771144671131021742965875440535047461347089103985713261003933367591317668412241475859189811746103241155383265578642014075232049128261871386794862631257545984236221562549995848566141811577479115328924670689999129687363306862300470062265068489320347963602436395241579212716046160455113186127287772902865738586782349870373623163709409565602818906687768057775072088999182953683308433394180508289069901532248193427926884812819397445341961746852757781741455132150289368672010193824134921068953906086779166405158958657517845863413384033187831245826561917754102114220871007984184964692996975862130241466247361744192463290962801175031915771211654132689270003889800467435833162408703451322687254824540986820731203296620199127328632321536003104264828819545620040543163354487473068508125619668409852553747642502396860803632595797894642840790556667144527507529133052383051115805702079258271554245839789552710798842455714053489593555638983263327100807576599806971076536942920304716751861462880180333521490481586148612037921290026330334206756241700595674562912323423344178392326332326893011365301085170065463038957460847551321735903958148231679345295263805780032456025655074979750360505693683432578804603342086336975504347700268561704999249184927641632627598830091996942401644849780958708629517690016971177604417368066608229751589373110791736937395015865522545362337201835571618948194645892519607437374741223074568468166459570242004738348425788376677414849256356493166296553620734573446789794859300764824259826286323703818570435392042940748069866593660332988282518746818158853375901723943892879312747481838557323490524819286043351840103919088065039173186066837218185222679882644288964315890268394549788325039491459329723010575328371612297045859491291391819917651354428857178523809477178259448942410465683813538855473727416374498580806345414819282092671388637340147883038329801173135343386241324517863495572701587860628121699549808122863782144655691274071498505625251097880617594695363303139869666399494247800212117021573945132994835160130661388060125151765144079213329859210894452469919725294324356115312047141203126681655793080183499948532564161114480418544708336187707500852304320903845152302340159064001164080336343217482109639643958731760561553699058352685335161261761909695606330023414685025163214630187596678715981212368192382957443993322904799987783933873845399827919653640122606788265586537710619693006260664206934928832442837034822846139749048825376749010116176681553955601707367133549094839836602704655408149296210696966712646020480329218286677194737345434468335409003074725141265492627713175335706150050122643602515859903963963174250080965662486200752606733380516128023878544504559543269424268273199806832659210602391537043906347318482024936811577648899168535366384936862563446137911110470879387291901641352695935540561407005925016537452965232090109834225946304388598001467953650403332501576392655593101221162705827101691425743754327522260731401071009557014746138773275809903606621757016059440827423740967521336680985877274736643513992338582423553906679374846953405605491544172597050083818956861130253248648069200686445531356810477137031528047482390253627368651531289599758496777220908114781278751143648459779871703173612349307668913078367651858222382254777587563178238897637615820072242368347303251513627163585917718692630963409507981246351959584153916319058445158313039314214656865329679252208805101159169993151304463016906308724836211522818770391775378949667600023750075107336619176779921954285986993282985467293094997102616675946303039624151003176026416578084437425850558865851354974681086056007972089341551306033393471634052647420157011983542242453079437563070926741624283252325345914987691966874609415338861133212333357127698682433211714640015744253940909405368886781229645978172262376693777572874368617454855864002957640930826222420801061581332842607154654137426707817490227237181685739621452081140283995448650811408521427640840491897355771524466339360720734444017241045888031765650539839289774535351160885902179523504417363570132215061271925614250472660953640558530600132154669372919531972486589942931200336830204561159895823302925444721755218791216878519575962696527056363993446712440272256059379707466927567330772983719163974304283727450809062579221597608983217167868811034137801610135136903912630399413110998094616571469313347331724866456504390309318755207191771818446562017437879345363441418797599911592855418082040192593520174326140193756282057097228121965312256158095049809810949715571702494322541318569363639477790739952624138987624192539779434676339911866009128876511450311320423000292479416598591907544323604692013971535814101882098102742418645056606814016494186187741376663069209667352311913601048969568240709922643499957653021412764180856331292076145549903263519934222598621571115347632434579119144981085862481869189568458865608037130820932291369636320051216806123610882525306877027955488705199118802696525740813319169803496742891523361716528686007528807862013296141849858426844677251567403431057768605698157794809658140468466330087672427294635281413612307388801020218651302102124322992649742944760973947912538349038887742159971653429606482685277799372530977607010325680508937772076801358259710074802537034615641770562864838299431683842325588043790643604004318489608947746041359952004441866176624160946378838049886174876596790999964262876326787105022264883829674591716088537641176314445547998298073047481514174212915067768054289473295658524497918934336267879603070588104321547732153407682136888466276732175187201468181283352431506147510772949052233016020409370604097599493989858961672280099299378996181388395477327287381323149101919152703571622249099201244045805603535288248479367131037094992433915249695232836289917996331604158313772785730027607710356049518925950047061710555092717075176891192815378959613245957935206772672933109159885295671451819281209429397817210225448286341226255381971554688549219189971288512830019023716431514996164575085663692656234912351564036806814467676345953047401976459122949785033203757856482704903044908625168598666136803056929475289640333065347481886597673532018906996042015983157656240655599831157537838327683247466171695610176504120311468215917065781082309595022242183258893382537053149625761715794830855229176800740105494092750588411687362321922081072159602741774239572597664185255713494643142763484286588008751847229270940242800224007892676563383931998797760814370369679916072035922597626987618032591249702394466322690660379674691112718464797697981489003472840343976706809668677612553300354006016458229833001691178842759557443037617147553979507699281591720938700271801545075759337036982726119898931471011051771315087567591003431022179548512239656494584654250599586393763650420611042309796593697041922387725625620536343168454165563381873815766878149646231406842818968756615008658618310562070334073936645455427363448836518767738648500373815915698751185962485878108792094379740148041592698376266533975813518420983362275969262326451841568314510376599921010554902330003291003286099558821640138522331809735620704814122402318147903755426049028461939426608790084459198013688582516603897297630982913624981364289619545939805063929322781988972219067117505737057600502919804800872746581208091530188556623601191212695274417160151533518886581106740246242572918621182845056447563735319802022545687963630639262601561775337546115450179367103843033445586350753883177654241595939007087427840099062597162475046983083458347329041017100613731100139925004438618463932172900029742309430499585964657769363770161397270386103953901491411496398854003513455677450492294391864662974707446517491726515501955224292667980306548406831212544476059312638884097693720049870401422043938312597085808046159433190299820024136966005052953053917890779611782155142390459024724457342614274293943740871956958886736701833276362647620895950531874685398812616207972482969641602341109140223732663829785382427492420516208994907872355457084792960887637876181928042812043955588452209649001998404562350120086050842603437878139313395413843281979082801361890015352540233961485915706302175078466613951928976927144129841834827535531722090471385287338771697363724693043039253867582489417482968167258420690217373347292784918249084114066816525629029142664530184380593169311158704554994014254262051171885293383358166784641724573565802584368512150579893686192047274606388194730444342991028247880618914983831822053752084698527005872232691931298388830255177629516084241351874756028771384661253293931362435198061305021508885859094611556541158333128309132967659071054383478842940676293961296483047762527647299222656313325715687642531919230693701336161705805145464811940030488443618382235185996211223971754009234715746366267837400202099985118652552768487614820524331909008557772895165071066623934544988394020211664802924914254380239726711638213563880166155841761587143148936208340257889229665245813213566699152487793857454273929869606108997875056736754720480868158108200425605853828703908688938991540696860214829601277365142149947169695940552788642606696868220886775580761024594285999924349203684015113782072022189781050082256833481965424483522643137481383434893447453836156303595743428887026974876423577799754436418643384834844806951138902645595691359244700734447355047366298797745953315988044176570578913110143735761249103903656612239886538713757109964844798500726185274076251470941757170584641807566980166364924472021846703437027241380080662714457035303757703379937658997973323063567464575563263913815932910634761873664909391201614354170219023328340589495091073544610348017721196449067503803972471858712315235676450414287100424063999598743550436764509958637135485010558696470277231887135078748743850346024579859136036138795662621368166779244001849859631350841358692658669849489461036875715861092762928980987667352229007840518975611033095577899015123962687873589230806803719782776671076473788901142320496346184535775448440181995492260025869212959936813886459796391321122961359627237327618940801182835092272555789306200649760424859629717174367803358223047786501784144658058662067074921467572038585868886358371928994995006209911802173534500971437204100873235797008666453935882170873690921561520545123712159345015775862597077469378916992303413273361721622940224330961420413847085470960539676821824744719002188737957016114352767088356758982457879229543274299769161515627052360945873540504689522522899387784133374672920089083287704793987497982199884692292586713926840074722733014304675464478409955414389191700799065165222870260644940815392360907923278834621064251331233553014526179819578981077736590780387734728368325337903759674402624247782103560740057102118400426980789689651653615510810532359983437509456133377178043899308798826006792301766846626067713337749078003694071977431676873664492698709106721832132346393654144513532429858334569488159379895600825579559845943571872027574189084609116892504228146855549666115786411323683973479084794444058501481307509864487472278579871120684879951427056192951334646584998357182364651461163613183821578547971625899182170113983820683658916438684266556343882148936574478669140891511990440680315306398759489889462580580982195179279264481420660393267194801572042849876519901208403823783557058002548693598069792920998405267729076398825870488668096276330285609928043581236544421755540555571852322767354709718630573194670385894418123461576120787825484788509525505640447239353602149181510674216330082504308717905230840649384140449517919925536689990407517544611171562709642985050952071464135838381067554531192872921811294556614696924586786629375240335067400375707878641405989275476452945505371383557520896038955757851106194871929033862983319727751547471494327798735572223856444425519109384470413491147607415596021138772794655904911015126792487304767879954290072619669121805406953144046854154959234929017607545014430028666181198306582751829351349965718134792674693363984271554412497578616589225432279138302182224155985701301264690574841501964685473875665750553386066299073252054322083042410220339012671329890104633765918169346133936445938770596770046612171595670151649741315981146778134774669415067145124798252204146819569363927159255227958384662483122743754649646905235560585686241779027487004838785685509552421044488245020463205003031346756351036817118265577257468735148112910618791227198562309388507154534224369737801218515454814881322715952570096395624784440255808212343262762092755030190982540771686137612311660790624528886274569416215970861640533601443153771447111030958025436861406528164463742586952482499563311898872008299672006064765414551151708927951818952304220321174082310114875714549854355438652236518111886904482817683596765298821189154939573450348740825828110190434473306370129908696979341022790653469183986426459334061347401177283733668962022073587286570974290653670020692824638224733412967741528600956467825102142001002864695637435929196590344818545779725339693826402408996949046075786437786447137682038283699892413201293698791571379923914712074115376757268657086910939290113455799457302453048080340520922784232703589756646321348565208086044111763925140953012672328753647755183938423437644577113476102237583162182528942493345033178459247456460256557309917783643703749199691825807365067310344159307594308108496124424701401843535943544811566262029340905413869990785842666205962047836934948493040631831663067983875879058603641101006042301394812877160329921527150981404393665920455581963603008877595173927338419657283442884562754347454473224182042828510928300953545645076542900699553333020234305345774323042462787993526266706307158012177446376746676236096693923979350277470176256336725476273357024138553476612652087510462734963110277657418511767833055680930052770831368571678930985658467339551748880962320657555113868256960030187561140588723114878040820270950160386060262939849988670346504038811633953511380432553921556624791084424722440325354001732736669248375103599852295071414784330785017759004819796272372884194827512321894736810915420496093289485892559450218295894045550801184300453731473809292001347116032905885625369232034324348080400111213128544211282737413248516663144688792920812929523232211082883658502234967515044145414888043377067231870718846204539059640916200198859397130177030020344856577035871587861067320309456138633530969562298864285677823947514795970427420898318459581424166736212762497828242921868533131651999383713014484893525255061345195767769864982671084526484046872964188896672689254894747464607749986272830697490268247308827897212371603075880863838787255464915453205077537780859948407076041723890354572680031037813291829405837585951043628497393578610864723194372417084556992463643425954963868216797388231805510992559706139607819198430355562530077899973857456619136600947269105891908258275147819507061845807977738748381083456254101333500092407951107599693303578645166441682447294218810204362294596019569541460186031675224757412360716147247309851002609760430359686054678205376544538158791014618697292412637624105865907205633370273018638249548966401021788066975989102115695563765714121878420437437758960916467680087559921811029241800629899038863346230980196659669250748376613218267122931017261094204394502074699384536493846077041632558507702487431848594387154510630906288686804289280115227456387585590878907758797527571005603540997223431950802148738326363872894544573184426952569440060487337293446984492603526696520679484820788824571591167848766604913471166071533217930093996264275502707194132794531041312232281512164232234159835393469731445732459227485770635573656082814669886640629360709197733564870018105646166670349571035222388859612322666112817772825794948326889694756033782042587474691835415281632859535399191236139404270822325026966198406117815609990250828009299780568388766813418543845833798716611201673059475199491856163778578116501776384189079619345899484594123172953848549751766793977328302429209555446602504117341092716568530273875667870091136913649232407559582086307908863161765218394086669284838599503732786637039782268212786619058695468574350825434957811721851404231483508693034814730071637545460705697137049654257138654548184797815592878903680548746920463122408179795243137640943679176283742897035149924524803335008436964102994517528823202485169724445548634529128505382908475552542395569738460874489239692728691706034227012838452764690395631930265812891919973932734836171624688291483119387647776526003803619711144641702562510676973780080384309527354872303868523423285595686300067103209947229497091322870396870545642317460266193637899477502282502370411871351155596867271591847784397833283664266671168842842345347452904518309631168140149601186354690404034808827319261759999595507738018771022933367543080843046512616308037331671409558777316408370523500565317499705111465938844861310523733583733831868004702897398031270742099782174434135540957540672557754282539462898586211819178661391380124732527657436154129995208329879851582045266614996848082402554801045896331883262593834415453209317360090245179907844826027886418258883009322439326258729281054213461496763438977508967088944383347661769273760130890896746408852732440436699669078657613773573996164144748359188853452076858349700138937540988088586424406296485146206314776457051933036320760198880488516026123423953803070405221214348168052359579888843518464397551010712373042965817018370195828220762448060986105346964304537553624421972251939558547184102707411009803643392670513784963202947784895398845685983963217348614178921755173322982832206750158868528860688851072718316503503345267470420454146920993736434518489887905211782854568203685308205259160334359329284681223719055521561012208443200366113370385378844040953832681869253185528822982090055057727743746392451924339889631889406456895628657239279655716679584364527787505012148514111922246382908818577996327978114594757357154096493483803207724174393568892564185540665800737372981372697706998576938425221292213270633259694831282786879898555642902448936600279917670356435891012253355140488466530027183864945859877510316121978531347377045568455465586845525987068008107818854878514466567322807432503269770329649161693181714794981022324166762265872287048297330781964093404154109143856178044484261949523520544118988204477078639923194571653547911397858705916402448246994680458099935761823372903059776009128644390971098547150513807956730155137981507374957396180166016312268943834168499841685023003011265250753307667772778501744606469926206340265818012820128716881549528079454730950631441998972460142377461320009706591742300284531889644462450464660495791872276852792698183681768268682975381032231052686764954221115614794705874840699428444280380296894228489630784926019636975285256480636556240119845934775289125270279690606532343964590901972832913343561382223258914554909575577081496580392492203370791753075876225218163556429145673015369503818152917392236736407206432405490448689977417305042996448909981520844196886481839208720036182686666373009663499921644605426267284522424501740918256624265839492583812734595766866772862972668353342119824208202392174232664245472716723567006330369886862339120359925350323050129856171808466877337327069970853774944771858150133421056630399098794728750752741565478459582896743740344324904179211282742371366865924397007733853490735412906148662887526891013361649821946180226945665588157513641916032035460500808050881038476038004514225300924448505926236664561480323192461415580574823174526835155378354087536844093614856369853002155001615302051202706062560061970647224610778616954285724447794414111535585864102153405567151758664994066092366796497753679459984406376678512781841671306063519379618451531191143916221823167594634958967035620619770528958159648314957726007107598141635394665469565391637354073816412354905865269642897751988268956599957175103944857843014409581440537003520297070816161492100034697947042564571247576463934548372497957864463448150082977783032449838748038144243170218314259310296880464557938316642205106523537303392119857028870582789732863024415367622886553731627520670432340509227619858957053144322558339386568539883374667935959346173702560006143128351602817860988305937374122676309988570890352519143455048736966101985117568940302415164215737495949523138864326227402452383525265092511444996867679783887633713988979334275619911773135739813187049364020856917678636909209125315843667629863344240246339536896727357056270633199712789944576057825180655226525957598414068396706187077683594532852064933214495754738947034199446435318359544276123345446767122028321872444520709140061541781147460683355735455420839155517441321227121951627373003456988525350136729398082542292492031468979350181899222004969464463264184575411682432791819240386544522916795353600616671856290834928636952453036162638018699044788268885540122354886987399056439275173908330846627385437985158683838462096342473132925227225502196301479516808287388820184021057575054624726819273505881753784074431602927511074150601181000024508744320459673218930485716188860394970265174016559043111288636971607674315665854799277710869008065164157073579725557662440831210206497886568910590814831799598532894346314259266544055606288142766965234768514991230485591657254253651382966285706861360934271386171058114463781630103587822499246948884810601528964447929132024617894451992574328005592125428964132180054173398896154705494156774065770243101846224383479486268207025141932562589172162246438774112168206147769369818254604284390469022837253338574003622820100723383721298097438681683202472024431025837467538740461522946007715044362274848537637441349702437265772718209829116863935862219432246851320242127484704038080920586762613768163194316395808767575297513437888702857349951972583860508921746786501840586740111286782684665111803109168289402817395052501357020534528028547133026516541997018833670927428131426227390052929381105025081895392797458741852613282867342945966216417630973417095724301440451408960025207480787020516312215377161836121491847984903434301542582747703942431815343107027842020983100758527438842433317134767163507270785897708330083352429023380444399722987877878995108087395133985454238090039913862717698429315003440955274073848481619101235812834216097568858656148577013082393809393276388325966913304296820511062863894149891211197281791737974374270864667773860038250242924753993020979269871009204304085996169803787949962576608758875163596923520218630368489127832232001835689285476101798563460150778327641288194875802087481202651758134255345995039946323510381622703390062908696436526628446439939046283478058598843153201671753761092987445399224522379914146509288259916969432514316054516024672033116537463660776109883370346400474971251492316007116290002506273135212531433805744983780756086260487110029001485463384165227353511714569999031914369561800957295582756642571211140547609110946061554679591860762170167005711299420661874024830625206153062513484855890132894703816060160211377600637051531550014267187263763843541317992394898977193174295976518171047201781083993545220756230904882312791978439866717665080684573110671726742670278152204008509910877239731943595209198485854328606906189957658467267684370571878393123354634279969031791854430934695229326431790467716115892732505481589770238613374489604904732759875123356515853576440054555612702345180761278878650993417272143473101118869609052796482506212034823113100521533461749204792111594976938209100671128630724354890311512852773376199718388475482032586409115374175445647092922830053666631379969381033918688482302906279997024494070964574010326890112650423589442674577128858512260122193264741215705723914437949605854324435905367999717407436796821098849171749826640279541295593694934969062809645090511604595214438748783204725756697363257676343457196548230094330513556796515426574881823268917233393962855956250942281193204275474312971672734151228727409833294374697083287666164668793614400993790979035950705009128985197549962664641565754730445475378391061315680026074565675553887269454494462785013049190718580007045256701337189159106612946290208455396759999015767979895468988420930538826884615808295708795052011517702963144507047325051671328096662380519474801215749249426780819544088466517970029508986114667740271762558868342675993233933308498029845498640271874351257094284602304129812160797689878928213085337860908380686062441437394418172516610264842798405855297208616857937715622120671914739827542356030047162151589870065305600229979589610500091248474769135911650007226849676771271633462467062926795927110449992942160343473647029816970200997693902488042574008036941146992794226667586065723789100605210592245195833887036021729804084335729349575902257963538899949671649129594159326456954579176377363743636963587814474176042161921742326120336959369967409209416884978308110765140079238683015247163344199645029209133786372647732655481549636595613195924306473284137452940882674643982019190429871692914665417893019472693438997324716394442669661077126351383013693781760830226229893340101317764384477175929118475716619899537787650896410407446162450022251106978961147170387791027574791550961743124486652596033137468711119104255921188662882340774443682295023762714451561812818002094537370184956062513043061438726287451832288219713613044836760507486046844477629552467502958700590775694384147628076870839799610803464222499142461654435088434233383529613749220033307792573407652770097712158154807723653281131718289951548500107245663977655145901920415012263011098360936982740265929283636014774709458006697427881308858755342559169006141510233254758794152640243545263364823969034912449069716459636367160272472027321220329173818857770944277494916394018637548265243685630000447818291856014875904774452054313172198184054463032995454057571833751905051335190613114418510453942116670898611318529600061389318117372339080220756243007668325018392079581170428720509714847033917460846452110541117156930576486672911665482466648539663106157363326794222731086534409220484721569234488551911002154970894143913508430672420690251616746802065589817897192619481647503304045003238498757043823125619005137158920168503093838393833617897684185644809391722149238482076488075647946115446474938081669282921261528580943646799843140572987875350954231797401874196626006396894958159019903903473979868206488875683468678816603997307614887533391311045755236681249036380307944312284792096113843535851177311774204150721585914461622887946698753101038062602284640676629912875307841459295419034124755489175272562991047782841067152019626354811907336332425630933035002571470745316530585407596343457722089277967605525903909645832470816322835444020352416833552361827454197085553074449504782671512509022295695052441151828317098997122597080864821813162501379050392308987687980798297508743242951789930899380445118177235837392919258605602758038107455057767448854100594413040441355474579545241075461765058514962805946500491656477377172425030215291346989398614783511849977756332765144783890099499751770207867286664453310556354956679142835238109209234728854763637211033914842066165179661960277168458782006656103526980202473869766071620558409388920156334762653869816932883377589612677064415710016664444986660588686450265636297806177588822603180940112964469792015714253342226765784405798626878538172318801041002120737195244795228380426994507108048267802950789235439925498670818267557648937238479919125296193806092802020087019028620635968600795868176734745117812790663718511537036352154514116820612346839008939036566087906959527883826421735999545062876682769456784223210022493593033204240210484926368235930036815891299579413484319609882002664047659474045137094293386501180929228507739740197872427019487169934428109048373573428404016897414686206807723091360293159067805651944432745271237945892409334722156956424081484145107733014614319342327081484116190054216074755612547106327078759172473042333631901096185962047638162240760081048708053959599944008324100652291069186998258904478081032146246385552081750467174327900612969988969317431142626562181184269229134356484475591759287829316917267237593752643817582631016871051609731927073047554879018546656261619161661077428924061908173499719424314604280803746419836623112988602841289231680468463682577428442213235955716318518053250669382596366552792845708367159775618258453195341612173610865934942579827426916578144856817608326320447463903355180564168924055318501158141733125782316961290980313094524195584807444539482938252386638138432183711697567326892152923142149007192004449261965688125289639432797462265594644824717560194113187738542117112137939784346213553347316040405498831838317267145858845646629056599160652235832648572576763434329739014487179545667552107730330035616914965563629786532196011970452089391916711857823055826153847944365541521022283311254532063136814999604868073977792575924419901920908679516333934035285051404298396780063738136413209212221389327051499145373202628232115854349100763441868060840418059397980267510343753771712451144082641599671360277402615430105970253783819631173297103561245255180433674250296111875720989191496297038062648880375776363238425004537938361723732469789359032317806412797711103834476348855603472726888378198611967465985571609576392451546702472319133541132397809172369468675257530856588596789664247662372725123652748678865644799732435468313686813191890812538020664226072546885918250215979256318429869818548360162574539960431429157014628256169747385761986880441357270804963819352259224760324058330954147474635176617024224878103866658990804135398568437652461403046938122412198960419160669469229508175044700724569772574734327447227393702730511519721577345787284266211400977911185817072602761380391506506588997555595965787466040026263975816711741451266018090610846770034286125370358996443863647550703114145528055434365373156233869104063791617638346961930406556724863147418667653411748174964565335238658349618218104163893643999800376713719056162380383366641733292738928093677731308996037811362833139541276083867773855226449841338027405475816106474357661481371965582086047634732283979824528095887975062217020675397641308452367142832028744615017328993770047299739413809127523632093931460897638543614503160392190674257079674519012557105963263061826555344489815647663217844021573799453128020397584150053688403862097790920878638937943339041273379230669803500245816726426632909143505935278698722293037360468842732475078029618013092694842666420078485099739972254078481901971691812898499341093984527773589335124726684989194419284832699299371029778035227124549802746144895491079313115287655803712215508373776780757914483659554496976461259809201946559308177257967415086010086601328891916669701923425735147278601069377675587349063545976787581416929558980619872455796241522461748038609739258194283363550560679689351457601888645919504083389005235855200648810107463865109744932397282166834386275394467556272203477882943791567662460501644742184557662861067839878047179191330334042812322951288687392232724042471536281158185717596656041593745072657850983042615356412235955997953079399455573946731532949055380460463517392195090461096268229862548735807968047942373599768713723188381626825697694511510679853807885611002600653098186475055431704213487368815365552646050041154452416093160005271054514558723810911143845378915733803211650218509585826891921510949898609399057828823001508015463180519291710050181981155571815667798940930469392377842009328942935717302251239090669410685010924411706144066884759505839394419769723418187060197428887100382090435392116355395917460138073723946144044456191277715431471474291317498090506923246430875957565299901055976984375721868682042506166051031942764959640323042500867255609337248678774107162879538367916829683807635418428472963163724189618772530696906310083465972479426592254809652787593031403206164978584512125032181827598842545116320605872916335981364409902638377716952733458379187556749773368155210903123841518307430228156339649829800880113164821644209585120412735849186888127801454740013170630236468246066911066888000506980139806450557292643527543140964539981724043550826576836749574012109392933295829340961238848688307688998465830473988298006651948047294930847123638781670329963796828200766080635261426416622695993185082037196442936832824129911689250804111532568420352598485959790504486545814423240631254288260378649422078403141678982577554871943798603586976215577949587642061596125236826544419736400461547881012578308243451031054237443985905520474946197119274569594158939424049527395872940102791712453668449570498199501347971168286795782748120634265498283266341079402692602728263824163613508965794654782709603446508173972034296647129617980930638933721672564498593708453412986351035201472972984872337832094999165170031749650804101380124845151867290900351532335727676772916559345464792263298926988564403304245488309474803046580003472631934872531063798082647963451271538050987348667455446849711002125937513278878417331327622053456171638179700927472947496833107967946815306969633774265153020511981477558437103681467008646162824344106910440290633973780528848791436304215447556189125185140840945888889634139207090227180070439806443143866365571923160880101618457631744253453864641452779228585561838481026091669401202004613408638878611762829309726289740669166063837682004925035516459550745932901961689013206725076844414149758937672752804903354719499605501421362929996956574644531297546600350884062460598653276456908257530937910062855514315897178933043302025877559148741069557655989244599837275279489338757505446619714515390331515673142136580966336886734899516853385874137829104008949721681070167847405987982169878016900860447405689581891816992901410044690028734954134072061430029688349298929935341179936549807297277642599748901089384729300169075728102699368180546512293934043333469113966853758373371694896850173161519066197240816665242432427582254322706759181105217261571004047774648864566866429208254908434988562141065305014366593165960471384560633839993903819391277369167564420911275980576544817832095366012282422254626852500338139312998644716559165405393232886716545373393276557506665123040395169622813624118651378918125928164632921171365037430942807349953237858202043347906961156596410863994772161701569402653937590300658164014472646621612095683801138015073783969942899693831275091398911137005167158499388813628096641289506594350200460149273737601052025768145598692397949351954915522854599448855483672237547781710818361879608494041833053130240959405596541918911974133089401644088646139942949174745297397419736290260416709757697923118333219867397648665500495918158783935417449697379710741195236894137998182747984943939131005762560204841987605884521383987723156861932420608389069910783427683431596475720063614519702644787013235283093849488051702431618910323485095487719276308461190439215502466525623006083224324481853424714578191627880739394337889930530109541478059115924569379086543624364546899957144835963042123687911039827949702250877105938865086258680749124727545223822379710178915297422872029975636414320452241190282420582207152519205482903290329580737531205315951052976152798118505884305880785091352506989512518399598827221257820515092869704244053131043232335992481152589486484442060357459929424451236119328264071518808791607023945977459079089257899330230396790865817806399090811902082228820609401697660972161984505549024942811497583232982063306003321212659946729809905084151354241195600433662606793382475988318721896969601207655435777700204627455505200914634893211663064768363569821987098055128584537074146560674317411639493956846029728582803156343214375656399907979559255356194168901806386712369791351296867185538694770794360181325389557232472240989562055986515667910662812451445797710948884385773512918671970198143569099946374754969551981508603859210431078159433813248310646114116146861818998521092703698682141723077325210956186322619451206416874805537840492733018777101347324725382371068203794152030411390717121800316882101783613569426694424789812455857405855330676285454639359661292921108441354521691447643447392352798660241033122353370149406113138468882256910588918795385431636380519071063856615371401251207860584335663564063643060344221634860597806074884524125352717388227304043054492599156700169179896437895832610932639334580608344871502834384530009726492293694707242272976263694388835013646951019679614209186571274383089873058992735321961332776122515170354171981989117791648992158918714241799322211263087929247753197567679894702948022312359077148907494966681503466998681755294106645524797350923938919104121665655794299978363253847471430846958430803768726479418805856936715382046759231123096685198364302358806924265892743115191137561754079009321182699980110533812827427923216949043181939568368846370457445628072985497632015902269231473465211552092188932426760294416210338491333395056877494261466539729674834979525645106254341289387678634210963289698344754272866179627250321914684382036778122251889795278801793884551403408139679099118835691021323270169558414699334221075900217137628592745713090313412279865828741997570457537985154445330194321153429125530428520672114767751595596263659624020764416469988773118579091349598026944201391118291893479723440633688753643416856335614310494709157484501282038341278663956443433172555698509812851700304409002092998825852503730812804842498478125958756545172111507178791916888825654383052705762409470054624890230454784938631934077994199602708032798403078919315572441294044792279187482588759034568658191338594363838106274620549812254914911593265904285858066387237168365401837790558280948087064972950737510931898192600649567178656725501153813450487810922416519292103433504618027826918116493230210879507276050071270115706499954738575881526175938904519343519772354424767484142436478919289436407453263082823142077956809021884941998636200219849167138194029542491419727763893268722628881353334050252333550382068932098011723000047567363925670156675379172028449345668766712273633849886615872514358634209788064388454447405455743467425025218629998900114117693494020404818558356709946992388535519228131465115819405961839485564371237601045208083288939912640262150937426256161789508406165655672213877803603607758351616631103468165300568417398924053327757449315801733300281295658181209200185299415327311217550954692993161615980134081642371496160598931746138759667266725851311705147528331089292212225282891708333676819359929542387852968817250033928782557331446989128161941194434797953472817150161763609108330721427892018880154905790209541352833076928240224275267282601153638600500555965258402261284785307130827609075438486038921323518085493342222390085619782243440691042534871524446737661580583418871765270061024998029871140920204942721905734585932231318914057547253235392453198732021054277596215235230679219411515104226865391827732886886944207300875638134539700452340622574907434427803332826569209297298664792355787614981326642560243973956139609031030607788500514120923106331554968394846260636409623241549767675569578961405671607052602539995902333073851891196009770859117746529499672374728380708005079790352706795718893861093790067855652302495793258124103083561165587773033439689319756408846530684850000834973015898547638751105584638485032129092944400718297925987340238886603199625329910298057532736703634495593783175494997241956020854717103487798603078999315522533393188371594599796944608920101947949632493841879578370843844084777498454217794029897780268055879445233856181133891521008367325260945092209645384845084429532344038845844092883378097710905739452541150517901749419107330040774766882514986285720536563825022177983211998528998443095637890464717217197426482264830658005032330701111684943485723903415780509544418071180785612693468971228577163899176579916407418778414670933774992470371169941631547253307084388636005321911104566944150824418669065385596949936924159272637334494206758216569166462136722330545031246485173320228495921465130361495466220063944285176950150185917941746994287559699800904947191529996058291104396971314673062985351799134591789946567975420717280379102326538662776323048977841824216401069598580189525446850344114314303362692478499286217765391935080785189533414367528660092979071119139534689880956064334281698503038178517092960784424591974886787675860531201466423514288325837948170629783306555123175180428563204121338486461832271827726704022337807545753816355191755327823488827586606728907642429374640598274871156296672037000126897943312095506948090808072239275638942050956585933972093579827682896537302776529270757115312879688413111361018844175695493496667527021316156246381590796342893345555048789727112369504214389420084690729062830312018151712761914676356756233381868297135327207536878716851166507392668087329497630962114556955693037289058440611021744518144077415161859681963465462705294356164610579874054723677085351794963339228460597609047670629249811768790427884657670975294332138430885971837322875109426304081759932109779353518005562614785213178034340824487682734537435317611384398361467890243369938151472416021961655039499089878496374926935159294925051602472623072849715389060359797203722100939763241464654086083104968220931223933794695499661284631242170113956172148862744045551508351417768926852423917284553763285962299732327846508071574071618500538673778576886061984634883164035302989531772581089328034593900917376769143726545964515358478299920777455555976632806495597974229590532802961687336740707968769244324336381349032148623585436483040825309675562344725685696779474981917621463444607666057021820115781208359464358196759997757016954415222693402022643608497215560257281598015650308943295171771749653271190130134037415862837630897373317713512313620909213348075233567907522909723228502361974143257955617982192951230805779801819556683236208838054237018301049220740215065151790955960899633022782869796663298486270146971152860032903294674006711734077911411442481503992641362350893233887617195263819253480914108073108080806538500336510450802383814307155895373184163193694434574198080327801604650475491428404714721542315186626672397315584373551284519415681746800013422811230638997449473606399297663993854653765910893035869433065735211960039158424308244811823035534314035450041791761537749079597842042549159412207295194267470535701764928952596080287355586168007684288184161339430495858896040609314905540826996130759982671893360915897708754057818035639764148151726289489822212222648228759719214308410679818750909125510095063770108320973066402284276610008817186331716474291373491825833618964359752725530453086756147709450317135139762028120359269854420218842000719495300492607701361407214979010001157799350082182799062734587798082715906902216226515838982141166220828726160573369907428039884567405456225987048334599497671580560091943151838086846328821090129851934970400324061724461088390784795753524761056796304684095431636373598851511209817511658781104935658435895498412414299527649642892848873750484453353408341928545987384371998226873614947479773779833126235253733875797552389979612838797085150572631512134293254966213770970250701954575681674304187566140312589779585645021416906895358606081062086163556257965014146442862378369446838455588106449484210509967244843286828647224725813878878323305364238432665647550818377061564575108300204048931733396818437866850963543530734323289395537315824914589821230255504604554931586966919347734375139211871671496494911255143160082609297989000191267205964232673915607143024174923833435930162674945444455146269487221890295166250603558759552716898151034474387782723389127813003574788730428283388020016488156062026167884713589937969361173093177849486816015631950512872668833763582577204669010387753740752672883863278065504648931502872230830582762571921929666622244402028849386957559718664277013417812525620814023368479524183924453986797037577626837539126913135165994230850682282478392090275183052642346096587022498983256184859469448670175973993227028028229431758541747926045730501621154482064854273114257973676681440385425919404120256167014849671834097468904294435404251529439815845534409526084452248828514254292397214896253618275169437988171085126153891036305855381352599106403177135597982911213879755170229344441224079326093523277621338706395015997648195695673372955282975356866604824754219129999916450968981893593240753496649926705324379508204546919295858693657021274800020219875973368196131942731302099600611702839578801505567591770494153319566716728329827957404092129053597733366410450660398861227415994675198154562952276547091316609617010999585948038177448625694717068811310060564844550589684704555048024788467018434221724433237359973127830282203839452275974854059741812647262711075553246503627579622358104799904150442993784674122234374796110285077153059199655886021976974330474270059672146649665408217534626663586817405488002136899605870335450940175858164094938411081430454691960329169487506969921688894787133282780398352648521465588291407237157550768680515305544959350796024169001036276650030800651239181607189518391883824557637166407381787728132261887759777190915960860843286876594590543896032924722690396302131361708519251607830283944251235243185677777824219504080644454673369144779360971677476585152145600033992801428237665465905511257604644793478148902436351014534118713656234366737300826684823427608238767601859875165612329679133590467449492110546924985410689547591113777085284857680839408524958732395557032097605990984395429297080913070003385572908089915856190474926378497326458923105241087590322336133790035358417546192066986162824487213052167335629615681649686235656472476964406889783827434428952122381287174869331696469768135574414747971996290906741526601694374737053733444023182834310474968739971812272433443967366702739024581092477715375201350567308676030953389435663392497459496913796866726583270408761494401476060705949569512857456153850134203375201448295245909894177191665534801831399374074621373717798745926685235274014138499725325160432769765258664313061033358332604762228192301904438531621528746159474644899028675867446571873284435415448243369120847699147015982805579576428399157237153943930087062219586711099836799552009793621326409476080180965343545100316150379982523709961856785122373786590879517581682681530398564150784178917462348217086966102083140801766459442377194903716608013788763323714399356072361297467749439828190889458211994007683952329868336125088961768612444930480580721096514155250257168165537330919884540026468055713734585667455520664131435435864935339262826357563344518980924484372468845326406898558261255696494467966396142126189237311742300419050400272964061549762447518341270803978678906115558690286180177432514839795928352723465971953205322956974194874916621747005983137759043620963849186993617439908778646614772934632233293073852166963783444670675546097748033548118079371022387772660769006237334707226313636200789682822007038238524038824657066840256237808217814367710596705365267707441218580086572804952836139388914443855652432087508921324846588559269379667329687694521567945147571122024231610856804300587981507625953408943375657120110512996386348418976594834066518005828259732245564849391405728681218877039166391565143030110584626848940256371917736808273797653761806724735567301070528107220902105791701346621098111762169443472251173425721506204258928744373036163101814677522892998065525934880374367467643748472125090703663643203238892768067645352619814729369904295587633535279702350809982564560784142932480803708151580860964176321570542818124981900958066748556884544826423495284361609188506507401380762515475948351177197783031786978296524207016814812261050007692879110160324466194184911706374220792259034522297752484644415063484934405844397072410566539559250327579810624625661212931369885452732897376069767097897221269566128521415235235585057676464083414927219645330833445283268563201595186318770180130345981340889354304866635376373970503385773260693603308357943235572523204354817728973139985764039532135119139497295970080617605152160829741910540676444180383532504798122801429982747990781141378383457221377458819795050598783653003223229740767180984248753413772941058366286982019469570871999735248296561226706956696485535642067212371302770430008508155812592410716661360425168083983545376649052399414316957366314390991057833452738117491802138645854148353309724621980781477877340758427323854994839791931292805770066008892309311925938069942178815142340417814629292726442944651570057777499285176725815854168484340437869990599406211749487947029655376911217516262919138733966496273124115368392125577183667570151912235789922968310360822066844924525287674392877413833326656214118893034459274493425708683939162582709397435276134783695758496042895484995865205625212959659339355371166299331491105172690029045147625923935173993856796129777206528627706895705805621075828920546404775389851282423457314381700512077038928295216577083559304110014718504894280826950821292946692164735482385619686065811512069781855413795865629333190050812134723036715089812766156789492202910125653877187264040442005315350444394201625504983726695449156656724560254871060194393061777051684924600196118248029383639304235055065411610141686639334991077402148402893978585737854482023268009529389867606787648436967265073670092123090029664366955782978903327640757960612526439365809254094356126184564436619969014328558529762891884033520561420325550542876438038776498103574932637110603921653544265368432295273042300235636055663889843573709176747805626363695738121311454661566757424412537979232970791185945147645429602175043088785349934650740455958109009728174040194198436000958836997129879419084510359724710962792297541344449868802978964964307316625073432580877552500801107593725042996763354531515623888785583135146703273559978683218775246255379822795159626418292029586872672493345637620538646605238009169864795491301940404764009541801543906672728447021404025792675927287997543399578245332070350193478349737003472888520614480389194006579722255272141560117967287719811841260548842227256412040068408579496419397880871231150140567130229938529191420932506757996611019929032448056916482803183849071256389383494441351963145672415558599232404486638231525327245868554858079218961282308175800743566821327824129890123417474782457367986924153749554372061119133285641598124272382748182509441966028389721191171268695109538982480634292959703000938950726697432561386344643513977928827401252514692701658658218951768554038938822816184849628291927075408724876826861892737640380962139605179211053094686000005415806082395911552239178365536989376067855932727080910350174103870507939675758031557257361464576008279113696472287233288806974111089388229570025201663644222911619626143072777246725224947083367657420524819697987715469871276114754232356818844957225813351615973430813981990797237740736018237298191950756093983178270522377093597462510603195019719090457474352605595686201349501411968332431620614406970309484976769479439491018376283086695225124139057233470825197222965649560815787580289005137466155034815744538593556468851504341594919863698292157418150738300965788374973068250679243586291258026742041062689740549007153606632961550743058236099465979008738210509381210985281653469609668493779152310892888570105928613744678951280083016042073396402280255519588499982117258983601877921817516197340072984411919432726994259530922009783277577322749569250894678539376671890721286880069622881767237984164032511134912676334291386608526174559767089117710962065335368116978871430278547712796706776559596150352132902975268722049015090703601099545638836771842135023068901060695611013684974195278730081565214009617614101500226134615596862606624750892019035225405734653420038820990482542716985772890454819574427542941259118009196577855023466572859639697235111061496124400688849140974270092009553482015749287298246567702658230313172995725376412051456611734628964176135512128397405460086436597165684855630710546870355368968059402359895667050106300989548881909626407557205348996877456138394271124118189122383344014074262822804260741168848855242330078919230982852959884504885917843163574629871328236932527468334152822530662898825707450057758601687132108550131142138477264720811096774814846520244992248850194207191945213022880406147854020441826787245085064120523160726904837990700482442581414350675058573816314307837744687938506059063968026908587669376483199321533488999605039345720875554087252561249094079403502899120504634952845998650932925138123552683376513139141915162983195236687421191046617682066947991381932233930708628238912240921819674976051052893390003007385183143585640866039905920207264958156566003717304781689950313958039407193685230642664149559332260594078896522017832234005560818193143736884237157087466394709826715549990064698802783635605051194981214167831542255582785118030828056244143337986588455135928734107268133620668110357984714298655233484412149811477423380153991101752409582198938420896912066323711512914470775374384665108419220139186367714867492198924210997665427699712673281783728335426670596092313570612915015625989606374032546149666732149876672848798425138649222107719386732026973765684682107033411840309355509112460827102153602040440441084309145362860781556395576749313904013012648769589329156493715681726996135765272468156319694451609877695033651711698534582689296253467145493304901490702343451249812585634372555118049123017900994530643015112255488118194671822272394794211290079415431439126815779766337165778008627816656752440875132408502066060335726500626937708700489066236028515863606818032600166029477043491002967229521595963224615378613642849672758565033723987129352924549314363295259503930985975973910078189565947790548386267609378961569674996578315718885153794228213844146413761829110114866051395652869268124916457775966304078895741589186765669229472905797928582115884464152438225311873552400824176664486358667561402730113112808769548077924223007540113430638604880958560670743371335456744693298900213766032093416186199530070296504992625145503028258694834584684287517356937225809741116080072193885958841853136750166112769102003911944015970979891401129588419144086512995499705960375897852808906384844018766112992503851945605114424458499448886778159762659620102513086455488684402542561315164102916943544785518131977178264875340486571702417356927017987006741399352288401060933159343337979476962606903257648203436518097331883605848775981856787835126782918852873135813375933676003199672282766365546341334935992517589260569987058071435750440768623894181437168181775421915485775648880227196819677903543206829494241459859305516378364047519399001409317468287137287131778900682986264866911381911492745003079860943245556571832259671429013502160278594595861504529995315714974664866167763881701838074252767494121789984320992384733245799169164662980627083787829474549287060652179623661510066853104079317836008338563580810170703866032690395024635940242695568847199132911811054395390017185933710934230646137475204656065571944394950183192877286878674529246105536478615252289833111022170763699147253236124932837120045682372851776014424823410765591772035891603432686199477052958449711286216609434493979731651205317439250135932756108564932728108860071072377407363031298855073228550348754106208684688257894687306168697966215186882859534405798905405174278096206532009160110608590086998760716021498793041872794971979116456096199696613368895461687424262998651809962835987397914506279755638895198596384248093738229252904142909926785502038667141890035645106089275563696719201463206609638134207845146231003984430895438019249922491083379912072780062955075334510099431626289650783635640796745045865900871093281297425600560249135937081882368547272083739141389852009378410523470551490157351599404359510464308350127204046527080636860377276653548619322050533959085551677378501494699241202882593442219447077711922307811510594958064049644998200923156317295072087449490580127511204572273483456073309520765119538489212783527382320530765947196034385497950337533771314407351617646835994382056694505670372832544905894377004750433712787257532429684366193281854810615909813850937732868481574162629178011380468104177007088618774429740404755240540273358305332526679521901718051886053542400741696733547118780533589407234522672189157689066221681998357025596226320799894845194695872892845535380850978487022223809970253172733313500117682225584839941371008141934701596969062511323189604512185590855056367909113428533629440300554832975087430433001191899962701928742115356858578204940900112712976356656522923411862369811459638839209853150424916557744255821651718060432646590953194545235404699611812096505837585946843831009640018576608217588479622378370186810045333532275355398846166251176502161969650385680530680865994235223121762074745347314863498780600992312631862205677879867108618930782442807119563778797105869227130336955357926980599842163129325757039329928627135807540590333111340934073039678884615055521394796365804457952851962334390414986236732099807994445170805379946774076506406323194439966166935973842693732200306112401713561255148635567215037110305493273336056361324931355230234909326200030333188359394334986974846888332119488253066736819471552227882645099838834671527887985471493215191383985741091753972339350252251234534427464938132587180538079325301142445882675054331280936356498314024262369216308156752516152440670729574188769305639748282349318817687132497776864507078421675599571411468875474727632338941758085239358958465609982278867198287644241800904738415779365628592762619452534588563530099286904398147867377951571894129285097693085389399692556599386816382028128128503353168843922943940233208027001862977012654732779924696459931373992292652087972189325927067203956114571076564994394643961353817624935252152577601294099944922408405060269554061788215033763385752024639382286483234582373564535711387627561924964087120759733956285124172095405620813696319399266887869731519004140061183036641559918287725191393676788482526670320178249898250806907838750447234436933058229963663600533127196870501781764605911335967468759058737930997954771057557615426755395192376587220693768523652467071126271812076303167557661164011617890124811430717775144071851488136202749290291823768987309363925844943456612985735197081645485865816146220455681127036662439363709517631844772982680860677700118207231018598720139742177832225099803386252973251417514194311307420406498946504112107502651393015989343765314808438079465639197915069870954547252727967480781567642820733770622349334432758589526714013271068909232819820115857885990647997006480612563487437819471368260592954828551145564994335777480854523871849226226102450553653501315635630344421275976770490107302151421864058837462368038337563857911210988372279575393000632108929522907531115313504481183032419827330997910485326767139046520933920976657389968760713531035245443058823779751350239817147465297653803626123598791313661485800518490274432544949493945133991174137967989469613334175417331681080152009165304277760417782638978701147645848984706973290940593753654427727365824357477397971391809243824161132195375042021961650431914640243091648679362276170031519516642040162705576528656967565927255857779972896958964761327411993637909045102086053921520470043210466867071127747510287146496734105807547575911554539275414732233445995000240630542439908980005771207318577231231035348685804905149063595733215229884887983640583823147734274784023320199797986832079367674897739719867002109709702249395700417715064335059679093769563067074439186949542122932750136739999315139109771284551958230355613878809419232894838082093941284573364946821450725671600500358503527647758847068259924296675523425348874571240704883257707255135402720025373583622547763717759641696581237826167951263024092034655993517727303705975758286516180601954176302081901201016606217399037999706894576018890313345559778125297421554913925208904556320591600646214320822426772474606529275331083104819303994455270042778440300695317459541604759620115040287380694829711641712018613983146302321347003163935982031048372152705868745383218882854901053801933270371422205572370941463839150359181434168444517880859402002453640249733732238301006055186767991891746821401449093897550857203093700809881785175956588795294160760678946752791441861078329754281477564662973242381333417109954491554841912683561280953570702386711589631856715825633417804891786594360565158612294762135385328083927370888049587687058594973885731908881714839399705654914478963108754291961994695242758176809317046453274270144101527228050110715265363382983978030263333625673860337402380549360352073383701905321383259110713443683828629182482555563963532935570171649087789481333782135063644795826380713634124913722625066812143661631035370429974261446785856608825137993301486953612752194631545147934864659030018075422183452786103478165540625737805514847506688083192398498951032676841649818723597799216894101442809787888011984064094838314635501265627610974698470556592051260278089477734217686984247116299199237327263773318266298445426307057244168698113799123792822152303742586210035884152109111454779805187328722992876244897784119276049304710965824726289208457278756957594692648788482505758112830122855631628683258864256978785852204648863838205782932660009276119992343614252807109470343135087643301380401001160630288113143983813114091239228381589256009303103845412005192825789535932030142330163716003999602125668534381367479194360224243324747951858552508754088698904773484953195566896156163400358027506566922595668485972140898141844508423516166843380909983042479078389997510258024927900770041343089475627307732349563360290422141932123279419496567384013427518904565008571115252758063187218445324471115909888131322018335660553741289726408047229247761765196063843193032592609929731469014626387973275436450857825071770519092258892664845744719860568106668159324489143108928955828200987638746840733323195531789602271187094511101016473496008093636649368606283050272718157416009066299459364191425758696751161958496075693814709111128441551201941682256786315406077073274736212436783302898068232844372017944730013561978577135318787366531201152563431828396728679308990032375463612372826730283966661145752514904375683840537426969484065338201246485082280749574536765159709409259696064175295166049287715410444293525761981623670087779464763315657096135898708914048028485061062001957842340796429521511360112061749509886395827483604068793818737469879825201130691488951283632140575014453390784254878955289759611994538021306059583538540341603295018371993782201344222508247823135964876399956123223000091901855637627020089293504877821413640022192684657881938359235751038777815761783151191105936205584724763379675575313694166257174535135814760622677221601170292086221222491311593685980451484354909864807093807542789084582743010163992521427790669962449780827217035335653055948103435755477804862727528656907337478944097090895410496169104146586168005317133059551765429777850518725099986772510295367819913345487548695651654809098143554987913433621875615615232317496914523759107555342865487751894869014625125966854777664836582783272831301397695335108723172842476128339082927346638708234951902084934286075556023103889960082548490291707730991296868640952010997110183915481710427450254840741350564315689985533245370805292750245988019182300721361700579062477893785208859214084379313486864560790750859865322874946383082277773073969836365371435424515842385795053606245296600757855061589482118144288361090699969430669017195673597979561280587984635101349302978456842037736982611450805647891358485618105091070524748704549103745261235750583975778079371421376909622824261275215077581393605078198094921731127831508904374778485825691037026409607467969796789371562734543492721109521694894824988635908312698035495064667713887491888140583675139209692237804080063034808020153971183424310084519986649106785101884093425263705484495562644557937360944316419945322941324958952467246456992695645487664912315190185349961701295916998235669580212193566085746007979294828008733817314331150077505084785960630549381820625171582873701722032595864435765567596269463349691317480672288662508562408133672100083281748812982619643328334133520668727907899566157530601348893679688717179866852732980453407986901141494487039576137219313857607288325258702755022012255350299371489788719652702339168041895465896103388454683042008660988661021708928864948733177200799194091203163607721438330293926652964268342889107252752277814839623475434323789884035208405918921064547330583928161563316235163937936918861464847297920030120791255707564754917048465776398762647149920324426665849828344277581800767263865935205510486543317469592714275072966565934639429950907707657323886050484956536983921113625317816855620592139363877538206617234044704698217306573250369610708531732817691097347241311298882264378027620417927975142290368637967755623704010419287351344018607753103331194933919471638432431453618019773855073343179172483577978171994332462145618536861035543575537655031071701023906220087349396288498416718420100472231398099067044855174982384019625074451519777444675365020835915114433031522603564378176211218804740518667600020273712737994586359364224514061069814520906927171350457713638008223742610307785214778337284357321240913265078536333335087640475642440069318734674668205285773734963541816547445900503626064387278417606559393860380857093580206682967917078370982152254892372573047176250991454002621083883197082467346251939686313735115329780411640705716154297260901069156304916474836520080380560002080616391077284095982745728424407290930457284634889265294497668686514573518058984529268855302263022229609717479197354418626844429340753231344140291996769673175361999417180183887692999358251351686382975120535438511110165504443755883504729542342343476994289061536281420079948118731154893637488193832574097313880359126997278201162080922702006294958180143306421760297213188073373378054953615039592557625539121622559346522878149725794101062205243648799847137754305531987055648424423981529824245765967659877520037044409399853963570369709468372880715005513299453588354534404535569363002323318157703540446061411886014931935385340923374484447159890903590587600273306199083178831463069112813039079688491235891088838448844566095233479789087951812458495359971975315359178548932096910595692231565862804201843574473626457494927177733487123208087574964131335419713430146906587858961230054657095591934700585213600050216132832003889571110149909022691040035376822745874817163584759492618880914557252633492150191568726864371693779587701360514845835005429306559057913526313817719708806080565257579509095527383175687568914316225758089001209717843619965566030958697692505177044402653214183572777942925253327900492391883913772827257159501909381233261641954968874953272407193875764952357370045502616097472818609847361005014430429694876274225211059025828454119449084016930837783259995473164607215425809644813650537462303954195821049470313908141305736006422968951216936672569666375606261353063618226044910361417167201722672949682550839401578512277722835601152228393943827480767503458007857569317355594108871351926491515127319192993734281884146153831760653423994059619227748760033004987398698487741853140154950419463610881851098208870503683345788566441663086298159406353752694849825613263218945275718039990756583180669557942527043735980286854663718388313243162499372577932017335943076472613761845215771870228719511779242986460485869204997959337584289733124615918695635277128306299247332975186078980799311743840997235890472922995809872852375462351210614053188488195256754310085937031899714654965964176991330486975100859732985560763551799303962605618574730720610689097339835687110865779732289687630640338677931071222342336519989881852782441429431537595580409572721850009559366619072091333172361237629866512837806900702376813994529361161279797077374021293548140999091557687285295440550484892513870175719093193120952618646411472830508726039971782017606541973640454943837344251316785470107505054636117352709165363999863665517158746839859748687544081346705528518689766179127541223225133568102637610985147930260307906457182309277828198103474417838429813074460154444528568761969910080646195839855458837872224677314790640124275238126889060564708229871501614287870278045041492100738713083972190507054122080803151609068979021691767761008403883954432138340126202590348149781904781661705372127165202528980485466283295315750770793677185248040855188638688303469928131977547523526107785135071570251412255158331817730341121417877249449847411570789317348676370366442612299628359289053258716336864681162905879826003376293049318770634939731645510629950935502626467918591628270480120552683853639779860864597283277435486830762296584207194716655589434918126519855231285124383960489556848264872953316898192490993547691441518532357126036717185397534731545770181720478627019405862044227891237989769492405836655371370287293379089743619826879846502984027023415558513321581218485378941352756117974038648163987468404610045228249906060210686966269755451517729698062142968879202835344198396608860651652109283725461218139368617824117315444733723291145683368453262941718606053870925960130515489179213401159268470370878358711420221178427122253109169565924170912062949667538545692385287936122594314244895414336334637021911257119714701291192504143834938951530264869249463854273117081868227710238068883176394093338967103386159044378348661710669651170055072737095439088343407781667392440721568823098762722705530425067238234761875472064855946786023098549288687479106483694509932410248697237146167376461400090020881278365395023462772616430186286222398703527302266188335868389665176441120985703839067253354515698848756517363859625073290565415036841776102331375436446091711937820481155349853807524415756666111082889137670273112282986589719243550061847150614534993128767675164075194985989104234992913138824611050574940280398581851790490141087431305749725612621504702633407185996280335946217304084890786547229042805755429720232885437436216588425396256071187304514098450748928449058843166383995564579395920823261853204980951716074668380349684319782985826399396845487436416623948754136316816920873944510697017577011097399794835135817528162854778241236445030300464444135119669692895353729276051091155805410498855366284998559871247414720056691977187179232743307765384420161918085171314827611511133283188671129605430651961190847140302415363309337255569224819146948162751402559216524096797172049078147702631166937958552148650868232752176299112494563460853629756654320385822794516837223834152367608248244712381986352592996454980835860688411927134867949265984076296423576143824516763216203218804738758878044818471728187098477163762451784136934860978748412762290856177185517829126589430719256802101700202794285229494549025347835787997724240029217868777697842147522081499290991783447774301833537408799821389181723337668825743203543230564526269087057256812892628091737356963642484637777749088572089851539455039449944101878770272519889103597770396973954394869899556857529620132295797274626284541781763234635897782318550180978368285845203972779101491570109377906629838949168355751849292781076089513021194914006679484756445689821675186849069328188120919051549421603880544300789958875147463964778676999059783162688402930937794118804320249994047549106186238174051457106306179253021735330082026218980765193069535242097585850538086168624625677980108413030334603052995536874780264011399598535134590249591698796577614469414166267566223608541396294794979678828947761215476430316703549722638356074746283552556657823041924743149273389628165906992766228672622165327932019761986612906037617324551997440633680567487495093414922235457774165733743749387670705244386233814930159039004538376011677155136832454718464897040788380577357230516020813683208762761480004162179529849290404977614107765498054539827912189629444941179745196261898679871487920479249846747288617737376011009955831486396136799521683998701316202051091522703179839431958965173922433513586063710662834116274725305626605807002996019974504954273899125308505018707167341892041508452344669301852549282593326572540734947748379605738778172976803795449753614773513815933627665985882866006245238274009590387580750191877887327069318753620185472705625826009998871998719030746031245467597409735704898084098496571100741140352361737639846015518252435586198512445586455992593237284356795107684756947499515768468598405393491749881073687791044007551369149283588952779841375467356943275286424190726550369844889267525214185213811329352282522136693507082203245631288455680632442298590818269062195633160685167915801364505111310726261011123453305454319924273481843588312037152201415133061453733015076544783245998030052884587545454771329092685546047304815572525893759902422130933226067351310473978504844903174709245390864547476476122690060336728727576821600820868594477560351245609726288238075515633983331080627525101949299382597310345182672140577350550934634140198799406797318087065464911763230116972526609611589245956715648736186897967090481152323397063655400106044620180139958029017611234732011824019597499046793634686778032140164036292998576474222084694699552726905940202648267240564260645366022823403515133279715986206490916780035713020161261162814547144131655596182764939431633305283275820446162823712836307590854685687181010947301575018513293338999935433871475477972122545539325854015710068639366689820114434843564140416376260202670952384059725889799938528172764376900682927625753884890292027650449580700118525286244726283571510112826241701379887763017025254444248200610729819785644666238904523521604370390622132985439598429099916225686562245144666818564693723945728554899037590816608716780729611750141355753820117723685715496663115721121426038988540399924340996289714978044269630269724426538795299747820329988036588604090247991349583136391242369821942738537627558277567825082432601445808898018904259455940670040746095011626104321337468704584151736361244062375242351909382079643254876624097406988959609613312905591792525894695806020752986218357581056140626153536623393832949704827825346356618524412342115261105570119050221680992414434903042552043401930510899216521932117273673569284056013763366754885821555084562477395343350093010984810969967844889047620320705455755035320719781256446459425646837179297780062649747991222804118998940699879089638227493010894671040274817558879650920239991609713756574241120443155358998185740955976109160879491280564091777967817700950221529454155548145499241812518808854865765070385862364269948901441982683859095699867631722425834497697403956157213638250383233089152251564315190140428450148226901114806540901761185461309089520951596022673751116745706214187723081404079202274504065257128190788480621327040061153694570935701923992424574752695199974285295990784609066668081173943193953850568310423092543123909450516910365261614998355000704201749834926742774648663520421078189527142839613863757202995806407265315947617088451340792795798000677351960826710390303441339030009803249082584062907948172021085135306909711972300608418372966632481339957450392349011034533341056510438884533425194190581109768423681662618307420414466096419205469857184822974386964391059128476158227177463912474445417486313523288452980792147442204009732472453034325727081283055346154359516949586854158593820101387748332794873161694175144510250876786240533948586439458738384142569089730944977403963888596497815103390470139270728343508174990059473135510266646845700467209652051908250007737550348629840335563953837688700888428093200007972270854450360312965937699760286896640564101576645922266224438031267157060372046108761509804342742565477361251087559446784450920278461173780728680711145700738813572715121936010241408631350167651624354525143866924431267269052400742171954061925929354468474146724009063448921243907871530620305867936181019176051586072694459681969711410683794458917515872331951405565562747407016118250907445444126810590787552420975620919237145840647960267817115017333934047662563574581373408832222600991798994223929552421783301952440256028141218009273728030738533014461707898475249241000866622568015590095671001070755300778480132740805909995692146309136681844000904531082360671130609680699611686844464662082884899494549277168024863481946255848288753533975367151264652985110716645951658749306330857679569545077724263306316721190486509279720822897203574209816358216076177662301540632175802893147711320792440563990914186656260100559134065491355307436550469115460470013978024537296522991270488129091371428435169942616135107638506073150938248274751505188263234229654857030118817945514465747673313879023937168795340110955985149352094772294056210082816952585323350400378120691953409351714604030621269333682484860484257001444062847456342751880162280199107299887023399042900477942939978585496948669794260545886676418091319197919954503162133104563680680338350962104332523790533652216100301861473851511071078429767982092113264745053079910261013240447175058288864749684144474106537308291381789205509091178842595465402671488013985240673507270751894032472360435497670406255893585583745741859074272356442134972801020855182485273180423031365121731461135428606073464352580432335230679924786961545363207651734423127588341422261434455701404986371690756994516077261282650702493500083258600687494772608211272056201273751218170321565713777103099535425969715264924119121184774047800051756014112338911061999060801155489084885527430970207759307729317603196610962122071245067563211204997079388444650015733678890127828948245061331652072823974196762321121440134622059853355918031052184175022530841044054128714264955667610774057504984203208023463604280736057266408651388135902358301037453196895954296663467195655903914330317748307828101152614504899130315240864663418382827277589788229566373638509853301420685622535959327491817776822703793590736374352889856223962067368785563434797137557255648485905028450008782336054485229196942318118385217577250868641210185002510082225136115744273220024455378801643327255977986673745705994163860559046009743940395973273191826879277874570316466062303344835701856457225206577901792365779904101853936080928898008503427588380562988807238540908452738446111049290049145746485465483290712477705184968230099497781285936432853055665698112530418111304950112979931884674885246082882564127218616355244689532779563285354212725335755348228297114128083282668446803108091931277300155710650668705449308796075629111439519760385466938779495757368147790301294992945309268384629768700396195632017145794378080574559452209380160167073768724702962656758360298357058451326987283433082202436110192172706197527713558376360316348481807916713265982859518089761003370628564231013307538700922422182804818740059944815132522695521544049036556883239390233791206195542812395402508780767134032760827800242563232623319570804682550762524741611414067732332929229432458209319427949196433104396370861334723284482172285935430535789500098955399656137099495370975506506181682032547708938643374933896587984169155171188916130251728889262255137687687596222857036935407296688334068811444736526778571112339596048139153738688662899010984512614596656503334273841076363433278591195207572708188730713140126939064334894926318583927642106634962737437429137719213520044014698579241562902964163088310341969023806541941951645328613126537555457093890188618463203615994006070469183412793431561861614920876498342568025009469895583748184963235406594969705274744984913452783817309919085874375322641384992784125585871573622878962724823809245617411259038439010045041855791809273722990410261445043721300675379954825280696839879122777278674073066936472533104594745724836695697128246646145074109582886313258695048213780233477531387036937049659885650613265976454507092133105006120648499329331166269792843858993978249514296402973758952057530819844406958617403094171049589756148284516141841200204280473555146068859653987667352481476942911092784554531725883057864115106272926783741671020925794251283339528945606234692047554914429108225931680312064065232000324023033593357230996357653056852954210711498385949880127599367690228973957485840911061637766152229502736366069117384259210693399423740894667700612977162990820050151945107211476487020892796961582689444220499023511726857781649402310335674131363606080248821925198887634680230367876339342719840440432578972997742768268934194024447517543529410563998559638676320970724622062123818229463946658660927951723274313159720204561757674557503286967095655526355642310634643423312106211400990151580651003431425749229825957544087521558124881338354290092950417344867389460842370777118183472882279746824071542033623962997846125914578324283411512282177820313660068511399358100892491713644102904438177521583515410690605654506073417092517241092335390104887634065129122560041925228816251445630658470942120139940325665042584807296263565771149206289673219367646423879277923883250801055217272679001898887358079783918449415087441114491242074547560397071316490274907629022854811643415037891830311410112107933051203160334515084853023880393109474141312214133213667551230214391377172801488231620542462135008601939485243038513082745741726883203326294806511571156235470094870585981015277954257505788162521818985866430885595080090376180845639881501756157713952584769532200573018857614875127905018921565955007037374980980630009320123349305196361990404832624439996533024587122288557035557241626955313593747067442637950492387329584418766654529942494977543307678825522538807311381173524627091255597770295041954148883404521580932486531196786743813991326855124123769202121770807299886625438849007180482441280434018944526510591403543400509725888217670879233568404157147951373656975741880457133986518829794057280620457051764680712878638354424828565234436458233328500907250820513184003561895757963208705946965975749272285634802327436293356830192599341442780929494055638825374021867409334670044437253237246554909658099027491950982782034755100640618491779227838869634232542480971510291399715529621685255149626601738157065874653908327103163914799829815114879542534772076468741116310762403320993290771114384695638672135860763193017012297998716170139820033644096710986302497335744975381699726731237393423087299996630581721196890917748820772408828347647033380204145452220425575041352075842129635769505103256926520632238989425040487526540922970772155058665374997321719596272681957668240617491042741982905049161189826208268107988477776251816552039076380293415824632706542716586909415511157790346532047481554525950990988403262154571753363190456752218825537452645204523577869962134181603994250896291027371019199657497812581200930564158530207840673917555881810301239606921390741394568581963068612668311414260940013271780315703024826604376422742682477902389523159320974601219000373749847274346106735230723611892407131495088327729573700327587114701433725779425825050459708886242278766824588585160860684456411211649770884541681640186659676666341051804659278322768535455352349218811725838102034720820646265044853544465297718871024704289729287710713138427688521964882823668190643515782533913921622868419580249092622523023080809248810822560567195369195561888709726356941975987036485883814490828170910242531465587472746196921637233578555136760908619504126558838624577681791425108523402734925145852155144325631187463579202730666710673627924878482288758541396409138813790773322934179791929917493705700110531370524459855066155846015103807015904424110517037136902254062467957584849846644790044414251698156259157852867977681505842850080702789319604412563394325837050887094336940498100577492160306262377140111696169162484504878427054078786406924512852035213108899418043253989548564233747572198674739846945048899049168685710562534582135999206376741114264261560611100640534538521741609918743200942911780687437561478632448888330367026094557268059354351591315108642056441986101880498350750351534645561982396616702590003262125977364275047251558066838606244598416339809226134115424459899656747832564269381381751965947626950096403864581081497437073545906283972037615319799692516988846286887744353844105730480077998260866520030627919282081263873088913085741514132531979030314512976151389786470003910640423928842446235873381122781077102295694247110684258633109172878037711018647290528700580863991604745847820834729338899938287432463389254388067417339465083750399124489501505794590455654840067648269201304872471372496266577015444634294330784943809032625494782543249206788886598449386916830135348153887311697990383674464776723300734097227203915574365954155607293096221438405217900401732872078759290779824424055919190270091902838978482424671284242013928156902607348709708354710627712483653933333023857365021467986211700803978218347743194933533594627312230536335739347490051860034885368957815214383227275494919885299727499975099639491446707937220811794045884431703336052205594995970571262169689876881656214749225512479243821653144549593840633962819726984010053250886802933404095098630053220684824088668228718294221018916197888702038904602847611788330585722792886917366497879393617550357553738294280209724987064287452972795135368852234153560230668815767251263294609518668573147295994350082818145431772829210769953317941092563291344374488573909712424331144600125563602568252811300586567522477446758342260610643268228066054774669024455429912493110267351661507054724519893473429443513720350985674858267293940846346203186239034152771909814491507998812783085859709644759193161393987258705438326145122958940019951562127751098690236172807813259326603007438915592189444972486372723474843663874617037223056692765429361273478456246580857910831611426944780622211972903785398550727763887119953517047522142315364279839590060578926008807883159620659964628411144204809802936966193405985778711708386387849984267196887926381130121483608342387284668660198642188464247570790902755673840314320865614594622671418072276250430478508679365744104587960286157231695034840589788741825198322021726347012791304878877725103054650234416551461403606316367160809882029177169990132858522970087466608249271850019773813870115521805136096982411851939361395483492333607578553848804619634947435934233193520424979569592574106483061728544389091620076237223672405156522492317422470881040642298842235190155216124257499012315528043116003882027475764846511429256999181856338393520531291087205531428431191144017801106769577804616886080202877954869660271545082035534461164199831638277341356822534841603679741177109308521492804530852533850038075999644364935334742773312549474186362558156281172264426912527334257395110742007624294256512101588445325112698872521278546155337294129983953678319555821482869229389751742793211255422702830750613178922756485838404435636777622208716238490887219500758060742057894231148767742454160986789155821300422370194950565882672427560723371365703123145484415271250925279123879598884243747205425438350429616880091321545807270359280774262876565708934080841942572401875878968990531051936637001190528283661500692603814922787050212368002201248630642505298029279182666567556297125993218818489329160692468148188955588165460811326806532842257805053244927717978297611290953288567225106973355272284906158047975764515775455365634224971692656694358742153662904899310975836961469215960973649037698253833922724471450997479997119742349228536001055661368471039248988919823537595149517124464310639780807623030127439554152507007740427269948570637191356573094039842833537075592479443260999515212630032028046021963958387670847882027805642914377309530892095176404414201302274556836385639076585001234798857494423063884578888228766238256750953863198755032325104709002626913073263332176375103228705125193750701749878854304388670281957970042636563651452364147996173029119515274636839000931907541187147230839219172683784075729107979656575593905941634639527581288411450086420756047392378878761305814675161616247674693346699750815156687386475187586053683696098489629792673798612331448863382513127966411939908376109633252352870945864262180673891517544069042343407647648800535592336836378499196789802527274335303586183033769721027827595312400059440298469337592568294234456379096466038237833193180184088160007177592565108234029091097614625381358876017846649517719725651928548411947218499778465770749974031661205219424500556181012945994834939372768667971677307097339785120826549400366866942225965868515878971936545504531104722859656396934217576681124124287806510508038226610389361407735743792398424566997938229608100911594224698248244562929108701655086030874125286847330617004350959355459440216682114324420308772119015224841772231195723981532847001963397158289100981344792320004787188460181824842625178491389841747004499268845398783516443315988443900902255703822129145851878439384692149491170491333643104033733870824417822604642140164076423615384622489969287598895928391491185937359166361865572207578484602462961658528947185171133557661014078628553701667261577804597678207398810954609954765497788695390857273155429261339251233181570698114515587251420307885834636213360924860598252345148090987220542225292008761345627744833805253725790327464892006618208854059476487348242654087258489685444024264254838020979254969145986898301176796519782999417589939291965116130879996630546781537963606396332734300289371999468295226843180350186115263539944927087033008170774664813440894356968822918515788926787875600521302664921735839393910644382990687331594661837165138436626933114435202119484245175231534443165550358823059710114522358830166391959393625986972545694542723382336580048554050484890413608633509839610780164570145988930456479948868751745626738069117423737517700605264222942133083436428783123218906997197265998246275990865666809133039376086190741457665315142626020414641635333811004705686945413308487236904183077928080304630894989407852924594420686606252671492797816436842025089906958604860186258197253157632032508449709734089664717988941902226935109441412218834427696157403427032262713902585720289807025345241727827898001296831415368786701047537820515870825853028143533218186178727924902068147026674886217367923029985349990674411841569596736589612524278506982667094934516801133633110453289409721969201414682587739572784858678615492516366130063227731757208887773787160806294457072820429329791180765631664038229377650206202024543315857894108383002366957063128318024337144640066658829321324628050119296890962773235410177873009826993276140104451979184863248692466368836080046573890791477570988860698956140832728608840529106985746371132305698413612289371396807802026325521678812859675657683220711744828404697113984601161486396542464746436633274726058427206932558125468006703037584665348197620348136002206422951304762511638699049555312440380886633940810953453486036034490986924356506250933851422447058470153916393962779601970574440344246214967128287967478390720778691662911795137562847988747846019825131257186492799436778407106284020235336887132780614170001833647642690165000932611161970656318877753266643083558686916712960488402694882058595353162177152790233071434455673427503213658381622881372789788895793671257860698315199778046846591347055431514623739852548657020122329705788255157633182144885054412454580063016097602540990607516466601688117660034490235971574074557179741840397558136382939906137951752899985647529282004061860185805409786782328239451320935983870496071513541747486877207770468064237752763619493817225938492968179604549656203922798657489761929046907189246974191546754181757216913641879834531623312282127134692937138281329055664628579263989066431839422135564305380657992566120401617105034688021535959478755047893140682969584677369927438609812908122247996827282830006510783359403048305234539222127100612675719437382657075918500995244101386636384893656062626651472178276461440808745987472188328341909497794680600136464475328430142003555424113609808390505398106663890033649278730123420097025050858817938902708430772121962580354358359075679901486674962485232010544563157686940718308336399077751306898557154776884356318656934009199169993396412891497792282824774229671816797359538586667260124680479394749287397748135498339513750316722189113572230639256741433477182416262907784810722198785971803359726396502208547520965017885453139605047073191802211683715612624830842802166336751367188670727992103377307168951331819199641269563072693020454624440589395386140963856870870055616214387687217744160908921442530367316253286614209607479381396096728645244229079498665939148946049366775422412486263176764013430502714576281298758804728483456103829847005161501546921969621372438434774123718287852122506420526276813845450383676479309988451556125244217697473820350336411265031404069324610530776231480999480258582323647408377408273376272942164303960100142746389324631574979052863009185198617939968284068107141406759990763078646577239474735141794830867360567040213311716331965702356137769489925144823965898700536036579775657238661958424324698650282230805371928632078999286796291129193662456425855367349712769537165791301994732487629390710645205095027889565728543082130866844606828607537714372417050374588425282068345406329976505376023327826062877675766230315445031737266646680279888544922718725425634431033580308380808910382910649137953849514574526549089334705543867532251018802653851157744413910427439248483346755190927022259970873680275632416824715023974467758071510563796617001836930997191644264358744013092166065646197854209711800719275756443227938112099144173336380836690058173503489147331581421228817875832925341441513077060303862615863440165073345361703497516071223727372136080268771989899169533270608811823204063108417975187955881573102836548758421574130173459533192552560332098062525540111217697589126973382091852632606662906249198820374220218631575607306484648182087908510985288420577264387507846499225021564055492199260814471944693408690070502368028090916123352739627987795915238482118190968852635350490853950251610548575108400048795346721110151666961013691575834592812349851909003415952381630213554878485189209255796570333397700383131130338405978762929096940191226714365826883112875603847634470167512489838991292524977625055284157502481474245759945119679624293853870488749207218077715059028985416034709226631936287574835051147090617488369146764366897270560092624816154010492813287489072652302526714900719206794336218325660129966652409898339112990608549525821705685449762784162436862500138300949190885390718178390362655119759207957384295958381179114612430862837865938036260198117239827970033030131237360528461600247310496772458721906783254425076015591929019256247706905020212954017120641796902409995306036928397569671466952895264111625468802359587209698601663616429493106864497738212307998688356582957248436293446146188409741351744977329332920212600793440383615207266356668689583979654678136920649467846337244069924134171959127502218556143578189932366979502643228485178594691787036944780140592369637973401592999232349947226998688800520429266289441790570157371250106484814268232460027982865087482129401261681270191255668162885412445904584038228719394359911373194944357263378867529090594530422532681376755336972467767143981284677513113022436664719278050056750475891852068970631677375136890368174568399250674019929653229331508352989982874854225758096834036364944722286249358472083210932948565318997984266316929587967482576416623934301480464597021358222613260217076187056228693414105060617079631851727683602339654581746165924540016681599400868461282911118254229812431633467502710736602368018118916313877210753017787530383159413707181273577802221475137674237413516725681964945924184142772006406510510846527288450419762999381459867443321351792872040666718704121366311678583576793050430870622721265194141019867873114996411873315389684501702442785481443747298182492395637187595218426192889924244950529614554258233812715985077408835216818081870277695707012923811226849250551906886719379296563760805392126963935961503406443280374839861341333800655212567887243780626665554246979821161037042639455203857330010642264048920042282943254926598136909621662077122416882649735976587615334831749465598101843361748885590151409905362240312547751762917225777287881190950728699041615024943924472156603281035230782427864050650866531053267395230342749103685893805146617687096840296737930550478570687141029722793352074874992564443530098330048574611035164420667555816051173422777106030864681562890353563914932665483436269156308119965679562421610150415614268879627027099972680536787623434876228154120269527226250038932462391561349902091072882654861601766360587362304485252330509996146694088000319323907979641212956770318298586372147385529523808699786096944449979148122313896097528359630834872284766876118792937098954929811737715281395756687507999874868603577707125726515155087510065202761394914577041933020308752070068188397069131902063279018907122334376219008061554648787716375878008277671667110548746707090567400654268934195045432068368197740786994394156661706701251173740844380826135669659183038853101487484428215678171502622662137425255188379826912282647974741974920812921995481718714996285752599428945118707425853114518653476970625896895010740730284213421912813444412723741578223953556368673357078667570462158607202215474932814928355197299389048955847913761846888843626907050552677443616923123492355258001642980756440557285752169002439837052601349411584255249448312406622473196954899123124101905454031913306762867533370410931326142677301717424995020095830149355126646191171481104730348003162642715994539362862053108031856645499044190909071431972022036904059674127098170790460066900962166447897202230271700712262432325797635997814293061252088453334552183992275814484435691146282501716862037408789039443954078668341702628767275073928046705386550151936260607623585035002031702915746924591488696175360027885261213289080162274738296760010843909180283924042052781394587654587617129029303225964382102914351812139481511268671241313808363730332211982868772109491178859510405362614442236242163209561408923739007303078839220890128373730450243564149008121449941799676487407194200558769559416471033102620041597523082046591052075564862244593570682024926915381377774360618158571471084441719812103905391605580321400917661401488001612376651341079290933380773509532998366698962864523769244174192712695851660013375817237438966536919538776814310648200201746919059999790802138494071964326848871298419252498457065042049830309120785891764259818303411574928528069662217601611063128280536325344785889989315062762145854034068941791411478512594500811321781262831107496126568960602058485640612017230606204111351839272875158041237206044248090008807865985130524532461186845280359577370745025475713266788946535438274266880662732608250061254625847191686302355132873564967237237811527355276158781520995333320850139859831243880716682934739415014001223504837421694421861223847635152577107897052113972804539088142606268872020421172727385063017425986740317938854096233687878054191048549591015929253285256424494068610679828481158981079977941377131978844613718949497247994970314324827247721467482746454472888519241061906205628909923234758590809991462721626532441852662928180617541019336002026224019169756943936294012936793411942058192928590647807630350602759427065046536905849903448926068498392902453332842341111534994890418596198508705902802153104930429886925287950509967217887981405866790675191842260457741377825265437481402573454537511772465353781617855208573814366738300626346432878385101142416093994023100104227971229353479973156266568085425903758451165892893958506070280544946744976473074298260844740182446759565227476877819433851347820274981637972152732268441433206182272020458275960162516922721046732364315857945818870051593458034186037476169932693692616934314867554863260464224006577908928337615801691986445947490332832737927892486731834510951913341147118020993810474660504609892856508746934800495341781535150235727850055460637095078228187319651704744574429681976344818906776894017314631266087460190863783910607518130033475995553061806797908672472279670407555002229428485660341901678709230354283202184424880130028812965362175001416263013729338844636641180562592398564297070757842543992732890207852630064236864374974998663796780868824192775242289086750575694665778418169059307976839249912839858583844591305086024924778834196166944955652675839688790926456900606639260294194550110952446538416692633133513036411180618988467344370704009824410651126953503366716443471002539068228869280265264081007584460365115213084260768331487611266110587189451121434922330254578273773472152061375456386169764171058274735921583223897794960200956683434637518545936478638882345441088008506882729822932507083222879090802693699508919409314462023535240691623727648900825076503198997160277594228918044099856531358429254426784478778735165123431400281091768815057845661680706361280092150035552782213118118548759831933565688409049059781274525699457234046294373918224874315266407286359451625988398867622425545129831975112056985520830448922878553751141417088834368366735125369278490396402508629687322518040420716044324816053806230967042034943228257820253742149723680873313643782869099739883587415307942648843028866082028870494039032701300440687796846812584007480460144722432894169177421739153995372966255153326264781666388484026520899591667221458075405812649669199877165920063622436565238893779193254157814827275066381581687407115290535498599790757966354204066595922049151610993351103754461677219143944575306313264629283076325505224395841621829032852012496613613531990066000254898559336414198562007912428902534654467083985430331108042036545444359388083888274198937580359739527604533764930973524854035064115407442877523042567676386163305049661782828530412077126837250952799364177783411411769822960761243568733931521033094079735013817562830522230775879817312577904749544803640789267085914901711839324811265091877607140540189487078347190216040637069707437386740130140999513733783284111354707601836613392676110321977320723445668050816427608233010700489564560823248573888641862504280215063022775289870513260570374135170035900195837924972178496730567187155415518033728394390314655082572706455808879258856248113529792896306183920394151243249212052627205962498919123741387966737178208734523752981413694850649712091809542687872585435024807671398173524079663239059621105498022278639607281385513091855258651799769628592792584565754478076676819740896145713450939393390913836324310042795358135671452719161182345663396805650434893648506591690309655394529367786019608560017038445141437889114142714971226933218200043389732793869918390906507849998860126931020062350985245320950258628127845849342087887649030721745225890993508952175626104043984468712756107043929448707045583397640850687808183378455258576623783259785198507187983118343806080934699678400907978463931325975676184874445879942800877714306095921922534726529824957625994062517953755262642984959113730144468426684482866614859632450281560580246909352708815817228178551860233904663465889512843018891381990860165375010558237412257156305787838612415167831206314036670679733517271077869763487552805629486403003652588481551759269402748619068856861196503280430887401659395891992095035642454923676096735270782323019330752176585512219753589898108439374015105849389595059225995583997859116303518504314715301946186018294189753689190595281573326500657995713194236598842313033249185575074238856495490780442426185783207986065021239794630827561451209372352116990409628230195033415534071358355066713684544776672269871765532942904724485690017876853264778699032780674122906097189093770543139232259879258497381374083481748993282891953356366016884666386841741420300375096814753051712328059116772449024404297922289579795307112677340216113801979021237455496318984561379869455584717330039492692990206605990577760837982707168514963320180109885680589933579906573521017814675609588731946065434461639877571257419394098240468235081048408463650888486617637909375803922929712210129605260309747384515385116343864446764747995028986867060389313479478202608256788967960309439477167785787803444329418972227895773186769385838864868327474768964588548985055192861898074974892373628911379175731864178914758287021900230943110084148037931944670729401426043170977092245577358960576253727707311273278402195376545499228336333748696045109538059351367991101029020114613499938181863660449231130219080624796098797108400490626651334799893737455717187056218975719860639613415297057740486098571489645384428949731561189638925623366883040316270612951298881559301371286581954743133808932744861128547975163946185051640442304289426186340645083103505482040311864694832937908618038888494267195653593117269897593265925704670296564792644238585504978681632970312691375517885366822509014713120626288084948955801956802423734740713185509422128626023526714402664407240145176288412486513318100600233205758693204326599416168819789876145428813400732400784171870790356609888563810401164223053430230211355212534626427743016785272144698166108971751105006511499044827348434523880005103568055049711447223134016049726530672674394406175165130565253462316515416581229984300352234126868847831650775380245654091819168640988935937911581261979633869425209323269359562393580428752102420884359706103912572100329579281741353304125458043677416549209396214216700494316511784260083241462273238711632463453419797501058059735662680611123146897427867525985890051878100348797536885480911797814799754092543866707433068678393390461146998606546779022865050547495750176241615327002575080579427158367758311044982555977426175569306757045131243102984554761600406011257981893226300163624041736263468304858903404130118204327625973716810797164152147453494959291938762392662166129069730014632940218581784716516423268418978189541610765278795571717219885548075754185077901600570172249050023653799199094979329181479328963441587637819097311813865211338315507675547206643155530622810660979023508399383458192264471009540750619049822581226856914588900520305033468158408568041458585173541862033821366976417101126699116151939853426972961619722537321293796096142636559498600299487657289314516198909344794591821509313875644744749327406371162676555441335708152001616033722336424499986436870345278068070976281802339725695793031157669639721110461554974565030462646744529298334881336421195049879654007233049669303546608837314451215717315290601448664573116658998427884253758114126526839498456138086087453115458985450532328232960390107545267133679620344465917555297080161150830038796728681875153418490028748066878653838312877186235753761567712143866519163170785669842847508874447381914845200515030291730971289065882347233270296362340050097872313071273543981460257457188331013109038931499294344026136595433267837341388863597369439052890469521950864801619255558777264840842703113000791286295337880529476299365164146506146589419204604061190195461586463850518998045311575849961477526034738155481926041930870887960731069311628011378854401015274718082545365495849108222363028236937239650333147989427309730881052354675991788254962326041599142665399947973684769928508066382568957840385515429601195107466178305471502366688569522268666515620017502213952981350767661620976683334677823786012798377612761243987006787085867145287820746268983198614963671600906063634203611108857737477066086087331882577377119917686975497750947840890787007383279198816009829750383463240670366439074084437752076322174262571208003309242934784171612173469188008300705364295393781802270870691043584400479298068191250324236444889725729798593353211409178048436909154677719448121174877798422273227533735579263565710479324699420598552915479403068595284084684618349883877061548374218826347138254893096465284205773157037408738114388007612150937863096863462665389837171851134966848169171413024825988640934421427867777291276849550188507506749156202663059653914552392939125592496567526711778058455208655154147727803545061480170645146676183493433420066344263591186940324874657908034428286403212746664069483496859303910493099083762984353724252070896214674444191083236175855456950840938479486386080544921117501118368634951225795118855773574558554167867516549206055500889961331644177775742483044452121816004897363870338866623167654392550507408092024590944378757013319743814165278112355667111019726873896378827653714971027514393906403616074608592658076467849749473376337913158045290198888064351365628607359117827883620879765241391557322792066203579634840472752391080546773821509487992844169693667285067239233818409674696469969198779693225382562977379616423338282128696427471251814525374094138469953333222697483063753576666772456830000978822163874021935467458512424549725773744228947870888153213346608674604178738629861273594416356825124965372115342367016371149451578009879943878918800698998605807738703212909997091840249846736618338791925300483736629591539578080632431098265831968002444316142980132857327747644739195206982619483569920712665878054491990101668464000661073485119248042390730041160191857738148205962689485851001322409219992102807901338170397725759163723905496196704762138361455583768422990912731571528997956235579534217240965447624175996491699485378708899325399283453310556930069315078283863928200486343183071947920826293901859194845062308925518728229364118672666042482891938755271025667962573288056883201964464827292889805074712194615268952561658029354760698034009405492256066991311764029007006160277904802301331992988973314005930856514206413367117659214156821167369865254815249030741766690246836790305902428690531238420840717748199963709825910029552189654672372812365264513045240008315731774821404779285304303193566477983233014548311997021109178609419591007651993331981097869210492290455506488648039793499683066606286077314830182242471140853878949510609085995869951802965419910965825835972028792889742002340487003843606656360624283362227306952103168543891339935165213234744530400111003190469902922332628590605165980897906208663657960690940289876686675228836426123793226015728443061904980928888052687564578938739682947788525692184486587709206156462343650324346548606388572127894307796443849012781782108900482317011585862760622357784780289122555542296649853744530972105049929773999652938802286561615196909644827681387269440116087381215834747216723082561903532498450301996516365855112285084421458662679773799957468715405141454099761017933180163632349828870518391029816151760825757987502594833932992812202290812218153006716438607759637245621406542732804217060526278120102389375414207261446835980000620940897695726815702588592201727482042375171259231045796557687178183367857656211852961725433261683228725889015329360330444000608316062008995606426492517764859814514409576776415767717448179714603006717112133037506145199657648498859404440285713804328997346187280864328909200776695859187151781759182173724581007454725305493208677787251437680020314852086590477294275387167843048583910592225312490199752785921280283823888536439406397990881348159029798976416204570011411680653155847198180360583681497114803417299178951516652781274475884152814852960446863729984194457077775848344423880338378914017219116467591885025055714396636719503012907615564105049661341135920928987621452661516248089897751404001662618728351203079344600214901957720679604414341093328334858215870670283512699987203362153029489591892814283672382530523208835379292928144606600554258185110003711015310634232492666379286721215194837160489395451840913115697925709870599245045043799880101622289101828310468122472003659853895897081240418853559393178242864577169510058521529844233891625500412740522927802416040378649829270639671120308179149367282834293045691476549395166432640632969199622666734231954968894139360487759743195401427697101842022821725395267801743332261277315259383607153939513762829804936547731801622367796978976258086479451380673422098277397001783880986663071265070272871347162845765641675062835858370073344958801012046740340321666998945952264766872311671278120049499463447275625505044219453230825376793668731220592765197242043955421982581676565040755009506103086584140476895040578814881657775644960559426462703147806308791282830137385880871178997560968594920965434204188202531746626353291059231237945659457784465486275683957460539246901638321830430530380974505987824214760536129475504178495540699432168421859366427874213066287306953270193553147471651437958686187965014893247800736012090639807917583686542173018728494610532085447127483040904953875627873653263576049396337507424117202420092809529465356090067059794944356633041636020840370642102330219980046234634278052170552079086232948653869041148761876074960076603178059581846066201910578751958642627074311891956854059350691687821075364401890644946817493981473007370995540405508762959378395397399855906340297544197063574045942337787030653263790939291101441876528138931589577551256253299796564010316716515157011383139933897515458370846680553193827036964964552266226255467931651762679078625488022131395093946845089858714974252616462511088675848127140030384780382015476895935693852411647258812111623926963112686669739241083903080188204892862440315405553476434900740904706996090263686364560683899619234104894329340128845706873559656161481928973954322628114758786410426295590313611304470802693399809457940871031005786434200592410308676733615193073279695083287028926062527355506671616774278257273756817360154905061475719215209710032014730993273780116143709056650173994589195001693663518459679599815423083430438373367314987841559867320948951358539666180937612632266272037903611461190701154273030993943953368174505926396015253651225206524490289549401597778894716983480215139212038200863162067831562309193407340659959413723903258569653754429974193772610426849657494182628460539623612074300887302257788098590070918711395689440259299167454732947949545305625301649747444135827519683217668850750509593733323236910484240036654114713991567375996083381442163237215696648086498499113750055642859736516632283689572155690700834119658508926354429209869998142001747376549327771372569858507297104426948955902857712364132608831103074243149766596221130238700424366403836694034746278027134042889838263243870711436568516350756663268513977978285196773083536674873668328354541242653322292173643541915046563332831240958392201236676778064956924355233230665827921634049271184514618444008149495032518272124418100119041175493001981876760287801183844505972885698540990780167803289567794975698031046394011130123105836987836758567058134630546203406208100199430500571160693604675634974024702726302754373626000069784705462284325461890484124938114818691187424426418676868383387401848331181071750855709121797428345345863443590669154181834250414478857425260666046776614811203106959364365880225100579933179071022293535455525537260569746208225176010078965176400026252713462325974105623050191603228226634518229236231645957108434798025221606544306365191377137618179833117137867727670530398346230209871009697394747268241784751729488074310697484353827966104794195703367112489544177944685216584814200055540812165601443606843803353656307430023307176975699137671154066161865970576012035074469761071871328366931091586845822601786992203821114421095080469944943355269424910590350113386396427948818574440906719739962605538248741762924771417255691207529388724986015793261616887216696275700026582997705129081060305318083888360598950923425853407599544891449654596282323459922658594105679237413432938414252779397052271754799756476946678112899902994224888006545633137217453068571914513055209770677135424495720931823209225483544332252893146925612257990151792801546841964927241625468899962401418834810550473058791286488933735600282558691505854149471391029840981775167581113091299963621531636531919453645676953036090432980543334809890052484647513592020356142515059340444373025572018319736852227181048706442470831891981173533728073675411927291164438681807933458870782085405467098718792514612700887445351340007618165708032547410663144504906715978352978006266942309325077733825251102815392815326871799404259131569658466388962252358674161922618692936184469606651324914474648633210129497466733401232290005607860462398449744155609627442971368626233309674502806577046487135477242457945268192968827316001830138560298580304451050761601053111689424759001035435497022741596580136115377324607292541520948833904837977545338371465005270070893029151716954080530711502449947604048368132161172345434831266380866286139115621536574084920367553917032243287265745798771886605219624772503974133347845578728405897765886245971044587958724453100795559608426800084291905831947287718028391950567946977450684421000777508485112624403204691410717754002915687373045912329815959977220184831968662142160431212427085431361640993015895765906258741757900494634683862905769841896340160789215305494621441340701675596662293651930905757336634890733062493037090230575977531310198310783303837320069211418584058056632395449999161359949304268970431530279637407037342729077914242577303944617493793833786325631854647498535337167257124497752075758347832225976906920307684296513051702252692748762880728199963557294020926353249274002975241632895761581076719159324110485557856455901880581906126409978302635502858717491340574293100258725844160847734135757019202257732864662778713105957918516302452776086642645887721283175583178726940474016306728968217350295208805342107548937825492625765829223340078391999139657508278125588378811547960398378078823514894152358422637190392631874561103416854198834852623747990372295682720543339651753795595425598663063056438028420623474083883636555578604542235421875640668331346597967320392736035662476487946826717627143689497343354658514778807134655857655889195267888525347346476772976540730462507784671447541254693735984645143266805731559586156801050802743289544814701409278216061305990573835849790845415233064335750692688290741492847016334955386013509722695990160787950983279136770750778362894926335122974031569644057018957822524109661544124531034552484377689823827756977006744305442808656313613837291818981264634545037568641567230161900566203884195300000877768875877798369719516686048269109368043065187080129803855127526536950945509537043798314235367494616914539035379076181328604534733847462739643656205164961052956568797453629696563021388254069581558970156880127760863050942142330604635650477386542294045690365161455775313968784258851142176642789601999903021702994203590648143605798444182939501846382349655222033263418574744319154206920993244135372818059749560168055459088854478367267848986363255719516993479410351726157642483113840719975255576407232271078006693070500113596088648691309704108287013976593178768603396251898875842159770402815079932470612983253382769414127169873559072553867626303116152298669553478426410032330461595302143892485453148257419249626602604071584208928284993383141084719488113659100726482482819437017821823310438341411044529926418831597322521898416636360691507985861284822238378167606068861178353972740595709034189127415929389724478326464200259116892480752191247740755363751327603912822297807368979958463076350855394405599233477398050086845675272873312609743778660544224449112163670658073965200352646053948569291450477389929139576148965760276981677709985193444351157196761390595026250172928146981290054745655469616590869503848790984207312817516278473360113263670772400250402902878247424299688425087218367435923748088642992331076724184132136763559258441034329428788066682280749567276871309062235345763829077414103336198659892463492963135420278288980327199906441886412912197308798689696167561091640751581445816893316902389880689866708685516763746083473141448011929065198893869881667693622229674381524856729260799361020830449931523688160824135318001963247327964521701251350538785227101957605025392878965480209532678443198313691743497242555326916315193901693847436985919016413190316600564801610551210872331992125039428826334990769543857864023763637692277353155128404291613778931664531301644050863677618696434514109088986825613265235154999638682339613393106439090807696001255319749781454827526503025734097779382425078199683634210287532964043216757844459818657401298534312872337866030380257789858270466974453962840554962081334952397575851044999771681822161228108392666016427139297075777987537172741942804872600181924692037857925914470787730011793951173722962822711671558132798478737234654875298516074290540882299627124688863139013597437659342436408750994341440855160070367659278343920997423948499266022845333842056136423560090118505865003773281297092331183574357811027878278215658805100678537812771153013077408396551813262271223890987173321008650098354541057514738937596458191699750171972518791495135474903817635768175170794424829681949523969190023180019436627527397527348406620417120670567728127061992920139471068564726011924672429093479681864704386149625001065044156907430704112633618097812038824202804913876093170906262708395654200819208370254927257471434185873678628518265025439646517356362231569777105321423924582646924664771648014592305199696989416904400197915095937507516606146299554074641829517142801947510942342121778493512146047634601734129516181631198224300649259842923354173200070389787379659344071782314325626658494900085032400389451920516054664217375877407901267790850108823822124477964668221128139855865736002934704369638823206633837914498048919980112964707392756264019318160192329682060528989451735495983907680613289269039446048735718628457470236334891398613478002006828757433826399503594198466469574498449929136569741454541764675974152462871275880369697131816293900144397137105438145513969323574507787527993852289081638821862581322729716543928681871462848674770203524717953269309685187141429353749076477978253749848429918566893997790207899208474581056431613220770938700642128554106818348680469727530761887777215545100474814470011199765908306681319447377689396020083180434696009131242862695032786353857897446534456737096655299507182490847458839665994723090411882358146880781295484511467615542949591668182244892778101448177946210353103272855435739140739098359083085840241930028587537247548353593380388868248401776501677874373698602880950725799011157997006299234187269989252034382327638283329386957318217024679044135935236905725006548931298590195569132295205213193565987206145274549991396794570115841653015330812329073602182536912832400209174074415010221271806652627793302136264298298434127851257444286845629915641999446205768670426676995422150981317880819235473990763487414223583740349402939012156195178926218089139872643119302008770418636353072174880054090811016470926088509757925929202326043642304135132641078246067382970352735509038664574483920427421622731983166026106307719838001256852279262852630165919082557879222715939751309116418501602146013556820675432755702407913010065646426401289963744452550421436407756675571321215874988403859556285982112119206567800263212318813688017607384637440867006780840214454054946740966559242808869456069668829883721873089212048895279490130485887529606700996769973173136134337663148359067616528457533101408844995161233071854220479392338592574836969773579615033539224986800477410853373497776469871177416889539556085676279991202941315078259665765565474561182901930889335060418841790488031067433564539815270546400460380522842442630674473552218016026367352969306344780265254333162957259349997183194785701039527433027833860327866547338497777286705866374310143808883917900565900604562362647193131642326887812817523162886168321941751725126282057976760215755572904726134290147338923344493499891516736719087828645288197480622216074145463503721311517948451186815268480476343989003272668256170450487291215522148104579088477234448248665030818258886489114001472836986958505815215992265961924199294705964456829027663430230204945760311476545841453615899790672299168290752249076515865884450039832079714773026925913851597273436824537999564669172935831156735352256522431840034301102036971353257629378258131292036038571518312051939697466113399235942810732795522031130000779974384031079801112205882439784267928441310989798705884506394739573750873911301785194085386215164466543654942091376160782942266863875925688644316576540572885315805879390043650617443720298240727038508914990629751601136769350372883865267529922685395190651209495252725634429478136141002695660461545946130458724647848976338365367833601768448784701867842467080359998371220436484892424572018003628105424751061406508911567876544962072593263146691901273492492166946635901671186731855094746146047124687151881603862428232438356008191999664145446306559329028367472100259004630268019485846066772921905120279212149711240046746073914412746637581380929546473091122377990697717994980358511263931417887015882108627045907091422342051000553681491838105861300347214718668690183746602884124347690540169642363025394787332308373662002358154221553598841506824840318099495112446761130866309329731130238573128597404213662009101989722171788884784176728181588208814336171115755513660114007102091039155380623334708056089188004045947991588983993639411347437184038959229484863804962051875869624560982186907360382661748739350630543708135621651411495250935116294109381418133527243973731867647240921104652660474314564064823271695119152972353519223814403692799036324728070830302829222905295158325200995370845134232067671142895160277194600092671867062093476397528409055084713261731416204396663945882004049765383896370037467486237103955173134016278891140228083461844710523671309548353118073550823864555748403890102049167761283500946790689541540949730220837230490270214329644192535694101135364166072114177827500361193122408271823901901093141548420925979179373090619630112278512897643008446769821945645299844403614027390773690544653171996941736150361859222448858131021383216526239231335713167575208936923967751485497363289931117948693248929270993969269474715261448975750530764546188357883539206669302468623779369616043221543403870589498910232199841280927895968529568193467489229907212170873592174091428035132491973193078761450252316998819095146396595662967095672757921027984758729861596225619548565385454463261768691114279931139417569264967669660416961110420016056955752973778233894292555101861301929629959709776022842042113627479292986104227876046001897273034740234735254970435097815394521778056612901733793659858951740667395504684550077160153785855863818489589991774388524476634193670892224135712329944835467300008158136387559679359163109029732166966157728169224349250780922332255773165553702649347707140038648837653521570084552170149442699119206092855734392327376004528309382937519267252646364403418814522884736851167441889143505189558439619673085236276952872502224208057570652308643084406251166345588295034802907568076207270200625666071643327372432476947650148193823548620829822547705719997017141653334158058265098800855571472093672720024106603209210392396216433863819171745027288255793471869305003003822961968475038270944693399182774700746270285051975977915662788402803898308275834021341175824281639206469440294082640026669029033623270914789793385869830073996613162701136827716286227973465120247694485547025508545043213918106099088200396171883481253589018222764861647757261836206613525830327488339943529125061295133420206378180042956010912020128004955966225965728435830731748899904337622641144115706426234313298706300112300227309644617587737539218821928436460668184174418648441501857854405376425836940396692658559843109763166973268046383492527594602365653847558956272954407540816781066689213966621043597394318430081260794109935451491457062952171975366111949303771922936346002601185825978060430539516850506116598640703363032224797959094919933415093555936629014599891604498423791799541804807225495167647556047791320613182427476254002587473661380286718282311252448375555678389660656498730489760626310652012586570504417189857997789563412948569549729529366325347886201271174172395177677794890667217369754214841758916801258147538070182865494466776457449149781837795047829269777204021525672540426565361402527184376731083025501150517142662246879461775896361920176312278951198060500776228283117637517971245449625985239935640553470754958391650603648768862970238212384737550281384281268958654505907845837929424238611728665097406738498276693459795061901059024945033736324332478446764479724998558523989721684429139944853681905632908063934562256683261471475363175284139427795568246771526069427716800118122154018167984506881081608042784764836576176924964346300290787673862533965423446598922814328614766495360363321027289244149133925286374955285706614180748275295133673751938447454269304751023160605898557071452324273949820663161844592425456979173199129598031421825643263905700379424110959518662865263801901332467559882520316777846162048745669035952645940841683664809863032829981773486046907297584830805558615446442939703124723225853934074909757682889586701927593272415633233264841995517783686847527476556929347471488426479448282800202561421288739736625674126356125736172971743965364513283879368245329656421249670694051446845335079174510859505789436141111324548988207378130836818113499626183640674950009703388519251497166039218743256025904048680373369607549018366926466737966364466836370350405383803366669156777933890919893416877152799115899576334598337463809175796665540873253010483014238479710818845571483966984960218027467044054608456267660397043615430358981194513005271372346886742087671891258025025323996049989973454388622744140142050453767118692210232807585069033204714138139302242212330166811569828380613483106395113573357029508313507295182057344497698833744061552109988278534593581846725488962606897071650870267350693697546778396618942313852040575134636857167822047452301120688265702432844306372328631484402790877701589151318851787067970583344884885929864846068929783483964780673272733631133475313584423864264791420528131926042845269048722813244591789977451896416113217436258836696007145580173351116299808395494138150668488919167165538077266891835877064462352434525098398948756251168913059454700478509610331512111712240265238668823786973385671682288475357113568211071287009288959115670855609254231033240405154943261647924449235191916939976186564229811365885565693815761796466156290009787918538162602115074019267329387161909540659657143038014075235481385370329482731443342870198506748657106756396754953392822153590750209764254998435435898164218497613782694094678137286956266101763965850603844824070849469460835591710423013994027834544127565560308654103170170913002166143301277703719481806840116844553608114787826863473349141126853150373789270573496711720852475389877346357430666737603354879807727376334603917719309529679277851889547967327701730380307960670290899874697788161230977890922429021790477106136987988234843546117753268495635815808010078653667771589914933220985510266781588757821259015229344166592225658463900582268139529292824111979192721950150372471245583691481781912995366581873364624993537257887585355893559449778919264475413980753154426996441545559562097761860664983778096800969196641356948059265532446338795683117647933400407502327904272992247964448532184605302008593183645508264714312940409271188555198673728254309741410265328253718318284861945233422542506177118505651595794627979419999856451877570928309166272795094985098724277175558425213511103621400239076655331149456644933129340170538849968967468858966734159779380550508514406943340856071987231977594235841366108079107971954190078493656737541440057559473906984075892305583097930979110635910272265510441465903774763952439507050770845086111256747843237776004094766539843470895130560014684057527692518137600743698583869425403741543363821944892831226530880688954332212255409103833818255099515058280450019151142304192583353944073243346072867776392158030061426821423646252397198744340666610501601131913929286841843236934706396926423243863281566683570556927951813806188096635410084000384724462067088567345667072794259659211008715779944451630891151230075013163216040187962100459683377644936099717420934643933893126150006354469827237508911792794877890151126466027847354373199012563534892916261957272800256211218549007104932369677090050512348508050197521142552590972453952777460246283421166344231146565943942167407551865657061600337016285552368403948646208392958099842393192384568770490599646572039408355552520685558096174003980217376373192128971567746562834795892056325019217928797774044981195616371768144996623319673988357315015625915597697728088034029525197985470696619050117407271881224269802241747962972673000668504774453695135407237004461605835772869114468878047030336940151382017593668989129822323008894937379652209375816356018242995527364990864811101672700918833339173203166107837338354068802322895641299901342828952829659046132201447681025138074167055623429375118736930603100542445573733730085951378373100170097062023010660125749570773631568045546346561856701292583779391426237655718696064940431576620693619007939890284950943509284692387326083987452460878687604850341147904707619762295637030477100938410692923745018234992286048845148914140497831725008344042840959966430538928982028373976361699781648181487017652961415528352709554000088852556453945686177051984154308139589880957121529532935143271172062369576021404734097130803072880471851762057830511594213714802944160980324346013304747959826647543636061445673488124274575427170496520566018380793358279056938076200119113111703279475661553849286347220284431983302457967307855461415712663242182657973824088057608761677861672632620413242970397344458435250343643369398508623229694617675875887670105937328335600161005285463332775509031319699806575976747387793141378801889606460459173387446877894987882107253009233738869820770011157355279997416283804096600404985983068772169661960641231712055875851254335964591054851707150696444096599584522533745239241469483467742850163583318645212604395165464991014807824371993169210197506763422629618098047494224675403429873140388998150417607103461410242116773648200437378896678098269105054422290615989842011548268902320315431869265557329068038146658014923073148702452794461191750425434208825315359472716579884017850950720411251101837772802410413820178387544318724138929232221923924338632718857782412739491205533770338236944990945740967960841903326131174096338553246267448247449443549107849554201177523148264291595671576298998320398222867788723969215204419015939088789909488776360293429411784332613485072049393876973314614193417885017543828718509081613361201439822957988203088098702845195350947644595106178049409890797574782142967399088981157521722551670155080662286435457022198071587945676353498845374624526242493970146199830959920691650976727784853944498876535807005880286202239857770059700091147503523051288108152165051392760093668953019454829321878827748080568904239132039896713604080118931918441525826284255854525867740789261154208223298550375733409219627757654282509630919271371667166943805441668021665844065644758910838805303861397042821217400162133097997244218591867529314531463884568239645411485911728812455922784198656601712873648547367573177086140210055146884587364573146463404665336863130783979368492961259601053872998400581271302133015022504089179695228390461087759407550704141796457763747554409229063009446673535203897336240845553779083913782611415212727051934972123097072925104430379589470960886045383599536499100601940020440475557983246459406724182108533953829373306046815564888294447459666416030725968871827421411753307814169335571483223324586397394459870587420011633746084881096271051531570400163018750264083977509084673695330258439674651443219070869406054106337474762370945108219358623476675870323271493510753472152399910518720036905914494150865484306801644008686105605251578603862550721202468833092949618052561089559544090973561246401183822884739930828227763056117265137621845598296139320243515479222124380020220694499246574377058504923061721395869769910021643305277361631553113109590539528026775837012546690288188512971016934786044197027757687327037966190163550160938554147423506499371359055759942722357854144184447940353933403006261716101752698606881702834983435371601401233087129132636406902008051816019150387710215129757744922959060133406830809641192144471357095858857110650983337991489067137046733389289991150975162375508155800044355620268964858793654915352286897622372179339422981830885444669294833683850632566424696123567781948532564654425290653980643108558593383265044880896775999577871858031404451591047562725533521575079791039722142560079131821203158642356396349197888572638928048873990385821053144093300553064967098434415436248210681702995824066097024091054830140852414551086283123965479446043838985970938893745058532101803224469179905184651890896945255510806569463876159765873436347694868227896052760047311437065613854781008830474432199408053418254273203647489140848931603136005332798610346129899676535426299963879321239554669915684094866007813137925748131169489710523467759308649390686478743825700181783334403095720013972384889923893797613903305091467448131337028620812990099282258880908833569724150940335506509790062280356368976320234530729869816777302571497028057736071157524727086624343537154685983040859329187216055896293004545505818597074769112565675674436781881116679045756325170900122487783749687776287413457751308015052070245376031359038417537880175108112253698678125733873714370603762579829256762071844592086941368509169216746276702550404478039544033057985718637975943735354916602267630299467431595076514623325301697709128974514295257725174636762093625490896934495856753433404016599120094855424066558730440462357691509399446938068200531161662978944181480487606608073814741436369216765952566642355991577160184126489546548024988187056666869467101103696102276153853889992576323783911620612566127617206529556079151669989563808242988380309264163976898638602561734692386946734553708214922461138064380609444683108960995974583257880389117646951140638845927270531056759281383314508348251951446531160680151112344211251764082637275389502532072235615887526017333917928643181611292181678595760368842994572576125627823542521226489193870391498405600635264923731440207392659634689305973270117161269192314048119641118657124603735284297181953656846003357887220251303564028360546452031432658269237898701705243312683653716891413209194546831504370177836129560030854055768305228328714715244646995971289225705769476192665710321137967956776748563290799176928588447822715190328199222236541626095566726270738654662533705405445616095017523517300203049786338992129184148406675336548235290439197836586837306403289547050207289543665173857320716112814350231287277748355537255065782428417769147681436004988142849964947241732640404395484692233919668856250871200796650251321990689905323862738187290144245617631587697605354092274677401232379274093361359977373873040703660575865700780341960415406872157358416729842168235463090563529802041858471103526971056027923355821252960502212167199970694266804437251268812340543053116950993865916784072920468379418302940566236805803332287506263190138508112750120828425223599476599348874302250558915459630855542917477594805163570963422751593468328697446522527300264907051510473814716082709683251858417917557212212138861752702506302236452456638610724033128155673258914351689808469771089512642130217573616293968780035092385261151190256485626611241242515784370187186405997655950574260944564528798958637267281628539043810051843768179385214138085921333743679516686766137977979882207508676258366266269519700826049730036751046239730947863686198951539834926242584596431896469799895431242519504235455033993357984957446516000194038940178849784878515862438359674203431319934160219975411528082651922699896881666884823311914724316504866011249025709632776457119844662547925679137113958173366975970773984586595725648065345116880253848672746273489816533968356382876256493381081080482069706613592601472971826265358528736261576872297159991605724227675920559476878687975748854223632559074027853753645704567953216924086019118586378116839044682343730096050856322715233921684664753228695972166753724924593302167562957773021751061207688018128596273270914489218407162733483719003482766049121303168648007754764598589690474849903691239784639867088363645104912495461359181943061928638469390594194379697620080121745222259770695355595545037095418703085080270182962322492594059382196509054892407069810351229141207239858736322809937624466993668736257295771416125295661752752687585367848170453884509151345041212485937776151450989763280220857676268402276117189622210714273577897362159211550862913666344231875797033318452997628258529508704520985365607348080665467124619511855303495674275360947143133370017476656176022277296546427084933210414930328936982985745817218330450173303651711968622919477261511099479286669360392826628327361356741517609728241704697924535751686376495273176873915979654037510191311412201992657049232045514744055128819274481451420756015481416472372470047913207655224763143591890251326627524421904255736040048770596531301969407289375979314449447989019364362412790372210623337335701034352631144797374486841349307784843419547182346486803506938386436657944074263451058225934226251743016143785693238780406444029075641673308904513565978946715622214602489377966375818891755663125256828919158297926984045559514215365562980855768608375813116062788222251065954257638293945162606161404919347512908163382638630026457011115022821797790295453027461404725649962794670462919446735292130403062752004004913859893335115479161414270479714497913806828749281900939743116841889863306266375649257769266475550817321534403002500391780291323403381058323933202109838231668357718188461851634781204013853430081128257492551923250405029301369164437300051404428782555456359454482049138148571239859148267263062266836943255498615156004495990855757470256451891360581817749267280165743322509678924819418464141363500125037093888969628046715191638650955094560645251816605981977066895389803674643679726508768359568369268756274017834814293082831067644849410121559480573540890204720573048754558312757708150431178583624327688125642831318236175343075613267283604742610322513247511546856499136448410249508210895916125010762376234179719566638657519472220950813328179920934567309635219606514345730135647398337947777590259678325353855206202002923242376582098709227284008699266979578083771776421469748396447250016633989214486275471379980703354440901354732190156878506186858242023403463319578071815341955114413692272357134685305332147665827700703684488275697972844935118240612073870012514953528003019613918406813269026675472790091985991572240505815191253145466638416873924425272156614965104766968913433809722231193985433419522508344069716455265599295054017317412504037001688213982814792941584135578758179063019185971821406789505860190275480397129125341835397506829980908263793225384732706198593697057862018588288172597626974064445776315666084275808909260016751061846668629358838917941794581498267872339549801441621302588123054159073584975313863672137250347244294159627778968339407926762118690017139938357126377790431500151003483263887997084686102546359861302138438396190998747058528689271127786485727468712034066883080316600553180972904962079010503805068750012841924722837042210134397411266625311075327343220618991540779696250889237650327865395594352334241028440948919092827802694918869524562221170148726020169343611997284226966001813594663055294910973640066296332531836004427574706074879758593418792737501411970499456970766393332235468494354176763500560950593097064778799861949674372419549712419393366659267203670737642582034038654283677642469685114636109955494450583092287782277747423944166612017304847727651395012533113838407329879823172423405677786670908306570882716829653012263957628120913940258861054517659497553942300446960156456645338874391042598754390373389100957618897194394627823604088034807618733461381249818400353938841022426134399703285260661133969351903921978767664603797073091188004805059138506154124019669402797928090470472778125639697217606194364447651008032605066639270046689126517924581396363944920824635257823400788546630794887812204907154994540083351526872209253503832843232502342771237745953226831344736823151616912085609569592655408301130732342010885521120945789434343270767318159899611473974410424874294939374550725678448031537443452811463155585540106250881555160752142550304969956443831547531024367429087726364304520582067958684381304388272530722890289532169442915044151915361367130895695580794025407937849830200558975487649884595149256998293191512476274200409982822291341426667872511148119670541289050042170714249567076092436909390339374047172370242487180790915874813115874432950464232766775508377775421237245957656046717757203089374198211273064086840409742376517846084256983827266129417721807542646639108512063822644856700227904327071013323155369536128858507615753384724205466478031905872076758751180982716793933812771291364449567107512222941234951787755730579359847645732852080070085418847561012448088571127251350570001581548282000413899030924816383598596613418362676569523529965220554301188579383865909524268731907589012509940516799767707666878640830943097044171660202108029306407985983393558996628318934115514475044970573106762903867030137003019823273833420087816306285803932705259584264465071837031873361734020161480118005719108997811185398548348002821352424223311444752498781713884304848331621674867253095894217782594737586048310043950552709060030014314594584723758021322984539122137334525059390580832275962223501090362570137894123621105918494247169867422457258319656926538112055316901245957338789806284842441639969286583322681438748681233923501670293442685425263101003774652164981924310124833674232304718870445140411104839832263565847916878219048864463690966268075175173379554098733685462686426766905302990866707370597003344184306730211070915445008376575416603490236012395817105181533597580819314884819105360433101780180518167750631371262502276133015763941195167219365644668600887199104484843828942303946808389492123744971955471118807396369547718190609797419457296313535619156627910296953921796778671461420820332542571827614753503242051410090063633529478178180659473488381272073321943872507239861079389515649977491655102922488117574070409885992607845117541239675394034418664523051782069483120962533961894313718890159771558070148711566220814607359617613088271586105524693623216210444745640152648627478685680063895084047892860441756291097213193709748914901736889847089706088510384128194423277230128439762175470980928954306981389774787634771027466813334685967706880665529174548215986534937634724917509861643037793181052699983923926781799565292321725776490585448506651323584893229415031185398864824988997354805312480269080495708780750505070368196002519504886122794520660453167165521417208504490259586794059274305419585019287715148467675372272781303414108609466652593217858755113646259022595020625377126087970120843894339770601370578309780568359089211676994551580976859297248532231597307836369125298827739662992092953867636512480371134651752902640920275819116702364476725880538283287980906626975040655680097907982779107776848831650388757502673752159875332724615036642499413024708998869489614707501849765897581716342793062018543845436631015473478080971045076604343985935391737274103778491530491582230982680280916713933243324851833071586928452282435397470169277391472879972397985959334104522452948427781147477724708287503825096897248769286210409179638169449355316860744756005362182334564190888763741987210438120299356197310779707303831658228762151105112565849504356398136689888487747068056774671600811045100895250732922262598573264479096671193188295379941124467054142954630886042462009902268750496352715228917822861945186354867755978011157013977213468681820378097711927709023650804491294268373733111722407347978964434258984651050644693210324083573892263145915774654934694106512669824303396137571342213941573065965083442415008743376079399274489461829628462762370884611029904167700229674198918271036900655345254391034134144536558483478612453383512358145274706434824042753758975612437446860642267629618676375028700045477913113565052102845781914305945684075823321282855601655936123394175478612617770993929747692467326125751571161528806607907956280651356356448549591955623529457299694110507463136773859535676957306338747019521074242253558895351222538501537006770236257020300815703514187540349941330123179169746760830878626205362814384537172093556936776108295016654437703851061802151101887097205995212436141479942624227073156174032927327031047804831594978109218801831368748005213386427339438188512346410794825553819729337337627290880703301491309472925863281183734390188794618891756836777946949872163186349143899128393029279276146448363845568176668736010498133546839652801344877391295324607831330628723352113155767634617904822336196342046495055556631647148617565404393642238760149758059761937344025650539733323874830398227437585689784760008154382024251703880225306274375177680704991970259648492893693107206231138816219312380677909813708376332200522039176608256706745753335815079326675675234974498486933029032891935208575290459632441971152265588795147001066628728990852782951258200332679060142421417971620536566765738381230927063063910834618721671450493041735600131465652728397823842396165568504255942096971850637106487199506830914561335399402876541948325700429837297312468167491695684749646556985868713935768551684163418213232345392095721940481314408714206280026590295837731607968379549936287809640244673788064102924723664843027361560141059651650449876304813156327031983472988864674307952065290668522868588516369254437652391843475037766935437423165409072164267237790456607858232916846344725642600147732456408663617156998860821377735993757431234013469202935575117591864522961326866683931517535057493790250999475718845213302747689616863024611887461057665687569543586274687525459207250149439023805895455773404798235801989631934490381298861946187483399013498438600715875183581714421370650589899194324054333483935522733629106342357373782883910107997355314042272224967300587362775219991634889694876387690854203727930200610539156088069089512737002308194901998826998383444278703177415796203947717298976080599227408613368392752387383141394010314959645880136979177469787020548659308745313359826693632564050113424591850369891402977853672002426621544600348078489356809173257211359954197882984044880170416106107144143219743912203373074477463155619314790461850620355893978077091510727860589127465574871772664341622716661657393114919743766466956515737836288114730094895297252489268582465932515497766360333406512038925619988930661932244941238973955335385002142337536565089882694677678882509674674382644094783168107717409878534239206858702723389067961822052731956910563145773683871918822854827982254223610222753601461337850720241623269989406760686447616817639209203385249455823759005150458249689998352553819462450308246162038453196320893971225909931173293085564160501353449618940546121683049608883574016165906266994904350084790316531652335727051019835461764408012433478807564853282327409854917188384842092883400041824910355267746906600532587076207560190898411875426579438047199909088094986279332304430129954387846263533272646534169530785830451242584907097181105792151794155190419338826652920399600329445821933981684259417803778455144499862225195131226360598401848501786948474928137625633248095593982486156564248441787740387948344176093999217361193200131823114314523364783021955855454268334160866697147360096109139894865414931839635378274658954026364241098684592640077760929805600899886265390683895872696536722274630568719435768727886917451068354301147367074968820915699619327086054169867241766710267048303314521220632415992666134811783492360679681633681785962664233845718966859828606435916336170486719501460864751813114292659545844419949390305237871463772195843468736050127666901355250410979502219511780578367792262690498692124564684796154034885789142237104880743403376848577869296264017586524435732998907186049061047719709027302587318433734548119991513597867323194906706597090085583214940959340340378204082305373408660588979951334475534962365969517125507310503118763650210911736338498046698204490102461062872648929593130877398238448637401872018973991439457244288371441062377536469686152636245656267940134478479411888925384876338237237481266782183324226017134406741551303057319372813815546967396665836604029596264279728727728652028157342526491942309046670195750653123108327255421328066362841237048686602398599526429678178775824743671913406309732543682967832231460266171630554682074754707977743124631710676411283436356348058092574366109141944215993413627829354893388371931010652185889810007810765802097723257943499313958810762738474350503036817791337561105432620097306731270102567441971122091277016009864088160179851535537971871656400848725651643621074632930988115067779041619660886234013418896154106198261116759911799754353026558640130911292668390200356582755568164581821055448864313950395489259773450037371788836698403340524538735559855437175760654908103788667273464920466140870893616154496555089349572372786675380715892773933800058950235222622266858896928033759872298204044612890885983814259836915063102132671288772137406273675661579729038483472012767079084314375490020894871465796956030138050859264786182683010166251245663014831360708497282230342248118509527140995421245358601950800108622967019444971291284625857916380184568648683148743149490000519221855103801690493824714701625045498779692111871131562065346089062367924861370281435710415297896569044516964249946441168884689387875290047659646830114905158249723516397096469374499596624185083241564904882605032750609738926461791786253548957723076968472339528811651986204375494371004864963611814483363396400051038224040789252916271213333500337470713086125801554443326583584860437162201621622873084462499722791674663002559426202581251233754128886455873620711766570528760826921482586915223297858577225761320263865899833078634685752795038726260498886319096579736521223710959135967639989271684003011841798171197475362245811946977199603002537012950438226755263681131941807301462204880832818045581352696048515924584001814754889094003601921604776942111556370271258387062972112891407157740023967999098793186083246599161081681279058400147118348166162162790868599844779514342524381758489460623181323866437290901160844482331856866457215631082419754892042371149694106998193667960100435697114745849716666621916447636464900630970457899949131366714067172994167101914622415421880502583658397640362799304280448624076762069334306901904926493556642349616181127486956946183477893654252919149453324595163155047923911765592926108622567888029301871838768791193203253174434595234971439348087801986067965091692590610949962094872520006680767345074039880581603361984095627279314595766204028013984561981355762684138139107198908644636650558645257485179464624578490461278098319414118331684898761605676093345321218817317363662134676008882426968952434340018624219138018549322902395524971803416943016949403578850953415732665242022460827611966439384599740538484876085748802282326410237327407499716664928452298264561793746606113909261189142337315453400555804753308736083910780607468374159484219944047980669333513183919827162353249185279588093705537446141606634000304130811107205236390547497855695167783027406270311595777702869494565133042722019248993374611319263965422383696708969149314157449095408646926652500947928378889004302854080766396330260780223899308903041535491523326232858700189323676656106760700794948199263333241001838680422932431348821481684653301055697600629581121627778646994413898016301271672241178244414683205392626454994096525887802085822706452005122965964114168844138670031874471750988932195891499216667346316259886283598976286295008257710122880421368306835826896200415927794992466543164569905994780868594466078620626050108862176162882262067821999170239759671603147660313981831742093005561761238908809813300094150356732613674736990668867801506057376024586527804833701163757579865483723675968594607570288285468538500924245108500763654548601390472993608780308864205635607984247554843715000226235549144413555894867078684279033619661671627598617969583246609063398125886384000042783780152873907032419414845094813753220522164601403243607185241409400950169130778059098476230036647878797994664794079905738501121473105650678150216735320805245616256292076535492971215395295946680637923770408605772453424157954802579589975635788164965577666071814200098371425306566569251686456654501064074985967325553122473780466576261724561184677834563402216692991019747071953501118617448433316193164301302495833630122675686453409948830084755806168934996734849285403920693446428398475339757538936171800779944567291039836728740603715996925870842830716809387013955971351971972739138581905231156826223413776377670522260474365379845468290253342714886040479637201250304181834700663425155887787896645921572043958656531997645841619064063368575805500002731092654289865559450886249762084474683831819750580628726836568864862365237357312809026914766704240690539224570358936189010032752832762262227747431105768297759339744356380112416201715968804449936519976020081025120918095436815399725380310869802058127215086383542867723040819227605248202712886178733377378020416692572083989311898827294091795705126044694020631024454410924983975684979393783589145623004759189178854509774505180690740366142286632176372016987545139663463763438923076888202808391136737574464781711828259372600356979024506476151346413325164275501249272490198710668344416498678220974936293360285274206999107300575748507061313881380999162861941203537092554259097041026703162938484614480418280468513405376730629585802304948164864122004470947319929912252578060515144444380282651460207313135599117672553609239069925955074867500889785160759339691275848299211200528465219081608448328308383912285183676071567322713027429572739799884262307602353080141385541130930672825773440062839481716146766682782550608922589594561456318139479049229128506557759400238004311384848652783437624782440081959688651406762629782864782806979055249710829619740008120668607563731448184957609681301843403805646545404745944969199042542542407658742282436235536597320377167217814818157450454288748896197233778249312718507419409013180513350157969839314060692109782792527300529581061001016393223009748074158580122057068139920034631974156293601180166502150286304998218601417499202431009702636853275714344098051674152202582634413383864301782296337783370777986736965031100158143117697460826793130226261797464650570409557976639405551606828025039407011672420365209880835598654427669750035616873423880477427109312719755502971578622823573858522890290388554825777822121194531631090157053548052578518381828819120236570644136712850933568910474677844547948781154657629791769155592495606482660286921808842738545471078414879511089285821916719044380103237728377995178494326263253600815902664010593219530642274992022333918532581548914668732982586029639891822637397791854298492252712867430015369486907058270207507661377901769416872436510809701194220782511724907789003456397323812848833569845448853289458543065072790036867633712434825835821868751553363706279534752071420567454149600340568149857045886709266268949300848784176008989553456463985939098873888572731448916685410426003435142152470583941997373268071254292752907707502740472315829412188693801679456372477784031382185271969537830704432536747499860980027004711070509011697237593350506625396244604274883261967839687841028762796583969984210513362885550666776060399811077865855270387960854116944346536412186038800033087064419205003786289751612424845734394526126646395806575257744423748387199463003051674376860425987801370576077997773747946440250149344750893182630375969016208514294528453376799407444077620438700058023379640528431632280336075293156538450849020993401124705146369882492562337212453096196883232844634091514505025019526944573542833380155069614862196052955367052040559674713412251057260005875424356636018692668282575332451642043988486445641312566130578804970444606422270904623968871048572456642758667949572022023693991081982337455476912295297828469810984102289019334581247930999715720138688499457258348301881313190063946131832848146700077261337198603242081232013422589901516263438237991462788014999771620229245927916382042590450688127004004802522389322997835670287823006456723004537450230786138986337786572786159116363789868690246041105531502329459504394501887098180172041839529774123572955804495030212219060869286581545423600807948068764428682143578611118010748905863181289805096018153367219543149669976570771672199967943621907993249287268551766463012061451897576979685017436500120561306709216613811609749425644948259525265404772828474824263322685550408547710323372914112380451031110608552548682120939578885646119523892417437137835481889012586367640293879342948272365268077965051171928636589107090069098808563909104973659858508015337350146131161399366271888466685017315806531852235088065416897495273331988262318140747187579063782377625763724312404255903232855766229858398252970810503482935102150049196226641271068120949058827884772688516741743215503936973311678788757734942689063880796938324104426581782589351771042468397595936508749826379985114054030660801596549780792364928361424058072268444224701129910591216258640521501916757798211858912537484978640295489201791026820246842838892497808832243471750601049037615167410919529306414255922352258489564627916353520380468473282136347580736224819101752284401861949411408947980433572691867987735770791287700564780107833889405455550744818033315343130586567985674339693124775415059741697118078128160711722493052406805636990548911062457515213817141736483276629702268715690073910364878893248347209251104485630364376260181209982813449981971926142313845121344984457127819637610314853179797821512481206246216768581327525690826329050114417530420722024389681032162977501174591210851323873242764284231710747630755747156376563226956372063747550714912573715469456081690725937003986773444506402628957250450387706076817316238015427422299558422926952776403223373296505964218189715885168932509185808093370622363287268073944802456280698918674795963853213695359137258158945417664137049311416180200121136072542384159283011796602803233541560383060444867032214230049152247567704150062159830769247613602639542296985653017750936154025527594275613616013623744767292326284525574704578499763726919114611980414853994667671337865001930440688714061695104559118098320496169220140200212275633136282427332677630317640517211166172228025806051234486024760584954555989406817744974017014695184274931735414022564188075129860376302826201152519856016644866048241695182060088648997490560370453332539579845243036071133996156271383665740760736338150143365769153421151844270740360722436059128153255841646543684485226122063776414479722317631337469468408957891135300508871309026447778980255742895938773949908159340358390469954099644561383434682196401514307257067192890762650692739805080739435147631023631662822530588763846963991926572301697308831119200953872504449789884330971344454476526285964578069482002301794695179447091511662553997984861174927893111863041444708903441616213073482650758270504971575187776182517880808977831424233971642114441723794496696127294231802949391432222674614480750646890450056194043732201745930826057949082254533584553618178889161790875947128874097938398443079650972437753333100997239311678420582248991963799244675407275134854766137708570503512144033022215592044128434973872733042152720778601295462151233291747012873574178001772209245634085193453945595448595744365386612724541683415718944384921895407206950904890851254373454232282416517939150733423655360769222317227152854650562167342343016114564309039862955917300901897527935579660518873442654558557589096415764295313283431501589823506316342573129827514620419835591082447676584938200595180777111879704460176844748981665933066021467233412860638632305852531043780820652532463849884382988307982962843762094947752996723330998909367606329057483476730821950403475277867397159365967473659541715688758028407960028462546579081034414061777188259660088205580301335886475767121748025263257116373674194618306508378695832335560323760997933839339828815615963392261564063466029706303888731634430607320612805990781868529602746605743203875715461036971761821209151862758755260031409039331447001678805723692681198674474894213306085347073357414277192000004434310991220976451028814282379260361319087986566852391252998136440542816563074672211388798761611594004299592407909751021387645168809676960086083468294067000123020417423430063876147380136665372959255450919300857746209160511724760573743121391659544770254003690623924027275899866538647289392134960985349561841196042291530867305552321240486277963719817138065259015996748999922077757455226501726630964160252025872504737376220159926393477917265877154714788716072287487350202405863113364220147736877878523295544650454572397053187955868968491988539421558926197010060641118985528170306811174590541095491926168174256264679983389915560410174512323254719681011954690725375209572390875096591997637613048293208675333805684433902671153427237213314381560892250398089625909394960963084503469892577522774708785045471345345042990803306683398849084106218491895788858277938111372311426431582428398121382657040294521489356031133276109189242258088107383887292921380708558420439617562706992926943046951272921112319357501923475718040361304035939283117640600907936095010744796407084920371953196371993402345919116115188615285116575405375680576241029254851125121737095637721859854795542927843835682592803385176973325678361211196729305636055950363081789323114202121187416384444907050755085153530459695889874575585832795355060901749182615819703481938658087017671432889525881803059686763436087815501969874616998995031295728672940040975290192242812519473876098776842992293899284910906948538165176635160454359957036620456464687831958551519232532225418640719313939101444627217234854264228898258857001248067423970366624257676222449911704862742029430796903460775865072628686192657718887548731735862248134088393251615229216256764897249705637440444395158920191239931436056087143236913583228230445393895451161174374223570388426035673592987194108526886787574958298557982318881213595420443168125634372246431474457124866667302648842151244260505302373174270161181630840681190754449206336733632768041111941213621901238919822292948096901466674070446206066883066227486063084036861266488496565025156383900291680776454289531871473707673231424731443989843904906945103585962834718482731897456862521775286109731882037494226124550961736989241213230522502076075366922522906573581964561285834901426181131059505598149514668506738368084973549317164535186179930150246967526817755902388458339919991793932354881677749171610066804792197949778884252779721114647669422846084213898978251388493429472005430989140285622712168530015036344182963493783749616765492189703390379815495311568201738285895256265975767491597233658731366051349229542720482483144337084387773269734774777459003295184208976450508600124267730431267980387499071059420216470714923697192932810219392859452642514347176755950448636785872207271582414106161807668723608200377458427648760535289189181580751000600475210919050055279129620530306652388217538012885275695169427123343097400275802876250676169131872803490269386406848937257688692041571844236829090453457770892859584988775156776914026798819920448485025805443197828417940638508301969700108816305344032945926381720093387278498346547019970388248597857246263138424158636499606530544779831501238082170444687514493950911722560116190269239460455257241586280043063883615535320289913073781303048672182030173781366830087206106046045610330205322064426242051314634616377290680691626293776409013483719098759469225818277112989554262333662760083496358956932301196758202284200760497995257007751363284504631233490736498221218957552788747134664499495990146401902025086427178838869776276066585776822156579788969888936943523414720935682767120904201446616414647821346565969871243773010429871026710336767959184162792939078265699982886342556383962937067896381923498243372219782156919051965545095567534082696576562757290409320117370917081288663160450711434628645375730172584731456189095149453767716461171891065724076989940950533452686319546383236596203854568806230248225333683411600941085089223514571016923733361215251569766010708241457876673547020995057741584670525462113079220255748247970511253800118748020247096040640672411061017996104620364512331812416287643841012197845815874729007852612371551603598135407645187129944837908953232725102092886782852725387623811320715866626802592263946974878107958524073701641770259850632389400095591747676042434502380833078954594614288508789330497812661697836077474181856286051902481876333624507299054375908490895083824387150341811984588455194814236605925818694124064220152553177988997271163163955429948965257115372295376334188418152645132599845882500356081400388636562470941110184767381680617094877806679713549956312967117671640098753844325133801750292916130747557224755548934658970714794211311572126203845289416267494495016808393385194379426012081998299695782562342101380032758613122574388451269063947788399976361983784683149511150182998044481888451961513621866024562475660307892862891647177305949415336215433524343225936882570355255208687302482089480999687020302033845919923908915847727402006506503152956095883487857419529736891622569940940331520608528686419762070554504742725853782725830674337125234095819702858777598522180997337712260456823195371762186239421187274482311143094152362960525662934462806335244980520987472073677077462501980008932664935776719434766865034968461512294226836837791902225711391027558830139857890715890565612437172015231647595102774751062427066341068154337390349476124251190040777176149003380040654414346735632333501519943118905654688220068256442781001195721333334623581500452675089909161703741502084754999370361832052186602273782505283966702150211348012505722875582736738408180444225620487295893436089748869702029567347708660002730466320698925734410008754682539827995260688732255751061421496308792196649815504021746826572450718992809665542136311733275489059327724490283846678108686820634348036640930528515239565233317752452202100117922633524066136726225558955224778850572627950323024898479650955397458313473940078504583220568003380198562673670887303265333818821270858759093783934187482682636148542987918686874605061477700699264630363953411856539873334235276215464379852671047829283046955116073498152528947706890141996183088028735029317577388932316889990540085590393186109955748442383244848917377623110924955177827221410759556315187887925553011545376327518032587123448992491669210731611891731046667125558096535465396149976078161396775960116294976814047127361594769218820633231103213311414743526996013424675223710908172365801597490922196386918996383687870302114482629861651385235551359281212842222244066039168224322156133166107783726714905742465635113962013235519462544999803642690196515956270510802391964458813540791467435036557368024399716119461552720039683835392468424958337506080269554821589606274327079829729375057277803152625189143392873914682738922595652421936871937216417333946966824485469917271293363485879400772887424061875518222888018750606386641043524970893313807261142992184356050553317664159167788212392306053603758961574716197098108721459669652690617761887092334574078136287798290966899398542432536015414175054540946274727459132349475190525724958614164394576473783312890059516003091451327565205695255283932896981833065290017200268956286813160504828265282560372431854881830114369358171314872368485164383714999418539336136933396414581719251632256198674453098432606120571151788314107643739011794752064614548451752024856639383480165975280455133414428522420591565742257457172642812717979861105236842417571946621929745856219528123112993677338607066739075039632070016174984286992960540993811099617756233347992883078311650566188576631842693151930410193366418060805510530425075736603568777949324604935607834320697406643538272460186297589137676117317784773265864818200782897147360472653704117509294188226064573064570828874701188719460243021090346138881504309782772782992570296735280133783778476545427947830060797235063571165030127935115869845123042845470653605220286713711660090636361523218078433168978951443654059056949198002343528244935289518022497244721125390897096831729485974665947465309799348880658778313045331350589061640962191327343119283687279059181159203277212218455581516992361782294681173666451723511689269252025729530442019131621695971602515519663563690221340967015399295816314198956692453264118746927113832366543469199982941930153318843162964760702935143714667450471644148776211048024482076396159660271678055242126733475038166246236525926163205835646389629633277755055181282965984890235714793584401558101157457129526264233755881675026199623044603963468121702404318026695585560289671720707744498460503913094621676716809105661219741386982265541404310359260435321702229482954684081183929781942509285167816994656039023380537785567952290668488306841882659316871299218560689184004675788772888110237023236361708535566181354174870741888712871083850331866582102943660396588032669752539795460499127222505925484389213364439610233079957720548972493655972236594290588891734231410143652288823030178856149482565270182285471902945193228454354612047910232832491433462758443875454296651481009316841102206435260683256349246777101002262943671235650388823553749037167488176620635303912154775078111145236805798232065494766902505437541983944115667298039895172028543873854653176388880090860107583121717640155965730670509657079649930076748585865953043190212915552329040747453482351352762795501637875203974265495825917164400637788120898907051790393741640252139652110055646974082960445346872618538743718083933495938705478789034448034278394379230946960836941834717502747601627610791698834679917552888142293358547357932019171818955986715088380667712335841112391111492551619331319715823496524947810367425225440119037038743827788259458844722437325010594887594981574927446912714626878665468388599647509647855973390293039864349388939853778384137310235848114894044668983764484497031997322360832406084334653760112177150490365097771386621659328433641104460897582573700075402895681857531527962014201586594222253840445818861065452852981447578047281050723182469624201239770166643023328675164382423959536948692561439400648616737223203087154316398629556443419740714892115386193806376902570364319177518620903718853808174939926182059001035431513576229242875721418554631309344182366318977294095347210741262695565757480410889652401703732824274495002259654158598853476493053828125694172623250887171524079362366708216317689875382996327928666243098742586893854587845694061148598537553515814686577259808160898510229249644366727758663356413621539758870904340134032944802444646756994143581328720180013167653100111452765462607054047178742498084272774709445728981916611393361807483424537256612976739899854026956196424875946050569703592310012450058737732745433617686944765921159538974206614714703548691743974344676178578899409540990718555739922548231098689654555602510426601001216538083322530638807187570171269872537151868213092004200991518039378585543880088656843783624509074075642640030268219413519703142537619533458650055569877365432951177856018101131891803165432993416695153651449493000982593445378490505907944632973236934920414750674493512490158178517484047242176584573005360164251772695224469927366163131782702878598723947449898113027069607896622873109705468741991368005151741552294667866561245503293750444082488872294602601659749906126028777721864258257485869246223574774963700564102357327183418612136926624693424685069637317132456993504601602773450777907265261954820309176654874720222521821627435047670911273383887767145288477257075584897275817753765263203145883536521829263743521704955379705341895273294689323653624320681373950627021789493693870596208769781804291689859105014357041310136034563177431029038199316935243433047005022904340632261255505646517230838039184693261310601601430354019832737574712026751804961607535980496423389128389049806217443488818564558018636817030888435231027973159129148613196195433489394404776813226874519743425326218394930410182524390475657197277430801596008691653899095198479344455819022672075257506835198379859639602043789174003072041436908072782625198286429876192226751137329234134010934167750791826376892590234327091491208119775851497473362791966264622431713820645931161432501707080834523916908887714865449242442135203436361301708646848131795551082762632176143009190386203397785089474560031699354068306658084718161617770501391186503881540904303540966809102677195909117475402834483687088267520153297860332126626069142792449757562048392199016550264131732022884636808698497337591344389879869165688146947947210903878072928402479039193903643284310182584815608859294720498883115405730946770711737211920893073407230643847520119444097248511522702002545286313862485281426612526973542747887691006343724725247374787503890567565723274928372407990836946753624980785197060177342289495436020304906373984190064540275016967009307913878543807635495704785075420874012999892271980972211530274119464480177296998222951779117794007526802770195874195153757643460122469474766725702428848256932322340181165853478563574894602828047404188518676699527777735065287690399415373598416370618914707437221789522160696609851351221808271466409947438634695958026666852781089057625178229789543776619794235310439306560810713628003340486479470582516857679700045932739609405557185500933768472940252925118421060595292333961518045311953060032539115324003271657790971106396458390467522172143064242082196348765400927613588819198373201113113555933660416896404528950613667440958066538214423837971661851958632277689400138235958869814429942530142282604817160837554189438485769109269380922348079120079603621039599346960611604519796478176810241470498372612804772113862669937532026214651405457193794660679688640111996062679633206427446550358548376512375862586384035879455906365366786644042409196974049947031178992094812844178180336688959031852195630782391673490269444372186164436605634736813156485182971871655159682513322859681481044062478113273057860028872285673163097467113738619007423446816873064216191964561234413344642664911739894710297620307761640618251442345107365551508220834181933842368451338527982705769461716002207936254941633398142497466785842803907887286187687549678949677295025335785168748226276799389460100178316751707066348009437288405477993617353902166993055067866011270168290934078304963725417378432539164478164294398333947497129917485820397520828755008864431520490116848396351423493277280139170160056842837522904035556876781633357492353530660201589304139224397563934835047375055983101579921854362918591662022336079760210363190156788110388511767040405159920544658022212825623522837641129112031588189306603895231968913482495657634440816616586135744405368957179678970026702979545730517575447188018778649792509614217839603427512632311046642921092598138394891384632078472867950768841503102117814092060984228758335420794656854237009759871561665486349244998860266900992939142595049031177982049947602191065851597509088173481975925761896871749704652537638395432487131334608815311230359361348735665518282638960052174485008884037258791732544830866515960647717781526530565007513357989813133919426026036827626630163617295806086297426044731030099691184749085126253237311649644073738789955417172226049766509647678790526800823162206835826587988208010490988378229120794909849632613711677452637936439332881273751854416600782352917435674743842765521253843653698264949414632168110207777954651261926425065068769877695969636750549090263954833977382614553393430126294610247480394769736315657878712565455597626608020410114940313547140090708589491380870011742872696171982189744521934173048529519450087334671639853624276978266318331445688743673448896408665627764713915556452082237112000089253390209283163606049785902343783785829867627730835877077716558774762201206132686360290224918441924363669539121844385146130120235636895052362022731453660352103090249734975532434647941767292963213099913393901802473110450292777556807402182209025457673060168196434432988958116357936557947017323855817029819433820471159915263956792800670775427503193338952761723601545149702492875930165997128684411998326073781651711061918965444517663039643486327654652802066184194295257818451805799813971304314969944019982363326789569990185584247467881659107536447363145920278418616000345813836855728272852456873545172207709667998965379381144636175452752321276428352020899779257656193667759035605594803495417279692058907141255177758729434542307551741638130901632474757544468877370271047173808410668875471066011658422510652866990191431692187840445584977946538132938599402370410823046189343532300749902624865676751159036160346581536381582087785076494159577262531864062982723332214098076317076571987291592632187470320370415441132331683354281087069978393627816394986625334812763374075750309036848692717973967003807877167401936181496350120971892222490954154480377318654508471401021388554182687748199017960977270953775382034200340081094083799390254938580524644046635797009843467384584500096956414361914709151799805258025517815027259735849226746981550820276775718632612301295829840146671422999933506766064981529625168460974843970793784344479297815533599079518636210496339369413652944241606718295047230628230980043657702678853795217684136388746867253657632548118590722769339361835112539572494700582012056375299895448909974443002554472431766323996014209119324035904468920306204714062675667197816529533854357994843654271554199190386211732543534494125174781297180013644188630637375627313962865103995071426477709253327146866519715423176198190552166356754261694294030442521970347199433802382263480811038883028322327945436560229572985962723220130549659826821116156140723036334931243385925738747642778263934730728762796147782720933896862239304293014683288344215034784126702844363231081454572098975791897550823259234693861113924135210118932248049227421950954613142929604424412259285251600598829100327624302716350502295551391246343108712171848084285716985870369390922627754040455676845656724804042109378442528365085096759140535792432649444755157491726164178173689334163561124472233773856346534427960800211615061211160918421900295878692344140376201857453524829364328428097088414685883724289652458480149430940940170955031726720429336953376252392161059249952095920052193869423052566223209243049434093167686468082944758503346155149199066186433902670671438520217784732420168501215760487592174486752081506837196057558456039759735440773017803813702656246260699815681028512346147253771370722373219165187111768617278225105620404535134243476770092922049631760705808868018298117407107243033182650832566457245631302216315928410877976732738295903489663131376483467168150149794782225693065100213839375645535873154366913526286526296735237379147553435455940032825250734856779147204148542537670852921368110920375870904830774967831171506445038506289555784001916691871686494178168711824534809321917643538243625189247993325668114893115629952194116048556832138045506967397885497526351273802990689547006359626787611033214126264737372454634708885449771696181605772735662411229074625390944439303741575042363483536687821467668359944117723071500381660185332127553786559082936450184413719296517002929669462938852543224918196561723714699681178459477766927840366021835150471542098660341888169805508360883545320017227435428367912681994064098408785974844050432752099739696265015732108398222566457874081435997567362305342896666151699119822489444628311637871115304239947075328859356755415720480053069619872534630087966074866694348081637053556946253493800792424757915099483116897752172262506094221250519666331461671515374630371039594941502063609419699015058949014993083913633051162547131281218629438696873715694418757798860378232759450747227387552363213174150034659809712619838384502373321915212903912971181536028619469398199417374702749196429245107244585239433498517931497548543323901839587462002596269969764375226469383119820499142289084182119538572045492518367540414836362557077341793400360687159793751156326404290885781563144743275828355778761735080622545962624223660621287204570441436669337525481331683003747397775702081570632804952775062604327435543000340608523474074085825752046929437989974104587461297537498410388509209703965520353329333691887379365701054536744793250205537487474399499296186144505718793374277837587409159988921082949939810058560336349133263025597961634338384548385889918826495695399124290013369773908084943660881281346033159637771126662239529487150314927297435267475841735186674303381928073768210620622050514303137563773652144675694390723373908639523506331242589554253385547016201589728731883613167350119008138745635772906037595785658454940696672269586190466287336154570194371551369236516857869749051816751439091846938698858378428258259897151100972718576948432593730049822114598246244997060917216168260318298162172725738751055233664129600473254428095629666499051412885813026276643839246651473348133946953465237836031151403628051023984262615657186558749634179264590823668428856501999156461295250856945031253963222838756552227824907502113610943022966345984705050218274221283608862784359849738495873434074455940669140673376363446576504202846233798095425910497469296427414564747338470357033686538152160105166870370468139708582598051280319691646892280857034917608316500456684363022065573801148022218786698479638441535897857129685402125920011440115747449122979968327324184135990011077381439281762124218407661492536385284867684566261418222034542317819272359047206345953646365761038677419619094580911272100413895163298102438347985595118469412070289575382828664502682718697202124549245962530573026833011736929498897759751145852530964410376728363143262445044240263359315410189467550677034630016734339490832113417931485007020630139103464165749144790783482732482558774245249817421203733290658528420216977260746042347796613934179162859632115422111346356993509495350076054587487740816804863559159419006291168084912987207729037318996862429482085190869805368613156268302234073155720296141320071598185691167141317724193649681472951526358016467807407468018964452944075857541250955259083770216619200795573311462795071351481665675010829070648109701456505334104277189155306802376322058221498687399756410753044595810341474836604474316753632597933773916794587865183306328619244513118632443815520406871284342300195396491278167578103905650452322810175396099936418593624483786514583985968095758182966773508885342028396310586764251654153194286562044576805069944766767695948352366151509531097387501810700667242264311257817227380241710307219102037656580569783458168606360270621329267595402148692830447823697667312291362610127809554985638759191986265777485921043044374870482131777060905768445550937315516481587514215602771467549549878472904962977921920584720823087844378115650105917814579397165624635566114827194325431178233740452251431087262651620167315934293403001386155101554863009663654444121779115269273455784630271491765262854707373852074623377062180976985879813803723451178272447951125196776449756995894715083943694300807343580885130380148506131203646232067164285457292613404635069150166819629498034299465920537480317388753235335563870437289776852066358264943281875292580767562428008977892541111118275939604644077036581118569525763923365511380271087621821452262035278116695412747730153569807585408905752934597330193780150645212028170351774036302860309213536597693789057405381723410436850783591110119321375086538771727582273672264915632376091817258035303031678212160985629371819121267994543091974141792989964028028741257046520563097127892769226903744905915704464430742912364260556783292725304855695696152771466460980093046361282965131121891812485896273407758695675522624364505570614322159896572679404037504066096886217268215369216470071079211518981949192000430475117804393255310799034208885620576202583050480551824955566090028062579243392561556793173887979257708603818518111080964861648997600005480209178478586666726243158056963348787649979592558112348277260391497165967004431651929870858260546589835487086945917690057652111380722070812793535480045928659392189274517861048918316575439895849364034094770009642477614329006542126329627987881226464110180336271758175394631627368068779218456844733499126715207330932855532761401975138424932399492911600761322707540487612530081572072407216688274447978523058207968436905310071831389776318922629737925047171780373611522079757646486426700391225337530216754610627323046018763117605603660111775560083331000677721534691298878998674250561057057116547596204636122186748107219992943102957106296538806011749540495483354659919009562931624074060356663813928524188024517676681275843557007186481298529487461375221559468271881672600364430292872773431046345948692678753144461896532017274615200628699960604101138452987417235992202250161670970408909102829489249747328960380349741501372057897692223093428689451318188990368820789781608028180933973041115845750263273197734699304255663863860153223856892313593483094103915723852777341318572104502475487475355769587649845005375731915024723220636905095097692012212992121511240654764977454955980712491503454853805077548348637106397922345936120209753018719980794928350438034559803716961319773087369004013302472474882030397165907759033194004234289331694535609581478601353743803485128579189567116987781819168797268880993870617866999902243286718137636630563595823395892092041385854501513003582428726185344991467974557244852090140893311414315139328945332379018415359332148082002597507252578777283347922189287633833406037369434085229281528683084041795922291140827873592005246766617962048401074788702640195770518736903228713755824390957990824661885951198432477427796023431443032700337817523164041708013254089634926209556023864005961839282423774633999999415879241470360439785095861551928142795830716953192338659145746396042737465338695241859086170602062562526318464118054313516271160235570647984721544594262866576471278220508844933531787611031060434577148462283198320853093916661278102655692876470224771019673122311138911453763761903823703189743944829456991212865496209137586033831403054478200298227756096495031976067752188687501392275270046634520526698754715922766334318638803029681615557606707441212671249979122569982368442989955026109825074478092302283747747102662636458682062867965856385649935113328129381943609988877033082233514700876317324663073731590803242159228571209813079722309681923976521461914281825070632463810254468606453736950981590651293445047842734966235682193557547907096745011655363899950750373759469577193313029524274247070582918136320835098103351147623717339526264243054154486919799269853070208920184995866311189270763304977436738281131804724283010544789276301125918186018804795479441896638487567953753471176683264449098067849022894682381232124160273592930537642433467337083433420741857944322718982372027802471539883585919552698058246585299868417831821625586910576491952122585664231887246566813075627525265222595579539067164233013640857652742753664163573311769322913609262682467319768872384734074248624872776442582886860269844387945411920064467951445402390028881620459165237957516192359391420787747166166335312925937204293998558675055912280091285252468999640723719275914459972784906563414169414119531472413385518933511880295552184570030543355372717273308102076775131481921517506898479651679803875908334431588556190262404444989109711666442326106322924927680463874902234722464182145973324548518258264945514691658862001713654052627332473935688369952931886193719101018214383434164253952753881516646615612234048032650581366170047356866718163156938247091531457240633013873488946654795595630803681534096278448786077211872910950920295621127816698136455649414008367014685806661044827490437846197559865054898046875591918649889055741912105149698018716846254984739944981902917603623252361469487906454895862972016854820017068002008600805507899208213112675163635241270036174569767271232641480286999803007491502611227463291122988169808709177774140984475248208048590256078933045390615065634510764283608599854423445980563368668233200294084835585532732855565326259586596239305844686215980883202984509720052451753172076356257843992067356448025214092390818152495191813649828751225149650474253027840835869045704117772839298069997304650265435099336348208121007240046870270546934399049454140079820313869689763389111892256705094133642562164928774178632100181867922223261601292537517718073552350456171654221761187943693201812110500152399660163101695350107136631354805632238783361663114033431381632076857344972791754597645430767239667102846623838300724486915928985113759988499406694636174113705503430059490641085955678274721913870651552804280306367219581673171971979523890318360371310347604983576564934505227865013368816830467991742595580963800378710147935105506803995972358111311977418157343650024272739586403163934868636853144513799324265927004906149624233835430064697228405321904190020131700281546882859284925818409923144199854477177410864757885751845623458102765864246696248130588746431562210989770550861823412204841654035326841536517963749452783862278657406090853717438301060346249094877930123005233188023837257220132046485386236098670008790107872052758570323066791065105023683551290666143336976918991663921302834357895437113756271264961846977460475137556070963044646524829616700321415294724056808517858872001533476240144947313932194899701666199937209819074282869693437094783983650137339172266303819693279173577573182011699305870564920088943823195065067084840241870920855528338864467267513690743023955868473124477709389592793954038967995510522788525222215835267865667970588636832851227351390932986552146032648159716369599922145561715392210970615032357685648586735569808780887523949125103900110103900224812429203570018168964247096432435605892013316001109744165297189707756067393542802237204028845966496394590600121593825643813530255744681426005551235193483853552557404897212358516654419216219875963833110105726699733855683257263855413426770461136748835256097341714044317293604406971462571734394776447145670092389864466641328371199592774624546527739392007268841596556151177264333276339885693359524970378289061805922578917059542918527972987220212296875659009439847878019024130107272601638048535082873691951696347570091461343358747904133864585732100509039037234780503599681121900882760567065437889519218040196619094923410393004300187149978807489666732926762370805279211535233892818697538643718938697176078918784704967797934497252076757711307868900257257968876475606760520628126183856867925838567675300881884223798120450024482475140707797075702356279718363133363027492949124164461217552518341068078440999951446880532369873765142876333313445721807788736489932893608847839024122901729129545515866063607679902888162104866484808473526910148058007263533503254472518389926649694745707042874948041826169646459984983077230940935030472225800267278365012660888323001273765886204739068348544461889680044122502938417680217479434946962450632566822175327310936303341069537865607366185895498705156182544218838593530957667706531813368160989964537363396899417360921935976672996771011050780642323214509107446241736319679192970133848658463292852402816534605544151932922443745837276211258755611036659332031400075920329807077532384723349832230294686211098215172484662718171706742263608834949317693067907887866625422984647630413508548980391877657502726953722897004895234752279772349464777690578311550534378459304703436592397161647448432767616678190708194957306078124071257684994243943222392357611234086475390812423747327173405543159081630259278621992037304847940789254150386984342013168940521650116785364789359662428365273668439133531970812356896858369924403889197257814206917016922104438672785086410568813724131702048472741131668575146106175826620812789599518523790979185765415595519241148569219165090313200151423987554472794004355316354047068614850917488060814412668687527647023925981712063756662089768585124005825045922843644129040602667839015939426754378633017846955753344172309640274199658527044521318120148795416510278927118233651393643854031380172665740406609691266340151458739904503670381300719258644740192661740704628985411896318103574198924449445831862003652845281375298473396008676483770183863517022925810903216463342713959364368044199985494211681350049757832245102805478151088278160754050754981964603951575427658466544804210295359206886048760212953835137396921936876591092976300033975714400797806341649216046165922531981303385265614318713720247201723348006679701316420584043437752712229146641309418061418552198029104479533618415535927974796587507174566767980031018143345506594841678059238586732437139571211570904224043906634416101286300488123516068789020015639403486182830684042972149887219094054354986042270507685644497115603747308619938924867768525779666679587890808154487261952063170678407064544714278900960849719795281037492600155481799696452465455079485529452806906474718293662447005514893711246847289255506291625109353805909252222711618938211147471441782356043447215183360792096595027401651443844190820890478851450279006128966347218688897934092693785360490534377417914960889426456009882920331346080996806159000491117205466220186629637436990878807297954564006213269299197967227190445079067279430652520970666570954268463034096379571182043401881187972301901935370821214655339495331213101436387736291428055795983315758135121181203369874148171791205732713849818978115654503184431301912867310040069617994538706155331831942270428275357425623370843201222304034025392881628760053396595987573317054182362984242433161564825379666232049268702746437216321263922290417875773737451871745598729289317458894642362567242834073188712907138185280542493708414587125829880001980651757452973449217535332255187078577941608183053704744624118668594372817236342771706771222864817921609703888829822430807862902753263160369174865043297885327482337982212668195762143850631713140807299018222127718218778595576131853249361340874083101825415056687282160062953254022899459303256789706724820734775445696366806906311347656739495381737513128755184434699095100132033544073750505069863454395177712788197971963214265298234502388571287481898441930417487795366201989493081399990194332527998195303084342114160970509052092345570885346871308092918988831921904633181585213501675154476985631465838114883888624186011341930668268968765762414427640830443756988179594704915659662447299945083421446780497327342057651516940239632551836239098335361106514027793873150156287827400598391063425511903325797017958335719204125177506178252669781726627562574727156213196929909524119441892990218453567884603748323850606992324728536736973315273516334115967766516755401050273872850036647854841598773886494920837852425050075574000686931748335928997173154575211492549004999134291917161500063124056752442496165842595132325546592243941979538750023451073348011706915256999442472856442804573145673952859469123330341944221623988526203194767584841052050091508926967535036217983843151696128028517819890219312450705604433739443002115439144053061107699829304096156353557156983155147113390508871283487823983277920617271975158865421130579420960398692345230336462692191759779011102279279573545274499237342708599140490426838869739534974314844822000890992408232630227750756357954200887759425558933908292574197182405296453594925054093698064590396088086062528604316227143414288293979284962811050109973245356722811523761437889723628338868151162173765331871445044950242549701844660152785616185943210941818848734789147283103016978843235016359643656051651167206506284427293359529147253503658603150380490781122406283447272208779000599141152833241230333458195258651697055841486521484618813741547691860355465732664260681077546463742332315210045964667872186320067373107035981824682149812078115739350176749718387191948264636892726840934521590804786020973226440883862380089425248860362638176835232105508816262332986866421063291580846401966867065840780815789284591324948759246178219232620377338030091175855399393739139731482954711780316909981675520189199982590959614534657779531163184371366104041099043890882759314058186022647918016611981846121018970209272235738308489910505333862567453414014829336814892015801163382758114331698320136811564017534611939047289083491608687224812605689342378321270382142257733827202080104315545492066785145275675132537536470372248947656449740812303605712315883379607348575656728759515398769219664160463000939015254519824211041453055204778488964970395913223401924424160495434979653221027780580002609019586554529135620803113300378753168181211977936421717456593316469642530150829820460499477454031585603605844381744246015123025978817367570090698879138897794095508273074500544761389797523860581750933303929290962387771392068592996826196356195886125575278547423151631691908603026321885047790607739922042956877668863123928890331524300056124177139838181350531043497948722964413906411228049168495862637496843900969993861709206276315690609109458096616485679120916594346215346873834509048269754686900000609720639036455547652147149525800123339759529926113166002062078380543191886042148788500712337963702768433636946958469522004920199709772905223554639732732590801331609096412742564944741918175319416458555605448919065807025734210646169942348600258918656073786170810010370914386013319583784687576901563610876890870393740360601854458175955815695170579431298594774932961989900949531505137305477193311231850408272080077537821554220650064285135274633495532593120796650064044203648700971821691644347058748399858915822393573553750308665292296446983727754478436083587666851149434967504819102723860139063321420059755979109005792353947867736018432460365570215841334700780566295334879524917606024827132348176130045852705405788622942547681312888936108465905739337636129390831161505649742185425865561183313596578655179866627783834104908919192241546632996452699719887379714245146677788858896518761674193294465021730878744636700116502084126088029502689175914933451634100599191127673517613308723826222492471121814820083715566020337476035148677321281899855395173077523523905504025587216023055490607523271302422462179491098569997255953292858550780534116179052486628910055587895048422242343228226860012168326876656663145439469396897764800033165845268049943719096048867742290579787815665855611285699595834079221914550257351164143910835885669469530386559474821499173568210341395525140490901582366135278676954617278295120296193360075120367279514795801778747408106765809140102753314113757069928581729047502582231357076593437829982189757175667577693811852650288138964957446350444861059798788564930215214760709300234792876308409727615415416669314804268683964863161156472768550494701912054929500263395856349645182966052627633385818891219788459026852391189068629117494023459755781962178338889945622226385397113325457553208350685867314708420386526842150959427559285341613738152992728990675971914017564871030299232318718041678673540339639245000219960324819330246763654708316687787501539583764227402483088526457885618411015147573548836286792650941897921715623001558131315456032709252654355943352674170316362034100065653730785804881393528581326381565161216277457447232420059329468614135429266407046435429277146718427081216865921038505960466697067226958539827954669060651302869931890509966366149361973444830954435167099200884733019227945814979796054512291416424043974389071133237066039645191050070157833857220276263061581629511241453382676976723404255692231445988734070889855896329882325115015630882556156943362787727758270900127555624563473762925455737370902654714382943261096101197802849548682809437161471746164179233039873697030190519686568578254002197981536531543866062657114451186876025368011195575856394248120419661898670875039939288608627220051351675253196635232962299303369868658166630918855207655587229526816387809349543457660804969550452390277188604649523980134216860136849180677214185972031644913228942745922598887159992450892607351537694737997647339337412635416029469083617003341456611558075145711421779798468418350663844390602465792774861895388569908836619908917323667615468151877089507152253889660851554619655554826018703936298766880011686575875416114201256268136345856719397706850290280211624744699264658422576881654676246629414282338523015748047879848157906303794909964230942181833395096401174790580705366712882152281175242710876417614133694373160201503041314589460459355786117079674128165568659262395314791767309077090225293372362095207384323918835122999473380159215166744536646765474059208915004989187467778029676209875947556985957925176934473838400114850540933438020638208095088015153077836886115107878553590281542737830458594954394119473594771002063182440159673884611762983049187471926779773234052808163037231698308627282139853379849686741668794764947350409725384644702316537621355546358668650167452321073841975753250283490550772636122839779290210805338904661679379670116493697226821614193316870654717481469025937115807268509806377987878415343146084420831929129109692659748826201945856228190271611308125918008441884507832399181815292279388560705489130345655478570993961753613088637577393294379088805807904982321154683879355428310819865149357218846419370679830625381385497054662890276440274630911646729996187738102998707882846092414099501560049929528311511069724219279063379366634311475577816502559886559707026075245552075001717828189195647054923595943190578131635799889764290203151372365370680427131590464558651444793237517312096573746064320662142433707820858744620775811920055156733701586683254652625151630199003426640340310139924358571098346401446077376711806432850337978788811007141614909474060727136511508472861609228896210922933200307432399379726060944537873265114745078015436135171802790809231939892375276624287514340233557797088652178120352292631301780017981974156586770496421332672145777075354994268306013396879842610181492262135470189547294016605076147656800129218170716315714008767296520363292223016681001012090627179344427368359703423502549431341516416603342413195605896625261993986343104547169937947650282655982163339003948503491358451012105556177685172295814489434086174356816891234842901448243743750041891485198519435106532195783420866060725179978069900860605474244481301839264781320747897098936400063925905637162798987611441157952935934166217300755585804385412551760965056578552277262149709835147388907781284627743112904549443218654475678943557601916870069937456750770718724591838872614375650226355349910427195630789140290604991323165803906210275736036643560320818741125070393360761350769617494690386822430225485087807566196204137897542699914938390770137621191058667579963931158613631873281772294828973340574958961954421887417386946294441759303722102125389154234136552953707294322104789143961977251388163637923795769201415163790725647056457646224038971558078471736781895034722695653984757707473417258172301887507511543333196627728120192226522131670599794272725721254626524626809506772420267686489085307186587822456923872882958089678084786420700463134025453059294053048085481348424356515527308722911065873275689601944094035172974536481397055126398875946930154069933697414694511348228129999530981850942708081861406336773179272043516955532742023770953876619277190160493800866498147093244733518630421282971195676787261591215634695748590818607210254653705837420941927742753194506247322900922244841648717430415039141469309541803104381832131292222021575137196000121373198939235768890448795609834812316879983095059188445917901445260653188439275731208024451097519360939423821479288993648783794440090197223191080250200828122098876757136736642390499315444730685355758007533787495922316945458250966079245088698103315873865214757510121278014316589562398593387496564929928386365998080671640734105872516893532889208760643320380610768626638452356177137949443462967130131784804452970251461900206154059571220218583587248681551394353803999716176755491167088117122962979856017152964965536522216745550303487741861219596083913766198087744509261915375313393092267028882196487964563069729312583944032720371850691093930551921533302942304940711970583070402324344032874555953584736842220519935648243777265432751845627720372703264409784637427122514810900005437237527443802304371016674888677217021122375390488106147340682125139709549905868124271086280195877118698195928263653657891447209443987213510640743476682380656776757827799510793847763302143384510698814435091991782443680705965704339639123859313226311307206263548371071885038952922371748049932123208443779292141861573957342217990407450922175313939916418322717460668796452297265607913145209066229631060453136405353529105176178075064586970264461500432699922731148603118881561843903520836145220217894230365092302566746249946083970914220427385419964126618082468493674638103531240834965361270210594295894347684641751397282430393866063007724240082439727176962394379091157864742227424803146279605625565949904805770604860183196295476596266305356592580165584261474144781077096862479380960274257175674555623595034519780848680670037716674856485177982435466777427046242264438444164251838797805262639974843131996947780219713052805251630073020000055554762493014855094270661883621207407170254506735731572780864538959471437345951876593478324867622740085227192495811200935563059299444482616606518413948300143726083469124444876958457452365203997875795169136735808341409163347596595054293986362733284295017384370744177636835385154036872201606764771675346556924311342592660733948126225974699589326169885156233643753113233040995442006369094115693534915620584954269923930588299962427423041680455195936549011135519084393935982108532511578939213608631172885019598351093450024192683545798098433327987271710213319321934382571523632581258789697330352026708350757322682947537089440788342399167408613625061364383576676076478029850742230676253580485210330983397939479297581607276939932662178307594221469283578082950708355939097566055155592336875323666821864343802771510428588315415402246490449358685351792739308711311447582441714431858193529891533406406582778610507307730963598910123227380492628212741898160705490195272349732534425839068010666034349023750550821945420723164801997613536914599693629696880748385113029102950353514402409290930861691898093256684303143633905377184279363758865461867236914177260767777343008553848491633213841764647518474381812020367273972996003597690373709572703147610566599013318488146217107875411726025516921233844125991203962685957322642330000564835421286377510413045705676117727301483460520482427461101165777560442612554039793660874726686226749051131438378664085731034620957756949367080009220878221182363320726532491058770767051095708585122919494605362399001489481820536053184206337279080492484838673971402859185662907677005651602451897843783515781386699218558014673640460046202761253474716349676421756357561082558284496837971274228986916095603936283124962136101842007028417352023776474643390280240241118843068860149859597667747187412571176414444517967897196388960099014878860520931966220338955822551605998311704334898970945377727128722457842681607459126705947671996110993617826382394187944323148837524454887863673876042575961274012893144671634448127943631206589711754510239205657312610749167789835719832128334761382328710243197985386537645839911077863759623265790553762459011866478832092080052065043479887400557530690437824677900103929807004192939963720766350392167308804263717911250166961010116895550248308761405437854841894761451552040458705132921604019791170511686326687511139689043260219571002737776623155391755828306858425389717272290710864638361389382372205354736597116266374990406045137210038710599860610823617742508373937200536398803526552272842629151163358180566362642044942565338108088072617190177166508901716240472935741757513956378489264615757703630640945269155400118058138407293123034194483726792838852725549266227560628189788981275282763135360081292778612421767150742585117623147827499679830685695505345625993671364361185783623083762793250519483633733228719977572212516433137736896477987703882323464489011863147662614873169503464778053793040016363184524687177979290262897942248637911503096520349916386914728489051453424773367016179358055618681293878475935168999437726789534539747344940155095734282631361438444349189253324683917988913640263961097533168793149926098533645265851248784763114267657273279820972405973140857787492174991457056001065421686898781091876995814876204387027530814239592032744867991174937383272320474765380757358357028407328728573059793162641018721270545531956227004579922129910890282154428232393378774366658473858220021195032606319056407829619052898313820503066999396785222961163809323671445711807493279710250071575967396851595853579202525481070619290644721761425666379796867011280811998433672726650261948152457532505936795472094533351013124430908716631260348363468282218379088302912931651485262374772505915524208291547093409169224518170498055504306169137807160399321578440752545627827281004289404540395612661561948660558792678724639984746275332211991777372718170502396209965675360055491037888201422323785578232001535984635534537300883124150700685535888673371045889452851129250259106404028566778994089878136297867104633894173429681814499960458736282348021166208690776230966857443821486744529616822643300936071841611384877124779313867787805531542537495459616124832528976413372442245145068488574576536290416819549828906175312909835014979889567920983627095642166563576866263406217391618520525114207766754634094353035707960791357112624632594528080557480062632094961158658991380638383069402304188441986215278055981079883938916994790431740252989711151601624636999225039990195481928858802772719424914828855984261261944942347315319012219134918095306992867131602514688786793234886173778992147242335274081168302748973716020049159383454140053082892010603177794881527003315300420978535456490045298410801500300992839485468962833569179231409462475374503279615274502624398132384534903151390138325807291768792744027467855413466027227930670018402013020032224378913141842255764853803099293380010285928755201622752106747583761805367346832347269642672912140582019296738633736994122058947845718764939428890378783806946943752443519539029386427527490222480275476372354054120819038878302504629775789904281309623572975175004282789414576368585668022704945230037853833243678439943823719245671126967722488302870809041509645912214632679560300181214274407385986025414544851963418569087303942146754367130365526976680601001321612002479800459300193991588221997504758556883075377122722988329179063635888351064487419714938579821809981142076629435751443956438154650689921268876543429903354145222000154249462147138111796114815880155766157637743858556846807040394069639038414099883058226359600248945866699866099550969241988592104944291648168041643042609856908858512999429501065569312556475968021068910534104205791220631809835010311450336570020683438249066279648252181392660568220506088359257841719115444979698232991110214978733691930222502273179500907426039670668698957521135950233264264463360203902872185545753697947206763333956493940522325079516579821099719166822390926550331771846422179335862834980206997408942843426939794675258032757307835308669492328758743025525104353833010150269013308905830967332971887339479217886013766663954991843266597378841045188345585794243002673843765025102984931622108888420173447355294475410322864419089210517221886487026060738024478244246276960584916823585760119890771389593333735360116676934540124166125902951460023859883835637619309790698963814153859549190129238523764871594086746860578835290287102931813915199448254637435029913171749964478172920301587005804230597180576951707861864858054581846928606594822738527247069083811580272365522900455995047334525496937321329587299034583560827010491530151982471342737062081911452860968408242593524955760057257341437850178935952541364083024793818121351661883215512620861120105955804377013299178998466462974969773603815998927668797861102927740888692655678891526853234633769396731142092817655294253574191060450537837490467833321016222100440235307435580990287399898430040186247883608685848047114978904452907697773220713454580664325891508256706761229362620298835961199205510131448379380115059315053956301497058152819826671685243280887240889638427558053235768708162958785969779937322080850722206107688437621136557390524682021224694567063439870551237814660185095980380225998773436661085045107037466294454850537032525665275244219124549758160806419372508757053674678428878134355593092984241887199389687761437074605906038807440850994212145589439965534932562555072635823143945583001271532703091729616049935654591190300808686964732440357333717142074217684703235507221157076714504202981715426323875980351906027062551101425246786170541096431832904256146616007297448641875971291882298788581984344336094543396532432096530989888280968279347748254779830539129185753467992289840782256500922015699458998672810923946564351654796889427379135337587049594149610698860547430265035960760936504136464906692252316577081566303273643881872888288182700269005667964896413561729574870889311979965496612297992250732936985727672853195279457546938221267203606666360819498287930712136466690004959093685649413192290528636429970094468547140421986781593051765201772823287937579059917539898353029197156689524552577798988284577460874353112290841132787332533497711837736808304680611611383271499948212690390486840925416881588594942632532462035988210779689881582993797168459633147882689749385901726161773356750332757428491501043976213514802522227799680429537824126555015785107373506489471243751682946829549663839096672043277689728011310845453496085195097674337048880724521881403524939804419553069079845530230103896868908823471648640150871414679122949273721993234547486011114012154834877341929028008242671758520386081956001889530179236482538294779200982999443821197405832470549817773892295157481348346849273718022860845385658100461142413478716102097727005027710713561351714248969491915685271120984973350792146541223600892577368425744400327905755575925112788462420672103283419298350413620400361946597807294771765973643022641351280498899676327387691258588437521946389432585396225218750495655070333046057028514319022608193733607902288689139823844270071807440512360875732681467737830047158235944475830584921989604492485018508678965038300779194423675407629560930958091145136971517282759141831500251300255259325468416403363609572585518577384090005171341188258136921279196683392833696041020309819342678450174338962997581074614958427015912488573625656405609841062449166068042925626727180942867611489600613095512541035179884832597010015638345964262912902215891938482683838221572403767588226738794825121912657110792763530888954569155491136794858600041574006129679666840969174585869562077980264778192504031759008228976211260775893775776898063112946906319338874087032253790544375906205556135839190911847159129795496628489650153300434573049169897482383926166576568510838357534759025483827819036743444534325294427324318668444906970240300632692916581444153125406259189127427164658670711856843163035655398010837341958455738358962067004335948586309713856013138716481212055578858145678651923236032151306305848133295933247669714213872500215640734440669276935134562272591539398441598544534890948164144921055620026339744699642276003618136161400012649363483574318138052902729525423412736450349371217558949528995449322134059273582083877522081290048398094089462169922606843439899481107670429784271666762098238792234165984033191574528439217432585685547509198366522342744976440502902598917944586778696516763972650279828970571889323436252680905918696495255671185950043412542077662566932013852707327936074629591897669615487301818435554194949120635326537228257778609777425899103659192188671872900037162148554087126149594040820007369215362796674306226239356205992185295900175413363821226036253655015430965819405109407706092441429591565753522776362646719256783295715468446863409595862570859852601129805248490306788862142098313974657292336535823688681443724529356012443148446754842483160411299971292486917242343058601117964698469115700822150731218066869388181924367307072446128089992647620976623941573633149223381381052270445508886985756497138127276408938359514014684491484046235674345434243243202670685783278104043051771779151900671114387999669045572548299282877415819811317849401608653433291295940577332327470059520659916592388458870443546038084985423524210427633881017542765389889636432886681997724647684436181940873261794356075723494882886911930328802258049447814982118608254436436173785518070601565925111774360945209672115601379858256304845492274501752450129270882357131207819925962937496383443175416927073778558391098546828763690619566797196616767378176056942755533327675084212164642761619713913213330555625236754046875790651405312015086092758929746986989885356462514367891715089638408252214091185887148505520836474187035742902150365845694221488800707772302301611626855037735343839744572362254668652776109909767476865370906155791088555378177281141274494893281419981729519477953528181595932122899442421538975697872325321863027701334497068486739910226838443934075264210397832421398369893106345979788369655130599572383580378662394131948442876966260180106750429785936923632576102443378637969227027850582119567038843981891156101608265183136520967213908936731193931641842168142467205119891219303474816556207810968606109273319723803052476809656902841197790233490409678531496352282346536815101948263721136040794600760125454061877906688712482367861616227715754539839461659318762033037288223389068970799686140311099335213856096057039738524077822526298811396194530615289050299035969107012652706054257344036141138302155985573752465277413304281286371482829846722270031172228087014561619885985204124380976797753053743284949884246543552346272543211489485131237567283110667923225866002800287325403487729783644391819271252393413412949377488277169154881092458990452128531497355569754877765680385923961694474623478435204262468422166243799679234196769217105016240349511825161525959821644456061371604063391036531901288887753290100476479155089425050453265244440682322098250762091545205071521961183422795697514028170015068978414082976942005682748340816430266154992425212503943474622371076286019536966642491552778898456651864701522957265115542684449850136187079341741247656510707455519601953741646007475379006269966992516229463593846545707172389032719981144645474556886775157784345890644162418273376520243731090166996241128587297202780924865050550700176436175861590593380864182600946721213692903290352233247002230271226083668665280984110406459861328081455334413938174786797406810639866516561025363483553121401900733629080193969298542477660980886040755309699539123323915774936954280107808841404346226201685020990964222117101787558635259833910371331737790188019225617833371984032186470849504357812581983052113798322600265632535552226993797222536947590371645548248517889662531804551388938836481622049876139235936045377320136062398879504539036329848162191855857079669784451317134446383522757659463275246182351136262452736406518914521165158342927421854819686558726367059670895574923623030629905847157610124040564554306595796473263298343194167180539348170816076614347267728362418505422865505176493591444103637432789254485251826812605119003433593750818610976561572448209247331474508977075529385317223538054483713241705984680580040857280842858794702581789851802899880075317863315253616395504975316873499440962721167564062718724518784827733847960651749432335295527393012947948976292666169538408665549408459693672961606945498536195126182539101069575016520548865230628343924831422181737826941557738529470181536139018407110453456831510876750333360881015915974702193478957988182587838524863595129719313819154321434483784009999915536323826259120612402260242917890082143548537708321247624507581044935035101848093765186795813194459340184204588856082046181495499410717343027500704606074246516773553573055207333144698585575288492538843688169291276173989538490136762554030572709189721754183321631836150966364284429537579212872045529757437182511908568131493132215011930179268561091544893002327808469832468142284681978700184324142090061684198866925164251970012652793878665735756718003830429943210642526811806892317223137102250061535740417295906673426086190489283919536640717411132876668792192837205640840958870090843783236626133321396877001053420259908232479652180987455677381594914148258276383488201710636833205818016048714890218364704110576745219318506725291391947223560357720471417473363268443375477639854679318229042919600061988649948471249628371543736398522329262913602327055438737813249946687504570666666547984472062446887928949349274229555556530188269711556018139354388119511240961538948199126979224002841049959859541394211970933921067166759437939207674310597455108554400290890701606247670130810062205310557450259965402967571005194703283888362922375648649854166783452938628621391085801319804094189220625436011419609265090204710463705557387574945815700425512092100944878173205002151112465646938406042044731733066020571855051705479184139118239558203020725210862109927345858775232621930245447525606830252756714622242538102326786104492197820466188372597878287631843498097396537796836793354569747523142355527854069488455288352906911381535180157095985689527742438883799385956856182010570671715701433319969231565704227640298299899508320488997057572581527454862264744933630192720555117328978903271073602922803263563436407768251324549329623472675975911073695363793237940308375886745574954296961644902286289168661415852527230210307295676405794001356274880086579091169709265072367491885331945046380383610464484177694724523637478286596552531842926028568048097013916142923981414944182606655901920794685047799770501690140988530665025842641991725528518420954274460679622836884561109319762273179661817945498339852507030869201124791819963252790557952196454459522973198850054327099821578319268240117546962565243022803391133746234672675972817475003543216576033008130078980102557762089235077017096077849156164071268665587789673072674639283560847407212363306716045817025584624340062329515958715992044873197618973439527934575401856141153468173826510989172185672727090409371198871614915276294533284055966653053012364369296059399989289462712561972756662524991892449868287053729754555196476986090690519231806608837278133488686920253432574451808964708590831574200363517203569486037958703699656660931989297896146150377265199077650207063887438164225918956511935726696047665908538644934261544631844745417287628238163249871925096026786966451325458802674190649308745651686837377124361251381387947853664971930459459355848609922854712672585688107289085928744678493104942890625572128922809792145131404984043016840505072244933841119529882449807262989605821266826127974754339885267692751099128562516591574654919620105506944307542217182138828906221282021817017480594888177137645625785128671424506614462078319164252220010963565476848820390323449161374195742372427874003343433472126996494343915574987630321431886312506165329418342237489799283516502477226745680576664794939920290321729544653331297937436020665975166704959207380942578028887701522912645522885580573920738790183419577872216764077864777318507601314975866523229726004802998335515825387853813586464864602167530632563218824688866946165868742096701713314397927543042111091805595045180550319295011784926014464611807915254757425907074412420511314959850245462287333731410517837935707374676820078460167684973985733896229647990797602116762508480918100871124682594078866124899471027467338338787999704899893783837707661109192452629971924323743726973602143294458625485843262750974406062450915988788875542016284357833827531633682049349950408719917329184725237371269479121936284468007070920367162238111300365930589983946735869747805721853013285876170642486502625070808212361511611041765736990488978613291496928319945214658398142123326449672922715730199842148503397682014702196931959633466929600173158953694290602427114388834538616466762700963812765103811568404176457417757794123578364466618949900701070763572422159933426421199270345912614712240723473762329275790563351746586040719047629855044947382466902031340395181791125126078597408182275921932860120955298922511194843113376105969701552493185469405391673569716028171111552470930463108626955608876432913076546140487823923319499739466233386483515521916873618550243179993015061536657858031591559863347968818022427850262086036806842372765124701456551098075213352146589494943180179529805230851115154181226338205043310309860132617581304819723902022294059900323443039050663793234989854723305073712182986948798980124555771711925773823719135659438787793873339149582410737848612514052650840759477689226611053791634928720314864738194180966245620103489598154139157603860303011988183447818674577117202911426874476144358628221080806530882053406531914679732051680528547969416890839157442468628573638502411039682018767721188512458875543616500935891153503969812641881593179545519293873648702477583492014336998128227575368870955992292879773993190898367214001826747884319992921874249362094554115921273998919889140064198855388618475669354305422816329897829843226840124007976808112273495313379132004451145335786104836748253369177117810596424806161606737035797665135025753566530687114717268732346934590045031003191198562269192093785078689243290465238673764227887811418236126274597855899265460427747713506226672091846547864564881624941695333404577226123617727695679260966239857104243846532885493594410053935424325762710779464038290564436610626578534745231474654052810530123108652994096266208109458480004867097373517743519454865946906955565235714492289692799955906873639360232465170705660051291073388781793832328411706329416047703259051305067084188741642514771701828446170763902613085823454290232494488847697915709958080668325132670554348292885996398673080650132157345381569384943168922221833078423092077207551420742540264313594449445995542415439909021629809741830573019077552048069260530002980379691074383178992727358289210410387089189573228080097590153920677423315099261657686224434862860382164356946990912733256802426456973796265297348741488102833839612109683312934060709210553234256451323009583658130824461629083583311642763776594452201122895049694307312895523201013120909895646887577369007992145292580475283074615336442634367142674063008543400749513837729626908552009358759494976281831572288177428670070168985470248530728493210212869407601288131076587545801595892255244451482883480367537823649015593055202453415769663142352053468629516517561054285375102078415409740921200645765455611356422571079258125439165447306621014130984929270026354112288581781152141437327667754221545776085561294583767041091659326797414843408596070833875899487780956148583590728279510675334746112994276467206536241180242849557481547994428324846675329797166496186478453539499549922939438116821437320194509187028586029850561773401165814391025665139497159022988310100373074861598060864037563208375074193034980472492308339276898798251010065353642204429911972415967793864980689739890396138809927676512922663290718998559277050307371029436902019018951090405285478478969672901224233456139313029889132535332813938156494723578321288198072818988020352831210187307296060584240934439973696519874488948077035355944016853038061312736652066589115929094075763091715919665307632263661034349174599395257507376448426125765298101221683710974074258652363843880628106839570369380728867793568741226354641448123944948298232949659457879562076116365836378649732327347250322805335797849526899759947987455619386278925637982077802050032294909019688419892847724696804171803174218474105045383423288690256080899728998176843757929395757946392495428255589780469797705266667448065616784481142354314193346191454960278336746356683202216987770951273926680780638862520251724104620465080364929237631128360582592055927688431525307028060295140275912846674757107576817021090386739221427778749196652504461436237939061812661415632894875487379564452254273309558501962127445102010785009299714871274713420590058617833540711801674942116061170485505207170164739813497385025213614030012270860127578902828214146045402792503428920299273340270579000971401806655049231643775618076295076828707758940422564466078211733263943802071650493961326188826289886081619427305097303771300614711760910543164819947847551598041498243448066273380520831006251290530218734616399818739829388997030033354615511875649744023818783899787605123127142524483768436558744514618018302262890237493645161824143309148055578789072522672267028913248916889681834772300522441568184116926046616748216382054424815251911072530252697389034359946034757568261709958173657722772539357261659029192021006885069782743375169470142539708953875613292736527682422183274889365479938046320419474172190555677028550012016823954572171585393025189450341176959543904300446769076300605377489798168229502412647289162936206036109720933875930608253637581938641095648766011730775683202158492300705858362033179400659041749331610123412297187793229480735157076736492066075720396057462132730092270888303590851012526963408513175538453678181944484246323230292883059211901651044251861941793313284559357476428450800799195338791966512239070930148513454604021305492015749727653758532936953751485650716049742567568006168737277199792640512172416519015075484909415226467868965638159745502519811280864219449411261169354552002804111450876804850357704983966351065365432985842101443923786688921222030226287209246673322984564772249560219189247874984556846847645721427010960677659196650200847076894475946320172040828999094346943946594169994227197620769613909930584083084925206142822974462936819539144170788184064169982273651147445760102247287932747120282759404997630708995669206893414332615823481824915611076667550759249653755775402890843038136885862872685106587276122020313546683162670458421429090125799647297652880880440330792169627421165511033329817158981028048801543276441111574431958093191873765852325108734477677526234159906071840029274493762495922803579150595195338612220659912892790613569592453003719890317159062173377291188963749383218280689109015438571688583399700908467419518399640135494739735265872522748998634776093450934780905833196115488236108497513467625178247309350235778578032384306806225766507926696398640553708671216160791632339579943856838425725199957106831034946923970378411317870409334469154224640544795761362566008048357691312302386382054703603384901965450908787870174453584568468388463789028761113649419927288381911709728102023592780706205694436191502471638610293376693946925231327655591355228535461698832461668150426689886808682046071759790485956957515222749942992053852667758343217351602465895201213274259990525498383558206208013844914977612812312758097343936082746285100847150391965565832706109088701692784239569937790888495305322129911707236498073112540226363649866276635435451931079998417342014822218745107301040647927486176270439923632785928030904982578956107148621423749162865724749833662216718417890287247507815514731722443344317175022013930638986409251742122169005944962899681994475516153758605885869732278763997342403523042559604013129613904371714589388558839653864214618444752374614445853954180012908395321742100298590385453448308506480784428037211924955023344101853135142791506014515700389700442928457785763962258062806412683125889315995373572238287369295421630784281619043686300262603603029067063995952621806006849107628039121001403317553049647746038782590056187180620394594416235290418587463636024052901584880998653176775376944703003226337400866619908702003259351194988604131128385906448851485513315963985750334662480780853668756599930498530635094435727981182899797739476173406790912231208100555010026032335802572612677846464515769829621664824985872219047944930944600584247207109462318159530365686954901913782322481709419742138025723976058343760442117561735767451598927285171929296769814605070057197165350828513765745214808042303620548148404149360409608759678950399903777489160896781316711950110205361402832822779239007458093565308801649157212156440703401427880774703639786511157232932998110254877812049556604370161227615508840175577601015322866571233574481774257254589309560311293424546889362051748122758698617396403910292241590040334376056351172212796009493126832353778585100413788601644738003573657442421539419491147289126755293025647091676970282743817787067993177015034460986573984737061938802966915542165328178438361968446004444127005476459493205277789204452058971323628400190453338704072369430302461038180315353302399997868008921089348590519611227767906131000073579334356674022219785769564347669507370899720054625852649676346095484082841739126838946127300203421618824062578824881411787120137980659037492908455648917856483780497544038115901227454512866364321178440630420919224633486276023930549927966372012500867489926232210695504986949379391680930575175722040464130416769781518990245933053235758097260543533515384618031776100427372535073918113191111124489999041349757375759875719398682062249690510749011416677844837963631796768792919768002716874211802990305930621502012358379282992850593872865543018847483772611535414121248691893072104711048506233188559368368306153075911312338275473116253241222690388901315478935832513947023695878743273644091703147044889347448828663258575870115703148486120030986590808538034270916221847448161025016847998451196952724522601746730229782939188545102970857038292897234557231701565025472261526329259805685938884644629998121257168493307394831295490124289224836961219592027024892090879861680226059585879848922407996524063253992747275434538758660885371835820174515506928114358054420570644912217752352663718429405826067631370216911932711553712802499389331621176122745230594614455140317743882297135608607276993802234159292168281814240289963365820809153317055689428060264243337647337420879946330054939923653114368830270758212713185097870754164759442236686659030136686814488940219723777424177064231576706386755534326976760709421673434183716092696011627866419070082896711071051730570012906924156501408068605090546009970402007678073621284978961458631682969542103870936891308237798675447358452579862305580038354408480564694678781067943836022070596933482200124546881920329548878336568831621840048836229142551747804502002387392164759417951548336036941274072423149413626358502735216611388467578324921870663481517717989840788279548212630490100920986483352612313158543176954183182955694624011829640587800044130701672555216090116524453185458830328131234895104453070868251256440568985684045969279865745584350267664020331746569046041759218376379635112318005706461159953584776293693013121469838190661731161766775938861328729872261881100189438254531810560980686126912767039902368771521184591058855692766071106330381775575544543863096287631287079811966104924444022092150783976814735561749337302557757742956387612264119090680335734193270941661240794576754816561293481592204308178691995589003468839298231554655086148272407266309774517575603720655481967961103486106525826710111018247362058640929854792423017402323121263824339344478751333038612136689802307948729434916117283233326019902641658052132699171474801142660913976097503303323743023112973604032615280502730628606319822894353165308578612467839748056747699266221022771175572651434849293049786049105461908985044671228029896188649162833684622650858772512090780622238214991919088385381000750242492551163587456558426998056704554258687384029433833022540668070632079477899252063767005842641047603063246667401942442480872260470269301131603833799345861047627592269250938152257956581952929774557338435164430350188041978791785471690644887543764174647881883161904139204564330189641611071048132767394745897852708527596204932421140558323434649345622720064124607305331973814714345117684064390816488317596428139309565792439074826189515192292823841691978114958133882876805208056252328928378883926706011712161421472333099583998875045342468497835010448592787951786866076866940308269829342018820660056012486616554973574869909547018753714647705669288366269028795114096176531644137735685291169476560617908236070397614167411251554111248745032607125219906599909656924793324383844308527030257938461934829673202653829835712308233026849777039046420014136081276379558466633387189505888175643625518324844269647394190925413450855516137012404322015489292402162982339314176549996567125199675136380629356239220651859476143351282936391098426616886211127737009273231218959891095872354763021857042839992526055194303611598022842880454684333644944936501612666890619294875737035649515562393446938279745342791648096110183809161506733838878818121041702857072651528796626794842874969903790290896854023112248215628431549005910886186457733801753936850109544071881892720331969570148957330102554315486440999960086963701954994661532055820439681676772064049080350271429349452195919764125169717901160978782190548645576552740576312951451876464049117377530958754284100583767140368481126387169119030204043244789042262579958097856047014490047966958157059724072447346923898204990079855728208854584159189333437138908025831409000461578186614282903415655808735364686200229920665061927644218707169815244909429997899394935649606711139339432850595863919312896598366749635899593063276779159530007438028555637318907072078599689713444284927004790978763893632715652106244081531099135629982079700900774689166854955208122400084060837950919864331569450601601702600980077168038733212841590742205685381603258868993801352166814531758211480120203610650309765950855724110843638575086256066204567550876353892825063045868964788917002801144034579933638848921935824461053684909588706364745649471822227204815446340535879687378448731452140892423957777307441562294471734387013607964911974033935553591500570118220746021397612614146553236596329152908662031340369341835002274087478132290971490646259305836635090743946748350379327805572940705070660423278073038370131512833663928385430393872057367385387455383301971991389152137458363284094335083675689826496144717562505671377620521672379192806023864545993544944122822984395933587165156967661222525947285747266744090291641276541267313991143581347140790301704766682118548670527693398654403814501124157752274747091998825063822768788866047136389141190711404607705936961052806696594306091041234069867184717218488715662497042660669141368187956136801064172072792090837990434733283796083898077289976988017402278019692519430459074059580557646980436796465642236361552497697783434880077464437815602900754811407469022962662173655583984641928799456679329764843525665338991811579644182640225785255165124984423614496914012744515631030519555203413426975886361313339464638862678781374389671063215072795846343938595179608374136052437992765002679406478053099882079347866023089442890088920358314956769378295445560590718464012673088345715784462526055384726212065182904651703343018149448934980809432138365785808504291184475643414842222421986884406666370017845478608647065665949235333812504826127813222108895821198553778150252723361765782563505210614162497039351012038006775187139559637508875900082901648682254608250255486156590695494839370574716840418339660551573452977947720722271626794642442674989151195088060743593501904507115814998811880421527688588571384177851726192895515047988301475253987501313456542693563835102470608611921271875778779316807640780517981021478797001048624587856691689368936371804020586732029485076926852714075434627082804161866897742775341955008974177304850496823286640536691646967670284606277476459117527428363242372944482703026704520062939732621220789616786688530720939837205274287037289846625930414262141097600410541667553143856930082861483752973962626023032408082057303101404158420867204818520712336393438264524380911777665647412982719403065119510132646779047250009967413987311638643903165844242480989446581208526837142494090259040694292204219789228665983215782702024495370758969576480437679880752452131705708466130187141828517005855518558366475158522497310707152039034070621339233282923295591640846313675110082621560761102670339370492096682662956983440698898144098422144647713970798216019699779548851525553908010377420922298261897927105501289809408618576192696376332704371516592748341369291162788479447612154153418429151252319331462677632172073264161187249842265526930334934001395746038672716529964709466941244468797048527631501880886754150607258714118491993879497589694916287752081803201943068017275856557446001843679472845931707179757139549476336287279017465185904920499871317521993170999426327424114858969760647252196018548589395011805372104547819880949168603826058350088843542331322609373109878216786127899266218232453582684451818634526556783578031928433032147761189639780287133692032721594796524377994508455542656018225203387831199706521327756768498702663204405806675708585604529768341424948905223820027522770605632681282732424544934173460807577799208160221034432813937211691572925158114777719489255482319592188662184037247159732284352875357250129159886009936866075169129650929229384533942061095465549986327900587900950770179337294646371902306696008822298155060826606646957103844631427194882358365930856475277822951705174358470645140893079113761084677254685123303085465521772978264722910513125420909485134691885698270748734497757984168968682492408074358172968624996338543320540271703677972584275607584589062803107326281983096922549249549559363038320083272172909116109051129008607135517380909354790156444768456930595859931522028595029986575426111909743348301297359158057368514636642465929339006597908528931555525855307478619468779636411793190967189776008881481216602486778795808749372450119873879588046567106038256106321628812240427039046210489151270737062711650602395032662439840392640514553587249098209291256435597134440014585104515375932473232758859715246365726393617562541735455275186763698693114402166475910806482825063461098059895282332037610416333180811496640034724174331893753295071716108588736916113146235114074129434061242508436847068862175929865677167355383950641603640096750903990833120914725210516671394639574104753773282262128375385559255138577838990030869289066521942013939175423942786827971920024658329657666584898957250881589839648441115957416870829769157250441460108273436299722970210444354681544548653946501894428316962383969747117326274772627317923979308093442778321449585445558143744398609744796950537999252124364911003658603035728557608994686541303820054851398147228923824852874173715756235279101841667789572439236693895746034799211830081531572141678711797902280601938630455417580880328869709065715049507441508173115898588867126058676018944102145681220398935591053619635609714867651779991503378580880484201713517954694974200312641542204016077467088795460109157313113063345971631459880615055709833920667068708373415641898577237022636702344440241880766065505882824819072785415497935462330153018298533783393145148779000708085018573975789230001055765044359045401325810567108478276738226976309714046086540104051509788436924764713215286391849870714389177452124998951871965299682257831761293428364346770789829149478688000631224783689915867933336674469533428733039425359098807858308283996547224706853229506476588121214203261728836365743260378590460928956006108506727487714177947473694821644538174737614698606441327894046010090441528102234602258978252694330385176967726153593253507722027110826542650699645675350747690161037859502839765291859184504677227693153330196066492947617977138702871105442231409322162205193625452317768483523724640132493494527050846474683793529521480562178982886281090644515046569930372952080299144933886942463866117037814762557421759571360364115806380130876483686670310989153982619728406386126459822706741554032774016362181640518839235687430047765327615620146060562279967926053396155727236824496990114097828210159814757834784445796690457047860922157438915611034449187100638988070795983779348417214325476843292612169404442186461747964735814621451387885619782810292186906100687912035754969086063468333846843912583371097303976929945125792664087327100469993969958932332220014508934054254752193727839864964744535221498074830646697945300568487646602828059963634226340408332313781026161700720794866209562225065444005911778408024415955991804290700089474572667144087594107773639883471807254713955515141260543560475215887409926755238726926019983031767193500629079780991516932164808005387468430124420150721842191629901838160288426856899249763449327934526671059612920679247176291219303975926359353882550989425236965254936044742395678045317406182111633446757481290752794695168318470847752313120442957827906098080866898156624699528533446314980398670912499300370158837982369043380505568565046926880408494667640321367112267798308400958207041835703974389545446947468465076040714969401239184170196017407639119527563990931263116813824372033411946117872316980886614083815123914920538020638072529132522760271056293674407339896790710668223852299788624070895090224066022600431931950596395305079647231707587513277048957289036773202798113532071819553289174623512463478007425239077063299576589601262899082651993393811010588622637548329301839310174834726448609261716094277499175429004671505623441738691778916620931139444869109193638033865500135574865991471689090926000326312631704808629317357639849062727813621102532107200668223902162892069434662102104478962022723679874642451487131702256855358305264587428528995276471460026961036967101282456817364136701494320670548329828826840944188952484774012367605900791239349455579784750764670611527715610903905730193887793254087720364863837890270498490981170694839840424769788956978085288887579050786857263507569639301952711497724444712504697658496156211484002123796773618288259462444029514481407362455419293628937771498190897744795318037680889104110134093046644249252123104409053959661280665261478438725236171366787241428163585736674914111871639699416754324752425040825933820076134604052683167203635488260551474248428276112849254617875583443682799117588973885871708070945587502630228827406383486546811458516771000242678899985381461012411394230445444491957991510588839054650701559881671447045113765957961868165175474543564764235141532193213752053002501356621606323982774414832022564421623853224135653126940811484522443552408441785464180572195000189141395476551125084215552266552944782552228690904169266419077571620547611307842082981354762437890127408318715509819965571309449537728500548661059210376506115771756990868455428512348572028737331189958449471124993409702159054408173708722113712253946135348863718503463579733612990011605219691971838641380486564159189096100091478155045286146408977492006677158109448686809857501980996753140015444721266559111464415791284155872098829467245797982411221458961526459192391243665414553446045515547291773356372686900785503445327413695003607733865553245876839534406906577871208950049702148877111817488171044663124792531098439735588674214060593506985479562596207736192811727495179670600965396203605763136342637636068248661386049632828465121688235050459213087621521171275665645644185337402727043095894860564908839755991302764601046586332743765940216600974233467748846073416148106752422911091076965037599456024404377140750320406002234513234020375250965531271316665689954603061647463308298941684584703663287815618305488982304013603831989991103214500611762240857401441776843811976978337412889007521648021758687242018051815191615762909708996765835518404548159049725118971786904865377124721510937073817779746251745423678210278764680894293320311606508559067637192586425176064562577830912479470171549186083286769218963110004619466032538634393501158868974317301578265324794854012229817547859703662281503830949168888009704891825211573010647132291597815144144014500485865211465036627181833749148602186347495672586423553678629696076311363467026791223699504836502893975566041159452179779022711307167870491030690329796238188402789681761064389847713401926998341551598405989929764871601655402755620052361952293598921754442110142593584039442518455177614644049568704399220960797409660198570676031601529453575330616222668159767260670342443296160873253048375075001036313030477849929741813696672761083078346743758186200868208750207371428816614176696242288572709663845131952792082736964045983937110840974111009706448692793812685516898650836389142878678530168362997750724878994413444081446481559614218407022554452706328982064871966348925372054538324885678449058852641085993829301215049049035505620928098641094975274652394588102404367036016514880048157105781287250339646763142317221664641253550155212247684572963393197222191967390928708335313605572101842728681267220827895995740751031763278906090750526089501090135450731586443368710800067362205293749949028911514065855663456876426414256227162888191828388717307950466540239785186391530343583142160295924746198915888717039511985422113850229888050183888916436746989404204369141598416098136486285959154233156716348609893870096830562968282232622213207677473804275602734515087260600429931499043879489162924386495695040984297197059727374970627613734801816706590440128948543199116118673997150839319995580095159656702296317421607170910388373117209826572840634470328359475679070830643822518521330407271009866808188607533029991741110091279938664248586748126804057991466427070387397570391670799962846074014861540668102747578503503017100781075531475484903454024955552401532665758559688995798561713343925034370250002505217065767376818757105759453216649665215165950887324869470907944278468028364087397126293675132423947508251192230691311606944291268919646093539567440073346976616452980982139864153171258456451465072311664536825040143735001143759961424766263219837621203143335920998407106554852277597328689979695210157396574450198922254375032464947810522323097061604674723600132351576272503649133159008672034413913252044980106248556184934630783348111303451282191491945614656308854656413119198005327401632876424591263266719354090886620844746894415254158805887095942735201762786929414857565699216464327184675556357281786847194714077844932286129594055875815025257320073365117326120610775208572029230340930371551032987030398069421260566763732537530890998233519502083453108702999362394301037200087808325262970430759741897988683026996821702976207076869091123251319921146408204102874036234375696773881942192662440178096096637201219506787736974516855194710131448608787473696353108295820201147982976188178059263915206037701023471300665970236993482170471527175046311809481958117252750575534790205997476140543099348257259207139320711062419130517902206822223073513408883570591529157507596732843933252320028441429303753511900487663480833627925292274832859122091529394687206399898973109218696275039065543015420197952202793016130530776973081846077695641365321963968518459035004505278492549946432715026722845526096442597758399213038543474393990740874800192257342072720207265804121913347275793878977678453396153440207492649035619239520236268779006636496137582653765446552001027523481172996080168812770194514284704591099816621885400390638122726575859854123750332649902326828913237110170885495361844374914131015426292714505525104681345065174493502432413053404100226374046692862894792592505250682757858635859965364855243954640956145614870053992356045471792558328451413462169885491635008542520597288189924434190287780736467844642322368305248181749193132692960091820788175678682403973590940664358268763486551752413491272775524202223862981931484358348560012815308698276810626214596976961747279195745700398710493169742114610477239317332990152241507231450289369845595427849599112671477826202040994157171660661874747409403262286874047336637463382107823398673370504256661368825576474417988074566531793657726327002777833525438042442962936656200868328469761377480511882641574027436763889381381504973860021525080603227154044721114580153466890094266314186729897532754008045348151333348298961465938449004243768109222532250002342777154697964832450975241058884383853422021579023042640788938566492529020410756297887216781284106150282566421013892963485790376271486971284442105899885679892808001233416101303004075186728121054825611436445289442916099799430642685025869743281165560966127858248428717633904498285585744022562051368939762568230755823508314516172147496712367511080192148746725964430424046277460190640951782565739116938256372630338761469688390491391986195486722587663183421884132629882944807561597544329414374140542543646880920804175030516907481702448213001960404423820288440209727536543806168415857396856879450612957243006735815694446911799626886468413416078597246305292588586351714108665825354929468701106770947666548726045999592137466065885533945644104213781991775751284049346620506420338629878524054599244074900046998722993932798116773224870158591360790557766885955015959669110135723890221907245495625102594963148473148705251947937058450319013603072288103739286464257232692008771388509217467341402268334647609512222373435067565173266270735028759583426320716284372430614066199054016645501646026768870870559919464184567964141914242902681185714495443547527054929756233731398453550361433934139430433756673235133856650046985645193926653491373397336556059332595008304522100756519871451276445540648394628478959004587899231235017900902790912548797707043714520299941977017877441626675625638500441148702433285796055452734319898978993130520549159808024516267428609430628961358555639098249811947676809310508689161219123911263316544070358517163577253019426928143294809484948728336206689737685862717607244867205426470072635649983667043381927230884577734346146877996146965403907942870754323121623121071960115862226565179848706076963155738205637121316686532043501017285116664672263980331566469573519820371857477947122172856122378456419572373435843753661924547725040912185979470285023695754011602999256050170498209573477054741126405833056052393711551421411277640271102117932409875978185056058984615128567968921217979322937564180719196452602915636049267476804426326822508046737732885058655381843384964313744974326542039734608334210878221028916714915139419457951069368789206435632096049785214983965350317083187588606382437274795612700674662009702623019283431468281940850817688233923219128051924486885764638449676429176836822848813496091553043338525308285335498141070774955977510853933496635849056018383377902866551722332327322484844259741960702462312032598338383430716834950357070264826604296296926800495372817712083368170864530110406085129787477788135161699310385937750870812175704663990782932678161012851754613471573446592785536918950713743213312256252729447051979623242130981568431352085551914533483533898221415116718201181266431498020973620998843835317368354497162283920323379506114295060732732283930478748573596110092717066206105929605640081724095882565349442394628186420200431189572253454703706248241639717615794981354086325872088742647628667411470862950373251526161481423309987212302913591873983607792477822671593607790746347076720354618569783661842545262152733150286802739082667771729460623546650486760421565516476954144758936929255795175722430475414479425697547113843725811161431393172284338850821159296805625431031656593659342710898939174340597888848868645982929270126382891250997565812256369771603839252324372386310429460812849693981722921708104366786061352679741476954213350341328893323560268907690405786714635791302682573622648064035033438221782676839794869632075628016425663467655688281146384882739993322697761934145026627801369006090328640858226254313930520526290384253418766143294390378575517489620009691515630612577495726881220578357165293209956237603690313198681910438577345697921120802990416114617933729887309081590353610442166131327309213045870801866560442560089203128943244314815132089937773356284489488193516508140739157538704607315433365855890460536027483531854486078528852324271972005294841533417506567927435110232333954541393404152859483070664106642011296014088382141832224676936340831807588955786897932798552895484073030893441157715553619443947948380604341140051296316065478225210453445486657267677229753042783116409198693850246049937998791845079459157974635814259064151438363071863741519487331815182367333929247125884535817415206764878685167827427781676135420297905361439561707461448861832691647809961446853105747897061350338377902815259314795940906862957661899188014083761999484265697944511244121237883801075021558160193177402100236025132908824333118398921882335622383504502633514890942300471521469038587813330097060261765657693205179764312150944307447842601390310240567557611133339045513767164354224582970199266848579022059322668634819154190854053183398915805191423783986075336243636481051864787226083251763546390762752123262471798254588798105328095825245581393789788842084223372528002825119912330058365341494402547683243629206687647174714956071418123711094806085009695656824204033034262412359042538611204379007885235252812387754310560814274172813190351800419131530936096519130628490029409095797178921169913431510987722653107976516007005671227895586289105027161828445873592853250254782752103518226780738835840929232665263476094286246320959090338486870047096028247061183860015145253815031609271421159308913989881489146337472550026341950689214660465636470636102523634628853684922024674035543764279733261490259792808593663158249450131566235149021061838665819334006907945932496165266050745621010615774997044197451667737886122160511482379015188111589413411891666416825297832110708425186793669526519469510574821975630326545404760514591265595922876306943090539254897346725218828431789862868805413431898056766379566165991284062145613750433547755617939092143406301503652385743983712484991144738213042335588623212998205047184010434310156725720686239080034198011112271748354186878028163885959189706608641925933545740974018561220553513994972052492445960458276785605808524281712161052461149757477213202398809665705918363982916543139226498168655832999496334487017859422067302540043287273312461225050345701543949699698284773161997405206199268987466924192800937542820460520479899667432003368347592649808437169076481152827481596742475233480159043566104390070465151924450001872232726077855990530054967945696041526862839819002729250002292853967062755374258528164040233344100341284102271305616021303189224786620460737165143658967084510748827150023649200699801396431653650705878981624814539965360655683110461242979299117502201707817847192944197826882965239610538878287322032598032329517302645210140337818812941137980562060806924230978792893321571203610809188558938471344697234728786907342316150010704536381943228175023418120297689534905464548307893583801761977949092652658654345636523788548128588860815483893130083524805783716465110931714327956070202814920916797379207288573534655456466875519765046670710829378498610124984503391849537141178634734728253712032189503686204152600956039628337393771482983037766883698523220938633661793654689063225971638281115800458607711970970177502579292600805879873255053057672716322022255218482134390315538001342363049821428113989562120032460136903291273548439610642098591617022822287174786052477781732520389335439514547271510951535311616038827459237138926668423105192613094865887889872202114655004245264340062678387686844841017101593521647662398783698285445303150557182217771430968129422405035182274565702355929582025962952231834013585890416869961451815416782871421481166489473875428757841097908636988806182239244039031291507989488410111237806659031454644071530948079432217971968959861853118477293890511435713634008825575130260032488537182499968922618250259244297116298172371781209976289356251821823812206205026200490644386636883340677854695081385844828803812847104392744351832560650756836046612992739638652437462935644753857597857557605537906528299894355052884565792661479649720557028423535132216027882452356571109684973820283302807262742531623001584288083710871640141514365996238955871529152034792616885404393476119195180352818711452704728226383368680128870216471492739114447160222603213254357018198211515823692147459370936776488539689062555254799722224148131111204464428341123639654332557712748266342431847733352421452130497231086822138865114984167966423279418596155119527390188218462791132491918502176702542001441891593556304014425593723690751153642229123120162217969089535382656242052454439177504984634934709816452205610829911697008887478869866778938502482286783300560823094686612977265418075590508616346124992074273774897208093085918522322500751061597372330256954049112973261510440856908086940229671013240596495517422376005852428854942726428149923740292008915134301998905000069954830668140836113763964623788278912420561679778664293477838216242577137031837305643719541546897432547792173211312606706962633795348865314714889173390639359224002042931788235694920178330104558860824521967874622940975202094363029956230886060475666013353189583452941507969024430780108731747994659567423284463822979375735319473810948559709166891442551363436903202855461732110344812392219830754225652156921183159002374806790580050630172640123252189185370898314246727182924332922382643131132167703517264364851235735062449496458833934657902407260350839918759016918998580641543503132603882857897723772849131496765796710801248413582110956947061468197633910620261654164604204795797078259110103409806538526308168757222719802950035366568140953292471921284386014807200764820015160404528914354542888612364512682199245509702748198376400207223942810859344838762893839882607165165237278445808183478848174979046161645027450112676113580448611066247153162938624807540001520452033800623590831515141154542446176089247721226189841919408221493351015577300119444059008280933337067876148854564270745328337999950076035002363563301052681097554857596385103945276206839576645273574175387319888239973464486706765670760961300146325903247453748863965778675347507532775347881048570258647143788074933093586288073762857936411904722992390484094794434877082763344234157900421131292458140749065056220990171602553916152623996881322855867306078525804001716248580379373519954414885099707784970005364198414850984495216154034343921446288639948362570641333423089981617645822959441793380983571283609735227280098524073754857315533665646519963436047117519517046380803074220507774426769700500440441480729357741842694302812162247628719269169918882997426582442692841549229776741690299322554102020791618697057643288638329411504545767042158845150481687584193092129330293677213109747148809550667584568974010290692568999743536124883251593265008637448978453759554396910485816235875884194613378850340249507770375024191888436709602381483015370330148228100446858235107983329055831875694386015287264828772973788305033188129870110051931607995683770183074429104988333845236986820517614405818498941829463769097434333934764506089172897486777454082695322745823514502994488090718915791644018958268515591759286024530172025039822504085166992516740259389941531110785895297663038445190819097063979786899631277483621939635068987146335217093286669834986619828977040083863911293138241224567246135390571113913490695514521975577963250089579228211452170981643884857313252934997713572005337657843426774254732268967040590967792349008250005993147742975615122925219065878653271611920066668285488285523527220956038416571493701274045520925984586329752546481499538454322668572455907866020353706700745821599447071232515554805347995142007360829305902554547846009277250781525317697113739531580770005854327609300700664083744265513656165003508218598818997871059138258769887503908014624109761531880957076490121575588495057834659879060785901787233384119270323243375963533240086080601796782904978155206410021339285527947735512123061336665039709856911765175226259406639054296847736196933941859143877802016046226466294433926183383852085832798705047869189904624820814738301873362270374174947700342356115163124896510741416733734155923735824785884667085346248215621077986204295304814201687100183550359849480985531231560891441908881224936863569856257661377724231974112147814019443406200729404955063850242928237403382818423700270098428668610866879632894068602213722469746587754344260086175400617613412922484442440683262152625060358781882389021358399116166975272674203441195671743342145076688000307224788993986179505390097469289345873886877907928458958782196252968743897850083992490734322036410617313252554800180973671443233591610737931662619687262111810266003499804708994310279621444026906517083602687861647731704815781990694952554921780298072319886774598932873139863193930026324619139475703028326910012180271848828115160787467375356759695314536267400086140930532679352191451082633034884222683567334238544882649301289270210310310046628177008574359203808991317464582103859222336450394911696909562714033557785686946297688971832794526018618289796890673970680233922246886313804808769514542019209977922979294112654365727200463305512246469557342377189194197725495384833522003234030329475111009689736365701465950311369227651379442991703029239703736733384017226557872076212246716368445352846811897455144760076370056675038071254570935878932334267866171442469781147968573197785239576737748647112757623850694776545635977461485669098656239043576910974835388768578645001126205564513307946019780643486552873097808087663587598388194219131568948420833400134328310801241644009695534512645298082554248746451729471040149667995363482096412885633838333872721379068974689597046208575079948050262223104077714755570092203065570875539078932329687690099104945159631461694475102218330855086670317080133908491955283227559982807516890851291069234637422545570794689846175418027890550700826269089414232364665543758667478891155574469433480331029123065703021140413746896436817050442751895137498803779383940670403287739974077823452058659344675538081351141062010980043887032766139274099490167375006316959772083015925779024532719343645156609475907202319368823783962021697517936026960645468116353232163283730026751508889491863849325534300634854623804832159566629508930267601692542108644848886363124166033916272866087241372092723406350179623897809109900000703719838384487911392205284244418847563309350002644933396222922593857978381670015649043105840178220150275336774896530840265477157444790515232533925080717234563127820203567907896121149554532928819905600272424829398881961091683300810018883621366053107483351502649203969586262503478003977006414626645397888531302577301243761302609142697447341087538515956678931047459872404250448514868912385595267381564117844966075911608606703536538644852284823131981334981809702977458243262874236490392863792999619110342341376516050520183863165548316617554732516983318949075811482353838472526545884562810755185427099293967227743273453091750390882467856939877977187223479646429600242179652048789676179104752744923526417449895616694029651035782117979065617863414552892404334002462369653254288712631132289531712012233887922928028165275343021731333177599879549302159123593586857537806863686166869010973335988422475056850809103881514421488513913199011728207748366171903202740644000763622633556304693949807405540075068707345391961992285014957081124514790798114566915311344704489998506186113701510715340887740379937694882415849564987287660116977735798196829687475599063951106261242365039362845654286128817072108197049625709322518145469062090375464727285177552175676511298603862485528835507251908047683828354063182415131414800021723936507706170005463617207416137001687271772956671259462231600632173389267619375673701640857297375638310162136398079813342384562297726837684181598972966936398575528139293402159847625719513147065050358619950362430953246597572676018658284604637197639721054143751755052109975059298121991602413964742706975689211624254069338591829750567145772624072876642975618432190461691298200622476958184601745375784955079158187648300987001018628769183217845632914484487908992000833830448213830366038958898856301971144944954259897752592639221682845054047309740673804062424083060059133277991394785906205080888783197520180412503754735412032334613510357660933440062913214899953076711018249680366667384671037273090002935367940511968208883917619243738776485369584169490134711708538294161060344158701514990166768950097617923148823549643347337625390482791915600601426493680453810022217500473427264465128044991231498899352386647286040474776931716427399414178728831903281013825308155570192610959218700013485729456272860007293891046513054946034345620059789641831092873067121484342265828560368710983693565431335853133744528845678326549074996433187310735918750783812438252919997218910154273860879613560382359302314411640661935727866799317343372258975458866605814974344135543742182556418304861138331522919084096494698152668681467236703042325209018468508581555569628906306999247536810080080153620210886117183913155403946186348856434679345411194327922101156921185244927549778244356336194126974127707888015017602984061628972712438243842340294528386950926092371985600827920731839051682001029952138562648281201953885509252737534805748167487046435119090927566022181238456167906319147839159994734492842250277737779930497684861975204862965285195572807217583988961413939589503218849490104152793876067052423198903037833289244959179116920349112492607686443065062424140525252915788298080934361488570520923697030989619561778665713314965737685489684128326914911919433080604723647547228875816416242228308021628622730240662249251236019501163551573301930806962094412136521913108069922368817768524164767191883242763981432351825422929384435724037774056450392040971538976038927637929338384228010054346751841044940450576045871387131546954883770401413385760291473056757631062078436342412026510273035900849107570142797077557967838560711604816856810616046011901945156871171842516448528480103187769415383801255194411560077324106913547114815315833772592459186304492819185523989767623004312700285431019209200114877169799656091964060487288265811680155987848109486359717781336370973957402889578193307976583493076351736129287018248205355623367015135247779473078893041991025384102687046413867587029949456390323488398424694891220407853727481451479434798844442741746904452823176627752655250457121905399298225684395397641749412286627798114273284691429265959827063044155641639225892035180546606155419194762590412598081336725722340556200598634550851726854231724055038436550242012439350278914670615546349870874077150257396773286489307428247732511288909904337696255525898391390353431860289097650368321493958558843314999707406688815626028468590078380940477508605170285750717766028330873045362027331330058163493416706365613115989489832232611956661776858886565226632738421543126168826778196303580958441313146068519003590792523779140172019627769866257770930953230011890104366609975711957361710923983567077074907086616019298444860436489845626241477414712419764516883300919816328638294445742003453021512769040200185270231522251408626652762348113695483745857028167168673645185472046851704497724177498875286810047625581418788853251667416919183779700053055534741784063650963272837666275908117331215138708942948343749303722170905524396103487442761445482635242710750051419797505702048225668646576389831369275394763408584394358333537484297356333197669729051994784694522244153754938741452538095266835661819853756369775738168915751880570309280781191437852030489870222390232102370951253062029776248971236615070268281835941133147871277432208069186299133502718515875292851196042468094577803044025862595597475648624155426068610596246101374852251419126988763603772095031352200717458658403410194717667330980104976441372245406765933197103727501911525233556410378898514977012070546871045643582059168163500547635582019505490092303900317038493504156438265775565409422517933824889893760616305531977921877119468280010345262311375333061884320775978165243563525359266721910600249035295292908783486861951657699059581641029242098764919005840815603013016370463008559557497770232025673343261607155277852684267153956116568887373846551378295802158956020691924203004502299371353235104166275058452200597993658956084396825309613688669773244996556171976206907157188959578127457966458465947158292025565822057220110986430964566042940573372780750650681682311866720965912209548128079564079299368526455362141438195178889302882179663903302344778489162532734756477240717887169439452746399547479923705589927982281083659421090575047855216013826513880728833604735829490980048529693546631504131850415155287627083962681224689173884402532308304351826426889559080851327373739348605731426659107217920783161044220330406632470794174124881794038983085132332161555700825769475277787662662582589503062932128598385268288322235640235305794333126533346010268630714828914839679056220355557968808227463112007321681097894276757945886432162183405719938477124743265787612396725987021850531365448147581369318653616587933053137510677235732103488021232114346994520117095664685001506291861448445908339545943861466992460489546302672684092815212410721309870015724427562665407415175778019955872050074717778925849333181065434039030279342900664338088123283680904649402445119237202142764627898899747793627438099011091921769023594049250815258605849297196933053116486959306818618151347540638328713782569663756126863734178501734894577793288686505221157435741367905474819448397670682783088198492834671264579279654951748059877167453940907269186803997828723727882977982091834777129220373960027296016881524900681301451567644460810809706463758744016685375014987203984061555157187782316833915489898017928070993915884327869326625604951429417863453656631589945924187377526271729505302533450946619857552526076282496486718656503647788496968436955289563590588850422154947253045125046756955500735047541288863695292359028673352791427337734765740110484209686775570321553093965275420592476144427495740112281986198874232583522633120392248203901308208534027781182276880184587139846119439335935215283940497421919871726908172947780195018976228690946703522101932275844505191797546215027383401807581864967638559601608357216438334158138811819916915106740373196369476943241207106943399342043433367633929495669106238143658230281193982641688582907791278138802010936476636221555865252273062419379663337473268706905557362768954408755581026487611964641540732625535807785249780521414657474348415743805881483611779765502542440129371023695229499114228412880185867343760705215392836984962436279920955237835337795160964636555682978006097091402408405885582135230031374544110810343552487565288639211861329224502327957143330475638787110932861079722789030721883697560293508397699355390364621888903067286907650545672791475799099571666842938485132548341513814023177847865295971686579660932031769660094798051801375352420657384684845301901635851440435159240352483847721877551486424200258902727409071656277423090227070138408898659790741157559525211252009075267013343444821796354058656392711485338362391666593558940405783693132243728791168587046844171206358515469405253836497922929226155908578732855783832898673309355270641433371484528897102637314681442652778304970620927945137592053084798112817390071904410714924202407224014673044753090131030669174268795236834342849004546994590156799359655176209118979662424038760603142232270968248879061642986031844630119711476972641821489696507015226440464668768533180303693006106770343667975176548576871425728350109101067967593215575244476264500603951224205926961552468961457205087743669057165023992017180427210086798539018475557717816348399880136889947714789058178923670898129598846979000456052909693265213161178281485801938705529758253924119276484214437833932831843126014371420741126293686506016466728314948052230929025492069861915631980433099569860441482741417327755629426591244296884707915403080145519862081521604415437481285800861501840245751603140540815235367700475287157376786381122219445265026334407380912133092577029480525432033536137592859017458206725008556097891701058298148546433674675382241904553794611762775383932934377444693281926535293623901722950046274581310721143596414504642385029605991345658876669620315229794842260368051378461199040405740559259386322153342687967148866680323471348479832265027736230947044041322021258083451856069196817332691032700856585636331448030912500629367177493557115895241107669049520686950765522991781097209169124247240341927431637074452065174565395339851798147258778613679897360903620909271555041275266570233582623606781179756892024056745334119058620989649632877159120050950687817693646520913677726838963389155831853130057745839133731810815738060173194150946491217782720192030920454592425263201337175010992210016523874573355922891316273118642550005156255692586467356893888036615323103596595271409145843475720806628710747686804710882036135889584470160572907040992667728243996199631911604325057279585537423021252862186200387771168064098647452622815080285446104131891374357047153941235241325130070995180318483792055287112403284181462293369448462624731742304334566793602884126755053353492750175575786352625890689658102933398388108347584693306352779143622143929897260447119516085204525522052377840697637341373002443737726903100252307767658515278481425040143780052896515440275948282988734019931880618864022037051257074259552962319594760448289022894365901621499857620104200377712866739812873859900371558261953460965556703709533003648026257111656054292141903200849556267519151002909644249995111152579258292877283166876951711621205428012525973493228076152522475768150030834025324481498845379066867787170255610249418971314548220955107837515735164820782960123145537444482375116149453801682442258362620433424418514873604460395993910477686201589775498477268908829094539527387720385597471053558782009938008119939439876104265159111320164014075010486591985067118115839911751501302799165214978580525002291174241318342808869072682937708636783244158831689563151835438849845022365529123851481388876205862645010909714227982163803026363655914703414079270926979720801555041424530162513194391231390942619293808043088971319521645439599731508438300719652482749452136477144454835836910447549811494408451830858231430148945604645918871141156025259427880943285466508207725932453715894447798857352981603718926858333859739842565313106000569669351813365948483975799231795799460429024075302674407182806322962725498774708300601880474278181056414366949002340092296509322335734087127787746082449563081604993130494780421412843107016726680667712693175526035163881740347186670784100656692312372359447753850800098527781919181302872469295659537951732526451042541851983931563789377200339158983011448366998617841233856245190035455970006026641643756445225330542949786518948326034265783644109414332890573316146550108294251060635042748726546184878827613589349616937653075635867185483399404832307991908719345613290166593221489031307837215174433044417261989455924807361558344883177442980454720278908417914838889694970974244142246221867728646716936124375597475159261293532684704640393106912768908884691853462915329452032282337834194110172261479621691219172526726365196720305362932014043551532133620473812397530064582621569475724263025253141545853845924153082708318992380106928441493160861094339203580239813637749928274290864508159053482627807210093423038436785855974042715706991104842903387040884201774308709613881810389068789074346364663500746775847880713792034913075372403491841691819966427110728473836790803254518330198101013671728983675793270819133006742750705575656978773063563282279083889329477881142736916749573488420170545451716917354754224693925292853035993131008976968261319759765164574884789532613619435454418529447866713395885326548820262865190096658428473404747111957899342349881842313775258151507002647076246767071124085887767108596767495440187746993139601196543906417824501078497465715364041837088775641269543374862225362091017259674425165381904767252450533608710348394449955923147519344587993579502047426792963768191051750677805748563866030525863031346189077282702678617756927032772877484300277183210069361475970730913655567014957831807098083649716088555480692660539192894864704655797679779273765936411199700115123278205786171892776742956486685016214877103138892131909332618723693201242591087301134156834446975297407019532459190053982976329833110866592030416736461487292386563197166243385937801240081127539049006965761664478565893736731759501709863517549270387057860659587060410609603527618978473631826673350341957146282172984852264714318788064586121147940281949486565444524041410108715031144730944028226192393228610864430402796965379967909840195232842229791273354480770488616603227346866911226852652601878809341919558134140023874426453793108077749820674840901815233294768401643413729560268930667968652574639668212771660679687189113539182891915886442287792870077420122063522777102218370507800159458603731285472950413501111294500426916676878876703767151130969938277915733435741022749211720766284655459141183019507948386923861467937137814248234570096528073165033647684637508819084642619406114126711324950942335968647076921742038349091203833519104989523009811948337490174073617806846545119005490493721360471033595470792584630367729207291553714863583602093402836011642274875721105851669175681248248603953406048085996006576528560590873820900670856635237650451321914853643050438244439097935142561701814909633061541125498947178024176892064815881387268276314825793544787563969212236123730445090442246745312517859454411862453709463637449096149502921968226597790013188561666927787976252403104536848742367744230175694896701464587483804759325729261860837148266341869700551192381844789861661431329834719955132775546694839685796449587259010690219859510668803607369290710007294898024420594218692223365754016672360176821473258679707943103741286769880243453099293732239840396664345937141255283194643410855910907696686255205136105070476737874540264906491891325155752330145109898636646031473435862682281365743546121552244570184441986607230589802232454921160647751566472488981298797059820913184514522891892377292098810653348176168374660685718593617660000845503989430759331630891525714785909374360996668698003190320508296454874871982562897367377000363370151214155874367886119627527659207316624813800881357731545479911524555923261229059044431624260686436204158681701997262074616465115684999387307800088460538541904821649294020391362376957625957222870776237431611142329331549710708757241063502768300096591322262730177692382950503046754619815181184704889944560390360764826706554505872818438640787816295440907197370889751519111702304568355693806993050569509378296176328066079473318148965185940546362700501643133000015496456764838583371249228494597279408706618306680523934100436895774632532127435966380882775853608605764256542380550230939917804413222013427069845707539281138511859087863914878600802768500758501727579935981892428538349992551431476926560733312439905986423942529088184380950797841683293658990612788829896620772822848054506893289602804498706732596654265461868995150884443588621832527799792970522129568226123091216806360434290568604765864568052818231877266475426827539918192128667786548719663408789389680738986047643471971960814336331078667201254236835405197188100338405742377406361458306237766333155288583084386498899895654845852635780134669084059395575318463731321463061512931901952303207365114508930934342941097142872059661150128297929634849340903651333577881796861035599511935811187653350174341595651722557414529966106402023001930513585278613772615428341835323008967958245015329367840236774152208987267856210774742573291228388309672226441255660871827663378490531856809208485625193341022939445429608507959933686519184582785648694383911997258075761829637043653083775457998826415423610338626128274816591570252241105449131872360384128702780991122785798009318610433456074630587675519527381131680896741794442985204188110188833472840636570244137323020813313331872024537260592435625451518072298493027800872582870641441093979152228712111946480063294532578486135157338249734399086298083174514717918876056827249069954623762146727998518305169103096520560315801834574248550083744299846840132632901746894947598061969369710263024507194893321175646140296528284108421785218786051833778469360988519294859953039017445815509783797547186395166915153876218317175637959214322843807058446955819771050894678271393021183672102103988870752008136070506446406309779707697272536658426226654811642157163787143029096033206471732095120728232387001577275448880012021350939432968904543235155237141442388436019250703021760930337386143559524725995011870786211688692383499451504042710111912511305662304992038547668567563768988330712566634643825074944883237489983340454848886674011768583109635605443708527111316152353264152256198707310904199102468356468326325416983492234918526510589427181067809896886766446363791580627128855612212213684612204822794892563932332653536463391602682514864198343405790604906600722390630210658292455586956865680948963596883741353552593017941864511391964975379234285000124390629718766990652134823540665640740824272286969898787327829453728905792417384695174261334982787026263850619346422182570292833802012212175665503929864157937384851263439010406743684758504471383073026808752046086937596503111280023407066239605776007511370215243374870117352446291627507480522501626349659398438385182076696597809830489986570583945700292066940351942728667397446541260938656131386197602454822170203359310882459601687320551961338912524220790068699146283741972619175655662955887634530063755632492546289232704580763540562280989877203262159584374396217685195795872106987009626532052484622082634478565194739706327953456725275880134616257108523397500218960687150078826832214410637350137401200542886611384234125929653075805840065880090134637578719025789816132009206619638331388205473225080953535465285342410170463251950873128926075401879165717223666493159599346216649709658793152240645818887026504246017074944543999195742185368500204924200362368191970799450038505321061309003672073932287629645686883222020183478057850674283957508212431373071162506788730445110463620883845384117489586143884496341373621821215062136552788005909519355600012283585880645723307692098531589594635618795809061120809906794263680020727062901047485912169429535598541217710134552180427686895686579261648851746948235272617671884002254385527842832846462744374998795477642850411328525738337661270222790621101338040674552282418286828340512715444611354939314516249934226213323976885716960088841618965875047571486690406265447792532162913494229678821023561277501348237981774146444975363013321273176908289301446979184369972925034925402837277982957023723614332907359759905225189659536951050246547666444478697109342000268553414538937155504885278723242460965113853715401872011036506375436743657855719554215687570497211137305618102507284247142637138910841689829590365749747561107783357365222250537960171377613955063791474406155592988318671914231783804366508500264936424399332959965650193082391639010409384861431494361363977401158346532138222611658513882982931614309148007386169735354792244225984602642953992030261813835993962959287074447059019878419210404799636482927642317797494684057670252219110157415542713010402857198859052377553801623696344303764417879883628828181247525279095523201797546324609780857186090774514874381400801846514833503462231762531218315770133989100708097877954635279150676429759355872787486936771153222810615037138716630946861860757509891118998071028909043029442980186586603570727827183858627049053698937396208783598463582520672867023157038566534950324382662189579724067062344952217539790199825229604231353817154507372339157131873643702619460794685941813024612199034676300195666512990428707214297000903450523484754364328479871462201093375392581871107600806865927170183832770627904261877918983285329921128417183776396369226924254259676475626872038741946652567548129828296509763645582184583108201243517544026885187983404738094338432772635456639938951340689570609066550335834722897515675393081782775854496417423544650637198179189340065585921396752988067679679958199480609164759368508660925533746984620622795269277214119736405048683134040149471561647371860987302664647326242624900758231352667941340780090038766199563772514265326863292166691771760535156311021716213413753011072729824797760837217979174761307063173362096872291942600158918242547067487689089145529201084529551227037326040457679092451421730525575068152931086526321041083174223041038414151756939966546019948026517186811997279429440007350917458852425068729266595712427410410392939466517675225302625064243975329394008292267231504803707165063398085416658842403184561539456879408495290939520734920815570142328996328782499594613618422824554804801791149402835679540834740720623721837781381197937014636110635888357656831591098439563187493984314670905864912144326543028253931561652139503772854270522077596648224552749769034508875755139959830618105419957115778955998026875080028455581636326102751844173593407664638382368915738207782751452877298913935835492350697290486722028073136706158201912103558640195819104796227967591825537237562226202725781956997287655323215181852021808873040816138026940447845568771320595076770803032927786617190569320936279327025156156744109943023285316332948780604599479735897704690999247015879356342596007074292631338911360116112233000117673657794045590922701305065802275083744560995344632690894756844291165220320376828733508056628065128764471143694325767158530500684350057121050691799708013671323897477890497657271245712947113275995046753247953469851398925214572610853925018892682939490545750985079718069969682150537087606243470127435973776444500265157250574152403254501226897461812392114687469631502770160740456860153239377594570553463000232497266012540248111948061916384994622745268369019030052715629046893498100128375355615262339853210531734069921348144155056554398569014400337402737033642617739797408315571371512203022655609628701916517354609782262467197461552931423768686004566062913312655702934658132824561556054820599443071587005583462845691059388523709264457146440906935222320944264217947821187901055200484003334874163529483804994130119855047325118342329708254156428412795398358922880149170834138287363896088721914180650928986197227732997249178513702939719231619987822710052783900497992843309080679403097879579652325505933787612700374722762542753122426120835660725124173319044430644761449296158350319398129103483727459379777259158539502705861567097567028228685725171882127085499951119548554144185466729512388999818681639571286055141091157958283457681368836795091731018852637845050948900651894272662297153921835381579966938580269687419200577925072838933740496865486450676935104290305424549610221941376830049269115746663194675798737603360182534809379518483377699954958501445897418819185911383649438107357350475238684403616640649473870799015579216629587640068513445503961308528095242233912078887128940325912611030771861550505737726643521991853494187384756553712971653961071681859292573272798532269675830851080660692702531824135014204313914845284140972436788698027477687810589416360248011130462630255206198013512466400948970652786635008340727060482806710756651484561356449876164278541959461512720173495764123872726573575675966683773526207125312745954823824370981647073271557229739788787147878775247638228456997219312733079755796459075671672408422799241440464981178240560870707542358317726335535975167048865478981834433960883186482482042217086060092982373884107425226032132226948464938218831479580125893326683880345708001128481611001470077798315854058595101871125478870710382726282066672834267875662039998530105904618600584390791216645214515871004605729399301362292086245141181801224401296175230094993883055581154169749549453185225655870792384370778208176623463726603350194598472724242062524389790481447030962396236681686215731603781760809739821388802442633353486438645446957867268388808837560845429157273479700854064383186717658194565088225499069074873623174021668443516148601975366022331844332700319924319211702351082989854938898948389499862348688654837176005876997598655981399974941723552098933574241345614393445559192959075298817229504952128717863394200848796008310354691446508255722835144351449085494091990334328795088258905726234559101715720252007275005905686976945102473595521267913139474717829145336453247470333433815114336091055799724980328154914986602144627959215268053358912545176714080609073807584685820953632395128723406935665143005576728892850477026010403271562270373657285930235386586301881290977502533107037542011762858545272778291436615212247900327868516329750411648475947939770028412714783944904468176360019016259095444612565179503941329405294591842608666190245698091171214719752651154553196970211576696228535053123651670898935869018215700733699783414310707260536168349709624174839658893889826274767905049099155616281846775193167188805021389245489435178989121525923070246357441195578219832274700037984985387741081105762043440361303964617992516735435553725428534092544560909253225132297970350894403511930712451873821194204433414804956470231171714605631259514734875172275458378975822751908601240023023880294115241649740143602440627967780217573230092140343635024994430726318601480380231683815911385135147959091297455986945993609375282365396578796167798907594025829604318954154349164022677129961208639774719041528689848430929099167524373751389177756359146823135895020950514967449438963810995290721333532682060712299830680921101485336946969734751998542088319241642027886456625494349813259785322532117128572131505945248004474476507549960155894431804635591682382272195230415348708905419483056832048149587930649991313114920393276706496280074728910481897927309957136757758235056822438227162839233009665293122116135390223041419607973278686371580911956232369861652024617367568036799454225725935965179431236014195038961845984529810168863532241084998448822796355581756003654593316610996174718445907903818978264058567342900308697698383777838522305420021504409703910633642527684184808041832998614302309727813767585819767196015396654576022211747041814452454069344186434688888543767662737796611211983713260413702267934671595318027233999066297986897828092177316060879878312710383502586715001415471621677007387220588973976913422616075696590826325440433976649685770097407057415311553477196361392355151112995405855297654325503930158574994760518464405027551824175178932262252126743467525296369792326300731499744863582710883979815742557973456807512936831632346114567801022236768063549313872814542026253832164980125422931005029725968875728567283779670579113772219941421693093141479494130564115194018335078403630980035959774600210965733974583964410245530540602020388336713356935788435324916316399914600477023252089283301575567908377722578248661118860876578689462154629266186331275728582541366305068889752094024526531067061821643859673946370863375751307377349475549770613450569830306526855195502627764829748048086157145102645102162186303886758007225033868405190305594464641951172578781566117026013017628729177353850904250346150497192233017275813246905313766275196034145268589555676843967544962811262026271076155558850256778577372897632300008596679455345977864785560681935868963390592169983785255947699214362811255255391929828248845523462990861185416991929434758404571707253015296668720983981399085893038301341228625551218293809727044741810960685910559563449341792012845999595130480629955295214886444131142117963573515113909856059699673935782256938831989993692119060045350692822337266649898804944612579342735791155101576935175514606090765402966923091956494242375314207965473891979679303225760262432031440218543954654389182002413890011759830473914975653411535888311532460895347098473754941371486871359426006540168667791893600601095496563425368039737384518943173032433210712391787297492245934610543628292634467014716717987151484522303018607630164922984428842398219147021522904451727265270614613489962753161127515377602236498895648692188467731556319814873594882482183138474244181752029744001706948269333211623467599230272905034747458207867017693254800535570051339531360085336141473450175212593315056686320833780579567115260763908993955553860645567667709684635127224867185385076317763507251188493638320770618380218877907494583986642958977020620751378282694473590653601100007902510048287729302322469564494694760227925730183392168269028181506301541070742147188063646096187990024983211563489096868434529928332633536341701557962368806322324111643248300116498691275123873281208067574656265769625356591255128981017190701616427201135566574953247467071174249128670734113443414982204281061378678962802516569753625140798107547723145849890127911267767766069680869419440816961745921337076457269209394062237047692444687282185892260541311236481726729414133565854848018613005141036353547061784767360646620663614826593513738034469959216934872756528509440628692158252116290222993723925073501332670044453125081740262030486464941229665372219827916028841070647204622237814778586966152545525851062452386973823407704448096514625153658470334162355798063753108712917474070257117127143042437293715102298113304988213681931621559986440341759704738354337447120350329127187623927294371912548539068275055881205643615868427962941943075362125010539156139264842331653132447923478539348044661623481805157255734501641104007889111962256043915403313686024069411884206558342965785438866184839168259604008645234175575534136746443918291616662830400405221112941525712896750453269346620678947624696686831128503114346644570247392949761079929171925893733648924247232884360977969195023400188062683017094380995836682214044121850595432689435035142266601343964021617450573959021792537410936501334632057333670803488384343914145993555956140414481526310671903098878055380619849403712047406462123415450494444254460561361936758681786893091917319819807311822219264863780646462737221712721873044741944025574068691347097378211536730454750952764724845449137981078687056871924172322619465510600180804233922398603828743720859565475043653495135521661019484138147875330781997301568526989282772381012276328126798129530892215608119760962417807851339198575319414333546047283150918190616391956626893069694836401928702684780991815937878315632209365308931026309300285971349356051109325249909406598885557631929276932769911381606825700565153260343035326552086195540855860521864015505576632579953570868518700407800286003545439383978637791746363320296079951809180860430056100504849048176210527611394919521646588091860286280643317830547982903257538975770224486664842478854455926062104710384871160412684030376804983643156469324007968997198164568252980649284505763050676663337228875363541892551342635384654226841013774810746962415757030419018362810765834882054733405000961153263763856425765754047101912524681854224492908995789330814173870838130490099121648528626032087410602699163865299082497625783468673937185213973798805364830568097693728653668855502649718412756441929354110643253288419781883055825594725809355137520053648500692028445718439975870913229580851948487450985389529772388821807984099129991104854674276746470584337650049258704481413065275301428776117762523335374085992862870787771885935974970836643473550189953173918539258855769159104056162564557669002560987984625362346310506158343588130498665233435451712752204375975258371625955165562277236054925448071555851871315556364715087992081579350865542159238884506666837419331163178716152116469614225682147192845016060463168263139553432419044506748278017479105237965226197524629766808191096284446327890081840833964651441144898496303243289725904717491366796838653693207071113967552916770060254340045376172449315931362522750996740225801298376379787016158776817083969653141121541975114554992412848450028899138269384637552906593924556343146307128756126599830097835049162445542445477489325358430973239751617216698327062049003935745413616592171516890641226375245896432820377226121246895319543885145318874373016232020061629534815543655658409091438418291338902437498177352728997903738282736737749993082993393645820988929086584268662408961839757461652762355174045420720325322533283693523845383334488480897644514104548988398033234927906264180386132722770434693231870906888771560830472017809324995364918436537995108998118093463531693943501642672750455612504344358428220608292988320381724112986213655098192668650495751012604381855759368585021217736770420228804648647589884252995423389547224851439695093610698981871230165421084872889177976298916501525937913531954564455703001900672097976531940845924525124819685225881636094857299540567299443104311216632676216932378967007198983421483453958802684848260433606362365764581320206150796221331042412556348916437414784099819699323039541781835704818449604198310567579524440864180849912924138469558202620798421172435042027064745921451586943462650431125189890756866470376930674167674482119618102693214769506422902592263843744848224694955106826462310046344795176964228176485993839019105675108934082956229176246845790307859978732402563170101997947490803455713263228137211841108230435420508351001919665566541366972988469599948794913079759503635111972080840380769961477039662984940566371005312154335116386824751622293065608189266100946520626003437347381898979299587781747337728688010995433069990437524544912766601498987767954924204880959411205602987042418162276674166307937082734103757656076153107884746325102370231837967167320764202784821728553202877117280161041686280779265441105073995191661413601845502832312619016405665856259065590888912880688474733819188888907429492883812178438789160368083228742968902538975525742901588989580296767975873306724399503104817901532640621995042651967062943269870479744670012376620816481762043220088630913600947165052379380984272157501348573691389693477653023750867696696881950537839072476038953875290381558808041247202054625939835222404938262562481125160408570244993527298432808683717594150794526182941236652850782483697771347282058382673441584448804247473793096700961750521070568749168970744193231273408426039336502878135364667068126041549986900942822010764366960850752509739823063746637773063833977562463282632866206237922693684235577797525003799259887814522445409939343341998646213312285101220904993123605788552939843053967643227191364803229491303002002877607912024405161858347037768803509486319125173539110948695224376420594108660511264477759004573948664681595071705355806776271729238669468703979626985013114595684444338259089555517591431257839773673526083301852152897814988501280085661356142958390312467530945912702472654848906307918038001699205460616762293439023638637895752174221557751337318147244396129268955453933409670693491912454083746767887954981656860487982960248120092433800226165439342798212839099050488771289317206310668493207190302351430119411122538642462204881797914844184512244938143269095875055069066954253899190639954531208921375711035865006820115083687269624448141742186545730567396338897661934653277480197114182108837969092508987214058349258863672772746233727654763751918358646235475147036850349392845560081705218616565821956172016498574563549225975827406017553736512522996398446131435168430678733797206003850639042797205860483347099920372766162864665884501990525546910463644239664469130093649414500011602480914034758511457199931256093829934343740429986343006938764361814409237294695243844926476798913949644991248407007535266537335958387635150192936277884683841754314877708683706430212227603252112762106889598137223094179493774867534839342108417460568597618231160642214301839157855932488338902379680510591885211092345997995996475044505222049403808076883241307090757118802583099579732434397662731403417382057706323467191879870033639662265642130531929037737903105776729881747918222451796151251188424014529781953255152881238770443795623761678558357078807053940388246248413713065158405968770414971702927383343515004201258598405464648098423131839698382983408750793304889802908505406155961317902444999405178364989000218903977458246631441562564110837453368586106089729539639328577631720603171435876274842002813235280242967097347799309366579759444533056598346882896160801174928483633566473499850270815689746541992676319057309697129042838634023677873664845238042337450336779727490364753406464388580062261147654702078979450091377449521733749243943678450727454865875500725299427610567209827484508339089151211519754551546165903445544793038585636644881148513261181424047895412017010415334679398317671249312915589891795978122850629371226140996072713399840333642091683731877156824145577052955864204973690224268504699966308972111277918617275769634932025706292379704610737129362782860771262910638358193473486005757542398632645573991642317642430773806594769446149493975266503819732603338602587182278239754837613266860599856459082522601716466034780132160325226511738939792787734248102953494102785665550860750706751307208136269544608822056254988028427703562295459290788550259489841620163081200041725270547398294392949910199383068422631459270808830018492756046976371547966494178092239520752425226236568210655553197975523410043807912851008069942130501196991307709349856311501846201091853258435345210300980698204860772161785147310278540386538312425502526864467615359400577118096932659823297801354334720961557813522187109617287451682982541916041377166977993947436650613561192275183600500917434433755651427296541409164451157006527184955833672648578915163333415391003623062975742819551658280318133968381738835529190042533655878274334818014317316389533138766668826888492105663410416630763156754208932277556239916794587644974124091158593027642716030358480304618261495707565728773721768093860268184425428621701278137892158724717340750638840236228339985362966241792852459660652978114720620832702013498622164450460846929234419497957063458207734276639648700410069064924974039793250783555638933409487030156407718001034750666911448758577456323645834686977173288250480881193131157696563123556901007271438445215675445095975384703849805158080744547075008444714383733307880841470418106436388025571325899843714897278883688229093326095292884631674619966727984736714179400846597378314075710353820586248737728933400476791940658959183214932160682154694291963320334655136131368472946883630034010038615116680732213659128910762880534674633567053861553728641864071544704616662311094195418781956710976168945327160961591832331266699657487200372772637196550784770616974372381564910549826184427435648475044006148835403891892618861849704279308455548798562720114772445354027473899549290973764153870824031601232484756425605076727966259973676480313702015563559282520957304421205534226050140462100566406111983122430754368177020925127507239790020144275783145981773706440931338490073049329494861745632654135312375397873257567554283532176159809599154967187896598562404554222299705169526636775704300197909419871421607857363506346194942075658784073585808686952626308758708688865899684607661835857685187831285861215727386258261592122342892350782033056981497381069438947236082348581532101513076781669866260838665092314230784653611098418213201171198933823789027055890234084498024109728088224507099352649733381035362622587840395265981210503763248266287776344401438585681125930252680511341049310869368052468897084148987640339141434265135588979224892605163788629134633035289657110183697935702188327930864470649530678274466420294157070707226840566008965578979548714642669199655676411110379912521060340008892650120374246945830871480285204839930274546926263645464306063118634569157630153622789138388392102972735002884140887764703206376610028518259702129412603346923956439909766258318480495588479043575709373825959516636447465615431360872066958368681064632721858607903940950055404005914336363685590280578859324905600030453520229165500735822292817043722576146657560997004056593239804215481193820741240395928782476404354115193303582800531788555875983301936900686261684389329628794231442628614959965444425468884376232232996127770637323192716541080010421525748450708886330155180641980890655953575158625761166915354462647724513776841811414072647022485246071840165806687945811801273395156754006340601393393034195506921995355833148468778749110037117948488169960618442482764267101155423501358343069303827742577871940435693566332078477573403844855029793982126445379872209416668442169953827368883387203984502065786646187998023363098268246339337797903825565329001044011331711897245476461004810663268524667230508823852467957935820037666778556429681498896651066040961916698135437621362081507032267221119156056148033625267153080412077874267352184627497807528304921649202550813368521210826549978446117359295985912173746125911925230121878386741486793094121803909461985534569808161320914524149039685959841870597887417068937539306844691987341830280356649907660150158646730800993345082428954971821037954383394105485351380585815954295746302283646623099321092792493627007284082584243671139907221104748688411738283886205046864287012788102921775591083994920898856327326377558062374804430587295978528203757326444585839902191806398722779999127059958982088849734974737671029681950736099932052764025185316974683973769390046121085424937823002530660794835932985485659126366296132549921122605787637181158248103197950253243518429266879784585235973567875273613313849648949465802607396960391811867625581797525580511784900794870289940852606428949066023072196539816177406924149251560673932825948095113621136658151934514080979175362085397242928422190600194376014443106273571946232284648472392940262549618844669644781905160722784463875980770711275738638420042564729030954627073069938947043286478190393740422755037209775079613697881689694920602926913520533739844903534688382363370147923742759413585300402416905506054360371465143633445528954617930312296610825322184093651683314912685407829216868543041856021425501982486938092610035161416700222211096721426188245703239592455590833115998959956003455617834313706078884651693453066844010802049801376014651074594522566116505239000144429478824155561294423173569404572153933419192317648048731155811001032674004505123287887154870958135433761884641304097520656246770788060080989424036560124848486581609949884015076545071602958955712489760373509878629311771200185981007216541314183885756043877987406908753991672341842480102861975970838099238718795340212444167917450040375190020467710539899440624518738006888776135552294518201310888198204316299169897479341753656727804431242726359536354829335323624743533595015406845134326824893322038781815369192300367257047266901554173781894946700409170106741409149002312999083708993776693798467900196514474322200939836781550782340281639520692341742523572538470609799040027564896552960763229195949567629990962802878160307025324575094612927495497824479831703604840691916746041496184396343659507526904674731104106294416330236805103519286369971287984316794059435158333941444342679598418404913637663785634063068588571151957141411339080130731405146639407563975910133657878970420502874055647947292566692680278203417277873678603886318292718242164916426995741402107364467622356714606680238604810586807555241200743934866668292115128869390694073177197253060371251056892012344156332878186695841619396386294734857754536220639365937651521477908309859886002421854524229649052426514381618679730408831124036761069518587619028542944358478792149965852659659512744145161160658113139829534211090414860669133894576127832134125954792613585687770401607847168927411028112816555124159420560849132105208549784391604868132855138913072702722892716027987295093812918567978294727990760767802160608920151907779899104254309156617275356500788377437196167404386783476454843824027054440734700293947819698775816135076551594745924225813972499038572008003905119159544540837394255358659778299679447046949240386534639425676752088054623421190880574868285382297712578934035099109371507830416085297160176998817040973269998329648227958709231845769281472995110638653858883613699732892953509665417945785408644151548621926238927885413434165514502774361740384030349235915418948343493523399453267810677657118721422331786400390113502025016700033490602047336021460249131164743182611498662637418882554725489550046392986902353031305472318966639701586696985244944857125142063144989528539739080563058408969335629208967371028210955611115933143115068786063590314911623100816956148577798002569484945091592733796841949469099401688696421365064742445730223025422209437308168770981721443460192900004131711834208039110249571659374125432418835358699161029418953957860875827122180567252458707439415822981247513292364230614054149859858128301163649299025828678940487344297329679151890067922410548507822036109238615669679859124497082992495702137029314064872011286875002165547464168469938910745309426669841901028077972993805067738464472015891422361431291900079470613891187861441266863494065274079315991845176774780950330930042663884929392854135422643523606696766714625727933598098642831165557130038284779520843570452121875102361248245336436767534268390964034667234059535116181028434902235361360865327041716681140582030190904995273697117447531874257874434275431612372713828222921676324271655057222177181097645158910962902235805639107219755725144975348629127099571490122345646214794759802557287349238089759578525014640437684973028426949070886302008618447924836176552648105145415068282103821769839637338562769671658520340699252033672303233817023446355661757418216054919591419245452660460257290572412871446561001289438081918214851449832633996606841336124065256810622165293022757067088996517492099460128073581382005839101362408419945626123623805240105710658255622391249963824596347055373040571603494255768443665462624848316648444903270676871640168282944188144314808411678878244845747517274951288794094774012331955454138438331601371816471768502137332017486490446483826387128035490266590449785961433012549047258382836602901685150267629393721211341107624579748876553047922192928167375967835876589497989707320110955128595105206040788068926660080461161144438179390255231739186280739397489761707129812254989840707056058134239536464157099353529606385193128490430603967418783695010972898324148696685032137067203053033061933277045889446332724821707370969526460023696131465115674425304214441118366979561805106742807698059931613324882274105112656152107643251309582582339517650886460810451137677108993520759960716311728790758614281125681890441597302194279039932569915203351962361260734623721043290545401380015004947136634398440877709375473515612711146626252969295565431472133051160803792198951093989759825661412734019123241100050916107054415454573705090495198395692552460111563483752599524261285130590034609381705926536954246013967984364847097059850242616490194262387073120014450015067761517769737725370642550033459677766654937582998339341991620602388440249080119424216523944414809728973187887616747889771788533858674879369125782998211719124480129495107425245775473890662672152503810505767841784425309666535328305175870108366929057652779759978173751897346968374276300649096707426724473135359183746711413278360627215295820723889398232337398371269152427610645491412662198382210476537866275678758110827876019784492006948173573924489166081071637791603502979052963038235456299154056712085977614246489478714929226166370390223821758387167221970904929399045215093629784190243833360658791390413077140305033525061305579948406764260049035051860422280813036491275595516891967057839297205312551588924024196017295487376799238052285350498422335910029213010107303557167600182408962881332882526164186884836306243442896996918326121258758476395695097245528810413730279531674638152560867068929581415865706515615445134685248708550008968079806245255511250852725303834291129661541285286424874750750210060277062897282821277107208440299618361217879585669178305646530326677426764466889101686410224533551222669830483840950342468718013245431651922985396910607648253651874327210796148191539208218432412988386774058786909388446457023120100929536895944375640745518186420733173251689899006132164868092223981444783359508419189938423362098498920352701445798721996880715591647118505617200802977864979219376860873239822915727357385610710577645924044570866449342172251957065345311023450158319474247304134873364137055262388457301273243973187994180725664112336637920750657845057845146732491522073122321545380240235503386771440840685952724490449850666632820731020929725968082948335321169728613646576915656498939924343525354550669195453776856724793936290990662884965181282365128483821988128512326658971478349303206205871087480897760484315742204399157591443073796875764657682461589234299484047225011323447265223507736682549840604768823752573723174340343355865674925313854343319098162574207672570178004181329689893480912127023929527106933253126702176019142046665826502854600232633758706549574983758040458572918025052617199130666672563584067172965641056187363455042273900935103774268213602425183247511566365793894012188441853515098764524493858838985200844995445301765171628129998676297626762609052285784730672352334371725752224237180567633445702590973763070465187875472657082947202983896933197229593668400179099005276363295888812647340900124599182684967379379679045982368892976811804272648279599951622243553696649399981202723262119514995539377071744831054735275472402025979253423855515165088178419718922737678239201469919252645385894964214379134842436069595390046822420456885107474867995944320288888428503007723752327916234526430096813603177330524807325013520041171109422926504685797618435585364006042286681289430088151284334539198759389750791966684024320325230544775199768821320041943931519097398739306179880950394160158175426548686383323119556622244512288841983124241191280713472876937692137889883276399325119320669015674218568027288328180194083416848209225761691960360061121536099276418236976931848103921161173331949218690023563345441271359734903672957020079481780987252438876915037133591672424999676293896448260504413513781862577161256568306529575982491224589861276726056489016721693979007853019517399928246051488071176437566076983774704347841848096948552198622771340564435344155589886136555062985247671875985755142758387884414870321336038497459233033531690946130361753009673521478315532049876090306305013361094414319696088266176146025309950509721317878774801716609159962820544393077555214309164629281376635668914934729652918653052279656704679302946447306143339440312507613971561192877559271028625361639557822899979229315963246932276341681218350181642471504987660570814550861811672851764756405699384285096631277469476786246287020456039657397019581337704167724784970737214398858590550158240948397096862726647596608278906298242678376706239353774393463008607704379169573583358169060210095795981296711617918382795851828242117695242982247438779262014083170420617768370966178938081953657094312963262114337263276251679790691530311857274546672367725083825579877266808927683352263814674707405782861931270837204793001748414769068936953743176725107315299237311079043805677705426477722629331691670486505635837100740985111321433175435676711209651418432288297404988895141803015938142025031208033814894426581219364900253285149586512074416670028294903943685241950261412822379927665076134096653575298483872544985376930314560890961829269473287956736969043126565510205041223800452347483814605519952008624582157922863843307920941975446952217654029183997662267899073906899302606328417666661741678668708061334207280300874688616104761640916024296660558385405574058502892000435061889444675756300485703225332353086416031139401183652750559338813426824750687415027120537582691604357773131195658333877738075433575427493091571125220195778939832881988504357340000513189882167233167012929596094927356984435836905856509852014736492691649046656799418965549092294581309282661430323431194760566422966992069791726650560825830420533108031350528790104225955886854747263495312183963743809787654243275093005871533379043848696655586891965252473198793788708800111514078946730386779820461505190456103376789138192043573536802001031334583473478817015133894682806403941961067731484863411025881725204687202479836126782128795134735566362354044012842755793269855085062474098126080380935188200985011511871625787604665056786998310270147656481682406492476724008929662891119513109586747292348313411705851907569123775559923941228768517593092408392897412307877235710104342255187692969662338272103839548671353606778955389352023865871347290480311812154714120045742657094638490152467381707882474174199664363814428762190020819543632298305267350194594208008516294623266123550669194736586298474061564439803382943021186434980269944656337660460254823642480468955201882041313768103550598358115269718947564225962719171635031567261330172848847881252584838573213333143834291437095780454453601973991778043555271556764533818538074742796955221620591919638971846178142681042179827831810392154473033506889979613397244609281962912164238913670916729274020969432632229347888219078682155646666737818640046255309213489150991967323945179684322504702483474926836404216163786998880595085536482425883496835103917465229182224274657152808322394307146982776636299373155889719033809594073842816191515564921511955463688220867539882297700697516841660639845093744173298539812203349747641532784335967980805074704309103727685320971254485457967062267042589918211419529831976850616228909736188296410026175435056494311728449603515711282207233332123587108490274810439826075069327227799843539824146489866627069239690697613409198632465332448562189461694899000222194080228701062964728048320526705979141865865452773882649254178343705624852645539223715231178019350178285458720072199551483900060879825601759775785725585735843931683650260807909722859052589429060569420682187021048767821130385023376357922374931649427864214407809442070838700652905933222647435594585731097455526494663146731069230742352951296309736446217999410707237030177738729565305181800222039533451463853867084768159406153383128806505979509797698957669360844695734211390064244382024247746456894614034291508132337358322487319644179889989495342910875367234291209390092589184334234098517118047536913311525864547500471757239125810840996315307841924690701710433779786082522711822557166711052778100925709974563580809947206994754332505106544911883454843528996989262522385437496653945566915202400296363416634039899771071013301824503835199140176698308819699175369921099678464952072985506948856682341536700804178528912967310986512355851188820079834469594818324865013407336493811888193097310851359815813249272100644281390208213938548433032159724959653484970141268898062353561248050867074907383293635511433379506815021518853382406687135116213488252068299921416769423830896108466362482863281387707276115971840394113921020266638839298298262106369480008166052670360372506650429126386853680385687227069212772866214745884362741113651108098030488663652317223644105371855878576485219788500838547933982877661337540593157119298592521353055150287272530042511099262028372899864156635336912448091022011739355008137565860900390766670537842585703110314084880392951385356864074800265870154359072966758510562868401542128511008079403635604829444929176359516098390114059198120629290921593160708051053277962021954907372159324880147696627696700241461203296711936535364857080154455626784821706362517182016665926136105635638215612524063451241453209756174252061073136506360845883186178996717475969515287903579119333142033264067098157601414308021739611437097092666991992745228835186238935892632162913476830927921406393795408170870140058733210635440232840136790590310282641992958962289463653666205711979150280832409748535785034608188951869750814964358367983832500423326600059327702633784632312376394680614814622370960794995246011278888921898856554315638544345224341793927731419796891530224215056225945112895254279495786561187587240631936302563369306218686821923888935076875824957885430118316362799555928582457889347299157756260131319253409810538390674060324112724455015190271393103759802993817489603815489274921867182377668550569108497399381162729441431492932154383825421193278663468891376563464289555380740331421465177354363588558040223819454819651612271117719872689531449428905511078179589201338701101075097142837552420965464001076213311920501429544684682013370684290985368095040427518366570068149296054497608598569305234646947800870304971720483889617276572146311668952039851261665371480669801584118066409319006292805321651852728005088815370993333409174484687242782646378451325464376048679746867254987273326325237386216130370535329849616525316755666582301304822080823153555587805593858876562946097279392603587856419836672212694410004762061085154099100216984492589681283863857880789115946541479220426567557284776704055589190941987060214080937114574312582240114253578913205725073075398682022552364926284834113927083511800535758023393163842864257220901966122326326483710535432158371401966446377523069692593366612567728364047129930590046209234319265921377900598823464633396372393055374393375077740196112771076728105011684943117376567175754578083046347882989243669872414164661586240284382545907436948410780142445330525605773648415873474154180122420393572761816832640072357780831575671252458589521106862601695416807127384818950348118315189897618973596830743932851290977863925447809077316842014632944629771662156017111597313622830151269324675586958310314056478751063427389556981745746436055117417887623174302763160828294020938710931699713787143225551064011691968259059397027766913026673952524583380406716423008918243409219885907236453259964493057386485830892003929984380550495137140495076119570107685271075529847463978370339228304224874995896311011505668566013487256639552564054915357691544720331093172424833872873361577236939369109688139619989692471897656883872884803240446577821077581472757444294722703205668028289433313027252118945689838344203508253128263224655129180670338124696864198328501379306270082677046214825519407141084759312350437813266965557749353357071761551911887566631705808959612741509432046641842420616100396605781221475737262266198126217492023349756944110295327102277972194552068788575235627539927061967372330635510055775360097169329101383691549960678046917089789067287503186942910565278154421005695386450751839152396004371195027681571347808513235093117169632285415660390326021390194837999859322232148052466582460328689571420676513226052575992192663255829162210272904443999480333384472739625994921360931035772495325409783978317361992155308778720060977692031354621673733820796374010707362536443767430582855732414638545624853492148283761130231054543144673949599118334337004935976960999094026236284997029759631491239563278469771001565207787715132017990076858759834431008476094616010491909971350635041632363349162529423074960273651747815046863032952762777986548300936218962556275149568030615724202645908400176843236431002282249274526828537772831952793375408811074857259806649783356665715542458871698097613613023907736382181922167809636517065544187726658338910310562481841017390769888940213525135096910404743445785906470422703852999114573330739050791416917599383569839673607699427669603817275579708715720123894053722004886188656602032316718943810429777619259149994776434648973816956386282030502606479802345536826749862458904284890068630801830883203277408680157448576333257162130108242253223352350077114129242993886993230455230771883941755468094506101053769422334872495191922602434035310284133344382045975894825274571931760831240181526566190967894498165890181283743446401851480873081942993481373136668491804743776440856992554679277000708519406671215068678108718884063769703882402789274310267290392592012463856305484050847847289885869501956968082559112362729955678926377244840098496645439351780271903360741150861709469210340811225310088078361167513377260432593316228316125458659633472042799424058674237701202544570497544178225087830046633940950303970000083483566687814168689675115944245574791175732091366711235042502439974494989291930680541786796153997145165182020032908491915703685149087627291791810367768367280263377429059770794485431331156178697936204558049006917556356409447491738663894749492486360092541004203412134233880700558152275167994027597705866437117318444816251372047734037553367308952242343428329381795381405961050032597048377841500680953265515211048450402243067795912119110864037964686598666014961329255474164795473979158633349866896392303134318544969998679318492478960284039632788808849226310768272072393581201115071977239028891973104450405726004940586836889782504290434723378048923382239362386663735103129225088058724135761990751445261988545496562277488736786302061900921765692557769786735294427359206037532527220683173545919961276185621169386209290820606685700134395106230679432557769336365457389301895641885424335712268736217161015567242666492192528372396924912169874460148127212967327087638351471462021954769484254658617313318832523894738222273936527848176866873662599561327503754844017274261701812102952624603696496497730948851015844431951521893563634918261473975156228264008539314854280544617612849985681092862098313604840174582881426107622953263034956562670568562978154121913716655122502075970757977793467832501233606504391796203801925845964118049055263428443879677894590075777718246084617918103492778306716532272823109749411018122693474805669525146787936230996943216641207573769697612968404861472081048029713886439865060155849140828156724307038954192792463948897859067258491314269166487173025060134293030610022785189060527737985701793958206522438110471595574049503875372711605363308283023457461859478331322760478334829097474090921785409540219308716240657667485048037967591540869922485363365037346381333410833137304631675094325970170146572088779276995772755627810391532101104015780053249829910080697953414242433777930800001870589539470631131357897193431221181962409450561120530345090560414964490390581756707440403725992164759486911577038216722989624925797710460544573642538082821126658063035159342613041859634816574153822254988211812714136204572432647593225060915637274021028348577899998953045454255653236483823433746146778769147791864048444566898716346472625594888497133394907466831429216418696676064527598711212478991307856853877942402469001456246514790609192626193182317851277144668491934354012666395109268917047461615266751498547731779147610374802388845085805623662372970776501710563359656355930571690962506538445603234402315142131133421455091074425645984638874916536577652393728584361987665670851395628610390534785154153609811512367918505320741292916111376092668277952818779686848644084436064477742510058068526654144017547248117905723185789727462309862898673557446509227156898348277002054034581157498059755937924335406989494284844633514038368787712968118119473137666064968293214791819284837527758254579651597954632227239837540190305708865692233490386258710077464329490219457297028170418849597318549568003606429971177865725111794356673417575165528977116268185430764338466912223660390893862641545749015812219387974627652134616460912073217093180793708644121575561505013964453578470240217357991854531850706175458795372415542551342144473057766384591127664290683142984697396228810368351115011432368383518343532420750367182186299479992051372984188302130020583444279818782674722981187250300078282188967843451779322619403817567600908968647075603602610569667379204455132358751513071170299219179735433571289278425348790184255334888247400221428976800572853423220512294554963293203376048947212156309938756982625349942742030977089835349072047341480080087053125613103944177907443717984851865718784980758813985442837015843104402626978869138334616010743131596834082546052086436312524254571971386005995863220159658172119134176876192340103155638197279392513797414507528266000693114503064449449027980151556476107185021922030332013935861396961734659028360502586998408626809692047419212142533771311366735572906922248587931143359730335011249067326712559334262105368857752955039908121143506215692160625940043524981855029649815085934656905068500872377733905639168738681562728539238595102892998745092097744977146145603718885318065212705972323669735499581159484388433289635832832107391885232835307663459877724841032129657810383367320201265958552034349478236479728107979225350260796648962003445737671539518566037861924920207589927655205804251295301225380820437443226266549507982944844887035605402542474478895255873704629577174085144964387798870239356581845816169686970777985987267057601154875753066901348655173123291843306645238922912224562899638730543612192978725615649306012363716963253433344485494026235159504346736301752605409931785386949935845336482419127313801827884305528753855047942821909969012589711114516952424801526997611018201843987937088734642964267240279645352716531986335154869363047106343033046802241055611078003877806250566650618930896087960297798113712325665467605530771707517169934024297717683079675610152024432851094082397695073227968665362901044292550072580877581912050289607801053366546450515451238214396425877608147122558984414815299568169204997861089081400085199926766083285095854723503451202394631498285654838009224240239796026865852855891337373750587458329440507958797262019293692310957314228593575994728658491644530626242676887842490180146874798025801912822653012968057731256731812735354426970422771792204471414984348326022691344209227888653953254175605591436365442281082311616419947634416084493187839059844081266316435199677516169525755969470678798320832826487323213309833026323215519685099303891353605991059712875806444852951259855060819187156414331817400638369779926838980592436961372392218803813778751393239187930718688847897005958309490631789043073150727548121724877388410375285886772299130739430460258734804658445705447366645858181941882375315627389809292977005693545911362262217018107293901026842039227211110243492229735055579925355358615489458001115803887899312370302953283195294968214580999314462955503392441844042687151907456295428898394517958888911320139070675164193247738027009557138184166671051391665741860254802674404246315903126832934947469237054365714573162991067676009825036518016797816768493103101478039324106346127293010513024001396692755358407693328016099118421861842416918425644796081658829575758739841490797179250796845037878455561750815218425802576486098379043218102260311277345038952487623656593157507598197224385071602053278037545915648153804673616015974684540251213730654544508103690889919075858727935686597953468723061847238809467703590835188774846529107328643182365914272927019253409541186983107192069883876087035883327426651199175881012213333257702297177750836075825595936842823534301663746835155542062159981982242483487549604055702485190355830008290682412490242711616670259682203457357396458937007057625810544870291655431758157547907177002374916028595435289665941540191775460039105202362543620243425681049356245577393846667357760901899731914486950548145082532656847359287143393782082267300816052547065946764020227552404336935564490654096702895764686460504574851289749635686880913992195417056331900299031285264301183477810375715132202793733013648959751566378630814742083089130258975337120091607914640743805645538235947772641268736811369728122021175565976199385626823264577452102962706472308289922633416879479660903795688047905392748908185609211780728532906048854170442712223663939621821832854632882074365053038146266169124758587330283780531586027326132042854259380025176874861738623375629344102507572575657283620116448707390302270865909338923081123920580141108125359714370076039484512486438922698875425009798080660580936060803338205019516890596509691203376256431398273374155356462587793389110612194974335756699472050732617588147953225891835765584522439098791817137301608899527793472758756895518883851487384829947846874014503236617022406569764718922019150689136373294233830218877192243317084340915282619658125098790098714312318783190722165460011372776173980239634380947142843485653787923817415420664310277207976663505400261529457634420434699971629269154420535653495629476927280851672502163222211842573396352164701977324584390975528566497419877063306644192990321506453839705289071073535273963489859123469303280811584521963491017790533604064301714989798204472657427634572735141693680186374901009860374327084538329533843212044025808652599982174009640930535876315381106963748937172328967532094313562847329420016605455467176753401175245089703710615707182821504190767706594466125163509180974004655372270455287453027516809444612696372272013452400681459034828293598063636984542978150462202855536248974959323580193144207422754076084351120930252946352599468820507178060174503682396410637731585423148215530093140253195005797656585701478437773719052579969836432840229963548940407492778524128899996333553972550791328934995239832797187485331360750180677475815189497045715706405431981249726283672170904765296716716628223405241392502740114012503521288745661806220276251304098695181487657606413677125571707366651828545591861329785130301603402895732609599328076049537881241015260544284303369183507435412705040132711448697905428182030797577241800572521171591458907552180760873725011000263203015670822986010532682480656403600249057289328430016164533514708108055810581977381190006768330576606705293405499915473597560023840742428905323658018693676426955238833031943721796280743210191893339868173939937508025523969642858746240488150446864484125806915246180975685002024735104614684429981991932692343431870909361306660375962333677283334815706567158316239951883929122733008092396383116112565795287727647153605937589114371264932875878157282941042156087454086737735781073663964146222253487918345826886021231193410723449407490166905950595227752180542399305734192829119486665461693414627871096412063163535446967362182369923251607398273285900479841295950951664111765092231460720694789564522785634037651214528508599158762831756201258505969775992339229402247558754686507122091013881407118613240749240335986226266240814739559140911678516739707584522685232248678524180469630044444194262302739454800476949177730659718809596614837130469036593491318693667186592017367443999885886005028120196408007749812741281873779464051864112808939314512382131127931258922266374832831473099900476037897052086964296650603221190672065945437097536034615723201494324774394828738377787769627372152194466597486072542325388264008288723728845912222336990470919252720732441260989790457619710859649848583293966111934999414494279685044264578691201561090097208611994619758512631980349573224614840505844395001263607499538063690959636297312821889110356076740884190144028089265276052679783990989445012181863835940403005958695934383185211384928001884982150070433191905416532788671073078483274316494286276292678448600581677404110774413620800396459475454809547917090568338804693568061420052975740612089407564971853047337322112220298814223640204555270434810648636884546734799261079133656221585961029696308489255343794026733533792084669805391940546645312947372478396613033736237085701321235478681862724608907567384684059517619668387461433462292210793567696412722279511039046569769776660422136860653248098152081071027256836921065984603330184154042699726563530309911819390176002394435464179766591785156263725391181974368054306606714420751998999400234131895177730522540376443532976747758525227936864854503830545506011972019744577029170516431954769991896620623185549585212828617891399092101723280634531267792181499977520931881398623761854258228909882373107320785494596731258702796613270599090441440179312381300043690912273805134569468567244081546121981153334586821979426699724224289216592654751664101384029557542881126700628309117164572850991338722338889576764615453216630539192224949433291141328686113319636688474725828840388737161880943314258879043461109940664991673059426629518473258345103532289682218350705703376740735332862178405518734480468407989830861595916342229129485766378385387617305099485023244051932739846772132570334592461551100181151318610506404415715293716639968798901584238411923920909117111862273566952035399010723864883079385015340516400636696467332584470874829916405725240468939502809984838134286679727319758600422254457076374816813601405915430870074286103753630306427424669931274462981930359074428945237939701775927593430028025848509607553910879721158439732840079211534773475605680772422310823990076629369764025924062952533183696124283605741507629317003362279067734682019506581521317982996466001181662694909501204735577014539581911623238782460423246768692263308661346965954613379860715182739818347713679499093886912171060740693182443590402166298914889428967428016465523050200493787673372003855176687190316484890091106695986368383264240608232406877624466481705235464338203220605653461496371045146806064970823865877152546296192704288337103764634945995036644802481031613059162649509264055356504601285811917848871314611445634371441859432819130541772680094346994777850377474045604464236851224294494044510409455141974243639606818263789998580945688632192679574899998821217860749473331871183519949431641468792241811028587076585396188328072211402222691556501637719117590917112523601419334149048424012603174263294610658442059232958268470520957024058756318524871406441856818045070720278178631471199969246187927130867255416094511478415193416785161563122182670239864819498521139989513638441507550386207901208059054519979988859655986896416082798299403767897930962699053565587619435595531084492107870540580836861685695827530071124267168167769109077344244433267007191879008080416667297284125684834594177389224020895687422562480037410964058167093281334350340306475378273854315315062417069456312315628683834822326262681753959808612110151885331048813431516598263594397369196757509817703567873954539102352726950064647116091892335504189206864248942044070196994250210993123023142892168717193073308862418258607849246970247832967020463171565488217558027934846376644950364135021601680485111349054082995224035549614535033231963019688399776979674301889648547386165569015643101674899222085328344762940349964098542812278899187870925568854364070471635088676185344150139052105034292096447998972854209647801669747742906819685840238187871199257441268800089005169373811834746072902170149206209399563920319901297607859554670549062750015721811219977077789589435395623588564607133783393646289960133711683358001969756043293298962700880557479750515693088325207749005420715211205719804116339224330898855838196385995071378949567930469896246839421199318656713298482731653411799243916570394281698537595424966276162188728807778317314975552479958701197622387232251317884854724694358773929831908714659096551535550582834749963566887677429788170573890671065682732927105262059448477117419880074812042019950921678761317664058208707142234046358284395662871628574393650527148385356561068129537389048015377352622014014254118675322894959298839808922847586789825311998709125119653357924426164620326561743316063882657844420584023083101057914489285866637770071644494339289118703671442735874423854145876600253009034371079742965252152364873044732019724187990363750399355923915749279990304656170272321065407443945346080317452626673872548454840291805143415954750792008319775630351649252788506075644864125241833692259995300240964317674358029881549535736651253764467255006030169065470522134981937964704676461107835391010313836816956578419260313767999152520601865337927201365913618345548287634097685045980954821568248162908898084082011018919784124238583422919272957131112246472254899403742336046291679610014935273733271928621998816959126661967751526095717772439767783214076137940827028476182236464726216979739321250696397759293404691251849260481841581847126295227968670063649202552563709043117255567858869156415567901241072477274346463017787631440008278836863020568623150372557912134817869707234147512863032211158475057161562000664430523325843776008202034839833078348714275592084929212793667132630699769718152631474126547306777104533312018409966597873773098254903335890494265781471180570379483910780549993053522156328100002710300176654776810057982564775509945060878030649334131617292239463316218003891436353002360099773252076425379071929525893767588090515831049920399221652017909294577784512917733309579103060925625793135969133290617216760590140702760867536262992870153431811614697761959210881491369601435682920117954166836879704974580969262306548102556599113607140682511196206964191915092027773614772102966777755871687088335724743035511727015321161819029189083037543070711822485457240006623875859596976937489950608831029032953886849723276205602866700693377604926690435855931429042495993641027576481511692227798507014866307944851627377552584288059048810273193820299715110169367768154631916429326866513403652736840022610372891056289335249213370333574446891618964138949396977063565747254667142823541749545856348707279847497438860902845443060381323183013638056782333369099856041732230002941969645542548938881554368515878693624661729902881013625740001392425780486073035185488097685366735596195010652805188469193024115824550393275327339345465701696542360398170672942996900074595117143103664647426976999221698366953510749683190763257088869853486526119234149708967435219360623112001732177843902049176743053911693148023222433065204857936575593085096736412626841268488165590099897629260268088325117940882606356646838413212544821833132337120332083781824093386407074663459044729081093881345820103281452690128406585410925344293401316906355995964978808505778246224594602551237231755364674243868985540090504297935160885386580096753077518393424785072139018510801304117769099050732581223396761852349200795808368210654975665277639621613359488354984455016916425285510044827502487428656425753563710278922489824610336996009788711488648202632141526712088766563926978090530195652099819874814879191612352853388776451743615134480153882141198291558708501725404730112499407844971464190772907387570202462194577125527479873851574050767115496901721429947678751480191033850720248214328960506329941761010208708633306104546781728285541979920493620898471395448957949706315832737338119379552372826359313086119260168032628124599745773900075785410747597265473567714319830409991164996147029192429413839621017931261659347390398514429446655789916807959880268933636550186965300912006388151998049009732278859140028296708005978037706159844092268531788759931611944347410606780199753242587316511867115124277463063221282814595535630031637833840047580066119229782279303843449612187493073837063068578482098130586733170334680449123608788618337596666869196917120823930551141371437724932267051773240937258380555991445485486207017340944871619884696830879048892886400894504529217759566247516579659739153707176632895843264700042317940832292177922912785183393761598419906895636842154861405781955712502246764822027173843249498244943458338686878484143026120045184365162584645432813721890211729247698041072185658787728925687724482045185268783190926148724696587727279933215763707065112649176776261879216652223441957758055377522577089312265776909014979449936125738686192764509208098915171258423207082443813453970113250355009972735663559248831661294504017620845397914192940040692654613158687208413979020742780036777664541029120920919843330775348119893813326629048059038479477709127604116108849684759861638945843933645432673328854921555340589184974262199652953734483686428654550130319139495364626475338350202942954987978307910717833948300211858034808990076319252680058661864238500764163674091831020717477543885509874981080671194131244238419094105650266576692778926994253639671893858725071840352620423779364909121016611170493377450242265140929133579822939326181481544124334085631061681498978910090827725572088368270573013503908608799044328310769836117691193409653655036692792440716455593073016472000587850440351242469251882054100034741438060241505027762282099574990815707257434050961357053936445865343768681955969443508576839059689366468508954140671586821559475085924676062012886934089055252162361120075865076830862417139557074936909228757315388442207796155386669366432578487393514255500429183943623783693389926699483605533481368541289477985711697190818601970237019557236015999566912583286845338354511396848748270087419581361504328730768275398982580911416716916796441235920210783221127550079354994435085755164464513668291552748561807227626232384858872258563851267842415152924376905539504547590487800061350839038352727180486787600378487806766631560573894318695176691252452884475275797770659695539982430854473662664161111216737284628828906376712459788506775339746013507077425579966320172700129982711303243633436852930922792620696037133457461757012902118948857168853130005021301380629261112128459606761605941536684122744340122409363806019692842359436382020092019860750165200022204849268721436207687933398677924789673628282894694954746100620123467845225991420480297219425265797673544843544353269028556326931427077357599627190476515733326497690708754432930891960216928500149253101153904689207696251956764385172126194044198004982320626453784644622390272710211579743184612739106995400519603157058922312618049293911316983239482870714341508185190260077994864596331179390538522036324417956019668072667482585034062098907274270718772140150533656648131183252088915148142167212241175198079341423755781024135639157317302878922409238022506484807991634166458019794097441652502447919201821195019363192217382403322781369313384157017872323947733168207355794806439760897397955297671792779277989599298119605592460034165910397586736659926701914793004332358954870301982180556421368936342731095956982210993661874288389143713154665902958529773405367502983953393227908317500342284538100050576400340719717516894955083000671885099819670582179379709702027280777419742774504044366701645905835570637592890504309310748287749568707335608199627376783983941273475254779796207019305706973374637005768669751372116924668429376640308184372417602672958512681022072466651262272775214077552413728025819137803208440469854057436912894490409390129870444512954903194699325331010910557937924596267405255891213830763898401707277898354505073939821230343023530412008755922916116046710064743669728524196649673011039445437424443820995065316005245113726523041453864132047579456006781027937657191597892411601127707402814510671482056808773707210748215009468873758193323549196646820193614990931273536302641129022603774628990665125565703253239168730944485996039343021107380302126132379899797729301468114784207430622750559183089632340107544017588774301176706099271287016816676747921236861854922267918216061199915825038877651714565127280643243109006800048853888601127520290781150444629762995496347639692812107426561516967268519020063314076596349028967605338586459637212211329417451037962678885241247258288816380715488809207231286434668431818959222464157931229651325792091038243960630726432155472510415579060495209639158914498048388112511777769873212580208595986382010640420455624867327097355057289218201731964958916631488639468625788983233644966052328043504787667621522484848503453117013847102857142504710750923558803419525009585142691400619830255394717435910828980866432130150186095150386781846393950445415196514635970675365552505291767091540207542604664622235168548630105440013475722150693837780613242802657034210173070088502068727447539564195975718535568783787447244807633937824774055083309022890154225924530207377825058328340618251687131259864194432531086415135501162449351393297896502689076793980501316693156758953637138309758436275442461650923808957734539286708262939495172514998487432419983860569828283270839673626591060178109219353531414559436646323860486728262612635549101193154719556089980883323648826020854573992224746838598189190044741878903370376512462269805880670028108117942433141481471145015247708311702701177041338018250019568664879388726576692855000879448813529932784334789984134910164020106458282507346446566819184240311478064711413419506412645312918875070393429628431216574372455967003006394954090868212428367541569309478674954579265125871456877340738773009830344766392844636411191678888925143190861658250541616156351530677651245027196825825390551726293544311226749878778491457216704919166226411734659002794815567781978840023440743470359744114486752704631186541826908819443147857136022280729786034206646522066476716852724017459811942642282371523518004282036346385124503691036587544989344005915565450685582429260613127191266255170494899377537890866551891334681527483383022660000021684409563463750593156191452876224814402555410301599332821387500190054334191448803435132267513573423058857070436614497811422761601573755229978402970480796300731423740995430376408709387793663741311600031118096400777105328515969739249596318522711216999834478867974419558832473426340870899156599574674586096966512827519330937671281077536729124116486752500506255746960377162781349658574615321056056643053377997925647955203765789938225988361336493464544424870876017970975658118975542398603397022899724640267802788026650936268386623321268549877167987627171725301004455874389573697822905166779417336114892053852024354570099562779789132458669592381893162580814698418247000544360256447699964732007695175370482529211290252616247502489894761894850278891214549769893683462851122465903058636884755574073379247067126725582916272598069760532087162215574901417649887643086911530464381402174849565185585893284502221276618577277696562897573456084090919092916428075463095754830402436386060674469390533704390461470075017946631344252941322971747521154194755424688742482355956909879416637799148601290814607880417984851237921972296626547328408485750481236056384712908039714868510151037808644613428334899503751728566204264107419990159323694434297459289849298126802531863840633426554806149551475048914022426951431281687619942072339201288555808899172920595194936503541424458698410534297782158845382512525735928445473601424685260598209892000332224609145612130400981858843896434705029768180101541087197668868820614254093135715621938143478911948478162914748451664527205591704123915296515568065106780301588267403321905000533254557970415615569579335356592298433785992870193368017756549442599038689595278329434376285342274917872499025923407705557485031797799521661462375379650977097187894464589570376346346526534729114734028945702810365671498072620475645141469026600453570158525317588310545935162103139204634353918077265860311023982978655280224972771860290623292681606031234492787298245753410213516155982605362845039949979534619383643173016761444431917770870758525444954459812545816943557671935586427511910671913432351276210586491081738257179927219616358208078025139250169054096497185319533221922365428106239287122581153615231720415397580292320326632472180711540308879511580907898108569574975186605608825819554853167414152562826139398207462466145044267067899865992559725816330260095989142827743568325419938429436031188246480388032694680630419432630829519123151323428879411726899860078328993311433748339578143924283309635255486544064651474913105360074293078232680632745861286674807155577128483921733624327104713499915372886331391741528440418911156226086025989807291259171345310739370506137982056522096475872251212081299005830295874374462824687982783866275592096440110478546677874502107015979762209773372541364725763818014354873868111606423561215446652181942988437795756444350325345736585865258229259693872018234510904570637846524896745824368954798642974639465552090542852169447997343428619590115370000244440459594245236114820222699080759763294945992811901591032202102406960530711473108444555759966443064085496297465831415003959729514418363131326391653942581930433934948598251583206281256341512520596667289698862711976599603839238259910146814231840967282597643225466694156904341154009043284573158098985209789646696795755254958769507689101196644062877184098934245548873550122100171735459455000648966421445725273149594323045498704677965477159576049150601039905025499259129860742516155051460653813144427695921105657405464139332843211403841464985111463654436015080961459175419405646961611130213466318646007681633905170389645396694881372799722860705490784564463331695883391728018069454620895897097243781364207644427657381604871589171057458002272677979424173410178244314888536541689235838012760712465586538328489213842442405803079350445801044372438326998996147286803217040452642165629412932396596132541958518013175052978985226073017851233913972442902932559582369326980962635871824440329788519820045235484965169292894987936530956493871459124367737882087742434950594396022758037383803274867431107931452178302581181166957384205346661598462640356343075056814906887864059871441224214780741727732393293176661274999037176587042741106402389228169005861465395419051322397386348452255852263259017013066133975702668437710969540340317462226643122058235845606484150378506978094966734734303808995395044472592296712789897513590340430187653737287261424233653036659041044920151022289858841397124538795475878945061140515299885417552886461787831000084819372628492913116548800980323422656559563896188725532655151960929607687240408523738989061757020203862985858256144156568626573056753832527461377358005095914814141702394706724552387838888993869640684227360316260401671795445288213024186803065632986547666601207903027641928074309905695953995615204836169762880924193455771543520849483526026788872457905938090897937317566768869479628563592616718011536210175123275064489326852850825586513393365248520678959272400889957034992473789043919495641354055357876920100778530840527186691058445386973213141988974448727822857262610483623992032338154443163932963118477203241080542425790361771712457649140642781929531218003792793564944211031537509543279904530873318427890078156407105922772658780217188572696403391874095269738155329959741974905538352601189733629526149731511390314844903420661330601751951789364370704136421684527062540527473503557170799956743195747836118015891571564855850143796470428520279316061915599137768545589623648963168718751960863031298956200945127022720488554623832130527720492793197780991654224889456945349726310908748960299653831756967687298484535159573948070127132710350172028896504774601383773860424514099247976627476463741819905590090456518355879311807750219684530077907245683400847721955008347431681381214822521985225298494365510639443941209646406397091282776644624740489558604710585922103610999910227183882082505394819595307341855422610439738479841641186059265754731267820412862044331022353877346344154227082533184644027115459948387787370999326573266536079400583143192307392653295628691925948906517542161409468905526326970720581183935594506834060533302838587942736215565190444739457113535099987723371328782043222373581525181705916311647379790278233508237189592084365407496179650168310786973279077687412948425584008161572687355671947712474989987335358895011155056492685486166565583606890281477478591019294814896397786775995305317865653254339452137750521477876335593592362547771304588805900717139095682621279571625241837645332704757856199443615646000832513952326292590489015335467177347286418456950995573250208607773626926687146386815597278669256255186329317510197420014126666713275392139149968560815569156661629677593071542631907393658381424177254527326529774439111321871976048694925108044246500723790785619384614969543682733086688335824760189145188278031896355759252331732346318472837353627638936826684000883750785972961856848965562877182960605530923891089835805401201625002248257024872846616725935141995699141111221317283962634682090708778477703303243887069394734393853018271884531910193934491279714465281662742020365533287811791413113991951232705198107213054113186269188657944049791585426593511914612300809924585681160101744819398686011777282716296355188449214372713849780833759502070959759777479091454489820573772980101015929223906860994870392436263725361497679867690004914193006724859443652022301249695052520181957032151268359268032569294460927224803799818328765407151370429655263886481961710778843461254423465554014961517774513573704736246027546597749847416937590557736783861659898016133118922096630700759772106105597269536922351281984025195653459709260957666282767740630890554593858609814184269023419970424627345935822948144000601157512485584092992658001828070949245123866535733322122577437671672334786623684479896317092592270177623957006297027412339666650621872774083432800003324225831386163689074815874596269006000919930259907151776728167148788224371575065948935814632488010287664468789434090206783414287942376987116700233070850229903023085987273313775448101882570789808207231513682531056632426262277627926898403746637693187568539196069265222174708518313103454930675540362658317566149806528442389357475887138888485171742418720988782794824347375264677902173840523574340917015145169164760433584367597226394011892159308000853981217478493976996410080443654864234172086818516498070489981764983397815856414178730364332775006177333556570878616819539248194004587551184764845132466727771939259749827463032941560400406640317376801068960570749999299510221549781789896256850263301821493103422577840800810144710289799780359724623969393115507627035476964233997752333435236976740392272643655942981484827514210072100566171789245317670820419841333635398030602939006629641527852490325577593785803731019754783577042489003575862421261913950248993919667388071586729142907326748873977174773146893868948503631261272257411710579354198305100933618655255988893637742508063342332825996683768417166709456356453856018035477702629699196400153066257458556863374188954007732084043739072359309681102812450100649742708686760915194910263201008564179673053376365715954339109937892312166927788583720192557507631007518070597362077566422844023599136744331536227189838976818396397511171900258170013998312012434284090677028797563765079610784357515997974934522597645467160117824529959139696575937921703737513200097151272660683994457710781548043208920088418628692766880042473981757431420734215877172813300434878765728436163825305915161758065108042055461213552553359201459657173730551802239516574828484482648219412735695598341548040187246646717504779353053616978875554914424304663873749366517076086264919929892542757164271447782264346626259940022621870916557002622612564624069747881170339289882307568490261430836218034748317311795438358789364412677982417188243975132265505643087892823330407071022206829276060258816601855363584932182225817277179341922099467756002527605012366556327389385151927349006350318123156988111092913262746335483819752958651419859281502608625088093474188956828064009111482395437779872526558454388688145982858494328196359439486763030705887755953634055960773457237924456637152048924010863544268554876676865200333373030204732645281240460357804629966436703687855686776420191741921549028864890263947990624608906074463579534105711951455250818169101859895823340333655132258528214484808441710496046039834619673860530757213536983517032851224362911687238246445240110759554462725880858767279333738534664006484056065792221207044730149518841610084584747355987439904839014311195492507819080459782579435744126852084296589808365726543251507723309375535479051551092295887902566825622104653256070301806044395388599177813142292825677997080694662080507361560711320100842425954912632917847394260819936353086584502337204596408575330637661027338840003232042682737305155795340529029386955311493078330234589749618250471486881649182396260948203275327181684457067567762543989166068017266941947764170747614015784831037219623451085293388576117206858274393364886716612305156740009917580240046686035590564166321305079875160760344614224535894954892331157541433008129728605902715438981855446726143703895986435242263006854600237269492350161184366751929948137895905649102176548353596301304748427736407038903289052911668239026670749217697205643680405239172255372746010756441088888436215017350838545388211778846435130367956749233776825497287338739616989178357704517044187014920535889724161688156870857752959153947205639912409237775194754357810564298666087584213462906375229521663547596173992744769609163325514053695040821730250587129717464004014598665715130511408459767821029111194697781841030701686618548324331614807577285349776372183474186503299495126905226551502582804180547953363991780430521927292311775598763667898622813327353349677937486210889756808939179861616099012257010110840063224211029867782146235291979688406657402522885833385764725074716294185594759002747895536836588219346526910508386074344636819205344808816405097127195238137095601596482851498740985286831437750229847260655024197876313477333416594581947574965030916359775687140871717290723164284880049372978622227382083421811633253223751280314663621299478579580590772519874278488177443990337991946984622792142935402986008290680684921467636094666596267112297604302838173223528443781397917262082212594951122301088456204050866785712637213782188868462876420147651951263501058631279900259552475124775681602725138496062331748514766611798941074509274211406833208168913159330647297865120478228456858528666505917697377341633882463314711802465421440482637859667160075721848714840895658265747548292714167157303908976507703865763669949060789557017572372999615351278419691657954303828155102319292658609987776429332483265640250288020850742188971724855441407840074872262156396699695306515957630413049223416766304153072494351523510982456060495268028405692257283955995846144693817985473102379726270731054546482619595124753130875961481368467360937039581999727428442718873278654860964363627636974139491795739759362072612622117643540529485891674972068490300657549575960608858385553017277153895576180926958414839381763404608526986188208566692871889284323403711590304631735087458546262994300296162277845044886127462694403471431842808875327598716162145560021231198048331115721205432821414890485828764259968057002735214597487604262769063654566202484621249065346991145683139151779532473121767814896644490024728583274296888855113782577475725769881128000738191150095562783779559025708921729581281962790087994658275517654846105416925904596793926391824818206682014411876966976433126683413120135071380197646523629464312386600475287427716334312801619980504309131863025615631037420954269284240720105079237089337464847097976437245906580091164727338982176107777736092057159613946254893206173409794084790963140577976865064064348298729518450065612116539301544988307056125175592964711214549712682045460119019689773732557544599625107074153882787428082080887696475611237959212509128731003956992276112335689727399045717076557783318059713950234463472850728137341880328702558278220014902351315716678055408049053511760280693697558069715146587121603275421519520982006969441967875864119327838347779952193867575445303409623398809669893248387633940774330224254997890978113468123603840170806441970044929677714202957718371331906371016856348672493240098679683444310734428959082198374269331066193909832968140070883445316650909346844135616097358930400092175899307375534045230524731447606204849140850501833113924695659329962639310494256980479995567545558168495908360013931540009842521067363932655752975786786009471531862736683092244698232372361823182903162802745750731735621030905300579940611124505845834185636984540797009986263008605513489509377685784453730397989949716759940508800069217869968148219146626432727601873432000273986771864546451993223802838283811403861385887141364559978432901417829618295971583976079204201430345379698525847172109963195333576312876412824422214649026280559119330524067803548992210381769703952719201491443536791948427853958491741393751429629836543983105045986426098821347651124784252204264728651457289535509971442901472385208349178562161099833877059100254907951791144370251170447297261609156861248126922044308216219871598482958323435017544725233790403409657881034468246775889364955721669308001018051453377071259405247830135362941482958776265433428849466924646188180213230089796600964195688665690977943500408412151165456589994338109526617089377355406269005558383998989775662582883688501069246783334221130790236553394591540988190556519028321553593223226288139841590924911264823876539417843706288182562911196661698685272784666915847133619134259413182418307438067745987810055195341594170439777108053570243940578710030904446199245231288760658508315794011715158295188210893918969112523548994540894855948358362950406631517657274096376433342157355516553941383576914343545586012287779108177979689679337637819922358378055927554510190210861621066074797188948270365918224149438995061033722012327722200123087776386343265946285148945492684155150018196927862809201788414195182366722272312626537530823023696860453321310442187350919647529597960956854959880223948921697291016687281088730420850859208860464019323644676370879876938634601293561745271484984578854965279034246820177897303850182435385430168840752704933818358621003608717542058498943309782792572839616641822242052046239437717425697138580527602769063699136213413396213516265309245463053160106810393066841245357921552615909770744059769276514387414569797700585508642669011656592670494971121658631674501610025960566779824521778126023899278791177521125356804026650390381473829138426672106075265803812420908251559757823121537843267103903584075432385821790228944136194612371841854920972849096469573986261266531574564464540711889602241231899669454556138479052591722211745076660215250058688948443829546673402205392164995076071046299228865215111462004860675637351699553906289020996467918538471180417679820889261307707539679352145578137523909277547040131794680841644344811650119129309311743737316844252411985673317831821527541045965102371259602784356422989204354167226678715126379452700484942703371448623834804531458524833416660246924998354759874669660781471148910468350696871438906103349640347056563492335698069196553651821056842893136468456994042371875280100267662601403301909379513375846184265981911469424291448232700396360464014189041512891968765754879297113722572081051352148754427733869833751463556241075643301369660372029741933370141462873660846149165118088281524070301249643601280500322543316443557945722395340803515308543802235518200915505433904059290711132927503585630094418880421027250077728722949062290326467288336256468475041522480185535310561844495004550617746794183262697751960002403496053510388559129240812638065766178941180624448971474278542826167912818401938034932553257995377677524059107245571107240271488041913123064306336872920507968201968088258594741146139609536720266546852334450302583391457738390716494992595316341740959428656124805447052546128031376212366309393681838017583329798117756914918357202425788084351855707010691469712585750973569419639962809986604949520117461403980561354441911860798736345877206336828630092584086365174341974345364447187235562691790438292822535077369844717799325496432901993455926521184428230918015660409732244190088357229090732639893191677394131699864583372658359276599126218295135166994354309339930166985006090800963822156120278840326623990251406786668441106085173089912148545989617005579451413417083802408991945293578453053737050289661401172107131667635163054574552799632571339925498739709925966914932451586324112176554169943520695526519405269560855257105980258886343663747729495487273348135969182273283597560427578903386457895077606044125506998593603436316348357284878670315653803891968235759577640962999861070236530031629887193170380497351641826315785261960488758130205690895801633186882488355023369904978660163019001062948497328776490321604705519995830725423865944100004236431721846418943163642724460879573200016203706845251824405416010700528726731358419467529208191908065623445744282750286188524067307749316833197184370109229345030386762867281430103214775978321942252555707758974274741682989167341873489916493939401498769064461514447255220015456491398903677215816519901845196653018670343323923412851626334521800526146640660764777750707224426304916054404280814740477830702894736730054016115142861695551867303606374482318683822328179559188462868265853093621016097189143906676057336148169062223016772579083565156680662188212650561881661730304395354978066880439225187966153895554848537666547706754805997444889496669777902034565555689205409574811021376480348808061937330269372582780311941361959463367391402938317857141932176359659514286432914841430952970741493056115798518034447019032884982545944159554604110621689856494817351205221913569849401456434013024527724797180380758707744676896116624375394343590657488223122889767485770408855359794119692227144830029604314916659340840809091833526773733498792179602923314875433841511927306188595542515400246095245942439374373725208655932563178836402249653255553439754654809594943795200162627033999939122660197760411915645556827979638036646476186890472998837729381810042752580347147654373495123770711122852511975335101614636907014472640008381114592163143347489664122965347511397697911904754834895865810765311613676806564308326633424736636112606103652626894193443808551659216983967704255548040420619456751481246989403225726104418835893055967056533780755810646417746621769423831234389846017016577111700371992476027861057499773518106190270990562848713019453649653443840815185621343332751803326591709989440786083577785737582714397079066520836544044690160138057799852460745634993692314168447384378844972443875734819140106585364772035563179822932963430801173729149001783898185729306125119499225080448635888469988714446587718945329387519389874175643755776809804258173528152583327459006261603971740082323301843965029154777700419355595453810406091118308436306891318988760259208556383096276344837905795600261477469739023314757140740445505158476218089283591827582665625684921660181376639258038637916257601449780506545436337282766055058458537606429456208479254327206104341877463767680142705698161034655365976734201636960880889285662997507342290779002180986733305386667090500182504954773229311424075505428763020036628037035180289884475075987620657636754178708382048281333389846162491657402536501401124546861198128253175362183370048381767860126094699037870017847001837642255057380330926951462205014630765424498458775013888522444162473675081599470090079486698833498820255414613039563814791084955235532677913878504668903858473993671028538704427466490540130221808742213826625353912774634569137660846700823191036348662999562093859503966475059469781102304162754327910314018169675917615835287966672621570855823004704388270309767544149073470932718904412673776859555862554211153632969604316727521453493102162132104938227957585802416158318530055417969129902597836193817247466873752316530706575336962408697940709786516895665731651417369251516165820571755473709315573979703058185439173465703041289206266435220305582381499520065973631437090653506201357755259947139805142310585978372542431109721768584202032292733309793622839040327455956081524978511597420535342314108484759629498799322319131516857156730924331951297671743546346443933198694640659634150168318064282389900407058851480269340210017057139145336241982514338513167610138786096558582936168431567785743708963997415071955479657519294513452093909491239379325931499426782948519136006091426495703891764474071918406783299239119757079874301721825720188363969967022016514416046733391643818316102045785512249057155266213366978905072944334945469691518458294603141559305393383609779754017887560984514975968108468296871122578887562310739545810927369371734108884628916846252165888487293088450887106384437099533552275587145836813146416689535660276793971301420232987027042618771209553453431084441980055741323154272226483540479735832715882939334189056799813903470672834764565125623281444555830888816172753961940005303870166155402823685753015936427913754319803500746440846294175716124764115939261502289549445932928199918414864143066860381464938727513247363617602347015847082740307769210593713895452249859213122734558034978255963918295854466633974179349655757723712416118086371516847122475789931202282304868795779084152522222887400290205797367410568303588288478864027991838826687842968047434142195822599323360386976108908911076647601619388325343150007764295705386177525444041557282982709074194322040735565210366395871302812467460157331783414328227195693664382070950104626366031479428422049386630079094072616193561846564854288652478058002958822821117042483832896424493225769852120430474189376233583108763523828117817068566125753799628049920773311966610547096426206004928679134682394600888552303544194967799511552545897804977304002033378239732763615004394261575396696679465303945252448337245563813801625314149225991451307315641754591654404967654244039315468807698169840443089332644419840191525137265641584846284817123843165001426963956261518295221580133291270381799965147467433131859010603228945534369798149360445390666278617539079798322214336855535555587388955556369740851859304319684871128766320293900434153978049777782352815058280684497988316894414384256919639008089297120942746465331082520734201817466590859787150146807475346906947390358905137142715440631424676862975975708158792906982927152917832121354697319126332774633350911708662689267609176795170475333935703539263997382247004572367297506463283948136298272399297669440419543586676749117829830470551596563211390488489586173636040861444819802973249692313520999300360082816255639617767707401172505786270854759096546145945906627888002761895811674343853477081080457707822300228055837184956861273757226595709086837535880556572249940100797945127561388489194959034804910697961131134462518784336367831307782425795199060361563202282026127060553298281320486868180652761707885870773466863698140369498396725190145496240344270210803905420667316272930282164241161031556364825908897692108508662991349215085157888880718554174171395342607330392257529503841168729653375183141413592972833410761927519419357350143254904040943930852094509028278853501059224014009896378584728815287187813392231839253789459448228979016321739284948287048048395106132067692439126208945970005320022603997969335946262382755876327472791620626194884089883951691272589886895521618510066526391676946069290716534068022401937268593802299957202587602639992762444725231048513155582475494613913698082886293573911403012601884844167961175684866157331591434067831739369760607234360280480793274786864274893538175694548025957910492335462973806545782174719140239305332713977977861087267743947787126111674594395582406453300938806524881609955905223821015711315743333245821349900828528446658994731802419728927774603084810838241638964532169181493812944553332313116274445646771551609060720536590156434367128121191333862555379735812255283437478542574549856592146179779036470945276971384473927240082640660094342568202273507061413426711014774217859326320436534818226693759499902898732184524012857414645010860076900266213054423631792594353144874043990790781255723840662127783454885942975194520176810690782257092916203046472892304689749531828891057936644804414475663063963870123357767052066128006379287547957429508649241375363480740810941967046939443203939978908883762131496626793140183799857004000662981359129358618522550209558713510563150958184284463057520747418343875304920842627818271730887890857875734460004639882562592057163944569515114832589453437798770315592147878766331298538991622087352725473393779848718548886312967210518611817364026879960984660003942668400177407455221578663145495900436878845945073144271420503692270389852119484545193718322249817435619638972834667291348794200601169923508488528723080089039559185352459580130937674437152953655311189000298375826300195468316554476938776283923748414818650402071912678081980262397875853470926322555471024825669283265948292996230187690724904305009835499850432923293755674332171378077543842495952134378134495482978321579316723823740303349114213823648973506917419138915621875837538562518402550910600416910586288719715963650855976581537928267479414963488427294192714205475315326990591094555776527336389397054843996536875417497023759959813368256045385482746935881146062905736020255117613454662001907913965053091367448297302569581275687635108268886956902925937562763030782908192430052463368536285068167337377078316219395401025469679475608735682388546742356441784397824397601085555618053043039083206437120324609382329977806216648592204310833421631307256844855156322125951496930473587163934314575353813945918105051232421262347509052188511779962990071750699558232315112115266263828318431160505984176821165233886887994858880853995427090500261946314210445946785619638999704759512133851908217850964121546849039832081021817217691439162594227456563100869183842265336598817523191922056111718987653039171663713058978901274429312027215893681995255468056479418896605754954442755733621666359864978235833154967861842388022483336803861878695223538138039077554990057709116155884127537653267069081415783799558036582831089542389616115401049395214993840112958127957105736743889866407278622693228553339601401701674343756535368224946065182036307393652253462510141230127805789130390547019613188485043439526003347923557834047789558332355166436464372031283930060214535797873321861265680336603161877688956827822890612620319143599540071664155847287745098277226825566766869950358653835678029482738376245389779089106982368328858541064450658169736008015505579064612775730069604904273460292602332612045377575239669405730748083182010886223640261815614194933256108551098526693708948001515370417317671644790512382590846197519637163864810119550662046113334429657410624258853166176527501577696446615760922971017133222791474496180782545551608166259565924201241517630736790525525834553027951348507160628187557566596499213869114615683109833507597448977058393814663519995126850521449906226747539065418061211179970806882641085634887963631379708234854525361440147001757103623826745993394599057645125190191134687970376083646225156328368535653578845354116268206425668693628919381258626841466934925658653011166794573041643529667585390875467153708573218261532551522990523242097539889016887457802435676932551145322511689070810272593829665537127508515494876210370865197247315447323468404410875305753818527896813303194508886546937568505328381004175461282320645516839326252387878312580688066763884501331845254842243892784871490944568993210852161985381287059301674100419094726688416128392769820076997118187020470236799924806268822523860755010242616982562192744477302101290509522137414362626291126271419649469737188350982543356727600112696578732915857810842429052429822647491890891388558923089502290901834424710668880731151117245512386269799980113703940173126295632135530975933041784472245804503220795983850050989559317737562033766670476795857081391402925807425540464744368691325428833393236955129038414293317477168396383985103724842591119192368708232531531563221723746104536617157275195280360069196534654248502562286717689240080559063280340593080859250006530809182540745430429729436560525998759759001780048620096461933693436602645385897975749476204284956760789673237081544240883894468912598511670856117818678811667485043677153001611251737471133383755301330954020376562259845424986346109113797231615055275556531825785292332403817227385381467644152230674771459516812220688261327426410016225622766053665754588154137774587485299088928370159000621962077327128790777935698046250620655674080067435276594355952250243811402559027176035211268470578004630917115067064002585154938327379747748385799521376489941989261561117207207956273563080023193369263798530468662766004957194194935754558625074829374970500215454850896545570813065389805627043547676357626047334669617440742388804735981894888438029266985515973960129217808466870526616477564067676383967289877415116414603257366446484312662242589743230326299127665279508953990994987245976303344503470830880915953649712064312433576487897731787635915977482906709376933995690154639646835693227601501454439773797202482443650319237595476250923853616334424904128186760606691624181205968731975401521030896414816288349854232241930293275442982233504598462968983964694543184282862740065258093984794180490380621555412336585850157938536419300829491118625412935149486112574680257832523647281542886926969636812749295448028869510522466401109617588677313367148726091501522991024103485591393968389736996171047136355596743749556944193701311563033919869155997511844116516700309149364112388005779673387600962616255995667261676213505641950881515711070515760381813007443842576082523295499385402250082621634032711607644295113868523092927397081727587699088005926564085451926972937225708102104869691540033545128063334752479219877544985656252220053027190709396152518264597217122644681421455573143954633971471640038053661430866254955628278690472406502180211937436666149832389521630138460670090653576448714146558988358329373822006002317238717523093640584248252752779679447480840956608337160679165186060350395312262503574835961830807379916888155242276106823385918926571326863770105874109196922142689117737252885510467175765756596964707167804841594448458638772296876017150126201202630914603064442747497209172824253439862741341784007905415659273448650709144090912545628948805904967938858841494367315329107874420612430019783667498247513665893553317290942392623702735340722351567068424538260256578328048484616843089515035828547026264543168114354480876987821502936117432992317159800239478155777748043735090058807712247641872310505987083320576299343921009294001240823013255574951260070073591236559145390965856622843588790403389815385510660699928748146275440115473644925339045701235667480296740702126593142952980915746614336293357444334330136880021469530650394209582862266171767192326295732008359577376003614892596017187192165168400714333215048966631199981667225176020168572978039049211322986568154233880095804795462594720726269195082718111233621068222412234475461600406923243973190288495749233048738388573067664086421177815641809970578031237672091059600382525764427112933320499297999719841146208619947137910840910822184622318231828569605048708204305147791258990736077808696656201554808324106028341884803339578754943149507940920365069142480602251789554674265737567090975025269513353418581010606403654304282902633520505585441427489180697844657322832512024092712465399920391273906606565568468140863530256746898645631901406759141242249817222602133658792676733309376584163508636981024370840571854476895561072962421992627973761770968773137438798073753398844514849019382531802613979634899474724097987535525472154928793278262069063111415754377668316882160411306149083249607570881064299016821717075122538216136628281030066676568304363364538166254067089463723975274251369150239694401441695995152735181249399416472271125577117564901427849561678620647859679093023966549948183433183986066625221255849969180461251056855475376751143840564261967582981027000856027456846008082525779992420872313920181622613084284587385750929115743636544175027418188481119333662576474160964134542172375134940892517598796176039576938093568932612574668939995268750244164782760570126696457964912640295381146801454193426193021432567177144140633885611290274863842012086009058190412795123097876822516855997769959314978936843883135871732776154507362730944448138955266994942393991157982528813622138186243226237797237612311261295820439746074939837135408759785204640999127516492265988734039153059900632168893512024946011198663434069926909243269419627748327685678437878488183300080713951248646433211854509863718251247257666957956072115030395826601280625986534730196161118735062006595793408825961975486865297121049855688563109290137716510362487279420758970713408324902123239457299478651964335156487318931855957709539188251012062625595911324899312689966272069841838363238048014858165602861739681053354175730603426562896963692619946554978502317424871262357453404325892075107244515325074945861696405599279076209908055798765058859838016734100722255692487636051241092595833286357567388810598433656282723043134288514228105930055523844367342520362238010394109351047859958254058105500138278254354111794938307996648958278866381090251578842085707313402554251514848094278106396880664347097120497086634528851027669049388264088642535366912205055018014693730198687352370525145946008454442146570745879949180871771881581638265814487632230650715458261298440758625799634247531263423188854517209330144389482895799171086062641340504467930952503510278117950407807926890349214919993244879964367896430231231189655852648717102445126705118798833754318790290421858290889247740028130881075919183276301803766303117719399491507040484015659562842258679395523474550374381628246139249970307825019313382475223399700872931807937582986774037923002815710555824960210071332347068162971610371144228576148580357365855542936451507148169046314488841159220576528515462900644355632891321337978776245880622537551140700440325651080576725771142075958794933462260796515074277719063372526648039786195109693315443190329675495516663607443514605515468054902101588179456657127324411702451388267632657722618569168035872880372763476970641086312635083421260662191249273628646289052046330777008988942611200725338527197471045357456375575169778838135677564449069254519124323952736174696920419869382247072549792938261847170649998577615798056480328656590137056976505841718872478124980649162302958182507285694759778155332776439869286315917771981994213794114460253931870498855264002927531994833091811951740538793705782240260397969478217840924082336661977769083644415493050154930160612330418992652427579789383454098743195210803950374111181438300753518967898243597877695142208762434248655973885632176996972634659427020774625671689834388802691998707347435897132999041667051321999953824260683908671135199072479475948992511621439789174623871281964669718269635509175745736877538625511388044812765898963663527754885825837871367659162835618747037322557747438345674170335665922436872203512704208740663060406797881233842803809929251154144167237782442057236592333998299005609774364594888073958650927427311547763920311606291981038132838929080873418043807791762426785264207221910049185747177836932143284839773626094463876272437000892928025773602592749777279336886624854274789958135803645290960591203091727782227857384957098100264907183789073951196931208108772064431107739912515381125471791233750700478227578009342474252737904421000077796933625807185545249026105070302684988451970794130574648921592281995280799501508822778492347707919407544662212805933986540214830152337502983984361365746641015451626916059152401976404965316563178024142316962069788454821718056649200703416284894183032209650240185536129852212248904933128029486203516773608858621835224606009360616434946696302000273183196200248449524403022816030364897921148416384133314323295073449631686283686089098105321225043835180557127167379664571736499630165370639614228199473214457917839014010282392914936776698902625198060840242681221969070462436375310172302503120547628694499957646095076560708225110944117874457193546728350607887002011201666996399574636082682868487472430041758028813039613969926010897179444393914130856680712048239703326649249748751622202112715691288348929051398734322259839543782914241777066427777287335501065824438128903026753135705606787054443306060612584327848792459587002641313404147286930751774044949194803556907571553955565134632887595180620967043457529322651844022698853019438393172650022444234117195960581935979676260553849595293011497017207705415514298589788023543932676511749756743801294403826996048283336994370521798923558384399437225022532076961644351775560132978734784188770986012917555974937829543800347037447737175417835172675577083219790766176846277257904932782458685832568660493727072976871686191313159522510359505916624960722466970049959314665510437640343137319167870686116637889291928494791341145945102382551784880458937865655366961967139079471449921958375383845712354199487686051060393608092582738787446045442991785665774607073692553577056521284635781071264998248611879557135647650670790345116215927488328315800910729465524256100592580654516861170394777400403968257577145409897811979652696097818027355659412799988665213033874964688264887835386330494432961268964003109117693581541850042093080668638069847055966707187459350374315284455910205824278297378209705088532537250913083259162388867341358139275670820041997899249102942249156263963556363676406588540363937933426530597840236173424526170111614492316154281497726941673499997486341623460077532471658606243286392816836099728662351205161873170689997033789261088291174768869106675550279483631576592990155800969054854222048771575446194394017959438939656860303732023008302405323817456733558476858400605111779375633819316140489005215924745544525312443965350243499708236821335802715831845614712139585541937034435984377744619612877075133337080484253199097719119541344787960458248863522502260834243932551592476377347582890225127667181604863926284119212789280169364820821124169591809058159090680102211490516220994059917548699083067424669170195062692789683157377442647521325924884077288013399156713561172569181609323812122526838885529492207433818480089478795645311467454366058887182668974867492181369663073487311802854159480895708550919343369768427502985806487517400973035139043098197522543935115211805183985139112495100642228911510594536487240112779065293196563053424140799115410534867713705777811924201508722084997042462582449795728654912595649421044550437682449818098920231865033021945441421573930297790736285417001858832010245467915982199998283540403258025534869407631986885790341672474536754145790095788795146231150126662787348922981151521911310010779232792790045005841284179000220340605112403913540341794697196050442807961489884820771999774583983559463789505116980281556727154585383982671455479090049450731312488887271574386064223199010950574611971674283559869350103005877511702723487621030107082483772716701677968762626654513719524718665901602004283558531265921033178615342931945487337616039317966981425016762704528772332844166479588774118014442521009728150204591033829748525164165324824757389536073467948362743895300532919332341325202917645164390828024880201987163068394567821935296543817979979765602874062666538582499270408093186634232390383479894882888969806616759422063735259728650375743172744576268788868382346483451612468240334926174449400126892557703247807351011085007312633242781394300288932312235432737090459390221529991119706921709116219095956789690207431562498078582779003416028957009713556110042197086194212512941986495931702993201785432690676306256482140907606078558911258014392251150220005420134041548263937530059607688850853023754556512615692982059474152788203019858624397219420697629574507487735257053678047408285795728871303569682449823171095974427300415901724539948796636656746945563345298335876859272909087591838161701647703728810447654034306681881436872906452252954885279451724398720713226574219756714510841744092584904738180925112773838733466321852637551252886578319273752585801195255501274937456672087227771880699581365739594586430607083591317183012593703085770248912818890604095344428928432901222216457443569802934483597650141685022761160422308179514555721418983568007720905360982086169700108604633094433952639349431282559913621891504725916853593656338387199838717735055618593449732277319564653432388753982966599802125623268897950441363800185193774290835038234465280147785203403460727213891376087091931689749723772995392010926887641884964687014998395006228981100643635501272295766777519841376891898309958584097109132086035159535276135412750150027093153335537009809761226038702102030169473829769548872566681112751718219922146493872025899805495503684720177982422772828340247645963471594667829010216905234423025314517816826199247837135248614384570870717494063492107986242685224614376032881739247847681228658235489826453750019407147342087673757633708535272792737629854653459052254288718167979262835040361779773052176686605178534111260152452230772055674549573037449588478711492994637243762897973281079621555321887485145150756755273852632562633888114624695434923000669643003294477261488399758241893622591593949227786162979093304897707992570230986919982498510358786490264358735012100112908828779279715917956038844324253565758279664940961566901216258090018045589044116632079603405062963498798825531709510104401962051739308280619943550391399229233728544805033319328132153920646060032037257932599818154773974238626460050734648611488887781403669989234066536456509162786589773727080392285461416608410712038251405912588750327442999598467195637357073448116835241274775329796123345570249248227051006152483260928305632206840628386380146099212282183601521542358826559487209261288807050951073407182526075179526110720802326418349627147465340829530899184973218493813590397704388246478406176386704012835925347744318271895202342055040447475876086810033455599020416165577068602396733812139904522582115199685636603993474719458211013839072504786539423138793194563722474229992112374096664406300261396877776796053979099875133076144604126662531313331369418915528732355120247507186926239916434058156697524934437203750528050372912168649560418330753639318310428678582320077590995853975990861280439857455114569895565814702232799913096402566349430530873479339610817064486336526616823560250680734850404090652266910852688377739172659558961788084728061451924382085817033969539069564942967714069845948843086057926151354826659695946082398701430391112647504861873762508537269833511061647725505632368120904745595998067791629803568552284158922746457428165831443560523399340906726283369415423589594107985837533329283165245791972324533851278599000498439232177746807262370612644257623925402580703059381699785724377972965176375036384377301765912833910898390364850207942820794197501543599082556924767007138189655186119837226971222016507701120844990145406323046114468433642102454995163319886952897672124718029541015382169384619054271931557703095236661774873100004393710655004358038691156286391522030409934775257858274134723508067697758162546766043487802058208962021819410135836800235388270458622286500529386436540053003685385215632666876922492961357076595237285812439637431008815885810085674333735288941506375828570642275989219953969455980542409170473061884164685727662461910623264022804085696146939906260999644959825581714128593835923010209111700128516713980272295249801167509307263180009086943835021450162686644412509571326489416468376206529887553202657924227904460220314308631747488792590678359922833475405416428299931691804754129525401887301877852881923179844740613924544754629611841589352696144427617901815120612968808852551871236141975704640946642330676598278649098464921316545695873694497491982719459841289919812570930830834108475116976299477804193023495743888913543603866806345827138095172310497869235790644670499695819214425651316146815473991809572416312037229932606593210408697146174346436709955943751746421030004195634983764606632868361025902814657120550557548514942310463897662313708526806755076601604963161103909827675223103480415770558458521486112057953616729013632554073847095310039420791506500739475017784873256051006666147079164907072133929045614575171096358437978759459646058572466946548089222104730214023502021019197261318375553669144360721186610825141917740359789766349398793309974545011123664392934780088695039262493635548677855912064254444555423139913833879635672442048252636009106455073642197450820632306337389786837255478971354860501836645818250324593691591905209175423004215012893441724619501232753977040739062280948024607868607375415976178410123869887702820503950538132278620011654065067486251911240999789698986285349557323343189781209095268390438890134921625162590389989090007914410062658477275785193075305102837909517526143514281492389022257058149086490418187000184611259979930337886996654414270915491484199536476200986163589972405976979449215315689654684679638841172707061882310252153973503344677453168599863129441877533575840350086667015730328715293952017947231492111857799199266585138586509047570981427729614486769288491391364798937810803745193440190481790350395934071336167453369625871809878374078140580113158398922051523968551540755402300729383619375327867305850987209659980961478366758513682933165169228693780328642862649762818840757363357446913714871986719592239145248889857366623841667728114975307582955903578198642892620761958261314530488091785840561457634782960659355169066208519106130849425595061108675785248984254049053007755745279965246861813829090825561500169434139517679701760882877174755399695593329155975678031740794253055625917124980734586368878379655052713855360172729978310967060615150591951650489203136929511774292478876129884353551634604523547580906270142680484167252258007579740804356977800866933841150117200406478461311333578677966409675990519743958718423997268470207566167141768152649417630838899049936051817302691444770061411088204106769492797993264363141374599972931071765058982548128437788040699256115607214134124874329066233924242572551888760140542971232143465704670476706206543657143262723396358658745496553074720768022034443286714734847467219296709387393849142328832371952687372429573426487010510576953346271240716576076124710506763527505679638088744809504280472440108262540746663320210358886171897720753321678298367037233515177288944857159687165184638223789917214021134150658378924906273041532010093110442000753877846208356267708564757758994138544293242691308524637104682547419838046637529871405882758504812857572262873528640072065375377830811967106787035194426699220076449702188744043526940533048302570532466269987129835625733089854326364122059970624710435987254861436715998838221737201991769530520051489903530995377375815708061511716703785950177287739314707529100074962358962291653195772430284884854728434971680395179994429717658068632868442204709989266670399369919926072076784431888737890708630994780633117326411067461697361423198865107018241197948208442560710453224352687094530520541159990629186975671113404103009084992835729254446024982634587222561687584257161664820764969930708955689326305574209338559638276629711220235757619923159754221397763543120286977832204309755628911292555749603732167670495299265643722230905734162483929330105816752014061257277986862474144967586255514074615545719138780542243297846208761297905694209572991683363091925366905547219617464942449239561532863894542815656135061789324949922951448715039465708500359871504314048185034204579779038972113498553714690095020740709414139709400768450096725343550902917085976741288157941345755102613391874273379316732978571744446388021095458071181300320383643972360448187628478954746651138130653734054963315622212350363727627476873448094591957695944556846475627393039158540895597070194445957984420773234666482265591130271418609287765805165890164057261347863281329962933863820081978324670638869997818641953517925264036023935458540795465033767153801647296574085183210542410827920266308024263044927256070910160030531499730371721328656551542224767152722445071643382459733345158715412489107809000138091046239429635778692318692116770924924604358762389039781893048678544043333217937352099318148080790800306146942041580846361942257028064665235763349723428148512209104145165078641968597812819214768906854600992598046088050783489696118656251830034071204989437989541834282152102392626369148803126424903254190631646136528171818963240408666236682177648623401833476948468596323117752431731103029081294694634635328095296396593256232330410985315540262027997651367648042688321926556646979029777573163352426101918154410622423412472934247964698098707495380333018537184996346207317156067742353975189588787677457275447049368341312436041111751833517214722296329167937028465712958422006672306370732613261458134253794686897215522551773113266875031165392728908290832456762902213057049785756002637582334399026609788628103959525777582037318353339173827393108090641451953863136355620840022263094317633409465235368579377777767994099778324092001441956941958663579786738959349610146238679179248361750903624518773196488945334308140439530904829681433425629565440788969520179835228531017905307042846922669585125848267252464886726474011888777852159919806074364265759412260298581657946893531927677538544703458163887809027971161242785886574357097097344175447373315838899150430226762537726145923299640045693667798472590691555510362218943514651199661411492699161734157256722319560889384506888490671859181644197490837303695688882982336155388009818967674496515636159219332279295012829927575954946621408708219022699724481828562866766362348784113508881510644095443599485698918621300639139207853904210344712054846014163691840858270120355092701816200185256339020093469984872000690800334608933772996172607268081609385316975935071212377816451145014614384531724482161404810679111686955376339074973597310844323988544477271567097952248586026032823759068877154924601836179168712666880129316913752100153370715872383026445315211895047457937655921306847842475056523143439670209535228881631354500852107046353157518991193640774176778408805307908372341976882801470531785955065263899419931211116488403658332838129762666406295295183573659511740127587655545744652450525133941963086812519905714933370026610927595955551083069344442838819692552472295618892591530586882746080936344339210233868819562258387800120630307394068305036698340861952699649845089401967712976973858239114621535632092033082693110468738477940749510217073511526525004234969561498264394409615377739149025983918056377943994300952739421640881099297353549598511474239985511101971580599857946278180192626786442148111245124966840052080854898054790082804799277137464345238152687939245081836741214930200718219699011543921713161734019302396828348236791684401198776811767079315393951750404283601931464543068079547286666426255433235159976943629472985910647286955690029197007780126868907770313678584042078461691195608233609827964267523883624541861313043273126789505109613215603262455210695419675239110990954703698604299733020060436872042212889736238064023019188747272454541035344151898743728658123937748966704281089353832182189765637510005998253548888411880461885992614956933042779559978670585668467049061442765837958479866736907131613939538534642054401316779148327515418554773325779817769674187460418217651277705533922089641694864699428089901777310221148985819608687722506068473335827539019950526401976021788304929867803117394323461166814960403139886584916172119989972981584805633554226966570341216967215281664878321790616450940294580921223171625221260594296591392799872960893168981572148780378420722401551996737478377165975867409699463871601413612841041186392406394439637333996759411851047851115687828291221367740622039492669847215926942864068783988720495701263092669053765169635099648322407678826421964413158077240546282129767125688602840720579322634370002327181299445759352536595586165686313648646802455727009524254856565576827153142967609492704315117218415873711676050349725406731537758966282749352178654569721401654148859646134312693410387687886434734179450980017471208226843099964187639101418935512227141126046936388276246627345287391817105106859801487304735783642445720395382941150223082361593492169748753944361446847699984207593085311342258516742088716685817333648447853821346259964445210314027970277218479535606579045642787243446047687608548354683052898552042631800646003106046610567297273899736533956069672689991045198594358985393215244490040931385743875537244021268164635212729000925813088659371142105655104320496360614482213640130902509104792483304834732424760923064206940284781055525701706622520097269885380120808562069291019498797915362177203371684777997848188366036118956129546399156727167341763527241784940438316192314876427746881220916341166680722687660032485036159426878361610024793798868070647698285000579419850677633167898148984669862071283175189649386525715650950712683855300928371720479676397144659874537351931857531237224024138052768247867425148758865389620313637118030888578811081969284969127092233312447974739055845734637781618728326766532323078123394721876989465748617572357498117296102626297573895538611989493062956330471805958914921103313157020761774810063573197525179845050174884003652681568681627064545383843878497971788221063392137976756451201035387968607208095695153087533832963545750663351024771872810317874387936134321002884599696749538734384994689706392341244435900642260864377061610877382733195924945766649823697282970267818589334348460491386444157563117868610428813900489013700189955241861111347793070427361489670265945173362800750418585277652006469161607305500986397323269631086008931672425977675567046326467874858577572610120262912711715435631529327865488868987517757497991912670951156623584289832809918277897143306798701175553896832207685459210487473053122334635041284144757859552241109296673975136243560860315296548658557795928172174984334606109098301921832547210446340730475373441725837167126289772943095654818507852989183388160084051070934010785502151375865196701778602558017943942949551751707238889030846022365720413768348295560521533669776383146826769350491556983148892311394373851690121356132464009641284487703452495125806264433928479882728814395809740188324081269356677845395879261574289923479881484499239776825615612528416984028913307643619269310910059456161220913036247131745050430997248571523565273113064859323409827334134695954534886708667593488644895941795442885163193485258950938693506534323894095427369118024794162669989527613390559097746113902103155353103992386351569719877253548709975675271023130468398158129367245903543947909978266323939953611497741352309907740795903910341534487691582992622222059840380330279772965358039885018266556036062792889283460674718049350970587332565231669772676680971661408005560910934907268214488675119208624301718291630614236672799239838470528946208735256116295842683369556300367557284141685414106218541710755446503194168583084603128980484488440291056963308868869306579711250627742498747962283057753259662978057020852157008568300817706535547720207795586749170839060822460899650250638515769106896936995271515974256742389384765795241668360428438046789652455797900922369687171910584878983097407426540228168432993064999516412422624778309232087626777457920227620293208525546179940280094002700743941835945794314215091495540310786082865151875949015704962065282691189072939023989388982538095346493220308122046599349498497138726770161528748785281297563915833599851654031086696703412109873488749722648734736238301625539823916436709288917196939474776668807151482437312239469767890342164143636713002450984803378195142463513965118359615741661355189922519999419255263468710999299991701296710532197523139288819484173649172452219078983838695344826565621849158887226635268543336897741751921749275630869755909518674358053861708564594825543313226644094361829128679692087362194976584257942438483500696426759124796031029919213864050984417968564085626267058241867863533967180663129919227042604350195321212712399065432479570256874170004824426421591372833247534580250491087986355939974782543155507348470987959116444973039021318769468144249859285175353799140896108553553122052075608498387878555336652299657382029952261632396238910928911101129835360659285649055882533401408072378637163483684840474657634379448034407006606675052058053035313292604536347582096660332855349683246996499994034947063474771997529864616048260984304118434672464046946011048780752547192047614578620242895986979889618301949446812801065449456369043759459686679120024030628205074568421504859730148637084984275683785726395173044508872007007755526321804219592267486030240075231959894083763347134854889372851058642978207644643397303576206150219702059770213333553498684247214194326069040143484173564683788125126242178121480514158160662548597092122396000282754202424946871065458341483695734809818875527363115211650146200435062853522770366539859799167925966807699012190022872335766158270731942716224589846152995206282754300291246010648544553464717955883429620924494515178548518362701123211621966797264785817586968583432718624483956754176880823917761846918825515704741721026676124093970476909239818186980088185054210344403317271033084037542522122734780511341138411973119353454193966029020825038333687897601146953301281594376340006949575509994413678142352964708596597943319698104629964743509338930699623768085511117661818745044451898532274892264457613158506245493384370809422159068600913640359815050551819719040349906365046653067643075370989065750624699906198604616776434258509476161342006286576025458459994963784589936870956353948864944266752476148554187962174857024407552802905381670417905128406094492957116563550830130860067206309703839327286377422914758002519507207041374490214359405591952567667440901458882228091675124515532418385878146821929695307647050386209121169205503847193591348913408062413798664825201781913964457226662044858078461759064218929003246528176156992527836729161948021261887366063945376375761601792120919822004082709708547716728865191398991913792310631836982019028939885718187468969749029634418114133756021643607811547640604446849017461507128831923615627630973202304318969592547800529814491766321525337604572812047110774966409068996356772327099286315199193541440858447847441040241239217679032997883701962336021048328149969235408975207084281857071884949100913323731817133352788805119432341000831383470032420736277637059147899052724921766859038580023612424812677824016629934513030859015224577755314884125215989767444452130409821302734529221250445024670159196429339230909877150093078817572251858858842763633342365541010247633084812059759760213073383924162715507240385363998930115282950979211257167420817481290952050495549595248740621560921340932871055177218161993276754881143612259723100546581665859389895870644247044399389920705638658706475048704617921611032205117894752225030412955626167664520044460026990626804790916336599798070454233866779246479073668497587704639593079862614016330162555487902018978034893758595454704197480491009651837348464481007408215298152637378236350873173600511751472008318248772909851042451021543911974410557616025324519669906282441983821470857085593909917547799195774983179405820986748041108273744634917387109386233792762697095802025534115266594809472692704769390826885183500323515937948296668342443232292300258122517683277830540980561586579252304698129035507194007992045614756845076772754250745100911073748478481124124383214344678992909686965037150187042357685271616320317504463968599356001427812429530430532304348265220574885171265020566917062177271852263440502947626720129359796052684723667013236358730271549739635941506884560949198944056557606861683484640811996667564729265743443735950516144135477284705861860545452816272614131823686389225081065065745810282712241010445100781091805937167393090142695071645318982667752140645201043182806895372505827508889387363731595647891919184163965270967983690964369912784441883740658522325704395498856850030325054151416579028113802780730156869969533048776567890520235471008802529628455985721651149287871742326315419142919229605297754929419879182342683018278996202752445364378885394926797150594640510129292865220288422709474709514071691013622832399035127572026718530676332629062818428791577022947534847092996582001267346966763924076813339274755302207373490886358170851268402563630765515383710310518875828324334953188522371462226984827972526062668491739615904683103842267771275046251444646557958038351086048689722208679910964444751393891061331685841869992119120738613528232142972251363213452349933537890103868056173791458671822099413558435498147415281580650193632259177162359460198119756064057861441023296708949349583030660476043921876481176673750889191356238237822818711146259552063027335715681930083343865742983525046467307560992880011655591323504364205940947428592245174009812378124778687998162935340003883825554514638240405312327347501029499533823021148018182070254249079869785682171238812712102446606931857751451266149048798803093581892643314632182439000589242134845771599806475623768996971454810388452798912194707815238637218279180408608543367299830418840765048978841022510560286871117074845952354498505939877564667482727040957061224103023640805445929402732705879268000200042701536646826854645685673280538114219666600481327307854816427520113950554255486861567713896472907542889451416321952863376701491360363854648542454739920860358082721571975156478210337945696035962892720868175096094031983570539227968618830424015047620873101946109148491353676720769082358237920278600862217190958412234279936273306270879054346873046042988621189072692989754483811748796407257206379253334524311332535161785307316572638569228927934170296682116915853848712407847986604879570699012134236711394822892873868382467677666077618197372329644185061480234338354537913518153497052883165301279786866392558019764617565455122947303069984777035532152406848602804242343291406736540184181393961596492547694234832247398529123591955146079698481067186302413928630897492698255513039783312975125469003072230174122846660345454985073741780877368278159415473963850091595195023414633690788122964348926639260204837035792267782099745090544093578638724633453340277813356001805295673853966330408196325348021486284605150656921711690995571857519668449966764170253405164689797948770833181425677717525224376920591358780089022893749403833102628577469621226768659628564426686240050914372328779007984288948249663667459163544961958200071640216408179318448816389006383626396951269607510815394048312367661977856165497677883929451323902356239468830422607955539913160515304248905977098030257392318240263333604849029643950897637758981918382974609941924492966643074914400947987384860796356255003792500431613229962019739559369792161910871968513617410915343293841608238337979475836837139298576904466630160183782821628173087167284853661523859745218354442915203149165926674987182717442402965250915967872684715099008757412746020926175984189241714576683409827484794092629601538445015168468103332929192725315391750213866843722524306794173789156023716950526904393261546738594096743204193360472071838182368292617691560035653568245995619344981235851081788969566990372850039487125351144538956682156632943968080305918876841874703338577837595254302051103974724534362211677053014264413411688624793348574869829164457717508389468380688614397270284102583609751752342683134568432975398394992099851403185133786042162953144767903680125753056112509319086101738512590675009989997032677025259411699408569796435542584655499348488355077141903378490563065921761199501400851268105609508568565532539656631436833141803872600074463250432691465906751877510731305844183692281377078427925238164188699244476508265317335227783423514918855075710896147417286238060049387871451786657385479143703818897644578853692794770503218414230501373289801020324345893396031624027923559520203576828483268324252964490845093034918962722625630162511216007431740072280265750361554307300329436739928554076592191418547899839584223010293916279455530047595078844547667965580936177129865122699843603322830559192572323351317038104189643168562210971200163983461638217321476017090870811402892965108557636030518561405408124998229862704309730333278814181516271636352801938171648588957723596952994778077093572250783748765417080536477317974331785603522767092055223508853687330002574025792034207666158917833341197533028144964361975064515146672818142091991054983105023347100611411161764774711663363192950509189211916150354005780388919821540623979626287381237855964319865089484638758771192936796137640852630782860401949336558129948491040448738048817910380992095845985548467407490776371960301764754773858644966538407149173676083277768575253284154685779844241904079135868728698557679555196389182937073859397840340387850370533478819381439265883508037820102478894784645462084536028427841465157838563283887632227650213535491241203234558876479149564792247494165387903795765255222989713835756304410187981561198600415526661995208059949081364588619799071044698539335808981238433977739249987124020435344283954189691501328355234914799335270613719734052719813207586122538596818458016778192934962303546306533711881046070733590743639969403096792487281237763545812335942007747914392547600078675984740335765166789742578274101574550144832681150415349690762448853895293772236253520270632862144656508732636210028733039136307592969450325973749565530859014668458186303596849752134491199867339804040034695674152779449538324437913070640638792607080302231759929941674341703973306849909405751415201985486214228384897554546749405429534099445771897481905014304381654983978646564183000112684907400285213819301263824890797833594004077290439676800809350188999049137658361538975641924873913202889677607568214329391387149263874604400009474302338043812990269090533566519865443251599292882007997219239229992190758719628587587114937364893855724959120882680787703746709279620203488514858781142998132346854819655301612205024440573483024659283155403343850672367483611225828000075676195267564535065317145815571060893445430483378006017564338437315939662885644993398303450980650001591047147840636644939756414823196127082413608156668673608736385849904132041845652426279040069122734305290658794787285090628173643863001014454737945736123550732220319671818737110007490660169113234059131431307557626191960586442485864678854182839437792473661283106301811750165815440873415314380729615365268126326427008193575181843924547644073865264079723331491547791469351886571000537373922121021757946798160125698603242472458600288660120226464113627524858545702018689132554775386222991633767408856707241632185062026570102095381918526422242644842294342820710903050723119759930374127662231330202959697289833922176308756591479937777636366464652345211626970972175924705956122010608965587749242340783258445381788746550820812571966737162626607957781691275905991141484855724981685913494071055472569384588125073745268838900110319124435306820468997178702088408527634122908168234688442220301065464539128480693131395111310999390781077417770865777871835977563432992405201517117742674589007738722112506279316047843077304084193298783364107250711746450038162133194058278988708314736421935763734466343381012106168032988883458259709936944459710395497820774950414940951695781695009189140977073707453688864424093730107999003415338718422376114809067052190494058216234318402928027901063614027702604144938446307394873250772559611082251156411355495750056165342364189993302584241643996462557060335991238209406415156488903198066057546641971313649784466688884190489726825594411872431375460073622639564374341868399264596042656328830051973580501416643335637055867773919479824930159541768062825710243085586624359081539753943283249798148730944453234266255597623811468452698325271125492424007663338051284013328328421672697019517643394275476499464051047269024805908833868284213356809726020687510472774360600384529115578474396498262625804503460959053534061208722612711186728214064812287337346583950937626637971781519265171927972829483305921141688863369788529590392705714282050063381174368577081271676393865409117475064038903140168433948145255163019381292492041961120140383152064949550354568895572974678611051148416521358849184701819850224468564246382283151541055181080211105632808623437830296155455497271129488245275771264788102319837938545210898755744883308070420028445284860358483162786050702271065498676047546086911281859702949382530514261706277043006867251219223952871322368658028392722028926518270110256669916813551342850928407810957470947170076595718428786308392437029052201273725466438583892619138995107516948650072462698239395011203770833843567923175344154806561755122228951478477886256830657224294951336820358717230045347601339441159078040212412242142495464416215982253452394166237317001141961988647153282411373892671874013454468701937842586694070829572076145085728983669542188911768059144777256707723717140230397737907746222967744440961193973192672843969647714730021645773626008432511133710163045235418769811214794919860515945420115633582892153769263995704687236884275168624734569352268311684074002184322227755638383470426764983915183541535198027289565412949690410715394884916285668318967847966086995303370854149163609836985070662029700378888745060204651838751781452583368497564956873173355801825016876104089299736546582847770872612785848729900197651390677869702195535489160600291824465844022667828588640392567839746396329363929714272972527830339176896803826532707038706444849520048545871250247052978167680876388331603825322153546193183296059371452866748334834699619213027391730594954238546857237562169351565492711167752568166888274132796831024437708972177764796932029946478829512526226492612802240417514317546957350428419155226718825045693120361830481604774194767802294727992208284564021665929455601706319219907207717690466001038996572063364393001540178142563141330456609549503221494720541875068075826694047084400046873292817700055102758053987944389024964254506249034258614166247347402293698801823270368158308189263693573249881675315194739467206956175631741072417075218390739881413197890031984458092351263697802412111241112650652620385619939979468344257693014218143425109804143266033664918134256461307521555253297323857913636175256894084519297172021254275476534928326941559400401983183912458723834996420789026653476656000711895543601832654979317566324214605129337072500277307540515327184532593454834097497536783175486228627297276182477287848665191346258656678469275621794543894543290236015820468219771096286176893553347760753679795855443968834924887113870640941820410814229601980837046687609052475171301516272729152934319488963231616373685648811665347916282644215493889063918392597114438721765845751659696670279267433253108643677344361772984250804947340433469385408238778779620582693800997510068061408419808531849790339241251263536476210435105420401477535564406306445192581161905576257288987043243996688522704661204857569090464488472247960121856344502572375479148298648480751862350519435566155530706377962710093966467042258219368592168474064087962329662124747019933572612485516752172988973693831897947741629045199389701448585398744257042758257069044798288580927123512217916319791856258459745487556223276081093437728603559338745258237351907010618310477353117923114448203864167888499685728252646440457270603650025800931190080290150416140924977440326322692171165068633666640916791486031404240876903822224103157451343650326671121484309034583399994644220437474433221934306141060804346215664729862866151023910060444992175787027872873899122406256708164788755572913957662229583310089860106535180184699102971635826811648905722981616494136797079786552611546590619045213034060601430105586199970057046921714218253010487429882109326379372062725757545158316505720850732135833942127763366797740908780301146999638972676883458659564073174218259634444475098468388742846215145294504773000889241785374847552913567976080518339873855409035393499327816788999984575392820871020936736528945676858604085554999751115868391237092535340141007901521920125929081232580541239569436926893358074353072986081935869418099843010226012439800494624778387377604959166622978892699321096017831589492959529127159098702039155028310409994796434597927713794467095609375202190378532345849262880755131095844316333740424702306200198710941698392384647250795558916599654329406121897409701880932586998119112875741648355995993094883927417814186699394278944648653881306066109137952157701628230221305938529975100775624375866781690761843126365640969349461278084964012663568370369874471069464375327639939802317016877945873002930588301592403198704999883525500903712130157828824206338487311849148661046261384902731270294763527258829304250561173436634957778116608833641636549982606780699803897664996182368339799343575873846681242619588355964702055227319086145620250288226217160062722566222607388343664625018474611655518466789727279865744582484146858893070289877785554689539036665796580122470535324675151096515230416776578313184373167248965776219867776760416040714264311249266924179073398042102343959557765444956296947354038291633155170103202911221496992594445088688031227900399446177599846951929770453068966024798891514131257198020129487542679786965639289544773326119438859734475523473717978875375710857510428751423136968290144449047847363942998093326751263550869551086672119945714222688425428209745892639789940673259741819797213885804355114470216417077375691700026903511594626876371482996121328332092575757441575100949676692900489213512567116034781199917109729920811479724990718194446289462876480076375360672183572620460592308753134452513251066809738176372340662651587195689126829207087936452535228215449765335820366951815060491499052559306009799825158597630312725946785487001074228520607467605481477474894056926917864108418940222487819027406892993637977476024050120340672079319640678134797979968906631917262682750126551483296781710898389180349632630372446854281671618282277458485698682166704871001391580088432909877404352856714626687970684874586988222511407729245240900316665350299527709879621198201503041816714288653192552056288155715352588203539074674450510489721347890148645250923126789343235221746425996346532239905954196796589272343028778437778156803740124298412154457405489091308786102952348118892873734483050145828894810980364161193423389326603701487476895383959442564498271629887602184902314643960793480552363936462216939745192531342097571106014957656449484994143713731592560195616720135539234621195912983016362667446558367396898712499882668011954803114548162782916832451936792215231850605826161888669663430704788272521011790220499897472268445406602280505863354202548658901426758389780946454746899547192130253596336802107302771256539135204261910417198887294007633497705617819199996328378034667144339385279000531819725518597597092703244137670464639162145435752400948536098603759940259554605081845038721899198993295176527805405714797361189904167586708173220234406524773880623935601007043069535169911508269802907890149678788835466105673035983925315663193492999589054682190280872787917374758154338244650062502735231423695774723007448539055204647757851173164152263919930473995934309685171832594147899546388603808628300655394474671166251372828755444500487299056715378913369980989809282006344186084232646337263021111975575545727561644730343100869724614896903098275093853497450810149031879564989227189121126104477129501788813384317966404102136446378823543672045905984398250224474574554715820909193236586402228704217615960625733962194450854826101310374111459787360714425711326575675491265664704942943368435067000810880837229572539313130355950445941318859612223288300618244599876833910380363493429652964923667190843948270127405132701095067282469878592605605192165351074443162797521458639959110414327622454145567494446149729224255167384911493074127048946028047610137377526416615134324266677272460455005706761529935634439374385668123168613782713141113055126156704070465724732354155383980352743030295656523736279815636940563390523990232241486409933791632219851301443046913788365584960501863664995019532490313887825566377794268298871889228874708476616468940851115779252778106769340548141681904314373344156648167677221741713516017501492572025099521729138166093695564935796000920403119403414102130282191664222453028306407322723103919583192915871394064596505398474243139242857477197191587382795325010800026559836522050877908447258324246233470176594277921441529131160191434479847390663932158431161025780615105168428547878285717890024794422040661856816828535836162939714343478009373317033228812350760310175738685492511414491534476012832509070074308771526139923385836371760169070681049613364150057156964494290096776344893888688467029457821336710320953048893925327606085892007879316515796492035665713827898667065243677017696794386430258665233374642296955099228221528039729446038993941951544441229633971126802959794680705073536225907276722129769103705898315216557884104181656782325509281152486113923436881981380473891199145001296994806494232227066363749211079805068903949064026935154745978024825106588930282662523009658027638680463758418038964190689654948509569376751356205095669199752694555374713617617448560896220574195008674571511417233592766005121052519257257122497532563428008726572951544730739597872063292886898789452667319256522531500963365185912952033618896658745177021547822418579979822266026133960480196004995531516514796646067071912549390764382012732066271829550234830290957537256898552878620993195522102434590064259050554357418048587364762747881380191454212995866294597537223292072835400414160288997245390231803704229047357863258326029591333436492672157977805532647393157690604926192348863296338273417306128112068259848893680375197647423397399151613617669783309534037836924124783639782062509121679660868618608751359629769674808105993376841270084349532598580164685803694322087047107018159414183964653072707749892069616484250181133227684374148827469644877193811770697622542223569179096380501131820285356504738696611790601684236033980986138134690792363388725921836847947200145314129306959504162547077550303662246961401764133268249675006975656108049748489998707048753649440771597080314014639408803060933163925468040041509120102192792081832931723184281671690909694232827197058105595522174526382061287634020284481185876062772233980677093773828847421572592557945630965377529356175371282437916128391149267864491779376021134601880670868418441867105899947530123564816725816213615862075184630378889367823341294338330131381047606778344757842764009448680154980943348469080060907601743784084113252670873116641849285722357246029138816589995714113863845523060261914206650966073568869383224914753949692858638657685932949437582708535613021399159444623803928352727117758118376741339528111230690418103368853921497394012577531850306971927993679255874860588211181079410739456527589989393435294261437896087369378812678676174985131324355595607550925023722767364914692741877135123313363687203518773624177697967794204409256635531478634027431783812899149591585180849774191641775286479503472371199376828203388002933172229220224064328056446054668389438183013475220522431395103907859584333258487809637598505553558465541818733906271183180322849231077249651317283827715456883292497119567778657455102156189033729579418605128714140164505904388858175409791233287660337017385462725644707829592318532726903602811355312536439442305621441050596846360331754620341414348590055718912086154280062642217611970342156821649075022108500817662913292831371119486375988338446885016924259790969450674644016434280921718523927143613205295894242741356720409620722084842008874104992037899493572728098888833343722456162665117454139896369700016357652869851186855322806422083380939135384609144963306918111486752426791425091673770838076884161585939686969614566797827005011410901946030453777479323417841204203225893307702975616393955024402296110880441125346819697903622638948758744820495661081112665253335418022399969250909254841698006056475300564962907449911657520291313935905525897925645326284434557462377652852484669355345478926758663391100696726210617831653032327648765065435642382389299534210745475585464484507813073142500807767472006039536433630495638735291622186508485886527239605682756403255418359964822421320522090469654082653612953393804159586955462139671766951924797152131800354358679426218661140507185800172276907440130404597051881225342176706664791322423032178853390545240116065182891527647132212914279692604009566779088797445412819019426290175195133588586827623027418555087683202956534062163819420097649825863812606553137680235990671801982917823361937725028916932735835769958119909505339686946618630920593977583630944641381629751540940182339529855945419963992607812669895679960446234091137997999392753174317992693153368114370987660307208359495752159894564519828200597948820584497364168538974025100348796931393585103002426634203399629479387760047315670252079858522596962834728803675944439437071267554826967814363162064389061807971932534503782070781855125153751879513870254584301473724019582006705649599536677928118110783425119751810726971377372816450608725688176863778872013721852966351155355050617702471182804109339908512115337163844918514265546729647305891718600448820929351971488096904043045608561040697237649370014415407120282330638791424716517845078626723682250067400105839492252962687276049560334216412861600293278936654807654496188409034489927967673977277888320570281344887473822056980795441649322104292806382910999465419452535208419964166847233234451122148126594789903429722536912460741838731388784767691904195017186103516591400031689055504066930326868187184485770026314252242416548877034252805695430430408076036422116166931080165785325560799215421579870710300604836147903372719876019941219816324730827660984871619900341548601603404058268153924790004961983682346520338091479646917916363859101380333591284588528734374317688154691523947911427195420781029484028013319791159722543325726533133923973276584672984745501027583898999974618074780648292929721130623851081407283280287903683980010379146529840006886590211598332917618069128916827175722082499910586028607976766179171556307089621186254529228695443697350822493117434155666334881146466158697349386150306460038334423283875892560269613714763730574230447980416123891370184347534822777842382861280884077755991351843706630810049736243472235095436133467268193715302819199269961565537748256983199415411495582429976916045488866491196404623485392001993897258251307069645694550114427626665530214583234897128996777550646287618000824071155236018560356129768680839024903982597158212717191537948794958508942065909808637925757405245094025963524641381353822034683337109965648195177160119309953061651718024335554379804345425682092645639639723881194134549458296798833977868602651449352323629322671835782533759778772662231877608250647804115965020718661252251430567277443111403786405304188918020910280940528381546252769679187870323240707684451598776259001772089318789601416465297055930170254170749842268133051188087859203543933371856938810351273373298799446998568322208960261369366154510119631112218041233110959881497398573864941397102194692367860441142380986884425200447594971198548769625951846567301610325239662945166571457688150202091475917973626863445083304224550959856599183978053772128755487488324499095357803520924684640488225801906142554531887565291831374257044477473713097368511117429215936080223589302159567166304824288593672124926150639521903273577353597267717865887303601721157703163882339608508213871601725010380980911647377359206972370791858452648477416142999341952127203114132652094816811872322383607731706692712299473779237990414592530151561484468188816736465447468118700004871245015089911731466158718278824505469964249120385630279573962378042048238482486901995458702465695372271872600926396019646149800703863170785432216880107859740118606639684310009162284711589961845924112750886367424818751700657352268183645334851729129578742159111649719767430154724128894221348664712727914200635570042074117509367657800696592976075231938840535070735498150053923596235856940467448130447898162656181593147050648056168687272439133503181431881220218002824341899162997623020966620231933104255263829921089316870816592575364779797204965489864946688617481250885965965933803338358858908244344568674930772066238969098217071893129702890196003752092594392916736558009916806372456280732292124842037695134550147965232857599316269632671023393600157617866185946297569525426646340225491959478565101071340277081833648511541612063470537322308228570919004290989604077527804798741223013817585955626936400113573149746643523648209864829132400635360365323810169857786477562320459013084336270838732380092576822697992734566817658318333951091062307869556415894897368969425361493643791463669204799043208058750137328238664689065303067965314444990588240516121819570925025989586846611163849716340033617495751581259412029101024198678862650171572815436070170141013481271245045564160415909254197378799053619474339817422874515691774447032542655283499311955967120855803538337679073889497137656459162414268186461916450955654582008569327972176755922219050952849486159349271389958576160885464874910359738401667192711146544424413852183552480841656645849823083710084113945085052514381791387633153242522338718708611956025858046322158207603504603797170480854904665837507370414231529884480236105588918075162222378848332871167875234574644310778987961763964066202559891433230792752321834485866829278542268808804270603736190953639304675327109840006295198050094986093910374712239653746469575446722490620227461248336318856393836305239646604316752829496147229456017098612836399491118174355623195318636146355186081484976538743660734519024039299516927769667075605009043353182326896379909079518202128672596601756309714849198079120917065740073111429553801834528470854363215447432096758554789191567442813738342446759645354688412713059163980610622184575008545081094123201462226835918040491833550559161560503641575251639835923662144055558038332671917727407133978633776976235461084434463823388196708922457594888284986531907454737799262421151084990192611490426922574884352684981588785986897629195767001713094922584448901285058210542812842383991330895065786945429730132926888068170306331585067017203983975070115810103661579515203873981279527481704157484669208915448151144101280238419132257851701230886450029531427302474324400015183527988275749182056573695501934525030951215189789826027232263924345451081943823333785454577235648244441006700224447010108066227504989691540805274031215171502262298244842259813788292283075799092485272510038111872977914155353128844334528085452907034655416667122151132169457743149200386946187614648291612669451068142049736846185159726742356969050958450314059472722893309455872630034190885388010025679379295066062531676263549200026919804592930049467661248200238771632783892116084184820961188726616601810890164777629617014356694582027489183508162196296886492065204782522628661954807995405224521318651070426447855186372436627952340864572528699648608815418755461791518027641653829347206275612258133521750525616349950244398060609450193144392145345571594271164327094060241034982332889765706489043730647448609504137706313989335586440205306923150865632123505871710509488778386810700997397919428048861069132400288365625191612861112572784574741545075576491867349072782128956442242149385142533020839445696061899943834260121242954711280441333188359063995699907009763173449666532842960978572888863564821209878700007748669606323415514709754794005017271029646655081090648746799943215490335316835281099076159602137410119083936749166146082511777447096258346547765021083085339324251608401995540770664981402226428444105924641435032989344344250735138748855150666376846515138883388397701932031438944506396238935313058718966932478991715373835842999495389910313001309047169148060304873654036396736258142936376268306229187089978305187712285132812798475535651817957710925927759419875069680852613137157142618234445431562680656694516631230363310457224925521616314864129917655680281728311539363650011161785817180492345048063142621084147601579115848757309120835236184697511078227711709276704069560728561726717218770381776042354935933852542975243164134704570111652978992126076786387964256650935734378649009803219620703546472598700720685226209991528638589738420580770907049783410738898806417224230421196766344814873360746858147357493015973395411907356513511012091992657452477512964375071939434244911508082207709707525372359345024106600607341638376295879021189652849120624241163178046132206708689328074993648957031767487746585761498930007193777922143027486016414123558121067313113074524363179455303128986663722019143790430869130225933944729808602149379798929385932109077609163005643774133846060645188943156222020722561387317442435607517261572794837352815318443422185211856544985173284463950889927599028293236569742514202736287073438598672626322229855959591089909185991999185784416798735342500242414476346504692474009181392289473829929978622965224885059193969587068285452720858839296507757366697269484998945611646760440513820385743977951252309219364798837551859471283041816351167598590784458975105750966138205597253769218634433244091389327930934711480971168458520575692883622022488529625338591459356678401313595721665510183191085085493675491895899773318648378664437749876001644280364447682532153587753294022377579054868011920688612725782972199365596577253636146086726936297778771813368084289979057380592389844199802401541657431699598890397070797646735513924597750463983230682348479900577161962008740964992127477137483488392131990102159535686859692380918500624300216022091440500860267546927784098417728444075600360922625327115623644258608263647942806780994987067514291230515048473193211893430902668065859079006552522155488798607911769751956417986250624164371524417298469240889594751183381515770713868487119918545804672047360201794122153745553566160735877621653481912120508343832284243831871330981831401677578698301348206997436414160152142101995301687262777854453221630156122618278045671828980201832378112205326119251997332655774260698238925509320133165131847666597753295471008068984855727877230409098458794903060244196168153325337662827362402742403280771431614069614780198690046342272203290238588577652383026312151205539693730067698004133730884286039399949594051674147832864153112519674805546737503519161846751516890363688827968335541110718785067209865951450309778149816736407224458762013570462095698356321456721246087535993178062417243750794390057275027733971988066143620039495287191882502958094930014683554231169652245674758465502910275234726212931296852919225972720973636909285104931703959549051367649818560837138898832977663308895367032478565611832267692299503952060060655996328815256320520529923181364508396172834705141384458831970198558984404194732690678246223135501334561200639572460854580302593774137424697889747738873997495397186924200325349235685997941254033566308466472623961413009795023513743445856722029904034688040004333526942569165582561685252659501598772065921442703469863654104038132188880292015985048766671603983070406028874652495173267593753677336065014953571020308956914370562970024349117937559955276093549304196963683154168550492545782259111729989976692129649119112110884996891394130258479322413399209179581916935325348193967915666368017553566094182580940010909658789821970048834012703013099679462775646856265618171716687965983648803256830164452178399463199970114158578859329875087648883307437784057413165690883837064169975008959196833923035629299795861522844552185882645194055444196687787985135607690172268770109249227601222313650908793441691343080034298369142464732399985015811529850459049351474407087460913759154424548030748609811327771270075321197723846564097770821806062105458741593668551423305559883866092011298960417245052251621644634099415771780327128683406776220283768262977872962144033977470210688607029617834640909656723095818008553000506023155065500921825607497206642735191136105576054892244869762740969589336321697772416796477091180794022875764388641999309583505215230499628894807268914041563178194267741297852813728589059446628275942223835814818051566127740004948514511841084845731777902571698289971814957478224057320460245240173979220061439220430237605472535075526215251967722328856926265192239754429202826461856836498475397466696258202388996814989116116880570938362525000285194779926235713243790126297725162902594764913141066091569672341570692941307438783482683807807017399297134985457147532107115021346354635492719350747420985774873146371772458263624478465626507140960982521062601981679019069268858925045878894103680423504248006288270383066880644220392213992944709560965768935023114800553783436717888339938878985292799566237636039925382492812216531648588301939678038119865307657590644945961440964728804267265687015720312691182734651846953174258669618742643106433442411372695875703134209628976236705902056607798111391763977958670358723232640683353306172403772348087457285013285029884228723359649497292575223802173519201585270269040962328372021621341724411263926691553529336204417205995261751977020887596122887117264417399451163674301416486451866874575925772297991559108181318999048443835697268665923271458409885707787973842503476224508657276798773076657123206021615077971534638582169563967012811654790932893736449731346957581497236044690798200974382458676877578953447661190633864832589961609325070908327230465383304271500978336716152779836916208562654805984905022455597455817626118962223027351076736648432537585359333748412522012805442545222306260712047442753969057697557813723568753122984373733871601203101256482693294543717412041588600162566734097124150094582092006010068334195990051266531765163740821849085479161688938812749418604523010094459464585838713279899593491445726375830577740788484770527113429208474349026558874614628263076828868317055479832874217799526800604976424737829331972949393629050290724256019919208761512544983456125212251535610922726340392053238973093621590115547506556510151682566868933734300358241855382766683741623084415389910512147553006324992308879133870025009773981674799204213055350546986555733967946016492909515693982208818181734344783325397487016553655844386717738869497573414745352469642171830099761049145343775813949555379943159179509060518411355800594868574084123034066740107284856918923023910488828603691048121834148642706260623131856537344388729389439954090394073358465275334663980599916570513952621808801118371105928718402128246519241853455661681877533185158839891363202564918602746555476423112606497842269122742288300363139087778975701466995004272077297609769884435055407150691217695970434288053288945801754466211093673249822324897299852511067436431178652771010511469322325406643301531346374668580173411825162602577970242514164006894281866141878704443959876874516883604724991440616033173817792035537425576580284852146466883140098232640517949554975598222091246598675335120539131681375919730268416892278006483219477111490282554262215243286962081187288351025616266856303302971328587062693568021945749968675213571754701363239130490041352811887957244409055996826254971445010883127284564935097208361919291998629445648154962591100935333394063623168369396418640279361854133978401836402593735555065274792719380310002698377723458264902500881124602506257821268547639009721558575829960123992973061176316185490794292802756614681132463826217067768958055363175198728634650049722146562059687233538048196038894868622312004391304584464178470525898950538852631695853325620495330345908194605235140090387687505192866393846583497457003764666743390619463039533968039242256539868956008373291775652607514063953251067355028806196700126827431267258080539477844989651611653481388538838579492151100842616456808932618344812649511729989441623090512527849066651499904199472286111523655491674695975877804221778988464742720937714319809653583793053888682316791561833684158332577589354383728732296596024587376896367465835551280203086277843101035728662109693333747179713988568739571441490842285946096230368636862037325527927897505333139519219483099125883452628695012425889256431164584174489834982508211740170054622103712036462559937521769438003387616041398929703707977116171327517584232735243334199698028436587379727394716047827923123672522624334118459677064583969652588058156129051534184998131904149734979686082307871770342264088509903214148027683283128256534372908412299550692853797722394568376353598932114147296712941620934065101103876824823763726798466741624512377444769142217909636088902323786677277147978443038660097970086249482510142089394900512488686719675910600342623321300493031270263930496646440738235677580020020622502551630815614939895154180769588261966110309849065147720605438361906434189842039648148427769876373371506032546669146127992848122918325309500924644037129219367243587980945972701510260408164297396400221735080208540883553530360198924436720881878373639251269621614875208333707958979357432013938751243776153048223561591551925929435479774733059841988306459239817372538535346809499439262398629894578375130361691829379620187360533596978373345759730249159302018128632470679059776381575731877782377990860086874132683516681439928870104342224789342401065612191864414958909959910634306737616806630129537632258852932670174504466733592517134139178330549390691524862110306646725508560708694460007162124903872468560163896241439537887594212199217175696004564720688284303438233728448486792371077134162211450822484319246006412244004892375991162465000873530931090914413989181966436952801081485910699786534185846955339800732341303967789470003157063168250583918500629267213827477241233154657834017665157545292690637928481517789723688654728132191477664859244344469077126004508724448183582815446351354306625241214531251942658854746945924200297680366850045625207676114067616266875796588720337271136341972626699613436569783016432020801202113664769296724336135597349495587090786537057698181383493401098619545447937541199427138396408744510167944223413890468351730918281152973467827323863867911972432616721092623786131341464362468851165578451256292812433854122608813540366679161041725002749259824376970799177618586209758751376441780150293666292218418371025460732988490452792750548536474208311841589247924514951793298042194511624108695595034675022994618419482105954700309806286042091058266883979034192000007419072194865737197797308406767394331090377579778445142751414126509979882225678268703719388104195240360946837915271188631487153041544686185348628814917568255824625466327171040088336335412294409689840767647513265180659566064333764661309718863491070055966345799221128587051379826573526746765212105372949013348758804162262937804450707589821745497776711668383439151249357753311580574491150131726809747167037137685979348420561801785212755561339655702980110384726388132294591414076284908749007723977961269318668213909399174959518446009012479497827623131936509135029196783337790127660459815115602950958496368683259986373868100102567180791782632087404991082288507789276200252568914868830582392098451953181647913689382716629236546637252051772438745112882013826245765768556476056344557713588725438540055401976897752680517722858443685864691058278815910776839896312003616582179242985141450346434410888542590849000048772936432213835724318647393438745108964440018913124636745193820664771745515723682540746459471190968547418913682325402736091269000237359754911801776201675776595642226523503453549600484749395298268290025388429739062404177517730817181988739127953785423949863980327544740238514413802852406264320732709072517272863358451755483590978680488949625382345094279302147960840493794699518949009004106904821507006045836333663432412047359898059364059231034004149871925241171872560910781453927509807056162187796259799276592125519606874000361334535884719302486199635066516141270255874931315143296419023876959928082371359965072380460007203778747559268348817481845639666605165728419824927977233342152628261283977843405982925469289429532252940893780147145935407558455595823702623155523376331126450946127504039387780780985652055472410409992106850782366478150870673334723639342131608116756991138948903239487628600308082063092593916129126046899736826543791881021611360660203478636244930067785161940992744846011140457034190254760546114921082658173379443889266059148323170944407415135652296341429194576996444725365408463120375291786304289239235358846117940156633111075267324724264298569642342614438902983334569214308619384117182931157082230401548039964023936232012012583494831829149905123620286170401991861344962425929509600241317302652698137858508123282957857475391450900386395208014677197869607506880944683730596756458726566253309734548465847597116075051009323691458333829088112817266856745775171453358844724538869230667301502021688056305703134868113002018399046029651891926209000971871952050526806990417901414568832948602787931462957199926270865349700457277603249415623139199318407990095335103833535769355416349133885462626249990523267564644048146554033576243073712181625319121887054369093760831944081682182554289861427520620938500953221657764232961320442874007938669643800595998075153975760316638396028647332451689245606283021521786586078707183756543186821230117863900834094890195486746582968272673910946676727837882070859619562759776828004757424221478929229386797384617277444343658730087434110197279757005977296667888643544403640147647480988178300525998448298911667041957438639936132409498985367448298881427644315546016891115487337484785771348773321117018135264674598161415203774449692390277872549982021093071368585877241405477574401352634214192221803744329129577766347543199650553616209035040826658005938132302914036355235989427879731480047745000109708935715402948850429555191755948218069709996502267121430593232283604849013322696897487314343131498417975528743881841524757319522591882146513484740687708455304317167710153762380877993502269539888473563529692064054660881734473670950749967942038346637476706024669293344458169443455916192988070555328360883217020742018977400832208807662278455613739116676147763176846413014129846679101760537492180876550971630711632372233770669217492605612941273625690089197415770571600426326920803787498497518670811131690835533340856300808827314789416899549014021327124940180043230828149695963820086482936537763625466806333773049217728650851440171704487603778283932004965185114630537218207354917351883870801991733712808321266392910992852149815457765698873465237479876505645831626681374988506982053395541336411620994638715391263064628893051132814976347533260804823957258883075684778748357314308669107255972909767450319485861068899475488317291284359841294466723128763094184682968159458518810359685045379921114170819224069718527699896130553973656249445042584258044371945033500800670690821310718122769528417016311707745877120189534929320008275147219063820364723607846589092386922534671159211942434431211231436521799422135287909199781588500474588227232435955877126831405613886754969269307610744518536552529529131781408135184278930957060611679809482413749176458590432490824023316319333895063824563020027777437043380104189680595102483351829998611967298165438352761430077853858343659831935263936541750499443855484397623429000697819982950938095929795838641649219387290248640237617463043817355230039699420388628659826169732358678064729350605634315766122157827351682164304961367311307442647092893700566511888625569020666675241830369529631692312814742066596627552540326524418891078702774723393887985224944674371392065534819610407417831035584070095187647034136146745432876795304995900279589125880502219618454454649917106825850946071740147615722283685748897984984155334960028706045292064556536232775926012160888847411680483798838980447826231198945247809490366939319348885262132727040855475824554685802298015483146717688117440386956986021645945979483691590573594058288205282350930578382405760367817387967173759941051843568011076461113701352406563385831030277759546908540166566167954224092092258281931693648849797969011072522363401381356390697006514349476385554413174929046794886764609733613657360423185304501017867943807694584202375528359324177989957816062345391084288735371530966294234026353116097367718134584076533999015211710368295620946970167340029921561183938967555168672928897366855803507983077251807578307374448749165317484380346298040496361293928494576678650215002508459527993206502295243478231191114417735887009909364243554582440643206917361561549653657795864435383761285243030999721619272005927768501552281296537344940630962561073960745993371682927681799835324098644081001346786712925416044687791389341587286724752381528555858055632851787434804548680133527288483253196933196956651303705136544602015121123412388503543392964716372737049726047939557693252448501698959253679656622984208609389642695454301584463209733800187337263974717580062362919478811120618708843426632954835608780885508510054803008803163660593834006981815610305780330392349658581871582504881230599046445158907502579633131290780537593231010548104440386572746570451800390701862773452301001941243931067612735943771390000336500912572026145179657783358061011405617858784349709548064085317591790390293538043125247362040822767688552948011368528482353518617785922605456737193932798139778386648275047747226304210456095589629064381858543167632626853301556396658289389399313339712847425690852171817228492995457248203818064994490032937750437284800018059418130248535003420953258555817968263367098744669694221180519199593866755776667964891756674337365154233959618357203430704082974864700349871228061026755329474096538097014079668721020523362529672459335947895494008565529926779286246250795139863828097906709062876764482142625924722795431454064031659464921594439518445915100338712086208086181096052352950611210615871878022547235545244343155968127567327287576716087448554015227319298283198339248377498570729539344760526181430095906483772963330501945299635028953836514686371941893545194074009485536959009698931227840980439717929707583528404443575384979925340323860162465203526361375164188616103862789022546102610708163800362273905675280825739598289306848417107088248776067043471221337343571115413962978944461967396014919305792319750010598020201671950559487359803781919826240977062591358385069036113236871924694425561149933049073629042596386845759803357629119609947667889386121185933626449197461833423261318573966300363235666221669534811453712293086458291120953660749421401736987259935913725855702035962331609602904906717374980588105249028508972732696531166223914603784368687029659306323712158444716666770939772139408958968475484965633366275468954111743711665308716564081208109420673087320604476288986365826574676854151477486601535560861092238547895647336423471006246748341935897440384351483236744931237722350626400926100973368386070074739625103803249933715094949328963691831686248994782621702525145990210794150482665473275558313267415092317352110869466042468312637817411984216492244347933951610933499872598642632641903571269409039227990695647863211361545553726299842909079201672636488127458925199421793131783425339848725558096861458941295156570709686942148424429751773298955995936134068857902260076456955556290689860641531456256016841809835488684498966678593586991561740338581245970572539120962115487526269742515948909249969493100137931150597539193650290782396195379632434689282851672919401181843376365583014691962707459370508894780958721884433154952043333884491252983362528319956183935021069745180027031853651197166562533540125368663368657113215651109916859736192169194409903201583666490807915850294857773474942933801047328165887587822456663406842606738768573399433524921328376511501843361195456791796887383277886241563565968036666003734870302297927180854373083538152099451127194590087167276581186038737206267199590875672676867580243292426514054298882469770245325773787434885529577449274730987015638761314248538685148834120656408915051906031547526618972461727545569179209425558941154700233668535513069407618213625517766514508044188777669040263077990756041938363067010457412680738749502533455327181163700495097167712113785150568426007203666996089743072402035850389805705058630365888000594008399247537653341336395092049242825223358550454995433796892744795858980486059567350332006649266286804049386640806176073847068747178387504492561349740595295952105985286624868607522883030044542040582969165880014391936904037347367145257124874061191827206717030293711086552561441729861041384770152087585702101493906865321362942613673482292452530268664684660286747387484327787477741960134729486625106476662240531928700198626362476318723387574970808094916518646511502788799503870265221687585093457699058682735404518349665451844774844455796970770018982584563732716176403513425510165051818449442419363326475092517493169482033930451924618930365582307732714266704238904190769810224041319817461807809506223701309506763089027425444298557497242202672587282055343700158054214222813117421799596049619488240984321509293710289492068057209312469652188939524956017630335401914427846258812238008155751210726137091452757014180907854818389619972546970754896351298241811673914025583586230124692285840347745026747605389509315764980515647697505361775317935822788784078679659447105483528985642964468684797406069801385262309774281836554101627068800270216524185989131016897231515270066102215371722047545436706224615718433295459010965919575535761831350230481428338873844157120607528147833128773877788684101927488172541062834105361575397767379732126390558971145104906440786450243516829288651400703067491232600622912271598905831256965154437953173179802171727414287615600570134169811354552789670408368614746134442436649935771363187975624966524776180120314058032079567136198966398036080205934978827908502164535811061301829673903126751306089905517429892037243105359672319414292568219241390589675937108269499936046420573808494146558179466963835755487133041822956729106469249492040975147665221513511831838919258562541007752422054047277815167596819865039497522109685738810465896458252950660245821408865357920698596375044901520102638487835330476862482367902084019789439551184097592513442764183628455825142428588881119946527214192336162326952942763838982988124841635312620101875397978048108298212885842372124094208596554518196940916426194870459536084181388601242734001566759127624774088443957398944106657341295332135301134379745274266193648115493655323776471793187019551810814795902585484643858623161427268362049626294582208669389308865268609339955924083828756163709526368283245677650889547032016944371039241228621322243316571776857733010563139271277768585052247729336682962022642663634305801693497471700692181175087663394737549086838194398246492592932711856229371596153363302814362192560678852427632356493925467769894948946852012622312161062415676510260353275113636067433009869719177464592822283547372387213036103333271393710561509786374308719491930735452401520564112209104568213019827223967103337081974807928050074334952075876077176547313909092231507545814948165376640965074316056587044597400953230022026716608190884134668115429658004713846065277555055886057566773430605302363411758544094850366296818893293347015793856435043818476435500159202760329425113655594821228189825535502249408890607088120475384880531324426460410628930959226332813365989798638201250809570349230360129903513111624999108744819231270369141757629899968797152152644843437692491571611198685539045762522186834630291867683165963175381666346511111315615460633174452552064576686522196821541906911938401343579461985655245087491916705749106229129363804654283114239701933368521355300334199230657584380587459804305822622787860958161156008533579988977163855808419500528619743679004891513719201783551490796435810565639672761908491579123021716777540630438270426502559158772326417570253393997736085303479444236218851488783932826536057187861332400519085752796459172390884688737451087426100521999077554306210670060053245674799300765729281354352182434999161750087535030097251213361705905087347784653954703772415574157730965658752677303136671127643814609282109397148986326100025697234029259853946778622097323959470211279876868240160775179616525672882756136224069395564424340527438659860455678746658724040315711173302419445062247659738114967264830575459063318441520591975471772146891651853329165788326617166285360310376969410710171601918514394762180968474498621499517325192849792308208319464756190407991591103735255427760939470909124989693945925694862960794497951903254673577885650372854462156817076074978333678354279210819124769601664110117649971803785489915613929990981849154795230844176490182435462761580164897676363957803290980900802806917900936392607681172791481799273394952815830728104788840156495420364979483456418032079856129314079114158242315967033262093909304350276688643852993921952289234598316464553331489485503787542373378112123908519460707578419225911246838488645476879852698568799139018048762375036037928140860560654773394873902351307851495935978526616160729541395548312909233318605737106743295384054632157963444205152012239814381163033573285101941714059573751394565659311636179930891257840173163717840678533634935170646473909606362868531648439418183452157369902525245765876359025609982295869766341612412191221029136765544693235699698531070502803766453976170329904808917019977461042023983534368085973749503232504581966452525681881570647680024677216267367763434205259033813101410116374492460930464738861511474300044458008864092653085139455210105394464673212947564409527737771824037697159053061343181208910924468517544453226911321988536733611060361952587747002089497711508987633884713575697185960525215085515676533550866556405275117926133003211195084737592344165246502441241363831813294323643688593871075151886435617559257170149452733448466330106724920555511598033681759120265561485384225141836604919677056320782347720333659924786220563657409805654271058027892966641087728833435290729236683093038705595614896414038781359923967740614370468150045508715208112719586863894662346366985427757348519908353261632487427366592370815818174831917745531838790512632879293810315090218366653712253881557680606988183143911642699374372802540035343958719131900485558508759660262403096581398859396276056995593533523319867696160321628321953580642718151651255995628468261082543426939592562760407247811536780343862089678990460386783909713212556695769338260200716561834273653565972468771277937832398084547718924044870630463044261750715725145664845280422556740494313151796904525266551863979738228015456787360051098561504716889177852669916094491354397671965314880158676298970307446151837759253796883747147327756395036492195152840584348869673539891352397306980782880813142391565352860333029536759940287195803372600815563996087887239239608673588058259698857627927980688727073817283819349207678864951604197594346794412545522392766427327511133548780222744558602854601802987956693132348414801067738496095731738603131645681998716764753476527420577228116336327873248625765521061907386365982818869779173623261186610643758297696577441741587127909681656074723932103992941467195438199628219494489877526325479954957284828787524569549695607966242556990711133123614661709878762229624342733384775521617954804823326628909202325480084985251466450246631410339203447125201742327474375358376804775162001084574407482132299309078628236941453337952417504397093034977820152351858182376515690108200377816789443946566199974581323646143040723966326187803215586595567311755498146598419131635015835451841711119068349364917515041310232602067582309630054679841488151366389077810325217769488180207374728667383515494916600289142821436615181272331109578770977127861122735310878920495564061755268341262899593974273764471816609012012031101077260691558493213962593106578726328770571598305642871990282173686896023987391564995181074319908979893642738982898039932253166357652515463096477605616924159776777007986839960694815207909273087837704840351383020685948322947743297589728237588164710356113408999079079356954990004649193642874401624102534599850536262774612016623642763942439697199251377260046086906648256090691014073753131110714341735759699473148473973533325709941949391921887979619720028188367864830188944143991144276155279130644442656538569619999000213666114130780709771801253073878928898910111624280797322066428510429822005406315551446037936995181697943247388981121382120356403143717541309057195600115959336330143997021777803162143369909881091571207045651415031311399817952573477695060445981072098708719411654373638726094593322446685321026409593088037131404170241646107821592850910508600515312432924049864114648666434182358119757075044178551218452014395248105991094832117652834214337935789591921513756805759897045751440787180633017516053483563618057398244407220651232502182769726817568353451299661288507873563300505528223629832161817683215567248342176746474637248166089797540556048361149308791081142203076420922584069018220198588126784901858325032567457232650603829329227588162002714862969377147106354223960371330840743539089659848113529784922340152133586130101491047082105820733546542269008423843174951538995785945301294065356080172416298662189418352311319165435745925262582250191721855352406114578394422813066293524573990613128831298837090732741194819877099386981561500281206565585425334908942585713266778582892479023795767489246592517426836140674443442207740785266980070343749919435291659875676020830906775703905305641369267779301713599030179443845768087725308248223532936751674316797625142942788551119224894470264018354183866746873700404768207966308290299692958139890344222453870371713614896963984569062408154002723014523511917668080461491946659862245243130099327753323813591238546101210401618026313182468478319277412276639176716425272558054147745019869196550083276842058307191864367595064084675046787995099375530297024800503568577489890349244359140948889995789757040634220700606251278334916403285578138245588492399908532680634068825590552275758545206139780563614293075823821243401340679618274362670192742449637930255237618533001045608408703388046333848095059601527527971524858397271200020563482546780072968389897697774504883825088091475525876464547277778972813304362902296363705078635597327970679305114990156967765820511296129960179326964554070813551867746813440968427322234344260661055472356599166207787119522655697705711838299825708613782671493295338950473541261070811730582226649256592491072811074477292411214455002457323493355759286444775438239313776421051117175399320410580744266155372362984376397513854622493639635277548059202516197911012812766281957422749064837929935882193403143578042216531261742223173131374424004308464297845975381187960862194022839828478123852952804634510167365357303721686944895198204077701460615904945029411476062587235946275604001413887844639177966414473191032145162801991665160282415980239518837345737291711721344742617863061121180898183373412762693648281869172399125576647477271454021046950909814175207842719216859782276641039999799411428358731683968345266283212942075102282777796851597006526606495611624946490860698620243113269920560783207718556286515046154648101884900094583979773582797575199429764467727297031988793248583411828276497052347651276091238302534325875709892428912343957159158066294156751411901896581005847857104598587322497764177616378268572399611170519809094712123571807296068043478724320307446161344136382584202803238797725125203955827956214829947146381039369598774287593907427036405114066452424905063864767620791410474763578992368854773030937795332896258704830848183924317267824044901377418185041864425425569607413251170709076366610886364915315486293476428043167406603195474110546097774037584096365567759042916949598047983610825522659536637293442513943045297620785056972496420070715302130867447977213447923567740009332666223210798417810962024943973892709746509551628067635317470805135888736564985635752238156944826343167692457727353435476543293788111186221370663257109017951953357511955683242578473991699459833729161504781518235228477050717945466094696401585588612595930511367247392001369497105222418966151726254354607713710944206068038760310801000540206005255444501788830853278468159692335517893217855893937283593118299848651954416654370575671372118090301790538831556348654465247136619424141874282174504387397044980972170162203499994998870150566574476082796227251077815390965432470699831489855110235949153068962269506577275284375548779382444425802912920236042514305382125164038831140735252292435818350002224438310845699204779002251738704536878540214313602217665779377398796512908296340512038284477824440540129475001865375762977915541003229453126613025792115896988381757699814914292210189212957296671131040674391960783777722984987285705348135836325123775753521508944119835409303412417375696752421069803907361363103076732648843997454219570864021068715965291019740927795822679352822181981821665335796141730222428498898385638373875961953981020718765488808608324580050709422455776010139387393897357553515156685636909223733063269632354600141346255819428221436870283584253762067660238804656003331106100294269152081907675497475027498252066677769339174502163033258702391026957362993760735009155020186490190150254200897314611251107772911907798203960234823038628384688410041570734063978508211876590301192229843165413341206360006281930615438433334716531333316356569635207253623537138310967776814432696305810357359935593601469403699498529933263017173960260490975458128893527652419998704132927065246395865291164408770507213936175364268777871452980375595329716868854121972678249931325253989998402334039391115746659919611851952529903633294078608190453401537920074734095521416786475900169146558940700831205744168447496468675126148476001244083580368695944618659135857711184927382408048687624008664464321739229325820739265551365537450666532617380063554939784892483590533111285071078856649763250639889395706895637360842731678968728407008773387885837287761308542673531052281892092229247254936345754095295883808121583928178197747264228888941721740480718277903526997495554363443107639083217095671447520139893315071568161617731908157855854199425420233303787318844497594670609058648671765469565802545382579812062976922491723863157769525386304868463057779141858958135144888314019743699450090334630219148095846668046867857060476209378077523025284921517495624413628921436899043176338348780107597557969468318791922367096607966880429385238486655075037043395353832891777783899349321863134306200903521527184743937929305851432980932768878431249711932919917390942477227395911490615321288793916447073301360258804667140026296800515734878536881514360972682382485200965170424149735367037572780746631134543029089077760393561305297994876185145457886490253006968984014141389344023412539032039323727971799229259234966100808402756024166663829498567322076459729694767928059387162225944349727240675900301558642846743607185149256505545730316642562686306303936034663582592797297870076630951833316994155742044825985215268488334111075771701034699317524672706427094659789224522777004372557880518534304706700769926023936713561518584604090015291686866847078962046332798154374519143726653901847990228458461002283801821146257439509444492197932419151661912444590519086310114437212240756589997131531153018262544556736235924037748622612852909748700049765111170045982359107064625527106769596464768266855679632358225201992843195141892573332941385789918654219326549394499186993327577402772457695988813260920553384130612624189544938054494245730664757424481745819907135528942857814858631940876128093055707445150997446131628137004383941759152939483631398601723793187240294761227061746600595887670379067881434918218298765585835059996424231611463136811380878613435996396788220720850669703722566360668635570847131513268077463091013244145481827248324923253190511911624400209544642231017003135634303388869640974292645738829657382920313153244471953937376958392154124320041407424720903627533179216551529928528144814761876776122588154348892150297332562395597049561964650727136155540065947623174680168196786828867233233382569462014487378599973459322337397878338768915911320232640434584148157581639434222886749454571341854704919602526551200115299754865317247637218884927435018170364811054098641362801908012488656786489143232144566523255565092539300871121769130270284647921616125343819923492920489796017469568295439899290380775435666591189106651174753545120953752917270165843836423004811401387990511336532183684313080342878772601257340947919271261769544092978277517348880234976890451903995531305447664829349240440121348456736317196524592714480901601983964972127274492748030842543035555599979242743659708469476277941416041916542523853368550171083644626090869909564712383276415168088940340224903309681061953090114207377466676164081049730606482567446978029510823771778913222907196143306523402113739875986621841315041056985356821109100111771330108772991028175186976708503022440684546534120589999913381395659920527339319179810609991746443124085618269146541866926146416566341109860896352099529898063766241669992123716212015444985307570855557407913935147441577630399021330003473607638988520509131540762068968482019998410588060481361714601419964787929250902438033913796079919977454678411589183155796449412796722020482213857930583346223777121566635143609735004218170674901872185519303694743919039676896345432182487853804725739492536203894990927425043576938715773997156285682631515563408981705965228538233704633599537802184618003728904981249259241818883054725090618784564416652352539990910812711786563685446685808700775578042839834131173097007310962614621105745822081679589736664126813732670189462552432875603326286002534100862862254361426474748653236692370541117888580033711502423805721343283592838281265688530436795303303369850769686685996930442484817192139699114326624446270521026077418262142068418982989417394207977408631489460599933161590454444489603066099673508312910988412388051080126441838962289521139698005310661111780860342815299382857619082635720725130862591423384310884748639082527604980612284825158414455306479600061245246717107404595789032371104390591987231888188441776880471471201299278439735783973058181580896114807847843197609263328563759479956301439093386978074809938054874605616421258506683018884610132440000454373297719805812825746809121547022879774026553490892494267696234759541071962470413623200337921322316593459132312568156504149945520713047424452673766231261270229817165410103763221264773475676543786952536774005442556491156923766691842504400600303428632701199586257786110224354320462323232073180785677571098106741056722025249563912570306318255867737683755111768263316262274465244164430121166815889979128325433449908994957800409942724295274313621105400076843816304797190271169845869999758006563837285467735215553713136540383995989460973377348002460987788075771054736308323315006564918689122963702548850419081677490634329409298250228954275406199273749662839801826433438549267723048685487290268535548199264609216088114092295183532033276670910027954417787043526466362923680190697662415173384734368265958329146337887287727966070526237457920858032159468930809875609045662088236533781358282404227828163192641787827169448725179550314406904222364673442333924019669893156160331503936289636637767833966654187334441583914544908774612760287422364871170478109293927279349922954356185946878379587168616702959199312499122781851961765401526560550995096942214253203215857932111314730882471517559501614658153168243543173793681181074007565893521977734387821996974452755930280423180882838082449832141979727762506744463734594405195433726892312127707325384707184606616279220458745869068295842736470885013682899864185522056614801795034059435563779970893602368475002508350303012024220754719034268761123036341190271288474526107011163867331479995014908569614425187297395396497176089911433751501467341523795360342518656696203268981958050274839099131712223303167670222459784695575485717479413568286489791876188552794140170864490002341050163294808214040126434419788196299426014862481265892363650280079825941298157261070038500757505094268794223396092297030564656429162460400233529134032644733782439388863300517399206709054572208161562083692306775074916383202995232935133613571502072785942383222390600457171668588814271746521384689430929900463337232359923548303630021641007892416585202777992906501429590577143955835216659006980926876475900837341477942095524139145615186836617759878784138727911545134026227205209289482473729026094001701796072550552052832854955587910298517826073111349555608565931692203044437992735112985298767705919259993024701611997151282805990584267020556831452774110801699647936908628270629991329502440343143680497941083583068205300900508489734832660570440623173548024497956211837469575226446864004673054775391975572709642119387066183566554582090820856079092471130003954281275398275581430701160514861877753205765663841430449861475885730093178310225197761622929781271512286435820878061182151000393188083272078682968332352306172955479591621954451967653455032476639807587068438691754697636823990531390749684637248485059634861839537104351138833439664341979922639537168406990632274284454616484299487329141736857181088656449530621560799792885542838840982721166194829349998385164947543236137591430235133816661067238363493525857959228877526245250611292831858239350461225823283235222234113609752694453835863938463424390570758242544173588537121235014556819162306220735283021594540439620503609504271636928829300686299288260567300595263522231502844638858328140727668670859738638708256174759794226095473708946696032159912723665028337271895778701677948045284589792499538409339378875515622875017789356945702619306222033043642914390350772687063214541750845215411655066862183894848118478336485106655968775256695306371013759887291667248701381237841761016683696944081665013327987221964997536665918656049493984660556573477168866723110768435100111592157463957305110483950702557395786536076756036673660938336053287994141495651489193092994261081242896187337377790601652124679333655364906003072384495287461965748613688052879757411687534341601108912115247508523648987226285305157605278704794141811651372928440736592739365702767646184497463543205041887070658642101293399612637620966842792693039979081819609543997719496055939708609179002099745650152958730551846232598968903587377995096690132814142445853682765067243052320346607057602947805847044706234288411727213021400372457837802544479943006938946665399522346758461300025672421559783898762126998154731026204199676932498331727661385561511314874915375478913329164266157720077001060832568108736490768062823552824598891341284081352987604577182738808559012873541858390070594956154687473139203248679406144405764178341058052734398976845548295576537112333337618346292481497531324946581185862375833532826607135241998463953591253454642065181510694114424033762648244996851141364070180414954387781065343634152916070531895548318281685436305516030587501856538564650906893654225522295545745011481870853581330896083243788116442753596395470418205705346443965235674474970464248371145807541675873811883682759350550229605069595016146134190446253989491873984346469157767386851759921620059987129346884808958309469403466558087320112916838307664897541067189277553459153915029260080087666458525816767015835281586276024563120750896569842839732688505517857311959911626298925462261063565410871523611010745035351622003632351956379796154579025932860116750362195372002641631559802871326406926059712498326207433874074570323879827839040561626729446955572895554364425271036593135067290980652509350328265623850180142933012383772870668557392454476076186303756202165206224326447299888748072598326527785973879561610170453029956530904687325476918184805539335169678181173102779802699692406126585613862465917396442196520933350026510079475981502145266534487325582256398745256207629313779759443930677210341353332268732669408744363418861184253203134703032465894315183096546241094509927718224806529281084016192659112350493330510632893922812942824898277243139819347159090808211736609017364365436568067660945685737878580857218325808471093437655143237082351522254015094049098812751100766245524417094686085411095608891705604408416686091332478334855780297628733310781165683915600313039828229489819295943113628599784366320344360024238284913456400905709366562041800436695535199541561566571466839291568256307310919621721190658580072839315267462311195156043829225931508708722423092545583797524089904499173177907177465277183982959111036657621844053294903296133402975783209501083463531137454178447760146614960388720480300938361151947409770851557465306062916982459369538696537806959020395634579683031301140636034482452000607249091938593444605590531850966882681065676421116923479171434805229795849890384445781138000444050526677748991174276553655477837330315818009093207378913668976653117826206042516347785663512957072427729722790100798033104219326170165793616582547257592784922591341542339999878720018841493487756129392664684617610919695663387784997194401585133166929117176646333313390159930818102698124001338865086072996152641435609786329358613134224572083274126342447322631736084314276634230734579077714106644787032622573933557296780734370432750598992851434184257244257297232336318887482045011992450047394169276253161129462905063888063373236004215654782272209997902838841937298743891968380833487536828481266429069688719294021214951373378150451563068334178878871544965397606181961173126622234225271110040746070727999424907146303902190944172135747076769227543234971317242564625570079579477657131896224158779617271737487385153644341338504247985810262981862746839719445265521781684573041672355033635669033088248061918085611216475749174010040141125276606281461828485739226626311361954202085114340480971130929914131310291723647505614206173459516876778336025535828237456363502545067630839280047062246311599596742323207874276498964734095499217868726461882353630485426900504606442433916160994922865093657422370178361197541492575884537521440740360807783709437008632042856335827705292249683186806767870489839079339738728923727338590615470377162236045507933090643117528571829630565581177785011038412420330693895893414047798081731203838181849574537313803504121096819774080454882256748504797363492832020741774582891531356269902327623426460250546755914604401615952280173306530240058524903481745107377277891420926416423360485905729147152317633246418728972987529760622479398338094112234339209132407043061147461703697032625446419996005644532065493356095923746443570488956878752184026961449795608857664856849138625176126236671940138239008317208804396109908436967851880910232680389237326537263819350668154721096755801050750704938601638572273554016672185183266800571175665054266272722715475474898185580859229226210263236672976680009048135508648413532133438950638002924526502005681294011912701530910304671931256459928493442321550196295976988250496929544664126710157803928163361288495559965790113174509389656836878118112597599563222248948909009027456636878274107909005639569049484821152624508216136047734103119297806621952974584901121431936879391645748357340662898937908169172913883860850662900148354399638641333957562439902806970297791253381504281716764479076025591495301045241500150581314511298359087450977411341984867011952350283351445864244282458231171960152837888294078871559467058103970709867222104696017542189902776970504918034354964995538474225536073731416486585971525072096680535716035493666579918259007001872809942379866681407391978146669708963111449176297603586077137209623588678196563396511509013671534782839826168252469926340909384852094964631016526261738753806566584414068915056792770718485283661935546587091291443783044111512352243342502350721276736117059126856650643859536142071557934386133134910161133360370041046958075007956072332362359294560725659218855208212480058614691388692579463696405708564180863721646848788662807334998475871473398636521521571300160650945631787383977410817840847169332840517450814525166628853322229741497959135326517310471083057613043445743668702838213986472413453556889764688469993467758605229933978878110541221413852742842325078229890137080585577641050222184421694768865847797636253883657826470439118037789804715977633840139982351289156655033122603930039217540278688381434608794184421996403597174605978507277704823911199984749154015200602334541629811933923909720812887195539799797356763316538050243590961446380356766150039830327784402711931346080274957562274931857580543522416945174919558753797147583124183092950435010331662560652306304181021316721423538228337790131000977332907503567674627318408393486023932366221862762705202014408351352975644502281133651977448984797696860447333308359240366089968311648241973515005351836778596980568570570614332212527165611692958956321576799725545816658928911354463015282068643549962245844186630965837060205356957550946404021652480498578523594625621184981096268468438046571699322286774862680008252136170277311044746933584316073827214466662507794370634445819045163638362403864347664783568131369243757082704321994107715912796705900290913817048497210369140934469206104727273797998888492590630534208537488334871271923528274915842222548174966921927948442038111654916900570108775048621939731247809822171903685890276485867941920401539358510045727345460811312993340544960827216005346386479106423807078508332800744789148132067570283606052706321186581450656288576693628607433927279449600311452336352608026903710468103827721556555720727866735211041381196927009658342368914574005772045234945099393585641365277925266399465058472372262982661821030742243143970197536482757149980117382265175494743930327578874469775967600971653480209373320551001863078160511580841891482353535603798820402690806941005496637089195852509381722986189565444313051132690482050061276132499271353672037991146006046152136103716250802465301091169396658562744997069337071856658429737899577718639574150552668200078898860296058706128881136571941633837056634524052900368231059052504247483066048710486339508960306518336249516899072919265425525253945527929026978048968944363857812305029664249423316826237509853745034556213405932059957676914598950067711567954008881454830953157468555609174149722672756204594440165498521075593539022607360134824701279336126475878185563252849795217895389863043923783952695424267704932276742587070852412946878373539614734912248594753841060659563650336761242552621786316515882950858790732618886541759034481950525536846319838455537412210528160903844622780833098544505428421623903739287855812578455446493031177316926312253906797311622153672590434042712433962873288300813233415098375881974432003031238959671996297069298071536988822999444772312691564688349275895327333211833305328401307609846432928339628701312259183381090407295036125741616141482548729596205332130479336781938462689755076091714535444569885572593602919025018649530452933429986975525045418022111533483547245628048418454792414152361131255989612689620127931846373994955355988105474322172710481763251340347948029115035060008548874872798597443244369141030224944930205190103634004267401327847286470635368971265427025552575064229692775989215616432283966124382904913269934633748352940855594175919024003921661531511875039866379025390630695169522012066808624443399690971612265360382002443101932780283935708969356125212888031441444782614077596538442193662056010070169181887891145712027899456624445519852321535461626556649602103900842015205570069804787017284254467706227774238770393986171205859142543492970853107816488429147568782482253914593103827898889002851514511797503233170431905218774930997817314276125017407153713172533067081426613839273493878531994469218214832481438905006850018501198161221220895740614626932370166265449590948584198369577843787740192224284359273960260337648831093294210654253851073370344130089238162620605071109364485736481882131678917113091030287374964573440624586269164637277353468406264764392752612885498254966041519958563040927709748079888033072014028384098274449402530910413936395802832484762699512215515358439306269014676329183556929436307123824798914807714078163025432745495571447932286214432127824600506930340382312907901668264831601684303593497032098225370230995241355084772048973560376017925094447413837521989353603449260642453385885019028811672052461628893515212635685488436232088984487075164146039337349079431495966135390716567056322790730901794609728021390236485358479549363479201216343433162723152665944021828109027504476188149076705584196539863761546250177889916549376912581345642793489513952458831554681637069463247069982983948781597432056436787391318875742386378360244395612892895721866928199986884162929398628490677783286611786999481860875349454792131298393988048640484858778867228760617248457137460216941072552619389610071534180160784354311731818250194606805277862977285637183885243678455031344355062963778080148317040523686157789862020766194059732497223749254064051093199247227439494350589105148821787130749723875853316039698849580781696225226426864951413132997727103032767891186200068800329886757910380156083902523351976631727305744115999036560045575773152003554392397731730827834507491769123423856326750295178746092444607665109249863668893393484999084119730840880692557526743064033183400408077718683850323904259595137435999761878341067246687859885718733817236618739683022613663116124444144733068667567730738267319586765815798869124302836858034920176834025283035115666983281187884716378201718543868770793931403837610095849752377049493266815362310846121912731294521325482617972704819405926607233743613251034894611787405929011555005630636633973612154235005232284360012443183372120953281123957501196992797185122739228784331449096772744780229043397104104985108776144706993795979234389962661916174226666668451546902537738927841004782437985447434154398137568720273589090440628201847537521858907739289322683712329921193416750207932266713908554032990732028321043179044251229666377297918949338312295387069442354555432239977432105600623428901177535747495908188904791139716366982116899582583404314812616784298755890558912011587459993701379324199916725921402603785865226671020502360721007635287100229151408700698804647596211580307014928561243052678989404207374860690738235303942838500407158192390468742854653682354653957824998745650605020345355857166375161667655475808534953376404577103955501613365212706871765814622259220453338409177281320245064351019634920224965424255396503844550344895899925881872685797188996989694414388699219910965031429916026312510148888426197548501918966622567113010991429349059716868755652214262668397439240703988019046490897432729054156359852115068878535207553241773273424688237053417757349034012658309285240747808366062339988051527097282645844507342045786360892571623558143146130499279613025474846760104963099998714309960793092414218977350059039996383589088052856216674006776428724778455438075283846779981333128370985991594441933950871052141966782857790460689496458759271616550743272101191174617176011086082057031837750337833558639453925553992911509911686408917600761907505134920330386606527995895484736936948313122203315565580670647772574252250059299831703945908014197556081957526085049413444780864267523613140767066134822521414071998969037119068247276878099394228451056854335030752548297839549465431646574389290395827351395122704213269675088839348576273248193902507281514567793513574803346110500304855861086155580586900573436998046340192174080311893381988347109660451005972941358165063771817453706100936426717883433201001548493413536461309084968800883364398405134693898287172249556788179048619167607105617760504240265678968456189774566228388572387401188435364847489413626648926002276986149143187830754591159069798343709114732320579268860320501793281650986271280270823953611742462736889138314892492827186017907584734396388298662150318066728552966403826028275946321456998448019597262487926258349774952022538863814872057013236277910051666711869944443611896868972339985167163615726143738063208226069702973990324295749346975938438692031871302957522702339365072998688105183295281305561542870357494960294528855111768145735799608440017222575438198308726522037773889655877864195662615188759260541061099300701096035749189394490744517136568785141329448207782171039483572637387673420262341009487845823476040672090717112470672187321927637600595567271623471089210059399359318901295185877577165307306055949890284410637991429195272197244600586472438570737087533754794795935714069509272477156381497158443842380516770636347961053509541273834121093448259217082304470345881377377728442280676506028008914942220680206028229948693680792919321767605656757942066187277041031777639601786299838115755626840712139224219284061108271406642406768255399995194963532675907187805873817211321535677465064929191280015195367073681723473915343203153712773836730954692271701462082885970311140311831031128476305026218250758394365425530514194896301431362482605107273272564919469055449585197584491822763172057052441995738174942430918163577659493568166413735372800152101650376908363665355719196779300986641730791869378865604070405912612682782915146417492481186277896490942059877299176516010605033015044093537411321643966244464445244950188098927702110169137769395318053638576677088455406869225157115328486095591744663826309591960398148474079065452976974362928251545356476410489492426655154807862015358202452560352780473367387219787989282138280633996244775217911134976553410731854941435664665730227645351999693509681286848758794894659524022613963891970902837735495664555563037088257656513377219138861668680867846088489424384793919334761342965114226565117691024405199550612722148881375715117272542279036476993782899085856835419707951747782542471719507619905904487511468560587657907709223210356245533200555434697875477664174605145879365382987363780444936959340021595463436630687028568617097078385660236641828134985227338017178488767670198359063830054871810924510336856702083693457440303044776032322880804263210868300903884878701764445122358216296757645553994765895834461917171500399953511690809255826439227938084316469644054226740369507705500608806738840333020811701094134076314804605920463282732553261886104165342400298483777138591124001132836110934012838299661885927847277778968813816545722927543703682447359195472607304443344643620624152909122279522181458166991123468972098416624712826565059591327265287313487142420307777812001539044326474523885595557379792961758799741437785120152218542424690577768206082959487445501704180178615697962939094897636192820733048596844550175596713381536765542673553828362463918623958965464618503765074865678460735159671635345862544606829756047867873996593054549990120517389942799125866286428395904762874859877716488052123146065210725708233222147342494615342737231896640517402569632163989129095297088027368607630137435210317268222154963596735876607407058093186541190295924664490289980699616321995154263452845719109041378101002979936614761437154490773007305571058396544756034567550546823606263809401269445700306225939762583979111812436955797174861461993096419665154221272881918015885398100395888414007824148559737846711537632724763252262628721773619879834333901775363208980445815683082243890497038475606262560698608097565365099369961244036472846798368839652468091173796555562359126579370758001776770342963124720318432116604065941499973048638946037164637424462622704060289888969911251171970074412615968002818554912791381961710172880735172355841181287980379085298540650646144707505921145242179631327031349482603256594623756382466692002755532802315274554516175196348119409128669621905658095232780779635126016852775496089070226695328302769826101774215354113120425174435604993441191092087062522147004126990363827580813183705691983922928634274135236821116451211374461290088818031309912348344291106847413912017678337898321752521108762088550837885711975055894940313533174102105503223321311004620607605349086820598863202394456359426813688658683978461192405352512919607761830565864738848853008395786692363198715808702816583161955696874327006804884058843566310224117683835357037245174105790034422380448019358543250369908865269939489223262106296186455309454046627808298382206495646198230002219156831409281144156178847322142711954495395016860785647891524250985140496561179316301595615364102747404497792530929740246539855381521577447064306055421473322773658546387997522731943238439617292953892849065978935758510153913952565928045464639196282944098137921227332590106491628463822158226604959663396342508429106735619434508277613764842989487057851840171072730373379482706443940023988904555003962913057640935273889520620958244619502617578501203118909655765509578733301981843580906422257911962040633076342010747859618836911313243158289621241731316722437293366435722021144926196701425196874983503402095461077198502416347943570826783361641082177464389224888421109922676243727511866365794241334763726847817089686127009362193449925418515166288229890134537320106423405653961273100159940246897846555964733212575777454902155854605520715709678199533629258208954691063687303445901510885039415381770743394735780522313440924740947925170797607646965079412103131472658832206441460585005192207846279189493769983150565497978258928272169307024642461481803316663984808984214925226212863428331297879413531848693666064242513189921972304528745084996014010863061797949178467040169977449705656590301711470146754445722829086100559545484413646150097210598944619144677188338870815589953672805036994465393774163528500283834296537405053786479595256978048033358793994760381521390279153011156791252030809684248609098400001998341304290368618646366946389362369990673846961235102504981854827183620485899601158983858304853724917538048575843777551153630463711001368317605866070920926553030939207812488244703446071481702775010196220425398368273646939671728189493321687047106061187888070900420624730736028132666663278547720824254323296666210176961493209260193433450083710339116280492046505663575320664566770716196437321404891018392176074059499904540245510186614503314154424082392104699166719162711374441248724288857312138885619985959374196228870383369682495975582151519311529128647749413863352393853412137018447926601698386270180769556869391648894824192017643220044446788477067953517273382806851031632165479705688846985953348259271414999374499831261671179374268945190866728980160552427633128167557404355340423134651012001364418838383822120321039066000009347458795160698730257854389663151160571978116652868574505450039576314210695503748542129670581372949055284323928824832723380872503275923773239602633088366677894972655770873622687549273665635657741231629479970024046013037893242025927613923971941985900798823243176400696354388468676308552850609742825501573885250852318920691756234411601855979396597538546021837210807208892578159927998567910747544825970780537867179731747956589960475396644371533714944495357034903725845691756965557071263022837042504728304303142207170416374222811385035252034042844750229414395023898238608563798591782095026792506494487968290256763238567068942088458320441811020859555962223486534776678543978143711869081854469686402030521256142518601300697389715793142297240768893879995480289054145688127838691261072264062327644658275789726122153240834504210864355497639046130609756007985833947378938203678250435556788420267351849618956033530910246726620705986300926707629307239628185697980297787024353357702653677924258407288901870285231164892313168473191876990145714815080328766692706721278267321430777764346362688537122632126740772444491885264400484215305734246991978079143418649622302210186444408737329502821601488070518523633182115658725817497265765241250442368096315969513495789138912331750944047037102564176493114638442926102808733771136000917905878380770669080578230344222585874963875364723041558334491512107519065387229377943057788225331163157239425659233614338912094692690254061972811328571424307288195869222408776380727389705011256455827708556827341790208787723725238610320559174817910751025158887429068381690051904176039443833987390504392389971018068492579414521746985574730472183527728361812427668372554454633876045140723313154439422757305981977119856110904816403629888039486927389748547583807724924909060733070148456584160787818888982886785563504229837646682887020445514730314725229415929310648292769035060430024783897824753167634953161541386156382180888350750649211001640716482745333419271733073446713271271697217552942282500736645503660862528901584518624445451135062084494452997486795656005755795606505942826987113099306036296907465024581077865218064773640401229005670397254367455048064623233594973541866163392614057470677580924416878249809725266265478071453245119441312101578486869530217133934422890544274601315898478088732052082560967465038523050677792146295128510473920832745229359018682850877554153988740749469275111611392931803851654092094555150724818889048881538542184736613542311514893594096887409731398464067543618473253176483712684045878203123531631822226713366278880739123804275513235573444118986462567421435628963960062937764479201625578525263036942206568910403119245542246406694494629796876659180809305922555318135323499579040647259164572799345527166863491532473583289678019809609131732380678590879285275724306303416344319839981243510496177752945611251883974984666460276333301582766577589645146004441997163959465828595590956568063258172279657641748552946902245138713952207995799629539130607599877855455971463261330369414483192450141250540359162914785515158635810946177084708829280146490159712885386518598922160129072234218487257890682400060319057592563086727978069800781169855222961523406771354557812666006362914153111376528172966007803486502470428736414528254984375380769334365605511192272663444680671305254335014612360130669805954663605398831481730434241747825791219462955640269270810266718554792120129318050551087145175114105876530939886825518341806048879384479853248281214987493090807789377422447665735026812207506272039561003725556542901523001017296530570277063733840831461297511173120286529756683309400585195105207802767446352627289919494716185341519885276161655556196258820933216918110466729909811668338030205368740586364716364937694606105957714548322278873559104028725526960092555356001271473099428283583307219494056459354622984342341421707795985430877976340596744974854419404020792503678624228599919654596427299114249170581070817911081278054647942187947331509223572607092678689152514447134126613938246581755617679886396515351591123067675965830836219143760588109981218433128737408552690500996670554905364881427326774168952866580852799047705783623041970625876595137989300453871633661304359239065533254514497856681724588649146485982446623415512151930215103392109200282696731684974979657619320134824949369581137888874989534102084662881044697855961589204345950903215359725746771397296664794907178944995253986337445134619904668417941330790964828299886952729932158831463751465859757175704626038249974514709010624818432986667376797753761203121869343354494924645436657190560929851714163984359744332312872661521627275354724418988713190559484899627832296654018252301938342644486561078736667188508104514239146790564913400426790840024850779758279931569002411470025944863368739285849271440961054664110979557110788980870755143706256064874886156687873808782844645042889767861302499117578514618408306893560099723333576705926943407120533463337299629651129570019791765571367388077722134582248276253665975886606451322540332293382732351209001271269229379509617888619511310997910183915193695685039213388811499353973606012026378894755950444863797816688970970899292356946507450746631208379873058781368949728896505034653035078271793166840496037819520340544378322760723593950016356905889409774283651061365439955154604249072838970641263755213016314315568124407684763011820273131667280706765950437974874558795587317771712443738909226329064052967004352349857748436883486151085103312490193273967508500807305272396833903718337223591437092290850856546981471897086007631643723873058205809283788201643053354705129328626991981326454738566539324933151939690994032891715074520957090065941419966076823512071614860477314896427655157641859999748894890277942622105941517485260465921556598977413409169794123109892751474707538730327571700622812327087379811199341247616347015873965744729322470150544612793760735607902956894939130422905451920961431625498367463929309338278230113175940193270447962740768721861403891194610040427832469952544832140123339857555664644576865529808721474391800426298454049690821932917136423723011433870222309710323775977408786231281820940309671599379012491919583224734176763750961807407880664251761889959419341999496076853457500657615628624308745931312607361759377238494251481129956707203000696861714571004773834556297919388630776297559255540267012118600755744499503488117579691867970247111382243292009016624614578804947726707873025213128488124483065362131305046104078811321428500655462486861717597617413285485747943281093143940799289435344280603809439743229778682093655267206463964808195177401284136907818517524152650066617413900410184495892648726539214386354094578538078932771071207393991635486408244474106047026167326611558545093507056016471138703592580329170669867971684908673794282307500306087353239807332956255272265960515015183533321072773627970020123502629392883312798923979710828624334695205818238615991163918171447917982296379760110891952547143723151438378795462129736973399583996671959330544996285498271888800036040510721124632189584938442801176697134385061605507630817791609978353272757752211856773873806663315822405419669413731351633944158826686027259425163377366115070458242120464994825365016587197411080814538046766821590097981541756059848611941188063802052897217563325219034481434980815031657739486372679274267244294702150774486861056109170994543969057222693530274620942052322829062472671473772923063501186457168143822976264781654888538185248995321524270252440913709208908885511970527197463790050074959922594015912244777271871018437012029654769996375119590548785268978954194368056458453136326525763151331894985774691485607111148967456271702375572445595698616103390438798047972506546234960795348133678272658314047868774070382955988376949566052918771755830332726349225585351468993644947437211941835961983170568997745123166475680850784902270396749933768327069176131438996072152382448935110582188355855089210204847490722391401739674361510753513202541968562132970140396983265007091889720578166390187663499394794098151348393187376811451421046770517321855042921239001174336280231351855141788892088957728158620826700616105439183558694683480986295252940997489044155353569250559192666346564344555003690542632793640184364523948760016161945113340544274444133197535838727034168464664166620177480066772418964135012647573575682961146729776890520636564303853710464193663827680490632355875462549005073408073854215661775184899573560924857444952071205305392930799702290636613445446793008152103211037257526639946512437677743229748047056383254751037679118074709383348367838167611349934922602069656289645577508975380594833433616296661555989383039056903908322638012423831704377511431797602227464037646052683510468908007069023364651366882681700242414536655056514939183170769429756643862031959097898266228640772897211061903894656550172188346763485539909598261156614496293395492880397376317944063556615656546376993768531926207592577907944217573597486198008333375139185405099219017752482542475962345635348790114117315409069213844413172029076853145358832019730647476779316051336151940201166204763952282081835575924274025454325698151397963591016827804635669600749088066402031177916990572013197869458954133785832188939356977662094575897390434421029234672476230258423515536971407401461745375768198954770799733676664408135791237200200904750463529779433018189505462025350836450593996693889454311257072862710874821575287503220410357277786268432135603613709410132036132880586413826278687347662665809983279746615320223591748090254911845528661561637721833665531443717035339415405949767349488522924391384894383586041016785792371509218889088292667473034543394376649854526967709685551932389024369652155243883329808030283504054644176748436390627380391390028578697757917932981063855849448202758791703851226080002076956620503327062352635282760786636701275750092114657051307896615136748777626017281865639851510117699177769307475610654900104838770368268683801772243354588829581392011940499569403779157272207610132221971548827909781488978291107871103295946366058911756426292026632396593984377810186498834166311985397297229927149392297889340429124542337794608928104593935885582536615309658882208741658821721058025239814081942579504469670387594108889413938334829411443150382164523881760184613425529557253165591614195584124723441954421986115767003001102370779555331649354312448373267102590743255604725796987843673153027278831000253508650206410163602860936729696411919003355040093155139034900102161666573493373052587647551346091627533967970615097102322935857301667324227538029037156298790454194888972394014501712273290456447598726605146827688719969929878168725507655469064975922371095631386781115533578687137115583087928047292500042811278849448821799847594771026866895200164842825837403208889208491833155048526211529833616263678265006804032067719304517878540786371925735884221354782899862132321939038343193953768864781163418912740374422522168154329498397439409039207023417691446634918495021678714711014981753427603589407022988795214331159877144206400811325626279227410459716464116555719856047350958619526159251898197772135537324934127629580978254943553826204887110685732916305321891639210668469809020624866461689322926860198744299199578947378380229008305485666486648368514941721726079426006793757295872914575659361595262281610806481820746086609608772021744385012846890512215169946300168212620618870159958820105749668959362677275368736701407087006269820218983331589698077311393242420246534079785571613626492231670217080890505280712474947104720607480692821227404342014867744128028545650041111370898977295603546177028695683901350728873986068260316301874036079663261802161721970416778238588485151812353208466228449899143890993392952613244337057702778840488259715802882504940879076480047903425643409167428971896718510273729711752247276883441411535677398295379377014558123175377126270731682509950336757642562350338184925162324988425676749122612701729775660672161474755498506739854014334726835320376594279639732470091482651247680479164070588483515260944502353817609998126644253677320586710879739141357106990939346226727549038719161712282909070996826263662964706105200914565751176474361315518843838387535165165252059740484353063996523396670714659074900092807929504333904889301899064338464800044170521895502623246642293584814786538857745015043097551692531202237497503156466495260363602203082344181134632750741841310673098839484191249938064137262356258717365350358938365989943380289761110117032635121904406917293902935128413669848060133745148362367373097925577846948861791286114381268748146537589996401141770210549237110801533388984242298271102276152298776159663620668982048672869060000763161072636565213585654307403160940427403262493079320443047815665963759934855401275148249557919402178326294876180487305117534198191498183196518895869173151175172003228294720197538113393347507998856393666499805171990310313162871138984811646058475379446186152386433473920838905692682699288573350030771250115674373679175647310065154549328482763380987410259067670540746521910864050410064236566861528396349392655658988480004528150152425310887947682106532860505070136425155385868547300543924714210525716533688826888138468278950246831768323238467659756546802177821981293672530607354299576999584460209500443835743512042689094428035774048749605251141707224572699204064630651229882109200188765339645633233185961532659458368955827789421716670555738775756868466304333698179262703586859526605123668892213709548710203127937640227223963065253182230095588631392578488422849834133692382742345937577668285112578784198000584052207602223317028658472348679597740615516286096989288750265142035914011563120799387465712718557569299332439249241164020625256143186251873991344988694378424853233236823928662445625397949924657542719701008570962975936481743955285901941018269830379875896575323420417530602838066930677315699211017957146440906681581308909975497965578921912990101016586146839778688034520405742114354558552920772749803737901489618109365802387071033182361382611274126145739646057595694400314015946711374607414754359018128572863806525947638516841849216165590264742899566237748400359970465215894377653859081734248036949271844055082637644669892229371293790527433965560684301093611973618678236260955658647127690651803115526889806660409416228814927881088801354968590895258050361609865856014500923513237857895479503439656233080255556818607216982410899450807516444211804030632962543432206624966156557304515423777278112488148889474965004836759776986530239520549226250106906749802813104726629120613690292934368640386180178901687606835406683017495517150704907778716305695900737930604634640113526924338361053935364019752069825577783497153105972641851756065431076169047329306487179048654364432416628121518755053325499424779446901187773281519055375329365964213859757928452381029943338913049727235971584573257989003101590579570712038893936470063028645218882339935826803376932313048953908459158507805289007487978126647566930053862643707695536087934163004429352254040995624537588911314609781874173249805043602578194012005357237259816743488184887825867375017559861425780626030803947062393707503904491151103879940186561516980832236960172632947435129252971409826333571899467646451730752573821355039531528337998415454023092279624518505180444780237607872446718113803649308193827589662076062473122044449097796377872786960289919308860596851635688690845113159983999659686695017024146051343077597793191378219132787291927920070901008716117576039238947302379017217025496928248097710232283605549604175960269524407712517314951170359471277059617159349951331382680626571306052242501294009014316506007719402569258073404987783490381226165918711024195904507695422911385702230297663521756261309269437748769611867207416939544080502485749999122279839891453949419881769733849644786020468671311860727602287412743750238624664994354917828236278508586623654895846854137470286102239441087500023557188047093811642564642331280851236929552441084823664847709946839595568828516666075827275299712580730521668906516497050424359554984018201840424912077644858854057659528464355587127487090335510752398788212750735931346231745230390890733959757185387625418617953724018675597766080946218610006966206244127609119568562213534953837315537836032924596052771104606228105151700359418407445300574676949386487491139782476636724212243700458590326688145344309402384836059500112741107489889586620329959618196662437190870240903267411438615210684204441095266412592291047324296424985810271623591908829597121247999906812308551909489222890353719479161926780218363061642438212307802502636707480637169319044499683157293652870820959691237500252966109478030436586371352861818253999167056563884328069752523572021392367435599037823513198453934241309309650934094594642858184683533045544942174813770616750790120957166299205794606408228651036597530313476445075473899028495819549270957686855804982091641308129652489769506590955281188703784230489040350476334997409882366762680010529064405751942902663566529340042552742478351543383851548728832566509079984612648975252147368566331195589488712935687769346854132935133299753965826660899083249869416619407633716110852689689880248054142980898445625816065590832221901233493170468386731376879377634853457935577695061460638287971698020926942816035260304762183810928115375504741787661641814631734290848814218293487852010622970842590195108384471254413390729369498560090893602919161283470223033699551498843293437025437997235656868483453998490390774475084454983859141279306120763371612007590888806161315457736790072203215235064973126597323548840655468497255640486738980299624480271092840973767134456549468372028982177708040115025221565987199650604398889181306823187770702294149376617994389390620614364691430185770790951462290663457379024204050831709541434538498915630965298466142899183698701909382147633838505777239073413265255104061296721895564513470850300620729031651562289793733111966129525639258432359171862954375602530608310713183807579110815558415468473786260649070382723122042104517707547055117565420612675208850280421434413331249299196686410829815284544775390545288500258708501939182957605570482152391203054791715137855247570118114335346640274731110484423132533058123522879535980533817114926228750303679158904143077754165899212560240366923285740533560932782625246183316502527284915367502131997703932812154963274265327537191695529765360046212238121636121750220673506247104216062761471758916356401543031637684489052054620084444561180087631710185269914728854585170432308873667609608916396950588905522743672154597244656238563431104329597470313662859090555933423418784825604195609981145922997949517999568292778651260068719681336336882162029562098205805799243915909850314754887998503403910472259867431768674491631637473357355877297724223615059975450187109390108814746978415701348846912131122166967140966011687906196673007159779134523081457894329173525377755854122689118310619621011954029155753948033552861716628561446659852548570474791877985481637321734198098995688984187441400152058947631057551193929525140439788659774419509730819315035222949418988442328726727699051752162001988244861862639356036962223830139567339868444157200890629506525088431260011775805107068742862300846638405833815259728036009357521878522429610894573281128519799891824822738024877216465267236885182727014473618218979713798966124826788591452113903897400915088538762132589600942270641876386337130484255378855648997606789494534160098123137420902209261061987395673497004354829557181778853421660757757560847515040787103777074817188047184265757894438991231192547520942632813415098901606058573469345163366898719070884565170258550285655768524513422169959849725985946585585816084927138965919256650380876719372098110679904868045641294113498975172928138237168529693892979812428086385770373801623631475256027267932103614157227577160640334834284800744138375035097377721420147949042443626896853313868131402920198870929456046446261554003968700567493269724747520196289088231928090647066515371341278300048095233914199070472665386848315650836123642345998790914599395965288171601368476189169295934137314508200777023379423220865328995652272982759453948920394109198665504513461750670557036719387557778284371527613309153758785175472379379717428026450644159518853566603352851565965627266878740609712277916940927660224479498044821236235466167511016485336186905450529808676970911430292491805477153581478622490757685032983655893307646513585634329289468929107263035138784008831570612778925336275870356468044482810906618282472336891993549354245993531756226217122313228201855620431577196487148221053481127649409453777478739485096342204097122628580102713974552934563170656516326429168866315635057543464518128088017371738339983206425018380081846579982178802653865010906467070081627923621722934930176131782694661194095252727921252196835177418877288012326559876997195996982902456071272031977308582872270087821838271351692939235040201852294304219219157823023415121955975286704011999328324593568580157157894965605776821637835898360492405470440985627735718694475171108082553833952928371597027912497201847491993705124861949460623366941171247144098139262445988004098703803748584394856880196076258604156120159586667569892782851330147262980193866201806119129207456028050317899884414605453583567554188418013429885518185173577936625243995694878963749514560417740060987652146129929091375295041360163980855958592253724123682104492983711722457971832225873210651769902238649462305569403798187626647921940798511831802738486842131438334024354861454232277357170397314859330278242147574163547987314510374450625071844744948996893291082704091274885207759935115287034050815352091548194793514582862299262966680887288970661593432909963594744170217416935302892227398452457459123072845221606864405678222016200694285729899994560359585436404411540947612991329279245353751493934415963850288301719598235513700272451557200243058375462449216762052792553165158235277818775768843604110869106032482486194433784269874051173544210685787854736797116809098045386326832233870462916422358416382752063685556448092358134843017387128959818077803851027540928495649697969910220648251580315374395181013046607147773278287892389252566971331201032654936262565843075521725813233797229612562585281771258265248844887704143874887993636711731262651539811417181805462113557747942824756371959491952566349979699515497375115519740647353491933604627781311799985784330697517496409552322362628390319691601843604635105837576049533536065639981349939312551887799725711590816058970370614730684450513612799330505417442671053125946367053646674899969140406998863102985483038524397536651215098225550579655503954469478750173412691532905090620301204838799042856866855476301088127456873535639437810377346064657486213407034022301261423794765980568849380215233418775364337241559356345166720991731374251416813606932866985352400255143199915509754541402872596746496975673600051995057508042022163975750571489385824583281367097597831358222614238840759427388263922943732865116035917778533749342023858042027756148299174999049033776756175954506129104043570178101029289541552780201266847712297642124472627885912861354454485714845169672053740629543485536352220883006586112539015809519062973299812854436819914262688045539271899235347332849446565655066576432329573416696042197203106546973698684164465142231535056888053282263168720989818369741169032551547214320580631444627160628474963709311721077954615163572376727543359893396084293794777409062979392268417320798785824709826573890325276044674584559383758364084472488964112324718747271261840471601319826166101455595899494141853380203115159260610404649465872807740836172290525193883684157541547010682150513302860050778682853079068120026207484723929842334812013525167465668560236754141650329099042571709526377917897148045164905179690745941327233703690149542275656290815429325507126932332248079560126909436383079313082553639951725875097213460592993350916492897565217390581632324677997367612166446341394329800214231653597046573200208452561200128701207740369553288478636652714953234128000447591270222175496639054597036622489873502497981622407131215687619705890392230482236778982750874831907691423567431161863262021737144549539056975195169995735563477373090149934847140197717809331035831162497573873713204482929827548387412614301746917237938365168424075903133557431032732162533897347124347027843852856860991680940287810371459901620886062162240140140581773537045514525885453417226826846363425052276377727566061604372977358920076385451051387750244323094961688538481824731117099181147591539284302398276322501820704820552649477340167527050201100879409630190027557073778955045520442362729325049901363599368163452332462164396151546866961368889018456634122411272396229948601439337790865273229279525619271284760051446340287017422209364139400290258026760361576781385566702627087007375481867842946967784528542774145624375103708636798927697253892843289967574410725388139494486001896292393834970291819853220598990204059914859995584462401671852877829860102575306762275605004037256360166132341611079056744636197249937901500340090652181386228156670138176381521710080745681169919818399660376322029727218936422747767225408845892353694034887923346920303196122427151651522648273068498285432290654759595658508770286837438502798952832030994215183626697256891982806822209848676442923427390788479311404738298455691129570608527608611725587100209572995327581952660005455790382466227288292905388344911397156805762265258397168712401789754190567357372822207951630343809854235545425057987387208439272469340301411062361278122684808523402472912872612544946693358834055954145696129582069828966752811870611800026143117688720189783610219306834523086298243930632849872852020499727678092348453288047136898604278043951939069469667912681116224872932090880358056937789920020725868749202016690014915341503228517499615816136160161540879075319428411400255364464759849061282521181902135915389775918891645938465563532750274412226683179316978347507285791990696142107857375714484362433170969930678085145859638521199912208799789231820330237436978098232327116057825968824129549894413460949814039467075397152166152330303905759086422532842640172896910140730613364580830911028063994963006591677859467776593388520300231673717937309676122839288151302630375980269486796236084118600164464767610529140954422525692363701021488040988113824803828593546119524391245575202110320444650467750776022261656843252987984459913045671173596335653031428499250314117132511723248841455012765476557712728300430434891948914397065475436686042600443667905352815958054246283231758606350880199833860687060664678617040971448458513927850317096001526636787396012741239221980536306516719649655000616575135311386424420732068301196959247903823754502246417868493720965572029842770084321799447054689824468430133380841647464619097100888440465878211150401269939983476041073061328772547845085098485092665044066431431738086221467168116023354950936523517602902812500532000553801770095857678647753372373875561270259301699028786324723129965303338622738956270689620964322423941753111031714092444380193374429462728156827947030943900936559401312645821385181803844852350242071051550826712916930853188927994416652923554832875108369128058447571686039779144061580782022997555483847862334703620739312270238895959193319919646429184504995481973738544796400144298135794343179914424316660893760102019541216928002388517430245625672416135679980233105926795890153314815133264421284602744781938851542548999677324520530173825435103022109766206141614193529097266102648014633414777118218826542098032858387747823982385934312473619224094415914364755857990653318361996397914000678344612577600781731708083735528057364613238936068368308963940725801978700414685533556987880950946213368056975149326010655521919967400759033495552585115998676520102483242948129245009709671663259404565683546413037915244633202248394689356570546519323986563986235805736381004025213233051235942515777402329346220167281182881591973205864316060081199867833603208249321382139166250607656390246148849334125450607822257825601518863615750145109848257159318409522590034511779115245815552490932068312321325036061939534054544821458721408150103389490976495741325416908907621621356263977806742461106546133697549427713473991254990429762987121040414902336579862667635972944526077401297622226455718415642905698692018054492656090874970151203600582487764888446723249964792598449787558812726907839265325754949963236460927019437324902869661797799945832947703265030113355948921904432107000304018475333155979197419985492066668340763738556100083105844545107774811456938141390418379693053043947900929509516204805391940472075902247684722752649301671949719581689400249815716188735134324643231190498580157618876305432615837446705775454792236724541240487577531219514455959555307139438880446872267129482495128455985888962125307813287766551464151503798065490448238565158380872622440020686891055860113278179606656381545772223143467601149141390801816019746489256604022169413987376992303172386677188112676741643657880164294026935425041530091249998485960170063467066001353104730672779165052474014095931215856134522067154434037533774316350364096572164705330800575467314799901624556258600096745697937412746339072026254438023737430351480293603264618743213662147131518133857956285089082705134281167060616895339722060226710765033042291628682656623272327059768590598520851086611054705423538291743267720596016630368878350448707979415988581269513006431878393754535066364739611820787574328780077338662561226004479878695867732383507750062554983428961493322024832703532075808324147069152763047581740872325591394083367480579989153831960493293916448044205507161470242150596819318578336628013160347582226794865200971607480868511111978723644396379339448355861098036339942174100907926334992852598251304191894222363202543407574530977262587128644059535298911203923505020509104283046473314472761521081330242059742012283104733826686656773066633107689125790692775280983203932051703833910117711329888036461476274363728771847806185800910763986470480415475885966646997742654275412109282201077959677784658568536755797515309436512255048933306326741002114531775125776398121942132249185650182108990347850298627816458374451902322101100304888006754394756539713608401619532264052947256751982738724759166619310015459122555530312459722121201951325816715010887657629027675067732764090955011721881877116563859113633277545869416214166088539342509912866416747044058616322376063957127220963819065552542370604283911976755139322990839468869629628017598353240963674056445501953793176486725373073199178750799936912281851256314538617576432143086131496637101346304842867268018980692736694338537609999172715046503005574983918117264548892829209006979006459924804219061448929411978678581192813383368233840633782639002157192222931648793232401956613457325435438898271078550530532766499135048786816251281299124001193952807021045456031928334391304947224709126176047831781229917189520319453459609453435517041354743288914755391956465637437338725073229058390114627335306066121602478784334846009438269496635372585228530046977960387445922296049574481095016471471475995296802176193617245617868599527648507493577658701051878485695145991241286320250825541793567293615314917333927035274904367900601148520570312488168144110937589782563833614065663320700471053083373850216563309085307174914724374215182133464296573575566364230171695205687676689350045999482682157069011415006604324012278214895218614449901387665782547571148018384043380461183398977095030542841824874728502733359392041032324860402585273550568299803333540006762057664681952197262170830202417400893630461295722336969647622050524000939499856679264189368465631750155128480078140241581137793443718305278914794174055797776910886599441733261204371010266471513835240534641111118348796070305842828186962968318934958203030399564538560046470562094506310130581541701749158111943754874252559150951558222212454537879346327489163998618644978558785577384168557453091808108942743012906520564556271353699285398190431483439695267163555146677870551985483928628732143421504413668639768360641601446477852004386985122853217620291544367159492665149981653867498814218496237753984687626015929492239741230695114970678019385215792762089287762952334927566627853195410154274937049705538756176657905462356177976340923219544401919286844215548578713978335641868852038049764761847069613540847578127009563944727446710966359993056179669979175127723516706440808623741037391212167710916044000517175309593176098679698623342149826811784525364921374649950812974377051347212240907278310443706779176705757296524709085901220855977624667656523584946950208329919706174492818767207681484353457396481120914403919036349493505835919579012539379172884275467003491377521248431854518829955403190760659408456993586005549880813991339793340462974743747223905703196660734601670224417292165714798600757130282294792178518657717726409378019073942275452264618339089507342918996812389528089371254738060509796098823044873513234292176470015251276547791811877905875534860238426771565123293568933843132865185020706276530766051366388135085107267969533932697600012238181232127186901051073093545278254493166440826067294819096491182805791699849690332734593230743348886516236224611006694348467358220919725169771683306279304154034875818422155335089357547970635750990169255881720292559295626174882644172461090740892491089834471736285558933487736029822775543106233160388788943670946220920361409748209684683749154324774399165432582902579258158097851775024100811186191674892697173930705913975504823046457561275585613409094683925577914745303059036890561246734719518795170134351664140094372234435293770670196657132673475884213558498133708099417703381136039382851369572483531537225557717524324590896915969619282906457257647019329955595347018614548094618551670944102532549187152997262817666228938965310583537930775062880358762421511102002778989413449279607520610713453232758078879699395145510835629112808265767244195303171058528730068587853513367917773759644249771571550121020362315259227988378923678870402659850887807266025489142895056790358534444275477151970706301672027820710723654387873941002691774763105114801182513996995449639817562955925855917201648445813697326779912195930231574957190253739876081069415372844691724343708548795489373705978369540220296733868443269967245823426662347264539139408061315185024747188118033658139274694870955568223618907966135550591191908310191142357624226908814850007078457317013276780205198248715333267552884892438874828274173040147327798159350334660815850487029633040684555849931074932238241117880374415968198608124106012471880980745198717678705467775652701771105368262675840730873351997771844316635206826401877592306080818010625495056416127477429845935411602448560745545372984692083844029683130585666482914071095908148697552165976782158654754656330428694422889029257712580298235411597148543275156170283984604226160160018350877751571672191771609941812003290565453974350581999973609395535941871732986861500744323504555276539387031406859104134969836462251076898674981979569205721698086829317364493087408528180920240552874137315760274980672092513531657351598719690735690589658320219659138260509899604680544075456796648121073604586918735079862911340779136129783711613227823779549729501082760034568335988308098559770368243176598984229816492531552632626594562621754396341876826425822825656423393942068959524003472519731121880530288451293278397405552497433714459951523766220797749159106390373836473863333765104940379072840338392025332743864171743541915500937295695623278584084721455401249594845350363001421346673034784918144420053202182745642818344142717448519765179327469462868975458716001294900747815568729630256383243411041837852863308684217650555883746775676087821320918279228366093528901975515549469580590162230659008913961361796845620202741218047049967142464767999650975299891315722616921678226700075408324975812836681695436735988214534662322427079833073455727239829114771482866868534695653172304221944331789976447224188683332372932652615682487828715864183101675201428498157049136725914518745509599839228203811203691132397943886249312558660620666735321278239555854692342650623892853528895538985740257375496888612810842393446364403839010872911992959340244190383390528835645075135391803652939291293171530638105994732855792848184564565512480121083207949675422271261766987997151559164172821640069228814886984948975027299511801715755493676606278776167528647283670339526572500962491906991642150742807367777997313704841467364762414813886906702451442429806710507419080058282011269048832042417084109030264664422099689648475124654549138176211574257160020758119347797169076432064511724025064692134953221434651413313165028254285471316066410767504190831721218658247223315817410088371553861762106865976258890796983617562130759084911697209888057129003992898701358532936883664121157813277526679190522031669441236328790713347648007106759373742548152137086961454430565829026437516220695658190745894170434823990973363401460462345652210816502875504832102230343075852710294822628532107224437257783970502086764760310207394113711031575798473718422943897562218835465978640371507879967057125210750962640114810290063330687435065197388956561314776338726141743692587829389414997427569561928228921652597744795956009338564851798351781325636044660741917169587752822056019672770232327585138460920963242453113892989555194698689739378482850655265515246429429659534042388759108407292922735729121244476122224471976101828949217356615895559591481384959131771259716424696232013944107764694021515199866657753179791722077252060892190962680017408335362485333629599606566981785548302541228114928659306421736102684093479385930248959676043149551749507659847224076755549581098524027454307313386393372194007659362224228760538757750464628817912923626983325361538534901963308793610840182417358899469240900940709629904242099367566683380304724387037365358881339494064053778778322203910321652697155472986109941438118691411857673357077315421512617338966774418170631881421382063194568663250264949643118880101330548549057385876923059844566120526658159761586434691371789978332793849708394606591436570709956880810533444527020193540233534470430282117178467021193816406727265216488108392657911491115384569401253081805268552054689614561231814412503256526465507247378108022780676567984898772666507819339472639136713408209031835827108474472439270835306734687601025439759776635257214463937976840180485444285038352529159932551896650948433554550696333787420283954510176617752796648162448596194175608654793043535319239296700268554175979113698704323621309768656131808921285704504497852400788724882760836679099180908803590315262050442608054858694764045002045965026308722463300106895259036998761077820774977093733209389743079877521400825318810652317346485591887020694591586961678940506321406125078276388752178077984271383758635822736119601270673000938227857573366199164204584045402752900418493876418360151476668958076321226313912164446372012497848767868700208208052809048139183211471300275790920005104703997420477670300341337563510981191840563122208401609602128209453758275288800897411491721255972510745211383268717429902533893154615108273331874992070615691105968851086840703540934307452281964419462753397850667850767909926345100045282814759647415680207486739100846492103494262828006011086022255089521451766079939349090190896802362188034167586702359322265313033917610886697815887791856889048396787603758536215748545806329127246500412998895489105385838460028785823572399589578780702517019734644072219424809915638885630680685912799895079070881113140428528730341650531004773175771588615606001115899177665010406338636693276585515467600512881300164003684784594557687530361393888230440672727075753996560205375694568105701163769022775650825901693946395150311094219248315656434234215205224169728930068667739995390239367401984534298673301115325027073468881149176925830122842043505680528402441594498765925909787540152669335777243648724868498687241342480533892681216998815281564413920640320733134999649603620553932395028637424312742595775959328101472909633666579245183029316415395858281421807368131544496586895203899485980926451675760224145797415701928262944618901129984452162075300646676764062859124387146151013334200201168773905870715760703614246116055374468189017016870150845016635395952805561029847157960456992041869314055774909289896635984496087412911599509805345493678971127707274095403452826073181139685684611678385813357986694240687481959619430420171749389469151906712281214896463136277866424364254723208897692894294267118673052362085662656538655646445893043137999722809596264107940744749512054291788780401015260255588213015766059140113523661378344748579049149336045706506563769001832490997752282117683647997436262874626762042673075121053309932169521707969182681242883628253759250361742630064430673249110009797734317608244952072911163966267278030688312405636208733543409978829266864300461452212631301450572344229381027256227628312843900208545448599954476866004846125582180492806696413846557202876723669335894092637047308405951159792424993192097889372274396974576280161378795713331290402425447415396988311074638140606800840094062501263200104421008744792428357616264582643285919185672350192090745436263805296873617975185016043948166370470209858120141908242291688025251139183199676601569874386850484830468175355065750747182209586754775227400276859201101110923655274265496351733845005300318759215041503397262937754174134527499944357262558170529099161275460389414575727518323826574010914341426912304951864979674941484770726043211360565216581140171353367817981093322528634507741927028797675475625034116280525471216459446779566640157141686219434851370637151343494643589710420005908172877814701010422337037463309726640960059373220269553338825371707975003441428424966029495791493147126081666174221563507256199681247491943429973490162698107044656740546961399319398900036280597906530961654106570494002745156253645287199753717793553268907021173428715405930021185503185164458120084609675160029180093365409537213174694262780226126713220383689017052346772340225923867990647832208425215262150167798371645087719319619596559664938676869504952252790214127177633665049753582074597474054755476803378785748158311297955479409536138849583801159572424129243436312859301431690054704760368315216155933892240339266320845155261718969623117104038219695436043897231004658954834670928110597110897308857690555639301334862318716110371211712170603039630446111230220905707193434684383169937536705372957268707498647638860776138045699865725395664796445931226207297679035689805827214148204944897101898819085120988720562557502519446726666931835539796564515364826297093871996464423760279388934170760350638542978482442269817977435430442359601617404253461531836650229895749140174629117088951744056144309783280393490766348465205563095933184895685884828742938907783234120015737160234001649953154905613393746067046129481582249969046821462208577317658656266173770157882441205400178828163077648674202431433522830935668991380758860452696754626671778049268085176767895671754396654706880907299077368234263055678256431934395293148920162998524893869848458157710636283757643303680303547792755849772071060887536217897828963624343951189666996995454576283073213349602195146395593568604096071543340004597709627329323402135021905225808878022118538170682156788487753510489741216966384735542016145166861327849899765448968850654803855607359772899814372829706336262161702670691871949469392597326660494802413696214775875336374351308279577932185985835210263266337317475956082147395482436545430977970261480330936442561429381613291337016711895050566077262765006837209993166281366720423457259762343851968838051616170412068998998481171662243663156437887277711505539710278647394401953538050534737341897048367595395708944751751018312986130145190587386284677971652733786610809752357902728283238054799111218048129487292550722442329477494420955083176982024622476941779971474644902633976403196106784862158354428316053321701907350018551022338707984980104120130781634866213885765014657332083581331609020475680633364270288347569456071525436401929010618230943930053956653428823372312878687615111107233209918526776769897646325486195839976400105663007788505894011738782064296792729023702458511012881787144076858979877164075106325419728349702611577242030787367965124735743873106675711289572862334468939359874292881239700897126620054049434671375477130057564491336523671247371661064689339277486240129802965302005411691193220099796342756021393672426383520195438432458421958898630687048958591564367766639057660363562293575708526999920516621694790739303827182034041081473550952191645035515213261207771044005528776821219240677584070759801569878820170069713190290662529693495393392728112604907277344491011241939911009185468134096870967611014163297731891989146936830034963587613469504069872884130921475928895238694324232019419414073999890539158323129036405971568868113679736569786834269635418593520068060668298280132985233678102672954480543485784477469018358558969971823581730328166328076372276495499145688785785002535279908038241322304851610951005392583277585884911363065786819206137591889882777067455908143594169857578926677220095613771782043843641024225625273374683502191315326568129716492563596551661729868557009859423572789689501613464586118716907018874877931455855077514091886683818845594374898994241176613378933135533201916653836336243713078673642697665921724205905485307160442486652885983873825918714102491179980305440525353631677490989359456169246825719073571197938807457901961525824480863043589163438252162917500032982449492262696050963001677666382153155406268615865154828395436612538834375930178746491806509756640579278941552533220170372961313246068922167937603767007898125830977966778399477493811251271132899328498336464739430422304454653759916653788784986265422959585422016440039823737974810489868800343886581927795724912271296859673194634385741171225010019185915585462769614398953788474140274941472561323898485244589984017200352907178357353021217713596211397992804905986514951187820155782904563723014603304982020205415797256939643089792084421073138322556865415845545431911032504301947898526726908283294450423924753609547328621364857836751306678894141323960098222821812593037902498416542387787763805557934215063330121690481545470838395162660633624355442298202062952249423335679227759038634082622169249705672640051501117689679254570488630933690859818244595150354583052431429520945562812391644609396049296700441070362644708785975090560134769483751428953364621745748965799929148377035564808758270493552035031462447268006374247087570841524504667004097032465692890565652708868461275463701807610122259073909488249280202786609561875153602795903285656633956399031445860855243008605961366879528752527805617717498326946649693456733293719770636361828353728233890761781217158956034884026341939432117206123756527039222423066149186360452522356518345543700746312109786561849213682844919084619888577362461155411062443869570213263129247668642343768100196622951851055634587640403615471570017971354405625548166291837560350097101823184960665398642061417060002132023358709824211894453034682347239249122159020114999989091182781459551962076537361076208665788296131885013446925252031714059057059109661570175082728291793815094202690672733232631054384891050436189602003878189712836084331856820774692382663212364999669959050923784917377375107283870663245972571021853371119381967894329423157224318529017753287194008048959583230304179433385343546784185678290887267458117163364707839846867006356307230280214051073304423495475446779988173616646707420134460986102912034598244580262804047089277084960429766308676986018730756255889369367382597653148580753891287616118222347089518385847219689983358607131365121809853445246502092819258969787807698478133146262911565605405839090025525211971771810969926489517265528825417603705780913811887205209733135880996596058359483373543610493925524043546813049461911623226374659514057652866086014278110845561581316655260634962019754233237382546727687158357468425301437008425890456780396329269270415466480438182942971588189532378559357522826557496134735588616270028842669343200293474289259647973751225709777636336086094097770454646833996681603967770096284152610663019877724203247482617935187772107406772464807901515709905906623358477497076988729820676033082365403540045516197988827978186858178003140203048928496629119814114937114054176906798745036530165783420048631825161724926124700174879667539050481198731986929852860868518505693023673166445343296338872165274401568383213887265269954622830213584140432353278331915480893533816409138730780025654633081047793175930121550404176968180012958551582427347989162465282789390026665420255867187527828628577119067076956016844923892973177123684087063879641570847908772951107859381378547812339738252712184696867369165375216938318785011044841267532320039629997048714186420628666859881655630311789233415022997280116748238298667576265164617452094307621428200525888196450743328362468198160960867920441229500572669944094948749827529756702292138213207442601189704093758602644898472920193272734700661196267545291216937931047755232464900207222030600661006106519940231575229392393433850985940276858878388863959510654530950765400358008568342678299185790279215332857816543785539508208718474784867601326807981088089077441611627104602750211698825384989184390357529445204545936545321958738222775221550413495347609629443641882502695911186932473596091185691875983505619982951372310298905196863886290014833554984803809632824359836932438443920956944839711810048924756921973572840718408233907798542094582390062590510481936068085328777116939687765070745838814551376860410744595191678390891511549314529002240955466927320006662477963464102198140440460149867943030082950399304719267640726698623317441347863418876216711313771411663663086798563053452233958933022088602434238601719716512143237611776730648842730411624326258383174922727151095632711383289773372494008989731842994691278069562796797356282996441444688673081267165461801039992187091662822692874240987727251004841645454363093367179590412085282485472923203455866398905784588450628436769074679119499388224740308553045601219798199280035063743435145053098843317503811390059689481775397110460893018903673834261799615414336031477291712068097299653119131388193087646929241467294195985481088601130139630800118159496497975711790284906227954495060405074063197977429528030169031811523716332345651006562630928191840960461006279593886725990217933250415238047314508258849532851319838974702652411214423035438139643271991895825345346916201596037238478490091112302331865505582742937624566469289829779255715015660024621394239562006806872364980541225609077538850319597406349966204634740320180093353589393068738729593268433826575777430575935473989485679657106449761911038406267376184142151197642811813163549693354733022631319363374800312454311190509978196018305836899361547540175664369781186179888389997838965918754612072119076232229882112470295250489481179231328216952678757310089219231383887796870720379640296531877199621463259031183028816972065155599457639033045385040201281955291230799958736239726643715816187403013794812549973831937096259805707147841896778414882949204570860142894465856895472732579810921943239623158728158870927601381002798992877371773954962489736943847194985115788593546680452467430926471398271840901975507687305297928897739084377992331459807674318708739117823923824110195155035431155536202431479556241188350667583666978021830512301005491962403765226052455644906840116396128267299044372184333114053184655063963440031144902011151775104841472242606486389722374753107661530759904015168238925204652053209989512754643868360923860238532115182846613376007189475628334818980753759434784258818503454542688928704698849595344107479055638855944420225315900660767573419460534102567112133264678408854875333441493502865605893562759333308868158502775978536781727349888063817701857223687000620831728528394613133574229045535176408646520088823027339830535686239799757869830630283529546286513116608957105155542578771931226933440315222259129492251922890922080498185778161617567050050216022527738647755570852785610812594609843818771408025834720969796153989298156610926629720483140471735320400605540633584983726955363021222910275271739106502544421830279725319967480248873009387510126296215671170720302253482399454023884039576055989545356442410762126410942033072508282744682797924187201313881007280942554832406845200962713891283592520818227291472881639940728066992434838121936985284265421859843471893878221097726469308631794308849731088109241206122027816697641328874820947078966485742471968030238369292491979483168410151363524306434926373056455901278603659907969439009325974739660827663358373828777454545975848311676026737944228684524224079114748021739685651754800317231767808945523753269879713921076136903475481636110952402826683150050484643201317254183544539787414732389015886949599798628225702493637424039157027857667787149027460947863115844562004337476991998291177942039973586235191574295373449141351776774787899153833325468230181259516787278881088317644530325659797176335800987145390231397853602624819177139032416519633374521459561131892360142740891598462318362110669422123051593704988573294525610255037546834899776771405655562520687904287341364792770528743012842378014137507122745800095891363935696013608392303340667257058473709786807200299519196885516755324849824280228557816961710749188802908604549404327410566151766932537885754691413892636392767849551329359572888865447590901509829481820657764690635802188749375170078696218193691772558773854793822082870885250900131778691515373992632242319079902165758757686317332135455719531594658826316964848499247607823817701194403669546401616091308899414351632047893184018081629515063694860461718424384275690975652877977408372901187466692371179393708005212694616199429649149029879233816259813999457987746876372246650797607170069831212968227242651110660167057590208443224665982270213503671055941640050314728973787483081947591766463026583218918967356729190117619118335358524226893478822753534240825162103706150466385999865026841167714338997841861918543202716826652370400523690776180959203575588763047701176827934157103847069591737118443510269946245051975879546158478207100920421725083291596648030316294025756482469272371719748488877178228766603166572283113309325377869875103092913498371122947271873332062833648148772773713812090727201453746373710145093832712230675115616320852250645233059588966341099888569546647160035927005361084381277734391627994171450196417302368046800610595488236790820493062549730831428834861905369597954882598100857802757764056296992668606366284999740716830008969086433515893464076847137106853391978401798864599126928745406964486559427433879029018938271146325361524715805890589190166466380887850030449516364656913234063905968656749010024228674144678251023950962001558622068656866608533874014041207402610232027128220378061789040612968082736302272139567224603956387467876647944051457610550735653020030572318382806275081622812219550329471459821294404994643855682819483184150777426741674240938784639906973803316769114882761340147117080348697487401070636150918451838211164478718278419081192383655096574153601117038328369652376363087803182226808388087570703481614847300625650478869137505449971489496092585983869791157544704453419614186842297273348505233642930094955230496424784373355063505319544243726521411038072100524145246813354319122189258814143678391494526040942694617820047188923235934026871520258349330352485797703761559622923571381707882093914414620351308892290867618087092879283752873092811701076226429936735158630547166710969079628891040558215640312441159241186782444348412960531044045150624038073602686147384657602666904739727648174255752948059316090949861569498819611141696008155480327691793039946497052085302450172908560242452038240134606377733924743969998175769160003504473631295942795072072860501468115635065813595066448398389583609445227944728553099451820423746572080381981774209984683475531222768260478881295710636680766539230624723346260845468123535988565839706374551889527439713678211941062701441949233580463336679486844108420898485519668775659845198377650275958771890134297658244910141823963527470770428719306598838080794081060624428498842297524669737738961248193368633638310656192189684262918885479230758277779813312575093409024926127017427429060398355145298997735836228076973607293426611885011400772011357865135794640676101542333514042726450352429555126545693534453686068634375503730615565208355835838683840877974054932590781127013168595185340442399554314986849290308305437186327614376255816611422109188142341913717627984462606881966600889427021953187393160200088280743991594322585821894740363382936048032396072005101246168044860484119728911481905261330562855275279566177357392952341524146579975287864794697133965849692221729394220835890368495391465309762487728851194484979002454951198634783106066718493004268128926561847024132972035389009703615931999451453372598981261377528727580201502965950702778347181217268743392577653748316675767208556490038596887864950596033266440847758179629634003880240366112887088160812740777927573915533654578687640060036461643836648231719259776877270344987034923728160311649993416363646831589203591652769071705802762613401961879335368340903231207299801695476139638057640601989313987659268789985940557771376168191761281021122799174070694316308840471874639733372483126171974355163853818927387849846135919475187732571062283740982509903882510903487012233558997878329455424939742457941357021954486065958279917179854530050107335053664707945976515928670699539707678568706847405809498588637735915621410502357977392337667822630278241980375748261431903761854031691699597181107030909539997766758437681040806402675284209326123107386187602418163266112610758143765990862485981574072352274223463575295281921202435431358200978224437868008665729957118301223747724497525988460639515686113481489019090380423695452550398712263969627809281946851285779989579518834143787768780492359094318099297774886474372061794465205852804791888163497586279430823624496027146403991416149240707704969407630250153843345232201503482902137414492930770295039554521661510413394855538032913052726767858565635540078691624956631088657132261889632781466706154253611842960435583135156982822660162636411365026203317446913882553986022309961005090380744226214103931134002901043031261962081779591835539007374717664155304953053231397761168438760435317519234896520456879411630550819157623729818120447581748832508494704454436126440400881885521283992243834919256157966525358722311121565646307744976359097203619678698842583819538742742065182747132116855697920815283836015731351973408416028310390926919261197953516829052946644577788855832812531310917398382464598439911975752342378936844716439913337566052093724200484195491089048881298039984839442981602494293236605532258969230050978344542464020771128766039077450029520294593570601899844668346919492814403246019949756950397149408071265809374171875668230684881597620200817643950530661866058604053795225495727335506160411534982837858491092324930273420168792882864536441970986798321964699964924595049770749343555809675968120384486040720201244216101047403151833613524784737459524559878467492161729358853500142583789101928402675023662731450591904916264729277327519508028354567286898579441020721190224783026771111466771117318287379988060784301502661082373648110119001842791177081381717441633724398178326753889219875749171801689467717917975773591235188473765069702559507862530802690685121485652155834206810124694082742132311821900456267635393252766447401722883777578394108416878484645307312710774135931401202094030291302216888879385147026064964625644753608448103307628535925562645251358216132184048072619071472860416084328083372690439829607502702671462146700881800931144735767746920979358183678707278091234009729035420596241103118317846952823776348927555418547976187739500321701409087716509652583358674325678014501979988454486349761138981755139150368276643676709667313724768318458612707158914281232479889951806760284677908450516522680811668677821356721549007605666931997087646213602696147050342607552790781036430807623456828750273429313656832928620500504459758620415966401624118558581164976635372890988959857494474046491566768682228458921463276702438878344792732032155477751829285999704441840234256012964327524095976423056995875571828172045126349516692657098149833249550286714975799887454740342721214658170301902132605702680945270491062430946991438747756265409643209500167839284208751944847148127880592134139494103215468901936074619914130067084413584315213995299383068759683066487902938327205532854165494978137662785582562510852356800937206546642721173358993764304509064630933081197658751465541466873722346724619757213515931216453051305666394776938485890900536462394505145193366042080404219748868213783516864654777191132624601519877808860983546612737515921058415417971168281917125740944955690016227226220899377334510514623797898564311992896496469047528149713968808783966197220795880672969797274467403623752873059942158529728439888583004208451421672045960983142995371473845199248920090693315565833297292562030774922872319097517573312824628297701160577052220419621959446403765952904205654266107725897885259573648410659924994953708582440391781794582496611721573068480581752713095566423884879625830872871244608172729523022168554320616173831366440369126819717871195743853658423719480127083791156374506248507299676846683452022991663551100149277114145302825353720133060627447881653150132130530788973627399826048696811842464178836680609157242244974845657902516325529473459960144395121677337484363911399865320868456774239692663623913466044881381762457837683340227849696393222919037773715691184937910281340644815939915546433046649197461705403753032336271751853553881479844740535331936154111909646849167702849223613631025884534932095707786836731232935797890098814718771237152939554195788216485392832334532699097390259618009274165317092824829631665414840464309578989081493402016202967912679485141250100936827969155145140638689128782212309986369548478315964879314190636045573443652975371870203916014149467715264429971430433714274533413539914723952580312548738406959275897089236160866472490111890226719776267622447918582641478659414356055486625478904553433086774916404144919322270523352083353325585813068248959833751151732934657174963692060696832732523873592745722618114959714436600915402775834738757774987824536365074809193972476007169514608095132023600776400642024590549415013990336624058888690740744783579093115098750237713540317639415461758434531104643580589177363393298456782011293011360780171079479465910241140191845720501870244436233650169894134541220413007825374694495641689993244222571548480475852251140670473871026553627094127773505657219868879143407485154214082735460100476515320183637744452434595180474606504131823957195423367509010123291336602253593116399416281232754315325459501492818348175588841328330829925634223626538618022853664234581101520757929308031525937158311531475107638517905205888952564094335777904972267548198377330485303194205003142988319112454775710306651790915924286079905568461562523358741011887175222736574911974970873459349016171003916485347620585203324943756454988956957689624722771285362721831613735190799431363580933668296810207898260703618763411894965918235445534536326037301362854079997676023719693704397064647077808067286254494728683379348836020205555589212586538634610800971604644237001508035553171603166915494519392309352212523081361872727764374281535712405391267455780162500702524179086503710022743382478052327340528222591182508591773417856072821849657549047694729436483093019264972511804489090139066717513663934202826416996808387700048730335855231125700572012259389675418415988327330463848008997617929707732717707440271092725498237834552564902164702139829718511711737862272480670649462865904882666787654309035072136080400524484847996375740818075097313373261075994016225780879763657795592489614883922378469259649129157944203489876965536060403961687108221826260082715012110466931960320401846168653229230241823509833429155383367955888461674850897328695714429157342557975785173331396275171193586474005506532566539615698645115910151842598074875581214280926813948024314580078295214791246423926917244788694757352474605863257179050643226107599539260947804948256451316708527296057788481760645245245798068528830117210547555566019734085714195203836469664782318808335411676188794237350828410214910365716865335083026091659716067083188208854231155233179920771818680757255590108876476554532543634103822264753320865998016325320305136645182517232274143469291864822478756135766957284602303709704388531754979381031243967015505360540698030837541925519903970309971378302572634405427602620514201333486655845579944421632163050731957556066690026011871678733389831903030805061634699950715024353527319337644926757945824617686211175363518027781411337101915632144229922382991023071066338165941164579693345890974036576406702602220151013515724584222817210864817172366866754616071038380892363629595601063111813026380660830437274862903417159941618597262856171901928093724005322419317910123743105130187809882986269828619030398767764798850462953561544820958721829954092067425461910815557572756254214537071436892684910989664867720652612082346534825689430146908630980971967346546941454842215367084910751963015076630354752581172740913018000023836008928213736392026870307046934015037468509943177591152030882783941469268330065723399152464635959933985319429281101883564295301884151327147055319841741631827896027671126101704942521964853195020845367037946519621769151453228161118838178549353125996027092251987744677703830554128117319282461269452119711728655218340078052972774453699126328874380221948629110729162914742651725596205530248401091988275513810506557696009804302896453242567198008001744945850413189959869377293274954156635284771448453150065851060606782285879378818842772247101670860684895091880003734220383981430119210458315415491203094987320961374784801125732393718213380372087589465065949111900512798282858425433899416200717083943262794788647754002938311966815298273915336623887413264124269563837161601266263953417868303988455504713498162321968620987088280523698999547069175193961008894454767482785575908418603363188613130420055584892837869366131077552541786213581873617995052381639262007593321637291342264121836464353038829671840212114120300333749825230202564389788789131428011642769638636656089701635139895182908606231825863677379530990165286502751815086715338466031054705933962997013872345432720194594226336846342637763809326124502799796280740735913382949548293872152612711461970820200139431228960104790494161724772156179952556934465144557483081876060347554051763136096361077120567738657380026456336805590778865928193903889478809179442727146272979392686203231693727938013879910215479727660416171506404002617783597882974070387952811660902198865474955322371690986546489647556743545829337098559352063099313657351523873955480125026554393928902775624120265673006696149609922843433372195257338631017187474085373114760914913816830063447034789425485873284906885514960747317165402015765988068666492731593013279189918215644438977855321922607969034117765166554428216937396543742208242339277347776627980606654893350940951337930953246464438289463399725215232066538475245366912143565250167179723543467122166649832508565719480402723076178637341143854929967462089273390214287880355575060814305965250052866639377314219724938541554288280062069137863130718215636151304309352848684617061859800309719053272774207503935283855491015276324909511344223680035422445714907815577747773838665382111132299765365290616218821593666497856403423224328456922854087861128792423508084272192088365627682423559074862053543248809381211652046829900324088945971911266421281860163085450176317743612046851343411309001376650246084964883983073214162217663168867955542443797881999693650996413692899445785870401095478496845501451473372634068721370004930383521394885161517853548424196145342059883170454109014321148881262105782052386897745934727374749110862782272491409281810592378216824210443422823556108310864034512782817527213212361399101588063739206890992632810535233655164230912330137918575476888057680769442320188466023109250502080135164332816892014071997276129374275706494570013669776481813521326921198047436136669553389877437821582555069352619420769815446924657349992734971006219773571658796899772708886463329972710502146464354411992001018765534546579292761368672536941687814676949611812303233818321610192317148695993654114837790660899116380261093561450199467545114515527176252137288720909044406401270830413629795474369575537057291872789909774369924838831028667178986184046300729347290595690466856489822471589469244922055363081089333039728012353069660741303171965610737385951606906683588560318579912988244785276440251891244280994386593282308970741066985714528935208844053400289972295109656672883310987275474075213181255563467998176795373937697761618955161758355991374123601318641227021673012022538054767520490630141388712045535976691383171779027026114639392300745931700594121876728959416310772632284268434425759477386777487494449473676650212040991804351291838881700926001316236742000938685248861501651941259187486047489925271872846698378685322781938521685630910018199927707433817956696969593092945480692508108247354239968882808393948699246758057033849372838057632516387392715883094642868890698043364787778126169654933948171371153035183843893314024729894079496177728572831627202861622859943347906958798788226330871453687385010945899241163534086628357793948949314327611439673921079076219994537624400322833836095946516934176564093760478174547694488696842028856765997218901094806628599137622110246838552013455429117141456331372205726882715056856719879451543872398376213010139397028458992800740624311092735695577250346064064290456609255587540001204011523297622598855108588441204190961446773689559476504990068463586344286260143753952247593391264540582884766088846015980583324927702622785109641817065867294097777642071082477199785845154178682145735374885495658364379470793671852007641820641600657037959283310832228218602253837761190650411251765907490953693685147358594319752646682012153000343093364486565638737721642554671963186471170648072370981741705441747225548543075244717539261872831129207256579709297576791270427041006720483676121183938530330975530127381628504861266242170437060328158043578564644496068432769763852352914540512620856718949811276955645419295031525084366992761587773686291659419177917082566046960837655768439373852362994930938899984558161558307341294525070946321439817548546143804106684237494917785564608120496929444579159607510383740015894921995648549713448129423188523745838109915477907166554270991040484815420762809178392199143311044723508235413146316891838379961047943141756549197957760467226785256194563529337129797108910490772617159914603661025356621256359999184825581430454474620851612273568281912377814128596961815263171696714568442818394185391225715918895507082255928791940344874519073399508597913337016051371316222017219207268367803902052852768202603955854864313584907647541969378116898384394447016095706469636460114885129725648944073537321905170451195138892654273918553066381522918136444531993413116155561960534101781752344753577220808535717669523316412793514758983269842813032259539210317267076106855172434113956872433792576449386455830271489684854559353014474598797076697651978986159203592498726583451221541197091402657284088703549792648796626670600818946970121791387204854154665245726832867977745731311819276520655677594478200569503080121639058627755612213283692895582431694730932305713404647910410321029537040710921789049227565715218903080435447202676029848330794529111214080920644967692926745182858552693707308420070952200884420717476754163273537540509881665387629222166078703043024601311791595375005339406063469056187574947969531704007415085642737250147387902311747287513574761806670603914987318241795639650900406182152948843738056871867147124061490529750974552052357775269125408334908817815462797136609709726374727689787269078749199760298997655908613466251928206711914848282498319194796579419214923664576949419286877251261199339690372553952372637281441899208526273053485477176805175934416373042343081356809684667603397518747185242389313316229200124653260515521444517867299878988713213332199809764960424484227151448128370982204220293269156733106790070162442882276401787315634864949074140894252830041327620526121996667818528611604235275341774409947988978985053187113234566037084947032788199069592336297610103553386103262748836838681107761377829881492490102428371922037955485348429084831519033740399281864473956935770585221589146822996828827145057956147076649678190694660971408281150104477273963039096404712544937938974088931101036675770963591671626333455263095906438046181845948925530100113932848734596532629973191639872110487600391307083793518788484778612997903137703241625401627774696110607810932712265578768504453474916341004249949350782431090139474132626563028252728406996297313967368184479012724314331139240963194218325257851185677951463317736372668375095320034808725605429742885009534334199728803440030020470482901238701290092489903661841104340667261013489799760898803583138334378542064551793660494074008934736189222482919069150660339073374850868815494778849419121164247351805335970518518463957995000576853990993885152864923548787238342965947552408252572252594738031796273757462957062007426447401234602450109318315226776575717094239672550628617848800289656835781323801769391452658320903116791237195857515035875477164619728806685434503930927495192961693104454994641496827818453837825904737119704872352742897868871776706531158163808881750609549761511789471744629580337190776994255203566190718041349224880648501220761383104130039918355799117892050973998663007368927945908809118317412030743301552392537019853017763484834615603773331905845100930918865752017590123977189793735677200951804940451941282402762919177597154100623627144272419159397155749558969707804496329359540848684905223986923880130242312945856077410448914668839241892973412653300801877967513467955547195406588403853711148427939979669953510650612587632449750840409910390879160579335064364915129145060873864029562019473678082147313693689959325540691201456417550412279581830332226997049651695859535664352974121980126731050896395677405301140826033764134685395121048431843813867653035456743489299751306798818845895558750714752256793414147329957515275677453960232550258536207387328559696825099110687855000333465573744217282521984761190287768193918005565398496415518683266030014815560685408592462198454031247494217331387761109112239122949516239135383171176182819317595822957735654569658688631686066227084552247432476218712337818307593204864617001259905962079203299497417841635447658713887988263011203897628091945898490917527721673065862212364204361337685087669079730668562725868346537403895407683447797820351948610575514336187843717052144727786713014750722924435802251809968870710105985677965705607146702387210599549131224075072223262173153196480927203678733841352919491395739747083136948083395634706416532300828171930244179168479721569520220171267768756382964946937842272160630769108456873965440285576449895226752652731873474282131176311308003473410331748879709202565615429164553155022071031152802040848836206647824549107695012335855226575600060958951677583115649016335771650106520588126706886576931966711629497112875794180091721490193549887946735772440838378064919414486283319837457619207624164896571050164778725133674475349738455142026767721915326754402124098487567551672266204550032175165871335246961956437905785194662303097183130491174782951360860842728805065244382709212774077143532497925238624349784788292835667016259173235662375009260257834842628790213400803716140913549024126003853955452233266724480422608440871134580235404790895172897642518919926213770791121802286452331064638943499876265849553796776219095553754627014516000609355838291762498917631412125002662141532208671911178629636365476182595153609442456301067190221321485757529575486297839808910657348494599249731887634112646425499119551451924830992474565832370758218777395053804022183526257371339341777632655915362714019172668155056868712616200883466904269674986070903164987560051458172404308063835415358724266456897299977976287571152583635923645808520538426324556701993064379939977474906291067599480714333317282873996113725118408726204386095777742366109113689988983789669962030758954585365041498483408329743719464020609769000914833351676944469534564485300147927800658400148782201078706838817582255196681594203791468781340147484530226221437005069648259568502452870304874397713622971225534142291585527454407413789519709487275761365742181583321088547679556667871716374457626459773995711357897533790783641268072485105186911970775918975641176463696786354826720911848823494141961825833600312501318791283147252816486110001915972502231524985272050723969789416711346044944335289000310701920422046790182146480802644200309926651668141251642161167251170835375860348284920318801071007455258320164492832473021252547730177135645977310367319355148295741693778491514300402891144015396705484015251141314839385894578059709623550046851286587547735866189163101488153297908833963351436699885256719943091363540449499029183884615638652099810328644789474460662826606038313564285572138685980782463782131719639796405766003648678638365404311119825886498159528151713870808832261697752784750839879820925045909774221170786897023530612644528701374000691782577460441833086079304049166542458960011851364802164953568894707738026445669035922279219429834945116743582191895485363899866967029733214012146421868798874713104557449479064254401364241385445588167410646167106674621949227293758340301194496723160422887069233416076162177794113813917310715560977253124924490685831182504563266040945015786689088852895399430127343823648353316850729759260101671534984979090558329039996475533429425196892417728090179207095496571711575346593870893853971106531535354296722762819773248536019037826264524607935662631623538351778709294369465600792957988127828772456244699205327249579306544633517078718357636911864419957964178999701169611767950894753116382655384368436096026405921968288811775074823207106798123550209718274891356007787693359166865279579016110986276084199783747777650762511860931369477514906294491742087840000010681636027271637857019749570263749696842107491198154784770001804870359067486061881016900842495114161536275972831932252452078419835154967882178113975494025508277397455876466773263916646417180062452998325218518261422431445615931173932292983080584362985262565018132009645326117483319236817115419408185824042354754004572304999219192056420007239680685810738353497051526412081409339270932330378774254672392026993526424501170552609696703904512407208823912075018860353109696792295898833446070615765371252409294505786059145020224606469659963109795396749119503198620818410353448152260073314042357008662802921527462830553019292411213016905908312683496995211499065142149981569436898005432287277176248702487268139494925128494597034814810074758701671505022041847072264335445867140120706670854358117360837298223106806311047666781499608429949605801940482080668391716518914793303572669422120592595131253116735579158021532055036734072157654044398292602695060658546177438680001214638261655922998721192013898820445452807829059940838857461218902326854484492990611001541763805375996210902303602663161665226602273560700393905460935932755063876536182493941546041549167057103079161896856944846889627590364738681181996922998969227238413125293548065505006134193557444410479662266564465309640430800176966520175629100732287643207327056886994496898896860761539031526004880691578609097742896893732509790258941995407690571037701674192506999741286067985786391002997631246673839241855443819838479627863219038940154312830314557007084308602831399783604127371134289966869476330421215238877156493847413162791734071567206541915190361915072641494247628695792597382229669271621453638010810344367466229031430679438252546942147242345637918208523771330682563865634084321153529201781474962117353237472701959839572019644608716737008503307053642920581510366164918687039894628715468288957843126745877853959625522315881341283512629340581759863390422182062877275433875825290691722284613137409113324374483577694292390708705937703206394293340025137048814343294716928886951568391106476309240076130468691860402139790789849313205605468453477990898497675394211735024700499617132355830288624698989240650459475116964736630858108148977507761310981118788058534549200256266168879619637483891916992388042438281855715334559500799318807612350960795804235588357497455579466685115312637560591248016238950349391321778534031361662617931778259704217832587089143078448260789467553891488612165468577722499365506756887412268111142138696794758743868250922260998906183345425247892984258144446212684186305235625581026697995017675472424989274704869979471398803903660914985177556073649498162828461922791005455598975754112514320121826254925653890804952184975028731211313090391600377183416639742585750164034383043586807492283913503247257250684130832723575690844944012719991240428798737166894280513319750828064051248892293583782372290419958251883474045380209502034514615533278121853876013093607759509620672107478753955338213196288040683990298046186456425253933405458487453168447357435792913699274492421708586325002397242770342057089745104362535243637283711064863227073015586825550888936153082381819105745829678061435363218241096867944970964038827467208041954074193025162922925233883829194436096340501834844026608537837869148893370267025600014664224523865465727382268431212031614535781077719005286473152689324820464896639645791783598546824954271680320468002732979022981920874249426204489158007338165972459180078993279487290411165188438824372918244109816907012122341387597726077028628530581748788153436718975482192155219110896951810281602964874102070558022554183661135877962270735457218970505885278533943689662435684997368402932080858332558634704289759646629208830346352731678659390042377791100448048181198057312872305597906135225782185095567410458956015698054633562513167682144553366407249374793698352390089871856661497994355308603085806919115719346446099454146037967994197873356252829486210067590723464416711372887408007791134220328099771522203097880275655605675671029669234466178315043791470296968298240591506105747522471300726245468332724554977646927702784049479041007476855645580683905335302342893102471156199961878973800008716159692340266593328623073928872035074103483855547179216274088877255950211955910846475903881458699828913262906313840847480908705489380535572778764090856707818992261615244595017789173260705281148732708997813873010865061001141400936006004065532890274272295976069013632042679971591449758951648325338722457790260004878461196786621416930380766245062363643579349445707672207869905170048769540377300161091703353069146779773201540176522418802641986536191090666546653585233190943127630813429694998327017047733874201521461059017739261177405176411712747337254159970770105164901070896700698934008823040554500574426695518886253873942002835176765042563681889060309064295670820992943403060833173095791029892924302295010626603678030604292040366697057278866281024095232234078971978991221663419340213718658558828633023174208113300019086418661204398558772189718984288107930613869313018298890693332485646010118470968639033335426951748983969373424106402705578481219178077018326725892826428566633876866338346444574549581571412351004366260933276881628142032824414071736977544615803151937340171285718435075769047246458082638162815398437993238482289536364182168410901256962602818476806680082383593028416066638175677666632747317457529582885415190024944185204307451546202883220188569953234903385004678030314370429705602025281420385493347509656725645312032337663070115557804989198553317379403688637014457548048142135396785556167804477720957058571674549941215331096311898158977842420513337842760988649025929588244034605424382579665939595542133116548019566438484541932116431126359256817175960506371362144288066140794848637971085123874612615049973975252981860660705082050244946957988013034095412760738763729271215207574676988215188766876529210166289595544667536049990333030271893861615803014541031875673156299400610069265884483599687128675885551916118956124809577292111621724536015468323377510539923428738434642812210691961217138278351608888911059788512398766335663477089570919171746500084807498872220370310086317877936051300115150248370942630454977872598793942368235674074591650281286139425892824989478455182975282531226842339140806019389629852347995118849811755790877046655081122572399877898526758763309415605806092241359081148474418818423215771286782475691297937649630278032165012499096915101173655524542902026925610845487442351320768027874399115762316452127706214265948466824586215421888963471302138773864467603924889634019443363680712494592303158257564343929467760546456299867040815583770650329955598716761298956339647855145430238217306705289159751041818448785909411579321185498663150760379769186768607133286507165867917664845140267857973760079607496634564328959270332427061792736717662894441944432239646422602382895011985115693786544326265003427946040522258423380653472687819208388929650065238641246456986834609327793849092473994851094471595264789968494352058342021728458556319728482178444509853525624659520812519582131812337892554552312840938031274420452315552324049736173161153293599063646277045927074613789041649041668237329819789013072885105467450585525376312124954618453885215364417125177326288263351318623552413906168257448519429085563027068796555651826996835944908576068836512476615426413042969070474736434652692913458570056568728937768400166704008971939472885981173000941411478750085750130345037404433632326008846712403176829164890065165142581490645785860594019506850620017813756013618396171744254181999430090494923866596478560512407305450119268841140721248740326116357712797474133234520234677878424096394011454624137464565374190187306018077136221795594264264640325678024661931674208826389969000003537868246401182873260533941010980787322797301727104842224278880690548882638055603295067936724733699607669449786897791574104745129999335634427970318368564348141371313578857045865579704952210985127316869621618792280960597331781154964473328940351647374615914216610808247958807597951710986479041965667681435115631775870867073653207829241728010057489913971609365980829289914961898626730276816064560196008149454047967815385849253677896250442121425963928173620895191005241191410887097144236394942906815330265046949372379071279206007409106511120117118095240876889047648454560480070652642936944283862270153846126783523659006880276958460877799674395512077160617055030033704466606392563414312582356119772172614688907906505107496435798532210695135805402543492421516667698346998790540493834771953459862514517855733870638690750682362561703543826991381621068311409581435442420425816663964676663102619819810978117521304402458224930270971358035451194757383273582737174253180732655024643707442709027532540307586660872545861715763862996713668384949232779000730475172211472991593885883819398048760279583831410432725504450439272710354256592652787668333327358379128444294493604448820951176458220038844335131425310610505787241393580971102531546957257128360752751182055188529390038805152495846029772083154426222913881231852333521019575533435020117827949842238677579762352370556353004599900761871232934120517642921599130514835318439452880331159589629789304695601040518263793025140744323920072333218034613716018291630817873816614146817931523055773809877437408274587151380704972376556853121849458666019472569431242561600850044643056879710031261513347291035979346215731862090624198365875520559007781520700805103626106891863176791929159922045945350487246871157762618911225619966886675695340447766666358453395345902881350998091257207353673018637158123159118863976627633669884721603255887624165277247931688534270822259182276041761870393199420548512769855268050447240322769373129202345451453671814474515185010094653117125796726670496882641233116803677041066884682334342171844758397049550952557135346373576204563852278557797335858541827424373956529851012651609073180672842872994836328698866729179267054722832209075847562132776871123410017122579845986001781277417927499787363416883776598297422052477180203847605887191070788897246930008771219082087420928969963650501656058510758476684114938569599820781765540984712536420172796564463512715439248329933719284172296929807884858639801693600068773629081440937109956697277131862366992779963519136071529083808546376223188402516074565182328126348411921083650553754837545074760180711257691752198531672757247543684022062791614373933596566298365004189634749128680759223286411843561750306051685855433059983876649014615631753056940851997333831794758206350259421728699940616764990908975181999281333676854704256010889747280785301723842975847021836619462206556314363087109796959097487921069292138335420823059325123359199180257742842139332664827228497315436697546241711542293359625742921037985987897183053131737303819432138070942845743424972967818099764470047704265017288483532750925797854395239326564780079607101934905861020102719243074511126821946773677866354878049104773681347089349951866847155190727304184468255219732332544906986586341900211965799402472821241531885654185373724459511188680630061526796050091239304492135400345903616616469506313138880417019598617141117476129558819129622361282418805565303089614821985043324419569961147684923472699403976732402338320631066378768424354782667669138583755244431377649773936944796252280673464547699328344199468564386847133567467742622207130731318760752501710393042510277238218612526042510318376676664323163647622788392450883781032106607148367305034732774707088083318110664110975199645193249501438766636991661332413071626716702444504988724363442159825337859762020105391110303967295711999266956428116023573605141190000714119887340945463709847117681114393573912239282537185309067919274030476429177780227390315750697281519472391976672829741459792999452368180180356693545320771655578920106952754248311522222247148064346187806574499659347776775023939724391856912624987363497361946430957771433853121241779834709858355254721435706435239797899622739974248576208624883659026702733445696827772347456550954503653283768332252833619775162612028048404825663429282370273483170526913842411549244260279160182002556479710669483904438855443838143402583276213015086985804207201750648857747902059987620521179509060332953610283391140270553276158597415430949081336292313062039143094197420379494444569533738318299202696856645765057103024121367638733820446763469724878662686799418124439781143511071269666120469508783609675295585912992186633741360222904619638584871253258773937382474713047311391288688878328383597608246338417443795714133632850842021789731265469901435892529720659806748172930223919623634286765701265933324996829318207350540791499096304757980486054953314337260160858879001293117804219772888464450991947774168104651508777118752948171763896347136423368781202083683089807169094300465364170223446919947221746062101491470135631672000993771474204162236619499851901432664400676300800056318792944158559089922549596421965941421726206119278977057204957818126795488128788435066725920842638892651860081386065165592858035501534676818332554544583476427538227927798253287173302543217922725845361645573160667913708603896034648879161115695971239013223015782984385509053818619246522163710934462747568677544078126350607665716552746575161179796802247659261054165670426434399539106731164636310095287102745127382842044897354827450949571645755586160553393436499116358556013730810913276114509948180269305485687379433376656615209727887790447502295863398457662868772811619655676228667295560490983307910832130102192577185095239031745781217001964376942372339562016594529289857310169769343752195718538517452173237547764440486254049375474814187709809745888405131352493070692743810603686894204606825401314026870571749152585434592179073562116196148365968603678386122310507566402509609780978572858181603500290784274103608917792592567232594815382985473513423127831099531745447473679734638287528790973357070885427152025827044878408744237369646964450743510532202306943304180252476445922093712987517722873169348882632202650017379853048770642287062140725286933571534882351016698233464557548245981063590251394181597768602678893169697806050015103019652501446196720091293624993863155984448225047369829814353223508694485440869682378370577806706733750133054394218114659997423454290313038436726436581631437729345457695749519161474537519742122503078292095122458862463986704412032234951201073088026795533352069874541079742844355894901024141405752376502756752870410868795158005787627601742179437574211357687639603840582035266116812503354136125849767506892598536728503845882722354974404988814160567282982495773782191195508962430815502024433804249759423843017919135737249054743395360513931998454597041815098876707081470761833934960066172282631617847450512210975380494373006190636559631131226790350920457779509331289961031483799870688119089793596175777871454231087483669816631150092498257951659572106682953770068980880389819719664911824144808670005255344566859505111861487005364002313225025267183011020511292146126387576937201378563978285104106833887312040989003095720115367444683243221645619381520232052030573871461921382298570485807693771171982199970183604190570204207868608036877142217418312741789364652510815444750325794112837116680278301238503002014379932946528264715341024136544934318641087755381659397458980044631413192265986678636871523052433752235310139583405656502725567322126770250472216855791652603144981072152049979384738537146273495465911276579687100719552521618755279223576840059802643961154735923231680583877389790628995609301644771055205516001928998235907504733648330443305981948174863648592280379501502357153270497772590649485043941689801106346900823029751780180053609656944611269817042794759836313999784611464242402090865814662922928652724178123801306919929899817374871689140382458419979194438463783901785397997795795500533372111037830683352211332398204484122282516662412898646090206625125804052164206087550482570417551216942483577834936385794609494235362830195477935078473984846444712962264740060872951211805987648229398002693016111297271125875209647713129270846553239314282706119774788363973642186143459086872007330590220592609185863225043953694311070645541745340401869933482642926036161009978107426798128094531782683583179512630705394671659676446565505016295605572451560223982212587824002850693788408969741501282712524681434860236124367449254011940301955230697044273669010975608076337461681052686531618704681395410512843874547255382686219139561593643957556355311418150548357097173816844431007752820161290611824182047123464397795871558319594460824046354834183703448256383591203450157847968962108515146833796457859906983479478082502222161694278169259503001084882668926802205169556579761600541509397465152147041208001965155135503291617196238559187306605202626788078573457416915429610318468582694041858526669760601662837609819739160635844839648676995331212768522546550461164099695278419434176706758873806492532542131297844695223024487943341846610191911839147480293135976790893056090976133659124138657728947231619052582326647140552011067869507018852451598308305119151321637204666064594547606746135566985587863322751973591380482442117827799912798710784652591925075820258751583458247346463854225646222537377844988241371602585807013374526942532602513978826722996877041596575833635711165761474660469270301598525514399528194572864642798579563169743376908971111853452552147886988926505304409996394308719386389938280400347457614983380089215266126228673702479762374864463944809083813733248673186375282085309017800860507026959897089195987549167519705604538929488661545137561975458800400395696412993047046272314733953584718775812071802011131328381886966629739286574992927062907243308428395585753093708205498636631778433044049593402063635412733771336215257495672811309279980656151210049069183243879587938893552173018552520171675802586805115424391578431882354885663120552074166446702660332969286655953824759375896041805074572559545284013407751965688664334610390489983498892659019510092074767810093688287962241016134713036972814155933083641999375274605580884285846128634623177059434454466574511182757962834747802948829772302761132176761259135270098528610577541896783876985541165004757562996068423363203536705484151099697408363530954137483133030272221422506329626075745745948413265365320613953628337750934669232170802043636152195045035846630978129937345504098185506043647205693370791735111972953695930739675646894916892802062166729447170668814240809060888389945248458911498728141963465492890044715744665000125289876105363929399677899269180383944109156164869900340797918127145090159945675255386596030231140365418125351226632419800491386825067293017321323581838386943222671656058166459521549584107748717532431345066888012537100977927419606173165603631237870395065593257461631717555903553229221438472191396565428012593547019663835922871255688596904379338567731116428970040339873624370996539857566670522560189099764418519198142473259898137353201684055472904881026583017248952361127636430846523977713444952869596172758730976690745970816601847293068975533439835183935887471623685374320535482990542655592431780175739250676876712863404780341681032966857741305508562423175640331125718698194517073780819528646413535300928858432483932031818266282239418388920557519295278654836958651489846815593287911348687017561343346254023730787384053021422209730611283531263121592643808322282423810149849947583143143913057817494081935176197314049646305921364067546716649051997514562999110707594668478724542504410278172872561966119235255585766433283773577951059130922094691019236880962967050209423762689118208129234539276758048753203908314309410151359802703461081239067040233815238585417332216466487892055517722143106680978291078300860502246658191677616557375490846916960155300079974211987102726081223044134405701098460026244191538903254639891022658030316529841816252158072289352695867413557840625295271533551818042075775559374761974589623966559365162657369170829784611420201890443557883665471434550171254972200830755176365993324471308246695897312624489837711339102457316898782376041106352855982174344317730734334802778597124146841005373232206875817440138241978161616935247993515379626053690314127060620040515459916284234146298941401339764714702903131390873767223277793230882204541233870436164894527343093011636149976971702833747353978552019492666288401701094567027686481248407503946699897729323933935023343606979065129438400947084517054616752295194733522667848739359138185822315917984953752577996909964443164875254100809460957690245141196547579224990903430947187675746689251756442646500053127180645183517246559558198441335705536815412894024221889121930614957268315107589351893021983608164558519711280621306589909921060696673730519513499693737081545239744188873061973384674873687264149951404915177026993976082066416846729143214356636890837733290446657470371624819209852664979482750580285915302137367890163757769453005206997980373777327396335163107791709579629647894873166597776519803603138488676095869644985270478423444724733656724321393662178365617121621308615514553341068422910703926801498420497218712367814177560114422191875345999527944945568714071045615953166253451320955842572032132951726757461281535604304781719727074549505801366272693769989514052340513809904073002263714993466258183259959358702020511068015029768758137457967686642953049488616138320195860610362449529306744495357298336942666312885997566693385435403123826621762429531612453439370942978448471217927755594645763691413301556697029474613616809818764465285733617345308218337282074359740567042449657235264859368315535391638493437973787912649202330674327416028382483404672545866206597873048580781149258616036481362469562681846081593321244667081898294999727310149991413597660185342629511051027741798830494957230660327781357447013866608637967812989774275059964817667427000369857796485555743573317135432280789094232815609764322486470062485270811469339039423217164787780876883355669173977967495830166933494077752276745544297012932939331555108561477249070039842363513790594981068080844537067781618652771269977521362659838566021812621770111516644739432108862108166184746542769297063798383192568916822022161264847081181193374645628458445317674297087980761470369151393049172748693731354193615676147146513178877444446117146798335243923910854324065179935804350184688498821356045619568303530775452212693556102961861866236190489463159641481779337317896828108120371820518750638024459938579676907845659915273700404178933422035595012031725016703802497911582744426066987738577752356406279562426368671591095228608224967274600652967947931674090786178369306768174035356036780858397855373391977914906059845534679166644401933660064051096383786727325934775509395493256124832551797899806069817160546326114517892470202722348561125381592130711988177205992924945961855468441641508767539932682548794579452767691672423232425748530524128826732939982856339442947421772197011626927620392403435952217065029250043878755122789449935298034616049399967410749702926416592935672223876970546202485239712262120972914982850278464404484583758481112398632807649113923772861060819397609347522473165331090167057670935044283552421357388151720440810849897559576013345821938951916967689435564850576410767834260660536366540993588970193808189521443278563055117528795325445082685692325902156696355510519416349275261843181601768843071592029284084699631737884495592002265501158941715501503826699864029179009751350361836816333932223100132677405833394149507420059848488775865866938888204294156870243934478502992892064915622355693714247827982893508760070984249904379857700166737261949453514321436483905125651800413039878321927994114589278999840167542474322486583789906317243219380842835588236285227919596670047090851017069396422721056836631497221202355443809232039455071831593291765669597780314903538710739028747655194861907244007682057066677762247647655039346039764609416230743681275956517844602021168929016714725757751548816906470269899921674769254237848227301204527283561661176807055482770576127960739358916989898636238316190764910789723483864237356924302063487464415389638396476293523936923174547993245540450135175039687980541052062614636050286702890147718211636579063562750525140902908245740199356981917951427790954507502927218362815358770655612896203034624430432082487728829211192438483883362304886007067134477896689846334594028081670687425427024420497635809738097028080449925060608072508756068945498008971298722030981635949556937239051430230990067974316251448748858231412832898519914716456559322318956791233356413740128734314148527010470354634961954107077203130015490921676277792040424744094783633125340075302639711943833369870221840295352242038336475360098645963521704500256130904128273549756238494367585226108692030273691900915606870711173252789165832699996656295159145224528655682851757658870672852343075774307107896337708901003752261531495735721097062896556281204923945203175342443720766510619599516736955155456188536247992877624634086103511935878999714401119109793992700083603523140579846637107779226037772681622156901993663480371470097200078328743467076155511304779868263134137456605229706464077759364387719832965394443251845917050761528408154533310017221988360734227751909028138396682376495498005088686065175760249133418343926847496777797412487162062731941254543995281416641899862322462539771756044306553756470195046742081165982591834776136990888551783054687492580419527562880824826924643180616747608927672033505893711516177120538026400423338712205981034978966814174875953645778422085488938417834592877371404662903012412451619192353139942100273524447912972885318160423990717635432313058515844034222111135755989255194601908227413918261576416941732570125149125369157188541264664507104947341883788550771992579804889417287273087411853299616047748173299938588727936734303258940500431222782176081973197392030710508881414007212347270571924454140276167795398259735790791158778226388984209169287445466032235296671107664735687826069468864167034461676697689658098182634272190143019239228229856617458971834971649061265856602637379923791425059924518008828558851236176818974204048801923806620991934840685974551559781236751003415541501785822360090781118543641511218054285880079632197526404248750209103464188703548718833016216509039815690160914559811912973001978812418031558169580548262158864039019271664612508265821475893980464692945470412466395845263852069088730366900869061761573950661381908737950960071546662653901711680943917038493769378528551678887263309100083698630784040873868801048017842001119326622251298642783024824008474656871874195546275827511000893471758652265678024480829168381948042261704068217305284982074281479599591971660083839323942608628906450768659055149610585931783082881874827157708075098176459561257067337389011944183746063715532215667811015449946706632263474767321207150277893216549234895313596074026515028727554943837557563018837897695885413125957660408318736184045445944638831194170336644022639923668368428261626989531056663968043839838104862730707590384657504002157172254909028603493290723535514678231360307616370629916881220289892809817688539988140998826618013360294915919752103815119878343478157102173716026091521145867959566738104065682045036278163871715606030859495251658877898983777675983964486294564583317402821523385860252829089078991753067022401233590855609324536859118329463797101731990950787775284860268421895297077397773710825682357741580199087721338329630130703327676869376102830976956038649490216882446401808500469274636822950819890131339883854483860077759401328616319361512049256481516845369764273935267216162637936010641509535150665781860841412695218870734579152516532318732029111995216936333235973454180643409793790346851347244507949513752440692102344094433184015985389804374655389515854062734427582686591748920461745777815806068308663237751197505101503170728585117083252658060348493500331827237581316524010606071580375977957360103218843186858340607931424992305183076711942389373115879642568110448493365977427485942529966297406150632203792024339596930424967531906273633023948870905209000945956064020874910624302153773449255095212924767951394770381104501465320315369212458384505413229070559333815228615234753518286817739032198745961274021863931813659905455798783036733407752206809391737716236738965702456225836805864184044712195524452380321364503728468832938656674410685161100545576230498924990001987293098995988706722561301514105588182295889713130833568517214257820436756885188206048859644023494214157844103929658023259873304919134387621039902970312619065506934747604392982977547165666895471685752114116439574642347364933709648820684697036307677408476247234577147598579810882634087603562861727962541018802509166955794791193027220272196189439265117565474640740949427672408666786943677846599190687636234622535372242363521978337942039595256644651969251711283309877912428952315284199838742327512261426881964476100143759667954975267879310799943437986169752190500170287167838420815651851175476031707196797978769093898258202867937035187435075439854705626560920020230470936619319167537835949418729942666941702665001983467771134877226044564298108122032981832811864120654388845130766084873788897602105143677691888938605408658898024283258344685396434689618153636984343321572795393131249442759305099575186671516843176892754580979135436266856908615435855573018733937664804223871581963150321003088960720449746582301482082823671015534319789737792005931152445170498551979346178291929939790867000258344102767975821984892593770009739125927325113304924718313310349567856195100374519566458518922413957002492391255317021155292151569116399307081290186959104597017987397203311580864900241315842770962462615920900195029157451604373952827950329639872186464231197610553465497239936523040298850536012085764833441183373159618054725658952128243000041707012474015834101734798895867320029111887281532490079742340279135511732154994956530177589232291023530216548551069090635107328522658206738826761957166988919935842341170062662253008507779843589407847260792119366275888826875756963024889318807922404579530847874713662781681103563097401538019519578562041761309987918146182107771527947246945069410291820642807200474415235394282801815647654448827269992059041400175278079629714446839481223848791232507033414303269615259986499901380200513317177024790227327728672708644990065466403106737406878044084399586587741656283992579922995336223624583380672365851096191238802298034224289121358914527765432818451538835921590238960733813451798615324048367305274565415656657248674731046576883326892301096047491002517322186208524166360616428391343993424238268738565834766501231023439928844242332533682748552753889768506567880518794904030293363375184666601993422328169562659478326351862227132824931216865115300627547553745101304751136939508250166494965643218620844187976592681676938976255051745258171575179581470467157075783322535021742716202448454452840489058924977196933881919103189255756923297075383688853578796637904435196333714936566613802211218816130074788878860192666233081510059201316196661576523635761160126836190075609993698029865188438505764738080615988077780199226097048433107909072557327418846114630598555937931199183407338936934806892801374977582809243795281578731858444947274825103450622222315580899229680005100248237123494127045178814659494232910332477800255099495815022677530270027698937329245174860702622386164760916940264315301410407950008139993346813643431435986604808421681077881059081410856088526441386497732378172457967866349088769794874986710031075640622996728636801501529641861402198049743570527510372795598837338123884214453355682191352104632781703450101237926574767199838344553837170692426392189055361578995371962081017473774700968509508100103471615052573857006463999948822225616637596092557868583290114403482127916902230954278910414598621736660561119932806583810447722631830306042008439839089935906590867720579596229605369448582402964790253043815806815778485395023866511352598561420407383860738022311107398100614228355242410582527401269039534862664001262137909231300190592194527051220301348016427555389772654588404100469762888445986666682820219098414726767981541545549546351685341315987220680914069283330447241013300715339099367273978688725356178917401897391488266706066758464293286644230949948162039688777771772993178907626916294451406553069589727482491893130112764308788740721559927972353870269921206142100096407304748439960646553099352536463825987346265096369017457063522614372165170982479767121167690134219839545058848406143673702462358473275086392934717244638029149102258933278113208712025240123872589014755079419123471670869569363301611663138016440196619425448481476978092272574995103567447333220358892492262331182135216954785095202243543821345194226094379931296573045756890390452862194260067261719668486617934444967554665872379468744523725313986150727310080503021247373299351321955958272894450164492940161570790765408829038190177568222941267471309246375186146021847755827301406169932148468383845153319531057863429502281525917041948653916084108859190768394960283309773452605703310404255473462270205081286914874308637453283463489469785401884810400103383056986878220443833308217731511446513124608411974429643313457436688852297121936422719001863559296006114662568380858114953786887221575390862722614909850707877653890292230219456787848178547671573294931848928576061850650031066741099005827901341736010152904600661454510224682308399616302303582841341910985790716794494608171809320288965845916121588511652834980397736449775169707230927763616917826939048709187014626524811787689554229936556589837929725806155463565537914917982934406387666048751610565265887740537501215700576022773323898806335294311112577876324380246189738844520971211871186509205943407005087269077484970819138699312430992035728051137956175531029723278795460734494376127346004523698550001132432008436908684999203952873384767663706152317799128499684935150223384788917899115535698105278998196232434674804050909692709343703096539201240639892103194041712753976779557204489150898937493826153675080596121277239901741336494245816152069355392269406777145999373695080448431381217725837087441897494567180671709137268014262115443881215864130973374702064387454320525593579289637630189684365916998264011351396044892786855086971202309955920478107937879087759319662987666529573448902963449085875086852238909948155364656821834305371718964836744988610585539356784131672198037530142105644918527186771448653932656456216347982140834156363835412801113921195608422678673665193777457413652982821182838057568709795603161849596501197198912196063777389891464058522038427605332450567634222817790104110642762202760286307194624138995323478063544287520198192531467913161541280737468017133128590698298806430549958646223909112850701961090258201545212255816741625388263169902637907756558638845903992803824051948960526516117117473831563926787762019294416890237863946685423661716860023433903371184326111588100246103187499319805395040642406644522755146554050492489319461059219829936031790477268504709133517213547615905633313126911649167571877799883325315125421409756942375030844442352532118979702968059083266863691411670115945569128955996197896217557082928328226595713299531928692642641177953834352825177923423883955059895725758798088648349378258745330022391559349274800130935167730510672109171833894996069401862486672363944202707691157539584427838768561164689989584099854326759937592150110855839530997078165074575305829979787204374756342641943894063511213389994932273102390041940760262019511917226964076568539923968551458396366538500739472644388843447175989508094555257264536742054325782609142969034785662075664929087897948469553920826306953382309552887744809368169542545955833826265641053351279307211493073703637645204394019555028954191784468364663373054059964890190999872853869837433704502954883792647931276390531783461641457229298005400160196681310782838368444824033915929232807309970300346832369390107990356749349233141433435953644351732640778995974998634877498985752393856438401680092259397556568733255731252585831991984502385378204648336767325788081328096472052055538282627198974186835971513564281012595663136075027306451857225264539803331711524944756393188237262819129026328230704895659063417402322976746110015873670420263772290744200557046013959449212622325580748028133720948859690534328972130926383264216329618312331039164574086891719244758490716817615652170863155846007782357227726314936817674264464859339264681759419801170631717824734148396263709047948462263151726330158757895780735580817758369750846901524650830033472553304860083747771577878576176265696801620988094937983230274374388192793393961110295109507992973284721327891259129867928756547198172773391789355150774593283474306538711304286051549580128427890224395586240729284024159258007583578185699140832133498559840201181331559537769496168641441674956328607550674475355622094241974835078137972163500191261063179325188710953975542701466054983377363382534480338712348481988294276622769829488097742929798578370286039868221525245859644491758329770457860261829312146643038883883983882880024991156364342910563322960291452082751237837061569792064778913584779901056833118818908485921691558583911370309240665963989896807026119380755285289279893858207450371614444455976864997629752679935771289969573175402418567378531021519647420093226406444036613260741238321092213799409751792500359330759738632631347182053639902090459531078826976998318406787766738195998903967803746687279694165805699604287415029019777216605676320289042345359910514043232753729800883865753545855338130123708115235365703119936990940254488392935295304584293092356756363282390326986831822797727433923917350681584860381922337106786301079515580745630505009055009432977732298412688172342909865274703609846140510621859368222946444073418672149990588004708939872489558791816035833197313740129578415411385184722585666525751026255523241898345972285343536747245273298059989794269814571801245050106515430840476762161449675576419354544898069673419393015889999407567172201621912007598653441860673789258816084673069618613855733597750518987975094351735480886256966404581082879668592627347838938184733132468189698023694492584908306024577250889762793823462904284283042257010532124832526057755680840889560416666171941447642489184532271897235875546733421336483846855057104436315164174441328725800710475120184686122176957754050462722019044658596744411798385558716617925137932161328053585290121888636265607808426837899792669575165565582446463336025186021906208871947379618822377632839348136285720019301204604857272136395692324395026631417228025008444846371827425513500545123204697752396780793338929288438176855496063506392640787125107039695168264915151509311953608917289304392877720731793033331169201011703900470991179137683779036825467926277463457979821737486550869075686606856217468895093904937332315542438156451427959263012792025108773726196877176670241762761102845362287281056129190952130013051259837798476014853343438716983899045697625529242910842896132323104379317309482145773715702106669011613588266641151794931501615083262261508381995456957182789348400586253033669952913571954076855881121864100956000350322808175348788977293155869656743705161649220451231163154167963347101169035550724545037598732176653619620744390106419437467274210001586520970265725440606929043581990109333314914203357757278681803321863957831620277756891826440147040006809592557411641315770406134861700752579620163203325265739335078063419879704290017351615665308385953976123412084697730201834348174761171616218472372570064132364519611395636319532707732174556070668326378745470605516872434906224531236757761513131530851736103540204148332952626985325961600802813261812246544920893227183058550146191221518700494398285681042076019084261385307712246078187934043422113313343127551169084755634630690153718895313812013456461099699879672848904922257010753065136937533029597478119250366162498973429944344635376104958898486843203623252518396060722816920955577197570951737651399933831224642664143642384031381194448755178385470023578884683461396554374225721702634328231367865953765280072796784358865876287831555302735080435185419715715304976039652112200529134795526065172404471575670478600134351794187619337860309901223494610946544706340086661328280482564201285528255668371014198640838712521506113142589340422529115198869067682237044725845280958853020887238919944700482370944323615125186637859465924841180529625868371102336470662015827232885988372616528130135186657325441736958583698166926612914700423291872599837507485148660567769425615616871124216933647388506625863560080923937864711019682695220131450102188145325219212663436518304815938327914857845444773973887576510696061271508072282654789902917694626596103425312110425305412573576633133214123712275790368146405157148723803402967756172020275195962074462626239843668684534861117627923552532130279025018251616140221776031469024004700557325543702289941184548680463620473896246451879398025576607553940897981569752708943817737950917960454681078306901395307043852642098869760408951447783556327855596260890021188228301388127131169434361419712611128736993262335523681706668836320323051221714406242858784879321658567930740471878947674433087264318165098106229727774038669972135019668487893705196245459871496640245528970138259640085683424837884996603645189272549442922984433510922529782629998270624417306971760714505343068588736072043807004895063482644776465411183778180799419461063178349349706126004496631806097038839037989829801891438513709008533509822669800369161655420231120746331055973566673231102897683190523208585239513341977262518224359607588273208360771453768545278045384323887818617284353879410980969246273739522509874444717833694704061797993293759379261707626154055087907104985527547166950643536345473982410039269065273320373598978413780304317582262121452435334005544945533501983151793308079748028575612077974676951521677251855463427999084352408635285269240132592666601741625006896501289463931599094777577312301754752472957599390669828759291794024650758579593336031729055981703153761306988645151815614403566602046048412780832370837206881935190810336474940819256559803229905175353214379524075249388644982556838330742046149706085138415124030755279868688825765266724202945012429046785686995750819434384126078963313177070889832109284429165116904373409950058695694326285726256144891857638510853988932012603746504623043858065476981586310430342090820140876950927376936482959934967665058388859623253472761918259349458008884582953666028924466073675114784427878101713142156355067945778744795013125150061395819585325719180543176552865783421613930135751763781264194036889674274845279004337956393199513893783423955874719297662997659922556035133097293432004038112079446900385629620925660526977532963342370922768627950185560350203243674704612696160236500449188574151593393915313725088321338126432985175553514947141108566066143200198914473087472282613872894390260555056628759643817366827728405940502530554446305807985615827854108450566611032698034281394362655888395408716757397553376239685340351948208568465498502000680762561770526929106496138803431727459402513420850673630513275151977141776633833787634110963049015281909914955120786022191128652327040677931404030645007186704672546642842277928137742984184076408864854718185977271089442820081166825545689688270173003337965545682101697488337926538996547257129391438743691849116206947319234990022924505285843813755038632261428569044031085672930749676071950116743217160350353173456600981790046007561499207655583948564402146130579138862667992472087974396817981215204602444238728713239453112279491563391058696301547889388400960620802990437877964573344898685700755920683042496489775632544982812319050441391894852844959154481404006676993753900196562499298306329217354739343094069277594702440952948417088389526313430692794647714974756555951753389608551631834954170527327600936888307030571878890423630337135582323673070390936757538944240122144135733752130308618781268903728540333813690447274518061044379274699296124933375235418560624485871067669882918393860011827918492888387140954335052690223671290789308600387078715091565190775638743514297967285989615038644528215609184675300898202649056332029562108158741619467972935680531279435994850207282869137733440140482413598555094006410192623401332996894544359063105819777850972354100914698763597285343026728682505867310488718305070328228250278812547770243370697297425176231909933047746248007711966841887500928253087528926169893897426270224643600465942181361889268441164841944871863347990162658753272276989619218290132624057738976088165573169593066708050462708781712826022017344803199274090938682139136960819842990746325496417177508281374713154919774988060105334690152957467237461441971329648192003456784301537992523963972062791792204371102027290065139024313690534125721322014427317026393310082358053549452291769046045740676755253291239072405794981614662758322747940498763358257988384489165255977611520526023290894860204992833119025940778778173757736068667412364782825030909048495669693703178889091784064359634395988492283649947978312456245267288887578445060848720829560239601128414458700188320608440013666117101806144334524175435976228166018487750034487424718137400250049109629327499539795942686152968891346316029431636430729804461019470654000972918682097876146660670424616695342347401109185757186218847390255311610653868920828378590032721845064133283949412833819937785194088504300703146222023511577446196334103292816472445130419183907146232793312467009156560126463282851435950865021588450797838568699685758817443342914734258797646602582201113789261452276246809833975893143666085826907693134785431821026394743595957787571292364883685519681290027043952789916192893138889539997322042422326106265482198442133427226680720658664722090396452885224631385679771735405624577071058299424967914939088832848488895975052984895652701860071648558254867120081598259437750404885008250715852000199218532944545429256174925943085712428186964859702169937919546275356877401964919813835383948586608988497580371779054096690936607603638431698292563471058124135571658832582319712766698414099718177103148655946184114008570356605613704454169173058070985039757126222245699480928024034034055526983892883352741543028318270857036987139818459728190744555515561306083417011737505330630900276111262671986650724278713259812619648237469810998494067388962239736138974947503790156435508982335379673361397226668479919460438653392335907476577306863943771570755987999362834192093407493514639878980101403821098516647407870829372788081112368669348882045270107980165422466368542859519272179014083398941527354589719133052378270740081869476101888077870807503555933840017828489591711230830022996937273141432782246192378032510913900399985719786669044135346403873430079781345477773853515941037639146986586683955193129881590899518445696760237686287544589896127864422123176519369724499944448091718196666226371442291511109631335429632274383281995934683415031036692837458898045634391035543517892272919992319385673603588929745225922093909742696320695483506330923521442019506175096035513444519055957086906822688184954595006668020385519787711072841199299305141081808992153413939666344971453954696178059743295809942740435396419985541849037875956348746628808724091449947494653354344738243298835308051430266233719740319483884868800005854869652640863672249810836224767876625982033311446823092277576263549336323267710173824066326269981602225584189955023995081874763511413179337753466529909566060369729213661262722317224165258945687625761048885614449719953193458326381693911732102060840163086957596673944303183454079570155994089344506259236081273174410813310230405903372466776407217944459329653473686124062887390452406681631584177199111525079528631949592159074618766065353847846987967825193483363839958484092169247565117908618906037791899224547149863810066250244454670066551961501449233274782973196990360512150768977320226770857869442505804162614585746148323966270971127585973187249748200662490024406184509193050244923827731245102824954722654642195115692284560249634931511276068527432141664493654373962789392298298581321634479537779003148278421891690261834252344471372881921504949180095155489709412179040601673146259916334425805999222053570527954560674240840285550992749002030359184271915071894937907637256430431832828154969953914400392976827147458581615955293594797591367754573173441085349923114795906433962844263523426309818789627889666530941335895103722803559148345481548304538439318499842411418023364657988504255619404618523032143566713497073748463696867013223179051794895232374979712777726982799171178915624952873129628128859363712096095518437525215109371324358867111655903276621764787185020356586994907198882108819604019211999597480875707468183094017412129138674984608727155774030498854771995324280352361989455950637616999277472624783309519770845702458441871275039063036092910671819078765840749283946897182617157416461510536473982241081628731104545685832591087191659401979696373009642767507331744736350222149154210127326466758389337287109318786950303728075244778559136955944540870472331817444135914672059461782680767608633474720522739545596496289384541073434888641355843076274374687976807180087720676730383725970368218077259831283863269089392175330835123390703398041930990113578315978575961975671657592269490812004831406614690260286595238208765358751159361580028755255677035453175554777621663825256748580584163933533171864414971597333439123961665429283039650992910440872763225674076464689929197800289615268886134756594870878934486901645897348182983225443354850106908637987783237082572878068282579357820170394091582145768829832804666006939718271453642479906832552273879150802651335085382936872725373693124831266511983350883228591404247508880079718182301244555863276985965421056342539819502709143665069586450975390119491578534905607649043121279813223011768131513871303334749442276637076675995140263945145691268616124860118916436436264966098612466980829797607374202419065891364224729304309805155819444126097648300487643498906019624994302447649942077806837620329896259184615000811535788456192431126079412903484513642498123375387755225621975941490114396665830984717734783735085450029021867863889071918720989883609693380311660040503401853378813646704778344623783505104582873101084218394566618391889535857162134758388090057933290541408425112722738063955122360008020739623626520822766215183060551018930689705234694687961223617346730751877096930032205266702473928534450125974883013621724798976772925964424042835625849897573734817938764082421612366679188353321628299185043638261854631332511128362540633947773219357939979338679224351057421656218183420624339053816100529088754484712848114956873247318741495616637853804266142349890460757590892841790625591865295252818836097236151580117516278321695097199368359685786618652192869319664452602799778697611262739598554470285079338422948385288317898221260699045882919955022310420814740804709670606288503673874531287224240289061673917693076891774738988432844154432714838243919565699825539988349326712636346928060523201123067257739507556095157360731221329195756964836512242351825897710408329312322598444386461959587557787223572238175117102301140877222888946762107584857951933276333063135606932682490422493814934416435562516774558072964754201470721913489049730220945327950898658708597526977203019499511400577595350041753247398538029031633158336210968112284133731376265654229481334644725294811104182970070297944311784903927218193493494293033674612797184116481879910213946124671094091345500783692077305675973724751876170882736498215046316743567514003379129578822895838062030687791354959149856193460914431079298669888502418144535396871906712033814915909252701333284485793834331123797396964220707132270609829785638244846018087579997664826752178329878419871785530161493346157256132141241083482468466313561410436376841893560990857498381053832346426584835037839695098775801502703117079895527519396974142091078008326111782032943707206568177388354778067077868276887466464224386763506210502529750533540893254154270804499688962617546137014086945348114504240553527419159642068436440492656253625351798784009808928265255786944879960984289450056376156558504470959753765446470650660549531372835074773494979742803397445510125300476718653457609936711446519058736709070674214375147076368724129169045510320824179609099724378181443718212089772584995530315676640094933944406085751703292198568860048857675688793489603635177460522636546069041405080795728551048540464688295001606548649980732150821535332118160936581098794267925114092124401245411972641915037351845411566879100764363819290429846466525848946805465158795110412366944836114524020841600997106745421464447778316644476326165066816308392229949128368645911098596364487177326598345993389864260091648574417213168863521934698880261519875589448725056639153662993860666430347816073640553405160758893067852748177651893292668888771412209428239389687818507058613034118532083575982331768155960894666294649103406296838304085137272203259037341677426751167182412657046637895828073710808744089307166404007968453388559253461614421714774418546582540871175897465598519078483409328464340440302121863361348493281724253731321749688370322642361590967604421275348146175710906246460931724333428906388884858637549630073616464653129510518291576105931741400760387758580764910284373348844944059109223449108526357201135831913278759801879305081325655014584168837002294278450054443459048127264947252411656297828297012690787838566654233913342354217047957772812639812218341007602396257127505089584540165468224902001753613277294387326003868883892169112606334774185419311763324508146982008752540223235841889648199934482335659685446011607843482385554377751040073941628263116652694031429011093773694578074960882357580891909603107551513728331515880346146172254352526331017278279611209687185686646154085582928992455232902424391828633961465042880797567347086158030009699746286186259587460486838089847448347421770889833088550949815664299305215096289048844472272140475316459109089489014594387247443447819048059710969047047010787433077165308539932816840055065612665867320787663317284222242100898332047600936696298508827528382937627800525814203263703770032135136201175878572291069306674736620491961861597061819059066147989594052265692504729204338580474411794829413844915777751180691338999708487912625577478943080677598136601046165910427268589920997564425600363768093712738207594649411635080347513793934974962006883432317298861276859881379284066328952625613040180298007506598311044394525656022538614914968287331497979065583280637510703206557484008506618361032072247578085391670454804866051156845637833785530672230051389573168225700579242878594611599755973281159213724623287595351802439132722021137922490942611666895841281812643087826835757731490223956333306426196214363132657344010221674243295287842087602090234009283556511441119682357039950815647253037304177346793094936775580740912028427226576631934217952258800721032914339949624649504622461294949896952452023690725309466977856534022313521182486702519961942985876308823627882693359908720984742086414625390796555084259600459457130192954358009436831058127036585432414052527532217839757315334646542583489540122877486368626238345040989703338976568041927310018003201296923698248054912543067947915918252497166587631902524327390035040274108738999766036351981607843104229118082438376584248204025361296631500388003578538169410187962507065484142823522258121461537272594098148479241409284051609081085623855680526537234787515150332618977745035235620135513305662653521905462027808440982908622650124558523311834546287566800620318745507284493036369740953617425898502431713910807476889209159127233982801299338607542607869881634466218377944080189105179060606530266250204760461811929676193695514595164204837960271696645161480842359779293221888791184247814775834098872497006088866470737244800654514632300932213342701408078808545648830340953897239943088909006689029783035101632211163819503690744950466234342784925560143487885655697032915165409664331598906932196557049072851055880247668978883672921559004792966897588596990911209620500912266140823452236622795983736039457191768703799088828532626338658588947336233898224844544836921000626393010437344570276676331438598410845005480959681379779732940308421261044789775019422398263241490393501841498818247510054227106796643316884788670549873242550999124888904750836608138079445377800071551064283209301103137912355819788469202225605250810957154258156090678094036079845431470152902711328447300322338436211935121289689284670904506479903078440579765011392765629532605549116906547481887833400023192539074923176802412925182441610209465376871525766499384617331840635791179967059263867014455413445371794949876046237033463128522394496494164095946509934624597379085675527935840848945380545897099583446984524961599727732110673176799628558662587927819401458947276192667479779012023777496551418174931026670743107939090620699148178348136408932161471085228995845390189479953359465078996153090160831245655940437419361112556620085547601068126038976169747573848412716991877762752730519079564904073897127654004585848135504950070718062027821868823408299578405257958641893631687873656648538194199778662078695462402740526956102191970115142792795494704837848141664143932333286801267317390872499305488905885137164733682108443373599928375379454262792809148167823415499013742103785428297790047904599699808265080180343174943558020377955260759840694465811481942322787272671195268325085089466961924708404306139221085783872809664464874568277759179401267975299254119683821868513124065741202535042619124043957967534437602352015834510536989267751518327386157583134180040554650547105606354986046406059268865045614985424000702833243415234410697166829039582795583432119736943285524857650246825728173191496032940187982857450570825380477113675370901195472773047463526518084644974468082334064602876507901840181886282552017707330345893595587146761692143178598068544508340182452585723219700409681461408597352506356728738080016763197442119695794349648998271527363589947543600920634363843918425432442150318383782403138234721312347534076150995112257838868599395099402376106709360044255594706621554925456727597240524699224728760830413830111871163544529072268211507873603147741202191156344736813846640528424297276988890254514437563046922733298712099702702130076978406178903455399874955938992769511139630699345521897151664564779037638685783044757549267930068114628490370392337208782992533334809108190011080747966910158905763592901142055914829850553932211118284477873335655773043085580757927613940000854540954182688406092727875365084669853400097434052916179908793589503573575511083324398913580476727109399707749557609752541619134558461433930435438674390892821037459335498029329038453682808401992781961745092683080006790260028808078871580817089778342019477480260185113885126855728218709937988570746353461606868732082129622525449841503363571418840747065522892100032438610466207705071779468531835997552081763679077798263784280707236808893276943300462216189179825202784682764557924227025292209768215218551075025677372237812219242039361918649485937715773559408840492054528788384402485767649713783729678449362493819933896198620794102108807298328045630320365334558773767605804685605364367973008629640066391653942311445725228290262407551306783849842233726926441788968462992745215033679028547639574236536295349524713516055895999657232724832350292183848072214721140737792028563336996388309463396181581188588055878583675880111800790787827278949638383887775381501971424982694797198112828041417143779481769855103976475835602405329659839376347826389334196494834063641493631055203207591654507288037164873066309456006213909892740169038127418901630562453274536298451175658205287511339136028899712889460961829232380227140279170263955463404338189586035734884621118546408573134468361619266154577531896128842081183507950768540723925754476644520079178338816138811294725506136421669582170473567884336939779052699514074890847093914700065134448389008067186897032059279828362458767357418218356051374710739082241952975759736022482298760536837324924411632673238404787820618101465142678087614871368937673987065122395443115679255558539057214540544032094200025268778805284833094428362486269051930404084101978940011501500570562864921628386897171436541083018438197842343221692610693338098056925140449368753920236999829957179314022207603972075902817907268531008143942429702052796082796100110227114081849354515058721909036499416634703745886130935863252763471346228928936258492775765417183109527121847472683206150531194905939509468834107501524505069636101768035815694732604515898354358230104112789158348808157259951457267035525662449942674607004790467583389622862192743740728879895526338759126297781544676263825470565764599249089501376068847456247921244375485946109181779948544668810880019740937696060010917494903892457047313770658000292028313593632358877416871253138680414255495380622679176125023602946617701635400322870388047974395616781826898300984000305516345808338594670409814642371189468314035430502587684496719016031205735944680938483158016364446574153274395481523688097291440017216142118618016830097552580375122902227535925885891033536083338950583981008601731319080539260666321385019503789240176879096849042178196107274591255495001954503827590577151704606673107805203658818571782940207043281650259979850119271910755934546797125488051482219242983320139722482667809815766007924626165259728468685253053993382572714968486894563013833247160697409952018180094832953948098288248063090976075186162066277260676449287422467309548937230956084489878426878087233520983803272811982837609023528975280306832884712949891014236983471625038437953954262524315736316040467246006346560042392329402502785214980604785319888418077080651144262784259068775509030579046410630461038656331060669842388140293443560835588499914605062974208253632075513409103184977772094264473862207750352941053564795767673012355737710690281458406943041449426632532001145125697980578600339467874964137620734355536939336385900436842410413851728636421869462514405215020687989356110080236396749355629792768702916939610931324821386056996130158332625443429644033263614620312925047057450608978090689829728262168952374111908035876689106837336555291265374964990062492332170360692698847049500456656111284864307020351741629938666708722180452644992237858830377199265825201406948561836468439183892577163426186599794515530800991327161525813881292894416481870132468829846386150080566989855972963139542118689199675435881500579667691947014242989598603335797892601561918634574701922686534254194146235147890360113595230832152709861324100684741395366713812212254727346198243482927474410188990496110616554444172999766321864452327796125418948595665003570293020986525930085739474477907710784066907461567836244679688394615873034794899993934917794348337647018644504474628557507564584251756073756094917330279945607865208046498277125605386028647348371036805979345665852564858271143465168296448794487486083289842811398853480166473259207626189559346255537570066459079529572812545780280503345392526589979560749223850669490007686815706542687771271351820690438593801119159073596218496041118993346707267486747056255221848784831082314764284665900131901672509893148511764360639210137095129029752098809724332454904121736549929779436178014546902903370952202472785067032207874859455540384470732183259167132849775809610581467536541618523777873759814864124407455829333331456898611733026279912689882044372577074969081771193208558942835688511763319710421069227095975124731565864353236813251925638474337027196581817979000744784789407610011185218094559660228029522537932979558284786254929697392417637812235618131059383105219197958422708862029383066354743662092553548708079805023549741571852986517886920197454292184874534035439111906304764401480093999980481939010975062690146844988678864783854121625910902724943179555099737294447230986861186112554093932108272923740481595641813207786476237628747906202649828860946291635489586631565422832929686471191955384021952204074297666945763832861762679730078770803443216785118530323602966396788556789428709504032389704299363701912721619913975498149197114534436724307875277491605800140023609919668133742281239747728822041579255351093753326915517554205018909357414542576676959573166822201269366003055740487408892066162350714127804349143347510364088073792905726905450161106918072653850233985627613792513424952074584789409652846833970843779525574654963801773720140687639042659626373067836049825126655511465575157057722927616952685330607367640278194882111551486405579397633229585832703629060111991087568193340013338670018201580314655320525022183276141427934495985124878602900560292819673598866866523506570876673946190547999127588563153341256337028579671294250697958588204964961747178558370908831734943418984796954102913701124543928675871036605036238598657506254995579053511224286455061699315924847936845960252931798802099393729776661037556405378760089915700995798359358480925773991776205371460062493236491277563703910919871867181455524976135952053263532067082861378263557232990286942699854530174435310078551144006107587766717530336727330070326852453186118743799968497025685703397074157077712318291602470878690431431454082331595585073155522434128732211556504425752005878478890550205972374387893362148607901321748670155262798158106579014488851686126455884889298260598416538094230393227177751099137834920761598939182679997723622636374919496858965638557931432726742270855082857950668463413024141842226962588051652140154626413189772677374515273294840873931304573014163371758722667181873754679209209330775177386399850682996348129800550951373738829181494521750350488871798076601625934523601769436007504269837871239813057444873855819571502685299930472464334981181054675530380058690892539310085010167739087456127065611426483650394734031622024312849004550260019138031412853464435149112858204301240136739087553968626311143290547346529842046687586326820995022533631575351006668926950373267234829827453071348187173237386802896659744677173511767976805074903180321582533664298670232374607893872888491637245725176218874478128004013615056010659565115737191212003657323286006309490493788019813389925754606980208101907583615212119394503839527708549598175908123553038633544508494822035116671236606158345745600164170594071827369130422905494850743198533345902035135916755813592010959874116365071289404742525063157188517970340339430245433613735820890422667671573389183095245508651437133946024168778940551266342454321306820495331375277307777685396358237578487926640894912168625072166274829223415805835966230983067775016506942261931295920317568257149893823254867202255712306222988212247034286690057840453111545607752979177030717072887532910021579774926898014255196674805767073416799624222659713550722314073873755930888385139386861042144910015227974008539787823609420206460226419546522592756483349320115149930796290293104601747067875030879386345593394777860183913637747344661055245479848732229099086940839171381518532786595287157241764782907448896576258888716057788671391268198812098468386086571766009344531222546343936116395730897940683637209718771209792632392455557719283791796221432478398836763101347351752475408301688531939833708191928541470391661216467951342287758219716659967115535410218554822567176332303291107451332735044156696758231034130332773303903152725269577249419217122943505584965506949581338874372103942518048124826480000084687268276364788844672438999970453528447565942948878998661774691959102345383742100595850551851646766607381075148328372561776894617473645052593051212773014062093200273563215512857684339987847013559821017221072654369561198888426411678399449858684998689148367554683672110641315719454767291039013999346563399744671514779198556700623877014565325349880444051596027434226131294664637293908620504901858973803733832172492988607303621095409312177662464786279249850973709672309875284165546711801036065828333401216073081588980328221700474409277718196013674998827720673771764396322952531380194518904707677942463474805160088939301541855793900754318540845433621376943549733605293265124160352715729878034394762530245091879756096539673338402023902982933126970851214990130747114140878627380317221515773577138922011160569816565214460688407308199186177324499856776104073987165564912820578482850062168859673068715497848306452960526560660395410828487951767031131277165949325852631888772538358554324795835029002843975795690246137454566507220645840288584328136875813999036141015129053915256263462142769024340782107378156379575200937919246100590251186611902004054189873028134246378043511979566475704002982448293594469189492890977737231649766336209667298327169735792513793344071726492280368471567381920678107945916945711872193812248736474547875843347663998769625305907415017814413115006002027983099965211824887715625576917864621274132811641055241113087817744065732010039683552015636638183252528550501643192917098167551670486313337875105206421200183570694885647480599811684053615594472951152418995566600658212041580588198409603861278352493366219689341491848956235563044538289239447100453205511016079868825749176992106381769901969295476088409568082459906158604746450991338334379039975001072900908306082598189679087722144499246021859899483962637262656768057347598618921714888231239623193969296885569121693017553772505495442828012658940506525085070906084296710635334828582200201646084398867307008911657935818322942903775202802884166156337139049527881500073310607674087392937210403408295357084894983991752493304743367544961174017490294888729296963465460608729454941300432467473753488228479117724731795001998547931627955585294175594473311212973618850844203989925408305750352554072255103879358616266338246893402935939053020346045658531196988017881421662465002695624666344605425699511170119500595548071216112404868916223326039017252959101717670079476216313789668164542325297252758168140251540577618354132856519391142241561955391356973994482702328818987073281825314036528015577709050611003509013673883304886857718620531428686453405772941417383379389552037959990605588082598094510455565244857524718220350815406711930775034303447781148555315940150854588694662855883255425034803479803257397069229254945617515130681082738813081157078664122612931796672872035026094154199703209043723079823736598584849273572760298593198490274372335768837747463935699739570257138124185947064799937307541316327145555338190205046079773035991493199808612767908934333865345800540365726879202472664512933399355615182926031786780228752123026232161334245996863682014546566877002203842655103890433630663718461404408757726678420681969200933087687575834959078975971262074351674563815473252716062163486380025463869421593473999926751783804818177647339744253194694297456320911033029811437446425073356234338150102135721979854993082518569046331710556272784388443421070502699497923956005463740739348283413595319168462158097068692976360354192584221925061925906940083346389674507136396315931595000240495060437145929682443445301624433811480844275697223109052550771374239832676986193557302627153278300689352450291028244438341324925450941472057272790385266623565821904577211620930558638815314289629605796503986832822347000659194300116527678286771114885619879992156272273297225100447942011552043604724922975768656022434780956766446242866165057168455877804281195950557540663880805873651509728763073397723996053743256139354735618865555709214050820952966295705433352966994598724452812839281089800808326330453547922936963144051141910132902029457694397873474456594974313046279966812331646973038460690836436514731279595928863578926920357360351876277667226202914104297880233852600393230774633122187820012708405047380718727584082193173880121768152577266912735438928537109281895226141729695683015729326513893184156883687509244295116733331720390241219112643476299622153678917612875198115251499569289862993027784055983163158696069864025780365312168227141796952821556735391911911533881956234750132737683599344252008063257115102203242175164362742329839357735920402661180177335673242986392572847073956212239059391338537585691137180896039025947320185859313972376314452685262237131434183535210527288923088096771467331890647193633329646851101928177451755451526524385836296098447873559711874843628169828240243062602648087767719326392580514388062895418810301244846671367524242095310829370853345023365568709369473461110833660840243587349247982818624926043842706899088798254784107335189458549197083894790547869569296291529683995223108962451455359770343745875155450874744296947804358060133113446079950225932533524537810799945407052617355416703406791086334172360309877548067121243321162932575907434162920366316055953395692768173367683784157795911306695137544911399119055036015867601772079932842579500692848816330183385277707453853028065395489057611083996942615941232798762407214483643179302205803318074055216064197052013116527529945947233767886615888185372960158089051819118328215075006949292803479614702229302114756819906772858239903750489256315149466907516694103226313751145005630084215969694749999431318450050229307941620474299526992771449964518364622233264682130743957201020451720187381670724132557708149612558164813407470864736632401853745515209867671742774671248911650150791076511206205198144593322111972257136471642188958010551927264051920761364434897776518867181084334632623747563228372509487783183979109185289981527040757709699667385273952063527076430852756687044425907601450642284838371643136829121719676723082023662525453179710112549887362404695539768918967821833123522262995407780198004413740866084332388346270741790783796057646171213439250553624121170768297313385912000316995181883653473135598827008363086962632450822224253374513580176070000110736726646293073631464360010250301572883011305017237184977111868549407967217479026499170834247948705785104848032976627633394193801713698410017749915927643300647471637729688755934246404848303727988878576206596927120739923956815939027842600924428453022515777458788133954851524506560385525780640940065307128875596725977028621762221742144496086299189968729933193418360755770677466376353251457343300656311635447917766078851535156976503098453369406307778271146955051538648610892109659411195255494575323180748948758343198271046019712694362892053412353660609306788228503454854989155482700653128425010266995722432312396316082784775938462696212480919551815896037375676253463401509963051455639351680067857523114589725297658238816520250514222284097782864694176036936889973344317140488937690131381381469554031654152702041108492627169527731195631101916125275550116188669957499018315746510367786571497715641284948653588637158728123488810265425617197087156916896553900903814067110414261866521341455268141981184726498896159063874842033894583304593294828132420170097702824152556878197836253208578306635284592976425042800995574793420063013244939032922263321737183760895133774798214559653497110881278414573602554004057591577197876088015159810904153153154320001503967830907480224308145901706510150468035106259178774389958652964959870960368434451039706594371745757198818975353584859972769666516128756767688233829102146812414320636174534730349451827881825627311919495695084089003241208788363639020535754691599451078807516066082229087097073043706751249422641856617407042326207875335467870174145078666827429427803139401226894845675004504203723995999146266212767805832311911808479242373743394186709436238479318414992188186812528725006109602379055644421858837107717007886179577411199721266386639400634963466813693365496907740846709811304120523140970595122617306285639689080760452409029679559462071823229183041739171336291764265317827550705651408418263450336468645951924296286752201429443060483005613427435199562186450473249750277527116032451084941296260271797080644489527306978837244892632302410445549352782826334402695971513273741535689304319531680098289524264515939510264306400413769398745278370110060669303726000003726844063578430789169193378495275043753422693994566955562686765381520678101039806023359907637340787688139255314291954320449896461590184970936500531485786979069053457080716707017091309793232392627128983373513708690472084060143620979847180537493212968913680536509926423253905565972663816917359364063484970932280555944571177584643790370185213414092195953915479202204833855282691777389313734244858986684310562175245768250002088863021603072882591200818183459936462170895423055373826277038114260077716198861520619114564152096082874069555063440161386793255650348572701002894053026781794988894780712341962819246526278207014416038282326258134975212350734168409022608122514649017166364245827429619293888610650692296271594366249881857779204923251966212404818192089196838368661158326014163965143554371426390357807097131132107146197357083509059623126571278459634529787314873475895229231185843568561781549823221691334824372526226969368942413599549695266652048678021947939245246685103319148090828421433901770935668592833213326968803131056447292415610282200034230154359148642952674455797112936853799083603363719895632748927148819396815801930549677037241865674357882696986098317098770852032653031127598463589486886329924361611533580747454672987026264135621050201995679524184989211796505137073815048731372572611648858819445750319039993628061471114722625922442317938815761023607757980146027112643732494712394678356170771049054397431052689409983070367046801496154688548959318611211626635329469123363277119632191574801616179490271762513601322528207084375320794594698214847638487810947589402472651974885533321370178590907981924656776396486157921655750254709279429143794748987376719285770572310475894903507987274327200914383924491128534284923471566587847275684962622231347416602128330290749445742404056509284544466068380579363703791099226048760919981228507542477676284798847798576471695775477217853230302019394842320465234000278297963738287740540805054054173318975414565919498185045955994708456377773163240339412029871545523871788525708266037852870984866278773076029659735929371757269307284080817868360211718156738015264682469719900816080589021621288227155605125143758646164656859829409023554931960059328591636879950368099600352627208011115539492900047563892345262242800730407318153434343740791194484974320260978720686950173959787939316459089242608054129911241826983364833067978493103727672160008798144426816955501720025735595508034808862340157222200174497545739115987319670343767395178166299237790426034009493795985458690127058798544910738325077882352409460474964970825320196133486504076911992569482836936051671552118357425419281452008654511144917599974005944406105728781785918399486176172472617703744443892382333700296408178226879061619008529959586741764502513686660080048447724495255871204779305109206052942903875453037829641801405432666152557870673784516010389376116731678226899269737372555473467885135694856493947046127626202059312264856957522710928380714374863388984848034630306482237876411695550512611734763819767919441810028150181292405575010983314789209530099490218341123205449118696500408064375844238772785944048600704177931691305443796511115777975688171099425699124296248289312805099319248193293100606368452071152725104326465865054623283158870760429325441212099285205712800398096873392770992281994517073167246220668684431044794972704924062024973416862178293827375630219059578372435406266683497676697445839963608354516152108457022044671554529515625611036326337359537493394266759239912565123024214861924089395763651190196379873939409221774226511495077358267879561492272080137099833397017775321251452747414391563687733629384665431468745593079264085504113382855318428154050173922195267568789735111708021889190473405717093421280378371482184378979153211075561005291439992632971025510991306924999848690168228369480362840537976932288980657055247699836588658185617788530398897089083396244643540845305697890727058191076703371056171930520695554723666149115332557702886899232235065706218884963376846042962307705794819996672202954048086943498571353133356321456447687810649601624966679487090124864141135318376189430589067266830656361773427360910770116160863970562596547636634544634596292622732641228782144216786606534451255004068083478022180253591534884398550427119253652611649109505042455999084975960166353724453616168226611034395288289507261643550790913955043338879749285477394064422064491619528650116634844282344732704238429693958792593549737569758425195402144464900858689078267308462075992533841943842085363452031296031677797180407083162936016030128000777036922559099846229219078079346346836334631573075814919510462141677752608798065585724097395405723537039792820221522127861897351953735449267608919427119534156465814778534263785754492760218510429334655592489140564734861110988386063765231469895785397621828707766042463990620582370258662798072779341927344492417096058081666509319249715256486126691582259868052856640843585531975152053629833898917545715171942905039218848422670293789348358350856043780150632480984692903680274437782477235678942213775494411783221098932401629680253451074785629464464929052887650382517783411906805285539694341215658524557864373890928971145599625137635407785540806674651714906390158380501654672776102288917815475251582649071540010899033474372822887411817386207307085732785326955613102460576453613379376632158994431719470707755682317787162335792455541926777826550744691283714157938870925735493162846192218569814861460634231064656227895717356184901436085530478414610046516649827094512509825889850477079637574082405080412544496770597219673246090575471774591604923433567112154619960649788356307249672715890970163322406189206597436290313199765930163274145241485715378473587718922480826227937566117407073815139077460101992978353203192834382137562960752142922274996744511258455222202462509257692923213478497007575710502270811431221058283820688137029279785702475835923144009010331558881464342207439230690158026120919791722024516013976989103515798582252626522897923584165145353030574509116639272308304216711252677775657679149725640219937265680673494995506526009261307895546397833558417196672793100136659410576156382363439506077540646271973244801432686071781836377701914106154049879224207391194434298513174612700134200108590226080143635049205901140726247383441896114221207149545046557553736674602770158723665749441102802220698064494400512220277839823582754472690430663110591347074898015817096653589322084654060285179899486033971265926678637423281319356364513961858100208295548071480332381915235409000544957493768255109107618516031949261634452058503300171408369397222430899645657822343077055591842636817954908592485079653747474916094800107154897594379430510970784657397330086289217024443875789152657993441111875821130810274849870635553254448884812264300930870863894723239492149513854387207806516218983432515371524916613709852529283453849931056889934502875769549391699176276691140658677263704938807533647932419967027698100773347824970600169124408917150299382612169878966960749053206839665241531318299979088405590382737438464057656404831421505600989059958309571855165071559549617906113812021705216551807999840970366085750832365233674299737276470123192660432046238900079936121139701541070624003850670791921109524424544473482984930659575905220530328589376074742251648646871674529237451896922963126789159740566207289717467150918170467745865794021003338395042482675147790567494260445171193156286521798933567789165015731103867157359481661327737162630046449480512526895564497783864057637380198995258274745354185265782667084042860108770290397133216019616951705610184518671300597108108210535728503981414466615822161230149111623883882912599517631975922125547269340219910599726709683775440053549608356735236011288602842969535669985233421509333368110672217000848939456245844852961820538557482079544758547577497454948821560423321974724515767648124533986861095921539190564429484503783843062713282279227623212592976189447005913173322111634956421440107148101775282075844669660288542796968865787885604812746681387010025820304481238459142744848120803700298970387245295341175261656852139314547042138894085909170242803675171139324837145724435740744930000703539592599910779934817518241648285622322631685293937690007711080013277086082380742257481001803230892402079615219990007205038651412751063853944888542051016924988307966823011703623956076112639565316901605348609417916367940646114823286496985142892284672109436459496233031469618983444972362231155829720712390915784487955869879337405054098581993108905165089860145503435209060856106165161215314553828013222334123057503661756832504825091449311139074064778125985532800797158773513689725604070206422756258228192330063750283146563837051561504247934484207453741617339320873543204994631912843815939842340682161546248775293715398791565277436953411997989301966538449079843265451048392863698597634454879163114847841097918577280245050448446494135664223334798562334012106365535804080846272563877230569360069008527385219123828558244313988674807342582550416609054281517574869280326255583073446051778141778135417603720161481105517678723008307862744000042239087006210400430329816858918228772066995207099900978804490811943120143246558187536047206971651115035368225081121392230890437169647636382190915996670704373631002441175699328489264105792085036410080204101086771049606908703258551544339359543013541330121122840338735186512947526947501535439979513069334694186101198471984384859368488750222366071674769610134593972388530673233491479648304524755118894871434564922202904953442611976139335394769791001355539549711427218447351960154470404396354166867954233253955396073222333835474595826594742069526769831668015663692076604342814287299809521382390132356264256845302179853146290773184993673367334577032039956589153421974556930674205856949040431761622905274386813761316635566775689803636497818504484985665066975857801523570307270927564824545080556000593432008626669585218671671827746810497236583550337958425912300372143851609231968076492337077952289979789053822159248752099524832821251083226373357568405600230552234221317834678085378284240651102152759377654663552973623160369883685132726360468341762335280172031139676487800782633416655796162494671393874042786068075845778389744611390166656553339693899410853849582540187797413832758457743911795518597336243092895252161440050199145939718064314828760496409652118591851740954948609361770649601690359418988717091142266135010072325000335657054412480655305970897269003970443472073716554463716075576090625866695667257395532262694420416624787503177636981856510680089649535262609119885049015465445436052108595283358932337364351798682024637206029354254820373934789185510041588442268740830108712815434329778741147375760093227440283707947891964782815875230834583512361231377223745292714573423400552150173829259469250248177527956518962753103320532350799893677710385999389537037902285653057786425252067889244487784176797532424847376397063662587603127707073664265939690642268178739463358306384667480904655846840689670839561329745962989158062073865655168181791575816950524885509985463138181262687930496888182753983177227976614889999930287227655363404754167356074760295465748881107611258222153159387268032745003103613249968775462971690684668243025083294002882275261658944969623368156632416127243789761275685783093105529983103226883797329013500169389046429499086309868077184436428083441396852008203888491862021398587766598914395070117158897749642377447963907379081150965061625067788352100324859694171034172156376591434114611334568573819993139699880081091533604841598398849799942729545550439463922528944396764221663139508173390008122614946772864081619836361321198222193334908753830503489398923925267886047918628724305781599704429532378326352335489100559796704703178936858830553769318908090926004849279724236188904152977150648805554461878193260044068863991779527921753883437219057225459813619725742265586675590325091182480386794811188052495407325029619935772924025836455908825679947845373762068185738236912947320992324582661943786863280468372260026072176337781655721127736366677767261663800154813416477398121853835577103973798021619812137519214011856715699982824851922973979977458896385692326791532417677455789183956015296798577205833582943255943460861937218608610200204579969063304944867332606051769597941980493027022711877580667276878583083024455922436121891297489088972381274937940061456793165551508171316319653916320508393488665769095381470374200863958264812801192041313602350207240213087176177226497762449706778025134669292557284503103060168853785801342832010537724414978787276521204411089682488697041027156052694639303329930919494490299302404298840850177493652961140013184810578500081210808313437341094569097349661779115268486246442174900698109721986015021494630903319165103266078598021573411322536663077837247182216806611094376587616767812352965943612975079389342362160506081116704415563166023671472260072745693054985511646062965926329501433584512190088644774086827856527600885026543609719762994042738993681536684243028486442581463267356415686098196384053042272774292949929282872495453233225173875663495101053713185847932875525237542427984358485121800915796003638839530256474009869751781732321781643004387090209269418489849970720529062169162994014977848098729891295458628866307252127798771208008860436329835760399086721951818104316821279425438153935316217311812939082541091413744402436267106815779971979037704194300728948408663537980422084353225988967432894738773081209791198241714150916239856005826429666865674268410423047990536744510336296751662237074920985989603389006180496691418640846965305762785118973623403179555842753039592258134014772874632076409302061215584671074698669577834308821168102173208511433814964708918888497261930588816333067011925587288741527166724926448548076780206278168395415645203654248541169685570731604789031051590215854548520242809893955216736511429294863022094901558495073168084012962050514493797080666331563368359033495893493471716259107053326392046290581087034453241605530062681248076687353773939818114685878904595736066964169965335893432726091583289129520506374151652237661259866103923525306088401522519866039059681324890850519812979427381373946935419329960681293037771533627001779168431217862548615323990731073217183565401117089930892448754053992327934063703303670916400684257885595185707273941239592520893633180579497018830516679587993135613567987713990468283082729449747285784955769975696258592411057521342354261391244974291011160422107573633128989998863337759069927074705036000635351597459263597467174356648039492470121071075036920137277960376174664500199827706778429424798582477142864970429418601739372530223207836890627612136673245583187039966975601278881346629052929057401688321399571235904590416390030905796340713828271137096523460929001997007912536329995599059726367377091394054134356088185811093326762872503557139895457314217306342866720101705142752108291050353946983054050297220376540129126655205804331608962226687106979928021558885486870630992373589966870096417545727272556350284722881528909672031080616893995078040050641954524845635670182405046380176809578527114857872513480064964656715797645123291082900540021666022701971459309806855364173493791924801038398538865369086042436632057963014848682038772784918237815344693740478183768873418799478908084022970381106628720551501389780824153141357970207018475962033991915237883364521862546126702763778723156647157919872659779121050200784774605715066076372558719552763972250664390096291224923050254049740135619649118238813169611338469982266323045410562591985890385682326468314313389279280136686674182784333619060040541920369964532541125963929358374143776475146566453971362930322477617946536916549444304320144908097990053288285866087613026244567089116038437517227776361182182852682300066071528532727679960273871606656224831057464217977140124262296855842606919891326816777442111453753659509648883125081058988606741217227092622894378759238604643134637942072612171366762146137789473262353345208502124928706206107206823179527131469606853499918544564965114881763797837054816616511003851272532971058705012236492210141552892300176935061143699747462723678618333705165024857766122325117511286579674058094642536506850321258923229879166813599947529857574789594060486270209727755061274827301305165454721292245730607282559406008726834376574636974369307460651418657532528017513068019791713810139672839796404831932285261673522934016207144505495324876561541333070195975673494890164250513117459371121050981111948274217218208067872844608682176151785622396965317711793359401986621485874144946410675521469679550047690205615038492885253430968063402204993003937239234383360093346555730406693316198855167790834454398829905397408004395685758076407605067571482975202779377359943529489113632110384558965453864424884138998177252109535986938719954606343099139356054668054224891288973485795900011809672957320869843575323296058849128477848832469056410215813331648438419801057552230105038574300969480781727556323283674003493491007128270591123325256270153585140095477063455236782096102818217295148567448123558772943211731989240268260618192656986016937281258547539862948523396045072851831978134129647253028063274715971428083646421456017465682417288737639278460886133061035792333908784582629541018969255720889816951329813341862047611181537236909962700891550883943336684964031931162902226757907748000191684549852320994873516920666332190174308228441797439835340700785736489634380353633900737067341717619944314615995783715797684602809839226801695832733551332136456082471274564735768081086512870218423753547062213708254383083359721457685482524172297688010563974598864921061770033147879558180882099948630751549818939193293358930276436389830055931132148967940255703315551628527070815075264732330590840681889883616963358881628062322787410140031043870562457631056149187926128247914130579975013226317390654299261480507603932558622238127464819978812369455346106697644895335773643945345226629071214447546121375338770812904513376064741919496356831962918003802599447589974394038891012043846907908289788942589072897640048050183408140955350205361551074481004257044385062931369156422549047225813038736083713196318133217457582343869971203725849101595082066099288659236512150553976986240153329398228277578604965242850869332840766591006064553507723410862105390113219800076582823869781247843200859999282141574424588963169251755214796188900406611675878384550705728410646915140283476727100824347903032338634195225859153443354732595078740475266988848185612639817091243868749210170278962594840401277680826698969618255656705798885995933476859804490628686389529071923356088993755904725722479220579348033212867390804884508130231986108309428906893659925024971163759711053158683802939233070375455281909156499660464587364988008762447434563267686246787422463528655331080280542142080540971545066507944103290334156886517354718277060675369638131905662057249142218531831388645348714317722008704212534295172757187661548203119258086629379197721158590194496024872846758367315624609673455618192851130369552081226206460239911807950837991758229123231140464187647785899911369494246055663913471044969349500850551764245106149173296314124600333203999400662590926947601698498447991713779852937367574314373467353815429794471844611813879827494451939684983766318930261178477349936584263881268216282782370713163842386412036670598398254120734532671578514214015786882981758783647502004499687287488834556838875010661269736816492945069096379550509847002231250860355285131071209472541500924060762417029258849261053862156033624605502050602372299805895811448330048085410938994173675903963326309881781753506460061618142906490226377999037953835553291475688439645884908541800084668397634363084075225613164770004663755416647789910463723769923853475927136628128408898263403042486621284937398351216270806845803000445789337345992165918064850790849011824770839090120986848648267561656929071973794985235165049967280520008912746248497311043066562928472681132186420064363022062856647309440567974655343048520361188246839675451563268968219263010641338391847533010362937143733002137932184455276335509509137861851494145486198238576200422849703413798300133857008312410933780727380973546353207559270004123693564064354203742204598756529699302731061482997732579066848459650104348508919934483301278894171625824760487377847352782529713226680299068382220432124355494333032927989148362690181219701689203866203033806746369898273490211417821812476639853539720046604410744140050238253962924988358659388790162270936113702990804332170888652961221388585386474757138299517061320798317764732452356538886209798761203852266867526505932385476556447530340431632009545852762064711738761492016318400269319694582389332353632004361533602768402016824944339522596926964714760789059364533677608762561753232178453954167868291245332686993241845741758407038790902611814538546709301879701435596640227083041932819127205166557964159768560188227944479392779840823780485141887819519062217376549492769324916978755551878831712230734772442113474830638805151212386142713118038811832457132934033009234721882160507105390977320618404125955196105918449644796036665134744629412186267215901107594134898668345998269256387725954429334652177732849179661670525623359165927620716466070724502239340348234069772551242728021732780930983625254462127785731374234322755360525820770547590377537699576207278841405439046163757019183941534546957900923721431512057963161050978342972601668578575078844499762795918364468242260838638219593482275328691665098716201100710172597493152546624669815167214841150316473557595925688866479440301670474894890406634151450148196642268731188356653974438252698145595550627359544841851781146293512304702853865544362894867100300034175713219964167570109150753251105153393483108336835269960838858686899272257777172175404413435936077229920950288674068027318382242088675280345560355991973090277366302417112961540490201985354782888111068743893204290252102339072922157210304008283527717793264045047748362634926807043125270309729011156713213547964277802008108021331646779452523870282111468608783552602296326579464505132469082158923352868307570369406560386469196602419440861073303755279200900221622893269285507966022914712565267686075472170721711173552502172559134804269145970051162289714245368704950735445042246658999880467431740743889689942590442498688614874634846531100225852194440981408652427522586844778624536998728301679246081186312195372495610589065689384345936148367410653647069053326378759194127958698189246889190437634383334485413868031649358523208655796170870576923314281754905063010350270063145298220094894316986530369636549485195129881670897948900023135163827959854382556024338341702875300906493603891195936521848552115174902368502616909692082991486603390888799806099228514462295611207727868705648295764342128074798686988775092980727964206352172543625233941184863383892789452159596681584075204053000034674301604824825074021071386902232435101637316831049110328260801828591372771307842626338308797985456950959832918290260430944669568459264891496816585341131559149887742514302233350375189871961347349329966748917170523146805230189063699398408777798510201694333560500133404331825129357382069237329126703866479720229902254012955842799580584184464202622737183786433381027477815572437733633289507286129689556640353350921027496495479828349317229239509733119806181551355981162920866607954490557669806703959237063914724662023326648001275360987603750821197492847862932258330626243494411856288001148973318568166527303470335132190398454720250101506590631728844717366997026881103847398561242144239074099688838461935867450945962234059900817305695613690883718049472465603598939683261445958627051755307134020423238570886754868242082098736230638711021781747127395483735677524599170843845030374406761291762089956374253033351062851733919158964447792515030818091540590872256289401663856647902507446060088849576953276245892490079527288550646970371098627515225346448715680654395998813728255509604183841949372159945857775791965826429824163787019693350686031011674952454056077812531915528978884396372188719789141512956424068915582925993897344135656711084666474613925059894680166169717155165803882903984013216277325461885100531815076617370106122052938250734944852728387886074858201124591966139823508581343501698566891497686324069865625385348526252465713948547415501348223800843598016187042919868464818655300371648052716368085001732682290993281059030281516042629320555512025693562105274201385280998778802047442847369838740701172546787007403341443870397291540276148767019659149242614590800236521139261640453146778367959123414908868328677347772233309546835861448193534581090030494624628267640188568364575295297803930781755144228533597814137563761037791446087412049682792729026405715443064795142120198381242011959423040988394825683315592692670376209086623032700612868044172876159478405995043929460682096718507355471358016523959987313506071067620208949072822653469086705352717252688675903834672594001494324074837095508872712844074057163668129878180134748119847676104053703866735284488858659228861164312148651626180031006662432088568675333382302243599836674059232115825656788759109916473377235090024606287591291021691510510296933539081279140542287988716814800731017267439082011482439082344151012818815468996040571492783831602205273642282031777514326143285408021296373104170555568439619975414357498176039640260666173432567860024898021235605989918318915830164070426421790133770305968384468912912517912302408190583792426346278928805697919714858855218324693311970453979503140904332735742701464818584995922593478383738590914737607454927414145920893441647762392278109434456684728060586491761172911581758665999850912744557991127762687007970438330110403510578533517184721683186822266264320091089855986851378364099555408391528222331043371090141773774613970929521763889777849892819880162880547559043991017177012242169552554317686335554634876641228296039879642565287605998019424450395840498540978969768420174077120634257020403230251731754254821748780399721312334870928140386366057034606008987667042100680539187195020916252544381103902872789934252642722253847957977489796224214089480095461853841938671069418560264539392222948694413999497802393945883883174371397542895632166827671795419538605726588768055785506667094408365656807164656119406663293123397619830186871583029224819671155868494013371579376235092749952412254992049109984762143739932113390605896928305404133224038299276681841489601513806145594502451163721400897738627401210588542891363606497719215198153606542768967293238148496548917253741344761390109795051252532258685150244860144595298618801181682150836590409976611647154747809124514930002144481708790380622333306487368929500373669216279874211145387312248900962148086404591875945164980585691291143760617839286522187433270541328975353112641935826572592284480153404873838374990710783700192721393607856459329963902416880728139344016328056070713795957949879558403843720324046758135905210466069805778378492919005382292596134319587182761605872741940320292075499203852838623587759074370241036259414083851566983446770031107973436388220595657448134782580747019336402151507261238229895265223137534870022283888433346004175609203462150830346695787220600893493997255961655977320846810819907035847141960453841474001294472511386590150182324167074349724350052420120045436998885007017586036725099089393402721339203533983460157466208356751002829086484041853440589813125874706426038126618473149080769614455941778660838323979488375679003108377863195387214676709138128204663383373038592586347029878897977887180590798718100073416835225560915169341021698680622168787387637998485161020503672815457234468533040611595250598815403202009409369446469420324363001093401426403489761033633537194159318181984418473273564746446245346035917971729417063445184385296764200298966142308704580585725509526226672190260091233404662778544163743770126043311977332726989321900309594350535462368919612474579714297762002320047447096334560572554362763837738479911114480764481005438862436405885199712634748821186177728366180662014714886953799181923727307905701912262422233875581858614912919287938723192956630185879512833313114922057694817885327314385590914340209479272598511231296720918719540755412357811243680837941462114863085060185454955840313515509012893404203563775570448166321283300874833567646510694353861475375649456943293005945942045293642136178813178862693708069415849346330810016626726181368176316437333650088904165018873057575638153264811794944388275770151985968513288583310637941451659606107227042481304072916675599210498978573952483697297701491576292621973406976677993776880192616966795162410063162325612933431870372344016585206222210921912105990223901304512461229847505519302319429268634709954003668787246499026002078281110678447134851046721823001035781271691555124668131563920632074970662064488168920873857404047590866724245773752308485227144681202780704736596179927623181674040033262615167576142919599298392582767163098795130137609205613068259993736477321984020828911612893204775301510206562798266758483673788597864787804702653522788319939701030182572638120454316965047738092328777322739672554385697751836191695564934618550290666927691353554803025845028433959176552935334732936368401536424756810642093311415008467866033130934001597083950397778137188653501160541768631261023325880156707771667963215139638569608136683102344516793169215456961274020899408376956395813994927571695871021590654354572747082111538927161591169514714469792789644120774029875374454002076141515071971128512126533492439935358217895367656841454423393754055914783566960748874935345089107722377625360689454515614542454390554663746814265352326329141952859674829272368088265472591209344641286933899935942963357364346929363913290166850047117586255628465265986162407487879314457450110974643580346288737912211258838458565738317167600409590705342480344469573540420882809303532831846435172797120237547219675004480513496538056991586376770338027870948792665096998196391150438809604159586085241506182300757593393219712441161159623761605115157634279779543157348334782728491895385246751459894382209896639098323274576829623600354738249737066076115212588341782827076664326148544652894088551462455700238591807759345990056832795924532762501262976129927286417342727566614961591690372050285697528331695319291781928908165109891916035876485472558807608846429667887681251385278920164240800897006537760837918780592710487175654907299991499207700829508270360546113063824496606817758781606604517522279652189009211528893659019206051577235496041528196776094448215421801850086234701666642244102863197990656558604904903891279243093749806688884829994648634046376062409641640141465221691133650237256656295583796673087891422524706996758140298764942315288423599967943910676417093628466681883608159547327479915367435613277687641717254433435915376818336279412494846470148754892707448820737849920121791244859989768097098169786683344163514683273694802537568475491739365336228765831768569926709422470846039156546188405453608768016245546931459458170258615872663741292417419196272834739479704333785960426070447057452239856503060609051765553532576613354252901663624754444588094208904397312901067216908863611429777540913764867228658425995325769443044816861019649778295888081008071778080839403710305945376665591931780003564277155954648864706635790180934229923930858229060214394380507989178668565191154327998883254855928345056701929648214846456766074813741758044411011728388333142968151417437235788553665272079153166817021170848842545983865798215647501395770686796216533143131966280257588101297243007301190159734788804472755364047740144142388364073000784124791632542537903437956615003807632991925791178397104838380065509453020726103552276737966392301254905915663937174113565849434663424113725042754615038161872833906019285451768635824765633512815424187752264039948145487953337407223002130893227988890087817874232212077562903306749907770754229911291341142655668722043850372587353596181151401477338532862172598647597941884323013096941175816493933692669826693555239693287002130032301301872736614901245846938639089198263026795572006274892837605723626737423803346144439736472407526842917010200105143430777138570199336012915374344029583597689185788277513495066194857081612596283360819274565077209984258256647930027815408214259397227036733912316761271404127266354001654901200692027894948710041092859525030317160981525958297911442916142153311485082905640856104225372630753083961829336902522085755033021751385762586933716447855816811442255756765395464289779537268468306900754649359472929501291554705867378999796826025893880745233687387243631601442321309591965452339865244073804282487201909078573843832902718134540478092994170708621699957179127504164846165098133781815781063895060213311653858434892508424619524458573124676144739703376160049772644427421299463117070939752065718005380305489007014643022151586439016241606207024480245896135943283058332351127983926143090346663494953352063952129792898844897918345578186226367606335754019816346232711028667420356235161619563382536400260548878279067025263590646568129840121164207791362652041429051036553288419384793995003417426932676525060497779889527169959393906985179082901827867122002728641579173887035713047092665489196012409935383216801214424447782688282423124513931929186899669389336505652876786588896753660271858309491547409346133881457369162048338795194974394020336341867566770270447521240636426506191292980835991821425811659241730607537666216413329116201912662189226584332946308575496473805271450089689386769451403130463478994248629549393514856891822077305796463491634463036955895149660335606963148732858788184273124977726544572893049209627351579051124511945577314487296143010626463844338694641089817101971290974926004970628643027071130040887238296304979271886866754467652412234987495993557361234589136807389080826987169222805545775950677548851409476922468693181466147338774678143245811341024123895727468180279792428684936198485793103728613035417839385446737387904120920988488084752949277466033513675346393968783436501573084861403843561178810423757910886551544796707595911559132788765302270500370932311574105137425191502564953900847435308332858820900016730528458644757617592169187662292200857981459711683877122689007009501154593585646698353686077895816033851814503926696711756427732216073114939450280903167228978106171964283442691988596021568675139714187435315906369376557719847772549045468829620661910879490092894534779945368894958478119691501680007192379359135970921217750083002482647282280684241846939643388213565237405104018315430326914577675902546094922564926496977745408098155719796687190603348491199613587293628243683338581864058810253747749623453823716484435462354919433859135558243002220097007954308355432844115056469881506783733602239962035635103254176579589022966948199868498247607957886600605124059822135057881357746203824623084344562391623225913668468024720843495468624192913876230108534663623194030831540788784180340068074436579508154337913688671336415587172644817195714089608097397339242133661261363530446050922758560702803721957342649024086579600427556164933935866599110727071290636576469024159670666972677485884146174850037608948469124789110650843023470830204875549983009677178419153072737987156066303547355226991145346886877867267483450994060660371911533315055715293485140611457188160951834103693973517952360821754683014145786607987384167369647308986438536337599404103637001204994021203448664121337614040844585285683618597912781558053461136580438637883128396327020020056569023949338733567197685855312602260287241543331886366071601794762146466206594919568512866575590637418106293256463682615044661914866086827584959680519405796233330266520474168842488330401217767970512363422641298817372057157812838221352093522726559240793750341425041156519177003468444067728904052179910395766248149244896182593749934114087899191000822157034084899565465300022131729491555492552979218698784102238169510364742364244831867478763804577804584223743559353722529604138399549514823268427792455691678036417853080958752907897235003523251841710194158820331342357771709989404585770911630617724437558708403682860365726830484037930257326510148701467948326751510966892904957733327639831943819847412092386731611697975310916429016424793911458624232786882983284056611551004201067448328906914481262966524876971762401567201988497260328174116870077396294455752003813680175864778194710144599134061901916472766687068665611694683881773618087043634710582195798756458863958997697423595509545139506370192214877977552586447429898898737174055045991656939443239695698614703678029442818282319526054755260233353436355342728575088637217654950756980835533456399942056112018790336629575688776632928691399803717869944040410527162816004379109216970602696783039366729361757903223912861908883901158811354867514619139644268343303106871468693027557022573002985226142380906469139141285363997125565604511860509023211393990998704881719505428980994703732045816076093667990272805974477111082159843716857415611173679295321328884028184413828035260519028986071818058643846044842455564384053252540314937930541047538941729353508649494468258437183141313445701236682761606242340582875227268921470572110445292546000677022592888001914885301845544708059592880812110416807733080686898030326483400566277030505795815625977763353743632878851522308310652685042291221967868890644231219811263207949737672607085253223016890133524500094766870596125758418608046570183843818709543032576813938693160052815154801529237466306495343610801258984789606163863491739570418449288659686300527798486516781344033002988497627969371336185322010087618740373352215487347965124657686111660211211077732062540891495031859804194268321623157236647007254461691432655756545354163873733138315092789641590377669694153689300504891540213360627204517479366133895361491514552291388976219979972887345346306976594022421837171835950178765043829542077289499823360315574265797528494347085043608365651488780475299578797665774509924746345258760358298130496516310068509094098055264660395237101216030050851353170272883342521917596509759945550454758604269408734238932098574037977270822142551140212234017171281528081036160689796866745193347981833361076306616752209288279979586083737526515177641436593511567045316840518303314746144891295513665657166637786103185474185821315115813916838444734558354109717002372881908796281472333361029758825784411762016321439801088899090966710848876596267835299220706647699091473230454266833167386959699129938406196978403515872815365823399659379571777995447458661124609368228120565187480044684833848799576062570730360336128975287931477289724815282866309510416032076219431766479500583068830761914524300444751470252151613110419762100336069517225512416214424410656233065066949355311425110218117296642380808027421632859635210895037960064646155049518302926059195257394589904079191546845522299050346250784569615197549189212446332344594689551007872397576827855656323969624520460615192743961779398999282456057387247777972240150786212874391654682955174072053523291597232521929491638498713992712220217945028938987227390894199375997854520279287033430124903853276617534421140451497138722686155063202496271399129315117571741167083762299735835512341906578136426118055745851148186448059291661169367472883895220279880351335972950378727668144412014874634392609557755901213991054964576636315779347746884880809456480170763226907416052804140383366103756583961650644680417523267132060621416099112692824967124181888107814927467813948258069897216898109120152496900012874336334054965790352668678344821295809316011563798484145306389135423018752125862094278539269495580645404608856312815430527487900033003870029597922481309063681860492204563484360073625287309631656529153433906054578747522797127957554156089475178723207821197298413804894439394940751882377009296232020217450836839836523840115835066972296331830454980685761079573930797111859908979015356163001772695743674023438226545776992090482853202794171824341517418827302331809123142086808710004913638127879344301317535194826386827877681656778651396414066020098726763365938342617634988933168644217963183484210412702525035184801956830756312906133844387620489776697398473918754989045584136878738006364897522643987115911810542307224503434735293494019498084940024820243590277958199612603504688535720190159407178791086867704081712343314171127189221711233215851568598322041794233532011763859744160225103486373232629017569953572297314359094405214875394478796090808326332857994152438342371479621451942780465651997250906796472967555860431682162008710557000687890370523402952840442015153359025811548073222552340731044800857109388951083253899267271978892236276365894448791921006973820262278398609015791002674668081649670237556245474689975133773464420965749930992588012738826902747676284156126751319166664040056195444612294204439569325820747058419596094885694934259223361202186145910815594690731539482620681024215938937680216872228222186786989826564588359013642641967491195164630233270352854213261548849869873039649059584926206550219137914304497244175011533872962903261650548808140901421049356736182860516879617427218561295237735053054403543867142110194673693634693091336841775820839520550570246618425622648892164939593090520670550149984534379106795208163674922828320590839194442278946059914828682705497325030085806116510210390770635594343972964439814090169089647218557623419743885847513128111076748785354990386136762421199056238141173123034019193186298338693493798797182448194440061127174257515826722807265531340755248062237755050772899990439977380025767269447358449476726305701012734857213433288643638139313211715273680374158507818807748146258503235792266889916880220269143952722335455539503411618176087642343332959890206522749948409592828071370843263472030573908812485605785453315642784339894902099939318399478237072182173862413546687828834733490248625430029301341957864667194603837065798723096398507335539795103508785350117406328793942846700482236342754210331322642739459757125618423277494917113613175072998802521394884414793136677756529725943785469604251198296849685224476444941787312103142643063769685468940058380096934493597695152658081417284059707974499788032836677188407188077189805249794788837845597622614985547489707271063518799271837925096378237599639144180128260812541263002839627061079890154944809174109341271974278423316066944094241470382732381806240640550382149096742190906182683052318297660810554571373310963234803425775303166599704812752372558156813487386496653140258299729850941317887765244110555366971514581546457933423565801176214880866485108235245473968269183056689117732407276275092619700560602037105544072140749770563524597051141121252689730310732712406593601877558983254071354693188797437319521184493705311401244785725086076165097892868181342814517795839781583367945036975444977409585682811915358545612636582543816655127009289419012667644973921379620042116971453376234615265401433738085403154538585924189866819880074291654771057003191069542431651890529114965597543384386762131894457379726821747451450046454390469178619008269262482241925808794471975016655614792011476693428434717687134403122944163867790084699941643945926735196379039682144531304930457921784961459718954299484082090552366098506558460041552211126630216580624507942014162740857482805432356423768492510306203196343718892315177262589036508628752538953351073560271011836684213649774543359162027201591860045167356782484311875073251151031741102694028011075130583210313405063561513090706060975791309225793333545194769531817313979330827429173054527912843091344398745570476213724947605034472046439366427437774483273994676572947363373111601502216067407037407890836011252655011371428570325610536577677338794618259566212471234043577696244588364419942684336108604944507918248004800983183811013717423859654583577271546123115539820604262241417811984589686692056430175039475786587073075220953368689387843337506169430890859035253377816724756931293705949309683527628213617490343353453400600717308188187142886204137762050397613765400743258465454140287111977584551784877125538476188814257994098200646438360486165952068153293278710611743126277265638490216276133928677577437387627884345975965008516140764642610691417887147855073973922135016489924099934033255410431034585763233938073186102850875184523069482385375340957059701290518485754289907035806450006619645105939091292733140745371524537070505675984616770387178469256223987928151474930828246485839709712141696184342672352934573259022534770959653088891616649117117335761581037189112389156778749378821169618719175823549947893528486865939193350044721921632203822481946983937065464988820777243048669538799242160695402769385088581374084129838638912855874025284506118049063470352289323196525259336823672092882776908968217837670729046863041172825538319984254226546073919736458474838957652591407062945970442082647088994082015622176481069265414719848005437743250439656158353950622745823869581122604470409925510524851445912971792284512161856849363611608796893711284875990030969720002891532010375610445734124723599500849460408461269856888706219574234906329244286734670448064527059647702225498462413200315345470922331897579673143908175268285593751824698990636727883614997608134835543503389038075295656541880694027738395385566663785406553429105106915606018091682203699198828879045087175364417410126485402265642991591891910110319771841826104413391294808952462084655131178602544867809239187001887349075544560753320673988359765672547623361668432379417722544394986893272964671601561023871163940446827053413038854587197548677421289090410321845265679878269541217316455086368477625412677713558857140029431221593216728583130506195739076577081093188666323303697957460498783074604207037442081248061551516656740928867478469086277870827665544996506480551956874370282559486942884579665922908648417383037761045000588624076582380173475749902899732340227216211278530918947768652769052022101128817025381315059624873898806140818805708264774710274901862703104197280126323822430126571492569191915862430628958924313697694608723379499954109549858276392854491412211689126717508005332183589704485487634176402143492357187159370992010646587892533366156669495457515722274047477253139445955586417192270142252531983170378886194315261500369013367198071000488645448390931247289724177064848511618013117214841131534606065328732064988329249363448616640580697060248718004230896581446698081089775561512553412667906115712425584777378870751478772213001892342841642657276976888871554100032294742931203160376542517823396975354117160092373440528912739944244707529982210198632332675951441450367536803179041337442151713331010608948476634453150312669194418938813651779074049116822754995206602392954555284100186450061568512884762574802200960550116937883455966393034239024783352418674660026641217040070658525160391925337919349239542500926666728151208170687184019548216279163849157397505776531351607561008939702078796062893882076612158923857626008571107654445868406923800775719015424576686035704583629830667209323943997384529974957208416257522070956465671650395782435365957287012517980709804046096470270085459875001394003832425023132983685167552118334911745819457017317880495186255381697046015254996504544941215079187073331068757353085074240478568495894249475985082906124818331102830386428258802666306400993937195387582330055123886832485992057526578581259201937770405607458987339704702302947817445917550822715604682964114841203783619883319541590769208251821363509009905385980075111333072358117790227564696701134397659182198308047491975059381470676468973762790690694861987247791759643887832073441363586769535628530158600758648367340630902214257680562345452064373700884115039843499653482317458829877439423959992869244596398474256501042672915903045707656451723082678095782805829922611255001211628173961064401505576991928867539174028814489986119192311807856355993415939222111972274723646833568413334451950232679093615074137392612890615788976257701313551130471503463583265232251019916325850158218548445917257130453080738701342622217747937820540795865006223297193187906631045439819938763161726811089918129070163261980138333841853051063154415684894953917671695656817186060809622202886063560389837445731210344203173024935697753971258186218260175558178293184979727445466653731457614277646484271786915473336873304240582315060663415312662628864062709122186364421230993836170740524886874680692650693189510696167988301734874104603045771659301250836371632537840900311184203440713907711548538703790917859535268613925523099875103865268415064973922310494114609841973707073356044345067567205112000583857301158098502503127833299928538684283413740164322692438842330057446834543787380012512661731229315594090298233244127326233137362908316181003510278290027236727427830057534598738224647474663683839623708510330940936372463750171135497094388330235737650346970805996565173241664449237338239480845094864042405125087020962380666088598200815855243290908237878431620014719497092429481414757016340929213565221268376526143445560508486135999577601956644192945734802297742563182183391407828474757348638689022114659159086957531792228744809448814354592233270406165820504344588349588586077854467148227448130950349384986350382174749037399491621131252344169645125974220272979201874642441314865256966536722391099162706009054082831502942123563140902573033108990407145467523116340478076101632978668623336803681699299634445232278586186026848978414229131206201216386496330923226195691397631523362089303440256362069276193915651783075058209550836042270378318497372036214623767814833053651710346078362254240263289159929728163391750244618534911061487003382616640969950068449420281115737344849873447607363097979302865040241268734884684113176829860715700674898060755269761072803682420633322611958834691748407357826802635310037609557463408823216275433727465987729044414818681286980814341357195748331914752835010372617869191416451743171290878568794031821616221383662362904444605075145551742226331850744618959131803271439141131338547013625092117545907452287350479500858534776330153095244253863774805998750402334162992737119332634057887435556591407012205329163175399180713590903555908886092385313428572535163381647993469344212124537235756446428073088354318731986779503341936962008484470962052802692699994144394901245385655064555704125434673590291506468894198040758378411656964454866803622312351561883996934157868193367385023982294456458955488257539869928262555944125852811258368677722358935820913903506601029319165077277731504348377251414442124915302813439899072880211868382108664880645340396568580144317727028094242794069729970510855172353880923707360501489075592124654310698841771222335256956043956963128642991243511783917419012347254407015143760259842778479658207683891919938648264661684830867857474866685874930669509574134921515154300182603041498213846354526301653340768023847966736196600285635411522340163710571777734524544888855326826678581047034513989038351250141238208422699694991149199512828707498660721571025607991455188836706861685042361829067574990100897739400115897426753563413219370587841653953277496053021975704391217437794281806487502114685852510539089833038447609058565550804578651623602900389200396316289359140584982856700277465927533655223422110359338786684124516570490899555040841735097668037120716223539443977699801564838101767410867213613586672137369422591176118274768417159457308073851316635541984702260307901768647738644135305631532864594412729061322725541327732989482796025801925956096434286339279705761795425293794536105897592914575184605129173174470469105244531328622477241536154354339510729563008212012807906571647670686267102826804594092927815927527266485950358435889217324159655496018649964419243739357281482163785226873682149231136100316148935317389318261604144316757239141746610921011203199472986769648832050974257986005889180946429926160557205133019179675818086329626077540797432075748476943168224236418183874021419520678066099776986394819333915797319483390840498588229240592973773230846007425624966708323548029509027862762482866849510211775152021814942073231238143486260243863564156056587126746210907831183440793520777217745471058557082779844842160522883470004818067120736049113072751367647369492236863862514622493217738407385253833765985650444108887460986397093866142319401145413836173939076433477175396478513907846543925702434542434260945659147799290151514511728579177815155901203957239504753546674875799666841012537678366256508309229319561177037309927041577995983618180053928923681562396134225584285416797572908788357315003507743942822745507963032296958337405703983009239562445572456238866312549762420749139982239506398244889849171819308317701844625167360769555313980482463556080631062010979521396846152395222294267921849695814579840558822890795227612859234472910461086955366827714186521757793648587095256041179426292069217375847231429835980626544187390435038004585099090142785580039488878960533878290473115974349037446802884276799665238708671619775006810512036285891375999294674886073830891140245255427894621038448354028094769025685579390691645012917944796450200066277333064270882148710685146950208761206599760771345043091522382532958232145600392736431853983849068496373951704636937289325204038828578868606601440889787126192873588972900016688188117900638317476004131239686442926762921977935671431573353006208054787943169714311836581099390946122317032321215586995021423428956035447817173820550991341196910193755758858550649020908673573680306483421645315849829960993268228137727742206990096618214027819187941157850349555421098873637692230394903261570181650481573988134404612959819300197424343717973367375137252697042125915892431240358595756812193911004476836652980077530052817050917445878376733177403589909677812785690496934647111124837084681485551446332103860532439055781762562296857061175065060058127920302167272532142953321710174649735176777554118215310087472092094932089987776455401791878036238880130737404365017726595696192039173073850398810407889447049623094496339265278062660485007647753621570186777669953325179043545820816543676140755705836090866840785578370115486288406865890024617552590296136724913079661994913655707274123930431110297435647481469144985997157336569045011451741607928584670371259080534539261641483652527182174545133542060052291397525516177518138358837286332057077242207001908935237308242366003788303380956514202906394816672444109421899318835804159723385870898663216801372309562254547800021606497498927688807300110329313473447897824662742809781297293916273057257487491029247656714113194377174849633018950894939143097300465782566870739453514835309704086741693711621126953442856229250684776254270868491688508817227397617110273800889062053501203946607237599636912210043970075528767609076951116355168376731880305222528976630290934881595608432941763204429282072438908731452534681259172819583775143323453190445007987835781760197077383236779675250708659709185109712532735025440321430962486797378010642236929610631999634617522145201469133348681639385549385209018346171569769930259332330068507715097909532103517804647462974577493140145206780340916634997225493159541675084797253600018898971952939663058359336035003099511425755388673381050022167613680634857516887808650108117606411091778808288088040346803780027609347719424442396667560128291395647410924578668050384739743174948094578486523675558140887307517529478525117634808667550116158121926958099791653188921657109195465833545094805597179227277672012574959760572724454727543834692850232530716696912624659830783446437892744717084754299294552612076819154586743626144112034683459976238756033271068279536996848654153537393830117797690252449956527836277292411425195660340500150408620783899160601175119370932946815343492215701522156874949033009143308262727955200977077754463529217912082416992152555680995410115341392619236548581104104167315850401556336941688709344377561703487812163893701711953826317153161334502526671568293720555142750402459528186576118226440945240572508870353667541319429399685424742903246777903902109395795752291518379096260439508261100232619552089863353266981993324737309742597941727147055426803624924431705554901424781415433445357075687085052141470498813183465106529073433513938247498816957166070285646954855502333967624852866553399750753780772690091646614078556838292391846197733519028666025062422088134700308405461800421280052242759187548116324950637473503671369450492033598408721814450320664425782907597455461767162265106729407870288429827648512330823288706643961196963769681693183487774399080708638420032455284898320465725729365125978123994209599752986308423119693934288213609841596544339365784931396881148308318745417095790766831685901554560278111534412576671359447708714515247500881696814632954067290358910531453930051077452913583774569054014785279130621694070986753980952517452552508251402451298050496842322970827025028335484527381300988921216305011630741588449419535685135874757597699230307114273108691677262779546470335395505741728727571754485990782870132661796063215447411886688537976251787136273660391391982279153591961659022576835118698427298060783950519618854770676667180807510450053623356363774611421083590918449824928827186105664121177833903377485722819373235526756593290384100940441236469985795072423994284526228158779680870189002068757972340253869670757476435027663595189330658389617215489750124792431810617044831393026442581587932925339497822223897833229788628536316757560359072166175533827968194929384548444651597288906126189118726142102414463949155222167240479450912812128269543851255132716269969020586640356742498952761055340690358465333424291723096870059615577479125545892417981407174384725669841063615674479761076819013785381833336137030816813089939809998818986710540462207861359472218437671836660635653752613667343581739991846923078244115503816999270994042871632707672210753313987319342817944243474886536765693610130313886033500303710538423291430612491809006590315670244806939216900770743737387071057477625087711004673060302312471330508942649873107410347926450569408418891438754938587354876781516032600390132219819317063552811670698347089846524596646501925503393379683591157611446580944490156648921406695566389985633653606064061155530703325556882281344770062237202213681439099479158595749007165906410675940202658785173515487894487244150225559029931903824857202174132342408195335091624300651498328790106183137412990442744890518956577608912717924204517266220512223885123217505009605850000195391514971838238838707545466744315223422732441793464193277762046410227308475354477387323247062897622594304132339354004170226920047851911944635156980276623923456168789034427736491444031919845976516664886989245075122966827261964792846807110117865956218457646567345533681083295519651402602812371364265725464441754348102723734550155191300789176301738216004270916185098614811345906452792651199291554703218517750482410403586599300889355460508053457057999779077421628457842483976994511331862857707747956223330805982472055824345054322181665863604595393508167286148923456221055119727689264621804916036314391529139505092081366091202911700599629075267408384063198329518044790958551118067869959226541964600911244192757060626025694048799290436169933739696796104575970597769394890604841155625189097405862811246692384075245958968133961775023597203228789672844812669818505445355475028082809936299946598213269449672963114561856053866548604054503390405431772757694692131447230271878958735800031327379209300388637737380148973680855354189403119992524992657588665296429157893148295783828220423337014736612841197044186345152436253073796600676368107874567662813404168065333253827512802790985123453917348973648932750223926328880140087435136634561045213676333316814790793773707720081800919751620421153759210702448742004329144434275880479499789696259856985445512605360944516833506317597074776780873360721564447225679921664841664883283586507060744896155119794727429663457633244433817442856450492954796076702562692832818024124289232991520321979760408382023509260474334875898061048968148511449827217418562630040157757802631741542792978539262444802188503217691816129731747251701417879121607019660488008143068539652994944891966215336185272096042404873110589594289502941917853377705862565269214400139547680920878956615930262011746726695743169022089056490578509215217112568639704600593161927749166011865623445251136233647021713013532669767450051289283158449336939373374937402874500849138487797073737075107027533865693352399223842293814095929695933503471956669012212407637811548673944123142794867948440767302648331056778028955797275916026851902728938954392080741512821938884027880429637002384756735096270263925797904212781364958359250972107451178665939944013161908577678761612670365551785709255598544768356177357150059439880735729745246973169873708678459713282701451935516268286506204956654104073366827135133448525921859756604891238705052027742879677772803299283902865090564753941365836678682266394317196427896384481858182356216566176872200118968314168807852167883391715470888453516367401809240028625755007262537167539143728486702536172362160104502692704162989963858324766094985900839867964500852650717731798135100373933566363491082979542321235054529945549124616309541109485381831696518555026884957624395877028452397078465889204363784922422249028030674191261951510392210010264380818810084221476177107627709596327622839947947166485688588990489893670192797538223249062997228566534423363299277940403313370646080396645784183647126291888097657266297461503818236713630849318752415947983944046802589468103833369642683888498066616124095254964386972634810599621205892936884085895517655354280944632911331103484703108774571681786431864079586402564458413159632586280598804964882846912568176393955394439479699491190345256500805250667532014477036281499451463728004440959906296680955600093098241912369555566033677224082542928938069774929127755744434354803189741125028941006355218758102775435804755178524213207117944409637674772803041031039175121973687202323416167553173177622501390031358398004582263773789061408710001127312784817664494474351716415132094072504628641995176891381250747106729148170753944461227828677510279091710538568898001149991172250329497502743008977823276805532323499253011424996078670199459794339398501481467704870353002339386514368420966655591449339654729454358979556478248874035246678980991232218889942641107770991586081997280693896507588999082611023668423434575342945635462479914745417693957798793758297806149729248153622315549488512113225457370007616061580314728198936704836971115417225739224834404555266399672164977294854052926485885254626625962101447785937054574258942256215564013451013201212199992142334929184179713216463123757546785216703786533100224441363261161839976417271394749144854152759571932565376335139839296530801532113142800390664362785437046779182947264706505799197563376647567501333903965639406723994592041065253057305173601510153134715598580824126985281900493371927479336253032056508153251699040366451234929845706896819716952070164486431938514740362799615972365291175702560195083174655333447267393569315516020230475931248019398893599183993504088849003441903136890776729290513943340598734547590849641712505064610531324870300547945809626720721201346918725099746356532193191626294938984084013634878181971557478044383017885238955076866190830615149218757356049447137313549443590955361945468971374735938972855422883876283131139042861102486112964790198916736463932381259225379704352355515727369763113192556289516176000257574644066035195419175284356765149194311750106833740435178549356859218263959375204732104973796551258633258130032095582102194181497633559373332301857333475178733195408788876220808828829586659912884220823894139220984603357187506212151409299585049647840599764339639677446620308453145541140861812977697477812916302188336848976079266383533189890664647896314756972686428758679159835861295210412739494320803533938723439165634675567076527464504509948940706062547074746026684269293097147578092164081575303590179447423731675377983934152122579925291102497773060101269873177967738666785037224199493362992980901108992138086409387582089451909126893704067256732795280887373687220076053225816414128691976160292615594226511109813563862344046632714153849244679388245240531211451730107135988350667072033431606888607745759834834124498799818089187924932286407677856027148286211454197902841259869346703120635230223759957671422438405268369105687095483676854127067333396950620452847202947867102371533122647653056249772435712575466061799311974632098414913744085909258462332553565683804955622128689407201737511653229956673293501674025310920898335246538985126352000838124650871918031379907327199994076421353783592871574083015530557117796262961194978358549819118162850771548070573142919468617621753576312179401631156573501184376489502113497219712587161294868962329944972760307842444755626455350102852835555006260807160999477580854266027509264534324246788953987189271295352278077923021761944554439503931065452497267746024759960811011878203676170359386608118914458204576752370726531666245001585922075126008825786733842752790544198278886312637728755353076800045028320547984347143728818629942987396461773827345766427396019004413029641838669160304407210123072235386522150489816458330702899748762037092865399990753941944669029858696035195989510546069761005704273616381787455337018871466373048307405568049551403945065485642330200033853415195093247477299519466581832395944850563431713917222657668937703921278622191117701229215735402675727741439001965147873834398562878981652351393386872167230314344975503057454647423741716997125353224130757122143039228544907194305898727753750387032126997088474171774202772977697579540785829323057685100991079179784738184692060552510863793512477463985784238412097962099311735909871677263145760178779235661400456492415136906839434432317743895817211089246614450661550215903724172866948851345048578155808833543334438251054501304754137918424420067650148885267451952398717841931324115890106811158709312686073863824649546800756254311189391585182357542072796640927166533462739122180151378656136837208349815134252888898229427429317325285503478562098591201831992716730258077621896224127938102308036860631728028809214584994202046290113315862051032208223180994482477743683917560295136841511433693725073845384944376922145577587537023175134118061857404545341949046147146897475577515309656508429219674712574279732524367550464133815032377688591547959729752178354849666448645960636006956216087872325862265258378688419266848747251696955119889103354877285654307284491873870663015686372104750740972183280718362001196929078758214550612600801650868131958237100568016584873477370123995717775353897402924703707650341540084924378968007852742841779107602128530094360019300895571256937676527659667534065578980859076379839003755434940030999579205773181286049149139762594527230385793265775228723902309365934772067292774830243018525884006326354460453686104802348757103843422331610467022383832200905407999916200259546837274674800304242519750486707577363834630918642317601564523931003081663372819854504005277849893539442704857331299321137654942267044077595060588088515706837916049692412783032724441557374004796761167246111717423188104441138859036721263877909748634071935826358979681296399001035492547090058943301025317597012503756323989918985500858356794262349119912905985138305939600980863690173163131226793089425408702956269587717714773910680366223564631228561627279269447359677467436407579156928314770895286950126644283285922335549175987636658315618740897741269434956244108162534008052106301985703529268722787405692517193971472809105283373132497948411529452703659218469853844630789462837352997222626210557331188604739158060462340085632753507740004809871991653086205143103379561186194574516464120424233681974212251493740072326602292672452828287787527286070417903714419689767088739942016577692801223144263347280933626047943622408631686128952770333288912292088065326389711957344592385036054207291311982247086186585240483629583742602242052112223480613805604866738623576553019708706081538524792069651760385895153231878992681267638394641519289383618175605867240236746509933326699385588240468610581959449093499192758079460565245908717019589892522804450496665372079706456298099668568611208760624389000709520683325830165284392244510006028100718544192190799188097769902648547258165807969502819867750414153794567376102050723963965890810205635047065332636115882095771083109015207018655664817820560035525178593692573078514761631047506936854925221052988908467551584069153808020840826372156759980688000867688693197662833083395057057401674265165930042646588627937756974672846335633416045177985552557864866555931783642226275079245516946489421550933763955123190285138215660503587287919676885293972223950107834644119631538364060433245137708027633111494959903985316876669582010000187535203112288983835633195978171155635776429829886112847051715222274617036438713581158491587240388079034871412280587857801802794290376821870302617539118269812559724142755155775753362284269072572388743245729191280920783092171772576022140146417713300506987558122225370891867391122842995972736105722030243676164362884644541553979695885125509204956357979567114254567894116765710387082809713126064593499316186225564952519392760404720043729646533228902532022419598692347397451314028273382048767397747844746015463714474499478709047576842915232894274916421510305959319986406812603691937004452836596743447517337797130524224275220742805939097548886841109211901029992604405561515371809153296568765978694900534888654129234627274392638676880410113792362352732192432925945855686229396864301152534024862875093475616128160491004283355500823853120600431773854323751927211579674187600386616334128724902456093033912441513992585584213692499918426378083368204088602010374502226734843529531528947330366780895797819711760928413440743004707736744197858150389934844877166121665812913256468798003018923811359183380684427032146065689259508658648853447802499288052991441347826331575048796655309774427576264515815788123311650036580711908489280353542821407891216376441544361281766248960459542147673357564942272007250926054506802057841025638906161997112987831206315132978725912835739840231948135821538320700123525561820319989522220934524080363248555132109684755812151100192381637401537015044348992188794828807181739966828985101222948791684526252186692277919066009484682025465466503683408737039925797888819494657055449092581392553754450481094425569911533856147943798362657234653942637356525242436650490940744758216744652089140011714391592660622489757631818913105285191373109182095089300107205075729376319268777259153627292635101415490955681445397076278376949571026499071204017551782489614548197956015285691103712073485224530168054494420580983569556613673565429086560707895281062982098407209214022932574211984336904303704128310140589228014457112567720621607632411167739419220931851300718615644816737596528413886597546831672931247636627871461595553163911273812968766683605323478665739700886829144644581501908700762375479989879506754171252630476392920419287737320964055484847048176257437031564685888941267174036082812828816084980749066588727706612075137321313413018640579421598613299309054148726326339457024005020104286807609921001812493283097472969615233253499559634196009751954865444120140567963777689747107048192897879722191777525038719787411726898698557914405352460491707111896589418083040942915243163036017836106378201008045712449158220016066483400044419443010675825579100031786428676540622418183175623497833852658441523322326583555056292772000004253936661859339694696563985503114109463214329211307830035262995613584351594338601389961128540617810838182713237396925719790320994307587183586578588984695574110041328346521003304501922851840386737386978020149513116765790737046357582734595125128832922399193533597930406475291738752684982426411355891570395316812630836832645863067907836084196983728880175995218049488485772818728083828495696081591767428012823659118682160466198036778757611215708988018551765490824401103919275698006386191018585517173954468928448492257489287964863095857879743806436862200328849001220424447648840806764588253295342950475993548848576763172074716589808715350779705364024592275771422895024899955194190552529711990748792746199996518534564588326252779156364017158043814607242501397025912246898818407327604546545583845547895257033172131589543662826344440931188147730789959511768122619107267963584356863386699147440916043954312103046501947752837447517251733568702016651970820273452072238214934215119655199190175620312515758541345788759457695677928789528065256572813599205738592721575081023867586640920781411246775035648179596590249884278618590864733615865109378539472691787117844075048409416836187226369073109098465410449278539940124101333684247178508893087531490855567564075629209770110658365373504066979132818000385676116668951019231969611597156804550310513660096225783985351895863882127510654888325621559973251850846298140912721898855883591820888096020406335275489467944467538972674504277258330674970796442188867268561060305235704084317573330759227439600346614671404718689662221559402737818775058897829128188297991484880469616216480380107333982211433074697776277226519601013518355987395892378422856863745001340020126605570674727167647260501523883781566598773171806767628185054172759596401186644453723953654171198343298815066916610207082009850802752734047625616681085207567107578611125536017637982176499184751351332507259272030215824558816259497218910649613691574604125235284354659176416521621674336761193586644720543937198682787402097994787694171812569530475198077130366811695880951952314459010681670143531844717649663014714390072302141083624764103827085171482425686595231525958130094087679342139140180168845260935847944316077716479479592488237143593091307872631421122502483629490925884955457372619498456225681438707403797343541599692766923289014905192635046312821450621896844461831092530533894450863992929670232632284049405982137148150509243854640433937325398860659321870055864748853291137449383928720737612978521250239017354468092165012506613225490244660100009159319844319339440370741251430814712002674528569376649196415400574485399580769456151624432927958982401316255984258726558408892462943967517613265319719178908571397426816413679570090559211727868270986725558016371159406489321110333073693947062873086500277963382745240034553328349273281645117099824039030742184434429325505928709612676531719326531159798778421709398911439803331598999861544172164488317082113136525737542155482462591320847015646829062830075759190488014207105579983011835089224742395970505746029392983856319743678782700138003531016728614564113882184386916926748172245127018732186015611840664301032575022863335691627713091323053921120263045820019457906059638023360597673274842210155149679144018671285245105962612575659251121067308169172674986356597682223461327997733161108777949664714251697955267040088283108479176497960269471669456302491639795954031239714243550300072878814678640220242040514869960240571924149636886972957980013485857695854460347070504085916943234268460752830316727639499992228036397011211690218048929406735260157613441594108812234522060519355074963933483572337798486660202486795319100797235087615289972338795838539336160880858752109468917785838990540796589475874492872029832630642712056970770498758729675599422654001477589104320723004370946760024350598598574156799901729078413082350427612456269867922297352131362816311208416349088306827886088737619849367466417538193067131405776261432910653316226827208765309656678163673672569517744590429352303191273420628177286132110414481819336134759059997985580263460472206144240045946925293705476143531226799290116949077269013610418819213265905574550585644941055061728453243176277973172372458618593906018700808046385844103868456494108644161261774619521746651025281702510578626313050214164931652022838701022858265598700427372330175354872911672195928997176241159240726355599385170925284712741799620793130980569453820734375419343416523425290871106809531032460137630802788560262167196740902549906312467780997282979398600903383979467248229302792711735391158174359693863041853404700911417384336386277868807308724846519710039031940740966502380349215319420092037286754856011915703766349144484178569682390789091460471235936087873334646913625115709425647169359828366486985184043785629527168536487028668107419898470511668824209019990646947800428930068536096465745159928502547010773238759792652266435347860114127952533951342365342664945340195586535175192377121787793043506533322349588984394089413561637939342374037746410521589114068197554439418974622291704136863787148325466041280251096306012693477230669582771830078617038205416683179304553329561224565810225555819738709544114363210847713979476620833551180728330711507586701575414077642122751318400225501965305742285956387609315993409628367097187497934720549693096532734090723448366298587921231772333873902628898366484782267492573875145895081562494590354009371818875385528648293071023159196401807493112878730191456169357000572491678028028377961278897796181540386746654579162608328966203871272809336430532156160499608138303538904013839405506648565608123933534867420571164551512387380085620830345103736495426288760680505994243832819151203960271286519668266217254615066670605967468374953472334264911087658423657827368336361678198150259466444087754617313004511641948715502461790469392256307894351357198519338241564022728205523782797309319223532802043581543508879077998488258044605130101540960036816395957047183819420555916303730471457091931957693958579842949148745367937688942851231038057155428991783741446583915023242325313264309991038341113755763386633812166780675364290362956658486200472096733310653183657399620472143073127730336461009005331880543927180141374371581876164995841672069057067959036917757640106568479477509157915750542915384605582041808425661537640358088718652947338564261209915319218388920495508739713383238972645422827094791378823377278636247700915700255075680003642913974397913838366151803462079685227385517016133422206055304820189744579662708121257959921724596364291089486561718010341902729520408829659688044442572890462839923086578403757569074445083712246972447664478799770847609162406937123689028764653940590773784211724660241401103057821433831554055358608763176788938050243888683394902496590135957862381334652850699312948687440023217170207259855389840895246057915824530563497921017440967131563656745774098139399290310313088552340534202658707636975385390701067711080990098755532146523242801156031436401954181727725485791281460952569990766411759623780177662563520885278671978035987496719001807616225834943538794541534257743064092267539672390401918421880324299662758514950291571818553494567838202613386258296964080975173427550024941144596727755810678501035810665763263779608887840940258601262024838307756890736991685175280569278964970409280293356683571158499725362135504713717428405433939593531004423175282506740901788096768293129145932062209806043112385143913166400444422280910787782652781182287161388952778247935224381590075660701822765418005353739748793283192469680766677587250150861460783582644173106890078788455067941404874022721488449043537976187406785441868440456294487059849071595800023793584033924904399705210084748820437433595219759884698647435520895371909444654551437608158490324380430860612717844169637892606431477009730600802209847831259034277304768159109523714764241637036032820121617400365475932639077955608260404680061821215734051605013979650012445170822073977815708534758813685769262093565072349410698989584336426391748000441325464961778733170648452839900364059108653492372008677979831474937267286971475155623668678538815074724804713029195286704648914249382526359988726337280598861305785883491083112488494808584641243510742753421759965258470371048401796746777068718979178539745169738232301742192487531992630382084049838328140354230127991098805159505038761611311731482176283583357868353592923158304802792992515445060579837826823986768302828050409573872731296806414864353938022766114434973061811375351284770673806588841787590268879040803074419250428455620356157825665941573022288186632470246122236350146612154691359948223589063064381930873240405394838232597227779260040274352783270274456025318172168361646067717892568113399678061923094021901748300357032485853975714612301863251490544519959808586957917230193396722597597115824497926104237373778312331365284296767424263677774075724999863663071589764326402568266357573075835084826097988803541059980135886134187882870155431326555757004702808854256070040447805318097917340251394787224057486478123668273586937540436466012695058235267953117571900491160651426203969909195028994671938778647994256764179242840645340682651305975401435314885516400084364272525368572620642642224255521888062758497279111087637080327236960825009948505158738014017843188459367178736701907249653350912080257115732052281887515029551911390873388581285218969577525959552657282844824442719295581870938881771524134179452722940235961552041368020903784706911335452166671525592875685150074903867040764129251514808245332117560747629354937893831482876508707403659980579494324642910357727830702345106419086008821553159524657564943847509767859914330297303852264784743145607923466009512126726435302277963645180024623232193315733996813439296990263082460238798686200199882942857786109085216149493990918385129082022443327137302492132021044209854573653603929798382695812316831736391301575873467211879337924124419395964151963529590135145060586736667433955924688734537853771414534131400002269699178950332659433618669613243457511116832737368380001353106977946551841592466065545398860406706401885963120110345069185450530959609668259475963233568205934609276328078711521026000146160577413789843966900999684620106327152214615609643717011494925142445993868807712684801115452555881181748933994369279973485340209375096198256768873228367889621748940411974591485824742707888312060577195326681780999540124342315797768547606549638984684147269250659922622404060159421443642208039657793437884893158018274952116095284863391503872895015117531200191764352428009358952169571233060010156937628930796841874124354676578475527830708440218904000253738774814622639836368404161561035438585251670131314028630214079649806777268595533162540941997284752489517736855719746533967308718871536812156508191865620354992779591833929709612941022472150520421729516276069650408119867558613184691889122860699430455000166991925998752597070746354607944921724833327041868254227173101262709115323457462688479847016512290231590413052590343794111371638332322731669135742227968091501355085367899232093501647732219756258694620976307947420324087768900241926153513451065580757159487371935673859727852174659144478761820971084939478740732647935705058337442155323976819363722464909942045098860929503434311888360077098839773438813626135667316265013536401140289408290578386613386493490171624846698199641473750372719017386397163523787474959408464504377411941784072877897643449108777483686729850177649008747039589820595683358853815438671447667096009397110419669282988648043805893670666498603803366114794370422336089429944661144798141768911358628476555547340301010783830976186721184504086812734682050437675634070759809539005734183090896745052913367557013300450197996308543644593560948292766337337390265218372042684873011682916575802181313484777871548535494886494158591499851498060847302948494182958340232646813635219078779001272931351163063135649397007632758654676061658644758451859962876214336765706700719831782349839232140077913328581738611497960179023568081921873567265380183624843653833537860506456762910524589625780422656989843860864732050163672047220628094032270186679382282917056530954094861852313179781083027961981631192515384523618460407304495524731531459300215951400598591333461639982898681498884453167895423989822472439279798878745633814419268469061079563286673977004740030898094228617799688566429271670040581475292783004785382395609905496124234411742845408295299433960012430113025152793908565583961555140877063873601434466265379072226784920380347765830590895969597223714807157273668887893836115483695859212875301522779824244507041297416044744263410246272201327852238603851142653899531992111391608491433054307816565317845963317497436935597395357820063928036938338952539052009468695492704689279956904180734176016611102846989888066144970773575443039498439954855305880880641698658484808690382790282486924898740327323002160335208618846766924765102888761186127131916696381324508928512911534349474111374293267375155664234284863224936951623556197721448916398041772273374612071700195974861204021530547389715669952505078823344283666951855257397819981581783549993737947529948232644741191956210166253808417086636383185583144465509232252833185193711816650236277828970864333421392567684105982054830981097419591239808745778247104366493094733835999717042297755808494541028022139534699317085030024499228197329969401162817210917410635136682604361575234910948717923998572432532162867068014155045524558954126459996508144555635438860516478149139339440280665687842026902675105929657068140379105510253802866109251804839988706095502315487495219573382914021697491487513192839984051970142776745603631519838482170745228042836035209362407409731570405531332188667502746761462749923192771461216232519796432344803352818396086761053192968857548879248850654784967121736347981902049672741462122525922679205217805772906007983975334075457376129277363073193528217863966561939118437249186135998644288449856345536557422929128843738795749056826389251138987132717364699213466181496490886177329023833433403592456820165872511225738655483283007992195483145590534674480296792127588558840879561425719735213164472890046218567293644173829287470864282128405648044824568462189009442537354500463708274292414024488419367906397543785145370002607673479066980938704525765486372029939402132196592356405563319245942768188667701024226795142744155037128055136433269783418536182435210110461690670991220838753656511725039878300567173153670956399863466196777960243808309673204553167370136976736181480336968028720900762681531558718246016150359747542849067648322393988104032924877392786235967430484470313450922616407901743170812004044745713215342595198441871102259268939746621775544937299341954300373252529172234779987780547170103765021908986769283527209098128103814172130060205037778962331641548225831301228234271032876383281625822935842777822125476199647900975847824131174267830633708810063855515140517469420086746407574401842052993206997927906732502718447622696396032473258574047501146911305732861595853655421694983229576368434219382144578922249740383010066895011670273528440737520070842848603825855752215361966575908618887342568145568255990117026267125416126412248366074090274412206290428880348035249229659829458713263092363668614819472307318143614229408954333564075931960482691528586997864959878814712745301178703519472697599033977527931234732046970692227917941552185032579838955669156899816683094267219081663807696454163599377173396307000176298818993712163820596490197314750841298979998356701915137357566540419949108027924761199870374355024265508104517050354361081579963957275669637638091918603795923089900599201587592228098021908175553642144786156387674280749655765687322444004882359291248596446883014499337471262981837420576705457232254679294155515373705984459473337566488725568854993571672534571494827671665750386243743729515336745231031752835303760786832359837381330840217444057154719501939329099442419591466454115916679158665547437989424497445103312522050166861327563046396799433059155329773861738233327699065410850402774937556599470762396937972401785817258502963835099946606018078198218155643518512005076412721410467023281440591200599411824573968123039110372236722916062532737306211003007883295898992733071565510744887289992295390719011714571825304758184480824176418823730628460123121370334948771222309590157916550210034454656154000212930514797017382253909545606587025807484391785638122143892309892066037301097928031131546349390421920039621521591101663179055239802032373875107811567104278585373820574529063413700521540878427474059156842720265389999031016897971542470341040221214400525518963683348954975673450042992728023841921905704439694480780904824993319359708156583636527383100017197695542383422022298836567283065456806220474409558335795865409785398577095235821509727891294959820717586792504311456375988039241007176606438693018089610519240068003251079086180146623772342127101059316167988375110847220179998114564872126054421820695778796527240008058870973920495865997611337526746127317794910034823857088710940003025741125727259726759378418882287487667559182091040325105741751833227774021975635583501092171980487297561313804341982962675025618437669020236443650273521348579622445460984231718561373549900614719997457237356044061862113534092599967426961916654139396085040447782083623251718524221613694496846318838377489311063478692971445060800536270383216298343681284642190783007661956966903647488556981185028254673459539151852493815373303012112715783136744046197875153551545670181117477310382877055650781122682262841628322118261647567713593341654074998572542987017165437806719869242618574933436768191885860715984726365096174428808193481284578914066285158297609897665573706731474533880961935651825955494922421449957776667073220023891931184137969034633420184720948061163588547038288500302626511045320435024694753730118450262565051385026220565419911253305849123329158080886891854920797110941422949774070577732143800925705112989519580143022886940387191554944529010454304022625153915019445050414080346852853418111168191058265039747583977398504339692797113602167590880301133443429412590252855098482431028781195275301192802150341186979339358077138701479245038188925093076578918310363156258332306584904956572655125634168236466109411745677342775896413218832283328167076298989396810970919828794998269728500028345122124793082582394021776400149761471340303096356421217892744119380693527667578417516509599444556098627505750514300101727247163360696223940114820756004827881670039979689461498066639279560716004414440588587059234603080841046184885957974753545047705647772005577727515080019325661152096471129259864258293310421396737397389938777040549282908233285888169405187948741428210732029345757433731515089612705655141568228891660537851729068571726337445303578749728300578081171890618130983060061606734574048296833357071449595592025768410940002326545022509802428175466351663818863601918359494295863423613634617844277728348568843483436887095069346267662646027122608841817319995893768307219215809951312558139244905448416454560755159182982499341719229764515765573418866136202646835041342346363199651389490988052795000233245618887737820114786216882505367977057827455138005383982907876604382749900986598207211570410714373056983147933597058032959231493431248506417014437751305671352339532424070170031146819705264973600633260798211518403161330185137002441904561563098948811554960625268741585535339084391988622583259167957060464450701845420566666817495334462834261993339239465708732658466554736633687767645805396984207737108103546946355739834101222616169647039808154456918582821622661171364330761776379354736084314473372294480730489756405276170498971923744407887673565685945446213831685309119861513523208457865068556840661777041831790878476261010829769583315943418205566370943305274162846197500896305957227995884063373300404119465203537181394523168050741718026596603804326454798930249708213425917499682574064405459509169219959577057972189742623710089645330106980540828565953787066027745335946728535104528792186325552947829131868167861466297436413831982606268968708584472166059543315304935262757193674204388042959579643487225443809102436926220216647827716029597660622378082654563508955047452744146319121614284073533384533161323913436791249170172908524000938520079537066273021619429694063420153544247702444765614178073309620605088846802432076324645505712095782067800986864111648308953918040383976793190634702357019394354027130272467553890590732531271869830031300478759761547675522732543062007220170022606961631890897994956326782349028957304800517438909964450551800416227996212606092765745321778521020967874543915259671764153045075110780613142551203868603538382620124980089271567616834619826443354759503479310187449558684673008258627507927143886528976392924501226449571807253510904965715945924536505540171987208826504026792959305339633627760589222661068391219914848038208988762826871516394054616651354388213409328794735142743037533457030893936070591057415618395020270934133038450801305786032075540085877257304465105701846476239671664423556371462471916734564729839097777098302799964107607736718776039234945276628306098244983233237936882530220661409429449975036005268601122346291776859563525387598102191032994577824117104908685610179854678968481202202296020631429848675475630640118136453274080367952165120415702991529800302689115861652323832198510302086572881311382981910264780247788730677570471005222742868592927709810626138658260741472290134441755502080067244659371768508704216199404689843228505354367136531556717763004729010724658579191345457400662474723296152430485072031744879943829432047781076689520050340317970569860527493381543490822175803717084782925854404632723271927435043358238812133517657773877952711641711764463291893966812705448503895346356648551459912979642271488360920205521503220357260647105891522045547627951197840442762546835311170058043496368826807274675563912811016884043573165433833264373431962874227570611798844870745449743671075356009747859525505611665069849538903033487020769111292213944698664358568022210865145841039722961871191817679333168590309153258456892448205539252633158902180876597736544881256458907314840800079842694950977882448348609220459042366313163753805574872801893126830876252654748164771622111330040176021003342761757964366477728539098559711695241630941431624412842594707830655086080375618026346026951260353376186306667427769346924222743220497280171691418045256592454110074854281475087749719925076919873282511262829520685285220147736035545686624869366067758946552085517328731536468798138139599513335290503852870509451436758655892784983279007343442271520732827232326787366568277867552770905376406515415262022873607219606195724676199165981345305387699100634330969337379967161467577718398081907029389998554677856930474175734001007300301623147853477104341091297303396126250117870720844218187477926497738802059373325782446520702581977808397385128769982191880181639010830120143162371443541629206232830490509636756894159673433120517657194948751274541190537941425286202711566056016582386080733926597124297880241293650409350884264360821564317888013505801210387184542024211814381156310144434101875175087218391637415846361830012152470805542932397194219071373890796406861164907476344650288121370228509178317718535067760964085938996768581458315981230883913036098144439877525579544339825018227277793913413514348480721225757807711974817981166621468194501278601943660317625215874516923861531678524705588866761765570783587453564691096921860748476868329775604364152482384727114943630699643674994973299773871300820959572333513561153535178180199998394593193248479666000570087903126176622223518245264447863905161246721900935552053032984624014298364393690966311041233421527642678761131902570136667483684426130285596651636193794202732221573712208301474052035683348014865723633412623255925571114570764593770040983017456641802425228094504938745565533454334884877970557311248460969729072856111767283757012298469013213016323163532680748857637234134915175587071211708843500921599254073509140642132197458796493919245999151422605630601700999228133814288653234710242902418207369469612952681215603595776290735562000197352455724927051972852689904091110952562515683905623842282024377018706543821765910540081778605552286971848861094661897754925750918963808534091323777658807914589605693540875211768114313992885535103965218362642181924124934422655964184421797518458683819701572820188486615686039364040015532412249490164914087831402280732840604751223151557437927622203039410701549840387188147322004425669859974701078863997143563572889444265090564369889924809413283446326626964093372602743684900627052014362685261437824056580731568221871731744865111948063284657702752906842850932919743356361600412216773953555915537437401684351836949549094672569156294705903342715113116430185446383769493758446358629142776494717699850828768900248066303227633022236442319815578756537443619194406987759169596470001963415960372759317746163903977670085120384951588312218949935951906188993717898467441885552238087907188997570606226266299776645273719446431865218656696455133868296909126649679408031747952471649778809851390859583449171715779946514080760567142310069365494963579114868406261773998249667450648994216313114667637209464080282533386925350627478729302666353933059178627954223019489421408599446584275328176449922217210629068002209205884675251124500201602506513053101924660390321891780900801282538845601807336534968772245996856691657824726492581991479454224935110923910213403386833376235519270827162681157797437846244680721634888135144955765515156865804328242936481355818121963064577199571493966981836795424614733108480758875975844224721061554246394136405150466103130172367246273367695980543997763102945000769515699422556882311189664331778628862411941337787570596566549321625916854028944593300243543898870642551249840832419753043343639364824730569849233306468124787037458460792708360185712953729304694396398100426383670117630405142661317951858443099754706941229632431233384057441160797110164007188084071953350190991762764594898489351002132016648357544119730498416482367240457827834024493092489005632355112670657773283984461198294125181349857947713339019911928707595803744729303756819279331707225144157094895173663171673274953569039455681203600598725612582314800190675554540825243937898951405025784256017343649408970141578189124176417681799717704074217425258288067285421979655096330989770951175459290829622807194842334244255434619789452161229186919564847773235992759612114015661576038657196834239567687622740791884084592145295040049144589380747180201104748344195824679324619423650477582094217251618999634738825292426387122551636120197896506966649801758795713069493331389880533417401365270667355263439759774173633612414009852821291878919276384400631915515409459471380140598331079180736275142825172174753417562663993660653042446918053927016136466828970254144998217507289152644169095053283930268442396577677928546232589940319170173433716799737835752219256935227753417663734300874247488960489868538805021425556175327982598428052305975443857172701796643236976761018421862861641378680771731363734207447125853026497687126125820259371822381628875583714035622514108029655250561043089883539806047669866656172626340171524897712362977379361858687791348884312712566551232531573637650521387333091076123329506037131122672705429633902340030571953649193525293551627467108438897326116744824369773601618906947502875799099159256620787107658950390748855587316499642850315989847268047876245243110483621115834120332803652653276769988462730146946377322635652330307747284463870166881583311805164815205677267665724553047835696922388113676508966775206821161658639207276955533070425564969481694664885755816957475513062506984585002496475667381394248922627076094879297092824178686461334255753553649048861960252516685063101131358274655582500664245833198704906934387572216952712095565072016331883880269494477341594763960803346762668827776748865319625981830869020873945964103167323591926566623958699162445753616062069584004401415203146491675149706187229160638877905783426869492012435137654835879110109556556993932319056802307502940229258474004889901876143220375754468186528894900600149284682377041931629485026035463487565474051850700277485760572460967368613454627107365324474052727421388314091457049251150504277674304046600414796112089275744581271936918735833339971303591162378002544526836213490174046108456436390584551544679177944306569776386586092711413203650437668483774246346210868449274459321889026742818712517729442178260511014355209221212715049873010694531768241828666055323680370615705377103604493186464559609508694928322886375049277213175769007528450198683449030073266146789000699805973270626060426287823877822948431946307768445342735293301583563681715502573195465836282656532274566724750903911428119898735453459025487115279479217266969634708054099097636833341893427236548884872887901329341472514990190192993381230236802647496574181634115511000418271857535590550318806371176351453665305855880489021900719450240554894903415191026363727915449991621068260042595444847085038004081021755191372507326812479239647591787793521107492752094514449388928032485780574106876593313694191805055154662464311191282980362619992613309024973766681872432383224716209069941157452257932089644629883537613883578003468772236456578953799409208777426625326691550888255223022706457559088371793912380281919408447423744066418272654749629427812045054720475245196246938397206490178057382433239535363763113430994434674356381826867485530816905654093166339196672677748372728148173002014490544174642811090518870584514253329398123700340232154204623808819150200100088527450253326269172239715361710464282271019787944736997136126753875313554660800763475260077416719176668522675698504567707766414464674267043767696445541483766999446009870087855550933995837625789818880750043877272363981604773468285735509408162730532246581061882504072087464362222494455303527315886564366092040334706390628184714799486860279818139346248002686147406295414124251897550647960222663067848577266743264895411512992944159063339599517173625529655610207467743618017596281043728302756271758334456072517178229747515844245253586400792070827779870068802097053065174870976110277179657651711640839369397804047703010542411318202141422090281777028917221035006269523838486288488859954073743781714705308687776600463624073122443801143659484741999564628417386045063107021672010498995014645249944346195570031784235936950196290303074513787353727471977145048119936797060735248740886594211352525128953912476514315008994796691277912944535747022013707902478243741468193644697931877704678201944912570043559255204206139571809073710192698741429061550806031040316441370013185819973234052823488747422287557143512804349628437494713022510480693597299408722127345604552535063084374292664213093167548633998170061446108294967219238644293084919321232154120809410086236593167612826071045507176221928610840046753880740799725809958778508613777430837512352512738045770071587390271542149722906056952873699813667648198534605296676828398492191855772999093551773441998832612553463434487863172078207538657942896026310324643103569576878213353546704180916083195325356733360996153141201477036903471717402690878755703805520586002643641445218377579528713108626135584615502111782667830933675604894094920267140601925864863395418830076624900463246442660201191467225045110535208063362170408038781990534281273969239670050560881791712560684743332460594494390723285376094947695346243998485355127764868817696553992275718398298711376681568698838926389864407395318612158488975786199899523334063868339926590499719464290850761682320369611580143979309253179733348870740934036897029800373320692404653011619088300489451144322728398693493646393590285451707804636037092932827809830861606091096931166109095918123779124124923986774838568887119621814970095392894894022273212826674730369107560830305392343778033974274639940541956146115846766320450232427829759729423695208678498261375230285559418396974011772392647758526116283333141995240547711000974902755488247247948528911145960333262749792352830262152936054444273791269076947268889335650801628557426757313752414200010775802755819575333060412960631554395286241369227936730792922849685908948291306472630281173620939466687116383427789422395056557881895975138956834805575027446009479752999073408974850284166543903059077426395951004140095966341678355858211915591136840999375564631246770456846663497134734120880885721582879852509079126155516030599621175706821061742838889693216144989937472110181313510149927333469199873291248548200064625265234468858676534781729591327931728930891258597920363099457407321625275449064998435783463480804353141164527147973862987002775036792435769182637149491321697684773362853269763208719209288647519966515700716268685859535645324357576318331616820381033805025686670789853611329274267086660492193860353346183514414838509826278573247002550381987077255707047062718824323061604585066233386982632707383641262383301134166801461776909252101278436372271255506626515496145589657319217649235212627346076167174954902795662616728379112613916330710463132188880031899245783493847852196476973561200631950646871176010602432177610849062300655116545323998656104174229732558328532622995251684033340824517482568472932849446005240702930966785435221108878237872431969239621606954813553241175307150814808808978648638786415149054457185677566714534981711434072419935664042123321171420352045304694357255372913837051371298200526870083138388279602950849325136829662325895161904429008293272991242874002807254376825724461911749586632889529287919949638933494152866726982208020214066719265667667159092016643866402963964304437412224808452418753417865967430692742845826549244762841596293841297316218160739466420216864245443388053097302213835111673129609311815094779858689510397825460409584328416336585218261740548655208981515594628461503414459483814967887267160148038192658709592864998240187497754320478733161032462400420623973371581694492996277528030492453637649216266223047083075163583608911079200025089588682467893529817535438091772843201487842493895733499235324174685245902648381113838447153480960852107009577813581625462466156399129511987629883944006085426313039920840600815740743844620746056447031290619921554217174885831390529490932203800619446598467825570502396474664125990648071350374110523080942004187497374768733021190697467508887661203593157382822446513050887112281055510615829416504335391725097062012605444034169967023449734406464030956100590200308949747784054275122591125391928805677719998886427030054999661030867704660363224326296499200248517937587087271336306632247977313221272482735869030945335602461783900084583364681925575002358093423594423598267434298207393738506347351366333696968536006950767227154808205269187497218157817657469882575280194697147613222881696501315858592683053706441722296727659717517899544289163440105440335422396298377053933525139853020517949765827573096383326652733493420285063041574816556495820914988918043421527458475046530153962513507192617862740957355013649950321780732853428434469840356855096373422594110054881210346348222976707480242367835755653981349229198558093340203997567456269532835844460394727719935895676084443493873170103514160012054841632579171472554937680158808543552351561176087741393959048240722971342217488181954816528390933940916665271055839457226541549720754649829284671824592728151498221808750128267409495677984911076960545030650427283304486184033244189617834614904641796921743220646702597481544214647492940494502307743611402320579905300534856383786188059410250639753330815471670416680908959854120905265051365587673096599804798619469772948569488521078636650050968509167406720149199969037463826426435466701705084490380956816468663248321216995937664012736055737964233083327288590235833994962775437506824321693609788660563350124311599902452128202929472587733845934036873803353752655976811912907780968638822661823733334146106214329688266168548198215467375131975900971043436542195033067691384306598378405853247294163686914483539668506157083170329124975006645447574270740336329416783402255024487633749920179179546771744927483640572815541259408093300504793127756025407177359071157826053099075750973296127696598748941440537187931513622384332787964728309510119671560437732801279538569577914891608958800432523918068581802422437624795441958562533014132220672051841886693552441080382005453563811209215819238294529076765840840942283147147249932191719960655835011514331479697802159971304556882156397775139661082544153241596431978794582755843643977795749071823257495879959727999773341569014088750320981967178441532440241709025484675145070463057400687182254331220190367380796832264175655740468594645742278096852442523354507020683947069630446145224246361134398938168410821779530937043635235331469116024273347450454925431505329302904193114812530386132426948947149273456342818888160866889744015511072770671392391374925600983742088919389956400015807381542123897834295364503293076733101046480820694477116666162825797877876516610580515274601621586377870725179997743361887921969320234359631233350700106991085654742720751361106229300768159095706383456752009197367675037334910540885643892871779590939403907179263291534694199712140861646661900648292984474109944997732277649334256915011280787526177552441141968809129961962540446100468511318522905958983739688394596940373948255448982463686189605253117364641249894629641047756659920512100811290928549425237020243909077199696880814062090800739994402769264115672334617781983331630176910918340792402201225715057559297958329622804185266284909364876011746773725051581283518093341575092842359063873823240439987310374842466095702325695670260295716748167345704951519878822671318058802231540068486645734255256177938870666401899376072951273596003396174902111059524537662340893917975049570954900609009964442038697690098780076557237662806113792792409016127077260627947889204978472609971837799779578257384846621087013086444593562095517421364274069176820204027423635826157242475290870046140930618355558159348988088179102564109616168695463824324636768149072959404118850519234700516113408069936366947749977046742213161129930537309363869083708501158580738763917003201549923817838197660344396212882050187743383233835240474363269144826140736044501085379660014542266397247782938600527318249173629330611490846419546739969858421345834602955693123767133978950052404907328559245797136429773556672253823156557427498065340608349372629418448334317811624061899920471234064128159938810300146757844783322595250298987665630204947114134671072113064749778475292269621283183994889476054858005643699265995787678049426536466710057229822080793231323106879107945916825605846091036790442066521904667758775417770578134708796878042512340527203956991116092958343665145407254796200616311530898720876698910401757052035334468516285175808915978817205808443001307152042776843596117349595016270839519679235830237615813192829213839709238689142099538832379817594413974422723020963941007678207996711780511236702611121431805629519514305453416341103416950361951349284654559286787703015678719338810099337718177233672135970951938131045398446311469078024135315769620539537552382174146638354339317468891144046550109481623826956860014352055218340369052345227147169172337876705324165883546260957628513747234910880940369246038308651636490567723865370649484063621271000787269869073122020518267067175900796499454893828351504219690453505539694783080352407567778653423746638603579667235745632836973637881167371219410184253166087153863784879661771690332872405904314227913845158135593215251378437756706864260122360791638505072392925212655831622506970062840895518305817268158337131738899793073771254693885414265724466722160747163727155452024624244565365271554723703516824980471803395946116228164218794258449113321492686644182463617502343557432284117562634011574970369096239710800656495724517403329849480458715356603942085545695282147706692804944127614919912876043061364179732788139151927088061056732473414403829930607132518737022840573271204452570990842909183367738110564272634230589379838933112527178492337238622476016349979618195259193009272938855846320856680399387284064527394345373695798471506571737449775991563400065376623224452178447782537267154017113048607880718859387399160058168992728898627938052551564624556434886668448859100843352226284226824309482379962327080799135111234913655610605197193558582740261248765395327447735854647503959524207530337849884340024806145542319605983396409300114236411272907171112138262007419977612889959443410296604496368890249979644719280529416121852768186161144253048162653505441967397324676302286468490007710952931161405460901440292754417513543630971785133403488360684769691884625871087230193150581584167014137434444817171072618872096177403632651571388086101726574150310016237904817441888302022471726223553651367067276971981498233681202266450678434704304416162735178450256404074832276671316412087896219183543409423254008741586222954933941566192984609976011969435678348339708113157453982872456053072587199273228605188772900523818526470254937037010925767691897687862251192199343454191682940851797592668410551296144664082692632718687249727955257288769231576088988188983337128762372592668733213907275968701667962672112377475945194895246080777556739518223971128306234561511479537438692325210310597714858009018570784558513933665131450810753570109072872906644475238833063187207646196634459767070439285407235750166977427952032215932148915179986878545701810621740713247333787491429547544930427443857355293580334718255080547622861327362498746772054330477420286226180392053499236649427943572145171393920896762425752741593518351632731321000734415551132131222865475972368139881636145264685418189798993611352751891929503257478850231238840554021340372713700770279676824217757920182790388277359319319883742596794849112415651875824006155914396656396155385193871205035488435431436017307430279280832954746631591789272161171296806270260186242148345230032696672960487889684819551669009103085180160346280986880972250166437036417768343212188864383097478075404576929707433705169946612175816175624732490764240707067753044654077850467765145602643922428667463262473995630179972814758711343853423459364414689713998748107085823319402839544710964471177389634071826311164002627972971629444736295038363712336996919870409329064916638320507528503616715051688658784337234391530527350399377976080542221847852139337671832352017622090497939056298855607632533377122876297437884641168227573200636109393741346207067210407770232927342168440007031325581675520645993432575096001416831869022021519272387567184615946469985171349606462255684175395988110917747008291109727908152731926558712239859765393961238132029185476519172564175101038740249747036845641149340102731268273951586726186214318812512124057092663679449177634238166178734407818770768694624653243174502176572121876367967851614153705051611902509212386209193353964180266361531733909948680118702000367191083708194146341663286839402113742628357120065454708658282680072229916437293769166814929604126397955235606880274636631396259091037304377696743128240291942116629801693770141987994822238879006486631704235211362246610353755787967179123579984561152923394074640805420202866918541618886092971683655191864050863713619484489151618013152885116877599218165528081522583265664822674274625375739593295067861831369471634241240187980298547434730571722574985736884694624206049101014868641636188132427911069489283541073728524246767677789808047904167861703115918312111410008631333476760620379031119197364783619749725936818436835867363147648763625724594515866012292534100142784093730047980599233174508678711932529755189012361891193742533092323718395320653882781033479377247823087252702492923936791052070075887964496143167403487755436077870328087870427663591005834959225981953959617209384857314341288795830208343680599372483067500134097628805801528176800503695128100230037416913233241530509163232686681816994071673561700410380860484883275429119272396485590159360556814046165544911343051163554006998590113481215951323784636245617555765747934407212023022417292183327285994124454667522213986144606990456216973533394313786015898268277710350015880635352970727070166367005518899300381719488660494512537892358526029222771917356174335170485478734828064203932515760704535192253239780541700856714689284918073601419426901166642367315585578381096625356268719492391885921860412858690133558612438550920442258466434669476105109008791422663475403078258547337581992947884187113911125715486015480469240396707733649612813445517760273446542171332741521531281873883892215459685952021143731761042132094894578995420270614230378512554186936118702967807000176021804695642760013851694653993389664026747351060190705666440967573042216804779306661380343399682687108091867565490668770652245675448216407577894209028368151016609326091979607769018589024133883522109357725913542680472237569506628894194863580560494321480945859711054940016359858791991237124951174334813201573707744144065533135627610465841890932290037991535240354237872434109377638816053515494928172389550872419824053766300345594441594295120638596757540229983072439168154491107141198178992119629806407460877110639644611074500300482570187635440903815019822890861335149197379249020543786034203317684826795237456596448956994695357349042293149080507000811626928290316324698135937878729047885150267761497797119447313914996212567844336881536985956609655972020564457505352230732974640050933099314338007035410951371628888165604413742639801961603240914427750790808363970802911717550274443985679765398856770707730879524628860464535504361382525436603342987204800524315123153507599601163008965268797532959686749362628855823251129220119412187801896432113642661954626868092472288685302080548531625382485942056189158244324237361537397768737958828642702711037555190738982415226878144605446034406016261921271155839944808355308346946666907819854518570115092277523393592700201441315291911051017261286403344666938164801285310763934653008029686958672859103589838554558297017734767514989402374974630874837740967220385468566751549989756565814485152566634792454860831332054320221813160286471573171458343071210309519844253547253183875914358290600360090916186518949394611337803284472984186817240909693336966576691221608773414922017451673770698974108304310355728712723990897003835007345502487272386020327986420992116809314275436408407689938002838757682315196067064748336297556852026045104832251524255652457100252835667840591798507990550390277115937069802804007771269545029746542822283276576597233527097795870740081925987274199381495743237609560339493272151163779582864293592187576901211571912768449322356406688039729463897362051242828578841672145198956827672490530017370896655625961844728997850447912455713802018083016676321747124216413755554287094702680054256919609778566274517843069896143703712303922987815271449646640900662375185038839029447820129470375535270139729568079274160760759062382856996456910713218028301446218420764783405142231283557644466802122287350564398726368219439567610619129056775881953279280571825578988078385770211336607461783981992082528629679017956447523859858925313356671417453372222305011938332697426917981822022299255314028087700218275878762176991712417702766625347187981748815273697362279897410108400176503444119777266396563552297039117491186964571425193077438866347158088075758128834924769141431857869581653060135735084428337295441602330660586428589751678032110844303787087617190659299261021670512083384622959863975730531511821791210793083223103000143858627644301715998601697325934773403893503100052398227277262581034281339885351592698894580722274732195884457871742366323255031295034952864619860057863322063330193546774819660029131760646097583675173838986260299565437957801821860031093022834414039230224524311195950581664227118157808454219804415277686185540781225641770169652750710677673706026828083248498484831721130251776064164333651084970550493168692450810530512341312754841854560098354491368641252251349702149810262006768479635965586008782690873593942151517956648608951160994371106386943245483645761755935592397464291841362756740214772737287695983815492728300279106857568208852571575648714719867779940094369846452836066194385906253713701739518503918846323213694467368856780219774273623490621848735857869362617579143871048660082346875874405239452469949526181617469133855616813724237615998182357176296559987843104867787200339228478882188837726242112177339459606380641141068920301269029168195783403715742586726511557830042144881182141777835077264377964704097347517392426673105877391466728075863213046718870243101718986836773372204125665967122584342871551080606844406880985247414643647880205899293153118490739677968041424524024579086788178420798134376571583342828901717946384559364589877381741426356503450403291131208122471307693911926439763388041622093249463221971432297054140504517202955622716667667149733775612008837975792269181525549405415164624805047126464103761988298997044083783192887579600394788771459367267824468984834902064931959532194672403264304534101971542956634166538606811370963063827853153859128632717778776175844802387298274524486934249208088878760348839665597663694335324224888782533766938187327795346941820027279201945557368844716861214313123040469895015938594090780989786758386548677824908199234917273766153271448756336915368925151297017223268409349087009020945109082355994460646724526486981526284571497098123201383726922942642046627782069660327676073586370772990154513552512193135765873729159527420719751492864870941122808831512473877106037067666516192082714224754102378774858929429996576267468143586430418042677520215191988530736609884068078418074690282339313458790712290359753306893218040802933297609661611604872856555992048113513840667803373649317286291791812360885560240607662211959773587378068683392415931642995563829318155800667368024722271491875507971744288560436544893892128028076994796659448507872345002241894820819819989305693697239996929312509709014281969330131223078996218497472902156796808467227752712332911087507826922849696136631367534379157079615809242645585712418195085887953239795451168965005921518472052051517823719824353025200841250557821000107507493057161623347601600255798617061653729645095918497238340999807220449357848289496815890733013625252575446923171355669060741976881868432567790595481710861328620608217380548535380156394628597190515633856490776318628208989679077404291923114932533766512609664285016520708028799388571847865994609924239432552778949023185330277055588724235182642466745799991341695314441122380982171364320371549160821064226398131122929310306985370008647726561239160422274846551610475448464311195025307730165328172656942534212159347297140536325534322467639818574850356879237904750460952254547985551292152314333569736792093847023417517442325312535629269903536294999104520884364843527381016790720093302603917266973370263476414043006171257302288084468688902343697343315140983509446167965434448813285125624493213727935206178123593487123206200566199990629909286999699774820355280579096433999725567898245661484424056253820640958406408064404096906206612932312525368691937977232061274955723587792419027321143390142459659245024829082088450754551276646325230552847861693236464116271066737144589382408359206657634605523143463841427350409381844597340776232034512980427687339999584318420025446178817805528078411085224236665719024778356535053652110595044179744989970352718827277771261916485398312245295256710685004321633732643322932480449517211769682761485375813848797713068315949332305790930215376992258110671891792304942059542440653062739410353541760499382588730078276023042868297417506467302603370911068018854634893009249416583874798783633172179084163224348744309674129286203173464263400978042476093003950729633833689578362189301154111424088013262143276681084328316850358047475356484794001020817449591950427344147436372367464976076067412094245399500569100736011650132338415013691809177097837443937426194194979688329435579050817037575381604501135747783688507763954168025088513821203760182203726234386037192528938876614647909743590805411520758062378454638191001161904546634506354799061123007798884810694405605925150821290657524058420604731784562961201521177969562214106884342816346217172084145105810433153748282301019243143767757713561437268379316050382581925213532821000044714295190065460801779170442907401978992361512052885178295620198618916984558085570122377901789191974209341890458517038712467971467437044474349556707001818684438796215290227605116347824488097520039537203769328798399060880672951707335922369234659844795472479423580600397590084046767093116761035894265534340443302530091319799734015787107199692309326398256156670613466325969454057580938770937022694594206086635442119933466366365753169990232763809280914265398065831261553927562685863960858271850894208898870519340542784510724806927894764612740517511744037079058486916621341793965357903379298195886287978254286577892725214935467062076647733412549131255645001205858813010949719262808656712929981863901717402508904806824015999145075624302267738005869917226528771640670089508133356593764215947589431797500069168597160330104441901628438366006369275836088872645895614142574915347289061033032679638887604778422381986361090309787638230456701415672948946901310295133563429048826867441099380355157210792839649405145866397886565769553451650300991175549216498284465813167189137410782304252403403645294348900730227605835671970683298261127319547523902218276432902625329717255795086329679415468538061512891620505961889933866986719309691019110789108527972332331054592686284350946224927492733600126041645500181815396775205213619516599946529157781933878880800889401599702509598639108347355273425238095695367215433055907856359905674191187666314429334603986944277040257922602580825250901131478997581119220355948336351570340637717145019328736564401271274911958330586834991175628306671077023623495622800161895466812341329390223450360211608813613904575847595074313647745987987361903404127789219924131160053217475459468787295968677458486373396960145348351213385248658333992166316695794196068026640840859600368717331050824627061847226229952599282455403829785789354723382132555044846103252070367511677371900106486726968080750581035130735262686116306667479646694820468996520998862455272237467278252759538335784265580753936404212084231485967696642081549144752455192382917845623915641228260719533068954173527426500037793761696947277966969943691673876604079541040835160651756522448846555628688394266346267932588965975708682805300065093972834458105365557664049023896623972492383059508302287286702905635693857560373083096275468435906703483909426443026951240381343522797443737493388344291657583622701649644528135309783532404861588019419574462526961918743945008051081630892354634435247416881825891648431643669793553073992533813576427445980668932736853934554799346376167465262767287231798469650010028189999246933146365399330301663896765640461340829569132368738663752272603245914658742656808604829783995352185796623987659453114789583686840977846797244824244873775969330457236553971104452055147000765321901001905564153105404807293755666642154666975399745943740758099824857197615403653881967682722433901697393498255993795799457106868286550598230689028028623192332573951316230311990908496960812097648554321767024717322622188937447874521447959833779338908255904358738002616991034431151590818507785490547228233062334600232896402150084902418529329357073576371363942146948218062420219260573578580991080867227215760576522628825813171774992255412777249970145671615914167383244163053659710391291117231465723635407631519997635560772875503943442345466039533050512655651329140527514767693592079060102980167201856328576683280112834324714109705624781437091754321814330824750892646148254093671297464281433298232214267976962841793232402914964622956643455420349149467713125375646437105339622225689903367004823791977692039766000361387297558875486702020834145871860912643894479490950887653510950676714573780730149373171295779521855667036517775635898256482311496620761728154610117274847027229646108133603254412038518657518509117584165311555827629857381333886072294304972718264668551884216030737150881627542332260738191542475231549046164217161673278925625147866583729945389243532558614923402405751531642660861271037534796772261595667155185332914626132079921340684971358604420438790035281051437950165667470663789718436635815438635712479659404783678629941476871074044307440136432497652295187613514624048339657705106590224954645233429019365599430345379222932392229753086048823338052117259296161754591578168129207008016283068876629581558611308505576919118668305990416988168990558873174666751859280818178748367752180808468265121834201576181217982540713788802546848482663000021590506916179542142936500056859260468709312793456997942427676706280079097737710228209674445216544169155417194031165197073598249637062284831798819407704108537513457480139121871391520559746750065655008650802793043369511789492437766846996217729066834648358261816130941758950701008394233910259336653676951227745228804452614724174234644054644873384185550398937076793955244838526181097318141000088303779637582614515706268454357745753521364843265384188644140350834683756333912614244631638804516099917389527785992288293339336051808643512889308539392913241950657633234442782342708104996387170659001972664850349325978149879026578519274414655130108530026468621039844972732880022337874181932966792558550211472061835028061306009833804432413550616670279936718696282348503168095782810233122933347498235303634921582139730548279038843792637804995112438399705177788461741730441192621179786808853686214998217682697439073384275334750955326018718222465069844161148059226411267146468829236085354109010273325466698379344061033754128927262891662438341927511424406029567651293014623270947639486960160719919197136596036563164815933357672654646412781749713500712544775693420861851099981460466604506362937722835686072687767682075453842333751219244265162680041450947514796622905125509097300921825002717552126683449362264231265924444018882857163309711309522483945300640675201237025452274966679276058355812823483131260613042521511005634138165839588748893360209843588373904080036871307345534009254709955656665567877106600397361791016051085748662158621510683916907699384139923334141024116826290371526844273558655809035578329347827470684939432256448673705074458534165765245779014056809184613997319653203758390550573954919707160504042335125379341530590540999232822746546551878236874249790994206462901230498724053909798652310994654751972234487647000685181184510450637396911312862333463155941478453063127651143699334693466865862724003322196578349109955049882761603115169960561204633635061266352169491867070247239604191109236121004747526629949624275696091893171627399815568051797462878890688424017444070552430510654809320719518751217122516327048175496897235714350674784373606650169160777190098761754038698173337963486331974266178115274658645320443750140004150325060510223634900263366155839442695417301037586740541790232309940702573375383207373696044894183026432285663510668019730748566977814012143358111818991581747370824439409763147938577446860896124471489330751190250380951991340385691732527585496209008652876144198908056645484148696127933650161255723457658638950474439754027529883214362304736715413153939384931398924097686919198300696943167051610985679982840031849834678849786970212205999671026457771615890711954967165844024477464023966559829796363699589389936458527726772923836302985644506474466091733688926807407162980739780314381547793004084354181167418331113767149953436358245801628994077314206895673266925912160790995373827058491434882816356747596991099616923056387747343093969210040591181741051760405695427765004529746685236712167156442184982924724664531334751519221210095282871457098381911008081259876844617753442546104294223315498670766010628595222105938373094573998926172202644321191624271009224703260320200504946567022857983007631330345094910209690874960370968083203502768677403088184457800475090508502206563617600477283395530816067825479927902102056862165302783906530204374308812485936675397953113779573211626156184403625040476172308371930086280085906046279413185232570931244622746837342884819480302119620652227286232146125554542897332282963313318032974567912164078886455822872084403716269675511747837358199009530844896096951590560278255134954803470434099206192070904387411859282360826584259817587358171479937358347355191527055506477218918338582673486101824879006619204551212789383837690645085743172205185469615909507391880776989957545365177863495885781041290306287502241754035280141040911482536851501029374738408355781746021056048453412589653286858839152159886981774565915629373749790412398570236414627925001166754093916590271948755956302229090408947552906572370345411987425311502801489640769600308973091870647441199755499709166146832812393028844498507386510587683868431614627452806278838496745656612318565156298588444876782348055278456325618365652759144726272708354779554981760742278796964350426544150612666092304748996334749969399976409279855097619012501901693143257489090495264244738526964410330703207434554604550987118872775078493855039240603335007822585196542642124110439115914036302830565915953436842195654574157315511845766411487777251731025676542885301952901365864737677126640725670391444267669137140127333947592098364423556705215836770169817181281467286955452670968104082112732782612687565576435386973469525891025013071639521548085663584162891143172091206178554524667239085419826739241655705684043055881831671241992238029471884509551187469953400109071213321607279410449872509181688198902324454609608739091939436542108298062419895251126898455793629945666777189581996018661938748620726254474111262882056415515845309412325240715634053057619798551044309992153556532712085355309173475041692016443436227444001431156206971496915370796025961582790593202840631829101529931051288124302797766757761116879108730427374582294397117946423400708392863310301403290435978785674493910327821461552726762205863389192556516269965648738554335304223390276658146335320468188342917923369213976764257997396846391647777791598047044612308430307350455167547726969149109942107295120425006348959924008468431780420061004199300181403207447487100676089335836516365572672026916111912037137674502335060229312322814686434740779046113206417709680747473222575959149816436394653611484014863204155020879195734988469592629442571199529407228644976483544677054065221090697451800008323525679633463931486497399431457402506936999185748156808923262506900246050427382388194508928286613348506597828795975736548862766922578704163263571242064156555555155724689451908056314455623917298354615386973689209182620592025793475378176199378312936409877666210287876137451019231697888730515463593997430080294897237467774915858235973654337925974853531256993773116050692644291075974461305943577603633187619428958111404736045133620548541010944890595629441226084432947064984736014973573262970053428107794818899824417945964183488706507597743683042881354938874606609627204788960650763283381537340189376150711638075724838272218807443225979012744794374707873657865881841791185076380882171256903835559518898114599102870129192592560424454246174032921130005788667498842166579424186039773354519065788993613994369188817816084689537862852720767443375389748413754063850747370819378269155615639045872172409681837014328356932151681315671595728836742562789883649552525469124478801856615568473856040846008888884652960180035784388887751300208300239564122522675924474480283236252403970458674248628162262814842156682308573403968700994296502074225907673884637170933332556199657714651835180802884854213841110208824226459560620166445033642024414410387033824703188349521220160305834330322685093834447938464739462044059539164916826655672196060007043256348931944014465744673410355878418357032487593051361197126092727509505066812549507952425493540670081465758110366914315645688847502287022193894569568614191078458846123358451991807586786194295145706143187358949549887912215296559323745674266320605370940574240385909388750855921269203974804817689533790326383986706291389938944715434242181146272896054471661294293928506865999049030927101514864787778655537222283853650671298265952515973549480965289307205512852920283262889634552274932639231033555287384732013887997067930691986650779181506705104646904766712306075281007590984259563049782775054933581006373992255889088286545101667876932068162521607099099516288909877381132397118479057877902005231023138034917198343527342421385379232609192827194409745045237267517377072158951594313372524788444114694215215811184297378677032028136058029546304549960989440324234613980866604211299059002012116834539174132923638713169687593282046870672971188891841303174839298806074934980155839618141683237157428725637802564498158829708584520450285613184169092891483091013192828935744833191760480098066070959645933957549486401014012380350059664186607686798337779721966792942862280492626110558623641897739110712542480639776959190699892088826947058410602702463257693380902927956152512247761024397447177850159627069073674939161690214398895363945893346640218532891485861153529041682253297334941654603593241577866453392606916285431332916954772461918133257945373367299732032436462560439966408044376117037787341580328488959516270047338671856725787266181770223488711649298008296949541274657869631561199827911885984032275688380481101231671022309111698891984646905275137689370538818707557058587926327082776222951120685786035681295347676135694925716520342552974718561790497548527631573947022808603709373497954613677358752624725069840643933299957620996805427995391554541507585384757797991206298089632837769866959617708657729638672187004937086576351565682339716220767900884697893495480909096841888383583103766165188470110585859979676103999668033487734934826845829713361866186190204626857512255113540099182631503600310205791325231168346621537349066380134853619398845728610505807391213891573366323957325536100755112669369250933828039747782424294435883886960867978102855150730064229169581239213481267188006619178957361486526182925418434527027596307301461098914249499875194664731159356352196895485598248223580788189436594609807824373460198066787081243724897441759541451103387121880886203500298173667604646581237528184978101359923294220511087043742792999233708176240746435138389545530703234408444967284798696717803636969008636748002061241727255194062197737493956148794888365186236784886860173046554893053623435127520283890094698761906976004038646647093832492309048381131663191217137437542827551484000331298361743325462283367769875364054364847026827960090477878459173243680342852515553975754655849072400766447092375759863946976823944680948567079861296854823595688603996124795577128962078730850996695613576972228267534900274376553045886827671614872274411998832589026501673570759084028463004987159926010437454423775873646525994296834395110109570238854408072166568198259767221845031007229380275682521191813140212731499590177943629793154411866382128132051495231656432575783180753175586997694488657144999802670732943071246747832466237655736545287395324680455068389685012366157073888436175581316193382443229827672386721242668051956849812062268952174359925493981600950508267065352006272645988358602984388849498708050209644894998307501235484964881905002351605250824513791370678336694330665520389165642246824112992243775663000155305360109767594243041570398431644864578534819955853649243688147161622986799410086517884534638610973758427134164618254789121586209004061290320476965507268085072559741571509467244677424849549870189836934295930557256319542277554452083338946891526432858147149137747584615235465103235948651312887252641426203129092152605775511876632211619096811660026036138498961538088673096635548311276211212227701267292400009690530695995878318194601550275326933579195116060139973562671420157909824352137321764069163165392646466732638747049087529868057394221191341896423167647664708981165788302080180202058255716104323824564184383387122762968696712650651638491979903950338655871274850029054650838003214998951948191638575012154041527882553824498748297128041724537393337585519065642435850910897248831410246463390429714805192609874447661874936623333152269532180915211580599556318521224566427547462059937968099150437129831697132757918986248157784940359243123641899030364735880040259856475816563471855143705901863451376066079699412810927083504344891729342234564103712155084389281433416433653186732144545905684670579795271165513073650364698557391644453384860418346390685818881884107546719193126673668393970693517330630703846537296880326828300381606974129023060753485016794069922432706860109130519913246554714645821211773471125102045097291911971348150204661042960895973986267721783472345931886749341369005539794054974365934483667989961464912457473180857465533385948570985417237983242815193982516054927836125211295855140978649554462035610343015751665509311402670539631828920621385051828029904275604490098888065297740637311299546612290898940600799429132606378007173895700621361886641955589807429245038031993598913025754354858683123457632140086762464436553286096017338685522886706577469756114767438779748446586923706357638562613913078429145117360436778203739342731270507207568868673783362293602886972521898679772414418325312514182448160214005245461043378108022568454740368896330944925995918809988412966180270580943362386230194582274554954616240690378581290760577841575247660397874932475294528806842752673720931467476168208379697353479137820272641257198664911686996582682098997034914439689663105868364879888079024749063682751764402920271393764054814379400529869793229797923080463929374346488762636726277815167226494081847673197925232303276264600697403091652515491709513250622603178633424461365239165181382714084409978489520787548560322579679336395498380152384987873010245373539237723245744118910515177913895241339600858725796405015968539592920661184464424806631015671207662234130337508144802297240934143428265122817888090655196342489536758633037095936854218757273032420605175523380041920837992149023433507768831998408368460095086287437466067615150389655370617627979793784055057318932229172850145599817497938100368055531129136662400131993084002358240714761244239122301413138488148939950038810297757686058249463594111208475004322956860286569104451518985798026927887613844127267467199999808847980916889238779256025031005064630577030930345131645627728480995683167528717040692771192591218576017344975319799813733972449544749461002667908542639840387709886376510149317875089411786418870321502871690542306046164977568502315654190970946715644426424248667691113717303670652883237543955292003095204730742940715261765063036878027472494924947786806441674981604685048970705638334101098894518066735460284019101207900275124729257860902680691334707603921573243877935141593828425987434391981014605150688708865755301533682591982453738266861710616434413650177350314051223178675135524599672938250390655840290598809038918070958373786697452025964104964958006016376280311214174307940817088679134273173031646490330443944636820241895386796700903722208317136163643779018081288950609285386801094301676322943382843415785640754482532602339984321980903796884946112323952759697671775768995145153959143211404823280409001780915872994820960037258366247633173131981589059029691652748318143562875987360340366215695902767712611575092527594616323490248366812721357040373417974096206611113617332716775837319859348579807485308229403786685426133599455275615325959804089195976305457740528538851365965528706672106714951692244024889397617985920768734918127963055362513715881282669114034507051548495966840309757849989179401691909043022907134264914129951202355673517858002643126792972039211789100272753410602341089060291849880896377026548246283270615969486084793576914203473827941103185018450373913749209260344424453024248216158740909811750566917124216379150711034974355090997910356144057215679061539802042412956153927138600413781727861491938763568925735651081190432233164019652299068487563885067471447847529624935843404572406047581834818915647488491870433786428242034700147028195130131944129319283947747396634090502876938005014264184163387161238291590775621455246129136323219839027321608926335913986909805567396096377695376481088149895444718143426002765493434181243728391763463742376099241661359967951822866095687133324296997791558734509048774231736582581005109637556185013229597925302690997971745241786346843190715215681608920621048212923628883840198013018900411475424428122265622450219924325066428874650403291436378562008143804829013582016534963363834596545597313955327048644122203836820185320831546146576469831810310005260971027881317455882457807888945806314591464143671615812713051159886511187405030096542900361093491701352688345965112455574200429907134520047409227697714658474276345227770490988280476218429699246854531399144852801956812034932420834947198240119043377610979498236399043552014703201895272163551360906337213496434938189374709976601815999696968535942962212536354125439879124547942131026537097813690441901959633583722049141144977325517981922180261693958552163219778042579185318735970443857098515851977613685428112838375105743868680309732395924696229619069720154903049454454134037756940999772046898799191701515659147007974430064071798872985750437134082204550906466254377742438315250988079129724453052597595203627435944686000759727544732844083476892387112638132546670895925824281353878158803553349562558347473107098516192084269744717462424318023258695306740610711835396426875350637512366283247942117048791699960934940759896593058404375723554774140123375293946529556725878546957031225320592847730470375479895420379962121722946883756914526322062709192375188687053140873391498688320765530084564863505380349965156719412516887103281397459885122384952589845546292199240609073919936833289907867953574869557391074382473684789082895127022612501975615986190394088191399231078982747037468600742456833373803313582152191683977134348641799845214970321545234622497332714199992831267830653897690061151878435311773565898846434465448388134095302159790421022992252452181584831736140733905290337578997831424456199001025917386263349931431296225231539641423212330499701606440252008750648508623161184865745103405957271218011236677727849349752220036281792137408321192075194833670067250115512616164730733408760756359034318832670693595069730121305029240341809770866712029620477272788107657454978853437985962526169306574923862538761069774479505790678959000797256975461301026921125341535761468299537935578270211024459886836842047536991030024729622011991971871058447679840239255892708682283884959310371503001983014023989526087296237635474406733853588377581176327697153637618704152230887950476690736201894458392666918771718666249903604004814213354546127774553475572851542581796548289921770781612946546431350716206482770590081385026697474652521522431755523558850079544412661250897399067681385357645711863920565517932786120457922293711557858518713221673685466281868699901010635476432850234842065572144612137113496318883848805468287970480188658385352695209769215523570763831881228140494464483174633155726694644176362145424823093279419886772481809740183009454029742424056708356450463974506801908128228604089527068448849132829371589035813664552177526487552092834864690855478462648342614870054598333539682948640237964737297317029653740919490436130458901791072697633226320365326415957794953949641915376212986019130187681332480671011568327310184612601525145237039813116565140744854941641617437413159517225470272062139691938413535565103359538687007687447829053675501455328213992311612174730442666323628475162860101999896617114072855715279302463836263614428883038248137427614557099621432209355421143867584075212603357648851011863821571353888825526842448350239217452784326167389993522488494061460176634012893009297088116581806153510698921361316434040900992890934028516369467930682530802530395746848751443089124944588384411066482062689345322915906252302383517791649275190115111673111880877972165431686278351862120627200519548970533606363368485199857188816837316592862203945691160411451119944479791285010757945125494732284445462803876699215768003390895262402951741765699091774362709699001133722215799544803235836962680699422642828759509385331656585124396909098705079159312892051433878198017667486787859489167514951876396117675376056511257154600812082703198332695243091792202025034014575938980267259657313353672121774836800725345254964806951377679944510645116126048804542435907284363069878038741540992879514892090546558177563220879774092687068279041854894718844567338683866775878975402678303947718312865610651387073339011816632550242443638537692857806855650376962909888427465535635493800843900264729934449012793336680169182548031691378346078761552197907345127862811745054907350388488932444490338847552828979028561448436121784163066377508447373642540338810968781564991562092060626745179294472479465854678405020233367831471926722851249259184018065900029774147614117934376220415930862242018665101532009263380312948937561830874073063656390810243146758936916562201894265520700365625388131859503013502630144989298917342063597354910574629632001711722334340443649875341416846725707048600699813710506771881532497250542195213154624968603508407904338118042758305928402601933324285121036704912560702400045167954703348133960225815991855783421047938953044411503829729586675297602815835594728873392480798333500064926134187118506271001047979044609402510607329115272709423075903118943737127350901138495858264101065552134380002010659850526743877087887537576952424184554515477031787128290640596324970148415333156861152609926223646342127011434086387487573482779825419545368236319973286897251835773210581115028968799530760046276685386645338810333868066681573165636712886306509901703793693099593389048614229988786109761884055887686344091024401999310956421405391749652467779104588145392469567513947425808810902620938242281290594796239897897926031926274862762164017185422668883003339293542446956297228358334662612495814942805791676565357992754838215886485885023757891778023178431573801526749758406146130964793468723311257136502965962561005457613101603693095329871431279117802095680098484255018341711767895555897577982305353897788539663661969259999846914575641191934907303582269297940561552183284407969703954592045642663635418965698489448950690239835452150944326784724430774935493051727754195559293416793755126351054179429185417040962896804461372917446488891312858273075886334925243043325322828459048107706550116281312434559740652187315747921144319406609602500115559246027412707375301719131051461764541549324216488871800386860359500956799990590062875083140178496672786362016709697324025527637884830801354402714527636544513898415670944907117578022780815914625987306807986352579710560610793690300590412094174435958242152141778475747840192969284898534395540539564924068078140005243141712530869263374357674912642469781593903870238969080294614061521256466709019361066710655110412579808083201737592113207146743298800492621027631663243182629453497621526906090253749979788685616030921603057699868950688458549623813384791475696434421129914663605602411682404254132804245828103039689413120650428442683561639640754651077902655668327414379702343623674439210721558864503876093833826648582478248439678629372051010039305860865717916986933103746138199766555037417864510329733207864751841311435108825688080737550091549704043219932101970031104125160324693409119688454506507926796704113437701252050642638788143897797781611629746362563009800285388316668883020388458737786484155694184482284237145762558031088440803216034578223786579590193523878460815327427739675576740798781188546810390400049452729105247883946897272273651213563260800625392588749946182156260651893720903611725160679728574853701467734526829097484194060559379937479361683484942082438784023245709507819775619978542976571847993544805270648237306085580229408892027350240843435146586576268127445300059748319108210863973115754594374562665780525338140127560822470472734260251174129140122694963918116541077050390645654768754642044461757920579335922369159350081353674411892636615577335953192733190309821810172934810883765276670301695561544104068490762714562120079170915210158075358698745610559138843008160707753303482272346370380520349331174305528357533536141043939536828566814220781122122593530310871712289649355267640336451551298569190068804702230064660582907250377119644171198534714400522447857154673087260196593632313099989164743250546554739241574759595140401935820152467927752298175121168528452539280448591489453870362014330699891157129200338137214087412905042954226387339067309912816098866157378463816600180530977346293776421434738003219747016839159732735030177882380814335338444365344654522929441492061441411734133911082475088457767576711808580711042630373947679923917980702112998066738637825663607027883525520817145515356964469652035132721879963628172001527888023847414664073991341765202130253821450484977453921962519204906509408758662872437857418883965153765588734251128996688705288722006817909620644952257430760147913943044775753491424482208812826944355070641747619913573282240146040056387622147128346647704376872081275021193606199615979310320156758583815020659266641723696198205931641679049775623087730237219070942051908639317985473172923519308421335324907468216752219782684281791177707613333611093758233475053194347377078815871081654471345805568773672369458566912343377286862561532518504013582720163784240062972401111522706402107629160398716027602285445444744093215189163114771217490736544486853792705296099896879470648393725682417276928834616590225479485703606042386781433500737381320451712575249003018256865552338337058606196346254094098037118280438572828065598484950627985523011441404473891103986365794812223216201788782809999736796623836598376751077721978332304640218808578482460757976119133113612970158503445116268423809187793849234127244321509641118950791936597694757087306838350177670038149416732302478497417840558999834326820513117488193679847099729642514838837035736821295349685261175742923670652746374558388253071767575012754607712042223071474254062454090676150138038322367670953229403923210324355896011768384062782783802026465759099680584002401927435799874433307069010420848319795060325065665606837216177113815672383826849912698178902154150476202690166577963692194060300978350975814360262699383544300922870084293569603767303884522821267553581071246317566595656698558007096579075125082746390233450351169287905929570659269918534774072272580055210126255976685669112648818000020239887500223893318599119519905850745664899711608617585945812554716455901492064260500568092481676233871858077717378929895279532907132009133427632741781914930038331485204274347793329250918560047706313553790225234401450891137877482232596673890408571416621117752919883854510558104674898770736329587493544771488835442653876227522142689854133399210921913735002765979803145612045571079038921244625456244420637382448229313335724333402066733220518483439315535864636618141190864049459159125098447569767161230022626773579987643389253666386924079268418850709087861048477374499454092835202639956792422405412918164703192259053854829214412034587928522015634031715809655923127890192243705972351568547152723610391102443330964824119174405445070706488791787377303532351415495701373285549461892151358140117959437712691901178523660551898761199908669594294865125003808596586913517823154762658718880624653200420846484586591716313499773048990451375648559793969676329102780452610434209238057974004567103336672952656687691686698007504316184597775867954883767885226356579762558053486664613521809285847610141530012923014378348493329057649849432333365992683475740866764200088918272632651420274118120060011857445125506455051920852810531002619762756136983389379518516978481780141829600023859335030143990975891309564988143845103277334016112952492072955996893172437164571060670516163431237802912643157233519193117736308093191601967866673316057678359744739348727066502723547365933858131827423091642070071772242950495280658265938357517661389032050565494425033912084102772868850469415026937694962757217175143050386022610750706569192776073723527786894089336670202565481353260416587503775885482079112481694896681527414823525985919765808966186692444918703456142290504666468032487264909424939618100420622682936143907726231451977795660823751806651938958508278538633326275400584058008319472127036354901908632906005443299896038269921066479854685388207469566066932539176232011740265406784360167890638998493193027920338786227278672348691247354622835469231337630635900396188115694825501874069963648309140816741176449371284376499057234554442760261257551366931916386979841185031021686716546531240686488925130158816591207355597804318224818157445355414623772618935445817025153913562075921280182085593097759015154538575267871409028418075721862297369403981022919432792276996800396255555409520116521888040256996012290342007823373167224385162106822519713555196892781381035758246551748174201793529866739095556305598072002492457179070499187481391351363550098836367053864754461274667447743686009205018721147296287927020087472376927665822331453844658926602544687721071545028751019219168302281046475442578032779775437499688367653671329171628013032209599796361823518589653856429951795110556125840114333394339447516464701815637451755955643222457882396078848240534231256426903534672317218853126456038537915704500468267834211607683486280759997345198060354357466394718252207934229677131227679636707217373891170723683810551572190240139487894140042135351300430120594168203381198783343780988437758516294648314896057430878580343552596967062171421904086672290564056681754379920796786418072054376795094579057443031131481371498381151159057274829014611282456998199067776510321866164788171772412677402499588442047910927152142531409283316613129993182315433696983372916920699377512237892862995242711981576982900075057558198670491730394350660911371746163858326696535741217050005642277845387858734818533217535351703230460332065822268292587094709075556633377764722931447587440792599565982709687244409414426759441606826292667579672946489613735083117678804426852463401461532653113763734324673528925136534699826223028517433702700028700748499645992054871935979286598121897183130100170404813950921781876411344770616822714145586871188057785445781714141526457042838505871260525896165602094419033246567746180452958791071079536311413765389306868277882887256280003809204639674930241746246003970810149545586732595610490341032257154279904260629174639469116189745025193148055202639448917364376354195063767694311802389849238501042446640256061720236492326987993150018220965885513506991371546107061285915792705954139388237055879125360990285075720942630977268203776225590804365537061553035834867357725824194950671351112615274252344067789294144549608723090420189761975402021683306166496224468503159381476653690849402350251277028058525497061575984360301724578535255704693254874725776694624446768122141322026778448458884847904601626459579969418870666302120925348959547995069782722537365355489108319692656843843237850238307595506051621378115973575018912451669709547677469248107065603768236157639139679853570935378370264845986157401755167459450874545970802665057483767868683637108208855124905381014070951183705263016815517025864893926167338774321058328715853980663847231283144059262929999195765685445317168081186636308385373830677017395378474694272231332194300577647581040221111791711206563123004021042460617141322536470782762407128060622907007373905762593799959403988337339233423588545249535827288188492665991459816433781461115116871832043475385280593726245085249731528908841222206146776420909111516461169756203997710365202536708113268430647010020110965592000537343280857145903363500298044517879575049381902690898287570912866098230099136130296508221245942931724069510921828446336137125810172295704015697652199212003182885431676736360758943396372909896658560433641838200644965540726464785200009597282712481349281357154556500384991440482993379728350583120150979138710931874902478161555640325911878118515467325891155834945696870225658928251606785609559933975183594940083308734758789200839147054116547883237003283304483361289170761187138286094367503840237176482867183962620475095334901590903511787141899468504430907062960580812778670260040989033853581303012843897939727151891725140982874380926865909549283067879736269174802663001363166090467216623935397255883965919850692021771964686227256861251906099733075851184751180041637272150549592167343820784986042329121713289367236597944378624875409252625727551069906891233599844909689002652854958237326289928815375235878519451332310431127645420793679170288174696869155032021487766922843497549957181832729052123084990421029534077027856975131795877433605106351635911539563140039608951547443418201538273681580875361669830080831338597280864108372347823009617852834895519363107166189645818216059413442918456942650410021252427049231461660762665158057482218614486265314008125837498573227294741073803601160158316032315007243474869914407542142565361914450174005788355972318068034531836657743387743871023850356758882847437007013809875514670546116610941798512838340877041177840339060519483317789861601617091086259091698469309623690203301881550941724660364881228893167833827289878130235660728459811715107317627202138196167149848665850817773145261208607929489777339659339777271259806114039670039978221143184128317395985541084883761365651376519473001194528556317185657565517155360591028144657808018769717806104927477511695243482718712240095500313555355206585588625918379789160027525892868176795270411622707119870667081551501327738031611875533996764010563106541908109513877303085285069734254840332904109015581708601494276533060482930217778973126260056912224521320288315548990058351398488908622188711992331675067534055626659064336211187689021600801217502724682231511251064017046473408863395699158571055696365651569255112386252028182644215366057285319524365539692623294460190495108621437122831029885118763172988652453850795666348944910441782643990710223957241564479008065113805394217542315186698225221508260319946944381483588726506488613230145877963645815537111085348553884675127386504973858176629922403439079772665832282119177869017799590887009862467285256720849587583592847595502607384990619960005767305919750795219707657790956374403884605934848139409670460052930889502142023418891942772695428168285324336248481626553235054949302701875142722290115514778770824227042624934144304001326140042412710055430190448493527378112515958004187373861005339481450361545929212788179848532291064397108509446315671049851248425893125939627193435528862638365956646287186312470555538586838035447322285201915589577229262171162388272859405067417011442526766779855282328797286602795616529703088502081556830024513374089398945107202292307943940637700150943112903142467624454558189845978573871457408975279721626756362689509225807042390714182490982370199720394322866433981067460109260811886785114718174983308678946987855453162209547322059150480518947497783219143191448519413624468091443109084495403964228954286149563520367517387710245060684907797394205266668037797615997444243747656920087876787496957973892268476443711731474021478424085588575397179526853621835424332776173429397121503665310746925963612174402856257372587741164457647173549159832896001911074653907276934280532996025654805081735753827070388484062181361745298798999359248353367191118534457724305633878395141408899509967763779673454285040818722847843264198281989230087771887032714420576508267054452887716788953046779535414276337953727373039720597584743439612946150276077792515722729081026072888944189941739657139289020113245012017498629644518528056405161500597843707131596440642209579041284197736856468534301568938643880397031060983347509359110759218980948029905598824867923735930665868127914462588985607358444531582846283575940252356442960048892448437122789133790500962986678839507114311487903582920544741649434287667478043295692469167697681670351260603855586956105384120263932161684699805167262389007982528272953539122698291715829240297023715355939981439693901232227973666428634608328229324457203845263255924719840258950980370873699528016428202455290238823654500527505762729306366433669816172094753806226216174381018164847111166423707300958034957691906957571350194587750044330043876594932948649122533764600605487423274415296387618115855452016523662740190076864215494829740740762494286866459524786175937520613876568882245701366053629203256598001846956096328489697132362315022617727426298087278699479204683346737788522187294047450398941592969198679749701206239817933575937557926786109944359144707207660962350962253009771315814369389592546451962875865075343357789829458587814691256502818404845647147839936669971711174374347296995898165197324469100066630722073416691934096119113780217957206384935190522295193165942016954185566242785721392365027380527403145473337518939546830049804040790509105988751180640795776437755371507399074655810541633854094944674606095629330084911799097846936964158285242280782273717050147690547326149701247469434055563175262915681053222546904567655017419986142503478664369976614930924175724446418189029476145848247271670265324426451684349958369757801958903725179807848507815381251739883740495455282823024447181258660652002448329627668125615643594348671487015952336536497485997244031019567034767299361376695342958607339549993724399895758235212223903208641910847767550393395549001779065108406499488332946243456302116024550267160636919653161271865443552424467166416516044294778978764985559147743540632293939651452979400251291387099216690245768023126288103758864990082018063839098583406851763363304491481230079738633081797646386082579264700078025315506777181377448283488524671974228996882924448985530220890892907395203990008247457553525417121968502646947767255202937795552640388291791900411879193556206723910978645977559817606344972476641259638605289124092890987000846549353721645269178724692406594500356952081319421140770181116408860952632900203855164361622903223296959979877561539141849556264202041065925762963751444955458703572020642959581545937573401132130086584297213977456664757966670047871556780373382816306891767800601673151212133427937345762744945709033707101853318364236430859595153055267292754218151625830322208070026593417868853203791279909312375231560215382852389273547822444690765099064850566715012037853165696202183207602087131752338403973158254895193938733194927774079313720334674727706719272438979079496933589716533633229092226566359501499979590463654229223721798656341345769209082784193725710960241924840622708683952021019416842648227726944686111344694592069168114568954861009775077106919691479515539787104011889661167522256106127357937539889703007458759938958749275604017016473031065772608096262648270918705401352828970311018367563517740629345189943151651199507530174004694047086624233428043207148949929250088955291902204229155791828166393376573717962029152184948424728258413545752641459134825330840887782676056820051999657006299959084747096934669690094232556317282897505991108588691508373647676239055872982906713244488169797760530551827320514256656451653409110142905968342381688432470388100132759259552364534350133315158381787360491657962538339613161907841429622926999362674923036524329993856132986477642483049427268436560720108468870722465943973180510794916287190765218911147313563073409373651050685323547975411632536959109535493710276184957508094276107008424744842724719671144189307052839306942369784721864414450801831427164484138411717623004103876182480519932366141772890303073021885513127199692621401002901464935649654590195203265840845238584053002803716585480762872271415577316533731517803809626968509316302553616949639654356114575940209296797470803885894248483377139710970724933720840643494978007460995917539299488360031488430951073236890999284965430940592729581200255668522273132469445481073090562963327721471469281323087412088079130577631090543142309329334531051687859011099247153057884052275414289703225575738893210820987093523416138951705539284460022358591657975903009119768478677365851192736028043833713251098037096272630481559346003385569856545353939232171173033622109993599987948512792499913393569846410210065550720117118147195917550304205200894164639835069393194377721953073618444620212843478888577886362270748497431340846573211541870898048310145336805440633608378206914452279341447482820886949964003588201528211245606474350229278884450380809888431137679264299054787222889412255321126542954022675875273539882150815525439712491489635589508322901443970416508321661925095660696228981541922585236074731408338790950248525414213240299126970716761161601967464195346934646704017093872609493299500086315287558440129443728890395576663265654006875307373109624595180821758937703673462240171336832959645390729303835460278627930997611593392082563604764699438142400397339945823681504887775482974590430858480899213464099630686040274127593674697983503770268984604126995631275936529981277089679864401929139536708488844322443096986498961256878556448425468817304198344023098410998362715184802269364896425224042227588156437382167428896378715942900463061544199581456729054654121260766011218025525928914946986088713032484904795350186000695260434191298759788070378067732469464339254628013419483305472179894123872699498611558635035160708110636269662904460917052207418886594067368886042854670888856626848637155436390144311827762021605571603031858736042163395425799699716074527921042990428744613863423094489007634763336962349107750005049210361331617132585680507842540302239713048523580766755142086840139965718977022736811752206327653872919948161478347781758037016612441900219950428728051825758782622977944291889346976293794007944283474089295711199848493443932643505124700054212451651527182218703403502313050935106490917401842595666489166435827783335716261950080207450024877918915915909098928212318019848661792900535221452282830483490903848329937294962431489846812758847184599016862899242729548968465357417640430994730431370748168970642471855990888506181165209930685495147403934885728299067038439152539738559149937742785152943575936806399413901266278707760551693040282213143584058128637708390031842147424691131640208046153147239299495772773248054520893687304602318329060316048370992130874143549401238136593118609581902995925544308765122590926192061966211044343360602711270754091594591575826600325116048901002678255085350214521108255813965500261389829381617211102418005110726534650243616978641025479666143684742590585911938847988982761952254006071518849282307462333330599202737496648363239613996171326555014738233379400993757092933711432035033435522663515483290579696129264779309921142857910371035737257116811732533374180788334389364063647077852621105852794740495420494315644415745701016065189388524099821555431684461670504065794106093082846568742569563599989726811460786132788139548136771936586765124745133255268480547970473938384629068899690613444738690064021780920019467388669547539482714625814559377140919907679951302997052127072990751349099092174646518382241271428277229421034492656415157699051661363314586242859021570937640218203264998734278855415134046815319019990573121378965007408145079514074246380088873480349007105901168151661909386030509803669240568847493804011815821258699684825669312944786438514768755116998236471506246728848040587174926525807494418405863946453971616651618485291336677740630343910459724522782274752526865130154421004107284768985606190467464806563388782959719013071897202134756228924417630723224578009845000435273872206149663925225106935982053355522667171148490211545350541160022786170999724964799045711560496613457484884011641975145516623158477235180334383708130730556712396513821548677453786402285856130711967201805407739339164717479168821611738359287462398357242492218140748822883684705263717666056366150184722111107977696696148907354855322550168791216615405708719189949963238825537029900959398035694513798612480980628009130094888018376256122067910919186125226702768028085501667638640335032942266065059043676007848160434660532932557986313484585938355329875211918987963369004063357327445887572885768101114344330707593621084308052800451673703187636771160767937803479360303002434260423674747474165061918321421123393156108040114367369181977097592702740242504096240213567700175230165326630988619241003375993231302774490267299665082734517913618481214001913449135264690862629873779681618146947691519904013859585276649036928384829382912232897193019648334379166333003013665506565509737260315046013112743588459025700361867163731469387351067581749648839079403395004914252126912646606134697823908265595864748549008031041614584111192938971587405317342443796955172724177318841906886961238923699188862959288472759909061593790911572792649866524215344055924896432024770221998055090037539035890255554675836652145039482749550855685599487694110894020894000507708149654211988110965039556813294918921026338971740793677127772878030639819837647272141311953221314390997215990288549070082833510760075900933127161311796029437065038122566357781846012135318461755835270064236278932623139363931581730445532357466814250382934717660385994406076982025184249914493384801542482590382896784490175491157699568008246434343925847886284904797912902127316065255904394721039367355430929290315217107980309751093677472733871790785554666829613076438087122676983604334706354275743054201832012629508981300080774571728085233462368623655529514363018366969704389422938716551318112042772526595603055619717377657012485388310860565613775846512844024999458469762401863335514279368764457464217158419337137440495212618341029898500622107995484936848549437588106593109241269383206208046810678465784054784867741820422707757629813345904515151970971507772856941327869364675085947453186316420554756844582632950612791165347872636367875734202677989162732326667071886766254453113644119936097225732114299360112430820278975222499789972311676584188090591954688970385049350508116936719455846602751249798038644121459156989264448091448386497376566730784624356866201380686321958867350436037023371856049695292175541107538561411679108226308054752234048524134815347480840407795326649419530979536877042167602213580910720176451568066429153202272099531043894449501394236029574194772011020721983260560502871916981306508002693220943243720000970802219988468925067337959196018943247220557815745361863661515511295836754397647475879417340763001065562550526708944985979063518632175981299234973188728168032465526665304982203175247378809564866038263622100671703637505854403354401860477725496267870434438750317298483738591968380332327993086986144506266927597263822282543757612747673337100813361316946654480150395431046363453827961687879479090168476458797659997326305628121726628021684126843601281597828291976242220035709751023571769365278752693654511887495422218498982971824536951818456561513705198484357881713118583157051868841573158608892887635094324612792764001991877635435583220987767464811689233763698891789412944680648917829685976913368364535176317593808283489901878354122956302906407925107691474673135017914449948512642140405212186556058788245106946957057653926762941030499417943986990863980317651716300181959629239146495814126027961262109394698928393362166139189789229104381030778909842848108896936370504093608738404466962128953025429092132567969876494658127511882962237278937647238239256380852237212531714776732550801917494699967807979575322438467990206792537311492195358653397241621762539959857554379993290117742557804510056516930024671350161106714898349010043433955374621578018930313225156229372429740820094373323538622883788008551387593931316164776704699726857138811627282250938392138668095490352479347607617671685073258837680819470429239467318007498338794453490737706285822299619825570709673631966115041115905983522868098076844914053240513576737034422996564471776245946255371511332496807995066267619789507760701655643050652888567848015601645632838545471162787391820905783388334880774916035508711900332717883284327564722347667034324810056984393190733360627358340941965747304795188861549370250510471573113121624284513643713191887225135366235454704482762129743125576497061397197972736902188553419862204786501358564839404932129970680092365900823252775030971976134775484115925739316800655364601102849056711621158035269157636704428067602793541777436844468014082220389918344106960548899329620709928829898621196700002375773403798879300161636836541335804497753358599335910383173717478807433305415710168951774909378911418058170641066111694244074697818033419547986105366758249775112199673840395366924053688792604917814320924261876517425958679711003691868984957493808215618283184837855965445427692817559527485631126845931413150399295153009879107309872012283844174882879746605531946477500317360628105141886702761132164815987969277080047529652957338075841476270527928318200888945758777144681485589455029903501692654258394502750086380525854608789089440317533681187563370294913987862081243426766176690675275234286153692305793338545653679813159475437535031344676392827985599873600793353078416945262756085591207199327424692148845669372230673491699070430488207338978344723668101339382294036072434326583930867287984387936164703184688801158365659574874625170455021791458420531160066693302037978893145892582934752066762022208087136797979442365881763560527787591523057553313330106811765047920327149367202025246315177060911259549291805469172992584836758320418211115371493590795473755020873592929152381621829884460768025786071621709629467453391263558643152376087707223595965999298203649953498391227283836339378408135958689574646022552799128351708409710113763222217575831750740349361316634838949934164559060773291526226854960471339264353601909747386308780349186817540362288197114956915952080298523240034980329832658425022211448124324913914323668967372272685440993874767099437911909467486920056546623222306116104313985207411227722202992958739003553826468202096741900363425480183455372015141381694350915855869197771141049221555593143824614041500066047408709200721780049168641689208001992038080891471713245786467431081962608432980380213434440096877905816317363698300354749993571554405678399231861356183027144577560853402709177567217984133723261769048349378263468879476184150272944627825982047198095881011384184877064965288678616648884940374495640611189917807611482973972289764942187425763197024242370396274130476579645667677130863423975427402268296874873910120925161015058905475090822693816428181290165803634333904464686836246384915358963241416952190844584394533996184904453004225742619243208711003071326319577723855827367058997198202587777277705672258666819433445694407182128884589345483623273194312638435222778253739548447789502713232375513153148953991900618408583096150928536492889417295047805425739608299028306124593358371202724489118327249849144056311530735022291764216824545317849094103103356594435605431802260655489761515144152127626734361022926228212899010535317865216557564945944628052923662360504714037559371941931972817679935639148654240262977745133874706698565181652152235041944856363993071706815415847674906852280348033300905552842418715912717117714150733374395346203406153261847573672206674305750056352082223221258570592720739187154085698602450731777591261700719478799256882476086176255679816147557879983639768672406043895396437480754203639738501774952035134698991936315198293503364814434280024889286661960880306950988570339218347927209521024397362465402270241141509020173155979937190929688928386366225585143602107155298199675932798499345358598156579338723222189071594681993840440401181584018766046631281209177553878797513561895912936486231237698768492781802214936050957541237873970368571325220540948369201210285294281522882677030582907572568864792837887527979610862293340658325200926700956623207750226668199953311006813491179610833552340509528499159449477265952853697354079175324749372364765515602971790944833013828273603501811677991157497810097153911335451220154422125022004815897456471949142360586577860821528116646951630075021252496669621121734291727140414240884821740023001385366518417528175236652649717405352963166287493260608563168013110787118313050382587253501242228301782587252685892823237873477330452655952617419650255965068693415664416540223627311446201110650402322554121282638022159342973040215677466841094147439095461478093709904639087285856573397468027190008731569187663345772696128649371913655949845381480498369097713590367906615872984163800952137979288925151191445291848922006405303652499246730860595552702943829375136656802599556993525941634914004689697243430871566276809478108746263475933178512093620173816836900638553422613434193857980560229595749879476796660180786134708863949170440230333730847686527983020487653423539211928451208006548291970493932028007740643614872081026987062895544836151358713130791881733739153945279036325998242604505779371705748116087465760447399387659044750320682929398335441997498419987099166838631816102476332261862325716377501653019254525780186475180685118810540067414345100476218504549040363863803229820368808946358376013539157457268809900377393939003597471484092430997549040492459819721359187885392070811606651347837435650565042994639743629400719592582044088428747966613763923344250619426394991627851861002263180367252798546848837958064063419173473788016434649391227599207133645400211874750521279912361349515641665183342313887015413138247932572524798247580675131148461959781551952025507272760689042005999032380643765325713422997684819990785157064781322215647907380436574661834501637903998177600522753435250466175966258978685609490689502328209670331394776246110981381959378047597812413750667381187808797636873726807175892802050588539304126996740770600286535858806450558778879547858781490372231592828171673980919364015633763622183760363096946512574576455110444593765656341382411432497618755176296248035360396564228413750856812525907526985777359947374358352044321943069937451002031823838604658664739460549715692237709436019616994783152747777800158187562294566148875197802406690233650023383277071370645013438696877719586053704678580593700773671246427997945385689146552398982282272081005929665182618157624070591269231820634561200723216752468577567390960888204003931646777661587145342403230453982392564993455542315218064288810840513458097088294189710360243651143394122210967283008059701025045399334155005824152943628648690242727255923174950318270035491796591759193331129601510320250468702190105857786412881816291058731795421383988814087742010158838840441596294718081515341643738805172855797522994008043275440355566586280624060037967332769037931868692894053943272775245879499864758386941542972686904515779495198916904908920854677536512201460998757134082094642614417018586514631833644983300584695076650059535879194243808665227263404864105022109348608642165782247650490045594871257163799238912777044646497447201016947426374987115570665641390097743419185409505880793043895606283908612296044770699934851444331510929743039991807547155197610529780587864236287129958233508215784019182284301858824109401481132573004168064571216997528698650109815976704344120109517442756742703062363517636171383137833760099565372085759060653697741283023965682969341251742974571785195533278901682008814217224085124492905488713247772199600405766569885651768742449650362811183336067602030818826535399945065862015857128457492071801272513791083283718061824101047810209820238492323446730252249772954741542668435325121739335537669224059046360419998273682109609101050303337187262442081720356131770935679689718284310411613788832149989051194114758431700293015455386371592324992976731676675623172817203945873272388755706733802756610606902002405376105760240418072282502473521581931660632314560955036622243086189931479954316058028140490536318453495066526863902707491030667478247965183494006577733644189599368810344660892380912817823131272041087976077164477097646821494665252129448789533733284703015774330546102303558225631147035900757463819494705026290156153540956168344668777276889092188098309932534336958530440890292980378590477251236677467227584478287643221441890506522836822183216298626015495862832917580019176870120858208762344929117863589541728226928540930756500912143467178512060751345461303669722130450211968663365778533442273312322821303905735455845205319528626507347493222260435706504685492082831676549545980039803826672733935151814057987278615238719583065960652699742115622541979990081521578844715444401606848663395500869048305250063053651452672167600887420077724737345325307528370521455384686437768888387926681868034659570379471951362637876574831573484628057032017219547413463658309291434242743451329394419742546164451802321667028276727117531141901261606897701378592575323156019118062048038363774354911453905374229909514952970031396241542376526522628484624686599537547823234791618669626015909491484766265287231192043451715011762700776935817937402251444137755562452630225582353048888250295694956966841148086862195524835796979893856624466331740815371671228628592347136030190170951023092733845480388865613846091078053048164665360109423575664776356251070982850773424705420506869573216251683328385589440459694814973279875211366357201757115036698883317389438867417700434921726286489160919044575852554841872350528742134922058787345468471825859911119031280499884657912373827790236832178588456066788792179251324630748170487933790975398486385477241731152805509583689377441232848218769790842512381507140278388300415904294949257164781650033086648196933716577043773517897689128431343032440092673019725581912048581189954593985904736133582853041207064032445182922855793267687671590640351949666466674547328474801879187135227317269895548246539434964200347264183900577609724125176534194437668860903170355806523099450437729645809881708404490623819837837456810177938571800295962606959661163220884854914121958311714913696172770044848007207408936880019096806375652629023885195686806867426722584554338113470871513372014783910878212923775792282504712057734853345497485383494612244378935319727419488598748562720732437799318436879692828869449817984296645596312537000338307783540005034272049307618403103017219783699486629609329804720137910785267587045667685170287133634120376105396334417127917057563585735472472206981427012657869401575643999938365504945783670217372334693917643856698630792223234020477388051573541660225389429359401958188938143715335481687889817856149363475866817387840013377077501518087627337905055381369849184634501103447431630332660278355486330003460807918758363519091508306790964578216654869019518618977288984501280030319637059770857353062993214329094410390683019868459480535375853050550886688831081841723423834979342125645080609806986328927474496715168955393992399390165596474236739151128571275261853868128927028858730144079534040884976621738435798696865379400661325821414573083083321613044210619210552407601801483079305119649762906269201472652334136727664791090895095615488622624369157864241983966754812289712264144574583662619525764723869276340557089652087896385969513427299423265223396149619264425557319227379156792448960416767789234237431791408946342688227125694017927334155650209285807513949416772639011319543660211708190072874043371731381699219062874687949493163583185085451173339374841254844694133239746570262413403729303943272042508281950554577116988804972640869821769028586989403342694703026167170308701374415020126122458745303995305211485083179686548577743902059234368081968726317227189131217907044719787823197800128818253829058684430139025603865609906539287624811676233963447775084137709037106171022889336955687154436964164277988035541455602428150928470371994441452948013440528019400575166307180460046481685646279512275124746218070748915085136177830096437661136036559133614164026274650059300168220355195500465448862540794420296322885738228297435063306657514336458517051678119315671968683125586069517114074603802999543686492702797113295540627648133481791052185465215446261995616544269695883333160918671611653209296483291778124011482893875178548381945916303148464382156377213613989722928256582209614850988361231166035366706959683298966649460814733861200597242094702001685587108978395394601973323348290648195074137997969643905927837366731923898205475750468801048077095084924765047359003792357576562547735530358589610835485608212992520780715818372192562820548724958902931125409409167204932515470965491952354938428630389102293727608131879157169675226017003704958308442455749486969764540572076090027496982005267088747679192030186833752857493315046549136683011866727706205061022707808584343249483921551698057002323092373318856194165095324862268516416415992536915478273388893889347479854122779712792833043644347828536377393658141949838893606966297002517115471265232167899603489654612615862087807496410936202955213297531538841638708143880114148223145156632626760200074394388331894120093220268791986466070598629235830678485333480348189144842100299207919254439873670405435881198534735914384711326002040018629266712791826637710811773476219647597213588159814570409710746942822985947670445752364474161984090546958652755767591366837672034908052351243775762758335058459303329010946447748706868250878178459940155683523016596856158293922502248539008737940716508841394492838385600263745664735729831255438221332315445175306636557218614945354287363760454996860443434643805611624100587234413777967188139254859521191480667604829035850287994260402440472524771936040473200145245629692237374408458534208874838635965427130178962124821802200797890152476744628503346309031955264261895331519265813761355173190581051001511263559489203657932027875511425147912575726732307415598393633096219583578949291920290316475907403084210652143485469820088988086913092220066033922590790625253495854335891837163407741961577034264312254875521467638937028483785131013585484698027197114766677912748838022625354098159193757706273488115159110779929445457028430761762486645020321129130455659354854919599296593430112291579272648188611048282533416831251778990252345049108787046677056654367116971316858887260171052816582157355799337018292270360879823900636916224095053773177247847939004580126942132951549569803401310545385254454273170566452648357382596295751312591995395212850945946669391757694911004322908735668235619082751817597756011590774386428101065877706667814620240371077744420781604804316059007517111941688199398348791809373759615603776098803398957463505553243997569742550406110197062672894758871077053173191342050044044307870322291325119790685059499328589742730585428445852767300486828532225261665023086899013415241910303097490541238851906844933928646360382069055579949603659959502682529760446503197179933284986309537183989881622127958947995565014897448441965549077898965264807629566766077475748148163654815268646262331351915946978262165427132848701674197035063134943037504094039453813431189408454118205428544847304536168908252172283410324686481695633447321099297984305729050288449992838731721902489030522712780004643879556688506107391206053412658007742076987364743661622244373844235463077789231642645013800052493808899627587771369888611457786928675793214624307187360247657455436554754951703774261955047715226539014503009125453213973715706202470156236408179862079069095416452874229697374093907967115020138480033590448823368711153632141003027283579755453146795564785651420987759910929146088506944831435426358673389636632907760446801952363761717870541513709399639071651923069621854774567154675753038617137087364056428243835159368287623709499854335322224399254062248178712187364970514423194676348491538895195220831058064600601764577824505891418455728355869919894823119450721824692536915989445617380370296369482419783304494600941745368605168884340718918254918278824985532073398125597650469972304985720448988264947114209055101898348950919381025720239475833873103520068801872285807375821617715116372077459582464762532397021876894031387619285236171667934983590841881546104484046613166945444290422764609681604886027080388579760356591454771801656078142637253282984786615365058063880682636118973647385546915433653537826325695294999058452825532207394269260918427056420258824454451444925632114313188338602546834432562995239309454716372089830336294969010399283035247400813287392034207666662039875625154577058658204702172131611082105226775537218162524681902172967526173036775611288276057095098074656662849864247202702749606695289763662001647442329625672598959413437573285920619245958749489357814336936757784843174346408206300727562586863102203452279377652094231190789863644600268395073735038495881832180936413225996483733365472273285020865744936884086969426482901079845441419787071958212216222746661039867233967399015244901634194061149903171553477016481386111173966755646493186559024280314246227285534249032170252979065928568847422093399251013410920249491035400240481163004870497267614580976579482450496863186014690165139100085157008743874267222600490057569721673500762722538558904365811568305112037240213939027189157937271330627695558787036785708016711652360381792156258823904729737152885648450555935969980331950841792426638002146009221788817368551695469850454014204195791042908589143791979682202376625901453429639440547855168584368511214051152451142184908957477804083626625660417035121295344039083983529437284288246216138959905092480854123197610190181375099287937613573729734185008811316901815357707892610460573992605845571910981651939660634202643604642167101139938312502629275365542132555353552377806972764812029901205279174980754903257309296020567802419473149357976545055029956970834502850932371317399117478352815803521302365789230137774504085688678476003470578278157346612033719702969364313978842054529038333380307665120057597104642747627776212160050405776813407328394753354899419073001092430650976109472963508498733535952295445885773089601386388237867383233757203310586233481306955439266214960192333939419351973821122732732436671448007530876954353305052112983013771804798808129619284346590251249774502946136194248054471644593917198328662654719164481433610373239939045544485264282959192429642012122500539963775913244818565113432982840722157037764383482196343555857711903019809842718084430029849022739750624022224622087333717102204501446541225752790879634772626438664586700379644546153173653736710849841630832440052945752891460058535829793021217598729294360571158786335337574041998855621622354441807641729859746727747493275560292365553907907473051373428474345939269284238949911990352068776783238549289415004072045134825398717072431590187606345386341730089003202687272490451972337280452232514426478601374849303169700324245730670771333652351830336457111952110426421897791079099413783982038845544401203153950149772876240006449971209138320029985846792314721661309007072466754923673114014451733723270706855854921616929870100028029445930522021565044102721672386641306276943090009632293853819913177885842559250901665941367113695489001109213237805380284767358145775401427106064599828399594537327048422883477678091458642912805589713173807628732949137229748253128496584345588064548192363247592395059338896377432746700508912086079270986443124158399412124738464233146944204189246408702061279754483485363426313605698780215927184760992098103323826826856340818005849171546428701328598360781789215531086679602026646400481021362226802347696642641252798270995582971101435309985919641756563867258459439230980954963604876703843355369756323771925037465846953728182442028606198878050988297475557825027289111073626174107722098081093876695128202588009013702632776161291300602455952147079685399272237570289300862999505837817931943089276215587234785023179080966292960785457564904182008999231899096289557902887871231616259816434975397154812265675266066934399378805705076114893637668514174813499918753372114353194761907853730950542316654338612057045352189683446969087534620763483598198717152356318749229648126785466596285715869714857815479688182461708214438311342152398915718772284801212848695702019580510951927183081595597524093750538152420743099637518708393621351191035186664224407826677064245748750241868646111640306307053924496470814261795969558168368389926731382115849009399827125280325007729855278196438682298925119718114031449714320932532994886838286804140543252924475967301727969710384507259481484106034799453172154614774888145989183791789563679900635531311282239326942160217143965156184396594845016340201033204369263728493065987933248516520656922225162367755936267511523383127098870620676032892772538407588881876546628755772123285245198359025600699223974079535666121369940880925226785111000305503632873138783929387213062708256127470084086501905135744001958820288836658473314504276461879013246489325873163675120922075325483469484230834709243959255877856582379215516515529964014347111618221519957303643923482605024462766186979647422568972079573466199980176064693658096089017233622796247459428397417898613435010878748036531265637655946003817347805963267530203505445327192613163511868469748460632839143262818815716506879087593408427670688896718038419612285608377973965913660772901136412691708590066165842409136857250066983071610222667643106673075751974686342387054608347458362886890273842069905473715584449939823676805894688682572618614885849087150509578982168498323915539200888545702447975366933979550765626524053435852387629514096211995074425600981384433907791705215600946999576030866357871506905264005740568108981197677753821577012611476181867721272962133828514228484557769564499195655654768363679977491601716185810504533774106327213724045895978920263904310255393955909697577421041662685319252831152069188723603657870952880521732651890875704156606480683315528280052237272389738724666278430494009200433347238499349158487360225691113722222124467432456219803941904624894449918423670142508245058522932953632476035313328875403351000747549465999064667092569686515204318892250667677655864749417955913060826128336614357491267360301856703187763830963325039449387238664366960355473743915393035135447884500153858656948648948969769605047932135972661122812691308357671267476337101454799374258813170909089424378597441020935704200709829898785744198987002433656086814374598048739663378308803937570206268171090963336120986227789485745004714935945555113471810978095494219623072090154964284769154054620738225192451388947733696369751874194406324043975042394655033877960154209073310452482556827325667194073524823390852541533113274069246821938894636034766569330526565641534786262914320150853544668696131065903038556609891063603996151261514900195453057413161693392584866544350698039535289459176372746532874786908201468341837719445859920692183488116801917187217327532156974793704960196353623316409746283321111868757462940125312348251645773206448406521278419903569180849514464517565329062160317497602076637747329307357792577244655960813572332885152933690280413841787339029501958947153152431360157495121795068153515607472224142539601262383789888553191175062017722638258039482632257117388927108794176380816842220661504823760347918356864533086397947147079916013303953377134689600977862171256476310368817179114614797296991660819295398896697465095234636117536097064696818776028603750840529257910666457335237033070670112264177639509309408782848947750206716256770669917855251937405777982712304001357067954026871092389887862746861915988941333425064568910209873384936213726114929182028521672376732016732111452964349010388709212635128406476669213158870250931751215912558613045961955361582480589055952545082499308595161519039126086515740967255425939316664982975959735723152352412585360127882485796757108068450658990112170366255498883831895142700736694937951494470637033575471373886606242682555453186211077507034617803050823278306002519506503078176726542634650386678205937941463457059699084780091468336004072301282573949695861441899226126249364894227475725066143177716972894639422970557609149748851433682344290826033696872734948360464296976425205759872143112828518888813158484755736556966119947774174352318015526371305795162781149061716165261400023216649435355869004001399262949891384318041221426155556881029479645365016296398866133578241687339205578430988632024433918682200405213519223295379965929779207538589020255775851922782767043517475502009768920961215310925881076723646045164708314076304987162652651367012736002269919293958635824175385220520860621654045179680553841616600520353749730745043506548446840367850146496010523419347875876510365593347956750318939958237374801482794826433434554044101572435971845855874509906904747974350133629761873897949475725386439459081049471088579813817581210883275632312039360098043169108832677190794011907228329311027896727475214999820038468561340615761176463443957732098338843697808415791589289108701537935040068061587109798495630506122530265460856064272324217198984735446962607351683961529777474453756111947683490607336735746862961503297322162292685694776784838819025104181457598533632930029117114487942179210885329012753640331132950132193257850865908857745122986591730315002307122324260991977860291135265994790715969516706398544933600403353342556778572835816698707712383232799720838881471355144184427348206501404908868734498788028081887641981395368458533662564720818552633346884087730083425955674582996235627506481615743228541717267502939814326847189209723251170468754931641963687853005449682752265216019946872220575852417864351446802992897616089961075278611814179702246887553513839284324362733741206586326004548568410764572696268067060070569981409376225823693040117546606154762221826802564095710554458546963904191594463029266456990003149247933736003889804581700481878962341288229680365647470053461663501903923098948917217061533835388015466883945230647808306434227240992453095820704715216674162012493931036275519256406307672642851511508336900381282535146543704014093807635309254520274767663123318732655065546244253893191403078413280892494166213720846094899424814209956245068194701260114938923651511829367482772691669476759888719752307385605816594219634550031547538738768446791588855687296703194792845235453911746359334335011365691855358633839665871972428593870189351351703682863664117992423656880548242875774228539907546525211209121849762013586898263428654899035010492319783699538668835519641072501690170004139520729074643595295202710228286220887439397681159785107545839415953233293615557093735930874151591396986621240235969956168278717000716983034953327441303296152887673125919656851836855632810471581857225508404119117151588807527641890261340759587653233338388755787446929640062507910449573450957308123570248983659560746625623274326260839170983767365933554315809028348266284631463196592165320432903558790256590869203090138646990040059252954679495014848054596400820032714160253186325777842394149655628095383960312430910364080689754209094689815716528432052341198091425502485355657378243929118336164799663935018034692867149476865442280645999241375274957461525102684491459328408625632411117241589216391851731456369506594325685316594474239688426384216182036178332765326587608464070134533469237603600559959301431426465166365884773635150479807260171450986131837378583414225417094991004494566603843778460132856694338845811340259013179585454186920315721070950127345119420251943943256445011525656216110518995451612296024218160983823093376346879706650730568470924596839162413393789475578601080156689929142176328340931162293599185651464662529956314788710836989269081168266898631887222791947938914248886808581386657192063203081486526978558590650675680928021938512823649894577239823887480459914257510156416751170553595215662751486465717061854769447551221340679949130328157532729514782543114653063133252000306560722384032317562352632599395548862503324671296265592820330001848644124757682316234898522663133668852354046006115434274631651688156624909284014937823300305946295908427074654975733701819132273842477306003979398921234705304864900473408475726587210379107202232089017240831169385861742618179761358519779686583102083672183793343253998687363238455971861523842968488469348821678479527919280097846441839914833027965932894216130158989933639551855914660393006453301273313408744885349495091346914216148062449261254757773785136157429802334402334107162319930219408209945335754783562297382398842424621885931119501759757847555529402670550409450184104837255131807563326314472302873355167892502995001805701654645799241649901824753307614289293114166648930041823272344618395514555749888950882996342171583914819509736272374054563114543090991351497749319998694092905873068678299972605072506707381624704685453195159144042165844794040039472585368256619745469349869072810922557315292142116554322952342150273321816432395613568318753236592600712686801344412851985979711361812540624107753210832959594648421600335197230936527018827700707447790693773335682371863025111210259737843765378936330102287301048063044349144147531829754802193719027665876198133997026672977508949197235642068892067858466386305898370498334996883975808475964965735564054239881710056001330073283781965090231759093485068447227419659193897245040833588388480216254304448898274375379513564546990579505379434392003274011051563821707487943755937026501523277908319710193489463951938842320575186282518651532041721879519461349828430909997300699088165154609408961555602172818852596810123998923447409967005119928164004671836341393611264223311468704678267798587311186118039785567444499297273653384447078069305798688682000903241918748975401305866036360013886627726658549879223844817179546357506163029882445051947370959275875368695424373423657288812659326127534520840334958281682985449842072074810780120780474362573192357665190905129061317533101016655420141081947793173397592954538321381280659031011729848371638463392395917084670570070595486277305407882377518173216549332360512704393132912848884985508401355447162410131099370465041741484367901673030854975265776496258034157654079654937860521253201885886638196882830040250751802081081041139001326735007889710197954971944045322564301062293987977693541704358133150053094924833371789389018371602477544272807410302171043772558215313954621231511311562961595754972556254526854942147823016184930227357322077101158684814544848841414102884482029966165607525954210813068508844014251321176682835425334016712142324139466543470888138127407118871973434169798130447136768154900644382063762065138846340609177336509159840281598190131928025761112936960699122402855891647464505401645031754865581848935952785639247334987867808559418370971643345121317211722135128667875174725951704313281280768626824602494403600209556297073824192605892817826492311023768170708104709202655524625263302381165901828166882843394360540905722577651168489076755041522472686011767447523292927851936465788592379748162412492688477680834683159786506702027087828088449751459503298302504670721849966419773123413680096140161444568037311743173388970471484355064763241256875308473668658241516774416915301930157467702950669957561769530516344948615599809128100635282343169273011978264110008966994809507752227884726353469734288082654900013260892807110177154866459822466872116491406391313533496148295586235178434250110376771107970309003135305858846599761765115282572375091419723986210189049133684643328647066565491965264327261716040629947861352043154625456910095661020362420160415117831043849045853225721607456551424570524947477830965169792016489821938360137722891622933523466149239866199626002101299672777909531669564530031756428017642596857028678661587744837820213176234741910245043724651256118390355585637186471442114840318114775434305930742598762673510860095265435605504528682398720503681217260702411375061965990991341019591204688935937467754744763795679993128993183494139801379638134629235587311994240660339694133183188795618768827982897691905249749884987807478477727620659348441796480132748461552700650633317611156185532388107997617355392340485706946579815201436812981339043166316965461432424088454690574420924715013946388086159690430369921955675287653532960860151636898013294285642389179157569126663725305564666620231960013864553413742433906145342425474239628663233762924564372574562940222516098809803825328462625243394621062323350984341576416709198588243844475521771879994849415240467016607526990357119631991293876993225273441176019394175563448899824717316710060714558965017396706178511665635795453578269280458202849632783112170224651444050287938537922537441218788593011651347041862219385452287891501358852685685839563323622364496394847530131584143672695956735810077872754522929666438351111747245633550734332284013896170482294508636734886035492970912711069072909026755862285188374896243509357168243087048999204945886961518669496637057895682364519856366730115016888015044178600430683584537964595635810316500715888365414269075145560493177173570859191684628172016794100514480468020910575403082076635552817837825914173776930871760576235152242595740299822011865523595879168255444848289780108469583560167644538180531951881682181580604435712788158733421784050264479571396361408787546454920976248794155395171247870738222637942985574004205127140118587191799323794592812856695564179960730085167400536014709841771552138526166282076862054879446447408247928050776466642697245514202948696600399655713390363788893069234747107457220642908477467337750337169960223373954588759317354716748806745229552227364421322752228286509218873531867434775566457797861291821843313005974222572064147657772991411064658823146766462540834027593071695329959670903335380747736351861049072401330941168367831760626315311782845592649141816675860692606791696884864171644724451875283167764976513913278090685436007628845062814747025087507207262480703636831319150683154842518320073011429421692839807035291734509310267288531771299473028032248481626236939172788064225006482004777215646622356981730821005708181368322162910884221402292957618404462274621387610266954302213630412761904615578215977823945463815971533011924729998243434257884305700508285850816652714253913796391877158071021849324067764733887478089967696788395581604033959557032663642433190761489438479143612506308104877090193799036929252383155257822858217828991667384685207168616612583636213487092438940946115268201341910482340525369809004794947264364745292360730383635260326998148582595658115850740082513940774990168574359838203048141319089065271986340745775448768069428366220350057581497387762082382377224769293023990863774921722211231373728193262332322858891389149986867725803463008797298462340373277413506199284691610383310243912050102394263752186047625780711291426758670421188737580545370661710648628873808255321834494898495194448820243957626173573384255775030913913813479542687291475409568344872450191901737926695958152743379936039186099223542444020479027491642206156609437581506162841381426142113000468094952034914384177366674094134953658170378071672102256984763610152328590150903797984528358856114857022270461960025675306666548729325864070465005759307264103623279919724124833664883053278276927981856561404642246185957914321638428752324174125425676775133195793984556057455395789991087858726883509664557784521359483534390848763908325746828176191653727142439685619806334190151163726208160740627228002424725164326820486424467290544353831463861957712973259758572135936699266114676463307948443819489364773254477583545671347709214118695399393958535995559111082430293814030218688364735364794231128460392314809770576019201532499839474061621580316427910355517639584824008855874181829991338916431731404519331001163942398977002748114757706766654328724764448737071073048454949110825118019146298439420772629383628478112757557472854173281772457522225209880717022197022873896604722544643020918147085269087979248792484364963167520333920126150409057106870434946628234406835946604958527041801267751565061928038904639630769372652593374555698250807193467939062311540933257163354209957563995078761735389975481942291793108198717078999625830987604181169084743362480973846714751842435891535417583020984453591184480497667645529756472984931336978795234980319771541361108334704152397230828245223153741285432556109806406303516597267851666323782645587445016264685858570428929017184699372892408226062617144908025977067563178836172309337995488906736636765162482635755773628467361116155973436105973389250438471363394303089458411245173371763024002710125489166721074974136815679520644439957321428873442581482937237760341299104982295333586705735649657115578471267932672368139849000912895443313987307214682935335919190314972470681413336712950345362314032140609194446306698940073738658979004418721872964935191288856832942774075130516330572728394674296979549009764760461072682464724235784451656072807409473235372930707007764102744507937559265928344632604696330298242237963811717403125743796520667162552482163974621888637264894278570323876110830395466474341550388051185395201496757523742224599591823755886908219840134331410035685588856973088009516030098362475355505225548458709376868988138159644398517432242138817219206363171934981233156107440828492609761134558108268949331467922331657921474721566841420194521983479725504296834890484554158849402629236125281687142428033703458588478846594092258511555917849321227544839574677100959845622886782960647383198222580587241776022441613801788370846424742470787118912983345874002460567942736197305703022261656828165388324907734031589227003803120789509579097596990109042269343013640059171877547196975061979229207880093517552513806585867035673137135918126301333829457897773812197979488441172127522931492491021990274114175907111428258147727717681108286405463673031030043278304722968223401148286327796694198057370916126717122811149389554293687483665470134386778823216796349399603360994416703581365410759799023830733737914776225809729071841914136184403066326826470841067855482015086295352319449239986473225277588728844226989706525455102514338585153060800362146425931344715352239621105540110145877156938608507266972423717010470860100899017977117318304362986354835098185224384542835411091159217154129772282128673454779213025557375230506223745180586455562289250296536129223315394419185727197324404849379783380049354689361041708805713373061627319222248150730922426884976215092777392114276343976028886161466598313520489781361228410608583282980599075834793407489119773112593970489805238539704992185787924974147179372572209660639051399831349545523723370037404701875893330166233275188146764886946886586831304082228312628882638044978308461214069819784243005369524967977245750252780556277934960239561373658556952913384958509907918404228601528324374196222297357986292235283628044128172283861240803173606479256476180239117450013557710388262179794532543257937075109507580690759359876517913882165064741143750751754615239734241473840001098878305491845049272081738518647630630454415259394649420732571125151633463678610359310839904402637554747194490914618890469634136562059862474196056154663595919348088721290254341273488731421634845168026644896090403833662950273805497759015579861666778698967463593473941654858241268393325773579072174055846648402878051993701530972237905381181173508989789516188347647989529041110869805272961629089556873149247469547052752361263048324760738728755194592122007203834543835826213467321847731892390395248583372393715480707902620132550766340756381803251227178506131881718694359346834004879402715997403407493194173888938394858685593675478225652465185467744242689039610845628741562007466792588569765882940559352481154252874374848628930253041209377884206294245308565825624448580722325111017910521778319836587867205819810992552583235074103956807867299400377829667520446027460650082924669715349584341944792684043444356952030133037762965609573147380769973936890489768941061367078962612788768341877870930307830887786845830201196087742399702283957100541907709999002725347125254118483375947856178764355686451709907484629722081490782387245291978144838995881696487210627938118533673568951932760608837325496027975189858457803851056026727272553822329421212632209872106544649531725162764755346223414374539383084015379384125395894244654497061873518024545297780616753583440963021758850255317101379606838269615305970453186973189833146832428290487371409115007950439956649934956137767156045456586449297679391040615346057519995610638830787703033100691199383614267602061005521584631922320947720590647808334744121571528276405532371762833558724186656661210987433682581864564636082152044197842292329913516876727592864310890493929750161033967208058940222718592818834634006061514043888689729233398369674310555507486592610548561151925813929025671095039968197005913876205191676871261971610462951935227551493494566666059077069591685818937915003216375733716199035532882474186686162080649391953137272456258438584644738836305287647908857297459806566078618124352542846990677525991552564935966570610072274897642808389232721021604264511071096582575899021135582430173005215759997294319172836071797110715680372771538924291511588902614261008789140735193442318477871958486821772225885912033113956125097192323493981052569414603016734346664248146126351322523124744875234029971311825568111729861332253684274827518553095537508087964328462714823180633233022444113779413717643762943449118843847761782142179028274337973593308280321788837428884071420136189866462104734365077238398938423204742885419015616638334539638793512151083926453885663045299303168787078257829174994856563193446328214771892092743369782726487077441278646488853232353486319509780739077349127615580177193184268249402830888353951554296357052832884574130361072110982779146105765916060387209814838053117997786069622697246711579247916440715612660890408202555078653033107709234168544718353653914235431801890960322661208939647002210558405861175842845340736002504010359111599221051253276533244809550391766742445425076908005377029888099044983160247478475512636365584317532009086061138382504653226308795720903035636702972107380752724382227485477735056534240714186748783641339478715729985619264589157071877269072205927028837389463102051711131989517536661810551459280259667233891560083378230837148051795942931363229686356723576673202714658976084483431516836391084389827114695404386359579634293841655674055818072172106499806041806572488442829631203245808013894094850885086255579570294594199120702727114357413926817694788094882932871024364062342659060014368538617482422553899829640191781412202403648450136873992772405818256745272955555786725500050238324508939104496261536471694318278074319140134394254298281666016064534944579515105688066351230031629804751869693249308866498773344384787929827875005436791488172072315065234571640997786278870996270005394091942065250585751165139395079262744400089193839469619888476062314281587890281157335520067045180992186660664380483941516622137236317980316605813612898011782610865376117829328980249860194608578030463462486531558383200567135236227568031887813348937245565198675471116682944053263111141696013231643327540683440650412747581152320393616684910031609403069333709396699093950061929466663717713844730833333489183869501201235290099275684688937413377853414058172635352069140000795966967979993093726470034081040875997515642268114461619896233427907575337440979932500536569379472765267441999870983841261475003623084849807932744899080314161793735191558967416025745784987983674351515689771085645387968793261472868465962415406178164165554061075294003026118370076463039987210777030339850966325772113473401856686994026107333819726067405114894334406104631392965326863870076785622578001787716776670631574592190555240887619934071187665559143399827549880907132447780100504524902794499491237562682412914558912107467738860503728864874182113640090090167206735059629320410734880937023891891959629274664652561170535633145106178155301143683409628606743214247876067648412545195151934485214639532899712883360474921884887647763582832855925596963473282408876542236079553904778148954961438600055792746640674729389520881771611673277740995047813469655318304849055646280562577388169784176127188867538824275883277995049234001004398071628619717373240545224078891020079097177368006260305976243872439706212535372290582310506357131922746642783823330828661959343962012796093818921024501903051856761325555033660739280761065728199479640296639953851965490983365561224702341971835568434988930268651832818587936630887822029448421740511906578115763101091259671831515638824769936208681598504684022528939130182272301076968934448791100786101819556417836596331755032291540665844312046813210990217934758533089667040526926009152835190293293241955938385348267257811540179992381732669448931733837195899729889445284920910753964634033332222444128738821791376666534835924282977006503670786352179547350318963713459101781320435279398645765015156862361572019517986701090121081457436581292766457564857088238146278300008226909258280529061278338305579681007587152953183028199879050759644762965656241199599023968808977204123950816488452725993547840810659846489566980391604796146100494570183409802143716553344942561699571009313558875225765798662784039729542553012063038688481741929184972820892728953099130867913291606907431598013820525450676730914503973946240739327365852795003519280786541769312053906533194838127100634141587259194814534076279858850680356932893797803907528189224201648030299024016362965407866289384796252175323155707919328993414505835601676607279085423209670180984088193213188613771847505297484856002260852398334361736115839278989380926186260085476274824865507142032329072150221754824496528776514714857011718517520826404363441930816903826076081031083993602758949455198555366761523561827507461920726519575827590836875734099223000444522186839136509458846660280132582961533821265291873572162030659313765972295623403305425605163554949912156871408221727037870695952267931864551901794177116511529300165220689442125033666249768147462980243733468364275133147390051603230482122612098820062722759232887257318407594337009325804656323109696140064468099941107664244976510210732723872735876842642630434286930113403612609895722367652345018835409171507822731113953169542991160817305114891768421733765619937234223865457456006444366662940312511558835999360536646595575899643296959307848524983331261356145230372543474661919456807256486075224696392903420630017150943065725699530592476354308914315894957510832049401502896410959238980609797992290238917798986746893258295705700911210676419301733598405264415580102728104369548104877358386603239920796160434201907776597097047625750694878498374433651755431278590211931101306832005706454573545959387001404987755691195286609530643539663870688357362317513492702564367528628582814343306999498797819330944137569238576612881151625985434921448566614196502783188100954522295721894796073735535629107565260965470588336450142422749460748251152853001953720237289336125556139810275098104029733450315890429494312576721422401109346849966570226765919711736978563459771766407524814115582620774834501475825685640780331574261114425298727990163490163155695661716151053688489588329088481741101040589743430256323926459957828179264967769035791391064994401656752619597367606567677094752958139277697049784962836266876270950810067696885874151813956807248583567280316136743183789039366433857800990328024451610959859950980756719358077830165188146921662439701931292485912711446204970277938008086284895148643494178916322038324166228807674361231611505861136525308708168843414619272171885219294897402506972148004381370679976254661712113154881753837953483111098124087005783566375918467285771999654896340788209409650055670296368465994879265221652353088974527748707308149421139483719067297233648647380133962488479086206934793365486592724589972064425097021124251836325593650767201913056901626325148992301729131722352446978699206492808401974614235490992350822181402369161078123018331034480991581814387797155430973580907463258494511458742813465976908042739203871345013433145992252633746541332261438113968584124010347935078624842363281173073544755438376655091801171891840640148436386349773382148912488777986086527273298511693020177143699560115219688044449595961111505682798770317126023147080738258117869140323427921004040707217497837230746782694896227358471626043642018698190603760343716772081954204929959063167824142434872995571559010528091487250047787744175433064532224615154414702150630002497004009632423266304954270772651446255719314266156540845776116208137464159969306594794263290893236579617441352342346293073867244806012957374864294762248728480360121414865998391796592182323252505298646494063756367462417477908106571881183985025845328097354251203665478266661639586393542778666998883162084155290204930161733152131595481402580946330008244797783492327869999426580904540462336794496169928345435612722703537896109698715498283054699673357783894198272078086503022735519340194784819808108995792106472765012722154995892336373605649696021343306274897059830789363916425755700990413712000146546798212691027101743920367426054375608134928748379640101164098878007561252324232227192830789274365539257089146873589100482832722915570710607557081605939212399607728662456466401843813677215962244513512461038696952745722579288667943768212968821920252540962772054182385603003824065772447325514813623109317519512075921344003397335780728532976906885464743975762708326693195942518121123223498459138611876458055751350876396153985111679724687331822339922417990020227275070222697424464447629276804047809414653073478195657090073386056382741827023617760216648462345971415015185915247571875819929222962825641174206766445687338737344259072853109620282562198187212769735951803395864948836845508355522568130235737610103962074569224804837188813441796297528393022833169487880835089710037601533064205396520310439904374794136558594659478382956545220313651780316122000668956028267050647137848343110062377045000567043378970953331326164776614843190601977753299193496320643805256191399099017516793635010182417084497325296648947266839179217044042786418701385552100984083732627752328174107656341137515914730615250610582483909129094122881836310895333321839842103182987218054395631644092569101896871456631473154279969327342303521783240301668891877021243402882426694924002886486605679330581675119127222764044005203967254807889346967086133264456449454092949897473738832078418881603123422726198589537488172370145036855217121578015127146697071400461762944700868592243730157587756417194666983650213675421164039823914463101146380747078488503213391884700485768407422524786085768854605076362669961304636720545076044472457169098953473914406027590864285652710079902828991600472040227174728584780906896080697042979300075659024943643973046896872454488815905025544879769250171584217231349932049862352546777631549722474533596525476134632593779487674640711227857347157060401409410631558268811335480680638792413609195778446499013689047904438844322576515775984802753128182851384723514314397109784242513172772673283895118007045195328762726312831136919189165566611825314859244611456350469098508144312278157370258734105439031647463802163595243177245978287603074160905500247116182942198770613224427256507486193541885996920141103779168375196091573713209139575350810036376755936997028996621387060227665232642749044396518078163563719742905288117090536192879483706089306422288964061026732441175807629276009117218986804271504580655303403992767340196692579178056705046048024023959652850262638768055073949734744337842717709600564244037082056273791571404738245366602544535807939919350236715829374031660894319751390584296363733347119886376203184492459293608208290722449441590059934484975006275996793263786149517502757074022898474431078466750576868565323807484232682129281559998576373165908493861647479972336404903862337199607759499589701712497748870848855343019128700510272394623538229394728714079904054595031969521671975236215710179986288008573269517251520058904223629276582458522961088508330483261643314475269764964564408242873002381583645496813050678791800410037665723856263556186918692135914073631350144509302067698690836571210407233684941934013770934410970774389059352303548789466115222504024452258163138774382295512405490242762138972352241296706572791885125378163608851557853529411535801200873560979106481988760698309006359240779137627333076729804994451686450872147656009671870195233433115224066566234929433076923595659303545764029203056393297588404513255230126022895843042099388165074907191915216663612094974346756505495608565226081776570597632213243097975271718884273698592485699662085722284522288464799820520482825300589259224317282740328688042189318553250739292074396514825574163441647453720810293252950452964174891695909050895374730058869962113689184735523711045047371433090341304372454120632739072523709413317146003690184339625188693737541691562085647893105824630649541894131419451756118119597910842406194232287770049148049565425588293712066381001884454232976952234834174242200396416109922655658140104391498996844742648855148243618039042864413889035965837444108913662149798079162018293376805594166551275620980946367781070563482507060678580956301003355188235511285344933638996994347270569695699058242704651447686560636841116938188424381055808580088407087226756980272433579451969430910998641540630167333306186037312136603754770680026237814969219208172276873543034199179643281917537139141134959248605996904458621150249520254229929803393362062906383396153408153622431850584597992436541206578201488710172033156955742031331051488416101746998666075368575574955365688944481168687503403960310035273515776555642307581009979127370668153163644376788898151218091244482792005598317558733250818889190434237978659350796772541954221235180416222717951610868166665370960566245737796272503529046577934625007859272860073983903883561560886766541456418816461922029057347539656893022663390769173796440879754817771499110344200252162361204745859954281655443066276851616167537911090874662243745251632081329735063291283263920032374312568956086311366197995027385709175207029725668158553742891543629499522718590068878591260442137134498102304879037177667483698976191912908973100288668791314215239578595847624409375264858541818566125272918589962832060376704884543369793965863819604466772255976157763724877602412802818311425642366900620896289101974010644975557009126435654313189988743230189700578935184907717219894773577606841690667562823373847926179482494815311838257187056278754967641968646571974912418369048618057617578376107119596543744275166822987391558892711527789038904372165884095636755855807729996171832030695466123320885483289221107033437023373674201698753247781284325847605688808109145412689797420834663863228588008119608958908173583359188349019032230393395721016424608912538383849207883530551795270913168283554946556461104174633202665624765466810359674748974338745534323433145331622413310137727310525681298816146750764326352669519037331490744694248383331630821907163302012475694957012767526819053479446351834598378574697305716371797960947459095057701998362879055914188296956812864485758312288690871833067836127123537652965058693408461879437324181838397421514676432264130034196664406651796897807187176265207702286255670302505865399890051156745528694071619641330474149817175644181061861498709097631202902785100694529884527343917885082219452949863998936174806680391567904501105303319067568213651717139119065343615455833027030157109495938814511333348225588955600794923727503012528064817976028506858171675159046649112746290981390432391535403949392724261807974199420542676609519345034724912132796599155640364355151011143728963534686342513993427513831005345581452166294194573837647321252684137079809524113853350809880123580914071622958586040420264497944953987865298482869274816494470742981783637906593449272282886170301641810838372708093511617364936647520661985372740404223494361769244211865483289115205608049321077211549377204607720530245774278743751693188289307900065953108648925463070592109340582440729833309204704891896750383915533014305020443021205977908906476810128773644320295687769791940358975687427676301108197216386004261760002775555281312801941366081865529747241343915427553551422379768807961641613599286622147471473046339101868085592405597478182167547271335647576393897125333856052835158203617956899499606641005953993727040584654629737685849288600847912069757411831531685154967664472383059374078813094452331986949774579175612549720002859155959280917212790479189291175982660455205849567684683850254107807642249516795639666210510974362662044543554627722894298407166569419201169655503833229833404297700926593107209819588526655069615948160651133839623632089491257281950836420385211247527483444499373468265505396075134880717439501313504620817254173074759426797623204082815539712793298692904908635334253406460040937491424934705345276171585531725488015958176708544259291729861426112340149338483158743336548349029409517541286357556988064892945658980191550926964402723175347662322865729695776940700617847886079873526934230155926885654617689603611682521663766858918994020925817291689040975832595937768713381921377072859256946931925817762252626556111409777684536804882220093655867289698647123476651545336502638876598016657459937094933838065239650674065284398472538211976036710083023463292624079036605508193054208852697356030905889779524795106874690381822123268643102885537181064119888618492045777410063628005492894943610729219829930594559516540410477143802842483950277300683843543494368582451878260332272769390530668388486822814743601793363156402909798951509381618286006252063936946437808001675389974793378470759775079524344947845517856294020576319256367452724089789485133830600894742250674710066043609288967672358307432623314634718101979875085666689435510101372801455455336086931666476290207545865149689364412289706223538041427147605010946737870028657569524728625808681642277424831418857673408734405835648479424458810295454461977050190558040912354456737393874548223130063206717559254555976106566375089592215007480628095722267686503817660028439390262925688979684865778316814686059271216387614406212936422053564617957324566766713674655345274251482899169557008875702275557225608180302504959872879877473712051898830171405887540987828630756638256464430249811785979803271505595019142015351705113465886789547886828372730366715042550293391493492116376216522404457138799334921378224568863756025323670875557586299712080103241227570739815042885675085575414211903346814323016546233141274531454723185353278903694069198374047013766876344214025980255946048027941044753348045750154857404078905442848714393489685369943601028041193441260411782316265541948265521143031751159681046616556142708720963764635374957139708286582021772542674896077749776763036825491213323954666056531959304635747412742553401589011538548949885224262101660450173852019880073664317006589303343616712118514317672993159879690071876344412760961143611798003171338242471196075423516795098175376070638606966958246435134724192465696053691203412452733325889118313524707704744516561524464360455509152903185238089743342785228492296543018907110632543385494508632467113391852251064932861761459664004190973550117094309556929588861224349017411303488339311453333822891028420148824016837202999859936020303966830179688254631621432669515865577272110005026698459334908345294200565642514196758665546202481000999227344747577295004315615398702752496437873805972307297979920959656347853088961992073374466003047990944504351497065430286952764459772423759603180851899209572876714887116419176385646127970176142589627318229419900570773112750474526872780070395624900939475602455691365938928259791953071870074526818461432874825442142754328076522556079490785432254033196683520195085076168078192822122891949909072688719562068158429384867496502933227765517829151891796899708263756889548621162236036250535789664165915020437380493347998573859840970738581532755839825091937150691233042542871579972792720687557104110764971830099285339786879979813963918448823744844213968862250001398406167523940427430146960701182851152520245305993707847609296199947478740514959217991600984353489236836625001338799079288932707545704062420254616468352511868773447632992867140743766894854445389100741590072704821075101401508712290743308246352643093127029935131789547920329324520953329325210154728690497635087266237458126519955026050873348406450617796388177793019064034502844860371920986772194056556282214103290967389050083247347791050840460805810202746510368247142193448456473428141434145409683170694604882795111930885351588959719153995159938475053292796002328857750097740597481670028933427243333582528029173735333671467905653959160027567482510448926015224234190501078096139535513124841831505646940730394735328536623739115087978198200890327738598137833322694311327785475822850181425948467126219938989199516076142235399923396479419914446170522443279318521116050015859555568112364536326698612328957131903782931306172635788126992168205091821569376429491664397087013699938747356947723956857637065092537032233059688222292181555238937059287728420383237626657193804637158043021385947929726465154137936366817688299332060128464669504754394544243891795638171488648132964473255971497535934605438294236518047648427922400565938427462290895001771926364279108185386766092174598847081411769089741102998142857915205784261513310729207279954040175698057428797248352984311352208554154900406377912540422326719489984726085413671851389449028132716866030631773801066804750944465501889794657427235198200917484261277606102759012725635814370261751170886503565032058059621660288827071140847195744108100264829707050154931873148992826658774234703470755686478753036101809215628527297842961326313400970256888608720141784634316816779046179602024373139177402812463247629840849176364989698075056539705100699072791789606659904933965526011252623568854649851766797008438912364964463125100427377584150284766525275615187942023417056563883030906154578470719428339847904560634834298718575705151855397734965553716332522080364686748929153503596703455874801964472301890785007921889234141327490796160868272064981905941611190743377216868747696559664455755335124834244400818218322935428986762866907715684167552926752309046119259574730752934415478559633508917060658545787282751936071920459053271019769150606178292690092359124621206175476843657609067426562287300088911472429656669032887805211548346477637735885206031520102390064526058598065842917137277614893263970142673556226042783232980611348135844972088954160979766244079157069451100486975470256677281932502509792439730784770456495377394428039357655208350423217887109091157220744686794908269053949138810350634768648815021682559966482852990192348603455284778455392849865099732443429384921496804499906599096493878908299189779106668343437113024212223011891845523964311490606767673411760624822156540075789709685992981127605985914130550373217654666004470258033273856347342005053373426953351092885775048320383408871807427132318949510196074744528048481675288214367386054278667954193019645889485806551539885962420942330371052144774177686738725766672486278423777815876311823825152718434134689030812577222109607918416560193046084902254280766325788616203961167611342476156297064478071256201338225151375422568417152890811220737473058075903631661820261245419358697785317496259650182711120168573805456084369713030003634022099774570980554353102576162987614894065490942294191124106637980749935929195733334676788204675539142010364484364684943236936628207876375411105706552625837894527178971216887966937059971650832344240334768702133474867279430624822509324726763143277984419842130783450628392962068623923241770654555848836243973273142777591032399665131736658942896122933464825519582807309421338715056858175241387884677107895382683510902370825212735455224188871211056336151217864987427615915069943040516227473636372582646619362979097394739573689216198405474570636770614942815694606623413252344590319902074037063377676553491751461664848041997619598976646097375942690985410841092818474081762348262644296267755727714809276002741887894409531435555530083553753998093940471428627496498686501206613825284870746873457700108155019390203546302077453791805466507515768146593574667720359676568518252165381695146059171009159550782983361378103960533509369794574467762373085815484387319797932025704002223826146043205312278410645570674099975434778228446471230209188425370058976852554629044693146730135673318212983015496548370608539890421151196812691481732608553838632113137969379846299153677701010304000596360886356362412099822480203571709496150424419383452687361205049473869564457315456170288867911178845380851670163711820504443962938210985637748559376675013155735700749777205810027675670383508218066917931409283213555356409802376581205361302022494934934276275796670558609833605524231519421703530518736690155252287833309234509122147083350713220392677356419847749068705780394306812800680337775584729215280543515993375837326331605611964466405048436318639240829455562234951875512016821840320599464709408038527759226447094245865128461685390144039064039661946182228798305904090715494700739805497726871427922105417469820200963814635112372148395275925940362875245468230679743870967634501796113287048804665199987286420511208564685392597600972961855457382338485831850307778674173914571814823012471161050773535877132466193895321908336149461445648739389544703711003252376478324402404822251783879645046539863833472049070352629768391392256706665771516185241933790797886503456988671946488762571607506696469417241963105582010466125962749456640238147495510688550620362734978060565463897493015792655387670695301118845161880661757195114957712857048252322840623667831766391135268303979168027384945408108707940664465646774041768976348423313959749109041758974064081698843501033626399967160872627425204814991546983895363337117441659840307932152553845299569094412088437068281644404659641970155581600212019012900033793640107972340582767332449697137019422015891285571606688803037315645189222392640069546203356233972408017603337992427351156966022922229191105953068433449690692349402126828112485543738894089778928610722224595574950636315595393594952358694485714475162344509759989451095501756673232763131616314063378789267616910129272964085345174520095295604390610847379955418016832713076845215078302543518911539535988181231004684236991875823301454686880989446833314775843305266833594858949655358119642860318748969150850820102535077353243222822241311072512926388530729382610534389594058084875468735491301566858977171411732567184363203085149660836271320376731691876276261779651051435496173718514922403340796954868924856421015377299159953122371816817082907674170060610591690351508147314954025915423061253799395419208392096226646225501894874261161615183827357079478455697175852864681409737557571249902276571488662258811813923728609474456077205125463820013870043028428521143433620400475668852612735082021350506842171351713565723043380125832268699211135118206638457584639236489414030246323410512049355666736668329594260802345008821959015766052913739910023708855582775680056982989780498339042256724597121326487683509046975832465636066091585022178364053939645323929917378230906244843339151864319042777110380730586988397869304210968555712826162010609241059565054286680060781439957229061500888434113287503647729554779207919637988672602869531004092520591774305816920444853817234418033025921237450724394051865181203651743805377837078910734145201948829444639492952821501652240691347734769408902602837455279106309210872160446509438733092716106518963199489600670691717628536043508591410655751543025120583266037294622342254291364551262519252621574404752150838043908943005070214025862765361188787422356220712697880513501267722423886907828216677320882789876457217404023238926835772648604646626445358743930376109160740459726155221916756320745104948388281369031879761289249952914236730860712721552026495317041208126458867520218763382442301179734096499921700434446331377650896376756351137051597248045191605865402713870597529880865061948152227495472100046643429744921797981632206991817917950672302393683413038970737781645362765069426140605461570714326003469713565253719454695696281511984718702545428172743074450959186426890129766706511560919092962406026331776385034884462621595655566545862270802227465195137589999486046711646203347600500383633140663481137183120669034310469446887359129474803154647712547662132962329329270862286857475143105489273016338760429291440083647725778607583818828318148785046698267268739833401502218485569445785492768248292685931556689660515710518397608622989544466013647678556219789684337983019709011241585013214123364418443980173836326391282171770832583203814154276445597009324816776160428858972510309497519938464413186224129823608254584235802846364922984101799495502215318526602443916581918516900314106568085900752807169639162620591304827641371908814686750325085610305361860792205304432307541873996776132458388700821635042145747573973483885995819224996606402728441157983518107440532896610425978309857535842653310124216003714505678831327996289490390490509699806550252450670908494828925770965178738674178099098593778269109165248064379185870127088375657045768615549732547584889868032149385133471587889667857190582473956652403002526952545805448745737995115970372545424254936557352047660563927122252971820824779980945924847392677819450910755922997966824822768515392616287242887616994567057552895581749693481961777274467245782711267539270182290256069344971117015307365881145943154101799425894546401615034105820518755933006844679186741302789922912918774757610167628543122165562000299350715878161164995204606853288143052591014910895738739065147990418096140483462249182162575963100641475482448999062865233631977375746923446364376804419369711211127629533156110354323289885963567836599119465266688208938326008154089281382698869874409099416856041350783347108325851744160620301319650653562835968844376606183869098711672715287199100225584481109428100866541378169753412008090170507568023616419588741426603921199900525269843935307597348321987589727349802632337349445677268515843902167448592930193722613044896138353556126737605334041711811827619823147420389136498852581679862789237911944985767774326704871618058913258045043704550487854457836772654153568108577476489296098988078725530859164329838317011239805927247872697838743202846518677714678747235749497800540326618711696959697821172349586205941856397705938755881328830227308199459057449678964597226939402678598902664163305765120962591579514531429878022856481100583504201180654978999421572681476193396594321857189908191484750824992367118100368116431179143786364461193955941161945568995644580441081945756681942895640361671556366620096165102719271592975700721814762283104902436952865303020317620560251169267028435487156085473965691177956843807032462207125581261744524730806502140726385508648713794958111605662841372729915437295466385709146323537853005333732970116433896763226079530639434315628333101226347663393878014980015745239697153192292028281724974261418450470417256970529256456565883776729527201803246655227289306299743309786650765810378864931200386935472028536664761297415271728436340734884848993455301546918498597936248745093961170066649505115527928222299584367408458354103051674393154827044225965433187250490219690781457285662119349910186336912587940236691026393955406891595687767216430968398119140310929970442082562110361434339473271110165751878520060186541322985433744895159444507820902875739632500184898880592856950849916975019347903802980958361956081871349736239115779803051791071221620296203900303236033500148121703074135372166358591512039727289118146376971083194313930886839907543038266628269675291259487383252047240812509366323946905080530410456671492941199904948388138943299510423499988023871824271010947877087784059452376500475365196994488658352747601009610069533768953860634243367952905899197809266372959673273390322016915187092475552002961890768983589599721841751065755978332526852404894794712998272091943936056416279160699989647634148481224851906112671986205467182378706953022878696760066165412752956040840868281143657915220708576820061458265197518423876860545980776483744202463253355859817821650407984095889663339824982142759828686679694578491356519165713326877072761217173384439060799926297035579520563080013555598044622495017603727231717235389345591858793640576487335237434204570379108751169449097737394719167937680184423425676527278023864576988737231661509645516263598387469719630609688198268815427892634713924593504846089291700835090507899832530600447327556882971343912476345897524848944975524294097612752495818806403767188231614762524531070525956616528454595579511976840978680058705362261185970708880068060922065871190429870051471332535996869515883569652820551388724358730159553902074260856298114855367269087625164946359924967093796893135328426000211778098696428774128951887711204519317820095727641212666412210546294428951979896909737457406825189354645669536203123907931996859275599791099653808991733062049490248991318707184353319645758262233896148090156892410468655062635305029592195250978637955318890671657907478110511797361559179245161711657396811355271655048217741162993436595856775575594681992063861584067601284501734616888558413694226351343171107013056670352008047219502284556892979822135401934407912701683721921296046019166641614072457215114327453273094253965636717524774646716508220973970242447876275053854671736928891538084894216263024609790745239779505045580531430417215563094727409186524481426820336079045765194477503307385424881605008612003155640304347997610426642322007063443096551854440274576568753697036495639801768008663756380929469245680551056805440623491173995506420673587635115166458641685373496658581355235387837289469202190796479234558556762083761293952319245120955998143232584996941583165362321610584540367978851467306339640130575380646237286259675342474911166618504915276534844124995857725805446590414674278979790629320234134208412379882505494746961009121073014142351822523573589098967936950596290916494899750225538150928893652277007486797363486064062320334181074100966144015927084746045364923588655369424714708792904651626046679114230509615970810727676213037449643332908733130002136362844685842680712025390324920970970972204584617452402928247281532446884454742706792330829776169502914522252023517656631695364570636416977594815940272986696557938484466156797110561042287987425013332883368768860564401261918733134375490231591521421122223354880672962585881324326208620021158648777226543030263493425290801815240861392160690035244642134562218383707679769800964683857777958158629973978926366046627565982890925051641851245147991880296798316772009727429106307195634765396381313949614934573246797390377394616701415570714863446382008055566499558775982404307465830784555667733567769713431739576362422104321996159292332714634676420081478857170851662067754335172291243848895283382500268485298597585009370211094097237454269217107439021080877275534458261866304077237850511538252320780622220054282770021927121309037763506076923662552636757625287726460444207773928437468354383439608813740356626103757318072543212601174620638460395211808082831133859951141524004024152527526807104565757032967897487046841895660535359166727010071727482927499729420317169373560771557990897254204839085159937667147921753577696770432145822064461279530771860600919433776314512666783277683714024740401922485341275758381664228087494491173078762415274719987732398459083671892662643192127770250695234323492462846912312898448697192441832915998728953717309765951499331615930969240470242072117935417566546148505956012475733320249767379759851505316536177071852338957121507994084267485483904597342558564617652007109795684175352171351711447078444929358683217619718031272292218458131662859381167691444933692518605328950691845074363635620810458806537980341352914127588991737642790584621100503741212877024474879783337803013523935563570525010873531141832350737692961113622550047553370140507604597682174163029081157068797945936641979470396382581647793115895287153272242785030921172079040291416325503442797476182882431210234947196536917724223627359236209869856536447727819076584695641799103491342282269056147491461308138787344333647938998934709856995250034105279130365518198129042545120811784818964795416240422464712907393548517435430164425849396060875218232695495331880235819297974172107182509031465014869253540367709006232154344044393733001601702308110990160559730186404237935447738135711454467894235139476192290192306056468415606190672865787749605224565128290208464088529230877666655825094959888036473422293561360670665080839894646432069875431516374131910734730453544913575660862069063973111593333919811941358030172912586795382525319002967748730941130151340488317828632030341094735705640870782310884296409983175122073992456042979186655108150050221386771197368604602590373838322647080451555219899962709482345292403530522308091454142797222686105055351108466114337219650298885120230856202103119662381481251423546942721518078449492327237369053424303701867950607250629696765919138499840031085328550706336882840124597156804112848814449465586903824992890462168236690196031405796025309676084660606289010916221208724190584685361972816984783876827010227545495060939747646427200838252604556429404832734713895451456415905902828683101750089270671443937584231994504453937865981756215169245960052702094660327081035128567322907821513293825323619880119682264408158965768667258433587475817768322821518988420916979542056830363635866852076226536712834685903212041582122836352466547567272672166174143982402760097949610097940411965292153231995673108003955469529404776126829634517547202367632845430679252599828969284275902742363479945832618003827514785079832609932452388131584545127102744356819280588897219439252271164235464341330860707224362682042958827596627221806793630421955628193852083419700412615605392238380337098383904624253974964467926257159250046064419054778783950934029587828330794471260870761464692752386883802423999703000241322139438497731156611964952379977459853099511611029932975959793550385443876958908745487091266415482538665672501005453040790037429433611789208366181855509103701254552395228755359874941003725526338615397428599877572672381198168854161870097921376143303102908326870162103004955546876394802153244070126912051961293579874015894907520068941855333818266805170279062840536729295826190592382083562367886272549886269366234455764143816145543643411365121079249994453926352844080138547305987896811472570406809663051045677320497653702494158772146468458908836721326318690361932885198953604151627998739827329536863183374831613256106675171111774469962413228795901647373324912544625279242944055691129342424670970435635245549057771206942777087556277523289019333611922167762003883845047761061576265430236289426583123957075434632006817736431459569705082841724476301812793748375356206883401601991908684822129002902735147129136809520016594656265856702957328381272278641138450521903247755206938312028516786443535139723625363700048948783192601119490263268881321885621799558000773541561598602151288177763260957654397213356241854394825227823306684072998937321727882154256866505764295580562451906972664180418958908043095591789453768381569552537021080137003884574950520608305521900384516164101295441617578010957439448963337687131667133840896603607359389339692315209644554865456532706938359642894519435882287737840721689039275097899026691581794874464685199064676106961106799358373727225283427229369498366216807793059940038175453183026649952980436188955607690105397654413788909161923121033706391501566095296097736306532189975572217943677245248164407327535974502176895943964769198241151671645193213266517401862994763994361672195826344592289888104786463663654330147871156788515186760623164741212332030443194739062351622678302000811901676168976059534531702169196311073665363430722424751165234089095981804272244237399974334480861422261697029775749605659512305066319862395367439112621605459263163820929905634225035764274343843052179263757486034101036166134186066951171991653447345491307594391954609363391643565281670967248038793557154434184620788009516229698806570459965206916347427593247566110084714409049046845594536491132386232764517441873635138887792446021872785904723594127417064272866850997214546147116070902384393344302082769194048846690115602222132670703277271544290253008141923051699516652478159524689677699609791028646213755660071256458703267899948611916060691621369422700220093126427398765462257300199587509076014774482694386818410552245484251811575042296057054914588209907467396644451816615876858497034308441723577972524594238289078872484363863132146339779631921285896074353965091730787186769702741514590258343976989187234689601076825640607071377757179428110222091372896688428235634750549312037993603727200123946792256445189122456875088608492910676741045790688840436261273674704359562143595236244951476287377603573594337289538600164300326239254266913300991437887402167683786064604270988556632439910879196043806129320394334252551321145847298272918791821956507324617406739846072039375028951343010651877848944599132431569914508047909899024987435083579838538826478099974537733788532565827920129166544712244136150085785009229520670770229420742359568361345571580857299639017644866527883110669390223206875861783852841097188969079084917653088847498111746785511890039769798230038381289068677559015045051125115711484312194379178354993152597214832815187654871802322924355850118990619055259625377777999957647803512127296348594325551046916540334364150837022687581479307698632530885868285922570543030854853371361593985354145784544485037052023660025506558784702611567482876198075548906231887222131746882495779546093770979019472170896371606834388362067754635036750460706914832013565694681645963187414337171674209656786302942478100467441832190157581919673555114974021262540298322928300156842412092985853845477078937634612364030625234419295371900461949242742841477405494211336006906834946428428314501502991218266495706255053991926826618622027475079306141505663384818811472665332740511302942704929300858842928827038552940935625898324376053506549774970213971996579178674420356074100964394438973367648569361037158997117188324194328252940602219201629624287294352244343291540143811375579930839956266909077826014193955635400961818699385410679349538855615733251857246460633943053973021728982344513496484696449782895891700348856131211566111782246933303444939571366292144224642488489311133415090751220012168726588292340950483264717954797617544753724325823586241105604766818269531957379350560644629563894672086584064737577545567479817006535071765041501479771328020550017268566145435392140005481246124215019701000260382761332874891761288216593298219929580319399381281183002301450223407020854176511264223438629111860677427314168768460267907462917291667637093165424692285796257288686784597706746539493703248676771874409799717492589382144869503019923825191002117653989379987732623111158759173911695264292259042353537880402887632400274489954786293268817529060399162940524530275509990471180545196778309938474366945722326898497985320909520329530264178320472773184773757580565290303928990937353523560990512209062809315531833580611123145882278334194312434600618006050433673373670453602255877935207930343678152191556445712947513008408483953545883214670956956897315738639280855352965525903210264434496955074086392477676870263604738808077654211143090928036447913852030212967635415605998882592617085902198529535227793528725879751168598489212608239084703186286897836343234953613496939726400745323523339709454442932783428282303100091883923110757413462577502427065645644427300962238157792797330912018388872473860797818741884197049764316906228181959130475871930377244598561169393843792239092759016412736215423049033767482857609471519616563327834379345992694444399610238574413828790352693601559042694445607697655241139474107870954330297311618888964476093884057283476398062104459514592742624510944521295763465600156153607146872742210104710999576589451945446672437285556179202322694950107336824766352385335899061303933641332403697350489063149628730130546381229968883131739637053039306886157054785638181693745286803670855449970746582766973952063272746246597413220649820438232658165779354639349414162276561568492934418276503817825399415436165322634003490440616180974210717922297988637803085418585962098745608696931446586323654403432444752581505240447502281052688580032886755171748360103005947392173991314280184752411833235178423849335031701469961714901460975340543053682604563606837070565884875445235823013515827338048501781355157885430605270565765090514447848559307235345338295082933643356718521572778810640398911706051819316010819513184851889550499794006788213044404206318341846586418051518833792971852130076419936496625145610621844577385667005973730716600776191323076027394750351714216836696852565830011382806768936118315272888024711580113186797123118238147168221996088665828659820075750307560018349642800749973163332511209343759286435814433072941052101749859319373297053345316585157332677434084997125134104826390012989303102471301877038637689603402707230061451245779923254211311012865195936692231733006778247640179180179660730830582367711395266776224097503368571335914519335562781895644942040796174535971481979767744164252608082912448477330941092656596222024639093902701870738395886379388955959712825795815847532769735687866729989182536821459318824356112900678445900445465680136297711419171480666162559408686423692918138476228514718143938158774709327644781177350288589952920281327509551358974589921301015772879326645901554068948941399115353252082468845957115131386167298640976320775423226392980718759135710844222395055375781012267856522394343263433563790406333806256352123194057301395061780538355835670123832272953012957773850207409492277715243621281741467334252821015887441914065755097788853533049057009824386588817205007897472441545878376399088996278400301556433544595498369510118414388859646593022024890059737128071489938562934802063330121179522634242602663353679790499039468237519760527346877587519482643301300037557432118681353551437556588002694568199119044889392694513267086217161784829508368560826700504896779548505705316776579097749052681588712431662903589356876810333097774451896957060698009247684690476845348971064626844410172385399529585998967207810622299097522685829907972610393475968659976048228729900680577287393595306366427755425452759658832342310756122291334648523270361828973368768392073115950479164619975269927574302631583056207025008802960052345724621233220396780337370581152936616632575547619760054547023317893442684300684370284543011969077327095768685687891761835960235688728699570030503823043361044396320466019284813434292330148020118044462626781301399266114071918117072204504690506086659384309661015722103145912812244579729319667513593701207806964780931764377329816399098165716200084354631544421301884017974355379386894423600192153061789528350134544747797565065597690399602065698352687128483490665387788943705094324797406798851529621590712633750760957501243403893875008510918052480641072327943268727336690314513966550594514477232660150352605069484221655034261834242731890656829391194670138656395969567889675175718610476144130502909554435994547418360017037486230743763951274435609714979576722964668306122720898078189939828763195353986155154986049368410834764148199334838354643216430223357725256809575475597410302129049622769196479666217767686767979548758609170486304778749030345125768683081709653168561635191618428828885963779723267715844573228595990405245123606883017806071147666404813356219005784040627130369527783691539568973924630489041105369508576511309179855247959237219152150409729842037060532856010630724703109643491728058227805562127937990586257034680077977783432304809570839307945197074838843525754377055138656255863843334185252373997638309403964205571745143296299187367046803742853391803218287655529671852969667482206567732841355096711288777773360304063160743254731773971522445137078698864174875976518645920440627430738847414546001669484822365502528459903390666668009317547964106579621253948115028117069213737159891307414340487409424084677986086371080676529538125047321311676436319269077886527327927857822223190413607533255072137410644562438405116481439350686822079403081874770364900253273215254924628361357008007139049213624716329097355186927916654776106853637903615998506380018841485792326995397756522881011569239544889225876921948143836184326491297752012157251591924385294365747896632485211339142222327439231465159565257999224983211347265919059098398519122820567938117643123854040170418490889650678827798458797954565246530985229908216263046283842208327273850875297878977905625188491805721423125335529455419509763001265348870887695799601914073538645790990546438563511052361668604468924381908731325849319118275432530633780421519320029568986657291569618682779644870448438794973370268622584387975114621397921111519789416369551254942452921846282033016770823655583341585504787087915360968082259166970537568734141434520722637204536396586794681050395092123114013230717268019845485046327125016847912492390036774493070605388448044908851399101721728242688482549555204604342278970478679924236029156407427888593346546928229613033780956084366272865026464144789978978684102806206014963896677382810077258839617920361473999181982958884619596097325558366408997644397299062649826916387049920170456119217229011099205640271813600689948130554169171680558705430283849589512378151966508267640820121819582595592810987383434716170465103049969509222500214695515805870851785890692076171893435418499733030957915069632540777618535271594584766948804660585616976989573318928679163979012831961791282083269901177926450395595654697163612597545716582409233559664232800688382266070052626491668938795637377327586218541940246125611649644985599584868310742779797111787156560956397082247196091281879459268193066200643797366034773351188271595218901529435709481727127665639176644681504259295216985611208718271406841800620437942771158387786862855515117559021044949950609052173610574886081191802518277474723031723948542811581692556831789074660703285848580522207313869175181463296824859211749323995134617135918714779402184712054134339722879271678256053497918405108783752658884776049851550659633809485883981537206276099737170717994421381922244846544447049873748477405121555090870550650442593381026862634373780699298798789545983366827110084039152579543275277626600356861839945571545855866783591089615914641001272323678307031503267854266514459804580727011485482081736657957921179367442600932832066754136503931277161620984640960425659704608305559460715225006137639470425442290293542108115683105918219187802971862291375285281713642643514352544565304686718874700198878827261136105271179409045882783386914428546094515592455469745074564156209789616570774438615368942371087714255270214296422832143294999819453605386925119780400760418027232385008102866480572371085341185268752156901706961633292279971503268756223016266015447292418918431774645927875436769110026155332362253615053774288482058308272207297484749507524921906479731495694154500836713922123313917080977679594548254832474025497257493988581230140887154710817055945137368187214811450817815687145776322062749717223783000075688730301176600255972282880115413748728889387578668167765599467258224199562089084575052144890003821107941631784563887437927120623276556415470719247800478350429415920381567293382969208211999741034299880171688434020289257669471108321614451542274340543146481031396905358725543193336442942676910595871115534151650337367020205579254926389060765672217380240707248087915706995563579076298522421319323561099688403433406443038548564666170671022444398899314783983837561337421261296880141750694820578304813596148393491402838637428600234072727468492463827339368395926716874077956045581634278184338293668493187881468743474888435402353775984215299292479251671316590601771933859884392039865929150425694730088152056841360238724833421268984565111142495087526781540980324442988599446764268306368382611480370100913645312684867679346797700157607363141833994339660339176053868943923963345287605556005632903040819927367437184433757793416493986203256941329747997287176337898892073221448589164733937146320356181834868557929856196148987207919117143605698402400028489582286093762020558678320534452970419807362877894397186809702786917404505582198503322624610764130649256732272979429479524578208675499979402227097360335534758528674868158547977956227866052472115813832744131302939432427650868928927717604211313090196927139116731423506371402294179320693787951559249624260325168908821511669815626436798949061357901182994399355375572307292817623345212099815133593699899909383448472104488547764562002062603953782566246763041181819442546423423766509273241998835553369245765499916993395850696274423680290372844573653536946137551312144082319752606358408509269638897983498338465983102310405407299924226467643365147731719807606537983845616592279736984532776094483361984413131094734120047760710122570042640682055868498889920556885666492932253191221614444770648537653104570637779025600946041020081478075481254416608102381619076942491146864872213959588947268252288902938957911772822799231308568530347884751663182555518442141785594094223189796147515446634682890610674919075528845742472933195401159207888686376144261543183991136088857972469690334945715579027639359750081118017014056772259904815082852955769580527444935022362818181652225678607854143525634894852742509884627852724817205237394182318812047061652888873821519100856571900122586524354235865284786356404054147068787921093286315398323263398479667629640724893121591206004417897059101028484597424444884708798736560072393235876921347580088422821373566979575986215550476344970512631108646329128937632534601985464538563508659849914710312950671232082866105041255622449161246459474647085788602505717491463630261389282425592258386867983915918885187877197766124878846711107445370870256953426121900416895562203382315444514830746441006305004576040928803695026874755482200028828071167059000006366186956425047678144116272252043579297605345587856844924999142218043028014943203677165031780382175224468345726423882729868957682878411584988516463057256654621968420562463054911170052282868800718706379668852042606205290482804225945315628315909026309721555258972912753192271121923421350015500565456169229672661821638115529041600515616945188627723725879817041069377048355786302166562398817646698335961064509025167591823273110235402092191625109786345753967505485025175338787090321421760220428407401038744356414076896789766147290553202759775516978025628089440585187091915775540985230663266417982549953671211298465522219172817944452507477231091595627879211988660963559909795913804846314326769079030982609220960252702667561824945203810229266654937583122035602591218128536713664145941826951562108771259527340493994078291128106283400945743621783969878130943936157419258161750012157865610030726986298637025887208434469340144318928546821177750123511642974376550668418142702444969287964672750188258834283999355219135046532074506990870577048417686077231378556049439645746527456884694265714937118510187794294630096420637975680397568681701912076998088655113607059223361865541339808272859856299228167879507775012929162464241800564543141735197681885691042979411689480079969935014958675751069626792803260196059857037620883233106703152038985769178068760496694108341599831115058337830377943262704783271526829162530711139790257805732889707058491199391147846113418234418374652385123551966747695202647876045701903246713344996342240174996022448077046796404648338301598794218723359676353600893774688003451695659557538694865579375542975636979045652132888574694982958470749436390519222518240471055400200709363652594403104335137121283502345332688917367683138947265525560932065160619777649149172350639309150577067320680539478133635156945588213361074196511896443849956063793455914553478595586225459324611747130858441310658491374127764765095918590268563352720839019593772353079451116664704715570977659686369481488270421187727222629426040843422534822912936494172257155082613845893975048431081470357046285763867023726549566107251025849874925636035337532536518911123501093949518304830261905125828245725478971942956813002279045795897368494807202730531724313190248370135615840372500016504301311031860428515569509388378224370830462116007687835936725365843355461188078583819667938354085219036127170786097603603803008939778897126054273645093832946276483791947040764870356761045633420096504706376101830093514211945345538381430660829763377690699989904669754733157888616551253684573984309310702887725513402980225125413975323937928500788171167855738466737547468883359791289171430713105936492508647444632860052954718889191308223986439936714174885145711269609556435351761819833510180848076437127961904284954659547693790630166079883629084275634711595988209358233355458153960264999900558261994624085685750934355081332025374969640483349167420337902231461307241332060469077153442627035929287406507122905377271358752966142232078363300912810986399878124001177656780473903305120169323679083987396626587207273516029961257897488392066822015984708193533490329873057148910459352282465323341000570361814796535304657668428711544893375134310085518426847705347521504738181536203484465180055830900519061469525195658337393834542698091989450947989269904273860106259464603526455563827275310189852670968911189128183290906716682728685164757584700100272552273580761757589000798944011973198553052048929940297253188450650206032482133764787143500561171382429957504670775569442252428418435175197077469174781363840367497018265839612032576184479246271785042308565741856228702796746960529360830832288120476339939614340106254828786517990757300667269499412125193974155734239836227966192975677708778201285814238326129732655179092932171036579906866044783462103882988410346691378439504564978387655413111980605319882639065298628970855232028347550017643951943661509591501752539460264849980144316408545878274799358101681944300014630450928265672637319857380407189410719513523107414548244827196042599533675903640815030099065917758691474195269044451339437954445559430554188317199789794085835982209332740156503659696240099100356491877739969348446755473396834782573094160102257055866112864272760633115874064350282250497716774082525374946194452638969079631512902118035250474357049725258738254148467371318561338236953364212267530401016314408176058440759071830585129036568626560504798784720753246079941238836542447340186740217447848359056645911400665298845360687012521987460520837520274304346292107161895523112286397077784221625973322232543611600811545146601482350306496794473198475262885185744910951232752001703354266880694303073355129149812944574160209753017761282471452382126184004633234751112756957886266906744790352163930497193476634514648426262052534029584484995547104799182084382503893953469357593920146069086002396664751039806187130164703866621662074639531736789583905883744903374624784258899674669579965003029251506136941195930136059521771303168986270205526107365658516605799692113790726904792689266567190117573605920290322321992529459944529695503257442148677122844400693426787859238563279094121195387066201893681474748885258594624778944842323069588923789222232053842609619708900326121145202095200483028399009340100020510151860779601326137781148160611064371260005107873886251880310957480911936550074186245153748779832077593202503892188244065369302706654530843737332533516163474255989889670703742364961513692484013568871106691412867999561707265366648857562184363146274585286086166741162151557438304742657382876154431091371555076784865340762973617208153791560892462511583843752721768032743852032471603817421235639517649300341137166836101003521600786463106795956433995559203323466519263832962596847513952737576017147818545932227035859417229413417029045208373015371936009706538989017655133406406465629935604269256298129318955283443703538851723531194002228891483758201600465080183187506114088895887331048689256470004193313444431677797139702624967785319966812803835603439780862615653836189613419463169878146994122677911866117384695804920141313828180611588552046602233134046406980491159983701445750488792578156693373388512246342400985944017364870011724455938348590021995730168513854383743761540846614226809603828327406076420804780449114271740133440972986617129674926429477199478071679505061156605636313129362620656062861179167683352906918012187814705674324083207987958728882791028751685557209430641571582222012377114626054850585723141252229700588670151148154732614054687074009980351158784910574360865471097478488162887451018802530810130681458169091209904543854717654049003938661488255830202041840693072313624171313499748293536240502034187900013189972763503050497562306383535377917276613397368478441968577469324556817372432207501939944932092209627582250868356229110580438569083832443255318663036421125302623001944245093483413194420833906897446716800309816425648396274212653238337940279858947853393290358410988204997254976391542073475585777032315621879099807509518155111661876345515198692751387456932228810329701743253169215397390787737468325407767154985593116765476953200378644791097315204208490183236570925188648076760331042636823138594622348818967711906363473211655571424383233824856585454439117316460381150641908336455338613556587040189137778977621242913599613924677410630391234720325862892455581970852688257356691634394812316357673056818773016814983348986078683700215104257125082841971993939080525055156864667448821603534937028710847819369106379791723498627770911962372014935474122539109153483194217473437071279012078032096809113351715075002440832002484593556793971618680423996608780245943755227125914316570327985992067179881648635661724233000252816984197415541476952671975576083775088600134836008775430333632739201497325146981594024713140633197455090659059844353840339138360281134995788937525915405309063729978857003536516863352174785791924832281661809540324626872023043044591688975810874641486321969542768143188076954243260843764937932267506782895494584901175982565045759857837555355449276436632981558362642557459797801265838425321978151436508233898583111502773795431123886907285537031853594428877350373407706425264983495073929634243352465744691811858094444480099146705079933708730420134943083296637802339052696602478652058809484165714901493692827271802531289406922471391176799076057640896669322813284817621146681878784689906570628479042672883723450160673366903117768537712465999279979579934803591969150236666245274481914657720003917126948850533227321584085185565271286622568224992273712170504691875106653085742759850481934315691778415710807817324282856717917865704981824737535736303751561235001390872065283587706546115404056107814216008350763475298622004946117909139607236101955511438399511077052164725466210001167507283991461451793838727542949835948328841956201794358571549006057082738694918320979706896708139405576187419616763398382484243144284393911583380129519085935200927407105153834750741383754181924892898869103789769434938846544369064662352509005054988992435749066992263503994412154106833837433093704956320126876350429476454807589038768870637698649653530024337264838204795239973262384438983314555134768884401096409836620045406619912080512383546769767755516017910799153427791342937212170804780470932097029659676461109144200296067769730126056101744257246860140969396781562535429600396800065372198516695217374289357971399629104001332405113605832963710028159988014073505427984967626933299515179679451706010466071115524903647508772357337613448792884350420987089564476547153217178615226902456711324020492061897128678201899867605101355180082525651671468537212239331836140693427213918255535645580703633619468889970876316825753420515742350069710779373552856469848008939193048132264949150250157923933535460988519368197650904426211849275214626509536415584808432297792025573766117015518348338151477355090872444452019844241394702153471274346504413434288287758960098654422375005974315744820263522539771162617162889470065078744069206150878018747091465647861631217675473304034935872803156965164392931838057078158462121594077865647299915747252463302519921563189369575126822574490325398940755041861708846022509559013166879365706726758891398261740328219456413833647157776389185802417175247978192138820334087192851712096774896705395794472916438497049013156516788819267965805147956554253705147490537818557489391691870929696075311569447404390780427958344517080795561722881127686634266857027920823182663367406748839242772674452667429751228210659361581665117967142042409663310460626882501023372361201812491703451992687044034703399411357921741413238564453888949906584555683851999057039913702159288800672151681713562334541979664062824319251847770284225751658233190346683260393495176965604175460946255076665935483131161151402190750115411308611444943327841783810428386838929412209079018898490456654759872011543541889587740862749691843611246105606042950184145966055859459870521347840688603720761487311227727439999272857818499627845498911361310167998902145552898240227030493928995887051026053666526892597115879173721830293427767635803002052482830844336671344914360203908912003987665710241767296037897618655041957189155852145680851559857096615645757281743924654628376654868154307706341439819456133928575471535393052694287813836618793313492844095102686840891276847872195369090395442165958354065449658014789029832627031068141934281555020236498524007653102307136810559467812300383365594410169912475383459513367516770731619744335411086591819268522741581024643673467442599402397813249038016624173656987982591180516183403271863847126915448878779905772124190963109496320924914496539434717360563420556261811185880733222929818562747451485888527543104048049763129246976120329578162043471364248882853437001138571995185500971551778787506952811664874873928704577637087168008500866478451655763979330668125374073155950640291488044289235797787635169210022035205769760950221875145613021939427242971883547998955298643498740579894283668049718106623314759959904890208636708015276748678799308970633232634519455804206027585775322377960098404527239908350819912374598843635221369048434518969290687564422295482436539317484450661182868777566710751273656920526177570123660152916564439459217289226640264220096710467081782980129025297525323512351816561539154362654874257934157003276531333762398943619932429449969296571040472534310673759047087966049360197149296888747025562382623276852840378286589050227936076425822680087905242783437237769487887352386039512181107609938843079708232118506157528699632494617064637016425522981968655191048480927775443965085849277429092159945466357411704210095104423775025325798232820277680185548349927162894317743085758447341681188613052111266880124241238277924287196532810194781235266997272440750144439145913913397408053371210433929071316420393562724767943796113575301507778436132254536562739320195730868728257223734556747627775191796584454908841280510200867630149125001732292981341891435125490622907288464113892185201523170836511124211580045396939433133918604719212798674952860309545908050558552204196624359796774831380249374410427752896766492807244343144595433599866929302280649377633785588274490516524711373513512806536132179872720044578272958540964650006321949233291849118668308222568868273204494101247118313707184446591232362095550097818612838395473951915133678767141673127795458033033422400501804427271683812526872679218412389491215492645026523311768233464904142545114612167032024257702435342802862829719769771569913704901100952955290115839169075823235366548490632970194085824899167258228999629583772641657958179163590152803262217131331918846691437163624631118334817842070664117113213456743845418542706980651461204556529582276002745690002295895352289005718108517776931274191741608570368420434866657686657775474307703819987007043269011767884120050634312486043508010522510952492576766620519671907942997303809129568652032196445128494261293741037603591559415253985195941807605046300999036480167073486045301720549446031315184272483242698068485240985639867715848578903476259269782766491320639715730869718022199553518032115355912321485929943991704591201863515714320218367399302560687447157576445907282940134671603642220288700415684595236731168479039099461482973824137172214213594916172313290408446242386538625341746790129219282142074621222064652792180099894049224891984657635221838922026227504058938904390633712760019663014154702887204105750462928404195534195036148700238447518115125409347533638178588009955171674266296905802436873420242650526728091188789177334859457326177375732466187045532398782232790287655787569555541132857987234647255864474117633364167537259215327532326502305405732593998183094953673913558005854878761514940736561474106954888132736656464638745302931764746477471740467441366867508957420287610237337703584978681176158227258408104824231531482975336917262501565537122612202132613079045621865515113080157325834483146177184404344532383012147322378317788238748898141679831401792497187563597340567181843851877427359136669291507711211843334200930405551381728274461955517950581610865597975945834587718807699709883846828974434464062576333699653041675561596092198205111026180902870734224194499693277766233396070574792044970338783310574917482223406883348583077085073229733237771349019298145963326842803519263000597824130536157417089564101949560385005678915758520835022951420183764162238468532715784580742890331764088837495782388340317829464493806852474571385428332329083181162844500029635918677151719152496485519836620769827162696312944230730159649130239985864434346711032782803687939988325994657270988890042061379710374997109133908585197956587282493904887723692822365543125058216384320396305447684935416841537451571725791233338048680586681740626474952745837962696861306014850190585670780734249162309811805709573125932231408578517819657784228762832573895515519620886385847863585286015043367697436078981671826094936327946611714872570133881409679276986410870658114208488640572675465053551685549891742588806377825804194921600222405753973868211615088729110909735882999552723607061391952707286182665540258373747052856831017221149789651468175545841599649618633889334005010436466298719986794136747265089138364708916177694739928516856925129731636640798504838886673063085052637620781472153586915972819675691385202111622367091298182365962407687206110382977771449933941757542751317644826373462983247832058162428551720422009885214201829751617046544511480925366230353266952668918645523957324656786675148045819906789883880094786979945312375796729576666683675163644943787153147642756112789906631939802968295163802228006215538489683403540511854489094387905358784919611770639527918727485153979897863557769459064460492909802132404234447677899420163879751120305371559035685919549384008995277108133805248483259341039937561144571815650605483072771287363075534082835651888881241313395734868768551648176652435573542072557687086039409493713345862820459707006184508054769597372887176344801432094858307045738131970252457095490320811652148270314061708402616214643529960239389399478954098980921981032737387924775537209331084427816909404224096693852325028477279349459461719546334245877230231819988324214180458110119117928400568444273144392284022245419836913241781198545638410066385294360940114794404932957018366779236406051827813126807535201770204450992208760989310984519034877208849514471405978430001860915297599945986930473975132575554333261483859635575744340253035227670324588622234227388041315933628372397270795284126205260820516412784576449127238508083912048438428278155387298639188954392287413427415826875349454299771913029005551969830255817981907553356796227352006680918081780553342151686880703379074355361251145656219987169469945216044765687358770032734005019048993904489864887785832702315859029975344345349537522315592044382429964670255945260150927621374458874942909932731702866412786983083280910075305536036982829121260170159807157677430217864996627856500444830733038539075628180687900840199170110849038022398259931963474279257645226218945558232255231372420817802591777108303198920985028727527239028965511634179380656477700964439521584074653627664093452236353024177300776573840220390605298560487208709353829264386127669533588361712264457807632821286033420510546408349425403095490069072564485096910653432814648645763478683255437518793523970929604011593706963992262756554888512066755467260977386163553409045317220065029878521009560964669642901315359538484485310646977761585523102874782737653867553103644955972860763243309996052427757867741087846407409408583338809254371902805183954932814469269897151323251763775862285714585151539931846993996291408434528494652449714548654863935388299116150731771937953027651361452325129844819604719502607177492411138240103574913804345585416305123560603426867093135626696279991188891587753562659403998224280374471076448434400122001891218924973502700179967973404096339930134858427542292715886501357000019926088199843610029813830383014925817152791547727252556794850218520150899704224263224094101778813195460423594079378043748943465187066943742434974304122105508838114273510435700685171110000263005152512268913922489690359562157715875104774569606900305502985476356546322358323118842712038898977656983412374965144186637683121448057603675366689268581807375026548702957956985994374685314116434817071878381963715604793833464331230812202964292451085641946062603587772278939895048947535168382116419464930849083064777610594451169651733285715460441362117220211670540077311022961596210890627091877903071978312069375465652174532921006008087518628027998653979015083520640818907844327698182800946222527712885022371586572606353555715682840219761236553307112729287812247537244711466050672373615035108879120670747625971532429077068578170878467770858079650521331024281643652212215126821935521410828793142275827437404701296143952207882777601768573337817724388323378605439704744817371422110561013068516206737347314758647273903492038276566471198797900007161245865427948190228794671058412182402345239370551032299052249796436808228945129181030949507038014716362093196645480466963421824122305405759449519800077179553525365318121426746614610713911444446684365168880069573269784574564785251192990816122530897916824736239202696001459725611478177530294570412083533270015743872828701033285374409151137302339391232084772484290911009601724345892164826511614510410064271807596969733933722789829095198292990866061610931980212297653175139425134370483703795450553226706897783401254846233339724564445162751631032962714346904252891458222907456014743237247261546759274050791660145316547609250506798924540916257838506160667958104632581866945367042447702108676267538151975091773928635348720428913587746547387264027526683929952977606448439237353226073450946053199394079700147886307467754631357647513892379776337004419108184305892649219049345349916940192929652720575146037419558025995719022309115116030906346409501211992238369599629905500818346176958468469076033454259052965530323430050039058967871096300951001808857507113050104896646134815935149345284277833704356100653274742442054641121890611562404914310403940235192219576424688974775832912952476149930780945349518718991266056455119165550986399188777599543552522864131071010921439029761438464999073628378079296222050727825909560041700909669172995702751422039663978523711709216878222904395848399284748362248216731020943170416424413432634859736350938203576587659218118832341276540304536554249877909868027745453681164028389493572713375433807169064945354587164157025032049377096937961790174881822894520655316169512374532671588903794549286768731488311166264562121593780712969959558738441081738292166216124990089418302623414460243901730838672186653258629103531155796959242603267078224806163034523022883276344996506616355046129835836478242821224205588342838197096732678801299623033309830888678809536969712932586898565293843928813866872703036365545329136460750113432292132529132394857109115420760970492463922122962733684974893654738537444951989541650003350326630492315187454438890768002385237396053080178017817865287607781901906120025394485949000200524673021460744320525203061863896316897911856714628752388828221646651598230588611480311930205011565968779476573456488854184421395677523993121508430436288818309701069961439450703239612997819537184978595172913122616690086060066365741366878791195742085624509981205641632238988462598535760812858128732029651979768366301428633222611848167101067790298868182266695194331088379420528210920453286691860064580725387978461146745613110050813205658620503290933335606670045809783924350914846271539522278187204257654414985564657874899880325432486163506376934550713586824771242815093828575066180336044654900931596622623727641712973795679942223864736272761010635597196433856694986875279427992258100487476041609467878249374801430503877014472960992089539054203125545659875006248142782819464094049101372235843794260849555942668535818532622714110336448918542349465744556379305965623633717509011326894939718936201183115544020989534551877143344469644680183934836617346593360552310644106116137575336213734601634775283165829684343932269602768035632363800766102116485687619272826632824864920015764065410125167033064332684131276055061991999841312080959263340532762164239234517975679722068577778265886055996373970021287531863488205002677463482727503660850297491196342320471218376531624808371981513380523339456771492077884372889512416127856410695387669944575431162451803047026775124285513447494187689792861327425422227572863367137928412946318445976760860442690725603715045045390356291417420445705300046793534827094746836099735176634229974342711219914520291528593525230543377563797831392638647909419727388961379809866845921573456696317258309660311662485101556008457267119360883557923152979146940299579834478670714131344904991818465867429763641450263613087526420681792251366537455268729054734470095734474224879940420635195643775896867918887055714087812679314977287637233737806643520029252299759014231073071246276458463400122660689144874145632164035289912035054855996333019241126814935895552700450756305748756986217523692084960385236259419825691316711224114101047359917843916863314903712958832247353165767802569338024586563203380891008112933365917189885849445180103991713747108190083367456864430580154782242884311330816126713295838469939698004566420088905729153854718464659680270095892593871446226648124201611289449886645439017765971662116393397016850209984781913844677462412296280787963597032924757395307214858009547979785879557382863420699148809798694202617146640814780677962862809284973464322766916299388607080799651516272990991620045734524213840867105303568520807937667598148035159391246801252754073480959036001081583252924553710060690713603602072949041192824945222148651564179620720497964134125245202842115722715713521540100704655916636870882780611611669707324329350514128752722766705957012115435977403147751434223959151856995719045357443376865730638314961778824644217980660027012604236166048857494476760618815872855545256929607987137293640403192893079943863732381636115148559993584674882950695974961258555633335627870829590531776856892682776225988208767344548774799989070603621470857150264905505976361547892098956005350149926585028204653728840976243602461279050716245301010369175770739404736809215789504507130942102073035789444920513667491161326701363608717088425912399483439392523466872496317629126142189254565752218720402821531572094101001224678016821266700342483310895635567335608719380023721961361367095444982878363210511864481353192613879052320583384033888937880678832780207051137241981181595579253707175557103797681452792480571423366070171060594237383145593256312006244112312052431576644249680929507022515192712031270179627615330925069185824221095404510978587700389871684107643490640915639523831423361064091544268145378480521624523084990882650091985041265990000964474413307065226995864829242444948506839876961931189745111914402940703924424134650713313370549190461226372129761998418430463825315597708283307576353241656409583029534856130049893852333101185025474025584943079859560918973811659116991640257205474048879660895121357011491528496119526543543608031406091723788379065760189630401521561346402305207101049314756616521957222479099452494824143467884995530153864379057270582608685654089806058471969543002294038289005669595032859381926726410984556064994534919977281374627328722313921990885034152014101968085167389390194449116866076254257652210056793078418700992683122344374771628079465357380867193130532016595465604278435323340647126837558296863918970753841214657890125079385839513837179506636588467182086273619189196719203749640159201514576241291757213073931263242259910430937522981562015290568551504980302741771189059605745331513637036470427002060377455018788770261036495557187909628058285893066452585276238234352535930672578515179785377873797068098111627657082128576645292719961905965168771600352714336999385864261252830971072193519055791936053922781317361953199839765930709574570383040645747304467283666114267438012064733241362303815179334082141029659161785023136964817062559850095679479137229700815078702547523625987092731929474598085156850007435423666051797625256274359229362055802362002053442116355187296890742114234883482483897951271419562877372269297716346460028909352967348390334963214238724593277845975401240266479348325798369598114457266382984251477234601696255701966866128896820448920855447563534684858903067311501140031285067555348435707923673620151723437719578085073159747667165409241482449206326540991175017688859255958931428464378381603414747426126016826564345042282419066060342930929617318034216810704597990678277008734948979961655853107945236838106417911288938234608971574716886592951647471109097227556097814722880551277962181284559793342162292892435273522540808894054331703681850147662801026768273620376531048653205245363520020528324999429896751816520789311079759006847521916526497367151694015098063944965631437929199822468205293339170193159770684950268813623652326005206456841884076758524820288455978020448285198672580521068935060224913810417318054592841383828453199961578584113723216300903265687843013658600416467887129894101743753924927867792197952670357770938476056597121717272909421439978771759622188769893153891211016901616695485808405375342568306025959554305120899054529005892002091412863126508153509002480310215651797335670864549850408110168859152562374889978393492376820384546005448249506524717513192815241149061932288290906780740799722434939241354939401311270451207890870938094319688140760059553940159919352266053782035039593859457277277333138954270630774309566699603520356746122990375453279729382199640897468046340762988309660358092312699442515298907622554976832865214136768507711800795559945996549902398197367458927530695412322304610853728963968129711782793964817842414751218523812096800330227568145610766640270968421969405997807837447492039108377140385600084562931772256787707227587269396092368422577521768403115459597774275424143643548365408264443773418624785345525594344516884249495490357939191317615554583569687674941093880845586659684162067877200995950040004805595337829771889110119040676380573825496638671130291416288363305281185040237453405822104663713967474654697728135504942606744409623092749794699526263267679446851789437108320180701440318139937465557644520629660619296974562264580931753828006905082852408192535431569829852566663477925216596793867558510938051608971350877789816577574283979935296730356937953388970760157746331161511314243336810802836141609789696386762270868413485683461862583236624006154485543524941994717204838002261549987088022959652533379972997360823841624029510316310293060922454748241880383484194255317518274363237184078451478341199004136888101553468871340797410397798845796566231108793904727415211938680698536138018152296990032046180100647177154670287131754878147461142116089155363300386967595892094367450476142804924417948371824709824052517911338809316048184148821964974596902977579218634277032256893345653123497326524630345073517280692989603583369323576706804044396822238126292933542401138815894117621379509285534904347792573531198630693939177378124594532320986908083133147328092213629751956571447451944119633980381787745555910066371506749474888940448251881644082719976479334340162650033431748395486488230993887973256605272763193828181834584078968748902900243941970092227116529775630828840560372473517607493282901761325375486888406678938864070014864175984208381285664999890344299013533461382545655032204873871034215427350685927994545326867544427573892264840327376136257099548739049870767094583631730148951048424679327886767272288888242370903431668607421567871252416836813555822333462708239999172356857140509772810520399953361553975935354250726010255819317687914622419711752159209358034202874044093819951314701903653184123838008218820992354226625952855564530083137653898375372208810955064838811136199179098426427178849840691290316843528061525948051671798025769708855408437802603523773106580881022672160677342736257623723248382788233384139305889694249495465820933233889614339280164489098119697385005054633563372000319437858080333883962982293042293875910924748958248283559309108345904529426336105781027009197734395998662675240868878592260845050131750368841986312830374914241512658372558712002949384534001712385108416315047144735258916682610850307861464243412189076471899338972655204376471251152209312732548373133375946056172446447083328689280168789212493594686483304765695968344009269720367955954285576668361192585332445938981642804605000560355417983596537853339748909424149734440355900035823824027459168024601262333171539670686631677598502087924240396193970828705904136301887620455475523170038251839896233913915566511554396677539299170601177480351887266617240815065868275904683605137894378957137116186667820121891547267366316469222332587029737288061536069755220873486350087641386368935563419986135104526754837156906968949716146371524449312161611059865511649454502835959355194870354251321370868593119656104246554874193441781393577100381913688246005328344746713829860560049461117455119699829836341546628039195628790506467709499544516243757505367459072713963961021307062035793127028469334188803184344510545100228592302224681695184307013896040449572150800514279741947323279196196225799642162030306618306364686786151782501366581083208923390770208633986168123894548984021680222215917320158411380321699990298062703829986420579252956511232872215392992792770666905456692135363805312397592970891658488641788095325218551033924510728819142036907842932970379348106873146085177537903598325706885220072043627695798271051765815941644097070288512108705362182010353969533142024224647386064385745389041971668971347646612026758163228799074065026911456446776058545734366492692791935135123117356578121132013851344617512156702977884832743631504550730033302271096984523845205633583384190188838067006529084850996738445119097531879899791755781805042774898899468075050599626769679380733548303536922810670316900381931555977251314076918432786254779468515273411077437273116757990399147628664387094996202593943254814388153903646542199118040675464469591515373339759275235518251045618768348409252617096349106308593473381019306763961348634814545852196902482271069600066713342483565484127243911985937703349505325082475921801390813985888009383085270600827610881873164597738522889716520770064993489826845160389801187179446663116260681261363236013813392418537720731655750789532303007998126579585741443342322095346304389499741759868436116506373929747771434934854252517242791653267369295608488394013473616714790044340014798421240243874482279424283912940824354886427986599962224671782616588484663552229754482397818647426797583320092796079107796065126756740281791936877822752381323027425849611553739425334101542753670185573366603437296721961460771463007535348599001225013493039907851968921966306331111681994877992459940410434450719051082768367174780194999083198693449998042263735885956363727975103991728998300793333131279527035322946443492703472506411695173856595171039525616795209081256502482993977401771067434350380386089628215670383327443183895966356402122800807170692169236681966693382485740805565412676320082524205176983185644371706275375670327612805600124194412395149011270899423436431346658923500892904596160736656381915671196052436683024812570086190018325539028380428881586635959947704643104051519323659200964994659914421176816350235722053131163693147240127697286196051680357211130914224790822724764707781050177076769977893882787168646735461434018456441002190302242240990438240597801058405280104014884778717200871775158138880386087050888393807331539607460391017027301590716862231790544784176503595913196501900476000228752834012334192630486112071209067473248933920634821110673980715511735181337162627496486321488342124050197029977311733543428439703214980997014094692012620486234073123669473395295405065519141467393001925012899296733681840357937019159029960743490055751191418665365720465881629624837576823794969366023823059942343195166897508341968185496649000066114314617521512059738231814584767877433026131791371153062440430570356917892660264354871396789634970016578576661436705576577339190969132578921144568947254688382026949481942202686953302107197616082942262419753144528415521977195794041620127091896090512770517424737154409379945932578530305371573573932706229115629617751638186805595868426156204798984955222917458780249544977088945770381517890459775795288566319157718566872731048153175089782701456307544490600562990013511391394060830886916797667027326140855480974049780132119461189997228490359798380478768907964503025976432547473374154401126911554631350697488940223566035547543290648745334826289920255828986546170093781447756464470971301272200097587432367813142556429346113838735054535677084824330144544154044013288530338383491985169171311614131137731554448242697716859121248224377004003968825957230956918103128407568791944642617003452797111671168872084227907530990796382672960483304066718673991145853285552522686999714633130263789661977990816664999556628670463113621346255440151476516921689379826516245879291776525516328194836871937118583815987427210106586524115192133927739659661129426755589561667207090155701273953906717256371434527065174294654485690918516152535772033247338515045980089095533717188087632885040386496642403401211458032200958408377364842868800831324477755639013437329836635853595155154823700026749699822042027319508418344044776960265054748351693144765338884350717496987778448671237585409229361760441645069872536285042359310013460109547848959763294997641569815659223639312602681579185114517080108635838281887921576047922636926641872847870502941644770152276203127088382912956224803055341366808523594371882271447747686838155077396839961996177136216543533133501416770032914583493415863346731533439008476495574988832724327419184870787615043551392189830295128089065186194361595081629889117283925312359505345592054291089126742117031253613317800335197552229779005996229464671419095380854849779787147766335747880179982055520535218475022928189801849905696038264827518298117918606448909351793820622920593440440133518351377282035300376030491919668395703261287870037533898070566516219177307216332164274835737657138688925178826608346141115165891335255473115153395992648368050329634648221213288083413083499842633861571780996353718781853277764414289506740968337528890127850412300359593690953406351701325777835782284514644329301012325913822576044960271170042382118764252205829513055418391222780209325357973490167037336227116303837037516989167978450875160484706781800248685993462755271462743289643256814242842936453182182267099736219415863301934651527978168613326154857608816254228269011191721475345270619290739972503144472698533838579656248540786641027624203604206657308333228291789867693876347384332284367581248266150968953745701829655630592549228866387724155212297884437262229578378866074590097863510693975942370952220294682270057876922056214721960859901476564447981349766834144985472247152021610530171664675920552385259901732178335297996890311306530607996265875509411893981809400336478369391808340780365426730065106995499043127081470483914895105738618219710909845404691904044531400072214475897524189597642266140447258199117957991409040420031372563059585488378098307193745103496761061502986712351686450721898645862182280113057434489195000075367380432859216507686661927485228242212856698493079229654723660493002274077981947251894584630535729208880837823919472079153019584835188186095642458460757797605716063303929793264702993215633396953779616279651869783255988175323940997921950542930791932446867604904836205090861334484022616278907634385325475967765039790822834201211702583684694423596891385052971521952104920136432428218189855632394322313963534714105077266225991585271204398065363112971706505930453741611239389966106268452880295717227150001513783864810216253309829400474517970030174931053625268017118577036617851193107159064060219366056184324202553504130585899841982018124437248580073265164827020243082694432280769771464016947867210043613035631355313496274175569137446144498466880622988690029427117144714095374043114230850564620863234334153894939549311656851219958287903702447414443644236591040830349361492005539782364554027616642897793051017435841081937478605997525720030161876509768887077239996425682153625874263992478055429807786124520780514943481405238741653896295321185789072815727015467755762823613332876192313797666612626044993503648785941216123634338975668492370478768294367005318551370663462952344011829676116695426906405772810552745636433196377855778789086860906053877587923338704124893392831686491420003973592295851483446062321554607913763185707591466359810944714856165084314796820375926005558797867236507929783126770138345190623188300791087861027220862516704616859188076239359715870269229374051309012908058574608266983837559844855613979715712139111752484135684809493738862738973384961228227445974998238904828388299189867201948810036384123529947172515253789787033323078508789324325302558427869765472464318461060416776116521277705161026240345569518451819901091485752113521179385899682066117385355008931358028850777608446535276989029854409650258316845953679229369837617535176192931180672827373944728800679564966785082681333709561380736500852174116062383990712908934248147269063509355566249706454178047701170448924231595662429420083791150688483784438071589702215855851661001850307604080016671579388369067397110554021397680089194044145539541189600543210190124461747762334621518018614711357623571304218801197885137684521984078130285600214163827289275213054294624661165329067189896781754591807739350411861931238644962076472756663745940648487334836703636385595388185519081852994586522593190674248501510232235698275094196162144342617741347051797013426915738702582374296909642453855382917785396271778876990515626757438002461620659137857692169036804436743295472872071782577967485615602615693857516007745894798999806307759300474746444658014259039940846667441098475031357428605301463685797110376763441595912877483803011198689692873072001483421901534436908004436309643606612262761576113425365121240881523520558398763924956405524655710787732931186265335103387048666719282129697731286522328925677068357427356477306133000519267621110435666915703033787383155403453907643791197592261378109082464077014351403902146987157480505135945491323882795627634466594200798942629119889401302497591555160612981086651664672208321243639997523336030946862743253850819461027800999245130566169155705689804855709607969434615468793863653470359401591308890448882802707172363559770862123748470061048850671363382230568895051127284088520803219991231430533066903120340861117949761099264722251531182424396006053861162520348786186167093617781102646723851746873890547101445407464470921094926991218584059690888132444522609561882361949376138646343984616949820369750058887029098883298195642677357681605566118126567699155706273095510181771734541614114796382525458883381031030537351716460187369002577957599303143057501803926379927072096916116503306541477567975186966058936389666799963772876766801333767996020351554839455082849116243474812136146555243879302904977819467891510528789414984305106906143092123200117078888322009740858104289753415978536819652424856139020164046471340118933709389259954205698871462446262623900082435511246677568926549621691280101175904275538432722890676993803721179456357920058478532335693859623584145667712769692581528221729911716125954711552422848156973165388109784987177438886981594782456190484809584212570852340167318152614596649951768745516948390848720846933668675642563445242487453909215808150947109686661420549641507498652213553807944688313436737948587118934003789336433297043546537596270787111265276400017709938594733394362403872969624879018860333971588734778234219316644475450953881035342528148253772015227530635355196051677440785207141472755069181093185455775661558382249644798650333678784928387913155892238498805100829745667803725191121715349421978398266250312650062914694598630739028931460106534350430787248128986235746667683093089615096044782259624504275922090323975858829261513710367177542104601264891163924497156542826309356091380300925081530276632444438630351514525516012201571549264514154464731779133992559346963694493740727417818621201822246204495904925876026367519924883855281042103773744972735376454878531630533468733141652971787166831958841187067925339827562770583837845435328807613003232925000644214857209237878780619366247053483082278166750713584149238661602964012188218642095800992809400011588637900635954953043933803148247675710668331268860833154445288212312596574992396026976450846782690997598192092173963036139160540569292143764667725761419855577662374534757611076387252466804477283838927327054938046354342700041917560611198776425267697208578982770301310523194138982146546822854018156246173399193200304246641507933341824470640168238900194860830023865272534591306356097812774484877955806281699064054933400697811397644380205631261961086618919453159480213390905262715524786281698080679992335696683427291137557253934362771093472658794964041667302621109523101495028234595043124364619147948514917750766935387441739698787612300920378166795096617209049534141073979863110699889733053452422306317327056058503871712052532804707273657731154359817106544196317072187540923663584178913679340507754613121362940054315094588872451471642287442004737610072852411484841504546008160007171922435210171605800984269526847363439809725151874343124527454506354318918852497653288224378628795322170305539569793239802356980479081345468675007208725170639397232823861143856478721355198380385853790883864898148431194879565041780009370594211342331190190405706111197003387638280118873982765319855613510077112861605390985542075193172643420008408166123419487571532138112562160078818717906471125818101039635523008314632918130646696225300077800310680155809724227956467130737231129505129442779109276680763528286639759786282063754152348785333652104790772723168220024104538998485702631531619972680228837040345048265167192145251492697813047028129061319365325359024539162615856427380556517173741484670589841290360572435190511688368561782844200386843438266953597525082857906284561737339869486314323862319713997451498202460808447859692056600867897213870507293308459404379233256253638998917732999577074199203010711018989016548773896147925725065911623476372833483835665096990919536913979400545053718408066792536759000397519424508419410679177475432189370330629342776972230067946870866633924977436151434214893123457839483528744228210006827932873352487934581397809416864097134494403290942688800173336099795736830247435610977121639121077851929653705930732508587464780609836544622104800941210289446370186286784424831417877294399024060615449543648917165397185657593467815190781790749625807457802845217944870805363771839689144725284168078791799441197180835155904126731875105173707731673880771651203764568344905415954294559393505868302384221398663017723723181056282930207583664173281338690214216492248814587729701897986598566091285383571145572141266066362813352551497714936582107068880649349010818340071309441357111723079026750876363989724473086883674487484920660800290267128113002994377623079299857324303659745078506338553787315665863746179546426992747638880036699270847738259692443290710348766020524210461651724419184545208802654728992260623588103211726217726577620069821027233277449182914107319280188957719183997360658847553826085532953908614372958066338745677684071486911200942738911010999634667171995615895392913169786762680880713745705201719080584361860691701309969350280319357400787612103815934900300865690038631198103687977121658757810490265615482857101201265959596872162017027092207645836398426282617614632982722033390445339213176309139838555426977650469775307395107739555342773824939038984843424894544095158069456260759626980504814143613548228346659865811640658412790014851394720581590462336201626793084047218180246012239230935840997649322929488081206817012939820609511077048289336044657094229391586856903158176363864466186272763238242803882355652191121823884747599107492139039577005459602453786567180655551358483203474584789545407739494854595956959236932319035981838821817246830720725469159882798914730467081230389651828296841687672568230296827099441974626408065597163929214419402171782099159676168734925463223145590597963129428288207924074553622298975130433616809102538921978848473984083086879229762481898877103627239840256653145902973728074710326759304506249263735302156012440587879947045479018447517747485831529565030254552514441566789179452783889485061287074507785476991896959912986421224241779398060659670359802545093659665737332430236621029984368021734868935825441215725175591485312623649537500979482351077594489556347737947368081903706377932134706302572558352884763769775902145345418584357316773566857008424294135131306570252863452260408293968662209548039537032331800941260953193824069796111972337340792368787883524957108702390300198981936753806028521392775075926066021647135008511806261921042183738179637362907061538374158507114566108322008884396224908699634129211955580783478001197365017116911345138881753123654862088598319675108352068182867189125584368372770601687462671130664152647605170928141984545024105245167398961028146836817320666058571033915717328853519832943440334104603592330387499335415891803281695059799597213444427288610450156449938892163210806251006532562257193944641159897094791995734378177343829887670614304595335194793804155755101099371319063084442637416664255642503311674373424468214673870746294733406958682760123858714825855527540892219974194487931794185101300362141363016543883080310594296834387344931808841502568127855523232861671376832211274139053550790028776847526931937402768446527805952168661729767455323296588383058485490011272626806592897368101624165725560165560143172109922992779775867884122101697137429859036451276266702795320525958672443914389817367409998830024015764591125190237477046244345165216905890602711062294713453537352604159705818175881927463176801726311878298166290402626081394734832175797460998209225734654463373595916086369773494257172033741267197121992839695105577041133284728909273345444619361345805238092144624394795600565059865574522168072361674600609537114666767456325093174065831262974038783394133043802733762444908466368114097706156268382790358770490619992417640262476801708337183922966582569156225422875570315692786673086676606731086178627252359416390724761536141277497655272005708767108278879638025078193619159014009192533860150308051398367872655800488385990089016423409045034355296359186440523070681830805707247395022716870359435327223942507604859313007295862173413701693324355350951686277210078416090349772874277685806861593759169425248294020606860106360473127898937488215677621990481094308109082059614085399256038026985568069600657021960134709779362958713790518223508382211697526649418680520181018910315813067802382643694416417530697581071613228041117913355345067987472508544010232462624913592131414209887713140508360378827417347731509864951641262587553511027009089116110097681070911951368371703795007674229153434695580715604636546728917428827265301204948329959197751483007018753787294925898333772529154948360969482336775764030849587568834862301247790784714828340080829286400529827205165810606149097999895995800012949878052489371914224654678997781811941815253812821275379051385950433079956886837874328258205529841970960835617061247704366423662378348175719040927086594071370643863964559014188117599227253913143796519227627712607463273986991633484564267494148882191232282973565488107911237711368321519650226655602599981757581805157682666518774421947179877690928123574226942458237736107623849947956596872435336843809837509878387319875253737780767758697876064234632519541348797352765653409527677169162598865448587527373483363822644649329990790112891431979608048678633179672297825272502865368268079450578681738316184535639129760939031447959078541810889887524071546319338642435227476838769937982403872363460810450459318024596976716127844278284434633957083149706423405714109527167908625083151163539988476008442294255292109309133362463803178301518235076125686057701922365157885470549828656387970470513875328669291791482162627730969119370213140306031261428977027354394546369297600069671119189208793594317748774487012644296384438809439855957409722474902170736789264830989611323761129050899566405007170289408606797117933133708459045760946467863622211746959209277878489383094713336237012427775990297259274958786043678019106097700162885037035438764258206192314820867678015674720672042708357046370610783044203614882470253704860786125521023384927276861491018248629177175943199654200003055852587517933502623584471726182035059009519556036278626929955176806025147428425842790455638025259623667123724012630928262006759072778727604329301591405891844063730817113313180885885357610766317036223946189707492534425330418207542178290051662194607848475674991500995203648703309724164370393721993958709701199711259963707531606427847294894181384656216673917951781135008783127937683692875572111145173350184111244473797832025836124954479592491371791668082479030030247175872005276636238427278373991826634761146737390697728568551309911695583382848635088055542726949764284959328801981017070090568455053239755588349852057616017081476115027381050498063551997897730632883458626716361552044866698584295715187587721162705036544079518623057121464712245043719502674381457476571390210377981580998939985357536647885299881184238672592283861539626995954852419021412962031484737050872641857457309989235433982446522145763618112569103234496441735551426531390734370825471915158569913333528791720604054356037554334458923873532009542738702533428714761421661443081628234917516749177809414016514709889450825157013681642952534157989891820205362341158226173758629032051586100045945403760472942360364373255223739983121678259369078279732491437760069864443481646676719623703204177587207787949356504203949973914263021569291697442054981995507291056226335132311689016537703023084794072412066943398506418820836036670770283390247390868196127393331439315315378731901777126081938954185069440511285966664179362845248199403899688414589531858340206223129970668712570566962737596857517253599199724159655798934921886082018292918559659813546417645060229196043852092318457323789573628960160904613496677768563421058287636395837532115172119954604249560729928149545160611784062374446688007452880163742642832536118733708414325470812973582211167432223102436010786527899629012262450415903832937302720021417176504381132735129886474818089232611637394485223970207021928211451121020953733274437343079654115687120987812022455400309269662087445038790309004577426825470936455052244166866254445711104488100808520722609763459056919624867530891575532390465107451768883865308485759773239745730838146815856860566279905844527468731307538912581889365640920835535831174778245383228833752238579885824426613352876761274662271194816618985259102961114734491664667093763813924085195982778959808194243989230786507302792737279915902086425580631833629113402888815890862945275975253360697543781124166764399983862388139473606882111245619886153346593516102493684894351206472368571838421477029593374570048752201975298289647497164039945350606744645017238352104219133234465082170321208201492286918083702099922945592642941315777744609596295184455505257625722546493381440519166410128368926899505276512993229028383485134008607043219766696391767719167094889238109757638480999367541235872432472155969100600199005432258929432053477594701466722540359158925200669823531966408753734998585899349056426173489274539374701800201448137342991202020811307496445415014125214308724094308992040335863523526131398961425719316762307277435561557600441535537213774475407846404675924955680510964181333993144735657740673115078432812790562770076077489951705542312457349481614305135859074461745960796515514884474110933598248912792907933044479765464155275507289457730622295441871033499824425140691071806974351601583402168729002489553961869899543247553493261558492115536867785228901300206387471688433456366277531919800650139186715337333111780356391401585947700958924130118524757615090502937513083172662829896351468531868229867815940373229303975899238140522909217749646578165000475140525748107594313062783941070970941813034410875912691855628399636415991279075947403544524465499248487232248180326874456277310470464169984077655986414995157611355373627623727218033964764134848804591844162208574835524100034311711541049546492928319576813139249018821764660270399392335199801902151142496060960765458986323278302879024063741791829688799467221636860680125397287165734263220705927522436310377050348039239866084036087911541005887831539989936193891248895155431794229099848413895438212515957599186853021159128776446039576475674817845974341915682035168756214591320076234565270600156931331903634113902120941496799201010224439182923715224509589072465392605627182259141538032197659918117482312113645799403557269816398371155087039729330412855224877699729332908709041082851113716208461925753169337075735222683462257819346856633937647910261849672180265452980771250444909717718867815394537126128532718533694237086099811243626887255455260406848084097513538734608222730682936314496355308532608158200978904074481366913714210807312985741089696341423651604633182964288216686593189349272020991365704129534593443049147421670456444360959178623824235195813367626717946664885212012963629662696380968970767576520170053039285290571826138143420818150867242248713443225103128144259577176660883867448927513848120882365358676166159900813027703433441453796107150299295123726897185712135236285491027155289316527974118384852395145357494594558556957485706286313873198061893060385193557681864859576308872153998485913672251386164224351562223853818461263799279518854499716811105321354066615725961286653730414957037076210271985357711479361816349130804195919384144421647759094892104925380447244809106366842963962305228221831361093784908243355141730256868705212874713222786423435680206474772429004339277133295188602118664277404098198967892005139993633810596096860963547211098932172249532763530125648915187561798899622858496284062801355501502588607425544093875096072841818222204514902753834322662687386065958060115382757634671280238792144193249217538552698809954539921582637576737651596516415605237011741373067341384932467138599678906966679961847122077690044625099185385873461391315503080693280847910665032187337699822704073185003355853314023998184895147441862007664914630314494913234274308259171650008209877539424929478418072540501031512576279247709655536831767630101469378743711768501511752821979970000435479190039727335045303648648082067651161159669499197559381236455101235765241589840794082998706777400950367448880671460805359822998776273545091067133362769489953167939177943391502615624970403316299179736409989225687696886278285218879603608013898655683115857531170266911547664628206582158752350149044992554222387786261638034099854185345767132001335735187633600324086805287670420301372347446507050039443251834951129471379410864477708372420406833578370343624715794174488809690087846690905113266441857864112860064175221722714774372510501850298538658467438515083448394057782238594090602028907192122347754649800575281512247867119814618499465550702006272422441870972717490529753195311377904015987141383627099539542010303636666945213798734508378610750357995066602458786970099058367695583563126260970734638521468053522748261018275416394120556325912548302248869147343205008455594058078135752374042764362779290474360174458308627272813965520772541083655447571648216026023597410649791575612489663759708471792794567196137633118026297582106565292260490103245055718966139183995310174965940668353858389601496853057240984374708659299158702091847621838735874610594461717918130716857782445413354078149367112218826692416393242454952454122021982720127860401898649672677945444603095466440907408114218561088455446004639798908930085818087219134360825706813759551474773467817137099611112094767341820992355281264923519858134167126177598850747139844489540987022787024272197588010150586227073492544803538784364246555413876826227646249430866322391841040992664074997665861590821757566493397113634008712646520072106234721336058268458282320796092249626906779852631794147039423440230091209493331186463083394136362244852111817936654089323601290273890717005806583174201596004044830013885145476561193818048453292125720235613751403967680138268832447001858768415767458813294706135843791821798006206181690118945044700332322876476837701520445686610217638741564739785227238147545841105463817671803668318842389592605888799543531722717139234719827021666704453284935630408123403468849749964374617887031715909429427128974232876586827501234332615871709125461571998248959889185691387883358728087143139522319182339997275806905411790380788209900094198582102952981382010495664250595663395346733280228204945736332852712579995621016076012749584544032373816538032804877379425515279472914427601757456374030504392070556050522912613695305076834651866535956181867092586837134680610122137001225999603298525576701406674689523216648457794570192213119159158632178480200299648767450213184465931669156241024030459563163623927481281409125879652765268420627305761557676537926648678181928888849551820699873014644218456358321590752435831684449266896119525488282258186174731798918449247743316138231939895824738436719342567600145957513049136558570629772466858176411211970735614451470252352164333280750327291999554845231011565838887067588667546702613625356022156967167447821263022772429717344997897714247842259340159880263316582735548825930143138514759798658511642822126779000096865560587767939063917649995678449384255106084324349528924385539232036848176820359229182586023958962498497108634709970189101044821565691224159188875958925343060340599064625310007008389146749794949742132922651478273755805028784636297698505923742684313547088769025338567970269960356479550075449148964249897581844195420967848369638943982623170957513837376128444764661706620696925217819593784873703699074002416798086314817791158286969924874661260824262538917750002902984268218746314914824754307419436008111524211101228463591847746167049800453737539155637441307020936689947919701702140071919452900308574210467502920431322466701434174706574456727192359093016661965075942970509888272877201603034133355097956147154803830366556489661128731502924548009075038954272569198062600321112164979409036449502030556518957941055190874117601074371930145214701991443869965103910717923515677616563713955202773174084592338187104978083400976159842124587143745837031548828601790250994415158832725986348093069978189392669199588652985744918679318533910139729651295164880303340766101590255569164971495325469958128476007451610615717281360826836971355095270904456480411884544980877206913996305148540230661670163662828305021882980274864677470552990545947883466788979483279654183957304439102096995319431163739528423826378737203141561496670517692382552375606848679385784637322238799267696993483506869287496923984109608849552196581806753727228886547122767610406224142711544835601822989947352837665965374900850881787544310596749592311746984508400673723283210194925905818106085108102998264007549854644786060754457936623062052095087310272083659091244740117539087698687205008434130998717687460206530220841172247875178335523276094660084450396522580412636476647537017100417046021983284971229688924661817491786052863106891385529083654356236970696792302568279138148494541529654391083662844442945677967048195693750615595165803715932839564477200140719782699317567253315384915806232459215760435585434041814618557357382293255217086541961692688032110401464383506484278800178979169950796909567382607588962951306944924750829836799242219568746717363279761399969396489053019850038984946635264648361678928689395314672585679849616694388540499017459377243022139234580108717585911793329032380751275433557663835386643769700251971551597326468496403762130624198355051759904362786582471336061876196341725193593197991801790708777051314298832158545137674215508419280421668473282787484987730861507425001598476091518452617015682797670839570944424398251084112908448895901420063213111982336935998158816083654356146172077356863120020248026841543580490300914470360934505112159801894935799147237799463753491946089398224415037839120979912732590293303088513216564740096069650372020438738745152279445006842725736521609654448808562645083122760708506343656465670207537301777771273986211946150452142125577113760872884165244931497100883167835067804342790039184167473663039489239773764451043368619162058660809851579245942094951295486237865944334780646022633357446995482275835936638552819740179159012726741040792528812175508596546112692938075735191683546779075446498877485905775074174630049372481381346006517834548281627752031460412935982156483719427486947192773778312443264115070085497429247646943110111409764570801863017314071835920282494596726200551390276101097147500619419573246142937200821296533138020881147962803687919238645558421448407743119026659760704241110375371185263886310031401246169041492574807056842583903369240859546408084439969941267916779581333957926160241956440070748430250691173965202934023040857340236797993815070668038707467567669828122156663438049553778410586890760596471731718994370042127293878583748284704537170514378644399691309654768437153922736347721889198120954044748220837524040172273972958020338088739426330688509058010898506264321470342869165503358467176706443588118616281837884096992225024142662198643048793476786067445946810186820752609583799573891749589689242500514180183439225122534703582945258816971655435819263940319110376677492933224233227613653689047831179722509259507602909061267747882215356281466077107548655112138193297655015116211742559188673711549849982966035518806862214966234668039280141601355357170516529188458202520107181235792917150291329156631377967452330944654541453875326097713206332747706239665973751717020088035284980716277776069889298696049938377667851484103154572179315118979210472709281031898361941072680593122247619596894535657363173068023951182943439386468328022161764224048127259549610315340817192710823065224022984805485517871476258859798900467056122557870326684812836547739236820066016808349168763108563752064129388893828556024420025333701409699198771740723222057298699771299758629563312559841064783168975420639111946263695692299868748379248131077766097854881147979775179216493965079801549733669141123388346860557821908578251563646093795462692906702919608557525666345018102107856938347461303048197371130983216682838785802604623226796521612257443175781173128606503687016094903429419355792342771936623754206935918430479211846761249294017976221174230416302898508568300139622406817912792966536097622235967848148266695577408204326777902074738737075495943712598058460452581108597786510425223472716856395297767471101776041545014168792280348260984759737746126851542541766606312297560831378936779049412284069248480290736690683412216076105296207048419031016482838764469093637632624923344637943042112116362382839664009089041661400468310250063486856725691318739701230877706867010809263412874799103204130149493935527337347226322713182571212545822961724684368584530758983304047140775802479337454929924630101884573112916835522256251097577018162065552728680147314675781602546879063660999869522610338820339732235698842272116845825323510425476669036278780166167558986689772540699127596741574755441100981360516787668455864188063264421602497230255146558580540119201013631756298952250598415356546898761050979832917423673439330013604487084630724872690892392034000014520682006929316001029697504453421132916764739589266770910610284309774850370849560789616924372626144644445581489975229169835075488711333970319698876043859518274355021666693501071981649499482609239413483222262508271348479159399548874230248297448179675732554601150852512539881191973572758265085975913824605564578991251680574654793026939121854313425675068642185614217722220495500279441800255524048120694352397409483130363379782616481309226552337176521393708114328093015104311100041937251608726745156589741122517048686339363279529192482199829916750942797848096592862197679353554296432432202818740293385857153904163760671786512665956565419457132323150817839403360499558121091599821172880373747121016704924961131586511864257820302572369008161329427301021149840421502655328570788714206785476305881995795388643099421826871044773331448070689557359861823626593192466002233897594463404357036201465068766871015040164520839457088991391322435511161366146559270088279555023645620725426807860791584545472423278141478227189966627342420989885318403596296257768251470267572016205910145170675346329188307280478159117355252107612315967620408176410295888772056477723297261040151590257753566329510495333249799590857717097387177317700177352340695553490389789100727394566000569945599963993484192321016006759790499030383386376902434139991165430445542760485596044699586395321528552061531173395843706224639955418622398369446230274007101134201425238263810586721820506078576146328702877645911613806477216175791526515637745079403732327160120485280219703125519747540052365565310276410321853768111621725691665433523770060733342991839744299269598671883757028794809510832286450018313470232650801438138174698127342545125228776849342362866593614357812582190562431949318384593672249423086892888817158455580335584539489970154586161142933152385051797790816174190376060261195024824146411053183153014978356522019633156771973278077324463512864143943929888336037151934841148188471812790940729433941321807882553755223888253236485364234025336967683648009248090753567939714700109494898082902240658916109368147421153084191970482914801808556490767269498493839267844198690664628344600196220366253138031358500473111878502573323340596139160107683741775989603639807293093160143579816770143014261213082810812951641611003867519602552291087311599273123158011071073321746784538968545225125218835975371502455937611503728331188520264137647602149593742217152603240831083046006165453313640070433624577339759062055885707953503328261384314848178926729556503814090381858168540250874624231437823341061610908317168199669466745303713026058515547012249987438828146956455686373773736131573749500444562209456114590166990332753474400497530339702305199761835660132702707632484045680547863597684107723792072700921355156919518268173250008928113759297363442480485564778545034223510815843230068415659922808545721571134537006790000675041001798075995322388887829491858709544069700565027923055409461718205846757850799115093764640553278777508904379213223640572553124000737115136166034818173421220051532613056382214959906357738240013122115863544366937438076381782925175637343400899425499891115334105775312326242211067776629489931904039985292466070526438278446766184603557001379053323707455061973393075827770806993221677904575285877333552693569335992299719859355242269455282360631884798643832519619536937166178560952945009356921219426888892237670460499289080317434883219922428216564608313980571871024381776679651820756885347451575342870278292107080699824832455681343921130243045611637865011882357478420682899412684037044830963382964770073124443409268078434572068240890018738027519757104686362636719437721808158460208494072700502198317547741485546667913706446250529003156640130590904515287844779544841848368329577904227453357610025229870334010797827221847694770746631611136052887456845372836075103842983765811569380451140480829065492101901583224386035975681764915997409951225369877650863774103417243948278942859168797991378584483983199900322443516681506004336014765532255164867144329885165653276117781341183836394198996897972564856750132668774406599649875537267654486388118910958789575538727356899859864742907476638396412684313503967265113186642477231696092717562380724192753303365337022341599739142291896113075391454684301333083539079482689585855119412700715183946593292256312653246354756842489133045636209705504800886036625474357780151077622982187152016275453830618942305240317317385840475444712450770447735818163724261212541083264234854347153352149589344782272765176830431420822569841371583713784547729894879357708278279132052345188197058804676657365509831467227624626198256296305159953878137402462914456138336210408914100781365641299314043784205239723879482378262027159812328213496536277511131046813261838065983628379979970481338633469076520939078329432408520865792603312303684818028453406061561240208433856759596178771160335974113198389836898553303399493272436434929828435971658752634593567189107901947202757441250311626806794889159634557324984783634810261963593882430609478760847925563460532047802218093360815878263589829576782858157282616450355748169622592342311114538766700296192933130230670509000150135192097519598567751818056603243805685925210707390787086520139267807709761885322581081665519151220630933064895930841383131152477145838166209810288686376559420807617953204688418721883495278867467070174503604613239882422417634375802170537598880042137422402816946937242192612696650774020737428165457187264544842176195626990036310192244349023353871735145625679953306388052658451374930317312687166897259310115075567169744862651112579772636865405124978853519591477726825507943963887048989668301214057341962590099585118902723863055207783351638223035485728408752862772772734826905343689213075890552059028976516955943506707934769278785959002752595950357019114210992878184523575022826523280150033671408354658943012443755383275269920703952935501744457314399928216377674365649516509358132065364864699169960692953490384146468381731421371778649087680372536511769682160822438725116902357942901889961455962759255112967748458469363267056250187928307157628199441146088308430655213256649356286647741143414164050141103221655075607703996041366015548350388310080198182890890167385625041907241435276007782493156975152191942483965429283790093500509552395845849991856934850683764720760428171709987978493477407632422347662261954242032944955377499885859906078984398442657066169683518872579805286577874636235239921049044070522025663118010061644330010503735433921289926278292213030175820727392346711658779382583444505731019219282440947159961033600451048161485166729982710137256128750049915779459574843219559275298575922196046418900066347493131120727289087999665494693951567785885595402829830089326227607297831146196560046618217397429571549273408887785354101410246272974586751469510619151573083884538985210396646121165735352269102121622981868853215646334390248303768611775060272936875728496553258267858413352231862600605551833291747650704481867703479564764857191709695114244530546722114900160380502920239073907680791835352940949430407109209530022822018253223189461408980910893864934264183226230502015229495491397801703839440240962044183915219348663332246426093305014012692488695770638910457854318492104670811321177403091072995299207873668343738766478786300263738024436817935242215719242608444559792853725971307533633789776684316740120440267479697856336764304756374359208852928649827950697885341777108753587242829780585322054380862386027953706140219718738609042042267014337552715680525519495210095631286743969170567345241106300111232134003425095663950014863281312007248629198722892195316977658675666766116380340500992911761415479267768138252954267874715316580444369378832407408691982529460393461715277443272941543881753031075693971003989165371386934273742958106606947923926226059306348177833432183582579725070346906105952959414869749052145012921223065407703341502438062826958249106182417921706267238274144095711772586582778142889878694963364444850112449182383263353180411343830022932193347000000605183035529270523122929320084422589192323734351484438527952703374635913241833840859100874863944175969084490244568845088337720253075538272073623448029161491853081574249008868526865008978943194859439524466467241229743839448752098880101316969457050714648958452338347230019067822890956752433326559179692215369566014311475990741625115111369952238485594449502092220822834677087231471319257082498138420259285587524629899666683689971296448015761637055581850102604161846522272848868703743275948447581362522905290815336779444274838005136709408539928962093059124974404357992755380332200375939957246603315112348491768218344390666400567164869874306608199273794121853688091292639072329668416267620860124444863928368184909714468041057992092591755839306842061511405648059563570325741239524641356956858684612693174363519074908318648908433858430296218526326257374909655068893670366541253629550062065907202546862160940020160576170949126157676923891452997451001636148982042231700868982041406385771449434712005582199273420842703958835845337869360925139442207283536464099821627634246824980999473268049595912219628761813714593036725033015072799855059474881880764071876049796309603814838839999095612062932887020490886820362895111172402899358144285177088809713638485300667388842632724586660368145593238626930970385167058610774546871697487942320882152476231542965350797297595427950916241758429145759883848039066088051481680361188841629862395198685493300619226309822946318621095877771872443295936152060816770098632799545528392235392866209138758493368468901825825939032961913529938452963765449317122089227553820617206201452682067632849450240785257606463281868457885952685932865052270451585580005179614426122991549998075772249662644475767272530745773164331636773529210602319445382239410033455206070629785367848728501160432935728037608818734144859807486271289706625084584204099222341635355344292682582645058411361425394600163481403029341034536176219161506214845777303629353267473139435741799694362425220597354309305150203384667579370112886910917640542616463483377632486021071554555098438426093499654143885997989166544196943521199605638158860701014355521165528048783529024103300500368358044948131507326166563379389865846836084639675728646417011713067038056848951689335647636993686855061319965332067530009365067222544730569137746686950869667810994435836214957750618859405834105909144100047871238836847404388279514432651288458581620183715391610328143167010104839981861226536262323457013849856810028977948509269993698991337023432831544967605351584986662562398283060764132390608771236363983188283688110544189511184748652508540679337546867720413587396842566205151386684031208510632825289888736595835059234255326539532116115241152898994746322539073430108401959141195640137236587340524168104667036491715563420506300790795896537343252300116450111379107889384156375061104109730314198570267476341216111135119812359535149612768206940046987187598252651228679306888134981085458959836808894504295011931483751623169657346436953320047453234808014255329779673990971111357653935611315421407292692022904963465831650615506136499276302834726082073769536750646349572733246665967921402170363863165373496013207694454320372270924180071413165067603473879550316130505173202606251846623186783489318868004253735028735168585059905052839212605814507570900170331553901656022259042881714807791823002610632397995005047711912002382201037788031644063375152554685313784297655766731122224659112599013894445162412107088042299180054310058117620177014876615381087134397072736840611408539104430368111983137842963164130914922032691765410230507813678157138640077429393417841410572210053595160952689091382570464710683681264945111763822043909893079400133253947664529084066593992610748224349455976415267935237088593720267778386933261280083855163966545930492949667638295574982788604631612106633544306229237765610150076356903637097753976496231224597796483956917833064316931627301223355361501613383443267006744079239117692082073383407989968689894294581680767297344382926738025290776287777695441911252982386625573529767543220388343248169620506906362931098261358364792874603915190868860881216595539950456555791527117322418764341035471725358375997653453439793524273013657358023688960102957340805399546725917208265280836029934470068738571301272941949220075640660599728208964180346748790346077522370227541303610297242767819814442944224412481687096518763315223635875773235481200666584211854093622169965065541329476815498218500088117309665348420720562614918067509256375192918168463009810282365350864082972854985086303488275154781327099899675745605677612237407380258392550238860548132203513952725025264854521401699176721615586817158217471656257352455954315589395364328913789724806330221698561626525437895237816714490714792196796929586582364842993006415033604288534212723353889028260845351399825428416383677768522837730133663652084782910255706461469582930536720434382649242417951749225347827550716366061003978102727383420805582975566038187907980269389587244814304559251985630983651122581969886750641054576983249942053627128456152020436574956808143581504662556933356088475603948453118285289554275175650745433720276685255274406062770766838798760344861809982121007616346426920636213996748132500419131211279809400094250032714634660514556775498904801486937348782056857980130808222463182441277665144680186106169323740298416261997581101949091514970709681032996914862688445288507257537541609858534405127444640451087726620447869642056773681243714634105254833708689693353078041544626821335282484872590389432756472920085333196359115569026928484596743468790368494779596169537101620680396219998985057749756667664307027935489451081137658593384652091888908412178482234927986577506439185719101006444014404176297191023532042742666381189622820850826107400062021174151883492130599434327057468791163960772797865318201718791671602081523458953755506240940653272721177050316130816861995628032404801525062088978250934626263144150876318695319468431587303947396709126147784509205377873493460070817463366982448448743052320999764636867180472370109499604493723456121836478586030229283008419858643309561313217171680993084663835405016137209717432652069617238510434469743936430094853252997410962098146131322674858418808146519933518073522517780007009179920832148020324232037997562803960748056293793048112592333787336970261284196407419956154293552153360677757173374375615906641227215104644851571409338642485287743450977813299660260600367287885253328870097868263539050214638929295845507384165544405729976676270890323777612186143747070093797166353457991729306172382210844206630748290611020002097201051926940006116269290090161285276548804581891147390807048861323073359065432692159407638210236265473883745606544887663473051891341746503867021680840973229902717562967615834946609957998226432814714095982859180722173841932366228272392748108400701792518682050043094441569894625371353806634265893314683321994005214570232541983326908381189359902067058914390056159102314729257943932926971653249964665819269382077765870607879439231718819369267372452419109849125457503483621397085867923392316601342473586941176375940740150324641246577522421978339570664456626697467511689323810093436159068193513357332401728923879148181715694938662531191030532356111596878262636624478092423089254898438434049174051651519530725695228418675149737413786086772081804968087762017235812927259954093529924781464946690776615858371377787395626304306242655754744286282701949690565753366258246417750191329163446981383993152852692764911153604682140910268637304149736517965392067713550159951663609673599437741815354417644055736772212715673292871254750042720733776853630396927670946888692484361616617791233831166106189065204842639571498822228751706773201582717992279877281353557691648840015359952473752277218898806879909818332153301714430782603014454237893451937331927815215656186656459474001176420239701724917018850443096761616522051888203471707503149733368853422173407836676442267553332137151846711068235893698540070493791523113294820437746325740969309113813112980701176853643879782708699381699463577675664218046031170046231697186325719647096904541590396060839765289360325316288295918323829064546832679133961257596624010796700157870365744340534036013325783625008040549490304924875584310598933713947206323194525930882247014728038993059660798840664644826724409971476759453104552245061323467239205319211589525097093030688843480046213582080109637881073599218088179695077675703276338974222401292877848157909258646722943438729339642670140547748542488225936296510354432339692201879517562028385430467914723045871261644365122907310371957842341055985208272027989217559164353871506046928337887698392954039496768476546566857194463556887831095091260806977512026821612725688674902814460312487887694066398441289559143066278858193836830638347833330922287667619890754402094382778274573459524138912794346834365978799524336073134962747563275074832569390411738636169695204282581143185195675730005797754735560993454363590848452119053716788814468627921602658063809671975131107694206196002288792510679602331307686435605097182943289930580280108250214486127704832876585875615200299100807830273682735017018921826202108335229548718174252421816425456766140638596160297799367160892024799199557589001117506483280426034306452079300208765428805688472037669197428905470668228216955010043358790963858361436604638939081696227151564161897581476230033213552232219649307246187280003487173716446784023825243569106722326168852177391233880307475259697056548671642811777115447910722422537382910210659111206539380320581485788292920109683822010626149977070395825805909471605430463937128525400744946064420608253923499783048971454356956954097930336330799889155407239021046197749747505890954497031022697764499610045881745837150520662811368949633157919130288963068469117849475268431102228254258686242420447126907833183105955541622254057349746869098623117208008270434173204886745609322228843535846282782033849473308727332464330656620805483934187185339718909987229891116181353386875409297248944796728077372108830326901319365206378721857631244227066384120508274204323298226013510761918155464990519299510425303059218830841335953193553287861191427014281168822788165296979740632706967317252367733065265320038355235889964012281654352682540938140408480534392305042998025389939761373653235952485504332077389662202666446743940436024590582051207567922061293213877068184079234733919928966271217778453550333337327629890751408602562328240522950838255723650964380905094698794472246270752293438840575751318715868009271039205566617048439529404529438545065153390211055285358062243917852394342762032276651639569409179940399148150682784781831341941270593266035572966350498827493506533088584242489057811716167820732480539036767702796432253674422166399118994446688898782791948552683981704414947402373921362752402502212018276483797767298222429570656730018665867113468154553073704738530074256057111306644115345011577573480821489424022318245086140914028489687376958443138541210826334833750933567195787532610889381807276409057211197009236634921435078153640586767919494480087556950172228391558074690073000743476295936621484404222941329954302392109967054760575995182244412104808956607184922854773716910653348420815689982046835236088036086249179551855941172381529667671361655970854429930863621359077070139736934580529945705239012281982032038258701706808196311298856245192909152727343921218906323852979877473620187615000584727854344546409694769654013467485506074961220998675596606146282015333725412265743983762278828374735621321586629396370980935673695785997274516351849330017754439519531986296548316742812702356183417357296602816755611075860745577295117630314577700636349623414945785401754238597681084688128831969515087778643982941101348181967584579454430830931795444348267489738008552658687336239150512908276692339743665052022866867457065660389190215302865133996089575223059123193918998515217260247669160472553366890227992454841234774982178310867723824751212000163005891861941756521771682921563345453304717496823053199457929924987485992745309016349219633435888665014718579392892427168422353032051313983815211036016333719420123673313509604550475176872221676592803048075418015968751091115948856450382604112912352101555318282740235045906727528943543965477242098476218892536546455151384526179304316605044642025714498775975424612361394096470224606124730826178551361786227962643244471983945938759734290064745010250897331649556648695926484122997607452166715687772378028235512907566992115147056163353409390838732085712875582548295829194093161318913619855510166558965322656865551464336316384216991541209904216336696638242725509242595700193260968597103945763105964792695348039843361584487332931523283879126939217361170912143016253273091957502615100352555314283846856044055066202163338925987408921978516063354083109187280052031591458017379841360445602001948461810145711496530930184513036940143888313316557945565438789483038065598233316647203729507201660571617655132061541611916991469735402911500670819461742207005053247077419379912848282406492758408456038450784235129786912080356180115768087327067438049614388527493060179500184010807669690289045666081482839704964433269384258179903724633478887802811348527631838558136016405138925837145100006843175325054563486691667745415726289506214833135019440508532534000001908119120111169260826317730682006624051107252885515919331853627216918507131059501770034637425182307676042932185902377994195826696646654560998740234472601309581239150619214290095576308278435806378365399314396178480258210850918287931514482811257180133703186486811085257650604692795917244247644574349519819558604439462075404139963778180134809664791011457721302411214773795327767647474959502809039173090949001739967296802747084282021570572780352793570835061209055007927817667571962623761144529616946801915381336475803936729927468987202650339046611794073622846829407387207553867715676907732486625693442520160411057718427862408751120864406651730973720075813648378193551922648899392763028715013096927679281762897081432418162688611256730719459413746087774851784705597605729964871316527819148482136517905513449086111196030998399128731333777255781958656461458382194056529392006808537613096231721512403020723563360535042158747279916128341924586959534835857692871165472962632938794572685286660263036459160061970026665063749688262093736094736457015793623512608672584172020971095682904767950014379386579276743109591893478076058535751175502619602307266311459498941200467672682434957058805969829246246065267451622780668691437522272834056290289872288906236181895960401220594227633032229472682311088429969385311368130357262144225861045112276597833231376560194735058990466318177461346195733794725026586591805087549119370513041630632506803925236536262904730652615475158365463082430931814067444392096685609561845627173420171588629375092458607244285887470528693783218352544502824338956735191714868975575374336748417028782791034078292350569590209523944812766076155327849254951942136616026060019236235185994881810720992255161882503646875186152947675565878119420465481825794231617012112245304980941088499485232702262704126664311057047632822661642314764959787832796775378253136487784857066194097604301079983983985213765659285859084984710225040825541545193749189427803242072180489061031141654016476886276929911099321997854377038416450978661766540546678112307223542347202469769852385127534998256124024775394143883372633275244005439580249301102840747985257360967497554510824035898231628382127902488879393171653324256546036287589024299383842782788377634135537549866235999669211530011767834883776662857294062826430885338644022784253307314207484205963389707001659437539960141749752872042947719653080557936165115281835097919550504058225615422993313129800596062010172217199799793267014169853658409752762273319315583396724667511742043968767939313969791524521137868525413280646858364338915829204689088174112545706919997313143001638042941951877851247682586670427293098880526936440778197807959905238891056565927051465597297880370516279120807938423744044780523111358463285623484735639824665559197234637535631241741579566326671151838343178752662417097623019593754962267073404605983601959023406148294419716489785565206551982949317037585075514110048342298113489820214361242399539550515046354284604327122503845517276889551873456008930135742786915886413102073905745014068958706097501126026442308920860960905353500035026951673676464108732640024636030499185724248741521915701620968255173579911657100354294547031290901208395973585969803521827172026732371510096522342571024089447767015528243801921319678640534711579198707129610965936911087629186901473599105971977460511368406236571638488479334574055047867052131469487603335648408339153152527506400385948299086191434328948722134127782445495856937062819486439891400988225035985634285706415818849119928351015142341548349636683682674047777696063249148146640124308442526851224368775855245378802882316281810276515776623611382107231744242738631305388769199322546992095950595371840414249443269206802040747533147377591403109233588740309466520002503803412073678478053808279147116199868934380343541517904983729023106404294219124478903240865912985212003120723283659467488087894620110043936297189764115528652866226471899470834165229038052015467995507343340309585415098599972685313171697037717508533637768605082484418412375018711952392901717709844478187481475941828281618433820850100412174390787691724115809754760292350118037886477037910581527091772064035817450652526076548992163376241813131906161370281941708322816123044992118878186420650871391359313949277437830192720460185770520428192811981611782485118256065912124564652547114687164643548739502906392025534562449206109098528990319415931320821090398966036575473004257547252842959932411407927046479780308943807185066381564146408737665151608598897937102131975167918370288797270388306336143577263878308008009369167425685882928573108571475401882348438249200591911703077463444293238574104622619069079876712418547428107553586569790144571355395920598070036066181298325146528669860341031960348161943007571294793660448698593676269847489788367594612528893291816727810583144698297359257278235353900568528365987627595530203873795192470001999544415485161836651709762257981955674724188068289340444690763745413327379575324033552673570913753082932821384370011755818381643017015063078278990543173888119240705425110702760056496677897776624568803630075808993597753138500823121257473840040947883982338587387673253529932172441950058428925231240667114446805372511246056414296349689988740477146310101909639107428710810592395982618886771586916617483986375879289972054114128023158917589910314131347050233929459050201700977587016043313729833767941074805083368572906388732341797897468155342662882548644359591085259702177969327581585897035099245016978571960540514508983333738884191510222472876557641014409392504867999252813528576119341860148546147005557526464199217477566106842659973091198071002532571952313671117179941440933534806747804257902472369575238425940188771999573569480487046231780590259521111965236930558632655896025769023497849275951363333208109837885144852688707328494258933845920443205564285522949621060659079118018521774457913299876529982671785516619514338862100423676376116730599653403803839583288344522061362943482320685327270393727603479177663597709711053072318867864366257250860661520445791064311294042304509444568635631605966308751883926096791513248669559543045728333232700032521936892758630413038846727673365200639748819670854985439444772158435796445597150409605618761179086609173141053079550787044603672818797778126487869007629188159085725518481940871973072396788264030276782302985983119928868614097345535657905274233180548093815172002554982264913604272095822196686222212449204806440995045570853579452530319558316213126628032655827389423277825251982341394227846626244322694824400775312180086899973388847780407496367133011402032377921722879914571261490490800972612477645093902458126982851885964137430447612954983690708873790305817623195216928524748282162669404294672661896938527713804750772988162292207594083657574982339342628181995845144940525452368498099707698015085189808012038492984916378159706046839642020665810520181094381837547765425594166227430271917282141488280307541571919322295440652935250761851156606317863945432101183272193205587870492242331007254699859362596980864877399724642279865556008881483416760167414479802590646852694825109903206999958824756601544766788888344595711580038087344719666768159554338862747537789019937450153129759797870295599039201702051536413239817112329473224079799800911163378906866645341786102147643838958203071797879158641429719088261362841936020916695616322658184498697911925280138203922715859631274671340018058083392395515677426142124848548387999730719096271539510644213472332032105424686497946598410270315317763818759624240834560494669643655166535355846557793044273691352936194902046731178076065882578830750156443933805541752568771753573235518751404535892833552464754675752586413444591963331158073737464667482780965942552802141387852538641667552449684527299413227868971358770055302960649258964851050502019133080779544212426681541257226285444328498568962733926008137166315585253658008628076585761722662870925009486924623292853255892149603491511432171032405545181845003645612519012302853445852078038368921903119349299582957468477171218946916969660683417512130632242906623972976844933915732854283392860855028283138288435671250968510458626556470485445004525061753726467560302004316669359307528955266686562254063171929531922459413407052088458187038147390081439901492047954917270801793248588011993824827902790070627433985922017730213703699144396826938203757324585407148187382233024412415609743341261704097148159287094631891017269521609842961504120920112842073759861320402457236502218443387699542867416006472373761767107955429064439364952903942456610063408210383883702437794085759287905500842920779234730560552985517423614252366611804455341615019450218983106355839989628007330528010052788995841007689779553471401947391826246003184848424464574737293809187617359065257351967809011211091430528774419682756271356298192108909678794419553529961454350741937838461191825347329368859280909583109456938119592179587806052208264509365788747430763159169477150751248466560548617647450201180901973953794110465997934774066014821767161333236256144994015377517394249457746836476115824883078567193560205632062180886826920080936996712893240718135888970930009278262213027328167174306066427271814638124321124006529491170023413490607711367764406986338324216923112105169147798499196703126153768078749321858206078964801209987183466372657497978358945156113953930753964496739369613291827071651988313786559074322563072690436105561380124621319219022092982687777894391172401700755025474987171847301151644499883437499055769189673170460963032534641701034009689357714391355699308468058172596210599968417247016485919865016566835424063482296961157687609008104957229587055750284773856236934352489840542084141096050835361622279834115614962907826446758483448943551264065937513794536984423559252639357007233701162820507161303264982866478076466321534010200558104773711102417366899265677572141194784059284919717836358686105240995222256029839246108274207739001688839417914628577920099371439959984675088706555866990881850905031483788393607333576352784655946897568873262726479563408657837228651984557298551617069290535873858944543167550427354922831385533737547547737537294120812261851610459920911949977204346015414373830079499642859781343499676047685950777970018421646301450972838695912089918766330283078165098306781811578801087783746733896519990075574539526721602367541874390668600562310280479667997954236422012925813193409743234899233096083712798806014699970421574664859810128367801021386296196734091417766665638909968956836598016482579934136137390592920358124047992639129479079323938244282774659883694682380448147250715968100301684260313967475018125088606420226638784949968515271514224224081868666918901280612413472842343434301858004962954942101854001744742065757193520566406374538021516099540449642321380122306995705445399760851735204252518931675476068608268802629855887252910599181722994413026768861343373542519121046671253654864979753908167161541835811142721885927555636725453577474627762017203765585836423174390818222364530892284427098123253542926808689381830276510561024323776005039011723106461751528598584813610282024591836971978524279945298954245647371820023154095526414700624964194191306439423416233399556877573512793662460466498498237653419982460761292345271649278722630607461365546420324574072247499845440924003050841112093533769474956496134817748621547865932593715129362195280114210277090975041879462176936606687195290484655665264318841784065831451765879835703585673199874044849010781250828804690602519032596394362698065390147728123916765217225410123298043165428633832797419605373254398534459779120055003061784193215469200835861089841318749272941329516133735051867631940534674871776035222614211014089789313083205378658214194767689289792751443951958692612497112470954463897390131554154957870572528121512928790344266077937124106123184454177111898993872301515834401999523706227098725694310103309558813221779183253476659114541270449358964439789470970161933226104589311640988939262344667001335253093195138142528317141037023800384537763869619945747345338946154535389913391873355389290866046391905666231327853900434317639968779241188080968583752567265979004134446166314415652226967869745861778043353018761450466933102328035593440621273723509470538897484672760749922716783041519901027551090088194220583443530567801570253107537930390605325816477324361634084415444140300100314602679844897485401495640506183038720134650609540648765240939971369484659705360061408017975533132890494811729016819134050249813672816596513026314662768286080661822289562083479961422795079218453507646385649212540419645286319969739980937874911658725095179324489022004150353860046321044909070935957573178639190817114576030576813044430559754153765827583989539903869844497767466618191647478119659363061486910516057804845665300900683757529711604109966722450018864878834565762253870083882043352984189091121316641946348712812697960427708160061595037200210108342950036097068650064414864988719985253848144512152367736176242091396263146725095708465286203687659695065885203438411862688998711756785250981748257886072555757866511840353102448499564849263654724261911256113028908452808999415724915981455659723729584842327091039411733191804585749806413359762886898082358237791823732315066476030690037746700932969722964071960697268871892084298874269639148641494679566066168638481340576705620070664721613512023294784404933593407976787327697092913871473275831471450496312833937418847981239188322169153147075762757468742495776681476219160548718115305503942568257814551583613921762489868695582466648365462103655529257574209142649535194668989029682836806442811817771442019115240174515272351697522883808356299957877852920514573160010196120615589640596501564168515703444479461180996757160512205095710239810573235049314076819655409674789981515702423557713332644405316854058803562915873589661297783263393361284465298587920747705768085406639751904348618775330640528254890411489011765393665437292333732175836817422857945658063909730397313012325603869933066806348979579885123253693731693396064881564007205367438325316760503866750187592068752526382466151250219133676051790294690380051474828436683843624841227271644695390769590819884582135976398169531492188321348725994451944703770396748796152229093147457790457158299656436414736645133695462500017185121908842113565592386673880859070850119685751316772941550650056069608037133450153108141172511640085021249721942524969116082233230391026829301758391611921446722798795220857801383295370704275162311476526861686315194340824737304149565726291781976310130950761199140853455777780043796366835263942097385851536938173986041102884484015258857396984634005747161161603963379728714748692950525735121078070797213822082962360940760659768512207545713607979057495436131630984812424706293570626352522860762489417623333590963517295463786000594014356723830910272723752766375480845931069505057090339545299742288652032659587704658481298487028730899383176194748151259406488951778161778156635009455975922062681640867422464309996901637977999931846776691468367859486908256955358108555473786105260791055491403992613275252318747898347836283458259076362913852076704725190503546215750192827213939524170243181033595127412951213393957121223644616716183728325614473503208828273478236085865977619078620993855969493607515352123188738700711804349645036946475223008318972130445593405440045953881363106709070886936409756109558156833514060666838854307275317172836241395336354670187130633024488451682012568879514520136126860305406328109400905598726352856157107626333132826867717333624502395838520569883890123009981863395303327269320213752600758925739669532277316819476890150277052214809163354845238888732023549883425449510090860237759410990591082433515557988698875249096163837258033421359219480381023870275745832644838082120237816397580498646711661833409101589572905778152275627036471443858424916308767696613866838750534549976619344964698372192301794851692906577531430561067649782227007060958812092319531875782482845187170348806853098077740485754542777504596859540801509999134858355650568809889806493365010765190652561393797767495941337955051943089937191882905377320999172810763837653741497824496934918887543217582476207894196004891433510560320090860274438433892833355894029807535699096205655333234270122832694712232624891448061965919420300978107447108486665989770191641364175815858037892045630367535715773282910390818049331054089342723841303815879335789671060524395279094393542824989505923979884628902182724387765849134836876869813554836090614110339124018134465346119036486607450923889215639103621742600486678043420538120621518681720757696744875430816580091127511818543059866085911842179971684312392185349684208844317771162767593582795992724110483766530321212463051726060405837064537590343424873874753802527795442953062670410731704891466926224143295912448071362468191312220300400633358370912875462513970144868563811246297901808287815139640509177219703499769416491487869675621438303310220225195701586218816588490049432265528309896282196810308955657475674776617650216498729075986202021131266797891695400135118275763160260300952820097430031900554041908330278500460352698238795201238618346047862834312456777996394048427351879532986521678263178491741303886236901158148135362789886714761372265636653590630321417958401646601201713078146842363305354796162849248430375443141916532454360525612280717794956553087273249141377719374447242834276779099567432075959873287456047830769030057324259457558166862746378781318393572895387655010818869846693398389972709855884124590642615833077762593413729209632279652882621468487538821825954372665127411839735935418971650690414673165341015065436293420405059117946249484062910316343494578232818686349618292270488183127516667428332892765545922238821432224477362323352550282720414020591807072140352343147738778355134896883526676634509671719103073347496779834570212838829575520065808611485777467501485150107307658554568206355744902755613802002426784185026713471713994438908698051586603061861768906526311170692783801502230952581911934792268662016888582658558782360773727384933609216804233871459677603742220900755588892956775932167820905936821435241888926648314964627486374830635174044528403478378923842939829143510477629641206495252502396013110063751096417727809366691658281880457061931945940542071388641977336235536813493284876169213202166396230500536442550654971783302373732267913905520652076443880114338941705542905719438252965810053382043154996196173189504023636407723069995295886309061805521567358183223046926281555326503470753591254095867787108193526146555770156561373039824618659929038862183189920296694767239001690499107142033329283142777329387527807286217006964819562914579909081995615198062184464147081559409707151843517181802183990488423708421001598947557069515566299314830545047247153693414825829473640939796502417638783843263566740109151462258323806501163444479006553092047253681713706703872968042411237129038944644163450802448900168971423844984345105415422866307061138828733980384401926522894143943273902476579474397545883039441465159827335000325733690209909323012260212346106708375482493469145125074334925276098364486737643559959921597619412839255776522492003115778783446839830725530292559934071846986391796786560740258695414955652352707311646959551355686481380330184218043568964890063098897279315074575450233362728520523881042893728135387491541215358279034293776192785882402644674134228787380438467813758344614464067112806986181415495165680759485688132959556324921944127746567615477203888724468816381881300408290120783070557635963213129251100902553812438376853093847475838462258009810455288748673267172252384187642025990289488528113284426559626341301644433145948204581416868073356612113098166492624766773982622416166400193836204036552929147379844764579907741576609097505651892565646916562620323508224171245566238145675636035960684056334831208811310389623403088506758662098808144105930772693068625519372284357914738517028844352579310515147446799557344137921808717802899065346768417702545948710678028319022130997081310588937816097426822625453833679134076273953619400153399249555319480847969231194663627931730671306370143816559411898384325899433143624318460305576983342648407339418955419572021897140542045971171704901091439250880101388789161903875344107893053121517300256484404157804402175204583704595046758933221508887477681400622846636881357915269635721771447183997757977145204397225237562785499810686682453743094928667525572893752494611554642323685409924007334661316536678293541504395745170954140570998597129885469688855252143720932693254980627128899248649432530445476824166643212675206224405742649664682589681590459973975826322841603404488403447862413181418148829246983815245047365033793169748051600426785274749529428651194529031186902603408548392480331686742348808066218066564874241625945756305814149520786358792293043504281596646680496154287208968913228116415074887023667907010677115203399740820784328563823831697133464568864436063591989889551912075148425639183949888884111709464674303308754357349002622513185516207595445216205225453458602278711643413223624982999470709797688397362445522437811583474309649962611937756849481472856337480453207463054455093810967458083143720093249495026714753990651555432102714320151233998941666240140026618632696164906106819711384547178773806237421941607128386972420444567469498631568504743796402427649654400228436102255496553067089051562749851240049290216724037722512526404099974332215677692225311370765726246624862110993973132306098820212426016340769482394315071717062411405151432780624134899009100354536920612505247568471557357325697441938446357392376280956156122026152159810534045090089297017237405198350889101865938316241769161974728072212943356322179924804392709109604200227162875109674056639243659973618894344042438478391007328180510521374693564912059399756438448278283381143915965902690156505740957636482321435866516235175688429080235849075654869347789198897186170084280035676803383396745059382431817052377015387188798695396633241133876454685313516069379547767982699742978019090019882306175927605530845901776162007677057793182054359905015041832196913141278344368695263397377057759295001106870709261935099141988481189977271365737446042002292944196324852964431680444915118899868830972735061037939570505805981940236018424188399326470201156163261049991291350921502510842099997714341332861560130106335269896587078848815487199681586298796966919789589803731398154120003976071472167493588778941990860139019711780863125341210989750420953668172944088005752150423224426421011193047412928745600218595200578394395441904433082950051526551442344961763416834006714078188129271303135023283145327840431131116991454495928566721201189513246344315500353452411358491163202767460739585276638415632005015146593614364864075308144602258659466195237776403624414734212170878689752239631046064204750818090482490778683264911421346164974366417966059329406758787313561209758544075424668760978509879970228308566543202189669870590081647548242824004452980458884475079162882286679343902487577841882563826465069482164051521405140263996225602774598253903900137779623458483997369795243529391988168999855095800636908798867994185632462278730136081137321288489232053921583433111667705218067500439809075073103873804272994521926980668095106619122846267484968357874087535007438036421599554057659114004753000772771535271220103798644790258110542219296139957205214859805645554088763005283989436126809752955982164220493383369001168907740236140339582232579513817443446971330928286665224360034405664928631567104002521032271440764380842004643158330058715180776816902903580297334241282495969293397704045935559880144652163034945699350984576089179591226451534588606616896095254815453922755983129548364130702364679975772047285317683250907462942918720076608243945825969474074655641021266129181183817342097858016196587470489618569619257523760229663082107297029771478830083502292752769790482522719593501931105393403834875013929219489647372066603989966896111147230133022881942441837263773434877704715247329400571587089664451271855495210151910522759034445679274259217075066020387809767050191040747626244620582492855475447555529180857909981557801407714579213228983529486289353381083562554834319257541058074590438087959520379993558650317703444563533374085577529353688677795077038713254452709597162149947931130958946144898786238865570317130749629013255555128357927482051649016424778662419827425062323951703150807892815988510914018513975620648650295873398672952491142701972446665311081605550376786143010372735726566466315925652413951760403570444011893126394321151451113130506814754840258639212666140338132986425685929670486645825385731652941147560173036901665794212571592062599797453603087437092409485714901575187199499411790834600510748552857222543267687803747554249470299619678367478621108488812862952001801656692119420050301092577890295089331049629900282243551378268677585150072222806448894582975547676033810970791863880357916440145054403953979839125040044300740005819325350698818608099019053517274639082523604176619623610218934047208845035535534259029216263339732672130023233801861152373150043664256218494301785977719313950122246672868000266359791866658493849312561610985887768014779863799331514463909761592209841193032085669833387021562351488250923522067733941649362702449366582870344415337907500452511674363526541341117135008792144465507229913217067989251218071774886065449189182833767439883987615411567800043520413055460088705877770422686346842456639494305567059443783347313749255247625043757197074511031063472040011064447644645686997028374041001276333241707566748082426643193686316392065069773292202107976113907045732359815687312661093479680729118612166674041792189834227243371525512084511589416566747842599252319989589476678491557748172509720705894862635029279632301302550914502805767382671325929662448247919290056428684410453003145868911278396976437717474530669081162099665457698498696707147207094979732653455258499255983267260587334974069758825495671571658470785887924156959472688489459775541404958338340818408492752603983052248287459883244816232924389099142343434662991809019342927743090138131312485142404600085385188997841393418523880651675464107435633036466675247238562160225137159612668174583387179098659170488993081906677162828640833799021528537083716938168590661532761641045999313716668950203129251702533562632117998787310029774632205280215006806815409490537960154687266283167454651241192603171199857673183255544750775344948801788528748832431461248371506200200923390830397130520262449472287221676336682347405008714105246401776617877037571897211798711336093420354603085804412734484578118599159192741215115284925214758425130726218667979894067424593706726571588601719725530312833942209960894135116756858655571009822799510099623178345003602996141580681937503159425564691913555211075135030399304787839993934981166972914323654652416510106748341217018925810618939204800303337598052618516975033169386613857950737113708538560164721390115665792470177089049726383651985614797840008166749255252108212171659418961702064352662045293747825678355331417709198689683650078249544497930793694331190491430082619850291440193677071877114878385995478902895233465210382635940169904965982968199516672996931914689256663647767423917487533383980042140878471123707162260430565317986692009065546150394334012961544640514642079886220830668152037594515014755675948234449111607954684049362767934380487722032734519604999572713019023491086985063591082200782448747078339446048655928087937237139527052415566690758164095726633669944167813643394039228699953972442742924890934231055961050779160609834489102488573229761783836893319404171833629915716529909480198050729977375014081919163628003085165817770378712138915308196953686412159988073200252014193923860611051216230827788335509121223068067500622056850147194929723686340162494655721584832613720303344870593032050449684956800232882948192704110116067551588336443892220764215355447328570529810142201004869606135328454431054822002247976540943109602581889862508926482191552622147031999939098811611738633646822569250508283437613122534031012775304551594910247530041642649431025176522517288564026886417240218250274716095697359599820466002355227262095248784956756815545005638322865824818059294032974352492011315426145558912786648023834520032521314290653442584683689573834989839958127370141344114986599602508037026756916405713793082520038155753340572602365015102367418562361652075850993050378325059813225626234282456476312743317531826057445212366264200549105435589249637045451114207524380981237028202393414686017339639591368562847719427308062196151098534205621403477404951356022811188524609084766003155810486095780184456994119604391037334411751828624568495577867944117297172994570053695218069832525982455120582277507102418243554878252976268414179170094492850954206933479643028103516071505576481599880574606357689693987916408456792545111676530146056714017553858918085930810782338262945850911704495410321082764415044331489812532406117414388391054739747781449361474943410539009749192805873404701746648836972057870141492107426152376065875985340910507843297240595683239114013542285463799668781371672043297921804060688591160412425559589576879715459989159823524936022964189287886334307507144646311390089835368139853221754128926468706136278314186189171353317318459045373882246224442806642749141688682205251472921831061022785489356379660339692325476676152411574372870788192835928010724483035526455455790145653750154441855763348124441172597128725926615198128624460972027623326086314868426166692876093353662187585135267517370826413163472702672022339309361506622776693042108380717302157199377701073884938761937305294810796037340819733056824711532519510006357979371012939753870635026793044657206986713494101033828126555083331970634350271888790833637604300714160726282215353680615096013640349765596541797500911582459953876843515972774705145583231663235864521902453455174744436747196317982156006567710358467454425711571044172297388586656557075342474832214673182176076452190859693196906577315304015937118177861920130989855661179785514182087395938560652499460993919624535397520490543575788088984315283644272047665833726054128572100510407051103721697844451364005905497672318317760519234843731915324701553005951539978931012304656544206427620627392963711725907204433770158863543124888192321474681786453605136516418304512693627249318452740061190476032255167773707758794746913743701855731788098450547903307042592710305023353156368393822546661578936224816524014136928188505008105083468823231078079477660415836316087387698194260923644684980385697433841637865505672561794743302330463124844256481901673514344792897266903472415929201960807447802993700953252527201150227228024873413385604196515323538031905892333270962112971395992276121435436104397564256549327485425159229361284150304656121109358588199758970609017763728405073630806510253731884553645666447458160032237605179826113391293321993102390466423409940977279989065337489252971407199418231946983441655074656588705133069062168286624702168805999036690946014323825930875997303330500090140780207888242045544670971689625813707315980399252421364147316656360257957738423098932776557916325072333940813167227027041793514528073936443219802023910475281999101326349412433895423414162613131405311713037080616093556729546174395782024236915002606737787402125716837813339753559772999306705905364435572597667681652535511919753224514200657673361101450972457662964739803079937093223310763033940170810222333157123619290286483874964658743007437179477558129093116043536196211266761608235347351313442110265777048067993139523600001937078696730908491228912173721456232411147005417931137255219438665901102474543172953484939426774837653536351055259248863278654445722847118810884850807907907167234552236007252194198238872357563403628481311807724589781767349037463957799716155805199627156099104900407277835183923976659818071860570595797008868401781188991891433520930451391142549900954512324603753404642359253761804461713133666685650062742442759489659807215161161240292791151940898537114481155349594387161862937062106296526602716900147450424128647891795794799971166495329753738332778293773736088735913295886138176540975941655004008455695992136245973192927504768220992859665431570745094771551016379632637306877204719549231822934598103626999166650093512172920225858093861075138118964419724181580881623567167775569744958891853531245092888799928902088305585593446011358036593434054571605947016574734823821166916670857811999950091526699922260167426525773448781756091790639811870615290710079783154306719659644430677570894111591472430217034120232505715751739373130061326360977822104597053491898408954681470792027366862473589122902194044573826742595236133646145682598536762711111841125017889778179461980777415573968461072084926229854796532012736756569231733896380944838090071092071044991594803841805122674033127067161614101911489655559524181633460740796132910529720246971137598623111156863499399175122059979153503841923316301284323719318257170455783507165105610983732057466696969267270642794896059954098386564061615676954081551128064519754423070692851876119982458171406460751562295700395766531422744979537941045750145989138451479765556470971853527890078811210922420598284472341728700476525860386298053999169803623399479197098583931304523066159002248290415395900570980596059380600813431345692331310983082979981572341620166800907005707071355834907664161701681666901192579496257946724508104969053452559719602197623091622143676235363683331345443880947587492344302186288697513542687135028597805992979569243521792973506877687680812289931392956740772325370205013182975245147828370127057567381682903856872617889698407534996983397640796320208377112853628641016878520826967063032885609363378207374385494466675280306168564761989215447621648205140535699608424327111612665469188285146589966756518360488081663402232033575513707833315134119412412434721599957032022710690266019166483693918496454209946228664160448553537497836350790699768250465419031568951439380997876498348622161493618165081321876295759742456236368503139619300162049465900511536990554584885662596451973025636353046663541016769509724627181418580858679172579754406535053473033629486551147510157867999713366490626094232308178737454285021788090151763589340031826437867726941813745654712547541961755761703009287005725556402922648684014588491854172921809574210174362968759546520492082444806674210615389081452060327590814599650505810097001841119125903491953322782714272188918002103660905333575904153012823363239454607170582804931826329988065795907909021603209069715316968710762142579541566352282969172349567083712978677306685691601607314629077413867771760826468563712504465002831599308412261799399356646206913658311689597217979934242625276598620411851079759734896893569701179056210510684636067773995901006256325017678115705009800652679239552959733694269520248907741302243905378634154152947459389650255494233273959279141336949410244869652531142777109225018290320502257352181238179010439854834934141040644663910218850000887590189655984048481262763524948302451262216304526861847131697296665545663173087852439660710393199181213355484899881331495206131806350574291112829728070805835436003836252916097686394663140915471902278590731176137803905993805719412916551779357468688675419151911700493816118145595401862255588638669782434832887489401719257108284157299072049607741445379534727487025152963789792012262991665660410054338529031354553314504620478072308774415808511003031985752665173764610161451478115136257251275242692367496405518028111842450709981192056036045155821462425497648097046682183757804544522887195771800125270150424983256067634504130724030400062102249742549885676446728139035030165147704699022233205727981899252259156075129684468747137031720526872640229682704408630444027485804014658860164167135382978515814604818383872096773897881864312413729254460634504740829515340483255706292360237446175454840071687253556074158431994083340176002107324105585364076819241721824490600986874754292679151249268359570140626380013048810734705823156591785435264802071473866255402248881953186993332378259122799283604030763008850354533760999615806635798429055868708183341420210039771157803776050606533579907756451510958942947948553855915067985130359250517724365378891389425484595976703493974576971261510970857951128096434376266253796826326914608147795938558364742236924537725128479933914694515802836711059252105145571174329026116992702507063386211662847485585740683759279150483627228455366042289885352476299981847197971936721285627384289529062562714523163758954141333286217329352754140556685849592899777987570187985014930197354773953988332950944900167458463090170083013158755941417496546911297281207284553332291468139986861640447452385972236821032297140606990405674930616885185868563669297091664024071405009499694708189484287152114618929432301527793212057196803838928431054631269799191747557179997376844544331712827108183992315811402477725831887193886366277345000341152221228638333979488596616266515074479931581343147702177832110144424513972345816910173968338414015316703035342737200248814464599738934329168527228852219230872629636804588325248656629499888478140184811083616021890297487567559489888569765091093468636396501204231577382778492307013680818801192864150281912077153469659795873874830047928514990852464913165453015715711382505883539993483489664198888346873104395872376442998519422017914149547024362146353271911462068541030293073110486976624609935911594397703626107611241366289794290371241802455798952653333649849152165774743463633054866398689689081543612586452312926968683162137428288056331659346715559208504238203122891103464884990832526297457200024618593670339537218651750337992127773216013394354401444102904226434347969203280534781605410630543496973156296036314725920966427137654548332074639076176258045841247420032300121801485141178917668235011696899978738853463724969378177077441675547601696338159045419036740372786193698623122886256037131310301033234331939042721122861665493929211634732608834787052323597843497058474864790307623701269674804070119157367020760245499429702043699407848157676225779427969860849791774918558550132774115733241557650826803689404569739976955170738700484530197817773485556282808892390276477252630301644680099148191364954240561918108911025381100858678247029170036765384815219940312162428829294211955492045137454959972170516843434517797550738617235046086790648031367176745066961624254272033815116559812788568061476819203328208260416011604418731520494770294071616679279355613255049363655749459334182238209914174576755212731786222485510346932547073429049585934533261339501437103485273869607157735911550082399215038850926999802993471908196429116322041148680088661199344004521096419203173801744112380714460772636196521265741553692453335221656894746978353491212989875352073851652491094949491527174950587055061879456584030856690161929802697054061564377182762104165156559888227366723794794301642599064157258365245915924478714689121321224220932041431680197166271115728305165594151994821660544247420824105240055898339140754508431354416832853803103108153230067474078990788130406009466078448740021592637405443841339960676624808565744353473038899882281681145377131439100376567824911972237086406206240859897169307826314529119391113660352426044782830857074504227783591122365818802393858680565893692590816595993801920798901522077150326624744834732811781850345111826143241857717745960311717770190432217742509789581017604206553814017564662406177848345127526313528655104778922624068052205969181907886787869883203113353661300600749989231453223439041600245330036378782545667151555185704070339990145953188609903250363275241913575311388959354326921294658590761184415769589617901118045473702199796028517963576647384274248468954018302873175379291598218743973434616800602019802553057516498960208461941432682759205999917600699888048474301349066529391139718982972577228796469831118645977702874528261526287135083712917652528696104565408436725236933210152971398306587788306014185220928305131876481284922075844642437900965746588341962696146442680594837050615882436644396343875922534820154198910361921163674605018693134596797109459145217084680415310430647528723080106885831580289764825196572707646557858371861930502712759417054356685437583790047731972648405648398978107917226627614485560222445594366259898474173943487369161432489043928934345756913530394407646676018316512416611136677595321556551695356460503697584941519075565668254315413707070221234115334748424978352536491368760688590924115250113106482919363976611111866235817171557276707000670161073626149312254522481476716675865422940240719878572437764820147997722552810453678327454436150547296490279135582115037970857038116164527484503280515295449850195764190038212162529445348455524895156890826291695210675594488518911680280195518412207394615657359155460423538836950355543601805791923214561265818914990846489505535255579105249326317883223685814676586161449719293249981783273678106979604320673367482545227386832827770137095895052566831696411066423678065992366978116753474119945082305231191883052307263699424601574527811346858058538965940439437967207003675896384213860486579900663846350921216194973310511232372891484609102773541444075596632166825054388875089149010642776603105557532354885061401406303421586764997782729646880350282590943723915712382850972570571099426020470763781315138778422906427792329589664589019991797207647141021930279198002830714633817080602940272610901629821483221979924656301571023271470047512932957120562654269162702948544172303932861927838682956466347842342891284156811108118121698181385978933001578431372957913467625996485640461132145040119020206062167863145561743594018203040256234105755063836196571257740525279577251571974095296677506075271799287748142619058392968234310112543813835769622959835177230259997060733866219555284103681706708871219475334885748528637535864489065157539016609683193502670388789630212695457783736786929152213383785001530808862991696964567717440151460836289865191052061562179694970241310296205061477248925305293759709459412324716400881893409760819209966491835277346369526991639020211944448523154763946382308410091353344469262348312039739186446352253515456967958021505959426869369561761094771252293131408343983237082614469690065762997316292380089622117980499181738867992521676272145861927773735999416112618658746928153025730147732493643688439257788943055882629977218375805900753139258995958194833321951844711374778598004210376681171850336198049352080717797102409155372689419074293909452142623851950949702844650394243751363665590136529581755463812742307259948793824212001617352889991617581189406505066518632026598189537363197220545888862773699177890323160258259312116284537977750922100400615982764004314270440893846632400725461582151669996856855301217990065690337845695900767696769179881917070582063622470933231713886838471019252943691010179723865640581447019212198915280440430292791619563018655881864274912955353713577734930419146267686289217996762419264664497577124146886523189028052048936307310688267250981985784778022802303314579201605509648375936795969923582993518912411515200695098867445517986964978564038154995627257463379733436422796079721807552286477662772477196898144128102031702726733401752081172121006338031976241383538493738262994737568142205417142590683106156413522325032060296679965361501757364402958388390647265774832534598032728925981755545963871032509174773504607968081277634551226605260579282744526828110461220915802533624415375448952295815302164510601433459315950256769819189458160915856945426360132315501674180374182810545733453257505415859572645709747766386051079477212674974493017036331754622654220080988395920771324342896178622726566878110744897198278109789937094735559052523764553351890522558025023995354495568847782981750118199951495681074463212458758053066526515855847522483876247350621336696804274357190964538035930484347527647109659355085882839209895866835402316941794940631410839029076680889567007338203741999815042900928756269208000104094931194996588813314195997613692679142476965930791382517504850473575767247019716235084809479336667548280266359698897017196481989851492951757759894443510672139897133957341408450546084673732988596688085727276947476642020766516626869768400010806496808307692417798553619159924970191521856951461964188059975108252055183427362687611887592485771929943470678796914712931288493457229629393881172978641991601345450561307481153611658429768045325173484675778880575082639355000980594611552084172006751421717512225368735425559676604690068215925936653499807456145893617220050490032314959161160507760521850877202245550656688904905727731264626792468755806906889454664944811198110844611090463019184698186264657079889422632183375218990424712536666594324971076855280506099502080708089520313163978829177089077236440701615981287035801933099273022827266761006248526179165669041105858615420040884393278171624712685208764673347610670714256753969308381282288427061377721449776333836177179856034786313806736649778159428274493753802546582591646905357114359735914415001239396767405068665347499419268316447318761753106051208313537236727381448803194147242634005780009845828454327441650829048908215404707230913440926450816893903451102530760747695246532976528410830038184752452501057826219983674144378084488943171681619463927392878261761366552109489333963576423290094659644857510879412404871402759164046428691968350621502589407056236852017720377607178244511068947840383616362887283777931720433289782848310815698920111661631998119161819908134842188640128585997163114193603349743548309351542674279085295125008135372111679864230573978083694128206654534896032909608352797825751237424004838081918573197987804971084586722740197312684417927794628101360934751615231543200489511795422265675759136877031234394276047518633583620977526981124366848595945513810675864243546406162027555442103225870087775991751458910548691714713869230667343018245408392201418334830418663111516801888766230849366901201332134461795779404792253979976586905794021841200301981798502997869406746254997357163652978582057836065545490892288575918205353688344560625718063356198098950446401339609574553491463282802484213819100209792572131698916467244253056008419576024190535023208613293414314110914869497018755372875977742911353989976851154242873682709648817688227989980690140557325504188733765948272432323747815712582453456720207632165130278074805489251288586820541147857768329346603524491252669639486004645975896946723846268818868734579389051198483558818136420274389154319254235126710296849649642351148986388335793541823895699568617557346986572934595896373355407726370766284208357843417430282233833296955586745584984279192370942034847707082246064584775112998955520711242185294341863574092901394034034929190646889808262195447398656330554077221388168246637850261259162703019852071847723085001284216531631851743420996040808331629500276743878876741988004848373496611442198611858803589395944964937809857983121399669354768658049526762457848037686958984662591029342115615053896765970924653013762880009063294152200251084668482920167673252657774612351494083101655097137834747534064023800756809000862816726913413224296383299066701958697019861746554553652074157761878197272823352044620752830271470567703343654134568051151983998684013696710403083463767380039373200619465674231203297743833813009645142561113556132560242688513784815022638531806260902844893066673328413043136885942320265671868234783880390004129123443081108496182815769598359981872250832716815021086732110991933091949959179557365535501544851982688039481286570583503220765381420670550088783646044576160698128266894831568720124516998727523965586661294112917021812519681500322801935131954396559900690906846344379040160180967138535320229063975700415611382852820464725150963652462368375970727464256035782562163760553006038056475546155051294290279567303614391842825498350777912638922395139926617679014082395962072798334121502644619014331974910158716934066361074544757927163098993142659574339492413215262785041780544701510446512111358284034101690444101320380189138468667325236301883738460201866013141956361484773843076507368469587786541885255967225091534508857251918064780363494561969199666348695607421706609084588887809123952320631209256823382179833069716677690612307818145668099995630093560915602137685481007370284989860698831195527589100605539825077331406767556274157486081983960300512564481289685671037807576848785680561939381770128527456044525573316215753815186222611374935809032341078317749948859990718129292329549846198275574360461433792286541650299454542822164853450390136965073140017091804803587739899518728115261565930798583352118979523390357370187540369013105594983789356465573172003764404924220997744749580247516507683466389290481774792025903735493300449070238051787669084155466187535621473310812362708818298571111295771768343697158507205562476761150603930804804299159008892521442536138233145865582788450228965821771435762395683585730729098038343965580874139815335044177960669964870808911538402304154719731558176947651276000178351741920388520133580965118907423053632805427773622959531260332860707759697043451949127291934713977339971827835506691030888085199137708547751595562799038962372136855774162379352916366836456163769959535744747028581464803070845456567632289566143564398250185697348939982986984906838206792728742081766416712367023247151842449754591248472173797010974855062496004637033873610210746880916946561673167823682854142611574959226420970861375893150321377918542202263779474593899809660436846434948990883375838276168726521633880037846249008200895942384072835535058613110253253331815061578580952827818074333253488297259701843422964793993858693191457393926369281738212332460724856807715367486621573129776861853825116776562155817893574518819785382695111316399842741318841405777580051034696214677551114075943669432741510398302716019334373720710773232330710487316920463599079263135835680592866699444631174282038769687290513428364496014019161408449100834286756327519856369770614804273776742925681193933121479408278046111326311413143004364559773314944193976527953247871751593522701556179368023416982046368339953236135895046737710857859982615973142517356943059440758153562886880217619309868169472162828062895009726362109804645792031290240068579798579267707348786596662217379228163110367842551361740987673716205111349960680847168790767152932137848492529057719759656627357573235261967712654698031978148398228756119585164840445178921755060954797487309069868673611494508932579533121405699939466574924435999176611231627252832426149568056268849886289948097705989093231982901108703147591530381456304491168627017069293764725084324430414710182591497886353778007202398415069541719522365652678982035704576791364026333503386467808081927154765485230786218890395981979391438647043794041124831132078098105814175930496391832527972045436994512928731431477931695245363423814319770483125924433529922709522723761056965494331757303101284441543175153316401534836945858698162340424348855557140333492061474759970512972011762167767984276137300336575961195614724221632525315116556523800212295663354387707421981266952540950706609593845625385933526794213575506180132478983414177122884372611493896301782342020577962923155624447160226354274754449238312852585872246526865504558229770628161831776486163696613289749926660602311912037221317610464853673629361753875033085076083121882067093852186729264722509783228862375792948287425885317809077478800326465959168937890603630755187130644272939362101681933265521805337355282486205727179682949608668333925250116447348582256208991130438148631787812404985201183907602716098265620756183672904070716381234142208760732033575663483062803562896324255321254758468229567140730907427050976451889172791278745169962919659275184047979865393285049175196344923042708227576713393305137282696586506499277601817213968654180757765739608475321580733213913869976668209540836999432911688173759970509081660538341280647427475074207634767802375094412216865157959605270084567903950944595045951336473817124578628560682044002211946878412669751883361064827011311327963183767779924541941228730842135574385176313731841070936654096020233555102087265748278540523256466208206506695369885282587858176354783189695667937331632868043860848599293796761604506829604834092981718807454989901384571670608016215240236811899008534082215513571973422208548523211539934793842878281977640912546136816692182642618500322279194378286530191084297914514348390034215641127477679859195359200408390924377206436201104008832330995219789523123566059146320790733764767341697485531243495550197642033115457066301268747580190853000510387960675926098621316463960407065847092920267045326975180215972896335661061906287568416724436470500592041445961146136728080161638151503430395874455420015538842712771879707164928976337025723356763387933734820480130381788346704106190948055124599857261000835995398835798744812063390033373874579726345976127041961780964132368830982556547842666796086774179524871858917871315293911082414378937368278521378092080413316803417130724142220260385434435722175407416265523808156168587631751311952988042799010185937598825791966829183297495806758620638075975713758495816298621682267647183631856970336301412182488177082849617953856929129404812413046046913633015886241343876616600737775337956669833587397308781107520507133198369319853945285232306241944243303022795487327855233458626652736714197069851525574646226382911917549271239733624475444690437894770395368339209524603863440706632790334677621972386487872961302748587549652283500202321000369912359674551516190262321045932113089460504180241586698668816557586219506552192999710442340437215711238191585174422030681641095238600735882381680347623373562300453465288023917689712250986961685912494218769027564676869004216444240190000370363675498695760788938635468089959919802171164411490381657861288109467897753582694327637130476866279040692325431299791244407128407474666498490073280754508461650374144328247642591437382887696448645263231708262925748301717683879874795868300091052257349052122725689854779098392399978138546290796361314283724790454692099822988632873308407804928359509860873716219033088999528474640565326157734121461858173489695116760482343350501742031734535366101549547607471046324591311734224480100804704477169330019695187123135489655466130204334964912259708230209729340740374523973153961560760682020367510743304282266755044343558968804838020302057363285823824460880535375415710004816736349079874199914243081511616928253682333511912702873510471658145007972938796857474344780785664120934437764470148820697444516960409730466728629313685921042471530694850385832723754430108757450888258128752025280925018381192321082117212389024938761539661874991854416595399491776526573187781283843660973095272668133276388824978136875918454685228885174366669624750036106152140402470609040782181188134817806445618865318989589537342920685778165477174797906030569287924566366401546647137951840928877205216977109727124552780853303114977244600215717331070717465444396794302870394544267905299003394180289697594884006239541247018358568241533343394145645505861141944768883265776033997676863978031330830541925499047502912700354894114697441236190404228828649136132552277282185286116242901209231149845709706480470936559701825535824504524695794999146472997270613580425932966915259176632361609445889092656049321080861995719212264319358231602951653788646682222601669651167798876650852383270553950680114646869143364824427479649142181027773413894362871425326840278011577329318017444862933957035918364734793216118080222555070903039877267252468413159819381714498016081411349269657341142745892042518982973492188614775099160437424279377212267666143845433810750835102569308946778389958966161070297390348600673650322575923513959436586764982997227712390324674031298609944816673411252925120803516364219372344980098889231216350545740400950836177098861537315287065951239030242327816050803396078786341012663897576220098245716859649072245787712885303769138964667034977498103170897773977452900091173820328832470480032463124797976262408271246446342947642903345220959457048979419979112611934367524679390654788937780392739016363998955319383630480146214183910951868067682010136296115182445513646125506401968461360838491699401574758158164425204213194299421409451850885353846572341526759563971085709219279086933424128196695976403582281319551298973068101844587659033936564008424171805116270225638541965737103739479542146419123057647833033407168076341497576301365155482765670324431387861475168595194501770326693120556120888119088580654996458421442781674261723903653390810864816543684622975732185787840384416517352152293093727210111351364699160970195190704106989045269909725055224814403130323846355621226733582204520462373215258329972125658268634131909030741815424572610691229860587511103286235857638503117188599811949830779699501657832467762184931744044606062191130867700352521373891089042298870457116112405942509947570843669407448418540382592552538394792830933617541061683467251761936095261808615843240657985482006370944283794362839451005331266199342875877680605814725731967290707680133844955078333483620841799708380985346075709268144770977734950588203660392392812140680272046453178959445108619586255378865903623496035857472682018010181724124970442597469617164913124928910400741631082537325956888254165510395311718097245683550021073595112947182034175607753359073327065189942544376112542867450034252697859072921315022786735275493570830727175363247146384859409031309406121644892405416088497298250570122972849644213419405567345143622954362434384868551032691718663584954274555056259108087184649018256222174360085491465287519781111203834174586212048544601187233099928714676611356091379184876750044003960314805388572450410077478128168218401979545897966232912934251772170332495479558302064038689326099691451689399970138442919416129329414991497477578312152262010288743313130463817260534277695321569244320434856352553341884442774198309961357375782052692537253595280657334945059314352660020737228150645523549736849635840173460091414254947729778121646627430225425644468074368188443444441973171235567380005190989024097221414844833071137493674198767710009011031857941877617971235144071277844480366201459228315108325587273008159203387302438059121534849318738652205625071305781935824550504444125841302527172109592688431866635759851011968298655940874635891408558220689385832328919504556619671789310604306348436093197585232772141076284923393552784373768564226309748826069554243302314694821349764749384374224988729735907153881007816783392726639465397219617685145011319377644225318324055563308919354535410364523513131582507084345478096925773822143823395643394517132324939027213709610879577923250060870948626409881765955217857819648812767177274411687606304502054983494013364268598998501806001118245595639576567831222579432603418392268679862427252414733675998227417300800941945211877153991643764474093552623861446024598878226931232253361845556754867123160918645288670994647764455949849334523216818469303145806393374998902643877856550815431764736403467915076428244814466684025182894625958445898986758571098731003645115802958282341821967182771211474468767864208171783288524643968724086015625583250399617854920094691235395190355940409910942219297559651423635871297483050246104810143581922312144925353451345492991952216509649275060769392787748553505676499865212192635985825838281733295209972759591738101865400304593020012719140272617025505577091070613794694709190836751143355523224316266079891723703511359056022978865818279428527166423878033451046304389018725351620715932220054565344637806146263051231441377544715995016313630913105848443764002149666215612282944600442982472013123469131143928931598197733159615344216834362509860171311991641734243172760117562026235271734550400861056444236251566699228216687891998258129129921850771749946410447465107829834742653075351401269744339992159789458980310078852092567774608355862258877295876018656790792487326088998419094827681273838711632285010888231553273755972400339930463658533462470383828316164605106120250927357507978808780287353968610804090367146530954233408787843820497258029715622365995306764646643625182463355753872618616194830083304331350026581989594922230604394587985372941439458276754329766341011137967981952562895624007342391602432400455181016576299168180875136516112461711701237433295935379946318412230446520069698954744204738938701439089384295309728458813116020510416011289058350916913116512354889532850027492598393252831250268300825714313263481568136661551428177695297704376645096699054428501713063830127036649384200279154007826462377347638018536772311464336188689486583710113577146432641628704312743649389710784088501460221961242308511921985317072201813955243126260056978434727014455885879182153998062140409165137885867124124818976331393635593600138984425527418263793207239558417690237828388411841474620505957267153727437434124808300069565967832825148290271242703254910161974095225270338546024284285437527067300081717129142157776369888945893958906503737764388485896186572185395794803018227758045419404600884916486428394005874479182615338141144238991354476267639345339962908872532822006482880708437881330890925857604475264033349210877557807401899151725104210115686675304561912598666952392566756613351768867163654068556965255430277216090332863219411649257336036733584234176709499882037580478886876383170781436225290210200351272999748153860027604605728671172540729924824623978853594137806554830514030464647639770358823894024427356915079611687250733136139213737927676251339693311929239936685976224019464581059488118749122890451897976968976875436205856047574723944180136502314133434804945844709185771086342008125967202083692007299948380551389101429165093954364108506371976569292026637580208057447363760407579430671519233947433684027829891329853673767383055486083543169159882214165157349442592195493826102791542774102311198298581821407853782218809233137265179688887973764755581926130424782567833413148640428734032111985424622774455690229569743824556081578270013665867849592680859594143953355235774866992801902880995258611504658197448437672600374644935306747710078271540571310813974457603771485373739640005046080157647484462956750934708014223193375458577326365226555578618119241693403749775744807667023826301320124730679714928745740582572752776895510679905965728531299308884177711562769185173553427054354141294587963837563214408860039479829555974263124775501998858535005711272316042416101984525973112448683038961770154244018141620380166365813810010414881804824482697103936118291023940556968281064413096972340576388468892358278558020366647969742169433374234963278096700332521545678117847643851487263636429500836520203137135235604355612685510814095742942249393169419184364236858394703244265921723927651948725049643440121040293709834998789026302844032038428033304806040709276620359152217738826676934685045888381511545180016204215592767143274607123262173608746769510914778935964052458091926153693201421475649199391766123796480072715257381544389947562273449402005332763723776144514864099783432399146489732211972942974110494379601549577429421489593253744177000734697256004493820420228222304402512753546963784869163369800037679149435765303412445550947561236047645065826250167043816102171859898203523315098426335165878360843887037630929371465441162495473508240735670104984889832055243516317370334782888619111809884750503038230372732384324688284544289370866341787492537557160757048791032987905583082551792765503605202584135609553808832488677518672405522589961994555718730949201337167846117789429149348926818027586174283570608773848062537816964675353091597217415585204649160308318552901544025754722644413535478486878425481153888743258237020170492098395547294931435656012202538473967380266125643815306817831872812019276891845686246431322166599817536958438021960856719936349410312873260698406135069094237972746237625226416619837377962689858316923509613818502041177723524019499851298712855142215560278896317471605367144946879191882033113198864970245212654484712354081191500024910500142306292956943077966722002929531831415810553579455924616744188812745351424088232789253164402358544792538310628239009047750269867357922492843697063808252678446978360971559836595391593721430197272204475713694629065448413075550165308291469535145422452122366795296913014288419457854397450030173536970764250545929979024202589964776315084778472082802309825290826854102851583086253075325672648527678799687167005667082555974609650934995258425158955462036934559137904920833419578972077874683587656972245556898013585110481649520898100018686365394312835504848996622544874579234544197257362968213792932496540856615295680746623871695677906472730108824771079799969569278344027519790673454600701450345470039042386447911854885399653284146066991126122988211347314238826566512341455878472258744270657655171480672724865149328373898893704111207122547166820269776822472021642766665664639422524702294897950401633374204532919168153393470311351228319325833941670578336113992141517956244131447675621233188787395949919957128900127676513709527112339593599737126683322486389510335586236618293978224772846021059003487250409315155979451343209020470409944992530136799807849796714752027596864816894771712203504873763898253368343019979579743378563035910716636183985592016181409174821298027871815469384748054763535786372066151366267032648126631021541051387644565495918152070000548352877802921438905757191216021423626318919826122679882973856187498547417425000002961764886939470819505169031689273929312512800451285499366303622769225776652458170042610149794248892989567925684569049469152025507797925951851703500605947868319658849569379606046244647186539274242755216887317244275103196246014173044567997874833989139544800543936131006489499375068362088255592211919115889218246131382072872222025151090395136300845936333257591414096894968743051891977874390545110521605939720694839340282296204626806044802830666761683593907728617830951586133714235373063360232748030667142554263709800465998592593844432025666067455277878499121107117348676339865009531578721223406991025046234396503999975532178355741150725869557718358903111734785012440846950540513531698112390117636249630749665146670905626498888742622730468153246187812155497426702282538593155352973464170714390288274600482876480776245904633011366743898553804653937737999577299088972502765268116911296479404116405822232665357104375678820816919256571265847463006770518615646061085916175870070937300857214832380226757796031973608529025537562765397959595779692834723250310082752702240059654020647284034820179508143914518446511648096536320784900048879363951732116784115345977601392946562090420414535210991196762623173852959302617060236646465343447122171982836015244083984028216746574460409450339879256770359039781385438689336509596691112628476991395102158969047173352274797891656556892109256998711393612362244078181699466404141525944078513570632021661791121868654500969243501260335275092144077708277408522239586400668603351778630140662296955395470019774581545801444160292212280778541766066143445771941198750525135866802647343514096875523952449305137066308732803728976450091085844249102405831123422302696446447830672362802679371875375146212472578373378165383923540437288489439937379306295388446008259540242374840788940612023110766018796067353087525294143717691540947689644990720470989931959666232553089956421574050387468008241599765309669452026345121710011984929623350976576843174318188753689017301618863872281100084094446820267352004597698636269720211550919547953468428287672120266083555582470522790360962219193753804379929289903927587023167412008080723018710631328654412225209317410479962120360789659588806460732131703759767885684231345787001076031116436394699946840657868589462970809044930152226825518953804680238376307842277733581471265992253964447021749785775183821296796694727021451140039097282380119913440287305964432693381597973874543460592056975031244830084454593247346647374880958353170066418361954420061012402561592409802069526233461729072768344673682255683956897362273890618235987726531787544331160060986690406283268243315896094889847115986486412334037343438938875676359905759799852617724861568724074324594581924408482209525785984255688582395694461647426856847448687916119001793758223809836008806053133330570142939456822662656781345327544276146169352340992469714516545916505397244341604352221990932892559396993689498383316001419186388464867429824533989523727745983613327579242284600046013534746701456890084509963061227858992463850609266316579825600646713676720879888244328230819573510786569084894335898995457860416173832145261022304619047298039454941662194530843554196429999056899632139966908867412859060356445856277474384953812118185641250310907184058942378044728326434965602696508655532619197206471452967848704047828624507131259178251700926753890908528567316778619132504506171306722750913665051832965616334594208572955160633208424438939770093171859206131370204799035791213326932768947836445769618955711072471451476059537692057131127331521511813182766883688897539272621624854472041562962724705709760813699535662469527465753554304518729520706024595800308390968257770170041580790091184020368775740228288754266503972245904508814037433667588484972680008423149685703502887420519931735157688762509637333914597284746749928850140461061979667027885594718227245167661961257793267904118872050576847893621657817590950025326336300036335458236462052893062993454739068644448845188276948343970847247511588369074954947270499584517066553619113308776578248644599425619134521128464916897092845425860467714113659260811128130877490832473034703712688857124586885781163550605635070827862038080112319011082420890022315680013203698207884807478171082510332788479779361231388590878299471114221795203848021126438370598948015215724889891706321538994285853269964666068797698311262988587494672341664699885036363312163708949054493181203527288807767470086954583898021249869646646503655588024006577672139378907368916673255145074432227463446534626514179674863537437894407053763902408980689422932596112332283792291865815733779775338865755141326195601595920012458020445833322156468489089500161888666260425209108844549194974462621987352998186720982479818926054356683714074390325523421902447728104163520331961533389867132279778474694174360435582999062690745870213849416884201556430370376756537827621751478166723395213244773560542783936387497647874684547206671964090269339700896552848967087440114387168071053539892557126633368501789833069576165264891182812477354348490683694901320598463567012718043787849628145171809787933333171215314832867065070493714283320532496351704329542233952215559769622241534999785340533416291464875259425863499355277115087110302537646562437476838681971878066161144010254015992686882496568871872368032867463501407051110982430893477262433189339356476588950742799702483152002130321646114854169173585990194595584815117606303009087785493856910243687329018057809597091804984284512199831640793680704641052350248758486503045814549223935188436194054733729257455121811409747791866144506533369280387189291238425601946586942583316428999815881272949057493440697805742384354517218972539213062785561055517908534948027850504374267880280926484960040502352312247595936710775393350503126377698405539392104801181710408151400918210657294841207090816367315627549581060410565782517407020155468465344810356532104158399173931786386021729364088263751237245225485171770563187451873031264213752072862066924999057682178618514731984056291594438210430522761229492707572244565609815180121595842783569731869666041002465615194300582758082766675190995625134031643000919915998613036667335760934737861318250761873956744147599437901039505503155040208958736020702672968706205035063767114307612866240529599155290383758443174601616972854541387739852919378464294171975948993439427974784389582274666950071019768548070350589427334603628399299815198508300782016730432304343430465692715760316617848474784047915698037661741575971711618616038596369991097774838158607826195984593452829881380834625149647828222284464090572780765928362951140181954006210144037737998573484564368341326137652890666928554838566372926620843952535799360628323350903140564979934064704202469303318675611628588125174367737210449705750633389004308667440158921539438408458677357295126634354200023249904680666207247116860196243352499000899397665037757041146327807541131952896989661561627010223127938372600360025764054857772289847370304194875233378153366281873499619514197871199826769439180375556718959297449739142736017088677243065558485035587691233186510009079850069816320112070094244096784381118042725836757814245361074569681211269658041186387228925022020745843872164031866501185426935449000565183892904430562960089443278353465415630188887381614906863124976328182433397887789735051635638546211791447234654084641876454068716715923971133898501720107049847476011561200924599820633067644485451888081919215867921221910126499690283571321305900367798689845006268285990278934340355185292334304143761422872721839982839628437477032016581651992322931616492549690686634853904658662381705875821535576561194738671418052494979634452096845866943927850948948493085871831729704223511178795806219696090509043212747174767045273957766830718779079280866463360453121377537375471717989230490657208121020180490041007563821985223097731470114093264035104811731506789349578408495745708700813611350687663304950235188191023491309359044949724642136337857192745952276785965686355362648727325865024304381912946937380036956926256937100755416318484311917488178695716569597843271345646441409997424509987443662129108437374990690918892632140201030888148234804223370196900834516846343013315089103735232014580441304962300455770695155662653680910521134539472092896793727694616885681162078497338034207083333051707249031219376127467856517210721514231879311405482832864622526750420435510959062671387935059490665014013777426221477985047130616962267642064635785845258788694100821148441757295076648656239893882110925498284292623630090563953417508881030984691870900251824271625396492997448248492970521259144117842267578337776990630029955599398352178427981216403676221515762171462241383141769237598374721389418563300743600995126017047560396508796910632897005454432644582964122630285669746279021719926741634513431346435491599331441359946572518300731812147870832789276144599775197416546660666582602938166907121048397995375105321148509473295236915885728318590034767619033388127563901203961434014184701061921582218825926303071017695499983117310904835246434031503111481743184482404751682867588179430792181155564577799997883182929435165103133177137359901878945266418380306241883770472126252897867212492953279379822406109971776805752924475213838437252531614441175582234913212708832094696394616239406955709679598792289312310028122634695310212379299849138118092896775823211890335217214379784050611694968716053378642821386744277958847399630982387544863601774100842885116611037050232971529687060323312122113583126024343335850336164787805969019383115307827415038653190482076172898208748321154907944491848468896519269268744807225533114060071078960264030067347830859422075186357219711936794198256821867704675077385165146399437633811697103991565235548607906742342018711624081138595301393422133583360207374731502894895119472349133355229219074252890390698956349511422694603322842626814581211897618664675534345706076830032075973204141156940042078290397632122982021508555084887930619776553728411816388376358450033598439843516176742288973479873263651772016770932424601643772707214904525724914903829410011192778384789397611999549280563600894787466807490458471875986745801432437459283343357583869030752299241878376748947602593360282858930771191696491638147587440280862350546763245937053266043018991065525821472704797562340972356768517617752157684776942286685007103871499477580279585313028158950244583309649041531280208502518500647836456497687207993293579185868562019353288191514292006831650603958242590456890425751115241909616634395171247121226647013626116545513213117831364360104602411771435194213908289008964820662205468076684865364474448856958948425049186930913699751076539761433494805190914745968029057988225275514446183349619303294872364302269450864389437374209865892920947845603152743369755632570329651460337957932676922399417588162530999622618090836284054423934223525561271180639038749494777568141292582552261602574124690007084047429652830625105525484475253946360348618263449169426325916067529311887353257539858676969597252241239596934319360696327624749688960231454888954560179704376530766175279070150929918651063685033225928858923932551895710002318495257137428391697958079778487602173731923690971400611016227117175892593121362064306811609758146166501524783133975895377746328573802700844166350280184114018335727324171876878209308485112492076854413008671527961456525324672862162979238509457485106365620362321287328338708621824703907280229033594809540555342480892945823334411970227268463688523589706589928886225398953774803443744171381467489511986563638932733920224781324434561031289037252194209549897125073632121538617536515361463882343661584650532224083914912669600031910109375872733638488903488310687390958611494865550009623605604643670567041772766526236600079710366173437403003692774325063757169148138049069405087163017304062188732079114804015480171812299085727385911043530559022293856696725372827966939084497500006440672548821160110075920746293311282776846645969707705449503558548275667646819751594833821884173085242150031467883189515262787258330238751427532606851861543353173027472497437674206550299213946975830889448977206636815734058256340674881358150714732650413623112855064671978437056386666754137970220308896475637751430078247833669823601384441626594066407090361493257919793226340229158918485816711602992579548240461285667707108601765330163199178397196856121290875282095430050719506826241148600914053850173449488796571909178415063969100436557735350959046761959486145043296032767889108369460944939916617214250480679090737246434831339760335334579839457391872112221547354679479846906197904280491126081714988659988968078180915205972257944767925644810199343033399902129935050125149884861458689135938024611050229158610042246731508833388832619941873001090541063801495986104374407302887714605829415763223751879318158607776083079896540171295866504065188460263853202119002001044889731934050598006142637783463969772840368525033406639677366662412850194622355729421032993211876823802327354831469759044387210934027425034586716157708521794562931600427720529923327275447258108686446070042248469188189718998168284542190237333311169770622910778580824979564489643884408113659938779553680918807288817330316789645909829449129917038478742176081323976513127674556807144138040659528936085882227386037026120426879702791895116836408089387149729201764515053091670950681308629858221852223166242047881920269464301200990463825083376481825584233772749307262107755210140644700205417604913617592198537313373658485824820693951395068385045625519651339416716267607520337633793637288540342580361977745371909719483227049293543321097602006410243202325765976721295143167355628974691368688100380357773738029838214427976650749403010771018498937964309397539404359985899119690394010284489115870298403624049715407543661733811961314262106034875395827536815580183980326792043756498613917913631067111216945423638532874000568323082180878450700996655823551838621319603573478355010874132294315417860204669628786097293793176215897931248218409606442360570096488125718473085590787554397116690355062240243471342219401566231154161571500061686063538494518502360528616622767377644825291107235369884966917955191980923592310186981670687376682132676996935693524537576240184867480065066933498059649683762409826321965612702996133853204223508974008638692071311433027726311864057498853682367961480027381305278902571488073972732169143191216367437281022449811718107793177630688008633554465470921238594446972013517094701809703022388037114289085082584789680991060494482559273958074756608386960982594638619701337817216190194139391067026455829218823489453541141270862898328224770002015102006941665915594420489443073223197909956846925606985225581175870420697033241446909735386044223947730358802314915224341335432897625492715639530049151400327777411637474734774276661299105755152029974589765064775417598914591033340988944881930136000155560609737517678794535381101326687123829968618712024157856183328610806404529490592032251457168575723961739897549037299878102282447833802096502092679658252862759743147662665368528492059159369721051428163790292511165517524722125036247129027143759618189110551044394782439316188263520817701470153797207036304738746228891859560989805497319586157784846878819885158988799094838682721510594948467667971894365827939645530429725993038932810773439253237325367969885895327702895826270172703524716124640411612702956729223750326558517592428776882478658459278444104540489907101668941086296214511313119817403587363099474646714324672709654699694077405332573090743507192598766693350508305113118698924207476494909590666493360599688241399266347615143122077719516743409150012226302530533635441320907370917777319073868208861624757076085629839861909226525370427727431431217880898728869201812766381609661087685869849627734684843651247739481380981180467483999324898264683093738830770193810219526042781089916133584061897865297270600956002396762522281428810650587090722449891303646143170188128020141821076032316707376741199084054610206142954901486996323519633173119691571388426995147601415385829359171987324657158447195633749287311930026443876355149218174830785670574927407431511189143610942494487711936117753547642787296591103777976941150793701737251968395545018036104562584683433317458300860603628931876292562863222300974914016057032020033992694610715845144068591635117482957388217957181641319864763581387041940953163941583890151373960264988777221473071370697967281757800893393363607305468325841056623155179082381625459798238017513185664529764148383663931126519490252404496200692007557855518047405741898425875951619216599570535592868754958362828579445289864758792749902051028022170981942006864635311432283509424516375180413370311520093044282572554234240056692989471032730440479227764625074002835958885083131092826824627250355547939647511441704363745172628562660434838790564875305896452216266175245382753807435117889889991635851288320782037253463183572315565651445612374483259317074394260556868761165687412392119930291316787489412062781655038875556820580226148168431035228809219804767333550736399003555517519424064546375173534247142714572332049105042920436472315041753342710809209824607390634989319539248629711159051974884468985672771910499329007919124544768540485920547907037976228507568385066478968088077897864154324471528186651058979442632330781456373684450623822482698623042411858919890726252793301307190922897495385245286509690349912877995709272135078092638412794805184360843155547425026674144174618983680952997594908994348723345790484844501720788799993625705729212050130188623864249978872197112203715549500786609719943797085004840533782091385527683143686535696182662763278908043239323156432452999111885416284787480237852367029777952596911078844533881326127854232961191508592740850674807978422201062293086707229753140734287212047475773936901124070523590008851544448714292765772661617968786165717707708094298844556039970411397034356957685647998564269322926573530049304595281023431955850615855400238387387480262296218843042968415646144600983954888473506860672720350955585603046129756327391588975256227482829580039015406599713666484127078434333463040357257986717799127455121875284112701482870973549490770410109354636835362853813157867595959185630350501235516001910114548938660791406749719194719338927635363616736412654413066199205121506759176805572305135325035583405667082029690437266852621660737617875160174191448803749218418373555099253742356402613617024153775870402333132249021272843044436915754067953845683000431983275411974002866467571588522722163192599142858614165118141501413108508582921937608638151918788158469423165507300949927269403350895620716338260358729583627337554181513225133234695095598953422593232558302755162267119245980218631260766417281728777092270009703409558632038931696949262500144441764618905894292211677586248510531237701489312466823061238739813471886612578740544371724039097881215556944162013639717098608955819919983732434686647433590067030192984466855739641244715459178234330400772538022144184587309990224679581166888771696240713869729600520920041541773851315851088706223621070792117573599832732414771120784267698576543726232877277247594079433261996166538163192887633505385142468869742394831754929683117552047996056312411363972190936704797364801989162057021061107314595012022243426939674362384390762251377068809920068424223674960463919940961571317127498049443750696722532657645261423848175773289141761779607553705644981523132695021786756424000984395513320868235313751955356343023822333781832854910959283023714389020997234245437010297805415495403110284511405360635938590212226591722112500724625684606246410883218400129523674520729310301998869530951617687666708239811437828313393460095503314972359587519888980223879495550854857694816765600819097820242136387426754825792700479357717959088346650599157987013282231586488686137266181543814172677240465924777719062334771099901119033746299582938551085639625414396416673598687307179780167847252488376789018646763390276730620762759505417850711839100926564248077142482921380376670921248479836607299720561978028316579060125142218071087536068264511633599608887322237918733704429835992496449592064901854292440224694034590420391576541704630479233450279920834894712921512515163181369216118163343586089651577485743403004071042938748126779243001734205933642677005028047592339941217725936711645320792320068262591401084138121915342741802734458032320722626324926400924482420385367862778462917976114224368530717050129255110732448421608855536118042797616868661228272890366009102098229267420102692241814965550282976617391549099247992973292911111766585223950566775118437202863791967918318125505074863623620990988760147855437788490378036537310425855024942353129316772241257689943336897732450157063999309582520495931044211171811660094740111186984481531841152660875975945050772348798163816348877765046134628380294417588878238975542392050465892819890735259388897353982334582250727066917225597345064739037691548393795198806447023323085804371501893321764051921371358578222167347419631428723909894949035098152445890022925624910673150768554690610497775623286816625834163769228251500783603993574621469589989534502387707967195739551740607407525870872453203813484506934458988503675943042797358451416098372476189206962024326691074810905287652432150191745360278017730648961120517913961979871025003546644670253427794338999556340090384594234625320895635548644460432831886104164997902737140777918018096869494238124852591146631072931665289015529259675376710835133420720517771949448352749854889686455829969214800499293407218035681264908532917037511268066682793218661391859333592017738621732264435326254523665287575025220965243949786618052019833009916226851464004778556601609419663517793400671599272537662264458851192108963143946424634753228167562796442763863532786947370489603829232726945746822267633135323315601455292471064387558809265812244576132616877597947771326138228764912895420514405512715641354328356090559357581650699164190401721907173184520385441832261438869169363918502094410819602445578809233148135156145539107923130821568028596655956770679687263473424181842436275222824302405342105001490772779088387334125961492800460721669362017142403921938123958250890849347697825578443961878622842518405974188183441798091264316548597787415421158003410835760078301574643913112752309194421865577396511527711542770224615788567073279462052734242754872235867387120067819986200830524547938018471819279831479951829859035248237413281700078021084209027286084741444419949416291934284771515283763672446444684931885079001833601548122684732518257538447782351828920801020882544625418034428565156664038487660350472958615691477925359700183794082248147508937496238848663383325373480109664700895073243810073725497218104142344340042491529342330456420580037319924339607030901910896798615657084392557078423811911285934018293833828156871186104762563124197012205404093861853204685253200144780430478779154794616377346416891945521964060936014658506851090786657241530263592124974979956462961772250095913537578115376504183791845821343310077538220676842178906645448156638479608324855365198616035133123053729455814822043802792525467603310440349290048720512652601820263765706742174821528760548441113332265295580008909136152656693424591356335099856673486418971563185771733117497783165953402690448612344874454382815363123948056789593830053397745093786963699921804652437936619669480930833197282051210339942292505874695268673856387006423970063497957923646240975856466917094298456481672494000234185590024152773017559473180795765096056001365824412042716454209615311438858028196755548002235615855163697486822419286204682732019292120254197590209558435784512656577283588390960191425313585265903574167351617442415310551984661917508309074924478757843238442221885217465703711267639111599332881988192215652899792079006997208294047202949791643492605271714755609876505925338862646749850666211155126055437851962679332115023228393546231039146611153109289169421400917878957086761453467937821094936381665626949539071546532013706872266889017042022991468945104211262889939462410026893892587614701057758065063506714855509459005548396429032246451075247761020721265654546044387845484112037218316986013140360620550756899104168687167367029602475601718307582242759938010028146608359257906598418658040340485326775017693674919748013416988525631105637603548909777243063899331389747945386852010776309711315521191557196206288827989203363691973378231062678208082040279312670831149243523599604265349239143135765022225212459411371693964057580050419747156351471688704719214483767639618286799372785274864619970379148052748319397253689064564005285486469833737647193540743795578277728375092103294781238212949578575926750000461590601193409311844750198097060388443871339298579058842043909369086604806294456935238688397936233677921593620060365141237864464455732950986305922121247820595676593091831543958523964923262090032261555063689746119018490124335584932115451534136340656743165465844411815998949608890756874273700733174351142755644816563436365726881521845133733506970793452708853341506883391695930999055317137906846184661624840257804992288265022143226593678702681507514592388945842346158604113353114765739458691452568668564768143791541505883284676990363673881729913420087244056299311689622773710032421120021510483455620666888543621086697921969038122169151269165250524946244632736505604888488348856530045433133139973552737064398347144536399293916200312611205885958370542324381417356861950219342264412886552341045427088769534168365886796189143187659741641912819642032519394639861953719431410107176801827663906422589027272254196943000648375316319171576168502208741135997317345860073004787640336942888297796686412589379004718321311945968530823929225711488934654726710477604633723577973970283486977608323515387832070141055969812255393576650492299534948624860283202992808827113869949583729063971624922247151472312703032304918080755505177780979733737247612879836401675889955007147104029949969116424467157623385075608810048309267616044207159005696170699433210777195400120749532744012565837287513621091383155189130317237985058190208029285393079854362341841776365050915679132196178105088247832574524001652289973432139824945127605059187606712290208912680744534525347045335996986995825218736610384164169265156716551683410521223627418825844757927250608838591748525112010250300061479328641851569798044988736326455571924894996576676813540634338729153491981316708979774148566589047886697536140246745896442066499877315126323131897333765263599750807074658211984142013089269203255606761208189608374585674869634629855325360043924514206356892033340335167324505791538229110175148588944900214910158093344240719291336596089826822196740534729331326786772176045860794439728602396735484887937006144239864154086046776335392183511683426858334527896745485500380274401956479516409053833598549077301264836263287180806874905994036572033610082093218010884237421220876865958950658264520713856360563467647227019402540329490143001347483743736126788416768035376248457679088551105017467043514845263187638282729946447522107105919796411423736262338005733624993772741613599412714675452674187180149377615520258673151468677480580875480549469490398128875717641453577797665176359661747223778574302596263386231970492287433771963578310686100756301490394464965441082823554569944044189770955545861356289690462059376026463827047900388210515521837699988650058196845316259924195073395689158309649293462408397855787275361204464164239704438539418649073615310185696650338995757144349316316028092166532835160203627135859809046694425658531077154901402583279640249413304138839565811134626349867783721749965012800039373483468945251786679354318137057813449953338494766626482752501224426119847447124441999853814650106933761757444314727939600575309866888546963978881931867052141020786139487180181632024200502443425693668900471780318486357933796320319422141686321067143354010863496896011509565275130096140818331517387399287318970289245879468227369045919147688185835234577805077193260155613392705472257241254094092666472834244871351652902921650337164910847242476456794663544605266392388916300454620223048858684593739568470747299758430988751552980149346990854588680574811284816725304149638729859042736241870582276656200689259397399616391215789946625301094170289411883445235753082840282173691325468104398320906787552515549078509989715819843961059765046001083719731424608087825778283398934026481191092005677931518800224314455108804402100729177596174477251730560811343612335960426637369566966022836859122160523897306034397074246195856895188835408472414607395389012727140461265041137884575592898753851089558646905120789031675058428235863190454772570441185500958850569526518616800580693303942053073918029003280485599104366015190127978095176273370760628969954411011765518112228541157704691193107026328312613862259585646323870391744621145213509981106787247914307521831911103991142617551772204095925365900744894731944073480821171495283258601588097289065061176980300036219969720226162319895038406433571687159814040750158539167728256411934137183392112548974489367479960209363669119469369900974839868496087653762666248803487685530004006576230085066804799789895226931217655667811541255790893455426722470422897463502676672966114334533427018671073878126926675696947278931090251240384367494878456990231123932233089050611726193042223908844698053485582123305155915912579129937822437699693556446438281739404134733002275418288985348460722001429594236899564224065923543480174274745543778325504630906660167960036099129033952765183868919353219944434516714518596577395159151414716234747530935657586882438652245795131018307086760220580511677794985999757129972665990040103648130307774697152856269833648782239428906762651564878136928314535700221361776893117819891582418765718655385175210113640851641603553741846024383028486639573424205705874729662890201862444760234810733833178855816033476295998119332999193237074126350241534600170368903065909372412135296018581827820450093262362406975286759093441609926132712635748675647277500056936300480060040831368191363402168155379894905503845066034737848645477687587440177019517091659173998946015040686012718835148783410092887377147542172229512065478361537004140159384596127158795809241924595669665416762335344628991114540238502109365088548508425612164169167254572417771855806415606907374506261572016663422174105069347640858968047413171101576088854693648054516535794001444294740726781843355607720347937712204293396614991234831918411390211199740821703535384598464159818737591750121787154260304723131849867500743147648887909604483900790247344132126724842801533710356603043912168140893879299409613685795455571512563666057929398525844414580250769611782447584619678772559463006610158639364871428031997079170318410434715409413477472808017463230629040483680436672311940368685324748544017006849379367369586481203334524114236871328815971244337910994177599065725304660910570096258903171763466898289619658793610198354223842314028716486139836358190527689371542360257349721897342521638134035658613942109464616257648531298687184093346345866686119674324243721006677705830371641213188548367514357569747138370981377790553841911382554758453504761972598747707819027642899086428877138160266919036172988562752725515514106169655838799517453367662842608023546481746432891926751360659322379107970461633489438847628018574972005661133843156136930671070833078693995873897675824583808310597562812535700782637130935310652290518598921193953014297112025440332585782886176675355740535006332431316629991763038730582895963620547455397011895943484613685721390404987183719564701112310044731455886087312633360722239151586908261731685606164697334452907077882241160598332218228789652081625653191790637979632006090044887354496507873903734207517160039183724955151966523041847843970558394569469017513244957334129196306459346827415689192017157278701030582101245383319498962556124269323685786968134570811399834123976500029620280251627088286632698788118341612400500323855484930072517458338451594076337818305144365286485845826102769752254334066157712540969413094091128674955987596444032955190361821487519648494157553989722067809327472265226989428254068831930586585557640108183583307131522458159584516471264581708721265883194115865929475424359517447702465004780991584778928356732506204263714125065849158569201169117909765344009757807448176701595547395802927237799759278526564587526503375531859314038232055239441472126467114367886902389097798887914628370258179262366003733035445260860589570428969461296919490611297972072572911862329977344154825437672196391405697878403163702139048945464428431700642642695969220602284458474540320752217849276793100881444615870978313741016064409026012363854513757978906394709252174208556522203442134137969400953709419098295899585746108118721750800693819282155921936659974009101290661737624649654944131631745739934529428766096502205647430815775240882646891541962592242789279960355737317310125178518877500353506901011015669919282455101153972508611641560306207630243831072806459410167198783723828716438448056055585264514092907019654196452319706603781605374638088654959877175577608300956560993264822550132805456648711937283408503604214059649174631880249407295659198039033450601981618018589577953533781284224535068379578727113218898655042699852012902560528023098892545170011618239492013028498400039252276272075772832068416144112310696258497559502231536633413465965152146386959826494349186999765853025747839187590055450156283074932934134019631213497629512515960148596828122084220358815340557922320303599939800677994751428885128115913925266733707299970889897839870953605865243458474932970548961332573378964916147459798125523551135237052357158327221385157479399856791432431564016454284964551520211074439079378131688996730178108983456562957660440817585326855038553470505433465240300134631874509948435854382474989910678700630593410424725704529238793851010798455543782843463004030602599887671546217877563866328233474910413582890149785812134151314601805255024639924106567238670130096621179701311287944992956575914198483059779901649410031876397647874876163857893067415348004233432774216673737739733538709678001351670322038845823178111496256989682378817911102922261415592650834151713590895979694383969745745641303944539463867671487552218698074880345272414129589810836377181462456650926057655587011257169390212837589947942612068270713303519334223684482249982553998700318712675628794422139934782711505756840133377654057954054086392064302938802463363038138789338003392311302303799710446718874459604449088265905230378271444906673304103485310416606264585555755950533426041280168750359413339219791564670362023979583005059583284223552995314974020534131837748521885898906331023881450858309267023687275678402352494450026659532143940500231633864361247335768408297940477197576342697896383145798508598435350691619070601825651775783413670696850933172176884706626199608082038854142785417903796251785255250622484445282722871828236933063962997846470750951380357005130885478541650924623532143956965434552446992665455002900819478538017882179927620412390017708860118159699566803731250671150634641707055774509608267654842689715690211758017167356269364640115599997311031888647402927811802811127440936041225788343201246273669151113654017899839309752878697486483003769517222431874855755456966242348755777596915578798692953145228368971745271728745372622419097298649523373968195594196788226912941794775973546402021320955963934344550036041279479874558352239576089483129453993088374225276628412856062425747096301943580036414964182481852189407413329165786471409812035342619091589695968683976365813528460798930784264686596325539081103643061712446764130517325018039350062292722734603923230414120491314661598652559012673401335257690901841544169561088506726917318144151532129543350613960564611386624067793485326120939472664206032993193282775302685219561242102153849853444395814866270908571300081083492879822348823684971280685071205799781707100229310125785753711072901008386013848547092121279674071042604898724106722022527740624360842506026325879376593245054095203127762515979934378954210773669938794194070218276479778810670378959017419322470587437664360988695972897919944312975288500297184754966946409511573599669319771171936034854591375377592707530664857327061840704017738589453298873083027124783492055131739401500599022638602939085489246838380777622168108835543384972998443353277433264146658127625284756972265584593746005272242446941435636063745171205935485008012618033923537478546085991296989561703757144585071904501758915677835320210868477266768325501207272889351517217453758148198170536335247910702565271578858852924240017300266008797380090250665746789390047663406782682508886681085343363259072317613254770662154347017846072954178439099463438744220154192478872221431112905419466273118521850672115303169657572190464997636503459981965204110377184976444110477752106225360116925960488298662029233128481437084280566781204364015195317667398730897756583794982638916773522962786088082525507021833223230032049513518006448749634343556157306152314002011719138566536127296921486664720207180486845177535946974389369485919646643962356404120581703503410839657982484504618320466136473727284124945121190712500744887125115549253439926862966093627215910208551773969427239481897036907974960751245216821033128733328472590655034454637572053682892339973049689284853414447659077544728798677071356387820825857469988869941964917889290408610513774313478643711176330939689080433031839928869169280829979967800199466155353713021641616973953765203959281961687279255815723207686171001278334480139344746446419847092223922757592965796135244299800618023606360686761383651472439454469452674847050405025662437073717266324868156181891829008289650588213492367035316210901101556044625960410558996005721472071785004652312821975656415089042049493695299300785935497660664920040939545630505294712178775979234997234649135044988843571003703226424565175036766506950506535256467806647611533390507336846562070403219576334780268060359591230318205766968933203854445010535465030421730545295618725967216137286761072378278340857990015550876715614351284283826046247003787180786268735194922668491196851060234076245592025519096628834772186429687413527452955014547620975599772924471776549012483932890783598379649551054595710896403682788769535348108523633862021608115999866771885640641672609533497171755920993815654759560137542902988842426255962450786114514339225016170165291981583872385872380884434172188057141554854228276225895401839408680623207009261058290879862210213287639132155019614937799076370328231648342389417070339779253035004099293365678569990598056414912365249348612497185258592852634270007183998960646603645802055964985082976023529911820704552664624296027545280069884598165840689150749893799746578892621165738192302553346769371300643927329328043515663869894252087108258881138470296929613429937370632796169964528790488157865139412758395712403123945588283332580643165579810269016671036015790398703506536304030826244456177773070381725097058917661787421176267926642881544304561517764428071700217728823395254199468348225103251257506854727765278304324470383142601000724314715134769947205470874421757365461324541685608106214646651202031945521074048847532499315870189389081424269831336617674751769527840809870652236818467677486265195423392412059392842083911712337221865874299205855433773789419472015945978794163299185815014350633344749856522859484531101799786338800283370146993137416600312173261764893423717312730327411307120290325922631142612274306517982486236266879909263110842458977127064706392009648846231679307450781935385218107491930321949566985032633120357183159652147071385832364672833069082561927708644368814394684311462125340970549345603426301331019887662678592012107468059482602565504414400228361330550963557961344201498045315538869854114011801361090377169929881576615671990065330037367455354700851062829736955083974722088107247219027208368627313278773325983190795059402710784889924650568833340496519230335775682826736199058240581450789168804895433233159813254940842677575392915112460267336130934156297352860029737856795259649884853173549314298336399690302647719485088510181943563953009115997357247180731844395772768968022610664917204328966668649565822394877480114338576298781403958074062946581972689905346467981480917976523909822798145135099470027168152951571505271023966423186475911796107360962785788080415224693586827116509175584560077853532000801983349270110294191697905340822899262758437956276192216159573442740569025158772934565024323343209153878522623901516290368889399844567885910995829653895698777136308465662646225105695456484263767305603314914997408255525131709548357478582468511170615656447854171989347337883400707182570294854933290277806837973495734596481374325076492679454630426521186728480395205872387052289223258222171741586069022046126633124704401985003434375346179846619919826673779541167360478803501373571867457958265767313865253075374793324159792380581182059650314742509103189821829631565237505249323312720366501907094400991530738173666087798059075500120352409084924477599289098501116070136086542614989757373804044577095739512894526644613705295525048447835456497608052585348043250653982862106245670256221145349923030251050792911428319288770606251998782304873878282677358998342503650868900286803235201653299864225256505475619703681233899857221978839287429536262440215661030820419646660697645251370297938184782896994239229683685019094756597973290419743659594013389128754338203688934662761430027141051743647689626952777969763559431740658650525930305004538050198938176323208682361497138028947029210699447963150388508147964326140130116080642688801935101059648581627505563412427068852685960669497255931742427490394789656337918586122110699160553856950081362101687687881530762609679834211480530664904868544351624659616156264837781860342368333488491884643133401365084555901164143695205364345206811312227743000776204307826492105804480495956274662124008377776013940426848374037230548549305767488114057448128001938390603363343885489202808420968204745257528977149709151844344767890263184155365333059471260287497250677148623735590687730405093244847578927852098457819638258660500408342169275543871115458581250912706444074077260503467468760181717023455610492275899688833697984326198594291008161530100560094842727519413881670482676913172533024854791107087963614445188175712742638928746942803506000222659784521844141705716604546974378568822247423672561484524697545555767715695746463418903276306953128338918406311144164512433290592241629833828890363789467523859520101137574250828436788561395575068411328523917444989427321920689640020008677906803349126143504042070546046301943826341624596388946304500324668744304322007153103160393190555759068510087501386817951233081687356877820862321855140337450818916345449976051615207868474554101209783093673566518519740254141735759526415375583935857418766440780484749404495338307870413139048222833392450344272148337570885599091106955010436029798800183095780115289674232668711299239980530248140344641663272035573289355857141591152912015900116828965378336578181245515200884687531974678834755312344817045645195456438655596891826231457757282709488771843174601520231025090278320516873811361261244271225115086260505985491874467691108707718802103925637339698451663152092149657360218229423472640593380395356995505575840734743013672976179981038811002279711725503081338522890552173347832001119383021068057058133338659985277287957770903079056752844560738145589866921850649166409505127339454481893359756645798242499108815269389694765630259670903246775529590949985439810998624160780080048982421998078414927267792326032994479390605530489901419983896323853151551254930469665264409624647980738846077329768794241643718636379557831753669767396325206464987240566347358975893217122017576073547483351729952996350502439519465275882521614169575295338167844193113790269713626727622492187124436475546830579813965436570678269561821019190468848956016070025287984288136993478519093769345903176959629942603544668894766914930048372945319428530953912643010875915314514662863224083179519447696660851493199126417544175534165996343143982899927545617953852741729055594302035138716090717036267738074876599852749010387197536691590508016504422365875988709391176272517627141530789723266469508767433428401426598503118896863242227174880604298886192239730686177536066107242712955992588856427681938482410431141545894754359481530529763431750169024713619877264930271650237790248762345487833876156099049949982073900259303942529248591176162364779805994752215398242716112993947241662145528934831958594159316840551100614973123495381022537547754833344700091348557191161638356453624732988172795635298540432035895350471206941847176219753618589922559755884044397498146483816829575971626719140788198182306608878066124191729368572739751901954318071959311126602314962017140047393910516608648040612271279022566109388665897850364059230597322476968428461271852968903483890912079852487818282000771419735993692994632415129005207177967881631174171611916106681567292119163681318235222190312231572497439785081368814126886932728694846121944100453284332045390683299438220870104302508105445049517242826283107103753363411289460602822283426569166655096487232033703004745429969555851463234660140730214544240195031148602582820267272011971327120454622213647412438049410980008082844338571479480074402152819296781970084376589542313947069162922755007537979318664577408770075105618503158741112624088270615702181724683617802007660500988770601280157310184000446401460687404317807545574166997771763692739535671613690927093685389399154869284232756193561328930410979861675018860221950935945244142745822028994252091575253999316696174194535536510653959362752961890319100116943562534683627175800201285682575515056776978399535882923269418151864849600547757295863349850089130848029767309132514857853778862750669609356502789775531840679115245115767852566937066317339549865381443075825780912087218235626695139205482551691891384696179587251956921651483503763045210742356309941306409007412336525022344141554295827679874369298718788430550350539198001790605800841463491333575836063674100280058045910678622622833161083777018641713634060739610037051671682773977232721545043790135268614366355160270260913402500114993117619463877522222940230729965468062303944344571444289693762098494734573175788330495527253283633225096894753075388720429364642497575535655604542747401233529578082274561656369938531932771169068947087981299619481362453640814717567587809862063091532689912890728688606674533002717684083176506232544986488386875735241965984926094595554232546208633290832602317830023410441660182411496908120835284654361592414544854520934566930580588564414379157747898855872767558371060129050712201069227124526204891791563232651953178186642150773839903951575150988372950005592101877126689989907439094254791440107910933517952901833213430650284156565044627839510425211390503788423466873097660781661884206307938265389862270699200118635737231233312920935323427828799012798101865763534734447097403568759476898239986679329350612883676814278304635048664081511365597371718064363084975946592035291178166131358869572890513998063245214861859492232845187863847567335125863480642451963783373908476124693320075906241117499592162126900853960086492563206357037916333295236537779886201777584494952063334301824650521557924972301885677653758674456289573815619599077576103885939368122285587580730370017534717727373458414737126094614297354139371123070485309312906750778652304178711469126055332230935971702097246510664220571264837038091491808594012384469413593971143680090920710574995351871552031923277325917876678607296307063716246169203540896641291583272685805147052899269986693319571443575949765670597731242748610604026962126010575500519848857101341688228931359159258225461751194051116945478431505240540052532233675757959844858125364922955555747386201448375068079578936772191671510176453356048820197520066810711859125903191923852548265109655056991438642523603448886018870337886373351331875840659779726830595382810188570063542756071575310335242996548804548975613824392090744064075877623054458551574721130680871302574611895075400372167777066601007154995782413653427250192680183905041827081718037238318258216444126902269531405249235162433054694046496232608105356286847833242742018378133880657571858317613444114874922710656940772443624428768771343777400711830115774529695293832161377428886209115542634932172289935410093839060763374244068519715337996897509054175976435103075474872481450346534859773623300531041224787523176140096838902216494255872491750110912758565674293549602736749939935111432861637647129325148234836521529105937220383499034114686427281747689098440898825630110648565603232456845365266939981374813575793920705737624278263721483244766730561178196374207440452420453605105817842135850692731155298811582296763962781670920634045405051301280730795105454872220794608957219167972524012796832527557045509213747098899300656908775740711229485432138925472478911412351527716598386117426627068157441066285886710728417428773570969053792394144677779650038888860407945299312178042380552702307244585172783845472941884296596904277961101097339796208080936099698079346329408814262538247069163343911114070703465357368018223643164704690580960845989936831524773503721694488274934799299220038575031785467112543875459086388604329114339548395773662293065596490959251800312650014005592082073522593810702294819428547034945098407691391768113663787287519657926306768074905685270513602799908659385455839317814095694340443119436930929555712030398269636540044949875710614926611915842085372564617408222060490481366396097146399859447944462139451390805125835209395974182291147634569687282821146545320179672108996156042965923122076035659599068598502130022053052618782576470049438668170973162981841296481750636435510494046820038406258198135359823014550448560629427957850640413869234198228031996071571893435215193252247304646815692508016371545715037284676127835625782831228367843622671570999620952912948642264765617626393198308426868079411166695504883675376601759470914764677853924995521225786706186254748804839041955175046888411110073539532608807062795316899433421890651677906378014246882145871701715935495293860791571180347661645328749185856777082560026923377098284568462899331339334393164131399198979102026292526880347303765212539560343399089272293275877018677872723234860887411242154001247642012975874033800079317505211751611311643965622426388707794989430155240845236921263644823070301913361870780198834962240509808237289184738571085337162335287842222294973800298541239461795750722186591711257943230117645417003501992609839204283766545853959921172535675906329561815927254129755666608874415372855371263598512005573388062039865225159204703688295734089832430435522762330018073027228365887962679629791089463169018335577398695323446374926010115222267133505410827548956251791461055573290583430915643592090390226203347704332077034951797690953023891985956841994076489940504069011092135862110390460918631648308156953596982530785903570182245497031575160141398351559670424580243149968167614819729394123219741262254928622406201843113987234096761581527330760910043878164014613098995738861233340166513507018057090187272256572523672752422932337032979913284972630089696241728981521273037927332127469422226528422375786780899330896282084628405462333792264035435970948603038493632938982141421582588780536265576399089009772736988329361077444814146419402585116043128252429581373873403774252452877670594847973679619019357018102147783179223268060118073261873932379685752548380756150422999821150093153775030643400298767429002499863597242441554610790728855586703176315310509766923626572210306974297412439184442267785429479660416369932513928721874396494719615157887315001521695643913623258879303850449782516452162338436386172376741223572284833763785497477118064986429392287407990846505200344090908007369318729024267971229187651554633374864273061724180068283227475161090741660061828354092778539899599792221271554735483701877784582346846483697062820248047662863914921418697579240994643307846815094754843172177063098988076159994900971879742161239727955232885882769207526186267436242945005156633527526498390495689993299195655927485563974309811913442502962358156193837813225845907120716033846820363625068289523458714280928636874214469620515362342014576350501684553294197468791633217031978923228201169460927039246383979599054154757887307361725507659250916287626495185504356050713541046992130361713504848714108302502876568207187628423564310581555467540500498992244142347155112145169989152734043243657038828458272540339944564417854413108805540880372534093831551366183246180421752545910905445674029620987312190892216074062872002358584526939921252806450867662451066331417310535073882664264469768084102524041688283012727626248373180256557953046505597561024893818412367945325053892850755020131753015424528404214352798030616437436832175626783717343332778196545298180500145247082951842659023254801942436830271663124873121007276342218765125351156928885251142586529895472388977725866937445586078674288302487454647728595485221736771948866091806554776669806121588884946779949180579193110328213270641400847321067593427771805678156481149383619613384798725475210713092219230485672961491472772089038802773403475162514679055927298380899984421433083829633184149509397796122288385331583981639816386801733193594170060025489943633508027136106231156110656920916964557465835009445308288776171227148214793382271220923360902382888495498092240898415707710843894992045515955634325306264181788256825923447677613190416638819435606491075737327841449392339821264699708838260872621609692404233729220483777321588251750911441111526179692653600902300086063078076721082905964225542476743512069315871283906237638546255748168840324924061879278651667834902167098158547668642567674878293533344460933999419245850860567286177890368773887664692746331511602352123178855933657924189388726395049735068597423036415019121907475807804426862092953246966533022890470718714355045566154311544105650736861676953111019414171704711518152844673651526519732011044166212487942404661756594067929300605487345248870009701434751023653854620586000003227717029130672999733370683219300977678067270343981543396726145659754631475054359307248493086254820413247932786731835954251060212821648171907224487155910032085830633065894612167096291308760317401644232978893089652311975585928939985086436480203305064764519144568608522075841588011991701642769513337761038656380930221399294352396317663354820642594687657683902614167414859993003310370145043047347588689153447293489879613126980415999915941075887199756840087960308865262943459630965279074963274868208663390464631611116849296661262502223723006326146208959602454433920627398052001181699813706550430516944891728625525630203879954599483309330820687571569759732281676504892206877349369785411457565633372766826076949362063735351853218546132540186632840834004377936538844784596209459525053495433623055178124817338490819696805303758250084795272822496908197819842787573962909566004388424854800872290785213492007175184390559285119505558101147040498543432865732441616128673949924599166787339261017968624351099827923065528505173206863500796650650433880955084854125249983645194513710397567929303017720457355990718353281323411564803431060524370880587000028711048392129207750796802298322483223713185758643083866900245211357159263059559151176951201032354663925518030866108068036036669071318341244885183399164326879834557922944257504644886731438472712742316447835109319029310320061131438064089136334180216263517196465524320836367386467900020458771231817854205113097296476191229088134286509658284318300727240262398036066399418157386917063989736467832653043018714792357372583439490412100873632682384200501759844175261731804752720587595248883479130896285488094819161360457523740130823769737702392857669684011258646244420553062314836785556810720043756368319162460548538451270291962976044367147609378218524394551763275071606368534984613831954149805289132024369791083397757227274909329442903755855541338269245356916611496748076652220170624980829585448304513036049997806348831194886479298338055816394777548113910139061776322717634779416549362723112498685824159271659073198572997700465325633295477506514474321988876302086267770049491245394346358954124727446205709101230590661594601980643900207236362381618843296713002010123133812632461332421720686545607076795142044960784612943360054322484882310125396382639763437751670502800945096571769502404114287074805554380660284470778584944268449584557450635375583299496044769206004719415787488378931494850502550369483520143256564957786536051014578066976599001380819110745361239562210031507253623662015311330600093184511860308655955249949710092262702303712843520951058408839488432169170604334079747693551385684468285437146952053195017268027005998248877571620060843072433272922998917564967847441940481131626729094135999647442936850965574101899160649169420155834688028050415283334107137337105704171487996519054074682061536656638446201804484038741917033387919380648472851264244494610195914949202743590269701440040580106062031556070297349369329940927529649012104499670074366111581701954612928763003905856270732131304315070734464176764842543095779714271130433544381190653823611311895374919937881707101997736197875846300936144969520393607225136849873376174348519240276080658052340796102329954865213693665392125542246762832109460403188541673623049432485280387879263863532985096919354463199024916056099190229233314868618113734239616460979357841161765425103156336226483779494541365358040362630354385378140404680632400861620769853013393848961778445182432738935986353983216073977091997360524350629139124805100969580861867649226052854145668896390504145638041547586439476504019982429960288290327774904428955793512293588775453503181877405191515437280990194281448902811559206336795809787947497629500450391106150695678224218387986608195897735622060370785668997789042840961893332481266196792760381346188571353949869560892089476551478478328458607919365085173137354825282927996338138495494813851078910794036546599589537704408430975970403623340855934223875272909432741384355420342249667873274683991890233750444219746860454814663911458084937219627794325871440053208499480491746621671472344267321236742509516493433166180465349563730613646410765502543388492859000559510050940861237254128795587058316366053606125228668680505480467735012707859307445864060229590062401266218626042047526474865201573929967655273567491533653979649500226048876296466580896993198953792161163668567556496007859306408828327727076989894117706477455243637328432693084364256570643395811236622133921282435286656061659003069425549547444238057517774778242872360327862430737395368985850937308688040310253988817381035441714382396318129915475489137174683481688429621687825540366795738097813113088347803820159276105929469659300053138494422898703308344294454552436944704950920747438042238597968409936169427764125327047139509255930423621576471828687424583324763515156498317409190826913348234975645067658686956696594251704806779503714543884976478999006915292894389149358346766249155207096207984055430058814686949255287178801283034151069080153072613665781787223286564953932817244381477375099007808766715140083707421388728489658203295499422375660236857743786726787260549324995669520297267433265893152899766748651093219058727894621035140162220713711464695959283640157879364720145591656784132972517914028779215662391555910726923606994141257040621716493570554021392504706012697884650074011533282941072840274368704698592319311921562608300349597973046687347362769659734159681115841734426561235432211391562386368570983664083117032959569460890347013286426169970071585598461195653621487112068457970902985964367542336969370365686802284311987758174793530655798057003167366588928767768459124240480112430467272431766058165558496347198322452186853107524323279911218082514945631024449530586275079466658798829275026405096701950165469438942469588642385107526424582834843640707252077838723873027292441391269671485923678395826803781746296751817418765833155915365602060835771779643479051729349245747669551436659138834102883503115046484863104209812796252463005312962577707180806524549756137602822645895965778400719430099333062302872246478146663058411995699169850729359936464322115013406929108643555212202965088838040686868289048140362195953481940272156514491328706493591213049462825160610654424291121688642042045948517241843065717386254186206608040674555207786337317451794880264402491505029790323791700187419965725738960195581133176178275803509871066124387014338810941061062273465662176179608847672676514860644266995955864039799111682773561577356907543119036009299556060583154151907636764218029177869786527786260226255188198227866208403655435706665898952941985563805288055001886677171297059544200560275103985406118181959154324703810827083607628114919186120293765170036674450698652170849133851563282608601409600194961929038492525019515028935265861868563240052092238679975905041007639594119519178799049807793264319349784944872711980896405354322587706002545376930501673396078313664981551959941273603284512307851019157678695405380141077536168302842128248120678750847369921958614343048906989550886794042214479482312086116244068212196150424999449120010158014877220919474314490565342435508224426645477034468675070835973457238414839667593849604542317395192265726796196029273725303875333136149358961670097362107249924580489064397331158079724960544373477501602268297180477646011193772056096166988827704310846653414849571733201794241856444700979204074033753694317578633224955540214769696541314147237820754799101666943987982508345620445726190153538591569491761974355842341585760434139389396846709461235108557168576103374503243611305617926792256394843096623377700294294343704584245223514863341185266747021794093354778555959226571011497956261616808450307689104952430034622037801304456813147198933310170578242956179303764249855673962848922301533819028234225809146398394891953253410767316958289949786306673538460758675637792446782601641071886777243606730920667377453845439257766362928574263085243910459666134030804523928432807565813048521429834505198430757908325628839803090845682098639365548572000136136151996451058140118602990007287515840022958743213555930930422179301565980099932911779726670017316944125135448631264383853912194003062234778019112563128297525020329394592323379596340491478768824725507858606781487692315021190426167670542076539925444825920585713815247910734981676114980016695950276075098707610716427224091387823586711970985499854404466783376824956856595199130199772987861656654593967107762038948049074640883345405970747586094742696278616167735852033249994175150751901560763565429534857100212859869124407982680794849772843909102660077264430664330388364523344771848564534373914217176688805132801430339249931414372184253097059169094064956830123566777942951615657503696318226786786568754629398704996768613387756832474953933851660887673723483121329521161282307557891624360996263828378231520520306599382887645853475239795614990087673078826085480542145784071154783284707450507123951023245382771929878935066093237989994504337361177580373016696388640702623146840957620963222135239531790817211127978559561819192296020664210102258401477652920966293488855812604512762068972357525406152950740300295076178596568589265022307793430568448115730614360427908540353234568560109951832161364494948169003269533498795334441935515746324115391307819367540284308772492421428372166358755135019210139543700918388776120775339660641021715594718719648764246246696127836968226279735666255287235160503812949922091900625565477501562470490610738884695577742600592453552494605027582351763080852637172821891888217879687740168761276243444206121295690627883747981368702094951919588355029414633170088910668673392190737429378038772018882848149565547212993746376333569047114324928572655509166283765821010109768521166403302987293639341140048640504717859871450038173151015295624917549976100725188788750709957119650568033794196042242973118088561234738221463577709702476549606131076413983652120571266816338462666227312535500167086457025158516987840020602186841739988474322615625561550401426623141760218261602469282568471510627342296682559287118876973149108220363848145882112740189358059769787435776079371633549393765304600015347434621248578042988314890890083165633774846978847704049368681630027899726422182790148497487420858877107025859982919480649080185905909104215146736489382239633566030110406436341176514542388644859144586526175343580068963506791610351731124763699751776470122878950818724730218908424418201748224604690391466984427380489241800603849363629536255668883164666447267941935728664278034074925263008266588174519259440103351821369340332845155906554533776974928877618678054859889556927692578130992637685592381229202707838244504295425337661923137675779463243412877344564631128991415691673059723083363270470022505717505014981220224726281439470792232544426276849858217645989571399159240785471576906490806539478042775417528822403932582329104092454764540441066357174947346242440383445964185503429966249079780298656754157859253921849220790735539744409298893460753461777151988368052979285993977623429864026510675932994338047486139418658819530090019271242239546015349842742642330693597980811767789070140149030305063508252261020633619785448679965009365385180023373801259500461324657449269228938644331394315432010717038175636621967777697505693974584233918457063475869647651326113883458944156883525943982728500462386878366525077958624803912571284038643805576732925468753494859786605793637458954244137458414048293828036235643525377848407538848134461027815000794928198650277361768947060686809023386044440919093368739248312017101894429594838670547141353219775360821302196566300168530560607533289441447202817298566174793112594290818379869460807114668019597295197959257737542359646064818886858525086180956595789373252665767183480034334227054865644630817489533834995293256673940581896930614804949633134442768655703409055189583224138159101232822202366854870665806548664879934229486751238393041127729079398104436802521973687384718471825594166265118225090903197269783145750114696814890295994739121918017537834993810678736262557768667859492014362120312703842601151181665750181664451623235188583867885004011711604066975403703729518763250422918653497008409130324522640784334847933720410907568632037343119630703647932140475152504758121766391384333842034328394653724303892798307001348939864227885128026371719016412307596608946933452384882673798811461856348448783284530616107728178802881461234264255090213380326584529939903389153684656420120738669908808348370058533487009655547761393867643769838155753364987243802461606668759891700014497253671180192903970081467098404564020324377011091038457748746082330545913153962646200136822810721230813248826525139986723975423011853275295094614392707188703232829397860795410989748590392800025800221234260755141528160728444814286406355408846003616853942718620210621024174671121625728946263354624539969166881601958144088291767502721547673837175841976424962547246383364599158213847729384293185312905192674463615542704233867142564671206028599780840696183892697112902207800652025415024785405438444735772270583924946554531135588031645379715728943495647844271258317984046806776847915314331175149934964308228544306105050774437092584237990127295871036181861644797081669495191147856041096407165160610903030815694755404023028311684710918779687700072150478947627508461292881245732017342143433251568901604458406446431957628383342358525529860858754394920325899432126009443443202305892824548537787541377732234023977180527979442049437370123308313541825172704835144739789338931570953112059493446554540077964884478971550687582588291046368626746821704413928806412803134275511917343492147492325629257421622001178488708936280474903025263139562410488258973558461030761270106379791733498423254409993744134231867743146263348789700506199446296586701513522074350517474122482415735619061095808685232264218310118844351896255020322210719861130849853892566273616391939001237081083093789645716225500593718249342775773990996006485124006001342630626783073954777776853679412405486070886695061392408509977105885014031287609765131487433490200142420655188283972947097951356126144016286820926272222623822068529350897159832632868729631042905485519651934122349917741114442959253641952407300341614939206706804828576346302367816762154318621710780881415349770661582864843547433079714671648287084379943110924067877391870609470086580645370914883888100497025250519939763806364323676572364788629839588416797019402128913612593613181898093911132318741888103254260690489594462451584938162971117677918546421939604504148404890974856581331655744612847990250021981061851129072505375985245114926422974519269431193499263336693887199298621790617278391037706411140336648176207307815240495199658598741488840443239121175200509953471531841807170691283857061307306050761628582537373268790901678465598616709136950008722848570714829810494409714028291610772595237627078460870284791132834480542490359930030811843103411542392953797047662053387018503365667015777072694740382294218564947486358006641861891200559083888270809922792687277192699401157453028112656995039731026752071031020969585301123126730371821071897777876409481350589520850010768166320564457763139955081451914965251123670187280991247540446009474992125041400197083684148281159782856195424300449731250647786119095224794121362802704138348090830453973857828862203583891184471769179665121421257453969716054665079247315969476644256735849456607882528317919540115017693962433750339274616984853707937393429596117356872661591759147231404579931527392612185694493075318978993192420899839205527481153028755731104877454964565771938035922923157573024409689679686027356090659776496472489618532098485527261914163670557020067921022345142366830704240467087958895332980467893394198559675920985457951362167152236845752135687773046000344143371568595283039878432529053951743437540043117773231504647036247517412509992775659114579974193557367444970102386120222316991624211835577910789072256436474087992406162596230630489733286835266619170974467283557732968739664671945482912488981476153713996851370703517330521079482656611578974616115522723758538187257003738278452657562002601455380704924270036678026834038470070019108384112079456305142584432980713906562309777279404296687140967360396004469266793696330016901710539251100187718307142676214315584507111784918080222583679583761746368701102185223397716846248478713284479770091837980108522057726361259032734631034553882827169108138384253821947994365830461289729135609929683333808810242100136168320148292792527964806418829688710197404422289334629378857404029982896119098700181853308108706555482005505417964342685121445123621436175732811137567660242273726459657743153855654441564470573932012735958587133374033861510710235584073324512077281689536413361505186257366108183045640738499492577612739288494027921216695804668179622212239028269938939365272733528233009406851593317175115570969500205262568787702860342909086845537349479460841278772066584509881952923878052566737729803306930533048997982638000372671227393850176417044037279396073513987479299730162625634519825262906197974074934961969392645500304197341308551327861714192755694652570520708214611039211965499834554064181388617661266759941171040207364354617587978221203139766327969144497510017319060814347761941536614309167783838335948116336937053381208428421604232796793736235063870657459189335103387697408461159388464385611041404628397554165705187609689452165871966724951554542277942550317284598556209665472068427983066695580578785820074715505983814109259811856166418577081879682654217765106728968336793277018580338020298622473681223762847759211015101375891824465041048892128498045942895432838953080717300926176438704809768487064049359504207126173315385671266501806817166625443810232934794228081948725012075862580023181683194296591403168324833504908182194331319900485350072285380025079473005196159839233624640453750376204719687016944803988511518672232537353074809058628602281405227315388129703521366764783354843983564860160073154088723546138301679342978983855185899547325277125804745424792413391285335808856977771667069719100632699961422433626128114492350302231965376002378270128507282559283407669684278128582724656688015154705085217010821328525295204822186648980775911428664083030807341447204252272513188632691784752096995807824032313983265292432897437621771443395935735754819713601493015324111066267439904787670534892179941292537153063698078151028615880643450021599544785468602193675615086379224557360743882126236370467825452392175643844864260922681863822284978050528684403598560462325048595058733342631988170844583967526228602979555881227801521825574852956980707768246442983580255668640638753892377505384259502834015305932807578035025215698153368864745429417537605588901551411057260431048126916383222467679143829256798094288820948909843765951138012716648733315922787261262705061954125801333263038071555960541615990939991327379748223510144519718577221835125530145825446732676656762328025534303709214865702437390729723185670453220859892101054786705091017585520080058528150424111976956078249966473084008151052431723561403839972500288989420116544790374898789364337461622930610603708983566129069590976038200027905881830113346010084764624389999815649529348127428441454798183409047764820345058366108663375765979286179073243270416435578927334341527486515388987905732227773760771940706145688093957319426140618023420769803710463509044254106204494539462514838372567087043013851103410613147837081804566395361441925721879926605761638371125601628450499137377089923582398521801296371963497105482355303930349856170386228002434310778644986506371395507446013615133681380005195291019981977363747209283396767057370801721192143891557046531493870673741949939596819044161150142645961527990089549764035218971255512228634313986878080246898857001486176845637875266585604161916072133744470996625653969616973917701136715975842028929158248900074291409730380552700410976298898504362367684289624948287361038679314931291342302935305562198618082066143156371483851660026431519485252019763709611726016426495139636559869759686535469163365178715776945887326334860679583019565092530249353222474690003549095524606052156600839730640510269899125291963377445162031434335970566572615696233617254057390126950066673063919157371856627742043797744342034674238847869203189203640425205704314048438205731180209381776883831916225283857486460110872074986253377760381814683898099350579599259355500120984457410935955347955108787545731808879647882544326909714941339119531249076807983139903526246496714080318396342039390881527920652599924643091490687952125490526329300963907309389678523535063170282732705100714124576184852963961834387150337515482602476286274159517100754487254122733682546281232646582926504957351571745922782040888537884159596519545258110103964823108653523029237677341497971209235474182866420073893337951430796124800517922817131048119204530044259770891768914166588303951096732549830777150999120256716473067328156256978005553652462677495012087442695175379201419441746537307521795955423551391241333028684164428011315906035472694188371315582264111119352085149490159884759882361538848787985592033635374860428354865903879484726104101785652013652194603412441951833646609027944689026847767646967937003761738490800768648204004489925708481187061869084555625197732826255496790215748820468160404400085233864630366504241548695142275086065392247987255813725825182915026293741558109600736770243143525404006665900005813710173757060436122292620030948626273243081806216939611796190506234392892028039235141810732705136471312015346524919238213064872641190955537702225478719412236878264178753951630719280877468403816585624250204492283076203656157181701482573798594417757729111018058320312788567394952735995705328400990382818464833878462474821290395760313339102618598327156100957290308627121358610316009185923508150910419187615865314376981392924765990903773218027090269611398199516884205183959028358127570788865054774144920817203642898859237663657423967921762136419222535302649456353997294506176819864471109199246386240604717192487603635112192841895829667650264448306375164067377693582830708719956917856357741793442852200126852689776554086683798144226518044476269417103721910305660636800393057803182061798397870597110935737564186110293706262799860235067858674594883388834126907221641915215040411209066017998459629241065472642254987361162211040989599365613447484920851447007921206588594539472920197842111361728740299489058210595328476614883157725258926096431868673033040939269944113910459533931161605996854016648693203399154482817643586536765596574761106301276160732613143155618992014974462463409736578037419552603525637500923601428136312825388097843879646273190376964433309222911282589250536712856427157381397634770932670269789440642794234717744733238866140586050475955518229206423425700088428591582793420688234580581207068898171140056805612724378013622935626693379964375077045767049027367444222197016299634124733830131245803230845649430151760105396810631843777382741641462988921458925680380863413213956114534365136392234204436901796287614965121167014433685670190370446640218873657561354019693325403066998621525836342837620045353978767745113910954295021899611080276633868022055810417865891019004526686872092169231904304341811847576661618904029836656745163448382210709237577348751016107071608715687798370105503718561273067463690260636658156963009706574280664715695855959272238741011191129392375879469151801744823490278723724354471480403787982640676297442004200145984415653350128373569501467807076767888044879790590355354902548284126133989515875638383656342540210129205101463321415996350754874440726258787821378644920920727238557460829216062563770275407659475112843279526628301697862190968553712706939211848794321386272229638215914556201038717549605069061562986176667414827988520085402633539500708504093944489787391921736558878470965719697568754175878670283372054321254285635493968396327933930798121453373725133141213101112512305026141934048080497899166922100906269623023528392490356642872994640904202203696036503651642656092720214086978023265099150171784672820771695246144181470285424195191574164242882627726475391038424063727796902388544427887359647527155385032471523651735024615094491335545527333621576755665407338328717545619822274116528599760927796203398751278370983413732312444078361590453588793329248575515750022210230273794786868734845532567132580417903123485107903297542859054405918301811303268374082467362717712023272051395432618371627408297189658367507921836654849724713067889916083708260903925879166959517130902009709192980677947164664006073832931724966882814504812355995327553365710242542824302048878500744680250737348510786924868366542667139121253482612203548526034971895114390459142261153558806649032502482984226849716356659182551686381155864335057150851763715374584414397374844336146219900419682944188192144166012481893581549014223231999739874776590421227678674714477638672887508231257734529408356823746957821472751243961184450601956373181647461743541280058988008532771625244806789699275815809269412481238894876885811049542944568258572492242020103251364928429869849160429402338788244640667845565905059198665726622026987481042499851316773389496302555849133983659328266791188947291097294193987722201491779782141764584657602383204214123289215247346871942479014623636580679349118541144932036170199777191282152729202986240543801557430833835286998451635809854814065688064541484644841720192571900112522961072450423028882147010158281481672989743492522710954383761968478435381322560793781714045081913959177591775091334678227713481644755412341706579106346853010852330127459888296652290757708101431253342081574173268923506018276501503848692457886082779972424687309954901620764911787670908280746128906376544974165871259746003630394809077930586997982551231922932830311245491617745131060178840248092338484390078609735878230367798881041094126273180304519558384015695147337903113761810313987978571663051119107284484753920954574804419347162958144628710994416920995686794526658731359480935192740149665375582527621563011740834814398191270090859215887454075711010141935066002755930246659211483119941006290088366941835190068897087503005623593187824555793570459027434140260775519641253868336096850578804584203546851300381904274757071211977538779313175600348941019537024500375512613354494237591759470096219306409320297029854291127276321729376716516544888121464314059350642210383982782804188204801758403687309667472733443836006051647007648066395191797769795117109305501602475003147971659546813782269158875574932251072728059098861543490709350842319870971322827330083365737287373250022462110217819810682354379064271718755727000860879672921688872728013082178979725340024995938329604318209127690592944919265464350072283298746473375108053407347799809162435758952226133203632238400449967258471590776433692438360179745599643014767201920456060372923698394223798467420082527704640044948030241574788510941065894101386083932610573854617536389656668465794931965691724207845139727156121030725103997558290939327192519978877717818686417111365729194294310341847764523980131443532896427142264428773562225966439232733682472860805855037779794749348276914777910622078911655761252325334199619011862478811150763258188943875590161686526817954738313272359770471330422384630191827904890139598898228948760607155967103146954222985755189996507378646611582777057664039933633926881887219795399208892409760388351457429478931211305545027213878987569762406861645323840455694755959349195338063998105307877025710537469270841099211735454000298099898520634307920454228646841091339882657478697287532240066791632040768059179746657022834681927664982085340886917490441580915512551851823106067082434671799423615170755518610939496689598841309146995110172447579716079739846635482728166436011171520263040835651154366493180598703154965039082061881893638293808158569930223401555345409482334731000837086136244753464118707110377984240994222804942390156138182172835556993733170974053824184850542567747232750785859740021340845484496091459319913945052754309046737664660799816987265274390355551850673223103647823563661097385507284275525064750587144777486506134166981870164886531727226566403492316667465160557620268766412739849509614386876643026641445537255762547226572492182816706913815435034704923525172397558064087633566529790170581022073605941995598753582882087091476310847947045590540747380582662000067339783844275344155312404227465535688353641235004084377461257569117728870481785692509243668062442732510565841013089120005094034695686134626672485129943487276006198080901154601696055170349583810463611943828912398082666826580258372642528602962620057085830359198270135846226854235355299859681596632781712474586008169071269696866207004581614082226292183099576793734053501042016274140855417895406758493706321970118118476800190744906776474402865795837581501345487722233429526374822541154507763273084839177172815954905877553230038276624233614268820401881642814614593602552996307434489689819115574261631315259322024160303843030460172925439941077003288651559109397316856434946773555421127868396676559851923620336735050243585970449046400498538525199075607878388781477656117940493415318294207527554243979292781044080434474788560626097660158837567622364754659476702340557634577299583958570129136082256282896319836537348539426092382846510507432960836628309504255528193061963273164109854441166665031091204837365002264465587677695399800784993778400704284305538867930238448326331221402862021915705211610199734816016642332416102588572347959598274682002872819379753418734319041904536165610860321058064181336242595676899656558995057284014912184145609671154940809037871041160962585336356082419374810827758111177668130119149077574704406641236346475651631714044606444673404156259429824676529175815537536342268540829327342003902582893728719947240065395043871495788840314517934303346010463970006001202433378180490855470522544563148309207417121267594320150067737074858125041903234234775902324169418051474842382847458293957509364458129859871859263648480384305030951959336556133555680714310573712703552122361441497301781133437660772521635965054370254273031106418519421973020347017965444284110633546373300173613149053626636153000824566357187716978831627904173737443406926240477972742538129946007206749392012672351008432205796948459010796305358145061055913877029561210410512044038499633328651800730956402879291034553905199417878969648347761001486886951246251082995943327458396165493388545366487116345835523124268227776223634334144171096546808114614904988015490162139311649813064506146756909024961005555358807810366852357254082302743568125642810131744043780584327850839925715321063371567208583344887730780141467685115018438383575105203031565462886273814872140594420273435144972392507322655895640044660178744289866070788997370377099923779772377679858868473864186618895198602609482309358452422659538964588762658373879820316683409242573145077287837290979688316502327563504796098977326306506576798219444407321984331802173439172758020224525323673437358857901587750135125481972316601859234289877887902208518702129652635205393963874567084303587128453419697788519656529804382211631118981323418074945225417423792541998710787000626907348308879424390986017922589964577492265602005310842808643529428875249140969999492567135044760720158158479753217166958278339518477432113281550234105779089065627210505319157593165890754530353019748685454631154216009694685532515614719150168809912698736391560899820451913229353794131476571074031044889354307675862836098456184804226633031492960583817477187711886992533293626011380338504344151601727585896697372375838557338169835274596246690204016940666932232281998200303136009106411311065598385300777292311714238745203445971285565715748446088955209612483248830881736514714844328782375474898259063038656770178375360627637202923548800794781217408280467332404673662049041329697937461856793531032938756601344215014176570061763220718006659717242228010639867198954117459830785944951780641511980722254084891917881825501246016519973819453495419116767563785552206167979366829208302591054813260437455952847674155482376451552726241235432548572907004452447331721883438218719698415490328306850043436762390589672244559466173863533407218806750670568179894094177281362803535149470727881609344017496202956892912759215007328726376749955768150128709183309654068575677020087213503783954359454459313887132223447184779971065183303718736000912293392419031395577793750759410166409516391251933075443266741038067718521572188902414975104732009263783440072581346555523082493422158510262340093686599529183506067228151265151028235678444573048787471210507023109334954877855685671570650238225765037800499427510870377920440915273822143557407429598931556757895638061205343015465030124094731225069030285114358558585068986763311607896880357190110613249657462445985154018119504435214737155495815870186903322059402874029564229582316663274869514275855887910778662357799584598419711134648591516587939182315443278491692823452990579716002277488491243054885569956529520023547444163999311811431021865097816320958070907196296822676984899201218255260512143948726509990783179109178023566544091537443067161964375188045564782181038046379671330243311444312693592139619182699695482284441955739540454298872207970806635668096679986219124362712657253687626797258959662414565161780065909886439358206713805491079554272488909954301192729195489770754168527150968338180857798468225487500466466334422760650650746804564542096993712478829191830478007845359906923278753736936085712395478342653070319410891727335089620139539218168111164699946913696036249892355034332039500896407950321316241299635756740563840138967179301740865014310167281604132545436542230021823675652121779309290433961160600785168920500319082278391572209201664568557145218875312280403279068989392221301532356083837131198429693155927933874762064188546018154570569187784367739359213650344093474053587164060538288745941567947323645096313752696507649789651401433763009942539984926259907041200189982438895070274805161074231773570555830411819990676932157564409416466770096889022778976801195562492232106051529520445495870221365291611847380181331774828030806890433148730416735572324019462671809470940421565597982915206210664556773557488809080636925153482287023063268658431982152135741895705721813428199094537719275901626957252125567038378876854410938673635582852093131453803458142265937457108741447140307218500724988810870930122698163913835197951905945335038439725460380959721784965512874707517880353781407977924060061703849721095358422453244101753279504075285628310584597439305501992092214880584303338977197132061095964743925714845968680227532492262967313227555305711302398337106520029824032087167112209886592008475493811793429346553326791048292204160641685944953484514091719621327072175107582106599967003635655462237652238878683527112191126634153396482982859815042048995847382032971273986065304713146480971677129823287188403328989797326480897022504228041170813127042226749310321273212916630409162185144194299880924131265158790235681497076432267841549882653421822022731901357590194307863590048806975916041501631897172565965453208268567845655717894935371581601490856832729125275531439850936071582067033890729541495956035492979271632278446916184359663024537338439707719509653857103909893371817171651563141480521722397761484423301999742248278769864107540923026116898017222674392039661050931836664598639554429568361041198024802733558968589387576551548011354253245781224079210845391585683979997368737798574998991917942637941829105267737928894267863415548142244850996476544974070757626598366929495703738588389853179090257204783664703360318904396090178865837251852629215862583481417484660442892889188718318746555206723420430001155795481836354468904682401081842303769637558030663542165245058217121882926951332041444968866024078278927070184911044725842880562421809923783530135049477223058564542114850414280589227971927157283598946846044863082265064561373274061259505244077442203300202347344969474524246951102982772647253428751563453448897981689385141280537746891437311374378260396119419449591026881003008737175668354010407175429808728383041557662597073925041819187874250139342093475212777217391426095547729545220269895871643085041021656120634636468814292651184343046006902230778673155597159791683560301284568821442163679037168041715690751503663302018545735204327199111270861940040829962861901944834804685240263693952610930880862687803468205156321254414754899937104108893023229839009535766719468694081874598557055072920044579928085709018785911672333192484553976975944783393516022773997955187217079278594652794567906357484592638614359248597120696421829896846082932683537088005572805037248223128339064007349026939688590859689619472956612566352601012759962056798217121167816576566097943753974418530937804623113383609240871707492231049430426123659988959165693078480427011274694640147740385716919672215881549527323668695340275554390412532404466906957082001003053793939557385458018512874530638376870650625414777034898777671740719301779085752059856463932557223207646822861030052500907988019036684407276253421092895236801389034012689865818660634639075832240255252597765509752776178381577450401582709022992187124875630823116996293991552673471871118931703937852242014435938839088655976880169956891932547754784415646170498519666088409187624647789567882029491861957546075140609871830575643989593158099691684190546789982226783045074725039092091948351025857463767021332584341526582189675681327148723925629132433760766955634824090826951313499520089489057011262518527779860320006714897476416482320137632278116747728662263730077159642782885792678046216099597515690547895452800605637550279322407351510947506910158169306410139967026996204838332390999149613004126634977018439614843697438224340994898757746956789491162022466647363020282065699912554346796874709804415922041483806438015512074923843319567770190980070651352057832085576388762677098552593886989813614899172408038540252599624718533693821556132375840856879927849784333114610366890424228484630708757070505806945154466098954194990347959272155829496422425599131404967029214805076123220071880185573893017885935120914566064567525418240234057079933058094006237470773706907107694344664842158182571383643627900744797151846540393234303228265424529534694348386271269728840431499106183826337048463897278227168078384558220099577662990389696378974270001336934787012740546808747199580724338976061431782324139989520643592334327902964098759877461230757887078068871966032627983184705735608244017088413219690294266506262753658047347914756494654156490368575693596851981097297772454426112149806194669192670441075260257208710451482578504852508610732174545273539534691477297827790666171930398519250810348082628178398911907434130641155251222122968224815188084348040033092336932715697335434593555341749305745199054506999358363910692182038607494249530082408987729702555544230027932353405432587698041376592463762463089972780699159851577956776494433569002309099831783657975175322694453944884450608165570022051601437516594857000830328381365896786117588943291012445351480514422778416604804722959050958423183379099693669038626745791703228741612694770332393713772388519238583172339451482122165728951283851371333334785505586554477954469651298656189459641844279258095558392917842869716534739363583446407670636916587485006479354274936829973786094933968096812355795603001424614371263476508320481140865716939081070500950807302085843439709260556356073245051559330793657988749108577779408327552566956163099727517041773900730660137973492374763312802687813350471384875785611473816751519241934120462039851373753483769577720779118922751687762142773869661735495585212102974298783610183290516717869954056532002164318138647132460460669583595083203432129938251990207472509272708385574247362574963172217261173998677455211566767242528006064008481427796650775669176639987599462981277156939396923418615397256172263538008162874509435703447016189984868054213856500409103160088556432131928903479344441660699298617008878430651604185446347399102422387869425821215467429510507990310403502996801368383472009085359602248488842324555734740651390063926042016757828619840804418872681664165258525203723520114374903525913024547801942893317273176386837183660018145840831799345141887552300889353235484325456819622933320310991579773955669522672217793636177782968158965472094648055077702058223569079200499990784809625266048102536682466612538657718151887499239305558830128096353287210118545474737917704372235521217542027828827592753723212755570384856588764652198971855053254256666485975324832973674687583314766779955780692932529418238389903982427633600299191469190775263873644813859784616814512977542736899181829379737095656423872248103178982014294229385999468513332917158761767373796223374110962895890548963281766495057337842168895384739473847569068424174800533965978114194963752169344963410007262551315318396884772413305674975009432808520694838959416228160499667780693820477665156142539855319929467488531664338328950941822105959867412342184061570252834068539243595752066458977639028677310490103519544328021583361273371846194954014154418688858543088361499293152493905664021388586753658156870749511345192905627691300995067376139623461187542500864882044018420251727322416385884194611918797522458573672723250105768004301043397043944685426547755450594773723400835577843032881522796320166138593452076129245438579127469173658213423509302939130049047036792227724315991497435392922156279629456592090282711293442828494620116975714311817285481779872085704051892988285014405640826712325151115126162027644408433261384117896751018848413756365167458121010540655241226651891295891452761887202489274032546923490073048645826377890479365167162356532799589669204424803454970359494687362631270760555176969111716956732464442765076171722040841994117180977594568420707718692995059166278985020505288706729353120375576648822997582906281774358128452654174268687279909680562530703058595820507907276821952495289983649350960425140948732428405884112117421958056711845691433679106482228413342229984083111413300219492750328145377520204862472455507989730973912846949391457284786662092559412752246476508362483345915068653425506045833395621429296416411749814214528856103743776243976814976133023110980566683001471825652597409561343821051232825098094314790160411963005252953634553185858702208149399622553052040223238018547443493895193275621631859205852524279705515651871334810884855312232981904229441471006494882591785877852441116260481433302182113819506790486370404486406524862937926574580290857558590885680619380610847277852472567737472309477203171639192990549034186576958422094008503881078374844422830090360981910447907201876308686676634887620722330311271679496135633202455284275706499701066646573995487112066801058080863775768282107032553432362465137539365736498124945012640554806800496191813238367699466929807959660227026999330968724773040428622833660913199807788694309476960936610746318646838264599794097529785681270839245136742209621793972216900953062263765785433799026560321877809860920061846906193464975224092425893131185908119570495136405695229217486997247252149192416974336869756911884959730723805086209489215662185760573794761225242880112553996830540731389229278275354874931346593462757550392900519876667897597149190829517172148030651991352286424691319952870991153867285246329949936065814247170625228298586739372991457340510519301332885709829951339725034291714307001186185982761006410837678894089927285135673216004214663923466575215417112836967111878276269144112575821945038846972890517384721196157313207541908372572324508922061895691203126155757702356357180269127452981810939660868235252986649156495567473972752728004278653950784260095940019560299068645726587499077116101354562640770961967383677319843579199271957378220925286484940521084673772997046043629787108808816793781913139382336017735026824907025975675419885740944142036679564702805084731341082833927169715550139356878944260470625755892731431978585155580628614047345164626181133730950297506930600288592150808641199858717559844938331076871790148087622970124267940461096436838937273429943477725123477896010267514118481043630475082627587101502842597047622748305033231087898270044668991212758908291099265668664805916681017752197059576117125218800170366979776568271563785399421393773416230214973821374388164916362943226061384797658414491610102157279025152110057177889987959261928262440347935377858659552415924100963693561735507248833086904387697274598162794583269870375378780637559468780906371723604426333332061067303185228277274398121848760967904163479794411169637537776140050519809550037194260295067574794469559796470190936314109775179048590564610260024815672741381285922459708775272976440985973797631795376793617590255312750293980129795566735640324110031577588588031637590902353963689029803421678083770166606755238874662008955914156090221561924466186833816124749289824267158553522639352809205701120988951750819293860397684411110931247260186238988803007739103859480483162194994543210896131560749267458109626928415946093894030389287305627420168709361418753098785172685583288883065540785037789672140432318885078789359252066361815338774275159164452355979811353787187641960109965146396901972634741216145898139710015532774285350913082537352351885160055304919922373392774946398340302180508865548174465830505756891538942433638976076227667744601014311886244486544041785309722831463019523694027351753920960620215220452865537686936265807780006517279794924457537109898513682190853723530473779225960916939654777468347302952859697656974062183950276884819014748707964493199767492400413547059991292292287531286376043611195710784066636991282512005286080051111440081741015551263046640580727872173430955911358306249410702684511314851879956168685728033806716473846028771931736320001443830399517112242840396750326607925104121985309844700083748537907189003344558763514494137241337815691914426541664115393470181252940888464300457793605547940189995396160065447907173627150601454147175551907245957887919097082307220566110288672215317631290627876460875961090084376883295191603241829656324387762375337090919249119356577975744600098823358789659079007391023008996549846637218737326880422551116985677606606043463677471100787026493227516208963957143412022273735536535597825297792432968862559438274070719463312074809496870840389367254658028934132190243641558755700940440830789664296320714496177353927038217411687800851809286541531483367965712701447648311502983800936294880492299735814750605561018892126189958737954490885035728882820596455073433641990169251306479859904873760965768662609965896791599648535629845798450375786663802383390876281362092788792735757387907396136593351014170810446327338844069619692999742208630347268964164975597519608013126771485732302107745451957935888927521172932910648130076768908507271911524695071914806510260239705985427842774669327760631062188938393774713137276101011395659710341526098655074739090190363302152608815487410976355730373286030715805887977684145455439627261727006985692347049304695618705349872321750193264326755104307922736401593500698463473843030853591595505211106420581863093816204291664731635103300526615965332335576842155887064660570156274851676553737105028587048254268136366629318660439535437246236781084419766654174172104351525045401680874346762821927833314353066297665535732865303004696526560841415620269758943869079347061706977996240843418616248951842681226335803222962276383845981402241689732571239600218402944665614093984236803612937126209901698117237918957515258620329706681026575519152161800817319111517015618639404941216509634637346864075138360985090990127299418687784986684801100185050677581722386540140486700004886917769227673916865548442716256515659710146061358490575239167212066656054382954313687781397946237566383463362145065844023763655566486813668157329824340761108016989078900529970629563610164656277109004356846008523711799678875365826187928711137593462824889041475573689444448899064499527801928052739401397588929690772924029584565774142642013248390120791714738992850965808459213873418100390419559346611204402792749228728822461031821735407887909607697715375445471478679031449566878539861814108757214379148061224051011791548755717312419606848005625621994373856424263290659962016444992616922455926021193260445446866986724992581010415356962501972354889210341896083460784099413153392765763286691517508880392675252317328313079944810151296298287712339443017595836940931471605973690890090811149195333793255890894472279762905701347687625815011224286654338813853590619798600630368026586016521697815986552773499056794146358011458441834239035305417274117378628653880287413632165670945466765070010111423765296939379570358692958519886334168821194925821776250774328491188887352928345806981165146308000654409097405425132859224808495703139330893157566158660772491393302087450250832445179610824217347540225334575905505461662956637219438009887842589445186422615377941896624148219088855034669043824837256229925566048422797658913000897492557423864971648852624278831201500583723710834171563427416767596788234875913845391145138416359093425033255905951837063324802204434211464493693019204641708992531843202407189574346839927262290718912390185134680758662286709003777775328249710544246710664382211309217838979659767349475374130006874089825857191264218945435845781588318189031355325167591497212213673098382227524474057745592439263519892095129072438242513530098975380356780496516705379227193130044447805435659566586579739079534925249641951567212448747415213273684871583391643829570171227741100420773709169358531836860380079581344524928796942444291190710260701878448925741969032315641860960189138193481970868329523603347663643685468398311464270596033339050521724091121734171985024250423385913943676198819143960464654931585963750735863318282816511766398789013838306466071844157563286730964798869068742827681442754093252273495083791495344274236421230956194499550019594122056239566405418111626418311494500757327459038780264350564437068667805359374407127977597918930908651010267655905701903681240007376496753185367493410679436523946218274032339121886269310468481292842925547050556770963987489238810310818073807798267627987297266464158763684705493461136250405857284195929895223388643682939273343260927539992269031206279106699798297488639177137497248017640678751428417083534898044005779729950772971898108223000207436601631715035536887445994950734554865816103385316922749946309506666379731079038809749092903282273001331432686703329944468422978392734192456248869430598450778235700993159610024581203773522131614803796287526534234200121352844547544108462632868794565524996249591852111285568234141630718009221224565814723808922211238164415097223237811527909230355710071111461824802875145173928558457011772712895036817815277713181245478822687249140788704224761445976874292764528016621429668230460748828794525016968658087468958680280519487263382616351052600565784981009685210681015953405370897089633384307147607636890616133901275177066415832868474222632492457849112937045680291353495915444962062757502597239484074435786215342423021869073196913429589497773070519126814714368716045827507399575322506953193545919093318257938449577114582078159245731156289841359056031156455483214148884474030347031305286424413003344004310598210300562316813597631185105553816161757147901644604044543657089454617675304865863495420190607568644555354228494931516690638722254532311265404996871151851494326949047442623108656804749172825498834756035218256539783857138596936885167702131968540933168908447027222657673699247875467242274070512655493307282058508295075571349762694833853555290040656437652790458228834817461717114772869052344341138023350050968896395512766691808717596986760744639743619190091123352249219426007311873007943000064494197849024673004410672410295420205771251421407360081892431078143788394564931308269589304438875571686636872022098683448310618952884366874896359053106889817705812976004102401383947331633906552514822886192692741006245832957254812914793675853091777420018241285786538714080786069755674089836111081950383995298396402688399752946539588460348863297622615443711042040371146843450843922855823972820135268769040266524933506906036730055904996481125448978179477451303669985308198898485920499508607197072703492210486811831673504959139883739117902971772281124702500660865737973855746694839434575018312858910515953540768618631755917310314572359739872754309647235164968177232542862972073495881474691839769175852581504871436649357892540483690034486556111545628671078031077793668900726477912221632525785844783567003115987400119803576771839278882188325547299121378897856287696885874298759011306392256670714436338634538815038964365028442393019011041812822310606127508461907868441935882368245899452522862340503757920249690702288444768275322238715376206472184639670359787719352293789951517479638538165316602229831297040365738488483130909437052400666821944257544865879470271161612809426929412035921679535878538314255471097321472361064078995349073159603324748999956524015900251868322311242283291021546057186290082617288649430244394881115795921630747195855861787328029498057804385719970004452746599075165924151733843156716084407535535515235644949625567455242526228999001744057630672397031822130093538736488373912071187746706606793770304181550005366634904892459317240630968723952585842069747130047668014272666817114105428340503211578787960937611910311894276690290987608577911611317190041660467402794034336198479591416054640607988071211071154503985091404280707707933502839387017498619826987370375613384207518882624710205704380473506464163166787882078132655041161873745321884381282901902849710582279495237079144626209785332768114737735227354995023743925804111832640103270052566306057914031193932844726497445545475242585864873164064107845436249507722932529145205534699663256945133924422328051165910642516263601847860090775678553673705495072772361088145738729225359222619411948184645516888290044918115174133294674219978758564325072760943132702050302712168014357769454463609042933193667883935274286345780908792458308127472111954974590424946953262841114991758027529774193500236070909596312399849867777882851697543253464899219685442622885418066623838489357429726368320783239782852050395488185058765068082685911825395952385590603575801717482783774619465626463251911720066738218369293007452258504003226868031736347315940785806416388671955164898742643849557310915985552740525601137892705637492816171638734147138734392680099171505966331691296626507620264762816582913491478471661185592507402851810508466041628133884527314165412147261663676999007638805338086089657247102060257279493621587264773961014146222911972810037505482601890138219638139930099027152119504202303203701110955699758744088612375674413181161996291340372912949094633203206728411919227047822100976436466709630374434900702571854898329875349018435320300112599166675122237783891806049377976053942192144090576381797699535863318349548014204156047022637194622706625515010263416764359155280859925243409880341174516190425900908640385353288632623266197620517688830402818785699103071811200512152448038913958422212838324744602085218908609502692416386164108873808987830645494270938658684048994200991165583446202691729807995649136340168454320418384196202865210775861632588932756177530625717739041010581545021241113104056792636719327480879130213378640038132000655354583689838862580285011590836025253326006637927056156987285928577056231590605839848287831544165681593655680490565854144531038913733856983251544185040245396505978920688165023197024908263415926210934196948813617467663699793104708194886875431725182984756649455192290797111906942068211109578101406639991550024328604398236586036170008680955601724709606788276054528511037930094401207547461395533204093102591032134836636807324979200278725155918887401873689969878866838349640317760464772805865703572471243756976887108495172186385126573835577150556510554266539567620635309682447700686262123686924912911453721856860897665330802643962549068579569880252425866265438688488138867203428108085999712840135477680116761318710634005878319921680873449966450661991884155363292033706418159522933700934037533726058665347483654335816036249868088303449254104392131933165510413211136726025915521473668298899698449255989214945098494857771844808939892672689371731709217114707415589531510010589114386205509119947718692456434482108794519768162770024019137878149002067718715140667234757602252715944348558877056022909084167437483135281947397835827226215247191811647631517893678862118724346153129614672449864435844331693972992761178155422704354050644875566019433843912984464371798005404444797651421065370645549150231242241245735045318973396206806922670884776572114195350883828110125742316511742438781783141532513147330265549453845452667314025109773319874194353806068514724122895578216131955243147645140777663163745988568137293567923364957830357494777369094035261925437316662463909022240936700411191722669176062615957975648623459837216444952171272839844853987618650497947709491735213088803988146260223173064605997289395296485774190930748022102196485422457892674561180384993545627954318821025406432207455256748333245560354324434025146365888596031038912155471378549540831000151483567422900003337445748343458200234479230693765230556942231152664120101830904272741849904459405296038286960853997868728826821833479091196053559539886032446640611795748642832344779155018609863365512652397315152029115535418294210848850038959729463541989255441313499893898983857481261670304327252110841858501310008761062776164260513893700969637613272638354732849772693700099495876271471480919094585785956696207557491199243694662104560968189344713373765969267941201148998895760703614295449667150923996228037392526092987206837823556961584613998327783148906872535477394070190319109855828666897801121701024566997329587388303388093686614787305592867791852167400176241297608344801466733432721768402129386172354582593323028476437323201075435090729542246490238897139890663568956930685836216445287062991078762776332871730002171375273532598086305292105857849339461936831197558315166984027072376522615825790100026921204271006997085156272600702845791678147088020430739415907710596371342532353100858780196602121501285446685375701013209496940842918570952274026958019101684223744456409652511736117776547053224674829795007337660531867163417973497971856472886881170756224147089517015537111449285429004980743112160116975374887012600188414604446888797776628365966622604123561636588944349211262214554971771289609764792710897843418516857938204557727495111290192494042182890116696662377647346684471858785037244874422971650853249395555950523934396580138952886719848529478805584731347479743753236319531470193466296143418808426389621799735612487794880522692269355102635165054513603091960692175073601351178015792509241973767738608459016277418336366312830393436959894612277711676152282369160975135194723405355887013147214015809901997906631512837626878875324372584558144323129954819239709841432092288354505157331321317442646148841891698930578726467648863339623923602197820736904798365511386149664274201014586549765877471441634154415428069135195534754940901580046805814439283060969094072611121959057545435701444392058247900932074691065888754805013632072426954750731055719802392146935361764353696312252213929824790282619562328558076216911036192776129454235516791121447339621220245957678973555453946873414575003475597532643344994341268520399625091189063084676105936903781800759040908771535984296593395393832548051459080334879766191290323008259196123461709267804596643471826621740647039432020821860686264779747347689019942736841343152477862476525933609357901468775872760608444297601928503629070981290068800326835056050350950072173841963845821676936190844269915610384594306727112445132908037010635820445365943028615970416638930793183198321158315001640618319599191026906466440249620821004451996457654625814288263872247428375847552978831969374672128305141640943764277681000331016050232550015834435292419265391610981140408000492837622321467565276531824235530253799390766689651043169386540555746080173077331602901407438421448745921777605829211359000480007412702141001939550002246550606410904638881008748609463157099966702479317984535347150716875660882169503681880340893394536928294424010901281538186373306774551258634037185020960372792754682965774538429669728457982129145450359852718230534220347429414414802906485033668097044542188066212388901744195756860583016473798959427437697783916912053217262471424721315154172529441870613313027386822110896820825750881673195061722262769698119843858867220188659603705642512053060485493749672559907622101217530360559724135123371825135351644299540185076114428129003777742959769170900130549153672528656451615100649043797560406065092808106983869141522854481018372852468694644924538301985863879585836864928705082458392924323072941031691042466332116920178885545883036252443739812602918245932743000647443753793943351639702237567547117162654326786617162554758839717598419453846774703151986576852276668891867371767625952774699096976307269522819783631984061774358112184289392986834500209463428701421240360991936755359422155763516851967568312578408597619004234908339042270609771175847510385709374502124263255137226364453878844903095640281794482725987955579755639140389877575872464931285448130573846006657672775423598433340643379047867369069553776496676807024692780118198413330273567737178939204042229965268499963104631075783948280640440269192013563668796226298084886840163922794994348706616197481768184193395743098675212445827815185556427352778686177556204198755616253989355370555627788886116914365219436178298976264357351092171607743366258654259316449205037071106597959186425900343067763508286529640957122283243791643724682557851946623473204982996277143522437770719865116105196697523199053946679426024090344986574774599842675711524762616426097738893931047927845184904174668828813939895692706745547937037781806995325297089913150818409914081298081627169380459732286552686928661772073166742242357652661208691074043975975382958568416081293941383368935182130138543806232432209864803607820900271080877113277009896642202386893141436056980882476342720117277710966532445688849690793184346559949281716379838024560734530007777606456400287907671209564607746547284774476086837715914686637094579133263577058983892951265290691465463166593618051001874067484320432207701766967097335093439999378850662226332035769255107465321033575119913325466910132227849830908264079466410983998949726643053867498412055355304029673248036415837825832277149737663517559214723078479466533217647354779716581928975359070023281462796566533260266966677564123671144939554350767227026373961446332019220960288857592508844063581123061076521212087857923289175417584876457832092232646451582624079289322654126041040278524822331475051984923114102352975560249444247398458091491226547643974089571883539848033822824339136503264925105456223200503123117915146606303989204470646679430958014161440539046292303820755724932298631141951094121863109563836480212003441780718527758083122629192568820011963684375169468509964218830884937739591249965911049278120567998122600015493146800593068428003702851111875165894949959877141269145252257569994538643771910940509249009921227142686939433796918819219591431030188558656701564332140078344423980396551589352936943365374179718900658297865240274481726910787542952906321329084674278289780346770290492435492388614249044213657639571877769612673317458757998003603371731926374818075420820315586911243710924036586759413405583343144274587835672842900647851991878319242164399564743829834814279207704159751144143051102572306062307358665324912727411451579350612254503565120415787858110690416713430645804656199620005347679010151351210710906990918353991154015444628790335312124954474385933060265853863794052875724908517568749127289629811537975597211971732319932205673783899405355428515503491752439324197102714437216679914951905946869242539424722201613193360378270254128568321395071871014291960055189079098298133292514156535847876554524221242313040211004224867281639198196257751658814985726748848993072811188707872933981147187179064999397617155688020630911202151973232389892985487048012014301013671744542551270695413610674928973654099532361023415153754085945317025403210193876211991301717214270618197637865778470304875253407753704345885160771022406543439363926146498109475482234081100240452247790578487721039393908184167817596079088269532077444868813670135205554824245383396054491961200002091982940051343027522885022102710975739970644685439531292338922072559959424067275922576055646763906217955255489644015904229096333640180747953287129379254295782667163803275496922868168353876330561494018390088973117665732341632929392141518966848659159644613930231745076399895746626237887525753963860563292391270101009111668839517447177720704836842104560845555077592131659379039908129899207843801946149865439430976559561127211353269954593254553751370636690966234227534416077064387801910234084542098605005559159457694992005398040700740578528947588294967272647235161161612861291359730207751296151509283163479005353589672125330404949848775179808030029368539097651001366389930387038793569591598121529634315639400505049908021318786279523933672904764002325452405853393853049249826139650040881415144273652984969266646143834331958464918597781785749710039911291977651228549383892083575756285634772925939381691404822482037862619586262979584246569640750666668925444447072876753551571660988413737220631369312584598015727414230192398299846831911442358571183621423916038198411754626435158103625158776059585766545346807087307194180715171665082369468392951982237089591331927395498587637296916896972070669565108277346986832443334886530085670926490421167771821693600664661783234751343533019635356844359240696740471245254512402343026132267979919656774981262582934981801087579796282734295143558209434007574561607059627072991961319968760407073013097587834780472761806049348326962992771172377550223148429812697587739184358618029372862785599210347173527046820759666179962126665801611002994753634007471424601083979121065084345937741079452642007727267866689061850874334369218912217253665049363161574305232716077536253725527134272073186850334821053848878497541062190518096952989523372782156022782605585014774471066725668927131485178206510442545453688877361975801491467594700124251997228165296850394808618923594798392766068629050060526290171400233344563052132638191752564543032550371950389779589338606830612060193710810559539648680672599929838457433809406602071652465394068238395742214406740256735692922022402689010832751706857283920341011063485910546948717189791355573764590149996851424974296686264992949164351543521199225763687832706911392245880063603413101485611905820394235685430684029282857475754432618980681859379515114072832134116459090525737819438095562404326105497523509974576538710795577686998161383821684482686852756954468551028732274578638292345359439504102477702774261570057437184530057473384049184001433647851268605042112553850642452406550744045141049111135629526647462977771476654004566195030048213543866159115288117650003189368555982225017850012151871394002019590979476624158859033325093175671672667956925375437216663584113249608905773284788095861330382908071381135356736778591429478812391404274952775365944595033788098142492180573325973274765133878141391643897410108634559382462103638989130072594098426325758821724566037795286136669413947586296432091584583148149951946116925755564621164056404141985311451441080247032377224209832362901292480811278201898358607445564110568266402187504736922923768529798837643963972469155548651257614636790388510123464083549590739471604400175337919375422493639590102479819697950870491292513586644754471814121911856587551156854096857087415932967141035788340541512078324013121993083643556830744974058677635190959976003744733190799910917404432189220742360192585337405098890916020646596581632662121601127352010139394051396607474637034592429669913614078896270948198807713509059760634072020505334620134279550530621855313557428452510332004337107241395236704611797641965225513892971980208095145669576804248329245727128093104280312218506651431592637880718930999277919117527075542889942724647832401281991069760817322729617967158926235922753965585559935294334127400143757992361728559812376686592494776215858403062122446901139741710474787302000230550677316613083570770900705893077415959307180785596983342768203914561339879737051166422072991658474406895469631205101620526138856318341971551914278336019296086780385105267252088985016043365246026747655216609430428782411154898416324477719983150812640396434525178309796146309271257863633378444952871598633300835389583156687139564355665660711648743757649737895517306953670727544384918793413108586851746245425091731889614992348802110613661954312533060625793665809101381310092588671857956065447720974199230932579048972934493626885671980547813794872103205932591071348593286368293733008942525481563858671620989892191149130673813883782491903790892812837116609163489393555086050578815870404755242619963394079657652144291834816617205348278524609986350166179352151043880053265997770045893942999732921955380486157359977587391986020805705954781501922035033139086351353258336865221721884185476110477648904670329441181662464942602704513673036631427548259913272003979968847636476640548933763613930086318734232867837502961512987523016888174202987793629254848023091514351487866739079324992551903748090358693012888877809097669531605091623789950513650537001782599432052184113479663367923937516710903772196966543041610398823809273791568962508403339171460335299260145237581991151630702231529579109294834435327213427686581685384188030926894573382940856533541647130023465751748891834419057774993072841547779318130688169961767379752603267181234617634923664870201537326803549103915040124014768720262584903058823221758148901093520540463680111988222790266891561307788715001517320383644580973000055535026205016238574149936547130716916845427462117472571938624790173292519189699268138618953788665619067935549814849328340553276964242825517010529068442314603127668222785969595614694165601580402471259600598217433122985298648800747760609150483789538020668122838029557906965222714562722640746303727656525087828817976268671912578452766715795677060391120983554546551772498624512686818518095219094055912838122080468331426133925377974543073089045203310265740451855281700966513639889833860118538574089092965766456866241809029684413497616481242577648575198211903102533885945706386420280348348216116867739967750144400009739557695760615348566633513677304579164439323068248677906094370835525793474979552733337699763209167590561696043751383719026863453559362373231874569088433087225438847746493878091535457843813932487960559471878617556101072613199472417474945738375907554059612253618527012893205097421423084174851837243380048822942484865692067561612643617622009044182758067975487066754023520607712582534310888815314742140359818898258792402453218332880517683047092352755494797701801194641030552734120503473466878959673661949093445956439493762515945283665390786411365715891279485867323526843071727895210028051686949808044623462284300274921205728541565509512893575931989729776169770625094765213204768537859318475416684667586697121317857072477331206503303938524724902705983402398682122187978960404608643191566917275262715869836923595937109145548829747348555306375172662320244308655898051984255975385950534741534056586173572252414070987493780145825960220339824845464446975868581516023088272173290159108247442623358521436552462048427124388258876332857407508187888979745353399646845681701251174009153742818616909491018133214356278751375427024602135816552425049447303249742566142066644941063375608122790197293437810769994660666359447135011123300593724403496070292803916344482235341340322063846949392064657992044380622738925207088443933914317578184224064894581615299642769966827986895461542686346570062342828881489331814673144762262989783752126443907178079772021757064181847824250337191824089210895497285965820828112399231240400246593401083093355272272524645375056590024954997164610544433323513097892249674373290287491838250418264314036835017143812931131297142981608313981936163166597030933734274740614993862193688467495015571594733716070573809266838242438776949344609651613320019174740368859386118271121955624472878512890561861311468843023697321087836951427622506793187391678166709430354423548206135880348353806355802364404201586520617774099491521083712768555161221485330831810877845308350704747130267263064252216014362209528587938173089513329235356952968128175047032231347293605378277415999925587470834811188310664417207512899667570662916772295482226292136969328328319633318127018490883009171198377745381385175576270284319141021598512123630000328988474170970013279235266366771968436790665047088609585959023495665582846386838131906393673748938695275066357775527350922683678013281525337268364639531468646705968300376423829773455922745714151917718131228995557258282782347533893061252100858181410490904637110075044334621712505038669385087149382559903676762568190601351765397679686480695422290065453844122786370042837492464033222308989227439470520265225741833168039068353446227587754574331877681103932663385717886587682918810295076724284914241729606137121155931550472628735809491013484939604297516799052453453547814659764217039881439181212686184861354371040809429404184223580798633897215033387741887000198492076053378435481649491574385405819864891013222714743678826385433360625457396067026339241466438561795529386576877099212357074986712157629172485165992710753128603833683237411561232303781459117952636966905685618284895812467835722669008973959673358751798447530693801941633424871090727096265408648542332032926887568032852474837100990192072974337428665856434046574267778958036645788073492139659996966132660703449942704156659778698410739486307788256980889607918095174718451347878003705777938334624925922695602160580014304207651126820450934047653750127852684257816064890981029598855783882262003201390296868416025384031987019408542552690421641219931664068500619637178377432429226611848676860974274837555136597052295544912492584273613070058491937069094712710959964138877607465729251456839604747713252212898152936742559113719338575243479333697515420678886488159497788263990978209814760764900027178304111232968485675783593804761940453879206962168485984070240741885292333305715782650517829827010208700235830039130317278330489939909735934598173106508496004371921804932608288540704579489922760835417246486255187039499417952290015702187345669540804697894893471698308091096984707144203579502403204994093816461964048765876603269798030501118879664763080290416868923293960206671029980131998748728559960871608825149555286753199937041051556266152305894703995909689456131451287032455074670778887087330123461856747876156104605779445840730858499323967772262166437180519567114535033207670505373085470905061359695081392706495943148030572309635321623686679721428177338041248908736871269552921118547237276745075718129614343586530359959035855907222217509040011664819587759897356530122654334376377088739443242213045058114574107508843589588672567813324980082815279944997606118722911425249051808389899718913851188538010099839545310107446578564117751853590803831240241235560483897477265847367457149123516020130733370940414948412005913151714347924285910603912136505877201844046785346111419336029896127295516312740651802085068140926928733517549702166530605701878404882105873870105169467790149025910166672423184225314619508666624798868009951197910096362666845785017287980742262510150739161890029387681625861984440633047380718565484678572214727826747071631768624215807026485763349951091243377995281375849269058472185354392129148945411884768953038047055040969950879973793045076889528827356385361157211042412568906993583453280426524469080995264741036187845419085753673572887386893045157084781998578989137652028704388871687425062266351856906722735089516316802613645745583318774873917450324096630448070288608096554431348941121999542304611846684747043456207423079522501451440386924527515990302085139910793057100806577759114438732757254777760071442332473115569124547675950686549662731349843742209859374357285289306496302292501477094130542269159287734620542143923304417055962564367188410661649392511495808794262580370282898549882431232255153037590740820092782185872563760390628580969596256058572631919079622081617209333455926491071131477083705862841611832374390004903685865206934535510003670245060412619001396483698468086670652315382573403007705394916331737825757876012209491730769414608942384235614091734954928331869384169677237620533035946927834490233049193138610443564944478628195866322990847066973096311973105957023278366322787827629752475102384530779037380556093279812806787836955637718469649362214914350233260065055215593325210619982453535784944294613487414856150629619566577209871434581012686372006470011460573130927070422556747989457891642185908136908617007505795925888973795982697175516250560354720871952638652359555645418507866224777949234303908524465676784677319915458395553223215757494012281995279492446183206665538682896404165087344401869646403344358490782583748851305286215263800063723028991558959411665534733687190002560167718752847176938836289547037196519787177373504883350860206398130103245080333187953042121652354682354175627257551950129788397910009769892288456018508100618384429383077087812388305280368371411598803735958182247556751935239190891106811877762862571954159970135220744586715720033509293003189226365345527932460721251446112333786934948962046091957851298645288683896269727780118452018313627854566087726906228780077172008146830571759976925890059911653258879624564699722789180709483280368507612858304050724760338326818064070992196352484717220371157892465123102683259411147575978052362802870558545661447887452462682705859097989646090457744710500432886936783090050671829597161911549285422090585232901284680306708874358372293387491551279106784214675662873739877355128050219835763124083687136041200298285491467742765455347258492538171860181081881350573080957549794269033847833609877852056989149666111408742231650697768145360586554147741514026321072403248990364232150599871462944162014693429522423944941517295203586994035327993395270689010870089657865921354180006418872388659158119718596714732315070441140280204406759145541369562036398343479189879406275741326926206063502962241908340219615216984025838150199214255792547248657238974171133727562185034258936538476259672911586692499305401841797016369069866867990747441845089608426018011850793589883155421383218774657190486005047264673689398436021012745461550485517920838372277367789317938158181254625590863925565066378542582515848312215828260240344177354150403164314045905250176911037678528462729648517463582847763526904023576041641318806016500064613675759986663797045286826997895432333302405332189035256788818303804906187404763526086489496005114549847684723395692061699408100841264750321425513162345859159270495588928626510735612855289534262772154802649936435316029544619448217676412804213029060243998308681275935626404094861743747188409129328608674561682095117083649691112158437037114399158903645471905918663270099842258976361122244498999052336457364119196251871221834566052635224874422198143657050047888191584392972220495741197383566941266479500040584153030282667786507278348699069008810972843343663977000002232045115780824383441227320808967346689216352136664186227636227442083354269630377163818728664311598884163635302120404565830168432832934390728211614012847586510408088268736209369150363333852627187816138581252277977315255030592348641241519821116870986814268459781033992483715554703213694258255326044639073486344498919110091087124043561884185429751570950128904982475094651899687278331267583575777932902397445416566770147548374943201542589002789967883610820353860450666194603692679280026460518540191297201750230974096868275091429424587235405538925772637479665416138107517418471687699547113987572555056546778213389762075487753266451047382954415681116671300115003877670840787915926954559228420783596168714657514145311658413123456151246119760359494960008466151535652502176534262434599886262657169188914133362693052581926135683155346211984878729447276561485089466566966011152127044906135410060722662936873907323616937521587452296764227848300035068531156544572537027293487789159644319609334974856620610374779837107921985930929456854377918338028027326376713112499157477841721332584083325987974915932039721581671851990822962454182878595911441397552746528414126564023923003205477225406256918822909672249277087544244685390660159140202134870349943783735498415830295492295592178392872406814067226489594141561432170135484930068311265534367203065668219073084410351364316644794904939535767123001159249110298179894611169170943886660305341238275879200380910033337398147148026894243183106638522456638588106627436877163926299431382875075952841850683931812404082586352613165014567256176590741288352017053039465984619086848836923262516942096480818680472748528199808405734640283470180329447689111572480388027880928491819665599663429704164409076353876165070941438716066990632397888633513481528192865242101809289773314392914529849789897775861617877593732238827995994815527542099061101846237350294186102025040550373986914557825604958878726700476446540804737100866065040941436277485914717177035739983114008025995360912851310495434097874194924704975846741749547347961356993978580575548265899551026431805618970352407506429760526073119789460542545728941562075690579955295830404687809323255307261835952206450232302090873779652669294910152917478991081702019256198268759397209062417594949802866462089308294403716034372787058965291902724536151037536480061809917005947761903012751681833099577148593434508028695525220471944380714545904487798094532964519737477656910300970245672701927925175816319130742354455672454339602453481314540228883142473657224167151377357305397306390180540271509652867964968041962873363313131680368919264209202587642734391648352813849826842003706500646772595580232968368224956071603626755176710990503971804114642633656150274754413549708958597830197401272729136611051667061660000602238251427089791913164463712584223900462330880890218318353864560143746130746354357904007513961436220395465583427230127158355711435537076158509401552155857479062056700778452186618231808910771454406751391703310097731994525378644496128430074650144398965136098924292679041872006625223491402035616571103647017850857484068527471983821552898898177429790246930177508700805708883527050969139731586939992441850945442255980813198760607850438182394824986873808356732575675022138478711684268012437363083237612600285543984991206111131847865271141774023696859441429718224943398770964676458940911250019219110806633744466907727034805771745484552272358135817956008628443213000671725644040400784462712682360850947818025500112459592081154682527425579747719577746546591204816004261884757307125733803645762138139273757311915279464716584253503849674496096315632173998561200226119125592077317799087471543144136658504898954998685964891206339704929800702291252658931287541759365071913381103501063855913581892913278312088747062002576953592972027004538758537773836535620313214899265488627463464950867650434296894261605361411139164233007670113542301944528821793595798735483238002011147371579998787081476829818775522204632698088163584118647162234305635697006539992426894556920177882837894100582927393281092782001427927306871513001776387444659700239081998084364603681978726715960975491948615909741548953853986013798931903583429411488839379206117817757691444394283495300637303665502882875541347295233397085642795858090788415441333616276172546267012014837232188388006255962958116437694058485685982216090766552715239714458934579471154579511959423554632256252669272767415737527558891414892251520238719118117853185990728929748372890893804707742626719657491523008991290049910576924128386003055079908676687752590094376199993485968074851231357232250337512571452323073418986832656022081676420157421292735124133883969561471274657361422326228454317278664627228626135428940610385254819608306767699642927182434760487490730152971111954306606581218315852564866794465409147965583195822485246348590592922647843616820219665641306312491692950456710125590098277476170915861673662851773088008950120034554036373483208177883469985106826157032872621360425130526749124484694362178244981318913561648999133805149004142425344568371881998182404287086527375622934531034646462823499990716183058066353301332140427898975199934355570535778185901779178054367439489932540407798618791193514997761534342016182749483402149944145690721507511396814831900349763852768602332051871112544686417533566154928010882399344548524120892014317184179707758215928288631069506061862468030103381107860926457091052182619274632927697755367846232937795812738440209204275617763173368788069538128430138157096272498698240417937813214799139499473502090179120467472786290821765717374753184440103219961613568997534709611811245745423398810597133010133570866894993149665358922556591796714136138357740936506265081820415805685552005794056962091583136605137574720406811531441530234900455591494041847058124730057390399966272492428150428297317083533104236312058330426259178949567780856320532851169485506680367718148618484026775504953162361869093854492359735371980967159344518277536442198854804903201581551117802390296859654421338690479159245719214103063815791402438079303063909873797530818835824803282896866735919306739582581797165340453338682992189823778860335242920846478472069022500916202286601729228664397917638214106749516646377397407263450232467435623372740860707898596484436184345454237633604401065339693544115583474838148164296761156716327147328896606888528392773117250256984161809587073777915029210267188045113458339299575556646352941532158761550859248864029242012907066008789710284450499983855713010828879918855235217738221661393231391989856225111961390805978294232390555226902433421802928718796398153166031857515224053897356161432297419303050156707166632007630696090970755246458293703824755523027539629317901560685127300494626229370631271459866960791461509838180659428633415566285523343471344237365188985042512689199057217656399451327417583386417608962508363087001480621452099015851497593416629033134190409991024109126753152449649460489760614997377259758314416962470484377176689937442239630295408226266597001224004873826478014226394224051157550708891644818055442934710104548176793164965601490738281395779679680826206840818805167173545819186678645908105011001466101200880991086861722425754092900122868009605405952615246842464518800706848271085306216061641456239418303848852810629169641701135575649328316740307101987300409353312447592549192855013879333581340725688218234699170620956877263939440397208011246910671300924751745142290269872299158673903186475999317881985875053700742603313621598099066196019273364408531028986073838996943436530926623541253278807057734416260231498604551240733103003147395910545892039855427147615270531060878011434048985687530410438935726367172501560813339120247798793371748877081772871849192466455689192340981019002160524563854139642891774968736281382042595944730001782468626715448201258942993124283456702043328365051844158322537522762136165043960211535306904489819110392964698472859353291910193232274827142994452086180762569039045239900571492469601997831491643413431982836724394471143634646197394295802745477663055754608937608726529342706891072571653996785296303066631783872594220644680248145639163190132867010950180914258836100732490950516391482755196031093206420183763326544829462555595454499532009668516108107424008251101034621727401397007709050329985817518415665051036267123194616466573161284365050530629490634234009116940485364701235785407347460279154216525213213399900122170045631834208016725549227996280287782506014934891386151800089604137964036852308288147428399752489469476590113069059051605469848869062638340512810800349442447483715645673178728774218027505221808424197829847609613496258101843918962318276551905274359185482378222720157982621646054377773021327833767200865352726279333581042292865471548089109873849283718781771195388146873485059353651460967935826503244723307190635331806189346406853375731612342056891189767736588924710189512785353293074705727908010053184699151279799017928536806410186585022971678156954295848070442597818545838081919319926781939137321644166182065967542408724344620104433663761326807205246635058061112460331728477046066993427681040400879623134184933479117673105678745832277694660176944253431176006722585033839448994264880414669940565913433903442839555216281006710496919501304002454653246320535052353193589589077513254045144238561045187496677400389035045684110146556245516269331729542545342224382957123113319282381058733627726601469892882787619170131369935579595369804629664887657052659160935005918987061883929180192303192374815429850382071347548700328822673529830681646156048203740212435330985303953355344771595739579875818593253833983125648794763591971734942276365558327971965790701004235931208691984960156100878156182673068376571243773182284290513663071022423144039989423309467244084174765040452805386793136026386628418825159517829389350220955539303286707615528956043702007432295917283476042001106589356100697466073185536864669256962765383555221313213731713913530863021546402072510112481270833072286154161058581706535414652786973258069500961659081421140946374023978213786317324061600022573651056086929200081650403591484234151527389278630582196191148463703423114039509565216676464775818516652787105523126900639809869461026550786662180432104391410205424684608150942201291337032448969608112802069382967821276269878645993585719497308529945583601449690113408345336105362371079179288768765966313136555414175020195792796017085035550845062420512782099400556834185785932510088687527664278476398321163679739028212154993955247842686342508826121901913432845123291583659820326616001566186694766708387091339559799053868532773662876296934129070481008281354156105945427969136005774945210397098173268353962515542954012978638097205612312016451021042113777413477796492796861637144322181079739952883622603087262190317090603608080574860694076268687957139441674055702078683310707493155925614487413526225222654649850551680847872870548443935968104225034477813779396065794524676649242026409111004190596774255510245337603983493682947077497628423256774297960157549746146947753879786663206663361539405425824648392609174326156639749077385431052401421162507427265952799243253086759566698888343050020927555425444404987886470962759551200620807355531131178227270336670177788989193527747773846101421021603715585558097427731087208337079149709235183381340718567440558886133814830662375980352373298344167028786021181161439824590661184022158033070703900870785816772072849850656225394820069383671240797133665025454004556817335365881624967481546911774623253370056629979718294380462607686308541857641878089120328555812314630874563722091791710427415475511167960273255720205906795894343924991832708540721487905562024019899417928215493175302404875574777301016283590190632758234598408055566912866263021932091047361770018846571524733273479318558626061100356151366811793388578190027886688618302067033295919870759948223459370583528572764159628611674536625608426130176039907906236393499338336177985099110782734623022264094290121036438029585142053854799794154126402618460277078044226213894476828108305252085270915239250437896232812985671693709154278701726855350550426468330394437051463929800303886610694326496768551526117051841686825051440479132364952055425661779117302982518099796925828593187264442875416269566087219765158854468969290281546275983846833610225910563587243976972519151129972105881226367998768990033180984756984321266746329273987470906739295461975872947701927657434357032156290550383026356337265977521807249703583188163133742385618977148611590164152649481753609271101941574196026626606888652715387325355635727855046253803605774744386241271765693897758880426009232603105923255313089990235891067071545373653294467037498922320719213545100849599134858289870688060802637171025424033504305419856151636276108449003783979712452621671923618308126348621980389788164834946950992775087919889091499687160349262313612521054269792782482185171587570483423215127197409656218460767077096780680919690483668521422855591613567124367900885878578769387947127684426103108438407933864884047547399951554690917741625761830516191407001858136101148783792017167829096163857469051241948329978816446179095510488153619750915460780708185704479744334317383839131017264018776324308132407306115580505740602281094899195309424054210459987375492874274591376336642763811095143024185820542156323448765052960345819387854067068880217273342202115732682669838374400647526088991181368980069594710042831676062810604844457586295606136574304853266172996073050103346378404190968587409664602619321632555541575803089304752879615965885132615740526078087437770468254738445600586529015972422261838822187292021052206535671404912173346897598156484186936961478080962525871128105686927210586065073378704243045453859945773191839156367313879925938767585465324233397138624599933365080727438549415780537953437386271454409583089954666020601109642956318532637177940638925789433672153451398088217907538143704172399532079515985175371701803226249748690844946902808814210097424572081590095296972311695653116981710571546950782028252606969810636384970575567433607648617878876120275295699367252996175708859836209322652429516926365914660003451274016931353189404733586127924725806743321715406320193753321149948303462699991152329296021739284392373902520682065847020932345507426956545848546892128283778268311270992962568352467253684507527571452015826056987863998048667674433973475832719083859888728150589068839533139371478331890940001179847294429467905131589053774899216620017770634384616486112904144404602180675034617962670601216582939501100175761108339982598946462422199684780219430179556140207966884141881820776362288717487481780233802732076050605822447831551456147103037418108177200413012241250360851273749899661209833710213310772173580942741838395320988718352118713734070481918036638096489477177798970537230651929365781060533552271044973386913861532186262893476581465167260300594534931136515410043074645705243951837559561083454441752557282805003714775594206972172349635335085837776351277540256558660529679898673242168042716709818294763179173955503681636351046642456969140501316711438621893601241936533831870193350349870429356187252604011590771334529907376116846943124444237947661886942395309649988612047231926382627812657460447228823621582320011102069988170271610384237444914446821968832130663680652903681444772800475603993425170192486928376215200448041594309915157933451997577627841637275376088149710749729461360895110873998257374838672996988057767436771174723894118595083132136711066110283379994469495755169314433955971015417127187306894950363023629156935247864061598634574694399544546721142923695355253709267577343856093257798760870646774177002066656652109429871117729229886262929628758962310598970537081593040054513743402823057585401690247738197195491052977354798624667029667279556095176640288914475085032109396050682249993253641600770963171636125211368657829092378514893510943123731404661871835877826588918107478305842563062530748987114291999526431244559447528071417574783288178111217985023795421096013469253434696526651715330128061282680435862869709032912152123915970785896488554956527523299270109285818693225640972455856586432917500969516802667798093213687929915758080817804987467245920479557684900744572474750172372721670208818049558093955354018850988683891405620768131564012318862612494675260053364432824937544129228552581602280280720079885530478991327536017790725031164274539056185474662930714172121300394631099660405102939507704066685427910426967481850256267503786838630223589098629727821045344242805127280610702637770972103943144110991205981571709038170498069910334891322562157554094550141293867942663240560059135032954957635796268609441776396484121678421929194454007331044160557929338019033348927071115398923111267402355280333883297818540203556005065588757506173446313676619106830833583945124726768737657303067640511726994055103696985505752602359595093236622823505814254939597063515088158014014492594606071027977520334461234373501648897517034417243882568544594692530642044366548031059966014735426409587006476330049558556496189789305889463935184782597425904573472175848235023985183060705240308288596889900547804556052105604893569386791037354059215144864908498446413992521628322640055400381919603242060060761206060595075695737850906265733275267244619376751496818657700355937773017690460849134227412501259036391620521282379766437042284874567724086313628505032898975087594409466748647000137687187188274267477884245358802230833406007367937844391085818962121751767746693295451961599173953348912460090025156769031779565560962569038821492168810801603612484203646099098164193017874310373508756394854322545955534322130539639951756523255937947185507550982832847394971645152061108507763372311118814882177382679133941411225759073840469070229843260250289318643489281880471676649552616399423892996971931107218028823926064476543514196000971246662652904274271219065290329177175163301295882057045927109908092170144805029277944515135291415445304471609097183499800129938556117395265974786955920261965032385823545171397263896021291227343326514216213850495537746765717215512612017991617307009460755984615203635771669526441408068746077728335278436792436100934207186746413810551888249681561033088103798973268826358256560501994320089729902178040241893264281515737910768930169236734864799864454318793643598318627859272297642270239898829905602718393299610053243801815793353206566620874471242417950785311944675327743874188062199433660821222011130177571768186123540401055170538837902743321418935773423648761761465798761531332367634113491795854807484995937769116922714030084970064253126364260114317770555378778427789135096489439596073989294440940297444091456477906469251329979904057126628198461218686809427209535489266212693572441043836436287918461522673192092854166333418712921167677424085147858799470493819844594238346385634668983475817809670037889623692757263007061414260268715120560681684968400620413570539966503798235294154901083672033712455770414635438859936772986711965041047361814505375701102490057781200129476179024954078634472620354127781285902306006033530394674788808170551888389883329186276397631414491577657613066696296742020932381544545546916048031410850035709364717959043900568105015667530620804607589704413416020772654153961588798899995352547614407571258957026710553132284313342752690094364745307391697237055561728086732340380660571682007726303461749319452509911978703760020526495526577484976076593509885579491948732774235632073397798618528662212671211753633503933307998147209982331120083905142081635973956898732305745545952626009746634682876840321755770348035035209098188600840526016190497770665362712802029308542080781744187862480180260045143328685869211484109123451613752147468584187996024188485220003479987264500133484233688159672266862569462702693107688014980654597442569664382192893579984128776085933173861694994460227216803181140168203033782110509380653159038409054250345321746252953327536885459960801539371335672782380920929919581870910068703024694899374441867296656223905275840206786331247345314610621173690664503419854277715317510641103324647872460684212637750504128388020471744778600997303965773350574321406062571066270483299236102451569253686823625261620008306812219746204344667534002851874842838981231540853448276997343340363083969580583913988435568901067960570492104181491210258234483842727783219785475473008398001108864875573219837567076858251956639501824114564990163647955677135008072148146653321212464736813303840917508583781454556105476779282614047538658381600126282777726495059395323793470319120334056726646841157212782479560535468674482273040233104472940137471844849220039903197350884560686110439477159433336518567332089673500252983419363204395501960975787623979836375473325920175437516462098222513375420441503211200668485509800030491355467695619591807962549935845925028447433414308596687438978211171784703833676139098147957892492054287978524761669067831425115485252434762638446204185288486897633012742736839305986603975333653501786372296165439497466446448789303949975971721005379359573888906587396414754390077153192247641064497121408985787947844197690250524423928954947828392537993942751763946576067095033957932013219733724017618148719742922044229024762032321955105281529528552031810226424608664198182827224135118678268984643388512417883427943568087725036711668095845083648059218487927980457685961089575087664840353153469134984335001210762379729590129826840061951129083335124060438401390251964304818511830862643583863193874418723762459450278732833652301589334361794653513343038426321384860939376736558597511216527412808342924553659148301808925457871034524934556137156344125986161962780267225712871475251010668758950632208116128376529806880730811903919197412005526361050430489292075801753166422614586989488533201433465670302513112363648437447722525375088704328912529133472196646227411332049353946541630623463451015496143789884404335399855215795919019082934259993481330381111262350378511890002811740510932827159164255719506836899144092610796585006228182364614031480086289565539515214025486679572610514144508126837799522306192635516875621335693011791804318119130133263359113785924463795087768214976183039195282121984635337005818615109347841741544987274475104086277888952147110897985932465905366014450341397613375903669438597604933249277509302145395587263710947516577906269173585617964112378718063465709875498416338326991655754048856614774350717005257964578523018122282252029816151694378517701277558702079781698967752827983434951941992224024887539579141193548111776932575054872804487584313837412224693109900884112803629099627791134245446549182956021325898012201903607214709785517290767931926773238323923131156507198255091619740052383724888075373165677580107828945031538832174725786790888773469976546290667533400796547086630072440524115451196598671694173422090513399062926866731217572876077271429058466258347646686603601876487164485022417404511044662577698836666763687073625114542878034739121835477247795352990075366856352451682756605528176731991532472557580549103041507931377644962707118923334275720216165152936541883195835522274621752183098382037013509620167850343923225731071579400520077806103106901408035247842471783078146973857139347596153195582338551566566236575102108740298197656464732336397901645302379801048405175526105081186893742479933065978141335011564499277090800640800698445666496411647112964902078469465936482495780017119230619058476111582586029111688413179088477611692405283930428762266679501415637158114823812536832438093574669322034842800760367218303937037749875822149514304302544408132594649730970941820619940440724012414849008116743244810076900428248524336689481285220745622507891379286795900557888420465248882720690240256407150554260289141605068919674409863510239602003996562069985193944822710816486507455775024030933568379924973350001115342890484612616042528118396469431809348850377612785965068076556047883305529505325995030147283131358906034469414314230104947998126571758998190771855917825901731488059161616183158241416611037830905310601905765756775108271103181328596824963319684949528631207027863049378331088871165033145626857323366481667067876293710076055803899460293904330358614760353218184289923846348782349244098245423966918856013947146412852334107505813927932959502312796699115353945657706558041791573547608725017233685873024024501894825478540397035764701625541308577807324313221125603218506306168337212078123364951057801244206721372348018571403819108160128325174808477626428936320235789037646268716741092673649770412528990627947334002462138856608159403945002001282465813221334864071100576152826733354915658057678115180607495062266809342557892508812873878648569140091951500136595574766206673285809429890568779355787045338192379106873863093651086622910575578243637999119975399693017294371404816047813618824323942872596568720728340008172276957601444589605032740423960056939115804173700698373329039627794367369217538666171132984476572750632731817519326606012809939760590119732794350526510555672395591265401558116843795780682912455774809498086522423968334140964822896229432408321163731772122003992283757665559630954137732577066983875817368613370726418880523457471313262809788944526528065582932782471552556557214320596079192873023672562662015590746299243542015689530882490552507015427986532454218810606768476907611651982136650722652995756271911047051847202895285770957551769919338316912496134970295326565095856259218285670115567074139708348335125262305169760775298891541355282843406214846470565076832756004855839530290276802380749486901385664457758088970798628611774698857044650329016913951437773966069655464595256603183614998821474828286076150911168687771850513779164929227498100762365355692673192270862895173484563121300608584694146620400059366021651347029694724913120489405145638934444215776382456176259575476237144172937717334223844147646596219821783231376858414949597918365013343451069154831148464410682779480205190412574189702898146998276229058937160150158326315099439485263645558439304948758670866740109377686973009848519961737604491061664748452184369016426518877620740971916589483708532663638062845606717709946081574168483302039299608264311730669028212518946014066365416902778521034215968436844942447942880540339400591507462837361722853434648453551964614244040712121265998001866328922313156207268257757802903670720194631238522418216772801286444184751504284525937112600906112500798822773841778410562603155569787378740460755642938824048588604668789753057449279759323125367388079581805437421609768775433429818983786790657355251568412987504738915569780911898010848477885214893172925462079550492396492246147872772902109837194903114351820631311015448393599236872439723573189794114342417658085256590708591613630287551808432120866986908927629593556445897447503966857408067537518847179346165624350319417418624711083318305281374661759722950581207787737821871933369430746541218062665561474569377563888060481842736326950068251453201153646289686540707911081692847722824589349446620984088473950701416898879790151028755032230214754903178268838448177686012406985410305058693853519736546640198594878412747839797019798370483894666079042849811660756164969920814886816337332560817184800386598372648189381783154186937449916602273601619522796032150703468561541820520897208414687862424557798891844531403375705304023650928806978153239679764895484100936393224287196743820834258588356737253929321910577751673013160920492899768078218818226750306206921363306489162574318142291149568635493544510834967843917672461129280826654889063835253913468402387446885340249165076742561931622291783651716511587424995851386389767997988557330098853469589994893464218122845955513642338040078091958141051015421942954896047576396509191700673783118725148387807779143169347511451940142414262647744593501112273361150656937156076763746492914035425162090012441115556726484271762084781173124613005284113738661431275702670841441141643247132670756918181318019076816808761395546699035537456513879167709558511099537234017598094013367545548062857375975754199230487174447505769350589533976326783074774965092089669970108452817602994227426481758699572630232025938071884351292741979144523680836265075361999847596493643500670055945868626166991913100221436653754789155270218866358809277643890363448138895898170042672562220206842568174628375322396045018998429700128661723045666487011290288792962595194273399053185336818412283944894859297979471509409557950900912976495861758288486222245993383445616312375573603200940805666723549130667976895063041033725564912918430647088399447440931544811674540097420443315029577631133936564100607868673946205833583776647009671406083456894755894095501831809698565152736388678076535078207570439819438410833136236735680223009121153266730643760539310234647159749490901231265469311962364276224413442316481607207064133243345961769020206650359163472074443270985397966359706257290006485832623010006982862469723097342828079012953375564470572887803201644281604140974776759092020772530162964514902380011547724942077686198697878685887562615352341263304270745099572279877217574904410243684628184402089262539015775735879622835624796465895626632441920217751534286140889998165712506875813166758088007504314578462365139978500693266139571787223700307034354192868533098431304572101333535478608163680902710870015447503079156563529948455872642807237646905583939002958166738280882457548280528952842262855221617442149469345566886752446399926475191833002591259299231948047771752680714773947698523444825814986054010235239404564043217755521749870403131035208899197139500796073734595584102551064264342639359000324361025780923672320925575299595289357478066189342397383065446598911062651355339225678668536596128627955531833392746318837134897758841594623270925373072439756264617022541891292181856550071275256398346870822239032215911255768586437262950120687053540562421491061063534893870134938994832532455777708958060639353174580980800960810431070755870510444866102150763127389443486890303685803029457210916004900189384283141527502475923992210734715758084574881185188457023663568908023287137242269495118978573447751229770225478320975377422251908716228793018335701209075688795370776305725678162750997974117591390961148191953800321636114998338742501469464831048419926706614278385935269014227938450219859607184693711047627713241402258802876874995362840656910664506249716211376627994891780161710577242527076946090906831125964322965947494122199438950842251858916377463234876405160123311881987215900938295738862482247891848821079132982539249145772256345813850603936075687542621771497463492094667835911834446245923095091140245183604473651999102073700726948108429021901897741704437669848825199546892634533634882955744142419981293860572567996612502769464225849070876446043347941855284926033317498184429885900282850693867479832378147071724079977127637636100706199289561298474032375863466629627533636961621029051186279087783594465832062706394108035871096684428998332927327153668248974147453570740834017623560657393269837803827244332571373329213942112628684367029710488075233985123826210065996568812184014290816892698965933523105001866976663831443775857484804258514360616349629634623695413651675491759503467937624738077331296695466845273478800393373057353865558766193547953564036526929906340220126366713233356110031219979576990859946607910470592910644891871477173880107192868924248663417345334820710467366101727084338161037285602355801822277924121009756014899725262469769738651317711081864293704748979800652399779163492159222329139531832133570335260566304510605824651927435565735926417868305658320231123576384553404545342525792646865544245768419567117039436088252949423226802786725208523631991170724485419842056906091677601663262607634129257352354870297358341344897988845685393934881141914159700925457214853377957244722819010220809167497394613081005147530426786460869970441287655275318963136078228801504588910837408788844084704925567304775764920348853807258973937850556692773187401754772988551337262453095430823038147216221200580717803673894188258783823678182432360813636377482238458878528868227055518460116728749872755048541468649590598593359120347453858723675059310499185427520077298935731724703592100160758151532039097682339479812081667649464053914324600318612264033372510882682950725906597796587541879075213566882390840069497642509766330039549635951366670405045270265757475546417783474189056467397620684519816682208986475008327262077457492017841019075200218859710690708983058796933525181440840528124392176080720241990531182995484270235957026285484405940295787556121155933337936843441120183181359580321434760258399701162492176832034784122614510750656422804653727433307923670605728103332766695011240890358952769397017459830811929929977897071314202077827572140344442887020216979360145240520827691765847240588911194509990793091777830194683468976850170888811480095406360197222914837513911543937861831836287591571355707605599110289486451448281606972831880795991880342235576836353833025232295406330968862633311066640839872683409496464602573461642966599656449176051007363836035560048622942566989358329259654464483478934261179165695495955359411971386197065254595543566399474603217181056132195656009847205266983680901066886609452796616758892393659381657152556890817586512153647518971830454320708112203342061174208694452068162355458638178066195076125994261149631893571449871899946438335257860700339247011352960727250264584670848016319916273718712714714927162964686152897187544322870921541974511817814482289895236913425089040343699410473913448539473429030091418172521836771052968750085102181288647747204967753434216476131994662052582020132365510865708087219061523535348052596436909599939885952236869742440137599432798233091410695125450260086401239733183045197837816282753287887355506595597718288054519406775862610845205080122762570003408555495193507284514745461760978942154612876963248622212223608910810018585009595603839144992061454823298430479022159648979475714916392895943544777565003772366983772702471344855529289295623962347868261544065963468850148189998572381892890048877968759783654554346905460144610866606447201481553367691433591701256203080107345601723197269556880848290999942739602457393328315650965390937270403261394306016428475519668666256680974017422475653913353835330495120166291103772732995436752012485345966933245380628881756028213410982936547980778583155251833638400129061988995893039182424341820578686912901149365678251336243236432902215120320082456485332832781110326010977020113453499055336443673974126505649827991301231454235994552703744407071403261650281223852811018144759938166329659359882059038070322586279263068907925849243895882143449959704145855540699602344502228598576377001143203669554804660989102010547791990665763368490131088206739614221242172121100851651090098937152704511837211588192441977734396939003571601914638619291783146670819535079989544654303688392920715534789577113020836649384454246819818410832997328930967747429235909137184858290962111398898288677487555348650946295397748091943654861960908291295396876163519076310288488281535300976722783678325864519606167536823909989888293417740856017138721170528626602621152254893598243892418129809994964755454399006673938990064504315355874919076328859738537149110967082867472645584060456951416290371320944998611044827540961596187523413389106972650382544682273807564050795377554220951350467640647068184791989571912566670713496179251112399094718330886488909136650075177111342495537062566936327154770893869863771924715705100391995928710860434397462328976992693203571616210874758195651590351178377358893923443811894233885001219529391618478604237226958606557115931850360196276653937302912843820801019615227028807459841741621183243228399464251244759828154611188910789355458893223068406998259149880669519709294060073763966005618233839181752583050888477647892275471884956210265718906452905274204516470247181408012756981563467114192929344626550944899813739087582314035517017088999110317061220779693132830531960061577664600570538834876675109050488068683154231705167257926834807754287993196704050421419588798364976956534830266201334875801054354072281539812823330167497607099704199200009344523846687793974614180749001037723619284050729843993842282644597917328078688219142640415963066125850276456411986094520700188175049364874787161212286691592222920045899821757472730307627957789070804020203683493843018366301850778638923117318090916324552168613528799411985978922662137003374080008096629455760454683886285459798920889866882070665349044577500556853866709607872664828573794048549918028031712823733815701013367405622738281279176814683540110930091835967161344313342881508207476447625526061444982724398291868825700095069034961359414190283680756551787971662989564635176744274832481119694014489339876638857264755611167433333474750888786333317770492532238340762361659724944615184708901626622395426515985962276560749203242317599693705197792870117845075929666743514998929342375723339205313251221512512300805447272104221286451487953233124523728557428162076245370501479271184633682279409420979616820781364500853988926849341931711184496665168514356933483705030166070480564154027737122295261476988538432099295898812600064283527661158314727650662439842658165828346154074842228217737432277021839352736231217057658603173510824050097665768876970044828725956372117339235741584836878362147961937726562406099596375132304721329883419727063163990696038882801912864450448056318135434054034171325791222475914880646272727162260413299117717627386777676901459725222400369548179609183953060102212263601311795143548170089865204199284488466081850069028001358569329432417838460935024012277200286676392948487205534077683718750536968106342611461162889184271289057435975871717294947480707832349833455617292364924291648152254196601328328993554586068427998849325638733388999446395373586184640162542031750326326332530143074217238574541901893318064790316416423443200267965743707792904246557925797550311530881716511020713095425265835576090291522833637417330081990232630078554556356944310260649238350288075777386132182492287623748013042879491079227291520997641953020865158552975556874561705107691254794703489310511846965413269288918152723725377674324922863085644363314229779435716732335661925563958036216636468341754389381772524849759352581485210680803889378818268194637369861976163358947107479202800673553399809273561228936713264631416881241883755052014605995519892690418441485723316215626436430476808538756455549262074484744629349630091191421866951292653519155067636051640306294656820192796080270142763542919130802332617966611787626494808211761044062920202203166075371286522810375989021904639320650857702302130663041011201620371324692027453974565889445953245329252268934190198452288283741772492365440806119574346058857772605676305713900240455025061472441929234934600355826723365341070608718518740671883411042278633619436018389930141010107226651026237540900622372691146517406772022015068751316492391771477647077013931133917746742959616218553442453465027376402106014772733040424099838095055555634122223360926136148817048160390842533186891965873561003136008524857185462505009755406103843428515091206424480646393657882970731618575069016715978488568022497229743323623283878382793997840880565175245002432400982181782288824022772851220013343477742079207085058526918058045357019671008256151185538377512109052109534806602874124961023790527181296291057173093626895672943340856138314844526536659930573534945487005193414778079743121082943341485008705296652807915469504392042533109995283043461536925797294477697163997279010802543497921261339787257159870745173965350638736282854173570882957260626436579404550784606108939509422450314600008081074979571685802682972469087634142585553850827456144927845907667911009194074524456381050253940367174365483978367071933455641223443509352564339696651748483552341826338202995289646161503064096829157489094955921906541113786167927947022571556347177231826503765366615530188076359514249819518169584560529890029078568931237807849776929423020858900822789174867725766655528754829541116025345024544468139866191573502997658557961939378330903301363041960546813140647023237931126196404621730269989677627645189469164902930579040563200330512605872239487905648632026855007774777342784627657577249351215864467867389346514338442202624819148278251853319976202294800936521371215518940444182701207687279579186107704337788173344307157366428582965976407482089569678205161106344161701316894342098469417032840989495039140005495849485611760668249187772072634707264677867954414927911511853703760445914284360157248420388778346831127233977880998771243301742773275722618476791975036567097564181504922337523922720967399877826950884114209137011693056118576578148665607149800478724798047110721467142698169111236283526206025245843223594761616740834374709741561552435572180096249593438449072410655590839162370974135541753217805179235412019551306558310931046677877155912923624540535179058606876667400202475955944260493642255494861499279574259096451854145128133889527772927165321039710538950696334151633743897576782815070461303945369842472694406346781017326722219299031333552503978902613379644851164841958225185602123412962675635499347724863246848307305191227101909547339127558741432737153470758003509074916878959372685916205091657612795389533711696750607279080161893907635906381946757527078503281175166690544811325668750237569646470483800185392689770331114666879221191561455735252228085650610612791554908954677068537993111855316597237128100621536390163508321177794501198124249418161045448927775564559115294994583536469745235248065195731846353847125959516042097034197735694851949550481539283564254005368105041408901178727870761594015941636361327325620853286883971397944584698007988301917921646349880912450264650496614779890044223490909452143691034099872577896702504082948942416879978182423066249142562818872176098360310710354272449467416940209990086789363210434588578316343677188276034342136379868327705507688718762324944292033970968338202920905887056780472352907219051836597910179980807608328867666996745330021772949735775261421129193351851999517323418760262670335873503483622719411465832159461026839825859728418188496234099429378149486555238606112051081503595377666769584216494355263277361900579543381252212419519291643568381918250642366658175394095657298671263544102604782368989528857064056845677981836544826803195624654751752366697088571458501307038532920262120833533676346634063254159675150115331348308116127831460961442794842306442975666362891372558711575343144175980089878218824887276190449344849171842698088538712917675412683794566892939866575395952135944013475742537547076181468657727609547360768168065443838410239476702818984868049136065486697510044854726767082084445699652598024742392791689337237429486615976942564348674831421294317531721480577221903524354269998474163683575107460452703518351459846045253021515168020137356692441043139695519553725561378191733191716023807120802236149071989093087503520101769794845567475363727951290443542536861092557059240562683929263454795406095410340802503509966867721075363270106727646789925482671327708441925486637553925110084010529052677304514779640073288299268187600661008610418543529362902049877532702914517968628327525804433020390937106248995254343707700697621167956013053761850430416063751360324043241701933725745421782716745790980251829514473483149421866796414150051476612822360296655483654172715991803928377941471440895366412998165163247998448596260036033358913194305307890058048195100994623724623583027704167351713351798111388553024436322537254271893613625708988931675525404705696655170935581398803011354181833352694261598732166096929439050998754275797938912153306512294518538758753939564514337177611562817310331262947212146701156145813051783862462888756870746695140330103372384645737013911570055767458103723511923458684225691069720081217657483534477939636617724227509309836972271840847419380092637748219330338099397552931932330229317831734740816185103328088754434246311613360590549141723077839865458543425302369674579737074519401084355517545426247325205478457666166528991260602242209069610666865019647840057833440156408497695047366120381416599796345249842695413506993985008626063132891706360983907381360430999735874981734101614298334872047516250888001226324378451217594533176047488313035047842157034749724576194076333037510136621578572493908871162874503860198247675229342814191748085536016694498300686671732735649612712348735020921414999899205683852013995723986523118424057722166992165987869561268724025683386674109898134735793339933340086745770899740411219296173464318552948115933877306075035252696598109915186967907024036409185717775828127492022484356272958873533835194317384139402107068602471481035703002578021898050587228608970025037750999282079774916225325646614173153227717846317894969809340320532477645945881629723061469281672308297194557065619536632383582406680228481819277317288877598744412846130155349648102541020977522447331278189133897989937929623530265314464201748861573838534631074676515212746546217725522220238054029794858401587412545656233436793462624030189310886827693443712004751985673592928078271586910670566192178219509128136191035182766350689878959281867492746112593999620635923127319189574308985904843089760734664827882528262661051733242608790676606164672435515376510713361256952012513593910815181554650423559920454014530033153630499209822094102067422252053939902798140657725905358362047126086832151468249879592938281449754387268305847549542464814901058791760828232426549014810136448585395980249586390545648603880122623373285822217288027272877766456891175913588538399398262190187711268140147351720506889309061836540125827513053707818072580095256081846503311539572300782621908360388632770726855980161747859088768889004582188690642653951995518998579258334524481161781610323750151926646201262574714233592867375023366464177692480354126380071278325076703431162065350438956164073352161228087846291976912337263205291767406476369167702795750191262740063421512986869420652871921898680065832563755496619648138412569194009768105788808595623444636899388973065192526667574255357500034753778187897457183928396056788764158007670254489109450052868417481254722896912341386193871707711232948178208084456971268965442357542204497492273989068192616652005734830805367933738391340072377936744328449821444492421349541028341423903860428062448014144837630439183527650910805991190533596525709411506105191484848372990831511014303092050614710130124214463635168192409095061496171363127571461440059009285098240587218355468277088190836722950848379742490759968448946024915636120749955103628588040078855520959244733424320532006920031952728466514829124522587322823432501615715741038916307878466318721814178666037814376675790334561781603647194355254323765024885689341382303355542084025594199391889402993398758706709303916881395491186264874971064382707892610274647173111699641605633179738267026628763223401938181554717540716223097322184132352234928841393900347667972716066245754296073956601756173851615763158448255158409694346523946044569541754601915926895708586135386074482107639854577096728681948892209295192140234739403834565226165247086743945738333886882365769032639476251218011240101962751470114773763165314214318846188315510019297716533473538081660971066788742145220266848859767645269240026340983268492207725153669601609049756957258723194201265614708636521540815507034163701096394037094635906148576225349864090919796851677301630111585372713520573515737892938806282376796869644441152951614467080214424758084604105307013730161650879215700931557185176684645882736686522694074512849124692162654546317540164739992594891707652787367100734465801483081407762326953858742690124682306846695042421209929690013078693988770859893733481010598191232427588530782919253883483787674307977269388548077394984596286321320981271719654576881055981937833666961319546247387634222455032996846544955381857051366521375352573719811944383760867664042879947718454575226051882063903388445803306319788133014469238972270024969851207126912073102338027464187349260723645175876428529144111778962438226571882232109506438239108390953956343143271984755737279249959329641298972358148747647780571359549038614353620670721718798707489393978361278558509957600611198249505244220152038313920931140783934618719027740896816756227586837842837033480857806486081500559531331167648225981183314312996925337744143048929594862774438286465799596545239383517244137820857259230571648786268578598014152284637576373789107233873841402395815616940028805055154402434318938916991532154726196617263181320492396883636989451538889703569620035193675398171778275665467447039110025750591451227670980881253715687141727515516939216545626737212480667792174172920075285430498372201758340524585797369961821734023477092355429444371861426363664448374517901962733238562771138656482925065267172479754610742297513629192964623970108753756632145533029427477473903813544811039494829125356382049529323448521883780327542107993060610896861359262059769897856144055267330543762662815927600352225122395854660223618832691012317101037635291174820845846551535486303003322528994329440616691423146353995506494860990026183633990966847074314002629555018518346298295593300954899918931807606916422781582150369369813927678123884992807347879060921654378893353224437779889580324178484892680112150897398638546196482053631544325926283571916220661567300024059413715214913097213374155146626786352549340858611550388939233790895437348676872427706331178086953370785763487712550608759255429020708424895610585855514306903982243342653219194960383466319794489402407595692821142286426765423908085297441905199725476751611299761888111789751337030099440950846995264121240071361628273266871783398530566377502960739144370675131830650175751841310337803337891203958371250605955694220107215072845299622456884290061178677389764039485971133796342650884137093312962971917844807692146771069740830890068731118485944359766182668437409556023401563849522640650865764080347232985619231982296776943344525694464047920887264766898958473986279727992590104211679522563971586239824196646996871196972335960405575020849357462720216685250919159111405615842378017297638387067048050087150329262943393960941652803609916711695485482355382060842978371812612363221313630561357279989987640346538484852923083175305707634090852086621600099819564763593908043307831803138554460638939268838060454547098122821325462100514026125555878048743309787981760147938007462148436534905091511140861322563374837277114342857335498834982572026760923811721621499453080722364579076210280644399457039727772980874676272920788511784858461692782085064370752181902270074403244651570159633207966484455281030375971086856656703259840099680814282165375016954611076183322263928648105728793278587015271439004564691984754587112114168895307024986791461817052337102098551087241171721020565090613566077897303928352277675042851128225226067026787350165498221136874336071912708983814814717514026587918461437004563006543492775050167833315040616290453864932125203758955213539955096915364925937046617074949532817343592951539642078598823918306264312782357439322515201062883619198605178455196532641978864007594110854524292162370963520437343740416736711102273404689708267778350905553248124478742178764695161008211708675389794006460849723787463839628521266169271855098306487448653374045563380846117534871208900872624312946000688634922420433267896527171469265944543464852419182639183591217496061193842587753804486612840948020797914500600052325121212794129314520682864638865630563836944648399056965172250383874951933970829527203734791035982425879686761456995398292601225173812973520208699361751379098861435385726004530423194865762690207173320759824644454657554723925603153214180916627682057076488853780132746938924817159033032621458230954498475276159715779387407037822472225970082037743224619465559847196512530763420547429589599451821377959297907342251515492266124950104586702683367992909986526274493636997948654737950562031505225781052859933626954896681274320763170097889114106017932959196729100834060861820238352684981846522931883505320433476952036246300834452878925819220313648877759589131783940377406213009801614534161401619699434474335659139900671832442277756657902067476811256298601063802552218503165562133915299446512371813716882227863124460752834078665988880801206633241326857622834260560242648128980998823475904029837931236959825816685616900123579851828157203928703090871949916683818755823410222207264831539289250547883541046998556657437120367651561577427431822028524789172791222102335371753121615282844942075599372760661764869767609448557633200286545849161171511900706441170491264815901150584020313959940085264034019048865836373110203152246575325162493162746018816568754328619245974659221070970622636486496890899796289885139283927016075055900004685308426541356957325800652434645941578669889244774192738989348310620396247893554655284498031750055738703824739076406191962426084704657197106286864675582196193678307527072860270931698801385205179182194429544344003613894645633977948974845381773019722746759556874200342452676225464024378145719831549642736420450363527166802274089531323544863492644435580621451265638408683623659965614942630739857622818849315244588658136756365052957044331743633085330750632793507732197513316207265309059668640610658856780147751291078593481543628936895360729949307888866499417909501186705793142784348253660373166267927656670534807106463983664610602624276052541806402209719064340585223751264054842169194130574638968320632057245579480558176324479475355868748610228115852362745660574662903205998783133061517072834707017725943849500854813376107704479974628290200121272676802546719918173288030525695886549948472292034590125824321755143456329889369261528436675111873903633294142373416692171109060289060667807688632686786300770978188406478674495700355018323425734823608678121367165161403475661354680393533500476853322879698881324341294463779574248354180451928582208266158551088173543408293681592874381482900556245676963265347655338749792220013916687821329819818800004698643313601659774442839293456650744283454805751604377785874876005316713289664106329879815542784136855587130215629169957760398528042690613493446084660214912770809003714261344662222737949434982949521017903751671365570372633783254614838891998387479615991077283144334445109892996078979773150470361682706023331687982385723127118927255489924923460197447530734010711452200021945352343192978630189894017229027794414200605317912577438304938892336200007804774784911383321378950287661161510754537313985772213544337106743784905658497284302866951579801952629393871617359596302421954327983566864664916489708266216443147908603181230989768056833986891517559830638373955353062202195509566022094492172858689869616971132795194904629096632446783430095529262643139843227934184831780725403234723957916218026178554449062481466464098789434343903530817192452119492917876440818363280656556319102242270075775461965286447000411270848030292511971804390090421112344034108585671866864656267406049980543015120493958899179927028717326648362655991304253880200007319015164105826840327781620474396916054536022927327702012382294923439233752067740723879978732136993257994283796834316442537715059089058049634066230252935504989463334080126458793602309899091041485006190898922956982136736659752200466899860800070033627729650024510159001534364983228220508320378884382675805000118801390002985219165528158106014694090516545750322513592833377811501342483469306076185130742930140644752740036983270587576182900247743862178742688310807213837566943865910244011045255426481715899884518706663178962103921030354732652695704848430603291247198601649597829540852836219408685453135340437018819160249903709462980658145850927912884998798453947541364270575114533842285164951812117429188155954852222035991049425801109129043509389433764189565280776231707594073499962352004886302378705093983785897800945901264718226165398009527283696868645497536188785575614488888296425031308546035653426377303439566067420369887436267355553246684297462442601756680084499447252726162141854395513435713910381506936400237003902946390381889361633032127918970769823191527516410619411513238189480274907569981494762937553664207097739358753012902873735706463738549159692723330968667226360976016685186588291057217018347138682138634028383009329353751275044022753333522994421668427303257588403830593533020492733167072252164408361797976137544771851434690301745911829736300019237527231403362746723217086029772816323588385730280176319491098227695093078555475340775553982063056862443488124133555618314796290969876210433624181331206440600187860912972466604875375072225240876307658715933240570949377092278627610517111360662011503629904011105154826352218405939352248319376506627655664296959384585539716192952784544872472643040964816426515732819570588190257946172888732189673075218186096086530638360347848747045412067860221983335948246258988424369233860302101758975568178049133920276675073695771781170732020364459703600267180274470311808863740646086115942788264524944022435145573919319099782630089123418618717614112972651540940487634166359761085988044381724583342727712369178463192744087239795257370978763835955968450812199945123327070250303874777528937276013384660823409199444148070443673883095371427533970835742661213986333316048067617640680662172577584771678645024525949640788680476540741523030703735693214008132807552995122718574936834725061804703593290677378244362993887982750340017286556966448413203017254411651215891096226403030364957378034529074020036303916247498883919979606067746992622669571862377892472338171541434537255478765279092174897986366927342477279188100625528776102246601334641575183943973935638795316867816641359513084055215553139211602988591612102590421567671550593790523301723042430745617288765264679265629050206335935567819306512353595157089783433956279932805314083353165973153111984230446937060043205830526294116961090055854436130114437530046133755666845273906526690198745628265229439148930787946600721778805578110693737113430650609966920593542403527083860956021085062257685940049066673657532213049090020676150486580473426312019269299507197868819284111851628529650152850334893732002479511180006652766182879368434805162090404885687210377227098209681789660810222139857893091423299301936472917319000022972576931599624309295688918516870845306113640962937029990181962653602357755575724694029003525351958691879005584079363396339190592154243637460124119320942192814065233054258828663433108625114034768137687945923225002013926036162499129875917693167820786434064858217159970857322669795095045741374557272412816636977493059044392168802535943229130565645570473691257651187393047525946569644235312703704150931529690962958569376822494839295141199791469794162213619191150933817509096218169884421607576148058003047393691671050080714381288432799277739917461501573188988685721067763086790150034876575046763179938389776963633223748769056785975257381537596628614157982750252045057784149572779359681758830437847817188711297427800443389556696264812211292273806317871613373481459132458727145459776604824040941879495569520435330737880589622691694158853708563624748434191097298771946811731700027383240456663729694216694582504643341099945706621910156363263114640602539576078124545677073177494345824033045521743992516964694503686414178281941526298208963436016162291458213169602065410679401994678862953628674602178156664604250260962283695161041847389204495109434427457540265193558591779625004949614212122992821800739916557512912911582757143347337366383496441037387796415859031953516798575001844935588593743300111254714735609277218663143627767069997557933474053140955545695013572232135853614112163026420559756112574886049644127311460730941040971911962867576454858376721647060944792711498796338643450362165258367018898291034111439598405464659940514906401489369318254805963947698462273995312348579541573242571400260397348968891889089238904104019555853666065477945556659551643119428361632025133687867860466875488116102265113449742766773784110108693105818298362365871670822461912027284991196236607273947027088855492679918931324789161449159923008730877223640694689326383884229898913236955460770716282014092275382588356388445130598511011481731175465099492968177586522980079630626694294676545877425910002352064934077451035431714845592063580323814198928860128201081700059016150964394817232183227813786478955729514532338308607965121030679644299431018747790837137399638837630794364362579876553546608533079482210183586621640239406225916022680762618732010184514153569585481400264663527231158197557861395426981612926641799303409457519398339693046032807762919325936052827844766273135282496777089132376374056406129791805425222267259477688762677396301817608892398271900069769578418308484702158144238160741044784250087212350536483388456235097242232645791298832928196793124805402973749910421342453286650553982591567511440965945090350824597566791706128402491200437986213230886355020930234560316083118559349488314937481343238951661899961175619897274433145125299987900188023230549082276432252951344129717567500760893625387030555205498193462058469965963548791703649530718615063828861834041371634828407306643302528731490961249696314827980460278137113167062763686102728500175158273510180282653533645326888695560560848291935048267885839506034804080882174086741520269566084901423903008355875355023063338874292715456437514351793064221151667385682332979263332574185709396910267483890562409454230293823761661135989221730215281016126202770539219795697162211415328003364875408466668756840401885377205004444926658456219293226651858286247343939105740715762933432948526230722189847569671451921082642967605267989365564626811702452965808940376727242978396992206148414705080594931335190452928231544505548507200605024764121975072430877086546982387568371190007691241400221597461659042581700643919880778312011270833487445258689387166707232788085183841882987738305498851455085120940211648134841828078300313270100512917630870199438549073527345858633489262297982973255549374245371508008468062086592774973769289252912329096467969579093371554082108625382447791864506610310573042484559213188330771293066057524766301619482855114650627203867773812914801841202222705056989038306137603036156104264199494719591039502826126981902091753338408155420473927167489324547581708313240220127214003955422987892519168755099406792940500183066517817964029495455041053099710366960022036700648049236888940756059338521691674902499328666786222352965730961211941574459156240093696851456664161055172160094659228069187029484655799093347521244599906600652886374669611019506934379257029800072824129986156894295775781163907810897818842473731712736828883497717606479584696530163778991357936627314527301280721427746745956382626248616971267948145802475419752879677594988664477163548235600806104066403385679578613942904581350589449738610104504912575490758513921174720992093231011966947316827218016409246872393370471176522202098987078566085208649807339772333670594732657795494090471192918164418282749232695644032233691877731041801661128997696230149040609418266138865619468679025964988156583983989834928121047766689626898271614483234290189743020784068206324112693920250287493487586640859483409630939357191985776875208074446901518992509847339684914348049038821123144036992805084913808205851452612692510182336436430395920362847491539079809796641720322898545202809408507573484347159311139540158462887981337660542705669046139659584051905874399390096381874153223923370551701711684779795150073170800973517995408647819250553615008199461369178374800206588759056413666024646466791345704553842928970638872027288957671373929086231536221438795250558826039079575792522744119509520360123401909335913082148147353503005324907376442946533801215692649081976870828015628437718210639471207981545119119626809564787590712586591973819356985869016069507213336741736363702344459062425552324272535146516106429821020611576909961803373372543830259825642985853522653463887832675229406853063259177357961510635737814861616918045227722115878392509453963087548858005356487122774215783494194686513149703159686041528876281630357732079547189083231621584891786275447630062545227778336180906329164163766745971208409489893897024444946308999201006080259675018890178914944851175636311104356914031840915808931033059510370998248773963515741298643089562292976173869686754359074806334400393794181299644475582418324301674989619850133154753666794180435001675671817831326324494006993281456188515771617196906898536771243185211372618116774847843916527208165727390184253093058338318037070240895062604424724373353629825056588984714385069777133379592396537989398734483028361084204405866255668872233655023305654803217629892426575745851667812850536106484530296605679586251956431727654262683344911205693479965548570687566765542342996662662500326130508866041771128135300110178517533519611220030106919158403780683422664986314538790068383897629187128449069684462924787606435122749267260511794862598846950723145713159020431521367320807543592668058178101619788269521637521337102832966466629152537486039289379295062902997656503734972281219736308873598897681029440625728575015407028729138551639488843268014305753309414495199527040534514465359402571537414833598556386715073700492695761071693817763755211800704920289591344901724800453182800735065801529894914597434415296168048188613527604787346414014975503863472517321369689005812644341657154487368344774919079861151686305786017253426564760835601259449064626913543534113019922890456393638613794269162463618326774240713520247984499916507720528984204677446658895072581851691407075554299964554833677933749057892281557935191537006119049052795843107184185687703139322360908112076482575125472930365057448537765288088794050316496713376033847597991750489401080512647422382208690078075986352859826806955749272071880048395036323923207211500423952424058086089094312098816014731071748795300803583744071289192582587084265010713601202694531574100228666222325890800188171828103533900513717169238270455353351362346608226685602423279331477161800707273839898323897866500343355952151596837173546622390227465100940459742726292407190396306760653318654573447442574091925969127554281903310160887894637327010150072976682023296273606812762374174547209528473091124661001169283566711195237575802559423377378271008874142070956690260601665599142467465469007172910963496367018581234974006027675074877407147196406308785236803298526991979913363110794503622762487894370017944751620173278787183244249201019484773849605630252759875096869562694381447012434234391034809390012430181099194612673987489900514581467081584869124664280922215365871406335847042013411214675830763033176855219585734160959040419165199414899641604958681921105727356454287426868078873716508962185054467948222465221957206343526058902687372557206398399908110322436085806510400303855325279397354341739796334218420605029980250408289173647594535337864950236250483740105503139089591265641498955122247553775983368749340972160548543912252563032414910813716556054964294542009605175534747478419920750105729515004760075545124493862368679050709526815880963454474084798970183276841199387963722699840272798341346191602963500931134834732282361511718500357887362914309194654862827567337881275374923756793510377143231893739018236261118085073295189529963815108372344682073738126454847770107031448489225922829836136346309209717515293110644106160369546738598062291866923747946067028341715822607503292865468436751217483782198590516574409012638046400175637113441117872487737015833745081267499412717141638680317579172129507164342780989915284869759443926095772243593268292179297728621780220955790003508592241801276244469306716866116584857420598059727577778542832834287457342342667196455540236482931780576381336068455670859142462302336129158612291765635287320743609834775002868442087211042479679324461127421679977725935575814034537781932332179734619215408975598153999757492424234561245613325882883918707742613865625109427300626987414981869242592555469405469365785264071095380816466627236186240975362978936989644470687430717901680004003692919758347481463985575610309744327161639829128346377811355861094828352345285542909381836901899596078109400498825293008203703717824046192737546761343664340611551883889103439219592749644343174707979893542106147444045384640142014438162868467300447883948924673241494342814761789264239195217974904958900955262118088608329944736217654003839213069065587648593917448701847593848171902436865958210963467749795211959630928935884566810692727491274914828500002133651741898002967671094590369741169002664613643828193741920120383338249050473057914545964149562131845630341103248317609993436364161621690422631542741376963583252980111799809380179633468725146144438618599410768392384679702319164504712393992267612449257238308120679794314873760719870259156414672799363516089578149246367668521890854883018075467799898999155140050631777203280524568400131385992959432949657136617739196647876930330873486539159852234851813203133103678392362887785469888867388710285794900000235047378055240875784585948694438322063394338681137961294575506000245073192181510849829968089181671055533607739280476986262731726384779219568727383755901880120092041257119940327863600733071913707142253519855802920592130319118705224576426028479726036410881585502035596099627988811487726240131257473398383791291922277982661458709127779343547370150233884239101030505126381029790192274348918095972288640169287742665477268570622112026186679007410438552256976151369778270758591092664460560232518327382796210308225504577358022796493376196465991481403545142690122467880491461232376549651608382721190467873808058792005820102004593493498460343752491330621314630348477588918126695903957930989198602578682269831926483869563793515692912845650777210129405079158078007422496027027576737789782544153097373470121509564638465089510943650205722985608422212210618453411109385505485435764945840907694938921023441126950579641794488048024806767170357573222120837806676332611388485851548252297901480892406152304503208359795009741995987258624198504575917355800623028705799087675686039722507247743923320196610633357774089352577317816617038895359172564411204483000413376459923010159364882913448213000139784649578153917504319963841869257984297423114076043673739283008173795638225306325822405106394760758088806815464870244871576594296145631775902897490068405125566857571940167659644032012426467014759480603138896636194808061656749896585480295508752227677523078278855605441383517473978846210719380973783587366614493103395195938234484066339531673400269592959180009911406718222662869294438446496733857696151134098224664462506522304506922150838277742735728091020097868255737333143540187673293500524539433740410470349478274655709010749666038373468493247472949578499993898504366924841966567109349226417228702793974916262460667931042104851723278815735390188950246065591638644129122319697953363709146620502369496653795378285828540815463069250561029188059446162088981801651339578589326746670370239916259892461011273360804741398354167184044655307836894479894495076914661941555055004885805770162254440792335522362950019234752848874948786242183676006212684250278521570113617974520072527966764434993686353472792130622394097836778181347387900236613026411250644251797823102613657652489226906236568136091686860189764886741911304805017664877666784792443666559011693604076914374236826681067256318622607499510716757512062206844303700198261126524548782796629027108700344149974855907086050194071578788750083556582891385835371762525957098901453480315331138703393748090767402582239395010404265367686416151028004396436433291756466363410882111105051445523878514372070102862515638502917071639810855384478556214883279293621791796716448299693273382076288434063681066960167581316940379532475982270137445087686496888396067297110264153947833960639921960073496831730954454553346168206980705514415222525481253896488528255901005692769834131352063337245524136019170790013378761378336540734787690877929419864547354810395040210166970992982156066247274099974443563916560805370204815992091882265010559623641763556496689469317241982530804623766624588774345889630322233403084803319587787680373881612799119752485673988373795443867470410289561177230142955511065682123102062388407426044977779327464075377571892916182014023146466090804052666421327073314247586469045049560574183803005227198907979378938369634392724326553463918961452630172595266474401453006319470440383366406055870867931442328045529527359972884994343780638966619352393284507408729152859053860994035016587181490103481622721092744261893461320494480415048395013204832483761424314181986992628254772755343863558487411489924751146799209077099423800044649694447051222462815824713051608498581454102042032948636888644321091429850299180929378432170535756611322893634931587643880745661079837813881069923381137312398801357670554786673996226543336986079763838664586171074773482031914981267304341857901984238322748616749615857312041334064945812280445624226192483497322053803817507676604694118301260477442340614563899501075537958918967287948282326869437013173618349534404354203745301540967494791473278947805881609863625760735899476860356515897877740072797101212773126665972389581684820504552280388997447526508102140955754489554153552836157052370090058985005482663402340567175015916227819283257839316990396440228544642027893561853591800960445569590703645570559236779271882681236334406432110217843933295404587234645187187484061287638147648873268687656405518474243243477120753867968449969498447183316099916352265169021592728130788557966583887307565622280256365704850284070998667145178595025299430124044517964983270632341051478441962799880327179277387333183960533482226727675256534430719190635258334808047356422501592710384320684971811442239789354637561845234322817367344454945889443578039580940629008798429406481027042444419344631031743562256051612760102648599652682768356734470291312967959178373137084009787689947595020819780932812945905128430602039261558267967738820299024466110648942048423212090647908164738313896120641795169019597356923051819879391823237115870798975863848507451921281029177942693146860035265378421129041067168668105654686550236978775911174302367228023292652528779098798220317153058257649249672340347303109546184319428049380076267070436879005630099383205733160403584431541024334483492359616877749241710390432576536809146399973134372175173785913808521645990761866397524810784416449467141943028007847244463286342586675848631847512492966170293622216472396914226952501508257606440761721335626228162690206383533168661011890410885492285342267029037239050306869670081154668323224372963976555258294702490214047028067624169136505344104636288748688651764907106802027231838496381766858589523618345682052048590883313061785625724849779856088438260968710487326917753973557737176106893167136757540565614395376325687962228997755133672517146378320524431646184017771736458934673445653948340267258603189642125386400135481286269795372741451527241001798210058772766756335886897984433697753611946213162530236951913792624814608203203630285940930685784886358560116517587399881614362423771501626474374513506686281453173925424831043830891087021775032614172120337183283459459951492709399812552798864918378452891903572607485972620218840530562895958751128553260995127576179579901233976812540558348282350220590447624220015052609780843374663336374951891238257279859471107086258344299725617465330183915909364292997417181147165677086307176061517508098474826238465445601501618393122509617409908917625428039933995620575262236656202727193136043016968758331784393336916855939642654437196481494870660277575229632402862815273481092184901281723076274068776739246315082155395491129965748664000934120929416099383329728182451126463275941392897054907280333990842738807136114493028920263826723411119094304640601123482225616837705200528371089099759398951666950218683707735370555529474672106452918437865796661377125800342800116811503330454423633026656474536141030107663229647760715718177356079880352953103344752585769260221998938369659144273946594261631007248952720234646869223482514937880831107049909543897677814228348069682961622674408526296235467802539400526119564823274221501217702260239576087710953382277783020065407512160354502745699265646411895809224477367179328924615729082711604905990577463991411185980102793701172574619930856681308780037588966979550210613611523600599689457509303855676924453389448728688722722552833373027419791746989490085009135970487555014294383408285442201306100292976111230139900390133209436441615568529148627236499786992658965980354278845176821453085389659671800188306244983737127031368850802977675764136284134258817629217292698803077589214816825744936234870267986646171983404213487235657836571948356421454330231578619999618884315038609772813080450845357477678186770695156300553031746467073204571349590833082820453578774060382804319610919285856898763326206656337311725748987110307112681270706868408357053699984000107300248673588742382541092676812512997355418359553672928576393079526310711693721492021393468035152851309350958172838651091091700285371740415880546398973100881285497923945237981497336515672713706081625116893067194741439721667780296605566232771051325100323223571275501391399257722286550008939442054767822166683565432143411652443416947963402168679414512379236132970168188016300582783106482491386781935504746235033119415787143675455013584182514384642600231648409446782671467140473423859260722708427945539824821066032287538608683333780265085612545775596739472211311697604324307501122660698801857063381637308114994573671973865051063929877855720714463143594832822189371041989772755027683838233734094883871002540274993129884960130856206707644444388482809600456041902229018124378669902432454157620465511160087997022525180096418466769221687656716055438725581283196897178107495539640682178071374888227424482137449226190649871102115775616882549354872390447758095431562972711729290710498236087442908396184875109950455935697721342355012135987436274930135007466754460115019292078016539784682579027366094799137733377950085859625734981506830905717354483671455301829533963222011690629253207422841215121978479716940950950536653461795809967244515276705363937703554577521145566137778529145555649718744274933462466196659443139085991146393036088124687318807334673507886873870279845989923160944338175961303536143927691103661406866424406297561219003166001437213968561547539454374299321204919073090936938220634250637385779131953383218748247552693919377583573850184208735196959035541167147449482391973178963603012560282777087052258894228214258068200400948878393534343071182086595907023527714056286185454229925784223045048452197278130749043613920764033532380952155770453356884909383482616125904046760031056094056506765129521787396758112126373124620414424662135435166204729171984471790166961291173586659145165035423107310691656345563095051672318419271502866465553579842414545762177995646426591152443933859790987693231942029082398721855844958211837870770841773538673254602594551767977497153412988574542401227644623713290649440961988901530925488183144682516258326357691945958228862169556314168539280009715959553586447050748717625388038140595939928501660993903038510150372353151047128990665774825241624820325054228399879232743834298807305874886631021039686178223632713889151776336321244735688947096516334221888509537204701162158737165672697077756371658100306553089278313826630925139939648555158535010273895355824559341850573369231218080001904246400540659545894477917813501521882536488921438085849823703900311538567191293727375820226821855886503070217771618097215861954428787562052604795415122513175425633322445670216850052375241374987667335714524137083096768676244790947381092875815829750163325663033430764083965218976664464467556916350249037297353083433900033611819507325790665200551323744506085427757579675831932401875909000517951989097081448434901223240537013353193997124830305111436826187590605448591458031006200441481179628569671301309614214405857806909193814787985954623552338417690406316174248981251964852407077747538370665140499076186713043921007163917875587240877060240150128254289889024545404353662442954879828542453192223401037322029002923186040225095635345169495396949552600925044188796312375380107437325409683000419596787523226397762403972355827542413222204294524756951188104187555724606527218948718722679555687662298851721600277872809369750094044289157214732301145394550565316930265228085694506163497466418311304287948978880301434973887719523074338175551488749406031433066205005334618327198959335854810745886464640122203011658965944227553828173087215263960475606603293489488379373658406994899848744288527886941253253578841418146467888094458684825589546751673007632944055539967990262571539685309517003359559012860000166868917792497348119059835898632869035423024102177662560781327038410979813402184478359829165595894939430533161555014122088077630408064457038826727572604613727578181416900566830657083151810311626078131225409863707074752306747269117916119183400120043287616589361299347916287124233715509750785018472164458159641727021246297753519440703508261171386348687512333717788039393903858718753004907802754715551099828024326852983933563274392919685376850611406633656534736701356895421822361655888657592557123802280351098428204549548658098690356190154455183189292747922825006892975131532617764321989339830305930385743148608069804471224573545765414609299805240231656434534627347770046630069501092475400120185547627383123170388743569041499609565136798581095933042548528645911525735120829739787647584432850061070494352757837383404175292374427723167727778770029910002116232357374640965242250297477192810914884503321955617667329058166888386865985396034533265960827157401149101230191435884262865735015464818112399453350627849199958304013327782101868390647063565002147579165977710953708260766197417484023340662810556653880040547151610389006540722040729147115573891379710274182764346581334140951339967953444324460649939017340361363419864800303451153817565074697504596074385846523484046007241550672149106603022324359178003366936580641287660938286744686944249998401082755760584126974687316670922610112996640115083912727731228462230438956028707234547818606754279487077530423339502481126384116786006929462420364365841020694231118334033348208519717252274930675606223088785844880745036352797935784990511778060908732547185826519698167903144358412481186363669043105941395217045795023332661239414696495932116670825481358977652554833184031330425963474821431119850581705261455714754221106121680979133895421281807672293680772698011982583444202477474519901408137704852006215310073883770179128051469689995376472354458011682220561473616159748166788813573170675239409681625252368945668837512895329649309524288759399117448892899814900662878707143531752426019178333299699110322088740282270535095506003836070600421870218290507672408024392778951102922472553026664169857168128683620653038979860506566764562243742227583542373565672690956654601475467483601210376488336369660961163699790481385951013691815415783228172447112128584808482659904131350509124685272993982556320842120457541156120972989852717725089773558696824518190382986663619455010181086606484653723927286919213564138868210009762024011014721920668243225485489660161487324469795477886785527861710127905463084061326439115677504831508445287745739826699334399111380508510940918832697961831747909439112647341051754246612018398444763189450203015373561038542218139568367598387571445053833256914081376461275678432480170536231198719823516331401757567754300897274579301431382467050604660812380366722971476776984322693474892116641198793547920424200642295691303899997051972853074591583356627523471365847949761780585194877877169855470055046379831374624214953346065290725907008403739784785373778948464821871168702102249964316055447504821982246356771752483961047429381274027916293256346739637105535064924630737054746496600147654681941697526576268712502780187346432546355527996955359770026584688157603190408701262349893988976557415061545563272048726403800651747189542774729708541486999220025431960581340241303377660631258990088951072173395703872329798943552781118978740997683301765428503208706865435737909342919252103179214199263279427137191671509960287242741515170710046150259698293666317703775283166184527505169204864615316774616387841729110665578567270999131819107292357941905155112707556932576724450735393146140201112679468643855073658814486777054454628656502235834589482365209025594135884309555222795396620509876811160018809294039340323958694545297303338322134766966661662487853164687643032552175182542873820233573211303477991560372500523374697324306348631383049454523059511914585066446265766938361041833547820245708956034329232133312322094825298571759545805145445178037719154644703463151183377832727838021126620256934809779831975060903200486954582434574331335250243368377003156405014273312471607821690678094946629172244368187573427174270001420563773242941391782797730273528301481267459710261702971227560799103550398805982247696615802286109815131521896726828213062847427796777192747638627740679758805329888059858548070186132906172710319750239016949449263516479591296636230044299455228518949285483377650910945544647095803335781092824555248739441770003874092642973287331357326100540564264538194045320202964792059445740291403352745807783030827488642918568306250410414017897311870561588100369913536895182664195000401366173520564923550333136429145946388187094376567909714481557685257551190330275944555383163878435478251522687203641046942316571125385108815644029991395050146197066819556066494949241880635680647613614883993740359253683240438358971030159659064812356221912717660626097290430658385384052550957393623078306622121839478293574707895828787639269758057071471985343022314259879879667979034955872519047589437025133061074465788509399710192152632565551647374225576347386048146873161040675077699334980076375483654969650006384618838149271173118653387093850172011838318370209528132721527601539857025173239896966548906907855766688971379658323908346159759994865051000806082168053354093262053949760811640235243299415147291157345713208880190059725218176498182204521113186700373164722623548681716605468391834333632574305808441121226671709765397659425838823617508998727973714043026583228880824446305591344802143762500818447263011258960476232837972526884599983332772385355147077278133839299026858418619954071962352702266075159327516503226516275285180334481944865165927729114835265275053418528032307060974957625488659923262422865425882143024099715814041922778858444498128603881842647736196473049870972646162705897930242890548154244035117246348747633680466574755383407259130100921915317841471179745900402545764886203703724477965934478287801182061291228853519328432483892682753427083919310295096301292983344437515676321430685910968834662084455699977282640764783535171297037944478040782976148139687295357354870294552243039531738674060533197821222161638466401287788567361900778795711774360631948832252699408000010045507666242216424457205422813535920505244486096075645375138770443192479406261136757597550236089183659492819146662044474264759777939062084019308147770377039155698267994613942214215316788831214964295996315152922062437552730623878604297046421786208785391807161615977966647736495838078242978910812493932218369130981638481153485229989515051321182348273357225652882429931102753667344419638611266983698636521902432593562532622398989986641372099281344131189635644406771986609597715836801936212332568903033013236606575926977313435613610501344944606623891049945002638263360589477599190830374421432921640072205453034480433243490594879535925550067788453971432852378254985741921289001916989550283743201761718423444240498193725940946188676633922341318243201147478789529026727570978522700452222315372313239835500703892517784638710717482082770560396401953545432897256549490950642186507352035037592185252690789845743724176237513543201030873158166498636359978169550522660925559891120361077245124424239169144712856448362440221383846031692693544635060320389455333806587576173713206787897837357934602249085153261907522403000231100910411701086321858585156914593071906234681596879015558196290665906300360045967981539943857318268271847432881533331317600717225975801910775698651709298591268258302744994383271236339799663621575211935927218438326219095378655759434323351664995285263896401550279537359073898630250100889067421023534647380229144281498473180634412951467853014527277498913607001708932483657303005585346591683092896277149837026310615792468925752348159203800117852247555481945508199216891859859222863565324387092825579883316229334267996755746443617982166860049444833283959704947560498914464942267057587984467496233667532142086711078120691360887327345376575651277513458391377078837688417044615678086740686986964969453499070180095744295215794736333235477748759868133177334437309224159176523863305830359388767233365289845999260216735160176923310988512490991145450986749618367904105551645280666319089562644655421734176449118770389289302184102832534153722832654080283972132374193145269215738185240504942960055074391565539472535908174907222817291052151172592778394566214113269958178180335251771583614796033995291359279510554204249694180367060108004022456079606874784753996475630897146363658491183878969687185257321220323728102546194324170921885718701831269476039134082855309008157120214544078572754176523069275212730748266262320465647535918424581227784405909264274104215724383467500678988902146085709719940535973260147136742886825964717436485704937444317698081940127190079902853567387323087817072923561459258998166715037969766335671650164713587416603317465349743735310978411477454044180371000027491314851998718193710005211942232197643455208758775553207859305491452514767767400505420837310888043960524796304865614230489064490700265054359886628281307301765624202725649741164784033443338526051083244026365891615796779245547021931467919334258452147328728913403087785589715103252219126685932008451134142024476102527966290097029803443699465475929856160008284473400710719999078897394758691377863000407759921384947209787976897195633659538447174893372231455112275255508921663940339089323079280900520185170357492830138897748507772766795151671984610764789717000542250616973890211951521307460934024695266693962825106732883993706163313003785401662185993400186378526639813524213257124818238214316108022499469413612674259658039629025892706968661734885138614013395497293704835962133046368980403917049054870626662284890314287046794740780311261818293972434204603913518534383076810750848529259493132767825361912069009535581644462586673052781866941824046318488290019013170333899014617016413227304419304835727441513157405840764172381998887422747334606840679074032877212990735534517401856716712690691922687476619680346900277421009170895808091129130655449771775259878304728641003277945995906671588230131427123014635463210111398269193975282360732571317747506330662558033733372050602060464058663017764502892800399859623488468726950956257623292275225384834366331394723073972296654540657360966109140571505877562826528225371340204631615788916237690460197149577322053948376254859996200891748240191765982646220169814225580185199506536059937439656743945377785470127730422086318046529115116498455364412617793593662669605583798789504397861068665604960735316990365887098728225547305636869789698500773961728995731963590790281276607211633303206910672042433126543183727403519321855641555012000007247137886149927981370360883812578748236751737596438643421139749423680348918438467295015124638623501999719330808896748734512600983698079834805583674225151124865138706406833260468708219472741511168583857294575057952856624443587450413273327784891887947961286616983393906245395496602094735934693168574199331714349528812865037413622891409886697385290859142526571142139291588610601222762309309644664816476437452221557204448668595841405745195003592479456106642812208613966558358404970501709021836113106989210317587398304569890565403185013645566063952007696832896180380237989270117669046214368928646932545612767468211612885377485244150526279423103012852804989475968186238010319379665888834963807239700218831524680872026339328305139387272243093224995487003973580563395955131766749065575594849115123477862569863429257927210939117397779070308083254821420003367292571461475979046922731124243968568238608060070323339566606604913435499058141041583017995275424488791949557208927238185820308873135504916452438108754720167261367321346275272584626399661772261780164669635011788720470339040881256581552258530902886755734951069882887229076207201826116616472430287394944228936353547152154084789288467176170767255691509149277175827629532341212241741427091895354697822345247681558450907376902014476623222368409590084371106503023525758642588803150426529380875378854644661685050637208633372096772250513480956059771254466597323905807083556365009032325525433549326234300473144399195550417572937534339177622330924551390716135412066218063478839529152509392498702439857995997099673194439260111327790425413873765376348504350034892612166961089315031728382871342908186375568681994919144065153006106111728711622095800366075497351427101578089231652496572166665594603370524840658864229970554450691570910311922398025807296256828208262255474940976533666358955176652255843459321461200467451757329729748986615864647629563697058715311991675875486455672899296084575365985024671178818815747757169700156515209928833929553382990005341552317158627297915554057519244356274599722588859608978811851672653299419470700376437265076928885967283362080083647970760574930150240346145219436338861126087327414325589627586705547760660657829826456664344390183980080306120214160379863071427094513110125632430417277320070122376918510179014090948704628778627008710707542880828119296019024151813366933443382228777226766892873589356208729029774705542969882031207829593021051534795787390242880774643259068340761818310573865038440820216748771820837249579174089487175040313689116262736528239461949579275328610032707198029430629445336589651089940132835756724408688934474715483576207166033805906497669741914168582433986322919502212528246197384065545829335889923062163040910868771257682261877891785125986038698653488949657433580359934564544186560891552088262246334726781506468682111683364703198717127332679625835044879420476309479684690606878739387832069918534399753220589926541087024320422188483077021308763941987190685922115927080309334589506081770240545333271014613458606111987848760560829345529417855389618838078287523407405440133837832662830124671705389243075081099509891361029880714949853959229048986300137145335450335004310156610496516896667997230651789411065818364048957143092462530015139461993927634894450638867132187838318804690553904618367185694311337894796108268213432317423265549515710455986800221196634453303792516478132008049894615829628860363582339611834010133945576436140522944540784608667464527611662072643601809641894469139566902100883354911231449262456791948125944760392459923787574609898728112695145399972754497437138982430348104178544229519881910592479308230665449866513203970490455963834968135501829267217480357391762642497811194666134974756939644850620659104246455310249967821950046241493935557146675768111721264597226188100924514677211297828355951788941575442537311386634658222450708687961051725723098135125451169817990594236793805488446829182018163666133286488555978935669790224249839501160513059535540105954148304076522585440554697828932352569817077921550494895580891929030711767598024526413252265510332366925568703111610392663668290101182215269695404151228364467557939909625128117329052217354401709206421132347248369507835829168726075896019369947262771015137229446522280378114245349727231727364493967311218824319945531755803250695848785896270240834474260613623515443458194986405743763658604860626398423407290010865895318158427923288092440367414016398632195401848468581583604087167755932974405418237275372028997375872105757624612477247414700393626926648230785354153135787711709070823759026690013302135561936459484355729176661109452601374037257979736676904272505586734401294028051032593149058445171517771930329622617257127034335401789769000241364240734372781697397536756376165516442597107079283219569720351693702049389523574596568232531932009607151903033314369415632888731622621099490653990147475666748007897969576002756875516780974879218284338108353631677177288423122641889836376069663431860989336254252753269695273572615446304121235223158501446920614267713006172562273598877889822469444121854933663238728661377678535231543598986792600934097346251558919177103737963659807001175767668988972001476975215331702632231770631159306156349853491226078778145012419212605783776866674617881688758575424414829864353147024753908175841156646005298028556792148983933690498077615232162510205071324340484889021465812735352111814265605524854435584574774630695497856767796049025514644806060982099808483860852233835877587598003406421242850387771963496575639223593567459721859506798980938875389831758017018470922673601731158161554139225527768616004127292239548709632128199182301235394175686698440654447171552044418060763991685806620647039496754567152474601389962888457620993269111589316180008977384784234315936489349433862872485122011610568286365102858842853170764180394188637095600650187741419000251360062270693189519608313602990345091686049478497220316223297574609283668178407251581724169776695909756198119357537162164462187382545794617820798994772961434138350687772786517997240482470824179558274061870687028704149705519795702144655537458385731059058758952076458520981695475825238375183162711184595236921661638194232899965604773212249499054276210043639595535853674051918806057706612363919424799071741062091497580286911851908539828589666910224618467533276035443474982526235042547237112715170093271960479525011249529516125427991960893667976127200196627808047478678903196396812538873231536976394677719505849066907404673131750114277134693185786002092641590920862709802888890956971496799926178271814971525210008796683709799460695568309282237743576592713999432439052917943902954307877515288662130697255237168217953630499073827263459764191079681336797172523465727850539210356001810331525680195976566850880454579247490590085151810415199613198999327477555944579856162075682543889775741317654630535116289216175300215862268647650467514017524173915532230733284018088955194376260115882053934650018570763433572823238220312197726934568261896967556363979485087017807353845808303561691607622031525999813545676542028389024517100146291865247642363989649454259206555065442916298112640373257140794177498492565140593800246305810370756449936123830431006879655712364224386467618628914071078414979448699353824246420729591632111979653501997149189946582155496271505555741529510658843869433127089857576538704861891181157122973905441761891213841855562269790951492412577009201554159429025241652273517389617884255621437258792398770438911772211544549251660267891290518832459846019151021354308244988388348211556654480524110820369200336274462181546440830453562712746639934084873964724883362547827986869333899782829738592271620307245319085693088601549978270286099234582523373422981280307459667397528813656852191281920930742490401285898608309873370134346367372181224572714094591601229603638197604239757990992297088802277972029228331333786321090997225872124169807457690357499405730608546944983083244009947791271576324408352174464531410053941678089489244274563603241218967763319997540430040762700980993774519152200369224383432946951828841209234904205256368119814497952427037714824067094276686441125390316536010577850305531588733043479733678377454175919043403850635556942446776031508260484351413138420959480106526467192957342278361902063089176002374151389057560036187831202658389645610877382108263627951754807126806384188925049757129378770747159323212659025475126938669338851197401879562880082325782388295998673221838259178640306734755167085890657736403831758031521265899052433879916377067294962044586894337348991340639744766207982700378423741735944815676335880528382657712826921948911757450890889602640702828594345385357446098703167468217869148393122841726478980506452014399183371364856436712009708765650789359907274973262424006221126770800002813553076762861177440381302341277948759168937128993863594926507867525386815401010970889227181786387392331539713840179523152336811919492138546064794839672810634031582497026027461650305075531436857484881607743726353501524447025622272444463057504838999948833065380104270672658514433310042286983061042933203475348360161544498738376251518933433246106720853997626917137828947668437526292851825269383901571948301114004209159467258735275599008079132373586622125593031464296376221318287450182007795710955735218351664942971049456370976472400225293376371131425230371711477652077322840610216858087322026684041558866084321521731350427878825333548380481491931192472006914424879105698674808200893485678252495627053953670373928714783816654613785499704988697496410923039223798898425376999775119958299436190401795074513499371760130508721316001518238915622591833636635751073970903936110841131286357822386290820954846823080921359144124469089458205818384389451272879495156884407106377356338837214701097565522530592539050004216877466147257524557728590717631143735963894673071856515433962676255662419163952164826816847139477152630175005244813147476244409881037185371740191215945054709048790061403827565704230770886582233665228116020868407983617061740908321404266409537611269693961685050190190357992661027936662054192765432407204468241414536347226074740342966275296966818687288901277423843903752895298669685155594061383293300543770757517869179196814889212078807480924194484788273994464418855561238603857080650593771631680927336432763622110093595343035491828965648924572145131438805354743554986343726577989910633301572636933479710660386916499336606571156777771049530809823205722508190573376942248959165210311287878222387592622614297114201413858350655713809835949189117222190932549895026686369061375598127615352910181691137822602552327795721814502322221049535542293083893500976309616887040414774974228983724772777104499155929795256414611912991252624384480296533414788691092489351480228046825687757754897475751153098203088017016582557732053110025322307508991931379606253935677695529634791743018512741422730208172204781079705969402933266992462870456672771568071225480301890249532354512789211737385667683048768409703735043733184309468395892239235494489307207755045537470604764016948556998958759791229237749898926459880019392106405803615420856969840286834460466425706025196463843010550067845617539215816198454046465093881097471123231009733085777605624036880394573872235606091991503387608464261046176359654385605279759940472153130769454629927241161064460134499211063505167484050785116292413174970920073265972201965175126542136056458487173744342861905825429527443643857779664777873442674485183130972988354378344969961452836062985974722252058361879778065259428729357898055818014694504085878967390069731056094595759532031431004037917699484586387851181610550098521008634479478258475556718389444086196718152922464458648608552909137240300334588934364148148596758134560301597255945874519828576018692668270489325266902448684223680353590316945089093449606937052106148958638601658229158281810184682810026487900676832671072670289837407284793928860794762632995779601323940229886203156930851681584579169277098563443550725414087832355386088208382649401878083593898375902033907600547970664820616131988131253415517598806139859221178996009225800121788490929409837318605240963054069617682520133946496315688010413073346255538493943611003893062466400684938061237084429425541343812571695950349639936282373243981912890101967274116570481473241907320009964372540776962499504987136986664584788062246374675401851915889856083425868689234861072561428082221791149130100303592840014905029720580610513403814734564435284413699965004425940448187986347412340613447324965634182108266372822713436798826833629271674490152921111762529994746550755133454834104054925695030563061433208763380958075474094900567871216942420335540630706562232793668884271119135977312447771483853115328861028437825823798399212614296004596752885386634228263727630905582915664264207242205573956342803020032217365388179637338577336973991916634969636998145417752121913218931979864455298040100071449386290532252373698645531029183250937379900858249633940158145810838434444799208922664386062651704919371556564664926730766400991458864087604535878747604778125133463936230705353320326598103322311081078170152141585748208429331993242342567615874885901219010908465854147631422933292163579243109117353643696015957907685212074319049509751675356668894643517496196298361843209216979828940195093249438967731810627570533982905490234718686434344737338131989669069280767935124590195038029353279186685150088496445357274955676137777493479240969626848609517577017786390913781495286314326810455152130157501948116110488960630073045593391958282760350653367114120527281763151085694232628031072731022027348009133626782981503754014606168040574954784079881685187634912521031176941346025683188576166810214935573838155677818433382085692944106662076499577166037164299797666368384524556717024058010174190648038318233909039611083534202848271782790832999842440498820626291797455616497470634674296850836437098411811109851737830038969819005114080739458777987781974967251401527054560079060957909670729187557937008170050660986691305070334006076897028348582461128096410746754875956046383298556857639848347423634648523055136276369685174130919342002082632118573632023779271625260927135721525641748690173397458025298614457827579474011363893109834713880217444317575507399017696117738774762664740286051654652063043585259805812480129641137311278907963249904081378263992767763652884994078579729521088746150683425423339591321241044718876530411909087380249035230294129269933293211628143155524864066745350465539653860308388521547854552968213373338787667242895513566874319129982336830857882306527850144991639863368534581190759434901025629619795774389157032539425313419779298884648007663520968600013091391404593316786298994134056393997460078555595558932049114565273973417740001256986125624830131138053755757222755361465155386781728733198088831228730190722740174655779760695021126458881302028531178105326873497224869160227809239444625784381323823210716128077736421370014080085601804672675522758685174544008937519227005058075300178112599971466845043211214493894494247848237180932092209237363918672597951423827273045942756804638755092093755424455349617492497872998119998681537537160367333790903207259294504607041480755568859706882826314259946858571867633954077713616286397002306771169205993209843631690750574797264210312205390465456459701715294139960873691562100776921454388605395781550632259522432515009135259892788471865847663938873712236597206617521220880359941132001100902310942686354015249261908451433980718537001497450544978910248666590172455884006170420512866658479067452416702225246724779447646980823520695902164107588730121692883093231932239772311332520723985691733207015078494873923380135198581722881707700694829955354468936595177682217877848881913672589765462825602504882408122851193010611949698022984658200946755076252355245970575071949149283779780385770122107546745966589728688597679932634688658581840666165475995648406024595287303612475105873906103700658866080890857990622503876874181331603207633635746823984371714884107616707796656960084164841031522938568064642919483210554682569303883404226423287039867734556684721161657385343479595156028229151393569436545592052387188297055554414966590936179982107123039805268451626753635926494803587943104659092244492859599732713701124083912708074455194257655564254208792385868175456341015609524020940692504630965035902861879196825049109146015904116235018468092738462925640586390851919643612267013922508700892601430444235523870015140363078864027636573341215566821782445632241122303961656210811823865443514354089620416898418952409229850174476612422321284037766675735586085020362853074173435711587501804095585032696579551826352943083725030890739287956439251258887602791302050416012131605389292881267684504656756636700747098870546139288798896106985826328236797361381778854692800448938296929766376559112518518836750872325093079591249067895138428268801713376043689715448503823442534534435903294501159476566229610151972224267098240978810446120300713221191254614934258103944814348044638386319358091684282628345419463991416286688141105914051829385382167238245207631105095339195535413202136619176915934275340769005815717110800475859657350094313489785530914293278053599008018458931280147579285535463161886188381129019498738121827917364299576363330740184056773021141631330471387169445313533034989419883466574513199358446755705397739586737704441270404027933249510151310021817483133833163423597566947445003981122039395150760056781992492807086315656567385561913249577546786060086280140930394487414293714792909494454520756547938530520310087628525181798298713967845988419267568153821394819887951561666140928616219484317749551828970221163929305563765888673035308179283484633143527518000521496671082914941601943174881187048708101037960807015404768199347870853333038689494614768328072139979101779587978219887891538522484140286798074761297899520109922842958601241709171384886588617162300649547786213661769500627356430681279389457704503499381790832660699971688525879046207763250596721130971011109107923239867757214385454130312610186302514556806197536335598853200179797338744047321720641553645578120863658133194037121532878699158545460034006901050343977861778665019986141865111552229536911447640991046203020897389936347188959582733543848597330369052312241885768518456507113853280761765723158200850012283295252138225926518681389135399589327639079976566470708685911866151147363349491359148162137016302408620119301922860074491100068525037985391464869987472638853979965349826767862045632273291999147264118925709503536182666601230551363173642200777124687011423245302236664027489649325663881987794174522981880580000119367024334024219483306779666021057224806688671445304891024761445202559612634281929952309957515994381957761783589731594194260351128989509054413955909920017960022834909100572729298607536660505695868551978881979116068187061277668825438456459187684474648173623628340052477239578311520829642562540196792679015464586372832980063769978742840111423495736539101048621385043744838348206040733105159527134456660328235398509466622116104483284763396155212733361771373021048917740830138427231864672140402491218498916205541896656529137210143936503129426869562047271370783145978491900724207343492076142158026167093715811620541080121087481981028761408916125046288595078950610781854871925783318889458596904584155869011835573709428039572135434472494386221645315591936098420122568108617226663899328393582690679911913931616728206901179789351137367187269874508919476322083840704512735765690071981722999494731418373959164595213856094288823278390824796691831219632583130316680418067424616767681615354632374990187367964835503379855273935056286489427669442780563658032305853111649702110404206949354376896531208349219520420539545281269076040079531238460765427985474529653474751919838545073029468573776132550260951664050212385441119664643656016314530344269880632227508912141219026285132490750635536368835476199581308309697724172272353361596247749958458742945244268277160599444993284494072309390626908841595536855824450715695989601182603841114437906606444814823144047669787669220631940485508304855769929377684363982311524008009918121575388291122464656983198080628465181467297620268295149323699772461439570715756711038556993342770855934171353379617677864632342946779102320623296014357103731781799850734467328532106944250082578278818742765375728376875173183304768050946055448110472866962445848676721309652001961820358782848580661031905189987656238387992931916580627296883687635754607649136715084636887024106786185168612143905751194364848998265201517937780393835989899703693024506813162516183599363169531106965085691064812796374159490854688540792336164340953691800326508090569228874157289155971186210943805613422417218198855406015899582014850401721155230297277264323945013858909465337847139717294973491762539617925356231660527343168265308469026257298456116253813798602396756554953347581471727370236703747545517125238868156691396640494653711934638657920549422789338047403531829601005797370343602652767039506834565420540713888152087011699224432551749557961224741981191863160818372070142831747826062579840969761793465577646907707019788262956312614877913996467729306086733885110537167486195120170092857777330876655469427923569224722748432675241475612012241456821135906618399041626273578140924029546768858747042540476120184207002540118404984064513536303915965046939366474408710716230953890655002862438469375604177190378585300470775828137172714248013978529707976465542552340426787336686138065903617642942944516832482738087721141618219775098159499842644845880439781270501433506999954184004904315593913731595897757649246327372196168083847742668850011922497109322859016227224498280089541934083262978802537710815722342398762562136393570343386278568305674657410700522201250615346825921498317493351568889552653274495967980410565322881255151937825377362915202429563198041850148281199682515990089144226892981539865864423419215212290706377333693834067179618050284951849249979463687499965699826432085570278983703749507383202003145549571899125560789518384694166193634230237399891171346847449815661029218227969839877462345913772207168428135476990543720010854081515942000961638259093582837552241958697972927221214874144224117926934708800722117990630026645112773385745837118366198225431170213737747705151486306234686776879613598437346934646410195703162059898286343574719468601219047019871695653160244224985267474461681715178961578502059006552299143376159139879815108220249483988667579979397061437117203730058172234214538581343790392847951937948355929914443911205447622612503694593103195493792816506305746911419039839783022429798572733244207544441880122640183481779015432565394939456486094271655680207419202131298191693649699875138351714946674688684874863444929808845830901891463962477729252778401120092574000771763766614719696622848014310508011452676335944428384633372483161446546633076852735490030672707011017562752062201962605858960330850559904446634562994772874964257926275454494170287918448728125350298404382955183170114466427579052407609538220472644877398254095988005000925018641503349240753628001437537091138392042164416038100975595720886952309883133352434593517994291237662154486540652765020218288128582056735844746165258748646399168003058227979856741670697853576547104707300401022931148839483103991619852950199269378026655093228621535660474800902632987817214035618147960247113352758542455838439585233030461639451415886331166667915831309590170026848590286232006096804402007698051290171062362828379486641015279080856763737924210782568870034725282156657186653019750552239706400640178543292052537555399489404223221863151713985205966302286444334183813247166272353140034748766050514421606024398840077761646411955846170287365048659484548415577362528981375868348183929560980702768326771392944313519606594872785065848020698250090892121575359079584147010593630199802058500372451710979022094203986450530977850786029031582493551531894643591134966185456803707982887836960794055201727494545325357501148811201710004900532085153992020358547864475840364319126084954995028907512372687625647824786109976246172740208681957983109813880229723961772317578754644356910774327363743990477651538860895250442498862588125610487506238640207203768399832240778969384336985406323307662037027494364506648760684863278923205912845124400269610343119576169654044376087420796834735191219704665887305080539854472254769578891144302464965603818868174993551182052088000951807328715407607571663260035631969285734843776745638201196762605112496667841471484131138950941248607209714550880789711524712659852870286015020095228169624540621836018338691664482630483578262187573791585615498169342777779031515524536121765526432073465039196690511229935262160677625753922723154251732893462559771192088289359289226135074617283791358120073172256423255252569307389424582413658360640833698512766285100232122746956310153885562434349073905422198527567749371413078799790129734228379935828920041731043503186511889651906712808488591468007165163721467043852846215355061788553919491678150613032212454616945857895694179592920909274339901743142410446133995222035115792707649045340492703449741879825864234393728528459368232030998857702337173085190602799278647471128281473582341902228187660590883454540584046524605193452989118350895132084015295883379530712386936016627477730913087494181680291030882018781903606850784545127772027837106081406049406542491483727401557029106194714875875379837235812239164677278307371038226472563772872969669107649484130962301493313986498243817890279836571336638300681416178538918351144998683461115180614683149055393125129693019676132115632969175850775308945031106933724656654509337817391867020505160340155059240285314917070487078620589739820410394706627357714801658300823854986120446202731229632419085952593544290772239705871881401150432308209394838913117611939330115310454541417564444540873055723864051794712966999568012099767876666258388583435880259462267513807352037187261504545861140810756755587231800101317121297353502367365839505277673825965939050385908495206417104394390650994553966824256443503429283351471930665150045235995645566252345445915062050290841362915970641009025345912741843765090623820177012231645703732638144087576569515575055391508694579144971671756539518660316245434498187569469893662964645689664451020920838111731298541980645161381924888896303814020989996882925599728629583852462395467241578129134269933848524957317547390025298317348001701668665221790327789205871970503923716933483559852975461744633796997980110087097233462691919326524954704613628028044834492382042584553088286272513251097680052732542589872507953356281623825047248253662941879404675949584970380928203477576210865678905352782085544639500337819442559150084381925567398057373499023035515354451245040175879266610607105938233929353519096794232880550604991592900339930475171622277391266790352362963889781300673715032937153449985861644302656943546751677719949269975590131362692005904205098853814214638160554609890539537633443810395885786336236148190053285678301239484861114894261744452127733404367000258699668060020769563352797674664311760792786742103152581366184281321811699806343122195833082106749139129929574569045437335350699329328401398812992004571960887652262076836589385262126451790168792324614056649995982231092428336689695694591881291725326503072679103351659962313860519273639051125497765792364117647476068249853120466230107763342987151003836955596545145446550616076888822425615993869111345758379595474517565173771662195708423821185895293679783149839803337529503476705616100098038348840771518039555045738395116385930006852512592149982076971473864973704181304651061148120682699966817585869544177814076850542718654166481215341564357564506598798605182546610283103430752761625566572044567759361303400587419682829995761582041554189312614951697146734194574749846729443197853843909123321380874093724169189931884891328902610371417653145429362054501941804492987824134005988474642275614430204648187352659299582348307604809981639061292437223851829812357265690627596493349068078584361168249016580008423260570217228290646112873511302577713078396199726361575838522158949619465234336577592104094428542401320860634429568936466889348855335100984448721664061223510527310096514374185512602798622554690518128108484301400918090321582442708532134969391847602161457148776396990204828919292838907044188179695433588915431834611116846423021042876922372756502014100597976962956647398407753847790529572313452575754329525659210098456757400375055741760430788164910063840202976669529183837852360092326237706299887253254443159831115158447307438677986356747838013822503924272287229080050484518960435443719461932518333086475701743614361369481313003238753759303331036079101979281997572646005855905820941230377430174772386361516870070286391598290087046353129301346114192516139250948788581040593683272157010353341024709302111689473423609043841029191357745916204466046379535726005455675598428399125230066535846235581717984436260482495940858916759419810662149468875796047552564288813150134892840222505777564684463849396330407243445762963544021828913146157747761886560010269233505244270445879806851905823748236703912994032911206636603146243851393115822160799097297702763042887617425950737727534735591825996208836763254708887481692712814692945185454359193127155411782354164398746044732327969798638479120975691340317172663582529647216452064730149889489148300313864179394535185026419296302735588896964634851889956027512214288243337691958853729795496673649813977963477797352650212657379287779303875092974148425136958426046205243066637261246328876750597359200405429314378609232896815811983130392863247287228848208628464320275496552515127562470267614282338662184608640984060875968141161743990631837588814446716442532641405660199771415562169412225708017757352353988119388856590278478881480456697598184352426101426288666056834643413538672683120690867894788047273451086653389267674267875089456136874258076681865812337556758496124006275751517855781491913664826787132151032130327693830327386943264704427958271494758318621276306803418721431889504401751537277304191297890329099211340106433523144929956909797276872963852809145583037297937405192814395402658310811335466109063637797947097769849169914732334729978097750229877229301296238257651319391392456474692980127097759357114256925887944467387461565378331903972249763417792355474953074214270057923985912658925199160101736474065800690496080943134813632383413192071893362859314203685652433584788610131484287801572297324491729833336432709432979576634270641120189019434560841176988296634145613793240545348107049801320708051402456437674493454959270734681330097066769444027261546142285571939460104704464449933863430162288039222310738487145457629324972775661004577361006187925053191926290071547140131030820979937149732790683148718860295380664820401991709285903428084149350961934583988907042777193629096224886053330380188839825836720046188068725496564179530457064646085367053361884408656632166246866196877169297105608646793380720748078001607960919537688161303851008191510088760730245373336143730554623535852022307330339942768591946376732719780427204882406172023732391178968900942487410534388645849713117252104910188459252277403542573757094429674650770482485633370988850856262356435208696763731650031637465050643176989349183482693869452094021486411260268325864713514485293996394118772979244935390968113524719950440076017971483310586877854792199684666257698088487962260186707239435556703488877626213581549215158637991843525078212493838595041458110514267927813311899728959009385586630610942542809216406898783094700342964623342185333338961084781142421037848360765585847472353825967677574837673432509463233813667527088066176545820312103195512128286253957721689434917945179862897448839241583758587813487886378287010770567110719881889584319481256373257811166169161794289164591474193353338216995123855177702108790655344526530502361506328920734991044405004519889060566559844566429107342457023367159052007065023363144497976085479255792742547646069453703450937809255203233336047299207496413693345205078145569648637007829253575759053743623531687790424570864233990218178256555060884807326336459877342005674469733342843835552564453088173829261305254037502157389890593178956490545348298512169227179301118774176469734147031129316033685252029311224380068872564657230297422899968375996797831673235199055697943746958359622602879415408148437956475093348106582226349877479692189760041996494298235623681080433395844903408158592748161882490452490882094423049386703953920056446519933930278218351089946031843920833950679723185637842948577927215495247548536350690167835384389778944512063824676958809587391402274722549023319352924649848172710510809077893748425622338064525084028083822893821109798414950458804201366146868249889805763919799618133904515872112720444486181243930879620769346279565701677223057513794309829920677390636730754045986678919164525812434974575286884720404135441883521455832660852739803109531117836511303216413036833036215621318104698397161328129648296828882566172502922253515894313361368640393029659984063779342856403053976682667932223835508480363895685059461762027526409902099846412302098690023607126018909654106683721502483743607810972390250374469170029301815461663264362001972731340742246501988251853332736134021978056660328856609791796711471773584880556963518691325106265132705245414649674548556084712829643380279424651952923217396526072024322969994467304206583148828120149902766479182407816109457634658650272836012247525616120104930557266025940839857845625191882763828553967423709514633401027078895790694150054968831542710286818222796248080124455513939314321619172487133904420493828670850786008831259549768339737726468633952524383868343832123431325471702445538950409815230161174078364013363001823776523498908717894267000210518927741414089726749866331545782023373197796178212740229205442361494051585624821586839743509485008605690294902948686611709807067474992340664071345551733629423825487434895437776582047300475580986437795240022765179436271708605867786876514784522902437055269372425303854695977170722969943518803413098051169331800850641208163723068946013069984054321217664756363508462899943593964133373609303796816403196564113117969554141319582631736169488737808275006727358847576226994054824322124860084362458545170805628086254358659615873870863173961806755146486024780733201713918450414182086490561099270538840782795490840917740972318222516107893800776014038374069163782118994660437778022030239332701807110967815254798144372825747822119813338014626730966925649501115556065656902442647109936264903122190574927397901277803996519965438519981728274390044049350976670258745854300244768463591182651585177233411424250184138796207140316789520572424091376097069831512908853073537450049485150051081584597475404187093746284239921408458063438371228719414697653692390197346892183683260921051627289846588915285883621106240586382938565826973547851017667231229309043790932731590581657495436241115937268338659348016907003920621662102001256905122907918620028469719186696911258123217308326326130067023946084468679225214051229608719818505260047316023833228494505493033994110054135833659844200815566015824227641171288610149870078396399274706952382399850233123988741094134884699456989168669681178069447155404495285851902768911497934325951667231153228385086187150381199485567902399902607156483264584019330104000906742945556809542275780226562293701772715369022351019083970328018237997299160064130603159083408154656843383262495060811682556186432788673725433537014801994162062850596339144552905508966104513514408242729308646053447476830410252618273958431040611935319087985115592653012763616160475366509195608561174265381195618101656746116291549109951914552461022001268829220886842715281852144572751360418133296162026813790599444849177318834875944909968434864165434843974177421624710501455348041291908296979831609110398634597281448408142991389925396565704578632386237165434528949805982320390339753472679347704198206500036524170938665261451560666515692830171464832273440209662701892750396093396721317710433964444867482459651645908745298371284915239727710106510400672403904182587620366344604944825619815273797063833823210139178981732978733123073883326929506160212068670292924934472067575845061932436177902382553869429390472872855670511136286055787221052440566935384084973325850293222998631675831363316735305820184009994931417421912825316841572144022168105803749735540996565563865936547977117389198648579165704385430307853932068758065513397284309022927386653360939947095006605863747034483587069523758687006548933194581376985409401972011166416168668814733769412148440183786567834279239999672778408725875607929711429642572965041264897704686934393257668181093098296115080635461469371106865698584297876841122969716712376209263109828149978871273893184817776500822585458984619978159499371227703094307582584327544813647247464746398417238925514622951696147424236558752113737613087090203212682568909276792104889245015391301758576065729363908420726418200516137684711749372786755365902298199125591682465716837105154120726044937769705772035125649214768579758187030435604512116392781852641676288952137591475007327908178756790488941338348661161459449520913526318506054060263978297760992161627036675306938747407384004058289738475188575600336358549305588523977305387776721563233538848359867068893688345033078965227509548723261035256931673063168531008467254873755150961324848933190481843407923309932230504988819357285006899124439996468296157877540261731680001618495885227476057896861554386978847089814072182457515369093684590073203682356307621619418735625429629849087521858803574017574657859212850559157080369265349972833614800124102802506476625337372082933854452671888605344009806060924547353970237079642654160506928669730858773304561699502825340579526960196791859336930190930385395377122618607028431914816830247103997246578673475293942370141793932005627592406058798179514127364069052864724510852258334170963803465052660667687932149631309135163159012368300554873768806679759432642966687684173012626498469164393027885817006345712946977489388129085167948402819637413275634530448870658054456676303751786441468479230930050834726514698987967777464106035038122440594448933308234237583680512679589098121952651600806826397491893472254961030387915665235927404931544372170155967194013491773384614966175078608235885716364229003720534669207838411423191645386490587663208196957796078971064582344897065180555905079784528910351699027053932064348051529153844742111802380789938696146745343625075103054924334338408096286610019291164835971015276607658381588765638826364019002094279956015823087933520282109092539976249919451928283819008232636307430325520837319353975225985364427161949699181084452213720975988438594929279122464418345352765672833667216014691905285042873291166248853711279749350853482061548138777959153603192929705680954573993235154212541338506275055934209233230689533616527488822303754660716558760266798242004492594756799480295040640367929075206772140120855307235986602748381310697851125120781221926958303805933944593048587664499731338397773283912550773298797905047014182627963067509804245648987547150709120056741950115228055493098590558485822250845843679974082015312756635635651074947345708843467887624274610536191835494020600413443336732572768538659835016544640281144499697402365171540050446015358436969753807845227000533784190588010670713745951525920495893049470949237227514579214775625106979590387357467153196464073850008301680227805827264403713010710382825915492650297946616409950825967316020294212192757629603442719451461653834160695911394317501958969389499898838845030086916067276792445065068442608019212461964711884061299582577807767516095596804599241536770322572006474375029236705845611297436333898970039696336406414325985109522074626322666648210624045349759574283323851691733417432620225134666794682017248123096275262794115475875450003905026465254987216319980539262043503990301969469993061906081982562623649977239881627465655124868056258972544556181320349576580553173843072961429553260987557837799186828280576845773861050677547512835771469920704435770225136442616143969239750853736298581326682285052239274583702554149457700876238110010535957942711284763943221961201394778349133923369558479873576159345652459388343729657047972622689349699949295080235148708076276636713293904696580573504041467630891943203487381447637716959874067259434498835587315848391238245287378211171062968287285520449472142849255896611284428986771516931477631403617100333469573645848804444152247360584117625423234291719178255768712682708336450015494105961207617150030527108481252687582271441673839814255726340046282215746015079515823137241714649475818757900135411073806592122992695205259610186388091816604486323019143659945865749244329659709954270725562617747447397099299044205073881854477184599464154252575144226736373624511767294497112237383868040024036283394742308548416707868812034322934366054561448580700588670351219178543616730021184796560616280027827087867750547056964310220431543459020497813878763440341055436498827415151383684815543184000236745796825860816731144286571925680789562860809341544443702268722479957290797517905204748189111294403621347476261198178580961439728569749099997300718897548451866641051776751210093917891491597975132069078565450531336138072614103563069379377268564234649021575033817028908464132457146656421735760989114940602185726076752286903355708443159719632558838119628095420926649461668932828148848380789834171678566283797462429682079816919353264009148142890719753312554614770886982400399785036603419590131801633607671847674573975715452529560751096883351021383418595781414775655959613217677153397145379036153004255858503000486502061178355179228561265088081452396255708753884857934084482596175081658895016133906397530575955938557854507735587642316981185354324150202361518955090892444739954526682716096217702252601760093551520114082263868163124440992929707449695795126378815956466136764697880698298321092532565063199410855308063997114743487040578025425509498305048415262571042818365244982195107211608118118821271494668938068770702387259652256516360434788879539610641737215366433744416251354745114247357141362673841934553542550435152121953321341059573672144246208379581046043186001247909924659104940070301171793718055796168696406379564184053017106159662282830853894357161493991597451771978030687173038459646665993988067257301212335299244016624681440345654325612863456607087124524012049041705296244340049257422124352567107115296823463652501243803762499733001689903794875159549150357744487717565511305716936868248577284367109906061446259903314761485187164652090190505548200215700856465815219470870148834707202691882342391329254811437329760838711874709602997991293463015672800472272988122285596496045542868771844422473006178439647168216324034104885194195792698265657831825564105534754141117309702581947986342476455730476680595630157712470657369537363845622456095103827195759445166682903372684498350404282798431085719949530996170831220904767028067016783938701850295555517872288276380730428586532920004725870672807714981642500296795115164752782145643749759483470583370563695109748610962977182770889029960419739560172756998683641815913443794624972006055448274024228949462212085543075932487267015172423780877409953197498540577654490274693027298157596686394049188899222087985666041632229962335531184765340813279582361387396560707604947145891799975388729810358168809862579387770972871299714429965339839938695157336015635621207005350940757078810081681502805261581606126620908185362238849125591033370899429860900620913086816576124017511771504276459380161206619124673525364116261508115321805368789796859797965349071444937521961675679144706881332259442675143651781042784730229236591874809397140155065886332025453475556004081293610852246966451314420439015373913572746626380440616679812896222583873952065210026561378366966196903928160962096754959978857974682033597691127338717011853244550827584790899882982370182962586570301668843876447733109364378665084352052551947788685452135784212355932944469396641845568275383611077071325394207383475327322851269117943150487680445555962263941294610577762213421132651984646582830786206024481347887876119479867289254424472762222521421782344478281241408269623515026131415440027657548968368429154997182087330461112739496233498370019958927773867930942979541752331605180392741181501836394635897321193173816264311414860201622544536927888655123646191795592731277884370565953640589583511015835161089531009993455439407488591244206951009969099029805455369021178265176626309301531153450185591648949323867509997798480247158083355987459912299285701275511498837422926405259868610918098305019750502202249734981728969803026544843999601167578714524342025788213302140594917296282128079739869962274603604081706897537115235923210102498789762706301062342763089012611842529264339964687027078694488498974877650630102503996723441401289062434701378000742701592499485842807113112379408925201347260552010820739477767135419010067683145440843787782038622161376605873298914882677458092608376349777928504244342240871779930344591379392745995797633124581902352551790085676703361062170150130380209104927417390826553724384221010412998258014205191406882758511572095922291874615662361414683602888476242078981696085369217118384767107487946684763025278262095671591754067369958577576577674023309233996407392712029084338834679570535767767295337009788833590358358387862155448513360670752516127574441158226413949000903372382008159433667143719763750874736971453205113383960627745610837239182994814211027293298307567300450520811882094110511463649590013736298562044192045473975126630353804832767778999215699081007085447873658506456543186093073831443750193994449305581349710187961549985453318436548866999310261947880824269256613702100355585160732524802717753963137341475685648646700346023211989088394300004516462865629095160472584910413778862596981554868689279886961737157612455248866121661608694749564117672657660345033259047156960175158866988335979971258864639724665159947154986367980261908061681589563570687871784925500465031231931615588353506113819422412724944768036392331263673424614915807875953880633250061278453220040311595184834715253574673772654035684938212825087006654665682224003457212280622880183878338375501555201894419353158869995537951929987264905427314644923686737929402333040861803744438188768301943478238141761319940000949392163670464299448558233328066388350092099060061480647040692988803205720986522340189058194489487656312941061242748315963940683871164438406173565231265450927553803028009248188469601313451682495225021115121331472700254755953597029834244339545280099204091104875045353909934501925460426968791092517750634586239115383228589459286778747358160678447654609686136303324771842081267531350322843860514895093999689484881578813641412139783901627213427799005343872284078225772482039088533233510979578782525854470819318218276432577505659794198651248836803484355067328136379665765430732870170843174855167567552884175089951175621013274511653299965796184432600193873342539501181810042017368957678943680034967812916941718838890394813412758213526538627300426710914871216487925035517404686075993997277351524231731506557051507305590652612487518054847576029098401238078118769835792575875795988532908882029854986394236979408521321856173177546846785238568115666121279902607121161001391454108869814384764941708804994513642341608372392732543853458945898295519533553002182866981571307402219961660492850870926135229857755707085366469441029864040029499899765937010812460017596396531585237286244297495247413268149488433238802638371578119138146006499811849132449982784636824865180861738358019962714625141429793854929947376706651625665900846678077705575924617200171004088604872280290720017112743165117496909944798313414956755194690585521361939823895145574263946327281660815355935281088742998676748465646311056989175937860898476614133447136008559283460746211381950925631987179520662960314032000954009832277971989436751838938647890929555332658677867025651665783780890134649837035740831636974989564590167763070310812879817236347231734945235462155023930819780304159645830387965082289305285527337976916066896519772343786686195475222173294049664379885992994130835452154293107869543527300589571486862356819793085608489535893835840913683344901809083708924645003329796466177500464775199241248575882263420766541030016321561337197188768231107632861689580197101370986756513377495239770707714483326800251955618079500820043760138612510310227090813111670704411529164776408256174066495543587457083052233141599416895007659711645663525672677287608176596553761504083620915555289637214978505255367924032493780012557645873536260766257642732043365541321976844851206378678240237021915842382777156340171513466292622829854506212987544971523178111742453419361031611772938635937337926100951906343312452884947211030053206717179901358267346516827212154895307348665219264754666319120911538797527383544507045496220835013553549578479188968599580829279838389271389568779411870465866481308262386530084303795127613724412958927311123824142509489590213926193105143679704934184391400655527288400072051378970082558802982337307705066236738005607012935560702985310449198145984920357054805677886134573574350367013874778541303679558536097922457257294421804843487129094125705448136248315126362910350485842748502287361544970437346976229848828740816358634965712363951721830781626211280990938941428209285123107991730941671398275270404797594584518610033724976620132403245322236323576342856161428309627598033157045124625650341293994188819060268061326417543920253621221577084076828534291999076695247960081871051490573799025893629242894828535135834024765959316249765408291823739085090233989763675421991471137430952579744527328170433758618619614713818051340673779737724257188556910223844920469092216042291000218121459233480565242875369109335016458866949760876847473287043205006138114179813818506336057309900085843764739774149001006510826435358173577006041794467431032496412733360712043696317953356520334792861051139259150968707681739866396935900709890674292297823692023965793240266020623869488701189567488561826498930334450098333032842114077489268901338169197272721135347542146571775317126541413177691686336341948433837588650967700026332760058939762534941345914050267999285294932091211189964098018955938086890450470623008599630285303801376938004904888846421324209763368499019230904106751064282089279312855886225151980808435207296798977879193058125207401939130122737520431833614701587214231791044677101457894628517835324415839832054107947701062825032214006582489309874262452191270095293156114524268093817347060840011163299471242075220187201779025431852133857715198597990427570807809962538814302091730708032440047708855566194262606957546873977297157016663872195434675494751375634286580616758135780337992200258439013880116368443045899123754468469778671467217375928975270922237609793889913013322815126238694834227925167399203641862215652259984544609511864754343411902054198029125705744806366326968777430458773871570516818610907361746647075861217191227594041383181266761778235953513987935538660312119656969978024981492739502890457497343606361675945451015905382109456382882840178473982058137342792035711566074986674390420165972912828624017330692673268627012625160433112738271510749926575213351649299415843405119611484273502256841328684040500928246050829703940867948075472040738756700003183675767555082220654730590027242069595046269789833654229514442431902948498804577006640368038497643837429632179561524197303574458803182525605692739797864771699578763212536333119884703816588921972660836069681259295857695554327983696406708550082934599920121136849989789804516737924738137056130819083615793041685977982570347933232009437334631908954795735275371903614487657506714221677608231315272587745995978186548026695562114731412681132269376329009943992198677445156531061104657854208664237102601474212984329196433862829700736821284229991837564330008010669486391430289865281488273678259099263695699254054042757242256422760041969237203854877355788670198359643709360593010593233549643224121400062338167753762584869915680813824387679044890277600854053283896450043519248643362950431695192469636525547982774415237218540467737825878989343353022807293713513456603134883063295563811849372564260573146571938254865322457309564845648955907025738949569786837470954642634911665544721574648489978355342815424571638441014545079439340989046888124165951702654068375281605830776301411923476833535496378415652145882144527361152386134583998124129039896885208324613981021872831728839895742435057089873897236621206515458894071274960015929595374814382398710054478805818390564258374297606248332784444408275658814273962232074966538083257744561588000330283100998026694258206636869998760957369290637113459996044401832174490488029633785151703854836780593952145916773947819362090493623026427415775391845701243709463830093184837229572438380717028269972061340905996706637614249775480928955724517008753214829309160044788807060296118244266482542481037183685824471046913834836298541197884267778618352788670939519167841431973468355577829427005031778772636394467636729787482358374145657767146064100786266660516090802435462810534090961387655492480857651970563106539810520641736790791357791391098929261567894229183052086855075720254297400455906242864713403723765810198138330992738977584823209576467839645081705202744237803660718110781114205947501311826785009725442941336856349108480519832237775641032165546683409431264339181941844020932440195991974208879946572443786873756643836711630060628296977355874495212603736348328004124104756811298690339788848554340222287499245921075098571287921000635717734790963170818429382565564210456694451510309809182927692661097200864191469771204667474663545828458381089833432730757069207654644825216482302424240365429126434764097358686113016916506661305733227853573863772806110853155463071805920040027865473856489470108523091948359199462706365104979471139956843004155275564821417947363478529929477813293786248874040799805281961582471443900237689795419855191276026733479880458337625069214528761584710694800960298064761359415192404529534993251412066808807140631356427885769198676065374525557386556278441151673991698514764128628243756413120553988645337086830890359863491671332009907936591704253599188056684294026245606208005051671483534556312828745148663363013292001917616135844271517539167872625602379159201309253528676448838465056354426554484520390764884919764547010735608627788663057878014479109378123508607537097320449871132212503455702872804028653681396787282267561596626868697351600239830126434287374432489542672156412225502174721084350867850816571408252125510970074582424869022589658665950440672068292196050149453981300809678441904246637621366803640552091844013229378284269470718389740585375078530711849380190395872635045743145270274970409403974589511767293269856608811251926433133538905952332364603298367981256542875766449209122376663081892341739068796393823542542769416007159821937060289727312589041232464093482978952321536546230244833075636568493729501253989728579058899427622964303026342067355645921680847380845390048192569413559764415401746992664999868611978326858020765927898211054500561075889326080486881534870503406796232247540502664729991502300201084238430912110399767903839032558605216466635045067423262262620249907144338746437993491552651658436060063923564558313511837530596346800457091846881382390215925209541842411913583361174774018880915622588117417712051535864149663229032770853745606195203002201120014800572725231692662446725726487826964164173154178930901138714469805130749013392507004793608418311523784027867700412163164040513935759738352423054758882043550056806099291895904544061136972264707522448365566395999570377393197569985031077608264716241088134720785595892899961885540216203612419050248381973985579876506175529743855801203431758311678169984087625327322928459337992921540658047200325601922878068070062498616810489476422387068737600024549866655907219199224026055391770896278540704493560137380225012983936112936534277559782840054732160809854103648439178191741660666183507824720589687333175906032078885495635969057828848878391414561247643966796611119221642405061386591936691981865148389402233909906590599639158140793456064181860318906021163401963788596286041763252829341795337104957681844821222371861027845886553385667117374854534642179371980797145833484526232899765806045787733342493307329600558610154578574247450600935227290191161730369396410305858151733566829661504078461438410338724945736066792776861640952157164969795732926929994852605883076956653966301684765143084172715286352100819151811974979456068130412208442065192315972435224066101100752345950362069739329555451252148845216836655536643414300675071827053462207804773654460887334824907258243589490346048330948526790884992988276346973440420852349427391515024417428318910012474442959866884930396812441026625841681282356898378172334751287332312641271826254576569344073180025782898321438789476269879893405085854436435466825028053808549747191436226908644731749764676153178170795934518560441016073455851113013637576499792619104114794101857533233476452668776192230500018030073590676197372565335305279095203604283036127760794487679073733506733133021743194948412552402304674876317020440902604372372605388047277683117406905515224738012236425218617456387777952178776500773482020102865666323854336931691298959065638342425645503336005126645169916722176549478794601385864557814105275913795218522289690726874834861837586732879558244379434111380885367575184191272342013581151320461004971716516676610104570908692839674934595333241497418473373702833113797898854655764421958130711008528869500670730349726746359405986878398179180243377100792382313198799770693090806514870100456709817604934923601050973403591154769765111164752088769805288473238808799663131418706203034445811750648042510272344358470590081608483856255148959964607515606375303128885251612335653569705927018759835796661744700611500767575489965067691854993494441737110220064170504786259458305103368870556205333927942901006284222939325007708779000000333034319963959513276185385874035782039203770343891624674402536646444020352754713390912768978658270345337110960493592282525865939816840762303785226783622213574791088343090681995228480931521001414356382416118911330296849811069808053561316744812565336268092536957289234941475484368004632621749151693343712062386798564955986141520291756188402647546980369857020137857593444211014524219604262613986696439439575428718150642440768738288719812428826928583787908630344612545356007341646922541603423369451999168171603811875097177484921903544911820459199354396785470240871982122947995656505081944960581529424135231686888645108113679223152511966352147274214792643710601911238071183827561019891818379720719595759876955530859398573970443556437594073047749356334948293024235434669620427657785932424859990098763870092902605047875423157839120170465520672130247736177392412516090488685966192863348397268172210374311994068135629893946680877368965324103820732251326527315199328205038988576321650799534928881668578387360490243192483815518457971068707054409526579902364661730683881378032394519156365758307233587381030318479417250466241637569610009970429723626546213110123360216377110614683071342925564930182986817859075567299212423680758494795633490638971477632138708840297839753760556407025675538573095244892909142418979220014122999796482627184118521612506921107303066947563146678706945968061338902435940320811693828101158144524743865463394887959615023642016936491198774573374951854923556403301028506783281278296226646093731394151677101845823629981913914620779701521430255375449953882770475333956112154457967948334670687422696839815625784616016080397085067551789598439656148959569551893841572946522552132206365763775960403564448126057715027710464240201353034256724268708136695537533040975272591984712436734762432251167117595446781053703861635201247805144278888850184404846251963644126908848827561631765225405891642691404888399794363606168670866404126417067886657795192718721828382762164337629231329326970852421699395505608904151967686804125812675644951283532554102790566465138538249291876745355101974419890453051046272011846352387251247970883768068043152993440079241777415328968912935965298551902367195004785988331503490799659787475682743639125611158437456844989411427155496429417667201514267168650822266870306640871436242915973491113328763443904461138743475430897622809417035072650378804133013352939430997350001408860776843373912567590380208959119362834784183873591948682584348707854470259609022565178901366111800299712981748169916165422863622931653926793393296655838250269052701948780546713969623163994483803956643561972767537829691006422506892721572711722393016730902568251849953965633892764904185952413978951133954113225225190965131474950357812300743526037199554236867022717224151401639487866832863796131736023235378343475894549025295451288313322908221245436656879179993254452581652875327637353134785417256194770530935654966876326762361353999772909721959248354748202285739165791081787885667052543760426643009453177978296525947499454109396190498790460051688868302059585180160175580467402916993732676713699082917474680358068412266433759201847694442954214480449606501614582849988522149027727927538656351420522408403041662349816799412976483585169596635822471451375103926958232942211721085211531493107229797308003148436808853655184592321871262344560542929003058490330239398337350666971034344457065362485766011115082819452853734086531918655657280656896967061338968961446899600155276950628721627049134905128343310455347164833564482825901743393021432716640949773431517924550735802925604689522252262480619684113169394401903313807623067047448232005551169675222691107781612931605690371569915621627418234174183954681135859658051227484840809703067414144597607219915377191807053093094339648979399140793821529166372899382894285760072688254273756359476114710987925350332281907786531047031514794312854185888515058962099583878880049905345943574549504949926093716869658439944405649923529341944578950420464466115464572646459942112602815081013311175833974832895587257095528253378723571095690442631262129334331388115451264595246519994911209133342374783604131568654511766887012514431961059502103110020552344519023905072695484302168610253358333616893305884741194107551920295210551727242389697110742961560214711865217374040937171370107707538065494661580606793404682310338618807700738707809371765645817766910949650231761584475905700961934806237080384169197135379387298695686531075572689193245220946908622345325931022234214992554430595078474432803190126745488173071964177624229120444097794502323190105405631296363258046560735938474870629843327168504849400582911989634390398601673871497537118317128397092932874206775529028277038387962057064156909072135480343588508351238708738787152431668582682326114986699345043225927939700046656479109166824424986515160473960011499427391316650850020694842543355269479835488230746570332983135443953758084234015791184004027957349531714061877892380664088013449536062776821898172547252697166046225781824825675477366561500996018602617211546849206297327794816396970458550510626080572152788548352527407503745145339800619213868480681600862561703609905191245536304787127578837601554590590401204183381443381723065080242503340291082178590857218269179495561889327205463958934723076626585437265566854429521260163177845733648026927907556068568923440551190415300706604399573047872310929390867030364547601682437506331083123706612670457811388124547965727905898258231836827929588054200174366107842784483845946013704249948513908454114905073934341069266024206600622020379153139407339681580670263709788682626336005936698288620140732814341561873138158525711583191859810806176987639686415519305994307644950554361106525669143779702519903098432001845596453754346512455765374741371663172968994533593045784161702368978625297235682307396187818608039558645736751054505056011334402301716883787777431945103831693465092599864480322167019785387828290717333348255889230837113866111063395903883616537211453303226043811136592201808466957522879509298744634568764158898123023653137661940715174103806533496329072812311038757391196010896953037082374896359521576202219449786060972493250254106753350024357081773616804904672645321661963617118809437841577461098573928357126372969189084211620330246718692661774191875015976035170612676026867801659450504816804663747632272624977994915269905568848393932418189741212391496521427222847581969903356663185140780373688137474711840130426645939491530505630818633088733281905967136343251479046331678677854950578516258265640392584921084681918397151880233407991016271218878985461701740083857888236940138639319587771273100998908281505254443969057892211862076276981597423780455467566988669744328470167653459682450811550456883126334209826018014821059531222208977195614797935587958711303585806631505868246271894897673813210980484021847976735216586966236885153824164180251938888769666786253879431904973765083460198170608467336449048728184880916084969946378736389248264714248677105611127530515103912654464823477933960800125873546974821516284391419361241236603089364551409727737382140238006361526834699064387679960206011554655146127071147198946730820737432782435479908801329339379866782683788114601889202235475766200071939801653108620292618012306329822891426562543034844307803816210676989292668891207048676272903007010381213550832832280496027700687825458119147051195594763930299215255515506780483873362696920226720047119716606718381934331538030383470630690776863514171997785697867976523035500883701001728509165351153905716772623117282691845078488894967316660589609416563162707258924546322896070870997355872161992356128954694501324032723541084510863858838877420528073173324275868014415664851627143685289394097040314675159446189958908901279075329296567351386532007936207646307302859832189161982106666342696393435826600749408802383695176491217326024200509611740046446746159958094125794675017514758914319904479316375224198478056573282465946336236471453874340127656489094616828852415425968880964264492772614657069124977995108214720852962161274448192036632424997326322909958267584840923001656401679988100857882750501018244787125928125277841475707432183008440956523654876523506044600484100161062840704433266968295211005944774168290606822621778096026316885270311940320940605359396800849972092335028510033418262457677218616260023047406934955034928240368756488188911460202621566750823874744641241434597827408320612020624428721015976415010252020583793323990355964597748979296777063217972780964441826998592738205645861329052001218263488887560863139361439039685114171937060813639707161562921667625084950481097288614930365846476548487029573958318621782426257176082088731692004302449487178073736320071892248730446788307372469884443162133950750665752590551282960456421436968968338846074026115291255469005348581645215103127225459839000866422323475653187879914548647876951316969160473023735705755350693693294759848139306758448370974820698608835052351028596923466375554184318023239562847052827701724258512359976242670863419034880881680304099547216236567289841555316864534044049285311119879875877560183645463731246950727298459526652385004327754135853472940332971744115927690973152243041702354659404200239667559712560338232337456544362958521411670097438182382668190282797112174252708316940263723095359886465070831512279002335218690877985803377944902064906326658277827176676730978378898687481526110117002600626662482795911710830065968451095738761774950165488760934043047990794429482810997635753107226803686081310032201332174647594167878995995797183027127870429431216289072678325413070713994850814088331689806200209521618119927335736464587001157084300849500927650745651635006640537736832655268280260363104571968319740532230305823399003138469558426521104804280838463290073491139849654231382013223786358465388690323463554578903796492744637575906496067437049143128334252689829040421458177866269319736773660858660768828131314495355958876685407574945453618244314087149559379953716407488401158901437249489944328161735987111806560820602605689797634696015273536298970708384039242409483831462201585763370094284992616595436424048002087494499716597762295867844416240971909390536967720720690977486951345274214495183995238197884533462492695465249922263405616652878047241043914135777003858755927678965068513485530006264701777857260657896953749989208413356284906893218903744162390465187808380418245960161806088217439301733758575217312898531059014418365322415692119352683678661749328286117342518540724103436425940739491375260656882381081063008469762134237195749403793582705351683587264054045186801330338545899850718092619579884993166178359988986636747779641124304105062216387460894841867019066432613945341479247970322418287543794613663772685868011137242606963207610265790876125312192249195253010170611846482603628829166096369209297295888247266832829249238492547678669875059794676432332939076996968672003953011212482120879366493076608309538343654272757899857492470463757302457366052832491247314713945529951914657392433389174281766503265892520652266323325404988771949451679465588273860834769771824382068529544766632684732770800535667389816858985428758793119926788155051273903891811817631741239056879843160309821968909305262386231873489968581635258421708402304858901426447292583518590022357832692529696603771838371852846675523014790502024436712683011095531878672530026605658751577412843624138619452565047055545867385643678181130902984410051987696250464435813818843003679630101152001516198237093277740992424522352982710049825612587045712419445843921761040466635125390468155847040078678413459451950215465715616813394387902741934905589392850338168156473619177083859240151255567890195769315179107741277469911650388348610440195148229625281916240357669866004009802047900875810453210089172070577987726179004817052163610839286362957420493269047798198037411856121131732045368807119489790123612962563960174136075830025793376246290751535845810410865517523292466226137885148842417572324399016532917099548848609556831467826444181759444921534890608110547613496251928708320437967360985922358339512865539820616859196807482041752219911375480082483873436076411912705886172337140602537829723573102894322548436696693894228402882746286652763213814866156398110160738306527964065607910674364005780375226654739951523703807975218416312118782390641193636193537230219401351470037411935441976290691065796796641543847826650161002824832849751782352334856936134791906745518802216629897206784111216389436469431951580477384684395927893478798834685079118117190136173176751466431402850352912326134442012551256287544941613102126109781460092792485540650765701662494750462131649407146694769507356532950177157356143369582329448748360965943267102264808242184075002233514332959317512176200533119787023834741921581274479704522766277696070562633588087902209976310141829358759995259295344387919844858097270481572179317161006704340982701780554499636160639379583563468900494463396799629946446394839770469127547510088861116664568821050944837725687074945543112794866868844878417914079137991534412547823152308725362093322411764471265988418359989679934426344828835996574454080834762156025380478311185780638175663886039766390192897056233661244003589921454092136247972890923726685226930413985474586617100274685164749611012029413533050890576660591361362439171734453531782345064981642192958951575047438900514215070282536046962834381992522194088219430414695903683698906041799994190581636937613949799342196054639547038963899212064938126317095570343175990879944842326119649185451463873563685296484617108319051537406627341745795865247672539307355521033618721654567021231109699118870512341674892762258388584782316706593332990981910337370805808777367894844946301626621820871846697970567992076533889098021869537480483158021481841387377858158192791985250935898016538248215289488529902436858483719325803428266254896732631435437619651242584855123520050833161088191027853242102581208025548365053269011259828284621400801729889227130338346946849919618512395524464675344245628693418408073314011885142898039742037995558922140802500447655896504120412548278900480212642700524551699067212912700429966330178018135721005413867296089721826071274412387639876218942076484695227708100203336067798216425762503205244072377015714943988238557422604387408211575574148635457037115806324291673917460027218981324056718773306888966357056617178225562870369143375540805726574363981457431900831905753674781290407470163646485425401984966498182441720148288106732789419932632797796720292069227627221832591683856716488190882205464741601272554278351128060638667797144584214187864068672702581509440068849167475044601351432925879155783140370510679322677331365614846521605031246192308227212709712668023401683910935800727444406950726031963053438091471914622590354338227797115746686355485446412530372599082980591268465052039880121727415778212321685181041319412853865957447122477536301170807938181416620467212262972498941414509455123803647118506063665801700142231208694345401533735194261185997371901803706031404091656698763777736910541488897954553831785318398573645693426349399698410771034137203116584505995175334646918505718237821590479735678497442539951217027607809812146179110881929212732787491035139559317064974850427600692833344247226636237901647133300639199844249160997438620276213126056312247566864329450751183304696613180095255606274933615492028750870364792782180220776618009394988462086743846475636527047249680168432314573311178256667352784875265257930550341936637956152945347394094706897570097264528772745931345589831646967452981308300754085336836612051400974858623176440544877086034670349025461470821368790975323881994064664240739716766887997006967308672207274463636780910049341963420489060051845405643091198359611856128361794960774355421375697773432283288532458688553853301120906783401161601559966594600694368206045947852110814824933813115659769655090970214431945968835208096009722359212014538312431444567562430746174209065403700881607784249328607486529093588713666002158462459867527479843333638644236043751981401090139895319229654732923334526275050593424775056319815931481329839873381605742479856476214556494442546071876989318809379113769646660297463482023257946279167230023017530049928047987478324412767615743406523643951627092420301225862963646284891906124583399216283881931261930055324009692243186040808970240634690866648329463670098880322014320048100628688666919047478868411619957888300204561397587868782961106033367055847420234942084667973461143744793896438974033611643556043636958571187416676060078784875104702046243024004527961177839625436154731483995360137923845910073097047032155757854722979045862392188876278856808886323563000592989189042202917137218050167248582450477244904795915675472304777604437789883340941267618598500722681689593213659838165122416752963234101493700071857916756693882404007283666926681804156267451826741865434145378827911764102048979348621796250415981485079449859098797031958397465041685726961434476560997714271768449255307503071334922985943902710482565829575405292879843515260561188312796713887766818317006738487991439822284907414695832304393476065481982933459965430304663461009144322502697908598205210370720601491777858827008118442369600418025134283028654969638594863092754262094840645377511619678295656640776277993230284510888039508969603470583468383303382357737357213084891134721659653261201714410492211530267890893036003529352600323159637927889353921160428427465418256866307383951955068876186830059312339713339044930847121219889763553538508533624233070531376551595065799311687062035111234565213154093282384830089657004188081267518697556609832832743578311266043044289921020239771141723288554884184976093216148807332070934592725104194967940432556467896860636606382053437369737592021320099772549341299208103630189525569322417694043838925981251817673221301768903921335433886399350250556891699031970027529445736651094537936408340339347765141511459492837053870180423303364348165534319718250581566520235652505903475502919151519664231333293504120960741613764743582843261221480456299650583516569707960812400452707503149760012651203101854335362641582604164840484748583270050692509453982716486796238275780776725998219748324643879118057567030348003257797065286173025755088520121439453108938283416637446457155121035468035270449643482392924389734607269988978923136257764608954716394279490733510294477956158877856454089864890538641298956590707508510746857692033126780736956158116627720396278779672490853839028921092797136745860653101490727057404637154103192868399465284526163544110315873071064501700647891609447987673720826973689146700443081916142257756455584826555694194095080711256193046676756057122768583480964635715510490649755438169432830021929499288755071627403639124465181013869647436488316524045961439833007124966163359277618591172608439373621645977939898233237169368369465989428119846577194203298924155118883256210420176590440155139270089011377182601104039435890742480250236572123156989744208599028842103986456274618432251657593139686818539769554272560809648111915130022357952781090333947272119847093729919867839495323249039191866317487748729071575785479417901631086702958799671148296619256769135183043064619946447199769758692690166586363964384432405527578900431265302554908769241022493526954162064664393056913910689485114272955693172014631543878294852854177138093783964704291080862369604523230182718932273262239055311056069031551954882779047194644769257623057980548136922850354874288554863810758714948292682704776773437910969021848363267958558826775530597998398102611878129199776554893813825786825330621577554496156818583504324859661494242054513248201736161530966431614481709188516944550976947508014728206606707698806711144173509873355154709445981966917845100201357098299296356297240654931630258126884414176021350062754292357302953683450780593080430661168104266285225107524292712498129536236549827213655150698199969063062372312337567096805481897031169318724602488810238252978346756835070716875783163215981297197996326789036108603023020589667337887770689860005571015222707172321243525026450742561614885317463683222214924704422353349546931015078308984243118782887514876809187900334360891188874895350339849394335408185807241357543655095156573474062687548804050444199495980722905009624370740699364296159721070994958086240598378132444679435368832420006122644526839651385907792467162563234436643177679078715633917036500863362460500092833975762600983987271193650646645046574755261428579602060243192776371655181669518003754049482411570887064555515138685111080303374764141563057745009577814517130225743663719331851974550912445100703764976693624151846138532047364595515483076222981208224298947263821027030547386027375475274904088735383544851111412810218259400645340021972742769922177410609051234142910523328174001541927390996569285478281264542372624731394791981051818052076411850462754648449830552789188619195099971330338524553087706014758429323392662675982159170040055297430911452955531002355324442620063252917160403702172745186403391313582207434888100196370878707713599289665686787281751926355319475131379779114823408530005991863942414669987148664684925452573866580290648582093166274968425526523242170314265369934090372313124797968439695377837300684365500449693029892538477841520704554266718634646593492164165722045276484956407655222900627300480990673485573224977243005590582359946845435778973015313928479902044642121808305159535447058882524682425938908226109111365044315045921359800552941168011745208925565815454417407012983039281334952559924759729700087123082935110316075690682761263644308198056321675704633941689496344809281912622309318995900966268736001949248777049710027140968716229177844728575411769484268515351844433145249669568618631320451967524132678103039848329765753663087928862657206924183672541148150935899899621760761375032439208890044696071406830968351702760094711391869954104723356449228496192782003573442702736340556341649204788835778307564399339387064772714679531009953487151018677646648696864834026949672766531207787778599402876128225755089820036767047849239786261579524945377267701627507297044525525406282416546442510344177042382068328931499424036229174413574324847461794640040863136711076682711732055129275413717301563542343683948302777638408782654839441033361047266661478575267902502949689183167297371738127789890441573621262716546661830607429292601243150187105408245523554695664902004997028178174784431027002048001344704964941146384398940454053047733013179345631477229230044682454586117623385897055894530694863148306369573748254608017975156597658288495905288457595352358991531768057901778724965608889388427329844509219731993682421570943684714321947687082109527410611804026840711334923900897142923101824063232411287038088262097475795801976833548517736984030364691495643549238584586342839703611424126528349194128792644978682077022513136864559882157321549547777934351586562668715978772574368757304899915236572315635472191313758736940648320691607281346875649401442973588872020063178696276245669075446830089969335960643737690837629009429423789374090886043186399328219723287649432972333298416453336938867447401876040167238981678089201015778529502835315234339794353134821422192866372517837495037545722551796494067950963429408879392853846700099287330410744925187207996398888005505325251188686894889894130344535502422686936261035519065863682250593931215016116826718204174937179415472437276181367960429593196734224534371161294470096140734357758167482309467735974731795872319350567984897433510656808788647643053753290380587417353072397421688798560615068989753638044115775621876520992533832315496843380729853767066096057131556380837463376645855116857993487163658082252982073541658773377059665043717023078958760122542194022842277480018774547120622500294586405640021318840408108468882399590669362702800498501681809675314076360954167613403993138321530331686787553777195818253184564435392058564970547164844487261789111009556256087434159192843363863310153859800884811854254302268095854532075687079455784208466222276373559553488877340686705257660230614163670876415680217977170211621851295174476690294625850262266917660547273035962944558277376332226848981016979843108805357026457327475129013680158672643354550360677117984448579749484811042556190080506246747234867574328185754879213395423981338503349506461942144299576518398111663922718577998197344776573617779476568883276914387404097819681727189519606796285175450503237494059395667191522021364377660913276299488662699895102581975650766049419335420416527416854252283166163954689387403334878829130508115864501761868260328257413047376181620154064636392391597685110015136194632125865861893229533460009615026845487965940589966588927872749592333853041603049753853051731058815902685048481143641358538288240854263477690274496430927954003059921541137400806786554050979556087603174200830206516980867769270448824161206671740263245091544467116369546453716186341953787627258233303294070124844676381971215108621153660276495299763995858241253851647747925003087040054075015952058072263245134687972509470947304170620122032841363694849657050272110698348643554353078304526235513934374434047370035305778770353222926468846144823070739407632235394281670654048730536049806787876584618567037448539421440589517344294005715105714479151794350758015128662333505760949179981394047392350231185213619346802497796347877321753868250778661533778508057524233975828313219600798472254705735484323659584024864734911593229949534996753843316603220559406364434501075900928328812237142898276334791340222473392848371534207159995285015405800081391293830242514373792469106965495159409287074311161149691155555250205523565310812462911016091623492940296076804714744412333459216835684319622747562516878049379919238287619727068411120898296015144384745669119235889186244473606170995477739924829171449803709376094795556073533645125400039993664210006828353620786979998137995423118627607380934307942031888367281679992005096105069451764221874136836531758559665787896642584270815470372848101161853805213656858492684666925187894486029233418807179145443592280127899018602432802284087849321648031992416734809848519578419853152215210225975159574604983970418945224032654367316044809533930712131635775454421107893170698857230076446529755550499301521520464072372129921905094763096253697602123607985385253611480270034290774606977881782007090674246308236190438088844092349106943547257398958441417345878316552120892884097233895678510777890476866515916663889365299007517088255660096805725885909898704203584328453265900182422547730038761748704308141077520765835230231137571137202982445164372188036648598397381011177619527630017241093164057323313221307983713355446551014077508740512950521876228735406803394862617269873759008120950101105806998679287532080720200223646003473367904955408559704638958240573118951875097527145452810757166125828826978977344161143990548294405912905064637372560264150384106759715014587436857018811207984977589807018556703183812950485301127995785290599961099139372167345515889884699670728184796457624634076366697627170334660874113625110663895235303180090247840140730099299961817062382859936017223761512914804070396083514464293016128656977175759485926078524728315315543522284927721661743291832343927551818214399797927582123623884117572771371388865569716688602046159518181648947363846731099530802657335262492623323020645898307894338752181413262563251998552665030413350974413549340620734095260624070692354223118564184761376453716844214781780076952829497511554093737368566129336592391753049500222300516933310565812080967834869674131861472920621762433376010777161124051777372102228688820871437670870141796333207828112662028970027004636738706058285624271966893715534376920232213568183537987080047316855156360789030274887449709149784067203094819280036784549932769789547353207284640676532504950421876345362801172694187390814300599618045201674439733620916116880904472845056306831183282089164496493776956871232339399230344665385349078411000571888814474000049850904075669390278981006170190987607996863528853301864345627962927977577710662853673651738761282266110814744740460451648071623065923879666072267487029084687516305318524393000841160832870879741820029523974431029771612236687172081774385557535896255335360335801814853936478503155612633887085490140081944480184239710102984352221701689162542011912371919127484925050331565920470989959131616373085391327819718779687680593133567290132266702617531887434337465443310761004183613777670141384885283121292389778527980918134304678096274293588800105672633602942934516995781083316979246529714002934299705658862575037266161219909387812557338568817616043760582998542019114001880277670589119322023120195713105608163467177895251618275354330018665331684813026046069974623408219938254421669490258470461282593768371497475343187128614858638698817673627125447651616658063929883020911556772309314582480971948911029360267541912840695918321124905210122931841173466377149142154843779473861358555388639109663340863830326938589926375811618574594807648577894886389859600473760730773830089618408190935249074210988226557536573032799821616598742542587374932936365878549003681022149902178484364066094969713331863142584596400939432377121094120613051459646022942028326293625996752195063860527174817206899014123694236703817442247504965111605453519751699305564043335202902654305667508042804581227245883626605665994760887581748502625815381464821796373983858498287654903983420243743959625962443000327389785825676611003849480512298935025283907366199905657244911914118437040835420017906994705686981597818731177135705817264483328474831238685424025024406852064987963788511733486255220480611314299223796302352309339483821366812623894558184740389214629861382558506409835438238620442627413406911074115489086294360759338855767348167656961592384676433066110130181766626921216970864006091477686348143568647479949073323809328192412013585204422148668373738131025691364720716485705123050392721994374319080857059751718593986433649852202631891770634407819745079859956919119318281419393834534746326274839452916963676028749183457959152101232321609658941045383051622520812515118984560143049782948570367040878221165464201124117687672902983541785609916879077766018091173484039129882066572055468517316066605831945852392869547133485160433855157302281365784385930852168504402486629697008241205865449294937871968128494787338274225566488234061885388838282998027227189155264629590575917582099071328455917715822974538092031966433747682887127907059473908647654227770308263652577632515961131513527343907936676643731106624280855872509332614407804831712572253836961607433042875640474957743004747073297651160603968982924256011466221461053122469252789348151461939650841386199349122732181147044450460260391758589678633498051853973921133985123321302619369867687926197077776840205293810424899985446285343773970348713701722915509404096288704840905652050280673808590105608146916215953553059600139537498646425761850916735357884868064016935829033810733355201728472118334253490169210435870517812825015068659632897025415625059901317649406659093844354600011765744536556402491293741918641291822088597026121813949534482354071007458455342123759413326272905730704536891254847756043547583739231356255736853068568496181382131145583167858548021860022468190477035025673238606864094729996457289994512528872818907219090675746338971807248770579101149492752027738647678970105610200118699550547590473068275453543430112073118838841764377574444248341887803904937715372279817475114612503540238232342753635038351954487664296048417100755916276987974414618915575488426071110740700724800636851842158537275821718794598975606275461036259531794746890816096729255067098171150821429016997777956338605011489479613684152563508889490208695329652165246592298022245240050707931394062143981195434112214243136256207533648731202981433143135818345712843748476914743920734500902880338301501145043729032296474976980456241699176777953979420125307313758771858118209470665402052032662034834999306917786895342660841576725257083901989799296511978450197543747769841737184471262995196036434062713626950992067631799522210464559878587130815611825861808691798515804581885100123298805134717945782645330543650202475708125443437387755762175909120178703543708562974206506394543367341118134399381588305864597993565324336049139513279294319133639172082527244556133413631647576677000861822752329343007401119496279930716263813998348947457341564923666221150776707414605473573833567228497466841337680034414792151103424210738777166808718984563055034526841050698813954720794860146939681489649640277488327660782894701673640834235220198953657349031260848822518081899114968517800042649395025623652893720186407752224757366309572128983546308770577698874444053817108432523111434561012620231803345686913887279567427626071155114917545114824358696210941351210144426943701459142964812006296136184551809555233441520496845629013058367579892400018860202496168377098475339578672868106313487265797115903759159137847108122789121364607682559686304479154768528624287923635014260797519380677970632763211425783390547048840773081523135514655291554379451552325420144130002845736489198472093233899868179405249832279603592507095268000359073901249389346336070965636906704336994943974432637848510488172635327342316333503157923630046017353409984807177747060010177977691278512290036976458748571760938106916946712097764944156460777990070111210038462636105037047232145390440747309911616067336224225968988990306099465044874369142381947579919825375395577194989859261900978503613107882378398018305727217725720010338466758886523025639995572673209810486264740008347886020047431822656594106786285555471720828605633106697513107582508624269535080759284974918008673120235255502176335128392425540076796913504030396990287913045480253474428588228994923409399215674197922683164353121179616000133194882637109024953548430882762619865520084433998317682523187436215013422083140257240997441006351863033853255020164280586493086939316858845433056496054657706407884423445890236410822106466601039340394946276216939232606143080042012598394460326163246986211390500247514889886701887139091956356361218492121229890473270983766898697216154233566733207995467289023813999379206532106629824269496308924966171827586190542435139350820808899805852179376456246639813773410523813966968836415079815657183007503454405525579462209921950719554311586686010144228379244621911066590727897952640758088146299311744920420190201569931900296786291391493613609700901911717959268538496276516515720303520613811184766532882950808373523293567499768356644719763163901020678725820380528661032556657919548349116624825708858632454875242819052976207314832551201662036122392527990402645791004750617574821012921390171460724520983263593960230084697872019242804252797182978996616165576431144523240490026152251226411395937178145498556543014455719751674912625942115884984982526990596037064856760759899316830685124477650313850284680609307968118502972669097038105217977307044775825225439820535064953334440017325911987565592784600135490356300459314475381718448646527160337065681692598841849575305191830318566541738703440305757612729431214466038917838660517953671083577685992565718179394701327616172080083485880907885197055376562153237177075462496100724039343710091063481964488425834289223419293413089639653683699172532490597425657275644336855134349221477642314927380677917337815999765680627305771700131688812991462159069108735378358777246929003091085066381721623761393294663311255729610828909773417705399892254339026016025068278966081168239827295666793514850132650734172373438529510664670305432979326327331472637668137193539712140826236849885523037900475879769850936350897529507298708290768685883246110517348551545548744973372304610127018069284160544845939581684585622975979227791051945034429239114794287163526025624068210633881239039528572419522569737249234064419917218527672447775329147127728526155098290639135375961176827634366872866876690741914218823676184769843026302500310851845344207245042109432558122840668424019049488579835436159038456588648460230839908419999789888405154010243548055007378012387137986608283358866485899702799900828107394172071990361668633672297372899704636802173837283984155797390631350642974510446375856126298863311627764717876482682966847373306677722128650840498222393838251921090765300675341321444502949900732818723778636050795133650718654938824604251743957513763825468553291646922755965436591535350543124025385000961378509583382685865833822438528487622885207221663840489313805319809690014302424651357013444027210702431954815922249103912847400241529819905012101032730310071526043999877947989462464692985683974162361083875916079330820513638912607082512898593500712342557029131241486850766504611797335394142706601642097585210730778567349090555335319974268526279791804052553213650536328386331689908109670829401734834960999132882764692582940894790087953228907015594128048942875556806549075611837125956639143986615784944597108372123578265926775918540682437392301754246173269282821289243051821886222518216030485592138328286731696434412226989532354554537903173183442268414111751015912904785781777215679610895707456705346909191576173414939018803392444169321606027259747495725554425532903132323724902788675677760539159713361473801007236583257998923375302955724550469474580724820839248540161397212904735759249873923254575622867929337118083016020307854966961272735003486362137024826397776832206148565011306462047188590730389928207249593624923396836352017260891509259636516339029414618412527499411261081151849492633261659463489556844716827838323727538756195116194462420012629998884816631089404493233957804494965775015180638832788139159785981777974184492050747528845925197820699854611452918157742213060525165502387232196432864172992682988698048140358589434939670788321915253690360325298530527594691569155545436950204205575847940392912104237801257724537502658634127780349580370071130431959595907138692524955834232077564062501421426623379335238946225670122215206016768625963333409609453650268091396978227240880678540451195072183412915370457029080060500942237259769318129338376256087993343505723919022152753299270071300823766852924267257701829863690379192888168410764642432455826583783215916733483124344067306922007800177522966583809709880108355602875135162802400034933441576449533424600367354277842484284112078094874966763603806632665699439717331051523386159983774258560483122160049532790069459340037028425124941727933361518607536633021669043082047066748329846365120370964395906544965072602861562611164833934083143246297961950522614235154497528843824885801088724803443309658222361336219175393016073136703999537482015579845905680087142153060398226671927513026400123311238904602059976524152680907400537758065156545263646112565691606752847291528823357174743262977452792313113549414017582397479505495928047998681899502324862669918656525976444150684971657298554226300035992974099165794198414993234015653885603344983559988350617273246523921670032946474288176779730245670238715968394530072838755970867900343474510809337239855570395598548450286995490831069158072391665342064362749054212126165315401482637646889098759010896204690170388607711209626231696337039330571860350190834802737099861867164133264475917082051489111523555968349154392680464388090222946424300335284010535957897379084515260854024982813165905470852180504061892777404547409892048851813900668879781193811454941190321165950516906604217744741718758069279869069070841252453480026908290936634545378690136589023981987907014727656364388310488113501072765406135179837480190368161153583174716971248576503390189338744133092908081112417261218480572904581594142777285469353669954456099865677442583979593542143492852008711522853286390323417758976521439613372585764146375097060595952612881899269117389209087436589116139678666374744671635480611376052391308009601127782498046007868045223407663595670246072111272744641934364560178073106051377253480306948658998437817675931143447878377416960895416231647990668131750168070908177602394155034550837346882165227836270731442006871626122867760316060277608511885609858369201611418592162477956458114373078975685359965958680796174888484515730099817371491758824390148751760782769393820002590385743661909905345120068421614563433044794520687092415140490527248499745079675441507157082731681019496669423536396619830163758011886964399909261371383993874468620099481866430260826624008447177638090814615248436942517428051817989891102537939093921693564733009979071236878734520472461483122125300136464587207350469108876785268032283673880090154056058663777276431689192575616701696811487733553926463124373646123863255167253021386693152800329342627602563369424746162874374310756308236362182439130060309691208919384030061856589965861463997167051926794218983443044441240224399080985059843715774649016038964749921788900620161428326169368088672704646476302730503043399637980935480024655097067779512817806469730274644694571462402548155912375916011920851895962755063455783066295753133391268689630035875706608380690779010469381585874882360905140919508970207155227568207545232890016422271046943578466932540076759370301914324050383142958242712580157965887785654133849010330350384239141082538100708196790360147879342854949293714075078176857882706641918722369069099965120787066901280514666258269598846798872396979653599533292062681457500368279402685110113306534616192446404746351205562545685241087998495036281327357613852496718184052238527059413784282921271945513755781108841581323617076658688529580335152155715108632215570512507435034973318666332074993825456601701922309752297172278820984226595704400055383447034523223689434331831499954757556594392434997221467715356691743891987420202969458046959481063073242823563809792694133047751567772878381764536221126020350564478723635917252422011169396900178725227510135925028969824794624959228310059667013805372491174935290444779740854985504773022458753030859942047320954435997924927305171673801115630455868332803055940909916309934816731944817249569459268772513615372263772416019486086061937841131169180392821793967731955703294118371312075336051358111842795240505696002234081945018254636863328657994748352201029683837307090566060353905262092859937375826707959915831833142590888174871452690387752725289174291556104453351924721871411759122080745015471628752848214387930840630671140083490845294337601608212650280534719943002596594107965993486632232318561921647637336349861287385331179032300777818721700425522273741162241825352629700615277542364209911570339725384248064591164175150417201992878692951669559480543092248713788893829076477105167257064421077563421290052520786566447300925403589903361003281955518073205287971199027440454124789216792742240117739919775785763108777317426224385046487657807627483672616018877075998843626144375582085687396086650878501929303720985968251127845078711389828528210193681017568254038500506071647008291452825896069748547731801188129017385399105115356283017707119703662596637837965665012490369431604669177598892239185137048087898990169499984707719418447278271167736225704696891753008322446316426134549090379537857498882774578580792867815760271129424448912162526468736367496001666140562521338777774600015310492305377704666578261827459046423270966964726925127332219354886207652638158586865347630006237291999024392083554311857006280269811626686299757235877487716011199889245628121288388299614283884002078307822271122391609953120303723510862311591672521008004406325096147415803432643413515955574808429126891091080345351670854464170302348891637467310286768274674208297478860170799595893840608525541028490223287853395904374804418260147994367060831760155363047399033819487086046705552963990866246324920577291788936332906762883513231520739923036987478485443175249879093702016878038027287030324218531298795731403839175543718771682675492455589331049534248365795276793503474173887745161553591869548898598205076043143227208505773902533322583879107032823309699005569736866289576869462832749859708199475527473955937844591557260031989856838677052605899420251152839140782661435866127847081047781179287045523013141461470207223388627759739741277363253185059478235668350475722486421540188785105858798296498781801554758883572796965143627668566133862759879266285849998067718034508802471566240379574376289089037600440106519036592354706934060177233364357090437265473619602779743897951572867962067142495557562034933359737488022208778004543647045049307157001883771466122670802612801447588971308657056468119724373029813199203757672171936825074226466020755435304730773367380963942657901758441438143926175713443753012177555156407489869918482305677315391330650478608911503741962793410720899718537432739127595952821236235227201283255224453073419034318684870565514553939128872881314009057666984529920213394976506409892693719717941622629242590607670526768156052181435385988054024647565132170379655973994507293891319866912864309283859431358110701030038491858217556263295263519664026126907466040139181123734740239641662331328498177822673731389675387285008971353522030730632842406178555495995594029910886862014664129507846137505515338716206693646063471919973674114145925338835174700852830108733016783063045053333219141088612262530372518858921386694196530638142107663256122575959990017295002688141454366912453752059252101878237120212864603676323630564089769650805116554959697695953228311934328882532604412574921635268599349476585723077248779625034995290685247017932580716229685014729451122089147221573437673233491499661490591000265583928966398004954205776943899889389265432004054523321605273236442201304150830196347756280554242378811834751657280167992526652679655384075290682335542485224379340671859677184486998446421301150443102124469801672487516222416691485639301314714147642653502787922000121988485543603410768989745906033953297844048733070855016835916659526415088168972861583820376765648791551262929074748543410997772838680395934607504998175259479990630317620034571005010585322763075340637353894461390271132770269799560185395762319471636678737287746038916285527417513834389309811848073859180007781591272172420945143691041140975409797433012294749579797470349476750256987755395827557385753542441774207756810119979412499278822452666566449320059629355894792978971539745984641348930806342754053101829357202605320260620122398502046304193648221845960400274758721974156884462154121161927643070524596984297775060886339711295680804600827434587328384780230509190870867301272088609190754791435248177849608456755890049504782399928344646073946237217556708163120510687159491152928185709423479871221657540911605794698895190930306378093056890482905009573388058236264874540361849695313317061698144443998582420765209131305527636855590304882045684835716564858922103331067195309753245158286143757415711383328095859868357215519268884552127075597270104732684341388811600337247329080997596072329974400308624336649834742605640889598693513315166198506573880636775523212722359994753053626286364286375513369641878019846321777949263991758621386453513884747773467261247867158673505114344482826137278095503896982299383895323868345113691069438226770424910326387872282419985951538832512124610529838557226281902978231353784441788090514841974176232939689206312312385005602480761761673984534787698068462535729291369242063272593938979926928989015092432098077457021937071342646105335268840904418559888295814989330231679445776281474380949418926703149366352034680045451745157724324347381749250658323149038587208022190697344848921965145922978953968983798656817867579526548104207172624078908504673631987917723708589735229843333327400512958140835053603637052762795564835344165820726296479856618712672030472694125175879409257912711451793867104953375109452476712686546096938912101379433405464878733269549597658586698301752534046860298069481054317100419753779006310210608902451911208250714924956903704204869876234883128715075745425517710726445372177374643318813264772435383655762232251402480469423069679655528992725276367603495050336412939880539464078552521750028202067693177351309447538438381214489677421720349167011214844753523511721004959601395596152867933473502411329768310479247996327122521585770286241549027810440937945430518407627910686873815562140127531814924739877505104608760217938927704580973697679326485709189118885338414068623680576700152145324376445683120683693243949389396173550013639741006453041195402949252301720827103056432241699096354139332085486894355013601220950231480562482568090883684337998933121837894504425146213397595362885025692360244097650784741692857419235795347441520248583822225126764876293982305349763899864952720364918613059524667046556006749483993639349024320260418384611657993624270009011412407818769504152090991681891341403076788801632781767382847388916688968727504646190320020397614605300080400743275224725348584639833694320906581035778162785233414811361444148097990379980378254860446063648814469238287783185700172066176421621228882973187249669700627686841523073957368141716379533568411110350632986305684413934362121082422918762747694005584870013350727743951763686225185335788825877795317132395980653826338532034682212588049231595706712781320438121171923047623179473280245144751677673438964806936236735323262403985904647311900676607652868608609341948373790764760841115954291619582331678868897004239234983209406110291531562984653354623930703401366407472744510945285704548030855883553650604803832146452296871197655316052718267552335178714675616744517066834495796559427004846859491801052258555746451754223206188011438151186398521625561283078016181843833602303120840754241835515972266057155242693321841241975758278872281199072296017224054254035496785747468280436212268648717644961159364369542345467188052079104574654305274969623377375653680709872793052600086976824992473250075607631522839078671042693190476269185640908883610222030070812366976684419349040219084285741236255452035736918969895183721642566078645645079238527937266189107539033429233299797519077366129885316156170553308733207508011683785327269684022784281018959173544899233208223415480326795554175513796394585598632097394183545843919098979511423897835845804361155304005193576315508147533861340180445690971527298767204457563228760973596582387417601657097931220250819026736247343675234099663984252546560092433331450534806332953019945786887372848288861233307753375910884113996172025040678635536946086536114299294832630051007358598169461253131417628473072345759705053391541393347046073697402914871194806473246079169683276812726967401908116719264590991397039681412819770973967503129289633883680751799248898563032494480779844353409516655160048986473702972778620117572384363076058280795832682819479166484847294887952933551736704229861182957351875602145965790308050651365675733458026997220909301431081707542692404787018328641972382689537116068133338492241168959600152243308524566719608789713773147983848375626791834156598914946847361617336043036506220364265723741077181824167954643944614457674955707742206039168819463766138069804957440052324037490514513080360064381167860797553742879347771457099140151759210789125540227652629992991149161503604751397663026542385291430772643560888246213325133971879718969617753685682081661109202779236088128975129350500659963618131221034791542696964987338938149212670522777929679145431025173218263140618349933199286133698501946739578008064057571652216765890610248456123827541762792172520931395346115842703668822327120986484684652814723599651490082323535831358559644786968539853843426746697861003854524342180456459604205237791400111024050254571780230992095938195289373173718663309217093093541137291359561048980842997287595133831058137894622696213467004435836069284137544752367008292922743900604329361863089751868421823410300167104843104981298656805824402242988810264870706712616830759511032084225491844215654752668840357932662776313797953401861127730439822514924780663681070455907146502515569318861756071920542162653578656177188851380573010021442588755800884638085201168405649000862670206662613609513113281138837362267984981806405696768964440088049941079865006303145841657625898034281019368491141470249258730476729405246407472134498295159605020517982847349325658951288670206388480571998499244699067794912156263476478314473332817259141772094704536290443139714065786815078663529231523036650812978505708464095134920428484723932047972549514924549942801999536704211299808986394794745605537297575361869359456277703895432066640267608790698925042344174141142795347660391195530241059247016025829078207328634860556395293235312093660473539994903950312649627491526531308691113428151852581614119747456390740859489030721492971162009521917037008588788651564722483086414950103283499163506938322904115022954092269230511939380464504023764690231316563925631555419888647713534296308145965042325899983589677157232502702783364796230113399097538630691964436062635133658123597230020414660341179529998826893357910732781862113744916221010599646948200666413169941868969722215653830581898270007680928888349954952464868945876086327572979630200413382181795217464956163873045557694934194664487519865543046866373407115224791336107582749106101472312079233760637140379649090559206008738966163555281335283471463820962861066757318255063953987920915612392745361149674265536566028998142555419184409412825809150234947763868882358615307848659591310805768511470153625034126629597862288322873403155957920192722875854857270828387701657355395981599387176143166102913435274763609559493609367043288389405688451885666845403749645948810799693817708515800933355577854042873409951090869620113910005268032746461687607554142942993656075987925209437491717765115233158476592964244410715630259483296029659399682308651699121215660648040510490382445902033985513815125268570931687010195778834789496973520923553067383805525909743861456325773536739436660355640118007604231322346533885895544199074856017849647560035974130171316848782723611040112844481229967124115173404875285240032646411879451198892773456756710933558252621115724865638563376812481527192679840208609932418758510509194897901163920972084687054089433376962044866299035991114734667850676166944703939265823514695431352336966611076127669952793476829949553654608331862350017190070708356735347530289998933751769685991940900573990488552470124125739944552600029502791493864841495922791667735755530795429441508138258331169424331025203331219700351535375084138787947703801943844266808163650732896782946535406409841814015660683560881153736373261895385571675477339852636412623394590992184494120832751243967638663375091757734661436228472453717435644737497716786175194755882047998095408878971595791207695363282448164292149329697346848575346300023467941951706838241784070010640074121990486850256133348715330108606663040234115013584983820973403274343583468050585383430735833244177070107654772599869022871591468063740487497938757896043671995952744793781218149392779741307092611623725987330658140661226479907644037641833280610704801171861772047632272543239245472306591523963078795795943702863292741442139928101934605278595354601848768191993693282987726053166654162477021762927059975907145828386672045475013424201861179395919741906593261097498350171790702031317684530452475925701440958577164213466502210282115250654190598608195995755695469150157303229584300834479308286452001275354064160441650320823716394907297833881985944145538014456423637083557600035130989329585547213468389936085551434890938031560252225231710288934765509947204674256495999859003652169386208197618843868485507712963645170809163230163542753249105733100745072763952370043958838165918320241290621985138748540132176031418867403437233355063975315633110451147540429674698803943406566442382881997773007225534692085494301755300403373557713102773390567386221615254208534678070078663742047099775790980095984837090298626396085183625565297248749478319945705931325357718410437597048564623990889255626345420579651282429607436647252918228339405779001077849856636549431144273639879535977692079908222503222145498326365578480112567863721737798945816972356392157563828758161048539274146604221892000743476128016910833343001230870149941108515966695170950799973487488641758360931728780674114194686374454670068477449918704718805734865083252544788260761027821196597704665322134057787670463105550843936630479780624069717631323091545169364822695119271626011911883240541239138963358333085388692337674496411372702234345302005911287143482329262044428463414541788566530578494297630644973930421509146022286717255599291159608506904254674565459159564581732558251117566478407526434700871279258956412053225067195218161778039760772265975543071655366719566660656220649847255705563417218165924594475788420846832872711228034098432387487108398976814307003469497718753390358324069173569286316457403268586986452070411245203038873276908455378305441120858020477135245348361282786029207761292303241551754453954772697523965389902317648617818830871912986585870471942326416943671754902441367850704660343050024123519813384977920154429140336851380097974628278240078297368190249976270023556432918757526916347037084810145916667784911460111434326247969050133014112359941311572195693944310576298223682572149398714798407843784624820485320046653139022139995043462592136840445942381674278039249335929230274545176732185384565789583389302387199709978401557614401706830937012749111166290039283248083488414168928442743846094317218752871947040252203596626738574180965541355917590800882657571893080851349440261565940855006519254450848680185047377303175435092188937089843523469535420799635072967975651313607179027703063803004193646982581118663597391680916382702758269324883982540057644448617416965305674840460197167975394769798002054216277420071332467594015120248855079267429572854621866557059361849569236968712925277505276483710717091642679471185070156196134997957721285195458175123825570441803152003520711085630000007759648075563535153516477987482516353271356976935739455514405131467306510522257782702043188900870479857206561623214388513366750907665523909058561505109108987195943853121086470857561592001459613155458766631940931607919025665839235171463069253957376253386777975505399508635570384234363939317275173567228864966951074575370725374354415897742003941044357933218237506439563091339303451060490636749846101555779526531449748336202286329181038326712998484792398168573826038352612690101860851535680804742840441739214678448171270118993853308773402817728448698520208426621095976415635075525433469189611326107316086415434064118649585199185402509141175069158134453146741670225694302607115403878237279020297942365280734881406344585703071126145313114861532185729426376093473426490569399252794347363042736794416031143067485276500786048105653399037054010135185894735157788855329436433745993375323899447790515936912815299582408310952756651174328756183004953251396346770132615833168902521831926192484176756017403798063916831861770433589320118022000860699981429309946134902675323236785437143912596370703409538376262401368182639829824453317941245795428036567133148740122660702465833601121356045807426448397278721863379145278649717103419575218189311921692267125645039638455774686413382804868179577568613370317949660670842710431931696801916963767809027899658156825078210368262006906592342393809378925265703146558915526755546728364988333347378310742723950754538215357091924115007315296763032076609069573162665588366675481444280598780686132613884046490516578448660067196545833809694473927917839113934461078196933281875592073962294261398393775683618852514399785049080022646933408126161729078960791561471721618057528667798344050838425372733031955484459947724090487590455681138918054903445475716730973574323035719657149994006074018219460632174146251553353320386749381518574213267938218691125176739121991551746152323590526640114033620249863874714272271282820985676636072343247540850053157955680989188971011419031369339229328609301343522173822404636589728643316175341923303962573913384509081611576962578326480471646383711514198214836497415205321434869024033317397155329732106537306624099255305981550425643784748439373874928678529986538936690826016215056561489692711737762875285514348711269428559098220220167352207620659708300146902393686543451737027282285243421658558806972860021329972581441213402431184261957860368518742559672310947812590935986735121631251588988760437461168421173394143655380063026266297302133077970353526685309516089746288159340597660717762194528583352571839633511796992022292176198103418129213425416982626022138599105501815759586949862205521609405969677559053816145333171141730399935815259912445471625452629602045124590555690517955227047115335333123883045750641098998898266914963911811101626384246232766878351613112373967567582668027133040334351086713275981069154902119888361020677596672798611809627659014315127146267670409313355332724998534118401015071791129416954602503311338945324425472729222367768883523273008428942720764483996846125321555553158818175378480092663673305992573711451460696525831148987608243847088893654391717445512902777488500887820454202906919081708002952171777427307178026750607762133186867118094161460807496014085222912111150860142177672812906563494180305983746845148662074305460805661431301247209612420593471989119205528959880785307796747494800706803402598142621500280957004208878085055995422580128643372652171538229429762421609297029462592426911337560707669860326922218966893375848515028597968274871895138755121397670356787614319998062414749655602620033804705576235999427395098719774035953843453382315853289516198060916779768335628423905940193416744560480954497405558774713608554215711010778202385395636093043992930386030773379223539227303480289230257601160971439936375834674171432263094821918023334507290917199011304330420709673273045667800364689075106397675590201141392153972464813345120793548153258992192402668709379791562192639638456095776022487043202277042494404178418678538910492169595953644845292741471892524817203343926733965076936502513481265869774764405894730794820571603874391007355228716760674088855475330140186482184175357378913206024355982700443483696029442805531272870205705632164376028417111887816185230122944304596056993336888850965265889320669485292883151496237430980112920615929110926007000368400563654137707686863292753287050549996459960463216125287207243692913462816304646168250376883839561636890534677969841050673497711762501346016157416358717582553144218315249458110374011926665460323763362259992462420134364342360713148311965822667791724612803982816819276616902156656577552066855544200260341380553705108794734176812191959565548292534074054389352307389431337105948979739928212256735906039338525076252056778751793428822032386779478432412890786100410373907329107709842203677523614163637674963555620930924937451364063935881398820828473085479521363103240569177246941123023526544934793853655580022294390844889481400290715210416811120926874540796027599203588684135604942635947929570200443508520680902635909735549106942397483693107616443382919071994032552203448641564520850961856138325622081593712414277057340911058073792624457543810490794303173116625909382587564206633555677046169899906062814470084855474390127056098120124809516460190206348794547855273399246189055361209234016087463781496176576152617651246970891513536541683458082586291864591051389344269712447871965409175823792050675000059883008282194775849503000202637429746827805732346040915349237541327534312781466001800915448864727036016591977879222827279890295939396902428676641228441651988938079514039716317913265818318646744709921311546225257346854567089531966650592834939322192011635308371665606830196377002589208288459573453123133209236369190692373817100240719049644287292123372218142281980780122069927987901616897338241097213190514571935127718090580980611993847852761691223095337684525766948428485939589605641845320803752717857982683406904557361634793171637100538450507256262923851905114695574570125202697347582886639670825319597185691202906927673386603667930471191081766242965414213352694399670953400940830308087361642283891963983421332394400967327155540102780009851161168474771349133798214275428443957972034270526856211006854179894339064382670178435295003794061972918386234589110460346323258506638899895804245098167675668630346654405297837911923140735646976351623049137665518534398918227195592146033399638274201433181966856968054495149849720346125394336042290766993139746366368601229772045780457771550373465411162331965184064643247050065550735196901786763599054816724973845313224162417973517643803708194373048019162328923542373574016891620066561241303155248313483888184603858527090708944846186897810184377476550422731553344793412958816647946503018769051779393071044008435900964710748845102988162374768855870667903293472057019958530702130139623605260021231302347911419148720399495325031601794225453786518436651242854133606637472705373733868171855791970016574698274251815232104251491926599262793097632241377037246385889212750973528114905119734267988834678661955571079638905149274044783013818792917437047707925112590368877683338849490245118870228308489202091612371004366563513902566266818231712395196610995297378352808310821241624258542346582725851886042197733357562922239348224549818090780183339582551765949906055711052089648921182839693280294862393509687713971987475347763231574925433931557885285693153921145475499931233182914188189088825083931376333982445623436477994676490810729568811419781343778078080793645233455267884108973928781996772489523283826195165775737608216632233219968459278103748068239375604386105182464700595374864679714407848927785760561144374830845817764649462948222301702923385002169305115478894782884518085574177013431821496050548554308277513570336458123004244589449827838192158684632292976629284400965687173565146452784029851688171311815604628303369094018926635430596862964722843225060635199926624206377471629974906996514029850243006217978362483325681664164071429585393884602692990836369129704903923805599664367708190543431204250847177714882923150717997040201963105074791630815821218425602678697709318742400104135618702858232653764669700747957412656743254333437626406056767554468852184231661193624718542373638058570701994028258477017420806382124116301255578447122551777620596443579142459063412454420904133614694710287855366579888092088077617598649287324999028015328281189248124866655559770440125805342893607300691518637335692077602926192593549527625281045467730153047400098625681584594017668358208879692846428037211965331296921046637268116778813052300447601236295927670836689758856357119634937017287660085661445268468382335985353582241802884874951489296040371486278760500281714547460062042272079873024130375487774097132217677758193235264096897542815493447793949732650983008692637013633749901442579217834152187439648364624414414443865515815223262295990869829499445585646328118201171281431289160453690987134921230077416742041868913209651892232006571401619408405425601695951664810715134902102698683741935779398922581489699182669005716711178311802543396745891612256262818419059752792382394639897508241296770866670137974236824147796374183300672601948547140449236192611880709756134060132727295727594073498361221000675194612256198495493125870202259953597944812287552358551942756232151988482180991981422965264195280818268958849822391360275244230437004846875061073722678831026322801011757110548164419505553973944110969919351230046469637817774880350674318927492629713254313807426060206048362136991068089878513893114180388458766560930089723672549655995605109803278251575470585472850706926496597773348127103423203935739595226855923718760679589704886837167196422410035074763367041646329994604986989165920353385052003708328937112388661328531338218941633419762023013081708320976205557001189133609001200392126720743068857404085024193852389315139947875323888527385287741557124312250094478652390777173952697094432887403952008314672366893391387312972038113657571766628434638646757712642379152838036843327244131051311165887435006040954798317557607016858357447291263065542215150096493818904676498089141933302859305241320286670780490242813243747128769308989277368459963234486922651037354505195446386345758513036688397834142003552624053947431709469888941761692493878149651491279900393345867480150635171692513787537704742741137341997619848900141614034961098292583765193655964998951367866577501194327346530608385323033219139888548474954582516385043387907668727388158388592289937851502412132303981804254677137716785635150296921904924939486221480642391500383248090040233757846633107530968009951847868902922889196363665799103462129471084397661756763270876063352229842099962887263588391381449192019118305561711491144027781565293816656174177825150280079630012678117590085306411575786148930110721918966524938674141128032614675719927912778628056310299294595796124359226790319521732100124434554871934070394517698445197343566305173848553493203947818030003312293494598364281219882664280503981001576751940463603902101516518122017158861280418429234109924627901457935382859570259696374985301963852563038607564556853525564578727567627427177044486408476944523900629322504927972783536365825061085118928074539752539996932758844390500375965527786679516798200698640815672715357708833536599665455269682295430701491714338242713509101447085179544067971439629404360138500742917689821446817413041677894500765755148256520968156536468062068973725052045386449810449514101716822374910611614869742448987254666537646626030898318392706590271762683430004221271571296083675896757592274565859558544019071261876163493864290903580869845550077520906434610677888881988682572081230449823153675669401080452251172806931772920028675099234546807793876574467131260746987717149585039005398091172916997296822175102021695471190079768876000585735066935679333980337461594052860355186156039227153732632064821670512293797599652507332224358083429684770347468429534612023250505370332192657544046336128050997997984940215611219687974867939498112359486516368446599452764019707983330535025681763921246246186436179546312946064205485012728782487005399032485344701739003312090460946200792810182437469087720785124928323062428386630234270705814844417748861717480164819643884209395091580610286036205440148652042861851921525341989615660417280768880253407739646049861044976443220343224273658193140018751087350210423752009366766949851555654525407276376883648556677639407317928406133667492455909194964146108709125879876062466213974917892834687874758323441462652952865387455743897433071713145666837431102363364666308884911824887638687687444741060790649488037304717438688916310666883425994387466479652106282329194027122186415167542669574731270851022653963572608747313921031831007309737626915918105183202503525906390769057777374728031502935983153709885631842543680781512498881733055409205195697309905343638082090558921906853525260528300419270707898848212888559502759183289464080094524735890882193628238826621597272519906950023700030782891179459068073173974474317562762627538197514145352356091181383561075341518425355581920104902622780357537120867942329505771294851730212401497685487879156259762923051408110911851653095771282158520060506997467126468336777444738560003470941276179160865651426208652058579913958170032476309893171720662229293894047697435213872867205557764587830726609225081434928852156623449787983854213413505714671990150172830655580200350657141895363714995209876586080371219635482707113062135759524362554527483647674827329581514475614720476241530300831523204609033571930727223897633441557933671316723597149774084120020553425114146340926580732080453613454032817001079170075780287207045096829759132337590408035840230254947650959984451733079257030676690961864711344129965154707704571746755235665066839288619420506557946275710040311618360692266160838043147612006622433877024045857828095454222383485745504279716812205902902415236175706701230962082693393592503713178880268505250401031852076340361948957593708316351181511312457951149835402128269001988115574427324405958216548129646271409808885451152854655696784348351445445267360397590311389733853097265728066185771818045518207456215472867028843273977339795091219554177826340703001904633626549283344948364370589220108319396530943412777219447412311129480334308917436746032707377180519676481355622736621806338315898661275991763580785288395009855935846661686772498832475878008202309978665590090926914564798012286450439255091697787823054935266391576597817598409198269994158725034976512708228509568084520405890512702337420121759687551149886017307847133297168969281000879806301421854031951582626526555651147178076741467908593434189238872142150543756487984546884780168961547785527007076397646421375076925921684777153064419014623291270590549413104680253408781727578669165901409690290397998357582087938472586233034018200504369356840257406715389603860190963495331189619830866024138050096585127332320385895010897829394496442455401207244635815332695707586834241345263856801222936045014810350830084329604443814226055013966595815492175535329208959001391169010912237066318428442509043794793480120337461748820814656949832679271287566842841214041208883707669235281838793381164470638851928740856411302324305382570099315715908194193357810350042375634184302918207735218001251055079453324779790464825418025654942372212083892557001974414210387672867148676341466400631132992267078521946500231649096216162368847258063918934522239216343468598218315515579067129483649885275917363158401122361697402024497446820428062324742508972658955453766253840709173784586529869755771673420362958793507172793228371147816177900128993518764740389509114553369285435918407640189962180818381679258217583593668122362557139341991104311941604775628266399093262764158482208298882170067429822489386851677471873355727493140974264745206997548736400326749240985687040805095139187251881304541911761544839448112718116749040011078792366138559030672599925963412103679538413059491500409148676234496775432901686728574055803768321965599832006625351560596317174212951887551955053526159889542382037050513091000899491804833897485621440910894900964194567097385692160024437543713959928217330552959544171296825454878311787685364961156763841039520333810211997847277990129768186744860492961403673165221452035505066806687981795594167891372581416656067025158589851489975780450680841329829096568141947315461365821219745738314922428449760093364144396087652446772774612560665104805802298166103889632339539761374983408341536854052042960202742088729736404444246751703747611431849098026506319430641132296798984099148559681271953032669306246217175898884575176375048399446320386382563087866373489675630476611999950412265982643991070575757427884158872184374047682801999389008250595033517461447716441337985852168574654427552819216649317036199024799811651437169441500522156098178822828915912560113159294421431268274361395573020071389424948077434412409336855377661312868998052979824759021984239435207739055683042033649292226184450134215092819114988779352595539843183869958616731343924986663973955568649293675247898862652734367704057898563845853979934763411382787188972181266021074709157062316859486790826423397045012584538415207975200682170759771494408568467198420486607588250705343296933654784483010367415419690592793789630901288735841677509975342834186628746812454647624758482403509982432827717751705736110807455047944615923334300378024481639445531180000173911034648453304552926839246910888413641464579986394663476667762296130569566098395516567278743815572876577333633086846270264008445473846576093261315263859869132196490652957695109078153870029601638202043520754653515131359035721095537402660727562428877051505404789844171064387275601015699811499970918961283012506711537699486904850843557332976640641842873913354631351178164417316696419271382984529009732591693521482313356858660693429063758883363127296788139378787106223507935542597000443584031656754532470143443948369736070303780953506887621992829194854403653977917339837892409299386377955355748503476065556845944936537793203322933316293525280207839218389139469948923390420081461256440190774972290460019526220799165189246936742074769886192012738412890838740805605846821187994090453282856754562915106516987414981362342688747070018441513184923656206057396259083239211883168098803657014590141583623890253416196630180041801323286151470737217862065194966655839999057239531648549647315471095704183914541942912505597957430098315414847888664973927360872750972174618883082611243074063805302861728126980963958054931890816302002026454277766179471163354723280164101384082596647047466446102597523496522188769800172488609875680251451819558285541507920591349673103688576983989696963651839110165544354613312842481230674880998704326139177959309818707699436808571868849858867655758845810874936180600877151353310426171556072698730694396191372715697772584569525986531450113241990775704597340703994939417135242745806681296648857511772071067527181537589867073038083194483083088291605154541628928834313094212430414775730235656475422411530335019165910601342051253876691711789178201495471476952026065062982962246304455612133431579723937855287385477723029125428034220999268537143549046521062056702336990527732832887119492558276523525668598967194516761667463487539256338449654052752353021756294298888022052145156173712520469274785033222707435377273388082030977334538962800911986935164017354579222014324312538572026514334487104767162026248873620578152164204500539075548859867831361657165964511499687391551092047505795208929378570579333428661365696588465002636667700345858416525822729014930458979919111427590246248099104744320929163665146348950735289181210303162035044176795687618828488357282888294497713266544542374447909955555637109631343399230446807315538310567159925043742511933082333229550421666651390192576164043045314188142543175318594442669357040731827128366982263042351475060499126351694487321431688648658471120476481926630440939780078808355623935612497874722004557285956695593163640712888216994901030089069994712754663991922623908209647365776874274209054810502784389036939112743078403881509577864852910881087646585952429385530440757859717730374250364494099840167710271903597908469752112296842436010348704023831524367863684286984055242772594194311155484779620293063838237262721644576869054367265644364537825889556415941321928337191722018889406801639922385405674933845919457293429322915179630863593519686916025972049177275162022061496030492904827295935568268609901841780315091064730804624065972978300088358094890151873486341961149823075112190923516163506636784978066928216966021326980910894690406271643702814392602507708797128228633807902282431625642055364896294897847043171456162785604123816067534701615314967713970065389835120555497411286855648696877844416117181100842864847688017095014694458193286280376235276734690359066734942474626465492017656609130968226394712482115145560772601673290086746764561540782165763173883977925967386194544239776071298156459507822040503881869622408887984288640928330415465946277013336315833187592511489071224004636015868814564759766584820601338500786837079157576054991320379222599073912954743998338548533893766998816763589798395958897648721236415024117175075021729099960064405303470090105854033045839988451695850408888418757234008219256043588721863659273049298996803905283707995340519150911474335910504116082721534022242103520784146355567645680335607265184041379693134977366893208741619557089290328297131615063976689673216686198954967780469340343375737917532196490957216076621689886272873173357423444643492319009045700553507105363488113929953985753096270972345024817952775244487842432037408378048809664546482166883891966055165010824236981363166093939535511441235878770513140741614625261063093439344100741204816358749582576942899282426417927909304355258522481724037709402006835912310159313640583052437009259563573802685520604496256959340856501463666486305869779728100461674290753231292770998999962480143481560577583868969014638236985007944427155792062179570632287131402101923997433443153890673370843328897628734597982996217483189553110009696025325858166980174714870694607288197608372366016432415258074857984426805585055254560311677256596275569021710237578005341033845863132483779686375068403120170992198185850584146848740944964357158143100483023225104595698763320865095114429337899463402118574691848329923193439863677558754631854428990963438016059772788854946208828097985796241332942094875571373368454995097663031782043792584623532472859409093721378434248542040127600425560612476316248383944980109055453685279875856043918910223829825187458047532117455502157333999893220585312481043572458022591310963385218631161886597296962734277467635848884683195130677172788464562676820922299018465113678024759340483483929517084555705863963823044546193951766398629503969655368993559475739975960202004185924219075575973315134667577884287965311551102552284332340427938363990402423583103414256576077105672151271150415409119062472145205580745313797704335303688980070286810162874205938340211363913752719547565544521489321984788803760012577929471293561298764300091233831339977534393155029717085541276209645788921146438940897969445002693300746355056348954000558466132406120697510336001179059035973696228028735821101285361450918753364595963557043848842695773984360108926487007115268604338159885423758887685789932987966304916553632127225109674898316309235475787935685890954568443809204256483612157350550843597599909036487049428802970116282217267725899552156608256497764890563077853149400446919078007104892183284361504715715877785738920275203459203840845148115412537001152317390721570820951027531988416436021872231354950162362535086316274535582002088941039210646637057356117143229810513606199071255683362747854441488779864891837008225513520492970669095867366133230129594276436880685368815312936592710798203688082026727268953641530115420391086914964284125298618272217953024702682549570079872587423842258834730485588488194918528001348597652477471991788902159210245423844193738652209736952928453585910681224982584454232985659264546596883414045847452142033037126058365303022777639665661591186227421426804326789359726476675167916538980682335974148189764792486698325264990487519917326124185496309303461114362728999736591414482599728858326234027464337461524882351252310712190807133437519276594951003734208111792950945839273987091679275612457517669909341911036700317853534043391006550672237757210315895411607794162279394081928129861921821400807984311062799214855361154369456110921566954067506748888742251481844518867822776804262243313755972817925485152426447457569670313450790826029468882974896512412172602892220949694728508356433608736937160288643497121623023219665748981405618978235447704136524483322566652142496296660093083308515710728701847682198753516038295440723045790118201981220627926290520686342722559001854745230474946026810241719062833846502608248982595367863570857111454142591530106505973777114037197935871445194972180718001859323458725715717422613382861428965390483129633457586655962089726252515639213964759659349949137029847758477964492668537592391406153971795234674515272026352179446940706848487863276344685252516897255823202467545501931661792723004074093373539774512722617132687239529518488114859103035397336587224167161869929513286715586844524718516763533507610240321705533855776454741422863632516348117869745970727133502493564118244077926387869128405023406116127906028755422224612378903172543107078680546934600602591552166436933054603500428215684001626578302939474144159613537446633533878684022682368439681455961214036671355443772797953849727835895277153410758619028511032529968297707134284514711223014005283823698948606497107156265707361720208990346272693320841045605898910537639945272313371335220961377821254861363390286225532694028546590620352870347117243835516797376727752692395335624915498492040802497655346088697436978309149754779215562173392662757686095596324109336005591289619917300153342241365669214960124328866205821133513539443646286942760982152110296894913251204750671696544955674415163960025014140056452478077798044911938618529418077602586839260139870250525794281002968652817629538395256934768250778279437354418536380046332442571233293704913867947990313047599345868626193290122566198019700807247645283353728554015596189891924652416726433443182600756658942298349181947506372522001812264739670801510330808432220351781421223370923865418147017022202017599922135646742277473732142889768664607325628460519344215654003840876178915865649933206477545532154783575707353991718058912795713011313917355195929778078366187757806094864600936407161692587183814007377874640448778706460199295350568750784238794790991123638135150092660745952087433044417955913718179004476197972678533559178133708294695331801328685803325870948469553952800532766841481680895508480616898165990296766799805151808400499888220083140444833076357550372351307139339512451996419574766372010306192393337554294009322624182375269045532428867272546360043794652186982425018661789581934228689829527953004445305578776492241199992151150177326941537905824284426258903998287372348967123726423550823595341280122094872338569044221435111851776613120235783440279990805774434625354521491384995835331853493018831871588850182817554704523637997784723397388884148001534130960603724696489819470227380432510370084164557752945918237142745952051385334822918252190452484105465028593203801331176108704338395423391670654685554762373020943996872572349107814955486748832266425715924149966705156796251934899780396199541238176352547276669185836068417872077806350263198864293719604016001854838806296403308338299962020155253677066537479036747932111606710613499829513569453513655928113762712931543804388557758060827549736055080887163287818123039744217933846358253369313218826435349638573600018297943283058424453802267486999927031413670148553566549425661108378668960796670996143421613703149078923844336288534509083446053285491472589183439213605290170347326638469447174875452137494291232354659042285958494230599803681921596776778318550044965731093421936579510578752220710335949976427429499882430532578736601720721627566242528345059736552096819302496096459348003331780289564248589043128076591969775789200851180240309327095633149416762450104297889193124941909979662385744751673127943772804227993116951040707131772623706246951523780004721142888073404091335664986032039528594222402317710707843952321325848141008630249448916632441747577599612031456682109656404919463429354514653817784280264389689013233556476950454350267655946612837058656577019257400508367233890784711349558653652371884096498933641948119620871536952967003892870723790129709326104436254864722564136942351565842382330842249510618259380207482975040993592490372095370181839864624556497117054621459901601901922439099754750648116195854677487346701884252582428643828980012635795877913131177184953719342199571506262617729284528182469193756457105968250807119032115217556514131388188497551607711576599095799951705039797827468511822721879304517430848225981929949364620806386619659764253639663551476715706486145019130508439038182631280830950296342242656504152095426860936387796342545003541175977273578608180532917360309246513347851900360147833720350227699226609147209335220460027727623554451973050251284520445364703132895500014680055539775678898385634553524273686021100923627809848163138893976948884620924602099556732384785930860259795476697036633334377896574873475937385902348632946373246709531242994234035820741091738514640426560419773655615386054330533107981970210663852125760763655935261558469113741721192732751021099140719069539798743197696200621556067200221130136559048331710301697107571121531985473959045084462097016837685752337607709176648871808403498629946429404395835942684353121393773016896956637634830098791157686923914029778893799310210631881807770607035225987069258438995259277550415617835079062640364345797430718859617523652318954721999752251494522620280681449944328231361560050036430638736323421801625601437290130731409119668321960294443653570368744006028671348082384141336782781688084028555865948453752120299443532517584687087852441281544416240022241282271120557199952214042739173132294467286787424569207986693800024885956284711322043069861591219133607425403826118480482643741839501793083627124258979478878457250172759315456287311837299474478005708994099612467732650420698512049083592586017500306940935834050577830923153223500989895490240751005687121835416644082042037962855626648373580823604065791827243691693999195380837616007785219573006623901715283917167997751059724149043232312432937584007427560383894803101418481486370541627697047223584283679875517205119261589273446777480868085368562722136183786982040638269493865623330162756328171610649081802497646137110733757164607272780610959892285081034441661597228265358311202456929651796073764077565686463127214314881871301820513425069849656726557372942920835601962638786103309105963289735836385828077156224155956229508034006622222179767289278867149398650616280064275896243734548336429952061747244542742128450426405783261857096372074728606857860635698421750020966273887723242222962621648265379402557829931934525954830501520791686816330071610662489513585323556373231122046410869032535394537208756140163985408569859392982168447038713826823634876066753268324045440590246015003282067829750013320730552336749213834149093973246614166386659912058449627739510317818391416865124827603933489940418448295924844373898835860730463289969375566921199683502148377710055727692792959611947154109379520928430580075551645010785567457931597606331344052621488398558930903253866021036822510357520666143163789968954215431959483695752633033316702238905853808114563007942265844795801766088021523846072211992692620823104839909446334171534442377635718620848852663684106182543217264659820521962393383629291383757340792577909246452860238680537188969851189952460542674505349686436474499962947845187355849329949582310025703447522981312011501297468569768998701303377023323517708253846825792382935119331596365534771087565403691497998714981410911784271085061119767154101524343139601643399079102988367842914993014794252346200495470998786416002263356465794348818622435698615767479278608039368402270885304137092713435865383992428655869496300310184790986433851499794274717016885409976602494191817604738720448605742921059081615207534127545360550862768635107424997455019146042418922324888999035832050479890935352341671818428103609674412067370009228617785794228694529003952627158630103406211733727581638718388655596968281569992353662934748193308178670519561910994461973281859324838497222418145267171420880352281614166555717822561882861259472189331480541511157780061219730022738494583009096498865463605588299276539828329806214900305566049522703520592133736924043287643987776544479572762664703550777481903128054821198280316342421649974208325332484296355029877843838967359099844478045670028662142792986208507111115907204380514846942283996098124823012430502445018752663806117359846412684361956460673090902871194982342804985344089525944756570674233571480859629325184355469281918071736806349363626195880158573197414788861369399008329888281507039914383184547520534841037186728275489778799628916710727700167919412569701076101330469470954621974718338025501410425989729010098788181008074431091809294589898779679598242197080948043134135087026811440583599683894377083142855855456371523771901319863665513676059112970705130679485204366151057603784073636467194252852355155836557047094136572852721874185901330603400229276634872345270443085567720403475490992552064713597050220199286733027205880335703842743555445763478971109085426996549301066414577287008666630758829253216165042470453675061121013660566108129083878695650578076174129755364169704311238336333446895438405827216363174377784295482232296209077264941076952122361234458098795637979224799202920644439635429878294615678731272634220877756457355987395647403522031937359250165117153239442857173070682675991279003340342061880771413419455245710995960613273746874538748620537685609332360079201134463340713696746840353571632314289110753948039073584167269229324709971753883088280030536051138444311529704129134298027689363908469513549488543519298930112795404042108770364254271212368393306710228811278790930234485930200542483807154470681930333983993871128429465154569016180329370087579246288154279793733158878292486528286103098488385402407620855350818287571959384695944534964297903133584069919410244404579521430388573490769298863871071907970188374898621579846910494250295958603190100964901599681786859602059438295102941608393587008400995488895237993974522334795540667588934657874009133920758840502165346870258539223970199788104927889139589489532064304607152991922368595214738548108439153474433118602563207271223315734542251774061914184655964482191543091054912183087883230477717464744751507277451827342344381269401872881121761870658964997488154795264707710033587135535228300902891826413520354007197285574893514922377809661770801641213008568373208502492604510354773506410149556219441710933821724629741664074542192629522207013375270299821526278189439060797313068725494710009334632400212578684669214672870072193875935423463115438437702253577161186368612449996555113200005478909410971168927294540755749479719925050644206820810596731282322252422138588572114403609161467396232505106933362757657282868277198302184845657198859570866681434870572630790012498458629619979610841572057656026810403231603082040261096511333620735030840472296591754503622890966220660365601135876697420200952610544957401603052012214692696979414417071567733811480269189536083941672569383395946949076140332586156110917449485165683121486301750103305649121466966556232259114035150830017418317727824955196932923237718291315451559194443076517672389941101264006203089107248026274755922444460738040705974711493774150040287711066253879984654614054039989077030032181223163184299291660972665836997777129580617828631909375809355707877959668797058828954544330375249203623690891515844268142473556872092904963399295944125383947758687226344363776697810624462486214603317271242963458705638598317631982790387077801444917934919874476978082308163139548055688163426281651775883023128595143730029374695671259101202073650603550966698783523938609122859729867872836019919419786657669198148663574195295581653688600374548248398131138151010904124776520007404463863975122535240600047880214059046299991268098646631197591744326907823763091420254980886207449792893378319556658352475214788071710971661046601473849102720130752884991288121240843736157310412544086217450485095373227710651543691685421949216034297370601762593632261526982983629774532504846627148910240745052864201837549467651809508706066615152775934680188407788105570784754080298494451809368884623257656776854462008945627518251987093650911996404356682135517663548636916342023032026378316188850424006052978544934724081399649160477230335483109286952043451830651812804702105091741061203375671108157473033620946694888100431947371715418502974702909894683899443450909909470801982920699219699858313346555213857241265642820901191982276370978829085592531718259421734397455231821565046595400810580171233068652941576746406383244923847850200559424396992081625983035180846309324511797629571323465949258595286740461698457501541827229893652379801894226685666904609553641834314686857359357893030470729936049492515247754545793318909647490632454655077977689852588020525913545229367613671679798033975836577384532499577809619300375696172634006478834365255258574912712823799391950959713973548832572313184446291909886562601345092321444259430204232407302460412051069996022436639354033118919723905273408850956803218678478433201639609829207508028773892598665128292100977228510857988024494640103393369423788085838641507843054610878627795875394309510945943941087245414121730402655941091689159538308955560159207155303216253111385776972214284745090762706209412627784226309139474264653328120696884282377199726700858220981101648228796652091594374357832555026997805793164920699357996065071129220610740475010619515604873586159272688081195638444778992342909780647413532733643112368124912892397158795369473238403567943781191456861546332761101605280623749813251595029439557292915896120241443949083035512016219950841555004219933983212998110916430311052831356604220802881970744833725588778618099171056913677327117355512359656662617908306182700183723758403189795183526352700435100976382002258108293869988184240041657845687320706386624728652147842314138008313652069439900648133238394691121705856483864432790039600317233098821972224554135454807091682569727979153752400127018503327676726913507214367411901560813363622515530447384223272965793322823278855036175392119132072897821550345473898935053359855240356553983893066463086917777598351318786107472045116941024226454331223341362994464362953376405879321045028948521248581298122831202810884801011077888041157650658796292950318663639999133647654951958055932288106654671830728323775189127277545883295844006887757225417571290185143260780070404703724167103961618737231999062992035611501104893660519613693389581652610433249035273317410201504877361420020541625548669865974779916675844167917966877976085321107559338234678576454318648085489490926014842935898528729913102740430352602514086318686842504047393539023950007973004361619760385158132541717857425107889835195835256625796206162316224850701699247028394823650946359379191333033743083955609927250857750659274907987487489659659742045240297873328008035963057510473202417861056189328661250478724037503685327625805116752707815159523694431050215686991548936431559849455371553177988993493034916864335720737507725293831356087711683321938462274060906309047809791335459198790925047562462212297027005406073908447952645434531164689549552198023259779792008800635169603332296273434121531494092968932803574997097261669310897995358445685200031712665292193683079830173953347557033390463608923228612918812434882707791336730788458822353569231283118732956299557293700651401486059805983129064485656883747185821386277164809348707820651308382849720543286693516711375171898797422773965123943180823259652598833631974463625671122741808158071846362502636519656659150297646359398726519985519894151891243806148089621435547565915435160075717851594451263796076839604199184137551601944525385230593137570830480635010039603032325240686006108513144305956917271314114927198215465191955529547957481036777922459888853383712566959834479704267620604168335973781663606626397562697032669988955752881882178664083038867370060879445990952061645042342796434265323065523702535642575748832229457021434499154226022112769296977441928181574839979290251140446327676506271636540598102153591682371146177936519920563689245002035724398257682362902489004603701701980136443972628656838392109323950836030587959337255824917114415130502825169284578884717776245130084825014681728626007937134865589637812144490668970256272986772566362056532481976414650059867898810939300082950332569994854816350820368289073449445937763579470149861212855959723979403259221697673849537945962480855528422053687934919276123930518757412996816654101011741618014056429038699008565461440495966948418236835242847272030033609364883002595839054431387488154917190358108017218872803571633686216617074957615610517871928083905519224192967158308688461827029406083698746758542665372732063864105671813812133732574003643639383970903537895449438178352755838304277532631610502283090963018705626042040041212949818295742173605737026371435525400343693527459130010005632405319640126233658969456961495225897290727438796108274273158346527997897474628090122669881339054769310247047964291139224945535752018045594651925181253460561731988757755448340202188366025776924684165754989599720055665288994276343898844019090562297144270551807955688205549728566985189984756698411947838277753916101202060963180927156339222687923931322084481234563171019500588828053950966362552958558368851912343277719705180732651037134334891699754206988030591777700926303364602587709708994594961172151806280597221798718636395317129342457133771327220725773534478649109940271742681365727022332065818268054254029069630139469832680278885901929726603866294427728948267187289166402180149459522250964335731529037806936219665510332227794505943209002987430596287851068864702254964983398397225167199358435381048586372539174100521262854009780773954669660240818098240439464558361369606990782362568951473128601989910994593467168680599864930438474614662440385852629521294808361501760740905638056315220605574138905661417038228269232981506606497599749631945281677376991802105041405657998823943780970122384413126416554494103280523726847252769063929719258361214585122280620856650981706832714570762616860675101794828877590232961585361775053003929696870973865201250256649347238119381659212741614314755811691682336814293154380743937498238713730480221712972866103069984805893032252725660755494404910279374432542185849454438596777198791090966980082668343278394847793014784722344678320709665819517857819725623548512339433515818029054699827844947329448236074711578405679602561812209356927930531612945154039416927022530269488734341957958285786019755736767502510002134226517856962858587571316992052931959732899025379834299087045051864322694626485524343748881517050670165824970498665958250647975227947133320197845124134455159899827242493284247706078587778522512609459023804760362623398188757189250024648660482760941807065570818161926623861530769521113102285758322391902395571743641682746071645528917159637443768860515153411611589575162308196212864096104310709043806167259544994318835713388879875613381242637313630842017023885633346133290422890209310722230156963093926323897536054441813214084744174472249875666433271631422211063573275837124981659664734708443873870717423779990438180290662760274219163148912597255433404954452103280755168479238330804999894603574410341901655254583345846668774233666317233435318630575212558254114338688447766846361543519039580925881958319499287731975408770741810727942214685458478053936838894715905826515465071124577611886448675396407616116506204413729221907483318861543523073183029122422729538335864697006386455417100941250719664159315982042770459732564256889852928521342397449537809754363350536758836266426751365663385088751977343596076032919791498985125917979133819593297709497009353997358168927890850661822539152265581472107470926147824601766054791355977924145867071356881923589407547249183460625535944257853101019319543266201774482512112786043149601966067890134827490844778434210576603658567480256649612895032645057596531806222573179386011593925407232241717847092241325055842506724533009274413930682083590891147245315538053247876547219041945467507082260401389087795332400711611654024883179237775272887202211841909364192696324342589324188834950290981019868185914756424250886119126361659254997827855557219015647625435999223136051526847317747383216163066635662585735464130556092432562470941538481792908258361718367690759516945397905468104637308588742615042530557805985068556037814243712020459301026918679881887620552304867635106547545102004863342192268664139692724725503362310700190507396930732274056929967209236082390902871896844936454617121788604893336065438119859277991276464915960097512824303515298455742125948749778162674826727394977130389463126260737526410933549798545379041178513664867696488503698757430019462327986815202023092275431262035399032477731951508286452869967892191968484414397174418723746580183756338477952549366560492226000919023045149355906062345094927609003087327366966148754844069626727822918635250252707537321949752727823524139456838904382171904919410454071262316801596517349966633851632842797396019771349159981990841516360649571525841186592901159416700609039757493100252680999042111752521427443135146321900519162113442181029230709460450429438235757411562290081398282378982598751206053618475805368242040940486367772653898236068478427437339988142330797581512250922389090117459970096648333591882336741127719012499649778087680241964224781512147245588182072619300913886107964828316972224614115654182269091773509786753579176205246419419714452940379653061971325892960942948290665625383564786107078326209062048312466761091591541340958982520132985181347274168809879110381155517713831439303781591129542641441118458649588958096299420685339171266265419824579079156086605878303202131729360667329592398266386312671105264031872572498219519886558894485558873519434524665384754875174398935650775917317398477022825772716034336754827823161952211762253059895863691413439872583936526428637372698530510655041746823141926626693136247684079861839748424107249208053593511122990684334346621896396563790825003756666793233293418446869198601369704451294424345497650953913598051947367492457468790732445680531939336238301682200045668821911842346625632102787374607818177355308131198457560603890950437440590129734141058509094286224745684670422462381645968834560846323645701588659024006624417018098032050882084603151689846036296328349818560544474863131837863863425518979310257688941144342721477846943790963561528522399159436332564526539857216299862204419705780727728928230335128936664961294235766318463927188394643594797557725848468789550726700122988551035173810213924407468412933741263608677613944568484394326411236459354468449533396921347765341260010235307793413592309297141020701184166571448640782398520733075227772086131755004631786493389671153768394705847052221830497376060855657820761003209276093141870139410811208087506319584120029697407585508014237599828467418142206482868806830797051256653343692481302744310021697449638703210920537045584763897830016057194651701198928242619185392276444591983553702942265536557263590272851474268701597537493177729193274038979193105134483680889520775007102731256657743188477024490889816178269380136355153632509317828455242159344951913248967603829501911899784057365921218344993642255195622876431958255273342612687978026052082844861876072951873757656265952083262267367554003449415439019240138071710215891812286066390461022225604076056066272687752007434396385230176076344063647598171216873041105215924259243785677296582499574872594852682956896049158268784264675876403383801466202160622470325149270625850768863761935088190614326033804097921136744916647183075082764660304396665205098349195905738853310951807487767122111037839158667699725381320209108420886214529484477968402452500578360122921622114527276956643987116733235400485418225525481020810220481330771894527288351174547424015479357366992439948983097517715762907858851044515692853203736078399241707023807765714468462165461985177519268098498746811843682702831658801580756856981567330149797402593213822166423871212830150661195234599346034486880411124801323099319767755346438635581911654305420307831692269327940491959965495114809140441911324274082854480405706379170495124564464959382398150466858943984234818723576799872693546290474647591305791684853793561835824912353133295872785001427244948333556654659806052414152920266910292490221723938397587653530956386187372268952622254118226961909931228774275617146467055895612842157246316923483996581452417280541478785413338349192604739306721058949018493962277676396046242811476926357811609528098683575272234173975461099186862145529219495855519154039691564102192791994157115403097292495186700579109019012086260251409389971326822799761103258754036395719918929466388785103615180886942514011521817726540619013552122929531006338257978372800480715232980853940475548133863072528937821588103323475297239477602768216629094117345702399840725258226636616660324977547931913727255457055484701197186759795894553744925114360073096302762392163865228353221812672695205518297366604609162108670162188093593132513323819368080750733396759279475018810569534970013197370093479303974954730312624334117369628706178195845676588058739230847118735444858446543800028640089385854601781193500996727499597055442408943150013380394212688795615570433020703407916950522523596215968655641855519886261381407967621841416085456821512888114481389284429196741851900931015847929801316628075645561993819466323988055690156904213310756552238121375756702128011843089619169042100820740135489259154362058839088142230445919169656123763776099359140995347388661583492630344222487754525207520296713323093197926572617040059887059497199755217254819138785275558737576692580113255081550157071898393026463181757434278942906800341033004662312511208798062635634165162147325692750877288719637615091671905078101762421541641781566529928993605152178309198631533233870566382551373273168779036363269618793840319179821398370964373313703372736241691143703828127613745989259614641794373149987527829884625079590373501351402407493735506484102963992686554697264907167904892214263886409143064761501260335502268134111453495447544058097931182336892527326900598242558232755052670235509258116552035895817230353726962532621726446205846193256160949514393474172607473769356324557982305243929404166722559855651676212592599743525442063045646089661443355447931557416639829408696111273280468676442604154508214078255398115463520385888551971397720610482517638159995340930830648954245329534240678920279454868681509299549531986560087956916519340889890003863762257260159581697116751023972471689463679164789106104417390316186875726284766064692695535963017449435383888403668895298916215052686149231606855660298176575133879652538425267425624358556346835161406030459426070354765433772955422237828671776958934545992273913591607861548013236434354351162282643039956356202114926937952411627139586987055574277315798311310194806087020725712789537587663531022657416559488599991713655284223170368160485033859927575160556374640567623782386675600056582695400111832418191380051677209712108231160780868630775582243022977905931800138462179347267825442117287523099502054229611564001050748594914262562329725451497864007376152791694388132155632983185202316863491899827794393326748943491087202046962970572438918022698986754231413687434816245143787913245704605061171222604122753698160635507941005737825946197167519773858479225569223449019343371379016972759436449793269073875737096683343909025931137232051350150108323931097367416877925378102724411047257998914432962271992013533627727443436578143264782092733916410593137240201340160412335031829740462966109302213079524205372727169601514172080524432229284018629524890033053992652414603748821036571718764321339918321827581279042615275251117484298684686276233035605034522816254370775218137088516929794052648650645279966751416065632909305998694785886325864011614958412854656180867318157823746925408657280668158781381870213596431460040266800820020897413906089223704989402907634057663638077643076685547853067248092910865759131627483540097511476611841257885794388130963775445992618817085578900399373154920344480639278808234088573811443456024334978723259877016043582081577379615691839331146955511740098908725248318872779414679882431740205893457674939977537880823688458086229467338933814973217712561698045304269856160488934600668802008049296289734951343520722525190264516460181382861469264703283636413944378995967769108995287387823502191775935984456236235956376298774333567314850967362575608410122461557916755118020250265315755559652402339440107463779332755061443464221660517576140257419411119101436393090046292735401676452451875620478715638746301368696174681073587225429297077419498230972744144300762753091240344710739328119601323382445570163556065345289069720489102716070300042529279548216619381446369014896532359134481455569699190933499298677339244199823046277194580746175478796050496156627386889162959938096710225450451363022962712972559165538291775675000464331037801016110720414732477469537698799483314274360501567638634710220079454424229911267054087182164630412992471681953205549554744188548157686915412181059748879014757530839523363590966746026127340279511502497659816335929182797178015223444492602846367383720443146118957539612923552767680625654492547626655793449200832494523562165903468892306368453024507512827122392343510932451859491814039635698565147460135480027100963374507795056426491374199064676129155655543483745674355160729097706300288789811368826842118551733623183473014472819513832472996112102494149175984587379328361329127159060998612246176825033460429364310684803219879765645371703353491347567583973814581128882273218526280880155999906381334889216885754836877918481765603271087346284948025158982133537669563046124104661441794027104814652295742473008830861122166024648993521683948607041532972138101717716943676553276092119160789168098795278163106836213883353119417766755891743131985561435535634934792966379764398336304382993026342457464265135706511481518681281614690319287590200014008060314800271265732639827022274001351984227131907621462839814837462442331917653363081858693463820530365596195447924152938898309567139734701480320230257338629202298141580115370195688902584480892068573775614473774897814670361403614566746392756950559219744611115890217961680658146380631342991856944132948746878283407146900240454460820444856961446223030623971824830686977859990750026032233875252941459171122923189934646150791713287940752048582245090796698433535945141242872502657381760039281358976748815258774716642382467019994234604380925447589821536148819067538037903552397449028838340889844619363565699112344427762419541523252067025895296747640636100418933936764082475914386392925371045420705260817521795393827448819217088011697634240549647411788006286734058970015593100477885475670437490413682298715624647762558788856497124558492465503147536351512420058207789013671764785570537004118153318676940803888906028956633750214414418172112794456939625614944457731589865752062121398034246077838342036833677919121832974660361321253535160942388486704477292624435283548157774434027277198585225340343416399419360885049604858706058780384710469234180196906835816001668780369661280835568302787740338230028015600558714826521590388858175074213442426466797525033133140558353939051170648905432071212868849414854749163834234495225266023624269234010868459573761456231737130080102520888126525477656061228109811483312811398434855686043470844609732396277356807143738810889859736956734828340665267546329455530301608985399244582262080716056854015452984544083882869782820663592102702157908472510186415728943831611812911017344373896979740393931219013075978193532478277049641358145647069826040054714279008708929263733774300429441137502069056962644023244955929254278243701012952934977664086998909067341061069211462436090958260554793154940646116276049139895737789602093986848092480337820765028366277803970184022221350728414249201922363862057305545470935161581941655491394805649286530757568647252895083333573341487598858162467954855696991798786185100228360157768636210090371561108506217816117306339335504739838310596896079784533915885416576957389583224235334730667041067365398193883709414953516408851758227894249217864431255991897292291096714806464742743959498361701836364748443347463561052007150863234343127905617225302249497924715687573545115608514120549342721464490999530325829354502435624382549375659175400231847630205550455585794995029835483271611577151579780413668528960956134008395971740318912777507250911867911952999603578597389052953574168487758954902640874424077447097175595131981952547908786571414009838945601716334836732325985590106997937668583292652529822837833078876026717190176074709207994599041959175254571359881427798737113228986400444266741399573900170790693341380939263779427719513855512315283169317097145213263978606933669974297354517692888468214916906545100251401288049844422266529388189708363724766697564706859420753523699393869039237367358690335763108941777008814731699656319592213914266870320691326788384804825113501118314376886945514449278382281171205438203531381010888079666809515726736757230049826117707450408368796786012092252319471435768931475377469484936531722491839784563687093867856910102394288075373366907329301765336308944608494820262274087012136207671449672396429843386363347418653158867145150313596831577008587214109615200922043717602166851267801624592913703320222061277971757401728656563642096145224977460780732521372056548885591814541483360455354574361043395854580348167186105923418535030785493917266064785583158421466245253839903152478990489218485930271354795760487412429387800972088388048375291100514438336712236610504871589369148794921620058711494431485219269924056578299107314900883823020248168964414590644940915459138737139254372799479126546077418818709154117036294765953796038938049934577511220685606894075065718421319016808508401219707687880158653296222956045690264453489813970548232343974396398612841536252809761855501060463877170044268509245455218718106252990967573795345356912863795225207973716897051187421958332733191987601830004390044711205517433121890007512322966682992448508390776918964469671256675899169330013937877135068062168944824761764049924738219064089968054447308269418587686541493866937391738448195639884335241519146898303826532403001193316090020783050599573183307919074331139696974973291536219711457488770325485018993737230827326820886204272182019103172092399974633540366620690451887614855328366709546659039226980293373301211844817935063814365080606134607613181914669838891962696370347937610196206678904569964854542278643665135576966356194732786833300534248164026244790788300491607165669754003715962352246217353857645539007286755848616808567428099357949324179484063235514558698591458935011833176973302436446362639794682868818028369729147687166374847378580881785048878924696416252270143669399100962581222219767319520388011265931140636420974364101733748060405928722048306662316020913251667236362306530408114576286712282683488671443228770370960230178290063073645080302933033756925021433238877797718549491935621965497332987760656886549836847016446842141557896835120444246152501733218039124964409458909453177447462459138873628869192139890146981488802996383153440476731249921636488171144459962518051911456984641882536809673386932741653617843301396125777474451012933122946531458834771437614523215141667806082045015335897440935672752688722522609598154633057871333542602509819825828997770327948747833187120337683062961698404381009332163839815329390309375828500430926577733628321819488969877013963768907899658836448948957986576279790729030453158369993075134028381343990602727463153597881630843007361028124909326738665185715152884383026890843304680014264179963872045643143887679185584325593451634646432542804603578892406144757664776756691267751562090591015067975310325255945955307873212779677570651346994377440131159475113139523241474559923031347697934752868805575300579108835279022362533693053538537690472211393692637277552390104755416751251216593098805521796381822318583888039278672993119275630103515709170007403381562107717887138540293374572521803296368894167290448240375024125704412406076674604659552864700699570284924029000558337601452183487070004921113726543646254871594357378068938033934292904194833294492972224412602526090571583972220287130456826839456724248517116720650866771974543281341816571067564351549520476140885887537507679881235737592950384580346424516330740934814281928513736912586653198320881170814647630512696440550962066134379456418204517866665223850803415406697709064030006136843360126673690584573661118706635677690717277953762231909988799514146484037098392793490486188798625771411725467484263737789909462634677592064701890282736906070856353484766455793006412005874580691312698020523539328171751133399349823341651332617012002427465169654242320322029553403640873172496247329650541343685673372035301243606434452632409278196700630094609214791648577612268135046809342198420789864617796382201351447828604761188775314434778260479829280824962220506939467537144260416867641366542912239769985887311633879816025327710297530840994768800460880411349183297782675061221210568234807949550239531107706385205569212075866108729032862505993446796944026146101125500266156154320410271299583130327850756280374891520541197518399738583581864962652772012418112857100300256867144529434689659174336209644774307352480557427470861967108761788600701141387331608984671697849539034966716885332517988953882854049825648829070309393373026146199530448647032412461809601754876668733596117944220667126676026489809366839448900586413720751784683669079796442120653757297382508972251549632266996533955141369086164269133220348216263819734622903278180588315824177883975930397967471861998009001367275149949206197868711366273502287606344389996417679823267510033770978022146127204091719021054326697128577665627170585892946491121112773710482550767489131116552148884794535963616762431017786048995591560930872481519200390642913332937403684723905907393322332081801517794675492069329580509110927495625478666142303609411956743161633201890654832454941455428832204256265212638121331921226723723278739477200806603156675661651285444362702374306507545794098126029798160055750173916087187263665455306731962155602419472161664679026800149912230162207653799875797474216078418907961628685777635397573367574608788115703525424975366356956519917728509930589473865899469697135024183467687979610170179711445031947676400036917908265033831513428766054062875341484609494807462610697029907744222215598903841338936249810724730572666770714612165789855727825902286162302174759913808488453546975844565832336529657409532086448388673021041629018257544462399088856273072642085171431109070353542419556709388450280018833061241569830471860339472174443794498705863150186646544142300352407395018438566222966817502232398743915970372247474854904738433070788317454461673569837603506400581547406210315800907664114179238721893644238998292330450338529702628291548312274497281298803713781744259975461078448924148475317620996566602871042600686775998277766372447965555359091790096723368773761288437843636168053364541604371059972987721937788485108616430333318877266577648733244581001190807815845209090464292677388531596620586305107712242550790128294915088924155044992583840385200103530203853837479590167536527315932767680330810879086108761649811933759684064764468878933344446999117802436695077756895657066015233538723347757037988872693493003554099518024463031406770850200013232602480035679604660996607399500678513826738596035464737108810429951201098835712894485193336259340171447444485255798378405672962856340574414985406253312111130270406148076806623020191149879250631784571718130083193129403732346194761135910281591933490756649340711510987203706080758030499615110417130495024992797224764667956581994348770517555090359898992615219047555431119220824352316846103333914245657843408741791597201405807615375812478764588953199224732099491973710623465547255601813172733782779055057672308739869068284405239501842432780927569360771398463912135438185086305059113522915608931864378123625414347797562907155028483599451488201530329748762792860805928613755380625727746566873873208853817252098279095694998808617388719946583225570705903021652249453211669381407453121174247984388120934172542437309148289243774240529098832194934280735114697744617117577590504290712038975862751938254718448511934879992995721342769023685281903710402968694524704863734897754024304756013921289530627983041201139855499771555675994487808704824616993569276513482302952356050468108825742051775619687993528493849173964234330666043830012518083549870521637576637617477349598227803890945223640853596355597421882301326091231863750891170122128019637404227017118580843938321483537273441569144908892038631294423112013845351998063236664245420824316820775483927885133017182095911740100641979419837181292677794589408361903468080797603963388289883685676920173089328019139488007953232090979300902132507343562057639979914823930131731905763187511989548743937425876279337182871161483860735695612643629760028418459493820152877562553707900054658804223305388839316325514117421392799872784720274465640291574974546990037409184346125963500966878112845892721259606688015689407556737300359950035633856769225375391568946579695738977115321084527953719201641865020480827816883906035107354799659468243338436928094164012086530370363998455512533421262710790042487282014901482552053642284670737778312053284677889697369813978456482391191022860021657859793251959975033241634824302479677675207893339814089535624125362190580236889490872193460006006827542658810219720770394268883701077891401521491363836585272773736275290734265976325174139570046282747283764185180979602622076151149554421306091977058816439504887176092320249554638002907288598083384565685713256963234932232316278162682873328874894293102674302499130841120263701241275535441994534298958279010234046966159251236790457677798497067759977553552201887953587573756015457610588578547142461606745446228202993228894442188392514806530644779727615374270838928952736817163402145596987847595224816079767523640708205192580773894236050636955971921437291820984350444233477705599656924453215964380184872480657622908616282129101953254189199894347908411458050018404915209661731181882152767420435595271789018548090844497837527445496754444210282821130176656062199486709775501930798092423728308422426896282068976482224530874938227347800658084818234387358204223941820803494523665290885943803104380873766641167660143536642068995162994398673366198461656956751148266903493154335681615619541034143651045100052483585136842464059304397583834903271093333893042980872087910679270274121258993722162933292748488036954482247421102460030816366187416116560497788535130534123133140296453583118782299586915884793896892647516398419375924021157191870615610580906978993473080882278975866824365438106396260019196883414072609021493962712745028939906888739510305688343099230897760263377082748024425336116366650691506694005140128192605176369466855740238570800090272416527734303838792015409933822829730846081718056266135323848120104637918505892522060463021073952294382330828395608129677896722483418233873026307315584831231873002862378030742160950996365179487334913574489478893422852928239280782703884567946110092884993454197737809072668548289121957149304185726030692402099245568981915138541133431908143244799285984532073991471231518324034861141167754921527955213510179289630918899737544772452139516385215414307103058684757530587791494448078473590843296134359137261631764583989011393694965762455012534633329107192983050470029020905746324249038440514941808117362589699819238605821361035778124470112183765152700284407763370182987987533308812182435248904984372667714944831042219424033986591542448618085578120927455117280787136978665841945235915894182378708874191106826273677828205689692481581315168651332225197497915049673507853782429506290123950704147294057766198741045497170437859230278469468321287346636134031992606646521324419095247932859551386778376669744812401948482050876274945825633716126472798846252226340703676649426310530313317056599154894018112027483470824147304452981759885205019632066504855113136993717613230594487105694129297955412662020973040820996680244761349441140386349258273050055810082933591705046914418415386454522447603309463825241526898997090879619281248139996649407161451975132944775172770201019993459009987311393681751427919770328877107697854542038890943976470874273471349172574558466930891434663816928086965095127170711318989303466743113851214189105219795459785968732076415199235660123413246970752232258985684035534550464166839059077531147917948346070898266863801001602926510584299387177728339262932227268674568308698141021198199605137481137530773714620826356269848691369851805119530169533055299284013400266070618007734309188279988705091178115151281584698512130741727932486361908359928354726564662471912849958150147073188088694578639450177354839613587609041855595019847059422038555329411550683401136290868362542337656822118225465455302937502653296904578193119203257233745169192919508516896395784754624202538967605498949704662717879137235081647250842268030598921373343541923595140252687744799955393589448034629185762969928959423363061556662042317916994957111497579753166629742026688971458861440672770793572584020261545292271099603434440948546772451626421482393108361595125999945962697355491180519866367860459478625274794060891631959634360661164071369259248966791346706044654524730505120058279609135349378115208589305937085913109700571854192621614523070805728959510762633838562483182969873142049281470709408486322382469084122373400425335230186821613183595903462316963983517316243797189671773870999422705284272851874882177416066193052812685105745159707851197980839872388754097108740509418609086535668546035034374051315225332327434623334099312621630591989624265458307249361095173814321335165363160187192700158517910538533394970920760039924362124141956721769866888221754846147563532257054635677510720468503277334897810679895122210850996795153776578594455929452570583747185788492759018252578501698261023490466887974111652192958671693146967634556899436445420913723847439165854398842172343341296778598577589059897966652913119215133896059422688843197596672343942421897976249882732194402463459768058363804112573141108042088065832805176433750487828268136351963998815064376314894315667552010899070861650189233327166280096288183796622316435032826703037810651445451755135322573420893542535555788856548392099703374314884869637281427388502978557972498006514305480062506797535401532198343682984023187348354896466842339910792908132874930367287481449723109894345262909081102028963519764570796723152358152012919381557268099908303777543711589632280286612459109413852236424080217081411760610105173850365716788842303137658204513967873910205256868549617931477766657291259351859267753633676215145646437962508970077707606875600418883501229851973221094243868670935893861426134983191915981774063836314260445065161272516734427961637275026786493528356977467472901208360241050934952030373299039899208357236331026772703069623660833915537168461723638350046479650351377781793235317139160457069536370650919740191963087107748021706801677824299071550214452914106341235400261018766496090136526927200233344841294912761966078643613497920957691728579092612638793920048274049652078315973602311818248830750427436592289629564022224771680401459776225592487889717888245604959468667911833372345655444663471498750815947449913630589129420480941712856701374894001938568585058715628265287733748142438842951079676458991113688177538288457745790703132309730155131663182807847511307191454510091163181384651309425615808426783388232217011287927092199295931024100229714078577690385877829941297435126184887149139101336539177556101311843471686405473753948926624527881634063186418200804466870849206526397842185225445592903875905587763165011986559679735003265705330380773049197352711009453077711333921836431315644432752684078634399868574265391990494542161820145153534907398030694034795555237964728472535436607878563207736865495011624907169696591019880622574011630550172011983811264582067708642953956143547267140299668230126274030454953702773414996649527017905242271124635810289322670316630898331098460633746190077535126449047501235537676665568965614780174814012897632385905647981651191697886652204090977305776853847173697555727260858409809343910825256409584627798087094929907590297934231110909763899104612119845897198627311505311667414451807545267778004875448762601079041078412110330065263315621176102970611621547754971548879263567776036687840756425684754855486947742901160517622307973382244465147642950897252952819663097315835605804482400354899525168591701394015668292753093901818108944576391332816317111757061174848497218290129542637525983582540791822032297682256801520375027356539877595593922022543570976995165127229509624909420219809304877550309650210581724324219538076779152352842883799040647153233894613183461597286109915923620881285419267283225700857716071123028569673251208810210275866908746228617241883695846064756479296650340919546272791053642941434040467322187875102048274215678255649572486894936498716850933206496949178310344750463978522032115639091045111787283067929615784458300531577241487119148661612225054628783220564513979359306356649526134985940137749168254849547379965998701703779874529087394162578478661038446919377508780485327008716691747632617900045004097709546217398013559080559902402438322357779224318202249765954904176421102483326998064589703149347761004402746528204635963609227906119479857133839879521637769131969078564100070252115695305504040082035448283307733523742577703999785066521293168910041326520450756491356600980528074154167284793275096467635534066789374245913762933994038385581573971677253101389800452332468908260232797151319288826456142948515308453250687570554486465253967998390549077743901433116388446536523372295697680411926976883553400590058886944756957213038256054321912468100648156560896862477516532310443304650413930255350552151208671138620503220869547847027599339754310651637825800177187199726692476957276750169647006406147916556129831954735722587073790233268968616326843331062622570416262587410030257354878739551100462517885320115228370007925509824556316928366243260272766220118599017900643541946241757800652445664014607104639789170371495591989780525053577094755043459845436329169447478344099358416391127326297099922654868437537009181448768432223663045102000752405161013014321844746102315212261278613406353128688781300922185006640374841786050064351190138659057538215208221920655651037224680804539467764847654132723648210630488994868609019737241635175351316766159906865211598722547961776672342945756866294908192036128370855137684942961307311618400177686393754066789362852147726807268516345427692933527818162327909587371937159274111370821944038336386703529268744954129211860302504530188121294875212731384550796733354728717832353738456209983218935983186881258976263398616662902961969865363431401080176271793334725410358869112320936922351962552281960905679201839136590329783267764681910073354588062494737328521245265742740146543821386250991912232743588986357204931272885419159349934155481155656093547887336957350314894189602662958840600586620816036464797745473582527699084980843687587333924248211269164599268495811035999685157429963300783159785037858087318367439190051389225194515233683679079853526730106958039535662445661700623760245689699558543959652897391715165320644310872723076077267439971772875432796678229627206529436941203752087787408837962289919673753505521145411876622586607151539782419897043280378772146701492057311508029100437058810084800304985251397920999289173642288558287016505950912946681175638385012901650285663329972240619733726955690888302261114499541447802067866490653048174627072159368283817322476187938371335147612152964278212573777087986055267495864776473732971342596863178288749638514134029777198117407158056676831627031066482518892251357548543310856335423447896584083136533681274497120188667616792667206400367283984193858287069960420598077519523216850149652353773662278341289085533948618992645583501264814495433158658376788326605770724723049605836669898110176026509858586865283716263902139371243875441244975338574487000602439351050341953680223748509554626674466042562891505872265389859904106653904335880482032637573665443930164163586248925879036717510037832126235754992017049535586445827164468671730966449687018458839738600977722153255159897474472464936107099842970867832346073452754651042239798650356789365811702930394945185159527791147870084566017301715297729359959736934462731911712007729896653309259676390869202708320058778172997624045424117082637116222046599089856821650071369193634139336212450575210959899554321625435431019558655558740818962298810146153987168462769848280241548644470982310909475384176755756369935629021947630486003160653022640513727979986278768675173147690362358844458123679875026303098741046478286592705613218245273515459716507246862809220226045957977450713536182251978759035996513463237336653961883583699045305509870932737359793364208151121873485687587828603132228529402295348036187848112968033188381164545783103100604419364356785304682627769216821280541081671375543322258597483084284362414362643767980743703994275774006677683943915483858360235590753482377995856847864638127881869752292244837933739188541555132535818251283689716519227681988871823925413500479414856964801773156709004574122929224278156944210062183402515523975351957871331905917069096663449738351788368954085327845058042704886076590752787625045768345392696280266498786966393062169248197398227522489301760717683285289392660016799733300596603321138130389771265038271844593889836613457641263471082709188626344179637336686900887682304994396066627075378772267111614087228983700039256069581940788153702701972346305036247710309238925368419747282866495080431410239696087450022818298058449973040921103265558196038334722991530815663870205072026944891378860352502546602272843965741072953398932793983348459331540286704277720284397551977577730169183005485577229523354419171358482190640436947236288125011598057815150310803689611559311620847571227901166876294344799265533004270604772768530967765368709759068020891631085869209710713579436551032259292621719635438081422973291676731425973741262577760960563571001717408697695553828780300164957177337052072009008567633351457026862906723861670453068529232192090555261346999708781314684365233758070014078493852597245480164372803180694526376217032116979146648485189234607416715484928536433114733575020339716331184111769080394774752933467297971006110680894141993121249442118577197671675560501598176767106616335712729139841890974943883090746898587313444877964478814896804188897587575961821032321918430980407644578927113386893615760907074984571900481681209333645431733283749769474488682964821715413133707582931114177410472347513013811341602988640119386817980862030152009243033807057545301833427344508831098408981748234855399624747353315368979405231379791281860071981775402258251921474001245666300900248949311385462095591730764372692096547548433793185407021183256538609091684703817534303615379581049531485560877116469095502171974784238972281740496419186238451748925552827102174800531290609774857283993678527105575602836646576635545421552337751523656985525921528786257694476866136849662289347308090279474879111652688842063499426231562202283960049580620235359704462185497654857019912763629593572882602926728380606350307437603923654679618956617036951185086133734696649929705104863055038877947677967102985528950232215859650994955394466097117409299071550006722345438762860002597750419519521268417215688930237797904331944398928381090630050749523067485182528121857772777469088778527043506129878858008134339100184101787907810991734666344673705977226120897673233652215255036000943683864713849811311075654050862351414658716176794805379444285296170368780355909222103605692776683869732293867517572112458668636013343763917403668692912076081759546931659082058828503116789717026019007749945812500268836464524919900497369014324809139770099480737251726331677925783621066158853379088623362403478866416341131057511290766169098369865002504015873745913998408735002250435664781554745051591320308137464879520269368421489521032806242205968620612747451858945990360259470764118592713448192007193288348869039398804269463047152714069487430820094749766185309761250965658481489140493283029596936571591964887800240110404112369490710986479846660503423602391940744058135476888109858182318810064975337179717625975201094818771906553866578883887420803490241802078662283375049420833861726244331328311156968999883110897364456112155368202264027461082232875647633493197063680964555254335746407801879987674150255455663313998709155261623027614559288194543836185184654003286796353943817644800784630669301462931615283191282541860530219057591805680071100559986349859042827120405507940141159919074028121042978346548295523908455375468520814126690824460855259617342540835336452416463221370846928003661004316178072363534443850937246280054106044730507432204048884892097759906026919877156137923905058327237309982579204757891306432150677565265293031199579272924140230495921610123531590665466446953525784264775824388146578651745601639073878120027544437519584301382936365726735421839274951447416374442237506404497618417706726698188906457880173889325049488967616816161318050836314486298413438020184981638613488289420214987450649913330674942366910315027663489136031595767039620283545100411958419369249048419159440017597507512084562544051341210189215210861394986385054350525072168780481476654211255294917906962836292377661985358976717080395510678642130175439820524382895622301036279562964431947609184038179523522264634307176275082158550697104230794659752253908605916872413945900736755537053542439179912010832930533673451936304175120135038377463258643032820211290293689070539885918135280446491631721744247635379223430177511640291035907785589887516299335473725341678702731329375401271679780087899444506620903084885421203052747896198372627835291133215083442120504600907402309155537539925826922104348336389217526318345880375985145316459510461235259959935951746958866458593995284259924781927980264844630735693283527575562257326748291055477505783992558189799836087213987098696081984118985178018681883875411800708759410075572339948145694236307728307482222310020078759856022179369209174422270608574306413146470174605070726820313035175948619142478902424043088443381952618407807385033706997112051432279470443152744595955037481318064583678885156887617169593288810508596944844031896693645930614451600473515469025838802905963411229690286055377489030350217582894606738184124591187917966312181912913545954536960557745856385212207036646303080002707492778504959901432481579645934973544298963839379405136453326182609789764573662659227771629029233466896436426526560168960130897075726309246451675397394119358969263867415409877077694322598547822883462813239073101738344848132332486235974303038795402754486553361204890721699471151411916187205290154110383133042455570399055358410395500294651795970651712939054705876352031116805949276934805501502898765074418451463348192194249900885336921697800943172345128089808446978401794842449659170989779904325123305593530221215567621772318535121688311254932353422216136585853670735130716088035866964376800287150602257082675509305294899988015327638751030599849754135102687637167231368275771915477969697653731165979121331458720458975135006921909848677046024121781283012933209397088524525164402450814733641161897856571384501929725243948059973055600353180913583993493864990161755353538702404221364485874636169005120747685662599059898551168929376670613965657876187311494585494092196406080990067470544646186454505795711772998575788012638784497056652460559549077453394795954745288300877578233942873678935944571021247053042698017352138212718930169946535401501517595690912832326392036976751623916847951984525237996092709156371217751015300127867548977853994929531534167828457021079965156522493125678241993818699351130137815360667855977931931297350146195964488586517097933616534502275463802210269890081808711004953187035741126978470515851629309656847827980352313078530877815652881593677509961427855086156885662505391456680871907174068461184175396038291405392176701609022693332282396416144593122755868102462494158489525205253545188973239649573738867083100812690883479393425834885899496099882018634775429665445547912858917834004053079667333461559164177997862192852862910148920057327729273628721722362551336732179762682846922436164700078908503438226335652136004815884159701419831497137733576690525588011552947819616580228979011815096979865515265676419576981806908693467025140670101376599924542576603374009331466773770747568174567626756499781253406970824667480626678973523995045180884308294384832911748621268237426202756402198019636084913412794822055079703863540836039974508333167291717370439888187149870345105134698335395833652126321216197154306535603533167180855170136665729834579399186394493437022870055821708104903612790931988942159339020132610411298305115396950467175566499408315048478556098172356214779851012719979854423879893228214207440292864903655055732226294699699742468335945199347736765647282869869020315639568656208610371943201411004044890996122388959242854729635635212658950682922249061271067823986132254672824123274579128588704299414035036388839357810685256042296841894295424596703193543356670984948588381363302777127444208183983218268674684163309881248302733338794408694900399663950165159093264671348808470414772417868977877716834788686333557909879020703225309301326660145385377518117665511640387581814514994155202287535459269503405779043004149832278824445214638139169474536224409067564631617212470477887605361028375008116644128829895506647626478113536054883291647120398154247650773996850791959895500097942124724058132353662792776182176796629117895029313597278462883406175281657512433725597970651340541506095648604609565998806981046567384621053052896134391572048206920488136724373629050235240661952406040772635823139213222811631925607144186368559023193906502610979007620303592303395896645218911608401209239615001730068490148628379166078650938730484336846436299136001616899164473368465109957824209544322119799928681827946450373820423045775118014731647835070354608919539234406929314832874184150993601611649273605788975878762113909917751937693709009712809836223105266874121984831867741357941394395277574272089584454811521371224512852381165058654224901090459836815341287599450805391818603814622708557859430186252608124893893204395190525748341668744076757463115969375605642048190590703545642230097452427191079075005403673412614413447965892854937051864198646514756579346733546323004258794493202606047073238309461178855147500671672442903634123792207593248394790608125152961740092835011645618490761108881741416474903793374012777654881295176472959854018921396194069412322501556533879345043488750804529417569926060439215404514938959324221638053969784108540047282117959334998985178416826188353733637684924681663581515127158542538020038817584234885065211553917202097606282566280493310215817041023760599782712889797841997278669849582722917157786313367291487992915048116134324473824377188440351533398883977613875836182454282986090697397967048015566355229077645711676108049690522694092371159479739411997003691681549909960809126478604190916139380207022721778461994708179819970082042801734735071203234593023909943393365482711119283161815821852686684140066737711952008421935859641811568241507382388995541062159849289793415590262373765313187278784741893718231641482133987559548121995444597977086574727594367226502885842310529268686960527290594210753686079500119645452689533242665639243171978762066343698143327175534950915217053156629797733033162318040212766315234916405980753153259382175615391238284325331932256687363053413958711132281396620619609763104781552145822959783295223726783004850187831632745174396694240787939030180211482391140416666499177350465911463550049618377343517957514847854157671038396825823932269213591582939276609499321388495053146971907431181422224702672930032625711149786589786590617479245467592660324377271280729588303483422228072262828511092819159803025845987577153242300351217814268683500367428997729538468863548710323981820283282549817183332808603180014119665427273836856014216284017344694172976829098999947604229261650011046283836428783538738916626067116233280909763544148440449759896991538979715246517506142441827086177289689440027286555879736819708120305169493006823898093334304770012532542298859223338444591909679239436744149610024340549030079426746866476457693663523708206868562599104819752094034837961632113228336286106464815140695316951229581416947336822495620322607203498326301943681687070594689311206221576045369158387351345863560394297384294578186174778789163746424349372282089882621244371937331337763615876345499068048503938377829710869720608673596216187431668707609763694376098510548367856740233895157032719537526722135258163772597661622001256555464364636580068930172656518684376829612583178948957983229070883760200741432791996785297389175247390419463373692147234964488059731641270762760317749587269170611383924787244606517322651382826290086925110228788406283936981166161286577584823354476398390995363438820547742510041713247500212471305634719061864182079300080326692543138224277923301437722450321092422561754137238806416733814176750653100883709120877406040310993874496445418383399639379331201815346511576466891852683246712243330463508635481928752108822699385573532452037629592222191797981878158767325422264402004456425856733922836390859929116796500212264883269343231640603944819769534881239890428418508447484869729449975449344892141344145566874128958649271819921886541705803191254078873011193254962858141880387928328964306024783793669776486549777144024231426345170178590777530952053568333667084695419847863795157752250109191550759550950104090400870098026683334224269285679831922199521710799472778950384478444301073404460785802936527818592289033182166847978764841864617462397604914346040878804137187919478144812005111222418008117329502850858663112769590003024461950286211882512151937300073867092503854079310406956564810548290375782287914387015597988497372458673006841988614484974734089231907398861770694313611275242005158458261671407557829966748909362951382727085857646098352221596450683289399976308579006459387014505733639882524562470292429855827132981457701215019992074430292965808713150637259947379567202670218978442390408461628588925463450825546931146863147877193748139747929191800817911342737909204697931994327873075004953031769705372321926553936695770131617798157696770865807237652748421008507571890516589153946779614124505491724603194485572784077081509811639354712006183820941454979384897805980440854707625696933263828031142278700498560778193946029424680455633814476343702837724383212984535214424966974037475956970450593422057022576564261928527054846794311722003107616606669205926622565001916799948461802865397326269162231645163171215316997541482132757014118317215335905621850226290373025958073741185492878684208868475731605395114152151872078620748769533116928198943854778128000697440737274920076763019196636638394470980672519798267860563584408472011964116687787731864059935530207694819776688993359019333885485709938167749656075889793446822607637956949947125672804249138772641959276914381889717962341960947542992456279340386710292007325437567537338929934171042964686644919806119534447777230474094950202070890582041744872018370086480051460327760978949655106992653443832214325359221242764670444045553160233380530712786309402537917492818259019722790155498822191341405401313354776025348638198507498357408296518095791704039608555648581854765816097694915165179738911892965296131546798115389106637541057285984025102807930955828362013790393752850932890447051265596834407888449685080409992106632050675419339674429780576188204619816300806484538300518215218275817966490789429052783541332750501172746694699960796965113363282314995511669389535455563419830651449073960428405339178595025070112715616938713365187044825261350364514431298337697998411817650999093884177393106999053919380810451513523085565959990316569105860099029757517464398097248431237502990860334738798528496703977438621224220387757665054189432290975312536364842305289524311059518407337781419496521740773430714544519618742880603925058115404162632333564272599419946329542478041840541174021617252349111179210004017141712656853373753589437376730172760820760143429184584615676907300894562848274631078859761505734401405159826660830508925192024632327108182401388173263151439914467967160588083064299930338603697744179012998892742943733878310661668923071511096985401795724447869717967844475592748087459499664577172618971653859546232136497059496148521459565157256100054182458412513490065405168781345826021025018332524401132266508256823169406348785685999398254030036225878718674644295768752366040227383640065391353028992317033220579547460558729768090420027255412113999362234735084567179428492712377896891877867287505924145268045242066420070881777669587245509619826767311398084564228938257701590894522573199553133623447554215463162139320867970242906068223284902319807328699880804000995129394585004504688756523808210267507966716120638819013568844313371005040186488762334967856898490774179160531165277420975929091425084108388248199565862921359149794624091603880227168866947302201390582489147359600775128591678603400103966542913159117022163386259486566482060953513561753997358066601130847560881728038332311562568938555941957665842047580825000054428893806425570977362806837181699768347880859559984110811531548395164358267553240573037416865186158235721429336836998815800280786499332843306801325005514335721362168036315351664113506411813105439505356672006821987876741834511769650090806848251659365271314526782374023650598598923498826530022133495799926972602136941523698791433851539777543790471418126679566836629706397823410759684355589176005529014193876601595958952866348699470368887047853982598193066559464202819762084045655159501587045114901993768208331485210797854580963430617554843878369781973476193739300980621295814821727651341609846897617483193484329173546937204440240097898565578959420009232356199569803283553370477651871588092800699669614243013065013735469841936726046294332513317366878870988208052109148769251037503797059271072480425546488565261525456067662142810452787911282296806011022633882035282757140556441868470789445488807346030158040581345203246373422888865248367505826258576018146617485676432524559018164389008709265778110938445793795897584646666232477018544473357242982179665279276267850310463168218606616068009914600298546369541590696427128373100413668975106519013112812739131849248373751904117363968323007503271830326730137247680164316872843717147705246264076820549949042647891493189516234622720610881808824209099364919984450832731538424462531070970675096114781106470006172107420772018801957595187494301445470552074733045807347978585460765872905817092363136993969873801175513702774343184543280986339422311489889279751774404086356472695283437517660965848283353681407647057511115276307963766937181656171514942166517503919454987991875520366090930113771275216417074151638057831259831338444610300048944899770252624125001153231190941919926752895939134343619577314051764192319765745882785863972246384091617889730405927646388704481483861612571736524729170608987395667693337226478229889237452060830861341056694100193988641036220283767547400571621050113594401673927981855885951483032969904643465974431202182155602328399666152299065548401303151655546143490077834219632704750280973528371563077817065607259544294601742457727198089529799976170981253001824185418986095860030935765345184095157510792338227777504344317661552822821017589636684627396680922849397027704628307346536212165705905482596913175524771653632537878495674470005503820889020872601330361223254519997942243304320396556007941076635950839624516774743500559414113693016673686172170711211318664070897830089649613399323900472622043400843920825362433114981362694480935151091601068710017822270637176298423295302993851529167270335922340207298821612043440735373572433118141534259899076031672935252116056619709539800864848678996648045754032645929146216251989156574819123028899854423389334655747993852115468341384138538389107760055779742315421580198952865677497615165755592321624440139086262895294401731889257223793964553427733586843637208519712572425641848949075493169708114179817705096993713323885375602034031317093099611954574546406118672899788167376194385823573763001404729178137589609836778655747896956063968689714094492450961286265098957920081230792544482606521597920090160632013595089597428517443271708912341401773197109853454519472847444258217625919646524443509965619951360284649278457498196872113819603820336783634082348628924202136432739270329277240874218798217568858419764145915340603750450783576159713347635625499592916600325055999713331722397943602259662132853772045515526320723109891942527341233917853040639398763737275241126763383686857128720266635907662074426091069202411524932498030734720758903496213764599287848088769780605584101682390031669645545178741883606839094445171275541586823104608222059139219349484929685832342006118742011037398575506777406092093906437807570481621009252306122907184112254059621192372583124213119274340174507080993315242991193241816966494269230454632016666908689929564529714152280396103013399225924073020007085624874980155889939246625990033468278648863071745029910115260580537888317506681664888628425377535600558833940181835933240460118873426880379102433893716434037628905049367086712414353960997778884030134366467680672085635166623213219184420293595626374906553457848813532160716967417305377459779932863584919245019681847046814525128590419691208117020099272189569658761747539605052117572440237446695228028831198408764236007372977507365171752949272664407110865649378290964993948348326516500857682260816008972005297146139314663755428287761020321549577253888919683886260834758083102422965417477921754481118929409711769955881941526496527910735868999093564918290521902956937745359023472719388980576938780217371421373675499357297190452454759517502047683102037082333354250342231446218314643020743240954795078915745647592593223338695828810331861037816025354265970650967674041122106837027566634588419255239248172083827697952747021038456320945820872926788506899002724853674968164297502802586942971695776168686400852165405775815143083472416125692277631506410907674480898254934929122281066050701443212058941254196735079871892666625258468056671391523933341479102083717871420511489134396462209022204609412323250904149163258071588918885165797355930017481580190818181052262132952572055640643163578503639070863514163192036007702078128844121464054897703012431892735586175110263588389987714424505523019770150185184065564046539970287868307640465166592459654917665722599165631271102168820511183343882453082092242443342447542716259880117600241039682198330185015358629008801152591536550070276990997821696528342284263675662665452105258627294763389261942936552360008808253335591852212913023236139790216560131404912569503952094395807594109192415373797946347564151319413954967272774877404581472614933629468942837387893943974945472889326470901825950554759360847453780856634084475576402728600698590967298897267833030125708317004531138984486186239918957410567561543352188054442830770921828377909289195344451445073736125275814984851664831329230397938458062370629061958920547287277377193759963240553036577898933879399860409268899077258171657944768307302042269405542572390121141690892024615052292818772894519376074221281932596529503188003442965130216073539125738457274867281699615338712205119156631793686846859123132875215479861078212620357596532262509024111977499116775589125111595865545725433498045294993265739089944210954841621340420165391519434912135515792186079050532904923889774425928543793842777896527854456356416711057648434532991189816062203479116987195319158176185671863109371787761617085247921826129983564715061980349186509458485843126406383563198042859729602912116838219237023794401598480596709966175489205627085962372346793075234194934245545993413555784138886727611271765584675108119883390296289450099865195468909545223929756002039542639548338656917228357597126025039619250911444644673829158291150615174591680026551304674246398652516859645858692673820463785475480619580031426449257194857611639114566974583392211511649626415957959395736439368598214453513813425326357182379113516392861242914215102715656291363738959052086899210940505638967003917733648339564542074437071635296901515262138061677515003577014492674829691155299104580572838740732308373450857571029563448328996456558258232126891825504849564918914970787029595902829374602461773753592920204062555564438698057226872343245838614081803490239420384523751935751511247315440035150052445748535315842189221793159700899813902500180399872166422337017968831186482359445141777466723642451972719106694117262634717808254920267389404243434844515913448812632186504636889317618619737325761374728848010517194273152389152436819080832816553180046589798868426749931149680337311705218106733584033448690146547127630545039440904856890405833822269206404928399951579090163909886753533972389343001014917868491197920612293492856452877814941045964388029449901277757856497953396048749395586060756585913446736601135018406944655688361585720763855974151362157857213602806496441010861286676406401972150662093092474378067647020383978670221116211499407044689502218391333694452252425423180936205750788995132385855404319248585860870494977319334612860163672041747166486452881324321768701695912468401719855455011672283417896216524150459885729716833532622982467934285519539095502124804063038011583972664064213709266372859934893996971160473173376793150319195433591713668692845913291115397127810259569239981208332376098310502364508356064477997693668320349197679168139729604247648379173831084692385265882673670893728213576122807581012802178380452933042156416989853816630310244991709364487462448976000809332975493037593035570353329373815581412814325514243319935294743796745783782529719835959485692919590752150758791519200447944489422687739676151266619442427276441188196778555671510865870842711766213661584644313839671185545362236452988161805998031774708667960237674365828010537081055720854288768570379651299965988266487723610923232279610928696145359404563433303212166572645883580561573940872892882873427252396595961129120853253421242560645946413431329519719355210411422897278270161761338700017048074846324432433090251033209427126916531947211088318074033864959809353194587150642488728582122606329320192069811816231106226582593101535525838509895551538695558397275902300934834022647548955553038648554461922277334111658429666954986795013532399954118167141651594691682150265382546602214737203014855862992361622812800333118942098941783979266891177933490811743355782516067712714358163932447876573864051455367361050640885239456407938687459631996509482027892392905178610318701860200284985301382577444085731111763805695628683931233577433055310396765142554556271680572508984313894502945362769856886222631025705856963656181636738977389729554213458253499332891962040639832640834690836139397163145162088748480353765917251795637687092842290899230757628243277130516576638857748819723340498211542738638896964516744759474845038880863251286087767904775715531697599501627226948913622997478228497425436764503759189351068015466304451786028699267227817837674468884880632877828473333467299347225949360093902443346698458808199125245030467303040494393527198347256135824183596389734688865857046979050474413397425579590283146511814934561612620184273342307004769765018285868951120895504557213916471875414928235054745883970070380293140046381398862271892123703178698709420822888963296413113230577663605238588755402275473013786916283856357483129341749148987330978731039476430692536137134259895054996093502061840772415088168797734125851043301701520373107370856680290446704607991154819214196196633960307766088159926958377385733480327087045788989216564029262157047439377426065172210758566276327635965657515542031169813909476159346360817758415378847080392567910019644487129341451868363911121861075951276404387140850809699504338425300309309996996645337687345574913707681413107778422049002343564498784715924874871455371258761315858680038046187789016278113376188446205121957687858762370361947185404159896526406645352177213197236370908275292076208946186224858802930442118119848147552136442607470677640895326124224590009482824706664664839559525187168109338404676222435840403970809885686729899392778193306321928384681224818023411640598922775802632083033648406034960286926252119579198431290369841663597833353660924226815526462120315784333555297745989178520801666313779738123088139042011221454670124975152155068180691299343186401989773271538673434634879917503036485824033399897823889624129632991805174755780600104770620513822275557198341839222906111796988574186357186175366279508788906588282231461363671978510925276214342690770025418109966283743199331497871407870648943675172812246443675716952129123237479345370069297650664680161828783386707257066087419477605599686711764635626662171917834011996577310329087111332908231735920235095887313062416126994772538476911164503394396466007683285717317604011727240645387542420075548443480160358710082652698102630155450795092366052540040091569132539224847042732820133994970445332102207455801522326625339578649542590521636175400359403681197657210400068839166566971425970200427706470756807832135717718832665155336240269633406362730583303534140408419171409028988355722570451785077481340425225054688167396543471379000890068966282412830562224170598594195987557253116153413759030784219961783596476861578275908807733447149802427208215542826206333969673032283538708228748692834972217505617689355902832688929571663853325723748688729379739383431536542033918504230932745483512777050008153354972301091188473203460975725294909274750680859941153218055410713750404040256059438673859519286273577036623237223743428402663064949494530235974971130337231936760566875565323608551915842130404169783545061965480152625596946353802957165255873142327618683571773409483494139265071765969351372834166997647144105908919303193581877933449489247522747597858220644653713996289500398192364910947023533411507891711296858120633399349705277157500480948114233862240036875820538423456524387650781069157005463979433722628170720382382004005517711111507590997647244898548834788083677521942793616978659334248706147475750115707192785548424414020665351299387373774959298051686751959751146210124659375627858740836841125148740879850321857472053680248507238246496455267200265241247393992817574730617693051120627100672123224879467476572313749172540688446886681147087059412313797213487518890229691444836059495325895958304674508580174501034176200679551178368032351192693637040904725691325232924649148801576963353771436907682050786548097086506868155306719444335225320257363486569414810808320726339922712591496363937196969543247521871243049650424509791860298029245532230023800003261485699760641110011798568463181938735281540633551617222121294939527965022053965123359574415959727739956192766082051782255652089580291591983722866152352203326901673295224162410145279449209893637387122722479632562805755341011885700511966024679044346383239069496861394470539147409280971755220363706373158570397435456495921459417706682067291636590150778455763948455059928170521480071198178274792439794197181767402010997120990101395651917767604181786020469425543332012574497983865192607995803734854488479637203461620282546845898109487455459102865205760394664225499390352494739974126105337142588706957882276791083914594338870503854940808582671894402103439837040222383060953102619912026099129541633114834316520524540448223463212454832852479225902318361639161767064461472853861308117823105725603324668799646750409659078137643406917863865338401649277504219795408335820879804648595475532481975828513667422366858131409143258496832603491442109850376457305763083328347760754328435106323061566461331355044852645208381236895632016615380778763343488243216280535393824119684695805102674869332496273821410838387198454951595294943338320536763088402701828627717629032576706216117163002172651856887692770678913771472307214828614871638109466031358723281828309798383207968050568794266389231720338594994840795979140377953313271340621106195326917555104782773532596404830295404728347631185019889677378917939146356078569816013764468260379602519226317932903622570522312739865600440788622799237816530565492372349364152357058262353997015276294713277188212878395574203786750187881914307475064053185307469655546511918263264019662785242948650176478853388279088408802045309303148043643068801534147742803769866775501424516925847205065047694761557810012669032596736622999310959072802504026203259168804488137635431911223004081757254047186089502545630512290935460964873283337088384351517681244976848151394862058526982678108699259446806994585801410541361136550276892265098619136332132721145699500111659627011540606422716585916969008696733729067791910282898152715271963379541597639310171961664239540836990242385955452811543726154695396081167234480548324404961033856630895461018759093609516826456927709139971620420147620964322092685439910783260797970438788550573864429175707508153665419850141572303929796973910839331111892621276537054659288064209373469565691173136524448791627719495033364788119340627552836904018764084663729238446027249288755160969842486919357677528704892659000932630092771298343038964761939120643030036045496040834822022575739630837831796867400923682326709198460276344479044848703197776244376899772816117822246669760037000120271611650414267193001937655521890463607136777359389145288295591697649223083835805728088954631637591009646910860610668019022510081559085057190891832371353968413007109876833521283321448735112119329356179942041925988903474614394399051001875243382582321941195070026592878221102637415095603438028193734249763220082605321952048249864043323503695994241697463250450667538678210438092545880179794260350349325323920300809816822252208954485436658061013101805892341167731498146842014860632778013763698916597829205065916264890179344038424278731718778061193577379680039194013818720139288494348388838661002409290249268831137492844512700380707739545232143091849228559386943209698217112449791528805675749225627787777663258935740452852766454789246519834447162598246404662163345756754266346230993185868877092645965736811401193384194655594589464376663574862671480052604847169745221417128854459342984490491263534143206681963704301060452782051365157359888233411946421066803865930849104161149308621386461589042759693317026706432631370988829731844527539891450036314227608916400496022931540053804179094125607601864771209893124434630361886301834462885090387153780067920668274437650022363253599387044100876008852881285398381799796376629435880001444694868070473519925997391695048467931891723165482667553990114735879994019612402575481306617839070876741126310560783079575065212223301318378806234641087036693691828524945696403915819550170264018331810123460987297027332335920757610180945759807860921606433603459139787138422007192927135411466161144621522087534590029410433625705859259227248731893991893139695751508872211121188545996335889074545131090770959661476137125427119845918627911043622443019357949985181528231980101051901815542241893005263082798773615386859656208055310474128588520135589681490054723644398147387593320436230555095458070703699746899494521469637818718615498173294095356228360773309966649672508346611759352715824965738297823500173582935072943765272282647254934111498635805071787224404582065602347173025652593637306073025350192803242192702946607167787996068969352928742101144151241268069567814433489408342232647396168717637686094292094226131381805015086432901574149966276235238845401757494470096081345718603133522479313950649292345502631361683932773382930494236833934775704200759346734784239085440736605466650316607648243273268415222781854202684724042808876060269910210215575357051429460913429322373962937066087723047663342524032928639576655292763914245649433987684541015916952145586141510934646465320890480460116820162499217486600097349147188540445674125244548473011200162567451071162687678708802939413424343223784838337466919369113936093752962578643769700050177546239501330284715698957831617460206546976401174290889541342602979207548416653220243356411057102458638622590352985006267610529997618356103367640953662427244515399172532553303268868409528995431526274863339786740081143860865068263924244198530700840495316604489073625323411011674752357493450830615814127899809542173998435340003634745940482600931840911197698498007259677643591771981094186662276860910919998600582239567562089684607209959297871685313851166069716839200829099715529417979108983420552704214864624746715301126095288821449107763988225187046267741595429373839309693935884834545410508496613038193831001465065350761958114337263311608006907673700014138735629344726526648710012565005613742537961596819879389030000735928451456587960576989099542059501071852244308086414390354779424640476619234906808728032251796430417135279412435505073418264920524010953142816660452846661011493740963061911370795356474228709519790416026049983123078748425660653108406488794195735575182059220474254437015858319891210731839622773147710170205818717003313597018540763353803837802772034346859349578227620970534353466732401057211945150966418324762715034228254002750118520278002518035476191253104297709990924143153122244660277123172784240032052402967827490271696059873222396056869875679600580698046696150560747951122593723005871972806577991868420662117834769354598897709144458427603986820212294515707484752954974798350626952024428441064750243276594280382592348667992170875985007117837275490722146513405758649864768883492888616576968393291090122359117968465888633915978622644922578580770416479775717731298083207452704017190765942749959127330676367521619195417488082798075569381177999762288248830497717860668700067290546354019969028655213245992162970720557276294488819003122031645332225079116607645407440321119941174926755170958380781157830566887330678300202892930895587442850603770170778762805412707124004894163821161396506010204500796038159922671583438163275322215136143486044695579390766894722284099664184885418188579626996543353461722096771024718667591411643995148637864102373328291873062009200606647793573608747386125084413391531340103751614048654077519797612466202140930157257997474922446993842957051468761478502064005239409008143746631203775188969207063332335414970836162437039104244154851095416815581776294409365850507496262257435370420517110659006903905018845230122428337898556079895691644440328557608222904869685149751493333777855117979657080284253974402992783435044021832500362415838336124397063509951946718803294916920196940219752141669640660853406694888375158729773706254856475963585277797289334648250526095560595603011826137599656685739628328934869149991937072677651458727626516081934591789427640488005100275603426736040403668516127282835758045073863993769569998614525910544405013771336987015405164637843187418027183303065863523487462887767966606335753550147512112736610565786063372024585214562872792687851607475857232519335889777356902021506519035478689715680130326628402592863378440948697285064906303736107996817428106578762847393297019412907093516328628737052922460766461956096361400273347337933175754328308747807443836931099300130974519306358647444935210199891528380888784362053126145384906354612810235803614545119483821603809084840609542177543513507821360841198523018542413086402359919087307571324320045328568969633855788114907583162273181162317146547860846509293596613737260411222790967562585692575493694763490261029819333058459453162829973373989629951480997413933608470816812297059065520174577013459979345305291152275469037837412202983806850973022732764383977436385764993688678206300147350868394293261611633548002718378037320493085026304434494034665725114529603236499790938708953043543936809149813739568987074834019613988665794147782800798071041311458986019715641048181750570546430134099856162592975212589605159154453217920486154963659263170496317246374355607462819690015730731996952670371719452269484986904888468044731218306095148424660696788400928676531617656009363212775594795427969176277618779267910021608872700560562534786212911783735337546080834618549749641724382392777924652185685401981916650658514756617463296492196739028508780757639535333506901524431148901098725330054661899492707147131493296331826502944495498850840642961797179878844714032810963678944702236850715542643434646319975757623301696496169646426858391061701127954883024941879412753236954488777713372365173229632631598527882195347208410095929825251068861246157660716958777749632083677522941662183172208787374005604343836310353141021976548343658518861378755116615479986943344189933879638799090597630204010905467057549076858346362848581289111464051495712938844816940335548237516543352960888145894756636897765434062687657063747529566886041152996405704465764404847489638568565540513820897869706248389156585579059239531182300670263570383859328224139754201452141948691608426329888050065588050398938946420816531828213792456318248123874772501040272619740198034727456056106088786840693323591110762995349215390174724214224640241730751853813179969286246500156464473863278759704381299896635504498767498869920832017913220732809817528311259729307846038630301368140069762578330855673343716042077729998343619281393659737962422404300623369649338211892466919138681665829541076135191447011915903500689168819255908040969122235993921255244008086298621295346366061230071087435851667788121670378621214096042222118777406062422795742322315333345243975842066897596094002118291143315225362822591719167610771959970284095085561867987721249095537221082209309957753126961544850387520050791969155071595200214597896942533985409580988583812732806946930957473043738976951463319810676394006133311187594829808618001104886257608155648291516039194955051086865100624770145552459244459045532511626685822700707348719669988086745344235763870597527401797708803348762850139241910161348353721176029267203718370438101978148866338942432182433016614535800461820883266368023542311571686952942098185297028174121378510434554061435946146894563196955346894414727742669139864043013585170015200780382778010399095578725936981388944577762289437641430610219620073907437506163908337172215623009549548907118360030193781712576774674867661941215637259579691471486453917201514188804271913261881416250025025735647479216671991573482843182796091461593213665337140549529433158754331389349262210096447382208321579732642679003382336145367498324553368284256795751914246103673929571653067184790339136511264328480029652670971424565243436672251709510800485532270024497530848086877214064807396705101332593685198277972814176673941620433995924175035840616004532385946375131512578875273164899130708380288692183630972440845839441857334559142884133429170044646783658118519255404474782238114502903968113618522176376478056820241556591662525623499267341621375730619679057994497822152114471468424893828365136861169817443194520141731410893959566130793515029081074730041252653682176490309521053622303883648363579349676016996327180842415108496031499313858235019952083715388000058792346676649098518122256809288330765922490273602824469111517130929456956457524288226256338008911331953187670230678909980151124923174955883962583713003901791134242219460612544739165426399522365964490608186281303797723649819499836991875541878716893289789088361148626115589047956487773697082242651755757680508084534293102621663549914599179689527092857424127713069348969537122107575786713558668637985841948532681036109532801091566904509088558654865768597442093142558556352758961028773843591357881897869099804500706886847030878006906088184113555512345811011190347042914620214419284880539517419303999533013395184778148028977494920393604508513182638291918836439625714794531137020472079454731305697119310899537301801793674174405771993145081892424781944709516312673570635131011979691403450041544975644553432633227549791799587747971773693672098465835344868405294327902317586512131371175447641055185808969069786887080241462673662412740771094477271657321284067302686079061120395573193651349300907801298699041338284330487592965924758790319265666475570183729496339694086911719708947128211523316079223277161145978963021252746277104986883465536567909322270570515212441144259928182533664948584510686697617184660589948853501015307393800023067928320567325006429776947081489462097079688780662247424762491684951269841840304678604133800082218849949549790244787048174306693832568061361451891495700895766488579907074265097131015937135824371602839901526453931962820858992284748230298227329372782660699906283731922103984830876139952988273566662220228659277325754998144618330606567547999173076540769480479484794079298495308816815694179313714913045898119859286612303265227306306766761937723158425642654446142542153827834371671459455671646948031716964038452453462614734149872428974555647271596340779997407206812757538190175140073632266406271870724606586082970183857207417342795151666361828096332144696218636071064941574972199752692938069895369174079971349160104380350798086922908294184786249064530429393208641407645822079103701411380909094142501142837649679812373709872363993567705989622088151531792396386997754341325158698347011788561917855306581001939189654010644788468246396666240656618071764543521890256297464123135918204786348844334316633469780890604562275863424246705690176900428984061084252997424872333369891877947394986597518994309616450307083191183603557772763128418538517605072818958074110821032756820919932470327709225889687683593202747375898461465759712164991266830465366469864348033050562793175083259253705537162422066232454162868157243522995241103887633183699433618271379117456141814047608568400079233037615398491339567967124220345402933101334960567497788517817285354116963491637557203791662623494782521673183786221245282196586336264704494572726772944383577320637460127826823575596149722810780004189208099124455431147077770159327303063546220514243256443897967609950432107509599160128716325496021523631825358984193733618103662114327478286618300483353116390538886470943160058368307825903540474797389170083552900297322312702774397812031696344925480449902119957523868561445212922647276448628506372069762091834842335600965444033812700385756279425803161920406930879077656069069101006616282999271494078512264612436741338743603901089958113312808373286694424292062793834692820639484345671719959854769090790954641513725249368598046671523717486698425961290666926125816524090057336164096891416228041427206035528818239168490206006919517325100944332357608104895476195481186102708320120838570858028243905700217178819852710031948779940886500634561398539653871810020330448657283198360651721229640955855920049405812407795390380485205148059420137289857203083792258118124172168231705875722082867401001780340916541495100317814592201487277022842583805186510577386403012141423631441318160459444518416144021890122883536297817231792309084111291089525041201744609198198208028493774222645380521945070294971829678037898448106896095320165372254645933849204643620541389766410486052329442491806639361687526595277576244670288169934943621470337864565684524837901431375751682252698830428666545230761631416984196565238071667245080772352059920457338457304059921693067292329823672653716473314583701851201950835060016130523465196265329794034698497451629004725187237910639705691904133655661053758964458923681241794529805479448561743966365575602626991392325957703127797317544773585166706774859918802850498292038080909063493660726600616263685841563648512954504096022902207197236880087211606266274035363942520358370302029984566811313697100993107471593096552655077720080164189456942993091551743485094072688961496360067947522088717951866814784815901825797922581322530036214634090628897679718903162502984659189450930356448848353445991459922811133007759959185205400261228476728831200035074354835661751652854228865447016085370589662969436363277454981941925746241379589510058299371818359205236744076626384321930250564813728988563324693726383272805693626571839829855747765383048691213447281800660933691731702288267238028783324398882595715379156948296830657146971007584355034504344823257690323535519401117197948782616066878401405530241043173069663051169726284479847591864804363594152958168003624375722114727732979371757661865752358741101323864768063678961272316156972360058952994690599192874203656333298337650701315330541655750508618986294428787179472216702245838010865348322670163899084115676376989472095527015386261198158563601106980380199328944250406168408884218627189857170560052308787938643022371313868203093204084502902411820692586494866843529646174565298362349956143953914106046609588271466199593103761987855434249433738873434995819219511419350335013350808036351174695369681212048285690883986048632093149692984827813946143334384499209014583567667552868767478005816798704888553885145091389067361049041960198815322517346777023857326247218222849465960540474359642216506276398899400010035155629100492345948623467376337429055384096600526396146673905227536300784712534045591760457278839239475538089661687628546897487061470286116264358768020693813196182443161250142743426823800217031603594887839857978434307334786842418907814901128839644301750678963337288292489099618161629859032742641429729339886972661598090094148436388106597020984018577542857809296984612908751482940677734389869697101922460874004640760832373083618242153486966723372206708709818703786375919897608292079899791186301808830926369877435484843411909760464882053684790496860319855720515616917223351059023251149943964194517470723145209709049560668821730965846927041905621876262164698814331428810841306014263049817268052319399840912053025037062095467995420839723393668683965266301737797710277112344575077743577871140003549247079179186244140700566004529179714447999106131360492733117963413513838061686856209444726302504803434990891627928345458542419807550782499005965250542301648741923380196923927609016797237362150334359282085287384000905696127332611454416526857756203635192345856445858731222719060031455571360008835241436758491146968849562640351491045742798211637310862696552536339584858116759196952250743828453500133059041225888695473737202341647204001000278127503280528103143549034550677794478037799498518774501774356647284248084798037617488158346057763074739377962553630582171482955458498809570633428304496726037526847368075964589241440752153761480846143523348957045857909210382419863295128545072268909119106744420664557275799884505193721883323991992028511778076690199637735688234350724491379065344398652237127452933152554332486978071109817477518019579892718195308681413485078850177169473285351733356044590837105726325049057969536981814096161994252311941866987647084641908006549962914011412573600037932214594102031287116070552162508620618811899670166452673804131868360341595090112650559179575420500063839700253967350092405699985148879407603640226543041097238173076861318408933434424881185453601843358526421275360636347270959638737061381035676107411405974955970352057352124584952343817070372877215890266923578379816393696604007171674097694945533769701335730155867330810757430209440064456261608726874151933898455663379553277696049074516628510706623486646978099180007483508435689143417107975318015972369345486466194265065581145556445691722403146855152254640928762134967176520062280845695819871091697614447385239889018934650524275685673622554357183874361745090897955328451775896582862851934414228857379658771655234089098122315171658813932413692585983114035293518510233147986185062918807387087930218781627829511052472906851843846400505520762606709386872023618709087486498474817105555444758522257020643013365874025534277735940653275078890878386550385549369389302281839796252335590158441426758169654462853076595197980931663861280547012408255250282346722245677141973838359025974177254050377400541024846399793717702812663163581818460329576525243879135066376282830546779612624303175361077249879962344893836490283207475773536746617174633129356358247115551609292161181093904501112180434581134345808739245157220666380032526179497775629549771415035715534824148853733240363316177623025160505892665401003107082458899401541128438079370277923497503367324713095001493741894030384013699774127372366816842330184855637977412211627363425850630417841853148427033911203203575193654129810257450189713473261758876069543109431864871799915562546491947931645776649672333508255084422335902977550507493140733840354671427194224114377650568138774046918538560900734433304534846569486112543587568912128483758407140133700808162166224782481652489115623849828581307471311205003807776423391656126624971611339104951621457732613650641865546320542391914202462375754092167261843515826829176733000764714445925893828429782446669291795334618063754082533786867621555382736119465165836203439701920965938169488871776253337372330091136803258660470056321199629369545565308855650219999604069495747669340724894816873844360206616460233167167617688932670815978164466409401871661743887966414167484548027536427976655928486149282053894975595773045828878054632123128667755528456816560627945403806774832156218937896940314566221062350125667389900422459406123496104946774653942177266682415624102833390544546470377356046830525379350468272799059404627258817588926517914427411548990703309813416738895920958925384768406735454016204420187511738645288912688450720505537483154950924577897181884421422210061402159241334163039353119657039539622244418469999520804189624133211304316233647923065166472158094950066136914898020621220022173133930365885729121302705879267091175589863451023455361208981041514223873858900045783517575678514927129607247078503981791537882632374326903393612184232129982405447252421636976077675012048891661739002216309099924876582480542150706943354338871195894777453745555380594582726439672558174154284986297910859887638549350739202337163791999207103483907905625175608691337597940363343025528736966441969833096797951500642257071426526181010404025618005217874954177229523401920162774533956765846418574897192971389022824645177891636125335605467695929388576385378535423682420984770186247003347854559452679231984017924826112341622861068220167681882948908912543023429721946077243035024892350502545403707709138261341056378371874841277088577472992651568191997008676648821199366807314009800933298291216181425803908175220746717300892511241729395207021476027568630857216385440765131869451787430020874872654225712267977968444706100910075631404018726304229808494279170056951228429354777145086032147363095361269132301899037519407803753135695763094995873858983962392269602515805667841916035440200249372972140632262640354015308489774062014668827102553646101734969972375714259491542565358700372292345116243566853829050371890487869694209479611914532668143846245468331733696516721299412309820799998082864107673998992063850883157984294416136576560980266629366803353244722556748500850532390900892867354027020065145682486426764734134762118615315057195595216877755309835418333435844678679923332872484022471083983086078704388325174343327988760375824171892985237240729561157230037375717505605637268957847389804014415418718492719551736878268131228108644546984768719286912421379307603693397900566804312099247989264340975771576403034556472442748355727706260048130485719338153832989929226513486669698559515329361860741659031493608784337497326730317242917518297278443941535818702628787810005688104094150432954717653129521440143219058602415475686577717557401008124461557275425300267191599523365605564837640224535387669266720981525798543534433444434191520918924019171829704486904248714177273665065362548672654546706661817043524888805507035801604523550570716549808373290215675039778825591092622446265929386391671855128748467445378991228570731830173671991444437403189366368592762906295132103300491294184118627451468198402874215027634960611612350968988276366603826786481392816603406461175825162136082849601338420681399181071418056935702179135609037980931307910657461278479081682957179772752760643036296507846261307676261196965096741329020494845255117338104211579825040070506214535461813600091700548810344384161851890178447283057938132276550785738364536616756176969720122517378469197048497776549384355179191408971440701415364520037893939500471492580375189259110297986190192884905391612866392752717067981569963915504614876218559546976834647468567331958745485526742014964752479591839616999095008145984451607045602803669936233899032637742308415011091956844235365464904570538086347971264480333648010822812302146744381305924409038775482310822038449886295582676494288802456160708532440331546168687816839839997712429536952152736205657856148752061142240255718172727991388371033360894945757410599644723633054750786780598208353703942352375235465327043095509726953667237588514306820864553363166976616405524043260571451661422374082152884163366704591938286302161608149108286221450039909050798411400910470883271485146625148105211942168126704673370653788706591084484504392557856688078101732550642537260572768430127478353342831227040598557510348496253008279855339964554149773924425718069221780461925688009091012278571630451102342994417029425533900009279551418358788057061091252929447367522168041970768840310137385887252567322326380333592250480193876789071588743330867260762629740496553812459566797014287209882906092481275300563373266993126911303125223434911654549853835255580404193599753411086662321651021976209314388672829460106100409521782581728623710348815982667024653137574216398356161373898092765812525026607262599202475863400084558455596484351874825628538589029474346718323329324027731650268465910689947701897177636360660512144440270082703156469500403723938238887465569663277306025356606948182713574186455276638516647021192410801865016327761176170260939019916948381519727473812633809251386719757991841793370708628656268005386467227680619142122944287256441749364348668047086134458129329743531394741619223930423041112178114046877389236221136632569821268231961976554927483312803405999838506191111562729360052844445570802911742683095436644980536002865546289857858794877255909492137719505529305808261770418726252343373864402037612100891996653191260001249736957980548193551534091188880432347617656698950285323625672635437408534644005935877821216196329147797591637411706514270497002466284289353475930863702232498541087607234726338676113529232625709979744831577224776622862128410556100016303908254130488555025939027200010674358804167675779453707051399760253418006538216824179994213502743750054991108663360642185125322593518973524433882791889305957758496370236239617026536391208434947983168649967330573097241276416853921787928176968698020077193886467338170728780443887806932690407659842805112460172069037742934883150823899001783172477413196736070831694924999427241003291451914287818444491009706797439278265057657661066044738006292654915425415324400841624335432750954573351697657197672056778102041662424153865035457352487019991251938350585049516443781202718047274655113889051044261030948079935423037146786270763366679427069846578515751823555578959448867335931410387556699230405115814464913387206739675798089163872930543055530556693395597935252568637319758965374093250542070546994205684712982576728335558695926413587753661168811972414698156608596043317955494731430047113447439498202533846314836424294128120797178441440147072469080521819907501848480822418490979437345525164930797312807004452386081500264166891532167146564092831924539783526210181481602647192937018430752239600010322378500097678324466242055582078841422558483693967523366840467720821735682497923015775785464458246210934105667703737688067013713377260383595685631523484369258300877383226374116608721932041934131893901583714263063789419947506339144513181323686418083760786625551289104289097752328418136823110516172689233516607562950707039936388496897494335334381020125774562999882548214813859619449933771702287830645482300331318491144804555896457095248127470981857632979479291158120970571915409142486565954652013091875724641323637993209608937689862253032300718689272802382457989228380150552532755973638965103492235394080882321936166500790939750060733582304634169002041590078534988876729018644289425000031818060660407140072697794593957947043240106599827988971387200033293126263734358193277685633445687778823024998557828808700372866455320821884163795029590366066764553412997095012375127541891675910294320318848249657420017130521354773509933507982725741902017318720378078865853576230620678881153110121870078162601221141885472866256253202481687752918480544799552964059566528407361100379228057631356902689255978477728274219682277733447207423273595911823807973895843615313846366412610148829680092561510089141629142672752842463673156724944852579820718715572226559309729477098527260052445699260573186550428035515221406924934983314898924884196351463170468123397114847056043838887778862386944855652659171321074182609735823815606871406913266328908932814184801484013814099270895819714927377473869152361649170656279737173093602389485460978117298946651112252980300290583385576777520471435157932390529310517541184640290912829297001131691504495523222977246664709236514253079196114074818032650795164889536586123685857403025651350721055737122496522517148518717961621341944659802045781830702923509049247046302174051723808885894105708994362474177405123399319974623565906033388337722896975608303838594705904893061659104182463094391215843707037203795191963674376627054750258090823624188915837830807919847826474321305827082078356063554478499109849300773123218019991046996231374543255640219998178625701577817395385470944035398193344518755427605489596092711660169084547621491828951812850744993665884120390616036170734650217803161578175110571235797163752550509248962489759721507492473698099875493914692268284772138736796459109924100160165506821272396242148489267659889395284600243334524251356158883558373755102312655352966164848188013234097414989097683820776227962022021247838723786996944175365977487720290317160527373498347258604368851480455483646823427553216201346533895957505363114769778444747709998645576330192130913240314321303512014053407715358145129728072661076111691129559696719712548990921090695022797714342606898656616495456785899698445293308963422045770797256131127197179973871279504108034842732621184363405440932222968914680627288242418482097715694151454460996367698856675908196647432618097795771450201688233904231943785416286305487796638322037012239892205033027361889475442494762160712647977079422549308118396622126508349667673577321851825842681873189841426402948685623013109044829622597456831058695114039930194039647069554712061064298389449607627854903179183893478864034821335317624708305564045403493169624012980727218110423571577477262924431932325398264139415284163010745706481303141368680039722138350235970448351273376154731493045747318822976885613858271946158836218089880860072579315409755070239480011158799332864476747905446438619959469822030763959842248725555323325616374367883565255042348258333848242588993114707213437034508242321683803349976921052015263988896800984600086855321818523431272872140637818638748644250753987578295806864832795153274066246793541457852908488586829296695047690746643405998448479085876045957487803724203489969007516785211447390820425084765793081343144067948774751498397129244982267657623535374758642235861575673114821569818594742335866712826962200587730200639045345356358835168001427024806930599170782200021801215856159932436722269086770388191610623698184702188513863664752789355902466642560161767334418203128639133069142221811112085695825215410954535482162672669589203927424183821939122779866273466351758052510743618188935018696322138634591174027620287396487800286560257296940367594365760517806977602318770970141111160521781526447031932793561843466078105625093513377002438737806250896348370660812976465286595665996514979972373022990634981308057263933683220753595337589855535643638100134367075645091332125233397809370056115774006502172758076443651774969571121359530647373799352918673571691221360769050234933946315214197755668659356907679151363192358226259779138768302087508567438900960570178923948314005218724294641608021505480096969753881728957186008056703269163608930409604544822292015432060072259474494599629399851875983891128038131027764429489326409531257392483259526672368710398179440839080748756513324489493280498590665113098627314288894141613077009403293893171500783260926988123746727742587966739980894988776303808880857023799270972704001165183777503303429742635146054498219271627236869739057212396321912282211370770370725788583745220515501070924363907875922033451645976716816853852114295071932771995731471360806989480137299454347366952273382316841968788531104994851276487563624925445835467662292989550837679849659250994772358274614165989088876471028379458993079966489657508852541015665710236211960912747133573891760389207618114230644151438087019128453657852155557390553115874627046779559489763543781543600815210528045167369412590715028374937990639928398531769622218131701446714072960765779790549223274587461476866385442205791316310054278098713536695934804246762054690254666737439772500805422090900693763849186944175513966653850960348506108794991079676084853692601838485380331322397791680884681152720806942609531844834889282825236724689909785297109770891865362192246877839422127345309835426914486018533791697054638491989493497553757195811036348862876971620144719072702123413181304848345655595052427211101017773864428127627432026245711082634972021930974665231731515963182068538804914973403547909743933390580327352402368979332167693303912721345051620313554684139130738054196466673679862445875604658672874959679260986049236440876840574868780451056295357315713744631604775511906750904551143018628968021063791731049720022682453851170064148422213601589398919564885654838636636466772911125893475496370633307599841540283228477221338928607974916236257284223207656075014255702036007593333568786974562839053149887417048656272334839730694914125223456112435117102417177519596310008154655626174482877247169537174774945564197332571527380225226129930639203386751241627942624406484049286126109466010588890699531505910341877270662077598740334846387558111179839878196112189518783835480757677302930650816466698113465317161590458375463087605183968431206102925464033920847122598438157999818763767754788615198029504299962234396806685423863342200953900479940628439505158962033173251282380171890432772390031085654512132717492494874818436360417201900820345138397271206242857008380988210118157469381383517014639555168275040143933749939434964719319765402947887908120927223879218487709256660562825877166422309095443445625381145625869204081337883732410370583921486160371988267545095700814070177964041301573150433478175597062174331735537366409011534092622866208277755475690179590267486443883148446949418748837993523332902957741109905526084901461893496862470693251231787898634738505805502668634803346342841521027018378305079148200306716384417029029853737479764469864157882684161032294948669436298992002731538075413903458760444779752469858273772445839249190188759513889897561867799715289363331702021883596841557301890485442508090302737476810960563008943309623716631205115764159145122571848667389804665974281242806740599408934953522638118059347185802007624009722812276735564651408599661737391984884354498051816146148008914017653654613326432912059998856144869699191483502124666371767674663266299008435668883770800805830734598435749158151430119884952297331470505865965027442289947187921094417337178125169683685479501060163993648576126721011197941393208858252217817733325845814400779449459046606237729202297205346598832671010272686461697612573173298507212680513112824361463590835663022929575059549339612009581470510368083590448084179678822442108236523106890434349467011648677581895847061312368809048681028919172297084099655674058499603582948193023820084292495850435316641698479516107249273873452120392711938942904604453158307299195029323992480168711547593467638576261327329008743125954941761606114975494798247680444251918449059751377592183855453853726486562318641950208222250829222751111643215224368084980679717639602263914707984120028038388973737335435139871553810985130019867361977234231026883721672500696269670986540609180032709124091791752095758935530975417081072231531308852532837093120436683209688471546377505908126309898713929187408810262192191566705242029645977582453968263001932795049644497440203058544032753834609040606737918250406454470245882563011473534282082117607924604783101376940595927321322852204604261140279731555462942750170185762656194618603580351012137706335951066212451351747537171233848087093132654257718289194399756197855947612123367704429466922354171530172041689352442450579263251101404883841224762361765304285550386592277709503642868915004417462078755897913222467954563449832868917092836284378767893280794967033986393506897647803956559350358859777996107744859869488721110156920977755405308317490435594044030931934037112168393045250582608339503457159733827553077758782063537769043679071454969240593248569041308815472246202604164128964204139995577083775346633213720448423375143452171901275544743668164809772553588059550169989962261530281563081698941502088322365917791338825855428059345911309819580813350804974153635589395051239364038105576209622769947205901253079002609042727029989434717662344236404317256943232007547061461208928684120530822758789254957876687679375012989591361424121921112606992037894115404375218838263200900905611399800221463334586458916841891863063260434364936283866836017231151410168281245833037084614828873234201660789241398003206112753322221504039697284250350726025698226076937093377732395912055520301043754919327417716144764317599042454967557175206035033067248471409527683611963981787000069032215314898447070714224490337270128510231536753210177036620282811355977174916306890805114117448795482582821707516662013583222434142646819775982179451382389699404734144699173663929646831420455699684470601365835382598565776652251204943018382980650575393195307127963426889291110037317643157403371164575839950387443124559921864583084553834940705509669804827143415568720391743413070061733713623322637303209177077666242023934528575654612719263673411863436347313642041087780571448173514799253571261066205236070066477795307524203442406458176118744801891484300212545431735145479007974786073472164602771838202001145477801642164856205389523847454672165424122823203131853215645852961186689510420786786950531078564580544031938845395665881116501105092440109730309081005984037835476289671130192148091109711021656452525536393767205097264858943853233100132668639826069821868806242484081734677513612007370811716442938411362088239801610510389930858113432340692770946305579112664616577783605954737162963380853372640653890196087243380050917565211055298232074504951935157619694849776293987891819641661665666706506268398999782946197720096811849266656710478404894427591413835595636162236201908399333576495517122230739381215543965492637920683374727212507107130412481774435362370505725993566622383989838666063412494893051139461154116091500963320152380947282962801339251515836722029207689313817915106167870129116325595885122818253294022220629979371433599528864394462743940822792680960665641590192789714236153251852690621256696656890762184911338563188021181867827571240749932635559339470140938062937509531866012443327997993665235250849006397605408455596067326048456404208398111602150937487685140467290820435485481331092648340678004962192497856935232740387640382822690916262313355063042606366586235319721974326469048154819288557747604764562628482842571105968603891809622541748929169637893778089801483275489644873952471608171203595694133148772917855545403165044006967608809728372421121205000264903995179366971444533152617233058875816352903688348736275868295789798183206283727241662430607774600512476845624595641294852406071609700478094289072890893335761215897361711273369095904532150875747643459754448036251428536668124690984273801884738797836331771287861634861019593367649243510263371918005173839840958280632154582793257452356749344228197075377153978074042164653469383476312323067343914872257218215555162443077062382285724596252918470991636624774224634432131729635860571422420853078114467758463991774004039932150871165223201096644153783012856804139587893079318071042720046047315830992253243425841763123238708494554647938889074718362267823998223609667063032898407721168298243273615647837569885957534582180647282578577703876961660311293048304832880505427589947280580375861217548296541478074528957387169840795515474999728684031834409992047792477366706638301835182285455037776735735096802845250227960243450520536728192695173258042277442977518163536572927447751352953580922473428358290905539261155470389223585436162607344284757893319878624183969281923904766442869856993520219785230268374313990418071948981047513249724292281437827101041539835565214148071032701355255294730583360060605794093307144447975663017985431684470093753807480741223533411470574638780115643823631374396681765473922887958058673427382280957057152272808867363116869588106305558020485531273952922969923552965492794629868281254285114335693455023101083793149964044883149648016782324806545278859461768863955415450319856178281539618124702675054056921620235815000326915922129044425221214873468113216657372597900771786314214543891901394991553512816870098589220120101381114963631945401062394042088211127105821144127195521265824194792482853689659210306975096789986142250148320202112708212296632876631193669182787673940653745810992156371955294774177859042387957408171950244049502783205618607729129029973405997881492538884533281445680910068912557767042139172517880935994176333725940617044013270868836916380589754078519848971463553465635301454296576417689996408381763263353946515024073058594090747847256115162507515818527243232430913583064912268643409071198240307217138583934337384683869018513589722517970324728622684722613595544918295391445310435765963935067255864384172098903883437720501179678330045217557754389597195464041089810217860205177435771496137590743390939454011196395363797422867218063242968179756860287112939278131548384377369212763783066185265221069410305529020223139522761939928501165611341280976675920489478087853701719743792759300224380584981533012297090271275924355587554409221665722005026517558903608088782543283274980877841196260519999042080774516215123819314324446214307303849451349028818551985424350016750753823052658532444799693263227216692714564173183676638208850523901363394463673140790244538399763057113524137357984546474251138648607850930342651570362644563051175383177663346663656881294872249322821637012510565294570761305595480216288062854041666604451977589171251298040593104844118321302226317524872995044467991355137731678158781389290708789277716080170521004364068656215527089662049087433598928248674829447783680472804691301722649811802207808256787634841401156577865275545855068237873749021287088419191812206301536423190332819191435211124178489184247715598166870511383094395061161465748182641916098582914728911704486621994738961026199142587576015808833641163858243014498834982255729057874160879580909782034133713844888203313457135535513188820279895924479517996827248302910564876478540971383332721968754299532789095809773268033492748188932245598432056226866820742268814687723060664784729269357930292853055747083457814135216564951326792570401675468770499693584952307844460664867867733648467516821775562616127938040370544867119840444465740560491122735965541125033326396488776036412263751888962366484363655563066910984929070260184019553949803895085829380782415942900451680630391600203760406350105374151066481045598136264729444723432791738906996193567286440985849719371124050865566110197796552652126340321588389089259173220615992292227187476624749291570933212042744065209575863618292567317797640594432048904103503369896016627750647361514717063611627536099360694936110531614421301196293286476430469633642244463953743841157458044272246618251972888562370811672507363946675197152205791378221624523681907130838998342964026737093664588033889401583954925496384692167045683185859385791043899833096986675364454202646163271776413295221714324038889546729202234173384771290732831429848787159920676589163842964044528289545982938823611050003834421643947706056299665480944108334848663784343758518350159232448332323873934099913531276007090517141930596312287035690078717936790171961320920094288038168415610214396858234905437252089798421083330079552894020813237363231776921182249397116482885097309923090826511647202135132177411139508805545676631369052813130907142847381883157947513323841530406730651121188153288813269538443551590953097275874227722472418702783401803032400488939767481333278345718929917604471939779306806296106991184021182558054570907489280849456117823898254936480125950047312241220286989735393334315048028067984629418193919690337825271865800610224074879524118788674824207978980633206030895887612409632886312998643950940493931358148061924899286483865517524854251885296422461592974008923002393646907854165693394655588785160463481961336312438314846664489753033425136993898298762198140213831610600003147824780570180676915775725558925859785151133560591523655342107727597719292809434849771617414555406106451357157795269094235078257577993130915644951984139734121280969795375957692339882453929603358154256409857746083775663860412086850730655431195085027717453733874634638958170094855116280183673763267314227810736094556479165983451239514396954271679451480781251918898405917833161005960939182771403304041051470450184527481706859973693623879752940887733238506289269857158717761326584975156089048499288533829183244503555620427541815281418863336741009007492885793100330148588517313640776140060447083148278924097430804231999864754026804640586167650995517630025677106814278162643063133845804677185859481165690621503146423324920110408361571891751577695865092146913044781475604070945885795933139823939799872565842311286903559643844150675260124641362542014431809240027083939450398143182217248172069321213597724110437162361157179274109126721798492528817985864822521231284915194550926279593824513239618848115864990123216936790212000274806392352433993956165517172302880103496101985042042662759182007604466498166607865876576631504011767856617620662240327399403853646119233836771372559248132943796603239660928653990138668731463105575326054078465244412757795782533244758595561941837363479436172839402530597130111794084870714826718476688992152506337423174265293025493347277442618129350449495719451141508517037694654895024473731653215129150591899858699080962911491002420631139362882032024231445967175474144886901087008952364372377237731808742206638067541275817360301348640013666589760544705095033268395938992656720493888277911445941656896770621830161612098575100940969179778057640835079187972360772797812472632459767273927905924198901527562812025172754232107653518709545407259366699986355936258309801242830807397798508939570105854675498829806636207026167805424898697169105244113367735164787384087080708466561897688027111885121157826122161298274286299871384799806282360747638915217003585272477071985371539999314068172872957328391293020249568280074274854004026809522356385273123765228718699647921895864812944029275588113578037581265036036703057973187394737718414612878576093141844066775997550305733455205802596800796096898118023877740134114644524245022490566685161018800341100779836828556569790035342251970700126018800898845706243185543135737156772049124121099340317946874218641263743640989944819078988476023252001292568512869312619402538060181282207386667115039146023992733324568243579050462131825241693049813029658877405133430912969989510745668380361478322001702664176729901938588685448786976329233982591730942165396200970813260284641939265914962007084108711555148792872326703152510303707158070963648398813827320464369723680778803642900539301515919332654312580935491525683357591518119100672025984808766385231764439747859042123814195877227290583069304662313310082530635932874665338474567670057361667300630349381758795339159061676676800047036727392026858419078065207230695704376458412845673600210030143718249281274387280624284873990394256373851158832590744258263233875803781451085924273220221549954224422104522502092011487720400898885140410136400127505567234168713816745531303636055541701954117470903436632104617469704225751771264932567271536825742961055971020237748821136973283089461901701933482171364467049157400255105731892532085743184228110416525467895103242706635790028014582939947948127090122472705109101918620704505347155201904198538807717917221972477316459334434112389225785926085176396912263065717424246202375536053247478496255627034486584863302376632901464288578343638864833077470405179063719115774085300739402070230046347682403277842501938624460492057764197200266720672781500581735853899363754809638380294924587420822120709956922973333992832584352974800646403791387294451136336933222574450793763657901326998165659513109177436175870698429883932697039041248582685338218176522233201222882471238054100927662741393675642141361271347036665643855045741672014450708349593502395409967722367034875065780142170775536862361774279223414313567005978968793189943785062823469149287270208996232535731993636647393086411149561706689083826897329556671108792013576259169426566896283626288904624213899244141099211697450173707884647544952655536210836127995350656639684926994910838997074017279641903241715917002215420810695927156478841579189709158063187955629500427756678093429839465107992743857657928922885657502696753002663897819293264709618539463272316979365307312892823173873454635735844402875224426362030574683530266825961528943167405459662746737389357541660190318816169664276021426967153987761097208182971441821471472089824841896023602314661884247108402100300630466156047197833717539696238080366773941992700218534568749283645760743650602420808539097042922131106286116030327886850960579002517631927291452244929853956927867466231929446715593798510536356493804389451463034347042690196601358167300961130128978206757214084716271691676222334079362180210528312439925537995602870051649619515759832317287974305992999834655145386732665043542703122094711541547704773441157645474361384405357451988234402775695797649070704745750795594675211485654443312762127238293407878538612841499037628210077154639887555829145392736908682047062441841513004675822861253921530820259701655909068471594470962383776867326836662298874106732394842366871618763962946890786940326165625399014190168671042481661398284743566866779385533679914267740773466376515363243067260799193429066417335976261526834557354678201927957358800710317927069428498735466820669194598550065798386974028884902341185936602728485299234849530087152245154182640870026398240874899595516320126386013283330535092043993771464043366575701817378033708498263169912107845920217543755922190592528919682795453738033160161627486606803764127325542321893483057376858281136154553933547190857729045115266075472063678491628436705181649471921964797047230042069132094415060545357163852266429933628575155037186894174671548346319804844705819846495956085871786318257893685302476066961096591696372004379585494016781861641599631626922978661564361979586648872162934167767094816761193695007073978483610801162154260069750443477160128298972481897245614126499930559007220174728761795870923564487413026230266004097311745549688295519305465106122359131475018616738092313211065777422529443799277343795009102129764282734221624460414216895728076334778470545894552463451212870000559858127810039252201031989293717902309775990030323233351752769101829785921692017319986403575215245931659902472667405496537565092414642216742975778135688267013265086465042134101268773177046464105213362333154066591026276943770824203878018585632622508988652637623588552199838781345179529213613328766703147095415553615690573422869061956913447621753549790041069516936509042819967435162322837293192682779898937002411560702019796037783969654037203815474698862301445697264999100630260051271505064440793195062414361725377262474843362744342966555216302579865021908445610552474224397982529919466276954599289878727466150244409740417596253089555464376382124081009730475580729227230279218650891250610635101614070954313766738829384787573290908936879399934286927559262487452326381180947454851592351519376763438350034556937007137473457108678645658391278032636189520308841434919034728100980623995797764396342176701493061211589815556148557057104789486589368601006538206521950759984213377533314787632892791282948452859233288368417964513770699976703478556662060632822755279473520166017340736714708453157430268431556910220328678818464478332601460391969012490715415830230751259189242289979004697855128826908020966902800904023924125076228833635012701130802642326596301077016376697244394716965440127969833339345093435224396013929209286762956044660709004317060982704815807463248323075993590679663307385287690215637297068002456074709074194919428629563268897779215150699227721006484224461657030934164876897262904087072772723145802582976013844755237521411031035786588600991733934225185612512700391733427836998503853687759570423541220219297997896286182786927501744486101791128452177652388778215623502521559369798706392198198392047186140785959775398963342500685857676979965431268790964315423821312092267532597217324450529574499669041232943086632942233709281410485403571530810103608050113369662727471651165503932206128368146106163753432290051449354361215556595590989941957971166299056939637541919270036830563524622668260358097222198396983432473545789212224099611063212318967594076476023698640700161053648968564452992541249168362130480946597820052721924937921987961999380183710137472729123141581524751771447434164393014205167970401762904769338353070872909292770838921758887544448163794644024740812943258717553598068718074689432606561078007244807855681596780664764097983736708683868701082125695766393311931625280036101991857241508565786397979951271071872978047045136727832659400259908425387982563081101394075211877306596210775499559245408368959737715157295872568538732675731443995913532225885438216064058146833726287332171550476808272877729904725694648335410413785122685240967082194808273244002425200990918326082537795462528838666143732146780011824911536753410742978255070925417030767591147578787385324938781711872788191303120404924855146421691988883058543438128433755970147626835944017889274457336179377090305555289199904777246656586851747135773635743355164948666552172516120629726940448207351819597723713044501048786098753771688630947814886482564741864004731910881650729151189301494042416817780372615383511383549199447051667645849980968500661293217158499495632683680309457070117891077150531731861623356310594952954429010624377822184334289821213979329803140655193785455733493282949680055007473925019113656705235473950316289993716740918342304728003595602392457749665707091543167553506084161398346503718898493071793046451137730356271292738708310897667880834193042777689649957081244919735997163473680712306796895039039530501430922624054688211052137389010832664400239957405634473135583470374031573319631109122272739690514349691269308048836834213607910372393287572266601975142031745770639990956277767483980534757518618161166367943810881583036962937644784882395799252009035888994217185861327010324122011820913618971389593148707924889124755865422081396764122632993590898522164565483419354480575992855703374285280507264757487212277913479054285571604236018656521520010434112164018111960065265905550996676356552019033322506116782988887794470680511672643843979483966392381542961885990434070668644840869933129986455753240778914898152108808717119574052781070145919742151387469916674824628713617875570147120691186547224719756365929086189801542540306430201910331426678403940722416225690658486800187164475317533800527325377285143987385575930642502289200060866833536816803347654770407502191183673540560792313615651706446931680506362274420086317249855364247842079632867055711754549474374353598733017257199174254238769720968961037042192413948960767056364581948532472538223937846971938036997976002738613230007932747011994864403250199111249204714007816177735255525774781431522302416326467756751168129720186864745723614566213181522007094082308249830062764935053100275494075949653091998343525829921570056148690840857908524861570312903694160888391551269529770685168775685731826729149706954557678199638726944574706727333698962039055171678567830509841336851354612690370900997125167806276778656187512290750487352512646214005067679731600922830733706452518759287535502442345481912241081231389148590945492758395172412909833042960842226563052805536766333567503780332829883936712558444890675725751737236695761675683749715192884326031213254478427187150617534348456720342943581446827646015029776677035532993758063637352449276275557674655401185422984341945005592137904688959111914650320951758054080844112529777653878631179144883087951000638140857652629058659939253767229073756073873114986111564562069899294679625227501283433816384057253235209914299990640867618944768494470377796962817044563479608260813231476426255506073406904449691269017933714923380334273537902721209585301597738874779977165548046321455478800369147642135555329445535233787747584178225890488614945274661451169502006500326906112097012290082172425998672088496351411129569580314261427187218966785286605751191079208284373777896188791462706997745973929761276504420053361223935781163388263021121249096927418023515858583458185906563725981386803972801325065493742189167531030133885216866244498883696772427064285594468726560870117617552673678697577921104862334361457001880588225721234006838092726356565187948133448483429243468965035277637239562037938541788326777529114215325665434438505508316373311751372053678155646148841776201747014370401352688046786914835520672739548760350800375218725178557458258315962318823631848316933356538881156207060724150126965376653579818041018816377222148892007169338098240954308727309751281963414119590047469820188036340861403055185549451747114112225086756194801743925784974813350981031092578160596393150238622490420323872416881370735013980244550156577031899293261909794161245211564981278133861982977610444315751716044982252409188798367114826039960090684039760669133464751386657838310526614115401592250416715596365202458507747674417534966371050039579311473822291788319898746713870307142382974244045189860141420999271888994840560966951547635554282973060190324115706990331787518318546030171570128669497671617578771619593336453254643773878884153203619357299058502878514673286807048545085184373123106509633626881116618850182203992172025369387714757874442832201479157323711676905158153370627828427982280509936584073593207640932462791231698988199985972365545349294132540535623313596705373203792901299706727607610618292990127513327800814757663798560558516170163571550593603330765555475011725045594054515660706820838471918530461051275019721064519876040080300423205171913433575667985984966039984904934261111273621556052066082776251809521281288677512596519975654485895427089101174680287034843513808164713064406260403029390752012675428233176805094804120624145346940482419729003787064827155655577398999553132896286348912797875067728036541325407372899893250694153795408917087532521514900474108078674789307338100927916755924427140515891463558055472237107164183136297489976530899344307825754404757255880340326185649798482720417429476102685674358927391081806878099863156194499029021529813419858039941542734958457717328973811070410974301441320173645798570586504086804682530456767218120833851263342934900795901624989072280944360893428221041993947381333667157885484621320117842260856364877674283636033687589908691097005766086225144250634921408772427061506605610721884504396638005166824971180051332612638530588105867051228232381042306140461299291092799779211752482030720693869399633528677984866757074753497951227262989366287858915766166797786607346567218289722889538381343628605696006872168104265545639362417794054022219440967413920960197709505532367699782922160029032152573131246208343222156092904128831207721793549568608299930677108105689578945466914756170489580385870872067315797486094047069697277260637853051862906556855725297654134362336618633847515672009164750971373790672771072320731097175265248021716438874615103288468305856080018018817155773491854376070255668747617823928135848000805165430415198908260212741231510326441322449704760819353917898819480272360688960907623741321828528039951785013366832766483760791737591665328673068112458156857001322222185113632461347020200339644340240551040112584032388578496188313419870094693381980132644173333355782950043427812493818638952897595087686432853728511695938522089134548735331899413431632366271839757117939552367155275292988904752798638882579052957432853478323920252762821411776095207923687885611928715881141988056266854598416973171866887180620503700423556615554002884466073084651442929794695112038675989439458448144554372464855026627324718651544794917007586368415132243209672086212690328208214414378701034137483555889290540921332713098841392037055002821965914057171160758334920196195955718907071931486825622747235747353133990797457869160114469987473920222286130067523940415405046198198740851179908755293180387809783882723041271851950918856703869233039299625377047329411013897443772780416856105306388451982794992273582623177570700633929977557380316101109397733382838845921104096408662828630072666650815546171784614995977714720023279870705568864123730515108496998369536658756292072638315419774610809157658278785044316249982982332927611897152797996947352606242042845069700566816193423664506229435123211661316077630866279217602157379693632018860948764591311021476470519185670746411665559843390756823785568203939247427405587477153282706257787776833571488707337071493585922145073063206686728101058749012973926698216904860308540507248805804122716850367307898758963638078232181983815752444042645085980421586192123023500021771432586216975272215857276580664366783305057293512184961283758661966651856751546259557772047947715182888798491579055342009857879833810519959970151407681214633023868994366219406398057220865631773393838463376591484145108529329513529198157335883847556015246475180851880203803955084839950895250758333958798834974665400655738577616416511935642145660027860670753703833458709636537347505731424334701860010855950133614073376374088774291381149197506625451744784266954519537787510650658608579902243745011299610850511947414021963621717899262671246931785178716072568474016043644711872605035503197606761234483742737414759378889571380498488142621877276884709229367753876527262258173411510814379491220959790598544553549150266411974465272417892075908756799478940014144307475751512039444420821688166264026665710284969631630058505721594903341233896913632790376562308630399631620681044751215483734631323810092857766339974013425206853345621606941639811156047083668984547042835409871354877863339622098508413991112326736329486610367746253156244132285368406545770971055235319967064138599512002304326792798392489875284483340735286472066527119774935830305928498869576483971155540134681937868853523126587836671606843932417794940612352450115317536203248353408942459303561131507232254325561374798600500170618114164856169803183791728941108389070508008074540550405434975830907041879538351210823552679340037269213109419433153167239806609982423374544169014411246495401967238650557545915228154668077606450062329870188724151833317206700907160268957157101029405972990829978582771820212158045501851395214876565677292435951201243632546013646989626785384120183656323719399407979996034473914841581115364724281279353703538470624747488431899001529019952729708225727369236794451332834937542294603129435391334966031566263961736110533380735358585194172260546190336492865255863499842360066173268786640292158837340458412296669880853100365894796362224740896257576349822037112227672731536289138720229765662101379336578332769577515596971500725127577319381295859863169304493714176398903044899032316606833115379597238331163988928175689831182966711644401606950671895578808922021316307165820600750415024723168891650348671977695989430166228466401767813363006843286079848413153985028673671765201011566552582776822903872241984466290649332545944137585902578912533548316600731007274124427230308180916612257317034355505738782544889892895660831069940003728213422490641577126745360796103533127469207625077367568870225412460164181932896743213208860520848139714199371504516971861288702686480298806015817800269573808079710933921283732685266054698340202109230061405964874887933551496104490032582630748085875259346036791376645667610391722664357528779362543211346033872399987951095331353104734614555461260430116800292362542854286668103947511452909704674252021078631078948870305608446854125795626084468026192338693844011170839270042779070523750182208465494740575599314792100678258124132620148015853353340866859218990757994527665066816144689344792743451306035272569653410152686679724916777330479179277696915791640886623921537910757388861550384937313540822096543050604604952568059404444760989379346746289175981896353096117449365984625544576259864515368650416368655292681426879943772442688620246865015870739063741709521154630742785816000964401890595127682158777201932573491702288850707907174681577875934134783168630117348735598773797597987240396438451752426212561431650961970699247893649082987994430762939581408768971223369172206153872311601931497207274303090768075177375163117342679533105578881597973443890961041704090345617050763224053244895210734498331741937643836413668706134089317823214504955101190667106720803263052623748966871885765615886567380121497231311823934035184913008444538924619595163737523503240689387173219303234991782705136049265048292192565776871621001046189916532070122819349398605949889599176243428297713724658475359400814820330545192887843993671826058037072861474655329748117867961867389459039182774310943886221424936123675172352127251018632548063723757718038962540245304091597263511653953281009484310004268582384488784344719142665958760307643374996302544541359394509795400101314302209474215721413193993892953174468852888182619253780001833788819574688595925065158830964543696578631765927686918695632595197980787987581876249607594318415723990328553231290787523034870779542027155970858376505740045688871699387472179500516250980605912440303048540062375682077780499654986559536613530716506287506884394424638872017861970194198828263674297422468819340823422092938181188053296646894540164074910715339272681838511450090544828619251236133150248093053904747415781034651070424173317373227434090027552204403401268186418403046099725843102121978445796846665801670496327371438872602936635875474808621050148240343619758682494072742378310664663832335092952719550352378972543045440456060434130619428700749110402648093040700884166775984716434641532818151822853940122269738547134347873225309597317401127206566124500983935983656006006468845569582746348793593251276240995955530712215227012521522754098353570612531795901717302156310980427059544808416048794610229154955421292111856386923457605170548393976459065130335591984271074779957367067731810478741434773083314816895580125096552323512859932636845123820340429322298676478817230407910496402302872219049741954045660694141051043893246816190091148468026361689099243998334622696045091386328821481432461912813345049691274308428150263941312228016981914030254933765401308708610684780899453414777028440036995487852948371330690132909223799294617281171238169792951491637169914565955816954874248964975676182897308401426765520365785228536066498216074857617214025096873465473868210335739610914611836725688533119216474187921930943824261354412709091059342212252573441005891927739639533081025804549467604847165041256828810933467858294036457424666035748207821308277208910526411746004073065074612632378001955086309896930191464802398857213112835346517414326124975523456769936811538767297985432729373929120080500218908506032124034676785373830137348017732892179978675802113892885761498996490880410742481507674497036226029988362731764030303371087075030171489880921763190079490451041814282805110741990025552744911898339660641367535968773202645198554563895199428239951953325012875382368153559853361600858953678528806698978724146720598441461767745148671076270124175366334183239646196452938122375856711894434696272322755189321168964866227695751653453681351534961585340578832285823173228101760473675714448018274003944990271811616514159583550543627450837627309879096719454560986181448033041887048961014835707322149243035134800986415108364637978501357856148211977952156801254659592148057007932248069480871826454803650292012631223891190984174537684424301325931472625996360376215949413311144162129398215112695251078531915940199641986229974025792318414811477298448170133722705455423189554440537248039810674862697152533103297360088695260826383457882015858475015538468329087179476072983198369180333637199913712165769055502010297409246747097086937796347864748276858368672127583602035320594022628795708933503167419671718359466972378295315165336438086675167205257667972532876231790382940781224641246538571819844363011872917899755220431744641781500305220160291645959820273358638862710624200215646647959260314772781417434105710406719783061861556866861094399154107011951829939456152152636972902066471260918679383328751123736325575513630941144773276892819000151997759069523396056429147046751177819328415870788744767401323552454309639831036414929696086633752411878773271445592669350499378749264386363609607824290647032529792486796570232823267918953128072423094449076061271833226180565524449385357257757959746596182276156095583694357983631775194397142366019656329783925775640245858169397045512371346357604052783072270757200119095371840763459073289544798610628825689672844992542568926344757748306538271506448547704429508528405971585908547301352832155193570325402543674979302626645547116746944070048163664318077954270244047034239845529244106340350217721196469351031353922533692483758989010739304203410285740622818571597489364588406383667420448568143786960997661809563666486967208677282696538174708605996359765942101974867964100965531396681537326476551641462590754105782422848800976340663053576490147549025554030592185908778815479804773987615925531283054818327057091897722291995963922284673595178497143984376544286137553111669276380304500898780736310922023724326774708436260874465335068375796623582939169141398307783166691235104257252178110463271251616453641459345394502868848880669697469379269192481757979055688464910292423923157456072530295233193189891278300686285366305230448743445733495563911639974124764146494022830873841356139462649461183706648356630635102613112120376448127143559555557191042066963323816258781364753778168153478165114148183135158515888068420724729281124344125173421880426967509574295431322695655858190239741300598183841756045491754015975063445258353013239836059875832585058177240467978565729752325657161638304290020211363552245477803794735493098726245390388121099665197031250152497513351699814637529082470036254962633582222614307521616890865443349741147133220247188975947650547748817632342479045450531331771952914403031159398489145312644023851546819598958199972127125344386237238830737943020079139152978498415627685577155349195714012444393404566122788803491322004682289090447212460485823146879788069533941094292804703466067016846219927389968897791524376633978538969496576817212133580955618793227935825767417450163822960655140349890426416280894321391087671556375946711286523376889107966960740892807677717776609675441618775202333875673624847930694734081167670338737236306363772571203849027480636350893815134755186563780706374366881556884780956968969543256401567655704092998204472983298318407329898426063087214881240132058349682239076204430083215981181204639731590663084363084569499225034846303023283431262015581850215868148129763820322743386878739546500676238188551013822178685604034991074518496899736471964974797290086758848129772720057429425925492941101247263564724043324386268472541706618319154551532733634401109186062874290032610605894806076375344342007049560394873874965512247561173349539142150737380721222796549587748897285037578062608115853489607150075450728093896689000578585520878851429022506169211918457092549040171897439718974850178910012381068045978728085338086206953406360211475161801243106688334264042494035012939179723988689368807284699629089504515889913739839911162910578169611475349167754130011388561014559404885492033713667625878170881884606180774010541485652683244295235331135436990197758403904922807274609566788424120552762410837451410468349754381261172406187260006051358410610024219818965449294851133008898541831959638430648453796036733598888840614249539590050638661134459266409746090425500344474448320616202315726434499907706761699018021931404257284350469832373796175760976074284244257046037840812662571895232461079195573891504205778477310852560736980830937461659587531339536376825735329157805510812458831001085384066472893916589125213124184970989538572378764173884814364439773277401969566587153699038837426683407999108832624861927844444367977673807166170278385058401350879137040145243769545581124477929587861112451330495990375036768655120320339995327137427600387404742667525987805096091230048408001506626665465572269449132345411563807385778040626261418457440970314885249566854531173071441534894752362436024652523461256767229646919663582204602352417846928268468743111470875940790218753768441593576637402647492526411372126306398821152090250579356342115071581441444663104735411157384289573324187090605730058713181878174018022582592122331583846515254263786739843798411232533288222219148781676745720253873534170965982312688843221121274660070404438381133852035235035475670549744961767329212469135632864972550214401527841497689954455751430833855737990663221844975747974720410739888864628638304156252711148935166973495156307990949756218327575321315174056073287706146815643193408263458304992788198858613180908317250232139504656354572978590328981400389318768512055121925280069439153602039616703829043918233649162718444155077940187647028363345332747202417475544697897344937375701664745663735824240164426444775081565615296979502911724759277192355947981449431519293427401003830884550186879571168554960421185182011539962384422053016375498498160050952188021407172997446338210605972947964639740713079771171284862482825270112760570241157138378522032012400461748388542266623537952087240099772325481666544881655802373465989752571879000366602672621434600699869765786008032161125817619808558768439251021984001661946357742613624402144467804381606455448720748100229937489593334474989872825784612202273720260551532752135092489568010139536889515789055196268137889500327048485365248081246059165185947352249447167307484138887317206027477823242900907732442602928295722084525780712612355283380922421455973954307293964011518320479206533516692252434365641295425134432409115298989615898582825932151466154501639185935609536194113104612326534653849179609943992403414829433243611921608146191136864390125053037617302207236285886051449877136179562420960264961629548111229020450332264999726894271532436219030397279317862713575751087308083382493326881800090598695834236797990895714066534383151414356307102292574436543558604523846351973097849338961559904049603600899767783345310106874082141659049868710566211275878742503221355591866379025461602885136881294697445185987145439344184943939853849611388254512215954683620648708885110284338997328907935531338624974098804052436105867801305693736063867840502893488099387626803623477616835033456658881185487864609471602419757723700720413274609621120632089035282132609651880044416990411368898826474393910826585507971967869209483786064424175181054331991300392718909155564382448286174943884816622856565906426941677314710144431501213423187758468135250641104911190294306869365283347387277577602284653789114998220802156897558908173858596768955048601924623497913005175008004536934478179915377973480706669921553738159559835342055405900367830811189878944877661793286738321580178013191934307620570311014343087462608590294148244022185967100941563770887248169011093332723024161505308396917501599196724925245054052212275390218814638982527635916443226882905866823823333182046401078286370387779845346670576715269933398869316206418038887485387659325628144671110409454463675558839857777142058229201394720594782348766001642960291151999356638639528215063866205959717136113764408990740606232999846362578042385807127735936116124879955284465274960780388479282655143554651135559022228713815706092094185021679338861305594690565295466662501788197308077323609307539755423018194845285887624665552811127376863016908381519210052773029096845935362802542999882527076435566846503766081810312311998171570865143727177305605813316594899902103117083202365743670440524645282349533372455360637975419103008587280466952843137602120576483075006831190870630592473315888257102434039232056683988804509774371348935314136238534030926303928064149574086604274372406266803007914805473965348793043702867919068410845464138799191004166031681606521848509926354713709029800167857768204726812375607989803175036097092644018612532436109330192646690265699970648523908082669704574949357843095189670916416794433062047014179667436870351658285604586172053449829033383666090957458304985417656526902165044583863745166385678358038177476626445386366137696159537951869344235647240326736282770792775156964422193046884912251761085288358115826000023974742330520712348139713066375182283956220642114282099479260463613195262020746388116299532392202489860610511231115512742674841613850750897168491526418664967086457079828628522649298360240537624856396055007864711288981250553340908439925799988357194513595087997836519088235880854501440910143032005463186190990674075391825024643127953759413696015041045041373633549179359349401189515127623915683620627267517193137051314915513682132216502941687658986558569852081956353879776101484349126417357186369719143054274117349955252201808151803098682562443566743173294004189734895416517379312124865243938238201354660306651699085767375416245670916629645555915733883673073762220102339913808904991423330960036902320923523489601351734075062545311090031781936381202464789088621428670566921879235887453493095060324743468887493889784230247460470389742577336983754240274953163619956628976734582783859319565997023206580977232106332943506533755378277484929929349163507308214113339870853266741529739871500932489216240729254641076069432559584578911719828020581658027248852399800865097250841027294123421340643357702657138877135841546609211392267736312205690523997537531621283767068587333886644608136727461296926410304273475454279457629873159067284080830356813433954732684773688181521917695515664454168164359721848618593286716094683870645118016386971613623349322045051810295902794735909898088469986260499622110260245368787166261410520819359384662317472961272430450189822012352354701262806258539528529042328494455735180122317982534794506404689451382621484726850464990604637953857730749922573189819408092610270479137806085884446635860654895017045216197642135887638029692802473641935863020449948057091035514297167653403288549632840776866611064257948659616914206994433708881371046542605551640210937055357573318912673277278848936717634951485166150067948424904237966381997585010593362168972410485815687993551044953604922307767922872469562486322210849975712689886821104215070248678689368713481778171286647368670686490225962037568310972356247819130008305599005238736342455261288725837952583065715322758923859104302038637733386408204816828143645163615961353611677563791938020213685859691658576531495774219845515259571787427692787840975087734150500524202548296399391012941624280829538075413625758634791666823893435510473971007951272911440753808571032798877070505900670492148801855851073694479549458943775955988724871719623186202351383876476664394232674053355014160216777462584822415716951056691466806115170188275079198552572970091582166121304283271379337516531636508914123133307173736466680408204150200000988241332317078410264143423962025315259843133309422151220946970724172404864501533360315744107320884623670898982940966653845517584195256404079898175847308920244294951930406339541786415545584842083584677191885625929542688246706343636978717092209469882275203711626242049244530653845843397803525904411399579180931880015671868304398787576336455392661070282619199330205648632012775397622092626312720377466058603027599259809947756572864509190239606492039086955147694196109214627034460286802705861272839749521445518860447416465452544468161138320876327668162619017205334605205390697221302947956630320231611920479310728151415144123119214474891774361649761227050862793423966715258101270337327779649363792938318000085163451410263948283180379291572464513483046058042011077262814748362951597059626504072075532864728311684463232720277719502789766269080608690822052129882234718077483854570976604205228748872322766636070954852708845980631802353119207946957070113763170315770479203538118640645484548749484994120622177376443223065523176920798416565114724801240207801005070716552481835267946471786153281314656320180030297662640533225696398979896416893941448179832940963027517773037244374806615455074318766290807045248836905997878044387407913034157932584205245705332512064432743774792222735142801706845822117220883747983762410084744838162038722088622093338072716417258726149246090581048518058275021442322340228752515702361834545298636708299312572628803075750224937226603216182251383470763029474007859395943287468306739927323642145601347089353153403539167690699397849206693961255487240217135498912001097942704321714327385340512919382431788990234531431401543816764733109683186928981693875613143549644625731335033210961765475464097933767666295723299092691580046550768248360726393715289332811088856165944850297987785543967848667047729472483526281687223312460274647598094718675952844713388090882105847533994029694500364272347234829589243967526977684380427205641698143601436117835257319125634205005136288325236722688234656339514675907160741634564405600953376277633254789659173410531638539173166391576315123139289446556313641172098304346055711107953326360957129291567245096633610138309423432985933344235400161525961781255960455755162134886002032666629208082040004261934365447907612271196455790168914331375102668119863865012852417331126119290877247879693884400767764973366121936543770144919827107344334695310042331066045680150737384590739579678182131148481633656786634648856896840781744022278520181599497834517667341948849125282255386488515228433623046620252021839406745843737373272724953150041591544507143339430768885020934455655123261440178082622136198746502116685569352681332443499105528356540911581797822221511036936121487047896112782694533151190992019263931699363481977294269410143306246117232994661957922616231560362080237080584676616979231101640742394347684219256330637166883113941665094197408352411805682579947100624218518551887507768940621110126737268450527847384099851245222789828269367693913859259893759578988744343230841988659105926117990710541324725763867691774697558199541215335317453638828132215625871273356979585292393047988473431280069562790025083014717710162651888540737518392086688231540761642968252909150577706478707270648938505012206556995035025057543940445099256091084019015313598611648556159683793881819548580072523705571105748498584184105918624648562625946570810336077712612505270565315680846507361574361845582666382728858874036696930296317468841408289485306162962496391091397954101774650891294044340113814213911512281356553477025962249910483518202685806649007699025578637306139930645311583790790129265072936225338355981583699660282677040611770740161996053423121298467984693347858823332659338788680333364496765444009760024729369585372988227964412175761101863927960894323152618633762600736760869319436973765175875663356842963605951126701906400739095980801853246781622471080561826677402990984061155823631066374314830412380668432208080964343739923532807114894180028524666456640528862626622404620717933144958232477097954025413639239088210917995539027473540345589283548417254631885812208820843274081790622943341975446985447558256316247706778625145177825430690777886500508891885668690726453381297549918411806590227164309764255273443118178426782646745833259980647401146270336170235500472114631128515606177481104170041490381244709501528504260530882869511687529557056570628206481043241380798139783413349949222545985634065938898655004126022512229007711282629454810468416360248667167943199790249752402198197188605154559577592427774648597201973038713801269311065393001755542000041749764545414815394195514872556955874152951228774665851082710825222359673279645122992828956568006980028516453835920746573019771104824138257639363498343412071472306738948999269021601801319396405733067287817469846764363504486118001126450435443171535293448609861355184770416545279234956749880733369028393331347759728063777265510562757592839348337146022139428794068409745189761782413825547009651454544333750238815543721851518246855037163041278954684752582324853743847051485037494496519765287804027759580662000268503059562278709943840001675903802045241024588310547151480942290459844471985591395660509986885387383597202610063674344067578091003095594743338854535334863657335057044943335078435303143453595262412988396805658349013915094942994695241738306753153738113886935660820526488889951587888719795926698890839848263912692864906646357009153902896168900624644359048602459851054922991049364078245827930050731783513595251683373192317374789804821222421467177328354330857023759190851713358935408695830459120916875059212644006358172701680398553985898388781625356685652329286876421596283009460130040318161085473726657369660003468130595630628477749751201899162340510134851937396283885108623646796004884379375265497208627599571978155551888949453401690117617372005710503640974805829686956499956549974805680450470517828175853607414186733642988863274980916289823661169415976874086849215874610542630307035462515849753784763284690296699188261012388873980707550360249392765278121518348917812470210278868115777564815731840451727044837305107150949239159906914033344032333821902634188273200168575859431799664826573067223205191275908812754458925954042679524079086152900252256030154271098108289919044952360996971525791571752428835324034465378837202659018683566915804657980087542707363937809298367376713635729274298657805727476711303290514439083294470226178022417001019301095485300852697166674358845360084612594847851390483616066222633977000932713418347454929344728037915987938482748983691393540972385981505191627702750087420316072712751661486201834082026064616282255266808221149182461015191281756858955253351758503322126527336785765291729915778976476063501083875618068710525627227565009179373650448305381038909636372896747375120485862812264794643805009412103809681362255858568415963708871565794691773127940294619996402185360584357940160074702210673953729819863602599527590178959635017626528995321532356360427772275717040225899487548202594567597209843220533934162286869013053877594670270764516541056319843298534978100310201743879710950758408662400145871272641579671468145240578918519358364808408959303573849099624963041680417232683823833671047280591471667676690133074058390668945300034963902421508308467097234806483165052008377503646292857476386621127010923929486567104408909102856572223586054220478598544753244221127396330172448302316737951667337754364696979234400559734234653197157730402617381085654655791612749738527091327948953433112242980095656288866075160420065672409970781854837739132027472307902145301390945610798655016238913422002532521629567061497929260697973578043453956540286161455861884784263561436630495849470073994955077393052803913017461483382510596874761833626704773723667467525642213722863877460924275436174403042684251797738646730733011304513606009028181467264788167989683919212917518338977154663614713936577765919285928812310932328839375661249709021417286399145489538606021355293139308535652414111280045898261832307827315950329847725557059226956338114832976322826507167452751146793374861014244845088348093408549633574379785735337644952281816563691430000065972422580211913509100235715242474452662256774184623629873440296271070609557475734714306914517125310444055960744936720053240076325064441995649657663768792925965569412136937717454955931616714406569273455233320165297352236966544009775774487616586824129869468426699899244853433494810813767973286025366969836377812841730956682316977577162154604925072565182355234348862018314679260995923245149237493872394421361538484486573555517005221245509697550430898887010250837415485393063781569559550334881120496914809436069737504598870113254727223241630791458389481693849026039550749502922376495232190942121353110398023061956232125464432996523319966351579110740092994302007389252262881687310025119921912979792209439476375924405167628087633138196670724237423270492562769837364880814830494375324653368469318389782315937342573406714234952167034241463923556174052193962657663362312216959871551164303905535422023315917958686925193752973384703424298405034434155172901687311353762041213077132662103197958659310203393379317024029511128564416697847698460913295556186288992100393234095060136926131891354308014179370500166982947095094233954131005961736494280867456060424631636506392826660412857205154374481404746019829820618965612851706948953870864943379776360510611121316451720088308212113141649266834694998980297380217401551673056741761122965817503951786010144190406061016240734595917489672434265816246285838450914784469964829685011088138626528650288823401546687567305459615608697581812207841790188975787082035028426578055093759259008767580922589936223775539828678589685944359703890731064750222502041166131412749919137562494956136402091121122939824182022472496378203313549171811098716604729204237787907105100960045931106575819826716749828395248637208073024389126517539914334811405525321381630285713359143978239004815484924214503017444357806917364638265061736330734840001513410085406054123256646501892396442375358108980666395247652317769400573048109663713223410845052581162279739872155748310638406329871602095341931980393743034519817410688235633324033541627450240235383181149979947703751411178166467350076343061299331695187508482335770294125606315343741112719721773227094520783124371963392778107712543585694997903244283154118397174687679420968359074210386155333774401830444008956910000181655491941364131715845276345200810109875319470596506390389183611785232394951523763722962783624210915915778986278762105420287412346827832319844708411251059467367830217644820112129678061471989969459839731848964442946856325556583815509762613370097317499224389384863991321951593480889570457389958818110962824775405259873741754824395524026006423850880898781892543322025907078968624987231549975037605151978863615969635962931847653748972581102850633542648814120892735044209764296590831193461926077680647380027071537599107419996467538543578041031198067428555025786245484066001695536342315622383313712990374634910025044260123372299020173078710911955216026652998303350630329639501569459864503092015762407240055787938726262944364190534108258186483446997569541249777115848549767805816179670295817702656055270534816770180598652299132905596656819062347557896991047608812429635787659811402734343846151888617486136108463548311788962300236137526452899853091354847268868070584538202492852418009298443124534427552223588830320469314682059954767426014880869036348559810032109431708067833243191862896245600628331489459329789214347386992580459064571577602071700469787452019943945041785286626739988982608637966364186225939435863099296520850471927080136117591738827990173270182663689445777319041761500834056240054904756976995108034655872057475182831983706181625159022630934363789857204254932384375416082394954466544304137321497637448508590899902829710115392838450351098574992823611669597721406713622623383383509154627245670772592547645950881922748731611734182619491535413019898972192991596182802444041697811729005768636748432657557798810004891632317084433636145253989610325746740331014722127313095330565221168720478271213169226914928737041136005817182144620729173044447790493381963420714667784023965352434901792765698251201345660164387280866605699076224981762284567511144143550466486599679530966472766991348315188688660075998872440819163249325361954840407052669285732553461627737379409589426924620802156008886353687463740447830309720532186273418744818695439494600132373498486006649806095962956889464567464045789991699818591399225535375345136423925025725264592979741629936926659932664777416439291943271292957734210027992913613220463384125336066003634214168428665845142082097779052202515151530447597202794884694452368550931807879421252366422796793954855679297860925087990206313300400206778499202160181468629842570760258546345425123393845290511115894182190699324685125400993320517972276937548339896155526838965263958410281855645464415537111300832287429533215670197014885016021303409073166881734874006675922933755495589065295288744451505846794747914188024406321645231033116560188764273947568351823605337090745238900921320879208860751024796399574128622059849941840173806661180699246300528531173418845121178282916031051295856894946668314368300040781377962593860692757428453018414680615323657888092590271519715206726400056432076059487582746625418620880599614495676226181581437896241017441331430987516452771537865816280871233906013818107837925789491110783174902881485445605976664009424041674290931400949299347613999619205447004666568223335459675314491195511443128787206302132281694735776224404523917610301491713398981009189038860098954742803355250543864040484653819470630428296430773359091909657395304902748909168006753804202128811693465999782980760279040672107451599805351719109602366284956692942879142997603967536576573580145081953706757083970767905333642976506151112477890173134096420537800613264044479820827278988589189408895029390079948461256005034510011213790750096902379978767035546676401911693876272055237849268273768176122007161716715378277834052207027437112011211395269447446547191453477972599188903630194976206103080981368634168254876398641767748377925031671016836110556224321899060754417762000894413168329670795365479548960984978814108000506107881412843911575974457142605809858526547221717486142012307198176971289038027827580420928423818227183096468607497923831331083840185396781818718118182303967251300681836931852219181455630397038475967721804314024762863416433142721968670344253121391274512363171080092691344190370336025118893427638797342613223842436795712236419624179096641040804417335301236690209106087758149792022153992338919826593350916198789419124654973385048057629628421300610186063014169650013507178287243798282640454453690682927012116547071030151792751575256035228673913558867587953460587808587509290556211935758030939440321955417952190607418495981199146137123499450891461672900794200809043913109027570197756124533672481154301695763389366162064112970161484910125592129702859956495097524674574012054983471157687576564894230926082519912548434826124573573886249917409175811162420191445483987865973151557265664225842883271228759729096011479864258662018131416409752702178648225871250542803821824298703586669280646354558963845170930772228749022185296220712693432084556826516505870302673588459140416698514761231872672401499879458981559179767531588228265223940251585384284243897805916994304420672930092015167284664702529300853310316193644047152476655378508335982051791343686626385992065424001939275579345678502184084157074888320068550265922895010427467135715371036798769711251492357991592826931212171087402777425535337981295790358798323117866696985855784560646977247607504433716604077434298637598887052927254828598421471055239859745917286913081825976039410440284164220198702716963499637464398858291560137244327201772746230376970505519827799950925367424326892694756974690811270792352446063960951272301366886705189512583586457489527315888103677014432634125778792148493988564254553024130461799814092481568361290099190953842204036990142324826030100843981667460377141683381650214844602310359543218575539920653260510951542617776795103045458573636920249849523619232268720850918620814721380032471358890008092786488475220438764147610754469367586417802025199195017782390072945750796100178199372007588972101501755800570943481762312618819914421362728679400904737350738040595973614001332119436269360973616339250666117934520398917867562203209922968307836512236135295528494611272100647209987324498225992728980915711449848126607457505658791315869834167696657043650690398541336117907623300361837166763096830459185538670141680538686880696269447716328489610537465886337523751495673825264051553250919841371090503143711188444982974967199913957953489956725890216146013574704429334591491018318427673555572460861899243058205474942138808583221583994407615554859961384774188362343107366635640763893423946046534728248216905748505026875924556091568983488601862677794527651071458849880241731613831121356176122136826598030859434756219602425465657784963617472811081408953674723465796760630848487966566609573641032788226956930887448380118150227691582028924858498359876085676206940351196538352888146226404060582677140784413391613113878353564501170915912975560900894178535192758876656079662031402205023174972219027691793258357750032921232631675653449344396458495482035313147066387050363894078501195772247819317457656031700448604957450201105792333115307549304725664970570914858127133661110779717067251037304829115613310383885400327066309399236445382799326129361631767273045640824041845954706806005555502293910698905980278443757678392378967127005322132719376547483265249030377279536471710475043463182221946234612375649818910228070230937530857113407026633456063826723701887003708733339125018709391961226430978160199784733043791403240339628898653612065339106128017612396975665728269937825838210268485941355125718417340845365556613444726440389586432509708613973574476752710138103488689587421863922257208765465788796787446981832842814626380155074388765279163342203685084627864399350914629747865195203848616888751778045619583503896697835937143399345477844208926351885510735318162641448860223195522763141829091632668100607211996653699021518295201036985694565768824144451593277429856073058817018292935511924931370561889557235999089718381829049231258728114489811658248322540762750404250918189266520627085393074330336797518262486318824021712514169649554252930533998606009949240070137841790106243166693272485319052794030996115928616393783409007291843044504969451930885702446357434576783249316151707887863589949254039718256925628382909145563746419597340940104119407899055586263266574523949947654164345869042858611165514473413689013011395763356100298559083446416633159060063237245719940452299899608226446666493367104088289125382966436171779630260214462260866233504248124164768909908666477933257915651987516190599690112973642946811755619566980248201858007282901818167275169543527921805966388508052708156394936276009451204746321334010489570684344536988367086264861886761628519827743960669152344835892655277047400588313427053310782556221049564734741732945202711974410649366773684656554582510324261219752078886103563192286825999859715155380557391630432587477599008446847033816665176657740831286166888981131080865113306578720798179769631229274828436265627893728264892757671393858914154664537515911643564482214299076198940608217284867611771977712739790069260086799892283806762026854058305339250890611101776545195447147668806752446592880822280885831393784341927823603877895697658244869892134367841057854742928398122058002778882503903585976036416990630444161106245021803918270674343845485207381546219164686352382726987881188924964613156861970822473281677305934757230298372773637751999900998621794029584728283847284103378399058914823299533833331803076981946449463443795442518549886047574695571749140110292517392127866251529188514278165316540175790975163441816441964628492836575132641364911859176458602407867490718447636762243506182916663656364287379322640092718021553989047540624968985985233880075868099004604191095585681854816596524386308817669716858080304680465929258209786962538986939819043149555206814443256892808484835805989456798950364446758303571026658672142938599051377408497655046056141699619368114272685398572103424071313353167729557851729588545006599114080966101218405569288947528922571023061664522245509939674270028574764053439636520988621791847041784348280700329659696602960944308679477068764254457677116525592394122545976375228012243939848818959818310877388322542604809148483991012538420002575522131239966831189305506929531761393387936962586594831761103317750885162554690091860065297868091562756017446993939332173169444302459036912486572791241746415524654213492167083451408816983977515905748992545367727625256026941366984744801157627636234610652685738745417351899529405615937576928191055042050353375515294847528630382996145169712875281593374954792436224426060761374780083107906983770080758878609331621273230548877094447581119939605238630646562828544774654933815624674562927295467263696924217912619994744622436103296723230114330618149892182436682157886180056088791311086334905785025798121070135654781802367274420582995103691596346133033943721065871042987659318309935732786835333611844620237942010388051180680658060768215938979821619546402946338428175824815049523676552911562656177917780431227602784986779265605819881772031609847694686168608120394751445541645714070566295745546533143503755151810413081106883217871677267244488778827699255717102376371824132375782667928098358445481265970667869501984300164628609064925472014068201610807404603527505850574671083774960844244265073316664107370254267183404345582465321677752541461781428412891895871201670969007314241930215080580970658580640371547942224562479691289669518788871050841836135944435777596460927377919730919751033929653622617406298750682381255352926329060693043762001644037855118315966676074821285154238976595626472776457384557733368155107394776776672045962779059652129753643695292398122931813714402345626424190906852276533570731406000452522738598683287365455054492272930873675434619022454266815172264994369248156298252090087372714688654049844923398479790133147919889685654911295094338792873659058503006279192735130616327768831102998720000074555647230509386163814642219247372351325130868025790820973784841252827046145686778092278287637524418173509279903972028808110319487563817048845977728351635964511588268679798243968601607635343213513481071790500264948932350666226429188255094657932738466789290584253635938631891261388147890131569816073667281096749481847924632124074809802532889880411470101044734154972746237398402247476038803105724129594379934228520213063470150782504807586716008431822807601190853066704062590165088055956581807024729094460160263319338723021476471449966576627562480160041105271655840507250576672871005941888943503002742179906959330937230031185135068156042020717607638055224010593934392346908459148465948600127898760879239459681135832675437658301401437808647137436383263762884332017074244343141898924903837226745944913444862689205469105183274424190930473993544393388611426444238683904650649370601504195085212555038041006714575050330175934618647229679484351045149432842433640910667622993676634265665449332272953467263300207334623811314824430262620023584505700420794168817252585075718024943193989536962375998992067916170172541965721091563947235523231396711955028137345665418850998837851780721916520780335196882582259817681825073813912859235737694482917261837276328160464281366494978912106540829249224999339546142733133034293576992015380867442484944508936717817902619884185043486937566235508818319248728995677505683640107714317753589507160126196206544218748268046116965067109154507486860045111565163716261648190859860255328636146338677586633643253990096678202759147290069300222703443035623996543892904571404836696260276169597983479162927694875040386771961566986229377122962768262640793235579738771526445667348147296339915798274094860794629157399395444218533033953958730435313172908965993714284490154435518487382408690275963121300958683530791808646997810665854394994100581489259866515441683657226863563012266118118952887921601071858968624313361000674292027002332672601331010552571696948639368230063446305566389584245097729152075395204148164405268796094660469594332257069876867509576565635002374272457142610863307282173990071983920777413425946850542096147651581625509072950824073336383346770399105505539193143074119530942181248616122275917484708444905131757324188313653302113961494290055884108196425135287408714430086351829744335707942488931647945892596216747585200045357304309651010903298754100658448481271513250681452876883637216894416127073122319026917993934907013255628480279896249589256579898315582170119733920489723412734791653368195217731866930489163111416637497360928200471014823563581238512916357454357712749272655291904192230262891107051849338055315859090798184781612874440492909043159914566742217025869355955617392524025390077051352942237152958497602595507945618156050412650646880501135566157325354521672386853682120612548616483444422014116879691082086699899277843606890711866503488732259470881110338003609628260683571443469994453692137246606184189974256032818670308243090427091890691804662826227441185975552606150742403517196839187713949397603106226603894040495223845892341605766705939101664411798871594418073189553252505823160282878950719870304170483464874321011232846195161377772132656404404875674115257961185459571573011915516969354602258578016116431411312199055602479012436064356202979265803900583657617123183691276022323757385494070401735899777644708585656344625031383962837339634754759431147199104908935254772591952459861458164909581454538824880142712050441379813928952918745847659447596976120559733038997077415759656409845827283025975123791768655167919896574133346633077724536378974334716778378703082972698141475545239449559220012630868423660800531908224138474821174645292804380122267003703118005485308223798293715825886845857612199479270959183055655524682973976202510659000715890662849827011020224838331890337944648809149550970567136816005817258088590698526509172053582598560362342841070206996021533526137926160883948751173826258459797957156170282792934419803138388092003223415235983639439927597069535659002876075070763085999774073471550929384950452956035524907125315628721712460337087548838882557551253129629528816803163961616170202051023008088928279381664079559777094538692226189172322184704016676718928016624895174582606310620018267680621474020747789576643063597394422282872478444319491347261156220190720880886690180919334725253480261276949236206472907826563088149386479056331106311588413958585229783069746476168009777838223988648142075522181373836941093747183188944327296954353892339601329452104714977394904739281841718289722512684937703057818290476685985551925976212388310706175730748962007743426781613110447946261653688609726875046320968711900256501791286657999864970560845633250431274915277762943032009937091821543040684321536527092338326174001663353465073190582145013181452882254139888347396236778962392298413322562585454077363805778375342668392795470829234992138664586267660427584062736588672367536952392082793770496495732020270981094408829815310361670369451076483536892472112517744093270719529899127885812125436370898521514094987120469171827532143136937935110820557386186187302612240510589279992666151551498737334115658752668763075802685841288877069040892053789386643683671222340487366729936053786544319080728966148592914473855079342795700613275421441176483766752853288337300815727827897755306435097731019485140123954399562227723296221939979418381413586052526496226404304604024308615214827926693312407544562106090400943563496109330354924113362952718959271601774996447162411125747078768871983697119587345746766902289335226394383941026135690718335985581349784424048178525767056542353714146588954651167642160149430460287297774640486525089895294247246159229202824020643653006573678295661143496912065877753654379246762085334520075719505942417909766751636891874608143908412717704869347599212886833883214962252076447278169281011905748229966184348509231095470590520777828066990121612482971364668645829390128537994212450736279266511409195274987726838707082247482436339511728800962485171911775640868013377899237789902179098997022406210887074154845985209801256485806734750719079842954327085040576640700818470223883556331667618857470658366312483199331719491849410334688607086986313679523109443265286551116639673821757206473441214779430452184752640357749570147879383743874072779040366372407262610117249353900164704955258271214744753068723726691371441983387281669049729218704330129547478147913478110416615668337984947600970929629556727291279688137145046194696445348216328304274396713486444318578932479599814794546106252797948565822336531289791322961777028207652069159872702811570627120366039744169763637904912071538207847001819968914456613689385316850172054650964691120805441365255759311128188905511101777375683786627978912404987900598609366757283189889219877315691051370658505786087917397138346130173619397977641227303659758136791494933774738941854073911875903648888621321004168624318691483839776811359096650983504733879113516813324986670228624267591354426322002692656297682814441804788753927641285642370415535842239040329363164091941418367149101653477390147003259120647736947603405926004855071129981917508919533382675065718661174631013203995955828461575144058303420680054749521008675970908527082403968474902330921663278360562567147772832378656990332826501718330329774639696092891567749497025367678191410036492338673999905431480885770990385114579227411015022082679515372530220956679954053085385221611706987827943802631746610493979815899117739114636410902766278359441724846796970131251575956645227017299230262128493029849664926488442789903250971210709919614094317826875261580596752386297460951836024097037435813378530433329499859581302536337763559405153229824157685120494896334047066185225539812260584467800128502573172099700620247597511085936021633174273171491695527056536601252294887814190268895553604015343311456781772831738462706103859508647820235001484887400561143763489496276515607598416378753076289802532427556468916656732499509512963220904414400488789561443450124863259727359632797807132623877073316762852768631057730273115721826355864228557269530335484471748876637447626580626857452723506888484353558271649114098796546253162208780485858453701583039389356034746132392644914957361581032329035292456258495910412279957236767174111502839930107079189984375467368423525707944293517821782160721431424369524123390644125291465030658261407751050191198100838779568607571648898004713348329247054851631417812271471600929065387938685251321194452493797496246514748711503951080669822889039688425613432716472617496450488720454795860888712898493941257520620701301371777884104858277570607227996793592406071811042847572176629622533365056479902513217005671570255857000101724787382967851475361016238679825498732784933096348329961778567592346064604197960250322559477942133771750884879362837348321807378350014730287764763088109197974700016799424161105804755744255126691048904110855520784400179155308655987634953465242228253053594338527066489021130834874918866019886358912028127723238637284633684402953587994404626459920623726661448817532606612641938250396719917400391644364567929260880838635791595643116071809035201356334307195645920544268702002944193801389099280271573192784120093896363554166547182391762794220876671593087612737907471313642908595584185537629857167708578225296452697406752085325992856320018742554789260258714734296991477662922160002031777300751675071815294282791644472751154038014446872253820917437408490853079944127792811587896879101833921415066500757904965080429795972224008313306309163499690229401649348563252079202519257396359081775748052863840088563125831970362223123709032075464434509022880016963134048345612500727491346179730876616920952889863435844404774970431335548841191269643978883784151987263033975846249411300622894245209986834835509616643386531481599648438649545812516115394132516468205914621307853131933973999261079742895404847714412383336945602617404553060330334231787196408834978097101565798043662426983157496034642494909186735171892431096663309206848318087053350194848205944684173294960418964394688242930130987431080618309751449863341102091969265247489761465426075487491543303154823932862760226091165561237142456142656549609478943516532725815566102884781071652569414482513264194789633013442814594890204299319895711618622528236888981384282592775994930932991006989434001406758304888052560865547518983112817580929658752267498867551252392036674634799362504077403215720427330208890968791135622278650540413891277949632134539057672902267109301737500469714166401016260840551800412518251066619619267343029684975172178468738107023123707552182481588301264305278203764391064960658414421024923622110010089607304933524057764695362169044606744836867339763334312588374647111687858623117794040382148262994779499468497113479884331494660776174480421445290917949284011640578568248814160814903264673025212090938348830088426986097275157677284316596551096722051090216204263954154069775631875478403647308754802511080595796256436395731159901724279051103076178274218575850522057687922611472581748409374847116809114053315579324934902773356314888642174201214776744951630563951937346866217435238210641616199493204501424831415806415389875262173954751502128824161406533391760422595658646680857560592400865528613740063497345333248279290646958596884348459206347999090962504136643362355902352877298250910111497554031425474524639590840440537712391104480276351863561039838214735757278162231259515362601848278235591492080686414392979051821128679749147481205897598524911937404154063708852687522490170640230807463242810496907218107452598134461566190764840188045452321161525903675548954147326299363505797847989200462325309514345114299282658487131845755303542635926332384667269157236954284699427671078493542429748146915173283230007617025256923372437643242885186446256372016350942862715617291895527356268641284674290339857824804488331957017461004307500770838992981695369147154955795245043471248355419893929708353667397660564230460941957540864334082834963310841027088279874893163305891312884887026642245264251941881712661535841764311560136263806255333963311154303170494060684302145689141409357328431534002396264220463117754068503305783852055934714898363463252062006501492691767258048086257505715249008693684253407264701725559599722578240296801440541524904062250619109437721535219993551576126514971150248694565846355374534106200307783079903698359004382630347299969944682901868912539556038635042360657710177162213678156470119807041189684467436806221390470285607700622763575601721410793819478702308431941273527292205458777079143295084619711061125913410229928804088475066393607556305626667570953756670916186468302493309770909805160113211971837598951315644726952414838177192616205301967359801360085741840925328658131940392723580282140537131019068165640126744346826624789081159233285113090227684058549603114480409585744477662929921297855353811732668896272477684117911430155423770135152092984854955329322226192652204071180206888430473238487591029040483109990660035101922578389824878237660257128585101344383181744815068690509511772368062800715034467190818574398325963841266957183337384741465203062350849380552638542400039710206322165583157899046642101297742373439555136151560961933250286407832336057067461985477627094654933623064500355842304761043765639085438225961354507551177050843322833646683636058997136574761051511232018383804009090056424245885818579454166517934040195831074980449225952226908907295048757784058155094377547360158662167403841423537396233645973412901053021211758663172908739414576552730203117829770581257295031921524400563583990633821081285387813752999168997339811095701049077655531538711489396427642152911698032858860035624701639705925605453501673443228934044756554178938544354309754311933094139769128228578218034903575779959308408834808767161273663816289730122503526224325645373302612327746644055460781878072357137054897985948435677713158847504920090650616213909563025122726973418417177162174827586082389239090931372791496452160531710384865043805772497754340763778512050168079887594797313105938592646998191196353555247517381373332658049006745994741099213865091372268778781986728735593562523820693693650371065916249642302236062599668533784123019191998047944990808893893429897477844102819548931779614389863812220614966740697167733598543964591884415911055579047636376472513401852023084409365147658024442282982268011057795587519038022859640690759686012191254330658785621157513865873480581853614483917250627183045627551153070440644077726571343876994766122407496338980516713647250363781557060279491318546872529768882352550378042887388273604677040145117133212989380481703025394826964819741933292224990004498410869015466980122797530398180047454503665782002898546122069059674017471086675623693019047271764676006276204846843133776260666166678988690408958657280231652942330046192920253960201944430225804510071185757385007537316468682218040615628016640683659183741456623512114390654318598078305530287204339608514708232332016734370862832525108308486113136670759846408313925668642673045255000684751963061147957700144817345379026438483994227036898252796299985810324102992043551072305647517940426297952883552987529012103544076350953214693757574343446424723435904631261378494913185688568550445246184411137432907626983701277132556496134148031964215991598592616283044628206131595684424547431556626023145576432196297119746012523323648595359066509328415909995720937576278475863773491599646350477975905463387790501060236664054385192948575559566476393431162092605773800796533372570552615337728862511224479112185846901258689841471502994316702913350983860437638902626179327869305360744085997395461964672693552902222639996673661192754000586692593828927318297684225823444005215051128220509512966486757150621454285916782025104031997186426399523276731511915603936823313323784653515310432299151187038699746799338885238150229535259282704625452375486104859507171863363656112890906920757005591688154559736048825372961448553740643027449896085511746077320690991302109880268313654047959010159164586267033522701914297295510784720300215426163570286785233223982681805372096551035858985358850746857859711416889212813011163673611211602503768901628512496972595185654597548350946342570232286995513172764467084086223055754597538124406504304085412392418776397331933968582866412221413952461261338910723302917895442914838915783539773580771325084664086806496689460584893945155453247408455650449631508056187809885801549066789512862706324909454022167082777737576654446008435125339411578352988931163933278616902904569789785524435792087823834853252184712620167810867607031963720657926213947229966770741284055254760301274386687570442019943684387081455469016995594328453723613675801259736317931750315532309215187133538267299198429897733289973766927238839165771485005807691819720308216548140053921856705170405875230291984269532126430893265785208303261428986229377009156763330560193024007506181736233558640003925258491082764276839123391466580906316145169388686715627120143162472768516421072872132528458142153302955678147391289694927254884211554898189560605526690157585011491665949977227648070021565787975001885433462409361837582420310610873066073913776856463657507344807918065925301099398194044253088008656598388821440677845469182616433215682055240166472865873048394973277777833630419009951196217688634006379737719286950788891615407395270606523071843514919535130411307643159912557490368608374124608465404179806044944597409888155514303705158005079387263971660346211315625247938218996274094437352229035331647553050678936093388461995900507158377447318508375153647075280985578763098000248215761906756431297405558241526715716927401953240193335641410621485402756762016778529196852417212968660488490715285805630501901963292261905629017004904374517676382886332711263809224061099761217605746333472234426880395223646555476449434889207417442164824993411860238580769203366120998218772337355954976851608145513753820673853372854744672965747878531739839613500762208506441925048974759029061678305853720418140974177408490928138108455126256563033153450461579554905131874859308322663927816415034505165072821869746157907543370712834988960781794562318826476702827639876987990087970411351037885437408127987246341794976592131312817508983714079437556725458004769618407318126881597582861532034295954033770547041760897438845620657856029043296269458654166941128357956566779719185966711236144227156818966531323105467305498067011504568298830619096069786203095881406383069665632478718181966101941399382619640982054262529426926948410821897923886741532200960720776549446792897818959986459554752151243799153494563239313225963758421138769325761546711787802926807303536105138653861188957388212571065418129001421274193268616490906988939280265465320112398964282798294341321358170233078482773640175007180064268803740146572628239138949272209823458276583998702584061007297163401979878957431553568788858300878497339571260843076429193902620570531169248257078666017012903963788750836569937939176363610620366332088990709210331065768830080532601097415956705498097323237903381634309967244921262542870478322485385620455465249229486527791975600210905954797208032195815599798612233170120607847868952197783730144660875772278609667555586632404726577574481709883052866402583056030337498818705456463354144178024499050514742196853082899562559167290779659709222771135482614919091804293451296669504757002599201764220502421454158312811887801082924822280673221373207629336723255867629407503859339714925947282706406501997566116270480085198550671339595864013663251393696244723058992529326019077034678212913580161071776616935728439709888499242877214365226886851246299525640081978123107817002163133869239952074985285103056405706042642348316130015161570352520182525633172194197555773240159130984035842066540941757142551847350549321386004187371384536947418192321604445258481851217799969621645178351592664602611892934420760675458837179315117279274525971549431991710840310987473066993469088500966458901851407648249517014706310288237802385043457992565250858100028109852649770065347287033692181274907779313707833251941723588450193031983276222532557381885775222122740789401277418409562234161481815680322100425343889843908740228962282401801998444855121909935339760778696276006722405376221607446035489014902879722556838538653955536464501459507915624072025240806068413271471869505798061718296210565365564037571269062029055252971546939416095335288673098043309572348072760645308149808164232014936067325252223706474688642922309474378322213972864665238652071139416042167378510076199785245692160716272254490785941670778107125934928093381349080792085328691050422165200453512194611623588502454809789045898282365034762692292623855336964173881406688274244078113960958267694024833808014434545716861558250507388586434531754173636807471718861974401520168435235311161341257879920359973704326678658542931285852999157677098384493492968979433261507821727143068138594106222860505794428331342673559215686467551205783756766741232899561799523286544901822376151946623061218991271628748014164661292146780848485369253353267435847449936466301310927692366474702551126627403591109348307441141387609826403976139472757910240801473811459201001915384663845546902551442800476601368740706516983961659789330316224772494478776686196915583362009143971405789898509467331035147749834438378556330084665450168906275418561175763773185029264577713653982838148845303382379519906313905586927271855190524497466336305092307793950688541827228284387155710336838598512470613162267148669170459807017517212731938188700540114096911168270101825534014031001963031427753911527232816676417710055538344472747945621543503567187568794029702879230335256460110828621416171016363726385195882451532634989462173726930363126908350416313927283817310674919609976987014076914152227562331988939211184443123740972691698658348597499592003365288421236326701549832039220530530150554550765495605111966615627529528777112417495773070188811580967398510737201143058442081564856904611426850432102969417458368391583121309892076719289643534299535889043917974142245304780169872928520555282516580072437869463039716121404405096001937426105406380382531127618175708645001266497196831153114462776248917376347336395798030562169440347991031957742524688433015584590161023447790185413820253437043279548579590424739518602780562254445316328127863287413318362789020821729755288994573185190988421690521590474637894797710306114062555428199678502070455159311152046339714961890027752716214169741261718500018929165001391214659767088439845773905542973386307196348217367508526428960746382713747825277382620510191534247918392442923823030948227421080238780789368358921328381149969602742668491988645118345667778678173311039360769103594474531415680352843217623199398346254713262581179495690653433765493932370837230791854458067085080399917118151009072746043083858473738412793074737597641668649743309834387486540136691452283628568103668412149711878995888013641262487303924684698847228937087199271515987452307541473658919404072744218018939158920073531369964082991656993452644336719502564628811892646701253539243238778314126996162115767937502114094291484481753917021096772741409149179189978493676916360719212778716653654909285614079130916118851573176184565277100831454981841581406097880030366718604318024995611403257607592128848050434031524596176194783444873157309032492464801773463728610154637103010189886759423527088541103851350091971824379566043840137703170560475967183745945675129366408648418572834642970784058136622381989687983015861452725211023715895623841595241587946280890876115029370953749755744123012473693690005473703999036713377709064137484814812807496067326957735903553775128530031230233992422803974362416147812804018407387276501800010539344013236631604433662372222626677728115256342467557049183875307726359013523169588048431748284473303863010426039412128905281919980446412499744962808017129817695134606944235006232502993938992935861400979974075147683186945686407538085559947478843563516355571246938964914296126741192675353602953218604365254448017953114360977865709422441973477383862177683707052022853265753986949911759300459100764666133512833006568191279996343911196135342382023113558553883748459476777042508497051243259565552083599418715590780708007116995776638809392330333317486353916412319589504661611961063194274765163752435158685019936867098058139140854087162551533813653061419210372434704696200354549992465211799441707210309074417439654960200930806893594839454267131523040487570341086069127212285488481014045900170115570291176626348794840762954095644905858542721839918573606345153048677048700281862241369618492583032483188071881124936606376944839153647565231787495592178173699976812026990351939673638413357582701958692677382178691775846616402733299329232170254063599505109149339515469251225736715173620403960645571513889027892611044859681764465508516917594486708557676868283100275408011200443490573377802475500941920385005513285600011300508856983378290547940874411320100320905686748836166302071593439413731491190983651006120480861573615668445644073274758699239761549784251815370081142615832650115736778881640231050631077997676925637252889652832388183572370555296099751840591254081881150220066904771624860874051961214520043366689077336811297557143862584937306879314199580679198777170689377939392325375331830819441429613825144686251912732158503302363356210781480435614955196093914782304786528756208631353501403995090984460912267634081764670086728713667384509216443963165900113613521294463692852057962278225870242927929354128100625087999700975227921408959466915913281815562710735178727316855193480816744214033084424393569743700246449769834864477530503922958080596319641005523147935946445910722262453951376845826692816255638797110794611159640819668712224807712012721897397781544814628398889469103393935760151935385168434175977532313511725017544877222052974204683847210821915303516569408999336608403222041987422063100196215603195667960201758873358759343115150485742846146712952169743367696451010200356169840910982624870545305485936051389090723290786821166526755881646821242801831422545046376724264960790649640187440634319928439173260668046710424929802143012088969763971436313607122633551288712420704632656413361479378534196402619812778126871662756195151053230524846979780119566882488933851564190075547141497499528041865510687311445726471553572436904353698200878430511152847545046172092493616023180081997844600541048738772431100927079702214188618840195918184431750084226888153664087597230205634556879406622208631660394848805201483496121022026471428458512903388618675309579012446983342685170013443088664655514225108251958172153135109367398627166219254051556274445057791788703011010811278063477975706614522945678194617514355558164966533096155972394374535729471568962496222251099495951557224113690153637421803586500349148101689625961076020129895828573056262976667281721044931767719256640777719242699649508169689657492510457460012141367181089066573150287217786845636490619514030262462947557770977564416629491023162394600213235282525044750454452920967898037016481688865195749660296917688101912037385289499799406980281355703963538921214509200133253178038043768246946848506517296975315457725753929046824594431587959675720267700727198299337369071592829528061701477085396206042272055934588782542354930760322896245286269853169631464907591772865138189835988747729418257922348069762570646649217024500227448569236240977749405165372175196129426961543033217554083114395608156058051899318992359764336835482189323695108695387170998837649790403062793646323522543830181961607395402982909272940499838311226903270331588937835299168192525259382531197065615774679943779660509816987050393894770151132769705031091518679803212075152295214910073824441668482560913985040295742207645327426335794216861094486190827914099419332644213627053822943092780410307047225876575120533744338263569364698179905331926546321059797783557725930953795468626660779415594280135618292670358028836565300858889667511763593418138279530892253128426638616869544155058861922131614786099174326252953624981561923615922823272928480895461088054494538844656243255532375037841431614581097541104887121797929649623057037800968103931671322679104886073803523353356687673775418390244323641735133825015706276776015721378157403853852534275228237372211519543441263990732670828250787361412762738793214253179347271004384220821300554670635490427972739816401869457772257841744457800784626140143987785753137609423864603184171243267236702105756573116117292358688196761600724140250236838483438303689017732628740219667268000674973499972791519054206523069635563507830584979096595973457810916136240079997332309825596134320102199579333134076887929418910330880239153996865165687343633450073041344376497117949801162774924453151341311622952998727992855576761879815116866007294197003586102094286493781591048129171769716323836287293986832812528285542361330324749945968806323456048508896752693103303706554831267503900173983387286920075294594755897574267282651593396934600286977915341449959376308608943768089698453598638085594666913419908150857688932615420176382762816992100847183271209408761797584960474472282383711619455812070249074753150105538266968855888360522680648023052860554489460198705569513267351806140898006482640010888340148025380647163185293365183161278503098761682613934305390898256853406595951482263110977804433351206408718377638249760732380047981671329853496723407062979882727175772526228667153977108804620704255196429431580771782322188752261656673986266450144957671055899695771851978117637358005807901034111550887657661418175891187079019541988528664346897738995866289873519606381471603606503121517448998064970827609019527323052333458958080142297622798920467449205768057782407397395805325424510879215156312349351364610857396176723756779838818737617992877244739241779995209751161425957807816030542132511543446892492536607073768424237938562949841383971574792294419666019696043225720643236725948977958750308982835053752445248833153510236095924832809198266609787108684566857857599918934309150615850184659966085514527636465383671793272609410616482215759176656574187480926055007793176572225955552748761760790385456424071313572862537492650637934012853677931404796607298799589060296216124483878609004806252779973769884895484362085443783147047017427016707338831776701722294874446991721149367361226350125869033116083350355350893633021552302369719425244728805027227072127800661409640894754716968627715597666540243309621847279077580003556671080179344879839796370455545696605368553757564462295673212552246601806859608713420221242666789342918182016277004701377158038977762420312609876550612729134839034367952302511814753899839993726010687942824001461672026348863617365736012270844396441991037482242759969068714398692113913375605827366285243885346867448389084043516980995744518544563835820409811376044952853364584907275813014349012257351152691455784877166553330805071037834642668481653272274354778307796793122026316197906539105482560529693551216651020881261911608514301450012680481694355887408183856240006192549267187397604414499410793818200459272512805631138479031182642431011584475492294647115342672980282875783056078807842234731937140155239759655394232961952158163565149127024692481080022852278525775776378752783875217876625518335567534910618273800229296970313789949321998295958310247415636169672456669599060101337615979838033120964090589507976022144547562748965173550744683319914398225354316884297753759005477938204255094733888176157382911881312673030254478081577367735938910671643664729118763457926354431925832624508425741191225423282939979111983826687672080904248463023710605982558962880218423938063184940426701719710408610508451806832177529596153584888753484082260120160401795359774854864691449133612497405209661269206950111051898360554330066332389522480682262452242213635318662222458548006128211290229996155688014638497569372012143537616651980368681476454126530007539582312727789349809119533359231861125972954568849617960771250724813315124091747521392981676853568807883050024674368236052614786056820450582507396530278317365957336747354614874970567552027752579416658936598703976112218452005521498144377446839699233527671972537627391006616057230897327266497245570907277236920488016352717593003890342908274072989497017895251299671784225190504554485783507411253361025104781237357593895048406002797155518739953199243892619440915469930321058995168126059592510214271557279060697608184628694151705402316476754285308155154461460467748365713081219299790512074702337189306675401248044301886464520314354466208477952616060347880308110825725712249539669244653889187007191365231227295318639930167087998884089814905835835741907837911633671150549187473022300395722404913410688019379857596654523314292502809509681344340606199615428113482406264523569428639656434895916585158723572407856047989359744556921101021461278352398356549568428257291270464820824092492431129319887179139226421431789338447259667264640330012319525689059892856859617539728560559630634477373110993272039203644345123889634968087728921535291919952820640058532687853752074723304965911785219889903118510018105566754870303062645951134058709592080303932122535618421971108064279312053901141813569056142615962604321129984263612534140892852954103056378437852646798133609594672094236142471314113178404793026594166917537296624831984401651777325696914331983808268611085166162531532360094290542030710724986754560806353145530548106230006883601185192313168746341201425223174377933884088899334728245677767680857380603319571506182843490120230956712075769251853378842140613740811700250864521768952694525938668790567349962111428115187684040102548774390463327346647952406836285972260782740121318517462383593429407288226631944717841909450778524204481596973084054377655783934245456653368324512799277930801266276875421727488280177018340387013499716793919265020863086969885032144839221618387850621277328183181394227276009858029326387216108720694914275328915698359497468756906863055503657979501012584362395343142592591840193880345709594469438521203496060311798847875335434547599520963102999292179508787772384612347541863426323310336050386972868913408088855109458618484076731686753109375623377704171836702763074744475014148797685275593231939403743275776137875529704505759577476316615416544993475996218396651203565570854584961566557695704221588138634903673575735435564562261120427719786783750442751135102879403280455576623191267881889882629680038176083409420503215545983046946415288733387950727114905827879332151394828879263900012549785547473454049967470477287014964971640951672878641760486305015014085836322516488411210922425433202419283239210078279352011984300120651170651080200425197496849705598348829821020111112440976865530332656561650149533486033139754068490005656057495589183065577715249812563590706009991187237974802120660445024398622600140420755584668703445305859394722809007482131531842376370040058483768662746505099296750180244448881529839860808804791002253498376833320099470732984244671900914959383491767053948871089148450499509273618781652834760698013046247430383113400067999409585154504640520896437089448308944891331034784825356890571015560777713039226498028525781910352405206567714653960746872466303774620883393701698731489175374852680991248323162053368339220044455296260758248630330382700698533450266894607795490996101373506252600640111679902198411094265223845647955731320606748930901847431237923040482293911679961246264033931281103238126166265504118587297741706000186376973718995155914152167462656715279077981912103763467019791351619809658530633417409355141858577973227001944616301262944841192543366993356794621357400425802003531232838189413995671269921351598636456557247457753240957678419691547507543243707447241253188946127167394747850138827536811167545428209293364683906958298049988831331422405576861786492187063156656930365938417062237577589280348944932135904630008194095806603565352846771060697135576781027552009242355357025069518185972837436722735846561765256160154621184787500189867901685126778274851796488090321242130817429674172306803199931079840045496907870475494406895177790204765153266176563684048387065803470031978550506299526868138910715025729107281162320786199026484985836026628400166636157656145690237479616512153810781866335750149388181296375142471004920818009483913092276486190002791368635613282369175377279275274444134834562986466583109786497802021896830316832170558143333431803641655761136306355582115533975939310020922618855074340065499787172689705012579471581295027644640416090481701555234962088705838092166426875293204012171596056317006745111427577266508245422022498046877961840432918675398175428276426167431550733031808567022941435103441238934659294358323159402707066763243759665795995137627467758068191020027529219273813258268134987430997737525453777554584710539133228377549733502026978470138929540959606317113129592932410357596635166435896778560318552593765924510107760436515106007157447641939857653336223925866781058756103979504365687133009347813051012231766583687855600608297814833665813857517731978390856734891806077301754925239267098429227440588855138150864734007223130714019782947349864520112570279066110698145582825410530160448881651694121259702599656031191554685885709999798378911932334886035003019291662757047551111556219849048958987975160179184104203920306155402026827852764307608236623757190406841911918799775068117609921148925442894718130943912424017872942816448637580261887301014757594188715488729408364566262760015423627944323436692988876717064403855743097330135183951124036182702108618637356744860219470597042446331518774813375285220825340887671874807481135270397033930559714128820727776582012760185556931263613051901252506954727779470681360005067969320911670914483130216092006835981126182475478227977073085921111511614089766679210814260320801517204509225025280511693097267841132964082123057930688591490280291787399036709700161373736785526394615454590586648618918103428874417351438190368246215883117865070203824679235493043568320193005282221118567823820654043588834877968806556809511077253947544767847713775889322663966330858464804281133759685792248154505212474137212162766643524694253900904809220570660193987404027347405467234319955987455010989433105921195733336789514249020985908898466035307663308320209509398080141874226744012676945449633356840252294011904029252557516008024973306050538348786806729376058749256494861403782293226862987778246133273070059694422924611804271882787962667226416379472695328877106102715281469595043855791324833870984957739396478733568050254662099599996941045970010866023349198724018422404951025221584160640486407842126706018288723050591876160794762085488531206686285335912649330073777000198819506748314088320531022529014050987844043535005962899395364974305349533318488315453458621874887447387612191530945047904862941751855262725805158202344843559999283583828590870003351279722108218891140718683587661976735479901827447869784738653296982658289858759779378432422081826510695441623345230162336426841809788777216373849379738187712677900066123263721468115215676527076458897573194203654070172682472884136520424071228841119866530914969205513930837936358762976247742937498860581311863726238532130345998512941943285365996697622461481008967079790404368978662894050854633138802391364407483621587027998522667848155734837631318774908988526590743280913204023424537927183590372700779244573060135745179791161848562579925939186480233579603327678394788787894987262211347723822554879469349155925666950270918599765627584359616029092049916016356604119992465541648526286919533314106748215071202169538319386112116922920347684438086992854405376266286249351950132345711635033457074397776646062461405582104938937933204642958204330290632982826050341617963710659820259440191041784568551707497598426394764325361428505134797839956065083857014426006062156720873981523273947335241745100358945806514626499390802297204106641303863522046268892140241716943488881618426394929980557036002452738991412011618813401401757323852883361207607672216810278755003756155006599604403259200015573246103156095049261053618251461533482418477576624928094684869518518760020382906773051912679106198945694765231143548296153595988050340509215570424438910400657842889140502476854431055206003634472158705191206617907770445819037194732938250901825925066833863506716023886976432634990417975932113855604916017221229981418686980233474627607715759377053484120793367868886259507292210303511394188848597373685696944869408561660756022095178468543856734286887751350897896838393624800964544831343199564326079548859074387439077893382452995153777922357451335298741404783656823388803993914328138713795609729917435769064420337353544749854298377816593598616354717694763499473376161637449783092562337530178574819178252234348574751030408332922275669901776041454359701619679832002052617496922276979566383820495569117885989515368428627586173877140075304540479732392297781768620094703804754102195320035208836263222958228165213726333927751169380305127385176919893780580967456442156414812818980733007045493365629797618567120575244791540830754888935003348045940203541464938503943996498513141605284959050315304214844094684016607470147729362734586852298295698847170736425739058763704182949418070225010312042474824683180879476588234364819203497441288010873602685573753030547168737641951214011545372402753627519261351386462294016441815942632354075743358844355875663180324737701442911743221349615725875950223080031567600357577095840328988966141292284274473744882105874972045535952013664804169811766132457952583874280580964726024625928552492024259964627062668394380234851518031330016236448563494573621254669026557715826176789139691262966560227050595745088916804105604595627349889025830858322160011969532075280016428981087564365258877573549907442263469437777444350823613492861103107842873695444733312683527486407675298642357532690365395654333593965316812567891172812949043809914494661310596433306104863273035272943525127164804373031353624506487297293561351882279136153261499005367303605418898950790834705067583880328286656729834916364854027941949812555368798652707502782668663297897837560146864393451712774383677608020287794642250034627479837452037120327957101173171289731265831300979365949960665027886846359060681604078454705432762047578151773152793513854622818929478186028935655482683784183635805531055543959617608308686247336702254221297261600942095932849149286044432969298549758501994532444894303655188793411820226743221538881019787315250830720974192554013266484249074190208465272088401849950286334457887095110776622080805941000387755707827811949853494494179585101208887167870221847013446762226931418121506235245320736353656366848447147039401308873763205749514729979359923037684105184046787109857804029794945323665327456432116368022664865747985181232759818598979414032824217506591268556093465713586295695504473426726447202007761294730668222635426636495590550218566443913248099407074998942207985755150222298841257837090509311215359784177413056318286283778032141206517222648962573765347302597040096115557976241524894346080348000333265513256907791714406283557770363041075741921540640944493731847667917065238559307676103549314188661479355115356014097960612022622043267589295767221564004704713739279384984426576826512087173350936355941262942105814587085954385276007955128086078720206010026790711454246946897197626764592474957025694746530451255136834989972198133432868088920673639126637299308459020887845840690548765963137328782874421991740278787183658042640997270698744936134238383779369205215027019596233999904377780121496157314771206954569251477202777278975909222696730413127144011738248443793194671801728346044854311268742195470126301298861524145380187179858891484359451017013747785173941937420348996276151072690117987579712870013918252900058382593873851173063282270216935293255466923175701306149081018974646889112008556321396959501811666561034877823447127451173360755364129041638362901121497416529807277982995302473377967552411729133655311249362673822424795965331000858917925483229256311568484515378416176337697932835722704679001311428016910711329868045000081823066871872947264009962550401371397869548940251304387145123594271628234517494559005677633667654390072596366000771420115642137246234500458976731873487143549774238345788015040344640783864955617794867057438319463953059628204592257869562025449068244643797706776607578345659561888550034861479513025946176608467888763541110031146140199071905086467587162825938881021383272238787206354952224255093718012416456632153154566500748086714999566273753356746392494797037272234917765856678315426667081215321597891054533424762092947920372049742295952374942570644323906174556924172330400567362116568280346756841155803913193615886888851188375581564431317543942114149120465720125158838761602185712727127749840347536352224368071726678676094852187666581671353640546572185277278348228667602535379538904068031421061255506601973442665472288536607700247164862634043887393117200978557279678862340712461523217860080983981267959950522487160747396829866975434263285778260114698364968578015191993210074563130535815860685884602270635550961894333897392045752148278715579931052871878338340149423868960126598929655585440676150457828871068585831445524901184649704325882781843518888604761982941363379920876667310033745134320611111057296209003560733920666015293197036390155162180425703945753409889791475840518328654848490672670578082099819674573567154110794498569984237782929030590805668666032385495257040364665686687451489532041319413794056476462378164189180657720324328121005702811075375835973645328479321386179859238230204471725075767045036963495742527193020881025671407403819541226403761094828399240860104637226490179275189068141075792200886351874881783262975297215995549486171104569643844410699008474291826752044913077225634318871167556505612227943291503715191715312619975421747860466615594520982885423806614772170480541217230851913382150347305018962928663935268550761329569560824016515761649092969524070148768992820540127429443808583747910721654950558094782831370371529733506098885320170359335531614660201450549112777265329662275826861728128052671449176367027918568442130384216498535781869333127026246047385693281571422942149519436481321896838466904672848408725442097233549741665966644655307405093416855260165370354284360338622362698428727939851784220233502485272234671197816155122697688495882383923516128310680074454263101975636562192311717088522128501755018108011667321839579720054379730134202075732221119636098138738923234875190308223925006933062877884536205167752018332691640095579960264868545633205441701010374675767674692493677469973877451042898741001965982447701605607776203368453985695794881876366684268226069700861032914821821648396387863942776846209905222829955924780189545780849724381404342966646686494269894921792437001443649612025219481890360516796861073273599778213076403987425212215439244962432290619551876451799316480237616301550358710948228307622151593492974231535762124163980519338611624346786000073446069131285830154223739303857843984265739973025670412772764859941902220973412551145263375811466872921711339377906079990676860045260886044285576864295383573985762865241999191823680459616736018338246416002694452875442131502173338875303757172745140115785979786165114091549356834956102045467079162918224049089131923639419782271750942085308882384175527335629644827434449887519828860156951741350775299492308018199496676749772810072434803723934180812107061453555151765044574316636186399015102412953624040113558953225424147226546574815665317880004277891769982107595011370222713576670668866210759520162740964576306131194863273954981256213262536138516940045164641694067115037888544769383263234246867632238402813920520160665396720628724057202945896433637360666325581797082836923336915778890968587728155576714592921789431126297730982371004970500607895394781400746538258161142334946256319504070065520923524072249115414223088080183903255239778657967776271999063276743774270118895033403271769614850035377156759119384217078855901648955640433088422615810641401701497316770937748855963969437724824007503548729852250409387470743198537403429996017204148045911554919174224789087810378279965240183383460113957059704861896744238977708806944680340380289308245566548149508708079680018824130725468789748671824080013321245749411677722607987722246224896677599733103380492224020191955871853989714530518063009684981980745372159495638442815091029691577110482915414829013758820642667520918286691193913044491856426354646398992613704582098262738303953581419990305987021426852721744064757792206445427856394220123231461921099571809241079976279818059171379288504738051392510284671149301017168209277178171257765447406451296727128093881586315682069142691791833257070416116749479790203327825697204206189579908316813056349413987975283499594071572430040238429548550471911020337153439238146419152801144576657762004814874305505363039437818197403972049823901958382408182776957597516833753174566045153010865828105138116660183342346146654697579697541666090670444515318309174763311556293486114896693753611119870032954698483216811633528622494249327252843978860732843171571972912158111821144524920927726222231737114129280055539567712244854545943822185484865709608932626255471818613210650887667555740689231615435935703467772444442592041061670149248001325800912164563866789042530362817857784814614948632042315367110516936328978123542795847679154750580349483092922456009525100786851731249576934027791270652189023426752285512889187016799719125520146508753787842532082697384030771258141202953573469930081267712989341569780106370200947705819382479206737350214291143663779694578539442174859778346219875961212032456520355872554208593811198479459818842242730998874502477132421117653875563776067829384793024503489068334089820210621553852490348069732902771238924982142788933683247212470453627391085278489215688133886649870022920962243835361039328538346909624663046132726542192392030202555444531593164515378277040864265374701296300484621710264483789059571029702675440274647136752716512980091773247821099889780248502405549866490671166758104000665856126595061116637138817556203304982077856240801629372590849998878778945904994897139764822241966991373061264387099419758430591757346016473654698856248880318289076075397396272770500851212031287910159820287615199223761440105740041792542595125156518129163192738199302900518627389937152500021710692513288159451803271968799414711918627655465297521787356189082832768499802750033049978988639017630823368047143341048211879632459078913635723575305796852557214478739096896141013000639402050630595890672507884226594628046116371732765391602131248830209199268359621832771897149242432373971271753750931321564732989921400599546376308804844504243925466098439252095951446721352943459494583059758667407527573477185240492013298607452368855780472782489007207856992948566803579546395448621087297471951653897556791031758108818269640866357442760338057113506198929909699871920428470423721873338534902683568312399237726743757689940163154066456330594015156923905565232462731371651929123497252773452266695623484434305357152306062717581445861739054812677269569898513593891682990478354979132813136356339120829142808426740882293466616218182669157841899036713362904632501539261151052141879533285922662194441036928757223736224331317836714347663034679003644521368514257034626581752221348110061608275838309705372829326852849313647241117838098684717080237332501719280380600182683659338716302836935250002222457028919594456823443965528866891328063286175277718127724694243392190341267117576949633306242001400661524487893892332984037867984664575557106891698187611520695736280173765630564831739700888357519539647253197537514219820374718004421445428878481311317897842434427332667182560895126706815558597461647195824007031656263375664695843213099346145097365967610620122880873410954352391458565685453859655718276279013614056505294050851394177107630036608023548771832358938983140830512954292533699246142292369918881818983247790792919281147328394960441618683286370643505083836068918188586418800095041986890135037731956567975115602724287373603339310941639088747346685783916500062950905124831155130581855189151045077069298382302910241773300977224111196965225901964124989989401671372646116092291055751314598722167871820866801759889160699556091763475454347349885142543433085815533054590435925947756770666871295461197117149320998699097614445787724595569362019107194461805842983363345010418261787481119911181137329914636521883882270262842583082416351653168248785153392401941031979930901040240045172631497250095658475359553361142649305196654032988112786003467376788032503083764573091697843083656277427826029259884325643160416185028920974277395070859526969750078427940456968263863600075470117772794163516764043954000860370885031652358569684125364368798216429240456897820966831962391449086386714992144886001131401109464820054370136757143775129413032722793365631365728543007515566657095971823190386535256727061177433359654542666825037004238981346055069684690407782950578331709305102833351192789338134397605782187251868123153622983565006952088196725039037603576872137724845899785404557274181636041215511976272918419430709020104313156385846660292706172280614664052191959183454248464790256314060494984393706215019523671061524564634725932574151373069639357841425727702839572004709949380875920954200119961544643309509778143876635817541130035898447796269499775697110929794179893479689848834713316151763660094144514572921971943188292537663360810239778558844233083840671874504644091928939207797420374064510389092295387821529092209251756310668239388793795194649411662758238159378082257429226369250894049702859579279460141475410484783015199216598351208090888357717157393595700202217845137344384806369247185339448738997168305542919933543029658529704448750027377592214430801582848544260463224527923749644993801341839304467340695489983240981951709771468855926455859850637094110817625543362086980454822867956193524158756630683680434128867683118745448423967949585798870087177864618109023074682350680634453834174326314769473782106036926487216697301743831393582181901634440985688251939732611598610097100663823699211460151721402322813751300419403052230645090393591206522787560959955638196944010092592354373993404423333208311247910438247907363074597938933093355579564871304599255188165741079469287616835888006928264663854773861093263873800974286832924271307325133773507049916991467487576599380962765070671110531596716329642656053151373565235138029864934823447229869030050804871184051103604021176148806465747708420534941271211160190530585140941909428327183742983117738258154951816238084492740094416000337785654028786814845840775633621235091129128412089723804018090774307132685194051316699813772700361659486759557922722171487906739813542681855117753726291622530762940149614537233926525333720536522829593945123634994497332919935614442889363539352632525326276152415112978013431395228972954154295904708239690570120588126725217026825010985418164159636317390628374622828994569951715452115577659594770601233054518174736371996326818166356731777340467582195911204248625131450241908266065465770833015584688336988173835730536706115342228001575057034726506218379976960172886149387188378399341939553640564983906222081300585449780781330594218388559198261981002069943954686502989106689684263680559321617777694490674802900729416766461540866535369971213016305944158600688996789688448697544619278586563167118637731897033753887014686021739691858900719758058125064334810145691950920413842312897118343342177110502815603404457291771209964213046953853418422378244211070285717365331003371240957153450907054188372793114251661800250029679817014040279315841641684611308173411058579901582141001194662433214065928524382852185897749655069902406338005283803514504817706814077339949086735137907207874043354913204679029234082883003675245792379967311108267361777998191657107440397686223484067788795790752886044736655083852330121891934112015850747726124990813754525082281844265519770230016686440265766897374789267680560392791306372725104896642643044526535040259310106651001496987982399626705228962906991567800801361359289605649390188560626037022944979120281923824297909675392576192783507302586711010066408640670592761164671433226490027691111069404652387196387071949671204022674144796799870283184902260432431752636942230646915900165332406289013032565314326106900311325745817441974707213533053839537406574264899540349980021775297926782508733978997127892250686062421418441976293058213612554958155683030662403970821040441838221056847054215672626080023757831071843038384047776386752216377748790884257663206299686922206071635550434974506911992723939228348897676497722595720055685747725902389548779568364934924875221179654575764477529881838918650213955608351610047341618616307199813541422472102705847794134533703653677000621948051147305073267752456033364673561397824181983445398265698698549372937074854564514547216272663666520516608546912285134363778943731429310127603886990329038476970522775761855651890025767788922888885200167468019534253208247216571441101319026944993981212329065277712708376467928062369918538686391677973283150687161132064018131149255170966722582854532075080490121302709493807315267166043985560350248378564165084550440826315803442897522196956931903709421203923101840757662363597701899011471886034398299715983106934782553937438225682276145353375468742831279564160593787685785928896694478654808413094643942469849373506901347741631424498987358011165771388659049809470267031252459878800360682839760464337217018967575727203668701989333551480939207223868192058960267201210806024249517768463033506633802698778116945428485656600053859660463047898042387707923240736696637273595312200413858814595239498956640173729622771543787509041263906398948848300350807371877069533229587188620298049945524514377841831405577094566722641833203590564537794356468846845434693704056772852006553566139268940434803354712347959002707432747704022389350252292874827582396075444430078040023331341003532199787229926204725007156366472075879593495700550314833481968565986108297519117068342726679383726835500432689513929151482556089292936864701542110882950421703756938890053048439109863260107956518748110357753590595325221731976659427396378325973000147415727106999097642811331543943481968346363144820481152598941450443309094745417948355007055328703577191865091882248255692101251958659928514270282412120933079800215143114684856105435054636258157904594621048345927423900233258864490610576884061623187162476281191310400344800714460801291071063387668599411682449943822868531039771664408871967922284670116516459885444463428867683240541076877049427100819754214672469141476108508463335118251019194218858714837735099782651179450434893680492353498217795343470212599933387441996115661669098243108017608702050144201461602842272539561722617775449628886786752437694242590465812199147082888904287776951153516737381737472961455912669360172081585232697771957386725442602460244984344316874143149442840945046732814182290630993056943896156903496590147756521794269926310994679008953697966966158308296475688637420097559900220332332537741019603655346202852229942098505715114555547409796800088190880802401470054079223963001933495778915915219467613931351964593907481086809115352002026820282838509710905997744447028169431541274072854500481415909115984743315919480310937610708789930071112757421121519217359351254777940663874778636755574824879992903454327500604840778221653399617589626204622648620909987970837689786044227021308137962425199951722913998762992668051403619243046338037506468173676729602073600145615620071050955734166925951430925676918521760684243339379592968795872899376312697362060711123428115471663152337508147304712979054666357339476041186902372391666643366218933872079110400161390533980395565321685090862270803823348736300921850792377403723654680387614559576861432193685411586253164782757446954819315515227413257550644573033938441053684355354952522133646203707378271764518299403395736805066218305831081855542760839084550339187021214272520921976675402666008407896335946414691133893944855295550376720031152580048446271979937560977245380130016042312943797010375966259130237248765896873544508885965319549844939661766948812744389432519634426309600621196439085337899431741170071928574236615554011546170977298421872931506225435810863110231034179354698035825117820276760434865145370412782043614134575067727802916832233445437149677287811703643897452528776241848468231331796401568503999452196402425011644017784807068919497460411240771790803711625918405099487501995529046716016540455605324176404191684375187404651200783749729329554686673837215975936298079867607335940124264306904376198171295828940562568521132055223622301360322527830922162587872622712368711676478715068109365727999104248165475827404111860212846530641994419966930802700114572539482464525808488189239292168717641915307409739536826357940458184546223929642094746886287772870389809433113849076044348205721005700032361725475261767974276943487413954113257161512626372301606325058707545383820449686607855197922911162091632097787301315123513018485422511539858610057885416531064059950455547013160608886744046612008424334848540400375324183632585094446106934675509106902491152152136719610193570246745739397223792931293172516669409247537776904771751146873374998028649985400800114760915497448223998174985828610192108476346828581734358646491369981991961194084362265511907149242700781793711480566067983950317127723904642136151101724957570312456436286955820604662325538221469217689673081933104873789434638963066349386231307965888578304915352660580843651301078810554091124552740452029359151047648128976324832897887060934173132451407686310573888557877813220351702477208712668570775093517266478911058664237995522944703107282673402615561299864821722180768624895583780675368240976648053278946225493799454078814967202394407087616615509144245156412622002349185382370027397735035979336457943207375745429156104295465170002039116417785141697274800458138504276298246421147846267894603331004890448367499477298705132515933898906368317537790441268401472463982559539201181304487588369269248598479423214660759924067483143708836294888938613494997529222670589505980983197315867483361007432725047626991504886126177570273562959930787622151210731707165233457939713093197790844690055806279946326595830531282963612780585083222031261156853677273598651004424820753671407718995586654198560811683524223620284226327447946878895521620385011882926436797744444049928344786920006532080378219896880507849342989911491908529368607140352612162666118946597859271718806411678212602513394842621477063329548988657494984103189563541073682187853007477644688292551902179114447614723552419403710006687377038010558357991679000414356370452445235180047173865495202927007205178917306610811265275688398848077973197578809700193613861078270872965286783361907126398683981600671477089007432776688504853146200397645792885895383288657823693224860850528160213078230879439824356043467059688352597821647319566243426543750739655207327812476703916217690904438565782169825830639128057799866648997412908474815736605758362129301982675130878301711141808062680703490592030736185385450658525856450610153500969311175317115393976597539446170647171025331827060163249624126105522853127007965710581745164398133780310294209924141527752990583640004180785046330880829039112161309839119111338288992325015713217769332968690137579957292696361125058215455739225366644135299575168730571450880278958434367880451631529221103465013206019539910601853556676583495427293451896334018395727387406584525592817932523928305933698720382699647071292086578880952248420619921507529441780441406925901003015323773900632964384182568284281209801422775648987692013701823688693487855697824241691391667197891963389913205693613466475816530445572800214608480932233940799668872713328984661076792161066964871284329947086645030226484389505419731367410490104972034662727620190125480463163320814584303125204324644337930310753004077184043820186393693113278860952432478682405617679101870828095017862974292534989747305537888598066623439590634672765627204434544441214008895843396441099581536200140611946933262381928308421161498141591630608184229142079972703921325211223665508082280003571059194701333726232405037672253184560671133348845897430338428794871978673136249928756486153835442908421247909482404189338628050645217719215824624796869880842417133033895021960933381182243442724989033377922679903530247421099501930580666873917307081878302405526274705476579973931557703894891000047553076879214808456417658973578657934469677747190889322578624613774316125086730424793313235966747269906126235139876839507533590371117203149050468592971355850254374251865980588702040420957671214478718963137350129680982645972655462823133804657007729154087120798252576889656577837225821304152059299701421580542469438001075690386196439011069617800115458047923365487728861017319542484372309783110724218918393430321802503478471539411312087324884184836002992043010629331166943699030880429762505936843680060348020703440453702842836664509389851171399718137890110242895510493917861324419594518409583321415063304809794965321586088171744627356223808655967706051727963530276397588962702044957389430736460429758891239540499918810967282928162591119261162782641108320247442397077529405716507125931152320948262662035674339877800354078350380579064131182833323702583368307837520982985095167422464932384536253605243811369689593916216701733318987980537719296001436543964559944160244688599477965270644075668381779733722895912113965592353251337797407059004664459091428812078431820162868655154919332482062905661971580660719265162600792464215853715499790625173680006073733160541687646530167566439782650739488726923591769471187223742649867640474561090245098533332806667189931050181474602601140385656753233096426159048764009949146733251382335584531409856811436343077267972145626978473649321184980860784425958224020457755133312758342643062130701622037422668004431105078238181468348365639874034819251879059088192229705407210815422909505566802068731054202685475845461133962034639060595921274899861639679718229667162840601286290284272652657347679915134189550891118820154083746997638194295807453746609008751081345324267293613406887279772318616913261911509657132028164770451443241023761774173430499260615969548657055161395881877442113337145416962737853521713692267736480661811323008259616458599929202368105933894388716801439033690909224131024055970016186316915133303510785551277625493666058540867971475152644768614541229939965568892087465994203181480450018829565230215498411568167714345203091484504442102908096936555949033862440507958076003907200885433996903932714567020525474970485773787710673062034920784400263264225138678306325758765408227003085620126867365175979110799879349362806839221498583427942807956337848130418709896031132901287752989205595833039039942950121977944762137244636971448234229181891420531752478544907660165344707073066747756558661869280439426026064562790431513632500150321508229244771962825665068408613676028440869819453206243280827719605397013835834159048613968756295500668387580990253545680915616734370961824655418810623575507707718451151477508886116063844160806866790059687160567327739587728760947454729482148425838829333861879271500552212257461941419757672497851872379107200624465423782116678226700275009947064504886983401453712579835870890176824311912372596627841044532653898215470729238375364775962402100390604125826293051866596233418475776229322279565219895806035736280745097764648698260553991914875730268729691532563433184993924147756202248917671355391015407679931828758876485016119169452513382972370466142408256566233176125569907301087721401007388265314136322053660726645326469370821899869410031818342165986471111026853074354169441105768452525110287351361737592783637226722143613360154516533022849428488312913413779847935830526452181335593569880233112253345856233132122653976782210420537317960132082029520467858978786209386578258944574225297716175374944449981435300805098881109051774267535700065948917738637605455864303427906523156902560109858678743877440479298215055404411115644703308549323532058993870525884311417065481591602987242230355782317586272695922310300490221394388724111163971626195579366757695751154396078350369270998252771875829924824614334755635552368210332413477423589458588906553404754372062927757970952472668385424107025822320705939860691077509962890783966938343159272155823506667654206687879954604031218488371505415369159063235740983077746703253664466069243179765122379268049683255749379395750024148627125108039070001012359067345195336464559096952398513220174129921750909370062845531024585205771329785139722608974483786341294279320061828801301630195325695607665415776344756715420810350698321996973891458569778481961958010279107850965256396322197635218396802496641433050791846096575764933686528810327282201283833484733515636231522469904884356207351469196621757259165406630843720846859285717111999659345289169314234563340053422706809583631063819754018817654794862133733524747587938572054970329550296027572374600629980819274030894108580560184626405663306966537961642523671639613088773790205037888313674796634801056799892852491549741319626095644289238887381857276185130011063427780387566818568889976876983798494215011203488816006649700371468050582620353519491873637770638959607049022078554777260941269137293726225068216009997169847393306221895536025464487882705240256420104336882901526902604349887069657536537275138008367963826835256647074361660912533354059303254664915192834614711361707627374862369212570633631295818746092666814924259102688849499012171816621481004167222189794406508753036129829956234757826685072383323182063132013043454007996993210227180497683384286730019848058538864425786157753592339991371752767191431580930211728230438106882204498079021365649924452232624289051993757428356204746521889583570638415815433352024945277806598849125337005214851969423527750985037962173118143724023153674833952876521250421609773370296485940670946517250702271962579246794025264715480640599263224008380157387529925765262755865047896019151162529554916698208841330115536045281196464303292747674273219265046831885182678913087992187639864780969780257511480716854518710567397527944916167516849688419737275331802819391890370695519942964400326197225212236234884533813978797943341193586897757183225400879641806363872297055230823559479550642228845018026548314190857001408283825397704065573222728240456989478384221914460678116757331980908559248249399591547808576885070222802494926957072983092930146574878508303369295001957576486844612854661532405317018144777482458337448135877416532891172153401808538974669214263502118420222261666400357897091274448250308683717753611318365945069980692091758161409087969981607252557549211831325914695360146208074755464272532679244931788499420458828566310950061172928977149309239960593033534666865551208313889973135284332636340969473485962114348424745219408257842404481303856940657152542620889669680930808916071027791684114316712467270239650632546269104475458573410915028382609075018331655737926503653236922444763086064556109715202355504156735319191440121070344289020113369465989356628966059475161110798984853771769269546687888509168777223365717872444715781162932191814334345223382016697308092104427037688856037153955745353931304721165543831098270785126883638738927429259250951891193383502931820478159881648530136388267695196219826829154138683833257940368174707961428098138192394526389344361581627240818475407814675838693088664961361473841670735734933371967719337306705888009609502331831806734179611644843609858720769053768792509473889981095561169250565493009666549216896432612997473134525886347030368220530676259326666591692486255566549760721251507253872570178738165014457295567140348968388351668649433188969899750854826971801884130353982091248103500886813431054147326954079955262816925352792189075953422906617801385069319839502046074499891264783577020818703812351941270868718686597434166040007074884526237696421703168183210840854620958391508868305093927245271325518741435661697525134433226171905651340145054733953156431717605128506837597740323309227866471201294788623997648815877843554402237683557214419614274087044478329300292085673130008943644312860942455527650495934771662784567754280489943282038313862423358073384654057249051608423737217850252559699788885530197378476136002010389021212236137752501998315713937890541342773848927985134511877148600901136819841808072492402470765761182689588844027074557550809676969660636163995694109996304846090713930439244586169227861745879083932272239350570473931616678708492316492478517729938954637828193186848077548549423860979487055904681581914645443160217202424546069841098683744124713731321566827714119076902704963927430049112067892518785678989889127729494901168015699235237579710472413416704741169448511513373122574314066053278875420838193313729461526682711003178423077983112931557999696692211917333042360783366385979593149673513324527515084778577239194609222836997479140640307151399297875766250573749719563618664453684481989869092562453659287593043694855801893997862167630693437847840803343945173343342405541892270743464418108946852328116675716291380469243699716481581618471181738894966407663244874392086271756613778267876181480750016561849902966992412927281156787352954352316582547024359655688261769433005950824487476171166971093558246040966290871173875637615563919416337879802885345374854796697011284556943387475085697850100419880037547808809397492109311016855888907542796105399334192750165369677940847864532063608475668233224092126516104796066776011541520968313696249527946417741302942279916480958410096674571281495295913729317218947693852860496027401762760076091946378531044837682536639911743178222555640930885154214949389671435025023693183201284533558797135932958217149724958101080211288627715347979844180538539189341542227426667461559591307367218755646955864244693464031266723419860000635462641414090327038560107312819626025025112066581241118426059292328236273067587777316994033407823925712675328011818341438187281431529296367827939904262220719228302267585069658844521965579096834288645165111848989699525877145706020726507955668756316292452875089227154639546769837727481431430885552241601583125591646061824824324835131731347406354445806503203228324104551282656032796931363578577878008465873600732986280099718741515753593133159292798467970530926021009336771530281866746517102234948327017102969834369454526001310416386065520514608201065742851017149247822157738263004631736565673374172986695510619497007595255106235231148240334165794470501976738341112129451904473215729046471865291041861527437780358685437442354525968827285157756032449593297232818845649675725145585558222384898612784462164786493477866527152306110343982840926312589139242510031109651084620670447383629136128379304614300473232939493567473443180603955057799389930999313801881492154340532003525692903037669961465717215217496426134897853082458854255991461528706299758598383916521808421397745270367216015274343900027584839911266772520577120909695580716388712877889701205012647418515311027315426907786728396122758828640160918518817432408593921320327574136109259059327794103098665228629311138004784696216763580248875169110128560447530779325520970548141655965493734185941858833746708600154751848126377832990242266862544634067028098462219689969215810493025150832771324956253374625399775553842832379161365329407574954470744673648004405711933521907084640453117159887737160645131725572632210354488949467758080917511561690351128426687014212707316468190549409627331942628154685646466848770926315793836760430026907687872283101535106131321484498123379863747307608496201729303752761686500233830569550027067388459765625587588147066083230586113203617337801673926103911492410207561156918093397351271362926684119462546383539669323007633322962725167296995541155075359221728679626492613203971833427129974388658369969012457042327037420036702919418367098600209048750467907131558041481528830196733041249259143847484732347434814403676058398629302564782424354931353362547415784293271136061828297479717356362414305874792530139695126637935812282884118620079489527133962689919104464491496219997642526058912724071371476878647506269342233103157212265364128523060978717563951315493733394475581929385971078455168350761838989884603372269990409594913253278812616936667144452150757040691711832277269604621855118580380794287022627111475394541593959465408120641718864407545383993178940469921877758750125559004330765834780762219393887744806686254606920036851810964925240339434193306226006491310522662913147151299051982730429345924071994114691051630421382525792823998447807422001349463082862711451689574323101592064566680418855131267095280806847253436087307973730173658006216948782174335237497165483614666244277163658400917222549605774126237755052335827990780597962077015281501080769303191626518084337401107826752325169864552322388990713059838409056808641185398528406203691231143255864443157540187917047884808251413337458558565816538370223909092103579555253209290395496235104472846078240944651366755872584485611302675801199945976959034692750851664772987641387359050922656254667269273025282293677389109270798629817399111051980975049431768303456241376221175828916318334814719424549396020220079439584915811024970308419309658282177172183129657978578668559307028302269862579286696904959995704124030788085278171920997355035609289276804636109145467509024649301557228365872796774486069877737594760293586298214191342202257485527618357218122848183836222630637881453154904585951068603156774888359970381897160885442485350900262668557080600657235028674833513672041736203965750408203590058647955404410501012295678248339852965617745719047282395188550706106227944852671640372946585943402352391710537856264234123210357777656882220805784409985010084808377481415028651737506960168454836870942797673570817332830663900704642481799149052191520246916560152802799856054563344441402914772779014656948758033114373917273739080594799173239744149798260668520803528391739320528740848474520369157797167404329561487951609188685103949320698964089009559788022529047185178568671025525808482373810685000183335285833378871587210738283453839884365058598985096320940107875128966992486789474811888039686914458994588143854830001145618116841282421553507346163277117667814083743310068087760073961705999136027587229418664426208517838236740359120500105909749217417200119094824241491341465182839309195352332562687528666401276831825571391526839694129579230288038622540838601644751317582630870619813772545989885398341416904459808590620036997859567820660259492572779467413899844245342826807119798403761211440669786095780460338527187086165126971179003552070002333335282311904633574412578623545174602516348122650176103447493181154360968487494205873404016520763749454909863544140531831654250095839133318958540992792392968203510805589135325478247346951861925969825502541709074990821699055665547305992365727503359295500326727802363894014685762480679814287445653809344840304165694587655197233766627838938435210000973124156789315612312997562912643896230291120914544769595377559519366492591334528847767657081154591785978993449780721882790431199128753282185107083909306576952917902741398007997275554406186388032951426637899408206610785791078090526627509403877984592029587934766544439267169210218104253250453408904639109050527002169142527771557379189176199910796970276189270390211634944953473355731337359978763937133160202645350367135171234644717171678132139564416447357925090019004869288678230966286320639839104377840085675531385602511699281442517111050528741768159233472283856266376544676913593050731510015156296653110175453430551822017249161780685058235739480193550826063088834484677282955417769734630754213990477640796449505629376629411686549509385295997310113247549421917024995580365885416717845615647369636783752199707476575369169247683826192691272490855208513742046359618409385419437092313753576632156383570985861717464091065916095179121890256118606111378611774365104477483431956773154173299085098907244340763273166522955080377577154228775935269270441871777560515798845180071846016160900776552480053092556315160771735846289101784256160181889432108188084713056701240115678737590958609551676688674457053707775521844415398510799558727862941189808041653730453793455163925653844205174362141419036611590013818674935591552130214837371255553075278489639288615436857860165521414156130431018244781373721164723581829978098287328266392071754112307422997022232356997604990024266463723071535097641363582573465288188120525951639566008383671265107688404961920209424432231132724973773070023947841563393607345853932773774183580843427657176183352481511953452803681362776954207523426603120744681476131895152900997965919944830335539279256339718918008576533970792485771853945012293389620373874595235346468954165555965084143399069648919759280652765532773990362384469456530924385513846774227020593310347964342500909185878146902175495732713120471759440695476016524217250421097655193155224231692867003022801775964240138851791558105134199276169125899781193137685085951556253609308367438492400297111754684739009497321296599110885633427518682422357911708976582372642571040981551891915339147552664237309505198702055877391187516760519410545640746975313133038417207477336432261929240617142923033282539287816117618700343832470182798498635923004068359264692476070856064569332305011021243262679661627882096013048712636433768671795598625323307917049733090669056757014869294116734526927188162468021204297857687079868081719793671562120222643719118986487942837000225113469780368918230084485858568336568481009640526209636213053802130385232833949615784998816080326963581806289620079313415138544060172154815215553558887287223990773969978942941668818820880504063477913568703847811339667624683617804643061655140154892556789849692248672653601555388454749441661395057054027764340861516611466126484026713836391981159494693358684630349564240801619640041718295248505058979573333525093663074283798572813525193364834402921048451358461225216366953974213000972776007025157977042447620038501774493585831998125833170444242796506400280610422866466638819166868385914446908439102887032467885567638528755051522711495260746956987467324122615956479760185416335856163399347595232488895981809337086799180973340846232393625756951828800594691335578138402770885670220484073783528984288847444801040689374173778716934002855058832505008302029511610556351194575257207366845677806937370357330871101880588501571394944238202260740887953255574631941237624021362242240050794442750403089832187650741652219393745762420436551769940524396444808707058240059639341818091149206684331291456719781827206890009802751432167105001215821226917533169243908909880948647198971290532601257309695903551229873256410185359472635532722135998275414128920341804765739587372722772996201400078770419286358355712900971766958376333756139156821211751514960471569206731547196278748256955395373373124350962978015467673325146179006636314503097520303514473696111306907835430639119510831062193848150895550846406479215526582037203866917261087966043544440314338071764714357658122725650259734602416647029309185125618795327450630400867324097978765091486249927631065433150280102756137117050950678088675141458963548116335198294100066936623082664946724162741755870313669711300150560685389479179752583057432836532712216366758942494564756791179483869534806423197474760447051415024035074632061128241854929966811495931884084668361305157308679975332835738582318436412173025200429970858830062925066624834307068149380577372145962242719616437019988215649496947957102662103831877996660984800997760485579557543238920754905255782583409273908552115223241007945499260558256664894083183488853266599981918868314113242267501119360694155153694678451591901332383203300397784253338542564953333816864399121692561244233128474949806827763060955600027648451204661457002515585599022387260755070331311733260851520699294333063996250479870635994361445754930026737623927848150014222018404547918688968114012238284282645254705306178130878263272355334451852325285837142130401034016784264667266029269295736770708253970457858508724306071107513899659904406907299562105323837829698644834995225625656834764777524167557261196080237345660235280282029359092366862328846457853196196653981028226482645502813182974172244006247828544606346883910624360926773422901537239036345246879654198835930936807981027715932222292475870529665233703975034812795721298551552102184106302679955894819493871263241612511757795464988251962461703594264407069023885060092124818227184955602916202872436400444059309740124894032030288388171346196673009338460889245151647320992709443408887613663150984810977998762251191938628865568355965355057755529850640669611974213708178530572545319594003402613263492084887072101331892147214453772857149461828720813041534392860002225731206947211252673434425116876637190682966098775367413021523244060023363925871164573021801092698216663915271825248051379582337032096561667595466714687539592851359609672437101706662956151677553897593328009997416031480519287603272796520831188441170351024932273701098044821184257681884847771205182150915405560008944831777089099877606461301235348967772812479740503005550077865080312429054202346651369383651991378395393363525801795477709794999896171720485373065003224242918900961118372168749895057751174189844746184718413228247122950086678153210560468960650178055056555986455500047528973931959209612977364600214985113845197024108995911459844440624952678376966792914050261399894741988368311762419617946815889404943697800576696433273779239784149704978678738263902548346962605021495597115254287765007843098975828713718436189316826177918571115596309238790484680379542751711636538122667085764281756067678384170149612574744907191528748575418440885908632576580441335451115628376625721513612765611275880659996941624993695004213581576754606003501897159142879987774983761797605507421393239469954304127041787248675613206082534800593557614038260002736748728881304838396512187241360995605743211827131379242560476722304243039850018160418949384453253796351673751595647690005597868835879516768300464190957260643009474029613132304105955643530971704212846354457843600264967130359900904370976187666696441212633486507897464791131842314175208774792775652154757334249514963360091293832111307123367300484432979904330705972559693718744465017420245559927959378100384509778610275706883914220250782024825000919386091388328810204241090860102637451819124116125659682537276528128949798598792678237706646510675516433772808127742995987161942072078764009663980049195581317013736534540073401036955625231065858569279254137497123021334152425336834267817787950581943309446394037041313967537095828586600396636497114021451994443598746381085041621978959448398031656195876668144091953953086094730840645856246203402386688546109044371438107809496355509178142267863360804127047442689951836072819635524755782657484504047774706661445551531431095367329427224571504571922631533205507680080993283988198321730062645502716005841279701544147287768926669267017251781592357867170483159057983380798402899086791241069447183875765563768674583748369266964660624268283943700020999729905601977208800161333236206010617796814508771668051520145087301814935489644656862097141113228164280953842256129165534946830482047528672534043891890789666571440427029000136613169492349927033979012205597725207506435592674509878733368167315558456782141305488176582595889619662650594196879980263897960205398742786551223051227354930888670245115061376321757117164342417183737676706252386344420056562268434272844156478434985772279016045489280948956969299285625942962859820104434010993787303402095876720156817596350547719774355253540517486136008221786705645715464531950804467921954739223276471616413911556812966990511458711163055198754224930788568925304928579628980729857562541363572269103260250083835614320585984693839024356293029388648773567442020940440549241826817249355250201802669215632215062410291020179753125962991164223346681378745022596263925753922240622621616770797167540533912763380874954503493574256576735504641444040464148678998882072720753234756021461855683363572905520897401555215947169770923711396057184848651882258174369639373440565393104733338586411782074899497918376750655416243073755324939062876052739247275157656730565016193070851602286598797359104552505919390839423132143114017187157712913748390737133490579339648393463628128917478313901336192685597510467376128950880628574871711444321966661565513737887744640574009202841298934492774016679025686565056583714779712807087616759075085108580940115843396135668924731843141860933318944042947915085461339874763805512997611400039328186690918865602723150577622699795936028757653197582758138096389763860710288044447065509308444637647902890668262471899189479630777257695697716749510114266596418598062711353900933603997127042001223380618247604224751747496719368102392198465250971790850676428729565317259365323381887615886192219738633978252312155536237553104459698427190048000567654140582143450045023989572697917746133234102178699108255030405774612562608824365085681678400696424390218367298084162846542714198242466450678200952555208332417374669770000637298061882609756750774529317575812325458303782705054765037180140135131269530522565128045898634959853986642206062578290390511344067258298513082117171168976752556705408822907903754157585064475242921748642431455674997910839320358022793320333512409656071558216192353442540069058115702635336080244818137977955601663804043989099225006747263088088192258297828744815510706366475361155606651950222909256255858484974247202426532193130568879990753673035701276274517679031835458478118049612042647401227457617473279775447181208361117426244974862585092611693050763452521548422405660649747574290726009079062649989711941638785111195389647804913824417819378081531286623958563817401412625100466435046386680746001210990054227837133421187473229112481294456279419345002205849403915917136297782001017666938310000133983778621041593438184262672005591857640819687580985729035657027466861658124515763046507580347974006987673452491869591005069159239852721802967972031422462371369444418556297224978207176466660257894294332654819945212477936954606092673183546702935260687397186383510665178301228898301890827833505472250379702765075446362536699361265479422719861358633709107017057892823942935983327205778234434273898308058436010337136688750192416477022814067755939456987855856247168736544763540449331525403062571225965059671354752121785271908734873320908536787384127681023591296502138527810038685282424168424414597693520990988482480240185817742221308265548056990365934711334531204156010258327195980698380232065381813714947490572909552197318286105147370529772472589318041847406297429909274147139595715042693321927603946332278445797944345631982775368881198546162316696082656707347339359277239729183279893841420984272285622406378636342831212109470985274182928135188052508845475238586416899673102247434081328103623271601632789976344274388498013276245752774238867834912953472944757722485516325491408793257497019302691049658006991287783879617007250726990223186751432545478575114736196692472972061360383489283777479380966745538508520544921764636768004938063993094678216003311673425794886272687037307887393392308882367509986253065119414121671639581478369899890036064519678947269298372629802680135697516022550503992636516065581255957497017226311473912739665319872391158399448342276658305904963674704611774300425064181745980009809615533262324174036712970462011797390676551345941499001961707619282665621651730945785966483123611773411945651675494523518268400186169404297919035661253774442022282195377726232684887715390383191629059479625711646340489558197658251951023570442828236143721347585251870027798863962532779977241600010748499141414772632454698057002461141270177884034534419340907918231206614046353422908112968905353701797930096499157809262935499268422966938808345347692407267588987305010962284045708002084715960761737678069440163815572251787685580249338900100065321511086843917475334966912240050781192168882261685562565219219212455511126365831262915866392024389942243530669159564572494313611637076922558113482548062465346936120724848115443670053284740019289257114638682179050762001525689260587030574650448470077517723386766991564189430039445458261012438756685678075541131666244806053496670724205395541948554833420099810036957187711538854567894922200958065274105961874043127274930539552426043850826909684028828266504538496500633560780861926289844993289808482344658039601263002448035998884655005353226242207923022390946089881100132573237542345290613858142541425750186002031602514326235709744571545961693639596765969815047579768887365012848766306954178615542185810223008191592956183880334405366761452866055402962526605311859160918955884432441558360828293754809531221342590387742467621073989072178775973636753138242920918310643094674385250775665301471122449444839261603953828900278279947443965635127957851049658253359059726457007558269930475761359695177301171587290583638579978311236786985291372253905547665444246546651776491543825450244223399283060342476518464347264750782939956938431949600689046603531442153089350050007523307390195666819798785939858742996918621042344866457107740773776883873595040624226445127348494640996017923682076800390931185468175168372614591063672860354310653338221742241172493649763811975505935229692754957229650177955144598155721787261643828642136859673240531963492179014631295739603430481891027352399826847714234755269490752782433397655847702144328908362318660187412960787420490036450553734408134574940346399589765037920121205662392282014375537985649645358775413150674060552454660298370658781471157565720878735202920090940705687743251852219850164729667352052009368974854592668531328025052695015837615152177219094308111250104049394389461183081400012232510170625497163432464692690258687791523024076266855737612719984631191216712710557536546163918220116450277280003822002016097401283008401411791748253955879309195163537227984889838072577267282187958496281887804517054254950649157219652430464679020554537197437426229947263868318207494394926732815912553299779608557083443985007424926746301791154716488713017174397189289478322532213565924306862523959739927802438334562589162497291388591662818229787864826699233090608247278247450208386522841039809029562293030437232636210084799546596059588434496144320535805347074251985604023613119566162784981085578326576280802480821169270446905899632315212630201802052150458360906105644121549275787159851971326819440046783250873069807330838353939393177044590321164161110525344359009747890934957853358834948320790490334687728408242129241248931714421600009113549805137943209447183554660034164446623184470739235201143048902826532121112974179992467387933830605706102323721914003247017035957818318994718411265753987829926115427436913110863635488474655399032046201334776880669183888815109383396547705828504111276710835929883901155538688213314625946438196619600361002778714525337069065038899342834141782805160547379596567591371021024839423298512375911777179449407442224416857221071276243738715352267384488048636160524936791441073945999288422218459221229387532498428448902511735250015963963008907647436452319485445544069288390588377004796556862552691113446957726857731839790276181980479336110806787818206770295515260306855209566692879465464264232392408952301383801260186547810750612788182701596698653298944155993427249366565623634629951808825813311241772582483901888932176477401625657352909146993035018300371370386473074226800851948209841947797111213974088974862807001636726465908200135636141452379198906513482518733002562920668221718073821459660109582629927945084906050808748347265498648225138829187390551417495567635811238383410121307405960780871448259736532637815677282745362548761833073059088295337178679488887150593522693326314404505070150349970903106859736271960231852382999354553842942905526439047818340333797831056887769187286198597477115514289504118224572197588248868745521847193858692122250832937910801647622200928199326906133251655400875851293040971880932947059257920893902646781954311252827273304552590787201818151174219857294172268001309318445069388917944645791385088104072010069097546537635038866854117696562876267752658651427779460246929807504593635451339720139129770525694371944648922186534401645761154053892974605617781159981876595148069363860583720927444475221899671972278808905982789798993855937156129293661329166144612048720865113501164584012965719773172356347338946008500445277488312461140988132171500241968403466155267187633298623227417840113543636791431226193072835106182678242277480293281491991071896886943907788712779453859539668874782733340666949861614196259624395696383890175226536431611087347673187034749398250385465808820898130945298092158068610666698416424499843835288383540841095821404814835233944160234703826963440131014407684297443145625452627573944693562986376645123975099324530298182155649593855637332368824609606407588424836233341384129994111436197919002778520680954028519452111917286475430326468774287118930660554683423151562678370472516053805555356263400212350174612118868143248724099756430779472443884179449466888921452268280793988599073202432101149059149604395860310095265204071286692893670631037441756770967565707454106879059631370450728201595498168879121629445446385855461327741079059103322850268070961826036776854572733666223002836045252064513143322663605091429100143647315472450880125801366437797545619715942711625358131548801410907320094049269790628632326669319677818142815514536845822766184333442753419796610523311473039887899015669295242759490062136286999482491586365205624599873351563296637256179181555279385995569176201693982407690207041798954191784392006354410290495397009369082231400633940543221504683749617149506855539380094118826656281156495358039697993429548512253410012232587246187812634177155497525530960989582531985636983468930091078901177908545836239250826738079279949163569708720211893754229364619571978191886534768327933112788662837785757989957520878014404840945678573430165515262321125372362685768834214778021640403392213990336961632011733601634978404046393045841113039336143056549767595232751921665638049263974349468294409950233727922324521713509107084985211661350546646444635928392535623548997863599317172393213879626715123651699206599110195823528275162552039534114387460036239448467349896925224350925600889717619764578096306251956630986352315960599166344439963312545389392083995068942866746111972230190875853387261516516643768323293520100919117274865285743984910542703367408338666698021535713188209610940227237921390055498139605252773085867744065331783191341277738516209106055696642344845717557877910048412715939680962776271433094432543850583016011156314158895932718583984640388880897286906610252553628884889572870406462684717883968212686912812507619710153769403517545863692810186235757800527544647839179532991723211186157232401484684263078916460414170309630004758512749365693052670347263860986217817613554258168354944017719027785845818559371413216933807640499687945705276881323189046403810175766699649475197890658306736621956719992679773706936295879916706462134409965921685322923541391956400818587992825079785632642708691446568963561494376275294438477892189873545994218682887153473109925915156280003292280980400612753088446920105208373414493803019704589280083896259710115527984494922786733189445995650586421794557899402495356687476860424783089638127497040464398227042262135328296878781455201443676811177791163536764615661119778917079355978520465941557244659624270563972593102835780459552715018045608427327335752299968159196107345195236864047234040184183183585820314856285672166551993150800356441399629158621070299516381927905473693211308043862217991233428308495245550819826226026808160968333254375675833081641827084131029892462187718251354010511612689922832628312407934584017704435464339252526427058609588488856229801002455623589085987393372704282080470547238830758063219952652824021743433941735868951529316759388296252000692716265217706519996628495459178631697560726263341810910797212532456630165788558612197116738804999582031442283255816464449444357036289003777844333554581729008939946015512837255797794812898465623533613541721589072188408664164261267184606193193144675246189839367801611045333619704797318520918735009117437531642653680541904614292555006271844408120253357692897039804604715812487273719838910125995293409103923319620966083018765542790828310130314007647309335955732751639007237610643366323553221693804979456809105586667243339879680874583855703598145612506949771540464287097322670360560646496169947498694418761207743698878023542453904121054872840819538355698234386271660541819661917050005283035748863899518514996247299158479759679129176243057572301010699220892730539828907677356663035868408064381573097149030191004521012840476729546360167953764736967130698499113741938840391412092671025203638754050802070559135261963331555314640644571995768369571294210134528811724118287524458739474350425219868508063401410383930746113655809578858287022353419585317478396856790104255417083963434342179056843245656299134333243193855086753625634782994303873130419797537456127618502885893778418027900096476814474719444206218581388104868718249982692893764548937649752209560973719912627570856322328529788366987843988724729705292517606083063905778340697270484367790102631462548509824593997580721182141425170921224743252456133600154854719872078217554996131952808706215993489197978782334191557326103358569448130755488319651805911376742732081870432685846050701785812790920585760654883847024764158711175414449241232263069086840145272399876876549654148145338476210901918851426994226651235126047469294369245827471735502778105963748054271347749607236522692373458084368507001416454660334326302412936973867104269083999639256242507652824911770419760603691220118604716859894680700912174465058533927925548610964003205995498568430370312962901836880800992505688043410512394411039056207390185953135540471615078132029210417789953430437407835674151628936765163741739868569773573663904128366654223730785865542225700319771605143012867586720160451294073033513814994056413613350484442733830252354718676593734435306087629786061316248065247600046155965498060433138415294231571717496919913651361224435335733849528261417895736124976629203234683776023117105165635801464081573646270253421736006991507173188016554929117195548691698220633046569584186305064332794750421365774238547282369551398405052293582444062590256792398193820327601470755473359958307991183530341957839665198475980946793989533045991474307363181138071666446893365442248504145228594785615210861940563804552018047754345154546691906492886905456819306996957466587200258215574060210274797017141960631692263269646365351704991775729864629793164198192346156782224187300064360881334718316373201023658137053303805602213823345679666805431378173781066313054633414830788200290724208494103471214488875521983093042495353356402185516214768733846699145303028800524622545134648547142825160037482288088816491667776436366308014965143796758407804062487348365500669038149737049427872150781880098215746688725227312087442862907801137153079752242734313912875704640105152775293218097344122456116977751599922959393090799079784115705749183714553459262105210636275904984907944287321871353079077615562360300240408790177370879339767752122903769932422997771047880629300356663570348200683704827226972718315695031870523785563054503845475074938837490007903886899435896530962083012913830322864535825396109708412647577446523102583955436544275236890738851198513866615795413707929909342514815416561557581366284629021854843455142518485941536022354859556598337349578446578837230331738744735469755897795818123630485412788249048334178642758857467241319398642247726359350559150920433596998921333327687196318764921525039611710619991677416512245498805434307832728539586357985571140849238236128298442981809862216133075694670034874094314065293539042804231196286185230941113915050205863923810738058933171046049436415423111923974304721157126825048636229823054118758508710751954441634611990413269540585767445264900474054423211492794833958532030091143742572105444202373805545831099475443712815861097817137833818856180329293901155746398807242499025880651727517958907768293304400867656047348965055245224311430895088526971098913549207806173285062939108979276111219543124396931546906379873416844322253616397770889179741640836545172204211870918040822214284576619684516418870891730780691635788936682748896247439938476715179864005074767114490063656553643248476278155145523436160708651931965720849680331581304127445486646119506817038184357617995347266860390265953207876507747583875621230582901755896714046692996338633209780447600727434352047094608075537525467041866174013001221525484286205391679607578818362305876602280197711281125201455474738609607459389429515077330365879121870347139272294698044765556762507917810538663350638171323775017179321056923946734619878517564938084647081391400255015518105228915597479797243199702321347305562086941159382288661603802643648160387423459233016283567707776366645491118476940831315581580309435732033247374511594526833070111748400993895400214239415855410137075770171905081894504563349485850525765308266964731288336166964756086950106546971360286944959184405792694561017214609181669821386459245826610613938486977644750212076859625508527225794763867279476182109216676231318010394888586721701015859047785549734925322989337529139747754187084895751323248617604630277428247534306193812256094033551217103054062382353692018730329600740680880842191399562934476932366332254669859124234897578112155350145082555985653861060484252278456102517632350855700306018139417010451759511929847565500547702348491015653962948112445881291404013526812211384365438821437120082739471252332564831346859600482087475075268711961066807169462564526847438741307089859129984605284568650480303821803630591863513434824802770034218888028915749359538795232957915969562293987286193459777162405751656996579627616946734289707619500784126351713244281412539279365272322792906882709599917359776305601722039128176845613383095186202661568233238397602207628660658960437142122931523294483342384338111330743138877313380945689459350300263664714814588151366266220172426569276605134967388110965540474250671424562231154561868442289447778288738887286389848514947341427030156335590251299106421133862747364487553389981475046362308766928313709704918877465361868224924110813979524129859971244785618771800335762080695110844634761158420888738411446038251079792472761942715313829978132911078360699832315702352789578388100179260866383394612542719486045079148604575688189289481725552002929161535484817333645286050348841874270457211052338675790206152327771306813875965606066587284715437407960619152392904171031534214729178576355671580065013442059136328788539166527907308788148167066065267824603922121867239626108539495659500804815171430956787944434704889070610370369353284892585619485808175040481655119699632111147357068406807157319154540770122319669098821379924377891330687541619476464585093549587547258580316316944222928652338636029637718776473612386050323190556038229954476044026943723132268489321357278532857889455457701850931462963638888452416299755604930001349263197831087234560686585758987124577034021380754521485725868611942336327517319519104425670889926849379158012220841996971322679208140092799720953361284830437908046212400351698631018520249139426869581022386161065053668721283823668041142730413863321360071414318610714396673351767528872536408426086455324882465937383130271877235930150707338264541335493508302506079045885786686548322238158338034794753293127210591020949785694034999451746261669219377675499237923459156133401980418220978886111363707548067780705964688257524603569550140994145245120385496084107530330957606611943549059700484172395096722607281559786455951421357414739415336237110965921364351126306814647548505337160783265712339226600447257675262551002755829818096121466833879614308449919540730635745697503311470162501223494082764585155441816204716458679691913851947769888656459428919873822104737035663575734141920046636668377840688181374833849042734078936148080964709638625550648871747939577200414851359049826433889912858335744632812658768139865994303864787699247306426405547844478323821207365022404597311325050712847902345862348832946358272047929665783305101766955932815473912566759569052155707214569211014984002162997288650906773360367975539272872230591443233782745132178449966889440256633709836385996538378185688219782674607086058629894783814953644169467899624808294412508315694582462984992971576595759139706885620475076879511550622059939964363485836403019465005148972420171137614445437901367179152288381403314223807579177334523255445168105574317823273618687125862275675363284501335245175938650050471558325560655113665586279683149635489836686745923466619987364351208360727171978707453287637690665713779782812278352399609343928766217631418271481799733361352170921315474441203998003696125507743837545110053984285254299709182844495546689258304150584575680475910340177995763899884441048304558646523406534617355892030523024629573536944468448308535533366855619110954603952726170597456968458623190049191657960256887267566355410565576057883473323433792163417067975775368450654263157076854241975605006577250022407655909399699827571487383914597948265711286176004613872607705923298818645131245070351890319343830832408307430201093548482624067107361489158354309797263880303544260177474952245139958603762526523387258849171308547311107907619975317203899893936302303385407505068397632324769028417410186604531784962494147575195630977797870230689645730806944589739010681675666210848077007229354395849361033103628074485671031861206506675171755342146844895452184408729055336718618644760096063456594665807926832291285351195174810149409220410156361675064065105416482359249284800754105942665603502104878918610451596870486311846172836440540721053280033823937470939353439110616644981332728306839190430018091202946561936336402546392782960521515469730862129803951730099378575019471478067190199934921055975946800248642041840984181187787891175292595396527522542789019538153731795318480322266841874348025174024036134028242445263408086126156706210319774683773827460216157162022207027539443297181156762083080230027214791887558491811110986000831658284883693055790397446417653796298915967756203736194722330685713524942391166618959507764489101752418574292460114719527205590549532532233797524329269242426122815608998554158287218015621579437363894798934539117886549658326067459675461892896675750464649238780296631815984949935883615086773422466559297162406501727950622572201703001283859806577533824383652345622927298251139862696993469489468104560691226129548638570732246684623138652976356143217151824813393134268357314080032187785929083559451788971160556808595835523799719461538402186818316105808405292118764968185902626592964524852067569079831104609472484484202661514411920028687940952549389531742437958638007659238098627802709880816442547431368743570432958038132787188541152237816874777803545433514503517896878441148047356514097771389146189461990958441817054700445184466440376371943532763032832734332040810363602777883574270462790090631411648285804151780450206743302201874842598593408215357799255558044817832392398344190378073925310270398001191711365752412718104198556703566817505896179468702561635294676917201671036606018029705776144269635019752081787028689425540914482826307768827613379502565601494185209138211379240838775540083264971593406543625051604554300023566828848706328453498310583685451834601497223704307612082400372028498307456398259025611345995453641447000980277769090850394033925443588466178732613229029601609108093790930531045260404946451026066571624784452990007345910421324879971581706081438437080223357861155411275702624352531771132106657515669495178904053914672883539723856583518567880617927178576802947482786514227831366223809902993039588482255638908624391473539787656144753304350271341973126458188056228650358259270830883016376386431050863089620776765184555998463690540565185324568604561119856793936139000797535095373682341964664104712881075383200534788611049466310257578431493690497695574772541431602631238180094261653991531566578765078633217767569996824226716915272980352301835768398059017234055719922059172178717191223959748015685184468928780253106707214378132222200098926442347435902789117341955430788571219386370228548160786658750166013847890556927530422629983081744959273968303596665111509518642222865576396532004610483232298302041008014018550258038505207934702345514837710464317151092296928580548610239409487616249627152349504876197817491213804606444697434796031037161451290129852655798652237233954415525800378445882761328674608935261280306618605203392416562591111857855992727338703376660310258493666347218301239847621359671220248457627703209920059041612127990534819657226762840363623151921354114547743817453004086932909033678174037214744536135780111165271433542642136055310680133519565769564651208716505878096071162713380736637972666852052963644432232836650424283691337503003306101057060207602019520048507390769429043980520738819477879771484085436608465459948259073386949319640611951849747044133862654202287746209495187316998496042240778136914727126159194779542350987019283993899596241110450838204915804749273746006092928193234300242817645140542549006716397335912507339408034265960727338478150264070107648627099664406916173153825508918286371187046025118308366033508350980109028300073551447361392804835012540969600612985346075579685252609524830326762833384522105257469250720780074940855891478239586324485509025507130237171061543260444172045573988000098461437212584388657985743100498421742892888480947247785545251733847344947157775232540409446997287235865499847855023003508332198419501648665994411526904502608795738912525124136419459362738540282100404851175151875776644226376843256094016324945892220774979375040374212288293723364707459095786985911719033830249763413367703834717084376071088401999017921209137591963805012976719200810488556022988818997536102332725038167717286084401280484488413377322553086069526723179689782204200928420236165439513033633396851721308505627964070181501680830222731371103688895635593752342561697771478943008685658425337874604161186707460982366459117066584854631873937374854895146281989487760529031481208902216690825583007042005972244200851475802035850093503342610911163183897380651355982653563588882465071680373425456619364174121267343633887152150182640692958649062438212125733420607512058071007487953798921773973783812726677853525173844887087706223561755585310733707993829737731451236785502909013601028159668875520781992186560815644686782573303735096412880778789995349048151006300842521968426536371936842759779455373972486310472151197355767597188019665364512664367178031722528824039380916605321679761484141216653519589914680377565976606966432065584550404829828410269839215264444838819449889682323126936034814193336591100340115510077408160719009987518104137658924311944549150269055080452633369664464027048805752671348494589844586828045722554481739400782486268658968063397445656510734195026529911522856653319343705710458020413811030106282596464361829613216177573241238665728739307152174237145798364210433112555859151693071071483603826405882470914871910902972026981652152230750391491516820777447896380281500473269287363590179265310079287455952221356393351347416282633637533077915832475074494274074184830533631664219594152059797645003097552411626467632181021864583338733354974425358438977116616304387113421742609233519348315128083329937682188107253103202745336597774807285782622311449695779952444877505552507673149890644269854678541964505780784906103366597545325226433413586515738102755199267726720891814294833140613765854580142041616781536535524231358636441940985820931005230944217284888601002588323721336967797334232649714935703526953124293962292428046132158438409859858630139808206236403062967126691425491458564098038460501002256573126313402403277344186972935122760461481851661247069931657812252620953789091366308859644109315179263227428181553831478805798423719533525560950925539112449910413602131585026194805836448317992178760271588026425973122026343877466354982466360974229811481486474587615552241770599704989044833975275025641109476755883958424539880836201944407025791193270237639771344189949933552235116231698975381690056571725900744781241378335327901388486382575731336156840725818028449631741648891113625666212832580318186318074531331455630620202430331891572360560693054422201626153846532338086204396041309131253792256933758359677256761024039782519042799894195705725487548648239259131761105446970161224836689770760065868822470331391255447017672433846242109837332591703040194532999394276424907118715851279387844298467708778173128196546492892115561451554875051909971943229289256935700889163220622149422672043902394925023034006751877052087333014627538198755442097875103567452869049993990738042622453941883036007629745193898373702337245491675108292625411880408809516079499238471252234541369073871859259597141005043998916441625898245494815329629361187344388853637511185263998550279870291807885846656628030085515775316555608099042348508389968898244479895078411434169770672577605044600217110348831517298990450705201104454115662472565628710168029289595089703717274348880468970292866259575439915748646041711895528030178158201607304947358828412263607671116442744910644202499705086991034427079940958014129300398497774195173998439885216155858983562595473258744759470977894492587143933585449351686240897389349694012976899122057736021064687776611288069765949936560419686714780474975370683266740939766753084986911166609566336476397656286728550500108329264503554459514053598580662965688214996965067643836740232897987314414940253562266946365421062299047551039647813034207189707591515307174800944490944241528311173879141855568392544144960538551669182061332748257691921330796146647197909405679501095711743391174266489595779220074126074360554554459366585397534052053420305792819503890622689507059435567217687335400728157449526394459629985410761967996369781110547584009947430926128064670543129070841870700103218713292866201121210434574373611677078817201721367949952919784631574726599568105678640404207113379543851221680014127820305771857033302409045120036277609743652496331043374060192971985118142731409994274243536257587440311126651027987319283599604751339325907137696565458852176121903590620586098707016597645982695324305586900103531599274249163456219872949848573472450009056244291323153792226266121434846262558972409766408158400479802612835199359859737225814110349818597222681166488217946593223750501543865021717320460391101705125336798069422912186934831215122936686656684417887020509799721335103782363959223496824227901754451407621630204811628659378607744562319691143022895097979795781266563228668678688106813868097431678150863938497216354151586062572067960363040369112379594120222314863783880755888645457952258582740791196064733981615944947613279268319486385258337540505572655817927893273527559738978294305805727995837608792531249668851968954041182622847259420631507489519161134789339408823215440564841153360163755694750031498861421516085651051162449827597182016330774850282247550597120994226611446620711253494233776824920390703113900148709752546058719271778131274777346503866122184444291641192578059815094171331721690368658504356076925584311425884289853827798582503404933177868294174754161665998201456841641613742417676561398346123225148950527448822048532705657570101022202376096923225896330628282078396683490844032027181925831671591775106750572354525481960484435324476401992732403949150305335032058237431267211021250451364368285408131812471823708594439145184702973435777678810885592233855596672374207035983631673356949482707640682991463653704743431047827943403230034320051135791082948535859657696436821034047350709969935293877387350275480890830835792478150185627406710795808359321285191747101949262998869257829245595195576861009674729861778707485617394394275688470071090372934541086796010161970695010930386421478403060523562641115582400397960386724889194916972198420164772928791651846272143281626520169715577547330423950240511030350440285035583239164934374352138118939482862187857525200327324092560218165626509481849165997461633098370363586430223469574927360915967727124311660666887894700851831756661974611665924690889013859364573470655188466435292711450428999083672600581794131843488008563095885367821261558409292313277457600862953147547461354910692049747846842627380578339824737874441656909654875943684707975119719619471735064154306261675252445385727884490989514287403784777623378813227948541862472063122849775689069235135695258844526791001420211237384339827195334311842674735145152405723615512433463868270528603900326444599795399236275629255264813279038174917481926290549403254690750738826657554067732018230004079359629109977613725636418273472415318126302510114943429258521265198350912354697118587118827656236661921387462237455604912087744102053250250949218457880065447552553458243307103969672373583195808458497145613014872497781466964100513725562302306978386838515983120550425530975362269942934547624039209422082980730666733739727497020082589115754711626634644977159079321379282280779582324526989709917962734401357561822936410361749643121046646385747339629276865249545874046080811573264719196193096084198588977318889352795040583175084381106132870672281119210897467564173763648183615994450557461400532509999519233948075653128373329666410394452440136006530948199171598696332249436525729426341990658199562306842329530118715419892187258320368594281851964618366030624178683199475640189547803615076961156522039006797391174134404544941221812033835618141321463755409237610804814031059506178729739699636479485892050787323117573079824470812500862166604855457296470348316748927093110397664543330918086802783607831143523339298662135470029549366395636890923502608447918504829918312974805221347346095977838312949117304480227648103867804925909559019458369996283882619922031255315211534838096208735726308157860756127073675596745321336718959370871428971075030497410249862755422669815434538434701992476032416470420811177478000084396072051808565840462335152410141263447207435270832673892950800065845687314488005194091744702467697430970550768912031971587521230731616564049005355039054237060768410029596775379669827949107243125206421232626396807720673261748278807145680087058168800361751735120686705605945346937198571969447328964770780021757991560278764355863522043525372420335547025858209098003972223971036346077851419185532452716803956579255963059165272338130069401237563407186785248657889380047169362940647201387139607627653401102007613963185455648985341765549948415827524928817447153010173766580348270638435077211440623393196852533496923404326285066416387862500596400905230408671547815304095485606691733229769800689065497295830827975481259728381329909576257114024036845694008697481602657914745225083141660727135033635428243690775183679411550292906494144157683982082297301151702028951018592274294628672796204930072225383783387180744334140459739885023851511423402174130392167120373503192846685249812251039409693680347634387234732465414098960633011379155656256507268767068337319046327587206952552621741313353579166641830474769204229980153955229733304394729932866412653579574881529744317098841531916078659029184233516616478538987886240904803964220192166919030908281206387804760343409951904474971601351862748522405710029381250396442348063577232586832650460466976978785411845259827652983176834127043863052525868039740838938695976211638007803929202398024394170322392115942291568572821681058204435598902742057534199413342852777503387967010269344042850774394001403611513168778871194745658092387602865981503870289082147430988033816371491073880522157520478805664117197508702310971286725277219507479418171018502115388659686618779260725146669514390255123104971696957807779504366121565276893527089087458446190371897218639591404894527997709082645423432821955283694960920939639361492456561760933856237159364404848644932364030754699392713371360615566597966724561670361360921478854348414625213580694114951049465605361245024037647599016028242233223356799357619811129440900394620922499174259720660010003996239289971130981533248215188818488343724981799845419881588374622672997202091052460139293280875387042564610808574244584099355560060442516895979360656487919942993660178519080582522547506845444241479638927417625582522890487714796014847561655253280399573944891691719259572317924642680558324535567775689356031857529289059415117845255017990679059933538253650345254773659257657997329073428454681858445150628585963379806429596295172231058601076993565014012078857047169146868472176566628854311693322525118208746062084894323866901131918008960495739940350507820939040916058161008133087831945934590679453725236417142703607694995097747723550779031554619554509747787346742298025833866751815467130952995744688973437825905111982056393918149488563784167731247927349230323001122283218950289987505530748694253860612167313358241376505226792112578277660583254115147877676678353500157807507374911264204184792270491686498668864452109773613938328028147436256684313721206536306484816023806629852106671096141352142183550224992110630850129315224400827729638870810245504342684902294084295416527994114035648720123966735610227586009568304932128749312522402826224664695293210905074381216064553171613283440353875969796271426345902899780390079113497269610029281419586282764845058480908775214402145136449528168470488204322535007423782712549873836311155613575341274193778725542275153824486990590979150504938085507165436322400692547485316776859125512142857498466623149937326199776638610858119727945245316398564116150833345926033682499004458405995174185594159402077076440999373687695868306202771261116725852010543014074907769821229981883152472192307213605937642561568505475468604986974216623897719504447896218977613308409606463393452164646592601768460402122426423164259526343641773386184563955672850620619827614752917712104337976368162600212247219863754118624659537649511122061987811730974077820033950744129716022465928054720764491164739743782802559583659502796768574614996633583509791742185195605685427323445839641630323093139442852896565994812129864686593437636049583039445198758837476333027171792139447256016018222662718552452346900764424601294990926862649664917191556382921275131038389681363165336915410256572342279935287937975525403562125178142582423196395987272511645210192838209698330759615889874624014592786750341125400433547740034047412803003946291799674879680836926871829964552205134278256079432458461715820565571405462697241499479121748464156449970052746208528345287279225495601418729854071651747331738887913681159824520020504878577400666962325113768820851817059212437851676351570933205190989807630902101646596435547880757037075219748364731730849149336051716445787711121020903040748693476913677997238820933177566383618032879492635204885560298988206802218831576571929658808672914237993066806983365433202314050530829894203670444743414884608647952951720976449409803408035147312428718075625772463045474164532851452584164253649231089028527281170239404863714269621690933907992540901370524949741326767122954754934190011878957179639038854441663267061976441782622552893749415750777500773804865596997904758524900351950858338796731042139832646628140380941754849571236591445628415073763359929023783528308865837977206887946496020442564805208927711879103344082164764954112721078375108319785969703363659517965338495780296469524689730252916808858850375039316915168632571071159276158581147198590017538548144868751591461079415130841090772019662135026177523700936858742802130223901154235871060998582603619966277627103242126030369888054106041885666700965371450070748603634376645790949951478314393709735577839096796098741605454154234871331375535366517721945951891683533860553073092379912329316575613558988505474558108104435795487024873779433090349134472573478315435409049559554953115048159040448176380333712707011226840292894641517417931771120520102500745440887003289759029161530147117783082253103693328392024475563367166726261501186014631493054513962485543007461695453945683468229312757653856928495375422561493949027987982547468097819843411135887987331033112921144014481693495042779009923492775673785834727786764929941977743768865962131942227642940795651370519666789998307139498839524046615516693744272979521112106415224296111237889080019840546760498386952756419522023023150790090291749221438169380870235921366028366952006150681621281392546286893969092259307302802331798824086136189493571576630980920264326641903297912780300361722678736209960693523036567512593053223577972826614632264365271557586689826793817562136508331671710523422611996219608948713032410200385232446165313328116911030640621187510803120363725706491777411741558990190914584874331007912003475977184375665623915036705393467677567838650730497157388503959715590665240978040835670317191249049858679143646233736160566653260729574279107944374036628538295964052638322827125317866454637672405670089762877458394238657071489719831487027056708241190305969020710310142718175071075961381721724496671100513036820432126987461287882148388619813753110933350884244827865843997207579579610411494431284251603946222418031887155903094598792776721061726696926886255803454779762662371027492479958410977680021487621435281320508923682814792233038340162292151370039126738124692352858656066405336190799623721183021622273432682259795179486200822976678365946012356852742757552702252167897984139840467828906188153593951414950689298550606522008491896207558154695661452350416619759532856153644442907055136890715074255569155386408073244254058477110848518971509752816580673985486796717718653845072114902988282698700507793624425917212919042237359993130193145071288999137450808124687328513536828648696536559000252248613799916428624375086674842270617696322470549467562876883307684779712119759721902019613600064262049978927607024436862154361528757568701259363942709993049118478587208348668362423691438851186102414833387185856784983214424526082801021561159169539866419365861266683662364728129930013344379280959423661257116751332100695202144835544036169152772711808194723719530042076032450827514896619831619257057103529382796371671582830637089454941468834763396453790756201731446242518492961279299951132221969171188518483814359423880108265528177768797986196678261691177595721763408065814325445692682546523013858116826866672727584241849428512761625774243702272131284443820216309228258601965641332180624479594697401117920045854786621855524056491255643284206604598593304270458380891706675734645515983550313942655102882602754914446907818769460869568092882677465718814098946298717858130283883618492843671877275196458026943024589829572925096537264389649436443691268746465496276486857094785832320552469841669600134770450583880674030850082930450601137843140990298937956052002605066595879759773303285703791334655527165230582564774683016362064062666784540354951767359215582077475739881633168937319421033372346639426623681998360290575236683968975368779343502646842505583981486069416831416843176446308658455867103927623236740538680944447285944137339930841734967359448100133558361701235072897746447014706639362687528447812583021497784447126298152978584626616521373157489935178021548933864267593185871125540780483622417622978245868810126699412210347989525301064970531299922140253667390027715088339689417936160090223147183157003798201360383134251542250022292147246238913136736155018283375370073173390868607673743899698897632145951459153547574159572259815371709835839515184855976448646569211222140399094834236254435064734588502799787396065134089557882981608875718393492455856692685720608062980593105493814200548228755240545495857684490502877733516158242712836633492452488432089982993262961810619936846421080301183683941892572845093618279630106788996889637416961681137180407371836281635249956203122526775497439056673474299128517132525253460099017908901664020983056495106746505271749297632810523103329966214318564149280036465693794930454426025624253865345550672339943525166132679601230507787428138687914691219906824781450426231164866286977576474506048650978374987968704800775651706754719157109322398308585642658061223500133915970617384355721027788486321050857166693270198004186714746062574279631902754592740648898285703982592487260151259437500595797515426991554297722538339877744006119880184008520557292971938056508427880887119322869144961401267620391735902376428910428584931610447919885306748300221011176844814548715171865696902421347871652035247375946689501154945187121753412715852574788462075056094304246517960983233362167111585688657386960907113451468182765831187457516070623128982310542811923890897303150523652320172301113533965732255941586362431957440139086900212518982966521317747892368692920488414936186498120233625087833627521667291107882183259463346351787936458074639482518636447928561372821083730153478983442758556867155293458231049015724557034504373754515221733784845024446566133815717164687310279202321753334916854483102530100716099593998246643341326732615544667481105804336285589505876427725791249093503999782344659300913583487619610996061456583499808505333086972095107239307654623111112781926613908596723782650382438246541708445155085193179147418061609318170894002459451637759481150051057201197456448734756309842403066838394690843089626478521619956528672247328904564429482724481757800479153316733346661421254281594344573470830454593112667907217477227665785958347049850224584460495773775565354165514520930347870913792993031979993336955534118374341928888057617091835355275236065849882923868397444585371421758603452239678628577421154006766250082211738293896926919233021032429809900941396582907368652021657506318382972834975818745232609098756018961945917302123869442000038577764743231350492930609494303801225356818511829147691709223495748020518554536600036423767709241580148333797567094780062556642321546221749370713031637535087379694264821277593691603877219083503590492750731279038808535557376167696616214639431971024956821156476296847099072339652056831487097738131046990104266113604349296322354248243190685810041017520034822550155423195167804218790528552872089799368879135163050071299212284998274075035021673270352010986510541223768654179017396180198797371175032614192115338895441848229065154310758516191471408095217915523144596670841215169676987286903983170733477091012757130775806360978493123856274016161640424397813002210883757549531356480995734343633745970861554851027440519308715219699818695114514476017219639837099289639727037327846550463448511214403631717539800173820381938292905845358079801676136691479120646335581907062731888695375925320032389321851869416209845300268602215287553010144568588441304464389653702993304024278887463471396600043155937104711818257734858109951893672321718444368212492433093674587573039779015197046809337706153536262365323797520450322969204485555576101701485990299614050313032527265260982313806750983790663100969356961061849364295543262293220874480330462549529805847026103131968492258611687603241726360919702693661249112480348428086796638663329878212917851826149857079381320726116779568751309694742511062325633963164809310092834662071552773193884022116528978066428131535561006736836356271106820322713516014108864875016702644056308363757249503783013887351778526571864949985503597733988770988137729758374911392164012754886860695707655215003716756871392713065317398695665136942458618849945807445210478890975189370207348991376484312186845108162940306132174031181210825531352925199280947087539412646339276447690094719815715537031414732024505265399170274575707540976918528057264961304626749888364383474775723864644234048830173472466079588475085867219888806444051917860686986995901515937645128491045868651104029454102940938362051459068512757812197787213547268375638315365793058754305078847202539376288968850397240476301501534803439513595448871384691772861040932759267119843531231876509535500619382298530539125727459163961496904906007938953039474394182629516195719846381999500219345646157499772548254632929765287749809918623691761555908282822191634640829818510031439625532780458108289538718567534700607587271741233905831404988343413400034742569859113369750118526583472197452373960243214009613701326120813735108970827163858781647763147696643768997927722106162700247071119894714362987418792132952273310964895695214605021799066190113437786249522625877801288440896157915180762554917887375663115863631364137626442669230669941320957781910606749461286391430518093485644323890710315073838412638157703776222711641415195474246359574113845856653050175559746723698287103506418098400781411178312133829661070187843237089194861173200702662109294426436986826659343498601789789936811318477323209650197097355930459354077771991850777984488779378298424052122290413704925798757088249486422617422717617129416781017334811219170244099532182722109764285208093833775024272912043113646082218897195991398259673311932203188599648618785031960064171047419696047524832568286881463769074779970492071354240987910220506849744111950131308566373496258210386448768223006490022029436716774836139097790405967404922330691792154194606483012730697105747973137392659177503628374399463558828163573267798013226058019021411498783991206264468601999897450827884734591289313668441961950993169047438218968984682023586291470276636423069255860085841901900481655610137994751457857954419909338718235504551223236846446731540483886860449012121071185731745403240050708626563324762296830267713195697296045587303812705762179169368315336320118997027117710566480271235547820096710253812856827039340789317084445162992338083267877194710371591907062608969243564496570881187852138273936151147812295432465699664821217817850735945746247707923912160523320296668905212722940396477550504984641362821755356742599799354684506249274619885848589931715742471484911798349961535488721468451223644662881723470773788912229023233659463156975060330317462883673268603551898713401250090073509025197417285813430345319015591494374576549357522880489748454839024577466637261772741016936289303660035685527329564616137629919287744510929264620695547401931220186001298140959780148245222619047821778611755578360246289215398158861733726793901134453854299954876320114245426771204259667672736445663069387663322338418944691830115394344971524204750017652578364726402120578735108603456086029716163507855030077341033379782265304515136786194723690148355196707699268206433869065926552150408640701583913557940499654425939331373131506362797931554037663475579865582611601708396684448639964653850643443223157823379292939826443724787909735471761459861196562998380496071696441968837924081897834843247027077869803256448787918619272596250465575970791899604564242268047384271564296883044930430448998329240123738752524760625519304467129897558286724830321099839690860532901416958572398851406188091787543192077121540654684413632498103567591294482909728773801837243678779571686875110717555067517757696421981292478844678852821415321647918242714966271696641765769564690348188143672763609109154777484585073782202454822549073847701848399722518840724067832280932674532839260988322964017413505463942384388767649507070585487060207673758517039976799102949721806279911540189018228898801724369276162946639951239003843359284324754779068065443821698083694968339403198728487050185718124578437199556021312464427135282351764001865954821269367874651419694665416486611937931431060139280542422918688049509879342293600668929649045348398990217796576319541348150980144334544654754445998687176273350361863720283472412437428701171704160427143789776785629146169500674424258086428543701354921293408652243030339625196848294929611552309602341074741361411312920665561522740908245718727865118038272999658234662257287351677298507909619789021142614568955350434367593157486119936570076447312456376227808688245471194149054364498580356767409692254112730104668105396125858538829998144251335178692646706117074851998309981689422119137590770682253043606437429225827252360176989984408526936511210013572657089667663569322869340366472953853142737145602634318595177452886895140046754225149468796947614322618896758572409754090236521801542524617652054770018176108590109429427811198171412834067012527550911234663229683068077237343851330631346976267955756871601435219515640642069435371455768795877682325731256413390115358885800666816722576397085812394299290659599198991633297353901407766918063048922150840058355980672131775522530803624185910778457310833906147495725250352196607990091356799569541916500805549296609523835941421292177902102222489583905452004877604906509205846021300950555108347494036829986167855197244341746317327589370456304996766632939375105298744664205874810176739036931714401005904012803148801374588822924978495398188759475432851226071947553138693641059185591325356065480561094827052529190498664420113348315604135960989355606024160498989961070514356645513691662292235864677212154307437090709892820058476798759305171591391765564838728574277391476108725996823345905188663924463187814572386200192939330119941411792792687827512745921164817279329862952928601929358004499711722308499154308914377385312091285427257541075014280052893031627483915910352017191758124813217124282629487697758099512258243692344325331723167466109347189379344240832815182299861880559811759548502659303454057766137346271473523685481712847109902418750493929299960569839697941525998437114605018558433046696725174123195073227238480344106586262036792635494106743037548245810407524711575999741501281549949740460569983953082864322435655691852089838796262392757349144804550723617543655212605393599612138872457610178587254624630729876730186134066340354411138447203143629821723961236380191767338941654400985143762381877274360946883566689831822220894540765249746568992064621937870168907829660129465434383889832681612534686529801628884879786814241692415137583798495930135679840028264779225150599000176271631630564237860657963155818156259591879944509235893232920154620100962809219932592989693679953419700821582958006114342207112461211313295571412292137257751928565872432178789733447512758443263844778475123032150313019288475085521668385998142666452969273955190896323311236495672522566787222651578659084156945669018340990003017318988157296583057519918108124179889709681484487501372186653432556518524261098970985384228974874672886653552085330290056692950391954130972531340626642100963316437385684375092364922586552992423566570561778824290067483731359716617158314308794875253066127009950783858384777535911326329006711739394523876377480088922366519832488326016489324788262950283270606571340685400666116569365872294601862724123381306522387794540034848755341637492873337522248177344804070829349545847569384506371609846053169764050232050779842315324627595619543187119105235362032095372760483256335141204454284241660658399174811581268359447300559028929900171515879890300538326673035686134789670208681461243657431029132917035982967717802630480237997701571802086815137040379381580338016762525049558849201015871637072023463489772087227793229975820577410540305997123841174200484751479721753891251360708302602533138203757105320991582797648320676385681039193396230572435610318016564309658658448683223749393038969361181153390467988669563487642853420525667340199417794497243218043076012333270636099059752564276990940606476606922689395542004943319228249337575962214972016108651294275355506053499516381461923242614800222877217369079513391775517709224450527409693011617059084250152671998335491998862184147916699569213013807569106386727930581595491745774344677696313157777807997305378825448442257952467578750282399076882479798933813296598457712218239999695942815750989699027947816495757748598313848867859224315556372326483847868607931427786978130288567655335107645122702087559195956963520987862579181794855599670139545433924974713505896853444877955303079207148578442011749352386141612186752489415261921760157758940813866441008108689514204001731190963611348493768819669081361159217540945319604421203087717539546032414420552757691192032339837833536121477604697502406729985207667240130309042892182748038643446630668165685212599122173459113107624655072499918866017578928007646030845314747860728761385895363586840906442699757441504358488839522054708786927781700126001481934311327233520217123631972114036755123160149851844607147182455553002029720202946240775564571403077445628208912997357980779823113861366910873581055815794430064037718204375924959496576795860205738774433946333454026859023027639538062410447221850587161059128798361412488329506942933015814820366134344108464906328417682296866011006514855474574594803319619762152606131257673560808254726240023951439397933985890962411127423258590977440235036238727036448185247147634746334895417348992940761149177902017471301827820908530798573340989189433344660647745905865023593599132564427809428656055521156498488265704204398650384244293140519290263991960087274373057086159339128366015043694355642736720497714663106632706608767630576640589934266746890276339897194112990290326419895327270841855414318040002351131221827371174956957339826714682694463918155961341449136174572727141994617778647330607472279972143713786222292486317677893579162904523954820298260948379993530025312515516477626126976847813445037249382851381776216946911810238244578590613706038978548570993154561341151788248414869769189495792015641645593810917432433650329698122048415287329202203251657915491585816466196156694896165118660623455670383494247679990058211898178175085590652336297128884385494161631800770495346337560092196110112424005574196740713674238780559095928249521990502970642638563742805642857237184584700544134644987505008279079944291686029688168308481299247778437699312105096773084061460739587952894972466971597674827879308829365433305182064082141631237794932236218418117372569667549046920738364269704006993182919536445698751136631979170606451032289818396254714103717301496214718050391513084727821122957958177218895883351120043336511522003001812000507229825923270016179253895222018363400316519889912342514252534036485122585925406713574310625018599767984723448883650665420037537145013247442706165508364957562053790681692938861700938596464820408865159722015089671939279350555357871657910269769171988201679841926906774819932406036289022622235612596779806200608944705800652440862276044421053134913446285557399031907287443726981287891076469130558756219786039015482831712692250893670599905059019067097257161426437752391846214518403901551539164011460713269227564601681851202978753388457249573535652403001466366006308854582082101729716029720937159876317820218570942062413977675912597234881128466685515200788431055978846868496690537940151014417982176538788851677612641370442845758951607016358707921686480405874768432827363795555283321609754535652655435265059821146059189247622731599499773172603916153620194767234145522098954661749286662510950016214517377357526670601993574265859746561547434610123678054484931890688468008934541125603636101860434470051603712156728831312220502246594789674255503529262508367436646040978702397413916960845043167927513103609842698597042622363007482799286957107883973592611478943328751749516122266393539982723334844979691209124810814647449471189938692110961270017736770794549172470278438407421944201708701812506272483289426636100439504987757355247222161387755389895310386726107731340056895658654371010169065232502847877144796152692746588281248699697069546354771675680887176814992989453390735466612194333896932749958870060449722807869557829157702362219796326527147405917309848652703638764302789162233056572108083453809897679048623223257944648475661972179280730384422342956845283623996406765200039963112139196820862276451540457190285927503494577695394372933807689280733812060441080808939269679012351284576174939870970498915085051401577164873917553725328783280876755843116645654526359049959878202453700149452134073533707007405278636630526323685422488951351558544102960457306747624112353688081205768476181886264236912373433375959895898097215637678100171785465985693464259867332412498900591113985296884329600051254876012015403048968478525006917818276457550607024195331214404628639096470538450378484960641877105722972618387819978779709414165203960786482665303307187311356683833290482683056856264621084046428534532159078241004529202475667412525675305592555224481912988200739535827453011842899158118300061272744123043619549483015104905015473500350337029949937140960561668156255444121516995251773860593761690915855531701453947726128939671004152209481199997110316859886505660484481754793631978333782685584819261083257034044566350590169267244442454765136129915566370962481290611242610396168410500454126072637579279256905535715142131361951954309088049339843605888044519209751203051842549559682821680832876988745488059426455576248494008710407765232104783378781005494245335088261626192795704467780054166334990440024135622337540595242470686199794970305657606815342608928307498173767183648487420848271776850262986165791386016273119996634947375943598960101163983319404008705989997949873070082840460208232104914761490840420768078364529879386097528211536415836761543574359862639110184909884207038730354843701213185746251587995018171777752793165230977860695047248417340642814970521614458573421712021011554372498281270716770634079865111951028486882686980446415586741447455811911755330642072900802312061560105057790778544160284584148493470220666360906311802141851406399624815400241986227601590559332731344737999571490844993024368683993381424312185999580951907165732393336398514096279613609082560622449428733277437862648480324736477045941470491966797418607752389370949803230182391673693746714206967714406209567324541759262752683451255071102673447695528420957091601049147754442212797874843799227553274399876227391959196966407503282154416815394522033927072251745996080575203326234351229218979884424338324349387069239251405691198153304787434430853871126339519228486422641278604014987122800290926096255362879417605142446700229094636360500420107932320048975944557182033452585601020717362267881015007616861926982527758245275501676571787525206778244042135699314551912589981973608493752475152784719569796725899078482628838896554639292453674916063187682009534261273579504321409445326129899008529644727291781245616028535443613568665970247525840354826649673847705437469988770496264578800169354709636668476316714302544107582851166937819077855238129090683145767314945986803357371158192863690340868337625731234236851058770958686835692687119375911512581200819988537170948535586093043421774883779730670889430937433103983471323650518666203090507808510399742887367417417336349899113495295794534886312933488956139958522247823007785939349866125651617178502666664270736324026826201265896619326664275741239454869815651232875556126117883542808452397912069715879373550378346198146600646885604096410931880655007737058720830206410852543354259886698102646576951402252873279082715240798857581397064184407055970768813466669043044630493485165964881396039079171170048541826224465009087809039082258916440423751163799311644666713273931168662885141455813808615889324011960098386112785136573777667522763554242497204733170564509486257692253095401468355090530086978460527050181337540292246098422102265271945648011264671225749839648892241498481051080040535080740666505757186311350321913761534197299142074831174046574811919457846791976113258023158942531106820554649908299189599163374565443724783245771763003935365160270963465109044910143317947039738696021457470120816195390147316537403996770475845068176819648132400077744449731665114273921538444724639333650826784041553505145574949180620443069969212621650718105640100542388850059254602704278604221865240555716344596403134899294973106658333094117956283143820222432949885382727794550713027545826842779277134240090348533793097424840954483080740941781631409298617263668111711537224460790626609617590469577736936188973044684170605896672426704378354998444773230600947250288501278541902042165707140891104448502180762255187759601111091430190657845592645740223071271727494141632220299140760938911009530004226876697286820054650255848706220756514524439529419507829231150265374669754382285219813440999660083741772001841529858762934014067178673709854118360989159666108866886246740732621908534066513396902247113572122611103772298389630128334480484052401033084241112798548111071350675202883700178313255527294308062243680393118204341962205687539759921979269602707541151246973172261032862062169544451885417173267007809091328146668817156502679373397441477267787564105225364676900214981238546905486617164596963818625105060972147681152127037390209947152464171214622265481138236084460709694952102834119689494734284475952644999958828416864507523909506200233303240109734148671516270093184152371620621845729423272835392037531000152643657140632472956959681909589222323616449128328462852172494348382771764901197174464396155485509108567863581994686948267280344091075225516526191448762602328535980192443314947138185292373984821044342100720699669796508226197123817797509773723242726162553168456790585725653362205179584966259007437589157196751171248414551104949258997608730081015817354770967796529960942863791623796090665554073089054163881869550980595834941566454670957602802873375287453817158837271500492745599432653699242181472364375682112343887180840983190118504983282426418002893062815879041271988561312908956136721113457118984602739857021827742463714279041265356828466438786101293712014439620028772584785822145837914515375478551654220036302988514498916783386243380280528959542688613140831264458850345675256297844060473827541199422580001722181097175215993019822626453825653100913824583350082844542879509830232390478206970496354052254742357567045497252960180424672996994856689698979830072344378012511795286980670988988683523449756972685115705643949301417138122485378840473826829978157205468746998144545524919776994034314491090664667671319065510764667930244194834695317581248105749491911368903676164001180917957195244378849723968133311429325828839691436479844913053175128876639680960610925172420446934107297750159755539267053620510819050459201493892693331991443177033201046186819825005940133086377444122342215444895501397014003552370004581158727886255144283074318088552833923256724854262364989914209277161923016294693885117534293439266026410974444617172811504175511288322132119176880999125497071556853163272359806164331009113803680235359930435151872356763294924690085759959890918953450770138668197314810501191474992023589442171737455341029433922549804485701863957765678056742770090175217770585451933651525073757833162872867065596641064714313527479066663266475053095671169267952358465404875290568336075595353547080757347364126961450857137608348887854452441693622437598138933587681927436363573780876628696059862445580187053937213804233682233960592266701402389999210599870250121062771643999330609453766959613246904997120986327043253454744333925450380584249798245512934417347936987568918041114316681815072762305525530365425238389081021560843535754472177991980263156047497558759467887314746725372488622276664172087020589436807333521539649695777712005794705701024372448927989687681959797606177189669347232971728110041117052901387522939759135661804602650301891779830171393263804205445116018105258282005256585980891117459215202843283851916218453475639763832315725905804750130894480068648903300318209481105075533442816561079182930691216686385263429115678867717434932371618826965165522025028429941156026944937403255730504794976318238897785516371567519774935667296888747092598917184640097281874967383730723033153437577380848973017595025861805526270453556370052000746718583447748965345958410336186895464160371680034060330304842927859760808573297760710916085814665362593600273230263916171901379276109496385744590787080078708029493623138111523355194799507080895856214122500954367250683190153231253248146962077361877738899018299896572196215408267985422642622443836547414480225669128371813926141468269686085901830762884659584995057878926374317993376787631566182152367588289020677424164166868671590503419837000706267525115970248135291444061719991263035748459432215270647000625215360333685502793044019860213744010926316878407077668023856311856773306891222637391584247899084991016617185981496714663459192621108462880807426334485032075231534260000040671414046440049677211617895363250875594785735807627384833031323526640649779153055714947927612769098587491624280669256174351394616766309854278032601187827045321245596270090865141872922145099213832146878386952061713364350317814349819312227882486019308062240859401673428890303086739308107384122013295061996779545782645683344690093083495315722211468040356515404712794227172803895520446072431948842342549458047004946981071292410557995406441315531926105726323234010644012543280178097015070360939528199817606476389519888469886875158767960753735833336690399180724480935146588135995361347124903222363435163164599610237005613209703095951945125706035367555540509742551113330348025016073140704983610135756889453192232735613893909506188343655047214732863917567156076843345668081911538657134148150508064218038061675180136352271612527175261535955136922952648360486077446585180262309858553687805285487848884344583382701751797699208419553386473836653593558371878875190410357844915195969435746502718838306503632461672145501167988148847817471025787930487618093269175807089913748905401194659315821658240624396245188089565301159436990275515038954842658950317344388749611260885903133026449890631386222131715427122038683153282785193603285305897166308163672044794945369620473278437351994101247701337529207505632126919198223921773401090205124404804469788168755324131410571748665447366444479772688519398043692861793022963738666859472439575184491672208650307789615724774742033756853381901625719489773808860065915565020660693851929579726241302032398044543101797813677762220226385762966508487189302875062522979509268685981350429621177349503533274702908934774020054246704860684087414870849558115367770587437954618179723167471792691822931451276243562845213774076806935173601469420223570287729693225154699734076679231066846202910986007400590094791460739194134997461465424557141126415762307789897981153374447310968799126293890867699951124059679825574734764110302051340293256497960866283422050051895520155413610782437486005651179547307146242127483504852544818395794207346032346523048356912112007979243994965335779434464290455137362667885457547223358911575462744943870851770465819766843074064747237659896257114198954803563950580863192426936292656791790434031823936595068046464361834646584978142851058385646865391050837678490303417516765706105061536990391162335235379411551158063901320823311008443276543465928867143314672824083619797881119684706238598136133471761856972398130623996987163374379289890203658356841651392778245392306743874838233203576709540475948137753194695973920288248188663580726872459404137438497660793158929575347621571095949471461788898264256065731368824612328519185475553035062396517875860532461857005495794894365688390901492357994070307330194058659060296651610553426590917043869726255916998144145846815937331120373555283444628829459726664915812521708995768361281786300540226486294457026308835791616622106765552780704591571850067074376112879894843343769677371844930207164902612598382213855515950429497140462579584315461537014149411614596791410327290692716959373755931227819738987768158331443085816574268640415194801080165638498805514523831674739757591943223192451089710175733002422807230677347726381621315354168663913946766419629366343194575339416711939094976518122984760035845504170197289555721679596111554450827254135217898823571025769785884927450308773742016330568356760314410190697998403342194126044390456312888195057357752581611096277904841911131210972171155058257988948923423863369874802021468754777477222792003891481254565870237701185211975770116237397311260652079567401363212869122758525083279002694526986183336652234593914455021282538507584904697431427931340628932204888900001127726152229478178213260614757216077815400727783611542233847441605462174226221695852826734567603834490546084055546451662293065270725178973222846885029877479343273861903714283232077066443922706158904806470058091519214941508997249153370373767361269129952825920737733867716942055200047570964543154998891388581845948481568251256648679957388810404380347326787707802440096907586175730428479208326689760986299757753175147376639178253479316353809890739807822243740309436539538640039429692620007453463450480968211552646140475523517767568858269556433383325030091172223992611081849103610407203705544455531362187592969253394926287079048876772294838859137647080204433692804711542391311223214926306822482311586398181609911325640498325547318313650000029663366366555099572304571598441148495925651494931764962925866643059671181240066849356982009204689036912662109636074388969467368433176307052543353185041043068863301091042485539936078182082600717646859832563034387658632399521672252201157692324577798866147645031141529838058034671925962184310642900940947999790461458453887537498825231217406830775612339529507288591184329617082460024523319709128984274574879764645453797390086491280048699139874533386867179414150827302868131026122843398130310697723171338426116769209631921271671744760494357329960374133017721798746526611158654710415676899339241344357826784655351727649869690440510957799892431306073263048641925882780415485912142451574439944346450613719644248485105122610944382230458044257893623595004042550861498565219829500059273594300873158455767983624036305605314891883461085250408652728352226940980356678949006982119464934818435702654212461216536756727387472822054191772415919605315215496062709633665093050562824168517876815339832339582537000018277741511026005321848443526904610665202693188370061566241512463141630822623462475865218974484609724371480988813111272692945088558931008250878330067584139491778321877872618206964678940712801942407175037626580108719258265361657537483639709285960262042500154738570737696995905646897040107082209662022785717800151468842767163641386312924076703712221126413427047557832396980188505244609403440067583560974979496777611630962822305148516370660565252214516824657648905874111904160544153981185070896426388784415519377770484898810800749213014090998656716808353160120629062814187604767932685074353436187335940734957520654760715428946218912978536191121828104210455451321986203711697663787217753496639141962233997815826352251999360406168149720800416591724531739512613169375396934749243398662835606434828967355060042182819765522972540270890720411916011748811948818488763941807845750062174989399617470462165299986500691191517419227178043649719842960566649806694017053809867996503186900565851089176811539013778750296031633080736117665179105685534879734666433747729341564425269390478775167526143887344146924325105583995613656381278301884494223756592055085649745266243844617122028689679974758016969304660778240937204388072575418856146731275468454998601854599340769168261622678518242087246133645207913489464540558929349434783072590016131415904191250853581196050308065782122234607925125794368151266668287053243756563690713629642603722174112239791496482453384930325012389164376937880753561470896533760936300324799546533339480599097688016909095617442524961849347794929093830439231108330418335205609898090747342027523383859188373425382376208793134472465692944724895034593919874802720580787980313504315296537152986617931158682421552553635285384262326169004267694095709657236575101771905886405798487866270460028784602919355903970815590323715718783150649484685935546920507233288570415835767830007916295952319644438629822869235871459724995670008256771007927671486830570127332211015410113040840652400926512972460528094719513660065051103701838810510657577032348197274358388277595811742382627128339225198169426202254153159186177595333744243912092486474643248605250677764783948653318239065567596089608335200612415173423964757760777828667231112149249636890981760355503541463894048038749446901182810576643430511176004338014288039819865258260244600407001941756327241004631563995058131310189221273759769152906590347613277168506640624910168996837291366985619633276833380419023608753304772102553166625618625926530176799341593597738657015917738763366965051836609898806711704727954843685737836742392683745871541354716825612587676800670141911845953683403443115955758234985246007143241247914268594303579064610848842751854312500280312138750401199346448207336740208130448633938323952583879199035940397496752027450846116503916760640499451168737470719114145144027031273726645000075341419420847586612529863353290152503666399626861681996899806318467994473734239128827759885057762470586559797740991215755585262174935643534829588825902947287175736157691297790550979580946622972148039398743045415953829832378982338176379544267479279223818555849587892020720240625669050612083107092940987481640400888627305466135332068128738847769633161141564129255934437431163852707291072570162512344200268061389146029084150963722092792056111035322067921366743453386120805882442559424899256458462858874226843529000867826802935918108438825218382687565614770348223194291475479795220932674064996710621717863270452740316141038852015229095230564604958725167911797364163513292024655242967310047507731248494339079703433563474809181696199887929987088325951790022984998947224260910408203125690622144486368555346461353346907751596249488730769795793953737810472161191053902131802952702600403276056184672255207373406130407301679402093069532372890411476599035803578407079937592230418431987241741678894254378927031658504813573418712529413733868554873958234942532688589934624707287650265332801249192337436869805971050017196831014930364907460273330524749486184401779518169575426170491635164099319172336220663102031229931299461532294599636438670150771939051022914987674362847631117419156593690859589150000080762162913371659611710927186920158558799053133393614165084078684769281664328301782506873271099619657009237115714885110380932488401950630632032562933755976346170286053433238579162139181988145709163569097817571055959731387089049538721725169925869074557164760335017313729782639133926532537388484896222039604570965234155107534183392821702320671635168807532915186696666739152267648651067138534188256936068291180179725835276518792688042330233241878724185533976365282646029882605939356879349531664775926372602015258073425229533887671385435262500563438043507085047790170804543998272650386405204294161988198516631445566658767737814060450970074057633352456395403230790284215859686391292628886108006103691068577369780850999994220350395152860035717115555804599807898576000781441604043616770344519117762473890978065589610748457272214784379842330468854309538858390907935396081567160868918947191921915694908711046329529056994064867788578860635160202327857759808330224216471475225543228050111009694126867908131791155457817012080673992084643047945219482562088899241333493062677694168555451703265157127261134327576666637225344519781694703084973465831696752317947490571703965364489565006080607742015871418274894710252020775241691909044006987634260372720996708077395697011047684598804141644514883479667339394509899180195594744353958955907137343454141572031643312471905069857829274883882694169467986000248017311051412845239038640785928044521965000607817484548332100193622626282358733574980899568485503270433185189803208152354611369110201136312713239000188055635355208776169315131232292440308077137943919303056996332978876966369896328455626775073834086335009371293685480916979762900570778242588094786754595602882469993963233612006598615387846263278558730901741989863283071862517933040443933842419505247859141485123793606054201738842479779551933245958820759541067507725060773434612330172266652244046540533115964750180021811811130938562807148090489802280562436784933544389345484015333055593805195321867870642712191687224298150021443845842832746761984991119053469959016226462131746546993213159876340659575186866628495841782189343722421364376105885031398748887179574458903242808700534208098129272583181000379312097241350677180113857874575464378722565626423929099706282947471754766718421229142680811876739246278797801597954927510615726037766647948786794126975556309442402473917870564587129003245512685597128479021186733465514443277660705918818342476745751786238074812642423984425104921342599205227205721265176945399294839074110653446631137821006758758348653525417826467656675836027158946956334089782962960551596166473756336775659808290252346326240347406651304250231279949983826963878374549613266168706832846942792191102723362752387209486305806852561777536056060720278902397324453951089957366879057662810306667111551345375403042426116207205803570739607933922503425061757733581831344987685721461635120664359247901537735225547880264546017948718724774247870550345955244765906113918902852760648711707582713845724213985955621919582392408210170395389232464726149669872199941784562262122485768453714302632426244791691886983968910028337788536565587641114218382491039699319611455569755549765765464796484676055949211971903097521961215903935748836745760979524369617453154438066315313591604174548509699097821226128535984770189269274441512447064073241388990883353871667844838105402605856034023503928951072605579068326795503009905034074200579264545645513282246254224226944719153617127481299246686583181951027740698155076854945968204538863270694358270928360623918162974191650734692080951688370905273438019798477226362235340907363330685235796240286127360677115690774991016682522850694645573900571380621342053804361705715155196596799526147846582655903346254014911449233959979250160137026537411256398356262859923333823030605631782821939606393265304207880019126246526791559146768595237178836718091666911971548568476587086941940539199460307939093379642667734676765153215550215663691298649794939310840500237293779423821534539721148840108734044081970983512200762710712176850000558686479828419465457457417625978854711666510448793575264070793481578075945509133954638342129300680366969087491744499902312916296426103083005469396589951647215808694058599324416840407700109594383573825196346378816281129440881592198061436733295519359994268910551743444918519540907342267165391368776828480755139620638114906011535416221859693433934775831192709339700595650283839182166383916257432557466170196057046899305516252615424330074954084358241681941391550912983803874444899359167238294348339514206729237557860967302143071047725518100894743947094827314963432150548504357858296740079468105289234109140727444092750790676942965131639374993514252905705413959881482627982893533470354473036824777288985063731631771760277880181289134100355729850392634531654348181971094927976681933924264451420787561959985368741705297127122887979498018324831050829020054461831533947389890458983975960994682661442967409914051247977580988928463113406888202276488894757491151870182716599703030396655295003242484904710261713675135570054734685404047801090549832358338279948365908447476278164264318311292538201333718141353763274979166629465397431034730920327944790378272424422434433386712253333903396291197790941954897591404204222043479462689566005190997947842660921354282032769407518009927355407855457718188485538573169930595637338267579584250705762936880949701361919544323755193065708974522453624372705823166783969253544277377931751603883765056255700607434470377351565407259502519633822794519432087356127446831141866359134031457419219766465622212143964277044609418074807425864873019284997630681529606432849480131998680525343872903312173502977280760014938275756795978254317735946444993439176068051971585036734538237450622429184715959698892315315786731821143326036024264212100382161178617560821529943410978122485996220711061381315493068536887332683995902861163317037539299840860538509855009067480555122966781526115991921496934531455820108506465598463016855039595849320985154382576883759995052127860337859711874957078363344432770426862201387643453482660248037372283821867818342419555513519941123186557910120453453628752686732748718014872846160958079392669046572521260035231623798432093685581967252645790807496437015084434916056156207754057357076665202256478442040693563798932551801403501740750920220120150011872200800795069420960450697534935067437037903064624235343690654263317424846694801154654321723875076200077631223853435292788769665995126175397740611165658422532052919421586488171447655173060413626333964918094269436345444485617966694016571483748130350255912139432613614412872521694012786358301411112396586867960655990447497225968467363161998902332910982877483010760463077175174057267185157321452258379918374653205226469623822882697038114018415535768254726346742244677748640672640978563680188542547744805719482834808217031287812706795503146788099885251499330956695684511265805709644603822013237161084259465402980664970890937913230121332845795991713677274131456369049624465019336980664866826184843295715665425023336270790604288411177463893486430011718868591203437464289882180494192123570643154512562810639223315556715699780384462591290465241365719970127827431592106604862414307252160553023115601693268919385387260229153718410342716389181439384179846108919295198650957924245930888773255606515701148584962413050161148688506922310391335092255941973337039032853463938610471818810046008210801032039630649425977698296279801587040857371664139949061481525737483284632896995270186906832816200872263064784987483138629907318376654184138141331944994212549087147303930652100434991707299098409098338671365747609302907213752410480261435093964367443595885126607155152082821140238922955450393539963280322473120402686928710258369932183301856614694136545527875303850445841085003959642562387019435620629569763016092215034008287585330503759663995443019978138821625023116300870210910760756140891719193264918820003373352397394316430379341261392566636992836284555583932524033463217838729739607363462435128388454789445365399143286046187497302365391712592870361270801551847374758256109238327038518065032876867111352890998155672057015390185497441120194165320570572691389224447906781033599687787909986270334203191196546299496317436762990677743492526198699626586718372636869180336380723863232939992773144995820627440565633139861305319495300745948737215771923104755953247320948866421587895375357347180500037853597094937010594248109516347778520576772816879486529706753415077046112149091980221953105538480223169045303670549355610724195598478236528855834240101735390176159967401476625457349569385801703550947473646451530837147200735109418957632887814298312087107448545014076516977248648341399103001672981785638163154862094074994702062278728650018365435462815550323301649373245640231132281173970520944320607606227465147503704747950049969656015435822810892762058109276462251573082394969494954680257312839482368531554621732701820657137428904910273065846934933208071984557363513454001154682505314518723730159818760505420710823235367036302700952637128762896226166818094847393727934005254576463461655301943021810233817034977502824259676049274360013319300594818574160677265323222486518273551512384216136939374718082184524434133343359109226573250679743163954166699757906671570530165704399571658482754183903119783297041183835257743617454733320438064813346148311049202633466905171504319440156821802385713922368025147578985068674301082175562540765853896226127518848493193313481574636674944596198157716721907025853074014883427104418467852766668274511861290791387423307073227576742808401385513524310462130197428458183854307589037322797193924866359564175793623410857881778899002736525132911783116884358870942672823908205010439011615322073731541493498182225964697674890975954592473605411506477940389812283939942071069390551239297678875710577838643230836402885560898238195410316219304944028547393921401347917702613323810165516080393536746107702806628269308093294825100571330934321777794758427697355914261557550035627391206722152959887990756863372805885376804761434760891285677631092986743756749011586559262470537479332774664605490830529083784716392680679422991323526416504663772101768812290528683724956679870668762465441729047818405254208191762989213021889280009620510303848728220768864206657025697530274744250526140842922756309382476501039215661386491262401917101350886786899795276067999083166680263879068658755214051348328270217332965431211813237247628156227148348845437608131391688594817456716049522290646176863520529044476086864192547623952033222833733587841605433348395428940683870747142408815456122744755130752392649249974195002759920316358019340927214157589450248801555653826878085010746646379746906519150939968337461273168231507768407879315380857252954921591436989161047122707253846664190369450280519808056967561224016551031206635532910469763229617685940945351873309246634183910950734661946212102754997039779377583167901795632660663020166237560908314423142405815984768208398803156449090607075547930660940881810444738072281650635327725704898799065203872058891525858071785199480047326231576962770279617392891132099916030341494244065644501600836992569624668374219471351003114152584898155134925719544697496245588064283196534536922074504982715964737520282631118277796859577739695833729958842069203641435985313366907059493587943074888198718950027549600314637327161202052432648057269306332527160161636624034396463923812092155060271157276112503863116187006916116333556970793196800524245547526101235280096259481548688517838279432613163268841897281911117927858434385270053356264868250069782264870562028428862657067902758602472398330983219482702067520605190234500979885833747417720285823837231783603927994817888351332450446144307866219048581970710081213576632654141531833725231718502923331611568383864498780334361107634453755746073291498047582375021145099213809666634793145752817945731005909560901896023899380154851599521805805965335577841044885105199470051121235019693209641800976480132674007664487700381791455108902828743183291862281713252799190259724533658689894678887245868584745719802754131787148257229518819637543097261912549100288524202881867573240645191729245159914474573265647305054532458616318248195560070460306385177501975381071959642936211913641489285780320170449874031277363434847966828745224845655467768170208078215919901487877975869921293607265094372141835687751598342458869609047243998716281424562471263585133485159276739181621682527196135933778734867112556015375730444426594738939937273584169316015153464662103930883602149496055716954883620011463355629450498596368424556027522174931954502033722931704857980503525028737242372235744974359937202972657887797060046652339696260287759152370909669044126069234551220232221454628683508241262584894639610563019914502022162246440772347419504290932162526599187214567141832560021205681854022150357937596651676746271826303862920826964644198073595883205274239586498910029083931848520613339268621656795231225779972990030687681131431624459339038397663164705210195044914754767416416756455923165550094042980467818420723594998064570421396712786603775653454341212422276182172333090546812990490033588379718080976564497635522374651429772426821581582883881052039991935341877851047527943089304820283817692912671211936501885395266687025900194443793570866699172072202853746199565943443019869755153547608495445865668409864066573227828099361345942813633621713461017397021053586011804821798527715428435216179213002099378733400394058399181260605342044286544882058158569364478226908941832836706002934130167173586218638616307488646148117180158225911732034334637562524276454904233262565696730775528790776037423974858392928400618149590637849264504137898742846592002979189984333672861308439753793481535439019838865395574518616868110901073370210939408571937625905257254361030441532912890529865571684791089334059659402614910308587635461923695025957532524601541026639034141087224141320050239346086711776809632523591629916345044218049392787773872490121870472979036221950501845534588525695693573881012265980585181467459277866688923088284575247955785932905031026066846965646781530608937932168020219538381481785023706686913920973329512238849930561441242726756940272294214104540907586870304067317993023807720712480732782009653877615349930031446197596783919427977662221938966905271982580740510092671680837214711413009469864071921094238421558746533937709101730480319888127535568322243033521526271512567323231945573412469906851203614260385343832335328813608340821121710565742209454527688375132723593423412019065430075641937165346329628405734024643529453870864742674678979746835769646439567991320969317988496489285901137006542536328811778789220021917000670574537523447260415528783959285387681650005163138394833062777567302451801161252738464642396953254203798600988188301469134885520279893000628473401828531195067658237006359692670044582930409011858106006699095772445318661060511040856978903080617010200995494916782317604482637908100756712586958076402291654076494382736555053295389943752035357185617130921578469288653922314646351744133794187640690180939766686808806627962146063562134763457720645526613071085251662715239859630841957284647878800724669577356905085631495729898113245543121302860812576908558638104683094380623689562956108730953830309899687722790040913419147526982267253314213122279663060544463416972144074275167421088103822109458940809383481729751975956509460218817730264160483368200196377101427273928625389520339609661003281774929391888476396453697821056451551156134630939079295098142270571277460322573044320832201070606811813182259585612293857299230883624139973139993337590877424234205941515499518856393550232402216870282821871649735135363450163627786318414680800470972879159472841510365329379311769056414789687232072777607634044941532217383962923017419307323491296555598129901039229239270745399328030185979905298506141628864608745327673738749242691537570059407647398616265332620286685834032625058546621174498055638883500693423784470422221518384232552004518665364350282166938322078737375093251168014235904362364068424191929844904993182581847793081491547878161617590851438061069299020618739948251856547909532038550840042460817029096915844399421345485475237470146026598888095459314283290204046525683940733588833332319154335049070744194217953525202161577571142896774343416770524592583869373358413294029505075180647910606219390803487875174747467377710305524661984311012477251485146409386852970528050342184405614554256698790276373504842738887526106657971357584619689473126113254774519816249306724429700602308121635584803885567834114091756543809254429801961146752712938129654997369227341476855530665458869001171064297455086886927696935113369259537157831745208478136247916978301284600800900909499790435846909332514716755630819222844069913128680103944737716264783463468116617206603034595031197561223172995476635817830194483382789938351558659751127236878656940181782304285762478541427095456535021761076024630858911939450449924741785238473948844629816514961702921202052303507607981681632297844154070962495527527162824098429803967518635165461202285056322097683125862863295317769177319692634662767042331846218258388799871782393164173160165661468865050481706411797613087085304254795486635976432728773880485498008597355735294210707562039972105548062219914321260755252035564541357137250445551038876924243203010419468920765651955349478673160713423340835950138414229539842247109829836588858097980767934224836904163807548571052182604110401055451337091227705669227571124409841827989132044039742156323244953342989037668143625582959814974726685990535348834079008551688937054571117852333765735883120437395548096178252103738685607230230407265057401628864584672404617690656517480040697329965585635730177190335309327225628982365690542412985662947756807506772610986741554050135744159166009478535543106104679321280553815797194018129490181860788396360780036721577345468203707494834049356032794045037870192940144715521947819626477541171520773730179833337442576999243694361907800073396677489563777929568437002789422225261326598591635452180574883684524576332110304532084560621022854803353356185782701764248693656440766953649158297804602941995578170706811850544911780411391719478169574706140829362181319135160360942773430953922469116422600997176499459769138185939532810036141661532550716735126903692777561391670218140164566032819450721483336622638655242263819039253995063742598091420414794233225740488331782997329150994458448408599334373603914045881013459660489312395490980905887011424674257654752602709469299579383631993718752350396009978387428394415971441077796043597667204360193949623419254036599998864172145593194604268288175361389815909671434509503021900479262626350325975800478972998532151390597807061824371326666799211683131026577728919614952110789403476766265662606284610083599464080222330003646112309747572878284585877613221752699393801657239883762931887516686136619010831501438253972106872400112214488927949892996570398525001353558749014921284163553086839000052274415545264610357622571496751796063751287207397261020187815667648769816230673357849741950247226188542486203357699705949678594545758343428424139546175141104702422343799134317225927030786247304026536272587193563676760441425492826893487760300701316731419908204324966093918644560404495537373444827163775051797818186082375793614318770152318971828726750032586504014027939216157007580532934809929774160196841538950313173907654639716737665448234199884932077166914739162928082092881800684991535457265839246249337848932785310923786044157986991342355231732348799455775518841521298916375374539537061285809467502396604823452786948131445779480721937004547418836718098713183443985436737496589054112067177321487811094866203647436486559648945411315577298957408049949810161158069097437889165588852371462757930773718850989367757350373256424840313216053737470383917145461415727133140601463595722908174121203482470749409713584257068719164802267144528597235307216861422208756481968628169223306048021940737928916685401223440759442509286009743408478948015959556134905657956465212431175235605432056824493669707567845124878826067646122346443910493489395746997271525359754189472801864457183431738525510631320063948011837277795539718263658797141416696387610560863345204070123070510284047022280080126976656296885372031104759437232406854416914512686869133946726933239147299104320189499585641381761291345089687749025040878569129595783227688619777249112910545054133399856721005326770956604324867431977797583461219065882313344988497243221287414762143432865864049010569680588985363155522723849878903972810213873642654700947681007049187377947299660329315422745892023828975955356435680296620628168640682786166365522814908968466852946757238276100149609421086987780528549634339926709191890312200783009297537487038928137049574946941691942773128241655080624611960054964291971317773085912857860316666707852188156269963729991362140562891857736589990558023765945595546611387487420488762640351253411025988504608081877417720213906932169931459358078826394764563336863895354715103055429154402272769583880529732050788226589878723181866828625471903819096304188561355433550415014472779329506466133317855834673527852559281454724315311638378187735377141961069076307947844660896155619393013058841391198993606665183137159280397430088775131812758697034066976797708900263675014509229458611212557390219055198514815833821140309431468384927223415668111968659046735429166780785240189353999509960249961498662927097149634814718961243614993709688990631760430039969088271209534705856817178949602904179476963874372860447379677002548350074990606755931721563689186569142119499286357115699679136273670314338289976626280215014591018622953692204435123520011463640927948276492895809923811948206579521804027360563507904932708429909734746981345916231121396904655898165091451820753914673628082757371806040383191105594618050142439028910307285655461964708182527361397322156350933606582522340755246495167449579447394247567313259817953881262033558864251112192626689625619579234917044546515436009665737369531590103209551924267657918355765443872642401256768221325144934692898677662466139041603003792961283044158911356344285587005228790725096842298770665366567476707081744547245347932748631712606177763418808440846319133218887930818663088523163795125818017505445819783896303036342795961000953434969750606510356917746251925115119663565356181209935270180677978294905000003721326061125129973627480539163249169434286021564424896209039698002389080960769454169002146390333449360407630674398696552958226995654662020539567857099929932033808341068087814169050331852193824357169972678814171794195940285701901785600019662572042532727348656137054346981149540344638991707623918105611999500604304467859864322927844181217184349028312491593294715512095233314422130218525840310146091205634825582755818823894047695138065785697618135266586852682524902403358931898445695402164254272407434647230751169116468656869709586592112890318907312419181765739005731371843436304395839636861457184217312085386835879518651870796304007756437762965162771163811612999665881322774899938378253323037051476160674726544662812170738845975957538725964185009288055772626330825784051248504209843065226766497935976432550921034669096640771915101585923381117458335318691061560490588099546106318935004873744079388175158238410230630919842940312176528127527612484065050533469017537675302660668302355493135149134491706052674980525810306402868202326316356114793854484515680165718934596028816539879472025050814196276381241743484429108405217112636892940695878935652922248786115912403666171044093627486172677608262039063961835546584132886956887457438047251733952053133381345226353011418394354200763290667932761286059391461661989477632999798627081711295248315393369620231449429920799004644363382681666583517537907891701517448058817917707668016225382387100168829762624122015335620107982341068127901347990311446800430046636005849710472746710268776047767499050304062437449282570583253238066105456155508557765424988504088258277070788621461092084553556103530109721732216707901947623313496705725502753732999716979120960683932169697277786179725108142950625607247818973773685348634768502643331067335429287790680268524443923318156939865053276828453975815566819788937814954877250653791818371549847957853896804462798683612008313034387485036464647723389185595813407004162312923115920345472896552575271243734507954272054541705789156023589687167873325297450538145055709448489381252171261550870303318229599490045787148547838270917134211309763239590222550606230033214533933472464567607554207272728338272906139474793468843861931473132339576503455177587953956688570756660774471640705470952899211409260440729388856780518570267747847984111764060921336199505794023446260582064817959030255159369423655282079046916239582605602795324362378533608245819232134167736292372459971121659324616178742541901732946007905722818475438230997876781835054044002151843313758538917926205499247889726942728868799046830931884652631468956337573062547125822804789859567500381229005144444570632934753930850405252980756706760063699100132436415246325886048533100874137766128579929055999745585915174180177743549717242819569401793904966276041458114644426323794491477599709441024779976442161045905606357965438962805724539707147359959499262561884752343307650908431774374109774444630320542267350798593358656684389540106337327416435217580957156094114029414051032585904680116818045142348160840484470797157865902276539985142409141314460870504015927586604939842646986664590575501636550294475010053855756612474663829061811433445378907373624010083128193751947661868217804250929188366974935223064956918705950888387969077784645621803737192278748254890404370587359931782658141092126857693331497869947517194747419698873352938784403915634209281177334249874249077745649560036703987213221513870781811852549368759819386806838432715575185354299709327199904251844254036414045672710261940666921887266533917757448980013984178677623119981367512662229914291051682653903069553662312117323050733057078773521280590967657786589551825106123731951218299000598020486195865871681584271315655629684860479637822689593343566957444299477324171800156352239064807760119472677380848323066252472982199927510977982947277743129358559309904010341185247132720206929167727079146883775730191559217892664873607585804659599288613839737458135138456163280853608066517317415676127047111573294848590696596035718599846197605901823077737947976369931941628685968488829785253360113032985519297402909903224369651015024745577616239113029790942593816148992219583559392478593162109451514125964974976541763179655427669710717807637215794572593050186048494750473318725360247811433610190270106815987287036169919653160650664118326579611068594305106917531187155672013352908899922547661240781359608483055333938745438429760863641372285368821754517039940862469521261651756870283619243772097261208462724016996532308152241183335592423185225252031514444374339251112616260920055860164765740956782262407577697166861660849316047165823840753729068018655079315472463050606027298134157416008918577043745261261427465735597929604906482728762279023121229500396616704152003845729635345251373082904913839907411296418016212061647667510924570882369004378001540683536200061757141208494140866621921229255072326167047202468524924287263251563630865197819611786237335247035440585882839278709767503884003284891966029494170607554876313032076953826584846677271068799012165346400711545082049334640274119067252905545425726193024809314829185305515745546090455146642160233497094903809408275569863975904302725540702171107739573295285671693158199132824004345954893585050830965582635944748440320793787546184139851081947114115262611589328064166770083844049627461683791210252356842462436435331641709440683939124781406247909953857388443284089225303151083570243550311322364822644220736548519997802041470602770462489144525060716637274802147028020029073210022487089364434027737468632904924177199687321933770249566255850410605429586173218190521476059060793398446551461446332730450044876301330993648016856522277720499128382065871735741103328840740547595401198672984511771527638356627368418555821519062396203376943787481875220483775335082689409511822919489696119446961939716118917630256838237990223447849199416730759209534053257797589541937486989822655293232149594395653774494620898941271434745586319072988809359789767330581836467264808390054023416243760337725977309537989838044107461536764417131007095824930179069072991880198290589020168857016216581163286351447483581463578768148722782054774655765700434888902920651903606521509552687662556066290903872749016957745999324640815997758072337964403990214233392340411450415495263419228869784993334830957709079497394301306168251225284076218752697954904513778399554981831215068117339686937544779881433805176658659347228980420523722190688727471632742797955224922595672650675272804914075058854204509770315867669995745607155326258885828686531155756784563318744611223862626975820832192101595979637336639277504572593072696129516215817800865593115540522377235100639825357300860533807500571056258388728134558960282792124558874234434521487199368123795490275079751078064664789022443674545186112350826390168257728250824922970338397741504404954428401670866785480888755221378421039388858829314417674207047877572216989776347527219823153428160526238598120446784718247167949318216015579261441448122770024134819323372008654122679022661663460657690429500535887376607064387435696032004029099204731674679282840975718264096881959342251783948430995065560900722426584470270194715917396019920270268012879218187007964478887284696109994820548907852257255581343804079235095413772458148097879502330262872868504909367741415325350503382506888188340194422892766062813168995112580236368784117256995065454657486297986823901019558741220206950169378428782544837707859290758074647038600233475695191900818056351086778308400566711261264830603178334266193455918121569409991059453534788880510843270437959436034977511365149180068735186535090149112332619205997974761605647829366517718683789968103341663771723893510887855463313559950322860979719291236101538115048598622573486982144484139732203581302085454853734065420405302829287351576455069934322876234516285638521932800170245159457118831181349386722134185449103330371014188814813320201478306666791765173130565097644131849836412405539963095448937531840221399212094904771249343893383464109031435342976363990630604019635463458536440073853434577777073538625141435341280331304096982125201832581947654686346488985082513663939806614000799905838235816679841876719627351365949562271932963161714653898820301818908788323872914497494858381479677254949226315477804237697227869011779270870895904744034050076233340866111054184237330053499084666647138020600150591508740558984862499802034055616248990926361531506790510297777354190883037203920229379328103203687035439439692646458413304821548476030811180034982158734011698531424876421753487686697370226564911855320758687206475784928023313088329816695095582692777107377498823276291672686314593807882667146348592913213175488587297181318125528359596884971295103209175468454856643970106350935918894907761711288340948256948799142246026057239842126075250698848769253624804149196857634531069984131716346387970628386063228008967639741780564618342513347818955448288863746972344486394505601702652930332913361012509107294884645202033990132680544599880816866959529778488369873522437819953414070057504205163337212245943208067383099721015470655609529210399432782948491478188299931367316955753142478436209882732626109870568309440873817689754815290953331777189669234456666376731351173930683978352247296271551790714899660661325674002345042446603625635611555057826244483543084158302699354635100114105315288632458341796805863583817108741113825162905278358527206904070373026399699353003770695324912626182019752087780136727450108479400271599471454346549155440759810682437747364966437941523584723445299392775355907561416574992830523818554897598242332699390282989123436609483323784035280199755063496083972879681414754594900648355667103716800185988150208585215897517896027341749080599929973457671966673222918692896219515693277559133353396976978029906016106401655522374375692750946625480032138635264489259759267578170168461895093763989265924066616804434484344653744294648440339766999536967462001899720161187146790514490550853866649844213888087608624911408729155386071571231876543596869185512597093765333939754714986243774834366338153329592332836071040083836921499479444440479639497749184790489586380340594536323788859912627907996526169809109227064240967594006406927358904553728738194689971200714490194959107606125722615111639371485028484582691275683360049166165409399542747657344829022715464617937160018953187813730538243631419353116239836833657900524475554539823474012862363980194822328680425169256405226332159998910111087879306445501538768147651126736067031264390283692579017106796942677376100215070828718883427455881633454094045705420176308071709294544428052914146337637450549767107455216442103882295815319109634543164545838864361121291286744936273841915112642753814340171555002197570190628272381997033253244305178397773397525587018690092025527153576604063170933785233803540593057235710209530195034850821580141896736260994604978147193658144284676481737486236456076727615402712336012931693853820322337184887688636194621681759750244841741465703970149286329400954193131740562757383181198332963115186692128319083480440783445916419417962613738159938763088364845874051269547927478037724211448436118754801592973720572823669875766818855765296663389648101138621968802980185216730244005540289995058831819111922171403551838086416509252966987833816046480243680520321801197067427019805107840063992636598948703468974948207402391060394409739513615547450367215477539928416620155677443175067026621362095476882642141666637056369524846707378489460035662460901691312479919955110681669561025521638741103592459018270147150345882057624066590282218349785242118646366597005656051824663697310108326943064874590154095861093900647469491360487350597840011977125686540806534748841323969612976355751294817153980157776586009843313221682012043595719991499085416717117508078926205998265791267605208568464436513246738554227713891307506966911343058841122994552231588503625988387696518122498814300232467706337337472024849138188176758482213715776873680883442832541621563154465106931098820046769006692991825736134946099409874450445573983765757016866677199605707402257022114374328432135586794637673546817633413064060871360633668817014193637044982894485542572470400437244048663309094239588818738676345060713127958606712905817331182928204531732277079148551365948132296363026922018769690853998363159282123860788706737838110237598994776114614020165341003883117032049250184104611056136347890935778256740264945664632278892367191369027043869886950705070101071211049509820013446620777962076088051580935313083414401355527588351405391667305978720048204304492079075622875482833351738174991063160222628399438523133727283552409346218969897253893617764841967910081735000504245928020614553805316244767368845897367431631675046210347591507225413836102921663096279454211232416305661029306707296856347745132382503918186840439974962075703603127294481513206399025420084661441617973923071056567690249252058205856576066595505193367223894093695351567351640847803989200309476616902932188238579173032182080943524260940967655375385143699422021237718290894075214092562694294493569479510477442208653901688991509691717442845967488332763289026627510313237970249132285351463273538232767949023433046069754004809882558191525210672699266269204076287678805484052902000855187715831375486963821433156789542787843355086210392451229170082272897856155063645213494787949597498871815038646338294717065049616475532919992119320057805564978076927814307528704905875081646128835130173672839027313672997925895853743588999170743614180003312179431174528431699550527477115975139624337499298960267208132667979546771219607998937180894905514976250655234884904011418577307522299050365598725867699255746771342695660655996076848794553281617260013430953948154221385922995715406836671629673341581797721379812464367205398030843582230434776262796482398099267136794023854479664064198938781592822787087740198543312519152218985220505469368663613427538461052017348553107914137020091027758116926466248789834433745487867525997185297337895901228611435368359820146666590739783554431728638713448913736412192383511275233509772420136056560928389049227451426300866205839703584805643021642755438878422368529453133499665406966473376782370270207176727234660905714347191112284291451347066874744691146901445346700871667708264984202178777246808256243852950256867075316899962158328624622884796541346860370107361942308812810062003608184416017731438976686494763799159441233860689842548764097552547499145256031703759420420231108611964811232043937421670700840222575258135058996477594394613548660708517846043386468602343798545144417101118948548558553814780050504813118423491002229181677088720321416756423755154082801233048234005762060757403212146728459698711451651509985787681152216204672269748006764381694568954813369347514496601709402854399432992562095125240888136555936662546294166296865186362586245045683137940088710708971978331602037689397547364434437007268252199913861917203590708099214829027373985616752332541320368389533031957706619091985211144734262312628580193554420666139765851503056826544437270808942993676912835084416943511966533595808325017084291151399845302012267657161299128219723976211177838513836341080796834809099581194350538323208209940781469240561189344329213305057585887073928362048596282493787000319178209887173096172011590922741437084727942131441664479464149692560502321356515838755048526354999450218058301055704217884948240297499951521582262895440129808642450919393619363733010095237146169054383485942683149849174851517267564422919437380392242974777322231461358535588404112784115527199352962232271163129632861597527078138290877325921210976676747626249695568983144777198837295649325214254882337869209068623408381867097824311064913850031133043522062163390446863801224340706707201116948932505900541478515129775786532657890458981087719940348132950044362018563532807676481113489136634648620383857885205249342332160647311453600652743554474529419642982897534237074946227074197563970841536562655430371272400631150814977915526585224504284400580829079912260275930057300722565437024625270221877155074054958543985696436744618110866270999345344332485838508666055147579737706063676704103876555209836168157157100295123507113326661748156414551070617383392098987309735407633197385819479710057482431852770797877326065552378857619460172428724644266512071045763248179385727269153484921818432325843843002961175164961138875898113864927070448240718619281576112046216849926964465270221085785353735002846013213628120388261522114103965112343381684539965594793858076829870133505297554931686808780271693542357036077554910078958327623422163145300693924752337543011307800854106255994828785655623232451430652061730011686865620434820660808448489437235808215040471994460373454009454088715994764734185116640257809974172501542182759210824256979055024493083268993369295041596496514020863411923956040644613853475111186505242404203189749688972007038245453231940167235392004970059823891644360655923691042063087654512971866287122416512260265310601353818697706144193771812162550534334381156667592716824486360618338785613999854240686143961213040884834219769653415574088208080119726777846505620314016169395750677324297333078241576661858733443481338539660306536347671055618798108319293531185563873164961676904714649475521853529720545428012890623078681124597392720514883420016371955025296179166404133094623778115959905475078997018914974802072433535289462458089079252787957365816473195428620310721250299027947586731801762117516765799257366620581793304054895534177626645285812438751941912242357393533949415113486319262240950297835794274679402812116311676467798772133496243741840175772385839221048603444475235504666657795884128975013993432143222934576712650637405749879751312599705645225542059206448257420545198259941421117372446802251094738471886911717969402490960933615065641615834598406493918397680351815077269617308290818204774784214301914371731691990102177607932424729072847467013607020881483523535685208854628077344098270490014081702535562332741011243633329830973056330374265550762975592674262892637321396890214207651120151104381980757676721455477335347132025446447370473534361945707482286854907412777933878190393090582420684766245926263163269696867681202742308116773292477818727038154944636306626198102864565041969852008472551696081635966217068630082909176349865888845044519137034362002739245589179979591726414066123325736834014364715371551714857398789782241022120741912444502371103715594133629847932534992956912391936753817192631140399316008725264413784413543559020230180087280810491618912871832251722247933848852644393122283166811274702224645390595145929551796890919473861821772844095925319794348787193740929425484583278196721627422629374444577652629109857739989982786481834206931285059552910793328311982025827081705125662121076423791284700159979283493741155939970289172376646234365679638534210600252221597482966596351618501753698134307114379878153000393975912014563686499473657897090726019539916778543070918880429361913664598742364494168432394527844080066697723956415693118083497581920237574787119304958186725417033991280024373568305995632372310390574720639897099567555273800217298578132334195783896626760223632933620807049005520059875622673866363201678441000525446163660426271592605438981497895079224627174535916368128419271944533089133164827033118616375995530720533633679018092187756328801433276197417167742716409094695237757183621510758958251235004550158096991058309916210732608840236929760142924682647515193544597018749694485927331556910001663346022291129384202155098480890359266342760825646995862726619800449531237317846366708996260240805768583465987120559094735411513411444125303258281909303711587598829439952096642132998204263745071676281964395678834646083074751534399821482364060973825987148870392545153215846510811816569337673285995307880674669838716687336761726893559375919601767743164055767482533347440876401638322869014284044362227179685639900086501485314751939791889898969759707759424702196467013308517011429921298192819838400233122169975081618121145218267614714652386284671100833287134311196218173805864569390819960843680991845214151825188049554636238796332811471996469796359418957550744260453059953678664254126495194215049904609544192261373469205683734404676947343667787999983300184346054184772674172057144361847625078220101218982687845017573734383922959424068573873463971878332919729246697631827874166728902806999979161850615021827969114110350077197694667473093497267909551668548614813502511531311336920911891996375814105539356907486421667900970279507990024509687849166085661357673327963929643724534096589458651192238168941018499630064005921505170692974337912855423608171601115938115185908155018622049240371070841539243322590743456783338340461005779289675463374587839027093739209157474363583262074363366108374166401489657321921808104609613835196484338356255546518836397084983317762680219357034365265780734656989627088461415815084948700049549567150337589802741729270660977689340201164717628323819652718312965097935903706779941444612383588066026151929515416293685408020730960072320374206555527066605060123015733536994128002147717146052557222147339108620184303409497939772977721903747430784702399055802243726099118513749977629593306748617055760508800136334832377394769771251356078247886065424680803822398216562585224590880302295100714609796104090090013280150238957735115879900151363020118637507833634585899194341073670988458800309176809767363226746790198551219682899098772569735412086028414631499650628777040519139764110208122693259638967167445441677803297360813718185512397817009116883104283713432601057363548643659526487299395877232903816876794142327908471550050466096423132210022763880716162329704334916279997329165785659635318150155864267552718774732535446635679084066205009800250322874238511376474360652197989995669720369116717736288493690850601220192651575464767857743332846415977932383291442260056782774455820397290074666816531054054370606455237093411753266571743077939530205043270844634212493240107487479527984769067744839914055388858408382254009625763826167182472730945903159739591934457493262267405637631581843012578958219860216691789032657150254024003783719830580573188278971724343807611623816752614862115787715900903990063667607449050045339118021513916155011744488775499063929817202626038572896592642591877306816843287094293938644090152425215484115156508478784291786853212167141015201470694832474105501247050674457165832350160515576270149650037427989804864855917574270391833342287801500235477055501465027426358971263812971960817783160231324897547787339007758717431551784849455923585650001148497452266783009931741124704054546473419235030963262908176626929917645823034382381148539991120580992062678945012902550295876104231138762498479823017667031213337556763144125018893541441159667290762495863626885495380162958739278845830247127808162786664853499184209266604919449608301274908079648181149316198750718603853260933005494301873743410060218315620356364287314237244189383813583093288990986851102177719806498124857860111478101982621191017166941725022913485267056657576061639449241881937643004325167845895640628470763575110698233197575258302589697555888943476670590985453467619859344464504809356136718721484253051881770238219802131731247573445953236259491114637218832684510058948742047315512683976661469574149470293856325332301061402893194239787983707671094508505340554074119470588233551566000026716414053730003466471544176526792785399544784226799181241774448599102318286887367395421431671796639037097323310454648735781368681259750406246825753778826732205441382233146031291515299630923447531851518014375608062118776581792314552350866109025720409428804506556364146260219408033148419291953965455354182000548201263700774706752843707580552224126523423373733019898888529677662076655710886674910973608261929137251232901726331736215244981053336991046345661426075002283845460872098727442325673578241418361470357288078467342743752175684751403267173092038570078752591537987744402006981346026508569315137932406461072991502364108001136513224980055738546820107054900428169575521080107763525763467180714762169673667613722902302573593534377441692755403991282264600750505605184759723572331884727121218506465657969292544438277826442910853452860713206133928268158778886636116152171860482155872825443271106384998050356777991475682646375628998676251045361441914613073954059228279703310417269403306535607841234592809387818851474819875241207131200517404162292272028864087212438579828495314777297159426963699614037329740601721127270507290538760355549619269057619613855788897803163477728805537729551394590692019569635207794051680256740094338128698194005011543800552906426297918887409367377901065773032057800878221947328352214643149949078217256647541488345804326193896913611049293552395711707350737855542459908201918778578782060633566006616508246711181083610233268985570123022459522088371845821930809541060075823815570306136826175694412388146351833412910504617379050616613010291512539957057822955879985538838232151368997856654707525887360682478819827024608766952686853637578509583611562519054659071303817064780423001131367493570788974544363216870452054674643837111763630878617113718804250921623834971157488868904088923656000995535016105731668100068497533260849742545952949685063637573581483691291233407140755547975281575501851214995530500718749353055731801884966231643373123536596067785397649493982541892830617235635290745493087947153973346723460273750240591129953540351592064437545526121315089569120184846503351036890278663451851520769065457746114425806435426904686401737174030040431040173267171263119417046567293035997560759055628369692767300109410558329127822066323379441370578316040497504400710304057807960900299951490124566779028736641420457506749836981026943572272032039899039955953906345868815617776173783938457303450075014096103705424176107274119816050008424698997227945535618361742755254633282743793485913191128141243289791461564547067642990129607248011001466112853210059549887832056297252591172257802327121980908400381040301058854587922066977878902057057795180938748667604448491762545914590202097197630350223566240980800527421370264487669931156668004091912625562368346689544335485825947668928859752798081860024967535060775051197036492545303769748582106313922040700671433233671595849797622733522594400998672582694391412538967644263008367232191604258504114471779458041620122059077456538713878104820009568610771594180206867928239745674089454406514833255272850191185837305893304901695863774450132383272523456064269825720179197337260814838305404255234534347810207115936556805006441895927927702245083758018636738634643578344256570724732319033359675437262818078786055675898636651004497261879769582707253509976048466955092203226329467222794700708937113245659249745873350197754580699724169688305965932037143560377861748071809305434807707616119896680685624832275760943831666094377339290549445959842599356165121955856091826573843767181929058408776953705402211843108893383880048077012193055564222332704957503784507553505190998359733262898138655842496685328548061800778404121150259819016893041976793978308646965693613159874497848891140282476644830344138070381686930760959492055887291751565796704433890625606365644088865684471464629643335763416090123606401372216398419119340419492449628086447301075857544083080125074445320055190704554393656207322576507207499882864453875272251245719211517415338382488040036985945008670923831748581305882901625436593901093592744681131554934021752567316145704495076260445510090352627388349272025449851470796907721138291092493251285420301272045710573029515264270969574592048343655542668496584816401378493740150216456386288660538412508417921756422492982227162103016507997690962125427919399877215896803153867349068819531814754540320218198114580343552179185562201196725590379976226631722882814826591457861442961048246169621634183570268771647717228727760303702939453354771511102865100049793096862443060188367830402775827599643354566525197030370733329605784390197868526366484942127153692329691313444175727171491326458804962666033046518273371394748598817821085354104691033060600422326039228561970147801853064054262501394922672950610648059710054194387388182875856177574582398102458162202175737265359838010531299258028987886360776108321976571138376827769650938192521728293888188266051849395773689969608814632400396738137657394117724730351753236153287094543193627929667510765379317519535942717194581490933660538766332040635130986912478665880290678404460862416536671702329112632197593268502038258355937819119912007546057384893006370007647636614874743084810911400136594932203163580986853387039895932599878617375288140989783285813059596490358333690155621350301214213777948237088984850799699333934306630691651018415419617269398579950810397928771116869165019359748484507293329060932348764168044448965365763646334891773367140363956016071326599431815589982401746356765485903618566275013066463854856044133874071176851753670816419260262845759785234295672766066812656570652652978407237203360855293607178410762178595789619533744741312420059388853318924676744682444381518050117113853568960022489847715526022367808940347639438559054913510265771867787827829765282665861346772007651169236843376278559215587863773356515598058234146115058381170667733035519392334503438636860968441310407388678361637197246380841660696747866831169589918383267111495432864536640556817366532780927978511901055864248384684567165015531755579455288953045222685754841441633198570320206119083143734549500123471250130711095022221266135570532934619559124425762807782779102716157951834511619851699615037267518751025656935092042066022005783943984640519697134438965030669586700808266992691591619799199470414373632219705878674988262465493163146655366727045658096119847846392102721612632835852002561679611393141974101730894611869477000728361442245317187384346629475284012072022614955595436671061849476187774602209588592819419667546446040338161810296034755786043083390782738842082294268881314278373408065567568389109848157005008291403519411134698045931328557035590547851354628267309081822556347122291251394350079133871731996466326338588957466770272060215956735587001061867567914724631437366352895306438075754201203014383871461475557734992084240755012033210732894730328865789139427084513963057695546833648728816430201655794756030111366236958471327810577195787404950785443548568989974594922564962942729214387780772805771298821026719918631769060035831981584816467650468250338089852212195109701433779418038334595053511266424249203485025720572891081487402774067881201919062245962854932881424097933615513587528772980608854183825966475186701205181311026694285476637607379174352335318813530633453870024497817462952639345040281899957126820439806605008768788967943651588380001510073006059387606298408659800658666731444721253724833126702532196991010790900299192415244552074726715754145187270658682613128782211664245774251953368339145767668502640942571232060472819432418095265923726403622871852506003919994170421288828397509531964153535621630181683220834850043478773413524405609333894922193314693068068650081815031791870542595479947931957181439436680669391464740815596844265932222624863725477457887770477653977747850383978667081700236820479400217151373341860680768917855691139350764585393438862413793261519610880724169798591747430052787464560661062701981704554698202575392155765371896984863726117002872149866061303887476234156416070752322618536074962692486357399157011564091725840986717682707868820011661022367171945261168413647065063026131352979828518441351811542809447664978068076467017789602296302629588608834577793944028390641719592991670361748989675806440731654965359455615649954111084525382175194133246875867605545172059578157252810130831985892911142832930873662421493442150337041391374529647047647818832658591183661755788264664127517280945734175764406950419771291555084782280871217072234692570897167359672991445900245069670597165040413760626205968574910509728402153108602363487718488559845280339766111433914519394511627235913623612791594732032341641438032583698191238153072191722573399350872176355448670169787082169979670359276342181953888886736051903376462941643759341384026176985474864466553800211607701425896568601900908631629538829523280367204494931103721545838407398717393068915769648965224853499227402363122564861644649219670881928891639831455402709842514780734639215744451669261046808274801413828592325079099085361108179215136463353450393684342478784763641939239111355498802751764509039743035077190705449078315427796721921065097125552010381610070381239367930064899256890228334451759725725712713359471164588319065441872286472924166208691758056778191301393467903746194598656492650708319871257284084669744077815269600931511598887032231105949792988253032940252655297912531967829024553219466236691770828289278163981239384428270725475881429961172212608424762806127422487795242143280303270383402790510105594058243878382994837200865446346027370951717186271531001267900419561509109728530789476403926642751904328467449266859396594750925434517937282450397066623717741805310488719892913225759740430711897595359695154760014206559858705947356142074943972505663518685497979306680927990003068904327701852468351964296807049037413110392890208252076201356209677694664002357122355522696996654129608956869173339371841898611726760882115060131897438280888710634252771336039895941319944288351976259806779046878206480273535280968664752756560430557859509011943802725989432187278439965733585270641799788862853131516371808174878147865091164063601795670809708449883403283383231916179662954479718221978266437266089153316318022234061610100122806191781002235383777873706754801358905674558059564537173483490381181802818078008833157755182087574388866227165121669062049824546125128875857399482700261006333207934712914943908655275650402120995416525697234790471498250314093580062495314917405924370842627123719421211378207154685042662903268045805285098369006789657609168359260247772551201792897785829732921599368310770248924023265632741306772579974750130071047891972057187433222092331649989419724579274858772968546223717287578241771045105855710589261215439444079502934224927586312303183693658129709734769849159408158358582953101316258788491807092900048738326466641346895576914599565531237252002806821405305450736736622948482697374909016167517138921310111515343019155543377122231922191177402203797332138114649370939010539419014924558882636953330902839763380959644597951897320346040598483441150679289146569453075809757746101909981393610000480385760210616840212228558048616044065592751071092170872385174417624711536244217238218355561325393066841415654887365518507855690020707335977202309298203363801713816176190869828904026451972150511161283616535733471504063638806748221145590377445392853079809426589307166999187646318797661158108016071011572897313422565054667421346325807269389965568083750431796435749095384598425831038389248106346666685304414994763964110457628770198675390515798469104692853985327277845133936113149550268805154537877134705819477709239466590366197753814236141037753698142246643324474284329703981167222085110937810072930900448279715409162758009491148086147145462258829626871470157982697376501278438973460104617360033642096202443027281011706143221232980789751956877698014214007718023666169699886273850298107241865991142057249319183638942755964222317421988034178499131058139822452871263602666239581510235101219395053924701140260481913758944564308351492487168946981439823970900547371728985556588949253661626217104638123046171487808582883884901676068521662457401185219113390238815021443058633926544499499188293515618850106512307935695288496929427036304260917960809253134005644063844644275450511694574463797029007516842031978679215577990243043253704806777136685022426730417198758003589053342122274210373188045726981081222170289045244996797867267531746384663183082837436098401572284378404666962871377450165929134087582906851682750312316666491010679734786279127222467881747148445635606505419587944670474814864493039687376708906809337437218676677233256323605950298825148811504943278329134397607567561878764692620570008059557550630771127193917138236359365024754597125265336565333635587581617190694789568816057621763769600361884126199732739060097929671746285366836549027259809431434850392180279555330007264632777976828716545290725103188409668902491602899414432527356077253045606232796507677567893036249338569711123531697135058497590317934691929422521076318206511071814766585375532132985491007292977693579960715542626712180217125171159991222011403000981635476224701417787837083479685779995256893667860093121336311537714870913182897802149687278571030259626297312180617445087452211983172099451669356879858347806727087748044460608798604777190842168091792489074247355684782519503547647567673322673829729437456926300690122448960507141093697509312633821414685326029023054717086381839569212212892582058650454230785796252338304124993571246545322783994146014554952092378687330051698590335375278414580650311130137305999788313125387910396577010073635557350521015033677916695362240736789286547219956552543196167886721903684622915608209728823910993163099939081340712882531417035950742385791547627656736914211821850531402760108159572014160377685943496897535942774894960869441935056084667639244989717028570771162678512316348841957476349146616159628758942416099997432556330517606700923493715874022542791959190080030574230524411405202605207187492469589919157243506401339167595533779563756935094296115529161514248714370792804941497361308321828514477408470993978151679044081499558140224699611899020615832347621592743415221833874284591598717956689988040639216425698113064722365576865143910683484891046797727793046972646622056484906999178210657126584903857323930395129994921481936083671000525379200757602688916311765508602760269846729113904687430915462741388986324216752719638724423481692699306554321359556798481460631429736002626317525697526071138923588137587491944594647261052567689829463462040975456468687900503149655041861917402941544795600819017684105052812368842700984798769122179550985063373498218128994469222061929575967244256708416597223330172700707394927806302898135419754397757491994255566239284770863425059126633683286940405354205011449634362148719261898521562022429332928408301308697642202599727558436796241927876931859983561358462437349657872003627857573764654432187459287231759805047639141395681079446656632002986003086438434740967201036115898584247908825425267903178444116579912725732847782475187120100233296812322730973060000785744115491570084463191613618331185464257387813888534208778835379455426349733056163192639676259092675947901715787532826227961418530688023610816503827467484761726328431732504330179004627234845622973676201805072513874106879170888326656009779283249511771652951105017337453150190441970275603317330638885711705540310950854358125778856022086304439054588467965264197071802955395749524705480038678734749373232658762546387810764234330749614583501118559100387979769743975381075323338084640516480161968945059495566210969076193214303707527092711912145508963654244069593544237999659702527039687072317470130503223971254498381166696754007478895902199746703905796355593517484110049069284340923813139235425623562974315733138495509524037011964590515027993106337199955624768857396536035456554476815487625639409249106155915281797153697524835915355143403787203903038185152409721191437378106179889969102419966423609863494648718596673328733518891531583855387337219519627148152405324504437615342393191310407565346489106187682666410434979527760263289668184203229059342157112525527656943279220546184612875159560606101076634590467157807697055294230285805379213178918337976366945224219129327744064789347929467443539089363396103263897097473438959975132640582591711903690460457082839878167976134553721942484338687053875774599949718040216533035063150392203430280592976482794604471553687167709191147055671018966486475384578009663834092522884806315033075983885467237186718510872774781060772873908051545659111965610124819693904918356385864025474649328283725156657638832957045993194710761915055493113659834314971261407919912148435540392521806851530892119420956689909442586341577698017078793746422888793550535652183184547643269081666794725808914271185439685848013123007036440925798240240399980572544495816355735818141817086844312945893335538701046541694698022351884628859953215237660849830232111518315703356942361535165078817396819259039900637304460482986677584030449976795496758458032715115616929586114989602904977814040738237228985280309362105342721934693669407525836265235320919839990818095473237671117627066608802911391854229029477126469607213371672762340349947144151268315736989660443543118333507451858440870910041145551853604710950178416295817631658128074414847661736758158149049091139799936855790856538378131578464961580932590891492885176303235898400587634738946956475457187522177512653192107578506513345190747682787919620523555359100373453558919133814496545329264558372296357267999331347480814130805051580754367141809856979868251381481464395355071931058524577464403176135614855935088186854358480332370301740577516179065493397922045216664543300893234407831922525333406066187817407819887144788293887632297063425890342821076840908267435019079199650872623764874517127252799174977233734599114073720920803442288988484331360160813996926052520978244453046416813396248919309331825493379647443838472030079000057954765460427089250875533532269540870457973956965505257801148489705890401203254030680648911824594325060604909451385232429532193562977210070033437789934691319688579924331364369889703918184872578329259532281304961251235808850745398267861347542482975890341133021518366551555160980131812818394528360694046037137079767907618963693809624169164999844184622586217946330803781469002131560452375334106458496340615004591595701802097381661789255668010747027119593235212043049804592979447721565858132295096319894544109801487591862091474438875517969579768624118551054792274294960015225930494978034422632561919230068143291246985802065520168922526253848262746576637451614660597778337218356164608506531168248104128847315771185228362081900712173302564075514962964680618827319443941905886855089078305486813735119130354062302187464218840134211044876623897143294472370734760587761513767331956777711275898233566046910761493808982230690206112313285946627895208355270453621436519833172442582347792240259145629197453358041316287866652938644347079123096472790195253319613787509759478468937023265068350024761480153673311809514773158409937483196922037657637757230394637771883298320156661666901731139257337837951470042831977554386308191296205120134583326391549645511548550023614924415224215840833984434553805776446243454742149398291211064695794330046683828313471375123822469916812775754939356399991647228475335343930715881753977441991989283135052635282921368715587603202711328924686382421135730964048262422771236975553204352339623825681383398676037672180882181152927506895023616335966367172829830008697599412241663634012409981203397587709607279831315664423056865385817782212043994588366947274979663343717962616706523833202240045538045228580032044473782074011341852292521959735437846034364224024747414860745099510505305069240064140387342861729485845955777350520459979737796057828810945511658797997304742006121330914689125011587454543278712863576400291835213375380899066547932397049875839910773516249224667065861606352004535001812816430387613760771654257064669151412341198985792417445230872149804576724075358743005396989835764034483376713069083996702344013561771391172471538160984666831055521029735046222986217570511423074006500249085115339963071842080295212652968632274854988621654612790232551639838917279485575608273542627687988881806179806112101737861020670841773102961365316406398883501656699080307250881366904984245231097303637713487351423801735634389523377846188900792702010433872219766992570355351591763717506375918542613397626339694583858643351651355383576817224391184592933769929021741200913594823445451567319329618706660858023995741503571620433538413984580755461016821450466585331479160788675962022254822716718772087526921554588026947277944402075706958405274251810521106180739658387208977114470113266873451281921672795323237434446134646539031392015687507701797454420519265603757232015556047165438810099916340451003129943235175009464287369441643922851284041925416659638017433136378322403774392203528954350039670825784152696299715175789882217773425207901704064473240375495729811744899875695692563029475495571913654099622900389881408397762135540866491431095685589360453569471945307921306005049448532998874911850568770470484567415116409701072418269555550307611838072418072143482350237029053211224586880181303143646013561019684435625972399678348977150840279556617847555173847393637643750020199876833347013920471624512882094013500791842581673390164712182771926774286119797729686290936131855985468861593047424553422840000243221889029077298637256656314568686351047946037178206236061560116357076713461619602688987317690754489080397764413148520007352876137802127583280986775345345582392081048156933969832193904227977076657952581929988238551574263516362928283062026721365643703639254550850196006068392142669852960120267152224815167960477681384725797029097203686530303242734521090881990573694029294479335295176661748784276747988976844047349130292258713155307118845503510576653895463714804462015728972331100524972237012495670835560949424163637836110536972217575121238741944772966978020006064357926193333584036254622304477150713610978102440703788106268816720933931519837997566352358930262450161162750921433403245781487845929008381741652791158415697152339273909867174009668870637701229913837488460111096565887059010782935188709879079203951688014318188464382609554990715823526033747800136350962303336874043183013534965886662249367149970858492996379283953115626506476768036379632108387161627698560373970423540180146093176801967130634215668010703666274949469252393253887806715334192857425498619997887953361695646614561349178578875834815325483687014366627968811936249674631695090920908169389963295510512808326071413153140987349171466740906576530981948264784976654457165407708521709839921479285860241795693020722934222810669963163245783883248609840294406266535121182883628367085053244903335639316217136514461715671244420348948118002309427831441880204965746109359447577980598066350561000454687537089572555383672684650466087956074621050100102111563028075511804922399514277383159783408883014342436226567089826965672683529781135027063930175802299184855349509041652145544035009232236177472549273500034291350933700915828980339985889193744164178653397538735013933949353449574838743809120686111122871089051022906447872581843003786506927572510617155056334967024547484994534779366732938269172349186347523698226460932078887294570574370488504652366781048670100107583156500954265145204561509055582336138434616856338137774201289096401659964224534609094479097827058911865754857664871960866017248572762363607711252615000759069016113324965429387901351046394574674533370284518290870384008550614222405026210622238919811617682454906603073324947721083328841219884152602741410142800662376488274968627575190257747816809299134646771307464228638273457315983296941454083113756647820543813599821039813385966147412048803081337545141235504202274566253892456268256160549568533534334140060003960444132303719667518634306035965551244405584422439111625851500446352829651527398729330073300223656787644618143532188042527382137195881404756134121458154223111766276030282610639097481102765399501902741726333645826869291320155109880867100025533950344860590283598472865989280002227167547211251468824474989360743240190491989797672358923196380260610998427954968442962101388768306807924071367070686561289831937144278979802614910591096666824459396812100390851647664247570932474569260971036238987577040892338444474383345277652833443128397088724025591878317563968783708489835470479308044473801426725020886692815144266724307548467663005200998739871644989219949425432902807342496394929430509534154133135299891632250222001007506806705050489670522071544030970062372436684525227228191830071207962736261138690312166238467217579198064430947041016107064341946885096272318080631595157599760290383451338644613048389483652976876803111230813887046235161969356284631868412091661840862266643796478259746366157682274062641156874501850876394254994889172011951632108108182352790651631117658010979658623836459694109475193669856315020369088881851930210465483648859158346261810473564057982471409262176462142403226967581979114567220171316054289010225784708708988337660210749410017641286225526897944238744273249703784239926867772331522107030642742745413593407366334332843637887028462209068151969082337783296101929038778252176433804556730294667475559530904626703947394716892187760811514035341498501907972457570574497957235533287387814745665776313185214137488877105907515245687471665663820271850409159574355177343131019920233345392038158083859864988144287131175258313036220592121580214968122747172178769801686822280416398081241918026537611293747287079432929088643375021735777266369151748897709731659007970147506626408942961755697231706297332119928988345100550689998245176524346003139422396223466142649231412679562880770277529046026391654174419847811117732811412414166207836518576263050504023842463295795851111906290769473837957647836056281222242934428432876524428600635193102495538839962338597341362591199537533181151950007173339232603539827032445725480704848256405143609374492942667797960593274311256446158487015032676421983797483760325678825259282003606903814822743331650256121857638316599315833494511057112340625406332442780347874509817084113505911056124611047077642415148395943602622389179290123906990835458351723377276932321461876819242716172586619547648392833791062687456617673594006633854710626168601402695236200948893297518895850026693341717109273440451871909173018712961093830988336349503514421934230479696356913708165534613635562107795219443397075349155937748459660657677863751485981916494455925710999884585997409762143708750137974546979655072165711575509474522788262595882274143756715688389911070055179764535920138459103415283236905749684314147199049159100542914678115400147448300468980040327825204284979970883804325160854092908541702767443045571870653187080010551603777495460674964181438461411477964121789217522956548338754362719198929042044583829340787995283378076617072006323152782920371004060913509378708018578250564651517905381537274599821959361061667886456139728936507488218681601798197617279271631200307877246770184789965211577306371200437507250996471952113533799525630475117822690931128184533472372633623376712319956534178327258417563499043886068362546580017840617023919219216043465877649654723633573727855899228084875320586026661846523651258849048879910830608073530478025412268710944310263392672244808154793540713649404810400358030052751108217927046497850024722543871241195226518728882013799546551138811556484518638144420146743725547245962553622348188616830822938201234192965005694446731404449452399154833010896243581755874049931404582099860204444774501876870513921581474348158505253393570245701718180317571585052153529918232502993577615608089733447463131075791034347289433635953326699127343221995479098161670139511687705466062562679198662055384191723304137243379190544814311350564727609623824780494557469184571680573288557189056985722417190044209310922417275841794039648742599339143876150851942709423441723920740162029737392555275676712072910656507691503354269849615430852345328515224600516902308399484081624502522452091673281673236189916247979594191546425210564323769506424106933088044115490933962284143766013418826732818239393488828444662966364683023735276358720159892026105161975711125808169159598337897833116876950225484285774206054364231152410916911914505156170937572813065075598281801827762307185591320650452716425324145443395287784151372866260910454407363489401850596530053203064384360089804790798341341641963915989751340508055825284767725711250794548442140491752948358598278616459828911503039569063529584253213308229965368156952908039861680348071536012939673399594057482273995472987633943546152008329350746498058198209014365488491949349845778275376114601553222632509547716489716472619403897785714612784918172406864139626955522563782065492966919917113635199034151637952009531842390363065647942911504660345553657195610602004791877289232209111900971466069967201199353164419216250657804283071604833247623707291826682193967432076989340460850053505837821573168666664390246753860884990958760934652765774061693457662378710834390594273304922316207822673761345694562961850049211913448458390325558883008219391776310153417545268840549410706554428068442443551190932964333440516520406410217341391671059478579371513568746927746166832743227246756944207557228736472662494032280199372614690267888496064429985260267402465097889554358194153421426093645765255965934716531999384493501442439138527709056911782336268421985819214649881220236158739046362641225337443013584137964952222051159102317175381188841025871577269811210077890538996928489222827947335180670268362867665010741656676821937030350926933739553912606710391989439485430093859096615103343198693472488937766412066157921678878626103934446019838594915366765009647748527947787524828385359258308893853015042958668583998545468823128746189928326137580787600308247097840711031948541443507558323583755849442863487278098065486068065033052048774693250345397508541552996857458680755613473797172627550154159927632589993085042417074269824716075593972351993809821370597425651185264439517938323791940377299056688416148301147995008907492275440244539037443832746628285454451294754968994103092669134697268174268990883235062310019823722209572651070114693645473153458788578386752093902923370247811632130745435912675409857148473764668635204115506401163521393898672671674208178476344424175138271191459835679878186379956222577864607461542807950372776719334382708574547122251691215864308826424111208500319392050611541083875755941218145013376823763779441936676299727430201618987886155599341733029243845669373220426024183350311691706711714796098911368342683294122234961033760391586157317890982800438510678625892847574022718807934734042233692087266557173601533025064506122300444255982580839383824713169114278928614255272330247976063820073239191915014162773137398166698381134505559382430741722005277406085042159487037890678553078994094925834493008209211800088568731123673393661810724272967216081880031223039515912823960745346072507232961465129424412746209136554431248493592436826698567308512876615868339079041966306859292310109426215483158213186993957016644229703999789023987209892785081490016008377517925963070569992572375191726947491945921513692830149488281919938751599122721141429973278586714695198546974002532453873420978230638245819137117946517012018568966143168814375043891090788636354748287171296955748773067383065154578562088604897193131262666728812553076427840202793782048931482485261195655138340261407271892926333326511051072382962599115409812143882577086124651589553569021253905031949540171393625447247785922607308937766841349523936547295339914401304436689830937970849066071455214970770990200529270128846602210610548703959647919941601091914711005026668986223456194660006763381938415489084379820143065045308414553335297684553465859043309648573050924200775599969657586142202222778940028265539954965349562426705717883065507585739171985766391391309422873090772850388351088084813427233449745727183830097172958014760950885037778421570841992912355333398328125957607469798904034069437638357085843343543737385801389040884328950669710987434247702864288332370378695376161581587196712849378206138454748651774793612323994063182601902304440960576458986031394501432989241581726250560158259885552381373131000559767072370881422150572122576077269678177618798041609344238121612551078008313751715924415790092323837392605203726705173276743779005070193164802409217156835368152838267126935301225992939175208685657645216271694935424683359305905348959972234989656440903218093057530959293230982893188883977564650170887471870968270011850126429788084227137066727555833579518064431160945153270984370847705431708225843165239629142875244477122331879664103732297110146118913763707876343024102883387375570101803178762079989742888071222869655770814174181948636574257050313407283706337453192986994872054457334029965278391921293358288701793064133065949684699535248986948531468833191445797326654535504478798875028167287761343906877385026348068926552612942406427864130613658134533896789945171789460478414566343634292978499925315430104184471274389132235976765710800197435857401935062950734713191192472320944787351616875890717440034723758299810486446578327776937289416531218635863894354651261003728667451462873190676896971404421355477548153532681214528782481778550268189907441160682109789336611685839446691990649754047920583797871082968331058734762882041748992265347032074120437153993631614333627929966635772580024298770659598258979585149939183646513394430431956006805172227006056586192438095023016107099802953545991110104453912178759993387330688905534157835233111067968354358546837472271519035400144728214260048700828243841887770120035640862474890876602289563775320787362667666719573893329461551575785033383151204491177628533722611508550908458991103439037243322871273173184797334392791724279585873732266980283794967749184688676650433405693997128436481996108619134871198189440340516760036858474837085734306304168370502478242777076298207319372557811578668964421439128436080264760790426890301199030960112623327529936001707569470229815790652382954461379098133704124217847585005382909393708674440320596884969412110461874522905395633691758151745618084104745520046022608843210361862353099757463213098581784358146878018630112387533932543512270374905002801861640335405402332105586130249257311219245672705250392333847586123898474586725586862213467407894653315150158276827917819067897023471604544930414595763107421278863607801950479651225821335500665627157732812711172518237157676808352644942224004247730800777225375675426459402282915423589383941726253838973418999881862694240696129434114554523536513932585926945771756417195808305116135802848094549796591184122717564670565699461495753490898776009473312978241602996573193241977873026419593056922321727912743658445676432232530694094999835316077951400854391913560310160056994852915925889250284289536246708470104493793939318808247040475937701004363169666510970007550210276942472120348575758334034981839486064638466958463159980762892587100845365664880008583132300006162612447653931870328294480852014175743881888595363498016418988613431695554274239778959443871379519740888096977228140785691717106043291615484002265463120079927023171451354011860855188660144856648162313537961371331636598952005979020562527970796542457485225104420356402180837205361081408487672313871856199432071697634962216089133188170819671934005268617772360705553839084318984259800129465320817319658386830961853467500997970432420186509444749491748650664165376735522040572847902180332231403287796892749016057016420894466706805433353387763016709011191159635097671481515562546391661680614744391002026455803143960060033321188943940723700044003526560105064296085537231677622214436560366348348650156145147030679772208912472321226482529929244897886864348587444418487446429813183972474663434266307022611405364225432382009703272664145607730658651599153670526998076815388178808130218401174477936055745253308760863436517403272065045174424348019556794832449967846098127494678180862703583734324614294254607710249530970317038489171733351714355424722589970903277825580237341426676943487627079493809048015782597329537537839726904489803782837091439179687780928872128036750956554817555171013071363309940363934689873904713094712284270377051550851770421471756043172919872584700797855055509726317463939308054074857321647295666669582825356328349073243982849800447229301213094660984534777469303588583440783952404246732788236491634996993618233048430000233864823485365996512816904197957544507732705070395993093558426399477513117030816784674325283837881031072402819508824467163012555791950728713116543074238431645336178955332590266366356718475712803831698169920311961773951845290732069788070619175203109161919164876407113380355910112571438911850436501706029868743373285685615362440573669449909351143503175954225371056710597250392351703446367458114116102522378919346064500319040845261085110980697567402130285028551613633124689361053516158263113018933762821328037858772735057988436879005374313925937016892753154546980090814704975576960983311569702347059323775822584601760440957468561998895347742294450431477398838193389531168876059646748355765869860824725662022640173097123567575357871705214856972222888243145207444624238337090504761170330590449941492971256391866843961725211083291087857554804137612172087598296958577466078051818669558505377104757484622312127969572723819512972929878595757083980475336473481070275437018478870702069983800513837660563139122625968238033459863169997897590406698522258503860246307996660660689426531432589795590027579709683663002679350469943689226192344452745760378926148121360966836795771323199144611133187357954317954572627032817015215845533041791886681782405445038476823121033495251256498648535613244022285574424073412818066500564872893103740443090288567940766981937860677237780543917925005288746986656135438045070455858276380704373301116839907023190475626564221581756807971485897317400993006123477143471894166450887294968788510762948913115452434162929553956995217620088437130194717644618776908089452004536918269192468602596755213196364115013620989931953757037523913382583433298311435442735407136976231217818317219050888588023792382299815783418348006469505221066934968928989151675340918223480245911487112265046764348012473650279063708529561234588949871824637881548473210715126074229183424457517523543023937143702652545129427837001712122557338271838099980673680111703704675154786804476885275796417687293242493112534793764151082038929223792685134482374503600914582936538248823626904918347583111212559932755797867871217757611701809276074429184151508857765423662666476039576952212997840734370554649718878292671694535175679544869277426478718654719824943406173808064945311151304976499485538850989498795881204162685027620655584742469310057046508101892859379701989824538604443525223696106539413304304078894446245155285707023869270748406451692137040727001113963539833485118846631875584313061796213232685354942375410493530014947405076541074123260282500606840532941992436249462850797711009337703212859318797217117391483943445038183492663171622944099818192477576839643749958314249238768521500034170040032895573782918616733162262104656014417624746455869110388285062678528543501310214040789231433979278874373882258136654515890355118084468750815360198834043359034760424774162124974543591295629529500379377847475560812719805785839572259005131137326410448916552529367375581566264580308487498802610981223451083287147032505596142098714156608035516332220848747289749680849682645373927251255782814648277307312499563961010622027830203614858367555791764484229841314731804072127894609917209071145823360888254304467989002362280815105779694604595097449611718069681886903421770054606857759089523186561156573513280851928931619013909385677546882604987293285952291320121858901569649146705876020559446023587978779061946384897089477591207575092970892305527623713030389425098838583583830746266445221629450910514492670358292165983431423603985933249437795449388488716588607724612088986519675435864230160988121138129520807585568262919449131821185902138337066038559931118064666408588283031191039848953668342384217153964185926963530425930119518140126289883619376486833415069689437084199857424279366137550884040628595691439110275099853414551684441908535339154314254135903005565791303771748726691749762113564079421741975983165531574346524713716730170781800873471076488161337906984743634771069014963420060590529795532721056508170134980174635974394737429734558322831018489965078167743135172253431369268547390939322952385104012860622523470191458503911852914010208890027724711402944470674795412968167589912696604153685927342719869379598080494459745791426733022631875013833563585085989726566478140112105315034431336178388659333341801001255883730946390941966115116801962569880790634999051322897879180943672008471023534529907406738161377972075893907281948758535050409895508156549929220487301993947744941687184533176075779033932036252115627250438908717227277034290489269581846481863531674709268829207633298274005341176117658697457668994659446321988609980399366697636596718100525660258451375685917714596210653099555886447073714137278694379336312061878510136583288512670374713900080089381543888104200582008680944954250619295479343474098155549869691110104699085768487586764745531786916840418876250444055355628241177157295619631765940336062129176715179309369001537267383766406471141169322816957455158118527531721463715978219183968029116089304138185027710559965205756756346019004274065380410121137562282300648231610026973944956315260788759229650350231405535287031737914831030280903100667047890118061161495975447462168053394769399866279832370714798607263043128441421558549625151754850087237872171860924062411799530919581094333736636039854619780812478976632815809293872078172261368899142290818971134784373085983249592985403573320571621840705182834291364518048007135893408288811040030063314538032719636532814472094650733017582379222869737229158813532012530544587488980342565033658621051477515850376707121644419578003373422745899752127036177527366774834365625119656767063603514347889517289169170460514654374915411905926811741045060963701135742002869465962122628210100567346801960809467653681420405692765683148959253036069674926600201151962949981688894249607498720235813360071526583448572718301479996782198907690316157761920250634885002797963662973396071729767869072253340321245724788878100733435924565971694971780253996071199956414958940688288022815965340740460157460511373843657512839879619159484719616442375181448237842744193911098217893723041058562068823039992280012939379285345881914097346681140385776019581966446758943399563797803823170596554604638077747543624757314993822621107534251255480691607484692811224753105890257308420047597626054277568591036539289519428224566428634351940530535047480506152468194624008600875470362525833080959524228790756656857632029909796411245587837795678736171530803206519110831542146637284220913799818095078779994376607079339984846590268653206353631863653918703301667772784228011930723123265366676802353408415558667117783012973042308883591794095368991614366053339849963041887836356268116702714418059991389384636086710936574853737444809751212283430912788302907941557564045406450362516944853872787073926312367597821194026097082643862646903481387955102867784031993055638810480849622669845692266876458441996637479999413868011684630522957727688587240720149328291631187111398818882520739909726777487652027020348711280863300707817886954122650838486426292177776512734512752473644919583933892742094946251442800497720828303942931331455013915352469453907069524985343503639237448337334701112457200735438120595924859727728681512085795656679544822491986518006751494502199716625368467419334263763467564106090358759593476634667029760944235518206338092932237308426577751360294956965099554359015257310038753894035682878505040222499821616390534366348960576969717286317979074564732709832080734731811757364824447480969243850959076252319244674266879916672578395002353205386620811891240471431212326237917570360463879788367521012947465274047949637583263949366934790844581571308935610647361757880983820840542204166386971057922751206002945919518508041723515184623837764645287902432097425220952239771620781549247228472955610056436349769468684216397736705992943518950945485014458370061986994195387256683687249693044789320486986317087161006289793683186439124857832109304970067339318408256755420764571497563557247896507382329751938794179887734632592802297259748439939403480362829529868464934068764443119519284915164729713460849145449386032391665643191858223890207773032247529945328623639603754420499528989073752418728125937030355280787301970143189654382841513113887151755060415865718061799660652919951556480309858297697460674700348808242050515940190104647291919788057132354748596801726583035243655436054953907269465529207136048547675032308638597373619900014810785698617463633303227007860642733820358502824662548588011136478451676060266026820448478788004303225279709427520954820431509932277292670158091289563486588794271571622407405114421646129063378697062589468185293266023864787207888684247186462920665594570329736427093069685002012616956557645744612873161639014545377969100527972766005220703446869843092262389487951466903191217376319580985015832160323491614481854872861838174734713400980575427268481171640276905866166491479597766680196762354536115248726267729670352218224568304660133283470556612990605995826431841130633768424590825904047545914791787089502272536389865526613376638206217724552735758334097716110153074197189644626085062074173068126900527774567089181995606941766787782600355507877253851516219995960056937594733962400642247806529803796197180534761314746486049856514833560936068185382132983944623534949125924454635348049839525811798769418969864280380770901565022560263231934866886183711881366739744920987779204255843186546823312526842417006087094445661517468974317876643965552846934449934858386494380248817505707493441083370643174650774985259406341934625319343266585887955726044251705374549664648625190535063230463471883322767691355034711413767574479598009029534780495141832526912262393641106920122868584284416988669067377444109658003824899270147610433026848751582746458956821994455471584267293043720465670084862974019225475307009003351990857131970023883451516369882260282735187942917283127185901734079116983552026860058441882332219712834993146120986015710559045177694234517537303334663703818035694260758941333973806447895216677409054431441400959244900179208873075180400331593959067428103279950469080184709255669365887126900960713977805747585295438017391729019998179049585556791657670776593993368309712247021427157151909403676017991853695221505115517945615832358954104381967226260370427753215384417194757766829076571008583782515424628166750291582324199117662624595903812835992047340884662218729494368382515142254960088370817400721166021667296871602688052453587103604744027461110342596342737342458101687083666980301268565001898426957712325125035714421686478491299319195346392104477719867596427794096166671131846276278247075241619727463894866948518023136246944671585202550236449149675734085647595856506704696684223825268960310709502545637705485629662507828770330181957242192569211618668391263134730376127361582108818078953207716504825210550980009862702108198693164978648561569534818152653795502237540449560695773311431092155167476406421191711420564147498838879058934203233286896173809209164306255287759810196126077638830881961877029915823521017134521705650505348218222617868961469236964683157344769152962072017188473913454614758311434563646844896486870887606650992149421341619940473039534121573888434514003233296879196907247524881158928852639247402548036490620457068143151215092644741805525987701176985597077822613053851386765799324316700715477488384890943446984533504904548220961579951094195451976778655378317654346175504479146195150930859752505512441017510995452488186842658305295167453277518856282680032924943703152414515620080086524876029313732148460275701801643379512103102188903637360843169977573731366044573556979243427399187037036129811530072450549479755522235176754569183695680460662554104266227978947067146719272184310011603949528042402524399238069839716945074162940600765310026101909806348029870593044060217004174251283706662147513630203420425819129848306123649639658735902331053900745915768328245348582813302347148424014372796346956893529465171156157006886871316045711242635756080457912102455811997551209676499204930811789641867956643295087170734708503607343379235445287694215535085010692510480835906586685218128850445884080575403570918335251166870761048535111556998936213390719952363706749623908473567430667066504468852160863384246618251280685912515440134522256812832892412978672266271437704221381096371439670721836942644529961540655098875264036773185141622981654801252343315859374586803406864544967022619189413275456725795900316472125408675980047353805579455727950135613928431990516981874363316143307341887530992054684952106825609769216253639377697967290739604706771168140836106722639201330942836937744655969783445104432331810201829135011537528199109894752090354214447870891666605899846018788942430883885172026402530188165042186614767708488565237135034943602572086451401956367236992955683611811885254515427482858294880213605816507903126941173217768270054831236687490227217038305965485429392407324340416040470047997982488978431904293852420247929433652471206664611982702051088884593103070147153513489989407612046307926235996655176222598805884539198583553314070412900030204247781666740944092874874965464398089821157232150128739508313549220065704080279615567558207057610297335319149066584038973378977558491243969031461072229636641203505088911859997174711423444329868704287753609231819190766925220249665397260535394459510624894512590853344827739417124228789816295582743083872246525693094173213311716855113030197980655383343100176664092542374913988194967075022118393189948729726573369714330804192781061068837837554548191905355861185895715631494769281756216838135666022435935282369677797916184534952142600663835650959663002063579479060928230187371556297967634709510751630017090945255790957345598628629666431524557105730689411869100940504927509407253592259657037002258338690129317142718495479108625409948349126669794110883571445726227080522618046907978576776085494599667336571706151910422079214040668720991320993160888307006611571147785430861002780807380265721555052366740180033406304255780494125514855060044756077930092316817804774583584193768283997422951613398186989083503668897212762764880407792896810983204634583051905149518160257426503601479374883123172055388409646228911243406071741060865000119174964431579109530825064251145669253499709669302542093731731395379004958215600134657718195790862473452943834016021801968631719154948990342265224506851507273571088525448892686703658251207356063110094139283643696631499364044478668401479574836839086395287425899031541930690895152351494604216263544544913054043332287638586340274469166696660561663985286859539208056191177111736235289987273251183718799886161629554983245663316421006884918962678303381380115313269232044485010685265997989863727219318206637354599143942443420401957069331504897401620052808546544012519139883592636642680551303220450312949907861729881229574068434006585848406086463980742601897981776722181486324826985163548410581993736170684059773524263332144166849948130263339434678738188326820582578833299017748551771890757769871831878038504130240590818063172569352540985095135557456072358330430789268130897946724464199290740354244519596311645869673539485736666014660055427668558928842678730750762880214602883022594368601215430711083853530701399375917980031647104722675023866697890104898032186981943769420772384635561755569055893660108934215579217464653391889684627259063385947471749364189764365880521956069964164290156462747008756097516121675799232899438781430520207410390243606002508526074270470477397739252650029875146042657688175724677526677059415249566476945222994241521213759443096348900563122640043936773216307988107962338587286801777669091805764973761150477407864485391182430453426328236614827858926748123246554910459272731402152155979814820669430551612815198531825379824848133894693261959197574969189877679528222630202301620064998444669027380556528291901366933515179435885911317165612966997984657861635265328496201662818817650591057941036965739062474680569911205201983148091485343206166661886568138354625771759995665607586216618510078279839507864279070270997187711377744926648261504572760582846428776381647987845941485272000376072418332097421014152373339832603995618445071131798451644530345687799909673951639515026682298093733582373254009624462663254696602848386788730261926535299268334065988310674774646134162436150682384682879070681670361872816591139088301036157371441153319598657844252721681911313644076275522871520073180813303097588803685924469148727171796649909757450700349190173757376411314295012508132024046729825244224357770700723967865079230811844008271197463858991220166191654432225236965733274044565614346307976646672706487729544158158230463154183338128974234015969630349176728388751348841804466061139767511904198419140554898874791187071343256323545614106439533737457418414208125202022584317330545356110219161164132185737542509369600119228118385416623080515219382922193665719438807265794758141418985686667717454490776216453157377184550650944081684997399661094861261541938025631456026899409924439868495069463603855460762338892898811113796684571624631921952101142038231390539544279624461942578446081655842063334396799848923478242301880046932364675187631530718290788557371499441719330893154847443688932189515704192548493615970505152779869129685259577535351179822277286488612868356722607047315553457963646236864337780684801881847898453770475320299713706339225884066161705500366394182968723517817712633391507972394243363212141967518550262196361601580852905162814402548066766967741330346733839212895944745851047838094694576234722157538701156866464543518362284867837102395638486518947458457125865786185840485290051229514788292113260336137364591237568534985189239580887881246677848893620858460053343287782243846203687277269476452368725591579052524284250521413175150283800989902974459165728936737188251053374042569058007267007640151049376471923178902842300897393740587815915348864009793602809643594565358133861687837014258074708990794813763127391651737119714363768167285334611340952774809443095610225728984910724646722088606901582851786560435820461079167483032447988144996824373767975661670004861586858994488424121890570291266211756071144396819697327450452556837649837817105232814881317688257068269737804136920227678907218555338941465747468894707253947614220121187633420796112838763054237794787928995729613700472454484352824563630342239564668970565564949250045930525084891869733431046046849113787287231143853661318610209693259688145977025940392895041995886821549698051186869145122923470248805441197615416043086034133087829722442747607530813662002934680414268997177708180237976730811639834214063248602345285625645292603981628947744837508020866764127837012495057473222980393088466496053873227113134301237479932850402938556861731308635252245449970443287091419795303622094096595948600144281282097260816266814852843651127831217965454703196647716738641696011404207062531936500039002953665392217347734255586082858041699634535321981833389954600754546484222967341673588610471137274420901184718594182860816407089801403650232535257939995340798932250205540270651900888254689273206341666829627310953637395746693944425254018386717508178357294422112818992140527223106706718280527343097618218649206525098841589130171551059562155407946045327490439152084143736112724450857520965453539524328824180485763632839437138713690847112764408821016103787722024266782140863021862501619936684590487040696077314617528816351620761645432584602169287054376146499652639033872179858481833244777978815587089544720851361591749662998012023681436093686512443139081475192847413933274630655472195791018661773046597379361157421076015019619860213449862391811937259395710536162447153065313827606860844709049902061386421425805131949590484098073990859648787453749322363367373491346367027029092140116686813030251772505872477393803640841382123113004064388136812913057845618658621453925940574852309960845294929366942369008484795459329406099047805518294100751492639907614400312480369949956374441777082491911005635420573183913776539226712007303720596376536287015719232444166416172790810120996701774088134124309005576908398366685543996185486069219173864887711394386696330087149692135113312242385636677868771296556392175913897994112105223581784551957201283849532555523937920950337772473720354253191029298978033813230153907372220294199059785275524088551620935715358280245572190520528162754931953487210886444600502751226788865814337694419733357743006991367125730452552460354934421656662163928931954122965841406903425829666575622417297353546438172017961669926100037795766943045417889101092144949098522097702470080994874294966220681401789844740170183196784124619034934447173108786691519136931147420494673916997589522219212724543435107791398838151542398415196867753998123741801307330585981082332024674609934886107672125271482203940024427789579131930551062167263919457903914515767647621798353797628621366387000332691346852326145929737696369366952994884342243697940169178081342253157408989802612088183059625115345482459265458808905471709107091934326886904900231808000166676758724385176114460120632843646557103423413731275879228641784920533747781629431470941142265473081216655945623170913772841978080057356918954132942068393356909389154711071686265534517663944088630554364760288207125812111226359873975518076056173122962469236947944228440887648708178432061464319827839410628262861839506409930565586932812002036882232512189341661014994580467769264414057293099678856221959569942455776990936775785498843127556523034090919487151475962820114263816744846948243149882032334654819164295898631040490870506770486878160462678781608908753260214792514233730684730877475885401907634215039127945331071296974017846018885155955227000438011297915781438677730225125873742377449908648367900038342314433242502082725005186713809109292946544537935817450458400137029377638212403785596346498489450372489914705166447978684766597728718007774585205629980842853466047182071324530654633815357746913636026147242421996997514523959237321546716022976672656413251929581717176517752264886149772650572866063131426715437073957051239453558317446934079214066077463743794177925111051444655073462890360042467970386010098864737088562886332005956185080938314721581291949874568553001098101941176608138501802525169404202087658678366923669159726687414923372301064228989501134783508228549290534833966717553365443948133945985427011940546375814617983967078478740990032095242756327774066405889899205029196893536019407132369789655687382642136229967234100021246296860447731576447529849760084267816545782750830702288811991649892544175485744877370073915469972253494983432316304180153476174568365251640624134576440854777755861826570188976639167587969207859044245415720322203856631298115020541575413838386214624831538151722643615537402846551932460581500992484619787912111480172414657553851125997314653829711006858367202562705312716024122486792910349667194131108075541824005314248167190390342346673370762475202544908941891407383382723022059709772441060932560697539336423631118843077726742910086160720377050073690672044193093466926881990357468303274417885426927862224284726566132557798000322522882449102770002334739186366381479201187602648258039584212061600349313512338754118953517557201106246165126004446340833215401447453892509052074639958426995555285730201949125693487734593074927789560743533647131718040586345122647464898277839741430296052727767846340280676128041462681332017386119575637518328588018548902710589118958455790028686589094343268872513412244413121255954787095033448543961837757179033194003505747476425584314067076206511957870968151758574866651879084112993658624035814809064267110552370623453385458864125761939276011846735377000969697281047098140064551947389626711947292648258391072804357582715169181990444302931383678840302696150312332922909202886094767303777535818901317161857482302921679873194763627190023964157476477755664119617205261845465363432918983807769560072822521397863770128700390930588338291297679967903722156078527639863722889326819323307289507021192794630624872493680588973477201510530663264975504828902754791513299729602763988873197915379114625974000463268336949279711477770954735029408353519539126593288568170681202697906335996423139221693089726245081786415330228389705453872842329620850101574376676181301188392106978532702609742888756698865978502576883748952945849238516755965082935664432999329433370196713320536280603384723634801712577112674161160143919861323802126137170305201506983005171569049851885546715527717409932106196118274100533472682700155921009685140822532968246469690265894871478702908225822261115308482641403211899358440761220037131714976144415020224347649050827555453198413015817557392220935080273331860406182537371528450204166146015515555536059793432080559189083449252933989947058699961511014353702725231491612375572757502341983998481191500782827680510686124655670089935617604239721326028604490186958001315401654485956016306063674666469839078355855503219996381099924425707472425574961313112796382084886475149723822323563197277402277701384797312548548074344905124081773570179643132038537352891779851497796946377521430295675559315614934224627170173214644260245866179377731560326027015140476154218337318676805193472291297253034297318046002365720071366917292748945584609356168754182487592076634132593540000934301333633275379373439771890167413849708034860802337643398339705852752670073155337302230840873612688913011213874790098157723108744898895173586244728008566539719261339918200394452931522794722527296875728628562341564942843466792741146208539561005066997054991433545150881910947043923166439518666257685013034347783108308324026914327380533887980836406841942561920266540514491170802177435342135860436185691486278296302820241424402045434678174762940935307538556615297329357216726905227582666210783328305651033937802820175844348520126707143216882550040006266047614985194553361012810571970917278222438046131338083370819233247745224787814834585251818906926850078661134304799377569616105980734529090193444286223452180009542636845198736183983407663083194881469925681755998383388215109745352226422828792063975161140611053285630696441583655119174624789512695155232948013446343507808928025478380706981654959335329148905885455719225769787160725205985466457201243165177549244803508632376339024683253602799874292432206547203055015565107266361074958636382167386541866449672038983560425431891185110671909196587574636370358252739383548718761960249844742540867234386871842813411194254372637679431011396537672954510415329243823965236650412576960073184135578725166039376645849482645244621766629949304721565940595257486846114113271560708675049036604022220561594169084875017047761796332131295325071600469766696454580893858632626508458790199863200474053685621867600486720994485569799795938542203214290413949926281283599248039308137833656381471367047001777383584516794356572760013194183830440355663027664803513725994887789805259689861465566466682740269206420622565928578189100299568083366801217927199714503748458867331164312742357848632740752118470095699174526804097140899411624447213383574795493455946196547335314009633876276064481858845942353506304213424057073042746857082862702493057796111824049610117488494480537106472919698013447978917811107339717997105921864918216324949010288110462635671526396688212337138821419252917384975647767131592739870933728718172991795857648295780805585843090099992233612222627351409032607206200003968840823614392605223899229009392510842826441569678364567899338135338194044595176632845740500323672529295380904916794587497753870517157300591883971651264837994410069543952254089565507382951908325360526487552320283478932920917666484765723728547446357482121788234287894955403588851054834158551187946033566436714732316500454744563943766693238273969015241985548307878207196263394143181536383877737189076152868139723187303337317333333839500177029346719314120809172599543575340459120465587724605394005517286327442897146049251947121179187176940618388017496664101244524612566147845437155422612662605579734431924390182001704917922170379962864725131682462654998421337977077579588984150562914867756363402028042868693742379060147650200367288370674725568570424444231030820026462052740666659116033228525021880854138684721942372466449687457997863726436541271358827375482723035574329526806319729483633159250959659311409098242047354103825034571327424318898761198104994263270800446918759588358177090233125085454745539490389818568957362568350894945497173996262930371740037455885553167541004859129485707416596569073763670359856905448562621674481724304574425468434069997621935239424731508979335686660150789816234285096917817873086011828941345318007606827184714160899624817014501012946960269442369195349797665093158823672463452876088452818314471558763082544046793263175070452329656669452181970539139034704334752887564872266463446069282054620624332522951532982351927547905711103803333093416166881026493851780051024452456430152759427768751874554707084835184298399534952586618482280346933003721457839396596368032595065637819119012007175247587386312607753118359324490198624174880173542527249566806709064533941523139489286679104845419914669155469045557830931286457036076816005476245635880664311131743222902223911981084530585478497902717466465880659245342583989870884966281477740351356225523606619090339984287778504722165964905394550993319960055005782068519343832283284287575024736562294136644650632025495260813555561664892743219361942066932499938932605635148813673932588495270675850484983320869968752027485166021741895117191227851151407946590424995651750014251395872706828362295244344271505049798629558893578191076773318082839758110708424661493477287380571624635685078423144148484370268226174393916738807061749404852873013989340170126827209949876266580256791894375143613118087127232703082482866282613049670160397464554699273104430001394358400237288165024216778697491842769009722868546861503848496884066085340605115402079242788221296214269189918991494521113772796171229456832722148699143254694100357013786325345052168157296278067668969304496788768089563410346093601320396138595955817635943716386022905356313725923773711981721109280015436445078958152671699586291775456599230413520241070705061816152442594380116186810364013716512113711554668993364657585753834260421058327331665050584037058110746256489489132705111714310860923183701654989069044515496589731088490192035771549857416940808347832228908816437840217297362373125334445639560479341342845491580002397215516650785134619289420709015940109986523234233489566578131994201184000985831652679658193343160431297122860380384113175386367679878170010310901688593633512217772237794052482779458882615613448876688160254274545758537257900899988815648650267079355624404823230631071458733051749744730665819441934211834169620531671473322473352811343887522021101254560545806580547257867214656498403145771150679547807505323267085149921009591137681170986612592512458440249211193107806397731833262658076489420280183776893400550019076675261972936872077774422876492388640870991894478787993724483147010644009964485984103287126377403078630102590690822542880976397703450579414579140271496493426998254298727068126972543991898696611857675480169068123990712152657450146560492227362094862626904513425275284858042373981971261113821354691490547714267247623354203696544337755946756647019040642775797680099180849488411810928724737946446137042017860018611857941638477354012397707226896612141302059930534269739358698480586803303200822643387271470445196597731236001956829960043685075604994876454640206689118344524121855198815099380767237804935910143321554475855437282895997235658918503053775093436087009572818905498109349843415762044493593988180631711240390377680107808721518593393191414612967826254287843593301897630629707338648079196258116101553783157174143129847309651663946189301882047796336963777273920741634935569328245251532477790243693378857788380254838464663449411978485044914394721299191327072804165890608231666555566749855118196660993379220972092936446697751496111051241627142069842853755678779982901915442784239662891131338758624191122512500697737957809755033676301977776076520638493367990124484585015110383125869768248518481428861269998487320816242932461377568744423955082871793713978257606846264087295787886412268315960660924861467295012923945196411434756040264573244235656302973319309716053989107781954089764149596616933249935631242741772109071425278842166554623316564598367200243174546801635429393037059700411881426866633400973707377162831332362541313073562014197854733594555220054291555324551476250330950283336071078398987401072524682155854659374048171220909577676896957460224917840651267005682679082044069367750009094388875261785604243070694598395059211755513708167555655146235228241711479437066297218970641660873390971840132686650008435240091070985516900490248455675273173024498006533127821281517232336073597330905679916334899586850723116677555478503726167930219460150451892517447865292180123571420822922515005952899241294256928591494697704415806242764408567182311627265854178785710240860882149550466317071663813475318743950424047998443778710019673909915730807911647231643112108410550834909115594689846956491099706786817013151731375343773533279550641480907257585111386077866828108808487608816381199371580643999724448577150416415781453081757266818404297089825167545951029764036424692918191366917789748142206420534685499426701858496897861261063609553619524231076060836378063438569366322347823362332689350012155852145714364253875270727917095246206706125777892024883899566391145520229626026830184295503032215482843209130182604248547662115888183205645489611992520205656440241533186446252579151977264819091696793848701935039623124878740317608214318359499823662503958148321923563243857798711057152646145965205091719883186058935301515133532551973243356740862927119005183939594213350587358999466946460459429775213032167435035813899628836714612986048291165182095202504785500369677668576528888998852076209576146111130903930678690163089523278175350345621990136388756382545764473422213725480102848091787609066955532668226718251337868343605417487089215270232065305915642717944387694298372969629778276322997257060155320881959014147226741990819800301213605562417204344892968337445874374855370562186013130299740010888805778095663909157369602827904859797227426274263874521034029793082396340211259835118844024304735503654494408004903312500370534781894200947667547904868190541823362665119230313192213282444692177097219959018700027172987175485879981586152971594741884731029927783942116620411709350597635041361092736190974116910771904449653007444375081812884311169619516669117447252136624393548891954821691742279087039999141365455695812636771408912056549346906883073328742992581613243451139850833094931475271335368161904627791953570498679751825471404310550080654562117866417327524142567920994299640061620891937151241779598713310772905696577949003018087478031933368034360215502471157953239126534076042081976746565054939806194767068209013405896403634728931158224158478727522350585380672505254584754003319006587494454999258322847242509015649310255912093216099755518129558283189509189030961658800591402411319493170923176073829856321935105636376912515252014244063875256504923788622415732564639134418315285888412517202251073737375195335076192523215786090286667437482495517226095383876791011346304180139541502688324981234675463952700425683337943970854841860254271389663273654695940421013973082394424017547215754942064258576176455514761742510938708937622904152281364136863886673390230630523811593166910386046521293270784859867726930621352334511637906829520171566436405331914599383521961119850970237681896868900508224116862578907458315654340256856931185143830415599126559970312137465971065496672922742459679630657872537836708639236249643681741310029205220324283404520546997836345771231767908785623622279828073633063560948468385762674224609382891181636141157026335648241461359295106453251899703111926971721297938467207686230204661406103448205427319253382622629026099922370601176235726002107506938533321086118476702955911910241266095648809069215393105245009245475124963484254707980690483914879794625935765653242385596799784375120158695946542044523555100881335894071390693024321701405826046338706061787303320495195662168021566454164314239451052302459049860429794140946671425049727246974050854412631349629503657869688638548631956624722782578554863604609519239229095648295441445930931441036508332694223312922542476831392688798595855237015650171620763149197556794321102296784047511858426937355529034264138917146169473740452246675801188728127210459293979214657193577579998917104304084164708878133508759341865516909181267569381318986647070797874245287932292718312934342110836849564281059806278244784042748459712994538589344004335125517062002224821503464708253266699334019110343389091580420381303542032827839249648573459409791943962202811701637454596619091636428819284496018913268598775352298634415235681178691788722335171579855302068905763599039689209695391713079413308046036619214044953439726425078389865294462642108138863141337831744336358513721233307825279527554491296675165818271383794340236516079530988556222712634667290333004182635089887446717344936547076858914761881333980722023147812200432124755930275908135018919182349122871030933913860518436991237175973968058689120266561293211180644991383145351567357325623984676859326307982054146749503635221034762456579015230854617539505340725560278265766823321539803099430851765768394788697107946798755899583553712213951393652153393620560058852972562036422497547966741581766126514684947020911607331519920476683885027747857233723486699318092341952921940467624861608921719077056670892377931491840190290173106242925414369872372343732178418833457392530886105487406270451325813788546266124509509716984037004061430377830715984012401334198586577044851214031516804244990424224106401639548930455204904015858693086930929018806273031010050523369274862134612796351869597822012693394752329109393686142250639238170349662877129712148172646539341152329008453809495846884316143938420657042586160290069183955817224365090738880621692896160315275971900157885291164763668674488558336757281461932136303281325398706784679792671957514769460488996182110141476518960936040091532298105962298876750349471027992793178099755124967563471961699551505759256657419649423359645599688094156415976729523971954309369534312433207204352881169758157858545799007717779621977445658069323683786543064183068946912815094616253965136040860717136668026013514523083023783568558346278848575688285828192058657444453084950956432050171928060536878889286648786280509540060323812701678845570255442908751636918008351101975770946014659364593186680835742639033826248179024768615888839423915025837073243674318593875440459151236616567457757121120466672143862729316907551733413402190721199853400965762067569775294693378469248722575404005894141727878260098882706797789922297143904002272604427664192477763017017228880775432123921188510723222954409499405634478967323836294435101973296546735574825843638689428729986925076259751317797222480487596719710869422381932392328203074262360893036579730187672384188916421302814874897197542802626111708527272020104622661618714585687293154756609548879771120534498353624282846593106155363808193202307575844183823322800303342880366060784086572857684904612513872722537945197131106126174455893271528672717046527325650574701293350465550795277858860305856624500392797730287812032894211959892338742426350408719629288601873727526770263598863733898031974092328907742151696668250129065543854753243840953200950277503617570873855449766332260168258085832672368846774649488807358294096994742416235749486248257950144271160291922353962033357712749488446273956146735459455250264734615584583407530403544144988286544142268517300750835607684714751754471237095099310987891319342956361916130968454358751862236753543890303314029951072067642495651406131769940987362796341400793129582947471006627962607243427067777349435503813410614759073329315774299321913862175033191997174468012997725778284200911187566813979780513027412650775380435740839387847789215564607254255642549427980650204841557496159917806387202599325378210950902012684204739214441008848959993614793646627493724533225855005931634937522718133450767387036926305088467793612076335418323499764750322092245903158517678803731342275991177412095809187500047097160532313756270118735469606183503695710901613177916061345909418792699648616098737999756422277153574100835447137952885394650508497038872319476768316308767630811812855441122651575075989316078920500984327782533569015657335910694672016344668951622145211933872718826873413504240488735334786790957852330993926185117120361502134507701484646758982115097196374011101260802190248585500549106665594886914835219171668975049212642658469220157172217806013555103118315647894039648020467039659902509923957604178043762824594228976751114294642350537321729811953864238663481167608042597431105436334714130211443073754747451096993120723378125970502261961196588660240868480871223578027632281018263713502473530944549392757370370462971496793729089580021873988043638719183715692557152108277039655513079359961586421547344062052007121162153727578420415638422119265179679040203556338777664726012093425669606310697361857751048778309735526848630695750016386959498819184138485400806822689792783865373725107217379805068238556548135658130374641699626580804779491697037870615995911212628642298494969195898509052366090913418129665918638335869305888710905870894515254241975887226472151915623523232127168884465656003605672130181671528086680822766157564087842067293954550288171851694654103386951791605709107212969571709767916669578751203519355836322805620235347427072451227204068829003155021054179409666720309217014850152277441143798695418319570941904055764399268260855415300473292375325230817352108883370500078621908341437303426805566303214567215745086336499596474574811723757940425694339382746353667286749912894208533334680420287671435797449608054034240176952228725670694286390689601175381173901035827549381322963962045149065998341873857665669602726427076009975668077585787009234912739218767265128570413746718245202566056246664820714192887917499956416059683551336486858543950767902085797193155457546383926260293095336083944880691164479035905526963260384983329029034692202237718104958348918486911290217509755708585215684931479532323087405893368203668002701952694372539599739610977211235293070749832140899012715504537337110216548420170231776022370337930334836000695486288263833533683410155007670594682366345498241023334188622972023469481358227513024037949377636425321213329295315294456362857074864184898958972424503629171594001984147772041683008730620175514241208961305664382671687740832946411986461907516925592108976070599582918823885020484270352903668613576201753904368080731858367721364140107869238204659705286419866063425209349358721811776720915681663743085296469563574758704883035898617246119871161038453741469995828639341070206119456589128930155403246160768692942926834245684253228100757893515631974789183770866299047306861112950716126505418785474226735144705735695657819878382752733051939462727737033658012982035325499602368756114873212720312839671333290957870544996366487398498854885059806551019859130674886157196360000100932160983817246694868086419854674839518495583519830043403784078697776768717461416263171352233334934972183732422599577950894687892755982272142818150645697885212949631403371562088335287764231957100157596533320548826430996881905560422456538894596831455611162425043509638783038761344831558892053531115746035128634280152797908249480146902134714343089877441207560680097456227163675218368820141847321339610467696742616689320235776257593282518741268173545315766287432150795005712804133515166448547661193804187000751173425845549998931715603389171274079722273468080628739967110835529173325899868814032002910005093211372763425449245778679586910832103500905853617409344638324473585494844713483500678291947829125487530891166240306671995306558854141254750763963373958097237369694743264593394309234433459259137124011916103201813031838547055654489634186174129459422953008327213087783264193203788881638443240637654028804945688732842276308223539108468876832090367973682957808367219042733838842905930515042902821710395891851356501396602087009368901844844594373699850840451444135010875778909251638615825985580705693939289982662031831335126781698501205333460223987979890793906510845796964139031546988292623923834250749082203000399140346894030164790041971850459025319395931913229540267451245134444929030941094123457846260296973961287655174163838736670209526805415700742043321284457561426635983223484765040919901473030626901336311836126222166536207183790947135888489638002476529927240484851609747483690112556690636899633472515420069907310987770297966852819543026879945276895672685274805149557546553505908063378835153560121308292739471312090099301488740654352389282955941327820101570225868299586706520269661385170311443472412402757083787996228530731639978798978251334720080656080486719925937227764633796208028867776162551209883885357130585775586444541699464136555897328885746930580342578727286078677762488783883595878068607610436707556145506297909112307084213072898794907466059570489617722319089457343759381645689458190251190363533789761160295760860602219877052741705603532915254193770795107129181103887593985040492202075804890344787651516146639469777465871866815125707525065291660862043770815253474101346313026418202489166035751838132582156808682769309284720964792291786267151929155013055311935422905669571918467565746553223552712989558136707829975658506058929095670763754128583360522431943288489705862168266557307985644959202565365740239891302242456521808836307628301224717832958348520535481188213584248042740671060910857388525132407059636149652699710509336539064433426301929998175350909023077416896840917664690528741677162321145538516453013654268419888506529511818301232410421721429098238552736491282264958502345285548661384336050448218249482643409114994221297813160111582542196512452162809273610111664929314897387386268720025431843290871336547319590795541117297642935103445153207275062908311733289100366352253420611429523195873431645523211711795867556948111490330627639395085673630863823443580537509438409004999618916378545922618949250372095574199851107102280142631965165860562311513600537785625536465411851846746179395870677735755418121510195574521280114045865849013989664905119793773510183284785680063626065885710606572760363559731844411388156027977374193597266038393219028295320122862776744058606868982536405346877496571436120971358229751537458524029114126205964117252350458174983129625069528069228717657232150954222544722976971486019880357066455396237284362250313106492600138510900884626408701804477172064779148885628482131092382747324795291106577747747914318557914931284303755895575214371612149628025039638410070183281697523324284187302460390334548351424503264659078185744759665168120180444859580389872953352115569214321078067746548678444754844871641384942902149613714503493373791437289622922302472780013062465243272131831548017985831642199402609058392317046703271004396564965878466143679958783248541543375230395009326953902364039934811998527945169387711146135320164166401924683542644284570896534691488696361024888635211389645516312019919529122382257971769111078116988287604465714178064866104250984894965631736355609230008563540973734450084006553006739478069892712740812619040543870230549276534977201445499857209686031666234102789199901175095533807922133633086606432240437606788326606363895639280979037500271534500011825813020560628716897709225701998554337893804081900834373688834567841006748895082057719498506977315152477425405640150868874470740841618600342556668822517480217442027740439319903905473987098449048247733213842558770439258154572150066488050228173097359424688919865431570248697459342933734059701930459151014690647512612439543241830090180171135805998342482825523468959153228203575144101845093484487422053735021029408691582145738920255975030830248948696080552139516120279278958026768760240930807258992207578780596538650457470224273941104331223553440239536415628769068310043016005352463577354767129771681421126373546475386764915417760034383284245975209806166103505618023892462113469735754389516522116636210237618819921050388659373166342615076344462569993070793587627435115842143981579461614099262303656757991561020478940623689799173875052742810641564197978154241512490220146770227648632823741255197335050875646187354199564594211881946483124664412628948642249810520136581293605475145829295555778833994457200708436100265356080458019214759497295361110113346073804323173860188671515390806993897545354482597329326556510938770377361749998950851348566635279414440941218806679303605833655913595147920798791044895960084673452457244005837026584647993724996691945517182682927386274330711189214209950146532235674838406461065953616156383320596272542947919985579598299357335671356974256247728359469001512296685406457279158097892771994790187015486596104764818444606307593230450017780815936488407714241607455753782262576995632320823041494109125847178600552186666568475296503106270885813284349880853169470352463581234374084159614109882488451599572613098950144489993554475649051570555294656502604558573986838004317345780564432535578364518138791769567674450950744338554880628481025500206604294443519775911287477311123373476257735999963313914622152585583893238134275050459402222886655822920007063174677107444012678481585367778184506462648955356886405484144676857589733726184384774543923818162333259039952949293131536048980068492691812176413749570492927967932877796866594640238088001530140972232652031080148976409451259686764977065342971272759098138781823047681512967950383340607364080029385027972067769909119484115031439195407555871922191866221734825936475790631923097668723578978780719421937547285564957715178554007922769268403750755177301013144100191600925462132321877398908647237207461783039198286231064612927536886625341568244307426639084587820892084488177091010264260228719058930294152049824036272650882684197896445452721845539930303254446309980283548072637488520090469506492874458864672635637474307187854346408627436163874574631342022223233644311760984146030898339235147287552044101884941683759584669386923347503979262136131649440389109758506892271844219203849756192910284544527514348912961130159391643697302041921385791261918996983976570072505701726588068611538542223430650253905692870214684761503874287827230524633777868140295474614215642344147251435179418922849796131510009121426399703486660057834984859998143457213048576990501866232937719925606638572870684104148816625994897237459164934528850722755674974489722773374323283831506482701068559128331068984276716253776638081460132309963186572337153721985579941165016688648269589234190916052605624266877762118094883865386422065024530129753363242164134305106216120848441027208181073417849880085301820609602721112372501931420252794209464483943271467088827817227163467702662524219315403287619737619972710961169196930812068613826883230384611987076223342986691397889634016888806935775369670697691815911859452314410200925023322848639725036925926074473543683138936926630761281398151973395394170955027519411129392086959145460074299859717401233361773272226364639032706201767870440417461294072613555261525563883426553689391022866039255235064905977231606917168685551919537817380368790258884351243084462264338688914368029156707284126980770410443710556521263807806160592391566883250230779185466604305969313495865338488022025499517789718455595105693325318631513702288885270338995442457049375875114329857017234034150589764313716150700212208296180783683259047733056296590048623735491897916347991665332241965968269247293808827153581960990993608032617179650256963721210591438320432428625343613055024405354651653375271041849867797115959151537255105817484196072323761482496200357433825376355284660185933784954288811028076527050441419759001442515035557861685700176538252210081001560359941572871668716575287055954923395977094887554524926216644828635384169465218741264587546651324453483447987948806046000325102681664544081031909171072793821117657173255790386783290490664933930728966660958968846028981748947209544167063632376304416563842748485487602509246742126095253799011839514554092030427311260001924635710032168000891720426980782141573165723808278279527415764708566987025653175018779901404254899577747968067945154431798662868729876964592551197764280915654921796911648034473349236798545939618845666245864534509722499336072012651582555078355509553506332680966498854274567549010217200151997597830691316863276962349349533411249649394404679718832975966043801299826667498432120174447407395186923975413870176749136232655758633563108709371483940574105404757025418571200305588642298054791231819982507973452412603940167455850474900626648017083289948716733349123214361735220669823058875081673206403665712403502054443938318897134502654617542802183267255155937138097160608317676757750682760239784224773859586340092560090267210800975128958055329181758469393192000663596409792004437012456144941535994769734321084774615067678099600889502481642071924381063187164483625693679827871902811317489274123778217235969380387355836262272314651375408209600560235847467506993140237411593592296564862356270491714778331266160785541862697789749967750059774569971369532570272524350954829037138403202485238316521364419689413016706548646121535706822506378856791747579054640858844757148214680683171518871626156430662673732295017530454057979231125904457133306942244887170765397207630437990480978636436174119567968455593320070662012549220193473969414497010596949179972158335862121592605406510583558657007078037419167413615868946396795087679446193793249675318608639858322058535495491916117023368461205128517637011565085351545336898683500645573418411307642680751108478184554192175278925178466508493013331089193957086053820487641234363695282424946877638585686934877417712017878617103444177292738555641344943437669686737324597382265446830480889831708351010189338770390229115182180797738213379782825100781099823087947647871522615862641595194541357982987443814592798251269824106092021375901307169387757225195936776138908552668688238570720735659369652987987924297360143507193717051610458957474547440229294154315650538614140062859008798033407339126987446478334500067249092523100763719764481357895555255568858747072492884699335512485508098872326888611418991136052814328502799952395448499958568287027626229395530688763611479891456905163556082042646471926125547762663470637410518583257120535531141688311000310012239677267275017746326218526852064964990382701302429671692148454490333117047729125146307731718099024617438210268080198556895729783905605045943815133788066163430752145254824014245385473792922713330131024091475026485319378463500549538912701794316139974095488725568028671318392519240738115441458780593975751843420887194834721394005847406124905428683638685800677736794886765944378769224298145968543812741341027974382150289395095489162362827898842770342000973607949725448417011421870797718804872793931964861214772446677071855975280228383031684980755925541792216884894248415455014080229553365195207029988790964397953576991018857578730646434005635802832191128020782755178389765150341731996029248656381532640559231895196965853149751828542233354652971398662142713506982241473403394641847612836362805822263370264760849738547119830633169419951327598359192150649490481003716374351110375113399448529248266758430064479521185310537982980998840063860663487639706626414191433910778915214574946096377412238396511218900737655133989969220948671572328583474599846525043740992974465627540388517736046775890966306848247341195425900754799326718269176104028478019136023117707799726657656468262614614072177874281048142126199829304246773926422700961126346160122877781210224698198698427472217535079761227525854272138313404538375518019317981071144389975424251012394159807630860811358160866384475085787489497285245419284022350310131215330906957840746804153983928202980248615173692905439674391711191043399150018769130347550898904439073221692396116373832549912952067216185579338656337841837870474594631270934636093830879893190776576054614578506967873639076907564836736775515717138729394716951472064700600902404266915642338078638757722372484742751480843675543221563321740789739397745087870252585508322238521978694797132886291750253220369786879930580828841597489992828994900155211739593957060384743825060015341589832656571065657388946698623092453327147673145671914417392859675470401450481351928488647578581026773597283898534504919468313355071099054431078708616316320670570154177781164542996809559512809397945151792925033221857331530295303517760220086672197644047386674268425409993027183755377568901938563385426844548040518145061472550618140310944183811921194263427047090426752247451853406105660220403934773986142952571224827545969871211845620381041684246503210477510308614075044957449417017386855193753586285298830000876208383847656781492325073550050812456269655152952041476220860475696203828937386839720722299473986659710984370295069197534214853230508637972048370071875719757678696734997169711266403892749725080084223340829562441530251703047793579277477362223740577630523382222336055625103012719501330089736763760137163761936616678312255368412821845523719794685490430742547133882663190989288780910825081976885942466662168161367847285864539591275478319354563406635062039567105985940154562807681755229549026034700599965067536342185391016315398943663338135795207482218874890864477361437432717099768119992741688365842972035486409452040626950585814568071357783097508742939942213844958481177041608666710617689129143183749900670992751095288157507927525700114963189144593669388609667192739461396730260608964607671417406196928225740411943840053985087984571375148896207056023577187615102952820366540362201367349202605323714708055951111901507381897864506623626372449264339402457379832870176047951496930800193736367332901902306822765853432699314339762400541284335504871469332569915037745495119204911314906290844837461778737134423142359959151431140578109467181484781594214134326656772784143012359978101161614689255920163089203399979410099305122341928099488457723655137019403453675189896429698906174429421876476359196332385348545426226610898124221068339505854289543358294654569633614033793581773752995528280947339415817354347686816993877077500783668046180478784293255179554043788369814216537068420603480564056067101175269153220459379420056483069494971924364014583033902057665405747847304444680392378566912587574926686596680158169347649538698925673735195411026413734558548627997568822970177800006827335282529151460992098649163379239045228853311662572361185534766403212150746608687455926988776285992529022223343874750694365053682165099663724364892581765841004792152510001213724337973458948960144899880144597480829832875395045932330932084630613200367076807758733018562099811724784278721109398890766082300390781813936528368693373394693128913263104608501385814260432003431540058763476436181945663379846230380052944401556718627046980211313872954066258711902525113707859425602048779301457574256141388733182635255629959536075900940042687071676828124442549379760821215010098633295117466885818239038372753825258883602081678079553633936895165860742018251020659837923264504216627380091425031867525068447271732101215535947910233803798678696147178583744670789525247571034653353609474408964928016784413114575133993913173296707002483566398948015960231023415940166918222841298574339707633795186027002579204027334059017380765764770999103071447127306809576486783851582300340829328774727166827696369817741041202165956683281782519601065924395155112291896397471035996761442503341395338063323580125878322927883629556804773062845857280562816460603349290624584273696864616406746000318853600291363752049649602816131733646414271916462643698759477888718665761337366963069557257107868587060240601874699958547971706926024921376042690955756580982108679808331429804141268046810568310548203774306504541045729192211783964729949855372887661295116818043692271679415774884668407233406384780687866632525648879464530427454833315571188470452367211290870793559179816869111671174421531726902061635960554380660259371616927759288083277843687176184059631371654315314423066253470162740982730493595131478205943185182775191567358225397744644000222080287534505367309792073533731296386723690972976619747045693381580997891125594501661324917299451875398540835187058191461104641360622396593931524592393415217111693357012904137754517656362187765138521202209776175033388651275379886392070407934339920402182135436504645869817794840424141797400345588654548644553016343886601568096185058201664634373443246763257563621984025725121507590525036946552862623516766751041452614259337006628957134120500844772237390389839394865722951811097711523261842684799672027373080036505330679359715295290063105552724369607016599576270680457342576627708721827503016457550360107932452291881887587425969289639583062238760916985968629287430308406272316401428597029623325584233143718271468601889501835882153622002385016305552977522092852789476635061748685934830488037099723863169966720813610945140167090023487284373125043438745487071473325789059892199184385186417108111432194841418477368846963002979559240807118242009578229116984668772307892588231162595714859680675966299256992293775001587523825382279377754284721303038379012203510682355301092478111505466619421707904603196542472021334883530501055177103238214445799255059964213969821482257497057096108724607624634825886122560565047102266790657155470397151102840020685822021099521761230558996750863350418666197009100784138746839007877210787051117488546377373679486389260730961227152505130399930546452989108741401627391420661297327748827283668039390361990267328537472977697390882915734463571432176740296330421534391340877783333587445059220083140415418840207623637170083500586840944510012420522516503450375290119063221503747215807757418296400581020016532377404212093924247923447575278975039049723531063358206091275463050491473126548456000803888333684259237040989728319627462950649492434435942755524362149441360966977031121631140655830742488059293714745122919460140990821773669275632290133567007262901559675511577835161617136979161927186473445970863457718827731642110466847688405380528548391539051781615142905691378149683672996304454257104482741400677934648375081645956698844775629161521298153707852478549757100214306164899845188219372023623423812300806745784029423218509154653687671236867033659698036337039216895952508823673843115676717092424965915402956401351257924666964126829946706554640510816447900182572019583532785401600586788757552501459257322061806887693996141047962961973324051350852596360882173356398608869723789296546037406600673253769980970455289737983002127826301301018313374572805902733460087945232333856721690174660694463127592996774653338022708869218863610744532960069194455176158400832508030518703655464249617483882825051817134743061244742934421500332974130974302740179698357810080558504958131845728343602318421667567064240997953390210748457723805825118492948864273341579499136874098109911015424882880394417219881979353557395252003491396264456524750952197408430459050410457831211532216522958112451405260029347755348726231472533184811563781556581626550325995359823419568682803726445036267326020221374132051027834016544988140632911347709381788656366752397949745699171751452961235186562345231363166534070203549812413096005717644612830558004230070367372459502230540396086529012742442552215720045246535194994502113679821027369603454474228658752597839071695495317248256484913984383327136274409423805267850596137128465609920830955674699367503374925233405492610657558469586670675570129546713712312966980595259868894462504558500884787871715433436852701754101572026227013634661340408305965872590129302326910796180915785775616800618757257765157356404419265879735023474394950667734565834377968802765346014037160555903486677402763069345501691781202582739425667493546385030121133645734854974380480828168589620408794064545397292930226298401664262416885959264521941976674033165215586505925256144060801319413743693517350487597164538993142944877747401386819644354411586374311064704596216349093339825137177666017689545930228957886323608981764994457577856312921072289424216207754798764260418247303656572979122454081884282760495019300808677011459621444761985380116879935280876249746696594558359660114332987019432163568060975078807832449640718722665052128219415641776317862503842625278864058049833135177997676953442898822098604616459829633227473895046764188746468376436226674132520574636145438035338696300718705141835438837402406207197197623934972973344194483139381609693177348592305464026580263824029042088154310961559641619164525084412320536303985203030543696929393770059212347623803681414397963286965486540397961977653047514788860724599738693717578649864770436367514341004934889027448412934882246638409919156465935051724225587321293478844618133183831883066945868261777927846929210589566869067741728988872479427710945620722627437119107674166420386595355207281178859641199751850619278946615072289568556577341061890890814112031485408213898403705267117084944131995344183249718536908887272354510383393181241444649289849327087343654897053435406807999990942712807550707366036919289181728517632313858124725945334931007274395623087888420251180632266618916511772103077813108876461187338772169435677233609677237291622633718146204556842913064086643981790774278329901200774724685575564608406022687037936964573904017234184943800742120070807060649722255398564926728867547749682584348856695334163175335847298577640919462682765135754060770271818416637062679142805785656599929022440458465807263471352944628016369155331831981648077711941167240616260979505088928739264723055311928012744034528360710688623589253357783968534366977690975640477606681341520582258920931811167105761226563806722123662175040837061853268525799400055430624070220333964151402143149222625013523618870833111824208596691115826849778062216234433193898085123512734197987032917875623582708914009555599427121290833606613657608966437780845833151959159089696541702895458176942414258087854699488979499348069425879576510802898609423378327475746959815238675607105523309744802602812453173439482428096898302716884495017078069156687226860860904095883096285207522090568626914307285145746835104553589636139450552850048113131533240066221988167909832278800280906842580692713010850481833265338193660907440396711381736478423654547569977022077992477947404537378247960203672329514473420164087107907846222831222003236957393132707992340555585765396463917056012528018502931103865663665175833571333155240878964628353786406198346888699026698709761163897574653813749084027234732736877053039766118260143126522051002376381681554366381289447633076257314636491154844243599806959035412667847203671275481011789963099050595640077694959846276570862839460173037082266667372007453215242984943735290797498198720609377152220025953942245565874752628937318777645651600701615761356579390995016433752194276453923473231597038746071538839759734624964889693650819242848945199956072751975457127849889242072689716778026144548619654112233945080847975409717778369943102324943794319500352489468069510541589495415101243467324871649372848188650182091754536597613908305296769213615915439809758642956575371637328373770443069741250073658857831680326769154358150236897129519812259125078225005671677168247392348455750936896230788654028357648843760221627569793236029551978772914010091996888540027350608522017485008109981832902898908017960898982066653983152389793825931993898269581811910550568079862999800847685569061204220502208280737461664360048828348297914814690541969154535518796012699802381569697277978540172812941627392258999879605696997390135124025166914189217127671972791696990515985680159119079491260840140072667531881871145500046942922276206318096593705422982431875390436939042374350918891908117948231015645420928313844196417282532461913632146357989855114274715920788083780504051610783837131174242715327983217089623778471637225520847648409441555219370609841955367860091383346791897347061493030239001912335751814541868234608492732061118212352014417943602848343140437792183805173641554702310913949406482221608882770875540500061376067811470395276124005437442690337289103467608457209789351123024470446973854731168973794117768917184767042903728400430003354030488440395568065860357756367126176359331673008492479554151594141056967253383447903030977632396646104206288834653791236823705471387032081988828709663677857831814217197888620373083165640754506611343532534819429012364298379988305537983911486216850333049505822455532088008012476410554559499307923712558711652752282451443993595445374699063982049598562034235932584990576710742240599605350858931635656059381979136810981876072563549192811748158315270039882783115114484509173378060872736999913591615251133609542870922403222757536223742023619452595967475362135047652622725440297691611744137211026565009038854982029752359270253383732764802245003802210197590144192177995213574709335711618565873898640607689157850117912501219292725446541420462595310606883077955474062428057015813268834034635704062579895671821436838159035132976625511914009606676621246282716095991609451295326012403273615671150488884461023446682305697154605844798615900245258148143320872518273835812616057599537391133283040070463474381328002813712618234673844475342795814260969911978209036206645994050925484495528995465815485773492530180348012801309936100488145639940515396849915375782793838579337865959192739138660860451193052449729362908007979611148947789636077110429920374885348426563780902922058460639543954602706892788587756816051217787696401550774338023209173919022576752926402056674948024687865956632891869899275809960294930935350339857736915089630256249460747317336567776120010643089042685932724029647624562276199884560498787502815794001238670787105494392183385730496089455841709073077570297309128556762927079714324613862742086203739643301376545120970954173504202370523732005097703785123169899963716461542230243599685812258686171628308107994533929898975202694334078233453891076603085692796675723083832231219448821086331768226894122146150816650883933435886286816035396085660237100239973584491130442078018124023080913743008019772889374838291467013322265271240987692182996876448788908997418896416179097878659531655361637718941166938226364268652923194917549524649946883275732110039062607176981863684953077941028556410829356904056711704911527269895828954811705283679218227731037793405387952719505197905440683952988737196432411373608170336020475736375493404673826112163988777919972435667298686558840124304648948187746024951824725188073956185665063116976579339930894092511240476448592445928483424856562528391011827951953165239529127452448081599192702316394572426270388715999601112826075556050691973093025810721738558859343080078436056023548922300982921583922782281282515358472158485298717508816863942322414342192921033079145749625038990668628427888102562768862300174938118039085406049771588054645473392187722839093812663047727862380294505648284292959325148272831949993396327368312155937827409085314462469068675060287353258193463456317203577266023634562146971534718260280251316276300061933149689134450529028872464933485570787904269274100624893764219953424061413151571677231203116438527488491592505918863404308300578840595162400612694096815840301638414259985567730835005793546583351113635007286747462162128718070495296719075671694489826304453114178916492937872607573487217907873286901113149423858693671780412666733137873828534687078309059315528704053584921858145763244142712146113298632488215681627997740680778853628518438546834452872286979870180287979328406430694752447096068556664017843795426782957114845074181745837987658251209199615538988448553602682035219443166666765053852638006860789705585689610380264932471029156277297608710769760072052258644011902783134959674530190733283449831216288288026903876846442284211335713714295070589869400888152675557854591443887795664524083759465035985759266537591597356088832077710334721405407789541292302085159347876087310365466458018015762033170634435663455082126625209351117989336148533249504502272286995276653701807756249204548806838936352725994985359809563606711198092534877934688891045328752327326971055821627963117683463814841925203164768797082811235048234881925024583531358881933938859553520649875455482749247920887491023890073939786482960227948652657563477751748466293679095030423707821284687657937578028510311740845572753002618107680066269022862744997363630309247532088614349359702373401000214377056579190568364011586888307829484626661888799744004335643712861340201096142481665836531988544782558823156561766493215656545099563664374493276897756195084828363658900723665857509366502423717082163623311076611287562114220212947800941154090461190424772062368104675610682782644269777148876788772687627079588725727614514821661302788992549185710739271692071674446071279038965080039970628159163962527107136846889229271398565566758775165211686311252640860806011570509923989306764396852080175936179729794511265220620569380521363713950901762988612879871822406761248556625882406852629273721436505220332303151343382975388241652509664275743402007097983868719544476195608418513961367398311542934093958735380196454256877851085800453588866040831385078159443683252409729126048203349641798355700382705830546191711017046441119426003288632766958050917354380622189636852001855959765319932846058306746180324950336351405704926248550837754241391308768639892504174122745050878891906163996391347117780724843911389363999080671766917719438797812232077998883890518184718931410897954179450766353774768508309576634363813876299989045909497600266363722734346275424077360340499005362856684541218189383386991164823832063925099698946517764262752181736880584759321377820710172896601354388891860114852033494156490797045073376562171693927610653314189427313254488066029129921039458076633273814082848904856833557311808555259437187090563649544024267368125517411120386613174486358518190176880447445313642928581582283920142113002139792073787101121253549165856297687435533919580817700773904807838148143606559333312852078824999838840780371886145519329082696088139517221767534001496530080752656532592564275519907881720279335907090798500455771336962450048600512437955902670708715156707999617025725738620703629987067078811914357027096412019778891932807510619968778678976814523976148578891686707732137172743465526117415066299859458218877036724293438802926921330297266726662457582942551175616287263152742306046978266880653389868206967160354324719478409117193632254597255936536941403833006741545090277010259549395646752537807712609581069104672442206658490704711866788274096169353209261150308161837157139687464060219542453665708998040976447850484330165752573719608064809733737467249684446539660365568142411488719964982806853743724992591030718965580611422361974675176559738898918454193535669803537873339715759760923567727624175518414045028607475818155877095300608715615002975429621724968509324801012196796144235888207157195047823730665652081200895291121472253756901989376407634968390323285797662565875270916056460317325163027018910080533103358065158546793359032406090617560733445760954486688249569693423421984869333513854812268342369878050776031666029691574191968156142202104325749260959138554716136823207420710971233859876073650279904166211294965694043133684748721497761819341919495519710286821751412434262414932921194306131040364782021670075399635391240343764494729997261990950834772103571747841207205396564807336462524009269832020366115822170403035286601450689002218705161846430698831480654802143557323305647239908990398565305835402251960386730467297851291064301420772796891736583009408094042727629721869296977440270490281505228641786242814179889124256326192701774270068891744787084669646805125001719421153762855542403661156177784393199136333661641158931524807601647929548658202761135667290434342239870720629549538484113058502786407202752135059142497020185655292714096657756633343031365311726640021338292835741125079061015989639386432331189159670268858905606121471182617068560586735992790001877938051181165951696458971257519194452779130670742776774259013624972505000101143161805791580256083182957335408722733360807718285419532120938409374592816628829171677568478687982420893372798962215867681401443375078926174765237000394978311632502713939185259722178505746094110997097573757398632897986439882869793168851591835385350537660293595553811916859687938633971108845689379854855364979610270047620863992306316848965982926066800853611328517209278643720334438168801237379439646123273631353131369005583013044235551375940935042191967034672086565674456393298843568249127543702759830743259872671092134764794919678273278765697311636183809088528447143687565938004073765280112017039373675468115242293490628854523451813989342917536864125699024339515416185057094232023169730672662423095150062811472057666554229220948615406003967966006442053710000724733127778781069801970515073701021149212140273211675057114290450899516567246426621446981450972657632486354921823815455848528564892587660002901110534485352064380824733223449776748730431437443361856689290794217218081852317549700199182729821390656604784059438218558184006457477373937417649887525330244912012324543777524971522064269582849312743026628771501292496369464380901157806010807520472345264249894998236331102259204529730464243047919579530748159148615755226552943423033687506749484704605440738153261639852374311145902209584927744871701913678423008866461817527772889185175911210858408021769277417967209418296703482904895989574398340928097019278003136766103942911018885628097364270902574477417801416518168254984612314060086355083217446248309755204971968043474308840196911561931615087532068354530670665560446637522810449269436258040288979473083190938290756614555595341897366959617401389091991287267328047541374105719832064539606803972212319456776077759605598406340366736167819915195068606387882320522071602511195131064404818383057836281100368779239397307524132203083360873777091870168534739102514952151893364930920945784556687882454570941352522858961936544666236594838438695949797504765327645152607708869175168295058199277384334270291494609998134237552318384976356005292899231862425933070220194486867562288575269682047188843575994274812080645560084539751092072142649607714426451656012191793785832452380780574353080630615453610092507440607030854172023730370561988521326177437974449558419767962657543982153230052872448568509490187766261687166471474462624219217183355994712614460937965674521822129393832540428709965253293678463929547503082278111824186833996502919856750637137617181822296572460299695691662291926253318593671058061339566347890464855037053978968329731612919697139411877697980068513352576991526047713914394371697527185905585530664750940953198194212383696876564742989087038415228299324474913564560689178642930669338547150199182663492731765571258009479201272209078630961178137379717405339965932880599587607364496725948323922097110508284449952743575326437261629746132856235352045430333108914754037272922955110604642673318747818232973231227521893623599539162335044892661229026300254862708546012334676370207876980662566897242201467458737386346990746320488460075885875547740870515241861242427062585103772923108780545016280501676058623830755254974109603575193602550828376315259154990962387178381430712710453523025009596974371104780399013049690230443053311487799498974774117413141439836692790561226778342322800786080780544256325942854144218746034084431919338160812775850524304680330304346745808296169249767682139912570330532241173723511631201433628202213691077840037075889960547250469065413168202200368247079035613882432452215720015955938925841067527725463400069260946391163562697901044886908972339417208829714577944029767560331912013756068625061182598520177555400125722690456291778080189984536349519498064572763705663414112014769325428046052851949652053608311929802583681575444622042243572472413674448805588208364525054253896839385806377889025428675196381764756933906774124991150008649265364775222041518329680970591292105841381570297771812243011499399853948270488049521172959550189947688928435993392541561585346358081366893419698416568860036745247714925456815467326809323557522548304320200186044609962234733045333739590559715399494535988734637570397589729212051432532014354514668339581798081113259637662755261784690372186428401316717909626297346038191845122479978433699416280722275448878824325876455175205341783792850935887421601301527440993940167874407841617603826315203676282877492871487638117076216773385336825351614031583608014291092885912847083552036441129843994592628028281614915007797582539656966159150467398567515051762206926621133785534101608507911899265755158808254588434166672280638052172708025998337161682692359789684659153452681548920700665981322875341001337777599178968503245386631995475658044130452976490175365638779269070610210829971531256491052689071693065297230489074467971631023968266161227759418512903931586963459050437047534608776552969390171663052268850669958782469215523747868992013674617340510970912771649848349460406600001606752881638572093508131901786988371953636318664183045355279138841159388906047643325749893958272654908884188554607285277156833452072830686570679794123179785666856893987550760125215306184970966886143551119140292576811944803337266198026382526646618301331284569930301705464606574204612322936457094647043098454755367150797590344306234992969997700545288684859193935820851927873110097473556809109969129717676740062334146254771912688364270101457064419929342828100399202757172410755495162794696824990877674113087451918928741755529912096422170993690841375724118124475355441198380160975514354088719168184590105703558170352345875059159167008100607729976026375180383516116837800976505847126896480789143750676422920505053086331628363354821591913106122581199743822164345599415962642329296200960242729531122904256724901119274859750539404977528024469950791850148160616666295870387561883517400720075904221504935170361663960851367463795125870993962033588419347776906484129992887171269338128749333120754670856188926231680497783063279683295246458718863732147350824013310715040116551559640952254677241317928604279817867997668733629790842019647618671011502815445821614968592096822919833041735722686798259937346060155332408552930271025857051092847338986966375989277089891431640084085854329982197477309106848114467007829106777774943554812163793059653494660066654771927659945007607100588651234447703785218417101967732245662190138238860613626767446911648589068753751996896615303832053296848456942841858908081367646793640678146474238978607162014924903209795428398705570161644530880836562025271120189255778220631531610961210787323184467646547304610326581505172402195490733872954671857386237795069529609576545988982275204088496631047997653238951522098487337727219729322612518453306553657992713000730698857096960240254134338538254035968931426356920054458782186041590062810995839253880066593428449015577758964704230526585274653268847099155350265151239206160591353076567869368350043565776301868566644618093375631117533771128052528107305265769852744311687909938983165085076705834535516699494243329309489331976977450283292899039017135466754686985822265983798974856360908414458363682782644297030473546762108530454566534817255597610624304110008077911723684798998353451745714491342151056804113740253186939882266487008606780074219388652896768505026633438796644696672559505833608388386414195774415460612967922417514507681142508232704738216201885232586120402914204961209582847617168102114134473296128661417554087762735698294869315571078815226801796019414440629490936658013924261224423795851164667848195890617176941668686797069021060219343958980502763685975711824818961892778172593405825997739906270585054858833754450726472883647839962218798466882346587554933063157301041987864855704887662457534360764334055846390589111251248830879901234653120442859072901136421520890472945453328356634900721882499704026478405621488576931304331721114346298856479525163978137094266256998964966228679360636293702281755287260116622690442744737859775789687125301860437726102896329837288986300745897248048754343942779541705903840032229268061790446257324143401523227118067327219478895297654580141749124506090987241321556095862647460467788047798365334214858183284798286446513185696120329397319330850857729561771154720800387101786324577824310802092451080614086938934724355043698295400702074478914589361996419684802874554998999587581069511345107024900045253929440895394894864454719600153534896355378040556226430202821261546340818459959155849267185107485083878514649869668387444638923056134351028519860490341292406918400186775619557179273933944378190294933954764461620844560476543353583494532221753662169313964967231755887364933533279474794640658817354410976721768107825439571207968041658640585104915957212177621611880734320547986619518207523331220207550934004244407442391994289967218534248619929368926990724769708093360306647449159017478388576046059454485267978011541780658106294702486012509775787350363134181283662914720457589740189117678425582798143088856898896707654543102131904657180783593189740522435830966143681240952428834683887570680091648971418530019945189884224283055580358679757553176292131652464753508779577195598162736636312743757207247324658127703484501097097053793904930940291069508107234613038228856142283700937130027362979543527997268702713260836480550375031082636771244744908923039986955339081152347807068329957195390395924874901075933682700618532121513812438064642211926429361751117309727251118289226453757515209549851014447476987257616970259024463570948282168665250622687507167579139754356490939693309224576760629317410444876611371832091234685727710999482218331829493236524229399632942555232566584674284249910808852999829829230271736230406448108197840518551079453521264797518846543639740060623292114936211649412766722770853844017080595023011021795474731112408964177858343720102980323099671890698296252344363613139155970229645565630967645984990311035084387049698619228968142793098925861086129179901899179787238030876189879549482464684463195390764982326242082891797381149035716296158233513944743379769111654696383560854386097865012255513813673427906156184768365395538752836176810451692509433341831615271799666651151459128829027958919585253020547572896619597654270165176684329912548169611790512832041646015494466295225753993846171473842030470875173636981560802897694240745202102120149560952201478342091827806363851745549847116660567739378392776657929436157341354741717982938400782374543434084134923207360599680423957328548961686216215246115474565052544745403243383484504651675127037124021830471594739130837746680222674296019522494952080671706289256021686921634401679710844207375547827776929541439838790829847191471458520498721167424484112247736006035332683739237634320919936911854879570943530183600722156011514799719332260674176660630267913117997272876514787314377187875539041724704177363610610262754042003818828999192304483307115194923289136121152027182916464705938074165859157867184953841970029801993777233817560389660343712361805332344871728612074788964719230225722065548403442352315330845613595780251196606836078343833399533838782876576377029475925660790633329701065443652394722074117182304310416771331747437947178291876999007460329950367569131421148398793443330807522365624254252357666510102948669046061074433164549427080913154171859823937159582502060521031794936108026566533253917084138297210705034352146864306967046088028270672446320622294262429054317847148683310973189548788572986979260268458322628459011774306299668844191644382630303199349077032802879051029504295314135266219578611723141223799313977624923970943394929658801869636562319334479890430543974606682088922239816293562812050687294496700602802469145277582614342945205853796817054247914531910920223137816353685177134642146973267987209766318295517632757654154632334021194807031060100125993822153011127656702292415020741935145240581947434072472954477433345724106443849587679753924384341189668482528813184818251634753750425336373057090907743808524203218303520973918269133409270682163399056312803379479505050920604285364126860430853562853675363059010912400237397775803379322858776235673961166424307256352582068582529009631782891512052055681602516042689960330735152775027148509906616345606269621074938344529160501863476731391800932409495605440469100993287939596570993920515547625900249019301936177391520661334754619675287229684381526403268271386707533219446176569870944228241396150630691217232917385716570669169280612036306126106300892616509141920759585336742308417266153750166436387504589810159945266625101763779848849315648154400323687616759084617588596594462905461091450454843066419047581210863913389274703975145078306746126310460202104348205294403791616599170503635544558994546931833495517428757524789607240978343868108774025865770401943633596509910436408782855409732323555392996927154290436170130603009346285357839269433927499222961126571173090283483750933494292319926491769063493377290206376922331572863802501379828229200421673815808974073779777019883443055970914254849932115639241180557573815815888310594735584348242686700183567171915698802296846516952550576502905864146973081552423529316039358069699389443720953856012266232455361627445347773512313627474658320779969121786529875236340835772514030658100435104697934196898342714513155756424973696821741563148622325571771645022099152362376204082843250182444981891287204910508655720581445503624670463076872683878633138749700312303369655639647933434076610112228896758217755274543932624067167561532927927066078187616776694418923609734608707260834917738887456649960140442002545051038398251668062528019128812370062289803681890572297648207531892758446417616467650063334600142960437800085635134986835368646521939917398994542959120280865686537511496255819284749734421452774710028236416533191976088076703076439622997671525140753795842799845683387187706061674685461156058955554242295016060481409460619693641095211507017652867716012196214806927595390690500271179297120733239747729791560679184087366959472196551400722619178117436575838841500838115280637717551052879858142537638127770827892597101661429888544463381928519158132716816122721544720827627976682140763876874122839344892721646591603909886611123317739110356009803435395773394978657684481456488111938638958244183814647195492991310936532939377798847304976326444645254541738083282813548769719978633954353773185750076676582881868372798658516313990267268219301975040850052581383533949870060962000558558020993961862849903994055176289525314177211031654901727762027985669018492879883677236140878269101964985918624768995409542077076280313327212578890824490473822756372516018121943719745212590742711605853079895804378405565189433193555712775665275575995677152846474327770188193126893869676682284940057583877091796774426930832481588776114033807628003046491040205868952505125438830417003872521142240513845846177141612322527244736180370570949770968397894238273511836866684119447799073465606871966023743595707490577083115804090041236992703286186889118729418916027211148496301762318812579245455058874548754874163158729773347602778403898708521362019674414978790501505645732378926049859726004837942047377267685307764238559904160813157819887480891387018416663815951648577148622864804139143257008595876437693241265498749611394546166159168033468423534847894889921189741627771915769211396737843347053495148382183420260117606109853845867405397137820163776706103091355052258585954930758572698030842056420337671497940111271602208220574389367706844770900991954698335802496732528288046935340846785684720004631621595467493644573553805559620552093556895088852076228148005114594199524922578251455970576848246081814978089607802999882964841731903839476639973842584056299813385214333357381051407389754221451279011427380286043370522104305511334979660604391363843213609639745403327310604109666250107527514315136130144264494920264606752902717528005275564928745685083669455158172892536615361633645694452637166096233495415431110075951666402464296833739524767958706985871066140560433397741659348982193108805307184255988230728976341768930164989460820119465841289694506609681286852448391114910260804315967331498933256515190405478394374872572512161277384952183658990815805692246065079266920160933186084032318567003554417431546592527555976887255044263175400382896669089824761301230443179665628082718218721689420542428916747158221708548392398836208799431801264533223665869079923331036280164454594475723142393426555174204092095946925845516118647727193694126670038113393368371773531007923520631891523094604908442100358100896891091734998530832109031191902771439494458905707115195439639932188860846829821591533364864072255936405916303685972894864099794677893812794798279031108221237792244940060913192581143636379194196807001873145735703237856487723185286052809406519249790999195147300254518070523300260301385758426639921466486887473969210509973326765534319413016069087510468104632517629461582773974137642608436913711075409251572692038271657315967774561416046607866440567115941673882818260198643848690249673132868330285612995888202703687837461096546714856468528125490264286913750890483809715075129486078118261591986154045206502480878003025907789397660824880675808237019433749739764046472011498719377753932368787298525052673561170057014197057211055728630602055642233154566857848904342020035318788603963942374986709427195987569844845209145523274565140644167572876801906519013065287160430659147897481989195171808783413027658137156188287062302662131025369074481971106771172482373315558059648622526017981192268183174790207288358290211102252699232377337259446576316023157981761272185682165413616763278450726146189344951979905310480994799373554191861609674611310373899778535835638312454030987061371623290923699433773996004177857810505018405639857179532129806925575520609851833774883614759104960941071655676055704047084339026785701411603941451952387991231487810807455131489728821987278444461157908064336757988729366896444360731371434497990402691735904567702324477349611740839492335608923540537342393939907131348509039930772494146538851397892581695445648904642141637117320699033955167274779342946931599363694440172367565694985496531985871180657876728189711725031675443141100717544042088042091677644213367174919959368694627742038813468808385716225761481943931587791555530665294960476558708569534702134933502644399535906486370281533518247901391250403699228184727130363151553423089642383273933765879492489159492799264496250927933378454393352024132218010728149382422397217317399714103904969629437824576935126245619072118187492930950451758692186590204736307761709427537884607062480158472969043813997575853203163765310539175079534855844056252140191277017748868624595511853301480736670349236650375781525190645670561724988112517359458745397051636569570971458183104922979693373782289407728955443106727383058836518935555931337513339314583343057501913243346534481857564709709841439699800211769439303232914301066698870216528669734556932428869642485823028200511076968177408791687642320827726698134077924535551217335656982688727225037412114711041195490523940293448568950365152170125653458630882028843330274589282177599069189648143913009305905508080601163856614775143816887263165246793744131573471791312952699160749135396145712046340387249781314796709935833808977835476423448714904822332304706021313074900053356083726399533772901363188111931435189672403282598139337474885998967196313404488223859551420145590396312488042341588585404484225253194334671732975061780680391165866426275359571781971693682614689232729770700138843279885271882792702355567070936264497179792546446945517317558636480499041882286781374145419211854529751721566439233945577086111097214150736295298102175043764783578433162738427466530057327995134710199371920772537969299415278986753764685901640217545868082746008519648682070994880498669837503300256731782747408951541023842286179577626496860519344771576131662309880779074645727149965725461679138082399215710252686324513714605903063237300893272651717246830833552283002550722159154897150997833981388304011807576089163915610745819943103144136648132905647880584054215959453567131965526848299977158071282492378313396195499289903966032853434288326828979995736038168026261765045706712231396509149341957822612512505800071121954847875524100775939101395342899929480604931774729387347930734861258220356091378122542476336887553771705180810328666064503124641317170556842057309103153383726968033041279106480912304812584172242453140403774955891843832067072077146084891019982290692054556945928921269751182052855931799406084898685050201810307236529963662798065656412333908785745230233917845274173452215602540147383548927776353488157133919529200984556853790627205089949609161377528273114081065678665454518620879890963031815960042292030454038552953664380583391250021510007126420461709300082926284865112737890481968432469858441380959291316724189570535022552633792423479128423666210361998292059587408793887112228073492869491968175994261800462615819287155004248536651231566450435266735751560270565427786992504961855950026763960134794122696115223500421089213780611567729508755542933821820561736070638068360769950667263680264341259393990809615671596051544156725408541760100168088313975428948822534243774268393057201605415444873063209142350373272343973741510987111681296767329631786069212746692235042265715713408417281720319610960305899623463556324511426854441901158207503937916021655452088133437290576059610597661823880559201549005551557173620911357362919020923554950828891799724815087950718598303140835648163841843838142850363290172216919109197463673538803184111051696974153018023587735931641927125438872280585122768807250151383682907130292691955834532932427316872013675118020851697577083611401372959955271124746071341880723081474714486041551420564504114649530177738545061131131488928257400854915463494206100952844329381160466312715738586845988865904346312908653144062925679215951036150462606783672070518728631991869394937497926258605282434863138418766993314452748374379499088787355577000194493965047189007450180618414782069720197442634262702858112978944381026468365794545043794995751270633515573714547916466883322501663053868342257080295107111340839674217608820675010906368901942870252414065719574371734613953413284713552331676511306216580817822065318985976603308124986567158489593853849059470454522087062743510137544404956294606218704981363750114864723090959717269861298097094319748406625302367634820347526138461563983501385619702218355008080833888094279581972231369971864747781728937989189565495612836049204035069927490507042680866667719492289176117887314523695897026272468383057805221684325533959955775196602133167319401434051652091244359363828817904690157476131570702997398046289184742965937944323248198197201695513221630544570910020293157346061725226891467174189317337604590273435410247269742072652593016219047568854508821375541045930946373836945268139179558620317971603036272680284170299553110216927741584481319194811686924819938442591344336900472960626965916430267875543154220434229371363429084101778188725336381168147232918084507182420112640980161885160304076805783644369749022308946270413595919209159424156708147276527283293460660369753440647572110422797253784904800931515338688221605329272574012023351957237835119384787481723617551626494533508245804534150278511827632253860331955678842247846041823951452603092409412728078570914097151315389474972288269647300250521389531969964353562323093592036741550847685719383151725824807003338472668584398158348825771686248197362225196539041464262891989003728071237391854587849779483927255545811917237082831398001091166241828216840512781937808075438085669363964500655787115726243236191995110440578146649404258042645612934346806352688946571269733831799282583566106018599432313955060371372991362316826831089543887571070154052745997018087506324804634307048466722493095326689688438016296572514926994284289312913017972657034548355361138310642456331512823794330413664624518269400373096691659490682653954288270405736853899118368806497634093938523350989641967347989123730198012957812043965297911562718285816286928907294673318242990174911427513545713591878707110195082619840310214654355549290749593023984445067249929202062392251276228109598703980893090955382924790527694286142034169901725194435314109606125308648413746704680293771875231185580169313225818349916213975462887482428729878321446534300581514042039895350360544057218508479195702641946159186741059907306784512250085016375736307385576576962686970695694232181972542351401927948107872474686838042001087858146257575826512420312436266754605534422434629894517673481211958620227234308439744729085310469565010844227073656857572068645505276015818355638900018636611549954404468867578260133929853614355945003034832711288729391327849028735129745670735355858022204022643654156926217890132962835390689180456694623904522075532464854381372299632948885584323366230544979000832117277058682674896483481767455758650692851267795502295819492552182252692108595485174593946752919794923558431512827536696440224440892320028698317163562382659103763325333106101548804429897553761744791667740808916712388523765509473807933205964706410814316372361042280194122116097498644666274989895490256095005065782848781602448600198285248189881121651635281728953179072246591894939918417356708112623346779136072622041605794746409398594460386538157781832007342005537826802960856647411775665560107764172894303926659145601317822693454769743472724501043197516677742695252334882773986182864970552199877973864470459354951107797859257334949478630513241083148201301725449270429324120305574432886787908345378797993351524152730053045861843296970926815611374091658766947037623569019015665257556693831409539380927421279911525188253844023934686420232456254539955254329065958085331491044151462149249513144280646895317403208368987186401453293076578759930554289567906354273097235302806492955843169195161187036386657732959027462577017132348672163543163868002572446318404861641607781702163889067175000888469632018947465959414274100289761639454052981703577362109895625601925149346484026740246911263189020539637597747761968843476114408674778154279906710817745124783544806711170435077810102303586884184959498869976816958092499301060038421295654403295963281351726057820075686594069900750366032400801130067247587217826720030920820311741459188706223695655537505928035794903265995538445540309870931055971014756502876672897047086217413229559750047784017855749683261199364268608893685450146885785922192654950704945600019618842513651291843720734687033715130180786422259048498466576313822088881006984657658702470499815547180123339389296369511884911056726611957754603802426955004492422589963047962286814759700063295551093335857011088332597078188805221979807389922545048541869536844282217882983137456967569902888255799617028123506163145455661845484108968460934836388730723172303170874983074008815973572062315175191469202020350252996716270257182404412489659154973756365510008329491987817302611019675149592989858410458821408877310495760719376171024207812728015626245751094868613681467416614769005501501813179708013665101626270030459684800160077481741974278194962753365275755413774339124102349189529102290726793340996257055962547596630320407302236211081292084165337497654129371411393788648950341035273403685710262931471205547961689921503937383635210182524018888908744551215164488384640397352460039164768804238887804579346500307692007102846651102463940135633461655082686556434011328807252990418890395017392357703442064084446598233066539568350549698207761373237402318213248493978660213807444731772058911635611961238165343804778150696058568503224837651237506826857278143758845471711212477905696413933912053096564157660890523450986045860876696587322565483503399737697297549713326498696371137223087355556292161006002376339862989971363666468921217880685066366742694763789670116368150520566577531540945956268763189948128520624593174502846580942136048756448148452935090726519483704725561999980121701409034607864176396902021767081001179157795856109069314534518687046031271102159262548092704708075586512800524416968822775334972720449948238925596386555578152438953171106712026287137032991738367735823183761499332419636725955513426971373038577762407163651430243116302312334206389045029176475466993050653899684102309980294515642926380870929922864907344118967233442032324345826324927947403088417575418014978345188887069639132507708811660470883219277294183344659135693683675262626916306847403983866758069121667315797682515775164708954924175534238906317260399592391789061271871090223105773748336838893131052741602272039709133075055623912000972089968808723533927599109900413517188397369480193579186817053812927774468351990339233668791594513518178489438855769180770509604030020703462789827720247703497593071954750086639381631458731476444292470632083656803576192414821723856395946696674658396698383976585816988649116445912951370191809715453962488551502678205128535702879921663513837140905420870879958296868862152619483878724000946631816450059656737697759609238324664836741453626189736179722553304025461006498508965817521459207463798314893111676352925628795495732496124126690330079901874551560111214712293119448308082179977884520317620898520743239966973530458692849653787286010510464648317880352265198305722309861884092336335838722994961210533546479210521617236893505834501992414289034851314942338815994523988312211287796173153580483844265693091408067747243071129993421691838076346879636808148332921970198141965183041811614299595786676073282459996849466437320400694616581230954957929983536405926001695423465880338992289554324390806601603375519223426089657370245108422245711450058922739613563786693876627438977848141484385387600257955856500666769035271993153219161019825116402361525986767428730537657004565481632257362990462341757395417407901814439080297137461043774726866270859277519387378630835788058110124498272079083562185436843424790946343738428356901770725249840627316975287732993190390791154724671647266271794995973075831015624406595834520252152195616382839982373057813750052862627026917730639041175920045038112175092298522961380538237789004368550917122164299768777157577436716663298767054093878730033105536483486833702867190948133320674663063165681498353319859961654779427137392319987829400525290836136673297612967228054556779579296562383579319702868456572562034879402814598185388861063474405758564364736349207950676550942161746072066980779384109074239262433389829191761435208020113655982163942434880696111572561957956431721333568093172907339375146824500610628290285812049529144535447630358409999349878855591923540343456184932324992198702994745177477812994062833589771923621445350278198479323454574185909982433657265269156513418428579379438521430024981661879457485888022199132891383660452440195750545911375693079842405361677912838564553858203054786647819448722824551681045401042379952931911709273465789922788641307939735334729430718838499081334157758664366781584401533458679851029638606505619351055908336566890866848817636302972261517799918345160794645158821262074567861277943338756804510834829060711597171766896018100395985896228932243184323794835812793035380189563913133832117653398305450018682498875846735441448266168182502234246307590081325897754087441149061887025276928664352050276099269603618927994034397809231995661735340346713636875221933414198122688730195264065047677329695433209292025661704811413788695339473494630379391392040173599060348209907106919154676725812965448007578183196965220635539592576518656534418564690680936600205706070467779139943746778726671632453779989770969807291591681293081423375266121157941636046287948473480592768760724589841406794396590026471284810971019190315294719738158845708918795956298367774106131482030078684612620344916146963456215575135546572662141707123020393666399843009539682627910695869638092139043247166046539070024415410298551814116401759913921593182550956960965722619720750571552774357741944835573040222355336887951028386064313030434577777670630597609953254367675257050906296190754764085112889556050199023049600053831443275620598172237257241997238675877537417533311990696110527637569390804324858706822289052999512955299569406730778828524620417292768271528691413366976738080543080760030881565967174933429388088018573250490587120339504342562813913988834783237956643648919046903974107074420151986883789789110666648878748616697499270663129550219060174569757124399005412225838676258924669168013804749537618519124136811565389925356712652650327912836076286483015849296374096320370110910034027190533068720780100667758047948093298410382725266597389958859028414931666186010204502022390122439287322727880614685643460060111241104621349241945650593727129222140796568166409762443896997213935387785391456958001809197316261682289197936508821714124115428640167479609622743783988777236705112866333418794775205035901976852962957210393263893357973540196823067138924847370942865490636198846914622373388686813726422611761556016040128736894827601068644806832751988729773232625282475387882061543928360055331007369165679668103436938594036355870456313374446600778143597483629817468472933985274090250603947361281929650176091950155415763359524122742108353087745516012796975067666648027304587005821951239814428431297783845285236415388096414565906667982923758413833541524135682699312401994389509280739412758639366602298355939428688446092715469472637151468167695844174120889001576520979418855030988659836065409369546250249247603928543642340192775607712610574853430600548889561351457841779751505654545492531081159650471434688808292026265367369941436859231720679595781422899523136768736061242332327077645179740963776463843000077308763390395977971267196047595616511649367050347589373999768473656416137485095257653785251546971023758064721352875150069416160488089745408793213467230245222935475170615810223894531784342243177907189291681486828273390498537200375331128781742286549809023374377711278033610829138556403694576341092627485389722226670715270855587363070814418516027777616059894395654916343397982964461039454315488357447122701257156238099932575258605779787420073069690987161973386807146263328171383406443257712851901261206663626571115573761765763790767769375340818192212184648446503293400442315985556069405340130654534174005749075744382671927933166011460876205987844409603705910372039366046063139260202803406677930097352380335248245811103861362068931474762409935365446448593439465748305602948003975581488709752101460652551284256982867168856797916482280083081076326957091506067984062093339377113259863601928511849360108150003375003220796940550802452915780014572354353629904472363487946782135668831586351353366219181400470450747468012540559868152030578486191801405146942459370313880284859615239841451268259608577809114023746450449098333353890703139749114011865708274480750705364638654746759050978783581352525463509714032118615352961474953616105465938231666847660763398464288848288150830288033507775495881409224303722546267360871095989693519859708412098622691759631498775569221259459730255080607470956424285161946744899404892821819587951153248287738774766057687647579053624292460710864873257970048070451676662672849745322669774390803731987787738961556972491148459094729188289794977042049621784679119437963173537223206381518923472835239035532579098194943758185582780402036382344812761716999981824825591823789389241887849630367356379100123326795024820863158238020774567689902255952882440150703449717837380614356735449589774667971828834161713999351812232703846048816239022941738139343555085740403402733928641951604034311889485543283438824442009884557077179955693433406780779600912847621983204826372758519162319824679989816434828866437502342330383340543885565066697743940454465618079303741943508284579198868663496248776512023966741755557342521316819940724262856034610618445666341800919837490265095453063343448661341390620239507259962273140975484022948852546892953627792819058196355415708709911506636003418022434130203603428791844092330208501110174315812396575053945897329989461176827160261034474086799424220712020679057621757222272935347556236133679046209729921084102959176135493468400154208651145152120236148020578431058649162955744924614521978929937960518781927085813299468529204547517431664023244174908494237618219364461972892715468297099030834963567771840424054259557389321095394607599119197627822984496976582178225212889170662241172943865072294778848089902033359225256334164954806813351685364146215119367955280510397395920523570386756124936091288833335004869582464522004075839200343176247515526227704377019469208669643120891080219286547428411683872393518534490433798387505557274234770393815994010561212535296971445846910556448439741129815231563408172140221392954230418205402941777922260897187354114125314882102389239981297160858841968217906454033551465911360844990884443480296770629885862254144555110501274944487771145667874794012285662848348639463393821290184719246402015318204706787664561087596905330371592758849308218230885845616838596228917375062024777190278805701208561105819598866586277200524984901844046095695160807887062439374113861232232655525934467024030109352634777696322383979188841499699139725428822615622089140164268790768909789535077674897420029676055498999166137215109159777545676859462520990300656674692058857761170040396399869938080982973294581190003334061567273310345080956429924361063839536164178423875481952090308588043609408547873143219936591393140702028904279212489483004352745360095719407234944189190442036143789659217706427904326337557931489449322988333241330948732962296529519165991984535700327771650730282034590027695690728447623948083107258371236740111343088168888143546907138861886607493326051301319873553482370839618077145252124099650558157670725076475174918793462819845339902742455758102547797672386241822022113135933282628465791233727716811031009435688890565794113488407383145982522016193007873408841355277796294196041825402086141571634017207201160529629036040773806070527840289899782409223739220918780615765249324106366091170606443385539670331584748535757254169568901734760723948725110236556054234095586096527965848446503624656016711559737463965702677669789890049368006840631958030008107866971885032290288613636710049963383483763242548625508908856311651861989416563188411828917396864508896973231215539028122985436682252867087543261089124059395809272060261210214850125586854771176545394667428908542131468126458673342794047089095622075887818043673767349188289294274923711757355097767439713325536756894895198120154850497813416559734038710117790550092130994872205766826977173709544516159095341716521600388667723866483334975304722125379884382067699902330485800726807451169496455695855049888836123610650245581503290832020641917695330759002560869449731141673861690831280395854680868506351254427839948411358660731363246627801382378847019495288944206564045532708440910738877548106820312446139694710045039032768189786914256655385470500093301556457648539577530929764719081565331125482037382752977603778859462096021353362879909382149430009696739848868809575861734083926422790836017832243701040388645399273734826136375053699068810392260522370478416685109119599984068120013460977398519993483650467579512788219624847567341221891526232661452649864760145697076204461448433961965976465856565019742404071637959412585446082009294296462318455247670514924724575054914416476040505276202115523524048488096265604582164670866846222183121392224360744952050327727708130437766206680663927101095220986314857274597138904240837562273754163826118830829575444313051508458867088637091442362665459292262711271773812747728543477643304313276311402952252362367953116604983280523466128040635963295283201403316532613202630674158302741259903972788298543289967531648760589060224755595322570626447394787353554294814416118003683225369707913959528846495650983041281072151254817296907324218047464918520041978737033213868749064457451617094665944892897898533838448893806266823851158634771056064614414416210653938874680926458911938650823883672731453409226749214260173217839128011411650156444707869614599007282524038775442678897932889434128968921689371116033608096431002704206531111890204756102246030127514829647877528164416214083161158022847330025669235392543500162297168232070054175866927210422926822191609244190526261960496843490422636469116349998569535869800680146033298871709236580335918397622331600936874889908851259206868121757622054311428569739124118213319468364763705405342565637588450309753579261043035399190669532043451173706400847543323114104228496796945720594555072230827094959268535209636660947563946226949888253333091710685364125925840489566273571262419851355743477427778039255354049516881095662300266292131409789735655998643328987809093332618788611984360771089527478806444467025316122719968561397379474584902420326243450454949940949655646385210984935773438014114237667020328811240773862804411346041317215068900059724447027922637940756893192444781293556578509649724781771157329627087594967362407413419079771520635816648175489846067726416082156900362524851661498711270891741055733208532317168965624544603976026078584798778434346293072823489656882438654196233873943385606272788131579065097999193355128037310498504792821651671887466826333774885337295578230501014127881013908691239308727059042361954409684393928494082896746486538744616513034987515283919761288339090493817806859825058748068556853771223192278083807876220839872207786892456066301067864396143951592788348087909378365739434690543610682758520837553531713266655433002807647250212914161191782158646992821362361464092742109432685659877739611205321869552757231805588228174101705824446484788736404161661751005329189106966196848697834648754928334606354666191132310819826070863085612301314595724272442009077672136198495180326588202401351771255372438908211110044294396440468769226608619257958457906189983602756477182253660330779944048283174974472759420762280370778382877440399125381998055324795891572750616287705095428388110326328157506095776900406839618303639436313686617147885773725011572148714003534167018726213020916350889956245392284817824170281763420236157788085622639277661115568778687661342691448431807819500446266493717539635427072632948680078705981309372492950810569773154775035556874979898125725520327930034937398753821448069693248270380778188725244253599286542340889956152436121885582143662180926463141286957300481030680386639978014602563877004881005638892680697983006181681748289785933334316846467200791097401874525998314151209342348673374682140244650824189553904182687655027397618126531794918655048784679586953250872464620158043375435124533694761131015908869419482686850310228033997427290481546618797355768121493255255596571089506801444889742122332143209543008847373462979144253018622941970441744694318189136773127875383668697695367801256107002484857888467004018775137586896672409381454515990717387628594700021226859476622528487449290289100121709296796305994158410516990456530171582562255332538516821295219951661876364853625783174353281427104613081091829939445849137952973173810949990635885591238481932360882733945250377111272094591370764645749824645540963006416073454422055582859002317830412059879303328923859919428341657791256658397284594743927068874492929875911144135693190523006688635602747316419332619657928128592271871033436623094235601011700392527466807013405008793936860456276017080203869266104737713661914775372341109302829880921126743062400408061280555295607126461808712062647101059024370006550175155553712525660985286128708527751025745138272253620837472232268807627732157837293910123393020651577900361517107780257449702690950001763590626099856521362907943163482300836896996824428502178210832957335467488910886778498418850293063244539463000975710426065898701911225908845580103948757673294068062021495136385274408096412900651643729552492831260413007974140962998857209211022131349432205891865434305914435207522765206712547235325901859537481104197827350014295039877859581169645329332531745556406978397747416708770421985987691354726535472816792548999646166238526005617247620118955560324705179411649311247659455531742173646485737558117906187557365098475299428938751926782405266408963129293565649961213219023086490515688173217992776497104114838427951574353763455477813809513256331587319051120059462475506455056461826345201541047317653736918920058857723826938686292482094597414228419895764880510411697818417764576958276049226847514713763740488879231050028464121549080522060167562297985714506654217542767313774925740395614081728257382206257597143982565891582538101394694446748638242016334842849231450171783755483116678567233164550154238494853355661463891215903603296056909545877025891866694289685295731323142389647272430245685170170454927016598904990479562804353434265714428503224944938003300553384220823824101769954842332469311214640330082299565223937211741526918032733619703587165788139502077330261831620375775742439411559687666242720223056576337918118757796542623677642386281387256136633634090305449947615589126016527412150902182417401698478875095758543156731430872548275195328013466441193182553453282893047257609565839772114887392178797893498096928210836335066889083012791510385646668864535856080763927289407571673478078638238310211143246278698695322848169387360884592968181921750263164276744651167400637551463377794529247120628114018148049209407262125322219135800789258758240514593511998627730456057628881805357305188477612601367366683323432257975147914470889439862135291823749079456380401664997626304191041077241345700686943985019307020417248470191757224052550269875332850151485581088209477072819414421711921888776034092894235979886753313751718096522980130661865157796301557204067090859236569171944057029807265883607910934518982324006985165055925421060535703867540317037724806843858754924492627149470071164262569857060239597058727408257150726827109738180508775705755668053475461062281770363276338496202014907102685402421723035898495300314825955083619442120637582116592915239869770076246561649669506919360088715069447624584843227208267826282074133260741644522187403490843258449713898233770291242235574004950709097592787850447073579673762814127651090324543431479252278755129037246305950099453290135299008593472909210349925953055964673330001046513983636340196844660342519249850015428901798437823038857387061956051595875513515350201548190362550933958388123429799569193342478274901330603233687110403263899587647395327682124658056087503876249755329055910021154666550193247113689310875790820927592043703693966885856168556433922040520661970701234898433562933636585750568957646651524955089387014453236185584385214001101930383889255975984509413900466316002009645900220806881557907759309913062934448797544105722728218342287693854164042437654944172921784612080958280391735032962574605108929007570191976406025635476146058344407710241582344902673280428692311083084608816644959033917504640151168264887647948851505755781989389257887094145928797096593909623528445291957644928543847150582503134676808462455578800420713082504641188524426698309369860784253107851673741946927028701982560622284943648051077464332510461666676668668206942680888925822280206881704248251961452524092195835741366403946423778104052737973407964665467176572616473757557197150630371874594150995139053568121909109641745946327148789706555539548016299270837580268663962405605139128827339661315468110479718359520307847351257492973076490195679871531498245374444263382770645447195169314721049070526931607468819054184497021528102793531415938613834186091378531186527761328340321679203476603133898606584149625265151053333584982180626206400658221450635052039579895683747023026467903034578416522590146069687630705807903365974480418185317952347322879123379789438379022824015619239783406829614679158067988103699715747489104885725857492213572735176753229095600914580225915962108901048006442530799509944589560230535194929504512924001435727882256012617812798527477407867363746429145697489022701046225538479047903994471466901082029464196362832904121190034922446755846645761379724229300653641136871255035400832586642084304830403589616078743535487231493195107272470699538367314828518984501106792915295367807239944721230729868045909639478451174863088222324553580557301076015314390728392127996397153745763490511898315333302318203127655148633081229973071613373534019241380437591323924767826916596038767313421784209115162692859356548461698276001114384585697249450203459135695190908065372887663263666903355791984717989357738944247831473524978129083047524287357813407897269110241518076690689972041667354109981191997133383850990754595604198162221388531056465064384629146541645508518884126086367280351109727526371055602719104071786519284610998537617937879628613118711832254226596594563075547093426059694187028120090392351231682893420204209109458638315508638279535796401235482582529870089861446329987819557837300019422918430354543986560927107779380384896667104963766366759677890744911181366490078441181931318083231745880141517549351002173836762123717828124657322516699108487841459291725939216682714296360335613768326976354961728295901843299953403943990322835102980140233170134597543032611472423008405808695140063301565902934923954478326663396072690061021943237225318480281392094874972949093014864905776364590430719143025341826921163878626665547722613232789073925090631409083738872506588405213625314606110063308192199053616814466396667573133193702035280255574019085009555742289428154880596215192532017618020509521450178147786081768045935248090805557784763850472565452069516688822046717038566362903714543597994463226026188673019274292499105396420727641713393946249936305143348904074785265704442628376327713798111965826853753285245367380036550922411936324750696160007708311364778014808668589038219452875189593204006223371198799836290015128489588337114361845789120963763391785543538297059818410185665721982385391283355243238848638407347080338517523334103198223773041758434450460718674385486246172282492605414827049174697918908564928838056844299996846103023031728585920246343165930445172545295101173441315829048699388507870257489578902010658948834088947445574835784418194801870456110221156590365200293414006059818720325654754090370417300911432435219594553036314844984266041894161879212738504869605381873670135108758175416798590385950345460798494579708540701755793161315536490367601736283931286869886916780510052331037664465519474661601621842772434719715002497511413711637750941209701130661098023144916004781506365788970909940490344241517020194142821912777856590636163875731522796382677449803418969144560711156286930661262491075417136315763065159525540937588103769708698778506070593599994881335265226082287136155316197798641169363430672732049071282280046244503598782604067440277195670512539846718721492137236431169348598138130735822789889285512162033814023527994234340207647017366405493489607769837509085665876341672788704373930564415778665820432090859521191210776716102226422918164662634682393662215019947899213449018274923849566338291267658426518415306822814122384408405861879153368122608696480262532539605863758172491261838761320117227666878873073737228597974681137754892068018819877297883607660400931330938540383281592165354294888066203511586761998435231267885434049921076683378478292253619331049247260397212640142192267660634760940685844610173100826273523768325394001112918814111391623806972149868874008734507047572423252377694035442866213241482973010530296085867165409876803313586456065447584616307556330646996699272294229913506262130204231106121861173199600838499467019152985161205991639762901374793372921982914541791585982528475396500961216562132834992944846470112510096299368381209014083486880628556911756643080965669972321651444096888644993592955586997792994684040569546047281837314855745024559915140388328311140586539655358573217305010858103106449966428502162123186042077617586210767977907981275932814488334348991352100129488576097443832005644935012499653753471226240679839316439238760517777155828010835959798354684635153781430230051993264351408648374847889157482092352401807421813563978109968366438815536201711551577782087939225521428087865129482168187267647502536537715098852421614705736665246545967626182032048979863186645228748502269492734985181170873979235439311131004506258265790072078477251399215678818119902053689082116889579769245065329969888277298540128165573845534575722038138724628251393661508426365813837568023244990289938616817659445316570835574062390522104177980455637123869533145584298300686075030869505204893119394520412846787215627219981064986228783819313833418855570934574819162368637626153145139303686867798822441491641975817519402925677225671793042311954396585089516057658735593475367998604510392122232375592656431857321755964672210489774486629650380243668862862850399602014973060981162783262776637682916115534573853308205523967643431705077979604083707380530319821977279762649064941057404718914572466735318390082742258731652258405869872055305089564923614304687612928993808813855939515445872642993704569930567773187411826470585906627214933957951218459412494237822478141560348823096062133358747891974331048382008156413985544102697077292847165806998795096901496377855723366713704184709381216428297828794500116276561471963324622672238288551787647974392945968824532942757577461765249403999463441319990286302307020727507274814835414072226927366119739968174102442487581766321980919497474018629713910785848123907434851890824060877510319286006495537126059931543633318783004762046295343649049280440435596397538412499340748940176408290762093694809160381388660348898499428940104559693911760793498923200226823462892614958939392616649181416056936749867966068609700077149122010607994091604560112704208801294502722080865441187337507626801998474112293604631923617620492326477811210347554025735983551896276216776036889666215450883774547104891867246481130013565647023271088564776062202582465622519705651021047264806675070390601844336083175356881588738744222374860367289928028402213029675733588509411053707463736789979199481841634903122810946917204982531317136054239469017570498187091199851156178470908225814043910214642478805706503541355980651167663204850190426841565747902731810985922390356003671397581187613855476035349320415536706576524607862813255644283052043840786302600737260312852603490038013828034333919432185941646220406973091321282715383438176725158030329355136945542753414056653493575266721825514687844653057357947568909298732354748788778120552484736230345359796507269190064629300233055898164601096996021011007426049073296244170681319455045923953333946361704099471898433429094514712491724123183977392388257007856477429868756682341725523209048411252472476736717309758697866872187668347121200787336380235870560070856988379484705504867078579519987509454512752819317613601430053997834151392358412263448169187498804823412647015445563336827536762046870407402564256249316388744634452580185808711628820115778857194963554886578298501959416819490803263751309287529589648868291771172519718670620241400863617372881884285231131534080596428208622238329474048723144352983591374885869147481574799628652544938162904108283956357891057936232087407356724392207178691885093023055225211748010083991825038532681173772190016169918628455650579515695785750776085427139211016733520964749954795196738463800723955896154852054615350973734692711635674330181746410517404589417295597126104341333423382370917667654825744211352207974856558352038591440970230774243247680632551966255011554531805595081314479083582869116549947294952839460880158575955793533585077549119234264692763221918869982985157721192176178117274521271614100887329740535395230551672264125102689968285197504620717277892700069731867668633028938869771228983033436033696205862044712469311388427796571585489112406836827497306599340911259928896835920131671727950739802544163995411413161029610263665492474872936590113055822007149797099254218077462785786710539442293086991740480523093136977644424565834332731543234877678004951128909832191895146206261139512534985360164490708374475578650958179277728655707079403007194721548950992342546318088461111015698762653671848624280924736686788652819234085614363160817477850555400957798167343047924567776879633729159345807845110741485156534932565518477347741184527924319901225351429816635988414585693981839628264425150710656537937609407524432120794645028606652534881876269427749999872455853773396631655964125611917524795732912479737378581908289967916774605599139307310769142657534866980162415327780899825049146201546642444937442005520275842974282094549766521200782050545771282955709522833721736324331499239248788034744592581111191115970115841414203081118680308989234368816014684677588726102946714714767501552277012566679705969396209474943759963229194561302799158889368874596986574571014814277650515129264854952308442359378637517982721154730836105465997357183701941935945093292760759380089316309600015190064379282475060200229570580493595453093089347941934889356457429722656681072905060505728634139320510221358693260455880322763657508135992668173416778693886008586885443996393251261296054275363865601444659947469822919732294937551036294642798019015209070351091137422698408287659928013037970461436862865099296295376143445132199479432158011128945288242491518425334012025163230869051848423363094115797387935941223216338821369751725829824909852775145043318782754420815130943186151480155013519863271193435441541835457629383023844006405875675863496525357138145457004731900387726643111146616955906193992503770735526165168258293405433643714550589120867467826325595738653882405272116056435663451335240341617373007401712111491712620246298283341156474095367142509230787063887603575657343246562479566465233124504599206871420386302946085575385799718773465759950912046410236840398570789666586985152327184861687634342179992319147597620904491619987040158768338013396266477308126981976950818720801292643507458834244387134145814560311150006746559978707433161333959416365996876869316655626029947379134600833105656467189215293053879730279161674683921508194660601631685980430083376235239479374887526605511873759108531438319497133242420112455928168411506198500691516935261646352564705642329235869991996627711051616228810077225736038702726159749339171687123633482055153265818402557749487164498428418567136523179432348620347256436209715004632792230461551260057198580614335285213575205764809475214887840672948643650445622587568621075803393110849121204125234437002163233162130038742637725997504831146694493591312800895266575664917212955571105593643864324159186476425045495430884288013180430924654708910997669439307575826481012287058952915685346745537244215772526292525790603431591286714413976398923371770346696102413247493277682224252869358106534068636249102461472946071384955526853210468189517634345378999251732099540918037407641467819080405184884435839524874219880274441257949640591370510122214941022422620506042786861695060989224247651794578577519018694710584596167584762819130733366749109047098352824422815984673860677033441656828601928094585695960043891691137743649308858964914690087645619754855070164331637523471541191717645077696733683266208583164283788092689176963054123210315708381862180909464701314107621076237048199590166062030902899773866561891079659786029088179301397605483711715215760733293225448337420782933835406977390460026858882946350080517123215522020043465062642686669091571095117117191045526122882417348280999038884956941089116294824058227868966077733907671696411285761655738735461371746075897683230957770338775802990002906672450157501498864359879051570598624437562786928503987687250657807848398934175430214366838764109824218737055244509230546711862183891462845729233962395026512611746674632318352589229541948082665893893724452834015685312434757369270782783172964763942033098099874688144785725154579726633696642784969744666717357898050093146825731565503506939948308686471572463349981110375608119763555258387769142309425864010523418425834785542215813385892064034107776248574234430390212734126107754847605429180396259213464779618208382018556384428875168851090987818838422225941563348398759163626504207384745587411669924821484471701924709795102103564408364522196663653376737120631679880506629877353767415351069258374713043280381791850037476283273480253240035805146929517940968637035644306387846626173543862765297342071651522902886139681677639764686971936973051635228003679718962713900715937353160070663167973687254018697147383515614445590603339990826637622593902804944987570592721983820674657874911813807535008056143656273760588307847060442944269150484827874200498705593043592304857602915316259005051610519040133684088005088171931377743609967276055316498751572843238646623666534665240169332833462496374346880845889955012587671800503282143181596602811262862348738817618911387663953427585618895086698688289375331021880374337351980487252561741142814329766552290742315914429515825028172918884809262498311447837604444586837160863294646645520426428492628298326626684505890207042555958625004782509020455627047816189647457981550689087509384446838519844284912898737415188978227222444864386900730062162367851212234881785614002602602865960371430430469922410090494979757587819876806072077856952560404903486241951184664167939310674883958872588770691292373803326330709278203004151066458950012864644926474508944508046925043628290242914784501910331902331529792569792385234826946823386875789751218121450792820464777298838985905565603673428369962174746783270808863129091280379930997387793659659643800264762179440112727374293102059475898313742478900924940054279169278577370303427860981458783096890306359617125382955302527106728640044590184976966529029935619235949750654614213391670641073531936647803984804185953049248178685606768733847954172749803349692036610771901322661274607111577583937649236058147206356507003039695372322850947593804123779913630612824423818049524723517612502908948779348196050244051093986018862282458618020745125596334988723924991586321360329046160526777884143289732273056867756195510236337331311126006611379024443689446359654694279544595007249310331489735091066006800620632952659024751179275974483130561390621550646433892264989715360343166580250978924022440963628767507501854946388684424674953973973830680880910612302766827387920996950432068861254100960605876562836342074884760123197802338473546074759229790457484078007376267748760930596380343808260572299874902620903001993434395921320141403866563281042591930097038424131089890171481528257976970550980292089955023243580571412050836659117440134242846211301796538110656969520361267788481523837331558424790627859712586649075994278547255821218993109618864335365512145500786369770201311574688809292973166088975511119522092390709863151985416353252152521851453202316291383000715024812579992333551841206881967634550638093211131056112473614438813097303513431996599862222425236605500559266480116162020474056233137294439022293394499476196595118555337775622624420590690360768783574655464890609692639144479428274662235512033355155492850755258864192792045656378682412957127534089910332123641486590035620113495810280708581790330043511686340171535420088410949502439094357736663978211854335925843606268080448881539897928296100809779519195493527284010821723705892888241962670168448418502700947089615221694858500433536712479555126915502686387467568306848190415317325164783534069837035579087732947016323202390686785627193492069464607148130880309658581746648338137139620172785067906047348515470655764788389729357967346062531854934674311361326150836163456347709606752791078988772557032245611171344473862278368509495666453465948921814305487736822222019117156676453970012280283667186002721619613293038221746236611473419964558587800417302286265318501790841019801204597021201503543384350106703693263735628863171639622742576422247220281037238710912182692905328875966564928060990097896604436123134468925596175625277874565923452597941350348366143276127932466489648558803964025564086134410353000689689703941412222151848917719795547241205432361091363411823149336051441673565279589359896412783033379086316610488889917230495021213866378671160678824761323706817219949233792302985982158040425032508040365133789118157377650442636872269441269223001197243663153793197273602210997627317704997457076467537666115293860952730896884568161865635848872062005317057957578041517512778067304774470539790432075268993407824397892456246438149562017892598358491647034122913497654025288862893588326795063831730471344289353110740474678726939009400974376722527679287901809044610096406088002112975531329854843486940883576661573305327873765194189591024573382639082889067097228119535083853593454361022598450161937934010175792380137183702434466863797420747444974143816246695326007424363927736947940077879421919853007953426719054734186650270317285787636955560590267153647262433964502624002273920846991026537926381507314580985817037493454466904265538111504061146059008757259173109908587141900221212655730779451503881875388381197506786650258623520130836979278045644074713075178612132817022663998005920846674819131013013439433064582717857200642449106306683768743697333741391779904537263884566406706789903568308791192946040706125443616674182327557928525766600218197264856863880613486314001011027502526615249861890223277125211484520819741463455495318818897332206156776521824855578480936308073671588578375536182333537481835082071538885338538486772878599030199971030312271547282817217515616847172834725604244094392063690980813487505582829357587302611627145852000781920947235685565628667897645592733322486819234808891641899778818195671220448392235223197394373587601974908276178488264788668396392933621016942009125462732596298765939457500182053187533056761484398324504682181461344068580201670648591532003488055595071321918013612384385716978573867627105592776622642632126859415342319097792145351800997354776967825575052515066234025976726489439494844916158977382540741516489501470495764507577989607038671607981795120064611118379186092164877390087217892152394939344769245516003453870207611180421385431382472811413158771832648205438098608700065860266586348460177248692291088668926825805502792471769543015513448547955216082416433185424290269674550814459525352168377128997673651960509596603850497819263663327300696117896988831639375054307722954003442575380577495343357941098599407674655630174534454847265585037490176503590956684978560185585026622185124724636805450823085546073713696950293151144648569328372285607805234345669166849434281546901685270467100604814601107486816476194752720001627288260206611994573561257719986062075597113628326467221722415794175507534277579009350418313136216243920969690952364218435765782310426130166690892275631283629946948698290657760169967657108825860944408905064827657389070923797630570124390707745207798523523138618773656598509659897067912378827164552572400330315180489930279796926645623354675979694547109880325605986697967030034656188781968250778136167391258425505367579993684518070771928934764551112410141337349533266384511085010074079731830870820600742332804269773217310262782954841762764653941987572640587708462486198039142742755088716074489576199590356080753530832635560621725769535270148448958096865528515056662888345711976477993794265860377787925801460532021970294441860965126165084996853910269254099546837693987485395499150671348051068773666263509720412080810141488113474657943549167960497261652572175389620226557068468363950785927547836351220218620563014931503606815978547945256011309945821102918754225291632697468726216708661441940554303901862085614275771394150831716909231532530206969555774424530259521133976424755645932577790919232313743499359687442755125120874553503452709916457333118042049381912974102006179378305815098537315353860024264916592610740996792367884405423577803802729027210572611029245551873960837819779478096772057875114223722202715931095218603774036781977130154277459932723046743548628850877856244137472725131906077112994050925334471961832712076675236602608770607756585450515968902679151780118260981816417401094782926383685926042085237589582228508615697582556711339067601856329667792821496443672372778270648972563283193152399907090152988650738128971442174323192467666152909192596131668320648979770406372460474637903841692208180776846265144298562289831262720318905890479219332858112561517171131282074362264687552777158348524274186545675623472205116911288051078669154336155571207490504245123633341900612209389456336086154137115982687992017909751437040868491347959810312735876325120591890356577469129123365680331670477561523570365321318343941860013826225043642463913181842893147954832122081409652804359407717898158999850067211304406719715223007869583497325943723189925467752322249460783595210265555359081342172995079880688949735774855283621874769334462462953599147248511827794306920413478920534690420235399267931044807511329565913720345869800862582440581454568210238033243729740107504769068478333067472466043740541437780420756754088027314797675435210290218233760930837244652207334700431422682760327668433859285157891485533188857870250744488535230194880886253089302506583783423412458082681153391375155593360466008918358593635854081539984877447866051009841147571160716021757419134273219482122797255414945375494599239714436842328470464213256224483185370532683638414335374475649873087080078580408399595041082556627212222565534865505944725429696955773330422622880910388636373094494266227092225271334174980971302730136589388627785654395141266425962118526476192363374538892622315263314422500569378390106709773887208070860170653287804916083179067838635290273218549992957338305790146045182783041114400383979577321388638631297856739334565996918122261032385904410655604325677774553121815886193216933354398997431138584115804394260849431075289320989038974865622790562846748672069897318713952241133969788984535347633744682306605317597198146679288532680265198832551503094116548864376461144409429332580479167759612336819532418339397224839818161823609452997978137841729051865065327050222665358554605602592502386147971775130992291012928360332843681153934088871196622539732596505945179091911087633666449664586161427809355048110619124251193029062397855234073789653414805445593329180080069998726474674547068203481511380708323559548265859442545372753347571846421620581108799703656483812410688761053063780278103452856819383764394554512115639325274386985532772344256344549219759204137731725475997402090099511166164118474143636525674612281020362848010483192365737882504359981423865425192504265839391165758859905050328783938342926711069435054993713447359602756477567804094755994589659469222284336072727521637809949516609246850765368715892728854439996161688288975527772951683141533117351144376775005151082065072536000179194905944615679267045914408300525033912647213344324787988357615759486856126716883728748649863633153021843258552514670112500099476049549121406057983522874953609639195506219355803795075368396047906714696746871563676214360160772680908891311643590056115049076882121699588716625990974215012903642607263098229130840656916642955217033604431934452115327190693361283036808506249920123811070682022885645658423297999001597657522399369241254268262161017017108581825696002809549397870176339572770835249980151480153293144496229180256131684475015053086440717537202241247737663048757154270394734134658186747542074996362785578167738933203196949596085679499649591075500044392465232830267916845246923014216160207587804225191040437017110891130882878926118534286058122658628919004464267878958108304907689790910135047335791287996118485785289603642521136098594399329257358031392404901206319716491149577190032484587663519036583767630207685743950072326667729748869913532846431351849751839814521150938472933753078965511393966917151697968396989185221742415672999440622225112760427969658809153144267635715176668120433832656841628927390765102085587139898555496612197597858514898628129927145483022745516615399811324753179147935685749187559995877425292734847063935650981621530070846848961704988996674789028002951986799373428620528521053597037636773602416857373985458310529774099774523631403813259910434956854168464690760832614270794357228432668128794517970621307438695977252014514471877559044235702697166250610145653979744463502975718410809802119095840146712140071352429044577945122675226910991152370655124173862770975994280426258711389257116383780612459117252523560206918984464282347053844192358109023311673840388343722817600720348845373155577947914324218376279280605507068383930804729434288835841937344102456357415667201261985655002061741908554296282158505522803598911821343309420347284432004832243105610448647992222642302121389967076624332857957200267183327350596110576359390777176550494246570953695276149299606392838253904219808218098019409841176751136257533654747243491518499529749085194652135196167176811081671876600063535876466219955066876163599680116278176532829016925239431805982869153574061368998791378184563333883169136448130485385239707804588528060063254264624209918445674271437346921773965583044862675356576257006894412773728830123961647288846655280895523031452442388239268177437208716609288089899853220455478661361388380694693754912260864671950842524640740312988674356059865965265142227169390443277531994369217569240670655766510085255500536576595835619591763107613219966822016629964578998835968429557437781048870356295655168458618529482521051894919606926086588678501147341079544271134071025176976070121722223490723121837781178492849668958761151309060708359194751367628693644992511255999081655348912824266663854405562107209635491052574499040545344125325543135230136878866443149333524238057978007205422551269209471737316347104930901265135588595167710397221847825764319665802959445291263307852496938860623216794890564570923799902129713039377573285080428162028018791327978148128106344175206379497823057898496910797717906730450765551228346131705553245952424514422256533821722413003826138134965734512957713087757354701728856158936233081393090344899244640596824161280242363197920827032843966045103208967534305012639465982183547589557305370503763420237529127412188723783910222084994096349472091257362681475778083334592355719081024991087597863399299113332325356310544343375647606765503935783670064530719002507682793156687285719488931079935694712303772647258774871116150873513159867409013940233844734895518121422181459612562565817939203312368288356730979783611853495358623053277961613102769158674881316224222572501371867887268390953336779792584995327932121616523935417609636527898640489906312753289221875518706117289593470429995195681774633636854194317095937870474519240501321174422685960390491181627873903240631735804893676150079539095445901494408757269170340118093311144604988086808976935750192061481975506544631163378775812085422117511229524849864659054228707463106677108963226663252921205015898785906579077007403819156884579708971310975121362009647930403376905974937388063052767960613356753679539256142303101871662560965285934261326454780243530470005559877131908372877361145087610312516576381507422119515666753877487091269184802557914186543354114488279351802439940805963696547185527867194577732672368858122275736012929179467639726431875869170204221707894712239894105096515184154022352990222113081766363993631391465628502884220376273247523260391281632867066930260821607989025037718296109396506094041837046129326534883152438625646479187584415942470515445621703100686736187517407194996417542484552407532327321019354710649900734750665678307519281393536461471411042364804295439236412197857738479206971231057732836160764851861103295261409765394053956382810301703587509791537531821730039334054860576674526676792181301149500187318103462869191880742644203373794810424513426656402761839281786371837015288809371569003354891431400776615960833736389736859254734957752867528683798414710317521079903859153714643864661825305498801756810514396548965879130018664450105871078130290516432892594837110529737247973886692447438128295841107460012508731324670606352721168167894905163559478174278854500810326787331092862459055853803630217902856200454231395959050157395475812104266601965344399891786406183636827502360415864133212045600807599156504568674971238329449113329237944398023597751188145826290591758446461311458911794776386838080343726986236862444404386851458643580610615238211169181683473154744116615826246347547371111699832210308645990639111473061011041263572046236305018079735570735751331475487683986230243578543197251077455498393421409902059491092586371500722369781463103839919024271484734090924252871148022280134027381951933345556006041166851444865202065719514619060852690480366964400460677924852193874295112042065216824514133695525083886505109471720115837574614723130218513691389388826636588065648065743486089617309191212073693995011514198987703385654729080718006906331564247770032574790177194583310303104791409544638390619297420699809376757304792292862426012410388757933193537713335607619301598677371883856302401422247401624314507181381982251670629618308694067299741564048101959701038437867804423956181641246160309745043449015381071575562716097016135501596440728599655267792143185695921548404505674895952464742677868674045952552738851230142087579586210202590642645998034770775021671201382026123196306747131139618592692379061504635130958148816707330262048937213747551996333492246624343061851067755926998082618186373481991730876580402845348123537645820769050116950671303488725444671830610523573449919780391416801449765208801205421809419635935241539464311679492522349170204305254007278654194201900526745402679835737595775794190188175746739589966245868752994834577426997586110541154613893938952767345051690389587492716556703530986213353366183000031712522672660273769701239671512952539867250369595751435690593986047973156507714848282283595024176009733661749542952807136823434809036160543148718739238726630188874665523614021141754624592167192451730055663780903687628403226008035359664895191387472461960374866038673319083250149579149346166317408678138826209813339250184103357253030759337677922053891828378755914079930173673553998043223845643331106067092280659079927972161995378831826681956966941735039304592663558402579280167297664824823088234265129131708171526488629649562963141721181116301461119179866285988357878664248009620389436322386747472770963099551323050236184450116115700584787992311652285293472636827314736485126915070553285440273556992465765812005745042378056048643163715864493104560844052009139521825639887868271509892231865158237795062668321615444988287088306174174500005639354089363990450041084897415224615773122951644591663222012790111512082351007200084806418234201515433405854801227484820369479009441421573462523385432030510799056008210824570481620277623273324659444126380803962522212090816161548669798345121999243688115720089135380799450571650057864927062812529265636645843093563858526956693519580562540596446366940727629847060727783295406249779394639936853195599162472867113388486656006166407233339580105552831734089496761121334867489420938783954275252829263588726176748202172941293757459280327435719602381418275678851056378942889459960868300373518138553880072084171624328809413968797237257461693861960464875176608712923709294099277004122608063902720150645438290960152924952997574930741832095484055231159057213120738438949089852384862392730588932340354145058375333903901859965614676671695389212639373683157829321941829683044679859479017399790662560740608405441450354481765263639063436841167090789372932797428276049195723962012635326583232315128076234285362641921536626645472533264028278002655215401844825692262295264188622560552733064159869491197469394428877382424588105227776969734111035429660226490376690736583037038499446592536123757415764901999235174264734980698741336568211130940621397379056962092681655151732611174902151210051302354457525470579841226456861801542427066050617069834364662197194777256427067041488228452860720332360710308978098627460215521762801106276804192596504466079502636922578564772395438599872246673271505080067452130260651484188176975526327072901761068929361985476731558401291091807936889315234317801540186622745769180772113693743135826294133412971552518958684470031453912541589643667946055149184020907362637052255852306203507840439361990987117103470051876281641490909254232068903291283443985402686469872285163220048955402879722756396280598692850547088557162834945291225050992294545171684132857092698477692805132824022975611020081439690741342538362536416336553662027691377441847110369255212769785706122388564929999528043019999378353168913629897775126775154925416313164244037993110900710357324964032947010758290268238907090650237950442836798408122106493552346795129167255976255014373528171875323907873636488410514608728801367788165609992494489544972558880714563818609033302733768048579201485261344293965961714301775834449882379810939453864158459224393397947810661022308721760097854386220457574561080183900023200662059795362471990582353403325626621933144568392400236435946280824442797191219941482339340499922224593756284526519803164588156977532332507406218900957353028975259249183226902615867276087248028593196933774500936446257663667811136905599132893778749787597789124683189243801041587128158274117163872130344831191382335074045329177768942185225164253587898023407380779792485830745527993999696266383721070642478695785015095016124661154087261258883906761210615723205416762611034247979112095984410392970139644439411280760376359167830855961375847322569464721419388438340907519165202418400585209822797699173331282117854850309870308374962202249950940782817805333413778620152240788331282237832122822411110911369465116326027234207836864474181293789689763697291903802978566624773049098017393286790384609294730575675027777428814342676858574919332223171046516709052650019793111859418742140994082312866165483829397951352810572410893521533470237152663128881710665827695256460441492820397833312542429931928048217109454144187101177180359956732013828822624495725614326890891822448872588209892629502545318033586249471604085670778702069874091981478745239203818426476638148254042736233584116709350655137018517345032554436672292832082042298769263479307338462704428365871230975523243667851100399678077870832165807492269791474025730953571753832471460873887887738287224903333349457936370331969485837121965358833010270765459967260530290397522838853464928681664217640155426020899001850040927057000005592799815877274862855540815183726545810566987002629906366605000276902892645423155917922839320987865245962018326908533186292875332968714956570359381691235178433037798204359665608006156086404407205605549915021380446920784523043875813057078564547370149920957887134295122378861952485210076905159598767793959682853050561003212874725595879228073493824282346224138002294305546625969386867192655867007191259243211443161503972980886937078071668594881955163451688497880628531318913942224468211179105690582765818133547042206538651738963057602504982438328346847385697832351672106153984053973918568938027384156841017684597225289659660061237534351954054357796169978206194335051756366878884027391652114722700039828068136380222038032209743415558816167808653180871946860401569854930629491402408403785926390600606945866950881015731784013107267971894034393056886686777966529872622178160632169206927744321192376848710147399224025194036551616291840377572093285648867517692619221002853669396216276854178694696519496519745394914937393024431372021353308001346608532913295411276481080633971595966988291543412441898864513903467587582490041687927681720324610767098228833498262662588153024887772135116736157370636483576991148382944432339439343126519209688153035895607421934816423885532599006740405701721671832353447396003186389096575217283840931444176732777439475258678175482673646382735711730089901980583711928547524706477814632394918761434417466552125452788390986376887350826420936238604701677486262234182967646881010816255629237759803604038950546290616370083195502209112961284029840997695516944423815156376208192535577498103841730183878371882517328635665511976851915260454538992317467596824436169636398533449775699978507133666154941120426072451452479580820340215568636259599690793439132721633592359368904729765855416319334605396861671030600862738715446275909042965875280046271334077054575368100150555886435064543622968607419385807069332975860629852702690101405639107545249460422694294701089637964224742430248442891048639709498998146296173974666895491569601216760077329371104436062747943962221941734382158209408376450562189742070050038430213870320030274304116067058365057850212546243651072428424814470293382491812102207039410229190620749747290035100845466310687700089126146093785952699720364783860081837852840683189472826147352145602541634573863644121474663274731469940821604679679041872707300844817214989355362514321329004402709696170321005349258435291677185680105061471566133334469061160495202776987385311694746280320939724447069474884163072400828001083068714809877092992465984461730550634112364883108553499094308929703676775872469241117229780706626359623187046375794451936049765818876652751208449846608611167169363705338579495464601065264621105252107683650322120897735728318003148772942288173128778258798220674810998140126321524844614490519164218581770019660707254325211987917594505392369321632543400949392987738542563756965454937424719509719534334484221945637500391490113846084328768914836302298908639539136752517835468148173734050434483111693315060756398258039942896943355589967984406132744186113364341244557024442108877596783474169352231884699468696917990053071155841451496790841682313922432172395127732212591312658919115455373818573330661407668266555730535111251047009258070175224878714527824561580269425877055600402876747351368697698936191496897925540142368518041385316945788212915533195970616035766202714385695729494224518356211024514192920910322404992879255111501158804091107186438903654613467850852277636022819963572936372106213596342906876551336220130440994106334805194390883504533609507031744569512099401539283925518874723682579718797603227120638889260777150888135727934103655228935803775499494962016747452902185631547266867396050252899137571677364455040199040035086492177906080290429715691951490375139796121047216953848558184229963217368916620461232843273629882811971257656692017192711645660253250707300544351928470021982456245205600347298765878902297202533803202200477695908603051380310441520344441822919418740990832099379968988362350806795704387985330613065039007747512584394461499125795763340691355033965498974033379492583135171433522690886179609186386433005335308373425973786647974378641073414123753212027490667566358170918156852672780423576535243533165454837295963030261166158407013179957358798236480299032396901235006750250240596815620030867067506217839995707939919347553543676637914899647615711505882449432018046839176272072930683630225315332129695089928865390745984668466308560266401135774270175456097126539168075719957898608724176666307672649146939472325449694568936030327030663223940288480012239544610143698721056574567144022589279664597895396662378823855924058156748780016288643253593986069250324698287869782749866872601998111022993590258495002247196783627587993120882150526285717099090925548847405427772141480736856744651459903493998577518584042638924907704903256344361608350999114857641484154060038831695488643108713458870109912476135150249583730635390937584907510392731652282889604324508230106300625583661827313641675365887962651414983916713877732174179321788468977624818707626551132119946248303104546292385814073112760901311624771576130712619572324730848411926580465786294594198492615791816846989380085625126152225319782108964375059135099567406348140300570307325790774068351358104950739149305375215397817804872334341167020050277130790853284970353831349861433430562102826817859325682005744852595997916564586197098020563901130917246070386626758094746829352742180761492367834274974627676533149377138250387740790963835994995932275865579171191605996709595150233049123855586065933181873077342299858059244366502956734422638014915173763860916943568859514134541542518360733800467840234814312890271504038759174656855764334238650584754283360707507322184775779343657838510065595832121855629911028617672999724584500601345133269025384351263873840340128205738030836580825778992281491653166955893598303949848857626321299612500462462359381812029104202671944865473243281967999318005517017229897028302054238444076463352630490356355429667100340209851814837543141750399550548031764689667318912567357219768611923487810924286023902067397578178853617456545398423068729470815201800772060116295338156903652283074904210614695554565175110586899413537022154468861854425971694254566978542042058928913424548227371793814646364355810820386344107853400842076554553236189484259645968801707985880920411419386200443850982393164941454560632933460059436799761008236120446391072207890025414545166974763901730406081890966787497752517784307492737034339201801930326149591900365295389093045498215587047117847888358079864702882232120771624534784313470817158133592538998392348263339595978979520403280316736988554564821170237783517364661209525405428981747670638301997491608195768248190090695803288266184650474464430760793482310959558135263137478143085796707114181223432767737277988921527787112605213996000516412293956936399342498020580962825871741356442091847144361743287322116791348322453491724544084571136660651782531254037537035939168971858157818942276423075511062290318544526882102021817931957572259371616199127111186041114401807245283277468090593124754499880660031260364659934574812231685546851357093045706248956656065573345254651767169789610153264318210656168148849635094676414797314261339027695085327747247689604791939287569980057966020603409871422246948682071770438291111608088569069477166156375021420421423325205171238280208794834949811716797447330239116566065973551613835211715670868056967549906022588958929251976080910742614287311611299143244414562110883124891492747985923202950140316355659062899832395629131573418412567081790090570595163879425347961805264644219148625100365868393004359848485272688274539625813783385967459608208021384158200088210126927123279179294016835558331875011004268742363870226248958050871190933921789500247156513965192596930294791052003618183545312665294253652892642508741779170473801455258880427109341083102692984364109414891719020617464232565141386926481878491302472274402275564339761122214106426536389603230965939922100263841395460806298947004535531503191138658153652261847751692339893885753205934766869135789112509964999538174814472096115282194686414361020577388395635801294196474063306241911815931481346160705231053576799519804725144883732497391768187435364352625989299921177391665438343179783261719564120633749809963533501066935780243872905970950461871681811852792773144262852771287368186229953525747328678320465270233379190401072778028839304941684715136441509606565029612391353765071210957560007341529751315925774814772202297426609378131914460030203707939809368110718543676192145344025227263976863942480484022832562691998013387694836051357923947090989203603281610025696685035433845130811323636150482233585863844946403809364170014768244526133725443004884132318525876840581326845722624428660402322781293385343984174774732169921672677160465158770650924921838658875104682262400058836085410774014427376443277633899929297265020394656212117435339653914250562019879853055419250572431354765504459640041384708343294863285559701649907211441022896370575837472992401381086063844200858395783203752815787731278418744952952436946664119868575605235154563210852671019821333499004951312670915224578906737767205729740180192289678241545285251182126276424067859526930597739187340247971531580149496818149377302782600829509397210286339868640065106717378950542957137445428832113297702607757920468601531938592151247448206304818015792616982770412969104591254317922057585907440373148223852373991008448450465138510908478840752375347851723635091049909661769784169215172223897991328803541158750571347898321452096091713808669406808213547848699056950549180011030545359478477314149619749890622752715815823535020324023270638769678878843734490483692766995521496546252147880622293537000068724161259350863622739462961703408661439594848629745281741621094954356011234268962191745884858875436811023020286870017433171454479029539172719856369592679173858789482799910352529668598004719914310940736230269994117311819197446652966481709216269390200530348837049850460958711906013132195704431739916128724003346262764281095709570551842173741456210260294700011399787671570929534769870398566364250256710749305953228173282664353716955379379523751047725230905831236861970690523199808339529087400121213035766249775703376009569207828505557170212194692736138712153921265226893452132019008946621609940586446404760245823525396053817316480068385511985986655740364624536359344883442377180077216834406971629780449963437830487358317232401864366688830039419826700503387494628051279993062979482405094757230235804467586617589797765843408622324547781582189711147135505444680555601516563236099075543194444991154116981788170866527992344393840578029951858686599084839135420518530227964186202975038282224845754056659493200218547062005152807610974143838611197989047806571573337146086108469045453358405708181857586620240678941269362727448854426418336348747228229276254765423651480814894377701192560350507645457747115650428833703670895280255753613175246233519433357710552054984664315732241184803002099890336498876889650704843826363819276285121373973880739176155598743915174454151843221236076319486280453629231064437770230413971390910791550624700453398517900008761599436866367462771923959387416454972818911730074647279831088154798398300755123660635287637411585060738746084466547170338517018388893747715576826904019322379444695208167114397136841037699618656772162581263243337510182599599209754301664864511084609880970795616921146320015099036957954055486993603544505747218860619636533740655252581780199139053115050429453362015022664431230597146099651275545781139277457544815803214476820158084457413395977408670838188586203575100864639789213751564700295410911792852172241796291542231983691560389434859859195474531258601827605904284546532679581646195380607847306163494671998730356945063983989115959579440813729478615937400062329717613931089619155941800866768011701518041335031685122386916542601627024784343581118416969634664047247780913690784457494467768495492390264059206116440744662758532133253162792681323014966808385885630788964803188359984159745856954919752069022321667686218017599424291030050078028792183775483845612719329559934568327540733745067485824474596912975265762574690844653607474491546021396877836963059427985050439523941898464810697132245808648315725107232838345901659043059172635356519294703199965533311867304770427472917447504423554463332646393045713072761469854675077149687870503921325155967166430569738647429097672032246690674478736874628351607856019397720937313389948578989604317599614949758750117267586641895350154628410002013547490886335956652246374963529807706165203828166052250378552775052664583120339449161713490096793120299117245771577534766028452024340448086339883528431398591902516638323693177958319004766876480693317817339984402597950101017542197183960908730995868837219332962471055602077767508931731318420172402877678644962228206857629946245168766469999659418698362469680284291174786951859924900544939220117895327267544432535589682940987839501823496487039994592122498495069344430117592290263385398362293895678339256641160365695005834311642335117609208712207596003860206637327000981577236867367601583696209727479259325819616126417677809842771510203911817924420026841633573214869841955667376277077786868448403866031465058923662211407089547492980630342924276544443354777287097459308316560160941357035747592647793807122851860356765605560837493552973448661014577354093316355497106892655527109569299123895281863061579781237665253560379189282320346481021632779712647227281425099290017941351466644395984427333771118442491743893230719808787722144241058006475093406704181109364543143819586408239002469799923522539144946947917691060701334544701614522582230447571782325592521081805667286252836062302477233665249391148328455559991828157582754249696698329163605766939156047056044851569100954055179670415227695972327216468095781865238175770471664804045513000457246716538370404943808722713741429817150958940349973391026591858498074913008698663998480285728459589351660596511339337369607549553781015099160776316841150481483747386313024913023987260543635219182915866017360547313802814652144390365865648451187286820776795949484196644585319661546194565244170405331596848667542317797118143578086449854523465293064429586642420204433131860642946621415589720987451720147898637519332311938472138318346694556101831274367662292714614489553702257429543656947781865486582653199139723212799641289414853506094319711580345814060120102492656666744308847086426778865337696541581871533960014398019475639584429853658137827634037401497987365124367810663546268545857052362103341618597481384424063804885115731071963346227298173774038161816912375098160968824417973939899298384434460834160977363349215470131978577143110243480305510287052717428428038999834073157542371855186961247369015604899386987212896345423203894750499111655732726977905975669664132758703868070921152593261799435265963338892766163627766734679305255961279006559311339930456224404452994473600914400750429326282627960784280080186002840456303698726401608401980458813831331777233535551752166974432884712575273028774571695793986584066144833112102533131394887395079590378176668550305675541634673095147071496916545503782849999783612089587456147661009020408544685378387533274537868136031934532985522127265280116062374762378659345598493671128079480448942863917922488237417303706745150306778543534333342091936879644647976655252616244629591807826541499927443730728875164568341199009880749687355480225458984314023926200918018153390143631501139384749046429596923765138162030974967036127626322160721149069906937424979366631074239868777795148157123975214890183683974718598560767656295612858418231570088852502528079444815621032723867076725053007386589863730663303861835272218310625866515508913823611702444093468904302473312358375767885066864633276597907992376003836606873565500649143265800321377008216368382872814267506230154370315573523061191170158586070340557577011713924067618791068345388060127155571040865056384101367407054037390183123059640024871307034050687822111776513309858867146578178184409730475889211768552167433646870087757495814657390480246473739632348116959901984987916764885018160879751649054046935582564173045226550727839740226109870726383073076635344783335356162841893806742353585038622050240066318513110927313605289658285576249317132855784386155772944165824248544193711417833904559946038903090349311816659290972045325276944536816801932585186469050303683092719060716651451082211531403550149500259893550232532261466859965817604570717904422782229144509781696038304608517211562486303359355447522254917076356131636633084972908626655594746394484548810027506913257395665537865510864252775889748397581299548673843548055312374891435375631422713968996442212769592453664978047245078477602705571008203838035151677084485547380195950797249389325541673615057957601811292978639023786560382071298148444555632782124391909343406430620731367270871455262165291503269848716429895256435833744134404809342665732378486651509403122291832915248076328881179394667347730829538965853003506702406794074498957478531317545306899035239392017471308554955956584849137464830912549170427819004771184472756420687458877181241785375142401306331433835478925962623796369675677195949615494455462847837535772895032760197926494730191121187916655592770030797994174897850713912530015031157619563077768563272910155962997766247239968461235588982611107556899910709652025886451201965299029399877268240505378784893928763554903265925981171206018137276621884645813885505185575124876349311769883058958902655502473670905386350405044429270888493313220628066567013551252857080110471464534952347515378480038695947546124341621217774530329488271411677310195963363352502856987997061927461712159786703889037735693325896447419283543035715778391608491481653803309406778322076150783979270545133732126525261249240648491085521875453855001620571272911033133324893735855335278834536922361613164668200471914185668223631431449497762029061363973617470795107320918265634714617713908822294169838481549206325473560152664266032250727040027993055087559513347923243113217953277699476290943192495003678495600198709344018170249309699520879017196582587717011236886080417928300989670129361141894751783730171983999841200711575415768848509476795402594469947100782509873103346550368508507853958047286383330125234305314160643234385158771613525891979443639125934089511714279468031789176722649921426622519930848156577744187057637991570211264867553979217003334027439172601647115262456095492168996735119451023192482416890084917792942952731999481031513619539606711741904331407964151318932008944818959987763184113791757471385346256747339074845113872383528763933022023591950630631637292878218221904408980576034247147434987830528950387533336237154296655780639980611372322062253981149901736820855075960381349521939979844705267161026210747548558332384149774858766403044334212216010224258164118092379846890423567208778047009218302591192391148120033923354265729902585257247301923023028561999601881906387211695649349565448254608251503214602185550565125103723538638916617481554301136365686588606562911077928233248906509816564121040749181709817905090788950730778309612544027231879150705735679302682790586034699177339626220989165533281886924482948724828527390368557428359033182935202538227591371855371666172055238163933225929549546314982850598351372394274597595276637138085226195213599264007564262065579630536506949947211240029306585782793135578704361923877306259120811180940139849504847530477036396961063355846801917613961247385396981709547318668893473918412607642081524801216750749600901224713306194544483687974499269601498254257983884260977557618897077805196489291413230749626155223120888812634997185105648106228879712012425905247794121726875796249701886692952542271364482341888981739742247489794722380799774472548900653406259498964437614771827820091317319210008601428121342239035880494852061511980551819976849322861355890677348731720242370530787063514447096381289892213493327946093951428785905389656125564646938790225761012706450170100986594310867525182501007688545083224716375665143798822824702599207229612068298636216177606700097302742169041701746412161087282527487132703206558789477649883063114344842320117854163646878726569633525386681651894073130881560723779552682364003306057024735138959069599576968015712144872493013111915837382265009975292829293528831517278258902826231685082336127708841334054238853469943832027944437918838711336602407003265536653433242972209776524442249621954524130731980433921728876558780888753796933051983998745166859348110878837951738317449012887045310394174845941615516647693080521866717977241677803039626736199548405750151812245200871610486173463119617620013404694963973364755583153736251315506157265305650609936843379380240324651059629957899853074614929352767265300239300842960966604485983385610444275308815866882752580379583644497669054350538521204466768235712912474424551729505202688793612126912128598405380538457354640695300588144807540872386071050820656184122899181843347895453960646611120324189966249859865398967667105465659317120706805788955828762694448993046760509710188620981455820331775994821097563057903407940655263661555583452199421637370265235303049464681308659167854982898638157340881742841062964634228963692827247971424492005587770998261849643311387437391736778450778265508218268445305615453611886303948630218201818122276342062044001271107976779554638884367526469306305263943810320475393065383201763473241033861428038185431697243234559516354026016173040032977282976831738010508691334800649810945119065785249529972324652689859837893426634434269672961932797998680429937995533300369499306906306861409610953414359204301284327704505235887993311566583155584034821435394195135740744156396368150307387827925447788918306367734819951140577570607279823203087676760853277466838304617104757300870486208409594334265822692292639871846186187592432766878157862770702366070442778238095396481841479433191043590797642598809193823765895110437236550133418401182178575033061746236233193373728861425225061668671508390846228797065123078094908665081417177831702297558815908314861454320020592122122117017247749475761294190397424689408510720182673855409082800009926107373745742185362452045069815514315330133274600228168974585899625025104068686320044313637299621949196217512009959057316529554306240077993583624670643690083900810558200084881839980552213852351240603189518200058153632628475372282891189355511050036615702814332508437028320877758302303247659407360310617333090035489482650133055030464037267242077321602768634076330963756236123929195109571007020746087155980112800978475325089471558371650363862020170495195379078772088555579279480150897141387536865419200817608130817142138865700489833972229365558201789123385452786330707833633192094622550603400442863681344201359443258167726463576176102895944600647790970051796908023394601839184444113560162117352135279034696551809800898777614650910627073056706943063222668314844046964535970648788716557856634897216470993181480133894283945282357105684608831332385781321849709054091012742699917899142997773855965646346666483506143896276820309570451641899113956316672391811321246781780311816033242470227525976326085235807898926578179606281831222235778380425863446942213653964071392701113973608742084188012035162581732503196843884306627839954292247462863596577965620724661272358844999566405691919088327534572875542501023919218591129674472255111473181439788133368664837313757002333476715455717722544269610064059000229039525572647011832890738548319345469921152314537254222820953605150543431865014979110179906189404928385583536066366003933146582822730904110744146771243002116619483127781676145231463370923355488469862001720944954790557529510493462113570428705065453378491905575664449235121364842427557380975620891361395281333014854180067692242918515081933046874165842482493223526442352316533187579560408560127888913461603378519352551957840502258784594161876257471063182289781733546439780895017834687303343188302100053174987020666370963513084482701820514221594775987000560066151225593348006253363093879854158211970015781083137894257605106726256907275816743663676124266300515685996485239605159893634334265272742107273539484298657715187523290691061908812590087705428377475282263344061374068182256741337073702771874543822009914355202102519755210258747799982584694347980665307815938524221692510262940128572909316528368532611778728205618458288513040003886957795492086409359121057481757839378617541930349416089495474458149608143422894274759908869658293568846353971185694958903286608468984923967996559950718283257473272372586910727110637389939392039360941075675450941063658209995514074142961756067499120117709757853968999676205976605934022550802785953425882252076373120180284596281054307302837347541677295161605995472038402875009529965286723111367537047837779487645170949316176051279138148007816619436234318518226667324331917633889904951806999072893240428313115410400116758803331490226742785071547112923865634809535873949086741649339116871319257777379541466419805009804979085743390608370307390046962231771766106760154079218857902106876601888803743225225284002501868194345625857891222341284665421201525643754272396851159370852578953360143518893257400179055346121809986844332794275013100229357152070706839158889130141885968062025690721524143657559633424890971235716630769662676862818967394128328784970805479776949285729096934411248932914167782430428340668296969917122810367807393485793727786605538164432801025995925149442986038620114268933057633394926226368989582007258729553226074833131652128083198354295164553634608222472972043358349062988777154117075434908972303675399077829530028660844809570815729000060984560222986797155147958262039782979838537019999534248607356933213429429516284151140682549651621796588131269800688556235126607029696172049264237905408607582932202397846435195607425832531062272280318132180669153685380785482775416436348593957964155930708937609371053144708346087198445585096993443871527438279892813171545634697377079795909905718033680742885068576585096452896546657992903444759349130952094296511785921982318959661161562724389357649820420534924899246725741343953788158640160634430616095381673105278473619637975782391697478861427604575151987606278534242969154493674406973374678666244061007293959888360564354608859338098395570847171970433877696514832100923788304044715146093159802578451734742414282712738054376830253160985275575051100141560279645482092286438201301841412199467981689281193070081534578866185181006021184049490284023825199293240470245501078637602820495666108676092465504547094337382661789958405573586088040591504331693051914973035124802374828477068599591556369663943361471407210289530889883975248741928964503131316868468078425621793450957483757283636014319705988470286242335744461654830396185930062041486805300336181593045616678412982033070349530826511306305542703803643771282739280261675850276632702488065691866653330589272565817351212995749668399341539233797540847058965383504612767064982704018535957006024858992614721160762704494338565550162376209261509408475995536803898931284526852724009814074904084068679230970044539423666735986135919512412522301484606534704026867912478537091429976911335476218496336709204011936944400104296347872089532803468744821693852387067570634655354264082521874518389435488955061745913953124494275962627585141739265172619045751201559088601296227571824332575808057005044302928981276467240455265967983266840658624866358422128580926883841336042233456682136492630188119147862557565398366816277186568417359729933783429428391461194990906440432611638131710774337231019417884502336894144992383308402151219105397790562649422432397759712885745700687691265140968790676356646946658917614659357780385142800422094907544072922459280655338744576469372439023070667256241208779524018176991178810042437352670351929663988079305913226091078401336255578364919268926680521178183773942889781185417366090604876304001652615244948421571134345257448919112999093917294782241007941344965890528042444790662943305206144242748299582889978905558075944035423373748218566570689551252924400924480219518759966887406035040901611138555821825207456659025857427992486215753864480188695112493315640333596632139447359040588520605846552778038914633401462760518956522450440868267002282426173803416135162267153876992070903802770588977906699408477503466980512539682388045975062551651800011983164453410562037325013493105599128106988128513292672374801451654131723221237849769538205021503484983839666677816100956693239960695681556877455366242918705924567812328603678462607524882116033664362401314098582981097959891576401030193305763595095598633917045908234240275555014374844254044132950426732330618076898942239651252933461340418169355161872497619959607020639468024098433824716963883951719638101991023346579075150952134755452769569725730764612888352155393776938061993756861198446426685593107903310224231586812685810806687546022767654194141287269248719677879172281085926294103106871223011999639237042211340438341851768403730017824809556678331483397442455811007367167444934285520120111123399387308752627107927794070397616564937967068529268229952897439036963716264538553967231559947987725622657136741777697303399254279133910885790380787733431852939421728004787580256487613954090869741049286730338560511159482270407863356566778621586327027154474374780391400458571977560238497640773569035263435586775748495795528818351358762742281332998364149002055262195138380395755935587545917290701674904417781472311217826406934320484201265373048859484225551311270190621488727376515951261082598790066341489431615509059633385386759697383001579252853263949658064440498132911922293622208411654669502769040282039730250579633605394822773317932631955503480157560805896720649623236086239783122194406371053810943191339130268643944227515792346154679621077465843605195416901612857003661559721390159606524345279201968088230418580688933127768699468228044638447397893986333065190294243930169559044059173251105906037782485078340233280127417771894492202741782022796880504047681051631463958209384229456125288253733120834143536937681471134136012525160631926418758543897191469304937353872919234187188084056780499900934919087538784860531769891339625512550357637631508938872708251828155788269918561954661807699521456543546492541490982078091842143200523036130154035505592499611449425714727144574559212686450655584081531680367485825176521509227576687458912261195432765445994627414422907345411909045638430413570653477746007438603880467572580787248332505400913692301302811264327178146212112355408407556367698633290509240410304730470125867829220174692710730800776668324943793105747484554432698231264574020624812124272642811968899425625052156307895997519753365597266126923161362492562436993462496826098744813268524005807713743179818567250328182596276085834096347613249540938483422806347145116768690292380939435720728700604024187475737756421372665437795961054796237256567576812959634134081932975683176075735056057255511875224167494195777976268797746776124178731387199476881920502485702142845751685196802369123956953161211138092738410692198672477705157278367642406943383493471226827130777681762144082377519718093682214913029478110599560231687433196828267352377094006203955090230362896602770316509038444984663938407631673331399798662627195341682319846658156707648917491753623839567050951949842183679854729708590412213474412348433675564948661139485566086292351226425139694850206614540650634778085870571709849284524906656641185440318259029662303604394198668094960447576725873574546700863213975452309210142300053828275512434213034370816672985508652413375481361096834720930722644260760610753368450928456317126606355049877695157834421059492812716386331523548056126684566840541640341785584708426020853098133385249147555955213137697576750997453348037859236224527234686560556973698977350012209315908703060464888864262782777333777622493520900907633462700308451214399174420583341599342255600375483499604012854827842444652109971117310957669429188250667090251394337995212001843069156796060489003389512864800119608634522719480067377630629913390282941537463314486449135288455638967450831533584355727087037159466152403030499042344479847642642301814204253603858962731340617821673448228771651068143897868809408459511937298527354780753752516185170330475831107115571020155353618023713997607168831070808519933832124913336484974961329777455494867046403316306428566846915384630845599071909217313093122902371342291299529891165992894681071377306080659172490130150262016157238997975465276374368752903082440110928009790536159160435327202238705014055224920924792798267361551780425200423070694249300689572732063957878399597243912135749410916701071237630886093588887126826344245218449620656734298848837987614798123036537000864018950335278759967080808490001959930779401708732000002664542126464027605233884233490515197500580615485719426286835294776086087628820294731447105675382390192308757635953012613409762095234630810607609011486992449295636362441706783890472560811332414172332576018028565957773364529081545277338492891486416245285231962754119487404408254764448200614033532185897556774006934104095417499500773538347158218757803871085659255224732427478001956628659022277808110650250724235047974621591085237422271514042479085896346455208253405872440067727666148866812632790589203897800801071568592337204167854728770143272073175443326366573950014598924375051630240862162850789836332274006792220025876354686942269350406848692458794841967754108518508522028166990352841694622598953780067919877634016265877493176965752265001857022022133775809638734394357270759900255465529465664412549961574511079230192316433128033897375712368006909800994010501641836361940087458320222062968388799696349680865574764098780956174537039367249180420909769061002150233976281639294263625129662518963529036330243806598798335024353580402135505877589809467487716084203576468061770526180760656226392841811023669799721614931254536045057275784155194991517715908729305954346394934532702926146647431825025533914767497416474758906274536812377566838467656042444493021304208797955199113990809971844771250680982057904208210463216199294701143407465570161407067239800375932453518041161389219505772607056491230339869511370194154547273965498508502233841810596482873109649276686713938294956364302049041947367666724128339169045936407702629257155210394910323198860062386118334234727356475533377461435034005924836326286232079932892010400835362206258416512289267649023270290352261195388721122870018300290266736227236693681884591229821994538193789700198686380104389289196648121590740617304063681979421020290527083524313225007900043096086964321067452347882652252941676373497355072886820959361497295585668887108422910646822467690157568764473831018765747792757930092812486755024897567737143927975692767173891993374256909619483020522339627888054006420941669538665822901943150019000822479887083502129947886731943341203515982005596494486385741798641759192144669408489834293530888276767038728471233497362007590562978355113853723138756268916652339671846682634454487524618385556701865890047027676333701118863389451942635937965497938731446338695345661473177379074299437891047934220927208464320740091543840639763635123429663231709445914035063255858834547507765329281888833764594472706889008874594646024392460242533796715290245661982478629462635922350325583294043920176578002125106514214073759671819983183793035038286610770877685362409366823807578248866696843314375821414441586237048175112906598478600097720847924967018511173988139005943627587016623480530458177896024351392694233613917343501163427488448644474733841618119634969671750037046146182994531534910151730727066001034395576124580578203001981036995584272655272465476318876256471512260958297296085982143017851244761159168387674312830495408220713411557707760156308137120709987439600346018655953844126728172385747613546814699131721766664570868862811038354456558902716704169022285715629593532814794895600814180489729292393294287993265119959671054080652489462723254683093569168699564017828378945093841358923243690548928325571972781162877552238060558683175731113747771472228153196608858896060205519280333142324433642680764871264809835844998258527726394487758707851857834350950394676881687065760618060960059275876122968781636573165389774596919134325841730136136565083561393257399340857157418621595560696486902884193687707016758039747327384913848983556026791882865016438956853677605764548052485555563418762205114142980172278330330164630965307029839727822014378850546188723128641700342799341538711985644316035350564172625503132252710582116095314737416190746775172983019983218404886462171862223695236899776806103493921546023454805430136183143108080856271366864956329083844321698101664267461378615931457803556913617227875811618266249567046740719397092801066719132397295660156819525581190876470722268740753559660848320704891838206932280774483384245541148186540350620636130582061878326597076988153432790990984680988405277456315116009254017737368459811398514611007736659007106317438633358186101685163753104083252754851458619379597013156760482954824023732253908095545900144928738615544962123336160672479114178805413859023819151029039472034876510477937132024807192811228969971486137831880446922432354639574593330722068830551453006582465984105019398101594849910947051649829967793166126959365241578491770798211213131246380203187934959126547214897821428144354826509763973763265202999890331001161068762703522840566384878921699618979170237756657057251982199734166499182943434424975395888471139751920804845688409758334704261866096665974378526202503124146367365253397594008298254572705355773417266567194319416139672148405868888041539489625623934446708981186325130534353830371535476685287581315729102884623558608492414733888294480865657984941771041327609960082463166840604957026065019098949436981555045930666489067204512819765595722297393497624467450434752690475379835188860136443166172616646744501427132727677949442455288799927726973895661752418464891917836812688988638202738170645214177044871663295351940619507723415924353209026067310994942919223307666971124806235696834043197178898912463465233121657725839536912272611961368918385499249105358436174265555907802318022925698661842331784426286824341588250207895229099854277391365430918901626954811923059049339895281318365413235646969754601984779334598493238752921291641422956415151112274841265215480575605820095172827114962310386432539792441190005821702267055641177385553605642648421677301351172212970388688292278052294747614207382168739311678776794712289630985350311728067757446521158810551964805795185800624274602487077178804430068867636193514184791392658402784710218068176764424173321005953728941396527820625288060353532877447019411964702270905332424923207577706627385034215192422655143825949039992010825046401867459420140873212134454231886071326731773836761388278318191695218430280684798601121519115111060937275803140682980431123072872028528156753798233747497418647336568942164278645357079016887974807186030736076270292116737377979686106949070281426391459439756838926950956752182012293740906273868541787269691186191060244079882893255192085070052962964362617941316496093507256868863435797297262194071467611302147910283502609896838223693006315197349653296257223796844146441165300839413862560364286483470168187709697029710472187728024005404903616454266667321519632883786981068216087224538964690860033569170704155863644786128750379440825840133139754929401058005149167007188526537484518303805973726793663604102637762768005138590357004070814961271793824908281134106983843364780909653674553681195096449016850664917057560826611511583731986437465012235840883326446455282556723048212632713705747460222564894531989867001477663894641736308236774975494560104715364529502547405215718683184782522447989469224961163570501468061902297122409005634318500991761440471995203252462449636784284567102465768492959501546322369280975071288319029601568031108043993517138338335313969920134006652239144396229618232140508059797096537773598675710253907324973904968782809958667248629890959375965647780059111170326109851918367120100742050452187703232829622325741810169819076731747256815813417041042312529465977250984420756148706123717747713727005890436913522107398121575854145692745778574891215022126425533452666506182431976082896175009348307068103996162744334001565070002707395396849551358150310781011663348431262464992046257137819005445964893346663050656939133688249946636492924669217488807471364843078863693932095352947206768292400865726455160804971704289909397153384123474017839685125565409437661754212510017383988979697095745362970309704532250426762982052578539622679045910225669103852242984919087946930267784276088978118233591838142943041020705320303696149477045345691343542181221829923207170337825541493121117034985584893392981983121081990583509333627634514439864253722364691966773942558107853495975914911650137223031342283603400135696336531543997918588046090837602879589472040086796811380792378795347742331654582470590905050090060176439992757505125891445237560215162756817455939119094671641464671842388087909391157793112074065717917849961606749557795563142738384857691814925896017453541610860119648556508417315508984824806411478533603596159728666900204787952601408066764531990828666554512445637929862527025371260221457988673674531971064122726035967655649608339420823567915235215136847111648958196251236924850089592543878041957320367212243765620400868079545012484512619612855625180209395175778833585256142127122946319119739040098335033188965464044910042563524652328940163059199697575369110332091474237491772595366405346416447036144813409454646289465729792237269940134670116930148406758965182593455897503455689445432118622271389709869810038738764525380645439681840553521496698685637914363257157086532289545147748766850731231597721608296056465697028457617402860638846090906951561368029028598300015039707345373182588687137608661226095476626903468949209169163482063850059968465425113422852292866344852904457357621276853038334978605070054278478349343697558724461544885694170623286167735234347669902867355140099056684209218474575455408536816802652274732976507801697501079854644615950567179277519764545865805017431377066943497026640778603927911250223635442380320231301828326055410537616158427688109437358624139950720395679366544628795489127433968766964506111173631377353416193893801159153052544330462228274610553788955398908675116364036456345010589654951197156991001716804411435771732691780534966120750192740696696639422678789244512600105123870810351574006235741662920649525467788192961910163016743290358051106298433633865052637353223627235547365838018397303763818107523804457872185989719118198825003408695481566774314635768321514149580547046413057416853638682666939536003916945812615838316157934868872107833734032981069056835699668182837004018394052742385199012410826170501527791598043749002406877410944792736581760884819798904718372836935084796890674280474777513540757429424470956641739540978235778152961290848367890802321105034697996328910551214024541311136490054393147274413110477051573109383301683413066838424503192717458746136098944629814238117063996057608439694291526722297933998633764378466265965226440630411347532580544508910685431634839410656903825210670187932753750180352575799361834398768070645416222932273441263602912793010519412495463375920431066062933712678434419604920236391586504059623630732279738194859903470165042072920184350682289435894201969015503145075656815370341344392786348681467448174791039224790059569132344233548169746258459439976038592789567840091848513979056948502794613286555316988893585279836250948237204402280609958561951542980623342232585353958944557671352796793448462670645398545373178543442372295639916847299991900554873771617560280845592465577824086353708426474314387975799399551550711571548401918035191912454191328997282633552941698275155108790735624299840119789927593969044745159381434709375714265011355952884548084969810481659294103476204966075153394092136306898914741362277676150944146646260806642941768770780594298971840862068057856242388700009340228152101037837559980773802174761638051854294576536768538770302620355619979388896565739388989224718890237770392004804976086489946702379343180964642764017366218612367288889567286925107699654686440729193361884947777285415507494606462442791032215654382075447867681447482439799481702570653121076480631820981219949068338985862180956703645958462688983560489877873717480720314427887945656903708115403987658091417482738948428776878662225013147022047176356740579110017958637015632168148037746707996821646937202810620855377699143920245226659232100187024585762322631622074828815210556969251621723530655542481146905430737959704008887313440104427932922015682066587332280649513388051336383818394992138132549807642156546234713750684628062431247608149027938496166101758215036969185026654623151865143582411546026437392855846494532184869260732419370627629021518149534451702506809509183532186149730478301342757570513062084016176978107960620726767765162181478418800624051662173749071498720503640679981288707263206326514206085753636338504539452029593302066087424021517139351600547424279559537520091842226437503230246272445642412470061559372189351257508344189323157385046597974476229027614936475715066527968795972337696926736757904560689579143348396899787430069613588051628979690760673491081368923882768870380207175428435869248667430869925483309129996467641465483878181167586226859389738398764109091854097909849605774001176471076576730617159518333977167352072511626379241222848052261795649834192459758690196654450435502957644837217660796025173280536785558232088686229240775540303388588945447748262291338961248544625546483732333565575513125341545181767649197847806347812754900895920628647093200386030941506852274358404641143027552426444462867762719951820392482248980407774579209746810556115256988574351460156626767506975947869409021734762168029854167888076575473189639348149425878907724288818469719816164886335116273316968546047502617943706438760091885763592780136662541180620029859050278291831874820906621862981890966039561179593472323124439897536057084910746720901415327078745079922532871400919817282670584609729261117962504802554550775733383669927559955039202965601278364111845482662470503055986821489410905991404171280679814678662785394254527287971646718283724355564891052929903811406273694143132603783120177772216906611319122065229423906117062423700545439336492023000923090995450650137240742001842568370256819586057290416099618118374733334965987013826175934366750567572048399914478457381464238726845433766012577587090254459841154231661457982475815247624984112874387668139444699289239572880936481185307029634103523414470928214567756033066126414544315754438454328305033057211393628883095994571491508463648000675897276292354285525656952285883492257863507451937941757992047016233026711838328140162103688924537716857850051076047829784313460842009591775644483276371013900088944762545082215770900083389860000788567667012451256424724365324279014929606841435904243238651902223165998337325254642759875705349045658337119365706797283293839847663840342575450691279586166251525526313919650307603700911029675435131579504763538036438911778528233958645203783366290205183253600223533336768398601796861941383687968276609959969649347676607553180993645633405959207608506754365135063871953074628284541165784803806850067353764881422882081634589819422734531658810359235717146009360976397332479588427896453860272117513639446085340566210979207115182519506036403000887876598696026106199191296074542936998816121730605785822989629567625500489292041568238419949515343279003379335104790796383420612493137925429879911288667102726250931951694737111910010141204405715169496373352486304987782059895018221756028698967683352045693710786531161604344972968131335706493487229767845428346883804657463300003654681615443280812362105457987565970820220066846758133664213003986647310813250984543003666052603339244805134934790553006760902382810081920287491012192272000681856816235783473818505670219538044044453950013043659739382349651349789894023611699008843465429101213829828940016676871953490586369054816357854250271711818956904250499892768577608465152628224288026818214535542826472532285001524221724024663627954054803943115008456038226052277344581907685318287498520303304348717927178628360942841099856750519722476653437240101373778350887587711491312290088894954110019495254943190666531537872422183619637577290756226482605139591816115564153264152053448594611005497779738742559540740528701695139264243681855327959795753384555133939682661107155514904469279271256142846106395491494516806904357834004868375609969867564054009003498475427275008045751279513669225004721138243153060057933567885011193706665155574106734215176382568885501988048088656157078261237672453197887132145123180827519621484993451813360363583219226371953964886095122576009322958856674697038953966113955205790538156974969085703294762801167804065808832212758119274276634874248238300796703299287612774969893767417493588486087798140479279611479667239428139715343923735444148006728367157999327143974962082095209867993007270662558096453138163667251874186665991280571473037659469861545624064688688170119003011872154588310333967332646500226533153252354804424920766315312426439801639133121927187887824023698584836849745216177017073965026379432324439881219900664394462366921389971122506679530609631339718756367021368100136017698462781856040251870557712330522604829977574667069427971310425384595333460539344573127414382947569596379942102825907426325221890361174950409152486611691311452808360387928593595740535603417320409868517558186103506512275965416591460136621605032386912855209891460726296346750351010204934515500536504145069396070245525599845048724851491434166340045354680663612106859049095534426035590895741735617343510206125906753343729981736715964188036175558834564399857123794687557554678854536661957613462802071145132691768899339987670208179615705721972694249838817368114652985028227797610681557264355740846063975917949541266705487657418271642809467831144060761570821514210718309204534137864463560331476482192351076350814751003110520145730898092167084764711102310561119214218825239599605000552262136541276637394455179707482757675702574454698549624778148899179436793678104519945777734079537923111240458691301230439877854713219099749671522457791248141925394879038242333030600555374509083578050972558103843709701866326488200817948432291043639309033831665552000050193109312124119277171902237619986886739369804984389364342184760187985320059910238043584234402267142943782958639859546161845492776532358741031002259050689981123159428993809079174502984326855554384954018848518783305271089406636273135890638785824669060070729001271648355291630314476555899808276724855914906090410856475407408036132335868133828603171903599238623846705786119469623411051620265373862442988909973947647531489909969701762269541744631428598035575695159216630139762036317821175322227045210711927183804465714682776783650330244554292622049035323566219309100964923149349617528203953739269889284301116006720777101829537440451653399453077448308743448538578811690189970234947545865477478176539271508598343496137556842575506449636270747528595856150039599709943177514250882404126646027869609978912059530368664837204605074297851701714054182636317458171873140921451750094859559265217989854758361240964090579810028772539902093826330036874345981242331849612410180752791860449129631520518832404125222364614643961802114817762374565438900671157357807732670805634437192610828780609334319527472196481616982678576402869269091933099732100157053921641307852559731426753334002440446254953927345637283315645083277723634198232840434032549961208227206629251313451714990567103699165793308480971809071868162018541930249198546547808759996273492456729694964605109855703252029973528899944744709293534036123837906305905256082439409269175084065759330099409614985155073983981333807224172947511629327346520164146384567651035441539369571361734328902463368927617255964499685190091208124779830532709433422147457655523668387140803876913462736691339843163650916205278937506588715200953822868421683105615012081857180969256410578751102438862034873809450737946165611707635193420566255839403512797982862307904943358965163480096086677497365090646991775544592071361978286514157981667611030891133322301586660856957697525969120120263237348135059834588283046796449222122710200459609121137663889169744909367864888842163517130299245439813399446395930011336136509818298389295407636680816732322633853891702985931210963886143505633169020820540588878497121923300932334852556657975670440677557884286263472002957028271437797461560057130701300442338065596959231882583030954686636010587338725329079387669609147159891188885037466760502208942062274006565265407845987058181339608603756459559132396923597250715539522983754420245136449353056947342705208276898671139956052335776688927985202786530647467797803695356778434020792216302789258717639611523797076987744192497402529027152825307299555366546813435902750338683854864246716635616460062586507665685969425954999475584266798905025891281997718791216312302716048488124036321135101859931358257380575519419337237983538521723847010116969640054589164491854817507122408070372745614283776501072503285212907554696267510420289993294045614234578713219516213711345681675715750442943212284670771995814861587057321338807890327000198711824993092411132290212353560871135335143916839605172439385897780610421853392067575978530103964713525478156689953603068983399812905439959372095506582651322231678481140304044916429606992275171654656495649549089757385931482446077268748859176818587213116951942574284154982667000621553964324177196210686599838645755536862934655399850683168180330994828416318945402153110254778107604915024617938127012982379305133439690724738057412504148624526976712279235814855252046683872384521395673665717511412233322257310116549734578045892583731979881983212757968352590758873297464253545667095533739565449083534475745537059174985838085556486274855742961351516986645438620528054235651690573661540169348478047379973751498646533792566089861365969308051896128846805574349732937235279669425453247859916333690961346064879683031058641751213092070656439641740014993775686568000697474518350060314159453971557657716641992776744097497185602855020231284187493934839597459639949653509515891106908517222613902987149817155153436628259167422160666216412576392204471619284995864825323065936254192535129408913445755598583324640049994822120304589538898578070830303475898907197937390477802762094998661004191655817260698356524207955395737958401329478957207658090827211469818248592580461232989086996984932482272076502650182815440371721788595781870905816411805571061077640343474500739553137034800070153591544410818591677631703773475381800903194840351473928780658277638840695844119975330873695825037526602382993655465930247675812086711473161544525729259435153912373424512408949498912991374268437291907064578153305471005708676589535319635306833236453378541099009826087690292645949248111971720734396244764946527895919833795331372788004759325953914743004618284561946765087702912152356569426194676374219169808718126027121201381168122427942482110975163681777573914008071887758565752398701869784196459378555445072810933167337361495358548443809879655452455635981773871458499787388895870128312395265310935215450257496110348872512361077095568862453374458941877161865087341168986644201126761886248897769467208154040534272378985936920532409339912723599972429193028117649617156324552966393818444318195433247317292763458625256692350893893274213652609773281343755382187341687836231922322609968946083804783556772789662443839627107222291918542705685768163165794871092248223803785050725611378587407862420358634156353727326381666886895182456277059130248342777400370539810791540566954986956467311614580489083547151794892032072673490897301598398577382339998002734902219611138439386842568088290355227912488982563647017465045624700580475334545740023404051919390096041071006480501532847776062584270843050465717120796837263703279307429013370034508667318578941362910571781220792122457693270488148560825063215058323624078623466771742544547748907366586705699267687784502434444465451660365718385612342858422572229317951744458861601600147789951951577991760185557271315627024116559285900651960079048486015958278297982143936677026354920275694982778497121900027241703138710115164158652897178877453666026054067780534425662895690616660282773856836263030823589866191280494881548570699531913406915293940361241814034889218427965827496427648798826306084030264151887316865872368321844638112398890660625469656755419006227602866527710343934508813257304296209170124233514517385614512441798992564384927273654771893559813322085689870345642273710009068317348811073806588977990590916572701742457672406648675671193043475372124177537686371693045126092905855737174843717522971077249960674911878629797531653828539409684303564883883506582000560623913718630066845372979757418360467545116520978239422457609304557640796042430952119287655158495462991346639586462974657105950837471913267021409596449411681236838382970679254324032639592688704028064116554563070829291030263696598940729348993981652267870322634296280424600067662913569568311384737284179526025536358263641547422199670742736452119190509892988013967833850618041076390692784568242641229764758852332074379990361596519587200616565772220080939669736310864156194142006088052974128426570304703617635910333318273852846593912650959080418610527893817751363989414070859348517969087291394094100004987259713193854531456346831459381379045059158495791050876409151890170670664616687925155343703904678616433310983130258405322357757689845926374119201713474371521150502996932781133015465826786423010190004012627616912555995913070649674410841857064140992648899211858214425161324946734618404367850453089173705206965139412793405387679013449069755722942805802099947712869323222581930073560534778214277260266333472876025108729163701584333072297995521081396703821619699753440689670760303335850566160825584003421932425009336144490711785990858560351709565064508261858540977617896833378796280990604666156028979508489119442553085210260693614347407051249071167649779478184618792948978053393782589260299389095940606089395916017777986487817818922071888744478483349413098657235013208435299156684259072107674426383132826699423914161664312567047473995068055429715428045295671466443931606553346770328425427619660929926620934163048682675910874628870934786102669560280248433197693982353377699025551270188055725523438618727141424490368974364519588170460342803654080057829650062959484667919744478641821121454454743299357481761618912816019819388935985541857495055778067395913205260144518938841742454789591838803163550911196211339681901669152755903351631018429105571136944841899320681843712944570041687804090589749514781517201240185826432436601272111675364738590025806280210318332874286549662564228901408540212867344483281888275029513594100977896196827308608514922619721227815124646322663276209647167617677902698545220242172626396444312879275735474071312767230724789785878412844141608211509804223158642780878647367806737958113246511914250304175704453845378790078087890085986324289252261827264507209912012883533106139715411711853160712031483058678571657229663190682257530698153869453663904086899493487539391042223930883179876825252298070851587121732455775372930120155802417109593151900297924194321241683382455764401869523378066776863631508913231178937948978396296480927376949730341710748525880893904266281216936351287893618953819737920817777437939630693440319190778651315226221282499500494133098868679434975755324706575646296216083070440114653676390961020476706544108392467224127731422192534712809870888255891934977972079122049053342167568356724846433169766878024661029877508713140067059324029970557448604174499565083038624661944869815179737031333265779921219382378152389178036104909766449973031709798505350725359250582474329883615712598742286349421991214452952718512712285779680459080653176093638744438628175748414481947281283505028237121458599330394297467403413198693929569101885525924384427014730126928296037901241541604488838201566244237939788847235230559282238983303933691067574253632115167420557411975245305877015845340665997201726019284932645155321939206373428505103115516668900750109342221395875908982956200596799031672272028390629131468068550747177163728900254658190361267918233007363972009431209920446652714268939155264734413963647531888687685692506751358719576642520774787511906456225642270673399640572396785482762545853374688830863187436848971206437353624697565476878032803420154210672938002800797521770014440142248511792572611701463074956103860263348713190222353334940991482789384261873968316851315124289648622059969935317912375015216856944170115487689808307927590981585186830711770180319532204826567285867077135253383648882337977230929971948911951097043830146064172109284588196182343880631254899968876521789299142892603574843003668725938827077562623881577723573815159703614143433493213374227293368760067684521585059307426857301383940405291294726995686059467854426174553768332421198322621957854259761979377797560431382783576400774609875579332339306856253198200660603898957999125899504221566604184580248004522200105976297495242447216711140964517464426372136953144961733015935806222327388596435280340462867674066739453406651723447882635824144546988640401234536789854248631185180577555949746343376813304340209771047132953588794159201081765266664179413301217950966532724776571900885490714764892994431645230050894775239417568535997320960064949111986908848580111175192322256387721990854801447909412231365210412034098335021245971451273005977809753216057589671660111861761549798940021659498918493824327657902479631739616797648337706257401162004014774532519543330961444859739203008162327176526353948999806300137027905414162947116388036049503548483347299104339629512580424071763989532481687250554909373843232979231046903001116337298119980834973749566486357762250551245240405841534818776388152654573929882135644250146311672724897053998514118023013956013605217920532052514788452618483818941555235933506788601159041749320225124998628445863931577020856683641290086149563783996466482084228774836441072726609340015117332552620972689939012893175294818838585264684184958449289451795302901261274518347725786881014712642218380136447493066689494746916725816938270822072345686513374064481346140641781024570024728929259274495130093849663710463501035414261224752037386961844899710610929433295120325331083578768541025586421541876337875380144890367533814471198121084517741513831809216656713294018579442458931165074096307951169884484986897627575703210896039902854321957415900098817929280834326434844072250587624414398648068983457733663778882517536131187250263497996913871137315226150837803915040292596814447579634572154379595776517933932065990582510873630449479945438750824303138153946172382872122635827294164618556240396782846810602873021190409068483693240860322920117667231951933148932623816259542035289495557519980644170548124343443948862570317064023152687450752353229757159993691622820408399414849560560776376907866060114845451585052229354773914352089062225773886628460027452502523795620601027346351929301389648987386775211313015157925395542563644417422426311688455882810472733162341252400490893790220763475947401827218550277787825999134532224231955249829004987997737674736811758316145167152587743500909098917986899993441188524125973418424610615363190317017705164426503880024113206957370222584975413486926310323459585591968023829034187955934020042051788964481174207658540356171738778951858554776092255352792216651480513652136108504707033569963037916626285108799488698584912111187542576093852262743414115870371408652537298228175843107867296941398264772441394132545064984082313194961155268471839069126450566692552829321130394015768215349062829908732872719517430261159931955024261657592760539078321779849435745101896828165408295795711289510440808158389486109223729292840275090870716217798035569573007373388969245345759764936985885595881703721898657712801219889408168527546312948253534114051169327489550151240393014043157905236925728489995502727569934554565130975444109910614431746098438354339410717576165519634979460101461184722151857120933831513282506789527280437133483449056571929407989274654229909640197343204258082546689639130941459303335403991852318822077118456289154075354504047907207836542376919472098422959659205409055706531901498726653043247139730308255932786107279930613284485428280026998664560896890053132418808804681465112788584374809552626014580293009259603228867368438883093770460692391082195149166689147633611666424483094038588288925564207197729082812302574397153071686385074135309212581716935541643337065666777253578406877659162103332130435076350719878660122407048061139302001185200331291132141643130583984281991185994087988261608474984050325344744355622185923461862489083261198733876914809786583041191175203111676085734149695639786051181181066358709379717844944151030777968325661114350048775629854573133594483822657479226780125189652289351540943595651804213406071549215044072303900169679004661970244622273411866880251440252854667790879618848288278542005415525527778899749193597631128533187299857982418001264492109378336047041124376072262564349200696055511978162996920746687814727032449214314807623071854665124467158206963453083951804419851980497330447711564362009179539297612417496353235117272613904133526344731730130372689057828889294938837377970797080726612812841473324961010997408333882880838826128258808823419624721193795569964357594561241822481803227965513923762197639339103524347339700684193383193790108635952712062767895153357726887837894808191256500187821330351535060830857624541447552740078552526986734480130734142549068022256110670336261251150053054325558258966759621423113169245359588215992084563799924656275401974879415093337075668670147199189790122765438956566039859032952709651621786885528845558797767085431414086819762131842577142252030949027294943359260916575760496620260527339348544290143028406460931750067128869116832045158653224943403146770459538421791400210691746145203306596398865042710443123865970467757014878173101990125797773069368826837918639310013043382869237826480905006984976073110944687444428819343785999583667720105554494529495321607596166384965682130292880019111013967795379080183653988913447830104221479916260299927631362808134910377175681222467345486737048494408582841385415247832833970715990668838032392119199666285441188083717120228201364399901321092815000217793675475657741238841052526583940396139751380883162346064197296965266777784470655056145302201076154184670972767681127550633710385550050990489222452205608147744424547635733395204380556928545494557421145834805779064943928773681373710430987679148331830323305708142585113966286229329816319011683069890224914249623261906121359931312213868717419291971532491634384416734718657210023475276372690389677431486967656924121377201682993964872180395996000048869745019411557774237778964658094986416251658881415479001442838322325058926156401133995587325993346257627430499414771005781759171596740782678694256255623040017322110780097657092178524051824176675723170003459287198210954871186878344421334905869415539511287974936963032060495356502499800072200174373511323405679918442265639257387625812431865839606996493884112642685463161982148856237195633652443423145891605188740099288917753722109760792580645960314354460224769690622342727695655071364519634481074942501761946529197880813631794624636391020750761086249762539167616541295236701046155595800237585018662110309965869358684925571216929306650192437618508078296663326238366052269381561182923330687615791739307447512077555431862811171061393649099114479054576373856461254262367097359726040062584032233379860654866882403240216946605462634482556534729434577832282527259262081524272782486208978562495632797830744394895017215217042217031453781433774970292574075692634168472403921075003627762964938733977901596165712337429600810819987627460621701855442178625237306320724538968016579815946510002479085433151229628691661390567461559361412804724476932548664042572802910813048638726128814869903470428425093022488732736707220027283637688712964433050270649168342394278428874713512185321165920949007622514326030384021495908062765825974959020577487687707424469349042075572493672637525623339818896749967968613559319206950713949222964740818044604098802242211268157011098880596972421722185303933734254953749808701365143319468189488204204987296579042898448125469791058468760236452274741510137430487713022726623807615792489865634776283050647749040940692904084144875107950028695507861818892483077577542370421675607871252952054647439592359791310744790111365669872214870368090982223932281427473585194918711787172347248405180424669605610069378217983157439189131047690153487632492432550097447818911759366673431105369068585230531628296600892396987367235673533008380102781454775667191081870539785537543383111689999564778315375347221534928755290887697123863444680227946270121330066544214189092023478822438041701718234766665075659316487557271138603530923913002563203926604365335553197447847660199109034760195323637324818539061525485734655746213020278361729883247941712913172359209120765690017714498419901201520831441519773942856471028917151534341386775589977855883270009733355001289717199466098305615963517746231770415657720594907167393010144542349858646683722167119672156396506067946877745147097740930200832721073350270758615952351167340172365156462122909813857126377768292678761527816094052657230697260160254887649265762925044072399737244565667989305750992947339766625276161844667599217891930914645943529801428208983506987870247184447649999003878720946937344617775642757454104231233440303208575608301921193041002181954746973066522130939767951245519042903801431263219514188477106675607578123551277548644926280816817051921209915048201800821034672340345430600603452488055934987864309766817030678569145157569531014352923073469753864680959142692185737755535885912269965958106508561802056110363259955628400277779307863935507460743030200268913630587497354138567825381490675468733180002773860106645572712357388194843057501347144044650950325017950282679042365522151279702726433993219236859490968422940265114310913138872982103429368055920935845404002511288856156132632140553667804304392207829758331865414057633472942742487132601528330320943376602007679938161463666497877928851625594226708051796807530301019883715988719256279886499141101054402976701421509250009731871383944885401419962985968405488134683685625649034323057381453491185085213979152258499462866229237485786065618612371144930104375169741737803776839398442227909119583227675476412659397002551991238932944862677185583428042154554613504762723973872470724397021246339023504288119142684835258425836781170802740200286312768960353865659026941427318563534562642747902377925311218993994104279088788525844431871117433147543364306107246586826065780348446518306512849430425255091015324506503343087545032808634807718770047215629779933092497981200367815959436868344938756643553606738523268632398164678726560740802840222840769180435189881168952431421266576210525396675454793715954137825415533530695098731653719851443196205716495179816722267361386745934901259173116274906678920705590552759067613091918948517098425420066514759900708031321544161199718613740624835936510963312048783982226983807312331726332720042942381114336225249709606761484249103249808873322320086881261220761062435508853639292979735240266112290404783259209877799245686939792754352129197538211809716080933874361121000910948729094299235809593053580128528161317945295688094974142949094241042956387073990658452750675639201042308176256047526331064963132601567540436324156703219165520121930709964974283511046239790139717070929949090786980567882434194100754091070359986214816469336818279112863498088808674733382917276606007382062517204013107609682979351660744163931424205344441889337162947889670649702517931707391027670607662618468590035609116489673933016215768929488591533286630764610494702484710839037007259592242370502458893740369007641358405645760477744249453023160559976335330985711084850556323828134478607443159700548801256625549033185834567448559486325000722037638966298345998939879308542168772970289312278645358923949335951298820181230715505113312742768776542533606989255915388664684386308343702608783748008402298871608571876133336804831932891466038153164367014441555120337095776164179246739853332587155931126112924087230598572979468704931298620151724780893963934916870079437788331157445795384864576475559749914254165693648542535355137205955296421048998973431879696265443334945181820213844409942858559046389554122348289567638292187335437582704129482274644103232736941808459878033401738593421866078231768437740768799729492517677985763176878911323026380215111642967418445178077794432425629694399983302295303994529429348677610411720664055987050647064191323798535021904171517188104197172877721987248144438770716158643064112116160960401055176402116683245228968894874870638156100820804271959664627257867885627770756929706523588272880455216340779230649390976660551571557667503818163799713019691470707477270176076021493013088980239607805588761037956159629288348005985382625913770001210692655558645059991679918172098817460716797470519508904342303439879324325826261095121607750803423876650225197071676249457897478314180199194117105671492840928618938459435661565911349059767199582619562572176619331007291372775691190695138742082720663043930214288094952088674131420957828360019108757374639461995979125418042428338292121189110790323606357569633667996263422746212509869187548446459930017722443728724680384788568539782022199019400099484333222132474426669054673985906709657159622959127204613921579964558398166314425365977704154567282363192915022392872563338022978378895333561003944973387467110110934772642165167481396162596453285081442466039363573205390556902333752328229526196390853042797116121976557436050203285395241444085622065379012343238841535786738328049012826753096520361664273024609185925619636225228992983721227914250898668767230028119030584397368459159874541863727631979474148629892667437689280811747779677871210628916087489707919854085135209811910856817240901164332540204386919304152913521312545103272441562722668407664383651520367188044170816476396361714797976644256602464580883969617179343569763634642907340094345635425487510590058685759107109819255857960138253765712151471617410306528739349057219254363032269217665907334459414607862868199480795109503772044069232720622593072437105249169134422766882931668015004485694371002174719346103279166145045750862499777844696576049259004921368131869293569586236268772549538283220499048055860546018658004333731549377086128484293919295924516369436157321143114090338452079724760911327558505955929950987063293171877693742395632738474721243157779748584288574687549437880694792844559808695403496450132212696807004311120375603421998108805572753783548329928645238030583982089101244982762456692925423017474743433046817274531938568873642030736438937187983754903356654676383297261445737377187953868601761697198002959944080758596924483987722430307303099262182086024576332978227978141072849029189478606079703368070016899747419268894680576757552708534596237458483570013508512770556432338933488023384196004368740861813193993878525756427521540289280669911597882367066838879521958309072671560483747686526388291190840548540091081311944800636126482070411306575331849701140649285049223793826741075089046772679709384562400449290062935169080931021443638803768668111225430489738880483724441010269014586179778915023958621252981468897288208342115758552775221106074877191898893668938716704709219662322565019786410581198085597881885115375161231548839945077459476901042783834066689007494014791007603842522412974296395041707201364651724205688605904228462122061810304653177015970456060512436727347706935498000505181756949215760314091626170934927977558505577025594300683802098511984334102282595659003578082167358532583169040119874195620009661409091937456465572920372837912475650509111310249576319037307383780914257709267030545539976616615347645762439105957108139455149344442761775043861882824538080289274724519137816383052076598970196157105667648379768640977108112510958847826452328989173046679194417711628371246211558310695199452173315095837156042830795762165434924463676028778911587124944883839675523195714319592886604559719831226948445730211118691814360503142908894851540737730167850892190025880754290288209491872848214496877552952301806170170027770007036021936419099093762940738360246993125924472285331994624325767525492671753602328467104992306922975731018222184059039536032973070329873284115199676160333900465283311537514315654297354066803874339951538146050737240620489355042308489793444276669421844816047198963612665522520796708992937668396345826885366555362935342089157123824227637540868922579002483190357489580461950755226987828874274438079560579547057914950619919309012407043530836237464667668440585061248766220624193399449926087163322441301963322659746937392482074344521855957137895862075069681563122900561278817049617368654353941816134859854551631454696733636636346354141931889527123933122600589025969362889363708848359860308494416547245375571183820432367226798770453458665767576323284211283203379203534817748163016576925015070414693582485693775215072261362469672719581156259949633008411224076487100135751120963862514547386630653639562654311275504274811843143359817548055543258015040547136336138526867313416062509976023471337367365147803266432236055437240003441278370885091548096476940709952437405864064603156329638793805902474154540150176385308429145447176303344492368141779529471719448668431536335890284890984589871490615830627633708995477815596270402134066468885856596086859951517875970905352433066067755994801426253297529107879178956549458151493745973799157390646777479990720143921096626322869987249441404521234039601125927983819994456507952137557871428122726372518808413567957995996268414705092379511011192289242937539906894239939107740256159736203800186288300501422097786007669928318042444219551712203962888235625745505089036403195136315443871566070349143658468603422781533537155896206160093153117089960746347258339798488538231299066088758193193161190140688533792824624954368803201489867584365234256673328721580900384568283255278232303252158969441057509573592107712617342749631086119689080108020498580185738329143392899404489075052215392937033270401521296314754487205217168491024234431783450237614915334787943335317683406299453802640023457945318734347316766762039646953572886655706551767957022566957534621371597330248235176995080948170612422969779970504140446234461487198102981307600492571431203157439096358923485619151301642948484430900845390438108465772195902552429245418909546771336634605066186358880090154833068741010305999903742645523433747076879253793870199415064025880546166261032116270313132727298623515257089574305835829842663563644648933769685047243802734050325291415870402265512923360501440079229908284608288089535620250264892754860220142836594768221778928475694506957946682642491577513252394647702052782032060356385186717397062874740028162341519357847300786535351401177149525832197259994134414417930465211209156807256887421845656915474406211026937169460960549671607656486214515697012757996847532749292860212273474023839024868613802090899220745429828129791427544531774414482094480514286464768322854219195970730658012532251126957396989725451436927654116301626913667088075575364527579993804509900836262517071051456757546219367151980790041292668395940461306062497839808704227154075404678128740224332317898859716245257072759846994719396805177982600213525703055216849134915761582105134880310039156925281050951647242002915263937960991390956585156851294135389822851506714693504750050977856180257400972335243912565827303594694024489932035248682372062985367880884901061412554426167934307207312569278921729931899110595850351572500662644486243187229890940638269456496706551398849166600012244663002706194643866667974790600680475908584028690980016798404919345568029734725204163423224836454416799779807069369899075535624216948536034103606483598640847158520218319910193616806465948527175219683667032620435177800704680372238853404242900071946376710419315194800894212981981951344520615567276094113273355593999228616310352029077143836011343425898086521384881136437390410612863704207291175464171080083738203351199249883160064911702794417731323281931469308239427381372255344359891999559999836670814726477080783260231910198115703670836886246338862095026824872411452052565903592869129329861266519079861922449452103735831076002716911051936195480101257819871142739307979237040453785040225737364751623591628094653368892785089592997230944855638916901558236792683926380867465949884251827344633220543958669912776333220489562380941560370391431272974800741467859387676511742023093000865212364024274866474983857166416349993389341875462994019724276247783864641928559855624263695222423314968428327874227146188654307689509087962312268390045534513659339161910429091725193736529685470474746889445974784483064115274228788360797990708494703360931527455611754593681180225853260741628313720189065613562085252408279216586546438013471063218298017463590164775030074843250978480256549634126399637202076244795861684369007411939519373917936465684734580146924146737383318191006406244507627598668429814088200927855084589044718484087621254609951523058376466600012290191310452392940319267540292734075354437899852766985276760552782195329259998585768583248440723958217500473192257487327474803839162747433566049743249171026851624445515522701571485351217731621498460733268430523007595451951242742900115776335554031659234921294006307525443325765664701961721648646831266314426725333517282859854485897886157029038716756696302543643979848338101403363997760150838954060535526282437932136011179642398834258579431987871597929293476698325779316812654547483369149926828849365133381820235526264142684446968596085091259499279808276391373798972859498188467753124403663287422641386060763491981822327725372193076020140735037698274166469802079223427779374157112577808185816512765986452451601918365244558582274174641382853317958770048875483844541827398285869971648394319948398727684861605437088204470260635784214088505240609544991946993363497994147394978739315083798883462044351437249552052323894013003612149578988900927474291235323708967974338250233479396302927527667819770271019661898089868619597336104999837831680651363468391593618527687676224771951321864318977813599812672582817546827863229940008369707264003283299331278412881523704745706469325080999355159862161926214402519460129886091049231889409314130644994843385353369735713133904553670810628987892344267434730702886014162033869163398672820409110372313767400872437852476774654018737633124383902149505091190516142480500886262812898888116187033847073339474298054289517154514708666973133438780166574727068334974227992441765276488697019064447457639934771012421830563455081017822458460711032336180463587835222411802647121404277702296046394200983985824662277808836845524078134176905473672634494522703714855753271194172624029445641676521670978839561076023300384337229237545594911100110117060475427702081765262879883887797736778148724935184975693036682121355285563295587619650285832028404178191192953032579930712458504849502943020376435400570026996784226549671021283913888578994628599694618557480454693500518960871878681074566183098943023746140208815474073683925304487130922661672692350594946459712001336563246602571428293108635555295102981466429947928429971881669074868605050021039169611801919932349713931490752172986664247209550926326759006761537358328926579355186149244445607606744806060764683628794165539209631257568623932771901995706162119458788217766441697211217142950138372557386377019295783202786147625235448174312344864699132424301206475793244794318190341579768200798301668252805863997288607548566722201561909779903396373762314353501415511410345419667290013353439051622284508875710656235687217129711602648801080822475295873326948236740888064423459004409342179461023538434597566642670022551383814060450153514474194909114145284923794806453370562660722018731369814096605125792383532078275993925231319338706617160814761044244997574681813068971859410626406296625975260742449754890637264945345003249414828157114267325439645270348549843535364376312760255206984748231077611678519780989502352383124729121309026382875469644610303547260090371919185914163369532195780336787468300910330772240690697621890938647570837491764837580180413251367259017427614277782880190772436139638453882742996880775208709423327927306021554815330589026238495691122792777795367266211222642782436342223713884900843830034794379468947175793669059634860971087132970981643536689195435809598083401474280360878088477401220842994539169076799004090190802318248437920661317532191977949490198033362068681297572655837426899197556392765443340397791231896253313724626479280575813969313423250534449934704542713455230148559443665440420457338701777688034537288892924117639598105472849569014389329084225966505801151616035256908609236228112349855744586547547715980391705136397042722591312215960456898265926408058678888546179951717043259156210723474538811635170922574966830409325730340134933492722073927169107888230328179461952922160118805402304209143680279910761246878815178525118671466395868722265966364528301509748177560099229540535570857546952824026160809079169070120385564876729828457081902804393409588359629060263318296084215294089267775632160073635558218008401349134700267691372607728445729713315477756714296914482047601503142330942015767292092921429713544736405424528738574659288328817954751331329483848072143084797042430233999812854976885678903523978446956819320874663501276998353600572534455243052242077790274988489374568602721086769334270286309943625378669055603833709636476407178416466893782925667498029737273040701596194854015851864426233476865158356975241227012143404268814511126203448567031820082563199178244045297648948548655157366150737155681093165908224401186137672652738583673796812977867462392272832435186650631833280079925197086228980755529204866975338672837078150085334762585540513248551904912054487090822370891426694392241396784858333641131405339870149428652699014088812065950003308518025720319194549000058695615635212755702404995505030230576045245070167025903754497972247952781065954035026976387500358216611081171394196240269116076907519653400182794610577970512270906092971664570739262480150202004623720255972436754299632807285376206099462639152576202239990962740865487336581758397860245892360644210338541629731253990654774309392037655634756449831923802782418307532114743429098741337792907232537367585671920983408465936844587730133214097735275691662303137009631667251493406835240380455589728466348902727814016691114658743624371361931388784081085708364727587782784698147466640181039388519653617098075698704774899366285505431761496834294206917616246857862203781079442040064765075145183957522150546800238087771755678446963832374789774455119767731013033063700059740224202947782368973642960072169896772034161186478311662046861580418196374821395518454198479665653280513694536573250981265527151786161453932384901388367753284356169477184861687394935042509961868420290444118735364026729809264322782848478509746373787288051665838788705504726636305887217676518364986812037869167170937233212631789574139491153238345225159810416330183504188582023521783511918685913474869571136355929980500446266948190419783809418212480108189251590752943152862766728588357992042799293710647505864197453671807378150234616795694735508146469682934656551681614814841384321240189539235664655439882621711009958203291259017095331373738540625543531713785820429789378708022326348277581712842716501697476079666401231529758390476804901051531563679169007204171828213512430120543889491150155320362117672684504960495256320119091620831957733638529043207167792233262532125642683072970842014163756561901886714172323694296991842221247361397545442847590310596478543580728242181633999584573072528358840259888614708352929009921028129096255178687544889432854600705718715760656711176549093256944333368488440672601543385723830842447688133662809646044729034028528991269083712793737256646154132202483205485449361453946143429769710377875475280741731750996466106264479366603915946037277338228878576773668021174147945776083241317087106297511694457024049917238318018516136024690904324935583832581580082717052709411575078486007105378475972133268957054555065670209657427399888300281956843919618248444212176488165647622522158665062766845143725958446553577193916261846411656230123484301056145458944296305226515857297134173726153150466068703987976696651366127805906759801046140170966542968386841265121020146670564771053848847062075780265786678138347351451275464260307376462474010549641560155124380451686281175927342963878551770582047457415994104128208045310976873902200604893897842836495775880949560040324342820691138661336373468981991819702538288415037724718629334678805059676621330483451146142474221839817251689290246153529435120498040959242138708381966546309247723405174898044692195449433777782630320519690870211922546152535526571861803524879529988460372156349898306420545261317726819722588536188798583917971858596325475418482899861081556339719716177747541716387767391666096068217609386788259663720120126679309092436771863346201843425469145624344105479994120544885397491000375871150957565816004011971887663540693246486229619823501982070095924124465779734547750605217655009231756571308834304980625042466336232550844444697938749833375585220346787312325718617387610108175841992590311608124138740958950888774078757865723506316909684316754019106151196862134926571397294036962797551494479406220020837485681789449018910230050066227525885307569195402329958162142831243693309207482183774229290524050340203356541389926118731408496485597945277459450045426412781043396587032183065272745367998938546412017729434092591618385890657433786203122356966533154288467696470862431093462804161736009939097410376244873280639180160173896121710354120487634075488370453180541712583083062601699077264672047719251662219070324701982821643876548450781799060981148799944498080633188535583281778904170961953318536359044719684622008754875055228658792997583673028606251073393926302773961020198867577393356655936782783403983004481601287243911628974076602760433788771229038355752867257465340288740795556648007153245578410287062802879818534510461724922257100080393167421059195265300720979457935703092114488371565599520801153491699935012960790577244796759032448862773159122716722606617814485482128542679802106738257962327063903102817259517343613788831480326346165287381245885015170867575432900338527845893842740723698383065293614811068269472963931127360853247259223386880011849513556822794277010087683814543684013380812936250672561136760413439344281516876612517879571863596873380658773863717490303705372837023302210978405066700896995455726752242642176493945941456386747722162914680522102814384264017816103030913836523069299455759559884545533507566339630245883179303855197827572477145163111062823337647821265163999547438046971386133188285283664460286650845820813083624517995034435805675288550586627095916182481526229686703573304714660374375539599142854860855662219787991159906397836085474591265093393680850004236178388879900146375024819438474789067222206935555905054433894344331815455541059928847191683657763375402762533138580652356330389507774709579042317870831767944376581374019746834148065565859001476172326152486627727665960860140400181615122692172287672138590643315786705831755062354323535509630170549272429267112401962014319533144688347138474975407415164554277132535918108212478154497986395911628110724314661534156671176766530991664422632923311177148604693498138329257432471411466737011571938169985581895255764787870778848459059179694375039166352159130595001954126067120628918028222898820598787746045941977853487444418254785921937493812598472201773971587894209489465420837046869527063879046804595203635819491957526297997921111109428697598017405914982348740696389411521631578125494956506511345560819140514594352377402652588589946098997446420276664737733039918434066807769765714075964632840518325585250920650995664184075773539744782949606133640554959344257489283719135274580495888656176165509081322535703806682897083652061208742877743214643059982269804372814863265234328164775485040069063971609972880218401686757554865367412202568484377457356166839671518188849934548055092559116392851287670446019199860100429411911620276145551797631409632405715235539891350792042818369675077448111120673332296816867209248092897882286609104746180470448620262278974876101762362698768017426815616344293450192462705441632256312247570402157640125853958187001540183676995245583861156751056265529201624800106733045527443077179975491121625197493406085382299908643539453158584283047818735313129288983182886345807408509691483461762801630415268662851396968504640386074947234130348362884588398285960996858986315769672333147044296255647192376247827046204777516552715329928867809911953202384577673378447506044835889646883332366263989953701285518595363097125640195202856371740977344758304390396125100094803071822632500867706693232279639734158780713947956778357543260694756276866585113835502323796859008043906113154029278982291965282927138273718128473020482087414483713461263695884090691556429062530609010495992289140186122727093443242259591106485173079855682664632840952732696579616134406272111048282198261487399588771772570102467745851502170228578673871525723769427803540535504790016878601769090104141292447799239715811528740252423480871689499534275373813426995477730403419711364653382619275279169917795963825120270586563876082174955715130554100677935428928665495504201198903931972576542544109058748674555415382139640386523781658755673771171780929672315039997608752930617949648340021672706851739817102727076278933761849843521101349013349619689418685967210070756316571260391767564588138995925426913470335392856545493637862533314221864504656534079254410421030832618017593695092945162712971470524232852845483562462927459652159465633583359189407517210451447638946509738005777602109312495928508063222055354711600008574390481315150420248908529042048620894612480690828759572806964037958181992792464461839411775881200381201512525238172121010332956071804397348176135275497927733859076580090849092724146891971865500025520077792888480989998043720560349795813827737809334341705863374231502878862076903179998233652732725738751216298500096511028803730214664619180480156953738029625195927314452180282325973258525966981083981584446161125107281978116321320726492614766090717849903965672753583772544144227460140501282022367678233906065762531673813797607475489964634696432992064049712046364753669488886656755871128148361465526360150959287480193040785520774862574571372534779896470353016204287566551834083176178880638113464033611138005118753407558296742072689620396584356043096770150633285915503506670193908638348628338660332351784875735994716114119585664713125364352891982238182810700691987724054854958861851704365327096506347768159743658257759886541951517109410759890032369640521648140595183201594060804044049091838995935297747771507143120313772395759871022446914776326148256499060303369237448509381416929423757322900090149769342866983176472957509657568012181542983095608402125376942070054756898780209053774396488386014637695364845628345497652435332060613888475217279165555465848487943226137138750514352714145337414488914497048602734336441798249824311916293274087810520331538345285314695182236793192019207784478597708174494441727341490230583215938564265715775660001695060843945508204936881020025120470316248274639293399818000294856432387493399442025433951243988522508889895108733622018513933252258716280917651529584560607804099685981291329929047875574260460277418853187425525357279615184080227785902554648549587687371314599845805023639031299525641838738901419426885896749720113107670418535957580143946843267042514375478831773622499826662773222295097414704365370840915020898246369193175598175754229477331206155683382973268705384927716299419187514829752224277703967139545199516404546896507488983659131030906603596547560766269499874854692498311122992087056350290426665988715123278775926189181341102050889493619937511311728297018928214209232887085950731067822266796088822878069250794499912587846547046031604303090380229543266508186639119989233040818413242098725753189032538731659379474413542386840942452549754157656692853483168118249885082792997984753002706790663505360199477854670956660616722773459652311793854884582550404878391708355755243577650976229061588291480578987005595857341245646936069547080145744989303508907950167268625547915505002053808477223102941457014132549983195915753760332679737852725422817748444342203246064938184030759003375731749416803670398267659187605233094751754077754841153904032771725427413634149758629400593728520681950568964330134401935013198333487029726723742774218139443983925405354834705244326805250306479249069710315185256068909673447791732417948576077904938540049566909076072528474181411350192454188211461376744702303059927352794293546711529897794684103997737758326446381262591155469548163889061468559049903735289184544227665668385835620829039416883693080067690317996085432726833935669960977851724904621281711434204562471053081878555272574889244215074487696914097277956291827764626900946596836758166367835860638867806036660879907556449285504484232013042482780266414772716466005428713632512115180837782649518826813347534587600064185308189876591207483342450821351342670351098752843016405796814300602546942513439708983911061162417133596187850821706052671071192388660297881677383963211147070240438653860357545199570647470041577488045620818853898268276471161438378043046215376398024168811245946701696077050349483812714563293178082150957467232437930252218527539192476983185269116298749990753040402453221627404316526340696724849123563762053819422203896609822899218178722810872969087800914529773019755397818407094086958537310543579897630568934151978921153681446350688066752396735244371868157369217325100290076891881732830486306078982528789528419118629781208511473677659769162802881209374178982999411145869805367291974036223903902545967844544782274072330503473075939648268490883284874187405145546876015615932721313950002798844175120085394712007445145937510629006630325976325612315194816810963564716716025162521270862097562863475961177743939700152340212276819108887311265715868286021266454089630213050068874125352944202814730145264289815735103729905514987665375523578891431781460806298260957003640069929408273740614413851600625616908618044738008405825777305231926098425843308875888224380591336874365421105415365825600799039766120019691232462236314391858938861125228600373948293984861306507296665729449733937380013692189707083480156951318033150173408489993905455398812615185094091162164836994751700589085704868515692393269280892547894114293548417214007654855111658513605966430659797253013326794057721857602327076793396465057120794422014378480616852251494045292697696590356199721122351222133443717063347329470521764634633658839365714878214823423114372130255184408137691303993632232719345770617182321449056560030314488273453136044898894111885553376931967668436793033195862956991777315563664926123682889205995784484453994428220194941882668306765425006586547211113641981021775473664099869794147822233772956787044481170374586359524623372868625227412876943986201092958905197155888876770217853867022703684438348130705052601886582273269290740389336133256933626113445526626190489018828273870321430691202547561605448051692728656311374425154967410949689215695589111792528225019392118778354776047829639207102019082556787113762110527230616017934108012837198837890921996005181861316394498770836361433511717019334746159894322185329304762453233966315201548015616554495182158427500332658118564053198627971211897070228992036829115324225062128204902749672847696136456274853807919495272345305675179161441714758722210608571806062326644544891236816589065505003096546379291963499204191737248104433941657034658847155718917533317802991741602871797192314378796560103345533423595974348886868393900933232849084229169079302667615586331821059258546270138323906297118983772239152201459681853449992466813231756805817249014476617171125094684276661233189647591194305653665439267904599395353679069532423635695575395945501290672453201071984695629329476243193086584802338486593007433973489090483441464889176362932269942183484181372780685490441299044721061309155311115562753024724948127014858315247878615589122608011064954086121888756558555312966807257385843501614672926059886030564367083502998838516505813802504254954525387938971801250464683874664388408785905111202452716116887994774977260021361252878067397116638953053415839515321325035975836471240719721059261655167855677671415912238594372453718971395329711936238533563608331455982750663051448149754984574662939294371543652269336170447113370101796587509586294606111412547733723848474107068966907820587907355545714490432783197796608885388968092442916110859359661878314133791997896185295404820551455351204913457199919730847504932155048361981193881222847274842429079385502455805023464730319851797621080082837378308330161068884401356838260590314756234749050360057643013376580555481554879259329723059858473365690303493883375520988670032926886219639409948475564028388950594453352185297604516576150970821800258281420504102528932060436866201221515073040324765542481323649949771868002686180161738791721798758932864399156381583687111113730007214757555989265658864540706835505226924803791457633859608220537910148100602889685421652882702026544516939411056556208168816912719325634732406453526367823358334354122581657599873616484048486711007497248086515106907925333080818097563460321559148051860369085407865273958721855681231597902056773922469181288575481186924366710677703857488683662186594459224667633384247917621880533308889836301013412858970891326667510681620999610347946663808712893487101452802173862555611959638667868424532619675310883135136367433440904269584826565305145704410097570093521508729695253671778481626928668581753075636539357011288706431624343568574904409351307489739772538726194246497647501122356069232470301039273412014275782852106018697759133090872131426005392744361823192403654487547940660697048606110924070411013084410218220246137148901981652959666624095192820881034851655876148326606656091820252590208908109475505459455361811151219180901079652240924247126791929406864515020888670791547273406526841656776671345124658166971581846863887491543526266095325558733142874289195650045628482103445034361655079122740118148177127729058528022643775870223307127257268436841964053748181735377830764854198105827383277084979667026739054083664188406164184199584912145141151683303069624008498974644823868713024088184562911568569433377867871338321827466510261578446962906708169448553090750849020197938519632217024386688920592738520996243067707271059104232748464749420698066044271796088446525395260294734796391754676605964029488417317765417574689976835952632924811542307190378917984170222431434355313812901423967805081752231680395855310945878525543931277302747384592423241193697534182796959992337252583476632572429757470886186784653560460435787535525231092040346450868112428015679191541816790453348155731203468012434940807897703476021248638654105728055707660471611043961176191960088301342334725878948639669820998091063915761541641237286677291977103477439109161086085623435641016220861773993703996339199383890320833698898924685980374799424954757807523555683311491818011514690510461760722668089211289182318322581560578810513825477981858027950586158873198344650436256805644712482866226115838543273454400132388845515917733523721611891045172462607033239814156965232258625417567046190879222892252161250727836168936201902504832297153088912887493842114913715444803683297597834361835883680771141962639355370456681027697245309067599994730433655598550858263442591991706129689406531913553265522044618649833715108098233645174432706132185813227179932838837377805436956449353437800094578248081436537832023084965650790674481975208255343490218615751496163652231479821220292551047165588858459708625480560510183460224724051769757400922821056987659524344129163441632135736612419871294154424490281558931960069871621799354357589571323883756675243597086362235613070463034619480608664087072371975915098685905468676434720410497716232111824274536584982621291609763637382183489546829055621335847510356592786152717017850340041272265430901216798204715730974346195742467321802415897655481966118025034150845791260013592205953692783194137715291028861997841340201383573326698730629957006453672809595843853975967055051527227543678758718496187115345983129247469474548556948799153582369654553074553547546784527600665941664808870524925914807992406621636969439449232538745901099614317779264085752461672774469234462478868809159692929922136754141973492644944730298854558078015308039824410588937706693953645835482375063384456880824808633765543962994452699896456195279664522044240694864688587185314911527896087390120424625041795705687173161993077972610302161349629720753668818851388145763736779866966212045130677430742407882923589126635915183037253290049855202391002776188185591501697196217377601822913752718483405602017091059606738565417096557201083005385173024939095752116675174332869640622006175058715558786389745001092147298187091971364770773310797183204145073810029396841597052030511500204479732834360688540604429058304263563741384166559308815577166677152663244667356496552232766918886020266605014252390761065914566489117079428896206467801936664477750380785385296947670744331301297503287639695462333965956718071431185548854161201575619328848720752925332019063764422274698999924498203067915702961976620306433220753797355887113028606017726606033891920821440890944324439708369265486765087696258315481842948906349276627795173893561658669838461162134979797137056706077842263501321265015492377265728688980735926029918978797899052913420194076654207722884586089376299556092608640573015366324228101222504471129312250260707631033266682073234516163754175054849364929191468816420071405973658606760650080049717604647983663154325930677670742263347857467317160211064069515250074188131898060684015573956104699247127486047137488546403466067331695403293696018090760072314999174452536008677898993236334301656783913730810045654794874099036399537923179101066294527185198408909199876504120363040008568578663587462981245519573133915154984840273261556282100353762703213896369329028968294417001484191336823734081194447799148850418094782575188334074083110715088039684242681803623478999613274804334100642415740757843791312220235151693649917363952869714795878586011992887575377561865625677213579585943248019327205974147825012975563388454529980406377921883888688919684699679669481183654177353689804972807081591943164802786728618061927282913056749784302012708935374747808411696601713287658754390228965146595172362722737798342110197426553295692583272407202884476014589735892243192238756103707385849461065205168579908549065281955365302843221611109530947670815797311877157624173682707934686746473645311145433871248154332507964528334998070691420592285615472994621345285933395527532852530525145896227173156311554941897514133470569516378653969415946043327773659184769409218066970385825551765413922349441560498577945305729713004935855876082569484015639957842104700103098056720456278489207043841522358843332442097662071893818020392026471858105956118319104884327215257781380124588883805621368679004981433022509132153186840875149826156701026389093226281829703889874418108148548811631364199470320550046746692241187532816977630922054054600419427129365130740374430848779214424770420404178913763140288996920328052952555524158112972948102463681869596278575391841779036293423465006925161709899452113736364779666034192246167770356620469611589903129493902770384553089860046617492190979294819661676402718500955280881563575206015334964276250674311064449684082604275422671816908641914153208036034275916855466249155296055729804588254170241455363907889202892071699314652151651840342232361409468018302025182479465138751585310314670375723132083347161707654665971909462680276165935961759668923838222905902502502275314026659323998472375500103350618885479651793738953300657590557624296574912663869433220791251445515964975977559090687778384852487492397665177205757313822498099148309278510880994174822665479273150922158973978307551432420072022163531895845799011694387399196542012546406917738181007708323482767431819958618547256258681007648297440104837608466421796055036910992908134823439322203783420089952816700262157335320745913117051644172431790844722504841314270785278127690747568149176586352036247394716641597729480240475273500768011075288943216949437922217166308507254874788190983730112822967964816817429300542825024483772805363492607125779217963885533394977282103803571124259402957757565059281473121824253809769517502051296408205354540627686778983428593940930575805169001800631337646080923718031956980710610176178475752285576595361677789901666535533313027467944154038592066075094228599532898698881890877979644998488309457863729568315391720082086228288909441774356508958966193250368454227221889967806214884109985220864249845245111210574922553425100695687853678969212670828061733338653643709670983000697399453102640328399354012120514619763154315255800586387478050178947337667957570360018628339056703060246606931855997975319555475753794569899028504464512917794324905001141432918112492367101837592566806767373917504893916954862790921784259385835833121060234938174898509595116604587642491396482700527217473590459551155324866862329998893454159111078920543775026349385881153564417310869508278542497899412036089785825075775943982312713851286089789961339971438720682497934886127184450129089783916730567905194130060938984808093236151316075847219175397144182271041394715279236165539076850389011398065937692105043746199729418846559402656758431728994556445386108934172799383874219989079947407570727193132770241450831710341341315458721421963217288091925453009485644409247948421681648188018005925772477318176148847081555551277753332379670758148801277369939924084521320305502645275022370695405045669503805075983309233345629518288898965651914538088503027862928821234677043263553270481387661457335448481459892011387284639297433194589307557170785714006355288557384509119498771752752170691266514030469111350540838187712141557111381479821068093434358166292738367586236048900698089360658102249715230303390510688313782636354984602474315469756471240072392859470674754580443163346733975557398132279961439412921089940956179056747407222127362687660624961514763399834160124211608341190483741101663996777847534216935659885630408557768462698041245564930285539168966688477070842809569685482730521157529924056199058558935078449466075794222069217250051156711905095022114793990754810599896288886167405173184690133302138691207356528721637779519478995154445782857851655961672345839133030129688725284148150283580952026639388945974323528642366203584117576034649039447621512619238104542546901917383833677151331144529342212142048680243433000469456177731704073803318355675072310348692685052704419721790246321016723832918596027047680017261150468668503624388198032008511023045757110335364322776642838712377114249207384137896452314676751592374556034769890896261436817518589357834870202523415408363752945757210482372904530132731629649651546108853568432040635232330983133133290265820348116817480288240498465370738546785277161807207089130499769767672476357796796003906536821773652774665461653794737073048415605827497146238335455630923564510841699977181406078331819036309785530546314551221782894188091635137872781739449892454137177229906141031829659931967974143562604797417575937134042544532563767303497586594111578498068481200503031194328337247160389162540501440723131483456153704636928257578366070529076655842740147218590555108492956605809763218007767846204277878881366093463305935549037514590536611762442363431769812304176015788380450002345374593888587247856626145909128983619266670861047764329315448941364760473422315165900914611599028459437139450314695989025050848351566266201973126300449999943653180195729697298223777965696209534881690381774072771654134310641501699314094228573437841300681572966515964466054325355537522060418502199938951768698263711127979383445789057496328511835108197592648455247132532754735709704204059182992351735977240027782449179981811954833955173808300442731782569500570047553743391068607007092312060400418712403419500816700812229334434779037289479527998825270585769395423927153026225918077177825948080246998319829997244675575524049511035803565584077298081534736152460308998199173679390817725323142763462344135606492637074415390768650716625106734840054678131356477741373184666725512097044938722524576818128350886530758167222955296024230462902597107248831088535843649861754421077532029930982745731529569030456698385984919611821138901412348313762609571660054891361365174439802535126642470893203390509420173011780350843142668392901542434199673905379740462029011144967635219329268393940322538241518867425390667935700589298009059700518154465858427302029100498560854866394959733899602139439139952522414501647396533389243687105565671107167461414793012881720330167671387575996803998907521936856004341835323523949524265063062928892307010558851399870499008889122218043808003623413235145625136963218159684952501116870868974893803580104454729498469538707273585533501392439362572457640536122456665298239833423665742575606623208126924399567238413885771497583768595778870373754442605999031766649711237762460116643187287528091138704381253759198934727910764884412942561832459151420114003090670843086770270844741030177839416434119773833914575082765713828243725026448755459412549824392490431283196311110424890447835348853998466412805279296072827656101259076113247894505605286683717935949762203877120520238837757713059682443865706420020299430784608876396941759830400723219345237755478995243310351462874613542295124641473345186964440632116980009534230144111625091586464922467172948963141180131779529189833255669273368474910989066068898402767875754125262741788175919997134409876882393964624793850693086235444403500106481606863863939523673266102655242601082861861822305893593220783929352820295120419256981251075472888907846814589596483002216659515565005508924742116935821010436664498192528714527075306040523712413855894947739783234098807916594485615577852228843072314026342624028206492223456266376488325259387867297445638558369735955245366719167113347793925315635811085488097713587524046683577556230588351222512107620666580328429552437852142719604141239852405704447809130319971778157670597346264148163784691245854807571194055578592490112173243635367873730333128188552487721146266852761131658132287159468687866147265697638160156597066961310038450698703806040769697629743870917624944845926566730137761615815231728483613317918541549126470077018685784929287378277421282622079798152510373400308125238437306031061957183102041938642576297478217193239392896333548874388059764831769057068740277522299685122313362789580316432875077549820581368908100033907664650704183633978857062486833716742309294795429537807840300688795908477767098376264471449951597049586521472594783864118587828278729972417203839458874276489988568950592744889109574150532319105656484791282280766673095182060385819505660070697061041158755863451706827799438104130245314254999184517710902263729704407126382867276847520286343158249041407068203576524890967560102661538697349630745986185107672060175462689470510534009010385436548708012666663832351251461523345282820784838477235447706485129222508317718892173673895987597376605470655013227965139029452892147280985475399173362074341360111935432805422449064731856220146890719442235146968567248631870070673563390686307910460004516078805581476402072443973014855607983206306529246869686431423606656809411438907164815018196381882729224594924057277943681687744326138597920973951858937255534377555872143655321837341362386052770284528936214090795085579793648576177874785098282124716777082296244427078468949639376940110217585612991997952006411931904466598594770327232801958904172350077278986404439614013265200904874416718352484261840591232471621610699631697980809444326837492251762082085813162951536669680301099405489816686383280568215514495913091010705904672132801028066113079567627660501040493509707559460726049807830232912979573242171655639552931275367931008315119628005704148631515154250241822967412221594903478042000229679074444037155664045769826460084341859195893089970811642947587526108075636317389644309493658945203808907741789978947340589887876945158318548521665635934763205046804152143036026851082664989731418929235869810796543130179492104242535642285536608109204780045754559020490287517334429331026741708945609757685416710742009024356050825455491487448450915428249296397128440296612122848023988329129353290446247513446232542530363094567254909986223258737406641006568713311493808243110467811122090531015347114554192614761071492325088742170754706324929769226604418124164780358686312229825824807384296346412773947523077063521058066600274101282512153318415031267356300963173668392641380605754274519700482291105099988246819993498834332844128414670426716370380343169693985706636558822617442477460506571822949201218977443176512179292965777068320937121057145754583208422162467105461051377495392039502829011258904459157584030591397698173445214537498057619422587242266898236198177674720853861350610114610467560271656140035008811818672347274222956601740157707269911520398777164492376257554376930953603140636960886384356617064750787654189571565415646692188208737862241792030345025414403244128225929362116060320242736561469889362389847013919491315990410939036414476314627317013316059383941106494307983495194338985414718126664894514279763945462984900487948281479820018609752600393243155484141092554094874099477545369218974759781777844065691697283822261931599163900485383019497327915561946403564711363649568488967769352230243111530382683336039878812026375638668611689980135072918479830829001791980515156927923180515260775417239036888421727753193219514489232517662029510349428194965052466005132831206425406480654516071086254870811448147453356323006938600574579306647003096114409204156650632572251903894875740467756243762295703508902995987348380941783878175610051746136712241645780611579869292562802324670204365064664367338350855332746033372015998539952105961868512988735393158723308124879557842801675901890040843259680502325182837115479994227242903640385513133198284962349149962395531133014075512228092865005954506913653961917438670289289385209706088941056747053719170516695424090780232080932513739359645132661330790245859319833857048187184876128150526595548876799480488677365661495973851838664407121024971326711421522942864688128979737154567988998874595604908103558045175402619199597836739391084548577353471924154946981192604397042206827220738224085517525281984291590864679276493209385295989136528349293339933514380830300986720859777728291717145828699639304002073494970768041749892631504080875605122313439574909658114652302991976975855122945170138577258673999314392350647504448000702119960621314139372279594673385041933351654345328012991197991617513045924747907388065660307538187686306028578679723660853829891346152198274593418294511234204162674952296661189042517956220157985280034848475208958435536854808389963578406776387851201569478541995508048815849682715427577794496335852401343280408037846778186308594078692022287224754612955725208971543579417421716673956252563240695808487962052982489063825783286518787769561901578821213105179807827972366243865426140542055146659602956121008815937214086274140130327351740087951942310140540167441711912275274990953513329345716412894730613203226482723042929789629912693837686523223521381641353820004234342270658867877278754422589738989568371844441956989434592432879920518872956726009647806540964779892103635278433500749972249131780990491273387033245119915049971467604082389565630290375820786847673078132715932246530215709152058229929702612940250579481405241692488082418605541829566155496628524906746162387590386003118301200681344909224448349489946916324841510184067899014285847385988972278280139439606205333409346914417630335490207666181361763961977082985867183850351230778658538194736983910110307105926317364048766958879717472347297470079366332486625408405716466882078315358608192277686199634800888321426439656024224140077002347113596363253549555426213274411761602423030762647976803662933771115642326313300792433685273592807572595966971208722552597291182582494904821435480822455705133425267530016804846088938201493776937003323676678180341245880957347278691577546363603673430428342299087547486867259802049796963356631651396177615997165000098046174264288033456549220312715714393436566712919556227471519089936223951019265200390549702378632717738175286618926623209146001707196982897073697812872215320961094343298419921027783529094072267840489332352602083248528671426660714921716425774484791079257727489975730186745715681192019848377917914605569469926754849666009505703150309893069257794955546561471153729727297288287598091809627576518941313433049773773757482684531366989114464399460954854496479088792057507625224884055962500017231243103695498302327148281261313708703743648131212340864819699091418149844282188835371769127583269404251648726108369872005669290181971787925093818647691657896773451761101552856306818074271867122369120878257214577366978239608823299730402979223686367007939637660254292174387917734199357276872954735695872412813585485138894649054629269840169292172970300156751669150681460865481193460699625514390759616793249556885231865256374427993763724107851587616953147731026864900127157270533298676541717485999288585491641105723365168488237894014132827034113632837199118911349644768567373736344218874221829873853381076205560534189254819636204265921424491621145047346067394938826076115279362962399823695093364831919284996611360139358156428985556150713821491273788676978343072130389362905699950990679251761433689484310474744998470500306317580389730195400732865247395020358045053053876539211702229311064395541218859310146724024892252957869183689545811853208742118978874447539089804017415900380373952498460065597148348391638238829600817562913683975726942333260294061865615473710543432286088614605312896318615696575212355006460146998163163191090785263246464408597610638192864900771876634072891579403351640646006427426204070338401888196014342106125559855242908014505488209759311958152018795348090225034651311334048577914853374624637166795316957023207238756990118715697569025693866961281397394731934126418420184880923375105280551870037518248021354472587034989639363613831711921659621573731318060890028098098400675174954849467324169252329192502616753498928255405335376621489267629045028516781034011295144155493438913787876471399500227053568728458280094032105423753707080526946902538200037883737974912874519771421805615882060522490601639220069515158267963402094180480925058925665043666733454004394269185301823862536209286255165692798897503578065477633879157129808423309973990492115523781306867513459561615007771626923254347597273531958369318945127117152269231783573724466856451043436467209085810964162519156253570867441240509504572610712454029247602135930616123077308586599635406216346090433679739425893447456752411774557934099759304065483639393560645256159753625226897021004335227286273812808209662174585029064010798814724393072000395206398058542310890445408136817548011813803491443464040430733682702746783038066938096783311916451195635010164902857250478098288444417768148450488054082742210628685623071412796496583621194649167375929983223136691198028904421229569049935610878598212414011781033378333281632070286762188737517573570016499142705306416405830519448143513168202745974073132332914659397859486949453167492321890956582162355348922551107736821473960920843818020610960096122910577188667849222732925243941777813602793414640907599135195630456691058374782642769644694555435558103841809346565495469855789222158905046407352817445400816070849577707380571396369181709850275099351835751646873532536870567040704917760489201915215721882513107072822653534629565776469004805342912468641959766604944221518868547041796983928861750033641084249718049469210592604071624135243995309279764987114217002237852462976230837988120694171260246302536409770706785506252473358315098023559968093803124683464319826055464842338962430103213508826582152048818312382161594101646517131208682539937218644873011083529123364774485830242446940404042808273244162848631325269188203976323925571338422651218444339352668616690065072561074068399424624508087842269096505334555343446995741621583099593810405009296677150344789712806073479750730284711509524096848411262790143166708092987253373214716757923118718627231967329580100382397334309588583529271231003867708064085657899451590905024652415668521376658003301821083682763612902214621201815329361332140775578813047916882504863397761670420559188839972942000164410817164758002866367661984853740103935975434088549764437626469337814748043071268374086437014430220559882628281475197722999710307250493231178692765651950648143874924154298982558077946001236954277524007766636920178704087513621132520448772412808426125082137256966243926066672051285366830824837610793954646829121985300568997172781108521131706388716023859462594666199586242935835703919071515845780775511369677309978931660656714119676063951276635329763713537559617464751110391274987367277151136785022701595349542788322457443636965326104932598351363487757063741051856607315182249831602659379899745241690772725539933304427224225889763055950839615964089115583042898840074719542182777549746231543113867032301431934391164779801651709077675209800276802148720072303969523208977008503972414403502603242411492128070062162030925330908353884386347337193432848205054386114569387960952502661815228067378439151613732763348948135378937962652762850468350400318060628108410561833346361050774473551434181881764264141338430453680626373435111137388956994373820330410685132130325627229672831205534524777349328896502803394317124232866709572317802916881941560913941415011511366618080627362034090964510293729601933913841926328913972938584209725551703262615125158136953561721439009167171335371870396161800895121486871328110071287017477360049297325049165998751630318443650824303871851602652795308208335241122678636240955622419628146203096752285294148862088703762588328215698477958123285950228921991256710820745470181877260453897073361223187391668793764535213170630629517185281439751343793813222446014221173201330073497195795704435444750172966949231894724146216364418878532171500533173650314744653422180394407090006147017932675441090837618495878669727766675144805793488386790067848794141872204761722681515128203173960305052127385230143921051015153277987994457181144462254388701942435800807925398738958196875205185042337161552805839056534566168052919395798188317545159471296427898540204805635593274641333002079585268533412066601817637980768952866360084515656043374584418768826929458399384627963959491172237593790318058974799202042845712207275306394207212366238856051023959663405304455882926771790671318731275355375753696084893621838717603775812123579447004501745803935085586558039385918970771746177760489918813690691316391965808927085493581571688246249630936307873466366928169021923049032520516018913728933427025521830836940327057177242526021306287608385956020686028125569323698156961654360223137364122305894430350623184100510657798748661607177267815205805131098143519083282474728451712838999212862770080550298965316154949990295191190932929585486141271230790334089366073405079874141698619765173022592107835461046118392906434044610220801452766857538798457363792591404647767803046695212164031219505869132239151293998727246241785116933531829936644995887373319349373014081783314055297332596199227792235857298072922696518633019527385329008905846047625282265609689608232813600944416509990286036420627227471663864003990467705623979721877941881328011027273508716834376110065698618358538006606746664606065377084253908745357598012213568818223310412840324384523436752530515712803513608904853808264516026299205252822042788392442338941621509748244541860710290758037704577137356907799611426281434822307366415067144113271450398833346633830266496474399078562577626354807272505736772318957760366799040819366528429470356929468678376078643743584873081077027845851040714383414267998476583247939540165231732646757312612033443037673231832047148593476794217248764762133259407834021591227085650752604200300984805455277190743916340880394964517955280886977706075934872754110222772421752916762788610795366650594536198522587210931955237241254228084582465640750585943631901239872523314065147252271023943847080694804042175941695812769417135570691364863452371178433111752695680969819317848093958595199171362403632860564981438334754249867059943619598958186001113163409099969819125576902188634437288975003539725363956195965811213615181437013424518428442075686539502457827445513034621441495486918777503242367045657683005077710848286904968170481937557903772584557658043080709504899179296706934353743597684514893167506078297235483847879491840637392078277736346962620574729033847589339475256392948615561823486814816059755912048270848724917644271092238527110372121721733282025688387326573627919630652849905149824700509542167262776697344078407666578791323232994011991786541900768159987016151225225932359518524088527077996051248227422463019274624181759243422969858860649482002874412015176920682879747503168480419617469567985165114457100915973905151231401231437167072783119017917158902167401371317612059443379798307895499287542019918411947912725601661576345972192672416373275089600747776615513176928177651866696656217665432783360501711641451067228189038506601113034676565442849809851260200741326799373871475562518493707084138844937764354786068847422795017920475960817550053574609565118145686255802504425242146112249557894221914071425949765237665586520374590124892503198993085200289456132226869624725406667194539274160495709126247369178420729402880698232646284277039640617507929090902115016660858075278708588797986451355077319224857005211966913382399470468933976398489612986781013727456461808330779277035805604048774930651496699381826037615772073581425259902878838742576514756280755880261877734966968780416092995868397609310468185700023303615598806814034582349345957253316043062317548282367146134996893357382201413476869531281864961701747834332043538739484466665831430496865739758093242029782076710428824184531586243102526435930427593689265669088956193808659637440412429165292906203441612138899219119616778275102252620622875497167574667965703175301970964814639940285382166561777549648548804409551996390642909543672615806584912233279072025955011677058127659380750512894834298264880015780801482776596523665081927449054314714376329756752256510444304027494009499843440634229654890554507131896805980487203290831900657824706112006506996031864067216377300237660369902125580497899529831622957191373466621907389897382329235631473769339218260562258308957311240732480870579384225704209243723334367661444787151620742734759895480231934845759884888105800721935319852673637705988171487022588131400721941730005426511810483347844087766570091180270366758298601475735594405420901584839677337067835848440559071125605166286250990780857782548333448726359398314079716022355038068020999066937650370882517703712506638263885047788536933112985824311071795568452350814951120087928953897252917807736038109044249160278079557332746189755620233434261856224802985133803091100298173070140815619798007740564102752917959392158828775765521758461966542324114043095727483263896023692825137851181433834724663188686201596438650122818170501234272735139100294751153364178563086756915445242515887382533804107056902140392350322156655159636469271042368397676162314325113900729326086736131062929822025231882431936016484070348698610804728586843116259475131981484572057233922404607059340848083688766118915624983005809622134560340303762468838956115955622804992888737824072839032907565138902245992171050992001464528490118612293892378215041287093845703840907222588692827083750276901258335882785483754942531930397560509057131533443293890681196716267490633551714153503861581395698102358174942607799058087029837062699642812303067072310708593322496037339780860277528823537843139387645430541911499527960938389718141476988099722948018384571131016026586112341274882076322730010456416674334769426271302696134398905136351329703881615887116626188796320435835432978208683555270793907980384395702057754032896168182438523369270186300358573643847775644083235962320407496756935728182849454363389204810345119451697937727157597513796510301456132879510873978272302464326243197182061430898468852026604636084795445150788573142132256146493516219481599947282754964572668997445799568999622600716236596999954375470681220798551681695860778024970460354262120929980685055194870867443164948023443829389411329557860759858565682252533839109060308600315550641696015568627965584257619560385717269785033084073271162327019978525234375696811797348833103117600504208266701556243116179254208975444236931235104292849865693168354518600358252840298026937782083756806244939068458733369259697280433490937895357964414899489043418124788254615569302791403366513453681153828451268903857230566382779838421445009860495716577542728124540806792677153522153334976629279736915520582974069578776376453067902941913327736632122300776225458054023662129060090393561408794468813743906934831218196798807347587027727537708539958405338567489466790066460131386732435505229073232058830451309477873493369211714311619299428428043367809207473679851443623010037482451693516714041819992378378170027609163674800978074513805169081936852890735264255238762994921521080977745941473796716548241710703921969117199963053809792107891568340346007781048445481065492750875480886893471193293311221233626500891204603610698967234786423545992971684336442072114146972517420051729446553311494417056992564393063063982270658187590643384719274160315027231410292219092094703613553978645158665637461073394933921894179313002802742904110285309173009197991064009451687504396519890036306886782726645448290313435650975391279900761387208119768303829300649773801047267313236505796356001698023815469317938710361510979587828618830847428977849294048413399768776960798870802428649831197717399298178580205630380133519288668155800164681084915360797642111081096160370706349248721472367987296757842121027313616726478263665788077287396348122828315927094403916744333020928151036051048547550432873208712131802084656182977110580182868214711304143656287057248743021654072487307007114551976657257493704286824265627043672262276724710607844728703411408282108017882329250495056297931853585524048493378754250658456891134760298943549381919651405561952052064640695603501631360694502645528502273155733742609121183034544595359126404640468701553053649966063380683521530044245535026067603404056713763341092935704493048761702811222001659897804742220408859099319600838835232342525412559882268028152726937429169290631232466140392647638484246353178060746525634170380794087465804310914798489253698216157167484659471182947700225971839031095355980371250961002426380622084843614365955884456628853370390693594905210200359403682539054372771197589604464038335150173838204133676399660639110668539676907575802889513441892286971796051638581665706108400938531502928639927702399446019315845166944459374466879915606729849703318688435179954301243370736456475130597079179569129305733499587095291002415017649706124892661146622521697211484547359976056761195571652088482907938971447263810210110449256129277234265924274996697946260324028175000776180661347009749191788418839088830768652383804135358066609642628435520377288301283606966576423731087409467695707238367428635557264363222767317659313610336696434887572670476197764492452940772533133058383292511485356632932015270335098568487298000233962112908942458227261570652780300459167955977719952778356097254388001887899650505831836586845481048256692375259300485947997432100833612598807105310337788281660640169069262005590701692250895040799363286627242376667552513338190463573271605461677532002916902238231153614283690974566832116912023783257220346214301203928636974448478622436445436672283456580204309527707637170242693736751883756680139291873306543313722066630725783522139003427364702708734376840312142658143399314419740666272244791798839614686349671551172974158348036485972817394662194030045440043300267937180297071177883235664024995052777243305878572247499510064516971152646113830033901563345217631884679152181647540483013767151703838244468008635808729658777513466497329794512304863822987947534893766501276796632993458335976110053449232867911382860786987557316169085978351378332542043251175325188602875991816931260689164408758691577779804848305976433492329132669281604919660342437678053278375378870241939688390965819449970793299737227170646427813736046803727459419315748968462427908588638711669485233425368886447633284184212003495658036125888051822119449316738066071824766945393566167389181851004743465919411639324783576358599244448261033617664294116060806086658236733431932408690732695105909112074096966574116208250991587820793750571460765337990534877993677992839199421026417383298078113340628025416562811004661257681802264715173131521304618830370503180869999423826763691247553504357013149140820820627742397707480583209129359946262368985382171112578611888786266614601949083588302480480273174465189230106894738927712529485756906873741910920449139950171217715629193236631645149809302190284141334258116280808459077228920456906471386493696388084134298503901657078145481022870602488201163227458440456472767573824899567798967624212454221963236621530715426234585377609954674837762919161830005556777368114913866694152086579807098702060038307580238651454807980705790697406972664729981108520719330793871728083190143544938116011311536271486078063916810027125077638569216787832598032560843849414547321605088926702000792238253660570382533008257542267877972027756527941459589990349871170227671471382634390538749482931462373133721349671644750152708266305600572563490894313701829498590249605510669978054215983729722413692753306465037520796502188199072030224019717832684571181506688248396728896835408543322906046396200310851202136760255395359248800775922741699685294290523990447310471457086009624650366695773021998877405675053967432821755214165903401167476412973550222852655872124971396882974972183578520025564622234726969397532888252119095991329116641801022802196958608458656013311503995998639814860819137049988938492168773625051143377979169624317526752340287164626965659409052998194971242082145942725412619083455400351914697858446745331773092860743647943888555532185926076981293774350077113263384540000125873878521375029432237816862689009915171607888292040545368615892415017775416400586946951443079923327625731642312474860405888511477834833233005453204716080283612035836110307962359562944562898491190231899852647391749183609538764955087398166277236296274514968203825690148530337324511070716454713322704509102073199728933154082310865188431987420038848651986867149722545355915046486719265931093703586739817114493843351181193952655822883997663034820686545693796212479438774406509494395823562985060401628294492080071691405494229273238200522464925038101035264413838221990563257606241062486548394773305200177740533063323894565022414686322089799960834497944617219463061664687378849012416812979490957987393029850356153153971775639851245411842585549721295507599400981304042517478548627094871147192704379561290036017845747660161428436875228245587840962360084224056398210012467339819811209939080415797789117002724388055816468327898245484617020945367771222932767487385174190662444563807992387444771698276895326342197060786830932096781452565801122658169001438431553550340271057359620570527099171715514520492146728036904120536393589493765358385674884657175084975955039069599613604646507510226604306783016466062602525334408881244438608684706259480786664772866758337421924778615290892037191587041690614758830230411377462790173286535684318178072562082857235968064799615395847898117797843828437284596403906580528117544619653067607203850640304390477872251710178413727928327421168717349454789682708017281962150508549055080953455690668394984002510383076558412890643911303773006293909487546165250778545302997384445685985722883231363230751311247408235076445062284628495553171734472629060039916915741241014540326843426425366168475573619618619591810187700603061221191376371406750851265535597645677969973550796459487541743858354412333766150372774773647656313033866524117025129890858437339776214524656089698188835120119930508417638508291514300912039801573998145831090516410830875131990872564990016732193556095258387781749116303691370493422594657062460587688490170303754354283179271254380491103893169877299270193161973418145137752417800355971877739802294528157620482102656704749344084822765834610137871693760076395150702232682814496357483945615325363624790896472955729445333351459709841846144128451280070351340890130457769526788892784245389709546871211122134423766220469385214794887298801671543173541823445775506298456528256015503437442837280977510829518446003403759227410575310550757400954283744948240209399139874812873580926136678972385964869426902394725051086221512052487402850703761977717473709485338370459880299142770533060430692135396552376719636438186963809120598636936602072889176881424100466356458327615512918444056016992154546485344593716041759800751533666779284552714773890946047567908146146162615757846689530932009762608084865224574802562188117418894384332352271057767556850192087244422016634574642121475973289884465493387132748341446662365632377095288366859030918279424995933311086682473309245352133318547906012148604964632792330397138024413889559333294036781027530959688571078086729095118297055882038407129268750392234235515382369401568273663335791082857914124236662452988875875986047864472378301756036085169164302277617031165541754668529146202591916469251156253940846285384266859512593841162409166906178790952895028276600053039289664130444190138321086878519620947628871940920974635641708897904070113095013478343157640957023981689397836992597304200656561930593053991518186101480201375667679075567177152587165863465086700792644256011494396155467737908669698696150175031151640435327778878044790677321728408294513423921479016924522328336057115281204814997523227757097866374401046378539427992527486734787128425138122981117657785980664038583739832022214797141006665413752540472079459340461825898953032637834255507146491568112797840041653226067667066343640929989209347077520842309926789613651522744704078945817425160600603027756800159181411135033515530858875564953122164928764981502905107430430111792350156802364280167475054759295036286944606587321685268745393408394145640646963364790366698897059146182067149537372713880466407995895789410723071431071249786439700913546892760376092172704800421142016538034019563623379087506696435291325031346718025031650955713639657116215297059026325141579391781752330645057262278195804517350448820469390772877801814442649963519468150675174355319970639938238565598077385046733182067043320264191766212371599769090423683370625448247165864453022835432587285091725109941427691646270989793343112337058425470575765440232089102661111148768649928991729192633250173229525811779759178220259694420594116842737773485024571209012033590741375110979791574578853404309426675943490017676157039436730508128865459952789701667335970229809454928207194136882837528040029455451590963148848971691342687706117791950414039483505001506364959215883334167021570296522203732371020292416670132793201249658483048869526975703707457131053583027098159578770281251398609264257633876050476674812632355815956940896526158281215697175969072205275520091000955739414804751392728625400916538578385314571911004624296880533560465670430882256117543646000606055344483454849465588778114782990401604290770920076994024941078721373404232960366681402024958171601001379345744830924446598675049242264902384436526974132356106731178559283203966955182731215196253348528620536107913657983292725589955272068121480736050068677220479738758438287376408820479695586437521337835513290635713344577335665958844000923155793170480905206542212898544575816724012018031152074732074623662044333999702873960450797976433509643488737603205457648643332772938721610008791591007590210186974456375136441155275288009133816433376072844173520673207600052522683354005879190493455010386689302017101801855012915258030118013640628535350255102504392182776885513823936551069477115199424949981606511496200564374808491274130829714694349614653731592603248902587169133777100264503995521769692641379821016407667145207651235693772398149484237613162783494783855752615245065923432888572121132117765777577640571708075375412642687416890395452132873688020234493252457711460578649356819429726698321081545840866519386625640451099961656114959511699476482135094096419453053158798976619333026527852945604008746999845634534811739494910370125437518413456546520139859438819888922166488471386231229446388893105886779824109449944118998446761789111237912274436594726186791808571586537061814680577583229615181683073906110360064405476550205232001468036073269978292718657342654333632128791982468634898947310504487197185900276405596549956311291757875811775234260303041430316266216548526452620071842267059682309970329984174147241200783138827921407396162251790509350304340704873563523520343405262387918694566063337512063797062362189205768435357454600301228874749194358434720802232941534682726843989083736129490128365599231275047223790587457776994117663661349588785070289096834670436473265843586753004220181746221766433998731791631214407550088292311302094224499417969877486062980208292297027244968498887749484031298842447607178303542012326926490698318494900134910612072874886664356728470563959223792640916183645876208984157659641623620549164961381718092407868726926105684741003895669007494751548512169867627580863743460890774937425943484452525378695587793640377348756032641879755598889675476941960867581320630510956450937790374042126667297274863129706856419626953251805387935666200338259925817053512247950688176586510541255336043692160038638647144798129227902744022792696712942436376931140958782662661428927862692842938947337228093282323366039249220332389353062827208162950033938753071484062437466597631948931391124270951276829552919545189363035521356781303862071223892468531617361523150187342145200594654300799961516033769840988022968244288554096479112996185185406907990400255024686993567215445398677766042813008283539259181142914175915604883544873677092821373990183351844479819967995170023216352791092241799055370836735583387600997615777987293306747098122410906930683590477919846697160461421660350848416860677936496328388239927918863765893140191222450274489517024770660826447698273273266273098082818082833247058625992345712422173329456939712846895494036043532074379662311028737798395925461886486718486062426328211642628646875661247419537633092765774635091001264535000952901638949773104297720748708126788500608537868634516674329412457313440155271906779150866734793949421336354046383037209224068367330880319446631404764068729654287550279155131956636817229813375448928872756806931913908620152052024830273168751452684677701573817732907673819900030064242831466385734348412484445385776089640510498101302922815059970274826488971808692413993387143911157160940534251564821173802667685198912754949713479425369230828958716822469225034035862213585476601237420644843838890522820634228612593698218103670205317382703064387772569517702546350934330712345108408685382484703412296937778264697102858795969652856107414397905447597128971991550522565502332454259812784692209792334303148656565792861094086428782469372857514897535107792924240323135492329483046826016859143204431890929527906988971116177729866957564482257912555723131559203552461850586770378278892929308793397110944377490004505966754513545177398445513266193571309248829963648587963570081852586834881340828691984410779726476030259010321697163280284527091356164331559503223295449605264321090138796178246645097622320916684146573740302569485392435719407975892346425327185255929982618919132111337606873334832254065769198877355515479143394714004211403019652945726225523851840744827407833397905274550387106139775493235631770649964907131128622107505749845267998257202949498163874726537211435695720635953655114769126020090589827583956299524974291846335340664204139198192196755286118269395176648040109774719682449561601084825434662958982353790145184469512965348227656667599115282648006500595604599215082512525637785232422503267250839667288708526975683810913080542225392748835338703072054626430710060706054173475131331609454602675516782588663378265239513545307429337910552454338404955639323113696234793253973045045659207675375059240626026775603947168912988854612173208750854547661114860067435750519565407844052698584038548319191951419962534890474592777533999565373537946952423531347158235166196617290826064870036357518896570199203910134100260044020976911146517916536084635266962807738949304580154378219365925511188330653873821845256169687547640404004641304754091143662403499637835458471381381535150956322489650971132966368960404041545715353274931857731776163148748285147175454009143898887764393080414318907281564718360076211068776373557584631180916013473155198135384259532333796329831295192908792319944700598381255798811140409868504344752790531430817227055406289141209416557969101637069656965839684117263134429868847160229097859142288799051958137972531005370085522175717152165570854578241474643224063625369324229131365937689191324205168733176752932567464676554385842564320071435433826723505220958053222653956726202219051653692619657389004418433303114564814307958372986082290266189451902658905261557046947660929102950246261571619079808837597992930466158504429595443886599754209332943260150746038601707607723874585282824189092274787444334297909540870266584743951163942401708585807135759341808991287791057777756725123456553781336524435430572170085812758897812661891981362201882050033455752017106185405605120170182069427078979666627897338538068690214940795872810358818228808864924239581281482032782452836940092839894535726023414322389924809730473540913742264849241375378163839491535065412114112432224057889672930919721539316057863874202630974285006208744552558949529171075717313527765416403343265531738342595995304223390659643902527470532385710940279597611717367755429329731380270434314423002112677465480466056554634103740915004593812275516197949522303154699918296228652378148432848963968026875766123103893795571731682670516593698395821126475508304872959145419655765400287785469057299170635446451790592502630989546677380649160627324024312214162383897302238166085595322838488269989688650455827786694717388262976960891661597796265669441979935977426430972931903317938727717903832364448167288565078847959313436824088726766962802155236225391912219248647961684549646267866426471679077038248145931464060212592900490279861022689952839886729617178985185276426791536237567916798536804242466345930870072171636407613283957237145427699135179566469241118411041219380368983306195417726259659504340162892615870803123500881290705700999690963528515893989554791243440093153170353861211659907046908727744393086004125574805954965977045006295445282693060692184923900221651053374775423052045975531147600255967009462477107954530262281501702778675625060142201052618550158251038665944053113767200869470360016289869397394584837059308932944679975570716009231511870520642532465186500319839580000564251133468992579468121015540600544277922947232680277923535714863361436936792328144882249136719401307878543611032688182105075806558965578722078023745469159586944065825013123255621053185250270632411760228029638916080776741552903401146829067695612011332629114269238076168108889096134746468237657348728578617921921647855697192982337140815215710140704972257020373041465130526975174619997446124843906491241267442166588126810330729296958998561683474321521274067313975358003702167823973388524654851236113329291741934842306933010040026039151363483100893593402642435777911392132128277734057768813172693163145216095248374458206434849800375247817668846920860316255941375780447226688510805969494381738080558467427800200255321836455093455235597645306941116503200036701006118197216805612779633674167930086563566933788105132205467512261679033079176515239651003981893407378931064780471163682837569340835864547050532152068420596272580022181491327676027959251923047833148977053479582574898657098704229489615398257638688954859977063894840493344416448428454668030549425783774549148430991401269509721251315024202612775838963042508178724227243668836040161523607847022799355152666794034187709372439115051376646651496678412664822430489691182853199411274418285403586696548170635622597204380666900127605393789841870714357675845828095885592723525612624782601504294603417028849127476071855092083236889453981368292273922559550768610259084455240656078173494203589192152318174600914973817461984090364606846335075566692527524636768786513032732944054360216532149394002418522228842711054867051990580538605531103700870876488508643785602166357858741908596034096203002268377296523157526616228510341559415532542983511157238826215238478992004326452991362697853338488245253950557835775292072368920399061100851285406091210741791408957670854538625043465954727507844162529358134529042787532383031173472205219183180974711831299646187417158958474186480670250196241436846332877433617880393886259328776387482458083946205204994609746797179173140101936047674387510080080450347226105049388009961831549797541847189346114840261106874877212342925022834668861872831521060693386278632008686040953271674435333636172763280994947356306573593659795221172299788577665449135116404944010029462859601247395493463754707552914548855635189984157052104175104334258228678205618793990846648744374830950260629482695686759043515750563502407016651486266907791020935837857070343445177645014065575897435273415453058856447775717067713250705934139320241013947718034003313195845634310508551464177770410329089599558110109280382045686756573822357149126787087752796405108144365784107544134345703413132656561125869527061347053500681823853253733861480949961862441170919305988692645541272908244506140587209233780443988132539760641138817170385419063765822076129510138730324169145416198769254661150728187500420444941087063408291387646860680914416117884602077240588785985818999446233564251826292243102521295101264103095474478087053078746209948042496826437991683201129857955693910379966371123965911031602026714194146514299067320574531430377901049332813494292870825578641035600723340457541004920465497421240003442015681938110974213109508227379173675634609710626961000825476419235883787766019951994367383214860831665326440988908479424089480627843311522368861619303308582081326947327014141110197512647805028980312571155816614749443034848943976246551915118880237065970970652798229201067471884532294255012886293153192119545634897098624957688672193338927236850411997292991108759495269198008367044484582013798025605272035975632586236280178903605539053282558645275135181831033008793197010815072169832087344650203098605445999600155466920375955498739079349703509934465572271260436510821332073219395968648828069760917171225848430847974723557508748374717449632246431616819499138126562772884502222391116784259174023464594402585106693455738730740010392951217434063186052853090010168688216051053630837669416486126251523637404002136960033123018411142544507681724276489069909323693659227059891717974438351666807590864359459623242226284808566703900697209362138860194242700526006659931938428309773248171568897299396693067400592655638862736543434856148745343148627681704059096844071667252343502315278437898654031380028344211968143659378028648962039303678380817800314939529594593519273039513925141620974845128525836567933216383766302312159783876443771280752974432465735435341128125432581273280034952701634342153335702317123433878939703568624389231620882740934961946884758938674377009174413548005549830036789025646315261611643732128794959146185960603164455632667291606935520629403030789390009355811421607636630092329651003875221748479355452553501046511070791854367577215509670346691808670579555804866691648505032539281668779338961562797688719602670118576102788848154470200426437558265381957389941835101249019682634913457180715672900545270319340814707014510526732705798948840258211486832990498847938717620439298788731993016228256460102205052197035324533730699113986518189080495935781365689445453637651278980354125235237245555483645749118736706629776345752620493457853010073685102502173371723698685356509750085586850213471338357925353979319622081650296730620184601473029852891737985527372392411373906727783556359400800967304556046353743504527513841959596942872640807710061895435728743075889482057585836106367539816090292049467979545010452094277348830180790372028450653052359525486138149702762294321781843540465173668784404641862390709754220507661339980804005085728074371460620728626420463346542479803995271833720999726780460719319272794992935679587930755133464605278915564261963023085373545955077166603026286968326242260048667868585920490590171927390967619809210418096742320233202427456197393139413500759411963843638824488637077290955162146142194266319506792142409538666131296080927798903954079444752099134826429244327608085464306572151319696198506268070365169559705707182281617975533438568042139417715086571636784019795919647163343131117401513962046129234890308426415878804580211942486009606633538132370806760322765566228559392341591934049923997637649324012834514884505969440526466891818482057643933900640537993305634606824609031968787353640000199497539965569847794960404262498493993639381838288174889004257922206327672036150267467779839428216526723799864795095130306152253975278651329120712228042922664694964726142732686575675595323747781838385475246188553337609532161420115600454611723927715464734588794224607846133612358575997080345494873626451218564902973697199502879720942519647830928707733027852007959308420767102512448291967978186522348410502192451430677953212261004947212734164353158077853383689002970637836868145120703478474507395610876349269217613088321636419693692365630907094350651830380675607632663969271771256552226180014135660258089042118064523598768617996291105132421308202259923361193857831936198767622504923712008742035370698562566286281949857619004447994105204268197025411611054058964841053188742602356374019220774699937196400509307966751940313603428834111995133868389316743023149766177790651042331282744979908868435351263783914566960494492981111647398997063243457036511391030532206036805902973242613217589568317370037031034995878748495644897940888621517101374458834060729077493549604958761691427642424335830913794012759845425303673603980537951751894721080463255797316157757062023083253050672637276516796715701328077480942982420625329572739512728171699900116142717014343042626859101931164482336039586042972112992682368645314844038388517628661285763965513057852774124607898142511378359934562463315878038681856890924496636702862922716488350354567581479503912113400793403151540755944369702777632667570566769494408702095090910768371871230852730300813843253773778397097347212425118478227768009250733354211373616913025934449820081088845235097671030105040726836835821723342026965301564005636396260076886891069599782739661165733890759315461268850098683168788233390951376351341386602390334838221352712959127053100660436743099692637302898719366132026201035548131252644159100761792942350002751916399954503861932857335921940611396096951959543581189783420963140437205609384877106154906066122756030087717838027093275026120580522000672743498195267574038790787333573529654413804104391568629254765018434688576017320173952584559659625182992887369716428296630410167579069993722386272046381738698053039057515298872187644031772464294089288386733876442809565386878945673137586980567393188209404687720446234436349251258185999956920473168268007444782852260389163630443442309052362963626680189762529745453477386561692397511023936958145452299299066914442309847539256286224366194275156712387894229642721302409928064485101257753499488008964448874489302821538045138525421461830391437654017265286690410318239640927741974858590253462122740100026070821085804255137241902181502538126091237540614679161112999268463282524306528852778273959719725735563368708100674916582315874932797238395867579269558197826147323823919105597086560196281363048389785879452904340515530418213718581116804048684109822546122303709396693897391750125896703538711392184040862504097959881955016931633607783250366642487844463006193320669230237636164457547735144188966182025467322620449359712631820227289742002610988876190447353902494302002798122373892068319327920976395594447259873169732752878340711657393241801570043740637881291040531965408107135839059586366906097225123024961819595908726637364389896168272194311544896556839735445876866888979281877498031434028889282846704068600972039469062175692492018438499305586857286571835302975248306979552900950093435907072497447376221284361795602026127636841981993610579190964123871872343082296364341340646329462861409972876175980979853910928613823040149222596923963476435201922311534988568986804178946183714584901820190265345730577704454333672641468149894308113473779798821158670999033510047515318932744657485976899722333135173525966116527136260051851817432128422440745191004468032185446152811147391357479726061667597797360303515654979334254192604605478138884513833684019519395229906238489819088087406041385156948621399027377162577866154155154720198061473827950593500541308695917208546210577259441926843516189148945949269017013070659371359738453552132524495786297174788198325131572213263974876355919401136715697605925243964556772999722418232201799681250697287456476788732974920286482686109826060830698829202651430539034324179824871662317311963505211605393672300259945291683024791212420023012827883394844710711879063376885372509139022508162684261264667133173811372504443779385844796699995903234947795921948259302174491048244491130944559760982481808912362482166113906475450903997503740496098234998191713004324211824799854073077232912457769511613966539115862308602653916598815557405516036386721096113027099247272506629263160101206656794028406755828903462199800526116247269983085222252396797873088086345361334580213164447135546715592473373440136343971630058637354306112335937751030047671890617196696900511047695819782962064301587151953117778292143739210100683549106687846833496216417327733239707188343630727020837361780446456189392835191942909222341019698298255155251418432187552869625785408889591350750797484683770225383632546011184922182215527009087675348851371318953431168886311076696442769046671956913018039587095266351480761779734085158390896604239908155019211315961410325687359336727615606215638388195126904921183535924688945705793404871916642823638683866187609188327931502525084952860615266716599786562037374182121322889154940474786399307891322099325068667281001348315259809242317712078197636534456519897304957717685413571659549131419048651730737162255235562030873974270576533685519149668553981290174370420157534101213493524351873881948508047880302759927820997979545493745546128047781816200564007131049922967181981105193993208814315145339496273856231687869667163907840854894007382468400386127020254732425027924439569150933255939942451292391136502200532564216954199658901181615086111210602387689845848278328548534952671764336901698922036265420619541320504269473573104242476602878848665870012012509931331321151430759213091670233962977329011703463952136646084056705234306637358320366961909849243939858594077598109342441423086257054467169166516989018988337496297554982547178698272843514953828727390335934746356044702887576813977814468623111303457808407478615176602954628911917129673867912572028487643500853612282409009694741804569124842934718957579015239567672022475264249239385652589690191641216173795078479579184820213848752931440256801934323122559503978661582462444857462275432000307491851839200664904533671317652821323004396260480182088826114720129672700508202258363282849826914186885325776612389220155591479704942623674576914010972782143215928360755645173268566481651716921434716578025934998323032762337517836124255194332424802504191983512052840921100407895049750902941309153914427079357886535629012958702358597917771191831863194114034440184226888713131263616625704141378130404424344472887327795451531377345202908105495559160647181029034505319175390687744348352000797532643041203810814868560250549376435233368045601232441617064884188665796402627743709656306627729434331873865750573995101737229487259126708967688288845068354003577842078761170177705010484112285812556639432576110138511917557519901378176760031625868804384611086257624475492085743432611597551820838213293042929009855848463339445161034990873035971107468438215405293846827511412106617597048150685982568063308175951757335775174495855122194639166794654369513338095779296822708406191411228185509723650706126016066856927725094869920822844890586091108933107872551680358941069063604191790622746587061086562626699129667855162299250113054995765954927606739358187682127991805466571355102277173927419888623582660204346060212171935211210342092513567163556862049283750045614564798451375123245516371391430608032068462788194499905143480233064468095950125046843740538524087028710783242992600345007662656996017941842462591544967770173391331402635893502532279221356337760674546167815755040477531171493783758352057558695527944199418447402900549211684391609277161607743634313659086170500601313773675426137909633322806715284792806787254394423200051524130739670145065254542778718058383152568157951270184046184673793808725716405032115432841429473336550981050808988859388188083083125567908769341272515881967915456680015461301889850822478874983327761431452805064043922130471019858215588466359379144430084151680621943081534201392041204895616039446671378465796614309944626266861077299163797254372685186993511209285570158680558050129622375619517740494232437291610049581853735291862043813746590607718046369398390428438070587637420097218700693133065819227095065632132472926041821564240332356353136406441433834064428616048616053298069245255571561578828368436323526279536281698686273365167413472527800001666286665417270857137286161244869285770948316081179623674033342846131721942141674898397068531372154488807480061320306671416961042043030156854680184004036324039227216009965258674524441876646395534985954939849443755480162806827669846201263295169705836649252547544445734797175116679075790066688326803431561390119034289373695270593634742736147613712590277043497052458699818002745055345079348352201956092581182395458687028612701831356465181964671762171172159125135646296277783576612401720363014336619149340108157379266655229192807884459223811598393423954428467231387587921844388596536107815331072329729947221626724650361956838879912110074864201761306545042614538467271052925424546377937346688235391215634912606147929714070952744841274678725783020983548741626677781756087788251239687310835508481900230816385564538638623824481914568287043689700813892317028361575785845021185680687621136263801576565396486721667550337700440014086509925070521564091014035563361426265581815094720904163502909935147958690904018970807548947636526875796334664052344144566816454499797916685149010546518722331086554056720163845246771214134945318307431254245887886443201227071947774420164335208809945529708563001625828580363852993833191791845732447201519413531754440437503695964067786075047907812023653974988093280979741142724982528742769386670601233897529052853617597776153611801641410840235247433365392560926033090602819666506230530325854326878299139614572137751130782496846175690038585880364043857244363335133146722560791591112671528054566775011516230466976786237208410830336020207719086139971060126552316514993441188112236816335810598988013156235163036695678118750005726033707608971388038555200572025873190808956921366694693844276406245537570370716288656995330928234225243418073718998329716931290439230450945237065357391394707807409197725895205990723113119939534809278510248918392903403634219884738004131338695462035707801621478525788012457357181181734830336990983521758086967783292503178063651305640814356840421209785151654653376131157229992853980499633927536511355062992652176977383305526080283731935407366005267484862987090194839316566123216201532793751228952297645133369239497735328634986883952339737560304539512195851961344171749451408128189622495796740253678954583437875796041935193892658933607347958979044481795811504279041549574158505261698352124562919703068401875525294036582995553327485652252516202194197779262382688545630308699230652564089304096453377273946668157154037535004617921749339999727913178878630329638013905363147412284784984057326934242370551243296920212772083550630997482287727428648574959649328939508305787153979708772587997881357176929080835572317881596250461442436617330565389584272329958051490999378786538957587213616190440948424884190091964649423724601513948667688684492013356225936694204529605652294732792560501069280883503927030164377694246404941683967761340035224175493507638771200229492571204127630593262357231680791520933289895663237261913322365017161566691972630722716380402354850549612258539044837769786157908746016026009358352994383120066783845164303290016161997464477749373850388940491869007013653045102496531077481366176226424088283543045332840372311239086933935425498086501555810892245476065386198855709537000541882104821595800853838026193503689174975863015263835407820130566005237317411612693120606478372163938189800056143324142545983580606630970539760923641815177186254873502992423453060196560344550238670640595203655610306140211056662904799824537803017466969950406065086064308679877484330023851556979269759873751177719719508118060046281495803078136163539772513424757977168841969912455969699122539383561585463544472294555036067136602381148564381097364696485898779357388071431952125531377536740550298056393870226293956913997364216494637198624242199352008843110603507846187207101783527062445994779287193098042980633532596709003335199941126114276094171294731635675654809608855586904114806452305300029431453626214141742285501859886839388246990747510861616132114270059462492000747447948402012047385614631622715343290598304065061320027831307375050045700496701330546058027426672998500203518507377546047300972250026568338535419979421985872356141314031162369284212817434467271009717523442290098714761609834602020653408083777473002452075730814255800028641597518312881848052164598712963032282697290522817091923080389735484440824426320674641083234030342259958467358905350517717151841983288442753117228861401456692707805974959061021111172949874557132745586861951102227114357394640584877795640084290549083244509726560273919387169729050317003043487622269516440511384151719180713424497048383597576650913130577038674890061802994050777363168705435960677856120982658487132613792867966516854530502208718019260329460326121265587464524560479312242719751206423952538546396796053455936992235693854031884061949268642996020298498056212041960139395915446476041827286130611127661869027658314132861568893257819840602870372059912573485224021348039326096638235101292517295305554820603423036098079774620825741655227714007142257811254855770499360376384147791887378618129595080977201957540995686926203895449682134469249147113154096918421977472229200582815010120073862787662288303380588434058695779598087358944037694453976039415898067960534549765182882703991494517249151237711030274898994439928412788003428566884478462833001769247902581423620925102540526317216277937967123998042438415778806993794202538405486319455610581246597527293889821307807061667540895286189733867781459836230448416782694164716703537848549583342882198535131586520506763918620013110849277531561846493792807964522860819996170134602241823801723985231046644915472921905568333930496543040757057854125588458286787402511288719447471823592885600806461393905019173370314335186902260326646962611758237650302045363772687024924587706882912221017124292007318704294809521358693305661946040758766657866010492060086154329567473889061266825370091755263015944902924589017493726709097440340002480959175924030833912720702676124830169201438180105174035810698667010660548745988935893614581618337145810834576419399322613781706392857083536104468569593552944572617842286494946364820289709155940905149540012326280072026166100766251050069016921284031280737586163757521320693924703918681770157278607929564449946836360347568590284840299849381690468386727095951394884022179693820378130949703489801856849397031126674488087158887172578325731031448142572175044554373480923079346353458563470382755847318377094067627478408616063083989377512240633676542223397986202806705667587569911614911847702919514950026788248252720498994987498965035468932090924207774442668991767320293518610229119373039818780165344159668299313803765305769765626468335275582894870145724111586950346066010992911531884546442145272790308972343529182335360814038243899191534410331618872125342305190286564893780362280278570862223017099030755845127890667173194023660029198218795828226080803724274147639508583152868871982701552791213247029146817001922934490267732259957282497104277342856515819456441950449662824751198862197769854130695360526968791477897904680447970566241179986538705096892029925150298186141958407757891224854426093765403380700620411386726783620428469582313617662501180758749714028656157134528562192291889909397798680519989362695364601371667497666888581358012784620148829514731868619073412876669699022443183471684427309174623401113854977260341988980784337463132202358511322710587699838972684409863248907735127007792688131075214677898886723645325832192280403937795517620363195556861620578519416066464967664860427044319436267832408905011349052360575221074995551139061870239171294826060124106235964267819129544138834863482284881484784246712919254127193120600793973238743746924898011158910379781371680155169179067852051007201910035139105227077355666933672885226438901945547910982965238813083993709048957715920484099334219445421350148720727599498257154972898465373747839564807014480492963387047985783587112033833719810898288698295439672570866070458056797409231498551771718646305413151353067223318490048092046444751175420269747220480429134029004640972036643043243270229778499343637718757625748941460124160041500972768942775205436048165383774942111849366715890918936563038348749641189311224420703968447933507858285570204190848966017797803168680304243061437503239560208965898435425989455920850301312689446745284394226431801418283506806480443104140525446587088868014738750378484285162900080691992663032345298572952427516642124959964698366664122863536682159225808135325639212437452199697346182167991892178962275541603129096181440691494890240656471105378010364108788785891656999319275967721817922898103135893397780188020345000523468818743512889896886416530743417385881999025164856338438085190898910870241940138040817380695232838945085724285202481892410876391478298766493704103516374076773412135822529892522289984247921706455837362725310715108152591134722846284901161019773762818379222642984273227599084477643215274426908442111525842792968844896803266677863814021965832963620769362732494835603896438650049611919726710406607999982023330712865331908658397478982007273747630534883288006185366883377565550972265711538807288046305750137359317269314067243390048796043870318888083553714501934298812792617892665216547479487849705704282278405387184222588248727879406860079950060537209127612075829904221061183161880868533025672309754632859689418289829798337341686921384607067271463042549760442105041289165356700235819370888393511932136679460900255138724194361807913876606816481267730553936829939706356222262665729464213195692174945021292803252481498661406878767313692454179416125584820173645129176795875777853062416498973193360625857493052518756022744024577787808981200141581183594905952715306529378134171791709979045044996173140046641611571414801128034543356173902511225433754245582366205536141365081366819403953827309968977047262857736464391575197867861703036764961863715803251707054402144112106490632047163679954811155360139386458244490564659111189481290298024309643747334444489533181729220908158943363967664831559622120024862881921003655302111286791664627647749885157390866518006100124781284642565394080569021037005631181326323701896968451722890160626659101292024962499406431552885090526781617267673975977261933863372563657594388415888462635512741486406448584263980917908140787894532797149343865532480777369065322820927754690208207574053076871498042916385440001237236807414032675230089738009182795641770551354612636360197664357695443484860145899833990931775353704811996155725860437510941071344268995923552443218606990482047926092833966021080019241884951308892180336233572132104232587284798782362690024886202877608865983233409417129922401479270088056293917313383170384535581903427833549741946159470687335665057228876614649034657781213017944353807145493132235053954349001667267498246358199655348410198881815373496412943778945299306233987653234334270123438697270436744234627074868103933619372530417352062074551349103231952715297121105094915188425932806096842339455320324378880224595516851671105026075949888373442339195615807587917113470530693242748560188030889403220106414871267794506398392114879333718169684686680564079542480780976908062986301821131314636027996918717601818114096741276402624996402011319131700506166988524438408879519941381072867918307613308084589212707644287348245338148286982377067604699524447274637177112253220323778438881286118991324281636999850891696111227598164800642298637603742944303864202228268935824999689072150926919635765950049748953578275964264317243371806284011070128468954575103411527627892982976026772896762120484154865931763977852850012576572381148425099633220987630762877639232812658165312049687852765207805343654302934466495403197966244817934977855890397898472234733604327016685908431954983476623201226897336341862380779019477559084511564862790877237082018575609758246055412519718081788030295625326139975736190979750148253203858795118304103021702433912574376537035731868719525777012221452135096456914130862175021500158824013224316125274928216988147278640650697351793927987052445808259934567469154864223174427765837697282917662290294955693720291708834555770596626051203144967856028631724471519988945624439587547371274018474379464581118171613942842514455784540677876192716585929340323559282919650738431480842888097538724528583923314258645738416569118602937593871107219346731895520636659655037215862036194451719198048852285722199177166629434603440689449726136149837735280840456247732452497213366791263315663683932515459279322378356868294542378535300128676793461064511733105989655723468364489304840903470472517778648857140329781412486500215262100089318742266543398930139130201107711891139747492135817966880598157165173745342755711110884541781297956163044883640542816079234408972698501188238801893855825137541454835510778213477023781530639112113435641494144086068645392465055582805195372643632315488813094962942494021463157558132086466860841083640064904565655981849302364139831319337054253522350305483044387276385721878623803971724409711633853377850990492415752274864787180206160670400550919913811534203061423508815650279316805200643983475601055787736549314493993012213858897084454125425649777635121591431329635704457560392457795850942809923876176298110154634253628311093718813516681454623512098730510574000052055236779136007698833518342561098314606443227390467228142999367459228973164948778362147235995377723891342738019872377396736883177416770291123417944685278807236857333809564386008496202584710322218225501609387992655787849340478865416620387106470454000285187531855014219808160477438139155106035214778035046570586865442387121767723916882512577657666121860237920154240839250959102563096086206190124258050218733002245886632720223565403734014107942780846874964180055830398366888708634127684121852490303628489053631261813768367346596642537548695387618401104371062517694022871681582304768352949933668991624700603041305337502107580335830727545470756995400463823636639527167652595299893106500215651388879235033608864984571580811334028836885758606366998215934763200373457343901206791915819469256402809218399674610573439694313017143268981987531272774887698228710275819185348195700957188944319822333467345138818259289128235012244475442685597082972991030515469769326790221030651248890717371831350476225319736568676186287570799706720094097853934294447384254032874539334884158695661323521240550802397367150296338716231097629073527807800303711088313183988054964874775148427633805741255910986827113218021536864246425804475479712828178014289812286173065375948375519778846571552627661145682053091442913295803427088787335188692053822366581742039601124096011017307941096523609487157033565804546843176534573424108078294862397860298791438946831773029296532339422098286032608427625046407309224410917946849913609165924014010863246685302302876451510579152112062213698019846410677001440123937613236911976156751750601329999673547442329432477905373098595381068399294899901618828387865781209989085101669471512374537908858328141449433119318756307018580311103377252887161305111640161587047278365082063211648206877583744866063828536392505269294669070447884700100103795555991956935152367000814987578229085138453000078356806026372401997992705893932334474793071756275298091226598308588881906350819480504193594401428655151245060358546280277775766216394045223320950788299729890040060716477222982804990895109649331636290952754032969851709266522269691426978554530945347925669036775982202675748183630955870934830395273632947693865286896150061665000011856440694107775893705590533697304551393719107506454346986049555014721181210679400751826422457882643814790886353769892853085986180538998525785802988286236012027455813743760098919207676270447232953023685210174895395744331973434824521795840962949527293382285584252922857227324356084963030040861334374318214634935756625778492657080369734439820489179194468656520606993880664036539239875575875714921472565789890311806683512275414400195045843177834796117890651526799114455173214465544946340146700062300979811069390793678321139394602971876625773666377505655613356634775354982432957996655176917690357980337085171595613286497474431219577707670189083086821298890500021902069595002339692555785491375343331228339809750337737714907156492330709530368168340529305249571485886994807085659920974015404891422778151497503235045502487517243009702402385488959898825146295424916689234771214906758035684808791484322006345239289075238896501395843507743337476837562478401344321118454041298735198871372517143165751488571489439974986506019939415960980747767468411539125275014434266131519110465605625298251128044050349393525031224143153846368781041225244120088075373859385391098402570152216184025928645598225873252457977027548653066605246032741941676455525907153010032939352135405174828538557810600299777583449009149775438479457646552057589074982531423423861849696249450820884953449552507977928069589865411872034937855117342840265107832232922605601032292769885808165309732920838524641914387370905225830536221330218090928324887986878414465017325635491033130024957758886183673290658802528441789507660450556255496446660789755459791482040396816470349878246481927981685611945533412916122149151351939988895961734364440967750805401821404250864163909468714511984421834902486371441938657378120781149136947309029526177914784999834606926259041921677807977914872946655253330720459137016027385645506595148902598750574111637328017949272868304070615217533564172995367726980930653069610307865524689709901827255019405799388265500574769977319948291457689580523974470167226650134200395011723062337296725405646057602453463410804031880448008642401173093537971544142847764203233113331610866644168901196639000021667456000242339516387031479947391557482026360465244359896295465894351067318008520150750649431359501972237831217932097488396951130468718700989213183438114133947786430303920578930452331695766181250377180543527398638451127981839625529456167509521055168473647335955818097328302377981169914653572909321817350172139978777750381014722396249507891431863067964674945497401108402742133581935343084688727531312365072268012309343409931209904905113155277527816183009844383140156696582164190047406327665194596734826479113263143142923821375300202706371722697448234174448102900633925253168331048120354665674313796672922357322439214981686546332129644638815711522037913422237267295868791129017146549372508424633582106905018706284397646167235237210913832426480341615592662098340063724616850203725182679086588024990296184288370428823677306483752887875020993074590353414160832415403808757400863034342555223414387189350453473798245552214108451552570484834557127324856295253397858804640732934613895552114781905990202586830691464568701275034950143088997948162849167302702577312108493829810868718650569686051494547810370107273498119934935193756696207664776139452658976608011942154810893816037961951336975274839767862451894056858945969882094307487044091606966948306338560917245080523939354517342997620750300094310911543188471185297285655368534628889591139506453889262413697072517836197475513726700045818560093615785343685068120821458320165437914586870363756200463228546158726005621021257240223525632937161248116628976655203893092565828861266567115343301953194784948059366820494183674446562249437484190919304575440920058721006778787502396046460111928171112363629744810423091951596270705690245583699166845212446514131387049579297776584764082586022097872440634787811539003292834855022329934626347309622306593408809036271870314998296952557955739086754938901749206420084043335226050755924899624141206267254496279170687419722506628323132420345199351769819294986129053453591499231214244178168882798941765537900480280888593553547778044074036112809319051723400945010983689306512405449546773924479080949330846801585527055593349286775470172725833592584713870559288053389712640060256891340283769222051558462060716312552568708330078798980580119142475073635457534954960970874743134410893459647439382099902461872330175695128709108152581271914806261719101928305154824503392844348953978353869687738046761521409174173263092926475382365262773394477595487671658589909040386273915942147478030531923524963508591020116459586938276516683185718930878185696402484492003128953456135889147185922768359587209145686848037988374630867165901435389388685079370126048428486539419111805337879552760547002384594721459294486449957077936599367646394769011609995474200987743893781281833277671676167160224303941774714469125096571333748728483310055381403549715981685373665155124109629556927041072078257339216027971880831994291422037542896262390674363407976089623238854653785771026917612022803845625616904946242226813610114172508100421474741411868078998767874377457533278296634512071824512456101639153295595495666459396430568478720454908201677781831217292659070160902269186378779253377205704925735251716915905961181842358578873772882680795512862959277196607168965063365301427182892040967294462539550228177780724308065649282503067385291392818805157945710331621690816289478898281664761015659016486573660215935678469486432718379256235219312117369435761190365700656306688895504201845571844094631521598676032642666548722315951469026946485445942263135218341479264828493697199121890572085878509698939717124095959154694686513289433412753257859192559252784693450548084015945102483508495951914134032373563197133382033641927014108912339506189585688704485682783658120239197292418236202410451139918068824139441484653088363493023877598510108913593946264687435419408557000080510830169098631158365602955006094236660030474360769041566026833006318822884196116590655941769984010610167856712388739479535903924814392817596340002997998219924133673610883141784721121214561354688419630219459032284197632296470760745200216761485604731683372058739581947383987941879846863809603215473249865514411803319352281954287213598825681454881074352802317447287171582491690831514108712388798767859501472938527839362657052688740026423907245919322971902710117117901380024712005297086910496145452713129863665241587282187519493216090694990553649076966764222485889773725210865748709524682571335507489358314522331243181700490335803177399559847116603437398093668799506433391338467503939424103902575838037950592758150633727509615114227913178661702519951151452819858670298858904554313590570837805852817141880255439862277464123992480290231517450677362765544689709692305132466516745751365977651195086239926356359491537041439531215722901867936913688855476046275829245067611144819323277470137448426917852906558404848734074506882451729632342403074709324850209013866997402728399636004872986119544007447899439166954649915784616322634865893737142217052471172297160362694606524977060858326443151222613559639832217291557126706607471335380545030582706863515808473987647529298538014716278424668406627751346395424255385597431950558519073853498877511486674049311176046710455694379010948677474908396726324507271386980269048835176223112490328825721859199708010795344861421095739427849556045899106335954443190749047541775500153681493480059062936074167908505279076420248920442884968697252209317619336518916240032685622835659452227972917081168372788330797926268638394689022271273857494121196246318259054987709102017974827336454372025575613139535852361144526142908286228579573195702008076977096327858796942967952212489034297807623569052506083279426705883172626326647550574240888705646313044355564726499462249862196033488651069246332040552559300337724614991343609556495159263153766239479257467965940459160973600356356258967084137316389327916132870080640254963152801852968462379224306783549725164494483567572219908852961669874629210027187436956541893827329395035142733411669784375235286746105172617632763339188491229499838983017275162839590698953673979644824903491386949057632059205056721575203494847323569807414248401497038229929988903449091805164394632212994141517506531929170702877866382737934908732596576341593234443321938143958386109263503983869230773878678694743864070602307786774713892224069060120656128522407924627550429800760624027535858491399569599742976924285282482530804032990861210505187694253875564935502621486111560279797965356654834739052772460127455608535263864796105594183710506875413012986852066622372743871102099750924513362700462528113492372296208143785685615610442970912086857203026650669619275686271077442506161596114624508436226402410035659324180186852550872996565095689524314175536328761748961068186306445571755660535800491250213252881278923663932995812722324428053812728494549585220636003278615074273768094821941984687353004310931428289446460367017531714656592639743961247611548066067445372001777407113521751791604047542636135089625018527302409227506661334507252192315641961404112566388119246830880122527615083622759369045126996011940471586270940991546808810960778653355763488683178950676469173490716964166491375535534257855581256072842831393105624504239194685921093904242690969267541646564223611145320068472057524228168509099559920684817587847523943397925011769863574487627895953369329647901820097919960598555316718362279283411798879954218268484799739051538641305121939896449120330663071247553354707217973676842291987848309527599720684095323536827726639775047985550298227011354163973670613712841767047231869725429219188705397351206345900725709685335040755857206229197082632101032637779673648773319635259550325390813014288653157552396108007311831274505606384490053231645780856973479293114956277646182899332248929712720317737426962316430676471602058695552815439894552711748395343307625998871554510706645759408498363766477489389336463486398451956601435818610065200360089424440502547544825548907125420727883951373290018595736576770507343675784314489942889680199551562111329574566748435117224046374376859978951057884703521884276146332039764369184170492054411177531348808018229723384628270957301359334973438786646003044381718325023849514339492875858966851079521391231801518401855240095064813163264503342399247325456371942849504227501039036388578729862341919935823937071385088368189783859002306350779417453411278301316480812899962385985247440673134597854345165711229170348094636476597979921944885289318793081168130533302900971698861708716951147928514076954011587570780058590037277682310094783601015259573568365189545648578604647314772352876794649894921063307800362430993791265268232473981403805110939643899358532016661089895969899278059885193525840545007249374329697714197114856461940199036375827229861317285959395772221620457457173843377298000207878013734186950929275085364542492892502401848329582109296855795795691280610682143265164819770693169184736188525366614622647097689337834131762071320579962962752694662282742009402743780732581181762631394557662932586135352395885193234643245873525118766067370439244252462169274636999806392735880349910368719913162086590412280684419521412680241842520221997031893781199091384305787273564866524009297348873291716598186590914309733160423571188683210194118562486698068243954431111918265391606243505276730129975411412647910175844881642060095492767249425037251825016498744891612293103620992640054979649219726839196715388259205636603065012344132193940350097043554020473596333692054145452097038595867862193790255001659308568269073078606016216432514486729582152230417694944970669216238019544307697797402612418087555114297532883327166918128035957668821331935565135738339927816446469447905049552230373671749196878423141860837773254034046384518958602449762517638775110319197479396122253040408600789931141412799931371996805431307695660583304622417095964019049989846551475167007067735515810165730712687505093352172036685273764591180732551669896843289449568616954062900893917209635861165671508494406060018874896640043420591807597355390526878752793688822753130827854278696612153779881453374361866008440370417407318430943576996303718187935118055417065385136504244552633123186146434698402155031620324782900488384734212258263941626289409394846750006049226822575777995941402738295543791997233770273841501645675070586745463955066035231599585702412524051066229060514538771886696284984266322320773716258081591745590854525552561011301003698699272897223121759329576892095103961785199505372746423814932929528870170343894175701095721384244003329667007363540995577774693608055892387788251612697667225830179335772670978147278723121661734376533128747057890856154500552657967259206689028771843588404464315011915269370829167145388926928775795640677638084522205552371368505367278508909993171489978593889758033759865592885698448167691543813751842482517859892539279421493207236808084435216371330145331126060452429474355679874461029323993923030129428091779984196064808518345620237619131486292160051581289136130441159432339728285127631696984428656363648395273330197627868456109929456145713536852064422386995151409334548208309613335671922574616019998809379200526282088781975284860422006431816270904479618269119387319274438491006707389646259498371961421158737176603210274328197532487644260294963979379590269738592943231914061457406547762193718993342350747083750592516809065919360644123285227183034261491086614918142531802537000528392139125426121988311430429672131909434919316590055344815005836111100876747829405054347178386999658901449401650124625113600060494470934769749402694398657140555040377197241471006541826226401919793932796238002417701354203331383844557912596317526478982094149855101375751108500226905473793814796634676487248469759623707520526232892831554526344523071040264647594337779143205940699689483725021463394187865653623511418459844780175049408381157108004123018072571369821111681742449089532776943201231003917004600565409663201458915741615461237399576949313586395918523931540684599604872193358497741807821967273255035323612936399057418432800676066496714147151600110449949991460256309295028440426447699788328827112441660574650384979799023616436475162693121938096072163486407874267949861070047931548763810521671681844450524630919217571219470492809195743648518379274453036075775214583193025293621753581987113721073515780105752917006406559131313320448441657969848166196042017432911179090862462345524944809317674040356513830867223298967653461579181041126532144562073711452402150942715208160503238226694527947194614238209524485836474361330525459716383889406655715951180497812190002988339600099075466629371460937751013976583366120097782881959324131548676472316592498857093431852355825383462158934932020584046145005760750313740509005625520327986201959439401318780242893675126754937730188301125449193519832475701560859849848007436919735135826837344235674225668736184407032920683006817950239139021249346055334778901476217809450099909643192210160748043300787420073074663326926219351851275963508695481440416548874289775740374909644059060147533829732120227243717307872836190459500123436706982095156586253430735791093617110423887296893331395098140693023580940723840087287325390721024017531156563281225739680574408310724856987412567679797494909341884083488857456417254018284080791320600690418301982223942024452243172946309146827799914715802970763460934867400850777384710490224831958548211567882202485202390677835107600498383775220764174104992329844307205192361094673610305264842807394392607752539971570629449650330120199641379093140631330382222582438816501471343504780747200663992685170679056283481058889904895245796918527839974021269723433725771139685743893070988752574160217185202685776680830465140987207010672001996660087295955417225537832960482281226340777721659693486477089516469862155725494232608378320013529889018559432474775607374828973381051552312775020088600385262488663638534654012782456950621608997903531921180915715235964315397097689556491625854886291706748487056939494078454632289859644435857596425259735484049178483804340616054867646450016736957522459788639164246791841543889626417112875546993865538004810597940325439364312771692886151628670329926542399730515459320459319822787183144794295341465062975497352863549771288425923513205189346769479773658471108336304038371052879730483579604377958466106901427816882859731766913274083869377766780724904332116480663571163138383264450923169688989046245102599070472644110534559326325080579620973804503409980235836630771013674372783056392541159773333895098653340904540317117510014391251956655724870056679607625392147207110326274003218438452598951245153825245156425759344255806077169854791778417676608494871640988276849080478432247710865761231750902159135232949205470941809069521431230753105401064659471586045038259004933536217816000761608298064839455389571956096155894940542800995648701172371880698566298978617571412586091917097928140318895395879869583455085846034419696658024026650623881537094531143122262925644029452837751507528580702659745268062448119378535638083480170555888415026166223248817521655752428163131858913581890113861450845165720032535853026129131698120886620194437625611448630415529000951171844134713628516677621388283694744235112653871513976043134194779343578310675400171766825580875776948939356729612154116878081514534764426916200883797777897892784004098255514680749044642244059116508011518717516359813989667658230326159470278719983888363335438679223908351188735037930698694104533415513095575138875199849697742113167579774584184253155049895114717057326623436027967340709797550158745551959275215392671772008434463791205652200696201539931251585430164457690176483789599426661285706262693471086626993811947547277185784274717244590260523228080312283638383257206723881703374270524691362295477691187989355664564285117732351166846932672421716623052883935980536491894041428223993450434135580949283126899004428448011186532091494363447405577215366077528143679490214324168023817856171047166200227865437168061205233000214249983565338770480025826869834353431439729959917089777084026241375518373616880682387327267381676254856836879499501634187081273786247087917379256942484703811421955323439045491256254091100979920410387950382496513751076835529700568511083501138232095505718410954397762963688859427574730402533841500703651687073998510559636137272028309512428318465613165667783560241329976101777397575730069216312143841023622559136002517515111738153936234150007958742432551133561502280767870148507608415268209348402994379551873809702780168893494081460464676688383486267438411618676881331396881867884961921577016442192445807403947467606773269421783602212563724801424185584979326687223073960482094662433657958553011332278593445070910635335959013693622003995195897652985917218179713944888506943306781268918176183632239184573033760880567657213974804818644749262199883319099318320087158127962329417800008365369644603203355632673886863976983899219275526937374825354934465892949285594386754452820329278459434468704055987454096192507016266579133694499822342523337083071709668051395962458609092524450776664406594903797181927618780860570777532578533632622969446259953288014930964457482389767549739721887433926752150162716827955780352950289059191636650400193302632737457482518778085729542078706587344179624810800001258528341980518557639586607324875636671322948422737935840357115181407112629460842829621346034688356792072313860372502514538842397583651606440084967134814330511641967390454254346082972234733489364968198338722981956800248764026075185723370490665319917259317051198241228740960142019067665990835212405335863261348029115039968322438274277441475185077029613969368347927952224520649598338599237505065594540814644995789747509343460088263764980454348258026413054247160027068441296155949140344618166599825441534143319072974982814082757777792678156802872576109343577745739727918272469697690359023033006781863959905231082656669142721039302585587149579839478018562866788298929698814735856371646297070062503303539236787936277227739012118764186397434866773942151425431903314666750726154677653126178599437645274099767644603923261687766673376340171836029465330799620797153625458885575164054103389055565034785063759733061141944829508316023873937306253152432847422152418180709900582112222818704574087159055597157704132551057583303543299211491932961346847586376028608210245833992018015548058035008430040980790359550004543406675419755017945536924920758994099578688275184500489299621088316055499092094540951972446197195319987108049028409888711595234727168477323230434814278785582548349479140261735611697152408405919004004149350323889569953755208612063048294839418248972895518930198233519937531613144584901871636827486436237204908646606313048336817359435703022449918012557546354698186736123406119554873992515900455494858233571203108148520036448876023340835793493858560157507335815272686211012534889052382498842205558896796286269264257543626421549471932328844576453914827220355000328480791064963560821060279257389650352994301153958909864096437031346895993246017287420799843311703240352954902137901417490504610340809033250987083595745245007229219451900306015462819109640201310447022894176428452057348343862953243614768468258615298727399114634932318603731850253030023514277034953590939239259444037625946171066661146457550033892319367452424263702774129756459034337996769451017435551156166999984262141277865716655068867129596898112510050700982908762240668597026960456838151972952139538505871756152821583142993162299599144825333708275565152418206027526773410768510040794073628704035655806076208733421213195056185865136289164540422940731988075330595179847145011515500975920583397732889174522631828205702241524978142676316519063542810487571040228069999760336403468247639523381435915946687183538670262151816033595782829851413090456180036277287687906403343675359122310669257137531385227716273432375155428797745823179372575121863447472707349371685961794412434517614969837525390714051882637913666692346983104870225416869630794458965844974164480615246012091382241936705165091839352108099199482327358323261621041462356301621337221936206539419908578063238573235754988676688831858586605411242999041500070977988329557324755774679045564073251746470917863573370937312375932645005502512499608167087054715867575159107842023549013016584652919906685320345379726969981533216914355709802434504557726605961393828427056111116670450993699776309706113274675743332095257928129827907734048589709393367976645384870227462236094210158774959584803196217837072125508561808239839839146922604795700633344894164866896410202982124746731524634190100836694657005691433309736481502074606117636002427557531427256344367589088727591740110154975909228630499144023816446124220493937170655308723857884751028979301843890895187749114866624199613068901362912336258026353797350296614902639394945149369521259867976742131286921516648133370906089714189085358603819416709012781980720955691491784079994331930798315246578271801094672177817118270401773632510705884388431663764686420286236111646791090188741679022288613511166363209661265462384211549636288700398310136667431587751372795880329030126552172969135648478850957965027092472173537852211296837371136354087378924284267249511081117208415186136887171668588317380634492123484226468620318260473259062536807575682432476509131705103983283092389993971058614376498694287759732014928628425895439294174642735677295824441429820161259439916912208884826522422695466504291888575243519436565952294852109760064545985357730549090229397574067656382047799444704706243559647550692365793960187855494979528154385191724788130455969623687092102201656072384334689246219413997214374574402554741930588748648251451855585807000314921155905529478372056166095025591166094456525325362303696680093365550805408450398666224025521298051332917257308982266601709109329358546615327453494306158995331189017010645809867882235521350677168830793567749792303528370594465124869461082646991394710388967637813606240115732871178336584954750173565823398312422227880807878105798549451869168488444117546879193270367988771184032677241790389547769300905275448037928635550819579921836483275959448893729637340892495821500706559068519061520270093312450733199891090360341101148811801472874163286117869423093785249415045022436387962560573446867474793646003754598046152112720263376947110433542236130013310262718925535300802442629078112473655687981523633983485127370955350616156625014579720510675566975838730711118613108934421422649633444518438867425167213120188256068196276598549615662078102467073673021447598565581050427088257086852125590009387993892383973684644449869720944314235695294110419339993653867169184268938408250063402088397753554916831938153338581422637311777064096462660315633511197260473303335474372222037487017291322470501208481468162635438325944629103883057128806616923277733741045361170582585188039555103156265503887250478647572676201594154420289752288477093320223139236540643773232316642248864575237170889330023442407109510378279490766936265936138475475153501906968043911809077294713933371663146881752482367479172722861722469776187824892576352352031734189069191233656735474609632459858619766501834854949203240620028187482759373860325381713983773507996440507679134149504733586597507944953092031121077552160128510363733915382876738624336643666414866745535702972752339929174807093587219392739528963024135789025519828895787770060734025134143398029116080983067696682101997311717229390515306181830404689605989939080876964759085136791417484214276821309020950735096569135965032690451312502658979859454676914861175874981862686659738365130950454920157556062019186589702789527728139422463471010014701825034095072745808375842142813956563372802666285481692077791440572390280741135624492410765624401464549902600490712616755527956259356073266288319542852811558991731757734034021870436953097559118164781242433496421744746953096623520998426346999130690846268600438150293202559026175033199045580246282467666858984335841657603190460503211998051131125781987901898968631879040110837877766525023915574125795735159919010790492571520774743162159359046283563603052280450510258070037113310921625154460442636251107561553420880780183114334726459590400976801236069244683843945767202971756836040756003895428172104898672215067877277776924107877987544161210064007141118883397502435514122327088969455166169640079978841246339459043276905375697117643166970303021638193947304234553898748297815470773990395907307176905693283848295861090835131847481536848171059785903867890286388162519586247832271727920482124053159514252006378041733487648134450133564937344619175237556604982311581014534905874929356633671809424235864874490120553876678353603042773210136292631199491965711057154417406711751916712266005256959781412001257881681221388173634215501835796894152734190254304721056753436865951749424064693822050084694735733041208586595694614901234919738131367495663469930708963179526431079390230239853715562329352133015119694657308222960543783883614154935660023516589229421186492308159184091311504188649496329215597640265986129259831097991328360721283366772269643234339942161064659694273257358732961908036111715934508228412212528197127278192724512563758684107933729870238174154846161527212291785361954172662945745390196035852091829992943911054924001403870481322933024689010972557047195036030931936820514892430585968911521512134412386114038291823787543535067851811518594591527384654584079673916883838377926060740128006393716473117725703610930509069821365839436165697444653986647553579301725928183406472373837062984478885834694799248446540658495965385576362580889977254400062965844052174229591276992328630775089544652452797660093521312319765282884889979326348502607129487670855909965990100197622206878958338019935960771126034590509995401542398693915461022836627176932786982106200259993460500476308817586564639058080251678673635975202344381127672785993596467537680149178981191621963889121547882615532006516005870629857531576859777426703443777183545582483538946081611201643954765248887233925571745943361770608943026500036152423164134995067479943002447240859162508484803402566780461522421166449811419173234177356019053930913010699083690168515016420419756716727047297555184362573545033357876413081646271036858811943134489107503068561617581642748456274215026739887590633340458232577060138889783508452388514031079053281187049035661099196572278820995721854322308168695370445224884981894816861912661990492461153045381050365483949231643692762711263931976883052257817324025175503271508349601811076063341474771368479942074140992789633836195530256233086915615342862902422811771488309434837144417763653095283733413157998762169375062261393211770666656077861227049381950647471164373474685480611934018650200746701584178471643612385720927863816932501896072881162227309639314516443316850502101632635760982750951788283949460513574142268266088068646108726706099883020762450526585625005366182204696090817422575387032156600833697806831139993686889026127906939045824775732085752095572771391129213793469863800663315029657741301208519164545624873487272591627268220602153714570958888080297398213101765123743190205304099948036170249906655367484541557338544034997840030951015448419334154479400364684495390977063989833738550252574967401500927693266731039978284357014892704502410271955235297063425958027323543638987016911893077275341434405908475522134373604888141298425486333813300906432983587762838087894668921814835968101079644014547401899437297583388682499178467959255472614689872639512323453319285752064107004002814995818902172968304754329810573732398713165209278305833268790779319825927026309421110276212309791117685452762620717330253598922860142559970494141979333850175871594461948777274986208041781394625731962388186061275241422779462514965413896232582475337011910282660382769394544708979923155848917282211912669605227008648295468473922288929368525142587120434373677072798637914620955492846602678234404020279709851884121130824297091845503007778433356393702155133952677206079437354584721209220402659866325686255841440864643609162939162687012057110456918167583611455017336378787972543437129504492161629754288895247388467603844624082147450266856048551663665918921823347846413349237730230743951336071390661419912097039678514857053623038725534013018113438597175321812876376558807173533181029925194392336928599855440095742799976200317622374044963408458633643787607499613928780693962641202028628173195486227012398721592908134901519393560256607001575853767058528889188803163691781717144242824837164946394987547999751181358432714168560072870981558191048038936119059469624797481940920485888317353773892077744638399459535170028288621401895837039211961147245825231231611651520950130020981411265120699234393675690345266835085439379045132081783214054713752542962972953625680103786768482231167063746962193935430906670280014847019822485570280061040397995688760890138645928256261448337520158952781503633724282837146668437015382718942881677574648119902192070484448282974070256260728808760969061992281700286019526423145913952868456622598403291960483460040490808769564707131367747984507160851308000605742279687859473401236966142316245372357835502965951846205233093942096098400672906711536779895987286609651639686083011028912025717669961623227313905457447343690161176434648552225242847356187163179992348316027324022948898305437577730891703403778035508644993115906344256381028184474162266619577426782164121540027184793487311099249186801400493145665831392965677777281848250313347350425801635153469728050897063437008570030466426586639233217350506754501864959209066300752132847202852538916348095601601745358771002247096645395947887092738168150622466095551197541234993325118294903970305194970456114601881490708274240994985195736572065428072227446644484001734342292617212618906087155556627140142543148792666458612617672235507042253879738795635798842006146786001684753283307168147112993584933273146811936750586339090376165066035522703228300703922060025245451043272161631413784773471615647491248315064093382540678443012013274569559124104011856904898264055718079298281618243572887671189396048942890568263398671250475670274423816802066024272426736215435950801256385976984308636001408794220444602575896501960600754918089350282622319016333514965493017278821165752645627437827713173776234637405103571196568896547568515506174665708467219985322364535529596768672311339033060925053072100552249243825342677396850547897126627732251231652246400334410365380137257919935672412218002573564568811867838905908786523217418846598781042242649290497725851581760079452731467126021274531859959198094446926672776577984295492177165090768438976925103863988829092892529786223570045255501106241266478378897435811650369626286480241021087931007473259310238553600150402813691970300959980366310121737085949381403139423771987736988076708066890487525094507662203387137299463266978725757824760203471985070860227877916926747824551487830706142515096253754160354623879756053603281411134418437285072251773132630911349663217563105642037250831465996421280955864247076171297218577510350240261878094071551513133781929660809754843231166753034926697781484412931400899349950988779315447945809381403839155276216915907195712462724178107278189913669525211049310145810242123917286092174444449480202703999233233640671750223683335793900086854833860562438597169957945707934610987426983451293952574269756648878680147103496537333105923411979417836861067992318652309026476846698828601143584195755648512389497435701196863509721624654108484833933020553794755207317520051849997499573823386168022357005802122760115244393265847370765520721425638856188913308851329329304461368052129486488968112331472936224716959512075462018928730923414015492531380794138516481711909477990593107078460645096188000710480112572547968909452305723121866394676527875872885213653457879965855120317156263046785525212954902819737369268880081121747540743436150880191832778326064524439372313987046275414718346134321783028975252513009783393164955197847148251932268123884740323253756845098002181178178440894800033798804587953648605439958980845235773762749480234259958322431200800769182889851039889102354481143792175678147782133584480471604160236121828958629079338706182702691882197083772668791671009715157972887511959913373773492389141869989100924566957806288571676408700021082284977551143871217229253254843532201092672663062099332972410986206173712384775026567478713198487840911037840065077332770125903006644043089418744275847525855859313662770452147159187316322757537700017080140756169952152901480463902329122538019075763196197440276781446142007351502870243574392027726081619219091758983443713548757326833892194894365611939009735605323295548335803858107686669075979807350677942702885689470086668704521756258197659029746082891997624403377245820986115434407959505986462395779518585843711248896491691416970130077775247273685493972826801169351322926728300881698125495093065408107047356733330221871735603008224459878070972543173990973628989861158548024120595725381324748018893864722588726898056281806101293069506723192660808269972699216497967894440898933614391585239642042378513106600106053579299917204991907049905288184567123863139586521445327207126711341151085363471427689632008646623151019087352754936348906640807637969114707153307997762813287615732566076248057678969166919702917621841986329697658378472943389228267251498462663512746685854992140073243093257988876693019808020633571075684946004189537957516180369969643110967360779988666209907031905773359599711163421023372169980372486492272098382750307064637290490245353686965233868865687916318624901421437156809503497075358746308416041262886122497805895021529314157304167668995753686373606254504369018229766376462889658044245249541317697953741514411612140199044017857027206584679267006547996369146947251324299333496440691417852249393362677609230759628095754797858614077525073022757250704347886027557246531017219598041109242953346593066609182156807605229705294011726903017541146145173951630700449460206669325917816813858498552008965627833496224823002450660322016678755191455192729781499877112175008584325070942718736720844343733043606859745484517372976382792455903353156070993758713367385994971034825457328454906406026552263214995071694060760926290236456871537386390247575557025963303745662971205599707026495782714068409112979165126052433655802809725946456495713055697844606542680839838774799741675372741862473261130441649010918356062787454191524869430426097328924361925677620056777809934594789686529492986966162591545317628732968581343195888838012279257228742164386528298427983194421742773639446856150166435939978371101807782058789525290433377901733496712097853639819663595047368869859381214970084476107820332411902526968966849303169386822896547304770164751891720268112124079851853147473322435526138846019209820243056664350418773771928445913527250708888817454832238738897928611385840702818497508805168694864908682227268162340147482938536742600266464857180968485141379208623991986808294833289626572389152166533604610879644285027751816730612621016768851354679493089837711641495852536443091150273513726196577327441822246033488496248629438519072453091708789014386960236131359481515806166728310643203088252830014128569360947197176076971855556791880393110947069297077783646986985873260195771980417230377795413069183908254082144303856853313398356163745693432357353603837844043414789790518445930431743115555083583318218830172527051901384395532649054219253339326762931723959095921659515342548656103988795135206413076711861332065903613921343188493872070926411478406138999450799507153199061737282870600210681547055410354125880128470981973900774355140859866023091958570572161549818966731537513752484744708887044478540823830933686328452472963728936317266371458371789321644251643099294630570461408362463765953917042827548057935717648674554741247469167824180989536820047741816002971916437988318560639603417611301085182272831395818691352515022326113426431450990243167581444473537252573885731781630153330555261827424006261243111560459553520675737132823801320225882031430849642086200798782121757929944666429007358153111864175227744649583265899381854254603388637836370042076962120942365571813472401420764529475953259747581801900986450690571214950536733722531005116735482040343336705048624686291354942177806453598778128733085618899836399712110548188411847392185653645846513010297146525762824612367960081788967213468309453749008399424633442978835137624726291576120083943537320090080729911327787075647108730826612448758983733526890504178438944866587369245637021555747809948123746310796361012570482908669934358521668913048282208315280687064276297147025320610171283415355305539604732877088429240641442459251230117951589267073702863576361862919883147964453994447131073541902628624428668951428023906995401945440880356406394448853890259416117844792805278178682671077438605252498695377600696845471986053331196194393180313582542345163109057611168639335301102625935072285536606958504756130999478642427630008916933943485071965439711170415590449290160571636718251250009552450879793174745140780928042315987873270926057265092987311033519159231083213099675230212369785891947880997318320809455199682669404058671470028169054035339724343070065099388036346804365409228453003634494811044848351870547152275677853432631451632576129650353778936952239030197907892484696787099005603280046698861050974524971882120961735034850232045446152523748413185426257824055890573659875466600000258291736400346857333635191150232062722216174793790415232470644287163498552563001773719902932363154815025070962803308582441254964823940018130601627716736876387489329173816929413672438173033363841688016307509759768375703800787442893801944270070054084440720605436971324973547887094396117288008771625320010731594538765296708024546244993099974031427922490684392981914889568125960978832286369338386618424074615685578416389603731814575665664771787677232191255900342257344501323154992488415694224240617788167612043372935676934199910949048804920204513546923461685169247654816731229434697540479411591889562280109718862444947018995677302550042737733948997541307693471163764349559819119323505292783538607106801141541737215451008715709912119369718246132059401159763041702934179947481312588913658518587551594973804739149451267684403994797909220815119619617009705666443977132825587486295644294956156281197235740280078190820292005780943086487900714929870995835450678370796128403967663400729603158859559497220244100191000693641410919186358395239804454436982411773413509287466537335199977314669574008019967509461797177908477591207924428802037474735667558479933560298859307768936234130758101783654170720860398528054107224976365237820205579320752337227382806542179528904803026492234069878687733672761751363576927773841121626677348573594649721318872269786715915030160926214821223930229666662090984901852724066110429914615932199301594096853361219597680961558632522880581174273299928394034705179617736467343359326798616595566472101055724415064916867411567591366102526136754661776532274927553041470115448002724957220785607454181664165699704192230515094662415786980366648195962812920448667843075541864020251360322741703645214164306827883895904752294871646813561070699872617633820446767404368565766887182447571493006426321671335857659376898156632697530467091257481960196208240554512727927168058116609425048565284687061492794419797398681530824651482759011007372648886575879315733732111896703266655973171716530391763067542175536958965249811992415356480242851154590577436746892557085772697825779568136961457189706092851783160500142364577871818410954729225182101520678653987425925893653738084091617749079104947620235153806856118110860622486448649399201367208288288332219297763586204692146895906862002278942869112964231484661707507167984422989705986935858813377621646783622130734271850672033346567680853072750010360172261058080327495464752904595657599630312083563572408692924302550095593353518363656074574265421986922699130796443979457832926965867411980114665103166197486572652449859095039344431327299029360184524995833741988283029832935298263309174079419014269344316885001228751424423555915018546391217509366442953648896406914408395988109022995377933995870914441597130019732524515229877520208445962011174386033093351141359399413131315530137857018610062887971474242813044144671749728322123321697893157762177433570340682232653646299918589464809885144072330375869487396030501663441250279931874400455794278402751859003200552214706994903582608986249232217085558746132739645156580638816133110218602512419056137967529051778797149096689382511976096698759511742840522442351879865321109452482187342489490499132178588025138919734057861056167102574246179593793427323060625172360828099988703428106803571968866498007024630224019039694200423854947221661336433422705116234581388815464501011864859203070863564402940694993899290942375629354485103763724602916128979489336386535492500560986306296139231149525076056282248252210369539077439425540113043771852260020506824808783580328937008544942743636678011978539312305491540578018461564352436501567227708761534997144817562573769126557126255059068405886315611602021439744722307421053097687547827490504220084435869417905087310401278366912680682733341952901975519121625478646919708875685085854956791255533422198654241186705687749784117247115054216746419495960391052805260929294543014438761674759737469432644806904431288365284170751626432599918533135236101189718778087130820073822597159140082079517834400691371451249855369294256944641863698387234345756283345811692682232632344852635957322334346896637663699773582692788718988458993380144562396165192383712935908199033747678513900160088600663709755412028139514441115325238102906024371261455607384495054833367790643825189507472681396656198305375879506567713558177651369719165464645965331645727574380880098217049787150418157197543276917026712919235100927835866526066592847331963992659162628655036216057755762347861544396037829998247985937618559836586995954836339453998871667237188541715814735091369623724032254222556286012276474003124202753643169637652883773903180042989821945418387540857553422216758681452507455860988162117209227704466212954594441470884522214447829497953541237638263945626143939617964809254140152007951963013961996145985665201980318180446866025439761383147762552129431279763629072815449680520656272824005102926465325413238863483782744900405705148677176571120677979465356334364228693673377378958822927231062844508972357208142706621403626302557510669474806240863238023372670155600807334719983931268738054707306141082878091512242005484912350462084807156122272740053899892797038866801184524789640582299125462956033434031768639294414616801933911252944599918917590836777857794845075796653141490734837503883316446040403593411862103423079312596174841691405933463277651496558089352375182758678167093773207490241257506841033644832998774043235993830373786307152885764246473232866371417374283188849332478976486603376491971055745014801966385140899688570869273397679956798000410499715036287029027221434818973639323181173492209111082394693299128250636999350273957431885089757246968257988840942590900022797013225918597771851306623806280591137066783783749495998600023589136879765854442103075099945565027647123350648487936960534638292022461446613775079872328256021924361711343172144408003761582452383208529509358858496443874417206133411147630626175689049040615023645915753478652657744389634421370433112270025454530795272620147771640355904359695628501542758516096167900953300455650254592407383832382322896479811711699861168248655377930095243429458914530786522500775700542050659221016763734693209969442650255189279595807082885869141351245513540175590607456443355837645611846157323465536032148549830022160197790502219740523351361860729700173135445423902443504142371048002451751844842070380258755704094749078798456167607063388348690449642558914696159348934044644482898128596361631321536277901145576279470819771622025979050052592995781331699161833998876527675681452421877899690531893956088374987943594364623204360709465752301137905378751409111055241003145220059025061423806348651487624542859282412868058837017144650377540060137882557247672934258839458059478495758759878057708136177071753227222349648527449409428887724313514434842554425033097221570483132528039853215799195329245688399397896389217770724272347317685874107227710934488395552247383390381697811360723214870289499556738088471714700506527489680438998012309359572722672050623891479564381029949306317711369864955036875170827809316240857522048010788150694499916433323695050953599676936032239761798406651746378235399696543115274171302009004875131695538313322479153448619321076374051950687034415715032557480504624287809991458688006189244786622999846897945592282087789172508122255130115045988731039133429086914968284497439876040722276067961339406576239173590688356320585603026795214457737862191472512298940753678285840962177913048281923026458652093055780526457120903494657591514153871753813966644548106620431446026366768548356075878209906227109748254273625449715431159112976465119324946146602769429871271526362249160136019084700947545300141643590546132974170039721762125562652054237477813523081469505573586847465577939916674778875944740711068039778176155953839275344812587010135028839840461304613471494206293075906096934510545001833236222802007896719034982417385785413566572065645462871580812148739948224438015957874125782557712861213079349979482252206786376938746409078134483087107570147999992656720937266733068700571900897909299942399437583583103963942499711257433611250681103668915012509844188777591974719764742112937593668593417917445434109367198285952437097076504969905210257214303516157084823607497078417673444853339124762085524962436478302435433188440294978522536482374522253431348345864007681440360152308235138689874096616209530952759141573061576491597470696895301811590462141263926008549124214363279853283484207483870624193119793120077823258673798204545450126890473091100570841111467877020633665214558350431993077679588721441209419618627669426489817740552329362728156832991187175414629696147384438172692369658180760694855752207841305285929254836692435791124468333863539168011088890340968738645251275712754687745765199702772882208689548160945586503260233103154832914698641769809335803338465018424292775440212586120657528438583079767511996026475477896387606516214242898163984673722119561764503441496326251697572529473838772618075973351542093416264814642578295363677386573534211766487083708350510431183659283018852002056320911867718882191446721248804718862126957228275526345497477502240452302113999895056648623217283356975372223389046522366117862099088674297965014763723202463404039326280706901460472657857269976561776922120316385606182345557592148031864731429169090450113926270123335430320264392399702274551573934569654965997304775347783731853918639531107725481869254917782259902069395978912366311153277318298616588212095624603950008354866202731544321129992151404671752338148902975314125747023721609650336980224909357213559608022069991161166811488536783262093687105697223665281534652243611714220540652647860427308505700486623014655574069031748716762869455039114918923668627153270386123479118047791564915746177202914702484207839236054420555240009792277320302791547248960378057146878319429239963904357633756333889315963884878387380876078462729322782843527951476582363357639338234445704219172181139001314280961532848496252372850711441256175097434928503885150458062429764883693517087235427253551350675222544805106286003659869866926360217755090841523448708243280697816168414535554959623450816157177018051691397260956334317959983704090651790815745128630220715728569072974910878931769734820392817485700730734473436297266228460166772038429600389594125891788836165066183923858266378977996856689227015669382435750342460073044555080528737493197148435217586221943455187207667038547938797937872258507929978361318109350682404404441038938818647070305198445049451141470364881451751230882095539474183967297033432197726146466271235424199182276086433389840686817319180854254435029094494271144243824795167712757898753924378969494808203193718434727972479996234239010412336265705052454242663083005940208162833929015407091776475688359295027207042970098631697837132406788163786611681221100467210394267031718946948862137771522653412529602298514329930790959620466370754739638762561811946165997082554364182350562575888074335899544139687328981593938687263474734972775033085836739995549725248758439520035082989269385509528989398749394398794496761784182104406236962892580609056457904201128357423693720072326392716257552699346505615239865774102162650827875781029443182234749614163705263567147746328775875407225658539831931528668023453689828627509377040977036609549987649921667837338832051931740405050730272421976463382520126801523095248559685229342858209758727619910813728800836211743830893173281003774824995277750766493909747861719792183804816574018305660870144347215660758247863395942801046970538879746889716648920402142407369650297360362264308504271612779066599098518252435855109803932803176520992155402722860270480362362431568572545735061199939892323895188150149262128677238547883458679801987862174496705153169312593832536027922826049977898792041165606824866687568609131980877481162568016521021975471635664091680906619013703612010544589152184625491116608331246614406774908453347845463307817100248160151025527660648046904604073940512913248926870538581116778229841585202270865415339717241133183163852760336707244948493499352505727320494042782256735621407934696821193526562891713084224097958789844433023434196650678228750536219771224602571775131098003087800471516004332219808062378153252190476642207665393905719825678266715230731876873034389519352038321609553754856768725293846915150896028824519734951604852129945826082939753005514819984054804563464337042108284941056270231959904624810060895929148975344141126617947888137068706398005021418084875090921637099583056843040511357031668690271900598011900163294911352490841228775185204388174166216644613556613008585884711005739310465235334027420943965519266308057899834736920418510529526700864811001396827791066011330073579372518214473963993204630569396308127416909948159257617392606304821745458532868896188267509937066651744801062175197053571411534489331743447084867120211819222609500508375134922276687402186278078466108735763555591919129756042783482409018864765543049779074187076788562856051251045227753062460393253283831922194461250723300843586206787847341743587993515866650262103455090276793570881218339541699757933538702168397971545636707897606986354556928841461398215214737012500710058112490167643718258971687643848890819648952723016455449799429596823532442929652303377501224650590848513554102568757697541913380707999359848510388331018899726339087788960014995966073079973383427707828247460756550753518242221531590514907073401679359630905593707871282748416818699874983855775964178910864334655139736717763860438467802536468647634240342028879132556633106770576188413088854149850144178710919645783908729657981166674782665085051563339768089704274020268562632040926172614605611490631549660665048996105213558619316192121132607552605695391415400578042292751030671699457197711378877740623742203425538748966452493788620747567494613049467964914633088122030135287797160268203214909460474103380811399990955197973882435193968889816735721406251138914700850109834003615634836040460875949077849114012938437939566897074211292720459575023032100703214153045916766795102804181914849468172562231574370482987911107569223894212890115796307474723890909860836716846228808417163764350279646621589043846626828106221858460529148773698446249423614865101741077387246752188204892105727908046280114349201249155599136796499396382069162917263140294534450085845114989726691883373670498987689852727981882279051374086387542556888946201597492734203681491481063022649893310877246820275304114195303857535012063136523382719884876632660519878524621695112793698528950964421751359127256995350419437886462984593969356926282499035669268750091752496423216063524136356695326290960033799539131303521480430296882569054556109435967445571730057552165864751455560991043155153779420808138410965754757049187848997800290651080398912054772458847269441380829867420287519557145874321574951228223216847827642141841940341398627931356919255893592790882910797445197034765172898024225245661393802414454044813111152726077494837441586913021182866065556524579650249113565448498514796155139725237973649873281373801955924430016493203461811548391634654296056195793714276702572367666842317020603398510503301199217080252179409873857280013989118760414216660026104139263455031881446811640134995571400953775672362931545637138674206466828439349251881732036497450977001213729104441617817188476084872336268520851420788712018801032715936636400605457769807985115043997743000302959197566737765560512643735239586915805084688432445717588570171165120251777361932917734473760550783813426606723023697394179394233040904030558682905615413910432560698735363348465795052000624508937677678706474653554871447265977408466922872912570751317320424111646709759726680765095386091086948416329515961677211688306740908867468815356940567531800361793268822539695316932730472604929830467224474031265574313212890462416058218939602028087062128077940921163475056659713702459927529766564732913977438365836470226964074736790123502153834478028679759110624026972768290346837773671019722153416501349206620228788664746795718051815430828790661714012224502307623390446506807895621635007707659525920769202149369294244151942812963395391363420323083657208687604327656796823532208915113636467222680627219948981229062722860656580164831426072230057022183856106831983568717036094717168094598427521629166830373417973998493447799841764925414124021414879859171037538683345945318731487765636918837336359555097780382572769687451166414121704314827337650295569734493280165624750685676571383790115222656220974496837864056718963707791937253737514547087786780382848906959999541404070659191282119410031863955423303993054537758320926912423610670912450354490195740865331072399969970750003570564152990891295351112003685588639357899019697901758051835767562713124030132286235347878563352289403341550054434415521866882985734905204775622973136919671581044794573981151781583795104717032805084220248678876976404714928515223861044171288173516700740033407990236588798578768298976139587943709948966212853478357867733721951106457797557283051107074736670492369963143668745751082062523716178060505527184459023298678600526239197937951928794227608538928864461087885519040818470931004408426217504903040901913947700167304973564699006249305918106180235882797762884691237999558093686121167677658187069258331600808466056928005956403927392913782175800192030346684600774761261596908220879376498935814592116766513898882107073526378874541785919354052368086182804603292726563182888494470956128717881604826912267097955783561707192972195384552490572579056730548039262387349839424809490234895945496225673369446223239472518807200019075283925869069591977363459622914918500599570184008799354898832308539647369985772581857090363983266781271527091345857034134985247332637117939252622048341984521636737718776428444436112138002815422838898432713082234390584650108642183109083048102412169955417529891532315446629238838140845838270905467150972099742629898960022398539997933399290465457190888200109756114670812289404680079561599799143212329085355146656366965454459843918483158793340279929220956832028635578311639722777313271442648996470284507598482164128564386365028713130385941393651041844364163720015406796787095219738353564010517563541039361209078130869194112378766635329954112351368590049399768832109528488363005151620877062853064757600614943494100623178503284596934675636967420660834514983882567800002206885254661021890350934210248718100627398148987389933663119831372584907153472880026557301117283531178568013811284537477385627265536865821277737879062462707104654764843334521623372173666433545387105684939912864673745384174512754630501076820043459005577690053373465999759574411917941018890410368425156171109305871221043714600137850055654066872146826359430857244066266275978069973820500109717305619769610453216441862094729612095066864176179039935750557141369079748510975704952185156008619700479078608590949350948103896048819936236612379794768926517188509544347336302313201057983206809987880614960642948910180149135352302354448396515084761459554024928039885475446932145334662679348874202063212437880080088252266326385921916488901483157230964993560190974788007239151958725803331488543065917340736018673996567240905369638486483938123918906872398052944961318767387621055489766026344089181448179598166705386370755788316380169903965152164819125472869037472164101601336171804486558875018343049094826079691797409921997262151607217850050136708855045362161841345729426391844046318809829180406408610238364172343826326335365146183918553397555261269272871986658820847194805143428492601753064017706118351979682785769188573228483844159342443332039666222841475990694517051781563598753343364514764666682564973435770678742951167074352005760426446963218493153620489720789516988717085396447813402342041367830343073030676293056014152713465159650036886903637221219033181046866601215604296234033764227119800399105478246712496714439648479856677810819710176441863189913965492680267569720238473096448460549786585938163067262451678906090622636943261623881886873124911185961701718096709843594932172262113841074178957570614567388981564951138129237087508782904928087705494238537010020743090063384223546599575487245384169599473094521951418121286745721916268549342390776112106577514973164720790420426789064849883750039636355456010491540532691693735356256799876213758523299918940060508438418774599797584435153236830337683044134132200125316107653242595244975926421246602930289733419885198634501714256419901314274079769895911547953542039370578526027770355889774325718766590831646361772199598649699417363844209492952775509444957615307110086098090676918656386264185845249194585460513365891010608879483961682468444678156536635652368097236667348975496288877608394756882161402006122695186852783097472080728892483015794484346764747245083583419018452921282300572887770895993252207676910606476569373670094542232445795810142558305646224500775157019054460494182976879958809096964925077469350522382410932757311218499919115099359195596423625453275772563167882360052171024195806889119165133175418954047065748622339542369319548325777552583625706043272611196188861823728701262169857521543532643186335143021719161199855132254778004404272365180503254115548771796631914685661789533994792933325636613078383666943621252627472489242933833648575901623309896694870064855506004449400807107304394723700850092149175693594464332194484062373181623200725970005013038285668328269843096841871245911870127980897774311686865017438202159910048651015444652503444540256768272898754513789490457764809268663987089709921350990556539001349612463692425306610200485681205046747528328987378842162307453204241127781342371731518954166031945985545381491491480490894809315360181660393604724062018879578404556530366291705639118187121060581971544646180488999533683578271628171308752786648647530109873890866788612399744140190750208879824191518788543597265456666923751897105622229956621756901915904223501285411895081763395342981821198928263052207169122862811733676200478627316241876452598230833442394902657049702910863746455314518055516089367625366811725169785469127768059374964926031677847007999470839306648581910835984256718712584943285830425993499927924802737522853737538238896297206648279671824639442564523024026355091096378357590918835789112904271273683489970815593100363018446589232362183855318421378187117588747416717568837285510722334405855722256968486482578980330405486400636543423819341757100085434195316348006456248723174934906945635335375619176997649083879819717388540286584118961471745740218417668678486490158145319654823614288418075579841763106587473502906309648488387235044720000005867088562608781340989857322950934304005915320454166867785525571202996612895389088321725079604378557453004672092821242106653856997219141481036937049907511770542397176031390676708632463189701844213384262564497612446649818875414493240127789837041608431330600653725023772280574664162618248137222883255091012366856334168724097267450776498967806270894250841971785536625601081244429690658660123919799999277095058627415313604143692666963078755411031917674079787374205604923840203464307236868910316099579019324688253147444315103695723537467195847167222266750661584594823053147877257788223259992328886553288359839449208917658171358644969651804081532603591509078284573414468575626083068921925498498661062937928618762174381453566699822353881838383117971300945796419243657453560863967059922263226329142846733146303474021301126162058809817014920356853665535335327921614397398223500507474107485407081619957366238357351776119258211332085872305504805734513384319424702317993467924403488117072521027919802137586536353839130384515244809298027543747279565821801270588937649334347607779956473166469436756155684829447373109550430354654423515955617637905374375681463885033189567793884535152610928262239155013405303133614830438963870880717833326314248271981283705935744255761863462832869003377775443598373067997489418880367249053098126212984520811321869000131785966610654347396498089556017968921050633624617039767797910148212099173458794213668381668820646893581274223081092465519320210556976924580995552525009034692967139568159516951757794227962599483452758509158451897067853585398129230571606879820358158460649186866136005117522870501167244725800436641856944895122116713205061289258830418073994231986779573204776083739161744328302338871070919534250387139195898419592552241260231748217405072620879671973105065887236026838519711739729678418518884241518763181763679253477356501309960482698257803343635650097162764307800109859298565734832749620035320251840692337866132727634577698922463011141427104987707764160731013417083336734452288085894938286259451484241858807673916000949128809054848979087401033976489909543855507913712442858076890807122417237873870069509458895423451471948040127011848128359214856321425278526507894131403092285098930113342385913804819936535146913958101645778823632022708211418009811468356523678766338111993654721577579102383671733702091357635574402347205963100794705736658065698117397163939571974718428274520303982822966410532356862680173395142475801935392608054219015641479612088873793886241249726190557990105670620030508132589452238965050193817848081200041901518939424285836201782205713456870995768061210441642176549920306474305579546601440809406346316592214015625031807974764470796936509981699758152151746702569642347236786901778773663645631804952537039658028579630311068157235474887853523641180128452669151542382698177124750319649284054156964980337871416922824143541692751992705267986443551631205760610571464001231990593806206891846996576476365128754791056182121191154675622818099164500994030662171662792771533807055621230009518417587370001115792169136252787355434709699291131147095227431721376879231097344894363287543688214834916201751893698967638840309394661517579552643457932021642834505502916765364527230666660463993390889845644210307857476839474890054824221238271008008182397178177099763996742327451322034564055772386684184155916112703891367148871702572796299757585317662577575287802273113421805515509235563980226940932636344421363643988055366985295420344980051122040074525032210162527035405062857420061571729185673510270419324662740764159354279532239781627338649583563981563375412443669767280469719000116416180240925936059136282433792780207581534815364544688016578670606528757815660118423359302998319998229825908076975110279530061779369170880550317660811572923886607559453630943150810607137574282610761105850336749140528314111450709457134628099532757127197329603631593588189637537262231595911479630040538511026163143328523192089566083831696123355712518844873313523033797358239158330595270089949195865406820845205295501309707440455233456485427532481889627734369206854233431788369915419220078932366934496071195217690762052519736438921884169090694440714107764344523808417836275204586594228878815714836613068725205749590367421701145954404654267231765249056150480475156617235093367927250470919677702618300826219526530004752832715318574321250150520205212539158429464664558204982960188274341645685290038565226629244875148094249687867914358090133255082600023968253749639557963920213341723006099672357048192549306671679916061819182085247224385214698781942557835236703312025516882703816222198353754841438512574339254931734708257724187599091798091688790640431295831220571974233030546643930004950797144792120483870040951720773331991413546901765409830740827295372819137009399579514541860620791050934353654928166860774804622209972545082210609883035267577256585974291074220467389470358252231410570790412331885610819750881795681590337123124554540443646378251577325822443747102704709431558246380292001092793455131939272686981604821785808218223693210488593801100641416133435249718778469642466494416861607887731920592795946239554149106269502907390510772681439251621856475746390297865503165301715379047863044463863588558630943048305414352503119885124833233330349279685934427432514221837761155858218031428322125163742832150602137187008908582340076014988228331199294152629382138265843004117205861989037956737572313641013913218691635586743036865917904421377212122799941381727699896815195797548344397529358130902234760843174829709259599543555691248416829373918637835217550666873391713359553770434582926388489593016084280954259475221771429048344109416528205459640407847060231020439040364480044191415630944017895529222968483652925339458197547277288956127593375072697170911040791395168623946001355157305988598932988976673941610956972073601275555499429546460510887057327775689596965377476576350199196670148878824362018174972002475994453589794594793683162864199924790786336138476060882330125163625308951493259468333830740129316057481270311173144906502807960588417490958610937188198535943941383688557468488017911540825287728203500323496829331218113801378810652175111238414581963405214960613116913462637481669838942621468792269014523475452947290847418539124090173003475829285761139005183656427446693396454316932861316892410442910924523763151875972193569733691593623574193766961797917492615488121838166246862186476056173510744456413874159251991107006280676261498519278669240305647671699717868729694754229212028005594283359384768524483536923624408781543982533747834983378791484086474357864713840335904418377380201837381127616358635097634208408145208040923552677744357198221342263165550010101376078937401557781143817451924471182571203754234442251547743252272768875346250420040327012300156175061458836133883066823165591355703404712837084278357950995856133926351730650680247215798669077613012872948908855309404594637324450613010648093219497153025045956038901341182800383815025226584140217739928724910861556489159209672897211259883480391117402784542791329851447831124680411438450835252634193966577260981402168949759905468026686552722361238912935876625717213340633798861560623742824519038917791841603998057505625734240695726178959668646587777354464561305951645300537086811702455053038677586590601840003181519135238546239165298557762865195898116235985407303548775499794620203334502005320040412082562253807801414615014609367837061073599085547686644863945788405046404920427843094295695650701985923123395080558337933656348902950602070757085409037206977148517428384033829404106803458779032778794860966359011887573136277031240658416286286712533852476215563480767480032954063717499547299527609431887146688228679687981272656351786516062011243367058679416838074252231568234801680674209149573620122641281461250080684451269686296413398731043061778226413195489980029241963387437093475191367231167423449664157578975524865699955965676994696079797266940719602133293469736229167671811360229003735762780492039449829705575784167668264214174853673122434603038818277451309033519687585980049089942058678049420059385782735568665517794200918972340911747849469150244159761586540601439416610319697892801932839683613606442053679412601165103832225277179106724335316237853872472099120129811260312692152932921435469504625161476143283936871897863610576546776732009774683259304861238587591550194174411464442658452953369896664003522968392335697138248326213589320611653052036096423912564959105255138481995776028574564464268434868246476924455482716321095482706102158533648875607616061212669509045155095396437179236751887109437839097426978494825622505252487666527126782204314820077246191237592944392285023616738778671552252696349873842230990454211014147463126780723089199714762982429440227797817893979535535222197384695008887441735973038690815885070581323191502406467785905966525404819783771119443022216870432231712753937372395066528155469538951446580587275129791773883163539850223087900645609445679273774116005041149152489284833718116260583699848516508303615582351510566594968659544374543538160445553212084089222344479244562523708809799940064527604192148857860434877363261191377193558895192232293710912703553191619649018206373404021123957267369077005945525446622373568197933676320120279671995935217221702279587066106600868012526247799394282706735637087128596226772929159091900486746837553881354386223199707507345377031616495073608095771018145104294707990043489705296462925827301311525112886766722744314091014129152312576701709070398152502178356642420936777464421954988242254972456873690188117896111545516552935230653564066747406388169970563111156412234919601100606638085084944177885096293264921770975276653460396830280876130981378220471294438914053704129107889485233906894942162886687432730602117030738136730891343428793425785970607887992108065989859404443522800041263225853925337735058776140771277657122279734384276167404669930863345215163672624798083772626530300295569763058894482347619576400713578177637165476210369783020590574647130206856115113841821153439436304132646744555886446677144303159424498785608744768070155528071344418756554341305638310300319774292076580660305697695709042295039613722211538763288372791964143477238202951869849508440657550226285998695212590936126783257099015783865955291265596419355460083148432831036121953073112029355329191898002446945681705390002144065067520599579150155565780572573662434441302364988147994612300303159127237434599821259602208969623321136262510664177476215860172530167243422978285106415777361111126699608047700408716059707769612248397357620517205870199030113003765892746713190441594002913551109657807417032201939774889825067498735203110329462328158539254955052519807978093819627061924150721711913482294865411156591543611276972696320473792384593033403545354696701044941385887370312199967911035456368004238846516723736215163425009780601663276165826693137151531670796072074035353435305390926947001850584207676558288784143241148226001666360802548929661691690006313599347718870769056047487517667027979204528986145752322131509606564722058658261347702035415412616275870098222511320876681736931514663619549243333379605024189532671493524551529818408371163035719870747255611517344160305062097854337918471722012448633548780502458280492064471331867702799732445367800500360946682724499921505083861603250624712290709695711234202137246617625076020291832652321298061196935126510263950271245083341106921259601760447012630720905362681947108293710815603644210851891573593208516824982252153603769511381006913859655137030099764096773076272656898347563581502791015258893443702719270227997179875339881412568381494794968421453595823659749814289088170372224330124169337588147014805062810283426039871096345888499152673366942476042994278806368205502268851915818724515248688588763025893637548335226218169830566962279011123405416493307120995561968408751138890481974427508854908286538586097926479324445329852069845060344513180553826236525867784476399779396532773774082913170816518097440208231989214958967122986233781365602201863748359809445871339469080092181717590016796687598529859978421676596724489051873984685462164120356634192519053480975376416105782154467710827178147648176064056806379330028235509635957736424888828365077478440580694401934978714328294637844226731755256322908265895460113223244157130649018923558330442242824898375698182058351511892859049232898867415485524363154972012048808257034047578870357567827911260550538780552576132095046905224512422283784850190624361281047474211921457974261664090747154546063402676890912278154541351276394896084277129787859435643677807090998324854276408266843018844709478218812959274481034340387542551391563910487525416604489905576715318795354109034395852578960313969339133280471205584966921085958133338560954810882320299354188447341260687711402775003186165127048175700872861017638521141431949966275567461808936250646237849233368215450949690383225841398787599241153866469320902686216964445288782705344699583136715643653276586718621228442211825526376653063445442503390347855472690814929994520924987663424389964048445321965280525761747782701599626393670982900034004501226700776886243267720986916490565337618666386875256704151486089540265106143411711140315643192937387923519180601713289006831269284662323645425198469916462738596276243789215490857264181761350283568445026593119318009562764843345965230374994933719647958397727738871464471112802556714076595500463446406152098387835492942716261920887807552949371911261140309174279192662673546628778454246633429710250222469321181355220782557078837836674216917541258119961128865525753093221182798949383068048541159265143991678260732260731308254334046330315483441666638839006091187824113995005998842938848937999744502184580715974851014654744980429206124424290068630391128078071583564964419544520793053261916334939755625230011589036187552887039324599142816018191781706110914420970285820151203365365169531276809554018037095733344651576785371569950964099193628691409668724333610292234905254779849409422744311189027101665713925518908814765420389110874086515298472467180152240799793429850471539053312393947156471817794801426014393512699326760552711945255521471183399511579684957153666325946363745166614345690703968867344502952421540415168088355538537293952215020411074124795761615108165186382048083198735415083599786770469964754331581462101843307324185973642701996037028923525318803535460256478376528455881298999582122728711280836441596228294435386119206738814480317980442282581714202010688599044013342279407113252466759419799827913115032227048833712556764123863830574249208694994702782317932373108358698285365533357416777809902130193958897886658589772563504098979851440318826203961608328085130672708498946913678914552449430665703595347079083466704147643250442648641542648704508383454114610861193510278619343440043047155383897653424529697347132215897564198338677707652831815985562966725071388853631167416973815262232129219691187751112524046602342913484365673851729586965372670555035557839366572907363651328237815182421345020561923576670238742364159659103448426957194044238706453399756114831135518886347249295372205005541893938760829759665707001599578809172372291934395510865699631330059208874812373991715267728097341465842872233628469832538613232849674016180153148230121955756832453717241538636780128336385119625605673984517240402053737872706310626591552048680861252020890992789008933827199970948963819525898161392321939983871880624192741609715709834961154443103500766944814980172352666838738682678709255956217218031211096286027815571520530980052698351756172588703335559763684153425704492392064976236656533264468782791952261365002462977495100024518525520186098228652995745753101004843974643462412251875821993615316908055354424973498526997452482023078743186987196229339455599506733308808504864088266155860258032898360654044402390270350424293737939871069447312371140414524937988088029073175094123510415537906846198137309736128656082505710467791918669022130038331127304404400278164109619166335600162723236501935140040287768346403896298627917717057771582419682778912465988654054779317009959136120724226612269098312090880387469192681037375994335766321545966701367753135465342981189798945784394738294303862689777598244693136695057619111457858304784469682396230184481820292360318348807386730149969268974000167634737551869550157357029551110871095820847656511875495929058791083625765664181714242032915858385728271558387970500384951162412640303012410047570647086648176018303321990989951002598201477716513585351070729988910905094807493798984472147135064029405834841198161442212935689738573539023720488809021712041684968334892089844301718988327585560429499922626868096122977874025231857216367470366277788626609097452697165174326855757497686250550992912488266475655514759550320344156331492162015984420884667147900620108169195390343100290365526922612581802378955739834005970182011967986574631842719993902519152147145449720267861095056595804095179773364810230728399710807521688661146903732556989089389812531977966233460059082667007530817216860063997513496968207834765739951471774435471454099889596878690679634690914349850520227288001350097303278317956945462883619809381429687983148740295414553852384131607213069849424499615160705409522637155473170482154525838330667789543599855479221154730870100803562529685402261676828419736297771141942324769742240435506174389145609455445842348512757527698920311791612161492891504448991419536794694425441160913378699897495453794927035906164602014925855490887278758698025343665602424661081976367192199987034008058827372205913650357597479180059636883817714841064083821823568674535493799729795868274697304759454886682155408169837162197317494279309513014304256084798967184182644325860025259381946928768178366338577873776216361627803626689139393757050826909524021680963730702131913155997622625814987088762677233864281949977057964065646339579834564382246779406289386102690413308287662102121416979003914887240958349003072292124797472987763768881605110577393516959097515369533121704364963338603293930491218968215277870182957473511013942635159881651585836887982436782918613930378909470940971536641234351451708674856872455382371338403962183801229632977324298369884825141994119194838279277741419800034520469911735309001275115577654814040690836117203721519139877774568347823372074287240000648606481063455575101444453420978801942641436356252271376806525508823760470835030157186806794385623183923455003436625827293200771864576173236790894182460780811031535635098314071908397213708839094817106716320884196200385638564002452877054219673807093336360849368811987135341607750142326088482206513083769851393375130860651962932951757254346848393980702394424904632233244820600050850902960324377522853858480955291590905456729936663097456747529802973755883360771089355623780443423536452474300484561026182320213923048606406406990443282327260790694676317723465981842044756073040915137917386709536830443617522501404758395639371556558628236811653025999435696203926062856201234557758008814374089889033001047763017128183019236773476048900869442269811937837820072669967562000614657275950913819420086868228247478986681274461289574041881939557923818947780037100744320896599051703545082425977852656531311736319628602095916021866073151940955205002834796638681137838270437945382021462907538486474752888937732050990708790923456883625928759517373414309904306093657959367314996414828403954471577261265006852219561338870053061915076693444640391064477953249065275736162534398401394185644279846975694528833553530114171600226280862556432799485541298241828157678301472327831002094530838146588660236296117194986831397045030513614591613463073914307222469143743847568739279096602824367703400030469290027007671625646109986622542313115550993577330075640076959760511785072725756204696213893344237475810725427572654244410912198842121844384506127721586224957046717056850361331515724988856593856268247721358170450159787708027895643440124885961915005151630732084490552742835911470056359672017663458652838703567010338285077887078405024987602697445766580513840779353988297752603505835503650293533375219512594100429135172924100309280716372953844587817024224505630855389582178030402990653408191703809925144865488106064532999521598806738995358096406977777031675406051472946428326679191051284089963759140019225582646778281530730291380271528382499322396619296010368902134175251367052460025192316669608907474772637188281182292736165184233939064155644597931936091739462251706749113998825405179236472594465067357762055826336830498730470395268923155282031608112603382156259361411831615298123779486018937531022371403615148373000596098391670953902735169741386684446474548668655534133483713864082212185594177283442175608411672018599151785241557647835985644181758178170901699657550639233615371696937663065392584607742527061055071099481451286161977628059776375130030261146446788118296179073598979242411567857655801395761687268492530427745659013989225072218855555298493353688401292903739216283542729066682483249837855636515036405386949352847775120734893592098174459272689423692643023031301205690790998017153190736359645750617948435650651966962293885062810858040761064743848182533057082812017194760399276932993191740875491739595563030859993896704578623001388879009207697465797386189190014110476991378190210033025331482611049944745081847339963439245416461659534909409892952304087003033743938435425227678247132964638005738869338049265837673688398407104584456595553429144596273908292709351429853058374746399663205535245175854289218597780964569776502572252812121801768085480612212653089620276467487641334063808025453413256732189510563505693011847126090934727381701739404464362852455431285663467876130658120355454556981890351853916130660476124084938274253295522667586356411777200063429435831729425548569809321192439433479641043565156876605080834136056061618067265582304242959874372759810831618179627785481131467420032712275213309834304137872790030954363605971771584137054434452579787384921415451321093030334226372469850429040734604013393896164998484306443458775536744624423973729916304255840900847503677443442485742983679430555281317147686358662888472717531300252354842079333871640933495695910900479662382418169350494748397044333279217588307127411880801802484808388264302898243255105841413153912319039603541120731128975899940320023805980649461677722213043953640295944064139048394277603518849324811461490369487118534010071095625672552498224463982805822699104248169915021280357782925542474423953902151309645926818192245676865900192755210919076005250395466232774047692369008401201684054428329993052096023736067922891760612958280010880102616235053538737663843099499070790182442107845024356130225585261577812978389373331988429152671507739897284301762444533175097735309505303771427894930769642218197468087872201394648995870744213179316609147076368895145637972825716258354274167316405610442236340863015911598083786595382561109699753430284698741090438730862823370506942224569170899701797527996800051221027724677147860171690438661026683683618093080813569846004121711322951147779850808317263916255764608303380813923544859755139398578499043811616577910903279554194506540060031156080300093238315321482018200756599362773715124958045549331539450387007924437916112330328894303144546829188327900189171690952304333308031172174251301219013091083200227807293494049052409385020409610009393314494716348213181107827104058251417397566801941476455255545338001807066145252713976216492188032039913226890716075345693685118027996804829601264109379485685304177927651694582375349771379632867178752014414243366236870722268790306360441814117320946014348331217332792120827003334226220465727269676016423346296919781951286823049744562815142850023624886964384483130152060064908526306515335157867834556878312989717447964291562615757179723322224370628788703658083125340870369799673108794909016921794214288629118738846512403096626479937769033952394778497345303468519639923354699306770109833439376719464286710127028899708408994773420107845225413075270884651006283031056448338171739901576635186223952573176725287887789516636661683986531104619679029146924144104152554271417750993804293342903180532757372932651667960851309292898714167677040282113892912233536081882353275567011740605206457215065099080862802394337565942424156480515048943530005272570801910134511221742380577862174193318821575879855425921254565502996841769352450364037588142642428704974786736815485579590125729292194143080611025897716592622135544405534335735692665578346578166884592300430408462050596585961913049797767645077975694491057826205468778169035530883922182226460599090237915312922161881933758074750402844749898156746635981319664910350240673489723805566151679465938753669582488430699756407243835986044689368585262814345411994208455293678609256378998711895689188057014123346665174203862085144909821714176398384667865197238202380483037929923061641151304899248596414651248276937167209232020568603295550884799151879412415079129617524492404118621691130899309975662138474362682346296580003654108346558208304684877608963618663755724114440722322254967867959591612934573766466317311836965704116630742953258925154556014431543691965940344677468740533226365962309492408601027371018886170489205675080606505252857484576971811542115965187270682069795043151189561897777973682947751293591044366418904819863195223440673837405615211449813072321948944289831576780496358326818078425298672373448018282464626900404699967124113488356582242556284081474016829081328076491604040032682400916017292886196207470446294922939532108318074434052039938557067492099112081292130237372666195612242111506724311024524737690413260554536020186257779435453456507891673630561095716957350403205244669807960550407251329600435757396485717786520453682708760142725360449372823249127082389408266798781799601245214187413539326702322680075829173134023975706893387093349508775735841205935176810180557187190845938045904315444472300597588787968312748548291736423278061422571225116100588910358719583021312874334006562708427784220676044080718308179945792991792621907665880755471221227925956328404595939957023732623625723218514379871894031640112557850120126938873245994365087338345040064103176504831008897072590986889940227984957072398968374528051679740371415666951666240762763393884935994327063245997678183143611156859209198919942957939492656940581469477244784141209663623946231853773382410563183037865465946223160351924842309923021058544711237288408222128363907227199543216309486847520305930445276110608388288491142048430305368761668921004356200907657890420951902136358590506053491336709055901453614516707268365982831843110885983506451906397507496700780608886004614631759504550164731088797728224357619900155212907930578711522031658862255253309799696159314143386008515551630334711842274261187866766205033829954830071837536248680267406881280609090230367032764823302264082438638281603076294330012855412670563759622580889746897659758017579435387299758980040441286931617056661857674796279136110442546493749649309136984845693257407420169270797109597945562213748489153460101852405379966968434025214481855266027743260711497821195340044614475988445109081323572108968677097514675099001886377646103958252840677160457397844703448409069762176675321286498109223530739613961718133951823262421615277930061000425454450994944958838641538796411153524230205686881044370829063655721433158492386172180657615995283491131404024318291759422654518245175421734809271324436704952517731638396475296498599038499627201436269580187368785369397600655650871987944481175938208047649762478268836382280569119088865184211190485147859076656738547445316975935314813158164542606352970416014174353767653640215791589789811105996850978360483313474790668451465392901961116665679211393156745204603004241276799457071965984876685379942316947437569519951115123005582427641239370919123634185639268958937458597196597191391776004375174043217590232620463514563109941737022469377930421102761890451012923079846914634710442527404150112220625540780167424214075862303125351599130742843236708292307009240474893981186505248803617569797417913922572386470579556805220241510802040089173534043600864036630556317163966804967859616317304527394458871501608878729954775166792120735482068090675676320318542769721133754240760956594498819012118385345550529070591835872538190613123197267915624285736342939338646606829434559872562820875400883526684348845509551794782461673747901198821822084653780505521199564656046764181933629388648248472769603506313566361097792713711993233994923795458359082292836566208064771658442755539007133302907603806118208111140748281391745951044607621245343902741619520773615048838465075686023458437596556668023555311600077928317438933133561205033929785600458655658710961358332521909043842786271609502316683745006839512974006585766453763294063744040393874193043317123482495149163119468959556753608199106423089886514252287049471244213251997063176786951371117021197083489807958655541218091163264861829320690603124017026143714631095713474659346715248246144879031220294567371588137928761421636862023344959136722005937938007313226942811999153369800066584430284777750905633651895418881506887664443724326266898217519909101121508323085218222474011698565056792133110817905777506329341800582933668102286309061549049997256250194433447197523676084194798211662544025366089515514535210541702802995409011054302563960096523864839601044279515282313927611739137288328118990410251935161956650177547501571174868950800062810493026423793560958425765278470371253843683332164634833357462549998709845414056343603225388306301137110235568618351505599074598199007855069814381770321393939882954538494434329798782763959363247064267307583873154907300694927006627764912215256035269241880136437842440425630182647958909737353533705559430015681843589541199989683884689271506787957585358606937133372041207995322837501774088594573466093952783755830076125620625242664699739959173701320285842681287868176812987233677326716253899228660698992815141630195459539502130807664283702864015291485468982045114351875867988381179270604374443606946558475620606324100190744883203935743315843770862809730485539691953570656100201139120106731322447441051636274501200151980358479129792903073038899033108964420298699128523636948648161047830457661392273743754745801316315715220665677548247445227756689690666055794175108360758197500624155885908595341305409805914955817085845443874329098205781663141263623801679385613626069432315418316146942285366507107383863135881130918457451316935310397954828499420138956607234405265953080575641907706443114423979174699014991463869246663083909646269495140228815089273042967774488313948042266184952294296855501313040223470632215547507746850805280946457229030596325219067708613242459978649216175281160299153498645078329417043521410038938552981014295505142383230027148515946750140352432702712201604591320429504613575457777958896898634124342354394061073737450526485705239639251034573814456507515652196763672584375071731275343905466631898415058123047183599434130773128695856302962818633380497959759907463127467229455523189819031825221485062388663342736021854074482113205804891282200475190037342130250963251136811120615336274810518628767102527129452410311700261904993397266826337978335607776639224038815207590212005053854246950855800159268420486451249683014163296577715087072775294471132687084307299037269054829294743598162254859159222151645794527015552935127239942675811752707357769691372806283300736449110622529483970031084583014763582733155593635796924182718647411779678867501472351045039459273921928283600049189080120212579358833402512575329199351699402016552331055165089687863051267778701696189075079334530650653938614660068631357287536091042847022793756228219866305401755968990235345074874227674388726616478186473871412619867852187874418717177323254041695190793219530281495489444207577309383458756189497024108293659263844431281271962644553846262284671377989550442692341408401627089586139612532382578885843323077412316101595125016698961604870386891346800029824498068282486668897604097997154270514899351230764914909365115742086623309628662258359748033946713461019006730211796188391443445324115955854435510336866741946254047607791858161462968002486361077954716210459351235492334576388264296526247014501017239954841376672461470171095791139725202762776964797147693529434747714499788989840036170343506908180433709290155812446055882244430916088103336691075870932619666489287301324718962700640824726947213543397216847096962355515978475247250555384312345351174356115217592676009424458666611823889624271037842113907758416771581314483929358318923187088540183494453571323648238933271626311046368776504017581699767525923858164936747616287478532095411102452894012906787365945684176083136572626278451210337101835269807972199301414781282169254012644517494399594271124658105335685977522319479733139788053029361039878760217395567054921774535028107847920557431015089020636236987023534964490781374979442611821534112550348123002108868524252162895978009563680704101472977329977573732215288447269742434317120354764169040211396849297528703136772536176067479782372415348276794787842108165964616367167268760424054456070319231178526995526261336073213926069588569693018936153760607851697349411335604526174886510934264958589986892398916967663925965230626284198182762639077484079392538672659345513333765514563373649927113341063331045523816820475483780978225254118391927341252780188098825814920935100827629614151964448841718551909448886020987474199155123776810985256953322584539809676152334684353263501911440698014125029647269061480615812683631801921446491648930937944621656008398973742361533592499250224429626891057480287489654435538829734569724790040906336743504318628535249288832109175321336556757179064538981370466813460075087315026118385740187224730163823367450080315034370872690587652024251182148084985358556513265067883200257039948724099491581839544919915739022451581726778469084193833240523281942445690178913248131033041995583965756594737516266254559616366973593910334966415524435354387624260661283877107309930319989396831537736117445163411467622294004420744386058135065062414714482777295907124896484945916258761454409242265614620835840306820409582550999620084540976942787532482245820995627269506988099680361342010349525729248079191529755925238380642402928168698371385815166190526709991575565835198553553725411460319474232943337365570491029382972981850503529772787489674093104241044637324427965719334738601618307044532126536328411814002727313331108497915342018963237609654691100228654828783284432003710827091738936214498812172533968897606222486717291981911847804424594743132121882913080474954693083295022748739242066089230656771985435854353673118252287007598753319880505340705989591393026334372821809941381137139003247331670481275091061901058364042636641599611220523784597131040478463442980797810957955589717003264189509060484796893158341184188446589895720124177523623704339113340165378904713995901553543564976683541657130415137144176590136051291996283818136606041877794683068964375035626898836036361171976931704544920604793720757257083956312490085593732699005589757269231450162878395417698782745665670866274067525962746204266269252163917054264862880355367198626672478283044227471649919869254580773814633491716504789567020339571962831805103613530431892453161275532647241143925721552238080939136449554509410424634303912785406411244369653256585018655747497823167428742640534429377266446935394030640051125364667571250385836482286828745782713311567114823491234835781793167309020571796199704683866191515659190433288945837274041036984130965693105986623046076636868280397715508516558465359917321557052374721291080258195017308480760196256033950851587550465402797313598012450827668087334106381306738047631087022297296547700090702108207171519311609940640855086801150723393154992914408479306789004349454818216281212284272973234481535634402378973962326209299800300276715408203655106061151900058013606489106019442931844147350334831226313612295737628282012597289940341484996242628381904274707441293943894368428899854927482332359118870369051430878852094054064210209551554821471774141349598075477081956666792622237428138477698717187627149494223233784458223199032004806320545771771218217381484715324901794224263694605198045728980032191348730601921485231111039154020718831730164824898537487539802472516518983322885296307393062733898914446148465758048160747203471309591416432740770267213560992504607890588175714200256740111672785010913759078830805918438988085164931565485567718347173691067857167457077081224001152247581002430942981654675892108832232490577429608192331213740004704991078680439882505688554505140877915974574473462512947623543297571326088104006465343513150069608121424273149869234017734578297243371019117546045226615539015482232526749045087063928779920191753709787571307875973687861083234752622911745251890124365952654553454724351203637912445639991858228102933648191977553179143229201726000892636471763644585922315302852123308786919546803688717684752166647784613495198945773552075865986627266976252003183048491625865978937857492352728117778583413267173877930912169554301528424442488289262627424729902993293797286103402641438633147625520313394266743448084927318984341540288596160595449356405888403504339807760888774690965945988042379462855119030047804759390454031241705561635604924094655994873054693333830083260903184619903053414685908444299381062526009837085012788448535341540898990625156330593721914075424753872361585147637693661530963995962669776419275622811970176590532518554902704816714395418404296292015317466463247003535681541468572023420315434438921712275387588205143911159164670593150839715373720039272453607464263293226913297249428577946181923782522019488792285114944068362376233026634833948331532150885965035933560425460329123320517563858904539502421412827484821193161061372800330241393642188284062018219245012819847426971838215183186417395237461272163022417724643451862681468210400875994383697559882477948497907578747800861481341597975515481251943417321209388186914454986068233734497203095895797779886435718468035596701669298750908995531357670607157973393904049793345702921871930350585999926028840546136550054905305387966393495690243818049115508002228578747597597268378731030317307796064561001123796355444265754438487642435896139618998205383644738167858620961384698241105329042281678220609710453001492549120428229285696020090138076168991315735876087041261356961847811512560466705369221966259580443429173433995948797063716697536356485248781243132584566579131249696956666599305406030842747879880980338082421694252993087990764841767806466343669151284363199612218597250206330890381146463311174871916697296287880616531118637986209733829595844971746937556130569244288693617009688478841162721531706642271282638226004578129515256319711245322602104477201301626002551990953373663151116691640332311391430339355645416267858470891792749609966735934936586642031347060565477386161652950775384880147921388876070054066743302755268676142850381270424061348197299941664346904606764015359926438661133589185427227255241464514717994988304415398988035486987107454283348539573085728970874155008917219699177889515404645110321983673467363389770807137415749222589088226549819384788796545231710423744453331057654532388944717001167494422992723400755801725725483062871928984768677969000243844571390774642962397846031548032647280870706236834055476366632066871038451461327617489267617765463394028956336935754558508154384110935452924801041731992508753068538222697009468144804840756770031708292686220804520724568033938464664001185102027430777603371498323208538898220159603170049791017063604086683844804549694700093534335625104137373319305962289865144265712527298733823288254357719038391750762332598757535856262128663643852860270893369862902365927217321218226155363375211382211649747846734515515472382139633228845818798346357156996353540450370723320883226980181187620850285837168013879844808706580967932391858143846950610004513653546376411068258587931193874344242681383405831439478313611722793221325310323595435465177047138507414950950663825846931324389107315733634041745966879612052501781198598249692847014733600747503267931807127442637881124478374670118736339922238228216948097421079714310650326458328542222759273527038746302623218025259462760385353983707987961384041783435292519419792878176052625323116394959858524572836676405867221440966126188113886640053114057758746604988876404176253544130453090020001028500537316890569907980051519884066048819568380402582561050895339889408990954713155314527854114740523149392589774439284435293095165350724799023290703583457116819854979254346368663404168033793709008551551475654657720459536688930535196672123840774496629715899759581942126325604678172327356730062427185390833968330564262152411394930948112885576314654817607979690725144480854336019779057634691078180261745184763117541194992256943621355661659214060008997886433922505376627766690175411363830561915478137565463159666193693068220245357489223352675233156385089875398620546033846836820940536268293558704027657603573986137962164690451482645109936817172667450682847957605174932469120888276617448667461743548369944948316674736186132227983970370578012091026556270178037138633318929195772753013269124346217670039401441171514324566670348549185616684699146955683216927427917324275011165697779000852915114427238087707095416173370087381100919184195108210697619865226752303447066754805233690452751597097785288867125507785116348172177618116086859808583068129524004799512775539669019186156974201113169681705244240574819374245854901256831324346568575678329025921962472908156004584109443885019232540669783491058903032995419261072312236920996952640058061023920111567184792068278081808886554470516692262473678647352710851871857162282598869305405020227976464327358532540346190917497735471832131993055804763096298317346825508658417987410745520765513957102372063443335489231378663529287560012559357413444064237171863538289075209383990418890853173106008839981598767804118946600934204953903002257564661925525120112145826901939569486755526090302111141984994584225364405225869958229888847473478580580546110646752334040045560496682382270371730115081290363029534699715970974806585100414670435736449700807622180249491035326978638622840131611012550443167339185788044726159155098633784150534241141403340957004023563893895156683075657106645168801945139082269610466104205572987761861388606413628629148564265151125210135680442239444971639687176114422761626936216528828849873229155369016315269388262078215775617449468920428967493348264227702122993380601808093552655863571241540574845323060241150480135784104746527116130592042808195810096265704568938725252738889399951807100959598343392326054667753327150073673287602850310795308073722903833402136254176583959218449114094990452942391757285678942976962864571466568710565604100480142439203116924639240402989355463829062585116181493891265875079790810913401563736488630323385427387425140499775183644207398299224879238497447645544227552915902277288297521541866208209334184305655485257474078374665235930351891130314180131273614060495824796037462328904913921265669404577292894242395090910231369330605814770338843494604985186289717947833733665920513218775917865625274014697953776613915663020735255762383902805986129882480239495157229906461112764311834345126937321768719346510738771454562927655207084387617039649231790808000450219520160715637162233197506278467886467003548032927166926896132867294147243996169695032108728926557506448374823888193177544925067980429849593877352129172086019524352193616385042004693050965033151169557764571725880618202889353977240735529020096676711277223827817827962816658472999010026115040430257686618248751759719262406147764429037332695916663967785199625948298672983778152917734794460655215090178940843790343071251922087023275871913907031925614522299249084132685903283564606549738242671435236771001259881587719361363830264850315564821562116955982448629196609275842781104497304391454835388078799115238178469526801369696000570211337532076529817980159439773631744742081951750595733641805765660019786739595815857579847397331260897284973238602424918127597836556578116959478589114715253799165054116152673909462726831074613832498843970176300338148223219395377269573179900386065957047794392289245386134844727719954046180192632216404456662684457366225057581563527966915500791856799436001551514153154118856331050574615066537778657990065115446739564087325432354130552640806867335623089745966204507402987544576538502230109915135435446057009477032917552930704602449028489526368466722184872694136703716826099907913080542558740264886437778775723907561255854514307424520470193016459155293499367309955150555679614410785845520552299633270732655103753512892777733700910859411416144115544793931695143747744198727576458433712827626969539230530957022327475446834488292654402161797046736382778075933825965080237053988266136659331209898385611273668066606451646571137300007566416136052127918460754626772033731047970912605739326140251557400049650439869628552834478443949285388893552082498509619837865785018441125996845806540156926500198322382550194872172199918324125698299480250961392411078765021532533433756787580051838301166977233284900214704042855787334754458757777669089715501447986348890187575210142805265875785263066210155259272236924753459312426973368619814110149565226074234687042278958583684297464360970605901353953305955414453146731534010705465235470005745608275096491654318695027040353715015335697337720130289491925935333257211176750818013468266892608672458407146366166420917544203329621984568067837145450328667033829268039960364275848178165421243040794410222900402014647663780708992656413312071342485497788947115105560509896040591648918949464326065628418022693972945992751974107158346508947086685229739811832762751094079201950122621414394545238283915517510552612243361994994329029808850365008622338116057274263842117371638951408764405025383662946297238141675763928784412891422357447489752114732294802376243134726551824796076069502167663196252276962480535902839225696452256107804531101681908624085599472762613014710305946853754533100677924488946530192009307028306557380041924276506146872938308201739100249199974333919690222871090439109280736423706288415342906403040940727160897960875585033097409200934619826146106472885955686375219410441669142566468805978095852794459939947490723340601135041479421301805004535862056610843955123573997877042811765778119690502386470000108100872455513183021163710168853836131923852676220455994724171638460998370215046424475494402289263422959024025353402344948967183031391623022738526998510549581293337577752931427814012517470148116060385371060398328807242145856644896873116506966791995371651121282443093707351845667184823924456219245961167471213324899187866689546132649457618040959684148189425963819110640033448265112836279910868566757648414049312130998846712819056331674386013220420544539165421368909403294928992460814298279484888357180119699386470297184927347894123962227585823019466461931212067647724054973618148618374596406773475009743691342655341827378728529842320686095522072034859508277529915537979681285016003511545157244722170785355515640279655192673670324776834189960489633448391638929731368130534822013588024371666314916909922064774359494434975047409584360429175199920605096058085083945319468032311288286067910161343316468048348678017766275405485002389759060216918419206197333343093139137961615880243409676756805621034097610186014622786647125230295863778632806462517614340840147648370343054201283623463836587855361973721679052002824670834037342560445395652089968779399041258596374595768047995978731359569273720012070545238516568760076817394432285013582808116785081282630219324565697435059340983854017125658322030744156770353746895591858728777239094597622869991254056237658628297419060432317327859242718317302564185039946799251061512842173212489653859375586999857854741692724747814975854159154724582933451108411687632085802785112969225792273486376959953079084279004652021517302883775347287146968208469642099621232425239011115283317644916855884457997274567619162723528047524190710633634619440952984286535077927096306519246669236506254348192129679560588560574571231132595021127425236519815541266964073035986776224924933043011694061154154702939313222388101261511869933500785628800720730653256918488459635571967369297344536295078623122391171506997390618377532612104324655022626208805004149602130151947596458698881506960341551235052595145270170310123845977690556705430787331883825622052118127133643927425588848262871556021898539349210136829055282187674105813816602596355925589592172434744188396073992334409002418907804608286386092173346162557712008061337998622325554811030431951666499595193274906398049979413992859968682173946193528806862317450168343201335477101648572311915763507943318081206947302571147298831495024544229378841274930792332400549525827637736618619524185437173522864545774169020172958145664082626256951689217545088246046931201890066731684018421513350848068647193093119418254570518453548003425552685015789873414824532868808709595386172926023885916095142818490735158921360474427777834461830870009857257738166543408814373820195905802158887036383515570432589178809322528433097490338912000301226778979771880350160123892547922614913457238742595670628902989422994862844240693410839206064910313238410939477312411876202903367714557721722108990992984791164383313706766891029949125895688780524378816359806551980404338275627603310473755464098427228293174291238522827400041664497900209197330032455725406320506302508233781096850340775815778037565812031440085859674550100352537322853757159403160283118388977027459795425091392038687578168047543283035459794213342414017763742514159591098130739302901056161851149701561817348815014074154330235248184710603090231757570019113279264941163395362973087578112931379840977182985238461161074713473801948582899982285956980568903467549834802729612281544118656196758607498327879735605939738421765809799673337085478334248610586747856598355418036865779307642531593079035918732539354729510918624508157670825545187649204119560016312562508434754188091187812694512018290603615385830430864953885003104139911530478892129980189779907758418777052275232707517368083557336648710244414731684490511596967508987117566969628899318124756651022794537673914282648259176942165966089559819320868650199444306294086344187264984929872693559995056104725993900504036059542129408769080288403733050377032520925781849063174105047761387992945659738589555215804833367276065947483780925871526060160331301369642759579534611414348771489138058784654557702452638560456210053463352682823003104327168996083329334200622401826480758693459208717976293857100536572645700134220898358005589992545374446560469266722425654070065875926665234230171204894704246390356954327883644658011872765463053843180336575919758580803537536708596595471355955024194604429458935520305243217240982136484613536277336993248945403615157315194296338870390704689715582289112898477598758101425243495640901465519057614808031082670060553992055541711276560346591056333150316741298710196884790912388775337208701257430091388427867760350334146443170694343360400498000057749896171140222900268459916906794813021290830627660971355391758417050580589783132280743668385542449763662808739966791147827881660567009977905497159213137365179239634541593222024729273203030127341278907211328514911916028601529434578336769964819456018856503301807665323044845157152283159699119969252393398877207122798744596467174329406695364206858559249784222499747625298956857904324563169091834730990291082450828740408829819279038898705995950954843019447293461393516330931967656713182890075963536500596373346353824024556021415780957049427876073711839721782627504418629021563260456783551549842197819337294250504454408653661812413757951157153493260679978151068759876468412794002589569384326527748613283142451653758027530135593052531664285077093771803003845395165947521091929146769268433637520598431111515920114623891037840713683210613801438353489908492671286267045736992016326135244296155380369575534710903226222466765466503513639212045790422628207226667873301255861625597126112432324679411202797593076413497871034911263251423863817048819137075437741338979389855609827529497009616170591291114688087465437973630362046118765705531916375696850425211769739543473497711700937984604213305258175284448774935956355038156827084813535718712010434912189003736608648884204317777593067262538594269058355844011776447940269838661167562437671988775751055983004055724265410388279468486365977128269975226438553552308720212139060365450070431379622214467688241096895136905107396703135950894324262497849054057233253328783747798710170259478013888600013186519774065492651668927267280944546788939844240172356324374029776700466919238178483985083336050919028694886853989136195541435596121490666514383837797708304646689030292685725845710519796726367229123792001281869253255307871627550757158966419245841096395601578437525178771639013526048603641116568963624156126979490704869581966797936473220855482805548926378710456526461549895065190635436309754230753863123617017450139012629656949696697387752142660332416552484902680511710131737625178908267321699386875305677096484346720193716320683756321167097664854755627094423597551363097447425431595703162331887984537530272810155161725627684576079930729082764065944219736254287967764613524710483595392905042883716713468481822914286148176595714092278952233495107311929433728827977568464915494059932541060982691005858205887220685088117550212843567783467361134930621440465975486203781339350580822068856615522715537954670320321873062725783817585168973071497407335800457452216480089842671137250971817154810295436530712775509232423776570439024872354029187258530260024634663523411841935480528556868319374227199575575042382817441500745222552727907999143043577733576147047562580600097064156871660744523208296037060812804426257008705160411135942943766977030881528852176196762297315941442481215976900443880463068941607600792165607359624464047734389646044962223724728467700958208412352921821627613930646620526828736164252461074587137765039797938007188096984847858347397288663398905007499277304686702297560957454454732720903006260784978061539234921531950768846947920950391432865166445498726778311575685566441164751469292640504242658464138169260537120268960116634784024805548439222032743373549721168927512032117753829456155009628001704443226203956246692321751378044075645409329075172808427354081952172473294538126320005511467598106038573984476515244286157823103205714274967447855394680017341079794475981374422434707693308115504374494346354424903012730873411618533485222476172624428848030431853396266904243369548710528014566756397765123626440814200188635991939928973126624455782826908189212272936315561570580762731503120571046384751899567449201061130692839352936717624336964400741699827786050670035324232948444380330229853938245352817301093012812548710388589102797592932346948041785839654590411932418070932359368862915600764127293714649615452372636299435519426310002413402312679700283768734410584147631681133720363632705125461192061494588319912167341055682737470242654553894586693041164694952063978242417002993078028228544589549798154478735946302695900510047407121707964826606112245536531038339249668849292301512371177672801756221211128093572258120405734441015407883162747587256295107770618969581443689749302887454433075864967927947563293222922928646274709863112510990296331904985723491981708810630551729071693767823931498973625170514666628049247602533464443149286253027828709431111845309640462094662566598059159519310979689936061280150654115938182207837692597142842640829640355984493952195792103003768941511874876077891446848089828780425141676403978773451740161650394848242435338730073739825288684468983799123868380000251275832726506142256318053879154860358790989325079823177411321491483701671777523373884546344711263800306568806255406450117672626203173678778182470538732324945155602640030106038640950485137878421626083819051772709891640237651107018002209606481380281176371133118422817011747604277973977794254288656051495085528933203304533218560651228123417477413071812385319792658662689826509417396768648478769350293794932275747677010372668314270741788463088176277959300998560005630743067583345193046922222078294859238204805195666751082068303514493651171047812908462257637405710890329893451010491622546109657301863792606495583260574576822698733443330940982330474108286805340526456385391657603558635162912198818067772298275241156740631601520761712227544497913711878198243939572373855282854176624236801941489631392771245136029166721960800213235347278503723379728671962157154006147491186243587429575227602265318718983878176504485816215412370002589269446314178106320331187327848982483455572058957366310848604780246922717205757551392511660943194894762312495249147125481238673508216284204245364571692523660784179653505745280394593731066635686773797468308157145963629691138087445884233195242424979804528390184014680008270751805378432493941381569491511447095941902948171826304027433029401102046326531446686497596257939265925769832914251629350821834089888199481451395320823667787707317737621350698285351163729814267235694372167217400774105199022295241300398528335318320594969949725453184180914717974411524373640199892044693024230753359496517220467890519001245281467299300530573352606110647410515541636230206299527873079334000463273041698549017646750731742914733025243963172534182187516193344747415531455242375430581169006673460082504965588828758779000148428814508368243918244788730449379504017577365950519133420744479350110823513832464085103180914705066198352073260281299420441732302366596575252800497936633309217294775277015279833939758908227607427741807677603627175836828951103599559790322728735760817978690879821795111124634751755151375030138112103081261445172164135371875426760119276299850332708140524707707049820334099095578426063204460333269873739179160161015273035277840105010486917920421881179956414269661327120706032611854418035989980621214584032501193790678775059327818297979345921659538037594088414283248295875639916157110337455714041223744596719822093940314315894967758071606177394538461977096112458381835265021043542829724124512643924176383699519906084739110634398949176250495737887586747318295650530789428269610200063626836890858747156986272943597859952485975339720835445026998146978117648954844593429634555977546574485236925893329831449302226699692568252824232318044303929663932343197918840944183731848689193518116013252650940230576946649098602933956401509795103726516774150699750291772046441282543601319586631715100180832085563117909990234546126360255613126367484860544555645901589053481548223736678185604164129437865623504676388923105461369303432350977189253381438100689377476580964355960723655678468366278683546164038549332176865052179697419994033982649663364317219669416340494712386752690888257541411953951919936925183958981169489302457461430291415097122171797091860743569436934563198051632846533719857232988995028812841120668695577444070122074701234623605369692049094862683922258617994368403857449245831557389707490120567563752083690638934790357802442130772365878714956083226668754820230904511691299052392277234662391924491163696543270165417441467302295794158690739516868736997702745460795120881843685054324089325852820169586305274653710834423370816930706088221634883748729260781051294111188946821127369015699573623394099542384163187809394592265278598987263759996013402059123614532355690365293657104866889352392477510601100585021802118172810494235927126584367698009114025126286206002709381435416613201804811655646420183552455077275660670221327400005149827428856567594957666538796384502680318018825024808405990399561545931909930259295385412756044621678701923256515351623093658282907213494214643771482967402054464155827707029968240121994083397341411964699331167401310326775417076928573710320410778834064874005738589510753211492819360252743225496443066198933803391385553794669521534701023878823988620739312413673481887607626082446441706347502331613968353207166528468864195849544396059032715428212628628908350711163677887460431403180795207742923253516882239782654008526360237292936415186139510496721592893331807514162233710248217267591368246240242691427310042956274601988462025837522237480704177487292883610733156013142983723047190884612104162121999468717214376187929362363667953345695942883358825094551937524742635694045613026621944044914490740452120785663496751153170223991639849202531763359239568393096657252230739921477523146189295541248613415205826254959316366539890248198923686943834581179367868901995209412695030809421179227221389504188348931772265684087781312699620652547688609859758089297690236910715965475678450492186626252777947106236410870462059454762359639068134477521705659982284940597133709562583716005437771512360214329006283274824616292058786529321042844081354075800090396009344698973708395432067253782890321419974378942562963436284277265500527897493162784179470988034363265330621317483305296618842058640689360356220270440839804160477389139009815450009111963200488213854155711136379079783947794168206916218254890080773178519602824208052616565025191110958295559627899616955764634124640187881970721024907676936399157184632694368526766272181790309559939744236729494401023575407210304129807342008741087491242243422133701116824775308339464896886378519434955724018893206044896228691450540927891756271070933386869006399089552887458124456502572548713705863627160364116338721972335835754820280494389784119449494755392288103669852713735872371625950992582210949030980499084972991568782705591858124309455651727330411147093626796116972478388863555455118109057859403706494269447800301190076140652074606554086755021464578269779695863689439713359459372107480993047015666898179049585693597586183538514691239681486770920548895178006074794246470722202717889574669859381887493670154553798712931977095068309408365950148878770454122380441367735788665093749019085086590148824053331343705585997454564666524584936703875388658044944195657696587768278319521245494576851779264083065707409639276510293949292724115648815589342567124551609733919230308426776890561043819479494931940082045239368183495475576521085422964564959712035972526714039404373281794442072128939869704360120338590384862315176117835610014359710355286152278662183226177753437412971670893550960530748829536367246879198524904503183686321104045390681845459929744108850430528346952337909649734058687997412508535272120132771000690619488384399573134951437279790899861876293744286833175405421325379671613267535082507426585332061240775289187411565543858564679407120465468981441731753881594077979230113649801559319952809461315328307150495995112360382997321895683264705398935885934328449167949674432924062106681671082715549442141473023677447416965465395971126610354794631804056561069531635848825279873673721893357117318767648963100623656939279731777811056399082253471180322284759846465608749527885343891443904214399528180344419527307806975870477424217866087684636887292158509973632876439702656485466628511524316383879115378290087264335417136229585234920965323354785413270586741875471757911050150905963872251897658870543394441026939719111360138820720089012568040793454029911519204246918314028672726678846391157123863739014609581477820467167714663332338558347197355283015295955525258248975840324976770809973179520568228334362682111159964231341474998235226762155159085524937513513327802769744808276283442498790925102503438433767154936801205953814166688160882602120932007717938653746579228858769595155829842223020288770352860960617573056949727684859633259305378286007412282181775092389041402693485490129775268414382291247896317586727997297834875391346784742421427456252651640097456241490944367047502725056807665224081455060837262066173088190312012403895623264544920814394990398213593890908314158927417709471737733660980010603933647646243004251692519013425639045587289682844142661222094941549442058927050609637177887500554726986424718249942226405363273070777111546884423342297784447681722129777856594134675992082326007921264774766081459037355488459654518510058503797339308874801485878658489622326960868761786566564205688432117769099073416064654850005946525920072431802816277139873150094156424993271330511915924327253003558584348174514459448440283366092317069771760316311292065004570466451332506759762133656348474927592384317201484726367825833690820921772374072273962948552569620801336977437065287484239140484070488014227748439553068310759264008419096190501862904263905358372549025630177446499366849804588274871126436212173462156934255503092941472776030106458677065451384912093778680967997985893929037868530022463450749724046025985049065017573603645785203515168869347453814974111826657330594759110570552262195254501063501378720670474671041727123222346335104822914447352106253583508389939004923834776169808517154667528189016799499111462310524946413999272154358890281976437016610511370102825075048572734819153001331503628865763403221474003054348331198782908180467140085531956391200032790687507016038899268595205930239339423813840180572845939760200439567061146228302873983200699680137872428112742829336515967995956965415543696932755370857094737859051303677931932454043801483614121560062974572592165312707034028629826281571598299754178573271647778791375898630578975433462707046417603439547909536056392067395200851759170353374258443778776547219692427885690396984195106566308623506350825805898459833266390010666949146283226738963143671515443846835307248328436348138231098738285659654858833872750859941148388238637022952312282127213306954851296172422473220961158522125409065027919806561735877117987321720652606725174845822304449391738588784708768594238437956387802506289409206012592644641492924647001116134208751873973256209880237005215263690469245196384103730413374578825102720411163248186726487689315184975306022308232680443333873753510234775780427485692237940034026422372195831065062915709443629516944656783884833568977395818560855471851761776669548916855927213115659450917772042608660601475622572914171480121207726012740910510361896913692239811335037044920538742886884733811944234763967019946750369782727833241948223485609016048691337227183894770372874432735307652388897693997451974402934347786453800382996293972994430001714786126371749092716199572009033598619862520563005239809611732371160564507334568852038661572048458176838231417958208760613716085922310085505435857530782479988263957120694762314643129348985562238414857344119621103662194294433918212119461331190953514178639404688977845307729784962869813031326809949915835227071940277090912111654913637396654861570877073822476681450743296989439964243072540166429701306657695870288597136452814045160918427368154663293949208791686411632645013668894717148598130112348876426627301759762107583503270865693703358706376290632419544673235768721334735722630389123035003220208731949003456718266603992391546990669102208385548130553960919684255245129042523743162495153277984567417542220417812259670800600498195935591747467648100883003994502468333660049199191461213423280922608455401469013869708120465294498699790311344109768647630229506272759746517902990069192318341932049317522880922706890875529940335469043347449215851120867848329369276052534770269638828795323250670324539844174079561778091144552272919216752322179544386728955881981444233627539798559847976970078932752628637953280126076552270568051727031800532443831936173966508550166838798880978922465791136841272917670734938312302299161794976761606271075219836492262524625942320295595021203553581705549690870657632361146939428712355909056146458085916823835029649154578285071704367671894762833581018414638492908744896815370751388324600754057341171754143254796704792126632967961741446030170778005203699857761518259661832159741176683872103001893741702318115388577102595694629434041420280211034739512702763178611502974517361905252364037722071224612970084743613249688313715171503044790448629533748583435473627948001589255205367846882519286005431694124794720035004147447087874858196305847185446997165926270286838281052191878855060979182121476601833984638768280040078206456914418372587367693339922384786906271880566278156546774818309714569617529101720893105263945290250819355055651865686772694613852028922303406281200764577042102984437314689751232719178974246873455276803003815329082371301446998550621607142396260406617076586056815478444417209353909124718394375941577448680003083002305088729406330074876635465090215154193519569194398764593903320592942108122740693645392541399068829898430061443120458200277441878945573933264095465003651712454174615223906952993502063373329325071327515798142325800373118809356359131526455528189403857547573822770178946482134991028941214862242354331504575330871354695109139851114145442909752490076245293354799722305575539190718362844602522082556388709036638467948632668562982202534965720795539692669852032544735177808260785496110187564550952857113901619337755374811631796828856665030653088969581407513600043308915735139420837769858669166730603698484423497697782217517688370631087163916924210111263686862711537529995119809967384856398848234630473616242934811132604357988881370547141906673482165540574768907024300557018289807830902670818277377572021538105901720106475846147028755745648836042985213925040744738368652472423574965108361508314737322759551265619237301115443110940496731114789795671949293983962270414090448105635696909062288287149356943534743584732025779568930957256757319425237256664423385572714031115732565294462801055866496496178886329944320803604907041047706538757042641392186483790862809136889201010918097512153649277426174623275147689431870416626577793113043069751074387038408205958198030852366011402812343629767239915823584810774588881991307801261607817521402316839139829125249578379891503585439205014778414807268014896147582352294214252595626744165992674727711000983751441198869731400985972486271614493288087264371914622976358088184442129919385833575454473198808746738662986494531458109149567459116329076755927562739429432709025053179611134955902732196569983038649702716564477698676114965957031132837097468246175328972596862089858614678250618621321587402522197949422520496444432230341927126676643402107745048784243322816452898092401273325757794508911877770501374295849974679282368163900258474666594950681003554588276816776295027706720901319378602410472874974109655671861359969760063290507373539717481107061558928639328143094129045848839653610908913680559456876564561658316930595769789925667236804695186980018999945211661824466278407275933486592595667359675533094985224875989817308228680905140926038860168861774701720044752018150130968327861376739091047996751899234371936935048450483978527275429745882777975676669762109637738757721879525650629713283805710967009630994739975917805756334498269226721922924856015155628888895470992243063414568462379566573419449089374023286981682359523395617521825845195745742283764281277245975134346864601136566916607024466699472817812400521608959834351852848303190428566509784607624339578760136267435201084269556959920680121656256226545034213715866110323512313799300069074781219336260304609733152551199232517174186489430374325454747010671243373900697722798632520169329386826023213611370202641633813571414605001293827277167806207105947035346151848152383028904125038808572371500969993555600413524316607401514108529549606961664453008890819071939485697015352786069876477185687650643591807403541016905988585858992270828032475920225619048331113739219574673036632212374489807679505482486988179623306597371113578946711927487945746184895450009863151840520226173093838365823478161706297607239286888949011549834482487868774801650448286757222102790965063236161777397147380087559786776951464568774583275630841598332750961349159777443992441659080542410974253174079739512033076939527162941419124539357888474332643919994634126555649721547737094662537724603452994346422381021507325830241243760347506479636341070928070137795853275740158087051160565336432568270159164377863529724000487389709503374522598851726585790937499954440980682911116740403282625356859340541305857255167919314460705944968670436858699257646084093208451279845547552624406936707737545048333523471821784279566676376867734363509282370150491129217603862209182693862687506720791633076027949367516713696474183333132643034254479564533607557293159605558999056446477052985321296941525585399672681975851536485568271741756861802271713744724520015400856523080925629976326410757350246008258260890992281955798051280753973447775157917784021702110933610573697443494238075800154169011341864554995492348637822601921695371138265261128905549924671809698144118315822579845907764503758734800143440919502668857020186909520901532554275644425575109840358328196748921138569549871394452767031954184960304474819408874387080718410657245049258197996951023197469111378128595888305565803965875230694144012681366463829365262087245733783960578598905053120646926291827077068304811271663289078487238574658059830774647645806145323120715555117157455563069488930778306442445990595314994068122395652556970915790127381468703753174983577229975611544916713441743284469382703147127175439924456226610630005816919816033403238830236368727839984173637123690843572334798180312664276032537034463581837753203944101373113035492005787688105007428934794871550200672329571648820218353313901074853698542493548761195808105010275489304263472995728952260951228967131138183801049934580191090549022180506553759993260148055895488061738252530790508221737289397899529444603798422401914150174978101130778794165399493459883618746111453775991747999820469153475550674292025011220353097669603941332638509966050691317942989585383130591152165200401681442870347026238515793717085266091322998868883231121968112434898534183661915637385738214395526974964130189115181677178851468643893258206257912626313645587149334622348343355714410207243680052994838485087500292970875300243928501796965986080243217161985117370411038727665767859188295084007862717668800481274124360433832030680434859019524392915060473541832604678124017518636685551698515900064254844264686140758388266524016568996387470342945069818339216480062091438271468399611699990429874487577657090089861997595773657363361308078421459702381367864091592803726531168360779150401220205377868220702124623153387031982308456929329853095779522106241384450993260350811222071465348551264020907953542225121148856895928142743922629504082130622991894815261452155903017489835189706708578379753076086940605008272860421564900114152189384901491484485664143593131589351711461536859284045002357574004063739702080067573402709603231772465064161537839189158079871431735888452436777578561130206773083189387552936204192857171066960659805372187473380303657489197811881101896672567122684837755993692518357790647488944513878064566284415629852510991120861290354923881017019421884345705748664010492004635807855804512056037003503719859660297892194419942012712215029724831558327622301802104423028193740980258195738888408530657204107218210541034923499339116978427575339958334841596862002281465112048016246467316041955078011471094021767398774915937498464163593156342899211000715734641034182226199745838925337913925167602556014777296103662181993972033180670960828463373716463871007087774772395880451848897444129169720349686071394373882252621731286380687090765922870269603198900226503665444290654862810354987611257640326190647899939962091964502060774731985957612631661972352878782144746032539750439347569650105637385690075178220135606589889862011094059775411620447886366505758540405608940520027276355706330922283941520522483175108836282017880931305184148932475964174341747109948272427553399170770891675438975101347087754295075549886497899379500279567067049351941956219864677915295415654808291423071684800975800852093397590565388647905634290470991398622260147547528111270023814037807755523271195689231882968672649299362629362577544758688564208274534310979115814332744313038812439073300682312036942831369244493493849127706530833081201642115654582447637470838559811956646489376860311320871525198897622934836441114146688367247471813710199380558701554070765122125609594762284787533448972708081907267233019910984559925154943549254217680277357493379723613814209457675198182774057583475462866369616447604792262294986026073490485313471489478603846562130260529787389191620983274470136143524631428167725089721367509290211517005513528019237848160678844796651981010505209557011219427368569374757249118657404767859003417185390167397274529049438917989220705211322822209986902493885251364185560655927022296485822646677393590950238419790158634556146138870655232521547646010739646905585884622786351048228677407676278307833092301335836545290161246390948645811682304423084619479661551639888995101923882253699305343124281760957642365063661967665473534981793130433103917237326709826637408256744034428580879402485667161330842990402708481532178969199997570570835893052601161444205222023511283870668697781885399042948541235716248193935146782811922885279012834233736186932805724742667813508658899489318701111904176761872742087622030899037784873985770112158904860250493597867084886731369103423506987510575086059831618355122179631194886537138854388321483977512575458766325519337959723024455416767978059987048997582159259708935756179483972752859928246693023269641457928441723209512630818025465770264744830154865211370274242026224989992827110729267660943420310459808618873224331835869446233173752479896652632631604253018562663707786692583619313693308537935380967801462667050794705956086308871617419780745373932665481953644862465693630727376732066248671373253948896142644764030955136542394080850395945131054533780223189414519761317723353717486136973123987785604809237541831481078059129419354415275927165032271718844288196713889144107281147143520413343429039618459526023268267320546868973365083190892355694308556591875012598325535981726802581227034372066673506593362077067271476370829413276802957591144123479198448522974042563137630075757076010409390655359153947007271210686764944865220931827123138043875913836592568270774605847482563014471776471159887458672994828049872939820598315575052856156129073465365318050525376859398278348538654748036213880868240411204469634475128137079805498275455781155969294135076893667619977031850386319531382804162131190068115452791703545549580497542346650351919360904981049291391319346551577226242705653207991882252684240136256625339668145689378860406166366888032485980503554311331683879655775056623085564758450478517293977599403334995546499596188881480056753101415127101816579490624926838884356147211234590789340010249550005028768548288002613420616324587424663303974340068514153584192150650310924436671035360380690805078595977657246074397018121286186888411528594924906355022797079547132599120442899056578144574418072979049416641476279005441890714362679431410559355920994534441045666903322136774069601728054029893422450933555284983975538794856026649555536745716192024647371402797302860590197339714834090459486831874359080389063013802348623479123455518806186395291776524050940729078815961835505988801620422118417512925792767029564802270740173814128359223567477980411395485662534114038608557039330826508063483461921192814888639234819233862596664641554683024370256100190221646416610935744137843863050296779747185493822019741708085880719196125231935035451129058092513207391426087713342117022536382835174405032754322377222574439653839975278628153445419839306030686267451316540589144919600535388886813978328213560755364847463567515053492845837074437782573628995876337327567911041561842930203874274730260911388342238049840945768539099723131031896641541409382829407273666573168719831845838932984698040383530258513807690926125527006963002313090485567802246916217720640299689397857827070441329248180795421425981105706257825413473371251626879431095781170966037521314877262999623932551904969307348840265373623769793432990504459346372834687401025439905368598844512093291156884720052890111757970705823441120168312054368198526075682362390289999418719367134296944301955258654688071208380631944889525516447614066722804684899722008519494852934060504053970173234667164218603340422594377202677453985127297258039804655886788180712720726866461212086264537130350104225351652949346973745767378968074335070359291272303896050733425809432260922802714689239033361055144413319216357346724985044482569048694335280822923823590564532195676003561985288478345267999682378426140766762939682832276923793430831690945655429808439796210679791699653004807075050610820012702132276542139584216694504941446557273261154445556395321476786103488790511126983195133821885756621296612587078043254791249417797839366288208730200491822763834051807200391907692436945300345669954818110504342665264496251461127121034818120506838522251529868805358221196673963243798372230600865139785331515861343919573679682874256778650457899796599836759190329773790809240675680699760136986764135274348620373046182682880057487670758276853537234934132093729677342746567734134893887870385353031407198121459269063246446174974459496911853695584639029248964012386657728578862129723789918948854867969284271471107215595373690949657628510748273033445657443633194260537929462279125637635200329838936018552321565755191429438837793484598345388178424580897305933967847831945350811655320090020616210242843311707678544703829456710195458747476272755945889076687047953626384185933754100291879131360534525686837320107977596805395833849221367227476274453612574598641778203381924516452775569583539754662404225826750059691716735392667232029988725634555855417383278717205736048545672073120173328839478817247928938584089828977936275268177921792912207609268534244465119053020613188042679481106832122987863796659871048763996488772144043991784070406791076343452527313628759874972684895539827032776175716711793117467371960905885889609136249017622205628492379514674313146320203642698312540147171388143003579511303239604892847762795626590499665166932153294476554826153839889938274608027055244349307341967537871872792023390643594759369406355181847532251093946087706315045338727898702671696875823114522095703847658214881263067903925508195190896131552365247801939551367408201748597720182308788386100860994890642620888897892847001749382248084655329833154532941948676114767929706829763350264398920523990504006023818983370957075652000586348905923614476455408638619628072174352723781333746466852145682072271647667511878923995235970559879338949367626601861706085435963668948681172302319048927456168766988295898927706481684493759041445515109737952416806721203084552506869021077575337694465712716333051556591557464431996504696269540517294917049691536433668370391927561474776367775603068068398592888706717030253763193587083593460383711982546800982059964100284310587062719992879310075044801378235228935617064330003245141284964871898781625561588796274098957946297806212342506044140603943833146705299817515631000825544538645461167192686415223921469042524521049722207292574571927749483968664294529867328623607538135517592085216682189380929122352324382105322073155514315029019937448104530214804955226905995128867154771152903512879297800735648888996993591530235890800829914245338938445295385263741580879271526195197026924739627070723099522725563449087171690624989839795267859284220946269539555099333776963661252676981564835117264437090199473064498895204955480370329903529753052425976919736855362559825605511064418681535295166082486062839376996541200542223487169359150456368720552293286029630172804812535889155245191337849008088950804065729463333906559734877730894321513681584543565743841493263235617505298645822796019149884217635416130943975452996804295436425191837050754081295877233228147032236165910637477753345358726738912988060410783770867683970784807725613190320693470951935828400146790455063852363987670991628938653417881670894448327444095098621992198829369025210431407376998949124543050718257821118410992961867761756854215179396092069095421850146252774451604570284554120460251146948829786949126197970763189615432758449511960011942749643026139411946222118741840897927367177385937019781872311960573643443259555980033468212111253948690542111395386659274628083176519341486289402608504036317326396150675232145199127165053650674243501441335445953446945869327259004583279311986907836596925715167413887186717335272434884219212137123800430672157394315399580992866613040566260806254923870975097847407186437629982949783457153767474286427813675869944119510376272234376784473457898032479705513310534210130150598162170001302651527330534374588052225505339878927505945797770299451210677224970560465458551219670107456592966742840548470527401322896164095675529882924401268041834028567258266980953531465017558541922161711813448139018958595155437573556845197846142117866315518300917925757428738346346052983728189313966112008646781323358401265287528151491976434854486980528276022436372011576320793036687179451958201995683808019912494963904687176010422987144776852981718857842171524682686159624437144388070774485392665522038116783102146009105350137675315246042888430927096104690230776261497972164907488287976081200068001281384004646969281628748549644882884902767944539629888677752442594723435475943876117623437639173384756527320965679853798464607818773027047119485543957670967610296927986738074322520338868319158895906404532659352274089301191999672220019408884415534211624945700734074640654240674784776540504060454250785628704993392068911014087913597343647618140330046802139930849307168571320091169467857063801054383299797933196648038673739677189851605526167503896249160944087600959792124556290094164854222499508772773435888535141088178972070069517645787498895202777090487949667133261041212306533607955881272285304338230007992675356050626664427047510289256257818050989162331032124745964432255686533220603433307808230584771433230841320298136095037005319341857052513381721128419374211051260900771100247653795109027553006174106698032601072973150939691888457369856480648679897344142624521401908692955737432133785579777132656386260977081285733541701069295114386446140417924148655414152693634703095834864209768088149107574781633898519259994925207104757006328839195786592219864131145609406232164255482063522656945447402326477632480020238589151887706543730019074271245626248831384574552749479637239083500133737972911410984431126598660156034888071873044400908840591329423723189383318026888496070582648941657225064147303387147314967069912763662059112231323963529983242646314881530325530406428784597157409261470202105018955169363729465678798621033927399078688194864273626478669729810683342565911288510762280937303899593936886177084537899497385378081544196521813705583092985395105560900400501837024183526666195006878101829535483906594282307375123077094232208690794969986616684757713865019629130893263902669177295308298304893414663996955808569804784926365618247831395069277515851627676751160011380194538600722783994832659903578197364210523423141220905999966073432073016878734883885374647444911205143235482818756886820222833575317341478661364713011703201559810155771479359979788508029316709010934553965122910524623112848961855912325719052210994475450426845052002673058738612255069032720217238403682650974220706703004416713692045641035394347483012570720658244414459938271997279388305672959636417999183587960717952275305936095871379612782454955008381999946251904147822985091326351259340990691126446131145137911673236411393544403261080317725723296878154442156806403212329465953882880251923811765915490022133850538186227943268559174592038639421821667768668864758784208427477715147863958220959225093147519605612918909771764769744972015829728586630155306743965866350843834728693403631443442182708436608815431196748313145687352780944982853040628090366199942263698181855237053210628673676397125887855395347613991090309409831496243951638689046235669773344798035362858134533644823759347647763055998256778895630252018882438940267478533092576811473666402538596238434336550730850037806347027419889684711732225342611713123450588985120226908310648677476931242531578217921365927113906022922812661832152096139354869595684526836384993679677024545473989762784294417382689684210504546501326047175760955513621197459823029977489702067549826347233945349631545269341111668611188703908121320426991315159914295200416131374114797328001070088351117905175913291616163487063469324702939447556643776086436550080491120795138340898581571123926140215004794252987763315604761502921019736082335970843571458492492223241371637828406572307569575785633221458400858932899434947274472957793601811848254029718224092128673137825832344095217197794490399327255651860886907317864933499638739469347755885939683384947485720315659444865162519127043374423802053898031661123419746075954667313476887508515902030685273636203649067161700400525593098576644338332236086967076548695193823118779895674532902218819356635721916013169219276776785949876179662063388272603995643039609539671092379023586605939800016201411939966198372621225628794300043897921516253155278584339833970360949296352506926078814795522682815031137230221357199483334632497562320354899709597889895311938869839930375702128806499942772739583067321706605365989171257733628504997560440046545164721761524350158138538839930211351066381756651507407801860479626815465028592492888025904930340902002357006422590656065612580594859068787180904169792113387037107397447901235614944422600908712563408674661235159900181700047436044758650169016005357456466357319523928487536357269265239627790246729587608151160782691759101842754403620877741192877452588047931895243108708850233679144013166796229250735846033916009079392756242717854657992700954314229682341001850802992105223586211999755178474262377583048976369095151184157139582555649204534597786962191303905313444727919903611006744161507537127574286857147230054836670071917537377321160081794612147637013793427528282757866870718961421800735176924361323475683497794034936879806208406669841350283405570353969779503718251384790647209143769875104373518804067425952236191398025738915525541160178718154969967508483298562141205823204477445451776398281608336344342753679497670813771883090142939025630451318905712625552620801522402244188474303669162143570235501851393759582364386472129013384762950880843676635998146088706485533951077813894887378112388265239508638356778391046933229609210554241798079178563039647006975339658420962251401255102710123115581293596755527754192121821105651340393034952654018141120587422242130589357500440002519978342210393418750889856649551853992862143828936259647999745907870744685926021335900787360565288479805844341756767784314874485178859893797708411580565475704050292156014370468253634900554862501191571559858852758160238308317221920155405449732796757126786032791873306321028981363140584054187569767663924214782626820901615202223879375977979835086783625399708421967481590136165733969486156226805117218398752399548922197618891047289495504006053253690129983468310755500578749803917076717775408292864845560590641656235641240264788598015205264642596026574236265361678181551743297034721013403049833587882579521982368287900145441736150872630979545501384612923222934247324776904255896562140950511878866660844672106333654948637883343903013836502478424861403838759764442607392337716097382727715013445698809197029741931251789415120578341927506323356644672112899379137233560873250880521705637245010016274172045792318810157020236795831800166913077164516390217397903259512904064812670237133200365409322955949665120893076070052479229381895001370042710967391922970981132676634068151716479559708707231292288389258232529845314882806566706981294347703769827655287068242110378163459750164250816141827161589762664016688860069251673768388590448516571461906936875816905156135505278236633094528266059473540169642268656215061944537661303487816921159656731202507786312548595046444038406855396440004503922346336718903171821297869498241684802468970343151399338663487246773769194220440845607570605136756238075692733590992264229597179673098940235485658571429514853071486824948415029263103438820095734319938082331470547170636659599690841536656480888447480908135737311160352073225559240581406151263984495910370455381223538594835647866771082412971417583775562590275643731728734080120915546609153014450203124273770185117866176063964126772828771196090222284427792275442972836486528011507758517922396997643192745035559122701933443350382210499322966337928733187758709259169147475701477088202170580475118822068993246764641591031721214022593286298883171858154858511920884362267627141810210740401003666373938852500118331269327010891524917741781376484194442169391527205569770808467166096858411067760454428780963908111993592613578304451521491782313324395250875516575098730739870881895863330842480100906707147462798142929977984504175070382130695220966981991309855663337494320554932586286163561642292212156763179588166606329143477255768697576956605216727953957587296557208661003756535538790790604498375366400130884037138647823808827306877987414882764185806769061334667667738473621995164221283922550355988857027457818832052158416484091287404202601698055232963345156502543163613120679391567350600870100712300097004128810067177326432237860654432087218515008403096034685863314844238999599295056802480367316320671241026302798612091362323146452548741418122341994386429479292701440516857740985143678742963237753984144544553191359346732644519952040564069693226943757080784638927625185982857485231600180490289653754830475301955396041422937836593046356154692865881219019352672284842372428778341970318387739283212066508767056952456002263901296533160468500796714500790999741234176811036866424554341335011330776259555246505570860547863459938745725917119039883115881600950129338814781545959270949529221808171982840453301434403705360969397947007503541248604577403653837212584136576277901330626708118580975142319644624828599908256910430979559698075219149774045183246462373958009173321479931974472539799066910973871376707433914655607576484448426446556460878897511865059321532688590290544380230423680046234088084178468089513546617279381615961153781112890855167825076575292946188145696483870653573171879896099378804196444816280553274042403147995927832278881954398723694823174647012298236089311715113370060451050292846713386117720122550218838623653957179702326148167173889773976496786911537437361049062325865347970320293271019613169153188563388131774892246262789950239437041063638456755202763269853774388594029548958795293612272658461845469655846151494906930235503575840242811616734126935785274289438178132115187132286145054270097596177295451781077819975240780857812210329648319897743519806025802536622390414800245796802142930345061903507369953056003539373498974512220780659581103612064257979093062497944483065813760075623601804922024175855070881030056793586768654500955363605540822439426221600682724815802711814797699497609607305638332557646010862128210003721675958459599688218030995422269278386845208921459565244713001034940776176339459121482961161272888215419337325385569066324043643044791420411799988622073823502658165841120448965533534472881490280318615522694723245315385771163203573503163367841566644137433243653410695407473917173919877114659778319074088925028173497731036622908116186043788220840917771690992623274960827288836215525174748399799075435582615257004760803647234033718224279153350651367578800876921788045863040426020989689139543487113571689660887963771037243949888425126758673544215432630612289299781614240895844928282143800416696603283896706652332358218370230389404387263684609445810835834058710898773629748498088459611581575271076371849068146302280872454787683675888599333084138211415153756276145699138098933414414088716072365827182358576485314483304987017103560007112717576375634711527570511000367987085894168591216119274264514498663270891565334075061443124249459485126403472342641137201035932329862743532569354638346404505767150158923941861018781448226570875391412537655111652256209225864547686237712191201686139703245935148846100810798984561349997187380268942675427290188053331393402092144797672695363735105738293315768305659671194567590749266214561769433359963884115404139232730404508249225318380026350647798257958925435610618771199713641349314055945208835076744571255387980128791185026217549802420847349051669277821179553477830113089820357345940575561204971119312193026012862532857128627772434498847107959594801505649348860151185527367396987394010529989270800027538623270217521303109642560885294512800926419485473761643133103369340271196116938016318301144776076418365885832133241387081554188275675308546856609179110451859141661231713297847709943692006885806642855419319081163749108162060261445757803449695241519854060742857419119359285656274310662384709868546743968419457056562229005316859815554281749894442560436763901364823988177910563156286871563168476005431549779688392722059177540376358475313369313854581577706488896016167421871257539763429708663864468240780385316095957186472081006971911111489937899465813708737485160868555655857277732164510509346867885359550723094996051016613313056618934013608000236217723443165096994993419478195738726743229783830439244412837109702269955152186175131349618601213943781542932993269371553122288046217176441055180682629267276382579196777091779020169856227991338043785426139430316630313472424307951499313387941981942498543022387110009154924463629590127277062821067635037737494374825042326376188934697202945732433954480609737081692015145098912959995046613309406787128389692539061306224069723213223860812611068875194289185134209370536959423036724654804802646869296495920675392640103269977781325986553714317397705614439194236894687995282467672792991795531293081135788661071485689984027385359306931931544269298816208779415109004209808069965327019321521455259965538726972186962324066224690278105815922054884510582454257820597320686650032298977017369648554639435705703279155194749331472589235368184395681602810339781332513198990767927000931628931194667621967733566371040951402974261683461020789837914882432386472758202894408840219198827939849982817252070307804697657444304352583471688032514832925508574787207644431665597962686834038258403365314820475672586912744266260238518041824417857964271243422764951997780266016975376236798133801858449871907030707281007699111793715210730688640986454307340847774927972273945634694422714394295070803220142249277529553294138502086802243950221123829157366496282529365897520409585137112651071350460159141395500530891165766021788465991330855148811388723549851013408540067850300048638981963584079062680120579829124055673156792008659138806647158802973208185161487229760158395607819271219390476655238206749200199350645388324544240575423389016862828440028146983266534920297395101341212274123475731414891210164385604452000085218849894585130980155227647536433422132788243007691517464475372904274349477625788445736830729295584001195835366612846269359068027389687433150309555519766794943827970251837876716688945108151309201528903286545204654963008060826025438751717099132723460954635856730653751992165847531097896782513784328067008695505440465201470481214081795083610163570825338466842266499931229113324126816780421224371146618241441005023548230506484043850930977184046451882158871080436151944821656008307793683130321389997455788286059359805935607222623763810421219266452167668514631429412754218372834561637082077435218462400321322564557009245839969260061687088334392042728606443933695568371988604614745166730844886652831112152786031200319147152844735297598904207279813193805743783069125035619919152147179269001784792134351032596987005997618868818204385382532542416778544727740278538359268263930378388780265986084122777935865707332714645702579438214215961993165542626913389661719638087835263602177992639554077902861082518628901393360735215502514534326492673044420370595694136162526465341289733877538144277872043239934200056492568615199971504077582332754522561614504296662022317712485658914306945808169366426842878618622702462950097650631955368135258716956722497808055645977884582078561153360673883881769244476483118288500883498888278829955841528680371426967245635540873843693004872266150865250436123112494433117953456823708626409352398242574541487938437743188279221513337869164435469268835025313729518921089602303600768868689822240616864109310172188542495137750997294629815644159750555934378952043683729033862242687946819801187453007385849048629699061391180571945555707776887710363400861179687683369090059272290780048504425261404763341882147346159456767090088975541127877728371890669100668039320508577367101452424254825543818091427704106929243921661982841601074114380440031522824442916679766351561545486768885717293243326297508426998473278180663898783316445563494229787519634244459688710978513559692368676723799088672745525594811119547625394894431800978003008413229226895612269603944793428510325199522260240713575640765633679210082603154563034343117283369119114298024578520406121500310088148641870110861264815667113548960012707815602707508077730933383382657264017113745645642898209077390927837552886805679432103459036498858750342191013165953838674659944496232483984076418959741420836786789413574131941063289777461414255024025456003861249930119046925796888278684081641240337092254826623404377845390966203333679616285763496205796394743607343885991441290910998345694894692374605851588066148482671053891134541678028312541389951627457590386750808554220971921786451571913598586599341299884587399220972538021070438702160256188040620063695164170768310324056331713067211561086028161526172991438868745030355026409620747738003938391006017485369731187813879896056221244701045623021071164432986951840222667300619253774175741005852668956538935609054075993173483151155360002130538782949427240953181836824231767203830227749255143264839603492740703407645370441695297288743051802199539968194299742608444054386925040071412859560489121056474713379234379347840846869463395412422479220520456504809591687468129641474328754493220690776799339043780181557512322467188747998111346554049379225763268838577795942418739044540237644898768700306794504937898928181991081488068477461136557935363525748294961080251631735539444252687245803719730016387556170650241975529324865344168238323687370055993037938209580618703145616075048983635063284367559947260273958648339647248322957801132027050465176956340099048965013666220469282079272743245422184469715293586814899815063885417213403140289654968440247291751704531901522962214105314622205135050866483254360951073980347270427104529951940218525893954810369948203714739913561992601040146924547306667571660986740755905248737395650449920129357820324143282431961385214516340852963312525588652925814428291497995865692723350605372573717000086443993064076251808290943500579293785466647657151022505371070505687796167490498768973567908043967791178466840868611256976757810314328412120138322452303456207884646890799858221559578535442436501433687691917903821701421785333509853390064778790243650062457610785959009232114159862153136988608472646504140688635340284185719395110829786103318864669443588807334278640475469693824557665623080964128623246583139518348070870948209255920508882637113810911131114043046182844272606168321276998418163822647806233143742065464343708419381107691244395751515117100088317155159235066124012125617198315159438077038797769897800793113481485143888631907691888404817745517234021471417671907678227218760391444559621419346888580289871291813679319386546499278220463410727716325244598483307565157633479511649926124161500348696728087800288916931035556535796276422046435692957984348545020987171628585043185120001823088757064814136319046884520558850793640138640272162980959497522227938763284305622967375036947510570279917752742889943624625928154161711871704496161861589230690782011120678319856210151939809898380284921370555780198633325684211685572462785833780673979578247547016293976614802306816600322675204385917378778975844333640605452860267706672890110450677082065300982238091032031333950248435653668246649566856006170363205656593044219493790619649913371992620245166166059027882574528898555840421672773978450345667591872961076556546707001886975631826719706221577075106263939137540452621315821428795925859763143955187685719365272821132795868181825835023516129399294169580816491160353420930357052902837755200868451904186952230569313533018651140838470604832769869290446766141779359525590668286134961242378561796278699354928756611783097918910584457211655619520662215058740877009836321283212614043735984784486009316684627280214617864663082371874298815060954459121475844976857060155688645081134423288141734133287906634815718855164838852600113512780362565346280690354831556407811575208927719377372229403018434985407192400997289890482537267080747715114001645471422573698962572162653467506610229712601669906598341111796789256109891879575544198933304050723312482185332419932388045923847162529405672574860800397374723714841251783660072882609374530896890095922662215356914525006740847586323159445997870583498758444399214679886939908880231482144070235223520764911299692262959174015123632930007099894961969503864466000570776154631742066720024489700828305014801385792678095877650101222848465594374517987120415164753240821851084270420790959023492432988854037620817404814369823478494296862678662186691121758180409527856180794007139972228798454027129772073033703783298700240480352190830361416068543364725574137078271513875295727147178686047786877172748331371340384794486995002404804405106298312823151021552582812555804534922413143059823092788239877585417584038910244185547665242677399968612519075842977645834808434336476669700724244877496313418108081090723017570577206852932686785711283970744319853456549816943608220921477318890242565932775696625294586217966187243433416340278372624541564625105433798481215703868916712087710410039398372837068126522687051987830570557433895871316636784878986995924115203130928127880436470470538204095407153521051244440373893723892152780684700828426614157976460716158570527616485204571261234904682277650421601306232950433241863124391430422616797030488164020730482316028323576907344480826976319141319184843223990232847864588619552788725890365561969473970743915082672900500445389510437690477629456887603902373489681343109243812791942719376649234917411287521310002456297646551845342945791198583027820551415702846917006835684119834731292713311038374802847714579249621748008567242010150735189313134497548380723707697772101635904566879022716612024045925828186286069481765793739531216438818427810179830188205139240887181549529469108157926493260564642584036102166216803723812397209850034496832514826064105827339879852797265711054926662858119108292494945788764147691790390607552224351962025965155373825983165536414180217986776097348626444380729674653066384783513847603135708161740010862032690302578698088708138982750752383783052927173877488654844230849282550767383444251630533471585983325366725555783509812574254331336711541479945415099704510247039966042409829316966456263639575186248874930695788303390473092398407831369029143177121138840169781429866832510198336503477165878932342172445652115396629343332444951016519268623352108215702478386871911228121132759931224800175241948474363926007297333449487762450352609327802223688103362361386806143530595856366855102698514736494095990655357729307658263821192230553051473628751216791301961554279155048653377299895615643103925823706392566528005128170645642349640479659021383329340331120300059016345225152946402807552720886900456250063824189591866729488240136258002511574734842536487744253266973207772642722929377357432050194352212031687376243126526909540738976211330473759284524583680074243452015907499986666461109348339196478837387467189719290078767050714880486675341373706782260020433077556089438265889071415409474452360321131110219004533828490198924375950978070237698010774893014628467414171036864538237798816191829200326819717050072962272384433341519029862656889194417888922703074404409781919636470192338237449896290862084232019045214055491747782859882263170574791684615996512539319311025042582822596416456743498109581885922074347480572419273022026224734262554287876069416614320336016845275161771772136990549395885078891409530741162551139021308355977812472183715843418217494362979936459204820165425224666364144712370178533401764495558861820477173791841428358949362279620560279250495376547864880378445056354161541505964542696967102634165197175376371044016262822829828772999019191732412269644834422521809560187911902015976728051501300238458479487132966497407363155723942807904298363343458805307547979726959192000964012321894098157671627567222096055167554303405578943214436843276976578092504074461792777484539585358001417626407561495948521736784153005188312775863020483097082509309955705149332760107364403764784205367284735321427015178515850803502115161064984136685062160753022362677185815280681953297709611185601513254296986884571575804255494650134338055204809376372234849406135922245229186721721501713078260038831397300131366752192291538574887331870660598025985259332670742147416382284585365755907394216021397243832036270511135999322235357265770045920346602206823712308754853453549085203116011238843057742706838730971893990650466354271393375160053487906695994058708534202259726574018208697718517975464721768321761234717910018461307158238577709589857013843253164596187477461788939776672763234102234078056010856367218337484562554397512060768727397230519485477290779282472166054090177403392557293136863279307559214148261379252056953037819086805194406239659077376579338712489368789603813024400251057069331064631616936175344641028076216907289550441724935579381434330651543869632782297004509948988805858776163911265156702672609754320172997572381122478048810908572749620307508080780895878759858937216318235025982874809527695699565652070114973027243989520406502244426853538855539849149072024437139254886200389806851641103282817356547116545897169404328270418922685868040274641714654955618478251784318644567254513981615450813975860608920916581893540726140530494335195343090709724382174454441156688581432472600048024798808136101504429871226794483102997387515465940995837879583047891402885088151586445117678401675010080731436398100741321589876924370807788800765155233831644928933129565246738849702390640967180480852973810106694620043814571380571134319021908656952474914708891897578443926030245686439062802063752075372285421525617106012789475977719663213357769273467856822907574560321792240049649831573333086877232197650029183869202127621626054537333177314691570452672534908974261787147979053096564251942042374519172206717344012966006078670741396004938796280944895788505863802707058882417531309758263744829074735858705948992698521742124710230676437180517964316045779818915656575718985274640323982628252861225286033807423921088002915485310752267164162611276748494928161480286689808101834455115017025801183577191831584454342742003910485679064975033122397848475015686886097936566304717007368263910528354831768510021088149825112658901263875976056838631898523266947676475359883049168550374093347455450600725587236046103504659220807019879601772332957007884523361083037906966757761868854374236271836908023539170267402732727265735272563571391487704135024585664412001458330929477548747049008074857818623736313978340291783163049209262366900323290378344986202611940529691280834018344065026753344760023859086583596816753280598001903301200861253568061798106782120331968816405433664148970078554470452134001463912666577668369941234818859718958466196353595470698399672309147347208401553559745727584292222981385605666625431855288189013181085464807876228129060491527711605990296559385082570770698876545293432738481709410477104623094767496256926456332534445676795956685357446293865024649405184936650136248433784646233659815973483643286533834648539050615166458942387185848163003682964757821739343028675577135582081416860641578259369491628713860794387798771257100488039131416839178968585604981574817040740257201336791234401173591193860600335849986445914852984200389611008535679951159399952053069735884027741682889515360031754964146121364451321020159386604887541554988136785551423964049596285741244670020821659954971791894259035781569353939060929419106810884538665399332649121186386034929089588256429775349745515852472621454760922546982376583240690348368204106176431032549427406639613640695044778513516987822172335876679667328095940979047131422995017979125949031052986989674316615175886986398288548896682649527342540322534520689599322497102801383792503303606239672900296050071547071374907657485034924913684397403134247726662061234347520105551885152495025402980602897552699052724728186705254296508913766020887526971004216257752455643279592002337862461516556256878898788369148351044838618614691361519116455624933548543999329914382160072504690236373511458956326093903131882297966730691099036896488267695982368435522428759211391954089645754067096964169070818383514413242305853368457715373265847182052438659774609851161344056104617051149981897046950963878012899272036140765518692689688621949077147789110238378995854033542032992916333342495058973491630455794420696172112685853866309303927827396813064908759606120674824188072552676095294407896979607053294593054549683076677442401337654035068651754505956859686848661652192861442130378970043232001901390647782825890922864301549167146038371252053332353189361552776627333117647763162670074380744755418869011089308289064183525886428090766406877545199067923425938860407584850029105243832685025161150444791411574107973561411830406348505636209275314569823451960745483881378541172973119342506715769303731278081971430478796694950032076979537955492030364651413814559942562764603389673625240092672185861747185670081489247335675545754925008113749319248830496558747275157926910877388975563115857128895639341770008500888977458542355604170471760496917845437811241600527634968827420983074128271167213805080114451503880999092303350810935732052523167671334102424199499062036582778708837541391146504046107259876547626285775070863245173887715997035184764212363150867207236367230784058987633271864829827930716534468841499352946834607857292990240582910140467709245737124208924154977249671712677118270017841587898802708688683684118635253233144849158535355908136761797296244457887756807953398042314775930849139738877136116501013832842707363498937160690664604192010382672456071912259109979882348053599542781887360714154890807012489371969795059886264947058090310620695006163260326558780121812024290918798257155129877196436325531069866702561266207891129927700646088132864594288357640295413270361282446579742982808128689388609923019955672286055699625713855557013466642085466468827981016880831977575442758595727354820272073638513711616150438905862290549780426057111077619193823893246728906696082583192666835623494462967064025609687060600367291258570267110875390677735935101694309119970517436243383297065226169003002984893141580414981266232580636142777605476994460200105725193876332670441432171173025330206940816363342129225453096111522066156164462948291096150674658663595573726868382263403281590909319264014491041341242232510974028135309367665119316391370320989580326452856993337649869610176356603771641223091982093322320041134551795808594934315130939746432277265661505397629472252887232686654360188780185523177651187327109511328000278370693013976265191089556748232337993622991566317380853464740556171814697970032648699930783468991413806611815743420242709373555565966352015632066062056947717241696127464541905039798930219869755387455011570767426478566399684704876079314841445187014871137245790682029107854557216271560019881164520477625249845424042539563650774070026477333635934438386127145425469945140173689860129472772871634215988614805254504901007378657983760201609948551014550626968835517151431250300254018229169986899220054088555118606045493165415087009506173358968278577067720416270027048515274366562763402051442706189626359149806367175788169798342244739501325113402734387840964340634038964359137930692149825441053425200085096465274383988407254455825823137200556079524468327628519659446340474172839324460803957623297420343851506173084094667645776344743557521366765131670029332433724599119761155474749024283905618691147805315712763561935751384635212677362999661460745948470909832010904348393650567401984736563751695481551922753431123756834002206451655709835981574424367361058548485054955282917481494724188212720549092297625784697954403146422647654713175231416121776531858001644602946112499556549785244644895298048786138358602619812139736700485285073530998708232933074879598215725590124863100079002679525280171590577338854745548310537328940394823806375314482894460161275636230925374306377752395799750736059204797219860268860574672541704866428813345451703372528832915198431907088931388329002199455133649100497241427755622639287060833844182174598320989963267249762657361964901896728524324279356863702285414703611924963889623865228238208586252261590069405010468412263665673421359152141278063092300262436203084299573737975103103949969452329684222617126155965999139044368611449952078934007575680575671499448035499012685824432542808283378394997720030963551208538347293205002577402975220709987035305150644281497350132765470562953094159443276297190096659664577330863863309593797450286373412018064186890936324120105447950779222412830928892174904042768121829644001668363803379111045939613321927721159797754859055664119348977621226013582416685013013706066854392540334021946755325467323671216334357222859262621785769660817414926821942077599271266509556310387525873942079818737940148185469431586226063860569350163275170700213639134248478962730962928135156238646864077124667019910442839813862525369372509183137828317313806156766898610068491575809124431539881704174809419935295577826771571538874408573254300728389099548467352131070052245305293272799386017030437971971243869979751570221003949452766525652167439375681090300492638238499291338793874803358427855872670150606764479480958902013501387860208556806543916782089634536899918621157302336303745311300914862685683713437788762023107908550979898739900548224347845660476154712355579387614306072986376870908127491006778689090006673665741559499482970703434783543778941598157992341886133779025548470118652013342858163497604286489153896026241232341265176021714937437797931007749208936239363157433206356355130464039520520221165129368744835143795596008871074576603058076650298208221531221194889316379268928342127250914588575910119587259920928976822458915822306267304737751079974588110913913923140425147383752322752003967900816524686315636958654301813634536322539836904600691350262413828399810539436657583567254747296694469886897939612450898602847256750728852640218576207268305762894337245964007644107021097179172516947463804270388188593904830810430262930597775109201539914504438601657291744893105465200932287418189665899900517762454771984979972900297612190343269048281619789562351785004697361557739211269674460161634526289113703996949247438411501887556190859121677236183306363550240991096109189087700011431732157950352690611610929475276768086914247369804536678267495088203929504027155103547736288611690505252187278582541740559577945967771043686449868468163679272985976131750137613253498865385701111110363545387079817214575280398876769014381699232746024053543734831344831009734617093060574374041928006444513649688400109982854161773455681067783416391739630345290827269648527588490334945695126042953590693798203090587324013302516000872946355346504800491155836185774977615391009541062886726848029540422412013841522949914076862762986303947009400614473906702785007314008829685336212954927329927569280011297916378897756698956225049590317044855660193667118754965750150895349753610310146460047045095665080040389938968627962313820829130166239083339334259399234740820535581534980360925385273992392969205319210209985080794670040380557691133908594821881790607696323474999069909565712595152941326297832039590995411823323701684151180558547005026552581127477760926634559967547813278393062139392512982728857660787811500846255256366651340661658761707158135488853136083144196631331786270197484559405733108789493438849562854993778715066117576191855883255276177851435048796656475572512268517963904757348495933074144071733564633678693670171136595906226203107561655561677782974545024716764403920807541210421064980777256637979910421430755391161578841409971429013609545963176204484613464455293718106770277438174267131023945713542005843432408188255592680876656220374782504957395988896461065988784035910913662184781809868274361562007351844907880761567025231643327407111245814403776078534104699005410377204094961963226946796113327585832711334372656982748143659955727334570104652721973425702349336189473232658706868516516080657833298517335930660997546384285747968283734728979890144296053447786570749928910247003972661818277004348555753237892856935652952234371365704436585902432495525217751541719230242756152716722019401940635579863002077714040537328567458653208982254873241561987603786319730797976250283828404691021268820587652051297340649705659434656886328340740470075218723894183212460416151918784120039787190461337911234286501535965255995133550252198972997125395278653142691051037459991901376846361971667082734416680873216092546093704562819849435048760136336379809387276850941619068345254414730857506390570112863769442514716727643112628892341104767564425483454198143458036433909993809850583850395693637488032629415278296406034947346447207112910932393349165510759820158135088584546064069583761223768930732133087937066210915542743972331223607408296812299738430040365647339828800533370625870475577445077616321010752705757003588393842565796101160066809002601395260587524560040821909672877273287822326202011622747464331128474040234680275374114545297705937991613323121848323190443498785078782874798756951139644608694705679271179013491232372163873853219529143547753282103714397079129207480643397400541537846440946862643691704251962172444961149178773292233539419652022805818074817985673446784919763679298748423004382647483853635636754738403447012127555122271433250468389775516980636640845002195202437551811926279870962161593760403321683354187994886557245982001819825064242326174723167447432634889367903645902723587464271543706747951858763986750097399052878728321717215718471344777904568899083864505422707474122554234501568069165808645249575273322139666456655728773917945668153254335432732238745634389499019727479035681961227609796581176726526612652704165327956822261070849547951227870140497019598088901327848387302147904401155038032269600201600227221717988114993839875671061493442693476484179768978588937233477407203306446300966747180170674407688582507896159637490400566213612938262151284189210172746112431093177730199848213658118604077313486364662759633297942700989936750616089163956997915215625051588381377342188813517148527107267694989585506308985600002477451355740083834981429422810557172391828383460353829121507798455529177298543698628124030762810019437014922277035705921407950609009265673441374903751188410075545803154858553413104532876075228943673289022481182387039394774937628960543559239257437366836637102456499682418236673148765566801137024108711271091326780534676309661908112388636252833414355423199216800803167969880908505291082067757007795014249232234067445818402673009468594802769306739624448358392690036806286740709195302459134872191063267263741888540478103547423170558018778073009419529679049258598973456473530091795451181813638395094033554353595068521278691500364996337195493384223466671507180198560409656702227781119824222128484078912673552039087023312243767928256266227252037472208749324394965280339666891177032698748816360129203291892387574482654179262523195878907025964498751199976611864341913184174555706839529307300672503872785233072763512290933930289429050671777749908361950175789413294386900355327386839750831594830664298700988723202469622704548949813791605262804677229730435911043800929548551878736354579093369044398665925093566375291682693568386330220165990031275209952026488597718181922729433465692711162795031752985518859090384591078129846957172692724168707044595704110129414189248574241407616917995119894634209665560873063918110021011316332051250942464240742131099001364013228744583646767206002966375830449912560425650668384036732342263471143506664343484415049564827946972663823941030717684171248060829210342884618466660048464972383213991957740046830611170393386014192317271695501999042152487673714332736139425631455260664502156232814885007191986810754952375227737845938881578112863422561358074811410248837138894462159478442209305036266679869994788779018982159992092595809277605024002339846299200790091554981262381270706740607142790431838016482551700844863211131622762468543793878096158805343969271482219379561937053575399977126894856608501639128867075102398617298771291215934358532438258989343097215539389811901059564779328200924156466453324067882042383159281159149851660399122461375536414288107345560367505466997200141690453435859679605363185069579368328080510230953082342871929662828921880636098623250399114509837861938800623169472898812382667924624294989425679842369594862737592665511959075540618273822118275866704145499788137174611323643067854718505010358144836546900635770463731620555948358702015693105395249325866384119436388656013144762653558664277903399466010361340096164041478302373577877395057854571651488249148303659013387537380879902793736788886074925970678243612374025144792567262123483881502160499376284475530078419790133472931452171974672379931323886218540593691241755002954956275964942908276636402376180864982420771518905207455116973539817815948352983063599795125134808565042643316948657832540488429336918559371855282433561828907902428326113036710512365024235180951328493367106978582113290418019574301629306194082942981196050559759603484819920477418144565332876396590603054251721621256009162532747987695624199817146353166987739175503496261825893062271952454466436501487645190485668135957991069785659614622750642159677146310706636437072103997467738322615958941009233165420351307867705111805280644140603503362194185327233058566168330656855954044452455168166507660812695835922776239040624623927046183948245885541875967144172977576463585257062937415173022435720240817958972095414902263485769964904380114397613093264128558818339006899736853413173144334279478150322744731575924614142879406600755299453401737724292316440407898093940150283047721280312385178344329379637546396678724488993237905479006683487370849001697471548770413676134804901981050541989642597884746856477527762021451666602676010574150845317212166468382198197163655020908177073981526424343865957745557984675261716958883462493464484300971630965410417257344370933060280502015426844316013619605388449549305188928860984886638698809717747350454839644055440381304777154775761925133072504831138990106745325069157804424663087359921898584224352425168474982505376956558951041164589435383152965608183983199886834281826797631918093575071217261662670821325944592591538937407723672938879732685404774332766932667039570411406157426427870144085456233853416341370698563116333878607261000039559878688041697882098816883917329599657766722996704036288767831826934170278019660815393484586230786863382447882231713670628151648736529899803473232330490942030123825994386310959465440282616958499773893557018875361735757829241331591495506505055068944421809732105148299660179777109265172360736996239719969577811052115972647056532930190400767083789957857195364188143440805613497333709868406140685464279970113630682450553689972068228521419882328217573678164173868554842204770678733045204392989862968395293529656121200303096191234007810543789700262587394494685358811678344319759316439105153025137204207078075322377850600257898980609202548495953335995352721639419746954382440477398868155772008514268030834675312469985649967103638119001354166410270723337827403808792968061199478126257029166087691400286496236588910795927869215376652672489972697932989088900897676571589416711118235017680564632120990904377550133709126141355669805617065124138787401467183712651588688098709156323643040740631276528355368649859180423174943133936975993211074328186621308150354341825521217875032935061600916253777923885744304019383321787001666027679217267095974125766441745384701783231878062775034891417009313495149460733491673417994276010993223725639696075119516725719140044742016313706779001334701568236161371397181575029034852722197020674109412695292215735909988945896914777453977017974733543288010986165960380150482028506047235047768959946924161859833347110129688994598019868654800081079192257287950798315604702642624841834489252618798654700865585724647952642488530800632954166055726549310312308332932988255393454713238749060209704020049440020652003534830293156821997115214286690573136317958020067611415849346260483836375080456734393214923077052097842638507682809299568173675851587756365095304858368837726306003001344445829181707733231048809132746762932160911488422215141216012973315962433365717688173485376787844831806984249109341116929275198661791507998306823566839908400198502468865732030696684507449209138315802298723762144515466652424578055695228787919489726437330461725082846065842450144491628781427828108665541992398521617552176907301355458553983729295849644139396200035951218025570062875353350411268732493363843144512382846188687925213589671228119381309099909123169799662364949814925361593678542457686867443915738958052908922000313705216985748575957503176749344380745856512444707032210157516215424806693994711431689961725222520810820023099991723237306324123770141278275003298474907849252067727503884811509647839243408585382670690847859561232677422546016504438622690833862805960942521256211006511291508490584761920988597519111648945752061331917506490925336914482281008656297593975331756488405623316889927110096496111582662313818014041197030918726451760335581697609184216719587502916069522045212227294280918373640792701238643887389207778757387313720525973989692576934811870952657291704825951172338146933134348854566092725758349883039634974051544386039731755593289509523517465218785079070683451603868399294130896814773321245197087549183519919495796224958299825512942692925667739669391092718017056339183492650431829340576389749922832051073030494326050783083129989220182663480412395474746769366525589239344652495408121987006986471510664847307059094549743574683471536089870449062377304259996976837342674119297050435761581741826429746068462634772534785918760132036151443929906075780104753758080795195502321169422759542332845997668754427116081313973280567462502945242883974570139285311315003999788295625528975554340076738153390950667902472528234659459683900007094537206529883987217403812342124469578216299671372206605404203857571711777173538949153002817865718505610984580759291734626957802533581325500439288754889852996650290279732577848763705460947321929616958565874983910765509482472599217052393052956997745093444477854986304462661012281593728781736389270651591524401443889559400665525024788581461910744085910642296622854924646992903191269295854641681258995509040175650548217763122462731467399920117209049766547734618807332665906482558338469243664638469543630525323012828669920209048152151469612067941099900436228324093047665367002873089027677844235487472402127318357851127562945164400936269913273191122852985389214334720460970793249684219773154670221806113232288710032567325375224456811887464764897876805898535414938858401704030199831281598857356391299073594949844687667795169116628146091450204545850440492796969275011201628067997072882998772701806611686614959199171881806183869675453262404575781220460436354964225803561957990151389901512348751203955899721527686241815581635271815387747639308240516961679630271748536528645242736025062494495862398974854762576367533219785573980483573727056973645206292798895142470793826410867706363330699569454912885040088304578653771586448528731708347265112248629274747162976001757859354457295752421336719191946258937754206510959244589185693298044196003672644990854093913643993406223101178139391563408801718416725697950306442093233791575861337819981929243661940965500799757569607424056428070422118525535967705897824206964622582344571803696744684215612391231181063026250010028988347864535613676012207257723938798136906274122607462848166185950382849512362891251987543135856008074926651072334344594475624617018934072801009629369921170545540645965671301899049029717202888639255287222911019368991949368470181012537661373307489722634308511521983673628425112699983859095216753064923956837654084585105174192278318299082055157212206712321450284163244309918285616081193913624994917047302922769881863490618397896878299125640009378710750280849387289262582854569939649892196651573277836941303446374508314707065826333031004467732691483879509293184815290686722022185061874934807666257046836999574314855098065517390186392617035085643600305320412012567801435215360190609440607344716594828764261287113345117340804367141179017457957555412468801598001852815948300289239024636318060639358125822845310444401643805131206594953015776636561166500131629306224468951975734870619047141220311258436517725939635528012478401602585460431660392308170320508174585571227006497988906785489869223353624097585675934418492280343217381568961141065770358990977438658510460222323497741795010548640006055319642978299721650591378601849366365819295770413498395008437675454340529558503885459691880668263588808432042496003947077882143859897954322314583740405054655754288453890123934785417965361771637457814583192879907232268533885385977383355419810652181172461723985029316511356491685920935495187360848281621541921221004273697055534168224474712262112047188845492924731382823257160091840394026669742295408250495948688061499015744832002416292733168204870520945271064214106527635881569554360177991314799899882490441813970379342353471767393070347399947796697030776439659709690483304546560809578270593965274842875862205278621799546071851748988257159944618421664203040040842149799110415646825380359882971699182477989993613466684501193996757611287002408155897380416910933928179715043245148875117927799917915216419167359171844933669991985372847387617502128666948918119778155402172451869503006292359934501743623548523070475587961543426385518761751048400653711362827912923708669583132608293161864244394462592559339652872995188144101566150506196557197173251331576887982687179460509840113862649884967399900713566307759324525793869747593738041317546895543342445962668762364446958950028575693095987825274767998680334659546969951461252053248541517345996641436021617669316098284957150143792850427019395087051897160140393528608091609671707780647653143247242470983934053289651860504496488957861922888375944941903220700608079992918475728199275100551632116664951705877851095848091585830325194374190983592189550697319067407185656597639199990152263753244886647405771289339892486323364246118174720478807526698483826410053596400498978162632448636391325855534214330296455656157669333343074280939441046468959351928148476033877950492805183952577741296485821604821475047212961254356324265529535146261675635351737726705465309085015150302849853924799208876238855153378364971046447493507718977378782345584518480310464207537273043408113613847037846617449425033418636080164145758330337558391386984504696369442718449726151480273912911302324213197903061816282819156187907188177011454213274455745916985737482561268277190756996846531641088103605928790488689323036645389035652782531316431147763428282390198871760085745187496193098706064062453792991053596216169177867493076948587609379481473520606229562340348263033937597553362636777875180031434911190639118249570601564788956870301075637548378979154198120881423969586300678821282487421857155831757746503676229986479860476216023832933532652573506756913102002494906175141512258467556940132777709855439763787439669557041655586362035059049208403505302219141379332084564651709627548538774336656327538249739875077031604502484647016685488659364604713570753236310282327695265710644919062047303366335214479926914702423873417204539311035918869806711038203610406597621998505989495489153852327531517373824836177032500478848150257199834410494457394082382602268993331571497568943703665694649514568500840232747866010231965411180378746015422020226980238908540570053311244640560052278934130053160868118077308168013678319270621025442779884696343065622266097743728193433713177584978550718431672768751713859603268935311276635228430536977961336459680614410552481163149126236734934143828703545382292333462646840245193775794217004724549110044451698903033580980887879771945276302499312325004283634271524263451801901049050559879770518134674375911320413884773972770055557028213332251606708520644814898472489003051339387987653898881937498584088300885588892229490187867310401875095039935344179110829910237589684875905335365079452126946331004397940116916526375691718297470457846033346614290561492064916149469054467088859331549352119896155139940833264914791761103502631306747332809664294997008933873634874396700008699493147118708217676443756752320210008444154293680354046192799214991563176313599160244997928159229691817455286755350692637346204754519031502064409213745205450807568859907256265843367782857655534148357009880719195687315929653877011922266969573337123679715231487898052419221137363990727447763025689054356017022222625495180516223430943377922711172147755343214035999723831301444392364506516083317841502731545017675566211271111280765499600430071223138611421691374355839717730054464341324356137828803033346273517734356370088371711308573838161682934641486261742879062045111668458999169929212744621263294299200299508692655922510788674594278866841962848794959025112114246304487404078101797972828290444614180199144000847183466959296870678481864262253827407958484281064510898390431536093905837083254427822389639102872566981901039168527501392729076506694991353001664192670992446354818181921606813746666506889893441753721522047664037558681811965263128773612574455428553592954474704840763493467659405098003642405069620378930404273753951027468109650482665944801215261147743263923743639115992266018247864807933699066050142314160008059964902688803247783589647018098154725011018968620764972724892146930458714303007074094843605883753425910685431418806483223418046768713880080321009628599768733092181554342380824354622548272921154891842837056048139953165137963145151101370459990275563202399780258549562411288024933445649240279356834892702249293092724938447365732233847182120825729669584480949118792011157994674112709805776914333296849714427225679416125722273576687969156475688223482288061755543175564771415684389649773825083777719502361694912407079406385664039408821463187000062598177792974354561244911945618608208875797690130580835095769328207938970900681004656307169484714325439063865764876379958127978402441626278771441148447247152090038578371749912958622174364637609671744191861166206482969166367571420698160326608628702083891701193076079301366192521934410890181691484146157820012041151000955030589489383622542289728932571104099491319404332386022703975532437276667777984270157166083826186517686224352090305037392193177995271703279124619665122068276289184848099595080419159217077594727051786044966135836808707952874167705872114594748197520761835768031068999342335898568027726182740166397399576677406981241634456211299953644153465986172482516827223989429463345505859603941993958193640289977407405999172431006816467178992565603588274482603933699018043037662853122943849224325944963962309546579724347210453979642662273247975616792892273213431924238840293139205503371036507303971014278950455492273306254856278002740725148834161967237260591035904068969667693565231664510802090292783516106117393927975682209559116355646345699696943905391799643812209364124421822374892002828847836367395924276916385181888121187807185660650053825609065399794321597694783138845915859361198168503985419046030988750926448322629328726301184311608927648980983016948757608295100750800966094734207544054909622661931484097032978294828597688634931933006752277139255426650241792517152830062533766461082417332235205347336224510421980867144878285686172956234185642420820003960607465660497995413872882918463083184834703152187528020061145051571697774269430617089059369394667206106335659749734813461005917372430518279923782213692864323772235683323046518291042819797821822502324716237561933439641814318535299270824450133357499959595290385539535911758846065082701048628997504980202082407674112096898806227502008338920975643169646006028430720430386252976497618688625809293226679985202518072766841536418581466506839501676245394301455956854639724724074983044294759545946760502103912040518560620892499190917241899942735414886273189303447386983351653827386709536817552625750435888904413306588892445029987325124327815249640837378047552804841211519074852549228530985162551901590602239241719265164748944371436445964037710031132748543606672429701620047398315034717519873468829697938902949313108187546965826425397609969275440934138651609435368847820039444917567136569945502057061213194320346148836855711517062086034988012613214780976413294301507268256304680519752676356345582124592248894465624996085291218460579249526106797867651046978017040645497336109574432424224461835668119220827408877841058329873507624797528521350926891192557242644420673164032053106697151230841170340277801809170760764195918564556227316934207749921894386341852168302975593017003348242174788184496544910812229916135513091013635913381044491484543842225026990729605486439013122506664415480679850859957203745207993102626362678017651458804698169602174390798604317111572942011794194223705780937522026046768884831689104824161024388064786834766719425378585516792649776725879857701092089333283148285130046990911602539172198873210483325001403274133171322856536068881286659479639430743533648688075960968019380623089829724882434972093165901843976931679449732472729837279615837148626585758942088141996373772426103493491290314009936801343013715777806350640300163600899188422731666643919170345796715032697582205990800645177213576912417420309246203225243091940466966107213167059949980485029190232619831353374024466851761800328231454077391558886251265467788059784819355452672453315426789240016845868145103254233845922588853647410251041899182197423376204569960322095306322912705572331314755032136318684061938537418230134885423476153054522454715573738408793520992820920117335191653514828780164964289921730822755944323401409695744312392246706204294069131799472471200207152614052288938579246700649541304016586794539456280802155283198644214019822062415024283660835131862389370014683998109287492628444963174948152219352572434742716957390722548614383016599030869715860065437448316352559161642915048227524312240897742330293631696157001690424945064938590060504214219729405421020878348891290765621674908454729339042537612528781232310901412820428724328586318959080010329517206133073629437810039490037715228623783539782167001395688508141328608230928438740159656910090270827961810192513700046322317286130043657806206600183504464601118117436341991828514734626812181159555727664945825965918668839987950912816653246881508764243523342207737803045282325453573098684140857222476745765764580136552145398250286357847104368219749423615531162297599698671725758331477050930091985634572124529781278801144073398768531913911737818690868061988659983911131270335668433682766181930837658384732548556946824199896618574194013618946999970758292659671608954030538942782859320956757836503641481575323566165407841784479356621175897695291876765998253026153572834575589943668844485432346181706842122904862611309047384301769638976889152338768924002340183654700557701937887999751658216970782664788960777927370267200570888045697802379548114760897203793648015835443571701248419282479773811522585046818333457217436574700735006104651335167812408232320898892941602938392555994431902383963366501910051755490807520172947725146273814759252709697754167893727162270635352003718302509500923665829404962034373753109297029987626356143461125012273511697964793283054814584017165313810985466183191686570311128187993714173382372235033918631932309931691882204110504510673703331208872924489190912221855674146751879732247579877535714631731721263702843212050609224979309138492090875696962110658052194307827485896312151903625874017404031459019969927541717104799064189318063015900105028687664129398986573576033988968876920619830160160079185387362677727464565273392189205539170569512450074848707753699998005430204143033577234099849590969230990815183001071024396884739072806646036529913579811141408942390386285952444662147961613249395797069737775401781887432235747561933023565626520555837194798718059874584317689724123372206663199118794014775744979076718310186521424870146314848749668732439531729390480456573465386512499663744012530191553965994435689721554199428835783703145840036371996730451641837148853446900469421991641006864222568727093129919801493738034350758036645740124400808008346751962374528536040903783864700984798759458804726779815826805506816977548824956632499798177825998046022607793401311461659080669200750037968111519739247731882832632349914787447886830369609385182622820996504307420217367394568554326844082733272833463223789161156525009902243183538044900056843774140625353139834621059789716614067220392814851330484388443754711823109684379575624261542501723877818116635016097418840155487603930781381601548548701439637785219370301779694436145038871363089412241294845791884444997312984942154096466715002971037989076087046726882269514211933820056225498109696493669929058846537856476084582817868574117273803449734997599609679562248503827526985476862497841184550531512610647716217649403767103749908846369974161268547756624734488346466438017075494597360529195796807296385691743349535407983198438805631187521153487301849650217184931983680948520175903052538163972050908013169854021474098552981456562454819311258589934079587591576757217845497638404469891577232285548178666297947695530000677375901802879784268813377587811284120289564298049127489636914035186776659323532327666269651386913538726316039279988558996020733570597385908517345984694232175268721626764604984627410131890948600471503143971237430241877066688902412475941253241305648064640873308149087295892346207019039586322719085390206247516830974698656978242262570036617675080875371530627072559960751146837337853303593106238484163458431010883815557049796277855035244363118692469500108189132104537769189664173604664362947571398298861066336545395389249475346560783165119200489359766156770106886070243317017823874467301657799946556690860747895652871753107371493911708811528524835444513397736695383115081892087018335273784581084198874136451219895451010563178440649396608508246484793322067694054370941577093185037913497004773796963198124303232845976143621510475556566037629929924961645030641691138242342003995612138041086324894969596965554772779520863296818052786145553996026504343783251114578137448556126086484258680235311199633208176127431813858900809310024037420641397951841392993349962761205761156014853690041969211807672291999261932900669627637473186670006734164680101976827588385601245087194965132407150930374447885457286300470120952530703168873869697273750329442214600017834887129454249402761788214597006845325990378248501347626890782541545733401979404587948316235726581550394189881298601607473912089049757932587707305853711970942658835131824038734776465395484428082780123575843147089757614692500836791120553464338246542949919415451193173172276833960756181681402352170492608554968401831088125677014383680297170585338586549761086266140174028514349190595901405040094142911173420033365148770927791737625429115245532906773491764930009267342435675494872369570711611469727697350853140774716466965416909021236586696284942280517303942035440183278047757783157806486877357269453857771396861159117904402570876532927578113448261757117228621612070859520816487982297669601565934750349964279314388186970521009201118364018210400660105904793814177434543273475610865950994719690548031423564552853806548843179769979494253991600243205558342251822553290277823589873088908083137582162630072117202996078536603406039083024223602295160670966303145883520559063203932316861118573647727593220004579502015157294710599083548089610614818266741544374830054082483589599387334650099707636457331660930646074618069284851410106147185152827493484585360711872070016972950567592279581404139569305122777333375427269544143451854410083665421563628772098136502831890759452384051891672301539851559910613685033092688914178930498861245711151475606381093937845980624058645717702905252529204985708190982665572068354517438856611900445591586890905683697816879070676548825290832138953302991658291643057167916542780683180079333637851689913041103415292596469151827330379244147553285639858514203705455426090394069235233428071731824862665495150327468044782387626155054661223015821992115459401878808941991212206877706195567707562564220938758228595123110991229387859826432680341875830809884672008829180653803422799708691300014097917756902842310250282195822750789926004619617510887422655654104580656241555699612483187455292689991053621672069832038875760827012144635392026487090761760441198408320685370401538244435394340130938819874677766336919886007733661309938412713523044402018124483315329024324197387661453893138100752968835230841322222013785999003477647510398405653377894562211850017976781650241277138472669737253541758184365986675457383516188760218770781796505407126102311948531660620980197797225692185379742123204902392179267476136764633265788739429064838502020154091598318648261273940529940886820162585775385636555251664077660270112628985700406179833255402908472569478229084234656643751300974493457935600882105909930888316289111570900364439185275872142197988262334846354889920104914254393772028996566428574684363213805638584041452122027032225654068767873435068935193592317821512162650874003920632750685478938104079839189922153201730691500428745509081932167196479318476981176561149558079897726801656047815355348924497535866435631677200508068090507775017662795024977419278835356938978386195422273836500886375340489861954558740245165774309813043742437588101073634123228166674105380354092693452869487104591168615002184246870130410691996515681510620126874494696934219755399067291728393282571623285535599016015110591476975938126225351073977985023691302102352550002606560658524485204800080881824789591448310843183531835184207558423072834487088031777127856510557305445537485435088297901246985038815168641315426486097618482787457342636234964051831058761775589053572275589863684630800100978984101065710571623185775315184888882953448612592641408150361480913792657541589327083413650573809584307372400643303384341114340970812642339160720212792179156915402296567858297718094553029663198469663158960858752299771061375414946599457635148537776623482025555918928482823107163341595375900650682062858784412204135608380771203757314823849376195380945167073618210855858143222436308767873657451232908712259982477659539210252904786973419426014010525790851379920454930021358432503794928781625033903802766097225348323389270962455959874173942445285097062701009742722061977874842405199430522434311795832664201769295710945775553579511113037878991350879640187891310383894987726015725910596554370450069908580151274579647330330325430870600690027332661747376233136970367856157303680278868357596102456791539610197077447193689414266650037137051277594802748241035092704649406950376249266744541536927833010735838543502632261444959838984915748844674050913142643574895749153548905895735288458731839104418106221566217931396314612061060435891142188974560569936362360089308513568986574573935521590515932582496409771803092063853639761843967452432125669008878153396152054591921900482270922775812931522546754534909487366937805519136581804664313689829279979542372174651491166945493890786035232800110724471205548176342359629399827832760102972363070265052185182555905473079152989450373213621900022821199642333064177971236370536287504464523176053544555864891613739632266621241856644703439375696624909154811190448917068344861594899776790435974113897830311340613311394826222835572065037466177241507662463330984953866401205687453808380200965750679852118172261274681481240117819782902512791044857943765608189096225412757913108912011037891351539965887849326932540700091955857419020857115283707305407597938515478542124544545019596857994728401091334261802953241739305156926827115244061041352853833165459039750789367463528504718203300141403836089297421557091464331228681331329093302097259136968114801800848858921867976524808655493577908099946483885955831722605204933634928295135712995233740889015506858961554406589421080552956373828256572942946084550002838957829759648551179658964299563727792233548500063622308164597995204570657079261900461927670321432135793645726233726414599588533306569790411874658663812334926929337505127214181412569447843226057832555838927454058307628661096979289717621231463070347692685054813375130627844827996550537829210491433237401585456809710838693511811289375854739822607506402088992547744293147280514309635204475084752069597588703108153802944395937802515528998214154804052499573123975166261495723487491852324590139654162879083215964065953835832317219982795599570260309638781136965240259418310695186004541585234256720942436485728293472559356362669408582226509708602532472689926054957388420599704481108038098496191759632737029597844584697244200036340754878682901382792872602872644325009315886466067554237988189290875680448188419598196210394648126797916711387067407245763246972233763847478576975187127306149331288440873837600967067999050853562013301607175447569024561271053746990932203747005306141435767061333086263425259979967552347914293446505224131343745147414336631530493437847140861125954778017928438982444557278066305506059124923517204240941896749743657174372285421147833884555465493864965082573857332941727308269546235530841608750869493592134149913342920247556950575062198890046128988963745041528582032466505680194870447494315014780919560139783293869335273169505507495335290587838456641499815537543412940788543824944076714689191132842597126646202099161956279911731436482959044773638013989721936358928916896749607150068918532457373596540391432541355074659565811855558048453498408402642575784197744537787029254274580372425843672073668388211785205272571353558523081849766757266524699381174512682815423165127902016187509626121251789428419857173442671928387405622897455280249864478439260936962163117307863224254003869115685755393456424011546602809234539068277762446471961392316796076931995056925756604125146680786581147297969105388260714725815792934621599605271853712375111569135279348810583018328604127427665195584350699713577074834158592715652521862383144368976019811790742806784571723107689838273277285180220965361064063862251217689684430196074699577754581081891235241557942550966799591640580270038460306923559565127009210220298744967701852964555195726197614627971143312674838437956309298372928237198417465442536318390750650741763079051310708773293064618727099958280874296488577573862102792575164916225757535009402822833466621684344088653692071479619873639783583073128220681015617124485977504264302681490299644478693052102823270547459181580745778638257287089039970280008579311911527651404234122408808021646046052915773726558650598479853542518377216005810162852161457272755607536690610680491429193129990099725022370672548958622501239757974650745270853927084913286443147159116150049828450235001710895107364525643600743539155344923050261568413247188053018786036996521559952766539724574034322044448960741416253975881852836531514690065824406104509877936499613008232014685106081672492708853448609119594385978820504099975613322457410393432424276046045773907997742545722584154706836429429354679392987058175753916770896736695898505788628110116287307846984551724990973097933180748406937646838170371547733986736658131147430124498868840684635569637723063176200077340277585992563056052511015517171042282128594035414860499098936156452170757360018963406109513146072873153728322018509652451834822163893724070868452578832333285152441832458079358047674053923878176458547858770162204921816867465235340462105917940885642692944157197740876954580226671877358341611147692471531986415773582361951050970556872548448850257656121081809173085539849941427157365222165008309579376868934841576677379393533208059914327990631833307313862702686322492200641515766867003883992990258695548458410374248476517998087724966874415576980608843280444241374691647294658580323790271498357693845103939110407824566693932343510887866111122897358769748731720545548918160012816832445746523630752801532425110758722012252545567147372093410081731456463679048400132000735352028536488514883188836301883482390946275813462671010935505603879685095736120835614281292637823920069984503020894998460182329767424722991708545593524183965777249674447850190207901943264941709312820524556930436564591187660174160683809623984288960862451014808239225349250085406905742224854507667096272426851885622773106204481492434080158086149188868912097479322748308561903350666593857018141873174975189711536975185995880728217866008326697422955480683430291504209920691064004195282283266922223177930397942467519623780539300789396050258604100096297034188741318944327761300474493237633310858535387505368983762917879604147399577328827032873850353847965914201568119221259209703020618655635111474980740209397642488949072751323727574527775714873740499530071123107188633839796203930631365510913284367338273824193420008940702600193035905217227305353654540413451186710068606105097037263034472429975641631581282384419372803483470214356728309566579813930561013599724916110615939347133228610142759060941187385969265261816425242905215648404899968893754624615356585618586592340693291656978831778767476312345837729331729407484735296305630557127291570663039991487953796223936849424884932203720654750804757002069495348098817964472825853496183214882917913048489203154307738709163621891635644438060775603349554770539595947214921947272950746796655657781830632448628669269824755526767222200836749613892599258217993180229336499814066820860391646014334819962636708012967863669736432810614105422823821187527987943343247682381650979063384027272826562118021633277514682190047426409473922229841036394607927868656646209319579629064888069166307071863756734972910340166997115192116098812359909297530769203896667573598342336503155152164038177317264304776397171732407208209232241260992358532221420014645742530205952640967614135267676600119274422028995231452860728635912498934823467701918573645143232485433481229262948639497942266231207972701068050405498000169968754949616948502857073628873004038270621640610182684724321488716137871665867308545511419898738477247961573316341130870046711445264755538092826771119762684373095862883898590485342669387078146798806043578845399028952923478382876443554505292294222859737884711787870356329195726710774665512926545151741635953278472730495502770387865506510754042438841145996964236352516656141887493483232331638471831039770895916652249189759677058448123124575475791041213514428481200805377116961279819408822408917652961448927062476114640285218193871113826778721946269500647878043145658151860919626046679070727644579310447119082187039599570348535709591140654962047877990660199486616368165620768290336306390493040992607999876393827569240794647538469951504512101491628888114258226469346282518128492412312676626054393327536151160204184468452841028127508435411320315254686892696036606274206885426498507231515716876449668081475126610618387253982629097859960350005220383450138450124653691298747947156471662344763995307355908960858018418457913175084751633888430485847705618495126443186152835295368633735222939346400979802822386867968602986364142590805355321639010766268931549778578205490184424526867201297834344396692066757212205598606414773955362892706807489127953671975099693239987375079805897138702566613016893738164922204142036292287619229084147045629528263191456390290754567057560694850466037538165047885631758862612763187002929209659455574643992537347197018749533531449128819802111751726135836394585259434527035019294990503987184635595652084592636248109271325041488833016066847651621576825620872583418881966029367032709667823835371907587705211173233579162551750057855973673332631606190277706880201359367027322971321664522237959536739484732090161270371556468783356634250531836610379324882889647871045227186644892446446641448582386039594181039729417974081492290352641738282725491833917598687705182340783679690974120881266056599936044916026193503899160806744409785828332316400597487329892300134176197852245732128788051622720609225083332314524207465081713984303874015883459617243605401541155817124912426426328516179955967738159947332323601064742754293656773594069959266216390435078085740436231760315452249276732261772118068097370623705935288271098269499786164162469952744137198692340625425835162583232577755304094361046189696396364403598709727201174271000290715178239765700393683643298559323345210859757689425153528307132371688155997197693064793303758000422180597349949130628146615886550675740274308330878133835941127799590431460193053252685286997107969593538180700670919104695094442407933544604191508934998713552543635330048922596807789609605260883365540210252339184486083255125318215561370168802941153309846956126934370425122824703246712003695492850968792198239494389893796611574348107311904932604887123618531876832352937936616235777844968560988539480890973718614198685110948075512702597176494128912464206011444280683978613202050298413915873573420751313907694276846960213903405926002814238759816758839226708622687070188016675417814205124421323754677703707619264621776156576892586388385094752267276941647219945710798354130141459132473751381619716466954589924570915532524145793027591586598092328917478395832082889347393710481487572750976333442953290426014497771441442368573894349776004841166455623335399341884571969076115403444856849535999710278401883478429640046931993436990442563698571338873394135305289634875955538006948950677408325493355479923077389076446682547067566487495616682485813956964265332513382526691096613007688791818661122683487297843713829609214509123954426121203751265890440343945785203610520130472338268913411073923887703222374005578869219997018606852811588182109453055141510121473831305965485133096426651254960434629462056475565757977573423591349280914940618362337610446068912673082704694915415234226601438050501361509547853178285315039002669119804548767006977063827437362835474897686167122480723919603241478697233285913221750348325012635723849255192026746244416301056619689216468099203046019329767985489379276222424850442461208919274224366518720590368186819197836906101983867245875575338385882182087560096264942324862089717935843065985284324308007911568780102901758262081969202687087367052056558159710833720378715946280057351296945489931209352811270872551046241122102939108342207430498445559279191651568653282155075322275579000605096514082388620297579903493997234045968072481853208584723482446412643694357226014127113821464983411735833868917907358078051124505130502152066970134940643767651561793919723824044867284456995130149967771267773452108995433508838863711659315160422181256057027290756971766551699590251083954607495213069192816984191493950332909550797533256594813523816181367813811350825050459998827308981688539935787968710600659104118052141890595848307899944241214023387482026205561406257166339539174616528076222033663580388570746091710058091110104091695195314034778178919736569340162807532486082014664248129911636507618331387911769259306451296521826553062113128870279456340175181873341189586741968152672593388358089916071608864140947625639820844046771910583633540653086141280577615229420852110080926697976710013764700672837418500682314241872453112850368372564833717296637617064143457884315400709626241404899353358276743519573974872834838126162486621459445302616597150310166632782998412957630265259050499634677770802257437104047466362511853988144259692530745816154898940320795497627716165315324884354779436374322809409475350629682104704528741808077827533524421221078907697848228801252789492739062719834485451607932840928240749850693903839814984328776898217742522677696514483462937767479999014658607552367970389518973332143027976459805785091436965566810903029011832511634582072022385954916254722195496271226998077784166727810103852716600069988598077664487746781152982311883085878584165248059496245751857112494242838830722431505215389372165775509290355002138093096668777866121319220061162221523988883959633096323475475277568061356025444067170703822599609990553773978340934676770088781824079245015190532773782747165777248672827465369438990779571041167884014522009457494296831921393851153572384547144440117597745466127823685865830225611682522233426568956540868052737080997892345538963099081646223782835235927714269644763529088150525808340417312525184708857368091703531083264282091908189978683268173752188457459972544179365825651353497974193059277343334587632073653899801483868403376325007505549509060332238089269222093646041800750068381693131069238061283063542081529628670247147786534231958980545902751644505463074707879211283453174588837643813570694368579820762588366815802210643607212595271351403730513360734109038357356950957274067726204027176240156164430811966026268549695734271063562728273077284600825871688907221745561194737943344167014748674160771219861669317066989853839255305109170315998797419192996338500768378707075527686553493608565521086702618460680774997881473060622615576339055370480283415069524195262618871132018474942698424950835485914973792086236706150025298997464275137925202050221724160348478603081996043631942146411789543882264281127112398384183670082750421207625887184118195096209386802806007849896342695725628190227124140944125059826181268841216411106642404896757924438472587892880152339774684053989179508960274410455868166625473840814451961933976066409769466978897010763965768513749771227982697995415954601324933777212929358533507975766123903024178243439811224545453039830605450827052637196037142203520689034017904617669362691919802091509613496341843285743545957354123108204309793942517806710081694259770693084621583344132092938976228755564153856101109118953311715362094613151239571911432666557674486749670862516186445784050208030111328687679726327507034243486587565256348897538232108315507679014522464346374443885689507686664461864181150045939047926935944338606161170996349829337543956274322209854928933297916854941467047496980717535877597354368901913545631452760544692910980166875694235406513503536247186202746130255221382038917532284376693528774774826549174206380278074661315160493485459281511132217835422617836598615112910143644368007502931274815510235142123880104913931333580373798602122257218439765924654744070405800860575138471968423475612133321803658712385834918059860233140403453024448398201872500604986967740250644259628406140127485237239066982831140564139227986568311141336762901973432693969476284334651055203762594940518810686551338906186698505021671610535329658102599967887413099105194330135426546853432709398870511173257802159355723377307244523106274864903384976045138329045936584707924610174771483741107431562434406305666289290956697523253476465851809645743629535873043980966366711338769708019647869182042008151868493553102909489862931503147171886544049637221652918575108838660748495033672657418221860649073182936726929298666619514389612370179094970481470205448266372759610062886006664976473018664055856000255600876708855883550932362914580369222316794118249760635183359786121528239553942026919326702647758664730890268195112765742890331067360217720628207021510301141159302864840799696499975517850609426047433916885856871955202146587745826242556180998037506548860223810633063286934045660418387353180133282578589883266195280016848834974019633636656531763142557984042145332402105797984175890859032787218730543957389222960656622950176587663134254980090128570289635410933562927891851633088099299793942900670471905193550724367425288177226843852041658264389877598359745280173091239329344375210267720285316676690264754694626205835961072342189366125582788916383157233668143566246167321628747644131374639109605738612400059143193433685965296619924521460135974233847361439387871110903460103051436329385183490187660299001140334302572409750161564369003730384516444526738369377947306841896451465144969138845998710316059848833379500776431034790152370662450516405532827388398963310541995950908434742278928654983324766144277936264760213844087693012665627911491426427885712985979509385345134157364684990109578134094655036624275035480059487358532563904705614956364166922471011644757595077668696797497984641529031878724896936114337652108189986323517105447987478340982994426518476273283483953917803427254082584391766670218953681122472119825056984309983538796969161081422307941681584393764712231881180461252408856613752060752737969079734832756340802587940881668130684461097731350153326784044644475568266832793165813678526327722354672269805642302246899782119340520680477640486773364162038066409374548510858294432080281487102397769678486793806925050431409319830404862979648534491944164847990662204755787955986752424529855324792296459808474391850423957375155773597608683243867369595072279063016030284980634419839532047480215152518299184537164254171439032602388037159746009890644948066854009268559685393985829344732230238459784036596092707850383908907106769874312843051114789085968132214315052106360508114852263452246358610250279762304401057159614907205971809601002510332965426364225555468760630699959557781585337216938454879148557201247930476171050530500375745893063156330739351109949728964341026582708697120109732389855738681826203742536423128634386457777297716374079543981415611815061514919902545073773097830437730015546161603628438032495732059567188669900456454175729647297265488481772737656801855673578746075620445414124864859919197737933744295348732637524406705048607674378382979705794706550740154133048157715129375698830087883221185133845586715019959084367658095700574899134944007754342654124139735487632444698320986804425319860676848526911955680302371079866306866200409155066649379493738128487783454710621243769170340351625817695698334808259913839079903229657250456745358874118050555574974407946134469065441829822565693229955872517858478104957722941685036855506242426162724660707116233310545593167651250427520998027960006237588986473168626314209283781115867204909352947516650597532024953611396258933151900780128745461675676386185129603788742494120069525550789649447868260869768613655943735957085960558007974867332761745461259886929585080705919119922286635981898624209548342393023656659170677710697168739586555978787891856057824084485200231128865007714713279833390982278857276718796142863117980894999918180158141636173379278600788065251462780126184957686874657552680151445592691867781259621960172931627834925792446320511501699428351702914208630953017512033135031188820656540736114266728485914357872796382008509994507366999324500135946813673638213459820001622567485308846825522088827352956778717475302898885195281580915607220284082202140446239798244795344411369889461632957748485383079570256206975644712935996781208039022127776695016029128807722005285924798944971176564238536544342873487097302354163035479789813062154061967866560315409327642138995643412461551891878487478273870624443213719657114459915354249931427904888218005322199501363292321982146272027223907217967877005260433893551278141572138264654886729210007800922955572500164650060846241546084050811866373628933750268993505519964252970571401581533274575249131972703262700487018361514061647214901509941598185146625797529517366430343964962293811909004978376962309343687542118699623878994345198841161223816294749388046714497962023404009320329520690062563263998501340535585465303585108651192904549613824282704575939345648118734942040368525926600391488734068008064905162162717735371168161085720607695474913009140463416110160326345716682314669513021617084313207795909429220312324517980671913447084865596290669929012937412151790170406331310997468765128411098972742000352267663933078110667624984049838116741204356127149157223843898599327016866261333200234485745688491349290747468149416415380962324854214350919145864555499392750015026940911553736344123142467033510287552451767666360865929721002530403576547582655015948061641456483925531272100558712683361241676767554193787188024637846266973937975655289648215088093802784971546104695099194436320222157032751463583638975116283116669186104193918628537395956204677087188386468928518634949126218066440571856100371219215833964856543954567009687400361872788724472851095858932640053610766843670951356385189714394927840687283915777284732536474227267102687784839875954311574291296295167594305772215987441369723792130186569297282111445232414264560757001575603265370806387061747024132249023487421145072632703568711609035036346866130893410400238814285013138648782097052545116005284156749403397931165742163119969010930570833831286648280231134293070150708026524784558008031180414577876832905050735760616574415259787807238590599380232501735037298240070555523164556753540055389057872882059415323779932939069118531490046635489967393894837246873197184990356827280299558838370721222784473235153364635024875148776643389945118987442340362220875397304323267000243244558605812279479065709446061389663037500990722545595501782940214141362335617865110445552915534813437422704344049797341256763945094580796145082241567942144181812154516667966065905128039785508498679451223998011335322469593790927878549011062023782121657992323245639915390892321076481327743196850679862388428973346391568231241550672810987065733913174056340661266239620334346603112795742852450105661064688237823695840376469246249553987704978436921117369649535694530570530803174254491416940732416305104151481373234623423170735847445020925930376696156421686981900025777101205821899183126397785370897981190799915870545782201841360908426778409856298008502227222731937471879395430619458884025575059331755932737793012247074234152073378788518246207861697133335659169179360475097982806321816774429224017726117219962782406528064486900251052875728783909832786286629991394948032141447939211347389236047050649566763762853664693235325344205593674466217202737735492689654192011361879581596791360294871895415770064749204144991984110618843239682644299165393813937289751436369698176929629800668820809572141138896968572893598236000523280531443152175564371677998375829188724639763546433955441357402644535774318746814890515966931898146835278025356618489312974342706617159009907505701141621285321584371077282886384021251068735656285478042794347414566143915714931648506411757718560248747125126172717580905501016636300654409207800669885051893852224822055231204997795587350680723862081498379107889106862564010700969156645759410579464698128500741041601620797953439997837900315163064056540626073228905055703147110222558519430624838260036639547724521759356279712124204746108693507172604735562902300948604647168964272027372504035653202144059254917879632007036124885782253130204824208062875185875497133116826242854421832337332102519036572720099536183568097386067802372566597051415397348826184456542932475307140798361903498886127551241278526958516651332483737997502578298999685340932480404433769450658984840775572924563885285549233661464633205143652300163146360712818298991837923224999309282382358677279179369046267653775845914118297893501052347924955590418727818066734499938025520097731905570212989040462066009062739456954831378983880236664947915690951523635064890787558440462501714962597694171463695682363799436815094737198661635296382455097036624937015482350358587596707885052818308238323872855231170627773641061029783649818363701094396590954778087628794102181140072559244297242516601238580410018112257148562015566095610412429466899770609872436024201013408012234576740220774599446611514505510524034528092487137592362991922565733650858165931003112677720221028684395316743010350988030014973082672595412094644486868943525304049004876257671384118747361518698774435565672650238737060641368569953799974539725389222973841424472526321808615067440086274899522434227991138096862994683273165177395406887314995998962391973520897404644313643638403607938502758629683337350413472115153435846805385585748229418142497482904359412574828346029229470333839625415548786978548978289479806112944163013500884046242588643031402633558411203953247962948541644415903110051500334063716953140081298880258099839535116736665756969735505671749275099281920802693999530847394210750793779592076513737320985992369887958455671535065339970956388036039456447642612622696087302358556196560171191212270392795320251120180852174173892317490356853829243460576123238474036929554051501066875364602330436641388314359149286410874222136767625457810787781069847120297413574735733099271290194171330201778767209045477838976451451574893384864100428808431119685116926791559837620107761737056324138933488143937898985269799476511647631698963756354437159746277648472965273605389563547156859936875356474306069739905563764870849047925424171435356056190485255063341477839021059442403444809669048667220107952435870610975215074856237037435517748967034102069160891496216485718366194605548640438613814951802539369985703663175619974085166079234684358701964572186758161902749197637153926892958619219878110859336808980904925200262102587602483052840288427047909637245061256335802546869112504972866459006583648218565303181249732257246571655852959059468387159037280654748638344391109021921197994988528765723869273035153548925715299356839894211722076047895714293284235006453988353753798287846026039473835201778597474272833773627701530130623110447838745934190449285671411944812419340385631532881406432162794161551690394462780203088997710821754026485648985673610889648630842414227452301161751389479668670966800385733205977678160203952826263363328710767421192575941742609779110531597353399634016081383587720581991147855813691955537434894123187296158282311382833863525131489256083967614426180155655050746782293424306007639953456790548063197776727028151489077102205908299632412913894068189845442671680066063386710480603950890105661764962150033017226236070178673278703291595515860800429317400280667525511316203215160916774707228668827374147829599501540403394412503134326121601720393927976337268466965179449581485876521724417340975789867834551114657916337214710766997747297840504757087428854723911396750813498326763553777343403428100516736523083606568122487823372743112237740806084690716160721838197809430679093422467461563934401483187209935412119396905628631248968321934724322458034286172286933070873628221171726846665135971637844118113163756320591109392731500257097049692849835415086185285323204562787199005038406974208301171092302007974422358272120142324021520018610509907744666679260024008418186076520885541211978542830776567539882111860199897375243039202552878508953070371835110147445848347673789744409662594066143655733093471103576923150045610566379515035604104027058754187196586201397699181297243923533865855427432324936181594124775283634546418237656020683596593416493632637389849216242173519205897940689967541921072903194198651205206640010557868965312857919698954457967164801260567019437877013526847327858926834352539276033156692645084197268705048377086425241284935344794879268979286082767987246755517458140656272646378576991099032099293564292369392749541330235951900669496524927618977842880373281989779613592419581426278793241624892511984542104082227493439256830845787885313621252777412970919254478992885907493210539334902514679357030672372053177756807928513023868674880524246196046679022632535537272162914891733381713838597259652935435110797782641233942949967786772976319808156597955030014718680789100645338746903965832330615993183064952719718371732072155233868136961477440648342451036475634874345380295913495081298691100304858628461232054900171256801752938256728928738252902060169756681072856517178365930286464122146862158323282059552565886226345845973934802231295069980491240829286963378482091954060841174238593267065309809511490563153437467554156734296390265661603476539986708669557167136324903568006920826957521958699161006360169264067730288836147544652531885472122487635272436057378024389782176214926814072974058495852473330336881646122513392120116477711552868738553190421332528024900099810068069145721072564168016408931971406854680250310343248551206367957135892441477098535252573976362029821778089707380863517887729925266603803391444530958479363641099218099621340311129425116859461968490364377612123703192757845865516987898798492825831636180406591912335905446481090636819040221438601213595374450127846829162793888423250685879032408134852914614158563669816488744240539151920262172635913551180191930327184309079086402759402712811259625895075562950644068866805876656293948448236590551508497819770056303773729118172321189760525023144104710141624578571221552411884728492853184386899184181210486579969060641567183519164902783783698367752862713942555135404571864657542193478565771202465744504370511369627189798581207716143591087608477235808590992304140956471435657913171869416324308533575023023303698135852308448378827778593870652729806314301057728209621397680909642677165355832698036075350598691655977911465926989147153206641282334398764013287422551163026620877172577728852332241213946785703600579927266993418565573972679054585444218783968195492478636294721739885757938457885286051345677542041742518713320024807967777422691156978492106755126601501312624681735678213293082464957880992903818458274665487812929419469611528757261237982696160580301799884283006847469458651984093047701156966712285506210859078403724114158419636546832851996455864730488192948211766060310190710664697776625315111732016649984136183423882597013100743931597516862559306821597417597241184523038837453769005566749755035490743781785820904660105230664974723348953639609782529462483931361356810548593963646751567940654190813731526338305037123448828786085875791055409107538693451160948660240940983669737976195433979239076164260646205777729289042241449991773997052184341024184717658595095112685276594881040604927498648115257779771688141084286003426732400188432712992192962680869138375304127834624610294909204442570633743267490932535217818901635071475285424303856883300620152802174170403149329719598943950342560235898055196769854945705262980952167713744943270128083613152819095189913651279994903885693992042000386988637995307995884346572805886885898115141485120308107079056592692077781846733871342691591471956529543720438884354572988189992914528614755390590862681069159779690095092655174181395945012205253617465196871343965767961696889660168731423636277013601568799694644069087927082226838779211740046470651804923053349596521528068066804854412321816786059554622435607508088252167538508749935365882095419299223418421821057548505087245911862404864527338993438404410097913879042923428442532060665455159208113657568538855349601251683157074044109345264225091031142980034801604647116895485841435088583096998255706234872863567237492544469609029117796372758789317484763864954702866852673158893273034247679659006003887496086350913010758820425991811134294203220913970788051843915965591554515269749105759334768280127544497463240382404919019824136651757851612498621003896772786401818433658207068947332823523897856211961091165581331970312824973449463882609003613306950268790318356383493034202832279209893804127458096539920513799087951785262787652218718796861408710416412859803230659981899178488683401443411815835009142693248869664610637220515317304128154868866808293746610789528278527912861056864171074421433328342816386860405317331586140795274767247301550143585725700362162941930667050804905687753288331205339022848256406749720442636046417544882091262924653248577990178593697383087769675644895271677185090432160193185573950114203281584687591265061842075311321856328304006234101808211542092563483265908838991327969978835687517887928159905819507270336769656132463391793802592870231772970200672329429164763836694256689827932981885812274331631557622130174738522364980057026345598572221226998674380829714056900902128314351206409373594551769291626172374907706573404382452442085192301266805474354755281928517582986703722134110415232879839349056247590022604530679052737042653375986751375896309440939134352012043788204574340427753911997368841389063144311164107215784253224864645874233924184689468399438259237908619077853492868863385124587394289680901153785267638686069193351017379959950837144564068482081734466989641344127014748093833005455207882935152962250193352537535135066721696429438561117933900211560920048485232190619085155021952603713161357282635051588354875579591209021048799284320680964977971617143668579881446984082445886202340778277344597433618527384523641289101589929584609721892793974763589888917581810348002463498001843919251078106498159367058052364372652202252019410329525758586288721431767063724258637751453944534014157240700038979332477059177873650306899800107527905929128513149410006140153284531687641040596287177137096283044362380485078837991177418001422109567088477816823476071545196611814696047443245484982357242587428202448296805451207393923558970375679115992828114050876849136290846532561090234806853247381356956280527056429669007594831693342978034821153167875357153737431000875679457616139829100444921689025550144933030628584325924542622520914205514847798072204722666474531089832567570757162329066386528487761205385360295174979322557638038809568431967896934996774499147624956044472268067697338650499077180070366424674637461778184519808785989568154271766098529796709882534878684979784265282989994197178118000816104287107768488223590023773674181982349923235826977877657470065261412334069453496244465413444105650732305522154995722079361108702485038407058460563268242182310952710655448344129894108396620631305208813777162291126924395577534835398458383757201085906612411325196680839149122501437298521798532572690179706686942753933330439176164923527553588410111516697842542109866609820031594425014505786228318991243731063282182892637376485733690612089990564892100257276126430429096442593341863393843629010738237591279038014883234999674355937505580954184682654900627115845756135882665425206990691134963340731537936023881087826287065276373136784347920716226684271267096113697227475069011985110690589486436606881790627018308084187627649468160808324554855076230406308304765193618482514358048122766585059101175429110399533589077301516453826284483726403663412124235654661429237997561903125782544369210986290793718724381579864972409236914112847720749165807182333034041386746554432449394973316078660824231961334417102071032207101125089152973787195489031788959236998359485826930635860032151215783925982587996947997306128281231477059944584868475907133006780025219378534735446750046390846574779100412052935632927949862682383918116872492007367176277158978530666375042573195926283928948350836357346197492131842449795587951564795431615000615704730644063172250489805002091468442395400049379271385516629818434963689334237372065110125530564690976148879628375078012055353341916594649104959623206072143732695647706843665432012851981394116237613528664969934665389345125340802972015032209344934530122213593098929241634254515558190715507466520937478698876697499190073181475384304976379194083671422744723021369063122429844198498591507467600844635005438832833161020971472551998347626588049274916488147744826414850849171171632760611642891312748621564263470699572101535062958217192264249498713282474524210010858789147103901360494318543970581455543110609906071347592962190152967246515519042333815838061629832014237350710095180172767095209378761165742696353959770220823042749161320432550410975145347675640689050341845903301548402836263985222144075494340979000564676946272177431754959078934528406321781590825451448453730166320682179783681976665704534696775560309350082205251081307222120409189056930126915746360971824702967608844413908336774315562747001950610981738181504338703544218658178129226118586342752509104756600656617813839920079277343766608278129306507142219996351908250473334343217410263649547566672946341895125301368316917116798195658616571741911031418243213701619731934754051246205804164658261890673689345571784322533488689602795499285769204801049109708078818429242364689757949429701207935280636845724625800774088837165272498202094433811651132310630646206954172798221306997571855787251824183543923778420761503177893773266083506614690353428302698780440582781169986823396396541076664855982224543908226787524349730858039980499825714728903037982750643344433262172325112707506872892038697517567860618327063171135517470723297486878851170328829181244039278430986877080080090938896467030779021166491074358939662705983138543062520568276737197284749946275268077302146185197043618483417447613363540453149289583007624782890295945559212769544497078890762867224772859458661609939382700884220728565675983931847329739200998815032399468525439719613059323034097333039237419974054073855954282019083131503616509164517829518045293109772491147572274199288433573568761450748907886556614681010875569136954915541466429204775644727124453726497670970026508884060003821102217075623051255485487790896884522739045171653621544360975768825828411095973820373766039161506035395845512429312344239014366670370364823131535978723101716159402775468643008635978778986136760696496753013164114709328948375156595523269238783786950279977240148297659819559449351686978717429900738621426216022367820946710083283768224554040328629767915014308027024775145324207183152734546496035938158037510921103221401148790862747035075165003097412091206299121688520042898078392579597607598359718113949830104729942184056199628094715797980741670848411813757400075765282553928963259241021686764131018348863363462255605987375592108994732043165135681437860204891648493430671775708862401510890043657388408378135180732517826760672249316945232035087192106846280190121857523388734925230071674590724263072621016003376435011322037079267257302694962267896359952406526235204669357511951210407178012284561371601547791694600750840843834327050343880383439485523213619447058415079739667887000714336499013391487191717238217097363543674339499375525469460240825724407646493247284081443995035805249136509318859624916646977849858485493086407132131876876394876435618559191376293111864070651043701774215620639985315045788057641488556445625944617248138247355270442490193398139119361771881525301081051147998972873346574239241044801631539911762561791003424421152820123870485109345574610931808121107060166375717582835309302727231704498140195390680609816158051563916675079225372458513873614428673597051214802111432849159928259180763545661632822176010923209980564687810053781567002593880555377611698349314830692597487570840311499486931678733752997133870452580934993808628988802613952376591489244617129788930923310754095272777286964119938645696726537577042638985134417601701673133610508961505141780097061849702709012089310819363733849269094361880375135872967359317749991642995570404064975618459295644554500305988713323162989530861098146281144312644104436644125560686648677518149403165254015982597354900941107058019180817831563330221343115267136868098600355068658612580309894268699997718028640152955006200940667274629798194994706528924350228025067907488267302225025917949153469488629636442654000955766191218638857834823960266053108334653924604740386614122266944978482637787256819665982450761874588998988664795435520284933247301887407827622642667973356143465518734193613554855792741631549379903220269947036011716436501272406648836431005123601713812134134115619280444543456973789524121012451155246817372019752485830483189700322053924036659215014009845861967409314256420511867157050035416795983700962579367377141997670241776462209114656724952148296495804490190854783401539315317547170595959930764374770379785310516679086207085392924517557263918165710421574160074064775566520862294037816193069691048694524388012673907996135246225729709736486204961321635752153525925116188554482207971869977246104108139922757211399229681976894061198666197404597822959459346158670623880024981672759556039500160422840782450066673721507347352217510561419144980777780091811917228235337810564070612281290957909296810746915145405244166594338881344365316107582419651149847904190885814928898337426279135751546221094977505892301416785136660199377171786567466073564711220996826345136921726212045565235108564076144141583512228473355132425888241307413944750789000581290080188813336754387643374908763327386707715693669866824660573349010101169201390220202506500572316993145976774800030617369357690393316879354731490020494778328730684995760861837083861619517508637702935084821915986705520261610090071403693393025952007695300841908665519813591685727279727063988690378792412489619962030565586944397482841140735108071058476508550591270041820652553692835731289514046516244984971298582000003714572159441659697449004900392991069596099120650264972835326855221562322912163030215297438296551657393650157140235741487680866311768195057246893232550013169576730432476481952564110669034204909379840611677771718029400614482623449496623146467451225645944056324399247718807891366259557038263658065272752280677456314996405541561849161472205077762561256839805566867074255647500676665095634653807042626509016634563385170489831741740411244451943612163399967131088630669189425114914771536153146092123586063109588952017974578496144523477550016367860865323154422201509414919277920219846698634278797432806578997163223194238353696192724414381412968271963826196708240492304286610208459766185851919747217048251681149171370300524817292608482787107749811552181946268087367829868211712942693443199292722915517613038699321553299328800083758786821964596828051280663752501094370303655262273051551361709831751795312179010668187542113003565351218270141551689961917008768492723099060705286285156313797351972044107457225634687060751279482911993078262177415556448207686556752644850407911920463601452760377615836996006969953825395579661948498976717452756223235886579094572753689468373684567650012033219230369421023707197475987331639979233259246662233149646981261517812367841575199074104922542243006756681406060101901864188712137562611877233001775670723821991962328250987409447926817979626322945883443360987803679669120584998539704831056343186577008718885565832991338291797094257377707838706566092021048759865759898973990955363512384358914699869580910559374203709692115834470843809259665126796573869008187563654831275469556171976864171146644561859432346856260302700140653256723831745496613319691097285413472645577302818084014590551172155607968414167637435507828849587724235488966641552713661306433117810249888058710111896287422936025714795945265980536895631837973349921682723794950349800132062989428313957305222137771971348873733121895863314928766226653168985061878809337561393653041472996666642880686813943949085894458373410018806562052558642246798531229434378951154375202868711537350869004312239721688675429452257139504713461779508850179121883332032457143402941775694417220472847543673082416523894235739084222520810265896205946834702061416129284105381988931248306934656952607994089139925165413773865395024792308428914999758769395525412493979091350840735345208866514178540333804897727075558028149355578342993165242996965319506012761320798419353803572734391086161278505978870043458017724773197344401944089670302218863051712019966945727195819713354579655942955538497769694124637358489622491781710392329251456847684691407180176189730006267337402736314655664008873726395989870885874871840042563329476718286330841593651836767799069964299822731574510674582347264040177846569210131974567986125346592490003678752456349736316611475667065529073988000375762688600657172987551294271129118935034348808305562532416374718903511867631154062523658322458021799606773783119358255533630885129030798954504497923659917142329447575600166372569512803755874823772548521367505250388056487401433997019684269170583659350734365627074504617015348838069338955275476547943282076850820481806910329367278424370814834551126182316987012812860081215366851240554628227959909954292999512523618221486250994197092449040595403249116805754248725564475054306323166850114876770288761962583157508570343336010567459362245432174851548191601684467795521741601353054257133139181183939572300374195128133301675936200765543056754692916168332087686098592876628672672248889267361285095081811073731522009651062906916520071566627207304476631706685210996223987710586021643158171234651062563745480775794287492520503953409158450302979559413601968586026912684773034317996091668519582733696225613934770147810583532125860061292650354122708744115534259816948485980390544429858368056506704605549354131644603348393259176834378976569357544878412203235261273563537188151182875333352278957503320411605918811139383749542591932187624186135305269516580253719788246765911000423846863062797180288306227408432846230978626726212990620271124167670421771064624553727467851893282734354034056959666365081108852944297127246293844314219919326691001300143701204170875901709359629037058896325357958513408853686384427859881407220064042183747965682003326963861660465301052905694414333524516562246118535714357411548663894671528583129951002657257264915613850920399515863010359924248245173576002417448632971028114847080685827534602166144618861344251363418115594384988619981184203765668307080967841239070503864701721892078619027980512216888537940407681878298570743542275478360631924049621162242186547287585336841640034142982256494281215045189116367625501094957039581619783274653057627544296497267404322091335323804138350136287071005990498619307166102714324404913583926688830388855223081795982605704403020063510191869097384087261801112603562307545467635321616622062298432162356603711152552403769462161988863076315853784599837220513149378797470691635084484569607977671200361776388199359691148527305955631240588649328212744470881706910306243494952644045405356709604813596610301423471195470462138134369043226937324477298258760106344490428069366017263333634086901488080931190095191088947104348289442361275911974719106994788332920772339590074560282275495507718144783550001770076091303179102328253500558003510637318089593412930248171655523277327617493272988538190046161656320641646573582547375322812546425961224152096514812772385560096220511631502209605774153970896992040687793072040985747108503317404436088631262920081424620663113795042239158305534893001966295005557502015787591559039160259566449881854894051632377444377763096167172277671849146385008260811474835755295938538334847808291400251038465308961933694059371392640570506602278657648492658346028025903208361136826342219954709460671485869655297360265708674338286577742168688452085712655215319740322017434497274812676358502975256153089987322958508727966465767683358714833535789280241693380376051643360718052686785926416764992999504990243618705712559523680269266340682492583973663645131824622015821174135443855218186740480994554164671209809415433625330517905549828606526289360158419656355231684226063998186855955184026691510059667770018585407696091455221011320172905865425042215978337726829429666728315132683330379367101603943620527740168841057560224762479207397595492267436626537078038277394216805400034856759324688016722793151638591091003566085236664723053483011620502843797292344420345987288711408775663725720633686654463181114239090581454725233362744053533368213078165583985371949183502815530992757826048078266675909802200388976863328220427867280727827094030071151768560127727849715471456399190469129720108442272895513438793399359529140655562487325753050701336163970930398972230577813249354520107166612524706752357772633070307829958564209559865239515943280801273659900135324025425885402436589274573925515575402050005397509856542227889639056073587527210858866699431954939391205577728119871647127004930716696376770671861170856242445565381505091988493947432893271256698997618824314174479870199522879001855166247999847552429410144450173896758341348802468417285999186976339502094876775301823249076942451915465094167249111688173845149130608370109011772969021831123604005297810937730486289150583102937749602915773405765655592166568495674196299425796073060128003018915262798044842848207445557975484191184226178643953700127474861856601582315303920712307604896239362477463120933779289257346406162352960173547814677515380879241680132461358798846720469571309505323537829788993603926420098879089550858558295702511327618546762395496891269869462600348825950325361003075414252206375016707471227522518839633387637818194612884597637789723297293409183256740542049862556810299534078792567157320872392562758204566377021093143057701700803313594229423727734215693889093975777051108299437579796270012971651955465032431113695468086799512999392371534265619107036160996655867292957843126364729259090387865468384940968447047471344094972558163875946649892410476439442069275440773227362565447355990071732248059216359556359532360796327856944735542576331545268038735506865637390308155793430224179082573234627820020109109467971470246125886481660939334370301698275054476296658699619642322862480935110468252710436582437720880222515893748137167434899070674090960362984238663645367051625407144798644583665180822714029642520356977230779653820548125159781464937702190896930126156006464450412396698608180503403823279587625251820549725159748099905678575769544138019324561670446994452958173880273958464400220098368862668463358133584154920978038646961180492077403892013807027437318046128260196843095210723541864876064432734951522105743969260709732498079290161544631371045593359811446690698758023031670882514311943316362490818241617197901983621586504668716758526878482825368335519982734085293214221520231645668868434178868522992950844463550897426594435235152906155793403598296374355946017136143015105851604638312493226468147591555560861023544691231592223221665044541046505718562076492142973702498693626744905597039955408103184365907514514141764141083879337019078031547735388368694264810839265489286625130096530029259982071767534287789315097195795445432191467206900414342647563318200040322394363206160092462520562186273428881099483413751329484704888181469365915922367046517764517737341997986391933196216281715041318441529619328462357516356915828331964693472913299760372947551407715141570444466074522104210409170851625919934321128403361246177638675968822512969714654161533451179147117027166621216894616814972084929300038431659353499670616842498237238735254459631186026559913102041516051087088025187820134238539155273446927875729178538302133473473195149253908087864513347386142986185532600574013880760608394484109666536951619300052152042528170274627269090650963983672033939276418471114281951795188613462765978006785011991205467101573571379113417868694087148106048486634886257334980910600449706000847438519042746985942186111783682675699413208346558917675747303147553679747987756842298471435157396025543948536924439875708470564669196135589377097273454792385440525989737687777393779959394958062561077068275041908465073950094972151408058745597519875481469796794967991580612338759200484325160726359033802153481846854802856147345657489879667808402291173077365982846323180759242366140350048519550253639078294373326441523274874908709835715961634103793448227204984026268732105802029376200091231416401394545443001866818255983121155916581700825234942510393272642580606973651854850762254943182836248965494359355291755136557663876476053031149133968327553170870053092960090848708469979119139718930623787525181093731244928392704321710528664070835071154065427524391936781341146197473029353550650969996471007509799455446941940489989987541578526024986162754132178030579491019253454431246181241116890308310698338114285613692300129101037183590822067444587057615996012353560800886563099405224182719258792417421336834499812983641806726040434271391382763939779504991457782726132548431491187139624976656353770950009263699385945618885532243596669530046809718441751636447324733802187453539154955515127309502912842438306374530420966266929128400788026172303965398501561158993082128008069788253636726793568137837306068166378621808805839063276353446863074701753682517633023575251061601303741920028979816521591322507019509525180084712994843413412315826259983964654156331650234778733555050794324821616961864432093231897337899957716966607128604756708517823745666288610845635081450263495769580638243123407705073169001423591680972374436161229788679810027408081976228802309380247051411108211666433378858883632515485691588961870927208832821733646495442078411465904846692965684587560241402966469457375410575144860108775755617660722407875238532166996126332728569760333454786929955588738536815727936314329585171451016964094067680433908231550436184523576205180078715808990759242740548875649159153255180162666974048712726963758308211626369541101998776006877602099547670695617623671324527912339190472072377478220871967975071047025371254514989304374780402003704017745745500709017984708777650932522666080137602510438596060643029865812942319184556597714621304751065078845281799036943406122128959312777789323658003300090594772992451066879674314547019603670674420694892768199116426193730755174471687290934860580954954723630249288026436020184499150090778273547791501783744532446031543000672255766646945126815736735637273141067825552417668927949960629577819933162469126447654089036226076990969428264511791808864100603672575559338505064754650798269505899293350678954933524835020006603616174897451009614156876820923384732442292431586687797150659044374247913298186048440275170641173456488357288652900973068772489512048068830234372803527020617681101514317386151674732875481023657661116494761558382009549192970674336114399071042087588301516383417938563715307759254043084611330997978117193894970360776635489148137595491692553203834532175957820760614347911929523641869475206109214561488491020608054944506667896910164896402517353078996960013328366313330501830715589797036359261283689504305100605359074536823437466150431095605912263776608553260932148326619970451258866133442799191582355376881231922021460300662605096468294752807636936284867197780837521681362304626248918468998698493010178546402753644292322091603902028939206143401942901547029871732376218051305599431734952179097914475077028536418772679626703860057877171157077531488051065610626583842476142680324404734647676714908148887834503504322237056697982124707789212538341620476024406483070616096288758827050894812129628017404365580376943814483090134469370388399241739293208276797785488049315100617893139285015930930249715897508948908283654444428198349021919073684038401540671417911902578784920170287209875124359750892502582052227277936518946129350054224848267377719344384579073277305322639411181953665085657340226139449897656579572578882182492210606726912431342764598627156361299459600128077675388284717240446340251575085122740924744162719465934703189361568510022171720907449869382893442852032639918540040141007934867365737104923014098393894107654866141592706342087261976158465174449827415437227368402310010694823197654568545707771313432606581324213450487701360919991488484892036559741241452170628570196237226256379449865059090708469569597756662630902897588425695071410539287639493487985672520925941041930957585435411479873133508086154688651467866250148511112711791074546258743400571835381209071520685961849481387631587675959759469454393257015763827538941462184844946740711448898306391508423960500856987678170827914651886543233296609130596008218206723137077639327461816628208957851506716156113789942880410678989879103564170176494335091936190292756573926443590935282215238249370891604852004333510686771296775792524892873264394214670240876684502454158021744523554328144577494579327999375790262465029317655344762192143986324194597036481130046341273986069488564235683811180553607343476641197997417773344875850465882749947203600036184192005250498914925499296630940249449582886129435256547230629305633836381342192704957354744194798370098876851272943162770634783484246965541218824653630471431848773992507272091702724258613114279434165058646777870204207456694603501919658726560522851979115390998156439491924983030642067646852584016493897169993880121118957023628098524443134599487312689755970872684702052843930384270412694986651989112630919103465947352941299509940866904220761063666951235377804708327376538977800329738156797116771586174462484168018124362659140327925960619089406813724865372463730127752314581423378805109753051549520790452705355179345911196061320562819686348750190520988599633981786872010880446445818125104866930541377754723553867515350686018901484934248251871447380410335709012227952195134675360105129343173813594274227323430532611897052878518423447186243884318196986721033949094482765768132983662260433577393338654564589621420828751973500009256510247634537202740465043540483599225129654929831226720468846344766605582018815782850013913417620785881903368819249123344672109038293198898746668640214045127821385204565656118724813080478153092104343277693464888377886990866254085969653619199903850054816768193945883883001883236965853459649784586525668309306046445845844124908587437829954285268477888977325265428132836995783264254361737235686583647573379792579555532781609328756368313818514727985121796626091420378066898928011191289769089095391342502578203180195990950542734522425655120695726507003188772037022566906118005839117539943431934815276213067124029989109268822804272883108551967978221471166533012001150998254496788781228333710193412232788941062725146182990026353790196359105616384554727816753047558370720204075617235595676718571992129087232048301835865428703871278412885230190363248947243409707063666269261443982910522179354442514281516015934204852830327109902807639274648632084462361696956230735923715763656576571034037401255085251683428241422645602327221660610391607691465491176839229311661452538312941090924982474221734652467954694781569337193415163859119209134763093590048323181488476768114790895419638830193176121589821036309077600032643946059957470624236952686113140040098562167484782558979056507417669953220575466962926433906178060359807825331429826671166833584546515105036588619308148493097003338968748242584173280152788378578164197772011866302855161136681718896975020144648234424404272483407886729648433203864392333293042981178041177115321946789374543451048934442601322524655931045702255760810843752117739924894396045293987129219734742706156875570384863971307078046597321528830385061293737143829620404333082671266717673731418359103669583404476209663409631544217085254970070346335804571652441827553350116271480200879716597266513152430749069851563329329942766609381373993802766220319287826055522440761738933316395391331660662121814286749335629590253381565004721566507338734880153204540513483658929177433911585199455276348465175508202222128109567033148940504196930274606815079381062404343263613568317397314143052006427412667559682505936254509029175987098665857051850620433668973444858083762049801627840827861106054577064559680925315144731968997391307182532389369349839864592605495118739123511184545189854616645244717436328728303326183924921865398258470306399883938353947557555821535079729519530229147867820790436898762898485506784836403738209132667851612973020438908868145669193193415133154175296618612681781679266362501522507338688729055840969368527214236343375901859321756147064560701507339396175448757414816909933528092038204285708267974134019535681766231752871089958638484425951532712466138612768932915240756979596801857688286993700713112421111728131341136167150878332612805555538725592027025871955728566501351308334029006616728368659961934708726911096985694936132690371834414406056691502815315836201057931100441716238491860962648691404628767647376332622225321828793943837382442438966365360119429761355443519237214146311440097250924388741582196302230406373705323139370016446292887027337893614183079056504991719141113038533343572624150785993104452858585237161089606914400115027270557852540475060592482274880618302109076439182292582200975874023620212970491035870344049897484204333585828215876404932649520834242089178324017871350252369500336038177888377212589909404403048151364824108601688357403067593693087947238978407859861911902652775226501057885802979199711663826124997113271277830470062891458801865787745668973674651981114313701331443894647277074252574413276440218734618729915926997422075691934997597653693288205516618702287604847898992997698647046662817777995232733074198831049476970622756220093790192633900227310431490895486129030563735486265096011342391498574119462587120135181705828922583426649132973157485828197939669668522173873744915723361313693908458998201912684163331459497219909501223434693467664397299983566339488354585121993849440425112907712169229643355760838416495741851106979982710838647132335014807881749479178329352281421613242049846486583389527190838927741492515662104090867130119114393186378596996187649097237515444169113047165952004372179089303279013136232073163428471212083969870577570060043764464099488327810217577244241430214336400237524044614384035292628700017102655999080304877144931356189054511473998768300582260871091807346803729806815689676520578096365432324321384080886066798101955939373383493049104206380619754361823949944858457821891269995212551827366998276180043201649752710114350301176552501346179350801131587586643182448100130154812516852423577037514875993328200675498404880739337742405683944897879648099235430780092000274196306710551411305758089288316261080771017725381747147136235639748495456291574009478315576487121269310010032713442030167141281947262983172357666010654939576792939186133923509455423925601818115208241607282606604947019709237224853256715795108070552877130689085173522379453523830862662762790353446953052054615895230574648634377796802183596004736270623143364209579075719723335683975360204417369653929266627270014448381467473127509664923074157283268966543751016594007643162525136389174937841086256976514030202043397739460398230927269863868309546419506982959363421927542087970140535916275280340016145603242487400037713336694231743614464089946167102167914677551485330679793531400126518763883280503698018583626752003507864347653234233603120168879681849569145998751516225866392929670460659914293601163075895755786474977185926379627071567277957347990087532827536840444866164431213473746632290293252069067547894263252305049105089463845068512605821731544081546297613969912988743392654958457172110016413263092481177138513999140704176262137835840265096623989148453033351056365353797689203127085695300753045090210449621354646461594987954707819611821637775584630608850878603439600070481050995014784697795919152378153477007559507333984120781125944022610999378744474016216339395187481778826450416875248486074182560163205913231857620534300707109541216234305591270583452715035894851682821830407811141208428431272992631144838566721730819601585867189330663792047464903760622323685794334230807422538298254683845914223852266351540371235914513609792564484927559755714159982251060784841392284317685620381050416611806874233374040231880751931200708300622740405720953544307046756497800297936914142365222937088946060688797308809114318764286435362008037438663868145955043573437117123650733384121327724873999137150408268797869900252636438830675551113100838497949189212471073416583347209882248529729957136545009689016538277084518136742937743753095114331459749313347774162179663207846106450606165064814041719903505835145388051522901067196822743805597296850821980061388257629395923539751825498877680104041538164352272225511369344791230580554699095241140092263380067286450422829282616754643550590574666663725842008020859433825789671811426201625052784693489823730362104862865099135793099369466773180170176298804437445891455941432667496789395729871760403938293237231305004747250493828713030036701715593124377586262392515836641037526440701460568831884814175649284131197740774482422394633185956968736041395577334049547634158023203908961285176250440459022735090484168267484246736897162165085592685578805971953273151613797792954525636107723865306970145665981060751989736039250484221056402022040225409762469082710364348186364725646549395719851096370062198461826619211295772740536829322851108769700179153082710167357798953374369370464730972748900936812502015070641892298364315281543783518828115354098762089999880454561105288849513449887237164236301633873883845654671391040320022049384991838354780956283793111577038797327329776346958165497272030468264040325927693510915964064561414046553817153167564124512480357562534950319455690257837339842898286896384789795382711944333449060074329226230391428849594787487685818434485005976452623585558359830485895623890215378845537566244587961808218867798342075312589383004677320532294606407991960217617849271025093112463679203730445743798003026991947628223134733734398019172981069609951549104172213898223200590237883744376913327889024331970254801488634718044350886482201084037934254215399745707284498050457872331812971965361741619866709597044021751846396308634514900822114848776736231131804780658835951258736990547571022475260316524303843200411379038337840868486243448655670784985021668527485159618985695859955976342324222630826254929675032518535801161981299334730155240658528083188402845231226592517391410245372498951511266022917251569957368074443275221124584609864060594502704770767677452319145284473908344567616123197807678156480317776650520433095835470546485542652915000260317117513076895690250636597594835877960846972665408624521990629334129203235284776878828736636066494351856169881309536067861411502280538989185830800005916927866371647083987796961878456036773087860235310654565697483086932513031129474399036207147956835326783694389675016842332834452724813197910242548688538980573699434906926582387213467790739149055197004000374186810569243381768471330234788975137475696174455943933646749571127337885968997190755798238754091343958718752671558117444666774116505984536836678871314092783754734900010587577087096838247862339305396209523192443785755924835272330875240251529217712930347741053987219812449492515958578023572733860528858663191193551676101779250571539483902821284004163200190126592103791753422543828977222429908842585929806236051492499978876427275764884993651051332025165955641584528031182439415245868269345715768614632240114589719003530055089376399266263676734643706455996313807173985645667551183869655325873571928208599681113386875135958193162906955315957310606012672710929752458619402207490990626423051508435143067877051984697834999272956531098671963394979618638849307388009558661078645905536606297641681305330486984836973966773294774740608654055318295075415135710351865388193575278951325940433710665579502298682950694048754728711154288869903211573411988163408687725141380596305664359952553350110624167857412943773127146185767124299781246506434864081402805411974682528559738654219645811868237585913945054420383237565716847143240953638475899417451499740706278154536437942743354068659060775663457888006367876500243842943578762364232617757787936937114497529974140050470062834954707709618807111160745323470909871264281443174353714464587876488979344662197746299775688855885792562812220094203161952313772694459205054749322895717227828564745688161390820391403189409516184428339770924870040392142455802774214738751907758265939304709619377130765490934463975054777176927217849993612761551384537066244077204651697218595439461086704447486190399414681961469462373486048905507344974213911709636646675003228384596785650737361277197378323334303343542080555600825713433599269744155171044552135308504490974846032171551399961399890878961728580675246354256547105588166135208799886376353346343156177756707680599975377185304455667814783124692517201358145841070078122813757352052779072440892564316639761645045282501365518703962577766154098629941090493488696332944784862244606995672078370421767166362594262193002656562446412682159131513904542455685865815869400350851127463802087079769134676741104238341076336559706593320046584674693310761118127423212808378704888154800215152032662718889447065654242220014127466133484262815716400073884756180985144454542348086630743041136694016474889960806752917013125968803857328985689009974132679104918851118706177692904512647385659434657753608569695771711921058272069870656973240878119559277117667181572800466479273967278620467297825297978818070150213579735893410391336224248064670549403137253399899887846917689627943905559886831925244757859227751506686291141248796197313781866494820834800559419648756543975277479163631468889264316911483418815954776343542991998040829060191600219099841990021973013000813998408881489901836934066228469641720166561710151028228828115048579392882090876786044359539037040585341410527960109014018999643529563821160660694992474209936210406441899553941277095430676768081285753721368007176964271324146750069183341169658350529727479790755043781614690344234255550594100887329981410246964827061871044664471932148930359348481878312044194800359628948804533352494107274881658957908575781151507586340590541126048179398894363794282895660463986892737356284473273381675272747992476615169153738515941317997467349228698144953858585266246238121681431350195318871745713419834226637303693541623188589367014350822524100537760500961608702378898172702979402758695081394681147575547228337823264408745459993825206772814804887332814640041021341075241513181471238524627704692415985558885150144854298368674010874166208634172695657997296766869112846524482072578998296082471300674990345182287573635625802260019855689688223268499494318164483651333780087556160746703906948291368553527076939709064348978086396461900824896377225680427281349173635855930980920519003910560358705368685769270918437675432235118581081392258222981289253534060663715413907618694560397064727372499037117713873758912693696367885822754604931916484725357527850952451924408447497784346585334747391020097844648113658201306206811259190435732257677028882328356871526947067095628801206996777801547835810021966627688976520585483113161229404033487378120216364740281571373102088316785350110779144468266311307332614441178718758132924506881709203606318473823077388726738334286202773534493295072844700995881616273451195444071117224621223098768167867280469010496011499551115967498458800332627642038830868620051005307521309188710106403649746859098118799499187625745484320901170778631030839617523653402680207237289795829895870941763506476245833028194869857414095313175247439192829341814479232706229679728793776149557223687807568223482916959105057301576573802213025492486294305252387761199559687940937467922310687730014519904962034949357270339789389037496442798541820334201726662078608688845788709714462571751850548132989724410499144706271844668299129691235717498620858633094703594732985900299697062410823914580674624338975127290046778664985359851164458682057790010592521260187246439924120909736796778994644940093870163290523128213116991046372775705043807007113582174489767114713730679335698677008747449846945517052966251374085613286023510914543973516658754818393193022731946046343896485895258816939441322364613816781452603083314664871536580981595466209557697850523330285028020411582292146477219970472903752461059867631714113617428938555764582780693451815777600612382281287059372116043806333214185532776708870755956651247523933599738616163606383842130716921956459923004577114416862731503179659636455716928471882834157034948958180651503746554583583201022831405604200585187340997766898883579780470118127929893989236377301532905634684955055323021334895718411994017328960940943718467947766459935157191370156284865096306563969338239756304283725973688861566140435500706047287615417223368836127437226073377839697939730469567558829518786307337749152768088964592136556868770977113912997584280985198544576634040486606681313708958457268896199468343862762758346558069891754417186159033983071729758006107171993978091497793400407069722375189397372277940875577000022944051443061963748553829380428078624188598126643051343479196155582109928106639567716570958769635748909051106979697066903416860684352908949878273436539751427302453229283374737135926399691900934679112223048865484433758350848920858144015518249280580448933604125985592621647261695300998274860040959605575555241825164604916991994657237266715421718916710497127419614135734428491428220461829143325064019164482566186295419995314203695238281383903953235835564341401761970631882252257177548418715806325733914029429610384325617200765550417507629724171564456369696942243614380953479386509545235242388495887850767916213137502836407783862406032732075811900212017871792519396820617996778737267257013171944271916117173751181335679065885550272174583017398218539403319392725604911252385803079781536121068573255203799896794881087710102262899171246534496119720404701154972759091696526928469389520888631286295306193698716895189783516623261490169728463877677888991850377796736012307477878772314656310634918057155116886149583373669879487822891936339944073531030574289143170043247728964271778409198394200581376874145892169610459851420594157127376831907761761564441242921969616685124766649806691334729201533032617379240851420133835337280445557838315423186438702875097194366942471375148258686989866898886891689978345956216118122156942294550067671218741477452605202785934843879483325994458378759795609867038327825236864947989905865017739365480433184395357908311361485964397317358528775006600816793547432680943449039592820167703606237077331904693950300634581783366563294324656224694614824656321436214942762930587781154635336983015480098160642848155629329635560235936582313687805470888161660571599416422510586528468210328684951497462552991704222804254183903656321913683478957526770118249245476930661426213451941183474012978988639916019673123720462263029695584279779550196697352445968546712652853941634939902885505131284119102943084653799419403522142985602076941936831479420350309221068583464853944354810519729009766031119158959054482840917264840085360547217409309191525174209198473025160292579320171965376638549354458262587477627104793754326401325284004571305092598205717657072400735318466757041994663836380920980082153633797273985682489157619969043517231988074507284979862892903160211690132412205393289249381783217435353166506268965923481327111654399062079164967010140159529573452179066424658832417282857201558270700383008420915188752061332655157235991008128329345183060303770632845620775316473434900718063091209208545604387263046995894374718730586616152562782994866115207159145463432291920119017152629862848968840992536953397715926817491659848275659944733525239876618742106043881899968742955010219746856452617499825894750847720410059470224122473265095975145241002690837686122369873281319455698708708451109671326255461937958362474074482145951777413859310656119523380986446793458332848650855665966856425103857925033020229999170278922449171962913227646687770688119632188020553337192400815710751268354336743526532236800058809299135419559540441316896412140889186694647222524743240897527080963799384202964702345449794584402421072549737231364562248700261593972000087830045516907735223112162771189945249478819964619095852693180384716053838555034616929282595956210925099275838933628125706183731966175571036068418941311114767246038461788670815367703007288967679146816130153271154573828760790697549897165401953931401133872360282937921993609297658015754109935690187943734013231087977524323436229059989747725941337861765817162015565978186546438892065096906360799855162277802541090695238793548484521982721249022175177038496015806158461245617634076625381057823540848276771604948929053966455422502220345875760656550264644390606712554274569807753697412746660178811336245044700847537499368325459489570318804150427015715700600248957246377027630695164843981465026050769715587199871348709682619316611551696880132631854812726017020377537392045208705326238713765010143618036002310828618591176280546360201054906476529734698522852821405630292867133078567216070943403149626238576398218032670345204226954089307004963243982972974261132288583237373087040928522505859237415921669192438856330505868773338123799236245236148184216054483546648910131165724104278916524313273381358538727327225212618328112516791927403544301303641064361394579985481752476471653415238037062140774606970127774867382996301892632532210608753882413554108208672978362458954610943365789608812713002923407454660888160206907748436243765265131454546782713157340606160737963748272813373470470656059040103359345057017041190119583033658853491889435010780414016562791927309481234450103458396560075618592728028478376321830447205781593205573675326560103552745095004962597167341551571762277755401092309733837475283530584474826504366462014399605226188108142281143475129038240484896544166612159085115660101006657589509124079228851895161837383242169749684654722810925964846435174663666003659784220930918416328450242368866715142678091688008958699250421249256773585899498115275750372109053758718319925621483670374623997777747572654835948462046125694485466425258002840873453546343363320758670215540766810256270391160723612183682635231947808560264343063024588051054153139696595809828527325988087517829531341234436383005918872912665797160962813973033587458841882567874494883665086483450980920600902950689928251598072761779229182442184062484651138264891473338919755139908912869514368959939020294428170887449486819741248757663316738275237449985541776896273328829516307110324303726580159544483270169635866536757684412737622668578107500169624981482676282278145854609269299363280509447388734721654790029502381757916991588123959807463691186075307600094688547844977828499557565999432358885918238259892814120283264893621705571898893131889318478743430559954712678243747249896136264278655321227382676083080932990023594199529081995334689431600106196004544195278332870885313976258599723848417937701409016463265342659668843110144768849041530955200402425512794536450939063020929911638730525561135085844024513406873426259629092555245129155577596176158807054545212343529211638615176893713111350350911560784121756137747133527566206429304333200965703037726064966734338274078783978263559805868862743608060064031340606158324970377718872288951440771292128437268083719047920700128294033755365693554006587685291504883520598617293760122112821738898666072584652489714304264059758594317075606515341464686986527247492159932104572425479696525473361799362127944864531243429993615447949538531920452587564918509600734261104024886834717051890777207645774181524344389772411898547277882933541329500388398304163264246617648947318399238890056153717847781211087306133777411220611231721993493304936606933418239259397779191684987331450916251732941712755514071900814651591344928637662260568520728277955128654978804834979170863842617192336486040280085868668786646632769000678812362517192822066248815721614981272340751983083876216654341410138608342603407794841408567375047892797624144755950043345484458953915255650622874183164411296737814398250985452211363339309745623416117246816560458827396529675607767501216678090081299843943975651770543185940951894633548268249443141769598078620764999389820216644929071361187183494067968292916674984306688645047513474404471519838896255339185568837938075857377456654312953586475890878767262551963659515294981236785655402504779348787591096331185354887489331852555704673313359829592348124212130323352195397877975373718963977887710035323359184138161468837569308326760385709571896526432449387864291608080320847739967416905975064211037096618391491833143294794960957142482178485266833441824050122646853462080683497599387698227562755417600989421068519148815425735937161208672687159571456802408398453775001248483370518766134251115249373976514461905535561467805414250512947989780665488670118089170513916539210680592956742886609983949858146954180495491208607548269277347902893546524217634571876464864854250994240164607088265703713421143417338616155781818582478501603934926622419982045400530769484154091302715342240230556607164542057176376881919885526371863389668528567883136723107930425143038983901151729803078685701581769971025016623832322000436833507530005473291452006942337384752581080449083256591015336930461113412888837140266960926452313120634687404473236209746657827632316745652304075498411121267832090410460793872062633783175558955517788390670942832787313168660332795754427142413275077095598250893554002312837414476063496382888776945419797090123612324622684666536597885775621181331657894896944771034815172519920552771112485138910342419386618953345123876600684433622551670212746501984608277200117126989706888563017326559282461131574465628536264901691670403362794908980980173104009071134526184907625681599479591908446573066558764521262441368724294635454887836548482561034298790920302462057683727571664779417840184778329075744242460060141296021096993263045561945962245956080742199771985633890056473963732857598295980084573587356554072537881410329463209394976915652705389415310216722194596351537794912844339529144948564486408718487015929345574593437240540762071941777831281919309606147675426460453902538173598944995348798268776599518837942075376731598535078862843520043017508928594936882967698531635338055498301077122365742670409095369894490390910552781285069571710314262374924069766738296877166315029057198809508511179900399306694283389297356006306871205577080374744392365911321607000964867747585236882853494345791899229487035685081322110967017023644180988640628177974200174489595081380623264700747699936446869199346850944609135950700012429422210034849393922920813691496397805526096451041806220974154164238530692982545279150534819382436459875328075238255140719238534001814250073354696067171410228482156733820771711895582270379087719329863563255984848889200226520853651183950288300301070197962473641715342250754821430570245923423679603564335670160111560114104084027495654399146646541461781858571398474491383682581794952585206630649322674848351720461188936517015099403928286481864124199034910161847839205496079600764120495591040886813450376598313309052905832311706310242158742186845229725030841079134681336943314128779007328598462857089565649085724548782634081987933837094565767557197260061377991571023141336555583818983255109868444416946994528172661546454707239984931511346949426624149742509348926196728733623922678761190989088827117135577187163540797290686189454335780566841553754240036373764958243764218799293878984049824348620383060643546422267413995210639344168134296112633204668701734093520126925015918630940408644599061663897629178753138138721783413471026611723743737935855735163541613483489470995872953733328504391015569125147370449813885292857898511383356909002617690723416562701261799113480746565158120826700382550130459554976412350384959147020816753791154514787534121900956911887471435669663181228360148190781183165493487539586525944487159572444942546435188467900938758544553217001923415323662375096922151539470769093260232605453776679907521152368531172322277097983173237559476232114650878607552028321394601886617943534046796608161807317135800249029564563160059009013325897068476587522482752224471114260158230604299852152503013854076464757223181275154312657371437305443804382226409774482590664529653752107818688256308669829112569989794406780517253549224700496091442273142960293398484693255436537912750328845299173429103925714046970826974818976812250177562746744197399528076647255076091351099005146615594840255859606012168171422406716293720759752349997942940353620046680976787849897195266785347377113250348528101767897441489487537510047758322235379519780605693444375516700592008822392206752493336297795027753281843971281578137387177320024016295051230676866980804063173100112939794787157268874669271798569746820284506967611545209082445502869740540492698753881131862813736629739080265766362880201054108900574679139323507932052416457313818391837826027113805693570327296901059641256587540221243829741159497357818353849937800068527273606194526489883947693361525412967467561005849276215026460998809670064111311383392319726654215115855641628437169062502355081165376127767905330231482552957087032888912934017276675495017206017537634228730910841791194893411638944985081052949307003475834079431544837077325371251380771743932946255830260079328774517273210397834680952332426499507760148791335744341875135549312635567877451172018395716259010245742946661628326926179298126269681956487913573023194866632832064017237277114788602488810362471805126182998993973769126244744194049630414332474653887663738801995077001841538246495784568025700952149683952159046050924199476970460332105046223006360307779963700867975972194739729758054092623612128023135627680791184787866949218369809287813614032748356359514482250953138494269126369822009178947070350592431089767286745175630317227245059187069651766480582327228363304112390598164071683003731928029905545525531981163943810270369467461582051798602427078609142772623256161518886165292903847080066024554624995073938556979056814007174534064529299453419970482502068151966024093326782286881603910776193589423484558124912490197289876889474346522610264633567493927179557374457834050076634592004731211656596789001539670508082477424813399254682677129476507923991016340841790340607979512929078418002294023664196632421362809704013493225801764010741131721659113455197704842434099467132552016258073977655387298395476301197863989130665990386354678621111299186263073143122011846136860154238585683152593911352659610434252222273118512048120160397432199924153547627128460438169334033996784341440542687055070602330207358101947910226487865036113619634633319846950867937861004785585013932136104876478676825736481956702718286135695658361361275741641209648192617832564329942348008264857973188206664888257147103544068219724236435921863879890674363384628312243170434936828184792983121251068215810391282821991707193421649704945838416231621908656283919628994567501744367605799751601608604989717248878668828386733011248271188552581344761902001690234148469180646610995452928159564377959631927063565040791959508075655013681300071863408585710849906930686951367452666072244472683945835690166147315698646229366120260803115754419415489332850023708096704471863623652154003306406769345035872613094380763846365277883654573578559850574955424575011940345639083830267965894185320964092261779035875684302553449910345355891254776499463319998393203205186022497239979234091754688842687224312873666586023064457635305462955523636378771015789685228786388768555283825951420377359353419045273877826383235799036452754534971612179083591058527681468816744503362301613397918741932320473331999521368682862820499864727778066591396184614753136250789956319460680629810965051777825827238576792582647611654635088806915662273426664376006077421077425614219105811574409171648813487025146598515764985956964826849236156613430913413645235454270694189940429810689611370625759406938547430486074679699790865627958628832825547116008591218238848571295291998105580383207276579661930575276285116139348938671449013104414765907224211676676701706433836406955427300026993387745143810607059070092722052258130723973406419492572669549798659422026053172364673172929203098493756316251127361156752403201803631275929069145272867830932802334039178846614051610165590174660261296866237724296768578624016500459508221762314122357107926693168583039128167188604281523286510699988066794301775602035630293360296708546030767930424590912451578581247424615790107998842087663277414950966658014850523243234194528993510850472227072099378703079801096700592970959743671345886483832181436418737780808284260142105210664265788066745369404964709452001017268493532407418644603638795906105808890924492980356173218701367380327240979507746310549029565587684715249695438291074185830447116045193164426377574878377650128803913744339671398884017896562309750084194286534925619684932654823697927171524128857486170437630664139667401653522280080865934481274317102192061267139997097714308477991739631421090592319234897141505249104373832798339734569029551917933949030147218995023797707886438374773807634769756589463993923831897036272932156542827083734174426672191933320343349328672561227799963125247186801253485323444872283118533965351237895903665525388194788149374173029550635152625744260169586651752772335260099412223083883869258641787939841197334282043637879107830904267485911473242379523333989269351270304806806860570558920173681725737626978995699343135951505096188293730890938863598083715797674765082856845323229904557787785163822325106168473448987923533345231335802437096261888902207924325576905596203343840376760907249554014767960834825127863798097147064723489383460448089409403582531508175608069256947628918249038565274857779865702206938889480019798026963773091003573281071437839026180315800573893944531878848560652893316729541940242826229491451800164369784332317680162168035677254547012545490193337267600126341651268194215745555875131262531811198700180363642017063442469014912418138837036158865121499453742667693328947153151601406129541507815449161371485431857010604345127535610726165214119117572023591120638802737473504386928115017050262948280095289414724168908124724683663718322655000430905080734452282433005286929959279116422446649926012423696857598608869067805388643527978504269081894143699034207785404868456971624287588267710995345202438241283482713879834556111761487343788773071674760300711749881859862156673945830659998410603698177977348930916621942787221948767193933758441393838780520169195958170018007049658699528565377625288175875869171421715059254645300314618494256088279419016626735463925038336069631490616065848027849752374492169402714196160976003278400999859387219420826685970289536062837673909583112323585640952691550654609999625666014983253798092217085792439638024112255557001661437340164331758171438800296075300627775160350304321479632580678007939604893661765790167723349457871978973487961171019137927957337884004200190437246029495827784862916141352711548665739593723479166204557222071105037719513620857962488382889885304909100194536396819637604341837317657451100548869975712110480582502821060004051305981343187488754474083549926355271950740948285347635343970463853634651351629211071941294518580278968430974965330568629292320928568327549009138215051074458180031583059495401006323180822280520508387758063099042978858418135601662852732129562568254369858759346830000009638762332044205875344984498053422415908631343821334070183709732982263641045980706265189431583921742230673629463304529576780435123487571492360038895902337986611860303108198397140111759269076496231974484276304261931257526273382362320293274207384530366142804295407325171926037936098367309933439441692888878417746832282231624467658123561598307565810657595508463103836629542835285597469367075008799973450651220452858763892047853677078251417526567899187790213439802671199129812539399715101856704695886338641651828642724027021932687938577379729043663855777378612118970096164800941447114297369471796430825426792554762793307562810760453063239278461236097427598645856528814952157468993876760228076592831814195616696934829821824206202636582912931904224221427733933658009345704720229658541580299085816724641284445418168932311251495440969606274269044220072093334803517548306324917785104812169881860475165267865076651356692305703108760393533160120714368487269669564593202737826931733950836644216903517869168194257872944239847309053354397680884381769288284576256452729441658646189171708279759842112224019012684109002449360436824364852023566195553038207338102877802264418309844951710250297052105522427208361345087218448393784846476700423331212766076588774302330096464495387538537387870210708751301852840720660284267436954841187225922946393336679600312253633865943235803003537647477990621541835445984154051245207141448990118331974079328654566060542285394673580798021437166669429821218073961017059436490240488815480088926784373457730508391945962536487518067302767154856180739416644261705329917692543405748178328531624517351298379549947425987566909034802582648322529635857577793312838794304701369845505624768276386352937729418772246955048455604072136059749651747461900475377033578976349054232473996759368652212456743003187193608357770805392469784583448949129946171471933666512855970528764085234756247811017851811892627886114644838559912595845503978252273311061153179346278737909708033913286501881216976386724046747132975657755106740634058356865391435378767095239739111701534535967446376003665381774669169813898346328058194005111161965587599325714137306167463134998375296384474335591327533128397352752390419681806389956136658191054603020054065240468029936629238875710017594643857271330848438683863088547602151877160119877867539445310991102560499144772278570483005607084257841208708396953555492857691346061697277684904345010828015677874303943161454488284087619118564214594652385475919405814534677490086960793521143442024377231718992840236617661126666114008124876504389388181668504365451491137737035149915521374799491462128288327322387991231782121954555343495377373097708098922770186262153088437528509250225262129773046599874299358329676935634460231655448291172526987133723400683274619871642298263935923158149584546776621686190068003485447551028268032815564822370829169365453587908326846689137201364733877600816197515977793194156624536948226098201810891976246194870769238586276373364584732052704782402061143279899499030084186354186947233648185734913232151531241905076385876996628562848530712342829495480352025949743095255318119546914458971186067392227932271701963531232872426954077408673918831363177418907094171277090444731556069275581946281107862643685925208490315863164213080771745262764076833356917622786176778611401617972897140752252749250229643474295228326583080632756326787650922683732505826180278347224817359967663677064259343812794271081687162682932280919685887192468192126192569722829158732304099159655451635999483300948488035481979886376903359352194685058609214974197978891681440346225352709405893729632466787357201576381493377250476608422206670275740763313332897138269420200503849648714496752797724769373009271597366050792527305483230389337020252772110502875129860821210988584163090714351595850485280023731271192257009916808755803929377478746184555460188113277211774679092036168252391236717897162880437595092932255298378983059098969039831440851381702412687467624108157842831327467949242959594959702121500785592728117105061405217628883000802353182171488596770494393151558625732363681807711618056948957844371152405936971755784959524827378253179822627313738202416068418903892906449466110316149110834605565648114892409899162259183014457334002083350374486972404796541849179244628835491109249817161184206924983148014382676379663791575799189290344260039277523305124983877556712796626142967580651048540488556318422860663143651857678778490997125657300474227681955721094054050563383958883473027743124250958031405235158577261325367662593922877966623419926307896316527613650213779151636057879635992643802563965411452689356754889416571185241151634662903943356922712700267028884604062188534879261312964592087491523504915865526723675496082444066358335582025791605960613988446105929615711756736239271725508412010013207544001334843712731286937227974761105440958418886276726970367385552656373245114416063940927772500288698918974816376569412869586028796228176844326830875885224311555505074514940941470871485106641355244183980189268855728723495363959999499850697398756025857441252663396831212280449176759286021657065554661139838334602757190894697484603516928869083464274956629503669861968599068480369261894495520138792482455568930537611282541538164470383294607916228808173446720533043237032000677910214726659520815775864076834967963026470666859334080530577227804784804160483574935814103299704037633639577505334173184868667497051149849341523151665823118284137667463549069698094053625011003414893722559112017542818412202574575655083826537175569863305234487802415407526816157469075218082632897284174595968745750727807151910903853254043566444033041414146831442974575903291474156704193653526291018457830279425177876800581587834178890741671221520678156046724011953398873280131939042937451025046463062644367675277693643303770984427296654239844378059852569534515495785134395464511617283101225266194356665040506127832442345113504656512639398112658707340871448151099893697870256738829871133556884742392953131494832641452805949763416490970997908242481864952826362134366016467270212229468638218446375247242810923423456940250869213459094941846698864618750401643174971046924048999090016636695601038165392934077615669851671757042086648568844272750672220880774528836889511931046064943539642675596247684200747762141876653085280314966958069921577600108058161166098841360606637249203022633063403824798854040079868026775842410111202297792352560022296156339131151102378769371375266958190933601757162208697472373598813048998575771525137622477066477188439074944035503483432114110000070514535678454603510237495447767392827381208475301796017934683915706791284848267710656969179336214815578868223916078523084886966984048898230298057805474222119787424936786419675936464287452637448882570774668160890631415259107604968298590650555432949438764429702934335781031322811237622245470139913016176751267337622037256327032008298294425354187041024238080329644880438149184797901102367332867188253967825755614281498075397250652484854578346131998332116776271845957860679503456137537539062676031541368380940255877330025362886466979762479608801646721308650450624648833831079668480510966253907428492606131275693051389610756608093981721985885172726820668111201983395814371324240200915233082096717737826123854275555523192039378004557350520242017735677938028319494137744341428240717377692427518706339626796621544694917861196095666622794490825780609363191054094194425566468965736788304701138934858510992182447735037855433755733711892825275586197068924138291814631558696291651553063751252180880792681285726624418029844890105428402882943336566631927498513913131722891884117887636908460837363581286361475153292365037938781588437056280290275041533174309273549285988207614460513636326293942030651523343472168921376806861962906884848271734417662275727335986937818178018926231903876397858805755061832106054656358406404522682248757471683419541793945793926696370602826782184454328613147255360737532541603299699322921802539848824133707876385631919774120237903286518981360929780817213155319463936723667259246446270883701863552663434790279621203535070463596633828370207452093664595673267895930277879054899818100544476465644075558989484492400685090782681224602198010219815059945077925701092693153963519973215626522540353554601967560327967695185670018025610717232723112074789019925626135779804347642705015259525209466732810740402336328304647805200618199801199000297964084598926269802078228009635298287867263783684874912243071605559210036426274698295012670221703078898748243349594985215872884016724169108048130787953494398262989388978433274833019821967953167753913963266834391034453187255174558677054210632339308995125481502738185114686232767032957783511074436731650553480470437717066746431823555274534862777610551999664847480628236953349952854746485836823419690752949570527140882532398080205641637987884807560042279178652276471486624074657304895905118576886660719642786331519442630757512941549912423121136179913338746895035290121352601323229236922289954894904113332914665854574530275516233970394916956121338898344205524042853284702734652079890624369278820090578919587764373752188310065942394852738356101765958327910456749418556586578931060494210251118547043586438778949005633048699207329515554461637506873769714995711982585195860231185281414208759678607470414097972560921358341336261180973453022753537642869394230715354031994993148587514802923872224097596322518578281685771090870451930360387214347953198474232252679768223141777803707679807694245813996075413954103520203564875882129453507705884881155811443166647281988192386636617175643622051347595834203266254000386648391546079203909351691317674646828710632329951720859183535201897418244907280340132192205863705006501046926110813526861597895708863229705750252374104067591690050202516505794508775786343759944142015469465472074575949875349118798586401407050821560987269447076206884660951690058897208058320864146832789786099158493078991616232702788130975884986501914928707172864497172284907377913459909996606095341425558346399200025729224470311030116358931872713101567297947252059696841242259237408191293296724151733994985174697263829470600846451974906776162002149498202894823362238792479759528227805623943457657063650590890744227197953361400606065360070235465990923588846496387702851093099823575881802973534352221911841026857527138598348955181677343356106000020448215680302666431466563741020306530457532756973232079128351207537531670904101827456812389216026458225130548180424151095280949209395309406669102782997549367951329206552159876992016601787169403515864748368553516438545581214427713132071818702400280436477514609107283979105060689344742873867094944240841567863089437877051167409023011908729919034486535360816940302576501951978248604119493451516440665871294908988454905266398555636254408221199366708905466540034610944324249337803922731086324375376307482915863616752550089886104386012828726167905219765184384866630843033071635607289769005149552390207130978111644864437796949034202856736097009776281644730769213995816261066517986423293674103727707156501652063212413628543435529259361375584799458333284807949957349707106679080328867117943747626180227071638099352141502335424745272910281407627041152639522901412027197413535926111396176269031792555579526824271371647416636776791070630843390507045129181256157858912700405480150251301416849862321302271100049799711189700943952922765763088300537970312661681087549414880487226906707564462238914840230769490282904599759043237931698851033261111684568898242985853422647109739973318261122064897371189357398615633768390365594300639474568551554881012834591924886733595619650731402672006051863551089469340773342314784431979281126249600475181081165429312301209415377653084119942580331405241638807839684396035391810253640155745634970561890233365603057613412013976722991430721004458490262771551568751910795148103614763911207083399672153984452083565971418731978078182667317184118592444915009974423929305510094886762646706387842570300766943640203336412323195943558853054721337944358018988783723336370574914620398439962510988196737183134560911236091996633032819700249995638467325217549455717554660595414834374854564029749446884913774894189844633651707247326222833699657829726181989868293943472361730613265225005188707708463416365198862217858827840672923576237716987273163490972839761789119829499571892967068095389100414847444843083132247736749981540082834448173382755397761990041059272069424523019739708608795167197630475050554309184344410552908575147498122486104755725684879223493902324549940696120413179790887661655238879938560273007928888473423885696984087332852735488550950570854771241827890068336126509337658429454573753094645054280756703896242706495891604500124837479802674445458772310031189244342444904400152571288758471175595616616508577279880638485930751898744584558245503692676300589651461445544009914873643643711530924014198422421913987729813136530540800748277791620079942766378254790747937246777725341130346703803088119284952747392263099450360473361658712009383003700249879093297825820765327344690057471048119938579144758257803981218868613982116935247776445877191589473859319091242551750215366404111687894321432712724751456594725125545679385034630674603279804362879769598315991229647383313060587110022517590506018454648354442223556181167680241464777181583714176716938500962491470513573480791727065824219437508985632598301373095126611487326208674082914447964207421397774273202410500711714447128936051375815141534783019075868602711078114524716463179580848306351644469952392744189401221953871416677722001688500753843806994022103389884782206613396280841109476613599443511045588640202604051236205429836275973712616978439145880161567487214031585677940582733271904786672466154797617020726739263491818208207066178503852374428096180038945550880504879038992661097774867372329802427740154956231515122494399734509801934194665544516762788575184202101220147756698392789733715472631070803648640137270955053914501869397885998678497019035705672326234840316878195048680104599579609758520401105110330630556785578180184797279857664375389449841326170622764592217922354061480600335476290686847649521234214127457742844859988509986675156038524716465236157980632669857515521138889040545614536988976087462221240561684189595348049286465331077786683822197084546836304519016932082547423539419253846389868500655058298331244196321315994043303918978117784082717531279829083183074289601121365654734561377853040508451992227137961161929810211580024610421856598782543000558177792511761879581419957336817689256299401064999849955027807655550884065716082403088176420589569419187110527471817644846674946175023627025266873172727423823304781697416278089940685806955706480768365811906267222827185160916172239506779254118787374988590870121579183316799559890586115068387548829172189644044103401843628173946397077291689359912437315172345358853970919732956227686880286012854962438090909512740717224317626336444936656840859346510505140031937532010608584685913130450603936142006138096565403411351480849824719809078824948414133199074145005612171433822600707398477303520338652525355282155305736004740518882438154554009971873746398431307487214161289755495520937828918483847109594611543606105784494410404494650476664942434274220312316420030604032696478477854603234181391895779191166769238199879144115385858581260189959542808550829179831142331451149673093327294781388278853858263202041434043791465626639136666568113188725652405768826313209565482240910752887341752042424940008645081087674512452082925605400464648365366369283236049978526215612028070719647369015171375776996953397881595437052331843777348203324799721265456076279700840910374138673762996144522346788080143299766622363445038410313645864037639924964840779080335262282742468583072216113061591413812392877041599307683334415692790404113746364431934137016451163365325552420887343599166770249118421834933246519735216430329224086143944511498980865477567315694073529791322011966172092810901042980853902417047258126973242965095958801434023852978833932147879985446085075561478079378485580051232067412616384227865356715201097465671703259019824893907540958891012303024477798607853239370031003201641773484429731880599279291028538686613824613346793109165786492952810176627800710930342914478960330653208554595054127628688716537980043574150815545861540840618160755201833233012142231441067244948133838596125629821063121549764982958127644311459920842345271817149167811200669655419765620493745267661616418325343244247245141992037247461156658225593579116340335597668628852558466207443579553728068498138780068232647119592323721945887852313710536521298001936886910378736798443451204895599386029200657684496371463380133235682697320718782366232419324957919731991872906019189974739461276769438691929902398478394176302750503617071671983025494112573044870061767608083165347158838940797032284458335852923864637175963257698084587566280307638637399283349549457928329306908174285084537850935123653420632981429801407932315178012567237529428999530332274961949096937911508881669999829293153344385713279669715830076762558273856551268432629164565462193357532366550683538113295220965446866952005475025370989595103982793197136858770474617477174922143402420893415651979660333641768231062207896616980980102209301450082955632403921459610327106174265448269966787234806905037742089429668993906865185789392300829668966309330216921508763260763099283625013054771038819027298254423724609020787892582682261368943283508186218971176660472190007666416011408389348062733134891118795062085611741846013509364605974486941374612612904728080390806788818964795719194797316351198398698314481761546936710346935607581568037635205230764834143483318243086272255859454594377678816039341112242342211060502714490584248696504243302320948032273124615210179275726197271549431757350548169699136801100228295234553633117577402412260485754376307915275591952259648630351991797038146347725997324703380428269875721829835200382701159458735457933979207379471105588558925390841823876102057541190926268582306853242082080269690692738604744424849909371109486598486363254540984982862998207755102126595951227253966486189206212051167592392858011961833596795947672468652822554205824663880099705477339208936379274122155316251136270025616246394168719844850533344527662584063754065235776896495022125834219254041274642100436389453978877786246175533469482418893642138713884184858829947137514848835060110837828876531825263181326359912455940795546897631028568940667703872549906873482320243368016747789367516426203573426901486194416981789587904133214596058998001789838185781797491149513949482187152209636098314327186272437455792772766121089020953347669403114071806004215385735154972664311582621626184819395971355736693037458468171212957299863187060519081511380441481131892109657563407726715733260146310127890847408310076652130765077897595805024840618759066157517210179446376223997685339852500657058016151015524395959292750850532928885213320129692456313508502433959707133245633919021941787441238711712880282248398936007810519866179232451367338003290861064800772443945991723695105274717094513167716148222466574767156920898180185184077721610764333492396505851980540951850200262274218447704684568778360356638277738120759760922445678761289750732130609715789725959116922182030842489708865109456450433520439998298280338217881943455912134448821291171715798131795418758713496155492870952919809877812443263319357793266787318277084733682602422501422147043515851387199190521139297132601288675448226087161154499823760215459490499905766403795017159175491980696719275575539612166980255674325964365499452052400417880057874859442764331831392634598584762057865019885144704725161412348653831327062999056259019814371071078834282391130989071855064079820865361139897602144394654314051121366120518295797266680219654333285776820025363659777064566082696221637328493998476028672814262672197744070402653888165540952626725496341321655105392921884376457911855180487522552204167346901728653148586193599373023768989456984478751589345728838022755470559074799752597407395748021907236166223081732656331031605673532482852697553237661775879279397360736265639764773874932959136996144445916223302848721457784977499005442609639764045467903853051843540610292062156787357835588519848646059534429346162859625117866133287680754000707541953912990962162762688415431855168027979490590895121772413689324939899711188565492630486389494756865183973948659186058302863331160892769857697331820869058102121863699872503883249554379488989192159551979250667971087524979041277746031239492085362199986542091581701750512053872685961599925937811930044531675906267314822595814806374507549027545122965021311009495504818797285565113452192769345714923282025189953158823762567365063709022336215348486845124495427845058628837502437085899719107090860610945806365635065664029757842698571972851520519951971168199839995822876462060668574510018003464715760256777136646789072128444293748219353805610506752236129522212037353812133520259574262354996201604857273603318658210433044316701388467575205959105766203436968332747770997677532919994455897803986942235336428267115409558619363069046016236853886277772999655559636515694093541382929156624456022748835357596038913266068122027967293923397682523721655751775002518369988953537423924227621136837994864233947258624387640185589192433241635777362338417933785344097952562163062316181337896451318065593663115627404198738805096190484737674039236896211607693979118598326963144838078123016513218579911434487378091582642507820500921636957338347800460273510539333775645265333105898013097012742166209916483746423304549187146973935415588601122776728940931707706314753219931251847944566625979542746213027633934537983289916469783844944890428726624340565230564747093132919830633580615544537723765429398708718408497987755231831838291819236016818236820697801990978713874247764899447355549440208400756100581013554476835647911067203399261653275902456331228978411494449811724384728655590067038968559898985053415192252191189390775308095320752194908405051327148248244936900498239602706625698792662796334025934878004752044627490537391671869390899590941835288529134641275499922859943452981699475772499286523249170640753985470092254595543721190211436998263436375613547701646000263802985796953081923914861582262896848759384794942817426242798256653644874578660570443165543302472768307731263342355667113384939881829569825157044393467746530969565375626652135884072053388183351876057714609066920136258097816273154407978191547072332220857289216377639848442851376413765769104757497027410516416874252043352085554691321036441852969420690731762903350265009954649467065358002876655593112016256047341914551913883334098445658710596518649972371691989693132256161101318809688567491164005394022211576352471917585202636026414200709633953569327925563386486349378347321317162805711462476930163692168001306960192662943563332958645550741287533473823913165432113439824487513813460957000476677168472087144136455796358222387266566623917253650480945503960662906317923187107505448451346193497301794223961874400298374581986948563321289118283757322964803629406124402716609736605993060993819800028771025696058113878082278925172223207103055321220022251691859423124370893247411960913807143770954724719861008414379128454060633767348199145241220376323303830457001397405421692369656919441288215633760876022760762577482470756783426384558043289606920574240159820756326317480716650864908947724107828972489841628673356717204800532901451532378138825289122189819959927611523980817145308701404127839543555950897666339781204554454024486234341309884900270467748825973320146372740531733306954953805090535976041539588784771695059796602799929063665925654985810469273256424946010587934023680657055972097059898915373911069156056660378103463234588628624490603631530674732828109910992120850718713982648690208153800342572500191508270652527462660610678264080015237401117270685366438150692611255879636130806149929719985273842742962844663102911727903511135501027148041383962333014281280338501672860057283769511575302371766160639847493637753792143913316333148084471347641739819007717648609401455300250560502611761366981194184220337034245162526055707245522183284815094696520438571816398314228329748396066523317894706715591817251719500376840759082583530218929456896391036647238403824609472492516653759153868104633515599215837103362219418359564573429953209317562910280141675901476590107580958032566499769054568970989697432200974607470426757929919536008822996441768974872502814102149018797131720850720982141477652005162990077809753739170935319451591688839716192323538864842054806185026943063588362743811268679937466763539800785626121912666446623927823497280963111727857171202164885166441499787156900187564621223572306516968222443441933528843579303632499239720172687995264144912933439812620585099570625388867194938722233294517603827072024345123059585125219336354996457137705563561553528068924154084686777471035756875416600052462431019832734658253113820130730475381457106731044140027979812104292719730854649855066980732423725215947838371426062252745506120226297950863305710472460330468727671532503539459100832927329104622561374716153507492326851198365182704167683860763955032405869975159701409652347856248431066761796941897369752747772797353775213830591515598429607348308298655744719410830948330234339893515439217177630713793746181318412618842478979023446878957383029928056092182119416968749602134178535993440416255081679191049512166293015409335645950209715093498811894878547247256288922184783207399056527706449300893288925772849514772373481850780950592682596665358774980989634168730762636089442880039963173679737236760463836461915920323005395289506278261580930174361973104404436216739010547325842441392707174852771343737217523705136257941626265840524385987160197870159288952957029250728622058436247441924937104477085361404357132681263477322283792737104558770059511943707320548083645107560062340267114748125301686921275626009994135171416356431960147913559832780397427506478343110615175798274154697283574632556922331619287965350907434838967220531844901916060804022070624539604940522613270159985118118040818938438542866637871007639877495088551993412202404104138153702279957094245389586875528864926684712595453609801317620593949110427356895604055766500960555928410809922131624059719607280573284943423662474028791446736120970894093902013345977823021084085171552290734509726440493440502800661797383841028732873284083172239354615371111876418775907910714356895024287963037912330661310540261774721036196656297336555171747198837227577919405158333964513907871339350562395018813813988296578314310742181995676016665488781140040429046353328055410713645827273319022199430775034750356605425171220852695867934010543837282727724206963986644913745386842357812682792966737931867732027412280091796913062470146044399869489404536283381668699566034961840646995936252107567592166004209583357983309428810804822221186012462793252122787915853693290219184507257285004585587956281343876420189714910201333812097887960376201731733724778570639758791743264397267118871563241514282511102491511998660411703130350479996087790005639896090826991697211696806077320057115125375939528307738270083493437836642159654274506410978796765619184179035452232971133271234255377490270564010098134067191715517131708455248735066391194557984466143801178235503627026483707033005581167637449863310979114306767190166438238114606934091889146230711792993253317748254271962400154068825494086088332788676993732902985801656876694044162908639060143782332770030609248502441974512814334953862496700467163438838558244460258869438048284665739375152867893237369690863056062592379151579565967422782085516533008634855662746774305740612797703407111206988626026676242774022788093866259753010629063758944552972954205581011299117523550927655144687541478294084770113503595596809876474046914602838520407375442016187547816577118425850246984234072460065078486600436381780940310884025284982932339153145751053595317291802817206479660671279020183177777101975276361761454334543039586942999191500691211080619305892873101889071677679300920109032984942530442010147756070751405196223270792966144910298132571028112928054295175931553421578185070203547375598985623874680672811539510569888000956845559919321591042908213634248598050836154794594953114120422598883365567806784423962416889086749194444877116714688913487695810872267498468798894358974769940225643856124428950872171760588246267042825267105175959660256807775933820153039488454255083024291664019162901506236635497106488754125006047072041274039419703333917502947690412338304298131837020080355408920715906072425308352233417076543311686618073103659378000028207410581286863819907656133189952056730156366732841166104854529899941381740275746635247412266837061592811454371342983334064031965761546894681510555814230833426747038007301277662548414911646626129723867912149957660402479100250493530188456325458624624929988332686921685371652760443224319187547992838494889608485786670485700615991223476772661443266520079785865001936735228871618504492430904330061883280197042751580103335395253886894780157821454697502397663570622014529809767873030364742184139927142929852551034857978511115301629437135487127363265488810219761775032355113913052368414791982929671555614488725581779386516134059749687341548448457739546383771358617175246993802306350286003317193161675804726432530153448715081167171706313680726251044688722939552308733446713277363941750479645677675569371954538949046882023136105590411212988107318271978101738347414774160104814580136838374097109572914972640157068330872563134688678652520956973998366942721533829014978334746472157446311156880764034664635327050778419766423183888476151522243191456243715584421562636328260383437094440029908501535035977869456781285925110209003413602230071650015476009777341130324930822841706443107543768240538615249849951062146240304783049327466347231288746256140372839708715686465853658044355760923072980017950131517350094020476500789172498907448826151512725838506689758693070486017142724765615046521284242060127836517310172035588249644853192839416485278491561401585903126822697628791664392129294786951189739853975178045940846400862886824185478629923723857307209242518564405107406406164009732382525471229676198694393881981237982194218577234626632577410264078952519267995823152743004978392823380380797613118314137672333926412469661147634056085089484044530138394775879271746468443052413264433495326382673730636005482605365524161291952774202387567430936887173226180360379051150422335851929384993357777206525454811271071386000822975733093216695680743752870992294907583016153381826427820417241671279248539808616372693221686056693879736477514550761486350464367840019614802647358960983045058438836848739856684608401712908910191759467221321737296779962620263267695531965037332397097598589714492198446427146292053462333225374724986870970192345451985556967883541927812857279109587750469061033819942397363644562088258535930472265956463314643609328325308143903331918293344055844936501355545064176349156443346607516072973692693288408471108770148540069580909071431430696343894050701440187582197786129254368092398948351734938618839796107423415752322106790528752284887216055182168742065826709907715292488593048275704945163229999075065562896246703497632947433532127534286532797347190912138778427611704007123579981312486340166473832051655537692412244706604615752354255929821358233816772994214038960240634830184036002843808732131348249257060414774210308324786633500405867217253741709766161743262487173420919387419241497521477016731088857849857571554730562157513921327941014762654757510294082168641231300978441661312721572899704691337688515721644681809533898253456380792629296679847843069424354009111459193197289022456631728704647532977869887227471941982452330143826541087067684017429472397910119908455658088050295158123230593596903731074209535717225866354395983371832115812302411235025546825765318474261339430047638446712568780885975320734304445159944823175686423416942298966215878443747345675868025197334803047830699515270582961585896753797210075075659077257534131764733241091510027366154523644571399165139910740845119335128300229791668216227977946627792502592118362683059814487451830177888937159922969875888219920903495750023206969358393661651479832069543350588398264203278242654504509090782629049229294219162272844251390544635965892036113362736065352638206101493419070886395442895413629117466386552636129696444196571602922508265655445606099998533329199187221249214252809085435170532164001218556378507604151161243251639777756893071309010063830509565233415136131969505234705790568422948637683003744902374651076551034992313179705368443464882062832615117275866212728073210185304962360636014126705181036303378744028627296860866395561550587755582619288561498459809032100802209805881149175568983355718658173217252429006072113673404368745820893719170806054257427270318900235726007078756936984519000901088149402642510344242818070223733175474947141868286425830140483054302217873801802713320402043923419941217737196555825944397546196030684937591548934039568144753708305102011399360101910430160365594464413805796139944884142583347479783103141678229490302834010735632760086065535820358441868875284862552240000170807632174301532583059956739727080999992882447473431582827538594841832371969098957482117598229047787177907787408495543271489950389749561069752066715365004043443932084857546765812783130227438431874629032371767805743999085634448287471718453115176236170753589181987875915200250334194576715595511320645999852311101319739443501439325133744009756768554331356564660540031223516177700425277144763924047876505376784464842786568624154219420019600755735496424900553148527760453462768532151668861568447547851714934718379042508028558315741585724716499444322346714527871294877930703901681178506188059282937971877332237725100477458863024837071188556326211262167618000638486773848185250801802862762812095549540063606797422695654361652699539336791441668204112321974944247332128944342208184631743559837458902963666476636327666122988990752045483283476369362204081061159998317569670210796673113438888936585223268362492260802673655696917026133653533350775778162075173870121706145926681904964774964685113860466203394318814934578920843236126386501732533438894857858971217027517191822472938145962475942502562307545007370255260875492507337225900821142704429318346438631559905828028261454264787838869499361628778510863178333274956957333159722145457404601065578845808407842288199899187792262601016698124470430159798873889491365493876958718639043286885846062860672302873138322039169977551237491207958674719381260921783623584906299909001308002558512646098788254540667981342476137085527738353578918997788870181496462768581943040488857010077831679404246447711979966982739751501066583465532745292312406480237193222376358607778009786235214125654861796404120802224282102945763279022006227146675461184024726095262056715607683715434212572274700571265896455491982101192583883286455150644328482660527226015784420313063803120743990176142846105542677824054638853677326598272558525269261260533973584742368410002216622106129409805019941587129918769566560245717898090531785500697100311027889116465301900918604048132921798495951679351065266890789783098828654701426931810417403717989606650312267917604964625960104494501590022345569699349799328523640397634325670488022176914453641153106334140311083952331635565647633450536221094673319744620821257890640686082949858527535094147128854424284221847535246905771624795545628808911338442237632168159651469219906435144770196407311655382667812652762916525648442690332904672835655429890619165188583989677911608354200374584841058256610551817898528378239225986183614319333339495959350108858767678091061657397287952952912511629739907327105699756359914141937071238691965732159828214410473036559665440567660567334183724084697473131145597143438885439879797721940993887884266519092436422280040683018359794577077192582764422758341112114684527363893274098206909038397108564883814728879325590249836916705987787082204902724638919370310003542504121600886025601063887387191366930589674375800755499978916035920355818575125636060298748515364656086016957204585276910449772419126982150622959866823923562835111290633611046206637272316822266451292893720205338333463650105966876958967297755130897956714526869889742394809104790912069089235141972705484655796109044982801949685441190762532075724589941372506928052961794729680428030767685388786351843573410245312596823002539476205591056709698704372116077750520299185405574758502608014507161977032089939004347195559133069299302564745584081370255938541592223170988552174183549458756750943020200631778037217557409384974335886670142739442347759627737805132716374116313493216375320192471243768908025115936596654231494743297308269336418453778530491390057188055070263717522286632919450026916087853209992451383741894696423043155390365057529102172036225141978613895858492910572405493081926658466491008435847095260744926261651592069621435663001575727048699827660700255021009126702986306600379505634611589855202964781274047376442543926111060612318685823437303972297119184286685812616877483572574628511706278439987468637632818586593080716031613675553794147216185983954246380078701843212272561613142176578601989010459256199666394140371915735209052779159226262847190396857197431491803115103515679955249372011922087553741407187041548523112058856014489344528477081382140683570768304691333910332165228642246231095814792144751698875384674722630649157936232140985413356373417684729075741968956790180488778157656835068795125341375730337827514100349792497998488348416858713121144271026896401485761480496386470212482084523669747327518655023427341790567055346478187735023292208234745707179010160727533638992594596215643608443533781652785552420392714335692127400639768657919657865641931773285469729959635928189508330669055085270691299605920000540817455835263865124898134140912278034507446659182275303695245036295880164091202551130917032115400445829444258723080847044984858310640335709919212396986621773601245492750103678700597771658180943084991283096909671324293356848742842619799090398628400103348631400750706956410154030097822891248110102770387279584417982678764941931974005435801297129327526691215221498924073856231305183548536413044149137185302303422481031194609417959637294701271417417494843428922216055401287786055152896821765677132453696579220937514018855020128521120471077103906759570550620182448018570882570120454151309586060635341998641187270107394896701517548395907652137224632658471364002040721705785172342911026744868279133270617433579408839855061551555772599850621625977701851656516674657404816656290025281751515948579689205702813350988702141495230225462441542883622119331072494980677130543704404521172649329050024123162422955044494477895804850395592040183092895056054738976746306407522998859157809608580817428880759932879096159283480833633934502874675131819596310642312011753132904073769304525956820534097283467945764825426438961258362748799143704092675099199284207678769810054111821966099460353013410243337060881201880393147164909088364441984809835182661602874147303968724384979341620112852053519717283433436875544867801531404539568615891507413672073515037688997457638574733766964549372894977735366638464990448862773625953459537320015588688941363182184630986292674043473599903862448125603914965165519225540412015030768569320991994164832494813926154395284085876767889597838803836431918053177191673430278079041114993782734753967109777744324058217888006949000497134282081828595155804901087668438371412987576486519748722970989585857706368164778811801373336191965115000769800358048210560129502362516727219336082519951015915269122506641577933737556156654088918200848627118509572351903171154543324648893487519400694351391680743121219115849569548510943088612821871569735091465548026151712356839353974553751548038359875596175646771915511937400429889013710219307562239194679918257097671792634889544389804945761256230344240622923923264136827438483381804228113626403660078608018787285321510762308562604510006400920960235662611072557832108727519998361517940010736512649635701569111265178240265719971130897357421353903288259749277266390935783272702177191529569281561072962698220412043566536061533463722637735671358627938993592290203863545910006331435284438744315692017580316194174591557453788951477459680593960260134065155965472966107787857055653962334126509475309890959894569747099775615670214122706973008869559499808554821672484315133441111958648479865857368211697141384452018507063279785634365077552531634428787763269538837107133575452112797827170769640452102647263478436493984672795363525265680233660984388231418576074191391364978765012344913236846555760379137176766639923867254162524110334540730195243035707904493018619319515019752575809367114842454228919302462033546514534878517443027082707000731038839790486598271682599017899553698505376407303976255152821425564343053315616606824212759046228303764912298157829648246464420431917840673484431142814447616488949968446567335685327573188171051878782065259794154351951661533281924259298960014915488420810542018117554623674917617481061631073612229326531980328357870118272026973160150194201059865420236546797949914671242425651928036677500446849218038717386435415930434058755442095293983157593453920731232106857883912904345592966872694462590699155611209985556624724826831313015808898039392537820750860214069303484015598639265625104222647377742410074489232162913692644484947181823140332660970803787918388162470037901661501802882564045338574799193333888605424752727564152859892480514094234602613047926474873724838224262469737169684442189933020802974328489932387815702288468697284763190872919059061312669312351367287706298400335885643298910637275418605871000177899644834662694491541686680400107522566897493378486868948039215607284995349521089717564591005480471026638790069146978661249250200993618277565317067908351977422437694714035217659919731396530156681238572622357304060888897415959661843569522810044926680841301338499703669669009628336759340409486348627981834037082679023540728774246244238178777478728913627551017163986576206510314946730482100165745813502073519451094205316734219583206678888034705351188802420357534428406898066291661129070089175418610846192215154624161847374074713573029047323289285505660386984013638054732319047424344661183872257850497148595868127178247041532576680774675474087020876135618472716395826031600353840184242206132636306964708296115537823477301477376748249990482195550904637688570558246482676848942263602316042529254552088906482508815508435782453979345152424332680633880599415378381717176051357102610900411411859991181773627663916475393318867086201487434464119784393406425679208262568185849894988319726754282141564695971054147434760510697266318674851019921504292699144986383466116802995452953963786828388760488425741992103673943528814698995951305975714750504532695484209951600493760193160174503479580496196165732471111038046241264238461780521899864402820673147543779647051125748999468463534961318797005436799882611984329446581074256010943625694605708146407777509373710534642748980623592995978475273115236905760243491889450867124507512471704213312524111631644767812432648646350831640231721711285921022753502369829654310742614826464112291420679611329276703774594967517988518690585129579271850048178322825262635997255409227169135158303102357177176675060736355162244837604966240455725433563363707161508831434245505309020203345073246302934827050461985530526119730304244251728960335500923260695545107527341186664870644918740190737433609135876050745375467068731067124204948080262001714137364454730557338221441976689250425557981718528433098589194865423258050446159552699018692904107324874438855329078492192792130115947649950011219337808829783108377180503080240810696101331444625346961928388619238042312337488248656998179250753999720847211197875479439931366758623830889465791130336610395609419833245084034615318493727797735163672496146439719010264362368624686693333499868421235962120032043612714955150958928265462728929783717643024246498954978910326329478872743864322992500050052596806622907646425388418857603876979368953004236138338839501980000073654319422804712960712122369829998406288216628734044942603718513036119900147523493904409634570176620371907584500251887001308111554944466308982698044201821332410382748254554917458471032850406745573778514603891112401360779544766989069606745536893808887540970670117172091348524689394381046496093721136025397903106627716364888792121255001537842258206251193926639190581251612731784725167503976809840706395997060683140794941396130160151053782880070891665947696862417395224335718385595098604980054181385811626557409379876272262692426724925660776694173732500198810611697119430532767436289006798339927195665935853855612766197800872554176601681506780344164278047081760823193217314652496355757973217540437146101684741750493669893168481308918089083147940691349553804055992114720409363198682999162291299258379455702158092384232227357409881296592917787301189643980414891043856523682765958087677733825145222581255343203620237814606412437975704953995405411316581075931895227007698406865723239510963606510447774763845302290842389757848821977260705424724125017722983775643008776603511337881632879627650043016307335685828991981782639131844742511718261047322985377788312080630842859591787431851493227223483762205712752993598111287354799223013123722391306299309015560002399496469436105721604454369130300969877457310271314928706684446159422610795062488772626312471851456511205932113783830960792728044339981688930188609764895975447252168187833308369535029372269703516080468034650293063542268059706030180682777973123830612086319706182282351247099872854183523962668917941488852089267470906004603944517420187351620224546323126808730355246050170605401652927731391280380903507351635993657103684818465225993893937079569467876242061225234428314454871232249214536233628523472018555862661770972426635190251827645482072537713356234682282147490010286052435997326713959018313451020128115549785450878172662862312406928083924431481570157182059903994481403358046801203994849214395574109892349498721080423142882280754261836291365323984238348468695743077552483406523212103673659329530641291734388233912168577301148367096947109484272777916844146186905354563452653541715305220402514856806865696655921677495800789829237681977341016849086170025464816628268808940457104987452505136710805399552705076164405017522346685570342234987746446794165063401554203654183918796893816917203051305847817952398052197946546586814473658127294346740103354465692297895489338551568939067701880746841935920277878565809000552390997518129841736195194539998329588131057424746548555501926243718294412904759632836514918461243140419625240723508737701904052259461017671968248049345971584293431857905579168134621424997414876382367036349378467180751286871234056154181628396829613613758521156080319635618341256777254798994865999369566266729109368412506639144889662277796033419758981291784357691399986166837428054853360370490724100554452985070512421007370440100228297103368985600369224905746430047036593080204040741216229409050591199803744827154570869887867641522076641124611446920349000169725057628209440818199220318196761837651761527435535097717001787853210610617871618562251724782910112258755245932060928034924342273136778849601231780730161918983887994239985250440962111283552221755513859685606346585607496978811422361337152243477134469339400941108985892026603740443526395374672214561110237339849750694700726202221059438546294359503462705086171125837191458289086993220379406278509143285576904919619133358788025577193707845476829011765011682415898679979702112772138827107868755415022635511495966915111094010786308067778679922797521344656542196866476385490275802642091300426748855791500767894783762711501180617369952444776978731683568415836935707082211250037413824282635033553013009313909461726687550377639749021068588948758181607222113412333014877020253669936150471548925103375898838091467819105120773414453792565628917721634650070108760985811035471554132295837992940667768046975047462873321454852181406776777268525710509110170196889816670896839474555230978265737101046503117998093236861406644233402934077798139244683010507155223191125755378427259006919620339205955931246598251292237819044339395891271869943761062984798047580786832455812280299686065383911313228492952179662714653190001899773022940584101708947953769490695562929708648093263625506006455234312667712784979872197213580083194946742012591908906124147584813847955585902003261815489162961771912536917938488532118056935950012044216271480860208678148262280561926982021558526331615545881118352870968518231323107472411352615885404718859482660271017722341845816906582402553383217555972379615469587681026270366481067868990797042575545034887406629702965802161022885369268874893296996915757232446620372975826005491256198437369175134074301126963007108890821205861799001304628661570291064691242126505745795875763947986701437711134246190108613346966065354678191284806659471378150787926672604454238376424465307908068929947584809761572633770890492405981116534541315296543385329977653591109302004673203518078237337739346452100571117492003535044739595101969214684770654112963191861675302959948582412091108475680528617628877582807062886444365479188058152002266763865872637082820398757608704618826941198065533692552836671664032798631786410344112546048939823939897472435383792787078515717954506207339115260264018343293760404948415034707336286365664670628189588763680878139293538699850884564393882035544653861147975874504985980008515304898962433120841938607292975926847239113517642830510703018242959296754679806093563004646321640091206851188843295896692400075672504729236449966391195779397416078082097671324542154195494892800762314914785589870304063914457938541633118470607119777227883780186225481157522208642824474897862881599474783717554965168377984434799198205683229212345427758517473942873549732588940903548927920121337463460168137988708525258300899033715513643398190665198463202874619469743930178230497083276077776762019788749991759970455082713384224727844247634876218387081655261021035053831087761374480510346165094565916791648241648010232336055619578279815263188722383460089234895323213830835095438352398124904513678771303160673232269767138338596361027494995348866911705059610931417627026282552439237053138014114208130414817913273333655326102080219104248802385990760723228403920491766484130212140065814140878832985119659850353452427103591756604372830978051813247634858810028296415983887449155346445282454776926655553586584428304184238009954120224722691920513201803442398183047412143663211375197042070919141199982237794142730448266610112998889476574180747538493579073403654280163843819681944123361026504836761361227822344981515828255701123156735308270663410895352309021174186500309552448680319383545196881585711225578567305480237542246257648991115993766527834970615846725868119453399043227613200730121000814809648936300339543780045421913733682380404570301465745569658118999300792888039127458210868253079235567968412735573177960003073939340673083325371069126957035835811551730619441767422045496214539881249908396817808537591516128387668217035717445878501679085626499093590246009808957873325850306592367143670651049501625728249627847211951944951287232548493951774084845348698828002721418285321865591739078201654750822935546478226282115321149314702380956549789968134578139558643972765755490181526938357205720487686077282396874287069008743397874219335470090876261224531379622360174967175897025129129068308200493195751414169052224892737203218027235800338653798203881691740216884470895549051322492296847454933785780031889444951424129690213255301131856150544111391715105714681866684620394773765209191224496454159932991137714692872643404686299340523833202943060692266075086355979135480059640654969383930885498410833908589994024620882235731757818884542846389894099355934085884966592624278761515526849975677767108719120782360741698786250363513505030757479418459672996930255719762474256629835061036302993818161128615010503469016687447966686079713302468257314979779689423930667097941336034470116144794802163916109260567621915905555480605518803579849423552289235975471691440009002226073716604449785297232669297273522019977900952498010055180895369105803069446679059572692720179821344380800481818389402608300449835042309785267847677860562253724242665765935843148233536728413339105643152460597074265616229873138656053167253563394702821623922897276321382205654444516281456777475182300519988108569319372633357258538371907596379545627635337460416603433413011862088201754442650928312122907555170036576156390226238124432451636013084939965954326386305919289711569927064488472303693214122242219709476054979089266323102437729842548199217969943739498725312313363475254070277705126458788310686574732371111677567940508951488550479328450048904668561522790822549273147407854105530072103537745850018699633285285702922071314180276306776270786490718993755703485197671404866687943660474236631293806580443600704993283106016639367635677457433533896431619245586254704452721596227242067614868271782788245796388491089336149239580364581773699844278971362357978750574397759620473768793583540785892785435651766449813748792936215590560349288338731213168150544458591324881005995326426077598880787040396043606451981418292591819370577830199603379470456726609302180469713256392546083590474863459071953971586084857443398443687078040702965197786046462333177142845019211671230737277771342293980661701753156216628953530820505365450586598177613091210562703466112070829625258954829593382447153589404553370031847125642761262007598381989675231795439318143909946532446517588717810986609339116390707777938675445972033577502342011883227424543911288268447216932038188844958932629199478872292706086076454219995601829441463545020759779968093926839546917624289519544257631777585626207483718514553919315017328116205346979003937847505477013353853423265572759727524980069324195734810167834349132871835268386251909725744338297713383169530647508820412678881903998259322098221465522654070814912297928610619558655456130593043848530953594726994551964467004231612881964998221848810828936874663375055171675982275237186321442407002984523402000594155530053322929286080732948658787227255166086791020593548364085293074515892208168635097436212144930465816164485748921952991343938265002510795665789354784175258992355838955345024893712830925890835144606348870036189570045236316333174204039767693240541536473415660718972659196044760519542942513743768411150965490785324226886337016852684940284270343962837053202766158280693966116505597304642155149048564980053499591774682190931772083136702805590796458984021554630984138243382912759891782746911998597153323444601549966565226183554839692009450986408232800685185373798662851037338187342008397372572423226660377928783482857555758979966506108573222179273495737121312326225381027080404008179430309391483337239298208754675722127863604846590644124757972283044721168402381259100882593108668914680060322377964715299092722363835078375203942427424982801468690090010304586065926099637862878530302313975450297977973896949648678983964057266202173888369095158660578224179762858334984687461087537760669386298479772297286020557529870653751255758787913136267938280559147275025571659611819942796333610394869007064717199680219255750325292342887204015227434999952899389624809354162425136322584499068459949935398697054227032737933093766277212465107125072375750884750429624360928596480390612183799776658466255940113191694577105959201293664508154237303168755545395004135643272212532836492716887799167666393034940776977439479300249870022745281834895339758811796764211497523087596626118375305014507661334876369095537618027024514100625467423919009087338726531591930969589353712647914334529000158564349370898022373675143136467492174161774914579141950979749497196107498155347830213601693383008065872258762861055600000590048817625177425773191802659328706608556865825495103028970082309227096689788680589641323962129209751573014982674455088902047247512245221265771332515694024369219824404339210046926363216273724191459500338715590683715556394661686643909454573895525959313013791371674037324533974640492921763064088333138813904292704993924736301268720574490999804817107084090521717918832369608789094626402187815727911704435038304504315810854921340197410591441364407436200976922517776765593393622766097492721555911322830089865010211360656601165938219213650837330397417101876562677403174005205196083674515883355342834622493242031271601622631600502570318494954613368578210036857021939582418635103480227034498008783700912549505993515109285068404899094904721307171549155188167256320038171079208942408886348027779286023034620403752450315948973938460361260844318685075204312777394265749486005778729446353225315167860499372596609172656912036905823881102139143651916008677276711376872517316441897226320669675864377707376700621245792678262544094382108486452134040812507301982022029132892856658471233376550584895120357607236515006647791324645050240693194052622636381240977168485198663514245879136943301959403945727920879360653375669731805910107582794640817116473051046354240458330661106813879352159431565882775376016386805317552537846019355015112042712582067815087763382804571827455838296649599604207788727437183812316598593828816720907522981734144069217025045799695067865264791953308871774616292466306389440255819540284030279828217117345391654736782966291116809932423548040972100171963897062460955098520178842488133497480915005114005884531427265478769620640638970000662396936428747934343418622020980568245711449849261412142443653818386445026725493908691701961554662342240344597116823627815541005785240229316300678343848618073298902178820805101297140198259068970447305567368560441220509955838821277656743116025428458176081611697756953842760788926146498152587019496789288537508118491478106062624253854834951190197411429945778327080459147919386175341986392676102148534278918013441769088383200083034591637164991583786800542140144066177330641179427504840193704864703722070728019836262062443466908906135613560610776278056861919393116580175414146918905214747886929391886767897892407950040696410828315425329792017698146494453201610327883647143847159326307195488119549657333732122048687509135584746300350852498938030843782705919417740354700741722659704136347516792999356323201305900278979890309433458102076559676822504010220197006208933176476243382105251889045497873164219370530943465095707979822699198195294358623662852121232596201978196285257609539944121126972075838853594740156828402564972044548693285608585364787869089116470865810763860967284682244623619701367411579261743944601983424405350482867748660214805383615637607048157259827330318539634914969742443507528678655396695238616577492470311684770052172531373612206722656745585724050140478039868509131245763032606550824323751740334268712345043069618997167587616815516416929693503811104155716036662723381019655352981957503147844931451349773400102788915460261348651990473425971270191690889159676154552023617811593755061047789546888967713916058650461551505911349705351315341456256107977680193124345867343396216957927282581463448276960478196518957977735326461303440997119732855173552228848464211027370522620916520569072166106436943749217339624185396490409952342758990217803592646223930188466326891079613771968716876327202532538892247615720263803882763916750402643870418608022086196377215810904084816292173741164880914822235685029987358323815644376452626660732164955863579616261005526997420920189609143092201631536850528752268961885832116674006315597460032712660042680706933982079573088410996992522952272656181432986865847972913430562407638427769909351317709512332287688669706570642560830830643362153390843259288477088396078146707995627999079444387875594528173733226108107754237503074514690378402886756120105739685291002215742666535091251323742421782012988792207282676265319370011340016579015776510995970675771411279572325702111386847372360545082275222886092741022904632927126541885835461914327448011276852755754315161080234474401002829518139557947013603805963812748450335961037367974132127833282865019033263395307167771714689157716635990861311902242970718448855043377067919540354416542442311855970946552720230812018908596984523885385660101585005925870295328020916456131085022267374446181019435557240017421766578270927544851606726326463782625396270227158039042218244516879375908298439025540216157777732831243191955634528997079138907236319079084682929304847296297477816248216856264361155039122672815436289959258039822579806390266779295877193355936542548756402682562790445497044318784821132661016321395398900494080811900762407367667284578869871319097020513134358462026949828611151000084805727127199513029816351064146652116885842572033319342052092539283240163112214889792759868342794026919842169990430151268296052869617747625046805020232228839601352699735396710805845386268641192631289037373848271452158618620757832813613321296449672649772709557507008660576482824971092826659163217148626403879945761871315103787082879748771445330780149510762062188614461730645536468983114386771106556941716553602677761369380624491225763510301426386925352782678212839966442534931146723693736218682143931315555697870465383462879734286371538044194181345300053724367031836205416555606240832243585036792244646840266722419545371178515507462663657454929079071971339339331528513414164924137394657505516535472302311780316256732412436331192722468780588273111076904364548441071442951745659468613297615465442757437530086929148533392580063001035941852232126265855495106022372996708730555917883755680053208360610774314793801177964347544397245591807680562060201341936805896105242990292047677882834479191269226147067341267157482855291087960348917996512059380189841121972576849790144161523628018316182147089005236535777339672016304554790206504591633461068111067697825365613510201109825379314728052970297109374035645554270123537778329744638327401930958662694573827133522476130695694902471371942454103895848087468467426787234111342937227672963788065008424432591616797527511707467772856442986823197692168345713882514829034299794712404971106605364693562703401291505760618685779183049492399879435496427983347185291038539635498719881581101633749667291324340856658040721587847255365857490886326872765308092181747751405460655563934894726343999748804603340498706658435656627320179507592327487831420165104237703428526708393887190058351872669468110141779923930404551570633527182158417779594882200432137975789912855893592184094883569155169085950848697340785802583210882404545836629795833254211795123829100755878399265455762504790786189703565706498980154677781424854634605299434490904176196821901262815940041944317312185012339299040650905225826382703736097631602051238386120605043295149164204706437967208447062701743330830206443472928848977741281896729987540842301500840477983042419211951916921858741436195937155517120513330585891753519456296840628494853700134064899647664955341262136902647415112171696519610888400260667793406496817688286131002230537676272455956662695591396707306461891318883524364623011029240953988648668265682020093932536568788912924477708232627432128097196687511435481631517822361933392061631931293252649919583960291168239206911248868767146575473182014145313147901791812024002590944354341524571413017691096470140638250116604266307870523262655996818105471760324615362862926933229662754180875806249102241923900233934833552768244312784813118946793074863027578289048906599622926489551188605937850712105934598958663885006511972127370423556907486090156530485310096884436252150630072304313306763579155638630516277059198513692007063307227331294061327397807462071182036605407666319931727386203804388817157492606888433494049667670900175488870494490189142402586966526356816697853956274321524160557570143325166517846935506475409962992707186543625234670828827005353302883453564065250027585486095482056208167527225362884962657598543234808174895197680052610102666403853034287609862283636004321460997219645848262306965919713883370296996400286407611094867258088500741795241668223968855962184443733226178909459306643336086015560118093898040587467276048382636891164144093642291812416862544701191219636957816955810306330010689528738540514268246558900898734419455574932062769228385783884679761709780103948421144079074502489175470128289310446005744277618815096267887593643234846149069041201012193375706370702274931783793180993129166983016334077925966498429257398421697619450346144220908186501990263469629441514198448090455400371588908007796510980629724427694139808816406699612079417032388864993619124528949534861489196083974975535923849877011474106684018699958113005700048279043689196583721557533431070562517967180408604779460646314425188437485620294598572821180934847280243810118652419868493131623391127651880131633765604759510074764841538665624726376414372842687847385575098009366577421759781193271091625727799181411800461391248392621744388027416554398991369218804639702447383977818183904308564057901532383142929609185594455778162717806697704031021658474051102796758154757164433348709572404579433046289882419225366011549151867244336145175314702090964021106735079624706283560747442080666363095996965024699413124795375794465708933959233642924827810472503443227394579421207357152725243978746099221137859235828986444800541831207737660146623035308868513152415609399894895869446755098063374959574011872013951821752373532824236631301956115540212098500289337663220780902622519948830681095433498157789614297689843480891989414017156579489659614868827556585638347430687066190853698840572115287147254721237612008307036382086100996782724831366821889364398634152301713867220135922956550155643328660457803823726901501257564976273933958952165152681709970678881550050915926959285028712146829449824983848072560457602899991548446686043723871867299879697091599520227978384245254245584605395502576814664946415232801487110574753137173819497556329936352077739646244755580030653035632444694052108365687693232225275688177014026878624894357148607420686655075097266998438556557209225862377300529688276898976727107095700164909547488072061983016325197895194047132901983053441387659227929485714323752668906054475772653465786856883130767456473275060133113754085135658403566995492709628100752345391070567744546034467681166488969452036929169256141335964106269445271627257046031909705429480083447689722868843532136020163340636400137229818891237719820687608138834858512955567363308780457658476794793732398519495568330503419984563347798149652504389115083900590745895233878494058908327474613654236071955470505801503323539378231227799910501263564550264710884019568983617903758085792960373035171618399413541701966755923065650121352315736982364941523136893116453362401265553835379136349682098035158746003030751566222304791885240506606155016874946600804350399108735006929973894029628648859059320339064456080717876387810508645802123128396015953007299860474585767096047845095430145341491687565542124891394744050878926929900297343523025213955483909353107983529784618038617898577062296926906890819787264332270364120506598189354845674897092827810432282263999746158020503773012662053984835649092242243845743813289767382187943208615083867499177604583566323402784182387655051534605443860194422556240433875192399298603397080345596867530075836766648323171561802446358007547508596196787968427653589053828997637567167394799344373793066516024242486973297999837099136321202267028756563961464838466586576893983600459742180151297000139504367187451982439654563496177022956516978648333049704211342092594530424279078862941512275742896213362766844012809254902504186722229331462195857614555376024821558617290006502463737652419976362065622788015315075799690920992327364309879421189897611190802054093810540732813610091112603858070026216225290962700894431550036221928174329681025594893235730879661666019490753787973779622875795857705383516490790667691006943068925897437630081363663031834888189639031763517013055846176307868391488945154132778361400085987942250638190110993949176176691292125806665589160549756035981242007341212650420862168674442855962568682233135131782300014796104662909805441965282711403044707351744476645850699685578922687044361867396571702811065245299509020166196907692583676961473092856282274427267075553926697766201318603124842892708012541401292223468724876310196768419419075495285192695249871828679443513723004865016312072051926970848134791509756126236243064722956907446644849213978320024265825645717894991531419076072969420605525126348816105386961767553525436897038208960720746136749745492534156872808880493870967471852633735695404361466859265973463149894091742667477845503057425609801126754235106062463125515558678954727884737961756424157289722605475291641689116952139707560450512226896941952377703298797625966307786420075465619170775205900140824315062226806894632053608941554074039564491657998887175275145225595572299539795523765551602405279541233467989124384403954246222388052847959685147949445430504061492674060464304341210270220988895132248369520466036523467799176067053470570014765910853444858881759941224970510182480591738608078194903231088360585084836886144591195093930165906192187326468137262660823706690592698982948076969509607341330540713454110960053848893425842567416352474647549079012577987461327174760063146085212991681646939633165246080655512499952267112552417441413962761149797058277175295300320139175037641584927394506730325648255555349548027117095119820705905907073336796809838603600907253974229286770576266110495756505705689551840597198597779828914563888403302735077797352341794101090189560241501517980621866288352040316877646594012170026340100542762576000634358789573049879640394959738186821890525993509784314637336223778007117679592174300264481103986841207159131458888367687375137431822849156255363705027831143111798897540265858219848655645052898878887255270594465378954329617767936438513961048527484508383066474313461772902476506630718574971668933782530283321336947029727211644873735711942014624811120304969081961863748401690768007781577506235089320492206388091481381973676425088189094845188575808463498487669294775220306234745202989115460890019671501942404279741399011396933188868509727280820873132689066294056746209775538850870239644077791931575955677953720108732140590730504365549967479435293552938928567078413039861123239066658507016825672496810261301206084314529488120695748939968187348608289690926020955872904623396520969664071496303318879358897197459295327750297914347702338462565672252232964588982248753617685946796119652489238202798481828379536514223291013510806045900281553144428097812804339168320609299551383066369583565217510406153435548101908045199686689958999481646349074134893267969228754562992387971089111013909292146533072256199430709809173337969014585175058094198212976680572917753259774445963768155045713486494128591748950770144323833901666256825897893611478400828180995170765752807207645685150025695103015802464607046488125679876339083048706234006606420440217187038255594680480070954079815794853392567090840452905933294651235719504613260077397006678680530095216876566237064598596775790094661810410857922644501948401136201916763141414028084898027611559114004455659592610522507149110057277114636877072042100208121128079888522885467806454241980585458755738685368902715309262847622710819696322829988217257993395407309801625119833733359038946545755867655610420103875734812338434808282772653696142606277666787643640483194025207009872465586819648308957040981485520793618171498612282040142822735819603845346447949687821602939266727952858737737776801078514653523120673451886329993204400757651654489167293711619293909779197196524789075956006071644882403411583510650985685254434513772610248199774943688198404641334786767073146726378880247417385443616453093704209748986517612538274936130627833153465106052082380540316419873246513164003326136183421251572222020834578731343609518053425333142240049556919608562443105944357426122718665864820742523460089110681138922537422588551496849896522866600552358504666530463290930737801982592995408832981585595935317192138697450426985939762366542436175297226241655154222559461286183291881890143150275376739695139165499350745006028776032789451012370811494515562612833741439503247076532098321906341815332084728448121439711878945856547190239508599586714461279368151030522489040966012060183976616996955858508735208529599571874854332224163492429199582800428669209432280180910500336049945202787718415519061119356297843313062677101794547448608632456234494265161850006131220792504621112463513876496067328682476523570459886975455789367458166466524149890445813548036051402569040328402118273657156004651393270396753065704608709530445228471567482690933967269036350878506646404661504548348641824842114266602694709204884417952482840981541368054857311407652575306348811990666126016977056952404222905296664683395308878574531494491835914546134975891485802332375509658614314033566538436911401157272071608895648176885957077703656169416725762123019982831256734307174821547465523063542282411053221756036280285529384620496623754510249090520196555963154657622012536228815860271907376326294536264158963557954308866853737523945577767867513607154377584795028651085759787825372260911840828491614321519377735028303919208706258371528142706452341756770200988566238906074302665607408206786175477889560295604983368225266999455209760567062087838232087825044789390418345130236818042198140601585474626930372101183251544413500149189778483494676567501860676765302289819411492854451020478865497962613835749170705412535510550098972886173853661869210663690696564018225492920191418356181193184927053939622863183392349615922722781612701496866918067115312716644923143591871198892467189078518297268867243530489790149918002959830132481978314862118379376048152805644280994317882579105947514470260067479416640636744753257071174892162656672309943077222974347440249843997876570432627226326963457701731907061587919017979414024264195855859041688692120043442740864613478284791446636050807057345124570333550505386727057730343709029285276128185367312967641892768491990663182800909778765955069646755944325853959077002615169702941768689544089466922678681970853390626064948852911654276200290133717357565308328032346263360309857658073479093645106257927855766161718833023587685293420934835698557435312324977751413494342353890557298753889731916859684469406681411778646657056585217713141193990796712789086413102196392114329941253286735433266523934629820269988295695219868147834876075807292803753811380758148489691284416551701787257101128654939175074949196242597761901264373433550885296722660216155583136208711638241406747879100644399327945270647012140331416667274830812090306766762728403541972731600994942902133681938989111272954269388043085422576369319172717484394340018601864267766368069617985672083627270939250044553480612147007557254161195972858990950317194834468737889739512466504298947020210382847271715353696282678843193650602278085212648451583620543084986223020865390725586894346439483005988678518941871072219320321834446442666197104358335109167281093732162133791179426943851958677640443683226222928023824000526959278934215115319843475358280201651461721841344767417222614026335282667336645838922422911510020584488342950598204154902759043809841583511231427306440560579837827594505456556318172637284559086630451331152811828575921389290113142993341073197763132076360060036711331776465165843374871322408981623143831185918357271212253510143562230163680481718478835983816435059366157891220224610337634686157966270031850286082915654850343120484041785149158111424548022280123217340326434389072968479102557661179547141108886530196673826897368747833129643656685308513738687714640719876695355463965856419410657214560196623256819029811627247498444077848614753364722457611080861616452922130780940156805909585525441394575817561890130585309834553757279874337367358964687974951600012379246997081622641030514642986129798567470847756180744941236658522490348837628469606587872536654996561315479679005631406831321567405620993279069212143533326231065015201146239877335692192741949343800227128466342797588627039355172991926287428902589604053765186039718391686108855511221185656613288545972659522400447409973906961837134988864017043952421666964339459078704709201768296179001333552615477822569958420999392264349691283209026647836425464136253373741007867570604355621144571516173717995667943713366088703735944745774414003280717868040976644433626733459774346834433631989912200318545849238302992258526730825874634467194701208377963552024720213034979979446061249039270468783170579284776894315910902692600352959172774138146890596683990821081270883522491428308533754925492661876440489656125429593059557638497853567637325171541156887225388066685059834101312280565690021395986856870386085524529100306814401134833111240284318970297901228353494223720795066177117257854633695629726632584302121997196870455824132691270038399973953223900152002986723963384735621263604762151718438553865481114104733572730757630455037786382169411471403709631812041914446865052235900684208514679386653142718439523728857937805784953780144151998721411780173136175570594408557801342379771175143448802342401000400663129576049553375178409627090478265946556555944373876525069856876389442625870433828400365743582559901568148863512902851927312174698543543144316423692383373608194849844980670874054862847960982013023391796890078998184749606840980788812684165762697875684254017827939301707673226838024341950774394110584196667700757782046793597502534893317523884661274173589389403524544495322690219649203107113361385975621868694853233835999865716227395979590799591730174411374913038485711489814709137943854825707846600627127148335542951040191161420215392826128862236739958930255362787757519613575742102593852927576149977420327200663900936167680457557455734945539760077104292575712879984217716392216105945580636483528869207427585920837615436841315092728487502275813287277786199648811559889976288983099915869695511272528441495927114824113933054816123942078581313550804041507577192823967250056195172799104013730256901403120170352295736463379582306697450445049909374327659182863403500696727522010194456446048397893363760689185468694385380629218455458869355645188690870918595558354474529809459579747683800981706891004306163935242797336243361569302858574965474922428405760111442065537898849555969312993986970430508540465661443105943213488464986336261598784902576453337867639029955194401383960552203705746567538252270627491848333839669211594136310268197220337202648098818529464405678470553534779145058478074499314640270297730879614445841774241533623586335506102129887023824658814563202208509257999721650606259858201043322052083230909190153546344345298029724570444617064218742081154031559951653876002018505364094748041299372263608700674567397763015036613622124056505941600122836996875149428848992452484483848584543225919252849392682867663637902335973033945725859580948382633117409927122658973795544985049439727765881728152516913375407901523338475845618715384072691868697623180662643545702918662701514241374140456125366038447219413579867646249089557160508049702406628394319795164231749650727684849741352318528928400846300847607052192956392127743418462472955258548073185565141285114178670469220673819999479985518652937812947787292211427676735412401649997122074465749525480935968631113053242355419032395827583645041459312720724387617722192274153363253202793862393225697031491742421775986229974722185769390189812859557619290189070599212958559817547866935137865819643436395006480744676050271730266434076398901592477068187992631315726740795040677279235507894010154001770298493183765892559373572812097576334186383803930316402145353097917245885917488719799392669715205068508538755392455105957506999435840968555223362541250871819314302507139063043657177220928242874658200401509812497102350926490448969944736996285964916927010627955183426258113908854449550847034307036459536388221736104466645680340262323465114042825224452522214356316484119575470009961701856064690261346633345778697750654801652861515977080599840135269457414428927345997716360342623431384572361758568088829552344128379297628267806049783411493096662588865041814321144379344617049615982805884113391344982309482683915856046703443120473563010057979588109432634278489376894188406086800308116695089211160709586344038682661415072728821210204359470278266696985613194010244712074099574107553672329605185799683123592307880172287930896104181816867542566363440588895051652867074499891031447795306762681985151999891879069472275129313210653064262396707166774510595792176913755253454025986169650189292119516999852969829428896268188516326524242447546836834226591414308290265176390151134045288595707459858480621920506420318019681860537664463584981952453188070800496963750539991659215166582029357069120674848540596682565622962305628513975867706030975219333922752041249089473869173979957690418946480560496094608635391368272363941225320244132424008427903169603003515010146819061777493491595904786653096743522278976091460773854092098882115085425696371852017188492009826445089209006240090699935798508841753015558236277230428334710939641123916994319845716054946605368033468779118495360969507791985244453622971256015109851480741413860641581819511226362911875201759321585110235638182762186570679329256637373364984669392973852531100188298684052592410320078480383502840482899378227027827514925969643534989875721703549790221913935417140837878076528019421881753869243786112699027333124787547471457539741779530151380739101549260915491248861266465057536729473954209376168810840637036581017209398543891866292250445215913543982970406394359294706739084813017502186002472941969187526578663375766435014228404513724636152818267701981627485737315795718964310607937183309310890022888687125209331160080834032824573824250485064637854571421241347487769957487766298227228530881593563130800931560052474335876158125275505392947336540820532837556434333342436852951361402716656477123628124570083618217214006467496151370286376257797353984016828168066304344338093786397725663808641869753228647853192778193773028452225517014446441183828944216147502236133600361182893044221948447569589002656226598273417192089175557825001636409710896222797080323008624119265445769063428270025149643586127941880985212497627002389973136000329124791349644381982920889908781110020099620769527686363928355834333559698959723336251843101693665282816003517249267711710746908934535157542395874795099535076889707823034281398201324432036685913348629735720191747437010556683368670445946295961680989142373952321259481885573938202620035090095745236846280916255772088394686343706983221216433588429583250399235109658340073692361352555553536955456592556482254697133442987461239870134626613799410754026490594094501290029019011377983541639059654759402279678069806990199322656314225792894339375048297214406152397842271500860819464944397686665006597258328411689957422147560777551188857124069043786280634905658840837122851677176882345723636403757109406358061146271493496124317595647770718549111018983551542727377637484926248564276706474861624045690913099135440198652561212910787820790185320777369585665649158075893209801383167417799289807162539013595243316574269726107656617485016902066316379242939122522901168182555041197749559314316048776880927582285180781974997371631863939485843044789302083645364762756852615874533489828461490915943013136252821109804419344421191631978741276244228752872772259634935826521785357479139282931474014497124156333886486563188215561497748100635839182447426892868868922437068863047825200010504090348658088961956079648271409068233428880981691425932435905161047417975196909333589469501707314707722888207951667613676158457705363320989619352488679936305826644476381034738207943437096547418379705214567512255437271055217395662274691589754807949650599261360518314448537218822014852274779948993522556683669978622272998278396365594443110410506327642678811298059594225921762277889474668885824205463140154937145683302049727507516334852308932471988312940281905724805799750820012662034283201367252453179353238258437481363383468712800383881996381869322333014277879006433326464191336225179690325360109205781482118499229367334141239077968750109190886665269544024102095874344577952360503220796361492525735739761797636979337822711365585505267061838192473598890117538745337801042380917623304223204919670192301448553410494327875304547978772724047327748252819287637761548378771117796593509065698250961218899961546738740435441824297201132756356968780417802472002354799071025595157514440303407435719609544108254040410581983526755889447542297892972433823626808166742560149775506160194890733304129083786261139687480792313496334663321509552752223958914134112263605005725096347788714641054385012590970032803928777974970267750389308649282023465409084741224994906293431264960397373446244000581844177649526351341871407159806954433501753396945096070150331832661228444806137103157831745887463996452131656772246281751074600317278163719662071673893365092238902244810302669755995638052584487693958546636698237065050087297654461838562005538434806343378922416213837646812635479578212479700515370949096644976814871026941283089160554536863649790643800099343856689782618674519599295051183630760073114804275428128641737744819762638236385954136451065519511148446031510809805959410410585690810034537422648235601483954838579694080414945078993597065151997845139961904790692042432449549448999612594323012676657964856720504807884420339763817009098384569196491188374726117398047405863089633492203714374717555483419055186670681739331491453838068609504119207206906479677180853187790565624206362360466214039056217848899236297435029219665830545417029123754693701956282312147308723245336716027903137679918337124076342543641219853243752346346783123756277574099232400559789249920951444970765987478957501796168356626095523448097577052917420603437856985911204320337570953408408332738237911819313404596846474249580624996677522874561986657693473342541680841813843400979340338351517260648767090506017307415718788716503700914414246683908267125640537394164913434472797534753037834669905414417464138257073215971477993792397776898537673981667574033403981217798848415808377197091331490591338050087145456926063053168565244901608654871218770574331355193768618371141969494005868460750923159432397192219640844631652040536092153529782120519179590182699887776558140243669445591024364725442217676298906283178841176615104722441435173643030350954384844262499875707003777351799377725645320223703076818689182784095660797970674024003645488664533378218584545086519794051263411758707191328321287808977396077210868319952323389346661629588050085581218900130024973208823393759299630414488866815578250802145447833749720234218127447358156408939761676684104191418530990661837294712023636135032114655190076220838474789868714927891591398920831833101372417232253421139533186807803020961635142847567471549433211565507211481936477604688573349080828010432446487857364676846957557199092649974743774353442134324236419922419218433349889998230991921158864504263362677658542563047268735893406983139395712526782155471683071763201562344870064797801851273702361009428654512926627990864538768649936952960203365967817197832832294807083814395809039854368807078369963589543302720257831292567698146441478721931786396186684901231836234828282245403555680179117475626545500056252046087928699621268628865437922176016654728526196649592071845108725566587083750631163388035671801477198008689731728538319263203790851344242831085573269638274222351416393186535624127009509316955488217854830397640463736662292698116164158330719458213675769372498734988223857658415494040806578824883535890109344237661669820364518235704060196259272071531792902746554346533279931360709585056682257865527979641944015799464943675949164896321347976619114981166570638160450802991424614648582471749447390547584653596725778425147181313328772507475388566321830068375670086821036695070920938153333457248535827640389297981815296035864940516677297949752890427988739073243232659049388810288733401310019723260240409742156919232569503424509067217069434911987749889281050043465974437704847043485336625984878669674117840268437229273952193117935963469797421506924105738141874110092938895574685906427613669231036100897732420961224543836230050175218740555381875832320121436128328204252335883146892533320282491584397586767400421211333350985617117339590971509846777283621341996276612234538381473791706999055473922024410653567109186268025783643522331836898847193561110943949622709123908637130242190540069622854858617806839511054011762880451765429064463194813784802184653159482087825616230447002660770741228032709586192566303780115254937738226627913774808255849310856659012256075769538111883729791982758566747021820222667619308732022312179155742155980053710933028542115092330200706273914248274100197662714425788863690577594627489276715892041756908207046622770671215045207965837364628099946389689252454779682323043498145924526012523232398062895705300857296790409555947414158574934396266884880893177468464858155650140426194647319961180892876238546503749888802618933940517274060034184826076362199695611070848008388556880308665819084394028430022717721852500672383778672396526148558826887011570833470324129578270483294403054967282484862033443825579813369532142060208696577123527454452201870126496386219639063867767757274610004887379450663376332986707115234960711005182223747900983014077670593795766552709261938042301802361329938633546013544085955395146134537988386430177022623025014658026985280240024836802366408551114990036311374321125627612235731904990293125063630872881696519137906285917960322037931545842595143566388355260721119995110590228624358145434236956493311501194448555178083279872835458879223636388648547433845540749810702082328051454251778997128384851786276731148067942172173395551005583699712101656934246596379454063700749344163144063012165539526099715283550862636969706518948941744326069309988305534212789550890079609772745404478188082955620332620097917292474398500051085436405808772222397940199128669690850705677193149974871797295964976231191492153673702873052845469107035605590885650415022036258391534042469205835989629338618013101724444229755068368833428737865281597082483744783393143331059946823825097964285100137616016125495548196641572933989808007156928059739184741939775390919990929342645389197055049108400869499025923097112506661556264317429352128633992853118362863380172534047476519248892607265607995163321782753843332617577735005095368588807955249770509800256634786927675592642565403809544609978832289259819327013932802005364057961844375093094663630503956618584353201908630056110179091155337419920060337129362645583500926537861916819454621966028407957406859712789346257307965392189299315309315412003324011927700930171581531348543081345956132199341345417494839226778710772447201911212177803195214024378585776512587960839642168345515125756163388272060778416675045708270087297054176074273932736446860550638406992642125302349988155964889824560098308735837269791043166265981034026459782397292125437248534103467663522599303085561038836995360539863652614242082202048440842104994847475265641773225931641816836696184387145974695852133461271471538070389412563730275762189099141629126857109270000641739499767869564435965211150994282785200359965511937722149042608614004980173289436743546257358681284832247075763350181604742064936464462711175079484920408652934362816089071595195897592704770830358721740294810021445132689482634062499286921972971436056981611650513206117432388645403212340654367155558133985950443893020579297579066858897143191517230172870720054147732340359108726304694515505750460944726128088197086696184269616559269162917306461725566856338522706223994126287930115580117462198606965227977744152165432190634779274107056443559513053294082382659727520049844213792401766966040338503468536308704426982077531568193421266037385560111262608275131866671986142287020596303947649895988242109061325198465063935108973958673332111098988631980350664663622921014511833248002848863784447064845581853811968183178285841086233462354806535732212583067714848451423634982485037441582720417463243939432593237881080957264799490152880569450913825719070391996624512958933378424646995021885961901821944503188681802945847452696312916018973100402442877170901910784374733989560002070435391325333594921486017903037748212865650366754779099523281670124631012925657010281930216120493772997516313245380637639615918526249537936334277899719281971622708834881850922155608846052549921563653287327151859256836807421239563176958276871930178078657052117919475242506379330586294347543194392731425086870806901417270075480043817031527030005638425486530844429348758134431092406000018713683411726802500449280549786840570358345253815594365013011250303378727695165453173161892360734368849736630721572861949319256065738038100169528725441812003271150128118093642484681076757112048631285112945115377658516227861977324403799408005593866228905279086524589501062730228383253253730081468329381760286405069963709051766297085925996539659794582192576371125522160706683498203201021279896905115972754960067005107689010276577667909125777497193017542061602764712986418845325942572397252759434419531110584287203837621225124174086061635721047913250441924971991347221542428725526853818871874031899919837211344218524895790642728077672809903218816727325237998752329745999232852106279947952970995594211020794855339168405117215940445746896505207567485477100688047298206776072402293826235068018979634650197104395733333349059681837620015456325152273589851248821021149800005752462759704669844539737919321327863053849747594185440343762076919360181253691550502990582038672972339769127092656099029391788849449635687473832392857517818486246950026329525400697100149474090338715319636813123083931496984531539517615231528702931500210944158729250605847677657175252483053640341255825867524129083792435041384702191377081063360074693941319764624726154964039358770778381058635306572420290358541697230108985670457891651268992176681574134196974129388571280645534047283777278541465121379747026996726754072364498804034877652441242243138398549651372875125440643143228199596136424233837827745729460286644165543421221607087436801580338675811044362885191758678439093949167578165169458950437922849916814828935416711947257107730709978406706314383563210605367916623222146923364598435960100498723124152572701536019738263617915659883105066864411713458815274699385653913749291045923370031958183064350834491083706752747410539995686955841224261213686023998631030003877148341521570515747100022667187297318649382448944497521784297074432852090215474989834510613495722457607852103561499813499723059294875417348504600911610243188294329356019214351226813683785066972182233069329316976047102293245254256647059174772848953509551421778367391332512085983457084406876338758969544538148315121334104376866617395018723381422952542640452543917605534275908969258973312160031771528195328064509174797379362846257021814441532646533885954016877909422120255629520532274719619923827412735005125773237691175079075235094983856960785717850717600444910554917008945862791241769392285684593035623956501125363474281489036090926469844246782008466822868742072463639310993189674541782271247777437385087684584512292636386159921989258729133496824394740990468547020600440360728154851459342956111347801141555690585478389665073993746686370090997036564908960335610080047602840058897266401309190087342829733745738854541543078628352297855892208710245136128667512909085418900592896396393132632531614085292166248711875872609765964509270772290154136141263364992245880789607357976136485909339818750206998320018387341800656011960658992641753818420731808593279695443863524666538488459335344790291421401153483215200026032509174868788178327443022193992555976742538845555662182470207413420092973989258545207845200142994611686855773324200164996789923575357835535453990172187938053474429033181540332462111708191262709652475121423379357187064715785462742695885538372309247982628007052485640396700654677680256996079760481943469539742541135921723170778025280636133443395997381213140566748102030772553956362513483690051019534589885353492496756539129267318709125943860235962010801261942420026293863243630847067828311621883489735714579283370534433613474934216993216561092457482796291851472561701515557331083323290664628091612538917795976411855104909461012889646607984697650753958621091695191056461947950006670934780727755452490266845023195076471803706745292350474970363170750952254507649184463472252542883034786788354052567801010949696561189277303827409856797614498334499956550946580821639466514172454827522546851969050868646162772959192604754593807079224694346342811178789836087173351590421465765828914145458034992102567175419215129400599415784801768321578140702407979653676367621051995523520571567895047287738439044064746918995388700105911065436954411991513201036899645220111680064998188407669999492195075120327186333119664875790995622145926102252935049807404959620654549096718368266220444105017109205685892471834513971465129968952197023907363488978511574466610849226866048534355803898202490739454072403774709998064642974911976962290532067205373538667590490218161496493279529800761523395727967793531117782861868701661151660802274366758989683718865505275291299276744401706198780981814518235364934971087258872782178503469446419241342240208453472606323604778315575647678677554506584615000499941043339853027933194572276050689027886729282183114083286331249244863634976261129001610467666328957588239666386500420261504012209006257710141652633392259251051090472923702774455925992170011245016300323230501570137209136772869013295055043961432238782568439809396470973372120537065684984198344142793285438917433241378794035311932124014415305690809074770736885944392301986893077714801351390727086327558052359655779102859454289478380318937571377271755604470885197786187979017298442559519856519276807854074820511524957055520509358817522976643857163038876387672936474185605681646941104123837059170366049467448232010105374883088878765208160118308242533428902076941850628995202716528790101080038426450507832269765122836393908663648718975461494294325390587475089367148318481059031799002351803954559333791763791317612151358325042550306652759542195971265999499698131383336770230378572454110445389331853900358790103112530482054582752786417446664581481987981613120735948132882744778252618533223221618085713032196019852251859790817748990511091987634819876661950537450540719191779575002519291983174727759243310960380322552302518692831868450293427091870003643135552369299831381019007962705022343195534732664798039389051324113639321120116137466930484306592593864479352478532133721827464064174610140091091014817211305650033391549001490189247987293666060323148480667307353543664960896750269192741127008959073980178926337647430803393768212340002694878723527937297100178461732214573696429336058819666647441726737464531505692634697642197960628928571718802672217326352732161994763788336015365466269721604180713250055337051641190686812412402912292551093001203934760721327753038132691451258539670015575087896964321149726660506175042715039369863882662784390699831711383913798194818326653551251968703631672290128411905459716885336405716570212279864054398564526380351378508062051017513944839119059788310138181514007162218312528024524660507916573143660996196650762599222064479102968301676992919222957228742694006901903617137043907743401054369330048835535103005069400731172825303227849150472854588386756120441008439418103349096819815325628506352257882839062999962913162771086900101390228302878041895019641990639392278409553313839357440820885191729760657062198672508964180903635778546633313220264762182371802166585932170169365673407854533510908131434089366155105143011665169775217798028849868141922229619522028267481076184216145005880692345016514669204769766574966805013719443310741527607705190660367262871336991555519331967857588881201857470174392013496794741898154862439708156473817358048984651844879747279279437166756873613893200835888940947545483303914158253673644438861414957406073145238080291230851551300169295253496189855267081189768844365786047807867113414390028866477415606821925631827358737185389310697969030398499777618211471096494458039096546734269060301966777278486124151607177604042145633785647408687805265912462784540329384289519606422127188160112986935194240437519563791893234588567169990035537150615399581978224464558578713002703661865947643804844807093295778205049623903529246610435705381010945568426957766503103503363010382834258315231011623807872733926658863529651683644202714258575095541258170904095469216496342297428852725574707849924863495356927953292989497540766638319231295593284924057027765582771086289816686074118835920308450641636706994747057507561794141868739785413010552730203328366732112023221096121265607717054501245230195370896618802355294544583938701811656387745787608846609715432664857048920222594247738026131836061816454596538374317398785706825039584442946304118851911217152145812115868919881366045154452021586940423050195696131257733818317465724165939896917469691512327265423346512714522611323252686939643446956943655094264504412215160118134128581041755778209825360085323180159641564733193646926351140248613129418038906592219381246554779315098966050008274503086348061498426451184744539268519508792607251476956579499106773465024761663876608720311460773288665561243112535509644674339355023663971994472983855849600369193565797439813609171828989223107529522945399426941986009860418587585321422877440337554885131089279449716431318739051834183923002403461636791265581569491901888846758291697451419443580745399695119772051494762544337484070483647939419176195944850278014275339355691119513623557304938152836236113691647830100419880952144766883174606284139267807519740256928420701790626799778092204892182131758794837722437856776070225571851679918226739927151890508657312886477507447010005096199605538208477946386061472615476598488024870475825504612729847684388424868707752327359647982411330852938448609433215177056365057640955383630211535100575273185219723876862228747441272781204946969492891169863622888366199024554404766564812039310689261446844526895274407235042876897406373731710479289284148978692162681193075961666595646751273040087443891156456863177697380492007972278058207330533487497121630745463684814914726969281733008635322302607168980385812951037477510857437809420461861423713954287505088556285533752277931679699808540063115382575525736395786858952946564209782150557440354743228139009140660761108954277571509081545715452250954644357229851175856432694120713870209058253626510110644289001279127479997080495188080334960351328750129529468323582441823417095841837556401527917015808987897624977935815918674798094027388953889869440918715384722588487531906431284732031163001454081569594342526419896754687830895619704495864972522800217338315948361810923912346785517239889901451785602362620712554462454399629217317352712467924312924200220071188626593289136260312462838168881783169636707355302142742998781805466780580767180041058910235767303440854676677853761205575592433925797939526176017766798217750098231197112627820711634066076222492211561705319884506813734125204157522482207356804318658101435785281917109509330176424255930586227068331541962132987302576246448583968352676743517598213112861293562570052098643115505045897975952186418793107683668765893399843780610297939739859387400642017993902732364821940133833392749947725727344221529603862913418467918028643807251666781563581753605605238072731312531714008978150316049638290788625609491358263778749296213786217278070233762816879641774824382399400241607234176666995186781567317231216452297145653483129554801852052908610753388505809089300666303430215389950655254459880635979996013570222957664364489103156839602318011368911055053822048210508604974289431951129508049668031389644615009350303808521432602491708372926377857746843819034822823853965481971351152263767821218503792675750223693235760568344647991767077326549619102028853722327289478927101662359287476380459170972167845576102104795940013048826820000375168836739084781924745699058040035039634016931057549728116486081539477178476497790264006896118758431864889601034154055449528227169640662328485454548854303214252943208536041058017268537244835779316942665172494827008616510875119440942766474504377652154794304740457337543625316097532776479941524851677976629083442329867660982920880872208038699735443553576761897078484647533416294698961399669072310718901386189896536159758375695823379317031253617442264648555509018565391661070324357964170223801100573968297146247723734496733709362507858564957943650026015263193828703810601186936120389146852914910344882348038669093504173440911782379926903564452116854186565935413081811734397116444084415146270533005987732124099469785770965067517171201290575548208242504290216415449884950745497515237428264729005689873176607817871134176398725767249442442532832742628536296940204653692690056704080993818594018353358223038883996139049327648714572268804124641355189593570398345433591463680752111069056824904749737905252440420520882104559796628711629879152135042151212254400007176269197476051818408773089722672925075974582288482198710186521404702488415964825722370894187761136843505037391162591004847519999017828206667442137838207227906219285742156614504918292637188732977562479879198528287800187886398679979743118683197919813827468090821219069730425552656096510978082282431741959441168457651788090707025402127843725281416005198315166345445407524559150087439167813725377106113123846364886026234335153011459876926298938661072064604337828991718384913344116538057866772677094964579826332514042303020667081152961773731795470616122042825473875312732819017221375447312821647782950475223446642607770628993313712105341554503485681039251974210977878361047888783769920569760999242140411164723910718607907316732656443108802683827243471915904925842233000794411271407703147248099860332203879262652030145374038590522957178144208410833192499216000666502707463332911434987462500402177356792921394363086615419365253300724997150272295220532472519198973909718534584354846568943836922743964284976634153445333218193641837853472970891909084629912430147009883317208186572196762317020332487652274080017342545201552644330907988593779267503242080719634717432759753221396846030517458491915714291818773747876747951348034353130878693888995002149594107160782066973826708022879665903884409633344042988236126479947791955664559678515693796066649909130776602380981893602438827255972610190157659125500194968231497178411684448942233383943070015067662047801154365808290114913048536748851596834719052359500568558074252392216576120898268307380818653838242029572458931753208411418840481241255342746025278857466959392828976621338251990603452184762647372187527616314879617811488400533686678421677084649845133777947244944391579419686169698706967409037779714261421393040265615609939202091583961851516947689197873795390658868537805379636333710658189658849054577325610400193021951991054950291645432027663921811588455067423812199154380784077238937368904689377698919236087933493834536941163906525444668199021862539796542624699951274887492175897180478997960083699524481352411216107461051043083912614648445400948795885866030120037068291968406041148085808442134971993172016739551266080321392672518028765747792413286331970456298842246439300460457405114983405007638975868088017482811109973682571741678332682168472232532974172706653432130633445791278352690317802229972115360899744173480830345305080383118671276527337204798826329771240011873368963776582475598276140415435677852020841220260645046313117257234536971135484256001441109526341927859011281345453003288743415548525094400669885077672715101170217612425513336593189715791170814911520318749344847620448065033648281092853706527602297907802416609148319334549437517336821333563359214048089722033731714571270941913245406040957826191874669468470069306529300788672548415097561392529069138630532044847653705194064934472410997073758922677929349699555245340355137721737814540781376628967368707831903163984291915993759705165936973491935036694096466622488693319645479147913038462712010927315001512539510824592644589265759596442314893311074940254251587037757276095760015846079647734020775302354028266517096864177244821410370171675111199056991747657007622215259732027610417649963821149283953824531221366433811128217222739517620184389137209540045134174444843177684896263217218874814966394477735460427847183166545258984252613094067832893287265458948100156075922772387055665307026015122688749814263336424258610422914961796945597480056834397609360229051823998362989210735121051434939386970180874423732287048817159630540463110310873520113150384385696131534697865361551982867095324100959651881769598600675531088247837986956259368192350194280685214192019039406397540095867706797561981770326449222770459115407263467099786297579711758094047673035608030999354076049735603185242644063942955741296275263310754685378296643086782477125891407565317880244001917051183304848498605675803424279501268026538593931939927715502240285021681021149577775007980991119455003360818386907777639965630445079430620257619227284256601583836453527569079052330723878432711193413334329887251489147909754710178562514075488339315984733580085114440780652898069865189174923546101560435979172615763085804757321422061289251927817104878937678883236712057433300678818060922456763360117363181136701243367709085539342838045422752137538202304484594654241547257785549446328266007406950525518749230698874724478989668606610368825444752578009837893011986222524169981530553874352756580140212923774034680891882123077964224700788543230198058300104325756862642942675832312802812087231813312668067797141633179330793643196467437190085911766875502333404893411557242121504189618806909162327461770330932189872591913561877003691457626500163940849991541945938107153497356441450712412620521678563796281225088713621229813138797540763010863107457588223264801992637110752141633022681629561006340257382147485287548172247587842458786684671638923628030411798616234659065033851138868445710210276891995395335014661319877375008304699828692775048882904795870038982009574298906981884324975155083084909592619150647292612678830606213269028940632395431988764894679747487580208080451946693312415328046675127355488673287824101622207100313315913166055050558929359144263840100460574258541796164728030315512313743085862402444371364187815151531627660825552823321104116610743085510949512643592093292985267029810551201253712247791957135159323041683968432865509559100120179099978567724400917346646391968495727516149300245645828062599762254174558503612351321085761786265347687132030489918117439638821957490402547411508885844841897621432483686718267794405643605583870891669959838977347576128196328797401757717402968737493765445133817243144861900378452135029131439433247501186175031887610586917703356585469884825438940328376849099857917064183241996763302517098398703655169541633421415655506570279034296283088846460261303361493439376003374207572124008384504402464026004459138977563883941763417264402467847780040355954519663316897301921281279724214953001171786585579111483740706826979968809723639985064876780544148657060891246306822915797953640343097640401736025247838654566447265820594668399815029093906913138322420856422421752592842957558511644315961378565275112955973411237830750978569721528465488509716335378632206678489919139091489202087965118453355910264835479109901269071327002441413383077507246286500030150179551441838938267564406028553533977723961753300559928138823499783239484769881686445294354064393185883356106083688216864797641567459099707512920657845505473973748116753177332670951426797142085651570367329729781639380641861240943238413731916208003573928245173141049532667384272618704453046120301280006267175224042170159068739699279346667274149015711856407186468496586716190684069914406859597767586373755114518897263335797371429559061566796769813323498376674692934305458189117362357445050186927830069296121944096762069131727460240613301578180633928744768365880721598890675004096298243220807882559386850808390848811535271357524152097583354341691343607872802920234789631075525230617227571045154187215477539263340293279498382234632528561077109763486238690941314920317957173049518375350195259128459575079765934436538804030454905467968565752600710020552282170305155747156963409093114465602107397648355695729385498159964720499582663277524165042987188596556021139236121694097121021669451617314295733984099808881946210263877497883004709411424992041992109082083167648153701281798983533976916403571198194545134288691103042136919730650978097817711273074704572371948047001041029623096182936505028945326462950305320674440497053144677054888072601106392896795627040246942843184642758660589793357884430257175613749480670761528252311689636595510714537257614435122295595639178155980628900935110314454514957469100951662288137374057617953544327157062063820719626579155009169432795835699967039437111317983678937512217876363336013236558031049503173872401603894874918535816626882055506251585849873260848076740166179200916123460059076490096469014896819020713382754485907947512815191572031103547660263430651086821987896506678845758261004204888447961651964685193051659300111475934659219852701599114543034274742273463940191252761815884570905053477238406824566417374916185449029328834149355363937592941724066082941654394517692343332501160032677159150336747215082646783374051307092789394276238939935687516515632712280515902280574008438697603738426174463320156073741046423175394659397141994426222021971824445931339533950146721814831401997692310043317886227116949089016415701678633543930299835127814941677683417970619801522188294953179484790772756098078698561335255349343749219242791200408012888635408948853968494120390579867747029624958559759382998968410687714359954754386510110935237921009643152900817072250447405957505512183982918273037452669871001834407397271088334720423788659680896208358446488388430246277115902916666268258900258381644724870566566047284079692691613503684732892469260947199831433553555909221079590932506372790085697190078328592465162065164272095787632023059737711640103485180842293699059388030870333041140630874778264058873167759410618445614004523502261341302973180871661007322316953873712304284549621968776881888135048810994297647681828005683849003830349907347895365358246037620170038861556967046511302846119512048437653086976474900663334581822847899005282027928536748839280569762341137655746626407739094416271966534212817592116408239169648022023774832276689479807528835339777226086710860839321841360809780656500834317773426840804856995834933240481434053587676407570746022047090156710997521502646515805697970782145547116827747769537187661659294333759719895699236431931058051350875270613119069064246136445333510423358734923861003713421992197943940106364202590105657629107485739431323874689051480797559832536324630562240257470317867355175380675401441408254370556709073850626334440809706736914652056122009959367464555573622650274872686495529378778637851199526967667455029381421568756067453218738558556862502390177930806245232886574162026215164251923003332368209635332473579817798861258287050741049999745407904049854303668202804201505733005368162380394406407667123758150148154382769338579146415319497039035790162243731976258133511303959716892836070467243847410830455208272105413001866351253773814056162422059538808569695210537724170063771101141976388626217796468103576157752177884846357806488894198961400112253452690392351671889193295463006493481143290798124681548438676370603789519495150368173826312812274579915178286973326470115238667775804575859955704597926127796909006631748086563385841107244188971067302179120831688557686671483187200311775548808970595722919110031589132598982284367306510594409653744105441769607642987895472622387488902062922304228469629369608055217812397850592768957694830442158371053710199032375182611218292099513364690942830025209576256888573082946032898759318601582686525435785007378044930578473632850386923757096074345400849983960696966570779742628178913352271579550697251027573847654304096034766791627335926742883482690341715571520746174574507948528008281877108673674877205596430588175227831033299435325381800808943531245251187277342997327897196964512534471009023998589721869323429717525257181230097078903905565302742529842297590247383484427293579893393062597472447244617630602051951408742575236494719573655235013775973957753154253388710165457427238316800075658383384949154347681496968193948126582297974968645299508782315270071153552516948360632793539108995551795209144005741640860836386375745288026640771527379167937051609960014194924461115288045600981617138240480426979795054475665521449682963656197999100939558652147290666340616355992764107109751283503459149362541060706788327959728686990616953052007711991721087565868532455921766307213218549656869359046770186176383027209080341768529577776613754130142064620291137830177302774998565099734447117721610296485286988991084635329047534654148760600982796607032451096558075368077177610077352458790176987370967573968182811672219605514808467481470828938591205936530402950000338461692554216949502035257302202551867281754895352702003312188134576832381838293573594488370604411128811690735150652727906751673790170568803716761377338473105583005980581539742812692182904106567372968302635925417447136823262891779488260115818464847016544510092721078912881912033487453940071313219975103955457866911500924505468784026177012876148123793593487492898523702483959255386298572438904563890031564850924041689964562407887079867421807362696746214729382077546451928950735569135396901455723357891061013106770620842339493233696330161942444551261604504087865254622143581422478059217372472405076823401092674762405942225690951367892617478172890278929396815976359553909561216573877128731226180906366977155399232070234596910845263517281306497066477510002266504968950641225547495493932228384094994412194848101920170781261932490361461725752593668029691169821586035405868278440649976667657395550020819410023505449137904525802155415884601170137465627444626881119857072606990258181847934842803510234167730368655739117518519687246908282313746060714424988438461195060918828495095875373842481039694201545924993130256702267801130389686388734669632641852154967796319593278550688857407928921633072733735457166245924001421579514132052587976465893122774746604759692155829796864427546906252161151470523004796213432310992739240481205254953078422560530257326357380671918254310313214142425551348456434723884105895556786258040983868039500595570793806813181958671240528003466019452262954534906423297609502406406384546760073360668017721636607573896787571387018783140975827145163526697953153474746395336397540507468072673078207750769692597777346172088108421769085732126699637268812001422098026810984211486913605954431574741828655305205905086015241296663805967860951998989058939151745937575995504804344579195917029360810706852724535515437994309165143131198864746152687920966292054645274626443150159230935859700324558216219941128413926940601549668499540862948957786249844876774505449669128365906888614681855610405040752069091871462083552448476112892884002162781460905970327735037327350236543192162417190006365990931192775587860678259291288125676070288428197676506881133965360031447507133843961684902053007574746233187857240182713933032838005503886989239748558948651020090770829115687223255359308441939121137995930589869152676779117596494562755607500485355970940145436594691429959864770832204164315733029267810458686719425886928169087201238299752578501618286881546757358865543174525473993684403646892236022173670466957587784421916651539625652917925643456931576378564787577616455398736216243865449269465021034525256450118944662592869189097850895928623925055264214528087721381919385009764991494954616768388403386367096577552472391556774703115825932516579195817100523264423808174746073584882383857940745421981827700521233155693227366111943173894393503106047786479836908536659447130497846910328393596054900036054684811486156407883450894743052741314525438308677995821495796772824781833137513177679996120837724768942229511410586365420565409196187064901269981703940218708737992625612869969087556689693015091289411980135681768018633713579822410652320869982017939816384277165774450183258386216304292216956414773608780967697498531150586289303473079238819353085859195050818831966750993519765543210405677821419666916237911710429431108233548295053181882899027841683519085667254004181646357129481075464138856801915373757300967500396830226317866859099302930553285153497263599265443351509308922225506593018396813562131797896482184454592405814073841971131556023425424718540581189026891428620547563339277503060486302928647639291198229171317353256987069359897241417568503129773344333034622377158939043935496805898908301992269182379164987635002933613276183807317004603315275100517844762047075816216620650949637967059881235217000949473283967788920495552136317950762903841435722824567856741087479490747842905146887935384210146717548201070164366853653294246099041032680465691010378466680188339229333287286169224574494548745384939468054432184847152677561592930655933045055552830024589006426422375558568862139132686666964522124132511772993892367456844271984677749826143233238215493714500231133885676528658877502552805174481685756359227504669874348941068607176431172001950851373325170283801231265117376716785618995895942355033515152354163500378429194282682485665455618831723108572461351846587119267599831363235570506261968986156510995871760284454289274633894003233802885063424449298813672473719196331210604467512248949101915342466297408156615219570379458727742189383796369943813634569861631337380428527599797252959627789796709386825228883788769466621058405924892219131710073189043032898667537767526406158161918254401666309153880591343943682216844572706113679300269902455411409317480832708584787362826220690681953331669425009014370460495946543728045573244600721902895741025149206975448246527544959634692413920050864258198182847605807219930131780141225489383310068521811412558064207531692563104280997980443410418544017268345762964283585683210647247268860552866978979808296097862148442199922278018273195924249442992918550797307586667791749950636970044903439704557110621091738313904175462554751668346991491784023589060593367292609812459126402958554567504180488957333763563442900011022887725577851953566152832636499945419430448152500545260310859460197744857189515477741896582669399591456960595246328653541503018107643633454279188608942816568349653685370968598268855569268486644222703555012682983651657807141480236618761942805687250402097237743118892899289408896262233543928672968753255707232164429301188123038107905964451597070124738171590497327969203782702637689765703244656432625379475511378806503329313647308950320520787756462882272810171677402912017812762374348714478606358161434237961975323627256575414444940380534311137983937237051234498346822186463594789187914626912675368576283152955987176253202019109436732117198104383718807276292686016419086361411333649390502014597014500376249033404198108730192915505821926504608555024802161927024079363442369686202823956880794023572602231527857663655227710249526835666018625229149842642982334509975062362279826868605048355909873129583692216840157163337240343193392937475796707662780370874226262678142516402171340250886128688317789720221363995780178203046834432065193133901251237049209954747210423651167478897741703165783175484535572595065872543186719179922377846445649407055573483421573532810253035126624608186083981170728246747915487752027100281437967891101330743267408128683810827656911087527442315966220196842094103173222592492433283443939411455258420836849173189578332176157168471792340509027919811386844654213053540529643159823867240621272802615471363390256552600494662156231858750097823213200578180745586287752112262061313667653309340756393354287495387703035577213661130717191658510661057124047659677933544508679627042343242409672250386389109574001177273262986159191273464372683059289891227947812514609592139963397773902218915070860307917981012038795353475201471043952949117473365979413079975437221161795657102423256217372448309017781347760120256905670009319203606947048368215574559577176168046459853837291018832534117996581122807727618475177017564115784268197839803167922040713382169770636298117723412312243185800959644634146730414547162506023939807422024698758491409665791989214406306683909186322936212476954798558793223240675513380569199590533744601570725872341743256305110369260981138477853872753709422424180972815994540622133693108328327529048985415498559782392261753749079901263045909843318780406678871215215895102776424250889983722747806693408642394604892241410972104927458973714811369250054654955256151514056010652223935946006215213270427012227292015878404766882111964474448496775500057755017313610736178334240184559301093372121740306021331400419137559986973766188852189712735827915222755182090899827694376974590110829220863997202072086534077345338319891833047526331766471841987820292190328563015677009125551118484465379067099114778501660846321664957030152361878455390616342724027963489424486278294303624042929252319597819261069595524833806574026833903965190034530247184760492342609429812247856082990261387363655211285608706626651695562063639491935792286812523540395269627485330646026342921587868949352764460180968203215663543857868620957665756543446380393603769592911800956327712029611737851318573377997689946299821517059748393878513440747415774024157870225540349804226654518816152030142597198448089966110047296754454057081275615138912436822493634423889372193315381418353873050700678099989437490425471019880422489223905611567903351507559685675314677623435757833225233357891619326252237088950710676905462038952164462606092773058668652368768101891153174078062805926281642393272042948762513830085650474585232609300136599335044774129024901604009496287704781957773099444926194137857025542196962127411681762749096841114166108348270655171341148750148710151701243839277570092974734615409055147759084886013388856459372946095988579172904493940071720630986746679393022294850396152613767986722150474760174846274845172420917538331650798447919244222703402112294123320658932162995628602138533733428984656103494673708993962481559117715982542652600697403530268172033903214043316076782588165513694123060820440801709037065170226387167398691488172628371065273559606003189107247356139368505393277968896050502592046038064409143908549060840476593899045355113622053899175855998616827484381752875651369319409125864552978344941563439265883835748156692994663455988604900165590281205705146272194408774915907518471256819409563003207107616219226524142110298143163189642632751899954396200688800757300123189905530032215325147400728944649340466545953956360443948639014176434782190051612002467616677907669021606583508484289454700892125002318850061663975096094349237034587880733049743726674946223857078433987466024095707416148280780672167420730704412997621322347547737867049658053615482127388575036594072460831075594026182440277821823356570512111189832926481146343136280195533865742358484623434530345934573722307403985776666069615825673702462481440272544409127439720151643376563043485332065906560066463343464597071324067405269036398386868204197265957000719187805075072909466458521992248948868932063503579903496077445743642619894628306891626915219032872563921307750661551212078464571569780307833344416859606135668507916606181331690392019820309589564412507165001898623721231136961550068256115573417081161199900203135111827907361142517692065009019505742482323314918046174045615972458002887646347039872353496335085453027229394241348700987741094360123627368662267929910352146487059049141523561650678331151259546543224250167022533448776133890134636734716856737132861714219475155503287187620443255840643503265242500509778840658121663813833247465408147040119282901072956937688511965654674860941945504635496939363181227289760383986131681146188992209374091779388975374368591908216119215482315371737546391670207461028454389697863003061072836675827132844857697546160162155233034294721439547177480018258328448328611477592696323487425837790153867120535003615528192295517205133243510984420634627116434129016638679915518973016482589387199910200099748473499079434346854584236295148599667893994305464765323590941655208282944520383716571434517280792806723012117358407965901184568178940749310992498440862289420554180459452046532477561756035952821965946802728812317674069846416697890044952294886418582126804065965972546380477092862534741446628046786124473674648314581843526239399258886898967510706628490021208171590742491425010579096054665065295339448510214890685804257096387964716791594765616529055084994105905665374889556207046289060053790748663819151415267995759170207242499838333055689428643853701861247515750693443087977611787421605311191442930798092858430982209595972854831850498777336705978333143805704595400865494655575726625257170238068784021273121337613966984648958433197194241606361293610919188324632331203386944048488613048340548174015607074882349847177624482371276533644682808889165735765024235550133891449387936351402626248662506167384981759856430335105312173165078637895117795304571525190568921856379251614070000236516935827110707515456111756265211717720222379786936281755123131021923968054792873161835255762541018938480297241939655408592527515249717142962450920257615725556481870885314508255089488439392887299356358219313238025755010792034110626384437164826373123324268701723762085019563800232902352556284484913711007715642359795925333550380235232673390902822077140701530826221526661216929093945760134633690507745793427432770581131308368827133539121133043727214231884404305990429483937339951638063003356143259907846193214838749356783776259173839439570788002235848070685603171533235950333919129705622771229500383489623908731264014091119732756957041290847915610223989069825757076968017595698194187323278355749911611803033672582322363906791541641731308083847860177015210846233381843397529000803715513260723456939841042156571452167622885774044115682284599536699036641460920849721905562822204659461967523726189336394386393459928322871069969296167670837679508432609071085020539231963174845004365749546851358136851816118571608414127206317291739365049829025929828071230198107837659899535050279507044601648169217646302666902561559805758754637158725000716060735639243027588090406357568749370716252794274622404179975621411520553505489815371728570122263847924977456783007882136987936768161734876064158973831301852425765638997355681535404371062979043744069643159381322299911909151894305791822985253208538610471674010507017198811389119096943168654636342172309715107861561658908878559997765043981193219490606160120445174484131216439674149480714555101860233733870508662483031452396312123177989777245740473331709309751157740396744028953210919968430066851641492596492143128466042441304106842686078631210430113581024543590795549383121363392221472831850476845444915497278441545542481738666703356595457283741339963432647865183207281703185612174862313534603677772812182314231139924348789275735967329607171965646218219166330465816878149305705178846551225968719399394999047369425658309263570226917570184627241853844816547863313891068360461303439355447551127184723038156878582365956518938473946749794903118195683418908466757181057123714879168557098874743265777999999819089658343170808376109398895816016644716088435723714875427363223743734038798693157809815387587129996185903822137541130809770717982886564527562275033740656079507725058948734471947700604604829547853754411021235161242139080179760542306470957336425176581542547642789762055452618258017905078146966872025654943857307444846408062422673136181665960714148533677793184739704185516710601522916247584628377055303320996946637653967080868934137789120687761821202864649834156573162477475454336992222461371477656580506793801314691520071313741031011147514492599189530494508192109768108246411950670150378095339803763759510363247398005800588787378527067855773021734248545076375775509378239450188479729351028835463999838222173415698639059547856401283874156241205769335970138987564083673109167087885440653332308539818689845261041419005126749321344579851342502445649340756599540949400759995248363313488476347792902829103848739439301867602847101314066577471317054403997324229255409540502129452593941497900707430911212080125779345596040934824510786781885010782763759679339275112080401069301463738394761655453719224546150342890581847727345728365940750696106449009681648013385017635389516942404840115371727473150918521111591822819999785557597466273058154168124647923091728894406691628039820548139388267319955038204631077721556944962692015780893321774269445840024392407503893585824084672996264147669587364523306667993106915834363002782071298401288827997933711844404101843374295603964961782867225707918722150157844593855114414029121636747402672299025144700879734038131124932180526867004027402721041353869731529772052527703966382620045463032215864581010984208088328650902972834209043147969779899982059463681545581416143086353242892651747977361356778378990246911090478107570652574733755724084017227657018857185298621333280973387012168442835808980477149032342397601917876785851360959442641526929141270365710291728617457576428530408647500127920304675984490461299297688286748937357054234324529199340219843229937819884109857073709007215581102644146676996864007786575165434708672908020681815863805777309769229372549437475611484189615866384647735247636780725127168834647703578102132540062438510786350934203105151950154126608206764916044075994262741470109888413380582819185942760080358300087288434737897340314431788249399282147847067482356879489240792474383710990785441100413818756761073818136109705726630426249603141018605632459450754808921171282743010582692377928217037268323883805430811456563706052530368368371848076265438861178547687781921097639836656002171817936057357592760229329247901197795519650770242714676237846516543525173933254661835288203069020995381738173145221151383168912665065039795509419626328514231663881882222673214598977823393325683262595294332575198230874362255598759611355765207161254944371828703079929903411335304119892414749057812990407583859283062438734846789038727096642368582362277795154190028230302937568754937074251605129615740550160414072260852547116173287356966025935811456512532989577720331349415867748915421372874951252543690932278581712339274103214233979949541374285379939718468933452124163375194075974463134394346519442590292483023452196631159048161517389049724262756093490621266755731446316966343542221067309687707046547079616230272287550554025805967188865470219033310991630935908710908835541028868124767636486879194300054886187825159596310601670227505333469809074731926742294033813416187993025871874629072345794087791355388696925295155807668673228810282585589759421281027444567429155224068857347017072907569360522883588730711508081775238307669941175464370649897068974718561877269861147684617282967507748389547137320744098171213348631139991067334918800026230486519161544919646723466787995147941158187629541289988962818097856027567055070303122541159923354374707374830716486784585352277871627821663703011514380384270720014519109265615167902504318437691016855469490503789820343561999620030346734502563547438967017962907951129099287345104629809000752828565281455175392185790974670297768225837417688505194771776462118151743007762939226679866040035652881410013208460209868824932577580851913614661887826549605233577738418669223562781849635681766269417178753142532959807203446967156502612820130911210511650151330140553191067799127142462419754218091875333857434950927988865730835239679432710175617541382257543640123765472486324192174017354868496626864045720582825575270726573643559506308131606098152106550928562631754997902618422418423327171547437076057719814228324291109508784004200578995873432617035976551418828257174236669976858946033050126622395071022744162341008325530295869412040573359416618916729153690977347378216404121065862759616120692556503897880220854931639892114807551698347856479004872027111303637826319871535473497306183920902041996205391755825133342304678004852233832238015576860101975908404553277483353586875090321855803397251598441713354392044806404960397244632622162928999283976029795167141116132748004561920253142680430016083543942973715077692533944123811126727741930965877822499062349641714568536240025881160814937634370966988678374792785166147192238125321242240140924785606751015994005506882523980825687298260113790704499713283394140864296457846332077788687881073764107992567681550777277018837368291242956632990023160287955621425322781667944808864009773257049139943586790255957765845540746487943333267524221079495592339833444180171037773272942354544865126300914499922095865863268613731923335980586035000556775722762693900494701020566234615755111524911907745864657330161800035484910941711734530450633952584400288417433123341440241667116889725265823655481416412697017618014710768257715314434387241968970493593820213332139003250047716882015735273588052041624843539509033430208980943431752430209029826041025442384638941027109419797584791655061622116439531471891231690149738033867497615307967413325539213623087607619683854622277994090765184712408598867118571846076684677203581092796670599873080134422736166730646154077522544665872013915399234402388596140463194378017457421331061803240869924180544353425675379201029263481928003827221013960161601939297350435796012154678640394931723990338455975809907780337799551295401794119160348087589727345944829546366897394964884148057869955197215647676412774402733728716863607210767207349767628785534054935643386327120478944201391661868356057559864682148995172218351529863547129691586214172571176358392304741452409084253967084727409295858609778900359028805921079767731813440413118803097855817672829505457884898768791662255894055382307997620907482154841743189000148909109526146441663834223949369376996509524272377158184434923881641236213441926803143820201400283078092338893138499628230928523512384217471503600123207790638278381746132265543607909127160427642366358388895970956967871994449425896513973779337127572653373288060770823672312473588344424832068610047716501003005462282893620139131524178961853788626126336181673101130966751902668564718648537577302977602758857457880419001079353363458760533369264938040340323469812454434735262377206546574728272256641235908691827189520515483744979593958812643170088555403287363728581228427606669167227754781208704440994186451999995066968168714829710581411729975197714110596441837865254010787973813884057543551581759643117482446678460295351375494460068890815325156085500031209513958446337181515897792952213530733316741247623472667505707425874317990657317782280470842759286189695831964998890175906646276369824231747368211671224011402145087826335273051313095966863227242630681819929444512685070304051818511276887383272070163339330005871341723421039381998418911035455431042583370319897178195873628602032416580758078105834998809244992361122372814790873124314236574503145694875846428259202122091399958755046807055234856474442368221441573592815039329288971726810400549632795281127001738181601720373482656623291880531196583559317814462127047679052225350342229017731210582585079810420478502220723720449242948362613656982913743902318798724385521000002483659809635420755158036387189185659762028657190749439891209225888925431077603507914781295746272955314509741613158228479590172923701611696917417525444123742959656147441807071424742129036844882906702015988822155544564526666534892709661488134472130547905849705431758217449372417973945889914192038185563143155275338600033228435349998128525144811262598352477123226984312477300196811035581371664370848732762091017826091806604624566184419763799781415553996471785786264845959946614266827545842436944026190202530718345610209377792318632545492431320862140679334569242342106151013510219456086160277411600093087779980249761110898729241134371995805860444807200887436432385929666744852388706146198183513320635076008407612127418867914159476132474646215737545017300556964939068699576458583391966302211123542513442371572155026936281064767329708045007628716230463867464428157049257095477352514556751304090032392416098307248490062858722466350377375262657772224764935474669518506874114824500807819948542562664818032025457677921004168931916265216297518894085631751744907227115080477443908817458648951478261767378949956042579370463478700849878306997600622836599630171201963031995723000964434381914884386490023286573678728367212644048454718295046921677833459239830432976801274333666740422098361715949908241331152230822307822557696117075707608371759303927050052939178279686749572755023374995416805419181213415033429918588360361988518635227301095923258546171186037720861011477405166107534978651092235510233295231981919827150756072821874531552099635526529140449025183221154695994070504462923650281645645926111567034110179185989956805123532039707108770440004709310210167462182974438967741865654611527199349779993259278624326337371972180552178739234195224017541363553959894964201049652256586557216760813000398075697876636694973985932013578176341131029151209560482219483787590818539106238715745805096500817117681849148842378475089677320286298214818699796317290217625496791769301440414783609015083446472271679036799386033815878002136640168073298212785004604362915953259723933520808589324176515670800340826027319772321574860482442683432363688796841718948795448481061890928175501918232382949206970369785497552221548153888617159539659844946114921616317525701891552153583603376412973248503444446104779046206431964554285410545395602837004378106986571336290099929651038119181195919382259372514493698814992256695025921121213436404727517543477309898378737209503220947597886840441047145946161852144619593799407107964019225074245962307637697414558006293745412624720422466263842236784956760490166551358168133466552430840996103270341808625219254106985558462337171171748494634416609145142110923640216952490992051588729769807189537998628680905882767537768852567431353069779370022042271946361481127581990747037975678680394174763298854214541275809323804707245860836592012220234271514629299802648538130670247758262845961187361506894261076739110430958684735305855974398159799665271337289245399973064065366457378850721816145543796345518518128754550194135623751560533870106924871866720390252474953031500261741480755623114186770281555133328996811165505097966045605607615576015853993966391250209588145374148786302936863731130370067777627312255009797462180957449774331760842553453130101379700927761919659030527377978094716078253907331080597791830560950189755160688669365651633778699703691615565945058044503662228563406801191746473141283796203660479383170760021569363889548307963776768510988718232933514612822905757794444935957944433234879824469285220097714767960888885577531044986716999852001138663127061897224474717587267301768767386871295059580643437155229809389871018781802715656260359665859063691716517594443468985357853175985985305038840738982622829412617098078212174456067966682861704773873933128057802014442276465075022155407137783379389564756657375950950232981682349133553535692373940944490178122719425162022081136810827679233573016003968906841150532164604089459932063607151035062364820727219917631797145047592327988380204212067862220432380366636931992703076845060690229728909297443470947870546166393865069291387106037758115560735356513327383295964518655127624717026093367616169038133871081949559336918072967730730970270190689559640868567269810846385514607817680402009198884077016436078512895550816536222506847626177536669019921050452709987716745164931426107171676249380654411476781050762789589548583684202530067018345177916145926735151866545086366427652428192444105608791209323407585359384325342050069508326296443698065101220627528262046303220029854669659290978426480687426792440577578315674694949354542003445364518881450402332531260638695580169126890850281647851689196031630563063542726990735355223769731229502705945451449039309541585453852803111073669247188398448188864238264977386070596703415094961143427339768625234197692515645710499631398842117745955240454104045182058461419615705691014383680951789597477986705700974115719428940239446002164207337647136351025543504713060413546360417768833751892273497166723437312352987108701596506139462082878625977402223821445695061294360727242484573112388066394146287554848691472360115838047204418524788572084844818678133511694157017891086576953011977526164943483830794517618461652559435541942050229824981163731700470791933479426201946809465488150918652935439954320302974956544031823377522520354722321764312333182517523348267367017404230040227458378093062033675062219718021985862063972200549225836001119090175956877298922507806412782428841656361119733503561981063889269846698159936619483989218378145561959878921977321595502934023878575755065604942954212147048136238715882344540095776727161459800921208556854162150800137093733864786628130208748318912693316794570294545051752182477110240908517792886454430405844481207643473324360638915442666187279653847315000867264240046389656683548076961390641645262204700969593302758651725823932165995883018122414444164197125622326046025875035056484875946072694667666853373320627024782073991271849846917946184030791112954859309951658355250322883212240029472066106451250599057091999444246522024429868766603037072365764227373289344879940689622989113163916572746898223761699234473840790565766486408752598633359937483843415472167244871348796395075978039889748336097291680142501117301487446471994383997639863614923171717547928731558636074081558634243713800795915086115412077017730770811089777266031803844739997561674381502624872140744660013455896811992868576537671265062448694692153260503350817528956685116897059198722216996391642020588263426874531368145269855494637296230908092066683309131518704226495426137683811724450161264463578735648480471055808870770569966236355863701327642496831705332696391627108563333375629218345864118331233704347153948660736315217678930742374832867476153781107743750494534617251743950256440400928347866565458780219141674703211775882435590553603016187233477178721442381509646113003855953686714786949532247745534872150497210096943533325139155224921819717785244770215409818529837658308209659095589211934885412547930975645792370634996538729517784146883926594999636167649498160121389002522056802708581060739755241860477239622616809495033685307396211794905064531466987172412729392863491826282386285091237646810085235530526835883042403819683604085637026998897761943792847907161148994295619988385335043899937201760816162992410966190120960795154161235116423444342193128771418427261103211087973176616443994093965058627351500450809504004596009575120931849686880275762645071271998321316155183888446114009389545796877765324569908314713941461282441741716373437569029769472143354273882434338366199793478192348411971828898533986112467514267283784592736721442284912355702130934254054053780483727839242025110360704244198150431275476173740900104345958302920832159463323612716576628233052041434092204846622902661459269054914787622595854464045029970117839984309122794317847354635635124987973465728189067362582848673849921794282013826689545737087264615252919655953845060373489487374687875621368102355388397596307762344898745519906897599310558074729745403365362570588083438380608444164766585056752119915895568524402701133841556982444170793284660111231476277712461813309306624895185352936206049359369741326455413599336701920455043138990597927414008691911794513740701130545565336496314567856705728174455715974663292537578081400279115377201287210997018083224804692114491526181205734086423296177767287350513548783263841067686733521131067164803643756329962306688901647839885199572108705992862765306012209341835124141363374875524817006358895756308637179947553821463613105678731158656681069466284560945512821573154112806830292132285693184887521765286468728070671341067207536346085652920167406846949566053805815910644150382825599466679168068764357738324095990361522472875401652269259609280136535011879812648899944124828873677832935429915276420735261491754819786679138027579817013607099785143099299814116281924174830858008741746963894336398222785205501722791956263844106201969792509190259903495882976289694632387922355777360791610577686734599049893361448208899906964556341052102650886610741898922720647442471524258644536223229383719133902136940787567608778609865252102818876522485625377042877354282436508181548921128451622554014298339765746347493663652627020204705808037762427395996455002630350063730909747628578472226740778018293909676144576152098569189310085405198259250443583825698160437864239621595209778967169611108553515523927248173947203936564484867951705876729382698297519365837803507974017629366166431147438801895047779018762740294543930748599782064874623186510350281233127927309988745951965711059442029666238435768676293428812223182844084926275781255139909345058899600149448594224913687825088942621757835187120659289806288321035390309833432332660214609381374675200090047338516429258736887520972430594113853709544885593047784862203292991527784218370700602870174792432100551584994843330756122365575588828053846525461137648975541050877113730092920652666093799690096090341378262525864721053059282772671041497464848889936308989468514427535506242396888038723396802180695403315346132445860752389953831849947047706223606488142447309359039565108590109605374904537266701158334524301735724482183144371771055603101504470527618894062473110406759365213594195402687030675695816696492645831195689917276782131268345780962824412967846957386872137211306670323725134326566704320801991720229782004073301642649734597437032902585106440412714318952523386398230940579184091183694105345168970579241694529607444608196850821522203383017021615180443412248245217371125356654050082343186162094696777715696340703698198742662923143143600680803987412452889067756565185212663405359033638220348592386718468879054175597902037758446714353532589501870244467945295339162410488283190458233797152862878811856401100076698372194269958322611928438096918353229869230187383886785552001212916321588721062879118481695937518607032792236378581189091237076228483671730034406696458466548386815108346619751291135806430396043434845677102094575913461240898584831817146885620283186908263324630527091494677994619487036125760856351875083398423694002255504598883438755870818607575428879676156926022491986234278931723390015975963307184890761954872850382548903444311875568474497037427920204502414622857574517460897375379906602842936746856484444043067705948211238957372545607411181645957300709481123203544169491526616188561407575578372740863907103704607466659344751932098111472280051397541368021515995774461679524595986332707835764274566283678102258219779530323123640434842960335479226410034671177224127808010606500374773528008661550959398612772151063668014767549785710603805708153618123180620179730778759512897728574828376225217089565982279249079096023512674762374922631189114857101975872173414832756036559335391957152193120562335972134681967170540030763813138032922244069660980136841422246758451118487335384131410672275339162862503701354899591314596788869038703934080418049349129027990431893128707924416473195864176071784567338321108064102487575334594863226301156644394289940864503456873987629894867300333478713303975417270043764957276876497034777097097437952580941249926510889725157978795545391076019237131073798633565329782275729047400479501556884656146276587393940777830551178531151033422916885002847086597610237331445504476487991052228856279040178848733276912371195816013790695787783006239520637824957786497134842660378213500761005179041168398711027174549079820089795217186229450735023851691400264485681796645581434759116132157145008296394480485426564883852017383974024539815059967040637563345851583633746137193186982766219572010433683508120588900684504471135075158196760378995032291891284705713337629495273223938047205149891223435503247396786530723671549479485082586411500388148351467002038949723909745413061564735770609857599170577677052317917006498562136229686448167706546221980550025090717514605667690456067708220881995467478668084632963368010371545904438991789049360625068351599741040062448921878885424986691557537105307760732620871886974480935576571095379638633116926506309083026625486027263792186182378852165674789351306080492212868542421407137590394618239436964609287625684500462832391989932161490109048883836009077889038653432427854882603391098969188132148354086299007756314356554470003622227409810657230846741393879095439396202727371128453713979477585356032457103059505309509708887734211669144869903775497075554892588745193680389855265661701509519759676492284272083190365588699484248854007661376599259592945944032437895848052878783086412541347464631072799726592668201861388237034394550075820387683074292617266797975999960037329627185378330393700057280894629484330204786027511192099750465252175963115527033846458336934203560180204919003031183822039200519606883036618476026765206870363119043075728683506904196476865056424027384211394976050116310534561943081356233437387850197070714859976679591473053610857108243397004895639069680944361530039537002973310546886407350335654749737413354043778574306853602336813118333403638899558069545290343741903113385995766751427443644459304656070200020777354585995139676076717461212508404103239778585037358310214385047403430956138528988051042419288426445512663459601073704174542998875388181919629600441428201259928044929963050230594298257510329930528682192752202852176388028138290978798856558357194877877840688268493388558445872059795415923200411935586810698157926319024144926495605536415252181830154423268303501870333703927728587929442623300169981712644142108725284534046833994441677282590914537682092866829699582656905060774873319367575171863007183957171274264793457795207165357851631056612234571596641774834574948721679531719030319480510096249796491906968245007816273512005942994192910933463011327312656159115191122482084893345264701415465830867814565786219036345017775692322014841607627421540812352144669416238213741020000086425410567657029264332650060701064014338592817916469430529699436011305735401968156907509658375410879616332458187155406747971386359434988453641157899457209975113412062609659990737150037659309697618701079587747552209800601213221781105837676743151200970475339500526654794141048758781643245663429225108107081882867933386183777272289216101911088344644721348348411076102186905707453760024419992228514580831850994917808051180848374671526975226387035802153777229197279589712466576908373313965696621373918849797053380565878842458314934500075212325498961477982221409804537349962433338619249765329719716624497973220908436067748692807388278014348958918050793385619008431944652560789556772730499577713542303231222160182166233686488168025439398776948012769544551312297833177804956845530848404347583644834696221197994098392023646723637874271705373043638858735387497348603446100924959349997318797394162698090304699156883443434254380481301821635125732379733920666960319530286083799491515034453633958212894028240634100416032291968098061121409025786422222025054743998271526139373747182917743954360939039086623589610842985277364770052168061299125373405385701804930465283421264295616983791032389563719200983165661603925141425791553402113489476301129024246952976388230072702718082896669149218559376027407717238041503396390410982088564769707808818835918624807695015356895841778747517094246057754857232478638070347489491683654888241284433003792066489856896953398604273940866691502279362281775460765844268031108229999425265382073513309517379494808382644499716315945139190867601455757007463939924792448180384389954858944660207898940975683606185612757112080388418189905379840247405353868277498779497870415554701193164388300668115968991255081253147776397228550391085741169245468047882664046818109188454624325492492112589331285115955249151579020372296770914382411467643401914674634248002016054437933044504506857427127708573388433831367912058932545320260371459281463012158828338881589238264655883624744647659402765980345576336799016942850894415765518844251920088995424270892767069688140101883676417691983068821335206262238700550580566468115606394587992067467425013786485742714711453337434350248512317155144085817877673754730814110566776475748520787272414047696006816575553391003227030974840143824282366194132590578774687084518565712604686545493817232407000125529923371320865004815635289671222640443907663494002421560747833889932636155811381749726833199394842263908415891646201138831546564267075098003937043954436119367372125959179309787004235511990057524858892351980623771846275925811827956993165509670144457066623469565522926623496174571801300897392482941362165574530340254705832235140622698571434409796050649026516592745857002885916540893709411341248174393889841869831002701396619852989781494981082757479010614432397289452697138548162673394478337540061964034870780329221871636747693598460276069804856896403484891993990797151658850426561159498549422306413139136649401022330971168122685010182775210756537900624270606163735135466185641985374643018031127161778897860511805387708171593376045355852318249082509314691198604840216772021297006620933006489690362427028671368923517390588429464812115080373827306951101806766496159048159398567200255221286133219382464334557861215055809712155813171693394580540054492588910603483867645522576065809281166946214600839771572588731027309907843781075334653383978506708310628202617251076514845631273970447345087959377249660386672992105982646391689242843093610155651502157305441179490552967171661960927927530164858537847817041105105299536196182315301190298883460077839821896102686437933224348326218220298224646308749604583016779255916106660519958673819279477856625160830138448047189181018137642366289607648791581802359427498602636111179954220610951421945326725140884149654976559057506239456683261862426001776153580982956274247079079978985894852034662619678728354945942249293909866773571223953338682731251273030374783878052521597154338943876720478958410205595621387024056211155438528453611219642180688295603534820199958655886051317671369011574250184054122752671347262097181025409428921228405309915469825360729199855439826527473721396408566740359856643104238179832808455181101047151817115868043608348554021145287896739316961676829875786180356875937006956285732410576340317998046933981289334335406959614980225295993066158262634930754417593297553344878267921431407991619559643463639234443875449912446903411173499225973060552949253481958360204790960043283902591681089159473612234232683692642820233344119361221546214732325602437186288179276222644247222330128789889543219794654089969165954817144532042450317382590884770063753385197554432442278132225767806807456516285917699439740582967252917872932627652655516308409547057519572801986395507351235675594340459864046780784616914723132121968719298472370837792038006922974366580125961681173909520632615060361570620691613808238495803441610685050261226637012535669996614704327770021603919524222662472048871998937951555728185070028608390812021598946877977619210752520578495762351752503310938960124617768449301141828834885878967365970392625012953728907866408097011222623671781525914953273084929336380073238794483459508932326671070027649251669400547063806226606371789484031873343435143472521632421074387898397820052664936921378356290394636508337736911411720586098513973499703298725725143090615163508625349423983534286169397363612311047534768290186240403945568568408259870935501522995187935267724776949694579520569447018606132087159366107499731956345680097719453384065174282647372325665955452472334115375490915271248383487348824330351503970627785782474853779240792778942645766314711933523612809221498401149201261497444242438000632666934606666926244929119814852039935622469304031323497014290064567166660004734394018639600592684734351119203937817860846447322656156585003616630864383130530475174849162223300875838838513990050603726825657226238157954940669529066290445347089342159762736351565477115138975113251437192230422919592572062431796405935004339794684487764047600054833988704738750978245244194762393327854214477338242119012347558040300096954049602220715624836843508759663971117113376112235533591688425790787556748090477329726602807242892713910080116237455989686105770903314484021005928964469123617688114887351149791703247339994338897289983555671866962835225790273407971383675524032794318419293048757985413142934402746003386504493933762801700131551927407621585138138514587652697803185283949942211955724335501113210243223792818057969048482214211768619765225905279480085289637014099230672235567169693034629641736201051054161844928735623616762330797864866258758332039044997172628361710122102235367091966484704908757472607823582689359038148966624296527364190431435727656325192880423716033856692546772861597348564189946687819689704306619910708531308549355826859730094874867436640413328701349875500188484981159188643718868105231495335288580436864105392236100502845067698785337378760990476186213516090736308219342501549733390905623472368788024669893869809234128874570257787568017675892993751258599525419375349814234267979605652522270868493948189940999254821244795077808863347250653267178386362598236354840942201464531677001174105405291301508508511463755270298747231787638019315540846693488696918769483987158796440270994284039738782071641160449122601810419214936988562482634638450747950417812617065000408680222506724102857421116479981528042352143068607274838877898563062051210610943663301896670129890262757420380263586388784071546535014559224661029500626258291877451561926500812495094498452572255514294313537772141489435846511536714538617173395075005268356335340960985036507498072879570926910597449019783509517257833671684106579659143415446747694111086341469038689854689197998680723629650677638032344429949125423020494872760241272695972170866937555561637913658838161633961475087716139409177668141079790659254481688875368339905591423024388647337177480929240878685130630084038266239266925813961932035449915655436071198140238228097192193907409054836126896520859211757210914067011835220815011116237556362941931943076121299773643422546508422162515063153708820402092463029996435164449767130782991113816988416363543919533124623264964968932616316075537622216004391454448111195790326293512739780545122552519906556828844585819972295959797848531694743843716851773940515543312322630035727015480180556021168661131142079678692501985257530319099139041223655069429890368416664444639373358303771867435017930260022131619811273499509194682087375136890845715743097714853558865363939874322342415385742249389896013677220191884389998993562464958649064441494629445266615689933994391822839117563004195600667473558961576135913586321453364225403247613736876984618450050987731645047562007256012023261709118070008533948006354155580528550129914228312939900715981788629222006359797936684218667146231868892440239687693780867195718692872964357989431699790982523524488756918143923194042186684175739204053847845934800667200396462263553145909213214244359896918672212156160890146680838268414375110293689315962074341916403680960123719732378018323889877492799289522968841958966670660452656805499090716137788497853316245622082819380110649655759952953354144440070016691562920607954769699387911317534368905721794999149515203263687872662303111909737699721856193273725785940990813699527149335548637950611831238470614175572975449260136629582416184373379506420840097626547879474598186325348819991072810873570806329504539646315728669301728962180978508742796919811002903113179340256532527091765758948533150500771832924267224107387436985172926102575921450060220413818859173908022840508941861314640710582874786315521843313400541043984352754780207180238403980720604985956315099015354126703045520502821817586037617883074922832069181115498094474627496081590693591882112857077882180643636966608049184265040342710959714730903568741433079577371669253474648313066565289693735931546437001920123559973006813691515088717919385165208295399469691806009423336216693640808327097466968217599777620181798047767500042629980527857093404708728527693443578589554452193229436861315351079146041811297080697237212548398593535354079868953954745959610432036056759054250487892625230591473130776120962924865090577524660037253437419831576348838178820642874969693546922257010008750217561971466118546127633381728383710084956364165532357216405771451052764639020315366501958939676265425568716532920322914972396544539532749131863935229184328817250543634491320018150014865916992277485510309987228077867118325045280651960257061035588784666402442934367309664023855965288574883969382355383316298760819382689435827018851352874055234840440471673115577213315243533571118355211482434237312189212533045132738155275950535009718936713629025939046402449821063679674524135023960887128141375912588096831831552170226522400842763914694558755439356318340346183888215453522074948601511430936769443974386832602620172242917068093555120352988495344666563127534875521626160240876596354540546108802881116427812996258689489399267973484519813123927558362027319679046462350160625322705535114848517009782116232767078279082418727307542115731499658087059416631975053836867938212022099866721256250132094682872203576215639161552793276048808280040122028878358946191908861824236116385181580355659919002471350406075332099227461234756063176630300261545466761183442758274399440345483968317023416122033279048732147028990976012320690085987361280421198886476466575284275763423531700822089233545678524092962560747769731557379178104729472209005464554876023729537688114637037487389556157306280996806009363653627963834636011100439051010074260547707341596804470717948806510972384541367802992838909603758082243157626656545888828052167756902465519489032644685981018880971993331922739472480711938212913953662281185150670713824726651493160017065340805827739670403188423715471245017574332246000728218737450511161609207215473211114693792360393433402835627735744434151046575599063202083401128803922252025495889698186040700176517173089926824159191225632177409136993322478337474964965767949414121027320893844453313156423956694555941927456259681210057015835519612580597543357664541907625050113376314038904459258099082877179257833463823367163120603480094600765447685529127202955842614882735475307564297159228120801920674135232552806406425901372642440256349193792317496651640898073739488289912465166375703936922674784709796044584239517418748764686440334379481121860113417818290232301392818303135296978996821941774443893894906406229632689673406444137549754498631073023873786579546876745028998918518688129022430796682518229865302417726408506507744952092387425206348955171172750609266562943367067739053415191355391336327457029459645721563118897527569746051454686847767514531534700847972328923178504938721641182940580033575643919305430079689279996581172876032721939220249495593077104825692396114938967935051597067088424821722107586380174295337592071643510949116136863321376653642460835337656644200383712445981984530653112826956917432839104170008389317343591224208331565248060802309697143149504277627479216545849581002743444194010237563960628063765774856712045641100824014270259272800436056729984996378418451529049281427290253466801576872419516999579741695571445591741711146709131156463097700662347627937533695178641673828818022677909545679397508959742477029635857637756711075018933252706105907723284613822390340980944075459733156119208715730287237580433381908384765892207412908228471929223513122782888265100331670893169073282583221488141974511246676921504459226536738168315395682372113048149453150602870697569893049296225908087379738041973502073846967353473335330045867360119196946441607910822112554801338821557725066432972489883487891450241842962531211834679681808450955359910351960296249250382193289262932327596575433079201118021415647275975863222734451422437589657350304410473472285581223816101722013374088059759486485371590618512380914348179069965724173243347773460296882346442161971873610035717433179395842902714789838028705730922857428179198318062185009262729785848666040431673038478656473737711331742736674019418218338149528203050544171475803788704020419634958000268526451269845514935281891300717657970114830486475410742390069707917084560086991300818243503169146161660809824486928492765431870199191588972049560643068670441323685973568260012418767056325194674997583793009233815662283226109802356248395423017549532020004828478449994554456312810822485262497241156167790917747055600023767711291757154179109907589410989392504631398077797338316738276162208962417215431310327628183860429683168862922243975290169696618195634060187566454662482698173797730748327250603149461890217191799962424752380332361845345880933146263849463990090595877848340974020601080900273820452656594146988697165076520957677764618040930994433349077944382055185087910151429136383744011071053312094200079148760668985495735510782644910486142316190709171467615605890994362941668988382309779720544133801150552428822515736512900604468651230023531614276325963116888172206389050145330873090338289053295835567675674511370679312384605813864433977217741429396137989095009572976135854492639450203230025002343351766470399059243842760949138584695156529378786092569554152884928581233790513433175164245626356076441228489811050868133789756667854467866876089708221349031527614819745495057240611322920068137967369713833255546000605709217772881997919284272725639717496412828109309626179822921778615294209236888430130646374533270995512208415195643650630782232692613090863280775644534102945960370002551997475754332527848221074189924851792951958958367589029987981815260772942895588663850380777154299660405433543267246028550462588034444798112987401111075261188378169118804552812838692507903091123416675161078151344018697086835805990085127001172482635329629607157981600939843696375939440871033416751551241911633245883573085297717278513812829916366567175368322272008089437711756492116953888376200080406153989083649398608013530936885762988027127339312623437312332389741748083126818759509147411822773602780599399990330906504310967115280394097022210840795621746752610090135291315743722862087153520993265767408520370303250395037183639260805407679916638120865961582607128453462315005760429588537733009559358872251468587947215107903078546697317875249372015004546394314708104776779778358610726616498733063704422178016599130811226414641947917343568606726223789841701669491732287773318917589411790886850707455184438089293812351235007774379518015024598267238602326428690861703188668236067770763130395126148630741770149124044024050575927370574012675274548680421169326828997696537462827507736345021333340581821209436757003714800345123495017437568796117670260638284702680207176939415689609697625555945571318311965084939441913003084311859620537868167942515670239503638435626704973766128943270006705599248687249391216597082870092580596949089597596384195567764579851756132260495360625259256167650154443591691671174121975335450063771268951786489025585033875583217488399919426907470018430746344427161818361194961943807412098097601450997371408071880847880746110100165763700019249004528450441343726827483265753962438761847478542554689934304536222026535408266172368065858628486685259234397872838397511302189876917246340212280592986334131314168395400343813173249766508180557129092307741463028574034573598590746559242505397936477421794297896124318740600946188780755829982776318939899882180553281349708210342886754862775547843184692323795220751635158416454141667568502346735946121392592142568753039822868463296853721183671605556226083796979113120073964437009072202415548915480875449717013035698339985142767840509154129665283828269058617668595190041957751171019118190681391670477579835683776966112313410270719262513871543859967643858240599643986757405423336314946112446441305517963493233744409160875828902154036291183678265031155299874424206727733436952574478961632765582506796832395137375993489721445976559239766217918390297148919099001047274612364219545351506274681579057481611606457630912561608270875377997455957120027603633977034856773570780693856320863709626951571391797699889685930650920522242677924014741033984181104988392387396125098520394106410415348634908097539265608091300130364925883788539378814530419074834882833899573677009468573669231446821177993879852836661972357367321919759905443786146341165794959805443843388962006504353763070361870023314732693932409183689709750379586947690736353432537798898111770400218702451871186357034594547252968989239143793576407209612396010244919667614297501639988537930799925158791989154323639825198517823458082538640168694200176367450312660910240175284174006024228563497757878308969179748165435912131782729520969811687458648375403674970401434876087880750858328522937859515657544655348927397188657136140013861307014628322557108001059068281896194055875043592379098962156399890658729141574647188785107376803927199917388974406343482422405401526114937435750861063759002613258921114229722989200734738914476050442252809963648718529643580097078830892154413243734489458925553871741787438818796064471846060660366458824022809904496404067861433623767713985968871483386457273143959143029411410840970113182589956254828669272755569332516653683234794448181522698173746736513632751004773194639524848215552500516178771669674117833707355568723221872517249431521284282190341837126175558639053922392453833930332021859055515274340845730157620035772274013775854214598153516275478927934920854864657248740861545263052389663175001798717335423538217995967256930279266050817571360372190955969527289686325328941713176093734051254575237882068924535844722393073825977648354616563624240755910880926738778637626830375039980940899872443323804201330454119050876746041748103587170919250185352757346583975017674583900738662690522139580735598449184804320979873951504214507617278041693775541355233127689305705446206346802512713099566128448319647943426680421879532660652997137673282321443438886151709406541792640041563638942615519298891806507165117311527773178821918723734609875571073410530473420413008108334765033826779495511465062245044003724447244521109113970840823514708208986955186563288484128822356624158162829969182281703789311362687674585363754232761647645283100304320027409363880296919179836117555171694283398293544758970862542092161027795029500742808539610296321538205840290179585433296674199952861489399655729707745438702059125590431542281535351738954998340438073713316480655790442823962171549653441556861362172140046903780995472833271466559455612706648551593227215440371049908165735136006164131127689359517670432770163448365246273109659187720123940033894491513252093232335047246212213739688331620163581560595693324181916339154732043679327147727025478901259088702217615437541716726304656469117936147062684057937475551415463478214957718663548801467827119221369517348716384689340262028350255410559458274985069829168609737663264130361429494925857599930773391932394240869077337431006917722744945702649447044337776349953314516810390080071396400840453289231816843570712036578977364753257395607506416094841430760526966366010299905471109116744519392261464391089432200011135841529775147964073002505730093115777242409471265815041064329682243883951098220086546105886548611500056155434327032294582655883180989737426664423874826762963012423591622726687255983476329862965012160530056289512745178238434860619405389225709811906185969640867244260268150181473078226212667144609471357937932775035751437507159081455186337132770502793746432981538372268460144656078649011263792368692537642095300334308207975855210519635617582729566527700700869952214435588842434446032429581392725864862261612405027666740359510196756009684962968639711796988486408732266110813858500154902956727741656301626649787169623785185066271146572315728571071569997170776292278622421055245196523454173914220640030319932445119760232478315147792040223513196149843864881928833812473375893781030621284397280390629909677686365189629703791626103381914720582859288545856058778417242999668975403790052076809977734741582825399913887603132001133523932368572689823172692732358181098787369218521595244000431188562229603896482831050371353411200551141084009905411998626504450904074657970377925056469894123647746702941825978357925116598727001759373473019866634418699715647288458687501006770948484288184391977736649625583081195003528734040288928377656395130250918671534956136277182842127806363821966092647788253376946150632608597335321938329314116047466023292976997873220709271618467238524828134318591570197446001909346995855228783391412127904081911086573093100788023068532684412326743571024583838844232641027938694787036620151733370864042650071709625356001564774410093600811315306841814514888686607375784962839868940648216785543161507594332802073567955107440455788041638078141213202829899061099075196859067224132071355739136958533108961202468017288418146787892447160968166328743585123546085474378984172751510140690419005597890434388522570160888340964691706103038036922374572532888429142242416751170625589149504649200981428296906226255988975628347572588927657665251279119916835167691517939351881627726144450522802965660307177128289818528530656612369555814061535326507649753689675028627570205675858891821312182088490556824252310637599424045155146446308936721511885816456517267587847262563469302750123483384864184622332605032235245671664820907765917911152682655558638504192846272767451473768901560964265357233767810702717248926156558142796431173823943111563396993553018236018751576297833231304728578662492654796438706865601795697417495120679121258294167192943776848631416023061190189307189778736514678043022506659847166933877871944766571074754524828319219142608403673376145852035232925786742410751608493549658545729745473523896655396857360851116500201352693921047293914736334052079036291338837101586742899653458452802793687002142809135170546706784983134583980942605179197328008126216658897437083837808941447418695793479005187677744657293037165261851618035133232357017798235571743437374866449912499223120131419232334645198661653011409333253518983915187579880303656022299382092414547371012335778098709334661061687367321447042793957251182658477926754674523385299460327715234544131452463889969152658496401953206052672850361269670740736881099125461042254835234009226664385683734488613337424685311215160201886674141446837715291257746429950831473094278348099912517501181667465464243915205719695620550920105112665331027316861781239062384704416230623607070228047854358052853370037037864563455872279416780073938638631697922660468819398500277067650549198110057152261208841721993900647976044626038768550917211549312027116271241990259642418035879025549057216089063927647829683237480702712102105101208552321295579988018130068823299887441685551973572895279886281855299575744462901280758138186812625937756996903362014898503857329847079988311813806072570264845583871652297317005589219447685745607099329260605387881867798657308822853824588007380088026718244407960239915498625681606525798792250594427408602305802024260561917257468373680930348045477757557634582240784870556630623627741944066104283167604455243693988749021334729411080012828514030385840508198375382683941179860222596210725231754582606555124988324256487926718003953159115790065564927146611229703861541545862092913078043796797212974335654969659447382997635061973297885697016687829775339472406958252647615820007921900097680711746811044208344952535653325512160635104067065901773760781082054091681687707350057547473116995906859146192259912300263342065560783979344276587715909099365715993395626428145933074524738482944995762979091119995768461237071957519438969959296048031095409546460328043198519798466051410474688106249447565265275564798157169039969490094442038149482345772340593923410844502014945695377143037449471211362683707906215793373511177471973150311101263949845257064361673410720677846334011484918628742250361955212731171562349010844126168492608506063230569284710824399088543815616682804287759243278727915414740758671470728523653049957064428982191420014921956510080367549186417293016597110211554543563602926490359984097476881874227321347163765383585351748155382418107679938261556562841396329275343271169996365974396368393894391199065457883045121992119896017356901397346809639191367538465817473500024135395386306954339881893600273873728327121231269532558622045194745773259145447926876264300534075066690328912652682839213410700654809215314943455570867277165046056146216941328072814236646684006318736182749945882820522461147614947110914476184029542971729101997318808087738631588643522219643038842513373940282216311611232184417955913215177611742139341055795502257612760889384523686999009883372596162675755557923728585687815755732393803061640315752389403492811346673494309038678994491340378715931121694936275214362153257909749612399333222121308247869369131475391432231322293579622971043837817077973967689516007973511516687453070591001842446308054869265567452560100955384869418608255522391904051549156444345499129147953307428561155066117628170335229380063727082224571889911769760969398912224637126684664617257852412501834583312355585517036141789480270810400092411975440712446968833506781980521271044332895373217333187048757675011717858294764831182009659501624033176900590590476852413620727058540829657576623984808022238012182146420801339212467152326672458951244469747990523147971117167047179205399663286807093277772682232980752870580821983560516129845588288627275162560558597165024335745018064453280695607899521300585222905962439136988228661483335526207018768346557863125859889913549562715688930288576133650015864406030340557903415650373743537953848067138029182530193242811093445052368731475900154616558945206369282009040550229961569455595913009790662869239954481428904113355716542348977769718864445615192343831087844428148789338534736263801232752091771993997808776530313784415287767519959042932026707050964140050051059237407342310027308334050917106870623344722410863849421620650689910348816220426509200225501287021931168762155803840752540646784798170326300480824186103531872208821786605881289684417223448243953404653778706882331502478491765141613053834276152833367655829110405734701120454160383296544722761133332615418982318766505406984338705353450530060601914041527498949505965433500216613430508652143334571418037338211701531540903229794656678849197920024030220581589112011560693197061427110841268214228935198309426429856768131022018148094206981138584547234295956446479895455212650510317218881751339645829480236106563213819724624469359505278381865911461644232200096243085734872944317276057224895845753371277040855097897657328764000820220857927338862496752413749341288233366994914410997223431191132037844348712687856966086610548170307218659862100843394563475960029725459056292334847082089602016026776404810485818362632742621717350992263486617864232300322272336650043901975292849397002488876916225162319832923380907220383446161019824762646970222040371589258761031284005318439345983549078274627163112681998532628677836105351293070958249447014407244001519430604954136280984152133319028946226223868268350283567614105753594833478344885872809088781409772828239877017596141933749964578235854530567981450454600103271214587348823857580503179346383567648211762087834611509352980346394551848619377191015448928942861977324112062611554076687694881354997065596112056920888386441270017579562538651352366495142840560414447829496474784721972000653062669428176612137760411652298675783723581436389022781165371737767118146742419416842255326577986811672877674665754311808761478412074791873315262693299837836831383610846585843697422513642712069561377638999909029427198147208882998884737575252994445671704169438646404496109014200826559140835335348645067306423190348332190319745046799557304082604842132298133076848974827002830709069256156391626106480714479197448242403715898738910041122248292457701858667677028701960797013718058551857498443323076564055048130234996732396332105039817420190895054017887217176541225789406858191727891800201176052386422904039692684393599282519377220539990330655033785666034549068769115774538909543354266109957312764330103158800608544743906491949798209079246237141791332413778408064946758383156220884410515696394040602116807870746525746373009621090223881886639294143899734235058145621497929281686474476346148037523498134939641719418126759583557266895230372290786207428817358721779290408497370442307220772035312944545704474535882833116996204946369917079717606162742197321581755433965698761482045949825884303259209690529241881447704335530232718718838158443979951885279151965759712561029277447778053397404516376760186922091088411316785792806431357303990710974366063380963084386733751829974190109813733663530417663053319020992778691028879324898725006979903784578660414710635333723058874516396724499084755704128764212353994495206003060281970018699314414776607351003078722582037588528628665887229235393990257376172965624844212952597531125176643404718618633394921921132242869279271870785726189819091628615803295119141844270521293331829568069805788888773643777868619545330357783452312823648074113903661469910448142457273440830812365742309361948819060767857864636627090138099611098212363229771568816187597527857985882994298003647023134213214671115781407820637854408410390103816071925963598339594143782519133300655060635123403182981257018235409083062098660653952943730248389114758720052397540209950546432057867238870041196436507819666581833208821665132835938669734045185134827534905506494237176355611917601184879341259469335225312631917209990638012730699558136271924674353011591628904147632844411849657590292179081282502481121122590019540045533838736799104314294045008052985834116210439212985613994945053282496307847399456962607339060527137882723063372606482073034301922638763742624260137795159399508925748765776794267388101059545474096700291590698588518485115339358337123255763317743583010263346776466606491479817988527742449928038402361862490327039385320322786666201013226146394012911702050759305953409878700781884227168666292978467032401943699838610975454536337726067044641192927860623638626084504577908881990726990565274060086241262836034276332526767664858159269272128936203981996506816907732943249592040099076930361696402626455289556647074374677986132767456540525801206672317849649299278959181446629761653343195161933967238637572660253048951020621736030163940625222351322004828992106400093273043311056590890718937462231947982573127744568565438827400549030945558285364426162100222664160496684303223796144597710114953299730057120881201374688448342798682711883835647548554406219886074238741849459726007857041509634579038861220633093697652836923869640805153435759121725841916046669224426270159013789260934493883613127715632784701115011869748926393775215305969521336714794530052517733893904415392192971530471869325897878510033495131932570965235481178841017616671346458965455906964964555931518695347987155761517513274225587574586289154545618802772514948924161811050415053645134061817322848553177368226332533105157357472607581903834087925323795924217038772206008434407123515848780559456094718109882392715755878215850928628000746066184626752406750933666030560618756679907514348042849781873165200978535196805616265315737085901744203568450257650361651124727174732980267062688271991990663142977153695670641267864839917493583579478836462396580964795759114442128745624560784409209702037010581987981959782583256756122318246878662488531179576841059010048633621831759689128727547546351609912880811344652102746027814570989023511167614824959104917008277011847985654984671587497716298656878801497394022562414596275884511731414960791046520130430178409547802247496549551783293650663628843262389065994879603614763666287384118221244559618545705006398230740097969484159001377878082389209578440574831521181131438175469866876417930319479275063798102625526794431169499186482585731629775195679371551323588670849037697492889466294447635688055485557808228713341390617571554075575190211524116803255208448220032666165629760157850315477249959047823642729945633151251300475157995342063464593163695897830439830636901539407985891507984412963180327203476350218124678834951589942604739208153626721305955754521523342904635314763909489244822784841425238423807035652114909855706960678810733901532384190612635892690110099492859779336072198287943686927308845332375159214939882164364880608211254453955452123933194899134978393359722254253143346344843859884917029418989972629610869920039081464100378890434483702557283619932241482140421367067564912257760443427866412596183205463681446454965464311841118176380920892051882867006036503403703595907170726564312100684061557288583037704199461468915183356471756105922839883519376124497240218302089019315358714720710703343486568303421579153889513412817850922266998967215485117633512416651521045985345970157607327290103259571555552598687960568699562522838290360609284127396610562499621612262649127826151033585194458177912160188209416718329849749526928701589264392437322666062780462021084705333769988834507431594835173701981044042574554309759477904775669812300031629733485759726891082677198781430782458838712165005646306774573364838544018159557926765460010734189805756206038652470341969357687650727411212110274130014078613684519353308156136259494424693563527656523548727203047231086533100625632880408100435005896749082010882504598203390691488867979671805681772227254912850013470245891750093122139062198789046146796850615055324076929981093716138683741495968649174324440327731809250950311165659312940390168470952983788397357555330508833007383724607085540189753516454890832737306767767471132455457709228766412170574735943168430086049498586576025486607626849559149397843667912010660989138866190202344394472294271425579127780905814662872115945772580072255089661209360662686117819204540518464434467731433821167146571091296038706610490156004782958175457141553449587348321264263289457898519416203774467065960876882456646276071493097899796134355637486138970801962675572824300788726122762443477358900785546257752811132726091963154530355224711429882527787977968056115298257470905227241923219080753451491305953429151143427106121315158071688829749622830049081216775292908301985574669553789920609888971411197799772722717363851030531967214952375544546696501091129076110011594497150762735082261839798413221623709238387801735233640917588236059431815385660400887633704699919644533880843248944566251651412918590989551200437958870251606401704096810625637884631199869874798882263835066533848009896669086789369576218184071328685796959259358359678492263650881355270239903525961798382508430496204841567074452449925953545070463961572761532122081636123977283285542354726697196783880214196290373470302631046503527450050946114225934552803722590821191879334084255120653836324599634346679569095924869853117080632376717809753873409417711872958675480937736182877129730198211856546709544225112953559212318452520326701588349918672446085534985925180183944714572578327361528396510267961933637691771220694264530027435793197064496014680703751283899858049340979677697544883493097923201403458283331928110369767594096700747172723524605901988031158182482995701513923502454749388702101445570569037829877776646554124170072248600176244483650659716446443851697409727135600505391874967566354469826317368375896982320102469381334230462198926387355577957731148253335757890020802600002355160295945438005532455526835164015361228266217129729948289259872726139098934678299891974897965476562313983634509747784201510533134954944235080966591650244788356443759105643860284989934998621278307543714434897398997514082260822859721463585207177245671389163140291533567837066509982166256612817737399053034980057157395210419621888131826037287546527212467612121197585209892062117565902183419860553471428034959807289435749563793557581361064752234423308399795423190828056634448860642833676666659535025098531786117659000360948557936135773126769904622705139918385759354137305739620413093248575140775755957037897653363911499036436156440750162618457589312937820621534817441488395796799321635949278791182702521049120707043341473290437502981862453787989250741887687471196202564955558038712454036016990772469572632317945099900612434805384105187286955399686470925456243719135525105520694093583295122857214068273317952478167988257498567158955440191414126876770024295960556272055920017827125667601849783473787763779147549653151708494927325511828553438734053147129732065921775004446172511249178293909693969065102150876857608519693955477383278692756503976735298555710155365782490752773932302525983054809092053577990454555454009687768079006919307082869361937957215032943589301151231187245569971776400693371341129749351319926956552061948396462890258271286852505163795417189296346515605183355917850880476485130094534149712087369338176610813813999086354608943326825224808459084886695073637004135055829250185586842462533256435281826654077268582877258967194705149675397873424694554561996514459779977530035874879334474584662385809789670977731054404688060551787968526851454353471633567396914217759922298223860569914727337437021858076578741906903642607185490527195500479694023027836245125313600864716439636915218083842644238792586866206443740940620564214772855671189147793377325863967542301824628782745086259751069951818074605479551681478845566952766515388909616541479535513105255031787806923433335246908440251575913445358966534271342909157738338349420227460223366783397664213688210457921827602946602380892930466530411341999704224728399204938234636218445819706068426049735387280263499449541387136461867627205894294196338658891145680363396681518458667676260538756618146678634993548703932242352082999662728527819909733122490120017602678082803064046792704820571546753120563105650147464761731375930096814770709546326409166411069174856511598897883292934788534849357630330962490789079776085261628731414105214025523827607096105715502537377296179946215707594382535581588897633162157214270960376269561507268025031359654171058663059429706824805668148056448438981289213976429161944775719109354399844820052395461169084850387578216206029652810708384590876562016943583095000749028711848112240911007501192472005400809179646836982498846454824175875915866094417865146156306566321680992576018726740075832286656759447704449837701200378129415327948645755954621765559565107588096033124149112885285358511817015648521405178885960085683166808298843522554699821127892577192723889177204929363942523084590242996732401691836690906302315110260934324648248077660724801475008832568031837000714898762230630155739124254641457785243692580565385539184292449422304682972459576862037017851788991156404172409715977221799454145338805666094872777264190797596143851343874313820420178338917650073423614199010652220786873482916672291879717029173752805086831254640285568086620752740192847127226152720726515219141311913157811881750603637131476247215081769660378191246859730029447767647408788486079320173191639977510761963350004108114226784183222635145622879101935950563132562393940030315091168130706093461419427118979742024960279664978553058447430190327009314265005640492435665637566457364014802086696990442320662808543075023093637295265029402912294400715352679531858904578228886812475052375127826436322387417237372750083232239303940050380999566545160731895345523536018460070412745258776929803971508235941285209908107726121289218187016751179617716105471778379513560471621489995443543296136744621580726115365144663469066210617362953291672123467830166703827036172189777381392679603370267580092839127918571403143312315332200656141824710565050579796108618824841394297979411854651072016624237749903970892050215418929776538873211219185797929040040179886971674922674945502403037140522656362887108124669062292646104788358288365049898505199587331188980489856605877849906878071892729714445276257196516239691356849573769812780796573379646630361570838109394796539374866083167490849887337508193018443287088696827921620614563538835897703789877281413820141315543476954099997177610423699019872913696064248064869962368970908987951801001461797031507755025751692083664186062430362335722356780208537895571657249982148888118477577051474374024820010360856018977443545153495004429916656591529288928946711905609076336270217059271442185587831748936141305486283667131827364466174543142080509726486112258326867901565862212797782577592665453868436296697463289792175781963755029342455220966182688128247109550268459757000118696844405596527780039047996925031456101674972186571362939536870415844997589184485585570696877964358451519690657495946414242478764363268407431446542710172141114049037729912587038099289160724355545238368976893441228208710753539712834081981667095399572252158104263484239868073636829017972846397431847499717522343040040787314578714737357055708460421872011781208337093281647066857726617254274099739525751884360607462657226855360336715791784111661826509211051427766033915029467205717646582962563364959953291533617492562895639144965526014843800821279160047386283274423475231384364529279059559899027372516156516072175890570901837132457636698643279740466059568213510650264649432149611961386651490782887061757727399992207589601610981139185097072767391871668705354733247828090593918626754077831744272404941858471750983538679493112301234712932695768258964369144575250442415938219951770491507423509128922296149868459196021989822686892695150351098313763238721642292187216176381413307024580640203345349007784170753532920826957359731854311490752216806782261959822182061471106554809304278534370768561338191571880706985794731587939839534616588642981818795121853988030997015343059928434478199162935667023296724721632049224493898373514065040817021912321556709814253982798821347047857008575415502293187143078285778402376772170131010668514940076235942100516866727349480548518889034796446662004557747327375838223043722943741954687715583974878011885956676457004376496323713775836186372582320719706966403365752565078281453799858545125875390952881829689076716436813132217834979010365484046542270350650554195989898067250342687798552609283461652841666903165097434668425022216729531660626596452054106723631280036683856363908190391773840397805816714780989529234691767933828878039326231974168937857677068239823348680689032703665726149279921356633472042367644560190918824282242817602007239343008360710239768473853513288351093158950889753750586607701452826186308670574058209344770773077065716585025699764793809422463259508832968550420342393862683527278577330286966549429019535968626751760508194663662265234795406533679814941395084297482259533344364324933359185141039534019128785785227159735287504305331484039506178808717643322287646572187700524164084332102285661275411683038300569510781542861522236412799460649533229397015386590149275248369211439430115807172763388774281228307968564458564755070389688780729028642928483117692149683614783009318328172465173646695415810794261766595150305154862233372434708953951976091352336456477925283774159422048611483237318438052542969603703996318670465392159411887866886997425780894241936950836566232384711084293325352691380547148887574531924583173093523192611118501079798124832897291475208880592064209608954089634507916226082408705734402581854615153963530851862898418590037032812989312792041567954918286067478062556716339109823592793414226370508707560270262955663297260883799402066442152614619440242374464701250074792937585607883695461705513002005893995070410284601097394438820124223952006617834070392949874558604992447607318838106658387695298095847965418735690056788229460409613254225779193043336836128685863982552784974411355120465678413296621421706188564795948161873961648962513469127873610434446596391753069686792933739351498435008466108252821196675586375630044754382904239979181193134950325378321317558668533864553736690026452375180031391820209725973730439990879473591390057287600386763914253697061515244016836699975870886583347865307159508312451380486303482995155759425968440921385426535551190960618163066266705748703460918780984809072335608388534598800172816405718306761239777042506077942665774474400726374561028339990124446487978125103815198512092256249851566005507888578238200268298748328638567449421234078607823685882261641024718457805381171015540338174292534954834302473251226153984057565236635851729133508917742148618530947291416907190766586992160570663952592080186133096245006965310100985272356355730285192479258120845024865772544289183642618011103380073460129132729253771258042349354154976934833078303224799210239691313235396135602538578613695764231665271800646531484200029179254019223764581749629958583940100578637624586700799089176675764151429559984120826138912631690555945549467426285750917502365454402765278500009251666863682148369906805877247277784672381742330071129686771816396060923619759368976936565706451385085464251578886237542711845905342600208184209335776325395292200215950765217203074793790099490802634573572780403746048783130230079792981986953714359634852202655448361459601045172401370715728079545361838082210766344423248900212713284827258164727166258791332586086375213595807847114938762385351322368557448419191144157585763197399496370060421608491820311035501146266374015600971027648778228768257485424113519139907990084710202434114727271337721487933829889615211355850332545916209224847150229331792331206890852986185665457048319388160387588397927745439781480697668483446098069243781108135019679732104249225361937129415239155916376226270018662607150672927823109140840445360057618470874851524323638566452332004458773832854634346536156854404894098937281724800025458773291298079383725868403350965900641491231788834953092235674045716990434843120998534418581632650916229759262481182634950531749417264974573029010176222747952325601991399964553130089842884837109796370091899464244804343547445804160660857336457731655158518827625944807421184322528755584379528719953295423794235106159384527982405430269119084777948204395394650372303705562135740277604201582312986975062909641153786774097109763596642727343625745565933411220000100840516129461749893686169393334243267303098848595691657887026096870621641134991008717251591831127116096695424183859595796339466012340018514087204277665384929603284339140046552330665718566930207144121961164442174158574399165807564885371324403071361647742616197776097172391296328043847806481484840076756853794282979869091018367010781939409768225719343514396262937039787550491089826533369354504907299316026908780436993239424951719846994209725576567274299395650624321865052947507297525481799891122339354354672942121516420476150027075474897473065063024055175200415356697863690076095924354788988669218042446187893693902658477820889932026972943343340404603290821664343061660069226259287908219535350787630404079565325709481994567920310294047735854927083684665057483190527747471778000444505274597447537956438231978354448341770620032609502497857233454492971451553710148868900007293500342345724743724844123631027303610676635189823045360707482156289777674734559231258087709431933815577129821737588662389750314004942382323049422146962353087349795568450689478970009756031540021571571257354793501604686113966015825843784897427826154161594853278868767858040109738257829399353474946279883696295879612474174721616904803937277836815695252697087527238501925254937782805186723681399410767922821700327439707073620739750524208726363876238380646281586252288437344366098595198133684995487986195294244038958670406326684905054088047118465122547338750570521233405062787647835688405654299102712616343332679515775505831883670658799084756065298852360551221110699910923579678931314843023100559679260000799368787250569776578005440887732969391644973893231662969486873949840236041699338273575518469370133717361188432299753727047191566527236672677694113153734180538916872465021154668642051023636828947268342047266461606873742359290949318982620109835958472360742372482019042871538160497536175982959437281242615702165702824870268051907191591544646308235990051163027412273236599940192612464865221886805277303870526167716854594875051272776335954368774697809774226639952621484174265454035186734950780111474661376911808452844575487032290583694765171418620138540201811821649619390459948111564125661633898421490132377057016145434035484159097586962036994249234767784383877130762707260068905156188836512076632827247123283211222124716157990094694883855584150600903306804265104317484027912904542314408128386396301882905060160610507828187729388545165530383753060416467079983646007137110985625961155518516379186290288314762007415027983447934503983269067465412088071998413444250044206539300423956094554041786674347147609152164683100043173519631615592486440224961611205464959966696660717172560259453825603358697623123737583691898686560634007387370438922331925997111996466951027554524697805032524340692269613459272830048350919305883081848938763426017299201626814914216784083649705039682860384026680395640350185061543747600870814363911109466383679481327304895039163895528396042581879769960715733076925349159541415578894509012934322855785965996952792321098450656558846796137519069985844522752886059082618103575336408780969522402620204827954025360086601401673590619109866399535603935448793322191783267657243437173599392832323796789693923557827758583770325706983830047591343725654305984924377226061674381060360414629924831526911774714158433190150137634739720286173323304615164472816533075121513898700741457141557632368963553214565116760206938301065481764682258652691335898646237804204778388930385522473902778735729073363855574455189618914652143612986572029664958680044172585056707560229354496030587532985754714738597625651173075884294105540967297394128529752940537780157064629535559867527296728905389870387980622896828875152384046668173300277641995291244413401156324508965064013543825722910583419390756812347384703825063383949765773551543260541058204171837092867948976381482507015840889932192706890781382225153602133322781951057533874325395800324891458849933669466532149270893078090135152739490672994248501353763454292642512618436718555274035275700310619914555604238719094298170265926536246779746196389874057882624167639994354488475748478520633631160660576402112183865888389138914171803478312342043881405097603999468029948059619761648652813821679214962340812445968391245353255379410568648184074383615390370474084394471350153481716924406430457738460597403110926140335540457432560856181871393941501483312166842595396210353320163120990044231930563032547020855274380006588512614992359551366529189065060373644572149200103105422485156040376369547452995671304326141608891062865226222003944496076145358243134491264278192477905333660474156399355427118501760028776127979877902357968924868213679831555901893575864002984631280010947133484589223331872037586145119733946787336969942770972687539693924535402180216504876897831314316708578735556676325886078381752234084939304072568273718157357121917463592883018027795336383687024645211771144383706885992808288230913941259453903945168822232309591830884237225339576863088335187272070889228487716848161000606624357015627513114198695217686821139453148773751420727184892603782903364514579947845202171286261238322536194611597538625856635838756018227189131762151851294717489456911042809769977546675341222943626181367762803629315747382048202219455748002108450251138145045208172051077136234923582863960791920686488463391913825994091351808791962635134980941007841170503436316280065510263285303947698287004734043626271994984284225189880860508332472779931832140017736255131437511630147831809424508321877348614639455105371847658315913646336721156961427066903585496116342603970390898386460125361521945857601259365020156695554776996642484249439161552684867202350340672388065832706508520134483595114215394287459319206554074904833823040901552560399128733217532878685963100126491636253180231890609105022380788865120465974482678959238026984694933973590222882209496610503152057312792884057551676570278156672480054802614758417494915402740145026301138699621639571177633517937463091335683056798241833833996286584439877252189221063599479747771326880272776121186656178949642598616476403742948730068841414516496772629449287100024460335216295157512693547020687224292204043412764848460003554184114580076862683860763240188018936032530410069089939524662758223247143828025605500617888907863462524275893908059361612361399674271899754616077715971638583795750926106367047453467455524755616018727077257513494849948870586412564643030358500841636440740601053103415485028945303345149332585258439341099243557244974199358309111330465770126124696932569371429451870323470633355108566571317678023066573862786576985447593955524754465335172931402242861862390514814141813921051769051109341354423728600416747073521320903077380073634861051485514814325101303008216017689849467503247696125385759518668594820558003587373243739685989826330564849181488648757700110754753791739717715497012828670957010544492460901113978153466078595785217811785957578402303389690896251039873801630982556112990251464047678215226188130445501908724088907049461905403459371606342560269574772736843971309842545836353859102495742631992186021234954441689858630814512899160847439868927146799134678682939881877695314639647512634017083516785142575532434398685028734970169957813276184549517761819890659306063528968724958389287382417918884180042500047571437329626825135774549902097470771910446860794004274758676114273412282250418763988229502278721373827557979712161412746313494389053797367784959153881044130185165718440991384313154708654863668275337544138134236510448919835293614180428512985838746973295572094158619491674805071574573874271418790276026460387644654352912423643689576958059485937114190110065518666954818359678364830203072918085817008575818301239097248291967880159580582163876140420650593804284649128820029998938153516901342049809199927004995842623295306182562594913403481421129766295696990581692536272877966377562987114183648819764296045159837858176939962592843230128713643256886173318822743017198008591897261147642198529843926975515803796976212133493231122110155068734268146472654006924530113402080350482095656323123394547431020391237535044286236743520402684912560421262793770067701253794967334184401063341687201595988240907649976746489634261818959570130215578829725518497875575674429204895366171611861979185204970908192505191589228298410512991706018948346849629940474707656805256087836006648642389742756777547413585337177234004711674948573650172108642799312488245455483126834229239441221105699290573023837118401145754120261414781404224438684886212727370234595358091983890781971938453959071707985158981031283105461669102795182184416685729321038283422117841947927934936363247481278139815192013458108572003987762727252995568140343272487282387704646649200182824062527205881812102005522957390291185822250301950728756472237714450673351837981847924798032008922583874450678152814769415917372116730499871972182263436574058991877120862177556484210220119015564992371610139008799835539074981196284734113904109228133947468277781812180176221655916068711054044995710266443950001494768540996597342441360827763160533554611213809141428131997606392645257407972341312645203715326106386292845566705152414309213210804161013442245878501334828822417109140586830677034303959322424196096042451642543619808219814464172331825592070525693122101831882900161997371763842056484783212956251229618480641334263839847782925511708649567740596335255243072067013511035532700863732510885126009923147875897879481594514675692353791973256592247018685867041749930638370526268196720847427310563938604486646036781052046664965152936007756801447477602768655827231356992475906617052603755609878817614827512390637044246462713276694626282426713686274408320027306356826817482871858231638654109469679925929429888385238195195326110317768877331207272008730252156736693915902829132724854102390706719118361086791459967081167227935898318097538496264036831806409070690752108447540765129329061239717613453889273545899910218654400147389707334525194532503371162755622143187776442663500113450214596393194231964810665630781536411100540334268649125142643057666869166691214956538032205202956574063705041821026998559340186313077810834548976211951727626855262958726794617014203266168711364867598239485593527372673837263227673658632346974653409817369008330762443349817685315406699637497326940605372153098408206791682441464850326919095916271137052263110069625598715305879965694494192335083150835543897465221993282129607631553242650538478903644255650668712428987694696514783081982836489347889036692717415107832999598333814043090069946795680960026698282899347281517563949818376362337880808909961634369794695738776463199182728125492355278046754472777824978308644593225650081054377455848271555418355945330562732276704046372705254398322900834539041002061244443921670444988981547474111527384542097131230138704610321323202004166070137286711165303591922292860810765240419293203313217569760405162135424130206749409136071611141718976274596537378622450134559527642111383603083996414852721704257030732997611101105776141921335007160846016902993121897760675923391900469297279824142768663931473177494851671905352637786239634419363076321327677119360769210841281676153784715862007477203345866747985385394660460451757774718292298940299308518933921809563060740712351937797080869652800770995808778839400692468385045285997412009100778924958959895555011360245547447919358787407468774025294912125978474814865245606256606878789386119198349644172933763276075755899584242696975307321402181752423347833571680232695086635362598457394443555698988290256859878766479433124182584805807654289652896134717938476369330963773690884988626050549848790825151474138112978684282541107588622194586288956342786398758391163737144474039325572775862340843871248253284184214280724507760906531611075682912231056402113947240236779403366014711435794084472422116325414905835810918214452272266576090804146702510556625622693075491812025655989161440411327603141175983872492453241150693332574688868965817652956366783579754585323540048404949945418818818995179820729966485397473476131794635323393439563714249945342316145745911803367611311328307549223672622189793041177049512835272967142178184696412346207327575775751644490883839118884443216375481027321327134842755687143567224348889632145888927254558614276695031807724310485913893107971062551899006400613291671021651779498157825730161230598854399292173064518848881000606916028223707134477813665869365569581374853372606714461271370220091076419976809764477578400711797676741398455209534441979977363797917834697127463036824209535342448687148268428836650656810345298955358294825598414921298207438519836007429856044140623256979993903300873516800322264028962914812241900517609168162743406551373421472500203776216225075480247991681903299313290886074598848402887892712746896143715501352033991049282549461194691176195890631155708834237476530348491442568163168943398098056352953738928040138901600083952397295536542331049687779911275655957906652072825964340987326502907013989813364794387445896982606045426468200228484261159356269530701655648537072866062252575066144477758705203544047264574812024683365020581058818546240333821544967764180955369721637565820273100541909225493558633696382349490472089189144572472175121506280832810550690356708394911461520989378223888290528853064740467118491259762702597432091411512625744588396940962220699196494147823331152043000190402918942722203933592605930018176504399020232132861105625251215292544375161036414440688134751749610586477473221657157628278469963840842181114736835882232039016056751307331288706327191836966285458665412750977525427557774223715394153727465253812077370160658339569940105298366223424852020063303968281284330636599400283203162136348335853368491623884973164179031068415661306092399610972797639019437142656438074889417925068580650004130602212284467592853759325127033035131844504589813611742232124238980805081613517818380147606011299962485941429628246286221222560271972114821814029663415393253883626956308576590995105793486040359052492651093653803413025325403017988129645246660004954749282513725123764094367333821948982347411299305787973889061356900109844578672562284345592822828250636954163658523718312418019284899619967098070426793519828108168914590208459945955889293208067000069382201999942035861832790885123356872291445123562829954486713311357411151858529665600125817342293574571809155070715930244382298664753653025730997738548636154317617790875632573666805657596261158344960856743601279495943584363292385952077112914104420683789880653695026468268660402390741176503398976649203972041859370461759037439295612676396732105693112794104453869106330463024022251061949067474049382526729251891589550710110904519965046051670966361424296772891357895956928357469165110748769643983390469407303076935950273353827633532388889081263078480517346373032819291262394243098852654248331210448116181573940303967986207918108980672239188079057424292646525882139240891302509203497789636988709553047667337838360100157712745372006928938599259351822065121889576780708050644072002410288281825354309550531511764177417913290274918409715481839163027636436946807664640450049822443239718840950154257473778213917772795684137831371601899780573945836904250969202533203658735277400569219312454949168783144509619321630062857551220203739369260463120220889774730979542550265430873364851768599322072632814396665377613213716766791965477335056182438630469820146377138117838531574993145988336144134458794284851797065824394415509659564141209927502327452284561300573687857686911902383405123530705890025360528927424425418494818796070417981994793790818440726356985978373409098814230366691403534207805294490690229634939865762928504188908146586208049744795247373397016221277402392147088679737032415523795223680812435334264532562958727120930991958506044362734230530612581771258080291610069386390907001768904020260280727230156347834475677784604274697656399643522531408098532581109083228822547945818695186406451196496533557290930827509488917875788815907246808864383743084492466795464403576569358961662605470763607981554920208945364671476841652031539424580788771795286930976507369207428222120053073668736594527166735020490543640431912124526273423877889542977611901882848192999248956351925946474478946280487927182536563096442323676742046466494923532267282704015704503239789849854579420249166096246789713739608792642453167256824874455135004138241575515682089918471568391090759739514593851851065237741916256765648665785107762700375725051946729522358470499017068334844399740605590924740885608321687891504726422633813018820297011889598912925862338399322430369568571992406523939810645786401907748569051542742609071073164972052584518290438913705573229224885610641419296741117618753985738956307187686845186083208641340324486503194486845959228648067416389955962727599903520982740308093816218597850208480121989980013205653045800670127261548666631392551340289318762578887441812553879257281399336667787952108970792061054836224564717791601056314012926616343509785220236312787015691518938156692664814572072626472469379643613874840677286250299816567767886160857336359842575491925172089978448517909394630446446891426509774990756887726600788146217927712499031822503364550378218393784608902349203830489821134066904901557467749275136078471133492845596140982719837061849911606036758148399839083452136459150839297380379228580598525911144571308547835584150183732972794328971907874613037855455527921272939407141640397999520898061189661082816816697874681758496059158300214221652214055579035099935706233323047250688291248053889108253496376524578762557546158128388567965997009172891022543982299296856869701715319019950598147848217827353339174698696024542599757830640735182562360442653858889373032905394935156453876067926587464407451347080517537510055766809651427673191508709699610800424791426298223069170066586896548362380187592563977098173252291555358184766894650249353851087263166269877886484678950850475106031080714004457843566717728010657328393311116164768404409876066726779544032662041526891455518449299820240105597807419683892878485991346089913457104323897430881022921489218847447712448056471390272087813850831596440559334668904772644701959022237064917658608023324512481641942885747558072816772523921640816685061261649476041194838250619427172680967469270121434104981181544536549700119584220175388951750727226979399340799902853923522576177068810143595366061999917870309350636385373497350490914195930424267537617431799454739031532986519100267278571844055892961662569841965639877886960677144459560475759241803059019366353065753371948455584742800477184470891398402709659441523905788703641338866137822708698207583929149373935726014752149614597235512432912221626215300114111470204653625249921224826265189960623071840747935432294010133777433772930966066761182072443021613298808687781649461183240447841757606090506463990311942425239000520594352390926918400585874568903183347481560704278746700464197177788247961968748355316332158932444259048991203090158483022443685819286797503998174500372528105990473760626319535071042850624457304326593934828601462729735468719928193745123213271608683126148106758522457890992115902827244446164802682393961388844604401564952066632524626218692350043712551305235416538997883032347387212608150419675649282665016515088961677225277056378721754300816002376322603157073677165188064086889247308016588929455243113803034565998278832192742998727195289770207038290274256376988607055293529079973938925515565116713623715817546810933888179160534350487897053250028458778562818764627725111301065953034851820596928017353172907228983218441392846770754616226859379661862330675561349680460687573595101619643446332260716241602567944628804335293874941136885895105340259437676374209312889150013516887278335174152588543574965183639070139395950458852335989515070023734597851495432684569372225936320736501096006847907077593665350587311458276164028530781366350817723042571767636499979469428671512192584299412707199222086733022540512117211589338027183947821971755575442938795319234231920695748467412469368520711660160191278815570433213658556915412366573317154619219093775064154912564313578323343353113490435764970048663122824158854256506633184872867455973449041410786612104690840752346850114385385322399643763295230100898224482085238586864326282204108196216766450197856210065003756456879796250778086837322704789645419551007602647400174775294314289505488616498234855548247300302825068260282998223425936364836756377794340863066876284489217641843555740294291462342978028687367458609010859938944682964621014867332917425201128522980025864432560360938769737250425279221028973367057854896450881161625510420223093769293674757665763012764620791236656603908916358872288332374578104134896383891752812141320782426451796298349248247478317749205518149947450522734440787035196327431498034563357395921057487184955751389407286768708135820161576091341594203871477922045984920374752828457827175748195559998178066310204041467453724638704373862482956598296744655736900921120976540801635095938384828917718215291892349738064806027201869176507665818146084501493772087944457588344458715528799945041871418251193014903995238956531622558806782033761724104654606460522690877939101657809476476216763769243789137368215381300156808967138719926493739569139620028467902133041462826589039087504202725967244280718546822156731361037912641384293865818436805193874328355875898258150237194896324384193665032853275217197270857207415295714391222739494954951658735232644678562054268493048060386015412932967836125772661076171219193114363659057652479852931620550776637297362724601661950425074908894555541057492732949167672848703998569053910146378474303503877163003886571520082945286045616476178024518828299898496876050193316220621254100515088225657749880624426783455867688468156921659512921914978086136768265827207342918215013726123710971513755114283033299419222139107359210817181044549075700905448722886456660056869831650123748819607925213163574937896007583101684532434923783783810372843304535516629355200981897158502476879886305751705019150369201392995361428664308654414125286537839858175336932960386317644398605390765890183063597755417262307852564197020933425226793491298651431555683270882003531810341436763066253013802489859572087741362253253217553229958581423227423582286907352432953495088359276659341786879200087236739574115470927696009062356422400187683873084455845033873531117169531302641499071670650344789992775404854353650289196526640543406504846872746757729571133553705409222186844762531915888401608730361923300807612093146175320811558598437345913199601659079143666107375122379281672583021131939798784669915683780125175663447237038704324800967227189491584473656842211109182773855991829163452477943516945077254943179511281139925811628416594599219830487957665086046234920303296895282750669352927810410327528842458694511816956561808830467847572322377452495836323145532199382312998238013112166668099294894127494090852546355293492178034114259439990040638908644274129222500120610412986218004962974408212228151026799942348829399481901402438156622527971550175645668477422428734175071480850473736836068303628665602633954573995523901785169963236186391362592175673569069338009769192266843706170093263558086524064137264443532792190987170142961185379287354233283714333695848811842235428441361222548945311490586553473470573370978736521284052515083102910085501086014348161191212199364676819738265038462306161427383061921508506921812462418853893769161670430259495294989864694874135325240289374058917648581299353190232170396412911556007339540115508604843100241548657652589141777242404352646760164112062907715238564182363149653589518969348383393115454933752588608692759518706613611168973007706000268414153984979190333667783623602227606713956812218742090591396564690858000025654493289955133858480825144361106119953642452774856152051171474326884830024295169060009053344262610375764134733754148103231782275575293056924590587906132642299137261829562876315861670773371387779242359235263787139076018197896076728087999944335453828745693181123543088962643530601897299516828964730227341151639573821353228032148105552450460923963435236891077035244660787121500138586981358528506893464236228251855602208765724659758570085973304829091296383886658717297471468582710338292441305508629449203335834675093233623274916071073777803344508978941708008992647504955315280405215875685161052543521405789832433328832589965822071979519876867554778558525679554902898986574305854597109064021010333642100486146689884207592475264403525732803294448587269600785549595132368559511442065028833770542396201045177774607905751721144359945877833791202554426226646187748154593778521446314745644846652355426325411857888801595060471651316296150839024340792076749225659455850596773722401018158755118538144308075032231011913126016486525942409001209812326703980196917563646259304807174918354468316174083054011697968990269509185326476144587532135367375501233975684619804004787168624243396740877549072832961716027842032546721290450211898676977821791856918240134794166741221202595859419782745516803753253289870620261628184786103660218411667302046051271560633034775272571486289711392208571738301275947243145994456944826724936428811026779422828034983738194777726197735220502809620384380037049290724471948970288698721818721757075341885499293461601587287933259260733971307753310969051236022329916136625106714345751345379874865134593439597566667043625815945543950767693993861643661531335366618206521334466002825301253278314198350214383761880153014074672383634729059648309602652609449955323079189814408942851147458978475655482847550142800159915854251509059623481490045317192472603651893104817108605618710441040716382267268479907840276124247007777131864038455356224674781665647970424099509754951380074165050985023115493779441612698116669820745568830206420695474901741500411797142958574919647994279670667910400439482542646590513595062525443956607685075471945399629844486029689641775315868551345085555091323533668915485927659590817175066923470580739935447614093771832102727875897545933224647559155477538962920588626021703904810217976247049794454896425938903371552787827052768001960225616852665386184759453261023678261656202682593671758777991133717386761280378996510626494019252799281248378862793539516335711797010599930439422395201683500231321656458966016300262583191728232776906088829868006425094450576809268757253879563293070884107627493417227447537538589076083996783281372435256718202147802882405591089655415717386849696933757659882716590843213821330141704996662585183343623222026412345745341057590207636707360473467332046194680174771414456522544495821047439751847262506964108958049264420670162069095572743078872371672707751072951432224619708074023222995657692777755139776542818148599829437949546937621169738701707548536680852406859154782153749398301979696559796016115258555158929579321182350293157606248958210432431065954004825332703474369111505090127654502309416241303146217965228379286116003849549837179929710574494614232067565930286449384498682996802271764384941407987887867171425513397418420494497642282038291422195217825526487519547009367799697663661340146372176726538913547153190797552760633236947676936224738236868496649809609938764961908197141738315888537220824992314621615848469061898619780022673803832493073854572981155940564951345542714668447634457533767426270671510102531895906753444268435968392211951060010759246745366234817833238677137401844927323760002258265715003376102125347616215410061610825235315305893480240044058107066023100463085634859839829118388627313852001992909755116549917366743469483455926697565311052751575098722447437108534081679924430036434087623741019111915797342298504961526583498713740297783611903204521268154384503856693031656864221139083926641764595655518194627723504625444242010812305265732687657797498214924464855178293960062565578722696274381788449992639028823191834117323395434393652519044174832620315057941365564677779393690450767628416338488020581865751139926771636332706795705470173048895477016302282147053664791731618311220763311065699741535820638998266730532805563193218497765840209872942106007213836586595271815152672433826640943212830141807113092759816741576215629919870078740002381613802619597360112697618167285386535660205733633785542930524784847829332178736094675564789930766231503645776181505986275982140859026547801843377670409067545970267656939866643799550478323099029433914522928323413318476470349420392563788427115790806412372883665821004956423034397551728892584557844522914873638754597540943483486732683859079814244414772026797771532479337115006358962484832557275979677750155622375302466547986404873796706532698164254603182746978929687718203284704632335120591592337576854657116897093507663076433383762285995478783294355925143938130401227557992785741324997366258170653487313148288317042205460919808908649695577359879555727811265839768802923175399896812074688828525306539425644279767927995072505265797438297241827482837999729678791658703316760587639865748936457965444577029956008767751190393105706073313856822284011817880688302556824214945677308588932029367085918413509813253715953378226376210193874399469299561734018267700101870230808036347672075427525281580652080495082380104080510059368984418120215628323872753043297418264741821758810630341145442459374000441505804162920471361374303824618988606369896282335110896939949891809027772218892886664342230722754780279838482232376309204089863065868583589530098928580263256306307944589046453452679865638097839173303098272945746884876558354465886692170423505874957636412670981059946344969081437903961223780633275440539880489832078807773741995118226338412447421659611527221462157216608961020931765238085292814046416249535110241836715949270791046373051921843647608691317879706846273347433318739691669907746713288374575313976219936096145680896449078139340950671200091299899307875317493314321803428349454390871170224323092699875944372898024968877209658621661671670410886774801740897054711878271899937937991656094101307484458528784867279330779240296342476043973810270073134916532702576910194363250149158686666338980057898393808514854958592214006134086963576571590586418588639973691882587561820722911378354202910729343112364142806315013874410488667615490122886907125619060896285297519399845785325927056276491360035276720517191417403550408686697274155104143545236726924292429345035290183870940312210535750669399828038754560758431672369713999287479885499076962615729575959425396336240131886686578598524622946899826689757853407672765322074335801854618580479103074498822777531643595485540521312672856064239927510769896535746814128281071875253658514392477671990936647728037567040180246487161630989278284598623654885398747671608262426392821834465693963698111681588114033293741105994602225035614509948423943953440098023471634000799389843466186931684973185351128487457070542642770724165595415419387565339762756204146453065991606344637607134822123410024154502947250454160814191568638446179487579947472238816500644765221348269453941671652973978329317582811482674616219575074510022667937484328543767219631356597321848062964634839303508391955065784174781630722590230554474336376846892368132088283162157830173161086102378706996330763407285274134629872554887969719862453052883109084407884544208768561089141174102488846873605690260075594244783004309739832459782709713891150513692468997193358870228476746226338676184453437800657771282047912970821204315357901103790185507365879160801188238846133398538283410106089910006699635727103021162590655329248792377864867232512742537785039438693060547215254229637880862971365010596443448343421086576499648507160741265514635838023306799053846837223505950857171662388601461987307270202696089404212801245551851012707014584980256371295030995143132267038289155823313226330107079894329206793231024682478106799601675167119097819860087030457003799248557586413990301836354216261128050118955516014657566935668109418279061378481229584377323264653549979957805157611613675395667504407230650685729175063527556203303894512671108040601281656929905038857129986673202219885808689532580010692950289843991560052666964085838759384264454002802819060141577881872085300298021293375318436270025427503300815332218609404194725562005871509070424592849825330811652679924688985727698464701127349768722607225165360921259117939720054607016826686770330598112745727928967323199680805615082423455322148794485882051685116834076683845454278428958845692461618203668213032242822768179281689835705006526071929173706635866175539626248984772006083448216697261455725814866316076171314811886382853108884519351898679549236530164200300879929233078184848929867371618772912897754815622894743822576535325380853036223949055828572083030358692437634018590655705587349142539900972281774348865536822647094487009718140991393129234037246743726381668577455064474414848735127615540912066850035924562799575434384240957789285794308995005988879894878811945514173130749067409958517344555508329330419403550629809289329901529504872560794668591904103212674757507740299300416571456765432528361414114669155416567277747400729830817105632084496508376280781731418190366579410105691879609402617671264850941095262675267335695816851554593700599941876493736285785515886095070467573517256905120396352923358594156836442687471603234034567576420690933392248066395018471879715598486293913732872051595321312505375745758521320822256628076105240949248151868425052142658333710153032803044879516252598517364221037026894234443438921828633416848161874621705017450669683552053549885169198650986966807351550650884435395826361262896755006180311925687912735801432648176136434319261550766755764852594259675923219524866967434964598286689627547265714596269858368642451753836672615627835753710118456576207349782467809110824519612578664878651054701699527287477090279136785292917755991569625144977025263733750730009163825094820010958167624544017392231217654961133866918144259129722292652227629001890028740726368058915165694156722182505685202763507565149508064558665224226862292208631002847429378386565527163034852058880039270999242911392973463323749822818046559480223578862153012352224384662636452551376724189182620483220237682615343869780146874344889970963441359399989814148762293804503746044603767830784737393691264808484348412681330664081280075145424657044638747112522382247999433554420793015117079360605921145954652918448384565214963544044597558512437719866596731531385367690668558134137065868989188007821215077593360916336475411974598074839718653235619576454510461965080317601269218743461522752873918753623799628231085943999680944897894725241967335112071821199035123460420699999744026687577394966254668269246113441411678038514794438237655734437098778704604403530406426079006384612498074289380853713336205076406176684815801156433634456533286465693636550308820951586814639664790420042426042570505067549708641526599957241599329716535057674605739834840143566104978627504653507056975933695539062421969099040502450343348816663871365971119401738487967113486341725171625176619687452675347027837585069097581366051368172236173485881414973068638908436572772616240356900870411890906339454313716129817820678312336173886448877103922168800713190461167839266033926944220470510417435715149009596981966118403450749638437594583728112188336971775444797906677653751858489583812663956879419525556931233170485366053394341653014087944243429043852040091400369542018659976058136137458266985819127386588653305228697664858356934711908101571489325876087391029497339724647248165534388688186560692625225337336878629328305534850346768033821173097031742392432036524640998473254941695873438624798221011171904017451663997220366040436851631343723726081570365875775430605269063419325454795241890564085724073451289022479610339661603670851066498494707115949886536717182498707343648553238885264754487326468775296763021960376648310095677158260138284296576042633645923785462566157782350193445654166464188186580319455759662663578181388243169411856370484873381004907043744959338303260156469858920693501459954742256629447607921810314730986884769211403174003871503605921349054758923301948262884666520208678874096285893658214115658702279241644085856739443648184432175467577279497188752747898716301012452317363226237635793671531299401988949224927246813334089277977646907368668553023549295490540511479080249599195117526904639737584027218432236622914805666566829812297723608009578088124238736129199149314740332139555382933049036885207963084884792936550234508126053133533169346598461269655318222032039064161146698702179465130013437892040548326134427698318950779798400525991206666839992853859775703830905820119159478717324554912764042172789337558120347971619184399916616106103767265421603495965834419036322691329374532053049941609631554094441346081501991269730983909996620488334586491546182895093767369788656143761923213032932207507038010400763714576736502885366254742199531912407443152464059873411605563705975564484649308771896295107873732426534398169640486181703655911193765035477982177810237968599139361002775563451126926419580267804882048953505893401559555704693902293538855873165754476841669376785606613138629075407690357769030523278737199278587740452329002064680645267281152888519303555760719561887267094256291504053927845127176737415610588358626655388187892773954156741699528303656530394700974630513285318285501072746355846349265737825649534218919639701177652196330602221104531384457804931957883357038226075546505151281439890764060899099740411038394611446664942353173447189544209816920155157858907704741770303025061064708119150791401999630035262784221927914451200793215764064269485849065511458278428253141511256131608328339894396418796543781225911646853142298001108500361539553162705215174049319190426638686184379746128692735416476361195401132799275210580438032191421496052622035421621712074944094084201065026118566070205393973523566974190546294334712344609664258438446654763464708642984676868717296434389031880368577044624177039777134080804770777777672086058835388364548287944230134950798316888248176631041282741519383143823567740350427248157479643659217017477289664924593615927695492297685955543312025904177913231635067972776351204669392000089133772700123504888364118895650803717013495901832470035764236161908899300830822567938105812624778421174085091655469926562837300831283817341765507099574864763025061092106057402572943978179488830667010375433995570085607043038801336927918076550160518534481528292432367366655625790989980653499328877652312607219819111003593385542384304189924065509110421395304327994333525654873858044760686384057017417431946687790681264343996434852822909594731432864389549355123141823285273827082222957717807620744842538304909669137197956040423236660529957842987802654774402437278209493556726380267806594715551060777618980126100779139000413048556299912413394504337562541828113983086760062164384356021491984364059831001176586374279276540464703918625364041979260243017158543973855389984960880319426568181984741904465376789851283881054238569288643210702093236013365480068167397910236452026667026904565936619413496722723444516982088261138705661447863221903756911812677021214348719946895740390520805674597137289380060106688099468571281729961302161683296155046662860207971656124375904251795903262822922400537359723320689844778787414192233324389375607003028765818060035009100632550405733399870684777958126391975835386832849232383972077819320625126574211630715330245785910705567605441427143915244298502705715674459483933872031313365969390070398561112493186594694465133356778933666257397901434963448902004477724910982819281300708883569030625000186798835270367683826948586168004011292003222708825585971143228917440358259525911299775085420284443376051771339060842395506627950325225560787927861309621828555682117734565391128002191903794159846309920900644529424616860424615039470120575389182763137110361326073377343290758052004511006722664788636155807250837864068089246844413301118093610540386900033048323775945432651941009139383618342777193776427141940211320032497035997505068150381115543959249847812197065290583660820524546894429056409235608057040396957295057401018515073127039844867938974358433925842535445421416922450722788321659604195235277316566235663617770108451971411820334400186682012684042061959122047747322385210977389951785022526707604645065843188072552526945823677026655873302559423424078086853251524327857675153037003091275596801142087261242251226987387771374270763230358024640622330450644613549953956932812532951859055736662195561617207367996811887789492832660881898486162508732509052160140678502845897762218816545836167102770589019379213712574589746759275582965242295800723038324259797639321421515431362816271021314624020037776181251075285291004651806013000935019034174005086435435928060536337293741227690379722381395552827829950712041320778937259403289765774607802904167447907492210154679481747622505858142806104711292890517569273222623221585659453777970998220457619083299329656881867540299135413203218380355419828043396227731835265929763959250901267099429752066928094849021693837351082636151276584323056142622459938898662573029357374733464243900178574921234239607722521646010434023407987450988236986295818033549379147208250729055862159406815010698813740692223406034231126249912529102997173443890852653794818993625977094452659977654126876560900538217991182392486953252208694182061942244226737126281904241723627879057177922483440107396020960371158615231892353660036700890603400555548689707170597140817915440303342460780309198997314240746816097108412016756439624384142265166036854899685548061224809047161556801048164870942534321411410761721987862899288464081069793452921704816115656979892676069090933298228549530199020874993683000201998583794804743362624363371892838633940721303389615387059960471257280478228041014200599572223347256253216280712093281138397611613521158296577852983196495000206487884705320908207443807327102381422921252593695079722159732910512907764474101408753211500695864754823987347663899215283307066180543908848462581555381853603755305828144380318087135652932235768275036964898811061616755939766023860678551526940088723905647252079394208268489219837844276038208917309106809696685633364748289703194065869340816968595736744082449038626647311051155822587173322336780483675315976741672966900861399406151357056370325855144484648418538216983293990624127275914217475308042314039832408858831048759482069730918293802437151402438561356549194864225070947356621703818303019084279146552465545230240410886146462904530244507716646753154880608033007318578753667731751083124597502118308517961147231361357294748643727542077881911030704833841331459418962416667497313066373709571560735705999318231410419064983076566916631650941810717159154551767947295569448089119156975964067135751112357379707039617822154375161355755725764150898937796369151642183632242989142773560595361657480680060923237082153386132400960406941269412452873749082208097484535623475422257973835765461846206619775410531462348730506899806688076231983950354647397045483916345980738384673570888636829714983991591229117686460468808277000985472151156988129459440659386539199069847801372131470104863577668224778042785800101819558638614217519867192883801144225905467576104228860298919187249806086929056012283247105953909955427374954480847750777091983548504578383433692073139344856795053599746329689050878587396149052000000215233374818754527677770020728081768538212920441132141593548105670025477027950894408885433636320724071013329042358272144615904811661508063584543789886477934723770054853486301312064361197420105594271376056964250232045504035459390846463909474478244659663461194559407893813015447619980981428407179838678781659971312822041555009571216159378170694971440436494051978731936573115645658028150426698312732431680140493416514468310931225572486613171741171135381475880626935064725078214141082045976228778372929262923616600273055904590539170379259858197945028546459550051226735604588722498324714894892976681097266310622310260020637295794253452916278297869167959032894485256531619119406330070585027135833158107293563534112533199093643366181029555289761904730491423079756178717339101732337452782403010836150041852521907022544833575641234539939120558723038732848973331425513031086369610529162465110702712154092667313042908022362566725574902857532942394240466584162540088702133681680766506925091121444208854740610571866585040720152811223532397622549655982828063296794988997473963229682277137878518789049355399742832291409512255865307961549022968341482992334706012971440904211252834621762961365999820741008590652326800584678066862037563211540208585838483266753907644262252368939932456320868823339925978753695020400545272640684134576026377900259955500927094591021556113964288870792419643941628107376963096251620624746134769256602000695695723715936059804173274014721867851854849035536902534487605923493744661092239593255304435456788817670237737424941682659347470690221775155584485671071359126617888861857388766659425468884843596450529957458212129770026949871531966845259558207108655490502371071136353641502117686659326519846617383894450983795179276921185892665731213646900932554421260400767526818340984926895310661127093947838309118427591314749313277900436692702024016286869485739434187024494337183547111576193421786923202787762237715337036867607957465828563454469214757783598441600592647403333633331710939873634784244447463895870480797833530350862392873681439068295003528072984816684026827947871813009316323036423034639184353075966400362510127171336482536623585036359738740999201569274103343429730147238341228802480104024645275886874385867149198680968029422184807161018217353729262122771301637899934731491894243559890577684915766157418631901443946648041931463373300646534655923444335139904695053134769637214294821374033818344333685877787601799288984164090147324476986219239315152578593378064894488976844349926233236023572478311079486760398582643634243948654397547346210214331932688358541220966265489079200587957501499590607460200241939118423815411322396751568004365695904289511433022661855852014099111048015693738769160367727430448195427099759231800863572408042471942110845833647959972281993855197088461264371008732506743319429115396399681345712311239026333073070940332456693089962137270372361724338615771730569270782098856574894237851202561961665638537362179118411410792839912276809679065324359628956427768642658349833543153290713487383297568060985313030833673627674317646495399067742032335812076900959769638983409977518029519462002322246521221758147839064196209680318712051655232734006263516999027362477681407388572200061183557024518766120349425772137342134188860677571080089639228417170642599683156018434125098181100113119804418601053418010360692182077065500746634121836846853114606656427163856523643703195028742160533856938200725806205900807376886025518469300923320024675637249931566304318272478483142786054387716776808673029606701660972063870768614922149077051961573567138587970787719524284326174174440423533083439075644979968062424345536568737379293777784223826343989775198427991323093881961636799308796968835822341428171232349562212698788841101197551103323462714913640884573892025397150749464212470346800074321451977282160506601255976154274566315076839774975259589937202766998696321314244758678888886007689005624261177927713754834677694014656440439561695763118161947284904243071108060478064870293865598181382372355568593428424281187460737880599592830723990120915628924923581691667224605233916189733126955886769599911549868101879756626575206270402397976786956160070401279045065017104188412169336040104574525521587363507422243005462336946296931987920788888336698973983522539774593009541671024552625452699228259366623699587696263428314701102252092473140595163457786281252391546861848795644585390076438059396208856601347867780250745396323282896487401479293458961896348863504083710532591605865991429822700466966637837026903390547745587722394764298641418979324322608305786251172962262318528314270281973846172555313502063171631980998880248995228765735096614426393078778003338815610945365753188418897123531822224841964284880942569448911609983719509969182140490493758309488702909278404861924091825268368543975725257706320045435250989800452872031085009165742154126591101413333594486832001987971703498834839800583824815029431039738691059394039471322201221247360502252965376229443992852314983309357993988635556239935265062036386692678160269077363976056633354182521508648424028241378194944103270677040936071649388423984316174698859487149358104321807814022645083963753430833257188527347777089811800818311158239742705900057175515640364941905296789735556461881678369063387874089156983327564665124307897703132718217927719734084862745081515317299581556649305128823411954218483352954064086166736701357467497166926671496761735811802070512550635749770357813270919031373475010765937332852511883485854692468701232694175336959338268236048581046467532927891018648830456242430389103225215373534745887046117698230451963225823686541744527551036162145171376813771415562712083441659556701849472245540423536272973292285896093426054676190996210763860246085873716572168372167119133547615805056541104048691331173969061445588567169819562703176264476003365049609437920507680077639991114737750717702873394586109866203426662532805695647518512527168770243317913670388577254399083944445287678815797878419886413466062511730748568156134256750091993545539547000606045631158760638658132567065924471385166359069314107240088368609672817535827907923342819306740389400584877956661999122902098328547730480473166406277994267751574994359485686631117228427978433944253882327277631506039833055604224322593688609214017610210446468813525258779933547474817850879630591495078836996189255079812943232674169156149836005866690880340349961736793763771985678630983946080351923604430180693249089773549402707550713076563028435495409528596913794626813737892345522881868931949322229402454161727093746121244039632052856485478099574408871642170478245736077685234047581003789523725174014210053372452519750708648732325269057245899755827705782551360410510115886388763682148435005748772363462232457762081171595439647613629933419892339917731808305169329021327864520662822665539844639929608575734986947737640580718708665871674465635891233874380107809021965898272846387908999273684443391168478194557573498949547701690670807432589461018239970349885603404309789598443597700567672319508990045236665381257410964922073593867388928258223795957167788113298297478102362946747386890171400735308464277708789135553642764622501744826647944790563649264061399491190692895679313772395101580920995143850589373924964230472196607537615227507517468522529838298029482403281719125074730557114112425875158388957098025898262776167438453605305649166799725417951725343781476871171972178511651416598948276548418242060491116851666308714924040895107767540676250064961176119007229117336599426935678646340351102117672051096684873516747492932148663880522490609183161742107892336666385725028064520536303561718113392815160323672714210691654117369508484227046165630114509858972024336355944805282803932571432719140510676624101447708887134558663151964054621726814635316782980615112823643032085518806693679433143434899448895220021370935170893558294053920239534229570310441230264241793931211747333965972168791393044033066833442918829489752091131255184193760105021519020107384077327323404237780773485290954126729091064393003489515062511980032398614253479871063091167512552389735435637030869697506474293683338180362072769072979361850759632970335754469242195121174117244622628116163504268168005030059676200932836407194980014335421649801973026040745914639433376453174132290381535683079858995499640680592419925163745285424599313204585566865035358388359817382773733881656691516671646248311120206997228227785106296419657339222390616526558235637618062972087895994850806979887844159330337264086472548970602527983177064977794451186610785930941901029434662077622004805689771260944958008354425693424155814157223176538999559534343004573769083623719959282204939981718272881571714002550204623579482581030088985515715006332173217307167719395335215805426996812780988697416669700364813813603179352970419747730378173971753408360174636156924194728709777300854364157385374042154243129638043518454708393157654961119986311167472313548227605954130190280977666276837424085650951568869455581040879998446964849457764384929896155938807107058601962631611522107880274898622903526228904326196919195443648221440416869317215639772454506784018548616970058028767594102683627413701145816258364360998801525101236756949135017173452281648090009882608621008303171346070515727457419120305982265495155756009600644996580510818080671775085051600051248048071124947998047641504639913353783753226909737422182072495859924479725452792854138290369232408624270118935270642374073554199994704297907328184092669309599779150685138268954382477353021706301537031739142456582030013870465529454243795039585826169205707312315171205893618058109121982413410436471454352986920227718335024772526282202127525162611369014666734945536011415798221040160755395972124566801763268400220439324522970767790577882272436314747211119056372617327423612737572600827660955260287887009698976190902365343471244275518064345459148746295545533739954270909516678404716865374779300923118216026917479216031484991104675487646922684167232032747634784547765623527892256737328711576500250507089612572012123748751019650221751114566806986368038702984054611447789395654046143574214479736195740070241249603786854028276644431662979673838306046820653024650808365930229771875368797461571769518638874538497473917992591559043400373496382374390665420960614241871595880390390958962921929101314571727912151029329437213551369250509645959559633800459962014122678024368485355009349551263388912557382886551087801192987471885289716341977464739110083546238297103865824057896460438309267895710121039212130072981871845400226351000781348865406115732304859293907309618966679151627220745618332648591524855815693005980693851306184596268591168854306925197479564613389877712628747500994563727278924646214795428815432111253060894822573781376262106872354466975524158301589935230624384274987110502235045612133472196958887830493353397842347515048738129462278395722387487438681911158305786991012276401102041801911128989265933189740112819235979317270790520944688841405141727145264560355646398519234287082266087747760848861237749058668807801874860153686179807619225677388567030010745856001308771680347797969424587993384387371020415698195679861150023180469397802827585677210202865991880816391363486053241437356356393581351015207166672616359070873019174295511596155559577442365617363854607820259880473606846606910939945669575910972767877155904521557837093849809946161853490752918096762641802279913076109852107275438865067529544431959417292944621361001780918250968002243731422334487778285132348892958135192410805823835236731659742335160339963624752698723860234180457644977273406841151024296534371717555568748649252043941072409608808199711578544941989836234145957431950876616554791532898772637807071318595160935594471399366631872367716603951709561900932766727550939077216324956883737721868220309275590116872960076507902728351566198759899375352879356740821602655330717954978544096586815976226483600499695275350777585848992333087232015015712075956393183284505772630886087238340991723172535766112709871015288971031074529270802026446981119984794001976069562819806824963051146694478227088979547939690493547828556281183899128942198001073617971016772654456964194091618698471124146287943641260016905263585883191943269985137607745654007854231944415932093057157389675148876060841512980861673102140595109771592305309874821779623945314745700812503805440848842191231612079639369176627795930813005883688770464314652106488792066732878191597152515010216482478216868378386417300464864968679716046700374793786345488419220684227939860030518393818296836879144966294193348864978066637297395636526261345018292911401220956232946525235919566952403318522620486325768279603648895982484295379841142758042520981998210203079439365739031411103518055603689824195078718731045783803044917798486468394243401511087765721545362799717921113104122900923313943421576796756293092868287524776156911351172536286167481323570145951358423884673625958521090274020226647057040145887525495042424723634053176147062405871783691655641113021753518993894273184674573750049232072013434810304226085723950559661332277106191784406791836956814915710282452733737290538060998612931060414346644271440598194722911837399122333537434061418225329753882881626354734299863205349331559198238340033383783735220950482248930657510085282788954922193228943404408739373357292107115868174889583095152666586837157738175431367199196598448039703668861063227059816871839283391255553064713233839418300158078743007501636485321248150320734200651206459909450241337201787931671187827227418098562469086146403791414027778547326111919591128491804197817551433401333061248727114403203928320656303908594654216784717287644276625570011791036956767958864434010351921742397988621304353588704203912663406403058120732418293327109126368065381951165063872526533155779591377208210372565887716457934047678283359884429854568393524879059883238849396008425968954159991377173159209256728718494219524053491796072261156598755255908603595859098646828381070888715645835787759012766443457522516467316794239791354354314635454200348784008662214956290049049795443117145558290747179114914076923472061923434236278684655648835064662002842360407488230728443946866771687922606242153493704674515034619997016166662746243621243868444815412574915469763760127924820561148726830082420929975213888256933503205885000752456856306848078970734694986656785746354526642984031264251467162307142957056850745899384707787910842387734905378023759606868019288055552220939195636340904351305783810877607956021819696380053121416759406792448066035810917111138020098213015695113952329519455083538330988362962178401969307292245219708260558893042773210784510016378689349338639612791724789086436418871667070507089792095233302865430137346880130445439560586307195096813059115185596728078344017945970300625028693309540815146366248429800406429397976551291114015225228770508344445983745216748835315194780413818216155943612123222310565961282410291175916863278679373954522434248243291783270277705720901183205740183006245409651167591587248361959419461928915212419628287669855778963684973784375247110368859131135170334945897336413628365454317847449830407652189565470764499166819963714290518317332100804173228210243671390063743980638071324009547131093045399645693555993836877003444971373058059085356652688936233083084819567440503675939073822955542857268745386458211403626844163262576721944800753283841178180346922656251003509215755947829596557503845298317684481361556814739420444430437619361251883674009502397912912306611802956044607559582439852920883499368393275971909561565304887503358893292269429908154038808545465638397084195289358583953638685179593156890167926281286788548395861639002146340456257484920805308612924662210302726394042800986022544113343163076332765138732621772921490072210621245820419273453972974617021625700975438421015781844144484679595982294543674884391023884692829551626747665268391035292433196644359156469551471682826632856987446857060642747328940187663571180422147055823737143002708710181476487436771431511706635209184955912327330549087149341353886073084689595602758669706292965354595537299832371720637901507632473050786113392381732875185425631910883790578295022178930093986229387532404393496548068574260319907155789733025561402074128137588138889282397685850362984782971633283557272157802814203981893730411971995387937281799956305655202640703124505131532134956230911785664381806670311919681291082852580305903102859478040218418974635764508297492471709809358999959354242112152812354369628741778866015875888989724240805308484653786236808877530293069712440098249371601697305639768528684239004567252245044046480010099071296149698746575565284490361146714810052203478436869977605152602997182150036117959332100077896850610402988912188896718155493541133151693204386326287042152994326622473711510080773996506322332269656844515648131085087733649288135524954496905076400375167269353671452380458240844690988218157648625779058165684613463118924623032649751479381424419354624346182002702499829559624257081958327732804572492226571292302577546691685696093889445492609703273352920477956308211572704994196980296163956608137325759826151895863410942276892246542114543386974254008505859228771028762484824056532040747563219424465249350845679310302309835546022837383735594961568010747704714752247391838260383797355720071398985368849232336092604028334108862451938204763030554920408274333366971327911398878536853372939925777622865931380347633434855562690642526722555525410760010882200386888832027608750643314828408909857687668585924088490954556782430535234526884677499405235419979509861543454177816537104917034293216848695011685117970501946601308781972648153860217936606366947940218751283050609015641328905075687285583239478410786191675311673488607927772809136302117876336427367833090334135406869084969637259928217254854338053112295948970476770766595533268043536289924427518314218138251528571495634622024354272656839105365612449787085725387549151328806852807617869860869911174374332272805061484342225412946576424348870979480071686640545300725625693571391608147411658303862612668916542302044833183465005333496878257737081333513060778841572080489624193769708372023958753726558765305465544156135642039041940160755971638450850966532968023687403079364135837345105763871753373813722819667490078510896523387639445865590021736239537416834266048594160351270865729879127257997019694215323407995230508257918625368823748379370871614154612823941360953200348469702596255953166989570594417015954357260183984855984475749563660518100157128471029546074086130641465068332436118710507373077286028634566622107186856015627470409472966471172344823284050149565975879160761348870892324756453335362587320817237860758934822944401056090510842591589202776531606292233467540277590031114538128825356556609293471963970678287546418447745547313943606084913085358418256191109472069908375086726434442558367392929497767595080581589947402123702546582260580663856960735905926475302236966941573285681379503560488337394090241221827972773210998225579985388016159878047364895807672196755604505089483814447947761512261162240292402952686117367738958062461040035597032765136656703489096104604541365834678884934688312576415030411998092589230655159792895250868628887591349829680563072079486296761418136113621732915024553292462716391481888814433175548849649571570719059689766547295870608856799729609494627378972859674129505875275283082766614086791515062425688181026775059550278469697614613946647472312843071769472695748613178071078341896908962980199022379976241161783235141728145175790425505144842569421632304629217659991616593401473613871540997867255195534188318039643692313040162962776081489880852355484470241645887412258470825544188547460441331089728341850039000359193348140038700541749449809619229985367187024673760058556538374934258151358169837658256388795000244026014652846679188628722767840162186952311292075539372374883742513344389561041850451849016581665925011918236132001488113604298626366484869561993590940650488157580534335559171097917215283088126695377852447785822777440774613461253312484943921435454415238668521174654874946321209910435604250493657681829706291557811200430434705087183246134271891566466672569809959776188559794329942129048760748304923032268602967300462686464464199455238419760551599931629308942160914789639767663911918397077412058651015044153506417129081247260183515246787785330928455115005009411142163731830561615626579095348447871684547746442315419738090844027914636630671395458837097324657083018354931231153178493559723110555989978256220292035828313616680490488294305731645933946809527782861247636326340882572605890625748884314489779254255568271951832114595673129919458759905244052162088464964316664655384822886466780384568268217144720579826792739888023318543616875792865312045013363539213747618015573504430054951332900410430955973122149380096269352082168046583119836149534652343876515633017954804359395779727532900133522136780769508674451227899388440484259235528982819008074340831469885418662734179512523273399053031675644467737885868189399433030446153659579560047287658266475120131487079983664597009414240577956669227859445226595792675752288762900156986366872308787512565351902244258058154949582844190740224005745345169026105635687054130032637731777440813477611202711986762451723581402834685384475287980943776490775111889171631897334359906434601342850401689136082918962675632222018760178741374051230114574121964168546097442081958058109748029342925154415286673616723488893303278964394110773377996877948579976279552264982619872048840219780541378419499065048003417174477455016743018666716549827975000253046031636895525116916399922750834601659105777197027759709697980738886322875250321671746205494750114909467432217229757013267455458034168525445919236387864665111453121723310705234274171608979674983591115913434603031102215030882649256913333382290700475868872617226916433507881957272692351886951364960430809463880526355885316298386052647835306982521056338796212747147844408789775892490561623063271593003195768210988968498726565048083301236071737370692019928109455456771446585321014981306424399142268690543637461103449338368946523842814427722571526811388401360710486973337144798448139606262016526198088021598288510416279434383143278887300482059031976398495738618455363162592312229148740269048122080195972915448243341573414592632831669262159526754955457885761203159610702229865702785700507082834813212060118453601993299238415010164591486380684072569601338644397702025891062478954565460307775976328320164385575641197787598240146804877049039174244455215816354848000197339474892054115013461034068442162984567118387815342372007527221915985887458987662232469395592775909031896329541992729230844250466095457123205827121404572611415344900583837445118164970978149689481911117921217749220956709908547878367736020005455039016157203673366316537380278170058137485005246512690482217277454314466656713645484279603147287445448162471050152171966336507376522731171906019931315380651551133171282556274510200266918756237848268575137634718178531474398645888366111010345901366742213799470611911246579174228763577589391141920666450490035274271894027686349417560655745140641896028253610309933459855228115663595343508840305940002630591889572636825173363065900381129743790046616654239913506074666872685581923864009258621884521500849236044650005038371583226911254900756845840825107746934166186409711926400610082199909104626557662668125104097690969283952087591317509577366178868967126370558125856048732642146536783293105070843472580559559139030698725257603040189643016981016139742590218844434198075953213337897720704956227385983507780583945232581952281152779909112269013808817745960233880401178672979539353828872854261050980168854234949607242836868118231678334921672594359271075683646845422034788956440513301635627772823871403162086828091953016383496367327763595006670488892629440320529956970044047261472246782220268064086095320460961463831415658637736962899931436339789867079050132901656139629814270327496075234937724088014741640468377461106086338811414504337039390004301211052432000188116646735340516447764140729085834522363699016169605986707736904487114346387400859032464611319482936456460315271624785313363940677903612780807197099717406958106657960469519498732287927255333825033381132187351571105007658220505416956045286569507004112634567403587800194063637527040819419562231921882857982122641221020663658416590902565234473484611035684171629175884511341014609436962076196493260261963761969583365200945458680861218419509091873711974437729037957499193908833250083904366117122008049119894180288006543666486124986622233699311192559316525479606908981508201427801550052450002681503139146751924121313464403580646809979591870038826672304465787685458658388007724108308084786445361874377014062904624196320266278725800208169317080261735071555188819341763806606490796481305352344132219045966679854089873433534448170388856979036461572662554020713423161095688021828719447821379855856716537373018244691416296844145989148727299960461965447630748713942702892340097833566285183545721989274454179184632683445680262563898620718309530044710519980548324834410530052285517941204554602162581919548514440595304114650384248737994248719839615920700873907717699294355720418591600801465726980700282576616269256765108951960928999793522665533229584878126601002017402868014522264799285126406297221793195681976452733159578019692435068813142674524963003679658230771043512618772985011941948496796187273051865398905243965511246465880176321041786576434088946711568606953753801260731361572857963401543487768052352566992916968796214470615090816119106127101443939148133871841081875427490781485334781975797508098280681555692874932385207488425585491044876753656452575715132289187033439222393412860130181838326456830116039208262945741890708154770188846876927761599227042571274662000053405971419505143448088557766265747366473912248389297197854058205429889386128291071715024764535471884190392732083049923405197523110786474084074258095546575730475933371323208871570246062620870182294826318199565299833255993041687705550027199077202173735733794770853239623884833423368331395096043095446601062022469894923491543497476247603689672799566863380485891654121169849590772389657600176416472851597178240807957728475201218537444335230624671123847357970344160600496448918454928097117357016706221778081511999561492592637931800820483489611564103031057382440045015852049652903823052363092488127330817593261135814033948424676748454452440118740584852949498435661091619138757724894552830352503661573380636755820443674530674669763658966405213515155304393611639111776442281286494771149873381992597547045513840508962481003589290210000855607994779845873837565376680101140057994024998000524159689598174789160968288337270369140534789535048763465285667202507480060471040705065953098347004686093670106634706060890802458677170027849207849158024730144459525606593563299124069573374577325261898195578711965546815878546738923373313059688639766583626292977368106336763442464310646275213650168871858610541234404811740981435764592312763586518390409840695127986879353514412834889089065454092062055585891587325733358457049639542278063722403296975302336882559384911494893427454782400539106958582976393614035849321057811547607062498448503290636912760059341305657195989035548724770230831166181517117296534626856472190992309408669006234288070749735224878957454966289224039175595556158659222147009117120403915906597872163675651360756449865005905392355955664359498055268328273081218907591681590085528668907535496242689300247132862074333329709166615959037551259309013155111788984006843519531859555337616013689517005421613075005243344769926995924259008813112224663020831566393546061461109222602674968518605316817524743553716638027682070516291164119413972080045284302514747032708975381767491839663460366434703201761038816051995901174639612582943266160463906656030110570703475565013351487644864776518085409790148986987098115237057681573623046661991520228538130767672405755916772282176962480199564269646487313636122057572514422404324392182937540275681406213802222620338537381106405286531035950259459537140179483458085740766009755734822167871912076891567306995070849689046592630399780161393613543652393233653141190286571100339917731942865916021245215631217899677589720358053074230566939968347920213978190329099625224208824802255135508887755621917364989814598098855806818665347610834819372543789636405542837467199109842305165599166305025804004818015931395077356321858671248754637874995900649451511069150676949518986776490863846538808903259003590624014052369039546299712448640684694479874320069970818385882386582866374391599807410306882680223569026889875204290297723941542728442393551151112585366176590400050933792353873350658711039260006864729605015889288080951397968762119314130061087687782477233035943508426323513438653045168820477884177264744776156348618183735319577929423017093468249916561029819250112210669970796435271704131293352927954028956342295144791920806961699099752534551969010538859937731339268473351145198749867420735062702328253555847771810724085527456200285010678586475255849578976238589695831784772523223069391054838360222320038427472795460520013529755723740506789318302437363503599852339950243054460400898527375149306395469829667100893146324549387702491527681547173542757190616788968603202217267514412740312598681412410822547167537114364309700664530674456305018000239238171248797065283080994765734452496085184763368241210628254686002356903898039732162989921320723226926462358332836996755454118884928401210105558382904787058751129364306749494148342388246088732214593229782741972893058988828754021223303922280245760139809846480416993023254316854221856050564017555497832671717735610716824739529469642687645190426055813323990961995604129901097930541250818106104640246014080788217580489903700856047385343555891722690862086985131413247867680949699790830526822620192758563299178812112875818428792291954264890846428154487134482413968835707790125688185856910768353894183219773701218423263049526684128894155614103040459221912380018809304647160957674530944814449421319095205955623491536913472995152681323870531717473094177656284835811139228876650924423574624800279993910125270751631283043055325401002189628402378565072225740568665493387174458706820561797588985955993892816688647827789587510836694034954052607065936334048296830623743018389241149613111398938659856568745162043833168824282426383662355997727119677566354210064097278945888098152927021787438175171388235536991742671979295693383939521097499403819626297169421659405780734318433503941285821733871675956872769419318780988667426227665121259584643450042032132254897251705887457842956061021941832817423259781531689177345288526071581408463025796854456239406856023304255496415647783151688440004640653271772139125784135622411416980722230097980506821266390118125376758865431720449834743754685983000759576011354728535835141229923840618161196319472768487328084146996306090425836039701537008273162231708726117713198798597622714882924176152915675500896430827229715836056621551651112985299703431238130485529410226264343838236379051081209411520437350455341063910157096165685275256125015863609077878696275734978254070144645763899392240836100279536876461900246473469948198498579232437365668051947045657801715102456112065767581137034380447340451298769065223380632816771701906920088047075882172585410930163552324528573470808634399371202042475867320497920393182888704531897633153841172768589714416035041312445451849323223422141981405041238515147223943934396892100053595715462324356140489621497242044350645786719861191935571420017271094753655679727039292426146296358788820354251079779862142338241016737525378512893282990672653290232991219763819890781376884287907925544871808967862079595906017209175860389700544654585857556127533054167042796592219381851207256105638582314179984352708578562694714731754416951370464141894744997630623597588219269399769221844191451252666189260265361560091293630233193242938291023251527319241047875024975274542068361797970006412231869397710684598911049042232364583689644662320456474215722330879086490789992807053095367895462557173005972689440202717192905199068619663893370426550339877373543127079314581628890098001900722064296550787192100716253843483931495649959615655614427185854133432129536651914323789835884017351018119480382491844004364784367731391347978065506754711973159352722063481616813600069116216377281678873815771928667649619270721477132819653819846613302276555041886731129173632294261760462465783897033081537658305636261834241336888951305433470337761132737952137439205967348831003827947171727098049097005705099422739289969595144130310248701617487091832198201944062004332637313979280671974699937013309105863632744205183727904433319894867347482899796129378134005171981564216897710839537142245673728598499876386733614188144531637917306469876569877920716902527617299460296134907698846422464203961415738466348775755237494067653229805897144443181449024626757794940101344702406847206092137749321737058295114493450623973390450632580581480984966577293377215807351683877584630283627482307588073745097186636100357907654533734764687044561976948084113077300664226276039644487556309283103640765443473835303995772212019325296618884033652982037635414998304069261367248186283134387838788664347657245182384689806897401917201264770053671237634039034768149557982262575043193621008415027779762496404052471861648077082978422720373960481354756002996939571353685703974971817802274266377319279895461485971801859565089452632315856370074600129519827054154009701174254933203940968269724027392945264004827229753771208154938088519968117275984748451844107681173558354142643019342152793226105064164277871435248692408943656631863514737796116270932545753163931657333440002765546356006125059046368248162429411702101561369600213067769364906540366533069333217792014874628546858367009203682921662102927715967696503511984715555598556816171709710395533247690952478670618688507542585644018874354565495630379446715641883895705456837065748351128412651184229165150442794700231676441927759736205361799970523581484923430816013773660280663961288921095116456621493611750324285780717069620077208233692532515802765203566402860790995094267596688952201141903744481146223686069976453201826790471746301636218012086398852864483509393768051824915449509624665984639429606199274165213498003025461690870272940073443137925129182606588925579265927973916819052615801319901724423405683171578225163586933978295570728044235940280902748661556901157840418331115239585869623974987651710262630490529951694602899932570367920679967334595632257962663094491965076923787347680683990429384472142338094880609197718710842093600324917730193487229658905211820563691489660074802695068341457546407986830255477165435938733745436699151557351866955940972172847238173838396702080183750124168255330014329228672299350452821708452162453461032366301939413972973297072447425130774352912474899924238905965986123510937015342939105602511772234776108910721241036926358317846414398379329338824321702833227879944108125605095435796652704944189309665449844303474018895164660567896533355546147044450556206206516987416243325628512099825060314175584666359238189357499680280345229213157265856841830037783159302899110716459766013050118295775462632812420801620616828217933882614414318094474403135768306035874784924236997686063916256942323893023466225265965481092465117569614799388548098692184300321328565066856730716387286545952774955163156533116590305822432679241042615041044621145331872564782440376291721937865560727609661862354260676784478508605110439848074181994833785133175579240671327832316665810693083242168609053688954735353334823896699992794537250492411744342387284748837948600745738088857644348556309405414266828738993989341755323049930643876409895799808782859639422880777598088763034652996704939456394024089825472042744988205253047419630516356007961285932980407787021374485992477263539393812100430218907577385472677148295365881098595166658290127146360654091374397672248400378620062956618010416310919799383142378028528818830023240530129967098453610846148668714113934483694566702204144112042093482538317671163860947979435854590249022839867991883137303080169492966445866373269976068476662327769240450274673489789391102689458244825291904147456070402357186800931935127755308114431107330991421303922220042849177343601218558665691791511626628104420721300343270807725319032871265794990634680127128616900844391994122686634805934351157010397694043814722308814862873139605379915311840815049853095868860574541994242408863383534866521068257532215225270724863884136146404714881921322015266210581392221519834750299666520444551495532108731032817872125602017106620520362998103885577237031830405591015214556396181448690996539399302170716499352513448961253002329989102279663516920089254873872543330870555499513914215788044182434316084820567970655681604663435358371415332067918880569881954589454160979179686556979284691922374932141727727650401094146578682996074477570757974686459852102357633291266304413348209802480707547861753460151045707744517864837630300552275896344725176008278285276605481157491212848948144105437566425000226849250585173796367159310225163901774532377623491565573565546293162065035733908712234641195371523390650255339258823630467966119872656672781810030160623787790393275788554649844756509908897983222748036150445931093950415286102560882021990798351693002632939257577525383371972536170971597230232000284878469473652109129469167144515448032800324664684169223598868483608104332336717661361560197223880147536675933992752001666751241314240695678103345703526108804249984346419770188100046571210290186941575706016737042706349377257008009808288952330039940400499205884907605399654684908393013078405592542816265177652344310147310715232726628030363005122356921514105176075758639026513857029366116746625779232786447393843631264386880996184150039815082471854430191909010013018665181822052415884584582747188619046731199265665503948185099799316497644745183739405631444831478108811631824237532231400110888145319788782096260855436990336111938542285031738684866848220316544158320523611932563226977002528015112115441912648403281888620002229215053518946660099580365013885735593998210602307482935041686161548538429818727996812554429639873775103583784850969473433561550032479002088079177373082376373593068468765631805341185933060281586695277737591317621933643924896791744919786363360544989159538610053485854430316549007840983430332074787961506976511054054483116698697705043291702294505185916103474793730665136375983774427567816321720826152632658477398307960589034187408421378600226367482879898660416329179727434970792488788356092429491575253783908360088683893784222571852056700470116409672758254571780037076300143843569077924846882493709801744527819342948634062112435075554583930716588762698312360783795129488828662666959249663767179097057922194406608597238930165482426813617923150779096487530808798562126572306047339823227591969440785072143021485162400700183254232971328762779590485738671119726830849721476942494171858034228552759728098291812282446099179864734328020660471862171545662986345122668847612305059113374973935578661860233879093966638912511368162595564703734053019887130869472890829019322430403126306117973202978834467750452612949246520468725698996717647135754708042223333325536668534451509207653875448085646758067712645853904386740997009249051313254480683437392850356849034505427621956130389129022896724003000851873928079147043430727675778665457896527717827313507627527260161302787592362324578630642365562853502403084416172521465192436866875280960575624109431022873658538579319287287697823332343111690379879109041296171794973658254401451200298370473450806736588641300596463829251381579590267718659681435936324780622373824194006759946226827662195100817761447434115677164756381854401555647624185596052022959970597908035369516390768841992630302532603900855840553343606356374330314679406216609547332121731654120197607582074780537732721763438996015175027017210339162744817561180433320366628356053004205892200396060536895970388004262412384964063035828045144262102399204961031348893529082112585479231389964951021997664517921381663088101702120578211287065499633279751236087950841310383790182368500499772713903349201949105091019773066097687784259424620075312472326319881070129506149454471295379191723243997887255825805143281631797064979001048014600501220578694949035106674779854387675606108661694930987034207559594823702981650539255419513660004400022976700497020054368644658513588073062138696469060000085030814852602652546277880167885476126128986695000408076620420603306246063042147385992852827798187703010307336483083695120866704814530557997989340329932364814935211707527932677606351871173403219885082897845833980411246478162083749968564812022679289207322061675088350587099995689189956575768833083639652218897335183375933278292317391781525889175773461571029687349517410085879816324684804590112099757965121865983233974501476196560288853310149117246303037003137672095103810601695084931419748436160843774755991401722060615234230299153282604664267386045263359044176008181405193809486443003238422086510619173685240932631042754492058626545249586831759711343547388741089459506401138209738606837926863561523211206819560167832848320245021395631206094577247022378413249135225974754744840701678811634084924902631544981173471038709317628184370193583291262152632198429543380332821195722294395102373332030821671961955572048469899232982717374435390255343912086260979374173798730337413444766122328213965302621683171298293120851161236124540712441019927088046852679330686562305561780876004744812542556475724147528518927295163475696902423344537722216749212059628733123069077923967574647511340560845980244173051063952981275321144235606739704754613763325831925623548990598974002164030619990714308734999575019454084646939746115293201750754552820147971785187987803162327246128302388611072186783435667792185553505702747232017609454773451549840851870937430414563688402281259850439339831372868901792412389355379453040681162206941712291647063498422995232743912782136191537580339706359005177008184904097223554145603190279199638580886811691849775444970184256486491230127467693832801921844980733433098442448984406655775324678448589411681761044013947371611188685088660934602961202880130007849982960633232876968176683804441899787207740298352867429244141071842801005030711603258648978685498526885920815617716911786308957618780799277820770090180797863742194300125096147011304690807267407868587535875040762839433605574730393832377845596031717455852088830805050649661356481102724658878081973865480576347939459084400302118784213773337782127985755302753440290988418795794977546356776626985377498686608989327239173110933373587658468211527092235152938365777168052784766851658035027680882335153406990935793613115335163241989612235148306503090501753703610706970395885685687162695343178748396521821333117109313142867784612720461499416423409651933034380547874178319261922346115120121219482487327970082230602264166609975484360919767967936914632683828537808663964054410043052363536919820379771785902293024459074269364995045075303616242309731999819711073736669152643542773236294468932007490401395235450202556775360181768335989077418738340305764203696304089649962163411117460744516667888320286426281309650774215014822342405465454150408729736200907282659182999340730401281647201438526914767149136124021523022206544580135368637885548087431854561095274626745261988694174965181002136729190714466399210579436505180368016665595238653199587539399970948924263238940075559777183404809696432368360758774180449895165013939281763930805254457960431531902215260921398774057663581272193053900194534846967864788659489285991244310189326259398127196988323724924774323145378893344977275843535153582314778203367663641906534577691630730740985170438327471974652638450519185873372504374085832853339383445401792640328564368203016662915014334930659021246802431642173789757284116933482688751270272179140696830766707410572901173756664696588430098497471182540953740064671544455654489861246386998881110526347597841996040512142024241653395048460809638968460669625123395249125539952886373135306365617948118365026364519884387612113638169028366759412869079309451034755521610559066266218662911547208798971340179412390820372165408155735891068485953980205090582425519284002295860418283998717460849866846596198383442196026019496148540515495095638229050922372367019740804480840010526025964960660860337594785118108484016252539689070619083185379987187026697257413321114680799551975798369038238954672822735621737334768570188300670401639947475165204002809763636916326700144364493930408834017531459795407483759263467732712047463866176559564750764282723122077019036339353277698006906688459158651936960859952248730580609185585017548924057508049581599658248674111355708411582352290751137266235974146384527241896861255563737053025408421951176680455493922923263962669549456359958286774306185734239904138776382302391575688386214532206960453659402829862998252421711659531227572301668079212256368983373743840019241475767898014839349255372815858818937160587134735037011950564894826313798873230709741271640035433712176129827501632496592035783417918769410746593676077470305950401923375996074025251396076207937279765833868819926642920416180067061719177661662197750706565855650923500694856561732641932376906612071109706950182361536496099400283465173618179236932123379285647594056178245399354561643675219405162536993480555345835289745752643279789424081641809318278263730132797382738907319791937043718462532779895660655144085836043623935582360735589179473617718092648510245918636756307710773865829572907491811063966139844775770347563434629722207776985523789191272968681891999677317352692668647609394495324819828082928983850612900412599724999841748867986983850245182806451588824656332744053479875787935017301121284744167111033594590299749213378785452058326867841460864598592096797163900191012942961162038720456682957056741802472879946911662983550202320115600771127845752197934257563607313135729118926182331741634337288261520710777329380257714483084996446808396309749858720900475274686310760180107706207246931812018716189651966658636150600237586199664921747056188382471108348810351771146846593842225302229276521429363616449146826074134384133735051605577718251361356458238734876314555860704575112546923234079637235748096999464009754556296055353303163538840387429952237821735682020259027575101339680650482876759825486775490345323864087428437424920597527491544619664680059166689306025117854169623743771706944735063399821678855702613797271544873651424575415681844958707268536182342511353769649985208024255572749282216521486728567639316404080578238878248964844056177146969452368860915785045666147155943216856326469799482756548688228044662137250821348392707407023609211260616487065577525536999349702715342709298852929535165017235643431485236998429683834335740256371373328572621020419225305951948650968117607748932084801057073379396926579316938367595078191271160179724106702484331732412371285420159819802085612147223674616394340156308627324933126478248831480654267831955187952770254952558850708320806977705014608367784145010527985990071730012095566667333148497696474330230254148874708421775421897393303025605462941448485799985571993181211512201955905012435068076821072660187441454473923673396625135154043282215610640407600628268271680948698887402475285835666787559985924319872379149300114692777811034782348480103621076628650453750583952054072804487102326436638291802049510667860634803019087905866926785240533465179504711539485541873182760427402597648695067280672306871991727504871172202106640474476836983010036383667723890635772578217900761201385290669367558387966137622846187030390043080631855651354068099155990617403453374070486722904859329972412643910517388008184722049981779730128626344002465144411206027990733550148357541735428966599687558844886974321303826800980161549011429723518754628363818790215372524648610153394624410582160424892858573250425947985288101079224170315214979161966693913812219614268835945630258792504574819445188492150635337694355519938489565336033087084159385167347027130705445722901580450760110322126232704577410780198578116942050926052879940849343435861041978340856895800965087674649894074814294208543606736534950350187752914851518419174363316255952991463305173293287322376637228401071206705711836834439484713398490431063336886577062152945112051255594133219285013044718648528226697856079671693958619077041678712384538415863097561501715661358147732845196523381096078789138995419513860864710595367709264762197736770405805832616464174396662586223512027179827751811429924016745211476828350786882452071166373834664381709682324920144805309883964403862232977863155739580452843170897332934675564371566095089452503397855292793907310607705694941065687603689280254988163052649359225078691894985114673664928969300400676468913776381950795472818297010706019857223448244630862405567942981558464448239003763988951991830936918512124116241712619237737823648527359337744957444805002027335443360834149303647662903299823230553217826119484690827513259603674266092717248435375950470845619891392569625345575905086980929423585714508780756267736638838116699833953907502703853037633648108030315998757657868482089644768401880745696382953641057371670953639808588021502110134232009937987982830744710181783336926977227181957723109070875048263257128210619542617622764472205516586462836372722164304215276015531001383284874762773344005948068396707993075213526491486214476152062140686770248812401256908014284199633536897606323207559588624658621456729508464141036267534437049859487852151958159797229718366968284411632305252320387110499846467305229112473206509100020744741041493482194035239978006603080584736658654054235541013784382417893884600479083386243011600441487456096998007207565148087261793256692717413383515713316908342270357190593102585253169151671175953974011016298738222607873368040788191173204471168487359062169672097632844294194271479939818486805443210078647659587791100462804276462993834529721004784837126757548579883096166438569541783169956499354896964695740379363981817155652879883966637542462266883196406916616099007554095980685074117245145236285380039512889225827178302301762451550933965240027865198405153385766116849619347205798379168020913610914246767529716116378662139885553679813104365659628611720680957743917991357185602733103708526166493308948131626942312377706988659407504743549529561184883182682979181863956492209430147364892149926119484793108942414828785632298063969257942361852162085842227336192042813356941837721815744525164430125705545397577936460048002589895744385788850295134783853689766334101251039798805085698680743862111324475696270678970321870063924552770401627781322362264756693830377957310532222485571920816245492691841817946964029942238020217455356909519304943104268675949753756528259619846208946844085655547572383705031224345690811658769357562932041362607070838786878610233752011537120355390184200074620565209509981936188663629612477862963361645083735440921229673265550476536115832668108072590834891664156994171935633681894536856958600361302243110196841151506349636602549572523129371331120338060499527396413290154408405946957450433313643388737043201512227299783163443593934071196772293789637980199714688315604401533873705593025315800350307324517419571979798872729982723194677349385768675879060834432208843210342618083679393054957164065102491931988698670016515526378134342828058317517307316744009331110956493182403794665663449945763866199126938314017115774021055011792524061301128365875360794826733366829595117293542418787143601804480512987357369156474603746637620672690469774755630406837432314749259533785663443772326544993381842091994475001246700686007581497705970262710269149924402071313926920628923797097138920854705670982208369453200565462127304509637155002006345796042627868567659562955343205118969716827166241930219482375794584999335276880168832792544363951975169669863890430862424396653300115491953325051266096181972164481244987585635897088546629107038135033700921029152049087729577955412768981761522113972049610396892140876479521888790550404411901218243794514171021047717546807537826109310044370623917831334100398621994189918787385645932688221463158496434251229644505221698764079356606085913969671074858606006885133750180383847547157495117122459214920470686802227060584222184672531454010809251991612396470242960387915640896716133891029705262902948342307986590353723194809754545097370015846964813379690595747530203845210464936122168702339287063206558080657217518100957579851056446643050764084178112424933194653696473284804955084679514999329668605110371038905608068635659403161270591087974250952182904814494819781326299191390392751528781413285589206504534164738955249314218914521202085616791836943059119835118743992843427074603967937627436769902882558095804733729384817329882837782760740779595893934976808185031604534963256660168949516482494233695759296859899784529585479546218731840453187317937728145928591221770878314249801812058507633285911967925984297682472025527745295535429103408179042302206240462132461932704017398326287562805944168090791057116386852360336921432406526280689330126982492573642447062714833059808383210640502918550777750056756254934839795688999423089637790480353192123668449118805228071254622470704896452089615598541845145394675805251293790703442155810350146339153797043706731136203931400392638307772738968757449231031878410545849112445886899448653870008829571241790936939391369011795758826259185168967638803788147419782693426238617126982536955465720503411716351349318134556792295495303864815650192696571956891205377205840921211860926745667135806029017866418317607928132979775365947274636669755868232621173402733922783492694649165857346507418812887856983835025362186456836564294212085636878564014291372870507610226929314560613251034320766803387386109578276622729725732449785320719726039790673857530535830966893901138702846404871260726181908333179404796187935999919397256109290478668549370495134016332071461581483130721074698796347960446256982512356153575584955353672089952345816721818857792042688633880725753277881764166277569447241067721754566060300264474595546597060622594583537881391996662113464837348551224549333567214489892189576366156621651532802619331504344472235018508305900732754174173056638518530411233628800803897223238839442285758863797765006980546886288692464176966654244617658472653447642162165780273555862864726518300934389880881579961791845380475128625700304627354004611023492358825005027632159834380706782340554867400979143877633494681634180951073038901371805445044403800085060781716421589456666632921848083029607649762115294355065581967340689342142308994949874819247354494034042489252143478490222345466582697528171452299633411220642036100244259914919334759510248614061324115241048437069520931806131189911835198220930329583714104470199518280226628059263966232588421810326368541266189216974857634935405199311332411567042472065899167929043288272592848395819538395858847083449512182258717489550562302308667732260058317916444841612760339554081013949294666162952795372170936397497039199989965955589075868548783224833895611679102873988144388945451343236280655599314081130592219968988514529294259445185707107958160741018367878962639544455396739968396134144136055521323935599287768525928231416437499603441165897667249348253399099777527263329102911289513534412625487931216099951544695529204538452226846386128490975189129352646036689982808405276266670784544643641463194578397695655787265483624285072618062397611624512080486558697039656977742674380448383786964962823858786054429499071427008782375584981674540679068404829519933351215521165228819809770596206993066225129312540568163151203670287699908408191125632620373029136916059938498979926074664183035506891083532145039634557944852007967284398008639384666958228424020042084847437229882892220675425957213685004854761029299667648689405265153335509887403543721290730466219193188140596338155569753146963238380136053427980796620188730621627883791055074035489079711817328130603864834904576977111510215790810059456065270624765235558462387625518092721765735710292202754015248347864515086306796694261532467529307401503824888117185243047057014208628985714862083372171426548848034853493894653635435138357776638100751921390153619312780890009515891816138217096297131941060926835930682874200590580316761489656194236244279785838822360735930832647858384780164752859201091956262466962102316094933624869007216074064491633506326400836762465138262002746859782906485380037189585492320502892499596683548320807930318427613789218211370072315145294628189520254292669859208246676113013762567427215892307389110718840909433752593689091927272838016090346461479799033772402708853460358344005195548811917546182233710365371149055999475489335447824574201134441626742071846949595972024061698128006242916963947400347250634965169010965801640529550695915652924973265839151400730535704749152120120607011111406889000705155227575331069929136480261945974918847798375258158246266691885268414217748813756971642138936125540990113498060410920085777830701619919360748119298599025618011670729466523574039915787036445983549854114579173013641829734654752817031229807217885668504287311835032326930590470995549376937021228258472414608393921621322096895584112309636618615917474991944974914357953591972440211436411049160813476934636020079012332502274774603405804641091884542403701250863854993441174233057101540072094558118653116990272628645368851844944362553624551206797129494257893148756028142145210808274672199811616046691437047982547027717999576576673926132483619286602271746323690453285459519916011734445968570403398268827907924214874987735982498493013778025954434129981590617029064271463793252923115013981301003769335246649966919244780725749789484157728564940576165902015209094980320925764225603261374687574604107298185025917648535545212801082890226253550586029756887722935723146853093658257915376992837077863881970391667439419759554188709217759966738854851121036612587843562160572146284731390637059038455784554212311809383170654310357073478677140663197207165645420984528686114995578477659507816483023127235436808006902284954392943301715101970094237989728665614834087102038472418836889030891845751733406549601378785192481112039710928337748800826337809643522260816443973051204091258326062307993373224294471342651462404816729288531305746942753698434707663426063001052455271167844041449271978062269171966227948653185783242482368125693034742149503994834565845962351094976676588413010022310963476574870835545894918688670486843685477080659314073173631544856992634596836176870298643934211179377557726339809012695681054895845152215128163167614160164344168609296699640545086963526541365186686765190164213542814130422308693764525719805140118878966251689799997508840249654688978867395305114983385605370039459004425253633239706484423602205518521588571191253828226448966742050870787662762713213059082205724288359298991927958883911609635183477102602411163574006607133787532927795881701545530679661322047314094263660943662097433214329622445875783201837553994853340889813934437391404659680651471030986935770417442419751356015730463320357924584400584129986627244286275166156640369479122924445604325223879261791231059541388967796900859928639314625361973025417311460775160027122445661719168090409377834240679362560915683970745097539682118478378486062928048086632928865899629629719821705305101397772350401915866595872758087828533956791346208982111973924569652144487988385831549861425841915597666624813710743881621865253064589582464033727318624996114559949915095161584564051114393596044710380751709650383646811795707737197250056685372334620480902204950406106395166536213584358007545144807179567874945451411173135271199147175607163608042521589805647030593515324787489535551304186418299488193526899970034827580864757171573484725225605952480435753939244128281529784895301712094125874201318587070307512396000509538806670597374608947134783440725632697461649227413511070532128659756514001044490958411924358463785216421246862735681252043099509559655213327437732955773065872696345859901799285951565026314768086265523587427864819495653105916691160278047533720753697663988536996005355696204056690126518374003218229371988887078369729329062402135358283921521760352193045151780371791871709442624431560297275507267685544718955961606095502459845172112313261753133345456964862363919559453328187021690609026235841247212760395987778973128457769462624061190777455823416203750929980316888754431289163730720891771990227763777611598906419708557409672309558722304194881825045187567336483841513480888815646356839309730861558967812985620951405424799300302233772358379826771779915647908826597226903012997480933032847670461152116870347590396124673144432002369257699676472813149817478953276933737656498166422441768828255549114368246837143604873204886901471534117890602145380252622908160354041198032364345475540074125750918479809642952815076419228302989323376065465362308225248374867013225722074871065102751331255665557928173902383875646657658409186452847852098607276684992648220095286905453765122056022400934032240412009719307107249609042210591432489869904054377771270208115661269241400111231353838176568991772942762644458691314867788387204828298762712564496362930395072076751846582541839770836647364521818981581407423562090460349498156941239658672987632088488298096910253757633689454598659348868220270674074625878231433398719024555802367443262212036343319981789735715625094592531613736303127301604879335189174176845263351808193923342512597087751777981450647230922403419283379422789716866388652067047097957058147415954205381744615381398754852543092365778907815291701975087675351300499315987932100940081148602944771689701814891978603608081569503774655633508889129406652761481088148133006043849265536811622506759851153226296523380298855194087725472775773528603321908485415589363834938682736066257677094893449784062404256292198921643423680641777812872541849046865014359140034607472143335937912030281229161657296823888054240625556550083694336790079235097066657594355643585335251982228403591284030840870176814279118233246318224736355802039534889716263728745171619319963581040562521419439054197030034867130107728712526798593879015354385378066973110757745524631829906050235869923463970538815774033035444897475399886727022934332306646676076733138602237041028603332484468109253868014659107493666603241641773432672570451126791372847754597946386655247275224194933960195455081213473701924728301218697598400663059626965613843180370583523257638905893369910184781739633889768377374307637240109492442349491771055787488046285353561548892548000141184969342537615757386819782105774831817593713203672968565014947797284693489526070397170598826362188875891890785713453077116355734765392277028835059183286877440359696322062782143605766017255075189214531601250474181611678387513924051112385197388745171312368753435484811412684404351795896815606131966225921181536625642377483205179277988300302825648151071962509938907663680088947046884728047164519996654608204454460584398944626908655812477943790464764444873090403384337148056503435521323876496438788633466062001974624440049618357603073754605018195537869637826859321902443923653258399509301918928795752831654470118713742715764891252155046447523474933990566982853395156709047241030279848435879017823167231219381407332102147325831297186196564782535086414253975193408903007372870141159244156298417357235951871267030324593512992835730047446228348434576073298673086628321872410903895800494773257365290211991757656123206272371607962670671521827693831301039700667124064080406251624178606123151583487268880953292153800147274933936981090333193997969126609951061618782210004627112369660666663761113798400377276245841441520477598230718692606307710760134187921814434766886234875928254044974373290658508218660573103444010042829329280294436128826913128753758969594801335177105505163416331515474589751322036952229908509595855648129963250845683355805520789913435562392252167562277861780715651619551105859559639712088103310698567170799050475610787283496565423922597605448075635683373392686729798994203593862909892411643615071823547140565236016431675712249093235156894585240377690266365969950725910886474790773206475648655537364995727886506139920168206884267638787856574256720850795444846975862898286121954787687772014214190990080946926227999399515608201370853786401469900064957890149703585810655472647462664813793049050838715444403360540188496560828213090125936596542038170467924438948725745901141768192141649583710104470652321497915855294135882272931970712102226854086702569598475642097296669623198068718823905090993828688676109596642885159761612623178813505063966010839932153192165636860774939131622247015526577847574124659191986601225553187199008872537356525517518830939855281606878797057268362193199092526140265312175454617688541026240999062053949820019207766504749889682588251656047340200723687206104845719384899734350392424811158008009754965079662337997442632757518961446248540090399407433515148819108791062754930653125272463698847915278229131825184783824413086072693995565919596890456225086889594222496016425066522913822860672086449539154509262470566222489709690611192984879919923500954231843543428345740745796654927927310860041762487460240132834118391385926393185668917582634013468685150051691186364208166000995390451308851999268449192599889736111820514456249334756879408088503824209772985703526542949938829177359780878320079365032794367704744717799272315318254515741590337676758894501511430678720930378237633529199657636659169960645271416039481433103943466651757950426624345319609223322386685199927153958878180101166643392880204815598116349976258657961943299660540201122020547403917920465216453961922802997153213222701597267278798855796237448059473110805305945941926646131128833982634258695106853220682973006135145382749662607782956942801542511219358640253477672069782289762107832054250187582066431447543543356980460893674653535424975456914257607230303781804017138208992131286335494801443712131496542835490874737643427661268629046014876680823443473578157357881192307047404969390692080504725507393395689805671116964425311281163634938498854695483981844192142364173477440910403767262864827880006483811301275579738537231127226209457074435596102984087327710886315147715893587754756190835073765396678318305626215957407962321906565764676759277768834845552100381410973936827917479648988646769303423682602409089530527657733235172540000092220468450444483844416965148399706432303812466944713778167037626542696133513027879501912173530113259997250787471713374504930527053689614593013268488813453145745560232054913421607808298020273411448209075468838282645726512222358120771951853430069282739441749851995118724073791767031093675275415221641984104115115578000533410301433148816785217706119721302947623369987497896442842782997161044885578432293448660295726274080979216470237203356824936596068039238736305720282140565091819082027195590152710642899204478783836194407422136018278864775788749085335236025444283935644539640901562573464060071826914323490918059307866810437174919889441299046252965629817297336281698582459462324645397997756355439524519276043158643115519930722570680734275641687964107320730641861688845081468759580945078560933904323948045740425547677243989027433123788103158501600076966471638466051022645554415627198326887992629532614796803103002807345847881137562197223219406694732521037371979115948444333090733164449324907223022618830367872087417782371063089663805984637114367162248457126964424312777263279094709178995939281689920875256652229451606855518840279758666759070930481670186817049005249543776243413157523237721805325034830197548447669054259405204811050787317290168627018973910772289823007124452683717314806582391971848750574814080701941565554735437098462203961127473904471178977658585136882249885586714361919884175389380423882918129473916148114843620880425946146241537719121819402916014714616800699778540802658829469075339606596213559171825077606764359126501664688011429200902670324462158866561058881356384915340689255916759402723047437878164860739450297275449355531626952629973196315883989472972738073741944283427816275424790339193795089018136099212775313768739804677934100612900933579318110371209476229773644843627449226356718099299214770187211187292527047905215198197259366356915591194579422055234022450062047417896770367291767982538196758287425366809607325653807578772128421529647985723757337996773326396358846834879509647910665319736484347624511849436796972978757606536974855107840374834551207528199912076343571833701105075823595911290780222761440066675234633860587366359025924469107672065789803881549451689145604010432757261670751896669130412393592694878349718401895589853698606908991281630788734283565652200023728198811235789579492532746971425248319212282881311003946579179571261452907447099788672227195949512683968596003165725053251892853897362053074338489294281244138164862860199214015562856355744540630257307025331920149446859234888110601730301492983002255628436749368017905666937549038216807103971625619380766623533991569800288080540429598072408928305493454804738821670893607987496883933828418794985358235362156484145551801997525712236770870098124627845787388847974815328165981007852895220116176221930239428432938450141791972759920565963029347723373013543879002291388355348609028723519889971682826889974056695943351828685782257938744770579073237633916365567674027768609056748259341103343280836603052407030824102182061718442654778818915013092844267913155397035815810027243390750408306042876813180431320604457082995275396569916188881270289962118489229240612020431857263475196851552363201182485141321449224327405478822098232364922131420215444556617618925135235696939977350304132640454609364100963458467977210606808049014726772487253155840297269174913289638366142140471479763353026056045830250727425284385683525862364907021288483989222853164241425661323399652936386008445601411095243316786320481343351977099607265235980688890828635452171409959687471113725908593452589737448278782501255801493118291821832672655082160435905574161956476577396546723860473099048693898282192202862732001594695600929183402111712637098158534107003495982291199411268810810519623878011172222491135973823673219343032288179980518957386721938292134129219905404355630694115439607390135532022960872861199237090945961263751877102515322583940752880410354484406193649959724307905628587780139137415801543260492563046828660069746901173897002970373084371763830861654115320018747282132087086918282043128465519895178906037322398141178616426013952894323651032123106795837701233712921967608630035466339303334035496980714337452950566726913022952873264864903057094031677356786794851157074482802196512997496117245749997934603177556666789187098071790020921857605846272158240946957296204548108693808963386056711175346722196893185696229655973134301249143002582740877311844604728427203542656889212654950214523346143146152881489428909448649070070619478459536439984951476862082685950832089909680981877484242955083144743701308374037177573974576810282061103272792601339451830633560253569975279840931104196810192098495680455493601606848727884109528176438584534585159046097904485396098229608702572697284721293846582977007862987454405113642729796677522335991530644036789480894499957871077317461238624666062742224005883524309148528665341828509646803300821120265806832464183332142991985184296532753098812484480163056747525063902006985373042448489850471586282603528352403225380141054140769061933556127494319965983077811805443116512403338117950733282711111817918795120289656789686157333084165698247862508991321158675887418037602361692811082608299207791286069114892246515870804378669626868174162961089798452979027765380996282191958461044732977943874689362956260884445505585551861973100825423205408769124897247320834105987246017128672500165532383401636695292968111925935663353651423369493321979692955816063245914837133341052091789362137499085803114638914027809538239223885216455080643051447977667381491009362568699749910368719503821635780261308456683083880350507858564377128137779635741057036294214718653466864877983458899537308944283369848105893629738448648219300990364613186722742775883903642050252921108251061454557459187720373581144354708698335099377952078652799603057333473372150238480691314208616149190824712765637430010618380488892069063183064900105416769829566915548416440496629378854265638800002062427259845530120318973714804798963497277557697490100572326877090903276336240957962032873640116768660327503786057197542187587664346704910353841379686460400285907596641499181620410174107838725662030957779749979390135427448917846810919740709986251158157616165308928285172615998233263192416376170824507780676342039583777794309068194256353546941313379905482151535955699882035920989958192445191659501978235349269680037090659765980620989805350621131029762677139014178134878955325303299811166821820571008417005846456036273615856316542454056993051342332456241844955547269804654176058319381912037092454011700134596701313343803859262547426383956157859911535441193184378563238285785502102161368505433337000825512221058430218112155279914081637811698064563953867958975038509713848270510464720220457630644561819340701932009363158597462222688073138595768944171550153539159726504385494225281293509699692327398107869364184935792762933135849451533795601503044448794849900600763541855028333102908685839302214080115773626998893326559110174909861150480750130968737254237376360544384440953534435173837059408973895203192267698803258567486927223640566304008519047462432182302772811986603097438780492098658130324218291846119837096018205196863232427609412132728018106809817979074743159307546772487907618133199075466159645200511725133686211667321583508770871519561938458665212368652257973828358216468675217750952830599241357544058147981413608630643147047574036502114492124142427170377546203403719354549870086092513981763565267056663908990649216669680695513521862249461807253141749089893927651205461504407643760616227260122240192408758705613700216620662247066457953933896148124129096485627894877800450164898362991714627270083799724920280446878530742403338239600303027317010632908388781260872211317822877604711470674760002125511055380103824172874051744648659949753342424205557308871423873284897180464065534094168236432593608021133531412619905125321387039269354181396546300611868779673360560250729487633024319440095600905149962378668490323985540831152981178751455475436743280034145947118272806506346393689597550940107218973793980897816997988030929710842999625777961655002461308627763222532173431429714621353675181234857754881402896174583520576245019383744136765368048748366318371877320375073455583538864825084635994865510185016275140544823929081068774146912274972898215978332970642740976797842757429759694421719602254131490677802082826873631806036854854316943528223131334009920906356896983115087592907606958425665802602954941461695504849370399313359422856927180947927110112831420113875679508422661923946130408736282474519350543578990060063760970282536570862856389829005413270940816372579167112572303327816735372522332055253531764148850951260162382921191724105996706668483732677208053039379201024780090195897520712228867496597508579240388345032451216709849543116019232072174089277702495403238930933804514044069637548524827705315410197047622661332767607617886806732557865933805347720230841572599687883625670771118815947281610363916731096086539645633777672128911872012235451652377914015370351271966822066683560754347747468326743224783451895703204194130348080046766637845487790041523464285813290518652452895049499140139433474369290908879129799907915583528258630194672826197518667437726100568246150275378641536903608007448910491363365324224095878930472694983581583442457748900580722191625151443191676495417006075399899865413724606156294318811947940285944613475946127717343767640263937793850660742200709605544961571692031662452742035398934710258807002093308899087008230373981641444462367534298298739549911858284980311249135660704145198363804283065557015386262878166116273139285997901492552682910130861977571622396355718821899181728944284346009246556188450513991310560236542753689756228138156814324598866880985405646736517811316378292282644382697117056120450155735753667755940469151850170102741597366797554767584402636524409963803896721935554863195006049905837157741034670992335977696329259618079200570285273803916211741184244775422868317261726635076107150044677385072362026675113256152415921219727280190093031704468833407354329227102836991176436185276996270994124738446244336045864154986798598208532878650134210533458890572127475712561354195729868306018428420999648623580304012195778618220765314569771127049110420682794751505510867395475129443270774554227429139078387964047178277098253239114825285628070000627542077859994975913155430661192487910884367486630757719934849443085621252023617074960069835844880003331331708232268086785474718211411839839254613632026589706334006458425670295075592769318116875026055088021432711299213614639600572551136213843622513483294060125585113434501705978240616277436157043252630239379730415438691777014555267370858983695338678678840725417003587909307557006505889715343448107257224889953330866183747463954505561847345946056935356493148221978429742947255583960529137342758631907005795373806846191245874049475653117671363039657907761188459728790858395572858664577320003146005015820354507220859808497325702558615104937800599361912683356117970151087765467497208146115317909423416094954009044865368361252729644246434318169329939019045290225782481066695509390542454706145445113696074797890008397772512349380276225731093575412652280023501534153536750764492451999249254169950207433379331866594969549401064514255417998330323704986886034873004711226185604830988041452106137654094257810206124826318999231661305375235716872952966406156140946274901925702848407528759619564312968345898045383813592669358301530526857268520803578494775491870205236150019070482249074496847579223546983395378983232222736693421823476248485807837883428441409211651293110367589597001165230957544054910306612985872560566599529206637922060699352566429464171703577375314917579980562669139926096756358250623561690709479008409669414662010012231890615034360337381423437746516070762832983089189926918881920531291192380678027120772553348456806662330894712988363917037733657148259230348275683389498531069282101237173519648715666964773389640952879506156736552600481193574367879084907731255628965914834018609936657850089674936048542502194091262300987182680668509903775366117874459107084257183588958646493407621105312762234849659202211505057782684487526215688129092450342881322458355542047581547900005053635133187748813010065541633778074538000963340106604562307308644104353346314230864395419615452287399849597927420913208195360469477244880556772678098642581329706532871170306665232075361564472785099723333893033634578463890304262981188403952931130381167690831954320191228265860824027070632834765466621340142988411894822627836499601514705986996997634208833023175183154020174493178554816690607448543815038348276849377920158939398459440591573165811224212481222541734014565967213020375253126129755423099389818591017892938938610660587947193887578057853687368678651921195892430072204293391165450217789845250528492108857252502476043075796780066552807567112351562196917332641427440732591587135193802347390563543043366429318395634580345692999176182618951824862318741575000348795184366841652305715575833146249889963301003943027969647537847511965759825771708950872046885567357455037292480485289320943414219108615078868610497382993757334497043891918489165800854882684611041967706577811402495729293123916387152573026574687833167609421296344748289631390815254411694583441133171843572632195139867885848564459992542529557622074148548922597088033033127576269862821923823355581035651967880851662993796459750209388653178338935147180127551858926333593566683704170390606652341153518594611405976528036783283157545224488789448789514599546635706003841967219105469758786236216065889478699555063983226000579033601542423512688723819842201319242076129374901251220730728424979692185426958329518015333735966647737302857113440426620624161986235174114309005037288512657099041214948473306984634751383668431311134996536027400886352032848106599198084539896087397634430834886151546567031798555203322625472574298879436884003034551878326950566804962902195791606382597871287589826689603596030367525349946489148856211584883048289865009031176713201478479573621710919583714274082352691151154507559950489039258270571999829284974899665004382768700323234703490858258808458630040021607382361640512355582462079149240524667075733219126946755638575246388259130294712769778170046471518478499231689725413235461517108819085422778471344374492151051397130523286147973502574470177571718904284426485513903759740993564735438918213352326777726245034786291497282635794594578413591256589003032490351356328185707035244694979580838829671052183853739196171045423131532741983582036947033091839064840595101935509437725970351582596397285647647173870262382544230985809902655076934933967526076538315101316690329224337893701149189850112160855829971426795630529961202930810342384032351138464055183073604098389965304575069186227746672298544314810664895722040584419791282463870809227585034548842759562108651285706027983137736464265229241577564820138403997935111273552767737213753985402953591866970953013171636911328197939577342604140430005233660680162572783791998247227038910790522002910913369998125675795165942022058955252273177668970478027927930443974224155514027185738970440692994644107471555120553275394737519596933734971029311611177502143960774555902043595829270596583740129222254954942851327182671739421569260698564050216226693409965014178339736383300680232657452874154088442992215232395817612785792232867871168951317526897291362891309631450762395782873401150220054723418797301678110014774964541907095863947900826327762909690031129697442635498528969872026558928838232219909522804404484566187955608671800641883109138242209492501935728194316295383989102157808636905940642552631131174201531498045380038299891664657279747806699882697365646944399854255106379983284032622269544087451149108483658698507115803459458309513361644646855813526093886438899635470268457799789348723023053108413108806858432452803494641798203636616810396787769183766683172387084163063199375197430731173073302793146502814899985965414119625182598339399305310077263577613407774629318473891321355988789858914637192112572672041993959931585924197989408062396040806930912199403498757299401445219227668296701637706442910203782609375316523970611177778231115828273878765148960665011143403270125153004721455428622546712336701530098345280888775999793826033743463008016236553887176905801668003699712556643759192040222357190991399720269882369954011303035657445066430874214934737115746335197412745475716997104830380427356809650774413426025044017395891530285220674250116183698755857857499989740490577268346319264031970882648243049316733777091602658276511266104012204004970805064793325520585720375526228625105630405876311200710449745740724130758886995963041469892691313217021385183984729792409779305275336760328124699113125748353764753594764863194376346755920010644010025750018942439351251647028185789089694602350354407630602484146128407411824825553742465809529051408550029283922650167447157069697041504163720519576484321150205882303842359493285883368926836627453869249904913405388550879017198462708839658741600625314156666050205755369562698187185374747720482017033773443590954945680911820563255677994585565791332088848150837355496991458668383092676384790082497500459400653328569362622179442938798737895102175858309218592156817373266801444556258295270911748569142430173672719328051160149756124158557129388032137360388823712639916710642638552303371133887988635857066801389839155984730240214273480553845705260063111515955474863714365348516526284429965927165694593642070335344827733119625184286123010019195986102377566890440707277906409717759465861901567117192522318321848416111086477924059605819402642199281124289372654454209703190073958210007363668242154038786963217416862042293164583094799587296255124845542471982205093665617665165804116395758912001727853255525586668783855444794045621443476635905232160126972957871841302544601057985204470756340973873699519567531586933360419529760142772946821992572817055617325466054572125561347902515220759183935969722901007788051081093962847209536816112687226997641658636199635755735540114958108934273979550706179975115242752750049005789435530588308148209956871038182754109651981784554654772011160169303075481102427777880927130014307912748548716427916072746024774622059243623732475881924158338682747470078568851111810119888324379767681457477908498847500581335853099944647089967329647795075204651140541255715526801577503989787772237798210031009064112834137409778514275941869102476135821960211741257133534245469146983914965283891650163382854595340331264973694944017254048150717771760971244408756593275865646885517797903312272783077002431122091491392423831434739014119389063181721021659459676020918626962661605679490510622108365193979789124968447725970246866094783356598813972467263812392627246031868417881208503984960899255835735730743031194756274555181378080542681672600463901430583835892863706647361092411758222069323269299489081358195883433451272315989594876401916468785981796777580938115689017079250004245259349420033349726362612200814078957820759342227961831115533654689143427722208746119855930440183803975706441798634235549756272824581144764646917705089025495776572673483438077849305857453475339733474291123388082326370359167065363681811516983466222978039417754080174364725189861860146705229760315168479894188828022880974375084220098374522811496489377538468902835811642483486876092304194646489021447731840650325958527740264184717206608653185047656604520995371115468778999881089574426274027959411139233564688086662336868706983613932805750919594903287324852556724172369612819389088442145447224478299890226328277960466656094806943712017490900118931569893607345466987767779811105489993916359308103276203428067576907441495406193545725012048660834325985598396340927755175930546702352883190196050068747424923563744846900907588301007172651245526845063250672346016633188315230353166174897109121248533816381021093298984454715705184875069428639564870827768463159757104410492138283320972791267056048772980171180093117780545978776462518756680711434294914298073947418338626002607164621026469730039777869625987509479497481572034186808261296002300766277810809005577881729617846115325007914963574119585680727302701971913783558424615134316043582591650611724216443304443115207827909877494751805919650614697124040500306674975407404397083606559385441827719362211461556381987311027215015538159229366600917550873021884287470354206498774615901011246395972404279915377978352987251515612064782111293699392206277930964319976025896181431730888380785673216946993553648996355235876825563384559630566752140543510572121539772229983970334857300561902901318083354371299468018157416245482280204398645740554182074562386579171944740020340221134105792693886416540950816753335854941956215377945530554929585852123896544846248304294387234050891830618407852216844781649130007635999590833400481499535219436519757052866579820258582718442186942241213748789509898756053955402162547911805984352008630717970736498398037455998733471176439667901980655697159573275710954228058648379989184739635251913821018242991983918463319423842439447721151329583630998865671213784092323303905696700302232883595957022171111675635719108221283640546503277790566246742625844708812292155149086935048146430428491167462122684299506988192659180650886608122897965522531011490028377075118681173670913479795489240488532886664590228320817813846926210067161054389233974373535572833617759656182865282318549003909034319779991186393857783604941511956646045514909417488678538992462932116337041952864123071360038053741064763918173017196516432903006743661311814307944294358471347211991086421988400757571501405581129698353964104314402434031615043321319733033460042178479648363811728973178140106384306302070879904337382751126020620169511611445927997329902383472714766371928954634882300783991237722671169240544436915445981118510120261518408577646036063598123758808707660001169259835912307273424163094628009940433117229274656181899832501702095617041627995833985134924534111113585196619186835986405247173439656799702838585021328297590856844787441897488536505202961105462844872046834752897064552324255605136103614025220154629603401562312668405062455208239029345005682867008599094222400664534861522222400920084393490717767725261590819527259576772735441373994956505739569715906824412592342208142199499529340512188428868041364281158932936615463243862578795112010975307954872082800879161718418049890978913758451888610208777632282800221074451928315647854395890115867536661795932275378689041779245643483431335285153030403094341849517325104465392102002989135508816168888848712754552784728305764231428699739681366191773973655402258776155412538692573388944482576103441375576746748954142065749961732687303444517310486289303917029754236343418805427433475431335822196806657564171475729208339844194504351788565337337682251416076557861563286944848511650228755120826376197663382596001037054385215291699318192133005667600898079018785636496125512030549861634000479548497269744838268211424449779996057076798255836127942993512030545029235484396438611668879582866592181290456572130830300384949339963480440391654416940103529021759563550741946629623116842406720682437775154309459149816717087652860929682934419533217819182719233128072566191236835365465493446377119699536943498148091995351965944487396858760046938305911902481236277790940295877138926497044466926056700430074608339293875385199848156441201111104017363967002723672329730075662251653858131458054520228771576108053960181367599943308676579164064714803856271961540800117860438885076468655428197971311186319746985436990654611310083712666151534527133261578143068840589925440707492538747951314196223217913859196612266057530505666843703071587429236980816410800967117410658157683204762299545471241159516873517545873715700583608965282107325812112031890951251268352028022850886024725152535853489631409334411325659506043126075269821606551143585086922196319804003153056477475952327591566205496707424134962352725081342361088058498901367201892045339347862446961385165215849157620658671998593779099788625070426830176139908020407300111803117454102147748971185763394459256048068948415415461808345110758120994715811738337451648771335490892242423806062542704995865612942027368449712903822487627205252518767839580629184180831554703037165967947239228161615263000133331007172530005384726947487885950424092519029086103835770627218015443887625937835664482690506236395942741874332840171674989221741253467312669337415596509941927044470310611421089471584751713176282924575585213743018549637255617391697592749810602609163910178527963397627773463725208424720074704708110757157910600496655725888089586585478986921235849185927712053511312929487005661524191481749827572643107672147096503880812906761522226112487053913984410766695036815695474196079680725636119289284086893770053542768620612156030516037967964049085859222524676136347466857760091665794585450048252364110687823157526950248375347893162954835809196378199204370699897747030880227009494289534371519426120162869860214482752756576961841218997883604815847023650743936618069622068521597278138894834461991461500417504531642317106526541503992736774934456594491929309104892766953643262219098054628136444931658133060632529103599326586944772020044229715787322273745155440409106724387290489471805780978494129604375928388830134859900504210355804101828274642104569820880071019770154047644957043144414898446515419332473538299791746462266341462596878533320244136358868642445775685054807222418057691714521587733096814964959418851854581896914125585796223494398750669511849615058089795681944184161658055227510531922465302186222711698570236268289696710366813632209288160247326515748429295836332671346903770659535288898547080076739201864642156357888081391115887913307318921239352133224200782632936099431254774386840619120267057767318396185540460368944418454344242537781044311937759495705973979380814598155754521785166366884344708595191042817219599210861780168187480828616349979354414551359574523496919551272117936508361403296651818517885878968271101344213692514466920057367841976148305376537792378581856041580457906968851071511834017640836866793029606932009538907014731063687791495699292749287234216131273635386054218208975330642611541149602007061529802198735338594789414550074219449428728310047194982981129224605700268867595994417799000505740089781523842256128886733271358740858385352443497205722436731986185279299060288439693848054745711335282253019922446817875056217264716915526480938001556081323631534470388765020351490928888579908222751349285051906560859795224987807357746585921298902762730347358217585941507868683859500295340932071152760748897027133484471505010278452807010694877833566543551757338433524255282079359598775289303613920600725233653399235201636196955545152216283831931902987940251955329336584616128734600497595890792133298758751524851958808132825677484917084129191246463881117633351062574173999193816992183246289687033180188785238451790839203676057217613734723772835097941638269975249263110777581311435084524034381958428840754027925582190598639992599099219220722900972046717123244975437107267656057296909535668114142523980853174850257297185811563323775625877388919676583709921427036400239575697769202411466277435814820878113192720232554732485077318013187718706773624047086866940199522425190630754927418317221858784108562996676794791634520640929332173272398543762143800028786334730052715371028017257423775812580412042177950834556700791827832170232080418772738475456280585995221807499247724710906885540303371287673053723819126096518921736489684126072299785353053742663819598934792119916842420084061661201915724185627842826978156512914432179682926883348591082476222233982116959511677967803883127044594882501463078383391139795521257527519406838713171902494289686037649216480794329310980089965999303055786678496741476913451844710800804193861648609091638555706372582873531125087475182413703045109846823676657432045424853954928847545221062738627895240999088510393697522353161112723317747003400610817020051169322690575487589743419111548543067828989469781889820479664946150675110031083867913997907851636248603458934660463496787944956349156406173779824329458492532189312218948853174751577288926352590935611287200247264513873734687188335933275085562519008014402020431900700560428958188534777599953883842588422721697865753495177740875826044940439069237146485011084441223928058058727915440263290229859647983788396061928289362404713154743302643238292583580919582291812816393232782983949181883970160609227742585500829112117304908240938006730060401290363278636039763997428218733354279934250870978056714306269767137665234253698865919743464466694331653822897965964777456693033669878731246665777903191389417106651596452185544082603442780156197087966892596406751177101228354509546723745290100694244598769344292297869766478479475621796788210390686153800377279820509736472837920148330069958300685967538778325140544466978810493193694322872188705434269316918106797422472091831974114659898814327578475582997266302739722499004427286850769769513372876950107208131342129071894773413513687018662079538360133029214489473285485432384400858954531631172738873059961448119254437138254424590786446014770845176341356072983566959741385645619202257051388723249229796255715537088948039411262910083464862541058157159080847012940450645721750224906435174544171217807452766041245818830866437969257748329098735417528944773842337022716229513431031234799602876974512119576366094801080289498817716541681672864107058491060626109170569655069217966887216826344005240661890344649609088491170157588659707008274650132606862068455372767863825946592838473638564542136196600145417943271162919779163858912447440009400965006033755949322958232226646822271179481322639340852101386788594950373547946594856706859486587775990630529128625528339714693334131661750309473317920875525019336343709423802943481864832604402454981446692490478118005114635204143932147391444599216396734754528319478631902862788884581337574409736147023684088861770621883954206775140871307776831265570518671700718389240152690167314783585096174435968052059928596052136938728243095791104905946889809500267678646967765342081844249041328636582737294501100357752033677010536710828024184402717219023116651912204437502725973301897482595451207980814027022522995338206185969625505665234611367791341573705077344725829669491017654909339600631587066209642783653996750744078347506082557718672047903625587995992094215451763357819632593758395803723414877439525399507856447778609505156625766482643051637086462650433398742654604563675739974890771861595140298825729045789944646623116421296415876546533311366247104700611051699640196946590577618736872440631266580503540609121938197571570663010229494861930668453465802095114000006686916235043579196418093970586177846182745251516945266713309903710843982991944414604024207335526253767884322447883634114334892031903963174216689293318940377145493675236882779282051892403294576507836959081329279843321981897894166816182275731265811557739207340178945463693202112397018178454334627597958725492518834941813673112020690920753658246879593847453266453302186967667927344254812310178044999341713618928715244031050142907022098211409273460863372844732159913542055655530887804631076967722258707020361537993928347899819669905924153335391732535068320986429594403254355882471599039186369653131693067387333859823669096054306543673665464076142400426304728447495781263776917564014658370085857980683414488897364134563174111250926282899401522870915476424163496264326267727628690283894788223956631638316871842752844497797341068622152162729203767688813535036927494877664293555276203495970908003441153153764269801897466596122480324237718329578845346517293543748272896727649828074607308306895403238763679501589354243673509778317000335316559682001497944806195372178571327392669962016862682754737481042006423509839649113409875647794306264123076593214632969564852460127286187655084027824793186415271096403750460523801120549221259902990525700858739267159704197247852739022454228697927477618190644097961485409171962151227601924410942824177334368960736266414768472021630786788067817348234655749706696620302568791946276865966148037185920991135316948878212243144694511475065457255002363996574435949971326722160866547098636890151607480958258327237049609191582908959356713868892209053615342586752647385367874101570851765965329171118151254709077085532433287843292045637356294608349017120482652565230002206620203075444093072976847485727573296047071858208499371390959611329008827589763833675172070076202330875537335157232936893063222699787673142730788218835930789497796202038140288852388290007681732576060703354800352176665427390651140793485701401099658816565044887162539316589202155396479761173481244675897255899087097566897611776538699614490571205462817457852848009770672735040220556672256644062547241514634070218467169153239012637295476990096586646373928102809055357393221610190695042914299051944158501187470027453639689777375906455836486509854811282128071901152414542300229036004020408464806389683720865116328875458459898069777151415835170540949466456741876080615870346422189993681069435336444128055256960796785298701079208241762049694606206604649876519037877720526867046746654198592971933847781099350121663520829003476489110526860833926972402710541539849030776362600486873614252894475963599999381902826687475810427010872516946597600586064182164710331215320343240266116953331358138423998422220538315464215737379468733740319054605066406382926647812071428266894152649112947345293124290135083605357000437384009328969566099533006356116349527207126915902187349665761837631024215332267818733276238955811649514281072645580622650986317026338895033240789669293796558379829988503936522113884269811707216214554502778252707248434342463075369114787737707727943660301647618610754524924733932040448229904109597041351626676477485870650542296920622649072218053634589656121180408770799835790496634332511137832992840589833542060060740915027472157882026094228413167263484224276769257551998605734127104386029296787833932153029747611431849628263726997602545395089046160077191379732511100130035776342679760181711787814474023114079492059737600978055717884896826276088854277777389080944557626357934864932828999137720004525367301129479593177396449711722847234579303452661143462996056258615022697274208786674207288889335287868024911505412153771131378521551851206991736484314527006063866790514942911010960731115786991804425544205924175290301877371404249185225263832033482646546272653747992615683510577223066080703189761903414864171232483980056567589811580527760337484461695118445897022777625736068301590712390584300175348395098101139708083484594887730044410114842052969247672022569539843331793883773327224199527619775933902575360275270111148776695103140653890562801949679888289575313762593028945771538322963828335616132006066004060574748718186485823090732370186825487848004803634735314882991835515879448883437969272296954070960874742494934519331311869531697642351185292700510539331212531100166557313792229990071754615941865927806761624466517139123307754213131254539096720289383118283272080759540058513759802702653494708502001842361201935589992781977452160800605991226701969115484004867072832213473696745860139960481765388509750907325666447104215330496930593274773530955470012300436453771302129090796924616149098516097678850376833522611575553304268053642686158698602800841537828258833415743395278953537359534852007244057676434001148303161286893831003794593989867820963620771363258514710970597109168078639190972004769133297484720488061144693231239466758099373446746110614325376996659314963755177558361372632320884990881491389351733285346668232970618911734798283762438187860121533680987495533505569921403928395077592311953415786713570738646253968022589279739914179283317159898129192260771919978286601006924343950771885385593362164987206208409121737095160597343644436397536730489772166131119456589411165946650534137682617401839850767030973530833102802320225116344249415533701210212209669542809082663071341075731371793762885452679373554278326668171171543043152888594103604635188025363732105054984810190790290627932350053082299359724315752259490852621172261208281023348138496111542111208312469290163502525986308876674498384206972501231559828917323215833247463641291309849825115940864582262273559842348828776901499443360583171246164937995360451649104482668855628127377234574997135342177421062855649435193497832915540239373256295803487052914442287420636338312809077877511637250400833453569233458511453051054819317167713578217192274436939148142725864470052602856668562824518038003349332018159302544531728399842489204602806565423565875656115879759093247150264225478712023875186635921301057489217710329496711142255344145408136766497305530113927284434265156356397610606334087667185094720374658371705051157936508406572207594907464090137585847507310269497790758366841094866881602879337858149521695647501373664998073944052985251496149153603668376943215941502168080118899596971305498956183864009113976789102930789471033993682149111701008572438977889486660436635766359704258577751104119746790650805579625127595863303868483961735954330628608546915795757357749173766312727709105336175975843062483647712945032423753800867235996130906121609005803971837125820105173517547826801568597562056263620468970266014732855984024192582148448903571649843404443738622770587420946450977160192810244576485762699086929729153628795711974157562554870082931518241865825765097383377746253765910177913739768047757763067311965988462189072529297500604791704390488572853322025067677076253732822067481862791703759617043028943817346702781771749415204664565923130672140816730000698493139614910100266152895633098780752152670626007844258400203642787388134501192716585508874058568564446214724173312812822675075299295455537549637948315251386068957491327245277267223955677616335087711997746725809558083365917377990830750160802999991053833776571993796487507166145456921355251448413998733508408776958830789514694704954816563945514298028318863489111065512307737767276905575493286881457148089509439803018148965224043368874848296411956681649957281166802127629581681513004169726016254835834422014999816719063686522013235254980845900537913769676630786171013386686806292054364642620838245412720603897300767194084629939019583863071207949736785087510304034259291128925605020743825397409079374681997126644545353909170571805350226023956799651991139812196518799119407142920035339099128923699193717738309596079422176237490587169888507229551078077343995252480728996052600289363834324137548346435493721410632596520486911619593038983697324358577689374552839113159808989229127086297100898332491384376748217229784419189003721393404037543113780422318179258252524258393197328491141508709437558944550809660343360754223774738453254783932855596046490167314538039618911633151005107240476833380195030589803294970820876176034536492277024099947800806633403621769752782372105330476108835423545893081788318105958657387614409520027874786246168120388965842278653878684680269058196208286596928995569450791545588556539481869259098907620196010676188099542454357424756762351155655552654482585267212667327265427425235345120253837395089093671007622499150725461131271247533572632167122100783724815068655578752653605670579038536092523995736146364529386316962070017580907057825843071205158908943925510370854565925783429716368343684046060421212496223518632395814415388552408972346382271335868311145517974747743781080304741583747101758707809167687977834239248850225350492394017567083000490464799562401592689984312601449552398733197082808873245289065607941293544184376043665062243963876412557037857974863620736019751573967090610936087557762263617980794324060840130753787385959261121720542949923334074196412625710036149675298095699973286564258152110015389652914931113487233078625608850081029368330991269863868292213948835502523678500591266285088870822882021415436781056020430858302707227943269401516165343952196352174458839943312840193192395749830801199711639782554881249526010864959447256941703847507066182654765534462216812843436740613027150439686719911655564143581050845739584615947951452628925264330868836812059323049490536991323878906591242125611283149219641730375297072803865472422829978611490297325939494875845641884906077395894004653374857692461297237485554578558263437542298203714963601522363203128827138167563603123132210560723320716957365413558204621180817721503428571741414389293506299123311333018892844227970307018815395172735670864988272993083919771338994072485457143854125536615358169677984622675916288895540170737652563572853639794765673402539819331742883104410052333879268015059286923664295558230717679067275491552313118357147097770566225119658199912391632390613063194043388348004233041021369128588116501568439528884042374497385090311566339979977424349963538392455499790640345241239118036276715711662926956589563520427146148168468006025562667605794480642969599257939969522292083773255627708742663809461900424611766107184403453453031980814961418673949863220269559160873455990803188949356169240841527947630457332862857848411799519578393434925772180007595939554059228216933441392083725371239289501624750917649427915433600549522334791249656455995544598520450024094977268723212383437183656217682520183557082617110182780531229165057052615861828567617026072586439134168530932518780541106879682542938425761976251060373799297667704572775262441054598276739784150214755559339959058443011507182100414380285592128901910144502688102557772390970453511398594678031049054026505974009167255088660508330413790131993726295354529577776337412388605171996295807891989311246601572808852399133201159189261139540596739405173583650878339989337254503387792710871908942674053471331565037132971923952370631595745454529926697788671487198256778533201315139001449310932575193419104156975763986136466254047147754008754406822963071766786839271576979587154806528269146480513633091175851567058592097121678647176916485440414787505718527189597671206118599038057531751964191320169020495941037985426923174903564241399985898734668999136401490956025250292758517061239285403615054012603698309408030584436570540462462875486319367136744756205636034554036293694212188394708087212700451489249933024218879962134041423206272461496328563408843112092115723200162368865109703192041762279010957443117093884518338132533831358701659181593574070056426754327848982080950183443720357489106971087044670221454208529136051552495352602023516208989895367882112111768674322323218444601358402613417264671967356568847538578359125283400952331462602194885164792892716682625189654474860763530336159306692204646863070997578338350381777901644328283353476854737920418032690482584682268133683640598962015343911234695655001301670244466191441657379152572525551982835211649729004549908880578097971099241837028997440985999588695818645647328709135760602810718681351137046841357856672727852276251145302299845179442165940943410028561310992570802871736156229201471653518939948892460643428468473303708849984845458515191293615005124680706105264371676601457630273804372880744078218261672507973110333325598013266442547543472137978528405290238491672651537945926615382239664976453046287598484708543646768441427668222608814356181110233127395508585660630778349070221289027264189383176675819130156857767849928560606105002151964500620038018033005918549457722275395067265162858351458578617310497300543509493570234774548922977261910606918639242908373358096018584634242551871635132666243980450303365099283182468666310416270052270592022109284519253650637422437218120312294506422882382914811440598618172404744932973268050311580123489809084209917187736179815040686812488334596337572417058203613488255318455228720112358832031386497018508055569908141676005721098176218590147081689683856179389855028042992856888345847505087810688096795873216800797742664368437709566309536911540981147414777077170626045599510972132840381304204282353798061956675410938957146737590770549609393817809091029795635667090645303024699733269025598599458036184258520446404938207327578378256027904200498510546477946345133835092662544048208148213708106757797957880715836612031393393257048211766335456700270378561029367288757961415173069057192014984553275148506295601747752169929569439615207496303107069753196746475413940811309165116484778738759995174720214449616012165516882027387759117622698933347870667092300773379014638717502808026506387701699380428423886601487842100140839364065930583082491906908206620511597309019200847178008148058491315734942270191859179861821197491870712624341835852198005872130629462259137253344860260931597537387317000219077866785712669431590838119826603045799864343479341918751241098464586927745749610528543723221961819092253240465331263426131895288529254630548512036085070933755534389395730527941013817429349074251782228539184594453523854464147721122884999434525160303089819741260578540038748494462479259342859583433823751912386186653479792969939927944209781202276643759853283384656669215834543817931373916570936044094115216261343108086154971891799166483736089755954126884171040875885453993912706606536083636197819394575168736672910362290350926457385341119172942784235393107656441333976054080708048711868412432973613394420350338155811403623131213707320561127532772098621705746054876114561599995269950959402389831834617517814308153939961844620560630493157590193890503509921314443928836074676931997452298658912872689887817214337954699592073225453940829231396843049398554606954481640306787310283508422920603863349186588424812977388408188507031832543614768063166460414413763599765228004921162699716306007585163251479482965444617609757623911355694823961876199214662526463959778714655700375609662925853458730411368442454986782091020759938711620780302083017386795408947427451482933932751839754879490665907718167297756213881347140347284410236962170267912722437182568468589064370231499035969680767979592268270217362205114895331481536140676826825261673569936666262020197690487591673620624854322423324497526862936089367749101606698664315817545637958168333035525280511472110229158875753596357128987273950166048019433333084974975645239365745107028910709445169402126914742397098190800468792188666705093663642213442522648059229380144130943249589207751803480102100414007231030580828492205120224740776045475857361437424011076726697773622650122907599284801209434887386130306278236632624172435552367364576499432615955197765561906159337256650181605289860917662757460871516497606109157245276606539980615997485789909500477938054716976408971651862133848720285226281455901035892862393160655483998893668384297118942678804581225971168937105733720314992621796168898727819687573383759608371620709670275155509382802380223424615952272517458679299789233163287571154216050297315024989822502879247473973341627439259685551557973886344600028223298132590517603708851849607083939585784840633327739501921980099399149275822806334497596392672710639046887052960667501118536312541795709100685701733583820694466424878844175702209431822394534523201967913059504823724611281305138361414955180698403207071654075022522280036322183661542647780828932035699007883426410500745847375766392610569860101980231550128996961491414006401345506303980790311974224012702344165854771213365166779992772305069125230101679169655258633366241023963535182712262790883360085888114121237861631621232566794124409347617947432925103617653851678207258701144832721041933891075473262784837607302378255384702533804449435894269681671400317630180206073862083764562008023248306296115466796878611502233444614048841437759546639865666932091617617464653435860742196782270507894058084580888263792504785989230779400132444212540228744718690121487200571163030572174107385331377076354218870349995720480065637376719598675137555941507261714642689353833627249904966444141544375337019726480370086067337276327667094111900958175865056929146352271284992786793943152920664044163437028990276420070546376642730110510058436856580382380450614254955196330197833501019619910829548169945608006404699214746711639942744966550349424390589287190420756477684166671345104253284918717890043674720244196257030542676290535617966934800731800908317060558909699422443348870658902046821706501890485928359432673534211912018392775930616721886364617053639694426689734738994793756312853440454598131587449917534535202884757929993868471163769735904598523687904670421436391834262790832946381978004867671631133717105737965814192973709535385644685457778361760881150196367726080753740805737345163591765348118752191889317145052665870270621771957276373929000192608388780474242673289714454411494117369767901585234190795588133207795217514020523784735398350557241666956526298306964744817032386449543809472190173081070182230469514938882503173136121440611799820522066477859979770745818490590388738000903708381937175951958105966924734352806096658868712964007283095321223685680721245411332037798355317767346221431083979309691079413878279765640963988621099589982539684677913307256966739250870753202440735306127899181351861968548901824345578406770514429579382876784940737357259573883588363399590210970319075072805868355862330570752488406771503735613293792771260826197747778223251168670226512398459541581525757549323877269936885845972598028579737397228194146123795342925235559039636490671717422625630606114611941426661489697089620447100880605642268486416436095411445524111085223175604143645032241544150898527122366005599121672169144776633761317085607908539691620097612826477231671156345816906343357715562785509951651419057398448932431657090029332947770428567307029661393992915769147758226498518256077153496728447975095981394047252241498524233231721570124751081069199059350608590969274229548803174940213326014826428055936742707093999150031064351821237372942984697021370497581678669370970438635579407261585943984766997156683268902728928256674651987041956855369884829093829123151829687155090836025348866896958075681911420610939737599994145363917286327345353869956873873874531996824216970226494583826021117650336525431593449623676268843297943094557368107155216191595485487185700593708761991343868286813168985211419821653033948832655606004543297843767775215929309617211625253616872380770170363269160807174990483828201230546814984845500063686523875217098249132346270576281760106450107818465124478369863506243406088433960878282363661889445334127943798881328621435146929919641453750345806209408310908203896402980578222468862198823491605694769677480582432924701671230898591754355541665976474821015831517831978267516382150694444294315209150633711223416736410280505147539174208068451751748039986270941650941236394249247184798486711465999140438328808188878709912449023122732794110812303822382474371047077337361930965582767694017907303993671633543500420521987122124851384477425850415255506718412627119084291614855916362755832544583985577243406843953126878393157151292193262239380848997462074165571045245924390869062294074771346861106412496599833120260079595338010749720407422606616563818781939082756121441654134683071091584150034410927213022807833220642997259827558062251753558785441714114549192303505118641560650131408044301476276779717276939640926615521328716845098773880256134086228244503329709912640098949527605262684497850546545583830026882055066727895888035292465885745476417632151956193534278016179125146962889321050253753157350898015632255905063790312828889814187370679118688944691144911338984976669044330750177163648795982692020217592122319617577733874417611649597631298166395796307488206124295512174234772205426122264492954487230243745108378786511764733681934023016724254370260096782941819233118130864512724677716041868723695958700436434785287114367168606340623326130541260361274486189619545416880648449634723556270093200898042090578856087986183375598902088771037181774974109902544451184187198413742976612654736200485587335739327373132226419761209257450849127555590822149370371969805450645339591495143036968287747854370291316427155041250335436295099700638237885736185090884607247892828947419670510073051594022439935554198034531061429288427748334155541350961427750445038011735611152399939217368093513825181133539894162037405146786401229719875719932680290634778994061630259997368066864239794844549606939727470006409030888519022914431625671595637537503466032907969956897525740967174713906405232190308750906334043863125165933549636973296229251931060446712411779638806107903337446957346743680274169123901070632313001047453141995592240131068269505053489495745532918504758941388989014305504078975034545778547945542355857970306492855509057512272073652617395532798216532012916458010781934744891732246252217762697507679881404317593978461496634280301434767036226952072961469512712764583616306421515687913023415344724963437207847292033842055286900969098511961042822838477773685709189583943978529634503224388423175632397220340032274839833099711383927733931236944565992912932876552647191631323017334967385582024049766366853471515069864446245350467003652139626825524191325657216125901829974848770416975721248020129791118388328749259922826693045356481607718545789641325644721395466838602611157069928704526027500097297761386036218466276915310232501538012350288590026120992502984416819863907341551932371214728098096991466203189356113779592457626844216521307642445779786654557588318724967457761301269395778227609735446811077130673226641274690266148692890158433875985401814046572985142940442874907877163315046767785668103344912931472267060000679302799209721788346161340169091543067232969385921257778193131969991712433405087796777685458308854773774120923389066615556846018390237626347363613857264914642296198827371530041103520907688063354896584813482151172657917906426482217064626975457828356091160043305418433198841416008596218705538309202764419727934111990983064171256886503561290183542885964764579907616505453770653846640505337339704028245372817981332151324318320072425297737454398503548108314830079100001378486989769488131504762394292873226691148786997837977320727047393059947240614980133209090588995509626138312714137123928730770813797018224132207075273691244472004449857734367487053983619520954646276815753472163897338043227340860475136402107656210096082365987406292544690472761072032123572355142512361786705578698273512498420491256405759158418925077227323334870234469113642696924242327357669453676884268711338411610923692952569026982786960767259848323772215406223904505429491563746371119648641097665206010483167164280756259927840459702524867627379136087227216697270788652069355931329112066358945676228264486567272796651419106215271820957915713584462347563861590668594461345442606345508941783580900246540778710920168094693800412283110000178132456944235254545108580504140335666441698993166028522376901132516525078327667949192938710250693157770992311937695206763124938694708706126749757441386367063297696914116893930815633681813239291864962887051348901933586018225102488744692906580000959068680490033168648165679110950547427823069428299202944692103859931908787437756314739376975266009264018328869378875770785532044478299405453409491561884646429577089173559978918453294007695852410073100394973073969036946504553337425288439866097319345884905574373112097693824125637997168321434841435451267966926802560888095389734815446791490846082958297096921998831470947875627402563582427099307409233367496437268565087300774221107334254269035322185749649932899514972529881522712061319485139343148507596375215513114843095404714582946700400097881056570338457163768058171931494548776451076515259854581871353052937363844559216011687143287368122448084675326162394976440378839887215736661252629831584839290671866439194779257240599573822846698563617019826674112184968336401040592896704966011526960955692417870409077039789974180955851552305453179426046142610845757303608819682523024111206668851176601185398710942643813365892096188801641101964527684986146710788328065683472995988280761300008981976398987859107246317722413011125492177066059495352524082229986239300455901224481181094557428926606857466409688760915917963932394052328137247080426208644698205561039237900291386855855574421851534628273281977210969162939986593419308951189502308203376123065455718264638254630034970731604878691411604300253202907693282395785473496919904516600938640101363646133410107859185058949513062317703188172145133137714045884662959665998742569424678469078226825928624226127373768443382113961783381338189512787856574770049920510520383628561984498108343439470569310788600715956362975164162927306423035241927087414833536081058208941240202977835465784516106210687338116161851180500211819269398839423165458152281599330261833177945904379463196444030502326775365499722350442411900157456066935933096629058095436423950683903913722475837151807530264649952462332750724925913198845827346149605400839327860996462562367250950903633891550156304615253869959952064991092918288168039016173986134291903160143701379258181782391282071699763109308633555166383869222257151012374022963342332250839763083442522070466952777906893849075144742725690398365081417872299514638392381637866347800854286727894378224833934905301559948285903602274986265562904804742566549388331791174403924615137987341877206476846993897482597306070739330232538409600158714548670649822829120038055928384672571886124119262889015820520718237253339562608607143749378217397595997687255627902686924178021936349382753671741751575724660657418109977178317672573496171105014280803361113762445403743566484346197011584155935046058662740182870268915301384782460086686812823007199436044616999913736772264281649408653774782872358626610316291708388799370170859312516073287052761790467471543368727177489132872532321533041629916726415404868935157754257692889681470386491434326592663319176091345862835002551037086361522792459086445425935875344383805019494632687477303002745872237833457764865920996487401237433794146528956535767536746412566292099297387098913182145592300373809329238095645748099697926809094850341163143631868818924255894041760533645153087872845217477311266926777866412425803349244019553251759602191460328907032906807354587161274919222912026613465610013985338815156234630789081655633671654842223843742614706904153882065551090185091009964414057509305522679101772954879320960417858334322818895896085046118165501395279095435882721473414586754918399355769362676005296244628308655291667062311299788373962224322785100054451056604294680632214121574587241158176785856435893830264656998523897782951930070449958428824019724764325178708642492902821903253230687337667285190813904170838611205476030999489924016552232899670104337456071014351610003960483114988901758478127017417138613413492320850886797566307710463841550412268969602427223624646304555800392240257188983914962564002794738201053435500052556342736909764673689704135260091092347571070282254430354602342716079958450654562601573900131812884930269692083665465206827437670175141304311950311832792802183109453330438282845410235320770447358824763597883698412086126023975495015496321168129941526085168839661543278825989560820741070736345054023241549744144558475729573950459556972341320352742622864499725991440740043980654560333935337910761626666972681213479466624496821450300967931549606561775698484728386517331384479055738382759317920478871472382721774052895538297350701463610247228435301545899621944515233836483644233034439027082098243260949279716330453042832335539658874264829053438673017878759959023449985346565161541025741580033655898168279744932030760945915846305830227880588948239884023907882490622774284780056148368452517465082023882434654498812436252531487643585597255833738729224241816351298415821874844434365789970526680464994540648685916955879955787188900320413769090799328701600636549817858645006686528729140014522454564701644866477971466619718290890666623227589262521372493353336416470108927994415498372772879571435465158536793778833184816476288294176125735906727744656082381619511625531033594497804109704155931517801131161688810880777978553211132049031848349385024671549726950254132512642167960930279801368531148246036382143539453328740154736141427137726527146264387705384400637367207537713327907353080817288662346379699188169806936052487384862519857991427240117961231036891935434288412318855710574276550697193148322711636341745659279305423155745794889258708551402118048291289507617590161881139860909067379956361790028307603882082321040978645526125361639136657942879974564683360095615850033500612587732477362981885990749050631595106330326999379765451307479883272005570479386387097034468186157246881008784033812445024696016618648059961471234140469271334102346208865893095610252543053177016354932758266648035901731250884974224366744199813151916229897904832439327483644793296222327281120209217048885562519995708080089790635360013202508622188963079886723431853251275794934837129472079928935483410395469521427790781771346407916039665983533696648829187443674886577542413081883687388654341774870701486685197545972422438149308490172269047494439062401450287377109430592896608373598914729662761211692939140626965186987472877764148366665603502902972410185928065730086507642194076307324099323009492603517024992776354931884119622926053301182723810724704251792933441458737289183761424476240353647299779652839101361471986695673304348291787289949853393284393928605123105084299802703433367713817318187504564893809465238593502257845083441541702256222363561581506445658324563780462036245514719501278311518006623952912144972021796338790245832169187519700250275166795763283160146892033861967409253055839852687455376500958446998729396586800288480456673478553277446930767112136509594533718158471611293872089735062561742083820463159082698767935428735442002834480334564765821040237097171594153793713509456493653753180139272680089822643091422845314728969192365696888692167615832006909846226495376975622486927700931290928564809176988080485486256421790654584985817277879372355377538004172378644268731266876022511445992989971884663188187429159503585668950054112516052206999687535650013738827091689111430447024092263879403509823618780197459186488064631125412720246787793584617064429138623318432288249127184000699322241576484614722430614710559715206947730707168151744178468629930052077443938875842600176994260010413486352033796985975019565682463582177918067216348290562499858040039851362248046938589250240362231989829632548181034988021350252692694905196098011118277557361590085980237598090776522931610131969420376002168380737466389676647655172472395083440086466007143154063244929791103642877527634009533543850228312966607716945534534353427078859596160323358909353229887724901176145039185454775395078062576352046589107081558037727405695789789163600072594706858979929890987984638481122187194440656669514632099971769236459094369512238127709658830265492325789658049199942191308874591376675353264719011092751004906246385444907158980875246498732137406110890866988016612978830694551410008829112422177514068732701847484398966031940523895611539641365134203611545175381452999999284384862489424190015949306933407585393245966108417707467552987273739465295176597073425850734720975853057260998263711392807492412700423353688066477143280356675642331211893446065465605926275539054025409968259484850541114408860925805927067007244548710961531265389121687756519415302265946284968678845026945131881616595812369200873216174771307718965040948309948472792995244579819811315508004525057410330767094822366536325463561735431703675442003552293160806529052730076714962536403696664001910052516799724179908858835248086729833346074596332122313721095199383375276789240413010995882182128526297024835418468984501704383489819904073779150326876650274514370290753560277453306268908923163246279065428065358963133864372117168089413665631018728127370053293970944532386176788828925035431508437664673968860388672516357060904381434691975876499206102337561552445509748013207676310057002794410306173125213840156428492187151968070915313617523006623668194823088442902841391192171015361555335958966816474445109952525200694204740458574731020065447349697395604481458690577169702651176292723697934115025047778977239972006239521657647379131860291887109491778818741887774867022302444563798217077136982282478149617853054555314322601868767267947730968396890511389951271190244516570192716948744229424253968105395624710183832136326692691119175252626953962375419606638003738504505002449087103431991117994719385333253435378690797393452047245171010135458626125543767379765711101355859532368236475264311072024228254028413539556377079614475811178297169767804472997270008742119838103736066121081737183717758491740366816796682245240431316780019346609699649052533889052127160403829655519714306565995596739743551408575964811606140954852230940779836321945881374782579119021629471147559314167362272561366001420081509079740590434448855051320297536610258844840912697027967210082445744561334963453354995536377194100565513985785942179454550849656046154521534966957618300221652031062939143691190559164265656313229108251607722966140650065190009145180088095511884586328547425683596798162045138174447102004850977392465481841768994945659592566950324362122919570997961099677533173403836840922404328794326141204534083232311599796157731353381739116383455888127670522719983123477133428213117026524070383665154728914369663476632376316226634981789364008248866353102163775410595757202491281649224887735408687976108411058728142433457958008095074363898314769101897546665327166632959334196480962609384499554689067959794968121782493864342051104747998077065919490531153293591251676273308940275008539943233445652647530441169140391301916620979777077014660989931559843886628632848087959723027288412672097416633443738939949616498041720232456977270872034067719846027691263354662786223720056666407501014601029639502573039946013017267023779399048083260186760473092970193343322708222853975020390296731088233442879989368648468521343169526846580301919760941317787750109270661651310017862082821931576751446759690439737773878691782200103172411351028838889963951170520156292447954300817202515110551545853938765972732010232164755370055334518051412602664328448402888800278876835932772223886636207078261376984861511452093014015454238885419889056887935171140130281576389651122837209331869838220933410505945789955242145533157209152782414818830657843127753087479881142836050681023690715056714301735696692834121900952664951974044303352798912226709874468880195226318621017459530668852173551437477881195883331846217464552001181864849309325944193638662170781946234473490986742566678459341867217045849424635134545004795521879385829486759334914713323803360324011361898342835984206730534497783993157836212372301137803623917059906256007510549134376973794413205631782278467763239298017068004492818498194548390045232962968090699349433841250992069849842659377841296730304954402961306598068165013289928777203021346496980265229653267230476180157732845911687451822906548542808612502639792085454667650711791247635453109027721700999025220523550620667312312712711693663946263519872340378614843237891957277615227576269899384755076604603012598764089067258742690651462592627505857804651312774499368661879171345503787649790546413283319125683841089059018114740951594652797864196742898687824375913540200432544534995670945779893558680020369126506600714123838081234004485047322698021596823384957948805537007471169914824394787098184997245126906902590683442582919920390807786738017300320938224641888775464418959288773798274103716389136291742902816388052410392759073172275805243883672007530001395550967342678115987764621783678201024013992814615828312553676104091216454566955147958675532507164852218350453103101626049127897712462791632322599074963722744172078048916017923061788441517260859434033282146630323071181193945260832355983343206464252340976414039409570051394328455124058964815022600623983971780319015761630217869768156747586472260999629326065287020700265829312730150761523595686211745013946765995790225509115175943252173309865651464204179010884993561754351067967322005048534836825184154099280075881640754095825241584405512217697547221382577011362414665133914029435657226964000486732867774044330017008077671570790458229426686836721973095340785325720788143821831809305602320374718311271569419316631117767762823710213082890172739294115751492463226331525357434588096052434177469275549594235411542724774529802816481241629633729016298325319755358060190094685920074080806384872874788028992288292549341309158317303173247346801337409697785868119585088733275070782771768854039948236381784170288987530061016173566230998243420673713907551051928904265604873294281216814462041089047881701143616071175147376730404378327525449205956701227035396604680995044703009969506576362752367764236389189853785313689840366511942613026651300728550179099911001492939216769279003744336781447198538369286073541038161017374457115332033383055853350763108849206327107415007574526298623156272311422165188547173997604123877983022067333798957149387168172380351718848890113390964810199921987425416145086883789938729924820758149618869417267170269863750288024754763835956233317605125879928018161755434591113926154546473874576215438714220742406545109237639763209783127902493971272774023947833498143878590248057815338766891883720993936534652367287706333303510638995122035327635932473462369751205675737179538311303808781271529726935734795808599092209497281429111775878069563525344959691645774022402169319891795213181222257666003164943537185182428878710021242641318772792865843018210215412373650552576829246227132683266290235454567064138222071237879898266313848676518004779130520033950151283621021865023841791328319777366501821019050124471848266817281800564726499456459351206576152869360965854577420944072888858930851969496913613729794045632412882009255515121642994927843503289318188256029338926921884949346021037337110547871027071254390279163090828215850188779932501967551498896050122178924930050196683404294996592920233438160945123157304821356826540621909877326052734019459144280903432039812017590044199578435714820259050581457247946773388451546068109292564357604436063221735275173423611866642168287626443884595718172711311440726102028796590547663565480756532150585928125669729497618618351809782310641121064941264565800853701578677648437850061293337793261067474957366654730826455049842678825245817808980774001898365048504319546800710152935728689748976404130185858948893941008484035185423776368972870017884100685796625456327120320313824473341732811570435959614137473795854811309299199622834395204604017317223422589763609333854319737318427654230882928875409870448676382881309792303438336929599256899376036036085608663309711458079996735724820030683645164299553918337653295070076251569277622081516310488933962413102761651341729043458142076200879621861352180669623424393134129801149956161526973761580494504640995651182597838967079306120888542650560108281084458023942153249309071288013116578378266099558201391199087544325887927119052565611342450391463098251150032858624617970289346462473705299829745240412845628276545371888744514483524384860741845621031121455084990796850960596775640468213284079394693082707332848854370467491720222941313957846126388404788475124394803074640043133658107396818844411934226397897736639810632726909781607101010966072349968664517792096257681405575671227228422054171956440666129780833773028920668332701635016152170633413913262311789608215032909192383316844211341445969639571128058196133257874971477448055188355173525344765586955203469962460302054640863911878226279892374049826248189945446997400740500023858452032150507920260934265185323922743609492065711504238486602702885259061675506981387520161498025204530738358909343699378584223123630790227830760216777678568331677498802919020883586924204039577920819071691361721758168241364503682055563898439062985531170391024846143282051096430021865663477546775649380416755024641307232289015027511488412435908904253416775667364428294689812958566580551884156562499764339057039891943403323317027547141517111093816271416500934188592393212559606881848300005581425576904467861385255979270386369221448465845029196302802814138549965135829050393597672736773914387497527690386620131248932759181015368054384178184866524725446749070882540603914239720219822054298811775576925712304796635719352683085940334741223182285955270884605685579865411652270999754452779511261409563234414717528411545162049896411803083443492458322731401082911404106003423070900423951019794175970311095232677247496045069676475417959307526704683674023196306817716474432331903485107579002449238216806623484226111243199446391136554522582311015868482429463496439602000736279772203133474873588340858065191133295964162294872064854248253065107623537183549107989582607560989331107755738299495606184907680096606278856680258593426893965218880235086621753580868692283070365074398441692237091223854300189406334196587835123966546606590720962924963339279835856032528097568817578767605118201382770200036696591897810953643799455595975651494761166310033086124891522596409407495835598223147840683696923015454610503149309826337284535584173036845810399759723486598385704754742890954379712729762349017731160196296549557161200806002634418600141811042051703242669817351893147762268415194015372025880914827151904948748883163465867939942675825599242173271508217822126972287573476502227707040518990946281779142013009358786765644267657263425704023933331701066641898748321289914592279097157499942543277135500835750591133251025577044810870298168361105465842297988611475462935562584420878285192211965049853778990098409446761029156823027743511941243650022161608955863899016764800953932269746545817035609820417619768163210871997409217166985629082633241995315861840738332532794870114611943185351970761059927944767365964150367225863372537747403963799453047604571648166141642732001907451885288265812632825062636527917158799280270741926363098021937968286544456047380200836969249080937603638119261313716432174101204142196495088607639434109520012956440330821593798859623717310114438874869630565629030976567973715024598748789138054014198336930885836485164426651443926592914517882148950972645399693373226303021108480817297573339184648752003141689661192620232635630699662974721905207520674033500638995033970525907860792851980722110163187693168148572055849644295196006262809554621296002810375567337576817435735866698665736198043412655666160685667159589008488687223102138369580469929176015610479491542974420692202687177613206725806208119241993155012001549420165181204724476983730521694603413046719242498875920743044688709184300868242942794340718964863297877885257612092975538943722067523450347698561619742787835442615346476823169322079531200530246779022383197009913492954733092527309571986031660072033307559285478842683815945683915038374712233421881082495710482075000489701467319247864124125555551325985847822581048174199776213697518418706133668077377967813195562876198133159859183188049165161681571090235569444386789334117971676771515687462335396872105225194095401862077823933751595364815524991283692006136637862993874516709270015959536173385350569995847038284409535769571851360373176801276359358110834635128011568211528436286657679774810920436943782758542250926088042790091346996587934324481090664759292809136332799320376504732380150664621022340041445537384846170758950386638307683566077206286024819582188449048561583508734526756267997821953165287726390115302029887467232548462394773709672131289243283970467747622922950800835885694909783378443642398109393664926144775320820785110026800924007364845953357101042983464418390529276985619162574186633773922026412794143486813638974506984305658808771567287027779125682277194110908252592125519207726088920745626099268844050092762625825431178098787058838456283110816323466232204219829669674175292199099861481699072137248093224937051878940292061048359624640131232700517795766163730451699054546880410019581721554804351645297622114576752231791168145505935095651728411730210483363547561005633413877129058679522158456773017483463304763480293695007710356448912034344358307475654137320225820810060446671841289128151261458944162848135307920912156070613216005813478663706366520315194081276619937850044302447030215403734309375970614202213907464326835966255971759025528087943492567165880124136863545627977899793981859211425826887992985875920467876361595158870112040546147228969673855233066468236050730040698838254977513343565854185475263459763489257550370570841415326300267894795972724463047349230649601721622403757587303564176847450559541997820987136951633260895315136622233541972516834356387216303453683553377250013564838134142551575545658728617126474875125078059285922520210341072362967454978691352405295944202546666045358799520703396197682632070579791268843212611836091450684116236092697696629053409976163282337853825305480776454037839844741892483063798743741705221936971447492344454045261328824647578971925018777315268629804269730382101611989718590761755737206482119500474322323520835248800005434501679622815560343731735868204322699311130782254846926585727808617035274348102697063605665935192879781886685585772107647716604302259901501511349870652627832791747461573453029163973276316158171261946770401602668016150322696460888916773898961790069234688083773582842024985230924857884772369450523458130379678168948707924160676445551468917026159585116404096721476200720170276647061929444129383030604799976368640765316949305197578499551354882126027164078304367604280278676566275018153622623143119358474699686692512280244967377498521137296153532279324346744191210056103279157126116423638388060014759991646336948268866808684613130122657371524929824659637786100732321551985522935011464931236807882570754441774511256186155093765288008881229992379014668015810330473610347453362126307034979992687203324920736012693605555886755009156581456715731808083787173248439678301714299407977062330791557572759530789169491613880949577566915175639919233709831555399962269506873996568393824556713166799958579843531826441216550007138854057617138897879295460838191575407611973837835926093630670585397189984919916713243296631062974313753777114020321058898981844920672414874862906050075139890616013727644557319258324795029581410314498292251175337922319992238283227204866750591156738010919470163137945766976318021947677947558972808206546665516432894625949559819826020559665831684937202322352121482247304771420326530202917596786552091108615517766643731788451075165338946996876380509884121011889446167270477320555179351430455221232361335224831452877746423877017568950533016801358046360735782809272100149017676427560472691540229511044517934508980143593812299980342696059527564043084724659937185810351662235923263322107806849575958733967834173805480990530744158386022376956143764101898573115332188801481922226362961328235621576917569720220922776718582751199173396352361536989148156374821512213837274209584602507769124235917707031682711148676305417640216786455398692900724604707548317942664603869185442760382667337754507895457450817477477001497651610368932367033764250837599782935981275261209174634694507579079667856265271918613683809807492562566242315813848963040366234069649465428983275262397747369533219877010111909647417541065671664061740695253806069883049463919902024566579324362695399209077715268116322552395501324587925234709846353434031363115037949126731430074007057546791710115708685460453469302187684043609206808602822667019660562847726769259728163305532626467824034971098093280483461727141472983444669573051768436815114587146704344706984287021309577028764845523937017638705952690468329018697064356580145429465963946932139496339372678534843917870738541658670912142507821159641909042039066899028456707422159676905999969836696993712923500089633629619084513892854304438276971725639108089938198453298166414769546953106947209496003923099864312562530287202445683656554766569521922353788072645491415759593995359980668119621183418228751804590278745895014808012831106267167548828352833120503384737313790334880968959090408809347884581238006361950549312716842392027154820662739811094838165963363258663932655087052503460527892482701823885896755853010528598318499355929963216533257291000606616487622341319603147343595101422756062687729052557877480417033230149790943863973695454286817291973812346382033325443097929036286997342596634806036515529238449985487111702417738512933857953031517203224087488088942705917941058118035161484498087826142781868792077413583566542221670589319598829085290387717698434095649383514729010538738286634701143801050001855533363451646862201616224607100719121586772275118084192647241143520071030228788900561922276991742340019084274206014502456275110601724297851681287119948041078399808515355748884362009839715498888400922793105124661323997759917426070218138766717698643139083983629628805598389984093585544125026252332428413164977405109381169286931587532835669426005052017604686679362372784474207006812940092436073163984070058086202364098701139351378628646628172472420279508868848778007279031256141328849051982167120089864752413195850484461089823912052326677212084483336700738817076240064270258247010978930777981180354306778641007015988801094191788193947714537443491301350423464388615574224396677534753602535919505293462941442448865581095305265774593461918634284304838828251446233200111985894347620383094924531034367341010984654679453237150575741590953933744134115376805283536887224671950324117799726456060477790376857287937128991617729708625479937570661688815193489758023009046383242243388826360426082887311465435925768927227963097268297902805322587210623191082737784101520181969997981159157410305710553219760467649770855501315522784965389457983824589310840208560361997704499642698510178740192543782204540634489561343596342369914841162923530278659244420710019710453560593663243044472311707458356940516140638560797088016474442069358413500100621265610072081189739436461155627178203285394837809848911102309500450472392532546982590550021335898570090649917828365283140069124014381775437470650465507028248017442334297244359561138647151808884249778019752039352753995932818081239071920959351936062073107372774877876685952229372872904685181706969258298586373771146149583961392247873648337487526572615057520969178513786275597323242827903978446986969468627380989388450785727198938631141560234281364060442229343858930518769351535525326146317441355536149361227843677865086068158944493300196520994391320121138641560372205812352177270376705485236948026015371458963669221424063874395245237355623656572105742277544678856627707578332487808531632397864731021954084341963494945590629703510128465318731091010898314614325595261116111639918492360394270519202537083138515883123883416755508682324545190971874377374597511341746007483802972012143015425425181589940824925435771395413883373108293438854451382114664084540103376901830821038954763959197606651862304213579915185861982583200741379255651264080399581261449161790303489320087069617465536628404322450719360578062087157016825246109857339729842070573180998403930314472208247257663068214726697571937160314139451454961625150326145755481957054626772442213561548366994609754548314897251755423387630637092614386585184109741089030174840593265039417520408877914035902316039378382806909850718354334667859955180927299374336609282482561505726579007580818474201924021369535268116536712699486103236912473820306961964872392333540313790532480633361104267244168645727485364417609555605142216303950982763135280111368459411353719985565735567587560900605967728244588007811449172897676990085878505367642781235295257976565132243547267304562567587731640499861057751098680936621539182613462577420592052537181933050145424239029310074827266710780916556661590146486320032050509094419576365604636878267837319869487085983394759709889032988005523076936802346054396746906138410749885304472869146664499487421030648075401923351385112033773217168909990470458863417094051021974166702425099448528969764180641519643699535198552686752157117533392358997625583596089239128596885420531056248740373692535562888840884653708426634801124098997246279238202431398577130503510340474057615505058534376880491389546658710924641218442483492257352441738371509632572669293442213188387802428136360242687567689478317914969858964350044759733680476609434778811266021612714757060472523521398770830530678212332485514412744924366716216077047313184755958096333107221702453282739719473769442841680411437710592399895022786613171256915536393388907054625244237304549295221682100206295902156262801174535186179110839869486369183482600787664252222125117942754756243340747126388400069470664956486565908504465966835803147989519401330907051266536003986384578171849189425889644993194726441910408049698830200957700978013569694056816874337285977612402800649835211875588031275213039966072567011861632283771896745710004913511063446296196137947208148092569173079946535665328386111826214503242918545106469808371867216385753469555889182166498836703272962717482881443525408442297387559302314328491367801515193919755929835850870072076316348946789585728347737755309839485705539011011372901543146902176761332465229641471358339634978564377159288776925778427600547377986227543422696982239203323251353036364952133562860442227022624902686205846939240426037504428371154133382262832002198123092650900137217547468636752330691144205565619789013562706707014687350807012728501873839977213006092261192797730217588329815641861798120280466169826689621713298370777732907483706470636578959492348483089241197506547112322741403851456001012384001515685936005699283645424125606583147390262616789489726914813967049360221453506371290231201683421931511736077945597767157504858200087863397982534250483716624883915532626693019865588681668227229594421085229089496449089211475806261768415624517140977632353784370947070095418360455713740615745921313221576864494936470638865487995176805021944988781965247518139092342534976527286249025377830557143866855410793678434937349064062482585600306062531688141756494991116466037308365603120906613268060750650316849645410199430789946829860271425024050322906447254048862356227476282889309818583776620490373844042214796456976557043037197388292171162833155313975147913631169945043026066310937152505023911352176395327973383201470452738986694660754148232328865135054960018132804424944902522338859003814355825714891486647543851556410315936320107185913545663341583692149985499979675282741318420410241759006153313712057784904184812932638595767196390003302341319875090559380863086108018053047118009535114972962604516951516865183800601048292504137157235059444865399697381870577515602537168001560575529148113200289578991988403128108189021470597986165927764522713570594510598907926209245771078567546388144995988475111422613314154736354236967845724383796582931319566475921139026050591456919661212409104423635899944545449468300984102990760774087083922794617414381585438757722183539668285201909778549165804743602793565477454954074494449612649245078748871662786806174892452532981958606449984890727743282007996356324574349533119079786222784654775496989708394630692681458369082291443429841425372274493068832293731722839670410398452445979116987246235865658928129572045461037067486176055889770128486636233930933145133534948386602682995836583408145526846910596801922812087679728726844334793762541797481540690981955748528246530997977512838018187321926670088627404525403034840485220714100830506675203459502224937797762957539782776215045630715216749675171586613567042776750127215579490950533364503858065926486056415389915302391980832421519024461693030097104565779117587842512429502359300460375336262426614885651310946074464345516155175781598663613154146461057376018404978995582390223953188430256481716959126453567740033660224889174717828801016483556259549748058832178660975264638519048753230122956260549453612249754914715584775027998745475717527233665375467895573551021516149151842029533104597619536422756097420879972699745113184007778259405176097202773200489492614472254037503562982792808030738601066236958905512394208860507741925387093245448608146208771576907032059553709975831496387649902904253879487975112353560373741570984593658449856882779926256263560787699497993729338383060422988050097585275514574564520272207119106337817036985352740427415655790323649851244366481446347110973744745372100527456989455458789923088812652805422736920916613636238230561792108851633347788253214412611060883556982010905030157387456734393733000844243356891202753658535076001790083978145122300418059415762677975687670633195076872121494591503912289614534750117693040127833931512769364989644732811153096300842597483264492275156184410631146920788859854330508667625564648314482415713427955864493319668125183262062982692460533700075453883092383575179685555585791930593281448078742847123222438631216290073190335773891316895384365042791950992703619534729826604550425624355993575052003807821705353904734112206795855258417150522565734007838840911069263939686712505482521014304595388998168657775810232885610263588318422384462558659638428430808738515215008221159782833173943074448827773683810146056517213122663987751069622811523380177209240285386365543077912560294459275308573494036517222174562501986029782980650825829707782792042695424106250245542611869711347386474051117823193907327418588548430651519942734764708418804354553654445284933248915368358994764198352319639208207893277278117397933572423991645798666957021818048570894802313059032215260914729488821684805600644020655254985046615049760527521307836882244373672279679550315550916923938082965889807668308514146606525430303926758525592815057953495846887402340706545170486979385148741684891389883691193654881200352789009806924412441003432146961016021379201291947169644034793899287075612079011201279081162167442680281060937650482584150417337977055621849039907473786219308919037466269215892002468584732113532726351398854580536325688519450988763667955063374341747691803225528142434292138737834050587260433031598671192891813692799085506781857584550109780429698658825071174009055221900050798807503497818162998354391924346770863068031104095040284189076295780552956748349751138560455435602023407481891425850318360083127715608510882619435046382939971369142166799282883019788409892506668778065209750158719188156022975683597481791957679875251293664411684229482769017735097376931520883566756735516884946015867036085177312850727791888952228253570459785898400833934459242246959009358376813259988119775540792535476979618982157747488877715142150664310973321604279727307400220219488858759850461652552056556009809869664898789331782038682427097483832408856855066417307281628383199239425570839059727389087499180050451265542921905985432095583793931420566234759273580326651112342194253639137225927132923397863581800842638013379105769058275574766369811918309560637903666625917436714059574121226672989721076747906511335606936594953328929337381652163500453382119791806296032471683285365382233505181287591189568012254449311584683499799254710410679767817831107334207539688787252384149306955825344109867966789952065012466486338219717315836326772655242372951322376687747107958518920557936691336148232865834278286734337947003858210655388914920258389245600313212484213724888375095817698628393323470399374140488129260844212480504038967891272080690107955328045651787711462295149608921299227315876120179066479438991548928191804525732734125116452206976724700731078772141697715108751319132156166514545820433944551394923717696588040281864025690491823289691479687812072258496470178611839050895595226423301878025633830589587951899447409467428213001791782963953042356329372445094163926656239568351202410580596573740828485975203389714913499572763176762120833718444712058496301633591136528671302350632353316151566164692607011655300065758518967873959623639077715499895222611359174601846399924456504155710459243216157321670923394717999124455969794911154273362318160818531949444002261537364625656525892412328657914182744266203715004985986965424246745956542626856160308762733944232161523847510879689219333277149929801855681081178590340992302923877728721408042486169523661345524913193005205948266961032683932281921770231417037347478309564950934706861987203506472762135696630614467080474572574506896991995909313409675561660005420763750526091478881609085847098215495160460850173873304328159327458522337885054856919758726043342995461119642218184877773342000404314793267332362120685865610381184516827972361135491554622178489770820724539215061860937630268843006621236725604220048652465251553600688594987987369469127676389881028011384566521351916240702780442862428816226229906355200036274432586005354157819559802428111949974817910412995236084214263498195460590513805150393126649358237072575092323752972037158450707642803948837991312705893360331777127408146122820270753048451687801619721267722888289659416766167352023144027887938352505706904845980418355779274869917714981712727915971725936426862828195294748643534801481328485974632052436760171112234275924503830007427336484842991420194711082522044477804710094498656673347147835459623892937214083943404686660004661461755504116337774663690769440857033793242713633057299416453805283812450377074801823943139624739930582716183345370567381984381652393868601960275135294867121588465207016966906468421637642381536786812564785747598593514957008355464965050483983319185842824400846851829257130614335155134345838266169583710002806282562385928684613753140673876199035923185700155891430934208446748638337586789192719521018556160071943536079172794192467174424714123311886260314507553189975276666818852756810221257148125684660709310066470337971331329109741568750812050821330163676753080699844580715181199511051774033627973376689228862950513031081399238765699106449671110384348592740475577779971422179230304162144339445555809074277364299092298056535611867181998475173086317781019903990837376930576995260522393396711066469358798896447317199367526061205720282709939350011787889135051194303980597632779969948195554813813247619400036279986053480727254057415299284680226816453703402116568968237980039631310742844495336091265750074829378024866260716579451016735993944508986283530464620732479417627034867856351161443411478352507016583332824677044612105420012790705371647344162850990106676794151093596271375010151179628377187342954050414427196034772597010697339735422464648416796771739014526755858868328678279734412099316898438940269119653157016814339628124230082718334959146186089140910230899327368413421930340902742583222316141658586018480449638449405033283839005549364938646646099700623913716887396907001723628984109220189748734723649725147771501479728010377514503801987178891894474881298871350901434945954851319993054823096304834396601848322358337563820797088640593264747267518669974125743155927742451482296409023253667476308803068982100438383554828776819245443509611261781622473705518853738329242855586060811415758822445541250647634960046180079226582671109631938894128994694693561601867556813505900137627596194855343970821579029110004708301056105688335231480396932420658558115367222214108050979497864897382803350787457742202763629836271955135860907862359959786364713607259342738142517429582186025608623452539320949014478476752561442004294750888159889360018017532653000257525462256878563359722927838174302711478146637492816947377298042419176473371161115857640595775090229286574780764243376146101094565966686805393938062972170421771699614005678089261118219255467222533270302053571876409519492805293301308671454323141731812687007529168583572003552818890102593200257024041660533085831937034033169595450801032716744215564627869791475739194490357000218774581812652532060239929436177118888051043951759739879292488511245662178877387294543890497829430074764666678811584057798448631873745602283308721929994276527686874122876918815479131480188737505383557488992932914654348773161986761898662184088689284204444012487433854082832887046988672648685269950766204422230788122044016704195602523059880796180414577691746324537146829107928100171897516985933828704911393649094937131826312639268291475127486824548489613487514090268168179553227411462539012360423424100899554139775845052388123520374849858138270321134989191361507619890096524593260601621362042513835129748415438161419869390631527694124246419871529909540906715366125088646232734375730597865083851842962478862415394989772935140568687996481555256102280240092042467942403788943753352402299735872571742776833371979430356769912569925159462956849193565150270186004099146349077248231271091450450744465378958704213562529589244077670637936131813478499139731548611514108822347984828629049694508844218821560499335656850800288214533406937869664346722907184404977773035743147572193875457583397747974555170818005787041628501788287058144510437683129555376134852520321131292115238928716188314466012505730234027842718322677397302017917702066713396716288820788762002647079816248622281600663895896109456674979950124297246698496519766199948545279392959329519191934292218268785959783130841393593319570835531361221616208881485870003901857156683232136745868153465812102062430883657065000493298445538372865554387103139555235978347685668607044523609420169030003815840453152872360797202737104094661090216596580714452594262787191786542059774086686513401650572453565383076432005559319697908474628437663242970626943947571838572372908758768085780878372724448254007427023748389372964480333218986588667372219294393344811544505479342730625499691880301049263331083343456037002944562526095258607497942446087889752639030034089032166331362609457638393862309111933845857088251996489096502838655405143262333970071206935725625594327563395954958941045001258772965890246543283071595649866910644665922247122778358946246733504163937898625994547730600018781931563632431435939141038766211629751939805575928799512810545125763067147209407014304420207055092728482074104144554327560399949420011108767823007970126532286767057878139378903572400471307430434336968313178092941962581867344587393687270144389951555872188600164738655505140964812246617663731991096757339373519525063286228671408327307480365048752715519458631623500646832848976025143174392976702673063785221363083086606970417241256937077136031159777093304655758402538077770553740038646785556049057190188185653711048691179096649162316329492422345304506877864294775780229121805215154099693352985510436104966521351403995353259788958850142445344039719235697015461764706293216837485527456342052055870819711238615674011317983427482801767213243603955635535180533497828157683793567175607751279453174976755564768685508730408150593499624337731108023791411035181763360959819192620661553823676854739741848465923490275704536007601856523753364950995893900181429790018326085012982515645271173643246201661395660791509512684321614471295206397959209888945871694597081243834465913470457657942493831904166288161584966987202645421577357398574001374775671747276070018374852642281631637950762246707220372251948286776534853531277825671473303133437368040002597938035742778304496520513559027208808244057536009838137075035420781398891505818242214718229212572134236848762923389700141758911029767376683815614109765046925412412852103903439464959101766307222502167617434272469708629074805117676651162451687647146424920615340291313213297258783049005870371177042187488816270945942953138324044647919836668224456390100406937061970373272355716301513331077882178701835721359155705248767775337984855745907001065214398149667201047128051248081493784194429825316681996220137043736416047163045844287845894299089399203386662649350208351594721989636818242354278822662047973161204262092893635873459890133059361537782616546246105485387312924828876326964026859555318597705247141489637066005640721200634266428693220256236208365061686453372957361711324479323837198380781966675971549239621638074670598993901176428122948610594516865488799537611185277999834581493011711395787904877910890652600285870504902392294779778935833550531403375942941896064878355280024084067943404566046533647545593651512949187315545384539287591583752289481834602517768443961194930512798717778476505817145878860364935552249768523843891921385416206134592525061726501577843214552251552475817672112777467860155275523490824650057565956561130467529134882578771941552072588501898953215487384594085346100342815532360297620134216621739135079893035162273873793984320721446324967739275800902512741665584806893357930157752244722720418657263386958974002288023202300260647164803788437597510722269696247832344328509472297117470178733717965340361236674750594375491895606595142898979793400402617739241641356198770811882276952752325758377313412810395918329012738288424659610477260678594043686157882545446900556456233190493663041337511066465219587896930909805186193336636310140647464945152573161140458087028913849594778552080199921937380809303011084372769642496944779907026455848537414942352832612346110403997286360719948061444661080950342564567701288182102051626661502427036073889281345999813620229335495921281798609387551953119861861259534512021664456810667649534911284773988529206434293275753767201264908244317397120514479704362025611498899734910396118479071996200308922552724953054709646302381908588228367449629030989226102643479362525627898864344731878575534377184849410134404477739483221786200141740196195422079128810965939109524007669386346408818671905542010510651867699919636443809573265205072512347452639391146536393738171921404353759591523864710425145301906886180729231343096048661217224131993994876883417755856453269258000837907449934705895103477656537091821619176686396843350274693581889456405691545306463451241179759190435088384248542185022813706270695767082674005253723197988616496360599187985879973606919415489305891658126964998496365233907197831248625879828348990837534605297726537535797723239596571228920350604977174475307209594954960390479887722701619617748074799941896236883061287643475324755066664283897000141416845376449287532349524957419498216061651971768414770016716544694033558675229019692997768550879723300650045842737223880332261082613758005401845534931344455263410100821547500757825803768989758561868992068490058043949795618625522396417584944616668415700394989806536660132491859836406762688199094233223101909516555129047691673944212835484934345751530606346486565007667944666300241129684405605415287173108509546886671739981867408926518999557602602195458758073060959324572174848713637129825258961819483009752106244938201298128943389705117632282873377745814544414796738073783699325370919647158112071621423464567950184209086524943330028116840846152266278277944916446134477997431533542104909813273862064882854263050330503360913508393716027502741985729222697715600767967154697567872259583423743688549587707808426821248693438783966431284324343671509898748510011615474826716031872502171335288839236916542336839231593598532457203862746323784691591777219581174950781514685033806993696016363079134090121289752771752943097057343073322405585831612162281183229095871510136788634591378779326173311907209870503782761412959935787002556995718453164653736220579447914182443731446062544659371601436333210012133803489724314696873882503515187902306886001513773523008722990936156156619187664981238494524725088044928138882208017721654131389804174752506825126766609440203830040216166497240713042930508629741028630656544805588865341077665222295603025086643630868065213835169804307728166624329474483692079681732293617451792439891827358778976007810661517266472888163301843346954772137958466693220525852120031430753547334227302790717374113646186648107781139718877730857439395726690043575692143768302432176934917625664570173272812529633791435085632581548835049458996386166778410591354388017024120947005050617340683831402808736798137950907228868123432872848087387442719905919315830399482150494041046862138237163641038430305830214022191966796744968604569928477553829138719958977401795191416511370965182713657668353741727716395114873034294726648413016900387925663510316246921356963532552062782832536956122438990795740525257665340691782526712654086996779249895177052878774606429235925995452504241007951645407243008680234733288271213624873995985724392572926264562509021110887328757831114748965212065212462365079564801248364592246546042057616931574350756879783205020714059023689930826397569189170418498887465284373249648964776606617748403304099738545118006363443328186663184976791537291299731734916039772809133658493386678881612217892467580356865258213026905230741043218466355130856955161422136812421470638173924936558185467465731429887287626618025797102607216083293258096558154519109265235789015938040686222621345995470335627268272359167877777049805425187017710833819066754565932482150995402737323197066419007397888170641227358259336221835513393893645798018604360600477404210810527720046457257899443588778013606720162875017935582186269233574229610906320135709655732667120572456165160846494247490986290676448323656477602884707807306145261199752151137747607392422640380000859176307895031579373198146148789379149414404334151385507154705655966341803658379647845427159363242421119528791348633023303698773772198867527983288941411477815570273759670383493961771198684934350973372077015937506990188919905841814921507849776509009598882259263983364637321879323815770914488718020420844887697137711763480054049938540934000675522487521776848687927313118546840733341322243770617760687564613969997893897543405152950066738835802536418060039917444694183238094304630620293981730437052873289657781759842654832204495341342434070465618798335758508915966279898794755783904563122340330747477519851444171928276234710105515580466489735550603483534810198135355558238988353848923392912188201315704544413984634058937809750051545386836411714158544452759767434225999025186003193951889559654983558460604068942315148684152799250914493812123643832941599131487971285461529141732737825627349220323422979000592168589687821102274567937701933182894827223205944933820821639957456301716771010312796308893687107313912392594612493550185031476819299228347236279041377588547354769850891665044697443898487524077483528201071132757968928982475280367872528518497686437297242124849833802999600476304929722953110713326310807056295331594654612081099165037442393247819898321150959434572575929608282702471417827688919604987719099305333353176969591206157556464426696557961500397258643958548133422017086391717978691470353049383362653642788806222338947179374871006502363862940770769523502098436085154141461556479999348459514822737432114962240956899738258439846203186526447319404352082800876125746996875594582340818631017460060596769988507815376257086266640806807433997373728536551466647481159058743128677072118851333900472618416052197555104534232107490268332353364472582613836107969876487816239439227154519768391660031188891843503247663279819598833762704530181094746345842498207145852950839693692703974937259991366216688228415818060772062480951887989642400900291455910317748225987271219910823595156029249136538731186889256422017353820409817484007518098097444481651709431543245680051140547676633960620957425724932184339313003721124657976546832276809996340649318442449233211388426488737890305561662472579452203502214245797242312366376716812071843914784078635000976687904276220953681586318039509622822053539885514707118249075477625983278795321539392322932517668310815543504340879131625429547181609858442042918390395143205976546477304840985401279764836551884633854832278044751283369583576186579241873190884189966148894252080161482439643810117834825969274376664706683204055557226692908498792267928120525501808299206487990334878002385593466353015435672462082231990918394258590793115477871922412185934929505740803545271600391291378514714555524760061327370005450034803312769205161432183971987896725537347764711272865094607742349703706965361452743510205310965315806546879423760259881264707433297941633351739164188794793134355038266895946280158551861818689386636644290077108148652732071610075487783677430826532430240043353964087153345331931993780330331509163901432042893155996537959794227071048477212283919102802582953780384386129237298357108302474219693706850099507834132331262313438355503471398454414330657822176882289029900339369694519456078355481119688327989315809964464863074844493181563228400720845397251611245174581053801064429155272163637037702954257280243439980068420750726519501951186367613950026522630720181641648638647772115876533255439943013597586111137379667296584282220345345808219536697366860458966209531422521677944609880924870601841371437245720784126527214218456581956810097620794338477786047686820966783281870446999194416229287663668605780896939676200240529837084094071827624300506759817405349539306001526220429978707584208025139055608880532448379118552835030252306012446460800472508473308114614223873558970811921257889823774770118238241611751732133321221627114964411133522120713772409409782341532056007446800903472898942905702007862333992594507426527220536459477277755379598306757965938189138754302511575699660626779479667374697201417314285108734594038549948560954299884248381446707699490956109970630295105311765337724204087920182244984091619502362368276634653923272834596067077570551888479828806621620427298166320406340776293420864067051763822737599268235034525782583640069221821824263990549791514725546077954592335580217312066466091464599208318312252914511170209654438493387153975893200191148418179203828388274652110851141908994967690949359735218837887420517722673619907527699755545768448358705280417400051406845037954189959721158772946417298640765950878318406626748165725664458328386169622122415442083415249832534077954580652453829826397652914497482235187232913105156900877540327081843439056266599589018963315792926086494377480661194957612570639628538339097722758155794058290689920397870906690220222991543060508712365412262449312558117638658298511237199638072028022444722666592874634231502680658528315178733800278717985581320076947173132424043419641083798538511830087455727786467156127434383710817629445459169907808583150094931392245487835482546366141752019061606908142260653844833493131637880375957706827803365003462205785700209361679982026078305424588178345106209917594633147658959529843306091277857318527275288833255126635395475379614583381176456681425845001265113973666028383627177274451162290215071772840110253094476102068616144006988558875531529414698690321936559044437166591839889652126079727308830800158667433183112771395737197298056505487332160477448142349579393230216364617557027265476860810959868301013842871434744401939113484092046577587179273844821419966622918784160195250801762350912686524282759128082997054800205154794812056756063120119355604126196117041719163799605524300693378509039347362742466035827235389320171635051478165348724892100556708948218586776892776572644039323527427303964769398533920430445331716911952737485499942091235171189658986191163743929888376516675622186137412851441136338177656041334932628893689312339348591388227293590259117648144931456138466917341706604858332235917314287665379680148551300516840729352010612407547281349456686462616628713100368186909497737107811518806580675103396581500960435321625056527256275552731435076958034509836929603322778306781348091189423666870602569850623305803158533187032605323575634376863876074530908464161510989362868797120659731159401092428652148173832648673390251901644190936415663745402242724558925877043814697274329016257475419295650993628633614191052898159859051808212229331359024352280222876621526485269709331751405745743400838257563784949093469546276952163893464749026587681805202743739989255348844198771312895837607115223865410806202719868137299085394752397901234773640102354843501604441435845863662449117040991679931461758456451622749958554801237452337126500141975173415203896525196462526390631471829025718064778225031665404986923885339054225226280540804372936895598351826840932305545807423919444319548903268104895108215945322796380822191713628149321952166111169892688094033348950591411154817482818459089961328967175088795036117214208664288895062179968208003200600328045920076017292475627963897949715678673770648750334494915978346601249016424195168726691582830969633542956270458658189166295488580694143220571570659609258332927239850758735222456553917180999845612324817953685674952645515705419191106807221661092232346316583661607780226277127614311545276766906416068626864897244519770477369228328870803883189407955709455364007837064579757524502282603927668289394584946661227131921371524039995249069137330064980101841170644508679866724070989015753545886167757290181482192141038991949592079480709479796842338857516828267506841522739791639019055185881253317074871628285674398416241640467282055340156139286380099944621495563628333548086541859221698304898859461272682201157385489885903786366634937474036753478926772437396306661268741552161414369395627459033233637044886116066147270429977433487950206538571709145866596318659441780921875758950550072620118009944206638370097478699965295521538379735946360974640312333983429789468872559899280556606273184087485651093695894469876414011932629792931008043550511659986602112375639181911565478297817796172051620710799297872513917681653140342050608108021575076396725238704738709579612636282429362333224575919950995052309237161931663376069507964509890927181268828081807981170123793467184669010924191700065610484265549080612725230280342986101866453434723857095146077977930748799607362014479952121298621368915190792938551112231275894262702559051934569088633179143885577005475100715772859971314738724077648749155993330220047036096976126426072639390792890762910668077955857814251130904011751554404222791744580277001573795248972465824159302624162808497062399408130806468717160357737633953709226011220787466459367679793924747561601437609941911985622642903096541931769009589858814203355846852791488543714536194340193114768258416158750806444447283674664939408466370656138792087165079825938661375700346898715921730590849178672402035172133505513976205990203371257103212116370423684759256793159526091626428015793980690786688474705364197974088656796576633502005198277444133488651855446952122237045789490578273231698572288145545629008001431677932409821014397041995477763034890243831315019871894216109025274505039888156784477770647039387933204073333097719091994686821072826633350287262424519704260756310439783131375143084498689205063708410263118757866852282037686721349237100551334791970462205841948727280898917612337973262626491991046767088718628801087782491081607866910834505237193878136126464962716649337617494064461899598431330897755927606676295554401533504614673655882511003563009875809583809858457078113957908218904842605564376575571305672234783385740776473145588135735744404965020354176302195320160055006316190438797094097492013442346889571663097437651404904583667356004302299120883054651864448909615736200343284349086441064907366715243731631481015938482611365099471747473201836733319359268921658589249274551024793778021121024163759398625898086402583689027692587535901359129826620882800843145118078576350317758028304446839476572027789594221857459215223754440530768996528401943175164483310152877659536544865267161864108875487044883707923907974832867932889694248580800468833912453141744937022984371919278205845612851436007587562801304646744519306784188257955479374190856710414559220130197571872404033347385831608699430225324692931070831614020688470958400130204733476408370096654766569169186800719799778786895895398662000931436423397901267369951905314494913560966091413137647545997217145951935020600072360811028270955042714510687845436345345340701351082980321655504677883632086064466120875462110101761070804766991805213009030576528285167178887122110632296761103330528208079527779847647148518973965015311398566637324660403975818189093836919442808780092264079577921614150333760344231157311411710785385214123966911921618996930682568655926109317713207052706236653427318096154096582393337030254413223374341773820078393702090841139212279248529226861125908134180035619109799113673424520303663373076050148306179384270316778614507357715258225714742300035218268803109350989739834279090253226705573319327292596924204320501307462190378728334509688737948316583589714126028751530835089726495186310624786660035109591129078960221214063213435717991688056341499782234554200009206539647739065538855108300840288702569022604131552474079835719740061650092443276534165453792552841524011626371625638655177474807515064933244811400757725487630436130362327979320440904025018328506440976316775218837034684753883603282653504370461546190573657172264584771810229705412614531859278149010260432207657343352907451766628514175143009296573608837220779307444679945120689691187066278648600694484356975481995183774302672343141076751566404698908387576932755732814745324030371109125104502650014914508708742691295189321065005907958583565856844831525742392735380714034674129317706478384025014294288073620839617826637412637130904873105601246504831087879314645338962654765882344557226170471359468427371063596193040187286186793413823865119760412041576307317633099008874988326942103438971897836668473735532006633341954954980652400694292023645096190605970417994935501899022347798334393756545466625488193145493737375497177452896830822767007041178279706903746148047841267475737341854502214405686945397256571712523721604702173953105458722411170935277515496447407820386116287075536290881087151753330889386367372963371679629392434135761526074899120916859480185554051500908640097040917335625392986793601894228704476453908150917383850518967268568924391803200619461062403893079652308680137865539083775360583247132818528384039439061316220337084334254795843331746016964826419889490893037307917061053428862168926935244476112085364286261749233786680008795118907714051935261592614719200466353981606959627930551193162127339388092311853351003475558622815184029935689345678027945947635871349243057143996956066467723646127087718169319440788401021447374676652412865619110316942247363924542536168480454919376090894166964894061518271558351271270802469869151863921339164210927916095312172874235112509007617256803718265006395274145734742759796885053450522779220845015934091236735495150510127760457845994735775072305390129305077376277836430977179889115440616231345769584122291743830950786297332875675741813098401979943752643814456341898292160586049257316769905924854727497334617281714098676289794739021567509762497561202210243458858291169208042810821360066402963352926158297564625587456187372487505631855774783183959442002823716687591400582166611497849592251494813762053463471704681867929109421953915423246653604487754578380150502444754421956721565563031967018822111719693594424326136006769334248029623816533848687831691582175952442408642176792440743801613677743487016410545569277756284775584636991617314179767746355547697042007842324819619940987092941180941119232222341139780412763022957976296392336008662078367682012737972994536958536092613371229375617005947196708835389920191978194714491472819854490873349277858060070631921988686937224219781435547631750425837275664988034838709301137321676625498776682019777387488740590151276921903515548212014274180932358748509632821963354484905898741156643676706930955468921061734185664313064693406181685564225106702441309562188982537123690783803765462433783274614529524000416771427329009388865026148069790729625034489526750900213453078740023753947450171855976726099559820755727943381345151484498423485846101650489649582026780518296450655663073895757110033868439609955868244567710186739397946813897315671166225289544072524063949050004266739663021420050230290845879013714745317479282905499725313106317023418691906771748136275236756343553460093871203393518964541003057893318798145361929098029594169768398603526037784465956101452387630947763664850240155991678420392505525199297105893285846289691837110379590177221543460590628988176665529212048588120890855097391340454717222714265377991163747920445332291578018115108656470650778403038402513695461120807937816060477453223598354475433852471178685846280326813641580755701882476333992097752451463403811981132525594168432162019451485081739277597357863788753677933269468749851713003167620799723930596737538331231235689261111940282060650009418175340964568778364098115772936502426098427704674986315581784266842127693926785296557043744946707107536536221880103572383670149856548423188535703660040068385885170616218914703051641510819424759601596760528174225595473869182207706974948175553676526355930217224768352535825417021197222723067800772625195242593960573366041477976350118047674898007178376613843561949517132898545773533888364222652797290657198160055008618130811364100036814977792270943538275771376253436319549854783675918488590038494436658912428931976233375331136546295606848708403150369726889620198083893396947008824166395483908391244047716549931405111015300092084166963032815479333412562737342105168426567160395677388184387328191829751937788781679650487802409109564792340790544877880239102459562939569553954901105810887632626640144001986537767168166468788930984449657937732607556441156997799034302025923861985426206308008930338476361996502177308586047516038172033141737196903805155302208244950562208784134607939877653543962323975500830687486282220932492231474089811498120419897268041736333758278476212943178617909475242888278480725965599419245409769001485645782799402018790282488150043943479815353071352819341988204253157479508181347433274279742738977404040894830739874565519353455838110232520350451670495575488151238255423820247460567288992209069140041968918231185745145584175691355574922070374583169843221258660276540901972792298648019279826854298022437459511512477628677066015633816757521549572570219585449801007959284657072043071295490891089448024205119133593690170050843461634733214018771632327444970808002158437096121505007959141157164345130902544363676508610768509154564185018038121571741401350016717324477512020655993397586673205205788874318409577908313816814852252107566164004889979123806490757914427207025825407013454933406104190292487758082742739428668367943871246234000816055807770329720516226101278298918907094014737995882938641691736687004226479894018552424054129008766871056888895719978621976369284206125924962840032125315731620851501216678190211017066728423111647521845993173189792197672239254839034856916694947181864286967501414661112577609010684742087027918538795460405606389420688043561302194611423523001933312287094724612529249367503631155512353779635762488149875952900312355389728555505740946431090143767121252909069752496259198898343130001907843651759389377280755341287672675628461347481363295495253162764605060947324251568470410888134089678517358531758114051037757628555542460100664688281008692431902277372326932679127246549530474833433546757894684269880152223890636102634340708285017366133881472376699585054398330272113854931365101053120856691710960038051260529798377845745467402109391390827883591732166753249377660628940832693324500912547546840271377963386412811563432764879607351426772298761760281162965696901202259177861867257836844187307225901959537957452030393107123358415386539021655826088344322560534580623339652450260103147658429719796284649216581815264485502340841181881715269247999410584455900137271360308700284286448145033374924230166956196043762667480889742316162433545571190420921027438055259043789520809802293500066383106586271723673187055051570520270725831621947687936644537531048736022779133464868556240071582031822149558235453070116193114663881051810628368012393004978515919829587058594401166215407237890673750717588667271969073685435866159474246654397427588103656952234434896011351059067879080178609868409433869359118183175985362477983717002939172112086873410026680521662876854685923650709602472008861116443786307375662184242307084260180955735698408246818294355197925828828308352654855498741865122249053030526461714729947245902266142480248975292477063354876598789903008904251016432518965101654377923808907482585116662148699124682582330738688457179801936024533015173078340756621836625760495659823574460956902882905359429477843813913392644943546683405488182490474054851549554988734666064837510750317390902046845163803729686361320244532971658652804239480127066508900991082984744242667575844746993243097580091918227774907996619724520281210774442149019227208073996291553875355269319892060064534673139111198318947883128133201254232302786447774666975561198285981782639629195404262489040151455880420882012013529874683676363554531919110771251250625937864790824301284775206027457465191366412495651746231457335983141408050140887693460608572750472234302361963704820350704597901660809374660833896723297286774901598830465381305983414917112590401515704670609244013329054268619286431532480421485174662322463463996345192405969446471703573089637821545871345024358493718834832630514330084558580046903201937522351389998638690882641314700088213701485851186791500340131114486074531863444541904136092618734021601084810687444315670422883968419495990036391796606496016460330680385832040053140559748242587428215533068799816010777558637558751508476159543345450934754508221065749766446530029596414038832009056985042718323880124960241498974738213769710115990992782113617565599933375769111000402179813699336790464517765584959196054446557585641167584615031934016746082139492234746864696133771453247809504885320554486553138739458249866369866237615960233335759228722290710808095888206304732890260305049388952613046750021470492796486786544046487450514212989116853960375542192131494192145039904242778282891740460086840534405208641503223131119144810998664598727738354730280323795268790629969517148701338374501698309066446303052795311115837834036597799920236280956441834340238384140357131551226338402138201902113294849337859627836899801470059773795035172395624937953809476471038518187447964142736609568393008905301570644151151919732775291465204708789452280144415192425486255465389622315964199744941460157992641986832055193080983210560842513955836830428217789304167036907103350868406372846518332568692020749111848770098291802472295164755376870299791991895560539517144489270491774713330740669241860657239836437823131571634037284517353616212500794061231805478153693195599522405491086010915187647421323100666367898176367179125828274394165520543340048948791521105867201592779001944951725773634167625386456195318415008478006627103927119912065571236681969548653922335045908155561334197943833251938201400643777709686609139104644065604286890292451214998779977529311485387384899256321629471116434593715460223037692613713557841902050419813459095969215983463157488652010022502990411347660060006518088093510119367865303250142897199695678028150445246881590907424820615934374905300724023332724007569860118333999921110008041324676205312635706067079374320889160095560367136157649772572019670013934695356772644060692856160887186000880501115135054161806518267423549047059935102016627419158484752618434779065740312908547033137524001224553787710329708285480106017885057919170089326934829497659972628410324923073198114330692927207422395608612159035850128119775023894608274982376931683958527089700788981706168133757464248136425504580997948823026295970407992302716009715948594370802052933485678998960705222145500421241269688461390315351142548508449305491771637200443948886712197610030148197409731911502754124420192762665082903528362172793047867476281339568453022451162577423371829298599809272185994763999181178233342870984097432289426174813267947952406607868050496182979631174203760793864040901518859448440727513216472276655211272379724042563545906458973461707703391233300149789667823759310009796897375642276568471971038883137731429357380075148574548278302069330047536675656884758296112593675709428967320340770645940638650966353165225482149320113317776977663287637161766215997692594150783491407721741124979806034445929978654555896695028267682260455064865529078233144799979172992240716066031529222677407982394388868052008418112300835336855679395451223750903623603097380482311243114887283011329859931952240803571432733734100546208858962278928093123079534516941194349210726501066682464223143775588571763330032841052337085916142976978605773781591210848521719441133567221080894813182411435806751863378321809015531986583919059541887587206726148568231662547951564108361301620967624686352481378594259607669808477736878401201295742630957913926057386184403870486187881488090754508824471721339570811622684409794098014598644786421671673016269206502019479810905167383027544716665497419375026002137719452926465617651868576820768846504499915343961533753482456010401469683168123028269329361279897170052963315144371118676555447664406099724757237383861805082808642946180511917975511204687561648470126336162705205702915920709705615213586234275703919851189767532118274065398076489313843966134747187024752693978302177905003526864943500037053701408878700994471962889175165413735357415268332505934195487431155266465508117921008725671844228254719000313951554255344868221606155366626666155987855168298175326335710757204488958879179805507210778230221107421398229613847717104572179562144082924201312919089929937160971186774503232588399899082134499882986943778720686311159394144871901287108705613971942200064878338359548015993332478282699122227685232384674479897773776891893330711256877093774986169279775451104594405652502795208768424808170250134558130581886563045521640450160637365936280912419905587362553073669052729140051074234122262162631640362641743887677875817312896437493656054820297175767409033158314468974595263265020306467153955769403511603355181456954099141060370467421278263422215055032021955713295755554484153136809690211682341799030922425446093848059208728938783720907327684924352197428885161986192037728721983726622338168415484144893117801336945625610458113708204242512461918833837851006395793334822511402892711060079862808785284715066829756350667589458665430011560248662219356939662027682287469428059672669244648071654515878984169860027874587712074475267942857409884418573539067934156514937669455147216976735789397954124984542349035871758561215643901020911498800184504878613461034536097659775839237350639420010888544903000514949912490083411884066581024324995554409552744326691202635608129282250667883569134832025129231352843029889306635313543516249500076052571314212407790358906672779594190994665648689038335836674993349292287607767111914708010461961442860361844491533742497915662930700156211134839893952745357919155454830854139733600327488298873825877246407919287839161744371047559761279985343046310724613382036810167011760432304786928434653073915270744803142164499147597172486380044632769105969091597500918356897582926227901822558343103454765686460010651511200274185415526574209757233931757140446879036458909551985091401980915441569515330149587553284433233275273644726899609071647640421167574855337666495231295085725945756229657498286882825391493842840807505613811670870790399302500293314774716309513129655591511662051767872038340494653075233749365774407001516212150767703974104169192664472579220403524674979118256171380717926176980757279453488052041041420965339191763551630658722910059753499878813602822544688197385285767711343543225085402275949903501900784352895348907537123654060568249598646662837306005606840975235845846756571110409641856431025279105896977147255923222949157016455530004861705123822217367066924679192342798834914770450076134104292411932997162312436796654131068785296781781458408362217455654259400557686832058061843478588590982405657000180738522894364082340145464148225103384602437144207660511591411237852226696175093812394387690177742363887044999386355493218232293390110720391212606235754977537061461735640577941346187357301938370070585325614941516761609224155261077653759692473849217056480357680884404704248036608240095219342021790514270343392567871367260058583563100690467501099018475355702463463974135076544071054522750313688432204461129129090349588734411788144792146995924970184969702437304221390349091965995159541579579886266145409894119087339305609061433990256486648210522778956287898034246875330218074999143342534302515684659913775901514140185160239452597890528354312122413659407527102519035211153922607361097714774219646352437684714701340276648016829338354165486768393568518804267618883135918048936102276395129707203711443176764896906933190912217395543539969981914469091691044024777325904912243192003704081094347806604060695331811252534275090102911078489023048032827084318332334566723053608187428158643349009728196423999508044697793946479895589480177465133580987214379159406056761470404145234366164699242594045866252703410532361272353972947703753857830207817489252269390420303291612772129238926878461799714731918709631680069666604331356045620673806951544291874854195778340532492699231614827403236081652144521108436693364147040145392737730108331288934157690781155201618506333842546521018581105744280140740615077508022253427322302773692418071886695555434445720383127704153337504067534618268872286498132116860108179510737552419628112832085110553718893413483028689574035438154703422015302030842583809926465512730883571598163907514691105014309810475658918759046122814349656931716411869957836819880943829684376557236066345249280302715318743255467162529915248431434484925382077396469021324017702589918261558688517028210894923973883675864548362659037763846823101813840233013649298639782645831086170326122603122336444906254899117922557214989359557296842001548781036983068250469599356677997669035351853675469128178913228453631309425261445305536525211045333015124615838407122812829828326932112425705571687636632702793493001168134881576164357697048146634280476761461302220542310020020184955439994832090554358520687215050340235945404933057924335681364798778711920745136422222679731903013962531570418189504307500822889380896300038373870018178750138875071401792659950791885774312320812944650149842964309473958086361770983250699033070392936372155877229941987077053658377305420840717749579685429893988113041615965147298903116598640861564910445002227082081470598669485441451287939711550897506640215808345724851011281643414089064581989513542749253247183867739775677629189545701468438968921618897788024105031952156157090928730011631656039898973794065909432024436731077130790030436071926303810838717743334717118152041909345044862943841848416625476349808712723141651622075893287746786720305721881799817162208021252844632765030268949514655003648448376301686937532981419469582418021588268235808488264296350452740534989782829123126579809332557582844191202407176987955022603415957218130734314257544265291828081350368611956811871216946445975123828665859591036060259086906792536468420187685452521977726699535715566133991835627221767199008952611548399485690233914073252953410589060887736471459983294606571424534768384265241958254721422392567590503975826045942343372200216813346682538625029945017772558447499919165268674277791571419272698190401093100175653525451379134117012771983160229331663518199640555884114032948003313014248764716785471561607012203743577883114604940988227925588861057685215217529481500949109880476216424409904792919951130132600908854228036385680747391361687625348449300852456182347358263843514634484997126822207764360904866698233669481469181217403503685801218969414841325098014215221532090623699356622866776735633718985208624303192407785661435445594700029864573685356889588741280599839914016406255220769014682867263305353808584204856742426853710821909986266480429258178739703297508669460709794062885423120593752504375058378697621329719509485085138850166993283847045470464948888487999001789525146526418586635404495127514207281281993449619199918128635209775281101582622175060027728708504489913677093842011189276182161948302540743980161720462587710427764083097206079801686701131099013269821553978497181320499500098635263715719887037781438023679798963352886456166896245287205128165587478540083887653630025251793619752823370793481333070150718123656401525603224106730882003087969168492591280808781867784843748692215838254468651612656232579563928711921394324154097686183135822686456454599651487812930721441050130865737763791155295809606559096801989243626231395761767745472127535541042572903523960623460197438275680786397091139859517484786108313480494252726253997313563635355091990883688236120676349048502952947434800775115689729406213644748457988196809963586938873276436545530283823718386623203179227786335205034573004369645041819709379143535518417822794725675900106863848187243804305554583659782890193870316479205066659528091037295704171604551823283476206685792806911406495423366384036296988438455369492574944329947118724172223593645215859718824172435114333141765777604801908644404294202332135732098873413650833078519687162070248635821669356896140877875707446372699185180874783822118294758350651130439134214640374435863966341435391283320640177733594751319548485033590320226355018567013332463297709862698178648753759918286971408996040317575610077673524377543173833879702949730307061597616820333792433326409684111654124549347427073731567697545329272852149926491752135259378617565302963653032202483096571545846630505268101602315451764381642375588155745618927697279125117231526377423950074823310527873227723750544066049326686459949144974321425884206623443024902201799111329375098118540251585981962352748085279866036368751109361437389883661235247867868337638797673931472970448356731817877354380187167958744759596601380665588340934385048625078192940020258841613744233655511585019661303968635955763440965126793334191824169463160904221827356106864246053496627057429680211815787377727674381307641317905075020686128315587561803158649287264457500552864710791959847333918130703224851972385052062698143249819804675057828356436627625332814858527015991731987273801945955685240452629913241223716912927611977924034407257200752539587198104245301571788421499162367024086218967852061605994291799805164375822168755850213801375178752601675718873892162594467609716018765417200386857539531627775683904138663616695143404511107811610881630196920870038997770907078650717644862837666574342869252920890017359775577165150585574898939491967414387825183300419186937241427799102051515647269534860878768625922705158831491990849801040221019105203666899220001808880746435291645109942803998721263925381673989772176457093053341717364119861615577641759342481486770694388231619636162460073209896949134847344736029399550629294822459966047606379785676838923884217850525026036057307427232551011467640880873825242394490270152747327714667083363847667092988471990473172860685177045792260948362420804606070395356960715327943008496240165468628536139322520428812939286021343896815314873110500090577362280308635784999707221939129939680500868124950928360870717146915337598492204595425511397145936850395431902448850401622843143350619499305843751278407121216048064800389624026595312557051845599070840916344202719084190910009621257962022434536057375318933866198588496101458258820638869193278082131553121785765658015982723180587605150353504268254544692739182504720737744774080526570496899930783884904116183283353041251329056146128317886762551865284957205741081900388326232793110176153875244529392829895672396472164631500343436862685228236287901237493293422492169617991755376495174411960568727604751575091999316481289869726246728448511843436736958602637764729120026114875938482357869918602286128655831985951786799424965423772189715429628103235647699354369358383744893187419529051639163024276706684377309334748801424716853385070205834568433135453486318465061883945610868514863008059376194498768803567306174344986119668653356668791645955623137262558170695162323199367943512876219453345271643064041809296068287495392871336980023036445900148240554166519577356861564843129618725928972731714535201955046055086609899528516017367052207382237201769809746416045917381516712530021074581379222043014029172571086513735810168744551455779829660613664612205293350726567127174492484472239498245194893919654111723814344693636718536942836318144312320462283302414534317717099257935497601343657720692550302949743953764544668981044740341272434322157110545486542779844315059860090492088235938572257301477408771244113993010230974146772365501030607587754029055203170521937628126660197379057895194945988347946854888099385292859810039771629695819500510649932395944517393575731357089222222174881297039680736841963767015267799274163832904286455738696358355392251760066824011709085488807532607018680370556867361481351731911479877681022382209230286223478811047489170177877382831641237526603979085623542079921118224718219224450372644108408373016960205259717265674107223422632346452530732688199147639224320768938452321874429124273681167947181533294494438773865449070902874963529557236840886669008998657068020692796266127160518867805462001270649307736920273155149445584479830790431218986876667258393190474265811333824377175422725031752074475653819020081572730385585927167214514640455397765265042947540213891730794219243949834019070718690678137743617697097605960515176891129625227535202843932564112480369150003172641774221490047925709624042917294482303019123948415023414980090118670873534838328622844866672206306091242152697043032290540587461773044821321336592524766807378484648402932398127467192182683543265890590606678471874385291329973191622350052229386059718890097870331806350664831798572795792646555224500699211553930061741401428227423892725224702950935405075011927408328061546138519614804174577727942932448904088190928423106921455666777785400563937423832574009469048967895470079884266446286824715013096873846298158836885100992357524394727396565511839446303581774550606619333490450682613720507855989572285561698027450268407018934306102127674323988526803381952723064808388578655076281421174296639478747786404949004312637097258768259698451711732434090745868992015217326662422252231684113492267248047979998365667743845916629308591169189288428800480518634504165936191965129519141998990228562114571619969964589983890838859719190431801880930070196556498965912377834154757400515512553462900775401656677061002772084050026260708043598194899345076622680191701783530215029573202604251307026628676033029729848177358461787987295977036569200216518665917563894882753557266023228498030040887100862093438133381042958679635590287315314406438460686876568635820048309679626594808382493734141808734349750011334256454403916700947773453049143005424865780095122212868323705158326820871549271394979368489876105374208212954072068142552760056929037954803750565620807309470413944066057955238621186462039647945456736985746713604982917454044319844629449248976267368404809588298005420852211741639569689154803511764796708306753737458978527675504747699589187328639742107956966874819353020105842694750999013515919975417846509878690658253388198792330142805610147748213934072079151471398945519802127901397428787498625185148942153774248032286391411006622868958963848885738714689549616427824174531799742214333223248229769297467672948501906729781997427815669096469058605058316425087579458705213972569171039364289628338071100016859677901091719095387588377619143191745773198213173139358024261240819864303530035682914938792955858053991301968761109213942678854057517736512762555378037145564562062774104949717872616047522782530462440114956053966684793317561687419407976075152150326602504030856515051000264240389689138705747779212709862432879557854238937492876814277638782867288932102578796420506886068529599202190784060150600667126029944398525500375637313730281743770222891740021375304386890082923530833123656690087715290041170622813743001621041629545550907698126961759960762022515619520561858590292931267298434965245401124725828666846495589371983695112562855762607275766888502195654937456001317296868256072939210622961347193502072130288786180736178368277967330507339402993666094066171956005745719642836026506621929873619207408694507177828920417809129741579467404490495758256962020204359184477364714308020519782464924164905772021651469024588797606001629413755069375372835566939257576585403605430750991566546094855134206919889935449740720602720909767412222924882322254583077856047304427179568567835693728234647226561468513174875257766422791086012169767533078317761378440724915578468441182460268793872404192562239646499932377822425557705505651908487978991490264848431129729067615990037004338057378150587899793422247123892428321237451176183225007875537469272028151627579952071351134434753444517000105787100239919372429978383637266450269621111322646072777753294730587770559528192311844502138425443441991499228767087747723869211085766728856579804277177127112283125070387819696189078966127357301554817165661664791847709188751135093724926630360574882600183132346786635874918998846405283874587871759213671058075833536871186965859109076698773870954339570133439456008082120404138286151792336379835859266388787365405956780125240221674270123706150440910004915317156599744603287045849382540112715146125096837194827083485756913000228601711613642037161866354896235182867054651852482844398305956183904795585730771959202391456047477790163680087339165592884052216866486594296246860581128874427152862268452077342012987411845394885423715057687695353701195241666250536221130019803434332290398750628935918515277159760896523210982073717969898555230796801812187586176902786937404190927989985323408355934366565373331376894929091791888916089820818627326742240963307662487300941874632381810997480345695715681935963477679566300071433156232139822832217281106864513139761781414339844779551896353202998252303152533319416514695617291995383594965125037397921083391454725706480773928513457161436939687374747134105615789610944108255089612685263333501147800357664597648913247462020670383195426897988723997359101687188161860682010557201297480691737942578759640426111892203194366399828509296296350037756967738695912498502150004816185090592050293382974772655364002417306126892863015327987639223231835816582526899142181587593890435475245644125119430978069180019595182370490906056342691532571699329422369298899671295154393868408411455880130448131812050112895755818595961652801668138488558252134896199400836834482312549848357857519060258126148471109805024218245151864645426803781492447413536412955899953938657587679695940582033910828129711640816628462799744578857101503560255881997678666622855878023756095586936517660242976716601208537217832487367138999150978258818047572288041435060609122900964704932354483024538908319077358811631802261331981334638490613180209812883529697366771281140787294844625736974315053956612672015799166171426662902444320205585995559062557510640658176733705895451947859831019313895914394236168513811980744416626396593718417763207386759858136061070579058599262175372917396990478367275225961138592497094393134496585804674119953424687575776684379903211202747784318658082717498487120410051788714118503058218537737902317995101992253330977308844027150463493293381804289602069693543137677687308753600967622399702237767249870847360753606052967790527625500765687660654648903253775289214580251169787184833910710646692347397851558936800732810675535209143614918363382382123096990688863201848956467856659590449624950687021259368146787147317522252710006905507380224648976148074516204924036198631300995931473924547865238060379176070831009676303420535617963399553974827422673266464327399180705153422583962192000222401768942097970265656197783716626332582930316619992380234924766550045036769168350728038054093520207722280009358070406568458552666555354792551628744684934938978654706073714546131364655523025676495594275537200760621371650821141091045629210011795438425860509077073067265163366395910767415310925309606433844264383017352550084684272047099904471303892907939178107517268183796912725180841328649622316139435118073342660070015657779010351714516111264831421158904544937713581668320961049182748316259702871426309570931375084520135993982557246063290128441716221392040276939279976711735639402847708241038666617779757727802736965745793860373881811275781121871931247188496759010623203511572473079220431801725414548811087145069921672528506594589352749212595573280905769555030023371075499794062252200633039788489397446546638580883852103538096919498599805181637044089835430590810925720461553049795367253955591122495207161542207900517892740681500401563013922572258301421386531713906357472590126672691503687162212170588837983028316632467628537326546493830995841877566356842510527942151701088855704017766843173774503924632723777935816287754416690779999736539788092346608109856137927798000129424651370092931872443571879365970608871627053653595156509596287977175451266667704851766153892899080964265858165892247373608738286534598752131354045630920719137870749880762439691036464692102475806089386485457670994942265530395507109352860387061374719826372491650751477495340960222104347502325747450459944506179506759514029720458734687013716972984095288645753247331611041392467926723704148807487427258571060194392728442699720634680050166725669343833814076578260701977325780083620823258965868679112723137361214790287202103262195855962180530955228854881806347169987347797912836538353674046592875179312082972081377067598030947614745036907121307928206480977145686477586684585137487475108056091288551889159276772544948395773151582644428330554407002987695035636993047795734060820509147531048264081142446713373754118751860772306313763034967753716192893797046610429987441499253767480637331629643881175242073532318988920864675715566114452686576006178021306023776156819395480753823868580934397856001528010127050966810476700937914603385530593955281240173665897636427565034582345669502381726301315050235014548410458289664842572798263492397171549680953075425231526092661542865001570802180860859706295502976377035782917996197679682370675211344259669925426109247463898176610286474512880628030211257332228440511552512082628384343534882276462222376678681960701148488033964376794196943152196072341424557955333554600524398439226088061786715502311214104981843886836273460971686821103378095175136402235570521169827658598330943710268753637240647603757019116649487577478298369686051321732069100209383844698880295713146213845040422212042638337565255389853447621336988838312949506783237772122097211941345585594226109003566256175614879207487603159422322951947859989394885746775881850183176833839509175124118512074637984639464549801216517301562812789781173931944646498083747179765554512885760560749506096116714186364186203346380356507468364486921275342257304279613381898136553679471018475475368260806426496819114316703009033334715168382515413395545592923890982963897786200512447396125826522542395960205572552540156755644065095862784155501522977683304052809204550070732876253276886088057015626906588827592466660640373904697581936354996012399516753761196291196016713673618301642174463566646370708471338832183191614798315363722434032367955607881874130766966263673819786295107754486729318931357490301974238703300850440533787123848231893242240443981915766765004278429064082737267307416436337954066044808156002149612698107702456404500594820773177297893711738038336258124279256773201849890056414338419195491155594853060683808399109497430081305414203755236665732677078745599217422484771183863984048937173624558462106541072478737285456546718380420520070278396793301170677158318091315481778950652592810326741051634360605960493174562858018008685669901119199822678742776364853703570864629284976459118817072822788278948566172263353315973702221239090180093486172826185956930735928872764204516126298393643439150419783348331442120969941412396812505948278178522535478443525296482222223092367577743249893548455781693562839845704698826255399328733158583990067530563323265051147279467545250575992900733784774095883022828944836501143857219253237041335517183756087643800919267372948552111240771559971644260560884586028229245823249923570957098083084969534122202720925059062035160909015699488721243942665008920991728193854272635645304922330455081361874487733766263839133204813461840740777657017052090505715395703158640369877400774631874664171641897517373435668502842512076868384003207141441937374421694482540564374594668812574444199388323721462693387520892868646238356284125482827594083067596820053660781308619529504538147008523424285626396945090705461051626007998519491815733047754079492488338806493905463855849455479766430917240695120016279500374964295716326968662596024855359628280195266109472738486808144950822849704583536504522489164019209571897430954476224866037280990044692592748337162787953667955847804245167753053142212498255554119592654509977318952271615703642839836056988395063906097831704460626009692032323452805834807161867870248597886082248873574366165183080348283957736555474418011730908109905977827613767598151049338250523969078275843784315261513489436350328586481293126921825464920190191071412328539190110320667160364056798256194102475811784623957880392879204862832232043333728034662055411875442556329955504361536064215150456253491127516131393649348153055874639683321501593822084409040010223234088574394910722039597726754753540060512420493562616687147312553994747820202787051749473744656003853313257684649431558196788402198312052767813709938901883377480367917755464151195995984111615525213782528081771892033593868585161914677681482978458796156148848456935671470895497581833289131539513826806381102063301861895005347932127634374249832281955232230387918492539550313228637497695555521753247973881959765136831732049231678068520034063897769462487235007833711227781654041566019679042960394695981063958010485469977997554829682306172090729138083912363577609573181452215701191826580107626885045294766556830077755225357749268684768729218029484133421536667725979811898854942126014708456537018420518784693475080061625997975017829991186153769742018157600707462372986805751089293586753789529214394649283021404665601811408897496006200793759217052770872401112641291701229066321443891673905557482083898394517545082509239327011903540309234375378778552203375869426815656177641363732423775813248565417434346135332863080777428025086205599827316654064339524457627721912170510353057535119310430530497281017406073631789075908007658975079049931062240522900882170707792329105994343008301094251634090442371395284427204484765089715805222797349543923858612458865761008270789746936032944481118176622992186400257602000943635368348088609082983937487793365700355105509206540526520176528259280311225785501362803510679465381612702439394435155674258144171772449685682134272920421539935634387988713900844373924213687651559089866020964424482508862554051989908537107262636732601213141222635666665480242651411350521499146936304357513941216834611095722320694789495661237032808976783715699902088533225594110243999610504222280810472879647028569420601372419501284626510972834680984666803657042555683033181857552823183903920440669196602810419479452119092280605023697396396897041952301657456799489315683481237058300172459823023867552894753027406597673249076855492357038168920883061553085207327570106861365358355650083969150546639069975959890738662273864746623536257683238326539083594510501818269939113259008319870905168121304074698954209041521709270486669982777213729004919116239721054158275481494632637117668386457609807824946542159230429983948310532308869845055961524463132304344874266132172818919403181688270402352803445264147371791946217031170521922542898982084262748331317406952989708614356575350461822906424131553601562200727809115062346816475741988054118655396611145417156900320009888768006792179382203063686647894643024358987710346322837033609488726200495192041148297017814576381328215552741900775503018510735686269809888152051777894980707100486698169898438075403976771382043782304066332443656390825142776233716948653600677126605095146273454223734908402267192713352790078967527940680447703212746074605105277926294588421368032297840814526714730142405751466645833926701312154487300942215140787969024210365402509190592327353317664097665135473835371565925613709871625063825580599428305788877287019003082171844621162366050245932662813717573440878056916796755717056507117016638441619901869410304072334195142540394164533480672557039533523749686293776917965811097203632282551906565321050883519967460875967128815540435371526071140225357385222135897007374915090347676207664667871664571279521711299850634659647752799784567974752557821956941252817597746395364252422615346973580006186729152552111861996747911296826064231180764288358967761500465247129609125368776452486697290150021832350261830332419925709424857047632359173187168888141030974786441619928885913671016497128436971566782398692051675755196650614116458790303837900475853824197931272771564475098641574007551002651781768534470781389979955500181180072614253032121872874350679580263110293412605507675843808098598723295113567621476030480017763534280411944702160200499187710889503874033233522551941341654469525068756181966925654328971730751790668072003471590445242336605641121539797614076330144458779312780642487289348080247221432625120270304120765721061186363818850580304648475589081283270422479213552989348700406035478821721703544850311824070339163820160004681610905049393993470965963367909831496226247862642442197604589312100317289127387258174326480741407654532243262985607883523554681195699961242235692099376860201278421689462044091019586783516429147442690916486217870771335417839311076965326374320573281683778174102179768896865228769037667552017707906681013883987468805054999591033907151302377922001405710101932265752667368716721407107502252842813936352007664927597547190683137135248632749139166671928217975777013338000996977095190147942547040782634659766112003484718105449632917149280406729009928021809081289334177922794211640224766265158601481361873341370138049166333901911022040522299872613261500276552812352337412479024129109940965209434082702762091325925088680489163931893148435952237398377058323520327391062924677618585200913808815623878179696790441586196912762457323411122370742063059056395351101344831171861452812590175671921858008543544620998456224322701171295383915177449085063172057687393666881063816249746478240671709410950303780848043490595313344304806893330126305771395875100120502276092571361542988879689153107036915618327439165420699046922520051830155076712227906056432803462958038625429708748220593385489067506490463095015884639311343975811967781445551978692911740454391152524211354834021155107698086335601561586415348159890300808860094134068776024121117286705413157955880065688491709001500002020276324439535492884775302006609500095155794841616799535811347929661301441444696730723861076347016578710143465674985209703664648083389064504140942169608990563556415969990919823981620756187136252633050294444638071265867472319637345314496794496369102755966881839343735481244190290221127522673167004228106151336695753718729132350705482463098931353716951873438491526229924032890501075071711350437682495041227187285292179291659264587185122874692961114889993098264625737047604147603299379321977553790834368737867466290721337104617529945203359472888080507942158237327288726835237050949466141602303785216036731141042082702271758409983342279216224870842311975684674708135802479053641902961049381080605606965988192902858351693849313362868801233523598288331749390792483127850952936796461084750671381421030722175975983608029470205128987343367843367546899868402585095598546967236903045129992167255839029243898964192980230081449651244831721587553054350260326168601612002157812191530834844440717602600096510991281251304639640127582728026650982189225248742943018194402074205742823328525646237862574874596773035896469528531267434120222196306914996962796496503761757775572761576057676180034079583096725935031798077051488294878117985356835025250369916392067095567453509269645325078089641170968665092495579720556147032955525886194071901855171097341868406760184259880215830916863608605385992491039673956068564033532575755299846282002081340123277656222286119030107569927747875764820519632609950989082675715575622385075481483094183239937196812929201099577367404699859230418493161678969953476630433028044333518053581977275794613091714006260778921597337638981196542170033489760802783946618935173607735220399629243893677109010201239138555778848838660974273840969716174333552031676481756352845607137153336917215855951405551506124844299874558878346923396198738605962319164312374303656517961570183125945049328786633116940642414922498688050395515539720563714947689605241345370972769290867241696724867800295649404015801556325238817137219187232100007442223793184343734521276654245698075245889255109453736567024729942577036068497819021578962295614049980289750657707671373286559383387772386770550083743311016389469908092646789252021631039702831970203268436249693585049722493775395776802589151208941896734383852331740827653681512387797361419244320314568877780627846666539680656966910483275018307277856688288992370570672129017408345877020806289137727029508400557369889097673206904027627908403860075640481818203577858673861399409620534883464603193367304053383234729145881109456238935941633430345746613847049610055181381673260245627572620017397190794931314342803249479245808437034567691888958390918411923354579655447051725013371556128198401183463647302664733987914964320731262529009570901199903983502228789725989969951781410293912036694434593323841054201734277049340080776628873775527349155549642647212837151838248775281045159110433332495577568367572748339088266960916440893091185456764881405126573107318212423862372391932606950107180125340628914442596988546423139295178019690067957592678917716866628942947438234117770276293594832774312208123658254717995177754668591017451900478812636244530671836888342202384133880855133812561939398877632958007383516766968203020062328068148790305004610557913975137329110330326973621942054205516803809708095414145847401046016405737006798438026926475401417217561161333398318853647701087066447066888719829766991990880137636928253848160011626987609177120189529194766372476576408197516339302175690606149784634320091629908275908857106694926063305242505342376465428292010894736823895798055495954661544621691519840691232209194688683632444527910792342549597871643999220334379965762590036409266952600280000667590550936287451265103135790821606402965232700051769322804672027101596344466125509846586239430755059555579829494347789556670790089963812469549829598089648303522642075357784052456127770996954003562777407853595367275360498657977173988526980375445290139533995302149586517014578244187110592772874872338747165682955903908820994066457062260081378411874809677238759442962956287960476635907080528097105492208983366690336972498319028947041562722496238888725698126315789219471133056788667640864270626589988483629754920606820832808958501144530006451718330762536747516305570023365405789892179221739878426342052994979330223661245223153705059522639083631389338300588077908972417983149018700478043731157879449084377799472754409251535644103702329070555913374628906351027790746535392923133958674968354002322414665964546892603779773736729254097649662201369162580150706369619673876159835482917335928449160830880720002258589410302648505065264869090329800430142208756903912084326080182166332565985421679528029102799095755636073967481789861130464135789521347934109768435842661100469295344795123601088346234272386768007164792550746491410940037544014034978001144572988442112310079034176147246890216527678531307631871021556385455877819167020486012287084713513972664653505984014915597319121801431431002327139242742013446120959689212386197529286066812316748792862130507030326274101036309814312149461323253672272626930184546223009309532743633066502584741135772231706853408233202010022811992782839819534746776016354130055792757781127329121601390179803512571211530272192285204523894278758198767067908069662740697975531995091640211406045072226763615337335907775644538607548896448649045059706694055644922782658879550707568380044414657995858087685271789881487369573309569668636174416731065718143104318124337320499129259833948919808318562997511643982229722297231094216582117367002429691724358333756469726908189461359592946116455010037043832883543103063095062220973000165008129193351698690197599989232563010780808637569408283705303431519820284451415401445014756660576838289522621805704289358273265901340476826783093971925189732165902710971904852177157227154651744128346636844750919727932098217002396441559841957087088357506561448999626140251689747951177379349010488242652601071400314176839364957541359642007242268468223331962382332330331912554057892756376010811971180086545316757540102740760469762756074459037601806321421012947698548695687122588391710977252042690620364128199211994504631309041669922122258306693040891921548209539816423786434912533635816639382651817201740621062268220815764957197701213935612593858704754328224759253588431819581846241938285190733152220704145869193607955467253427116055120351849353735465017812567558454622990927850769139866605244828815735642487623561464242277781143206486607561747107533365139824129680554447554403451544162398152040597339426690371406523875540590143435532827064859572219623680477745992172232143447527959604576769339218041227723387865733664848025239310290116674054785454027292687934398976839737448037985712394772040524338280243955977127712919807106114042801198900589231935615770118809827537275549773017539186931542483974497685891135436761511846841696025407740195639032126267972959599473554373315598814463186783419025929011957151165962258798050076381529877977167426198415033437802327510583204742664557763335072117767308753603839696726696032835511280838930932727975297371612229078332314630008840470940002817547760862642877108057203747989230293096473126619048369858181103580188191814273215004161579272536086574515144117795827691568935640168834829470246907870881631172253510250092634773823127236334005384034959406019205461001906605061381339853910181540825903822868015923236133799864013931734655166570494876601291754341068398860244594624161392304451033573348515596978037927377374184503889573613025951058652884706299437508219684722406678485813838003539916804138949548217777071963282677727438451566740061920470459914948974486647690394833659014612391813183112561629381397424304367500215634480747840088609262438220013529618733386923109650943290603627969042592384022140001158406387271320319063853441323271771708319717563976277410123619414296857020289194931612750041627623459300622299766283541049992224520869377710610115059784216289301217466840185247503840823246001727741544816514772809371747010612086383927651499292591005703660823926775731162863604939682414144683801953881738405010635393213058539789846433923219700533276089180619245575267981478195187748379239963425560404086969593413855932463376927347541114368661697347897921232331418323401376174629484896074725137938082136309137248213178635594104992665710035543635837691671845563905423661708124078787397602017688069532588156044228749018816657762112148087567202544798938684103441972792085687032050283629598783190413374122651371706787501747993244653623814046584194969771353682853340167494089221373136299635587874110308228708776242175790600972350288306082257195879783866974664688175619619487249679232335017741210907880810561138298154871459699901615370626371967610574276602136407621969312612619207366620474353387333418760792139837818419973215687961389019967961107424666780671492139108373738222184574136225813578447171967922077010772359764540741458358940917245446190054499954451440746575423426556647935711438548426030262091064809490823155273208937500758745562612431764942456725616787865039698246874804105403131864801148045488783231038869003738060594099433914926623288615540275842290566538502930267961715700191370246423660466723721754053704290877743921466011542572148010142341143638826943839708764227746798858776492587373095902926478281786747949775930164353636088594179840339263900852970422690333383837612920920641307217399953443744178723557277976886519537000191422729500170845065407700248110500434539859943423224765535254978709535259678929538903945974764025337760188238115005722833076324529831724481050926371498838614745256561184994488156993021139095659928738548654205553484367594562340379713992314072900831060597927947914850711715748134703966999640293099200044097547665725756277210764451929772766546529538539825761716172660110838284835034977964484483545674846848831030086048217026889036539551757254990049173741624664895674463977370320104260724886636271130956615371011484995839962191486351388099427080349195731094135544470139135785857138155276442096514641368191559714395539955354159766136339451724108905226249130395793753813097898158501270697544154028968490296150620561231718362497887315223602477914569657728025199969339929401118723363582227712029200891482310849388523489329251554060192020988468567912122948453333074742925721959528591106883601051035769433198824629430807079541921467467867777821940795751988571855385237117372477176064531429343534411022383343992951514181394265257324410329706618337981998831411913250784929662312474668515978887852053315755195725295660722845153335576829734852711248105955475396666016675139586615093952122565555662665842895827579771038037065663442505541383361709743702356676929479659210263103597517667487317123324965183272343412180188986158537150302116578815873212507395506918088169594537312050728529310587692260777228011013851575892729452911337355836829977832099144612172178202255358909194138853360752702612617603332130134364375681833689902615603154820273224366644665390259973674158191212060339906945448570618485946374449887245346198907411768159160916432486969224827505785265456874227980988475888632489320080031931261794536829528236526320750667139192960927418840402193057958856104571619123396819606394234438227075451358496992159964689263443945722853237200298981906013016892487278871319735556646771136305641695864580815409135067475252424486228233069916850963874811103007453565111415799004237894991880361048857203749517751730924245167288358607991164834357598073719662495618048051720269534738801439699003056040751796797651219823615577248948867054544740862575390201874323171895279182684735141162193591355228255824893503195308748564432857267534629906430447959743280434627933823592618915962719220089412978699978718964153070714418734861418283684808628383541186763380664527348782171214310259342932837891055977404668662956972562673470902599760694275229391484206653724742024546836963994010904553150948907562561280925369801541363089266396028118946078451298577505430163606055737577546216503772531403625885788315404438254370830681739046601218022652929928360442417266976790722508308736903635994379557331717097599128464812004057547720881485324424855526496460305133745718875214421784758614982019664332827309631724273716009505968155785605925048155425228441403319797561047090983888105470684884715247962158106063651605004551683169275373917761461345703651719421448236612571646397163636280789495666837087757091192984532886283870031371501793639653041051032991674805903897978085154642951986138637029159284787777787394983328428254856917694313628741454061791294336235828742896028951504314548494250451185593748669739942472125450259889979852653610751803050755974959112868015229315630241613410230838691397971267459721684002673769323630648351755254605634162622068450636507381896196301304652626928399675833603306425971785697199329233013675219898342583093926684496375930870786993743888245336776666995001295644915868270963601688454070015399151297894704982311456480241010848821751765062469213366362342474298135019727355602941428958548971970024860412858681947444206996673916797463511966101946631808377261371142895641714046425572568770688862655125442920580134635008544030261347487459278140531639178657085866277975305908195097169537494974045551882744005737630292494355697785095517434943306570279653750497211525256911315635230575181142029920749552492797470888257116939075454220465713633850957576496152644706225227681443102109732769050050255985617712465182692541334243897769233684486306927789514504599381319857649572795921097130185020192393815976894100536946731973948418647136619857568640737184138259424866864730989343524097758770071891913459830636431460872250472186553076563756636321479251843703756380149566616284548908484898769734498963997101159396190765491411733924114486799007375610238574312237438340711845938990768844554783105422478607374513861135514944579392094538053924598730941545159113468108131675548549102490587171555992116768740167494713575369700184708798965922202100769254226012455980230137226305450313914777139331007496535637613610467672360103097910319249790648909336795695960386989407273254462549422108224068420108746567849728201040858445287946700507292199563728685882090871334937246991249009305474282590297637540212497127894031160775002103363701070589367019944639228062035180891648465887952501051613746249136147310380402689642227521125191895812652569463791490291439087760402373023854551403307125816511617198387585330827540677003777954131211789604598911095670722910295263529952376231584377834831509843841224984933677294134817234992867441060570765130705502157756261188676978425819140285096077471552171078339418920313483869451470571548334632625102713661355360522543377025359427046040599806599119657279658741198993353284442388587167428305443549974216742714562324607225916874757323365693955147031591627179975960320731632852370811946984310278301820766896010980530203395822030106666305205438736857035212329252806162773015658927688344951127566549908892819219794820148846657215898878011519165401593769383587795699217687323971050969733406983680794674325473039836030424582272911507894880620310830477243874788688383416351372514987455049308549857824425966709537441268311679156093250156136114556245579539562419107154786846500200104910935990330862661267912879198264653269677779824444616094004676587573836828190461675975274112444613854631015197526385321322875690254189897395242588260112096298070741555504078861080961743139944133307409822980771510013877802279738505224552835987761633962113022797415517183261221505940678763189193468699343106562640702587545418005384201456795199223279909324471117727510666615741561166849623775446573530922858191700840940114146673233750166591231366593405920005970869477833207422361590894859541921226146500242366478068812706175707242422127844566968315538498990435098062058731928241977501381801810972488512645220144604644706176501230864171362678790779654358269123404858005699737331772417152038078560882709126485817887649650742352975723514695950473814893633829025401874649393935915746662518841385526907384716348149927348011444088949362570389725436425839921621324616790430281878948163686906253169398609979060028875936462718873285221221976727078272481743161493331729610884270859052599758914481565592932307537492042931914256085526028011768714110271476589625229681252987171585037336648149821582776917432718745294656702157654564819691131263653510793285213307973626336450669427382891450867596957095194698471457403970881528715392126928103537584985161507845634664712712005598436617399717451149191868416420451515457086591260036910674243307374302749706984306119581907821147830707138185332440797275231892546393884999740971281907726115540618925675544672337733417984773814115880451740654864902537052719012171402589454304827208788465727579290552177991034843002977796223861142708136093110134635743680589502002090988032593481448791961961550361509723427795275873004070791447762363800515477965937113204743833313816881683360816614402960317802495820490060694036316207584143415396523326587713250101994174452507514375914631457058788456062091087117729104568049418810130415836382489667862195989036509601284514550590018388328337687609108653542658386052616744124971367720398154321457066298461149617209401630429321983751082820216146353828822318795746882458647832022197903289241507183038500245821860896723119755926886043600939913536225747734359508840772192382143121050248321263173721395140320915104446168543145267185789790876856881756297396621419345637656474498196970024935488543404232685452025951252942423542968795052639576573270634113417751308790763242708895892792536691244830907400681032314398535371810126579358538055566454587196078809792806683463471603794141679913319866169824373150547234949339089310379393193506803701306527529192250996638236768768382354957587801871832225270245862382380343694658255032903465022891129178935359820481380669726206003589618416481332721636567470476360345251877093517719881341140151485879279040815826947318442773430203918657249625571419758393501195098629591778746867624465845822989035439676114211621282555124325590377532281565991933047528881564368635563074276728656486959639190606479414399604783597928921374603032066047952489523123128502374442891691539163595014269850551417963458429864770261424537416697225568274124727535764690216799810950300642910815325643912583568882196262850892609010987296010175795668993730886339935460504856807346146982604281577473129801399244651987315254010424297636393671977311775435420967816800174873623199008287120601651536710088969142275604743327766631509750171422999660762557566709547147746928484777879672347173211633407428772701901942304362330187346392159035172154154785541701061950423958139576229755453340579748879761977826859269289582673301505297335785396884998961788374784490573453839741087150077036932018130685358474752121979628743346916636634617185992398652854482626363827476824459248432596487276365601256058264005654826508496001198768410801691128682447986938024635691409531338922174070519264715476071813672724656055450306813613221692259144451795405075673898297435047930429520229596436346850638807027242408215050764317342446905853336674309468721112974962575990173304924447767671399302091846747916680622463346167433772074697074636855618137021199694948109763728255799039516956726884579075183795904440684890589448518503566371487076913383944261396880370512596799311056714993019784530222171043841655114519016519141849206752706112319369270871403117019940230613377029414748147910072518147609487497706159511215290847336601104230111831064604094022768505178715751608015069327177530762495402892179520420301195395328822324341965665675760525368263428756566767605346500602560272256582468209756627181997982544147636429181644107221072231620894518741807907794813318352889656356244193915046640440740119413130992285265803375915614413797454349250849778111343636345397160449180816921386932231852461241796652891685344190203582518097149943268742853495414761286408328444755620458643438017669832356594227412929104070063534947041094380717267932396924970835819642464711437731511787564256442719516576406471501695977225666833484199600144913631074418912670501854255819210342749795695968865753482983850066919462714627449592044597566001328548634326574742676365899317074132932328240170856392493520572514617508367304656209959905062614302396902677832912789834957796299612461098276525860878285556360476003768927424930456863903200610804279077422841610041678485724154730399961250831379871609439290570319295520218412782447319442532769822796992994470731445944171751765292342808428740965799760775011189555956777730913985293825669909929422276808558718598150962186883752539007951988944071693731232191924580091771076654074010340388603852945053790946329032503367096672325626476775917581399715935523151760274605331583843244355957016962571062907800065777678878946162969214779711780699261281280323474896682684093767597295997516351464084996034738618677557955201900864340224015380613591590850207035582875560608281495071317976293726994550472255043605044139256344210297596409948471842362044996309581936666780993353913707847187150130987983584591950812376600326937754589847778515451948467578336705399841789277661948571081089938519126444776186593794989941298855028925260358203587888154286576739044436744204494827737433720673134657115780839197506012906585074307522508472657990486400922324344795278192763652063788225166350301519617040986971413900677136051225133041467796252255102440474129578879334882082349472010574462735400697881261396499311385584906600229071157712744051859405927016765664021229790620424455204127209033972970965794975080246459351593198016909605901576172728292564793737879891963784989139720234547029275281219932701851364212449967859585260735116468707809790699944472859245038701488590883067478595981570867560385566304970665224378845554208482067527462534922367926774190557652308392549471614552095810890934639651981249780994681550686451582037194468564884623047879560936314820161427326555668590635892356170982049588365166852354800487020062846694533969959681887988562915341897212413958980575623691949467921972785728094750732398101767270403742042696439195939724136267479876005057255067128850054359066787771850803885129005033949652001105805569479169999897572131389060059371074091310121561709040854602064976918961326052216690594673605703895683574416259703397562001997132825703038440654861779248957717392676467909112901167913848448125463873406677526150267934934292654662659102285092198069648962940421400443096064410525642911874294961408211679874553657036118808478949197032258870874079098790474121159206615621019088556986564553764295693576390640318570809235179539409613371199590665478378897168934873408552410324455559713538580705996563753478314030252526807715194608899819218391295274293567021082998118246199603625412918536535931223269671960123364750819533719669911142402292298384498808151918225866729973074338987899931169452449424967854369858665033917494650120033207143358944808646869734745818125750910195080848507077599536370880509777503335844859054389445554689870039399691993539555683441112927101484208209592732139149183038034524774865897111461030130966635429754250742024164534117437879777604622215274888285208258832528319542391344209840150468375279282425532921708929208312495495108268791896458652289304486034843365596009571723525861056538003276427669945552503854840765335392716817773390881157251178546687954796003339984985212827814500673131551808083917801986437828786444009896640238727987361393664424991647864687844653344211693531740665007717738912898827838432827829723920128538649912800169207425255308615240855721017017357112873753349089828794728852930720457516757695755133284555817269663163458577295144168321330166473668171320468206000654114484539257715293928652557410331020669036455837222684547133852061236388817575519257785761474126425670447145874761662611479545052950739561947587344780075653731546674587980405006264046861117247047286841564978693571802957080227328280071240425934904017785123439458207161864423657776654757616939292032653319737532212733334188887871016594627744098293058254496011526853158451272594730836135499786090238446956850240991490705404518885404212080523032788069096965257143806688744529891122508749958668425440224617291619548188052393827474707840480641915442269925674162668905705896361733518978294509300011575256985731825254823540258971449231001532500514456298852710695537415972619871460449583113814851134360686493101765198862522114999713827218887331291072621445152246446188611758585079299693971008827567086293464751607129949184946162901002037332258004056065163548307540959947317661432192528731374451381206863558852802669856274623817807789308870828590855874334486545940783511262247868525822119968427768361033123248623238463365334102338710831007771637300831902668147741364546597846457411158485861165295978148422126163382472613006807164446984357756379794740609947443291192521539676378554632439929952116134708058896246843232168061506960603123673974206562742603080264091264239084876388698724829561530920557139002463275379147709301278278974747273477446361385333474851296109534458260009092684676530662341645768374029276998326638729992686383205286219659386487442684944609029825966268415001302023658788401525279731823701958753809239367578017875137652720235839129317796853526570109414019795333353795893379120551019950304539806262168875074361024722769829215443651896563338706188086510452340743461035256644215646891912595389641119296761131185250613153905700404149182866801567075550477439894423178139947955168256983303993234373056237017276024946063085146265780737547637049756025957819220936312655108898740430860508696565112744590302331385653537623720794522992063763924610090452956991670424335156445423445516417523206046568819844744323324813909411985985086381208161096067269034102595157383940477928003056663377092048295661549775998553685746722468841924517342260837454255188235430465366410423456111381829820449473864129151120058763446219088271943825901411388321491496893529434008591959496171218360858544013711358883027198107940435694570580498672581420179795791928268967265714630370743464615402836431094647188298302014383614713177606688324465107387335331439856489091556765403106011773478375098617110335322539129128187815180346007208440576008356810110452362512634677782906043272217537105613495486916893888332551088701933662908348901585061942622884315181641922976717498663634822239286769332695043910603635986222649512825956220278857005237453123310776074888401592781129048202131193700176013065633389799512051575932186103047451437487849917222916932192858207114168534123120405761556009641291256701555853295397326972583629614815026838855810012291431618594216418892167996412840766344008780064831313513727880362565792578912113524272688141077774514519912751003075722611364894643353687513007941093675776168704428207484461060464198826721660601161577274577268857564164759153773287627861796027869555264732679738183420250509142285825958718896603579147910634988780438468468110677482410035459609960186817934776996220121752486847320809070623482777945350911577607698049957760511762859984501082818501041187046705211771852550661451763608267053076532647102221568115705531533594783762359596382719475998968207872637524098943326223203229714805752227508845715261521753039036341700482468442048070175356773673248957966054627520741572149980403711961761592211664657601300965059323003187720611160191246726575522606518212303214584583487836089476309398099605647568514425624121396379628312069657202077375783740789396686676594671149715948060157295655580199092544941087134346798462352680548176065644153134722886922506811873296581427521746594952762799467519222277188366722046326193097621519290592642141575332768518608484030805446966909618976518774997448555308540152872923635252690676486344603474093143363629493754029383154832946471248209033147491183203558056563974619270131463584482232378916839621950677113399977560493399815569263857276054016537799149632598327585691233593809296655292263807563306920011945661370733334223222800316438878103480476479635400489757762260567884401742518317739347629778634472390665992694944355616013394618636378030811525153971539866122289626495751213014727922892535281567220962209120228851859020854506771854012816150786565022219673028127165616160767417903684220632612284542798374920951001596897618518288433699868598416073397720157491458029454077789422648603700252152764057260123426755457041641650998432354296704322842380161119156944870015029667478336152208483911781336790719677915290863868408038529520006467252887101285579691404125751070452610804636315060558976735285899729460733068967521305115092107456482828608153815778675546177675375707501780572094058253094140606123262154138784704254155463071318017887486114318749649281200527811238471031685198743828692411894313901133797150220460625676242865845682979532388185564144145819963090312308719912463991061364184522694877679548343028109017262505415327056589733194301939287287069134808792888200887171411470361017287387145709508036720886679843685482043071462167706492258161635506713245126920957135972264097110686488811146783145675044283814983527214402032246596444448347603782283665718076206048385111778323130409339054925746530565339471554599146136621151940211924453297982730614323944136319924243061462116331506792833371559781865286547188851264524216523053946977667674856651565081108761198550049857147806091032713848445322323534416867549716715864550928002964834312007367012889417525045214012347581423567497660527201657503913632365541762699580813291489596208654830202083009305548832501656297909280223447859941866087385824585881152643824244360129300111405244768741338405171409175517599090873489662228279499267288422938467379621856644413295800842811542881677113660608886684655295942567908719041687902822261204032553440691072777791257795273190561222951048049241029084836625206654618466611826695757508756766623355956451705869892501915145455662322381278785279724948179604841686378982309115003302493407296440019627319233215797444838536211590775896986384703077762304886990683102693401785264914905217176568692723010273090245662269268983895045959540468632728073490590082750212621067622367890904160276451960101827882562736809768671172345030519763056423053543356639142562748866415668071443330092168550157791620136933144285694389952736258826185276042553844840686596095288337794597009387042131034803488976708468463010808834605584944758254415784531621804746143400682330997755538287896275331950418575107846070392845800428312108322672827157251611133431943046084784710487904056587441131215659835527747706268737893340063661911288176908313413906121395000574700037330865897700412145385668021569181950147849901327057113075263348468861397753310962537678927837630224159804965260995457126485427282310239790711443998528334264927147870586139291691421445578851400516934106558713765174668614001065276281956627427759670813224754296899614524770148324264668481455711289330295562408571730011139020775329210317244320131135979690588087238792380010796537372908578748855899732367227043683408021441913843258262790658805471445691151201382150552625021984760298173299032908827492958802746864658886623071793411535037487082903755665338640970657449962001869787539771872212157024665225795704821556252397801462202187149565691155959025635084487325167274747425168736071665486638180804383105513087520467257698239680402408772069573138527458305427274109958921051827526791477358285399973681900031006271251451596168399296084146829136499992133041373493098537092535506014852332757025609955260575277806222665952837166485978646445531916377903816050436798833865205723858988604613216571505984718542458948232283579371769654642984663543039042528978041039816038097105617670840071273304084513328963516869504972376608263475462219308033767483806679483295191725142897630601078258313987385184807212249302421505494791078562186803543718951652040351641714044025930045497657513105245209048774808161156478655607891358743731440291819374375757261634552409739777082028817181791555031507135734215875343071647591920688082569697878207736141387944084989629245245634183550013528171366465036274548757597453856190635740299393522542440166488953076785210867500452446473307385261264410964903258572833868545716639537922790398477570030670700183781706327286936739891681483552734148163316666762022596386488245843137796913877536532440828198871345987667232620934516343090444225457265128699166113271561618076263691964197892827622424399928232930538481073119960957658774423621091142827257811448619886181102998248931265607764028389494385163852872555007896558806658413809630629543531602551917288872720452999759079511327520087735851839391809198945481874811473916633989335992782821221592917968992959644865096606843072601926519880681908807712212503705373429306994212657972934970410271671372712743536729929917503644336861445643091407842222487267648254333892792931049152973587600227580658037621348297368872924468372509777911074657265054325243474585608316551755330354702867531291858568450807390240359468403732818287409864873369509282345310365730231468994670771347174778377973157458925730438726403869588862718529816115099257291484309174647618774506746366772474821812133068110020940136546199939049095662510573530314706330411436933011897420438511461413644968487082843677189428212404090752591056987985758039310120448856195904212034800950043238493296202780191174334748171035405569355327077055547347121143943723279476517491756017730846975173665945219305953951697718172423185238216770461104884959120116990201105576590330799150053219083736494782023868513659595284538314781891556427419560176407438512560808738657839269447911163327271124411647768230255975783658357843610147869246577144367690471989837575716169276588497608654351705553170862967719171743756728793857110075235374494799000924158284482461764986985584733684473728821239423299835026687118115140016842393310656698189837995704130892305358577426481448115896329291350277952169730833691158774166412869356714928824349943760020132081979888034931678181542083700098096119049373425274286411235819218982491325334910143753937891485247021134982326392351639542296877354659640245892268315474363781087749952335541254996702529448530486407205906856229086930268899260512892542235048064584069027025035437647287772294340494753279635433889280367735873184231352989622664720978069960590410304672082864869350485091206828818155053411093498274934287984499695570449365669744895312894927381255189318571978315797579106050333175546700100612017524686860661318139347645728765174271091290611293112703144492953288487851773248486689147965653908449123457392438728554415715469676908668710773612901932239960748064383597762705222335818222640052385867275833628869429442255941699467762378646893583502889009116677564427023559968037396740071941327961792669875846619617156777826413812292770015186560571446831097310085628647444086572177891624436086046204141118612878780447908514446036332038268160806062917348306345080257386047156645175030326693186020949792535421191005945968746475565782598558674444746656220853318453101528641530335229158664549427080642521240761206497342591720466870348373286201624111403612639645518518331953295558530321922976251012841138077569191989595815999374348806208324412293572761430945993970211062596241328316185188696351022507615995913395073521296840716596332823169697827105914184274573272928284780784513828541457978185354902826633927420591840811395663752724959070448096998010902932875019590431110432110294017383643861163857494790120092923979189739272873272236469964938334814370035094339140802187945967637179221762010504800237409365334877982366064433414662272445007692428062599016796883603713604709606563067764084722376523920228977240007315691376955227264524167351807444756038901904282103312919811287013846302836564561165211792887865015161779134661489020108202477609741776042946706452771767289592191597149101101595938470894901642496102467392898354528621797144078582775782554693032086912987336590792935628790823538009471512072193743433379461398990390918268327374686575184759390792125488680121326659762775861630266627110155039193761158924000584231854266336025440881898271229151081541164363538464027799281900209346016824112190886936664649805567530839286938579936986068506261292780184695045615385951974639618316072301125811563053209867341239555866430762514107930210382994952193076433322325332070054919235696573058675238864523452177338991182444461704317178183255100675731771312329716201157776057963096952500604550274654305349906391154208168749948422979451916011056543421918243127117372041243373303415833961121429062397912735937602138258628525904630614421689934174507959705204591104290663570730684032268793961793020551131871659078807118539028558481555966937641206011396815566399896420618579139366937367082983605776090843949149514591659337113663364844516441674913554950009384395621881927199049727495310450024721829801935651322397510056518667448794519936592193606766541309202366945593840150267826289191842484517919609452193366280676004464777568525279654835993710502520998317791091580847026369928744799313503878735777206909550923656487157994632125308409773793146690349611040601491798884562778051725104459394081750728527546958214939018803596989497937875211119923125366758414403168615456629614739936716250350364126679521133359635722676126540526459028919811267063315495871939098105568475727377271343278830870320010791572659677137146642005745376548519358785420407839194412189299309859847900978527396293671193218588470913525799923194132908594723490042053719038410095027786238331298677001712075475728098961174374693837477866648045570100305668439691625430356788276762393409964445210370630568558815853233743508938153301548673710992058494646902680455517732752638464163619205225008486731765432295489718013276349538406599931120469371595559129833274274696125995276610656407337138075907797638095029161974427301426223143759059085060937278663907281126987297047767283425427582705910160172993109946484021011066090298140683569627536262928324472858657406989653699904521642034453860842396546130388146436047409237017468175037028422651910427126059107163960086819003980465805598543729753866844555452791034805961240411869519669822595147455228974492869232477084331103099973080598990274686139785326053850506944470250260830511001479630301664400322225063420926487861038425955021802191373462875221890299652996085620259211728713998076379847097472079032535109709563782090652871747917012209901662302695248014726646368033162440607186775861431432298337421268134200176257597470704465885186489539882645499417779666444245930729458199391258511046181771603654362271740202326579842200136067583179256114802289076243933100022150105303814541115646357268068909476292224089824266610991247034342393959129689034166773066286169420967066109059595564411602802026488361173056054793731261206761814935069491024347312042828352732356375659454354562559033168334653150232339360333354366468557726671734948482525705595487522554116526228768164979147365847716794800035727694487762941206027897948957922181405394812619706716136554498299633144049292338083275726487417509363239976357598394469042846868311617573818535463730876192867854771011220840863535127073799544687062194592089316633649107574521675326981547401972062571220281459113737141066354413539051233514806816254838349107398940803943671614011656883645534584276033004969034557820072048482024729208853587822266130926074530264396436072304408596194824194592817583099224627805169681336299177140745224377136509703677639166328544006627728600400679907997125517365206127396921884748533532476761966810861811707662156270851100882174717407528948625502345236498297547335385686928811587345535748011948448780947313594233574898087706400145392619031012579708521157365674828667960572482043783670727993954970228390400384189315560880884581008256032705101250832639449122792524487395070433126747650171317859390637548670679585295194719882764911936024454610686296986300910900616566440083600456605343618667331421780036440399756595912354471316454177329872895670523001205986648131613604493762972801509750280659777627976594020033616606791014707408572206468194038331610752367473238486085718824390989271392444560774286803248480431807573582450916212780185705024486582387551745315971161327621808662738450841173659873176281950414991859621121886739430467859134858417746811013884699287108194044586299190288430066969318658345732730538363589539500724261418386372127176512099858612206304196967794775773278405038648225276136212052824056086438424563257605837852145547438311978053463293010553267566397810271894481336645554678943907496668837452822579986724807157929184154878188780324757986968051649515147034820774591797890913734330607506999635225359164543066580803336306005328273688892487061249647310906957422298566117447539700907508139617031823543978519309383679849738247055511783708111900309994176881825354882644504794802032289583096753695395633333289404817230367373924665428071715960518506895935752459823492413871526767068821102898348963777145424832515712163381551236827918412895259999813854703667425937357480419502654190135510059686688346201936729394240605363694321234512768674443042338071501028107467425373329975529735139483039221298768342581797987512998035988408281023380045002514904095802426048822416172817067644557981516522283207277271972162815953606625535336549830018289563536856081292627593576059590558086841863310152002632694220296989561445013110758094668075492716356069113691807354528715410724715720928004870837662058536756760058930498834609479055992931474017208985529683543634536580569826422546891868371691182166291165911147266267260430092781617520691599260890370528050155898464096532781232688972883147219904953789182535529295250849815372115917316352935590642866626023209804239059568046083607730648438769194823668993269008019748144214213118945133798040128616567275151851226803042829549463840081674053420177152152423513996120046601264328971630086333276707324455533943269033435409739092394771024491109711717711041713883203454716219803738652375645169557397948566156628680022337032882872343908862894820982942314905480960922223782775185176988574412735262117326729893498849339887957807324595912509625953992131456376767907179483247405852903483555207475408100086380295918080635347260265788157329184919285537383689193754315321417590641298239744196822518644550139427843029975355607732517939086780561567466618923718267240461080743208225059361075693153048474543316837289398552947508663058823316890418625122015750074549756976579245603672350791719640884348375071364876976658271284153160242314259341131204943342695867276385402488056063812714330673274011895642175043227864029605199690579960052071928521366767287526492797722539930473220462966103430218800426845030073898056176147278938653670313685266779621197150763048979944838476462303445113327654070396362622089257650010483747279070528840194341902807293588784392835668170363062645150887631398247561571163484058910185843404897297445813337457612850730950775210922881244733588230193075720806852039415488518403497698350995881417226631266078300877832811351219912932667210517550881289187933141758730929872675626444821894225376030643927791842327840527311159166838476231663093944827015998572368955926907911571572840394041332797629999697088926393936015531309506454271461762593144524349733816936894058727412698544726849136666431925076345258972634644209265232713429041008815126425216867116370628857943456118852624845758488946222316350426812386564282497781600706094701753105228677242197655185748246566048280359492815416529216483514671908816404673044269086311593381974022171998677605217039522977399327070278010130970761188060385600441845430828857534834863645082952907086670472118835263964662232873494996462583784111529630594344898336289130014875976752269043632491681520977445422048940269648088516871746980419253043959330602080672663065314004459826700957478594634643085281085000189067055226320955199581780428580743220596220456754912170565797504199270800951584789392080265604621913956786750419087213591764602752323485278925184625146577059904657092126062960315326443299720565019770679132802629359073596222265187392852145454995019126841925909083725648067893764339273314427881117764587822911882950642806223490171455903493714669971767264443636487352048554673207080907486689292953423412268230774568925796476631570265841398374437849222537443741853292964715493007596911097943207552861976880335854903483682028955714147792880881453722258134218560003368304271701353761524143131216280538128291575559185640764167715960260443013585543015713141063029019411511231112709753724866257805349262274132389590805324069879053518896543957267596629330770258419518115737893311043149636860892444371314691008039436024385206660900787265774733782891925442124443010952656645928632920740627643961556563697401711918105776505003921521446185800910981297383165664382147678737867775908827497696589806944572927790705159287777046843097187469664666405205529469299413650552584542211742232673822669467157739178172163802365274626187838367223691820049394668530690213705321093362690839279085903950091883927688924210385106892184355988096487924218192760145880540516064579281534339217651522079681849396620476440084937220697928192080438411008157458530547609390317577273852924412909008967715855554861264972309574705998845761553317186629873471110345822401473472893389992959281817233712336786001748784040658143615260074296787002552251419151993590033721957018731718279757007606981919025539731127802862689063126732398665531648584794387014444041696168719394788303896930162649110687985709857171998190404505896210691139591334595343210383281238089074736098017539186726758599069627325508412403971884630574000254762834338798905660490194759931590113265145021488222413426466599044963803321976029753845369368551593486523776254061955498849751982447565721169941691973228380332267209586434887251301554510952911901032798508310293564352870149978262848099909914744372840910960106136676451707517137912923866402351345277983568970895729182688092618677374390537108728871698888004729104735214626383204510193878309062854892595924742920854926150823338000571802372067571572109131717463254395831815328632981541749638541909334579159422704387791168404382286694415389080958779566638421652103175012564501387453338597193734583681079920338513194437173604341829147826831603034118283313024158085491792334594584642215189384735601449615254976471980506457768330700251057797624195647805732066564822250876791201716625476282013672712691264465970146038513673308198423766249881842812683677708703228576525512295801322090034495993499521323435361277617554657182068891502626997134059002266880839403437246529123491949889533716478059127791317210322512076686553048244169535202899155681104855912895394613356632064789391184674469098959303126732193485175981900238589665610208327697114718379389835249595954404207598611187932542485815431539494657000244281487274912809083077672213343426447281086602823450309606662563434765355333949514951832516979919990459148806695000333421346383566983667677964215730068433551599748166382060757137185428494299640203400020368642301054593839343439310166970270256827047344076521162588492528653501402002338294797379463548014519739842836013579502355823620657256647114899542498523149166904020166557027639618324694403896989036698455320057949890770483463327765729436952697996904153059733374293283593496853559998931596051467184246301666529693877605026168662018169265635392927910842161283042922013962598693936192351022338711090673347374260570918869000442365665747562190424955034451343351625972692568460686992262279447900449990335581505747400496672457292591608120669708392737025001884057209794820263423948651916541044173471519983124026525940221975164778520333530302306888745488571950296697850247361871281517760957857651903632777394506464802081545729182702025457279561117753982535223535867946800821787786356772767847685902049534120768578840281988205867515910575790001175604142156466657009009052325858794522067947913864944343751907838183276358765264319755143501882335427547559430345287357493362676208522474587317838121219894877566366034194855596494234229387664613388115829097792386893033709538820886475639256573907178366280727131387356476255231093681695098833401999255290108353511231192790969798979911749277045464379431423620773025142655535154461324187790539598576199195411613174605044133786136752053029001969401470961504090672545580678231348005597289840630795609039476154693199843886307571865014152713447195312120905660406455739609038714446384322312880688512461479045369856834147675393405985893679797047964142681760073106819684023490934719126259544489835980093656778841680834410189571039679743029536324329250454788251572377632078699603348134965542855549069091908035458330890129282638628441989139915009614228949963305315285753050693719574573344900924229249943317011849253849518791882290101118491318687737000477287051805163514355187061973702844073732073135669031762331479714612317305633620260247532096223192146946965800090997715401601509332159223702694110621393039625649589333226837150525564730772309912662421441284721092869121717832087324586660937728885691766577941080540569553482023130389694684205366278233554919188510429703128515048781972084604863614854209490125280756523996465756128233322329768946617998173790784563168560077339614632984524113721726364653352164883063659925297308950783377744260095873340081931131369629783433703800260059017921392012706759835938183735220424108622273970569642097931945448928833828330780302782788920512694823484047490458138319795551140095859946043638426737731883918695193712888084807927584650510408374830877301897013478446238700726467190826704548257270860791578525652478492901679191552063272485656636505282189356896797225105796225843258965418619104362365255043701286376082280642204185745868593021725498276557367655816244640267076877085003304460440877417718483116450137710078274241761607343990527290018838807261022705181881307042116400668888463299302934505455063569236203218247752259765619650558892898736423437391697349435537823385502657262859592397125757229438521514159669285730085066946408388009899472841355023575147455075117458453745965619666846627019691775171285553754923224721583167945023096217166482381988750242995350824485658268472869365510283825773331314708728817199570710920953464242396357261013110503910293732330374172216241537625456353234512038501867399247753826893536344593884143439657770825907185732877285654465215717598891350362489239583293600457514129425691661760015570596154607563247161392803258113688971758892270466760155152394562934626070112904949133104045680742182762008854615127009522241620147695102550598007891064119449425878639383219185276915522996438186235903430871562834737178430063948278957713469943332853959090694735816102636434365620355557334015417802922772472533412783486738028047566406810481677052102164475055317958368097079040094542164278609713641870716533519378554435555532306408458510054362408238172448739568412473382391302753007358938556691852357241304877328592916929829221144721735217276840354352704224214136173847773328512532985256461679185717213761356332350831218547741493544664017651763762225068903659893273131129140870807238216139802340119646825407691994510037177483447906405510774175836567319300361434227053392058697069868771990471738231497374042513378633564931678006167770967915540897369168117925060425683647197432415864206299433519587259336284213659765472642730079916928375575196622478645722917995637532402260947957568641950239497821836334081028187791452831623436361218403381875628700917001729996848345925165506979492736041221321769716210009847290854046784173312955897014953364454071002395352098430093876890489846899863625954212567567158823631301955623975993416416199659023161786234469541583584090388466257762749572759200073170131100550813802432599027623185746229155375864450658250879460944701280811779101523268093406156692289010117869300101187490745695339117369218219053011685149642621521340690511522537937808412513716131671032027785380470476034672538651769506562958245834020206653211510838316392462712863035028734068530306827849371313558710961878000727303037842809899110989675354432360979262100631051236672560509403267663825873931816726521871900743415018570702756354020544908427343244600683951378388715464689899316197042433788171582058415065529865160833252656101301069777839870751077666904881699416390557344747690830694119871287148087879581987127123533269333947032657943285083954464270607155481280003403137269748797553061529542465046683028879592232187846138468580406130498112939402210584724730399661113583714410645261608093192535977698293589061125116597412433901160890947263132452772902915040368450623888409493053853622123167275168507211894470407792293329310026320480533542212228580074483035414509281775778400258002046937632879735123791508807147782670331260638753195318486316278543392108452167556062374959644230263669244686416714172017099320673678216415687584034706449007480121995413480227837106652581592215591893932082044976358043117708919331454755402432956934125270264715105733153115559713460372666193281284718786961644359115027202184544171581693585495951818250592545004226792256948099110908533518126275382965053953702953323819676070787718036131731855355502997021136100228090084849869967073424969987845918047511633390079578711888915014775521903042578893897888362983552904106912977347591498317503310826985113227006719148785023554159966234206949177810201059110855209376901210060621360077584666798011651118769269060055509382360275730203096958662359669823610946078525716535501364974634842809282508519215977600697414614457760343074124321618024598343430263395354087603879984936257864551695432394932333613879313002356204316371652384594975492475380625173224635210324815132106241624474214333378464720351899861744594053642725595283643629980687297755284624643928597495560064593692310709502235218942793052627032313865546038544711605043594245740311913775154013208395694021276770667213464581711235001498298507448279684188466738473889125083584396368274771845085089834556274736406052576985484857685903152918637047404773025187081303439508821121541037367685305528870753284704798177435757657420973938369660962841815290579855779272449098659076054581556117766354562717183351910989911531247758886211544916515616660772160545991932637998525081560916238126311081155543420304672918765205931042023622911682200340218987717853443778676518739501539501505375661942645719819769182424345984272645353969967077386478307612760449660096972216791513791872319417928998391792933300383384400827790248325878360465392345672165172378596619879894460552397032535503318269696416364702048909171292915670146950994726319464130239834378678613817874375477389826090469415443269898653960143267973888373618746595951506317528217247092911401313061902547723833378159617011602871741135458386547388940450866315465807534206856357727619686861238155820319710683314372852552205709128840472971161787486215672651275109550462450187683145203682703280822488901943317048202272984682747672795324636292389094222078485644410052238392408111690935673737685619514353208807591589729507549597012216213852406195006181521339234078148230331008893599386064807988550331350462959616558652807871092802825876248342048609891059471414499829067800754995745506825347481968311553534430292971932118594119706688872176358288735251925864568910163226015879857552445521955120856030301972206324227077192043705900779014828923091700031947798624838300768129660199413176267087631768673721854483809368536375578476212208099664947359092013700211532086447148947352454208809050583626526093021686425872822008953006247279538806510177506018043611426265682736005206688061599325912561499610988915572909147839512527954589083380599532611885704409596542541007468948777290623188833146539469244007513622929841356515015786742136374392585743412681286450579295695565109554888803596729820210935092023234914050278164052510910083268200345328379669073855774992665501806836993246161649268981406700446197859082791843139459572583935930486068971526994270791995564757630009660450360066807404269080922079557537623443864235167126202613502110601376127649896728791043336859695859438530926345702464129056721559983884585126239064095401380160251755359904182735715258776558591739803912836423404776027179057269913236755336255837486142635448702370941085673860895623043615423301056488610662344217934358147078779375519331142347252631674230774860680492510873489700366218393487709127317193829703338069744627952849102750970683280068016415503774958472310299248644958885179473345631298092331815064302518171952630463759893232348730703089008721303253711767102219151471307544513106267104755594651895269555837492016604380543784272355006579072086725808261995379606048105013696583607977897650985011741611700426724883298022814400736143419291776949396895613670464742769165243033199805350953051527239462812513366262058222739739501276128087030362688384695480758881124195346461178373995462110882126907726553290156515288853304034443898966308404880756331112287562069254672453194071825565048075731074029486338085868345100471840434499731804084966577748032951651488032256363358962026183444397171146139892714296796261397442789744544846085218913550234913649647023520511660181259651806969163489301766387049943284315369775713277535909979815062992809414585881826342516560524496938817785403477928694039225107903938184209424402383894172072967246970657635063760119790277052450150452006559901780704716178763600274217685035954240149095932379696028917748341870406933356159235920576254322281680132923851296784558837873002043737072626845847267630009667205534977822122710894886088154934089311847514192106829499504648003440551893557775095447865951731475405436604379351403005857120668037741012933998758451261252239155217053645154036924343519672864258672777672782865144867665587765935233448263449576045572981178339197024191603825865615886938355554098297640776811297923683278067757531726868324109528868394405997860600265136241556157543704186036629556448411679417225743056588399824146379227118509012488035340310985940841883056616334284497089001953876920537689497918378072880067333240668620077629804724056006440852489201842911956407522875236011943814722735875217927152475733579005764326664888735838778497798034744024446957439980151641449096214608782061725410172430698296569265119245835812930962943862418952329408533301453924804727411622281122405564674900068526782172316495897187531664693673043372874563426235409293506401817082310485038203805848020820870423851528993156416652236965353465437075711397007935846444554595108642352086200930313500916426329021085081018035724547750423971361892941614281757129735616518325425916716981776519170710086709019631183963137560383622948464185184967532320888866608918611518900431155519277392748187230057912002838467254236823944389285244009246581039064457920941010024677781536188370030294098352368286969537142050288880070414081392301102133519793819371864766611021794537738016078813218943088088068671114963902054858689613803464875191163813273511908573796694867442735319757652002033215168070137776038406310357131654976855590029541346226477727821514406289446641171920746740362284350313572019193563735574890052876253577715615240408759088732228209818781923775889144177874457142534593967912423954058719755450442739794145634660696510872272612194035230577358372426765132533576038350129989444213758184449428900260338597640065129904487776838137953002791471514581256289934673639909828816608178114930545535110430871727339078396619474955029498992991442475894030066129992432409442650455670311719448538303763475934156573253289399649339460010874196909950537854044738012020488046301025427069202095166187437259963606149113652436272032531126890766570485199744718640391396936094810897421351145694534920276372655710262302155522931235870124210560648196912497967116773381547665875509011266935535583027325590914786522134958156836612446963853788266608083553724004017763222948281664877278516285981811096542458040932122191161684587949546047252089943593985771075047621873412451804432084438553034491860244189641178042389291618727886200739379474035855702762024597653860566667654847936444778199782768952440776014367304880929659083895908300696863904859124483471356963998181244280441210530157771115900213996637408576827596853388648795369388111691140083891948281010579910479348396757126273376105071204526996128523949600911455047138065070481347756371496214616476744351563679956222231533431285717736415170045176349724845671291213800602269548417524950239023071918560495853544879273373724403118343064443558044172409868480541630006696826499529500683472639102010852968892146071804466280812134385900325395261106641172220403946741853939785870195797712399746302666691626390428509740836457872691955164831068898144832470164652081844760283775494045155485481209714774639541561868985519872405748640426873422004596992609021382120348346837281601897134614025732532879373376123338036383665925049223887525813540721261219153209760331252859599759243822953545503504034013835776463812586790455602972497907960243340825630548503274247400706614799157639384678497402505090832147246966800818084921100431318072647011637754285305896954833911532780634004333486334569560490177691537038895908629888549240083516348882240109456939895716584712983294419839155610861415809538900267256907125999148547270990262950994478458034791990889295078041666535941925420778514657920150552995465709972467499745424136414161184367866630952024316304441294042367598421059298409215917106109257079206183312271976528784544202334597894891903817740695506606121861823198431539598200535935028014838896854379371448337731004271547590176827985339881413284923675376783864010573508784212476243177208314695825113797323978316800203496480519668748386000488753879647340298980145223084845442086549020393076183892558499574394094950998960213379380694973596170274768798022963022091325987209062456383798985132674056484549576766507971198089677048072140511068082039942939268961665939460358278304153583150348079597864382277854487451745992323752914704352055894694196293389783687713640739246015864423733060207248733898177059156887373891240440079516372358351261420986979847502254407906825639752235950937711914920174548068133507865231129698606323635913437005862401525218105364171284824867604465872540458448541463433447906799986030786175093026032074348779761734486069949698058919472148038416964757029647450220215834237678554079182531739821765661695715745489697145678147848013616057527962757211435283500066627422093972081099873739553093144739391185399531478009504963156435874262985866993996811657877594290123448742731861150986899079397515625172359201333874201209064422787895947092559395794214234726651800895631178188548208506878000946419427965481559949420045287462411409344673545574381252196313430292561881198578509236775203366867496465910390310457614723148021603520411900905186877937031392787350432529304793481541920751810212664010216448029515256715015277918213538438708082429095494387608639133236223649027051934412397793745557920303439597192716493146059564533383860180266769642838403912804238542917634606598327482662753603991094957456603465916150913695270233745306906612193955409138508405382880343230726618983842514781388070846033893436556962394696373357162270222385283918968280278730133987152291946460938708238070957710304845087612050653444768098900059042659381006641907655523652733468913525804168138224501280591072076758891963370450614409704407047949819603605897704413187680294930615575002486996659630211988437948798659314064322724930891577375964060126093375526065185997559574650575419866408413855962747967654994061517417146696540003275040640479330943961551787420832490555032527797096168489035204218306519229150401868777774948563961727153632905857187404330110836110992969321686626436105100762018866273106833894151088344858950408468378784141607636856799803047492959260340427346891322433326641870271859067237165755556627662089299462201837884965828481617636187218880191410595056923728586855696371367430971365369161297944479513126555275500436762421523269522761598917912338219308527951074376509608502486558888347711760670140993476825441481716402116316939006443472030081341735241509497105752913025503990323350656838916724675560257761045216443777897581414906478518751355782357720909762427532037594008551109751330283720245451139268532833450355404695325112265021723753820767215499090622950068099513113030973148710937684489513238840863851484633187037708998709295842172694727232216541845590680182704670690950340907968642446120357901263606471269954396013573330701501435480715651321533857795737933993665824757668267077906438045411760493395270381834798233488246018844284713504282756896437634417551270242013839355881373970152148646398049250907556878017915154289229882216183321907690908869484821793534765547100317870131701410089858353537906757328336045602896714968957559469402012111921859365770362059328207077177309602254013109501555614630823677858789269185099713580137656884045555097395296636109334410992978954429235005953142306618466659189900376997107240948948669333365765454652809770834351246215742698990872558397317948420943092091547338953661325821027023696628259855793122971865682555612431146189709782026495766984031769165796747714003086577859736477803094886617114463193766919532325691083216728858198581599416343457005501143563472897843049744852574514411113171880278343495458363149717727987325708898933875146063138330569254250489909164016925821956712293659002509492082648937619228923219571672931696493824232733737692215688450437619507628390116704416892482157194965767044972113977081476197715238595696368357008919646120458852194753981172555013370627173475980722505212117290437661931289457829794219436517542914776925766072980293937747091119555885449785545602119046119759688034035360972741819426673589290345153759554774356834514604398122958535859686694095845838469499896251526506438268298795342898873255756216311955092415821153360308275714145066057306198497612651974382168017012237866480757779893311011485007129124046955808886929579832214447005332389606756777160788421584198618195374859971457531445878196211390048803245394770764561802575369051951797655942292349970862457571269404589493137667463643192916306784151848450492988087125171590836592966016127134463493505418800636366480501669238052448189129276301027787717388379140904652397104346773841152646280801193714636702594218870739949274688639614792304277459328889684839144919519704320078698741218092754411515887844763818911780075151532356440124558628332424687301307160323673194024567103440330449144823242890424877047929580384536796215973128230556003737786322691347752391593674726116251497484243599063343674240699964967708459634148934278869212163204381902460658099167939435313170676767616897471903294015723998576242668691391990628724685479698933047453163340336056849722252439437588104159925957289880322820227400382543690638878959940988254277287179367813275696669270348060101841886790685588243657788857107238986523445768097116177264112658669316370541435634765037121198960042200610660657492547752956304561635299680792126523440849840272276396984320789357936152010473650304085066389497305792284553895152367072133444555462876508754557501601650813551227570855884755381711051403463895927766899446632311155344730246759162692796446467429736353096489165818941848515070440396469301509573698461421286396593523245957538042893384474694283931233296185387978070232301640422746875750866010611637190678073560558490065704736160525909493142861759600276017859047946134264582505919218675258445597653162561546266977461047608105299660427604028473754923618830663487176566862091687730144153515205174325785087196277541486749594535264782832542231472771516750544408880737223089619562929905095169358244779355544321562382551383579350491518242706992892266808098460711226156300400796240389050464486616422922608089776201515601463432383223328051921442978287620862366897384160517526420118955955956026619394402025796390634856161261553733232452428533943394069098693631440130880100955558490589412021876050319142418879783925289906662587834657293592844540240112367203064901860052424112833325074804730604605105818292994214556287800465868629563097501570980369905751988258014763263985908521158433527787397277022367330383674182006914390397870771228039728941040645830809966036157084092336515054562270203227909173130081626332726674183882231006501589194821399553994454204285476828613387169574782984052680204790991705047730188778461897202888714072632685136974606362282138874102947079323759648037671313723290300965511311135124220469596505051435590800319869759968465778020330412802615527537278859720471066453589596326399146700134850166583239330015535374146018077865978496400600142982893966704425528554446778499904660003111030659620111828837625838931551125507783269550907916452254241713021761456640096454260089577052850302274218044201138813189869693034944921207341275136519647387045081690128892941607815144349981003533740591791398358752369295481417612101040210662539624547434009520827372507675205273290792501042490981450550165490120854221812589726548317320993106150571731429820875216977447550864900632317272148290251456343801440978940353783523526640432170320855619407872563127944839756567560589828823018414523545502513710095006999037493454507607707684785100685247200491975548681585388717207346339207480964180483708747274335026987764905815115510284010344690162405461553245957588735533813163393295973648658542819831421052291818291288986401763144243883009285970672396996097459172909954427992475906199483403442531777957352733222470277169442374991987706076773962064188389112673339903926373113698127826232603177047312991519657983551490608359418397553416368381332702348026786874104852993048777088670465043894850913598817980482105292727749310389744637370369076048987019695587721739669592988745163316975668279235923587450086604055809039635970826504081536217045852874260387194508480770166150541183757937755840671885255189812282457292133216937036228734894496666083944882705374164706470439293181861715415817723623699398360769829441338347112058209060043331831810734525936895835233252524581063445270989263273696402551243262383114394011548522583601093596006016565554332382078675664435277760775319160355922386490948004141664695595720309948051531436026599290360561095242508866821382759466238575823436073497663154789815186752247043679208884114249787167050164145826835025175806631580162368241418219122229324859600173282128096146407748996278628920620947147844037154813347901110014925577547942799182797148517876401044405310192719565508324708880285554353918183321119444345645769046689492886003859402825057049894556840548177629777045918085901251286354433857300977293707306188531339067330800451311094992520312472735518465653217645248762473501852765182109413280314532091912515578988867788743810550029784490722507419742997092624165250010097937101772787518531993285865064853904762514822716093755086656056550002531917016432037975005984056399453874201467059640424816074558846106091143591957134323938334962854546716043662979382839024940547741351162583231711227389530801860052742820701874312150728491589985966061085106273423302032508466372551690742494869730708104122979580695364725952095848037894831973463319394850310450823347423368603801500459219893362159024433134543700509594545327412325982398690629420131873573301417627395895157326660449469022839564940565955585943746775998831876777560473647360023251979269442006557844901750598033501476016460569081321626301259191372218836548421307086276419680541894218288853829879253748534283760463765871732141950362146324381838780751066000964388363896037622232318695870610428632839769274122672244940415143829210683514199839659593074331913877208138332608707019437890321855660744192712698882942775841666374006404298786562338555527350578837994028196765556206775412439485509210552651307368617463787589492820716668486324941732344663319237076723182790773405774698222627971872401605801596811234570986954436844132662422036207523878483652931906920787866162748101962860924638029819026683260029611059451867119136919096560621721061404832853144120261411298750666198324227564794532963919162895762794890238963448933837998695192373520416209519564772829496545391321457294147132694102280901194243019072378926637167565049536241246191635296362129917017529545880405921843153631221725907545766781321778702320515020882525892990395754652929364127015841535650144306014824687692817091243549470923276585862584186708145979640226831271991629168398630991378159803714093505226841188822089464176441888441352686697632705565056922053777617357093271274266803016618008412572875650544273341239343516636370425665943534342764485103234372025310006463971254251352205977211731873444015576695910156494899289279840637002695002473962414844771142362249283008110658509609855973135401512987068998668701057480527574877066003279341248410852123057583071750173454989977653943811887047641618390789016380144970653111315335255825747718935913936491694689819808629070339189907185733557484054592968592778163242514293904050239096890752038419824094659589452834726302577460548699230876819736784400905320991293927083784341523216800208298532253525863741982985394503016692070478259369258876201557333682716621404057847373208021981875419095606771343994676535580571805758706839043912329755282378774731558522335650018067891857010139926488218337761627529090464207321352611201416082414248956150989630545279065335638640629986835345630483421885141772520982639780077362441056772111867887265834216006406401123854487512088275571752391975722113289450569118915833714799425248663132494242903951235673411685550255924669479587692392682848989681451094629923281813817669213010409855519376561872601052353767947234157346703018396290135205629868946920090762348328749957245822149183554122113731929708495187411630837474275729653995981909057391562669767386770620227765780213539097801812788661691079316591165189899436436261113856812003092706130419269012510081816421407757882343120548174723977381925153510744751525822566543663674385336475830634642480512734429139527151024458796163458715305248316027123754293247416072166436595777179924098694549083743087417394415818062115126173154572747993822184005095907130403867725340646526938828780198717429939487924241427374187284168342458352265304599558820695091610073592762459933576719826955961304120270813990217410719437633422075299011308501416235180719843510859207249793402749569676541707873026015869644676081257941411456270066840153483461900889915854578598742594820816845122198364590538071220112244000960451317633695536192847187990111244070564619207404272341308720564564379842804007567604321035911810472005835545746190235695773050232253610738400623958907363434668159043999891305610725099317000691683742479133404813101191393720656201224838155843541261873208209093450523646825779895333652860374852830504810775524599242515768359972961812988262181952671107852453400833258042864746382662396048255720573602613722520720695466293758806422542000121552740725720031667413507169907320703866497935109666031119306457771617067763754885924889280045935918780089349839463818248079848459282158021110380829087491715078800053423673963055111053572739210852915064453443289190600753265656359501875580590452412133821947611611134634505846468835256657564548482986188407594511772965986690614672479948939473134560826850108171142011551700238240807188537039895606978470037705765339413525730853427587376326622416438773855259041104031092084235184837526042295373195489460208872472849384240537006502189190496374972694945494940457762180438921210881398012061428550868589345199586720501691712577901955431969351407279738166266674654519799882536712966553088212012522361130033589804351881832977834268721711727226719665966843841734753437302515961292348774216622814947752582549765980821228661278249877706422700922049925142311643589433113161808046152058953082112027970861159509549689556950596041830587056109883638927763642299423263509118729889972093021242717382186134330809998778483414226482944945835662079291202736936908911631049358357840160531412917972380132691482439842324388545835511156587164623273516256758321610315908794306380533485639937533218981311545994801696241894136811620062956359106743169015582218269552540575463482220040474607207636576294642827373110933424477543821143856375181111974837516563043592344646395149028982311376269644453986951151084921580608595491089642598549631098211504222630930856387501971617233410413556365155363051921590674172381530773571971982982691806512345140181619897239737222792560331540738734448517195109582288678089245994771449619500879904597519298476930054586211316426152710045486105516803883865631560347979706289878349535505265749293960295451157927096745564880232974031124077523048519209716220289194889844562019068427070748958148609913178262629457779452627872836125029973604036669616640861106614177246515987762712033557655505860045831959600024967966761304007529305507059010164217943372208176651577364195581604180173115426040250314103307227817905897223387118303868591334903096866678859485237326325017734061700212835668055817699246174503632153996962017932630751406280907481199272477726258297702018539344905025459978141218483492720838488981683540332244979311249801774599817400492127980689304798242407455489602605654842089833878743906822390704986946134150803123287288067663244915733443968978364430956426137768543153130189199504072471777834806123988163370131646532709216185340682484591222782471548186624011807207300931218499891703628688853746305887478564474421967573840325361236966003782848289092733383029881283865241430606965643385786654844002695424388558063163191983902021196543358077144834833637559712101040727770631752547059297024080891007924685413480227948819289498796286239810279679210686253871289166462584768034139576369780152482771519757626070963233921161875620066386263011607780994040583849031030829124651645142762440731370036337004758226492099017620660787248106490963072723666947409998363775573487043340944131827864016610523306400987028068592117127975200959567638442555143580923896528457146593926251823813880753040947956542896950895479885893354276098796248342104300085024163697221139054970553012185415723880903639192824724800562802232468718012464645164700721840235009800770659706507193034918216748602753487665897651324254708576829849854350156158703338755311284422852557613819072766213615840066872982126456588315198534070614274251771608571485272523079260581135713153148099951400792218488379440659446873197448975466592980726662297052833157259847164687038781033150166023522306664563348149453958520149570719244839811130840759265237526692023556068083673534234708216690641565740396530767785793564641516998367352183995512409156868057411712335628853930727672224522373339204621830821004496382674830005111350872351536974524018374982856121084698486825066683534362785487777256073554084149673398305852094998095713907541587234033695007630524297297087954696882856997094135125188748650141619536898541813187674045225778474750021620718087498054385288195599097531963096426348809982788786016566688147640009150872048400240874976714989508784244217361846209723090237710086460853555337965619619186176519820670109545397166050252505121285400555118868732746234298435414362706640573013313894031928488792878123938346543382650036605199498630398770624525274011360749316752886698139378424377299347176638506462699553152918239044201194626787518180658940196287924888245752430689277927508354853595236233883805503787768657472770006879107328444885078627318640373300849213996887974168768861085878186705240715965661170435759368092878428159024168856001550714255627574313217568643559730464509893398566726274523107632522703400329539624317654388864645991251551249456646117764470201644485141971021971464700488636405374991776299231839942850380720578435050655249632052938267529020631810450347794658045933348625853037266879844004246579579863126053924414842398494991959420016664381832079988896542730295342059984254398133644860012581626772369514161412702749785939237504024583644690783005622342666730568582399177472758834356278185940712267945768332424467419953837998901854898764615483643733248987572084317443083756514451747829293542260954818125294039552950882642357542333835346957240330595768702100139714450681004799280972463304743985552819395144725296711247468681699929000128149991326675537884592260809567397104709878597120979354730587021760973786609379390837757439258636506956145582893047857659103428547288237602524351776463583315958504629095866142074155797136802176804017898752690104465003556594959466435708320375792161819395229689292588365710255584045071095356847648242609216290123095175800091036785584131841431119094372185199114476973915741499371397937195424671492079727670484371616227040909367708143317547920251186176824540902449634993925334866523697805984108771459449229016043279646904257996883309263877409178085728131531300677530647905272493583716722907515866315972817131578240211720324235281053632752176878679375585539267292368203984055922180420627643384983528682098028219511803231716741504103919298300788321327956675481953612962356753768218801724097877620064552436494674960659295642223111185406669053166978179552409943496646250233158754195721185976390474400395946223589838378038285280156632413720925068314845962993244083801497701029498365283934113536230890000042143584517061664345142871594969203075482274668599467682616244222034549851478927660960699281161535127074389067741792133119074459491191672868431136822460142446753177194477343347461644645100890791229456184473561723098194714884574295177288821953852577883940736622171967828058180100177423489418054858260853724922917068020464088684773854472844870158667238315805567696271721130338927755853625824924179821665152331668986621951612042353344383720809598184172440300978783860721609253018799419113527036767192367668707572367082146984727411257712497422803167377340729639674481352189396159367085597577121542535008064498598279460367543029439969663727210350490748781153233899646428967117649302036266591821977179214976546655344182101716362059733812862247790676718691512654099750548431730505093331240961787228824711045561908542453222550129955159385892417791517608734621168550103494783148698987306426569395965674477073243424432447512642628343684972367060182039401820611021544792536224974872930762959974853451254273762584015518207347117162295156872354060615578468864627603566207828105839935109073507441179004620240395891466778546018198765916193527666141435586373598350111501488068184200376601918224797132882552367171465215526013529853222305614401635267089995983108386725378741491067087411070379180622498772003884907126548419649882255098195559571603587952322569568888145005566800109110091069857990235224876732053997662894338298535514431367112461819951111096259747084133810392870937103700172816967096256756602606773843490302042785450894062989500452431558336276387361033959494441768516692525591585520668548736256765932893448362457029389587504555958718578027949636003034441577841980727421156414018613759823773951844075457564579013973875345083294315557257301481326569040815909799356133463109555951668861557398417944461968990040242151951844123945732133590936453533174482547088277376359481177385675796498450009619982865350463476864439687889163122044910730415563797003619643191105676195455887294743621272831680800470478898128216639889104471262916273277413987651216450083853323866112489626724504940585315882041337109243367828203019422839827917844962329319573644530923892283616381927938981248252305689087623273261041891416446780145143492315316633023309495636222037651182822904733917875577041078477579870414228927228970060298865284820721988864412071503960767601445415002132737172191697423167815032900414851713026698273226006619206000761859810550721673653421429997471694098017013773378327118738460849294620539327838852921102438600550922678098048278546951865090842301138003645692523576624969691704201632706062266449405758529570297041105000333331430502351184444140348820114284284551304062419058921061854285833110466018196634613824007858528838153393222012373546362005679239992051966823444952361532430549514911945379405667628612860193765732382154393325672639119074324113418399780616434054063437422853815448321394559231663459884723891060573228083784341239074432308969787188084339800564202815633762078037820500860391511185258607140980972375448698846043878627241545427695439052822621951258112947889940706730872067749987458335669709757501240449099834084670140422068512210316917208122793728695716012797415032242460096229223352406046069369114514145468277471083454514201918264241029979903266070752518526566424385887671734633715791748909049384459097707960528321739055642421150487422843078637196419431265845938064109228560627936520183543488819163647528480499746818743967230750658635206510627628237450508812477406221498582693235133954825302187299960593834771310719215939128741575566705207313574615349962258163502205765692072234279369254724534636979566273188860596846586901364453565486641508374792414101371961165876862443640759657394593682086434822942523003851264877084478276627899808347337351004037538742308743759370557428398068523225571576758750228328899005560717559368810292906179125258050818807861816876467754264681169795707057348768341707673847190471579536887020504966478113010912505529682274171438699666372107788239259656271837177291361553760502511840734865144667399309003514031012769220028922888032876610551305841414737902153768805932645573888545931094803416974620711831955816699093395324653195705120712819879752015932840616931163844262931109565730255217509076514065923234267150258037534829648383417103515091233164827928337908845552963253330117062878190385986083503897792456837984630024708735840814106179593605064016703266137012612975281537654610415856473755820245241493928214210235231839518715429861357136395132877468381906141194220950926437664003301485752421324900480510068967815226684223048830808014887376209382865502305707151914016019277549345895581026591949400755323471154355101949319795093299340285258465200802774305852795361173818503126191738468626874490124999091284528480217244005605524252707030476697168703654072275089434918291831774728356239940107362859120754620600382758934779577815569498376829324132493692444321125833652817602331735081910771662945824514356086273831423391618772472085283470670185325578133455820030187078540531249904747903902753411117330486221662068296829597558599453505402259293241584996132096211828366347928289413818059710123223701025751203148230401105818468943434250828042062362444301982512045235071076979351783811315585691594446880534680316529528077167074158368710243289184941309550125903515375049209323630398485752382489594764280303460637719852338506500822594161972463600948498347174804613973003309142418827296878082785039824994534656491421499065764369253292363426307516889029127399272133033736798154759235465681541720110771187799532476753819092360589867878703291777880238172427055804112950190247419503992451992974364817812317497187334750345519267146928324448714562343308535728784118962130789073286465740072569556522233868799895461143461131285259879165852221957946256428230404083995534859685742571616831881067973094872931876987891456066833806894255572928465820998794625016282590395904520351140217073628988531823622004928284872566813083165252258247849656302852862634275027981980058446907536686383160293340873887084841840719790635846868354149174210393059567139931125525410187004420658168492664109144857662967843815217306506420345348263905871228885908242037771004161914607726038864531650389554405700789497275414650059201813384592393978391775681893409753410083043451623326351465871345997021521003189227098733818756600752377471507630814546527476025473916166167705780395711760280514289208615487369659569481989260046661448246643030346612757658989833897848930512729457510859932603761431412228434285401510238996978655957862641752422026201743325254416432158179942673370118181953540853498122016657644192085703098618760775433414540361040790064372535300894087511010234802273222339027392513915594049538994096821749936061667695659434531476750736915721966511262596595399298499437951444130674339980503568917600803488898444581018507167412070626244869607487748073160745829039698705093678344480113284815411561986217268660195852019012109327730585731243560490633623325006887967123660810612861896632552917584585521339462081795726247636530897885326430506491824707211713594323356807016261172472793288548352450305002816671965609004510884620544009713981924579150401195100591411517786860985732336825609211096217608513430774937277083282391138743540473976327714156922074056793219814865257717061154172144055781340034220768467052503486314640515025471182760714243294447462525917442998432391156818579256775642202571583179651663247023011082523345680176450006850543751590540793706034620416536535937949176592819028662866987030658920674546662046619347669750587457970292534367958249728247483737315897534060303766606592579939262363076667655317076872411211199466666409529563135385119587058521938890935186979369256647889704809929362583501246202286775087300761734381153225570029462786827440357440679592509156077282051727147369545058015791886081748176695985759237886816557287330586561767164521040599363092066154052188939123276048941858199760414108168170956624058083211000598271536666772656217344086118029238305492530275792409970357204995546283733318652636371175481555572791728864851409966474522222908578478198434447898305857335743327375308479416672632911090979426262061706540237898777959948066539130458405071038842044519796928405608452518629707623095507282298435410378320307924631629974175889523996407786288496439118686269325684226561203711958481370130881266719768773187099837488588049040623906101044413338590587970879430750745832465451585818473044212630183708083727403233035767697081322326038640451056075737975645801626498819455387484382049180665629857965189955853961554663257247593594747808968173950435931588366407071294460150418266462769724329663515615392628855760972364994172272854490654579951067906989299680678641300336168008777447431097297274574966475135763305002663987520412913773133056031366434096814577768610949269526014332749454170080697557949430434233407940661512441928634422702560398181728332205824874988794432379651153801919289656061609752746647441553555989688487322123253980948097250335474442425234945373892913143212655783273619206862111733078892358915605538759952322094779749826891457608367912703705359218830842546689061834633208577426499180533065451869579934616868127821319328074963012972481247717752420783411337450507287026034614130760935357619491090103836431805092720383062888441586010240782807876910653523366928405824828258589606661808476900007331076450268728222544907570541638109886041530705469506982595678081914457200861386278420442816116222176528839584737017361092942811481757451922372293446884851650288312649332692497417448966384667744211547477979816162027009547853479287632102173408731596778851353004593023999744408233361005378162397512604191835330264799292943962379539099590508819891051198579400259872762530339764958036473710482140923544198588601024151137828032045090042880310189324172635232567896452044780801593550248751859569185455817388069272406928898380132050186164220479519119266476497412982285159993519773721103389588872631765039556191753586567877538169148411660515112233897264798207535635735924930521227963738138984930799795257733263014993072849459101830049028821174463253204018457870620211234252491708982608623250980895149356469338442740971658987985009004814305514357627525777696069017294392912817827420712466154808171806294745445830288050726946721980576731241258898018971883970307308708867452973903489410947647361754134209969493537095546494958136712172939245533868422445357757043275527409021128024776783782760054975008068252775808835097242079541655706808137332781083137740180910558822789372757973309944646547095779190420430295637186325713744365417775453901627124538512517761586296457930395281168189332480031726926864572311500438244288264818958232663603035245528801425621242306231651270371107946658657463466393879474532654658177702854873776711315844074973650119024747054239133827293574889170196796497182781734623346397012171154575734778552790798819676664668385013361232875524956500444001960688338966441941506972839985616011161856730574067598765886099199643480774801759815169690215553227269950092984988467956504471688397359825886813450921335792431551800338462911321047090857028141805222439460353006269928175584940457047246469427830044957132709403983253411630602872571385971368617175555536645397040494620684694312487261985017325948924083964066338484914628817908218297868870435558981476025318843204882914749262661234142148575020404887551889795418012143794821502621634156761791667255102718404310208410800776813778725215448940222147837951724414186255866830882561713248105167198465793003020418218392695066117761360414314792339381396841328324872813611830957297917476843395396167944746610675648602922156056354878029730176872911488691727481943720240080325114554879074977993913362174473539517158975443598571769325261884203349359546958809823590874962247747705192627486536020900673720441331876268881614296019850445314256541796218735604289751497006003316041442819880951526036549604968218273833507530402767475661352566832568777384779409304121485951486076476981295226665439413109811167786036464156908089804400250586623670251033641557579502209210997514664168275134610260420414635457791119398144269371691194651044397347472936216144888704359085590938814836536596374670193342020172029778689044154439652044729436267283404839090047048978315360787319893404925205295778732874892184222959344878453936385301815578953577154750485353244542188425380172026043273732066750870781902041435464534708913920185734202682925257334333042874979955701670513546375875100881936686299617263031360171490755730229952462569254127594776514089200367347503652808369006247791346256708098420635953209064969837279807680323318046724413027257298716213482561915316088038315032703715205417205070926124450854476917885599157133973372231373859545063403484232819246424276279862828428941504382527029628740607393371013276056406940050201955174202340561293049551168544795002469037989482779170379732235420651004460432598637807320444041711343626906199351758567847892659650911748844754792874911845813241643532316589505230132355095179741622201783031047689240199452881267136104322903512890182086291932585185106329573179465303157104193836480802604380132626788113745238175269444055038467363090228723439041765194598052933491973952392918092231844779647402497854694174199258325332373412896888666852156046432827186464303688477906025363681108355017448187858342464413510765179023439279174558400662347032744816385887795349986306341361799520545605804730840771668119548400160901289901722013738769202213011974604571961683367401299986855074081383515392565897775630842223903683764832899507901947502238532014846749547612329995687359634736935364298721098522939937670070299523530291594815130682650573298414062833248503072012050786782349289935531611971863192412819342952224516990992707166816044431346848563684512455545128705046990751013384548620548486524014427408810893374851587021560816847100357142310585132582295075734388540506086100639721128251141618302974324171425202486146700680403223431111375365997419601305071398916233690533192230413922079302702054811260253728920183383888123268066010228432670373892321407973726073050098604888446656449674091627092534658392752148436461068465621118046993297905494579489732742537498323211259188284298713745885486342049487862548316837790998345268129401255352064205984181694978538413365548583718900799976698506263859403962759449686665322657934521550894458053004167880318021263597635625653417431990851070383429595382486647534007198376617049852474882020724208524223070703686609266542736525839656132710176558144360039496463078581974106636733952294091445547641284710852662719139172936679649500413814008140709139193957220732881430999410358800285509119585360733158171687747745538403535042343284658483085720644525610235094006611871964947616484712210156980450933077851786685898032280088242229348246904155517521287268026867661010887997545084649382695309077997979270135310092654783781189228192676125999920221196038185854891423182342995138263156955040132342945201428461910445710481200219342820213584984076033675418333556569268655457949434597571983034831491552093582429293594867626557459635002106913363489075367856767200745964263837783159630629623063847221680938633987546584444014325311009938920197366431670624105057106269015493508433683913902669448256560149276780037690761450346764714495774901100255751597367386527713774486213109279339694031521618979885438072982106413617111281143403684922388609206795990014892521426099450610911101900537877415443570433369979403047827553626293708115188874368966628398040101210109245262968487227866695291141427728432886621511750200376773160607488464771170524718419826418099997423476897826324086735805124930301994352339306963345321665827199167157300814910085924055113423303374985066674444255615549071050168949821133691370374907415855660014043451833203256017042561225754417597875589345220251077929089365049460214098127503840840822051768521900856773844481003917495042157175741942006720338367958098763475788862491614447071590255553467408277130152604064844253486030788203653330427684029570901357778274222411618933791182358101944942920990877640364731875327019456311036772142373869632883004963456008291970131214298756530595204038122400633400587238878931856889187446041356546948698135588440705946137462696565460768574507942390576514446191891490184613087608226851406564919980344347956135677244941692290785913617627747939219531993351420735634751870126374905168148288439290397962954271859838238803657549607695667754015710819882107527534742443572564615730909674356427476326781242542817486770648152125808069943144313740240052611653426419915312760044898991325507854809335046574185043769233556352416650063089417550975032337503575948160588085974985645047929248461634065526743059244087914131527625710208778770433097160636421137073962416187974237862078038096952332443423375538371765560171595065911539859581135331788581608444705775030333870813447853172547158465467723683095843626370736792296670440323019012330706471273069795422328630376597423022632586981915291309624927133263643265081753752657177320540523127457950159896177417078642099971850503859608547035037912141059620175953171477938969533530769016968406577420557864251075449452078586602308580226357528217573663288212086690112000096069953907591032515324624934365677433056201694268273403855491428790616882338017944598853086720440993641652950379706998013539188226600933027372573022514373011823745312450486656470852504780053667781042832920632140616957443298615011571226361788013957073162328158228624885533196114067483261383772108046012051140321638398721128699382948263371260391586479651441088419860272537377354369804022008361886764541564599850214874873129010844996162374251177896976525323274643806133586640060480106711060996317447395765741940017443627983811105993160099730621571324404317810046578884703157848940689834293031382035754172575806617516820344809828807218341566037106084887758017948002513382963935629062377163841105570174267182689625823610890293491479949937510719955646166767158693401391201961627332717596765030405906805858589102405913728703110427432485549370738112885184769210198541044481890974042777991689554910301215105288925069221460433127917517174787683288711229566075909983929713071950636849047101981171184541375190433260897507288090359799704934787796607518877472032074608840440498961404443322198784122825323693162350327775151307713960557409533824830198985879671208744856694767909295179859889349576624691640211627817146847593532897642683589815035567835211287306503381933620785520679511107804326306365174899608397388391996778158345244546255856480348367105810843768034406545918567061335040018859694178509454426249748101358742531078222588367256167816122056729204841834425481240826493395866285290639110895420345408820705198445136201324806857628053179224738032761478563541736337682333455718996977430750777454558808892015261352419574291062270008523381944046287773098893345353798823202448977088068517656934681636980101852353176615932182526628404339371713091500348537531902739322317247300122756253935931159436701893365020717801169234110502553185613138485945149585228830855934326657712158238044553623667043712411003206758012049486780209320699031147112085869162768799325783589331621105568483646405579110893441443299939628808609608235072694471938916615490950774542582687420183719494108281664061264063965704337239831213974341166656830131573380767995182271136906031117599556145360588253976140151776362269656482116311315348548970462699420558426920810133631078841604965313450464555198444165969962165393182326938601912781525636752856722477723401989560257010914563333947026827650355722076412906194473617595127453709627337847966189820602260778815633475787299681340582106500841945172343618156771549085293470608915247660273375713047920718425920731483917676533682325753765542877518221380281336599441823514602580024857578183590225937808808704755938512741869175427559487444262190540196697434606790123955222248041327258218144009284851869695273265995087351458940120596411538323253559290790514185754757967420574805837286189488486519562552346171437520362166874140597341123532150096485136054294481762308264352771339384121070494437176178760828956652704377535009760221508259978264345218882323690111189625820743506023817013035833008426574047309521793715186831591349774861987399440562852607256231327538478245696611686626961673590046654842246998681304584265531900748006896627935600219164118694917901973166835673066400800727452680162626981305259105923603650768405368498614634615125056147358036019734203167681063947728531487694296137229198828877310886979027230195243855342473946359210055865070017936800002642843662264543089387258086869478050574797020154088409553862554783475087677482003814771292084116025778789481926820240795359380954948715061301766206358308233629642992269965173090966394952950003756113194105709529285262274024527921127161843619343671152015330024706352042301144092743377026234544783805059258717099135331610400001616955968752460108255077845947354460901480255509293306098900243059791984333200241477271968975969728767745843050416783089698541525781929649571298550656868635490313456420341305363024943161838700568241973181151420440920070750465581991232711332038011242387868349815131618376284727455587540056205703446169428675462514668838840914310653868243098997421542080405720916536166347041426231502840247463498197670365107328924851798786159077551555935360583756985121816754493097073517861070512187349513813849743130231218206409204777568267901540862594943424720749573516050454604757786469085729790600098938555468861376591406782292989898683949465298730357321706152094281070308220250300409663503937717095370023881542599968893949670763462507022358123494409229135543047819773188165419247930926505875232183480249744221009163856759334019042845598975418594912082044444658436839242420527223596314416190630508975654770011130789362955724842159613418937859273853089179080113613508887384245337543540693845357716994823353311898782089724497505122361066980155860238347135865535516560115768823260063016401691954867760720319794978606910304113516722350075494198108323437664697582630164624306177918427362163075154455584046427104959434393411056640644083910683534636290946344099879491505906435951077023263888173145455484648997618737013916672295205988573142505027994156575930580318047257332454234173990769614539652521441877798057001284989992281305171638473018145552270675476889180765627686769798058336483403842959352160460763971241427829816467853342387095164090294064848263667113977247515955772539300000863173844514232876356237013681929112877913452311734685894235443277654232874184603212379329179288558286994154536322343699894326146254197287782215741311404686288486554752426970131591044927198149454413356379117292128823682508799197241623703865900480401811474058622698795481609648187851523828381953982631761681413249292591431814535944596770552845411809674132781085938253675701545658171197315721451561660194887778604975361783882050293759916271106038232962430958186807017404779833232667429002873103771279306270621444215129798333574828581662473310064119798894552969419746715937953698590952011325977622363438918065180666228144852803848299861046644801807027474760025623891267795043414465770231707637992279000156255074639196515136842268845718891053549267367042506701908914123738736812746289329849115986198626302562491224599978894604257766681976201527824605046250848323035791279518269959536336404569188300573375510161556069333119205694164505145324524392757293739749324636407699710076865889752437131260858964993259037497919042022164964832481482874845386864868635399575899080743915117609270269159172228457679301676090513096734125441306152205962894595296363871593800665874021172450674964515935066776716933213964195210505842904269408094123972669765122510862349395506931104248039067764783170911456920890526123048512670494412334322138679061646748226823083120414358399861402294992103386488756937933728974164112980530974070949433107048382184659529139576010669737034466765907169703007756641992386604835778442445389873674259403795446732108874430763316605137174077992782045576393074462866019621381642116429432778379673234255185567627683703369087565883802512238358099937051505760433570105904483103709101110586404744720313055639098270044498034791741123044756002049131584857398520666691560913316999737012746259838308386352903175893276648988331951878883035098937286750684413189643832712847844641235027473105669142866028981781618479870371620359109453941760518848130730005349215895196737631764745320799511100770355007793033579516078911335295064977033417225427465958860780451841466768225083777671988969283350870410865187148358877699974897818288462194466364167005530907525521180735021130350568965156655613847957240730189987301604391393258356472798459256707539956727519544753082183937610127812348098755602617659663165226285534177388413780807649582822171644412030735624069371074262900608778967931257070291127433325671276540569444603450960494993120268510822294839987815570455448071639534055910036609917382963503224766312642348167149299998505711765729749607342750594923019471158242866288785949857825843875652471464267175787716820191433897051464148881687212832355126486913719189138754530232899027711449656385931156996056308081095155172334090038826673409995697965853973693853981458690163002407214785236870203639168449321681120985859723446733495623519196093265377988635724185249674421388654908399771810748466939131770831832711668983824761622998405768348321702728584381182977904591183306508513920564924968485364446677479066332259170565759768773834884595511728720315512954298400304667422619199670258768824332823557332819336375219705678369464265491627547975240417309733472491129062511625149342249983319400141726564005824650139126758788780745530270931475496359832920712451713132093078723960435340007478193538382808904294629540247799455721214704403113259696221194286787608954296053716559807768571604685863808979083901204545859491947965331074075666605835604976680952475478636671326697564558540284570891859501708261234730917876634808597254329142935512050345137812578017130917613750093574581640238695398643865147105367490280434311135379237273986578559245825108029634982479928737738877563602620426431851655691062842115404993292745057083994505732466025536738631356643296797785430974825416362988101684892615732892412085038499694720620173331516580791168273487161611473304199929608569317104376880534455106203896365055796346394003481455493028852412840583519730207742262183120732921766172111056815436133528603433064476438402102124401091258874090127007771792103906204208840791213563958258577672268078784189662188377253096604508146171983469076039836468475892230705526093656148974596553187765173253442771703745041813793227554826001788935159043782905498309209826283454388395062926083685209050863908461118979891207077846849802947596539603878633793871502551093907640873565627607743280059746350034730903119624778016473705937138097805376778303380138845214096548566678854059914869676600813453044183834789827233088507884867919615708605593524447682470926905570851481237594106783190568967772980374445176241419633201619648089043860375822027848743842743961544744192935008670499959811721945008262125260733301975362112246234066835080049109712899594455219262101636615894918680169918302153170472576088764056665276260254342682786124954462991211710267325448398319826780791970652601413483927693747262123165450468191864232238542212670083527878424576862950320667237657584452296638770245839731281652908320485801698942432039966825536192444281961891369506646069365381026093936151472005143756145100854867961695728374514900503041875274960752076338322294146916289709807988007156116610933640071318837352930381666133877969901130477349972904802195473597692270588914577527279769075099918471216016234393314766238084911770930908776961892757525234110861554940814555331302185865897778696378570697748709700240482802131875839392798688323233039044900570741434864759328372773063604089112602561603060310260980406805333947266454042719606303041367059137173293012148894889802240156428835930097417077084893803282645653279133770212182284109055735297762522454571080744920823252573312423496487418636510355841397736389930767754836923231677230413093566639429574689307372585624928541927755397090748196780252667369805006459262479750184208532996314759980685072942417209312122402334460756711077407383883892931307238889706143053245703009888156687302233706448966458126508256377409145118758089408020048087842395971886453589991248962715281121946388999038610170866381544693742470903081862549558335134950267393774325438520118907709623948313369388207351197541188617237411357533912428700420179284657562496537030821896246232161606909234797636791992088094099247509715190072308873811378493746441272469223293615980681560752912358625770511773646152865695767244334122999193785393016527974410549849491447996863675780067730910409667210604312411177004883059654111998540315026643076615296724953393362651226057178743931227953716313877801220273151288255538912677597760552386193411108637101906005549966689134814325650051941628634849706016733630464364086119200540598443077091465724244636823770018047225754866908840318936335653718588781264164294060946968856486430896816490279412389355597497986127727873461484853719644170811866367961534306310803789637896155137306536606440860304831464065516524946809687557911229865517229988161764952294070119567755728427107588427877439336245628902915097188072012120036889168760012327929235688702007601864953393126611129384821913730008299984963449662590548393190172457882593013343074440584674167790749080947285292551155171072724359939750572359357057308382951067827508453955413957260918378397406638335768497622590073288383383604588367785051544925909111601732974983393023954094505263277333340331495078015204581939297207522062257833576330527930775237561158309855564314566540726659441252176823415457081894794360574724557295339364457445267782082814178667388772573942974630515499429542507682608253904853731021302488585944322320481545207232266288477830769728618476729040173226389812959718035373866819056581709329927321498957590790369990961684832240963598006829353525623539484459516033472642783706047249544027817012781305075544461317707557663535422924016344197857104210866581930907739943275965900609107286215944108625278066045820877799304794854002468811017540083926680890595010159629729752482781216708404842322665471065879897353498582676969518944074767749128462654586370157145759367334504463868478890721907284060644019440197888447237740234270060934036486065445021464729119118015280292654725618226765521243887560650765095203920646681000928049073150651237650808874845662419098318422327604447104599779761660530691059933656185695065548264748319434925664391719955804176861554996991250495551622161317857005950861812094510086676622556954817942972535398720797596954915237765885224256495014072682504214988832451480414230391155463433910130449226579749556513559073388294530974998934382403203089152311555101433820737634659935253280954161813758909588149306474961429433763099513852291467470524293128949854689380822320365263533120899439179694089778772199272320953561282668192390166513151061431956671751999417546299482266826945959480455895690474910874216452795863208976741275431183313495606018103756531767721217202589227818228089291316248185830500468197547180996619291627632827116418028421269209991897721171593748933026397383336496113880553323819670964097405225448692318552076312561119493704600266382926926966833601787280107100022039800006514247046182708580466016156856384268155823811706835221075537582662544124727402808128273466949004222855871420182193294861181687563819239893701342486866924500820963591055768011374738916129846284694258420351656627074887859330869107036506590064958934944352226404520228047986965518841348046250200217469569744134391636393414457784822367837353189976602576347442765978397891575147353897961622538293896993171144032900188012342548440502396032221807785891912266716637381239713469401061897882699649937208793521490478966439127461434079086011107743142369347481483972383994652259160555517856519515660744831269488394290581955474539891019346750558334175302782699020790983099203721401575580542406111058459573039619753032386109409656308475849717908094322758411814016977184215278177694833421714948173030658417823956120086011508281219005764567048450555095537312687473205157356999572595906531657784925248316155573524043379022706482590855755562416530061426972307747741522279575069449471912700990231642493718317351211250308180525482705271278561656022243566847682512360110202208110027433932635500917794095030947888314831456487784268203735321450041783696741277982919885561263309110568046628122794475093473127017944261344253936606561706714041026283880741415320222644057360091901776533636642137047980748788434095098424088019633901106837471431106205363299288554705660727167474077319430703492453177502122556785072269481137956243669504728134745292935561485142008323239779325005501504134822910700939220485288621296586919104373402268175543024215284276038160029960401037522325360186382729729239308479361879421612741960644725788314218667140718530541860890042499886838680298103532100824836136415180227057586347635922412985914250753513918772669596577912491590722873712647280094132888324685121820083161104785226559933939480365096954463250217947589019125345668007210827679552488940349421253294710812497794303080108371068049201847026461593930545948583239505850572474356314684640967432018962637285896215516507422810107831074804512620955971071310825556842736908405421275287129875100869360219093269519828068214134536903409769419354790433137340162914900289461447618528694411102605578994801625628493527043745978451541543347750445860131031833183698232479953907391666626978669843562581457196408234218224626967651368636648969403926771207308369172557303137811290296257862117187011234322003008643111444922176238349770534491776654954921583924776520990115524765688206644976401711837464591811674816168716737371168234051696862468446207069361628784705518455326191436933849958433943756682879038218338142278694743761380479630957697021379495370770817785612468059357321562089620535947504703779672106285552567725535082608191221364967997960235850330828498716143768550098697641235622406149821851654029525712202976232024575096511858590675527057370271202853125707781360682233702181969519028030701619678731435223349034383532505690771537792309778248420151439606587855839164021514272911043260579737847979396678745389692634000232810784776478293677344746139603117007764701282565921089425746398678367622179983552326446515168008087605429023587379506241132410171512070558884510103503851310552906141031467212297754545635469280097777525972132874295299037916167142648118120203748210548692390331887730528547413649646040221591341784113481772091778194491033555643443754537456959282812835215377947423340623354910745986387784509102343823179015087693812906096220785497615748592527290657483699175547837471807217821732067069804301070638284749536663849497124610511974249850175110840151786781293755754996138189746731654060983142355506226697410816126493379476333743919762853021455601068538009250349274408044320111093691437224575853430428497681189164235059376983449033642639561246379542043681297294731695732480519228484828583524673065148343505589602792712690181554805269332600520146498496282496579509297231628830132367267801659179250228546734828408053997348893844629058413319650091328716306140385095664747422790657139238665883934748529976830651450455783649341004613715406553506763940870938731989177577678574837700033723516545478769240027704360084325454107893343618883107569821532314653439840719651685088421446179296981342063150877277426691407813443326674695296349909720918445308846178289887712301089657179293149844132678305535826057557251014869617881087562933218927664949959153466252780601864574636106562537280425104280273975588360646346176142815733967383775288768628551257839245409507939425764132422162790262070904684388235513666242779871494802725758470871377181585159906748463956867282029524645183852330754371116272630032199317535828763149622765572457935897272353131057819701803877657785756485490625713049733210105717596236467004719163006025389386915718904565045698770501389862688026060322410308896624437061198141646485507132104203357548140297638703497765347935585285965325302087617113029516322516461989646406905240017936173617245447188194704842627660880526772681750022664389739364913002810702904792186074140101332087430282224240962464006697576769448035219929271122053863545724982448362871400603944850339085267321436566336104089557629880629205816297566786760075509484823919379701223463174741513088416753541953587767903077088611285724343511321587586010590270694311888794302383829080567953532272126138870513680545460362919878727979995966778097962936987700029755601944082507484828706933502343552873757070313694100480365428250252743361229270690062477309018881016193574587657817049841355733371446914092563832438869951483361168708035134142899597766323350647347773427246480730612352400781880840780735421878008664768385253331478674528011025532810636865273602973044560582864646995359075143612180208453323372293948174019500533601852811652500312699200177883310212391305228970319683199444581955780184868659073771783268900762420846029507679302406428741173062951038253395735488255621934123587690708683053985348889817904398961788876703556502356114848707448296189008302082573446026210216198094594430536566792321387963004916369395159878238586538797041437671450619073932388754846684272288381822974120662733241729614226861180836640857499183097467099898612802437515640979532864726519728662485852803828413398785217990252748143499546561226056612799563018491732498927315775810502132548893809273157830264251951701856583971150192118771793640455495069916839770789801839155256432221108101271152685287287674272000961204644830181937744138431703539270696786097081787975860703162907390437390445469506925293344545687205084383691984360622863853739070897010428926941009089988375077509319290828894234925599950290642145876740305421375050034013014019460769903038334614655428846660053978316828791224535621405055479070713738904831371973097695884792165614284061167039546678245162963985828113836187077519056608373539646769964718609014045180355292714300486070778547492941305812150204175058754324448443380696117513205601495604977431826735081481144589378628089378624122245430613429005308179539608662866866980764926057780855114771223388540546916575383772832799134141283358522229884943345487772196690870844929620593266892197587090643711129444436158478323103804714803180506933309196188525291937458253581819671128446178513344072840662824753867062372849977879583394205680365308898609444432663231742027998709725527768600369203136331818199175857163607992141985851563483915179489181964008830177140904766705069304563651549180578663040564578380760477409820511302681722755693818256593958998855841636954435230031887642287885687123158626842355662748853204154890438917185200871402310749769755939819788447652321043824440574682118601340509224305203209807488613904556916781985289278095539958268732613309234947185160011601121390520275664430109149681821423121612718960356391951945069432236395881574202759453264162643547090150840470761955476048471726338118373705219001112194332561858292285146668528930539607494193998033566507019657754718074146546185007952016141436159657807914702140440136234888236259394247997905964122952274671848011920489994062558319575489976588048540395582187729552067972352851990722916666222205766098658501387217416060986247072208057077001550930254855538699162829393273220984378247024617655978735554475312649831502430309656536722904848077191526014531124422021013162926675034679344406837997170220558033984865621118331791181747956539534567508829037912541600837392676869743768583553060255854121843437001812157262296781260775008468078865851736848463795610085611149154715943241467561102357976797604019423895596954854112606702018553180176725204181896442465078591251535653156026185334135318588120781125660245238962448405884175151414063842597169067104442169273925366416879278084419335537488787757275020845696161406794430757649575858518400976888811923312528388406868210779549927368638345052597733023101425579662594831965144360235743599686476393556806288901513762336497096191348282767926461402092517393491114976213689800709040226157160883916168644830532710585172060175759041650082122145213951330041378096620089649939765240697503572951829743467139066432288110060993609766628568938657417006440989111175635610685310591928911173193695512506269565560471165837076767235783351975278412629744417418545930600514943532103850746186036323499765582427320020493249679631003316945073035623200445222173542464480352889440211136364360802500983119185210780225861693491561482479144956158060936507598890736473592347758188477611766020258764826409083651471786593135464715288034450247195778212682465316344974192351135949615442279557654072681364156794926608214449265981663356472976635809596805721541585136150515018089231572938287844117658705840889356662176807026511773762710154383841611415617738685972293556685767583177470642970129819839552104708657597058694090468867552965586979687564242343060260746277355033666729178625676812194606186656617658467032959097254976047533562983344662312834037593338456701917904459670680245610871205685033427667681062821696292682755982670580105549165309812587323226066343114101866693150004861631472474776723779144855124576528830134759295496520004818267244116029023023218320808793191602165050907851835138087229872910798303596080523512674814452556836718747418284352695765558374551669803639210271308933890008967623886472565275243213860916016056387530928299689954314033469799182560383320421681770587573789940970116768451039338949397750225038644755432758118975923425917894841606894726990063162541802754616081967048903227570773330597137403348881419935132360780768055794485947273059638030414786087973940596893316218538135350781802987817053784929335807359773571444564974551390715885072145858030787719967820189984270469631555839445477073852133789656750868756476787902402066324924352278397829914856314988509944271288588722287477973700998568059765082812340200821691333178868679908666291344768875599982040670160249444744929542675792527481459564680835914983596343329487278065661572432981242908615934493837185195047004695848296976976708985774299517450114362440307038854436018268578821827241140359630289514425067694680086798804083793657817390086378391453606113071694730630049629345651251884128130577123999116205315848736249486410244011873858871668597581703223807013739536968698282672897254346689745887927287641232030530293031242095577927680257422308833338844019585489360347040549739241332410313312872295325728645616766186289638350301502208928229001750617164933878270977650164934182624637060975069369110784287864243637106778610450764105646296502102432110388884179244167653985067540308398623448860050900077747358392617931883297106661460402257275490201174770655264757684619706217433386408810670388672923080691264153621718184944367633349634024106718053679715970558265095959164767094746668703735303969398449746144758042612805501397918936761434663999695554986237738972120186634487522611357651359952015002798805830391212143017497564441371503408793429896591289908172237015120805428544809562995772774536039238420853816756688746927670465609432809712803426247770745856107272984373431467400411833276672805832061241449515865110166093343675565028993042108674243980539636638058622203520727325305895203312336792817869874951158144759191861179596983520537374147604624068828037651516907686129062797742403738679659172648569820441925973494620132833537098423178650700784743524824268072610753161796289694531656960222186258596521810582840820013831784317707780553137500682208759899987445597748654346708068309372614915247415481575875605454340537891191852296514911378112372265608770436813931503313641255400626993275917380061219260711246639100105181622320805805934547580785594312047278720008698041601140329085259193360608039316846694700348360907180143791431386409964318432608339006448064405485925688261201905429219344671662382900848900353418701178690907252715937287285228328609499264125932982743725045204292359298520880965704239316925456407504176832465903963368712463419584559526657718715563923292559203721166499234399502221704093776987883884121224856834090226691868493786320116074172319480291750380420063844284561521059757046203698727528850628645577290913570517698134894836692110063608313028598415026989284560996104262689021156947095314201924206775314834550384925097729732965293552623324982142012079204289157834294993386920445229838329598331729285572291216783955437435473554479587092840805985157725509979262357908705617979175092882183826329232831872997269985729883396803186885747230104500121611136364239274296575784747576074418804985364851482725250012149326033710966003578159833659816344588868930242938860877499342941753476392005644447969879260735461308967286987272775255199219909247275653545750746424983155730544176415768993255863988628552403207973838887385081772592055229958264901205983512092315428791551413319567352297039742200268257860002226477625392307682070127739948086456392355185488010595981785629110032136336850508438336460558244910315284430136887130944806172519501537376160643661557398679943544612814282838896224483629045565660433810661922426843192066510257911330768299679358772387103439490829372707043094017978109078570609062802986946830765759535285433346759272336580627901453774585608811947739351381228273174548138632792024274735721568417932175600514811938561053856799778290971452213590992572494647304470237473609635746939064226795184949450770769025670548602037542202715126647422799189266753980915630428915087234998625598384228067046378457085517403707486885686711823444589317185529087058549841936384805489644636179919967942218489515136256014535959026106600595243704880479676408581725351323089917142709628274210002019459175144306983410562371577109833693093601086449320594815061915851920876218512640415440024794561928429298530740592351758710543494884653993510747565463172969879683406442904932427549077413809876184220109916720137568577358155599511545928668553795740876947347845414382520095987874177396190139440221264202879872008990419092103486352520223790765776185533378490459204651116851642126555908546291512790937387389750047463023974565125470724899393302725070712436278480720108777488972425343985498259083673201546021698848721735834141104344674255399860185223881086100154629803061934537921590230954729944482943657829784485394917446197820175195769037596847803378464861480582649827952492450970391730991503672764697362427306947887418542139040739356153478546152474542400475914362817367020965774831298915487148224931227915727372819211265132738593251231065186066239393269358137273455918974578630677528551006003841044595039311113032812814765694078473030650331192406446826795592000002564316034954167044639495122462011123767708571957341699817122523627341248303472937357592110106745328511113902663348428543117725417029147112838899869258596105367197566868286997043728148240044151426628247110635839257153345635856939877785111442992110515354406356408595330690027809349393193801917356743090961839851518657270045602123022187540529127360665621994150038612109676562077471823767020980520914701771182183136250167548098636421750909818927358428591028565132427095371135929875756645594530578682628271355685269177714734689842026743987614036013943590370455657058640639672011560923575882271108921055495415702225415031200234311382898749928773818279599409619104898684093717527040573363856168183033176356128772582866459193983974922731033809119497677599602293288255278810312839534706540622024114657770446746510333980640730636500289531388646334564155266304433042476503904828359180279511085331179293905302208928705056020098187119143540095514849570749316046822776547618412989674947708324073299565758497186618153899307537172444719197466888603715033330184057781848748042690988224184533804956857429636977542637639292574030950845297232240535976896011067129671342814744180374375895944864313789136838744772479332383443184929450353721621018461071419781109976349179150007113245224961350022515205963810563897195626268935743615465858484257691042748484039840465317055840474701852216173271839185897399206182239623599676628513397180765346567311503475940711944561125219790319713115696391792433223105187403081223159892847637171252666203123832706343255355759815424186393997586806578553357804768785224969206264429620922191310399106548830162565648266892915543282466231289581379300499599077014781037093638898462794909679028228549713857862286960217844880716975502036893166744337679861478744754172230881355032713290792554119349563996627264896998016841540153619909840188946070535616884691347490945804765642549009966356205442267297695555850336438688214533944701602279766937359244194737257593309081729264892591535658583169985240067038769423397797504021349423002440954503565214972434024723182004639536913131879189187816878148902048141706150292770274832826524889552695532218069935195926009144160550146301802491200117204045910388595298274014074787591577855685813799114400274527795369196240023353607775772140706980105263828146008444904336192346273602236240952101572720241165489075719661140483029239423213144283536786016530607159459829495384046371702258086268014961302466912596882376971871084238458665583305001123656160982765615158314986869237089912755433866491145922254524967068055593873812797154016054410503258346892795904090617246993942317884616807251252945624253408819796778335124897557325586543392146812499051845367289260709227591505675456277010528909476173877822270277156042021928052741656636782150028578766670410889200616902630824377980030566857088770887049523954310841952052596210567790675771003024651482546519581820071161022489869360652482105332087455661912252685532889263606087037101266813233889983889416612778979547342234351128631477395478398525899133459144919688263183365392743580999002534880563688901521310971892696042726782909876727171771963086579736247714426120553206854194060738592290850321111998744618801503594164245512751471890594178485176215493646757660746830184041712771382831559922969679191805544172870345646013666109243867227694093510707912665267461218332308081696250707585297787171148231743111133121004979101910142673428273341501988466541865954208054643929030184961938981957940289736489602952525134679076907449339769541679534187196081052755269735131706518789660582824031830466094609244715739526711000754005477675576942074833326751199487766101731872117537384620523092185936681585968400028456595649447246879755217077034378891707334620036839112875518307915781476361806884426645663155221859124993605313689823441251103719879584987591991368836857729011677876200116224165874648370336072640006198705111636373170602856817138888759106456063817692052468789701067919312081179724289914108057353833197828034297196743144146759152210071080394794398910235091134847732094432076622439039038695360320936035461298419734840441464097377402648436997754595011812807847728047702369710493810459565880734927738163379550547115522912965664327202635845699737596600741209866357916973127465956920722746645422385778909573609520738872450459456976191137436642065823677935282412395327752056424895393401665321942185587582552408904913429336624459100822491164372181934865787653548784111892334485018554116834867190285402559653468127560126504066957346772710627534769348426072608584091364877051215764109815622136645796523311902822761279208416182722359736704852581897405038334223116597833565767671451717959331151804544696813043847574369089879017171854770570474449079976910747346166122163732746255444157165221292723022199167173948820850437028659907020416375635108896047772765711757189250696020061874526913965584827630785932833852570441316472372392142257876852192838870080138167455792905613257809564951395974614857773631881943204405626183299992763445649872311236554275289726190110885466376345958968727441750507238153106310192247467817326276759552660917156695273996343731317302965568102460863917807467813204891112157455088438073373064747057723733378474404903841215365132915247289409463659063581713418215831573129682761206760943741533144013631364946385632581791547029658527892104606137315794145588714825170926392980793036256970365864169182285498955936716059448233730619205597096665184469836599533970563345970993343148802804026056933535025946069164164949417421793846573097036173913234140991843792877163361266623562250973960082220952745911215611464046529921459807712699183097641850246924412870708908202584957608786055774305532607442239307279924044830228259822021847022311081720970194090277809868199487053592478512053082016870007047233624078413370096400355389309723898476502965467751527335387937173145266317310037645113652345742422280300595427854266482118300708671962291898991154821534718165796577349061405816101085768412652167616954849431502476928556367883762183186465039569391184482575621982971267956238063042363678496200744610584175925668194162853313184515990319554073554740510475660658718866472819176915676312480558311338280407468014500451455130938892491986554278446019161620953505306109535792526684445504734323960515181820263361351128761841102888326229954680491267872816102517333442328652936801437877645673545260904131614639873032368102102232348009059021818838026125128125664634867552216298071045057850198624080352602704548403828257300384612399296283508481356052476083869160297244427357271181243530444877041866724159286000563484515401031552225460233911548856065970395928505841395667631705106536411590903362441023262077662101024841441892477413303203642956057461249074313772612227919975929796282823608352034906186651073716713492444567341622549368482654077528977139099784834614728273765686986941459945701944840507936758289684901188135566850217786338208739841065776137620048722066032484524407950408012192967307506901595018978426115718040355032661269695141491967225077682444560966256626939758303394379076663773040957240131460412994881653297617531158291544387595221333214855029295642563994891208144608331488387312340664891233034577757008307116792942012150375838932540959096546425027429647564785301001126639887315998842077333562824417605302364831171982517784017296599427503409223234284372825894099358650186366497443267689715045768186508381548735710097533274698649193810960385621637279258771127692942329994067171927965029540732951085756696810313492508075418086626970959722668860171486715978739781740589939451641410519572675453444716059005476796433433590708224692786014711464475521406343332982222007268474848751888147900743036810052629881973056888736827329445931477934454177068938601346761246637959540936549278604579901668987579748988852748500768509261622822768501050200871436899184654047831688336361553395042658215011764229001582060547908227177847978107909121824687963145242097052269960768863024484811523440456309182339498754246398628668651249743952990966324780073111537458904742527845020079288360245859007452752346796271594898408395131021542082447487471593087183186089620128389577686348724239800984167137410009267381831961946844766246276108826275308605313802034972916861137573567030262112712214402533852556215285464279127194035474048591243722176000507513116618685266448890966663830239719741816724801687901499710672710330429846953560593535612948833883826538359668048791418264570741954894625028502438869059764075735206150045730814701703235908589288138768003683142096655683866584132236551298378965396662213922498201416591715316815726223426805985979476047345010099432225768328480273634942271695400769716661820001316853532099710360567837725230496517875397118251953741870657510611015471897711141832861250398546890881473264222875245499791400592568813997110097237640969624427190313912645748832079446791347971365220009063205245227683111152310942783949714026610268425909690784169713735053146255083698139983158968510500393880416722710752960531552782354634769041480629068040649871765484825122373840804091490429635758078365290483962461547997189906971931061300388091600196934961501472988917915508783919615676259027479088274188193837285656436224579200906681404087077601442136527370065178413010542933053509580240906642975517989593352782795964989278633787474640761902743749132981852159637322587238002772039600908551450071305767034988558317950994657652258122739033975103309023667398090970528749458183336343068279935154043324938919100607716725450090170143564531065526936934601350294273538819247079384556026775581746943196428016715742302000643110642910776181673624719481976455414782385990860699698525413839889797533350936032091492171460495673603808446862008117215360375933413364212766877516074579758893737843607913597934650044879175251982850534363176560573025582585137384881425556675094852772547269717584989894629714833722953675253826783880032434121178353642096866226439313361772172438833853965041515293335231012332962741847338356031634658011681311544211737616480644049843510026506027952717676135925403607931249528535891192103287194728243626566325763511366033133034112575110683734711352424265131586300317512144233008282395915328108188592772367309621250431763958292502143080111123687117978086695601177304833568971565012699919189996382287929257986406700914822681581415973848652338158020702945517038214409245852521469340811534401838340714380372312110945813162741592504358497312342710637528737183285846026245508809047453877184030094370655935561778763915117816221422135164800772393473332367455586375465568592811134152482172586980905064420114529796125384314597873625166385030554747395137870063084813313416326588497269970638238326704649192249157697090139131827134092873313078381550225974383507581178707355357440131900838303029048651616117513786975458579743267060521558384728578513673152457027683459464386541110423111916214517689487193756393412355028263806465838557501164238309082394207248732997217895819404981315012024933967098832140537872862645995363389591699086148769418235042386791329403444453913178111523877738330054952968278944800117332482163728667931234571741602041843103079763919612876447486926510554208576907775538804748059178700999728478812935209479191858729994744263330077599111297897269776921116606024989690263877866880038882422721041514452320860432853682119868228669204562629048340835115367120422556816721684427796676555616735788949190790467361242866541850438132752331985867100960063599950311948738134532049784522992549895812700452677114149266073663559610650682871393883092954126920394549890049578449175326770717497935778854024980776327872449387375967432740194643077427388473899950953155546452174736867497347616682821869924358890412976721982343991051446103466570900763163949929463831957619694668495538157018179664985238199216583475441600929416346405293910162479414815679182808295844139988035011513461865499894537605573549263428291153647361024775704686311269306212819059696703135547972846003926268428722018653006313696956221740284619088315308198785998770992436598782976944327475925267551316209290278335269072395795356145964407925902663943552762916250881430199506311865441998291120270296036449810619833138645364520243086289913618197099461213207299261742727521731987441631746005638807684391153998330065870908993499723571149755128628021883992636162523762415609738206412855777200929489726143396104976804583919285171238136069093316819564770502552845096394987955858697143862388962572197910331847658332339115700505503084717383846771656122788770601699314975323453639140256423631310096356485229734285014285284126266332847013738349666098781703963309974649791865010826120891317936409480765839891199034051625697513440924270862124873924190869026122756981591506961321304496926871358633245342497510866339072059683687155784975821202556513489892372508087079730025398165962241937022673232979787665840371259010035933130260663773053057699697481050349739548951664995339595643898602319346296104957790144750379633440438967536170582857938132280626071554871516307323074443096360737050877562558095463115969134577408122647993658157863747716154903101458868030714035219493880611141964001341083040691055877660712518583957377846991867166598028119009847251902837057784175360911985133669721105445223504744316387976934497962504100938487375418945904938080556335608952280495957132665861102740621028663774442068001144003622470092684309112780048492733793863382004409366562885210602158672409887925466145890193251373524999976014251970301085070100323529933926200238184767894749836560623274092250029090699376393420366544851974626304711728722935855744309847782497300917336269827935936047448230663465334216651405112917221023509605295221185876749556959147275013454470144035424519471594030229062407892531576919792727436185395127489330079610884345959323639301326613215606566940789568729139650705124969874191411237338570182869648835876757178763916728454122647679734445419539696030626512052333398171550508812648477481625254107067554577950953192480900587156535926488535004702754713877544461492326679953482637507549359967116928277900716427900002957588454645174475220730542942832854866332381297234884612898793452095164281409801132875885469330522538137242167919619994482318708343441545253664769055011770190887257959649688737601178892301073029383204158720475842293409075811173964568857988023654030652281190322576080445560118141717802620582380060130365980815297305434228384098069133822808871977951312556736399419072870560797882115556637413546074468424925747788707146632459961290054660644995614233538850800707943689621008094750684344103432064104029117548735025433593357881363317497977865564606901595016776962901858254935584434606653264312975810581071187748504533484459223184276742631971665081389062976058338287480183007310260123967699028301592756360470180000846058484872806224433051222725241927317680334737194872650300428126613021749867695803514332203891461372878404919926715719801738613187154060228765857714184480005001319759451963609936835038845957292193212820743603144812500412682349273667215680791016352253127942493153434508354680625082264938891374391873347414196273304521855896578402903469164030972831622584671276292464510094566265557094356228372462390666406323021143537447168639378789704536885856603571552343611526915247207787143590857929679105207856279832418481370810530361545050059373638284541021100238280991379155308265058686550901691427537244512856826551829424765965356252553920700593358199760416703126640232661685387426444749464919621058146093258343786658023541378417254995550796650700083167756859498112631071136661735150976912250205663806889922655295222295498820378610017359538908882649641194476744606474838822365531520258867417759627264443744719286451885284177541210211076394740785385412474183504598820278516788735001052035256750157438321661113353508662284363374236499817636241673332023011466363223851256196346259759991533526473928637308449536430861368277735793789119948750674921423172497350972670579310794806885901715449727285311790498220511563169864976989959956473657946873544018305935134753329559363472602064892134528638083288350573527653867087019267110215230916905737943067950218975760923720456150348040327279203007435347754861053016924353923783785927733744032251602018385580037515197161337164335968181751028667146862898771062816961442569318591388109554430584369529523094294470587123342008442218845667210726043419562692067111577786277515402990040417457550687709295366805216671985830575800442914734026172178874819931463731706676013325613489769169108892051554893632563886189203238899902665677240218889324094613901069823487612520783043023859225245129519890257442004827971881972013880374673427469021929465275243703456389731473866276247598807749592011205059289902511263272954354715219320698553723064669009744399563209053854430340375361638584822881465607193605761229825513556544715216507491045287951195692001605688408375045813419958049684916826105554252201566722546442711136109798743977711030832787813167718065107062900931129595238665323961996005406908505243865267866839389410857881055426996918473708541466054063805805046540511867132865251651679327896601027075037309453875709805067220223120769134181368256483295238804432288813470815847824831152793094785673621385387954573446383269089802284119381988460418036273619279269867501144084480122184796456230580711142867227072697308130951315654452905544248453705976331466521632423986361365086091836159407839560729413930234337995836551776131983190750602213398108213585380492578287577985382777449702733457241132238544550002210469656294797845052324143345232316562153441807024099963884293404188178180541375857092687076924336949621539517075770461554476046354058516166978470588467959969314427278869350802209736363195845547549087346609651023391427017787609150881838318168153464255507993565533688827864283772444890608803801199033880798136658167357735413713248544359677978302634801702240957198153605059373590893037168902333296312281390390089280370912720902101528258432435468792804026382823775046260585597446860250625795933556543568808092816681964103171183324253704569547030281574241229419086360826994802931531823702443290617640395872347901259359470845219331674811859818921261900214814165559380463203163288607322941087984923215897716304305386856963785235665935752407022448822652212693184022108894596684340181118083542834122202260329706559203101135548718718141978312960521080648138092270142073717430001088523913136221241910033530879994845141146690676517114913434157977169839451230032301009860441008746285280724434621062050340334887792455106113765957004826009424251205912353107686987143694345880988937571683249953897836841753299040729802489626191269133977640416383463453528106810515919789015031708941441875022676988349845226241079926640309776559841864061344918639084034288678660046325123868513674236695267475574276187004706729455761775007370501299807744268588852442364013174897500398515139296821066819395279524617562654147141489738649155410391228531277828923037946200228948510154346239923177660255633813860938115380649042671668474736205628410094091185373686724305064483146242139120117128895135731524287400257193451529315299453545836283124123186855748618235054396830381723873396417091368972579803861530018700285492852044616215800924467157747207697565675666311067477540759517526134129100004004606739007952008082085121663415848277792458582682272156604702504768597978489826788464990066746343357483438401491538961365718745377710100535751500311004873312564077321218072366169096347530141987793907559008252845679915563894391183085814663797289273430005739869992473943920172770580154002245594059797849603371073549147909795884989652567054069584588538069913262403168115607114007319539655048322010887046132914880295874862409121108304521587317096222558263802973493250548127179875291426550591323449431031796204405170087384310639072805932982771998551976998095205304602555222191443005109045936536701427528505249144643677892206354662822077505218785101769599021517201244167302964558168012280265225687711422256600213629154176684526523481460311950153735072774922939188480169486293040766174010898839877315931519000300897225385311861679599389671735360528459620593014985272223739446308709179899775842914660285929289890080044777261504945458777105906016844851709684930103865592488368804532162521747884208563273406532818697419493579840597857777084397080977554791471944860902761396803275645885878172187201456298472560152402106583984814385785714791872473568410517377643606388660738308927070350751189455921607374638272531392565736935326218541558730560773107073298627794074402886100996753105280847037271632758473876594167241012516687038405073880153990741246975713769042623254978207870805428251353141712396299846472133186384304684363724426465738045186736575048634112770309685838986218686739787522527241450992894057222863826889663237671360635997002268167224526987578199343631146022160613045868436474651982943768601901457451504615232117266154954851555563127703987319213905774374804029543528052551779626633699039928158213174597068781993506421233382367500012069195430419380738837092276905427372705179000355637709726852404796771036541654587782582968919891489053462989087058179611526128885908843916202028295093501884469583377429984691287222284370885412943797136897255977326303418918480220041709451067624502363299260953868085193114918323868816601809262440014558240680304231311231101559992890362567401800066900205789262769893586375798873038892342505469345725916745350449418581035485655728162699424878654604628956535449023251632414880442435592024482335648250318251916230588884408859642613949052859815490997267409974894664501238573347956994663926261313825085123542710803059895595913171968663957148642547101616432236622872826637705315714381863360436196110794504788695632177324280452347828504764993628914538914482605226011846580423393240062829523868413801568758729748947390371584770718795998371039672176889409976520256781050960096410670948177930222847343601582553867132804427818500687277976965464182840176517695480476123423368692275928948930349814340199671412934186121900884795363883772664717268005984333510871019803363306480713707379176825772063509365255220788716291887547367671678488285832314720520122453872946078164430102467206057443705675091603689173529574050027367475014897916571306099310778157934667216381446481965692494946464877329027423495099906689911335681670839488943789902579332001292279567107360156760145471909769722032529761076601549016410614841420134432054218064103398426767712141302010683447530382734699021761803887487501182072306070159283422196272450643848633056750689480184878896409680746698329981833741421393795720148851557175347115804589718380896430341745670082465985874693507525226152915732640041005738038541476541404270231587768302013840282837613371079380231134671708718964767283960392474098410976616943103970333807613501120405571517200771372161681639469278088752492209267988328044052572379822219668085124127890475631904906469030925501381462883697049844304086940337361111676842022412716736470752730979847520883176729953550849357791831516218115267086399773691494886314318821175892733036744832211841507918638385294331443357147690260323332676590440729025539097252298007435440659970547128589098690880139895338356640764868773666266189230393811492577342085761376244231493696652498092466469263296602414657938003416757868746744027556694909656001773393976135632689490716670090236215928277953987928344793155831873896957161120021492840280512696552751455784314388147932799641470863806620846050870430182650140081612751530570152099604374663460297881350463325682431844938198671679502541351330505493551764968440236900972372555506415062201340815262761674955395985748207879369791792430646636347782631906462720116030191880433175960076872395960286026745176553543886992330203031464728821357990871759729534453752225487408061872314130636012109681247881753935109600073545170180943500652500285048713037144524275106757806664789826117799637188995936635501331213592898393798667011848746178196517656542346677813579423052106022627930499591814349331543925731602053131913053704529247444069562680675339970981304334075881760067248097530559574216844536202525716935991947352354737092378214474418583864876788060077373431692568434531282542700366620404394941023030053855328911981994314477147381819941303669684746134423809398799062818674575089555185966706737229383704926303779762338798126362656222849680957303343501606917864972610133087447427924741513726216501210120178224818705005176376350868524412934437336582587569310495081547925816383604778285671339827411126172311531231954970390900835663188747775963120783241054488703867605631126283995651910956874441344800558537640920010202306570956760903849001746416117442147263971784849564358184153630379462216938282588637511506775694990247591908331876320176898456084582024141997029449971867183894065830129825455775465160023098486144286213635939136799739672295363648149150504050803510806817037872086348202932234064607991253986301708921603927732368679520683356765855265047840419492564167242661700048447058089872734678862482586111445306860489647788538364450160038402190258773155569426894002780899103651679472493576731430407798050372583709310465913220368268435002986055084238091879530416244238700462758252644228537050801772197458216843560749026509091324644143013523564256349306994484416216673714621233016042901993009286801552296114847950314231246190043704174101397313925411374004830923108534150180988205478096770501677582020141787616180882024262459815437887021784290036670956038193278810503112719874002235569156695684676369552184505542982958798146820417203946825392902439448931900946908981211882437626327504469820897290673061768797735783299423803117898674861144219066185747939925256926275309480914724408318238074466714586039698834509355308767949521923782142348082814389811533237891776669565669635138864673721106943723078409108779703071953105969337239485529042333822847303709568230048362344583195177270931806715447357405794263323306964977862166650622731001507407985048024054975516866444711157303835502890595930659142995677363765485432755835751883160345103843267784339056136651485531788293453167761692704417796514463998628597531718221609853330657109274210021972531241646015013858530702670708716605853418345042819116377397242529916515013178378507883609372064428254385684039314747119257031799094335018064396521300611065415480679950896581952941573254435812404517818255903860273878376499040510163935159699201633686303535058724988557804306288955923890515594518822988029130455432978372229962352790090211280024176119153806018472693619230292045347127256587919213816387902705583591105788151863956278833369759717085653983706238351104709270513283614055316416610369356902977966884662506031793732627115014057911310444582269451097064623026658410784224580617978552047803739007170467251610661952835481306001930021443207853590462968563537517595809867811170295616849022317163054355068465444570150156041805410652711801254513397808700021964885206191970381028146632442532360548213483557262122735758044871343613678298489758563439928913043607863544351528947776101054575894855049275926676142111884653900636371509723246576672382355884980127563246632756015156070453993353913813763391458337195808299669942467944389166290253543993041629909758836926102344650659434932881106495138866461082461255542640120861529012147663190121883704026479610014549850567139003726592937384769022505782521921489008619272320346730768818386915403880516485631968417829924852240467168600029229391115921400175626858569772220016533553199813106127571228261900793989741404481248878484931960849973000168603328441585040821323652501943130017685876173492698251045969664764244941376588352851506837001507854465130382411218435124528530887396703917441677081190658005310606687975807696838629095864465911520424753058870063320370200032523672497347481250429724578242602048892163767419450855137898087746162053926821634848993630247566551272514360405184551977130812924994168096728762575713715279194666174730326261227706589023249182623987697202630042863986568870856424072126330019340086229432214953025990916599341087089173944768910171694710025501280899740142700465226283679922042946964597706544963414969990864495704460017243336428974603797844919414282034712116578693835637596030948827712665143234920649697828919226807904292136405857393473430654833626758730737625677343662392064111280404083788999685039052008035532895171799319258791812171977794923414374786627645366124662481740462458030287356923978113852113327942560032562829901785416267029464108597594182075565512796033778074185278802079944546851856864128795369809978747425734540128300136752037692312909879139878426026697921012335361967830818224364549412599367923852733849151453121387086612871759675673609887706301371308436633017813761666995090156530191312444191554214783581565061574197121139262955867522642056179646951661449466073233780132830075302494397895804196677453960599539479649757827380194714880470381465939336966864136534502313302097395722265672261690002845602288018294861558457758472687245611144616202690679608660750294548265331333608700201371598104620507681130400595718956757440413664150703844775504983033158241910916191871764605366697658299563326931872424930253313050507391197157967641834833017570437103324740029521935939120462491437933845328823884854470994057667138005632738333893900621342113518171328960705240261770064828648688986189993865754017766327681053566875706595471149302621506058475336901824893856950031493627781078233237701192544920825360272681181709574875401119749135832477447312570720765116773919842947381673095833031729678745516981117022942178752041048439303726304854308666329481362657842548685429782378844278426850642300245468005994473631290146792568989746911876122824681492519191517492633232195250078117474586177477518371505238205161645316588003544028001975658183427232651314147160997175277095524095980780730575607856166164707913577785172561208756100747735695382796461051197999194622424798462927636957179424124662249815847754661179157089960130801397812647094250225327559296222114077578393903338292179067976020252632495986742147221630869267192918006172497584703260809267694542677794123486049851928073594794026023055317692741302395179147077355359217474825239077068086396147655041735901866597540008091257321367295760420357753239382109061618249106852530295833640878340585858569779282927038621117941953688484980533121545537233759670244548907776491612512345511660191847429957008550406442484469305015515961640076704486632219840250230477443537823660338090798503292655548645175642285906090892771436983807344113089495320752074034504281597797193496666001047512829128485867072965767034947879724376933345746881234273507726647822685310301068516160870347587616875238061578585557964751016782328804866260645021280701619364106591815375897231092472146462765148765432651403874171391279172747684476242569765023158090491902937520541394499531226495491734627117510439991050655484871399368180411662161752027462300259538113179006396912673340886210231271731245203465371972826802197364434277980002433477868620609497780883742021298412971461931761896946538010122002700633736342046058435386835882586675571469729448406121529861704906247641069580842603248725572541872503018346536404992116776278773790067280763635346248248718849917241610106984081185785479933735293224076090153096754245947596538443813341894277139703432313266643646739316324827012432326148669732342722990323568579956498121614991443751130367771160334337520254727099677658256342438394270947362763468232638766457056062725727575064130367609728875998059649262652284902571139531414873958085648565354338829660562553625614839484232459597802927638151284684389312147202014616190110419290918747577082258147505012347562656956296136638770158386969207484302697095410960348868176933722723306850726072620124032385868238953420908068871131077609893281437000057469497838127000424280550970687474681881186443559678390100823742889388889560445645407587505335198677674215067348970418452748531314263890223411994530249809880261085968967944373860763835953332482020534355603360608489501439067373292927445105054873923735661036455489296156476490709918777434525551215421109807377850959378254390937274379190192490626093524940510840004259648178561591386061724324401201802239719771215780601322664740809087543556655295545939399994086251178742689700102527355779814830315165508993108336749465573978627769203147474935947439469271974301398152475721206302774199878279740877135878151408446645798088241177851152418214227873069902693322249564649439301651848900511410805459695058022210432461933922988271827214162112164714045999887040139186113693688552699658706545066663681368960039983024589772877783458071563986942851718667196706245213837129892739696430229699298317237792665167422965968393588338532144480272494706355088461100971094115653842520129495149883788070852089979348766977829748464498127208834755871671938841130521022998627380902887983245242561996984010056887751048095961675575904032544444434302487542477890895603223793224514354363149284624822580001289327887947967001113334129020262599547251853427980928292745059144528790270945827784458920770476746557270513903391017491236585490298736782160236296988237939655191513147006210789235061618161419128197505510965872176769487338291978699446047164629870639878440197639483895122138548850174815985660495849312121702284995236422484057753054660089262491577428498289335720199518008505971709299946765592774485043619007803351834744941902046941023645696724962258256963677355927121225012816368730625920618286082284208701421804209302905204351194050635950477250288926521264841608644733953315893291654285990929774610716849128870426300275283173577186682183996756714218691291421712124775639292503514355228261477788918140889798890796451147095272536264593513413591883216476180241743668469955550943370201904900420385767323920060611914157248350447631527131967810260739682720848885097385015519967742736529391680018024791414467609959128294758826170447207032894780207448341631853167321097457631289919548860367603261654687841715494465998657109086052057018138595696544517901001610618395559748683849553290905935866370623354426191994049227605572049586261195718362661748365106946808902768184696244361062035006976255975272106681660326488590422262791292139004136365921693476156200263258596181120575320017897803735653678581691811006860892394156759159331385070874372310045056401103163839167330820553399850576026647692632559091299088541144632209506307858611193684722783586734108703169936067025376962804556172301804721635600705492876809002782215656248750899037503259005869477025121199555652657062969876527115046305053901735186371088562427540837112956462682109560949222569907987573860450297281793491351712648739122916120475375738252811237795886224639439610695042332771914091498630275548241070670758351285368082557646101099758307791838345226289712545643079592490537087659497788579072924938005299772111031434842960815780381933434709801941930770178923665235565655109563604497172763242315523489469389768757483071512744256502284797992749133464969337476416527194258989161292439805697458998200028029889747961434800474333597521650852741725214170685578871901347344452841420016287250421383160132296106799375775879653029705181335760645590123243731601549732253175388609971393864609750718537128000765667041784124598333324261594159052782720919179411192133468011449375203988188027466946181909106891587167770788832259745037890450250363996450272259319002386843601969632480700241705474531022264196635666272768476950879366047864641228868285088941665386040394396672428276817197402005132364707262320163847141586385201325933695215975426894094508394253435641498127641363442273418931056931180001260038299929037983805108342794570688157419852920003620610362941598112281222344506461684163183426112099769483407703569309259867622306333606746526954710841139578499631003955465159755724564623489932074456771063524375626624549341934280869421945100733348690346059604504554893775133615183831369798833067499496983656794680145359632290121663563762806211950044908521730248709066946066028244628766569641189407415741409426144929263939352457396346997903386729635687557863617640647264427906387074182597999496218091918977227843967698911183396999739828174085319991699744752579469774279805003956058563400586289720386523150078996099118246219878351067416955608323708330473058381463224559610939867790086790540272131674066481934915070279191086474351817836303565302057654675457655051527259072333008214698826707153408143691493426828341363794291108590246025142770449128086323675800034127023679511495844531745627810627460337374082667862914425009524830661234979186285386068513815551533031318312854485679216032078371846852213565589069969206184662337000489159777005433288502073121925880705461561517231366149457924798672482963302801936495133661097894783550156119378348087941198820992574583021733815578672383941994843040515536509623257434640764895731429013647479739622798199228646118961738742233039423680693897053602313630674285144834775118604920929925944339812406585509851194596727111137296289722620508575261536866555839780795922578498054794262770134787802393393525409098088978457892413794128119532908139318299043285655617938156521000051893094072234212123657228938760668545541230362141250242752753332971178528057801981276744312593949987333751408033307754593680479288803316866242667588057859993569924347688412177201582965523173967035716416194000237893599686010383590653916063861881849524134949331244910397222847132310071185777817862693315867861769880298993962411801093425727065772455909241256841943073663136055852573248327539073143638598276505075169525262846279610462661416285606986576342256935104632984164044791290383667822745774543679492268743934690215382913695234806047935034728811647552893538529976226831709756218729731477874336693579019374964676340334490123735841590789418453684583051359864932916873865075168093914703345461041534245048902496159057672661241093970647319735301642427978143571808606679110392906180873976082054234175538150729003794029995979737735262551222122477017149920229882181359316187164243926608561744165882453413958754147153974394324581553805592323645645627186711331308135044587867938447588989912238702915403141234916982079650838408967074569530926145024663111128918638316687759352867971040438929539519115286708745158940958910040006648681034271647837624092734293529542948728549352641050773310020000149506699972679009241583450490102130994964890093143591451588349484046636376733348779326701502487081346779104792196219905725369731565507331178374463042673310099788579230031527618714455920747866369072985997894390677951012719048081526681248089845395415760471131860476786325667934547602181776783943173610030554332327005347205426659909950240277449894509638520848140167553727729939666379625580047581288238140834742037430186290921767078198808604362889424012488799575571616327574918998975148813185030920023910642809590943946976955806488464942807834328358307957887375521114219385368339684869011809656930536156813689817007746629423665161383728451423056170607858138070612903659314627694717647938037999649320388002359848738859553092955254366169765971506895277752090719698765040599624691740126634452586284102265982184393304174972707320224986914008858922350229678403197771869261571043604859570099586377922245751207503632856769135292389284617889673965711066960019749887081471701712555328158483887383489696083784206989926440417792343207184682199772617596106594760278200797956938981296091989356260656678409664115655561614048732778213118340850267788925833633558770773041420762069047100662017601898141223883355066988491825729889397757848781470252753764735068135017849265470909217732987125215066720673689975331062924211027583400756865166561493372364227327702603381954162131737672191803607373855654090539136821401313038694995842514652682322845770567205070078177876646597753783449916762735056147528507839351628604036699525661332307022563081516306227998448241071553397638732262540939033888728476598451956959815936284630200294505666230864965384567428358640970305178183831999620010565012580689090789149031303180361536593269924030530540968443266832749988072280701302803740135181260652848274602818407149380658036269220088156587002822363270072360275410406361273218267232790441445472430957246733143851437336499975805547156192378510811652275971030335355039115271914280191637647416109529501984465729793392221796979647838566995375590151315565412685745130344021095036767445414119417125163251699068120657598616416185057949005922255415551520497754056065947939486792746244830258182239779159856674027070332528902866080096471267633933455642584357691199623906242990321150368867991508162735357656340393235887239336815502939697599581649924114235658796061715040859812740679913069153477197015172841573123883560092855332550237918904934318543232271672658743523035592885468548495617895553207839453355066496594572799611885005930081503362440331844230160224486862452177689697319315613063318569559775824951010242779722053440498470103847912375443765697262563000633467103972967964744404516840146301539741372069827343508582103039400235781014483967974008579477345743772013167158743089044192232423661424224665774072464673809180701825300187860270122093387197426605728041606546949751738517981518090409750960398289948236060634777223230049165979926481368631017362468495229810479553272463305682869764332448514923440983622560967383027551677046004685597965068014642128125906172938858118970135069976380841184383354982720631901747486530460087684708943520968221438570762836506962540546214971740220864457760687045550038823657325107405788306080422953436029282301301895449904986990595724437280265558675562199149057054084460427326706858095111039312648080901116581670751805307433080602259189331100537134276654228492828225340835696633366753796756238638278128456478713263656836177046620359550260458751303800183826607292232401065856510145002781931338610816191747357051976073667733726587021105576863443406790782083052042714789426654994680481938341611882922026570420928799936450318692992073628899474580845607394491986957243855933687229164939145536226129217033972218950666641329738413189014454532559910482922332509632860994115761474420412072947622384422948027899286915295792131171279273753401180387807780493108443529572071651915726140238999467384103963417769192263296182286885068844007709715060635346352606645448933966945157083931681855015933949463088091964265561969288360651204914214249312854426998530478457221341266126414228275742123104685502614411650457463029767559886324844417476128950327403807643904352596140088394233447382603272417415479814128687946366541873367451970001548575362231846970108674344213700756614069515647365847851648355259536682367428174621442504214245834158818378682907181261372765456093708038694834535631690554008844254428408208211233185298439071421403162935117563957042108879233600853248458736683062232200166325752617058179834675920416695263801572071221282993117636683476986347330551116840777641026553062150213347019682263165068762160643011713371744660984560825658742374255672286469440534873706630526812902909596888442279130371280402351471082692504276236721815188548886764302754329546115167023428591284901057031683327856185901531678473095808510241007889012276068380219415729573802383817228922047332622820094033092314487933980901473187831785307061617445260149807884482657230038116700922774598967786644457654700325015047000932724851984321199520307559754721263187921617822151718479905291926994394910617567432339669087231099144244878829637311662498093160237158492367083774910409716449875843323803507835961648859543563963729518154782761482592011805897265368572107626489932078964911971132568407636575998828127203370351031422135154527983908794792254243110428095841614460532061729507056062857898215395905991892373675838074530116981331837325149734212302695435623608268307234267115725747385264332647038970551280035590468861636703994907673327604887395836676430206252618896605976901717365498375820180378539479272257403753806613037396122382238801330737851670851672213482100183426465211806647841416797578273035219173823455403160689158314520608846198455383697973455836805505946905572029525543486151723778797562261288080172279476502837492415141023101456741703358396455262825076923337208560065993516311034267912223350440978834672121417213394557949668833724296473642618869144391199706527585735749081009884589941684214024557686440900340179124891905154901823301047117379050057819244221596043870514241957239935652680327841018471882153969912414847066982931758482247800679341762844278792214108560748956278626979237929167161857336009482660969641689462044785200926619794681732598079608626465625061846487434615614880230221490947779719672945740114020201256357938973471248114515615866044550801130978342265052331613776092382321754080985992378291186566489047363126112667612040895059568424287452634541344365668222557867448816458063372034936180099891633769888237391571877618273115291561574539993176078544909661873729053989288832326264816231847028677004087953610094898147032729583136200397414718374215156777191240796296854032527899182863758845542042684957483951885462427976998017183576567024549876094923840316168221762031952539248154078028674290925525575683047694478456403291475264155998641287486882000108994547212728677365244864048501413478667360153850475104499835301319542997766172555903250957981033030157482169769581331341660340811378255280819928184775545670445882299526364511293963081774653151195876798572162712699590939054650349274070903721185490330280090574521194794964214525433139957992501688120466261236736990673715946694345854477481274478752767174028182009546026639022081228138786949360990728084452167892673500790904829055021399350866861967360524936108994062596846238189470883870335337935822466559435294657753410389127262873751718591710734588331662104749263665329959574042392913993326657957842915120390190885696866315157206369201348673767017099659814819689746670755671690032919071316200051673127309951033105670705782505978101684124146401519345792143012564810946326788398196025747431543212783771721454212215765661699354826331110907897844083467081245292284193598712633793409595833402391895630966546910786753162273310637361647340994526385616941953539099388987418193559683936869134512090357332130990883472720548618361034197131136289811184380955918922259227598321726492006888529890687767648090785974169310376230900216495252317162952476952390349230546466158721735834173166863640652652425005325090564679865426956610887501838951726738129380864878370311091791625220504418112681711952050289089863028002240152157406894206314270509614747648681233526166767852548738927736494796339572095094028021044575298950422176216736962296409840343238811382931200174632991581763902928790827756027358767454906163999893616011903667563350833290293462900207707799140420198230692607759924747413628776342525670151735210957724600204432973793489582968006169127853651799569565620432532682657144225782360626859647698463718286254420578965024242835667907941889071842445564112265834961635712833167808573421007880330940130763140575762175143254244369618438350168239054943888089184523722941323456672018293093125637129663369505027343068869814360084117105466641296496473613271010496691726421146052804536638409869013338699630629740853389084411210083411143222788149766641223789756983767161619696056740960895492830428560801008813614026385808745058381018425806984855445254988906513916974195811506352628865129250667636982086594059603518559227251000566284933115645872738167363181713237085513993885603949091944351530320469146793167033296244116045269594238970192556771603572918580152618147413227575648608782381021369742770544782630619540690863980714422272103165606106290829650662573254576565922483661245120911790202316859906684835577969280858654798709834499729695225927487889080109258741918501962113772439915092578908758674981437485601142581292629736164283651368216851929326415720192901853808753193291320940105977387309201657587759165530986982671306255322759000369484155186193443065045096140631269464028724596613951286906918535376805231407574845285743460379525667275438574459629618714262327023863201319769823102963465966806595054605884878337613380335547997241408377334807607527349704284224293093812690244243722065680676372978563462466951872193386706487230266500388218983027044828333318747998402836095840928365503782887958025491178732350228138418158116479825779436802072899051291181664781209943534834403779097266858887428893151974460463371871846653018509606667819035995214709526328818137309943202580982587669943959494650888783507721272581655940264087080534358632751929672781518941424722177999670101810693862877146852827545009445251336113781429693762278940176877372348062895253680258340550109858625698498842704162155096000557781301578112851538125283768622046785657862237638149274625625577329900939321788008426405195400457812670809294283036230548805106195919367698152543898845725329515872331477571608947314724422594547293050591519115956222133643472352507165062142046698566441681668423239763412700677515823156356321961438681363043162315354705372557611172832363032290787925975939615477507857544966431504420729523462945716166188664059722420222041581548265580004029193597125137228801729232926837951099894340753596679663711961817878661247964966895782746057996203436012548055840031367404733299511996459266184800970649403706532221659071439328323407620338023281965510114414135437937951841704830118589764134351324198755838504343944125368859645236599702078976387018469974381642132329889571022670283042444422227252987458068895108065670979026339668320388795381094619209357322858378453889626338073200428091680934613980772157587632404484600949213689390881718414957298409872814997505989672860784039738711432758520318735646645422325379172122794791478284925032403292997712254426447819356463568999206182213684195766000663421441115747158104695746117179563575764987673275082984657920757739995258741608087281644656020848845999656833321676985498612889642223590962923362803778483270468630192793411320316133148573685858345787120486713905763855274029156474639420714751667162497935569724409667226074252833132220644345075346193182686581149508027495364224444110108523916810049195154807474648170098053338411067438232989647101503107936065137739227960508245845952890547457652042767933323100529376810434062979827935079946764365505142781699367088345156998972528015688777044758587145387001265528640072126464536087800007038079057644488990520700699347905552412962409924642853312214698678009756747344247006750523780234368252923800751800178833857253021911049916535814412079399856057825445622191211956953456671322904267205871047626995617478327195703461071183227547442214567553632667908179421523359282065996565272485705658351433701907079634284586762152557987358159740396967480162252316610764909714479816976202024437698164252443689237271573303836504163935075836037106928313241588088718033388869775253358110197654907994711064707371289623178808863404165810423210664133747764599980525353682131092901065192407877983863151469235489485589235076270617596719440830085941212376978726006287315071502094435182162403241083668883265521800935902247471672572798100507189630995433149506799050560373383644886385154922986367987686992156228449816571244032503705702791247219767184259986325805229490954065421140758244648641871121515092596753117807062120768120228825270985356566068982626748990202730750091431556694472305586246633129417405051966410791550474936625291811127196566284546040913904219834658387806140132984259540457335183849109332437017826303939493371543866136699994550269390577168256327278903539065228353096987747068802451452842226119738110454834552595848928202203801926991127953086399091657671018131607773168758860392965410782769372696124018819059987948172419503702482198988877101111999365215969136372946635926891820947218924025476135173577435023932284967411041729135415502306655105277601380609024135722012663171033429449082871859990138715639339953359645168565080030676636398242119210248958009755900858521934617893288499188814064491029713224438955945214594740763098519094146661693324071471781113336245911388420620611079931841122306048827166979948568950894358983187800142062367804149592464505351375774764796974691763070839722406873392031035878455129695961687281997667819213264915901012600627537101016833858963225116479456886149279583292879958788718405641132215098734145198711290033768144393239263456120675090109344021938296459826906194677099637162705750132931289076833035601706623029971210283493958829502046083064124413794369849850310328961449637974744835126503930223011907405162802627598659284420779175150437026636888114024347382649919169298441614640496217259580494424259637980707655722728957036087900842761506148564414502666192864645512331880901413535030112978744253603249609387167684819690402380697149822143979920485390770379901572840552123644679057724901884466273863518821547043318230794455617694618499573997523721039776263353435149259892985296188524563459950295066601214807032024140472876720928151743686341899247860278283262160338831445131536013688865750388791013500112574927707026501771752911055985424453624367380364546353869149566205514705470470502978667291908569550266830636324236680739734882676429712620998070645555979029395652654409167949439754755850001245471546071918696662359154144170928244053797263149405936887111035898853722783493946845406326474617572592974818042356610289218437699008181979148734172693999030780659456256221269058218691701141914654652820119232561425024216426418958849898363419680410231128633158685752922218409876413905357966498941642138592870933546005552262407874889962194327485571926338251902867216631068613335383918254443952612996942630527756429681175984983936100620887597278920496180369093012112514532017380550817082489580213990567265625684185252374033345963441866737137335680209283541048411195353896466452298096008384161984615709561840766301923474791133168910782381234137520086847260386583516981185430155671562342045746176197892585493261923696195907798118831971078892951405427836846058540297931464822885516158075349047893123743411479726144848772794876000157848325531778682432379970468596810899292287708255093166443287048260101419925001640663724439160043843026384601296346723406667025155099314229280135316088811722628820386194749582275001184229364554146030567825829232594501595243090460046553478759034814084698466808152426553490149262936651089574051354799151013408228620518124097361400084385846255338770623103191089418386409683624394148374667014351149226281716256373954506832766058785644889237702202546773566210000096847406031234826149982633838452455224917187159585011811445194404644905844884582536188704247394667287635542739873001710939699764102444154884267804323436400334735098622398663429829844329685748316900501504033159353411068677734998204264961227633085555462843167786746232818484728168913745517001704158260073581545818661767500173642338407995462133086698498123035067889580376688386100225531026773398651611532795855167352793447927312621641835029601990756472633505129574936739547009621022971881996433757609032147366047101221552197207771264845001945338848728271957053774593312148356825855396897128940891167968031870449790543238829584808221898290304722322658644563350263547572994504902224052039756165471289187866076832287136823332082295850719587447972204066728075345849294651799901226486419495127430857155805684075894819268359994473523006148413813497812356611490162532671040997469007911649779979610075081972330004487631795934450100069667510500307550911593000778497089381009049662089346531910556225160745230236166930391909766219635566646929627078275461248640710285842318080084560593029454092767333982491763611039735464331720881621390569784210973054081835001090460491992676779647172178472802479915332296720897609264884302484225824918717206080039973482295219891840319155183726364427277406273958956150711977206546731502815708109966479961738671514470905742454885069975468019380496189652806019593445747394641535249009211708158162540185643052022174137758140494062525668370077694922652350750328489032329614701543199411534285714424066706037295769339471287785406394116836335288949191222215669898035915803875529847053037018124813888195946543362104724855757369115906448789493149035382771226598550359931108239386889053609815720365091764772017696738826019787878505421740442344289374009140525743204966838270212439517178032769293796621667718472663239776343151249317969737715327891390290255963995896497676876716744444337926875258192317871520395209415850954655911803041069198095033746499796216196892194993493013289823978342125192502838891912642825184044715535752330711858550973997313107993316213124369358580745313332830489227988310202629664736255205644030123263246725883421375022589497849648992081705902089206189505466261648801945036666857300136064072290068117008270944501203795691196308779408646018235375502254056970709552727092421709995773220790084480444818884889261735888449018481796747770254645797382037014720827223865275522109187069994659269416306583215693106238484626905736655600437158213372125862005154444389176940130584022248599298391706206038612423610005573267659427816306581320181787556097977553197610128997227505510329837902565549420120532598736071050164512671760453751333743756077588951484227643052329887437636359001682800881772598751797477267256697033082960219852046720018154582349278144622419804803647011105034593166508426348922795251350780049986841448763829525382858451710599331116794538399280016339203948118877483402722543263877750388849376803926649024736874090109637923813110922787797546726003058983523767553414019430625710122518898986775369133399649935448307483119906737688506114730967885299147904078614408473043649617264106566525028709837817863525328477929291102277993156063379397544983079637795595092811173407143360889658136530296339976580316601512652094584326226206151620594189621634008968393028972781201310883799548474248156549869091174008789918993211860089468604126203237460562377318555212027913833238950569596101121081079706896930476508654142217907599211579194429148597841432247496778072819887540682147474238567008636647403159341669591648225386827742231226877511432516886066531533434484467682883884175880940315707385869636957291678325094841180894359507878537425690990808193978564017179144661740671709229282647862206255051089339312964187567171681487069081228962024041167155555624156454993730464554535478458004477584890736566440804776247017942393071539876238940355628601502545074386362245865778492161478687912223211769550557905464787223121301811964388483147540877423128218532474267591704375251969267616837176380381960504924207102911671966382198010243718755313828664176978551862111312721304902288813116082521797330119587669924444665870791115138605787229074182645880780621002424924902782531175363845017150533629513612094776621730386544253760079319022724179462975084725659367164319456130630363552250763287423902951117914155593404182111926601465366081407978434284152234485673706902305479106958586152893106847407140200308923590044840778907996987563902491782664965770551059711649770129439449237244498534756996963968869742716369336686393756865313930778047208702929044249004381664795854479165831097010165984006555948634684343025995325068633103801064289993058253955946723638224413617679453267183888549525099391862787617215135475033851723846495499826761737689881601495413750258026260675822130843568637078997327413648156148425600111805697353959293364583086715708395065321349658865897965920416794326050109268652192682314411562203046429717032163508741389083930524339587309592465633374045857093418483836309987443097753480980867485287876972311056697999271603728212677295950702183454690941342125789853829855816802909746937868622533364400955773194268895725601084768795845661258892466107170432928126801633867363233966107372181883461500702406817015187723590897389481451174180343653693160579700495428262220550322875028098902284575785203299473135109533642090946316426146607566286162287508436681710599714150610007132413960680270451300789763234667191704524861271376319945460927865443893120680769758100316292630414056922897504683169605029070243386621490524055854344697178989975939985496677396624284567134230029569843589638578940052997395513236399019641284906689967840748534036654641795493287775689835024102839682985086262786097076469130402941026177094652433444098758088842987766304574502817508962280627843061165199501646599733809006606073744249643722123547753159594464007213985132454837057630238882672790528943744443280660705849475182774807582610527616914097443643189550923220712974579102229030125353099527462876322073957947761891124178258383696751542762437871326428331759637265380473487240270945221488606931256644865104755627567222129704422734509358156957060196205658896039251399146357233681414542401546085321940374963252825129065185240341109995833718061029224487394479001051370269513082634964820350913996390170264162143492502518765061172016063265764464767040764716783666099820631195233143085550239999717455137000795839428463360615618769234207009014565156619163325450019436433449824863777898589312959840698283102564569124950328671798243845936589762010340106338176275589807413199284923205510973931302950269999500708406069673273355653061666943813128196899341663344864235218233364698112059773399044871375455176335773845946055422297819486116641827891105572055793551485121692799886412071479527342014851097646340607294075982008933596897381523384453264142527506152616110313950526994965562193030628651122590019329245486907043266392680182193782279694812193536761619273877794753483016537567383967432290412878640835557575190374351008363371031282225246636681481915887561069950005281772409449615381888675298140126569101803756327665248729276035997914849918772399191300284188910496124927877286252291585966822308651868640261209610314520339890674044007906089680067364651533924788898513614799432852334483878491491580983685034351157595941313067651693930581076491343479333827768444903780760218777582914518282410659939615506261923230312197027800443177988856072222815023213182596812704874815176818781023374750774289280609909624680923516774783934203468902260470727558754959758630062418203667845052539486184165827601836190757324485670746944639132706099237295489074110426462943659968222478206758118749123499964892031539025298896459411962054965564591464272752712290007154330292983616119036805264404337264862401355234700181872696549159541517680694127157006605816936390742544437726053790856845876428587476920890435982329776156958524509701359896626398351418729920468565571066446743438803046880000854518612636738076814481718842942046346791048541923734926024279116852920784124910400929875115354296338142652218896658552459402091313615097343674000475438855934653375804391091310563316796183618056993718980703885210469189374132283981774335490367287235097306702558259771468542101269052468892519422799389198038892838087770675560267831234837962678415608481824527784267801511788881787536566339065944582370987882525937782458316466344107346558885530296409897248358684071543896573276258299118830571202560021883219506982542221413617505639981275041180202806837115328787369780968725519356139564909535239969708108143238864167807148531726265315427477859883603759142023134607079666813069780618654829958662685156090989733470036759411850954617290295397487358762365736599144170069504838859927283836605768553125145275276006380903265707516228395387234702459683957223726811530825129832469833470264734665465989087730015133173998808321596383232545837180022822720308234542972079375233351250479496297107223441315107200225367232933167550224321672719844011203789288439371441459246084221007379581920113059207926152128744933084371242448911646518799768658958448598532183510011870803257632533139191618056937961231627778701821195068321428236495398007353628794796400872698460841498463806469986740002434905779437644953506784198816546342298017994703560783998891489793636741925900984886269175609969379420141751559560372375016892314637610485935858440234053039806095869794281567777332009379315244172346314770870303250124897875567817111292898420240016350151973101051278851789341418603145343289132394460387389530756062252787364068220229781728434156172345174794500111837893925027059572648207726272090235812070222923239166911374533544985378773439140868939648636148896355792896835207578986908742503968428430497635284911152879204192123288609982384217613010031035325809201524937862466959851725812358860079130873692384668044995955380649470239221474709859101458622836880052479087505595561471438986445199193764253037985142437834363681247176055687406642856633450822102306160300464984332581779750005938723132534617419139892629037988898192986403061853415936980268574885003359740651327060065293877188030873538237563070539335344987082050134963519937334110184557062304889372849564457877691521283716004852782935357625816937450731745708145381108762926758871481265076450710196664212798008006067228168906166713417823037328415235576204560413450248776136710398895814262602813042760059579324409541182084988285213034191033751661811833229403610644973290848830119211286076013036470672293922848002304888474103435431177746915884647707625418459768966951072164383686709722242964485767853100001192996425088282830825406602102333332711629517938835473419160703171210622959502992791070750553993877433780921783583227319826999275243026403137300033141374446680751805244179190147978072281658000739255933663958809145783189334839555483418211509669771045634897817636845490473301592032702471358865010763570390125219821255974691878074231526375011241908154711616939025032459445445038311728618309494313211312029802948588407850566126726512979023122577569152814801807530800924852657220705541279739573034938476039631206071803203724700750655367949084285330061082758520190610220219068385875102506567281438063330468767260856634561654032590302303808049796865666860386682048958476265440332100318066037241935400375576269962071332154359193858074005444129483301067624853128021831253109312994936505118481233217183152625177848228660956302944128964196769738542803473684885097277548503336373353645375440728992872885340634443193989589801363508417142280701253995590650793446998906704044317355083432066020834791374665494433603227613232697063756468068145425480104852648484432654433308549281657615183994527825263544469805960632092463386584940973693290440131688740548664082124562151428144366926478229029684790380987887072423451919173100904734080996949590013497135395755473938034912138880547962530618220151138994384775628340094292889144779838338183349361174370913455258182855082426003959277518127987926175314363581120980031201546675703993710116552750003218605438469495411981733229411915851017719121471088960502097644610021128711127186658530116574330590015222494376143069391470177127788747018775876771102789301145704395972876087420927110135123322375618152477450327305331900161459315786228184216099513075371031239426568404656602719682950317387047406916234105075886628124440800281286116473801754375964999114715360915592018462783440000794789223410209374007284540455771675754198820316033874949260556720703305843574079734972941219348051428192374777768829835869346522541030874804518805594896466455482014460951805414332996609445372045641940453995388971405109109691323173972688701488966727828739441923045868650528950530001044259895662776437333844288099685384987348879643842172986765088908149070481605121814852675986936757962373861090084551667182906370400002250353710333083668297920714202652383682586882044516341862210025715581324721823624604327738956496224490801343453446642021577228477054440868334516237348396567753733615495108011966206992321667454773702325586916326893315809873201827141250111121337068000249865352504994800686137348196300524795360667021423363423856489895597232558538286344565502126540159466376187373498054141437041216738953752521838308071250516584631040767240239731053396526967921030055547043713055664255543740154738445815840797016262616791231235141695186886574351789323169819499133687216485350816949155105471202349867539334324211511164865695852620058766139152424911894214333738411290968917894779733960763806480271153479958731781095931070553033598566050716268697573365134516673782849458384603537484289735469612569997387847677872772528849039572835342830231311777916756292904012042457024028809706578285177690906331393169597576199783722164871129010608678258556752102585601662085919634609460752614921364714064167350398948852634412952788232172430904546448524520992868696724808115889261866742751772532567851356081339851250039268048590963028276895135153978405375443557536973473998800050497752964772914064312154273562513378867391527674042280035395350050615891226194329505767721169795452345961727759323940812721021120892727795295464673258452221743948432299734235728022966511337224365262526134128379402133372855415731401198681221649003844849814171496286804956984895317045288538550239422753654996414339067553107768989394527157633923764116937149837040281097264504112448968419351501545821750262264339785641514180365638176117151276342217413686799370926112672111947983816997446756150732105357388489236644137980679181334929940989759733040556715017234094083637828389820196226155334113428247365406509349957775636082621401812855234430204213875171579426005069566827233242449850153680473966602083698578524589462669616855217203302741808212488371567842735715098290714557410605821189896935116058361632454437881754861405857680003989022718795712028625157924188846919732711910766667084999810623608726587061278199383807527097446984617762608515640876208120028210391897165204272580051221628671246764962219305428950006038236957940477514740422997307470161512273527298386078417702684682642604532730339882178721688511104685419000889966543106909198994569018746989315192079054574031935089967680755033434026408051454209556992265192873713767493997622293908705961207613970568818692372492909305020545681385121778863758348544255330034508465692281867610164242857545114377665594924376155818560943547785408397699102782781565601405328250404416407436936632833108273185337714072556610363732077430390323837716308303217590355880053805920238260241961493441032486042307625268701020081207600690771485606080736785667176612360802702530863110835271426982802600466892077216100692374922588866461099271125243840103496896262185251808281062747339918062447426128503788468891708406460922492169506289022996292945475632336849941628228013113404966514511547077716975801489659368708423794136638436645984841835587412901731441900164619689652172345158130467461878796674036095266177566283768640696440657246670406320209846547739269377308317140390408186356787558580036358470777888040545593902780956606658490258821609952722951947588892054769510672815813137025570958605634035380482611187769699910777797330529240231844975061812032137164858960450965673588230721034900615587801710530951920262118912722736851576467840990948913518309864572293211955363911886506301506259271386745310847638935871483013473521202380476671913395403630645916171704039015887316931372049854924534963516006339477068815269282865109952209273219662657752493576837659084854403294781416456854409246195172984149805595240936159231895867807753041940478974708062632503494919953670620430013706893653599073049924355806731841199956107915687309758914703251656789846177595745415401892462354877437099478143642067524121069591259347507649135167077780674625241257090695558935314287038497319710292316690235928519878179146595448066484574876009943152278501853364771596591389976264093648390226037867874995762836650491214410106367374588339972937834360919648929594373012046535195492128240812505802854651294442586429060243426659590653994733252454246654296606517512012675923493865541115394360933408279356747958327470976572911143316834502653593413008058612525139895189131647440214078472026844637472115750947544796695324684453982709383313609647888757871310689824601643756741477645175019708327142057137311882308857617231366455936140963490544232395377281185382688775406687797024416996096537563590670935113975393550644503977082829938744255890692933509144863709783131993394384539122433081596139208291042780698276289241111216403888047338737876598226034030629759601583277965353028703894954955732918153872040305252743141726610759427852006904135573859154280809191712952246458546233577189038869871359396880519661334926598485211522713311545895020004023781979670296718741919293916159628416876992800354599844298233389553676766534984171490485898451546229716912603607738256677058663582373818064014358639330309557825661406302159065211464433808031119928727126885444259520024860782358341001054833049210594596644954147175267843409682247918556682274822430612990743971235969835748098776506640818037039729174939801437410259065542660723329436720601467863535467918528346195700077082403275564530861041029225180503602712877112524717093733384499365177007195714212983733745854509701229371916396729861891311773700671405939618648187865880836600572253769638117551766963423727654923578777563453345345926234435548326225510939174467006859805616009599441480859525190581969594022783455903945638733091574442379641894741815100796017048169215487299939573564262396993122245785973187330964826124191614483220230866856806907593078667834655148159193297417273892212002224147258342111103289644299187967047534245743594447085641610724599542072630301898618981902403783581686783985979143684799324766580630057195544418343486899774672664194779659791004034707660429517542156134525961576033691294884029074810838283413515066763554823096982403319202499687171659790734968223444837492935433806048214980645241701510815779632581689999058507668806494274450908231243785894772801262202761111092446301832892322293939085345658003755750637660905187924477554265373884706227498473293979724989003562634505836566656463147755945762938306434687784106631751101735796011600482935339556090859810186148696957570162745137933728933679490494661929498430394389248744485327636527707660153456563672701137138677945773376382945420671910586308339882796932471420643948017255079488985383551120059172231976241574782811439492752192492573303028624395964913347697389576206971633630639218046235460129608023640707744883126963380039750686729272849659196006800379389409181623756113683303771888502477913340206854072402121647093619640609006348490444265809023325829995714408445016475152561100301147148522633347978801624831986655702069696670212245528083016706546686313020094043463508256065263759471432788163556565551627270665118961136813584064850082913389259334136048144657285021172268256592202677828834674991930901298886979911946173662511312438445261171808885113272907843521273348116051528232272278747701471930762033346460576814133580826507948614169386110032090734352599959024418754679731023192258773750031020110733817575701534285445852775243739806443574420912956791470187385352652120659692845588370048923083510330493413763034606308640063199754216467051170186525051711332910267759929802173476278278103371395263587479006858290445249469756112462737492271220784358922886863513528089883828756853954164807529121989821202172606220178919634597891196731291835958330949457974232573753175158309616607699419431403622015894343301592077488064448850934732324943667518111017040757327539516980082466043060596543182354307140477383438076200752431250989295062865642198437332817438051152012469070365760445503100150492856901009467046878451341451526120315092287997304084270201191405116674229820918186790411852819702187701120914208777036650083244119436311403712026447889968919229808682681252510995816147382217094470006254909960473873156000846621104812410370513205766011532116658565264318233722395492922062402385559337013819192145748686001095208524745135907372215154063015355912101180888359748925698199786938554779768401210653829705797212567136615734113947839624060487864166320901199003928417989530318812227854086114410348610402968082014709318070114929374135927956306657956010707088297988053797316244563105001670614238645277926434857983332555420674616915341578477772668276702756322493080136792298692332877853865123897106479531952266224255840172143087915978769376628777452654933408369295927561346352999732666549286372061683001887234991908088559592990000156247013399347596410359378612261392754535676742086582454526412791241641391465194957508862359191396547838072315736631381690057630497108206686270737065896330654564455456070368173075816804889992502686499245576022233626848997411235810203687157667308964871420097344121558259516378772329591980247811218723158454040104645534953170159063841789675445534687256953359370194905474362030275871297374362228762726485880546460765258980247223487305291501200434892407526476426940280051622473299326799475428982005329049753449342188419541211566533887008312664823501956114491710058688461398840450255861497208000707089672053140162675812097636918499005758920416179765837637688347912925509698611453066755172863284931036860956069581340186057496930529627752693818818078479348466715479282620350907239195367444723822078937147299151685840784865808210616755296930776485029771817629094526410132611040412703452849280854929596647427406624094437148437813715829181716435952777670814629634700457525432614775891648616531726016435037084764819861830262127288860677853222875067884211915063581738302185455286103318527004902630773862243745956024633504582687055452639839347014658382122153059606189032318675392124524713726505253397994658348179854847417692459683694907069141166514587652199803619325763059405599917840168820807129713743678339018828601341409486067756726390573314945476957060339209347824992054047557031900013825746847198810001851162414980552416950684348451215717759116196162071043485776941967438661478862243811884118590376838542462871499680665059918753616591094593553878379194675200227867130379024658372335349230220142223803077967519510243962732558312521688628123289678530854413479661104177037211978381432047630081823353435443942753479716179726374883497302267590313443697483074592236772152008759068147608454508690557045290818970173350023512182375772008602320175284098912705006269499917169014873380109587472042927753532936761953093997190883927410325628417861847960377095493192053813705372170950205324328243439673006597817115247954735764455941359473425629601092598703190601385325994266279558786619951528839834676508571044081766812860531140381920885449500116434885690553147904041900834172062538122934634312414505094929707838670088920137151175860814517992035268972074875222475860020563050939181199171033370350937686391172653037417847777604228486914911498027281398454341486920226950410661316819284912274590053782186361406670716522168915376894108439124902894568418325090116555569669925502851483327967787119834765989221575242252649758837635792709773301907785628591503202399749913715922573847399010678554721375414774078532494135088426845712555478487232570213099147854325000313256521731470144559058340352435601084805579896430614196572928661208382560712859928531321478225753745361475423453379606649641625228682218451336038015241056119397071909825492294973382762417344727492261649058733085758116614401333929613305061010812713313236098478544715014022966722219543826133403698154923431527289859564677378642768760113180619682256275940648475765708753694895237670998822006250133530145235711666772699348768766854990015754554940874044358582616474986822842115434575247494592023529925672736139312841697295583029055580973322423448241577464773342049944893389768968550531421715899471079446322407491980322803426793900833039772509172186720570342597806242079596616216039723459269222859856536915484108215780617737705054516186204517228212876502383383027472294538242894439022489989329719447914554153434846283097963091514832874555759763718322035716572814072255828956074739829041629590491564847622131080860354398701205708605509575694712818354659469058598558261642447200169678933022314784307941912931273596832893683611535451147216438200948731179858266422207044661656435001152694210644448309667269463920770446837096153310368080139570669560858870028943669541842985271951818513248349912434778976311417584881417134399027650509325509678549772667430843163904342744916942293620027528510021422645659262235568101535883750928155683271508150127118857272735909256363281161849834150921328270208805915686992371015752904516638325323081054478747460781469117969857552185025377552835547152187507863341726469291767717591365857654026382711979218767289960081128874903462081280060644851903003293287915816507682066773653406170002099330551609578700245686798826738181087085444823143385959945950448838374732205265524785747943611517739702414197507593352910059520710249816907864109462190748945338359238441035971430612267737263528369165805621501523537334933184856007727414573429956503968437149691639758445913731052910866650648813195981594010633677451466502415519324151573106227048574212577296636166673722780133488664735246087500223852781498810032703509658635679215918085290644693148001834004851710624706681062857908044129752818472961684309267999894442235360134825817651812295337205193627271290442455976651895646258666636272300510289473558269669656492615657974391243361582447311293534486462842286592180611554617513437897695783296703552885426876583834837069183830770246294246893114722498174321731348325025022747901771260909093842559832829804575485999841048001138494978410205983674566496755597532021937428275231167340239330203022494886659721156546242766766634397361072089391150825196457174795948691865142947583258404743098859621635113043985337673490627111204683830329659129295752344608019116084111179308747229113401611766115845703520899609715884763077571654551874547363156442773168516145579998390001115759101607568967119438830748797989210071234141046051056240587957327618041806349241479901856792876552063575945226947892782231313591075845247479729508701655398079300396562961962395688527816713824627911996368046915771211592727152287878613632769352849496538590393427407402233647688328489300541735176008263282946721640564077987183551237680957977823070283794620052185731782981163909341870969186965621175537588180372970983194938443872676354687136357751961102809554026621870350043417650880090694252867047158921400574809210942743290302498376881535602874156364946241393554041463513320472245725300061447116654853251014451122476841017297886770790415493660774794887874130988412122261266094887243621139122858860540990403557673122113696855410781458740498039881245701802667298764675569278091608625185311715014810539203825544083343804072389361952361190346859961461754990915976628203945205314476974737907972608463161752181647001795461302933757065449596665610856425399601095027442619676636567574958782095514026963611720980646426602585486695003016858572789700323872126760441885219291525318865514361420534338320350210981471080044668774299518947606671448677513907186226520817760382449211104886908664558392992120935101574827018480070288497532691021922052298856852649461223389211463328355099830662997867990320596342963170718750728712688994794448054964982679202325344278953403516468090653467005892563250407680433736310677603976463484438665797500217956888527222784316480659930090252014807868621645652067668119966244293446910765896192785584549685492912889353862192721126253246445859131213569745424608631839552795174047732421993685747012513030818545397390858105710933747270882197800704868944129443185850403343136711016310740454294074873993405786530365501417492907822501840498706121602594743620794723684723612002685800284046450835079039975644512436353908074274328322771429342531425450960650189167911058244144430194670145403758694498362824009475976266792052333290282787169065770440533412785638519447107038219502238611964746827157927080650954733324233282347990948790801661693458669021739233313621691275290606866113892035673202153371739887479186903478550293258897374092982619322093026064836523472897645162983577032997860429958382740256572085889408100515705936328214031486525908686139647657144179580664659681260826012139829341946388092414592454058094824083710207325726381089845220373043909828517641492938672125238632905557691279637790341211923916001248505587706006080659584640830348493789762577278998288168930706108473285782587993356602637929932175803367285522160163159272657077015892952992944576230411310151983992254678163350339696060630840978018229502474868235551241830620046624763295896188953480501569604635197710110080436677606212425300610218232480430429966633277740249720796200715459166453964839073077207605912597288310197613990991088944365979157171555752522604135159517515297561461357789665015940858215208055981746448968432747846613099240325204472910213656575915472340765631568667996712236822919513640120737414142352220140446964170713363818330318918594871063238919741538752827827679167553593289357941836954149633084511361999273958115612734847139988821439806473732199597976938887038139967037307643792494835266935518896318361015171804666138154556966109666736865101896743168461888541882519176219986868565896410986439245740166770271484773576272349048325679995599216554337133887638103419524493841300155352110641373628502456439642823065389840775212983226683039305414315417794082838774102093931395419138313080793689397851195364165376128045577712975725746083033566088736335414079112580350668120598060726774921610877981365309945764948712180667056071356690858034298072458025410196029343885860678448930778380114082244082213474832933049297788269339184627594417460560889432659333133073559032399636894589332337393226988985756532200950406243469173521217572234142840601383191934767573758224055743240210724907136520524794337329140618249657960882209145776687985349203758119284134264894839735656227402985652246837808768276498967881231332364641003898405673797778681246156067882912683859247166987298778299078150441870853238169265536361863917634688549432943570619699456570827839832328687002067799254754421895238077840337231055222069063645737069193496840375512094422807688370196767192764404302686695677544892994013867465943185604782365010258810134144865246637745575378672704078674331733720996189039950447595879339641891209911795632604638080294563504855291477542731052197456246079761857177880566005381416266116753733408052192639957895790403487894712040187021154391462067897788920209767081089716437799408999325169782889553444634124669213761278336901398971686814768072490353715607263851514943395039492957885566866692970988488115774275760324970716566783604964563653998529960063365552909477630553024459200879541887130518253038414425179511729632325317506662166032082751378128479228386875046310332311599107914082678236740976083157914151023502976394997970567801170309884544291979182205258620947277679847152098865977645974670678872449700322657715880863437268055172556148213734094557533841434622763086422559462777052463098396016171178280927561716415816700683855669683331972033130486553504792621861330318124409059667042984372184017478995782082501813874775762359492374978435683365322171199234587733246811694968125144877996804227943598182292895824119760110258773529415651299072369864681537080786874490980342610879560045720935805809945143601301047186631014605409240382683992198445941486319926543872751130227659888131525187849439537219415477380330940825633486201388943073088599342914183133701539091407447647009150269728329866529371132238653755886228121118498790463986595863677799593028948419986115766230178180491670784243399849794545000209182571779442942166148307936984369820302363094608480497825500587014536155673544792222582931034451816037568952687890978629272706733706364461087325381676455496050416173769098270650884024553164801198821542426745317491720932151559230163011092641279405643120176184127790639783742320781103896353877319314756702907067889191295567795082850872676415580543685615243168410145762986026356584394651800364738380846169527435658581363377057163775799957544332325244587865036884669291341669429652687346518128880424092516867046676435487121260253470332601378382979770431560246305538331976302929924075930223058111015880749739451664362342884818652834558733949042320777313987185794306803551160307582905256041373485202257329600727486689454664061519901027247024568363602833986495411808221054261381372078678219032683961608592150997169252809262566958018083589959185516654929751311884792281735629073128960036608835607970313192921150475758528757238081188268959595676991102630342217861682336815752047876305987772009205724002886463546984778253912407902268805167191752834643143680630059581669927310445976964967605010013756880455618868663359996704886868170147716150727081094398246731592635033182016455552718508857558649209316281635608488150827971652620716426497398906967849067166792396108163764521650943144226209298383953801707469125337787374496662767451965434185573561079615172278140179056152514585669578096146834425564554395966270139452110013913072174691464436909047262377770478625287896175821292140162255614331461160818352220678396582323835512932208955410586807830006261260285041730310948749628585487863921520165752345267368686120064046422219408323544470462455869969048670925113575679096768325987329484791782163092919728994252978196327245475852680013166538410046941703913613399603889932740595698342297465255816343900491588855871065628792389867340442197242744711644357017782505964433892743868561997259884202408030598021948125518781999907329171379127952775232783228672287439839439104136956091414675881117391596454036719671419021675401418040742010821047747776197249076208047539044427331732692422834641021778701933489699315786310639068311866965460382242778739715938139093454958350346718540638348781343360013618694578409248197549785314619431280406453885121785164816822803013351323601834991023893213996332936738656188530583848186438371641542738639182019237691575702826577492365729322361470302579444735325036333676444132219632272605178669097359749894877783457637173174546449563132144337072490279574362943637832982895650708685301880934131019143216001859965195604515769668409721735005224708450132354304676911757609675974495586377577173151540521445929772988821089089634921882900389977610919926777592312026740342470017676188953276862838589817660094970179366179062714594530901134550210254341020440694209492641508878611375665511331489566495991458199099010326696871267937332946074892585407271250294340637001584437442924472292078984120761682773009358040528601506117383604288631379879317565937576572505364519958127402575935537454342288768294871187349391354034809556399726895440844882642296032614431046010115059033178214487863058634179384345437799858059311861645525845704840349152540821545374333368087662405852819482526653424087939940097158214746868166854057630216088377417632122899815414453249688046084128215869824181066602055805573696405485062167020408998645701498680170452924136361750980391138002470945276690280988871909931056651594151165511145814064577559848114097885773284141526923017474783036841147370635575883225390431955564987972800872828752079728123005617832573564447548148667853434599852835092698537877488358695894081073668328087248820335187088907152313234268952884193003522563139326754194508139315426552188783033359300044240095161842796104855522923114520510144782900264797169854940677068916882465238988445798167118319829052462990924176109796476381615835624674597600325284306245031802897466102726181964495403619968768936513666084634464016346605827674508068974868624816223345789138400058653279186950508348954265208170606810485328809711038553707145819365664367592772922507488502169046103386499747400732021534052669318444695734920948987414023617435351776646056652549688205310280274213556262139210901934224408097170650118820576401046532602373064830208315869098760114552534544046488628451987932414013563364706653331024359041695233683258162702332750144763258025919214978274849912723316186686711201582885036499362541305584820061194237401693089435500449649737391045752245678311999308560044302513591650364838865409726278754021044970439195685618290809266323249174431598632439069319666952263503143752508782509402826961950961228140981464288825432182723482466771331758894823283306417469799906634065243199782675240025634931367237565409604523363642759162755621075302529343604033593539423855770759430912500095836900355193271838134582678599308015368185083758322408449642152181303270823554650824086050943149687187274623528853417588411866636207557628679837515401745502732121810160121136805853499017951653693038059479642040010126794349282374324538708263569485597174043268035988017831837938905187682034049153609520312878458171535692826561841397779955784949150714256704415840682249657620527311085526900542523657956187091226150033499053175267664282882007201325556934049479725334362451205583729955670180974992004012910415306625502947138105791966229264348683583406004626978881032478969146138851195197825688798861036492136780067151882394118347553314227726223922456950125173337657654649654444218353380089312958584437488373911451146439800606430599540111833395070919521629659543897608217919175560461575020956053560401196474834817283163911225097645734301373629399026694881873586315073414584051039193704595068658260428812715738193873035877349980388978672514250692797502354771431165272846348229834671794923925384274358868279705946643095676079177285361659480602903971245955778750260186339354596632582500005965038299373374209206473065281503373887989637787885755598177248512383560985820593190782434809520383445872455528885720021907409352611803585413631945295302624100292699146494110800391240819896519270572918808906659925754534740471120975970481718380492424251886299927872703858171269001745350226290793107610706671493329768000309420441923599686398818404601657652936158109856066925890360978856521485802911315942130968314739684353706020429561325683534487941456093927601380660956303623503863608936269023630228801068581069630981430213257579043343171958469742187666558543607546682130511750865258314196876210876201277165889685006122331360469433025583626620040455529752504147063441959920392857130648020244362615375135860846109240920844480768291237703002217998965236014666023729938333759746423031294738571903765510117901950318835506189007239994313163400679031122766630033099641179390584217801933252331166797295628727530304851586833688481157010590718525043778611480117970609237348053064966365733980243720093306207015309839957833950449028436627575368227503049377889715381648304038888861975846146327920895618732168424318889822282514181440140772056405487458083816233449788059894316850722123070863529705780260109856984185102231395468198453053555033531996482261369185348196536773586309924909518785062994143728149506044185618245747179017653780348026314242900340874921147532172279747285616277380028639712768811027518620387284399931200492199968014496353147885225805422748797543434646714144273491833723558018810337625157824453959219269334192247700619876324400884771513582988069730739002864951197254399678334511258698214233518912796344142257540845379194864445554833584462511762687291908871773351957523568502909003615658810610317855339233432734047740324937097671241409614616922032984971965390540067486075304564180833794147622594325049705514252546847844032549813836569173591833373606723297205949994592088105564541674392835541789806142942272772551574412643567420233737351200580238806096381637682777263815982775766817693621937781449265935161781544397102908323509260700753065819437698555345137051135590732669631038589692616699943425977184132164135859914391818231617719039641265555512895573486145142050551380111218011747176787728070967495460558173653805118021168768562667833250694316567821156084765668164064208283740992967000304290799742757478292222968902849353836876133901660219830227394962710534014116283720706421106427256224395895148231694524075239641431037399674790705426689036866914690807373619958326715353156877042765689575317435188439809584823275324296869876480889109790246211978549770271420391623448202162416633223428612862951894688720606795981883805023061865471669166270848953922306523923070683733145206230898217174286986631316533477989527232407385290281924611145085014734530042777346294964422123972688556986637907890051194927894722439250965178258164808380238567108318911652435630183600606668391659974815130016446099643548771794817028358311153981398789473698564987282245167620655711859141490684689440140083824708093334920134821798232963711131325626383916125009357458243168291132422285381166269710564945816094559890705866644705582584510118390017322038942799249652365620030690907622546545855821737470778771133824596752635559690758723768779641167874505247548064000519381406858511312937757062423647651909245123182582511106911412246505713152232193806945064147457014249714843573478188816806127154506869848341044145558745153302615590861458778604493284726894544910451933153010518399351516031858600814335427961948554497356713439633515607882622258320187257089561791827801994367034101606713481986810380224318057371972847757929787175150690099333500244272876695020289818255567086899688694766490536649522074057276769129060440657117161245009005187290421415725531579862676399202869912366789641103491754565029465136390827065452316410106678921163211348563892435444865395015906001653373907310942700240132582029603476386274385036106654909267434736826196696900106566325989341861561139245428016575648544128097483103061187850548490180092917550195065527210426739432889934691193501962695088190773995391420748486412246231068616281348114393124268642988591720204803992222295935809766903940849323346333486584240616736336723469676720797515439692580000137750563002911438873014266008175544296534608850534600726189181242537991471939623291235478701766572116954155665970145701843327259784947856845122872465192134502321081626812937434482864112358066363418328571493209734994096293798600643063875140186473366992326666742357666843446580077355897604098619554507695832515090690952395968623304013045389473830980151919637456431925957254493190663866759902824104895958942718880448476499305447438196180898700847560497812296508805798223822243974161102818802283015965463068606658520319591080673713372762718979196369542523586572312471985413984284612257621097572221688346222227827484424537325826462921482445184065792429852145600453523977257116585564960390523949899320627606794179088106851367539552117691093319973213128037973013317656800506604930428391938779784898032541878732091210630616733279705545401265828733628237152484063960311623671234670114265231743170467953722884420354112204654344251226264813191221611538606768759090938329400611317634788735346337567794526885928631864670550629651450852092224720413588207927380750952699398710445598146201935110419231767842128941613185147551658474769865388291009643794484841652601195513488608227584473797516823466610313246471451259276305309165710836823668789103418711343551506628030526679018596131849685769457420983413286438860962482587642159461372484812580172723304440051827968119850666260688390467726798867587785344075567314604941447537842921851554618077134492239933252540826045203268678962630683081917030549904228968433465836893007903558053540402273413875066365179073378047602475331588369080005850712883586016529682329157959311332610563567293068994246216122761638743399670424352523036015663082186093176412924818442244441394155255544046219150821481946006838100601273533610027766748123490369871104817812506013116946734723470289581398622361142520947338285900509196374657707530232637613555178142500893752902683818680384205074356375522597786346700994947772066315918506263319376257500739036015475629771873653959436837899963736728586864445742352110182689670694532614153737943502496463536722819905900664331266347940722482960371854181068712318193463958479870936908735709634449561083449748234312397669580567031163154247607087169863247497650318477471172276066344530270683837405064962986797784443121269043555509108046427168746102646428124955983610012340887645749308873981611964833285381117699285386015038519019047033757897665383837655070918098238435821402018180122959480880216020140454483686223253067336745002241664578016951653474554982671520112612358832093766070979507478499347944579023606689608343519296626163778790661283253169077983407373995426439294703933993192764633869281200890182593919280364384773715999857726517856332561887469781669014121144083870687538239513446515146993148764104158525394234829499039488548880918714542594417812995582248885383601059304049919280045458891981050500983063321432656439275002134024747705234517597316111565956689675978573301389890660803021836258050799382049603064462746480474262462102957519100693693636536212246621038497366916971849942620428973164638544991477335740351846606813432584919543728116643116549438105923874157512949556623668367133167098071400989843768647693786045816343263645660298722727768499321651718579611517431979266189112308212845567601537896857083175930748242596219569968941854957849000030541087057293421366046195507667668908262636063025344600690540676424228909582231276248610481339097600405278312529172060594123369968944737700300174349176662609904421660984009858956618978545599376914686849929537121384841733443846273987012772687126662143545904645325367396532210702100026654089499698530243028781699162727123418541798830149016975226352689676714089171342729017671031962112903879495784199896591259032707002571051605162060927909935836481784641652196394265139979819855705553893691661599482098720699959048133305243728926028118185051384372639124553984013590276554956688088898355204656786810824866675506521132639042144075353080221996492891113252658819829886309328443682376896401351729241265473491336590386529778221549779133390561748839713681986831746350380502334061096741117975154536629747805087517480702934670025788037790590645024803427493346166443977289337812947801539689691840000456510535311319620573983830226465522607499839266506058013962252917421498155085810070620323132154573927557775047889776787690038739479707088566361642665240937294163736877878214172944357519237624500103094938190343947596876571863604597324932193044833755548053878801010400292345685652005609351549428609207096921938073196230695041214770660590694417133899559075526036812662061020281852885203718937914432545249305165902967522884788858843299277060133910033164551760049374333395272466638872603110612834222979044110004133828215455454616978002059135885730054905218478387453136104294830734013815237610788161995672008527660900385133280291558567517420285125815974930664137103676095689154273777996075298638823201760577236430389234511134250571010992117438471217912255802772795958072777707535311767316387995015816072003043183171377043975032283133397002253406842364596921956106868340764902797133318968465931055782603365401107292221380150482269137506628105001540436426226649646375531545739367518301674537070131821498191756983007160592767037706768343369382583909424070249892273524214219937843382701980539041373391001241529964711391707400024235246135760148684882685930206453901680444094293604328658242460404635201596309069017542038117762521854730354229065740823025364964966376276117944633278479904565229614219647357580214340419171822149273096965649449816520446771465137965394297475841743572503726471581243772477378382792000826944959769608292853506410577413682760200864815784254106430381626171333845924433209722703233603062917105879861660367929015338160314195180854337351440701104659289616325380063894753938595751372181726630705580378006546010176982098440108661004402959603844935987936285889247023201983708652485033288890222924528401964661821403669901891096358239205546578566684411663248261940730990042161428730973249532797205650731956668174489477561517968516913981501823308696663963278033583842707132007165765765470721343166018050363988435739441072758194564453698220882094482492545129364404146004402438208448737755924110143086060748413722194541795913780082179769666977797265795532749960636898475146704156690398795854073614714666388976588942034950141672602122268483306429721443049860411164116278743487877829900528102329784349850353856566438329370382872159326574335571351878680336325956969911956514055023804609170898250689686979115849003839000208224438917519696683797597519436821105318113426128464161206821962503847262289729254505078995780340114546364123921212095444658869494290008836280867204539508984658812896397837876510168760267540009671858150618543172822358181364604902398418793936119714762711140877646683946668127145304076243846401577103172033989779914975908638073025296728646896039974269708587696106348933554001852832482094275845154823823950663780343901608956318961943490933695233519403004844143027448594818806758471729585316195102243666045263547676907715497479354871558398216940597336575596149589908658282388888617475263730469093234267562397489073026135065928180256125837265502410131447352366083285096233626559877777587899848170610110603015325163407614486342200783474636050995662126065658612042871051718043533896546953661636870981984942746768382062665561087904551556831153238895176483234533255739981133829477850284972378039425728646483518413599540995848746488347994398945659552695457509738701105501364309960014900675602857446358292142676984842123748117077012013716434358883456301615178139985202672625969047048383129224298823115855757721734123348978470640464767873096907773468747245338646223395852243384052535594451214708081836559682236258516481692351595229895155657214301786348611573619900878495005498801993842543376354321286434641517201194823988100178107228160196385767738424309062465240591262889598648927451974582180558597745492043717278115394388905374807311397518951452840841966539309605220173420822107973756682040170063731551997178439862753727697983162901898730124389422160149599044994970716923453501731510135436535375676376436747402401135562566928386408513552153349388869425569022365517691407985291206005590916653369504964979787633607525181360374102881851304150689299829685345693008460762374038729032435845584066637438369719879022555739999847610145270294659947899513856411518330472067143461237462692685877859485263530687295142016925543775599478040926690225928888442853933440563964688952480262296606635436016553466198866261984287621398958417197516238662493289680832934770167652867855597726020126415755369126401513246138637502532469514837194771145605964920751749815780685341137182629544888880094921304927879272195702718142764678047782973098180237306416178254074754678091554197980477839903385663934980299378463832387435894440676087698799742853043486635109811541161513289220561923803437393701665269211225232291658187575474104943045363303571256697973438478543102219106898179589353132365162950340862217884065113495004919568356103532902247891517927208666551281906111602124034343294193508767706388486852704699709747564038574803694113846672686784674627009883077681647341406290107564757195674695101109702035018024344870530417303022465998765775568932265200492202779107863034687688977835415407699107169855971403161369460370364425448656859505236379941889832614680942941596975373416349588957179492808321711845803257317222861841909930030291844537047552484530929360499609997537962450195590005419220121604062668946092558436911298664043566465639864544132986741710089326279990809197705852448566796237563887790561948283897996184550988786898591204759568634318305880534880335688855069712324483372418981050546337275410950186564301262130646500002046071795150943930082870807489228482543359332573327693903836328711937568538464658463998902228912628352911437403446792895994305648763904145621713391905677243731683687279124097126901794971606918180741390960329421758750438630570152818905373249291044452859744671329156860412716077094296669173746989199427824831429758092397718158144002025514090182194480351474584620700485991710690252754246514634895470637293301208683263422529589700363249398002455132877083741660826439103482094267862378502844555077565312936535131055189593337103587692299605441852271989846495509753673119303559019079498306656288773642987354344136369490598311449561769072527504884751605515885107092607970699310652376862117660719543871813030036938118034467134224381807003699477728047547992088598854883481860848905412198351705110928559958585720273591585821581773466532911427324644111280655783206743147361853399434811860697486728263105282974834570798685268303519810484719189112458442766371874594962391723243414591574785924202496252013955129693667855316957965578670397328588954857005979814537587706621874744916160373263052172198750868393059975334054276146308930274586512335597592644967494330673376801834755618638504627786618088550765916001308465140810612706378083005360344321294235768101709798248360802053960905450289720766376594777647213063122642567079119496235610743348535882674015034486752890970882161866521828254283830920688205512138248073365971233292676384879402587443035515528083400027960037454914472905173679799834463684450919835146050123102037632202375500012797618771353434101627910083877216701524975817899042391468651885722623529919088870667632014858338693335927869403863755438658116433156605061883318112896543411833346805516995816268098907680759703282074021374109895726069925553443399035978092689497933851896512438784282546442824545888097171934889589072212580405971290722649042665355281794562821281836801494091382299767804401663027354313162808827115225664361296188617703344862470167515225593956198697802217094073530641701678778089869149861895319951997007321004146184479542683330887268373210511661862704964588905279451970519504083182954646485566944082240140643439827115445768812269421978278637488613536843428717522480613722495388830675970285581777579338709780857725556598139861035249357881979261866501940318616774899852916332969900174020584684428074193966549567934996059903643845449551888949005040677753713756823518847557439257763613689897628208477031061480059495729037179162948422111380277145929853070285863375023098253881440054614885009384963253490800927687107301592214722377951992022410218615037491433303426285816288124388935199804624838901932207671100867951941249275859424606127918965169919109366520389180568748945625266976320565689107757753579616085966108689282376256177896029829578282482452806360848883539642191330479587517380417461142868683515952858180548674840557044108611443165407824361607409752583161935788980078677253094145857179124633218239172710457369176724472331086166789168630817219672529987601800017062471892376907945213829728044239612095087701340691957827149824464575598568037758971953869696104058104025277738520593077015763585504102772276937292277696322068148628323752597890077798186374364406992167625995461508687642328385241070798583679863401890401281312289310713950851399752349043494635749614891865088654145675759447461357500440700384103789271404990734122545900250929181527790880570738781916907332449234172677783653449887565814815574036760695791146789537919045583958634255896359247016687133024121597265350202734110099678573785402071092445510668322959851733486669605676344866339492444665582240392455016029033570945836260322092686173776876839239601450443666432660196347617914190415131342544832411271702070744554524103196898544638761748948085972142563479284204991009720125985831104781690522121423015023108768589966234391600585744856663504743571397478083601941854456946291096156197911275925656062131882025181945545204527794973813825743225406406287981453991420366130789755313865525716731733934594586816047187575011587807981941748208362761341734193617221449627998407645549137387966811917962053045388178668794896608345503392961873334607106877922761298659422644326002607674540573950053735483050157499281059282619105283198779058852169608824428341999326467100541550715409427948475311412477810573667586349607898511716525887388636396046358870319038816293542934985346129063847954664340881614864062745887241184823296986099897469325351104880975274778551272455578225309410065025258115908148497051063153851001282618296143512867814609643799161234511024565689606606555100939253720361858819338891126833027528873507939759239821544510869166660113745367190421555860249594756303860058094103675291386378425521474992098284065774622306813846644411902788130523617096145401220264491668878500672477851495732557346131049822052011868792241508125292142941588392199957439442473688101312434487015975481189380732918296040263119304225122098579997988534877635599419059026274100868810178014874980076271070772157596139983953484103429947774958625839962312238260285687243034606103138569633912514451675008853097533263956783629620271949246913204367613917394258759528002609524074887145155613743402759307416110612514967243268026898592187200829595024511825615215446902029983143460580332590094598811698039226866263745144831753745029234002243233187682750788110507228063955030603286494782498786421822308438878852482543219565995553718435113412345625644544815093902714101313942016547440691827384690430952782665301935643172022676000349563745293879568186870021407451749164605879989264275548868094372282986253819891619473368310065120368313878006958555703464273166974314653547204014744066669653448854822073695475504765396878270489424786274679543258687996484097227138903411099763859447299924919834908444196597715102240937688413107304631892899193271277453391870781286857039597456535939499998192920401870073956767041954497504430725193264803122824013705284104065434163085356696313313923585143259493040820114877329273001812465235490959286768964593076966756027478745431039400545116992754653299168930359640403488934024138659264241478548057800159401567907480496774309023371733945954938369348848541585884067111130398736484135443761167853054233764978837195710507605839467635246527731295207404042881057782313076060450348211866830544640579194362449231466728460313950474359190284258473572395704449929988463467043218604797801951890776250983970356936995922732136210712625966429669563654906667919429330312805036885207419298555298251989184886552347710474260075268004944240204924737796164550447863894200259712058567009095929979102028450496562037693832166675615567457964556778681090666327505637790488956620660532695609681822538272971988847923536756491380178786379987122653664750931909442058407383372495801018508303286928212505835117960198708941044251104726084181824990797989117074717133221689315313100671884343921746534784370176632235393828383676245782275251251609176409104617067364231553899001614656308195727106395801231237036352923941977035343323987015950805728984976300775057192444841381240090098290016747732313561501480213662361619697976912396853702423263134122901758029911064144952146114317288750162939266387356635774558557348612391004832300719317017373199177350546564880395582330434900397859855082729828729330431653289279209021841578897821241789627326296169854466299967879885195086237721522784531133346021097438003988463015279315597183990390566498012508805816606661907256131223140211625286378825375694339257456681446610510977276235609654501398229453004866224483037629868405418821835742396299021456271293500635434791327552971201677463813534659086777802271479686240606443467985124939991470940827710989816807794598501716715961543618379589681211547601548298530836476406889258711407394783196499861904327786987750279077573551786506828699624238316701542567456243443052806176494990901366937200999530675013320052038982035455039254478097813764614718800073630961016440284928237254061295387566811538537029218490603656646332638688264313551825570965398829120044665581007632032201364143935989690195937437936078716870593151859348963475125528788067586727358653594776973753710860703032159997087082312759974094492074819309605970096831758153896041154907608399376388411262857896639580981753290293895564609134485617048296958255593589423816323859294559047510446593452706571643144876703179746129254298025761535048059189908467395142151202480556460873588579929336514130892581003796319623899031441718659631965396380580358106641710260063671694396658109116249530826406954601547515323462454894261585868056266628050885288950540621300042695338854831319265893504540957327598327008915552837138872319672489273936732791355501295058443215079294670550299243627274705610758209267953579667429559349236757249767695128596363265505996642830800794500236837139970907464632263921716323857263908578605482929343391569626159470318185368973835576472876219528370172326865992111813664829635045141271665576698211934320406523694938831822034198689434527943486439249173929944307306744625641502990380574412124842538925516577132801707559056288136686367050216382995304624854992410643930609984768274525825701012172298342879832749559136182774076195018405129888954864499676898386428665601321143469057231742621963769128689674409718729005926594173317952933841889978365369875369144649532087231059321617625217702553629431937000432815134404597519846793979089076718280309492798950857364327988110152365460427857313748124004792451133853766073779714312184144201190086018778077967137739476664394482048934806115930015296731932879613535736928335169518538259965624284206836448853940591717743199298005598766138902601098834228543214832342015096834200571993890616060280020033089936615615587669064092312710483654968304191520744509934068632307896524426523045393038155442843285464108026462309850260027914727060666241140911960567714723245879370271282161774507847640861638370114649729553177245561804441272067215274776025047776779421249230535508894590230925799003281046177119424787000772034454050470440103716359195259051475577552168234712227996420759197420546615021949951495949954075589288098929696377604785140771618785516922895831973090694825243044338370498658738335310601956993670853252082632012921787842758431394743368422706782294835793570662234619200288771419920823840615321353916982787730778504982677198128961839055910889422299408207735309537513853821105148193212910266942068966511428007571880904315492469861021646027779250398430288316327895078625406854019527687549744392273600702219017796102562204141756317642036218340166989176366438645772777800099014249556858732211201447327631922206141172822618403818894998700055770042340521191026315383724113793993559889292266466955510320635802338841031036086543476846695370833740880039226829671393074841131612420169173713853355992200819787009638931958279150412868462367363139687017314502631936595628935673167890748397264148205270356653448010549505006971341751698001481357207073215673376019387324154726052293240568031320710569177706653830413306085024337549929159435500298486305326022747227680660455395336406692443518493747662744653112329131404374205232494115801678967369826401472783276751670460123300753829047682065979711562107522839290864643180653428092184775071502328640861941466457240905756326228313695783886463046309987466337449123747548602227761346394886734944516653294790663943334501330454233971592471096210337997088247355763627067730135931259572944684292914561466312590312854173421765066751723106813467085811053172625070938863375318022179972704443658573233141965941874122721523812424172853567371721637575826858273968806426518459970197571101692031048926805135745765059325050545239928906944449783603502564249722262386444251859488224747652069385426707123088289680184803104845808564719378648820377878279938075186201292912524034753993876037019116192798672484228747658712098322612235932217042587398980151822312044988837618961985707180470480956633608844503072894470116950413476737442160897464173353752742890381287474245880519175945732141792815096177324018534413360033873845417425793110088097448343954684968375494821342733125174500961970639681476159425578468420842339743205937137813931371525556487348866772436370876304364579788352073170400354820376564714219691439692455621196701615026090898332144492207235112703386538560126484907106126057578837385837435491369406930217986469313285326242728207384628441998861527203509282847374120176639038761843362109096024003446400963303076001933851775418289654479867366764110336539399511481908572329863632802706038837292809823713041128808944690240491648137004462287097316998364482613133666712200438964216237143315768847953593352317110432955554761449649311801729240709284749829905126312126925234535301573839644936667676003630570935803854471823359921305092731228332688101609003295313534060087100394608401394422564797886638411353152241073241864802778058428472579980503833419615193931664233887369931260206342022141138619365720506718311364462973570271770378445081042324104080935871224309326305684000868869795458244512538140799475174736538699956151402272081448997995575740299506845636217054566619374283923694391057281618443415317224110986923105014070711748915149254903571704675283311539583148245641632027761640264574404628003242403923271616102691938652330276190442976804196424183070426313105074626467165738068641091038385751991908673817662965454566263589991277954035227749207615790491348385989545070034746128405687915650282529663961418164570171271077953954802765854538902104536988168420733444538741591398269852222594899576774465054968926128027617873918270861627413016770288996089024706821614153330542239986585828632859847369794236560508517936576802113992645607377665144353957655702676304733707078851192518461490444535626460964882181902311933113901933774470703915645428389213323350824847622717718268861256125770620400108718937205250094219554286193858753140045252608359445918804369281323485723227952001252373778530909590514246631262620111080026690032077385201776347679399797216190235654224116643925855463630001792438945875252559002416167637924194774578466743871498457912935968890812504102115551348795194024037704534533099236600623489784700960342891030292386828315775339568327784589097635008687769332671070574643126999519147619480967214573254092761185722995847805478144392222560120765843865137892413421053732270190403691330791097163689552422698114785310562361557248795814455227096830143245565254634239974044004080022250596676503287108375130176616931271676494256461861514623540780955358109658591981597846724602888762576299829690061141643427981179524681091703997152888573839152505022759262835881026301665745221543142124071844997630446927729419507254072355784594492394639046592134458303103675523117888234253825646644285585930164738251238689763443843785879644031966962244243291743622355788195520512302434345786087620337860368026358911664511954325428822980907190206393795597271985448915426530927228509851861059845617175748967737599198185053143027902440980887351240589079586303990619254168929711513024745631477744541762439677813774855757568709783196055075063027508823116986279532402740502281340368122519665737584762088689405546571156773154307637192264762824847550592958564977980279402058821941835223379765042848395066980003528643407236993909597208322282772143064694417911634893057432273379798744130632139378832991477418210687608875454056367219603135724290424185971621958549460243564341536238635092559084888351313229002106769039618998337902367576562081602559418962996231969877118776139903391877453425471337747238391476046395070688175025138554262253258951775849132265099713372265582615400822357120095506032049403487122021643406215524299387263090919094314450815719418873744974645929384096181360250483734997260768908445601382275048421621035927299524661024091659849539561693848515465371313349653214861006750292664049553006253802049899413939754652794146691406911947006815010516492502143842473162477502792451066891521817787339801414706742666613820889269384762227139726828642745761298988281827051017670378140264630335005805726921404945544268078179385719640020241158127327445727276024400143593506474569502085921079707821312616997872124605208195275549213373762299896600339784234186071988806192126788552796174875558891522809257970201641936417975858606449944035825606852056916155405906042925788976714808108053216089015691006163430910519110842364923881245923870208284593837880986253670040039269870902002002114531948410128229790915148514533184302917705875215415493813041861190029599009359994102807747718214111910422323749862707840645984254800555140192946701810508914699335633465073779459961128925001598879527156068926914812662561076871438223669143352775858452817452509667353444741032634254191841462953737848437228469940715359877039685977749406615456702440105597707628171842437096579911730939701983413658411356048645232343378332735901260946847066980334147033799487456881852099905601868823318321320261998145709676545383406723322167797088519195246311777843935793809609022195338108279766625694186279790881170693354990587519882546525020987229400734888478574938886996415113404618580006082207549462965894752819642576613235309967979362358314536872036158017541165952395621614658180230373667011432778525563741397753832648882579184379815948357529508515873238085600822503916870382897649958779560814659446159229824497941643088150010397504241209335049027726068990809820119136606086465831057734308178630200933274102715630416745226248176645355708683198257137506429524922394144916227783480112855604287482553103442823852443783725032613577441074468085602142946950197594646093587775662466067885750968561741456854535709940898039768596866818216448215341144781315062652534911491250810623055357660245258350807265483843173307393089501094122835072729800235944775770473268484750062305573830612335229204541214987324827821238737901808967196366661006432861206496570931718366591566779117404375587692001427941730539937153366745683261630018027604224670533893920984805114777954099163172224191339696535588156346144300621937358544182187784329011100350043963145970287808754067693902656366526895934624153319804988551933337199792671348828509193474158491954912586626290753697459484519335344899656290742815534442834956486859591774057139243452150482823556430997575483577033036416229453055077841604633572618605997102913275407560668849843923410825916796316873678446341887427047132027601063763231921490174649721830538885950591920287222533644791339872439504075408978844980888182459200989342254028735514408473533054814311320455588823008197609312766352504122249655530153428734740592975283572834330887934377953302683940631017913467811312968560069466983988604904045244421429411844670758043855515401132813810688638296834025385763885561728786973358335161693798155984708262709814000700756571508854992573979600825109109228467735790474598244539176760917762481890115419160428249578921478831373229202317385943957228750773429249062596927498020081357958326924608063501914327396067756515746926528483019580276457402405823191664547506300645146382312098676792586349502892547511004935356374715710694366271151103525555376426702540934110417479246040356697516897058586155896780130005231553375513520656167771322856050658462016005348234094494907597085331450931507102814406327607669807365653059668198723559445604795313271529594560091727129064091535748101554039140893424700040216813428748651770872927629961196696996630392749437406697925237468457068406904839840279012833054103452000347429842673177461286766879965292375820078204314141395564493866957437413880033085539916553309786637132493533433941094331928964139548286139900808246257444991851652058871906511969981499062155327338565978188405373706436355593159121700747788430278529479051280884497938835728588391590287181271144524928113761099275940676817318992867323304416384616390882394849913188983230148520523207427419969102826642155203393942296926745467401012067661508235984325772980884016711777049682982943345464704385555666888167089528211624995085434609964259718836600379586736218537193994231441766732422327085137760337318465460481451529291425070847858463179557892781947039416859564717356748185311210179701260203274570400507548796492179121127735363578755547837253336777834327087888903220869949257975583970920985090118937080350618834500201639807045406482107371235958071353623365942467101952079870425083083592318525212936596740251621694135473040011408132580956860830001174873742133625501253628790266371501940837502518869429811456857874729825888110129146039292796718189265237562679198261294318879704159624652113123934912214823234616982414050141000784573408995052062557052257467879258802723934185772226686413573775827576220707950409216276358581941234146436309075041986674051718686125466092651258884331075713578417943748672227082055577866933616170018319401564782754170375643611447937403093465194171790185403755977341203226426617920047804975204033712910904403150198762841638174914465207275354311480211568426809993595378781827410528382732746778506958203439433417416078552917164134147547162000325645769888301096290651154019237308331115293567668271697100214665905059706373144677193928455450752728137431645631097497277600686154647647377663839538558516186291973982925330068612313870360054782807297161760639991165568658809660573859127079225757366800989044017441971544416327859306697591961483587332119173517739912138750100054944465934913585389547068180727464323038404599152694540244689673870469882409486273159820186979413853120046586570808624015768096649829132747810711186894630205558831948315014339542971759125045776421351801669598967956424746322710033733104648931436550025359924487785519257770683330088173424587803652728699393416734411640940977690267503122792696655005887724638750216597595604916405501750209431620783016123713073989370856521844465966158931444144704095698399982588501961501919453436839116021342080306735032844092592853022200920259107723748645347246903726972719751046593104548400810627605741268273814619701736249837017186113688006229322362996164990868923439046589590180098552793375910677317325173612637919493642374850664490476937396233439697224222860787616724243710571449452620167970237624829818845221316256294333207441857345947350352107974748117459040610793597490759764924523725564479336269819816913660643742667951316228274078258297534720045818710566181106531616934850167579385577374339874753237226967925472619367808107743923641917449789134957575573989271679026868913608381778596984741514435859611170214647356601015407268865681065202067436286585702417889744652932499072557883456973383841566850177826746441503061496587382303785082476550378943879444880079088968515444951247279804747460190109255592602539753155206886346707571723285184053708767737406788566141091279264766219247805498585591973334694901065737248734157831459693669495847229072904290889924547931967883724856243803491747432487817719904900944994589795431668659538121960822650535433054312118966892601326099429732868030609372686862397423643695637852082815342670818470484593991645202894836061377378944325227317839344099616774402602582362787673851719600405957695230432572734823241764228431618665979890030775471974666264611110963981295460012799487806530091753722920608928188746662220414628978672465691277043493791717910265923752174617303687909826093136577251190541185577434345825132981935431774017547291131780771394000111501150660984608050392560840084995457369751707031237223489081464783595069702124399531174370427298229168699249440318112866247855587107512000532133869983345071276429725892618290749165259433754924785300029676075366315044007327766737942149627214858756221368110993582940580828182114648582158803251131668644802902506757616854350100934688948040232655140160817466041771378776326986320509127468695002229729182294879139946459837997887734133015141301762296258472546324740460763144351768293925904381224257936835256139185396642159106965019085987781776535795060786222226205830225452996780152959060802103153366454937861833859543967870979648772912872600862512541749350421564162257954723408797649407622707046963633423025193585078071799012970329305026252310519510022394627434784939884142386760484724481513996828536153376432945477367397689550803827355433139440673194215352081878037607571792881453217490830439021747854785488417471318774552260806010050019944402535007463696617645180219236054311460968674049893305588701082019633746337392885773203641597667124863306751578081453432028595385682723995961405564594861563145565149512805558414208566281276956176091417434457538465674629410505339407877313829241905117377830155467318460749583438291446781020306540598304879464609039658581991500825248609606784594198627595263441139999000249267094395972092991260406257183263834465962539064329627553880868296304907195125901233039264514764079746899792129829536188650589998990570750155289608366906535831765781543844345737862944917479614930989033955875189842768729054387789433950651088857856747767315700752042053515957629234599791723883967744877438228541555395943340957667959454093552103052526830557936913219949560502742723827816724655326396724382538773720001710964678912227636841629050180472685592155360028901378776835644527086654320257046509342094379848218238687090800683975658267020082777979845575233270747271704081043431583218900525746067781171340835413648670387976647770208568735116006189142873709362977583563635685441548197210443541184381943643005942048357623690837696014640979134706418891021815276422135509996513270447853658597923818850785575796230246766258032504762471706855528853357029176946446359649635830779016845807632784978086905767474749183496760947774496336734900639874472396435666678603014881940867856791973131451541520722494017362625088712028905560123800626723750600271517959003168733784167853780925333742013362103022278651192015776670594240001382429766215211161652021740320562537271734618814979216649477702162239420946443078718196551372967043051746716730667850447861629413939475865538316477513728453218380237496853468959731235011922022102104840099830940979819288014721915043968242409460274415279350040147257262824194694247603074800716391634651362821545011453534749098712730787611769799654876153651906260409401317673675442824053620449104636866394127340695729178219899318805964280597749907099744367125225775062892913912408859802075130436052872213112409515859388283145310725541080023122088056783631134154725497657606244704262777936338800732170967612606091336046658247564365790273711724084916962246942437569624288096815819573293699523095027884052106147034977620588705327372703040450245922345272562488172979630751635420625913003403228088630363505328481500501269316830019928941339327130974893240591763791392569910454058116971227898625137327768481656717024847052982227937576632375507007164735056627321606889927321225565068643848806152471309199439143205126789334046798183953965609126480651246243507205572152332205750587348765607154190284394885884158156762317788788068722566039828485336551204488856909597025909359086496274072884235558916338369262038623961303145674795947785437506460814407957618309858308447624128686203659068227904108738546786240485078418412519564692579286171938229621344586825006773069817845372924877688000040576582070877337777719744796850073207786441765276231592752665141720426267740820535878825341504267688559028022094457894680040695274880256115454648570692755654617696933880655297270933722110770452502378103109525660489407345542138193878884990728821572861192886804410648567220192180222313343804421004153799463560789966900069759890696673828110388563615121532286107426660437979382553034109555505674190180394931819357100824024268891787514569871152459228058641744921746123052413538719021942678640971202867870104048729616244317842250585516800180258102168533195087166005641010231088047262819604395797765051565119952112850035155390215195133686425387853665645500609171913907475556581168581418552616717398141948604683780299246187814455494003254865165421234435801834636659992001434364658854763361837729533570060517027885934000223180667505773306051656315533567661157022454623374021241101704601656907994995916266255897222916570071180170161928996416196657431332424439525717766543433652731354126968771769811796575985540490908603799342912010749102001512222399769724841512830662659967354605057047536128710833976319229732328201725488404364423979224916893546942150377966320080998983948080521079828051403510584259768812161263699040213437483677442066120079325878121565830163986614331659122926898958708514292015026566555960974482941009423733103938640035903491809083478759739566142880960874690214169428319873377870133923594480934149944329353724539789100837864183368979114995257628503124299744686172785450961971511443418965079271744119348197091718490642411857863561009620291209814045081157831331729400724801495554417983425498961618255277082121113947282105272776308890312684340049441852613934262709870468801614516079156232649479332275474199288654576336748254401491436772164289606085867811525190091599066845364371950699687558594016492929528392873117497734868142023220864698816801303100749641986032628548124021856767426484301602359997325305319190998432789375008501412733026123225929776433802100865633226405006971861686208647166302313749857013952661075152807725672890844034719573290952441208910061025943937051184211868764150862145961079472136918664910854180418866790284514079007227383144771257818696858957509659659461743860055821184155588424435780442003201828672910839165624980481493881099641729992525842636126886225215315098936409773440662330377375453548963011462581789807952762095916375109346668880701760456065018760252641342798285525012867749293447308113758778227996490609245959543376375541242090901491388671680700541732126933848012737199642769807939475187679228672972879792399563774474997471561350448616870212546059152580414967103997358422707974321377456902250760834669588943970428755551784219146657266479187969001059901555508270023378364968264905063137351202699695645416613499196016665133747195540230959587222921292200576728639467204455682914177714972188902343860174329320580763955563958324017155896059080032598548031121236467092693385854803871089222168346377897890505824631081545360137745130332731658113097005879306758953440565851091959334176671400131081127293334125174019912281777642342591488282717766074193425429240089063073426084969196757742280340746411316145591612526254438018942310508467434177960579918956294484800848014245537527760008708295410452900711744295386898405784577147612787487780465004064633862829638190162911899319111098717113001823521468307468419775630587972933885844844563473174835732089390674399400100291428846558370222230828683492139611853334300197368786364991813156127071904877302061437541625496477460349005313115989527230896196528685697008309755360519499907825372631024560515881135721381352549258075296214045077068358334483352685145888541484496500385647183979044199441459131704061945049826718298419239976116029237617248171862683690982047177107575143085670057229561560875223308847775659228202498808019763748729966115958759738757736852629511748489671979739056563796640443872098102402184485500177032914484202176539509639455348971471227831232252417372650182531821880377850313318861559616217115208819210388455126324223399837179730525676939841951596169648152581624791193547550985409664952454272942325915563703535905757993994442324829978699400914354741304987113829619739865716036316959306170059919715776240237534995106698102413387252647188159110091598062205583996244223037070031908201087765405254767839890722815631075968939548190524000821170393304022887813301144864614441371968867781238933076726173150887567274497212390763530962626275533363271716054752290684479758542353698974904430514566496062523465092105746788307426424502371850045303174815902046360464882412388581961786215049838548370619591637123469167188432528250874722959138056674542886533365197410608022249660984962078136534950612178164854935414582411861851455374981141704619858423827827533078929901522431203211666208824844168753129379517465555603226414481213517259585334694274862683084318699152190607834984549980289247929724789481132636473504813334880025075270638594762042735454629587530219916994229730414977434094548816492504366973495411945498247130361869373592128760055867151724625366758456678057709840366368921475366515148527841524472158193094016155536603512257051235527531266372671563552519557406900234038672536552270184957804731602903106142320607599613352079010247958068260553124709983700800273986313123916360562109385999961678874308263962501484319288130853184686272514367615420417795235781118861082290182283063373788670090015072878132474002977015362849804399019632425175182570077276780581547398730500377384054927013717597311610322059059799268994980004483751605297247767604750019774701638937715442125244155468371332313003903134891022362912607967921872383448155376958024867846510946202154507728312985130536249100978633803938917869064372295174053184846907119607681519394103462961112755961288438110000923265801885030295904949630164622900740013425634601751480381907756399267082636527873672148051290530955419204572525100866429851494816979176286128357928846294815572421081982666412587225044011316464912403799842171228718541743917182205498833385875803889013904326066145174853790840832835366040503707108590189446602903411771374547359779202236761634619205837448559584585510257069726148170752562125572291123301391869499633677717498213924523098190473446622008689547778383681370863847546222884195762042808606796952548053220647329557260083433508636109411525434428417564461821960437922312159617453793434004259466179312762247377726010856469714096384831562102375296818342029004336005678650723678563320513473436377898095413152702126594524925193989781133696227116347998201155028489334240911206105589262104007948066128543208268147119689192349817563867541818490390845907005610724425494942125746414426249111104703477039513969161016110542515383672289974968046084070559342295970741620343938409865056859369942497385839554248251632340017818319282267741663479666365671071309137270831769525597333103142594516449268017916703546766565158714997161665247475578833738949831325460277358318554438392550008797731631433028889382321246127916655369522191270759618184007233700439547222284953277094808425152135665816562841584921133144742547920851250982966895188010129334510477311012561547392493684540545291772652771723967922265050257706963505758683626611316224854710579287309832822193331775633499048772768824521818553984510457079120796116007453886004240416720629665909169092945163633207105629940303527460505159649910017629525397749886226192735633728861826280277036217526201828201372218147971858361036404183479176895888953555025729843917326796630963146331554121104927600566437313126144785277312585063467042408559113199203507317161217285240734439498973074894164278830647050528644111926675121315478249649069713523328102444634199497019983270821303534159997021559379184586649035250032587271194769546727506698513135190378697503176973120697603913704024888873237094830464796179108555038324247015187148388495614123139262347466372442676269857900973425625985094087316490810728603049770906700569663685213737826527865830511805460896628371688564936433457312426730743989084404908317740810076872482079385813968447319851592929329336905709735472951729061420668185188524719893323899743179060819521130029480436356914879213843628630637597827378548787217479819885424364330250473898581771051063168478329252652240510349043648056997458499647003953465634197177022365488205121382528218248259343777720626992787251888773286799846176732779887028720497858320673685668073958312310580588629041023443852275093393714388243527253949754826269166936443402181430820732830575723495255732085416428104872069625189294014365508253817630541694456465616288070892718430872255430316174555385542645081323040462547653552178386152023265939463286915892687532617295181229931112950955501837515640371972711848551039724626779952435121491193402266481076474314973224091948426503896965227052101160836669320836386251374469402596256014899260904865975036396262124805438796882562936888815391279738677833553509550075427050056569083463585182048959411200445524442832858593575141376730521390101446694797007866023803078448564155739247868713202750681220718368199209968985069740196486448893429389483162744524500988715849693487093353270170067142898253829835047031672559225402447960717947573826057629895079330637019855525467762983570245281781231801398706486580328193668433628129534140962906666042628681776618292487645569769869331394486691320745181504820518231565335195770995912043287945958538079630436026803306702470342079869247180949800156551236443551650126045281862887580222555798178232426681433409235682359048339736973845457785812135721252911677362112638514578364889014476708566744258620009347873851954886762536047295398627757035175229858284900859389796540816672563695409539307929641751749766244149057531752571183563455826796480187437341821743458918235302609621250082157306788978502043281987034432120677257060021933101654857247890751369679936821340793171095337219495172696428334001234499558605907366748466791481256611044155427280942878038448368696020713338571226477620701824596986363481784005560956624396776591174218197460633291269765955375677103225886474455236601097921876896387031205703206402344884966846612146042786907619989815282988913603628175645686800810617856124160782908727428660084327425837283990172561154033820831486836171613882918834512009666788000671697341697431811655061388230389393486168407099140185971519507017609742237266154872368922050600050911379587630929926268608859888331338809444641530270361529555615821808813627246276053888477261652098488056774249212331918101348280715297729168062766376760325492598997465429703654281765495369232378056503530981416041617955989501982774724874055311049980197755879366266535995625051721376008111699500864639611583107794721500485207625076706287494762604680915716693685898031364850917810374111424952176996593874583401878940560466638833662384644350379458071071344236570808550600856952929177757766422004179810967458006931183363576510108672869804584738384224376301214106391830212276390832825761280745325118391447458922434822161116099587887856479016349814818900514971866301737979928493894495724212984684158216715763878767343486235414014276179959072643612850231819557767043882819884143301889776063824904901061301729314199583613926242010837045729953574378990447478466413825095293809298774446248659719270853075840933535461379460507084912137313388084817467118480878810869581481285835059607206374313593546542306562902092633396118182153524641993251261941319522467823719058473337430989305602892731932189868183152970301410557723798319850328561131169304463148648131064349987233009423477971169287162259450765116954260946293129695849549249492232620123902796722860276362612547091926911512984945395593745497836883157622125151458518885920193388250781190056595595802772169341615999755219309905623498318052955751715882869305006787567119155719295937679042189419003745104405569549610560771507350589956688812162862515943976081511632219543142742870132921811387559206220013374648518337985110359512846787258851608119421071674395910576313722786042039891096317260383498764527763009037871912654375157734943090961751862164496455195625621987888639889389736087052386279972930473570206998968806407047876566592605488434281678569025294786532897861983980278241161991127259772409430482145923600908087023151119687186429094682910666774119181917217083523888622752432512641074656426794926646647114392065147175176470598813624017059971873873152987591871254368867976199151019520261969892920765690700061106830010039419705185878587696435549280409316948634588797733695360779951997208259936258304399958439510914076852277794390820365639024168762903410002290862344957570674237281152456359056274228809340460139395396147502999724824194422837061228408901139379607826501847858575973154380924888494268769208220183906108962381143563901264974515094181355187976624584012620292925706657300840450221431600302718242561552792312996375320877753646635419093320454089307245804191724941489170364646413629077415655432970058848268352072144048695482761261306318858779255277235098681476729639401492055143209112291432665850904735290645179598166795163839427213846065748201147222689848788110266260032243838873853457547427231242139867530426598145786110873075684360040705589871865029089708848597592207360960526860810129384570793954370768157203959541891503297995258692495045200615760583761482413912674569671339138097387231753246695351555509848072177971434656283408199355198611724958403735043787511685561857248934604132981403135197246378110029097095539190251436346662359613516654000467687838057642216182993568975046352423273204947120407064362381842311635537690803916857904522492113408622793434446996317637013537039111946839942753556842593638745290776540870539064564205754604892710178913422349180776089007042861281006442804861070632884746205465162126540298797908611019629745342399644843851712246949486322608687844156315329778667536026706313241827550877224142448337349017484671096500097273671744002690785851362042553398132216294418894738124662716888880713425360007073904765286904468465536006812783514756780293215286935347796184322617561627163750436449161452283849140086503230675937384152294493467630755706588430106080768172893673840131276442828503894399409788277147813589208069848238017169442890621395731628608169759401871160848020078176575712252436152717406102348278988781608230090225608171204524990035381324151389493644837940447091196853940725379968579575031257416413364309323903469072486646328746047323732266200000484123945091524143835537579022671025252358734137297349542540197673244606122400235708744669703363609801849221554833556260636286497980605360529622095745593775569966370196906053081521838132171449123115634673878635223769992134623138135074311109468751708847269050967271243646530479136303516620719650076754086484006438454050913627045400483007691461986184734895367311383488964082256313220360742094084815462599611343747559675059680363074749376401294919447960360155664176471347364030635856148278833393763948857138660065784384669736686247136876387574616510662841429652065557708118513231587803947472355120257076893832585360558968563670084701319195807935198975052241665413322055963176468848149576408574884110654409441538384528810656471699345208813010766742913643757411977900361549036832018141329349668652861545248267539284458877606780154482498105308649807925579015942594052919738032386490843819625934959597725933619033678080859485131887736288485870059056270008136471294181456695344947901839040054551630996610731777685590372427792669532051016594868576652787785629622913581044950091247666972139591734397249295166723371389190496012759216749342361179494648831031102384938611270706572209850258286674983603634990360930689521010176714091510878726496057803968852421823265760076199313081593467749036764758138150887203617495604281318405184895592686468248157189960684918050886234910716805838638698018747878316696101488365335391419133027371123287412221803921135940796120679763806452638496646779798167973405757123089272816794606435560663967588868684906497793253329021406163897288106485641676476595022949976075487090301973782901815910654109971812271549335853218998368178887682093515940726989692149350149386481714008900335247378710125392008099374739470350285077329933158006551888065201606839638923079016733718771378942855979953071905243663152562714895036177888192564639942735323110657019573548298959589157363998412900752921191138669340607297458021394410718880652003504289904672825482531926239967420800025522157963264272503254620432537820388378005601171591546216580053075944061583229739205491750151909440209133246662650348298511850278398856393652701587612838342124127207114264598411601728705747892256278257206733505982078008074009168435342782795927914290040829304085340538839926191051579018347469664204960225456610521806051565040575327028830766206034408808987117462701502409518366664220098017002956066247322690417775458366283511560843719359133226926347128001364005780670501881898815298750165596139250575690362459431158552592369576341112052569410969771404373498236517649654861472389714748957009206814584609996321342235979541458034532214442438546736058955503528800551933100536130081727269851636814475921229515670839855431386306578523614587207817533260612727914294604019514882415959838690391357260706857935198547792180535876878481909696626831354615234525239371677423105927666387872081731341721004371735823521282782171981016881414832996107220485575527610571569218081760165159873195599559823334419263521532010894940842044464271907809300996933521738597628096033368997006797349678660598523277956673900864449213459499285804489674339591464362732533043607451067121145925547678988330704126391397089368511928092854985778425312140528695231342722001176450289885188273999230411629041391015685583799190546782275556488457341226397739997400086495285858069784867438970609485980684513000626092551433583795603192550841472753596404692266213638964549621921043108635405506180684829199435106035658200493048136422182110726050341314761999736858351705187898659723873873079892885837504431834368296276272374300272780052635012842770715152151987352758953744738581236805889145086004048011704774246244266730615968056219464270922172074844841068524719419694116935375704265560357891571954663953652516497519657954012713362835494665325764965809345053291320779888699638614832930248586015014586144493187296026626986140378246249483628568293154786300867813271248274408505793639620937149639567188209296737097408030111623449156341025249367915238624993652837489911765938455979070050204579253544314249291290273575245840963306306737833242476633873523040915676906998521624301368243296533856590101195859620014334983260653918458786059154941536327684083243909209728001250687868701460025648955564364221508152047339469519779685440385138766272115464745799056603809145101748223681707277679754263344296001314814675941378092557901861167439294605907326430696404558727760837791104856700480744084535219664730154434207436755276989770180043505092795731186808029106396679219907190144365362696549640217991039528017206281821987943233067312436523593093178425466823493456421157842855629602453300230723250848507911983905065106225093058897617464703379755401998723608631580113670619432188993556441027507864190447323136601814151584151874050314491195294122115299347133414825695154342099074176108503689560606316727607378504264445358899068243570731385415541079667531874642037352403312338737712961711080475751680582830209069568156097769797309449320874670982441106908114194201046356115154289490086466727475172788638418141203303785608564793214227869793788959170026440922973219598049421323327610578431089256767998906209617881661572767795629905747650275144959509994158433513505949859679471569630452050667478311080360417307680554695787100310761539358626289030084463610831282694631634853456858048556151084789301232684659220561788659915810232864623118951197572836504873007058874734281732258604465193393311902617642599853967360426263104686044565992661765002810582937570992427310982947512997521236185590072970234517844926847265257272761917692709410972529630598890434541270988352311078299254695476214840137789608821959590298763332291864963034956730913920834901299537458273672469009669518494402261078636797969656471168493216817998906900129512401062293393800966120744463189359402648382299759668484713664777627903220772328048175189615764366844451856233553027642138512631165169529991342360980557729909057999607832113371646320042931016947273350521132697143955796865933973405541996154148541565124916242115679521844421283733342986179939030907666404566522025058744272466386249115740534291293446658680507988118530960365442886680091223073387631146401284819933292956664130864931330544535663220459187907092333996873029451858469138846040200993360527979049260938645012310112449758145970939811111340551757787353840211980135126120730422441293246837413936131944470991165539717237552299191647546487529691671288037972757388123272622911718820076091060849038204061871358511852299849153067210602007007932477732783843610882289100961548030125255238665550931864536958187887721172194791888913291821451553627375866151024796319668611639858730986730698163909216031758818988906450564855865653090913713539699903595307125907838291212880447621166894195025089688898675459326471175317805857033333392986239143357174312082679595317933892903523963159730343521899871168663276647010561067790720454813702270463110978802381185606632493997517599806208760099754845367424136589949470853146390219550719038197203479670696225109730261802264778541153650422104121461840989671355368245892883294587487769251258848676059993971236056943685993643181125205721101728897890025270585494946251163965882159987569626617358486295510154877833922812860917591217072351586383681613752936609775429995602279557922638651889493690978053347743420066072730689514739888544136269811188825043091786943379757496877707325819108199419640039989118361090438546480042112536235973806016606557377145420676723401078550234861765708198364438436579440055212957961996605877114825414123778138127309151701772317480568227046583914105907740959189889633022153450151709692882465082227503226213886933983468575285406629623272828331103298051071217494553376458050911787642330032222980929995593843234299699345896074428898540100652676543456618204509635609286872969643889574208556287354624682218828265064553820814979284787195886900272455667705189171914778139355157866948092984726858931529792829614335433532867258437378710253839775956055837622387777923173964678640642689802735012455644908700031248314938106408663305100486709467141565641034488246331907301828365291140512024094486876234665212275414805552848472485678229673780148260313295837343300206822416337393582299917672843296405579142103510346960958281802986089461838264234085498823396957563916019535638031872215164347393269612222194029123793732007878223809013893431402426857375070337600086898308282109045214673608405326580543213534680647943155435162017622214630293156068064203478358195491495252517173434515022070458216951701947719651416750061543911516559354943452869958859782609041855045015409406444588985419515291291080251747464674914893061436150726511646062033446229913660016391979852828716622517451988378184019811851463002149920813755002300409327411452924679575045322261320177608411650087940786156133882596999049500469047825078903793793414905491099578019415693412080065028559314694621346052069212728080709906688996046254561230440317745109691839993963609702846610717660956771016453566483928848338350923294058232655483729979268763164078808624006229821324927853515261815004458227677455061080255911081478539710146086111714075049325975178519668460360381759478948856186900332278044186663833138779113609206806108419966462538178543668881740330066594768141676192673953459091069430383553116170495268233129149149655967173332965563830719467181482520954199167893993344324727987592983143008711288631057714095596370027079950865391674836451675698808392639382720371510396468001052503596859631314237755753034967610176385099338021322272297003131936216788255647857171743277492600509895257091829943719176257702025326940514526271408435806245473834965463450398300491407566124871200049324288589853477619434777834352803339074299701042367070638724308703309945993303540776731104078915478303807452460493412135792982138367886865692358201218615691911951869592715086281078096885837754191935604729752792987182059700214656087694937017049607173913753946344936877117128511075300997663250162271689284020140599600394537143833744676687627713768137015206999875018759938206669647537127971889330418579526822384614962140169082678951343644544821721267956175639288536796710073696076909914188486302969668746176438547478951464173975155079523253982252784565369174955256666107012174643254138490054237885099281871592705295913573060251446109239194602731058213910737196358675375962042228790118291814781819755012405366443764486312979744776713000277314380265182700128104314376923965002168027003244044754652366088621255111243093256606645578885858180594269865833831677898113821861533304466418171507817114588471374615181768968553606097042919355921656061596362540515081239113922837049199865388058750628073053840012585508476497335430766044665792219283413657496994614358009433446582946445284315030284023639088304111512836265607201424982002263337410631149209856356313075884110420974921156175035024775917584225041268605370854069591944573394346476427448424625523284909363937894324739175407117786489780653463390521599623007106174449955411939825186775600709931904992884424593889566103339990452974629653817461452987065469929528540427901490509242411193603262304691604738069883339666655200656667348301663066941477821468158582105355824721779781926255143289942283969913875012354303506109824101397772487202912916569844205414161445403659494016467408135856650956482193428105146855490312591824258585629861015975927315302937618200336054545740578984160392861753942259186536274496291403625741271218779872904170150954927370969428420095920814069212040979956563670585372982788618878989170814857507165374905078986314274591176079548656485215874907878203588147174382719541271069759809238171204446484288694835806025835611947137587495521488720709439288329981511193183084564938664443129909417559680961788736343357654827216995066051687091291586747231812743716086496453585189782914204553576976738466483519684333714750084486625000528924452624786057212048768536596910424488424562494744948338568243044262892679644249616090638651511919557139797993294520799240843361364933551378906259618138408570066306597284860035767064435001205944142239000056833290847727917379547103442188122942877493766545374316479892594146509982563633643580022609279754728528193664711074123618250238804382497101396866658190043561981784622568676877736460726513451228292887877352466891064847267473409133670603626379450346639369372881859195269990289571017430831525084819707426615430899822898374698849042691696224685054004063973781045346674356516505892322976674831510215126547578171525421182117663790970883565327592471558879072308284363786261682388823795683450227043512170707901171574329670269923275120420921374197895510482061191323823279109381946571234243851438816550296293538284629648792235144320791200415673912743094660536189353147468754690421716198957287226572586995599116566469879359066679241162959803077016634298736656478646321089692365067716332930266243724965090114673318399873306827070728264437157868548916707639638355118757891767100698954724805767971042503966245489894864008202684953760983886824581328061795732356787321889907173770986188270430930504079301498827558138372224070206566417637875749293010001329866314019121364783540884699127323370740720003509888291280605941431428985887698036080131033129210932482853497139163930421175955892790464047115875021090413430426554882458943410104763119324766089487268411794794668339085355268657170445244387096576057371342134589139588538292936812471457537324512681524028791733555230935884597674583687420236895413258893609029479461635267415431238758076027379594041655289119788341309963876643703798844502699097749093109067270497710993287174609382653357550534772766844468222342427395259641226159088055537241116942042983814676934191798335479112333601180453750305343811006803671314005261266814129405476778972517623215004709170869284173878336763302336986186010547008541907125777002010142663538621044782583009871556436154945255167170521993926286031401960283663437886134464488246436323593334887591411771405845092646886011073160576872901119621695082940484738684931097842829307917599033809647708271651128661287882312687772375113907074756155114796532907797906450526960355909022674726935555565560749090768363747592889288235986875291372316616629028820481873251640097791906044290166423349663541002340197327182858716011092154375851117146757190842908526522783999781252344204334217509508962538215429153472719670411592764358441915233816142606764042591423720192724093093769736379563568553999430265366493264869401615502924281247161459401284358917457519530083811279259356362684917744928705888553251126995322531259003905989237246190546994655749074958008350728001111037894219957750171325780083175165934674271133216669994043237286772974947171757616592044960696854487102808258109070807089288258980303927296768832901771795602680610507980197815628861316104377246260048896475471197021216639290760987047139121902603390176670783037770523416609126339209906583287651401616857367189726097845318929896121771591255709639588678330529963917570434705676196067963819276881055486132235039400530959495178267084098399486403239297912370138402726706510844537365876122997164366661957733466319937972206869628008517538821142383830249697951914168397735064526850501055202685608737463061271081395278105723569745563080318171162149556462477298987564508980946927735454615103323532541525125313587238558319209055430042205978514992411626274776032175227227811101335052978364513758513034730594005357361941584114460519761525005468897828763716251685410348003782505203163506800185028196665370932966788170836695583452880008566090195974702021960739629055863107394128128799096579294452012149281902343737631044329182805300683204072746478962135438686810688860264904651515833464748574038162513988125534709624537181686350112030274104600724050638420140687447491716711092084569669148881793863444992661566914389937499268681574067495879087499265659470645563974442990659725278805444633293154688262965425522579634308818522699962917098530858674991455035477758733781929141431588898310550001639745399688349118536509598124015766606268592475318743332518262534886724011864892379389293405183781645838827992035093523543940983068339365190141067953703967121805704113412191948935719940175943114248167063689058578469527410207879204755933246292194848766517103220490815145944260310418465287517682163164296861849531425391335207287553775990166225660551549367675580848515707222565308244641692135799914754460416431934689462626521827129658562299025990826446602112769091240190323156354332757741370800768905505191166833768366043876434554211616890190071544553798271669426610234662609414068123144537880768428455946620760135908248659793296174538351671540643721031182222186440375995009619800951503557211932542058921958299393044999755821470530030834447218967367701584426006461769728733972045111476953721867307876622444904145978782667400186030141088682311992183331123688003272013391184805060618444796124253070566557008092912214587671612593089459538620816890312820604038994810814758083242828269963922460249663608634704093244016363052694065151814519920206383692981212702694299185280962269166352642839826267341774660793592700854760063142990504375791307483383811820006037442383949242423670727055845323346690263586602362192055727469184498379817494036344208137711144921319787495696032979130407474528088316047992517530309948520828334297889807179942864165200063925973233068522318855534151964531119062779888202795539698725944135011993567483375490853289358897950315048074707964106693961301451570364180340997358851907345292779208536238354603436491261475056839672170956522714166195348830180467566763039042739495946522265108417328697746647916076905221622488352812777743142391019938955793364648390037952187971880849849330746125863461963633700360840485422759303949332874851825630941694832975674072553334820824604432446010535164410994771112369917700960501716308670707430672226970525954520280948615203295979337001867377779828547716470136105684301077086168553420142394367052804265672401113972830159876425240748782286028749427666636373315679420769880734135196462867279875737391062196561076951711134976957228780221892163324840195888455676225055755823574653813847016409382348357790730166247437684793666399160078970089195992724020735261881248330166912182997574943053363297257458805369802990710857792673828085030478719492917972546918835269106253305132859254634669165969435965292366712124282061628370326282743018640551820641566809183415756741897007891790084856584686173452752714176769271031043313905654825381921062510025148450333621964745353022505744436676076116372631027980944035529061928932074811799712898995835060598707834421939258608827332604971886580734213131905269368334603056135116348046747349018914190082348573712519116615259022137883955146028808427142388125286582846046975873759255604634753156339450921351464873761506667818386799458764464902058200343016844938342784061224075094288188475036060147759747967855947055998785660255504635145157191460976423581538606790805576976115212639199573476247976811641776625672064849502058253081743231473474690664054238121829476702490973791442657530291587700053477118685077438425492266267288462982870279632665703784821865377871139604889272572980523244861040594143946238006239299276344001452598090291439216715984586527567982224872212013146958256916474705991868500483926669916185809319296532565794109715670292992401597824506191231851911708429755424115342494561676666597766392107273493455863832177685552614654493637523446036327552553682672255638959573763240570172798914141381493617282738042474310722763312087645324221836848132439872456936304429784616003073652437869881010326319005016948665099294956971197062381096203107477822873573457070207604133638036240445714542204465360645452535272482986990746075573863164461079600185044887977596489564898988275287043293588914453447817283577968630642561590480879342600627089966586930818006645773115299443755208995526068091484686161291222803698648349171144088182453080908489079852096996687968478625882925828782907687512888178695282393257148861136927426258721203103461043664171218607090294703745017416923377100055548049177853533547000483313201130844164275850076380723483112271698198428037112314067072783736568359187429955837124782664698957879826661318302556320123939801026229716866156780640171683307606435525109037255888725325606540337153346929089538377329331733565516802585219797113023903989998342208059834765006377176192289450098462414731637869410857730430863069786611491920346394474217076787747677129815685122400466991686962247946492452817787154446493872595045603428248354293778782811728941314876528042735758415445948514512533914615791517083617767002437110552027338390862999112693013175974077417519402340723072300417426965149301166922972708773923618229369577616299307468863673329363457922494041220798966855127541292888856717529767189746770246716607433447927330752198804218774449131829265851053312228717196001537159565111914594939758379622987858097217567837725156880262851635025423135400205245490247883125701119397781509553350672047932557918505213820781553682245112067153616871954095367947475790882403631788120975712306706829050297418926763103824052520877387523910130508825734475071053089269660499047765400601360526312864526161537182666088907651149306210657316014549542970884265979362104440922772291856244954673410400464992411452905649745779640426639874998387593141241672812783365560974999540376678292634121798692983084155670308585028620359803976383842293606858589720605295396002012539060392348103523643133736163513119103072967842240783745279998830905732779706791255438091869361670448111967747882912475474223075689656193767466986709175983358629648372358002118568613946986731074305330952298835522895060183491409466436476971163743496426963294853626055500956480024360823642900160708514197156020735631216343406308776993556487838427202182633913930923274038981977569747755579322741521497355879039741588550372732634814651844367816375744332982421939299617142948484152175170095847694041825698787005583957531119066459640180226920602153917132075070981449686697289987428055109020843477624384494086626830374106095818957549825513081827586753854659893863416000811117273210477452722842645832128121404647446544607537839211602842324100070210326490847529783462461691120608615045873702563020769650082014003174038317108096796190109587875349027237341864839191245865016253977171681917075039664212117732753043109261855889989956799850780350876805048647695625870603667552537682483309897536372923594016988556914629503075589213784292526563738421688877813340170198293897096663750834808970935089506978001275399186927874083932063204868517689900561685268996115612829534363696290595622687692589708774702079092544992592386323225189595601719587544840486435125329655319132915506120390526197504352656722835716562838843073809528027090901241133994068568107488761478509740116384395902431125951403841146113133346679204916717946430336286536899890423154343161320038798720012188030110985197210568007682131171263750007330208541612474951059052496893970741661309250384733332490540948609282160185321683943853323014875413653064517259936913247069397795145851530918493788913632284592828221936195285218493589579177853279192871763885118587739259041426212388219490387803933340957683256309088582801129252740711032843717951307852628593711198481558483139110495128711940898568937659438627922871652625948097378306682145354548716173805792970440635718594623684845867927927110281162076693477025777706487392203945026284568871686314549216605811241757578255182802616064036589990575891726747296722368326531092994195590178998204326030368307374250354390532361270540769417679349283481435235895825656231587456462690426792060646943619483423973949728374563105312169402091956270781663943650791480227662321612299198361685518227184144012690953737698655360412456421900917689767755717028546558333265748907486012581141233597746607956616367699879484195047921721373894821004291388920936594255690694843348519680912976223160799925663237255144377517824359577730616050435930751821929306060089625771789142698890560308029852756115894188907815622113643504980222382127533059472055713917126019832954643368329127065105474858016932311753358002566534108344491465814885159757930985490345276165672785065813405963912429470281968398330744744668755934352788927492551367553639698662075332437702610638138977977196351849683850667695125567710075264560808846761961389485008424694458708669505078884310997971398353711445055191841894480934760499391418161801457169876186039066053779493623849251720982751413734535723763577188147120012777559517909035710824787863922812565988856986670993142328366617464617012554367552730503629631415342782991993553082311748918717862903795260401329060862054962674037415381929860165032829144836260868465739802109889447986252541474906270516673353235140516536751733513074177748846710955070829822521901007490515846836224831244350373906419982353204342396431241401799362388499595862980755851023150745224034698205940053918451531087157349755555339464870398359674718279149084338766656025938333300971421666826669614721125425846648541286568871036133547945659226908119273719855974330383532847169941402277383036951820691512488682674285321892452645787888521355006532729307218847698659400398980583876610894178991056805908339344555436365401119982595040851339521953718068949265272617195924206170017501185335423850570847638956280654214052067065562058637381028418706691473308883329348989479209509474036195947240324055476178936512318431486089773929749593789877355619170800282940335623235115241756831977102116836535630847305782437021442750587284969668563583552887903428990208203608748196294471262967214285550881796600494567762235737432002563415926243558116184420048167228599726966754707775704453647033661452126606162051987363993453597233386005510731671062896885840100881260938797152949927875966522345730747345156052350198413321058289369616466442206521789295852703892308011631819638376119607224481379216872154633439465095051389058491228226520092420097775270965780448102473281288322247373467082628392672373164560180466015893374760871168441615483852029598456661011752970448609176496605370622715218640508960938198546442354071142868629130956299991930439239683425422169696739203562190838108899319369797426163524716274086930665844517541552377338318412822176419374709596857691459256312360156017080090944190881313111631469728486149197070846264043803029250103990372768603492600823123141320127086808973314958033311631358022569032842984371192134703386695945109916130108109612439256018416691942015495800328953572445705188255840990545819938578078565570106189671167497408652811703274896997611833620125439239792683527332676015193328353036632807279593147985539175772187580709008596495624865465494192459954814876308463344026705365020770619036357171747132178456485542802328973078258802947127245847359513439345449042308857166463303207947835131828126053186126539428832089927606390197894705673461876576353525101657162946918458558716119480022107913316312915907637320555439133952756521358071515254056607672172055162986660980124976171592375838931933521161237257655489213178609196207677994123388848642236253934928676169288856871840634517861442597069544812573783433859020343508986352675997365863956210110653000139889108055900703861155284118799301232375440357609706027703797517645630679960814562996056661685095455834672853116766743208869778792383148139242648473366984146219261764235301648246746533092615493352761989463002299394442820334606756798505469698070558314834046823479822826142696454536285503628018331608438102949334909670424307498513271496704449528577564490295646791213214557430260457560948078040816019833799125037150697220203290214742846221885498579106780763499381354911717426526904655197256745103079084451427213816115723932195291706768577096128183116688425614614488448601015515129796415507470869196039017903768239793669583540650372208388177492587232871617462312660844977608849458190352758932231476159533807844006381996262093198953955655440403815241998481756708672129178109196401391803989086688952738549927633672637776260805329176767539557362482194174028961180601662856807321332486059251985999615909858089520624588109794985135526216967242673945293720422162945446703364102245150180972852218973768056204876513652958995836837844881653930385004094854810548645108681574264735213021056123768241550817514179941028578311867166704081383754141901441127054580974436847844292955861376290554029769905034951889970015354443376399082489873004929475339756390255144824339704588699794338243626067456156292185058450017354236866622693747446270527032803506768133127796885182402723353541998698702187208364836840960189587352963273744311126085082412850391604705837063165699289073984233397812773912534299872900418074261362979876875347227743515149544277692540224708985295554122233909642982095695034520849968481888113321981636880308806737032527389153751234217117766630576501150384996886914475014702791412794668545452722881881596259211233958537328404713507968746363723406931301858183219584373900249632159847384742316029848778621315665858296447011587186428658719503057566019844130858022115004425143347720769756338081230998019842792401850794604177307831435966992068044439753481853488581037154770944463072738317663939416050450806517894479024297163742022752927791471118831748327324818810026176079796674763018478056748139174278818713314274450794397786483192940988450608452273327058089853307057658600985659089436083968364481840224846774267613382806488489039176055297235150610754869024876794902479265761044197356602232425317697556054452306358430056866225101526968341050019926826628978611458254495588319464555095216304682435257292663238714827078289093586062676792214092092073549019131347502192886157751141203998355308120067361882689341070698372086196380968245401496419569317276479492689585433487474169797213124868373942975967604886772901857283203102239645820654150180516507851806496998318556750581586727955331499730397225370224051139644502654146157770188849095826590788560632248850801552539826167828164613545337590412201452651771901602166626874334631261341887848833586302018306258271708780237299880928978537133143523417207108717720090352298280686000121180254128523484611619568946300091360731755498199483031474767958146717434386957805241483273927442747959627753992046431691459384410017941353239295916459103629356212042084204377577147515778661210569632838892302007585851350174937245607248075521145192968965354417254249412372904720528732050774659244186985514466348480412434216993383554449646447909299819942772338754080517952813186348238631819329211778730157495262904616526404615192348317203308821663965352141911987682745811364016216785346510332989179979511109750670858181148673855264042843565421955712638323689657094401384200990945227452689866513143162731576020874700001327639195601333278022225544064270173866701535358625133621220932583125666992877872744111156256691568605665379639638405996905399271720200895455487466872358413582970538373706472493214164706677027480976692398346287587934892955946118871263020072791830102847349019005279930727695885317702040334763247767600529251384216404572720026292539512864347332214558532269492518421790950772813047365302761689973474632035364391106743169427648147070185687424106526974920936829605210732238726308993630804106222629988537053898302149559551699221887793283737094947212968180559378598241533975722379072467861526746019740344908355394813813406394326589257605146476426292828581055144970518811327940953541792334420307440772871075108638820762641437268669155966944171600455792044750743126717238185169840854112376355547278256334613553090181112200169118787940395762174152630372119172068593649304380462170706253504596141514794856808919164098265335879512650727671662995173666817160300741840715073452244018311043937130054079693858935896603588554712020823660038436581459851318498695364669762310497249417834402754090837048226877745231609084846430687242578947266728989541286929270466450709109726276702887395172660372053579621085534870457088475771912733902408535167871817816963213037594753489623600527445004666018518072665502357134746889545174456495803984019985459664044090734373436232498607949304105106243042010993646757701026279359469589347545119538520552906250012978675581393024154042596494998655949798052639253492013143433207553817748689670695230851909670039774218920424206362417345689932122563563398567738177534267990952145968586828070141702734793392599825127077648347605450976844785227292948823775668794523107542789259437118765374183166872098682301296384306674874191840599496595049154292244119325764170854877948289736719397684761996856728465961505130871215855182644882734302658090448306075817015990462025956889545872908451128677232275361986699351868704447433359381615473205406863736375935695181591203213698465463041839696346934984182021875757324405441632572733600302654869107594679541869926544830923309611329351529513938976846130894012859142173080118039051336723440428981050377914074515942659809957374033520078335223384081940068458987145802327328114577278341686562854869818499759075961334811412427798973763887583183479886511515041232272795013606008055075956664941619899304768321897615978858279585639981144808606603473400416358082831042344564639746767731637904552960021800773187158396909471116561971059857916836560001687552585283304492850447235100603496170320513564591441672234335387660297499412900149953885352469216309246744810408956667812596007421806475078512210264357914390656766953119784746840984804626625388923298683285108461187547904485571432497119901075212725291957562349228250569406572327299616741420551936872114658883887951629068123270416620405714770969221798756258023333606893510800077578825034025218585002301418066842854744001131071666953190954612465157816959090161115809437589285305599052117674476171181038776799577141382553096610309676949218372100772490855007612877752630332897165600384663236033264037528154104854856367550866405827885168583388425097457991955093516674934121691213769548316428463176981949459630714448914130891971404963968790264651267135279470636196949892190951359783010520360660077788431421146800660855492591189999659440277652521704947482961569172884094660851174785605768312057937602331965616374891220596719497460822418230755368064960134502455403466021061511905966342535576996673039209471442724709657349614878648862874196763724596055214605906883940913220164741317606947302990934225211793222776891966803898627672789055691463973562972134955000036285510883297647380703694630319043884774440150691225470975382394026944013087469234730190486497925881306551644940868181135519177874570220228740161535555324758141881811175634204152337300063303329853711410522769353653715505571511249124427436470029046282655031916339016523401230722159040522360558171343570294342945957578466320385149847416615282528950006082596144945412859888033862844005840755976791793794974077673360214420915878696613006816361774031052820502469498299359769379312439007370872659191737622908898928762326194967837796936505715856673396243132382381262573224061037143842893840925358644567669873414624280325432289688004390442872338837249408744316361166117265759819181067875887475246910314088156453620236173773515785179805531870317632804897808567263178861228422249177046965086158839567658014696844329672822617577068218578153740449814197348671500305180380294328831989479791100944980280383341505000855392237555599698928827678555908737610188979560321077210235364618706791707638364073508558488390596450001728204744361064607399601872396337365910679344826390825631332399139337741676690359117493865364647580189246008204163564061759451204493148580217167996854982354032405074795280692167182853000582136162963775256533099654636711112104876321341495613928833660232535663857361730782656014390054635530416543698999775132003053184551802284288502478836253556169938994088058985045843638495123886414047763999854980272143343940907832164605368337152752259983883631801346383379482826805558750501141695477355094554824806557501809746112615107309028595325559685725756661481124985847312768345074445776868927848202601985877601214199450013741907949001559333511446040202799676524344882249149723479375510809406979175692062807978957822563586179970895548276691557626062883960027751838841400835483013742072336739211241062972370631561551325478895295611626617229618147247601868509034466757558097628164207000932296806219512801388872289375304160020525454957343798178318453137664075833329739350353885211959308208107766887640126844789688343913640323928152701766344321613732966007073937799029853161155531400624961320368229898944788145229102312735899374552704325133826910740256796874038204906360919071494108574390563269779138378973885377181294252833805652747263337249491271032775666416787018149931922228734632325262847537844629691543185594104103155215407833937018450231737581893043672580926326019433676840707881513217986691903337942359586491576736390954291605489483487184144915863281183826157939261495393027303543493787957483475603977152049448815990989254656102457002623020430872768568257959670940620956418650658773751036253117130025279217558797959102275179431179144535929358661589969545043619565632001760814139391319584788305842045535630702186493767103528538977771400957870858292378414769629877125258343682902460620324072231208877531140376539377861388514112458077062024312508387983658074543335121827633682883898081839327567508331839548186277786803607622396848507901988160914974830619624186353917488863096655568823832720131310666629665899952474180762159043431052845282607158712190367925690267715393585521533952082885178173663219502248225093249774733884205459133828141273904285419533131458012055335661646035109663566227532183567265869013405618310457121182420974295879739786805739780707415219477885187281042601004556929708015270504693925434323716752898846175237481050226934290075738279644510279656055665481097744547861313931192704089979384064807567034521227540611967085430698307799912962630831073984127417538438252722139843950313676251806543656441772476014990627909878086369354706443409204078439329837161684210824212227549163158780234321335314608295325646633789595954027149018088387393377576529310788213857823885958040406273985411041570039898379883817905733012362408073417681451681867879707225281147757852536115179466106253919764231105903530769029502575684187014367314598220226650256047022960875475660286525111992719686261293251193526498472196759010854482841946255859643698235845064461384437310527386095844614650036743526916874555350149121598655320337268621883719329693414371693985316387770372662528533287641046129608738722585224578989550766666297484765965310008207606819708930687341665969210746595704796001283243012517293323965097313238478825351644541840803054655915430967825435955211746956286303578494529782203644061475410399354168316902447637814002634840750736087675194029546171683630045206890216509612332574466759276962989498978644667334087230236095906047453760431532103427721869891724897350792439086267457100586751593726435078541363438819836759169418861382101782992287045811008182625408575454954673813740599855634063258262241614682898307209559562452595935260160353765954479599011022298100946195226992075030427662687136840666368305915789465447557461618256237173354511702023595394674748452038278356819793248977327014390766308279305271652734036409947987043436542033689018153308230859276433160267395586617845174470925821391653344703359591736936761548862682359867844498897325736172423006432625985186862018320499796177965626081632549179899073367045185082150656638180719349285897494933512356409366037039290350792607272997800050169188516923850031088395294448698527537649101685708981546801731338974419156887324289398556123646196954198227768394724063453356689437016842127116995192898783144408281076914409783992548099020117647183750004270391301954937401342700754282512650684832360957599299680239817137751309744260937247017992973595667431537936692042008799798562166302206310863470730536668330699050505652128956293839575815838654721590099458822549552115073362452950916880548927288537814314759935830285684025760893615458623345963883600259589618059216289842056777157620491828184390742356709604274896985129479720131264274458463375226464750806343989854087755549350595913945623971554170295788501867778597463807131284911129434821449583114442216199494789122648498320723104635055528195911552941999612593032482628958759261561667586894112406359726623607031823445313780976841119173527919698338108773929831199067183221599055664203414769888952920683799824940580700297043321218483989473742083862765807841043851571068750162213651592495226911127953514985130353942469124003269522591426239556876984387234312560776063164438425172011276714231394098890796492977588338694466792639611290059877437311236876867010784350731021367905097013612017518059615025893816045888060766340714586740676142352851788144341865112535889902118665001430233086540188379609082777405848332660315532790418921695162079277642015083783502530408645542366131180913963165332351870153640074725677120152149331688721359567041242394507415100542585004740147675407219998115719242449421164412649405711613157017678184571971109493867140565038308246370520664367903201535656185611995466695033815215339948086772023681708295759781889205605472248168317237306572959272227170652210773474036497717551199123414674698110246554880236754804316764728041594352195192446353980914371564341638969691487519632224802053705578352520217136538802354224712774352765052521149141576748767331070950553262377748411279344304776453897002267925863766023171461977424745863446792997360697816065658356942135587184594874075401763249043245725108324668686404738441936221344404857529340235896863243005200731437073985942275320930066510701218328638745846145877687181725440031356409981161250743765252020305573553470246719319928886492584144526296469760554215813625612374995673567742956070549132698775387305992391535682471265283845144219375182382012211585344686538557481348386110197673482223170662462555962237246143069088047476467888979873064205315452530968879887640571654770384881026711856416294987941397373864934832055889614831929402513019405830368025846694920878549625685342467860511692114972093124987147885674679089494809734843482946656786840084704080713057952345165784785175206131115813533188579122365503425564778121413372056942818228680240828589094731617123947420721829097760633910765403861267850788311651674663331181955649136721582021122026170336060502814142018140777246329650297777685099983424414624201653671013082185491531396541722392704817688410217291119322936844741841009854183023448905520738451076770717048844410480987431465498813792334064442582386623071000606487955135778664526485146803426200466283006989304941766487890006112181199875350774495474238709839543765621753989123354050530591904911292652024783394800732862755253537141754426917797645711583614927677163360161003564571852462331201858196067615763351866179279377310270514755361359033440701291300832118190478173567126687298333585797748830389664742699533988342928658858580420485232814093716853590111112026342989668223199348293208706700675962594922178870200831435126465671645177265111862129669358480513060753416964891287007591154827894446440583524534133896962328233036684232888605090456045189793994126657618319272462322982813775421316884992876989604736152654888758062198213691926795585955482654869820822044980767258272652061042791287019926196344926682065353649408532918720089919524702341039105233274260728552987908015406632320189092510652711620410204830053914010570608035487338226785286224542920606925305408513813707913223422498397919953863963596753617610099680852865992107928945150247255177678892539990745122434223475908920965578503870462154564404640716542138356243898294733493653999970185357320959296615395698959754180360685230182466109438826564653498659922417710452807918961151554159001677916770219164769354314275541091065016611469680484972949429640005734126599407705477920680848159850087760655672314748355305007291734069982643456761407638884808752927028097271167464492050916924500946357541453540439845128812119446778483674497557128891168321260260238311360099491232820906363528116846877059876044161344375478895910276200686746537232546878735294217906182485995250148973070808200110441742122073224727338486301643086729261862211330599874433177873018967278733358687503656499589843499880810670998441813110309877245344901853889448688575517820177683461068826942589711138421814522794833721145308144567025115475058862289931114033926825284841530158985362444253367731627641781261843047673596202010430122795892218990845173369608154555979630217584075462192805841252306253870726722233485050725125784971279850721786423524216921432771054767269035706666559356716722649552283559419619296974706245322053205515096408725372605461950163591742439068706285960252896830496076821541351398690701193863590440836085108579711064773715318857667108459975140505855900210355574280950591774442892314420887441351456105385300059871495403596311284490099536740699562779071922387592674130642207376118671747449673149538215451928245952716308532313554757820239217011047476175409469839761724483785731800609096913919809546597180655265476633241693744539066438792941438692705727473042508062726959479320766965462908443556246515438210473804181086166304771359042638627977749422043000335903163263299306587712885039605199679926897309858431160038756289462566126771940684481441113620206550966160642626530998034775223210672420867465287101131314435996346180404630093465600216302206469238599778033673042553591038345057085008155226577460306418663429234941507930689423114964097795458096934097141067862824740645686047616236926024759370510369092093666917569380543869930328835364028398526358329016261924425880615952430715098680098522777247168767715947174404017642934257029078118122778313937258979302175281503481161091775183215682001778519429618465563755792899143893110629962977705633831163375965438168061776489299075661210115862006553240972314245673045554773223681483295740164943507083849220154759939892432193458564895552718081398406739245127962494753117736483862877597223421572157755061760734984449061548403193050957745464928929628456608309682648836139941593309524125576372098024729839314847834423361195590680888101865630767178664620025497465309895052335815322265160391211742543053452201291128144802300369775194620430999672766391153500114466895110109571876752211442403352770792622347950476512024505991556758732421266543386126719428173886671535310850596832047699426122204637000607095472735871855061348325038969676656794693146156649054926742763638064748811085402582633382663010242343282147339974386491152387455574456143126114471873746507850598752367022256219223909549758703922052009799651185546734179275154869424918448342764022376738525049284127965143572908580364164218568585370444554178762681615433071204771463107570730176703737180903619688146196833459327743739835955626340470434737024371551996620897987868223203151835173023669472056272303889155269225138610236478667923407469444838599106889445444393036726476147628555731575521862228382340631812587219930177490535803832314411632059038988731325447221235171055953716255470888546299831115635141529172182692770880914780918031286070634065343267853907270771973340635839378480075115950046038535051710755347939567376996772304479000323943854992207686818216113367117166323970237868742341797958709005941288674306100027323101901833723820354748441852229002501434469976534588423220527019592841734300770124180001181357931648714318599297255927702173081781178063572481694552213636952988806345331744766164904951589197780731941144776413515745478298218512276354362868555709860191738171594990446938687594985587413542663878095730612568418663856956346053021413100194748935755576469754469001242593402150622019326041046159367542943532469957503670783517809416302883053608724495245283450466026658258187421666854703637518577052437308167441966352481861906942697776004117870714895884190347782134549493137095376514034336492440984357736439645374726555426409220182896187774429827171696205043591517723344474618120081270237630065970391877645737565323599479150626061884677137329684431776053488293043367022025743013136681017714956906792972441196042440681440999682184986258983300611191418312028369167777578983435056216998767441251235097111119074389700941630552273066983797978993278449528289687636471584323689880359868675590505935107270827514408275029653882590900282131682435516521273850922482338058222859519270393753203767661588071220179879919755068961425770671217591122669061402924850835455119532708324163100602908269150711170683586599339793011502445228801932720749696393814591040697270660680221271836498065194174130151489219557116811545704393312748509759514565017786624022148388831999095699342408327127462795508620725802079153104786096813630306558114255956851647072473685958059661598739156879279482293733965334474439967523188534193302670994799266445107637581114579193437635078187704994317876454352675440928639061927802901402116518367414315625319028546466109763192684153067623026862590249855664594865728006732656331172018260893265686789748095507317911719458122664773315860382220024158924156674505752381787598999852476707021943916231371128538370174882371703090108142580559082148690885134310243121147806537712139108683147414033201334554714965112368914962707092234125476634110771350017634083043218670072139222264985039228771270087936652411633628642707459155589407496051047134791722721517521932096340271117488874387647831830032367423406268527574348408963105147692981775856388234944117273721517245047304818276655686148027105810398721340013907106771457570906798840081012673257614048768840224575645981240677190927130786104752201747246676246895249252707492801607949158275358048061279157940466816652161657039211473407139433843744162092915743418259288273490013199368100020856568283161647159807218645930307432013228893592365106871583324732571767289123872533038933579805337896312152201749009788451728844893976097496782855640675445352015499746238748736468414343993200976727715055163616181167546091756750362705974345908762590776464455008048566726585722706135545471789758103217780956353939464549052369124694857322142374691100204863124401423459747671998448228019266434460980109832002312332171026372135118102274492763982833677978391589261950310714870063551771101517396019897360866783313577045149179311098314105194580740079734360028563869767906858753597989170758369430345108872435627975192219938141922254817719373027779346710979550974973418351623429972398532760335766440081412008618321546467471422316675353412916842845552019247613007282048303265572940437855984426384970114675573595945057856323898129977707540716830255539271527229152323854329317370139394615569265833077365652416356532912926988744855131517040758170374310318474541391728187090105277920022309418665830747389827639269731226979976169166998793320764724527625833857911063161336112677281736247964787132779799768588802241425951803792486157033865272292886056072352802155680880452684169011690412586380024074111187073088436063111762556861204057138590678548484483906419754886564211011398908127885580334927474217901031292279175565388158540989915747226554673989565660813679443052854321341818865259478890293594688638741860049656489449634113990937518728411064100142353304647451802757238320889961015098148914989554809296875834573864615614588600394733193895170054104244329329975945634619341743873305724123491388540105168805239066275796264836942926209500024854675688441074725169241326613062570542925913494188823143817440763453885781762737083287040883623258609697760276609154370700873225249396910678187557953189117769516384370873211242311428427164765954569291573102445088769979890151825199362211403957149971052649265419361229209698306267499856345624344804792157213014384891711143147425947880557852946055948469669448698129466362467053284423944322928173685410824585094218205576493063003055305711223108933093094337772556032298374504549292946304613785953046377243956906554076018273917636116676839565200793890613225851483595552361090301130370875481303849757184325774954700850736121731715983978491940996715957698276161931391778348174925262794115308739938945724157691902073929545781609699867485033911824424347016037433922229909056622061986215727413610877359792670870051817460375300521292075429363615627400108112570714579908837383921987678849131946507551633251239029205169879869156047363071284926003477580393535967290106957269910577520700810256736211979825931657941355373875375530018173825695834104662838134342409596392773252627004841309898768534919346527004399049402547273677123045018492688446680397166973826002596778186260678538069315387099620887182166142534853880744868363789483342324274155692954300512853669404612436475181718637813459741138148756102945752411415042734553955176513004400444632058378074881047902711482816407327353470523247771541079259165128660092265856452896210970242948565984539943780656533051085802707112634370626863670003913099961009428054286456663501470378480302198833733893505051487437103336138904784454221084730725216912484254894111940101796499874618093215338268163870959595067571861662140715211588541189722994608549501629185366194679249684997637031325704735384590883907949715301678336246237388995267964549594483284945053713401345303705996556871247663468394434717513470567921949076766297448431711047583726277166003048630083241668950748134438351383608571106881034092123158143101897251948716884878295671992853089391001368143757297462543053463309319308993859360222220173545480543759786984376780819419307080761426903826171350962480528745707048935511748836337136110014881909373840908997347305814917242913532170543062524324793884271967861607312662514294404752559890607771873858776559179556089569825092449983649056505947418274551163240859016599382944511816089419950742824264694953272019676276698040554960231800946231274907424459390778659914939802930661324709345169912066773972085161010092850974209040545335565288203816678883984582361718264475848675307693929601806991966457873703551306757841160704903683386195891492363299017274086981159020714423952654879876954406866597925866751586408820527579264725479776004979501789307620207619139721052305233516974782259287124258247769848269623025555886684101511375174467947053680160275998770091780401628988373186927029838682477000559847444714282664060289665385967150501271525622124705418763973654657284071652453192984247345017101891213340613831245548012907937682401707558597845955803675554408777792319270203945484720035443603025940758343843925307036200357909028171780288019887516588894427678286696140921679227635266847865446085147508198160117686772832510250714580472928766983704334054272329435860353257102346319526994283259567560641127433920685577729331387815240663916049755798273475243898491055033702029015951262346084097196397059749921974927746960580681803361825192187016445357560128942132463841423170577247430311455755195432585688369712394331433653986872530708822769609297135599294744610390140770012948061835351228976124939578676349273539108833201074542115293537169559070146770666352049029021076110718377485097887414599502206177306280595931630674882797595998825696379820599200128455033653603898717973010715426650975425103854528344285122815642266802299482766069906438514510484806064955586374407665833167263774386658470619383877806381919737557732062830904946862231452947040255622997695559472370334802332616986925445220850965364240542376318158980625347832475070727057774336631899250450533317740266106566128925976425000614463549752949885888055385225587351383312178008795398326602628748906605459236623209039955389902743085819074719862344438759029185920154931924254146711391076542537071621865897003027192499736502019981799138258736558764286643589289499592630120757898704844587857608137570753639991399273487345580803294975921898984146765391209249697653479708916114026099934588194104482430963083995570296865770658393051831872147298454034309331548229332570494349316662235157032896568437079096823362999032784937369458319964554105835650835806504339481687035482693525207780717845215782166303742438854094510119707658528841201167972505902829589863327514700288417279619000154394807641071015184571273940303126259115516449372035619048048334890084254346259670320725679594660339321918893914420771438590763899097942818333888847795439525676112922207090444504565232082350302261840008948803758293726141822925920404918784285571550831518238777540226017488303271353531571966442913793765553783234731811980239382361259977327213159081371639025273337464793840682386097452928153516283208124403920543863178878862591417895936352065849690130045556548775969880657548821568232051623363567874302587460508218588486757337090433013995545784454813364700443731209790363024112376135467083797543349556591690933589573653076933595134587752643451624908817038566143514253601276711582032777656140872484963484432603947270217331951662862404385432397729272908866279188323079798954290367108573594513380469118387119247964495647954146261135068118928358790294429787816635572804335008148508485543108448195464608999150158718239178283886260136604836117720473273761799058030088685532039886452321153855007731005612838742126986101357129583667046825266462157749300284288543879947613946606877747166622913478363149679055528978759652646177703097461535004160941001983922471205385037227222316960831837016844629132076650430917370259170294938431685446932165336636570198192556221164830909514387357186134081269132902159944034069530555340483298219824220358725334481299512851829954322846216215793761905990325810365449847652003118955127282009187459347630809692280974136033469529609385597055925385615008728023811700377578747046656945839494309276121111001624715882007807720090672470527541692680290097770172987261148686403545289827255836569605197147477253773922090798705048658813713315404114526425309453796875574433488628841153290851537357765636096005803232629947236598889144167081409788763859648137942106164354753023789775724563232491189130054202832075272902036916306403835933883185323368157963084915758272738827543984681225551782784117689822603914235276016223245650184461333072824746530679420928783355239386732582943954079682107635566935641506783101781918161181566562264650541687220467613005040285974107335435846984538611343240757583979250681028266735170281404016582067459897847097375593198161106602242798168662546088640503157340100935292119846193610704782077985038752463626406880182650665659236421239755392657001785526136276584800161352862891231522556037437928438344484903796168385988186815765197773599736792698531920012180650671381210329775665580223664582510889989205199131028800278372368450782941928126243119681978577190403333524706412411787296618506299743957993449521917994301193974863234781185839763381420780734937614087045782077639258307142108684780286241902091190639606772979777188933529625747594481570600342950871188007777140821079248057036709051946531835101042322738337054440383295799258407059068434449141013760978450616881141069910248814294230411610777076510745252898435131292559560651559074511287306770615763548020138243978447232040074127121405339271089288406552177680383031016904886217550407193492914035210649349572324143751520571688656880084579388558266115129609552271384502397646506263045596310200045109831174741922526565050688660225925856891241246649307172740655342356885222845377212410846092055029242712355309080850094281814690238639756594810933868048400654773297559082610512069449974088927870830086912913153091931847073082724864714376629159839308748867865488349203027971237997597676063175477773500813723792296008676734704928475478691792553894453644727217764162869451076584930814790903913058702166840366765645324011139151224579108003020004950705161329909566164591534196082229879171337260874594311523973618767038793150870761180549170935844496079719102541977722867033491599525784843631174494337436029526514051577197191942823665008493159376491448256733367460923891012702939420138178311953747173051495578121834341281766397946651797440966660463014012270112326955393107416239413872853371407458035682715647372827287321450676168287051135513570415997278972410302793974898096594633506445190469263590268426214032308871851266715604871509916624725844798563631460804756700251725002571306531449052529505989277923361693760289926021485667983150349264987425862514290790922645087037835521066042914877827009663223498134794511656490105915430706108486818885838760292504047254208832649835072620731980176918460648696673722707187351703663303956611758177254430121060438830393710421829825185480210881498295394368797005018093212350294711665483186064910763904526420438320155950545897712822439794373967562736859904949624549129423977968675413093862211000842383290752546037069736084443497589048206325102300932978103293725124325544067166315050753532867825970593609047842945637963047617409061301862034597729159157122174348907587714839442715886239021966102066966325670791691183993367974182991095107980762879765350700317948961719255787509644542072372417458958738562012507226331764933132476736358456675646073471056382195963617962685175805256524101061393700083775064607508701417535265873253363192831937367373115917778236703418031720883145413261585250408161222935940125897223520825766174915062337176817165574891844729617818937500088830518376131349447093038034761980294087937363408792454299957243055354064298638190615083345822596416583649229571055376773718095177664379857138153888136530819138618408330608212134918670370344809973891723612092380078762500319092054951007683580600657443537391695752769702926380323174316970071595053929367275520190738752266302229767410739262644953732367809575857363780973068755827874038936790623814010550393405731165397670778376244824654854025287547468653070657285062237547507602825256953721829945490184090623530621228351681101310694490767071924734848213575489157103709739547801430981661994656761784709394448841712112074819653007675470919935640068561041278189048411464430453218907401086365207687194210330812369785692486149772811158811248759913335175840483160435445700927883233768496675348428133898235826385766219116953567362223321150198452516748045611544795356031385878632656250184874985991123815589728292729671139279863681289890062499256309348842715377810248345778515054978388040214633925154777146654340266351045242499548057255478203257469153263806177515991843452072172373274106302107865235444896062106807362957472424540272022790959449489799939589244660813227647698130305292734163516678126229593042402076849851110200829348618173301847518713243507565488556611344289361215484351643099026236638201948963284223240265397634200189636204335982637586521527190262484048931856230977141626602248275540454146773884682022916086467047691183858272403938527004034698870942158461362113280541666536506543493061462185006647225656933173917230383838699717391359531510577744491834586344377515881635205457206478989603489260144012040058790912624403844920883692911439880655369297589788854626925755916538023799649801286846462871610811156219435697078160636626289486386939613514903133459381228826779369584004076188311839234114446601974838188378970583151874212876244133449061073754966530272709912942894515144489310774646721844860633971507850967755109425340813985801964421238097977718149714677800219808498761293372080987809450602317228944107687548863175538497298921521095759698792027349745919342660553308348739219756165765198527454306022473956491303411948871753371820296535824531445242034436349282442217506399376369122957612956666088574675545554232076915339721601926859500190938871008264331614876112917710478058590003108383321115832183218399379669894040726988071123148411701126933967980138491456652854644755671982580558708442467010270581464398450328248867708171957045175647379841298732230297279923328258363469408664808091823947331275974741900350492880473900952159347946472148995121081701090315046984307012364307442873761975216677094283221451237962229987672028130705630482399479957178154838043425367164552551100783031445848033848456736209191587096343665828181954396261972401488281550597346016196212766770342385278273705116090521627676564295715130243082363407071560620651691918085818321612904045323622517270250570041380738546604112566095831399331409139217149170221883390369786969260141866876075676038812217130249803767764306220963536254728960709213611625160802704550928822856413390899668374652490969275308227804996278432175711598120958241652058175753942152134089694756092937544428785355819994294086615454460272869184864969210189841386660979068127175293962542355671538815428454299391646951895079837513583121138817162892260338752313878670828510606879737584680014572698790869987092752512121800453985734384312710062190636556842825502253218053104192596044214373208416436965302605623364043716518795064427142975741914336748119648635837709167507625960378683629693382092567109847656592039096648531914260883357105455435527480353138554558544452422317904813487754296984657727025132513741942545685412041241210185797373946245043809886167102158952160623668075702511105756051788182432307983300224863128015113422258473599151380738668295866999688566859363794618360804032584248355914809718086116330837430630685096120061961578696009776003657776829013376252517130336510968394326560168032533970810531354421955264302474063421630707629852223264517613687349604765418975911408652934464400897169467758273588095473541730366813303351745196629865511778660603041516735774083139345420419833781814180411793518215589770518428813930370273991826315688230781379542182925526552843901690266325523151187025384208165162275668542677424684566667477915409497961063853102406733582808085351767831056007210302848055171021666792194899090331469182979986047497620415624400258482119050396091102191745407606010406560788380005800083941976640487683264496000514444928847064357386270042937583798836660718301700388088614907584678325116043491485441260413268654694829555191609025082107195509136146166164218889289226387466958295136607334043911065107297952180017641465384105143057716100994358593573520086426273713828669886304844933157075807376749492338980226915685160185843708421149249670914553407612147899079468642616659569590455193404947104320269653076426235353272125148959811524812601980832791955549160755342584578238572367098219179310143297025947827981978404693693091273189389021838010239262882931885630248025933287941666439227513258845000979728976922320608386390860021453648570128970742021427687503900820201234387225080038774254361622574951777319556253866696063900333969122157970193962009052302803671994308194365064327968224937848554207415109684836094875932961303385655177491948931229460136840648293685157774923052728116743336284018787446154614622543442691092407215723096858615979626833392433563211738438130242646391928324245593789090838210858078067810327153459284871708456112843493183448293638206878199042484983859056304004798564173727606501338907076821280818962290530530430089068409976553520950518998804693907102259692102396609323973107678556881113011915604098237543838377168305092070920424693949693080505114156768794139817644787433025298428068777155106115113947825798323071635188718485487984441992626437649528553877118341951879261212322008032404345353266485621247101060721786773240123065324933326631713098448846492119010234752229543446347509561978047175910189936074424593856439021935096304228798305623749195978200927011201930769331224698887050651506996514855054925198325923560388748322716105151560549891097023398882345092278760812501030648329394329823094973867005515395849311134845535333276198126055854384816188609300117866839193974307902410002416852358159286326059455597221243379373241440815396620458687126707647161697858280209604021702491212308146061375270963498317868689347188724058166173807249535196391401793012308770564483375505964539563996861999805042475274776034376751590655516653045555872255063588217306843341283283343208711072852945638543462749733891586252941710592840453999611997513411499428238827180006235664748270474459571044067632981867152232418937804936609841411682498106831047346626227476312716456157249961395335328953090732191910687740795567043016081927045591211684972136399391349111534675407772945094480027903616294286047298882418011963161627578504680294265026416869694129439866218893614956739092184870400106926159689419615323290703396255319655933030172734910847187564501847918788235380190053672259940746022457490919260936175826157427250890689880031063448028688413831312260702738055976576844174882074604545614558122441355340413590933875150172391782143600403036218278008407333740420427508105082688062893713423121284893894942601009399731919587814572779594498957291380371339168817385021670944143258399462356084542552528936903039547731490556942054125404518563104149632168219204521159864951796299335538281223423027971841535722270759128377736054700615385633578315460329286213152918328891049143079162443505958471245895112667780683361142632598844417578272685757839359392756245096526269949059285095107587033974784743247496115084791197602052593335724103420334451460463435076299480709892882402984069823593738016483644636018388382490503375338842532863332787008010721979456052466546925869341179792915485812393447966762170698882985163929455712800265056208270835640422595271556275866744751564261829405752069925365463933834899459747107581696960617857799082609135033444947807965789675947201641999624320358336423236726539730741551165101079142486697415737545421233356054063326836823267153745522460512998887035368717149306458045673942376141126837191938726311132379331347319678880368658151815781680528992715428114812303961805245939192608182283724498890455920733876035181246680853990466442871555649997790564440081706526447229256615984532893483504303359422075111610456029780103659063361181786743630334045960896392912028206752477992254295445370451075645198526310019335784210166958343221221658521427613135158732782738368075592171323868973599585394361071111948849150156483472715770679787369340515341240343581921635935388715378313339324859525336668917013426217294735043752970446274299247957586284316415707842582498556706307316786566324557755800002693587313524000505657512254592928890622044448972497596118228410399038174862775954171829333083957246071150415562250916316467824167101379707263426129627245683590437981528976025405481567095499218248978173903557330848483473157684525397637662809628806255214197060614982795837953284535538609485594924981632586741572732595332737945081747665579320736090957263714324687879345465631708779377043953333098660284278801902245237101684162640064064085017769850516056169987865685249407352701365400535773018398778667633579375775585133248669261663728192517207590251941018055096112047090269856729530852867532544253850838049224657524320283801007787665920763840197483240170343697934650863215844116413792126887647924583242062917199364203200345490055010058660842116980735263869758189162334512687451962987505458321073789714786507602817368175720882673031108244459124773812159631357632983959776639126936953151182727011490376559066966854148721661879087134517236131860513556107918378163879720986236512709715368602987702658663208068294959444193175966503341419290020546454728994933507891757851625305826704013989206699028567284572409757204239867354092694801368109754810101782774018671778005817685004317733362965198020058252443854403888023304756941752508277376506253737422018080316366650217589678912477638851870761859350879676864462174129212546129175421124453557993778894352922529656626310887874059790500614206710360017107514264580407461883347527045576588916042072585509227095742638284774192907721167535102626774532271404141681105028948478109854012021729613005505941205310378159822898531243643926906625581657814705487101517607644684486130005103365048325726536943160095172823716592759814828846104059921554177234005856059513504945857346631218449858712910442147636739776571521189229726140849256587670729718390646871463535351017199677974561364919828404232264890305870007149553412826994567011013643122764845455144769341400284945815898171545270239751043876874131045434423888528274207359352319153904883176891416900462681776719089467342050418358561007812748740147404600102028730495374853611893161442800511258430064540225137951925518945183241662100797662467195905509100307542945926056706624225998052171415156910705057455737986888839501548954830132728921169331668951979155784127022529717083845599102636135772829335584811498948887815612327138570425767795473629328554590297685908026990709607879328545640411992680795198264769521736986212458649062522765746966529470957255677323111246667563559063986264508722642564262242735845965508494318689102897462604158255058758433725771806028526447705399168463614229631116286361783277869552649528187735953393509595527592721154948116055049553934590804002115399646624337808518265375395659043535683364433237382260431700684087180430338636545011291064300497158447694712088128565660971936239773091831296501090361206881654594353911509731697571950795707265561208240049744092012855090700073275272144111683013077815851665053829437169367095247732258295397543870025901912951170169413854224195897139014816834166076689563354519238072771247627182309144097069455317712788143947716443978852985119318304948468295699714096563060482228123259440803189846252957922250347264534816665042692459937106700177162247848247813645083432467737152230430562964073638635653848744563314913582228301896522379517778311156599681233933682943284141271145037018770580519175944696649393307473585771283859021570040434545888693794424252876496362139601111201394039913909618204003516987090344009111082978915317966320663611486837767858981206768210067733900388605345372400861974912752607503467189465264296389200454608137350142731079663074204676487065659133246116354178756353560980562147871088655904138982932770691534956400361846826073808017166033723187104215474698092911047156007203868185087736494916035647458979614866343389654001585243984488220644683980351377294005688246137851605050663726358911150676164080538058957522092242320308513118509793136481453341515982308810745380461093040895936682435895761483343849026000355022799333030712433408014502171266852500848784313347938681838591606714645217455019186864543496969790393593451292889895115633600301127646065366562370343323201972962777381556190522549896513027614055660959776206511734817569163137859550283097937597448828402229320514321452831260722269508250758777426481354482116883122394303822643623844227970008716459518779402136724693496137922601324052994859848273707970564243260592006088145093983814214844510114970262253549660855508885186207297178235776857243533872739107400225451280340561462685210332296162115390770048304674943781791159468467336832998691038000589196176677285186146767256663857860494681065711958100391299290707692601289429418180920903776184901852222236795224386951552578993876701210056211986019525836416696904779393067612285701914485945132307649011002334278299908494640170978781009587731775398412464764057146629658982434038479269406681281701194305416058171784372336399863296369747474521129743870342114390973021418822715474759479516271213781833343257596496092973601176069343462880813081165812729699032314146585102307339929199193708470006466066293959660203611041597109914206794919699563031786521046749650000011684913368554170237589027347990854293048390680559480534908512078099124934177797036532205085033677045100549846889826670150521670027659706811189184130937977001474871686247727153440459961230679814541723448721788052780616067709844685991758196555644578538916649841144700544842922144496100971833565326160988011919998377723856575371528555837135417521703249924970778581342755217169917802599161691403074769241743898634878726493639906177075785688555786858041270519294928084815618378669368583865239497256887641559679249364962689689506765941768950885053968201497060545572267823314521496926867152731053875224144379725325500211664729082570249658946359504772983116672475370783805908135477755002726577377422092099147769648097668441430144684442739212657491273989158143928284001049006817958910738791493621835664595970397475669116774878204638351118485123650909522283675075532174186180102017245297831204131183241414630596168445087823686663367165171292346450993235504334372002554590890660127272574133221336306302621439677763296215146004227625621634385325848601963863397679589444940988741276196426144369161937630302732142541354615656185677775105321872113460275742836176044120781882190256254754993905446268798219532832875747483559616905779187353183668678839838026066062307138955317176975550219620460051492555230259311251480781636607782835380631531204284614482081113055014142299237244896215924654548037000818895443182069281927785328710163863998357743673983323747578715924075813684016946700140667458967589094720612794199267724040229218389253201365950317335913102096341806774449806953968622941993527668758257620310225939904624924839082739253999534303303654077828627591381429153184546488586264738298425139132308347575242351399341939134628291822985531480687943623673137358129326026490223478380410789492213955978048333743501348312765800660168913767440882350980877364963372576806312852078984047857444322682656614146260413051914754127764708454010708538079094729666113704726424283998283038143691206065982253515305797221170688644279086659542617184974769583224598539291739080786332532730636823971929502447917442324791776919628898480809547348359089849927271846174197126308292811911137331603089130620292905746213256035505163192023514841682250142366453429523257435662524452048375374694217705957408790371565984543038639245879930116775648207089356503849249651416019867280186269702603702503230267233200941296830535917649976837409333988255357008771343743124468312606494613498793591975056099492458628415842448629883527284495624814726763207895300007362208981369786056343335003884279889800193876548731261470172134448522837064144433797813664124613325096585426835141493781235777921309887731182292123110220446996236266477294413722009223611927846347307139890840115152111834060146018515160939409990994843148382709948109949475301240142528779712735201427867097107688209062238754397967095470942618687160908034576462602112207564224957343825967400184396240752345499279374517108432756566064140805462633601654581525524386430172966332327081151130273777093622218530640440613050641773250941545342073466575325501162800689053271911643540749787237694746796251516972180082841989793269859976258914805441563023573309077479101213829293433872637087649086551422119026961419725251945895052117726987239444568903117009915054256422309878314801568931597527625606569677755118625931510739903131821139567038037268216296380662768023762857036025509761551131182193929168833926936868586523587641793888306963061004183080154496955040810376076398412966559780925549036193054534625418853325227649980078593402145852211486774436159223224006323000133619742699361125114284545243224871153402014807156551847278786998715794106360853957687589873083912282532514233612388449305859178714892212604862270777543797438763579988880980504976595645400295761498336142413130262302986958923958285665385749684830285088865891226083061437519066575960941486620265373212013447518907026581868585666354897666054817730704175890772520149738866167816859715850653315528626159729127349996583042635202891533274158369434052954005814557541081663863337373660387764938011723493944962871355361558895225432565742460314626444809582339392942141610861182813018713050902506275716260187624394614621539852149044532466760107574440336943659700047235548988119013439816980803358385808991406851647910543130099940736915972788496649696649581481275020368399559424018970414775585856467425320965795435590468444968394466195999114689060892169815589346570643826791461623891277192976206668585834327781597735660627993324864207181426403035165737809237964650734291199924466025164778198496790967647788586543918657932366784317754686593599174810011357010810586509021323059452532779512143688699545559697832022505746525457444055167793988981743422351854612343334488142641606702970863578316320883784544392677323217325260583893924610684380370320579892154667361875957116497212146334511368213136989034838469184909856589469212077791587099539317756980627645875718624757522481454174179766477268706430450770370168645944249186451289738114923914963493886497570446938949560016241863598053516399009995899071894130822560618218516573422294171534983168846449942956696187856734855219636548735004440135469945956595553945530814976767048022488582207651378479668233429626851187542363909680892958867379119858950402858250432696366057715181127910150885822032047657674172282815121342613459002733418059685686788065693470980715379674429799467227317634318658460895717658184292127738349900696015444147037906689504185493141431861565006372760762602013859685484112440158795589266329972473402176575205488238998920857251159244729556450172282571269267798934332561761480594273695591282348554767139470993971046735602239129015451130342558018066127775162163557626277992721147272185471297907466883817141662988199645834847396879528128600381815134022265531636336254050696078455293895365359260058888124638298433117998743150240683738595313274772754478383389345555751758895287857048956836651839335783488513364061943490263037350559461225371221543541216699293670083333943495940707464533252058563369663895535708080291925318975496752290450162069685674324670631555576008953313946215681318912561723270756737757883819956209819002411254899395163293739996057252193941143375296287408062841360087164852563985682161916676129802099060916970533989542659514355116736269828966076029547611135666167860027258196691911386414530770367351041821395674734783365908485963690188283522985058836519991255128961241551636460625930608134760851026496891603054884104177015504904781676655881541854122099663161543409917239695112323789707259835721262567505328122087959524660006518331077832553200685358722435281720872094874741428132326206355621452948157316445331982227278822250328533157866699540349957551204887995609231052036708350264171456902760611651789159049082210660122768821609040362304742060324081696050062814585421954917984433955107965024393711039833311404174780339984774830151548006791214180255005527502403993467815331080718910041028633966435737588353967592599539325395305483429251630133975087543671560528414497332660161537991764848003610653761635529802535753625864141674886718881749263553634217135520334384243854354075627223817381683178443124843023111596916108119285146467342586895058699641124324514710984378676956270351263917060993859153081555306223211871475714209735813248642839794223073282745121705796811885396715777610636192278306152593214632373706838275998288017726380482463824033689857201545332666062315715090353611678251635814407416250199070910552054241253945367197142050281507718623395806967724398941982635191780582182851428479537846143500201963489603978364164741636081400729588608941867838065768840384794582194951601114042891619650249291612232031988494184176158759883985713330920626058500038904998237300988259605891845615471064078082462336146123740529788950257060860785632579267680139461883047474451860520739626276094959786872659404631568957208012089896333155972321007683423553382511170985446158889298912197552213751390258404426877359865620706420878173571306729213865852203610052110481800073840079069260722603862084251689478898173531942794431896788353434268599481070907728987075295973230165205384893769347225768778452558068483211572267896343264122336145465683752161000466005042296078918945574750843258023836592945601010623007743231667884153973122840180870766786476482369488242166884866080829384701522294171691951591902312229049916488918414459969583076054383083019104582727875047724240066758941158197166443488241213580439829014394875909024748993385863922216386970832806347529193447967585600885137786250527329991820020395373888538210962354116786303366756120817445190808007020202260564379499220341913392281498661874918506617766377429095314778376696189032126458440947233387423029678968606187461886505849363683981465377840493496412994552557513368530953708261735148175945191745636818269495041889494301711806869251880869864052356524363686782790030528884713553382514459834993720903892534044558281442081546324972827928345200573129537639499655051900780424853274473224785017570615005033586028597003027773546329602787078347368002609218521730240995977879841841011762014401068944076481893396147529206765476692575364403426752502571059635680187812727061483334959163655622791359764219466590696127641533962290929459537178436114751798517877808287016033914674709532742108118818644467417286684101543863553489646933478198541192757804564942159862066072896725959759239615404768371070899992747003482107665966700996210436888165963683820451673570417878689358078732260179668083769873819402681453855110878834131864761463303758055714982019078121340424059649223112838804051209325507146438660004121490920781883421029442110673033889674357312463878713530367626921258633760721391289497033078067739862140694219619419979503778816148786938409892286398891942994512485938172070239781047602889783592506167428751892137589085501081619914023519907387926888603604122423549253286563592555930345223820412211851557433573356870010349002419554050557043726519856305723346148951111132766012366471965690375268458592057009807129576648609725253802147555820175963561979371284411188375537812673277515840555270707365427002784133929521722754815492103148535027440541053645658002065778236305300941854091293215856815729780474534407426412523830671918340398043216522172150223329677736633607260294273855594472213222907604449759021932201310639429642420764333242501323035715310726854940985642050555075789992310142956809929004140958120338771070419356332924845470762373501150338365211228118812208613583092138731675579818545672206888070329289320746850478748986433289103053938861176944728498650968345275680666817257501034139073826751887236886914350676725732687390173957392559406331191991332233281983019402034563183664295659091009783150545457643082363362268071033107001142158724603601692303019215142383661491317771975731308525881616928360852283138416277902664322322427222839340616794457403700062730845612735707215956721526485922294107513492060954243937624242571289062649374998758612307643660478903208375531357405439267451347148160692393558720301432903552669539538513417207916307623514290428456984731341618757008005703534151322821137759625130336025598630828707868453407894012814675913491174552335982456223841583978023594798082215242896799552523765218372161720236434765463521862560539377123634384684448871835597463763138871205511356526795719795346900947602730769553156224709612195679350061727185564339525230709097971430920403498601269028911925416018837006868156725493988724356167951206976787979585369855430591475523325003598257901444405088890983202232337267886583408289542396154617668899908171471485318558315745132080391573865412198386310113320462969349901098225189588587085094005578805275673192249723100565842893140237788604479724198885456397901788662554056511909508439121013003194929018589293664312849271532440015775968207127810206839105988116102124768616970541684306452830038661141155393630953066497960482548947962033370970109628956475371468868111458744096190848433192275665845340376915387240497752527713223729942846028126167513168913095793822978259673102179633198913110722238511880046706186453017413865046852578505101625655107009701974616148327895712122679376602153283801360555928031929590334033058618614760467183893013442712889478610097943743537195772940482411901316713525319162675578812355297538416612756170900611443228310251682869982948341990790921619287123857413622700276786836431419215862986134167502116095090121607102030618476415220922571221485449346552943528214794167064417573460267886947244893805586673989509611047139188095190656250553943351764716238737042956452593860000444667719359373975037178651021831175840515531197822439511334545240993207669631050328624001340325748557155704692653404622727724613285848907197437820473433019643574338354301091675428856924724036698455050697885422988570427828003308332388873095368236617256869560089382588011743670642905895922124459051201814666240635436015338132069805296745070081583939982034016178089169564458729838146259946388514217740511734099911531015346797042853027339450488331161978396631640332266002402462498117624925968410173278642111810482166099338093852696241739711592103829482608981301059810084953567823084746872673148056238328699239426406734940533888578062192534599111416458722527627753489370667219843663811459000471788348244374449905843591576535094780395779860509782562634822767756134737677962894803719561096356465672317244088341318649485906948441844685017091386902620061673270295657122078153690824014993697548363031418507829580003640637698651899252800828821448515312261215816564825769872509570621915436546656023897270363289552156514873701935111783221658409604362514118476089943948304379027779964863621353068383039689224910313449776569613247716292807175852754811226844444799481745456281973262464240787784018945992637979338036653224401001439559646241171806333647885445470179119669458630801697412008094741485457640882000444848953576305502369755710488375097291206420142188582992810104907752315568053531176401640046471678142453036156794068571890223367797990083538372590590112155447175888986293587283888840897922589776449441541920683928897580115059493811133330914682660631307854792738430326346271388235723799765418818533196254332826057724599190014986238026291191792794596920724687146006876832756730019854633825341763620153056177602872346668277248909668170427408003859921236427094635324314402555298945564141588359021227730308611114199620129379649328634421391844978160340485925552353362588661222573493463544816791017485785069371665499651437614612878251858139074187872527774466309110492087808121627037065924475885173912518990217216111494839359165219101737203936838309707365201937994408649219020074121830297716667822262709249390515329662324861012101212416835922934248522732851094884728594216650570176392445581418887187576603729046848229340942336755754102689087965142199048741338106396673352389070074734659003481614805197064826228250212949836548229261179990853216896832717877792021147931582249131973542464544260284582146991985820037342363827983733757452647102777731427222173240152827999869145641003937400391745034590990272550907291241765689409429053851301787137708420992389535356345268502337573284380423884664552330105546499042936189950499654156020126532395658882074276051347416649097163568212212607486458485774037642104060843629656331620954220888139152415977399538198684895724684452647809024174190269190312146187232449800846562898669771477902137887073256778551153092551020811968655886708558210416274728254102832597051766216473512306142494564878520848425411695370701844765283927462090567681907265410059833993278109016985856213806768190999126934408822282137640979271145619477724333575232318944758398901806656960249490560430703715826847774125839134829253155828747597099650085347704134483154951029082407724653725451090270126174563634498439536853754921158346943872926086364793149871557197665787647229609716284275329898277223065236993448191737120767119656708409182590725341114719039918120429632826380070224156833883029661444417749433909144724249401447204789048246490714748355673142705595674410294027131418816844843157936853041289945885413492063805419584784269834063130017217702046946610146705506332898914353920964207724730119472272324835326159519488636821018385266773294819612505527730736410472482111757729144126634318952659311602287604458887047684275264683422068977861363949825128337522641597815021513047576803357750405104793787462769123119549735494492020317053034236773488592142630912851553579030396248255576175167047436535927488115556627723204552839534377938182340020014262636764360141517130743356398418937343723879074791433540927821172824541906245805707604073616168577073943507187833106597716167032288778856372596380257550867625400838553321585658727807784733472970860929600732060296211211148341814317336785002301861078801764139903904681084947835632262241910987649544345915620389424353395739538065616536554842627685641295323999321390380351275997024310251722613278353757563904533031463380092563326143514827703310986245785145206638405452398119231538577772066929660436481964740376119354631285120869644298042263739272142183225447800727475238351268031109177671398521115497325020746340806846083611711517658673705053048124572624411140307133850944450410586831394302754719074263257223860333111545042313227549873279241289370640338463872050994974757303525121122780968410408509453924665160011338420112633460211369695455957703484284370575279307009349923517219444237287959457212655247461084038152730165192553604830640026145378181013711973701775178790298892127270216634352561652414144026400773092090191940422996977125013854117518942966751672912199862168152725956071966579272934702859038696198976159868738953184020073041795630311336512600743457254348563385743740907189235685141175385707451503132905506868176877837089333970898855753999544705398856147349856358038826295511890777667460361311941828152597907838532277573067890957258328311484269235887219806206347651988160364894517037852755396046372852897629051968755438535622405728114918174626352224639028191172234516748986988865051574357595340349409401772330094856413971824562741336233633741633617621175378618626587592149264460022330134276057922617160397237933217828589875446394293693103842222705183402566420491445765638304391656545588198312943798639262001861870216545987278740443356594349687894528972247237014331711159454534988406120197954155821102085836619387134360495518981233807342883284063786650377025653477835460654611579471076458810909636719048248701751382591837445662465678613444857681937109230160015008977019101810861753721284539033670072123559632400910911207311018341823360241757541633900466937619934756465429411385361852400112158946549439013284743119233130353366278965337657264756902672020456084760197873272080162446215329419301012040121610213811902260721438029682448793373662620254178162475714840924688490175271950982452622263418322835071389109406380927562220856511313405855873637491513510175897381638071152864525098945295062333907263951705821101571912276304379217280122095640621988585302822603476248339363794135398313792151646554703951008976351627651600133684831798204982166504885712558018362056067803659711252256596839218801580948370367547631609351071971615839050191278892587617358306456670269160413872137768463912305168455689750257478783460806082688408653742374880455640978221232886720798423468419509412989523521800380120218543996301768317310589202514835677750757673973954424741816785747865779527899661051423716258212669596917988849485955694528740070907823824497652282953424220454800872353598528316029257035043644741231777104356767572374786994471901655217030732573642520281567857070196703896395368411511691070700676244858836339394408152616205365741877433525223592453431402208906609034401458914835704778255402229135230231924013981999628786745414559561990750924624251326942033890289018077652950955894789196898709634664899225149136033221167488194310289430696582419824009290866376262423488076060141137894499458740282614223328784854659048627411461037832803372010952783533583880186572496084263256325097625103788259457007095002243512505401184076109715763867411576404970454144061407628058994261800396938185002642648116004972710712529487637581844038833409271747778949576979690437214317523713700791368081872859748338867184994115192017522828118038120647984545328516285127811933259006069454288643042731156993224093816492777354729715697803229346255041524765434073678774679728204140664685210242293285991166350595772539763958794971898715416438521773776987469715549813208896525347347876905885700528666177548550766425077271069161856681189965379070617989748445614819629407503848941364499002305002930122180488565367567190650293882336701518118983631415287505969491064509275097252175977271434487242795074381129051778337442841429977000955780963195908324157103711603316228325420774183816529302349511943730116725753362571686859747603761300635383267980431135517166262793053740615848451977069288832440934721607504407128453550647540673293052476693238292716391812012750569739105422032311102808411425006703444620074368003524768361595467313189217897487096587630979527440223386947268532286835271386853854888218115297623318956522799663044872170213910306826906579483668320836973652858094316377742197510773458565856079538000465703697430290272030579249205656188256578038975272624780864760250073990698218732189207353645881898840766676206032067305063581174209679562601992819005119834115146660239105214597418818673715332475922094457667314158648428133526845620532473337924609178092030747105586502912401328299004991641900917950413662172325299396318785854667419040517757018734958514360082725812016917460923071778942934496246024411597342137296640475737531876498113855594848180334791130100107754445041987374905992488493290237464999478152864421047783724532647271886349739759320531205643239852729418349823679013815096488876847863714952699071553094146928803998501682317720095697701748942564436972210253887492120010231477091887101937494619252714740550810618791418008965039538176722905353926172543696382891014289810450080404755371648851030117989771388602908522734172664187956753093838150052200830992407512256950029719060668097148877407225217441144217238311817248445379596752362164647392363517448620630116723920858356841300608784623292336492378189621449843182621621469483862665527606864906592782748012945725175507062663156767606205287463181225530281563126170149835589871932669748460922847356341013051430836004388924786095931666163867184754375114277075454573575416994674944973850507943841186292149238521089870536238661093055083420602591534730872543757599345253970256402425055011110049018961436373930523549625223156899776003786023937726705261922019091808791107763565634316381904360599032431895924064457891147093899504437549905042751857480267175775041897566526029344924151819877473894628653935695651794165872408928883806519030631208105058478486388487617750462775349060962692099351616314329439093194475819722138979060000273722526860617529175969657600400438512891039916120376435117013285394030890441854703459099447934262635362296951388174609039032222559066289997781339318712950285102595675253142653101105711467144655549750296140424453761044947655643305917055527401326657746556313933015227347184088004028098923971102057149854299456562707612389430604154815643797113416664888228537163232235678567054918108918414187967176393716590454964587755860079674337905859686526330102781678651675258421282201057962033931993621980019833142353096435229186657687759497184606886143556517607928141582568201491901437214594481202187904477929232580467001038881696343171347308252873029740285044188278167621480047432633559486252516539636965312561285517283505434065554296257987058580307885362750872844801368871387488475970992229756349682914275022642366739946690733937056874069408049548464724588429734877063953785832472665519401740992847217359879681457924808039087402064640821300726973956761488437009995797673840505146665272855688168976201641902040409058107177059626288209981748063393703840028601304704029395901135707115768671479493252936941844131329922604197072606713120639995059565673068260153921474713268605058714739663578624755351181307541295359184927831151038256293142612856538596496103429621069144960188475777933245872968909200715966012327212403907241488335618195041117956147044003076612874357018115649043942318457794594341772674263688186524957033468469958838937040855965775494184753433717973395852026118156051603521291561930247988333411406949808081553724739587317038526816739577909103070337383667123823764553898689522397796416252545071716064095020617103366067298099591144119565946499436660137307668168370854288311808966225145250624108439615896998529569577006856522331833348130979273874158385785471276068739785481201548183144059470995309921381158944787394404856975234111197763378234290612797505794616934245276019453496472962733946145443383011724359777648300093663643329461208682780954427552759454797776849400225188745314656041662500454556412491070510800920769709375021916304326170117791017596448030559008422672146418505959181680291870689199306166223906773687249374828751198060843336556257284645036241088997227241575569826106928652411409206549213905794311657568355885276808930658631239275848093976205218933022989651943318391869526175449113993407493890070185922140906681131563182712286720842194600182745973913570012955907652819710118188920452803850688179001299537114678753575186755431803113253437603006952705820821790113510529487308646439134269337387947012955817719569344161164161858508152217685848302891167516942433771496509605732797710754878529583753382770443172242862505807116593730139588204303984719456304138978256253676721619125327623248457075177346327103139370859329823927002929971251259072703879096550423954144416012867091818469994437645270124997704452187045795867527586490373242760606374963073133119752119007099195104154364009699101781608098422377436643068673258593675877789132891996496738378161972100857079999370361599361223981868239567822429008364698506213603354978645778154382610461230623347009601579891698651799215389895494935864768253067334560421139870370835591916601489829666654427362299335269229587844876890138872513193611418227986022693865673403289189788672233737621305315776390951863577236696519580952080861185755697436659657759007528402275587392713962014440582871480138208542612048676089308058159617871814942471585778825589648990424079685553314032954420042446287146957422367377043430363027977066644272090628193630827675530772136963672652635877475764692680376165345496530319054085285211270498245338402951630150057967640258318386386547888834879103245909577185146369031746512402678673964683391909867287638982026596566097827887110355628184358299490615040347276981221345042497067500600120646504236603824755962008703064988497630392923157485846090836058889880122255881498775013593476965940865650143810765717288129047614278989494617149866200972198631922139363998475778737975246295613963288393787345751640752345101182730771130512657294188437455992391662427415762647067527716668670956843242796695066763992171406554761354905592584458211643706771434442570677601366644296276291290109704195105013232530035729868671933931571538347138960927140993958332526027196932993169253808031030710703569565530203081978236696360471282569695125842619399486313913777116839867152188796209450475020246861360955190119570156021213158467577824715945551294500346289831517542564586178107490811209150737836263357088315421275366045399795957810014849099860070486247933108388950220374230798456689610590769665184661785274582286946303424580761767330742947976645183346961276215520180375082047387715641398199066846507512710525021674871157513323556878329407071582348942851418961705695408583644557852889910069066789534326519965507370075288555202416873286075961841493165746314813498483560065948049125329154777132526919880786892360894886870261306855627403373166334536916134128863446713502112081790625313642252004090882094136011230660732718787360920923205037719244452250260400638329262449527606275790763227458152063108643821072253818703392493174192405932846942671600621864497133071365646559639632065750168573767480893774015340536634883372620643599159844209788900267824559672430655655438494034438317898221220021746502463693789230103906461521969782624396042463584900126949140177448430361013534402818616264152116733937238983494559978733239733968665393288904505195417592459283749764667158642203018418927159154792599708235272008735162256578404338097050122981752255756151967820292482322623992144440709832331416470769520511609212756445997519107781692205364163593608510618904392071256313645587967344418164748124369734823778131200356442499390569500645267006509499138176591858966950461812168685710771785773845664656510048305800897932676589524841063905589604174225833884645015417854920860269484607440519064414116271273762817152335676549231777260592341112459651163866671657064743271689291324346297201514311095108361545078412868690277596261641523114998341279751888015603653024339804578020388509804402574930910623857750572538793226777312570710244115788964186731971338988243566925482206543681607861160265929030058322439346263663292174820247616531498188421510982919428121900597569407192722204868678164534790467638397702992468704798642262460495273535338637496729598438121798252804058807373984417993953790275503079075978407397869560567759864532923651606960165800701671517002870750852438042734795821673845830187689796286937573220036780200833367235878722273887505660411564067388062369798004060294000081772904147935928214306073339656485402228461732000548387399637131709119158845361368525044980740260581102040799911035511227700837233637552703058727678978296163648399340801951150067204497312521747404038907623690209487923320195695304697782866785253893475423744448955745524304007295762155674794688580009620956797084681727542271861456901808921864780933827035895056321900152682082671560358373165324664353276324623175503771407852897219516541289346986305011145533223626336616986847013650066509503165933966775818128258425938151182345090662044255556855027379398572805612596355309591138992943989616733811561087389808592959064193626031929589910814364333867429209913689691920986110806101974050050937616914704140191541472274743243887067786114883704856470678597318455982334978226296958791955100980126659007063767368501948571177081662995738195060289557243912663678424914958549219978360825551783519396444316937323199142293757302732496946670966262827440449486188834783098749533313536441973064674363334265987638695886818426882552646043306235909960425274530541539419305566055761220138269383803717429026279460728284428072206656746694443781810807312873479865206875449641829541268741426219552238548909494229643469580185733958199447901992735181967780789382161534345930419522417780924229160812594742001811144208503952016787042911240747807577035595319517491233180157245366972564148312161099258380073723187688391345319795163959932759336648777164290144659665480338744346152538577618324604403774937317566821372283784404437787305293683347156623880670418915514071802103008995837814240799273782729955863831977032218714216533385460852925944043009486211902423635768593230447566363880502933069962987705188346004517401728473473898649780703207485971021224805007840000348441777702097632718659278888562876737151360726779863719441135538075450058664142050676055581967516593518295312683890843759869364220698349389309081525364758776992847234406372293874254359382399604293082635605381853921809272973658903576176750974622960180073655834361228530816839022403262301923592596203480972715824005881781264026419483707304860883126181133928074275558226562699847322716128102406826274306527805344760792695074131969061845287019396717422232989765445462421622113726687913633629371559039121811139789119329130182531879616650027993462503857807361434920357696415088236330941508549153500152366653583449838419533231472225831118011737152061817280093417083646643591769977463256208255652176859070213448671218832138326822083360382182193501321024114684558530691511961281243905822713635318884593286865542323645830231154790387858558728046760480502015434309748798423894519796750805778135927030202795464471846126704752458991705985544261705923726429494929671453044905349468102163939630928372243885393234969911671248316988722089679567361512083719763972013376690729617768528444901569366290944216349174244973076172271244276805558915617353548272311688764651662774240374465173546844672493579939709961643469219387103808811610500267722152771034585876939940904180683395030201316159436751920367030914581172441320376582547480815469098918337041491692915267263293476529427688631966754759143360568721065476455470416971434029176064109868721311284404937251852213384891896117428747356498564889754487984848175492214830789494496308956287627375459713523568626226899798760953538946535249474640729466237236862522787921076462011442872615468536798543617561226103362068131172734681350560085488073502162269064963495763269839442936896442113996418231545441844507390858778843074225344621321137767966985581028250098189004631515181959566344929607136868128712136437643401824683610765274868099375916639492489563529319928421861911022703925472919430992565326777600895361973736158972248932891157308478081524434116532108620881497757822757835339846239633195327101753902351025380957755386569403570744437673922938886447344144780376169053767691110050729619746903810034209110163204386382045636268437283842041136697577869873832267815085045031786337850415695772170101088151852867015876238568360521377966036785541267689966508664441398595814280518000646741523806590142463227287855115225940869090115832750445773024133634077894826746521620864823996317732850680439229053021857113369184520893057010496173841291421620897082204427690511626675242954393353641685700134876353715251918220273413514742535097183972905528416545693759121125508187624993641445681222429790379313400780489590135484618227008413479699452314929996383185571768483226770770527626127491710934714260684717405945965016303518553733313981830594616018859715982682146533277760831139863117332695374452073624502901119755347498777149896507048261042953519470156534329728053987660690864485991161429255583120055057096718267812639214233987752717373939501172101957071853565724601262643113310722587760177338467839406369048561662759491752601520545681430432102132816590934975837631468179343720710769889584467859401943847194914683129407795900206077755892757386954969405292863540873074318602479698954676123512586237300113719185119044398473369808389816469087559256610290378571473858158786617384271753620488192410146573878423671325362679296009943497613858709436617412414365409985411124689169822200708400766700561097519154179784537524032658526211958713713493359813321678020833595696933574440566162865391324570596231835641749078540984338039725129944914697602479918717844231547337601581556013733538713068986254902754306029914827022019840179153857939046027817261076981609943931154518275734325508081764952821974991953551591670012314607415959522250338893623533661341564342408126018174744368306719400561620716600422233730207914292130767531394109221698442837932936722067532916841766595320770925985990900615050797215717495408230926836981340247568942334978512352646532941607062667889857226327434427553889596957025268264926624122673914891479679550792556629423093444926275803984473868129193561847262144358447038300006364570013268135537654933181011281148463434029583045437851842060940544648934512727168465758214758375962694947620549299757500770152772022704186581469828941450582848343380135374647426480349757890072310610328204870818987338225012349057757358172605361026642467767958282322661974552904306818821052045752021915110269835742717272660342622370949302760304726603375664267995709492894983828233520237432285023219421398864771912804249891967633588985533999303723548916810019690294824560649200284034859540654702514040268195525998679524280360374738762701328047324976983716476440172383197756654604126418433878704262537381847829785025315737389482484018873519218721234033312616392077829374958966723681547316487609155950361525906600887417823390553445759281088131753603594378819120740291695559809116604005215655455494504729561658789314994122318411085139148801872341622755711693915339140319869442867687418915298298662046747609071744240217783335506486015890117717853614153039600815472565194661073300395738091429164115033903757413236819823583864939032779243448902143094311279149263987842005788552847184225061856404669996337036219070736512069839116913264930307999245134182587127166956751888146162708342580128631410606632227156063789773890683008894808958893581101961569178370755824561956752725933534620456412775379186606859606359132203504715869572278506133453998790975480184374278404414268376658246037378900806068763831660179042345447150323963347886702871442927619504603182486530457804355527946074582437380927566124454824764921117963436258106084407258924515975670863864230801285760035166125635247017149157562564305154990212611556555925118487512803550735807253288451996291345996100151410049869754415987881773678663969730106081341922449383589617537392006626038745582392529643238248673964492636600092703442781250513790545279264330936749031005265448547978194930683377156318529800740124439346424948716438193482583620194893834252435183279543386864069300686797351243173643229335118790588054493757135700447401329046687809541767894808058550815899037295375757321802727130558260825116638574603887955139417187938165640732479373806268580968043411471253397758864227476180098264171058549124468170314826088643954294598495557116761999154210826948407549819206990733323359964784181807072339947466123256804024453448732464465706535670042554782538105556870940223727964450881339254613798151238049846413474935544780808104253061072705246828344443679762741027618782992847164774593977122292046748628101071422491898349229867542006606604961461318601677313539342595165774100531584822125283597253942123731227651500973207190587713912072540262333808797607862585668799891345727980331253398885495042182874123562151808660184918994363472007196017770791674460712199862999465845411051917229045185905419640167339270122749457322023521053403344172371278968136283269465384003720466797663140357461886920625991545400464353824940367458872723202914951824047647850713528083838916629311823457273340572114258170594155362927355732295623326976340970683427285911534962616656632204159899105169075064787983490668364848429088826669262325398414629316505705337840296040989571316442248484814888727154871943659727461388137240356718764483851378098702171141905805143276034144041860334884573501474257700430535348838716230962281949649992353332915886268148800537500014187512511879712873387169389627987223607785369587220601955325111226246572104098645830696353394176356034138918150379242320927307397407508900486762408267749240301387098901854865107880584744803711809342400633156856468417659928953944742048161471414826813287682641204225592645536856515568653637822285646588867289354748079551798612922244122222662430469074117381779322045958561468194110157345681315515635402163462633449143714604047320934060244944294966046973865791713299701016909291705379572101453783290814274939928910988055665703180309826498570432143021442275681189457190700924776565996408513220595324178231503067659608432576440627813967931061673350152957915705957605893461680647012048511090895230546811763477671867049551868504056990538971427085660567405610400141818042809107202323008891837311443765970118855099685187675421633825406059564214348932032490828894340452158428389984574806492055432791419152551380016725319475930837757045676896185055233596281678145810357346116006298153605671174684238834068485049958042078796507165319425260999577088200517457674736840669623361365580823692629531312313712627310947593678048956501124276569091830939810453180993653623945486611759581850412830099611294945651113707926355809255604235070355344623912540114813981580406973510642251174668388871708407157707609254820353171256749770889304166763037832991041273139429840686725177349665793705563927766699138344314162285078481437539372881663053421328454245411874596072047299249975987977838812381952468698706819196512217430058301711202959404963411118337068788074561008260999574956265073773494861036159814033948028103042998851030024446631759555206109086159931231804714754953177655227879938482012171127982324941208140745082912090386166053198060827174409015385025827621494187738078017492037040881088012613458793389326425976956970319832434084578961279283009260039880464350371651186759460714970358794398676125034091681797990279867641521175282630767206923480453215383020857322133033183877234290427039643286577757286338367048257953982905558919101651089490360887661334908602655690868375956656804096186152605838599987955275988039394550381479359537484953295892975701786652831099569902714180279783579646705802579680706148145501705441972303964425191723743283868598507459120406244297802921497037122791665040104273986570895371011395863913493129720903514608570830876123386298935064134710499089160290060795977512989184356042457757693117530126836333814550980954816214383809423663714966622179749402906813215835531300300484455608111788872534129226075055672344033695047326359262695770900224567049902108022989324275573770168789928867677402601258552739037095556034013273397437165745014348677674941338387120144881590840806718252556925349364740011538296785821351438490217556812023170524148543834508235724705920303001001851832735954744262929822858403683915673610599903508795911756570535793624191142869854390659604416453786593353695996015152019425023499351753769257483393059528285008814621637044675409120711887317282766769583445877200910769522928870625346495809365875954296548919153140416602467524592654992427416738199171144002066852778055648561442670302286378169155698151538629993527114964334923885238239081188772717418977840604164781209929236309502805765123435106730002931539232230616050744924765268459084147914616809776679029288449256399637459265905358763116919322245918117874955892425420460850095973474804161357133933938890415697742376113117875863170512331978834827039598986281160558667185304843128842543633263801451479043233033839758375885225259499333804446132358769591546930166584237250986155454271660600254111640512582436506279713705698319072105328304142750155733779137874626319287828956831121787392935511613655491382824502724107103802718604336142255524671071910148508423436223162000398041999757268376628883310425186219284772920556399159366658161904569417537358417543273851490359986285391696250236986028676388967543982666853595082502498890150123047808933657646575444776006174742831659009624493778366799115487712502903627122831114499428767744437816419134739493356063450292248935747575864942007349886357682862970873222071628049008498059645763021743290274938119466599130828589543971739719551247039574260465768003945906662891013804981688729531052159661865140908981881574760532282665435195229428040478348526066905989273502508109664958171149859042353807401540177531717287582587794782849650021852735064074366021861910489978466819723058345840190754958194088879482736863893218413840509587602484269118286266375337283331712195387835288568650451116999335143045344530348711597166296708025615363102130004740449934087677209395306280750201525433201194014161419579630300657276538652422340647728932041487917662124105439479120434631408931111171884996956369391944388967580611187482555014953615006402965478847949784067478632773129851596427683386849363077877294976071747680712732922793932748953927937111989978341280407055434580189226907085996694760509385189893958658226217911942284750240999993974289756016887712308315599248666939548684189837714961509089212078631599416501956151699440306757827039092858878143300200119868140109894151664325953616831594463943433680261262920662771487174004493766723448967755864430303978930566413156374689909467911292653462544237122197359146650761901432669327279291841912592986719584120137498753615231703645293812724815249933510253833431103038672625268933891852036036989634476741799067964596068560087470478836761924066380158047458478170830243318613991009146571520845231666136990100502076647314468529892608533744083593668002455537574391204777063892532184618767675691386808771266316566839680210002325693593858665379561313819137035906122371688390433516181516424140077008847314141160651441456381952831247373649583002801863725714744183322511775721205350880619124778618358980190164100687766350756503160134784736756773202638463357826184308718529364780299894164056410655978139276785025416829801571873974126592309707821056481873223965478942425036886571090145548022317163686116576734733317031872243497855725214819392631680822914615134169567031076847334965064102644378432494818746656426878205874109170167838110862040574315097701279413717260661247182908678422339600707656475143070931879643792405649750298355728442102184612608948717144975226390919902116106903936865575019471372072367367013140928869431755113993825545112697672121963018847861593523621960068098981496631516395483657150230735016160957489516741911646547960908372618068471783473241184442964288038375653688146502930145040359014994196619351067823163869336987836272028054819076375107045224519587405271276422674944347259247447955013335705925327844531990202617956103074150816933453499227215749109379036986569939762783359690567993774441392987959611740457885083269038778564188703929837992735613896290980564323182460322566139691303414658655712837526161195872567846550424431038638345828085399090847760473789361354370317485773328797100258537405939175899735193564973501352314806319962830790205371639101585495463728833383656547637026469438779142309954114476986809525590494185726908509412217102584861538093937174547826038465514952712483180574853212743727125555971815647239609460875203717930279840662707072405779548641315334306724542654817075859369974578935928935493787084692854005358575551365982393903552809079676479009223551981559770424139178624296783235135117849120853566729992379235342905779993520940492515115568179447227353629866506754839259645194945454442101566644518214215811046314050098345620809136758196170991153708867653837218701418568565027679997369323460899721331087387252274903526595109585521073093433229992892960420376839633632130137707821106319711859252647624641638189307771056652477823889679063647878911050158746996887202718719136106023961797892513028528467657644237860952782347286673919724946841872893122104624944767257231733453908650699864958673691689465803899034607481319658799182147986897542853640161084322768256498673513924494716362834730259178258882277926627711296967864404401594542236797122558882727478746270515477548944355165111370842653228939770655242731290137904979187256838884522904178987461548111964580780124746883912641509388404375730906236321218035309994849996439224890146953240575320850488996032093521440448165800740287072351857440575272950673398402239539326194090116883792881717331165749858979238433930509729327658900204731665502954148639081165882535981636571084625662349623360250556070489108843475043059599973427512727633294839113170689091503092331794963219450116662187743519688463549682738478155409355371643310456040393604755995502848595903372474072365575081753376031414274465253366669911473969992578059172709806942754475742111014402065218608291587983585433021088648927851553199929487988415390189100746327196150214303352344889048258493500820726644522007152502333471636424819950252156404036487522763116083807268374147990354207498010543894118388139136670394105050887533766323407860699142920112109929897510150441620155995161440415082991019141688067937382892685619749419685455131112938478374319493506278053939343612817600403485898642227022507818388629740820102256939058246436205198729113335140631591900907723593182582475013986240147907019976294663428050556256379989833184314868021912577747971836276621169462538613604250957347849255826815060614500284394171577994258249371448198840672161308192797257353457596995926711141860070836102485790082666827106726476260243077940207787620160217151079080721328462086621011394258260491802513125732118174937925970346077356647576961043096798534603948738158008349831185899119523920106400911412852014357997305211654722508463963822218484918831252432337880262294642765983724960021011488428940788412117909938746447678570287050770632036977442698380351617627699553704547826235889489246057299914839058045165799784722923937333220345562157559023303757597149156152811348555708411598823067501764629142901848965484358857789342250665483410914891931725958737281052490644747109177360794574743463990558550750769862308377823134507323293927887072352846285527060310891696718450346738782702704470441236627350756261128270579265554751322888747085614285384665056438469600937777929160724907261816226510479995797741082325153937530130597454644860715864647757077887728476410695176890511779478146945769462918297789195564243261260772859956944155652618300859560962865457489743190482900130716984952354727408946375428767401764577556519961949385761327014275800055498255960831380727227933341682054179969005452840136958057203602677760258884798807164789225658756536594086724231640865463582433149909199298995273634749656820785022675691589815987547650640251632554975907256938580223306928537184205448091822213883164301706404103720753727068655396320674201417352659956052936062156061166735602700775873039768061498402705835629319076733116146467994764151161277351507291312084780220271647472525256752251661768915683590100853899129657495581693437269640014814030808975937906962796545355850737579317140563354486712030979930604618023057891218238625053094665181119758040701671700894763508358316046831728478664765890338852047425837553959279171646169646581725772975122557911873592508983265932888250368778479785244081685758252128183365198341423614663803288133149820655886069550679853812655848780359942848201711182478546437992714859147964991005188366726759392249665589874803007942926191016176670390101254777207216725997903985237845097541680790880620964083538166176063707765670964004828037252229783757854751380757384617678184318093340895127265496927264660216401077300596340042348643955724144985933228695891627374556363491443942923311387945493050695709452570801679201337953044038432965071072326572792468818243151320308903828719989529739906525327863759366802942139774699056596575446708554736790799772776791296170955891457330874999273170589377714652306999280155679598559286931593155533754378584736566209536824628426812959053660907355648554200151556585155148863437399948638337731075178402665694111119593583173036777864904367682184247198627531492689291126726734717812956049114654790385775592870575427366754782415463888238028383369877553065241245660781161445772597682083654740519376299242751136901443380225049341715757703349797400212263909231238280954470242390280140960045898650432619878568350917558308531890890422662411786551688409783754064560082547325504045385960760431622543458520411518415605501908143971898136013981990406829970329468542661509422888385100387383674136801191894972870477367919443159160266830576242630894371576642881857315189756430343069708896866510608616165063696211046481025412841878693577946218904400379031832711845279095562103885071210287594658124464346720077848814299080259329898376986992469349289097897663075518935607623411205011891488804308638485269794128374968701125258155507088167124654862124522620612094916418305524517861372013182989233078552890715478509639530634345963227175132688084315277313162832731628018442622746826379692009382243109462690881231734287032363391305774851961118335906961475534532777164241609414199099129740248610866811388641643239359084694138672269176263150020988911641290819341427499158507011738537150998645218679167215548206641063287521749549038789179594661679730739072964327638101943811573182773664663276032078653351894545170130861705500584625099547372100420028303942268051602870789827826967443095878095407712881359713088889189368251963408784497359765353264743786213733991486588422791207501631193361146590552451256823531357412451557010068954589670151904597284557345642204357631961603478847658505499269622546624304539267357533950300524204061377660068552914978908800641841163311110550699127895373680554812192898715434621557624307215760784347733536206608205324549506064668518066157863326486195618054985026415095103563483687498515706191685853633988585885002331037922072156889992544977011870272069958461368912312215591241916790645255111843697752716087826056625372922041112241891594955605527022642707757224310881154332968920619544071761422035713341542557535793703278492434776863287897500700204101533519130205919776039711357650855317785835325922594095675395142846173292213822482938352097505128461504022204925288433852044957864770003584565992807896137410887133578752187425329409322461404502691437576385192575436223681805305774212175588321254546848189813824090211036643165189276957267428193665593180914177777405265152534489252785930031414800442936399267806053318742228383035805870260009609897853293424528113060527376058495377067746700392913990870237244939781838045847130870994302554356725674696627934079944153962782582135610728094325677358392635400140762835787388069086291744139527891706181395459436539997774510971285203557211565123522441878134450169848511539542406197421942764643838133090071305374648353071537796845297133410452421733719353339613652780900526280769166760882575960281713189580378366855133632282479140023262859046233722343255881936677445224828222236960194464814773803359100880569348517405244328442449148028466991017582122140081946598197266527143853044033741395683620430526177237555839464707588266225304177053989600445671219664615804487512900368489287384769696554975738553303501206244015774091335710796129019783129236869264130120619319671262014151124234373443563458274574169658679341370124098261762872707576065189015109870566694778809183394566603985978361268043518549981743453052817441468737507011067925270015238024968860987319703676459243949812083076130543422546193112931563926651861508440499654939080420912177269164869060001468150673621243476571167816987745346399323270013046438756307568739103506124160909453084635377482670311248177695481709732551794443589916906155871383717449122904202260373943182998246481187685983188245941381703569725923861221455288854018507042565036760047645702683169045754139566197445132307340818029995917822142718339344101340451548717603681074386647755992808038689719516012417152298828726631482836033483162525794120295881361822277192258083975033381406925859157444640253248119868866191920287293445621656507859173635293844491837843885296591619631397647910892240148709292029475599968833751934649498981442571659701694920902026915791980177387449081360872233025982874631832237679294278225006218878939300409249757632707966280807773340800720806158520419554992981264850849948126493949405922583327202093404103492222305815224508970318176502519995563458293413751874265850203594468604560538632230919896321138491981583416352498039213713955681493918621476072374477033551355212057908086248203276428073017295039028226984842730942599065908851516576375256763071789508265364318380801421552432691775048925704339799782125850813905838678421723387685158381435371236287872371256346540559924865410670473308558689690986558389967000183536177714905238740784211647169187064402466918247318004527215747143971961923767485209461543325245530973028673701348286103846121131112783473283846453529358050164545461346951542652965454242488787002089528804024081522545953618910288367633694375201076475810403192786044324635034866719098733582957431270460179231944598517367573002435754029199015098036967463530903843603159612528949579283869315620876021150323474454665439208549863548740152367380772468917717812826431473639032816350816904382935375466939204139908132676261053638763079614479040726126856520214202878441261562575592115034134204019035951583685655177205855972405190762421897830055020718002479135472188914127759824704482600199378671169913750674607517625217890836843594884271635815168549792118293083113700212569346036602845514753004567110513616404239360229764197824621076245046978824238740043314842004501386038088501672611395782243858298803739146453417555432871102628553143191709106386901222608096814762698423536984360218187770405470804607100858769502184527410358219583136477094719341137511487096827448138472227791890342746388843430711288844800583879122864508957686375351593368443620295567031575806862258696624859430521471517819226406856978820612635955112611558126906372457626921931623362266415368081194470590239187360334209247228491767132411052120462540843401652516330236724286270389297901714058548525525067480486179980672358964216611138988412971070908319618533904827241146698779230606164439022210246595657610987340782622723712857182936574661075163869227020552857389315998929652022471878287214299585851954900274731332551519034251900943297483523434182489113613525578323672967211065086011576561341257302641244475829377884106495822320865543605194090978491299387036184510980798116858312781254242079499927048394445697146580848319233973418942207038529631213282201925648025030441961932926911731022148554048503731046138835122385919163853489509567514440966830449292456930982610421327566080225837044439533882001360278269383073855145191301805678955544233642373315168838546351767219436580848068268338852113298776852046146126779732090104066731443107350003775931128116947717935930884248018899987000998554779748497625278846785602726136437133354430567833254218858446440436689602178418815599970082335142711844842040897445957513625516897307805512893187071178447472544237041722328365317976761919010048293612170691787155477260197664330553972413627264457851979914423195028137526864465287665074786837652453136080863612262428737289809710141258600173921056771777828557969317418367003578105227874446067485766827181600937707037966363810836607306831556069135020904379906417349752034114062541608239439897544282300704291381565175349500838937345651251837235563768075719705296386966019636301236444947197296011943276906100704234566997488469857358805096957628262234154341764203888016987768955066084497034479118825768500055118102666720649670751031073695447347976640784001034065336279638344267960417038375302289994483572319302086127895210604635101241787270586835764362879970711600706140734857841149897204650700469542282677417645860329065394557305998391225025681620006223553448327063274425032888321081721642598682682913534743359042525580342930264906965674151349542147167109721667869113870161932104180576517212137128909328568592056715448505834733733957726094769072353847660514397603114027315047758827945019989693969603461198704788534335290999783676621009864623168039614314482122170466428357669128681861631737071525533955573929652094945759539348001725259441949964692456431432194620198282261991723847231612290914306065719761656940111777589972531164755392784235160653811737184227738905100202807153642096146823221984467573517182749311374111010490120501592614810526241511223471430578567460338623336321901038935080433475192362244361139441192428561484045712065597175185608616681751499893227810744420767546667483962034761708968757768479203523716668084791907632252910339211443457326551284906306080021736636982115989821255193784018984435292628228742624920244375173962129348516200414984330394239917140817073649305743618133253635695798868274777650689692600081003407224512189550916974614704837696206897625707420819591603294635058235976799108733253118254052692032190783291602697130907884358328801120914538957259260292917348231398636594012174788870489277866407080124172754619243295064744143121983005944589385560560952959405936319318821034271190349598399887083386937963515862144654643216618387345304099121690251797165413742585568078333453708620903029562179492492844088320407126503383673551844315167752580592985827406255330678285223325253197260627433113307427529049110612134752386249514582977160755609279955967700063691127072040911375467445745809288129009339014198074707782271705012462812148248831682686915703841299841362868980190148702961645698667205068966138730342274276299680907723211093665299874750707559164503980952885753264084931069317698205770898415114893039559185566662069683502130678766171371738613263688863427909475553425669518421206886894234015855497233071091050325461912407539836763867065028575818668878432830944364298829544836686586294593426347081708049315182309073878626496052671119109296675955822463194108546118808436613768394508791618299402945506649653259414873288163374967795588312781702372499500103198335141485908496679114663853604076074435530615766201499579641446468235812565082143409223468192949180391187851491197928992168276091942898596841853560790464108681996457404646647430936432326781929947489087529339983652255382258911965839653567900251524627101507250724486066847554030488341858940767383604821791009554772278274344521369685852147113647527916153064020531002470380619076309283063122539669948089188646955081911700614948386656971057442098254917596950573212207419155308667148547197685204485379539950408261830154728754279771053030655355212669774445633447006633074539576179702259949352750802504260532663314000622396917161342599735155821948964596927605786067892676438726646662507212989069791482230107362808937793680787723403693061891841294152708883074542264202253177519557150515069000427801192802114084326059053548665705551432284926155933440253662869241823669719678262178040492065749143276240342480948402697795553877741704334315078900627438969550846117156163726640128689995841869055608972895760954026782197797003527620810831373852083091431097847503839484795409518119602313010634668123969114937212737386569057237615943720039960566389777176927830629197887150362577729858903751843331147951000152647531091500592869251162340387912708340795199195823708102335418603267784428800481476629514739430340682337896712196157370136749264712508074113034224147343519942832133318300024644940776656660139977373320667919818637517140394416784789602850767708474779060242969213515110567585635493427853769379023934033853376867000372969760718928323313076219303173687685559747518486132845751011797561741656432643842583550380442387157472282845881634472777366416435613724898038998806500674727377399740993579782914514475689948981897042349531398715080608096496122332987702885602903683467269105670629901257114951847468726072117719134181575845085821320737342605176865729371161847708626006710453032944986312638040140538753201564404820762503001015163780452098533166267629850980655403226265337606736287752924247281424800835836722620515580858811969441911220792027667425182458029216899263363290620867672935620793531760951147713626722632049922478636648872458497129813198342280212270245007283915809419472552597160514644750424434655717951088594823435924633394468023986520662581244030776500986355285138691276974584908707638080219771966092607516939949398756905766370421177593815144486269007157911184973375683145457485504495830163835107689935265565617474484776249042163991934901707249500236926763285365112885172532012631984318681402504863274469957015477559279759226174508850046669231412608894866822570997131737156857645541964129572315367554213280991044555412343569963763370033422983905196641428749848331753461839940479638581662999008626715684274774198497929620464398671013020639283231630540206282775192095837640816488608515128570734052319855816071177463149461845401635790767247112037203116697619270070985890123751181378442350518468878108684525920809423472493942525275197524220291546137986241013454871294002069918981698978640842503600799795231969626453168848605452412658387772714618726162443053833971282261293749096502469645692923213120848509489034319752167372595884573877158452705722721089805085052580754522960470546790494275296139914316739536539471466542150955221307841885475269742975260951286231212541723844485837225141541742297807549694819561661603796494160929959353065186865792821115208951295970615831372637913115057626881652508501186595100945666225362225459380794985466958583807271942539860656065607901262925370230248908521279376851950828481036609896384893032578918202805639166996074578156260463392420883029704507036102542975349101983687734011119535981970480459689891095854153956158199182884024740868817320208898553618898375839978430095401376637888383087103397671399949084469019996976871483870649904558275076496943456426179955128543083231943017336573094655009260231727298110177593415667862781932711940329500005688558735959482055582674934098732802631667866222852139283155240211180484611191666538572998085328456953198786042328117384279560501220527113079941339518009143556016582261451614706000746233376945995489783207161114169934157364097285265219657434103377842352983361493698036172789906634141868881827641086227112773233263866068547808801362081857994880786761607298952361593258570333201443960779214834230321939529570181458767203516842088001937650551642431717889946068576377709317066812979997599387452145300968320141828487057208809157872340112009338393539759484494592449113453824392500879631756466260439911341664050088840584713388277961164944372800816187430775609792855689315897994454246638873027412302062822351468432585747071151878882448140767585823745431327472514094133912643541559219448945784121541884816346164430333829898439370593329789648911757055599239877230775482723177849169778010536663373906306713058088220033640471990233985125451529632414118960123475545520132788761095861911477805956396595795148591995190524301284510625014885737514317347358060736196107941674152975429859225241576657444358285588795206762990155841497259303254969923702167844876400743544031423181666487820553261055714889501244206135101141011747092801161453674728561286846110786037478431153149056539946555854407046964301173248371162688636665920248566740474785779961780459620999533515513879323041807385582245300417340821250507240150743188812308356623959908285928143634789598655983803009878528594597482343998494736179835968402659283589334869676455868447381893037919732944569782059776569139125124728870682694981929121690215449722431210757582933267354573515996506288535984833315088651133211460512360557690294179172135817148361994547410793846302824595701671207561039100640020766042811413078998088001036153395790005662121389999977530381304621751420750781541888038424694053493952526890007339675064907665007185506686680801952678736922968567394736065931834549285792942972726168761422200596703240542252717056872440912877174159727349232912705435024519961551616139769305077664390142083682552302996914527736491064638875611380493512256124895676966845051854652300592828974556159153908916288879651810007823894370750571730075623362337322455732401205339316072476052137074808640051278878961367279173932884279828405314497162838573196148681944756520630431440494967078849321991310082084197411533193645228776435181618871501380102331903318199234333509633143034111673366142358056146535314257529234099331716620171307102932535007856433962143713122175286135931363659605206740671027704279057304686539332288250462991699737097318856173203618346852082958850223373554593317751641300981485463277520789583039909126813801732080569196164366807216725865313946180996729760797742936901531265874297686780447839581381646460745137137354068913496047244577729409283625840791648857947991586207229240476014701995392060672282709878420690294511633973695055825467106613027251994033211273153049682756086301231867689281630432593861398445524263440008552198517491162038253469105117795516661271939982165202585348011262964776315375799264062279366487393132800807787990779455500586704772535945636694945861694453742003667284689228733337936166244989616997465079122957094549264338775964336216384401801378827947735012548811580486645487041219423794750346854789867391072055591113110263539120596675511957304686458929629018322630317346692022512897163963057106306619219898393625191143168739608974651560872344959688874005386466976128245330451162663640911881820828265743974171881811046305722404376062568877405000725245840950129854440794409027289573988593365591366348270961504957608663302264330017729941164037082508155855977046811544797807503153302334176843489607449824284393635927753526080239484881164458762497992252971775313195594091255285958858900182535658263633901866777867241980758947774295522099091910979099767374966828693092902748642059639257202970391686087431741871472142241029374262510904289747274377556074548267148131905259543680448883799012468989365410371154084556275083743696523051055682474126709157387257285029410806902179512078787370087693235680004267373600243669643526691395163151709364114817074912508417846529713200979877384511662113552004533904003682881787022219425388579281443054135289605678074267992700858059283077636744988158624839771111579560561611230226980084162240720931347554763369073799862447096608609824966522118723036180975535611091108673046123187963029816808423962141562902632032047185557279921641008715326473755412206688916483599965284671907750136241701668707752952826788797148457039265969660405124968037045417239658287665983889829867902553073525386971323132521705173058096388963691283252114028155494577943263359476777122891033955102501967029544932672337183183854594723438790127891027974053672657990411998486363361420611743308453940965746382915726659216645621291897640729669059656800434510859573600853148132120643282652681830285650412097106100441756523281230405659297311860443063327380478010672481364089845829925810329296021845764172091628204764884541637083969239491318841337159553042874062586928594159383082340331353294084231756796618604245986941036568840338043978381581999970249718046055927075740455420241438592568836471430168315157508654885019384869247351572358767423921898197688166749343553276048756755646953368723668802476346516384791459186831021530727313483548785554262213436752133784590192278546285537854342556727014840190052635521312415556463950727347764797053278167447702731070408062165785067279520285925063594369172580024535561941981187971210743122780730697565860782249200591205742177399414523909887477318150435565483279908831277470255110761372894844330538830393663385759777577265018161542161749764350664040201436085748223605061994203930699808799606911503147921879470278108549456623307195003492045094239063638297100574387294320804441412735036280976025137689090554185687719724025552401140048577257902362365316659422678602360201169251832970150565145159525500490285403264538602922366511646136510233214826058566798887236242634443086918667713369345424025929022482373929261144419986835480226484626944585533022856477495555032380833105518358635061080474966221248173822881831036546106682167792102625843480528822234565385500123315537532005174526123120974475710631209443877335432934727450590877847686395268294932245371815770444914834820307339700960854611883191375361262635024974510858888926168872731063351492360717766634107041886921134084739749565213238384164005738681183275667673707428027048391046377744172611747787720146723595382252971106198072043870992139714153903422930741689494356699302557186769242411519703099891468924959543205583230706008335188781080336311390122154779523785686877377699899534795155677566627421202596663432617713895905590828086737945626868231329313807237777825955306693132875249490946157083115745907254343204971472120992802419408975531009211806142021698944565899939311644427764469080816026916527213369302917977345809069744679151057066889179677676173946914144173895788118384063749835788314202519782426934760989772779960269250990055014203169771132499331173856667371945897995491395375316701467044661853023827434930462965728755255445114953516389159423920424661298371601863441628384597527054273463175684672222080075832260574052342643887416917427035556101653131299659272778333033630901853121945769847309440667693368677348971858705579349684721246206678028330491083083761398394782730611939715982290656210395971900246053134087122977987103436056952270177073215990252961511528463170340122310333796146233242925778064838776197339387046430977708216734128559321267749002894763823982262738315929298783220870781555627171525780410256715286513722636243623150383322991443833020469642033287025804423276362405236848773866790757154828116846963480665148751905716193893211566844586714143293278915837667493727395018029849175958796596755292332955624619595747072983868519052359166553591648839548186007672301923871498018988631296009040146345564209210399288463407466555806829076169232250129534930897887476143028127878049914603644024401103950494002536513441604426718291171684882001096018061361613754400702515584156614460425291291276027095729449143583189468281300182831928780415325640144812400704859172593612052057659692158311126687123237874646703403927782663922182925434263635274326663424358010918462902682493807990824025960945541195457670163799012531879686454435381557311678050544205549625109213470125881759061178249630229301671046606467542585708433160703869582659634284785499672683740691736589818669248552294443954369136408978981925103367697933307008188302752702155522778883863089799868859194145011943926219648821249717937200564123912933912687910908776978890322824509500173799034011748407779680333840074102640059407329245824396429774667950058398362125190705215849996490593786798446157421116011390463949576797675458572779314443007283482194655429207509239842343249861245237397922869813569598440156975464225373282154603449870879009288155001312415452913496522562692887719358535721384600100123323901005856979289223593002354514253266371583972230067482936913581182010253703808510005740264372349931495957998086449506721526238725850056829992878794204613804516322533257050502458401262524438106181448814106506972904580277581893909482928139293912326246532069665252576730798983328692947083571782137133250342625123878688558494661517079432761354236544947611119171157334940994094342715014235063690580589497733112217151986118331068267410976458299421124600344697953321137051265433701980714592716810368323202251900566162486593961814412962636649285238185146249422322321139588347985596231519164804865188813801206580043030491480032598384174086198075454759258469097814263602909371819963627792453588682266080621124052499110826531760116410451990050529152031165019222104077105729766510326338899234097383903204750999619284448641484264409589158529749323259517348950245466922368228105999780132544402436725692579851988400706955478461260941691414219739546979681529681282204844075791560602534520990997949129297382647291862717595820349652602860103236105104314836380788046778623568198078962523905054720278295511324786457129946030713002062016567609954196401575391327854925285312830002772965646093449717338462937887907737691011124349358213512817101026812387930088746749966025292489718971451818008138132944220782506620433074928898126567145494331554499084014457333576812027264307169234722104724349046610276353075348254859291340755737977417670043489102548899615387312354731762265113710134285621247300522797154476980620996657775102675942888025788978367150673654025203970134861674486764482661382799220308836655669278707876766789908794541191450495245407098232941062567604719723597812159478728480766904905053484799300041745876210488397121971016492271665558056367710950538052116980789509538563556994826691521985911259654398636827170287682125581530573874442433069735552992130430528195076210849165327886586227568767314177378849377098311023220949538680525428395444572560385426120970989020867103704795706807434290234284571429662256721617044806675327409503523014567241132963823173388416780157847338746034072830053606982636106597939698782936049270463646503524012476198060394339149029450622152765385401946497270289330813254040498044324573266558541378277346126452209835200712051072603266462397545577286444042950413118403876732685982308873121687475293744130166863337014022822189260936306778979684296021521314505156257497836539273537385362040123118498594097034578677321385942598582442094825840796785518010861363797575916091099561262108691921097652991529460923954046680042035928957041214771016604649387487810302455041754835751318873037336459413564686763660929850099678387528645652796267406151578209111892716717468197206727706853358073242983811972796583027407355912169766936860695746457871128024608856651184258450597987144039551688526889272482274978024718364057780509135694591307594656433033356449800892230830482934897032185767158258233330219500488758313751708809993726297246249018132285736406373642017777622100603590234773564420258235962121509591678683878766084191063397709362676903820513876376624173382656347301752088693324690385765063394649362631391976431899341890842173479067495977756828796484077146579295698235446585763197095248684826208450940368510577433151014106593192835404058780184194365668023362075599408746329577874980783797700752456071323891954802087949046841176383478559255186322110730982663185926845883290399169868858254995769253293046538417935960366732180698506876400526749691703220378495008732645066833418331533219555716797150273346898473711125659138061259647044699165477045151955152618645450332353050259848111395491481600335007545309166187299196564956982446741828339006028810338359964035925764240248736494011732442197049730338251367527794531546771534540560586849262606587653895196216072909714144899123598181010952280735676800972405682573212056434776102469863206799493533013360622030942407582436383200468064726786705520825014440314313223314793009689376968461968103684843854272241432122978216505803482374679967523915595252327412167426401032770090018804317904279692010485662885088622126012350893547125724938170916267695516543032104416645750287497933848574902898937324022375792989655724734356406699130275784475969397426050956592486737542335035106441398706622506216022339829760589806687206067764961988227397760454662482983713596295570590481362548880706877178231414475260590194653813877201262656869433350956130869281695288548655270705909047933174879662000174386888085037633523227844840700832044635905433799078641758771473548274235523269713777041813425565072279881302939733052938218995522337918926919666244686967237599292404918057520960798136880571487372931145654813565650054797796442010261838104887178285136683843254413421180460964401553534541290335592003578061632202811167349579432625706601488466111561322672259857861647721661757964328831253777100578167075484048216222585066186280157097806839500828936859361600036707831664967504046441917133638561021925080077644093327154073181665472314016932069143879930573443088780550671275411180078443832642427563257176568662493091964640696168460492486799458721619239016474097703853109493231188765703227453431932400154417322650255796055209446180625926388737480986863234470235421557040013674908460062366761504307853942463775307971242281146273062886764992175051910398415713762477808514427577320872093107188856718005083775674701108766121682178427914152447386795077997450071603867415918752009398208180104966989635920132377220864064599610817890188394844851745448501468887244639885233060591360315829374110343109782081669598506283899904262322358573225232974323672603712926768089122609208345271324018435010922533616787838804614108713586817267370504507527362797335958987292055443144199609159900826110881509029336324353944808051803047065661191861345887375446112718273623930365076371019733634954044413449805289888467540925339492103246313710630823780423444472241414724316783906335810184595625284845679095701040216638795942832320522895640800190284481637233422385099947083775924443744502139004767071107329993116845012778982738767267459177548094744324699046658068903624776917851247977818984800285808158209062059928498719153206980619417740919830518231214078727532954159278667829731106022820352381245460278686793901274847739834339585593781530123967031011043661278364432101144722250691897768482849580128536823846917155767696704862833943561030190985860961741215305244683652769085371163067235728984225632436016024744414123483099602866000737072556183862803930995676044683938518295189898900041112733360518033718342403996620441410266841194268070932905054681411923744015339882687056126062350522447629655220626058045855214410390429976336161210676721510321637967256628499442180383505610029661974432415146374128148980738215292263382806592593585286390539210347855580952810067803689466410198034945912226560135005586855302718899929301781430021947067241247857558789351360777869000050607108313402533657606032477584919089522989020447797459968011678685994036716165509594290482305723949661665895074627497773603001471972315544087264244605460035726066846759257968822536368407076089090901250599541577052320669009950109957468939498376771215258491842770150667425205483827637049420887254934020570491133929406764883325561507546843354611032251505737722328032709475869392406416816537012604396757913492830198787323481121786806623680113847314724534063326730460861392364635909244263793696641706545611141401823325275785629676258393227538437738667811198796323548350142270381568097931048369659607876357214602162289191534785637086946026306699915985833995012775006158788515389346551707906250149877561887271504654021632070887982404480469678120868743892322369450150294640827838729807131299471208415122850910980079396880116245204717473727279217176624770045730468875498826809591098987238075681630330855833392451272242860438538073357950941558455778496084063031820826817555756782814036942479342161686739097943018181018024936373896097312226005887822656115026478584344652307621179744679738363615784864922330639605653584651282455210697799397978632786428280751648935551983622037981193156402617392358676436060685613203900655879653513763738341244792168302623545617354263561908503580688665049722362418128592425437676442490725955941045172111403494565831553642322298991475581880408259702079679690586188309161505978285204163264693234575329877956659551638423151344792468279493928174513076390448285249897876800244913714374275417987948099449563017654334627274156345053602375497366901486079690690333663261445317085237469901953207777556952099205976768052092278882874520151749135921822488533072991434178014019791954967634272279789423415959348804280172090302182485539528640738576536673641784297437879211625789485910595420584925943112712275295897960864078767664019170791403940491832206794573265481334210216291097155929207847410134343492888770435881606486152102870204984512536713320838889662183822105820743909859937162045406425788440062596998787783129781337874479018915170385451025354367411605002122771152692825327484775225375964469925509892567448637292459684532568235054112517403315724716402181253030994190240477970063932755994529219373662014504937287184889546741567301553949865763206850961252406966598247429968384277469731350327730488900078066876463914699563915637796467426184906791346367427640219291928462979117177936736552962120062990664816240273495547599750182410212342695828455509228407912891128925818148538326655605948461149197407352220322582644347859336943018916097356711566080031590787019117715462071036687408011096086097556021649457509984042879396296630632454974215998288164034984121499242886093225245602141490100106048994484706250836284853428742541733975274370030817112966426682513089485469454276380504283942250527370867371096800076461815825319914680965537922482350289035189215305803802592143912967088117284835191768428505038834156674519855582485281434138468930438828209540160310472581346026538376788989463571463337992805446851876292815898636236854377809076719583028154648126433804015919120973656925589292743885604150320668951127260315723693842982370198531654145214606310575998240388185899283493827220852552290463181507677610313643096495417745746240875843352092927329427203217977695024434340771432251822147718483679928424683403046503591248559960767464000452640283262916426597220098197507018556769919541422066971938930439218699515438253656857575899627545193203926920852488113685293455948112410038861267458497163980799200552244390825466308589629115004188323204699021202503119554792890499827801279798694799918109309377059941589661403252464613028131231597701460393205436735002083607342035170907817049401983175161052496088215216872993851842517342935716722041918275834782244107797734804829603055762768788980366229339061042155451947047455887699691039051883990135041426028319735257220848080981888631163943842958673489144918207290857882083093146037132744083741761608776192196629003721142145016683020659707203515385412820160794149002553484236436288595172833142801891819568560524114002679616513694676865137298008409930751293980904223086962690612725929464415082593918295256896019470837846726992294701629561809739403999929742643710028111924414096071609082661755496787452008101270932821730652966275167053883470798880707260036100773241965199389902004273679033332927011525593593547095127747664802701751802046788273345118724634441390523422233791783807130273738033204376226745232690280113203192545081539580672014903389312481927634513303379204819627722752426668540991073638591704877642699126312559454109410954956838168593737091945220184006050887815117746028322210476507363731877064790851140096193646988270414601825642050419107669392596101738955158652797596430505469204064864852434411935945989659682150183731590195271781824391101545059022281138909371093595699139346476181972227755382783281064036770511326015742947767332878920386199494216325478952778797524450094983637675541095672589461765576931717805660745460231913758281588209077318146900020219573008138529780047123401886855558574510012279471426113738796201528946969479819916807823314144394201283382194547563054680688472916364764785060654293995109056588509572277646555341189819701665846087307360739944327315353907456017663351680843452501701860715691798298162949668844391221233580585033120947478712622125241730348102755526483785966939030706474890775135023108212736864198663272281950592957055549541497261243862456435227712332004120697290457869165759872073109614012521235098801043597728796827234581139948706710521318656314344273303376903167776470188876071819861731404057045503038411010207164104198105795620740788603168163121768085486683629113181110884394878596780666764446693376933951067324341101455888653017939056185064861087331438590770638896494352568974285375851479183775659759686226289934980019828138871567278670545938103341671691861098976550019561315797132131236486392493314756657920985959354297620357325552677410913128111595098086441251408090328862651918414548959940516045128035274597554440963352314803877301507939760900314250849729450865760007050587361584570245937260199849688090052089701034669401226851533605401309576484544872684264168259952140113208658950446302524464731930092915107508302402562624863460394247431300878367611052571694445356310381506458373941650121303168818466848102996372699153126023105561661351002946281581645320573811754348878257008774296690505309521584648837392101685863056717785427854948085170480469519926369972047216595183424485597160634764526137935774699232244808526199368271020219612107776933370768593761754910501506765435437080718270061835577080893980789033505703860688677224780385602538490728627335284609004066517425321035137398745956384548868028561208601919754713568985658637463234203319846671776902839104018903805678599899753310137041208732908853739873926767082577335556307506315983073135872542795213578211154447882604875387150404136121250563880009155482109254157020327454544399886245796281765667587085646657647283831320791828877329130249896377659394135037936774369524334635493753693689862292327766313314805556816385690982638873814456383448249557242071882875629026186249545856562027204312549425870528452075944084382795971724853130910487470082300419899351133062500563666721749162510686358510794047146614467673181686075782595478498940026510213295974798554754028031809607823237845394061035943758984415923771233951767033054591863774764974959557022366658137415083982580679730315838921916972270375186905911494758314355925610288808137895570544786021729093012877362876009955798503574594484316600559964348569900279881918691518270489476602589463305635787623931854862236897605142697497837308679301417652398761415491357350262097396306180396744820715133511828901447685328201367647593185482827574894467135609418050947864686455374132368943453740130651887347189951557490756398106470162866636903439905825366966881874077159439498106717988749816329773360238363690580954919609997826270471632426099638033911487888652098508008827911874775832199603356695076195772821345836646620451056043096671202844451330555735896662919978980326965186530019900095922237829194988978166868323528545232378618797080026442474876863231432000180053980525311337751023161849685164283134689136029844324172984783687463906242480953369885833083699330819032945951737858330751101570975427139940143037715032608653083399383743594801017221457148083383917418185903105000481259452910603935773847281276389855372920731098125573191658592117919099213560115692749125036161189450626462190364565964744902473000465000487108704891329525474390006428172525520013831840854877976165768092202645624922320349811860037915415050039787512911501305259710013574521989660753821657818081701332436468920660019111644430151208697998039103538664873394580252929707739447127847583946816971552463120967618071654570747614257639046059792985162412097013585833872571192575834424461827364386620909950979278968579641955317236218605363234830345715278248550537068063809362971935405807244326875215087558615708945310370712636938231372209692051360883400702827328148841370099666172088311092728251728521810762939263146303672981225379667975715876980285695607770758004528823476579931409659276347756424364434904707646020273071769512586471106746110162222246578374867886896577073660544914639715831437331064386922071634328849768189848327274939510375281015914827814212820097677268514971383384921872257360528584673025457399546548363639343355899035241220870933024220235896225318282995440528383574817739442753093103042245368282898479004504672739923893390398153346791132376829490872536610629663679414482340538627837247848068698546311810580245823729965327342022480759497560090462676513834418047883736268863425966360517070988682057942233425840563491459521905193061401152335576958957176655068776796310138588852932976723618892137160254128333874073123723763362774749894094290879850085660078127185521546327506255016494251636350416934269157362583188687054001972095922229369814167253890227596585986522203573050120106291319441251547528309208839030101800876178551695441445317762739021012047168925964319487547989456381375136158210782330820183353075160951110550005516711661868991047157997821052048652575580174136718184987198314155217559838118645228681738996540925627045942559603969075462599803194463598820343435275651927599121857149595647887243191718819260649115124183958173221276740903945537529991561443141198975310331594335180616376307766635013577845655838532925034266281441711417989980606902162303436983864943371693945619117055150997966999395283723415176967254767189192735504012278447331320169249551494409640855730733201518071224140902378797598097386961438753685371470902188033223128798915094052293885642635069870476949982366236707186335895728403259951925059908991740957522936181735663307553639658907404977768579353085563663159725822565683004426367943422581521439251412584314543047920516010970091195746491995514303844699394202340063756506122849356550898317383972390720051812350340082486949606358731431512796889775748076087585225892747170522670680262876436291111632168264618927793082986985585269508824087776615085209827426339180519882508886186686231519736226971957318332079910587999039396558148500268000700491778538451854236070615800371646469847384332930265222965871919453091274967455026029424770913942073361472625379670711137873392202306648859860950493762406326516167921789132201717174397814878919157117697245955930338776936029349801457327897202522795863417599562802461178155906824212113551552138807553053691398699309349403195928705982599996356316202398294455193984276419497790521503807464274319165021939626434285399482780897744503029845252572447949822911856476429794063491405171252289972684394861812143670291037348191700719539944215287906810556397311954200454616756317874145430016814332659052419270855911819449974618562888741607990639635700148075568259569394505315312367999346973260398944906018053360936185398624515269013956481032135312145445965279218623140611229826520291909520959683390901061443584773847104369661616545670885656684269615373521309835496061454792699912034255781549645217876790442142637705128027665019171292975933661963478738119399254891137223805700723121528476290991851366855489398494850129255446834389226604231958657463014149683306689848107341012724046232048067336763645802911831327050772841843195342283568935846739908630857446783282360027084115960428297792469168844671562677528923190289085234409042845755359881566861694603436594542721397079169790703126442407555666314714918003603843613626195057142174655850152496215275318668927898514647050269137444473665876880646642433915754063096667214752732879769324204310018112606765361704296488977252874546208479292982331809830220613991912101151265699363816370647636864308189520262526847880475745690850408062614387425193047575151229797253159189208424800820827709029953310299782780152670194760161971610457245590453540105757417443240852201919338331214546806631875128130184458410927339701269663640570207770156485578712939766214351206266991719614848090167313791132034540716514639111286409877713011425260709161924159033816645206129208054158327988031104643790799607146529573716380695556482964304361464596558362291543817525918616197848626266571886725455762355825031017797937188206678230279242556622337321745385338324644518093332664708086869830108259958951058822724423954926793375327891829481726578197808069664508596896101981830374207804130659103504946088827392126024106843288799837569747232320802254716761048909278094654339240991157067143229652179203332025173230487651875593375687046761332292999072533804730059938606819106271657581489719384308778988719203579347535222640736194073594046311423591147280286095197988587139050447950365083696312666999479873486352540322113123409645002063682450227016771541830078368215117319479331656012882109110458429494494787990552205118234185026770897083543252034604791346276990001723370802860463849709090512678403960444719984746416319778550218112934811997589964437087099177198408548773979359216821748936637073346874127015267270976405620371023268212598210578017369050846436612921639320935830181042193408107861903643012901628509060644202905837672347742226811830295668962221102606194429358137886278723769124873836834539699072897998468062524371590241071797477939016180582342235281342321595501380366056537776426313812728663789408615718414442771534769966342848595478102502224738100470446321945613731694222514776690438362845824990007573447425224030209023609038300607793618535251098128045409781931407256383346717294506022185392614296298014872243254272772024111570041692626572840047269791860006613979335668515105838987563561697933597123327172144715163359126912082812980090539448561162533844877967469021630012873278696661669748058517322223958422376094093386616499690765079061308599534395365248632088557162845697424556819769947285481143056452640328113108921592968683131237561624272848165249865261445947204729459052608449238503935526147916313902096412141235903979599425177723488294550799592870338762114377338170450453917677283743905786233840246682176606073916446738893505577417893594246308800544433876589825351605142320955529403040851303765468647031789131152034737877851894895258390289262011514609483617500341478530903828492839863646019525148661777770322738206043805889088379928788778441030626883981775073391163670323999633303580665227525520309435099795561958459786399421046664172495573869055843483759272701971205802840512982926263324945454877484078864809605102620989057418232762258430804538835413442073729783194494142207761010511558243406536421805558797292518448647959066449332520818705210517325035289764532554612829475974955073483354620697096935852370521261481578716407927104235619874668039220641927377824164792731956010615640839898462377977329272039793047448821113755334800729870885657196655575220734090876474222656258496486963200716711847988491588433995114826755589822760062009073943013552611127453108712330038230716216651357459096327366986524637717837232926428389538513938287667025231943304946926028258741282486261857570323155462342543934560013575554198247289964439871514017928514797970574478473885482474192032807542100096902471954116655900818762878248308811536819461931199108953111936438296123878947748055752342209172754911047077295135947969200429850792063958161894939515639400365818508213308153744280711961004604872209413057235222760840011398922103553104494529704687842869176165924206878649927336668668650524375522925222192999137804566020026733211027896616112556811436279073706546503386970567169591375650372883306079557819527072047233933709446704388748348779237778555108121585713059572581448532165561991808383314827524614993473788764792901288043756590714327293579868412343358401727008551811421745694127285367078787709273200002920781373789932703342564061787063056405305530116306190778221242300215283173753071517757447263711715481615986866202259376549033077303994075125578016151744349431481284775114328609976205763196847878792027022156340847893873064047591440339733663753663340605202586626646535390765300975680000209644879845670897149072983851186809982015508957301228051454346554729820288259280379187492202964347972563573368764631904199232378580712072906860302613350634297733377016533987411258351395951262329271533753462257123228105071807385863482328465313275329333690199552285228545895954441575949512714699322898832866886478034096623007703181776842826398860048228741673533216288101435512361612636223647435340574435033301167487507730480040061696109871389881333395765862869050656856045547950069787938709808715392020106833612877106984555769926698208259647265607045725281057668766349753305746676076481716886689210685951262272802957629207912714135052224864515562354805495855269762885644955481789432440148612707222706909333556361172936348699054615016221908061875788006274857217224465061163916996626638648599075525392058036186221450641538875193868714458631379084208062301074602194436650010152197469421903312818861283361942737259327646289543503931711614723267741093478747153181555814280112952241272967429348368771001083158654685986609476902265977799508876914823959751660727816467389370235069275725898166887801780881596399725451035950652934716588107780198494803546494740924005735347552644323924370446949059089847515017516439046075936900129097132715484336336564699930613763185737533620366043872894149143247332614688834768863037652287411627200623728508324016579094300666437397947598851481900958825445431741886516054767296326756812786059649075585661747568801853721002012604912238252354767960041413898009628767628035247628260776599071072270046563207220916088576354423078961616754091280304541402573333073743832417787836289419668925245402876394706109451764947278471780460787774974435199599044786616586598536719328373366201153476210838033366133813337557271102289467397832089649804443155548644419021918407871824249800406435739984132804425300908529081374299610295180976544043507238694060021656854037738557868957146894015889635455502066950466177657781722908354400849963447955398630564227962909948742230226137031285838183797301182495790770386807030427662033009180185136913886215654131339447359319885839853866237971911965289561649453315206062593876446770465855881052753145664323676849938551339029636212333907492139793521981885683122775162346106347561169804044291665475154604452334487045833043624321782607711500945647376189052647750455935144404684609232545286826364859616721649860748231084860606586042840154897795660995931727283586659163281412324757953524384023050995361096708407909999740931350590749499987553161253841892462195904439875050081736165406487029749279491656814729999915202203824257169338526394943934069640092321240754887015889286736134132829224180473113447051108698266159888795188717931481075940719317662183804520826177185864935744392838221362742070664787202473935018226402203741216412527141447266930403772126265964559025391835307903069775209258795515922301774962462841430817416698681299834364835673067892158556422317431776720556616874931239609519781228440959923053761834461233151099964362794946172930615725976762967404553042764195511165994222814719464453725222395750986285623180498304046010107905829998401089245087267599229720451042810277472310047993300889672122894361190115081918194823994990859818450057035630045119220905636746506183348474541499509619921647197061874696275227371399780537110617032626212803853703127700254447392807960300611667358762571911408811560052506621525354138774490871751767427274322554291540308253454196850742172934780619345979164944974876237185342023996642854471894816364699106841597204114709594817189164887925365974261492350229600253782725333768621426664876926932211738056823366059332951882238104437923812201942405541858144193089145384959680317873625765341349736787531095592677167749341213478652294470566398244631538825451429556734530101631356914109818841995055118752945862841029542617083778993086529127240560410148553149768810945447863094565598329357614989301547455198674757168067780675724553621083547978996940665269424892090860365144149878431779182156427025239904498089862673344945012826936453645382358540041824395928243475208146183997133320686054557518063956345951245699044323902001563552870515286924669690180235144418803911567078309593773309773141723228755996076703121310406119539565383701180000683482022408446742786506249149674744024927146055276938447646386461691817382900829403048972027584094926136616808453603975692761048990373892681546771879007727434856006282812474230333730215170826484401668327785548059765290361605454468046953003036220481257847797501445060814605365371553693899416155798226765066475594547137678821156056026235138096620572608194639915943221819783296400319206968837288275080056271620854278391592102851327957274106279995695319721229421331591727776356268741473342555417925350118216240186073717717352350155013004854430590907211251708984588538079063929418087024843396145714103653739100275201533914106532583930994283936006002536993614394818118337029956695825666900517184075603393703507554271321944054821767828474839482443490674036831554043765235332876160418657022677250929244865041735667066982400139424443706295757229277716243080069235069445338469013159554216146427095274205909786319160967369080098753157125577438524551609465296810196582316408950549554089522573083787441616180021725495045073348050192618146827333896200225488369993838051710184585831524386471623980480450256654901394038897055797236146157155907145810917388060419081108689434491382354193965247742890067287990048486629494666307628380894782270217598774913629469740426713127280522764726417146766001087971953414583961187652722211379844677544338916037042146648068984478976378062849008927401928883383896620852454841484373212068857224688721571918326429672434316196951105503999497605922939882270073224904046807148976711489683531681405431528821404067486509259134906790104690549423240557057419864503837597187655894976283732287674139936349064726082973480088895724510629943324647873741137468327869408388328039036697995790778351043901094922234457426481962987010767098074433006425048282983570571282021734763753792759086727140919858648886479382844545290357028963761074499935165586865366343939970578929088914656550203403923257032833016762471562358488318449870453540226613200244422188614311488809783770296223752229574891583842881964805261880648937666719588661873128533526703365197795744755087801122747187840268355969152994873721736588603544119211182248668977499953460761325000864401137533036582753253119265935189682890428728850588984419642832977453748299948640956298048601905714133292926739453810450023518659915179926898031771485922989259739990994151444564707065093520132246557954538939356937975388033661885394978927744322810854227678364678513975451905792433435426175874598356163824132490488891846944608058215808893579052584050931744926863401666852990945891735219369694957907374151403342735913700951376938429948406368188388735861281751045570999266332819141183873497917878016883706436791299124809945679481162534251028398596091294625369841691916882673360270251596201994925400957371538899455900191586211188765657661663200689801029730234506596636299618876611622483341909749869952591755595994761319337381805788600416819566997853211540851449537562179331639702833655187871183406962280624467047716627933779110247031127099199486391857226583973416417311383680573364467656944529348382911565877474671040403109997212580065441864212172688674714163113413445431030231032151410092234709659543954874770715053480033954672413306625645874404750257456634890443471583962672939836150893097467506361452434679654556913293100772423555717616488537832821501592848945681692170433026117363443779683356857569016006052615287254958652449831197384965579729967461311927206147053035278569381651110960371277733842410636792036484693340846387501826491640971568115914128498970734750314884709566039208730790275912281310491561808275873178226138750887535299349298849929663251678738109098589829760319351031888110192344080935733639983167766211708074850606790043193259691128964731701698407321652029652804319024310849693448927605033108916709648063471544752839858982928148178147355536988778567265314552929523751640998419385069704180411664137085502638054254019721711319436495029308359397341699291322100613172796663010916729749781627244338538610973472498405203174322458481395090354102795123989007165640909851346288706280732109503981312143786890569509002965883456710653688757067196005963330059123811519304224872833799541013702864483871148537771908473289527345399688292426863591378838687216230559992844299254316301567961165685375522540743463648660883829682705463924252386016817903290051638924995108563999166794162165138608016945649859777909404215415784395629713185649666935305215127590661500875970489478036571866523769685987345886952188096338431812714189623976072285505025977991791335907587180704247426254833760653550806106532777158395383950353883841897546390455063140426540388562203303759788297909178619077163482763384218701875868696545915741313832392444829169039571063522929230325398425317956842099802331582307182688380843149561849973135122569014041490358530139256015568822114867960010859340338674589163023665348951754465816681244777991848282566128583509184548842597746711470441674275420692304539980788466903182677939020904761445428070376259169122542594525986777850897594543780393434629158911003744200290817647014759613212249099975995518145007817808499651489574697451419887353975473466503833794432339416911155950371963197062072367105545091347817996579060391567819150200527369691883565268956384733085367125876458080375659609922753080243368555701915786684282613793907585910003214941964187640844675972752074569922795731041173910786728445686081691952510347796781387815296159688878018679946934531275699730458697947078067834475173656700182190185868888729174247941396072731677382893367975979632333423108897966450508528447011519370761589929205227221097235528514059323271635802179331703819498148145879655762172793808354803095444277168082507404818501739686964314488908783257318623419164636567982726537715777868512392176046575214685166267147048882664424405309180619202814451843621719672342697358740418785064143172501072088172838972246606223081464186312862968063306900835907057896186421885726814721682892407438550942952589186384319837901887046727915683474979686330094717855611925499447963884123398843513239225057171804501317071002136831160258294413847227920651972447921821025181392768041360668439030385154733019497042886976843749404862677807282405020032760912873383755673627605505614244070430661696954552765933803051788988568717572151294771295861676954021322937409005594042041433495238399529983211513124323011534475270987372590122342702791516702694729367779883716243865349641222471782899419293302825609982433142425863242239608807079783610459280325974526775525488401237865408797286149168067449121208147380063768145557959689869282832435231781371390169819431358749694677965382753507854920911447906638937630910025959384540652994208435664852987306261280409456979335894987925398642378462494514604633766271143778449340571366856400650085924978280486305249141146817074911019611332586281557162488316845214896681821897545554287293178918278577129740645016329750343701376976649367655043239774236126519703280636561380174505937682078674194378358272460207949365781581898489555664585814373914620532702460445152923717481342020547442775112277953766297659195953345153157446670082922077628432703823874553994684928616823144202489214131426106577779617898359094306459153316695639786100748290435531758144331158976306823545006970103735107880754210567100702245920372070760546671308807060232279931410859561686737770772294292691900165254729635580962298446068725594350871850774959540089386811872832491548407544466562936890988044729426292806088174656026823419392508249555565350391725650296796167368848282410878651285886539572828796492644362948098390612641880698912353850396048743798134891103410569901429265110357309189051481844892152254032406391429562090931718141946888307073441307129982382568809211533907860845344920369920866843016721729764812323079691887872700830047257281470803542398219299199819215631918988514659302313449282432658678191440246442765006316072809598409264091189866529104206566624407511253139104993786943904275332977284006056478734623574306606531838967932304531133691401074761059786033363279768457778519276748497151079062655395882040029249062194109016336130406160429533500328499715675559133734608412709916250976547184569578603806322510220554546600323144642187084465119629927660702209755733577953880317657042349617846548327065930496772650999158939289371609940318822086620629828462431051039812239253099658897972712311997108948104528936126555747472391688001199694669793841666346876488705952977048049542447990474190545354570895272825432097876894004955000116633660030093681098981545622094372505382438551830715213764720508395474406692248821922088933930706177746168545542628917223854546673231602729359151809695801222949046590978052106217544993826006626198948982368969281058542823588889368892681755496549491022302181140221099947491366087861443516221310973490719881223926118193853208677233094427553970885588492554021620761180269891375378529990835285589251149366665623295996102103053965591918721323142454381604334936870143716547540086715268777012009922571898254051120152904978529671428200727048851501280703552232763208352305331468240063828584833568970818429255082549493343153418574064657733142292322987435029709236225177403632989151917359130752299240511880591414181615489649846889222568507165902647097228238752184922019309807968788921377723223465597994070895853401585325271392296597153121530670954550133588309039986709067460577151093025472154585446551671852527618900468404047617950475748676185501435813272851820953159010299132635270614307469110368486050094387848241110817155125867980409952751807558927279620378128508828794906084793972119308611150419448879254473488853210447298830326307969407316421185711277616768402804874207888037423922400186908726105946829494609002692295172140486714135199413427810497835978077321688811836936550574709002890353255313445765208198769321373455001483564805124119134042384308354924918089684159268886316038583471303267234855962032558519747378162853524366290084264357644780623470110525970716723261858201737503392814966902292071042297871134655130360462620313802856599884364865009636658534900293061370730978708746830683486244502901759580424517853958599283549016549129651456914993485746831786392002798756700971028528263529110587110480169977909013647603337129693495289611172658807788775064300096984376869283174132684859356564256093599499993603371245786264223575135242434183397650305504366124013047673918581546097978146052487117330478991302472400910908447127437103211122345267119769245051008572771170730947312648468930115482765416641099171033743623179840304731580495878692584070259791334409647640725163117177723307365013963868233385080452484650176017468007445022383561462528005119218598851554226470816349104936691443115219748709649846265094788902874334128918402707261282004865217648780453189037012100052771933063432495799137070557993341488878915343654946726489725992800910690653197626359557264540450822178798917181792057274104484740888363742490139259445033526118428320849942368509358436679318468947099361940159743896309202420965705640832765215397956655682252344839958105106114047378201833419332629036733961149157070697636265033897408699354621152400772678960232912560778006724053842423913846109403631164501060038055212834467087777942458908182219539714778192294750189318863109046614810273257998781181381173413555465438546041719825636561489286488340788581766289367947915101169721965905396894901906599131169166027720300435687032225116631211467267107119638925867091859725979067127709556224246417523715141267867315809001700098951484419838104757245015544625397781900819934136363440158368226731671993245977031093786932115094213152709344992969135828144408804416865628560623201957283620744588392662659189974796909209934192982441944973502453243656157255545028213199076683645313956159985049033869487499779817798611554047298308023190616932563543428495165576587295754927416509742361794524303554080025198365383022674079600190303687066745237732171710362411784847683756371654728800825322844306635374908852715262121743297035133208486922126213309115548172150119155783805874044955054115427000122483038198621610202179068198068486675448495543215684564925087102717914971982425655352720711887589238076047388495804486346647085677586924648091788746973564362411225492893427898578863571693897824217615225038603836479632779228822477720966011631101134309529519852706279623729894688171174498090644214874429585949365736546180059396014610811969120707883234774425572338947553926876134058249749599892452647734957073915394323616770427795538674961412483312700525084242230589741925197528394989910589961686981731806301346862923570318308161291852008123453719393506280082583910424316637245402906512848392076613958547645151053709883493810284472601631819798860180850469301193410097292662020455423381913273270207057216971902542434083380100444737233550993520451434521854430804133092950008770294539040011729338725139576107077773508365798490824110533956950370651159285461323027002764253801861680306896635120417657693703057218845051545018044219234204274601587277090158382164014540187062892184001179092328015851911466301874408427983918790336397939940021610242967078395396720206517715003650454183117087126823342783373925911400929342765014430880082243014496311618390535935172884247600288318510837740274689085695323992617217006523606130288188575752359201853687373125640777471094115922568806410796516280866506867288439480810812892151533049811084950520285090856915783248742632736661582441805470803175945717217499062643149889634713579630715901996200758170648237530348336334038422764173936906591138643627924894776307222199633211088733693009669795031822945900110513536558897817218637425643044311846688272928050921993015563503633625821176393623434620665610399094808988795312920192405305588433668317184941717739374099797755051945135325762942157004676043835077077199322283468704401717744791375948661673073068777371700534342774235639685360652068919367579101133239479076082237348189130773132878715828474537446799290134217793386785082830278086850659267528664442823572189735351179908946372575319749607097997859304714188236650835432584539850252684232282490907206452565733001856850238108537839502767859423410636123451730173703044114821517876990680256505350301710357187665300631175039722608746494344544867356671206380719467156488851144188035218666483992471700016477361146195323547452657025277091625923801281797840642778282516471979066391078546872711763124849492651688184311794304227313437945581707927802141793544262398403974492489098717655011358625691012541974043177199119788917251654377035984837600488056859486675647257753926744179671208804434656017284768201648253356499142976329646782017242586211867501672294756061196774372248201429696900531528371710216914351878435463953985147599800701032479610598554115396527865826423164863951165671905740905187795677892915492612604336161854015206307450125924820162553999131777750208087665527624440806698436064271424223473731804954172647840743201671957057432971946926869624498249934768378567075853000997072891219069491033061544221292245403566086303863189005193739841353102173376783983918825711844966532860244547140744671300435165162967126671336834673497741638107695133483017590576776487674677994629776080335065891365294021134357302551543846167811366467885246286446651718969213469199411185427490213333942212883187517299283023888421819330322847334100160159175527084149081942630317128216896143246437589926757340380311086093659006788672893126606854052613444263740440420758806418426580037682189548883205496793165714456405645042281032748024459252575143787411986781247918363942673153113187869479236182067433053341631780932894721017377431607063319800072097425895731191577296526113714115238146240511412987960420107000453826444689877357534741079087548304808340271404316771326416477772262585011639871557389581765975773042135142485003836294345174640402642573551700413133698461287869503316079536213533181923877382863757903857999244611671035081648308901779078791517301685354363757290517427886055846292357441203912224382510659114667375363307032496872839321140234480299242826452125700528985500379771696704935534886539376078477336840623114331246360788857083335163253167063891550674891240836446244161119555519477362769229683835658801593401457694547521182568489341292347934801939487580255603441048564996604334771155237893752502786916110251881155199053248800347955434740793227765570089641556489055639764188531000191334081399019456034283098854879952875406020540596928367435565306582383182744596458731366055049554457522837288178778684281943081383683480788687009911102449100273055194868567671463084571253767349906852131834751346399216393529487471910637611122965838147929839342106779142628302300918034503973975055483555052198152649371546499802920476299146863605711665762974541235424272718214112556431594448277903598098264978233263859228892601178541183476299400190688865167949497492303789609804687835565417968180738720910721064000350484802886322987686903628460544061418031646869566056529155825590051746183412092015202638828128286445996633239353441605589216649259102186320743014084493179092545456411273063367368842453846478717352960672593998548444079794965144984139450035928415353185624736806096465338684998352640525561367298728615987956899318316358138070422817592775346717628075452721482169102107549897910392048908806134542772959856314396316372291052137617864908432134204431751414492625649563461135025584752961738992163526704547648893165577014840299013940483881817781047680418564133348957031027324087305712250131078422269861887901180999762112646129851301943458343553341606309270877422244751392519523609377320386378698796047486614380910874761413343258324135152900664472385479296031553010434662771783217530451365178639544642641329361434960497732759146769406002261830098224954624701852443568163988504112332455879490749645565390311726731774305606737595355964030855424673130350070578365570054681611559014980242535880757899087191123570784152100040254795830593737873123550711204225589089171968344873628426357836292938714110161434689854363094825414516891658358688275261355962633479605851400651164015623926587103562185484435923117463001326497441756666611529397548821869884475263192742809623773785906754573878579528896551186067600139674999393765866726216679681078749827278281549584354053338529127013399768113276396863107709907752638774918579864752665999169244934113553127067798806607029232807456604732890094318002630046092399206618311810670856021290036602461831203922866865613163793481187330714652579660544274689150971976316228855167515527324881283636423388898070577003234103837536480637061667987341330137006447967617954994797125273911919685692479581870286021677800831549990801578118672629665533490825678361832902966346996733027087324799993840849737188379987085836269943107981915664537065055504597912041053456734770324323362190733778841298394859730905560826950758986511758360432448965055431908873650838661763010827755759785070752540894141788761072564867210358643459245416147036651540220792439243939983645502101606052096540508005024665429822968875485674691880026091863885831874879772850084581249866548140251403789498401929885135593710423469210133639426761105761153947634650114374967597143366936036158214796132062989661226534369519511202049067338283290726108391709604176063247248216179250782142658811542497175846997055372104215934985119875555667736959485985315380007835510103974570234868634691964511272299910509276926601536803732857728554778469178381651787360417633549420193634746603241994356459814092580567707630207729836683511613167727897346679460090596122457196075327322493012047535490197966632770469651176758862502525434596150602678993702521001312261130824925304069942824574105985007774284704651692347788103099533187147689573067193747852068734631155924235330802880279821688999600101021948865570526781134778815895800036928395434011662327440068686489060890813007941697024260563730068899173175839433980669480276306920206527207461985511636504548479236708665944140579759145628646639225842999565166452783506138738375010211230115382574451819294893637356080771347928160022436343940635099109450162748888053618537557182618393413523238203086940003537511097570987985869500204033645825707834838485576981533527760890624793211523518198415234762975849224306101847654534027112250587487212242449698187290509413839390182515076390780534321075296910520929722280653267874678210058831196771128408076366899121596732435973404440459739716211554304586145691262124210770548465937748816023734448123486850246530185173596361959714229322308287336048681499351322756977560585882424698450061345055292345285832642158738258818849655412128310418721127277369525331978705522203798649128029859159143260944182308953689451233505090206381898681041896446359826752443306421948136802097643858921407088444040866467456168058506886654068197995274167387457320980150326516113196404866981915969867005380108768539707284846455477811289335733094824745644989190880716848856114999639321932917827169852519340041772908505118026122346659034854332297038076050774205086140125520855998915498613262930068796769674057218136480952234878522349896593818573002527974064373721142096271990516909724012139429908150802574108901377266272039427498740587951978227608355409785674395421203850798783312337269169057913934854889905408376189548913183364597815355890790786157055345022727641239686482314396850772617707782290389054171391365738106639510658442085328864475328342705856862403192686511218176891721941977332924378060124585180565049832393267404273819863627445307064433328509060025401961869607009407403763663544828580928462619868316517207359503625850787800161407673411855879860690357497152209062841069522175707433502747691117502095955301151217435238559299244778227697887852601412453053261782761248996321113289625382223029446388192188901831699831440042326239480313800867562003275976161961257761216719654956240313356160512359913261907208832897473226756186594215404388749480095157107938681639745354761094679049670351793860936417082283156004237256458919211975209632651271494217574867997128684149807317239389038010169381925475032681942810253307137350470199865240085502742856896326706359916173354128505074018758929282928127730176457391386801316970122569215463878724142151963721142015719734723126296322928168775423182374135982926897797785355195268940941886207130160519994855959543951347368596827398308003133133243162761580565716020460912160784822342714731776898178362668139016149823240128083676183740062279985175505331717591050125281220296588444372605161842801891121852595090287821334952650311904387219169749810458925891154293417982182597912171939907978034767061865215357895306568698655788471266272534904995778295435409718857577373278975256380080156918611161553076567333867405749758436222539112395106274615986191837129126704411126003885100579121538822255461916602214004015653393100713706515363479612845110559074613890721184327049310670770862905562513860423551397643084383915502972648274433924709589855186257107333363630001660233250734865735164059572329297609170757890023298516555877760498744299079782091712322715694346288848153673146849051756801676654271228824084077277094307359657638492133789732967203637347256473537864871923704581997048936880850624918078776196444926943208976057617545476958751349280111469058550587058079857667173831626448067312916785680838511022478813752148613986882208545371174674123625671362556580048389478562133642858696503761120576978305420390937278284424220235888281645371882183489480747365194953846251606923515353458362492451176861568095602028268992823965742547291497387954942430224397299459605638286833117385954092714945708480662775794803876525715913283242230138745817903427898703408155787106592291591600733888236169572784348143904752907611967168956003781697936673058984715949635172493867978449041576495774701024588803924627876014236703248945248780228096560054965351520239379453763113604169962896637401430666604945591828282128609110492867383383886379064225107488930542952881775918954716929626508619928275134417927741380879883936630846387519262497535889596774099621346044390573887061228410620580836998371723107257526143377324632253940825010432344257177957032473603866142908138523476077436498850443089426279307936605590092941734262945981083730999067513529681342742863769159559447949796824129431238509244779044117309261269959386539653282222905121247137048792388061508163223851434575687491756084056405862089089574913614562893649817464754608825998986829961607514331508180384790916561320621373740532279017369540082835690214640212968954644254896954245951851829754894946932355759683406015028953944621481404648840196815346530305684876070894603269146090271572816816007247649699072909056642820551803338574354649085901369145711805145195751811831014903643520071807932409106163610024609567612034889475184029283838789171133677174029038551017582271054768532194708229966765635701824141412796108291770191410264072343866851217531545795775201942401890287752067018288521271766829231394897261402759490595462091644416059072348732119818699543010149045960642110050472369326749117294258557672887254453968443857583310488955770523070820440922047280704172164894319201783326591858470967252643081644478807443322600963399643285426786978960842823796087369046172903527662233746497025336682264338881881317990967599040092924103412354057610050479011376264994297500023745404631319076532918858576186298710893228675411782495286320820203008999583057118226684578462451420385290409785565515822806654062859066991918050188384375888208255890222580491296174074720683336050349413817337051809222470522583286318836487077560837618649319828765115131562686669185819534976615577969880664292161253490854113052711615609939071643218768414203763387472712785180925958141645875552430558100913746399285738750668033996878896063947239509152623241313988502551802582331234846615290316509036520662703110530516532284713005473068624522681439447722593211248582144207686367379742159524661527842403160705161382391802150857606471231148140487368879005004581454235091217780785308391334153805467992029933775350022662020991930753870341609531460647777660212905365813930342427476973910134879549625389908618567001128227622221247376272678979907489480374410255627837541396036745503443258783744127185782383678092651075423975494045544029286342816287147101686601690381801845573193522810289246462795189866353324449508268539373477180755518521060590119433421210265612427140347973834405331035915096526612658402407474408954194064742760540188142288584364638727992883163974725574287020553963408447492954556053883206070167743358929782676248078291227805400936508857917029104956019632523824983592809364507937510677810319905885954052374269517825594718379617573606921554695250407313990062400087832597159001999377046317465939628734746149726013487830951298209998544128914851114968039432536836881899628175042937281575588138436798161051000684751524482639719063308329068324045099822410130497785870665698186093866117061960292263318728684564840094580321567694948217225391435011382052833658459505589823220348470962600057908969787510296738510367281182090057775932021519402818766496228582281118329141017545613964859622241021945252344356130633162456859698467832587706151000693047781140935807235263450630638980074954198024547309832230972581116555248775160952641712882086385882603203748326180220469685303546827125614966992278903776757249723961354801514324859653346151769510391991677145116263098716888561632387653865334080954789158553621719560737013830355119087832751493862096613845246609348159688479758050600684950070390981705832438393765587154879929153309179225790056065992884179085603813073047138219265030409664245886030530027563852972136375153158271694103742488412171482976023117506783676466352387771802241083710435047727420912291140368837977084925802487515051760095376074088175450121627766180708291771331254239344348124393104096600535330573974929146151378209538693927174029663774827672237980920568753938553852099463675754126592819625173808311617443711547797710025954823671413411788788425566882420270357498371549915920020638738731557262542321680161061044994425117837966922255371111151425451457835189616132920583230065007341267632673616296435811728928547132891842087891049244395955874500870655074910798189311572128157094897205301650572688338599449970188707464838184841605272464195652542751473737697195026762744035806485666853106550196562162093004970830615192537460565709513440117370306792466359688850299437685824001354097700973756011504338127027495848312454353629665276668082700246856761925149124246768087272289237480425994408315065301434619663058843988544018945200921466627640829780103748421325842446910730573958578622957350621606944136110380529507470289732303746014537752148266401580421714801946350059671918303236883365771512087593793230425341600424897061034319759869135115221820447107207020577404934537968764311983041221500765896870925889552387303095967843168982917983356740165333171160894171137901773317893302665243853258039677022500192881044115727145318576313103359009799943462519613735827700614949282587540433461841228891317333974778165928400768193134901489642565907912446369125701159713629335737307570796421669551480323110877269955726302876697717820606801828873418840646807273028838937329302887948427969520063697496765475252437217407412525315301483693308189652066958472601602224242524662726973228628854881627936785757489760620029677973656683180796341117150387593919108173036111886903074637640578907432197240294828699422396423575304094961844012880252023426428709491853703298956136126006837938879708867853520750714896395523357095605383050718784846962094949258345797534253621085785423349502999058402675517734028804990714312870799991003516342849393532307321419059243258366375778752168592092212728145559116550710544651159151508867868464418346722564729883475038886233542053389543865365516102205543660009028890354473816688540015300067191900987654462394737058913801664298482398789633238012723277964168690253543422294932038699133576272673905677486245997996711618057086397235479793902190564425233298660725307666472305661884105009746885167468245334905279571113235745730565483292315135036911029757786026439395105710762096938355537380085284774614621089810508908887986907440521089178683754342767057394958337883685923091563898619503660027719875827583749564911419925502334440591140222880515240557147542490307168908469259693772286048017301212762671988108759630877627930160827992161864140480499241711554537378069462285884004435200758439419378173719854145656286105703746526409434723488871262796553832465956641826087210976582674396034408400621700726575719501465522725581374149049778068780109163632699202751645812144476174572396331047942803361244572533728404960114878803584815207319945139678194185768943211319185416545113869465849843280343142889597791462559157820795262628762413526850456149262859476534917252513919928002141556888195786239951799123658533105444000855689863288302646445368875304450036636098294477252364161940942438501542665462733529925700583987517439721200335688540234646613253916900276072499743478937478289334745798052373355610668475520071658944303235468700060578127918522273468457454435928253197136727312660076784550632480019007591371166511996506548126685926509680956101718015164110934726168624818242698138237829029580719718561250119517712034183023454078457302901977443609285791277638472119516694642625125865598079300958515228395134095202512222123538130349586255409350415521769091358702464159029576609486650403397332000848005492008220020228293838993789402159120026917456777616711560879986144665903243461008211181861542823880952750682176597114398680081613515304350697471495730440001144414276706613829746271067901754918911380596950326123237689319144642847132226664662873780251443636735277760399973172025548340461929742521466968059218195797933777395254276474418228046011681929317213432065935219265036641237384194380534312666151374252157346473413468323176844872356319572662112305148186200972968900442093192846851416694838309711491154760346807144986191195354484374994350840719876839815512233473042008295382795818205997719121254793327719202886783550173267912094588451716649147353383475012869304859002130137060526770409549430088893293628443116686083228601159676941909255047862335000512344712355746770630430695704781833905908568284594924840853786904451354471357518390864608292205180154730774580364094094258487419956537058942895983580174553023844396813493397685096230687760979534423279298210948986908117773537360428115103377200911611336165187475333672127295789305104676327424681919363212574261533745159118635268909872136625453644665864539765144699103544196695722798994660268064812130880375342570017452691814968345755956401843300369099525307574485244526513340353304322672473835991272169347020639861899660295684534441459616979410060683366367978379640957484438886683511976290346540008594641525493612261211801157648712207193155902106245673175781456484106694451805298396113361777480279045445870957612859229664875642565687225361706974089498305977566421346583380895765569803927647487844975212031873440647234738705634406638430646036371318098637431000891105760665471403753006218707438856647204010634745012926120895077741268533574964567833364153374241830915520821239044412975622496212948303914816375603140727134462776566984204597524228313842215983592350301600712977833597268691954220247248094927930133128915520661233883595423092921045619097215799619192032045907973601887128022563889452987800480448969362236171476580297123084499860761127368571110556656977609510006647447709340254186408837248976078965410448756284948440996703775262590527392915768095463537141986895913058942427510300211135929286290523801501025348058806348169462522073572838539791512111573411193098547333729716100466088670907545380978866200801752487949063525521832985891743585505851907347130649298330145521189779692057659007421800869960349303615332300233822367528197016184693195493688907457006949990379540657757520307046230928661351096967188821017584830243597306209982854681504641877156922536650861778377251729810361456975396275515663907683507426630431234923344411041583223799809560104440993554362785570601540747147186645961705440464298087147203859734751018597425594660854354535195427265631544698231787795857236570650224669539967647612342147642457237444759545382079939100697443706114647810155360826698963059775096977331298616259093787133512764109198161861673630545715697192567180639535290616283253586579599618584193719024698352937246617297015540070620906765550182973499540520100711756508197232734287841677845834907562776241669029428374943086296113633840156730164337363643662031214690545172596039318675071617750005325867495113225490015769343240903773783454356306909355963050756386384032594436162886432382133171921326591492816475842191494092858009901942477251326462917752752653082089246028962539210608122714735049805173412316244827470166338468166937213159191989748496377072320181909487757862684832395187352835609925645481731219200904343975259945286291458901750288006852263997279635992598859795800041142662313026330122141025827179232064337041319151049210313472373364070065848559200058484931566424699838910072381712540025877891241122895760005752687927944204464981412243491423217570442652657077139045304512450914488058904033197708995622226580148285222953407383586033491339416107352621986620612108492170350772896411360092929461629288856906710698469227846281604072703979639064411189613090494462320450656515387077595668172348104855543285066709152408872860055023618829258311936606321625407749635653728464789990176091807817340025170481781963701096138478291400162297580136806046505088824281137970376638599765550023012552040670286543676695138047070659435498874559523705736480268291918839503776514489153473826945177303247670146296690126469171668355646963500574564658256775844086596583777163909407370383193770861073916074654286883064098912802446783074998034967747382970464625394995516352938374965379595062710537312967017482964875760818894206269718886034769956598068727340143237388643146368978011793137089816095722720154740912847073273759459285148662940756230047786965193601307621857194101735928881281088887836931316255452574844115145305136125718763805671039622889008085374950187560525889749248999089836247626469117701348173824366703453847144835176121404146299989747939102312473076812714290721812003885460295091012833740273259064021226691442657251993561212406098524810178317123855341795639474842233985135095809191950302126100336209853540277082968412410520980808830426994816015277124060700016552747099539796283715713202299531930872335061300143521008915664805618647588005872612605155461931959696591061711850967289361772042888784495949730151660284230148121161141481731570707984731341780633638725026367751071992262134077251912235788237604036977115179335677276804413817402014658566714175882895043858861423674980954147864465594870830047882187059315480156253161426718588785016760086569554161737211980220932059593019251177342742713102201148101984037211222021097660583294117477489282265831176382281530542590171032091497901641575321713104245443241016501000649700028365569697969543004534821108754957208540404566742541709982423127850866932695611150959029795398583418446947456056450141844126487896218751386330481408658270828257099025584273912657270393308029631471447015996335164654631951849606854650431743822167686295670224542771541755308443829520743223109110893293327125276100036125433039170744862666800500818864055155434802711916559819769234312593000372247718504091310738527804358817096719412087090262127544684688762008817966521325558745480847193700943379485723721392375500787581351547598357117923906974707696591580115087430802247919737542516947774491634941097160744792178382943799395990688432969797587813708676242109663091113828980290779448219318623040824782893146112150803107604634601168463768766766961398980064129902304322076983425402622040276611235033615381244155144839588242260881897071993756980966272360953936005487001122622335023364886029090153506924453627456596713555754419773703405541997674891166657828765654660937221845183916315013282320203377689878582098882705147400857886655131093508816222015974826881434615227776083661657814229533644176477280041115546337710641337626329155630273647337650114956926110283697111451058367737431553684121705278341468859749944805544950151291064481791712143446811691312824272994233281821263698634077211764177708666960359802109885334844399155501650477252825565646381224641145151454304387284638630030576821817043154906672728619634874300734378927046431321256799187164310658630971551284755344479113747264262564804756815481098557235196710930208497349597363389597019935266336066697281798330172593755921139618121951198421793769321378570952891703316212771051622700257329314024138305171201760501859618320766656701636958551061121368825141441824382334431131048161720895038680988326050818017598251040157264420966378884551585650253168713393924261331833669601077283716747290962923706089394200897928508993797564553175013326446986323844490972683804345354966944304850370369166788677444398743603465494898195331634714243212265955281734475742939564257702698394828485857308884838904005311529265004051775419044476846782641540202985891907878572271876180697789928192300315463970277224905566979394154557605893887635377649153655155814486533087149610431431713631796111361407015144778009358893625751665710843140005053998877426510822652989861294195664015578721968692843914009366711241977138059629466600353551835786831549706745349562119949957982063211117451619475745260697920184870724621952436703755474486507858371868003271349687995387382647440316719741530331244459685900779364719408479575332304902621425392572556936690811782083009466007640277108666303848576682322085258100525291603334308755925830777618263158122900514448110799407244707226405488153248026359582043530431146644136522974243386467767208988920276253338208736715836478524178803480811749767447219665985629623447009195082097239265677578443935409784670225511209418869604474602009713029688683565003720278379425473849726397059029619153270583478407562744816454328708857964747455845373613011200245728232993761999213116070939340826434613168675247774693191132273147162483118948199714080476216846675828758341529918230546603503072580816674872219633439664918149475327896522199720191388481174289067084884877276216569576390218207459068806809367330309272660315660672935802211538055800750908936786110478237571164323816878927477510585191650461377398169142987657944591211004667955592812601245120345526784776892743088838020694638313298402455696574230962005165370637599136780163739297433821433094798473774319375374559426753547255567139403940472029517646270040081411935098575314127064932071659959028978284037523346528519887027950558374286536785193677609876329073606675661642137741287187205789278684592276165666516554311538263163848110186529759164954897568470007273287768345027311974860005300972039420135349534779538903313515490058612606537917807524430115978919420616597760670026036658881162010169970240917135961664593242435281790731602560531357396288851580843346106588406639915607668383087826166431405683556814944256331669511826241109888317754502971768694518989173830230912473627009479862527131730987024766334799871406359656850082136264588669786569621800139020373494188550891449178547801994150964410858100130910781679597240100031883168175528293196674175836043792829321619851476943011340519213996444177516307845719385676046685117618127354100993419225501509894205857294243864948374123827528669586165656287169891100034937384904991244082222219861384130894780448628026558856789701419218369645167103839850508707564615188892559196494648992372143229524731825107550938845997078992792105295661788673162397470715804397531907132427194300293892549217102202128496651631733994279251780932654336814193488137479411300341056102906619660009788982508744615736786767686582734926014599098498136673831067601855723200941874201067878708985437289007101166416668122342406788401006646370387503116262445893541683764010082529633798248625401333902839911568166456258217962254548443584467612943455546588014612378683498603971886677452964828376565569739405115118059296070652060147442471849821744566160891146807652214701039056224120806905523662849791873608487732953027076416418866169033139380496043728054248208213782456027615137032023870127017332577613329151794580985737502317505762832347852855562021913582650488385905172165699483401495522859937583171105742875732516424386100834603369638224534887750448655200783177338799075599361478901444344589755342444372404770737827732685704107074593567470052820704034034115249913470506621269300863697893534510268894691458979010135798195626362861932899814654548861060345074612210250701933308121068884115619140294442068715843890517141763019443409077770743385842476577737499634822786027059908763980595041491261854577089150543528673893675421506902339219239778081678434289331020858066328201493371645694341725583126861471918010044603891771513250221725175756093370069403798153237700782785537958066578141060093591642788100780050223482808132366561775130279083707345808098689211795033225182155499518811361506256348787732572116792466476274963537308761254246463220343214952011890030167194270666411129577955421174318303393374098581357111612179288940906459989235737537915791203411862131140823871931605899112503665263921694666091931742412366655723500027998948208309072193268608810248873091945498681845619267876843514770743742428626345985580123275707512934434027854538673387391596887197816506850468625274662370087891954086113574120543045373916289314927021377105636421736538722719312297211712223574672944202608678005850314100044209654868935194537900814042927796798077053922245071085657538763036196234272192923136717412723547770787535712144857892133199528560040952918893017596899334143190549351022242825551765484087577883624847650135846714280080548970847214353042601297659465065329326207658668562148597834306913754440804812367986414316774047400465053467157773992716078309512076353748287175853029908548232679380064520932133124836797341224729202149972046162031319562907402848733075480426616413240164300314397499180534635984424033105382336078226370750925320044512551995983843099451335808223016355892784109245134698974518144293496867091616248108939022615221662109587685996265854306818889600489027305427954230497380061243222654838420375594709590769636681867403953914194755818449488216016376827531772125088629444276579224657451942422151067204234022275657093354233581036050724851398325158867337682571960828315245454637450826385700146478044211543070632219749991610190921821317849826096838528209043487510742909757510112290767138195239698614649442736273631851273690643612598030061071661801805141747017965466547152055902646151703704546217597666690711472782770703534143251992184201337202830372889193765032151463388619945525532055325340891786348155275317271491808318211216830373002053766228753347040734380346760500356936664468583241799219983840025418586086997308008807698695347553391900856025198719994216558113973986100510435407959798936892313340852458484463430746552646539808155783953245532594329302844914983884903178078971022958920687362728821744976390466082647167914021802797147344243150477768999330113785635423386457133855596277928234314364816188761391230310779082825999858488320248957865301348773051713423125510006292467062501254130661432715819508803557212587087685804430889997698975872315103507365387024843808629949315377746954710339032418281684291991063644899649726257713678332259553492990011378094358419579124202145733355741760982928768620680579690555293173688901282772450165978864234454020283231743813368019142245923562961859591712425350741591482844040765378682141965479707592752764243862200718875162597551286572895133387556142708572712297204717194347128276816617297840005515700125575627166593181160852855797343453307808640133510198353404508430122944277851862669167525987130253799713686544321483777249411021837978188602491329227027012903340670859184673041637368649662158512865160880412449036844554415979438997031331077552106407012563828401423225183324517924174018988454908565540601727362474134247604481114113305804717387125864945409760857387898265157632957020252539598408582720599591375259408422428204599644757206668671633572825423439432952749091400465170243981717226622084348583164006976016577065156714439635648632213348397107806419557077543193086319913623846872600512445578275954778419814946006248358641665229807243705561099078906824895555945286964618452487027940819269623285007766326892404230669781990062641042864444399675597749661154247876963655485792701555477653957652630560543651543579149560117933906751683084138092359364039850478122391561084810816419852550296410654061836807787528222218046266565555259204619368838442179340706280637465839387885089779936063564880537527848156808403500639610460569207295740128797320292068726528031054982590654959075205700358499329647978864878859243989052042916500490703566294843874126526765375475740776168111113055145566880559540965813602934461407932591850769356377978669040348374637730221917730134314129564903301520487417966824011079219813093137827664060369121995082027691468793191774519472328574120858874214350276034191178099519646416936753609234220015000258606879601396145687270847187098557935929272221098039204654315093443588396433754218337760715439301304444905064433068676831396068241935307351439412474874775364150610295102243580673326980261092992388371507824043382604328969438435664829985442293655176396335773386287344923609763375989460619351775316584696687614021607787372511509971171188318295770813911747625447586662584775129246697085196096363448074376371121290189975709327456412002911654145107557557458620670355946780811344552743521677616790086673248878046491060810442406226985767105067133875182883273956205541954272483783650413457074722680606856394327309176267956283084151928717432198424546279390569715880790783862595886023636865502920392851382163709100658123074745632541554194939495536865847236913981970826271705220437745601052948123199331029695631744858465025077517530903280414175772050826028226718837482261846010789434015980988252617609027194528226813490732811643663924465029915500482928563156174880564062484808861138843609336448764450289204217666500763956043659434026914798469236159929502566266993486820068942825231901165648281036268379715172232540382364232914509652816830803627105389062403631074843459491592635900390848692482280400314977837278385256925849154068690960627019738618125370532735386317898771319684698692901951205194428707596155869678245150287357082501857700111490797772776740879869601183004824007882016555057646084684645970993783550035870199599165166564553206393298425388882802296136772765357215001546637697402064123566862474833452026813847995246976911645577067430549390581431462207263960307373322758958225354713725979263183811927802392950758783922942073278615301082270263937108003109013224984621892018538150199587851594062303612337477972519702400855931796759100481510732131052135911253419406490598407256526873100902756182400902186936001289866326165598627984396254858887805121004500952607423196976765204596204866040934094900216733025329308536921449805803099151418259954596850972694565379892595686005981360664174378835465491385301648941695494620142251431338638873050086058690701360576990925540081365248375283683525571013225504961410381705228262570237399807391331062609522243912688612101293584666740972090378148291604359344071119297092322806537492698992506492289566164160205859050931040072688216947754150512005460708906386049132319017354264532382555237264234965819521837692431669639152642657159077019524563267748603360270102377252025433618057240991386649388072085000922022861317993223151745330471353865741244736058056270197719939106428569966637536679233017376443628553055216483057367338942727891225584796650596242546596998407870887888490571877178972114801725575050078653244082455937777658604714308924511979672666324988331437202147013724694831426109895843757377135566895402281423466665460073462488877525302844913933261921974404927029986777445273793720316173041894771780380966471927869467750295521206050536146861491234334017995857418726975525751681618858040020102869669464606095440171309030071411316698221145367458092907470515386397988494217178409282409637690662795302956990016547655055356071507017775730962645523917965188491281654409694013119988891131092689163338482456426996457116937303562785549065870510960742320271845698097349793457687421555006266725575172656130819724340855691842513997686167560676320546544540344303894438694790675473264242007233545269787897996128875388798968840029293080420317371053216785744765129359585093696344070465192159027706905353292451854723525928690666816131955615019244437362650398448148691226455920708345102964412331914658169262106725017795431742619465949011568034975765860296718465221702596025789561930442752237751883731576947492533867536816088474851333615529643660159474309102978481806974081193123850586674382432205932547932008164392689380937393964912948891808447036078751649874391225005059886387149344168009086311945801313091874952219765427176117411525729068718630453227447765609312603092624669982791388878986918716890759054179608949996705705634375240140367765890582073839882773480912658807254600829404825421781050409252294176605182437501380161770721282549630109516847598153745439492089546723270598479312449194461166278515196159866916274217149860866264833769194332168475502362412943223046173693080411989989462270868870291749088573623381733146367964550347527121381711650860693766327233919930753661265029718371981020125595376335707046707761182006124927359316851717206750827162249180575646118425192777922750115347630594711596952163514971760508951503409550681780916909632627445349803253465132250678165602507412154501098450050032201508962498205344139835757420474415681986998695834293535336076735229717356745377762476565346183743477010695999828897588699769473307732220143137817615166767942381205348488564287158727396945273343019426848374958526844413362078637712470311334344895895515731839400186555122176687123852943959398088384677165250108643516824227038267743956369854087449241148898697212125973841993506187128924018169421275411613949530964539354949317353845087211754622428849536258783804661829533505466176269318201994751735181204426084153374306054993835746011976141521260291225930783297458820891532529641467596835738175874439037641348274859831409664313095179285801479438849599653296542424035315519152773214156767270312490779396151087014177495942445185809872936149173739750257847027673694851376196039042471060874568607110227955709968182163044900934200438015271995956053112898864309841296563191147988823470811673720518927041709775579206507081098382238936275068192639771617189451489579855541895192335375870523727886775254106483796137933616039839911236725408109757842825222972277873415535012405673253882652801192234314065839985563598852006098401818150098195773789388412462230738573137917466530871675453547757938622508007684938122143917108973808306311819008631296589817520629723587041743059930029435449748328451033025613213814436605087636761128924906246273042360076034376140384282624936291881755197999836991231376508173491012500326001676012269111767242016554919591773783512564329832278887693569899433586134236237167201015817027687844918621825637173609905282795288005248095343348224934175094149948035202649490821118969500192133540641613178543200702832224697767986462691668972551807744557444183655202956255914138197263574933582342716150749198389881281711238790582371324022163906427051391381980180515969881124099576917102162626563223819905640627111302908926113804365461320149182865666744731877794574793706537308131667997164499159547593890702676938703967794184026602619346892240541986463648876230291181528816937728815903822284483168647271581261892818374275406631767372849864324611891716822782948004463937499196153151695951647746953886417015106051574830187248536447687620228697400799228410464996116364004409479944949701256142843181792815729390696363875022744098587724267625782305585019413016995674934588059847932553492730928973284293554169863638702239466379681909454901370102188647042554833454003005996493500399920191391532508412679394324630196494076070547032486819885825023333789230199659812359618738273571838966069847166533958201802681427808977506963405491384257090443929913950160650341294040534348612147772531889728205346577650270854266392906537535917038419681341179221349193455635829896474743456378862959463409881377345780950062153954011355416176566649372019769534177223130907053454585817591563230101886793985011929339782532697772183456902315841398241030077917511284578126804078321379147568393291335472256499516170859120772360470017190388646581436463245103070873594164656223820410749201725972395361093391597948186498145323113336262238598064744554585152475763006387944578461254262058980763428567948388090605212497436446286166324878719567171062004722492875922637285821397144134466724445468145573073224720414690960897129884357120892690708616308412584947151111880178381582085494203325815904394270564070231984156174334812562764215571254956871737370554167119093430021664056222491191744725071895255677171486936292371257789944762728728664492952990532903304278496003326014162358608538004302668802509252870556534909332282858086293434208528943739784533350318661274839670364315274850652759494258264445792772005598101834692714151626458936985418145596308616265174437288961167144123052657307881146142236215902485649533905116856297510826836547243377006845411818416341507687923602233907240225237505870989839008553509538751748001230313505061826193072072560410816051246907767689436753798399397022679701262112966475744646477081311231368454048436278907769803745089249276700005132329574795989562022990959238876033732629397931602368128989619921250688139080574120910747843262399159329490777869407771160597201998335306691672349042343796952267906559267706054970507651626642856350992893551818639218711208489733728718065336939351533530656099987842513735876976759238862051411155608896267567449642329591138319917420379429366440043010991753793309667782412937996273708082655140563889099439652003762635146237341062873985479966120529074319562383760851276447639823822330689240475841566042067333606783747500163756073955075525394418322499356868339057572512645170803604546294496132761943613079218561842102742370077402576063642927878352320926576489056026181804497043877668670915507803529001336846814493761376794108167605009382725591414069897101480856610576592846039325435890808375496749149516000902170766379817093180979914117077766407243192627982598325952786078281928958529632900143594832205216354307505658785293827548110203772188767503833520440331891675296822020588778282860242626602175594095740587946965979626279036225075371369606104875971746129837440515950499286284058082500179928004833390885830920379115598428423273571281938384577147776979288911418449108121762806539874567008820900281582249976834486921282017730422237911718006274967264828164964006092645058400950423553659395740420493922645569523280585892742904606213526923892719947149327164034223726011144199548227412396536944905341594790118105549782298216032918086842338834947894674145992115485175193400726618625852899561186196234175221862075768706472056256714738570447794696228779676364770563768202902383233947249430687236923857264534675102024474715931410142855842654196017511096071837991193535822835859041336092543964478385277669086981331193876717066880441372706632414203727466294686049614558684913650838692612354352569001725751279511101867656623047866422085097298241890317711431648493559939661846517806012407292011511518088502170295473647991284570729666569985221468745986165696320520639129125141321318609312918098281505357105864690001415733622043408394290085691961497252953916422725774291145221023732687540027246177666331565024701176687594210815629073312179796134079879503415347687724328540960203934151638962429492518384044791248464774897455957439705864379600663197400780847620554819484578330705627512342146533376715930080568849092495089570442959200598751477626379822255233671565770912392849113043309490888964102112742051319297910552106429785764926126298944766257434680014686053482052334073441011648562278267023496742120351388225605473758981469672736711596224607749050376108271641435649343978103980489807386883737744199434263217350738178593040067259776333640443196624090945897804353841631291519270303336727591808494748844254096259514223613820505758754889963486088001503384213170325551249890327497403830538990235689673023011942467614627875686235158991386354985266300413194940710017507206466458728520761647250775906950180310276089864652221868007665247238905110132972315899914871872320408780844514704673097958136602202976380176271124679045094599744550024073015226720916286090989117891384988841483990845525809282506349913871812397829925154668788331150414800668957595330679051805673635140309997055654602902230056185046348499386935941335341604446639020758792960264858392026514991211530806448659550323958424282727087451179489245950608361996408008765064118737202836486928855493826531482605472269811625230482135306784794341727216721147196471310373541955531255238284689474014732024916019236538084908157126029771319989320610627201514656683598579511213381374912328907351306390360558063480232079519627618890464099106343496394859843621754329217629629580914076194632364857276915259894024400689479898509492541319908248061153075513146750487546588427264042750042175292705975621706939674317631638897554045484031471504175184234354605371515564307506282793161201194269329059170397159910776224350187393319082005999730256376060357933295971112274466277795461449606361087492450159273432375325632986544785684755893906142925415081026212470210134283178074226264152364541309716992647656214889086525527144062951409609313998176850124104450721428415412964019253833034415496362599967257635140645166585096707253307193742303662910371649782770328364249846944314481790361155570827007407770419987048994017915005925252488433923680801609558584713698057261059337654977437711618410539987607591890302539121167389541123675588227511236025022361855804068248119458742460279677877379058277359997842664136918051546129951235231427469867758701336428912898917007609317339486347435175344202584838801086894288129321920379112880417280702340117231097866433148425829344348648508614728355078282017126051812796995078965650761861111458874551662622782967086307574129666785776074607650049970527817172050063380039418678010817529448231187915998645685389835451388954154858455779872987546066702432315111981476161603685359247172704990769628823916275814629943153954148623226585635201671449754006832657648166545637104934669695305458164470774366109688920564073417150113244616548280192215203801404865572830166768444325606835018375388386052577688341534961797990612121062111234900082231847191297156652694887767967128018305943656039798282017031572446785851439457118679411529493980697083966912652005945852946362883453104031964503965060011477778866509654570798350280544705513884242174327767995276145580853941847070656351469960640538613637451185765893184452667983054194191489889841803424942240266946486157156036231353764138700630883358862874818489428328793970714109654964455593942684807336211246263931927008829794854876979998065416142161398047986673694140539898084092342299920914698673781595755676214454463058617841769690252628399372219603839293186584149287447249397751172861853389045910129856396798164001637435660848675864626538319463265368047918142873861419271348008461697063416384803860715137083728578582452244578951108316944685368140490251540402101113964783245660846607445609045903785514824638501152169945230455564475203314242638400488442197391825420416764731203369395288063882488599443690807577713256572544252045987268963744671200205049609292410448310137521661607405572089375646212489019953063628063362923051616848677702279439532003789911621980612699456211810351651716701125727658991618852608492301145023163085169857921722614392853810058934425084197095412386455559626805214590898410650914567143285286864030260801302233889145301214778873006456969900698885623914494478745045855830586236319677820308430620987957973055491738255788487666919501477606806226050093005384586017324843406982257784187357574380238715140093314888204734827394276005657986413759748185232926642405357835909278138717713262286554152089890541938504852016676549862969664085497204930041633249220374352864130161367076071451695024128726336425559755064267029987457435921836441100552063206683430517704009954221382384096387079690118942260215175094017469409376332876618651215381616016085199545618305181551560276723465344942540721409328478508059057967683531157880109145613373280274053084290799730944342175379204181811448277272048152254485969694786491385975792117051035547395205010603289020066912137755149003442495252330553217559012503568315038892736605640186752917130157644080181704307700806819031787670399065098770881813844673802063035874178497925774794941173261324268455605771141909044283427530437557147216595907654892243840559953013577723082920471270128885012444305342445374377713878013857658464752193150404650545529157202590647039805897373502938579992568234907413143940882253014915118625412586975981787248550704742972181274630384449045320652902596518180821926211755320133808031400974483856456020756579384720808764879375980588514531551062691584272402550143171804296863108220234422643066226842459474405963747845579510864735065932862055272756074786069046418353004056029506579984504091287184726776762225653584999580463578662320105464470046252415594854753044253103345435795078878424593723168068371930602799520504462618145315086987176839225247647300658892121790805028300088114730740161142610389842550663103078398398646676745377777225226268144789179299166908173848652270035416672938556593422865313661271276722876816006858068617366177650579588149117100331854028089871839729088767690820405164449055498506319613223060664350929169510801994521390267090495958218422995096700034769237814237890751011373507569362434611109669113475772286112699554240986179868800186026793527024991625688495847835036411798359183464660303219659751819988647629525049439414940421814317309624115966451747978224836087316301636151345155212171819679089047226217786490286734571747483498084336266673518971347572588950308034959424827149986784047037087182761493740686250320141822131249661996591899590096076955307735207338812755437714742754451241380957614716027355172384164705835556092420723373782384693281714825400013369301125952347639182995771982565257430698236420135738033447841487349857218177399325478902470847162204980383592924915044322910152070521961095757184339113922708867142632333791728491231338373968629780835243426711586130264971796972382483207622333943988981029950467500299523378860422077763861953824189091547412536042376480241144616271847464113882108434058489606169418698250475477155162385068579752965283552960105762261605995628302818476624331873716190999886528228522992914826080475748331325273779949385786544616924112552002490720504722666442285691886595323914010530842910893972851913806630825865918576464888026072402093488739842790783240028942466200326091402639690916386803660802391905597600134385389972282716130106354452555947202175599692664474439119841171117744477111338353121069906003206395004427852666517455784561117458456774318045588773198738907519538948531448288239938551469937767712912917597106634667655076123216549654879406860333856859847191019485521720613946486901874727819757260509345853606721704742073744528599179278909375632339572289145413942135450001597115524799655207767762417465342888526791714862134901499524394511320975852883313831422520691211831468618065792524821877531947304181263329753366177565508683165630053428078813774935848471152227842621689021923589325008104636755225032847768418702321205785921545015531423794434852261038047806479223037312400394058219671547004453662096575652206244785056582801489113281916874470248473237822241024620266310366316941908561572051922616983573953858330792089324816457529705383515841022345645152159934495552944856873803265518771204765854279150834584197103175787309629937685229411566558340875097622890664390151407020598945422381607455727775862192138026058838276959365703574109959140263704806776290865955240140469856702012205540234474089882299492320215932456782132824688009972653405811220818278701753070724777063320201878818874657136799336785737246898702501382014178854547299104726320487788127044127044830570881419741958631817713495397383925538173448345177446202400990894196738010351742114089593241530774918265403810824431384805894494036676318604874301853369136059864334443407226782504918461478201098721755132421753562654842396903405080374576170158107988070499829018383109891236857986266407694794963479973188930841465851419995127194167606321161207218257720629300364659198412335043648465128565911607424457745973803954746205490605594156388134676640818191887350740438184512451474110165949111296016804411620732022346082668696187100841823668898800391839087181759888523544129249001631372684601326729729711922998073402457676021926014438219347642229079785714814797303371176205594247906870183718640780770892373545514494305452280068501025704258321894855298928338657547491890332257748329734386571818002716339967043773178197761300382262865836210620397570535613051204587734285470603867301248118705874273897976015804145284898308952362792616059316265139072866629070141192026704718222047763533406055438645862703753797587475741498038437842786154759899936585034987239381356113502584003052983518728636468150029758821029798871649481329839585997135831384629176752141082823488433477301183882172346195167618177774033303907345533956803043112878556853372821133302740485312943816921209047817206101929863284667493183106869053875477946655118296569703746165287774963930080391269833096403014974245992760348689311290787676194861477388241848169786149657905570224007412812858529409711178388338646143114795236617200513094061296753165322208014478859174521726697622848769115798509843900197766794865983293069109494182631572748900493362516753153457385613410890713360775184869278091311220943867732593304745009098699704146060786699145960916782808511559487847067417426789867979848684152153763547285335484429408240423990860443924087017195589553774604800142096525540171875930929608449821860927685293523619632224442594638447134564154061318448745238622775529378946795472022166570990130738433447392473367578463629943479210087177730042192728338743087638538786195917608816594886064900762574776581055132479828730742791919402203147219627551691889819367959576777366844593296658526645412382017263020852370224373901911979257315689485398619510100196733425751305551692252707311484159608076415259572923269192892150505734244433576723539766028170787232611312488857199524292381893656668388853228537984876240876235270267100122152159508433889876815269849249911473542579847566833677306866196749271278527967599494843575937521169148814777047266328764851832151247854653020688618073106178947132237340355571741519179424058131447840947719357173050735261194871119126658073716501138678289178598212836745374491782967985146753683103176605368415804193146815908548542817766941825233714259182097515553084564197913048993714969763019819552355597386999676102486209555692641112578879619792459005385370261598090346092640464298754444126157390122758798651996823789291577878190976359462819393799493238916493966160321172530379576103636141153170824599659895628669805931654228458874781009403808585560789073978264810017543244764850559860404152036675519587629367640933266271332309707625890196315998241027823045026485392357798258471553076050414267236862253880031272952395602884820086353184998912273157350034857962117520104254727410332518587243523818163064807550315879822238693069954091707876484296211574274252230669685768355441673447889422675950498020469862726591036286882803705612715149204894281441397269860020340101751127795888940254123811642966104834887586778659307235608922220140039757708779173590430853249792223819080830164972350689039462173041438428322633507300324338386692516049390151649637315056347212763279583878661054238763678051772338725007276066937100750574841598118512208792583970788548412016829030518133734135465169327960628765478997776479557047148958427320363369726345736345651016770461195296416564993598992290080466396539016894087030298150455308970805870222303441477793858224253111235543192558883164540509514965874807402544317370721216224787857237341734739898100439573853014592777117598370711569347733577292568108914479910666754440203909552747982765106430653747009425039075614007502332674860899429164677862332422106268787051966951068884149310565075805749520535942772201818790336194972008457886131957039663531578224356285749765851058982610662314995697417316036527477216824713373610943693662909478000588631741966651436396858530474595159417016433595528188791645732513628425478362052431797259796286804193208616344697080002247032550183394420605394661585793588715695830178263980174940962808048893795269611172568030334720405980977058173598561207731651266332433689759051557014069304679634193608827853715454000900422693146438076263008864561791433014779602679271272654872553029713061309332158033419236782834655230436153845723542750622385351222123975859342822790972128216021737543782597287013411902185779490003718712458280389990015968855888134367661077581136244665876041661383248581363867615709928417321265753999678109517177200834955075325319913526176930729709647754544840331840571537000597384640376153193583402080141495675823204197871872090809091289494934211989250271542325415699225184607705496445699863948833717275825921746881994435854537705914215876172676496768173642646999595592526234400553616006616550329258227726252947877474210519814781151820381357472708800691216449520327137416031318065835500785388787094923968096218696785627158069259725799874902582018858355199720551718011448865222844851309485723851449947271631429852021583408465353451974213756042915309933609053750439681670367316768383467249239013870220497464417522822882939042423379909438567655314282697257657476104128757085719243494302475672801070331798902938557941930997762669779429542420192308766756164030921026373906261823171799165938887022316225574681391481228125528066587149340009117009834014089601558708450387307696270289862803748080116864107258408694597861133492246187414051087677331611755544811931724160552819442966874718729516962231126040883943928364069324360544625170482305881378172141546589220288225252347117933074827397173920261498629588529997955802364950195221815946683520437704672160270426616404507368866159284363985030228655625901323001078458892727819577986075247553713093753663242506026717182105900018482002811574479567360195490417718847578345514649567411013169206599476503582173363063903235222456016008788364864619665384659816904154803596303313161797074791666004613496434803355874863981741806051316604751565845420429530201922104370360964936167653736412092001497773470424404395253724097479437496965151698570530861729996250019893101171812973834351920044793488528194546613803131293860895712470551804252518567934484170433812849709115376074376519314792922284984378070684018493595700281868454740551274327533215449241495149025685553616302951379779428586314970068710087828095422991611639239499401145695388236641548038240563200105084105491136258020465572870602590682936446124352979781614629862061577928522200256097708339724756268769149704253234206946123276910503148327385429661694517139731119181899850425965338417901495405853051532428020146741236014769089338054885766479312945377484113629407963255540760371255136337083641267237600860159873481101280338716907960459395564959719104796598442951157220689416875009408848840261072692253454493114225973501234633676131534873515793075864126942878208290723251997980744610872225266348956029322624527512869989407678027807255755918632152675855769421610952068520381636830689411606478800369162525555155852531934536028515039707141581549529963265226391353160459378619071724259993436773229447385562540671938108844384563107597228087171321015386957083805094612748435869729999454849408572562114964884246973064025574672530795296259404642565310812037966801862779110333696963009252242004972751545729458910080230483707267918754606376886865385668838988567568563068476795692089251978826759831550734786781549199470790569903207375016606447001039670762611623088884172237427346233374594556008322804478110131914868346545431187226113126378249358810158967972166536707970046107962269177536747410226188612158206374183511441792566370399149447676011797896983521471062837200387685690473125015136552435290425671428554086833943934800866517996490648978654463749423795400279272122674191979206169252485585078898037303423999618461757604786326614253057897431382270509785735860886334548065375174550250902525785301123263270825170767109291644993502023472252933044043280514389131271303942250765202858099895398034900469044833171391149103331404273685662238765470813754185855790979079474861952299486172808791591104915515608536599984796392799677640745582111244487668865556763615033384872027716091622576607049795732912069899451938413697994605606861382672290135578394340548115142458452962330888235821113185162478506839632879844865395939284253124901407285491945546244794438265082440484160250094245906044422694737337083035002432903779942945387229380989619239501261412021787896318842439691329866222212618202887303134648955915485006742565077466042932873940816119181317266715122164232204756217509767680720856527513830707787979593153382783700470850865034423742267325606934829207082097290375317655218667808940638578795068475191318894357214893841619588683049729927097614231917572141160119255587695647759621849359782080537856974141420173656705418527889100895575192037307075253469772220720341660249632327624394533906102444607669344363297140570977708816771681607167372048395226783953510718439376242758655072948622568482814461535182393880895261315001060292191713375552275527009980381051887108034048522443581625254277261728287080257010302307186291140271686926233693466117027046802920055489589983884241959566050619561764309464396010610442749572952180887771823652196443123654382082245455481877354178775940518080553606443059277632377452352231328523852424035944372209566306192509427187972486317078788706867666283681053343987610912476402142590906378229428419533096290472546832493168088105871385514442626798236278534827322856599853071943731459269435726687480751647313151040996961002312758943392168651343895850359051087647315621737608173570156839922481025825181225847312097923676489041735264619730988040043675244602196884181831471572140828311824058670223041492438181105425176250183725425784310265088050687270818551957159867900610973456949728488911845308086987001452580176693660503711326698704725354147284607567426514557958190791379023032384490664191546858098312012533946456590350184591595325718779000395866168714555008778342946949105939542153232632463864710110821661175968150660922822051451840162147579591212445805094386833281056602448381788766880520262253156112515853924429148257498573346878706464957608274198143176337182403015982158954864252931960824815442107146039962251632234349996712960948446604402317787849731582387656833555575148034998445959963138788503599969738234178319356446525339270603246774021763650148632398629669535049657987719323043433192657075070507248342819433421673628540742379670042970901928796113646827536287553904424283417723669181839755592873646849063660337026343461552980511181442407248434313737765829066256234527218632131484357332720121297040074084910577945102090488638955295097803547441725219377896280165900956193503300429804194159868071104262705877382163623361482862381822093053223649417019147061500732718312226151793555940346506149094676137967634656674156231050887642307299215451138176125557122188880140561909702471119584693198662146568964166450942555736694789332363392691400367598061155475821860724751097420686228672271173254854540818353538100136090004404459449904506003969018119850043062280740333921186155431613151932793686274469459223504671293556310521311021877859276047287889471942439668284901938745173994965551444485555183670860278817803259759028023167830019841418935941269466796158438619251808052805293210304047284359662407563470731866846354330932107613600951892036719929597285068920255388382581404260230940651323374238030063441540112485264798521190053090247051511268305256126665735075420523231551062706924452681113602672098859046638702738073548764146750483421059012946168784301750984510998311392902486202816098579273939450785388813984200494428316601692481806263606360788798558735651937699255404351880943398302330786432453356045095208752053395750847720006805185994137732900833125358436831709175383534805513290381600658412070828766369798469323698220640483278568504199666523558770810013684718429908161802293177598918004177903980270634058752679007245842677664140140649560336639435953785230662861154324061785815627383350053845741541344786792947519001373976281664614261182844631253516946418287700790123351368193831360475720819404852054785259326712156296960975695975224562075763692423023749886240132411169856323584266655314977854277195544286011632442142573550935821413223634603063501957453781236958396857714439455894987495755450755091591579821244314567431002063956477147044505255146204510607007658887781608786569043412331218023038830101258412462287198129343458123442378091935384189295497074778183255409050448218487644195910425851280228931652904808845577786187409835485471717127054238442226125021428533968994042704318023777969734324036592620926333245840787725094505457505616091867027890442784449617518963610035628335011060748800841404810960870837782414230029357159790750473055366991795210627091860918418091970963580976002825288242898974011156148047863321605993761729562118911496844567559489405129332033528015586023264809284264042169727598524246917938951291358294277285919677811303609629943799973088955553256745072671698320347362202147246521017488839412921941061285839247256539708094134614972547135439136832142105140697402518963773378906656542946472467313931122469338311005087031560971908433763760214006431855895073800757668451837671180354976070536626883583759700735025235999522947890105932365015554602610003749319000266940334437477735261100453849655687782171798007776676904371865339441850767436220468103547385434171367057316135071285978373978818713420899913997015337156265024948890368918548946283505714149337644851848337674168127218445520216588316459456652392002595987095095560012823301971274144932645459542789679599059352462056866181865164044145647691440242039778932961959321800644641284585731390419617129042920042966121023748858134106909905450754928187854134555610994837386482134228552190590200506359708788027288001546438784069920903197834060747386712997635851498079372539560457426516430416102105757726703419521340752523022891792908079690940725606130571179383038493811431828740278051908208400122092715469619670816738623697694211415208803217905015689167750410491529112069730561522708470604011546295076729160407866371704205081169454472814821755927699740853764424306491074678657464461721526326636671030543590751468957370915416606489468823687977829488719883166108452972944438865514501852288015751338824487914690021499519643276668457145287086485031906823544376484959672085165493929815469892382425939783343770959468925127449584468132358360878187736473985384470385986196896059884854408791787819011727867740663509121433567153915255423033918291896233483685632513043022680248734748505626695573897444972662304316652892230590728310154985187144087183664795360969661129872366118121679668399132560303615149617426440908076226414188105514078481401219289126009839243374100058641722556759158484349210287925341952980794191118133144026965881051009307941674318519535338063359530882861198034882746189157294752572768876106127909581297086827012633160660763504592773928143566380153352271359485187480684478309790356696671362361447499984047236807595600325685284061831619051190513380229906048526224302605681626595489218859280018907497166443831619680927214036694818981719138699144102473192007600934775393717161827304986744748172270473110496701369806956300346581631181984262192401825207693713768979361234279780813688382696579217189271173122275867327597281953870938394021612619996379421769110578409804507668799584463947402054564889183111840573455639761974195097099706312975273091689981208736717022235518732453963338893736418911593278181572278314904815511818221916468279721581633245657568522689506683008243882595983895294478410879141253041666989617793554256199036284536818725960030631959757544427920207635867402609425764090910248140763650999926655519405156960696844390450355039646632423986108283176864581132600314741367450248530577420647250022951591483882745089956230742591113427943345550155622723654932952626835926243022496624427833542778169617365564657849992937645518276816976108515579249077364325913544140961377825028735877187511935725402852342620236104011655807432850214060418097682890770817571490260362226040689667536858731185750865116631080700912996776948898420943487387149465391585949562534554564818155494632538778663889842021265985324949990177971270377180431392498115934621078709475692337237112234217030859772806152167159682646651843439528133679797035953313620231474905298324383314931276592460768512158619867623925542585776956527653033921933548989804282208513403748075980625303484559026635512068729279864229217533450296405074082503799943177089135357185506713254035253493198272456069461547043338052291304875952959424363986154831993527011546069725996547963872469989073883954068247738774736045165867873607288358185186624191871399007152849116464879550689415689971607777048720245065341476597435352314320490757129307289788117143962153708534467968716929843543240006463501963260771706458256037766398514653983028480497459288725144430629076304603869276609077821475227412973486073695493887077923113396529574507112399585528637006405612685608030558032984461921293496112557780379271999692695143273675730204919913129479038075159800909261176421539183081298422142517481950433500073456314136976492727265988352254439459334813601733506219009367210365405415308256343854178537634137884960908912216615133660056054271211608058897180099760665667755780782689585054054060929890095000604528791367008226488449732317544782037107743870367923899753393665219771793301402055283133725989132695811463291437465471452708590916332600566094365556780605060665345106803325913809146128361603906038430114296825294991969945420202684996933745181854489131651842162057317323174936651227998102697465104792730154310237184024388550787149804821461181999360185202722747613984935289967199847321199776053718191135585329726925015525048780528257789142149206337093056681860934421752126691704360732764708699466977197657464567381103201715636201595230308302815540688209021446621424223646866659046311251207131835131932956695676637292349842664521379190148464670912397490196301420222964897180153391009605499648574070754557158732123888905136124116263276348949479066760649759197108508151576269961818850383421057124209283085183632256635475918443985801267076863486809766963577784988400786064176934697355725772310834195824391137508852656823755251144482981839801226114156053464197502222092279074094999737939137843337315735764887154521952523927591537010977119955027942859628004785110238453577877059029876889190217839789596446924916150785173204988912513160419381019049269390241483846235493155131926477804496397222708181563345909053222909442119601748767787680265981133192782355624931496272836878906963936273225962252091974399177310264776773682496611515216451904111374377657054295756518437331152562545564633893904417043386033050008467690957515001480124832948280929087546232178634814649709255122860775670383854033017389086399898485158162424783965847778670703434921664244855905642455163489506195129655496548300893365694241694856078010002718094158091895663116689855812786758682555073003727926370265670682083551397980740559665762604862267925350193479527445198660131970765258983096321902171832608912769971252681373146784121810316297799913112182068590156683950145035921337951889888881239816012697211861613967303454267491164297971244905926334534270724160398870557881522204255504357502635473260950645486819148174808752746823055035659222853778838227932136279639114693639326937761478277640075426465011442284981004116127562312182038352860952269129506766119829184153559765424610489156590006696617932559152853763327385057745129591980319268476632672722043212079296202881490457265565130863472967692757371287673222959864690512511548665879183976497989292610387622237118136371516634337829163565151239856285534700935822585342024159407306882200145902791748169390715194443539034938010802012654709914036902252244710584362681171422296188674994270215903188817553815265748865460042179119954283485067807251103568937328552442587759296832267741717636949845406513523661672085206473614931547499040551748234388935553408280690036454927272668140256231659283438740669635209594081376051247590383983463296356642752494767825430790641230794268774925938039823946358538775607396579528535004340651918856842469985549118810296450333986219988651674821501632712134080371103941465545217474267798606529298940738750861729164519910780034489933596972128641335617401099532947364231922545864306852963099284386125729501482907022987358636047940375031457954735382183110690803066110248025894434782223711665853262009665226073750858637754287021384741285275493769040497045823139831306477637245145936218140552846450640120062099189678868241306017435999005656781549448447036278711697975297477775259637281350942383651096445877011106093515753054570459576259090392771289587090485859971590605481975347241550940320010600381887893422468865836352834415465085061955660246006314230706773024657082890247419799071365235624669127067134271219745838723360714142355016847387596847743122552805533052051283721628037428389877703615441786708103262141350013222138244180372207203529957672383383633403074179667080338566877799502080342646321776815966254810497018631489544288270271582175619966042144379065449146259129066309454966610492363290615808150698680019139388731516429823741817732034861836782382416500398958986833288849124632361290238008351211887557586418888504802632031322448272659790055593945708304336349042850827025463640766571622577763402408198033401986041912781904807143073173598182042896243505183019534219819559476023866569200880096094360620873074504040086406896423435338445785780899636356030674703350131747966983363878348797515770254898698964547200222197641950345539660907505027969937960674207391692997440357707669556812475696000531480745233682920395955450928104382783938814079122274487029805553571772809979533925995824378018678921911726208155226718445478861689076611066925676355627222573565128423135116225455998761040596532588816037901383271550919588709644901959048142830784101352691965604955893495775346838393276424995827703245753038060562939721656301568198139293995391929223248646383144505159262069562060542542489900021318802763225425225426019792901260918590165146620029866365161963419362362147609788324067407579356865229815416786210943681352264128023616114181871144655714640253696667390622733545448066323634349936472642870576784248977097274417687934176165528773527117918528714770832120146211921731802193844432116802455782511889018988143996228234114246095174968044394580102605013592017448792277218831321410327136123234840320480356060018075072042079303121980598203879825190921930730839577632568484517641559308714102373356215783836415207314577912009532034647574833532099008684991090590856907319879747999740077501180675042117561890544160067599714223874743292626974169784317848501172318769943424375827605492112639537051261851633702333386079573704811979836522313763453090686517580120027674414150029893374181816637201553568963061903059834165174698650663783876627934467759461641299661858971022708244657770452859351604697738780708718346125942188338547460420846393144012268670670385566123451901039527114102207299216070015405783685866025490892816430775526440068234566257382178375639837783255835821637189805825155789751118470897353325378195773618926584422743377326149903507454443155073280976924093022271743033042013936376337706473723576569025940229280197293180244562751705403462140681523424504457286484087738484024477473840721543245132356555328611938440340433372755448125562408065709508400596872451212846252250363681431988845956446007835690744170344114510860217742839974495615499274328350253114593214637255858345181869858480708373085490363929808956513174283307034173632286422581212360827136619414465949750717831455527901473205438252401558729501603729641561849824600066381875922913773259624375556727662560532948933570633215509142184646999046801554634893082006532182614278066240597557936440716184133618135577342925760371831378899586410709345442977773789744923015495561640787632177801035720968269293640975761015080291827652413869066389545512579239136890588969821388024497948975820226060126764182985752059955520105089260209015498658417925005276920838614422836306960459895181912488732521456988605562579810191321332199262231593557352252728238502748871982718177448334893962517863482771509187986515952263610657316822863178687703230553034517587291702628419673111740091365174593439838597371663153182013593257120066148490169572854855943763057036633828583320166502543073119967697553792469203853289659986530895856449861036128746717663386869351761815729045442587864204657530001291353680249769697555671491621604537903808343732403236108676699733284560201931158715454843948240724431747909216340664415367250224504436470981594544714597623919962533917498175838351686576761590301535903884400997606704999104009053061458595338571003118735409164575820266062012893831497205657951021062575939527778156263845351179267226850509092530403077606756671061104098626260127599434374138938817199287248536944617353455601192770419731194690427911603099932699816798210561469103071026034077294010425773503856709238887613690800986553068017514104594718398644511019372104712711559503327938689874133353918276574127714346902840418631755895913134652278757028862316018158013758741822267962849654951511899676051460750656182180679770172291547993958852435011228803855218716750977509771843157893744868358332159126652458744254463399603885131210925100234134702947534882564134907199319407372196911625336208296612008600510847938721475510729346016505400221498729832631313987040825967642893801421016350497398720257602941291138321108964874152676186152060213441134320622809613862717568660371401409107544443658561028994444313577108337216226090811403322900865291271654585143695315356780228233118277823371449173855138355259223603009225556532973340302033301855042057389452707054989754753282660611973681264969925717699442527874921292164273003186771630309659063250814986674850090416881362968295107436539698056045730181381053855921837945128962540448273966136764276978978179448993839062885513535827204708423197851419924209962483690126209147285852522080729344001578641253481274084436894595474279368148037634059915750512138777939832688628009064477969888383632836030270944319530483600676288582990256536872829472636939813046515115345097798315225965480269795895961625902446757456234039228457623961681142096483267255361861204886268614701007906546182547690880345722457727890632967823791560766779920865284441032922514204438505597692821095735338119870031877675649502267833680945692318913693619391215103817105236018439862900628599052519153746822979783791179176976703004226890204045428327630799340874000409354627584811892093055857865561923121031466036065239566818658346998571559301918354564946908542532373095994623953706662854657850186157307617496049990208192736343282529256407400042629992043648682795489382660568581192067659778565473499848203747800095631756537989850584666298821624146552822427114005709275782355585238447607319768879695281860867911028918622549338819346338552311027546350680920191589942297972694541804454318437898206872597817311269583471217292395224849417905481591377799814887701439838999049281036279659689474831764916033040291022815556348000205458448543012699264427772054237803282838424717263679248816139856385480904705290792731877582317562588971809646015828820622873527024547478360243451308062075713994028389613749907887839485414380750972351077804455650566030296210754765251586453514096113598517828386519666071642685161265926989866000937534626622539593786893883610369483725621850538270239736020127009228107730618098400447271964300700289199372039569707992901360027143116034767523902128871958136166223729355412610583679146134781997646018900445188506967373264457194225000168968212738849236590736239766688398988668071682715985066361497131993337309022951230045724022543645390175418166959811676886605710797407473956623800676382442014019687647086134066095039688494815702223969455131714015764688507818346599092565258757330600196211350103949653310990988441604071884465971910987796657393413463229351700298146653418880412266119657902249464061001698221749535585469609959012257457137751460959369681748723949786058625223964021348544543031461847327580367527535894131372601413181645950194353126565381693137761014079804169560539227938805955897545136585187345116259211609706159462574085316785355378770854954054240079639175829504187208288516543146015579658492702631128685396175062232698027146598879697748529641167056477768796115598049691854865314322865605264466106307326179024875488359763395314358798064999214007719350382792180417180015595721790452829662426992888936045223236984335571581680890738532179129687741124887259958414466125260963873893838183373935949173187397121921935487115858622075037458313442102079046568714065189302378159561720424926808576071740220698096385150680664525480720214698654991161927375828237788225096327766164678205754749455748385716158875913899496069709174401739423430744644513195380426551108580212972835141082924407457643432109286175457639037247427275423379132100229171683151603038159041907179117228651106550293780436129187260101226296036374889656616690975459343665802617441534750763010942128009108235206673004392271640061544697431816748080930997558039277144859173812697252563374653895690896094714263503420858795247223165435895149418823171913529284179516954360095756846976325635301468983940617685530120725992087186154494121228195830935223615206776505768930516902850759715344633637915970948628253034924309299483958929884667815676460918795024997471314535399885864180054953218245073076936543207238561519001365920055535049875598349479965639003977532642049024652950697771465055769537026021184604846922602359496408127433994751407591714293623953680293220444671213867346186738417829792874755949213595357742644626220768357661857375420794501393361586095314111671044423218130285531067304068304087810356731449948219299817534465188519964105770637695385666693063250216197951340759630901080965468453824690508543320080851084363946071056740424575346204656011256116576729950307047774240940053754765164822789289446673999961757756582660444288523656141492796686429668513170987139705955205806140182086665019927226056439699439509543391605383701809886886804792781587466811568280324018837306331442203230649115929742073950498731254049811647485806111420167631950967000606575611513264965064291137192873183688158528862526947017342806999732970007836081947402668815702243691971968344280719021653998161755253240133315663109331120464907408577943848662189123901362070075293103162544757536203528061108095341422185780380280788776712750191655402964383410364520297606233849069989045371415357566123916058403594624892602915782242693419919101698753938174069896724641153737343594702398761770558687342793015499418351004472829298198330578217332857424311104699683737693509523425903209793787016295040505007861932830621870257482553139410640628197811661267738437279841746099170275981656319271799888256294535910978658416600143571910679351014322522141275386657406030091631198512919295608249794793974698592259183952618573836618996636164454462391986145122430354738937554680096512705090522213616398366246999522727958697608725388348569857313956782469514543899790506507899534985380838928672861098028155600230104374245254791371496254126274692138730078977651777171516675778529983188932352251715862937833843154135448617065450247988134612310298450358156714295714396731510523412072471694281321157629509167954096619756099673225292408554503006397517888834298103880425871355182244332809116288018512467749996059936443556363219806817092945733707432049151957363812046664367007556069958314955863613792379844252234197955273765641543646563030552587054283239382006290999401380793405771219510993793085177178757954541571201648042290101487167838353846843965846304147928727991194736153775545339703025032583210957379249568444576046320697099061222691260743634804476780415051545987620576974103406827209359006388751453895429153171570424870167560451624026634563576985133323073280589406607364266979203539089749161143928383663634284684830966160637411783224558208992758586724593794596398673859263523962081651789702442092785580418912639301342523722118728843287785166488525708631971150252347072688171011555884648268826624336560130083790606954763182551680529357521952288565923359148807972254147365966687195385972224783320923326054656529085324066955993759009140476551534973117059688865117527290560383170662745890573038468327692394184546332383169981639216566404270537177949226883780222468680051043095756977246624212205121829699584612662689794169042077689660600954193707593884188126906149351952964870925723120291947360773356656219391771642840044182908007646511190497039670637049574434594410734022113772423166893469467594609593676377698537426138811655454413149347515942054308966392070359270434534495738718162978213603993903711502308378511744823028525616324783136890364551340295084532179306366062244311126543654284578429511668553017708462909437737301299978133749121082971985712590781428899477620464412587971798976815945066019064878933768581220111860337745575547677405316310317608398967343155292630905975300825041779528823273100727714115031335510736742517843104817007445366048284184999450836011999219128829803331315697997527534745747848451359686202411628465964904803090181778907148630422694654022876813582597371675532727965340247558765827777533740091260985812353542169708299403120344471536921498077933195877661084232465804716227196728952390356996929476890054125422435471371252443949723309400160156559779754067812981442555807708305775088292368696305529582137137968970393707013080798711583694623348201007148248250560168410349102768463201808880885293789618886141540561599830575357653710553513689623860104184721024155455201699820444269737730734692634794903384627419360867686958388993646276128809472913748979459254725754047479955222034214290441514424271945680583052808142060554533657262320665565925914812451964469506215706917144166301430719479664752060966709497385839661600937316078495395735619996169073797627777983180374779536082041282652984386908560620908008077559816005443745581836798707032887718720306002174956635254076437488075173001241980461574802423611545230217776051191429479563057409947934112421786413054067420277107082680570433798123934356553216960431296522727813611621342864974681233620657182504673688777331170698808053486288080607115383420139040440014234905360753046715646335428234547438751432560835389119083012541073594291538067373763462570834893104535297919710030895207803225317001257296704422947951299849123706078939518620012642205412314716724933789965614362129820295295781223410773809433575731301439685578262351062415625430330721668617696515466080724657390573324883127596772293542661514466190518864265712743961554615719733362695218247084928062054696095123917741841577447238903933413281876912727920566163457228111418241868393058875159601559833634348856028322811629561016067656275555422926725772879014841030729790319511238758091352009168212092954635106838362692265479088683821228149547816568130217628900439850174627397826219422286145543416720400534678513352017762441541882238998573026897543030151816707488420033359638543086518398726228377435834257522149487144572206992286245998842156515730654169348932459854824353610076617627530956568664551348340872440624889145861412236054364485194059750172954702932697831288177550719721476460996117697771290595738314624110725679490691591696306552114398044155835955371825962714446992592939581839168319485518888227162469712912270198070406537643060537275717866087250244348418425038918049578907599258771956873092787087121364738791644715287312476232892404923157225212989084758797917696719605197379565308416135146205521215045472127920012594801117353250205242132764715026460122365931331393362490253241142989669970282922345753184783873259118338446535132007486061529740570867772140008170452548276568188148036869212152551951186276910289037073752664905930649321669487380373145547096081238353351787239985984936442372853435282763942203757637554210503456183859110014400462371621824578545373229374009579365688979818152256977029760769155396530384398975639176389571547035616316413989878730899574114198717512178164077538631964817313912788736812432307999420048996578785864120298430306341337803943585086582102964847289479531540797784160241744696238360941952670400582315261998692765145195992956605518451190122310963141875677696679268933977638101351959333863004654259943578133978047150283196262338017020431554063676328237712935138790705072007999067505966771970073695521059394298981195265121755788621002680320012055478732469133387341391910863362641295175643890138721030112233602751982660959913722032717498029589463901205462944003628465776494426967061108012376615421672402105070055885265848276697297420321264268334238670081267883638704236341613849475991367077004183134409683612748927689558404454192476173574294810899147622332018457958079705744356541473329892008891476569427490747126418426933729413301743392634490115488585303256026194877582239424093720010135845597356693014203638980069279189723068231698863773352133582802405539477112032790879769478612654601750500494252749954811114956614424036885408147361152775346802296582108934477611201296060826674957893278990214644112890704143190463784722623543693882712660566919288240030262264200797778661803057756277122234455552094647964334940164208855197095759312350463432676368246137337414879427535927678037878255186590273711932819026041778522765661321068750461914399463961660154322596110332413552395052887524137141530605228040206517864568994337928325965762812613837990114757988490862121389939314624561938934209901990117866824431456700813225128198115909352018653472580157957630541001175208972131740469654672897172707046531555294502939770987903165123449917178351340648097366380442800894292808486958594896038638609260834914468552723592042906485417408643538838457289176654095796635054836439036203950487761027789990829304555777709388190361438595224505128620061604987861667938380348675440011432143562972865139471527263292568881722425997050705742091286220179199007599295707247425486013860058012847559306307969779284527057549383500927986689742516888191651386996457558075129351980653284318642953246593853932877881474843168923061357325745604163545142799656887555244538206312175668377020452437675586897355103700905673159066469844339587969135828343421951110747330209061962152592567559407300886207880473193694323443187324968409909909781689570188825013584817040668456253701630741892963795099598364793484351898676841657815337519496782029329737260797024237674382119368550476851621118125150329526214808013275455539230519030299378723609763777672968366189416839599532085179912798467583872857845689430409883066025572577092865877516618380249176289111070760431496125875193069571012490814070639852889809377584652751933834147583408266197354545750835842425923422686698550620510793045405847988049511044346206761970815608305753895319448590295697211494364104151266032392896288752016274840894861230164780030878601785878730853598629235374165619695700662514285810183650543695856465934029561060586310832809904987311905167971690398869164588087929310652897328155414755964661023641856344524308169303240194403346553262347086692257592064538095340106759951661369137502322067054046516918981881653364694542160819769083031887686694353267667528058326378070945214441828046683511222185493153725907137808729922503214364799058273578451689516329446231857448492023845636257203113308291124720660540862456662086171988389330354814068400117331417313281448586898599509812447324715287147729224837476511198687974704843538516744703937041944694435598173376251307378365855014007366517120613845127877494985745166625077677515628767667295884595700614606804171327469078915313034277084642761869501700584255659826440013149306566394047160885902366628968717764879726716001648683298746622560088675977323181658635500361215008999351072375556602131592286406684862827762477093617063585984642704049927857952739617171652568252261172027795443507214903526417700718737013670043448054661541752170582860230185210560215126115476346682741788300272651922638549512858470135355165629508449273377350731219551604609577838600431104031861392333569367378315735051629202742759194471365448527123102855268537324953398537494722305632217985571018262568715709341830231475435260477360364315286129829321144149067212833425926194667382720425368613554436479510774004598180389665402467184376616551774536691193813113866660955386087993422984600562560481168530870698949482592261255130690405176183315521367809547750376160881616973502415311575481821377724895510482652866600742783969508338343832328280860341806776786466120667257332884827919360881916193728530468216206267015056014302659619908631766069448733927145921830325204884338677467313447633176695361715097485355248220871199450188918336723180106542021288062478590737141018772693754981298212041469546705121721805546846053591331347973194523238441176907778985829690930494733625478421272722544488092726050514213855352612226378262267666218847571101343520633266561814294726450299482461864821397438992700930770411112156711401366511024615556096234726871884007178899036538013228256009349051989262442944309785073874088154767903463326831097296138325168891934862218895788648346717136840539873808618530279209127258867182416482316502159423004519255808602095261783170717033798913173036958314862847859799665705169812006337331134168497854885888025497668881543660361010069380030185776429110653130670740648036097082877930926757507054224555165096121602964218245623373035949896901194139986471893039244520153561693777314841631172913949183735731923416432875265570064263115588320397635657842531167156325431765075132882371152904613769443658163976230499808163042266721472572833884829534971243157583384650227456134050650203332943077321559838590259077828821527866567424917174498828369109288704522280657818091431679652300575812680742648730352304220256008002916188429653636168127880509868089923238398335579784819568686156360651237512702326265498203485767459539009688525347576337269756478349454559422885129332058256333443950513039443133784502293144345764855590798101928788700438587738599206260076196236628421162107148701161248485846193389072510983852621495520279104074825237432448384842416381974120872349385880487204646257045019279772935294213266063756367086781590675860091880463384472146093100978599381161875825584259820044832162076458714571601963244996907904741269594360941054876092680867273987387314287594442447252130395243783137379275631892533304956745584177824955395557689865991728200683000810053798066935600750742466757286141548711970198493258571472526702624669847812390867511525103197822195722020297974795350673309715611854614043468928690613882953958765320933337704119603730089624907873855017000880938459028351560138207015209653185418966892204757395323251165417952628038020412735775053424909348474644769013840385636312086119807514145542771244128652473176631980085455212570300581383928225311010933968632681402936923882822497786177193810677279183729722155670661578376747520667881833725845843264506675012851157127031456878368758016689761780011252767153988333875431078033832483337361320598830612236874621425429482580258119950056253459355760092914375037063222216411885077003318409653291271672204893175037500360098510676283186431503691120284935331331325230327372336623138942162944967951734731298262885196677156609730953365902453666254054099682221432997830288193988035580744146093868221773973041560805232717246205819807700247157069404916521974168782230576739254853657199439649173343601983871380736263316368662004792204541633495225974512330332110175436711475874405789287609538484710606352055179117284135010265561551067281067159146713257591519681308425103405838401467731993964248282989594668039263268773693167762168288564359819434569643440416961833635265450257019609042021248674237263372354754249492173318487832859043368635425581626822050667539875146111297466557909741930594103720718300872531481430762445981159604198767047165208197851566420070086277501647790110311030510016064117405297200530843306259144549183828969910607384049963513282389092899464389059972036294818877626244707055935781772602345080743261524020486916089375615369165451203540990597791149419860130215126418529251268553880118307192421996985512408579596869557093146120649609648551942076880407485686460201257499091120202694645554995340353829661572699529480355972585060806884788948531884333081304314427723970957487380259885900947931416874422064774108805370019841077451842269743946718764910381199555644293859025680824615305958275556950734943488704881466461527221084544924527545482009269842622115955724011444315481663075092133932816803736876174678701940826268529750907425822270039363577288466901688099928546712453780670567894534668765172740788791150422855960422108485039423405586572597520885372363273336344808339190936715662062822791103578714200804398420231177702593503428803794437921343921290449201750195509733605443966740368435263566871926085179746084452679811184819285672557537483788413263954821194223443799698425783905245432913790527141037031305202454465229569681210368387370532034624707030997497167389192524680506092415139802768902524133810622270280664263455458799512658562161999092182655558302137550096808041051579282124854039292959872105609763057458889692349721427751381288246917444430300328994120755514707158239456622427583740791318103744574208652007978098142153773860826364761577654293088470766975056745907923255513673811311083098110279624994932884714715683364386348302437132767346944674435688585645604015499370060421181366493608118926983190420672586738079267392472889272802301733622884382400311675377525458760925967759944376246370792185217724653361507359711273813285561798558596844443307999912849997252018635241125780517452917830999183581996143497887132340027908402104546064172573382368251102277130492321497048126352184814940089052953121687591085918288571557312103997755638345450652311958191588654520738325038706961603369283512713058476791351661071238416068160770070914442265086396646733146249690245590177418850147134574310793870988532364417321308324082546580023155692386010611493503503487105676934475840143890994202123406929978028248779708954615902102761568330515253312885212780114990212254743772930847058234435969091453365547840393826562591670860822086805655050748064165415147821910324463654968360947495579120082639674345230311371889477986587754465491584947691547527805900063048074698349633103094568357812635315066498506695990525341741302347218084384711142741127623436740684776967274899546481854787153684791447907807168763094097390545851704437126469511350593028846007281281776834556953361894806241146497616227023593411730840252385017443938588334591319811473908205998982119463344034933323864526479572719528928755058809871528507645694856073396083877626417731981907256103782485888184862298853721417543425949025476949599873337708774602935053620737311075508928718745119334910670790336032408519946637923445252107866620503963297624220644090127628631301345820590628478964878905952975652803700322825995259578010618522767260610459838910502464262297390213586106983612771000565314680876391632389189456306272167206709592692664831228197729008592773823511571947947934894768266202507216141313046444834410849883751810519552986653210057490808177920163880788485680263711496921196114353940401459680667766784909867264390596372055863998002034343805773768804367011187014256589512534924277916990516603623988726643421685338252431707518794667057048443861450909921998063081914260593219385569497511758793324210442960302012113690645203356178440371511943273797301595602195938023413512313558156751142528658522092847780075992325308655234044310855777941694629265430999553709033198517531456059365455130326159080071145329460509612086522142624800448623627867503161587900366886313570523134253225344388660402551685463219248313635768382260594608948584847117633842359040590395124631665860760199936419805056729145485456362472604113120516567604589500609498923010705910185493571571824021484917034653466966562931858660249645934858220535908430197401955884903221198909225972231478542413171341658324474649194156057616596927008160714786817658779610019874307140033068954849803408324864252778313395225108036410428246525208133263965812226953444996062594536047811298510346561338441488215965140096361438977965609071123782573728217594831379218298847291053951195199911045285531249838645258095340409936501401674049123295325916251928036301259738496733116230437403746779672389204943707339327000928536840114036722790485980276890309493934319217071428147561104749779901728151723268902791695570491555915303171549569871874782341533938298846988545873295678828331337134789446736440165074263051806935836254071483637795258506212927022361404392139990269697080951879384094648593240455703951222674963301708701505306601703357467081168245013589892830360351756680187782025603128584504062053993176471439871109756634450946784766324881328332190266103881936511948415229198589274676856996332070009788589939130109022948832612198429332479576061955996572962645512326531147607125995977069076061663913947077517633764511647086580051226977129838874876389152870893024377897242194189246274984549936007102053146613974184996768208530721768508429139717734950391761460758804494077255042502340832023925580652830872850454687191481645287391084046282694507359333338225551225194677953964936949856582406881464402655873181182737466964551380604058195067325135934596934006342491159295267453448477388968255141155068498481182705906923096353880654832738089492110327266466649799219355848450930724910522670657181914426820113633170593444787609440071958473870181351014917330753133315244762500342626328999273605825214628365885142690315106534270408060100015068321179012241639504046132909924624713730127673172042211875037244320412428399248043194438387273948817902117638249020549218880195236790436811763679554881541276694454519561388890022142162984445586172052679531032415895162051454901238512482215281467176178769291469768970101166137199289789396944557779414220451266847224157785157007369303456382711905650298374298704896882724034561539181731270711770343618736483799694016396699716551127666908454892856091666713093039573286756387991631853742121978658123759991957852866652039346199778533644016474951718245050684770449627573790379152938817118447638871758345495830659127790232171121813248355082739266124618490431727690724587780293677629893086982179023264016615099149529746165266815079039216115406707553431883579176360703920500168433337095550106873423068602739131988297495818508071614551922123365120343950911920202488120902106562392300710160065865023928567266659721887342047573120052813205472174129212967942311443868557008727676984147895855943247006492229469754371404556946469827373110379368842614384740699954186617106463133339641042932121156389402430767879507734544086471550369049387161241609912029949121971626214468630324120949673689603430454402829104362499716377150152325628974899730872388317552663611269232342413178080360105756735729287596618137891955523859458923239780173051669363815655695603495748036643743158551679561497246046137600895385054536842772815319921770194244231866821425633098645592016340722183996645614844192134290306230054739961207410195328033318629406216959058511512220687749230026862405924083196073625636593950548799761380219072417235081424291624278902986120704962769132127549520633717193948761156680551315646440227558844187972429814934520175660229481245849002287780927259780515181131873020874911612045893110516228618982052858772602207332915093156999033124751957339119418371754183449606939341666709799159837738028161781803350044168790354763691620655493385579921527317376685972021847192787810894554275694413022163723067477603459256600759263014683503584260044755429232769629884219900445777949822840466899954287306500533745755036055231412810545617019019647212140247458687611550812866966030253219294542413024190419408247974020885573902875398880136653363585242959789096957491683400468472082340761131739979782985192773406942665524548449083487221897538796016170892861586369086993019398851280356102769640873584442162407069709816302732451467306834057896152460600704977328958425908787323586961335516187315698537864381961868387904735335510351712436799703404729879241852638751686729680536767522427075826407992320102703634007156720723929368937594106847057056415730297787814005370241973928514334925640477911233934926467894072476943836182957701574736453861506043485318510494317561223226711045868793322404366614799163234062997119585216817466970491109818045027340372626350900025012977874159764646419095268161381965253040848856892227858057910809530205308327377735821474126855918518059614289655948070247833869848709856962770548355598859815003206122004527732306312982194180118806624284602237171046180273942509196424362525047906169740847288963211485724817198471185429725253138505220724617221654347416592148289729587970003085366331197919891826091918943747122111164083831046411506893975772770175881835416916527755507677892728883815603232683891183830269633505777722720771827605399410919431662017179680422767383021086415691913709944522835989671113683711389726803530905238657719105765805917546836542352081859258190593197471342884692982146640875393998773378112178577159537061376783636747507700988622619928725045021879693195229705279319840896565470939467549652719555119475572586916155205261268680888473744224337492413311019065464989094645701592209958342267624330777986165260516991580451594236234527939491758984893482669469473350561837647487040099837637434044219059798979953792110423731884115346777813740909227814981043939717138665599525555144417101639853866666383400480241417961874614441538739096761510564897005284546044116731545598692890530460576886054697616041552163103474879394792554359084969162643920481776135339536652452387302312707293949900315653590766064215040984781020084151969640059428705261003463444964904384422409630941311359543573241153867030517627170052358932063361794966629480219749975554191199949945517195479590777390757909540973141455098423270638849401982722917030571942827605352982566550476441458788576926394760022956170211831512977091224875086021885205510061996910701049435998497892721592976841153504181970353405817616899393278090611406324389399785596508269316295302015337293195858354723472220770078985429156687419978883551735909033894442969131311649220375133332909143298869522166027828355994841144049575251131418110747667323793396579759309774439340093393184638530333232439921969558457348611270358910673105797281844380962483872209701557295753224164102096733037625688975261737128290753105897659026694637894341018862143950550979861148251399857909411695340669405172648048441495129449667979933790143087330234123194946504572373694270811839617081350356867817207942601539000853383213113919940279189699838605060903234773527531905564651260960324374261655828492568294702531611857584690970824994530621148139423515243843020843037975918485201269415617735754879765134884859752165457305599808762486347806863996577632262568020824537843545009074265462600359094005608245328326491133576902245080127007032857633544847931781042308408920103585933733356902750389936299226936789356187806484411881580661828149188307839629398552003774610131802961213455521320087859498449477337810925448277242193170125771309104397466681664237950640518229713915133560602106718068838921650177407704619538822529211016009557717929616067725260638340361217802744791342265872287572454667678334575106468876735530224326913501447740423635650200630555115213403977462084013709155932593020449584684870147442255688544413510097984547710223500044922188417620248936696683278432226673392456970000472005690554068467243091263588937698752757494055603303570725366554633697821504732473939863916610260895256595517431272439280026271425683797018632535505343222296707419555695602334325422748292984486988161746603117587175551351862010441303422539327137096716986093039509756033717111845280529825124794471419262221935153039417325638644929131502544119989295246154327787272448138049548752737213403216923111288976649473573563468252744572640059575340399682168799995306763747406312251682770048702384291432722101970807802153302270536549486470235963503262174474068186609586220594954007271119909741347103562547853984224814152754923328724129992047601969616259317694072780370043777560334917936983323671888751308882809166789653515901085945259583629920622423328820420829683270147721898164096262504605003746106015527194129386651634161709569551367488067780607771384632129909074105495276796762077262978913570409689181879273349177714697746378431309146527799637955464197199616927149102678051321017688547371073314887903595384432466034125583273863883211440843274488519485081054011866382823308046750009976972989042734390764327971645720038537901082810185273577721819153812049739351289402694067738546578131682221623059817764804756811611699824905868111109362308538455514575681002040909364713740312507122197516492430420993221574180864006017567763120797421843682091046603233284090714877029924688605435983735385769228119829012265505413726704613615610868199071381737003425909727780433886924343622380732397019156317068443837779224247024331095659803680426458761198165598703029021782659717831511664640824572662784459083715035945286841354742490932725562636589657263055557951134449888196074063297594030464527494706826200964227848083570456255613495887286402917223089079538261030731310717853106422148217351261295546746398045109829051548448600185082018220443712342764446941793647922934446694734894441879983286331607546840307125099429478839841465881464641227933546974537987585765402095943373435446771334047681111852160380955277063514092621857570880323954280388274754283850419482178019007496908714791536372435791035901359719370930429594637024985636353743238572547987361609358003261620530138020080534677428987515647859635771405604777107193355101733174648143647312339645963501787030750402556146548615932162931084326060282078204648335070588696876917497289368961197397605908747957841233324794359496550765584399058559920997949555954195104080492580338780619672383939597127837020480357522467196464602653960022413061680260121183752567593315875820361357176356046691990796803426102236073870803814720264699156097066362456113594114914362732448915801088094803792996553539273124979302288869326612120031680142873269071331884772962271982887486965620378378567572798747723150268580476331198506755703169497117382616139088036887340552166208448136400028026793532133817869687661528560163478689360447230381717387222081082449443893522823809931029881103501431743715371973590057845773967358732005793436301921478475517030531736435201340110341182102837250020492560762005168944578409932786476646256548150415194510923867048348567393549454274908328559014061315789383312842707951703880311578396019231214438806609423200542884398145151055521528766333938508375790403523328206662720064621692840185022087460144856717106561263338330943580574396095164817172009007682127052046244442240198353669671336161094993241537610508516764948688472277242996952899903791564234605044085527809957810669844776038725642880844245844480329529109332626413364657288685048190363720396391927544009675194413213537818965421494466935033369761212140154766690758349479183370168559109532765122603438023680110055682122639389492580050730868713947701362588496310010438955703173956922425593675628525742432677667727452987218041695336196389717266936554849353947035536565298628212276928889221147030444100560172929040696727066168852803628119667902439809279211331177107615430095112783797281791369641041555393582217727667959145073513967243482316356280434564437198129267267304893244785370413898423527688352551746918620927145688780537613532054826505951782376352518003028036775519528245896488307118537687377965784510717065062538877125000349410907221880237519186783791156309453430799385569617185528445060173168924265766996833496536448203468115233431698100527051740801558825482125067130286464033470140742290045147191577634514458006004985834478054243119822284481046224293185938919183153239602281811201823156360605557716483512745965450623643060041545339337300782346774586179581530865261791010034029023800854133572487852469167936320348837073560578050044570001412183125851913809014011338419088922085894623653288602293962761616409578112246482479342080040773707004402887049514370590842018355351103528389238105570735954823519385711249860344521690140351297153931069902866097053637799704842626965497587082013849016038554467194566001830886444178239738541941215195475058753704339015715589669324974194287416607650095224122682540062662595716315489940485152600371167147863925221101997491870476513831881538521554402469216585634286629394812058155600429722906464633626446013195400062295617765935340474512932463302597988642018605480759959793757774404215853651283447002081151446161859609182627894312827667261221584999669499188978057929026723872542648243986600033702379160933066708419034223158321984756624716046483128206361045365763745175308994233588900368305105960377728811879425766498515901196725355218019735696601742684825863205982553873204743562095670031108529492317082764518337196176502556898875531498571564454422250192017811740714152475389033282554823559382921201854348352365192162920279562969280202697938614131622304944087951980203544188691809373939642109238410780208570133631461760629110580350341639024501657833585752384693815611735298863926669166853291047569252633153738115460789398689800782042690758595935209494047103696994283292795216488399423310457762511889629906811038122368152508731478621509016551185910002748493012514712865273500771336460101629109861272645879239837131222042839263979229375353708372663958657152428600873532707422245457363816316584410238185320744740411702624234336224725697385452889327034130644349477215241364453172223845105821692741582236763530973676558987223341289748031362112424632599829307186280419116122264375092656472986461791320856579239500165945259407881242795397203788578831042869289532977563963066475026871611557225898783915291427027314694645742424118207651688222986934306191661123530398591850325908014060328293621399332353949905998110400127433571941409803168040902050042334264510356823088406922764994894174710741896237367986411563869684928200694256309495087969564165546810804953547659153650250617748314896358893802552224137356254326354007336822975037150678439877531375580274762644698702589687064513015378331551936059897555124024068010052166437643983833080715220161999179625453427349998333979984074337840548693595198513666019812347336677299519136611012559061914461668415717886571441178013012853428076305342276844800886873114293758912119641051710908127432865272508114233384412983633101577271546358111978764991412789708646990986778976642616091042538907248228510440553116356466310288933602546950204874971324358676369581279937790938220000441173203572601877990335376304874895570501675998386643297984695807328543938026326412395900983049343570746524983717747385754347395195680825680329914987315598006642668723276018017530902811820270410311131932094637791690190542085563393762603871364641245090386661866811612696395680642814807464260496264549973096933677297205926227165968456096464081336684184607409699427302369908397484469232643143749147082503915815281265755833082941905264080056955374432361468205651686166548540028999116794905187427939718104254094203302145672667367152164357293792564918317652664898080822444014193631097424127823799667019394211582732998421196596628694646715474064331410338171975031779772160166071197605269270360337860566368066091540745666868926896552658997664560647623880496295468258719051970854460161130087029863638347352034027398896998594869061582291075366070107235938531447890325875036918681215332628011760046734263861303991915100845279346236620005412671755320237727634794897484972610110736981802057051047777696512778311313682894534346849933646354774010080361811700576838215719825690674501121558594386838271679635150615198690951393950415141772042950448427133897341638506531270585241057788403966146568156930256837318982384087818953257031968646299841966814578211180266734996789695021977922128905710486403774678646588801340065983381772946120971662317925246456579330043871351647769513572306068300441470207721331562970302466308277038917019084792209921955281935598604426252865916731782839061954906012197593174409789298783740220641936319124706790078695167180408990984973906830362285200644873827536054218443796831041407420099960964118266134873727438588019001203304936597036547217229295504476928060391094857237952683909105813198466370800024561365678497720764184051869382906618016127166378296945123965736209379414985885112006745622460580775400420412797744358934136578592794281641734136194823530071599317764752394294431718737323201134185930859415296707474221149427644077058290850291478531876544528379340652191397975641108466145664009095295607419314557320921615624735085000183153015265661827868660336716001260201206414924690631600756387281515194758859364921231581031784393929838164780911355215726268799386580021004574448111578118792416043816563052371699517426088173845426466953235469742553881057266531493322159892436209368486636437310363225102508059868411781211107292427297103059904578717980876833091550391031950415112525408372095853504281064535378389613671562912019598430329330793042987994553264651229061200520549764220515792672392875315186107146703672053363029231007181466098772654760918183836657115965220208748777533489042961663709562929446109894098547461797672064501847907928960888241530083257249608949020982617248280351743546487605956938988271947456053551731718649297152221617675412709402768805454910456509023940796639012408136599496023867991951778616111422522632222875268236678672703549792219048100162421755870528373168961981434016677174300991995730652919571477754280492015070018299378856078537228616218085932834581704800122488068431277318454224576633577628769709120060758960362954396533325061220958226010410779909319899370129899068495002304265070797248819813452145861626961384065864309965427577388754701796047369811633235105708594503943529063312431995674182357698976685354324539099338233509222144535202755057644342966468528837070816805084163121320434384754935518314867568233663730934934114662578192239700190867780638661689626069465214612447497139971442044867145551822846144714054254732923834215969003199162214135087857875595246928894574045724334255838334568825869402152483401809343676046426057351747648315845852076958079404078161573303001864217983840843381972721298823191834886518374692449485375122094436827076138984031020695519874486707272850048470583622216807067615457636215914706599551204122362206614729771674704958011176854378985673549737170520859815957075757036550230565065818459725797122719263294059585049346494691138271622120080324780122567317911798459569851851307613410834412298357898521401562390284890540810344653364782966716240476467235809552549482126366396274297896366820566846499439387126359228294519433943864647848192594432018717135828810382095070169980268386347583340123208634254049984803381182609800676840000658597868245692071217571046337562786412429005833497859780005104712962646073774966204381029580648619333707669159377956383643016097743117940643943288341111799928274514914914509376068978641075328681048041872006001672269680995955426315985159787717781750101322704850796538711791647513707582786433390316100734538548846214845063277667533950725984656340245797956259092669423778818699115648877930861666869670435088397442486218124308042000888272396991618087328962732311771279397380755131740243713955869273420582979035324040863496414940456864508290469300179573478202776127222769167391706167945856516087767539319078773922024332504926148698648899564625400625070151537230646590578302931346637027397672861621113110404439392023603792005304647507938831247486922747945443793349730222553418641153305659116811353963119689028112988928941002258948071293832399072664328349594754198433604337777666082586499975611994467885798420809956503924497818637579994020305321294007488693364037867939367989916331633492321288074719788616072179052025250795697320405246770209547242943927159063656349574128775645789747053639745402972797881604361487456160361643329603676655300611458654134666535365226176815172427695800373127495543456863093551552406968382140456527657062589039965262364347406668570281107485847791799845619130174813086744979256616117429866922986631550030682170900756846463039915460939566022865769881622683944403335990821803204908079393631700722751488002434459103111042421561241819971085149047358157234255558312608102024566333455968250317659146383912750542386712785010751963045458694785907823703323948878220270659591849434694444962043611170846677094050475414378822476350599657519586156290864640944910456747919296119811649251117295155110940095688493945304415998090458618256797908895293482368038679603329868509116138930141630686857066336627903691511255723981040440033881695364714434219468490201921023535718241777304420126148094802778639939606652122159367889664173047320525678142213529317507057890283991758140132009523288144833171050462536621053259329093647291861514774860521634760685256044766489959655138274210504151811295942359917267077353670633257732364260295794215783734486550967585388574315001303266124646786559923950582957335698187933143913085625461480884206448563641537828875333998157204944076022919003311991330475753775992540502404823895669931474871626038154020032527701323625927729122399830127385826097754480412822838023056702098217163748760591298044736922995050635782362612703983223145742073869151998928825362686907757152389048324587699881700664954667028033391179763329905961042763272183462165755740106941884901109622778224015648144748332573704874802200569490291003082666935406656117390139107015291156266767296719352982756158437560232820086840211908771385440455386672326490639245401440511018566280619897830487689771618724758771797829660315273865574513492230994655525063488523988178656467028295315152676315683605148107691261161823811874405308510913654156931776347922604447192726012698416410785069055864814979682327323544217370293779094653678463379594435818338473757763841609496511018478687510405879823939857256828669929642969602082176780570060930738582127738737120038901982242891817503680630475741265846487279285806273896447488434848614526098862695121121508791309052524145239265756538585228897752826116577820101339120899923444203396169372905889107121779564778069043355559500274262106481702603515853625441608266245299817730227392195916301243667570663234822682102128439667800328049137981884971842353561831627970025905365079773737158720590404303202109970851520079796254599882300930047612082535197898260915663219169313886317396611744935922216587513990679237121505307295691762877022740422989352449282611618766914527653088578364518804491650801429480204823292329571215792452546626751770018604413715646860546010701995528720516770199926662863526252938952954330361086981333710391777596352558634595234376037322127725202882230044194545073259271347427941908762588481539609678380634767386855098904209125177789372310323979657472985391840326456315298601457543202415966763784402869095130417240263194700298231482347420145721848437432448324436306577214204597409449127356056435034526809822558323459407266932791415039532087115453103120978959047369810295447067003882108256227998810758874274135936293933222582812525636193722575240292523660993872721857430793032027545110898253782177721820940886112273241442837859443360965912627938695603357948328887054302715596748269400239138181495355977384443414292499980810985992772784059304045262424624811724271167932900754266362146336081371445299468162831859710937193648014607569813221557346701294169563430857613645476053871606553024525854603903762294969898128127144967622736438692394959755019496905328966022299862064997686079737249878767786777915019921328011305447946142563399023865697557727987420983473116206351920703505164008697997059624740913302581288641404253480446772125470734217607952621245589248903709041045169413615844897799376174097315028812962921661854370049338863496792442920416916915823423013922194902004668762159422186994089123178215434253149225615485426129929418320662168743070011438575897901337165979360205499968402452539720904511808844168389904902640114749892840351167615450594255230294153958821704204847435191030869430421737226988917536474649138342269968199080652728325374860861600728937389717876120653871687647139274320416949479583689896075528291202633507914828122514985551660635135322948517957757190519529483547448688937432736473447961330085680160071259572750958357453979658434844191720418818440966810843749536371500594727060689962166273718607407458574865983972467025075820844346019071771105073424583046960270672563752164455794279492826867667687289517547058711198718458152764759117492147412653237216288175852424420389111120512797681350766696919693686148037900278132968766797872693878865391047776901925707875281722321312033180390146696538759888613623466540117717088128417786643145305573948493430728071692128832792050857472423027026713347112468233115596351120269425198005425327466373064507509218101394677192590760001260823036346979380381405223192789388581642058357291789402960449881671600777493596918731323848824855583830322058190698231605742808738213479944888775980539601064857534392260069597780443719062824149705847678578701582044012578422008011885573122109813088999594029735342717289630055323362146014896999385471617260426410702846126771550677870162473354034553517175096295680883088299576097456321605906740850250489650297393311377779450618980653089618740636548575422129114049509860890609726125787398151415089579074331258538993471139255045166059336975923770184913058234428108107897243816075969308625497369408325412993148370775906687414464444346862391684492758421315737604887711339847715688140698777005966366948150565994553784754211019155891571739959645803092841846849331456278751516272272846645508406998068265485592606003393543603609575950774928495980972969679128556223642357865810013767596665477491476261858761341407949634694466613255209137333574855016384167574411146683411388242919106435620752660731570358999526450456125044358068854385014044329564090417430746624601086420127305170391031549800793262298139806710112083890428872983859910343127831461434821447725930424944340482483574633412879535466269625987424955082270409656027574713907843190321401940500486343650999016411501395005517487027886503994591646327227506719434196981561338691675858338865596076641456618239177015295907109888907594467610000189921801850992393658805979157042050924864101109200535252517326733926532211865204435623967360960955034578334189574349928506054691654092997452694136146798879627706480080680148637963893503355921093780209404923246803646674485891867835660966922737607568915935784538090116231088689469513860774143715542412764320631248012833634199812920513845521205073731981037348152030840277398424611758145960078973010064683427309092030572420218984036378294512884285361733625590253685144462869696267085684647832947355469322877514970931281695290050540058198995288898509418317032200605605634647021711067219484518248652925572069289426433055956537612201492178408145154148787571166027834881100071642808619540499661170535471823977635342144547525998482297586283161168875381482501341746284329065501031372583383707835251606132918320561040363520543748217629610278213806441394372467693186117700814349941568205448397389747987253311589796640978946877104925621554939218340105927162480025983959914229018001631570188603861476816804028622479357493822808919679743956538445126005068496479240026540841104519851704434741385789700077704984215671428295236772088031481844680558069354775761963109821018764274363194398606050498250716238919784321367103938174660790399933436670040845829938925915462171519875457694857849141382822919337143253274264846129619175212706371627276079381096411805521127709916387185258512829391951250242759451183743399552440679638831630064323548129232498548616056608462446253108086147917922296471816015647917542265955878475552292037565867551902333712405999392321273628328997664871412759551559697669144710214121491040018539757357253099441663924392674655390096038561751725049293978599941771385932907619236806904141138492064744301150930681445367018660181606674966477643717474608268143342811271427683319962094887821202854950224962090994059097946293974961283036780365101477883726806431268278573957585235163180139020025027149222921419601156296555461832890635282117116407814638541667538478580332325003590943211027777469148163440423289915795573273661088406410257089692844222239003804228160947307584856528265580202031161355884043074261532265876166269631591219200342422800790189686346526228072166722625052039793694085236241506868171807398402745551868166346906711513378782546704274456310799218246889721866127741800086238601615603221475706930672771341045771207724350401522029918916813371428637518625838102597774293431710990240740334263348678563741480821279446874056940483867916164296255496952901541009116856273226346871045824456468760178819586200219625864798156856585891170013151192961825907714094227263033153835055122891723470654736924723972418869131250388400788091238834883762568076691098158783181090289361972074727682675458244588276487241207255155282747007587773350906093272120445499368969685127388523892295965965339295034044653890142099313708385807738272748110112557558828772617050947360919494634063362609213341290241695474717976888105399046576372516993246448604433246717588161607005188733068342741808221034282444226526567631546244509924905667572479016983448703591627475878129163998083431830277484655703162167323829353678548979455378908411611542219141677525740830715844418379523511154814898312475355281311499273143829380688270590561382116990165197800998659890202002907712140976511266318344000756911858110898509109177627157180167330523125550531064849357752598637479155933379897689428965268424805821526335677048826398296496517962829366626197533955263586975953416743714288869806522344041338575695610068777978075978180031313796944261393063846050952970719736388593435911382971759327336402800333713445044025561166384647521818486084432188998227448188159853311246947103146107419112667746167114468613633009326319377134788868596456194230914888188350301835123359819471080044683705938628787876670610418294002796341008095423318188378687616014599086598248564725831637586228171780185849272004066551906690187646632145602742654629459860119656578006379106479729328769752401695986993350858986770999360584970254358281602554911584659285947094299240268187920267799023508940387894987764756387634853134738927722263069715276519530862747487590239954800775307872428767715480998534606072269072436492061917698999437483495974945678232375042757429358428562383707300972377750042519835674251256937505866800237728602669309368037625276511442357772193425661513125320385513303792328228938943338695780993025650703648417971734576843087695903983131257542456311138405580812771137792756797354543973046681098026466455838203999226035241807003363964485267769878031322526874000231160444680657255263080642225085292730355370273218617320571015824642889004973842360819929754531324902917932824256417262477057346823699134327353992143266175688939200815285227609605754877463952031831233463754090125624162157813677650637526855200739899857371411701340188556398801800938286196965441085390782221416927990884829177014114846378891104036602672895667092641870170900612181194273966744986955778944102904549252658427146007198239783535412238214537753587190321729888038535880725291176660297623447401922270878997156750628726442550724700690226250174695525908769143503039024671774765803303307030316778157757840507965624874506498751300852970573683979803705853148860658000362900389408832790143160450165449562947188565629612791771675592141855548158519017135488130839490491101447751491516458441116094931027584036204499902019829066235696909280661797972236386510575977812275955508401814168257094772800903890627979770329360177384661127930383767373701548547030580704466525374009751863408534741893876280258709639407662705987560950277516752231985582914703635027574195752307274046623608468888193111599305393214200494539558254365152546717571611223308186306028257338391969223979084927568872898336068651168691181396647461507256451763850051088969358163703609343061893464541643920362693649854157134761383168726376132575772410496371070687016612927013975370969421798276852340735520980004955578192692219467871945036380308551716434371609345133180315574912772011034493362383911695094518482175214663164410747528990614277004059157228301683007239445008791139455355945517975817611480873548623188411051141008322358372282079431958910270560876582670527475544369573678609896686141729059613557466322489307328009313952905486645979147920174232688717960167500347400617376756570636349975245539227526629005825987397444629514521995178397411122218907193849803314849117710164868366950401051909893307575267128331439389198413838691851079179248230178599609209073244879434625246710274007253593158143266628119877683231429212903248779245972541567482850978993262929521151867346797188432402669889991007976424613344861448740863365626872098140541617178904114540666352611533778130720416608091913082213034417608345163155356127489148038393679125725899638449433593364420033025564471217306629222020705618200366147275802726906312884851189428234572876408716181134900620810035855523360008498498889545757312585475102783441319827825430060810019647671183008949665593816918788658188096077123042368004516976633893856482101098476459122891780063183927262036228811398415806328334675615709033815938129260403181491687369584037069351614833376792251552573560642605937370172348391590115998786329382406417311416716757831657193708550121301743787757773831886446947900317298325932997045443720357680814941600195020947107287916138933078472265075114191204548986291006354548494440680095193837217490943048984890143880558650627149172107378569627318058472662032879462219643346630866172481678149256916015666976511219568479711572700433173406006467333051234560110747260479196920164980570260152855085693265147986693168233031036237978897344263819500421120581216047776002589407093388576338296423834093125457930714427186145132074382385400689031053674852323148427650522615391723066265216879358055159603372275694731105230605813536843372374183419530815690056059981301281902889671730653722456871186458613829312447616556315056457702032588936077026690904028533296041759982241168418303740935223049948614303921883256714275726457200046638346210332624408031720540431831958680950817065511898805807521827366578662952976698446139775564371092284137855743860478418365362858827002414112028582155212704195011047638417643150962612969986940687535460506533145944186598113025797808638128531859082503586029753284820136982792461988150670718306156758430646376574706513085840129757032151705587426194022842939682495495645885537269829536789497530902301452639086394168064200232779697947678821211939844201991699260959038076384201936232978308287367089699378540580141115592123109080621561914035103129954450225736842437101118464995675238643610058881708146389579325048857428541674467270234088160286086004958077417100446011538291252587168756366744515596019382875460311299248778662845727734121994004738517350378648783878547242901396337982879609901528954784756299717749960919991363830670345093967636640849057397688114768363484049388791937923120374496470192555028208781666191932426572238608303404020621730737798613503876632470683085540552796172747538666239034209588716468558166106320392691828816336326644223956506252407835403956342203499453685251617844724960116132968222899833344954278851669628154933232211715192956941781867272115266855394395818894332324234156900641487821885184710503277815121799997986236369788097316085262909866009651204770574491712686844810346820229729440489745885255650178007547457111243943731905998685787401874585143941281826353450830604168854000181430428924783418969471195138760357781307265695015970301435835941023497351119956088830498934796911892370113665866378250319203503451251618686502764227926331575036386142337416288328677896507610950011024992543756084017120341815520145339943943620581354222284105705112399945653021074042278502250365597789690141653390343733343513794665872535022724267437650864115982459828281704892846975416695778750417770902702599095105874637063365640442241329532060937758165761642756044672029371068903210337429665160622477784870332633043698111849154891603410362187068877659439786449772458763194776106967392304512947647688439116511456527925063597502874569428834229710072937805247611329947654057228683623608537505619189937396217003034074338122157801936513922403688221726517432194018979299763389363680569520390866745933031718511405225208379220847899434326178927008873209949533214009476295455636841827104150208487427588874813362364770168655361939596590834493929941497071164270812332420381815533003274757635390550889926355290566134595576786574800513954573528476761622413024182905414900271073969869780323437171626239666672508001201269375863411041341212180016171023627787425612212971999858952407531316287454010736868295685941463263632953254994096771613639552492950862084646898791334455810315302496882429455986324476979728320334067132245862036074495038733871350234307240141297956321397713539054620210042515602679413764037628441288130463039265855464672141972967567608730376659408414345135718294008947105672059186193488114665722925989837189660686034925089185841391387288280794105348491601778625251748378160409188609802479371791769337183315614942247189096105108654388451096546501044889736034730141005228109693654140815728947474066908261067513375575135611724078155242344641439091591827163721904579653746116593600605920081904936219969596903050386692760668112300021036054057471553861777812983695045577960893432469922997745298869353583037007435502569929359549374763987686776857815904167838442500656876901458062859477775554432130598591336431109292103972435227419600041837188668288275697225814846408355358040543850755298349440190264632396173294265530859715314281655023570967157842789954597092309197992067584509696063762964565451293874789255914823862425530062188359255029918941546673788315376826701424200153976255122682198905894809408008935369833649162977974268112007557951776617505970436189645036262115347360942893530768772525550076426475284394328702625987793656316551535002986531774007012580664047778219978947486235171257245133548141326560900697345222301714097101424081052005433834606669859724504025785645074744835037246631092535738104533794121229657757686893429999301441061712335913924476885888410549985544096974406942283166440594015140687249829754029152309557059939511057188340636724147882872619959372221335597871317916227789999149433175207350449351757687368800865187834415296184863958798583099052190684837539086428344613140078098247755136144373395197563084457979946903236494824558135125089023262724641740719127342972129937898309375407243860931176665315924470853330250431359919223666237186489896318887688999836247256820241343769842032160543460495484520171481589915453830495459976263430170628834089967270869259528688917409558709818092220710256360267427405653169572205438109213483583746395487834845003683942082274889823075677730288916883420863760512817502413076161006910405664553645237218732646461338009217661792826843313357676601047972592437669795625577697199390915366405962243304215469413398661348147671667132711240293215713398590568606728746676473940544727436698418062752027609787898398077982863883241322936492490299969391444417943827689262852011463275042458292666530944249906941111484865364859599575809912005379606795779701373955433381354481934824384893852196891604460657275035731255930942825581339391118845463054356159350202391935122910647204844433159322348635107071137837034245022404222053044419201912270465312649870705279005140365904446413398400492343272227405984707779172215894430838500169127970885110954523780080744856165026458270259114612370721942039059146020198958109847004111712169176158401099591509132030980285463085915468824715215376711171153847714803417214590265747543114167637676224390019290919108281951505869305964093742160622365028155291659579789447555489037473584650445693289058878505319956887652552742645015619772494564011992549740073677085674429786190113201984688846774984092528509542749660794622144509625502101705376747882955134707476265523748812321537001270278988406091454158256463633638788242450875939944797645931578460988591298482237603654366282998790703539113990809977116508275814211961034522756827449025769847318901016803326228519048430686029019370786617280357436003050465500719952865130285063482685377040410672663286888383684332418034672944080782789371147959717655580614663034944014078972491026197403209475532663285824877192729712342349627165297150753962905244526020951578722839196901391051017548677209840206901427588398706831038566179573904627151906504132078601829535632049480915930857367098471000910150703802923256945662406161963465908105395460223361692303293778443538070311747266754302417754373177886532065315250752306353167009248855450676680274398367748614367823687936831202454326248119051624213793746967544104700244221580127881785158246903497585690956172694466573346555413648481836488835435402307539195163404280428861210214417099793476974115714991772208157205235319677763192824263263917706846339761423230971432077026259658453660629049193987720525984461969383650763672914357938854382780478444166152818282077183459133489072558820833120709444422834857129527158823784558715305439145811750224369746060776186114683716449717627977571400827886523320971621247665711924434430507928993536067088618126621257759867835663530673891340367771281406280515479111979957753028500252728181156763369125355653972643745456430533020464124272997280449424572581910200366224204009777257971770806813020374151211748655448467594993117861184418359326852505688457349365929734636637696305873850037753660518153628767327667629809257976381297895312094452793311530003561947852213074558765535105214801086709861460146176620893789556116839097887947186872480309857701794261740743403865800396316609410534821417678447030553445206922513742790791242615369432988398514612418722568245759903364987220039060868227981124285288392196305595778042053582756771244396245482894059860513368546924888945842535578350042494585044519057538110682018774676210346830818996791487547240335115858053399721443221318662163972232891094110284294871521281788403570377340549017204981779787466845963703255364183451992115498723632912448363323585434259875793786950724807031304524757867844112323194749866759537956263213869268488644938920235118693092572156072858086962262001362178426092862467430190839061069497542411658658817351935707012072012117006655648691768388760886639020516888585847579297596831747811712127056421262893941052731770805919546904205997190774365877839946649759487874774156363828609253060983522922934238959794797860008265136805144790123087880370546559634079221093860948628898504374575829648939992708399034962884570499552507764650621671430205703394482995419044075924037072464532400408006430682164497279896975514686905731107708732993702086653366390657237847388435341799364294647811336295567542053055677539007881592598740479599344334900404216384232038958188618860379300436679572272780966337374587190551393635304399481377468918100805814405654691397619615610216236095588354767276417044144866823498862968888156894165472499788787403601340083452549057178383205841642488654813949667991177808199457786354678925115927320185325017303875064449622104113402393886918691962669614067556445728553405926566145553825219980478408849068891049562679901443897177725140561079798770103087230106233806819223134031968747926637404547667999644414134355793828022216384209922783737516590120159220973309274627605622006410181361967418216782891631700621715701198072961997324393209349608342084897495055413541373225285291166101983610653522757805720732641172123704277852045484774231956140434633234121699728616325853157717757906919613620020073177064425206027427189307106019125632769871469924538451629627328614383718254915503941519111234447429722964481680951772794573092443855326860948123879404341527277126429013219099821663160780422374523506443181105605969020847913168434038264033681924519772039627389235664655886295631311124351338700385204486897854480242384228206736458838212041220748549213561828508701324516474928705067087808803617748711289157646931108069452914027945652860573781451285468730012587534486626964982811436627627593993854541239661749255662110568257316707158471712072998301110200435321000740049264819203178139870165029773626680205074912578371767227123371882448102030100351237130211223593554761120334294841131405379454732549110367512627257042444645310017522073066093533604858605321647285845956734981228615383170379999962437946829571788631900213686723365795610059382221015719780174003509977814759420928725290696235210722677046297294427219389680771704059788554293115705224362686153947150181492943424998544053255427760942174807003885070207558454876575236428838047259261301746164951923829451334353441624903758291421520413533741333859305653724844027526170109186435531079369043940514254553599074837331877636003673372646367947039399547895884370206942227021042594970888304412041979880368157272494003878682496118868581780882765661905833342773110034915306097193001946030022463911363502123214282694405148442281586259306216767937401687324919114277377264511389362062733498123905536163357252872687204811511522506686691633031383083467915655691862839027457845453967624787544646179913672134027661160284626136805642025363571769294763004369354415053562111227559371784295165816466189308617564320655120346924798450195984100985046956480858897923600818247876111360741833461111993177592924919621299274327926716383179311999099196284123676975793267119578092391469585761240304963075565305661663673689130857297960477900836703689893326333704043796367318004470510732370029368634562003699538700454230742863933319201437911414022606579238690536919566274902386130209783660417361968008698473491329859440614452254730752281909162187574919459956949402703979752277303743228559732885800261076597460723013150150935635349331365574044289953685334484846464466569196756026478139073387200937445912209452876704171931097774352542264470100481951250545904151315004032371669901171644708582653013818373928207381084968283821122936964126524877591013662657426857973958032814632561586977213819315327180669122602819676674333916017864410398835618221305228667146636995010259608055874528188757020350076856539072938040807595307556539973092146730694650514061485752097458262979735527231973872590042370612425658493732744780884823424662310720505782536463502542078093812833480833216581751682594338143577513706237693010708895890620902121817732692668925426098576299541598177978928606122016564397170555154571957836641225169049704000710445590465805590314935043998479388196304242710123724343318756548616001274197924911564604263182316872067758154475667145783811532076779316006079167696382266431037518554196415865089667501819952931631192344216300350277057389362981403484583984009358235749319844188498631292785802193908060912534792149536527133289967731994119738764428143661855422885065651586855208878332748183247545629651191074645729165183129464752930150199319738451380998786648720398355308671461710047876752718998771103147772452164256381935410792899360147282668984427078621045625326685596645886349125771069371031635115954106389022621847924036871496572228658491677574788126585954555757786781646749866535620820409065467473316754896748743074699516422923810449349963175030473362860547133133917896140042502043967822338002660593321394630553610621799047849252656580596871109252486857806957284926203384934160798178999162293141431478705396274195560441619557750240330590111449172095077596768472121032850503360212251674684887017525769156252392395223839029430590039066915969982279552109700707948293936512999814002854628738776890005823839853446829618398992104495169631176120411663160437198571414790319304860655336290383665263778712204078602894494678953240548858625627922944657653485450967682880296118203738082056267308788274286365857201336755668093652198081510142256537284691726759693652567046475240933544487189555279083667393389073407867642413804176385263670619164987999090964335869205828640855097433908838771417008826297359852993240666693753743129371329295366982612891371367037215155398125555559012016512051227793472911336972220872550484110443048977335013982685827763679956214284102262086926907092237538617111561070489708679428611137279214958739851742569331514587028682557821718593019099127945642433783573768968650224029809551119682491207584066935961477881360496154519274427207708527471925165231383879265356566180326166953332580862153703794632110628990434391897180185589654338346738531737008136700712306784509043044374251468597506228077830293695315066930233023262636153863068245684775545490136973739243975556865748754918089214397725282045414779972188939369529479765354288763303728026843736471574456749843248922062393313019479708266273114344276070513778762340655808951951003832845947701020883385800501526649933916629557115337546439056588917785390172568003988449101301689161959087797780446637950244704120766933572265497544484259972841473006441505945159903213127735820270358500754676032760305144383930672883246886494101423529130689318721740183861295055540377281580751086298457596821939370594208078067720960545457893848229269805140285497462083878253879312133181349245597180013636252640753559450780183145454786218789457428031885950638603292555188693372673809370494956353011319286259367378543561297465035035729510949783007127494363786184393239481512315292655233243751070423677334997262686176816907945480799953069588864437324810462017038851377471636808163397340306278825873863890800899106880211031305626106827075814188022733681818770847337836378923419926450512893339039310549790272506864273200728406617784632077588699371245924439110471740629205554775413394111404297453283643965656385357927113304820807804810782366292942482011517289043018824295526857600975843535836191924058988433250513478962480294807611525136011188450560669499309443537278676038738768031241880402501511560493317523163779570336932107513368987282173022440372449055706469975816118780219315161758388138983232791121802832944311020697287697659369449797658348410430173722369780615294402272433501241874325569972889563481966763898116980262837682586599841550271133105134509554427057727871733816781463271129141443984893508128583862853121754133093324805952924259247468520085272687594518350931669329308737891374135078757971075771522627233149088195103874672992621884124746663784762406713751466553959085806817079582596445862881386485705312125687283724834926340307677723938004906730688925419377187575652006647346695517665369786280671578552685068823935335566202483206935058618027229309283852349814441747168851183702493939968655366203285750644547600247575807373160536465311410985860547558362017803464308572366814662839492925418852726272503841352173779631011248665839011131205311442422317857731892568866095779423036589255281625798729450683031530894729577641852082761801807370232937049636319233679119497017332151919391141302668462449142273432296359887538835605237985035399154549714688423598585108907353779472850314544641186365866455666344181149417223656248667752468911725061423896024047686197549817900562668317643369119646803005155766893551900414915794072640645344453576272517652604830772149428403846017638194950857827930944818364127548557218854096556449878569666336199122325312105171081495494047022174490030542661670679847432634093410248675842522548015335645480692361448015561812700458439487271698379181065410028796020469512523239007598080283858453970972631288318435967335285277886815903342262879967877083808286295544787840477770191162139169467043250251912719540788176743543512102332342061699605792664868647555899506100235093217072691101496758799382172573372537279945859261209249213274591254218493228344069332739761632471339571973247382146973144264774891660511388331834976255968510228310315156866329021856846084523693287141185023289575691180749060235101323723828331642524636970905948898315383752881893794588287251665774526210880025086855536896263964536555902318035150982224537521023388553255433300730230513435417086810343806540041358731736455122755848121091575200223979416749557585487803083080957917717153428962947382359980749397754561185681622740051249253617240140908833112036511924807764368095218362755935715061979606798958118184765608761352297337905902118961299595488650367378768353078182381305167040252915592865538536092188231651687996053184626916865259911442496756711348552103077777558893183841877550730246931725575916739412046058054093313231487460632156307173068984414055855888947428304983744741591740669902875021617910829655238761840925281833748908535151189124891360087909537854832749566632001454121944735622604345509465975293525409649369870214218894803108491924392369006280375097482070390155081573320716368019910485725105863914586234141066561370215173066778513323122487126807341351737754782982880730682329550524828815523977098302952355432646860791851034591027669433342662465737615978114402135458973734770396418527198405849832615412847499987582425224805306745134090674941668775188347446209628250853469966302512719923280123409371109951156083560487582120479928883864194298038633894234005574517139955783213036759839529604790692293075755755041360278438790229603628726629360481165741717375063915948332067204475904062359883259229252243810500574455202551160449942003935385255161306859897289139730087103568099621737068292291666808932352212262217970957352715433216900952154028669013512646626106407996728057772501159819508204393849852991467470567967516416995898786290252212716653402230867648762460799899082365293559467307357697769514508590641918101834777031108150664235027500049523859627394463186272989508937211906679219044186662824733490345075232428714386841177879042932783191386668446202791685301383061937676138860030100347387652672114668732926591667791470613931059511574435393496311441384800424850553670664822627416843421004857760619114329003846897680338550804446453821878210086432718438467031055122512688707040982609771643113197535447412519161193723469784604343064750659535694248778647271143199124432514281812147089050655390602482085842005530685710429406849267406702235551946170476958704270368721386840289079580527555419828770662445639879953286664565282115829299198104319236050606750376710080311689612127128460115437127945608568880138430150098699844565625473100829544452343682041038352065380878761886477090466452543596567323824928662300388527612559085319712411918830233088467283253995000727744702672842810410261571011522519883113035456007802686564587144647218995977027414702819725671753287276911667923091681531592807665394876788511212935078595417907224254693974733668075586128008847366875990334927162961358318892410695590884363258446627230994138768573788345458652171478852130898798510435524576726100801177831559619845819498441547618566296425612445470637618555311816150108302439014460845968964083803702495552880640366301921071372643807950620353475792127625083556734606241376209047878260538452306212348620994017178361094174218532236099748782452519763512157607145334275958454450853630954974402228860257634265351003994788658116201471741950423740066598015839739930399352387918377910456838158161324573727568963351613622052691083099660140218646114074117795032335654762276298931137218993354745906779531544314917429937912836898052136828146865798252472474455721565942539575277003034177587100876151823315441988174130787141618849956521970495300815185066459518364623503901864936616154274991895797963159522380647520269773348641978954848643029424878163844595459205431761789820920320980267684525525551369092911350684831184726772018755482656673615690876263957713580020068197385078226571273724827952511952131978459836322700436043840137028561388100648280294561738604080808757673343435783789635435180567931935475252680888592092990449332127737951700997033648837816287251222319787437176077438384208326767088155655470723334966786981348126043863393907033377602719615200301838034113934634760712004967366249736325389011130345067554223736781013859676654291649460431395233417707140741144237518323309906194518863058075972353842008584788979100131196705814718867487713786350008996927127281474522133408388048349919718954388113824682409228664718031284373801875296306352226354062463472327196446779518633989770313732220401717971734852945137837829172939589255341181910246711660901994701887573297187804133825475100766529572621520659447267616614526193253190270335562995659650347081736072482186047501852103842519661147288477175624749837748272729063301599526059791973335422332640903364752632242091585408360611196891334743159485188667373399280492543146246836204917947631557552593966688430558643002555476494972704650919280166497764933788004175625768650658334350915783978471358257466234912021306938468813672686132412989284228948130827449917153836472429235729289941416988332944447880348140140500060036815607506978290216100021259747405799325268355269376940560405916452886987620309545790669237423638997031958791222618712041359539220361884756475309463996862980807832641456916113878980220535319222407309592350828003529164039850683236551201313010182370594946741867198154818871121324585909304845589882553678588525521071018153614448480581689776063257718239561698411961102771473472589225000605943843319479650227756468602768607410073112381584572784835161176663584264298853881055097136892677356265815817988014529624113626789517514051399720458075773116784584972472956886274592621597528817252761527955943609344120703999821368095646391696446581551568533598267856970165651532800830622433000492101877536044772562535318355012910346740059267978792172019811316901912671536945176883849258410553612078307874256925379522347809301048624001686634516718527222627788193015346017448921861683629528878887100247679557122189329111696849602473584512771624575843416283197143958885555839293626358795570621547213534871445919633060430062066866792682670435944374610543495895783962014103858057862490774549713544464621227327177242888469419025946440636529954692533400790964568443487578770777464892587170747048362146336795289388462874927190288150182207421542323994241451527353131205076698495418344041526930490536254402729881307084774461954531286007601156537150827953700180250999995072704541382738303930349574123237996067656766721272805503862949957082168272071587616964565440520906861387086888888052539526289326296507491740110708350847771042520474699120315008698646620892851408303808086157680862865743423337458753562343931671445684854671744114564487913464379061223865823267478409355348007141147705061992335885139966588107372203131116558261345753445639518179912794289289696026271784212877152437073294383920613502514796067848333504177003823705655418240027308461086181235847455983744881774016772350588314082070706821720070988445624815948012808337431659565649573208853313381317242079475202521238651336626203980226581917775932878353245724441226388746122112646326553830833296059129009350397701440819536669564439147501035705048556266849778944967071609637142505439254767426953034440216225610019723303700482112116143624528988200292209038194026357860142968487656848450734418036342876502717650945766287043429934388605847940042346150454890466175491860999457027898144792257339857719162644310694031206779662443224143372281417324724998097629826434505043990071346134236358559182578392082738118951235151867154823203440165032252384685144161884947469178110248252300043349785869225173976634476727889597270768541385294627374910444578107591476829393688373004129819621400622215970386656763449544594998851475798639464825189559052371850005396164536397467341232365617673081700680366344190339222808980192237757179994353389870660536942073232348117194774573384027351104947933552197833536236335560491700332966591883306811510446607716090630675619701308703196371478104778422279706648618050796771776952900195828333908067119580589057845878310314534227597666281510114258858792593953878281073440580001031552735132688306514573574215733764855614964255287546681554498649400630551619919525060857406970547466515166569595534316556193797190494839731562231735753453274798995208965124411815213792305637895120678719796572783137528222266437890612818849940800157306465163980710258750650416521470915348758060069157076422126437797816711330651230732404489459269644237860527621362065721801689857975367858586708186071715449611333352341789842512724626660513070103946963145138249749131202894731264537213477003005186658946520947003606298341474025526105444505248453515632025406693640989443303523607294071806783503579409750788205329984034650325432521129796385379803207354142107006379309908183601346637395027248012838750373777317823306023436426205545517432838541313033585366237474862920880434527987658713615804716954290359405395006624867274200718766976194329162330567739550741457343929160877548876027192700207628013860036474048507450770685755912089150991262205716895331591730735114354429021169270227171682040845462412604882252911739554343203739006707186969377032876129483826365906187587483420384238476939851022217714097746659142415061813590545972062469820295269625666925106506111617779725124566026233642860246609989554077594129815970526977794996915058377306824619773796847083137309035018867295542875963914014377493869618485460452218393816862483587718099713493138777324269726815756872973545346586618188932415600878779540083813772069301311061408987663933728899076872374485778973607764540755192255265913699073371339784260778734268677303529403770390959667215431410966770026273988224989089607802430690340142923645219174484703313753209868992507654993397515192313228584313279934339130304576962160555855074676918314580985817743313755704891830667039678807681114150418217860711812848382122042039413089856769865495882454376875999821475776141054052096530361837873378292700301427468462269871964740392071722525256713847830172819985560637534235483399727897745530085148947597333199560911864089906033486182552492875118710463364454479891613693784803132693873167566729710114157683473883148900248133561819088680166495369788392941539568492451720048739647825975519881890718425661584352647840688784607393173514180286143798964749349737648871582238811700374008244736088168944343273946087330890058378626465342772483897182232069501916638754116959291039574550557089414534404502633515128805146597920494816629730024177837378166555874209433386255023335585789592960696536426032047294249934102846955663024317901027956928568730847881902733799517194272030202111355410389795706385164035069465509468539780642529456501630490509749658661124765899621275812329001343972518426760992339604867916565908207965189842092090570475612300111473206873731414804950748411675611748786739262278652664027394679538107539426664746990726519879805998370864884991519041878786569466428784060281619261627123811633986383803995374439759342295185484943544205631307269522993792554455387472183511150021563195189216990102307078038659865365151129766095582704687295963886111575637551329455085680567780957070957418506919809353120355000486912521211464442694453598817329573935636716720249377812610581072489602384698918388038113991258740259485519259539376958884652085506994892199835360746390730758759315672791294887988961206801119197408359835383864162304736140788053662803840523041405012970359022630578324553751587234079959748723054158840413760423514463444113937178603256960059748124315381455059728102483730637101585005533058608938829846078980267507668830249964665300648649235984172434988939837820359058059631049302838266087231593796717965555800446001731213071611839364097096331572993068021965001611649106459474594237731315484813894878879822105542593585612682551664216254147782588584070271447078017695858669907862169883032429781704705175879598248165837798410212974939827050640142152245202894546285003974666131745548182518259849402993678508208962730762493555639235285529432997439055298726844705781401059563728939714833745935529600289203831066519190726177602800397196293349331756588669394127454415703249598193137700732802148467010458694473849784111352752658225940960394090459250970044982691808367003745434931990916065993903218876136131555524641305827222316642419530900165882037387341287515957785987132094027278225776402069000160147959107637790750788733601662798222770317129812085917286328372175713664721984622165716721070059821577014011056206932670839741887808652045422376781522784971498933532600178858576860491150502487000054503736881881737081257221489423926958071605900920586946120714786662489684030183658891872949775739856217000091045859237254043780035960955712952478482011738939736879065226670018335451579560268717976224874989796006936571872349113257606200589919802458720590218851883537860209437947798371549225363454945460399124145253995714520961256677289363628471239428320015907618652957944214896216136770824851118528001615646285067964877546144292814495549946424023228160693044825492691988685993464343115367004976288167252408447218706945156641535662251433464439156347577577018629249884056579885596421914368643478460057731442261049753973098243981233761187273919505793622850109578811043155978024027313379354028514348422016565144536854080467941265638046245764755158613257887931072229182418585658643990316490155963547631209494421597146275607028521578784793620372751184550014905475514579967535286044499417088853265993163031401065434218570500671576107188813974211801853893312405075570386436405988202940071721417976911304011100148118204013691612526513419636157773752160934468130340627891029484517903044643480408541385696075788279955912355141652731126825922701851442349422328424347264241900382317899856400079546222554443737844667077286274617383847496954054551394677647833138197960424935104797654929901780289621051659110228714592688279118367870196721254922658019240815066433177475323597099959485834649412749930912314897723139044742390618953849428006709530441987787418281150797107755947806649812758386289142670138996749280868617666345176309739262067350555300276010185820522359584631332270665086279984746261172646608437547478857647895364110841728829842685127430781166968244233738844328977859047829088439185128333619247970789877075267853863746110588293699264200673514241390029472633262971096419294756170237974326767433109863725914845375567815535993927360547573503713857001284564056538257409699859253532220337749772534237954173742575032826512420659035711744166795131361084048692196799171831382270129986638895045174378462301113927656133168304814256515383449082437791245372509710224087337991309300839849510881773652252349632610823011667891768865981476327340974369438963827034012884124455999763767189539219849722071506625279346737430892805739808981490718737888124925580431408916964795735856369017797330246261900192410088405717567572817448305379555555677683831393643405921947298115049529830523977276052941825521531039800275481258409522369357170551055262178259548406006369954212270240064132164213028332030187054906394955796585036302379496988345624084167284343437322651040706914691917909771860798483574461484188509308581172178442351984218926072179170842959589442070340131286545151389201977658458086489851254902408186246690622872540774138316062677203199548283870277432054148933193055866115377226389912846971735834279843445137573085392096344021794863481158276066384694181059834438024501065253128274567827448086191068857433021872481418505834300232353975887665443620012151008402119871785481049258443225803947897237697429437839467736655998642594037033736838498959361467141853947357641365282545372966976158650236041020848259482143586532479818886048833184177761278645635864474580340406863759370025485229074051720683190117827836134766265046204024749960925701514473992063723780877250683355705123934742994222291383507190926373424090965196007696900691359983643982824588419275867652333177520466385794905196945644263385018239090651030366398620211019479604326919282198781832693854471619267267096416522254347187470218146299427567277632936623494489179248010027119668154795790261327231564234851134664657327590399546067049495445468228325925440148167603629391658142945277074355301053344435226720480353099673735483220928963402579423741913219856003488081848302794944324802341435303152131009306798176738983981307412317798647772859491017092232710619927273544072656101940573539834536110774485447985035773722958746310451830419167843806387717899518930031799741151907886773812796108507046102779806616001935311333481114754731911140322086642285634616249179192822629534133669224794245937695673375397165335994155689570565489992175301126363310516761438285755134526661129920252434141768472108366970524937746652004894850241738803767326232682235095219156393957922930633475255424811853640227277665399413715689886092855249502886826304901314874815666460770231299875732752654172989133748941074875136129457979423506754494335867284446759428129497818169841852693006422202316053741004495680594082038725326830958059584851842587006765297291979492725390540506379960776620480138976460185092535428242685214418051675111714574398313502287067337698575748890417378763104769847880666040157958301035216649137303731788745425525044948390333018691967340019828584717675585123356576758384001738434257525668978488905050303662397375223183166814754555100657639217398295948351585154599930355223123548217896295924561591176486581025810829039403247977333617680795444513516962769302624716285751878235275772124245278958794397220748124439850229429305590258018699265197728483146817400221613381068683444094126322505483076168315556721352945566991308320116419012680261425730823785149595331032505641921709277405445774631668947908026347682671427441582175925130783827257037005014650584683633081929377728454602545984914224404827582270317502283387663282943786295988766552093021050482166819008531541125503525487916610900173162022450814374138528046496876747504805761612471349908858539057163535831481428059795726326428405623661195798654651510436864899508887157872696701729101127281712949472497220331434996221799208005917863747665459114201595398228416724478964221189292428703771120442050749449858111694091999026895285775991543956777924430734870667412318947883585607009266798597452087241990124909623580367298412540186842523958743300973614567695753565991447439290554889496296211323914307538210453986301930645963873677344010777983679833718154925089456080353169065562112433610433363037365343355959606765021259077713221077145750616670619483601159756423100178384290168542648809558139680913334083533065424420239520669124147522971331218412133242086143983606308593635176711647987955334742632672440020568773777543428011110642991550364234431459191576648196607882284112631340855638931938715850354912478196354166269293299780524937102217308918405081053703549697716660530056207742085380519055967045900246668009421005749867049063793820907132167218219652493178518219490841257317663105421561392039971107582985703927370839536811413108653172894272662643514732766663714269390398492783787744123570098021321494462405560209798149962149508705295068802023995696296119095734734846759887073123286240084019556785670750167353705756591076867106990277212365298659769254405185300790045388875419014482704559959652834345278059541338426487925347812118014881380770918344108730803988304463497071406916600500225025354959973751115019236862945831723242826327781368858959283031758484590715567318375854265188487110135622837812001336645271622190862125541337275153327169275158829873025496188293800441370248528144295688815339411323859012766119468782850599376190277876548769426663502862796957518174918619587216657814138756860105693044184121388760354090726246945869448235857086842795438354384539501232959517772293298248048395043612172581758949326165542031750961857655401042866323965976767266597920909304893374513899005678991316772562359867718393722838682618622121466582541356631872849660096014356561701998720449899423602742452284097130847096518304863815574534853747311562177406402870705368004952720991175533311452667570616757023425747762869685159736071036039954710533065059715682282638806855110007047287329594878880274196309400888008755480362223295551217064410966517325628336933983578321904241289974978137081939227729264584720821847284123143008404455037864589710561635275904285488010623246951158164571006235507875579127274539393786685928016816317041185749908432709820220292409722205117531571925572082712908074959117983152485269930617777710477968098465927555964462374042831577434348028053959925595475916395953442500272269727386331961399480964452405345938973091977196051842602745024602793876071765524643222746040296973275496436925032394799105558998089836242889836944087492681481668861396250667515572023358036988860808731741071222186929839428641765922214989483472244368400942441348357128557577774691487707492505621628455178611639651005061283945549724862669486275656030095530151323142151125933684251025705367181033223856429581214275379690618813057898776593315252623107825188829372130343806997929357071628954332672515343909108612548870385913504371094833108697367276624221552082815230545563147254001713780131672335253339540730086504940309143765129593948787138506208838686417848821195980675615050342176497292572162146870582946025807217010319215052964465524421860626064064629717691183044790356125897765832032741525483132100026094707837837348785773971678896636516804550990242097256490854281291395821918080839872292221271355445246683892749557909152193842259443577907991492705033089188571603657978452180152074738338918907693854049332977389894201013669546857107308085516086980560643480044794926898534261634868667324951258376930843545299143477828873806184215017713114746155501636750326565701472789819898442556441478879784014850863894226756330659224569910134777817498736012607838221245681092266729408375815753905382376978863622192273345132592483176419389127714864808066115639919571760083607131804149787083446098711036277859125547134674989161483449626481946329999001994807558040925129759196960008907266425409203924962383936133098716880410332713847856091639744155342924363075691592379582953830148850885264668358892247090960337824697273701507410033187072405217515835798508356014623747615683820145949282865063672326825870072011471324016058980963775514151969716522476489426701961156778100448909946651273139851619296113897807028644627688017057249802890701839885683494248201355237169202980776147272967840932780207995981064515077570052406302349419183510163808610977111831959455678384511003102559162448415672198293223532194564870010013414652608952754357162732549404259187398126422001160269252999787397355257422462069865824807840034000051813384848622161218234923267410363131925494801969921908424631551121122545969264846334252972242563693024181772649123800053275452174402557431609805682844405061655779454625346844662475002622852158512537355026482242038019202783554772740888004626658273791436835888789306931630876315366520419817067154763946085112524146173031688509879224859495043677272940459362876546951896169088130489303890941626632704328695224296617708436475365078846306251748957603870704681193722322475780120480506975340013649180663544478597357364201794888947952476427583436222756451964073618077906906857050390356826048168463219288720646509217421391496263719178514856933510131038044159500346433422248957400968753485965530558432547020317415660870762985428160598188319739669912321848436473401230152217464008289405179798333114460824207627567344436272991432905867576197696956043646557380755584937950541351427048583802638521663322251513618537758757062130971120351029297905860091558181523111994458052343774940109045173110384694326974201783066079808221826317760031714210746510847618461385641044621270054680012918670781109938074362891851125493659638099298922055358667424465693326947897698225776332469568079444063917517287053617200509976166074931930979591153608116840999156531500504857267138943738724780231730694728481274841509029744183898341721949603233672200412990253352583890987869675165365847160175165821463028050327926146428300046308436135848185120693978104294637244488157983075527139631733642386740066391260590169250616349473319696334553006809887828187246600134556674861228760550157383594893756704681663805107120678022835343849280789573363547144020185913044550330991595868777590350757826659116417151002802240736443187829103982137231726828188468715918940673588995225404318781387901871148394890532615514744692621844363151682971583697657937668466494505845366031939791623347534494266660894673766964137095728340636457107582433114401951155602582550294924877753549177862338156494513235115274270552776318556844558569960105221550767335424401837080992178331864699057989664088545939637973223540388672200231427001337387642660753208331313181852401486808486392907620489979523982654490996559536752745891904788302437037882094778066710376410215018501275179127735224381876271110795048516557636764531843220062946807403087643785157835705424886315707631848215782554114379544773667267366727354848915551386183505719731402354142208113219448896831971333797389323531991976771188530844742439667214890115914996423176363640433271603946015973287738938409109948293327783756175355675308837812566900967499720907935612158426282326197142834130079257930775605814082871566367299933989852027215633325396471456897051266340668834711832648168627256308078702420461265681514701429648648891589065537683586708167867680672222595142877741768165300599375057097177588207081076084207964725014824281921904887681819097804314394739106393324710812410013091436910373613787670118496947054819304230997732573521173146919529728567551267161306694669362808670974977222284150621745503798599815260182448837432106284503038930775037773908368151635360031332644211859372134174474781508098300214932898372964354214795855093884401640879244751986512491009343034005273782078522582293704547284030471789699612062951106841816711818504366344845839352348583840531797991465101530696263092641676846253520050309424296829610202180526666110060875244877739346497217210231924582924399401421782337917931193090602265787272206889333104068118898169247254276076564268292634198680156147472784925411353858331338084819944043775115215267853938892130859539162492001723778064027247004828498164978305098055995007165942711152128415591435629883179782780680397461933049732210727901094096904227358414683574446572203653080877771419773769693234396892361085355873620430480694050208633491731252015117374713565144878444959219542586497932518416404099107855190891440738759472705049560797249208822386862147023202103678664011079754952978963234383399287140098748189609539643147879993268978938729722132282403477437907203020297136428902968310298189699915791502125525660440934369639649585890026085962070692214432684425375748170780688621135769362979002199958247076419520407975870981001314768587056756990377674953013707055558115771819807467915464057625444126852091729365453795289290036370854128772660726702947321071943782740940915732017127164433218386224019579539454807614924230620592683153501772771520163874978629081491260580285146467267008352662654733586783798977551957636208571363978465615341587143635095083022662606147107802964940626744600929587127936111205015757746212483336589229542706498447085279800282592795393096402811921544313978021626864317411748209387174632746455006617915153725900135938840440298809813366730008814819912254762805586604055811884049358758451049405402239136606829675793994205084805736131320770367802006037422870827974632962380050530918714006827885886082074341677549607731338545082941420530637539865807431591493347034080936967579222051082789946343720558823749836215702384445156241647740712977090571315347049047521501658474520241146372063099382016394281320046964028854330178299277947159807902789257383216277372708451348498466712226275366776748989088565118345557875421290526549354123304922603652096276385215490372140910103620998766173017535928116472818629483517209686076584921592143291403180465719159338844979163157655263610587709951088015301270242064936922690181878597396683026196169937872965607107088405609796613198010213780617312683479487232496045278767467498566492542677426301181549138707431820014254264871617843218881170847360659132134761091208011147570895350389728986620968857096641101605188484442337019937244755078975390602999310900852216084695884669425480516669497581271474240001213003093986625100820366153578379571660019127528400196768798530682965416437635762253360587295830632034220987310214821882781703129069441263955744080041071746733474604625055837596972311733511804331989757388710129195204760552856905772066907222214197256882353149631690020721055976879219123961242348034957537444614300962388703412163483329514716602692026923014669819961794443274478962327318365678546410451018658024893159623693730126187798671382180352538616524797674728498363671547145163263439219896926655856889473106221219880903170960775926952235322433593029649763201921490070141804893554542768525151137824090536288766629217259887121455404706044243922162087753995619463664487175460606624343034167157790652078795233710543456288433147175644446326348703251206243462439831780098042421967616382808882067436640266854264932323093921948369812487451486822257355943948348637834996834519402753633228267104831611566299319276348690057254410225359204164622294438911210788850255647208001633835004707821326682512868379512575702773893040498034578766690972993261946585087698058330794373429241368118217404013673616288412197676036509556068057910351775407659739303302083562901221420508444891478918307685265485058253001185530103043225699345195592119135240394866738946473423449446980940751101116970422117861401545852534965119951779705282546516853233583485199975242429378052231423445893258446950676553664835865189238725499952886611290219348183889538563177095012575393224119538811516887641495247310937567264820911059195116669647478654797910096147216410815143775467802889124675336506778378997823770072485493211310126665546410720861757153199706995979759353329917372505064486816049949609679374773000327955306918075332921517230038029689140980990521788331879393461159608127619582742301906467448793999634303253179815195836070159185670566150810700060870595284420600098465420874685092968601667863412973563110992708265379470393624641526822810217272807241967271697656028843894568300554294534164012392135315420701601065350887656043290533031294692715051623447108912680862413186054017053267222185606442209863082116278816665418157609492941469386782861251590227801527985421833932244220004116684380397847598196071171170084706782137893652040009945386764621929483571802893674559621041424244155314329563713452082537284998303312739488566458443844824497987423990292254367673878341813929837376576245022443459928334978390281875617152343222944811438732748613231655905629313982172018402806264325896507657260294702380815947313599449990622920381745017126438114562795003055449099433550659772746815275357865999835304068532916573003021746907919317513373475544333645154442229330737446183713140889653197894110551002906726896154547791765496672481184445919169714317585825501318169740323162225736226969722559608692811781371304106707056567175919537495235925140691643796331481973938659281873649164455532821150220902411120844789869931863583747413684272053386590545540807384558463119229811583544706674798382530470588961337665031686808978507805259256520389178888676338826936601263433022614152630987027503406859437801537417123985503578428350326059300685362285649058081633655879697327381949352118220302607457594074758374287143313360328182804563198527963089191061528983525048911578500147180152365340702944438656718519643003655961716223993568392286550731791946214794856960410739474290176615491102266730244256929070069950676377447404142707975294776418462000479437180587336918636094636165411825134722276469788111293517370950682333644698695064431380658835699204722419676135996669189942203475814343633990240141091132920678334206565323408531113058138325023991441081405787405003138604110960157870295242299064000148552029381165924187164572240155014901886698634222746944469802194430632693812959878523819162962475308195445108830566602309793997015149607810700110729757296865939893151625858112376039558177732049749474514463293354078197256101967669269222561815624739621898696731584050964402683173147842353110360874101555095132943583821445449063906195582821788511763895840022347786021862605526948694568248584862576437966620458309189099929702671436547638494988049660106998842157306348041984568442653519860394154948808834379158999123255597147465780105120177716053730665968226277110738553168362001290059604216377292012010336578778904080866738236625599287721676794881787637637104531393725310406086732130902352006439583914029454342061012090257786721566630949302694659937625595893673376260666539274158991409601061741430009578301396491908603021870739683336711974084752957453568868906915692463045554676059969462760794626819624049491595254826342005236807410959655875312812568589928766145280438036640227121868779683763863546989223434030769675884100350683390411775133281971629196362431518376588649044706580934705862212700961855444045577111436965746279786480354823072920632890561804838635901790358552141795812480251774414560921773780653094425164574281042531217355084425475942701733223450396892708696707736105778082471887578478885108719048546853848386994072424195976381092284502565804842498470621476869596436438572933429079520536741683616455002638258873782249915571532461687870277908356775091000646364777362441247539806716201063431795005507604097019667752230484477870769558000386382194154607626950362659835598925204450273601289479428752054312036856322243576203599183071241847972893546974836750976842465877280653454511676753985844649781344160468332278952245122774701627556271312156364024741486036337810559921498357555222539042330738781526955523371464286201261029617566281198102490648540354696824501260799367497055318098707407965092999844165986639059875031780531977399799210067124715603528733174957582288237947104646277388676388222238792489855816192609398575416081920733994661461963963562023443305867143891602461599188845449020498461114925954082254849059480259897685138572035146571239026884570050587560033216984696477147255807865453305879271347439083139452394625167952771063553963783061489060377572919703636504621588953620610075225310814825340576885638274224576248624783431619920024382704899043976308644501875445233978844695713220346042753953840158074528896790682612283920301616587799468549206378555945151124096394784779514706814340251929244719943760164004614616875736309434621031305437721417226218710986452135207529308942003854783450940455683799255894716613898948851448818147277866974012841569872093398740477467524095039217030610214418980124490371424740613572369705968169579339319754795289897262649799190841869335156884383637061497161317180933037926621104630478423141793732571657092605180393027363047018280323181011891424979969222943024252655933863179761151171093445074951887898950509483778781839395370925805403380450278298967241438789042181150884399311032111225907066755900816943893340739405639714613879175725093847495375898074904542985129636050186814961635341022991727752616820478546402706746149978615305156119608732604168439340584228898110526872163861282055226255357085245110395540402437672761980323115942634992876940290302457540848867190704835454991700952805410302339105993645967058613786656334876399967745072421737380406789691469003791433575928228918146529280280747294500070071980891159026275668521289481758593476120019741346380850105466467273176633309972393105956128072829508437055024920815430906700370103153706286665596353329916988418423147254480325880252762747440795103816951607088261895475545647853332074129421901023480349509797817276880454092981329272150792938611337540372316244038297586634094150062291071697907594745321276842267594412101465495400938234019087249852886790688823786723799808784142277053470775214717602328051031043160408262473275921444108271254857387815669672720951905814609715699330077966473255505572387706727395694459260730785481656133483076675569900822085020870671131582659977072745098707499549218421582065554366613648408819637673140867238044795890436619854843724213262628365498305251771433382414446960356212267405573869512234123518297320848159436358001661469057393522853640177436316082131902307295236468845232673542960281997770465140909084270212895638514736734326953984065673188331158238537333324460532817946402166144108940328829480995361555799145538307415740375237275275923666341652383990545593246630228092377102223182608638782118467882466998063315303878172908923361050008915741442763050721929838620701467104686050701080815345039823899640766371100912840588333094797593543488743445290446944504939387388026465932058598631046432867991826801389196976348449808432910555716485208143071567269852340353469996410443720551621274684034758697315825623655488822062171151918639573546808138698869545700799353180793668418568220124302777259726332128942864902514258933847127969438232852506750135627600218256623256286428050754342997714125852202086222712978911867186371216007655902642560289838914240471844005071498204087730870588602998261547823777988598881295726672234059426891067817269350355991714094046267592008382730400543042692941178448998664771364180472171171681298766423760772131303888429932744835962118298459273703643808914207494407589496279204689619983436006784169823475907513995391814168694389384489944381163000083049544420378000788540344737660836041262589068948987371783786262718846497459211077332671872294593893260897881938760798820425039258226639944577451438501898268778476179653862605287266895267468990645846513327191953903837690034805204288488074641112475854463503674596624264012239732368308916576751706857755754062110599029172889528737108796656971547670599771214290435122676244674920172609622079642804929426974426298084337634917990208570787602053914014109341313288633748945205631660229082127402135284055149334019174683721683364336941628252042877674222737103000948984627860136416396734709969866871265750863600299735764315403463917493378317574777485940868384000518525251974611846600112072420232094351530569538441979882398408632175574837995958817870374516713435621127973577324544806912620402314398807283346494792672743703455593341892339197925347244631228919119541571829757766569880315786995854098173463581787882194748896188108653023788164054311253060502006140639576530491651656865787797329576720360623805956471032216818280838045033700880632725519179796000484422041783982291284102401337011338536942086429763844884463095731570096833870071851051181550690267814254720325728886905436952886095206384052529897810807779044822650607446078670249165719147383561935851107239026845044500396239593525389874737489683438743968070479125147011589341818606405529487354555934761850542672290380403858202586770757405181545502733882802516705223406162741996839274022172200315144304415587507742967681588655915335107351108152587898801589383516806931749258339092430439751440791194130628495038619651062720944532761384610925398957330162239113780889483956587182053397438990914835624403579347929903498281178420409105306289965339627991291939354054533757900132976721090450655780331733055074554847755056410083654205753674136909913504985019247575816257336220849780693670031285454160398364280556012587923722454344533936679166997932485272876091764741756345166740713225746338043840981822707289588707881756166689042623674494010752765490319052462335616658334463795986587590045090009755804794053454426373579042075392625731101456854269582278988260728764130276213339148869815804770018211725758637085045351520787326796402259700688343052772607594014872088498184181590758376597036597614180811389757009993137835866006280421146928069337551641448195429763675732946194776712859491415303216892026807402333516308876372189555482793355222101744870504253519644056605908053732363513203102185007866159466385036003118905747280780060970671984829533344052089699016806727915411853581655014726453485085969672589071008619344317454383682089132389569006636666734080544278055515384124469141240082923166820059157244029202522651431347060748342282346327747539569409274491333780478903972584174772491593190945923667838887751228801304475588239375835753185216254391061249086929063332143582862149246110638897736080476659425930218868715815483510938885425446155817436633628028533301705477322742978559455722905613186471508257029891160794167622878008272693778164178547532401689452622476484336272558186370233737471723926817523808052329050761523494439438348270776407467414912902207837936664422070603828575443113707040928367519369949286772089197160581359370767459692482284564426548798052758202195128863085588610144931228892369957425956782867631720287546105144699965824209163993368219559920040457548276358830673233218392682602463704302445100976391879760623552188325996052766258761009146466491518082557503169013483147494722686539940593002552276720638262043657522758973432858385488737503627481256843114446809279692626390728554100392139833611504016729991547020663778331078535525646344963810484141434041053310196485999388749363518550297015940930715875473347075247789093752220083538823732801433588881259256641437460389925192087524330408748057887826487655839475307226670653971295684238865650518556598076086424616901036836118133036579158084066105611991463868283228299269796254314486827188031000680404900642478047848938212585522376683180513155258197830465148305502768591157908143028092592096318704778824780960303918587890326181534399182506082146351622008235605175872857354790196404271599173510327704009928720023337515343980500540941593914257436162307199887978122819911262598338474412187515836769829946170334450406211180367540856099371192881217050521463068022107536914051067000777828323785385587703603867168976708916036106663996821839466099876214665511657239514842951803911163407855878248809660565940967945249409907737384584631304273080435763358352423379992623332273054766155737970029344699202017058281879182648395994472033613300676818076200442572888804336980181197738397439796380411489671869959836555207008083617565750158417134407965169309093801102452993966104950617468664829873724034710458832503509253573818809612904586637706725157831968738955904510329679673894483163724661053743186947980241673606358759736893031629809192511182351302640275647753483841434089523633368381203486021659673887571687929486191763045133722028990316863526200317304934053790682573363467514322701920235460974298904715034765524819866425333037351613636882988569010091898011123299865346988944341760955520248682178937343767628856896665029746457230048735666768117095812027934336185117746624549010070213075414681232189663807799621290912767840669796141841246041833521932484144617680364054597597399156880844504585836665610490921768496446463043995400683593951279637200631478259678112388032919013640047248321681133357308553228108320201390305653898308466107967931742315945174239870112582418203930922549599638159292754713402958521288539931995431705431519299235074895934591772830221157378434432987509816858592320165046470212026164588954583564811018713525163080470199392492892255044333537639205703356847270399932179809049460198851892387925544826014901044695549796532251931330916572661223525276436356872947591554961715809277204985717750335340080438665533074006016661453135410442990275945721759540182431044377505265111887557891329071417295580695596493371379868875155046990360042471822094824151072426465168144688614107547838695620412300469766849674858961897937185767761433648493198903176190701397924380601465022650402122211637286572705009874610651499245003592284770897454343356408748156142366069567933501708807252573326426516049554059637621550829104647436391325786442882770481571276140266588214529323259368877303077991031848947793454777665060735676197748152254341236858387824323898472278644981589266968601335169874450509391698861460365566542743174084189471716557836157618215992326467740680584777775551288552205173979747670063998699832218357737645676905410143566225739979043885037161457920415557918720759743134644518367109589858533004194079480944950028225705211137650505520297921432321558679093898017514453710933085849121331662656767508588783183816115041662214959238973575456763644938571075394318681265413418028136709338054661864997655476941275323831020385402210486859912485207143282431524466903959669422456933527518843726319252582059003486390394196764044887311083910588716636967696872664489281920546824786408790148322395481062828565646858717709526239067356333107427874323227340036332731763208374372946497260787561302175631961222404063805328550451374552788318168801295995392221625080331725902080298696147489378396098274658873300441774274708157790258949611890588015257509358809490778877478205994971076156205934242092487858293243156299009485748215034515370525906585304929628290229781317576837170993392777035522716194508247097942671398071127972816280018277692071788774356525025988943650086698521294022886035056066512066269897410695151239557027873776038879333649475907898440254144021295153011554919905718478779577444715133695664048277385294790039603982346919562034475730553033639596140359173871319046202788045756430342337596018665360724791484344702212273736555710549989088814731385750653795603408563984296430588926705300751021878763058374394310382946564636446083692372847576097693645509564024190288803480619582305191232291105788996758716565722393098575911084873272831907400538001362493735591425430409818027245692874428864638667576721495944623610664579746522534898040598662584621182937347403246045776968418201857431904587928833657642436741853854952580467339948438356767129216934251107832141048251827911994557138470544293956072406225134641411201717189260297798115576730531751642083805733238251741010570650034750410236192103681225851627447866569759553976786685975982164405858775511590998712202592695967880026954408199444471532183305057225363340023611181092334549948477587180458232525502318845729004234457798541108319767659453644805208884779686816190813189827962340232982059470331174832780631715819740749616209592529088572912007483787180926422037645914501879662421863232424877400033807288699232508421443348129549267444968267138872555466271069006534148440368794573881886650149150849985789080638911383297659746820018775501038083931839217949544810390239893583562691967604298246098268973212070137003582753645474792841904728511343065837496577759508849758994099572069260361790020127237870249108960855049878565492236414266192691465485811006322703587265298037439248291714326213270306869413866792698690048570017790201321062428945871747238648503118985759538199289187828205952475987370571898122016580909746488801482449810013791355744615194745905948307793771320853851226558990972552594241930147886494312193094065247970637231610176969916669210074958503628574066804363636147529941983623194751819786105646079161848509377099894125510279054880451500945851794778915174848590775907747440270403472919883758462079705452274235248054718685992119342740814072668906625672762416211530604323478142828055650413930576175039286186365905112496306746310668507161180761785429666250556309168518587765405364238991936027123767493083920463890426420656606674284459398190940696644567063533695789809467492142981768128534373834917710783664667823839842825233619123774372526287879479691030967891705302583419379001212935865861133533672908511410325410054700746945734626642733050875353420921610289449341306611534752974218757876656855141160600353155671924610394974015366364653246336096523703024786903570397844294536459201619776642370368909843506641800937908156838830599372438722056333563237951887088395427054977433997571668604416879128322472430678342974829839540898779787155246387004608273748023703160502594406221788611411888679982721346994155320248316940890141341034910465571964025851086021528001494146442445002852544083502390515510037106618651049577277955855687471349890185364931216543202245723324255114154321578724675452467183037658864886075759030097938577798563710280052918015257581490776933699283680286262224265662268999128604295860326656656194796951355938804175493536406491942357205944413105402270818603446229663235346297191445096560660282112007942309572502153217512752647208592937038399062415200757812047000206029994393505973501670577030802622984749370486154872811186782986314080423629251838738491783119618316831268543756159888333039621373943322977908802065737549856979783294861344294760169700109872645170920118839561002199790071410334072707879379897428746469866316669893703053769464016058804540158717565668531671230408475996556111902488676977298826301908122315503571795202176116856949817943018401537860072684714195450447411176996174294780036497078616342356457106514877996923834880693079843908781731373688942135730995619099313030872432125871056621313579244159560518855106318172534006622359967838522910360507758345079990185963007749689999137683032799392830641462387032100936913011969566440025519686822147820677944202324107254352616307751190397310389866909708945306745725352933710867128621419710971173942201228200393937105908040101266973252237405249340421611512757126450721877138182469599565540159235844801047728512983561587631913893444670287122893540841149986034624206614827067345654232938664601745791716587894254140364866662143858156343127998021812880348558894133061568999779320245276094530589438388758204974980845335154759435907718727826985908581731609256801510667460300894784800467806716191844715475880371332542587311966045939947290959490756395088651370202331864759905064727661889607749693390453888542301746786734818755116837965179819595343569840517708507561962473633352052262353221210698802892109869792929778624725559327949418696167216808395039267990178007416652123652147223277518049456510592268976734415371023603825566872854421376507238270003396129463893790639267472874805406570316860351457771292592067337895718020267837421812234495776327696081700156694553687485660855221908137392379021778322887323318006759602115309635331643645267827181038471163657514557056712652238989598176752257448924385969827796679430732661557886608132156831671960115804551448213875904285465455329310716772846263799855244321400996111048016560826663378764766394605601156553114092497986676296939960259874519863415619272744558009220572486866367944606702986545885462602633335381215029513829715636138540320266315729395202565241675627630583202686571496115502568007576332792970987863287371500105305197923458429208997396972543622002370514689466606300162031522817701053688676077014095319801045669663206126943866883342740111139544079622487044534029187637614483244797688661046100029393143346188201045001554147337994117944527379057034518474102340857986724792893568651966246137091984812335138673977360370523796506317571536130722606165503714306503921739559232122881700020783046332880369862951538683113979101364922667059976369309893694922369636846669951396825806821318282759633377645560319590118763401169099036255604565270876983513861089258356774243096946007472131796549211759621188175361290380785170190825566363529765751210657841520395802614102058291773197095386792646018955070697640992060562765619624742012635706023243601757425222907522649394639444532608069641648625299763338959309391934089558178341528863032684212282111574189862500456682611050835106850442777333193723394361016858923206556085931648923480858452746433860767015013996508031524743488661332370519793337634960061158178106625706978301977789008883291986630319972950296184944698367673536563785496135738698081320303867689103716165113053512251667200706547794523165741679751567374264153763010026037673452632584657902789797149900204322964355738473817105194747441994975279819543770688406007041097129207896893887557535492571311650967383088741555933182598980101748913065631490825734638930664135037147162719729928906705924670855966354306664759204545253496548832549688754607900135826296153505737926699230410885438671851546663966334027821544200624712373652739491798040334438795614643178731092411420388816533989366161488961566217325800340329086460443176867997567725018437157092385116546063156594030926875347478140684596231582190481579422781182985166581831831915067252682006725817756973750172949254826583908319560294185599091107907029717472056898813550073680964364616817717199285184193570197686613396416382126835895935218040256428103107084524158643781745948303570315400866395035063657679030192007971513950012194120283846920238745638256295486646086602603092036946167003486986627410584081045341823700753949155068989789956595552445369981249406815030480895284298927392830109690838634582360943427840534420013360693202786671072916548533309022207232181363683379981105259136298179778180422279584914485985576672088808680047839968055728125344455641873259010832451101683672006281103792742871460621405197933358949486663179111284438640088992730762342106720508459074339949147280423541256086508134898519218359239622852426352689452326230746794719378465705150097461840230559406510794296850814191804529465287717516192881741982078373789981047129850738429875157886102474475962064742057313533326961727382716351638610135170490729431454364708609430735323689534723047821199834434355639260541941708386232115671773201861481605572683454350934701641420650201996662285663765375936601381144361723150699238943904481979783244288303325905697254959063352225932117097596905821236956030317739452451553089701886029754304219125893233600456506590445100885779816661170867856140811768549191178329797872690787528521436601736000278154392226797896521200824348637342424314419502666445598858426639222873800693301739038057310308822959424743250211629119244850754551576820983409891552961826640428845710412197845048847383399902047681177102649170149346662848893626693858316811273169862890216053232563698301293263638476655423531964383608658421469458615380254414383414895413453541304105024758310215729534858278626895658799177400093938714489127863938013238099907367600135643133649268732053804552250845221238923608075411698665133920677253176363724671683508542623412388856150903602564101301138912543297313040394801079125936046500402279302064761520362118130258487156034091109442279508058752702667361982207968051856217365180374474400116649979579567978948387167439819909540740696025466527029576979783811882178497174660502036451629584828552119333608580037833298041003324232509028905620146559792178909221447506379585827128702029219082730262420399303635532854878669450853276929053390916433675276863274145427497175189037070034196479455275527098556039405341959501059477065889996329184999463081287748252123305691065689807324720516978272005999022373917450658461297036692847639638998134936822897660940663534658206145645489479673820382038635249911119606089528339872745313279041644155521555354656187764279211719789405193428458843279886730764796644289769072860804280757079129883726665885150292493740117156254211075227144587790183349814600847477487352594596685108598745726870446421060345733138854231058506106228919632980372068035690056740626498626135292236387740886315107323817566136701627754583493806938286080082477172668261804180674846560094509010404424738556447159594211523562035265480305767209535613751965963685872552779772640141287667172249133788647516592723589219732302927109906166463098831692417190080059042445798693609312180445180291861586456227839515602766134896380324034842531152863827099535112097225754610997529971044333675616880380468180804437477709334634879464903265823049324252700517145474575747177118709422382321722676979343023438167315623379376925357539390209528594267543809621785361462361901209777548692615816009875506560051469585014351365274773011654149951281753433956491452942556260994176253573853026881131691791185025592438677289148891113354648502301709025210653377415552635825414001605170370141446272994321031955963791443503555933474472922691717208260454190082017993138801271336077592585933780027304052382772349118501330043823500368954529588611432106845837354329804567793561332692517741630228389706138485776363648672803423634301915962421210979104041160826013354568385241178128375798982606336525113147144519673128622026443241008116030203246102149894240276634772473915832771017303329068722861357163013238793015456072718631261426327308005334398683881628762942253842459388674402368530915450627025500995898996701899053933609774981895907178814098992734039782482269319928241877434621105402573044439519983036210689431962881264540734850525744782902953614539910281303404211529697045461257995846929020377901031444462983940279741443389201296244863555701310106062384628808805032614950852959943363055089908102978780235752998971738241845393293702981421964581258194778606562971951851448904452124003990747002414566380073694239880511527671825233834955725679517170966564928038498089726114441701854950028333465142771006633960670451307969569797592540600001491264014554503387468776266532639844093930159024579558890244329650076750976628054954375486411305750959966279721700439024297955586862160383211022483199338001290582896807239238575361356056879067296664760660460304797935637941884702220188135673482485708667708118368859334578903546777986376708455457062811254712324641529934746285756739607384627575236114864772828237979718926197805789242007570863029430499912364130751600277857382172772521568737899136983377081340583962617658538158823606924938640383249071998623217288422387509816481407720095631498850319324006587500480780397334811794685431560249192158669062683082592840128652370376655028626677145665898104830441631845153560086913307098756288538029627663856526009235489199325523853382393268742059862764236100251773099560594357184462565955331759200007827011133908669278963793755081554128946532499265026902181921624972103681035010442624602997937325132421536603555052687709083850465915887906698145338647502619479412489849554298532592999791759051640022613515354013655618694206792235160810841923880506711090997290650607577281192132792803412649475002384357422761056217996898988425003020072416045267440749391945932016532291425910368247308592541599708797597308233976898575595099015190053240085725356350331420296481409609162718988091622915525577780495434147209856042751752112905333982816540744623491355987400834985723748454830371712175366303306242499196816503110552725906700495624401592945303850413013264448805549884609409881804809284357790795237152285132660818429244344122345814899787300523090349974726408870453969993266465307917999912250091928099332138057715809238353732336151220095935545858701195501202213775449794645142395382382282721767614093543283393222644560208485466999222623673969135041296153564234437891552326934449083105284772179031186313354229965743361362378103592529055688100524209330468243180173845611614617266016294156806300932616579692317612292817419472178640723836352208525981536194822798764718454800147172275766665645869044989860644919109125237596260305634257456615230945247528457201702821706923872724804630579124114046769145732632921723928043960615969556655344409434039447563599342082892989778054553600191562650424792926158268017891136049523102182560358522646209443055800120363387550719018293708328623559268102849656571010341836248499497991880358661854090554912256627797939943119131876404815025985033867586003362848953708271424508619680683237941774237130351212374288808187244008053453195371478118684806451586366060194748206205688010510120811326121230906889600005672321714219540009064670738418373342019683649458191291561961001939222771884374622277204091310446615406378904751148498328275711388614943934999652076615989491478367371195921916892038177272795973234313404022976481475970796838423840980182442586910562629768253478399145057470180877311082922226199931892720582858300515311391972520882173736563039890985133060221917015185116602968662101592712804687169792608706676224633897068543760732637148117709242014229053275626989144557833473079417982714004619332178353777203404084883920428390620349190348775835374168255880021503666142534226461584704432358939573996269524779385814028927621699962688630911751574845115940253447541225189803988900000158443128012162544958596373897958364510427925178651544915170714737773664652475183345796174311955040080116060947076007862352060530435376292853426864591964684233121688804719804430436379447947063543352921669096538602624096412194088301747499266642827678875986282443000353054520400222260765501324378760001633518067822030281034442486744098136749873371334118743764259035428304990284862964041153045238900732935452613652510621928506364421362597161550304545619989895877669348788109823295199331605333643681840393183327169011425940957104860954118335103196628915061778952431123851883965872363348375334698298905535394766476974815025724483730076308424612527263032257194100223790417282398034309784535134220594380438088856837867081675814275453393147358135636081649272411070345249663269401925971155888032005366486317922594611581413312658586693229792636310220625535308178329376403954076091893366782158955596637898308305602222471748158426156729509206527250527302373966867025081050922290842521372092825158413269985413019708127572332631095258493350040176880526162453643092942039889435262691530363951862590427979841537579644741267502376595278226182062890774584253157975261171603499078299276851122139693636150281063935347216723316402910710174307430042558341652162903861078997828186027741119690000326444760748347207533595577571611767187567811844296345334893482341816196194129341393774502800897614476075535464188059260462078913910262194159764205042261717868867011452304947788910765617673372728654813971707974432249709441001563256410371811145672775491391462534109526640940703868980959890036256942518896192182318703561353869957172545146428801014994717217695781606309260198449646198204631676871237848855521630117723797070068546798864821177403516209113182054113285584710253544529082896284085342248383503437974947023104686863996704501382802939099432463516784151273454296778728890358428027572952474309194936921087106523458080048354494656578919979861951546734043304810137409950929683745491528253757439936668969105127796268543718036424141946535294225276624728513591547365034947039743813281078056392339786351033775617939442076855516693285924676420969561069389637976547214156576429198269172791820901336626500935055714034318219037993643562466216974688021283671152111923274938695407988377045507311398294432824161870102170684533339978143741698879009433103859095078095486175964633750319627725099135533362905328326738049150975205152812552411185097132780666457444718486381390058014356374489486713827781741561245796878479026240171210686587401494014200454437575045410091603909882664944886267514291480111867529948957793803792140260837462274819633774839738065397663450593316012306854106648492147321370789335247733644624223173050249557646172795280513996645959997799659593704744762388105206598794137595742950786936743601743656279074990313700547213605704654427541560834041136932649645340236839441991084429686360067902555976184410098352080883464236104074672635473408098952418697629936353985506398573426132739346773476374685736644859201826751036327184701233520219944138040446068260606214745003980383584231620819529454637492843203233204738289507809537114882456650999557974361290201140979265925049865772783065174650817221536321214654744377608081650408631399698284651649800960251050334531841655593717510691364069801763708699397448637709098035318376470243879946262985361572604262227403497965798731259701333602145764052529091881025135645715790629136184459123088394238573201173814297096746311448659739994142901967090101362266478256995975174880726245676405520543191852767365413327766658687098013430707549241980479018201806739846009003685375046023625884947057107172712088759087662806209465357991631736304467278603414896051406709869465970580977861223525136258805893595206841786432607228629295118896741295110494914688300217516003616157032676066619841994939842736279136412437188650269793941282538378690674200777968178143280202154230930375083181122208056941595325442150134875926374594134106857450598668830289002926570119409684788420052802570157304649185905432022839588322590059900423627481318097124590146422178393187393610944886865857833887738018485813176569732702657755195821364471042623237964942213754490913025328665941106787776209299843172065274437416782888518814426996353327035521364367290848098236055540631733365127962599947949985978541075606525896109487037422615575976139754718346517038561817830668674893207308544973547632574012988188247366620234811655276459236822055062509648566370741792960557596550045211182452073189402805005575596214476102058933353674214309608372423382227825021069355843444757114138783076176591109900833020119493224123703589793364085575837447119413289215966241140338154089051538917225096587296377995621744934829370495112539908712594397471249540870964584859727903011477194343788907035111941344036266416890719882387042914195324614569864242643070542976450821398043691380651397637487306392330345848443129375165660714844431085323288218708800635038881734635857901375677506438276431857532077419139152473313823017767491221015624146840041136002068225772874880779346465627378942682192208809585961190278579928357539273815590912334544890664389121425984745658454110754618965274395569972913544039739743516864161399567299359100761768391052949396325715175703766840535769608434281726806078048970118464591350581541261692856505613290214840475023845939676774115448271015933232452318935804172402488024511896480048452102471864857924788277359902343029724295214090979401595916594870238502784924821871029954943209917526793726977712122625894383615062482102683379811498244945959150776813317928390996408181049664062926344813822585126991810682661544383760812537094402506103396450774989867746911400448574428585613604684596403436781655252057430549979316425004523077015930709330281233069154007038461180832294382513382078813939374274588716410348312794823333272604025320963747698068781495283743619559266445663473420547380458697250118497483687432232345675877099989235744595573522988283781317665670132527901157755764155676497659411625886534868078501573240238536382232570437955899852370387029054116376242603430573890848306037328422640483968494166611378386000164747988569762523485953651985331595229475663266039083144997370187210469019361596518486962234453465776541517558922951981239527903069510459103844460711087672634229467448442180043625517989617111705058212513151204416627228072088733890269089795026962236842556700897023598954706196176629778092374837971709751807419256680772267979630602168223670573235678871132725475007003787145446831527305280815397475105821546888238818341024467856850872528857964410745957676291862778049376606425535931467143197264533248747002233010190460977968180899157222257023342372910139623853443143311683132352280031944114942744610829031397070940943008563814798291739236507866003102369477858218575180606355441006819853287105378842297810641013667251636306923532758321919800256961981988733977080490143896729283426153085313959089591289041900612447181239256335452366125931147178858731560569669314201783560707205657401129915674988214260132542043224425000614287641948224182217480925525077346315094389774195818664755542839906832979651905735316168855678557497487240085885909873085405144210918913700376551186679839645391534377864744594771758422902835841366385973048837128730542011857621540794832957393609509826401582788547741882802085544988314640342166588583678353830323403832960566524842147647669467794392774574267243385971190789260818138606003535412131407033130894465625184954223013871848042396072957133279826561724617646761202185180072503703642211635381164219271569687232863461402088275822547868062224742889104954575724324369034214769922669532961956712036233579659700237913325884526960292406162459050432732901999101918106734731866939282466081217498945407551148991691158553348251738701135122077302580325623180318198505274852580839388553740447547726184629162852487186856144594656398013074434144712468178614810046009490178986561480811870828388627677180144626979503558280447294415964294968985556814807242205058105104882012996824880288477234899191928236680741807986905120376668778076189073812540908479359230135611344955567049984970681802991469541709971599935262323184816843573157795164179950219833317668423985885386697534654650820150236601951699478806156862389805429926514586024808712867128389619526633607689435963475074292050672180506081154989873472956939298869997923247767369565653530510287590691778579751462945886459293813118958253805846973118648072378394185503276872511417335605163839732267100430889198600293184003480072644753371761314090363985955268482920190858854449694810181075575133460625857454017333580256253735018342798670448410832696382955856584887221295972361271011269899258079147697177050891865575423888695493393049052573613525137353151722011851321156882946268986500505125801071548112360454015972595655865444557376326906391508604858925973992331829510456209870510463839847032729432173722917287566277286430287599999149790264859066417345871411007015318378777924475955135748785798562226921543428923291888411400136005324092440990133547253445421945738731821507947642924152780567589315377712730988420950988201444511059968351935851050636752111257785396251329441643470587778060611366103584583948118465031533759619020457737432957429492601349284117887381922410554997812645260001781620523249041727282319811250711120940965438219217211179688157465097934229302936376296932182742812106003265093616540331914713049785720281107732162100852877813519360723072093434599361341562018509710468446833935340623258861626811388693652662705129736250041053626399229998574441376370194779339362999454995217267891331699444711132650128251714435995148905308774815481482733771424974588290362032176405780136897598099318427500673584466654563247446821006294314837985324160493753147015881666232580967272301419856221370177884385984284125552766292637172470617997073597808765715523850050390598085664459038600581723318569869859139845983234988976558029127281106220400161290277228240401228702789144381335812975389253908205161710634014085596095183994643843566686900840898823858009707325365476402262044671905166762063910148535411170278500985396656172600436861532709062674838621326407514349242482223000692432461408997113273457095989011995859654333299828564919643654851273949206015305952489106328430694366746243761167189431917125927474651944990216942836467081436287193279565227433988318510156655695665762058944175465714516505593653647328439771695814412780739400031685068271058638952068814748691429440283192659751939723920879410222286281689292548695610045185161891970290835280824255600096873783535155657391882527987623540820879390461161943804828233861934165720116065620757585669780226444373734523683081223981323272330882403607487978005638433360522077298530167800690963711531051410945003643629760622604362030771626757765318238156210942724881519717577908959233999478830089659317098630902490311596414599843070190630814435685192553215753824531148751663251100024867863856646737340007310627042440437044377977530747473210969768544744484397877868813412887845871138201330033534703709708343347427761733600461305728354846971333676845373900598198239192483626157703400852428820487225672298401685435664525428781548975392907320954060832199740467360377280068474676413005329366826732127042976342151986184124575103224550386772750940363574354153691477031299905828958884814662180775948071654972922911784699563252222675684230733277593962552566837308709030016489752553001366439139642435568709113384898461563517157876323422824711210054666437582350047733436318703405979783745291037721086035573167893503162193273637657688495205188665055945449453110681614705552188109225659650335225283554596284015576386343555757364096129304349377133165927333892909640415824993245313851799908117905482704408939321663581716411606909794951118366824570089963364319134813519588549376438890797127153476527544802905208808330735823851642838028280585625239628471653014358013558015673154199508442690070679279233703936586008334837374694917464070496289825758010103670127390997044596295562949322345312394900315477046172018658949432996438942682927355308507874126417897951159948252478684498959157567981740750245923196540730787190977705503330554748953315826322480775520718178063971251109115754570109533564436385900485836283941821608662073328248680539233879070467894158761772506702462573181239578642182768759157879930724760844562487487269282406474203435544199597562266679583202019919572010572186300305738588222791089708226596059692106095686898636390459150739314670282010381214423517873444295663966782890079587688519977253204025085669084465850765285510020842079036674124508473394070845570052524676952771325765130654966888622030194671244884314493356903444940179489835726242288950841473102515733970839023256586342293801599306926000538338470961367091357700758323104397417242415930242269271510621905492263615719880649511774423369232788662210423113022549286572471788411683214949088687671866145557209230232169106358683567240016393993415974259293116608479379796416441271538025691331704953996737259105466911750650675285567228935351753324966058532925188192747073557542521506386691842691439269012296912323629139470764252568027705952981126713579879327024110995446910335915326075879711945397207382681889987414314534050371281999978878360397435921896847311508952646683327080742886692751875712612129017440431989315413786503026530591010253387518602521830570980845936936123331363186869233154103071179216249066892803680279100465813344545431302428046511212314684388257676875559914475489623410179963537670348139148375697145371418826277379807591319429233731681918136688984575412797026778540083599788063370053546419316518102585144711950808231974010340478386443718186833366161781415751468684521533502845985013650685409139621768801499200701357664022546332382609861072328101814405484738801194729384651787990731659891237425455363635072488117746111346750476922541649936504844531438782947630722031360869413449071118859714892841285402301301504835052411021815790948815376547287501236936624552672400980545923416732653566541878411810023316239738205428012233234717899899754830881880472863830527608008240905394871498838685697790476063108682035986179165580943527539872783220144617279706626231841138773150096789568141207788380930990739548484207714578234376942467227407314887098328279180721621410303027766430899591106151338944965723836890545646012744156062685431728251067494793976658849669504016978507883975631882157435879642805472619696462132152407552890523910828450428195316298995298647987926555930608376770432215603154041574498726962103910125991045191555500688413561454254317736545796987847138940771773884441530473983773161404859645194120245242915654612947425076439400838130233286131873074846709516608022481535146017415156367789697530343289475365205627223586785819094545601836607664252067971962141731693439559412625760264366289691989528095829219844158199755958942408517942657023311310336497128907059610449641120780702315842749507381762117095691455697884207308889057470130782304798524721133210177110133410166353551777534909866407578645566867628884564688422597619812770997332725311469737368769781760948824556821647154906776575598056089557697860295425738544365963103944782836213637960920830771163212579764890077972730362546834180895326569833739626801085788875078283729733968306768813396210050603227272447028963875119860814381638396398815342661194656851395241373353550553095645164750774972511855443068202402352789108016980280888096534180976758395253110820798278117905213957611315699549325087636387571317735656991069922404040110207030232743571091015959848770356074901093213518143175171398015266609552415111825539430112996552260420887911137071205244969851682647411753044337296682556662120846436452947385229281208538792096582406418584990675447339655810193737824862007162950374801084541868870506516515529218078452423475121629540837023514580368394249182327735598679484631678570577079616584461120708303954682155719492274971196177301275484224094579508174895785847951202930591900007717682944027694285072162304191775800475067327457632296174672665953616762055210849541011682058362536916511674456886034678985045324452688390241486892808036042620523983560546252519167534928351404194257138902519430064023651977298225390565748473871993437462962232104907762524632163176290641859386705170281793389100979516003961007043167134287023550836143378910147300737709223649106595443601656230572819089186663994426360633898963365799339420202314205218148571382148422608070639946064156066982405520371171845326717600973863414165758585499219984847903927534584760146177952459292239723441199951312276084344104750019606471582865632031734454240880378618445920558647541952423778811657329241697633808523414874098939934332102497158722498698357113965441162696401719805263622180733058112380241587866512278990954726044337763924302360322646332047548707235280285832082310700864202410247205944626849052518806878087400155067030726753491347571486801903616892393461742822999413254846528365668050482015445041819625766003043371869581611086783761334335597748759094744856691618755001264571808474771885268561973951293113113391808821050499826596167735925073027405828148748324594511884047830483603581919766479905953528572415448530197158340613249846006362442324487924047028813858198614254393174412376538108833678625998433281180050924705612061738469562282769315332329228204034942827132404153094306357317859403154903062905091381056652617498559742857345904997890408501910337613782558710577876352536503988234336196364279038825279148261428284895129871479646921068015444532430625439694860654508160745225396302082800058181295735086572152695418640797175216693918088078482429603705394483325080978109739692979140429092205101050479165177842243093787643556141255231025332382433254403613780207923486396868606325722707573714124038722964821039997769246233898502229822934266562371870763907899031509399376124605609453240686444803267738348370376442818861765562150477372849234797506207320156085085505090313987031743192362335137269478019057910880975353440024280052152532896451416133720571780428414392980163263189491885442525572351132786116594337930678295848195903758145890840093450221564912454275726496350648247575044594972845921068226870303127516022571944471772011543183302003822679274868453744246846110441985918992797748496427093742097329892312465123077409929573381439846786891486853979917826883245496646904871188310972098024002349901644248523240604051652884888456146903149684083883579771530658404931082488294460032187491478284465456035562225700227130717144858378446692499262458228013798009361828335501294908938347966422010703357415536568878198326128185199211732755674782176392220281184806572236888756860246960748012257058799838032038840515750228078448269567595898855236049767613763229601780073089904552042806956428516455953508802450217874627624505187196087602881839006650519573216549512188721109631799500527061026598097150506656540552396936790025175855354069836077389692976756058618887468333784589690025098394387433340726407541011487899790006515193242851912582553150459093084896679656886621627340239429452232623645258700592625710580038140181122241625708765441304100028572328157086214704981766110179565953465921696956247966259985725329730556700523992697394596705120689699794761900221606499766265664709769164286284538501712870394181820284600118366502809969748311673851099907586211460050382105766286897127727240557685064243578463093120164509630229225419852878997858872583543188175102195500676111082247826514662936047090960713718622475307522407342938493906135476465166385421348163512438566891200593855284770681524232315174302282570748641731358040770413905923649935756238659708645044005517638451938021476211415390022296265357302310174278962887475831623702229202564834883458684421819302163528995267327886423255784932317899667422683956482097789621330561693860655713830736844974910957411238488348677314545853600670860658445479241405531523831111855566614733786624879548873375838599339575797033159576924507392217573677901560832368060397265613470050038114908546079180234745940136787078042737171857707582419292060710209537727384722852137168282161806003652447752757469850745682837470387890447121748224889129635977672006347069863140944213849816301361007434394643013479845874536573914302828011405443826671200971670179888075654255361373304273878831623170179320604590774661849908666475451061028397154336487753687358002826670392468097566012647291037297532883649935731242642486789237555823120373697735094464210111567192447103388133175403169818355132750804983365786303301915639311185329084170534936500585902318772581040937758854675961082206643923568677267015276090254972870574570147305523193001515462875750480816175052350951832535055594281034842970913866681614742256100000057575549759181219896717519545368550033284748879914792958215966727248120141852179212681343330611200373717212935655084083401763891158184692376873212522319379139295100191522813826481585783359127447241627730433698026906676375979385177126045687900678987955473311140664024679010498719685035883557018015916700216497087619084477031261300610413540412117821490413191777234038609675171137880861407922603920991895789884956505951706162215839755982857990077490687986943313997506260656932032837539106950867199451483428707322150550968161127085538540984512583487572011274464956208244877543662184479612378024809846296472208813055127476006103772645784997417743375253356406214530120906960216508834551621475561278256857292540616683086000894940353915002073174625426838921209198426395624642732701458405287249243705935544968784962702277251539232349576249615153678037070337522073832710771731128828585120253006318774742299612243598905271554204417358842477818216733798944371081065071490982073026736519936356843511196133442117946180120982179297764536847320209122151546074802034922486265109032963955760077915501371731271806186785532731071209474749948773640751063903831692816539793511963334165761286954499911900820348823854434493381048488993357543186544743079370319955325283891476511289773847471874479594702434645426882663588191428121377912344999603099304945487604190864742788784808629841637583000581320201788586235130483929776662810373343929408213755367004385483883161439880139881203932730962583210855624849328341910663702084794888495156284017218042146323813920970527751914661388695724686618014231452469674760492401484287398568226703613469618801898244422912616076200013973469050373000206778402785010193043735514648365617452891093827474671409269533957954732706757212196688436431604283302354903767733806637716198140219010896212053777018317435556251750341425247152237925490733351277675490642573453942396112318019333080161120425648657474531735557186811610562994145923996238941320395555762207873043381478847391211612051601504824952474777766451559027346742254650500741633444817482756697922062879829956800079950990128217560430629902416987445340574174526489591322268715614187873670221624275655841472005437693540387800939869006711952654300253131572776841010638075228089578346604470047290958081281485380067416955587206032841968297072394696818296310025894381463467404380293368557314583990954177419578263833958144040223294352406447072357400307289660440308631672990695056326308088998386127038316042054667880422488475309747002363324937063089618007851301531479302193758256307706577651754453168721267376191910706320573664317017819051388142511333366511280229676424436585592896441074072450518620361646207198988612576849088327158521140321871470050635068137582150452247609913260653302072586286181656907610943727946477508246508540680859410273230000394183617459084040506902927165193392661615048472684377599941227432632887560944786612400586955934474897933438574387086505555348961800032499800312896498527147975741405212784950796523714207818190232062352183679392896152058817835556298216342682281110197049581224788118809028654426400546986718511070806225239098148336639248063818183699038925397700163173295607485830396554509948464296896447260281008727581946697555609382724939494438035511024152264534354551927782531599313648011790444747884691715669671262065108253879779750317283158002261938734474789969305080801713513721897379987129630846783191359755969637555105101197116372846133199710283568332048284803275486256149821267190213865803610332942022195621011935827062161418556901900845875661672928113708922303808690116174221370478846757751690291823793570813686844692698683197523707200817299205539026321732203028642614692471106256795278610283773234681658068864308951149243847447511336200501186621031265824541193102817613034681809017409290955192230984782546696062317581507294859889505039333948114399741157463802505884853376342627166046784131514017807977955666997783585869395752697881181485381740607538733130466533758276163305365265710302731278039978944727811861587457081230860349645362443881174994337846448590644320892976998681393243753179793373341667303077113167705939103353583636508865273859615304237337070132119104763885705777988513945745413608230239173559502620966931051840366545385525573640555278845004314669685238385341362671065172241874659163584060180586835741238060667444573011062596182188788972511871711097715022622391504640492421579058426826006016231445365828617802611705650629999676299135766246127361201093081549080323172671558525078495223649294537866643477033240573337202891618802635689331448357012538594915552570124775581600637665204612999946078253044451082868574266001133821964212692527021840086876004497637753144036069209639974575042714795056216978321896778248983259901774463318418413880958004180919962089559253572281278053551196642515990915208294592961317129849379447777318154739351475559229150906960742251586722678835020436135952410116251190167811308376756227415049087276087606156411777427656827644414440941976000637966024229029243283115773533221816087296668049367283668798485789604296684137566437769310228458032552214489370463562986011701161485437684912572994901245653229697066686343977767597733727833138471628598995526866570357124786640792632132759901572213717259484451200648003677103061546796904766491303868485334253902040904388635571356994653087627543057925202800953687140472128861107605698750875132667145408098628197958566048117417593954582768193827490937769339886011368577598809174209745915379040763551865492264701094705087060355671125987947707666913298055416186249550365366764096788327883387345079432906248826503715132830371056338026805244121983921938139294314488807884363664928075230213787862484178739228745331921507075967640750361718616562830993116600292450796479466404749824528839519471879424310539546661852426452528529740743222895985612647370082726493397526371970604187194355056837765027515422352186226666276161342507179736949431319956194950942228885188692671556717580420462614440460614990753880763457058710133803328779633925589001408799485797205763061108106851200893080116555891882594642244597267169788657780643462434769214220135423687912107128940286389100956036447827297500508167154553064023959119965418494392743158915656799030081055280916400494794152021247266796762406681896607851508344702408708528201973457963552505118559052641582903397113278392013355376634123007413017192820339220298772731466182024923675051607027073448972644732528064366719502584346268595507996217414196457152262388384281220911917828553924913351479164760641534879894912428227377445865519715072682845409484576730970090788156878794836139372967047367456530581574086349074455760927371883270567710235985901082184842444012005192347072783468664303746697610869324053519688682212921244028108411607278538925111403764330084937960003094287417207355737679966617854426279739300179018368548881062848152901010879049045649992328319102611247975740064592227665259763157406723110997746991726479616586525913586658688297514222868249161898141281728312632773796402597533103892886095544807042551211153105136645324255534163182009951292791760220609082424372918698303183424560439960632091732511403568478238621059590318622946786641506829608151176392969568932193143980117327472213379440532320478170013983492238873103881846588795021528654594696926887768358843598762895331738889363370834544027143786275481653585574091765975181973176092800335983789167050342122670823388710686367132609551573674195385777073648376730744287360837382790915110175954526612668685803870456097120000407534955241167173089467184317867975390602741014217451627167403046972332986914490999836560672182845495944995843957188855944580940044120960867393562872616868331970477851802427763149644229663128242576926788973452383133149784547820211939505286484137389021889477747326165730177680915549508755341869850914800944110122870476750116817674568583624013874730673519016563177076056059235427664149085807531554145110212616441600346697232795269814708420698693213537571824175146296987738695810348838230567421206308639110933271618097554476466051691890343141104545460757695336946145169843592791623640925735306446380952831525936389496379121298985118194701020245489774330414849231176588870099493284296967326012558138528427331860064881869323909024069047375256384771523502005509867682575867410822192436997863714517594282119963213744897854424798781834349773003592714718904649977165414338506517716891859576802274840941504681391646954554564919469882842462441055336280432902951048340245080679729522264923119270478850812381379103583211534630701228520676007726721182558619986226931864875766644109355050382874391933002112906492047210004998554662644434012462553380254527267706184072346710689188045464779787021659706352253904707769942165287140850352881292513784700958978220192329103624622818116397320191503863647963515809960998059809198712873204882307775789567849893228028414000168889750506079562485191634445766556980599671694432340113897017900828238236628087303891701505408918445052062254089598548603703862845031791889479067199358576797216726941856305053035232322914353957855448482705107951955059860024303408862801181557443691085277716144011192826877633643671627567748008216075384837736960054987535891897574954271366114723573142534436971760915265158448951721383957044416664443492388102353517194114967742448232199694547634099179612838532859573150110596278150434128037049453094635704053865696741483816225942818480349544211278402558764751779265536224898831222978952973707946723269938926120042622962757031921647778482096025720937496791107327370621506934730856464369135160271102697950766893009782472605492381176051207346238790680747005439375367890853465584724324210890196092547931942448001965198583660910111727861192390239415050219541486653838079543848813683495890969230226028340626962530336919368781204315479423552004304390341688134249604973514223783614975215086072322095174362609631887630539048226257737945834085711184600648544585291516051045961582827845432108797897535954521827441013159349084653512227418253315828948993676522357739973036817706076112752789349070939939667969481670976451995396449768458414360287291946755075174922993683718276966352118075318941738701146583611409357029710673227161793294978350373737781086709368282208841002690349180786873691023001783007960312351912626825336928563985318010607945989688360859785386313127887635180414092229138609928410065076944144682081438591106385508559156984224588614236223524243375624555447857931625348429544767731116877402873654896536649382734777197630941807273513166584386480250266914634082272731994153061587280674559376129260741277008324483822327883502877794650880955512131495233428277434747748620443326787843366424082520712230989835152266489853854108935688980106276945192473028702285451894241772663355893739634139688182960853814852424972395398584686071400547241735761741921734732756256034092825934157601919115616929732180117863722249917741937738032602644840829800150090214353217334761681379783876377212920876876688374025957638699853414124827919204201079175568545120561282982573982125394031100677851263916522588083616209300616760022112553083265173107960078157810006388745704100835161231424469126205956898767779103695315329055499207890820820964436239864552888457666376217454663847056963409164303968414782500194176200014556780845155955976236452953135926842807927766158280552986480595813308525986603450725081168169838611470983966630022194053067899213245869532779075048764542085058181007297421003966811050166491673853051188607053320531547824433575228546874806783095913359178243203119816601971932692498190500204046243000944346799075730591467113420769000428059948523256036588954134600183030721578805713945502528755504663791490060978017324691471847714687913779341012904849111760554154020521431856989710182504437014600797751796614756400576589294874285651707738112217522526750674616117204534227981900048770943051540909474850181790113778776547279924501689244378483415335058790713614971264967828870177751648980878291308322994132621573175578309298826550932878141544075558462349904929981111946597846638642859042811935725727150291577163438066681815393806195901085791243113222475104772921805646288097571993572494475538654985687180581166877659408392947362874168834477387212014817245399222514644849300905288972148405260189012988038761582741832268223503415781070854300356095698397078181376854286474418499865143949432349040904675927502526525276108596939814806787692639829237408886568316744541174838870200205473868750563670721665803914674185278951272878377019820753485531546789564445668975342795882134925033644128089269140258933776795738738183467860760426209603868986420959137574388126154486531450389834733297860191623119909558966099252229201978712914222175163222294974667710392619918043125753948241160581287141493163120792364458632014240089869000557599021033307436065559680003500769451416578065723020822852160415200168285504292339407597157618993161235309904778828700622048660955259884220762117770008453290477635158051218293842811592929671712068924691302106531189474967416006876739324731952852471191135345228812002611425616999226019160850762771351851019359179719442984103174442915930091072703591558558588549285419545542049747941345185517636727842014216522221321558934429572549051356815157136222239652549804362364920670547949191246177320637555040628031782854448367635613537165157697567024730803703542345825492636891412820919466720729944209358711869225257734972221900261674469204545678591349245279732658300328599380824823649949563060858448620964940447377347001776026638307386090411037065137021794341426210348686536377955475989693437878780322890333630009935219126974609658229689549849799655415903332920860169127404010117387639890656901190383067455994814162947268304170146251859554740164274333083850987568619085748954983108503814918410264012732106568015466617119487409210132948322499714210781186558213429101887399086108851824627049735912611446411745505613979438527068334803912506934847173492055149087498923560742325099243627807513992398170579811703089445385255854385582119619029021289167330365406470429613902933462957641468228922287844771599801802622359736739583708494153550655713999052693620346980763218543891499011961460733328175958431654646835413900322304054552975612159427412876695121208752518368054688646198917399193081574255277408901760105750722190898484529309273724061168134062949112745477036278218071786962070281789914079431093145021642265978949218353012257129786301634927138105905390040500604749669155606077836530308448574438484638654103784266049930623056486885555527750252224692645522074994660021440355042057168619512306549276084938037011209778023041708486134448467008560895985434820658184177681899645388187447699116467091269017562442726994519839790301784507894958734047268735811415731000709374763110450030997079077637718671657644486153891566640031648833863672303976133962611677237308050404783138817592571738002047862951980119634686172505407470085405355767144158685328936826641689238774613521878465038297460085594317181675001198514588898218288506439397388645926812875238403291397705855287427423726447841826311656022394187147891348409812441433848907233359915870379913981545286659307614170771404515841085615510326678306220563127077688276667544023571977357458471121347415900425970969908439464237169316331507715630184825706987957466639155607005981770029594681022843708482785728794711308282104814322088288059276411343850373803587850980003936824424688108125403808584473228579228268879886491648841112203690841249437918923723421765754081395813303217284804412558363128102842694486851079714456938167720577317791784587091857693624742258049663004503213193662749804044626720154999330828302905081686086953690648242767672954670610173577834407534380368672723865962076235597793854334546234875007844456491775840565016654991160216141088255924459463354230353710892524292989017725840430037677127312717514198465167705017222427917192537645201821882524228342865757536770419535749446236912104031555549774386430403904773420554504712014948295070390080056522818615308829111462119886258052037511858601122910177970038315348064748329533310550600778197006513691876984605229795796640808032467520061483935123749107168227170118321237213923868021711917647627984230108633910916888613284060091776902949033941724226083557092362376186423501668805771429515327625186364277148983686242376581765029807233484177034309190282693466579022934448611707399206198703147497867725508195318619406241720181923158759269435140771619679051703772271791007442809238077230821239285482203102863426504719381318798478857070833494481521563547221593261216133609396746821806351865897378183938987280507085048578391495889507105148339477832680734604650103180584875014421057106170724961044264036459950513693609065774945605191451356188954611216499971326985729910619907033739803264342238941705796399356923226154842019755091596262109295231767322057836921345162979327497659035303462961937732286068072634281289754675749245158711317571559538432117660455726553628531229932368846970632607123001381737243153762366851915996797338772333585557968399253228780404525614667016900289261985924142669801175700884567902798109787609390650958570091963396965859539115245115263337316832611317293647891739080790138186127130657577021724881920695090406392026126973964907610207959725066932959478945764008219912163193257066896071055877945558770509472955477689380688534533699705404650173742503178367952573834170171155099226685624735954395305628958563266968473704330188803398023402879239535818220808310303904833519327935267391655775862694640940155762399873654938196217750992262369577606986372038492742331838629720405831643217192574829864371623026437040172093253558316176710077361124350422569893552829143526061635279857203493816955311620492444085333589737635857503294247676407158857090632468630106341616729965596128263320766516163897265057671797492416851041903911140958079643222923068328217466763891551363628467560643513074819825220950436913352104833115119195033959872088294069328181061831441563605729236147041222652583230520735084478276987053552953805763175887739297714904212175661584274887572271317087409075121680910381758815506471382633096648626758342712136307465539944860263394334010318294281376233483196359159695345937016750286865028702412212054651477748190430344175827564233837152187114497883144729534520316373293421533995068429425958484741086407515432396255993311196323035414804085894090288957415591204561569701383282837430955007630363857414387365493609040308876343768184242663726336527459940315908082811550109634683018939268208763890176264382732485862135607927893297542422147480019793404718877308622202764979849486832726300091387626359793821435532847700176518628343994636747187167426362564183063949122737237202040735121643842274089026488560603903504027285740932808041100030046618471402348894591363591439614266936031271904388459462295130131033233320979408914223895218624840370918654264967048312054855379347727067016915588489983413749756312893757010148326828717889518881010204713332114962171945539646101899050901628320013468910037750963025519897260623857890723341910985416054324939749155300219724688806371978189210758589211166273434559680312607488935129354372730454943367544183697199663300764772326334874647486249169222974537490996104527431160385280612952529169962389150084921835237657220643881739742415518283607238928803960337389361718085390287760855206013415131225144492086388799339347826348940862612724352389485872269568613277095447411765255651587816846554936333758073227174290440250942675129037759826905326734219733740380994432729543305194612187899040747963048720872665602874954772626801067175012274113350325068612115514235797776859089865272144469732794544162535374021582154832355584055517398228744674407110067244812477956874362449258385403305513218034268302472167796737116127755773164791644117946419585230056046368706455187434280446948565364276738766096625849481200369666808892475398708579673124585551671300432708928386923612504329366978604113781216865370396381428308316836032442984546335660429361148050365136814145038340848381274367118281608637566651935908748584019837937826530478899730513632635502082991517680814484583259093071630494635753527087233425574438556479411141829183157521256355331136659994195008799668144605544382946537883146592794133879873498731168916721024501678085205590603124099601937006481175813546766373697462077221728972837121375783209903248391531147396988444162958350442237449897116796219685194197075064793507102712939515011025067782344884611260343675530025104750755913084221647915987797441342812644013619389928186631083081343165682265090918814731658140071346806074814095323520772536471430279878185366381027916338917819786199659332526814209161407502965600722195976902385842131943485126969825974830671278905044751695653040353672860014066476897898787417210124723668655652312077901896241506638345578690397768719645699305898190371874764404969140225119213865809056371458909995686160200716445053402125601924456634783829281539637788680618948461548537739500049587220670451442175015236182192258882040807490534877998864670521744533203139981101950459644274288979530402593403345972030121503010191889830428319067691907164053012449136981068362643185474320865389203285328386645051150016570588987143706751094900417603682581839378331851260413443914850773314988864378048754855945775511865602069447305633489197184774784205060806108468753306951688117702010675549019510811205215118683923108676495012411761872461575635362275454380317682257882997905142891779352563791572840389705683728263546601208023350038741061681092566666968037368465342373023377011346385881480579388439987338723416766045617679347399809812795599015492319350637522187275581494374915038199652911984154420974617762603855895635596709061878263041262575596742534781723198081820450545540050866265448921491935516635585411115432242747736347938967106273725642957496843878234113855501625479008067487862227807820631844418542497888526458875048749841290867952561467712693366275787433365338458708437072112770691181208194822297294221993816696783461177321197871947036531879027603095463263070926799095882878430411681112855971039628342929822240352455294537549209370572967893719441304321497431450364411284508650956163279574064256942100674616827096747562682076844825735711367780594627557046833616177880870245226119225248195450610192724324780458208060625810854641205649674752905253734692406335300820667247095983649153113859989979046178922892083798199863107526770908494059530003684903260856083902475944817564493489746223924461205930327990036105403227508463261741087874221792428316331780195840751310752417053220527657679891089139048630454497234985239796671289034909954218074682346851274943841619440537184656796921721207290067081595376747527694789706270122739307946027174077300203533425140839609919305612123908878011473195081611565617842154655795572565912162398654878460918453978307321941230989784973936285420789513033920859395890195272835915245667724650696561290801944590031143415555187296983080599752654899670883551529364958383171784457972398453274447342699655913909281845535624011211723666563590083365189902419445624975609277412245293723183351160572927984146146314292017983051343827298646319121972172979633837950090525296528310144436598040769966166361221274459196199313127883197834507204123822130488822650019967261869314179680412852806415007509802768018896701498884349169735766029352896055647412982039136424558880911817601864647946064513220847381566990988363963964062176714693237519660524025467391304882270858509505660933050296069174142447704586749633949119431837581595750744586135275168941294391297776002609402342407248921178707996605129482987652566814165134730866039373545157421647462061977675348563070950418426244303184984946817648868355849637789643506695728776636245752730549850192836257764937411669023676249484555635529740195879284726796708884194891503205105912933309717781027675528817491383322732679692613293922845533628680863231750949318920683232382063945776220236272299831031119746765393067899177836802594253005514765578111716265393441614413319193236769742188941172865679623692237354468720485136171519636689596355449027031953147670445146237795385413799854963338021318922531456092205168519612502678832815227308427709830896055069461284832236432536116538759589578680232415841873376541441578150840313036916713762881965858504380760664817569180068875378663880544368352567736527197379632102573956271320927820459353107348191249936529020752588289086494852805857828662922714102809411756611945043965333126173857216153967927950074892782528094119586324902411950450675944950119769049325333705909278936020028433191133039550405804851619703082677701535802792860671862528089425530265539502547211484428059179289156128590914250090232188700261037060558795612136065413656816746396454830952305559294967033781013778731421850134625227315130796570920793775506272471128457920744247445547011139109914680554286251173241789857122861506533364543032276770835463444576719725659594303711944731863900850701893802060924552465888755434371790633957453469027960926126968445229054089025919162035482079242389859440517979981797007439569536339972938413798320016667551144645932340725093599779472835393458034733776568986419706493552162196443805724011909952460105374753364667009230576220889685715233002357351345638953376699974761849511276856005796620668629834168967452242895895668514869570354093830031177031474923531449381728097469666036768221109334065308998376311077350987000217630498854544400142346687620694931164999649626879512217857134512117561747389649356396968382005098006840161168124615005445328570709158058972951326767634023589521656256401006320393324443509336420001196960745017060505611354546967845008166772957295423418460442868222900530527665689589103397824105881134728073431736556585172447874194749975820705538395282666975531529355107051452216595883203612764672471311207477374829228665611302053726812787683158120167017647083679284473754124878447567684751254676606609058087957360699241856982484979689568372008324685748940954348139236200843917993975019839329335779164209131395105526116286486185916242255314208551035172603600966654070971815007335978874012240601395847839388662126659827658391170193666007327153693426875661681717953316226660886436535537595152121375350534089652392084176213337423270735682238357139020172827748501889200198068474445327752367595656432824365667033942611506380179980640360745099940036902750780067963175725884839547817058145009960993108511778342420148787927662100394658689393531983931072319011382797194972577326842425196930918726914697311551450813195401517744965538772861388544294470407308848966326281106424584509213667963753633717378131286083674635461470393574508058071882312144851900942876060123612480130213884305704858417259169490814863924404691968828906247395644506557344134671719861520903426126379169147549335614918142292606873270339622610798202283719547307769543435235896967065874095157764953358087735556437404409499888492828913493059550186955457547557462279248949737098068922419637060905359179426986754576139386876757847892163023790901758123251504129391088740205766111519723000453511380798762505043754674424817644038210824910880609322479612525624054113583168424418989749823884802699216939483976518520837283760466636556870045114886845587027037028679562030040375730965112557117274867261812154730588551889392020033030668714652281372022112545725117218925702505588664850316913528418033234777699780789342618156157319441773544563293273676763573579124891437836421373275705107051946020818337972446556164249190609216092249107739458012556871254781694961151087526445048472801085157528191228320091695928851988288154333617253516726274829321088432724898622760170189220465070692693789352006295141672505354335682322899562388484198118281479690874878079079935366956241285135918347020352954546919784559650406378615235413387413851067938444217347790337700893220438675395697212835745091890188946961760706744240794774319211614042230426884082646050448161491935086481643312778008400743079158743909236498226337374110263022540067218175448364974449346671533223094536200442153608255359325121299026023936370155054198662736573727109572166534105348589632257743425325821804249013725574614100160604032311312773485673377614945071734378806622786258475015995385481228721225821889696406920090666381571331215626398405571654958135392481785680025518123260187082879276977448878185820400694455018320084219202626893061355446096630445796275631583637759255946003918207968283060634485941414604819116133024048786949589002190342997424822374314414471285258844956023129194758303007478486145333628359376517334761455169223098381997470954794646456092594576481203501240261084654537698214389870795677299473937334122917523072405764330406716710151248365137445174773838006885676681727161767321841125468872809774463500805645636043656649256271309382313805509900690857424099537830168278682546298750510313693441734473138920510418286302753789193868138448094276879491096113879159752404492899043543539644958083465003473922864619867469331628767667419664594612479220850670271591245817806773330134573062688719396452155544998485147590963634850868575036295945808071304558813037110581323650192154561644260073929799926727227462872691173972070441876312563295177968442689313295288231898385876628572350424252967177907346188548561402139384311669499515278808132381034405852625586790108295987960439752940601676763889629542748302533969616794768218654353512215690363970621211820771586351247145757096642459290997170789752228497981148996367680243466252950510819089760686102238943502283372421844256100982750991972354078238785394848462153325704620081056038720830597711628239003739589601734185867158329602631017058575114928311742545554608477881508982177514133015680302300447816702411540860992574755398008749664117097416057459965910982270049160381907775900627200062882550029431119616221267317995573271810265509995801310501436316116462380664958574909739125181456635462983525538049926297335886752986439071402381046485932798394321456716145767578577192099926227165307313107062091661914984143905419598846542375624814812820542898479385877312662328829633103333159436166771311693218811912688284110499813893336904446320082721583144712340449229690060649670967412000195031193145566225332923378708007527755672323873756995224991265941111941680165898159610165066810216291776384968245541827106194774477002578421828857237002428896206196600205186662207781690598783606193062449537059836922863847475930264797356114676246665484104200605955528207759253201366987754062257326098960552499345838958755586341899501913057400172417304016081319347737601064299722706773006464003773319766264665106021388145975802005973709174369932093279025647851773904402055218606016217850862097092931113070172869628945393892960794030139888171975747575238497322631788543894487463447245787583271794620242580521193015979135709336310622376247153952626695135956235886844343851400730147508875528537744220540020444008070215057138440311952959049529921668706468451957997884563924152806075241701174091056142702090258496989446529221175834749994282701867301065582080338495422612742828060493486883269318394519079302238610659013090134257860743940380252132434956210925900530031138973313216738337342027656274782212124860329825963774947095504367396709412340534602719945166785678931222801468795347460078067049610640184430317269557530079097080427647721235676196584729050242870122076277505269376580998393070809533077365456412764865629683928878651931965062411209406672034049175851100552231955184999631335044442688153440196437597501302493254210423730586880116207130433353080341043458257982337066674343748205097855289086336793200057246483703193618526825393485036503742639827785226819235270929606648680211322480260491514776278176762358384478790636625785160707738903319332735017304007375865675580737242950701641098365202337796869990232088272766088686371574041146786185287486965941906261978434613280372232286504279427749559242774552601844499621799422364967332076619642853868957121843364156241343743103458273378409976549545993933247439580708457899535525092638363146448826571073090212598742264652888091169226937062749773076264227487733497475943730809694021499501920008900234825822949436225415018508991596802345651261540897553638497916941239221630554232153388294075496557475618686186290640000973643271479974934383029880999586747568292125562855641405320549311474235936484863912475216126428087474020999477385109399346348948413245164562074616214438284712915492932321596963316443191579767546215196743407506897033102609368631630318496394500787904738966976171562901091961610490202054879320728418719556385186815410788754755558798816076808079667362244031009016199117982669615321694603726311748709131676714853003578234508947302903988187596073936651530032278695604394781680677986180446787325946821601775514875077643167154269475283813535176228915926182770546429961764614423523273100721258624954345171546969315596268282326642136763912064641522687638792404114327507460092453569851177333822279005093369193376230084699224736009133756883210225062556935012699538639028707438426156892902969761655046891107632303994337308920920532303948543648996157758115335546798016878121877262477013018198404571357699695470220121388001607327569650726629436531925411070535150545240238849429015146365575591236300481031125366311080965363346091894621833296387609654387157296187224114594954695484240446240218999044285795722891234249646886082392025115273579119778112616386054361943696709706912434623704103237727827514697137425037715065661266225023797347593297064620843534710592673719359610298627365398464795779022049146046894471430685118281546461679846018666109444812156841994864376112973076115557735554540340945566579348773484851613294824295146301722081842238249973364705513747849896090790865570077100735558915520316292513497044931343252784657500701244349627748994522060067876077703884765392476352025602150523334833800866431767799225600588026915727893857794082026197988888288637200954632951704685268786231703435200307694974127923978773205786325303768568302494635434623898245114283552274948941825528163700779210985349677805044085785811709941474046210665743013120199344459982211274754178647091663869883796627570858209618821479960999210786208103631996340127053235165366622959063051859902730378830246875503061488664720818611942123873899964827127832581906095449539978267157227222937056723380657081780657397560574362498504042186821609824796397994630458667074424383289192387726907714191765539350862475241186701361803639175398888456144833981144655351790201971053747512488758523139432575244130248029159192372220850269112416813291667855840806976066913558682686333796773433615386201896530988292250994768298257727457015972162780799773612256937725838196012544842414470423689598216610480683527374198607942042655935075952199055989310526020154736939136089945088782490179934841978061065555382370475641260079112492830632905125759682108473075009863879656439549558648308639337136533157164460324905661084496488307715762898749450696321613205155418968131177075559805597290533312093049226556620705015161755832776100232815651968390103974662050913335935963537351032888450714923483621304313026920371140717983092681314012646062388362673555347603299277303920365472564868684709901815472186137211162294250345248860786038157310062698300330532796775606903309319477095398976553122980658714544075377080845427218890297178687836381666384664047471148910889144517803395009744704679982603531253814881470724003943528857173369872997821458651035174561528745801618701255186614429724908409526286102206882123382280948266923290868144896216040194824155426607771503525503289575331611372522477820764173205751426809608700924244640280436925671787104957961907329594693677508085014506704321210691570995050865241543548715259688555734444659915235820445941871927606532737281482157712391429796358732542805396914846424800315621115437914989036775286770308989198585603046095112273350333846482044371220168269857706752823628835059554240674130694660109971802274579719675984201499970515397060900110318605685621795015152146251627108443974793269772965726404748676345548998332717860462582497870946559491846290873480975836745948991177008596822310276202787981493213728507063725190905699722522322100477163846514243948021079936346227399134126658592877377177230032185549248298949888948488864460934218566556998244101816488275289084997561680095262509490913444836798637571698041598903549263490394888441944658559290593790521055472351314445702241426168657223202592413099490002599426173013084252698894564877282788838452818132958701590144545554761144544656816563317638972953193141664578740541633118650886264391554306190571074300562288390721764004429114595311364146743365550703532609254361510287630313438750208533313377667693510758203206277060651789668685765236548117213442398040762540712752561012174355849295130340494030620598759798129475286029917627435202070911629190906932463785020291701220114480800263271584330271294126297943058097797537937212582230168667921254217370963647538860084481246327921425052431341490832326951556878241342463333940712857601132229481207162470983131012420022107400371671327601937741666634231928020805137190171291153280557030999202299745395053343983361064043087615537593223404624850302675571947442026550182885930396746243817006870050516351519774347176253236825464810735963402999959951689373053307860806534964154501465334690653471023142334381328438556271569936202145211167756396089120855513104798217202572753786448256566122590760607711360876671772966692792836502234635206879607722485928030577908019756984361828440982702070632168361500118829506160809271129964057960380810527651149825798438383463076914176262079750041452795201276894265018316419031214123273841525780242076946109194958391035559344595397451382825468072739764655999327046799085455354398721690891074836968499725142337575229966308298066802442527984002786676966862406070537988954824964990031301919245348002798040678495917794950334032816876858783702063235304584830004678101163525930636612488782392039116935711784277744478674567348213593267779897979730370598130058432163968559479302217526016790529291618926698228725320548425225674610648617199593038282792044787751443250112754762008287996745851983833765454469708103855564434685998223432627111956245492489136166298730608358360269497594961609812415361705232941284606834489248398359649311508637217595239685945239042761313536298300041523679555072996705895696292867423806388374289531795694699220338497456982890098514155904544349461313009668539565379852032584894190584626143824250198996647036834413121580065181145188722120998220686067912192085819422662683570374164166260863505956917017997191330651407216111037953050440615738905729529660255712356105031794769699057559579988725041907982976141331688603561776989590794653098700673540021901466365276959098202197527419532280676160966716192833976044374892569268385029354124543048702809544088590328179049270663699847132075806550512311341634044961588586686200269557036497997178099419177876632826725640930274769034062960829956565057904730115488594102259204093315446186679831817192430951159042461188150358931577407245018220554915830188789716825798436889805604230232448090277343507034820365213235175929517972306234721281289836440411279949453384223593937826431315789551474713142873873915603245859892563680185561360594898047603362866950859216106399681017518061620332090817934319555889205378925952628074698174179773014102553031826600482466574856821587115801953623565658457022779966597917525886714827826311047420453159308351251570307394135687179967381485973071340171934894323227028299923555836272231290758210877609350671700512718118358846549973177628984831462519477324111388252271695227270745577258754775097523758527876922997082268003857248606371681983734253490049472967511314884372555445947512421230585111270367542100241381678072178337182401843151908175024837340372277552894083869746913623275391815049887215879476613556303181147973562096819502738195348953446068437211466190081708911058584524277203542218863190960023043105915198469788370871537807339321298377111842794198348982438994926422139581289292549676662522897145095151716155352241840167826995811443936539582476442697355611691779034287879237187502031279551445276466032204131434094458287706556302048632619070933921997828971307411485957167300326658137665690568448054227529883798260754843334534601993759360797720757952927872351246064882380271500361178937603206391838762966277317481777248522890113203999721421122670981304939116934236294220192416200731281113976139349664049756541834613415935323775807543630137591522487993941709605362323101153683108172230697761417857556056508396899985511432002082884039801576921898923560861236458915786359175310766613444335689011815476784156360866284282864367286246358207161844223704863361005734320804520521376884457083502852303784728707297037137879908101707919678510543848487486637645908150690444923191698366102783358120096386400346012039494935149176987760376320682016224707339929722111584132174329053738830818938778958068305769165480235887750346520300918873560273059204310837613262356390425408096876154840692657905206531554905324548388392532130038874175287489379179908768062810051261364746912742727200885175858573502880623804592248829202377063404044763735880660716361253600248479287397251036527072254176511735697184075858729609085292754962346519912853556037265521401391663975160193941210324914235785057766742313277217354980468733567426318708098114563488806244113895611863103910253152742628127774319515957640012210399874821991500594809938234732290148858789775085775766866230156806418917570730497414360610071497563387611456439815828042038334319034410510969287093618900002135974101644682213524354597992968410563483127247400927290299108150058623778870557257473581287758313470115305430350267324769545804265204159548069534227186025005109987678474272436275037598069966760134670402540747464017131832094006473349825894846518487904681462170547466228648211160698488446616678289177660983136752480581191187577065542746413987440616073678228701510540717551859827939632814323396410531195950519856303470907840612638804627117059900256158194138199753035204542127283914487640698839545139342167520154147601262316282269365693190108517598762107459163218673996804729946676381049851920850655561590721139686602058117611324853000470711309800018135387889838686755522824739779755575262270890331112387724881830028981769978970814599231556708652036327225773294813638812888866896057131541457420823630708924020863873431849664070440672522683553293137828289726696469623296048001851117942074903900006382189318865104954586083880817167967629895402619327418509865908244317259706968121285875086003720000607679459296181426226460546723009359232613569294858976908078245763711309218791982780388308325071150201861962407098419279795842485620828537658759439181930641523027422113241412498921827709660252320977523508120509567762715002438940334104197758562136180676622375820074304257074762494400829195643074712587252186081348089686325765614407552718456654351051842815313845920502007806802273631281605239283831508279129851338144847070502919571609994246937808047453382576164164701901719002412996013720524850845195209680087488574986393758597632029936456110002396812498776995656281127117667308565517483995652324541614955519695608346892190862817418823867347008592790340222495501053516947530092814431598300506103105760111662543267896857250364786523953910574428473243542779172057232954728822911332095661027658550390119479202269513793220656120406095751320384085414675500360050656600875670003523231020057670541212298950603125267356016988612486420618164813043429186028628402682053140114154243088667119655782314974909123881257444312791794193877751267037260048518169237579062205232152148597018201859658193539431796540419992511746014940180387644438933394377165821959520256617313181212821055855715992794134037397989831860267020449264952849416473567620001150864991155418710616212814618670165964456414163971663092838291069232725889245366187486394310002701630786760050831520762782542942616496376929195968811369102446007959625146635405155071164173261257425075991604303906848662760279702630341181265141816098042023870930190727335599967147150458900526627020067140450908795136484774838145993439428753052866484911131708174057679760144853713699666144075942726843014309102367063781037287484203042335094855101163217661913931923122678105210954912430861315213241622072477170469247627545378830286517061828632772112393513002177164085386702026314523839688478885275216689873207664879958691916039250649441906655881523474978628684935776842012524525701621668489493565025790170423347320646159746416945306074782769157574456793595892749593875543926634583323626854776426168173639237570726722122618807730918482512513297242545213036347241654474937377036673988418769964912546161336367353723589900816522874595263055523389300448491727612024890231020118831105397669171156361881496737668837170102190619324109069584911577556936290778815618956998956826257237280390098357093339334183305738586938223077861318665165970113161566354061586432100773066066578336612146795840487624207772661112876239695152627833113826481004115117341973341562520914130566286470840768738951601241000294188508949087708192772365503123212658820945118186887255807487604541764576004827521530310183474068058518803446515748725001304875097952975776644714506661426303623155058369708224968659680659034991556575991710184318640821329756590836790669932066866499540957309653309457691838569315813360217607327855455326929522404707020325857444350748599389303233785141777230357163350341497678244843136939124517318120034359296130321624479166618114414995221084463702153670008161241444515924408598139915246643180603536312174328054658607895531230639835395532348812731658490264415804987978133897905247971739150251803051266255234637696590586457013046444690183605290364485282824746165708176010167537726432027016612310364161173121024314271125586574680723253841066248172398812664672885771687440105089927236005487772866112752495871199881883471423646456024535218526356932106636010810079482606598473213947327396856811757983522052256620135473664522319438502485118529563824749809907788587784839878764165205807610293356979995495287749545663022579694076359618015680793442627379134189302406217561527018345607804776859039091465335988318701919545997533698503159979165065172663523964955748559170066820525470558681268639373021307081856054182597763734897650766664250160298070633892813347633486041052618851160901862761082116320067518057208984085378735588849450205831255606874989897681183321618552817602792211313281831783416233512293546293658658539038731704037716003790487565179744334931309074342145407050949759752907427369991844897844498248512046238372785666280151295059138224924212218384060155113909003528340363325954156932743303068393559906895570015036710859876780241754032985467845759092994385658297929979233659082596239697913102422195108572282251167916178193648966094177289505245510704199057217916245808043740939652593015991217149400178031987648593466686241214271013719913717761424895598653572076297222304326464314043098360903070307170708264310875925917841906801059773978383006022865500236141854228201663799527049596524693603778790479436881131024155482319532924572245404440632561606839810353542681049214708005031603988121191879308418166813338591087708989430408025338121774236447900453245219894180079982871886401756343549518682836039903820398173917216917972455999621292947454089328677305057650558999287496864659124370936515065411844069872142447699641738142773649206832576255148471951631634381365893442372918989196417872192576113880717836138297113078466521654268382334165511552766373680128283460955416672573516726471676455427967215431778541707376133247487082223940397675320656009386873954707012384582216728619923691600385356578644723483068820519106488109817720918940849542062718118007371950336458841450479033643732057782321186097540579869422664214461877911810477794832369503215244534709881177366105453583118485320798950539755364095247447009029959067953185796040124156017872876069910750688271108180701175478527960106568083814423457383878230995388892494848271680766498165997736662693823382333376885440835721533597543269657182235859870242362991252247401703127230816676368477925618271381674956529705794987698759008864119201320982542691971907720608548318052452837270252441056371852951867888474771946351758602294200145330107449560389952818354644606038888818480039917113705785581816664596898273944188630543362809677833147848805392468992463003833947956462169061367463667954102251741211711190644653708569481201155140519453002143699417774182491478876801270288158196035166073809077032749444253606437884930945339344669332330057114812952756052170555339209077279371097088249366309470247680019987733715570129686720599203266120229513197703871684334389092724855386802971945485461662328987536711813091422136698413980259129923458811269222843500643368762087424836804237202548044562981331610508088671330861771090993512992942216960196616429215158885412666698124135058665094639338036441770305559504348242560994403509999242328842878345058675104923911500082186423979147109237403419888086815656027626992816388656318822994418280917228343008562564744597675065432322076136686485876512867278989322236692121855087348273859390786134047762678363028344128376454989634428978020502659486521685275303701849588928139822345063881580862157316178781956380676213496471593963058386400117680222651072741133863634574024047004902704574286800043670988863929057342919197094448648514236075022589620198012302086847649472647795155247923970848291370606089120364481463418346684355137695891664371401105565416146541015143310597833619052453038521684445839312165791634112794473977221183502663130499624928973914076897020470369063307882633719624333699183524460458398670422839563392219516640245725133311101483392564359656870687050535409025864394979661597774453711935270920610076502358826861085776062587097925557653933208568999398995451566517348811239155113583231864894407723518369224029671256583811602397229860825266467339586715737996481485133339198327176431227050332504053727833301990317794320536438250071790178729633869710135385624865520795150828214711261715261846448864056916284981319956623389680244081185974049958231489945922127804695302347946534031186998548073540089152266233726291660253271506961438058031472463361059760779467202492823032011261038057130540572007730214609710258691844126185771521728165131768472803342068374160777714618249388762788270535846126684656608575239773182528736038101645061668426741184792973738290184074583945925112104822708394861252749928984452090731114949005236869744792386058670183134924434423770262177103597521581378349838339320025066177134528763206921786671033782991600377523830182071997985121871011099506971532952944992176588068499718196016616945589843168342867367872888946755280580649446068386125782142713384345638641631217269292501423165295440195263002113351937525671890527711387425961871052706643010969192617149161985257937847535803586694169344737512533751639518648086059271280964365360873599879336723915720439848576734422034486550286370931138088330747298930262638836308049074721029250975416250916688573124003911173302370131950442384685673948287574108365559756328397660869501954729256553167809571127464852194482039480816538099850523304466943207307719292633137059145055954163627103062137730310525681105306385537914198161980822977455900169526505415866418251771630361093345333756431823278315251751670861540782601763122869529482159025070113272300894592150488209436264819455810708241874839702989671823674470143242942667851418638591018467799934127920161081521297905227125771886996347767949557568641496155892865857889067021676696852686197613430807277388627131314230426521965307489572029349932877146942635385413258836905180260036031308957596983923659226356309411015739930205703622960576734157626747685778002025091739507921598049221361401292241503345635385565674531738807935223190088904937562242385219734271411446114441181438157146995860607320279919289881585494287811066723591868127134957574532256056166243413827552380624383529030529429652300798911269252956691239176515327564810276789893508100759174657463563098637603553217678778606223000757974187406380344807921448512980249926570102015969565123413066664419557541590771860139195810652022088310284567203283023771509143031142416779492134693661126062663422602186760267781290059823683710689565209867914040511751560833310938371874334366632070957496470081468294957146425236945562797997647113590083729195732987989125338811149040666940392444408550055125602654157305261397365861823982790802479656876122469283418580473897155683781428713072892665574768190052323963873203434759158246358302430058282556232588952182874076900376552718638655956504875801382581075889108354854522124530633323840770891288152709326371302178722014763207803328473127415664771365389125041167293213275346828899751682432709389033102789880302870865548161415655625271774113664552550586899407719060088288199591853989539997656339938834411770189425867239110637567439264994657007913076993463722503004300082738122799875103065198777335839412439162121405690878265726320139201174724978990182757409299023356254341917534320569528024154437636198637363633745069218497182152120049532382160765695642465275491623974171619132396171255349318913772855360931135413586956597056459182458441342435045844430664727646344057581083490335609099368070323517174906618888982668625705123389902044126606432468125278567808104029703972745687689859654715434722521233652951307412187559180606471920886628795421490395850717594278265408901003261022578531995716687003926098765502285306325890913291578427939286190806182141662835979646146540051519482514352963641841054984178799744775479609640483888730846974491556078501897733198117245531300674877131072412022595296385228815715042705569939493704257172781313580222513389535372905414909314382524060175970408351421432320990627980588316229313561826651403026329942819627484124626603430857866921908486348660716916692804777988627419278309855432043066686478226552116356699629448023842932406685714199516605643431982499932375239617321003866485699924999388762548941722097975080042029571935477706072850327782826798033643344887399943289765180966024481626509214424863349111474473748622320640621958117339511773343931514859116710577601937743394115133427239300253859175102213129536356136794624868292357961462720135018476112660572096207336776209233630927347841791959492325970045881742889105752525528110972088665299011574192385804251602060943693181296917539059307018407544130598430808834244511604645972057577958436295958924711583657256511202466300739909885309985046089509317781869337811645035386788820153327415587859835548706471771970165605915119856948759700437918601660987739479143238985305044354864799793184460246121710825009317485195541582642799070834010461280948264872849549510879839967675181836111766947218633162346322475483076615071471388872561182115644652694650546931993521758692347138159328839626076090398310768530081851052203053967936492909856806285033462918493773299638994873605208065104398441828264406737350027051202419662597091328587228962857947136705069513845431959236850327639682128160367729891674200352754183125415361530066771888682794129648513344935173011011651454933466116847618467103623047604803756639473885125652343664831525551147854383120910944585933402086843345805411015944559057823836983693321463732024986276728104907839458160831772218688618215366933652132490780439906496529732128328519430023471278776296771395137551569299068056857071331878398562475769537938100215011906255535161249684228658669762412764452259509132052509656463041290771261714446562349560111998193043535366233518298452142478090883468490865585068616735579686949111825774969034753410445550094839684375776802926258154904913201671378224887441106932199045744094776829653586182074913205958287300570077313562918629691559336341885498643578584258910503956249431770144153639906469183696699812528954305813421081560647770051267164797721945653057231162875634517722782296054925255181844800044019837470226559827957945167347345132215133142330613117347012387516586275693538600223264144935519055788798760669111251011559614237031185851448809933386026534445244021782377127911084525866774918772605483562440130424466480610256129216665377920005295345301413659986481147410349707184385388102213932027745307526762922497362046954887979033485391929196227722367970344871494476947990281367229671943194923002004202303196478431068059358825396740667002674086016190944721038678213101006264965911739962381133921708936500030393127044255926144155494960566057849920382105465756930946211848774955036702768851823173381288762919614640194953488294302392712883583094412835442092015079279925487734968960910039842335781714609354785556435442027030631119435944968018412003566014549394285248687953524131301336353218774524142655573122188746137560085677094182062208201569645563990139138110179706095842940952930433149175596361311217598648483118443787893687778823421657114353103396439860118588424484148044672165501753875261967567908184595734497200844865603033883966422440806858103716046236727804689599940626037223029370311153915306943834978492879260705827766789878071622661668663951423786005319629676360958287882465644305072005083906787576892543873265179197347931199685896615500346335195820958664819408407401231638282541714063329437390248751339554458263024565714928863754645714896238587425686837693570112038005647913939385783886703750281482223836337596722288444829792352362905581587392645975404287486347576799184905344664440473162894563704088198222975740456375470546870518435590224000609314687717941420375090717404830298358908287185485394151196635871551572533617085494771324223159720465967203769902356414780387289399633928300311516589736756832669580260759563914888937037321695673447897057701675929042715989518399324632342320041393014863617215631143351292756995483774683833908389877112613395719579149165235244186762478044170103750194652871444230639744515172069750386780894277351130678673410496621641436822100661891243474936511829471883502580162397843948199416550573825977652843012967584855194748635493533609823339646304611152684464071519027134935385457045767094005830550669538982465693717303304122057645857297524451162255225549522502881453853191743503842667306314028835605989838318165395301102066861782808100676329656262519759461395586880086006259099921471744413886884719408690230807641540415786376267322213661020007568384938798457287115091810780571039272610795613829995358232484992391108917141466012477244501431952351112813976757343104620678983668718496396029446672095439440354692960020615709524370006849536691209002202190671987691706441607513766423318457435257574197819774426468264415057225160955200199702532488867109499975663133919768584817078579378895732919895844306950334040475585427210284735922696268391364144260188514681722148654807147386612064074927673394008599929191032220677810670570126950566964560900057151186617767315858447695814706438687220674603112131496532647104039522396018808881120802581667318708025709077263248297936349392623927550751774651887723666800431112252765303515070792523514438549887073830549407720263481059389555025533090995145728839916741885442961847183566930325538140962862553389559513534933891695060540213034025110933477919107827039183043603727880725222923443514539369183716295277097193879480452413891516671639848581064123356122277830946399494049842133952058451288998323969891361824771324768239213486470242314004492631203091708990148752234312782719794008147025606322766877168507293542232100126428091276018995197309362214989312865694039169403490013500990091642990400591316284983490879337476464044158104063513450897580476154547246362559405076197783121043865067206092585578867459329477479774504017674134631107209307361876289777682109242762382249174118871161788016992983207977926105334225707938409133803782090814156344177032386750242408886908886677488771761670830921292801397131510823745884613802871685868156397030534037498730200790548361537142213576629809283609978813906921459558121053748324939635203470954776325406425201637056254220568180995841922034564540651057185410126132075280663741251720304973919472402118574259809855505236923973274818919579805271958390760981340607184590996477521333276143917418440787059418102327881093581142065028365830241379506925478027121245105456559634411674483017448395892749415724173091007685078569977519990932908565545107953488393833896549635810522280529635761337987601553087974327901512433613836567903678609317079384563353542175423242463559602618597159949516136791209724229860920754477292729775753475066776254059055106288753340255408827934055790914279870756203683234253548387735960894948179395539590700561764272032869991795337324119525462815898961098946297165277097920690905494283851347708711015585848451955978592398502253880559386700128403406084942649689451703129784605352924010122067957388228989093113417913044685369879604178071427238808393688732650404640725779476559506892930518090416795837207481090829879156060641154342546270866128949749030483329400448517044180448794007412787633531827244443081428851558926167344774606739434426909914964865718559895862706325014290957970080532097595195037870074061062534762032784308248775590638719546813583137103048300920596432481355306980332980800693920101634533931257665433771695675470492054091688376884021022057142968009639953548231268348700678152045149075024322472121690174913683487828079989238684952147507102534444581075875168981952704108485767250937223712210230887218645077003750390812080585591943756115869576067407777871066736496055467788404562034604795466848444441020396985763168113450605221253164071254600075154616369278194499939457418656165797086154594471420134112200829649353960014322577648750013714508967336567527278586565699706698029322694976445539087671678567938887325648348472478595641545649585699312843783828086374344604159794463708980695645303107622586435638786330395808477221760630473702576054246445069968713216625198085139901064692082371676315093571630570796450275713681348096004053512641337659819016023641530292611343414499232430355743041137087093256422561555177554534773182745355533870226610800609546301929606317094509031276637557474114668237212114243014955660921662636212565760932475607452691759625358187646824676569440367582289638094628615223066743389773399536409164511880047212397537236767895848919737872518038156403443463961617397948595352404008966156236996931695560025503290201224045700337633007389761183183546646370913440319129829365270107204188357420809674506851109251372567004926252665303232939272068977107345943592246363782102305779375287010217833903633289203887215896523143457408574196147559301778485534236308614289457356361430199299361338016185862916996694748027911949711810876015536097181406636909571529250111733503390769482032221422287092928429876494157568526226494464625152303436843487518361751112416866953632970392971115665976211098397625989255268176526132411900478129240400345706083421872616469205369835312817008054328516454812257527706552284449976377503329932603752021286956159823520534366040921587172940590397800952171004500210499652998647579936346877461394322145027509143151733632900227255716657379717966609021745982453309274689971101046233423442934844584414100435112842963395852924354574355266378581972120691616824436209904017287554708234410098826805353176842713104090887255224727951251173120933236308582877222926377238321329550239491148416493874987414911958836546837864737655616129986634976062404199318653126477121964953886804395425976927050358411374434486045351994302354049007482107231039808417968602261364286009625537383107875631759234963712819045654666652877068102968036405709886875036561356382437319697669388068880874377372028969969613234581033322316598025280335421314260469192123792566297081188593486380727192466479504249908337449991303047472352655392919090935961917188571884269025219133868275056398639995909734925738084349280131523992523762674120832164012833522437997029170240411560798633814646238812915275163566320304827133433087647240766356614400482657706271278199163671110588127660617206482896315114397174826769251074426790081995814105550467868424111945751694518626226536308742921350190367532357041707802725926868902973805952890907117319839038882994785556070690409348930586505721830794090175438657820869004228378357961858852431078973117623045227925497451957538145279465590343671250610482423936512933286373618947485298459880835606541193127639333576292298447325001234894081360053798754104937498072951885509746038709116123733320610651152361368379759531473836706557775573320674355459488453572009718829000923228798231199184727605954380117871148263371805762648430795533855362230687451602609837812333759026123799938630223834325858207899504475457483887278503057670726354540304538005502567345149874726510577589171772319965549922019585661537350353499076795133580623204691195453145916155634388975452557218830095246135055008345340963029207849361882991071613369262641273557046526381815894211414782849928388369917252961653193836407941550045858749801461172357187098006171733178948743005609356267158293692549848682439728161918256992811101308520580893372086937185361792805935398019107407450288835233308371068736369444003492314431498617873387905699455116708959055738508820618566019307224492318163272762657775647213015919819813229906278754776469713246975949222054092073437869675518322574201270335072513834716170503553874867671349814641198408605070478014049556614292897978983373160868970949140798552632314634582564757368399153779724006421562950184132460587252724420081719365842577682438038924193482640158267946206916203148052573518858835139716947246173420333506213351652889027462896849971391470098221398325724614326129633952764812041642105937355577601430354477478876874748969188512291275904587303599159595098770585645624543617237722563336717174948912582022456826909945589912505613310900631069491614189950762079198782561962780627239535760359780439548677767248068379254446409496171426658749048662088285520427275604378294987406319239240412939436308236453106929031088308029510213629550121312401708809878543530495666632625264114310556171834305320006371690711218474105934805644064157176586199249109882846074732519944588443037564389175930432147028204336072656805218116809773200606872333042262693939215692754674144998384362064357218835072410418896778950292454482987557789509781160010208871323976921487895269597915627808436311831628145766253540834020584716173321186378586390230391563829610815721137411999657728470612136188755568032513272730874615645705512494311176423530277062389594674315760887500115413458637074817327046325168648248674980627401663057638536216505199024319785859473908444253597613387357611618967995195476551360008828476958853959309393413550045902588695286478946173861597503204850747243935143695590966528689570922815654764804141940251647556871789535554383793108791007672554768778377556664727677541363260090481954967349243748014578558119098549514845598881728767607026381853439303525873497251843505748635116703670650964381639895136100920398035301398744213941436233318931802668154743475654593699898539855779295071822539478489187105698273993853246238473992622383406637118807863004675236892786706472398247057380999054957166944345210294625245836526387714776457008341561857077991049595248213884492123029027489016897997978070083396232458807372934627015525220459581238385513128188593913186410565023355512320532448219547849200272649685447384353752060355357730928685748751816907418510653025689454369410727446539118068113408198325633110316591961159308355028360236435799365519140106921599755053328313312157915583813708505461165335635157950413425355122249831736892158252644277164253289718990387000008510872825941717699749032380139531307004369331568313815396326741669130142365932701181552885382220625138559858130171564893403732862801703531227581036016359316133440625631974409061984915927598626961237275765267651717949312417968835785373066630538445895231353318042897066384210968994326447887370906180393375324049130905786021329643747442591312574396818411227036386317582790708052538683482084813147797748200525430856485269222302832368954856244201844044662082815266837720659918160021020391980995446816057822646283315031677253527985818618361136724461808496753951187687072615943481109392685294273945747501304314013663726695101473883446140212192852656251716940336879368010855127505124614163455812718033025915547854628594295657319060931030735428348049169950765766471340988182699270707585299067954284115900213062346360600347224317316218303190011075205576151372023796388772173520255145328943425111293143028507920790775317504787850922635278042702329597882863311753814010087858967872489712828837925532400856011430657524019278380429884326849997365744267533717299948955080782989509905845373676499594321982598202794896946150770570317765926422176437909283814072277303419441035324614131438637122718441685486619980461731671659309342473820479808761005531724531578860757227765139759911960327243811720057650955262437137007713086467114188483393668826222487718617115744424723574161032027592020593823789962107598797961511076901056423342311617712073059192194620713130662729079645981201279673509354993069198789864412960222318878254752454954714308453684443403482218596400141414551246906379811410869036677902976043681907125552093323178506438487882268146216026571772335876307037889484332136667507485709510080825158741564720013544419687422535790119408638671137468936555418725793408629804186209589338820480179197908176335460537785209545953014249489062393291146560281954311157611232233346314598580718142733555279398714630197748848744409099989098985535577469461076838367807329265407404404823605607412764157270206597927402847090067975795456451031989558287061146566063517942255825660905274246663561446041356050834825549080257804232989838640974324427306300543740831616429460198399652485097356896251259012395472509530838153359893035856678628907034136879393439856366752833991724244960579777387812979170959586172207614095177525563705940683336889957218406888409897568333868027778792768748900372254153617789042810527197484902396145520720812305380770807317930566984454910950777174558884985555283478607669509806031205539626263167805103614155293676520486772183639861298015550299187305360957984750315249369706207041609793198414609083674395867170122746357105321343518681653606307371892547332888873474382233247792940565976004009073349146471151897731851523343085903605103465632137985803742125717441841890809231723842633309779709550251794836940390738649415151472296483718742810090421680231683977532702685853101026415740792653934441010094746145467230414936247652532382035246586277779608371512189428423350517649374111833161042954826308833080636702845137883250736039978192828575370813856155558220682921292229780596065011728607530903621734782648455863335931977497559193356727237197473305485896794789590329426788780445274814214669730878288910782304484160480567966156786173249286104802559041329760197297052803287381879782805807109542822525209251031446116214412825197237018831294509027644995018589430229549675607489085425009763200265603744962647399103980697413108626880755653778774805245826921197457286266662513916423919034958479764828851572016246182720745400476611014282819055317441221393774524409167075480555023851181377795519076236978645309933262456236809655119838513045841496215002282430201128244832654458072894705502239156335993792747437761008089173590222214629918379935591515222122456836519765956420481627399716278988275442785511372949733687924802064319079891507937809450389424403563997171988171543869334934900299732719361638294742833197337494840728927857741623209948152637865269442827084516314556866255335631577808771829800484282003979052312238416835972576745039184420780029400966829916302565415695374602906045003749662195656570422650563321874441282188144008946138643526894217657370603094788810006018736400029722141167789646203932121421535467736397949997011438407438554500364095201188185980425619726303183627136848784616226109519917371343242763004051874352048914944898501274142896954581566933327815446024570998791588665988578937422207054486210764418467579209848227039281580758273906378911452063217358030477564711370405457655913105312155716199706916787452670267935510987891287313864361793833551702563352264192966555675719312848614611311193191695947501848878747057792258375812643912164756908851495886033399450749525862050862628655868920466454098113113237943211262499272411835599635147758142312141880219880809217449634733046759928108787034074902175756550086501988511668787060184334643211091098466000933500783553763763523506900468127089202598171848456627981015081982442039874978398266785115568544864322251110395690868796187632226240842199745619135322964243275536165574684891218271905005596610875830324734193812338749669288572827015413729246284013992264839359942725947359306150426391961217469583212127168845577334385241877941744049516234643475824096560306649862906163817652001642141573163244780095425260461327021475340284434530573848621628852792871162311963286100823160076065505886107140228630953261169040844441546004153144904868537455262443926457545710108639072863073521541767638500359810498653281820630537451677465739980272019099272234989120027493179548680214085871353484210535117468781862782260994296007030997545695818671783804030596497819685725908675210795401996693893401972380272291550615283655670911766272536157339101519432662627116939834927700357226578305391780847628408158628095318196555066758202227118805502294198125705638455806938684491156280366099630962652030902589992993662749325608410163478116490640237656521831392045353346198469731665100304542681698248186082343301396873598351081777398646978227390910165049087338015177309004860436194043741028520089856192252106025470214909318211124837595673586206073631146214926918285750309276275594244758016933455583322525816121949764804843217063224727083931630325803287509086576779816155231677334447073825315330539883731827383006130329959371019979670428780814539539563896550412884958114076510097853700241864941384399277069896914992082087529543858768655517434138301784369347417976865903736945357299030607466787987769101178340911280623032479050742823269409802181585081305353426414720025962461393783388612984890620950524182145805412459508664150509540069212422396615412315381426868055051503394199751845985954835082361887462123622103119204659871243253528829469015721802145774500564027265222234820416851886156284733074180401560881371994857546873596391972742686884678643291977462477336100424367036722713269944055866871621837070376412009931244145376724561106640563992170272496046582846727975787543788942271841906294036924341525425759472001392062935866316604381149977338242474180808893622827934017640836229646694382606673479593224696262449000369009550137600489907407474566750205950662587724068955545092325018552501633848437007275778766449489282374358945898529463921250773166020479176610052708653739486257618682713066099993585617844558987653267836487262254235029819818029013756777894096573192999056183213244990674231284466539022785235755362674086645372723121481446157198684235320232094684348029653714435034693122144519161420736769070277268822807217162249593204893136665121417296846392021776839342407547439806520030817777494470785498647235876652596434262491104925491897772334715769095207017254693409506670971887472989733279213795723607151485410269954767044516995388346287884820319416737160314096386832034214884099109298121686276189234112524785890890707672708235719579542836715448583807733495007963636782009251021182677943619211763650862065696619789196048681498583813472454435908487600928332335100007632685570336150321028224676762131408499858630305269817405966532137645240769154048161234587872803333930098341024942874569301347114299431520775735601893010931423813786982296045980804311976981102742384663023738586883708975347270350266789763890678386535251396166881146993727066293431594309270680400391507128135219140311118064827261305382234853377616359183373036442714938817168198257957437298816043717946091606759996448905817983239828140859054489522412645498718731254944512337136614782068289075847870776726813945815023648874828130092446260448596436383932940632529336579808376500685219081513657288388219323662908520410688061082162498063259910802649453659824287655936387798365789658036336029891852272656810568733634476907168220483226313718648696897759995179863099015592257020378295057542703493874823336954621364896631911405671694499156420999131730433819358594929395721338500533711442251601185636079877191815062228481797998387659667565794495039960522925191957972631767041738106967220686234584080956233558571071694734191297098366201798816392606258682353880629520007527956319248346247400603665414960490251332539235870495432324173918275499601244170209232737478420555399534765289960196246989489735431212516273634503956575224545138503551754652659791065248403417389772245047621483627405934697274136972493074636784500111679917578012539691810906168389188483218747090360104107279958263113735625154683573961977219764284431459049247312564761986427587891497365000502482688780986629882117176573119998890453730415429621635547872948759699767587078118043202007305753612219580121008410628710749113405315456411255171114604583183002392731607830972435963167487142977779303085785177751405052498199387496730361334251477288474147207493446943774409501854582759120283329377141249056242355719221177032504267079040078449881698179538390707700173662524511268223874927072555441053428300310887503887941759243713953000842614354452010353756779405654343517542798177269121839625529971271992489519959134731179477505519867692077663797627230571373555654815315263256095682222187194763527106557009969755093420172360708128642991700969004524517617828884900801425565033776942190186228099310000980689663683660786204917416809046935957393809557739847524466745218522535241362698103361689949671391489867973554996627286551799128584519677570652247085496780515967374907129561354360397828919274458317575503177831106495351529244184856797133935162134650179350551157693024121455241743545972179369361424977622613720501888444279233029984509841847726329709155022415388537252395988023802318350044143564511098346215963551049659558260766330242402340018909146909578150723534652781860573753446157821210635184366546633631285716866161931835348189878522462479906925071301696869838991112571824322933239095020448837219619184246180448329109239453290175013784859542153002346137220153564842815287672734935146952630612751369285326538992040578622548706353230783396577473975566199214886782181406272248791689940270572605387811452577393630786171886577990166815303178880005155344416208047658278990967672483771819161777426299409888951657992292938408552661497150407553997922997735950851208475425202029689473278454025369192737961513757565631816950745567013636958706631297192889237506203856164073090549079431828319528907807644264314512922610482547125960991932305024670810885887099896292006432544168417109662374024970717072011022160375760663081229619241027180621988288197400644226894880493620017075330281470242140915529931941363892511402429735004025236145027304049406066518122360956431804032854390305640358274145061644586527680584697054074857033436681485748876627200390519399842683706080917069300805340783415531447888707958552511799864741391471569495117524733459837930852747098986895676095236196002045580214241410078943895978353889901347989756110131918821587506516231102682185888215953932932340874283520806127794510152268695817246367215701718959657947286614353673628962521801389571563635390853107808383042733381033865475399520643094612198648942886195991753942259890967871824397677496119955641397368073995811013013683151429536063710357850038246388446073884691315217018017319409705048000015226129528677436416861373448615967659460610267971793097626590276365833425519870383192032344147412216961646617353453320513952060436619750823544763191569250521020434570846603231768020623412858531111774779119271127593828252417930549572908485059409769923363306006648073675527700212554905753189870032472709928274760893964879106066758299859139460142194461569547519740276053579911265881027355935497205666570491372754555263722107264929883464168869630425857266538231656864420121138560285153736371971672674394915949045232833054492241304280619752625925053457511356593634322098605040213154675917695186899479558525049216494691126534297927959236877215160742861464807887565209761080909005395633580904592555493311718796750045100227148045357048314140280614152438067117838357647774205633961992894785390659108468141762593726843423404442861940821393430018342560866339092734403324525835016519017389033731762845020106507925695141329898785238553813347717435166762184195641048220360609321853843086702703887260964180342446396866567244573512694527832562930758951755352281379592745510767994088334504227171239897785666565095970009890335304828128736533048347233871486032202957034179733014915642079719011808669550382392130598973149264614146524447135544986428564958479696789310931635118471451153255570424506874638496461092111750358112704171755308346689677522099560812798225925631547684743889757031427199142744939461176335321854256743866483391463999632473363170730282697824373845364807263071961338976076255536702402569373500501884937947143651252211869215352154959658663010895328560849267593042009522757404930009134177129586253217686765073354877880982206910548855249860571897041098861532767572477114351080182296170214375246562212003718582223695529828644505543250935383137374004226137201444418584373382289113261455493326134680438429580841442866915053160382672581395113599174459745476786554517100699928646158117528322538406526201170383925418623742425094771650879528248957593243001307070115255783172895969053247245560505914779252238422374818392363203851885443940058703334678932189629428867272463913174056988591529667241971568567625789085274565448561822410518025906051342434495354750165567420747988677689012982122428738040932404462094919785992168737537073904469874558045462733587855495512073258876041618913563643202162993809671163066187409652199593925800825139977458932231415620858849154404918187822931467278875923191056739716147989985658190946288873325104543844085645126795534463910870067890040888911771095752718479407753397690936262425460181423630701707548057316405220796732557195445525953603456374436278733831352136126227661539887255147183182199086378619240433308423923606826660041034459624487718069636079768536714349705088454580768370265820406527706577956305096552470033156568967668212368042721501119770999659160688191153069065144777804393634828035688696709993369515107577999121697402150585246821127440312711678159279216508203923116377388832500495205558668846769775255360184176435192112403770350324429653657778378771540452730357172242243342928626380057271088709311832619273743791370794105262247583483164807249832922496777032525133758501650763154325959519248737156703688341198259976981295867449712693182737333837026537762483096647570880186280231456696420819577333857506361754408098398451451118298440684158576181076816717659409175158931307275659199034764500905606430876774274581694346956706261727714621930845757996218015465087524320469794547033281294371571852344298708079830812119675473187861947582664480799674878443495154984008260756668174246288552138648684543448048067726326959375437325283741150653618290430202957197726088961132889077398253273438695607251521895063283029121319050115920957434170817956247359904116257369437146186556353081391927384760870929465583202726029914984111013077151838402055856014618130746133419823581877489605209817171773883345316187722992817128027843330370986237807892581656425862518888781118663009823437513164982999639373879642032144063576334231027716779224391706932412338571545101374907465454157948787779359913942397492391115708222568797199799958112201870143208627384711734721597721467036547134176097717642203864847448496212916827256028350835085286474257083741728822861719065438811685856220437568633578532621979519414211200290402350082834024161250396987291741981738206523237526775979313479020669207986461305859419823954888370007994985167227917380893276337975963908576249083662345062388888247851946223707284244237105841726072598251022322480715709462254869911510893837016267025418665159149744636286364466467922616284595068808509908152639810508171116563984782769028083820105370629598606773594381352050552373817673868033926244094901430804625070415799080176127600631858738578320922152468155564777677445725592451337223628567921506067063345972308988976783921831869711750660842074364144564645549824454067963685913045312290270047647830384032016348828457663175039943343792027795322402669275389164975281793432031918748210388323295762097140355245688428498624429237626385108472175443805076342867599866856161449272021160547610437967622011999451928366687391438003458112959073259926720521055678112791071739205865879572287920027517521422409442479671909402183950630378684177630691163593021982681490113865861515102977877617658385763664383952754370549749649721210664970155720485574021225049482790974600470027811654781041760519402068452011528056931374156705421728779959309177053297749887706478258979681116685363624076122406130931762231394774337745632231416045168617961109654727563607432596322556848670476731868478577797335770877190672795267827979598862243884973190625428291938265329984538701795229782475976694894471631755878174139482397542212752959825248155178079266136202214759809305703417075182799405812260343076165601262249361525859044384847413992503383305411254260409718069847443073448290469679531668488113624371092495184119184114809174534351644684148350815810895660797807985146158428155521538783433705601781930900424257939970761810155539072357429376741297749915996628337666926552874747056311689496265609236341355394377371419167425511682334685296039325354747493348044246833904202850041986062483693547525677097899260871511401461132221056495424361253137121494466449069618752554012585904062539968098975444006067112293324310289193463350418224848664437354652970671044177641096969774529939830088961614130941702338969352065583179698575361448216090903009151077849780984157211067551004361929683142463639792758694088068030035053625941752824242410358653369826921604346032060205636354307989624907693922285650161727913314192095513489496270227316444147662238279238775694144773456461771815264664995525511229850680960082239565724141000720892593599629723941092090152832098455315160124668096925038975379356934665574037754147800602204576248793102451468847581136951022036805679588529978256803436209233045487581463329145173161515412506058117031057711900766625615192765082068875684807420504298228991750235030865972274879246418847165674430924713329051917046254542217167174553310253746692820349295103735068650196249503761983892767462504633377138246429983052536424678328347647919858803437583077605461810016158922581999971542371745168569821800362861072136726607933841936459357904982612524989708718996673105010301194293460066768851718026333197749212152152037940385063189164699067485866068577260573936929940313184961602582219169546081287281767396816816610929007188390539128019233941464593994194647488750201778487688496846734292310998967289492080573084642048118865969329783615868919855248165222381845419765143126693937018771863084924220965314861389550537771496599123650077177641683569925138442812031024199071466013337055885269007611659167584146422520294875678428040486401676252699461644331439471222576836616229946784321622326161000823204163355003211963941691734145783890834485700011388842282842698577216464446079175641242899052580435480330672398535950663517136310372738982031814845169139764670082565165299531495793535715059821505806779367071467930474427276274908990701800076776381777183010526669942786514312166586170601084655358456239809029127715780144212919259921468135983037586356393091039371087210235721644253886491684449525236832980064898693886437441544576240418453748826178648148605943469866386763825968647853734141978362367499773271056347331319304199302485918926832807070792089120467479970421676559180958649278769121523746694536187621199683710200559583122284278321388292377770493161637018985825957974486961563911705565876614886091598035116842173985717562333091208010626182166964960736176440913157436062073618660689952399550521510045613094438851069487150553746839401234169056689372039616207757941679629101914852979403630515129314763039308022466916680884722160071466655039642124424578071950034378995254696705735043487389264100750099180171339239707936797734686953505099316983910598385659158248633527762030420081032334939336854234527739616778333712521018384234004085450921460902320787070956743360983063590442233502309675500775000603505234291461174753800084255647589042506741538777001583079112129609085026273307298695715853187417626525539992089042013007182004969960638861441023148504792377174108589351702233321636324802270028737235605293895584629835129054767943816938877973984541479520904049543257969363626346903316519636456921525700150236957546112575751726764120212518507616372088197756759615437588377678538138473225780175151060064351232216465259872289062063432650573635317209824207012717125304331596076664712163608717073101985165625983395834778813498618286174857102984001172698378502707641714379223484824704126519624168439722400146194357405715030876691916552721447581079507163261053302477222248490782418010933016653028455095995435341522460498279077685283123037610623876946598826910741266934702646657798040408997046255662983115260824478483148370082656160465663674927256899418528074653214529516975000647942155829087745886816626209752179281540833090373776430738504362709032364500484642538819451398928653808356128943945461249348584525504345190925983283501040106012978653895471035147238954980722104842988682185132110642351751677127437696466554836153441497914791771149462896987737112536982179439335100708672151497290546302086531401059048666184579029359331615567308391208622781888706341929545440791789421098435795213201976444562326971018991511907294598301560137739458687307111449542360035932631073839858342275344101913735196957208874546920945297037144558025953214028449844779057673333336656208877899580298725657863357092712543492048933267860052832480547135745482407852457193068615904554790876291365804220973801988537805988549318892955724014302666110598439938800496658311459416360987165543410846662192415393898817466507090697054378692365634380680802940323748530327291135686338317573247828966496758984198416137057622680885679962942481798142480496633967685729146297074740341338702285079979225204409788484380982141127689875074206548237008958371973106465109172510405920833005454727923173551910357552935968576029139244360343334059113329588643352805692170446698864041529106924161466748522903531261229508277948455392681642027487273880566652757174815556378446450042375479805028852978884293139044040651432060534561831519365797995453429979539573958895379442471688898051113461689735466570875133738784581775983057914451215478489341384157911131547588043235909677699562617704388700442942463424726684235582730194366901297694115831627167942602089038297955185942515438306051613202547965739305130769648591289710217670533658055440792726762788531945000807256419457916839559438182048211042766112925324748965102798384767272177230725934616682571513776560377171742719863762463483504843361693195671825376364299357772661236404607258741552619999679865704270429647063842106826132393073601158865471030257471565902564388524270933392182599875428844459650824527001592632908329927114939614539719467241961428688714771961308989990273366995884123455969024350848690891532432186017201551053157243372144084605573482796750376858132386078338401811953783585578728283050249414473283293379716943561863165902731505777802193090832308248049892418147023522203084130383085342294366602811491077083585699184170882157903030397109525159935337607207655415840137524793574677545837077190727052378669989800483717098198020923613674328218235780319642657677765278247543394026301406470813509249221631577576568500585426146873377477880570748673600891972374263687198957289199504930106288915721456187549615709786227036242863470819346846907533274132270358611903327635522238694199633402010322510900863359131591994851584702982537190091693853677944888441116862323580361295803085838325363520010307090365242192318022919853800943131995323054600930038122708130277744922824311979890167755008073366994395624757838349936155890084862340605287665668340130602203333447208547221709249141150733554365915098866364707722550991491239798588308072453387794129575850680094709627006674199030331876812201610164021768120602479156742971773637071662873189683963137838069396250934419214853158519446622393106309791605823795628568538731777928894580985116263786833627078780534516957327426765716498255724286540978627405789747217786933554283715122143275900985032063820568492011849101210679435066289150749122831690765772853579956078748157555654200326500912706499253801517337037539967977176226216459553780480992474701738352151753875489551388338158497509915722427952703060484783831921308079052158644985352473241142452726995830269836996637756510583603762754043084999185535985674212510014275181280119457346372053030176010251554362537284472888263127993745507038902319599566308412038716836746839628431439279377299291271849769043328289041722388905851177511352713593241694750310570231088253146067110614664172404415055411178646616215616400452005428665966788665043007855109843545177267826640664550575961266828400855978623200816218977759423637406242140649948629394098712010548568599821265664217268295040794376975029264251578901040725912794516592161221642016599606432932744249095907055522159156664867344545853047056555721624485208795920631254082957359979681173705892522494215062714356048444547370306402384766665392053748805989624102866998429669721057038843038142280152564072560566091202675494734827089165211862184263204111663867428980356473830148446711361465088952276304023652154165404820652116156936086236762495525894231570278174753320944633280209950210594633098289558743494692757109299026307002505725666681464218588213508877247309845912046070048076736229231922861638661452521352942697292817355910305708361841224523192662861749702507694265742628448879048086931567910716719461338709134240921275639072977347901499730411204328443401199110614067875164618086592813630228550132136065493261110394500132385442410092200651728155407317833774374833544160197725562327852478069642215410946273609367733249058230566695896902562068021620782507418620411885295519343172980103738934886904504230741263922672807378857433091853979468716143991690786606239876943346714434377915695527307967666214026862017663882126176408679132149933051581594747187621707270336205386393263014433275914740945456968295969991456326360054339304696610658284057019309371597995387815335765779999036244707674121780855781512537453055565571262764686319492764382921113329695867044314063579854108921868659654658882103016080046872818278425794993666015581038307356143490904123040085748601697390364639145109376111640613327605044114697214502989304246954877795025217129319819654259468235657227874924729717000411696521926456077635377897688712790567468328336027347047633800591507998484617320974574989001843912753347770632422319215109766028494702976195348177548795023214863831973055851004166363688706143529080739029521198593648144256809551887128366612728781547036928699966028128526399228425692046829713153895881098729683660687231933545710477940947940447479891088120776060045351167993315797541408379227174468604950966129293363252362154014281625536954942921592592831354979144786845540279637417774032580317140427073814012134478660358294774355513050163791440645509900804817127977755470733068117965750398889236646769556552348651515508457156676487510048512831921505124542609268745372077801363883944973657257938875128325536103874145249870359781534508256448429551872327396809803586086678632478910543885549798723956247311485779221754892158929406922250743639469741888606852929315584783700521588641456985482925297899442540971598233772627012220377511096003889795663146566419802091055391478230762624897979442904094373405012724087850294108953964308780574348463057895876476944729900188155650072694876457691124066230755174217671446561347357799284686198396486134959991205110617864185865442774173392515951912129487502043400802617677228492025606286547120930947037358561563174175417202004745291140604040843523363708237191287708799863276234907360781956129600691999542235637091401000683911769950658424133275597067525047080070894588372177189761395204969237993395888488230368034422860931279631365566637566165630303772098755211309390245402643309156767323757618343867704226991151747994716059482814939976653220827168202126931238283990920054833251446143716815038763691722467156066166786464541439373278310495512490811761238703022171227611493026349914378671526403390019957406822208561645369290663661865362781806351291064557959258042549227031324669435557140797568001291106503142778771747628614102593796171340706613710180144909991234394971922260107438770845732845931157620200655563646450385173230611954778742450532646084336629086304148459114742996230792814685199687364844101929982964820569541106460796469327900067988938057897729376218061792224116460962247208688949283495138225193345682706260755144763754783991653304038539454570755099607388727545928618280683200502470736675799769604895357146330914565727528881965094259019113491625304334973358281052718221498004875821461650850499542857057128962953126387895190440798820892112887312078746829315995513790285618078407627678770756414952645121333933644078203722267604277458563710352894713936644586809442433086849945981549177698218584513944651379952774793271968461805500814798737709525455434453244362518421659737036755409159089779332244454398276895700507809872147230149831017219387652368170115718752008384852069079144869760305480504190617312521709513162097060154277720386984324165671272686612809811063465275378060967543528423321303812944365211377592300330293324507327599203760870490177379743362257172041487734881437827333989170959075105456392962456307193714344679227336112639319540719901427819875136097056389261122595879229677892500936375780446212231157405700414668950846737334070002133323904603158280547288403519422878359364394048260761817454624705540649841011096813572026861913801263731390884572847829531309871215677881539459643124847402828634234125613998863472491881394495567163628061287258771407852947332056321021290444518821458350884459987335305932176516278539070088454903246337192194386235634307275230842995935533840194260845980094172585125346488477818023919062000231900962801928501943489660227755380311922464527283719004420671355065834712701286991198430027433360108948223345987234735835286004593378547781916818126283852203623765180423179796431695220281250946448185346087018291976657293570316313586551094893495463289975309977437378582052856706355281879366051255915719545098789542332015692340346075449948196496836599528653904138813783263376738845201226601788722417053731926065089286916427061269168173645942160041467002307715325790896945778802164685398006519184128147812967360083534758353313579532332651300522463757365603829570141153341090583121910647387180466473225282089278536764470683478620290681878970185565792016342931356923786390480687751895772371857236066270367831096491825318658831866964887604486847368512164582576393501172437849260086761917469750796578736006141006446862312126283752451904762814774321414124459391389113013701344220734730468026193362851736034259137558461262493409279885236489241535794968123957382478502920948980163962212309270509821678925082625883274076609800883024614959059715961742808180797902510342686318654269687474275132453694375486061848487388007969426249000985210627908344101014115018105207174460873325208440406566639653284017719596012247203486360557921335942575744803865410802545438564721824845432799170785570965734485690360788136836002218555194069115577850496546215509161355518053897621686683889821383471732613353130816606527708438369634140674724488438749055762899866733727649370875339179442371758049178905620162634414441247233033485305627661685336017201242317903838299583246754979127420540308818000029424109137502628943357264423251557868564731965399842309171088738552755883899769887363088167862644049927225058653835490897080414270767017397308154702415918706820513330667329731870000422491089858885088803624957610638016309213422656097279288225720635676581450958964059450164079260538805071989517152331460055607390525070249420829252877572678521094534835452808845079840976567944130803790457184705258490077893993716611745711588544770634985596553104791637054234585722392699714116186615343795945157251055708459419687804403002558309825796342812304954613100141707713693285100761695943587856849000996258870361059390837206624552072331933860907259489340006153837576649114760121751524991725863012596307456974171170475030172677935599098970523735363786729656663320021920171606407604774822401981623004562567733289695493664795332194282851890688807406172229020353512346698162012367750528236680408338173915903639996176065417442510574299789711697143976072839314682946734015615198886836669906575406463452603491983116645980182706213622901028339990025992904830376687995980548363073052658746363066051657109912572775958755655387508128441111618406876584666240192573491123560419070470500530366604309559452479805586785905480147112980653794549460988393393691872844102139434540786500545066131844934226849349211183663152543154925971645305736006550286283779485970222702521637169711693988110141466409494077930456720968843964601780421496244806786267707904356452559429025183191791740176513751174181129732219237768945471380656892123908078303574926646804519049193571688188110698604153983010612235689892090208560986245749297931341084637412324001124963386392266900577641719863425846817831308737571057628384624800435334391850674043996429816120458727595103598350301853267112697308632339118314642177303779497441517328434942201252997443904163359016757854561666833389787444656091598081853642516734575216436205089364901487933752575448122012460932277986859014226609191830807393913182991613387351494053985315332163561956892706329411058389209218221811618182449348657833374350682735115289029335627608099673526409066934332995219338403161825571573230756134243095031120863061349079745754302183741887980421873203004151129807810924989286826044980193175999936405291043793181925986615010904339321473015035111322931781493523442304528245648177003383352307455384886602866026092772810014397070150232689058704826487426698748872439954343136560120740025428020574427198966339429627937410330480545819827321824240018755452297113342720139134242494627944847152662442914774631236171915253273616025538819511569538274813087284809273308142143979680252150127706018796064704951202890960265791538317621591442551883080500724803171679971193278265585000082219508171972366775530306275813663229188153684370749464777232771251978331239830238119221195811281969820478649534294677615277267784738194590206388318087462386022548743933980547329624523681217326907985468261859550002824818899440877073872706429518986893928943789470038599680001432591506612565572280492362001856237876032812364413365311017005555860596002308373808720828898277189104478982386516389271929526756991600641850763100190777086893488596227719799313502213824312237475674193075026116264504310304107067310457223110122719710762038331737055689791231900671418976822644271627306491919674020421280537235693630275847476505336918383378814130722703739835531807396963474259294616543247361644100849367644378393576123306345402983517507483383923503980249440716406932719004369666656140601817003348343791360259756784417717418623529029672754825171044771257948573408909503011312569432640760287991491200789405972677149360496543651658093859209628488701469077086009076191126558883626251080036146424472268438259097241605263761076656896401982688592669040599366679730175578560697974486334200033317977491047223385345074996058879389532697896293423116683429236528180425374622751445931686386900457673880582203511979039294875493869114944550088666452704435949092215515533079513264624440644493975743934132712693189319418778922938513805212830377277599460705764731736193298059074881286901107696612758973969689531608681668496432664608771843110461961038993965611203800980399699349554440855575648839500011850269639992686925512495877899589451392884689159828716463732412197732580712648058922302349461711347667142553036447762108424781534257493113110294721595825351489087217134449436833150440959565620716950256003584758932712178584968619887512347029207222221736070131435888995602640784929637511616052305500271325760818768135113546785774078985180499207199723133807022193297910913615662134865899507088678782947465977570054781936290981614248480992453608737732781145503898701105758289734249425947971485285376424753914848461896266985039111301688765490000794425758348260510040534696879950557207894065812027996604189828741561290820473199302156802601581034005836176686964459756302114751305969694132762866170733184965930617698183612662461550691657440619312320849882383117343880405771758954544600524420709554253856922447564882874818297024151948500230247477884852705736067875990756474452520347696950186705097075240989529008570494029253359367999933423683830696513916692121795691201631803265556526056409475929296498464477261402112265632992584553962917665953693784232489913158455293822179615686314773811307542655810221363357982924898181630565126306775118270917508572636136180740738745269582281608605379901995567006946912645242981473920864368671100732173918758143911815859890111998898651692510039001357703196049597015580949958901023699454020762523024752772087965210378689721191729041037967230452427788856025784836701984929803611585540944850650361315284566176518580152803586239798642981222250280980967295828739944959769641644151613317158647638810507542317280453422892167265932183514427934698756233000584101791624514582387776255236605140168327279634524267084412359608860966114796612548317339108456019831940661841806084981996507024584794223904873332892811052764434628341129386365421792510937739095656381360399463177250180907990773288383539531687528893752881382350014434961319007962009374919974541881822720446154345651382624529978695974080952181152650102500056986845652208230340489279707247865849397847343637105061340271569474560848643674393969087754913041481454725056511948691826483479493277696992945449924781179674175271430960935147092349388486017952191678719575176067716919845542692651138635945108868436287184053067859292842426392174876045172842468369073700923712519437365731549344797594296789088792781888869467794955637926743513661040601510843514418074669039029155472301188931278834308754431591187123122497502568416248396361210551621585153379338926835684912309182302850738984676060968592494427431780390356274610312622712168598258680451615354964575852481060917150935259900443869398107690576780165309772565144541738080583179628687851718713293201022576193793242211830074843050727730402121999925025523496847952559303810668445445697841382792257058025681883641071609063458612150416901123513067430442668805874309150525641676858626240656888148664369574152733757556303126778980485154213403201849080214594614657435890717191550172694716220061677458863651203706330818268951866975716190917806156167692397535413190088027469208064166824768746897882430159297009627206699058526811896829403310186570755188163161874310975408687332501803678514143036564862669280074099352806867963443493739370923073865133570530416801430690591887988858807132450250945158860831599731842342956324401392356853431836165574020278223168979728898052185780396343916833218973114218396852750009726339247800349913224080158209349503088994473176380610639789678078697854918789767233314581917338928020027561712482852312602969912108546768371102555811679475391526462800629006074255677511709403435980365799487061684110659411803604812499169614265523690548478831179833263148533987816147397294540457966266617802886719097018137147599879000095200945280728570170001841874267110832018177207386843522866121757762050475288118885849415779387414790501979311555903238667474566759312820836231992679405828490310791916624233531235198603253375383689153854489691722733187552404922616120061235332793004885863493462738432742201726122657289856221972454377028598223551581154614766916735817236695491217449354124944992737673660098198424835594080716914771155349477159301060920002512584318343449761794182211888984818474219384891008223223364289932407531758635356465081883553300159671424029560925706732672380316832202156609245318308187985285815108913954460367368235230804370190192572013802050849445244079762838293760708185680718021706458029339402437909209850981547952356744644422500878492680929440299742135761577711237829585853345492450903089041804344354269755590468994610579917295988786739523218464247548890041090890209794799873633396895425166627182018059637378054501466534362024330684627846394271198269174447741683314509814173959049624136728591015474498136506511188126353053442848929997340080947062508127293890616344713534571986134704694135985923316334481184201172188998733804733120601715348031157015861245445289651951109686870237005690334404490766547556022473508290367364372704725336459669636261690617648195114808794159639752344475795623367010014430371813377292680251053792563353995708651669467767523644582149231671338549503066954975780724922816716243158117020598699363740207739471075516236521416403036405933835327359800126855269398929085861161874646466781277427595397031159412967862390785976566106542744226138213852212522732374035128766985130327559405574996822925377838454604048154331407988172031931044435626360355556084850685143547115537224986705808406071988358140442103353618669310732000980616872194997962826646875220017195976989538634137283591180687899497701878348029631534512096477299162337283485911977466229180670831344846586209435132044813437183329688056966316612324027718559758805897367639260374642731386313457303146601349481586969642717460622803384752042286383598264689524013909660186725923142712865245764656941207076276757955007582575039405428122026886561064612675313223655265344429195851779503382115626918746254505964832031647676301649377893543906196374323612819560149743762410890464886495067452931739724513185840726887961556490961541378404601377331058906426941438997414629025800566399400745840255601233025595521523366231847404263013683234749761537871230824393745037151759571882001312056159517767277494659196616088771911657964141220797335334248612436661421875738195749657693697319689195802686737577211525138873569304051026577256760325251474973007327634146973981402566557126162359516039058676196286269392676819171895404801618026769660508439311578961916389558384259083730521362499894957270319104586440658480717856282852541852696270398761451653780248259214472090346047112851444338137149636186952201405235711211315307326470413768261867886753875489263221179756768273747987241552504997883500968713473753081878498447599924170006979713910716615918919880714065587318351141565895565198845632832600228975713260751663210769154234447855798334132700574542012243183841385560363149456705614342274430535915801626112233593366825628538720054871633244510894098568369596891597555428610551315811573005461488839768789231489953294614543290195034591448657346392084857418235620753864076622829273093377523489097407608904313932013948157158862904764781766418571309007595274515787603657141509029462077139120105445094891665661096947333632071024758063833980140894277410978815315026875195187233112621784833862238096603508686722344452490679419622864606345485438478076817968126886167323974243541196394627696504278429601015157366307582989225396178535749020124771566810292119782330593641605016034336028457261896956055362725410918086640772565617446010402770557201211551286946226427010452374616490932365487835714800765012075185187766218001324835755322606996228278367478489804576329848738867872290393837604509830391532592435073226948352145377523890920743406300977811859324340886228602857028355626206738114527987460481277833270652447234618622672373724776046457642808667848526550363834629672978929984385068002185475514454854748183381227378048939801974295283675957754443300975566430652322871260806345873530988575909423689471061285717364564546685127686725174622822742587747360037928438774380567516294052610026141844682769957659139721535769267083178975478890140185931643706611028076926007163836182931608632877095632261430553913005016969684432176589871495405149978662722180349056087515907653343878276022301135209826495174404940728945401825832428751627974686878360698261714706133847516002923857629596024573990845916610856869770118069476954118851958222827437130787248977539844723973667392729638997876610545785510711616888467809824357444254819864375766612752215409828617381616929908589441227353500206536437686152723546380495302520428034755580300665634115564822974670361734027593071758293703167503885794397829684845560548863072364355858212745016917648334183349759715315026173173910087103475172661103642487235987490193737750565546384217571125991088549333469323480633253505973069953963623977337247366887455681339511786039067468556307451021213050603407296079550915425535389753595182971615955216150266660182988531384196220862233735063823860879785529772936259295320563663597773357369563732017201855376249631057259188904698562827949901626094244731336820309730119140312245935307249229920497994827483417249735310087630709619616427647073148538409705834998017484802036532054640658012946899637728245376385559249970873093892689657344642245047872456783616216116257305287257767944150296086801682723537139297783147372419130339702452773476948425217722281861751612056389358984577471241726308651180516661265346726820600921676946758897405307452868552243061585032088241097237157743774989804749498666939198466167696305876636590125575806080837470827011082796396865196399536371167860423945952174604067927489869551399785161449973128602380784989030294502492257923347863162616180548229484272737229740788191575639481366254280121987936808626118935534600253591843591173161178054693729920076438222380384697919563438543322647461809211497611352839928932261971732284610224691009635651072095191573456363314997197806270157282776789415694544191033589758368985677295387150547316487734360872844310093497097365018037838744403810213509428681163530351906573567343375417377856513840818557480381382118194733130091963374229693299845153606970108155620300223684803292208350801090194640950044533776583870382065063795451188316543120250002933578647371452470515375450412947767075383487627804395992115507480588306616876891016305274843494540708645798471380657959115814718120220493325437885705120079919356515327435232824110399073429959569433693036595213745256005109237674576495914145087952683470263739462894412027865483374939097960853694714927089221544827731451480172957272762070125030195166858071244111583942764388987735822682121071277495806519595528428090905703372323440843754914169778069155248098909521969377181724091686935623653989096204749537139149690200724413265266321386052995639852195061408654896016888047419884905459416783345407576686639334035979390508067301246991173757812228975865398639152753479166821840000912026151871119278725731410861458249238266062347667338945694519790334899927124048925983646625577181576756899003717465031420323377069519512521684124033132494563312294510329582189532563910524036512263311458981674342779123530742445514672333180959514849907116618739364409192899969064464773777673695686074571989103733789913881486114092306596978980115723880437218879533933181040746760266274625335481850851624469301929352956777423455987065234182252820378480747235958591563162542390075289819025054829250643883876011241930028552140183784277577246250625445769228034231962651562038586283246193249229909852896153440510602005950079648409041461620151073088418525434582762764587286493244655720001321889506691191192004322238132575485690266044756481151880387399704553484696680824596672669880996911453310026066586473456887481540513372596710776428746454306948944873990438389895178635267356282015815631245586775256541822992717102710437833200597143548609595894541146659470545401422481525891804614039836640352597162219505183749964607774376801275047949066820891468836842350700728163754900396773650578734433016897069579442590906881346172009535039487141804522840106059063063721361003373292519073893254681301973104250273259961511425771536987600769519778090570092682548771339665845885434271745593382401519838967641843380457103893479940775266207965437115804646586250848898332093370942828634222972580765420449475294835582763554612891235361866714148895739004146226618734072453899449331022681473936587126081459744486245342568226351961150017960753713387753586476972506569686204469840660186144713329449342512508201320577120025313892272851494275222351874146219928450578202898163125685994095564706544972360583453322033120188306120149618671056154167786674771116151780194828559141538887191870395775582957113105710795397843773762147521423219083568669496637571122471538557829849539291183260536400113475850450682019241146638060335437382347172021416389716850332809883919112614682343325661777562517798968121406201395859255650863334451985396037467086265868046701936388060568073776260199497619458970938925723978737807921022054694194391382092483288560329790940696874371949002130521149548302549854509571441379589217249984410122627216232244266071347356635234836330746122536516709264794982527145269948738331935435869523563228298237509570380235191473856799440257157743419157995033922664340389246606038274715520412776201507163611846253360289920594407098399140838048566767462637993744452943256060903253018115934080006136461645676742924119107773868233905219550277471295171885725551234058003435669264557769928544517744475516346724640837892640658845907018104338831957703568667838793939492690889319537420021158124027309691511439019171472850711719626780323029618127399524891281412576890434237000011934736551538580792080186445305802168885711634791580133379092418110830850422051127866976130664261242529409724699938805518392813756752827660081307649405463184915928114360135598406432979895363121297646153290387039520340922178062592791946339953998960067066972631714531773030101068196490596519018280486481034299237525769787421424709879621798538841240449981482244474352987843123632206065731071666337548620056362987534894838004603300509336146517132267908599753149459137549564619232887231850310913082868023793637248468322158291979244627141018048252067614093235398194969403305053277291517089099324957070583869402535810564141264335249736766181961435588794307182499108009997908934953683889822995634704377670148781851138613518646382809019389021778998047776520893357722531792721743639784987604787516139076241686578830880564248508415771702144663170547694847987967015961100425435964374851272849807802897433356273214736453710922434802885818138487478886856387940440756364160097928084261117658304498578177458033093993774313852495517869866246251220870043395845307894082282683348833599742618535925890696583758047392876415131367261612649725869726780304257862493451530964716817937057171648763408270412188548740719677292178867322826637963410477817026014851207770988969014617822038994053355062904313154238675191165943211424388938400790120891419853526260213230048653525234267322941663355950216925749770543795998668991985813159827923895099673200472636306364747705370491316990661170401304619555087205602777537429967461017679279172984963615571144796523846056787186738809575636715731595765404283494360296007491335330636889695986402655480115159067851753403867855113620772168491023932574602218591774816165741669354106580974809045905226858596120377179245470382279175901935933448214986184111341723976183039311843006567192979791376163819904056983125650880078298230567686024663813997905953944905111324198048673556302576828030195564815317515701167054272321274519974591338876978511753479092972479276630055528514914259217935066011838381318884995539799870431735698208709537045443442304306167274120565497530569156102735627766637467315744696091347965218187655283666616631562092360487960330333383593661053948451319026680977525100809246412931961366003253529020243709625993050982583728431796414094658769025084443652440666760545132467297434404624132355644527959425680249230708039629742259183857487074054130570961879180297264773528756530561107799414870617553188220350565961060006831627668133408862136410208335703447251373679854949904836525578738471243892682735451257723922499360609412267469549714941941428961151321583780831695613596492688617381299649690086162323764091803165387935190044126831668336574416887458234113735722564559132982555288066910807647894604816729957938546804079652808637283555124458722538895674970043597417966416341657652079206323839801157288521021173885417661021267942815714456956689940317830430505374015273151341977560147876861866886637459512649661385565340626592238699914407658282583793991753669908005310371978626647459123094320190571066979995019016284420774442821870444840872764879232723929721439889486350629205062598160787633476103024752333292198633967078491815322518449344855571567752758043642000857381372432611081617886017186958172423481282556530249567946200822979984908599140793312246852067474377612624385546569676934916440618702422062756048179696761607573765155122132316536483686148326499023356578375587920646354946988167571660933511204133209746284402883373652931365027953054979640493619534022846069614215244468513456896832453326150198695093613137090675179283824234054398594069297835064004576253994160358578530301600339922396496711215874780115687559229630300296842384990069843086356350121390372280811779567676008720585212762458854813361689384627907271990876945410122863898985659874082376494125585659652818296284913878294222911384037391575568510217295408339408441056443027490993636090939770562545289860170259704521834806427108140168887809199075530390321351776091140901707049700028600664974064994644444480331097770893886056253685604588668191267012753069122331626039227904186904712283384781441518942537456460959745757242327141436032356638152672596729051717937034350893495259492794836941282228262916959582456097873409250528604798491395855231858885842930518713228928493864849919386140139290558335599987228026092033830655239066388604978212983571275272173197926974255052340851726960415217378885357785273573858903296512781573958984635960036707884774564026380315829588957358279014274254510970124457278143447726660443524943225640485738482576073048327921550341130895596713195572984627835010218808269025921003698837032900610805587352401397919207404491853407389829333947741499771034482534484020251315000305964125881188055842241903414015777752126961007374167898151219990719021016379787234598495971973273593713503021707933492766080544160818580324164980546120075645813832462074941403174515191618560807456734425176269154403917637911667248062867023138298191516609148422852561381217350260798565095329483157596050208798118204570584597073604131946085407127583119865754953727382299973922122889938632079036943055534215706991553906800332911867737506523520461867069584173530286093846018656337111652048504838459186410835353145562025458632113491090086905386612116439933912076462036248463073653277553780313102917745242796816901510201423613537823289731610715578811778324094580771193745982505358246807634961381845691627025000452564331065335539629353594905992777403877210460034526690402102943779026594766196201686180909113712246120925116835749003762177751031492420069664420511714982027173141610009521126206102477049048698200099458535992922542090674515609634761228552254611341233172452972112784839359107637247214541913440235248732850052953989148941527657278505820896762188226445841717889738423930267007225652104729197408506513751513832285583574503010402973460755517207898091905224748810446124109574571276759039251746160473292587788912460091861401884224128988130690671808377346928169226897267566984323776131504509652823689788796307313364667468694569552152341487165182805777507708642821274929240814840129148968479704497589387066658914998115360121437639152898509211524740998511406261826488679915530437110618757219384889422917445873878426071756827841059232986307075541561359797824898019368760455222867331028878201967458131914170434409191522589080233300325376361660220375997395529157411031431071055614053145930165895944350030832051866865636292384180788158830033830632592026787725628663654894715006567115269581683903408350535164220720861740404130685189482906232168620593687756564659914681941123315108372834901226139929414951593757276928457449629405205705955690798510893067751097887402608960900425577151436639921487356989763303645839070269418765809358718905396173236112157749498625902176701842042925844244921376924705542862745374415670456855682197002455829739311006956731282949711861997503792705943518979132584866922834150302464516529592328393674034094888592960499216709148793866159240077590411861650647805393033777969774172249557841464143704070182594820393119560858612609097243396171162221166309275538887416879224180677866536804916360437983362782185715131295241500404118626834566637423811296281151459038440972680903998881852374138157643555280274720097119390117914041654883702718638085579446429313693365469163159051319421344366767252226904115587887754208938436622883210639406649051083429182611975820542316344449921255877394018630825699926449977260475605166850631787182675248718068402130956707856085003832107361688688328919583351128405198023855781008967399686310072838861042740708480802893876149533152651108871243100210444842687399815122647747574146810215871591768558665953920518387012949120439439105718280300880915582656949490026539444042679339202253110827972500549242637629835063676778444899961334097126242167685260277811226145872935134335741627045585203340447759803573973237229469239827812195148274847875043203516554154769541998744067481444112834795307600197538363849978090095448354155472773687102450976414001194063932880515235213413038199989861581858766030667587883083409863364568513916438024978232354169695130089071857422284383021180663579616856983965374921869069871521370054527546670775378644957937424487743158265813565879534208058530975798717097517015799768596535226552615926641941510035375439505932140948957452526937744211410839601870503971151341868081306627723906080619782560906258869992403763240440967837601844527078090793662564278484043424338256116290390367865263522510123698085422098581137165063872482882661391380857278187516528476911875298009799139863959405759885002896922561267307223694714956715292781306885164643357739185698526320243497197397792363971242940081526868470543362991242861727062824514354085188471349031504138107266019509633565417659563710250113817864253797402371651863080890029500914939372633071308651193675214746567518832776076322818434421526350840430384194013466048208388915593729721935684630265142976459927061075129420845728451229921774271870658375544130488649064893617815457512640418970424274773117244986167350235137279361729574976573382663329020110803822796326060529761253790957998667984579377202866319849586052307979228652831762886836102717316132089677288831505842886989843182791418780819675660569843790766387264961125802881159539850179844757052089227272248879007094769293173934045263229146219476337335465200951286915122445108561446633100974712888525243940162144472547721482393872254105920254121849421835938232060874353475064486666801890424728087774502183009970598936708996190164661172952317070197504766946252331970554753031296506645459379684479686819851496646457509044015952810871925420140304120623096569370159587457904603947752996696416846216460798569903501393313853953771609702489581426614510115970575789034551837719593432950523679531626731198494674697336226144387975457098950876663549553532961131012209605408258814785097745804128649133975832017234216085620424965838329308826833314048639344284595556674217379636745561157408661131127026714744930813575183497885161867346206857120500413636121095537681082046697370614650733061138478096445822846589904113802099982318886881342442605186441655547822464171634710746316984287556625615529169368772319472452458851056307080036393651036030811674535910541292154950934675081770413412565012751439827447725260134669330786407199719334997704397832499165010656650321736477357180772558549728037228917331907055162598544878902029745423781057204474725439767966439315857593534981459691136858384159363337651601334840371648019028518395576133068526623255642872186731320754360586809811762591420913471044499884399013772704642637049820267028056843206696507992457232015767805462022360674613605204469850159202999005333377082364941438254443863602073904869961472266295563213302943742088579807203994462301079179346000640175816265275823596143062264168541076842051863072823458958955511908029868732584511896715203033656339450794144474200195162777960680411608447272227072864740603159228547367952141843007975730034523174064564198842900620959191625505138970290015310139015981443132102513962627846759005400900193063811041260077353656530136177899340951082632793748497898259432500782417182820941710598606203667114642207742186246166203152687005921029601156696743793876599471559847486834313078065156332033377337192409366082929424130073735216264375868216776302246028299499684243106866601406265450795435302077660060776780431440680509695621002193527887405980135203697810618956804193021653589071115560104597244228031141296836674966238084555390138194038607303277307705744834474429061490779754997204173686034598367577044022278181194910414316202337899136752508553901607922006108143357790569295376211410212800041630551613797848929069997140644994763250694801376735752018195910882725942091970409143191957812291316233558556929068572717716346508572266449542308952647287197693573144722030114244237923520073120166682702881166841731147298184142207324520650792657697406822426268362052979787705489262564869013269236055570851342456986202719910946147503830171603900454611663678116580494775451900180725473801688188880013263175443062779638223173273565045297906572047655040233622441185523562035667559748261780062332231259521002719756234817465811793695020185268028221608238366852834192513949288373151422555240392511858117519010538455546354935819451421885344310739636970199652537271199179198243128348246024300423250958007351413369922019940370138041605242332827118943375441107042657978186535733363812358635367301092341831504556766357360635029369950026631553736800826486225691769354778165094859737202975999418796585053513186319782568975263551426429284249612824723094631101781133850166233128234984894925569240430306738155749730278957817018077317795279076322764152108081905443871963920582666142005312559701440382657812529406536743300035918126498352526561850544892250945049671117365826806198297116580069835831590049280357579377513757804371610385238185062666461323034451354596204343845656325786146008396750577546745307968537128036979889563148617446172409409872790643480382406181388931478818744691600776953836540454432759254409789208311096686748638078189781511690611491673942262165289182591864830444381173638420390432067056262645475283725134720409816130476963595314049122764628212826959205064696021466959944947040237997924096457086445674296483277930622682838664139129151793831461839634407537190256962757339082147433124609043992784621281866303152888751521918219051692731361174891587864799963091747199800216598194181464275493082258708121383712593160514773200677102771896264819581290363378349384049308172254945736513957559940635578982843492020826146414437800063780932634982148560564491917926017062985832824119910717526859440560014266427242729977533953451338704430184838621958184200519152652001785364107246813555773815843962619583356823752353679155706565541861673039858297464477059956651568310292524275799318151560479201036110906954246293003496985525744746223564711156740447878615537315804094855264135990276107306422282271500240129433001714936777164204677508415062283258004413541741153246600944067506636336699801701684893279426043956983787990495263957281621933364825726777255634247217820733735734258898930886377201245224796189690575139700996316336878129122454699080976782623179334576655619099367071154818643950026268476416567814287171676321219242238327142994926923508478077570861486277486356353761961819395675693449455047193639734686547077062291732811139137869781440612554788669671659338989377565798225926302302111550466787270882053771388658678820871711583175313918338154850271071885897890981363297858601307612230569591348925274016947274690359301608776695318790168481916862131525124007162280832746267197548256000081187372474251949762926050261855036571189567896996448917298919363793372854846685082966295456402363596729679367597783255035267772941310970947056564875498159592301483761363767032751637858042623887878656417689138302515233211038060757290334346614792156421174650440070829280844883777850337186865401735699031807082158919162612341855514328559989047078339199248559693861759939572630761159442174915671435057370200039231484983469738868485850353221562774339174157973920630731650076561755425341331691109959913790614452816287189000896335845647180584689739015407079477745361456829622384185226123216159909725121298545461619117663698183273763289805987401806797148791065626101149595520585407932022243123945595344854356247034150917398769043376813457757646347708851134316365382506760271215694265749352302417478416857768333907960181648691448446118395339730570362454568437501148050507026171190290204104638798258163070149729325693223070067857194146817938914370759683617843936855970516874155562162941801985795148951021123163903015097294339077693291056714523791916520934656159421700826679813359339486519328377009576719041982600040322837397723898020224782538031362997415700428345078544188469084751682529053560820121061467866307338492045394596853631760491239325960398727321883127463623501378981270715727497335945723595549259003146508698384889704973430356462836650522343237417619791566479963734163329338864100884157224241529240120279003744176960676801852904989101525317522018608510751858716600297316421654154623817081747652589213587109440473034470972013912832267560086996540702249872215087717523725556989666094021100232799264865577313062876616495520441361567001875148302071172080387883566534713943891058553606744995446504188873298387516511489194617406144846032229075243731013122653586795081799569988836262342610373971995749808595566677846580798425917171356896663257935955386625170348975432426651731939699114099085774437824246269760207936448099038307297901569665497781677643867720251744524312425682781044426438342438898204698165227504062776888478374469390424660063276848595076631779330171610791204751063511980917406787572847734026348509382437722590662844125739084852632650471614486141835769046980640007901321372725068371130234973647537453078193299948939440802607729943837183239271593393473880066758875929815930577737307546088939722344142333275459065826759378796039830981050171696600375294532488786314678912363772240320391442369963821533441859758757119415439662333565081259117903271752176567049793212817743208926619616954130592142065164520221271455528886133333360245084350194267234143746948175182642482671750159432777291366456880489504326421470458850232961965519321941424346486327706728843580443479171347267735282214538835614851253648374949936853400839832666989880065813535127062385149091459552243490565880852811344135120644650931800205240112988239933733832286348842721276798391629416049957948161962187865282806943832601944990727876418262294001817739891434188606562762570185819446806799315886168949564716177126812912880662969727650130216567622667996894849842725218237447893895827220870924073119094468441644194580125953687564462048616228855054972172105818394958617978567244069515234398331347525628299056483395461950710702165625949736428658775411688742536512379636860159644250531176271587714025985656018605954653643747928227063589606667269097315413760704570741816111735555943957753442335914386482798491406046086008234564771767990279892708564706224797899066714069645281266516365321244223013667734076734799639244331194650440834043690608286407409095812670607177683371015310620563636645762172840669650775714341699872765148179096378865345647638283253197782275542875825795239108015435452345396127297725421640621129602909717344594050140200878891053968054297449832997087090881234472914620491137923811521406141080200050325316434217114914777075578295356111102877789152565601333345391671390150782254476044262449038841863170330588568672467087091531662198233749754790326030550779967956006519682703922348902675339084036994187794287808619523588087529484094218761293081206498492763894973200796134672181821226602159757283538226306063502164180068231874782064660765804935004413885344140926640677469775619551630316551974782757182745308932393711295048778621378859254657461749668401117404074261491395610770158673090703876547687728018795040728803510612592638145559326506634211352933910151878491984981965990676870139869021040464069473119511765793576733058028172899020475124071419203961388345120216634630740058400955450351065996633005150321352350957162584238465177760751704486092621421495267277254340148882762714021936447442052715652428313660188141189259676286619380761605739273804680962614432264646159106997145078349702793852889166799216629503664181579590193872051777258773746753726133412965082859402532939865063741871058571283226270417763817227430628464258591019610907198897574682812863815168125372152659568469656698932445149867815777747511899036438940629330376909762979143674704793693188553186478594678963491840217108904011442713963813526059973467191045833880807964907814146379285583984250740045981020778487448029733948080472997458146611102236917461375164980499895579227485224032373290233688075420438460983247613443904980264620812014720502452812029067763920243711385651860077220205929953714140337731989464633742874142774924559872601635622635232944052548442557932494133163614803079575119477206318657878104810780921377299677673943516367384780618334665029357475331208291776650447670160632687049036452665523936173750606438384730690924112891568130916560894987912966080098618697565384094469446083116246465476972225527834983523710103158815848983562585728554232754281018650351438244742207666483786519752346513852877433576366620162228435580338771036084274647734529551226859220064696096814037646898062661315796182339107764014121521899165455712519893123185896413800235002471189617764626071397076919588408514122908765124665926618794208310985193800556265006704808607711055365727783031178172183062396221258273458331800124472060596578821535005244491144915476712776614085041881037995896031614850218208807582648078350120144041936017403340333511929573453850160773635647483422915270270341220172437648951857745085353391505867954995261291600242346549423515228909697328555305503140761416377332174845356832536736310834903235337396299111750444027866922135611125671235999046082080901369117993943203106489211677945445499139549114437727415541673160027246076112858141033367710773089303455062629126672186992256842655737475121490983857870881957209670352867190606041987014767856103918028123193882411603535029808687461403610251680156493584148301523735267354207312183362322618205647888977880036812881865179033965142933419392749386002854685196168192474707601196714727058168511167656836946247574549752690373380122569112892943435813506650248030181791447616175346687640944479807805776506509024587096050153721134705840901244262877336530525441004765275955185439644838604161191775366844339040865157805481890198125297928120683323980102801063408012491572545741558209667921251081625362846727782202382442892020818538756085135020825309870418087410755917772061101622519793219020766410524817420906707877808470040405451605148993657384918809931683911073177302176815325179844597752869009378293240910799847264785145182459747297584200819240090958199865153614840411994382490573218901178924561568209634536832801520805053632931186777663355812162932147365384804016620104225308532218273277000065576569332260105965681872390606798597785576505351742784186784048021919236136137721948214179668363142989276550822096817407549418834985869570168197809649949442963844613228657061953351533740957648223920238666830037588170049337887026733852164755894897542312252888212295734265163748942375890031126282477123521823808958758273588131172437419767537742235581612436533343707119635074242992841324201895241782742828598713332692648463975605044739079456712849323969699026915148199734967710438334679807687663153972688052325676181079531192163915953529137246151963612830157339597824320904007259133200535471832912827977383631615742787714581900578679605250490395346299031904119395368064229753327378049125725020921698958721233554127662383090474011961998117304442349383353353793828768674902423004875175975744990038934419561376796304929870518458774452444423317457921300878545384096442471148151420735983134654875704286170761758994707405426335761521648101682795503193107136526468140347639113395640525501440978869155770485900820288104340286655799305984221507814802343118097342364048408553686049584958655098589349793873350518478848168547124740368266435597016123674155461299865190999780326159253746548912865713749060230515984243050069935885662003097495118478932441545531457993188020033895513173714253478882657323692680951490025901706823554890007083511141254495539551207674094940826846647997176227393934041946703853997128837672401470600373666082076222198623815847815465309036477770426582390267867031931618931006484842475032363548632448902314736306794848098473117899872744433634968684960481768467467245103699222826299439287905423624399724413356114445128824662237392910004654932365822948452834590020672713879561265395337920501399142077799883575531644876344175482112736543763405082017414222714606889761488947322128278512682968939703620366699702581501046175698506154543817422694358279168257779238766527138900974157606849691020004188408075143969761333652295275127363658075494161639897941772751742920776322546299627193148306651362421008280084019783222189965027518821741479672926238389644426309495526400900605414324301746912228290392718654127925509094054687404499842193169526724878394211744676436127187429558818463255410778265692183219170298239239924023646036704381112590329651265374072603291005134285858067038374272636334142178623002759803905662856962054856563803250778591929706122932654089344600657743764077428537465142949530941301308771810826647354674546667732370571400297557943289092542445394623455653964846530986079086135991158973450298900951713606097256280159287518172610637384983142020346033999789395352386709975625612859679623059550411222541019464513743909607158352224802621681943320363328006550786588263085854833685224922846840429985740765269973243510284319343241271428462375277283156749309669623661037480922554515903277079505508765944334376687426336245776416886740980380403053799589000875297733462246345467893782841995268157803044583157436041386975230536286860407195494705504056999807049848827264122664473044802228911850442008668273700421735559085632508561150963415965392024289277660374678702521747852868573035090205750982992845199691755334323854930897169187695873134977140002955187273356624552275674970250691511931344227236605456472963184999940469480704435943835995172050656503265830962154120022063808644662181907604274306751119411767777139720771343273126986675526910666158093131659845411015187307912521346486129079170619945420224858989043055451337427880303146674421321412441317396155390835478834780194337328675909570280360100314649097605912172305448021574975212332968395960586901637646926939241548625138774627118130039671192273786364478698915048504195042013424191868139896257470562721768070709879724303662924704695083354017184141243133963090665024463096544788480349357006028110225535927523495263854264481169919774109073716743048050359332601772929849798144438798847967018383596089955994173938844782774520681163972430169004428552553266466081491651791283268555380389429581935116593437773395026268294224601838434504775849033439211409644568955893458851337618168971320974103433819469439832224630052635159586488348249194542130522013586966543656195047434423411705900745788818780782494102132129301301219631459090994954001421026980506875376081516832051339101002823171887596377104471306124017649213919693708069272577661062951639614185855407008751171657053900064566796930136705094810168355344808251527470546510496715286768728462159906102840695193113024112920903587712609310438565399810961260890194940428833976175212929719559459181450215412160888122368801784776750948319794332553569311358833216664355219657930623639642041833935077536790865168198629772054685555186504738383484602604597077674617564778668826663686489869257493287261895302675900688400540042083719032191023243000338508922932005090924323018291379859401540986517817486777291163605035144426862730386659683942742669583174300659057451504055537323994662285733715498775310954385887407394010953617970753901101076253703486228926871552286380180652761870524302722048483338606926209233806883373835547081448725674394734764765074804969270783397268414607085683923457604990746311734596625135778083858470775648105287304253099193727294905668759273814495915020628397029064855651394739785837447340797693713355211176603686806061243743414233140585122621189609851276000291926640124340524844622172854017301981923076184957598634689125056402113821055573326185157309467150823475345606643948909730300850099961980032408371837111206390811155165088519631971784234680897815640676705797623975778728187940507244269546996114440099300808645818243989530294890306713100017535306130305641411896620749445815756666451340898770586067550932769372152857916728053352923239157683666922535689818289142486158220316229876895037761130646779862783527378812499147815855590580203307945775563389452836673591371018706634969901989023026926438656209387669382894483675883523315236234826112770125825089114518943708989161484695467196599207799961124862203866535764667134476424735363643163783539977836945026795384036320734459391592756737438108159079005522701248284572971719584559632530716379490790621759919524487265430118101079022642235518753660992222209418971580727179375649809882847934551533226442930179975222471827826660514951209537650021920064850552153881559546608857405622314451408025583916231990321470061069781354107781952839182540544858133031846647928780627373717392471342836004408676470812058577511740947905497184059120058318160241206360808252679424493081679042126517099148843473692734529406249315419833701848186681430091035965753563788675639907827955917321699116432061303432162049741758475040602768560878263013800086828234714314180301762061560617628161088924402123222992103520851266050445621929139678040255079913801417427593193958279367985741615243940378944744225781020046515160681034630811639709423487425045458274002973512551141772354834797759056508920941091603524429678246749076378863717116833943732058027420498281516698097679020226585213208870472092890817737055366677142144451195426813508897893757246475115513124593477683915259637510136095511820127229220737497977211198080512945462178268981461788467085211474645039059437530554857765638794108912505215797618628204963027983100186091856358398735581953713105250093977541360640358807890502098779227509867166973992575818318888930183180929548476137281095294383841257771599846557899810744256654787261074275496696218716432290357458416453602057694231456730688263339164199307644470712760041092294907576262138568605119747547404049094020625978423690094570384466443418356512641149108792363223091918874333261544226787006112586339465120567967883060287058278051806411362710158652223819885363528439461295618036043256898664207914856389431258499430657521122421154582929002988966536463996705914017372574509455953283091916536082494807267718393985829657317573326347511343024150853005378950488764484044862232682203953762417908595720624108374607588587436796736006147613351839793679520493659723693864138332786913044157373441528381971941484165494091385439260499313318805183378602805309335203722880998005178414037588040011720176935504747197019916304633492062702056426626984328632572652720600293097881294768591845610486269882481389085552959318796985831325584818493739440167653843134913459771747705386299041528976878849534763222131529589271455152665579640689985500026173931304326541064316574361039978767856211232009410394060097184156340344232693049035394932259749150589472555245412011729005994457479944262157021771412838580186841557153191944388846955345525986477612124441069473298387677933606354887542145004959569624876203137318915565589836118988019516880731832293757477036337853109296427703439169109147860197614577086997176928682487226727774228237954041594790131407848018804703951613640130128032215450351203427272143416046498660631247589865449058734664440146515847803245089190534249863658893090869882966882548637571921603490884416614195220028604578709957620374281493003485006049031058703266726450547002970188822793470002979827890465255120265071850209695557236072363627334154980786889806098324468701665794350760263031950051158686784591002603789006828517741806238086027788039308074851188350966563727712457442752871479609606139605665423070729192002223918241928604268014387431883017473937931771165454048699795457983340132711636807438909249821607493367607988310126507294062096112485792372510944148772723815668078158225339971221343511729286919173368622007658513936465651236621055566826016614754331676220055017338150147893601614044121306245379430039735942848041859879406472788316571052489921514134591839560730050607102206486923575780502361238974304289990622311086864184001887170982337807220233059689728422800971938506740629465260699500845310320687946592507699437657918966997175782056710661729146695903927298570108064615111209301085533132160729686163324921583394963866813786667168151061047716111600679653156175924081646244331427947917599972553122981225358335813686820403369026337102698786656365464403528310483083356065804790333197894607341169813889578446813391918494486468201787276305416579805687410006400621773853379646661617414946139598037737257592274945037765965082803212502131125360930545055277274403503683495492553884485809551171290085012550937959817839574398512909173235807402351359284577268798965203062931197480703701540749928802607223002579514283127164146613510597582627460835305308325533236505747919068445117830964012006659294308432728745262339648634286663724562210343780562386694091970949610206159846770094295689442753655188093588056290720001363871202581322750733588943659323081823897147349645826265152026289020012879285437723688854292609373425516022987560120246887483938237742514497591243321814500087580221007957110797389578144223530283453623441873979910148002693660652373498918778158936519788147248805240605836375171413245689889329264709333747245296679371105062572423502660710306077194800390710978003382191221092490049836277785574540790308700735565703494339673594650263951992876437907390234906083512914273240130502368499546296413641954679574612751283101364472462756597904077427064923956137124762872204122827760010710648242965882002376845705532773194239608548168923011502200822732928140431546360869912516683825777553404973617637683603057410350960169763209391331374761764724764519108238716430349072973848048193052570209412188666381028608800147940815475060879020152015977007240717995162367532570464581077417710111031528784682136764422828287133833654326938688501416673564549407725525244931338035309662134993322137806735668301965597028488978998066429830694392150759827757973342392333353199601040070987440860349472236229003488051308053576898988537038593127093962134423845686363630265626176451459862583535256965139563962713196259276562372169862038860143468087504654231382667618282561847366888866297245849345949751902522547031964464035175829032020659530698152514555090297053711225431010175181425823902074950817655487248570783452361277689613611525147180388501304962748702157079884163939844649279039775910747483929011006619191576455317631073936058692648558301785506449067230570293005726065987239944173170367988412578822484387295692002248832622570065077947636857443403701146283578851985458232502822568358003456618639456806240139121493789589292029061555152000651968995830114194253719990086849149679532730582075848411568587324941033974805412329191822691788658004494389389698957178698193255014362552037278856635517449906438850651972196323939200116926190744465643929519633008695162420720088377957206074706152852273161256952762970851084096120032288604043277043896601777283520448902097528216515994731403259808798502458106326180835026198629098609133125736055411628950285381117431474325071455343384911586181683096428387298903367476510760653554446518759136550553917544397346958147039645992358868766016320706710510518047020636131901201678940893182637349241373948759104115036139496556575477089713468619812896831674195161357565341350801549718639571563699944743539672859709316488049824972252467014798970202835708265302837950655555658796273633789943976463844651444016824030494019223799662641698644742377346177599176506144502951304283261439049884105303611399354063662116108589910434917146722456111934840314429013487319291173603661098996790312233686557002634728608481028173669275640827975592297273120929372739137299610216542568489902898851384256574932927031189215114895947044709983477496016605585278135504593561033003799242936627668844050552338890797110018264357231532572119831987857697946303374357949129053040127957155127598874439378438960978524695294229514114638972101934312718485480746344354808398080529988212764471933904514754259304296299151734472779497469886275559005453909862832269914742278773068766279482827545389989379431832539942349832060786424941041206747312931425151918321436215243579560650645337288400230296377446829086609058040874229110792661940129142316845939597641854917427147614056781462390321913448976866756390917051066328758027089318134399759170236972851670433392144290182947391297495289949998454702579236565652944576559312171551121962664017682269031787382303286431942596005424973361433086601013100294014573192437637167531157784883544501320187093905973814883221748175406814454221260022530163498336047533885744194854486821830548383217919022885074139691738655200999394852685480020079012340364545231964664222761698484730087514710829246742531200455440904082159055547402294542110184767165766360773726289458357673691141831841264900212156814932525033472273222234951925935990283755654213641968323163268403625740476335354905610699133716963098506285053007635810436294165998520395241323320900975136662493025294273907355446506088916709278716627274195974296640337408867050414709401675322964849691138381083357355619482262035584285984384319224676716427643594683230207502511365417486074513375762698826858643002746526519220790537723236700460057943723548014125661465298562052854028767603374437295075280389419214255612227664980184733735568801375288224374453646098772028911716309782011414615499713992984553236556622037539274888655858042111661314963753900782574349383915177370419852522232586358686291283194669713843469427775811313432027488683246977925562927578838777706449640216403856976331180352514940013532200004254381434289488955932839230809644481315771445539202371079862694879501082928836220727265113810027661088316987784358490009261063190480389878931251808743918358414977719989890259413108379236492620919309062458878921453947985299227819451381363076681472637541876991031632915308710633305020564968808926952806633612404589705020107824119033493554909119372587397804327288517598281762471962458948726177238390017530378961173294806466990629532518609754041762619628100472272434772527972087441823909969408724063028505746894676868288837242629446809078894598693892773262837224281423544823634063932324255901494708232218008942428873747741774198126400970162093386161025905362411926075243391256852035726374075758663317745212808428826110762268936698362208063453083014030664286322490666982931270690645574159082810664994685217596113282672966116730859421290081604897662416105817790336136602209388328245495126300455914642768158971602386426687407668824072840129518223222193896760231267990795573256592032867626485629040863259669592910926790479277903531110792920885271999987093373890257737995851874510870607626247034882686905867625671707428497435925427348964339359321472781362111529864596876395494771662440649302990434240233469718945794030483937130494404635132898395178651360035040784042996588809562390429242611577609174515630462779600486825598216863506157352893979325919389691611436954257312364114564393803206197866655103944718172009896394019050246057196834378000404123926897101107733139085572919452641638584009435768548575661862718845527332644310735447904305683680323490912035287413532165213049419729155689615892198035869528671410397419906307789553093471218239532658675199520162478156291076895150258121076299340019510623569464164377068344414778963684315581313900852060382789846224241815452376165821783853072130789311393795841713371230969840404457863816577988925443742811675772915356313958659680020599870074984907251537178316739921715320605910842281765130227390494417258194560662641843234535367107719508255760740654690055215977208959613926289858485662299089364049509510151826436541366053723397383098125150276112048745678093709019224805730056833660773761853094474417576116225909220836579980358823684961517118352508383060887126076034919266484950353760553416459133028935004882765728044301233915605118749580219027953715562045681816355405314105678739738622222605315446838425822642979463700602483663634292814355775405957710122695413955616470048766073372507321079464416645924077857208262533677362332136103383968374519691606526833321652910863548022549693609424351878800273003508274774141215326276924791478589111429813594449057141262079798959771713477262237986329237276266033192368020598549073571990811569272019484459761074174715283877981109608382543177374544192683047411989576633227837715321368020620742900784351799485402213521491793335226703542089711716800397789004173747926335726572919084096667998983591612247313698511541039845647947805216995270847713029778353362591347062920782070771381095890075328523117017201129517159333372067927473744731747402302794125140145006215984583426636544378810326456345748812492718551883280367497182546021315026595854236797531676156496600964526482745781679997671170323749529394683370654867887007598704563667718993877661209871312566131736447411145157015580534275139214037830282366974494669938311014235129496459503637973021869955297740585015258027775192523530382545730967110254701172915352046342978593898081582015857934534585898842394707832754137360533874775581807683498673574003967756748975712778867082397675486833308148755168340425060619084432728659437799222576886308752118534392957231964288620789360116305787047820978422969258252895469856800837802110460356727318583906686988497152065299458123392447150218065304051626061416542496091850770009901911205951101702009218762373110267537880370839159695664870276969901422105790118223814162280406347534935292036566065651651219334186333939016636325740072810742773593233868412186910520406879449045498332425870930397239929622257755605087641132576187148117453869265211315082388115289853647425848500301178810563081157297676642085904437196985230489818877135243933493325632953245008199639301919575388071090163130476409284644896231566001718497099569483997005946557479709281434897241616664703300048901763770829894095451539922866121511037659646109063017208138974260474729573766603623954058826802302714074527601124946701269535652853843310883835885182943413989439230297575238098027996112093379207909378429709071161226672847480403103054631897839517791783044016940890108500639436234103973615316259182383365604252299213186695186023346277963800179462108494837630795095861402969420627323994335095426377188723708184063751708136836376296261425765549887259725557223750466771675716441062778288263850555334877866075890177509574234009038565419668672101283761751922054622768812597417572544508930462681065453632601008583130141008675011063055522463883080491259027213087728049214391302359369757363457099370645421704081649608697990591920835897302110058615497197569014259366187274342607735165901578330177948918697892091192980324773182655353236364979933185009152080506392492112810071329890621044326766869903637196676975688174698101493185163854646185184156597429556435630888050051254897469118575411421711012760074065434476749770218688544682769258060372588007196963477467545175078116689511371464192279314169332602225102605462609284758297320633616672005625453029788339193655297559522861350540761377219463096043514522788282816714672098746517920870899233249025469490351051902047936813002700590649025695019721882920633085226071407128035645777959647931692440281305793758303744123507606297762750981932591548260998758590817548417224359305648438620119026352185488992358720048905864378462185530065065121546844459980388049363579984677315412372263824650050545641969372845612620589944942625729956844127840609190612936620368635046054154137052415583170702864442231818401084303789665034331101179310318353537246556854634808512457862738056946490831264462206225189584554998261915026696059027037266153669220238998197350780207622168948114357420837733098665069412881588885868676289422084852148911626686188428755240252104874038818902931914805719154984239895456528301970771074838824044029281536480472043995551519350156893960708139465712852572062043615992297247807153597260116975392553848583372706876102616857454830741685437189799719941613279180503123849231132704235053216328331823474354200166700752664491748661871807849427456098183553805531147773041949780372793037934941725433602056099516458027863934927434091213235749158470806450783829430430097578447522845671386144055468133218478221515555120311671626674182678605259402285980391327448157376009915246718817818051964112843455395646228144166049593200482668825874878963934624465479475418505555313090182397105571957137291552792620318134818576452328481541060603286976477968276554631199676235733998282466510886432318535561123811589258272677831424566761093231959281346108565991675307634904698125725940450971784860151316229172564167307984157906155335153380674954642774905800068032935746235992228948995259542858963038936462991315976811541755893606213891527668136645140773257111135130187984386484513362754050742321100591363548071095182085970412233724314092963576860161344603505387385579878801943275519666202564540877626433721080301577954756451312549002508248991372942873174811380573751978041560195209706481759969145959238383443639763418702454285223931977264557539499910657988274834660873657636099321034172224655706805232814307198256556424305539484867299959106622854518504091656537857894604527584634513525584787078312753343536837932031213861292331898853707846909281678999579493468720976433273911182905995293855564337882012737672186443034524835180551611172450517353293023552543239208944281050354571149583369247592851444666297601636231562294089741335363546594340057497546828730682644447915292194665013032983472047904692521491956034450257237696613006988218300995800507268399378394283102080856395861460415360129446641443978067322967600756484182979236028257098803615279655941702593332166789327812138343996612161550527334982559920444767358101772464663722771526631012077442506354515842019015941025116863141271619826839135071611449953294993794341087105306953038825060776059080880306495646723735564280130345949172160793402005408917717313004395833484033754130468409517357632091835479450032880601203622479254699032407854341364879076456604523909489109142302556510371967002340321903723231246124632771478347167464572577063062524692781451357787952982184705563150644975450000827109253874799539180153572739617521653896746043335481704569045427030319811267877486157234980663455754630818730336197793451740921473944320419051729771166310419395238605189360199314976176256630038471100532960046173184643200585534859112701342567816829760201275293288372392987417673292649473305989147129703156756932572523637394365593605664695001125577583576074794002869621036048670297655907031473982648053863961107275543471184059923492516359207484642947805727244616728825404947275773349764951414699954047788061229189749163597765677935498474827811233623076432150118286360264818004443075982417448723901086673172178245534032925750499583318269813061883501223525346113390141916971807500014860182169461133376551802168579312446551928195922504639476653054724729958080481606928672919407485437719113363411713451802898989090345311789123070766735753006502318771216791506195647678870621441390474787267396177115231399394129660825837855948699179085004838901726152326410510718579725899159907786699126521420089179362236269115292971366652774073055855116478895701697325324158338457656883296883097095458922995745299462808789202100690924804310023627604851907199272735226356530670056230504687669417912200482220706463924086542869058939235211723465944864915313099457552444154716824627230007460230764338252309404118015143094855609377497629057385522162515774765799025666591825684704172026084465329606243283419482330589262901682137474726050473751552671899221007000209910287456587443884371928062240052851903841361643440819362415001220137811362351803365793353223280917694343246243628827422551524635062470291641584659293780839751292856384940514730604385769004290233682858656904058378120797935183416556904310461993830732698677080888913087435298751602418809548366355526731423516841154369988513997429077440911202772803016080814262839759038612063276030364728795798635222577665341731136534904392213285351054627124730401959586275977810262434804007685506061601608694107799732534216361911118944809230176135789659151727574219073778179748623613156484111721827210656679292182795087785615051290085500561026429112161868502702664879895382281634981152894065399030966994110069290597569554580794933400985879625271794541110991190922518364177412331882225828524872037125227892134096098362264391850178595126676334782341647813953205483660160382472219177893189699719282859949544827840807557719793997286376266766205445568701483621574865556094304333909987991627730711596365149098697568545109692995290806300210914461302659309206771651159504579122817694045034287605992603541695920970895635481497645202202832451602826093545855118655321866822409229175647219444935759156962306726411256527202513627699541561033785851589918739812589575682198148394341674667668537252441665461277245540373759931465542374528055413216023898171245763085337490236695560302330492727136193996722328186802129230910748776788481034756838530317156256919187120308075151456957181646475264217326616447044704140045139117507559072512002242807318650183573620194556395473364114795309481619662166627513759490898238750676538854048997636382114993727046051416943740106254897517702213892305949574160366234717135893484844915679584155148789592230890202339805952402442246851932402474027533281180661791281304538241004160652908846545931349573259685978026286064357116552661197356410552256316448517573488609419524213487460089691338291179937550682770730512576639715540106625992654975013173668573106008154343067680082168814087929743092097865177081370882203850822954725509544811875812116822510385178734876861357487309119325950695492324686640620957996183787018065978330905296229778990089363171605336182012460911663069916729387056599636887706319938065314860328836711026249302038011822961177535941744466263271248901800997138767073323546072931374049813442514481538631638736288251136788889963883557051641581674016145255998356361715786342251623230712152194774373545509521596234092310673510691363777808785530579017411084516667704125744176642346241483534829621916298066108444790199069398850252501833767878863676679067147653113204855139145205462477953405555702318017248118735869274685568435691561169345243888809651299139931334357929696510225502230432845137337762461888812342102604775163078512970282307089246227784416124738646129390987083588460943621675033411194083558058560807788373651840435005317461201789930671913445418023192842000364485100078807672839520160778929210337751381952034413135860166989002823081041971026458470910909651443084412477197294669234306636533943550203582484061344760811048279743962483380252517053378241318128156896153792128050627232536010469313986481256422034556089133995115147477886102023864441983967251237809591023901483080183227155052684626309823885268843692027352097198954574398780681097287774094974792273642657204143115579945702678511923000598481604353299475951818932143153145901729333868098133183801485641316111687881720703477388535591866046423257886788351960003578100399568985896073319535964015084989421607269694149076264478163670863140137581117020711410420182966273067272606658940348996016264701320767207026174280303855638214897384635195137740083444476730950578898758759560661568195747019328045472555944889341324929163038664288988768891032583270584295627654242448498363111620700735806092446025206418489907494367276190398536107369798911506259525487788951929306493814209723707124091433975301987161939941326712868168573478725030401676761963930848567867813704779537051753369997346409937441918133210471315386176241659486241227955195407841834684294654062642265381096374189331977782990198074804530085506055020672772682281080494682091314425683165287305757876874004818900123311631733849321106873112313809981525479564566060213903825615946047084743131837334297430978615526058028523440404318768377475920364485172800467248897265021538731170038869631674678434718474786804126295301850630133680175318054944840889578585116642725947355429414942591662660125694076762938004082188372272904263198480506404162358300839887314248150469735148844813374792370740521235111142730886876012397294075256226334264517500743068907255921755226653906174401800646477986460112352466758246953190531110301488777197303320513014757347202481130972676729876838660603617997053797486457331832864486640403501847796752392348399567450735732712301483911476397828301468402061610204192603116788331454968860096872588441196339709080630720804756960691318943589327137712637146450305938262534542403832460534943268924298701423414910265850760704008793372143225027029223131815180203521548395246099409990316681895594332055339105847559884785520576968724850337871021050420288705650423491797731587546040660649137883243886666310711546710944162447079682707982769750717245094029867233241670710573477807106333829237137268977723451927755856851511914233998539679226127670042761663774685094049840346902429738159064314216894987436821872652263614090572698217470117995922990612894274687114439294986425066953650657028698872943286379755186575282233203199644073920155018131411935773507805425600982513143549858674276032453403867507310525750004775645602167003278967135180057486823795884668674225526402631955410181300211076567696318294731505055878429551106786676680203490193213929029981022127624579094776688007418301054721979567538374083083234295097104387305772256559006092245672465825291407146284770767829508392216369692453363719878990078820913886767822858124782212816118576084277531867016734014194022875285889090265512658391250748849365175442460661869231582772326634011295062943923790097987439519830938232090686806003592546249703132601886272342772785863879736533912288573545267426035036635691465898031859717047140879353110297560107009387864658959336004215791991406101901585444953746022620065299766101287669298123200738709980413038958299778112306350672744719596189236698722812533072150394645511765346023056671772561573128427656065050489263373695333338196038429644746630253915963364712342295897620798280729353608621406417889071285367019238801394634921843194241614587343447726604135842883260831893513092244799195015603041621552154913644444186234720611848740128219847592710886520142292465319408515750495673769462877174815717798824311353760001275605560489467237970631739187215841138008052382181110299771207751340493454681794744805979697724811653107848463048250020675045047862999616896424149638363297062455572381362630412399628451109006950647235336109406189941297116385276453245920167973716777098568803234629705809193222397888379928352156379146287695989360631700526567241547425692209242278516862978192358351014714544071124323253407379998674087688578562722603325865387178414900913793138851881748050951488095205306163629750862260448418323480476035024745444005968713118344974641531242451442285598034242155161149637373187635286558480987550427933303762296836777451699121379583377304108959667908698441017777789350049896110957299050632003635819056272928979419839723060678032470870942670195558470797153896364563408995153917971624400145649417316209586087067681345725627371473020257312175093465529288952775302114200569205467722692168861490028878225428749458061781906595718411684170119877819226838930415445361663422799675803759280566617177836281203554237976697352176871369886533147610661153687168563711982974653450377269647867150165691300490822129784437120512010764846519949949642584042699853014047441110444933259521257025607333518665285046474358431447285473801792107162722325351869818445323394706048273262852990196541065971539851568777585156510492253279597293888515057340912920542158884442602490959842692278640128952900288086140386409352896189246280136668962560074614810904616911630928667288859665318134712639473166397919361153308155305907569119495201445552694632882851854399776057690250075240158335844051812055589822722560540118802615700126636861766143075977732914468152743409348014609278291259670087328237587829170517415211983469649777941168812233339152372118160520767854306389315892150142971986348927326763236129775486331297067136969837324855420119116087689369962074496007555244274817773522554531872698477053008974587274479048115208646854272561427552942577221648471745027957069232389080439606351428293817660974208376940195702148372421717098228637310337220710091983185643841005035113194614499216085353127316674255039008880099919751187844054243501824091796486474508280408692553631324803068869215172689850931237850970296280756585660070974071608162282946727440291565682968539387675692969271253747704001173059474203015377525095310461188573366111284487764970520423106386604739232055382880695636915656349416314107561703446072449138287550561463775645308237689879023173681608130172147774918559463794772889545998046239467019312161828674308462007975462433504883463428942243455002249354106383665942020646802051861393816673529451047572462873511223659792537930745586024139685319113906423065310309477366838803098282751667823723136046367988941448912099572194710444980629660735147618568635544453009381417998839221986440719037477949822286197304592585761087907507686711909503372435127421387996231403607904198250747714864820045787813383356144699046825599460467657555782435800169818116850010735024524221162846578310566834708939164576514787362349397869760714405934799561452536061164040252397003720015686797652569342041922627235699904039911885072606198986076003834808711603164040053620127258437724872498024284589232230494235007253171132526770472292157041615410345145907322847921678938398206411215563103297216825358818091095393921734835974228914233393553642825450282004202961191837285827388904816381306125764884781149503085885931634391267188253624091886641899835770485385587418648999140786485436314936559180966778577743560973069033728225647755201078408272133521762672924718259969614438385174464586057870672439220383366092369236901006858193956525032084818538135802107283655284459309983214917735806999078718669690076868383108670362466304942692901479953539076285334156702083389272331044626779082874364933841933812805755619554695828017652918538573909290473742057854051768143152651563233168440483018410166047357539014730346691593388788807353606941872157397206923148448140269682775262296153865573052150450785231622963051016332912431154883179388790260770955764615606521652512833309293068797124371302454707695009171475952119792533532603931661767371376770684418941328196037270541634805934139537940597878655398944594913065135299963959384425560159812387178945479653668089967097253500258512645698212715658526618143733423168282629075439807957835275199066340793640804032847735044246040739552305770534432176810007827141249161959741055604241486881812304134417993946494214643758574886438019011569152229343888804129494763040126255861321899610456449641163509200625177994721639032208353726218934784788241086915373579677082099302658912565165987594242870652369536719545220192724375201653954855994219385678307052519042781596631395206758462723975926981620480287455983324811733406459442067539987145991300131937694094194650917217690594720285128678285162757239195064585061109090901672987731448377457115973863963411433028896230646524096734288400507491071688408144184346577512542900468106530135867166263449130153334858007336313742313655216456662067579529171964929676813324113025388300944435010344501340656486017814246424103983136535838992575543088723870267065669012225359188799687326947252514374497482086792215538026287603751784927511467524128001611576218772364139675884449584758963467315439811022708165874699302086091639732391669070032157480811986583755603787961515586414854944068808640581187228216840205263208277030824979219334639677823584858227736726139821970538993915833061608809777610736342559073207934407052797031102138902504414984886579667510207125643381325155705168170992518136583048147280123097293760131730150948433675832462107913473049106987020183366155605455310407718367626412427806788551486767550246702862672123149349811633159409623612248293402979535502301761741783765226204506550144043647916992376610335178050044597220805150133413486864652330166320802928880125877059413444691502718646389271422845691742505737589539360715227325915413819740459207671702175917091915677269471491524494463032451604092280975709862766592882527917951644056679948480713167737983217828342020303258323511098337397502672719345814612800292896888376085605859980433379912922251944117234302845742871724491117146951023433175950106279650327935204731667206139034012244765696895070507272314851843944008675382067918798454560842379839604266756274562936983596718832434420859356769764806910784760011132917189767477785590775095865960323165206957499829274449909845496281027181864571302901117127630395819111668127573469043161872683761339834147649910857883845099345521161989693896028311391549537511763807320217775475748907410600028546453726797917584895465031376108801571714788977993223064377639740291583130658824108065657718692457157732275544476344940206274005869281171372955005687966709571693996940986299041882108331664741758974577259564012905314016989789039095544869845874627758538546944645219540225725644291946352981221936488661937016717642764412455689879873112277399016990870361452525660479494192859372544014365877074743768302968058099371365789065286563992128350396246348942969690544332397605638719536251876728085340709410328647775275256139164581743253874561266871544078472608409034750273823913588345007023451030041840754519833336671042493650722914984189841446233811379900525739979826093629811912527202307643232638633061349418470928457012444890781066649518728415550721439835359878269570879647795738636762625120862216632089532680653642505498903605113530735737169580368282212956618303769712180302034065645627526384297503741392227734578780728566527406551583697852617278202955123450198779782155883131984310578206332730773850789440844439930685402687465802725169463695313019192156776766041328872976302430873536233696220621945500528347670432480018352995784223945341647796678808867428720431700386730079755714806247654018750361856556851047563217295009159939415243884645836228243187441323083914495661877173806233090085078288432076575387893682153483255324523023967289557031176826047757812406332344958157365885725050846520698916128121946047586702607279427461348461081080171269760596172819134912126707064283654536983278266776311668225344869441522526042512487700269635943190113063983763167650919274909801889740354580161153502613848496421775661276700602607118803011384366634154471276133149385133798546757198893674287574229114987287142166317176277851295614293835453683029684755936137934751898561663370704719696192357504764661470888842221408618979441948527568273597568098856903504060891488662914786242093319897178871399355760716963397950017716495750406753774281899220881095526538508388519213542083663729357010287137785347184498689052620990398630081271173982922046789086558489036970406983769530934236439083145639176646056330142145905771184250489535587916562551065382315918748364921142127982532584236348906189669582176784398085730991095969072702037914209688065263208213162690050457479648312724434370626785072880696968153383398939953200977983702734172630872286850981891043569760148002388931223965563901466693068564769822713611010050307054791595788081796577276739838172120085537902462189382468884629493968364405037575515488977519511446720197189513438531781273187830646005462179055320553770276396579030083864746066725021087405712690475492118701350453280210891577718413120002423890190426882968149131089974891630666248892279635595221195326077796674531418300505982619138389705568819468778004834250212320382989849908807275481627781083890504808501812414523989072814727542393459203512329925326357195998260963234513754874665135603955482711482518060095276901721996287072476230772345211528144043873648190707835495391767982060023146481948274401565933924831377194501538197519696665625238410608737042615475627701347420707312453123068312499636396414814847072796109544708507639585352376876338746919486364369635831323668414548192220019738174738076163536935794675556921402087961187930657480736320509998433573892346665777443893779459978359978180334485326444100196257099295921358039455305960707651708665828728647912834799080559693285803909970547688008254915726251939339401051202718483114300107376022653173150546372105027686790187938253102978338418083850099617944247318844129482225062390237934851943516411151527228210707843441795881883190551281959637008671487937056895017064760840137035118251623392884129048386106168811566590862554376914378213731724599054464555856964690232604409783520687564538430252887405621864594157336722326983115975188944138299446220430214455538135549298420457422583573069272985666058681090297876530667314789743776581406238996254693664533918520520420838988829510808444359629548800139062148823353875656024098040142113171391313156448910875587008093997636528975261424544617590765117170344647966458487521758241189473182087008438974211465121177867478349314033545630798943207227851045224784921316363406337072894615598258572774099345259126132024274471192733717015539021985456187770058839828744891760013235993632647864068328760365273417166184381500585430719674197958421769166393817454602815630089639234219119479430118997496120021775862173238899360181909374876115930155001659926937526551609974234801348283894446404285165383387523959844422728011892715019113011400308361697453895202215605699743435332350882162336423335088495290941128763120761703915035102794275230579250357023869692194494886126934295257786568184940445486225581977238555354350366062932932810830367119433405849603839904483375301224357210566985470540703603829926485535050822333243941518075277433253649636747759658195267823845940715762372033425876271325570255979117482026911360142647808581034538707342549623134116397640877003300875241973011987865803525697587534996159090830947428594535368863059682922171397764288594172914313713738276325748818291755560511142268769668091956143678160243680717530615939194307045930362797483525783825929266774072733436146313911346818709410710739970101996463175186756464080299183766718674306126030038787718968919623395938619206466701304138588540672145729871224152815102995050693362904712950151437113537239829340537673968753913910945037121489380778072051431320238998822309658237504427239676602826625437681850039688814775035237746778011566029125714948062176323327645434820653816636090005567599953288868187856536546701119655888681032912597881373740168725401321469062933369328251517362597196964562049015482398754830501135177420533370988145570445894172404698409695661221862385883274361741882678848854004358899325781376037974627139370171190913817618574064929861220804346313827541646881330065749381432359655728928468999408312318561926085975254128609491707017520083880766772611139944892965369276175761918313447273854770022892777672603360208848009274602880146858129838792420027208598274527736515544391399004872533921025018918948978043240151647661205526454706956483132513802590944404253423264661024594619515495714623107836963516907242673754429156788347062749090015930694861128370613823153038564882772317729312870190492116768830886232962749835212403170233131306429910125961240930549703764638991356731577415071860280678391740344019147811435779778015432275266028049646588733341725685198338189656104364384763452315550177336473733714362252376129903875141496223698807271897828858880167138274186239177252340843447297240842103354940320487874383897731605814626225683611769319190919730713513804146750082130181685013647486632531019435861291358824372748423566728104744575248237166149546380220994055164009949793106248857969136505986253479515792884108406319636174383579490388071733799180785553351429606431502625421877561243975313624831633501113070250603267854015229764702331439164579599171645049405376305936888485250819652969825800155892090020954083391247145650334809165326081220565940024862914208509903531668756481398941564380867852930328061076198248111281693199595769695805429438558868047048644996168744917366407119483433448328671449536941806400551112701075442145786785780571115865214722207350076476172191848044401769987957014549324364246633489869993650826874633287404894533102137954359954742061625134622219138088230547945114006998402720068583674781302360808129734027054072267559171227123772421779516565449608561277610402840215103211472366837683064284541778914948500091416187632161989503371477129185318962577334799063830593717913209508502131874782628152048928166001156671038325883556233099672640349876725948175431411840689101539932117337686617718157285625764422097836026282990522297865332537975401036255230677847874059526982002388096792524653177631968266112798148507177471766486818375360625254274117055496982532940804159589185532435700695580076852685440297233735604325410828517302526744351614688850112672761409261625468439474642774938974379595296748289192015448682169518648672621280929415296706605048615493667967893759991183175158673034148250283647287648690002803318140815142170982630042959384620358904968542450251121322591177894273366872388694506686709142088380777179480153109971199864297605871268913943773774162547892180380807523749182655739867862269442505289360371520040637714401914502090651748957426436320680151694861979226948565022106917866922699216558143795175540883711780975574528256356965620633484217095166178254012981820452553932520775243578855902756800315538143741701507297918052814940172401597543148804868794056127239998613111290390258929843763979531671658980538249813088522687685751122863795877715222514544576652029709673588094753614069193801444106149791207346719372420383946085643307957221286015435971374239203960975218963902861446824468490781326195481127814902806087488079649624001055372052202260041442361447831635434058528033314094029580253169433900440404965696287130539391666852675434961773611604674509862539331725916555266969337915458940525151875180127799972135550687410454899736150669418214044858635584630058231851760232940315388884738995160911643607033022790622345342091193027412038778297658823728780459718456543772736401277660633030107196223075878121300150385046176131590691827867303296232248404500638282009063716528203428222649521332926224803574150999471103024552366922780511272748863399119388393792451956133141529726482527301016864134734003186913628526922691384013907703999890371198374611340918038467329591341059801496086388959288597444955758865024298800790604058624544896595566702033867137319617148078696776863008864471630621535344955613121655829464326952775532377745700623631648856397109285454282950319478976298618979917818800728294332826721418427489001554196478683710846311207609030014948792418290981316597295524672805091016032676907750887973486061166200400507031588395176448002462826384725269436994626301970971327541455768242820755498814253697342557375870256634190793602080405528718077574973046604246289305910411314259324317502453246787648875469554990866280085498089251052159508364182414762721247305409337611415352423762958161360291177850071658884518702867705709507317928116732679216789353400285454018572814285942639037100323922603217527362003185038697363241415464055449006339872027746460171445420550081935744296341705463313560427626206102498350341836668463096248029583108394125763144140456921140323186018765436179876682813838255798100482907364780170640287812267894006188564463104620716902314008637581653215426900486839331082613615752170434680858593959516998067144071986821591062402960254336544114174965558074624278965900876875848261206880373071075076960686243927114686799597538879656916701641356237549331853453610283601931699290911887554007628625022623348762534880981421519754565452205224200942419524039930361501391753429719086237046849600162157853937444278599381990160121778347727970316981603633568783740714232644095585488248097772389203196420770811402084449183778976697275834590579487132529673700664907488557332439136880841960910681395724249562635376852769537860799333912588313685977144222994000005148162281439161689344511166257828120189583289657183924648622137604307583098339769838112050804994627931995600628145546638237990996176482279203383774121328755959328151324812377220184364461006247790116760646143035793567434418306008482580114997036041911892929235484244975004781377688791063754818300311129026369629349426668543710316613656924751305900110839027942976787034340066646888633911239151044238143728170270489118845211413102411371358062716271567703364390539746282470634604127100255057726159076355441427177838339080366959102277577474303221145942733060101948302393108481011739066149423508319348608659903601549850083681746604659505334676942784374600430812304404253902946459714372358941704366686378607327675854224850325942795932088888453048503644556672788915668727592651255494254629892695167585197375045993109687085497478318365322354934456562823709366357520104366883207682792669801090290167041327342747648301206431872583652246760060720021416336072005121106124240035889943935840943347631149855613171652286721353182912566512300712417993048543646378158762731666419801876754367343719141853301641479461443362278845707138526800847593746678365500753453098922338486728172757632110790594779524104657249756343809072483401805644738078674803874635718710529599689459137878179311244818537139530305220317801206398651581813079137863150087348094432489852285341643404256389586649389545067564777502816073176938915973747909419207035028516384744259553274817669348608095040980208575033675590580065068424038727925440671057114314416095110111649872049170983815021065020299240382963032696863559773544795161794531444165276500189324879595547810145239531680029183017943626337630806353212249412492387111024914089565686687258199014385287940357745468412149140671006854364444741074299769842575715108109960148156790117329345164323640738909028042540046290245481856531739091716103958387440358924251956293796587754235199916159419561631466639610393738346887152326617057298139574116300233886270109932957490138992035806373581102398406349633329787982838280061726105150205739835763006364692852790447053559326083874582735260338909711139370021631615014606676490750435827701042539274914921044598829947538043792503039480320419440965757160254468257670781371929071041336083979834844788477008782475096717074678335961832002881939573389418867910861914527122342381832659809725544428106194820161563548804938794034940197674719812124592630378321165059587898723583712068723282570110995176420053141780387771725364662179438953641753303734678002973664614540352537482470454479011433847737618729360687648845345828796516905102069407697378707846266599603806673385834142089561278840827937110432047488861062074442483134010532007486641381594865934454683682979699730211205493180190932835121014713647239653659882369800837920260740704466807843956051616856496339090511589374151627929295076583367243170591807575479173630140640759214659594341217280570173442950719909369116740764007779108176731328076748155395225245935091572301686234114438778434782354964067254299619639473562193540762018964004973722220380851623069859951143221383031039576622622530914143180870838090445429912115210261548141892546413396001677907305326822291051493234350904421643480783152771322299598414701528731043768672156080158051970059807570012684087813666208366939652422346687051673887315540202894473376057851136080473130320396125219981936743704248364573917914740072358505195071758233082505502189817738546774885692750334591206589526481630930005896956307980863996309984661536997820081002243428041017155642422381606643964465431113819038546435390646876310600381947223185296368723872971985831546810012279777143386862653529975032664656558375950471230571887799011918925717920546421741614706030493411606203507510102506743931529589364715502996097799800147599816026101696524429296269924217001629856663843682237278301220007437827039966351732043916111032917028643308814988057856417525149591089129212933803713953318196795537250190647634799370542475871005321115406620638103025476829503287819528876035808502762436321582418870077392048923161148436513837401587932769854791893845593195223656920535746271135327376277901636381613763823794074698429146309773368687215316135748484341971637120730656293610767054396454269111553960631023632848061059932239795268813130351686124561499779278808581652072846977786189572561814793787888037519079027157039581362875522617193622713001593761465819887236558058954693580921352082566481328801358510610459527685229790562756949271943296470750240782058158955898828834445292852385553278330008509401168784196142712863930209114798896434454043713722639512786302129722153402748184357685370955978375030742925008575892186796661149162004525131639479865492356734222987987286195268614304304096148475463873867002900634898550035724312966703351316048386724292028563045345734118679331529333025066145073123468830014103433149302243527086693099676308943023335311088420295002714185318266786225548787892072298526824602601601030854784536731773448210729807488390185661836234982012906238493749489093640197407281873811267328590070962170195671101397798517757871289644164257231735610832755740886595982186426146107800064280366971429954053244052975736756196954992439893718202208026810828706749399796495062554189478347547214351727766962063277683582636559134287119072590211761389335982969183757303960131286966372760330037033431501815679210835839927827911170594146678110713873903029841785207664881013683044070922846637957834304663433600226219486511040125197016151364482968829621275390526511940662116222605056205773281052425056109820186631841887122986382736911316063755863773829999471221743773066608395886069276264982821197833053911006127305683209763536071959421418498207743406653121516754681833720570054040206448668091054084080385932957948361580002008272827138693973961956749681050230259122143779793705276126889158376833813680795711454044391992123847801990241964894714800298405186773138919491705264268838389554422830248281290499555782249041395830233845185834057694027008733017260021876883995198195862609181021908773281048812145454607383682483953988794748969164731280161014914402053095114194336414222406510012142813231152313789753650857350638780772617567089425492947707635835822189196269084850935842197772962437870548883522130002516193721752506809760557603586506599309191151023604429509479654898566313115941037079486024177921653759950610896555983937844019823877197277564202551334458880577008332667933124828268153937101652871870298849914515438197078378075085732092069942523720485011995515922338169190539229462700519543175218230208928383052348121840268112095958171272036188178682994189348748373391679983080405918548476440163268749498693019263812978342843771529773485499903440827920321782730690756829509294706743206328025187097903888924453324840562098586039114158958823170777109201087171572364198547571931088418839086872186116685943814994463581819710391138654893800158907357796899348466212922562556461071772154115889633097885914718787248398064345414370937128691481722068668768647167109656315829451558743336434944175887566999872661441409663964704911476564724707017061658677302403736862822744663243369895277421733117977300546054734118831934411881416990853551107913899982081549373684249500989709928766439541080834907074949395855984965154548781570196859526939571319506124518453056442902942863672796199831127182455502993848296331963653319247192018378869003308402925998454788101996373299272577194289576228629473179419438935081814215840558341922422645942122775769097850580281473985478119792129322542245967972766498440060777286265013714960969117846671150360080805228777198303657391171239845123834001144101204779855657827118893962624571514530033085935850544059375648852940095717062769769990467941129349372831901025705691436575957530561585682657341657103008893974988229377464928917613788327308247421287616740033009193213000187071659060612152672780259468067134751860072171606231647958181872416498596336519550289297972013198775537594925851922273346549140219538410570348462407680239449073292855327627125868233316621703440108507806645895562353966167849799527426263957275266528084073931872386387905466996838637627595499647455290277229224410628012052370649125058849685993597441442163383759823405108673871647734753836771962769935891864977598571166554956898676034988293691275402357767141322308303498509252662742064107346463009963953843591159540205710643167530319876134916551390540584693536964070224247723786528653076195650683926698261306906432775839099117627836115546065288951905926590211328005106403812229635714838288260616597245816232556070729503459614172182191616674885165653774870422293520649687180358404756799535318973555975700589828689040459638504751707178055580829950647654486703638924652591986335557031215641301914912279156821814496788253527379989124986344319623731664173442559881729282168418614309620508537826620475052316000922896793725156454563051631866221211578723418053468749999208315525977493757014014062942092953131621636540491607795880097979916229136002948995704604216096061923532992274614815172496845711721228262932187176819697751382209776290481030669164702473276915950646047656175490486285261738226999781377262193133145462558937442449477186327130017353382870541584956242037774542316766748416185287376269466615492514163885430779712747353688823915902501657004136456783977779046706207144442574410170629063179053179346859010527796561527326237603456716100165457196056860264550919824708086860752623411364613088599868827226174203849301795479659087278182690990201738398942434631971973809332926722633767490545951718597485236645611981760838397693117898292823806842477194367569422752339791769649066663211150436294767156446470889661725550395932543993141037255596094087577206509920360598916108914611173771911880715702752262976153682967878347694109942476741263858550763088241438005461198486868799066891707392065385700747074913433892120794462720181822207929813902994471589983640998032221429118060735702042723163144016504785874564657993506770157900816069986672136158003907081555601025717119559429851540402587651710679679140530090183421165539788024080215226456581191090110492430829516191764714246537046555190537949676234971633031434292859994833176183843099741172585298142251881348377193754672597297192663013033660827938426781480397760764272281729481545089060368071498984157065764528075435391884506586923811202192602539516878010476242651436483219959549595362567626494765291924567309486925402258445765008444899451488971087651832837139927304749844252831010207049724916783955301518514081684837691316733762676359867779601211191098695837486474360598369379626053504915214263365824164043605226321555849992153806695054329372044000331594277648516153625221624058204727490254981399643363173299985641390760955087836257325126148849217674243886182233672624253823044782985694441337012833115314889477218154587950907073842364356183187511464620004869062152159530226895069263170487005794316168975835039665877863854111763891823756444772919733277762076534403702101269421556750703418508839221810500337134358173713969999816001262928119408637510996324509042638038919669931420202304564425638379275053375372211124951818813713283611637094354273862612552795302550578960953145513381159961250960053005329802397304891495061257818257671094879736046741583886017066182398083448196159125596989760326239472048053908043840862312790199228945016315730602649785835124235392872645699811254029413949264412030319727529540673000271498317087402935215159221369460914313462258989779573851690671999849285249223305546190314155617993956509425219303914325819684442572026888573910427340997220522597327447296224780297435824038622435906084695546935894643929346428835954299694210923219090121058753091063348678966881764731919357097741348797462727938952226638847773191976922017259123802424392602079527166699059538391476794643296905669837679001791890316459514431948346212771079834131825815990397363832481077565357905197024974795622159871290361686961696118676722709817632262191722960435961029141949837090597263762509284982470082684672669663061507093727265544155953124042736997341904647597136770095107267594809973631790780122184544663581994021683066129777497524161810497940187667842940270493585989433170344381463236854109591391293769110422230438880092115720895211808925147971579901757382705383070338161922382790818174524106290351649683329183657897634109633335388871988012457036762811230786696241810665329638744298773217966690197383992330427285161830772141549260115448550242540597149668572432414193698182072273468099979733943198436814039878251168420013122207450145396668162141750020007941011894740057074054879608833693860283351173243869603550759561431788052903085116365209531658600470790237181581162053617401423969637370054371374783441477744229264375008277278153309308993227766214156515301268017048420799618635692762084468952622060033394570855706390728945829179973721666289285269094135989859191282200911598419535632487795308690317422511103658396133915540042753983930210595095493350234799184647235963398459914059922281712556665892095517437653547324415870638406952095778003450362577723768928357992703574716774396374024233124550759899206947892351403215048360358468887195813170585593901913067136426873028710059197959543184621798997305362438016199182651101657740473855598714636534422771191414650313425115433105901060988113563311147166071827303180381125439410223895267205974644224709086351590292024250964100011419578765219693884467120521090404673660855083090677141095734276253851056023238178997035670908582076593058032490794124970752968704567774997644540218864663541484652534043874561457387839885279948356703977984946001223783709994118611837106617356614121093992158617062057365464459410172693385855031886446075464708554981946380068524474948955211921818590272605496042008014760790882980075213709218265187156126627758136368285179019405991558794220625059796083045647076043424630515407101328410017403586684517166955849200365039392647737401968245146479558586856414035878284962070522266935342649795992255695603666878677193398501234139993281936177322800789559379546019312357096893991349825119765733082495072902310034762982832898421357515621887400331274725504648975766109928376286116184484280053499709582523871624878696654873962834395860020676633380796607507913699170556665391875271829541750455117420752681010009212684290818753969544869798978860925092580204131145027073144563038810889815625932406362342104878864324029844908902552100306734261237789596498291797973163664470822311722354442707533334764167008370670142184516013671762828425467464816138331490525629957090103675253337547997583580520462604155719271718045509489132199326070617955202278010080023466786188648456312374988747926371221628924398082610725908309927524897244807962761124831494204358465723620693668330406681360180874715606306190160533288541576298819430196449374634233800871858059316284998933095026418948128274832851383663127686206105795691070957130602897707626210156531098830686687156841011733652756497378421739889362795370374095235207979396075506947153420929230934045684453045590603585415066207423902369614497328330950860598718180368406218475350954078419570782673010991812993221880081404930118043553556794720954047868747778150750151773791840799398246974043897873133052855656650436417264152534325253914531546422473874815265294804200134611229118140050359114200226884728489288237282086816926032057261145369966241288131266761703350672606384083584993465408618178636342576835205057570696508584584496758343474424268305181494797102770467267167663765073719279495779988351236570812137863197593587729224105099413415010306641972443100431985994034033666381197704702020042518476839546482378104012648406169626614705461135576264286945669482624319119000109118916541596306984117079902577446115228037185121555785144826433270883141320753355345193695796633732055957492358626802865764423808026708628262562577700254965984581765162242994110040036506870167030398292855010407288150571246327486721733934362371594152018032205598188315554622473104542713312934440384133099463154211943838390794533990784699556333521125438012802324779308943876468948429610391984745326069407775987019367598000773477505317368949481821781793063692176620321915918046514415487070833158124166766491949235186798976967341871860494696571279253533827502659170341695829621623972108103208315996852491834812286886651956771572793758554246149946553348531051918139210699824847894553801631293290610771330783208255590335068382303381920717400078712088590393560037144368592733205693536800603735289844933368535223710383434150559234868742240532358434645137565011791093064736103795636999916140764934998361614173640651928624884804998499232808628590411139010114980658764675839305363052448892858666860600490800137489867301081958750506450314224225320130388123540844799353691025283292189901942489676423319298468214394810469951506742366415195776549605793075608193753138180367083225803763080482811261137004465390698460860468377218810042497700068699317935982805213106752060514957168095039695864551673290725302077890250251933308003399375406312600106027522306529772723543326505910034759399179708328218899729435346545171308420472378112523324799657679029753699200785852376059866990014665839593198736165030502584584550570041909863032926142327830899412867930342435159447476412957870702911905425545239702223631778323012629097713309017925826511232667353012132494691179853229263153699564777071812632218278890172484185468000814578966756897878333500147868962338613645585371834551993167153905908740804660959386395561560617620812220964368084040195204270726509874337267275157925162508553236653563196122026277838132377684874879815350030837642890924218523597279808560403395132621233529242973165977246705536930162453598291525660595597672629954071549336754417519723083736292276132592887020970025203043870602083791142394354768551993243500723732200975023495781357177071710837147170424100989416440943994423382274718136101959544471052472312951720392489438654861459956665135815554405875682102294267245942718164310421578194177136162588899275997446197409548264648120649409734008119149661209443547247948163976754971718347417383326175483429593355387234897577811888719146263378238432063273964763188039408381443999302586217662240526603062321377258140418703445505102375888336252222619279103239242621162950463069119609962685984861435827699884502440207061526844463372328246838866615764946206770396685322712169244290764377230130886559068703565039080490091661999141723331842603186047263077652782135488825412157708103077120694482731486029484500419500809188158742753898534944591612307520444968047698260526227402414972035019022985236096849527866030716655152983841744979936910557158997301269298922081845392019974224086047566021095369585077930822477760669529913969552743552111413385275677495996904973896339939071654646036222365936418988661857521272231748452061344525586501777107635311118766474825842213844185848167196344618918172219146963584160949412355439805139875188780941357199046676650541170963794361959791768160465428096824057540575922174316547552581986652600969211984397940038807732543009753015616180586007125274136000264283879629867202991484158038327746450884654078037683543903835830204088578602340176772987692502556896032521392929225081680310727598006285007776337597235084953090319619541051961143329560838819033977915938866746789315927768290994884030821022767529073555627920020678571467636223798749452771838271304691831814794083901640628179921601458785140958983437644507870184280608818551290490631747750329955726667270495829809255481028652461045845058733575984933394975817741993552649940693763274774758035349529806814807129621466126630295423459595780057750737384183077341836453943894642875770655707177660781697373387421774531558517512563581011759438589434025421586051121117283894422476373939648504479276837009898668256275901415494667745101159028314229493118453971343282976516946181298926466283180321163389153687423274630561928295806661802437020726114300302120778494656319257895868944298182445555908972060888289880464883282686010682394703547068937134802304751725514300224097222615451198691942221542761249232900720189281448353717071982831631215571128242269277501124957216520866788671601635214031616102809782177754323357729217935818397560481967464928969564394309006108859128465097376183128613074665633674043177058466766986328418490790646153403159931818906578605027095043073625952026935446837335690737532731550016174333850964680031907595126590058406175810354695803053390858300117062868589157966705418387853188163085832552524221044629841545171190182120948198356147122046543067395217745671291775332457179872594351335077319015139961378499722407075621765985073981023761501954199666599060821626286106744694381994502723870264770808630997822979296701636436630175342974866802295611906801304208546021485034988140154578833747379989870522590724308786892721317255089906225775715940675137063138260310221213134991873100965395353946624108392191869495418225456631639186722689608083030624455270556754799930967128291043518221448926603114575731010219420889988856312867634795755653398737739492493870386931054481408362289281151931103604547119482336554566664407517392147875862569387930574936863015379389975921688758144239193571486633606809778463800636661071766706865093306047913114426589519462257585673586571928077848637692973432547237896799556287206262008881126323465857107140678368885798295452108037342463630629132833270731996774620208757542832672850194872227770047814385835801971482471253482925700358545636579746150333777920730545963904033988689884365350864726401844909745616938141571021345296233897228621785404510205923545026607639986517002447252420776725490354529238898585162014869463602557882584706200770168046049396308357590278166318076338978427090475727675259972165521142148048850102126557471423019884474708111960610600385275686887575559745740933106310372759723161120336257669529982317766365266534645306171672772788145135001076191753890037083396414360386266860860346681751409905636566291107137640024277626705355310802245120488302398131229608654214561924942578643804357395525638572535630555654362740366423047746569873565474461008075445489247049688350542970240005821575830053209407361696074499962071874961130969044565060573064202027546051428360983777939130300863262277945997274119416613303680431211178771280646116560306582191115277397475701624409161589437168475714197316891956839015820870462637358129952191011185484031406161569567620752744878715021567861371854232787101876097723514670060505543604726414181817125130485105972088787855055528982602857091057826357403569156058183023103840052150420574788150125076855163107410074598499559611423556764067016534276165354613264190220849382151936598413809305909785392376135944763857990172247461801062204055504612281041161050623558062622332189615564922558495081769203772922816571033428998630197778698331635021009853726291039302037800654326876059442135665456952580073087699391279033139277970866994533839642608884315956957054777191256633584184706067900591617761005810061471833586970720029951147244469689146002837806449718509643977333459274190801142360474835488626238291590707082254575298651267776621413519200603819457573986132084125704495591733266155547828399741091365827639062624692916405098258030576872777353977403931643539893151813422147496312959826384092350719611812689998534549316999277881333942404987701032991183421619976667995344961007162357795754633587845471231558058182667904865617406464611834485461823478486110142127742977564277308533576237335924829006013900042339822166886930675141626728131023397555889369950530011975269409816498921917136068726143634479112052173138244498624477811191557986764333288767632002206243915138251463706035244561806915097013132030521886837381017756510299197454264101190332092494886827626774863040836333622061138461936406664801274754602732949623987452706238515927064413045589700938318833621187429934818070159613917279577535283663147416427768859046347681834300009050786735424874517070709574488702735923648647542083308238299758881810231582110330322925224174370793833223358893316872118403954482003681140394202596623350851997289691499348633307577262646887969584847725948577862787722481822327309980280813194300535865075849949024787249779249432873678494912107220213653803250474713859449926762347650748904713228475836454068805610994757205264694391839012723042327524773496857200879362330420361954578976845471381888448550276586473127466835839025327258176052993841906632696303665912933086795380465807369376975739742452352024373245159745248434399529530937722578728575542853242852757913368129490635027821384807266231670029202084473901153610164922747127013892797260882444850777116584921291848092274316766508251966124489614020685501437884972292058522282180352820431195349373855263390163683998668149434443482701540574151011653393094016265724842176193471215938025362558636108796305944197046531196887557920726367672359313251979309217308014516691934635455749971872522848881847548081339573114057043619193970989020495780972910709731934612507746268721311515391653341604980204110159666278945326882097717920666497088845577224269064872134643060887508001335815156982259025454524166172564679714357343830314495774524709706342898014249307180761482918946878653869584028188395719832287581710069967373825975068384773830211661148193294148961478383549984718694860612413292766397888758656911527332506051008535287023729028218631171422913130655724136044003738923130551304403969977412799777086478587331924329147796770237380153755505583563176091000806818593113082048565584003020107372735945906396747470919504854201027845239131065248861133691463697648841201439648506837726416201507894162081455651571855048178535914484974243226622931439086285992105934549079947930169595126794885423090724788301424619574073222372325449177163969620746072295289711682930722766529648903974183885996684989841616568521155556420000779385257788680671194351588045637651036228906122516370225188704415871539973581822097475888465212583397504774868791822964998735745102798612389441036266129124999483247245562605834531298134387867541772765976235711549928600227622024985756508398705803274888991350666849687633142434684563284456159213468824546579764058201099674340787407615654817191543267932426158601081341032116010391273109418724827833039150802912822673461048938661907838995080081335492161059927064829695541692396798575622144804139918560299976883452509418376935060177625989096850191058950183157339478168248380135792440941626163468138775345139476154107301102331678153029646362444163849301381391662703649523733009786878835192573405100519558787919244089706738021319101305435035619893150859828864826364439677100730161530660782075267333254267780137897494025481824219649094289114723279156956601080567203615733942028622031658697657825097748618707409434042232947285594348622682768377445651837889985340641458246117468670185437250399558951062787824541848182039247311606075172744715378821877068263629468422644246068015047137102931513793344013985272610321221477854597717564904993030037451382703557055549235302780586146788747336133306735270336827944542553449438348405615465282391704167465238998352545819019066811856900885640277217662866582991266436767584643030464841522743274282070441536966563280094715336682629376715584939428968811575555418662517014544552121797163373416690137271552508777008535507066739221881084342790317350694532197469216127094462723861336878170495251014997510997134100027671406030821448392868983439287144534230781228104065130757876032763300022784085150244937011635506819121144494698799594907239223863684539103572729421381060471454420969544530128756244987631901142702718804918844131982536413235676506642163721480554056467925403074205675019191706298472180620907581819154098001854541947626894120055509675461630749191937543280676844121436962536908381165676676062576114503662821748409423136397410412670589026648966030022245250707686237383393295660262067308258454365388085852618104833527160688197615201273897218642335789291237746117014730252520934969096038239944055127344488910590830990735217048585381721810429592733686985960572937722764064902133606569326842608617761120894200521011314420566938569573993227170350766898450984006430659833059962948488940033841366637566248359357490735520912077701932620656581670210210878817867436373487409663211319342797886868996170521937799080689487993345825774757683046882453816940265513504708920803252027162099430192852853031176455356824981425595778739571003584265566099337560007309196056140097829482758873084232891289794841725440301721700214800470149524572279126964607701639309955866881824295618183306875694517145416870206544228346134175653992870069371514861950639681913947989769502121458437201157698719946362826198726280806317156751596260575747473965170113742108154352006867814726402618101988340883748495638070376433285760012681008958674094665584420641249048685171182707288201861812520481424344512963994524050387210271638960376151229830604139109983733941217581885163340541854259449270177651522531765347028301156125222332335147186200790098901622308949501708955501481953313429550711958873972758386938779237490129006056270175819863064747026693350985563818390615267594808989878313775579346740584865907092200404591753978478042179237782666041616370511474842392579580273269060283837736983023818686549669602463279863485780564656247522780630318824316409894661550091637124615116870310416377369599511675874488108421376963275999276666671370473159990004970356275706393088802263294816527497930917391258273830094057267658728689503032867058201433236674063396253936213224499032331992588796769642124294003291605418007010483795952487888307746413560486029068175504793054595919660000934724999804690082028940188324534559162765754641064394459444912449815551153073424597988953805755358630482811765113079726946561955384188137667308048642844773059982987793224920479348745565876177676880158304928162715263627664035855423244118527987258625020559210953022859503014020142739588807629925408030579802775730641436987149675205757071225526968202422598271999307152600500329988781328415546529891184148541170470838687110362228366666643203491017153974797595647185624287895873338014340049332211907735042593164588506069707281131399468420760740135794835393072189059063041821991415873176281135958076576396401623237321678459227422556674380446465787228966931373791349400038708209052577320481690461900902286020330212730320030934003763852754250192087115316453838555270013459711637358793021830697084824313424782382084136039854909553177356388363217696842554552746359855374184054311543770709429623358877723621706798626152548253011269611417132709512072702325121029603856662647196710647891842013626059331026922041372335486596093213912950476439768079319283768640879844436537228277307115953099900977081893637399656934922065146024558322905941369340659490494799012997952773474703459726202946421094846224236824488033790911041219720962290327087465053958471357252249021645705288993045907895380702828558284234324214227346989519729272480188677308403898999582477525701431941265120755164141301835165733302203741322832938695037958392604092270784544020456663286899932072549592449472377793333649988718158197691593981588325702848081003901046671165149001888723540853817942978881218267679297148433248302709236476019617745072441143702337615036307229408746709476130155335024356411401888589083372031515988883911010224296693781122555970098109231864140259613786096916836473550257081574891060002772583215165627901821192452707952433354600516624196881607829655329823101733339896014685650116978456295183642539269601075553896853932321989861593396255608671010022216634986398100239055779231875396740609258386233764230295857831899251608588681804373902203876786338720727982910085673496269262582098515398191148843312246052089763943145619827187004098871803755668012739505215294711924501696231263741192319742996391520104606616754447935777454072340154762527943502025610838011184132140129178557626668421038552887524801778370026822986849912071791609120181310837160860760629275352741202735003600648393921692245799287078740079576077066469191481627725347479788853337087058061595730186057080638715842649597983173156958736631947062918803016857868562369627334232548117425780069637928041073422003581035123171196360202703866042561652174482312361922380458391401046793934556274408232996470747160515617363098962703359252347988497760582947861818613429144291884410946976129030660302303746000925161620587481467847525924053206727071037982769640299725128431674090342576126933763397807177238795525958827212875074048048960791799273955953353795914990833594889201233069927824127412605561266984755228721594987214873759865407707640499450313021799916325853760455383552245182212775838783104351813706461897692986783915062952499713608424543541887339738982067550443358161550082884477893563058446773761227350440481715694027416817534745738546459041165612003830678686260154408851100483026015590828238540732443839132104726421700947831744715647365284034287926008534303570112105278315523351121641481832730374894843657955383113304942280518193983866165592900289194074128576481803692509308684656344133183796706110737407039231580833714020173816702352805599756113722127650451438492361402904942559802260957008819515796644566820123600105514562663092391396959067434017310373482785193839437788860776329849271660605882051270289588227851396350020251907723843704046841086902069362802990044978906308269922868533177575773879495609333927109804790552217372942563924375733460209073795515926558376235346264643160233065261348015696830863622844788184282264329000874725804461490861894401030124509686533415172145815663530654296602739849827430912806707488752602554555565843752760638412968131829814601345717729364559161664808187428007090623761194801136501617612221926577318931766679149735547020660099010737031359069569667059906547166491917004901282784634124828397754872991385072022775520439200670776112893862807795619987294461099201837024958318736353564175312280654794129043410902413868630393134587051114517585209064133841933723673429096855136637106677211712337350213159773176740971923420677391949830587258917204500013037746372978618614745485173814676565244583340640858047802256606197786526667848860754382820326575570525176702709508536004306887574395601640931072041360338516422850274921459581347717162432274694249148582776974705169783961648194062931842151079680119336370285083413642189714461721908201298544102758042467875504288823556750736362729854118340833151462847389458389935171155687246102149669186357847113395588049878763970719614554585328615641045982938750586658876900243911446473973545116052853046913441189962476188329224269219538423253957265834410754547606926551499191837480249267413075313243541248839778789178416954417299647423662114785241106907774259857392890570254365783904341206499776162354718538311496038779455061006311748693437613001181327263004646706013463542906712658383017994890867862121493100170906344818958636447862727379517930039607261390413371141855067371887311495478861185684814777821849471268510556879086023950137628504060267376131979806310261285827036215741610381491168977387451236676578022612302547788522486457773677333662610707385829213981112041159516407145591945156808847567095240618789166491471659943283064416080702811410515636695073066996061020582303487247567051903252672215842790728164690980895490486761719295570346861040537225067779803124536229816508516057921972380552883893633866189911884732075705036633337496211500366813197326717095044755516377287749495264070878991147631304661235445615842251449317159532365318861153731812783295379590362783815959876140444551177863015982996014271365978193258768580240593702600580309347250636390931831932632823876070087980688348881748051319108416447714371196895151546879285333615590793868337272366743227474114390025718084590189431861444223076899690199094762665566869174061381708085978052352298412959645727070941710310899550307771454117189386429761348053216258272940496391008956993148133857631479571568525155893808208587969092020356344147829073649352448395395464328890341934089400523413868702023255477176265933230211792753636899961236406594805067337307424283303521538225547354111333270476195025970820120755408112629320647571798852980865972435978484056679358414330328220781438935946224847615801888196119900053661533066936392935077002102609318592389538843548415737035291728872932710305244080632516048815964599795260755985777714959426803140893432914365423594482306413377240335165663677151477063964251131572586274263575457226988837930763484545732431328235587372880840835996446324736589379260675601368644886877890860819364258782202458458353240918417123500084907330019186757019871700337397058382823430804533257296042344645978069200837098057698634161938325311819764525311240698901024242799635818260098288604386487012984201326010113439964393733506783596456843554915397418793495521604662936626160074933998445746677376724896429033297737271980966400314983674136473092388572606943141705677495722114407644952461446623744703121994964814099983646707209767165656270867844466659817771916073342024525405701715564680091278292063275449305475312405070562871900127096307425696461082116572333919763118645475130760355171358039337944584344458611889366660306507384121436635111739738411206082528561135078395134888157248891110914395425928433137899544048908743765422961366296310541346829184548047274259962183035951732477931925536662002807918447561617791571376700090503230943323394843085738545444889776626408129843409957333408164637447133276067704650772887923608017141273647903408395840839730480821622856828766178977488512177543064423747357566076678630302561833771415771183702658903364964444240768816218114198055767909864404169855382122112518780336072938061734210206563819734273152068181602822347372575472688777088750258913590136192584515451391044070785962163933500248557830754310538953136356059351523621119346683949750279736784606133046692920999213147956443394130992126994274267969474496599633485348589207191485181728748356374798300866927625426735377711246005283707205838706616578563870593657110797267605659599371445385929756355985558607300908933774291845951857309614255251035150161194477256962458410365216965362862058340321791795671655555402711669200790648553663455878296914464844252924041935191796310609980034124348824079143535032750771151488066370861909146740027731071893391463807327664207258568844574921972044252410576989686353663288678650435864787459944024721579818325599848087310674555095772745621161702918767226256182879830382505261166765768724027106116682527064891990746746827471792464761098398685696108287145837467499632454376057370346713345819501857864505575891775233600394907008596363235048636822875398710789860584337512140301670396995762549154625211227071254086096174994517158725603454023579842597940324610202727681222971359392318060606070069519742534003896399550789701314460627215067945057438679702039504766560692947510993559193802612829607072086189094597983662317731708590260328641132062533337923944635919128451822593522582215142418830512420209457675807202434800389627036337522104511947654781714539148634641650787481538384110951272608138153096061592841202582277798236447380355411304049207055184673363582597806513218422327007337819398159455293483100580551207573741616309338284727122519542794688960527961527244276804664586852667300894322565217124538729699912801071368691993096137832543250572076705501183869140685123292920556780248469899406387395575329231619430428487052114614849507200638274192036731177554315408045760101805449097354222946119407026875928167430830040447291496107092903946901078872573456690888402290182132507441913701867001796220084054495971881134564637507880455326081972723830994988658172713353586821917772990237537093887137454902393191127153432404592132477545174392019706265020170071923378986998033269447898176518139989322732671081376389599941760933823476449115982335383299249088036686771271596926036167284404615659856800544529237769084148940402673233868232513155286399509538826581422122460258385040140357319584958733537186840423817915547963254945959407797283646088970026287305903854335750136906062293808082436456218523061333545863330800356859199213140785959990977564572054311964197812456442018326803511838246752536790894340083031587350936960771288222439360012049542510553104315487654332482825157931683702460360168756725487023508302879001149369948893110860545139006887328135382932976381047960995920805746224524474377336259473389459574401354801422515260406992349511034555884865777973370266404466071556531817657987523533221272826117482605739260919888323519354378675970218867389493183929152592110603121401630387198940587428683002036844555277694363738359845998559058753283034532334873482605990188970693300229836398633871704990783863631408962139110523571418826798326247415958281438584632616004918662679505227849841596225513183204571714038047399297673480824514968098266527165676428769259767000460822160215154685611058881958862749407564645620906813672228110879232769549230115463646905277146992293510233197305665076135981911608391920196028480193779544496154046311560691526843053875312756941172633294016318730864638130755796272724197128902033598459378738011603981774965692731008566361928618569571391417141452573617548039839866951002212973105800737885988026689249994306150464672160886463778743061050709904051552352641993787472661836243662300226704334220139452466094785079080686764484935184043043452540413187475164305315942539081676792758738010573504940288974858763851914984392064688390992965751832461126367194615482936529254214534984786660830471233884760719585043235126166509568654325658344284144299810891274138638300060747909976117451812244548989685525561617925853291260610563271943324599887003963061720263764533846656849269691299679363483006423152348699542441695975607890893245336196296807376217978324906477274473237158592485423015796824111534375402330617507908132216655880857659640603129721905355686360737987071491149565011126628170445440619190925544497329141876224604384893721573362486739389417537828014743312349678011241524944428428315618811594508571428566533375327564040940803618464184369083506498949402311211929123142854374946224394671571281369295604594496331550059451809926912349582516567644750811453709675153399427400198266700710260754037694847776609139371008006699600435488475607583082562304314281498226035343921855735083095110961342972379922276370448302779103100281800320135489057908031649919877382871574720264599386275753072279250422019954582294794565630549574287376063639461786301536088937595536470075602223489202569338992542070757323654839490422279915015370326140514529775023367947947043133986193252124750290018259817647897806804553140856621984811714436132505214919290638111313253174730283419759448734631528088265476747559684449703696943810980027094036898830233174918701192101176786259268888450146656594437341353908558097433525856557274441034874782185640329044325864554142166968907260618973232674340791156338622602201892188255258898232942501122212258519147432082725956914439194778690819012352120163077041682651955061517646740212758066868908445202135930418331850266222294742401567461134683974315517957910218507017214392619515083114016516918740287965022592539215158807729606371082120446976912826623097893383523170681341436885761841440404164415627778565777743013898844226291505990295954620800030037732789364117785571426644855628551133538463102034866299030637531151285036808088260892775987793732320130850867081070278959414956665058275934811008548623626268090012473399737438708741256449945675487340174918130427226776644262634785945110148048869576872131761885160804648120761273637468639513258774081387487241769029622144104935954959369427427768056931604184034231240545070855728511649744754947415033368982125701559784759683910228886148262865455730243536997531910589097948337647851023937125067635161159032555032268186114574925234120311455702530545653205672374184238758412887843137151073034137759819868333885624762018986761476592028253295470479570988304146022701443266354137247707713339389484503020237477546562606581993091129988736539322854837162732649288755832884868576654503890545400249339523438982176098323669391769095539770137469905648506082855790365607051140242488145811696810635679588145290798588176492623701305296910377276296731174266226246158856500945857029154049474244565757062863613711935358560432059587620068830528019149958399533679439799218888673654513678846900049116586389996199947630180481795704029391734191202207540057242193562534546088057800196612155931474670741823233819363162944840620978569785192580179538269341906114439055634969979488926457490875155880798944268990008930394881641416089288003606094175964275439095095808689877593611702198248791441885434331945327313544883399485052443605710248293369134514891393694576269677345240606705407267634280719446749468656081308925477549643300394413281911131093760005734029184054584404843188226675005754410638198134392440933749789105476646852336534305579491260657781514757758322556511948813510825387839815748273756882281605981431272098232062474001186257658932589903244267162450905135015329643984366514624064647235288308431754774760590945219182032502674693696971406023145620256745636807899045586190180146766705603872740950806568212538266123038345216536361269672086532982422746930826545673047559439016172599178910917549734320856962007559053381679923800793036406052375365745978448441456487884945773967967702416198560933917710502126679948257171383321460653762644981294525800410290126351402967727627090242232339833109918382475548806591053733759351242791078252854410902134052968029468131840273528243059440436092441834944318402532168487258637288022948216680492617544741462134057336933114560090372167180547961488037480301749975262420001085842545683047003363419522198105969412014175261342923772298062386991110412400722072308078496011549884714722281496980100454930828476377541133896773970943601161578645301232624959776655689408784003458481265611450970305499888797020230134538284992647714765597571745828504217989376265940847029397048966261158407630286680961577694830625284469528980123217477970806285251964546612005924802914569438127080051292117612285829975214767604042054674228790225565846425630145071251433773495306670395333579313987800736664892027525503368197662368035157608569160589536330239181767114391337260512963542461042938814694919675685973527399444226337114868715814054493585357174556332445249482848649055847409478277869139294970610505031646202261821797669243200654858783796675741290778776321374297732416157727864514817723637937487588943763629485108368634317324820805790859694279662383021153992331128008507761591205037763298862965321575652454766673035413768202157322527837614564790350462602629654586764757956651305295422381170832383840321195204883334338386200755448492086920601514608022258172320447778813376540316964764770832001184464029636798938499711058591694586779904112478999956407281522432757160224436034068103872621265223908515298425761886143436134287173407788217962573097010193514584376152000477179304876764762393366258431256390703499784325967401847896682393034160579590058433898079160789145024893944347252888955135316014894389167799940674393861791655108721547136731797216883219303955564960202502152842171296678949864789761252399342469347576036881470764673939121447938285680333013937893675351248340468424320178379712112200935105404302587891386748372833147058275710250981918880099750476480871509473537304767545628399091572011125943535902218614573215503264712306724362265844252155662938144761158242098432173352324011714658705319734587210289800523215058289544163129510282016016404527506081768008137954963272594243598868557964879175312080978975534675578367245348328110583250540024695282309655457049295858740837825260692032291465045415677421475219355843740105678347887457097696814601742406965061183060020371702471365681282766342790962233065774680934996399800620922645795443833064995100633666759811346394801651036870867911237165627858291941899733667144163076328084825530305296419250701027995545993738282838640327908327486595426037351163270686735859534186319543263052311185350416442444499975352798317251746437804742256005726379712872315117577623460470893798293984153112544712651573885322314451188428933482369817729789943981780548405561556285447827885095216323943872993759919502020433810594029230320776203174268236215279494354558929868873746888201764321109384618108556388332695133580775735275485057117749076504066812466237548915638703978882653330637662969390768825679871099283323220184192180187591485164809674933707498163605439497269587162728129678101467279909680747685196673842163847559102471947862400479040016345709310039014363794331357250143211137454055016137703158711828419676753244819983593022214314434446168453892150710430413098992273617776222082438680336254837325099987120149600864459209717776067742235573963647824740321985774650872480830724817025693288565974716862893316341469306373361072001886302451823673908471265373803939476835765172221235449974454678926194772241471134950068718230636922866924040346677759185898440261671465551187238766045811536745645965083329673308294993965088273292361014836712350336627132247418271393726229663157574252137590462000169175779636551355342378169272402218279521872634132159593876172725468613760409948748466531624776681946191558459799808695333237926275754631753015087553106710666867148938458989265631780742239150554343332996541723353269575264455012687208210196887627433536074596974136511557071596240163144943096569368876247686828056523026871244784228766867654229022568130314026288321112952150153186507734453594422114384756822347220730760006851624702037533795359039678808238710727923939540138058014087434784985883221724194916971321384098237967142059708070882880452516597094513574586702881794240310031915542603557894729516755908619967469096543695007026072873392607368049180199563310133543947812096176879378263753060143064249813003658396805027467870825227060808736212871994814823481308141113147063758085530676032412587020898226846030415129648728703639965309103226209755175550604197294177101750743770814543513267360057662667248959947576454813368544050906018833999206750952457882331057609041546976463493145790168090648268375104425863383335068998166916786399208819209756975100004653020620016527969519699303440211241104147739027551294702604322832289934805267319039385966508043404738573946509626179624758782165274791975417574126659696008220863435549138808531429623428173453590173408737701942265769040001445599871535850847403808533806431253351674601938964064491844887108243411760378568451121396128621147582162301635979660553724103378551504510822253254603916714554572508808522380663968926228346252258976021577371476324231184401675991842054818595196498704018588158607946709154189481372778739776829569939096530208029509100141783372859181184866751614965952177954706358855926430559945272422169409448473761065510043390561964722369827395493273403144306423576298692516248988893125646870806722775085213668873748524510609304242033932379935549026765187061601023016295838794321275231083492168029505420348688596436786279743565259094908861198209782515980823381183633845484205866570464525601391232396688007162808463831439204957650379565263745044458122323405622808302470997367758075284126404532250739214510970905472840867352940833784577076533991312313849170028332682747454100652162382633149802888178123960727469919592369115992766953355754284426842899180818690535464603823522542449285370553472878671672563441036613208064478150123346310270154731850121231928487664573824714460563348236905337650059937944851435034770953960151259125399420701412789332206799344669631415533474498329377275414515376846685363463006630758495098732442441923658580639649803325787538001067285424399726111498863365345037284807200996000268684184069749674767431284991862473231306375849889442432258657074141463647093692365648490449419344157128631331874324949473397818399101520704645741980117415454453632755755648822732070871878333767689492324948086598010064258086475795513069866399630194948737677437744629248425858817084689601182477621840585143512140797909981735895148286104456268106717685748260796847075861703141757925903346785781262936714098086462616204464266685840504600417048227291407283138856531398732745132709978300247051128363203940626563964782026920565335859090574794913005674825470659274140374474673721437032580920552096495978577628353393835662053351027018589017364785288307537493797614929942228494441274238276069475362799130145330048439830212615404842023473619026364880978211563745020112994639190556179006019474766018083889949099082402720054746412384318992644609973864093973536979700810516774337833786576771354786978744304553047478626440180759386641165629765755350186072484958383532253065050819192619010585420111833495000612049688716958525491272897872984138782587065539780468463166673936901492156691225208340131379737822347766929335798127510575423046733368125480476742702292193114383974527742341560374930692990864157407383689888170284677871007344295693678620354448812432843385813696912766358178666873480541646898270117615211153445071323235117634572700868139583669611036113677914419378327718788673049442294117631896615908254900182858913757227155442009494597484165574869699464182188521057277113961203408436304567523417536595663402710273822046423905443907196459693419126076684085010408264077524627017952816159905032599963438126271467271935074429131321519984924561471351531679965812869694636681718767706993289860878591364933542510982105931266184943435148213454130981387384751052584317566411269201150683323435238170504939679435599735206851019947809804758603480775703167408674086856504118725737729173691695361752366956373165614144517628926230334141956860244836259918566306987268146066826384473669011073436936740574754643203369861170609824248045055637102815538148403545300742053649571918115251537624263277393102135810168035766269688880352823028486807008343291334932411480874325400097279230653125196922389566469321026356289248897154915352231751811526866633423705977230430384472868606738014939947606002636162614088550529992167563273886151353430241570031788047209037899424932257105059481770769473103038476400805825289724649874317421979789378040289490984778502378209834111780556741923902541813501497206118224209558028184919834504423561992069564885553036667771403824183726082076419337528087349164246972693968960947895270607264663943424736203801536005114566739162611801842817333336123020831906701370261834377119067400466173538815475915474803693229155207167339247152285433867991623704978325581382931863975552936862709610030875416216651316629190971393442641567993650677755410361108007560815013331042451328091129455874078961640438611967287779942881700069056252241634222341565791358388509736504549801579013890537251230717288880379209377627084520601694893902407448568453814278684369384255474478163042018974607928970042890811846940621945595358880172926563140239627332672468578260575504857647043601729004537896367798024055231994280285663331142224194049414197475471486654369378120416064731295714711571526659895537107847371442810017929603876775634415771085354726297744033700015340318885558179901338217188968238379880304297524025426034853440473093141755826026422947493168605260931932405473376452708729870146487974805234135969334261007097173718861135040937002570637548531930378296595859077142486133660649384245251178629284888363398867573352150527070311391998573007715341254909510710048230871722368814541263957264011971551639679898103630935922750739302281389459435638208722042427739538311268044459603762632996351420151277108053619453416355093993641493133949654749043829124006795201224244433238321594105515630672885875846811783659871574331114523799472934626810968184648402256030859038379537560533684254302417046188166488520137250745211652913114554772288495613738825929187454350293369469187279194993989013087981659238078208904053507447107285737343337188097646532361822608470032111122212526441064783804040531265362898838913890254221539894325916091291062513447709627119893058215328478119201577389879446010342914244079292886717189894127179253591796711168448154187240967839650053926698347088385440228146616773339256154432996815824574636646142572681442974602678641455644162483620398790111113330506391329838913264606974344046317406871867974023062916254209705750498220660689447706905852684114643737175067018329431916669688425758606309766196121636696741204877101427326798358798840479369979005305747724920443519849779023804659527441558758136119529394748766451074949018161131711923117945794188094719018376433992028236590522760222896214060483542128041931126231761776287138320131872200829365518996168076127443530309114026726902774426483182490044176640319880280514342561989061782106168428764730517802390757584636131428044558128217914891936225242356963587556332855249343249489262989704758068993009285773494040341218900970095917243707117150487736671481206341892827105031663031839552814003161676420283270406233495401516194214441309633322151803015177082262711356555257171023615674038668016042677798477322721986697698241862082012803654971851354934014257980017818017089519012938798661097718725262990590932446265052298660175904064190461688759630198712948533083069947479850669470948892246666974190941730803329995522536296539311001298500727437931293263989150655253798365879351691532963991166882238292886954154429014661683949406447080369927714828495581276122801942529560577851601204877102932389241403474528414505706585932923387442445977492153770481282111110020035171800217252769612755974149423193405269389717652059219422092691499378482986252718794986115603650924560041689766254177345321203200361493028164530829629738242167092500701646500956929805267813558306027531649196370718950551862919394912146478479448298450366451421004083872428243008910433826558624129682381940059196708451007648338648491577939386641693937883877431971549694974325627527449030623966796569514648681478727677773730983239607927008398719072932667538095840618244141143376331761155541252327863325607260736440638360945387030288844000904987461854522446932199378279987402317057385340935259084405702585145543246830565334969991943276138874495916656046776986826010729753389523571353788538093897979976352534154241055713711376843878214938008009661886953082427212263910652155076202375504784263072972381934403566912788400295948655062011099646786610932923372232635364416700487056438131201961074314474768320035163601099493515216848898244751114936830379651132782873879519146464324176269617284573045270414117565311852677647056464708211060391706932551158328896220836236510983861185832583506742738574029701072485266592026135469792254136006728119031853040836333487135183696023933924741276633127187351379329229368899685745341544160956555157387873258626393108507852511154325955419154638875882571811611183021284205214711006025019896940364605259710983521612590293296843525055337015242749440594442092314635884868618579736297110951962501609145682299279812131866966346822180274362479464942429413397500347009124375585794875467972527311224430792588406905989438047674153302311076842284186244914860274444315584120369811055770172725661713915656110984313132644733562223176921217821813688437106945822829333081013686475911585057101768069363883977672598087192654821209095701852483117754448434876014055930800724184489037650214905369901943575436150942833657437430554768495366634579675006087119165666847821559103335740686135005543064208554674216511565756985830376702601067179728925933137226351574567109129048793688821751924008054955719551359581437837794322602234192521562891973211512098163091288525135520584019712629297609071072242437562538492707157159542227878799419953537816506249394651688581786668788658144473892569035040653820869610460514231280332635569919807870285383230123417125923598993397564525347557271752359310598591813283849705924323556031627362747164064574197013226035710733827508474572497563488403425891812858790502591898840743308461087184949938291392473625402827689666100828048131299186084656543918151586169689626552318920561970441394349054910287611064236620971637907465345504906950706491053096400947228983334521314130180998548188282977371795301897252561909601445047249855567508208454663350191107773157093066670753928462561227985458980586717906180818088946265683184387118579064901690481456344274129758619667043538731502613899754857339530334152870631249678296043475936325125228380484256571790084923664093864691369000598950415396232558236500957149939631430545120131767157999977278936229112977920843829668267587775827760987869295321922629036139921002907559856648354939420086914349658458723381361597448444526516242143537098815769563275447909783414228122102016349001327725528053537364409935870428225462192452188802729066401285415505382805458741534842904592952384349347790400658635516796293203239783478082182583015443857462195624148860143651812368979333354746034149934509633886181640308959193071987043186136109529121812553477790909960945820525377148420088576013603583318900250797069457180758744931363937082815419159861266245498272473175710468488957623784488073293047256915715604191831229544704513391116708253154701519439116050897995111784262807987296290785656803404240730818731721711611183398666716369936400019821140349449886634870216993357925500814097520356054005409780385734788028523081012241739092748569309699026134793474313898707865598315203810812963608740932762086468631644985276340341488779086490497954567989273454917706232819749724202964322900861701732449962854280780674860003075502294010345844194921830021364284529266204665303505996542901102341709511422443102424099802177870671223417286812560273497219417655590419716353715074037218983711649882824859532117608425137261203198521010336992781040654677073554064457269472934183967766441996384772902043583252484997702723258435436407210586122459695161903521274845629507673587658034224532340895456308272223101718265891497625012557011953215959045448613031322308207734554884429349580980118084103085121967816734310638034282182128618754630634927207829646222121452844795498255901400355786919925047834726834387022049137842851174379796912022659669035978793174162413016081967904833363092218594071105506919471060215556161353072600024457825354204314745424282719439039415896857712871402169012551173258377078553763627823609473427145651837765966972705248872584308276980942203819214049281514406528325355533412339832935735311509803834182655244870607585368991487034412035853275299057326399158763968621086210389847296265273653870804568591397134611919079756251188806220162464354021501833551772247012186396728343135623862952358924057824828778807565880426606904559040369529387877233227242569804712184239445440506504360205722411427281893253971306938582160384011103316808858468757243454251584577362789161055591005177831798341879220552655840490994755217332557996850800707239885525005718457509501700964911932949589442791933475898292179075083322306491821400312726540483813881234803518105449746964411361417809888053557186771338859746204695834955975510011571597343250239404350025576829803007548560617391700054179482032140949260286050916647383063797264669240012466464254139442861003047788811662608053411334847213014449647151532652524599865348159726713246068517443159752494497075545527606487555077747743824763249469106658733887430530186196898081754816214227040978835506647235700806529778598631324717079293296472023146543921127120100310229884758502240592062625979534792940042030428148127667726487726967984365616520822171246879651703991348769328997133861651971061668090757579008061931023825190669089304857847017914772461816894588584164186667294276977239992399300363055277706279862801371181703428860775959747819939139668716058746804428831524617794071708511515891797161266899320448148988006910650820955668932030101786933011999672092826368343378919287124134995890129419363086255820676941905810407185253062204111205996205877292997655262153830002378137205669200691043434954137081791834473048636601334385879133536130860294577183985039282937739515081560749797877468370025531731646450396116222893278546061393067958201261076933857456879562725274884836408006188850479201141475382870568277790528250996822639737984589233796792121686558655064368264896426465967270125723286884403519878384620686059299250279914437585815875994852339922297679852336224556172840881026831427533641318728836273488499693617615939342197069269538925239824851919490661636714835277950666550516907316646699008712346458036039537593520554372392166681688672263088003191281682921977034194086360593817488147818126221911689206169913560082940492290004365558168009883647175960814451538542690245763594671435727417738383145394987839308162166532301918936603909463418590093825030858820788355003829109418776466530009037127729850220724901252409117758636550732428100354889093885498911461724223554365846937178218354181520365877321582550493511328462079982263700014364495705981952615622950567473515131235239775025560558423304857522510457724105635485669826010225756822514228043749611085094690727226699205660188311615210137739856498132431963098495517978719260423993195577639962889394992489713269399296065309623836045304956406893904923716813439810713540568075003189377780040186997383080146520068136343025249630454890669100519429339290545787975234750560935994020852370068132226766565884673422320461406923095632291978698471277624884953966218444115614804107380940481176629237344251484386698427992456887126949018158915255810323802489276441310388732410417501010591542596265636615579835288683922728438105431843287690103375473902946773958468765500595585424242991976502594653836647292209532915569619559470051196663450675089497927147850091240813799264556454477929894717801187530448257644086209053522399796065806388567065504884677030250088646549320430077623746814063221658226659630034563834728179077711567173057071141914142999259642544960258377822376401718606276713238489210523155158224640958060793829888028846163761877598587706752396507373111207326811034416573006986548469319581984364434450447799382089733724143125341420288767726830960983582087252306948488544559436631884226529690109272388343174720829493364663376889538541015814370474207997021161665965530322620485355417775642227688256434180523067671315605086133005275720347446713707591691797453969906999777093422057821057708656320608773775380327590142381925212644162586084890066174387032389706580335888285543688732821944809035641972774693499645390727538503700950194599812728209296179428797045083289230657548525871356826403013521936518350694541511592822471028995025738499225495970715837939336631051398316887713711930560824727180306515051807842651708294415008011436169161656425485293700046010383578467396964806544793831270376415955724973360756454875840893960736647012915598734577399544436490464403818725811533765507364054701755122916183709763303525413922983298642564249128648487047175486409257763955157086080171924082437244224216437732148371425942086275334601727388987307583230333839963553968030283581374015045928436204494178777636998033899532021520563313850430856847685671742465954280608806591194590507674647873470617478030633015460132823940467713456463170388910935412433490824499399857137355209032046662038114343943010354847404978655317501881544033354054460703782564541367139323009119449264206957342835533559109981312667318799772133476987396110106472929538294071884967264308784020946110846740956364476271818306920641360994435296677183660707705787725909160649722791548494701656656472434154697704542197392197305697617617440718153159498240933389785991141219634104474201686837410275275916917854324029955942701151983950843756215117155460798337666467148692855842185279226626987124458001734629735106027393235273899079523042426963657416082959250805074583752881260153223887446460525964226064680142430897825301535015745811652926985832552879021740990835120385763421092628611960967556042685257882079902654794951008533432976056276696060395916728939079422673424637753726845152539576773075674376849884768679713976924643413605854232986345080865704890023402442133574882762648606986245422074894938443262988935049983332286901308225551915615750193546001010876203594557238633390123848987245566516713367426818391989604515949494511154676038028296100545445031235964172243184991240032567494636891781326022970936382976892910481363797342631141639635199951338219707160831244480846362249789223365358945971004575495400886209054572760760168775985072884819258051850495036212941539648975533234093270102420480602745117478678062326974532206765515967866556799009656382207728461184655741691042330554359817312543542838415535764503887680784651999050764948131405408868959147071305725291510910926963170416814909571411656736759671847269056846824267248586925386056773079134564112394384738391701352808633168033366813407036166266491998311321680856114873251302228564627354352173473137998904977292748684873298795148782045597846876725603724065992679187211147256840076328043935077599638808840977732489882831270504083018699916517414501856579272407212804984945630979197870826645031334312819456281232121116490510913527882788668687005878307093364600433813657226413817557840640905539347762140923725526212748167939892089813731178650498106733955212544880732617619555621466915801190831670087444811437908619007556897410295727324836325478992984091642808949683336221960997006977415933778036311350370531423836829882938371079648452405775906766885741097428035306224447897842595346100767358727458931070160825761493566791260997809278427136509804127858501466631528952209764944216534267384107966578057063725802563518023660712109528916761743440353362675834200565085435768333778784667956680552528444142700673372767165838008184340726340370533441308318820117676675290958624393177335838680844807764287654002792180291372945394917980941373024838923765718637428474780799949472863711031228668291648441547045874879680079075592850302660730625648277103143242737444281599878117369718606547380721602821720761707390694660945551573087430868637178581747504854620191982959037252580279257181435186952936664903260252094389725462867326136624724251272764601989521750950335991863731628816457428652946955761775588619990074623471420977126414324182555668319466152585964253882233135845457640946954716521214971559645396305791787206616187881987306128647898929394007261994123494032783602099171065168708126804068821264470240928702190153020795094571671060869190122141351939406660738865387618638115497310018926561183171051062858355653552147603121999795343720670785328330668008865269073426046416111895206821622999752906247689421592678909904781006493300782694635002343917944247370211288460120424012542249585329904019407140380596228391584232916048723806982974343580003717819149045768095272930433446290907686086361665361076802905292259088653530767581535647310783288794936248014796805760123892148033987567674106691071990588918194258564567808624550239331996368217378881146683713484147502034730459337562823588005505911141815761016301292795824133334460396669071756113341144353205474407468758842239205719396878930485085139013248291347618540961914382527821875313443731956581223249147015453465541807302102524040965236019034176839291591516478032255235394276109309001479500319502037812493226778683034244881970036724861768072733208233184027985980255728272391846329702858528651717952609198505545007277535705979853406378690936744335921654699283869651827926640003316753027974923692120002025513969371812936118664298988056003243265259270740844149372096589536128543677267410119878621167971491714027092817885853264235788129397412791828753751333543914690567883178110752852785284071916366355185991074351185493432920964802458737936229433546045916197784901275871948445374510395551756400148168433613993575588292354036123230132185815053876933103184199071439180166690490615446402261640920468878569868442022911407848835711236712835142628101668717675359118197789938160929218046983918240514842562680146980182447721202750174129570775292434465673655570413945323687185300604835628445921752599075904400443144971222676751527138844597910906177185923261701782637507390426255427430387599032547125403069894377615832601371987517253565874831771577529173115376134620431588371450365745957576593588340519393143615333284544268825280242864912702705256535722007321528080375738773852260425441875114059786754319904389762318148586627860786529454326916187616599240187300868589729277897242141947043679293059216195027358110763873605386512094122742491614816361288673306724291936346871571130313316715247373479378178390240848211680620450198626901872670398653050414235615339081046268970676042220878293288477780647509718333319842629744902932362953459796976792628424556992257248809541468534044959483233448806471492689118123167419584454576542944607345874762055241111234934722857398142761530255189680288438213212611019269356272453737476537108400935042424954854559703592993734976100596206779432168826188153580136779424874150359910424418280682829653066435692204257206204544288551782754358809752609093295389922572239418176095547215383121581393879988438623749045102631900690836058208942134140838724382634484906702657652254828483155702338874867783405943890667958245639924733829549115394519260664915799247992902654949928504880552998734702247288577233220005804990022943254107347179195495435325287939502752637836203880974530269267466393271328958019590679455512100298379536122004577329013300797466986905951215769733931609618698942907039716513663123915731154553488447906603764598995498620475743056643894270533368430523749116764230844528451824876529009096892049459498647389675955412717213065154417420568913851586624320631946558964418115178475244418439562236935250369834747256366770663301891484038896793595459516077586724969705103582829010711271274170261542289201075775092064393874823469086621209588810954734597468306678442968787905823949335570127637017888806827450885792005908234529640054226754501146296842285720113993334798174797177430168328257713052346546662777012397148872841769122188240585708697569975553205407094071839366253139681269143082295459436862442454560818341201291160364738444570090415791778481845888403840798037540765240659251757303596072939127366567050547034942798012914818655887113242053046121514121730831880610074707134070654837123123440342154633525909096990628376912906813728023424222277447659821440866696422705142483941032149326420763893790048829604130471531413381931917374750302557068864545098257849061499935448709800998123511695649085142548574644727302621288153320040317009589582919716866340668760150213022787456306205905065317486382134922774115811432560446277010192883196643247058094694203080241962842201272212909617202384069364426570200989227004726692197388162192187908098691303416776997737953931318205798986205390238436340668907576826046212620088304155574970382009120340026919488039962252632106056522552875075678795840415891306761025446722624753048602450769710095750450719629394626233896806027671573271202713151785654882158954711791812100854500418774998058808065763297716204433893423325661984974350509314660825037993209711088370355562696133669859414689978414038179937365326829264191673529801391835736238431185432691443874005558709446354706267330637111480574498465349552799759317382887089967589004958508976480648611735989811094870664637438068213037776077616171501812973923065052904493147361856384683405856605165578680662886261444960099432163998276359775362194345822535275386724765378108907228827467754291933280639129703948946227850039559000537311773794788341935121119152422484119036733503487768970503100556440104722865475997652333144513179579275361880628397650265930279070068369094535963999895482597943128600909848305414274691895783344143706763163475422097499804002302352646189701928089026308110057355353613905928501084877974396953061103120414348870422952830955846581717844444562563559750529225016592332693978869289350229750854828146954861888146609971687111959080618826535980731997312945097920384356015011321616044408770251118225142378117868822322605805064089667005235504763087270488909599650013955040602188226451315361837734169711254374064044658306739874842585103857642660632002011643667000154204691779955556811844110021140576911675028126282103014138697920543627700562539820519409153219321228091580915470274252390664300138082044912267428287531031575549155049928983495641393779717639957159962140567910689693881039518975974996978014567881269767136588304114311066180142414368568107085336975794414315194200897621616730650249867124410921117065500658177573592557481757145757381204739983341480083287698960706616811001978465576764141661275894879009954003009569746127764206890532481832773750279996243492479900664937614694682833253507569514662237474542235639080148215360619226157439578637311891305005900876536788365943425674183237674019688797585956635252267253097786835921747528107148274040988704129520380587026202846376330319179408160196557119597806503469923592486044540455225608121497860085752350033365442400632449574325461514870520117958310406092122081048288007928410804776423613229641690832749929417373949514003256432915750917107631659324605818422621143195534748508901014574176022348978118672131200250339147715681790126591693083771551958765771047663344218011723707663018564152029238712302074300941813761298125284553836475110143964077515849615909651239168100908336340409661763579807331126529714795358126190137305408119557296756917606177507100603807462612669079943069392738513425143537361829123378228070418624515182683679083530293072976200076372396121764440096789207668993478978943108226439982861966332376085932378441012484203603376336022932855337704153600013921647872252597012392607763791138284014985850453840549029650986749416967173300885201679201357613590620669400415737240568269681585272008220286643791472378476709081839436632009942748544702372855549013230341800589469550504392310047657253599999114330700216909006679833412867010787981505358344769595549788054293024414986872181362521362013971793291528362626036767117232286743035852472691216917006191470445076118165426178929664261770155831051079084719855942963361957864875865627582474652406350128220730217494820992900595383786867929986503626885798345486786188303343485483984033489593201766794432226120081631904074193647844550349531032946248028890818551266355414956504465259266191418479615390485282299111764027944682655965019284613800207924134808498450617382761510075639703215383610229752305185949110047572268933815219942304714228301668863494092564310852867354347480666268182824427186044564780981472757340500981224353899281008578928268306444075575230336085372290989354165661714821030532948893333197115882211150710026254401953180703584007950903164249560334822038779776103860180173423891853775702150005433172578311737217188753255224952913810747342055006597291541523395675467298569861923597305207864706550270024809275685263686487607231426863955319617019650383860926937785903831825415506379183696997529093007112727077048390980524993768284331048107887687786290947950486596960414566314454372249748887762265767311016552306567161657388935387124615649568078083712238840679707210067108088716692206535150317588493141580828328729902132918412075976024907033777457564948469081939170045143519342081375565268943263798235829602079553120978978760835984199392723426260132673912815009944828109476671302049707584965426307026473842890074411475608466864549544709908653910490750750456270098444082753637658204342305439198036670996557868588816945741270825592044635553901420519156710382512910179845759271678914337080176933869060835154299991414993965776178941410429855549671321100994962055014934084121521880349093637650386387978923273633898588430611236278746273394552194577954566897974310396361618581741456435146284925968740190500544674833909593208855867039922011497697722229531086498891168934876719737129521645938470486738747552798476431643693440194817796179243960455046519899842049751357667378599887489319766226276773801796229991771892138964341200680615373140177542768142553566672830996774355820687472718757401470736079390785508780610023117041011897215039756946069351824846764719581432073555939604917610149526442627418028847147187289950450164594106889339857704020300313954889567570355279910960776347810350889828597679587296419690994414662930202120518893099002704296629318502515856901001360192692687434677315794025313623240062939387007444009309859358133363825815080654394584908124409970613496624299471376212442194852033734963757005178959690896995485524212571813744013052592232545441503952364551818725872360994307719345043809333318295745565265288923241479869130834384775006456768166669987912262480025359178200536615269106206209620320968998336279112334040222901044476879359017910992347837490252139854402683959484995069252442310579576592463857919785474975793568016287371782077341330910898749796622432887779398357644410231605225213783039946465348913088085025302337840657357875712508722350780656797387579603695432413631240071336990018810780973655360950148578710609657552794593148575588751499948107292608445893169969852462877648262331047605978768263690002623443683335169644195817460703896696452904064453193860456168323185075410271845783892918870828725944352112804089471669514922814182581413959759220981593470666046067167517090396406923667492552260733562104423576129318303174367392934112235614103773573721295218727280382526964573788790912362579925782193684065608325849453169858799320963969007673055855484980713643580417652824265615223286946090146369824893157312368777557164156551510315754829650174271920405026050091539731865877304210411588860012527115119063753282221965057148226941957886484016398009118387739128962536203134498274370493338047066069516682576999845290197521480489987040100216660852405498451857868321985829998153441355161061908984831800886147729911160876249231368687272517798961836796173079782290917147380343906986242910793075586558437768164918281579136465312020732780780808389949972245755360631705607715256987898022086718799739760759571629779231901769557862937402873161806421325231124470577341310611188327365518981126257926279758105057324715585617961908644044713084111167243583868296520634225513443566882287344140289705843897293775004457332886961248339179106705830714708642810199349535172564836531300343037169098993378562322810458030584372727946333872289886073924121710279594740100835007434135768794082332241816562207163454421883889961958579109360670822470037082057617212143954599620806902720759852737402319433003519937229854478641103943284319269844863202076806410258066271060461363083447797058048687508348301485104035366735527509237464928662173847384124119505540424931968320232368581015755817497128675840244840969507658821605962681306123767186483560588249072622880744446483342019525527058558456529708117459062287698614411193454467134986119222047738422146838012468061091926568965212847868989691224119952716550398471062892988942636234537649810585562983551334164529631321785864413968280467236709087480027315887823254490306661683612156591760069509930649254316947629485778157942518044506360557985835568965054884473517654586729911233630269841829210266274952837735014763380530963669990344335399826936172064506228456310066362698947190896775308324424306627475393110250449680261304973651149192062146106640096215108757087463471349295650481029648093609697093264376912316538439644707264995406588848020048141314704665095597606842754842889548078413743968885330407386146305454199476719363218272005900466715954979986143414384821104421365452144957208819308223597792405707545164151099109793227912026782268259657240410023494703855541410801583007856649841168122848484581839022321010875200098303865653251254190462408456197621701149745933434361416431058051054471517217205728322849462291876918145853530376060065262657032863561014325833350602137077091102695986879314992213639507050931088733133819060846166290395030826174891506670489253326312490943834087412736720609518905840713339167978411522990826023163605997808777470970348305597976761927082899204781635254471732439391919893568495434603109066332229838380564674060527858139758934296965485850150018845430865974270435045537459137490695926011145317453755433265130312401034990313600414790367210922656000725194087502577475708129776642172940621252883857923679245485151410169792318444039717690961932652115548920681202271439133808954791156016228810444493498738349755438755120561119258462963377699976269057394774444296951819191278844687077120059106953393691561535380179089042328159249629168475964129911676175980139507054167209288483811874556065675906855719200696933365052328872435851490042652497954811874131029585747660500454174339344195779686588959838703142715672973984364700985636005581575058846171826001554286257085830255165053956136380818957687714024186217140032639399781697184451317354385751796821958264584032499236924368726168135472062145200421173634305934813075350073032349762398035058177283640093142635335191475784339687900409613867560522938098326910222717839035940060662933169006539628606672130892085285571957169583057539194877334602600372166664724347548694167574108289887713849574397802234051439403190051952112283619854232351175184035906542311201904036547593807506366372348851108859304681686958374561530562639198621433179621983037884610841773627011556617396497687575084053421581364201875763091008855148800865908985448178085781033793508481886278817184039835165893063210022691066836605466138974962692104416345443727222879152305590100651737428838487432810070942566013717212507853853320160832504438103394173464521343984066520348877952919626224805309401721706191544664271662882739363015918569661436618382508026106338437560607386224380136360672286808209672640182169203042348500478085625977875393239917666892495766398537989423969623288068057167573436658641484417230771268688716856534487714993007212286953536024048291245749059303310441137463561973181359697183498855930449489463435029250281320440172727823140037513087516005999958394605151905854593533654186461326494205551602611851153315368205898812724325087352852943201166840537073310191915615372222486097431916896291379310325364054739640825577095693471333457052584779605683616961014166781676914744018971243837475059588866294196861335633481468681558815236725718759728453665309268359144547559988570429643619489544182422727656820184174561053796926688866925714541821433338919676162349839872198990076026829229899184130498354291815793295384277150154576932701410511166751133400149442523888552584543353600282809365445269538922446181538116752675360316760275593913850098969951380702040382515434471346493384838345824848817167295588771058525498593426630403783644224810951858050156828346902334444858732322429060954496563826265068499709776459464635615851045131305072743485657658690098143721691272517675333582135200541927474501439951250398084123362792566029016400890614916770371050010407899134866113426654114135174997297978743319547552445340962214328054363565876036046288421518064723146998721624916236665027022350041085274336482985577680269784910209295489737786971633096873603844956598345840494724070357379950969608820792700941818322707122687154876977040581321205369215932282976649318338281333194788445339064649502494735316532445025983508385202102916382755590881691067879566256194596857121852954164146673870084275714805546335274906234908201172493743750757054510097386620657273010781432640637862220693643611788929074755907213361407951207387558554415283517609450301913027258645818861181410957119407641295335941395005020758608216507372782300530415257690699622996267132063389584318401433207556608006197184601141051878245594859261892368670353521547543395178932331412657964387789482373632963155064054724775902682784416489495708805107368587759806371077041840059469946700698257536182140486472288902888135556657269305670989851547010162471449461293550043425567736668787742760059691068954720725571440607266461157040541913120578082882358087981936712643774219639964880271175566627009313362449381700506306061437077900638097664475150759446895920177891617355318705170805667828383109081669173791817183864973418209839512118417668472742516424634226515983363477348095505278412391997752767873282757930109185499902089520366285849408642457549716774514443351174574631491114839068471338506740029508656163103569420804424137140036743216913584744747019015895895868992193833944968431153042357560008917737045469135953337656889379717245358260240198519317340856057559982347634767634806043026047129869055612020305436670931241161656009160829590178948415589920487002348596002861364525235933082296805693157111456683466810685993590610155883462109958072322528487180592482299004650637466045152806035004129388553417502493682995741636065684656985282829430932132718162839359323504948700042217458661900236096804497334929114308624337737245953446315819026514614191977017823445626081046387971944925809525357063994990429459830475319707916618539899776170720412820686982382834837736210820919801039782078716271102939066772496441253890183934953816880136102573631714670062599976444549796707556662753580190992850617818245453375806020106559275211988709912991467633182246884457684201668248155776994424398336623627076725731728283303106401041599255212649430186433716574379673631406169097347158337162015580247592253482674895349828085902518435576241531369237099881487219512961561561268870278642804595637728569455498198751619258911814557693278005373199863982657971659568967220526364431103185721283828302312482879538368401716106051227979024361527668961532450263098963227712385377451447726823729028178235870688782961273352778152078996913397145534673977783401557301491915163146772088995889232726728906422010531412656970205458150186767519004752367515014554971578809614959171728689086727575758104652423658489411034367480730679433465420196582244064354691675270991029848692077144925407656001840447293250958229119916008393661537193016337870981606775652981272567578815898246079079550149086374576566914307696545983372848558591482132205013554509962061709135937822524543480163978448611625155031896753127543845819700442236565406537301926721950660784454242750153525394277064703796329252397188851188575865438053432873081253683157177990393994752076457910437967384757928673318698321008235818546336288961947226772756804271379091377153433492356275558251268202201606124119437777021047244881444351653747450941924915192099415194017849487108758162908554069327542048899268874890216693002091129117990527685549155991572097804178289592135195078151362037520642292727038795613575128986989687310942880647044011133369118443563733126117951630380643684456772482830843927263372182491609149263017304873706739684883715974556189727706687752344364990415836880818725839951166627827462197716311292386869080134673266018415063388769975820674544202444465713679426114816150213832176766476360194366019321942546743072729719203419468432025458414772963198707340669313974478640891309281124925137298294921927157566730372209225261685075687951375446795945291424732741993214629592119157409102479752096126159693725275440503991728934294470906970142304586388509804916793836072661341541132073231670186550533092056398955330266461578220911524069720268825897089786813481071982032059328117617831352004161106422156820122937440740206766458793637892332475992955374572384926323380222564263150737838230404543050669290355442578594793578269968070861185508936820057834513887283473885534558414830195491017902054833487680850777771452245080146146057134176573345520286251392399185947597484271397163024097124507544007410802474408084123278735898937484752819806936357705151949841989139188544113844415335768111590407193421092633794943785255039591869035568707371227645884643368220636057101869101288285875198566742814941534981044240431120078742319147835144429631771825671256765608957550591045130413124843894601845557727342850250077822679793847679679878926207457835434803123417026208567911848722986225033329801187780590663972123144717206661587133773133429546908317685685186813185397377671945510774504895987634517059236023446768855611378234622078637430488957207035033482176172273837959505102480599146463390738672470745031997018353298411617480354276630109968759057541987275484436993120632447803579755248190402909802301995584767571201248134644948709277188126823509967557839547388029896588677673279376380661245795118338577580450762595580803400293965010025628606294879524747937827727073540436589039939676140780531293260619089223382369363601827876680075310671074494469519333326931953583213009511294392836436532358788568661117336799415956199266572053199688549743373518888474379332058273290453132942658299932509993091258408250490436588707440726735823273484904417504564699912861640924601100401025656746757549122686039630266102331620265876719990198984707044722883672687713921256950597591151447107667378120707528777825156147622085540727010205256997299077622925997825550785972099387960224020460746695116351718405795030278869081483865500993145650659083712491843475423649369252953197785116404379200506933086742802727365960767243743175508941423705047462362405928495034480653960299257266519115678178875591271786862248087198648886022592871782247864068450335117574216787658809838689431930823820912131031165934945330916891532691078014829162416531028276371332024773885109077885255648467513496978336269800937963624043783341756442473813502022329704319284279258788600066864274086717498309752443387435625839726995489581774646548210345896549755035662230501504361882396159179053079293308437199632278654179107560604957707505723334366219824408331748427202482068267115538822150092367353723460443568036330253650623894331323670787440476674388887958023504675698325931063834347597527373905334119573728419608089112646656428224096109561482806924431072589331884725014649344328403157300098773009081607845712385082969787285614036685434503834262025746621580114590566593580336169725450596350094325427406479654877973487722633709667982240757675262585904908155264351859399030496282058536796863506262085782941523490149967165783858174825463094357289862926540565424711686565243873870115448850006906171140309199261421033196849727570240315368315398600504872209925436062715988902940042962477087025341029901236154597255986458522914082109250797447259830442357790110451038348923174834855869309614532721549821400763961505856026678710150052518257532212746072387068415188170097087987347956881875713114940972719131346659830748960006640935086316611958751907483945558334768649172259296198064773748576001340292052015840529610054907775720543467550077333211735969767650889466087048921888978776399995519682805754829527166777626750588688330477344086199140949696404229214617555428155392027862249052616572560399999568578463662342704332429351369826059829429872032198494977029557425724172059380263393191748764472050253955350911390275303324660065993048007666557170602115719535262636656243095095855038773444543865142132243779094782811446213617358099205064287496384578144961518938268742304440391753720621671981120840952856163449220783694684325039009974602856127120515426615996823822641691931094584868325242931006439604874033985473442759577354244053615136104702874083242182880555036295972758107876224617046292868659454378672233554056952383339938032669777601660262467212454484348465329848868961753191209234354637519631228081213819499317959456170704141708144861615154128131406317020349386080671519807506466260725736138552835864168346445411538844989691059549993583697979599314877359999305187118075301384236772537977092186004740774113559399188582396697271442165306843539591052846635217309371010345315646225673719928011972156037207016355189225018893653253491164761028144341440003847018203183574265059745526453862791552405302419524500474356294541000512670952188750539266967441855197649599477889867930064434761385062847684941169779217435526871168757622450056551495744815044642461322774442847356859219574077798918063253336238195598308951660201939452806875343143309103639940477800579122179103088550308287880525503566101522998343207343623178202820715992381003287507187369869238483124649304431574708926583763079985582231141788692886186766020636152082772475636364483844454535364224829709001578990678666265001936441213204023159480954551658424558701597343724517392609154332808861516584865146041547926908463324473685685418584360944367597005559290885383685303839479360585193484850680795274637447301437116741594387176446360522975822403828097803258199897509371120614050476334429901056584173303749450203773948381806626638211692790888773893819154159891857633765679211532041240596308432381032254277930960117648347623526074586521980984998568868695639249796504624066043891320735640339575088375497048309512920194011179081973872136091075099674964046162250083609343063599082967072296145090679929477681307951413892552835602248251041862881189099113605454288696322947211639230119029081900850529475123320062458765021476330200982916964264186071603965797063204928056298113331225344562467501791105714192359005212735055393140437617728053445964060843393245185766615590774627610739322639677759736356009421685013598191919521936242900929050843499866574129288468603937032969531087486991279281263725880061267502383520925334417678436271313056186002982579304878988742814686365033433934921550812071294519254170506115033158885585487812624839838609438200287518270817316531539798887813675107677902644246563787985594662243834579722599988593784594320496895169240588525807541305557843952668234300334746989814876234508901073235714228966184829173949313481412725869674385586833464405322667937876535749440219272004007984949533889652612072675915199517801788093716704262961785757530642572870224486598588597278916885669492562596366725370575132073203120655351216803592705552035252168899082422383732755074687245196783068274436989436047828545565010243628545253351191131202036251577382877253296682959669982595282935458201703662273117407747661982483522757482823433384704624873269748337342498013396544142544540904524685874429922752521147498268197669950500196788124496113267673280910266199243104397208141841925770815907574120894476848366414941013986143742953415240661284116311105965923242075435375305241749910145277018914562989737972846659164636338455852424438275900310494921804866301114787671103972339005152903486520299107816681632092591714529372077450326922834087845226339930306887222729905651461403063484749414171534669599187218144912142698157980897573870896211380312951111019709944123284510847607462967072309675966137802719484669703618234756894913651624798951196814598397605721223523066490433876784795106502511539181544264736963352255406943876470136007144374883666017982473856682387517997418142834321150157831018645859127760351467532121750972734547791014177237382816582272039833950128238592084195176777125322691312356510688823681301010305458797818872125151731400122218782272772380300795951005232703858430051562770732432532294172488897589864705745488369654252284771496100484810198700143928808245142656178891146079060376972873705845305703079226685307761074677481723967284720269885908162974043532743468119109639875513504241200103396598844852265876840026556541025394217894945948202512201079920057074343121084508539797137101212081322455761850620102716539415433469750331027951809851108154469961267884886817046919789864602874443447487441835485301701499891075263560465117511890528102293060511328056551541269544807316223846787113177764247748358662385555766589410731158971830424883038348881735537846395510397318915800536566352830082964858739879804826555396457396144530437750811086043658884082237103885226182580341782419215282450060821329664026693167844380871999082799642287993423761333928446807284443341586195181460450871277737178837116042018925417152711080613373836492457039880342579227646314480398083978523444858307274289223727576933957550065060736910498978956824333330207831690226060179186875724883142386711398250603532904215478590495365701046530675995681527161674575483245403817213731640882669038556549336659058852222137020260600551133197823751638597363487866822463055476231322783359292582029878828434528272463734753631565579598908282889198005959999429575485027487611225111384972535960148179602416120061535403408123097113315087808618996123967043173172949413481092892087693592796163056770280152565386131133802712166614768564048863137337859721281165472609917928961628024049728024414974537664729645659873935910887570725272731863944409262419802902503942969894488958809440294797884632630808277878697497380461537547519806637925145608293664369099595696620044589647588435550398584767607628260414268323129196842082919906123438026799352621008468028954388859420856162276274503642226236679035193375296338856101714169626328890422710765481051163382312548556925613523271736959896436134755860852505258788300688355432548714702805845343393698305384211746221410380766952125143060446863288158535335121003777448225944517774481053180433287554234917085344260857053795612806315206353734281691089768962874736615438957614585362874047553892547946453608118503634034965491685704596026882556367553630590490936063143705900067461186836741006648129813193534346751005287077341750102998360590982459686670324472217998990446691813080924457590915593401820919987820170492877651875803183942927073742144942062784725027466670283285499656256881024728425631930057226570494639287765269380396484803964955431698270442932227487427789875962768124481088109638931702882283038989664062954590521942703959432488185188182301625012046116003134766993043975221159954245387808320745413678252233895078700110020421730692789260658024317670466597733666240678572474383464543466923976417093103399101707032821292152759680525278723570968725419270809459730151648822847101482728156143668484567637613998610133294299900311397302057271147848818218187795033132636472638892368406468872813026323891926996499912226235397349503707706676353929347515163768572798273458386335308417209611810171608946673668648626197848116286416405138156267386820272474522981823805324625851047845092950143370529894604751762529574149770963619500260123323866831040768264743297796904735566441899500338238072465903830652332660651231976594112609104405713715262120666749267000927644188283435241281904528466292142631596786550015003182959190716343088459421675722438282519792859785643362818338915250048209994722258750397032539870701316086578685065852939431546083851286663654377598542082099886639387169716474821889802956531042455615617574765554931022770551554499193600874331527649477521252067247354708881847557504835401823414437367325295545751058650609101263772948461415540450963229552159297561896475237140762966235515774100774199359578366414942363092448927809737123446853291488653697170704468758973413500848695026377053417385003831349935975437078797265823087542862509976758590696819030872204206389165671179859164683123760704308840712897134240650347956628702498407346995048320109980470346115276697764712959918847419745167100773480355335783467697537103282706382074847486846932576810162700659202265793455924715213786393531765882030785636275476643664546641123804445954871598081768281253817462460495453666493435037216611577641390606079864533707864204333432719634507112081478951358473036952137001825994025439176542305959670063011291552715436620615585269517318514242108807394822211065417607182210972552731983211170542958156603039244010996815196823149897022838730422586799752884442996151719473015909808258896365708268847498201931679895156824635298698575514481347425843018078353544491179548805410830133098784338003192134866810545480259823933792118909707608407743768575624010423798073136171036049824437728949151843646937858896501074903256475719686134127352977943089609297305796299123083710921930140459757408146102674815573142632812079307417927612145653676612333204234915612682773046589270237339147330956308470131675967497335099310308283496615873181548892327669848298799422554792271104306682004475375142013923035162513685072096317115989059316124639495780064269806372024730026532892155728094042626281895969726077941773033657371217458362292534051703375062116086274349087407055697949894002251471221736908254227765595887344157673270317453335308162718223041767413769345921505776977746696362184253745345018103632587418252233472418926651430991242251610680430875769895048564444555214238720122409763415206492335144224331679056682152877310760867629894756421167519655470973595045210989433650977989643438274342952823039498497821833177031896603176822448038734448117673298460683878084388907480630266746786450273967059840988716261216011836314586231080347469913633230207975300952872725015738645969329414519476073938649663608030158889933367674228936704323671042673579921456211448972490617002554784791347147475502657763406411233121318261211555296637086694307792855664441540821427016225153359782439648866402344913379605811238868730089677575124760116369099924462659463036828641842153577840737306943029962812837395364080928941729812182600320582677079320757595213453820292805907305854773108122835412457906244862115356084514899409156019322435592709073588659585871299139564328723820464157154525781928589597893488746067355762379480021624963993115926645416549143313816029735487341401511231590358696276339715718110662862260248685692160683931238285863585810270573557605815344201372838708583547019872965159865265321786202889574346254470075734982194854242379090700116582199624782409462171161649328452001034810881479647701765683002232722146675828864271143325878669586109397437597242393812796274417721834783796004442160643879696594759718986125776387461099811714527184359041624534543843672375572259327260656415706182395335093549507517159739097412784203521148273814258753036299159236344734156262757624475303783234827222145674860614064829299198780356739064931859393422255795117527723241086166936454418119612830986806101845004125755694186890491707065949802305005347174662793735080611796392171728378329650621577799199206397580724037493994009629956285102504497765627752685573647379584723588816233991982493969102391309446832936032124386075998854966829755804985263881773942667410504462197736662262057103100766512895724174984758072570312670926955162645013197237167917340018540127007759132216929319615729180432321955831925234528356752742914567774087442445046524582536178338732100811059347386339557425601062495065549086945649637169109076998889933878613975365866311307164560099277771775970578806198630150245732667386130898634724205174274202819416244382809420149182073778110881824300668714272592170521746076897142910674244544543489102398410080729680921934166149462801682235039841262198619339405673228816593245199170585694648088575687951694443431102560730507566076970592277430213297316791690766165865501302189194499725960087976612423524926759612468270844678420099088123976377164714830157460083138832927056168386178672633801604402045616409920895541280802539753709704317522193061563720346300396613242051243024236218453863141230130718481164468385904657942004234985239576765561976161716863482132024842848244730790160632329850887514602234174263460460010062410852040278848099447567868538069981475859421688187184069662253587465186299575367513651617205064291670000560570195705825077451734365723600507587490799417048753268866840011151946305469747627380707740394883827718144153592673319189503054985831169406314173852806789593843273597475584762423240192700432158894051197675769311706346223157102393607017770232323626868583639732947962052167282879001086438726299732035522962179956397874393143421635287569421207597258015443982840932651741309637222838035882044907476798610585293455220501629302068338422671648403352480567439827475757130400609767826442901227545319626274016641061400789167260392907333123757643361421190574150085703905219846217105671363522785887111004538912133838888241057382480285021452476723927891176548909173336050055712203354511305420756175829021312207879476758670672789756589748717585454147308968089227158813171771335647872890073334244391920376099719770915124682823679164092282890149171862041998734798681152775314925315883363849015200578972017048463141755990307459631604073209702990946433198048824685034046069071832381882318886678515889819913979421640388397127361472132306396970639035041824620483047667178297581267552436058705613699081965510584247957308816109779279364361396235310736236763840780024880887116401985229851105472306420340571419850807745892437965681019893132439981779996896427513927510112181931467855031929578888589015264582087224198593526300152412602255889829972194965771977516792139156696853801114602257124986320965122777568226988458218101740762562347034899527155149553224035555248561270641456208187553787072573004808581890469040943882683756526277177217298733042968307633671039910843286391316744068798357781712994282127839781956949255971898614777406078206943426742823974201920712702259089621072362522179818433164935981867313699996511940153173844235336390874656100266391040452355215167492216863836456846877634927181837067183886585965081940390093352264056783436901114550537445293411566461530614498548537462641077077135709311311686860062804632609771446459661597088860286253840837927358172333288965283444221638129940571683147226943764761904775235013960166580373599325613832476890925965219781081558581273802701201610928913251298744834079716316908335369148124002333682866869284328197943517267742698456430832285752432981013846712551496161809471352516832545119318192635968645140500701779117066805934447394568263143860022622540227375830203712422863533447867735672969467371791828966037942967704478414597634772146252902529200838442583102324945296602635541510041085452957500582255212571935202414528129050542485095567195016759178801628155473179916951546785381030639844502346176336014517977127192996823705688798307601794557210263460790916059289024140280658289554745559140160878646179079511510777705271783589371303419262143266401798400587682856841803750821031582984769188554044678953068256980418732989588285142810531909620470304130886022513196300657936862220119974655990554413362223216935808723846372081864157366365707177019799770898741294708027247391101890318073471729266115535309545152106360702202323771182135306103146244033186740420366125880500661943834562858430176059765621933538667162490421036028940809128416824361657134349562264741225085735934384465322266144058642405960624403929320303882491716354453091157270681862884689240740646345478130249392091960304916302244372653346622992465638915320852503675127144924725018854369069664203501833250339053114207898402688257620175578895093860172218483501335405431050892157944232966597250976505880963481197709458862010317263648428515081234766877402668540197034136978372639912967060851986787360866078276566862080533197029294663637575844456522393419804320258343341256190086993644902647998863974681361123304527272733715146404803842120583581906187761082178738972171906006540082194415423340773985997503802489692960009582679759635977312939057187408180719230728633463386389387596418085426347390603386282670589308988481696907183825224431557448742963106074550051109526666198768029430196413869827441080678881923926225861856478149374776338842800572364388511431148533408478301713303123070724219023700642945749053771919115512016083665265638871910634773724885273467319230272435241902439910857390828906485269287647280487444344738391260687980185459422986867135039798190814240342059564485400890199748210045727859604438065783343388927524408878366383536191446839420547224197121560747293216842576938331814386773073766792902319304863754014937551658608589559189083774579875002208178000133171524806101126425504820379761524092001045801585531612142247733176978738736864912973587607541515072084011859295112754061499011570438761805645479140036737676778557860878933073659450772471650842327586492788422698469135524150232844562210507017266608887608557902685673052864058573669497325710790281774465823061175393371371962090250985737998256096869335870376373047826805811550518498307893408001908059855661714500603621329633695782112966764755026110264722015876735720088625037326044909529984939497387673131218385174795892806189572435678694476256545280388633404987773915949589790346773360392597797431700266515481466736664132541478383638617402542964240342384601018648513535675475987142996740480849208915969381455431588886976217797763674193969900015580251763242150806874266225788681584954240343529554355248307120843956791621020674599759281332805810730419225931282632317060616108026953352452349734780651379518993864446785234821663349286348896185026613848642675275034301787560526694270345582211664595942718413737613113411038819174066208910926781638581730040374504121778714829320483309385215145250844551502597004091577517876276366716363111239976537514839890010676030696768438015538533105542650687925132406316097311442982146303524850652428905989300377916482992821451153570237178156625940823578417438162743709502529816026857583447875776437740175688024607971368215541832352753122391619814927945236943500371777451120263016104096807017674092112999168218166889345814728251655563049309441951458891547304122687753634113560717009516150141421164323554066787757226394755105553162069643786620304397589731538531968779462529696563631927644179651301352133416810800291708151203016021277436277702488691143426614790796541236799567936331214564288900951995883927441722612443679376149564034024023304036146313578403101664178442155188046557747203820877547070689060366124402467474576317466530622186205487161748464355966492155627882211567059372940301229653521833528790293019455231194962567346142195555336288858103948469637319708503067561707477902971123882681466012314416783046485475902478681298071064767554804454585091366313617472560282119512884961011759683179985328556174948743849469924596899387665101664473039592513246899460951066812026422630733334854096806645624226212266146675915504871451905939214031816107968540242309916892855895051232977566883175630517124952022910688535265351619162017713875483802918879667091326171811841153868494863945007748554745712226087994693386767994742516670974961528383505562860120240001588880830046619782265201255623034993312251897848655156542980836228504854637968669235576794185110538457089909241714017564287424920102013833559165884842088235576555969353363938508242541988030276784652743447390086866285139723570714662759150636025742867282164620669359725281877262185861425524981744753688101985287253475871841172346347317610006010724513720691519552760133035759845862234198005581912517551985750503005828396825315269859944446762590335480935076278653242631753478795911835844045730102488304807438066326566289907843542267476014192587132382762670259025237584713780767512677412787787486308142711375374173235081289961575252537166446572046197786771537803654567163345962031151246512823102218171727541988415620085773445081597150568375924392468704106638210391171570497358870517722905785616212421923824060123679409681678354109322804960472549495492443007017129001490234461043064821409775078056153095851912908096275466334701298800211328685148249033207482223120363134248062325421681587996796527671009269320852994500736990403128327448863040173065768312962838685187568102562275590663949072619062150710964254177702016676036681907417149880261864770269929389714289708677365176613346005069991956663543959486364058745159629626545904762117429643098986133075205851469605692545269690611498745485349507574270631384714148177389524273559973459053327281830810457348566531134322578538949782418777739988790690749085361149206482117552943475627681726618172137353092355667786211073052087023264594330552974986880623922541313560506186236332076862810627667907649268982077470171628654217871596190913988167908011175111899415870102704843529214447784930138925765125053896969060411189455517852621938784424584923269193149959875328913399253428047109750079895455118031150785550921168382322287905152731829348009650194127795040390391832740595021512749967202064197190065527393061104590787696494849438455765335421340568566734835295603723131691470305862273249975772040951240667996395875715966410815184020691660255507374923194582041592985438687865498696239884888018730445654691276462437162384745891954380148528780905463708189910835679155831812416668411850017455283269193458745242845043155182584286912991898706757010658441036335569273310121585428666515580126818387640909376795639138909773801047179606440398374695026382121782033255474577022059083397343870272822742367768633048292814558969163046396336841357479262972338611796438213628932193584288362816432521666473496287892635061262328945980855235006086824160643977313712128574057880285177926891196367326163245242136377147519891542518531999269398254596828244634142626135383178661604086876086868768810815987045433159452058052068354760774694112542563532258612215123215443416564186311064275804159310846155240231247997701153494061683065919462616877408261544635612223038253881548546396904220779384843213576971875993127947971979604420657804688224566448311527701262334097488341932611893210238967293031119704909603198157346364967196891397316002594464517506424331035587131106315894876167807016924132902351321102234800558289992528858753732473777241900388817636176651636434186248889443589629707173701476181609339382980684965070143331579423686195120905566815619396758887259469185475315652356838854061256851526158539411386841486006153730560117428973902823173350649012240329952815996699233496117826369332348747696954379302381746800692565759162247879529974209766354027275282385141271907949246046149528194915283324579386659324158801737606987285440033366681140096667614071981620367812959448153468867667859204456058084042498016893500480607117838219242591342702853816660644911280196094388050609390286813350394746818664112841948909636227626990338941658860456463911324692906556839592335848940943377959080819913898240125116974768332341701789416634532974187670462638359874536703042238731094144775905688993644230573455336808525580942405655173729229445074501538878696434578055221798458686979827249002569793583578058224309668135844472141094082545457679526485875137086249791103164199239708151627309501263329768897323949003276630759702285688949435100120533920749122893093832636599397490704286206934803265800449567551896738402915180814161004934651228060126186917268606395941984033997797101325597140175131201594897604284805600945990636613803673742974218712831800979590754022547237264271012498045342526441375575359574408991374250538617499917975098853977181417961218222415767272834915415208341652807084644665636125247411220500794229533687322809841522785776258729121172719886576000415118701177559293168733847032377497836440494570370809614720836858838257992143285190077472093952359388349817567819781197615822188733036680658862087062786024809126310438341656316002119425713880059313756632325027741218915105369722267868230170403171720993094345419197409356125737141884215203141474710207205780623461573900832834563030490443650760284209215100632769070499255478086861141032047552428740908109901361497650136295784502278266628697198442278169942972659671829203430964092261004909614425549037033871371746226889397926628436191721065258289942292663960179891160510371317086720174033228787568036194015107045309045394946894343451123083600888436999350477853810431705573603245423780346721287238213346643833052594996911055693866669529681127115405959741743627372639412644291861931354840605411326600714528275428013205773639199437061742335821637317897072253165286018739695797175219031875864272030121428298362126522849965350631185419571053795910955285481954748331123918096935815412819584059622121801413315670122788681266068167334736577815958699573274607580812362514975894145384014255679088690144142507877858916291058301778257239963846510692621526388974490725467439464098403352717375367801252266347756338613010615195508226795065870493044367726122922275677660071769666382507576824612359842836377933701685706874665250741282713251416360359672534898209405311110721548270766604582328886755984181416120908627658288568659894085827821650471486675016294535538939737597261601758994186386520675048768274370314019655752589286376868738385056024057041215272727984988484161632069609088556889949544886314674643983530704015652666511217938933390078632874411219984253855946361252443731500950478454536540845941637868550052524905903822948953646085242436294078660538925805857889132328448988062434092955134553985066168676466985070974824412096024736878102694164562486212719016529456812287699798824197120930498080320805910082194278078875370685434919156510989155730586661201788489038469827223161231580552246367170342744385273362621937569358899658578368502594590598958577939440418378835329765747792502624390226714950600657753674645423070263719775518745794031453357844875058001869863459441116826188709204430202675016019647229304625566141431331871853156544788884769258175458964739540741214771727714277621753456703943000515888685348030737644287375631401774305447383717055122277162433369019398983921760778063264784009598535222599361513113721694676291447650522206623374084494663118853482575313952671114879754605934729902685793612780541120208847731519148088697638845093109911032675993403815044022666206874997345139854840280106716693426665677049865334612883387157317186174615774746727673405406464903078696958140296101140022981495193619654285890434899444985290827024526576510208942151227563334572962297234520455216399869626974320132147917790902091233320881160274379347081434326682812302677180078309105458037037312156647929491429741776803294848211191147560513303145636313172893079547510262991688807689205608661221186671004275467148457834638437338342468900243180737962577932974327117371377982181093553950118532488966891155410123925494640607182871123836648578574155547193337222137828386954686600661348554914381283663402330358283457424502654921182201154343397777457326875510974442344690943251350936629969483829187324941764109955283516165902222570748447867711518106437432609931223682344991641803466917876196719678794739867592197255597581357549328439147035903353670226119966019378523732458914161808659598974638003053734255604112506241311249380255002074636263982676825749102286738106075039410379027430601452331237188072196454105079511677717867807026300134162911712471980959087593371778486153830887038466664513144397804123745982613585289769123948820930952570839987441039479338925951904259320597705367997473217619178400592067354104995709845720808457886559405522921305347726584481919214583197870740545488560240241013715030213996453305269715249662834227114145214081180236663247483969906002500705386034933869664758860067483359890008937626213066689105707412590105598041391492869372708644088729660151819680008159002424249719722619945516465538003355641211867133338369109709943769334722951346722846881616945738576307653600245884335209309568129310020179024766812869548549718707162295004580919075127520903102195669977390806846999175168390854726338680232291733365402947008305160084941515954233606348896595363678797927291009884416776801011251759220993453953557407951248698169790411723182319875159642293959569501701106209203254646679570852152122129379219030214012329734813641199718357700778121242051779673057875363370772353022064521004827247548494813704014899088549442893432242333646203074344179074868143770666931107867915266350364518641775178565006482324627941281235220527414314201859910511546898232791670615185025041018177110946542386379380864232520318024159549397580496219491217966067435314486659028200643857241208041290385948179200981513347649209918164233227413585591064598959146328646276741674794083446248529893562387069627829514841132711032901286890788843038318047011293107908825942625705456822773891102099378991098709745398105048600622287026521264281133524632408301031037076381473877697130290665156981028807824361088166316187217629844279012043713735106426302023170788980243289250116704313896237275256981064562256440322485287531899986358806209035617081569713459896775614729777415780750502336360913549056256289102664253513304628398301843088639592544223489593076705624598786758700619175630407458279804371124915628270997684917319589101678436832492506267340910135072697003772135401805070470021582050682580266004927328885069943187586747386809179804566166510673876744295880057900780887004896599578743743237993680099903345599057809103623474338313802012975681587787559472696957575855696477459394245844062474571363728459170735702033147085270690883979839385617941050486135414538086156253965548348279087472861424562144068701706656416546868510917899861985452593345559263355450546893223011844877772759916440011186360636425000347899194073284717824183849516823662616105549498309119768924897559144226245392189955055639672340234316800717022674749164269068801766452495357044211308755027148588586297106508387615764503493846242720761685730675558206100440428161992195141695476803070933539125173340015292533689784053235422367924769703048824840567324986976278498090976267636039061815324894406778080714232195296601979552890541884776593539943504994771380691255335686510173128911038526274048160589100074255685507020600641175788346588389900602070678292959602262542547678373119003793738404080459264352657352921919443036535103354919016331112579643075106283353202398476857789269951610302974473144863373475382525028250066179961212514751004134484012563726541549389508961560852018926607110595069683775037019256626870456465066687799827515486476487797036061039905476976591910217289348806146982239324102078128877052339258249365300232814279231882717459111417784836666614254070061907239526564270201637680160458881287077173084827224815722018949224891645098212952335963238354860490223535528573780036288735184363100568696706568054426791890691085833014607049981711841734208299475631907863133637304885464738532707909192796219932432137610805348105462033524058647537100783811166687067479216752840617510537924949677153544384001466057742952922742491309968908397874850835273395980626079914767441034284036831519524187863272627831655029732682159699222884615394658537528198408667161097713903697565487790350455610649550912713194397665119510476213936936355112481924316174128250186554953503912886306196596161234586824831630730167916735828088763791688251628553411519322969979836374721497260421381672487175538782482128966188866646943208632380864776686920511061452350557939689492600866743682720511452577689228375193716925636320515157689600566381897351523176195166997519792739291861782289679469482487242816119719812946418358449021269947811575916831544974999456126326343368732770435323372739556920967019825463555223752458806327854103052357022350001332645835175309599533117979147014586437386120740976928985787343130673459916387993547463999446374012804085127874153805832052505495519107692967780170897780115119815776941740593634642381445788587427213133352434516069849732019350087650568611456948570072867326556091234619047528263076886328406577968413611018970591942306948924651309499551615684488267166152575798157513469598663454005519599394938131559490021689288387541315463872026519980486253266250330583508938514341187371148773507857867117340909903408084329237605648948698955449787238420427656702642705962854703416529831424993998851053594599196445849429121796714836900478786705202101604391371934638739208473825561556411733218495570664372100243709504935076715734403626716378485380616654655017638110333036419396939422015834258897775170538863236410980777609017007124559630105455346939141559679344813542490215027263915530017422752379933841240424987021282248530641171743286768456388169433582640013798928004699118396035807419235202484359423252931013326287490184863722575796123466945006582802725278499229967487725100215178619738097805976304286588732185159995261497638794768861549062368692879054604970813227968415526617842019948742587615223073401599110892693185680413155573554168467171922546185822756477555931767352749805166799314876283635835291805334738235601748005995599925277652582392268379715243760623399317546049369871601582926526763359197678093756467094637946025056417730500484010513334271170716137362221923809450311685070575903988182781471482494524396642890271113459265671412151586340756105593139371656114638461829030095708197507670929408604770715453791180441153646028868881600666479543885261891114431469172589293806794670277022335121409955342602330207627617896779650583900526490297292527902962945748757922055472908883633792799406203010810549734246464696055361699158367924388119407382106101487178288436847441475160429358074708246108920312213243484189134768188477323838727539135436571778538633175329438239223796559975929757572037004188416205687719120602781458537407154999670840550885979943355193343689609642740681917950494937226975318036701132235544744876145274756904473515284215527266872580550515913708703924487669587014416028705125921790731650409197580612756653886988945576400155648383879125855427741310665023921552717209564324348302098554559460768817739875673869288243110224292631869553647921229765782819796932388579048597400126128660220162606975238227033024213131435238650587858379292394414829815660161977936601809897530507684496538799639514972963457001403934260077652564159958969502831215776891162166110284469260812591611968377264162582528442476373255250662616873762841503165858655850588069743842461387624332148753275085633556202563474997931934868714142529911840505205689405308736333292649843719819920558877593683159859949266450615430414163688059003870641139164191664591295762999368984334056226215492481869790044178958297832396488656038476831925983605415268255581179815686980729072126438284830194011078510423779934691307728026861459801714849748462361378529635637491171437635508572600270277955782935933534245414806643971416087842342881132214725024635569293182139344356666397727310563158930039483592678255448448925321512893676082939476296326021022984230974898874330632761076393241084691833872144423011801746996453363591118348926743821229281042662533691754226154498270877798711726246312121930872705350334250615263802384912966329913344370622174905370190382560751151778672325880579317731169619431481592058608698051747390411995886884654030196912445141040023078766444892018644895177389058183894590186554733591850098604536856035467412757545673199325435110262187559032776973689464976206990966394570165027374390621675290607047843340799303555788518136935607220362338958225454119026461947987557557906199332613755893353057813757778589734404089847285335483733548130197536851025555519102615656149871182539031752723035336437200558181740520275687298755997242800373390143556082731221807818447612454854250436397262203836433169913598161055016019584868245380864519583186171946625599760649632980799451752946485512642899330209601561570258667035494045236097195795900893990515982083418864062164325000569094035949036615277753676496339110987234740693130722083135644361070078312379297850230856817136757620280814709818013075382691726905600654785043251578873982257781724599647681705875853665176425733090106802570813551826751990698029784711143545301302173117034343555139059670628706466330953617477488568186771911805059818307142523898320303326516584437270372733565240648353454240988089204224903730491201237410508690449648628791252378197472807202864302304772251237046725359023571574191352203609406483644580081599847423620310942408452562743398966615781828356613626259337707219515200304878681457627929034045633074234253744903507289039767684317995137124009511445704239462475413882905015275368251301968019847249602085389468923223401588225676910216279483838632986394620693454126990180799800589493452599236343530042112901166696993121117510808531744545199793800584357312597296283234316745674931155293822727616005916714364758912265794351738138955630632630269992541406266939247704142470360163412822003142872596064457058743551689866742005986957788323486068420640774262572576211394127523552556239496102182059435633298609666345717666982061321320154619790031472640462124927767224748550959354504721571398367879889865355057368930564345779418967201266930393224588439791470754167224542624713554194942673103111100043898969270875804283618501617191020644948617981067682541205694430839851838760877755779490466644956657977670268119258585539425737505775792050388588020758816476229376590335018868170069961601490012723507813998011100025025790431868278053019667687714778023074681569126926436348460373837979770601018833378163573842853366799047640529311012288599471745698555160498632600180648123493047014731473699285766339689181701303294019080360467618378306345032186840576012949631430537167007887336085989411560758999321456443713809029051867822709476027222431719126315252554187228070179293587308367780775836226047018502366412211712081040522868206938683849296085328108062978174431813411654228777651771046789828720400525875331246290066389809788909582500700158503741962432636868369793319205316682322907948900872917026259421956811849423147614609277429089082239438577958547522512622032521084352864895213151242336554326850599287017972099226564122183603270357537052762642839523958541368200689515482148948000452333985139426668606563958432713600879388272445694336071692030680248743774355140683016861411975769717593345340075939234465264066179617064617013277075841968841025099015648580619132580786109467321416263367288788697571750172722933746738132839166809787869731747430007832045117055321138267221602333680354261586664626063087716731853869795325327838256842708537197027084481768430324661807346760892897191609479917165861476544016816852961428856373223727628787979788248477813924527276169462630398918271789930977460018329118231800584346683628687918210706974891539964389683113962945975809877186738801387643933237852985346404071365980176096203509217589856882992400015923565943424524352283612615698218490312289692422478152280264662874074143892278535045298971813376895446696945697084692136087750450065084227252758852361461457337794935191124248736010829130385987745758838436867299845521414723660605839039921869273558243582358077052860203974973985226329569531821218215789260723099200770402306495843223593318273245149986927248259507600598982248963722809142791078973011118301785044283252158294014044589518907384429375209020483611013340416775448049871002468212043657343992766784859808348841480113799211933930138048226946299654422832383895296625727358006564808083481184750264799382997194946012982014773000444856977179941395079946133256069058815847981901773914888641501979414926656460744959858414932906814837566570624418368868574620487284858650157871326433219356305488920920517206729239408133976705885835948175405074726783802088016312195623293121195318227098545190366054043665263713054929591569853017941118837181150589186615905382205913066228240323876285131423257752105392825795702367746348048494661611930596211864158038707227590131451316831725076998905057381743382027274046047957923951884729123058229206868264350059892741639028207938561250960461113963322317502646903539814308536922706295434676466195855348308348976111375652276738407004543435700095815818943216637927886008459997083313399830840061144704226637499656112015002394679098802890957819154886666621444399907105932927390339709502800812233242390899380484675401217636655647093301903232171056435871834946962787704512300574498537601468692850746453441950954659005495105598036904459532681848740949422258137219654623428250590328091680667261129088347101911367458742390724981306529652588570409472300215063424587708361935332499213497501342583239829288994444137081051684558590006893389807212328971604078094063440164942008958270560675604125158317235553590837296688072791401416402377106251386799922558602449440404397961448619003416510600241425291631668552878681447770551474316323937922765027765610914220162057296266732109572462074958002133667512476324202161173732478006918248168940589457615522622343301225403720419393559764486004161232217545750922559768085129811200483051482185265109250008110393415848811587471182951835335230442786588183925989512534525873288660276940816551703121256131162129633450910067208092348770720340024916994451088492957823937922672668449255168343582946530429183697556058867001567469141482501122961335481720020649569338203824634572394869781318391358927108732043090134652258519913010245341170444035322960543725925667295040925796813177032264783934898969437375044737447120737018310431358300977896148037718785415928036199364539986470074070018093659864928005359797570703380918969256855029691481967357059596453628672680236659122382306711998075498509998111174115873034745540933544611258458342255958103623266657673306461651468371433000566812199826478550978593310752520004659839005814441528941089632424209652476037057088517968736209228443761747227445179195356617727173500109500914067167827143346778424504375785647368353090085383866574943406712590725882686210906995667777902792417053083024350133597150006101484711880544351083569549479069669348897637505333798920637257884494237936870445609076814878667613910258032324646513436306740603759189136072174557699546577377332404150671859949578772270440445288881048955869496088319425277746401677272068967291551010640722603569657698483137794244824105491592112967967806546258817901774655768947203493886727682098665399372816192092524289078794839812890986924342996966149136470111340891145511946522678433046107412347834292007150789171462675714625078908049056536688961242314241510049128384360534012125148419180380119461775383233997192572350520281944167005716277833278315675197370015910447649364386187354676775009998325552075795203162739503534368204634903843402299530318599161447638205947842185083747723203627064131705029307065209345991608809599609926183102638977259109963080296142131917099951212606449172077018311068833030696458838982819590653459452003546774992300489201748127659589922455914671485024376174745017500182617473756827639957838174428881054987672727582750973080605221799702712024034361097833242464590620731233271023060835630378931595400316067146755843434037161335432583154680229570254136053613592600781726573635393309070450552659842735244116865832725579299031405866880967795643302153319612034243255011248082788722593622718890076905033957958373789982719347697476767351446618701383490642366412257858204705579233435889907823784235873499156457624965430668213110733455533206793902433321426557990239644312866137782407159711515324263902792126017256415974650451265402331236495866951317237719590157673326709867981708397079177361751880508738672821008026701853360490045595602932207783540952590251597672232124087355368797711508485507905950203130968059194811952964947857864278533916617784903151301418409088047991015397735904269889410239119980342854876597088914976001633437659334898945903998462954139858640185544613280569548245242404496484573786462749702698254280050756723430928960795062759971771838703887570519710149391627000245271641915642053230846063383591970951979978796280297180216847538788752689218074622589090062603910853305069351647398299894617179825542971683031671875183745385850165373251153927546597265869417512550449018668938609634571375932964153222844411308939552270097082561482438821414989771457173968486415438052848166881387045876099415058918988198219333958370842602820547000766330846931490433841269742333823294148332490541456928666148872759323032181259077387507368487744034952886087190675289821681048593793290194788425238649229186046505055632248602633134504292388518937117710623693070673794950623157026217095711709277861126451668079158372372322954785062018656081205160112621324479193389167833391038106392147551230976520811952495478014393629785430060479363562321176580704693971735155427378600642854572104067749241211473306627255689267640320770587722999763555058402959692861834653965302388779989304801854085150908176264679746693114143718415144290952706927799959063362777694507527021530376458768612740747624109504429763920954875847663663459086226997881000283665174219096607979110487807228588982882949522510695889745342980723246254387200859976665778778440033005129119123939697904982480322463264284054337898374697011663040627343349618502209535195945941578571227722216243839239458791073936801814463440238244668840450317543220842361977751428756904096871381360885430571618789772867459324337027082572538805900769400905047867450162479622645799751655640432363491479316731552492848453597413785486627203289726127594805007660587788128878338749757796059183877587352949249179793529638154451499671512676051135719364643016089806825062529579634982139268456866411806941031913833148966737104973973168670068780680143643707202518248409044353691357945991227115125075545227899059218448373572607114549871571446430350519904913105075509932653471606977584627990634487380662212806819462567163763723705727917730462223075029657379356993480188338233851841052804756222424987847952740767841286855689103821614949762730343328480087318851243431456053978018993434643372718699752997762588400240554725240477638054968729918390616900727727912717432814209660463633846429846151108471746893752600690547630882455001779155322546261866298475271861173549928350929359296738934883462246110170873547730294613852072864378117882047081258942879189751315550952843173658775744262947828069542153872625275001882593359797450548058136837252274396782206918579208796753925335380405963564970739511177287818697395015251499670354798288833972850787184589983281118381317058224720456005167646602312820661526855705464737241478467951591441193896601158232475508667797504042116054506504330123023295134760643703802276936227750661170420649916992370384923210092630585245146450170290990474859220182018142146999631602977118629683485217695522324844012359675037364786157017348401455632824994266199797536214119256105262644651089578922515464540635340672270623164661924810450905527486254914976907310989595652379302417846746064129828480585424677277018981847260810332554673293000962096567133726600883243366685742232112019226038606144468973321478000809141543225875653618558989040238968752670325953266324288863101389202984076466158472517585978730030259717146045018479798363836234122389766095283365778330699755337766849845229283503071798586338819502797071241508419195731965282898882557089367057048845181590299915567946960298102114356469425956659959810398452211940528348779037056725715101449835042818978690897072348685369339060758941966831356687959116896108471786589878052278359761287623529438265755355368491562350409279094889718962509019300752962477177640645536137554544349612921225315211415563941500316726585645112392653913172043900668631300736771930018860047795527309304319834232447465408479308074830140290869856161858894315022794039146500080717827635590805480762274836505166363386802112900257570192137064422839197341361939826155564368962415642698022775038742422043291367254716355290667148772248501959404647438276135053872710415534119299810907165429194153800929594421086022278696564491486414595667253126107256126879337333424618964703495215754742207341015880548135146317784662619893599408078732868608024481813875508470410067988761194603681469754603563101245412675653176132410490523106714185983198250144586966702755463522005374578175298204443294399298029037280614281892350638658549012059880102107054976411988358194001010308860938660586062169970822068151139253075304459546299271181299505514692962926098689190826967633547182646651185732374962005802855827105343438076606411688464468270862381901190284555401700047823959196782483064035383034495184304625233526384293477728162761758123342159622402191254895055034273539728287000873166110768466847592372702490489683483614440430505187938304456017506975838544892312859987005961386088746182088826454367232964213645462538790140154720555022155037297382806510455761601124790319340904357784060719659053528192161152002434157147011016476722736735563829585085514333074362151490648872952049264814865141029635569215743928115236774044472832557999768044918463708234191838710473891738956174230292254368837183221754681431376035785471862289460216332638581303454726316682538791512308734819825221771984498088994203693892555570518395123201543180829047050556785834727746365842287903572931428266483272111074287559395712674141842021753617874654318908112221878471936313145058114626469836924824942800785611382240774287598533568792558270046889108984932048851530096282200365184732110041242847677295719353468106869454162701465888043793489538616841150302481643751143547698233724422709291485122141468471700215152124283013347361540688196889851429005497560170631850249353978209018635740243255004014205627602536366146484480193696604139070416531324200393317396740820698132748855951213022048851348390057264588828003617035783591033041072303249523482527638288323782230719820536522619059874425251303797723253407221357202167844580264015202308135759192002637707258909380606341540833285901133038652180226411461657388485851115095648997729584765262439580781304642171248366161129659433574287375953789195299602680152060328961224580379513057100571630413925881420661605331125417026626273125528366921707303140583429241571664421808631693718660102766986095310531079511745103520859536529932890246571066134365691921091692463514463403947905722840094413285024254031273078537920159500328619122200894766718810700483778173813512537419103867972338902298127638015313424652274524810833143545801972664667618852247432251475831986137135890009161036624510835939390301489536134644284008460419646871639226646466560772521243738252084473245293424491645721530327965668694246895819120832342964967503242715421337626561215507986479829174343238853170374921675047607835882936527168147248330445509070788889113186973872442958226155149751722167017071625617047590705644995405570005167228425937278011263670720458658376070203943944209317062839765173138704411023741112491061056586084966771629942535950540895442832428506104933103136511511806210874342772740796276733558162585421062725648391873459990568226403008734235921445140779562342032040504494738493623175248208982737086484059112471291045989115235864197375016430890738993280858277550558781295343231884565559633023762532081564802193679448357423041438935661105741320666023305295612578153383808830656712599038010246554839321520485723191864854098754836044299648974011753849573926732115207377531375255681353243465722663873634780183036345946239733107579445995818565297966039290637110118255428561553172351556301047288296870458413610502135928903434786206196539422898237261021171449651547948893100746272781886056015100312598337612692051225439335173775297728497808843249107545368526975998063671036584177940930037383263134234526414632005552822361138463875914136522703692737445118943287924191529505950763187374630376315068662736525802023317897662686233122278272595107702529123022815927270189611547229699130367249442453421320985869313699837696522943197348919646684058203712296324127690147588875816861157221765093689619628525098439418540779017508653327937961237614932380342820299461690108476239328031449366015673983837941507964845362276663207885986077771847366181147715320225316218619329534243390976841694881348839258951291744216276325153491472320337202401487763825322919917934791629563889731378842136894357183937803438468026077179383114274071745119869699344796614183305967659591472884060415540124355482048988089031633750184946745172261416878501725543828008605720744573939593408444944238130841855203605580632181391694937921880890192305269280639933006610969472336600687951990557486502376161025144976342840422696213067046624145240162114757464875615791003481364598987376332937706727388647581705635596443690969411314035476475426353920926850158340901793121277269283825245221962409210156437699592170671777737757433107710810896455474513048538137278101886476866817882989997426998802796968839126911894468511180311213221959956054169935913215633924532116161630716682244824699091795487029777362898509156278147886168439868474867014177367711733468280621270730872614038205900562670244649486492403173261317420752171715862504069973222620938032615901903095585549707648983120770951315661057898636315240487661787668378395896979661737829841174559206405768086659040045847114207819131264401042023642226699859151020026537985980151741694047524545269605932044020102914891315764469402101260744366767340419174011784114691453664993443248555210879283202420224239752699312526446606979972139504248965059753274830966689075861121671281285790890531656589962582907385424258378823205000466968410036025479108805129945048638602234290183121250777271665076940748718101971515779997362566452057878617504609338423381010819100087407593154966412651596623517949096043406498751476750178168840602760776942344490945037214019304277920890993142576385740014370183769430594318467306683534949876377594964070689948418084091580373766732830076999764212185184385412376373067386234576885314962830069797226086720354062973469181776155637355735944891519333208758353841647099364416996899501412450110238616976948811981508828639444874766543655838126089623142044881071962468265218433359146727885772786997487131879267340637516157818685989537448432210008251568299855584540365297418300429221750693274324552321389323098219434970158851032836192562563097808713701014683357110713620286324724954052761079603853301608442972730716818105676861613963825951184643619002560433831531430664593418680929255504497493255461849193318930924109834277957349856320609347229843118173023918738770576897481499745139546738587728128777084776833048619416556661609672912774352300804693220536107471101660628602217779139334813377714361630133598946934562471400443105921310986154421939509629020939424615160218620518003060729397760008955038616047970730112579565500906703068329517302128113977509919877511326174826163699470112587577450890476690554874387012308526043227497762403474285542166280460285999007125234621512412143703674314689453009765228935905763759078755879200635764728173509965592111445800628912663321235730067353735050872588441919824840581488981114523624398874883814444373059242675922141789267985036122128112930493845676474800233876245548563826473908083848293814320676242969383399033068959038558051287412976800323298345170208505513097459364683562835276007899526262766103651034962662490454065639334942556971500340629789237025347254426805724877598682333831730678292811986092490476712248028784039713146929069924434202087093267270903555478399454363820906733819348104119459787071285984450786942425823625460509743014230848722263998904404497628809887754478068626549731565646289631245247542177241682398390344815098468454170419578809283164592127717495197455067820439992603754728447842892504864857590625838715001024613020121308411075315975599484487354803514415007277074978597296523440310153109533800076041823142139329747597250481915275959531460930962846245908216886320123589118654437763061712901594663605876859973673389036837537199901313726919234250476608141948360722518226161986678058579075789119731835693206425611996049184454092995953605614787140489446107170792012715495731851007898725637447996555570834460476239030507007090345968148151888986586089513503215923489204609342027881527938603505273471448213613602275978820541592040667417617779781158202899859291574294087541960617847363286034666413576173369002713441864479986880811513639252274920267697452930376218793846897400845048081848633948314200342169910122769126007906263514441157087971081468606727632441556503323928250552745957664318594903257916988074770723657749641682558409130288021058539571522095099534607877274736375365951487296891572576699010739863479709834483131816196235255844144217681328032488555063716441779868455439911408679984822388953668351673693233116943213594112122649229246403260967010452180088863191484883824296256855456973113576062831668275806947462019850032608423149044642357255075219856697376971573361277059596015680166776889932914730004406739969589383873220899178866165857742110335268350002919324659307109395586397285559279543060912529680033600112351028718563706319515992828333310108029984195696112616167878439968312582951994654146715802823049417641374314414496060862934521692808270421964601869702816385895738222554695062954905692189373111602737129373122545988500215690835274209703707633972272626825802674298361758791641139647591492593334928212703657098747953300616520205239756526932417755371285928879732951889673065103961360537373197284587548281526341852721921078767423849136229467383582895680829751461195935818020653577554171346407582299677687049880743685345900706824556875022230676891194231996546968577340303333918760740390313380582652854929248663305452442899633198263001163068310062523572233827965395643173610103312017570524846963120192794270164738071170828476757173053573426274028224553665170239997726751124173614904279901369516016783889041258774358008416468634151108682541092116962491159938083481367862361303321698433112609250660064172376420681789533638509348630586906294532584785193523895263255314756871720309587483048929869889625042074258677393007498787221724114850335580489478777036810513302919669900635604337886608248482701602654694952244225422961333317043822179825348088901511065262706116268147194427971805718828356573359296247260842208079427876704022234631894954268157797488691242785843343463408723526692860576601552425543789722155557851734861186512159240894258466702287573529205284245071352908130503899699634881395352013487136916184526812471356651320197607575865891926739799660609342861778638111656397522057645966514973217417590840584937505750701511108493324755855082890499853467795013370334283696119032646182261162126119533825836889134594151692775765959076305857998864720303684334681201458872589435883087732105074193632565516514787986892170957474516734825639542884897946550438682007386898550630317081316556510425490675215990078942258002841794553302234049491681025770062109835360922351032970013225702861306182344460415471511628993398398085526136777297296884526971956362003437555285863315585160259432561102752324959198560210266376028129487920627984334471275168201329657915545802714580593777761565489053469989256330107389764365190273307658880795941077265403217465727151235802453362766026400516792905048648706957484026595562440926656048297926685959395184721519187138117052047412316940120362135900443161202925143976032230780354279621000087697405461899975395678029725178984059406200714042914873979208478367362981872071760055670411412925646995950187236673600374194941806323608997923617323976555071838876850652006835220484038635123847529542761522415834102322336937673706958395948743427480539505275426668965310197831435411839285990763066355737090214413542032981917308512689380469531816128581499044309428040885599674904592692140459359698767885236804890268408158430233939104934396734965805620905046653902782281852532508167699995679996908951241827416387571807531274478621195626071742943778240910721714071372176662127311320365791036451108588711566616520724610577235041354869492318638537031840454633138937104709413955494906239577102085417199890558701433724930220644182000734677693796119575871047258520199117001748225842814939964928247866036073481787884240593115909491954046244039059611562869779269521598937938947344050062880194373042827048836196180450611958545290867885929125693769171364062662490510692664734637651791055469971551942952619266464059168933183095334176139849580348509906356201789979010513284611643593014860347763969487683989870889870461956736200831643365965367372280180695660644909232508405293725250992713695752594092877528296968412908825611691942497471148901739624713057745280068047346859222581159508563219743327385000612565757788224320313308625568187497307815266457978714440721630947945175201470518978011510543050707040726830479819946764496970455491705339589959209771721599019545094651510184882390367433153063716864118792880854552980983480504559198920265833948132624570410776199686128260028369611606323776710852643202607165441332507934142234252241624579069337075007295327592528927424610057332014331912107839135652013471597141632665984863107275053036737382851252569065101390467603849064291372720342440706237021774682598386761448245560352977461692311279980625128490118347154208358591374548442637849277598697290028477660185157979696778303358090767713541103975599820989156066732336195596427709360996504739319007799871001134560002767813076066427608004823084399621307075776018008068832767805993837653576982736096853771825722757866444272740560954812780697443277835213556304697230724428536897393775782074452634508120919835632763079813187251417062398730162131284447000792393949544585688821680047440549239146042343107345194106104643269193830541293525196123788465854201369103647949920300141044648805307679994731344251661936568517570012443459472420984853549833420985401949812242287674510865702214141689951963346830152997258108776479490386496010815226920645837334858261083189560165678728477465671045977615320027398716849091287453035514623409920814323779419033161990127499927775342964148963577613913640737481043853783760842206560888482869511150302166675668378004095923577448948753650493008646956136685852371976519359182083844348551110880527894079897759218409980555354218085940435765906457704089457768618528729956106200307954051387100709946953019923792996791820107930905307283837914905052621595598827576249054233665976686806450162046005071933497304464103120570830829165450847973158577390486119910604015331239304330315493465806713893094867836695362701377245444056476581152466398862794257389772031715131730166426538933910845102411093315697161584671262078150482136470497811230381677147927319245276518267915436387038975716112292322897597598015528542349967715234128473022664671273396288952537209597757272594521776558211922566573606542258807878824427706269257373302916196813003748877380268793254335679891080972484918832394782506841298562798373624988410985212578721367967227550016152887762470410867886074771311824796594081692972659734905666121040353022695099473169436484924183939307359768462818876565869588837011510541901221435173765609211236728295039827661348126261943996392748409102310413295699911537324314320660108481887213194629215238883828711303035961208819762580013364761635140315402849768609778782832058320135093355345841359587547112250450203330479395582827207949387943775431589487646664569461502227601143764544955739334111631491107990944577065996856263439540130137699385593187002592664225979184644127907302879895409092147501493108053755772947292099863087775172568193690840247045369040543885710615711270134919295843726946713652829709708739792347007997680033681385312322471127491136971736816570508954192677785998719532761016223322904914396366330277297584015348655170191453536629813031690653712392039679924768393921567225563404018654386883843216617107936988866840615386731121380841038475476350015060760400756490585886887893591661718976215313200547503693322154048710983069397366946353587438413292362182688217951004242510489145688607416614510315512434456631693011523178711724471048370118878192789157594807487763271880223482409150826252157238033171294818476794241521332434317762906788358151890853593436313617368794613307852286229498438188638474764124745216156912628332121763965377326584026194213338406464794189836171259065139852142198477281920533750230157380042753218806763401056980018626734969061726367549139294405748478414723655356691298736666686244753300648139915749079351332788996840673969593657711307194327304283785622316015139741204590251276457372499339456937759754015307868663757646685670735977443716074061071410005304912532598208438520616790085618248358355184499385456925084755124594116354322942224975000396279316390124203047292406240831372523203480586653674446274651950036629050004527859598021229781465212832257624619773920209714806448017973442878034292588046771446338940468155675504927159477254281762398792906642569515206371926506788669234788360319515509020352413309433409801778327260605143836017229331705219440449611485077940250275722010383718239910919118310562356162910992201689658286162403044605339497553841807680185029737321080528606711559272750002352427871829845020446372142929085889068935306203921028371086706763431006235812084631437658033275691727050641495078863944450430627662792081823880826333429055759131566246854449185312145645904269883452480087478014088965282238498891294837942820128747261950176030408657589434862697712016677476467224599317558811700120804592279987045447305271609408528699822546146575318559664060282977558109140611657487674866871801989608834751257729888743373389355183098969386966719075464289315679242394922153809240914282663270046126687336229267396923430964998208305044602208637919376748720979547350957620408368870161910602840785930211495427148893379581525629693171118590287260622308577657419613005717498080385571627523400251351094627088005716801701643630463646475507424010366568760475006823095938212614579140468470085446952051855098127197300346750427396044607935652241588315684047998414165339719592146505807610555077675539733815401319162728495296522127681011633706507746417441014627461526139777007693569366823095568462563392102761168916771956334715345122373900727998716238325193846941562078529064197390166915760065337305272287940462150321382412055993745102855319148133439338216259649930046207357625391258649269261750872907787867382274707935195940696100530437828289912389854586990080398108950065661471920032986634832637366627096367598769559854650320507202597301910769549902677227197986365515776539452537363972598280516416335223142346696985913261549260018174264119384571601731019705613712584510644064301641611479754704794450556524406257371823224304714541613322816449527213449571514458528348274474350407759739169801395591608128340335758628519702820705977950415124934652713046003810145361864450284864343031278002777932180873404071659868147437866467898855838710689912476344478332396670161390754291538049608183005904035780650033123371530917218332320427331482676420495195889275220939770322356089187355334969300075334370327989903315512326771735961322123146587080449827694835869115159773015565998151636102193248516415027805142661929193700136351665688470371628022850378522715721734272129568440797962638932604870755319182841714122790918249113654751224248871225451495692773209373833995746892665733619200424846449039263464024192514333532409331281636241448130710509020831185603864562498973863382401730013581445325804961825470580365950803155582608398394931486237878592444119382328071359621518916465877765504910690768363319397720437317801570986111537334562535493499259919660917274725181585922819553869429181263798099346553972156813117610638207682304974034338353916494986081114600562817177371469149650527466826982545244347007929554555557651254751699192097231459760217020659667358760013711362816310901982475312651405143195849250258446394548656551445005378597372372130712057915415239473896966116088560403953515138781209342044673546618815835040791107068489212397214004678621674910140913267687499156340299644810808399654072548636772079839982405234224139218835115769671530543317791734442513955084232400947575462193537191196688846198503284320076607471504772092928266342932173011621494401728597975598726754484234419985652476467575086715578229558049031607756054402933673283317196795939150819271106010890151586863216308473643901811193380012033507897110610993478641247408491055929431680787190760786431978866241555993271868509619165838427073930249776681689379596308853710162291241966533801982252657573773796419120480366253043428241600648339670765070466999218874626918182679318020421709185962884418057767060288505046241575169582252888532027908811746406755007585474996939887586158550290534107029880859781090423298211723621394620025608564370133838677055390974733778430783747376620505557769932841514731839317588037519393775014520979946164948594870050034431354598071697330416008628845483459356348315052816024567877388387602457476845686506636463852424114794189844724077924653346655275130952329603396709346088818125113679680924490451397279838684738511527481260217696906138195996110471509754180316914174981156421173076214027260124711104769854376715209587657024187885914850928857488496129025555400343268608686596953996788839772151134761185020989607281688289420978061220776832922495984106493256026028460314342162977814786926141435231263224146525068440690238221442070041203258070435766877909320191658593371204490423655829176263298223873329670960164718141988480120021441116380185272482964880790278628062637760863537644763383057837233274205199449468922309792654571502201176127276813307578039216839862973051913319289068573738676057772049520207350207738939736662570954441952204709759689894806053184959623145885111703457223867322637070361511900593239615373352454079862649757529962503707562929625288918405984525928642439462957896671277461415599042511117981152932815018509648932304910260459786574514023551540539051424577007306558818145414484026930011085068106855238870201843042011671909454934103771405476439361172607166784795031387863592365069468821187010399900046875527932836916726538213061100429972884351975776374463822896032621576157990101885242443587873237930896877257727145415691619506377309687331052342504429953019073356640338391996949775661437016156387657934419087667076342450045678443250415217741574452746569676480289197826735931816930836483406837510485967053676952942088592960117868300897534697188186914413122025013174262697170028043050068062497222465680965000027962032244786806371188235967602554306894501361564034829913186621839344336389197767854159310639912454843029019987528765416055522418710118881238459079309234553679644280658489758490694808182321678371938472767600696722675764190037917983761809205573051324057678375799109079303077925474325125610722294867584346086983355611782908928206780114437445598398153632919526329955611800636827501464415426185331697473743895997104930686666155736370207632755677126358022966577789127578930324437608161206724992931822374732009855288149423826714807154636689631198888292250344472229437321013859289563095792273675362498876268987921750511868090725309479816418341413404032276434780620335114692797631443686145208281039911824295745015065424625905626879516155867251842353880612553299901359941739414061600938973370918143039334140047409734811477051174086303019186264164107037310038839522075764621717931723100642824705103774636605851081659939607097418882760509808785770799597212636905609337334788712611330122493684316074521914202301533203179928008201500518333412032302486900310174089333980630805205238245966537231591492344746176666319955839883264951567877698145167433562476828806087317646517229057444432841093768812936777838924686169799933221957791990442828770862842890088337417912953357925602960601081563351590955956204399089646012816225083172605258337167874809957602052675773310824992546070821164009214679333247067172364471020990921394103518207634786677167287375943302597773443224210201692543882369592452461066631390230952005974904867738514917984843687747402896931219663933305840355903049992281012356933165897289446966602413879472708850759346484667681621916506701063136608177365478733240190296512088724449125081187371759593293280580756371878008984674975403220513386307040301016957948619033347165596178700243840071117471307413193400896393047374990250528909269994200211197143010974046896269434873560164659539033679953591176700907041119170644390500672071401176295681321159544969517035506895776067706852811649160354653033781070098882843073261177962993780051084235971359821063294052544472146197276667225095015464136654741497864867794540933056794147045500938896311509467590163716795502773198468002781963101014002996603401862354559845957081211350616887038055646316901711131286524660243453993815772096874488890327911116895901113151833055496549431046952132274110008703910554431020930341307069502910305682753933007842208332170979109596515659230066060876284941797299347408750954186140467249430021958283236407311006614514449016442498444365928753299114144514724229085381288530487640109037977505488959792924396344726060538057782283740330015563592921382532432574083630517911596893795119241242537912512470707654768834467789224237828197029942978604877011074463148293885181177404685818127963853541665538713636065637567144773910695186028854432486645034031514978539120906500245825924350792861218052581189791834674066596580625856700808168607715060342611190565010489403663402257339956232545612107534231388926536785558778714382918503305060431040912967743860553744598765136095282898617865762574185775013970824422776021412004641718585667251121935787248219805614785937220978694755516303598578954414442074524793897733409088235754740335089125601169242688700776427658464521506987540189477350426806799436438781215795975224542204268045417149804985288931399423425713336981959486616880962061739587367564225825517043544622478272549113633165369860339084824774360677023023490795474320307782543790078007933511953835320311661714749195599418716595083616716680212616507214961020496537177913993966161901049263748769704470660075478801592395509878772589313230683973043191785684438058033486078196110910104771549211198797340076778791953268705762480307062218346176865605765971862332896218338508422689919241030236491266196104906208828083265822319376325790308091193196106640503024656194910773263505413372569444140550552640849433769675742604629937530617836965567027166193813635867591762287886731429454482583017459775479831184322482560550878909485642548133808380831551783810085181597652554620720818515031471173331864204716574279366322885349403515038343043232486279897742148015551313025580368450904415010279897827619310286309711898545458456262514747361810968681172431621799654576392719731059483612241331305338951991440180322526561589694421159499710698884693431165936773439715192180489592483001978864685337101466981290269204697998804060343163737842583854063294613469132384108179307583627110935641393025966948942003191027707337327127197060065948511120627788102611123605215836153707749565399243183794814745562523092084977824585604261402671556726244773261968223223655485211980396159617061047618133213951505471516962034045145424556302401617774149197802449974200178479442779293762472183008125350597149931012873279907620761713641804742953115274533775524733382095825068257393553983183185667377737496183048116669577749634689965336204098883102175719086610820646029430221342968228457836350412761929789789876408106139704151744942152637404282857976239127959869531961334290573560768848740014469810254313207412819945922552770646820960647087710298185924247092461851447032562157969639764564838931154060237478119115890409478030447128229071202327400628887003176123580547623659131701518928795722195218630236699041673363271506018555792173502918012452823982782339224405112365396588006554171167187664469997997919179639909770388638995647510393143830191554929778975981900079533039877384509315038311950271454305328147195467639660671542043163493217801366699491172595452337083079703591670765731664761207375716274483430185786971922270541987156733383593037952583879465367961318371416907386716107356503032480771164166702760276941222345183356278140688461010036653255631119322983934323745937970645527012117590266597283531715697675639199823003874788217884714563662216379378005165547093224211335415286928458932549543382972632330069441478267505134845012858849243981210325743189111521080118524081646231683456360755556107926989885112653859174421758953722733744449616618493465213421211598157513052457063880340987262975744637548094100323714475750047476203987127011012938923993430873021089741376444737780300677300333251628469989046653257570108056069074562293998409514420467275415835731997726795640629352830186481133809044273832758896197024009450951849552505156183846592313288133276062098803753522333794489459665004581495790066729137754247373526787251133557766439349249694669230010803815149726461855420467317004238550293403869933984996657242495840065320578216076114073339817616681012629697253701252337833894085281901874718509578350320512609485864396342198902920207983793425744883175360024029830777842712233091132209167204151286562593592611636116512964829064665432987957025985388963401294113864837791681628560307650856915155313313438666115756789979270192688875537276303612656211357687335337242258660141804065203543693321335434151564939281831771689678970471145077777533326977166773151160857812051873388222907455492006586632213223417555865818706526715355716208037068568228884129886668452455381408334026362877135039030210039283568651690729857021584314446369835163908066064601189536400372678841300738601892061650444790923943275746199379786961720255470261998753668218058789454731989834429890622586113393684154028712139987987317909511916489630877437050864259249609419666654519037328622121339526636739287148926494619579113896413319651299718068397392151738471016251507271907100289353901412253612463993677064881835353048789459812472609881205294495062647193318343884863454694626187475635874236462753583626789437411855400170262607044366226813503394928474700731454376642962611881323431736982663772652549275223901681767081847609153536701217392748791351190908068820043465097550368813970171860772517991620863672959491093919120066684219745536994033124270135941706016430907184226971423564367797533975516360039325168821556559278672540850818688798790247865666049670346080314946329971421792037546084120530310329387568622504913686133500898864448773757033770463543071936085725132602395217074157069039770099776573211578800412726032018487349395258929622092985965709321344815555722259885249366923884771326799941699508858185927363587224969708134868455317765740498730579474153507610240200763708499008238153968844702536340928065837050302001397547551829891029082393426929209263654504232256394702413264186750330213350130533038808381683059517803953028689516730143837841288938067094471439269188399895229937524161434294969499265090000349238383092731691728005015800487619770778775227640184683158071856611086607670911642657675202842158107415068897869819331937158166406913337659884869687968882285176727359654643538462649575369526236120578252264927932235437034185938468351044089797701961951582742271102882658273196113655123242030933440068551813792457970476771099969951769965970680811430960525343178138761221960007607621170486466190526410526468502915518490758471708474096489559252418106816293785011257820616503090312695169381145679524854330834324874146806435332906550855570964458363842600338883146917876016759802308544248448100580618903448260381330759587258211821451149493059897158088034918087186495994625585093043546487880122164392965173934372151334650309580384461078512602186450126721868227462475020019714636064879110434483330055763643953230520431713370759719181951642308648067876162673747826532560336715708678004808565728254327194503474028292978423706548307975223330829071008999345401350932568860736834799847475289721966189100318142687574476367915311117029116409523779258460900287349885738037868642173998215762949676578323831947788261833928528842093692119553142069404850527516540902594882267702547192538612845533471427256219332538891618406899826418810108493059405033206624239614519943218708066342870514489305762663868609819589502333513209035077497564652718449006778777592670584708638086762972945203289331532167732461478658004336708948912737539356984078375286432741594113928703883616494265541305380464250347573551144271950191221386695691339960069200285440327514024042051321809423626811322513666899787158823074399318047081823126524430290998965132736043311160876271471397148842127915574590840298051116012907096566064594878611657793044876730872308684594790489298162412527336422282477376115520862216899986066845811377922991969858395865250419181171053384873014583382048156384148598308572836586502981000946514117650328669380280077126747218377761683936971480459193292002755066530424027471132533153061429211524923991094792968374691484839164961558355933869302624862205639487300771825129824966577216133305505339357355822440888412382483496892658367872573354948103952642357316795442501675644155214115724103140735227281717218631029831403060322888503997836070744497167060929078289139874465020111200630938910508107101579166766165170490606106946753155471759623333348562394948491770140592702371459530413283274692983950495295302317023200488081733486958133453631375392647025177146377805621144634839817148260830180289037033560492118285220373756444085442701479671293898021936655380382795135941593441801823624213099829400631536804880750381653714391871799133190535818366523185448093765890678378012313549419886982554069797162643227315471945265909547511969712272723266543902432978879764441815157923076724028822257556903279721036257880829200163958644484018780844893333822446558825785868888396949269454609346664877799713178115643066760811824635974838911767363449275401233552704798347349726382620186400919889430156878794020497983033895332829603082966419677135707394472357220261216124519960524449755078162741619299259378999896947980564834547629089720308093812240249256733316651893728358014428146470844816766973937378660674383908915006965434990651141093985708579470064599677016516169800182985363139416314959166515147810664859637697712400416727732060608321914062007513520683194146952315776366904978848778082469722048259865402726370828494860084455519855863618669019582048090512627848235914027790674317246851394581553620160914682000511625007968830720306316630424413211249750973554591153760034529581033104757974590605557311542432145657965812716933520338601469442651392918714298317531270331219922647203556665626138725745063889646364351951890893014576848960459809663156049252141935009292846439484062606801142016117848819640230892977118484843340649836875350550675998419148295552082864527768469459367195802310143567336785510843197451064449608913371700524819507774995525384948963767436967320088067972069819674262341910194817360608899239919220400491575111649966564063914050605413321675484619683204477473362684332048456657866071747474864263248553307766483991390067116548146915428784382694377876943631290819706242375353842880881591140837530299163684517050461270185276241666546782788386273355166134859528809012143182134289681693793676369984612994358965572345956757351460084290133434448033780104951648169201120935464802577642362532940263607138973279049535190369894127443626374885414812364975722726395936998068480353709177400638232219006162355758007971546107159372637968978110671638297229725830260129329546310147426870919485938051824902012272218452252765185667154010620919477489131971180791722639317246690023550003192646306308814776609339148648937039674483408614900276438513112061363239140223018749199274861849138149725967684419384865264787889975497312934817206067927771918295669605475928296201079992297940208153347985723737644910947162025997288528228285315097474755370999152300450864246580482776637187456245989579805953696491691985130495871153625651682064716366257473394328200401404867041340317224279647627998838387372677851928000048899996937203241569924043202012590800303736035421811215547759903605634998254885739811931539975669798498732948028290545039485093671725386931576144415078928576675842116594528315787827919566414369316382207328901930713277775581795381845809207549116425835628278447695603219438898494407810986911670953250981149303076516174708556522231671895600488165040193691186653062767200441135579534585066376632239474306188715643614260292127103737128261732445180557287887518920556959302432683576698344214225545331893320451897868679171433285661941138404826836730448517686722717510241393774640907476293743210881655596037443224205265734230597021264412350923531082495547471281234336795768894785513181149845899591500750802311444066326900865983418980596524642282082903981088588497540922702898404659116605771300647930477607750907521506430467143270585199932525844761767442490464683493806787973962812554797573608503251705324391875911114626701462595221875416581976508032169617025360718107451519946659312971772809401163915295226420228380848392751055484573724567728349081352153281729528977764631403448807527459350375016961935392569090004252397172424288404473689175274143935483630687554359732482987497352301433806440837793041306802110124015644359940873078930210110816019489613523640862874821418278202255913380031115969786951150226161940267209025992034606092489560758838821690114547409622523373168791063258659251375879557263216373430632498833692802516503692107449242519914287386532386340081427551704778690916495049824234339728833527276967946218294546592575197474318929769349073442559104446061555849368792438693243599382618975170201590913829481510277443742174545833751891584008999435291467694355274816694174385674073929866430433464450294437815613273087024917837004850031188383702051555999758988465070940707348629935651294111932504906877648350354886491949658329760573908957689760895448892745484916025659918284529342659753134613030431454798202287898658903691453615764960636896841024324839553501226193598263903568117579526681237159567452450850217160008922481610365799788881486862049689747091351740242733572194804475459898160222537227126285031348663562565132878534794909239037341551366522308375114793054526859740240263154631511717472798030084290974653481058095654349786925948099188765491963775985743959597613642820339546781413601319958434910578009520564070917657444064498637179953646359773768854846995035488654345690046180223490901849583634595445316113875312603590551055097948505511770016856384249757996391789778964619374808414160534702075096774583749427890556758364924926726156011390827973618168515314181158207755969835285909857776139915775405122919864486231667049836830048015824785174387364751563080641974542027721617870401411368301668995745513342361529536516936994522248973609336448518766764343683341477507223354048412045052873155431724544371300945838730729898362800813984753568753078485103433846389137609879924161894218013266140422249450277033793928679286990617598478900352815981900528149504027456632826405988780335480850873076591075590247705985811980844004699876146641532421218560455156075826790832924087115791418228974048018357754986845493318436687088414404554454187438756187443392237446682798321116114490418461182537939241058421567717223601222482439325996486446129502425021326263298283980650006810649551717507581838418237886082404965639831908837744212600338074428640640405966345129214852845011610756906320031207497351441362666505731871153910519888292461274801889238666960236561330977340382452424209616991070134159485039492903096852669159190414421345682996686937430243727105646141365523261194241797151810890747048383120577654243440857419351041065995908341949746796225503921257204680973613668221747705985140716003102592002941988288316768742643355317956379971637138407169792742035080249902203257381454050325584835232339418323632545057960783770429283633438255072916521257276708925733500214068414206348647293462233615384445228222082645389939227308770353613264005008692707535931660434296494810785225399338021536466632679923303147445202371942158071457742979572399151354622516362848394479570147028030928786855774723500351653691862748281548300592928801276170208208677345825106682447199503558889533658529854767312778352241851079131943693982163040520994755032859864028092741805926656261892878854293523741441532812033879442435997512077427021695630145284457582986256207499602033994936848945823561355187254828651884027926168305727372222906005404790743045693535612958511828234067328900315530238787993654465213249667992890987275733251702487864660942998890674428294907760549999284079192656103193341343091142133134031104334338796387967834819098545806567494133939402349687278612198055646498790377398153637103030162193253538410187213144161342520760137001459580486798196922687199353717233958791387235217911336572730811189694651055795637269781767995573087776464576635276517739785124485140087707986028150087982647758334328605204542222056648425296261591997186609992915974703031810308359534224936179420136152087213070136370556386464260833098162740564802024518816796145235257342734664375361843144430556822647675521555665322617824806657150880105985503084616767500153151637978764887617892112134432827396572864511548308357005277454105321147461972777909587286886064279884199758168929229579717814585843605531987865982380961441228577975489633610349955907248069216127981757430061919804306740778047417287543476543348440638963157827358848714489081990507340392756988462196298104904817776871729674888930475379705512504351506808678713919453459991756991197533337020411625333304220992613292295532392829690988822754078598720235628697656584829262890828772995410363217216051266311598579357179983655929312956913229911296104962109747067526271222431716381573331158009258564080186562591610048794747657132607132958448939572616224194286948034599544892207444878776504109957042414821651763175161610450988121110463374406711932175306056425202250691712831488478528555625034429939280823553801800710750821688776598303234161622747219264046032211213682840991847857867328294192563214137963876672173861329648173209746271857385456299994469974950592151117184578292480772326521946168599789542618702992875067978387802242799492204554982581811437530468585030067779526068337506014946280387604893809041374202384715108316052646659425940516328275072867777148276108589572865729088402309879039834802041878445005808072174285972434954506821879371409672602438597215978117977349951440147040017822689335883571485257014603219627068277801282607876611699241669739882714617430103148483339460917720790410863626786271738593547480343575340735822381394502651825501842918602813811759196824955880882329790161855960763089756142496995973611737621460582294369950879084580499030188390632957285407730530438678585236721042465022759853859766502830225633430269018152419935149471623766309504032901570270419800620589198782405156359359557352584200072478546461221410282861922895103721113487102959790719986503490749907769530199058944176375288496877971983001069211422882299507132822234605491411804276957967898490767923238317800769076582126526955690566944883567687197462159235740470381777260554007896497729611631740831621802247782658409026593931149996358557373100757147672216968552582955513288788654962458271840245353144416170819816335054770369104984289239634756872501976779036238202004321461469965097171728235617412517399726186199986513116253817821118596414054569667360135757997626247930323892744121925472701378542001783754761466936574446943175123934596365811122117294783098625641203643970049568467565985069342654586372896627506488568823592325603605340151292760185930592603740125634306325432752687624292943548732539464131894655567142235361121859258003162463827547283317424558610578674085559963146659738441273675668950888720111471227235488191044023715270075411695010995612558752031757856498773736864568752955631801860098708979338016553300391964525076579694115482436103946284178826068392084619630407708537226788710100587889838444929728624488855793761537058436196530097849514870471178764937943667251200465493398286452530591906801378126181253837615373518033978735950135879148302240262100027742228471937437370548012094742428923823595000400723328441866048235223912258468531744016137729818559515503010568650383541712044269152078563999238754387455731728229464750856251322127443038052967868034040320893671499477030501488166333280852113866071696770963594295464790850263985154991282537726359722312974013392737297087438955696712550680322237921480579729938812739986195027588378629420143256324382541359510906715440425174172499715826796804055702808603212763640695914760717834218271946917600185913046232932689605280161424603436321791765514947311984691777402106856675608895287486521069484752076081828028703763247920624374265716602763875535134110565214668625075557689391336085901845380070597461370182484429280980161523719903858507601235750198287419742023482422164117863057604430488178643159154257068289689943405464813431165516238327702598173543449123557310301650007722327428019740700603260140885609329212133333020248121783119499040923663354705449980689932862270976855318625397106236380301093386602076423577779574240701329419834314160985268563086531442519561449877642181293715664735495237740255746485456325577086104010035611680501437468889224252831754995405923380527583833431643418256488457205144290633829604923335356464124935056884646935051190165743994768413024957250986675897153172048914346830702435237319187944555982093564610280314511931214680186400032774764892018124550401566595980126894239155745491980835152260038211773238335087853698321864082139634228093758441770981873395539444276916284692709776118218385937812304973689847813237850267715055060779968969174800321402357908681327320531073073530632593046770202993735133444562525915016820598779054230302817981315761287292406081392993192158366354793848472083064185872603704828632452663100017628359895243888133742620887886861869448438403713120979348940328514585862364534237556196048232216379311956660958326680507735147243165721278772108514570854098058543188544203997496161965037824341561829553158506526385819871392881546218292486992414540563574191318214236593672405812837206909303019399575530918717989627014627020702719579580195212987114278951906982134121446222580895958106245641094238504857497229208902621534557517633395667306289606681426503563956364155749329951897590483485943261618081310864355539081902385474652588869427142647257491169715478631976850445266118538800913641492920780274680455397417658140369685609333550029974439091422773312908266514850110640385601204098277489892099867581240518036718307613982302785993525838399009035301519479767349517507225611401680230746755703186675054506086426879035468253457023467265630517604395821186969878154613104653944287767451853109006359846801022936124463853663588272351836685659815345906734495295206584310243543824312454330734903177306478980943105182920829922118454297101409740488313981654942414621449667908416970864167202492794208797609370161903799296569980573036261514654470104108381353071141880767971387062791830766769492143902697974865750872575833386558253662915149579950970149367310814289722334484612679152479180988017221169119730642772832292618942889334795923289884658665849809336812201947833177594690048511135894283733564635073101000891705290621526416991820954365465891979190175047964659164980330968777045848089210876994457805899565032520906011603885913809760083034925969535282080846443718204769470798684869773593984059388482998891448269883190078966671761396849306382819601220422601808085339304426177179512204377492097766438499070995448852917643971948247458097337604679647002547965237781885829170601252149038625747870154189026054631692641394395267688227081999477902867436695970253033304138066670142942625892672093523161207180477620176237213560132227198687107821961246457653375589650718418799209158803079162932993349593706671907214817479142872622566434875082396864645597365311786490220851307406396120435589285595786767730918109923862087335861547876984371138004109727228008462160909372079397792207818650393697770432157703357658924237298939021337670685807116827758081200548288178910403040690357731860330876364581707639001474869221774185958811658472436518326986803517493232682217845422626328380439623672043569354883540554209449447380770055381201204349558151988092348222317315057477090608917159781856439889014295478939775684582487080348691291107512308836666558705381238218715682640557211653878008927225606189213292162773657254671265679262855255236746741335701905063160784550442380484815102121314224125060449189366987074233769358560767000593331060141102276467475603152186686228680091750107310859586284863783148269149918232807039125117073230470420902628421892903879894091178501854584692863323725882188869969002889338423177468991297276101813946240277911891127655199692206285394684447755643927023093043299892639532633426401680675262882708417622968653536764641728006406866914961236371550962123969964768127799992508291895310393451055408927098280696932754845548025977671039201625128177217450716668964418097526749096862652541000957572254027260069764866864824101634259876444859018052989959716042749367945814588672621129444414702986736398553258715798105148397064818103707051196168542883053440791582024251320352207146081659738849309716521307352020802111701092449042629213635610112628227410865185169326317054237370999887594792398526435022889064002603283007950897751690244134221399126649322682240077819184580808637375688958213126621358309407267751140321271549282327041674690631157721280203683777495045902948507580232227410829164465499156048016334561111571278488972950156703267929607319777407785712035902969270962158440188719668260807590905250946527126119364047786311305649525809866075526805593507391825407970283095446501549498177093071628664789490048060697815641719061420394125485905578325296117237185598872321808349550061079348463301825666268531164607829518548744530518450720897084258776486044894601797133532114140433355553318585966109642040957407211331732503174882358352178723614405252402930274956767710166557428748905599012454745755335073294140764555957112105124314094671650859886461832749985687206230332818034841047292365266197820401020764210816001175917601303302104435781991671567048049979191597981920750035587980535964193842736218933788112034032935626790217932718360340168827793283032335436151099728556600150556881823999518187222418504814576046528232915431712257839412541014620102868806895939726275135103711640058767321228510090805114996627046877994145054351410909365098977370633021063093367624687645274715862622426700201876129728547642184014478792922912793376103336138460116623529249320980111010667196289718376783006895376420174620766302769741667834333284545311844654522220714740553301188833779881110273393286987963721465963940073595123198452160385625887548670375679129855325962229854010348802703083726746957560993625800127366365195267469923137522975863264778596937127121895412327708128126738376641401568382427073201509515734358486327698766332877240992095838337864477278922523250689011628052838004657312380129538814589822874845145258561217260072124941988640413621714374488452630605251892647532952651763027629730505636938034309456051937978347012959115100438716200854475183550041349208291159740310198770457996263283233747947325479249188644755414157146290287298963469493282539592778383645582679229797857082995000457396022468357626092948506802770402426235059020196067880952151808626516352217206205920139503286523614031780989639306888371001065597942467720151447109465231499986496888854559905177164444915793438165758913840333152252528950322067588925087621574253694400827445988619948420439111910532290120725786974625660755851217709488676465287488689384313453669535311128564156550694530757371459000005337543064452576032397664774469912657416044832192392777125998012846866803766195213854758509427350595032566341977068635913497200429258567448135865374458627212847730709902509344623071419393830728964138878721930479256747485050393657867271342328454806257088966684587867688998093176932474858516946196238743894883928558469500335432832060007675089888731441838296855352349059666265265219177434805287283814728041184091436411039829557961085685835270749310067795956133517149318720298323231742327943263016387373278644610458238001599741532415457050855099200893513552812907564094149363349725060056476272285689835413555962386014019580594035330897841008218778605125722811922639811935664501593174910098993434145920413310925275943332055235183396565582321219483243921922858007116548277802846923512167731388989602284569892561247989019380724276009097360003156341782748555474501363910601264289620972752881795187053432957416581026129135536953549880528465830440228736216043951634907718708340324091202893878970729483982337744220174457249081055464316859214972496388941405414653240662319196818108827267977866777009928296764796261277691739929651773389911448216188752612819916818979068014514426010906961259799923321683710076072122091809846168209750915011623418401996190949696654121989260436016685950414040132431073551795740025702407954304817113442691652457028094656562138505930272355872756078351376552393846455437704544397215020641008857901776224784479491682658416491771579595927524802271568220147529246690165637731862501839507904198803349336792053553171538274178559297899805726734208663113473572245134710836152781020174796071028200285440596953003493421208747640704143337213648774835830802679614254701138211040147505715378375029128014040288828279139006484614761491676610097345464177293074535039174113233461668436540864192488835542293837208608328078178637354945690149354725138278925744551758549786101414766482817550310284766455927544641313572804312792884515727859611523307707016166585095176007698941078357924715075458672343948900562580018769485014299107406214350027327490203981334873999153695939821053902391773541645026879484765763105046480863687187137047234948881552534190367843945647406358938345027016176651977446672139494540342361762385621946339869546061841813175007712007793723523462430340374692842854131308463274826776202531390811493156146585207821002879213651676496105382780244462446650029680851823301125658751123843928233095041423293525348819802985014329521723165350093412898792155727491904270107307057393142138471465460764059942622973619403114476038235272466177362393347694742932007457121014335401510855150760594564515400636182062988468211779895902967951519214311267762772018002887457539354201607503790458577092009608183873509184636367305381272613361257483406023669177800892082450290878003002765809921021423347315366260033178925874018006789770703539490719213226895971874673849341801503757871997539209103047309527371462657903211491949831042428430013598187965579449258488367101087751771267273073717715402228245750227477055610597361401794292998742295622716462620494835738800991077348282556921849744755305643262678463783188754370749143337322970329823923310368963708878659383219740591897979333647577778136023810129332636085143956240826873353595867228050381598343974624540883301067515423875881049565985729497567479187704858149963169199242874201003107928936042943213851793032549026911540855441548899711726433863324943535114617454522572823523979824807808353964513712298962542115094903152691897537372124553288782714059097602504503940360642018768110185506139265198170001350036752521245337375065994381931328020073086074095835421197823798148392502783946223421977463857094052807209683347546529856180093576551453163248870048761192559477638681856014763026251827127501004345630821110839898155842596358649334229568999984034947512924753139257572393436096517021876619580233709290455269805377658351957001920740472041103960766809135288852475334997053503952575283074796841370580960093222754213066600160733372747895133955056597311151814226876936107174240905211517379174408567779814746437754609481772930038436459102895993440626348232496849347553374214150846024013213126485050287344292320399214790132947582559867625281980976651825620119578009597226261114346656818515231136616953342162175160345782532704626562016422452054356889610726714793921533455813681807134510980267843512765532059757168161540099851818328423472104724455495237673850881912870303024654809762188867657741302555847313424247316321168984650780395236868610966292702122512272774258208907529279490119360986300807243686009821177735227148586955056220356315280157784946765858693233401645069783427464155135587873631846932521288369013439033261756548466532298888268536828287961659779731593305688050746850679212073436791335254159221073196796879250071984980601521137135662712486553445002278186047675024008567239538721584258467101084101532536515411273472475330855021076281939873359115143355345912214077410362778785329793282750861888422055831662372098123267528448124492704814313704595301051584548760839609605949167732606162074857614549452658017084251195924353212578766035085815703804982816097037606191793211552651515146537838101350991258219803738267514319326416886199201606084177069186383749950851141917010615249089737047946922523693323226896747383519520069186102213967173575317150976210875675069249706964090400212977376410831566229231586045044983499320887288986793006945567978942984161218037310005741515074640779286064123330106228855286013423815600050317677166269020944870508940619059978614731571814913276414832736380923373408581267491608135722203372969409656501293406616833745530120373973103490529978591305369762245790489318108189218395271926248917887517111918669106354732959191584892125368401468487835487829070516600958436441265925087304031396990991486480890781514404085707798767535451317370612515775711352236946327828588364446116037758627860707702147606028139139972563802054252326074983050805021200213432566866136807670115348035124267851016422529312025363604882300382984835219368511554056149018541000498355273051925672884311821547510840377598991428210959795288777073174479180581341173031747828131899760963218715139817890968278521968419659504050331447730163220495124568634923117734151267670111827837804568282599280606722435166277804661888844777082568520954559911914310995347951865044205707575510506050594972061688131436265319942242429332584729428642306255972262955448255239373290346279556734275547316087976612750969727798849425566432714624170786734552527830628072930040194781174896772652768347560581312554969192190956520304359673194163345691977366409221663906952504406326035747003381704598269261354420263989682378467703601596748056096270317886988651291225567640082931129170564956205489519106783696638503643538608488549882564453907550776180385856762611945199801019707579515129004556610452331513977608534026611585227140096138104127023361027764428003798333949815840818258421003555754230257701448028672219797737839543365664525173373991708012688218937155446614869525814455933906143048348351513159317035630270380555382409158588161114352120107511795928121581439922671278078889489938705160891647340615068869206553001414018270856718468841245449876240508394966570850709385566538200130503454220599103342637282558704731833430018813881528424702710810043019719276692700093551635487960351637933018057853373412237286971223178453146433258495701604885399187902323121875529211336521584594029711809414121547485932481794277769549242672580434022100476978682999558390687521724102636765458118235681592219513579151337746001148927243771800566664749759442520048448061819766202185017964787281259328137964812646709281042412117641491809797148131462397060577314971333404805315271713979407347381836914106914691080919933615078422710072969901161375978717304531066159721954522904584232769706011674015147147021987966381019575452515772404797471762960619105717447684218203287936734188563901592271775351830935117541457156124395037412702279670171886160992136253635738525630853154476794326986834636948900082550522621281426112662481255595142598231220290629042244654617583131304723271847759071940219979663011502549979499448080193071100521423877541304682249189009794640292212620953818750241439003533097978927737355278196349974440816238448573291738905625424587429555208780814189493957052725808300102261114515634583429081034440168672196688352402268087640952209868841627554116457159301369135326636176745408544646566908001279305444395672317403689863417020011984401478917488304087212522267947902186994348065520493172389483449813236642912621609552787118964845295104800632786866091438277454264703601735104259043989643290950595589970103837609980157904622230605188606643139271863625217410915131310914454448547476058919101159914476632015771510830367742176825639844163794780834351548547771746570405928766633937568697199391748888180297183001383173832135438155536933422717730903398079845028814116809178150889862298995224258487375093765031450927532635628044151357865133067368128845949205196068064156429622120472334268491995633046935240682463493445140949407300054363045415607916883847220129482762271550117582376492585722807386787563957986308513774702051050938127493165164361120694960426691842006659236005285400049025960781850417043323701326957679862453191649202712524511314068284669745704268909092457699465013127528875610705644673471828158840150769955117350257816357870814903843398977936551237165609616558236420397137728939779861872712814410111044746741115986455318326549140724401460338354384407470390143906986455654352420836065339167020593587763891968446078096479614574128764940653001250070430903800219718831758003745369507785046479427627155799732487463752541200882992381404363449758779198074649074544739515644465330207619262031335043615735238633015512964513613853805079057419909771809733641051253189910025018492839779592061335483983558996096194064424372151476707653777561883271301971030109693421417069952718499369935619996606429014493675859687398305562796086334119870944212725774251467672670545757239392983427729829265415027197492560212564253674003009871349067607529732499871573732600625788033621327792077489250163172381008244119859925303424276186980565732302545983609830139961074879789320612231267947456085143137518752810473175884145370100668588373609437294337830230939004300778519749793534558283723368340628213031900547656514826400971041772809119669290960139031064606298218253278742700963022978894282525091525175645808808630323037323282798068237902998019915996666953850688534444242905466579155301348380450962893799570890455743042045995272136994782385209626124008373507298924263324160358211163118140617103966608434110777083873963459480239432396611853716434929131605565011425156818406612709624350442794483473089980769735214668726808560849030787107420061247090021227839425816578461348089644604114309963261955780102806550732713403311527299944359006313967659100364405490899288846751049883975871674553528751424085025619008928930245977458599988324007780133970166430789873338671986458211650945016393624373964308582831023716169035214359963343376026683534421383279604484983097917162634059388543034257111762371857337187969515507277747733342652876754358333727386309980659703080019528199670308726900126915229780130589722721203374888057396073930691487300451806973907332224437065173440315632936317387745279324913360525859472626509127630734280195465932991830572976834018702372573968383895097184759028660208899136680885490098484542834660821246701131184211109445140646730183702213240021272805119398111608558329942739315545007240504961940354727603493116107584007700623348213363450386647673764090246583963854640970793526105986482036749159704910024093309126984407651697344181778770938743294192010810082824489671335700570489119458728830126526456543824918754210963467670084947267846382093947244682724096003213343946990101358199150849245741376826452591757608438627507458522609538464916318109138969172018910213610171564693409331593697707480976615089023294896950092837554092298622908980882652775007390776080771498993570612451915749160794950951243073774266119363885699084239825407599370953228518318893916868697406369008557802778761813196702207848546063265481930281810533378531625703934818879418994263902966277488584097220382385924400765872673532875651976938409319590254043637625928084388249375789981967037789005813490862461221971107136812935519231850304967661567087322558108588629308310187949580817665475722456949299996073047964457424742825434558018159141024012559832283448632009006006476499300993550321081842925245596981020594187733316306318647074996347100612926611960452187032811207696327258110044406718479848645443016831224190635525248821083652492173034517433619330615077592893183793911428934238577644769789291538435955260012444662474693435955000427733670382879803376276658735832336548199229906802007255560285602656394996946681127559052721428673805259892427213423895356848981223646359921977701313010893031524354348078227662254628181200927084967497165376446696155932107087953095852668335511293557629289048056098738221567420659624496910269542282456886388198312974452276617941809230547626979748481657672110250008718487489485571778219418159714358738594925573515989961351216928237064028921327615150637124657294223298854194432541979790881872550204639969417925400117478989458434628048283802902920234041729275186650231144634380817167440365395488697366055879680074687956299079995692325694712228521538434337963256899139358166849057992202135003554567295500200023970910370237791154381794728829803426804083787206272659196222462760913995052908457040423573236536245775382952695540013923602088350052506667411432938913335014245813900295571320338902343001098704022677618914006258907877182761458471265088154242589342646165289402583040413890587067372396450554303462043032993567330385065596573090893840184208279064714703386718490404359167795395727514942731485897272922510189952149792890876024837783441494529212344388425610996790809603611015800281041182663242309870203271413208320820498414293987572361384969983643304777504071171277355570195350477945007860690190076791591829087040261312228891984766905003313250617036210360710065106726240009730406126958998376488478916269764736616233588877518280939916732629789517567933682959892807113935876725757625415859800393035363557008577248466875658245417114773318439786828695260627563348916947220613861696974657818469757671382396959293342973822639735823578954654879109362030500074888548882102467102331789193510868398574975556474324431050447500847695637013122508124676166127000040319979758387886603239820473683178787040288408220495987113456364334520674927844188874148292337739258890002808023034579342731418467224574826732553078024711779901467580687551446008681595586848944618178840283693577799587682116540931488670972001138837556940201852144442769924713054522007549804350465758549339207097742766036098292926010921571334608583581082324324143521053581880876945310958505632649433787834067399515339495426674122865451172110803321426359236239730945786529201528264630493674205769215012092880323597809398653172054177207751463108150567906994942046788172785938366228863623392266635298028041929607223160481884198180004400660045960368799806559770189539947624970247508423775241675037156460551944420972644411292938039805905115312249432111734469045926947482834987667275284240407346197440819019075385584016450248167640880811362398430573677837244417298048050562861699258886679854167961291029383417510032573898495336468521716372375328107787291771556817302120365807224476833023808836065257353958261836090928916698625575405709775957566315112691937446700867055809711043784390071257264175785763261612034722997211122316217510275999823365155307930119889637424825748529552387174204434039738490433255413291530074653195758443475766628356180321820114222356423158938952514007311725624539843047816346180045928065212300122694705403456106985577358845863556962629611647381933097995648688646336706528379375692076039050421344309926319265068010809360263252032578380604785233748435499976103347100538878219896086034954535937507215610596894130352376158159521145242751839660427708519020028675520016128913872190364233241895795035637175083441499930980620987850519525289058523272478549360254276464568285855003262871203151204236287020436341329266709249363058182992203237214930370249364995488837934564377796667961900712163047986634571588590702479196222878633447110900829160969924957820956287989506951492260759093587353579385224144070455084120179440669282090985700713391186427608330187348579183390705705816990364853858685344575513850902290349006634237492624366606266837177108969111258977926655300927056290692379302883030621196515089557324013477831916366438437497966653907721449076526109799460503546264797708616610173792384738007416847846372290681943330257240567962470370193796164282040247636598409338978609892721471985745433560770890504140482753652627476926196398751306947273700118383927891389766293898486266739760900147720286454874403425496227776783905252050821056035088744143367969788413124920424817381660136197404729361434482931075169812147874288779354025941724712944969457030972935896305295716330510690751600162118644670323951098020533500547021715097366288880145539336197384139341479355482509457685310741050616882892921204688191862896312649065705316803733932363762250206068274745373431993462268309354617157842596285964164415130313572929917619080991423745212390083115533941338533532514908082181498927685539597502225094266437880911946669488274249835784527979020310649709292780239989797852239937514323714816394487117033607822109437603087752693937516017147778760898678082147771871588265471004682048111132898784044180738802974939306573056748389670901116316682265608125955885062045275427128539892635147776870726986429610416152577503467533722865893104972638227360135178409399351917674095648676818900648563604782497597765073930547836508408171468272741687093850492401717720076551793916017335100540455807494354360302047448288408198049015571743778635780066348232667541347753971185423479057949153521166716850204608474902995160495271601876457611159268704646258140228407799075312422755835443397828308281504476795846549466280575728623873977738076290008064634455010615465212432447352915918417991489170324015823362057170603088563275320909785560650983903884698092268458739197192392611206751613763338563758492606175774181209566899576670156662969067820691143157294626331574047668776658762329860257680555965363252201504626870243570559756767090354602210019236144995337214603616929293340706934405229364878585123970905946385905954772419305344368461050849831764126465233880241625222682508885752871726230325985495632631479044753431686509938159234615221759011149031472923360898220010679190428247885269645089728394942263340315024117000101063177000062871089416883193914690417238062326464872150710366551252623383198712316052852091324328204961372123801082008359001721367929261836019039703491663527038565768832582350218867406539036452530635163748722399880544274102132895219400410589085024874849944411875297465483938169391297623962356312770115798799770467022911618995542966933975905562439597785047428566826608889435960727795938367154998188012450252899411433941491024245972204246574366615967781187327897972188835938257963577375643714831514941914232212492530106672149699853970753648472194665683428149526215428390108165294936805468839073323235009683687213239591437306471532805876426086674211690595515151562802871185923101190424352119754331648225027043836107672096395030303724480378921489746767317510281089767643958725011572222958304230219820736071484162087281966154993598397688794499264761431122454640634884627817519173753588208821675096201870133806449837774364353716397101679044759106048879350651241010749138785312533855816836098947838406943091436679521582527102245410810281011786752105221901866022963289797603612739643817427882675073496115100815793480969046577939718208602782789198211312703984739530173818339788531402213430766050179044010385203127307258739500816337970530832166905423240037018710180822508450095149177822848030223779280288774556999324968134421506789557743306806165145146418376019611816427168258334617470498106046101666640009256085609167588370819258871378201120361130412766896239538659655223067955053743385169110642614213121420790274888505180815375660919478269073531422662242916115116368108280092514017916699746844637575145215114897648152774763000521951367836826885962461895435580367139699820046904475248382111937793427616776285985861533129006320779416855783276878645667597868325100559819503697465453028357234691230721200625354273570991784349457156949887876204554812349479426682290775173507878429109697816110277013951942588140426571194343020644094740527910612180455821432266428812493315261471424782209564973715931217504782585374794357455253275168760829822802496281628083599302028589955028568863803230100370790904787332426714156371432000319708572700924289488864402885815065100944426085067794480833307622245031400281819544939184404614993337375724404210069434870485485318613257526701804127956575073800538136517624472255384932448589873461537677401976931007201853398932588989940825972098335121737346401442736513045327211437272397556548268650441851735495333221891653139723082475861836814415052927201167178750216999786091784182505192394690174447043539344280964612352397678662167249405816070676051461954261103002283987249035491966330940635865212238314494668897298444397403411021679928362950327483958363221261416521543620026160312327622184227622498207880402329234013857571711824015069178058163806031781914408910117759833939392161077114083143879422583241871010973211036923333400950061085799472523924874319293454498844992362953248024201432961321067634946713442123141407384163247031450218571881546956510537355959787786782836726739880059367985925476125148140182749660386567092431098081218314061440792360507649564552398816492274615739353337637174163131664361400654412969752562148518963272495057046515607356323024618877843855684003520596169346771088663466093852628489214219764866425577791492232334295654394097707046158706778908613425799604716305525729543196126334109786693057467587537271977643343135270069711631477470517986993953906578782955935331151722210180130015654243333062282158237016701456580174180968669665788013476081155743817045510152301167498456481193948311422390092105612220526651308649190480584372476445691027301725029714428300386897409404480036806967914867337143109639474741604788899747633848943536719448820626326179565532024932954060024520490768172369969742922002242273946555695007839247741659556235676341159324964260235936682939175908303494703517201567661424967096592840730183569649916223101112895869422747684878815324256258966156741304383586946625064890328419680332013542351138687861363040055188317094930602172622539046439255520970614619981798686839221400739582735236448010043797735143844944553710895121942660655351570592232475508976760736763612889067457777961048815607495553770908415866000900087170288514675251196118732863558876375765941116240225013867370477080276793809389716517974749982088374391745646209360968807283538863869288151002495127879362629597079786731912861653830086726792227637962140841822152873255899935642006700149675889268409085479085280734777407962781999588052286578923553827195797028059433907104547841204284153064503728319257818053766263448160766568718353629881935506031522456783785764752045275697711692174269272052414287893179480059347390199129145250985457274357342969149800966812810424706029704929021251731356818278031889140973931755895668869970012537862209551531850453279820263361512764143266718185803440795098034826256775623310183425854626861617812097107952810387411073104978827463012780399448652959357606599743825971966295501791390147330839958931154699142133801937937253317575021377285451144102008996160685445433132127434107637920994706019683522550247913090074114495485154899811556037524184127336118594740686590649414379179913784843863367674460929159703828358317532280792938593273119809810263396596372565575721429958007866450943249019442853718530262403746367926741624716195966584466912159796291366744933876601934529606850123779385449303808712151879515358812120742523394923727836317831403690465170850982064966803495572320839683206559402056265711590691220999165286519830225821242656877676988393723542740143909877000379134012487928854273558329173886064655298879295830606642107803135615664174424378538315405215436464696822225362415280910835602812043430323679637793708661192069990329412394270211703352255813559186291554312462796135587192651383079317810040893917439295493688316453177986650933622936858635569725157865572645050917676554356053306306804271073871928534880273477512723484745349308732178150784695129313518416430972456255182991721048688612650465017694284096891025049146385824926313842463112965031815734703987614524064761848446018417490356975382262529169093623780019226333016206561561403812563033663064088647403259279582883328542943601483962572352660146039434006811783397696828672140930005108385616587244867461222299575699445830006038279763881954449517379368044006196295186395939973786514637610664688991154571336721033483301937120046033473630799621639087891792220896923869081764499608873389161184827756025771303590336029273031997796782422873296774620063100943081337684244056751043096419633532183934424640539785109769288084083732942093770585246224120262743286771126478099418108695959640724274996468779952688606613959073726181884343170255823871378540598065245135495308656495663526878464654992177187399059291458701389463875067003852285580744466442787193597174925456894459582876504911140109597653503666052814506372409510008842471983597331937012070776553595904440839426653634655983248163510083056495537167179043504805851390318308044958109588304452946808508119537425122254829346135666576516954963746343225522847816493547668976410023758830285597913525695809771346263467514464477375721380775839493576675932714833900931373223273978540574263012853605434162342052709762972833214089807591156599052063262467467165155687595324261431181452697040960939129070175390115742507926623073325082262841940236602601373319137736499246823130634853557430237705784727040969768342701020216358074369678874536395621945879684765521414137073776788811152956286739322267429566298032721397446016010380766265972787815829779582954141223732103221213871923139539119985841248205761971452775356664230278005377511997611328004601809099612282425989159497688278078905667567147459194685417522301155089301509988505626398008660387779865799328431308601051985382938868905004242321905741026064352877291629638086565639877233754961912519292432491709460276983317053929402094157767928120054649227565640637704686079937522416140448929928701920040036258846189204842886922232455729827046886497023245914474273351964192512882659060927358399515661110605769245030346042183934649029212363630401869013427066842624423656925856848029912932416593975385892829460780105506044953866412795772892060064830612070384498664491220342407124201687198724631355777892829921620733070634840044041038301593714565884615390549299762353755089327927217092048109692305094952604131778513429326820221879003133284476759959332503995982283879903576511129689168624172023809595754186956365409777518630541152482269720034229295172193569133320806033223131063957601412966378985157303880314561699876190197395748116379946504452011231686973635417908931911436524508800647298724334141370153166965342302693054037653968621842599638364836096345626266090136508576669868178382329518370088756312922880721554627486601132764217532086294324483271731887553367647681202801449261531610207237946708301650264251054243990899360498654970008116620296593127376131748002755169469156896456529477432376943553311862756136699190720547624740744333060687600474596193624530267306627982163479949764894054009165834245178134202835074907063860407430793982068361339496371010344313739471719472350888979194763152916563731333176591904629133898802261951109898910022865244827426306780746098195793988944509337585590633321789241978216586261845776434970798561099605956096620802923589269246785006530671759542311337803137450270597503961754509239552769732530903228575177096995874800918949100029622802328020649541173558195763323597956568020434852677202461432865025924626819290086458488405049628078601843051075907200100058539113845481932444905075877184266915028161541756726492603724488950645273278363886908709834626045485541046838010258609120334313648638960880104210838522962430413948686817430974303240746530694137786951447728790332595140387760339413393933937657317560690955690701529612445119819359201228281671884032260076741472789778049822425456264738543790448485224818524047574057732323546696841613286032050074800141834678964535468787537809429273840702145600514630435084827992160396255126072671603718087120207441921783200101223886708872002145966077958775954784085428386521468465887334142286817655381711067151325644426945656772623897160773727758224937522510335603610540887446547168715090975304635584536762082732400051117259202428104106099277433383535930271378486728527081519084126665080079979591621810358010040302701955051263338558375836172529994434482581794389976293896814677256331487966737213321260618472346000343639034977429390417969671783413415066529133053908505506528879579671514943913145681277965067698196331451410630349785314443495354770873272976462976044001856884790425191336850439737767103226692175443334836267858018299406190482180561315427106221655728824551231947803783540964418577972097385784543081002356112125872125341724207249780146614146034628933083309409366546520267224873807765136271352434583163984994361148909173115334651700604754190888763604214973931220513802526546116985953904314050269336716487399289635057019757182990661711359198449972462399039713972448995928998193988647847825100640646561396681391697829176288981640565554402059831020284587335777958012463883961219663363187213591643673584938985111630585772944662609033449780701085088417142606770824072501122075901368931218309680496135831072759906782154567952969888993706254165335952093471789261447455876122722168512679611300708132400163491713158079145039754899228874233826157970868832724317273304524925192848238252409756895899388043723844481216935572445619439580761052532276053641174104883207654154645587176903343621638714619577315991204019516254020222591522949355287554360540334137450122202286856564270473176460946295496509507602308838484596106685140249405254323042012542154720963193380787732056138265529387385391120508657118426341171424812141314474505280968945461274330848543187657845644335131743700063996801774513081222805339289758513621984499923032382156386491574054064919233385322314627842314331406913343860147987740058182227275187901232467126063523931064832740899341867053005715998090646392039497794617660836269486844845168764946895436252160984778715401599712859639695976741900152431427055477430396159996364794856078591781153629911548649361627614876827444070548478300701955135795680679400905504670882875015497897140253079067203112402792447879841380318384060189537246447927035415022241366831652211918018539738867147856175618641895091851366235508929648141550921491112218679313706556913944479145954622781793973723543933290240398037843557747894007230415900729321805698723256875999819668657355621426417984647517550740692863662779260077042481287148459141934315451803108754314738221201713525676614588761849799455721941137552854210076646130640275479168726029088144724063766875764561976874767670860162204383505228147811400617722700026842540207940754014505691311671608491428164992816415568146952018450054313648878064345874416878558199371373932001590791115903326669794161093950444938758968694063772805890544798622075714878618514417582716850497892607122252444092960334145386286486659572188314246079931129764525152521088619832687538150291252458252925498151079669103514133800414733544015845217185388481045608760325654071660347847514646379162768425519089856305854912371527207240202880616374465971828074048860444772382009623500818737232504595040412264047874864948453232397826995186563405416171733376892748373774665142221558473427207452343940796453793779918801565834793745066550029992686728826904693301617936277115015619856598682017406519118339637029075722589166323646703489260573696873827656319403401280281033127765742866903736068085519202555432803584485496333170718513007729865244572215658444430497185607308940443430264183422683697947172198372597887104540236349883402157609322792581076149892897610242794483852314114670996106283539020697380481019877782850367091758653190987164385418906103873100409925070385153497184943460111531584399320975234614466343040760408074241463109181267206724268990103185538008573477710171985930961016097022807046076036899064361134054062554158112403111763851631290237448195880775179160966252216716987155154682413464381112159740407026969868554855216458814996031300641345543585284414131888664508988128169779935040279363459172627850053231407454682945000361209024178523800187249740297425284876997115129086487650306826174506830145765912527024657178185315017319366423657046800925030287882492158459768913948253953013345898413533640670473409476800448260748990882263673778595439485682261437125943833926114814492436154794812552846587599652590347528586763850464462129006253425785434691652196634762127982149127072234075257344729816062779845067344583676510568282696531229114030813837202760479322791817772084580826010243096714836377002920311803932279240553687714620314233081381033765356523986483382262774705331157409014167167155754819402840609382277297493850711805379710595283253277815796968604969756780731611030672295633001366203137710120538874473100732889244637220432695572729573314082086297828486497887308452163907847106502893317222212930174410634360264273870259515719861261477411979272470809580516920790290925226255057996603528073140297829972216157579974836921973242589690220907759960417495331124963508998571772461803512561664637003113993719747782198731114092080715920027403329600962592653296725376526448398881365826867178063809280642984671849738417081832861329464022423500876667284293747091647161118021664594837126830575717911758198425479819282604244095940623823420397450201053196275170612961439238584820194954881634518306777846751369785547286413186471175907273832487261456582509829765551792784230534171142421296890516208788875486717325307214739946917086982794041200687492888956672893670857695147044496546059143629435454383624907039172566463069553894385086013916586038236862490284866663095577317304675190196676804906214490992361992297712399077055140375069916776236648380128065663242605804331783129219394800061708076775724413204315685714300875318143789548180208371006567949085796885743337861052097057919782584282332659852647041782064053558461744310296487377275932389203684034168433553377505266386387931916974365022843804553412404365576645948675912213131175166415484957633801368466361236485766410461168160074469491364965829890491738845570101353905429935728357552571693533155947530818948998993684149078933309357651124547954896881626686233309083176998247017656195478365525242683358051762292114480323831092009967120061520594536696438032170179162093147999324079783695965915328836175474171267000400762577936091379371623710288736427517916479496439889790200949487855765640029878583263431009685246788032888722949317334890602005647327962206565215580378694305990272490406161075821346406300668956616339528114732481309083570666352545750120336997590520926548150631418710308012612291102992700139753353365331411933617257244548071334286968892920467716939157209898279887827874667848313917917457136259002039063284578353962990182691897044943650737033866894348950838157889865767000060648268385042829522488243821289464581363311194012761703640668711438920307289696984436952836216071452539835248764708503116682677310959791103390195360159125135571860633325480828925429235925052620976032902918833379618506518410698823242177620308423197437135932760807282650450088060617339194716121912361837343759249342413355027563970569842451804717291805966210767204472594839718978047674486742653530099383994533886188619298166994512469344057773166206648602932511609034472166502359982037539816998771294659829097987277435467833075065103174390461616518956617586821774328830856969015019716721406822377586712133122738429754211516895282558473370010484864150332682554487069373955005188647781707092884712989097802051823759355496067212069109692908344337313229107119465630729456752733706765151827448178921527035720394510312545451570192676931859075684472585843815832428932433983997524307598775386562592700671603983873790503871656358227376079926772878422646268508206597909118395760527006999429137617710743367986885698782213628793131248288721683201017419809175572082003256870835728625444419107974973405078663128494660734104399735769396593714511621842530188456690072854927641822957694210784183143559293313889985737772366532358879604537587982146880990653499984968847294750379514175208619131652287815616887367726338437151297385503499100497231895570627105997038088896273694302272720074245357553172247440688841201566331214602892663929232061026858230753834239634127443983404514211707250414409261868212978525834428787447155162666303293149645863773074898905007948572083959531354708164237628269926226162130473565010624002721414636874178917098386192260297102060943248911008872992847852746326483392641343080477852309054463862437279592341244624394199013610929019617197335532412122042118635540252109915772442224348899044376002671076331582287358448754319859180411644694683566487867797796254172850806739381430333872957648110918312202106718901056709016431359138770951685990946685392942979115213596125373917323939728135981004779785876930890704954373082332913982706500223234604350516409962447507585020721351942324426768385535684062118670489241476590764649617361947217905786733684731465003011994810498246679178620467477512259353989016660173349419744487965105816897630473245536604996868479739325682160173886821751647708972824293149467220279503356776590600918663167031052125532367816138912549493348881039276780796872926756011549819567736112159003794545216751836396499417509767460989788178485373466174630187345921503972694679992014595669438700620313134603518092715099928137250106881665575280846448754251686334008396918568457657092729870083096260002304171198752301018418416116524015430395694979526776723627802679973694600241147701897819435271071353227426677949580934874126748337250587320558877682747452448914981642174484093166897079333372570545449095873472604904456368397821722796866024560591473574988007719480385766813202590509863976822241553103055393573862617093048390104005922111778439354173657446121216924957558179188527386558175292114878099188227747091094855753568464712962268248905480360024368532820532960624985813000332277141443500937417019284220561664154673499667592208874720409415179909856672254259319764034385560027477566613133669604938876313198206695829193170131527534388792389936178830380612927998636962225192643900801928207290636084554922010475334055262732023735680840058649968309884834678698066656413603074644114321166347775226924601913262088353941879099872933695275412140436821574217340556264387059189623983961894078588528990705827169074222582052799289247834462153752325052898092615226943482545200133079289380852309960467315634400334043422874471839119645678437724843489712396624102009059066934664271803671272111991396675390395482893189462285720534797090840305543197329043880442930583928626164587843939004649740406213913443130370449225999125767020903780631697993239334970119280637464787998610157707402190171917330951086401818318081730303278168175003018573385096953518236579206148063766229835622569170481762664845124881705196573648560972502398076086645395246627121283631277093789708543831833560906191112692209145514721550961894981699860807220340111494840293350867234181942891883916418662510149000175508852364885094901243003182073930329111148963382423401639301338887715910943893888070067062496106970347545161476269817979686869629419503554454250382940983737281173427876552806289665298069728273417461276704154759159818652099681510665785275097352650783282243952005325284497158216152302174537427667659930519149808817117546982504983411361722938119379443203009723049516951367893319327850071328786462745952806825567664279142339611669568196273910836890031140595782621448129995491469863739178208450422350488277660795367448712975752418843761541342694208834522939284868845675732948715189681808647854754237418736501698188155051939306586812085548341021282370018430317266595652780971179758179624498664238413771517914973637529274569462178110017651260980597322296453316022108365727833691545450558085298740415056279294173172833486070330590805581245424865685675333511802534614949625899180685696393390531553407365954664318960089841257910798760469709651032646225400056734378815247230464064637061970091818860110800739357785992525270042261391325827963674115783947554806878875490791936409406585403862068991212009840077548319164110692515130954335062501791615014396281470876035992391850537095619181173178896676886582537327302225743411721326277119431008233855794134521717448141602296641676847884881608790525023153080188725860332722133574909310063545332789208443733532764778930072064087959473921250145508271983871292264986423265452452252841108220921721995835703968515140775760810974750974508270845805591027741703830484554146535278746560851553984831550223272093838728214856549248051616364060376641134763068743192232843107287247254717381063362692327405332067806095774923232572093217844157897213180055492899314526682639280612170542350026199944903737784742982596955579669496392761552798086489374027358466817453138629770463757568715073696403992411654639155286933875300702355773654566431768747889587967912886016413631497585412767003399545151062129442014950413956482947285925419587867202045112415213265814439186386117406065151700469719525449795870704355309267990412469926688695548903863101504600175615472991500158950441652387124014127463998248298499283865122427144697073783087682808150500366960971859523529625165888505597825811085894010163223715670924991642922172689006059352024635021213957096871285776714265392270108249922147636707184332487171536680631257704419687622933216911435904963637937631745061581778382887348070466723744841505640075370035326714449700775254447926946344495594970799120917382326553060797661466091532002224009386134123640866180972755807179739204765940614387093352536019987185652049691721121528383127735897103029918097707560892100142732654944740636439540212821959010346442685862549445715289654313282563776060650577814124026276980142484402065981817982761983555282761213078011600160068632695007128820304423945435989812037442223820357260525505127482184635765670280843905469666100906085929324903543796994943475903831901934322007070980778163409511151450646299724447770107449663450665003430145789900010435431297059784197208624826224124609210753718357208529815870150847880904158163616089773899633512023218336132094929856074106249323352268197197894248758584906186228704584443664462389312292417765863884459225563912372537481029787811366122946528167961293314614707134917551190841121861033562086269704438747072179448314149773236000497238644689942645525655003403843033165370709200699679908225283066000285810878195502232548538718179583598555522707812048389265193736758978572685620452219520489615892863251601163789524541490810523719836256765284113973419941274252982304180285739413178807688069497940940679938467736104358633512709069093213315856816924841596084618480242349974246894831357058310968922152940039018017066518113773795100931060973026263677223038821037400157174721729737200951312237581413458261746226869701749065919296845211527740695715004040086977698638072621459138109691985346372641136490994817956029304254749425967294158131686674928097384009727092860798595881609854565030616751086052378208579803565649694518778462728943335051745281070040244743742868928077833355620180540980961915082307708728275063285428100412379461969313500685302814009705282204189552924109171697699516814390416122715447291487951818760739347365520521249813809466061582554742469968986273474892657553469554682778045220100432132918081434232670966497136413057689568316680221790157937942086726110997018899529540760654648722381368786373992977540492563535874259609955207886526536488435831261039658043728619777365171801165489723693688453665099707156560436943641342744159470387464048239391647538974872418649370598922885797066983851562061499788476936345733817480329010235781194860616286206983620168069489974375152710885634428315041415869301996787983366638895104823588477094275751034279963150680967789770808540510784386203687609213066741806178056151119771934586504356804262450120829586516937304658211974812999651457803049647019392262281181003477657110211206008403264893113908122253336650004270046029451017830802665530954617401630960419587175347745046416016119483088157949731359359599141478643895878337359477208996934855422876349234537979163075235904860624720025384363409514829274423483801685909702375803151113329821669311461948277636151699622024436047466730992341669454187385349277452257710946495240370137561911470462704059086272859558576244165281864890941648561997132925197267012162438052637293513098989536690667946220148832776113583351129980322376202676822954521358316391102070827336607135542558617045001545603414783857760774473481675524701789548143164940140615760968236609104980239007943930693628354148780668819122702916343202957124016363058755720671697347753684344757488893568382508171141813761365605279589277986487233729225727094977116157153408998063604916805406712493346478844806271003045136765128308600468343061609771522661027564357261699570376012120804797039865160352172029940830417569463229605756551513976203018975068875535077093126984132626605828697848473393676758909743898357588505846662448180841706463445006910659538985615473759197054081852943724584995894989999427560587045802608897652020928868355230264374810032590471431275969580151809718179903549297787398397701222536042038277415435953946611518339161929698628519944738526592688979310009210370479359698961751860662579930698716273985216483807340382258841887106592063382805943405360991600871053969609051691498507749489277173245744258640639720221853163544592137389996085842668665399504038666158320056739998073903514439123336403036961364994634248286476841423441182226672090678665625062420979707327658304297979885071930344029512232067779085951918831720256518681645137223644557283189838910917083155210708541512668620921592314283539939816453911171384943446851210866854562765270827693546769549466145749764371740196753502264779565179814284446206719394369410914610004362113641632033660055944582176505556534794787343006078273069530030590979570707829518752009074945799596979109685546351048139191349105347634542913759881641817636808041462187547801264732725712764543002625868441260613985826515668106911656271257206148036627443993403061923753521240489551547939021799101069069952096433438005521286652775311583540807158267011872629788612469872739396533572829557614295927324500084238519196020172291171170090717428288751208176825957614839712383159042209352179929907470176513175575493639863961517128541855876262258017026245632333671430957004011773967963315983992611874410589230585924807230597571860075422548139943439655353845563491444771040316414843157081911645506262656003900702369640370588316824128685490350617244022517318761078448257731562953596261756186053273143281277396943578781402952956419158062479929882303935388319064666278602938003384744806369956904212686576645115627821014717689025033091079887499162028728017779657663193023045718289772786829614778638302539347000638755479506146972012034245946842718631604466859613464261815742267474359667238339932382324557383176053924722243121142217794901263454111071512609951518543801152347230123064161672462118952535052442888400110080846148297772683679275984923016497530799530528317498860087151765138053141253759860228646005138290543516857951391090269782636030278193661121661797597295457355093399603802738108712163508565423509647874173705597573312586980838466801195916435022839985420467030468539640542174072170640282933678009789880046531646837455306935441676196822731042218845332129859815307080435456572931922559449909128995461284213314222465616504405527511335458987724395523495297068999979695330483862070296491878698715835300446022006580626381224269728839038708239781123936165205446973629041302161190167603944873499419925891674367685813047029616855103297908574773214670945054289240732278513385933841807056015257181233332216719912679093628864732132981756702238954002726150402659113255509138015458860849083395213967715932473505556413722397010053222513212019357660620551526621206747736109848526512578826833064471655925518844878735191031564315018443782656844630474834880910894233129657800660369833571038323903049176430185899684384705897018655571983679249942490034955445572337691858607073634224905387101877045385712563758860536262459579597343798751187614452974275814876248837761361799425747025907419433425131931819243960904856201016567041403124155818299906063194418763515689620535666851500909339690004343991820025606402476699747064857729405028375996244827330287324845451529887130495850750851647119319611092157346006936662249072995872553659887623139526392896010886912509461918198464211005137136810172066899642678804356097129160490019697181259257192750846186384514061413375146116649430080054379552677798427402787523381473527089869046175580533073459891274695940638972886291148454527639193795028537902584577362765280896213212576538550094078088021173458094179541810943635999092429712165719630961235797874930417379428699498478753880496905358126066285796299723832442292102552211403194985240493675592796742217412937727863004006830160240713230353199673851716396577730779171409618301461240505027958154970049676686251836081156125704752557498013641722191114391890364072684332068633869764097049726556368176763697058069411728108608002421236760668538617025714177772242805094389075694163324923452760207936935793969336927757157640771876682407984576581738959813629058061117150300143982990300441733017872859353346162826324067745461559368242618786640822425398014511551070455105328163442437962636250871973339352188717721797890444788781814881899354321750761494902466249607618421443285055165332762506731618714415801574633310598708990690229238913438238401268295489902565354300969077062355801007291715720486907195758780903582348317190790673361747208153534898927930442976564589982004476470011303268760513593126971283112272015032247088706196253934318893758350012961872859181882682429978496518314008403751947553337124703464033665164574310697885785016732005137890441111457104065408021878627810201592261005558183087431391501106072648305580143756833154117374693939032956961821379915321324973220055981131683615684051307821511482870411267941651022643228345043223464847075187561689464219999552519263299889099847655980816173705781833599937755393266748947889596569306221738968716592161858265292036630987486923968932672236302192559330126949896028790406226374585084128232890462470368470880063298880771973610428174133058602869300077445196542884523801445449253409573329618701391007151365668327143877024771601143312057314144437488499288210121683898298161222379132637880314896935682978094226608386499228136242746800551594957765505648001065670829143013140511940100157754501348097652406113167580393631460070941215962693251419687695359567627586797096266874659579285946695267463921858192821844080519238381912683534174569772892386277766804206727542366024276624446640657721946862843664948741699035116900861460619010317404650653579214491627044370996847545312970298991171783355518146722734077668556924676983075855168826165061486629031708461072820901722247073891758468854552888034921515513779733858972221842997847399210906852737147610942295418336591539615052261836429285955919636951109687636597569026068528275984418510321936669358566481093409221497799190189172596253652149239289181089693136462476896144157729853638810691201185548787506394653383459854313150115346889063462161193776253854181376260000207740252312158159124401949727429213643490807085826684052791142824749263611260860930398031577983589446361323359358084224037586967431327106627342134144110195452244531876448607587623877323939785536759076364307170650403713375626302241242896550719688702389412331857149786907919804318931265269382558963147176426446523132457508817278971422654260020987968811363010978690260782516298900196089014581459526134914139791976136876303399270449736671316733370050762066606558047086045700366548326844965814326217846457628748374073638398751385885402810397254873246211149766368790624247136264312159436200706182123033644053049492702538431814629433500854885100523235580369533354150166687128381693620058695334074277472308991411216333039682757235637822260563655441785849637501354198377396818670032452249779165400460567207285798447919164995849949866277362034759342639603514337181818244190733555119068382370947081547757311633234271827858713158394578673386515216670115860061787846322958166511688722834316555471409030567748059778647286800426205179779912115525307163836931800864972635572875470730712411887152040381496697475140315815327193159676546295827091637212173677678590787161233777007807111567892608990661895109968617491399894757962931930481037551479709270196854476928155591928419439227086584942058095645497768835181887898614278286370617260853213499491637615177371543880534107299034791146541108346682647998548564303444504207568936740610528534251755173234803787052126208348078092578406781422368509423847118872018934129397692330588611837071996304265201011612363266408927641084080251539532903726909369769605462615753301742346875136737225879495013365070527254360558763265567199934690273644731473683030164342744042016653219756325720709424951079890835975946670395451355941850404922079893454621534577409105906263178630401305283393907315134053769158981593550916134534859083928448787777440623585885835452749564635303897585970443007860572903799543433390158203470450146148298734546419337676976868807708481384824230003602727855895202006856772791911548368151933444713236851340466995855079211301412497544657129744114436151055617648012598462624697446660890167608416035712065858597459442137460851010290987847149138653709737901039019720206120295567385718594920154871376838651721303085437899383353925619970090270496891399494034099162529785746336228797740721068309401396433638754695079499630644412846542828231423167623853185071615339718605477675230361609428219568990903377805498207805894758432945255030330265744079596324347404863439579065074845726884440504462561362389284486394778144335983216712668276838435561166111338415240680872627168633046219091210222147148325488920179693984464141449835598847378134171354692624311574367317875682025017544807779229934799850071996484388517497250679013987791464597291991094226875007269486785582680546077187524898350783687064474552263723346867515087555604097523456270831623146045993276114470745874533216483998151120470729938758363624086591693271125218719504110020337987197728898442469286726105089302284123461096080113770005559456080165845653491936251437621518146594363840638774775866252275771555988877382728133414689258250222699592746636414282955107345459244492818244188694680349402751130857851505649212938668863621358489598619625470755775703769829965799463102651771263600108540941756872882803512791185748595301403992927268079463419088655592228997839975749549809672375352887209313250156133985029788986102603897929106573387049973898041119222165631045207299837033267438309673465559461649295525374323215582979069476638886326390443983958719002041550908051875661812139600391924566903241852168498796080669950885679501349250602119762689652667240035032700929595855634580092786108491352800000244871395380764903136761975945121497440830801384659683430155421273610150004400650931161086609786034391056345936652294319185688989249008774551496021072483872509310051986408779494390703137052361059589796204793342752821849395830722974710717027895691388131581841322858131234152312918090357394613116365711655124798661629303344745501357600096111913126530247364430794377951546692189102710912477733526249621130639601046039354207548907898283827133373540525541920211789731132915762860976562154605884205220288075985266492717411529188553069415090906890565559355564892014052655695367742536738162086306405590758569535023807936550215922746571339495658748116979667705014492882211441972164129556474946664893840673191448319374678848646637801329489772620339648327025139638594640404359886162135905486209459743650031798370208363947516830378516389250078401908673021770766922008538160805290942476713046589746104528664129426881050793800351255653244235459476744562857706227818268880879378214048609330262893228479169857790899648344875054574703662750081138557809924983884624020419477110570324263963333799600414246266871185566672682692344824839332503869295362788409846495100128718252075409302867827774126996403643320746992248113874941594791228270526338643823712759848854563324769922921973300147675913499447391570586656342658645145225913383434764484179032712351090886952099531629446160120044665141130598938371103974253528520746945546708228992111925453428565507580264917036584499348764883948094288686788254440378853573912794293345420220804805932968353644013117919921304408169990122037255456205779623967470606849102260724143602489232838349384587699807592474661542991939583040428365865146115069560275333673265108108885271593330769030792633241692454948041795321699754717716407269535740932540510840110590350237677475222766401725471591046392499678770447750646866097354113700021563735919938267016138242950533086396130673165203481043696173676478633357393977329025696346215186800757544127586077588417478145916808101138402886678776046223434720207408238066420304741472880482119398628139718677145559498046829978412404574677962584352705257571442301775224061129323656138180224820744326941751365239642382988643822143652806269075029192429331540736650669426959963759322476690210807336945483143990489344661106113997563888003764093500023109491583966348642489339108718477565952155570670288828087850726778600272481193446047651034598627137309652662695211040662986607429916809290883966859847802143377609982702035517082812244186409720431776612329922838562704031361028725834344655844671710478680939469689480888728942204336344236478538614303675585906265333103402423030539345580181918769307855970654582373619651379220340951255597395066647040742654396430110082232245229780687043975085072157158516107104776779379490325591479595235727425692574536326757948162175282458711142796366094427924196734188117948794965724975041459721411324945801782424860282157808648827311064518650396066356740180092077023373639030230734251989995943524475565112336810560448221253253014435955244631533748065196623626460033428664877767412954551030984293934735751221986646556278610705192979511926402173980213463636824271243483804638214308506695756382508785802823755018527572377322717366427497403451141438358983639654510872812637060891134440377664423422919183800331454364892531799876320762007981087278908730414683241512131912397718742136226768556419749358041277348932244073517331981972812664082797552347481357526138683869426623231345674442552662026594600577352384340536393115080990664894480331752073780262701683841486070174114493976400813253511184551686089173769637672279288693382414879907017635427401962823480963267324309615674338098845650387226091344689838516333651392073397945661033348000822976661465066660572356188968397559064915180425576642137004349411534588807125169600987013146800907553832478833206149934209201057602895299757807011142922199706537676569921337912188874486698842467315815625052822505771388451714962385102279707372625519926917948545601380022887229490075130602620354011540553707118220159816732151997230632355269952776282417046010472657089819231595899200274851958966515302113311994373933204393398158782470714499834340454627692080789409139194359555211947495013870241663531676510953572438556568955764752458521494389556265259015631528692590622614562992457870981322052720880185159976418602052973930188872947409427892017313544700319956278285005379253865551560797320656167138823334257912948948677347452644793873259262979035181144769330709503725400616340874870881393629653920434007971302570587354131453431985751935592579593957655366001917557238474912955863283504890421468216119617698024767111996752258926624624398066892994791010475909975167490152856108868380567134873845023481254546110092035275421245132082338715087736023001389012768237878232238035845671449669570319536397841654232883956266466785633808292700611592215087747260688569404574470621441555407494130738707202095558843629087501665051209466835310043656503923092943342369053289952353954239940405558177318445181675301808238604726555878628082683473751292171783055900159933096774177090015134419355639679932588930485448201403544451388489021097285896454349814502860845181581136325780313502383109978774333226001736321508119917908589873345873374704109273353999305323158532847039354472566952635282326921674676932545799750522951067613738451583624752520626400136346065707791078752224808641165875566523023284604968062427418898552449930324671567280784038693217900193734135752545680715076184061296471935935959380439962689768347415219827333328736117770218782144067681583675304766515375220425500252816976317932069596573379719088664554423259018396854824770851826996552481860319836819039551854748317094764465084447457428322539704460226086076301104835954198723687818419936304945691791046001171767932956132461453171303373384678007735359060912050327600973148354889641416778925371378094601605957327466483530547127951752459533291879918549973846926081637457469970291874947609676801518670695278666158240417071861960351216593000964160785128471644855487835557173968575891414138578017239926207014197399760371186254325865097603235816501836049951324010890887062932544479022164103973252812624810161887958156709172128034729737138480119436387073061659085583675670421524151018109038529417709519339408800533658545176346300738147176392306332600026827032000991795743961451186102149453535161591577870810332225230939037126566537178219886329148511533163830301455210792115980218511314685018500705098734901477790370804695685496005037616775363658434261052858313071986176312326305009843492222001397073799131198566900967190792775230587507145441156785314802865619058903259038122282487098366732332870569494883428168749610405305102517489552604710775263195261250115832008682241168615424944963300416359481918119189123390927089845562614254835361815061937551983214442062916269004471760618581499850384615470592923265956375226675553180484140025196921545248250405876659398788878451495535850812942510570679590781617115783885383048988579584692089738531323048372269933798401609930075573085743562576162774109721457218244487456183348628762802427626782209232761634368564724522419563318280722575252048688703399426764796345161769798060387954856291693797395185835371931156076558859986880991240780384110358122970484894287813927318551119472647641818113624662682962806547491899358399734715103467734359692049054512214259507055621337734205316170297108087212917718892462481812007621220219388790149687734644910563148409508019232863225569856107937545851979605034561129138317323362820780937656582081923721299307001052791327032341750272058208412285104902890929570665158537230831405551298603017702632333296810036405320532362724023548731512067321681343827433512251630232788418499945416650036365519077144831872902149740209360568303694539432819452218001984960313973866538092077547847564446067174584038437050644219497735642681593118453003317212289490933023168636686014645066317620566096876239003246095451368054485262139248384611774265481106078836321165982282925295828720604374687010750456344254716435731195137164138384049347818341184620421537886098594999327050168906843829739603835656628089102509652538556247490879148281501867794802373326583750006995491125871455756251091495825449121603471071082167661062947935884170745517556950994462042055944289448901836531638505078080726070940331286770825273631820579803307016634932517210387756525121028993826172251277228301535806222474605800394577206511070248465079653953931338284855668993896670192251881501054962376340188127863157418075499109003254761946646773094763097595159922906651489310730933437750679369339686740180433314490676597658031892335479832433451953809071830831313012816880917682190199236627746557655656575814009406026029661051707043934254153885344987791694675458807685769140415934380529901966997390186990044964638591339246768151307888112433756999085813524791358153251117991369356990497998242495772151765884679636754951985151118096599235594285411703379790185752195325825290311450958694076464104931247406991930331661420270252534670282648360833992706390782799317358788210247879460273304235779855145133117798440072420836981063133465174562966501528263581370795543831845611410172493116308658578269971562130592108768577803548033404032110612542176665645943071261431139977364387689647345639130694475902007620639280935183139608987426502661719621203191467943001436062571912542653446876608374479534010740249824805141664018595181996348355059088285229803931980038343354197486782218763098852977586802300808611836498174040487740543822329559213272429252340166565328929884776233737001791842207835052147251343908115331317058418459635497573136302889423158179355739175802687364812436879923963463433480912880282681156716559521935169577177201433034160054739997203785923776291335952894055679439094660219596845880786163840361360516121903011996903876316364179614792766773546710589096222663549054924498660498582914455014136749282073713891807802739181820543621780382702704362969458270699280799348030284978752003662396050530405609152739129167266195451047483576151014795069358879828821455908681190631790663850998865366781194110139665416974491234073433766316658709341049165892798143979471942146817222260343378577429299635719361994810163260350053573063393794423839792219325946865793160752710326756231165134748948783059186023927987215018864473266715316639949542119853776403031298278838168029552137701473346510779791108567748380921585542868362134604786662851683964820895070859650655935080802350295276076641018120338938895029790470108683313926329599206973552521898613569392204091330447970760462807907490407644680753829210985895255387341447289589297116658562761101604098898368906960714644261558185551604759655240454953576558089790967908344833699059298814440791425868793028359033838988148178827802559455838000811643522108185453169723876455368970982684587536019252235803660407552794783877621843340668016812223688317314201747839569299798314617006764149508497661364918601470483057350037845231160778243859453996422083720624246245976975234711757331299912141788221926187186715424109484240017685426051753639519649887954306586581855232817344704627443982803438485734733884822969056749523183866607952173557168952772520050358516383063932208752927218044742498406091823971571693508707209141907352589576429722581483926345761841085953778033557404468990099956593460963946119787159130988468669189281547952744012818262684740368700069166249737661692410187570872871335502662460301366862958932788887641218803150568864121698164646973726902146643861595656945226239190304039207718494780699380793636384212341381058490916621497219365720942517479551529194139577482384852561720020916645327545932934612715024859822586492834834246263364145676833312764073851400257067496124523171374787612380653044978628411959140805900059511186122580298876141044841892023817496719085925523385945603246809851891101166646902237987643154000235156263128612792536254378637557167646011615324549862820799030186442592881769323921772592504811052646602010063795327388648162803359249539504686879771879352145860820212967656299250114007518467481579574953036083636535364355264231681040990352203079709594076068621719707434982888128636887700542248698340197829963496787857012248509125421206998261788467368273042575061220013957026900176569190306503691245310373482035178637338156046396956225099234550734983033041253054134548459514676959750239660912831848581151334032164015611685714962458724910279292015891892978197607981910121966402060117743670952319968662785918547346173899736103530150824191760274836584885597770347854935961271143799408554614439060598894729458192437587373981417605782769962659442876925134732661715121655938245496987011735789116192381312979753623084794748522140517140398952709890172552907585270961306706239813118964763170275467214260849986814592468065217335321806622954585268990195077017632159390740692981379915064945586401875231037647163035303605885528358877369605855815045750807523381393168555834733785941009061829997082957307482078626187161537983246771497858035241898247487203115510297840046562497590684523339522142751696979159635941537457027507862593684533803039688056044417581168632786258279354410361660968590513995234268523154398089114328991747195144401473534573555767945616573902656236255314668936020067774789642854864171949942116070715675559011732884264421353633159457610244769110594387350554742009324523258857465613653381904799289054188689174851252990753347932515924892134917547955679650532449018257933001181450728567821668800650762810812927809469986520002162827154669117394805414623259844003327450585906394797221180164479506974107513836714344351797919398895353864389610508257593929703951621603933061955593072147870509225556190815772851754531285496980077345892113855138709284781290269455505992119289132750949004337139618724436197207129417976567975460393324972276232038928562419604989739627896810112839323752160341793365068790653017047614460928252755731125115245083747255752645846524406842442246905600933512346842882141975346102345455025832826418794041673160993277989369865920394876832002484234630628369999391012296003860600163450773857885092660245936808008218031035782414766737834308315766350277174462171660821509781121414111430582785427267410828824619593297556959118142652713364835443827981471885931713162805575315980545242638641514317306170824661781349858497105416771083715186212193876594059090617136140637354187259932813921927667723563442990967519916140879351822440748720352124854825467208229392821543873228881892309167962855270184785281898007742597831421508783800999165864049401083204328487975989858285658870250319321516252626578866794231437235410639394758786473552882752352022368187544101480307845258135916198385348890998163300599581897308290564095460025120939811588160626614539141873506218915106814334949995094101937804740561219659075212819993119196248819102552588294236452882909417606393051994688527777350456402730711862633462639560974002323550236553122765842114079913404249728859747265398100598992433964325519554426181539649950160743239695206753192128120443515353403180432182761823049700731648741961968826944921713443680483178073155520507771234018944690076088063301448686480585106026958483606573859391791561356182083849162408916415024925829653963446978327851291730875005476134505062112986189657857450581583674934278990757043052229233827750933481387956145265799917419152877332426117272597138130513077828429306404767247048251855016954515730885259779278133834897011940329583487222652304479785024271251041722539222862628833733684443808763491047818427982433717886677782570884448523149651269253948118963016307787836673356539176689239368376095732430025967817917394019116418064787592327574725532554981016743931015830917295332067831291990699013382127382485310208696636282427918353540289900381743207613318384539904603531140903485755692724503377214646554056510221865311546432460170794218565741505996360384501307436012456733637236634363227111073043886172201889939931144693076945353573533167442991360715122524645388150089229625998211788119658906350022915168335892172591627928422382009282863307756925427235867176554342771402065989203286403694169082167883281624125717863466798802464476302148400510200363276167990593279428198581995811391956826350356208698697767857469661034670924052289745938625556470717132789467996711582472766613024280214102951339388724301524021088163286350426154282815743528688192837652009672549342032505789266341106488395690736446896947569670529645469288167338081448294553575737466043121453107710567531107450601519642604039405314279738865423634583935013612035288090474942158574063958631642391942168020300539449534339141664834409366404514981221898982437366218702202628975826429239957186541949034280127591649212799389997294818304679141303284904830625498636948324055945036037272303702700209378525576130239885626938339042075829151854916621574927368914751185326930977365071923149583795015243309617585792004448079655780103073585392215915684664315065348563470758374480098899265926602470466799602418928601644854900113791951857377405138098022927589066792719368991470065858495039645801698093026845824313551464462643092784281107680914545566491964408917378517779491721130750802340948763905137981510327170283357237117223508179174036797010730650433418199942956378607740217976213709761901467292895970250462533785173614501373663958810526658028155045952142653935396618455035934168187887174998879662325165385082444676361904642917449264400722986838672813475772402971539522703029634947209507737452994554983048579118333801213001174946614938722316140721534004729731816202839891166865458398460532589852617232681992970498999826400220187199309714862757018428195040601286964015363532977106616628691956616817911428409464760073278979984162783644108187253337527397770182757868036460525282670310063161925309687877081634297346329481646849148305096935851669485114564835895712907910617776316747144166542078044290585870813767124978617757649618949093716758654732879274466548078162559350598785222322388424465508409204182548677335431282723156978574522502397361591066107378657126421491674029468990212597640100110661026973507398630960862095872746021692961120414662828795168278483162302812322230653457739457103209314065361966065852073311479679486695946698342927883551225325782626574600273006546244482895182604395870788430689622344289105825650045818481143079158515257421082776657298170145487878881096692644113312291936718354748856803436099761199165661920198814731945386887672171296657084213298641574105254838575975669943555079955209863615881252780968297625390079812395948692384080661141175524284727329900304192777661817712712952635280922557964337262461795714011727734863456197049161536128811721133637793532823680453377449871907407576167530837009208943708975573753386293244570616496696833298357041818526114364615382158842275371903373038236626698478404134059178141495645255181928677937843919962361263521992184870940114603900696941901134481658211625347882097736247546762058847372144441086242959719554888411963480716381492121783117133313920320898954380388794293109253082941337020551718005865235654589877893691987997021595314324819821343659833396028291602073729690654841922599266147441160951990768752890986066731195159544735948677594425501860383027601794784839698434409082958818246501944744906745984989912312219278365947991594773240186996417195831401477132140052881040114032694439748984596984001192555696281145217043145002288904061409725218838458372526369442918165517234562868822757693995018152150426199695923948746551446320462893603588565661844980521757386826192849592216586592743845337764791868342071896678325771287770369085576280446983688533035235625908388818983403643001760876700847177741435722492412023833098939455209621368039114839327337287891435859600247806133557550677448637587639843142309042957059266367405618065671478873802091904562162277535943553075598443112301588948424754999709222232316324160977950900204908090070329979892535290219978260757295916149532950459954470731188576703462437916636650479875715025913531385841755160695199582299306580530851523490429995691764564132077871555510310124937807677504974878180664423805646381683247722235522245478754069020631353240186388181568648935720140586097534038116891808000528060951714285175394098382876170154829275461528190909514228365699859278056895220442604455294650120993444070822408119180432400982385061955605000111743022987909800840769708547258317720575481656528519722390389809067699979346653842313727102315925714246040675486587533643952598837234816789717241826810555118856259310216366467738161819131477014024583505100054741659749080286787936871636281543796998787804374397229590176090549937734398082441500107549266101923678717965830588317333855225233826719676182922294963854479084020584515652400830338410306926516438013370390384179231321096205587257227614735993223211418856151457394574108669433499059524554499985534374919900771460822244266461298780598228595910110180966183964257525008254737130490597478208934624465996617510295805341005731751515548686729069577487251842082852482166101257059056351729186185466057372918208664502604503033417880127353669297748220847608304972594578517441264295232563145655749049597051176695062866481651891368609624673466443083927376698634146852477799333629325571616338552984719487366890474469597260604597406787831099280610929756817315851330146400093014873160383722163206009525049956951474701215779178162432071591058737766031688813899767422571997225400730761457677620720834652651548491840898589199084965995947159068956617393300362901747328011513944762178968899495411318275117076275519290151147081389931672812599259021649064468697537684967131668042080618908583163866756160095024434242511201289132884027739857067887586592768391993823523524479670440284038102898627911238505691676345456743433146824424327612566070142782567197806674670030975808394579041949466714587453619651970611491422946086906421914939986054030033878249307557400621006805617933557751239821279490061151804493085968194813879426512319861317781853703067861259918163363595399464363209424581740716119749408046938611030586787547954273708610881410620789002337537126983537999493256647065432906806521475660795280381348373542278001180032952248729039389231062949451839996828071286379248253333564273304479012916017999416752985925449175182140430912843133395402812042279798243069826923699888116272921394505810521687204973718802103056990415259187599839762159345837315435463782100020545820379773665274023599293218821214908102955655578200058313193803632754184029640873909796694191764931482809105192559176600377108492149036999462950881257192587141614360667332001104448963238444839378882956791346776328991467740305489016239365664647234642120828444707001514355576975393015304477717436660905358420526925327416670514871273933867287792403772375599305459974797965657798785436603886947333194831287362835215569874959996482738391592417417631156195745771454856989150728384939820029019114258314448201492303729934604816904591649744226056539831238048105076616335952518918047624731869998676815807552971048754037570994885216363608963494225884611022962906176323778475642139704747149554827894225606678297867367647954351336771243147107508417789162256942799197460107328079291255412791726589489299196242165819027998219417480082228952557869782323418341804014963575469719754679990730173004270712584872023568348000748006332964412944732184834072812461902769981658977114248461700528403300634196186774654211611133925563337185352690077027641759013281910742556625264724956678055206263255349320180106406170499672859788694251191547086672914665992488487837197873501739637499123030391541417409009652292238771651450998117794440914904386200710447352811641400931956821299962402485738191135841328643721235661481997701054113211660422105919300423252266710418512911007337444217914791331181074607203557225543546360683737916629731239403891569456465781593329109283471424298449223430237467928049418013775723154326070343048626911195243486123617486600737864259705239274644959012163923958600918745373246714714327058663219679580037734407556313899362138590003176023088117008068806710616138558794352318709116418772056457234882299873519636801458646800317420962601011777972938142957257817984608764368892566259359493373358608480081405950567877603915198602957875566531096267049367735568062229337573955620097512176974722659647798762047558261493145575408948043452180561674846099189754603286119791284686597400814207610841976206798774763796817750991838687601093892236029766974052570956605961216354984593245901772753839005375114894251218786227664724189264670775402190578271508443125538765009253711573826837846634705313997262654362189296662299736656958277139344583315380584462813455414067728775735658221287725703789453640683421745462870994503427618373387066781811378324131292722666951826999062654176570151765248347973449989363771221843229769726842222862354397948925562051149054217525465341653909764027407516228177622854906146584376262183528502724038402026249133206644958013383774650092899896612179037400634282127714169482267288422101310542600585343864982819509283706375091124053800595117278133006956265178686372173600399393999281341128213897922744939555939777567373310187113712551553045987793303111737309040879621574832159217801563581486998495028638241385773497190608542320388829223847442517754281939242631993848322718363188160023782801796145328524303932945084927162636025712619337715549911304719035295596946498499994507367075709386440203409728891010572549068784533358213174493424956371388547069305673130520607111662508750433856310508696584079834655809092927548653811730447855549988377344154610726552079282161673258335105945252623633038372247096184078816770360071664696036943116682613344319100000557831906940388417190018744546264912512368966553818204858807398858873668385546134546020152642268103342121108090659408589171262373266867377455188623144262649383993675795904291863533682042815783996403975478137450651156515259793150101127585223873435321307007888950267623705992978967342163233489476508444539171500672128144329398511266633557964912705793396497485745683405022054730964787260293053566513381337772420208554800218891149865244296479410287698460302251673486580707701520565813890850339037390848805657016350967492459365246408176786509751893839292909638168276630924237176978157742486906531283890661038879747339808913393102933839938704555614407314938497848521055759857905849596415093489352719137429039145667367897572542328718334359499886771271357887220856503943269551901137671391575646837818538530938695820247016997194086613611539084948796082319288216441170416095761006782341687429255581391927605196037941338072464308168728593408315442466601440493724177068540212430564006836138411446760805195218602449612242736253132955347312993517044573168452483880075583833564850600377347872588305508132175378570062341733957807062381379770752333516251519149655546471531154120537743938801589691826935696624369520231230732088395240020938501082915925795953059878951383718955583731458280340482844767481287617134605552292551599991225654253413678250207776466697612323533075062319641401484676981849020401465042989440717254372606263396645073304014155015516072534562464790224425942167649181238963069064388793487584591524258260607502809860117891891214089170686877608924155490989159341613493064853477547408665032786412136592406994993697217872990408875441893683396362219957082001074531140714688735405036426297031382964745079766326784248794464661874603283924080954991505110562184528452265271805939625690466346708733652578333306714750873376012326042938912001863692185952991249091176456182833920030125868183166105279681903395650232814026666698143007941116997929911030299392747663427380862581711274817091745061705843723515601296949839891940877722280014577633103200185958053955460815017404331308159831649831755533866622414418427711849628912771954221105434014475401042881305337264886654513728627660177410307747808084082910098020626658579465396882674786111996630774188247741531027536779176654016985304414638136501033817528341537439403052397806728166607278184802776911701225133265590131389817659430534320994399611530189099873934516445933309558429803445953122289572195630833373997305445199499378565115151965279096118441029135436442700537508078455725859431336568096417208336287225415094446567792905182262850372706138559076445140730318687378984564354451088741797171085234642386478423346732233680009845974698147578248364510018133843033068099246167443980244008630958612993469238062269233477695763476220864524752963104690910154369040441679825807338059549037701240422184311687163103269183097280008424166637987612075699249741691751225038547204829078642952093436485677788160998368384496455684877672796184802697580005946196937496337722224792497882100796974888470612719243690421459833424672120378649741227654875938860584226447839216265445909509501765278230296255125235001225131426973478101166960674492923583791792816391825933208834072490460456499573729462416107240385047335419129021732602901099239679195964588108245495719194908150049469261958618270612823136272807984090619806956570795086163391990239636749439137014484611281012225156772459078533297397242534126000314065022058946306294698961770738597719761312181110837647303312036932347057657029423593566960985213354122916317372038309273214186777118183328694673903081931887684054033341038343502729251684521116160970410753353823899965394608784132147051531252554499719068448342043540823889430788677428977635904274532687140579206920587783825170675566234024507793114896222763144474722024028318961768787160249839364574649875190760456795273820756120405295531538191446467702403387480655537954308775865774889786721038686538077424581736466537371106641686174046991923067847686896228351340827638623066856396264053977413877556826113012799839496933495608540925645942883253431049423689511247275623159658599145207742446510112889949369635870836400526274836764374969391467373701667553296011903083923997807105008828606256614340513607351959481870607822018486556559827625050504999087932486869441362435604152603332962593364552640081911975899460274882827618311532986464945500457638736153260459609840939253186231268075260540332481041431371197589592006309302193881615286166472776026549092079096597066155393329229676076349605646700313870617624783744052995625083599687568857866583108899861453637957972055366003261513774038556119022280755717813664768257742244783500888890981890682245399668833660649404707913876647514418976877665282241499265360117460148772694458611995241537125129179773971214263723914519563369469513426664977593625261263888539164145112620062691301785389907754762806866969605708393294433632662543649665630368677130843867736757431893166923178660825309806789565363367392496533794717105009280725835871170624080798021520719372340229677351229851807269140834156785520727091352350655914459875075599220272028335453613574378824794207409421267056380730119697449625824915893430718451619010936724409242817129571539982883833323879720057845680607851110297463335520160415890905478093772323644513244347482287575607519535051548124967523976630518791344540287433010057749496097326211740903899105179071308731274630073650950855343436046395271907234195473138586598144901240753653141159049301954463098681523972871781309540503768077982942794460513665197013646316360798249094372723855880712970253932194768818164723634727944771875172087858297152405470601505253964861273968014493356040297849538844352269511672468413539281773764347501242042471502061250941331911249343131761448947706054030161826300830560158143276886444193767019798553905053443054463505529793064638923655818828974414619274407078226844158919271999842434788758340135529692891684589054212392675179203396111084806133777032449024123564202510382051430845525575862301362196477049239485957931954668089273914902825953119222017614106559294345844999528457516417251973503207356109365832446106042178322270671505034523281779581487859105913687214986713445150638565562028777522066749967690064800205355228421940632472265036712792570032198812269743973947626077783889094656692491754422058287291835895008357156079334021524799953543118048911587924665661477776581857443326925259736755170558257194476304690038301010638635679271038005659719389510887776840514206076178333929167304456803124807074272650026060689884845500372312828809061001445477637607094961058211133563106067941446690133370941514014197753188448757862696847443118667944578054454668810594876390183448449061905344616418852038772234402136220108701068599307639378386103087170530573275320351918898237763791095064448405925897116362588168116501680681447383680244480660292009348120504516518591497056969572831872221092835466369955779485635171481488177132803132346228028477479288220780715828632266955039650997532071565260276979885954084630778935949701900080200559387184357385486631567340955610195518350657380513206911988561723247058680979176921321592508184350846838034968895298510589863960012791739957823626303075190757010518423487453579683596982118306964020037372284242638636772463613621880973075385089888459204029427860518688667342645338187389834325550278084482383783279353352976413571154175313415467855805737697318496475200929922853327430444381809046016205302039073661016674901703601137054859612818828113338490351229432335294682400051981068195026655565479835756999061508941582943640785712100427242708696043763478813320648643905530918644545228967637869114163570500072066717417196699593674059627301611241846253975640031817746964034680624293932753525501527363852519408514136663955304430375558030782864340837358732841010094416822178834731988849312927128399307094399748891359883888150673909489647777290959432807708827604472964172789956499325869545281582352436180860663195886955581274701719599388354318111078534424561679144094063140397942065532972810949241218483662193301777203708151011907023067197537605704160688652437526278035978749826028075343398861927511556545333614584702888120245730065075363133358594759451961843508431283078937988309040388551980295241444035457973237698616127030564143829128121180403832744763387774238724906885440097941718119141217334109775968708494558021882151100289327539831585592542805835394622051158273607418611482929165447802702314492346875711940214443103556093017660057433282479639060576141164828273180893846968759607101072709886884812752429889023257995351898520126643552132318552458056029868420837757031088660911357685723763140148304931734868840735127161624100808460020895620036536457745197636719598633578276700124085194977552086835141874594080259612743674222971737351973468149821682553624234906066801965714519872709788959566848039721458658835929471276849834264038493448125508118465919542878863683829279191875450030365551043043401426979105943252793378925546696509370104657597390316620936649865867198407685915420338769494453278024490647958746926946674974996345541064166689971009555097542105497143766130533795074255345785803346450874019318067463769848890179173429824240918127958936291022849170655925804008698917640343058238245276285313424686893209299771811537158355775397959784110902184880514365705599496342537087076714237237671339526617707154819233739114133673473385986195569439291069731246171729360233611354714721350011609508532352549526429465353991854694336533835376736573523856201509614060408043923172194488042087753361981542501927575218130778936968546183703285034381568440159351749521472273797746962425786686671318333750056060625477979900356545364863978157945953559967411674554361245635662627370155063963882068231865871084078931336897757130079723490159909158579054364276021410827674499546387778727878349131403996700090750763755810879885864123913725319842021712884913083534749155410626661885698195655336227322004881725604343373125958426689420149886913679800080416269529039437896949683622128659352834429540490669539574491407103182831345496188416233326251011580282502682964282869425937630864471184357299968431071564012952017875202617719037578020879625644829839411213977179090296080035326719341219645252111432530811628606820120824720714999772522201949475475042627755886245791221625441323590391390921974733425276549557972965403382745116153056532578504485616813453566789728567860932363670529795120969318839205274370713950964211742543020996275446325713983777874012282206548417879009388712474659583310673721311502089408412655089818390344456505487287915210558762747095350747580133679269774835940863120714325548617180984452375663689894637318924110557968883918886170943165431541613168860624904355695142453401975200195380541259568040500113833784115378753210658963997061897510800820753271839334733958313809379313756431405668881767464222085213266576159831412113289944627184951693730825309919026593231901308109877047875032394263556039053353861683983868693655147408208324441797127081827228009270305373215731903758271016544924377539051906439039803890588683049414996418464387874278678004511245562118428723643072535700599590013150913115518220068913667489175766164915177371022108261458448274875735638552221649190340988908919430927314367557792360481339378967844089762873135824558737952765167377083964830464576551843555398248393326843343612867099512769534245324299333680003204506733968166997493738509172317052644553856099208335857802958358825733401806311091250070098551355742220336715631691130430933048190659266247135938386127410462200765560255616550402233221158090156113500685445207493693070386287816596091978352561474074572403366255413371595500549433445303228871536553285511262065022411252608027194465867981324419537481128351076803994008258253027625564377383627671377394397901355011698910945434134891146375756937042372159631327166717737193746832893234775356374203775717016042055237220601906835643670776616110934433839987706262636963076195795884999185741907168069176675542804249990470219224361218896723553766339074956220127817022825883158016346437286326951647908658373808839207814148123073163241629445149184192144036501809528697932962893811292551786570697987915891161844919484243327884186077780859465121521584412532525965644752281809541793922309422466765626991929748348926663065587814088806103892113575541186524066124510297592081498776908697205415082679889224533554234944707099007543564579335502177221227090062585846823431514799431147574247194624752508814404735655284734274989609028455747806433631980084453207758327029111667139533954183461324077555444009587813060500040954558624074092028333731304023606195559276321643337249958330271535426373945599981305897912157450682400038886347768586679217282816658290709741851284394425760782509392843270376085629671770519040878375848522109859844249454410505109965925694774975948567579406390241989645843777690906013507596319758509771420729963523437489006707013202961630442242436684652033904205985783131052543676031036415506723451799632381830209048080501868942557890417621611695963727949951374385567456037176011234521350082209672677032138938207404943590701277188623181251631696087160559321815922219448813809125052176154539326962522519426253842326612043221872394932422284471645453297898931339977730372264050275179777267690452716351637780720606441368295563275888616921471656380167285613974431033080762541818349264038876753014874650372099895355981884977885530100933735080680867105297998429238645695465600562618039044184129358889508715829614427701158374101790568593914605743082638774718190229831943321818957201725689542674504863437293022311941475771840330909985343692737825938104501836133273278201688332670098347372555209923909004559885605507337216132778212160422935486937268530383244904999785916914994441590202226289111220189553015478854008166408838433782123912668105030195286158148526744112004674433254403514549119287401166429805823313886248849770799245262669089123957908039407190264099093532228772794089595843852071161718009796833497248149459558380079773453998812743177867061202183189242550500367148872701465703055477366747525639566367182076364606615954238067406045762899077749087760723341352581360437384786882193130052463537863242265259787429574183471593667253082235385569104794536451967506784361853232393203971773579636301148206000935319523543602661396294177198262273178519294397903662176635660871559000254993600274956274266846852138933209195428939226122390876800437553515525195229262866783454498882288862582671467980047106195989475690508960549377643662855393137303958837265166964967886008973524262192998406475592255373140934897434879594318431695825946800170468469397892398085032142218412340293973116829056631259790842448230402655639585260425546878127253776573368265272623196084246712378212948631406007362653839821658220571463378937992177913773535420339658095202993603258990585085279156261263983716421107933951071963097165945698538187669450737154714083539872866719338554298280934890914421417531203598401542269747120627439186056053101180865148003977423559970335841099877858440293043519989006504896341563025842620783433229133625514439955366961770855999071148020776609727601979268278907803986967933807088795979877356856026333821588664869198259729133280029225850642966508345986791747218745244112776421104947089131581431064084198919539012454442220740837062299864064362317004237644217277920846131119708951279804083779127926450242084483694502968290815902680305193474133928897681360422501684392176235270502803928940147615760278060209039699993078092514151197229765546064708797197522849636636519815515996015769915498299367868981342585886215140523158933332261972927927829209862563528269402235039786062886754916085697667795332539055548618701722707687840106085351324883681157985611828865753009969285559392866467757193081026425272479829660824411769074065312697202268541479027694036055425587676756901518536753179219256828884331952443242351698126513170658454012068858827271150067822054365850587247979704736881636197937186902195312399602561910503453384943416353901333080710739865333190608398379728830215928562383827851143828411141458230944183416792393480880137229915528762875223232496892696306491834409568695167486511616672331319062800189372826419938933897475583633041324827565269391788114764257743150900745004878040322073916209216444336763097808163447835780346344062625227650601906902951734173894202568386060769855065879359649970862276414490870066718750108383592593633205746471704411796940734393018057398405003583009737274569465102547016300076662885782957410225241479990990584710248897516077863640108907457071462673173955646670829450116614906486943610716905779579235855876991324948683350023838269597073875316709461764591664888001077309453901403651277565555135334717667819907284581007068581640889784961822968481062274604921751264296578723959026038193069691523337569154777644619817237430048479455930992448423148952286574654457797114085653852270101169603351692641136132438576021448578523133698500006028105693154816529177789035057482939781561996787444269587090914129541655249100387880466818876486755650640181763905500348223356841147462848288786629950623433671980695806662558101066639568700423403438826788000268619935172252531756307718336384125231794812280469487911019732234131460903662527163358566339731795900832608622251307748651123225217342109334962263189865893383961624456549525332132491964100028172743588456901954100547879358511358305162026304681202886682105633287547241949516314847033991875952417933712441389178364114743062238642142708233089780303191443417310124356916198291181313449598959345208989281444006391390626980181245260207077856836856482365547105939475792827359197995087327180284262650885440209722449802479458249777810021880574883332809586524797349003189595971122599664252490838387889592551805243303439938197547387182471724133608273147843842314662754586513332932444842370404995796704122257269689701152251158097800588209762988960293258030236467827557513316296000385713441207898168262858410494967933467699587630529420274554680867078166054015956071712155623593454714660743245473799196344750635025107679839021171455426025366952250258692285045255857876379798867955759732651311595306863935354378280501293045358537523679022870186966233258274085351093725522439504004875068056797513949902449922186170617297558992538562492521231864283574307625082436572605497152797599123308264346259932821082736317805907241008673558953313374179833545102593765192284456847647421575197474217774043677995806294546383218304302198632399975976152264390642831846153225185129118167502629213202257641553489644501201370128008982768939264803862583205942565923737055682276293820092503582446731285438248447937762316597936414802013964358357417121049100301921867296701212229246464967757958888440715814475674108556503171880792120187481728118722096735493978985325517853938168306939585805757570249543539424321571702303781457152332551660196702918897058138943887072112568754833439304851369448666495800767273212486451353912002758539746841502745210794619669340381627944972603231832619580765789812942532426693988058316824376730261196008037369747805459497068701896005389757282171190021325217622252194919592761750228904018329225521504647185471975124357651594364959663669289666421915959416178744191329897900065736396031419314307738773783478809862893580657589969422763638563083765813731832425101672007853843207079741126629627904776646668143858432966553727972497677925916303740617615743792737963373361318495950381857534544932979303082761793837540094311650888991620592163972673727777379509195688325460646902718073711391122325402274450349238565230090200234963297634598819011041238206526545301741855074813824593726652158738288409459242135065291717646387868659141146594504712341388239210187565883978435896369540331144703666657263517475775011263297704768412589327556094142221526921129580274382582630515923911326353449351605704469647564975694293511839194365572865386759716183515713378308985758362603664556985821717132552497816590566627762974585950088394725736024162215694865674769312195492734800781415528785793925528885084148915858835861126953210560527541318315448200997091030586440498272483312341222139371354716033624366093566290803671630364990554536537956932083932053198531919411376970273292277542267542114869146501761822525249418396176354437049051047928717574391988461954093369705251491752102956582984084658818871698234967215738594432489425937361124564797622839801026528724156459980282492311433134001049817437450233228273620419067070047081035386728353924888719329540181737322746846450181668329476761878827751795445811655677070261834712367453247051841533349525118311947413603747893502711115514115082494889927928739423710009028414007616059863751938493849110146217923631258682472000710604610417587602433937666827747354110017072749270632429471192887080150083119810606267115720690271904887455352083535026666473765897132475426083453639016446682838262301863242037279692761843276404943944060965722008276030549858697964134181903121841413029224858375803231732812257623276402878512798736767898652398716701691461351286531443941294539445028812116620967953265429262301582072232852568018984598242186930188885681425497217693443586080357532916463618616794419521975997811610454004017528524679636311396736386339169297197947535344847878926061790460781719075743674445017673230196218927085392087381016783136949233526208566422016536183986506709813533308624086621014707425344104213199431427890428953536332039609529107318726469900231486613260271724620086265076200014533754789210583032652117947733192765720846882010434726414793316691284160896362374948682320747301661449133512657014680474959930527903565636191018148554077041575889527778668603634380420192502484245867342100446517394323740239705833394822467838627089348205702800689242726494198358006133014089426455694428551227204195750856783157522595429092290420712538058233030463853775139160864741077377786460384242674369065005438939059891997045759282558647870318821252090114903533922945148786186385111036107328374107030256878871896004173363000395861722221790472741553385251724393217577406346164579106759508895379221045609276200330962134833201828106238876698518179672530594802337114782865562312270780560054600597338101051046658190961159160439847221480563917352062261877329541788812999564814665456331648944372518545593375818023624634734996004719618176147012733022493363582586684367542464015831600772945700799376982246035990446464385503889053000841631665575209874619083511652624850335987009365577552591496776391270238403893382714181641781100864762936440351788428446710626564483674329534659779329133281152197227069724528002506548855232836300031848194311319381458827635483871417865165108712690001377283933113104491771599952954655306757449373881867980595277163323692995412366400609663161548875570167302563171059308391953130481103069606276359975932075874331725237425187914368980985898879691546463687284956415485085265963904906452473594162685464126816679848827668819075107904904135260280593203054409196295084351818513915443092063720399540148466880777603810267702213276802125306435364696077036708877723712897689042452552585086475750981733134748301794927134295563770448016911785208954340686935295891140738116329378187965287261069498129768204612790058200211408921306751839869221799752169465688887037523091799666007925058530222471676290341306878591808043081934525424576498719115938808122374699966681243168189185841794435613168511023501735092419898045348604611561019787289679151176989195789207233196151817134775873179656026814261340116340068820539246213180844617620466856666958103161986282144966910971741799374745763764884998489163852662762687993061187653077560286689540668450480272547424041274239379270126970780793586114867280007048166834686446737933112457964308730067412926220428319178917021096038426677366021575703425871224374631840666547269314539712526029314526130740354733229018264418234316567899661798519168591732487296791054589766921371553446178186339954647100745712025170206499839176735882053941319743783733636021468366420097921043491072898267499622101961505889296688893781421888074731207511273484592014812407052950130737358502543938241241292383214788108406769087209418151354241551443420958714327872795594389577036337615595069106591697891297036587104389480763190634693031464477429143720001335420055810242191722643907124589097820908823444744639127282441395581444960926543815199736198481102773313112575160422977031525981855100312918502651214307867907724681543250268671707877912543913647915722401300225183595750287350774909046303375618293605717391776356746315832524872348145485978143321960714830053557994170356651692564021655116547195141920538414374381937365149970996684574648241686610033687341179865838256827938201668685366941469983696185785331988644741172426190311114081368729011577183678462366815008092969257630991245843310383015830853690586099021392651687359183179257372941285951113670449496900484612761288911801468983403809421726835138641993184438274024130088475572540694268142139952600458134348032014116864137363272280710752290800022955064003424655652139868515740059858199827022578215920637568285168241428654029544845277407703693642774026815290501148833669732085548972452584543234965405775501028525189730697383296036784702102119774826739155463927613595795525829569051467756507254476473918640898265065370754226454124440278289870540926121982367569418856817437621680323875990392425429194554879763105182323872269855210446533352287350650388282257336461412835021203072693411661578148950756317913585745552594900857451984554855771573709250246194836115233223393957929696348038513250527957047109623175332535418073414829843159885675745514720004578751288155189749391559173240139659842144145857295556572466551874369898326551497248935959421399675783924417187600825306226835189996497021667272994984026515029910017516528763182878627786007858507008673149415935004843455979381441298443717829943371261636673282845845935127081310589394415787621467990305979171314024743300022948954168602762858096654272475764155335910251294273796183739004905538165717903521520312390226731453059722841447160640752628156458077953827741789998054016031536332625646915015652796906752645573253586768012713932529239937636300140129540619601910450355241101806464881990220443007390073419335288505648324400788544254816140716537642908375345666828757219479760982449495224604413353152225719334483156801238955811755729815353874470136498367612325144490769482499157185412740528551153336820334440414250833857685254952105582153861399071373335905168540902707048092641891670797291082039642337171345172843116991564127096830902329408576081950874856415932088493289097791241693650982589129124473723495400913693416537223036232428992511427911502006436634214551633729990158996689344902748294434399466929342807540620278405674168313263612121774333547112662342881747123067367310800918409711631800102526352887776577002799162390254102871422888910146317435511477396127699618008729818896057747451549744498084555190703371288699766437795649198233252476653391034302655750959685106557807212417177353450676825105638240202581241937151357340756731713747081731348528613923696223978457087254611401717495656084280282420841015432609605399633885137179968591119534140084668545482131227161839969961110283147574422094684989447984559326306405287302636179183535414735230987974013728543154002314621783044889450254501025366006426090080865993588992411258891609404872217123488708810611366056570967311154548698818930308613990127688910494610906882408133338298015953384273450540358010125198673961604848236029606614833311391507568726811622283408330233128319790925442819202420052986952127311007861654107182555126558027726393160809295368675237051779127037708717689591255655852073124447853876790991292083628231165303195121588095585449646673269947624387504979220849708081660349379699410690123272002939243956435999466304519581338487729613779934187450941498906182804567998657709533819161080265036699572284329953670300353474525172260590590527120292489218193091035224485125158488551065092204540040262097227860330255501057356149697812993687902627400233265330527250077077994189993075569130940396213919149443102966730516203998269009806834957673341629387157857830078474370473036515303395007735829469844608027255941679066441869406319093982101924839882512804711178891677196226181880847785079637729874382617038239269770027948797379281495281260888224977873954216324280764660756706918532854659557913811248903792476564601485139996910762463585855851290995161505134118162809093329830181474105979321407744493418519133091819434369730875602622597181008855748036193065596527062454380733977344369059791413154748526110560513468967920426152712781777810878984902995242385264159815079833656329010597878707424710296570488926463569758366051569199561470560197472858615246854077572014139586182317753759054096740312095443901333830720762882558199820116775064653422160789447988879258555816707158376792911274473263004555503740244592958112443746824240580299788680144558216014758171151447912520758099190567604002974329550655265442827687113961732731134752642015959869860330441261218656264970041214354425490616005364099578428326361510529397488210422914156844547643374147673900899242438249624992235537574049648421953585393210600727999160050906676010495391716354077550383994541802910310211446962854012339409002111001910881132981906336876326430814578561838439244880500425036196564636609871396881202115115884926856765418510059035058716202912987021775502008588718405190988515817263608334842899732910936151996481679630409876919732251828684921730381454544107119545705886119335487189248734601844935361603500181611382273009843370587620701898921829861232413116491521837684547320204231352554561546768480033914466449154726926656927148772955561134759638895353990156097806921409266683085728078691434414693111709078506255112222274796855501656246778359848137645275426302178783129121378352587884677373169867148682783891589679753257428815770004808668069239282134264526611715601976560408117611685535264492211477346238598507897315587667701667390320666991658916364940213803950004262551389322432394513740673916015455211323689773620071130546440925119250603708417016119597329674153559497350271469202645424269610317453427507610814094709930071051814511881141924018329075939322041010063658766894362382776584596101080281353511501649360014039325842592771719719306572499537563760194339283764108802833216044229540325595123893843458694898649568059451106960741208890191151034585158492717747775999855110013685593843359778237511073329983612693107008745409440973287297171631014113316261946462377009469123796005954725264370076764256348422772237060082498725209646668402860702886665022111804498010615798197281841799363157088658641623280774735746651864464557972975665085436090077485203993788943284496639677205846784589128149168264721382474918134058236125115049020113006628113330590774031398596475541931029441480915188982091174946708709717911899702822230518080496879538642853349324678943945060984355875190354916328905346340534443285595077478731619174989455603703538009530299504008175858822383492267079229799779099726493335155279167174767485609049814386091826786019479207245232061807750182398644342486703299042047055389556754933178702339573849549698296046087419751683868056898490561277997322449698171140071795720308662721083112221850245438222400819690847740757443837880955359569226067016825206553258975074884962814076561120474105198948834174927971373478157239544800738735840303293619083997265577003189447959495024508089539218015155116329417842776041310693153151920808488767202619469298987160250377961165321705594911505669230470999395276640734375721677761197162130299114544040246269738289288160388907554355247023756108356379773119159320487376073569794094033864641779215850271544660254297282872544846038641168662263329616044116211916142117397264544970394332446623265597993366994035845208508173475265185765687326989744431629746218255000986105855792770838651095402990630020584258061291193921878926423040644977544931949052250685478540762110526516154326639661736240786736721537300952200165778639893312492732548626986817508561446861113721647044683779837132532523694420207796111187589979853809044694054210465089551652142479972448635620701336010559688737814444261344245739913514302048630150182649700729277987278014685928871187136770964603412115655317950121412129941267594426719634624261760392688926580147078568311763973900284983088544647886483199645607576584744992736672820064360501294777336146124589303437735651266542396498335063508011930896449444624862803994463491813212213236208376214706961210540010170652020722102060237184092827796085646556601967319402729522434087185866351920591701599493681666328357229701514679893598899987034056915843897235378643294707814904980197784839894875013962754547474958383217597662517750851355711422284108108425992906903242776932833726982399995002733773951230848875709535732975152213086754921584643227871973312673630126083728278693033034124473000587401239936149159632058898547400397645438309348951556232047888241567215195955236795257400941185995671881828832773509412019249734252703060795124091826778321943739815872357587829150920659717415526543439122968722946474410607840488433980047275240716089644828573300145602860777948251258449684565743974699612410805885950367375757107289016320911635972414692602902270021813022188264179624844041825834906293315769582547702303342124898721284847067441827058128851767484785897234370699925488264212633360446433244670426623585404126531396565135396532197334579121826121703926577382425286233321214183449423589775164869348560449097121193587858989722654423877600375272993679080624676958816262331331570334030186428401528117646759956679392917814787900050260016837842676940026977746943580448760318784385377548368277988066189215788864063980540981932402364832768531268141938559190765566513515742791075021073615594636384447339785709955234739074865297277790037966317908114908150757805506572625919739704425079149988223931508966162663934263474074674732273624176718455833571279563258959707572614116814438369806959612513852515642961846810953775763714766500312676251719014944065869820695095645375114978448236705522415996104969159675741977500774888860928472462678054898343286996715629894298943977690246989734515632086989389279739262213458908440201722864628391904148867241922801906208174924249479723419019372316445699770948373394621529235435621003931311482736309442203209694895963557281524179414527348311534555827911393579492423628612459742870789097764700435726935078213280262535454334261937673292869405129161460789375833143989637700330181802889479905612672651254418211254077539314668444690998972258908423270331716589402635681587487607108564592253590333392589334755374228194878913821521878289108075741658188349566026097754263353669282842286625648495948762261287317488770619887021748482560585583387034813543124763968825375714864249054935100429825279956164085881974077114317887259738066675539858641473321431617367400025874483085317858706129217667193020316883347834566647448158893397583049551618747323289168849161140329606058292294173230178688850513537375461208361716071463161366153912373811314989488021794885290303319554059330755560020185499764164616090014227464920187313761273469007330710903277226194137328181222169297538246006347259413091889502896082118828962453703306930307017849887539163149345328701433787933466042282750021392013161569723722851645896122605722992052825433490015050266541080925205979934903257202968785084004741104666303072145846977634584818582168186073333734617467426462175533866249058961731107433185999279713162735164758540161556891945935415150140630600395004632178168028564393322086319953350849052983047835977366236589182406741534964478799746649787099893063410094229985644766482436997572663747555272324690820872225607035280307590483748632402277707692234890797706596463920622425932649097968252770156215869296995659647508382941926367634622134425521550781143635735562679773573570706674328426814779111148585688037835397136464627492715445494107767851226544795527758189977311710646347356316682642705072115056222437552220582424078475949221259419338195275796757677153639799494129632420871930836209647408010061581761885607047838361910766875586820803272905274280915521140899475965044559677242168884539333771680804714756892070422199250600740830575431254890773903364536768739543094500326083155178304969250040241927045005784640473771560971529898407396282450358609867446962976559158069870887393033798043505654814610648599374156066261586314760550457001595669787838057897424089523652507654167653661390973280239312718845225249703218243571978662825836447891650048488105926167142973772181340878078367834140748095679700925198743215377951104659497598863373613335147877307035297902081072722912312560176747491749523704786494142648920505173264503124142495695000135383029712085306417229155510823087762639086907866111063549020752590414984425698114720268139950635523713107152391459993993779431623858285255428829641850063744684681271629765433690252280179778110852058125056742259287012414540708736367425704164925986536365529274444494492401016928532609950958541080106367727430340264932662161465975687884370014449530655224295043790723023200358010873735085317757776092346839216954354844529667705259084533412295950455718560201937863949642046508554603269797324719544004177885700271718343075876844318576152352698294752178169023491755681322235832462690032229525254342940607938068064501955737528185664297333489732557368561578338530599200416172363725765256326691421243239443497212688662588701842681190822485055488925028373915423016193970761965174585657862495181993595199512750290924188652915514897997378402598014018613109565833050078215092433458667965240832703358247204139659536502681835536995676840992901461415493303871859645282562494882747007240188673585737307083691613615019936989676983341891135837646054174655057286908259294440137142561948470768594057517108295884635789839653017467309229967606480193812729727617885555526616651675560043091552627524136705570560863820025259835225846203288782671531084774551921236477398059828063678681799121910086876006855274517707164081354237187092118966334335743734867858687646608532625601770855613090914436018039380406141643661340093970060165882194362635778322844694867779303883498946491556836296199465664728346278059965543050754829194596466015791237409359512554979209230760485394709229529569149960994894441110739754855411804848305140669520111742602962018360009641148248704727442659723253871984998839930972602423647486015940494292723692404538145320850047502718827618921376403931201375519236739433315128253219019587247552418319832234657770516090668569877350781442704252598036879170023266670088297719769229344038710579287427091353342080519973135725663316370117661003882507830277228920209722477488777345247190664343567313612864544915084962494868407994882778735280573989170031833463494883022141342670389938022621785065931201800542441529024600528024161059436616472583370111320289185246056863862859841806251163371968231559604669646270184232651508734557685538930219528482263518035267149476365446605703944410851518882828996983641373762394077287502853562791382459026304121552763136462371036775728617745810276553836563675957861433449038626811998921715712208620581680895049024200207609077213033067512713004305132707838124938254400226449101633617326287069336185936142579892639910036074055643493958213806498565212319548365720664529188355016672612717667786921257980018501165015600790055254276716900780261118918053665732684070487383759606736245912782742663263771686508683524320699850832093535964439029046802142598372892805724477025184084853189321374456162123642618879475885465075162914727451523842320358964983003038796372108429889808064432583586384792639030010261266157048715507321485659781918482300628688463526599223460346640062037173205466875018284201674643381393151991060114570644939015263942367899569733004781346822072588768404755987755114560712240584360440175217298617016612071835466285979537119215634944595235619631323350215836956121779009060987802833282837744915026873691717065397850975425922315390329726823812330141295267218360761592266249465352127692539039418882263241842518740723040135097711908928866802811146255262923405852357538654532758220678979034263790231416151305403456947519521549464218366189751202084556817650473382545299161953866811140564310977431689960551388856210959710531986516716729546743220189266543053405496297671449196448157008616601338817441349454931395909299763310087712351004316923793599028036638376123059240989811991170799650742546972778975521980905758355479487072474061439414833832188603101041707367143498003718848532912512216745335846572808196186402263914968386915249464057207877717726962611321023813480336138524523852515641029794814865736767303818532504286150630864891089879375324747630477778251568121741869882281821411211170641983951380881529131968864133018796612811143520869893281251592701734978154073816284710755254755458277309051067467420487630719888133096942736674623814860552177027630642054130526335045312557713564923338323385201215083037574730308006415699948823348110876605950458729726354288579751789179463524175356924583796391618529484682364560289577783697568044198273472894034815276918808959553406200788749032627884013546606477756010141642142347180033018201513176894111982807353620282312477247924776512608404287132707035689121997720033225351104629719315314972508063047218821903808529929582917601967512248800861961126512934974809087176442548579178204474790501776807054102392917692639108459815190026451449308748881657336570352870798892076040925411109976353364842170062711576603915261584268607311915387191030355148623390903439977583302581747011057469151524538295690814182310641154999299415331836986709407488125915382373183951060504418498404087772951068716383091836973805138904450811399099756454796663473665662184928857627833126236170739654734603184743690259899077601080557276598764823867012423669015631592540970374433002814235098171404333861765969645160872356396402962146856275565658894756449350353691013540293524561241332111194621708462173111127730248973053000430199169573558273891486470072807942483241308758231367918410294212747406372778769200227745314757659061303225662709592336866786134184439494570069830538699765964832304431144659754090983662364937809544904448680285068962139592022290549879858009522573574912631312378463458810413645815084789495458178154638768474417574012125877178906859873042722879854966544414680559457519446371753987133974620196979687988326534340497357883818933095309112344668564359278905404654802587956056130790888833411543489318385293941603295764376213281865811310233236988025021776009013424233062949312706976891794900523960594522276637813546056118951264688814309228982484141199585529713348801085888852607320400454740733024182333530396432598525140011708703568756057766287355340149193796605027073525994040435064275970666882729785224683869688215570822614823638426477917147340957916978610411285355105585590134905023275702005605059529414099216072115658199529953825178972834852737139284522204904136157613091597146440478009156654576139215013579009283885579255052698307048655114232848963563891428183392336905784250865097974559952150498625275839763860517822425422817625664638891135575452072102928353981374221140084111475108628669015523928940583749023592251864710570336942828412068579042499152285501060280603055453452833029897442600575864310675162108549025140441312929624999370246867122656643667562147698506372092008270236436279697750125584768932029513257462140555890673146772530953374418185478856307995176366060449462767174918063712852925591192258325186544070801711371441252026362890782300947376804906419338603225453958012463315651742042113975342321744369565972684300620248331703893584506321399459421821976861915191319603727305644072442618285587483820076842679617767153440967871089316085439257851653306021357256599564810633262410120001512220746002486726626997480825252657261545686683354086692503189523666226770932403580403198908941696352736660301906208832991775051264967213577580964516475283383907696346115930896516776159329400357483268827774781797306651220916015202241507201359829236350149304416656183620326784492170701198319469667581535783874476793281820139858838236809725209424397157159201098879653112505431113622015060871846690519633541569222029923661571374705031110548850403193637468269366586712963766581439067579563215997302907094094958621343732045186450548000232740847984319351228997668699766437978925257610197736541371070364403734943333395634004631499842665886809240783697754259219782997759956836908450875353420990497033703855873792727299960956900683413647859203702793775176015611829240418656998407110639785547414122672344223827497266032962585539042767810173497291918614551766309062999187700125997875771641437499998273097233331158554712344479309944671997122190871770998231117079645015316582248913546084184311629248188001708324802004706587673014578780904730309804301433019214516285245668559235127105441455317380853142946524066257301866274386586362609711242250183869133427550547659556242485329645230059862427713700169889331971604700185170567679101265256015691004398746328431074307029820357033575767736902186828393016010709357866624313687947529689258276990294375674698843191159994970252226386339236094565776802542147331406301292592288313078131505309183275533573567953240489296084720451092709139566173479080974225460825775767492738695762530237805687846463525358838457214332872269754634302407845712128521334620656727721617314168480356988172127010303718734931176085649322366484190010752613229968944370021071698657798804256029111493642359347876214909309224819039879966248893754963864177890878740542121995741826267184909388880232373764065514958171228690374263500579797933305279590709494815356469849943376451874991564879385615456119141178374817600910671252901854248728721463597708017415043008570742645313433552929678222580127582604004648156607936457251592346217354766657973970246264166271859942090572689592744628649831206319744099385608486570984986737752408916941229010865941071330867780745413759139548271229200078667407964029968697551042937608800482187818866275146708787131810076400659916984207784049267056726089764231715928605594360642873662145590926020247246445668837479440663944587785217543838383135771050893253878683967472298220123329084980508253223187631773981208178961716689459736611799359894352295834413088234351457383671385566360947578129940299967193553136059921891933774989695256244373310940943963407684992500995841583618595754314870687565035511472533641684498931432517830665672480298612045805155198990371508012569054436008360279261345675154123692313718466438100195572652040302454225797452459713873528322033456678232843138382950096950108126513531819390496007060869666594694626051455099155927186332182357650533219592901164481418357893087782489492446818088801299191976692339371223970070668982919983741840994156324240293652700768423316438106348284700414454459702471338733395647938141709898665474998777989679503214089797537444230617354325369817477174758003808787509507296331908821062455045246601731798662901277107088627198748811907310861706573510512402158362465846638971657897767660617371305202656876269718127130740540601002762558046128604203827288798588567933131516178957334227776614845449074191142129176938292753172422307072494368582637441832278938698816476543199600987716914182639082595841610348786170788673296259679004567423377692826497634306353369861714291759100879805991280498609524950975860883556039024070489551340120526554355725045187031893677749127817977153303211123530123997271016949831127851027070642355236310607626623475464485047422129605495159337527864308789686532642182709114627505239110441615609430647210977475607441405937279084605583578098971780386162353927932338377048581582511885704329976185689154996549804727903089167616284719927114394741115710028568305228858831726956779896560708923383026605833480860141958511343723620305842991247438330860686129884624993729388385354996477392221675280963501304201772490091351345482379206647727542140154106012886596389694575962851162940408880232828283913739559313754637613706078929758844068458519100746983819186111299145356670283681295632716296284798816445040447700177312322922196536065231111053447587727382621235723962779279355793452683009198256244422671508297359332736919555378236303485432000914533440733069735329418581039833692092289539285570017292099306512205517095964831533933603985478257037014555165703921412200730075484373916483617076192184386724499350984363769892315521029630352111137645213274585474532401736728814304740452968226037775463978156963567321012835588571038442124807252020535094526929368616370518621456703529646648110380282124515756091383967965037556609084284436528276817342637912746924605648887653413594033852898861129961203100037135769919872226584786902429000895586769767686140318304652147835386962464690921581036474705132418842167380941686875242655496053746613338176995261811274655291765448845859152409499610779042560012015549055639322233300035488172512200341006656790005692837773793428562445973296240015538481171165299073659297122194335784480182539087382903977165714604461448749866584400816905375146010402851475698020819685437050598423246113655478435490462525229170303920726544407017722785582830734478102437156945162156889066845077437328258797776070440895082372697004165487735873295830158037194448591538874611144558229122111440494787758484623024232752496507962941408915532086176530538982158552158211117615637166341937457757611913055548025976976794613323735665966785073158752216511366020965501520795622603377116495125210066437943628621650391383261511938988270626268959621012501406314245579177509805320466762655408738197839943958583478058084744278620886237817610386400895358133810526718143733095094822678413035423082182646714947260494612219715365018881750635211909036825878133404323227348658507507026936902111441590196315862102939681471167266504409594985530605904039746776926208131275840529327998884424488170420731001939520129035681005135646652969705570676600713846911535343176084736037110617278713457346310162105179724879869424963383940241543757443142138947218270816051154489097698195967728843960810266024861113225282615036350860119092171422020427668392107948637572496767009853192161498841986687240291390486236539432390549479250717746544612498645610026936756259857533580820643005768610658144189701580228283195001757569449754285705747435640343264738334225123591125648636058433223039860285968410988464322914234042627768827358496629501689702598079566075715118376686558165184695269233628904574425280268845970832964659267786151247736973012818816577461252950944647216075439920585896230001731129343676182110423094000470256646056306045345489811903683910142107631613846004698633591836595102798872166787223417222423614209233228906404935478579760841985699265247614966873864866612423204295075036029073575153342917010717751544574562794992757638203516949317766341372479367697407888508451154128021049915456231861694094866564441833582511625428361435558172332650910529353400726554207389115251452851630451859164211790136336641103540269073846492616101258432456977101645696414525192297139408228135098125205276621439232869743301710307135842814703458566595746483123773758212922899059312120538756682097465767243015980514635578174967845955092222747567985985031120688102462735735680882876469804237097163740627685680426199317287794970287175070067694082995148511120030460053880125560525395348024711666532742165711231607755894205967406136377616209743194975459677349016929445040823003073499841393809153136357115484884319620109126901765015793071918670418990354494214112763333794477545495919158162405883526496070218697049640970336454259184299382403670933760536927178904221038001823978450235492211937003245070269026484250693640810937810080193844395974335452814691975228631494986021028196033966073649721179244233918533450506248022285160309918516986807013038361151274801351174397697654521115588584671544879476179167892991884564454539519853898578301479042747874325209015039157809386553785974996625359905893241077079433169578591170437220097385418768406370376790955748347637448286044558284818672515289774726150043090963860054636928754256329448354807189942904020757483278726442638546629074965655807790130026414341174779767612948598682804141381325079310281359271467228220978672277019643712618104959706163571774581486614681150055665129279653103687711759318997452416433454261511327405122339960911108135021115314666639236859602186757532753020638567498906489508309367354483612945242809920123021524095728250034710519281332742344452129190917421277375667610082602183110550732969338212314857738872939558479660726133887797802285039680897359837564081470052881429524812203621155893786368236310772658460701515113324031354977346829011243194845176521091251181762767893442523799512034231480657138458682228722778280221929253379133753725680320295116271893972863462920399324889065202265716909215964688568521197401507593014784937752225184429539019862731030265619036462422204319224897039987972353187180185704575835722637253130046761341117734226200887750665825388014954315403371679531379059783140765502863096760349347657561318891706938609028214959003118036464235254888467782723223130878860600273676629781742332843178096361903707342008998276274809409034141270138614049361084679332399315496903843343299605734491154326232918959026014746813489220877228555596199859905622634190419326877054659724814279730038152819392879739329677894303710913976873669388579884591837734117229879722537879578511237080107476279757090722739717170245926198298431263580023464230852223739554505173319563694760883350012781235709111004497337188287821589203619203878099983971982690208167618628665561698559538130570437198530619061435072840502220118018330286225032924326727404147115831437493134716098406937577976842538666460539089900476386989949339099765581627603312740549104209259430773485185204767841644748861600386778614215958418907058261258319150637950526408636934321575797157120337137401601756078025293377747010416323536518703980761306888313793408230038983465059799833997991262830656267906607405860779893727038687521120796627014300325144780138788472980684499332266199073053352423496583014685627248250992640774832784845450216403772718086239494305771047570702147058679589047827449723528661730933255036366457215350989360424687538414710614463554889885347043757529988411161938632983175728316697028978583620766769914600038387114028660313789686198478600965834335751688948613267467061904206645993249341318040554015695259170385588108565825113895211666884458652391592323220216814786133191197389869038725523163665296000344801122354320673920042522878207071818917376384730237803863860718295001051904497545665984027075759449993004766013988362077974450479198576591331310087677422958061774390977700873638756805635586971904359258396242288470066571640520744385121725760090052506419429317917758669117550890148800804339258711659995112534573087240215220531890641335306956413860100008693090549345214497601924603743808297798357516510186772266971858593579277457911914631526837523630545681066874180225097414445818598538519160941668488956881789610909090297990471699486401101932517032600056857237349522860560731627960795413512674352416891183063165126947780322401184038745864710900617475270675375279876910826053789660138593217900498638556986016888892104707279987179961145057056237320710989382790225638606578528368038820509027592409472082313822905091643598200243214205594146086605770549746991470022546289968262004166449836352199463519611546334767995164007752931166129284065783345870687323610264132761122689518947981881596153324647795945808935788362159280803258362885232518647550404314255226306035998957793600952112101376931799958720180857734033877720470371358079415175663672467982870298399008380438988881891318484719535825862265711055169637505166737795765911614415947735159400780650672656408089679769829649139845871536845540968050716931664411676070562560727437690624629117325291797422996988310183028029279376398565457606504231989071040343897378026559336041149677972286430753325390562481844840120148346853481063809263745872898384976146942451836024578711299385723722036383222873812676185519944998620577187609796857337589071594627098720257039217424377773042547403101203286990785936737812954901696265415028352561492542861427319617338455832986423446301076327188434423463990626793838642205451517520499963889288716475967129659085758771211596446043660064448566451312232550676394225796699015984167881119961121058306843615961385590641801580431508211188530957351532014451213079215159587644892879364226229252370525759344112348449091657805762211244762037630090749985051637111205270256260571643022933163322932440722985238056209066261035980310764595389359783842600714767781292048671120069997958145497690202423669144083666022093417625319780340444909844952831849159997608762087575329665920215242770179182199884772924387875192267742127634661513403549528837492578508757039002496202584211496914793656608518161812425574987563122800017492747775342640767873534335670910436798909048369917107185771092807104868746601009770720914186453677049561443187262629086640278315011917730866890312401073263867489726415653697814035080010324622554324995362389104651300585185744157848100458054723162318746334398098533703305987338408054083488351205033902541448140854349891670721067312156186614451605560239485721936627622683585936620143015487520078766879556264023747510730491111625538382921945999798455484944964719979548208406939262171110275843852258305966169350064644413991345459585044576870360219339149114359315727261518837453565640628610343305784564086895129362853822716104140932709723051391672194707651026765631081751915395623961252906741437695976337550827401607547244795955869638691378737197972438416377362722271144442606353690888437478717372121666559442508463629056355656715656754324707041841962687037919115650664874761277413251263832077233001910221884239046568619389595526759854025118606456637876660806489394436787855881174658781160193580600408322426462966242886843737995589137867805340819239389887678104562209842872018284249058201450395823220041043434024763133093392281835989019858498558770431780681590480976154984614667600248152315270234462763796060209595641801271801885498110797475152914327273529261217267015691008241556838724658773791382332255687823349391760691099968055508574829195195896580446274910137269961738152681824169340392323125178110682684816222951587790158719621091435530120099788642475028902971310610123633799979844589026404066342103379592485889154595610573869734909769073057804431684606181983999592932989046263167026318834989391125696791369679769051657235633549572374398819696321583016313459688709405864954891731286267687073279430293193470130956184002112600118656680934800641109223182810127364187127246962477423901619682765326974578367859232629029250507898795802741441026296669940857051887745496308503737338631007384595790688447964699256989425187254834123940510528643998637061724825072414133993746981030078444107410231538827304331662547542646082662731967668052135741648620851145700348708501174826139770152403950835486571875787244539786627282155554864840464141966050437004947676283238936982684405938708802908711009599582455822100248862099141029557610979237636259285664445213557021068408170726582612763077029376984859480378718960542571702657407752652921620505029843347762656340822841615017796686618852178028950821304838286533852653314399232314922711287991253966439713170256104417474485853432191013024753205189895605499686353358802236604556147095932991840888478823180486164977500699510836533422025594161017843372158502890959684286719611986160593014022129695882715056005932583774135947474444942596814030029973008409618840109273560569809510514076354959347154208471326606158959971990230072990420724784262135627550501540639630239658769187217193277753092704142670753583901391505779276312439023054396250604484288715785976709567718462939237601011841551676195699766657927845551980716438896002675987981198698790290624488456765685527700715797636042007512548355668101303221696184663634024886685174469875807899647598539472795909976572587741948825153775197457694355337616148276086934061281475385204917031108883503407971517854727554050652732331450590443485465936029873255788375964540158087576576267781765888685567445285274404604613712323923237037531839920799004582681741939799031483029349103072781520978790289868212515639277164485298273735822446750737810218090433758281924371239888493888558031090205271515264570915073446507328031343343562625769143529349399292920092695729865469308122833996010107996700338404940871663971929002343026153134853086994507394060966525584546851170873361481867108011955200692679847592246783689824094320755368075439930926372503236778881245716769386117641310864402468827109613771869870463433801485564319273046056358473408288863991298115552551479298014278790402320709458017436704061997226399174864506296623153249798350538600869427361100888015751859312030313575064066257393827663630068859252106378254535271781378970407846555064403952740075675189626340819117177147581883045593390903555247392368658357798728334657462645933127631497904056405246046375565826262092476452180620212757070465064477907976574450133398663384178486331433987486776116148815025288247855253577382770632463408003588324171696439057140923137373231561746301480763607641445276635629173662750629814684076824112342305937645100699849491402886959354718648998207298205064640945939743076566564003234380920278838439264572152056060701923608329752119067704662001469648594431532272520052784466468548999518382609735214868253052253739764514528784418880830169426860911899612474888447081255159680629215422466127555253136735240584767177547535376952428136294207766624782144972072547011189999955559205551987942699617400216227468991475710731521566216037840375997879696479655585737515964912984559289392334922463308449597636874582906203648718817294512530356774360590346635997241552546924694894795506499404844370390990755395693104244647217668269288891989098872105622840880427361696378869426057804708492003456066238086674182912516535107648145618325580488166671348803479299827713014460153161755440397882472915554077538757648366477297266258683908918101084033709161471568535729159264456408678466968309992431247065005327961059479125525645323925941617520285091358489703713759505094104456517213532709627282346499913510883658546589573662468572381468581114405274122971913457898796915124944325971629537373606130456281928976556510130326177523478124370626443528982419441571741082887140769096813689694431181833420848887222516551879337498968412224791478156270060116016408222844007763041513793345550416384127642634613398059793649814529328940615692360343276837869812258394258536695366636223668704615604102749487704526812597691126516093105933619393599521743494072247609831061257145293684748409256693003223138010142836082167744943635698330151101346689314876570320098986458354238563279543730449563001677773862278349203235198514069186907800369427262764091312129615458001010678152207407913204896261330273858692861495650599612020456702798524052211643361515942794191647615826983298034480756360283418112526349339706307628346222425539819705357867162263992315234171598061326463324119722211618424496955282504933112645804222808380571732021601271639069429842389857634517476664312353888361193288029085551556604618693267187764648397275365134057716112396097161151439111726051881543198594411322481426614110307855016522284431023538323067302749449867106813691830997669440901294187233723846001745640655070705641229793837652203059010349062888146955136900223293348870300528662533468257916885344746633039476119091000834708079922055686559137823741703475253591649354820646586957660420692200640855679776795504702468069228851365590885022593420812863930541087483179911677365826448803907965679780721544326956661322918735945268464669257353677949229296464840200162522090548531893931247424892706977267821120323745102931081476839950040409234127829774659795791968963429426003085500155759830746394061805990899613905197091819184414178402945003274112154799348927853240781905334293398094821384607408580459891186615243131746496215490240395640179020305205589285868989896172950130288133956660703892975372810498309257106057252430953561362443459793378497188359237875844464090582954941445461473023814960688710893950143776972696742215438716543122387027581855768807584573026886787390854464865117525205975819988804047635372159114412392813680075878939005046873244594106726534712803366744562520854194603380596013089735041497520185698023928143392780688698912676803978516510209962513936709681782934879489004669778789135529379136293546872631859177596847344261578528230140392349877550190360581213390580117917152643346015958286460545504046579743934993256073828099183299122242945184763895216355360051171289927620103310872739779147984996812581784883272325933099242207704200001708475530163025770005985437379595523007072411688727747845303688972356756387749679992641278078621264562058384534979072660865128310830438799911388435176148364407953201829658700108564288343366474717343947745717759110462454660795910106985783613570797576928183842397661638812838829186265649341795011342216470194526031339389072898507583165040151298460611541307954492607333090746259248487726982773397961142661795016566604488534520277089697616415234025357551075897944711943975762709284260303619970342908443179387598061497068128911480516502935133965870817961435729485507261857802530046628838518614074603458409666842283708592242430349291436945547413563431524136611096084834145085245324140984171248329857306007059734697063269702024768497859341606680998554089239497673395210711253225809634816414843724876049083152962571954637816736171948641594488891051206223314906970378505430110050636251379118406853458897935499308671261925812629740632260008039971007944617975853761854875446174148016510223999470910963350081337397082016580446103063322591390552001582764545784014542757960301982454882654505986492141392382737802109338376348199672923891611103088141898786138789550122020923324000940671146823444294582066392747105331688736853074851037361037827268427020434481947499604715986578087834048470047589056261785088927279119853238504678548872220365529497311051898063564426625806997450923977135362011695633508662919945617049097638153356892993209269190350700377187714953313233861172811173822116420247262650060724574909272052324885863471158028402517336110979845759068622817137612805457049327900990985189165704193790717913955774403798283353031113970890833990032025108984201387242537068083541146669542429483852318670096639740796235722849364254271973754878619798765982989437592457842142134900621404461397794554653605998897022177802247080906619926053162663143009538689354197881220495878615806942235042824585725627558830082286037740084659851673745394936538260352905867224045210127835172759168959064696012896717127104108303659471976339054216985928909101255515080615401636416297424560606105572373858784959243992148725962662768482454327572737468289769222511288769161481877614462224830073907547383966323179077483806747464403462470398134406799078778998225805709903387839031755628450940351452582502680624829446063919682031759229457868715856329961480200703706532817429902687421618696170465833804947162839774661796335802293836667331773609333316180819590901540506854550829672264576578735730511976966244737077346961040030476294044342877185272772201881760550454521271689542089806723994028216897025648532979807450725554843658022033104830690949306009617599807949699367904911854623821882316445684172138003301124294129473585697150676784883665801033151106636853974814365671916056139932599407669309379634006295620649765070398506845448631458285235664217743576567381631950577748093156463382975167658464238621972051868900231493379884106308938322231804310286000473146531781865226022566705657204374164643938559102764707321380321851567644271800124608798827409526553580501137163102363756206221550015532610494836363565235948153357996173586942678737187292246067467658064075178927376897898173429804845369041049657261411018875083537367994967462851631570954210056151996736234212592562467731669944134518914416349457210343819043859235341964849179578159870760271143993924373503649953507453569143300536418523535864470410416280723802721315595587064445796644994698251742162011610734942327349854882816518706781110556972382267475737919929468647698502505802088972737875410744425896040765586813295745604141139690031647724781300214840416402136410475438111502434650899605952638270709169274144415588791802205186305487774933181753086138229214030254975131784577037419462751656840273589980307215706048752538242644675014659460787657280040747738864554489533219928929146886821517882629407284762068518776563406830721271833398386968552881720035357126321201349667852718534727801079424456025748972675208503460157791156788209846811723877539632166704813651061370102275701317170818796137809889416642549558156780361136047365085729925138222328498384333665037002865377452943024046139765305975545593794177768400884843579284402710095314773461328595361733426697568399651053749448880091938929764920962731824268824984404157142681192643356151933324224451133050409566081953038172230023923979613266934650592166170292944479928996401194316060351972634061620377161406975411082150571170049416433052127367020395055681205164554296361430760052714153903865961583426249465629383751120506287519515919131836925048370634416401549135879181722226728696766585987418608676112956158495687946432266004095026293524474086529450786184957646573312082115628130814135822638897941028349377391089056521826339833173979407096790786377558955988222607293140893064604301871978245923694857658544233485252230803030647317831255752247373442864310268512686705971720411624214375845938585605861441266246901816651455618944447352161413867533697042354413502469282855188598715690747899893103440107180447438059374843198734298049639572276666717277234352602951543940284854299732022853931762221554736514874947240928101564685379659675619134381601874783373667971534156478159320185813496407855025257161876480893381936619762148709188326809328005672302342821881061772326601110867330745911204240679693509987932979031751129763772638462703112803876599833111213253176486308854537971393828981669016623206332873028204820622885944479803524151862178743675627680342454315333195759286899192092561290261911414851221025449379897333960573205205184827940396139221633591678986058656887109202168094007189942131028599674771791200991001131951795913200311624328736473006266501569364258363552539191725344825008542020994719927531056189466122797824675485385229373304760855254421880311459421994254584886328525229938446781167745173229743037855237867449760857057309740694392751290025489795515497142280696959191114210663425952222492237471665465677702172659262434372570378941356453067864976145153174127562676956368805580491007629045068818741886961288673132847804455813504480510216008418516450298329420087158960686700811317662761489344767871418097391938866206191419010861962903851575470587740332176746157042427659071643497245570539044660792016853389305186003862073406405791935143843146460852349252613539940005256779492439790902888566164230127115250017869868828095717350079114861359934912364591933768293209071417481620040755214339467606438133845763595200795358584479856645510955888483188862337756994247169165507646893711627975955706490880888601576540947418716490973879048688980501949395717828956252126820888124778391141606358488003427542368587575694692442117794599288429750366855057828657014282076589529738598335248730894053840208210949146717510471580587441565589789515651002971230406245093471056113079095240219662336588079540724314683619885775440973690017330523835516174379233816730642356445276318263642500927101558719232615505586584400867686323346457612284354287907659389484849042600402357751989976979738226576706669573680801797117389941658754523927325746640977821894894773339727203892621830415011847787693192482722636718775853196135563722215750787306281209512167442522896267298194347813179815697269517593873621789579502852358001928765490684928963209024406203703381528903584543217034365054661667787563898716935364983655448602956858712035348435808204124416406722158180626873131363948276337782088358733510289847166789018938196161125264740800269733880143720568361121631207209868238073944994408121298215705023670269618591609139380365346523146486970547763324855409934140635005183376471304300978425664787797001931966456343540139051465173268600546728585726281782381790909487986200495354064772841349173496755853836890096970574759591099558606572841310729292031663181420830860522161369726333043525098999871018441555456204216907050162158148338415702195349709188802147251224415240470644812958715721438900132619179489357920263979481707451928739231327981107521020902131691401922946771069996968337583686951102088654247481372093105174648431903972719398186713490094414714807049590817031459465592585127027731850357121434098051483040095019445191676035242713018738735044662602027745927694611559623730368362873969068130996049207714087961250626330564599351316191359717615092869652695367729044314773548611219400824452373798515863455476849745399248931480458023654110982260462950154423551643391593927926990060951698500756276729091519449273741823830006276548424108231589139911794787846145882189902616569067784070152536301447517965420948359135153660196113410333040731680131945585713706481506949317701215726886807509862534607663540412115968114907753929599100038429191605521332591231687311831489210591816751586619339129642198195745833054178242013572850768592113226808781259998398865907080416743902341471794998774024088097999497694682308683523657926769786586424835016028659036062132338139158886529337032875713281167867535693720028014219355160473972101632307172613962317295577911363104349570250964992603300216158834975597978282022633750489328132825865068895455241882892530977823331735153940435202598016824799188273471816693432541657620427108266606721481650230704192194552202590793043388287922036448065949740251887834229527175859392720609579829639004851612150164482865992147379203270047781951192612036224805860756454300063992482825971870367482543284157364461352336945480646676429663928164776734573705742640173273268527194213133503003737858267415589149212139430713653595674522544580842699725877562065775046260406524987338676289854937624164028858538225940829478623028096758210781994533966514615523559770488921047602513018805864636650279095992999408367028304629053469319412248495427690703285223680877063201008675078206502004495487497288464741512637935551077574165410670628315710268110778837092187854216894961935481809907932846788862469686344330882030821553106867977836427443407609794843778068767899260083130910497622057583763571934773692551227716621190663139685272915932668420800480120268187934361115269783020573577332726969925071723017016421100919671308257398902693876171849200874390264841584872801847253078025648001594408183614298774405758432321131314923140327258793267677608642361802928189233546704343671008478085521059333127287478717791176150693777247272470626981770891885384122902293144972289538956522937877485468418805366881555127245593030726495446839176113135742515491382573361512107002714267097389113941359301185011310898572392845779065102035129925728322279640659861809155447247644680678172531993161075930147558151160539220619366450249229340731391729038904822679724014146582049673518568527706882426522705261932095097041225449773158527379245240760419593104470682675630910224040050144812061564747808727487439909538058551269029454163792431236639129071589578098594818754868658881992407783223340301363376159650039772547506993197855246896803642929927305577355009242489202039151983609074526548902776300757764866073958415627369020766439792123456424754961318649762447694158270559034539549493167816188003369991506087384937759239472077593352959486510892618117540005771960254263298437329260027930217061051965528488631768281362354525168049377582877967706883536762068941728934641202627401890330727178419047201439130659815549276251627628536675686406148627036443940198373907138429187401704747609596563952338916943298202503382578790293215041298610503930809283961498781603791435589226194648242591479992383208170059672958620935093706704385089248600088403533237586068336657004432939437411376884633448336547464925683312551722349544559962211333015588157156930467605595441860639224147756763779602085085522737706074014952896492853239476121546527592986107756092676511335641563543198982587911848142270900683608864219569603987651053400793535794105024990334588908474075531662751883907141384478276119916694471076652143450126326809763266477924863260532737192282831259489066009459028617942878736451457729436393452607100522600748508257122822541362149378817765602539239362726224207503075014851691212954297341648765141034053946260800804972943863023531486015032108281955471157703080960768232338108667687672862567122561090503819075644991060442034460669238191350979204341737820688353411354941743213793721942243795651491114772143304101778902362823105582266918258188512430340890595931154380096943923864820191440362482645610748673386672628433405771476237936578662659113540350099986005541500779042888551094789048937257770565892340216158580504504671231104895968661607000897496031522705932666844891582817133524228108457208514878751050495873510798417791222098997797508597060356422473923720252613952760533668204170888119819843069768023048103577605348137336397586783479131765009756301587459220261976408401989447680533743102168031656802169204571992001099944506252348305511783626591611234975857943832951051160180608438589377492297855157678762193742427011019479023638149647193115521787802187851544318275932487894852447700802865057048591573788736000572165872137232434082941721458487334687396450974718117504140021121850135389478195645373307814673656758890497383725739829480065334692430805362334427293355539680628986893158860608437789335924190308131195674201028376588559571659289486900726709863661296073010338053686515415407655269831473346366139011023772600430992887342696124150660579211435816311385624031438713068850737561646265737634849143876264476556816746633511997801692669897439683587576662084087213651785662976181082190066624063110932639234414998336900643621671571169374489587616758033021972983219018278022420867571091870153884994921253125100534070103814959609770593418982004122086010263302417982311872667343125715675988293771123867412679738088354063578793648215500472197358062436588859160636824631923547232123961515492585472099681967002819091174435431986854460778158092417468202783202087094331776894815776555137145085651569468065120362652203008160219641413035448086831057340952241286759378099493315844302442872248480245888026435589525210182259251203267358465452468295154223890240847873897369408972580307520963000995561371144742061948859938095834680729128708979638074515564795126215712981938054651914177246748528037320064762911896243242896880937880431282705475492529585708010657777181156155730516999830308493922717104139666956687689403334789696571379318065588281991235179829535460721485529211786422190660870680968205689982739887580850943543149459179740653589051765975641283139006818242375135034793632566772806227400562302283160835580421198160157127887808029987980926277172435935799436994722362667621215483528769296789748788894188052279880939836040920488579141655005045284503257602045990264911421262399335387973264390930970978251321472240096238941034996413095929508546456076659862933023891195089256552696259640897579258879384599377259702443311473205730653129867821784159989590456343510295051936925404971683756578037935054760904007178417839552023945899791161181569684572769027720317724523293134562194913697374038136928969310934177858773254016794323713401219408197823780405238675436987383004666103179266728065472010734605335420713495470614736334556349480168836821787920195287348830036160791007583426225046816342136336755186354262606340477466406271396400053955001153015332806091162407983291869194881748406008568314624254153648865748951645703879635755394755016873819438703582314032644635057294054174483906909844872683583874089744666422375501741359410036560234704151706408833258134664320178329396880986732754968317455557063534093448275527131154375569847335465428015251733615112525868339015156088112511663450847328676600083904116017773881231430578076436446326978038575464707677632282141831283934923400380688076731884100419697627513750135640524477466357795177358986959982728261509379862491344085945752996721228811445331977870313533619555559986251918799514318991349512773299271143815480015993146364346218729653295296517898664916988849026548590594838850204253569765840405222617026572778766070951206963092017497653891569339058808402969521292196519283257942950601719635451965141360602481254125267572042338970315939582961847411785118631723975416149608331263160415512472578202027016220288378684272030490613189786114839403553268167448639218228852156963031025046410023794442082816945816740876832305222237516827320249604455841544161872521532702821418592280820933068795921393650625263943598029675980306800532522605383012846640851228058538707579273231994255291364067454813020464263201377241943764546128360390710444559463461770019749306816788412575470227465835624650084646814656237936290040418604447680271796508615200839286179792459413212393952206912162668224668884121845761968895681984103447344955298885811157858262412591757526474919311028181331050974417994153078405625176688216485900042276615609340680999488153498337849081500193373516796362228623932705334571921429903212105713111085342417410228219345455905562816988660772796694997862548101285679243815695058117449812234138477977343105490497794871651087802228694114658812003262012043853307597052102675135834774459851064602244062805008613760334011540012030089896580117804514994248829249673093491665702976947782915508296637971032255037838958751965636695704538292155719430803377481018381594833120749599455325773878490933945947075516978064021421323794768936236471830662285892856275584251232136607333448412402991556315046236212636029000449107011160936896065610049048657924717213924701018463140112896001781250292508116302768972031988738527864193365818201171561314839372651702583083060674822519269234303052115665799585202501330725959972532651513953285879352196718245502370573273702073731401882319044629211594869129972401353035558174045838449801858137205762020972780814819660892721322531329769429443186562221847076939119928634491263357621761061778390338083497318994795255195058726567464904793277635081370015864032584769894369633695068173493243902804821149493708985673986985205499710987746701128606874941450069974156580117525828804418347338310996030736321874582165059672338062391872734474211067319554893012707225833727006094479298630421709143225964646865066946596315988152099902659208277982961267075187250859091266918151013786218502677953501073866832067992077077505242639085580220165540673755453063075245001240099565119098587739801912094087015686848398505586813041657526523384345144174710969629819327089687281222615540847366681650071155870818868192166084335301971038347989218758802494128508287789953766436828259284165809152089233057785819951060430115538532205129231768691511463697301875775006315891366377848482991194182114906007239104844506321110986977538921366640303072572993462403940745473157644662914188857458171482082504933523587948246907450543293695410775717012710548608679833167752299349187626541812441958226163209028294797229102213407096959875757907555010994187003987376983777485374262729718648325276526306808085592578482893934540676462803486208157328913704302957979317867167304537602855889244607195924693982374175380829506917507816758828890258803847649817395352826676157419507706520454549956271329545565362945622056116255772265555535905412060293244406879915503428830292376875383301962617977932424479507870495245771152250348832164994360287873388395014404974534268233523891576666540097686843096448677081767073355709514433527582227786597745786033635344437870784296454422832973042865702608612507230186998394178971856028925927345011224179404355397683767733890737277299200001189249882797485566562783293845596346267865293346938818284001392392970961284890309078127409803299328434706600088146494720180274794764560062400748042648865866265571489183297222440137967705088174052901449520013387081950184531422019127424434484016983566739597089040066344957897944951020509882312133703852161329918914337055280475468492106800161476414956204337938150196356357614639281031233191953782994748838952036648164516320039123607669297694207849336613060296393026575693624718692186105292608533654066907284802168691952027312179988157663182700429288248664818417956276881433117430498255897624635069704942691582484965540886726418931038625306128162630062204074862506722085918438246084760796720018924842885532979030143228542025903040500939207905707188843161075064550665546858175869025510050607801772527456386519107472721999477309788644238658319488494622553928351199967684697239656676634184691617329819259501425122410938279476388727113440791899048236042967089523439825272709167791401550593556764676003669150380490116986694201093343907645302457456064924621967370580575477681225301153715996048461198055213625104255360421962846222231472748345550348511442491866253246325038648220826057651515990452451727457753063025656182427882179302448520958217235492436672400772894437317119143684153685953520356127741011421436553925929935567911902990024798389385686483833312255862909394405402746128727770554355031138870819794845486451520962772393137443540139544906482050732171372693000859453838662021143538694204764248983899149104586302449665580265245192258258680442763860564227598174875656304400476956763287141343372199694209602662862638517683518492632734494694994014619160460192296268061882742752418232817896536531068352399675242500481018701250149088571720245164492922927649711462056644258781592764746015881550035512639134317065324194683835152164954111153609109375618104618712126850410748118750568631334484916427891977938416385996670879656206448602734243904422909266291424838287867610314527013852106587298315943124951640573203678518428540946698673728454610885578838280086037706026846381453012538910125390899079896295147642941542075663681663574742961756721702880344408056660310104945832189580969379401841767656816017355017721340194206785779358021582081042832825884904786803928721253022644003040281136080589697950122367548997612758682334233407816790283772388227472797389023282339928440211108707972155315496860127455494598686436682147706197499702659217677751183333589271517043732635046546609175910515344210434587632834964330527851264425141441057222838685330418461087438593180717305744660397663047674448368332112417312585519726065160872445505382356650310614462680208189290910814008037071370965967772765184905741935126792766125584681356659672508187362068480037406478516765283456185484730058627543481539121960984709276499854630426293306407273844520170401796779595226627100311468578601688628056933634274169944788228509251138491747245088428367434426454625275081498326914917024735916544449023584068763463736565366540260397373125846026943846878266875379691809689664135088351544293344079676884814546620010849163260781810898329582368725811905470030324195621833617685165131171574131371685960368667754730763509205170395567668972939888217515644175628409847196960717557023443829443297258904887951507451291211936941759056920107440958723660202943409651851295076991179750285516966359755910574530017538255414759008091338693167789500464605111773710160433123610165316830436232139353478073987113784283562887330286691556854154363865167809691676957539714743886011668658886712866154453928437072761562953926412133755744878999883072747913059162167751515677432629634458700066230981443146837674072788254807761013470916960778548090465412896052143618724220179833146847156627066138071110100277041321414395539030698151330359894031725457879849770136066147474780314003509482551557532448717220689532926197921679256914150975011929624950059122051118484730686768366256324837762761284866054660654306740563587637393543430207162986067949848413298706602715926060271465714195495740569029128571985156495349232229471421657306755578888129467228062973824975428603950373893073057341388991688304544925978094555249356792241533954321695800610670128201267621975177289661211606016067290709688372445631554994561381419733582482962186562171905631574513177246126064929872727514450643506516366503761741464642613075759119698833042281575007562568121211573247541452222051200543998855617372038512124426794870748591496108589374502023252912267681770835913989703364130472269017751710311216973317933150230195144826812224256345578241173802774786730123466430131302362177112754964231321813853756038895957630225635335499802194856155708456561038933112540045775758634903129979300720173995472417853224957751495505934105113302036533777312606747566410739481274526770851046437113402001818852420119691004107358960255138250965531368602809418319359937976379693709241797699815904700667106152489997437015653932621688264421217200814998882113309748379545223050431126894053637999435835902601650990588867785257285736846209468471967361860153758826464163815272108531860195993479813701602566764123821150157846088323255018196065680643877097087535527384191474959988537346073550349597065807660581838002843954503906888016891000901157250067231350830490054741511351166083092808151980511366295261513817949379329763891938750583678393105398293013124901615121041451541371939833550893409660783218464008535603604356253592919980314023623466822102189300510196485070174087351314266097840807685266186362941588754878414639865905104109830918595462441502856312751308246943943031264756663143801464236994785202942361337121297771181886295305068526817869004621874968427483161904413880731613753310125317424693219379575844600765430141816387503006668376553217742622373347396226532047071024936068212174347695255499312260179689690233532221727601287226131923174349540572346083614542195552635790848321978480256812588183462232145068128548863309096268830983667786892859917890782428042869622445890778881412430647112180008036466436850420654631566506054452492522909499332014213079981791973823738749183018005324891743350240160032188620429309875552373356079249391533020514823597493818094739396638876147206305883035511880205953904473917037602827149676164778521338182082339984758333858155991525471943853849781383881336579040067786880857939543819190742518740328775895266930996898715942436589382598583723964374031186279670018935020504008039263017841818334779115672346012618408846351431622875091411709502135959289370806855688095320776749453331075246663440654692972251897327019759563390571706969469730003511613597753117469043628259924297447675666002822791205728972291309762447161302541933636762741895025116653279857362574344587891174372241838510843193879615788588940837536311259782686753590678655013958898774130835820096340609802606899271397575251953327108365272503675399681657883128487100680143535183676830032111767019623727242576268335676518570431235676210273126783226190988442503441625070805294896609440857624331807211768451173055104422504691836222104549911520288940425942272177691976279007889341376988770337229153726088183175538003215046945153123303609116637573625343063192761983689596273205678142284431376597394487620378398694701580893707527653705109821823672650579187650689959573024330801510621760764864410363495942189425644977250098871941770547170154701334051477759403939215151762205993638547727152649897941016016168070112135511733895368555812892642679514362717126280483199241912415439171905792297542422053815977836830475638984003580292566456155485639565214165679817849169495222578958268797288342226961301985424189561064409627641147421300375506441163011741097422887510491347999370925991204042983795896306809449117064552716391519056943151477265599410753305873679117194845811552223277013776242397993288750349684802653807120969743996176049515927456650463140704288082746325175238871341897747235608914821134193700621678211245738564252674898223406501608112938747612989514648262787825409883936896345352262017451008035919804112991393782961224782672615760862968328101199898963199096459158064134906094259712358441510822643298221039208254301158481783320946051336603486808069045686623067128993347060745696689960283113665123140630839763966397606504244652695626376679876061282758256241402932951068463725648746360435933358556548890030172332886414316610200246994792628425195432638071913735732154314811104626503756629426862204903136536294949510856353852419640041807848336131872222267041949889871455550087310741279537530074369692750468845097025769474718180746988703957962818882193706150662276049819367413733567158810189884296537138404904949613151307428411349313529957940523612169032741123503515973405115828612720110908990891127174047479749864479595382226653237484285197882332918207911314533169088249199509268628523278713102500484485938255095675006189491094692526013155908180731888742246370155024313615215610427299522217300512290993683274856627992097076188591979696227042642807548375867763298897902752323468516740864259373431169178821969458921036845144288636566155818560490423887701417004612702035138761524709998556359815702345176112531302524672922039964681467520445361536632522240524334271846812207365294283793837726089492751501582964948222250269982006909009654273033350700599689400142799276939308894299237849253124140329106354452979238905773250132020121658769962304577315124908523934063713211174660023501382554858306768618385657481242899387161695342597579681827369072906763438708005461480555529899728294630378001113432138227963036750754315439093321891702142484292354036985521981851641560217582780780311482339739952548627323038541863545823977244707623160967322796365873214908749207646869693207167009171390457294065054087697006508146295908978921573900611923731344727920103866490623315415979998934195683901302716027101445970714689914628719569861508211932558382928486432685486602403970325141213662901864589569449395882151902262792481466854088171477774874309413996335596835324499549218473552529396199056701199714781699322154662050304932586367326537156168128400976267484175737419197740455305867795513098742062894153860956043478673213082612829228175875387519479256652090236671056473369346680161493753348363392946716233350888370112345762042873872008755065651236531775960469836370761111011853450292030882062808805817296926435228251749532161645093819677638057201386710678296467918559045659144285306786392963207108085960672172118410233426220305474360266688183481500245813884457848072426020315800842348544670508989760530142457691983610175620886338539802614990733109152681852900484450817150795152079451594368160135359515468288289160298213175074652297114022597523785000766015454566007932487343243113491527524995668649233220719251355743943393838324275058417228251500875441878692342397554903273630003978239343530305470605234894500940440502581936000733196324128872953941569556885392282388379780744895393207427120546300791691031909770133681436298231934682152724208427301703136577484758502943570057690280575132788507011034303075879154202668766692623046749860079287373406698809531815415206655359276650994639731078566208179020715014328183659239346861524720075220335411931708752020783118568236927807750550739335849842717696942529781120507098983537885592856928085385786922937988222027789329115474086923062563080044084929076269564430376370197734524266120465588701102638473838963180520361737100132233342236064075566511701149532924901123163520402365472199902281175906502951660141259382883097689854524140005327112564471685109734371788494100878922530207535050499804312997594772215006369943919241037133611257440386548430522323478939550232173819562335790539936909802554520820587534655276731297321134628047371535424489593824909958443356084669778653596123851741007417793759711554345138660017393705610132251064568871163524988026272090387922232697118960383981311568621736709297887600966011190556660507980217354984064750977308915579301059908925637726264454274488715587376806897183823884955500654307836819713655542707434456785920170323392125047259940491580661389533752442663462813379430701242260910636903577500428720408383379772434174008353302307024009820350771788881115978839025200046279497599253585731638386150834359448481644502541249690303616926299770346475216133493885717392274133701234675605650370877503479892776416717993304879780184878409405095408932313579159003674142533447495813189688574553918986351684230197434187339634808118211178235460784761814949981893570059001697024555698879271341319069806976826360003380671228027046128331819726217120172409960433963887487355756983025746191811099153118139837429734164158064674087666563602337496699232227460177138610646541749422068516417146929724624418226694420326748215062205458190653467754643188811076451998145177050065162661949032527370409266330853151695805060334159028493572226727573064931669139743064797493752617078843397845777811586562269962543153490241040648189318350506664994995040146407090161945193131155642301323427250920812767259191530755660522934792812735555590568569631513457850384082396653112597852417744044775231654758465287288352710919522931452996279496995162720235621690935972782436247068954354826277220205845982315219613305651238230829558169954270598288090837605262593774880625101746347834708502937112059725221740096705387024444894629648160718051151207908025294350728728606886117623007332028700661780330966024924345728804312700525793582032694703454763031913849012781649216795372695020749865998084439541687481510692222784505689776723705660854044860151964040204312812100527405406927814463174526570096168078905961939865783990271820213249657388412868573426860111880928260711040805773758528564050270659065653947503745725980472215699965911221433359038379485523275716172900827262562806338852284483684260434057615695730713933006883251595888049630292125861673309284130705852591585170041417104537768355091867873699921035718252947928378864361164851661720170937331189603640023411079870121100596694375053181921189811873638838143798930929520425087172543911962477555624386823212129013313404294039003124218574603241995482968786302168527151057848948929073884569680039980968165346513293451730263080035096188092552223762264570847149090836960510094088457268103133019302980188215043919018141997882236346458401436916353298545348301260708839759167413751088832725620351840451449750741695317180691944167852990112591160148928496849709043420856669983713540575041305693344061354464498539292860285950013133579214810876525697058015722115655857467033384353643485187116538263901964757496705783999286031123872351222987266490716780564954824120277079215742553491370468288107227938141989852335321755656060717632658936948939230503232931004595686480507673231818642974353809577554940767605509522110643280308361597208079963953621920781827303308457804265869735947170044652190410966568174985738449775002587210028910447760787872739605843873662869473328672678272415396357868892324897416752690440739827108608823433253637461926132517949281450712795527122393183356796738217735848008316550940716526978220712623802388362982317357535899379767803871764298102258871946357246703073550007004812104630420317023624939055619532440143660233214519495109155952496353061656376974886164364556119545334943879869442367392262921491724464033687584694921301038768780359790066624351794752569656692185903212032868112483424227797162329853476111423532346636494926771832601509281557745410410162515610127092484419216865209063401349612494930604414710160322195662072272700294714059909854008517934256615460709980371273429559493439159989849694590105334729541993275615401145741674710739381306195844914408595094928351565935905755505593218345847497857775322732260613503812877742787935987129584368782553513998113404619204852613118901357394692955352953833188939605145099882428205497617683139354665903979116570013423366920915990495000866328659701862675796228523294221726378394955065950349780154668332617971469501454281349325356277714941966015864766795222683009195811434576959285513585833988865246578169053898532182677332207655609207869876294841366269406918848355557664234800982239048988750230617659870126600676806194205236172438469277038669172676568528361832201555282825677547124561547796534194425252640969337174638590663493246353754692680776106242295857058930823586044245709827793974828937575770030959968355558881600695650239056001535961685889558523293930978035079208654973326375766132562936676256572413964513333819369195860590676822284522700390328560384548450981350122113292375604739858724661805308923716000439825496731307770619443093969983596343443998387129632041225604641464236551627734821570205059455986137897306789465956637614160723112709334581887867483973295794154850812220527356949101800865989040571820908430409362810600968588228237390535323225355728360029227123527234500057571236729219384417292182998302246928013958835565658175974267171901612266865104622089887631943879106068563852856651236102121548167572172754214766584573640252538692303607884815659228356038483083700128857460895697702708520566676372846973701165897643822799148830999150155618215436947582861099898360960011102278488504678833748972514464145248830179489078809765751595605624836104324956297800409822411998248897291416899548426585838945799746609033194787531968063715298131377927215918594555933436228696208871747336012638108012847631170004406580669493001722771707782514323354992739552988908081123187703907630935530928966268388443583940021070086955714782674428815009749698743255022748624890406765995202381733884269484523644255323933016893492075184284256612253739321758889584488093828424264618041074851779345133433129382355270160314137321814383140095498297068475094517757302924125749264786630904308433457042762647315686067366011811613210229898867879362580150040408294019701227110235961597824683932249552865273514087662167843019695437788401343833731441167025229016037620133058648226809146052587835452487638532111887960717405140221146172697257606993880301963472727680262475388844747308623967750173428975941754136904380236656852895297533484537708764342358702723318894574300217485204982282205613183435644316616746943266761948512313428105309673844133660392969805691018481326578049144280318347073504928792021182419890636774072498231624027925251273007215029129224568670898727802311927161665945848309474937929127809872491104690874344295705571159934247562293625032275922569172377765399060027309390862106176964473390903229008391415980427980742494236686825464701774792952915928936006040817206141549687244128616830138119024430540491325839242194606188015090871328098848914408269206587011938778043881832585663396774110960500136907720322834655114361316629320286123015169075349955958926802085488186001570794159614167921943018663076319003569644593884643939574419744353718686228154726108763265092058503437150401319401431802833270804268205469808752440314056319621466782703860658943085709841076875510916639752647315594486027644972043940978182945789108972215505704970233035044732594175845465841962682207989025785831890893706919789068209139803824032298001865607864413898062433205110452527235614857329366099095260479711090098261336656827181211691309604825905766463281710173801859390404419635856530143674769545956599383155869507537988788354556518358395696541673577183708916191279961883832882773267041104267716555807303704972340215862543289283598345068918373633922559927598264442091395431027631372003181907076406710534017010358238815613537430796405583816208242725398528757377059029478497026682849241586176339472699895934576850162945815321352511354783901575031777507584208098081953648800636412928038712706352126351246139159029382330800064158018465144269793950184698189531096714557343725372868062205901610518781681042271505906011451912359289927627424463886839236896874145592380058867241947338136696649376459835142150633296445512060126376921015187987801800422935319208736592648475744641740717293812282441624958386640649960135629139272582244962070923161699722139415446988111556527772237325386643486420434018685870123331658428235249451927567841120463583138901445334548269653221786056634528926792849183089863992988016039889143913492016642175174745301508300829535304208844250872250606715108614934376462438291925366663326882969477717485231400787991382572202778191350399625695768754902922228988782334331006158892795119160773238095309020836499099998178718455901983067509366755086111552536232849270382652489076359829121995406537996650649826072253640955119466033093855368225650264254516424651189973356679115518124370396726691758492471521883594758611278492678586039814893739647617369133732111240283242422143205540106741627381663694270339113940092129737115936907246438784564560159048251080167528450800130745618580271305570713024501777866749068071626111950825586033454185180262641989185743485379470653137484652224072307569351476347135637565966397499938775650017817168489585338347382677834184030405896800365881619673401521142589810271708733728246699885338711816946762525012731868000966513299451531767715345899300576872235910445308578397143905703421686428270917484271126637014727699718284365796873266385296076782816916597327291470680543855108607392353892880257106206731684186504619747790766531347063139852020356310222508646099936742831930491208753091004852505499810582682784874959219097835322979438437580992064576550519026815421344095616089572090895350626826267928479823572025223072383522348529787382949117884845892032149121982359307172485704637651243903246852096048939561690945512927746361253522240844300510100773359349382812368480394928770456243419994860631590451576485597408983466578639328680793172855671913478241395480147218191422717280306067185987217078234535396157571730303367916526181114798004580137541254828397656546576253381185617508084685545494073963868006410377835971376678575731490448879857896678304835892904306098124942558480526939649617540570549723831377287273854255929995860244065451573057674549482192842901863374749584690196783852378046703478471613195777916486298573928840753592644707120528125578661014789489105375306482655781282192965547184357883401642007746185189633849582505183566042662233287085904032197111661704421287631297648702608179883222236603813050607728661903035679219433664825907560310557495045518839462544944713082315851538653851494342855990056308615177310671077839549759635437148209515346111886341217701131587012279471882636039384343215736649862835774870804394206820378369914691479806630895886331298052579991825976989844926251078010038773727132413153633754224991659183375134278097830943293786189249288729723411245113716049109159942528925852302902389820668890381580821696366817610606821213677292678123255685532676914335875720529396040803033512914544763078329236001874742846372583910790209299022349397007794962910055230581003792766522791549731014694601105008831877791469291208313842189199549360395212359078132608531511300419708519084674374641854947040756605814166289260081466539493374304144557078448952001675649594113679787189014077685937945758315615565785869418073338091718808751955057914932053001821651790325531090514599720236520113275432838458079929786957986315654991011390736468904184836577347286632507644577337169148942029785345377154225143424621972768052270244159736973935730604309761182970731819151387780965587921743021722596316705145299641017182814822235332827609651791098189907512189534924044590030624303420245197440095798884868676857712227982958416155066852781815893128988168944410444520661831923568237866788880818651920128709389382035753187218273514045182699541638593465144083241553627098582521087281786463741553596860124040199282081936244448980681859737251322244169418665844944235799578393772149885435972775493035352136944409362508181719646133642430372279446133692792102263410772646475280283842568439977864043397997171952948702940289478379995284359717849946230340286986870180624236954105306873799369710322053170724578920123756461603867025640714550143952895149838102619036341295253711558917364986354521830825325083098415175201254854676328462449913732813218178701965771300366125032189908732934834361334553312400819190093733782641599450035164361558182554299083993723169010721606954532643258385334764985611899030430949595697791732322189412792627536101142803097173793657708350777659881258976005729783743928881294447469355505367880289205891406590541478383655203698812878590711645514715003467301081786121939697475706146547055488740045894363326049211077662581528920882233773513461039630419008300356896208606499509410857085463328272483009892346591827304793523550742343561335595891695505668749437198937044378506608054741224710167360725211507870089711470416696020723253914183963325493761369097987001854130630643432823099980917604797165976242126137442123015145508267086621548928424706344482676226168388155824368342493726329186558633424322980342834835269997455984162288125421166813953121557281053158884807783923533307392871925650460545417515050920732776801974844649507124511977572138095427325731167296186767405158215970870370917744928403191742008225599269104569101531438999392986039790348839214357192867660252101512397386299465135752508883142902641873899837070325486393006069851337560856709734187608908559828261118341461359362449690342539957059084142283497385370177808352909577190814103687598787121385510198208279190229212351895169997141492669939109169130013960615790905442268222439383123318183993052802018815459522185659466922386311489035672824124004575451931807799283597367610433472261332640479229844206908958507044785295478765021657197681874045603207705763012884969919383075416991565388349567030539534506712554190343098909705235499785008345843000932259204368185267296494306542246556984588647665376724284784090818141234533879091632494218168971746793147290199756458123232762671585248235452759655123143728885060757307734314500368473166680629146876480244825344755866341859822913461963171495416393245733920554127157414880500722914818631633996443774375425582092807711606257893135774101873974934098647024995045328676103427377860063953461908420574210090743313927272713854984885859165423942115852065419925354321799497558768581676252229124170132113153130128899996121279209754533099720445608634859431439445471768353367697315443167300261078700624459680345345662878838829976868791173806256709889654618996249701423838134615390582751246591710423510866132966337034686653616293782059385617797103857094134062115743605079107051470458013871423909683869150833673798836951376050609645034133929369825269930380006833211907637358939899075272217384198219726361071980966600712353843646936312918556429971655280113770750801440955884568677343852514653330249805829435401075042520341997419318250301660802928673176705323531272154059480299653490282633815790785351593825174147257655712611672863662944388504908220198718258514958450000862845002092974462167310641038527043943701398899001495353295380111583142685952229252092628280080797768459748211552705320848261257101874064890813259460524375098119514256543025325225368865650582302146781841201888180201740424119633458222799678336711224433185611111794337861801104396448374251724384206949810301464543294266733888451055343576881148645278012000361453575124140902382052673344620122990969477771424595077490605522948350858375926522731368709153022967299192527813826325378846841160404120923023203107886354512153454655039256105911173397772881334709955720108998007213533718279463134210466346111792905582899740124653498364673954340766150826454014594131849938937604395222159986041278111862983950226612309884706967875375298368409873092490405035653542338372133038252152960008414835467172682790124775859661740124471410467755177888371997432042335599580998024449032477861238956284364590777496528580388705928233545019628313426747312629842463880475500948906786869668184498777444397488379238626983884551900327058437403078339733320129593105194070037256422126384622148755364986495611295271284711219596072463981546704582439320197002126139493635416328782297223958129815256687916752442918824086503712077017132505685830829258530215338558263133054255514127221454954801447816810173179312377180105008819656155130139500982431607461726581973719484087027195180572377770973813805889288139246392638669373206357881750878885918604892360468144172339077922245727661392215294376263447442449203568994370070764828517359802151626441389580113417551817328863127507651855259459902900751678080300776100986657619482410192227275787330399209983162066003008623916963172910970023438419738568114660883775954624034713696499010920333662889430950605779559817264082215594679264865804769628215827249654445174799997056039267526005726608663188120023393124985538624133187590088175946943051625255144436820228186728086126492663557621496126840487780637844349767904911866372864099714424264759386225453943513948184338292991400562451333333922731432552271725354367031820505535287065461404307953978700122440021847229177852134813053558502385094592097470644027958824047472451215262487630550064012395967128170002289653139149597278676796592410583729132991716205382972528347885537932056123119939195161699349920395128670730113368741456061874348970010335797727938713471126785184158953661796348626273977411814069152196106236836372397479483031846743164488335408031695717302011655306980295858595063803147048983263020146324691055885738396397531678604855195828314984035198680718899572428525105125718464785419950989816049411766922389236877267486226427886850849858984839324221517554143311411796370569490307847447888608677604097940942507731524370944660988840735358499837602839498231786418059215591877368784997148939331656406952431798883403879961302901885909496328266583097280071577457986191371121611500769459626371586452914127505546906846968935642420387271619920838111697750738135112655661280446954570972703340733636872436690557813735407149895929757808875023210067647938234179024508285025528632097770368737122771742624065701798064927683944378522991793404427722846092597171596511540688707120206776493747720998374516938551534826413509518043414303282567684643856978521140249060030963132892907394308720554798381746080955245812215972306027070326061364206448683429345302487940087959786080059851275370934833062371207209778929461640725375096874475359574182260787824506870610466974009443040797573717959190253502054777695615016742836136066122526524526848035347598640846130110251685247888666033837463885063731440154067217459777867001773130954120024706085894197958103142617443264375640062488922215368400294264075765666202990175981612125194981882604376069745542232274862052271380386917594424889826958635457477465309492594530032314401525599946566448344812752538495774179131205473854030446684941764548908319713684860727146743959578181050962000260798047001006497031912687518923920780423126333399114717037248804071769628283730606692443120174422347158205447434403275379246111205366220911313451285186021925552989765074716996696657207030569275605984296146811662133015949098169476139877716271894315758340508737598403917068142944296707936437890643773298081207430719340181075326885414118652339300007402191834183791485755691396464514998378401273381726784468448903320573515314288348601247623173436860718085521699462848347217898670314265371590166222346174955281844128798099228167112594288760604509506497283187305900882084206068027678860325886711533466732479113663142963173963133679201255151769457504670506936224580965026736055517740926767978593935521346162664193055269856974380140883039634669658927783988826893373439610246820564906033382193962547543538285648539445228291990573311364680586082160005967488210176857425106515883512361561539520808378196128850439968434940739501438436413637585057666253847257276541944456812844052945558464730842876925392394418578004522654088684163882451890429392991061619540751475423132444487441765046442653656406390178386521268140537806197246064718367510861342956138594276669714026006325532642877119959316109987837747058476294503692366210638846266483021311674881184804307890740612105446352846091377260459452807040925276890423682723489398040131438701421913890710001946625149642855644973570215623241509189565133376359423695779444706789783180738320991346675879185906639542432789257538564516548657829392681679373307009149269475299075410582994105775242112184463346051884581828760799447559290100384232215372891223737253863795066847011619513571833161002884026585523014648103557078857615254247431016093282567394884682673248414722952485992493775879196653783830787569863303182462673056342809736870053292718859396703993638841723186750251443293411157534836540290469410129516141765003882802553538732596522799903955064870633771687681830103199306731397992622657121257957573085373504001606991733020088413016480865439345076961566589698377212205984384223113839524763859879093380267059181332140932777493318008913575792866673569198646223373153132519283852409192959767256145761543451245571179168656683138019274902705199053380507092556358857625039581077669260853111967770106795081032369789325145824989601483543654014916175723200776041032244368227839829262485787938679954808467279947338791844313713386660498404362284173643612739355999735824314811988348240454019695585203964038467220779876102752430217269034777049093931416152449623889922587851477356677737367025814556066666343274886703038177748383372516164047814367480302079587072324763959826770864872995174242750778548003066773799473414939654742338430147174038998348393502986192175335989410759242817607444326808606039150660268489423066958745190520993549865741084186437943310360717218779042121456757686927673125125736898580811114315935317377226207256312647121985569290022914918185016622957253706622004205117923086194967454951853749076195186417771892492541807361782545542455581916295534122623687734107492047521128835179546986988244471260659184559910765910250672913269257694115955748449580432920663830382286070676581116285353836722873913040163298782735523151456502803451761374432770883782681669026589621803903334657819463551384003881733667538676495299416186888762732581029816151379267602955416531046552190153758580816294832771166053226060783809895479227567621797604041602549444765147108730412525018593794503113365981530999749526306344271808217210320797504571760024476291591354285422296579323360734579906345568206366946994631260444384398976667724042187172010835012672912209360382608502169253465183385219728109674427851574147215464002926709772330463612616376501998522968676046381902319445211243834041938549798295855996746891728815787379121582842951262173893062412323308828615379716477229236173719657624180080895802092051868077356441112183520870432314670720437536985395586719061950759123315541243488760814602191511983051582204023384345781594076971458879447404793685847547003243779411342053887259270418033245780853069573567952274534731568809973723804619428833253593198165365908871282255767501346557130718841300076048070688741637587085014363828200838720352529507768349018943843567647329739127067091509702099850733102575955779217051563113179986609826579383715495207129485284836084424848107336371804086285314283678628391753291499881917448258406123939439854319869772331281109222291364974401395989293709407138925726162275987962023712539900646050577718458124008888759537138921460579928510163827232436642296540292818331514755249465394447282796875337483476244380268184972548938001791600259688051401876222723670333556696413030713470050442190376433295873995995790286514170890102795628208586952612771680182109212499763659323901941389963911451663004680954653357626989729035303712195264849340207625074786812634936922282560044962720747038967087268274835770929031526795399729826860467579744523797810483174058968139029878685213615581953758428011179858738147529824406834305676889881770169884296099410130787307065002503160067559870245545563294198808268860189644737775483311717304753301966956456897202402023845790928320317322712007615658622352976415779759739472168476548444896994499297346203958133719629106248483552735313013484931347271166764756854523128754701747585431430117135341371642159637096493432186601347367342320189190885469176622192756813601173106173523444158364370969767783588606483757814167081356239621493848403448521731340689484058691697893126644800697770110410753260666297167469079429547273165177900646492775091021136817130877604214949722552643594823562156615145814385543831793822224133819618155125949300400563826450878682723572439037714522178361434137572612870425511067845485003991999946461953037825434533314205914093978884752935203460753676242457297562216214822068523937202734611442035050517682876850988808993436989799385274603070378400291398057808477540131153190353740603652006315928913250448299029103592765260261408186152993131857768761942834184097682315683941091705523530434925075945555090653876081574334450319287008855534554027954578964111729654173254721101869240084779548640925154476428733218359780810893988273109146193576646430767174367229538217346784882926150293029564186475789270561595442215839011464836294460925704924152648157148569848500368694516995770275677217612776311243260495900812925565034223857572640263854427278188252367733527798937651576962945924117098132926195243844128116973422322084480036049287389188873446131767137156631829886271949296446482705844963751633401247583871576899101110542918782584558245867735509629925358476976402466676275205406334683396802924856951746554941026275569403469612639550354790533403791812191639974817391911206250397753488576825191528877488912742764524127030304039440192587930465458394636779454549957265736327032605714127986712424513879775022122192696716712830733908710742336428864970136945024296537021255450310803778145416785345985627634220969692388547536351806349300391960694845191543590855842373440591666579959807744191137784706761552315758480335250661074837523023373013373659206781514104326211035922428115536688109025755181978399754847005309834223714151503000366609323210489039948909400773056424200667588059531049840125245387638541077720263447166971813899880717564019923632401932270422563781253100127641982338401431079679701930159077861536758516912027756104606131455697278023618630495781821060372737847393235730574661334076211856948501051969036405548928823945249701237977568297931519162207043805013911559410155806944871422933041064160688760922986080957357576269857639362252430592971426323750881208718209095168660068067664640459768175791174558822433246267684992715451565998114264050371419629586201514683649828229396216047786922270476690198470686003043533194045286935691617829168522465613186600432908663520545399529797522450980164240213517811542583398838255152863184099965811419639704234497722918896261846084584168661625326355316421407331064307548775460902924486556504671298440536085399555449784935229052302276631073636420478327545929490007273008601964269462193683308101308145005183078699999451936535690173189861346904106581761638242531418984261218968011104797621442338604068652025094292281979637777910791971034787019077907232644590373547833298667729101120705279096952629003328081002892790939440063997665641377772202632611259376202291232776447631397547399929456358622431228793525412039397586519934199003236352348281835272517622946680962463211284079416613279018324679915087076097069567536373794054233468390687885574985565164884950364340596844923082085600098997228497563061697214788989629063549139613536859423020506345240595841410814526493266408068255287966663019672469126255845473490249498658599384268886361432366949086164803723469904651906923202203988474651990251059864468008366381412078756974961326804294812674013864595066979020901546202180711220264701230717691141538406204559413247316584524232063865876207706399014557080086708710623736668157652698720480769790055666389952384740312871336907632309648593063605748222993985138772347702285763751940868514162622371150744657942054063521384918957051131409904947756888261666858288407871370168113310310499813479608054661087466717369509619033813197770633873797577274401875738637267489778885753883065118787917390505822225236564904947133160906079896106921914513229469917224746913308879542127841840651580996230913195948396369421851053161030357701353278256993173231365242240135735793621794647591625970615582312894776432335842413383680739994686159921673564379439687937110483379442513943072253275539876753870792130636216252928289275299988595167888751120530314186684196331861090900071747739141701309912343790256931600602305869486556796851183573223848010609916471735373196764355193249396140036127558375582104596896069774319997854314666036683212326087505506853630320663675258082266733986898243644041372688432727585867256664292248348294535599204046511486204418989022484718057990024521548941363847775255331485990901030118088959318108345149262622262699667676121109344591901554862333529959096846362942774935981812443518347934800817412518808222461404483179790864208483974695948057124317585397309970044307664455288419294768301249258736212205436980293395106700180601770121711296010463610760121791752887186317144240394588510214231964405610182164050772694555996754278420834888494469273897142121575106215473279095117624325977884819255012312092260320210026698130467450678392595704735915367756275048547461213256937848978970348385044164322331917451349633217919310175718109729489713946916564381668708865567531700676531501983669729765263123608894546403919840460250343826350544900099192455258387549118886010928321872381805289510960571045902307817672596652712332085153820225351937843329705740822872274067936126361180276433438161168632325991298162270335589976920350020647237322692824248273532828358428679112673785037070902956729636476600263274931126218604414507665940190605132579950382431732971822924347789532536255591748941253310156723102013569485072670229096397180226376491024982096048282868471677751499079458763810753336785475952154587445294228288646392951838700306360486012215165802207114345931482059615479596121967949105679381758633475957836804027664452361411050310122934311187735459781265970859392876754410772917018770248530017535547615743842550218387086464248500506608314679456151012425943253945013579944546063019400318698390676603887562702973598406356953667204068466904802340585097801071526509391636829495565099021877077508807784361405462935232516008254836201209569449296330095787953902790462255447018355915709842547754914363843780363020527768748059828683130679595661693689304370032301594822115753176434443316362407240823708734570576471458608223243343544203405532121806618231827381782237025571994525380448126983945202591870123454344024706102171685486590308675552601831079589546295128164255530745486053309848512081146977793375054363264121018642316760579712081367302478048591935167750904528614892253421332504685826739026657492972124110561867890126101191669357059662252753929145539185080384380805060730232978558033977912362437959441497467314761104769388366310467348370471498809024293177556370280294394295071248138410182762024472241038814859690176969582017028324526433214931464109327629206875641134838558942323879399306477478068686462708001256295719442165489187062372888245788664675750824927399250538525216762558779655585001543288378084215617740289432242965290278836521756282191768086721102637616932943538265630018848209397001083766635613932298042313814636957370912824027002282841901681781817648310559785326153822104079102997305016258374657549181360654942688006813268363675395701749348806422300869307040375018294407718084588433287485785316753437769104552892272860830050159897823240565259429360720220027730236575590879263487757834662817759577587933812116923187361170147137440854429358434191010625141498591545417428331210198716962944170154341398584203555820567225532334383773092680908307340206650552283258836739087050552667882558139314685733147125717778160536773795871146879733057816368476710457362432392179976104822400411234483094837444564686761499735872741872171300440202335295872587490907905628905804362786933177387316210000666432734441021370332826987293022984147764182867804174722844204918387116766305973963429615311557140950157433370939524081938469624850993170764675761630919234179987344253254556752413535564340906298009886308943345731402074052200614522628211898476888080327501492129648828845568300383320450429383015777069090854642403838472414624698078861821355411965672344473803807248787220916492296600381403449175072626119501156084312349363433371257581406501977184958029358050518367356507374653163639762052555715763204058054237869422897013460769215660593794213394408311999767095075602291503237162676752722277809055791728533056080884230082555697020509019727736028512850120311497607909372904048689407054709985414634938345455318025479132881292130389254913458395898862896382873317968145292636382849603522521449576896312616737130282739417597398483348553273839071980392518672751640742675804526119507594682935324451840719167015738955117971765301257710738238439785839074132328007715743632363304594372260670524980522785721917029660443268801388407984960144265583218259519321508173360965185378775922480667524919812543480893972279400923879880794170194286311430119215228339432638063884422998565008537226803098373405652185977231864271893538241336421754079941202193042269820538908799909240493363730304763460750676864756574488316619962134760523595764507772023188336831100483550545644894704444293939359438743663594066304057282133259890544919825219004071600294373702989996621246631424916538584678007068122919119199119721550642767690940005279152630027344754936958542233410129990251621511924997297770554272585434516103999922226555934748541968087496872246672380969302791861812849068153364332996018543087638996389436325978567432819981938026546296875576461112696087254496819653458199245241354513506238866324340352751720064848808168748528725592411907726728234593105380629242005176931915722600997607043513071280625473132132716230652168922776888375063607711462310596967890408077739058610777503723858137103919662625837119454952970269673838356230584300843633210792051958395508102539927087162229651391246540094832731312936867004054824576736394926312836871383349630985986662050032428111909237651326005699951418612189152424458057714492367456156179511879913199903815947171137080147295423163264059540311547425460119557366609077579610838043424824661795312335177496032466105976072270751605648986634606457124291600282967558811201190994963255269258167621935854374096339195801561104118165566183413876023872079326408187869949252070819027792161186751801653515298178569578027709731337153096545720319614175582157561341272779819541128329819591660237820976544654728519751958630584357050080991875404407841097424211455694911379199231062477909970366742543945033785470332496912415169859682353963318092597357340701882605139237104297068624741642794687865414183874029035847272150923369011739189363816702665697622356250753438547633123457376473531599508925367885090909887891493396099758264146924698368543476615872399179951713870143075110941742686394960061434497156521668189996910453908726052423256825868318565735446826937297062599244342868756368287637661432666447505541264009586966370584032171900715083457672834514930581211744128252135621882915983913694012908564900515242739910312768333830518740090124954062942878411758680161668316959106393525704011601490113347037620765851856291594224699198722248208403516565722998186781760998460964149040931909160825294604437482616351384022586529612733088792691628549294612628104599037042432237601516493167892294165056563095333381450994767984523093285075646480104066604493878070222942338598812655492914380545230905488759687136041525143579690291810396725522595049776812468366150754596295965678991614611650814442297466681444940877330343767993525118106487778900144941896665433082554454150656741990888253040524925254237803944314964165968087266293107642117591645578080955636588834681745961061320826850958070596841870467797285522651131324456040300215431794400263698145279163584290583867062252628698733169736579342461532090802427920729545421781645783869170030258576831023320840729374356060280138593957776518405346545336885466563416622767261671266040865047584299125736627221287067825118046602660237620913810945474004477557757176663179402793221857728829696059173990121548392041968998654511145217049810504099903787722345536667840345052133588784794700103526051919559066989927417628137876793908491383381347398654596683453019869671235730750940367499559642431207105795452628688683681284984572062416441699701343618969977489029708124286837784727553280745645701495698372465297484563039473368342836712339418341513168043191221714696211055887272170099029271532774796863451189808974573129440027144620525379689658127068475884863474877865628726044773029324925265863374284250443317861986125932498829132496396461309542457199963522247559687532023443150498273532244662939872984909008067489899728882780151303317413483744899926844418292193780621621662836113487631894371362364989825638695500957374373772977450098356908258624221573538214454028642155523635025102688921924214109870338059114323042872873526568046396129873427748956043285112204311644668264778673608910011674349948469435759579456845995054298557465816341494923462942389657338559862465293349343857059850904394720078583658566446031169289648990091204738440486841717196744109945367828967924531020653078697339407989096000291256959014633813573862121231004207563281412730538148669759932485883705749642796397861884401591232236199440584293706619258886778791856203898349581690704568375487575971184762746909556475007658084108834065437247719375872884129796865093453626800103163761416609102815326533075919204465694196990176302974136041535352526199266206741071854415853094653090779283346277240863463166852115910300911231873919550328517393973079376554355814328356022143136156112310906033356268417944102737579380023427357621766926446337412010776293820171331552402675704939856028633634757725485094405191675086662667231479497020802802755279883366022809175131364083249025059264028220864619317943578597175426167526370930719426210390817902625119453517442788164148577240723811592981631051172278458040041697668868102684425842308573605453820803057011780664624019800583046982073546909007294258207244141383188718691406570919818245445062102145361772475212894042661868516535527346666166014594565931758998080446108195486314325057998098361897836495007854667318106525683377829424514201568011779381534228921010967427256080702202729388224359570269554058651527642246952246390665634555098793580133597034150645510361269946884563685604638188705901981390995512859941837237945869100934957486569623233195350198732230790318310703839959365177263261613724204310043640511397225593381037534174365608330337608770143983458082438352374788217062335135454879477798393603552257887422003357338600073887061343237692033410271315508632438958552487896186669959341500890818032399880903422043693722643143172205591698212861978430568129119779955567941448862813089423985519110554993891067738539459797486415616643481600867844646486543738405939451881120540417149645096242836243358900479749509184835512945418755676295568370108356006440614039230974325522110278822331375961359312496582417796385255283343182887296501536868311923571819245545998885488537195444664851500780625722575025483376917762062055148734266432219594651689606603787439378766763955067926928109920969444489970546255824659954404829908532945935952304843576467166951810915134424192757239650114756428371896893220434445524164853234749082252828936528529523864596810252195851298787520123567257838206632746545991505144061171262971710830250272839172685468357783604001656472703263866552350630893737935117406955281382788102354921569151906257630611805573444715824920168505417926520243130847678300585405281998438778938234732746013610866283625050630955416326002718154492190155502058257581457561444561911622078134836390917169814255018575211904880358898043641704664752081007786153793083377023459400011899443406359920035603245859183408838754906434082898036233030243846058849482768324056675684852976076383872519679616937192319375285946572198410206346688417810199477050019613152601800865463031453726421453456161774910028405334412545618236998113736600720762376927986851919215669977550199855666844583024740456563624274587813743315977070273677982605029571110688072558995090343478084078360713621880430171236486723861458649246082954012212793359090203214197166443925366586274238853353732651889226765204414339437685039071404952840721365362274788180328322989225038216590403283501481193760319713696690596644190138789214070483591975883231266180497695886367629458950615826168808303535232219422974390442939414946124100861241666494391539390288546483726430358438675368640687891771418653119889397295054230134227515416414419051992933733455679207326103872193697437251270411789684772258030452567904027370161596547150752240973887608117134572671377698876968101564837387631444255848434533863547839383587954160194860936693761809706038351905692197064109255387845228512675174350195352810760770787231996580280019232979000440613481834198315237558687687059896800179733233330853657932286956370847483554148469358810898147788767419712467841711608157512190798334073904818459205913345785497876738343730964622124035492966859596002814876580175930381738150192258339508400400927217581978362762057922162235490123566458261331533119217697014095466612354103256217288049234141434552992771038260227889584772004826365685374601724300893645792151848710640976946375633562274134066421509617228433684602889103655316682491989064874348067701658017661633598281047583283780985979895330412910571273013892814559033345590235528374879879083377896230613505731150876730208244075244039315130690016464568770845250022956048931221448790526776957330539625309764683185366329951230841958015652998802740240566850098868131822059588493897114399821637783881545991849077195735463776459570101314863347265911311773860569933747476774684585991680185508886546977675652249501787045437651896306288948404591474686195067326403112754628646430022180991888629645844600153109787397846606976559598885855726977392805010213312310007298508356711085437560690243351326630917514580052908386103120901991761322095894420031389744510507324271640999801700272236349096418503231448023330321814959813791994957522440089346397041271871868067290643094599308246340233304414763198945478427814570220559247393849595679888608623489782818556350499307577100708185450214848844352745429216486697834152309749137513424879133086994233521898961472965834332696057778674611943797724581859971958427749465697003997618034643445608387433296445325490877652360504401649844032896598597195649341957029478737864121602015787229859579254520056632474533126536560664489244668518224750077991317822906456015105857287903383545495245807740977706941314960531352023862233116854682273124797762881955125296187219534010363772785527492301888802500970274433788197266811118889683101199321894414283847514974350805541550105347156470506788106835246387252184868794115789430161918054736059631227878783764708368626808451669418254553756484064805656513791627515382013882213795154974220751487450242992407142717754636629571366973814466005935890156130736309479916681283439909607672987118811222444675458749898289910163064879732549892910874455806484361512138258790258451479703833490359071627735916961511103703701459930300197687187129092716589692865025680400141267255810217392839057727986154881265573484982430805322844701854348571005447192963731020395449945909127326554832413733960404291761688396916810131505388690607286025804632305630885217014821322548122050079748787254438353277444189206511529562471376067196103368089459613996133893071740530693886233699975755345417939541360353100401859596307226125060497079365775053847900432921501713171253378884005241765710562060458250259492938177891068531430162657462359816309908549886429993518865425117318277367068008005398975152412251403130414524745970030002492792682923840173027742072876456186973374953257732212947823413558596217133962031760242124713997769644467358189443593704971433303483292782627517071998626358662262258563282026357865646420124032655558103928645349274748553664672531856405351574302578192951428282439967967887444855921670250566916436569796107871921626767162389973367175279575924110340060918506375390473168444233280451184702675182710490590443523845586446231382078563450084879777274238018719843449333247355325081051977810782739308929985792371452752807004052995384697273242797478189025834669055028261590293987581484997864639266643402388496596967537925964935646308570127674033682394563269695464807139740873810369577986166952832029382702302314989373683731054165584162174166917286976726705900122460643766659562316819811434099326010050533938068370617556739843471966369611032128712497870945015839036081495518684003868815908352451039977269192853888890470733913334534999336592702357674378438127259570108544149872391388766170087074082611977550029096166307071520982735811703313549311869479431222150166038782726411209572234960352823980633990296556373892568067299070068574058496432880739918768682193663372291432525577953145350385199318158144076965673368544893852937636654646579806676043826841599420054017498546723524113821071147066322439780273347373818045233730546857927361916365077318646436532617342723439108980549100552496793389219147413252139264073202779448368498422082797794618257945922115425855024725720982285965158050804947445612371121886459627587586498598842659144433034552572089009952325541825913182062649200790355965076948860931223202468158762558091891825733636555892183541195105259937506746366581618559428263189527121352453997647285143749298527627238652926115569309711672451469211322069602078536723384333389426391167282686771003763761586298548781150715944467628254059078500164659707595060891132430626368222401134691163580027635843042945330044222291781920699931640217415243275541494519499586930968677375046849716641682667814047616230467369265540599422770623930016974177100332305443008141952260011658528949500559773656411656615801667349918655507982968190519076035032632021062929254136579821498076960524390770478671609600000593836751456355069458267405798583685078151537347831715786517877162657556023781595372505481098512279258748341330272795734004769963876468577781932510949517618764741509753997664391302150593097440332464247468155132913946950890026473854646782722240520941199502472511665549654271224660775533231497383943300925140141897948362935310893491998664180869885351014098278861064489880002229452714636255048831068821113592735121568266103804458035540039071180373054157756744486199990339690655078125748806968479168835247756971484850243484964048999040355813496245563004096953204262509991299448320410472466226208187468189182872816568340939507434874747591327340826465823022921218251948285768585264117508711369177465297789143618986051002557378013296942055224834364311336846107872060254304637767541845400136428736100402153071514986244823850186122704351833661932905615975008077534074092196677761451311006086511899090971124079912137099266412431830075509009537466497984909839074175538860001723748477489136916376037769904477051772544639879424762425217871577922664250120941537045499945431013504185229990405392491097386325978561668122371221445426190599937006969581985728717817797088357422138600089311372568247056687517786092188245469802423864282588893046257494483101966692263473974182259760614250908777904408863023881144582117782242922131343476189631412746007700580089627300455052635176432471695829181644710217012362622380749966219398571852825196811132818408329782303655773874174425939656307711039585957178648893374449788876233617381382862254639080358115162851606387155274798194636095251014845952146869240240254265599040345205668590713148535953064660085044924486948650536884869822152910816190172170480289198791050711993053077600694572886025849051321466267747787112634621415094229889768207863789894489755440352768940722274596725084078244093833120768962232045784593674523348666361369657738356044556086126564305075061319495613003055765929769340690568312249772403618315716095442548000273691028871719700746210631644728763994850857016552070533254752031886631888238035301914513652815485546838084094482013548774608560221767185139268895057192215232841085914225479337481618857030787819674027236775983808228449674073135495196434829843009126086667700225903335006333537250246586610447704242293890216280523808135653458514249953002522611057154894341749372203734210850775217015979953559693899357836695439515715533207712315041358643334866362488941840916822775988258103543301105727475575378991997122010166048087517584124750600781834693378918783650965395277632039032445973572424983869468048018172849446870762609894244388066662946095642924683388862649728755806105560035393860164932159978583964105427332912832655982545474668472237998590868438320868645926619884561684882576455236331020268134695222450616220621588516440350714437317595719888949369148406736403978901188309733705421834276060087129300950445010166609187958362889840086841388175932924438893096609204624092573798847246474519028687556625726635935090654806877587291203513493712934618939235518394145355258904997874728985129779466515402747700957889933962142033805726341538069263235367486438473044756559236111135907153099204515536540472055506409876543584326091457705387214753686911548219800596013906102217386766640108707428027579297370774050095267556370256917971111792990937753905263837584912843823728898384598517695722540711321602146854542945112598321724474027301893601345098333755924421052850446806943903749702831914503073999664404769762309271014483799832869001859049562988140250639797653701499470192898040755706922623264579596376383956813558484926085810451832963078071757579982927948435597408211747413537906257307886820361278818306484477200244858777815122446504078035178128328847715045906493028929513171608348700421240233597391848676289064664594229665102011867497883747603464001929614809655938570577646261087220767780723292927544898928028616447805468377239955956639142864269811866218158479839841543344745987312402466815356209040569149747369177464333494054272918383441275153687975368886205705931778296994004835602370721225685565060236140804680757236780491120280569491888429144514664699649481725720676688957618434598648215474904595190585294837620426010021558897218152283929489695726320289176439164556601697477070574658889896157618039070453737630878379361466047988966892468529234563779078020714041938935696257258083462492423689209821212064525961196162287682119885129972812529703139424441876471403472661005941729743904108076739513974841533899918918637689695435210586044259514759904990746172203052249089468181746687531602197919763626019804071146169290280291366807769050097968536457979791637860910693488594209511978218341916435462422996405384213539425515284249936074178573266145054125071819609332226552371237866458391747885917068480908416386774268582344597180068059170007706847178943849555614703486206003586805119977047361684039074806291097560095573065988771813888577090706869445049646732758163788586084478676539028808997143358682277124019137222435135318201353362335535132190009306931389707834886942874514752858121333034817420159093861133610500509162699800148757615639695567419061799202083522453060970905728492043900403846991735159451380231200462308211808793151860466817234213572992029989015516064180512376876306754547969652094145039818149780129800364489045893959228062114876499050798034880511431345766145512271572507556653654412957328240694877838025999585832296401118769983218827167921189245062983344898450926488143448650108100314265788499080302762819508329374471808684050839559326891036651023809035094298554401829579293695563319476489576895667830655528131130976268897964010892147424314235713654793604200473260060871586318647252721606402476110002456767994746840436146915690398960859273321299362658254933328872469773544082105951545837272748955392029054828210010532780762212741153279408393279458376038975922971009474690556334210207895367537063413632571376232679225624886650000240645150516779275357470784249078289911855177849818090100504318604369813444223662003050470298668449098562056141319324042242307651094030429250262847643611214437067489681878450502094722385596017793828862018894754982304026007071414903643885332090389744982266273258555817879440692719574997989014746278123344796723965091373993298237651200504984945817459603514421566545723500113732069929295044786333030451540461574307474163778772440898380095548919177431580750473910748616895239567906191248538969103199492530140454139407137424163267348913913278292072355673314460389241664080354450240269672782144746477407415146568224651238820109271748782762960778398705627332161927571210907845573138926687325202207621773261073151484537227441528391521326581299477743322101892742933426614774743278294217125813134465311712162091877020586772906958721130063477087555838214817788297353321148138702212235175200008662122071079663671978350300667694636726010977955833062642331034511469620879423167433301437320390034360421617069672310228670007813584879633778563732685882541824090332592368737417154751341234643606547545487939217436605953859388923632702727626578146325388148352921904926526364235394567296503610003934187073659592889475057695134057340011759748102915349202257656256474193932843453164574312799920268874038526317115232145737221720718467364461808469587921982222390232902386532673257758267115598827793852608362099525820624463441186310441729379508391947952279893755286514912419031402118774063430959143096941929495130644470212733936144124731624510274085304938491224264405231448643819678141797310284479235226113587265272503846844109683627243397967835433723851059127389117890577599316838844930730692172360600183879017274926008118954531383232433525870593647933227096367835680055916102160354996077628765273496884648595267928517001147102586814251969344906346387282591621933329964285642832368234740333097092529159383590015797372454299108039000312029954943809957258310333344257296096820837372682434165400467797913715952242830432883705269659390940777271679667088973536076329106504018194563137500360950137976019842638771133017299285745804848897578430059793848738740305245431765977093944503308322215014966621717106668553169997674123906593196723940161288220246398898415576019678822636725410252443703591340645758863753500666234376120225874476082680330342064544720737820397964178039982126240446233152313406529348087121534244276789641284711508590122272394955085967211912335778928855198445913181362359950842841973845131748484832712873070998438098769655591169545285504529094029454123841358407291064113971451367759285634756499012151243725527187182796686397166581191544178432537632573855013308303728156013272871982133354873895937185351528640965494229246389178873900370072654770636015315819941537706792181518671928106523058422758079663918258949371580723561300759149958639997353474920600291492813061754694921545445858104535558095312280776537913487637959969423043000365780155312134538791037523473251706227045611848083022934781241747157572930803281149711917055620047278544644689200352479457502414423998608066484156324496786200851478624038901383178261002538195619889709332340360462492263610440979612494933990318295757589695381557096054101771616792273501691150124450375841982716980189123392510941821392496238070969076834628648516680564356379589907179360232737749257299707452742679684091276090742680341834276158057601060875295725709710857907441730227845735842724005599718778377487954103627130368541469881338056715264542649759048975465132166493947421541637917935943300949313612731097327708601146559320589449986421578887047000700725315554532539963956093669279670202810775011098777315217055213586970465173856150911829205543164087826845545775925832874479066118164779704718654211970481582186171957203591025109340597373332463123493799816120639604385122274827453346203587561894180421110685663144517679459784376629734136599330323287084231666303454124371106048073744383720896145716334360864838896813920715151614731740306930911400675044475905017591909047818281276401171784599942937994236755871724680037434495835389035784014912897858157283108168727028456315439873487137289979432262761902161670072547832432626764370177980795324138735072716946306512730928940925039121192132924220433175248641092125596979637947334811486466616127000789237189331481851930194633544537257153767012172485342264966699120657373410918141589397964076335644119101359812851949298447549374248261790138272035416814483636127393346456542451968509339752563681563111229220960780017092545780374693818373812655367659393974363828718794954814668729243819700557028673037914982887867579420507521623781264582122472719571528922756958780332178731332568826157394127974159480604067755152479795033339942787713445334250896484844372606789744817135459733998435132944118777078791189342176798480860224071808084615121673253761587410702206753775168970331225535447126109787009508741203216607081966941506847701959622973880015391681241679190550799847365228180999353081388132528933553751880914642616822362004929810821217908748828116684690393054184502586033204615311941681172599352590527805867397073409350261252196100314461630964439846476028365690096238847304048121794416268578644473494063057277417456114329948819039520920196273773192137936560182179915252879194561244582539245410920497527761954682710351924259427414180052507738765811971842145693445338962128135999665962956203274879397045704932738388402948372065512645961179916961080609250404295355529871502922558126539996473093863199314748740772859980988242668718356457539982872308252303358951372369971146539773802757580684658874347634949902792425136963680556959310533384939445964584763051085206213662379732635836344490574126792046876727118015883620397940995759405687117126854464270888126775463826152058553987541913689196074575646200995555487545613051501010994524986963279211355418961098473342893924847667046144288343986803459608083697086886782244183188061621143985458773106261488484807609103868620577864041197101279382218376946595911532026512917383397177744911363135234414687796618289879985722644073096513003297255645718321036314090601433171519917421747485059191538151610397916589879976412058140203160534176497397916506287725761451426467747190707287883731324743503768975142285178400413027693206719798068685047514103311100561096577569924200516067506749329739323426791985798002971106874455301150096023385332013752431659320832043523554349461864555340615256695811785969083104478429838247706655402753970467964881299591799181270870035196800430439647606565052507915356592878067330273283886239909942131214684793781961721589122703895988997938164516278666123656365194486017381514657033409061776161963607431727227795084141986108950524057812602435316008884324520225163545650246469297331791469386813241588597219691397294169694002109641338747608765188767772873877715467497496312431184419774815720550766941960827606840152517235866053935778050658257800160730726114890254871039606554034256123995167122809064514166619543711776668544033435155838124244198849218154336783049522413364228188644288815134157927863186262576787036735471130747840241170438489399536595672969553156922973309456237286274270845357978671860579260182608643550113756579022498651748706199950993367073498210601762327902793939579462227958115201742511648616427769474595464662359097267274745030589360511564634707868793890968519379142801453322978700566988367613135728790810730226852024259949684713529706671607126717409455628853905618175498437493268712880382034188160089977614345412775650442079581557853272945109703584327623803303151927963422973456524703888162441663191758050105440101717587880585915634822067851289971591406296269355934161038009519104679086382443019745844817207275357317818029643477569245955385929839215341236924716415717569492578976107521267861043513668512135984905915817013384483492741767666727528209784423043024332506013071003114371710113468957012976213480114642873850470465155482872563532231883397174096013157483671579295166265750696710067964645259633579680409940674409675047866633509084509493524430004797131386363488102339797577218897567505009876200345862666800139007256385249754915993464616931007146973193807956796490278714856094771900232232827516661185868234782185820851278925235382419509531224288394888381924733632869998430407191425346271441693484666281844691928912032445246891149577709451409495273449510470811881998204305725472907947091657592362505003320245691931550124467722013469441471742338145327800274110042519224592253851613517434073897295835035694499739429074647101949034774994098037269316742172480742069264071137998367781291116593757330286774396512187497379839069685359355160313228442056310372044574785677536878529377712466140197376992820322814786821747705254825744016186814475476478499662183556909791850279933951225896510572315801210958713419842513259684566813887982591841323828497141510407488822570842138289769654575182721309718486280693567236461828289810515790486830867510162105992749364460273300233863164166147234387089962662637280600445705401552886779468155097943180542799923390310436784437887449397083035856007084136080040961434258647841176515832557567035113618870536127245977940470567263623241350166071798566243033119785088911570027214958488152893430858281364244445606894285389154385986840734676649665836778412718637376616440337710592904157269032525591112270255527258376350941085388495674856834261019559326230463905744063308599255968745443462356289411868085395941841534056157945476201481564194191896675826316887996725915372112124774896295460566414629536028637724978730360352703832299597607099712281630252556639204064630220561015992746381749026065850115721069826948163936740995048498643603928420960516749893462286111751969674780905168402653781556938909332814720775168028690604186088905074810705298345796537701639757080077799251511223344267081618535627450890284056073008414266301743924384970240263034566320366853901320870737073258234471145750664168125292229082635906029770702571255439105470035950882575201906579282268402767215533488673205968356382485787801742972972057118914651937053783340706306314691802139523721495326256230814678596812071789497024347729423450787665374138949576360096287628436408216243607273174621838961767015023799800076129518854357356965292688929911756244447005641499861446801706201883882477001458810559644350894200917584661013161393102727973769249508230395839508438000558537876981662112803680294494566838688041677227992832370884007527425306366240714800689876887780148195714772304929693713449338155909466728468817933727241656985847824156960621300530244156262484528169712973860806699285072446872650444661323501680093919638916981622058938881195245746789613380872297505189872341865841688731561043027070085054003264303824237164253304155747918859148043736669096606171676115633015555380670897932465740046135302546898412988187104238167970225689537790130292251254922846614984655742238365662769636635753499939874640520341476188886063620305134464465361655537565494656112229004260708385496204084699966502241695129511660966186543821898942300504757101071979507901804492222637702776694376030842160064290522629282866336541233875155411742231123816939391080331603670409580743970739148305891094657992999508850745064868498013300148734546434753940992562905485495078042381368448058263568764666325021014857638241915001436800674625326933353750046939116695069908713207644792539687145668490390333353717519252268004234761428706746740080129016593421200232709069940323231199339079229633511653605795896684978399809271806435983351244296790174789128710598809797134188184602659426141575403583839173399974466577006328474268164434302751250475118577632224379277788707010479338615486921902287514216012963341034560863445931324418674841926843543855365198875645168512881762923007072071274025545889928425405873258954453130496439160160610789281028696927364680285824152183419148537903525736943175971107282111259085196439263108829291580496970842805258417190496841231367466533329843971424055261371450964495394206671143889833611604343693227741551537660509886569977767457676945107785152838557027763905232226898857398183417659156420568919932792245869954696209710054913459750974375944863508445079608108759419931986393953652478378992459927631409714384463491512383673250908682603670149652920289675277829166700824316104328816554173768844087891369769663609882271560810457103677313020065246439337946017591826861888682592413585797486370610074250382698199261356561409849227425273129885642629768608413055700251779678114308804686299494955403757536619341464172069933994450127008499917877624185649444158620863731635809037044118329858528942301477059962750277735257497746480229732824158991466458722649281638599580839293021731166276347249831199710422639959582421772315598416947645588240735731102652015726556211479607130909707513592240532443193158878862111597137783189075382717913492010982752709054713657180951917778135141153907995396303451233223417082503207483429721548252026971068922037777386501410612190348257826956704337967800445308142364212567055836497982050922201384002115704590366066828886170505018353154622932643508519304265072453042612006130430551323078401248581495013035663605937906355305302275474156612392903428782881484064142142687541226340382330643461125703221509955088796064286681252197123764772398776594466820014163340547403839736024180250927048963309624615440628441907705754396231449136792284824920770643852339760122307498074170507165097423301775084102211382842572630680164369910680905808727100312686401343737116222482158801502073573381530638998074551346524486926757263827102737186570666609743567163770497102614294749967207394649811254072029827875572890966359780102465709309859120262115948487502687440870313708707862574193407958841538225363193469635736067457436470677155151584663545939175008150569527759835538580949237974500551731748706843184902368022074782811077901791243289391998195222447801507419580739673066663246032651842478067399927520288856473678808604184273074092486758338578903132722955496412532535760391903924152627247492020456139352535915091698985572577140210313408192706958036263756303860088018010818832511790416212807278107437166092319372273602651393270783396732022757895554529227091414692961610776621949760957053603500189911919462222469875790837115006693152029021762608174846211931023440309131823778034832545207182670133625841411436665637564695004593607168864835176873906886251445927961256648288057283690268171983033580056024236047003480479303685942883711480165926219082707269024556390268605301179091655581705198874590324933784203291967535971213413669032096703450625691262866920235589601571382953562971392138066817866094114947875624935953040337086026189017443033221418557684801530900997253630543298566529580595049787641948277149756378794626557647575335790413819027441765366763324951830390240037886550512984833109674535698870368564900084516727381234377023075758275337612715772948346054205441710583625489672155261897823784598621938413169845929723613328339620866808121386037402186944360247392160646369104478148690731678389478285956065392348839706298869111179606330095145840625380980971733652981989099645535695033980059277874726393596395890032551131747895980265382991377420285603554046245565325147826287540117502309624968293546419642403766189661128479538485637125648177994211010556623456715683658300381378833361721604065152906560472956721356696551947851173576532500275433061085402297351472738369101010163373251528755799188699055588396376134324572986098877539273917757690049904264663028803746485192493749865032508751194923363052864156747424294500535443979811939904841199923789043858432786320908932498611417610914087508010159673247278041259486500958137949641362977816791532674750600357371773895261920424160943530263710653187684915565698932643057655925387382529898091425753994557001501511645677374948768146896140986592192703754678468577532409427435114122744790622705535864948273518762805038011239016573909580424453024154270334339910077489807444967774820293483735220969705725060428036282514549220474994715651001560777245527116996763983907154857061510014613566828387304126441731787352015805181972183557204733725174885489426446150551922022292425229119391212659346953125496214782040571650645028565952741311734193797842520113637474756240723492949268286800147552056920280306245836029192657522514059449308523228531089291065497576235575968391464648485154869498351237327022562661330974244339737569025565936286022035822634092613515350005343782887316994825129166477941084370680114459733335779525059412408636742623616600274569742103729487161886162053338704256176434740057192242707408513578684126951011961375804847655195130407940475384724491930916197160377496658233440065720611095344085703284794465445524030139647167698528995202205183850114833670641853177165670542420173290342135645309594273692066216849045072418688829885487645028102761887670113409109026987533059875359117382703901319197584280640221468607379087437398252707197776659175970849486821301131482942356154910048384910736230802177353562215248032292869264673331817014291245039473132671340794061541587249405681062283884330035607473282503185164012216019341429517691830085410602731255438072261266556856874182506336431300266931576492665969340876733478560917060617024734114153977523597755255601635274000787564907994582853879349627634111522037690973211348646525095242814068877503245820233035091193782872686806098727964920179504625063105940123365582876374753712756068734638856770027768612225406970336105978298275301709135649476854472724160314391434264278999860495835962686566713265071698115409691257118298305959419111962494723123914535847623575281314068118584922893598251287888013463004634043381622532691100778668474197478399878168134047457698135873800246790225828106132137407872106791118061294259651440370015880721708245131338225022972950430877333034769788764786209657889874915407042282412458994322240117091046457413430144580067802743197938210514626066754452206264652367620486665840560534766075004668899355016235768726860863785800962927508256104998273797454834941260593237443220380894941404844912107301581658130646847221482500765632720609013974876564124406523408112012422899484343980125124984496283949813670031660334331013220931550906143348490744149247873368861344367743109526720885771537323397340036132501920105312432210311010908224939670998902255902919712087310076463678308671357873598718783585102564019101493400280109123343322000463847618538344269010773103488490561310693720635460339958367009118535148726180325232264590611032354755070193754962205630657776414431661685784366086124832607818524501191903090608583601047688195799165597673995918437205378046682428619329430285371850272631552787895468272645292494974423453222433345014097807102549681069758457635080615209443760516007583745166176521498164626452083987708900743992616560507173103977629635984964155078109997637961088641495295442800848761219397658653002926632643237858211957894642477111947947854875304343336082761599900657206290182167120481591445480162453506110207859107126324968748155940291530629114624736118650867983539264377222172403694062891513292279074649642882181743604968158367104212318195132070733770387749449722712643879496180364365361946384604290422822573683958158503623553697588360253836216873360406678834538488855476773961235059453072554309884523291686557220555392303039935517092112688723953732160090568623979287591590188446513556403122139977262227348279261784333303441276884232544764739429898942398883759532826155812454273766948428464998669997467006086316300481491589604852237127807867984400129036659674438368373700412018921045116324650855513100080314928318259673703617266110125682431182196207438545203573594357030685386564056806248004502612738117544891528043608828952900017216159508719239605502149103750715580255925485971618626721432956184319748588802529359222405787809088241901999541596868460123869411792581062922341329176781949634899210524093384319146122048316901715254661182229625351864120485107408305743253543379768314823127964792693116279423298108762873106021263225761288078362287287842726804522365434444698829825985121913464138964052497147740797785800193439946647249060745626582271181087502435627148570843890176804180960199036342427179411262215726590425764416176666274049685094318060190384767556121562262615857834576754598259572867777539669998343154511079166681743802257556189434795777861794640642875570281978241611355868353481324519832670014034132492060009915328124712633540877653874916661212741027130803484442244848081645973363385538258281828716010001121199644050829751500663077312115414919750972618693604546575426144977625698089506288636742022035928644651784536605123057819332991246547418264320711164591267570049579945349366070185934066740970541933062874719781510508471574609083868357438556170416963291485619659859623827164488179901342252257322491165996433259863629815605316855075160235565480216555937826077337610322215976034439270504705410309671858514866872091064409757145639828917024523936507203411583913047648169769914738647970277957438545438980072815328072437516157035540706582933670939416129418339134934164065226019090927761833409836075597220677665466893286458351754495822388134234108253883888766936209463280336620086306362879992519449049546486773129463364068165656832051237560623406811738167853627053552532105305026888248414799108004394710332007175801527181573545909848448051199828781875253948145850656213416725673070280842819879540938737010387613353505138529166568513077898337038448433381349280306242517451142645849738445920948718924873216885204243006615508050833942241877941561399768731791717095527429614713520077198968091958624993864393985463035704197051007529143452431728668300460179442085970403225696685612158032735399112554289834815152657947172506633505835788729216223962098178681859872521423863372874249386983399648938295541417744889700589022151385789498903150893210565468555767222666016066025737359387142170942802944263063955965714552498096790022641080863800922008850286390147976665668720636273933346513469316128890937908154972162729610487581765713951208123658812265377481040975934354635959791039303850471232675277211896123728152774764499496570789234022232874847134343659557351698672124633528311758789790030438286072272125852910128155335354351851492375440769643754676665921740337909157804599066437559961645327284406560446998141515369742409110613692554813262418754628378924247995809632667785335456014598680615528050356440640527415380304288218863804736635240557868682410379285737493912848857436655227650108061576526674908409281689182131202981353758395757988732245590386656605883270395445480998623256940227862969264831638863452331249847005710485858936559762869134573571750146965144737349713209777896624349637471821998242527269373688276245432133753254175865475166521866392376106939798800188101670215019694422390547141747378324222977559181329676606145264767357545820899382949430523205818108322383539879291485466477580789661731366427838178253577603039003135562518285584281000108157395038112848144755969455041157290271241330024738827630397981950825218410149021209407947697739679754198082352099816647043476801356924554700898922258375146848093515490837822607489837749473934377533371262522520313696898287749384658060203913482959763717053057649668060568726327630027631448424405556805385383707798565346253114656053547443607526255760056365679527748608923686915890884233292055365981442385232850995738018523725976184085793750741627102659137805790713835926411419500161315917650170139780325873208975026167429839777484510523973751332742006795833526061184953180903532060834583119117783985079041334083823769071843153323640201435355955827377881967780966668314148543513471132718956135704831887568203923728691073621552083383531697980516105434728831755805194511246119946155713065865405840286718335470507755703159180887990850667193396692746617041863417257554628772085318457147630497448415404106145415630058781464730801050236943122524610892540568051569948574863678026714847130223451457246825501606470757241323462120131936373758905214991725557558016220249098827772170446524520246625000354187781036629625621054511604210378915466572663368990184404157002093542413546705609582075813896457281844404535379564915025735912018860251989733264655476742883527292314947297946297990307547319874796671694842160064545958954228593569243116144720245051470865879423601070203373928863887651321725393121786317056270668207722309827353014343809669831777416902597063265457203063169863245071368593000706496047202922366673897923560123698494465342800213971775815583845236246970913724287359663765672782788180152300417990231752326092349985626451082773867517499958308777013454449925886538273839178473594703076120667315944874288897968884207390489456543677873759409674852561545916377682386962247943264918595731552085043702602540301153555873602266169434216036530036042448309426421155150002599716618279763373224250420614465841677037853730540699726857487064043289391028440899361887222179282199460932073881788642583987825180590484871540685141074122874610446491002262149734734113095670389603066410122784909036442918610329106781911006808078876897673397517220077442143047199611877224797812650855876352359346061270467418491202296751380755913362317934753692856906208968760522967236080833253138575896564441150536132418574501313899445333353964948654105971682914104978442195149910117572381294069605089850348448489713612421800266594982344602125013130476978217305401188214882320013389925055811697635846482253691595637990432430159546445164465642321351307778205819008074685543850722446604869102269739211707953959505274113161260128118359045800932378195967698300536859318667235079549458790891631957393873782147390861715812123446522528824578775465147849860123080211645029115479567962801746635020834465375422977922399993661644235449321608368375736211866159136350001089525331996069762057602637462419813660523949827209098235321415494716391066939970783026646196156377662264520246646508932064756238007928195043626026728431037476327397252691751614006467119478622524309771299335889311281519208611573087130158368191546754411121801828994718637228232116323560161849893798753767106016644918274955937461968942813805803871410042438641763294090546459851803779789110777491864076240854666384818191895156392235454817362962357074688575599000506636840938318251508024240233880173673604047726388459947339241224264454887915697717494369860630520140598773484347714904918037968130999179618575510549181028029678888376356747252341520828935785473385573991547520971841346335375737783387052569303086551492402136267860621921800708958709492242050353841430197516477805822602954817509013728292507107117207635450048123866132796957479817393899761217794133167122640091660041794629999071361642946487906840402465771878637773875233258950193987284912893140494208794557372972214690827036700630506121903828395123948928643504148423689647554043602572960610468061536120991053246293884552611311367324642152053657039485796798960094456416563762972938676739166940903311250368988015798327104735446583897779709760246453010845228825184273300807232828096698247846354069681906553765638761708487054253933330235108731599533143302521830545313993421053800256712156877054338462786430075387094665896951315018224215479093869443787302379008964763444811928117234736203128564772114735806611732908497077122286605792312595559490955535319080231749283241761860166671235798203190833559674413572696143576547825486476881526542708234149345365278768595381633153958451161344643870045189349167719240064103962450384275439383661309870633636961767548141671263583885347450216780676351292191264798769107040072606875108463315222866428584093842265312327156566847035810020698829326753958587925089177799990745740671968544285801584993425537139160646829747728209099420206334011631660341525772337876622975484124560787097568011665605576758622407362343995211627981071419330613826680850866318528958941410350878435436989114912811251591747355936741698836958268126144520781744789110743471748292286442244540889047263669482690037593127954925909747934393302211260030249970613760672671999355830065504457168750220564507594614008260080918175022242723023975343561213620443539989178988088852959230050548134098165377948536533008126444734217516147921549086251423321776435775703410131323021010032365181601687118695353537048518623633096537214773531011951662359601244242909399829411917523895820566530490821592682579901469868120866680314644003005761646366413465830960652531408566893660629252037657502023207917245515392454900718702159625657135770282970484032561179347551943790162733588336207215288582124266681432847110898837525732035489621314273263015201965093503315342882261632792966138020811709696936848342183397936411563182551640998068419179643807499156550656708209892646183221734169141066277136183539370803955842242457217246821908590206059357249581582965908527608982902914332127278529703775182205717131721423565266496235160943643739775564412345054503820522101579467261496316644512242139315393642630097644540413857641002900913293027025923269042455321738261302444927483295098140920798754158384744473982503610004275949431998820060478061743171476727001965343691567138493224897711828267627738873099446116258965425278061625969576929668828808328534729777834236799037896903103927615553382935085497021104596819155386926302888837598396456723360329842745125883663889946114446006875142965058114268662549464890776734742041882621780689706966884138131515636958560528748514225144130802340858505479299337862304382918449295869772453978855111905670887407715409868181623506989735858301337556696993104161315931697842489928021223396809034217023538708044881114916101436137123452982307502424306903621989937266736393703400570717526169384024676745494762920457593734828653726385932830410848353208244495908040797707718715098826943174530068687378867486082346137359912157282032652504157963020891707552412778630469675498445285428002817165501362227662764531332275577978218605962282756232212489179880700779565988426550378849301341121126073789558036905530285733845469067045553587719312623435347574467929899732903965713307470407732894580837393299086957108747951404852781461450056015588679457963834749011836860179873015017607808337778262113014327501082839037044869908740462636014791626946670178218082653251523338866701803326833955437694330954873083375415131282326303435887584463842599504255757771606438646920473387872230985409405306098657651149151280579480854960468628759865930734072479536042120078920917613711171886294210755913383223031240507798212898268028926212563898968977187880487345062125434990915963337760527088684201684913540914234389206853777977887729388326573487072486218829932227718184195647244623905113342795745622918779398063636122722272521744798884554586372805862346123733490723105958811148500575729926187297521051542533140578211072425726782983696071336158554064890054473217958934730677592358403045384782066462116222054485212708061905275828356409698216057969887013137687236615623424859295768945128375738601140934723760374569048291978992204139501829574743748959414384031427055567242445980590406611108312703890215871266094134891365992853858807912591382435318896878144146991341959204677829688277708361975190868678237030069197668281641716883845194144655297447507572268655363946079309656795636011587895710803031975962526508451313174721830347324240937940636969707720366414319841607638434812716011461401808531369864934073333460297587822949015039384164140971945422646870004508175531707552649457487702499832859239821666057365280540255194002531064247307570516875149859602994898220592690954594695423588229672853908476237013583212410928805670823839381148345854376090401343377896210983583679819928134931089235379509014905894606993354592813684844938857566673530973507497438219153997708577099957000147394879688987581340058583684952412597621288338854028831420259313332390061619754371590655768854054473049373117105062282536389765792993900227614949735908345376668085807256324944933070302635607570385205362931204427016848721265493608648803599197031759356596556368625557047177786037600414653148188736352858487856389800865032999307739247288689369480991612494842962336917417337742421509103083751448456942605953795752256027492644940842174785916203640612359193365781193331486373094404688797732404412391421461574199989923631918922321310512389420542959756482580113759913485256703551909452159413776667617424678128095911919258467330537503664126965332560241295697981077101233751605097500948802610665359649685828641294204375802839295808073310242049627402844685956848092017734452205069890496179489283607048830175796188240404027421929208870097810150801904302540323089140386449085695066122284136274293845233946330010996172143452458370162199885691434185039475052554534670488211986470311862677785372746342906789186956779433806395501382429035479753420553393376702789485442940287428903209787670932511364196058081273130579595007950067058642111740364322566212572577315805710476993524225494602007352900599951835395794456616767940669469697893394549002734623705272630246257823951769645970981594548605434677304177592051111177724602987930415484647236901677718048637974708258779563359633012591452575616572887354792458792464714219341749106721690064218311660355964202185581310891521699434086806047295883538944288125521534619112699626542864575147174804372265982153871366410178925338938796407230005882808628335702841151720555805794207343215428047813598452739564772128803654656778523116213535145877632078558729224201688021121907195025195641594161067099323610745364312445352378547864959696379669056890738091014450764334008414527396909403920047510855601471939499234870271590710828787737443976208016066610684427862012549683660894630550627343073692494050280116470656242984381272834357399557695478727385757590845406579168901511265932785028213046829507024041053121716910253466953839970288668959211310819474111414895261283663117069681476770757952843550443587617392535650696032361534643949114120863903814828835150294165922226493577651907035220992748580174622703059569615599369651221035893618720384940796034674842107644135189069242062721473811372659118322880928283782881914692554638309318491883655963072165752382610485122538010836412279303192763723774138537402383004641130932659424674407191071144827520844231235765909030464026264136967832715214511633997421637100497396641995558620223746950122205839329096406695126126669938780936767013938050399833251821586137422913620099180480371231560072813184156594420194246787989872243002440275559970692758558709746295748575696262490219234792579538640774938258524178465609780986862692361817748224308053282628393107174995343482575420119617921369497678607336310896299942041061674064733434043681755307594228760913239269821907749857254779574216420829527260403566936487065934353329701464875198367852037274070892427097015751960586280847848247651166304436228114323006874558814949433819073035343893991401522267995585059245878817785380630587688173939726527620647068245365742481490312587258488724962275385562703266968354035705004340560526377836953533091601830642486606783887655893671515328474736932316761136656282424253314968582226706702133939111776628404066243897260126657285248397379674320408320076546652492509214082924209256977159498141847226736506280741414037960605283770676645264463135416370791683250897540140178743538700361288225239959333068170084299013250444091036619636843287535293607061016624349180216785999936562189207273590572437564369050339690230374972516850919234084909471621523264019758736994610245154422837410568021320554016705445860128777743280423504547052878168740763653193872279016218543713060334440919971097206135517384900733978552138628785111260949952635488589309065209899276252791286979942436816504356791699782872310042706759885953684958787415519466462833782712010209953163569456637736350854953597596346301244786642246246034316719167284716286236955211857867441740190894361070922650749550948557172381739512812963254753797024258430038181253788396262235131113793676417640676944204020637930323374227461989701652233421597007184944810835179656960251544034709130207915274678225849377906199409841080168655572765303475344637941757542037139536899389188201090421245689235276252288794184948206667932274605179060639199443314157360115752964915040929860342204167794638663694981878027654318291456006076106701957472482824108191525330458112557881805414583115919362599594469539096262172099257697576075643146870756547285259511383237242197603106877070037050145681765159133226268551890955076991722675312387997063385735235314855405996160368107449445440765742545872994914974966198282795672553795651780900339905196291773619814210314964010213985437521390095874179217147304505684689568319615989355924800205414415700660333010288707721649884388013341841191625243133706338103196342584046982881187218532043221841522915116058394013418013562353187006884084088193645259561275675220709427776907221254295036891279541912871394102087092423323909161322498899225746741344534846438474643171157054024209370140606739943774272393147153054280977789160578192004342321825291218677355691976696443160188448612317977319668822313401058041420643391268892001831724177619924707092793355134893797204244449793933932214199140857933094474126167773141287926081239577463127596489619191041307574309385762807239099932710270132390948753038636316397734428871258836948512437377044008172983662840848808807566100529596321871179447221088953766026833196767951822103586634386944200542654739238025043223528659080443660819119752279858903681456366333913050457756915295897818664484567235922571156150088394530614972005629577964687490822002195194152006552214287342508636636514251237490871662906676703316153275139316310587636220252796629515374420749970279600867403839030599375105623146768311195868530183377773391953566415681493030026784797420704305197942070934106452748963178507434506224957035927028325042661848367271649107513624077513172473667013364102354965437701718551752543488948143724985563475745723691638377644520654958388804592453500691676547750456489366615307234704275736193638732133428074310610033751288682553658954603755944888316485037497714490942634112001399991102137201593046193444576439278904405556364020316253198504048614087590448484792938454724598969211797683715009335025790571755556015467117101236096691507033639695884567341080312108605962985584152972967172103327151732814561113391103165462004967566302332512924111328635451020639788341094240014988236682104274181646207793145353918962850661883144185979203745317906491545049247082971492258630263261280607499946892208123144181135582015586617841275912900354658329671971970812061541253243396243064362441403755444174013978982073624400666561499068971671420332701656337238104724980931857106179607270262755146620832323245140482184154953997851689537312698693851581881456497631293968059877834060589645449564230709548946572964634288215330076619332281632381038137962102236479216456903512532515629345957558712664203362773853217574523841355747637040896282394110359311154159840199597121643147376292085820955397034157583764114383489912179098792898807073455403623234301281992596586504866801029336861611852457578432366217547247029309462483302574962938040486946766437265029073519268563712762658480583616466980764011438675053241036635784685431727483114432172599784945419442479744543686208145768759993816912182836841500428838650411036962667139453200523493813745307507688679986382709046408897795684197481811806582198544649120260841345531528427699634918084638284472962915976903288716055464701197637465119887401951965838089634718176329373892673855986623470944329764704056819955922052320716272793797176744484215860143770719700456149820286508563450069999329538612047008348000457367022057040284247760205044291446891769327567953586215711620010042347367332423906139683498971883420470693765376996542703073601239068475403741224389906945436581613885476260614152727503058903636566210194675611496652878751551402128261719983816495151415420233374625214470345557249206880467133219293846134211668258046796872502971633311992667801399119744457535975169897622303774838022272741579225819306640339941239904919204500347219712623276150328481394904745090546217963988037532715422676792728803355679018402742214783774743529924756198088764401196037610987454301858726467078947171144638769178251849511682146153922474530582963092229167769953107567063171215983811746742350390336515705159427457157454729575035714417025516141657017483082916863112122526465486071171100282611915048686770896016970292130309251643966566408416965856167380728897092036526643929261156640496881580061338099811235416798990789843985315176457811407145504143961622573436302796891438871844544649088878170301168220371855446229414129349144449308751060342563002970214160336501884617596576114382369343553092946303096532984629371692911524932799731200125818105624124604312293718551600233073864787625578801836767470752588051138007964488399965512380650486658175563819689799602387473064399401760999711253519247315774016245782759949882680395567480018698642735396925846774848773885346069663699008782829701221523822057911956735108276756249107565327306123638880184824197228364647607873341667223250410766501440889798903651332741848547114636659339987964322600067214131738993006196914187430208420095479599165406805425330157924739250373375656008685324026872250585342010262698842129401345763041804107933890568146946133665614382876507984415780041773610320828674818034891742559493535357595763608557829108415505901006703179744174452543630808513038014682389590369698808729063224418049611421964065957925410552242389603650405269951759686043146636374199248511589450787801770244348330052803867528288576157954046545224656213458118218781076908138178031419750618309813317875511933889107284301992843423575608191435834539536310759971475638619977783585758576301421188716671992706287392954530986602108983101892318694788477109404013251848836042481882852017089852681590577685049808666596256761501468888418014571463338771079300256657920519668596286070584069802295988354071666134538770052753944117462108451031600554996558213447297647304267411205199326852975502196536370532752944337376002527748755378593391855491592717905135868955262129872424305940116484627823863990909058428946474721835695887039920150108263093766727887291657545919953656266826133069064390766678739958565804751734312704122444925697919535559703778426745470301020476643873804157752514290482132019366278320493905129331472203779678654390073682608806201659998125422016273654468815984863549608819257693545912119054940308637579733158211690149515615410871069199464164319129994697956441894080396024786146887766445086868591676637106246639887505093092869562986526336918389015997104631287052633906698095828038618977713373705602873413637613286550000364757284055910100378549000683953155231302591204872023693958534761826380471508742240072727127057449406848581067821090093213300213567340875962446282114209916008631169541452453226807864009840090544107948424783003516098478437527295337415356385951250533860505705413264160346243700122991579511987232971236178678675730843933974068139682105775427412527396369434917812588982952195298271673833506849485006412389903684225480995274595697369069303718223055557106963983815624695893230318977916301202121081385194775907828939587213943255257266657639022067754263151183949442884121158385346512311244077388447245589855798698573351517009597599626427791089314180430410450349937309202747108858182484681281838437978722249341756782811400206400465300102375031036849178209521518954354198146047011061724220950270056900020042533630117503165653247619820341340318958685410345657353010670404030160981907944971983726406140861170271717474533497969923382403564708682916283583215365321679532135660065959832378239484449103717235137379946057378935672564850170256772012596908177168893494849616814284638651121005701758085461966526683655666831472542379702646068300666151210241918174830827604348116934389923664350103225553479233926112888103927824553260800609566095379946173450063972686205805664531402483458424713295727666905550052595574054363983382905807899968039301565973887176012385048597633655678830591123952760056277131980909360925348203411778440371828125646327521273030174267474529039138452430633400265704466113179137972033862492237555699274689914051358635802899577885722974302601403681577512572505106409780188706667827299820237984085870102962040408261691231941640222812699943678637796319407588901580123265221979548250371515584187264408189408788160886945173984887696677686005586143990063610984277949286166995523222226237903476186414612966242201740873387165073918024642180849106143753463426551891552350982095989138261459036320508584980385479303008902265041914544622682001844367714917776472639921216138479192269497892735270763919665162194038840046162031862884382389519423171719864320518272240516488732892577627837530626150049065910184347653349198577885485395661199756273035072299594755709073312064156478145361566326125582452495643673901258096432750423980439193456629091460017991032154340285381745401155947570918625941774855429468505513365254439007358408180566502249157242581761548437330747710584492726600464521051483512212944079761505170927102071998955201075477664457144090982355060607531666502310431797759600570015061340468403525868895189031194635949403764229383386206105892781261608429096399050963972820401226438055464871754281073955207530455055635867068388372236751580153182118426542215477244940766834213160856460986600821725902225225528305886541472930443044851160736347853862144685919751677334683641093104257213534886326584075610263076265651962282410913323049742178236416609313316016977017363624388211698490149857229584069759185669598194044692672397629428169530650407046174074845226843613684761422868719315406953181823629317224965398173417365600389464032012595438719173260538236101828647348464602592431400325270609544500765464403175328505252374529508972414475335065937636464187007387867016628552878399371931394459097508459635152542313384964459411157142946727842548508397150615732977067504293914058308228545582903099772734960740715432712060272098790578256703369454312682223418302724472637461609714197712112084700974410651634543271233804071699402884231279572281242309051566151458692375122699973329374441783578300540252434551563857757900840333996083500102984258035838047221198548168191968695882442245810810982813209463270715082589260574983618732035081567648687733223635763415913491793478468463093855053641109013501195466627125514644704021475782121956050849659926959993263608812214967508173179006297206804313448794989753347724823314489819186526053005236705622714723160609047192816445858798343587456457259580697446001514012362013238670175741197291680032055738501336323235635194801988953934728921999780287184400190997796217787366462856086009107865069419350103017125656280534980555135862613982939795649768251229333695148199167430370499393337886883669167724147171611711903481720133512212551117537835614698520881760419457881388143273643339383779188176918754433270867084964048670426970326708964748329186313022063359579638266130506325960278739612934841997223288754833150819075485313576019159488809538005574098595429867413441374184913092475742916590056894381916061476707555439099139177966805944529411317827226728571035186514130575519301574591184649445990578071945679645493396365051470859633140435546836620467457151369640278426387464222830456784189383154847036996646063870514694242911741612381201439355573595439933080333591675744531521512960530168427615306448252722126594471642000693534699690007148220226769899136124217298222342124086292673937009054355881226735743840944713003336637130391854671465875889173551435587168667416174818541802829450354804589691595459206522705158819102061407554458374616642834869025090049037562132944745911753014593041720006328811878359386280124527783174872842663528085863896681645215286308461608620610634477950575003724176815615995528164282794499450023081389433895446301978512707075508324035660320616619033155226212085579846067414161496155452889840595015843342459154779278316072933988220474751672428081650238050523885779212348945709387013942997384201607281083724646634695640012705679681253196878708604827735192029334034779093276267676685773349788618143842675330680988108204844935218755535384772228460665728899844286756126904388999523061868882959966507611631183517311667422878015467895057397541259296865448659742909375579516766641893660985859266498852156158025003517320593313406118155309746382778324452757829460895332107791661439542530337824302465699932701385358721006172767381133604393098275788206853387294895175876952207896311908827362632734556439945005433600760404276419531307229136101944702940073063559066063642216811853435939895815940402487754398753018217267950668979806318962062487507279119274357617837737908537726852829445288965496042260326965042580040164670805603884919303423073569391698697989949490676008574159177146152540442203277131420778608569615835254523812208463396383402012858067152452865281130263064204116731701070669585311144958457979550881179342465698506176362108719412020772308019216191521122428822965351326900420059441347528976950961551634388056873791860819790909097390789920718844857490435192831692898468430704626943285741923273999547970182480850380011827206515922701593622801211275796646964197211831883156429531972336762813412846291887491089203804131273768952045129454683740299784794039717365207705795701964228009139836700016716777924806496262497536384911434022150472333916560585140379152370576268683316555157496425091717928744284499982836395777348129440572144233104776038076033163588036962079894344537983630326647486648990461637292362419599813422663742535668912720394295686830257366574602324900240998728169001463169928646123604835853118108860359960563579582797030484475701078579234189720133134016002070738832600095046142668690981757848282660819828299791523895360371370505498487697950396195245007742544424181617367244998805576031088376844227090705961039165474664518040501787056981352238910990924460469285025425351268594537886982910619158242858054949287921814345885239971219599034286648546893395107461498879505986166996796487333041778645882190437281863098410088802943023827997652762277753613396222358720247910229550938506899676544259193439234944511677681244016439611861665387374415036070107453076535494183752980446773585211337577808672252684768481898036024450862651659822494765850595148783800437062085134018811227108766854145307648606290644852019024290350068111610849734921210327923242105288860040192610373719396401542103169168040576214005936369344117322200490232329404968993954767250357658372236435614631830556459004832107589985196547381303590070116700904163846220650959036001365870372835606855955335412652534034631787810398198390674877859229789595625013397218568299467066657625587271609421998604499866782856815995478858955528383734241246111092796931973100166434841098341678265264891561433493617634392211319765043823856514448367381204757244062480095527453863127360065878234595728027336455873455209339278640418599225652518568742262000780929841628779324819703899488387326029733121980517099832081600632791881822380395081075053780047004908845264864447647622214833321482108130758649776687231927845898793747670645488434892541668709772827217802319685855649848440309519163400065392431629176775907635823981771558005372422904673331654580859999757218982046050944947109053686737904903293977374889099913286052372933105972866613218254054441030941939358855786104546303716220404233532518259318886997510942313168785902780407825145984012050615028388414561789604281280761881344656100750849366881479721221006741604462307559556609328026751418725013011831611140041775966323591618587463803176189643407238927621666010926683910845014858740576120129587308134829025694394340034259646600710686514268018905439909115650767186072527763889510558481477279434909882988122446476023315332800086452694535689538240496681738567810275570990271096366004652406346264268748622224892513943705663036753265293430009600774715062304411639177854946820152576464705460414996711511439052826255729712378475963582857746218951058071986543252478054605738256154241393791914214117322677873251767503235617274534785026460349581649509436994838941926476538353796650404335562528026065775239240350778167995435088058104845130224562199984613915282109031604305885653412860496836672583990031443463428744955507533923604625268953804872171227606606391082643804088360359392386218470571916149958414630655960483735733918295041777530230565646549523795309230840543659623270107329156069111751513123216376288859245015706904350900708821378011918330127497378451888057675832183414701446165907146010007734809882917659555607742337556017025945538048281779103405407939486190615646025265147183982683740271100565099646085212918094629998349634516973415920465153313443690375356834391470417666775439316943849514640789826331192735653192992027427088357843792691778243076405344255728971215717932982448546591327654931036915201550112904624092952154436733573061358714592359993366373907088182208876160886008150694202508468299925658128616619295021629275276320366937647310733182683934923620003391429828125408813238219690842564588314163282236070053511770243443089381776155650784915648732184067163809133284315837359848671796898228766730507256716988933073610026831058762401343493618004119042002880547855247705717403527981567722208791089240263096055068321241996181456775071383059375923910656328738718213681353970073779230874804957234067210703746618856689889248642416893550175649194178863723947268355775043575847065228696770371715692269914344975344559440597078484656401615383594234838103473488986297328543579890731397553249293125949097034131049972042305044269444772486819847663119732094917354815669902601395118013697434875777029050741215082600033846636037861882609909810010867833766892471368772571474292983893108089790500236954158230660705815847425591363476195383583443771163744851953837202278389134227659006135331234187112010486132121325970376989099587805790184522843408357389731120845777714797356412130987400258661068115767531978627169100287307008312808152388466686853204556412064849683420960131405297301644829705127040493854459306686741396325480773179368658687490005513181682097214545912819332903390355927085656446139848882351186355129554175767511705747714033721291837672425736153020008407613234918384849637489725098637350374006434418487471227169617009324165652926095453717925589426670668204130355965368616751718782324595508361750240182966713616473682695314991707242492568224710522148803935446493052045210838414925656148616689684098692819073236084715786238816459356556044086440071595087085524715877347619556552355221496326019906759105716658081466734975668556598576140945216072682236490925114655547654348274293150416213359021646039360107734454365699682430274722700219254165504090215941531489784153661059276831964149613613677571552261894084184922751057715170909696333639901077850270012610520952470226744603208312493063607146668493305420022993167640626537636336662004210307251600693807451240214194323351181858996366712926472845329477590829179445551986820195232747800439461059754549289053629025570520288964985173854943686693615921540224641525844452818393606957425860677970080169770695002849031143930866217383619983925363258565015720085689604993607363995484046330393684761157836452685098777290316362487023281030354334663451609717307859191467094808231856308316242435540316218679856117996847497818788761210103142369753842738295046054995461714192099269545578325415222548128866943988519349753704050649506774089690838548505555759718546721036094013333157517291193749589545652881989000684397159461001481341176505110791983808334845851660894621593694647700980558542580961657177819747642189015826620450061684185983874870131086232965338430084878357194809008387056201386550335749994274887191350065165741218672548414155261330259549984435465239928531502857031229428316001614239892543093561188616112133058992287982834955490441795263558683787847499876187744322979251405966158604109654859663811713373999003853654665197208918583545124513008793591446135275016312000197140210447006921969485347835610320763991781767251108425918829658633480690138181674127146950142237050848774152082667894075554625210192473589584260737751606671882335135419752187239826475076663647115538152526342759199345610014217171412150369692871853430130372165755749301216610778501008609746652072031419156127048736400967839907616734307246539201746921178353923613964909843695363240941217755089578471654218188959465203864012778929934686683312368407746736636302013508103138598798585760786522916497145130806937421559431018933417292247346109807782606800188487303312344440567008435598073713779739827160474909373094207677041966038787341104010954575901462427809098570290310428163514950567845539316213777063247707661219893391212733903945551288524449765442612356810051550115250321534198436257166894090413851857055603265460887307586860040823885864270535236990683565372250590039859789423132894571366691895065606424988512820471248022730808932409785136896839727754716774304477575026869332981883757682819906086471697477984531924130777888623824096730430509371515632592489873293986028948179592365219520167365905950414552351922366710543690339130532308541203696869722076074617514597099946246784171486181144870821958788296378581750025678008926564374702136401243411613832427399369825309401231538223890922955382907348524336454341183988721220055687385538765969689808558639923756339698594902518372808599083992693845817387588714252692412762711094390606717683427465714447948622493462977518301330065478970224419752670595493269494612144104694153699134609227789891032830298306086783345611542990066620483214702306583033960880733719508432580028697296622316423808768603856092431241625910317627473725150204886880247218217182399170759967279365311125587193981712881088999065174591071600331007711155326687023057524591507393787745975150485009129711422337012609018249064968174132720267744807448804810461957526835292511780954985374061310560226650700226302206426250401092282713149594184818313975698492130534352255971516779454598948297422677118533947104387568008491185007673390793887141519148583327746029762497480669542535463129721337910653760240395229564899413441584773984396636654971104665843589812727007473341425048519741236477800237473592400317443866723834024147182564824216067031118105515953586388124390741902225164629615090502622825860415316038026337669584963680759631891928495985250987151358744422815843130273159186103769011696033113448184267167360081987114067098389357111883862580266864987789885175783428231043358865378004982563909785850051506599723606783178614263940836379566992932922297030423317334154781775359753373118308507967415337725624442110526707217191656922297434181857802489301076526047529412184343350312904326754529746049726037933285202505056895420024427110934709563556100242204382756611415434082419609469666490949564536115682160219149410994832840296554963595931789319661684712817861152025779331958563545111699861245116566739903214152811372985111349582608051310517261013179210250103316983332192173503002197128026354218190889655960036995659350656221902525355953549354304534264911086789851216637319994629600800245482524879359878130512184920721848497012312822748494096157808381829189796706461623633955801907247247808733374175809347234242107470209395401576614984516561101932132851174524787279057931158675726645325948672529765903704316427466748916391255659225953901894912639598858475721486864566076796215701816361478236192632581102248403639030037917992183579556866635066343850975801573411885766922849046876509467456953842949004909542162936650571982321395117898802982400047077684975416670860652522723689864223370478593768816189431749273855086499823545993813085038661136009222385189821502934216862983351612228744694857732376661351020301682947975350218764632102829489383629568739299558033062448070214130230158357437560380278779124818444910038848118726964688391303255509294626994678741451758745802312568457206032677137133321825861410469772991840510046708693822282486559068326888048376074305551576061944726958846085759878847035433389837016518395403103097060411173041243474917932838245111739130005204311584405597715709239016559120974979708139984398537700482307768448283259866726413504299989426893555247118449619792015167016507968810793814331460837824328397244123052356984121667255927495958321375460842697119769928988032436072612789707262458566003034204666890530030231729295680417244256597893211945501021476613868627952761975660657248113932991848186139853273938998727160102877196963455956873165164927589404034125439330148262874975393941675496127058151890348590891750712150158716873516762767326293050362331542817389498924021007584639436493971429493568039795223607443746236231005189443702575383886295404028455378543274508889466302293554923939471439616494812745931827925811782961390877599788188650349860934369936025113386764380534730611413511828639717910564719959447443976411892434195439958742613738175553654387871461255583480157968345815651990983691525375839223337292065444267547206921922893410602175048994509528742165586179365766217463284099172879210483855190235578054048667131901523708244144060926493462596461897406474187304653781461604184451296180401885730779229947924055665749964000831390307241624577629315556682715402281012104092077743068501016469981778195502462984960059824091846443283808329963136024206231477139837064120218110326336712442524573242890300265588662346239825476376095228880160403136359880059011673302461868017701746739626927174002080213244402324317660497774849900441921498672465132395620399379987145866933820445723191707727684797917271295974494147062888615155908746978202813074066546557018683356614780107335815061551846789632832787319449076532043708420585272636294276589642098187725146754333301961229128180325786313153941270771557956916442962778470029515657018579776643212520230521663609978181860669896318148997950319315156133411439870229453016797656049774134484545060654214002978312110423617727010766849102565533773921557375248911482300679627268886739022848157428354162677645124417725373521155068341463996034544159379429555465256832685591641549581151396396154880839345734463017928129988374043133931609855218375629346760288674220829524204225470238227790625217261494634752663330560133574235869639760078194456899312069035708983095859817046312623932286443125154697834437941892659314884285281675281757049510614943558407349168577358148638960901696148449712139030389100405472479171991370919110270405174159387752111340309589171320576022393759748053765233960936387987251558819169574363119609667654404589442100136928626392547669789040447251181805817308310132965311844087078185806899077243008981274948199482763029994189561831707435537525083470435470412091437610719315885208916986050603375888259568712862683037478917159252690153953044583792328669935557675619510635508300155214607786810621386619701137215023160094071108748874000448833845021150221451668781195481989107571789598128513119179866372034776185446557473439080927791028441812455463970435507675553765393935754283965855113627910270364839357430398149109473254736903636884036423693008756505080156330300300085549240771486719879932359438755205000608664714449276445808215545677454889741052761071125515243179560863833793122602101583226479280330282900894805164539071226289608097561434563007730894812242372771805698169691251688381892445788215726416475181455716310426492895855955437290326853422229741292759378959577986057712977923308434391256977017019301175743021994320696958468807861748475982591328754069474098261304830945257395174261467155308013054618088802286682721580318866141494283588294965747918244922798789494058117377181491202982058355281791498496854382908039788887681539040137112734950655886889248332420978517572797221848075747540197604076422477434094228885550449100258453284382191830360743806296615153025655096612199158169635322763248288330578159300775631621371739190571437339630621475724980539181869046261612646372454251725346002499596719897331090698399732747441566594030264205178956273314719181747820328034566138867326906633962656160734732950781292404633333667091215482800268320253399089332741862572574795729988434054842271102782106759798501338739267135910504829404956866516526365680271079230541327090200773826837281005571011503161399852681042963834491951631261337667572715335514651022850060113219548487169509324256999053314483014769114899942883106784270844178466602392640592248144748110566665122405946357191217596964693265128715779283363196075336954738808637318880041889463039065306321086281130379158422956896879337508977494255018576938300105128764578578504304829249454687491553402522155155695941335057001316823331054070497867671566353604726551132391609672021406060033304287982706392019328593336880919568852478291520613749729310827169131427798218587045338334876269132434394237053463835698461933691573752572053186526285240879838679530548491358690023389777842505338515247996286548337081860526983688689153670373328143989682379370844518380389561431990811099589548627236039038674835062304968311348898179136565258131726152430618206626523108819855323047531912183305403033057576568232641961794430116348539675352960573517826847295556702153539710709602923445219385068798712836862799629401971214557365769694667374680971445997034902420228225516809959355087398157822140837275581929219160567165450299703674667444789135054538421282094855943074053327364611747266927448791018582588840324792759736648310107891235962178985374593872419530425654691843421564377040736540020745327528389522799757643646090198373647563528141368746255756019955964681050416070641027255553534492075918132593259989340452755363335970995065680247171964486696341256500175994150508909569653443366052778175692169971409760182591842497494221336579274523470397465132302785492189495389216437412948770481109631246377547523022617724489577630939753871252294710095239835162252585843803400073484603265925763671443356406110327310293703341723524708889655440178854075379458412316317358360936453620397243650507637649412345703164599404833073710962561076007728242832680293144604962827478359532524007029262238266485992112667064607208348112324414255063885540324240030150093643958555467033632530048183228554309457033564624882100944285014581844081129009761011729652657353596458341728855832830443214723566638370115158923290467157761525499215252521117133070088452673440354411511735114898008654341932254379790810993067017186836650798822620781456606190067452645087313108775604332040929484406598903298049252920261772515849940659623523702319244785046104575974895099290644458427478233542599167451987169409562779202567759698583741264343849601919595239315633054742685301968924541533121199258513854418667715901179436825705606534429126503904614678939939395972344725495442880029817423595576545027923633656764863191323505400814023635283577313448815058731845608581349975843574397156237904508501564950677003148650153269387646001192119815459382414019377273776388937019121653989868859038108482704350359078972652949971714982201236291284250971618727183592778940957206284742456416495085875282941429757818677133071133362502683070966341611829494263902040915024639764728006510312784763000909361715009060533772512537134072422282335945834396852201611531708094260115734620716681850714302455028124770049441313550993641577666924495758721939797697283086062928767965678021392875615151716214162896560079236482684649680327262480319752037964759912985838369228586267797212683738350885984075203526154666780382086963292245966115935286521820691531382827830648545172886836405492369671308928402761016828246277976839869172276204085006053134726465522834588601472987940929238891011009944821591262846713855419096777883568594497297053373800350515962223178341105120077408301132947794934185438477645283360860921139954742865581521591168726882461882494885327903833364586067053711750623842204104163410844931735581217130956613095057309678404026315638878794083198658306514711282000215621825107285244965063082601818956020146457406832699557580287500304469924549660434762152660626209191934787671711238090299592598383176484451439823886597884443312542101850677580669183593176930703581764595952934640194993372624290565031975249979012106687038257237979439700527244353393249950344022961340703052764187211586570340720121098624708579795463973830648499549953782875702778874751637760989113032106177074329314404476685187560150368788901229818063353995208150528745624903075794507742523891123483543466465425651727658430607951762079824638738426122598419501988238224872078632389242031449857306596044345803696411984703081637090224857231306947524316649466217263080559524421185483898265226850500630614491273976615426021862276754403502619544397287001332746012155029918287011832043016086854631672679785415053341013279623933524030904165383895770481003285195058128177524992736734099859182382143085100010801946279853927818293003741245644675796543141631020558928247883205869353940678884882558482517725803263779574595220025662295083112863555417248273601743375568054888786242309111165003561060766071208749742719823590873600752045468884785415006874186596406962746039945278537501187818539018267971380037136634634239130785391271935541897532041746061982682475051993271431569873863847613737505979020062584107482861838573996360136174831957536031876096371392737083300979496363868787361679443254804469972355827457489344932419984311632543974528451317248251242432795902719235485741323885421044463445183069234397172408358317987953269555792826218822346854587074901621034625752576162864864495114577636781482400258885315035577525851056586070352765958578729796711826332097974972958144957552376719610317692197976328679298500698571066863574024570270055437056177785145656375166897886773164727759327688459934407122237853070008616716438305563820072303673002049330687028006148552137133907695436349954865043689249929548650949797088862663659395936331810279408683951938824077391510151179120310928693156840890147130028382073924056565567078926206188043407581292997031785765119484241113149433427154861084989736804357353860176900881025205051156678013797365008822054091478337496571823042511706083603751452206401195713013910125526885276434275836784326080155267494350353869818162321577400071142068707296175501465834727199167412225587509802059891320836418986200041072932863982866189699621882190724012493282660427069291482698005369543049234633360503342648713387817941028614244198671806449378400924406974209185487478481394092004006398104771561245433712594795596124037136844868481537706104604042139941634757733480796229639755939426617737067018851274020329714638619502019928353456459073217646809423271411789120973075074918467219473263305795021612248367101057578712710929687115036494419104474586500841137180543638955627036384513484017022177993882311711671567324885921061865282858780090042645146396853249400885281341608733561177138870036693314283473072260208475391879509942483414280096380747950192766880619373707026950536841153413905086550752746418786173820564946986822700884998386041823728216091938900345663057663104585750823190985437375008029731370415967212094188846226413390525737571496378517142138951327855543960033309074945457694178966556562164860697841012245774356290476637070106168076301630293586167930956229139755127901134605280695616265378516176847864986074137289196962732686527856010013755474079060008861993369392416851484720956732914070633479750175476638579531415922783049183233478063157450606023441779152312381596508786409550439975961931781045975993723651024984677841271828690866942027765878691501983411386435976522402546460258509780083955686132744612594759966891024639282888260393564909044917797615631663206826952467521389373110401544269131666917598963792762378580444874249995569002814882204805237836844585404360745432523682696069450385280574373649366384600659419589611968941870496668923954271096264018231077214955387159032174748551352681720932108038322020415149417110742087694678407443396676998251413090340559490953059141886304548147677079092201632317744516308785298838152341991590457365651683854580146574424229914970317891501937941614663548930317445958510673511012669759994653493193259370526327885353043539934924683105677790241708624594792951929229483131641468129902147416098892544284922789227803865445264995877180629692175348661422308814673877021662857593168681515293591206823408602785169835034409318320860417832832877280205319913590220009404495219341156507034776018771249270774463307883656149384102801216446501750220210393749137524561434076294668838609438258798115148204652700367137971740330879405512477337670489580515199128073640028874716017094739221560050448228966080506766693080637192122590858988137769520137598536930587419616142758652041197037798395714843684276501534896213539903564336406883285120688582513292148852774268833901020913738968006191896046544917098865953886197871117476750379038567732107033782893202377904148092710591182490494306191094475451574660727102921504291915824780634570871799637180309252980078565988591746847273673433341136415142748130184133956590434596138388454050197767121811716469106734875694552588247421392015382737566143852978435420194248371740573361582564287410913802711479033535053360765593934422852358245439949270698535315593692842009259278763406886193078783630884084515913619961241945668969827830376080687486645421459955734267376078077638358283591943086959921258366301296695803969041228480921040402583580646214426461425861219488656428286693731958488957924234542290960574392166841843116524129956679343947783426012868685957580877446328666109362896291502394577593676742135621555672867300192537634663109103596755255921133507613767797989254470637702881050339064133031618835174809197555027562437308747514577307922278523461725771285695791495197205050814114526573578299418522165548802752863980410320532218648820664412810313974217839350898607449137752625603456944642432365718730724829566452005441972602103628073633504985557588468412463016574476969339708171346200508098918959337637461499327340307861549419182775300789290291334524512308612818936162083231451784183891517115775388411435746083900205616237805743328741371112725607074237254848504410969181188352766546301881620408723298492410701911042041612478476200469588312262480717347521825659171553811971966352724515424004923158708717927437815413148494226117979859506693682390927037813463477076317999619263209717956798849297712544510636209514916265154635002300619153280791625134269161612423206698725524765328857933284669969063856762641038165113021335198798755338278996248778817155787323031960865674400385259127029036220909280831656712988454339945089261139880829436694043295553381591873943298270482447943991619338570254923439475929353412635424829444915285710612074960071651379127826495171374413922535251219130063468197618368173354124739650828070677387860781195820077686205940057253358234604607222615253385587776529948142090969770949942876432285362513659852786966071482533874111300687653309754183728072568103282491921085910041237403078366607321711301438977477187246354495313898922774794755528758809174647110776097904642358945652298178969360401780246992727445879442109494930940039839146568479902598779574334606580282617671171303493487055938463498952085869745453445432351589328986104949624991928244915060979686460467929238128709209588789868165382145447100127810390732582356335694395469050569481493375041613216101835372924579805669959051788251979827620457254617973303033186176653051663578815371027098985694357186967316420681493017878930196418460821086966066235385619688095011769838095682671225050309341674575283033170872031122943738184117860168974816375930464725779443957897684956086229320179415834423163703867045640429519991776722572358561115250792866881913730009119565984429092016665979093904338461974830577630517384577174357193534858260806663042975710037940344773841796600371596928219019232726547451752401307105897866964711109477368423716574679470864616769692804658373557447654357347364476837852698788889059895902213893432730893636564066577889641905966766360626450164764020320829297443326259191967701748917430771916300396063934097776492369010362250706713250139777321970109110194059110451974881255916255222244286849458944021414297082226250727628980359903538265555712919953754382613117391727357198348098482815063156939328355382895078548186615462797387299754558115544363076938225614410598349557910178111127388737116761448268485703730711616104367093051815815002112505693134144397111678183916807340193650982441436202840895132081973054720501784194589728938836321773741435230915243192981872846153338100525956787314770323881000554706542465858134485155435025609272989210137783101505311904605031072127059396242463891185699183423097489145095516640386979014106794840332089139535514349220639782847028718539745886731382985884427187453117118336866995841276172537760861771014596034454404041839999374506658563852447606861464115677661135570805336417297768347097096907761576657964158073044304833914426167400533928196601512050965897138142491437653509378415964384806201343793241961524942089253529728668100929384299695771284982636520046503559092358240485762015323292964784804645289165768999094054851095866991029486973389741485412101624309183863431622829005228748247664975187517302279100703972421741022157250282532746547066078901752644793771190933918404088470024783678164571477600426704891098313631871331509007279269647616311291259460109713875496748249205790158991872289597770717429799656756343123562548381293832512806873733406787781863917349691696441044009112889547261882414724981029120695945703525673690851960982231815085554546479261209499438201680813680350522433325131802537763273835189888452910507025136557688422581720314213134240958561411971626996297278952568021498730125126769579279948125762584710853767731696474783052579893369207594179348813130415851178996847366817195750943945270358079135372613185226936854612922086339804196192978338985249211148224690615024384037821799982385116651642436498606093712721520390137209232041151973680515665449614585354574856142802358683230791404240075353299102218611127378158789018966771071602245178601382854642122209158837771374595123364452498615236713207671439365438044055852641752757905395112334684868971629076142987957069839106967293870515445546400117463320378184556219100856453120245858855693938857264170239175226587031710710476637630215080017280624288172024428186579960132545034611300748320570908156441847273168252289247763612102365631512838175547593203839015915236887509234875018953974729192586707638355795162015914365699688366454804127837741331165792408378094435322600017278374943717517519442702968790675917540586381668791145291573547348189407828181604064287324455839867246335136926997415349075961296058117435838323167942717332695389348735401995134659520624480388354200282432423656742950420851927468543224207722480605472779542233301690213567212140725005509785550608973692132080466974086675453802684978174763642010703537688299057213227459556252543870201891154136017844504166157354602401263937494735425338561018978958994136056113161303393160181284065106187207324952605872662772315904092141196513910908768231217850325087679409791809413990094596975815007999205503503358964229078531931875280572001133175527960392597954489772053516771517812720403009885349203446892856348752342833641600156823603651752022186963446935106159477720082475698282860425819209336130385144326316916067750660214536197356398203261109041125631187580007000542400261603749316622158326471034803124919971756968757827945028797651705142353277616934030127834871185576304915348003381294716559936860839083049439303526262661531322684774806286758997384838999891487211774472875477392059313896478016168893041176083884323354444545455144219464355182888368265505496953359141749154035134617980400037340735188927301020918919989281984324054226852606298038571127647759482023284740460095717305198262090784126891763027770656731945716024717363997968098417648119168386520507262002722031814382713676386509441222792879238329321956136519748869001383000563538171358545499091185635052967333821872444493827545602304022799979353231778779654509286114702101772282717753474054701656959438078860219739114229811172181341154474293512243673495043093145905335631268965822096607955101769423842632228897656794613762563214104733419167645466475289068899787895185995664288760879530479379398219159277784737395908164621158305573206110023306063552862620265899023718983670677508301070152712009343583971655921157628032651214877835819234420716152399265482754687879864008059750919242529524913527358539196448113241961502448056445498544726501552439465616875637946863736854847947971315168106717582639057845313648432034820501806456147802274606309712530062973016992643839043577662116509435823435047090273060546847561938850124896065419670995426171939778223704977041586405750335533056372667676977064681029845050568985159109163414290650755385615881527511641106136098888340341329418953783991952329905251678657535708522918629911094253575280477598368678464603433791812916192814031224123645571931852081606489704431282278606706819634515503985411815898550400494287691831797511363777936083364658801020526960802246466696946253045484188166309611005844306819039774027335436316346479997569303223362071460350694360936926452954011195645723773553761370180136964118939826758827584181191575900602466193062275441606282974373340383269766206805526849422843334355290939549756745674564213132844025205443586819161651010521613308975387410032868691707998497758746292081605977459345655637358219903827172474832491672891833188129703337466978621988167202304736470251584246838545284199962314354479914235716972357276213911716143401345782404128008161068467306409334012798527979946768953443103529677260514512310219793223007013095847355198951477005776860274293341483057132285887372532290848625566747733302723232857108075422151344960572439319888778354384928384097927160099538502533738943150099035402426126422270768436544369529110198186758710406490698714392115995983245806875588098297993910766866626886310404155785137656981956547061691225770306345465132095698567814004356763336142659084112061289624086617689877732182968448552624168355926004068175183506750560883692578593607957142215650956303669661245762814372062115346714139978901929789600069762153533808575686983238072171865846720898454502771647892229534688872711971592646119554167952787505079625538268667168703886780706608026224105074865138188653914858748193442121687433421032833512604530693322728574034282634082875945111234571519527862433867971580795237587794009786951191016671534974500488967643703634632063126904372729675914176817625963600742647159851561934841554158904174816760965514998818416898114467542378087644967483678095466127148317224082716888468330080149520729559109359026919802149823907732050196978471980229516016402173019678819084459778589007019952513606439206124305563583978345661815005318004724725517816461298475305962399044265181483567555729721276147223230650646420136445040856222683842058464654866857903973401731798405405232351389151786247501560969055179826098420453922867516115318762714170651795871950758844086052166594561670018489231935050816657963093284018620360502923542755411706933656650912369796595049955341500738657819656908776193552406492637645660984616993551491000382452197846382767406587324387063186393630525479138722912708731201362783730193580023518697889456571040993964182288781675241573193326957628881331759647219625342198670009178250743916080210777578960902881150574240584349189403922267664642940587147667108747350138216497310067753512482204616268362355729476382921661816522632178751362311689835060441599285102054085973760983448537457123415140286834848408986573478577132561544129432770514783903819613531830468361403712596064081167480466197118612465297048144660024628870569937202802896961708747978187749769588721776018018263095326128774204248056297601744438593747475347523545892720346665493167163638019643105653754272309013775127859935246493714903331436260585702035431352016617391023853081636259031617693916834403717099004270987084546988007829266660439191070274504448306259885013103092811570496178659152741316444281270869814625545408157905050791755329502965893699658539575056273028091083213862668271746326275347916390866144572787165775979400262211488175618621176139042244745861981701681027091584810808153429684085713823039087211216994431433792443762613229157677523165688208556774841922834593702270082557207575539055431619583501244399944847918786662250351521259921981450867875706365747637428264478263832491094400721262068749966248145641933331940123521771799869365436941174295090339489885980891723265230795320484771580377464606910475653171647398312256837803729798007876904649974193896824507379142501555607421456261831526951381299440059339678739976992992770361280362340274946750511276870442197960673665814041508208209973725262271377327395430519819871533452160129331123641274490559843464101985057620662204723438423705821538392602425836424303650316078988011009410889358891005159196203033701799641302351452403899448162032438987713953253469169137844125005578712820124943746893292188257640224786916882521941869111327454188730683241522931020512094320361271496438706417765433344130282810104589435482805281040827275639743493775084714843830570534160046351680806531009065646747610407676528856264591681093167539389146645348132535693825200439635658690744060684403609527552622463809907721912604006461472281760484158103395497653942411314542748803300338733474742751365118044148226746212511519255276023853916635335264487039482820169392890919788348687097262684541810703089987036489998914355546439209727105515561017236623971159618933967124551203414903622495185467615286669782032967308380229286980627718168727499533529968628966368170131055307923476816328682631288299951882842986393034372620824422875892735623418818759339950508804493355339097476108312549363696815929609552882584691984675999413268030694210645450323814411724130510147067680811545125738948661938764932540787506448630237586330379871434450642280787205697142137305057771910917166312219296216241137485733782585398329116131779214413852557494865623432369596319408582843665628603699278153762436224513389702005355904510670612320241760862917174909449825977012044293041779427618224923049249457468332774749060838439012656802897675171043129406874916238157408584993228483362542671144725355660121943725591085625592378444472372978380887796227403626940260609093201844010320064740441383897646760668731217741038084765657331329633099484284329318824657818930323013940666150987126340364411761206713364366456295712148801767289054887262533849372895785622484191258125395583061663237421382314809143542201841599309954361848609251368210434609581668829172031413366282847820741927625477718986852163512879576100553640090303472783985847166124342372651669499848007604794630749300014373170457045677248135842803803164505681799237201080846550468320691761175240770152907029419361527005831563058107486869303990348907213410590648508001341129378828133304382354685282174472175102521526569031645523250067333617595665652652283342880687802582298214349414674525785822625751550412727654153198054444740765589124905440259603638786787496596165916197262996956912820693468106895117037861595240415007872076541754376313600342132972409412694330416368160798629097818338758957818493037065032143805832090076462384881693137503858840807804229998599123613657550595886706228088496855934228437993172827864236892825122255187090039806503843542651876122065177140756920660152038397052573489824518589960934271409486843297861348441687022494478583918646458679744889581393190858318932076800761118584387984523009093142843624105414111937454849506622496318690680259551153247301543314707464193061631962655536843842232608727685241064107610276282933591864751733437237481149403150084032455070025206564046098609278169354222242648108284289710331553683307176041931426464685363723048737146717395254067311558475920325817210277760637843513380830586094783831055493558579341304835145005450199413428230763566234654701618682453939666023623747028156053500396447593700953864530047432637748296629079836895021836739571152184996469602218107450915037792732240822645558934512496898639949028021871338547036069350021835195714175981059649704807832937755727765013062022081177952885182490959921443119046078046880789528665801151623185088311820426034651333766114388561438030282176945532971928021088217337260721018111563207296279204057996584430379672567046332998980296857875725462434608691487236355077069714779458212175844155781980312805745354853049663124013434699903988802133822556213606735149326652822090057619835380546118091132179517729081178902669652005975106495755998913228367182853905829465514286776692057820870127352518583945005395246642145973576596010667159844954840019536341856501942322733599056361592197788256277234772300588539625773080920151657824093511844856654337971800307422510885806177980135359145772417297538394104447287815483889367471912438667672136313872949840197257489904147152074018441340028000493819042361280309775469771488405536915455750061530218048518600578044210075310170272003800386229167166084689290027199848985804945708759511843091580282697759161925899259759330048124805915214212846908633484554846526548931568621620820607673834966545582840806397194645810684315305655280847240798539099920180247849734546196055713392581452934464985369918559042721531124122997411491971229699206237875481134679769251623253404660233193115721305094950196398768600990974223130044448454381928290662973724156601351849725420274484901922043939497670379756514228288352167189954361794083752042072673611732087753889997818765201166206506079932119270203863182694649858125268493432424846521450654698359999245840053248968173131849625613156725324606941663306730053395570635570842683831466200224945567450532299494381907396566832585730876825628514270684845147593921409484745195381524214523251370088590823176452560744373212878449654184686803799101350724628841946992862265536796506800432152789782189265633619246546308304227719458520432269229933378361790942427350125357868422067343079210739009964528847494720667845176392543589257342564402215284579459492979519149282983569869036817217196484857093441816546055666213998216239196315351387636518690258208417461105620882513393916604281135573773471538882680084349412272799925590156184834217111921683888986683304509345812601564672360887454986398709112717530068311120892166554332298544721250414958736195550124045821059990845737444320067854082629910139107241490795721359042675209306309797480248118704950753850470324667243269747209131690387988742543903172401056759390340165227929439378557677479579901614165671485470274754537138944734572859625245413955739148906646139989012779026870039609040123144509032249019410420031469449904475208568603671638327108619853138850515909273404738791017851339062186569709897482511595091094428489970239753883321121479716122198040153153950288686271876088101335032113395972437396491933314388909610271624991800781314073916261709323732500410512765638489276985682095647191761497685485465436384269589932495295241154980329786084093539531328019754083626030331160773657442804967911974225072995580992008609479721545571087817525244648108584969213628214026588640446582513861791135055567055800491986959629309321801861158331649522380210573819543828463656809129534363053917591018153981457034982757140010505699508224020921209024895428503920159690186687186583596693326515463959610252787710951163607711656701668906816146167902427534816490755538645109489524444093448601813210583271504118351406181409491267981607505372177225265355248267623892400968665752562423886552362482748888287084393707432163920507109157108475206576340564840512001264097919151584067991934131689357384361178493494896173505226636834744342312990707680908364122465733974997650443091287900398999010187480416249586442557734582543323201982939085433437116845427285698030594187137379685473695228170816034605905928127160270980368877537748368294612075286964439813295061915088848498146523188324564254286372646170241716555289211183636857295835183728026658874606961051750133532317601210444110932370048759059108441539237140168205609986313587301844157771215594124361753544907949966331667529310317265723705319425734588033323904716936726691470405117033329841707656664488382279691260668642351924192854185721272892225862448084238003560345089399700218491713868666681163845135439007649999736566966720201955746295255676975769479657923452083924103376282382776098814856897450685225185258067035408361803445357475584769823731992638460640528484424575905084512346766173495961934265897384999555365371622228366371219911456609060530387103585880061139884638436830365972766895087705345504175096017273602949390833389211891828214565069334474612945508841891390843051052927514784956312141504595770300562279893256800860759934946236524018614502463510717680057240843068749605973801723003564129212946608376616494813169690424372113572255734403944835549079510138023653794919168384113248067149256641722379305214519441850129821215682331234470302165627070803258965190442248703628002599048427715603375014197601999739152541584835830942510923474957088025134400362266578899275659991204039650092552497075134728254154921813936350483040502703434583653384464124208888238830292152084574121853553056791148680499041148090710915430026701473135037047127853911510936022241261661489099018987503231818250304565067649464024265295520057533134955945626524764747727307822128326218472343353385046870831886109943783302468147356254673097387997401833743770599763042063501021761710604236622200325761703690422406637926377499596004208414319463028398428469480518069865952425816459395367465095758632256281733907743923849080754495413039601182323603058761722665667370550102645163865183717117881045440279874924718322126991097419740120905956894983493463086702106882148360580700394218723886628013548140845963310750023674398734345291327779456763933290786164249376672456003477308375479160390453204619196070918693839958828221398983510349124912141791802249847675028390491771860046236809653846047483724972227326179653340053095359218110922625871063644479687836070833282175950733563459723766278078453293090421241394185092080276723689485838860921898512865113112820460119640055034158772000448014449889522533245011857146990268168696848883057608699727064980116723252320513031002095234326292862432340915365738967999018106599680679722358585137685621177763703524376314609542723073200152322641265742683903873912368648483212252163720489359032343999604658188660118257525661469140606228561328162732841452242121720860745979839994487236669707330363161482457889435235849760875632467277143537038957330765293233211079611671229585278421390239203327161738131795444195561834679983856654083990371158798354125513776833371120833146403938764476733297215966020254726713038224703877424126744778410289544612139400863426477899852644581552078901414223828709810782258573148656653014172326010612191645061440034010023887692815532989052206342274374052764244509009094162488295846195832290033568186395195740453639266430662158704487591675992148560118547394120189395636210727236241872530947923334596366780808536254006363269395693144147112926828496981201010882933943880795316791336642944567422825221295108058394671033173852594244516790344898853292468196721541228427995863586332225284095529454545134604651815332746972816913526518986421741449825828689752549887366208015445948631385909428661637532589934977883434040526511631092237123171588175401279731475362631762028947970791140831976450522170237565204342963813831194704925503300321778798023297524100751601429380881745380733832456531083706660948388661041995341691641160917075133116111501470145528189684843159168786755175085106896371434670751108568085730449235846267260501813055322643193480982967339188787122870006711771143485786885097261440540706726766132095033190053806405036510739561068473614610084049567180404958221864094024441420461458008152663775624576246835272574369291169201767320304288466550166165137173343771345134556119903798492273243798350331033682621746724194883328150396091105888711845825985467512429462781336288975665371873415808289704815139570696630424454569198752915857292572165367847800300619407937973975877447750915099840579067751366700172410772860190239277616144165511545755792904459684366602635366310210986074026195395573854935278826752235870578385752644804318279379999955072375362782494915422225100241825204818604427624954356804249206937581698601719200701009765244651714697376419857327141677939269804677260424742777328225375987647289452674754312495266919754759669679864260219037159407777582218047024404626260580845307258189290708751883786630975832538244626550325973326211044426406431778173168091194088496030909224674958346638556168035315671839133745125416765399671121651413866305492088216348673312279800628747862302741981910354617246544041433964343660019954511455765411616467753340478244954554766421259771607290240201765277875595447250813571789536514622767845443884463282914973166610952021568362824418023950344990326543292286450999574931492392063749707289796684111981450254900199346657173218558954287830245079200032673268904597831157448393457013972283817689588325901760662833739519348631794074476778941652813534330599072880368765180338131923040499853794609383011668542071371976614587240321194130326893831510434963009897618237528905835066295267413630929581023351181699966981026416804794273866429406905998767720706402148140903959668461231303132101449333515527490431958848156939369035134204072259449844960248732112608951225004621165776982498554755173733759991787484642678370306155555191796362528954948759204820686001357716450419503537492889773743467026963258314257794285133889333017348197364041642070942310433135422169808082253352032322666219872563535643215909042337134432057152713655478496928764166498729577194959572983094222134995283327684407661216853949312644826303738046816548157964289914800797599650281523205163417604522721201915619482334479239781894978552636707186116601218267063020280132276006635879024398449656039022615887262139430835321306664028336916507285955618364236717237457932710612120793040245776475827588067561123749075081040637635959446703619880663468557143435617351179488599992104195357233393715405117649421497785727530396139013630762272978485243835211185629254679611536950263635438722605984956332123437356337427719931131886587114050071145153275791159590541095100437264513672076116593605017341333822784878493549480990807480934277074748117692743513259800530784514998236753401456812521326125845116668968924411087802460442605679942424754587038698277658204370841448820255074054762862326844844281565901554604038793197481949427100139317221836120983821410436463196716418735548378358230052510912607335621907909053043570010980734977171203749760418697706658925164094198452914866893182231768449766824968435784003589959796933782461020607210659518902257645740236922263371332164002179416336259478591112887320922283180807979686708492727376832024682659910268502478706951903884922606065868332615759368637452067553441386340596172167637203392199903420216504266493595408668335015028626498885513060267428586411279521481848024759028003387234648837393077515881886023629765104821672580599777981869113603292387962530137510815981833495271781113267293314883471938947804397777891686535309688245242221924894190178415133216749316922225156479751382118736147316520256406293429823614068380816668557911991470866974278079324821102100589943639529640117629951561345223184268352464649087659954056869513957512645645517110348874577474273422249665071376105658586444936795344245599170495600512157031403046405240308458495479515125263486909133670047839562333390381440326251011936816734307741620168358005509875946838106450620470931673246113543288753547868862765581075851612263465694172492845840329535780523980652759776727470822402159118355712483847414037307209607224275788113513077419230013741195003215061655538659352608485959136177169696438344457287396650963639820374760218542063163478943733141449565770838900678094873484653352906384556692493665489100865560995134162705692194948119144170738000276322530110126488979583658320569364107449608049935047764292136667718534223786994904032309101790601309385384539862191497393325746218818889145381063456503709075562595774654378678935496853958614886365306166539647531021985612417368084195887555590534716390898857514021086859395306356325062619486383091945784493182713377618261558822896467807233684226113954808213221057448036564720207284750262087851179895859566277660690247965119100682020109419408143790136939076566879013322125165914853070672875838523298870803566147242435397616549215460096848632964904931127745447757862404598595973662285813369557697619569200816450776224612922088224910098115194954075382175756844080555431707427769598919484072224558253706157311099001652624403756459951316796414389015691443245156783444488408350709353651577184346285519460378223694213761420707300176726470925417783300045666363076842013594981880231105614811237010162677347274452789983666113069484851909316234865623301547052164978137628826667320070953712069609970223595417453158315562170835911674417889149308161288893571417383348953770650832067442821011868461599810698388385120476565786553187833246763118805010870760692386824855506212291962765758472007058571114089895606162070602604048848096776478368690005674403785925776659986152200251916628097426791929582858794577106476947809867597698509142183556491184501014171997502890144681609408005033876348571791194529527683968227809343236341180295553328013615785314579094520926183364571632887404584593975625434868257991155776758639305361128546526586963572270666046035106984738934022831866979673401585976417831761792768414839086604110996357945201661081696307009271747727087554938827071613388071871231106874935504682421088788990684755800464407912224756821883048781850038728981001885323632297717952130491705322634134754588837606199622686994999572968277902526652028680328477479357080833066450246931371355706310940046063134165295577378531057238203327639062073866780003519113049353228392023172168906098182861234915258817788924193143630041089951697106272367838343031436000076886691523420639858649282179273720453358159714531658502660460682257976785928430558265327226777887902307545167154126752969134866852106640464184821214463383584275501064853031424383341498358728404775026597008496342466887983574551738197365591074109433882328762570412514261449037618798949718258867935956377734817474771209721255408059004359172795656921975579304455199204264838349830926735878124436064171586044241464917141250649622781222254605255266434106484305758615950761672781559015663036575260029454813109055759519007286606278577765500205303236172303722437861124196287642479042595768847597553583317089029724493279254046956165366738837981326298846027434810141449166869577079155572022411609090500432266424771424993892612182718338229029104085631548491755231251873772058738201287121038191488816965777006385429913582699898584473116771103083032104379530517079857577490307220676414951390982133833477183005885886391225267523842309748352185690162764036426521501141572595316698639509351777031866142129715072518415049654597134208090100323743036085817888823373881323422012301037624525097794190250647226778537357816138600203777069028030152578886703658076969499204255983853029093185371261597859819712022941498693110623352663504163023819897205623037272448817904826739772964488066487889296644272929660264904931820411662491283638801391802576101671836336531694196710161342600679603013169219960975199274296930029046602977920859982930441266594499505554084600598368990510500496411352522183378887430796472182970182235787252189095174206499520200479661101007754721784979659533603755839914911984045496472999946578258475493845759116184406684866398874228758963048853282124784810847134655118030651088401212273790975168954008755209596650981831629453753271345150733608035916416355706648717064240407069397867150936011740678748115026225672639928720602884488843110093784798875382849936049042290795351137297142004132937295125731926580174059929061074780112313903563858319646094079171331527148374924541800520745979554032159030591752472635515903616819240824495944150447567626906538019476153425215484546429722407570070768731993520379191313022546971054324835772673834921293365451820782273706837868906389187002325108458859061961512995773155494401305639329870613028132485929643347980693953957267637159122779079685813952639611954370779674809107054724273941195016046354330135463372410432094292112629334515806437462221591473492258278828104148135027527986936505303797779001874020461400943280693597324572991024407955093564474929641350960245277638428360568131440509001469161374017647616737592714651710797353868307934433709236096099216869884043792560217441921112567025650362626302504486415425360039868764931897189279543348716511823044060206102946254822488128276205279827535957207264880881736884960599771777164079369170013752137090459506618628214663292400460323032385932973581704117244660535887928209145965320418613660024468528777763771517034239072128580559168087792457742788080038790943407541091437677033698916445868119222129310337791037505490436733734445586630053108081768454599000855956210688625466612734291059205292733294833200229562460120728936226297374474041001356120129474209511876196013099743208232709761711021796854108317771597721251395026100743284705148299816400801366712034800168832757067703251376909370495447447446788719676801440129465558761433647774700345449338146098683988196271700420771949153443526374162476232882894021757481558459338088018244241688392944475464642675039539920345477487961725928654016849075452712667877297546896190276808192476558715109208571118924551156623270140841705064611572181977092365511933474582413249912084957996608579740736742688043903784424071505754371166903925771057792741294862589691413704498448061355401722109926842545621647812128889581150745341758616719031341634259243261062357204334772733820682852343597213739489052808072832930741342864907508309345637456395466540235448648041845103237311441044428934194091298701087019177729012077033096028327250157781757091305263761134280077504839340822128918408159076480012016081342017407390966533025452952093661688932683156898213377953414742507674306070661498566705890810247693597758353648667867071657084945059443246468478509247360530763984518116994298089915591559566436563409990374465434210216171827933889590682834061695980573122144860168975444119021108596514665240469846963360719886921847790400417899895948921843798840847831258866769356486353008117947466889442046993965143155527387432553829293748521314626794223182420169649770544035146977846847869212063644319962313629332171755462693956944973410154309272562098461879821656644177596282123364994788207541367166139487860317263767168137589735332782463449148507068298663819767703862280467787300714834951861418971872232353321091239082788124336273921830414828438831162452674694047698818585698199456330490639310046024843265933385799232852579644677638206104582736019325455914695763601530133412231538539062837732909093086541710397086535044431091869625244226667081718519439222389485016194136811722658975142434941780677027299223762727763788182746794570322174622797086543014309507305555509321728723440491493390918661645911444164863954144523938459163129013989703744352094932373415853072367382048643516262592214977396054703956903799669552125762374236631599075586963109347015189334830348640590216088925053226099533984925676495125728230967112229503795114246976352749069267151859180919871240301975598456804931643504472021463507180985247540221627036536527136024849413749909419307479963485438110728713827977592522616918229044284710139368412357034000098405270683115602035630013095532964818004244557709234063437040249876452792858666203378292072723686794541901729672301800838876417430656056148902787866056406308056361038471046809440852398790410236677849102969605755333447205550199272310941854264343308881291311688190163263139890806031113988882004546999216121378368904446676487917927458195116562383444355053215512706569184637627046683126816854633280199235605479409951607155553079686419896785200925780406840417871810258966916765995375949809531411930656171208061051094554239065737533179871946152462757449179633817847405204152461384049184988908698333568596510225033512188707150336560436028561864984486348265632245606536405721993471321774455192634726171191164273672245502577726422029564833940485049933213964517083955474240623412047796343854679586851990047308071115383060323747582181262303272142387706902827815917598259709528749960233408330800261712395416058235272646383256870370105328436663710854246904516643605444202997687591386874225282667437785885003186769452437830471551293601294533291444178292036771646283879899419323797230965890769611221678543872088761430543772360109507990216230822125964963639540910008728108916110976550901701135476941238363258261865764705166713999908700042386859492651528542287541172744979135904369693838745755617006898996635395768955288924229681429638282515101227677752752193340440886172876226583811826407064405185003756532227491671242066187703324026378559612845946944677814585081013243922068812249509135839716610488296289115309447130953779622566216753972028293937279257636634441092760772849877947487184067582438129680716134703704784621068802397191720706601315015281270826621108718363888439326076597601256726835897033647727225415729751689319978437385238408328171851590873737392632794350023650970868290601498258846507041871310788906055619249408297324620297153326473184224344191121292508747979414815679917966561715743728579591089150121614957933325408179077018882888327399948749688548738107935335555523862735620008672968135199236723547357491766374139944002372701054819694774730032272289943567610628489093470677637864152099347711179290992526215223963235395911679314026983051532247125476166167575548860480773517474575342725389889278056393281920297785471195218899641822541535431310981767237055058746690770740630683460325843219496676548947913042626293777786618128883981422233920859516846513296825569339560049828697770801370346831907817488169867856957165173021911388295431503685156579947952156929770119414293968962712956815926911878270134692457227813324148562267607579432755888947119558382905061712243800140559337241030913725329584498475576913987008780708656622844330634086599341758630596736336963351963558906840818851991713047436814945287795579015098198025178198706215284570346664510615898297674474375219577298173362812084350272415265016476034659314651660274641965299926288444140056353412877501187588351682849139258204712898182530478854477365423553303661926136807240206089714346298641781624959636674813902534098566560550536233224525754850857702224228690985514612656044436829744628288306302996739603367296724111747656447604819847827663796507385542598283285790883313317482368630411619677205774785682011402030603705089053442885301775117208882547132150154485104113896548313319587839113858917241323472254716989632989656366613153274050125806512682021696746081769595096946454268971960900591104612227450918926188214280800037297357269722096462271910424085640143472887074408775858697136393568386043963209289382667101735579556518753683743828429239235749158314687924895169481607419254202232674473576221008196056067286370155880021799717627038171785688609260559696245982710810089763662060491706942209059955038983805048861335997419996541590833937093891464676932433111249515768143403179540845156988681400238992233210377013671682628407887100154457413431689370794096067883444793871856175286747882234779962005975980541986820719262265011383646104189550318420630868723456923815999495568705736406417889274659374316634106921891644191499582964671248525075940315798585396961314664846795749872765518293016998363574113338720463841306395946480374897413592763925197395638515621632187289107782445390371086373155312289546661353242481771390969142202099603356993488516511317115748699738520794523523036611768190476786533776301136740647245977218265070452190111462287631000628035680929149999703266422717174437550413618620404503396656290241558876018907270338503852475378712557948325465662957736506124595795971814292713343932517976065782864916092126081129450815141963996784283289896225314942811587693033127603017796672777902161620227215151314588538246870010491666120349758805197957760260671458397690627290265258235723093655045095215844544855820285560738563126590685676171893977532386954729473122211412246359286430171869884157012013620354374652367636529206976957077437021717861470643750112977020564361447707062570965150395765600387687655156088704414840708979134792758508521057916295214610807484062594593721481267840754776010819652053895069967508668743391755467244389703849754626878247707499706671398969108325505266846629920830602573265316531214576168309684419172249833950017112331567436801031665439087954428470185133020344456336402083746098348743092416559948678928905066282116789001488062310226534113776181164293913226276464380992084543310503161219436744467990003962089236962437961219584063668690503419082078560673326089398618716255303529267362705754512517822698248156695042910520853081035374003168981633836258975554368810144062212080734880645090456369082260017930978100317730580034796197258931549728519602306706385362228302432301257620895716745619990047827865523216940804056257790771265571441285831956116782276843418059375389614629679909555193301683447007567640597596454833936535460682257157229695933918535283396042722036027983610979699282682972290517903552597552092816553071423459667007399196212866405130935542254207035976109628367420092254038955091216295485690817630377830308106013029188465996769648653272372257130288322488609549546459425530981728281941932631162530826023024451627718853828826667548130620172279431099160132329855925420965981773502092273010202808648025182859625760842870389556473587750062239252642398843868115189770279375900367944593781749048163774785252557908070990713416086467264458321717841441471557098134135141085450586805302958204710941467388670883826745221005382412579947527095458658912990107918865442473932812522280399171102792360226042054764046337369644457336775588607516404073504514682040345208394955586045887990812240122338337863036443941904586925458886713463770153651483576600901000266543550127974393056956000833413108242426300332338833179566479710012910063946600720329640277599260126201269579041439555606236784372496564628602278882118864812643783796147620581875671004763553747156537959588159674215979864193470660234136616688202319089089565317945840373471165368988613549678057766846457588487852230893489005153774719969880249443661219816279269732767469528575008314140594040189160769344008801604224156599719692134830478356803326072088417182260193755388428008065842376555074297326701679538649735908719959220860339706347226307398591842427424684473561187277472835287882007685703268117784297740991309610099625096778253570077082443010465682442903333934163339926054307762599353960931617353168893453366875806603034683812658565270759066340834269749952760526047473111277206824401380156161340881124859115167428645751428677049816121162483310260571668039483095916711318095029037218348378192834907148277589933721706989511250490952588173005442910495743938330680886106260747676039550245811968188623641599832149086542997491291409416935087209456253601420729337734580008728618049747852063437988611710295415136120580281908327655895932625423715640567997245250179181179357234384175042169015687826608053305406699928800484977430654306553055162979682728955679124244713762501524313436228363763267280964170595775758717572630394689545225254992155482760380894328504934996654212979494626687969304364192055272023519925920532916771596993303031746709908161537178764353472110194065766397835112721626604197942441569012185341739368035711558447461811872576618387677519171720221265682358843295121376151664144076156032273782964571499368044740784283827990585743881388668895442504394664285645925620127152553068708256071905091645500100391422693803659974989386552468154939814887738089481731886030004748356249858327459112941181019608285449624131187814396031508226714562699203808957535779515146012405119250574285507927037821237395764103239505134812038778342752563645716716569913242056418616614848678912888905272573978670706328998616553330698172481778492858076235786696692425210729055290985264610396690252803025173793016141361419651921560600956408888324075818047715833829363591709264438612005034016583076048030809704772461209613774440770218333478696155504998440908702235594256209109452976122580583577517345195701989685327284436732212591194522350843556404431300689908184403207559042545401870286199344489010922392259017250242335099241409944439993630799076850031496567308558436429465435399251093791643162810844061088405164373689430897228269999767746209039742657910400644154216587276204426734743023590606512686128379823446443674468506138528175696779921896979259318428570711842412388329650817669480116025717179650584388887711840834936309312434623290191293073002259470074953481342397607247359134705251638534847716667382254368161203785337271487571967839803427607929298354956203803620140760215613556457078958961521866040932550530720425553212222740066541279333336480545382117431242798131305724890791160957770294007813487061347734099761693360036252934356842722548981953161653491293476581392927263529136722120913022047985230731740492234174353274032928561600283985541812082891875500855709352032925645241829617541715900576232568249358015751421074532397118408282271950510763453998269092263639390067009599557221334752535402043260051628483439404439623955454957667749154920486040908538927612506662477661234385514123142466878688742205879067193547514655044933356377605456597892962487583331661478042511207445364029297106477056609270144531129638219542059809901967436578832937455398579734333527348081287574015090461611655936452614289266258560782697199200150506959835048557929970758900749723275662918655307641751930767315402146732285483511168433812328043642265606162986875589178792003633711897279389224095803328485718502897697857602126935588933501561202941137153803970072149148046721638017916579511464890493698170570219343932595661703019094974894492382734940892140454567802286840981598674501026015951462590754791200928810730540769495750276784565253492232151685567447348654013806775279924452863896137543202400852867107283787401966854686778789830799223114640822844714263948520020380611967526068418836648026133374246248569419977839694791214847734007048856891017912396967636776445526388430725630507449489698783188432468670480828640807203074668864051500957365746197047303870657155260410653316932074799356370667813382201008062884788590624228334789887761743354070557300043862115906024941427425195028017505906942320851238739572656013452045067569923699145464328940470894120799301088411713754997979409043815387542789070191374742154643176171710629508970394347166313430314523080430723935326715612486029918372709157869830162584121709328686008017328338144054389547897904590954324915133921706910260693728992471108462835318616389363014459793159555867949999192718800122721638871808351932700159925708900936880628797518523207326738420641037940185199990222593420227721539432883168916170816616659899583813884949295541332022477591688794771070695300837136290039384597253969799766273974526640957973776343484933826116255340372846619021452081088007454417974250507046740309258106057645483620133482815791407514579839272810813604993166291360062557787806726130015290915343214482709323030679683061650911580585935802817827369402532253232164137063541979990879075175871404110038777074615798051229393955099494905976894120470982369671172048604346805319079912528710984563841536078070330096267972280987875252364009750343380566507493225931959968058273842964353304100930165626682494736295205592599308121382744368695286488104001156277229762175595982343124366412401328693985008747922904723991231207683430872764994654971658085649673804541469966591336663793514199488507657317245281009377795831598637374619441744009446718337558739244689746352014166445906113066973818007879569903152320236842735337147506789370694200578690688255881094863286361618667218799252903653179909380456240830658691504451324717196977409025516187709603968593594546814289813528912055883358694217269098576660039586989331466440669762799666487977000290887986558037385874275413492416452537174212030453308281143849037157855014869197298944413172893891892889242883376137736408210878540008664608850703161222214165402222798076852989555811753306253880273500055519503587409425221272517384173156232844591882828749024025892627758231940150902555816482544759081496241207867830468636084261814080078574842996526439915177159350272521503412412484658115971074139793057381626012843325421593978759874826756290445319797222397146036391289360394686731657763036331867285187525879181263226748488420956508112895310489210471102021494733104808905800632237296085105294513814636772303876699633581079377392406519801257743862598323328320278653218341174312514403116027998072264378966444420647086113025639874982078345309601116798164437125051949152250785991520816046183870681909097111340723274814019610001714563101789093887015766980328773052192420178233845369613226655383176981559079716100056315884485641204574738704008479058335363029111602552267835622968265159362952631597700874129690741329708337281175499004340915233608359773351503511214053071022019130232322498134268207386428998775696683228684220289952392433369577261896985289452731141877067893331316676505882036574391032387371869619998204112923244053783358714968771377355485936665159770898810659018618425462862538959790400614224497924208710842779628476450828699855258587591014451543603521829513490738434979928838486009373083811009202848883214852604450421648486050312523131922844880778370936757314759687770074850712123411484077326928952426032846502597437124984087461915331054134573823509669136844370205818739506274486388763180909432450014015989694796271914376634894667520865550419800451173443069616772788381514294824567427224713268412197544289416963657198617995827026387863285214140521897566752786415449512814865682231618788970066999185024601074407473503112175056092859048474723299486661291759437624165339145330867884560613312605083390017602559793494427681350383744434502980747470061356660175234058485200512690797576363082931006472642921120072351802375230705601639807651298777726050709043215558746509405870361057426605638736239105523549064540730092994120857588656328384999402473990763093625520631908678448764042810748988682461072931587341331777158129482161987012440789380731298526239074691801158881013429602746183021361137912105106171290836116113754169092879253106003451470550452170233572137272920390575988885845364945693042043769450065943798236923512795634005162481767738592913325855929112880798398436852853440456897592915008837837350163961940327674393282126191422573022150134718210365925275064843007261402256634818915620565038721780385959666781301000559674774817987704455463817767509011167671587751260821944207685027268764069299337294143375619656788730069231328938000030420710115144755049102122970387969137381146805986358485567789302410734331465168014260258414804127043373041197648409245758479503155125617028752028334391034095144904998340697825566469931380677492717990252080381001258229229936045122082083035478045844576348505433883050399952318560349760549827332973852328267530768472176040443989933365946145186812116399283866804266081979783601560248933999215847999671254040327392657732802868963195101138259303873082506459925296570930551512529102567615138549327583474111726289471641536052384354604287103965493168039298366404581043669976107919544004655796610668809480432516506839692392644004355406326979060734829724523580790299283698348355745830127101086571752981018951733166375607476232666099042521770309149688003888564618125929531290353205750885901006845832851538977806607785710077596084074110333467881781193277221390095562959261694198791829442686092476325000100337903532612719211499696051570654059209693453841986475637753322137687668106913974990846974331236712893427068973977795903528707623757861622915540746215978360756234895417671083410796607299439499937189483833674021373666132569413722026642297695453565078373185632769409647359466336552821415781592341608376096523606101287699322291019496625351322248822382281243078652613490879481345530181690776740459677992251272292514004920839180024295781141648903741131075483432734073984360891621590633499283841554130122667971890213302359432837906680819339079013622012191261578974395805399355321570990962236377607458059361684299300798833862119492510926510863668312359626509659246008987976176349862329787844573484925178112604334379128594581503243119869156870284118031497168773892270431536179417635127370086069400193861261812212027658341919280541479596004890096212102457369923142245967617234691213056029327242450300839302717526014997237852878653130416123622357092808888521728286102112931954026950226423684305709043374515471487036828513265912993814096288385539636426772067682646554965979683361439137432674791626641431474903074271972947058636911496632666224292454621216979176588160476356473764384509131601703713043804106456076275865878482543896433137423310869922922970890748332877328831074309114890217378367211061545513253645307930567468473037503711258248799034311609479744235791333010208181318925849506736788004095337731940109664831474214493319160762909516074857682805653183244839077574566942691399589343119656517777994542113450852354828565667678265766949364935163263258079767449262716574856640082501853007205518778106026950607593857259348562614136597991559709866815531178989481306093084741839623306172367019103401139158494479425835265974170536287380662303409434076054391236933622814584683607670498305495882006230744790522072633647551158515633919042834348730882373304061780055622015670432180500769775144169755006296613561344268254325889914438518415293409213733147571048373622385759169344773225213390801087887901405293663105301279202678534856996307076023442475726275799090616979825161131513505488980261725565941947257856031822272075485457413316607071383311131470147321746842924803665171654811106101891822802428906421298401039704835253606130298580833509718601782289583027124178263643729070860963880980515433806029798006392663133563454005763949120506862190877694177451407603680563327798407324853868629304602635446301985859936439337277734456373176281380342084968477914182514333666319463590408465833716823397474522995975594421921298094149763895912592430412789311342272242901224532191807242926904675847844137046414616794847861189104831013718127573672642358169211529875963900750057616433819624169121354276262411967766893058932910628998172250900345632826816376140213075188406076466907265459563211007491550796796035244764923803672131135387640014210301253661314541180167014763279100574757786757958594109481691931832855618382166424089967824978335500814547664122654310262030305189945563810100252465242639185951359162560939534042033139715051637935611185950829906907212830576881433431727298762055424314620435863113873223566804666267520778470077700835472192467401066089108421617832411959715352792070813279508761355037954926268443260265011066837832120445167282706865998259128718211936776453311343837095935520060657908538264354236124068755574650095892302857862530049236459125285556066146129363805576134669662545503619321123563816384631918497161501485120747812353008097962293276337579765221201125125905442451169419694504845933232404394230494767320174118262135205935029461317087501433373074883125798572794494103146312864390953716547884162690019699144892948673842074172799267894279834149618066265344185457587888947753031668820069443243490830055530021672867916652145273167255458966484953159628300543801967107352081939010448244165545485384489204110735000602934375317405013386135793241806474295637664505395947734361617523997690912568843427631549546905083543406326399250677928708290083704954372923406795110112358320138049421500562296834675384061267691015355258107841760180841360897664286719166847552853941331213483792584037854728495716839065172519060674483595623830211956001241594991984762927208162043921901088780174508596548704191039785518177761860185193912232168059889109676282885457653899808586226141554760977988853707730201555667414749425642894333980831238546367678210175037121003492171541630279247885954809489619147872815463164104981554334315855588599615807670425527834433099113678055044981824947578040198629934607055648940894740276191359463475634804483092264499742722404191122666416905879101649448874388070039589220064866424497465823887047857366839110304209932596520619644499010004724665371532728892096815111304535428004445788747553155967920876369981632486463834129336034975890052451766312708952215711276530934460194808808599621655234708889343800127522531972851982405488293234456636202184838719860838905583114014053449422969975099970066824373117956518088510831984282015299061541349983670950419833199291559594388128766015426037792719749827749667941721175220011679883925118968274797294067162194564440530931907112208159310340880224915691015874460075497475400156248771170285543049933034759092820821178717746847308958959826202096979279508775965147902685552667082927044624202105545614530663362083466242889669474974621486523456232983292519181590183575624053966142511707528756620793289274262209544567040016676090355361094078430886456361620191283658090676795968570284261229676945554467450300939321182224069978368532078975695176076936129272499518379856542533151235581794767766726153055657619986262320640456756972201133600041666637155441859814745847993161580645176555305788333674918421095417785657795956030360763148954433034595235761712531220324060473711319648387625990607281974851382631300855052780932132810644524686688819650647273924947278814644619921127261208115220111641862897755112449534251223790393045779477428426421508471030848068174498850122904434079412500180743082701020340997045440862610318517896154913925272861998949865763801601268217510819919671100114865750121162092131546057200024408011892382252604602288925472504577904146162493265008879130059236003825789368429813737441026935860355817142980356613026405955088294369485698323784470046007667032379795081374924362493665463495750487117840735493320049010039616639531001690868075098266230927042455884571121703240363543089313987558469037622078810128650570467814516462062683110642287256996388840152707808638835526390588745810154603702903054069520347981900455857924962071284982981393617618124832036881746606845123434360042534260757447490790492160979661911609250938936012063237876207225057890138253563895878511615906505252076080750403627833537267180759930085608492619379602399310112495378382816629430436275294101546387693697700148576650803909591173555703376137577006745576247695208024827905841986874522304613294629918150926854435935608416896951459806232845110509185093017676447316655888589059448671383399955951307216389510957725738969756940801123883668603411151618800199997643430288784077392655440959227289004725037515864251497293216056359159578316772962297716277835539447280690514013801427979590179779908224749134325466020988816299402826406062221743008520384091098482082698805446858529264943821256163624378856091090775703327479354348423332544130817743896568238581820970361088116941240242561518370819211033979772793328520337035508691534743027294310819913387621333974351763655041675158651624274272112887643501921272160632867497962110975728420377443062257756102560316432372951346823054445161129397264468300529658077317033442655580909522508627770618413484277381572381063432291517889826271322883790417446457031568012770196879475364914385961991917825622930452529089930005992111317879541783198379707252652130645645901407709595046764132018349981247131894409819158700616659093048397011855764261907224836088159832640383846336637696469864155415918068141150050081986670338151571398260786681776010094606160709206058752589445052764113389694048984334906320508190082339468652314647111345534245487019393787852501763629522128648407228958380779165270299704216611436193722297529686544803325233568941096064821903852373086155875602873471839931319070352907753776083032985747827450356021033694416811363698552359118869964233118442077772960738520301072847614477507426474730240584624616813593850807683360112012589371037671467420813678802452713516252831042091964589374809351250855304418712201940075067001374416990961109815918893412258102032181146019473253027745530502110231003377995200161473914453635419914043437212216607219150851633275661453803856318185161479069433449460144823595458976861054130818707174752454604942819259142967145131591416906446033495083993230161259584491577591153594164514950660938132281900715780241258579292525804121127015870397561743712834916337859897740046966223766855063031916294848311537512220160604721678227484419106634212999049214164194190478060910436978302334034561008883209063987407126547721967619902751283457756384605959826348761056383001005626955659569707382822580229829864299800132224770731410504699312214539528931444255774770663184265784551921825105607281389222782664814370368754860774008438129272251262505299096900918034134274612508530188364155606613539742743943558511755673134226888563729144145507802413439597393691674916910596143459887127977999770310765143987079761174535785199963528953923152808198409944960917829518462591137469726645463329229501476247295544285980769390231010112108836576200396279967560313507195030600389823426647406742152437337917927725858696764485591900798787127120040449627495885777137994730724805440018411504821357791359595716761890753597514373808648240947189697996610291313695126382153853067703113057655127979091688708482915525540527143432981432885759474806915315837017027032158711246933795388217937543359366783163273232925948202458955011995871763596492422666082224264489861613854903851085072482769538231772519689691252950370104285448681397444475116480247316294925200833408327319826867405012809175272694366178684717735302283051370097807863694043004283021963489097898412202889102739134639763214298405420070683557486044210728348792310140472183651072151349469154245994840307658475337623462689112285911646497185111930945269350439985871690819703131049413103959754770739053673596588435004030629950645348704409710998778857827271531837193274365820526580341648629236620836945061946258989417525497603308952896021237569513957941419339979334469458603210378327680347299007775267724761684491635659380372691920336296590829055174445699165951661556858728743737619139806582524281189275227829639818204428784942365505803887081944784474959974908102200852207565491989711520614573829952828763198583413996223646075398701502904557001706284384861316310115399604546369783870544614148343457904841184225592039967292847831719539913618548580265949085461901573505627261279078740935356960881395861448691300985637882672019041080590546685907413118803998342993205888427764249671988920204639810331030154874669694541477982966423166576218754198385035408208278198443614829376438667518441448831038734592907779186960217749254809120978939072823038630964169813688584276869768033129192943373713575620349400782172876277199300688935077946889591853859370367746919914142217686387560533684598840256427262358725573527821946324945316718134300919403169555527813014757274251991400910883643003427389050023716522685048519018503170962940178817332199185115839519431367043114018424418887074153697118209741051005877095253703831811653904320402036891299743203345933570955197974290968342441196353432085434565278582226803687473348468987218038485778931938942196364023885872358987863620726613820637098230542615938850844015604336521630049883470994830146159797420853325408156079416286748397529151473810771044756012170530998379635842928623993389144445255006817329748072191392297887065966728166572159641651236142415142388084273400689972416294601360799317173819003106494403971257721590072558368404286135970668188226903605180220169585258465460655504703370324380769694101094157501240176020512689853673372014997663791141521840183622695045807326906106964333863683655530579698072064561358972719009119199007082696008100849639116993006151306081395088171837054395244479430793520908862644101667123002899552053748226276252485943949222533977718392797126483439019935914294300440828657869967806679691473239036110445424788910057161379424383845529693722293354188073442832520213311044075545260892904335473075056971738106910761543656337866252413720224457328580862655271794733217170570538557226070996348609746009495427144944015944837503165949339557031815920062867991550184605112461111189822026675248027828354335971215290405520587032222136447501964897789835136686710741242450145283307071195829271707158103100445906195292947228303339873684510758478060758779445526038851601559070354653689996114694192202445752047270461787938562621706450898501940877008743794063210005871155477405994346148552687030544424955481073698963411405971187501075559943956714178280780353321549740411769469725451726646924198061708532276395410256639802580489269991547798964745193146298917025339280556375348609774936040054122673902617379913607989990031945093088978349462776147090754160997238856612858840984066438546719288394541430013459251665756504036143769440247962240516222308066032916533597857425554953600214565737296523326562534851850347111641775094047433840866891085637752625486265729350463757115727469057508716055736299325564190784022886093658963798683541707613594511555387337638075981342248065492303981283415424199864839189099396501395637595560062654136850499703965970160290411781759731422907781247101370923232610541129105859235955851706153859115784364620362151418965139318973425982918594383920013803315938278191705916686965555766215300531130141782714233620287611011785967373712045296014237322392081001404136438013472996400433568458295661899638694530498930030383416085598258602787928642046120242687570137395449678241311095258660780673701254912144274844321415868816879448260114933770750679536706489542040619450078255849212872702801268717976083860586792152571787958464355553633962596976381567764311995427207567915565149768890894479014343118982803205700077347423828197602933558262094632105816255649261462204656392005115423073493080854783394590672599983986607161078303873223709953354577299940530995098451656711409896264309905159888437279631303795006148799844041381963234089111201040659599946436094398391926676359782934122987728971098501310449746003487265459484344816128694570125583612266624948051511456627505748103495533444145392412046782620897128912325559697378959403821146665237087614325004394451198480290899128854624307144216180947107276623037498841338455572114453159895842711995544106713150826647676494836739952585582740523066723935284340786963386679883965273972832600274483185148744301357516194048626463828639262148851229011288747396558940073980326303454009028488939218068537405695303345153663287661883013486195699593709990321138844286807835419781195562669272076808018343641828667256449069706355473247020101133729827389513643651101067401445345156075098428422151900253633578307671425883716645589244105598505226148182992496307134043185230446405702552296424640059920682233129086416675287684514666565550258326963348432260367713655672169747207683625727022544815670369217288191164871312079458595715147616852169053575614420700327593422278177232963236973355589844086646582166607263891101537481316958127020945679718861357604695775698865387565599808802015878252218147478052182059957100458820581132191205944725131819022818029749795524046438086617237927002384715914746143071144579557307799150420734974670820069833305884748727127106588516791992407146953263829635674699946428244685459122093432863327863750927098338345424277547944460881122878945912170359215598403672285089770323587115763076256670105348815598271887783704614315854829682155940606595374989405663656991235796109808771719305463077352988429468871838040292635506221835203845913739665948559531315340865160924306133441798246791910592642789123491205873295135471047470202269125710745558135243718680550668965557613990907694163265197390633728707356423372719813367082090845615146017747208289778643996854177429030282716674863225173155854417474145734282262352486599986145991890857729391201794028733166776124291344994679716200312555036127420505416388342436605101848505159469411378618750209292729632258622770615501872572576449284276274323269164228635223147504563562990368548356956381155681245605369500165072641457595465023010203814431325911405901082703897473508100045012684308479025869993501155946472743137266155497346582385965360338386794710213637993102467174839679352804380790218905467029780427585191905641954385497720201518867457564904983780102477925149873644459324484539777586441185517939464726612178626863907434158902533128103684799915340717040531382240224075116141726361500647416085554480342308750333143610138828411171357182334530029383162915896667492066479241312329726169942670323707445951111096547913900556649644082144638467540133849102944722862027365198121867493033034215214696193379519676027024238459840746585328217718236208180110960772236649434815686548730563142309085438054771926286747748900310458640271993426641813177851238768770101936711054511575107169325939907479334888007325291825283368344064152716803911627278125278915009582059531887607175438885189188786382521291067221797899345921547433811801149266193569697797798222738028266361355507017132677327543396595200641147615518593125083203118783378722969010088115774344752952383091416835512959522957570523442914565340941049036530734470021912921789036065637887013029236008072054447268558606075447531217764332612887398119683464000011582097955832201083387808939753563372204718488231922594769664765952117236277140880692078856910676222421448812706146420684204352999704946981240432736339443068692046338558577927936565793739473430281340335415109998025443851598816512690756085273156016605451899282188678796788260617856700129867829974024751905866242119852189990981260672113349590939117438624369235501779125996867464644841192611918795184604447359614785368058367961097141553040368228472596757203813238082315663370645418764615940096806701055377055185830059231965839365368914888693960140610688662374474603442068295122463543757623959287308679647313750113625266298454786026808221987361919757962185777783088962008246474543327090785610275398784673169591996417134692448495837758433993138213580934290164581317598437440923147700242400244047839996677644453726367947989920094539299529782489689450164200802675029106773845451400127502682401464633181398028808217685441888226289901278878827372523770848540446086297839303608987066546624478511762490621670024633172800961357512531407400924620972646007104373834038813613616049837158531030621347519298403685522703428036087458983454455914283005662702563430524586210374507778512130432788888724376829814695252375632680341935309975665350321092399610481766949221377808665017493377336242159854833755112126974299122766028713747053038396098349064522162292326681929649602336918874910670352915657118482787019358407197442408995430373392399891175880246755195421468629302944037754546174463911512971894477991076941489633703966467112628427285666207712017802407592014714963963728545845643174956129803910922572598205847823984473963551580898680188833545342475332658896708940377100784216390944388030692429490498318079032156503210451384991496577410083165781180711381424505474348353361083316281723344351592634800262281070042809334675061269786022330344618227481002673722482191839306017044526014196111334329593487880511880274649756865917725539448477252525219543234833124171896371384054811480551256666887135893958257938035413604115047832231347928960056886127456733048653436861213231828951665625387972815198639473525434956201187093342037434978257702719108115573538608950269024386033074889715554486613263397248126006429551556817166428549753333010608855817266125740106440489926927570328403995570208062790803624399740631546124102394499029698016761982196916369104953459642447403872718935673658418016858301492659218181370676495509157216020349940107345049679147052217172048086023888322389374293291930943460973019795515517448518972858288199369181452823558053474738576295360961180138753830143545626184940617894570650573324389561399087711593354244396671146277658162213314481340695545197320428168559109538386593122012230873000172303507991320998258132850848688734758176694702523966122590996045659075159869597848367381634876280181053535350016764480548656001447508453368491073185479883679371077402043432352266902303249401508599398152433437121788173383119879988894541432239473601169941943765605174098756036423446056337103602892890874524310113177962328365006905715688789713352604591591283229102043100288177791373772383656855980377361173522395276861532284340872783347841416187015065246206308243310736645105363408051934799318427198143043608635119177600828679154190244689199318088704175546568116531019259662384534780680291670420865027570491633587849079991321222403733270447936995378548069798195628967722615459674123776121900172787135328676365260200347750434680583967457175072388802619287222822237723154174316515955638595543598885963219726728662883592226284347669455031513268906265011445960022320216090319015115281090547111947217485175871097485710212590675974710019468641146641881281153067543888461102145659420940628997809264763365184381912335707102094504817321795089725163250453678615109097604806536097829101953833757323799166321136743276364483049071201955815883276220506572950931379395291895149565884306182561177078650842875187211407887148512997135624438043883354388159820209769863063902283828373173685766856672519469322991021039829373121925450194020950689962596891573117108259369270835817472312473391700682042643633116089470635497946087537908490902747765561954016618124229847744431340483205222710748394192211046030355790102120311666843250164939047569428346064268797588785545195602796572778871388887968962083426133205266240006631487680131056666678905783978250893014423131571194941372899638066770417191826297979756238464207937610594887317296042561242437146720174884664777901311911718063438048926556051750415408148504031032744537768545894823328226842307492190883406152953333645808508130589380442314814005827246542086677679799103262832788575867305316952799907292764138448193458233364600819534724855250081579541535708453637590255478267235286991925102664363068037977139494361961920878281798772250503246742857565350070970784727506894456100952454988288217706405558094170951992936744161244761932021269193379803258679338066462355327739801742455159615437914493591917754944642778065929476915787918385201497713918435449731603670061588640809948582575768194239387241065442643971849295055927121279534099579010564617003535986043468502355126054638079315207169914443786358163222242050266158775036904961762268323848505699644042085598811882748335521880706209250603050514762796595300725533631471380546320042122608076011478958217187964080848331029247303553802017861648652016650513328219393010638558785541889227460366851227610091399185835216288290852287383084082051346108464302452529968201733082241350713996100103627060395941863005477263134932999336216510397221383906203848560222380640506109841639688271019251536335846684503518983891754898695080831635815108603535035927814281520091712504338103508395027394787637386619567034776562041883319998537589102522580630808976392125647388381594450225068497799583271138523626496265916329724518371360268155744965636949264072301178854697260136256032731051707951777900223178063528517303315634645912141969676952914998474969040911258169558286620828458254540882432224007353399565707886595467786466230842849643540353863946501711494183274523749975802976091909492046871071608460916697622284521826804504266906312138471332839561027814595963483816867043771649357437724145468123860790438175188254032632732398769869962240343411855405355414663334919563764979009432236973983647507422174072608139063278431674865880055352840002570779820781292930782902671902566674525572327136839468609858358225150442806139919717171410589571363862190883615099650736238878103449613948774165791490582623447676056465143857718868497036351610879611311193582522277013041267212976491460950089889156908583766402851833917632037013097882673799322786378459797858540259994993110294254425168757547075046171462564734599879221477985142551084903161152084521351316456380955054229338600373440071799748207750707536209812224573726496703766594404719391545179440050444230684146304662216095247358111285894479518775561884718879927301286017165529488120664428798978767476084573553539145838485004480729038085947320502142875064970220361332808358383300974432425925128845787060686711129810746387263417460037293015777238899936064117170035260583566109217303752449471939937116789771279264133469860791463002216491041542326615312948937325912160731806094037623140867883133837921515184914116803618082715803737489822194311275407856192203388610617011082680916682187870015959182720655826831875238322686843816982853547468450672006075589270729075447370036833954987937904998802487217082600216896386829145830153115248366987175675234743399192228373441459225515682681468260959156959373103581072372475161738209052609168796075091402063393520239860969907936250534287424507688741564777907216261877498956749302795731624630947854107514473120385856211294739178889573678144067245593831373136273151795542046646326105868640466340913122534185824715258075355635401464029013865307256749046427143878517139463536476375416699417776382224861325603004501756981226920868895901748999991822523562939787508616739855379477226104347255976645876800973129342586288908835912926857327621577357491620647840913225436718120172430785273530248940789224088554163643939149886393351208489140362199633049261748900256302192071170558615618684226895170917970906123612868788265708749761527294279375088116368473517362532424470655582926400115354143684882813673613163265194831424824971403849358594311554035659728305527742836668351278779885985610229857710483305204419332961415971821387675937794954038425054546309294643711080136726429323622499260783463058897509778331048700456847916485397630270291283929855698017328340269609594559786278433027595974918618891865710367484263565046344070066936300120397868886094405756332517363897593889517772354821848632070243277956091607011452166436084562923479055502513656119472772143587062272180019520516880004831981938059243125974585682014714879157107342143605561719469321509033443583588414779939586682186999525082139266217204540515301771964057845217393401916158297073898344306136054986436164003655927247405570418780208647725908829903823305617780797209046135840532256529454157271183884038457630184206359898341523838005607935589972186481009462967226838653888696089187011728070092380083104584347911195010532113771228171065703568361765508478596932590754279733071757994800601695123880517317853389988725021405282631533325450209196040454850848537152371509343137662762049679360944043941579435941899986443147173331031588385250266365254280986822844138424288377639523258874126713635516669939189949171633693314458535203992485877273144111889155829030475793888263882194292609142162917607877674674316258748218689055880724907731814240617502263957137136880261836490835617642155633780304702630082361007379361681969860757923455643391738449766866779026907660113658395792292535896193870503391940521267880420770170193729733943644507170079309193623612360727441063924682668702144769678400057022968483848726929526183513929240224132642543094154552940066797547444597432344574546560409855943921294107042041245241109178223110344395851711238026961070556470496942317633838750540250680843869822429594598393484307077108996599869115573773655871433087059829140748084910527306361716242859870721790423006745763949127368055823343054566408848146631252695148311326951488425696333749836192982248936149232821436272160461247623641707164639337609311103099290002605877185224546798585317373207599810373700788042635115239664517511716910810621366077442241772394296320874345234018412284528913678857856606561625781407100432216800887691807594686935962103171827826714619550300768346389975884067347612032607186642681434946713361963505554162621947530204375311640150516990377796702847141298050109980908696698197451740715883765299984758551566586190825844892492562756525738604558954608832611637307599132548744478301898961208530713601579912829694428949171688827123542835042848921796779534284450387707482000375793486492865124639409898807316095072214381881109747158519692518423107319494707140540585937627090907232100890054818768976254031742883735819788276671225710251366901314550853632935683776655942690245500755702692630678560710628554650097571904166125266879374242028634348801464098035638458439061981237122254716990390752695156804544089811311654089559983532561259912924531664330644353429098368323461118454828982924023161513830933128244362799926485630661859284031066665317958413497877020576727559820407991692885729269298858089104479910413015016362859349314010563605060345281147960783130695133616651196345864922199202890223746810098634865623635554229949510130239517880408656823235107837708366590857773264426281772625785744267503328089926858537682693057487078261586185915115401292816227584791387541613348016897333066414640601660713616410795823518336202863405955549064828975208567522201907226604019095441682869375982212446584068337519244973228907174543464478603252282366704204585250417317678977630095485115387280768583111720733451072006516902429991676741050791626993635073999000023764174121845784681518509123365756917720854837713545933483327837023185887909661804395985136215657794017161188881047375322423334916137894091369677397494176413372237367450290730537514890383625917347192440550259698496240945932779323526084156491615499072059130408984527609904753130718757934203156316580256516280674930707156916443575950663305901609466331925649863672503681056857953997067668197003903807875749874149402465810471686722858389094585464065809341373056838193533684078258778852652862482451963824883227191398789812125172893596941690589763480484844283916709132366525478207723432477062157776810930433112545590639756027478048101056126623704662599645465032934966876272713997220182684588726099636903101729936849424284016254885468949262479989241369400036009642712455190273773301649729635320436827802451066269418583574577600466785725054361516397725720129625349794437018664119184054526891750413281669867424400246685455102412637892529279369905999885292624682742401697338775803317295121976909248500044103486023165631346420717349890444279230366383660456006213343126259314607226007084221817394516998235454649385617482938624521602107877316864898992972991923473037873365492488846666474127442316251275638298113521444518925903212338421594714426795781307118612673031905553293131105071269559495559894825056775242909519478857954339653005111095067553454665243416804373204653757492178480407778953422886526453415472226944137906875529215608566081842780235407514966873693339231099447853886410793269589728995146092331935792563721448238874895653095535804388117271158965205487819047348086637478511197634345392669195877260232625423994756595478337887532541782224596314995615377378621243101829799349145068953292203369774478864852213588905532157830722899059415278081168880045487610047933558730880346972213700922632355223911724391823471574208265146717983653461279467165822649271103713582091863678523579508284414301392721100687876678307759180786914643363385197498184072378945902147531097487497230697753525622804177278366073325176528670287764116542270853632688921228295045472567428538573395424664007301081091444025315903963947770886645601632798244318936843559195900737768174768222621876850286103032194168830910637204667405993035625224811233520382314448577082657347101359934622750036696194027347513412069818152112661529855023491298137374980415200070449411569332271856700254358269094956609135311760677800608347105255920633586050342438238230729587943398548038524070687745751335242254689004198837720671122128427365558147025158175099540083197499059439816819802867676951378920181103269712120732172314371193701606441408875978893993173651483949928809437900129667440330519294487515304825403234128314949565157906689298071947081352714019934045336396859563645888390687968283438889665300733357855644419053870280054845977297048820949180764138052379675396539128729439172815786136320405322792287153409848147553110634911653775543749258825528002408441624470698668529486790960430192008863068727526724121265540118327722569930626143692247592546573071190752845035663278297006392548639146757835515822552375603739217094456026400781963119848036176438275040583763215936167667402593735964593215051644925877002113869495347368924754127410360973944221043817795509968953543292340936985372064481160502047140907023663182024771934109597480482562924227391825838857507839708052570408670597082577558972143799289113269121825707605579743904063940664688639558241266590929077023553733595169645433345982090254340561435624243554634324396525959132444549917809033643502535195780503853040463916196060317135608630793378022161123364764892907472102343292693200606807736016383144531571184981255258515011733304703004850641634937861086885138072631948299826953263227311679368502995428535075214199778849126706419290099865645343057072514887998116380076466983381380288676082439553106517285037214868855184864863355515399560334530572118441427596206763241697969901624960063694824552094489986037863417436694681133665385931560085053425906784710810156019267223677719520394082934853227055575314983601199889200140911411839386378841961451002186716447722734643760037909283394123736651434142409275401408301213334310256929924439093730078470730940237825201625191325085118665471646372103321713893385959187875359435931382306202913223457169353883525424154265996312946820456756722148645778837223904391269565009781883973769365200503855912241955823666350923330133144380458199104588230744802682612376700190189509859511498194029218360987646660801337238437946602606568400639305075265538377520871566922267910994600835867102373022722016854838972492449332685403757456811276851565865217431833492471933337401480596703988171716101945163942153928942312674258222184313035586678270676621005031172343168204807980921215703039096330276548941283611029714418736416703284631350623949367256543126935506553128472642648940114074496273842043286942573616242387795828641254293116425670974063026240316359185681032244443902478398572268163971314541649832115095533606915188545370793215380591263490902419567709611091693818591573583578622432524409415067706626672770347448105948149722111912573519048742334556529884698175042433609410322578957555300928351267323808925868358321519589566389004217477197994183239961213699057274012633575798545368465989057529371795188623069503078642946082294736712606482589712927390090180326210918212844091608645800772059605830764248432010257630899538588987457162823917750487055129652020580123241214536146973113752493731926047223156143681296267241713851585044233051974260223900445655698101026048590940948828091320058514062115415549262449770348795423174207850211249567477022409629109410764117541469133758682049635662155031988878167267487723394018376889151448261828035384228984122461223455689572586966924787420894254026474769748380447894400362151979108477427482496406745840237808734713396067949361254343423082073124918656377327047125302318366494989746482830392027001512741934500052589148415995834461846057397444953899767092227751652574264374643289285849254467140709289924044069571679138524380508010030348807303405863751806288694277918168381176027380705681667299967012657794228634142122641968338697279104042787476901523630840356534626649288551374785213291216802981411301770346239436962941584992642032900700416732167349950095898363700570269677180633406794685414094835537404874565926262855854340448259521400462853293383972192489138032058316681325724893369181476514641600719187209832063680905241350238719032285639523477788365427273086898572269706913734718193094870704993234547664561476178311148899574713469259408691576791400048240733511646605936077456692381568082613450219286094814299050796450546307001042940898093270954163233773422980700454315898288548335546252274049422889891669757843492430095554833123127078248752455870681885702696780559102209774578988805797269133230088697623221098862708725303434144212699930953904921216415095618748280672404227906362176629424468817159475873420233012487443364962171621854914994007254514717199829856017795634601096780445866976455387334038467883374958551339131040618640733742556088414228325456376811121144221039049592725832312564457212000967384661444212423371001045731483717341465085889760136806179449500450593497272758008465387656710981908405783020181154296829967161303935585920359638695025159286478360472627831175532558432800333726992584118404592525007496383017686837007884460636163374130281152481552585125840030194350837109883629815142515511581210136960758106187239301303510211540950492635311316141428545330826503890570692090615674330589709689416043318045790679738306746917999453740782726200696481577772077983283473705676385057487761307994971165285999875665619740403846881419319175247077905469059978783024222989434062752271349637506204454408350038582014646011675822484361156033432895290385463695243993882558852872639909359067797308828648157285980047659877005362050061523882594337296031422148258628073432013690979271725703109128533849689764299834224108245398678991582933361902836605165067454729366851574677681260109919614247210160724077237488767801047392061438849225760736551450443919988982390925001504868119338015080753915969647435714795685163546710984277576837807918347054534974914144968692839951355392953866092824546432685549609134967683426816986057253276300170718508179796518596530429749416565427587708223877582824749540559102631904354360236397718314787577372981828080750483667131346744403565281878064023129167517820821346554138436464811751873620202494430633798163414760721467681608138185963096792388351180363379366951076497043764613547999056906280165331996529831004631890283672625310938708016662451464179625634490733704121098339326583035327357701241964001046474299800986914018072221174591952410334244074368311610996153649054448515304560992006472762829435279217148793779826500936679802781448519287807451600274405377875011776292208071623975259148660537830557590778408663106824927009849350255980682123899854012421307974213934563169560793950829249452421631116821396985655619305559991210733777463163456164848873999189530073954562198874945985643493263259100401813576805276856405906713447073239349549040862361199713864576113550175143276526824274758988648419468847990831992644788032145316186678591805595698083276731934125795305428452421064312952484345223384102443007055666030613104649516064473442136840812085776186026846128114286908234443026761941112337757848624501073103924029014551653774241652000092816286071430559225196575520638278119020179590103380301245542757675146495502322738110564176328755536627186170999751587506825825128204346723128727371595391455760746638805080476603659722160596474302553328035142331577291010825525039109549934127108980313500572622033920509764504652825911051737152492916942779155784727393593094066673765999315967468509384373873968973317987939683546150733359302251135325893877846132154235834924219451093936683978276768183800415550581296173429643892918857507448819297390641353239303355250456678639364613276748658157625011736186131038795822706671099118562591115917010306696183433529736545104998999189054942607415511077698699224317651279667502524422641179368641189151107734031242484828571721261613868304899040906329689930291288422144723545076479310627482308063823283918851032222363207542019543706773948395675455718412666378685494009412733301877728884281415685378692247272746689825165586482598072481956003514724878566567845099213859898818829620976693464679430774397476343300356139430551985023626695063967383097162224671432670987804021202863950457611883353360007418452671097130314940741212042475313642000346729941955421439401151164608214036896528914346002601543192209146951267549504625875798400938357398636175918983832792235264305618934818804855395288455791510861166119259432829189861946667282814327984463453449248826520467451176080262688898814392187604949031957971463676654495809860972565420253622848256461983617447276239003783035902881167876161806584794433161091072274458252927661330205525974676739107837361010775154890383551647273555847203842866143770809638765158821195557240878910776259081915986646827350532976412111541377171744855567723795190863728121429449800475902148581752816401975167530052303578717109251907121804549183357599507864617856531438888352580921239458339450967292497996124188097872210307553433944561954944757453082648855385620168977768319246603865964161848721209477488737242110152770106305342453775185834592383530715936713606161896920363725684985295353448874411204111451169141883404238206995409955467650757131787772788939501459197043077938365809907849333854628276566848716087713617341820465536297200417026606442999033738194583776715268116867536437389663669411858173267614397837418306219035230123064852107031362987515283152903966717021973055165030795454619165566526623760871065187116978796822545123871699643530160717474750692001176636379660519054708568935664810827196040437057785850862228101459723395124272369811562412882982539040739284793757298046495731927610000643944478443033802545260221080004364326694333805481810351364531455337937237716871369107431827438687993652198268945816452096991123183033194557283833633098255563640894146595519992881330226348983013503521301499779322053223581841016998835945959671711054631325271955273138008350609939431120333367347791956633257783696876702507084836479573800511193374323716572191037305063478110310746185500394899226785025345727391959423907635557603682944967066352623114783698395393564037154918241843062919317536498544471254902682815695952011693404549367717935885354345427717312831313451608839840809509448719334427867286376065876006233862978223550544805262083934069345204177843043390009247890953741503329428213771843015602699777100164426211526787756499120061993480640173836939700058004568885136065914985844948490153851013119859332146837122378434350320045668817575148799194526434141146325927374504993410259984058600783657758648483555561422588880808842212745336702444358012939670153226382170813028733192628004059014529422594583687206383162434016144847697428044343622430370938273541974444343232865393079384796812083919270588316450233565681164185435113725637240878185131084811399191202214327091791227535628363328382214974248761084199922587480039228432222004829496940213340354400763952690862038523994213667407364019997857890347624080581938934130357808992915667186358014125860514238444036764511201602603547231278304824254197346516476054184314565201794319620845461064228585263939097908863166028533488790621205874827561573838410220346920801320097361632120916014347570433818089576649829658527421278368859777225536961314680050350115326543062299706904248302265768767123755912983493698876283245039381719539320161919651005921837506657247588101755731658275991833258628305335698889628579315550977650959677540742917044477949743087819413238557592534246191131646242564202869472988735207472492853954656803177295581320390013476008496946647408425802148715172772415003241919887955651751733767170905717741633537811758383886908500294532864871153985367047919016363857259360844475621427756027256268209552019066048718303416887642481592023872473852081861661980366064967363081654929811830581353422848641533209358942098074829236077419418990916152077664512491958259213269742754358526704560424397309455610046111594529181920214617760584848855177240373729678551550563643524677285890472580320031522384033699520879950540305574877341682041358582309422979546200943242217218939497545041791419648552484685492519329660850023925222745700217442016292399276878857181292334686513587462711713121866994178886637463257061397382689553591562051659273987129317574657453123962421967643811963846206196734530918957730291539325962486938795721259649203915406149035667546159645569225717216918448403229312559282352625817948165926832669311681381543712621225468474593991618100281481199568462187120400595731537103952972238620003479096791005800947464089794515846647349036735846820219579897828682349991526896771941273951087114244692431166905874437312773584531515529249974862019755482347731493738585842286167908485723894061685069567711072516398447344112943372265147173436800527614305480835671960265274879906068805212653763806988314645629564468114993638188349178578087342503388318372776396443194688303950912232040719263085774212477527662330245973028372933368326383640574528739446681777460872140414705060671425659716906710025394762866980784566580631820267348408543935777234141174145255995374939105429960282187409056848197951863135358012289954150816433856142869964026101689672176454079409729278582640449528083985083491331894297850544256822600208082959712072970184837408157424589250022186988633964716264867573337375966091513659136887672024372858617633844711141812964732803671482839321460335865727403569618382865811999078648401946047467805040254864064466482395663656576601182034373808816801398681252261310234918021890618377925064657966911136906689761387927421763384766743525702751979023327463466724007806204598241123676182531782965722139947386776994704731069124470065810285394240312446237939805188131164280628473270979909885470965894682605075585529731063190574997877729386429036303527167520252546538742353054953647485110854216808650625297046087844795161087282746428939957192266822920230315381844402969776900218664811766971935118110988468261314146932293012595402898268910637644985031949088926020455332850022876650962665602223497416299578479806433906482087733347985050991787726574661892915505282719092027919640110539599872797137243013426867749531759018668489237433930944822027034425232542255409414878270898784062287586631155430253118505780525290524244994618710278293342671235823976808011404036668309078675481624746513130504862223228933998728642598352267354596361668568572298677722089328991887671416910185306505178086006367498944073522769541419220292428053800909390014012343804153727054113812831312758868904922181737054808372751295747762645370662833799431124952165615379249245662224759780714767616603166618113845446642670828704853805116403345487943249416404136290788295115600143457794698017046000768503931926833155332939419814827664248495433937017284788977795371432963641882221845075365586035133648386857101432517032169501537490267115019012293564490549614110655348860194440619642109324252066299852511188967422551655374788592394155384349399452904971109750985829317605827692363425838435013654104156106921918941870160083350212425691773786381980698086034768926235594980320413625176397860040838830648981600838897551353733849873761846532646740979153125292541627764521749922761806442117655577391677459704999080505393697764069469862118282029129710238102627682737271475677228442240803422046381095496579859470133437820980882658373506832528057553155224348021375615099946003304520754712508563908028570222710771694050137264052909541652125500031578401536555640248576802149362671329479134684200072706907390885449083825647608111625588732874712339971490439628566228459889281462528727303430584845105935761987049260231635146768146059688714198369889867520368681205712976793791993472060280929346032494608050620636512707177225770288622783742900462044120552084481890522687750504961047903960528171471452236915046748610502569761921222496173968872922841952872046859544600950294434489366213271927338526764486161502998617095227423706934333344755034794857551350622436755896013126408225116548158549297124372258344029278355306966665989304704861959361878614626917055186522622070804224169645999073135427370061178807827928217630506538365458390646168092173468664552170478990345116655033810709399322811684288718642851056341436710519315671742965202592321484769887332599148846884109171358259671853816857312506730909527538808957993287063575876726402770983219583346974254323907266411047442965944965840177383846689145019543144903384586941373548216920884212679059800161087223772854402524388692150200124840276835710749248329016322216552854767047821255418305496686548842440162443871860544227963822184901148963144976966949784011570318612783884944572247461327867070079875743892495239243368069185142698369711448303736045874298760532427665633836901094632033992584961424283656290411211535755218401827618797912214352312585220725627242490762078970581552309718619063376416617080712555620119778948805770307469149474589531405691578442391385651128523835062398415165016630613068828033334261536994775256681058889989625286458851739296547833773056581160012657083892723367933489146251580454921021733639914938518993404372699229692761871600549194041481001809609704987323078969868858385704709728076885803294233072516081407645640550370541314498551511000844281217480453383167270760131363606197085198752103176266781682295866275349484997419453191694706123041599417180769562092729898870375544404462876404475295647726182617803295622562451811658478325234722424164080110123596264682776072118221990049643657010010574555009598818713964600795839714646631069599836146904227277398662226415102650500945420296947951404689660883244017178744197958378981769206588414598163991090567242837724329424694894377684413211305890364218367761716173906306211384407006963647838030381843873199606553187269823141091719373083729321393743252187980886034577919479475023786434757856588869511579543434776582180177177661469698688090048508284853037283686384152726149797264262629495103466102574180110723081969328336499832513056844157099220552129212604906470173796363345019116253207962619770464952913367296668715151194692090105400326510691274996797975076886416739582219862599955225881373611575872907472847110333649023874917271180324409418233482584626234963182454742782968280698215664121657858458544615993305106634587353254760310091606928551415919930375670662432004213748579614601252409522657184629700778058262570719249703580348226270708365539976696720873813916330114997840778108082314440465583231577017182699219621916524534701578226453657590097633779007492115379620794967719194260539798270167303789511027217501360277536470816456905236795833573089022160141206422689581701258772458766918157404599196402725688513210734214646451487831810481120417999808437256284390414974397837014480796383092772755220276829379991600496130335015330532788165264100115753205662705461422193347935441916600775972662406655270903422625283658563241794902945727008740391708779102900516752607445687964076186728329234221515075414575232285957652417973076835652922207053285581924808378660774263263463174368690948888227807228963323278759741082745849975235768885484220717581488873305691850393555215440622009050769707846089415355207301046007883363888278981902241400354186093766545604059448231600201541163526640694417676006723866932339262475673496376944165402761257017401225943143516651781501406688993955379496064375715168717921706815539928373763489834115873499993268300104542381554665567532732363860813952176590250820203765106004754958012945634310506609293634117401753016276085678788541399901804321822382836029598700288164749271020470986551854312447378692983283510550121898523785705524360362805515107799377044429385748354695843254640421141992387655782726036562382016346325787034033399394234170636393876241311531343933331904703027735301460102308939453052135123517467514169281833808207507202123534786968023412557691283097729804869915968901266934306489645704056383748432940570858564418586644878935335583513127391651550105701949598677116561806700139108478299811639579132134625240307508892582260851084552223236078724731368921574346821680666722137046219624426513988182681664981417422435979833664905992783321387465729576085629998360200111128589068485491101266610085418721280784998283975177145736761204269813658149613462870491362799334640059958917447640289248276961158058109689754064774271370847839722145857420977381103055943341778479397081310141219353020556323073475142850710491671744155682596242123964504174582586426525750993528249897894837497545500723606260584244979312993687320498381135617798210490172156658553599390354536126451887840632541873930428877449999154226418083286669932695198794964989438650948939259591648169662187174446323607529991548033756574212008247243655233779865524000181084039596491801854727707027566776069516029824251093890882852210705819442187261849172257921474302634257670496830286773132114994454712531393138266048237962178400770094807194676012763911410894532462258948101660393469952181462732467352781265782445783951062637831519628200599161849676312669169074393996581488178876124202796975806422817593767782190761973222915049549197033706421173501804203860920048897522341158082800501247584021442572420712908192163198222932705057223213033026293245492956586424265823867283124184530998330112464672775214489120334832377691574662346100261178893148381537531984989851582843494263312923103070875813831857736658374576626050064853143659594805441010611791723461230133797085457401130975928960534095852515035861509564137829274628486086286649473389121358895536640738535630252507424747078847176136764883293981445162391549578489003234572580749890997918279071630756632667814767160466619134425335470722910680479041984431010511467291922222601867253117124284772734165680945464751385833612312154855836791915587832048373969320845491351819691812581806390152568593937552450428607301513135755962640607951480811699461124527236884355278671774997659065412851104411387483979428292196337951389562092121597206015677510599528060819503258777424116901844516958986345074135866446855967391297186120535030113772025851319470568903709735383593026136265488532719869081716196156200104816233963237462953127068362929588519852693939964501509002727933290666018249024466708916222434929714535227421640566882380922958773822251060568898381162100081055356147976821389117840892611073115741814049992728849365494833892182231338153359148335979027418967561078526127114125333557522091459433902259807881029729193638092374889167434883311749433648152852662598421897205074437894740892866846965146122020462030929330626453662612154381849406694395684976379386248075127809803646196160305626493145386331300841432624665319713147704453641102019767134137059963834229603301369353693491366560417081486061064719643793378525814862006438658425602515223748854147976113503265933197029747020637960297998027304361441619988968932178145438810713706352278150738730344529605363984223408756548546642009906211699838652326988664936409052746277216030547736543244520080036349224995680049563981375253137103011786914013408383457149094678077347602906332145759404171535158526360075077732145039558086570027475548117589754963345020268843810385491287525817831626925780956288282855720481651052772184235006465251341598301624772256502192934671215332709958653614997397946569090096775665311679444890308082369029193569345293458704655341457853083839847916410677729709562462216850439788969976060691457587991855431901939748055367212335449315416661299082698338522422109203296425644024003152257285572025236065636974916819265515438194614052848376423411098166472691004651570716021256745375117769085929404762360391407805235492866143509205334600324946830979051986224462076306963327870175081280903304008167127983186697846559935296685496724266546811580061366934692997461505355337316376394390463470490116668690697961212628671361847029715284358173186475455750981494539180221550195666671081064505503203835243005327203703989081724584588798668796216215140961192641561586728133112015944240704171056911022932120966539269910501843351529350317277711540902187352842310502146038729713627011549405395046858363395864460320935173506560008631475481853034858226616713295005665280497900185841556493274145657266528341453789543146551443990653435207301771637940995208668715542556636516217052067707757407399436553926803070014995648876529335588015892482631377590819060203264445204483071391000319943467345344391992572106556316125874694732540485329833603311072269327062074841244129427056177003523109980087996009425442803054920398673162296366202423818351699428816204754894670724739875000798970068077029159548359543848433124218297237985728624365623069264492677664124195911546757936403222344352387932100575097220548855380071314063707268138265288122272890137306059892758767832988782045148698255119815997359740797814942494898252455254937234886386391504912702147513147788651216187665258443514199363800806986201079435936739574359564181439772269233496203946932037456177373033325725679391743740553705077834100436497942438185552843636055002085522268451223960992039129737682681392151048387643776093351915115124006219292049784729222875247581106856333130586603587721029465076221055290822306136341333737172456632316690284698728722598079432931464284227166749826133035908053225586531238985525405559210728749231027576454055027521510884124177683645542349635002859820825169210219635894366754795489496151652443352939872646945911575401031993688219408550795385397855645273620723645876715149238609909655630895424534801980721536383679918229549011011583402283092880791099800968795937153772151624620101440810330772884784165821822723939223959244988248827929413163991128034521427495918522235553406695489168100150390549620301476604838940559049297590970769496598130916786103465728520941453930865666458933441587555517989056852563774757471215922041585216503294222235254819485183738359262711102968023833096723424931112576833159577294886354657944748581892170361978308976721524274405742846600661600728312932844513421085851428902629099029413948546327807061077298186600197788767324945442607057786509076604029120967484938144814944024904075558393546869752283518465889003921152800601276536475655396896716091429793495382413343227030961814872085311657126879918770705307042306152731874714899552260439395388105181530606535776813770091143166943549066917864513424999779582388567329229134936050773338267176320114242302096311880772299321312087235926552690039495790357785437659723433416899946149599348491717263651138021882012495558740018466571930099396905156532853624982310060783871054521908770884597716989729810638418683370689405503957997340511511893856882127622565871507819746106823379474631092389306807440353759473483506173882869594794414592541766781271098488126326919907318654043628295543043335786353595408548250724128478316793312824073728569467980627374471440340209306147345953425648379183524970586897209674379881931049411650826504198877793253412344614368490416786878331251896064548707528214177326145297011527359368315783773040343096967246569025656229030340228900329007962029465997843991620355985328082376112638736157440579732303900284008821993785738714635523311971138223237496982877365818707163968342205571520997477260809180627764760175437963504680844830008062864111413610024561364324644739700677001594103702481171613061804834474815271917796469518399597601143226622385507804925389516686673693987314129939846292934222075954837710656003496731152801747295954460809669796938687517806787702848700124668471630854405708892902149217138026573211254285254003054016679540312734461287601990754658631590639870386526403832169243277198326373775335727404762051798023659858426886490753060497831961033695746657483012465132887645392286958343206553913052144937307407488408958043992182177517143874255646394059452787476087166961411464961594412738907204147584183704455271381784718831873744214860539190189775211271933645495174777567274095829618620791339425523727339436865534987134503988139711164579671033369664712226201806746185920223109358995696123560310183045445257655229389082314794100197074779393276163636132025023506097570236594600740195355381070788908038695038584706001197034331914847357872752030246605998368378724610309931389461046067173592035383788331418678898359422656329649467897964304559890624097708102983647699517290011034642247358090028330152606420128216279889328656664635401759097191223933974773072799536632423698226341288493686185238378853202017191132937962271653962248896812462747765967816589694296273715335495097636097932333145319326777182575794147400871434283377244854413929142251473548205640246510416892841912469369270684895608024315374420789242426037440749933583144339338807284325738856429099892861392763495556912470005790428784446572657823828827904420829765223091356130855646268509985578754392354071161283797290940774179623579326916975343405494363313080722468568297053424891463203535280322989942533792849583449572809184307076642701929545475241447891428811027557545994282130334350161892153264524371195705617242515037776156219391027260164392019917441635585459523186158580614958554805295076394790236526440840163946285826890197858108762934135670134152642984264483951788776809392981498092552568976978442060479148047088523340093808491039750861996764437558315330449412024678355972731586209430231188661652351566728945028005927558826547194810396889815712118493563776928753158028375677130491714466461752985181104154507752444773004915011855287606498776309336465798554701734046112277930522776212951503226639103088636648243981368486358409520796906676218607679393115689956540199730637686937685375612100632951184775100587865986390545899916821930552509501520206203331589330175796397439910126507744381691308599157467215715828163209185189024739694465316060284793728191630502764797676964497797144040806244991248648551964058106805166171941202588900700134153506833942125354791217430595259950189578512597960835557593800291869812011615545022598879992249298755212268000133517724153474760568541974731936273282400830692820236757408383938113017287107646139184433754980516532065282740487202456871684879488183673965313138438551622724073745988407355567880689247134529353068482829160384281996819663372605214971869438824982230539752892726041054917802196348507291508945667474447779844409782776987064611629611580654034284443653372358590676847999481274676222060233771526295348151353039093413821842792730504603946562898035142423508589654319132690383884832910908647443140853373631681227290267025169319335393711568983672943405123355142104407138743169440832650724537593140542457584285788982053035464424347080322666831328501356158671381621502541645233633211048204199091984350583369394613776102929528344262124348260483949244488615579106820858890608804540811548081197246155744629513568787711441991960207509266305618192771439803434507469573560578686224949092238257207197601056854274470446975893152032026386850082777258546793739021152955604527692008623215790949382339939005236660622261619642258466592671552611043143222553800250514295274646402599629614113951169032053569434318413353770514849226911019144421147718386067350958919409634257425366178821895938123435623087644965125459539337935440375556206297728484169972149127891533758287024481251778297710359451137963145956902505007405494189907820310324108878237041777472915235531922800581640775068405980040631890295562822988774927844843479235288008587314284407942732800766602052913576126465630088385127794802356230582985998525375434970389598513816747730994107920262452487257259210649810333862571000635621783563149233768943614112345279654443835188540296532656070852448014497307190432537903209609705697408861241656690411694642908372462155147183260748608904728146792240928817512686454563498852666642746355219847226026378645453797281356900975291164837978329592150502248616055394456644964202573669435493888429083440560097969557100800362134863484309274496268596962934568064807126081817483128351572140780568914033267778208768431126324272037470578478735910331528242894910698817696243185903529778321895362222250186529772852960025540200041723711516156865544238523544599213291730697677546185840823220800089550429109931062388503337297638422991927758761880728042498372845941470183175923353649125530074951993518367200308166163882512758209570497518303507562131762921074617928259247868426148757584213640060294780872676330482627238331838540428432231689104166524703411384872319091945625446631395528760962967531741566297628788639953613274426580191476133191613801844301789041834255204584778014020500928089784632797984581887272957004437734628768778455552836986926949634657008959788926390989068507060750953821507832998948026285096062338036100544854190045304720648678194092518263304935008425831247917110148868121775469731838759403261255552574288095419180400568421004795315874151667459633000057875648261911218767100122944924623735325867618671618103133386636319360087256043675024669610465399438526317003325722303783359972861626458460347512517038039996389998501018980389797388841521842168474582532168623199928571303864500457873798688335054890472523677887989828311647093692443566586635581922538918020215592710271487618395093273285254796581194498436819954905859118127934667158414797957860859443285644433104923886614426825547873200799717312109570311128871562169785954018182169442032983407056142870077192792699804611762745445682612833155240985868048805710801476405172736087156971653568885462606537389715291174644447913215806236734478532290779986327977470411971169585779103032194980410611788072706453003567878836104524655670035834044429332487848825549212046814771703330294503005257439046124757674227015772833814864445668289366624609096067222137011603392273285777696832302437426968581339413035732596006569731597004063121120396481090322550203217650418485056446743445910836419028064590182344344069817701094877037863729504162950629401119853090619502470467582325217989093193874802340596596850082111034991952784266387640893282409113373648072804185841136919098780379036950867338075201920980021895574498768791320727659839334191035565327544133899140152654752671753875095063591601936800737970713135791669916819245992699932872565939517233780401409053220954815754785452031194529642445113726443127718780394827586662015495207360921827354527925872788144942410551426099929087808325550102535795207432232087793448155728577456238915578195789011674153132593924385440100216563386448205522923700593400788020895770354442556606637360788363529164124571028655335154327990597983052619120152714176661262330431758820100369254086473472073780588956367290438861008579692150348183167527800625910522460317077194733202080685351603572307053840887828609544210876568802792941454616710501791019934803235074996150874787423115555842533146023834882688384490276699574040293034792343115145444398934957139908773328551584716624367944729018178093278424896084447393035779135580369737493834955216305599205617089577845490536621200339364412045298385279711620073332138046302112627832621928500472213333038905306407520208654085153116736570816969545369648656736281381787513588485540274309506928624269471333237665494515435082459801638981162892189942210847523578874179282190846347647140093424038076916415088646245109795940567496859138827632629178457840404942165699369310898987575729975780687235087320585531027064522223332390432151324025386556406874735978906600986959287603887480851382894425721325993692759740629712709495759542635835075617457326648857102852734907179742229989709774623358250807590413160972121003320280639765894495252450773151231795315711612213883463368785114096987075105856022414799801938211333850920720211813230045918349945468246528934164629627435513753493392947254729680369607256179025311207685795316158780679413528856563608372325402857442040225845611265180606384771023016187794812265654896460047079562732300349043051982367830437375661058712443706481181587337429812441249203628146180886193744827188667196111606294040919764563273180563040587398777398771393372442549534142333622454791264432198548952802249124511180943589100358089341201695530883007815626292264833706128270456022013282946496095573960708885577804505055956743281701441732155919021403562404776400590363488778959534691778469001324102200731449888131211697585023540669219588413702722195572096834009641139134769524063073027564081460872980614347230317894136485004107793013405725288972001737054673359505660622000344933065071924132723455629787335584922124915954283946933229375956158375745133176949299618631784851579783695302650520961130589990149758141593893431098992204767814546262512270847873628441244518162669450868680459753575712757821770296217308781131780186313111320775764916897178221204205060270630670837388443763215323681859858209299106898297732483535180279661102426830111934109858970150263607404224330083780759327226804563966117143663542605919806920313158291377518150775806702222351761314361280118678207298164981428402650835882672741394678878165572812510201766761147272724360625712142177545854575889587316563781223914098901468743411721685109831420085718252046197018114815924308758901775932615236608935796258469422782709534497103281210401070116716055435986763251563402632250444603675944685544593659690407728811098844493651068074308717995605344377563400421848493868377839551915256969493539622082497565406302130359005397826037106747405333966817213953056913353212073028227061114091718831238340028084613482580091291396188945014385103780980914654484023061679772667979702392324351200676619888081831973765391069331158007858816236864010805334676079343348505432253039768746006555607252335483702428931430014510537291966765352567557145094553677386491220644950037433371182277581187054090401361156173511365339195109746179644339509279829845791793079602471015196747656209287466537336962563746484719273774784984981488410681184546165244855316831987013280477141273493057270411215270961839316879947064823097194691734218227997372996413396486631176838141587469964699587492144005964443585855166207799068612528421611596718528359525897702264491023207182644567865569853646138591851457486271825377817720314799270331545665124048056473820791755298212574775126109410163879899554409575516042381123368454194454337337763210142697138424187343746611984426750400302808178760294389818127241871081374449740295026844775206062759927376710199850842340880447353758793669032984202967005503117490004808097234743730248805857600143832336998214638403752439159626531554179751603041718646804200921662055920542792258978718829315606362767234986960529596250721084159655874622032658350552422841855087516775033243380850022345663421388108480687649657194853788713095587645821637651251953060401867181310574033207187752578887830940506582999511918277924999894029541726838498852690087947622029864640325952996266298210182766088214509804396917157473206891779938922342468137799040253670155218135554476992976780253673852869773015399609153788653140831942191128419292105897185208010370193232470809036295654546396568925579053343882032483646353185471107048579304988324829669600878031981509420305476456615497429949546132615240576038821843462272272585344631337986669181555617470567963777156302670549304640401163999559819809949710139382303288094374424033680657268089728324523053025937874690615751794025323741287559755291116017000341990950531224408385357358455432366075047069887201814807273374433725675872375395682063560710228655240617248606216818481316711363316801202518099193664919605711127882903579665415424258270391288962344394927250295194455727510591538016044098648102134726757944773621677412806637459671565744561532172798421849006253267824919195057496374052823983161559453360935269493971227828944319515974277214186658764501647187123363815269309524093045143669827084925939172369936265976549592981848331289345838974639005454590897440029004515841501737418028676561259361881909117649574266393397962029728345736374895010802310405989002218755541511810973741360079046036787889263376144459745917935273703572891469064431453519889694767791841835921315151478899816561990852121867323041014846104873321776772110622466516612090832437962814076367887695879825831355840204302894446677438937350446195816270418092332401146692055930653683713191301648926258982624621728774927079256916648142874589897035215095629179544015549124938391584888917292241198284869274782854462612766203383863464715874469973045772005500949450300551703901632920405675042793994428815509146911288439424321126989779344306817798497639674468414106804555243514875414229591261287893074125374479895170056752786198761195913856484605805848013197325883597384627569468574113180034922316694432427891366197513836135389005954958387776385737721016067355472409634292846688465020036703508875308121772760028757444266943998996406071954172404581093582776344259091458508276811520665079859681313188354636451663080685267205348589398970169976709812546344776179831254716768941739459427979302817317582306506525169104671319503746386904962132629992734432781154917613595429063889537994733366892302530860592400642101254972690396750489999404327472330166736147364030443192516860367705938688492042522067979666558191357620892683397382506039786973965833847746276379578863131675686946764810258558095836139857188696654425610061849181558487212842767677506899915629246925881621921110643877776178357075076675391860500049990374245232016503465302686424825158451570608175664381291691195806572497618093398873511899340632007383836541303256303630936472488160217754414179785861518848826410981815364891925527154457661055025343906447154162342353960360505822707533524247573517976051347141841680631853154924578981498223182266492690371624959049535809161994371095510051837840336473787114756862986100686536122250137084824939924016147474378184881346839664433520988774186099515390778388601879237554128481041899665306015791631190784468114974616631408825134884176837862794536229933765641632063246052183214434115384630374456470806162757237346795099988171203170637007125811270806842467896520943883299776000534110572061667657911099359627588633552928173061582624959917510107032333351992259268364892483129373985420009175505691032497339287085171214839094543441511963105909085620450412709861258400991092568802696118895834734196122278833463631773933249204378925763819645340196687042734959397650734038611191498999515596906989766358479016133088506427697740400995961767696409427408716614843998785891364647161105250514514647770155292403001969570131216135197390884426084207782073651755630975110405518872147263892688064627938214990406279659679480005906065098780354622069126091186185782002849672966631610554094590896172663128036827983181407184779943843692339948343682071406476613604571633083001477353306809247435362431727982018979155984471660413435164876662067368754762473283027914140157476676158868694527908083315343356284150063481955067205417965191620261152385043876374797955899800232736956739110380432487757528693031822006076044366441840486469467157526737725286433043814837057121808282140129821851505050555515806325145914062934862343962393003693853865691634215984172049379202440528609264615615365658953473751586171400032632072665357457689860771942698460026698280563902419486192259705500045805550205422384501993375522470357089361168907641495226134484924694477468048460066033264375632834943509921702225588561556661989647323124190111774812516657244473570651409404984145686518626066941225651725638406037696410302832209766694733689919611233087331108801802993746354589557608135452622107239215742308909563491117994359550533952147228287955131085544918685383610325112276938613949132260379377748868261690482911701379018156929125900205648194906171148814292148297675757648267877348829016779884042979045052194281670166334100974864055968363693379504770682689903792513911908190944345222955962029282608209414406171956229184133279890215579600735097466044713740009938596922438081482292410810429007239318041840726969598364216535301626995448720188046522666773305815490282935287589816491898530367023395913477494736325672182749155401307468782294623441751252888368529693976110614276634696110142350831712788404116041934555966979871712030777207803437887995371144003415130908859067963069868644194649485088843728611270396493857386255010195070824801894666029893037593275982857613632003934146735398869660754218263335836389400919293062875156483293766580821442842644569441681904910505935584823250924078961041522313399655812010820549779351774605655018007840906471057501437355109793787432285777391588009872999014278968540228856310739771084954569898527556806115975403662708323316125762413053919946767524099337746017504273279207606157526470084748343394689503139881422685727092904497581363538627781274981081148419208399535521331524377209903164309114990851294648629493464045203118456577750651917232763192566088716440217374032651552210238003592637864751222357128499797229080559223729000658211967870714183140863741155536942327745029675954497926699567283094572205616000944652695818948875451166484107263352159636866278668831552262313629214678036142617812605140974804159683890563007969347715291484983096284808834105969743314959263906759518384812323217490930385363629744461151663802093019653696072549425864426479642488241134790054585572981890494722711591568605490057426802845848017490432723344440273393359877054790517618869196851210870077330625745174159500400698474201485426698634126167600506474863226212585126771557731145174971782670219846157248412565901120326956619616527466461457264490218616725254358878831201044864799404176098762932653044758726400297632454343810775290399003382457825405819867968547564518636356721142452090212104230564030204925687755115810726677329092835702974989921230762847661495164369759580791591323757215809740568027758947815906797313993893103455679390530277747106055076066527412162020836762157816889492335327926270133716853076376100296223171809942031211336952892887154726876796672478366906278075643603396435949603813613021165262538042517962879675831293517849306661834695523097560336415310724178695987053457256813540447087385806647536654993601537691564984190585142395096974812224863089534685288026613135749365344824605789483917407356132299769005749131946346628917270568881779979189450277140916078447819388869000958537675768309392672158725011267067681534791677919264148240923403985173485027924507418244112099317915895024467985517273366722263798632373191150758401238786963779748453766035674144772417088439077948924439569151730957561271730019284691613068623714241032612342603281499969620923708692588400655336224773271678115325929553440943695771440610252120074410231719465917494895214810160614806396257263137439217674896012478551895918809469825339729575524404243837076921753813004474812823409431057926354850645333505971226685176590100987942276484890854996762812140977817131325345672826959395512712867070589477090028869044623943015866501568078084843570412819350639157955788741881156655130755689725957318108018146605073402705960600082749614529439199960905768692049416501792221368776219684339162918703969667602949498275244218173217011994223021361121013920502277339447638936979979779861523469948896360221363232974264972814788113849491874565615586499757347025271338494941551849461389991229220788927252492313701224590019948282173470282041208875565661297003267512869247830157977323901738650034300233571966077394526190227467072598095764842943862715088380159777410060101233701226592054909189649271249204708730150093178491381566507876743366378286676753840660549661300960947619102410664237288161408622483960415176998437637618216328646383964224872553617490353030941600468010096511256278909870842322940142773526101471526782809593509422621469866544521458881633282031619023527091434662907796377135694119271655202537331266843424129003082255154420186169277295748374387261709587858808771161866627401678002104887397020658071480308363507308653555020348314695643797777697918608643039277956613834431642170863627201285667549658719449465711971377940998771680216642318274952953984941254438981537652965574688576611984443919105222244502030201976108636878810897014769023641813548764608129606308642531559888146191980136469909404502809192228354757065450019909052298054665581925837947897087545212813593743829803147593074376431006071905381605825617435752708727208689257280905401089238659975180269757839497492354561581503917641895698685619664045155140265299329078372451749928385077082808804399107568031442207150910281814625561930092217698664617639269645380560317738874739572305584585831776017207965784455054490928533044723003955287548016163278931298996601368407650328996615316362798275348966314361455352503732249968062315765688185952894727102904511181343264722670444459677818511138680170214583394479540607667828281326352087599794690363604247342206411582322558748622716246007015416813242100125670923063249190765404199146806019294951060910266372146362761036612090254384991057110681759054866170475689277455059840657595665794021673406730089225903408218652741979659702781768164770773927000050629066075372494858320159222859822553656688044282543154719561946298179783529982622641351105545180688178503059295331595690428890047588373320919483493612086055940014281899236422600102890342322046067533439764278987235050592119343129950296852830220004780240802929118935327895023254160244526621200719824226033329762517096148628010580510062128072122981097369519215065581731668505782903526673393527492669157344533563021150066595219641849771395166243107515428303570239025970495546192849406432639013267285888364276027444742272944727005200677441269467131434536948690125266248706138745418214438882550160290514852145722649057661159801918477033183051946232032759533859698953953990212856793643266861539384217156797326682438672475104777568252821034345510627874733612281056209374130911135952609468070483001013346047017299651587725395822471257741039884863971132708669572315880883212838801825047205878053468297173513186203694602919177659797734113935642288614261645722867280356180154352010769568286247169648133424822884865784037720178888677498574179837393929384663960006035433577111872323316876707380943906078232971389909879657762686412001922301471015353606830787196764033586279980194088813962355355859093505831520212861232194908582065244857690681391108631079638825541890037555382695785198480693716614595094610343319552268540357358290563658113225853277802069131309925738403830529504465083801069661523725496262847537302414693562070915393899294728553288267074860690726212761335706801568385690154897663179175961463180511776118446629956024106384179764561706156562260915132025650886741138123468208167896464623109391657503150272920031095730262796624140450430319256839349901242933049700665891353451755744432660392007070570445161270917901360563836784403385433385955929380648236673781967196343713817609681133324511646144371363299826953015318927520317832874323439617867365817047691218772367493250479400649830839595106055116917218879301370748818179564991661437003168410534776615143256045147513072644823252378663992793715472138156164699412407473452858548961021155323227400102542367034226123975554857350391189816073464467446977932845361138870467177723811375822666947822542153612639060354290885256816308362223075701887580827633720254171067373354023280821166727533786605270555371616904387330023221908111397525708941265139516451564548265556097714104720922323734658925533026587863003966100187632608477969383725241691988416727221190608925896992291253567755176123589855712908294863606468651292249585032850914854880216091944397249880785086864415337162974626862938580633133849534070759832263795497133223397918037555972879748765668768683137613910962711538979576348350299027958590850976106322305350764959028730670230170930415637270165734812179107740982699226180071781438177565402284104171433953501657468298085488061404594655861603716529076871694054877777815983824950303033460921447921039287933367689760030627695609744816434350409097135744028727462938141834610367816209857865664740578678221962000864359988513121278655846094962275197173085629437831880365755761804443199497508658082596338059865712522886087880736650283427266098071232439371026635269168515067358818785415574977541063445844034533720803549937882217627311465890852998353107304490332673096551771318439281286192457570474979984564051955423314174230825353296701041028974826999847472123190704864043660891793779563704934322889471544077941394643686044907751510890707091072525814348950110770066714873097387643495553214526343222537453745691179343981701332501050774924871894320382505596049772274196523041040893502211720601360011482122090204109212245177455183013713983392067705566318184477763480545217759089152489196497496070729282980415725735752967183122864994981968315118268096310280689084284209986484984291846267471140496001963720286750474983168573753207229786998906446595015633573598084318557710876722173369351730548900990602521973376066740606184428424137101930533617020920277899483406873155291423160355148419935564355331198664737645035597505813543623754057213500581142819697653204910555399287387012353772355355462494837179332320622231303002541682829585199586139391467488523133012888833561338035589877462565278381556655807978341989592535242483967318482037866353185279916483603414716684888037970596508568226373061521395058491261617349193553117186040711582918199075262011886071965920215640992867549494453611817546528948984027919333843169454685760033540986910814264562729812184332467071578482109793221535037414245255728771665846826120422695918449659169493323068025182189006320213089763351974224580905600290298158502639392774902683063771215906782500665907633175320965705176854673298752310038078366067568814776323007414562677700718163073340336863943116171722930913095215510809762872814997709742360712486728028953150404101007676282360988292938084178289275817774797602682501980851393571875806132024150634091099246526491453228593342900206547595578953434260980688701822569789132247650897977244018839376182485286559303834204611407714634890068505422873428965489281996983092171875179038654958528501381784701173932810863796983571116328944452384035076880967062169403983962697354198944609844964528913464298131743514823642597070238764177359251226517250174178494684213477088259515065543611356778092775023427894054278897684143688290600563704008723189761587245946071963677985944403300744386055152185406623311188311958108196184706661366631947279812569787029467278049000357748811502864592417338088940451202948056932745035027375412582230324679740362936065493649752186546471596744785426064242876660082295072143463342322215784251659090928999289926579779115709108570587946423675425096268153328356765072030765105022625837291099013897890871758386074598016208743938917803027921400806910559315001199364945231499620897595726598725770810404531444874014501262048929823361176767566567223544090299005454054091944057078416130284382306546671452955646007293067320922203427630489570011051618169898456531589217632991362606307431775777231189437383925465959088354620871618720310347018249407935550067786053653511205012644490763497156125282981169269377766756576073981640803545046953937880523679848167981527706472530822549009984181070837358413458718584145380251996826205165516652710271299733099070869938367307721859737825597909965870705086075663595168040223541357278940618810482467168947491678162525529479749671785142005912364042735751838003687807404784261965858180555302994725389654564656758531184756544574813209575861138780428973466187157718683653987841150301685891697613378367073403601586399576593996242256482711311171125852847186165262136407079416017389722517252342633400815309494576958383902884987941578587857691455948195659441648023676789991374349188996266741253581762583213436440431676936957528553393832157927928329436466839497716780982068259065010609739290441467161391631566360754957006602615849051626900051435417843742154929977863013403348873567690782492954613057630129764636840962126210237555314518775691531814328544667358375975194454419512262657030309740422506473845509347132434609094209537118590472725499708931483877127416052437075961992552202183729336968968131423306744984997164537000374888021456275697392444513837821248424673516562775713618117732212606801720818302659523867155207085102689788262557001965990704459420457900998612276577442631176517152969010764911130970993079416001617461013017136520104135548527622132779515714236158354455073297633270146048101633748318324720661254269401891601747171727370105220626047297341025715465920609326687801223437941668207615655712227955188191765995674252382699697015732451438118738548936103063157218961610126779719149230147130157742137393443446403348456602887534705641478656523219717113314138453681358038113578502206403219458499641099142751792243168086594251566436350301083065588731497128470508750391563547485643854541362274180264381828670576094310596433625913834151568688713672590825105279646995837455596711805375589620333875073078204400504373350998971370767962826326309626088190861633967910245934664461833312577540705132246114055278031502185459978820310819787036823053614979844092640637482228714125694612504068024300681311039722027885613048373159748327479394110254552526298964199581242976514171655366124545171854508957640377308664942273770424139278586606756529052687583123645792389891772074701998766489571468935158875786013784371227625438197909025846031079048948452170405665671174658241312587966049533482311940934027638138108695921346328194467987174921463625622670257201540367795496372546276801720558024752509593453371640648392988295747061203223555712383887716441826932796606120170569864832464086698191853880775658493742965100366338244204623998854528765785834340112389854972955506960030594087775998379344938944925181813163098373396710444083763071809358010210590945132326191865461826814768791568707395357901593486400792849187743158598986151548731130149518996893187428066120887524257026581613273101963101275214369033048230160000174688445135513402960582034743703495737181632072164674181561793229683089317726308939325369116152902495106409132386325402851819850704428192356873845960000719728533460404243414752225142155146137979503781892289282696258909629135075427181808059780902145624723439454388759053199438034397543806738809788570935728642951647913805065960058949245640620333729536918166860089250781486786790205915222970774306992064551865517810540068573825093471121269583376596719622845507473109153397094770900054640838274662585604828029572969329575853384035806177752385534634057489069923112079792286775910669707563951417070602233483449566224057474733789596398124211924145879547502929918708849546622533103907957373852122433364471290127329664114221082712908765604003770456118339041241485923969926405643617780388674152840521436263079153692926182673896655751471322774087594254304066535292220365960599956693033440344400733241461744019104117285824288049527326466629228046760416222549584618572612716348400262099687417451931016996252667999180926274991511733053177599821586637662923122820179139395797811360030104629354996426381370254371259881766366217165118842746691089859511775564334706868093722308123555997117828542695189483935899051060359188314848939771173228637054693256018806190564017494575487565235960550866953466094122621081839033986340548943884156202079910833508239617899598007318812299040129336815222074492825289745741329650397190008666271735894914789319304782289695222405267731504515026380540233293451285716259626643603854939519474171577373226417564852063310623670003467994863219296877500103696171676543236866712225364204611575292150308331844054994796709239907492899406233586933679718193726256374868421912967308759172338797026534233396757041787494848287582236729048675564696815054109281433545531921516808462485563419524418482596991998450675871991446236936803505598259859282568336269021984568352903651898521789368491245798513574946607392304130198564883874123612458856573327607109257825615598237190323611581634662653742029626176459117429366636830808122116939054098224819262854051062846006308939586612120067992997279384349627250242955242543591647298556849546718827100366936411274314647687581480522532257189645284844551336768713935520604442246798632790049279601737828256968453483718526155330040439914044914273326101630452564715009853164630115283973530701799555606015748394016959304024035054903059168231142089067919201731747006423638399650350408080709512189676286862454987160282386103370573798603352320079922695215729496628748167482251442465152503097951546990404627068538127674698903012498151459660476334120638528049579915544636362841695243471814376367955508049536061286046670176393998667671898038866388790508814466468776664964297529930764932134406005689959619352013309008417874679902025673541110840476925624506688947910876910067075187444643349297102152668594295677339649867643704716127740619589645950068109913400031746772470119285946483152857489291973920517099555526528694578096534396267802075332856215739692837456336222440476200399391026037697235873606539635591838978248219976065019856767190903554092072968381039314055383271667391484869370555001937583049616838673338568137366544415609021214071928282370024949005658059848482382683980547680523390800094723219692238917069996231389005803375497085609582606820810304147160227373160228901162692550982354880442484751588242100703068422026253726202986231379060629371015296641622386361830810527944772108700136520868249189647521792997892038686995341572333539067585042765757347918787541561683515801424684744839788093970060201368223067944892753844763201370236318486351402022707137774785169296590353668868510028551463981112968545122911934143956057022469137346437860231399344233756074910134193464924410628116923017657499200676470956183872020568329774705239027521334111093613095991665968972265948200027074060487678561541758598853624613049266158495296465979859802655473701152338365546946289410561073598315174155662184079622118512188467938003297135603985420408365694565342530638767046466517405729894423713508879816928842277760851373829434728334551204915984962116375722380425064307289025746823410020351653401994765245070974814803304776801944215072009956020711159000285256595611971258491156412133904346531682318386537119933088413137978279127838718398297574266872675418874308950419312320563670026404299583841021240549710743802247579832109241263034603472007655014422801482238894421508398791656075048486481770315731838844019020770204575575456459111601738010611132220205030549213840451569401930072179540139037720569531224406053324819064261226946388270430022929734218667723022171512714386487756015031014933692000648601057345675149210522612010899059553376530448576438301888480116651317470646710008831660425741172779241417537611551550550273719149846042305134778075621758469877048354234082734854985672341198658080698942316924645295363724878061725173868714049501500189002958595832044181940598789437497242442882962956712831249435986440705918340472320546210426011599151706296884058927233319751980924353390458159614240399061604518054256029641202373786132829139380204047912047975391172796968063486633978645343917406170876817881652917116176266905745433977117945669267352416348330740164737449065578622724247253861660351342941851137033421883225151705383273520909461967493766958118727678223292981518001300555770640569590398984839007676680282078850904990575106407636297572523851292462145506043390693603430970610020676192574951121624592232203869708925139681475946991112668973646574345033152805064258181313451069344226234025509395367598494938294614928543718056166747419057346666235330810598547184195116468805056477075464666701214505095225007558913990489198601665320511680853924254822506532932728035395461085100560102763241093231702248014330487361526476078748675231565652304329037924286682547414381609353493946729337232681474514759910127110103934345181071979924469935002127556985645333520076731078139592941217322045232789707946399090661780673791468777641533147340144355888563573250711596589641209961307832929661212201217098671629520786892555335335552610835696723061613081748107079557061643545565307981019900883850371211937694138722594675580784967948865444398733554910725227290615747382030009664759851123065384618938383506272626302127767400322688113924664822997394488964260813048041297097009101570575642194437257781083275205949523885563290812848556131670937130505048086627796596480001063492571064921190298497393059506260840624169819328509951977201092081187667751140896592933420497181244394285519252038789468105712163910591786482408643011223272714967625276441157233727138266161409843706781703128647156445344878725271284500362823261145078289062571242093678569240615270936074673657729403775815206430004897643225488625640220353455305280172071031276747553496405952970600878034320801274699275490443065451181855187133141289618105338518157010659269137137940488846089427847281419853180422909981723543300694007456185027724335327406714764910583760861527338891291731891267084395624079745478760841294676174309045789366134635493954966751737157191196823963175619372387606891917115347570523935047861783010512900221303254898079690739007110697747376365248589571956647088147824793911223736193927133648978078459712794921744369706722918897650359292850419340202580264843254600613240764918683974849192403203213974763330691193982452464689267448216348936931543567707984391037427552395053155674838183859538218029006304775562258686367546083318326710732120421734484774762793833744353924254003555249227563217542678790123560238786500440227789245262270452960003536391419030232259075707481777722780912994736626680623860240760092434704304831745658208744421195347948892204693719412552419917845539929970180676946733223966472096338989950617010413738942513524428273730651575111338482428442526877064364638107967388328905494655546267810375425835397889610397231294642163153489798449667267540895026538711576353020889517302907950644389045280453110162926597638013601558861810857880934785474202671228177146068453527052308769357554047657256499612201792421818600219909486634904747869498540006773022255447043749622876767544512188951777915664006751297418890093076277694449346298974129706556988036139282355381421527788364791326392089173332384715963761380210248941316832868995497608869983453105722427773076263758411802584995371745140850328932344482217536454641854466135216540738971592233145212405481263953760122576015719415378439783600506497684478045787799749089697952866675363618026889448647986291263238210644851839022789073545971502747432095047707928527264901322948157891009606361310193979796285532961359970470361793262111884840653217145027667641504290008344261685753656631186661147017751912421049078248543289708582690182818814868684186278726502411265241439019431147801188096768224087043729734633905864614860055901247313169077252777521896599795206081001630031679632184041122536196207248414974480656539300054308611054915391497361535983497884811732686840083309655847773091545180566207944422473674416078951218052752143915433809713909283907019072941098223863778109695743159779877757670748622215517569233784804780081589064327298222568881449288648587488546315809593913346191107808442660358326648996802799733319659047865523080877070822015447783699061709853254774048466126452876704981763707179604200112670433736797676693197504224445301204935077739119110599969122568288287972609918738678250764948862798319836809916494147712564624968803395104540260240569992009563643446358395963116893939060200013539136482393765350950838832220846946252667506750547286953636449517141734204187449862472721454153785106657716042420537544264752224624908523935006055157610499060455246657889763113348160913962028978223279936968096354439823194152282904214141786228594273987264373645421406217615857769661334817554586989152216513402079760244420261541091577260835946410274447645112577588146815836846826869156801346286201827718624317372223204623792945065624289236053652109841741801449356433951185117319042113348610194719757494519993025658410790577267443862625842087651996551550612953798186157095319457700531862073898038126743143390858289698380761992606646323733912861025444008819224299756467623084695890157070461033352418709988858949970419643062941393518958609766898548526475779519245621149802357607666951302898659069903548267208315157380684512241135977621976096116101266201976825186697964036058665074136293846580653195593693696853017271664242555225692439002410849212116641684932501550142976718517808737544250622420185960443497614150354789332588310468140420540618475451618747232097565656849868330517596151524849201407673992789037224399147913202453222642142376702081830472072391707077563033623617882344461408172210430515029383975253935786636671521017896781927829769612776089481293891108551121407916500988600694898745965761312786543079852427436828031241233050050951564543177076978497666920415587083935446434856954763459050593908042987005580234290045998210005421697276813962815002090389263824968445420006981760112498115749705099447800980432237559804638344518329543343220710989713115551147455420260494919535978131696951918448507613994116741762666316443597134074413061605539591397192458937772436963885654812995114615801840426556699602673279497667934268168905462141731116112130903841465028994953083468308685726747465478956270120509338975506419533125481670085683632761744897426378370848612006564644138434926784009017265380009759931701449435059721910323150254692379262644132068172085791539296091908920038353889970847231220376229378420801008105628731946090996883256934796317927929560889516678738586113474367473260573955468854448976082822976941007253672726543530673662385644510779288495461277053017730837411387784562599131499506498834783657029710549529894337724808094610493087869883655679158415788644820692846811269136009896298390038118156891525947033601111370711851839287129579178343263697845506561143539664494816936013926896908147502260083654174937319184563891033144270916309949243314366630885530495982496517724766575891929964983478805340051280873027130835682803217944530704043326550593303382373013406189732635375369050779115748822810489701919674842167091611747930983962620188410137581318773621127531033562822449485642878648595556819450067982390696094172260241904618667312885160496017736059270706432242200643900361631052810020083528209392276691181678331873896009337611045024533611298214995813711912241215932510179975782427551846953396613373815317859150371429439342827113327280873927512547640618732147676621772522217660645289859203800124573504865849042123191931453172787056227939977231788938985674543900175911976660309222547238896877072350257301479277125269541836815846130861284888979222613348898943651706821834951999457720996649414370415623693638029872535279761475999466417969329107141400564031584965226387547964933881042626201675895224674132195214507591040441281793291175096849022016986835413094302924148792728700617889498016002865782248633526385698513746891796669430026038785511910956487332342552418689445914790373038360008869175305867170495074792539512792392967885543916672284478889513857774360073327003511741292927451838102117066586235920620693468721737508532638044176753032704203199158049232789632356285643930705490625880318614202183631397049594370718283573823273951218803264963190809772158591612982201231651469339551617039988072311893703876313580183621808757263353363730022216237892455209415245979280306111395669376136855099766420798422288190224945576535866799768665317423261687926669373481002915599354066337610851707762470050106003588536668958627934249532216045193863562791396932378229917378743819223152607179691428807080624981720853169083095087513065056402023958194335086908082769797619449700081248681357781744894474815500544729690909017781472305059388692871583893858715886743814642744282308195505920736646080990990553552064805501998545097205455855663674329405444437070426551669824147948518930344126654935032939910256995104864161360873990088197448358778020778824683988836831616300374985325312864234360849027547911219712290305781889168655641317788337027735785671409228244112544031585899256235312991829738657075729275435366941835695649460866664753729886172535336268884269450794660147252982643955592906818472234017277899427053691396899710588241664012116253964551148956443794762983699250432090537033941580303576979284791455497782155380478585316427289673502990091656085276465186460037992177579828342813039707632332949572488875291684030819624759819765148172109789738025791615260041843771836368216851580969999644741590836426425110903795140473743408437661392938740703632649185759135463560106556001620330120980118565188484278064025635065670125910920739890225288808116064247172688206377578926967782925621656620021498788762163313951118088817407680773994761942957395757710768478041966842617387994374537436934823947932702287372691889394624646196687791506103890509591999135492839966382017484107707681060026799907393393205601481078804303683919844990970773599117976026382894942384691053351691338482563132088967639807279766098954582946374786533998639555156355482628664010271655021243479856508563413934858984644151899803938090398858623559574773903323987191546312537627653959271041708614368330975735637299645833635509435804073428482854138539213662067797136901529796184007575142103006697240111843880740619360314245437600158101670329037576380115538944589529196893697335874833891372924006424383267287426040995560233933500943704864231060078677030496510445835573147192880435432968132544590494747000755598235035244708803936251864718953899924694166549281330136897655411949047674065673175452271226380347774179426027695669894516379990939537724656158327847000871935479692005858574473840433098041090617145162331551668007389725853683036020007791424738751582806108890527129057818480837578425725633229520847278739653817400184585172247466850699458497513786897970998504586623171462944962902511239301146781715108735707253823827770541352376387974940511422981095803755057266774620046852388792914780383379375233708909675632314088129724424526833626042128004829746745846391312489299736172062568589019721883430512683367451511434418589847204778181114776283726290965443956516079861270684741831787085403873931587986113733381641573194376936986122825518952066982083196543967251706828297500536590820599631777985997845988567204914655437934122078185177821771649279191851102793070005749807700840012624524286032381747733851229064640190076238206389935160638656449611222603640456984814602101008706794642170456845423892253731128623163304897050906735902485602081062281393521138356210739796657511202967915377053300077148106204250757045582483806278941505887224171516946220225285784646779869218171173827829052423573599713911063857443312196269713327716005849144673765908908365509665372002990589865901965501800029084664676034574730735949030262835170963359622888116131459542674935105159809132703610747311720938550508626009560985695050065661697821393725246688479045697683114287697852126613413563036322216122111518000981482387082829993786110347074935122920134019890803119300760220180446062586537898578542953872586976245745997932826278767692059477259980635685825721137904915813787704997781373305612240485546022847374249655448858129139756028848563340048302269025753248217243330016577610056182951047969237528877440690835988578577955145789043859659467500263380307263595047666720676830862614596126926838708037964837913711665796744398805918111951300108948621056078712022971801320601455546900519476925638800049659047317093253753420167051124819452722967452738435458659129015358497152078255561740330334321273577105255081086278803607751382953106344101562783081244908740848148094889039799238881033420232759871951899280654865546814087987122409760532494572032397607260330277427516466507942333734840369727850855216596227563150688258602446557048251387289873753175031422586812680804636037356455330722967075159455878608314535817292692866606006263284252303734973966749335492923026667057496509039242120322690523474757188913384311724090838668965499752416108973832697887585889435463204423043401811449610607729423684229601623438066778430766630916302938221476595663823691088077624935103830736384629709315818916144073642602733579084326702780998127952956236812780737057125862075583623707359724946614594237336398533326446113728695688409717736456812052550638580004633930011412307711389686701091078868759810700025153281658806598048352282116275876314678193162114466585690083271216602938081185097265054497139416837368742633525868727806234213416873423395131596913667232826118035538578750346728830810310359655410196508950713598121191993204936869244046845068999408007439445203766901100420786511427227952805737134370680165392844976355042912162558704621289866632411834020011642710597481361353573525317233853350254839970167016735274144241771528496653209424589644596149025758592590861475873564009066894627549741654633022090150090181361395432773270688176360445734937920041383704498574679759173570263483266002300086119013369477172186685061942051962963170640525285933705342576696952231028795787662550177973092570525051686122486552060894170877556362822650978687441464371909103595178318677003792284766656907149207635528565998007954309342058784167865206606229965965399519250706708226431058451595494074198390545296153015488808226375029979522630605518673488994221199036076191521081181703478443660596413163514451543560160961541132807762679883750183913987177043400462161565231980632941175229605381392268811995192613314563892646733566568891080286756484035826335986872424699048946576722371628342452187171952303242334893779324654880512211018678997637527544677776001316075829370631015684977303120896678482869443742119922353594911219591100259069199918025260955651612320141206997072125852898787258059418070789493473280797585819919475080927305228394133539310452009236072452461228971960845319344197948365968278495958398524947454565497214382873082583082277554515670823444048574333948751460797976158327481275131757811463485499511643183432521421003292797662552186698300421766935295429443832712772443918129017501497766652230771765956992666243639981258542321630933477497581506443281763771718392082146772272145166878223161412342656217591549131842810794395904555849957685924529721740451094017561390920725640652896600792813652981827180606144398715559929277146380080267199656128495044577509667486462447275887475865622192385404333015637086218844220885935827703144300215079367764556410410966240364123365973402882609142197213984233312773541077260605993958170879648534384029532553201518228068419478202675854922922213241280727898958216751990736278940287816412626254216993167723955525823962049791360250688696351692036258029458100945885083135626445182215675490355377905665339791375095237798276441583980456475273088351362392285686198324768171757554832661659058283159999672323490446610643085540737572434488621165343474980712648512810877688427606486683858760072950742409732600494740666297699924964527776267572716263697355254212038611368717471230985905756170417072601605012639323101623720079173610087708883490041190553646479822724552593421635176838704609713983612093151383238787146364392479097201906223278405472407144696698725028368879136586661573434210158574778382476214957908564261364801048813301783778480691032451710998984240577236893665809374828504205878773104951928003007257227746908552052527463706158826823241852078343472512256178448780994925941457487720055477292935336936401245173166363177255939792595581794744794948025053525798347361877657655026998446237502818642770659290829882472309444616280003756013442139438950223573189734978969219302369266700459375715244902305103315556245868108068076541030324079223001218900559869296259906066771265218269378284774217545655956803737732154916600098565947661052742188798867944775306953177251009202337365801317742087159519040060105281764188203403591981179644479929354040448739777482035993634681718876298891746141176092996075140329669723308704235860400301086132038758837638339003889682185825439024774521009692998606282013786898052938495517844473309957366846485446125485839367064927913270798817747993050169123914857019225494363642787834621603073244920794981238346169665921660555749231270847309010432262227423039464077439767063005495870567763726800460364661687743099617196796857043162905213388498547065025149683293172877304234997620270027217533051051330806501014252735495791381197939549282457396262463363418269561603353663905407513435377114509917218287883070913495026968496108464248564411040724476818581128040945652601043971370776641242162184078727510603096834778796529979223671938351963327139211471734948384800809057246101135244634516204321507779000991852368965549148831144243734363431429158536642658819827515687002993992833191464806181502376228542156239524324718116068410277008165226017761713874326498978304613376796410407637619202115422536065806417626332741163309964045398442279483037984303150570355860703982347557869053547699435452083602690235763523902070695533068617298167922329617821949435884519923740661968765785324168274544190864733462432853487443509700598854024933070990296776622018169141019596265031102140366720213919778185353108099783565917961539317771290608524047378138172927558617063563726834777337700317714584167314889567903774636678840983457863731523089785270241765913052720575630920891615012788766284846463913337180913260511538949874796808041302998883661955051429816637656375770234248462335505002810008127632640881352598018467851964693781908105896549966362119842206138857586641648579256073235510913787463567650422667023226281530241564066440522320036148925694540708110250932829875841460735258938531058608627610954894060126567038170922307867080072371487687893718839797159970548374217047239976964915011077488331471763944067186726639245519548888085210887280469872161691229156351218255933669702958003852265863583789880715434383799403038552134554616559758040004320298856451772172300837048583630508204525455762231417715219107714265555347432281539508977320414378367695120737336680420719920448905389569415895699791746856572489578074532849423510469608978219978440299838513656476722698601735813705947289283886442571161388899340571978055978432689805631076945690723689823315426939252164088291199104069260064076765096112914879865441227253090149400912700297265814797755511053264875910039798973929387367038687655666296090244450562101355803167096074669466275551519405401699054625113452908107593316412170196420601935431211072764002227303315903159493183440063873665569412565899185273899853648235673801894000131285399016559765453155214330048948040980245105752386460764634138808980691726824388456784452172933518388425469910829880379912516923945146891227695792041263802280912190061882547049670424798250684427033239282941152653786350109525501074741433267713329076217609746624751816405778386393364014844350337916412256684443706241321771439115563451144163864418581347039233229705550311345131943003525735505499480302136911032171108233341892150418158916829018327528130137156194918504846433562214426709864980177005748433670968873216213820602524719142482328161239950062891144390793191869735669887923904538611194833860288261678852366303440684657549313591738889159039095441377853227056999634176135394220557579136399106028162156790379782679186631876592384745950128548755399011338316391671301827449573928961945636456284551035375470882373252142065042597047111198141947201588359255661688303973068412506820702946595354477074628402143453401151632975826435858834273376024618353424163819995725854093547859455626589342643057793100023227056954042796940292906622582163545565673923000720346639583736362964744470903986329152542267055254526308609700192619876533400782793220470988410768582467806042589102986105466171276048164009307459969362912222106072425992830970965041480011500577126215624062389167234500379950351578806397944675452958772514997036141572250053276071376644464631819304937003577441988892427134615489587074442331543678304473777104938154054628085595286792293711090762347929663828038344532236972492506592568951592895064466256794149566962916772238941803155989302346595290864862210570497187168256972711819757867141012634714323472178424882521399612839989437693339329068752271657791589970401499204247248624601863133075348695709927160033427476774204384336827848349264034279053741395730983500881004190445126867662540834780199502634522965860931244396935034695737460753268822515802200667313106199132621650991357302827414180995294273750323864076283135891524250696514518148634542416478984378635467170847524916311419550206673686844074275720965304959272695610888477296212762307434616919807994286383696483890634840120785845345212617883253031975962693647655572105785539809675377376162388594348260338410446269194785170303429319960690942350742142508863698658750763715952133865633193836083479803651220447170113773003801669587059679284343480932433463699810324525458356463635199842573200114575365964072787173524983798631581994519628900292495299489142452987019056174110006084189323868349369846885235763305934580134569977094492135699554212919976829018813351196044703370096214424794657244175976999156452837480718613241120118152647487876713447307424282082463116417773568249574321919307670845254705069703029166908781511611868039490547575251630153334131845596277027244313590073891570087385484668649098874286826995018357645405401838568804503531196973731233140778612092283329802427555937517914564134267798763849248166589201707894361358147520685397534856820657020076417188117188538527326942266097236948452505745906331965291354080012196034859053049655860731809814737358823038346052976365516754063703132140328268509983644419567885504588363076847793597446635892813868291902407837904069214199268554434601193637824048410596543761131282514089918423194176297137868203197500377422673973403549615706068280984308082392345454285922343806698987776425079234022900198323604310723813086479793213070957781891341177580939523802106489527157644582369234571747114848536214732846603028119765578377696303532856138741730054084832502171911640400779401570831699998912356928570818457440661439894662952326739348868947459442454075898268897206677954122522434479284645317635923409799416817217950992365241280593732792108742867233582226666650678001559836583278659414914079172482610548122724956639743024114155359469046873627886161432380114414086425170158592668386492951923915843328150809779714523562530965251564330580996321035583800415853155634387930123671856782643168628021739747290766429585783587686211965812145698099790896757111126290705435418851286964467451708070471159627531859164499567298285125310548586180792995347035981586063102484648125908360108694618823141309564023611800458546575148974466746691903385772078501514007106426777883483048870976582474308279003209330802060695147659433572276816476539684626833348132669042684422097533271433943785489597625441834173767910571840671563955554801463489882136931184202633083468805857763827034037306996269501036404512927609162762862699653455309159941219875534784526269588801720852059569148565414857622607632868208002387433466832152174206273072679214693845774070805995667678116835391812310323551988168135607118192111240257514133919076826805614966557100109251359582675082179891332027970255485934608234649615935602410217445004217029984990130475443070829929117798924858701411009439708086543751694209141794806059748923699293986099199371243324890296997631545909782495683768884352600564885783587458280471964318240900966497542391077573172325921143567730191398445022562870321485832929978081947025009465307737527174999131358109681016929205044903227470132077235937522265528005654856401568404097971810310927205484065587382210642441889287054792286747985349175047409673149683751904790821141701560976495208104320680551670824113860270105610590856147821314174319031004380518888876050880650334734232948744837223614961943271747540371047979044930771885798478153412129822981121084858856949706916642797680639455794604402987022027912534652062724989029583891781787481938315475402152253851506721892515821892011613793310266039717435077668115157480915909729692362811493415860126073376326784928016478727290081820251350199086760560473503830220729804113594341184289761390577946359036990118019161688381398555714616986535437337996254100437664918756399926973633931142269922745659910729486874125976567609616248154908457054548735221110245065967183727485382667534147252151277394436790586839322383972215733496649690056310923371303039635940005067761832597097243333362512043430670662216618275393081357660674563927906698994769278259805939659333664872398201517112604254631083533871548853858642018257904859181051588565703730008148229033329113697467829230377088638498589676122598164832891299037587338645268058204697548164298690049823811175603288094781802090475627779355719851776855729683849819034032453113406008552984927720985823240593011209000070979335437777716587036508791903747323379580877005098417908161846865190865379489039256747470752124123275884053832609915015252729231750053890538565789522858881095957447953275366385361680436603359160672045717777828349691646082608796328806212213804505556082879638969950811025671537000365896547987755837862523006635387368070841985464302973220821337480828306764341068228122904980490380090711316289186333951249873636752887212001688661944081090554397135728758885390302525527880063192138094152838520886856453378302025821849793479673942807003570238427710323520735153613901990376369754009906306364837566509123065829303231153831688376127240883594391507444094932345964099535766312018431046469216569811760760631012662873304371148984523288929758825890461260509979455492479332832300126090891941008977658654929643146796876857442429721134345261912185754729666520551674936735855067399349375951172439616901709353463222067654275857147154323266672503855986079443081782214133738762482624658925789039329414042259836310353567976765709469253209228367551894847947825939036142407948828858662118459537342038374852486680088815597492075293919186939348137588672754183878881045550756612484263872453283799125757267808125898129519999929070065660706335140950785732235972579829956676118513669194175644400059392438719923450557386937416707453745360818313533861483697445556979120366854054201090813193786666549142583137377616493027059427103788916604358956661326251546533827905739274198642729837360440473213312718080917242156938752072091725044396508215823096261841636879514547919197650159727335446292011524207075877379878558862644226132535499741620362713969024410424937285894352192843357542763672546986103905010425774064638014634721313160842861666142914535385587511614108115598834429646571134508829221209263470166266018738538987727328373068296150992809899086525771145178398103550446614302634612197772460924757645114630798688343340109922158858954715188220293553042022240164324887750140273648592740561743325327081655497755204831442766587378560045015543444847607184939930398041927180089220146203875999742477902857290181154784410581636927438594354681913427318038739797093091331505467536869107634484086029583127638612229383041262957187457843281632537422212611985862436602077973841066443688143059295342742759795480275754697329679310418522221137749453323103824120173864419725296664086752268135996712540959624140449202916672161400538720702956431470307656721351834416472023876644625096575341535700288770552392173551197883262042311923202322585983281274056394733704143529137419159436240571289899790667982317739711312068515865957411107719014899805445601175021922286450883228735839769585961065282496251380539537023101339487588023953580345684518044024456819590025390438736854120725078070055250534515888656746251623713783328222960096252542060083053286220518811319650725359167697621860150308525178197421105956456501244560509216034991473503910364664518297265452886158629448424586864958171755856685561562468226725750838585065970364359369181947549046782687656133286595479976502220703341317688982380300626559542358868548518845138511475734793028177593026214338525767938270399977305841813844976769127750328770283294752820585574814375424424848282251953716035427514200116261263809001766315272973025561900456869592066065112732785049646396180104518196316096067766880520238428270350303374296289316338847356580810221726416183745016056886914747175272984029554343750940779779704118986519017478625758422216622982510057995892342890364609152683036599484139223347173672655831886741113678006372274920822405884614875797077806268861481138212233898994552170305434748058583345411647821189861103131282518793684848924045228568074483993719701939123778647699736166991816960114978859246192356578939401969184247308397405477276623498828658637202374273024693020729397292532864714016747467620346749633035146696754598054646040715815750891163498249394248443039559379770403058976054947523524823011570300841295647130580199429188034697885051099027776495706471828572913343245893458359442410867264863044535430387166451713136253814877295380031856521230683333835128518143966839504125593664675697394184012635670710006925037963871225184956873182540700625602288631189717574474955200488586797022076220522250236038417438202833168222301075533869061467848221698835536599991941580176952913907120211340457812239380647799664477737591566148675282774372709574359187307426137503614277032000809495012906746540604539448171968618056866749674371081844285864122755279384193214273548795711869407709056213682890145975310028189516778402609903937913195636244387169502971774680088288079241120296843479456902933197225711260220180763091992374974849624330243949708572716724838140495062670939556126975664091505124409138822743314405776289290555386185393340907401560390665827599896352262887046253949410385737752851894071249901844274206275391095508326668017104130029490004771461967028962756207412912444018395855960865517811732834255017746097924121823304682302049813386541735204511723536465322624569769291413113720584570559485575425787857117079714518004085441948386881865164091030820552478478535193123791811023485108057244678801291589929081390113957868687764744664864363989392322097868890293699346269841861085128127785215683641824687494579926726437326546688427847695915362220667992595957062280883432226010764760688504380220501845310403106221560439441400676904035490117390642272448195887040163455608865326808845136760088911653258965690778796304793061850629908279635470010023526012414653387408378402795573094197061876420690746531645862496520865253328711681854834825910941948421857246322771618264635727372254669504182968540275999181928362008375226264037165273017467584963726087540303654446491040506911319688961710473259149083846276317372728268132292851360522594164972748424036872354165573759019850147410436454006931673844566583239234169774642279547666570772536451126938935064610845244549158896992800543627639393296874861660780891685165045248808606046016677256162539476862449403953942935177731859011232830165403733877897390484198836924218088057087898773193671559630004768410997779534457783925415909002480570603924845558969246072152245867319892734418141521436289527039439729361051557646773853952321663199578963111857919103333647324558965160481099570365852455866727880701515007610681758423299685543063332249556123176371815307775077325891537577308716340011102200068494202473663324285176053954873240104510834113807609398408215221101297236633471942278777171241594237696342784929801265922442049609130463420658585632095333153628647038302663581303591236177135641950831759565229538612870033009043581634226835617478353282935488905587462950548842637275240075453416592257836982746816978845081001454311411858720646360631405292148653352703201485956322937285179085310344655167175604016409028954076308229914193209347438578007509678399614878280869790327300148798258902835826639977053088870152920413131884093669630600544992234621177640150370832021619679235472560863320026609996695651442497687280599961063664424860662295771472867849206370821129996651887365214318219171145088100990059208638551765829191440767649108941154716475446450922197142729654959646736521184542131017769010551535433473827505879795157920994270833129181916651400941695088396574745957368302376766781117458840337931741807459416024499740303709915706620305984122082698004016777210007570894792862628734094774496617404230703025872119570034746073589998992614475429640491644067442345256381322712865934204343580701975227384230543113330959872979069934786224028882654822701938063443695387423374329396413822354658647124308945122046283205989873294266565531557015896891443297023469769805797476654695608467120712461639904035270175921196241308674187839512673661645320564011137854982424564766843848022900315905618633121891230763001640292725159434542264577440747944417058175466230330805296199124200512723956408346882255265203335387497428506525593012739400214895146311475905307587204280417597811238180620248606188962598006753009429449649230034717338687208034089516868013195901602224512130075949756014440800768397980431596563814699884234827024350752399855885403893549533715371655342494828382914985622728275382220334726498786704520624775348388007885783087122664070454305826298651839051918746319356725074088568069238086860107229725050938822396491801934492968851829386649934318702511260074578161014990399630397690733769204804967164075192370820012884987171131543795652775490234663255514966839505680088220716277997418534292715367600757901260210575894947582160963270133222621456363003027607658891038835231006505970280461446466382878289149797827904167834959099772857119809858748878348424130345380831116362801829207564300295726137754204421271507845461737493443530497323468251407446903657351874156716353980952472685202085912637761228631230315903280782804818888639112746612340248272939970804430212869640347948049928465546245600891339966339112910966851144756828190478395276368725780548805545485671302186501059607286558225224428230235681122139122283923372642736481010271106009747734990695074920988270317730319976882555538587881065873491654754094332505910113285856772864492403305925551468596819405883689098323490727061586536577102903768620806176222872540344184152045963943281692356446470775896996166575230535767183323327632633391859869856202731207266298063125457836426360719037607380824301522036459423097753633725805524751393016312322892711253620791021440805274361797284721038007707614470858314823126052689666807206627517336507938829799211923873443806336462073568052187481973667206464533324742552573604777762163479083985243358942244651521922637092858022638039821611365158548316374356702187976553481952867038962928079028603858350092920360475666616998082800666968882618852606063649886819490786073149693736077778513243536133912233119686592600941299524068125232460240901311770087514951901677937489188309676543004473220708796410867342753477753618721706854833401969611812735509425616191156636138643195862086455198861337396689027052878435623694162210417212013573043738128211357864248059949973247820996118686241101631227876422929202005664664369866608173311248600040166833800298554484502529916945722717512801987749723131554333765134439241385282474211501187998249418013868377297199786991318224314353345485104967695233562363594254686801526544289584420676354251006641443529796368441512624573416728277640023290842400510468213607099096293822151897193650697472298196238633076930371663714109929812580516507675137301941623068428198472744562707740777803836696072548249235869302342826687364320893505939595192669421764703411115489168476636083233293880986023166441861634046852818839543869650382907256107364799273072979605727817399556634888875015158419349989793408268646503498720217456900526833761951045846666304064853208318306148253941197368705734718967126818903015158275359858509611515639386887639788974558145434362296876627271651344278828768171561878183347619609996385338110940095762519993916452206908409134275647365841872866895211546255409358649068565772743904737825468164920807119378262071960432312290717324243461086294478580157566906747055184823778462793287044591566850273492606865104453751384853377112881150490081683416900528240276714060437089856910749969785598040949081017822127562466045363787879119909225146736704988282543065347622370650147855827272531547150914420852059128287461854766142886533247953340648066564796717265468843430364360939188043271134815437899380190492011544094333235750042355084515379664995920084922085393343802802700553103526977997804699904559642382841985531710400210883178054319841648625176106651257034521936218875740241513850696255838789558524880127646638445669204127418887042049261973968793745978402874436303178250058143005286919757453995003119161999559785503488998030665125431192820784678471144420800772150353459527022262350503625964390272035589190491643206763391897259101867118019663508741204587214613989145172338491137870654951072275782030026908619495946809948110380373844294985848059100065203877713113624837992178354751060971300160569992141275481048854922566720184545153703832551277277922703595356356098253430414923395999247465670213652938146384555224847668097836624132469042376251998291934749715137170651696918991002417280077324205673990468923630445801900082258856420259901515648682377979707900973994090690427848951564209601010159656739176668078876049543634634813745971519963499236012509869087063667255630666103312211310568704040174252044505807463795087927472947425358105229182311496118745546463069450538512106290879190180285161293648176037552701296971479511054043784758433144060858983487770678321173792395892653167118051590223317507456258593983162144180679927145135301052552150827719933521522543789232239300544429811969401147404508780486754999849840909843302549257320319467728584211296847089430093308652974042861585061698549184511267980953511070831398891126613660071446207785053869086562157754002625828952137009119665114638716190861393979950368743211657920165092495124718538580192182053397031177561919227952652567234589664863024965508669527231227302036548604779766820794373434102414116279532592622949271701843947615988442837298771333125015489481937779216114433944739238534959273993869695914931703167928682808771528997519002528426920830691487324288416197381806284211831603041840090729657963915918118828407965561615927470187621394352235115389146284544923553998598001516269996586935826160921764104459773922490657592473614410793329999793667117695649783323396219497860619657684333463694249508983733397129654553266645566179578205118488099675905312739856954311927435343399922840941915277913002304832379466041020008698324011629076220057195177361193305489529483745297646662229365252220860097478789777090172656395296363988570479184544917066660813501995151432274818261744233990980137864295738433476748426826850960748260608865724624560916496209503022641315481273533488428771323329799210749055241383531051503165464212316785590624981674659006666720968219996579972803112124017373313651027976147820572252284725860200659485218060641836905360166632980747779696472946094516127036929961914917655499157460379321753037649921503086554708352643036121392964405686878732008789217715721386818782848055648118014520991995365038491310196182614897330470091169644336100815523673403782025282975606056447124099592970723595680593074604917699818336112278229906128948327390672656356344560165491936410490872818449991657491705235328532214423237657907736427049849359336664093554702608785800648050488853830066007183344666241601805692051110919158209234382925370732369965468426470772788548582353418652086073130259553805759557395971564345587154162176090932033971139783611755407081737522979068554265867793060774919131956351326290885212899642468133743516845738596791276687086343732559967749401919308106581479329502710564474105932728276018477188113323205526536317297437228465613060853089775602123734826568675778600982955838914051581454046532525736953959075913744861739268626941131604218191600887035025257791571486732804435683209232543404320300931369451390059185743377137887641623940346857215968518849402967256756068662955372243690532446632180988889276800216547081933153726804046842446460345971026444091210346532344445428510015701523339743885504757113329551467097084786024910784414993120855089988955635920856385146190869977909259064146363718497734085250177973185066028178974169753988967931961736275488158081746582963160259228330694043523398697898084983197260568114865669084344373949494855889393005034247508538931799753288560458237909202444990667584685237597692580135924823908424721223908085125633896007311733210597050553655125141727990458310339730719422591890759101656408101435814404259371220380055417766004817675926761879458443528173613584242132978134953837780776570856880728154864328023551512615590340688273588768736310232484661573143879640327737805937932717310921758228020760587440314409365208523355344538404057898593761351942523883076084860839604944587157167454778998373336408155534872832465981753853225080038644382396430710531794433278105345918502858704097990875234570044525652543594784396925380923228166033934809290135113335477938720035408382349034241978144536349197657085324366263164530692312354441816538363895828987797402562571542390580276862905380937961650036810677229250064965375878688194470565822641229327833999224663387946353123441130235525573117555101599264444047638120129859367862628979972437029054441130377486196201406931884679978141018243792850295096981166598513973334417198297403603414758956440566794536094758025722244850294805534004351420197290559725310179986016916539478148486150044393202542220444923851136899801327134528227912707743075044460486113439980699966687566669244926130604343749656083318259518684752965179272187780006082854761552540963636487457515302333179993357265800329141961488398200399929010168063746841879356341680252822536573348818570862235675930813881301496199279234624147414795255751518883731456660497075690161300329818511671692203802187241922530156729714735183698491621268082242533534624229524566192084397244532100772838884282128431758373063259868629884692133991780452581598621721933301634116852545845071761419900066824785159135889469617274476682120234810672894601839018718475362094482698979099024431809275725380730084385484594925604364605709912198283410115854573850055633823378832723327876035787549903994859287236446878144345298237226123398417302054837878764105245821684740241306746100545060238507127168009932500235260192631602056161080224626494749363516141595533421109408405515934612419326164758298639396670095312520066801575364962053264652609754650213048223820218468384001745512987856284014080162458147560758399839968302379691789849201498844751257582130904100415933087735052111430200588800224683591759459324764602728689696259176668968648061190807688089256079708292103500809159644533135858064217391371083989951140207623882029569905110649034532667780110732834500625102647353746310087850622350980226785538182107317588432748238272660351698994374661839859505622044486314842974162843777579752954523660302733952253884975228672089294876011895076290316401330768549155581717023150531944487928661383644276035352011888311399815422183717019864587618936254696445497393068928775044801639342521981323097066014767457525293271947734948300497351355804139293313399364739184309934557898248423103310082908739635294218481598265396481135599469551384454827414966196685816913565042096969011736790377362878749203159239340069091975716602130175889043486813136172024099118519302531383629509034804828473204279751544847702441157952116855863138798763025962745628638787896953394396267453724977957307651029256780911632332475968093353696092143802904486476575333385608223237409799902007566598212978564301570841835897308904344530518359215560923019479073001852758219394941580824781934564147177645606560387594502536430164728605442261989218469445631054040278340090125852952523764699670049198619792179743263110319279087879322872221254854575577099380587979949512414398281074028432296202702196218879820378290764294455718065808403562527947171875623759130369187617438434043139280241990239141944932321851175885454862577936464907581059137040098240629088326060926161183811002952200834276540368876867405891966433398852362815434854093040304057439356567205697023510340552887562629246999896825243134285809935093620356976376327422544121029182378901227359958835815786741020134371117957751047253236728307912503091734354530960080432579767187670879459605077161985364017786524483576779944777787475743122114227157732500355141449438003006367994486819526838476862279924404604829427356458864923378356964380033324637681955120705624540625096605623111805717437595673097076570540000109057928295457766892629489391025862672370495274463727369693952360142598403288555401720790328555907637749597332167046339152651650745516157673165704869670725793332471003723153459906694204642265816371083725213060374956755694514727168295334747574939736048605348813002940717679254539663511707066602718282481744000911967023103381632074000028537407686407676479662032845394580166607653169599799142268091187626407477184569603283589444927287165458394895132384410462042891390663338467430875320423312218542092549324472491026163986732350712207888831488033653700442138905650569200605630961993354442797119633792412697214843902226167770866486372508984690993269898189013329966755605227230458472501494493243869193785078121862771349776836159282941634866373589011291456261597319400100266098648572586711022745263430041090917071817917689519965601000047410101842307635666394862345346443662447659813488628315842144599985111301058891788162583294363492383120451268137044735768394207699022274731740858480309093365597424238237479887396103398168050760520006189059774205191017815416819602346995378448408224020945769009859234996271326606989632506599392355752907108107051976455127125919858604028163962487134884364315945182757516511005129372945486696864682972863483556178449240067857350502171996763507313734150568347068591692711057252270282284769910214862048691118679274184519487827427441754722440113862379519668795181398955092708440611428830086142668816337967900005672306515488542733733315954160832458084986264712593196696595400810560152740528452497633154751074405677610474454850093129145230527763299656629553486945692916309149609882970120770371462087993881127504037363062920671653481375506877586504473620007528035895029551250366420933770283700246862400351425210462369730918984749746237959301611690034424845717626410390983224979055516672637945464835946417443968701269965322235081932802955888302358218350612418969935632516911184135779983841860159861761916360758898207275622842585532919508510778494353551901171505269234283583506844798826555470425823708557233822671299513166279880083057503663910888244315605307717372843158781960902467572512511780411812648697756595113245247342322344302295441935984849414613114123745254040198722601541667602098817439914373315983155504058889059766793170070672026068266502980766827960731079635693343826005553168613603595262600046737939658289652481753927200234000108609349628773083263308581681083097520392529113146491316233096032190918005328004714957420605521900211581276134758244101693242903535657674341013256741765211453413279495026042507005451937650590832457476466943387792071209539886678339957180397260122807056658077213466891653153409686511178051510248768169913194432153876896694153211692419480188810682828491526924287062508792892425682178555235053752529167238047644999398429189276730778218590880610550057133986878875486997311534054050073595097136225500887826543768904304926216667791583613366260024864002071892781568723340442233743927217356380547134843215712244712604706217342795892715195549707230378038387122195855458196951285043473023526819407094279160853475615745810340386774728162169502750529306362284053017061209670346948166888924945931209350230843282579083366696237251496674986808706290816838778806293688484297996262613923153299390971193112770748729533066096246904812731106138194887367520370736966310873731967765269265046824489618636870063723018220050879110583223905047003285483037672602871630417431388756236385135183534357577161980923261666452134237691624403196997924666932912049429090199902343830153280095123156618741533643312636841932665596019523258445568995320268158216409456007526151844990954352542292157108436585457150159812413959456973605064738275826725271798529684543258826196517696003396963023084189885062120606810877086239252450773363166050283507040071792621398361179623561278706334024180609353766323063200538260595369736521404059957364477398091890219145494926170484318375848133023730037828837607960249008409307430136209534851447990410536189494855676282914536788950382961727796861295339237695168432006864570096904743026077702393733363222975702989277293173158285315473347232909856189445587976294768803976997451305194583916658024679545962703695999474498215062318884589392638633722377926907761014390668886261213896731789131015635054800544064150078858047073148544868158292483292607339948298672658262042753516777734267622902669921039949656883094259117442159076040968357205922026248516077940395956158598449289185187971998883862519577850559632853291547875440241599807705214982719632982086801630263393995665973035648321016985785791638272825658591748697499659161316325919095264522616697857441852960943530436166297834714208742712792163979367559143162968620168397007621601660525496233874582753650095850463898810263397574417895323014963402219214419638196009662500310126176870411229328565955215781563351759809027584075257229561721184553068866195702882634283277192584588771737433334239397647225969657267072896852794669940170697557106864189152773182525039303921856270322042489998121126025330274010262274275322151766077551583503007704581975758771271001421080913048811861356119867165816785896401893126683295059800848832855878729667937277872879300826701737592516772619885962614385533184180535334743537086030810976188632627518360146574733976882125196058015678638119537508992361496338321693158770732083574937251709745498104041264833285048724109228249216272891021274188918589311954899139992121084325133769860904465462256237377820103603598143361918353055788816661696300783322506225684721534932102770775233488800993810511441428365105304567201674371205428382635500812621144736144107221362986351584451641061708054596075979211479435138067400057392998735817423477118984624349868364793247724155039101905330194316006606965255916394802369492080743963646770897324840755639823344536648690145417703269072501420334320694218025695530924507137578140460146772632906016348942127023952526992352122974238819715426718136595440002116781661855969132801980015804341937500673732914406481584809593136688415115333687539325257839523053750015746668333513436283740819710744346300952253308086044353564440216089590987367294659925949184912010291867205944743239294782027418635987891045502757249534730439369198835667422090812503943419953119055018129154041667170708833606591044324623964346663069824942782416980290498414215146443712401587511730820951901874768382320552198881248704870627393920072942343620539882381032969816306520119138422984520023687774419753210454822482292498904493642075187161965857622679538849564691278311092173314731234049247571816469380156046513052355749602964256130044790313990608661511162393516964040776394487479647222585081130699766041832577102546421182616321040422612858253148526265026213343446066997428228187862731039347497221943698857356925441571206346731049047373332984723153607270413511501697563949192586028474313624556105171850018107847446913933959918859635213559408188722946746843160670392295371061588237685173299239478683245113114827916187133687794069525165211064019029562588185650388573615115371941448188373967581447398590925232482717295069411774945726657183559228893562293430564483887940501773265754364538112566488783109989172186321909603152568013851701172247413191176791350153875358479229498396449060026384676581379910870715219884975480361179276528616422123707011410419467833002142411347891148360001841203242181295739825222012474791898047006320624801524985721276847310432466195272194611595314627078731924167929608472683226704116987165927106423145714470172442005293143205670574608685106915912345809766298718806853301462364575289094808365126218246118126027762336140255837067096996557413438934370568582488810498277897948705713129033835159897746083018616973837154395079553448371391961784191954307940044129620411067635890542109426941851511048223039520536856914456406710333308417484983171577500622281544392766612165846902005324305197616763912175697106328803189644137686284989327084278868375013717084228599526649071319072378669015909080897690040795747906324849229312106081131110847046909718151224849334457776592655546097248583855236037492809031670696829486810865031443369808920587833822857961356073179166316267439674193620226116403489160234820247616343581308324861413808726512681942764580848245404581870405030200303386634495968970702282959076983472081416128800786167436263546258888833140629236853742911815350993996703877806428672064990060481735057239514770852926514227592472849163845696151870329351446574963246249419796427278943064839796685877361810712485692294448208553090266577398548650235235330702604238867598945724997046709775131885182167286077586496174223737894849824341089295380169179940483262283187139513755652134842618122938985671577032769992979507597226928963060035299435536220231231586089248419407651403871110705785062260289438856050739938850950395991551976651162200540469396500730378547980771392894682123139456135103496505819831030851951354669417712229639071118289366292222538328351682927670590599364837786955034289901519997372188068025520562614124559967337296304708040769516670964998854614547749585668345670824437567723249880321322045147632214660432726039015005599187809779584131265026315907573374530052763584564357722080287678793385433094779804138470904030514699054001302582017500859174484478648022134378095341623204265923753436270836040994729095005417997946495987520974384010712793999546326315941036164021291069765382324287880080409280761907632830321944024079463382138695578256165427974754091999143444584621559624566768714894869282373562041619437013373712189173523256298189381722659264388636832671599412164949376516160672450837706038428898422531941555798071862785593281401294903689868549587777246749212764362826163548458126814205048842640047986068170128419632512889931307942572385340351383858950144964484139371741328325591005559048495519942716140791817388743523591670040075756209008497424058880890390963622883755980692331964496487929003844113309094319251806187606591222366204498710527389984714015437070409624645268381530018268052491086033029894064122681791987688913854370206445847006582918942938911105963258970879749464984795052804771685294168294922698175159735003099067880704341905864704356898762258349889218405261137030011305431711862274252042439693563054960353923517030028901965363293682748403924853936030479191906116061046929675862083839011609560093385805044576210520304445745063056361710183094051146042665768963234817747520795858542673842563351991913065886617890084974330097810752514109358646135825880039573000781076808329886464400783896871045298076232720931669786619219687060985710691291822451499462855169175258772978349825503999881759562975901951226020971603926286966397242426709671071658400313799846733134278829550856940896001394107288957946118930132437269451279573435425632810847658833888468555753666092163250378023011858744770529618821415619152732914396801017945131115717166343771994789562790146853716815299971092354575900400674916530828858975169468815535666678750210185262030667087524949338979389290002807317552355266282736863182416079056819906744115040677729646790462348518925071644586436588896984765101405231901634305901568636454397289377453392479432801021804545732047096522138061311788134966523478616742277976729611100088952866882502881616435943790554151487225353597330529205914150631193625530727945725515366606493610569124908258827522026574762642412927266015255385162743592717423727871148177656620419692043872423663877532781365717274981914366895618124823418295958008378532344036609742727537993417135058596364157623035253075350203320271471585098812546356680101783161721808250406896051427884162384440396085541588240577863624555020399103198743629694150268589123179989449210495716727826992797281338143560326009310756841479906057031999002035726886308779277346157216872243913434232982679373417185759469405860934383410095894274925486222503990274854843511800464184850260232551641660528576481211330634152636790677997560475136825774483601351658827860287666979701778461559469545317960736478659001722445030248353536612538114871745745758642381160067691918247450173862209675475171520888386343183637625800768036661275082215497997533276236731016030086337587792431321183932078263506972634527328599079285503728353451752067997675807592712190167519712681544933295576235829843382597466460103103725568982965917644531885227591393249968037726748116235370659713614448846665413614687160905150288712546766745603157643932743204472048175968001387322926442932379675392416869145597333251382376034568695555839004980053015178304162458209090831895752873765484529973809249183066152405484790261013264127280144438468231527780220500852573648291163511969966478859527465499308772911976218373984656189125856310803240407832446827279037538477223529185451931371755477657611892530581302359603711939643683178321270589137574764493483852206895838182024224263461092606253760670051341511639502513354003233619794659141376590532358440355444187873320109785255081373182779449276387181397194813545309509831811242979362731194128817455267752195681776288604347484710014342233266263329006834113109766612213631766957237456898368175532574784543174518356774289518085635070585918749171527971366847013167045281181419724128656770612495959340859424092420399452262036188885955836203402177785989997889520394452426500697711338531926118024255322808994491310650299585918868560426549054044093750856076418247783600372141764588902797511341479099226335249109521195091463095451718482023497126461959708263180192338896583198565132407032252056190313479453932092012000591344371202395371235400140021231427356385037100378381851086673292529677641293861147002580619799473594765372960543951538519414924168535022817691876802757669064076782875821253592098707890795674006741322402234929039880164746526926190244725116534935875637200433101689982491027719891281072741866533975412545696868605854300811225255629336866248685879743118484645079195033996326041102564043392837108760245406550988396483057918377916269042436592078218959758418543423654938495821995769006175810957773620623996503590071610820022273002803604076221332482627968818533388695627835329892762072830937311721297541769248157776283755573166779629632896567039199103446809975238381353655161222060294157461612338127894072806791266111431223994280806526305181165575143968890813024727873229165943681297284849453890750535375956716475183395683116579176599691625907514461472452459998071744156907776381683568677916335232664011170777576793884325577926865780278296280915280628733322855523650131064867897635902323613537662143146192772001847327146911194304134645157742481676318178045187561839427719866899556199494661782506322771602330529785575900698460708552049500598689865272313571513636803654598702249876471817784217383862941136363331505395931887928035687285543692833479102273783243106134791513652869691348048816538827898033301041756175780397106863452349088181878867503019762690854704039821152165854131598897847876416714305456867312315545179742539721905768582669525064167558209323830619201438350318159358195548604948446714484694452995239023919937619065949381574470423689944463532751898485842641721909961513906753381272860271426921017151417692034894792710534100927736606609434252714993777091539633407958027595713370131756715097906331293001177858574166230989767008007814156311622807479728176626907181757095701023888879424479145641834385243486444940262744746625564241076110628651776415522624450601886177573592793015194519534987824460861387877553746238933277496136198154889532041883154692780798934119614141328319378621548127937166313956810115132478416298236179985615634423481390769666881571304207980644243337456488448058713991723626070650995714064117576649669780524837979209912526593531143367497996477426258265650806178995953383737925627243148977751595569116595241876001429897733148852824896774194849393028343151752917372620873253151301529722384158674058413287752944348942381839564438865138364236719098759839438948079873804678772241913285969205117018375563866014732969246000463191957054613941779842975827070684455837504232715161541117104665560758980111506137462469532730990687448070057097190490744214865095947570267589547032773179455638937296448016046236852207650939790273719913082095058582166364872651639909243123308019830900826877254861194908446911002311805022590401488001521914624060611375264978225631461332574576934189123390223133399044753340950844919610012860439616559238795199633932634200396200700442685198932837326283531164530357495707615431022756355031158736966050556328404299696986970146151424083808396177223765514148809725070417599744538477703431490288571695372361675650070776853208393320928154068863543124162284252286816151443259717997105498261945305911810605842949483120482100520973867493924744567308961820435390623448192222120742589706146915012987535101082536962712432451874990008874545577614957871147409594491106074918405771972655721710204730439061282338692617791026801883629021954413563338130100280847156145016596520605178835975904195879045962052551662657695215109759576161830146814053225769464942954995786313100437958758060077854808840767156691768159657989349851234850104782214049838099085591603818871538127593823637059928141386241332082769826123411908709189097948856219157865237066768565886650219805162748216032467314801814971039593836873633269563992273919463976359776931672028705759857858170588846046698928720586461521826142357834004591036309228950237762743348277626981751078394975411995381157749451156433334877915939528369796493340545015891585587276938440371035650221054535696260241621447213746988050533711512754698970292814927178313439072267210018749234046711984233884687073245106637085705137839627583848285850720283556344043105881828436248632002623076222274649323385334069786134436187947176575010438727989884233631672772915546641053536070524094826179403811069330247076761429193605255720201034918596533487591321559322044567807431023332228945794683963597877713280639078010745413431656423922623784013355525605361478802316598910683269910283623725078393527409667864516000995053373423171431464122189152350562738277682069160680958791662574863296120794824443390088924626059003472723202547634736216432690763197840667439123684463307279747430207751381937122735882305053940823317327993483793074954153004046132716064478702389529023799650773941381897865522560498597390783543221023402846029073821054471854995556884380590122775353237042462818277157119609076320109887518130057357146071064661098518272899348819382715079747029990093881642110861498229960562718838079457205692564858296796267129522056551549361514513600117766508990511569630513508294122875301624120112554906941920649208783673634851099379857770977058185076461266172891922830910103956220176817945890103682772736395042862612742130014781189943452468871236374593945798963501526198796556488329230541460710833198816322928802824242655273219496702882936814375774174600538815155990309728315750392395145830617083102763366598234802587461067695466306329956614794790794535744560053492939700725715694385318129619497795120111316833982509139724438593188609982307179291321815402496414311082900277485976627383735583604406266673972183140898704320980537690689066164910074696570805071445961379886658113504459851023224846376849319091289911281975612815597912194501790146890772356167742001443439342063770174172317825299432254487536158073794630477782000014495563749013740920180426079483089271771146453425814556163878022179574719597679588217019624037414612907148679299833659690297042801281484474416367210088153706638703616013978933561013066668642475680851695660964320200570819166183790413677879539575748697279757015040645852521770913766434999982458550008748880386804077408613341359076182482615908317849509625135960028380310730956155987677608090803019029490694764852990656262400529840149571389581907034126843337167158911362005438910653348551057242013418112785359992787755567629325324674611938209551606763829246129412297591146931250446604766924025828669608279579300943400263318847056400324896826272060886762393990430621022898630565254738834380838438125500511587089760200930220101353768195118003851909869964420272636444794980491021366862369905909820398564190050191951474061819538168933949002528716780066251280984974148769407591933752631316931311190725320931899204889344056935716946728739424769286813530279269779391380632519036677241386713771877424033393423358265221079802789206069211573288041803480126893917415442836255441904764306224650615499250907113505942139392197779046963673445281681392617916552433560498341331013304107459540161324057869800584368297031252376390495202689757759431124915768318066042186581655717307403833087645820411986816776811848947502249597450954916904950811399177044084441919930840368541511799628199457074648782123847063486108631415834221047851752836688143793490537568049301006129919451422267815091570112054863061721943495502410640016592687626176506677718587301842706404131562222331930027591585782653214628482434434926191266265202824630620422893111189325014169165838485287000407009463732903537023663665179043948936812192768735603903590575415818102453540634807149199181421497387133418485213898718484382653548010225773062075194773924201591564447465601347015324466853110317899144223903947082125247710410234125644224186277351252127266882010089938311084317913371328265306828077457129153158416414847950337798678365739700153576881181327588027815637583983600389693640111128185618880276680636302608696304827916432782287677929544857135452725696789088007835782092843303273795632343499442274823140968871512336350876053039407454237647393799361300860053195997599533779082158956905367202824370571989388125435044876690012850786114824225911371476561441566419239080415605416399970014691260984679999199550116509849106979216258926418597775983000731713557212482533443585806607673336825452115005388992193818331558839916955317661531096644517095753369731614245519455475336711234455920747813185539169428693589545938979017361690050940289369352436436575138700629720618205457893251811977934361640394522246864819449703589734903103898824569204852523841209341306545231881058907374418388645339069913392988428692330638712355399570107276155351184647016264486715385626668120810019799690836719094503860217475497359438717607949183635595775700819707549011194840636631867002268971343145594083685596341445889224502168996998694959787830189466265653148937763694175579846311232179611865633804660510080872814761077898865671129143158963341887261206963358073385689554244176865363989033561515145448593828690308461660980612265395057825259438544376092990142362318496522636822992907847654476191473445194404535656673987845974750363677301081658054834508394095514842044305441482743958028472457233935440373576666633775349653341705515231282072809305546746559403682320085367174622563631291815737444340235377512932797034341807355142811137889073324311291555264654363460918831815389222776370531174616953142127962026628481590168727631900934387662439847960973485523828506532632998412984727326633054070002072672487302641783009410983545299776109630477610633211253158607524427420481000806052199697722331954189280767718949174249265457541232394389187931047434543546771073149588336672315707903151566866741048266100182694384718039651573906781615683653476024720486244731450543443720068600969075378353883251651957665987468312682955654060615218438045013786170726774032818629302555389471995334656777050054427271279740606138960565542830315907572553386522695064588172647084591735746435338491216105268072750830975967491631116762860226876947743223981889607910993967475810495103998331171922231904871284382642531286661702907933232420990770193729861063876624355538522243188308256812744929216977578492717623022838289346913646297103863726895854289877477653857522532117200114952182573292395033341336002814870264843656118471081344195375456495245414870766765237954670202210161495526364001460435225897284848334818246319824310158317044917904075537225882578170540139054570423176410128143675849108641368218859450298454961563055789078726426910721774877490379897679360484546942800083642709321063893910754698558066882803855938968933185020097202875295585842120332098933764254333332526067096114463462599571280428827740141682009697846348697218145108885848606815293019268807547185047069890169556488030871487289242863966827805716874586323250440381948901640662921117075183997983611300601979841841863692711954145931621829227178191307599424678246493691432571819155997387929957582533899634191448200879948914884716427803989595821116734120496582222092739157172055943436015666374336906590396563709736084311149220254673842928149954602350817289489338163047233989727110003063766288863161228457275773122867780664539840038636243707974176428060855472245078583570922443403917675098426590724551442216644485860755536289768696134315915829146431698135769708171847098978923444299882666384444441107850811437027613123188518138483441040867025722677147468205020550656106992015737345174724422551628634279067634303312545138227678487680548520982669351898426314636049305088423599329192205527586998852986522520136451362588517440376037011325512062935988485628591686564088673392727418230360157920041988111412021564470454119060192244011924199389901894826262072395753735827594271450713369813550272163562727957658399055525353816186730023822836798912568778803696919154941477763130917331705670257395811548264540604757997244318059862423336586054994721005707139127042496446653824346472005353472794482715843846025877939311912816387207945933021715029446185165617299586565998938390404147034398550110624323935588357764086324343257151851735332301398396082753812380023932740799551262554059760159502198153017200749457874974887481596837885254926165147781307826491500566871452008326064688392613395687837818369517643539139422297849762583173013163126146756271769463302769274503254693150712911977567194102604400612987356728381369651894370030926002538705955139503220962491444154314083244849561265802311811378001245635641459619560260482333581455107228164043501928994948908681002674889390710573680537982892864081152386703815512859204222209769077785820211970489570219235152541447689233511534345377755169916829216149244108970691271674900833440710513182990119090031348535991652662306437697288495596297050215020373447757234060824089586536107083422365144642646612918340486031895995619591639347163202139044934789395032247691860617052455648395675383387928710921979681211585520671122125832902618536137684744259427996685609315424599297142281107789639607944110092469413133996707583976124554265468482639317563086037384341968963654181413100864266901905321165634070733256442362763802420421682603727361473049552534724045611928992022590959568878192935288147416803395202296230182025239374536872358883817630911598435974886157841625713324706517869153213590613830253791050556487652466374757707456928024135842779207113657901704310288126708617356155266275819529752353889311001027732568204415410618113204404393393448306594107086351592555800418849593793929206182234463196195459250095157241650688504347462356871773869695730656750461648395590591916737147534633053435209850159322691985093457499060238198237774859703127091295337506291395651320625314875522639521681900814725713776849465473782509015458848417250303047760903969829868440558162280123306334553986477142396436833203941171378365736447664108154582064208125179515460684693803440248245285171495489515040366755578213544996552946933913480204939912602484871389669835017736233305136956403754053627750191174863200007329458711331725487520365662561172632430800124355562472647457404986497206761138467890300004027416087840667739203611513656349253574367015289423863051755014897465633188550797189277089251773261745101445153916420577129253541351076128288139506036938924055308019665380825387055417360378022849666913230667853181501838026651769157787683297263559009950675085636344627585643163694358447003581470869900728448177339287446439694398451996107608715947886438514564411914620648830190374707787789664054579142779990054157169784465801002256507117644346710015146345067430742564245173259765303973516139667580486068659213854069407981415990684217225130329801818199403139859957814367843042879605258018850821875275586488718391520909312431685058527240228805357133708045010976461857687667653720956918720495955067601741163297621991251985627028210704743704861205310142489201268075416352195155968705813739470553746617776158537506683847557646776597613591009336606003843864229504110774684087794507324470635562735442518500725995636791288443109865341917838094765881495001934584431421557448927808233828391590692859774198968067799648565147522084012813803540814075009660667119348495322238957001807523811261815239897971022380899529448883987304106541875166136301968428593525611816568673358160593230058861549956308002942829409444043311863740414723323632119495601985798518942164795507486711081290401731546818578076876143749635613117789687397478048628980350957226435292085632014316422010924286289999302365668320206721196351237904998099178633362770349128991710121933459632460054902384481659587762168047681034114898085988961944947016216709788371613173752538142458766608318735269437193339540139040055611460605935458561178356100320669902431880800379618874117815505341528861365646002891078410703179342120236143857049434919689194906380274392183556292953053803681424067841220947145952492647791618402677206235285031127057147036188733386595558460606126388507409647475561343862100618781417751516767247586830744915986786842303770510006743044740295250291180903641707071612030426536692758650805931939141988893161523936184373422649377988835909231917841441301337553472061608683321537384967803355970530026444129717953596427106015409657953333295711686591383562066682417876966060965353238078589462850995484184158949149825816491753487442677532043678235373438136011356990891565844577119168113258975652409499785922906244947677587392668134654944907287504894429189581976779283848921241748649544643813005258423748447158979772108098941551310020705801808890373124580867256655156778153891232873173379759947181322138357177743163035029953223915900856592486212923623088555090364014341881926069781481661821976046964991057096528741868896057290761243340969395554457334124074932285132423875401252076766866956081968284436197354205371529238931765192723140825224429862584806025700150585463151700542046360579675733949486663298725592981703718451336689293445592625522439202097293879292190446817173194660586928940214366272603145743890379659651536454660461755787825365726647387696186847618395029848463341776747607730883220522997560368683668875004655020080421497618911209093889157835218249585913976121466311691522425571465390015836111433493863155654570677812166338737813448627262271260507652494004978194365434727364673399899309246919308936958264623545824870706999485641060880960282813136851990229242253818616240189938504534379087833383648797412161664211607109149125212004849898599293569872989438211493819954303564678742453014139466542612042556603020549727904904616960680010068766323330627342693329556020593308161230869440800032543589102077284755557158689865608186011590832890852785964993037355305785218720023925279901879261250895225644640622995925141959675266801316527392934266211623800482110251846739944325377032815676665541221702354252771786411498604577395506001334803801670405489703580320437077288050491138845489042765376741876827836253617984115879721105644262485308687485249818186201549744181422030190804762718315554950332890408234274849128858079085907961927161830398659425792053071948159530470721085683324868742490622494837820105235709044378493345907199692044596729379731371216889219901487791754461777515346483264950352596711408255511780781540796012211935252032038593749878606905491143213963030603026665047397320357586061800451717976790179589050311913517269708766438106903612522449580390712853437955206429141528137712532990269063788870207584198962733504822470663069321662661362631556134841133737327508450899385851415675807661087355489479595654353069396630131081491822775446116923520476133285834183906028354031108008098280323349282403058003709582579443430651595508405027948701101460653629662940205736605716972645963281428274318390119525401482835024307719321217396815127500441479037761527505449771051742975679094746998927575933118980310012512447567209288592828779610172617462823610268444427710845387569501426727250433267744333686698549914200318571699451362471126024923918680760114536783202744727844165340794842560433358140803035145667430831892837188978425241156530120072703518232312654995041027234787908400265003679186058756012243706337907905248541684597201124343745208848576966104115515447626180123738824081836384669985665789651103697510581359727369756802792021371327293725384168744898792376904167629177592899542353968786684603024710866200118919468064728038177250589225162383740704802099874697620225860328969356129409096171069547226430833043325617993821158604244590931822565059198927827232269019120538891474981507689299873435410832497088434275163658034361824295658249634099763361943766244029237390159828702479443376032911250878097803528179967802753653708388524350553504093715467493356619807279734966263931590777749702658223634445445060300439177254328438338652250492999610423447494636169168857736281467564548762333656763767222672333136813909746434989828291515495740457481022627038971852164074914615519226614709618078706380608287892871395449966587318051333832705383209910858091435121598120287847649177019961422367751180958446727544399550575173561504165872883251419581890731724990204175401729142373200499980040848075623918021862163350231166363522889130631446054446156938636691734773439722617871782760137566893823653086111603585265661654836582604870182920211212296943321601965428093751171113229789072052953401510769525649067481689921649388570731845428511492051153519008554395081755989572665690130147203881116407434984133033777095284553324774560431532186520312399625785363738748810265385443960247516093217132247053413462902427370594192191489743673096208263546350735874748496606670575528838450128005123916068976265395831735365075767894609286093377785407180079117257731766704943444611957188987260942647864318648789587783427847980562818520599878254275713119447492712806078351711514415064520677230324723148240805573505473043124585286762362102247994097585848957411267804379000911232707680224032489486794102108171223941703819518170018488228634725865805713671498714156917019837840946327701483826364855654211648136332016251371816480178154921843461798128487049686389947153023044635386104475469218954253028905750696948299761971167494811242509567995582624353099838014750426909566051698806357094988904311242863229970399288424868305073552880720743518816783809678957667829904913043231882935016410362186781923646635097866375405209893463974157799887732025206420446392082510939488306521493753151231435654647853714637141453578562848671616712921847670456838029935371877748174016522305022749267712609331621640133486991035668696259113251833568821822679420963301526645056884088191006778096103347652046641647726314185273683027240527200887472442533557062249826949730587423372665528466280262239823377964397390341153798879484024056850253470117086516743186507417041744098843311557435410327389580171533143265470758537145294389818541380145745454769548325636662583843605259285187830486662522829277537471744497868517896674837494270604853431028829496144171767804987677197227369450712605755586438578522338448979211344915811724825020263218688692054588010501387861174036091682792277289282144709166653265622846851067889049797033563477730828571140580085087975318837417217845048051364149423638852728013084890803125933285897036088957814381611651681222917945997160315369099350129774316767956380182759482968847907498168248796290509340236577663398318742958015675354517984204457626963008641668263826924508823003388819964950058992899294888385403976400146003213611144474096188875048279103062915186636873742400072841053317882042845046535084184249132347031167800658234862076496447201656233311435281845031638412269180114515305942069953015434664925914350574339360769251233382540969455345899737148692421192866110915054940721999560137972635294067303811251236479641044892877975581729092999118201367471411606932528213784744113016011453621893098255005588270451089855404636940431224280829070133070872571794420210905691342461017528268312266464443117983607436455508755978891359237518455872685541881932938440516229734532523269629101008086122135238563641317077394320540014914768157079183321350863040144655674680287674075260346012099698411372981955337818795904321274718904676620999119187339427707160163624247814669419753447938365612156387428618688750942536295363717099406524091076812874050568419121003802885089898071473435534890624333162829462105922107918692946893216797724274316732571354776228877835796296091162759378043616411839174697120437978889815687149430144418019668738406447245361389173693713331350951606165841885352143941081080135724785456822972945232098350111266019235813919501039805127040409962909936735774376341901100005130432951407143267456812082065266625943374612750822428998324753591910227559718725442303432415733196245795735129497154853644092692177915765464054222161436732632681543876659583312734823002447018013016655982687063889724078925733309263691382459114356031007620306785518068317798849067620447023092729350409594320067498871127865940773915796286305163165118091510869704393089590975635106889441822634434147764074220307999125541838638022247239435409964970913591546837953631831489826400305167898283671617894254678616687325877080220761186800371459498766637732391239294230224309382509850208973577754106553360248165438670632454574869232367804765043703899108503165872070498563368437403215064898159476455006724871644988041897423663603128523546679620079051599439446014574422586302757027358804265750652144818028695547878370851197943546459730588347781309314886468512729464921131061147321192096118231115220150642785142579796850616185309945516543651290065819399508702157207595288587430514476302630308515231860368488231867624673564898568500063375180477198574039013239545672062872878831561360657124802918428963575501817975470819831885599861833694383938345613165011258379141289131128031352117205725236040817913653945644639410815698246743908392436009119403898728008476688424969559295147401744474563067691091192305393702681676851960377659558189022186648436138259970019245699923139527517348667424165273654152478651911899103044842338342066301259515091960633066879849780091114199865083851491929702830860241151775624753998007923879620802315190626348408728670585919776140563254198230397508106536043153325884103435274570755677787038449749720570989613479400986815621105798104941040372871142514880844617511766902006691593193252890874989293963271840822902305387400225398857448509954432396720478407835718433133562111822304139600351297478795296357428455699052994389062965666154512636936870112175203814195785508505799139163395522751264219921766289031372466551276895835723187639477275825229258491031005006313214021634450260175161921478796815430770377766735929979061463526197110069514525493225173269608625807488460378198593777235883987245289565809222521589149872147668970035028896545817207578861800300146640447399735609088784600757962533526915282972372692929593521403978186663756982843439902187206037334235969046116670996885689916617021640832285050851146824031982716203679697187288564893996679774016215299942406984766625588776864409577052901018106580280790671592462439291207891540081906479957778917723931806022450062330210402068693777166418085421403595502551216343691962982799907804140974854253468576395375853663266347566164484051567381174809224602200131105816426833345806315142249151706486952476459630921200020466071837210624866533453739432808934042564352791782947278307483751001792186930949565828767212791206121084126126517188904071761348531220884112686442153258620358204203142885124415120923978463131357914315122188891492305629729079561381255657838574798277542406912043581195734411884834732004606428547668392334347477109450822366184264928570686084896437540339535271150884496433364048232587577513528098070864539360997458135151384192532867029639758387838084937827437358695727563727842085211360615368845894603946254421266473733432598696859876072473178029841031410828460409551105320619056759126566292661089640840048198385445156422856603532948852094542157113268880432586571750317968003487428842561104989057844081010540901688791114802184073464608845766339480452070555185277594347073035401175574179033596102279980678272568853549549672773179347927414180043517105528800907460558327581031218259220941580676530067505000637877587609225757409335923673188975165509826989668664246750228372410526396123251759384605451638992871422357814318070784791738444467526632237161092642386128089943451930175568137430098105244228120502884088429896314095889147917837124990104846923219567733145665473220067588234818606045022897532857075761227666319398589759660944663087055393221430616778022861495329835954838713177985696557313724708681307511837812397432034295858435133657664093093579070941513348930605379475975443203567949570814135138642274331148794525350876571089960104314745705875968792692764308112546935156583637210325691727300513287805505884695699210460719948005774773478147216518915560992023412052838439104333856525713883014917171990569369209973905408646880318754012876152102263313131800074035323972376896458066658379718192894447241084987474381881489077341145368508592756094063998824606292681415471316920858639614961250776033399552454577367916335875186910406587089754522354368312074233750649391423667809498075154429481483419540285710533588160673774940238014797773235550298229601953437077171437065479043969081185624554239343361621648261233466510301462237712782319623657758393716374150059127985508931301027005767676613305134883507089296766795950619560152519020768625911842265834482547858328571609364716444850389656155661390952566961376914010231926820830620109199451126333006271066955144495792765273537735002110321204657323094772201961994544656018939095379332555558855312328646550876188851237314318146337455824226474953659040430162195212992204828027069702360336098135547148281821032094834509141535693634932485980815890586038365725222352179093684116966418163818258084126013068665104848165867960240339918763108656320019443579919703163794803514284721549181549783404511215449781518969188965070209927441773122914934926603347600068125063113316832341427676619686436988920789145978817843220828257457647760472108861691672768556528574470817317595994283377139074895913872512703455884762819325813416030278418808251929007051906614472186591550100419320779934314782603695477756033844755712021605781921062058372473426861512623314226991578951289654128833975525041685792523772928561298947520033990082446612819858151286348773144140481410224419656848376186944831929277773100506720757189869539335523898711322674591618052743531921832437073251485040701710363181886543005578308776639313599523662469695593960960903687803183713939459769527319520758296470184860345258341433070843763892621282244827750965333942637667396930115561451015893809803664844125074767877229162006974316748675428670796045729120286123933619843877467144115640138064594824421721403104922097789631570366691591387320038077740000389480767187539292426639343755487401982474342744650003028190615182147797472853877001802454965415376194274020019673009773842640697978768305250972834766859693655616511932397142183854390066370451055240178352315404675492764357205129445164720285225278036790608845308653043730329616172140816678221603965129454081976029191064932560629594040688117227195864485970503746586758802297931471722306055110830354821376748940790970345284257606170091422635025116994582003049510267329935955659742413229306566702543128830727336073001739810646730997832711977032376091593055342831958147113472556425217932872883384255984941539537047609192472183331471450607694844333782661053965854420237807091802345524349917792412243321227621165124442305604321771695063667484579767691026494975641428479239010234118243162578271255274838042763007039267447789634310344394799594228330845846988590505264207296635269987286461647948472134949455158350720304116916066291669646538803053491086285546840379381523416836105442388862913816886405473320526876757173408230089177678999208331341951754859925979336783292580980058635014325216719319101366311750149166353396134864253671898950009295789183813649497001228539719534101324650713081129060820514503999629796056870349816388219699795001458902184819136144481497658476122971495315926238760248811023971879462323020466742321731425268757270710607251606464973462645035339750825392914082989462369968012859145118401024516342915743406783534366652997596748103703174929634558500187146717787605623930471013669526915580406250178142997887399874889659018700079210891020233668801996034203075725642558397301783874566305260036809824633189293848573135053768707081822456237489622636974955874451478849373232561143034451230822358224886521425013947218692681389795678377804023162234232770255998685970325025396950452505333301494920228694799665339373165227091978743057685763857027776354715432404414076419271512934906694920414851128957438606016136635464334266520342113516864129516220882363753151591234515934119981221666955435703374784146172076712265791204779927449735208086194668015243520341263673269291865827256990162409084206617050931085067953884818630862914309720083101545515234962257549574875278711214085099487330861562924333445586121950659225431844416125202020336820424640681436091563573886901206753733557027960199812533221197112330514551295634902689292124103265071589081023311474873726763465240865823449934162532329156607997067325860901473534725229152979390446870811166686540323725092533292488593691807971928592031181631270352340606880476176721298640863935654933497348524267106797191681346812559108315274397607738236635441337610529811825437721831249580781550396630832024605892877851121276533491019916627192190572617508261800125246824223309134582073303557126253487544112404474718629067630233845798908962864241317341307252391156756655569350033135494582679990161438621625631466712563776258803654104762467176251740279259555107376999394894767612923061196447867920671629569034383944250696220852252842867330380787353510477641586786534484751587072990907823023210602159637829535446731884290424840398488667398959184793403135382451747517892376252186825219258585112666583736948003014538577934077651666672421342920076792849479283779381930306612478430374047380313563676245828488039951234452997233251992621201687267840969962918546006926741069856469656435177214705007835634290722975362026901655192736348919147520721824498177202562835992334467867164764344000138791689908813795175092952908509143459016866520621149215369774617337718390900658886695136292794215920403868580262320331146980800117517471019867430980209264705058260018923481190081165019818906005402587022478301825243234546234653984728933772796886527241098344218491976816251579271197575407583389398497640939019722083922320827985501041933314258951749354701299381825955253598709245505198564163698955114222463230378966168563435603290147498101425102444696530394039336181112634426027630000582989753124016811584284107287545218314808054242270269083109113799396676551065751556250480661051783640760253678467304100229923723003932050057149042657135856371512617579318402064497186598175124329394005202050824600029533917082163098478816416549225935917641809134498669925720746624752054316931500509297446605770114495984181814645601634308328548445182219145065700843664261464644447241454361707446719937466713246561348039229942019523975903598578404536576089273128191191408982419970032403332099128869707561086669313870915521001308610086404992583599091332860315705547381979849446792836863377244704212614623432203110055934161430624994254263236363405650038578063551949593548535653812894355089281470767113623181936234963218277397792634116358416890836524491402712576695620161903792880820494960260928187697910936582009360663220432878315017145472404060645495627266191883023713085079725907624998720609049683776370564731098128747025599727393024619976276359109875051003539271662099666900015095706063211778363348173807940914133162566849858805541992241078068060581993695434074836214562237231373943976006955234637860505869265331147264206690344869007419526323975305531073844181741848826953794185574751797077658082409909703637030093610755069218596239535832196956633558219032873841764793825732562811926760489313463991884503532065089614248969540786171806646718241705501578765545870477075262745244833941654409375023303776986931774282885412875069890211531168239787222162608840440638848632112216957831587231479285163823459140237910405654167304598932085873994710192648954974925882856507522088686139642733427417869834559749464105961706169672132844440421740609257726266679909395180490636289648942486957918232362698869236090939433844183351269259391479034795114276388845697809326953350041431780305378791377188656248089660242059196112450164468243066762103303040172630543638526553059483696108471800133723903619616380415729218142073592952662810994402485591968208658209684047595430859427652883032895738992392953308104478898511959174377109779136130223601791911829601973438365640943263012103563244675870165767630850079444967411450992533814409367301416247349975581076116289354685848767520189912549676854591903801324984008449569577535699079939718236418432282503949041284553927356894362231836465955388090332191366423847871753964723346140967091225000617879861511927824084595667332404786773213270438702701426266124319861813591798251866581493136259340857063995183428096953351229766985846687979436745494108617805679003947838567328127768861418753439780879592653854518737833623295261002764107160824771985430219599913582476147592813138302569303667498327610856058914395611234209660562605089806974792603364081059493612330664915116679597561394147364001606128004012425231752857821824209093829618497208504907526118258370399379164234272052278175675836897061283995607648174656270380137596691865465901261808098561787676423526298434228532007583774220142843749925130776129338317247128725794104852181705937254606380972784148869073785553338963047519604551472939198489795501619804699753390620627956480808250934228261810867648014270719660920333023203536414865283745903387618530544606074960993336942695591581343289238625205164571120239846960864294843198760217463794611925333780451656820812407195588338427034755748234241992452379077047775928712139143003074050527776830612025128798599560664349389070472645461934800678619448887776091370681124492314597856739134733588279899646849887288048352065601200493559239973793640628803511689968643377652654026961177027829318120973639707604131311490877817802564913644313120913640228829768103018996337861071998543435602021889653012245869136403411552042107931836528517411326214800586543166310740645353480598285592988550151553778128913397890197829350600062781016322363005341091748761267649309595744281032595227680728994701022737074307660330247607943578940391158726001437177015235125171117257070497234392687200210366451225817142503686130767553729372728107762869118331915103627114566441445902295578216433224230279133493495296841999485327167576309469998232584671363489438629027480699828743296031164671312598657669936278804283274374765414451712268650795333266691150499486363246156124586447328425190852651400377328144609818589316395274945659249427735481539953643840782476409230073685722575319908689659099150469387188349944496495195807462247308310886520501298966422973459873591277537279065141038147528707790025209375659621161681631056262678349993315257847034903848452456146078919149123797603397260870593957345751333351345553648881959732775698253620273344801949117875838926929558442802108657379793537733978246916133369829390224608895921465560652465502497247490603551860500175259683880863928840597753517533378733960932589688626040497589130294051484495432407780918827748437593870176116859793720797490336917555895044375736579135627330752559690798260453335667157156492632418934905095812181729420614927648293042165445429808373053134218505332102948150092833666583574463141411139719512879083701538403040282770326373720505181075058652559516334645014635773827865369450008832135187502418006567989730718364638765363753955579784427618247155420469170861064437919844934349801579045824935172816548455812114145846003000862860708111538639781213535049827768451526772321470086353014717186451185591383345070125488080139310739835708774743467616425994318002514859690419887559085047949556501400196365227869765066164473732550744542392385710407511415871076941241554721326641329172940035067971768179787975438289339637597291639969583365086883970378269317936127321397745449219310371899591890400856849887231872595816357242693836845978289492826642534659714032694373230708458466421967579926854222493515511036477198847633228334333629905695286834102452225419291972726245256567054672078711962336298512209127045229645861540768766750382220427276550539332973018030922401182379574549780240620918589199648043179749247321185295634951029284951032565127801324915684328418494356268334574310081229495626313695035138742156277925568001064468878835135462978864055297429243122607139417180786036266424630574913851252607889294773331159539602639752625825101516765033315512970048529310507293077319340058911001118905895112965153370704524597522322561391759160945950849288132188465841750712104980359380429494821372113047365911609983912507109118209690374816155378488673618071502576512053108312112394506808319755565090192675795163920359780172756229389206724855826373193762013975885773787148140707171711385271226703444249030407796938336517225364739949763250397375703684219776794435357666954655854792201355840457505360921277651258635179967812883776848827672824901594402324924800376527741117310761258302092644528363297088628949419082819434582654342767419989357684116636404433787550279873895881408975508409682276228482588185019712080085626602365925868389797783682681335597215022682410951917546943903297325093290093782918548355512244704779852549955107085460040223384550857352688727364161040271135753912809523624498770994823771097726283617488692465690841521763520591837559952481757097285982788630749955395871121010113685096608689177024321284007336313452482634798131457788501937086863939471698025054397017920151118768134045868891908414889087276686712433705650234987161813628786905660947421713184566368702700168926985454398839909409079711855443836691839816540876996954684692827917566212706427377910139936439162019378766388187050538399288452525823042495533673988346207536446910015227418558555189029784194810392710333956250771018243419703253857397779793667739951196305345517284230936073889727052826808403206035139585637628660873455260155608596237141455987158889451956561742168557139177062580212148736936886437286214909115521482924464037816910881244889559434892991291154698434142500289165693050176367133598523383413007613886658232971942450948968879976683759313524707216590978202819209886263501213092039570356695986615084540412701019088846310255309227345660426071353348457888651986531188758365410430929785801390674761298156457827168869406257666040118046459707698827548275546006014605590855723808689234623730474766809989296823632464429082003603111454222639195333718717005718596203059069063358819491525662997031939924909651501816284688466177394788581269846715252132882481003814582908644104438319805636117578250773494786622527649925695790396248429449409636342403011704760560301077583530221557185048685466495802098041659725941365559298639148438064037920205204278462028691546331268873184767184870649714539943565268540964562781090892960687259482372977101376154255564474086600262944959120098252368807371492521694429059725538105968019948608260210737890898661642098661381827379446430759418774133419021041108647424327675225439980581471474118596509855645344737953407860210836020128335186015753056266360214634790889951265778880770298485293235948449633458076805505967701859799508624727944448244375445857230744909511868117353933110170021387553133625628786571306793752678626397856631673430527800829096750877053990449822317350444827909459151898580417986091624197632416517063299863846798624368851953698058492402053465497516714776387898628803048685862693901472138944960261049861395414858893792852111751252312426043490221238050402941809251343106342834202950327466553691953430564704714277407025045504273971603411963055529980137595397721464996524469976977379868691946478509314355842317378075555591236621369343319208774559030885690463378081102057403232326309772634301463391507604864244668990281326087935970051949645930665795717126773780611113432586163568166712210921728349964385619613151153919036174370054896871416140831724521855770616584674870277647441970706463427234958332364551813298802413327612517070500787274775864180807129518825335098796825586867748534100898051804678296690710240524755130263581946023153144013002614857125158940692213159587985864900791941192778799992825661908121409670047259439197059318245168252207055816861120975627838238111388269335085855212919423906278417478247428805099668476421767232964797706501739898573999261325838691547642116224885510740287647859386311091066284175991058160841598574058666577904317747681556479835178271816427534672899979064406385235734299581837156582656059346162775486773215787858360033332988819859206867357682576950178306132636318547798779522915755885518752095822703692445065792024077442293093861959803585357242165874645075636150785451033915696060674086699131515131054302046649088213252420219957002596247082070823814178212658576449833128531524529349217233149704919858547939996387146906908836607676023534208520483086644903639356601860761417624108017284372702743521587372985077445067286824464085605578896508785312296176478336049868902246976816154843981291307909576881210250477239609460831059582377079146695411270930545926382161327503040837234002939350347664673424184754646522735181646889396843469489837969214298301974709512502795806880121398616733422151498520722556890428860517068050486643102661526665023532557983361504881075150019122744797385917640697847140401942927378627372071855575892849313511184403090475713924925986230672467325876936373240326677146278129086241901512842583044965465262586760598616676760808537544210127025158056056198030269241659469123976332294563350302802103660288209111401678211863111711162754515558816884390025944673065553536445869506337443199976310530973626612119509322763298005678927302423920856697909260129610453071474960499030529965603059246002165717000657968927961896940210243758068020095426993758052293448172938322247171493263245117111877271615939146337842004516207040154721474442193635495451346330296281753910573872903996200385094791603621650419249695167305191901758464103833355082097088951130714810846190569238804554031478996770335025162127616371053579463670932799894641200803580222156675959203217480558410656597937022364888290410770008079001690089122229490017895011714276281414156607431530080086604014753128200375579372109889975382728076049080157132685614200987974532120268435221097359660596290958258005561587834330977190820639708316845705218637514291821199451368565037420150218877732900613638375239210406476605749964703646695356936507823597196017034810648548034417038966697794757806889434780625202073987116464404084810872999609762701215809023177973174921001265713391941296379975170457155373514549844855084329253790751317093630928784012812063008112521491813332878050343214459480326205283955691816838947727455134626661413365648835255791903881200066226796764669917713596108561236530735522131926060719924191525156836335186924030045817898527182803236611198303176131047022723061117494404997170712485296809663807528058976683684651030966634537261763393200143335314424104723360310286340499996680764835027578209755626990267047338858704489184150026959424529989299446860118619805282942014262045061883759136115686480054897986407622943843992553565562883569447160868665854136102117206742093525475059961286076262203790843375889945638970477767061240404211016487113918943097067327144453703432873382932561993931623343976172692269555148197850745907045572721901272334927564762882215491321782091151204184586766112878221255953312963866129866993340624032695450593037028279360881799421848875557178573475596768475201810151273395477246349882963347424190572838238390052387554758910367315650084835186596641057519106915003822117107346996921259997177593005460393406974123190917965333011131765741995023784603921809595349209750980187529058148077355961718692723879522865479675007673177401110701899262056758452268058761462587273301359572424619659936803245286103869866704924357254988070028151110285291437830024221418430641151365781539692585805647511843156944883726067321967881944174125078412687564492074811358415400687839230960623106035501810113796882863904739204371580747609194100765615894687324204474205336103901168057090106795765663082079589162968609173466566984275447175998843963197571345187576862698518419713146826890011970694856125167370789417893347559830859635884855799871546011498961921007848677543032178068951839592932459068660626086379408514894571779428218773121149195391718201891357676961524652109110953839078499669646036984420636143319321390077116443899525485204617226320733501458151172601352811390459127384469817543246454932607762810420132623129463201236362478547007471350091920737304988089931007827578049248595052388810673099416830740575455756362227277592622497373193894441190363393409208522391664755969578933588330713127456233505187586227579328313439024642534789182223206162175652986625386252728055074161145592653197154290852254459549442588754592272828651330379809434346783021257795825352216603218189611282079740735119338486303966099830965215576389174144299588949615615076676701048123589101424869308765607068125271889775209837258012567344381423259169237969322818432590920666580766185444157691469990368680040232828547725067646373722772493470249237752516702081032898279633060348604764924057190034416057347893486274969386853679362214862058327533842217237218529799278957100344744752385612213594137496560264729588450744093675535552026792583740116966612332885217873854127043697998454979429920134400150877655261502240642521728550640993062666930306474436896037120883633909716845433880341518782650537973834638643929061631533421861099449263389563374772733281617932328483789980845258770769511993713939192980072598397695325855297199982935845842638323368755840813769753127165412226799456566079078634659528375795531618928193368757050866543166127154068808265792463509587303010156126008529889532181307127381300765271415553685076740137839834517183628674279177700913593071037936686333764031028476159874805640560894216806295569091321725805489701258535072170967700887494823321950348610033822493440332881584260546012344721465792933131031904775275074850570663003252285291119517651558435368435472287963285521041706105340626371523690772299436439106143337158497766078815398262990796337103214120227209618656724440743303197514119703559920146940874109783637211729392275824530966701995481673533456933622754434956073831616789270038763549210810088354520707343817818568372029369859020765531915147106964727190543719693434290462363959532880865404176920659990148379233764567001219151987779340466045043074059023508703940892634778667085437205179271002713023740769131817692394855062568115779267432703518383886591863900846812821444200958789994340338504544758799922219317746763204398182042927022614799457950545652039238401725411773229873632229724073872154127860418248923851874117604138221553121573634222710266148780524363275267246309605873274091558243921223428546897984441644850730148697015467760986999338679415287738175451453276305724604603899761835695541778455667076850735173990852452390811449368470662957447360661712739365043851616786649858309065595820590947674889214006725887672808667707981736318882957847318974588282555416050046850817305363841991517239838269648618899916856559136880750030769486602195113488121392803479314201361012607886544572233100102180513509554066830715125135752708469402956167472270445830939087400358968679177941044454016301773558542811501622552365140028316059922214236810897973791081443017300032423153075766201461160874241373304292170142935634456652659233523993743765056901012537799437149261386626507515396341792805999828206755083032799280189555730244245682126545107367335730756926102498643388595225515780265448532035007633595705812374982631479801041829855904623577019548446779332762780578231041956449042702459293951502640621617118402079125527462797457278781466226892841803523323674977771499895440750562401260662219291556315898373302238016293650959132625787296913893438091780258950247932880137534539843721215558925200412482470361183695004112854343504449628948962146321231383355147900613998239689810647488436595765351523562060085636026800570661299010114348740385440378234114064396437682665047673669353828512675785903687936131922332811462477480657368798079398661422487708204806083796078626502616206052712875298018706012326801663828101290968451489460873964495603722428380752289731233895814704673180790509850444456315379183443034140933303505798106007416491379548316115998665952282796003371051996966920342066958016874227049835286030664870719079313194115695042261937239444303923916410478738137167579406252760619563070941105377670190141298703348861352097257781591683489755261179791874298129755827643498828016561686780357577338739355492833516337797990251146776639286609471855993614858240347984338974150654865987093629078234285293505421952563943162432578318854870382827244735439043973532214146093624859430469842017400621260784240112544919401044775800282965007253924953259797413211518609250063272016589742313257949487737853673033208302833614068973817243233112804850691503153062283086162492289061557701315352300955437272791832516247600435914362631195616066840047442012637310706269595510668099587890570691118203729894141213659858434007284378128419007632835747805045752289438017209092160264197682391548684804336648051320282001237884160110608658523200641088428839822275815950840350459995166971870475004241900216163692290410426738366794345884369441739500631127912402044023578254769967078747012417931524068731444234523822703623090385239892245084476268362702815724913131051482382859389897853713613372571714679901074261104591839562248148252682112108937617542846322714039522149902304664325353232458242549408436182139676731873520133926906587537908127176054237685295291241591714325053814896207098880590284312556957357637713023117920191508327454421529227781045146981624937459082226378535541677630789951123859729006152853771018193819862119502674832009557271204550893401037203588073965851315400145493159326824467483381881227427403699046329245987682331386228270568224795730274746252607853814630047682421559294124982542807911927259418579648739485332769399116212619949741407600918350197628037987803470354995030455134515437116431121365423137062877856943828966155759061938698162860621081298593895629833228100286163518096304084995150176755040670916044651503770288108227790693595429319231963374155670168835879155377064445725146809931774997816379870045177777334591311717299694041513910025033880452234737751661367098150561666358842033442642466684199432575584343407920026853534461891771833262886211070306326028880068638472821940886455385430373795049183756837076207840359145043038523267759013433735509085950393222089455618303464745821801599425196424869291303459139774007848643477514304615152185782446384500642809286134659234894704637582105579153563006293314491595931953058010273239761790413233743043606989063956587212153371505880190251233018506862883080276986075233979889516255623399416021187992666240401550319460354494772679477051158413814401647231708114115254385806337341573416271505240818869085838905704744274460681720870121758174962120963162859492697959861663900168322796160885694024688295441319829778646922358237979342997337708011761516094472124362437745609411680948891176236486348386116910083906319413668786259866352813937226580209385801539940178144569173241479819102165238612401249288024757466377413860643118258607553783007128720587312500042392875971840007754878873744465604295328374527511203663033681425196457313197132310913047630895392455261828726033711045923856416349954801296750564732417486358508438233131846205702813737819794995653028482837841057050279440210624781361738411725232587611162750012499893046816898816490085654893729580257667115389021296364491384518341541657089674649999166733223788542313128536225309993510348311212904766539982889134914622352174997951829437724784738214523125155639161395632888094408375913433989318646822897253424256616613670981272089462310954106765150206385533344571329696690918310938078074623912886134835484369285261292947115975874504142183877131988248294831817761387486257292835743237576684816908449072772821207926792317409717068467975286522713306056056206204696328269419692117835417220849496072517081638119464626409556325016267405551321821845022690399344489713603921252979693531289507281859708934009541256629003392459675243356460526523404695255306331728080283385280922227514445824372283938370647057852322798933502981844859633913580143891210210091461728763998924711860028608905019822859770026011514964835203008601451869025091253132869949127800188107983390345082476060603863704939841216334235293592347138422044998963752061771916193805050460299925153049009265769463352099862127206446103310286946332188100136646594388196430358643284247162808536637337034654437470090321352269282956789801289244157176458507631722133367443504794772182778358653559590426709123304859057531836399159146309196143754608179785872445824395865390341876846839011650304958323501568009518668183660434542917923713862472309603839714636537856471506466003489139704845192978527489652313512809739488496307226771408038597117374333289152781632995929974029435305688727875268526460928436773388599574285642452021107549439119589699034186157372385006395368635972309100758652328855327492387613840369217708465731941282469073339936797113041430306917065314481165879480685522967039646657609865987291396156746481720672150179310101060015781041490776871187142156389191655794051325546581885484865688674130170818982997140448354342935638380328482313480321163363929850617167634889859352770045697222350332309925854842420339544438168364581451639636612055634800434863689183858360247248684181293004145902980714048036631001417207558676048544690858078989542339580172512064003510812340964422701183154393458672643066432308591588911856461283908641757740425048144485090383571815300191518060066264356100950447806662071151009045012626604709793321741422349085578367252766019697270906333144330388148546379991186199344091343542599919439000047162534060370323558904464613224334768407439920046535614072593479054406957757548486622537498029171541618732942822073953903841990195219127056155714835311307581086376925500898881734291429216847062420337907955436484841986815281645735902732397221013568346670814623054714609493271819541535784311154927029276187222654443290403535472605897985610345858497163250272036229437508113564352548503603761962335130648696033023418679987768390291042302496310914011920340620478292100831586736874999874639432498793461050509037334107984873780758051493334442094668644660376327128548128128430293045028154447509555981843149348765648136119818868280710887552335326059390914236872481033289382714926836017032188609290470138937856305560022306201861118981241362570805985464913647414158290155889915047179121206254080480848199209022108472137731775970308696448884468071837329421615391265453042534057104357719350345300633032059143294547059016446829220911462983626822031009947210411796099980321857716277832637008861893702882108524846407409525262363472128594488943646721584394791472328121471896096949576881594387050545528623855810272245383710656129052840292765823377115314387846707197770600758802356019415564706710316401162179065557252606143956878844368349883229259774322367163940804527891440633294705266408254375233424148363821643742895732848155050096178248397295818566379089412538631781395209286673617777987446135767659981922438039140010670786083426526334672663950960386168912220589172841320020524135779592753731572916546363174162589426031121756067926371008262315926483286445816698864782209913970498542586295518653202051517685635907680643790176997791269798134477230217810425043248296026380888515806249523015204420138387017153367323707821928256661489060753405624228403250638863251134279623694711069253724513734444940620305764773486356049101240234366730535958831689621038653945861504794072780255217427407430354952870295260025689842492185356419338841452204329906976391860950321451659131279189560412912418548143685396225842693271611422453210028957065324638794392081353477253572012711663999790905248931262748329404097444511050214953360346312017851683647542726247928124726136789134442986755894798426313212463914134681464071811247713624839225169585559438051372123537802591788906174936563644398369744892744593157447588089377410970658979297095977305284434152943305227961265518612150631920543042183015198888659953535948618688103638624445430936212107842967243532441830826249596954930139939530147067007103362636159188969772346506164357302984648027666123849612927714045648075323799292341641592843998211459888777222620153771989754924856982457408312278128002553399852773741547563992577249473552201185204712786343311572852036340343496508138778391768632953981334620413832055889769606782916289098492898650597507071947483553150204662271513267057476850048532062745448005029269289110567266432044308956113354129987023210492004614600436743007329558248595973685170428802261965513247015747185134356262172026141218135441904404384507184572153947932872679297518685646262431947390908767979096324638226276014681389777371699485575000741369396164231940091464142591288366138915086401925435862935114142660989844962562074595837030445567710441868211304751458250041591056104270216697240652588110291360160067533546720351079677702737913746257576364290958508788714073545643191733506107269407553371475016405709409833682003188009315219513161749363120622508975243348271026236315134229037720889226441411353850112857030040658090749931096476087107526676109663747081321209445100657449630797630945432182469113211613986172860201775691404248519099333724832775721901783156688756353877593714370587508513820598922687754157977986364370725653720763042822554615771058540673518194695893841832623817096750363566788780528549351888497148290841195738923791189744176159924786283901721687642080570268580761552251846078418833792592490607063804921568924648631950927405064386874281326465080769939884267750682547527203803196046507614156117256232720416414897628036632636502203895776301932980801934138438535544924625560560846518606433199327454774080446776272252772166264456609313584798409415324847606517632821833526491191343254214527454046039128481609672922523271523965104143879275117446100501902989680935701358634476612131901649856097206896750567784889198380969556787807309638562608981928309340821681115928035169058564326662497633820306649765491851689725362651353372872382532366605644558453730596795793178802857525787275452912769707634373252054756515360484758335566918906246583559157243209517439603574448315883129374808736196573878653269600935431894823633540960173341970219307650503276923777361147631152218586269205294797123170772233038291772609781365179807611440091759641924256951234452914354842437033909368686487410952483759357457914002343571455160747669458465370539478963759841940824487524351544234636304924920142975720190490153104488492876950452031460670343940908460431352646143454052634747983814423766902357533107337554216472490603031638219540671031910889920578758420504513077181797040173294302052590238395351310640773223080343290205658400190442493981146933958387681365476708925888307152122920628141363895600322618737017171555515808317411327911753442415026956348080509000323640952791284718560510842136958382288749116301709932510248318373366399858059044783457311618703988390375742283108830830069446761466081469748285404094734354554594843954347670739824889354235140299283450887343909066635563156167328046313195951373789241044371610500858769367199138708735582470876841546335612575505799153190954418989070267575718682155892246667809405632705526423508624248853670595968191698896720937319374494296068872646485025262252018520024344248197424852641077723476277850250058887923037797519663887358313130573157833418358686697255442003636656542811570461121713270453666982953071560504950498156014733829294483711618134750648575191391249260515281693277467296194946157536865960998647069889077738434375895662230902425077082706042329075474327392750010405505987333266170040778901736662030129427275987038852565286688161679634789606824586408881500602823042584209622595585650004644218037507151429916454364016482391476259259798277331405233697135240111615813379064284610946530786623844180898808416087845248481193453913151641858093548779056091716494478176158293725273033849671273935888334283808761379352830398236713803477937314966173221634977536339363166226234455266407985897296671252284268191863930372686301646174281076896067839136114489828533304024043455628866632351754224997244319733994007001686149145946499289026413795958768307395174930647755401321465878653846530312428551961865953543970571087145443955788993042785590645716894954127459936686138480557557227228693213571097030154774342289836899582444442350020597752102414960939023391054912845642486124200650542126437575063257689312037760519321479170944488773791400336162666821707203857621188148755541052188565425209111163940217800801622695979767289328443343364924496682039635035623702786273297218907760532090673578993074201568147260569982175810048528508941382893324707448472947273965580716035596359217260545248566393820646536767651939456711966993420808479491177112787508144450615381133024098757735686296132704182820601770513471945942517985575198681134279916453588837000255581814373253117491664617541490961463500328921441093837189232036523020888840890645882662240386036813937326412469715382367126317638760610993345336895725900171744555000005535702591010980428077712083020736420061751485468332893535144389191881857699656287139223568051022316827573100458238904223357331922456311603919536316872508508878428224115841020344982578148557210785355653248663478040942646456538377492109553019245164659972264744029325522274018429036342761128766801291607194981799861425842652911050305274125495992549560748716795161400663247507362201649514437196085067825597842830809295913537286909224922516286670631326682083747710840761979156198984801760543611617794846055555769250500735037276608156798752484235958657585254534294148829307163952654831781531297614882926365241778425327169927666183623812382811709597989535930117176806029178842954295108448184023299711008563443236292566003734513094811484571477118276016765323283000234425063832100487274134267251060048363825826256907847527716581412921133329536760194906960735024133898663537016145765283647631155778765902006572215804256821583255000811414333865138756114103934811052699285379488747524288626673153800791994974283305948928809970534831634065311967794334492465984425046605983046387476789938518810780671981042469549217427778519376755582026279522133704657706209924580075977861722344889103591069068360813221717213883676814276543370547289124269434280540447967762381362240305595912354859779764118088583605741617639658964697641793191976371276688701972885878967668090006748917753215688194881380689030042018958208076255936739357301952380911257109881677522412935499585607553027570245057720120145489691550359565407994383491114226531831133154145885322684503482654579280658288122436151242321637153610363208936170443639319790484254926101247265027533445526172627514614489833817891160130522965652435259910146131434216469117306216124784091540234641404056472155300509352283327895086159417065603922708012424701025419325649433677073648595140049420584097510041866091174868359696084320655497949050159634220392529256180405238708077740259431098389938477025247432114266788094212412192952926402227793696197670897247908649512306663467355275125448742972078081856812117615975759157060707185186456014455319607269527053480348171044574360713197495931133611078836976210981293135765417038361820744659243804916668575637046964443157310416539678662553996188392238637444145519996911878900692569412867117821914496374679585175765823948630918631752615447598137503351873042563735333691267644136331197538002919962290513953303254383950359122504995670128313817612817678685801205670108405876839689086969114787291114901096554919803819149884702811106024635809113593977461592028421178531678738306630714222207543985880392511626275152308529678527518592951652253607279268116725042412919131543456720366876902465863076916793824113958033237231698354823922848498945190423685555763158496577555164243484677000658702891456724355960471146183064204113921021040866410284199200837460683637296257187631355243796075292524163872336184024451894795763787279802774979487450731158093033958745996988865093971186107230221330407828719498384965838548697860930166813986973633095474391066819638266429839391368503839534647600907629021825450837618574247511640494796116610452481254294245208081152278721924973645065170726003726302622311355027629447878635295593429904008636695771496280212484135193811159844183602973429337063440192449308134979751425607550395195364588160471513070447099883232189611600280890229508051770659106379890477524091546768840297419476643284142245664440608599452784942880530994358582408099099468165307063159755763585898053495953340169797781396605109831604258644539755909430851131331234393918479994534829107677226075282546103186868343994655942839459352947894169280573035012759775815662999221446998330443005801969600705847796506178561750470146982345873110737049501764230156220006792536557960728377685993539566022298861101744740140432505065656272456544734547648245527450365033205794476077928266100352473196329216764740373483676425542850689851062647499868427025329051776098882086013013442507127099938597041686167926728032968576706331532920426283470764814978799111980362862836997288875298988976214171835785680974575042261330750439030785372581062990300096591831851678840372787640151789296222413852229519099055248871250534601368557411383501469565795630289052179787447997351974860864642647887378026853120883918640961799505776082680718268119587648207638365750573979458031835039447092486936019997502736989084745107813420443779148369941901340274113364031844122608763470143264016700965754255768667905521637479078899786865615402885989182239401902216100116130867664705120823233329237539700321127412798830481538657223048923938347570648947492156332450889831950929728610351482333722064429981742045490399961461782144992728516716014061472437232545967486801520267157890584820611995140589698800214528284652500188330831906843672772828316506494229151410437667482704286351593944186319392648046439436302164704746253867322267571001533069901455735990307019517973229105867978005803267875198283170417873168769308131987374357619826620371654950078376746790325792102093361938381027843038548886927562663044832592973941660709130839697864935031170794903674206210882278015819259368058202006880855539584441813945888352416045806383523916793445744300102039312877016680984261046713204910424256750627834838404602138191443347499349757189646179642094338521743690610871137328250791881258690433785982423376077140691164558740787660979241758787747507933985409068322758255342459311249166118994153556420482623813910200116486149608531969078315835696648685711291883881316351534464416954219360203743281487974642370053418662472117686763676726580285928307229386642185295995295337025218425512370841257168073777602172648781720685108902192182721243283820675226530610079401272710284530751699011006791261318017168809067548961527011116780204121461291981081759119376072221493764967386039682729897296136227055835351155952391858034642753754050209589573624449873841688075791339918283600145583258590845767722155795117891430303111708452018306737512149572229591762680150527647477217132780365819335170872793862349945681452510962298561039340404547112870409192355747744590011722806344011053390943232588185703101366968995883919022844379892334832338539409436839000825780991483036227432232565869341479382666592921233335154679147232862800249232107673758767421971988959415632280099048021565256943124524158292954703439912211848551639463388933655874915292318315456785088599777453730415414152844070808131529163234146158292305114145194418033483298483057973378777061382662037803323369971160632287009618069593065726674599975899698659431767839084732779123136760054629789468325428668028758915109670098585414853787895541640436639008404743900243428480650562029014564126128568031343413052401639887370729909509287795834929115090711501511629564892461777614672696413884574717053837265628974233843369863967541774563708271644827348222908958559879655713722531509442743897267848862417308407883115386641990495996506195209716621419243326432481309350610359403376731738741299592011346434099293611537890801420791890995740484277278202332287737459925850148915781742270575025514557791284250555727108135788990277643808262584675528179002037609621988422065879998349009833034087862394969879067361380833631178171293086958904527533713029968272168597125612625327485528139334810771835336511380640762845140359091547321332481975259607175447358918175636705876830077788625990389971477824427194200044556007243357364040925852950059223083967503510056695061430379343697548330290215677717207889411512065559028076736992347028649331988104294863016664888110575882730640676744289985956493134182957293549947193625383864555902925953964441625538595992061644319174921070593036023198767505518943973268833405142364625415495677108686334097230032794517354918158304511156197437113117741448149000773928187560430358563685975048861364875795859800777415916399558228404701909018516930027767511568412264646409905213023385798017042676172771160019486190255930848625662308212747642031370405951584929585354871816411347626563046435916387348935989307856256707462412088885809414983813431840190921325006220461748258549832188128419613474295775789040548174211462264407583751705318646475212596265067033061758596527980833195528868029289197004649071942853408253208998023699884148606782466141930413481969387195343465566207743746848382328308742214304057179435842558462284082538157024525250571508453497056680030821217497145774526926461169218969486907473570927239339063407875044132670769475523926850711533721290748937919614357750402361553929054643167598163602159923876632777631036474451738513175787013973068075711916403167736122384637371311406352995833847957141728170138143719719888487602297852134975701993773210657688343122581586799042373553260356555320764906118775670819283724400786501654440781653916943911090782747321448294573198691891716859242217521802658166367219483053889000382157886998838505052410780511626614508034856001338158431424785051106442460607271784779030033149401066592566403868294091164982593726069741620386278689876976443849720269848147781535475581973687961506069249766480964895991796596387444159729974024339633893401009628569379432631421146388141632503924179588352362076328967167938680976411442104042364462574177073867475290970213048396545473440384376513528395689989825145300727690016317625090080810787952201923703788050148234304194370148452273719488822396010461371821540794100420877468622923854105972667636060156670499059559165561806532027360174842008650560700096114079930042897444331231501747978341185170767676704545323071697572245653230212505651767586253555649968571271301225362023441698008843648068806391158853415663818825840179323788844860359495983030084274924178068382580775236222243667413111105237226312623317210155899788225003999410368445369539707021214214511282187926454754665085970864296972415315826862629377836565389023154982530725184571687697361297301110042905289813258755141021144546826199091218774343627427456090823631532296468220672644245363628327292802373845370642386066203400027432353854396540643579296801369088562941601308384055103108420699985821440283737058304233580137456015096544806831571793289681994329491539500066360980667381706382360502818912907406054473426645896623260255480766987449633556926097072071281731531944056534464886664712428613533597035640951125453655012442564853295792006435135660793986392731802739277728428841413380752724101748590129090228523660165493024309358914101562299904123805374612980331617815946036302878072675082808775370269186433848469171123387436161770469276411305094443243679467809156072096427657841129382041014479675150750627641367930606891926793585566354561933193556307596112021941600338975072840735519318420451504241571697289820787431352964488746084167797596905741561558181876194188718830061222607354719875990992758873561889224536872229213767781381412967411987827278169121113219392924509278841495834810835913586399155962851535527022818366241710119664080191069748787617629422887866269911295634839601774630082432421283208351110976832229412405587885218425796925805676387519296337103038926951229053268672725399156133021243045599577504358107710377568310535609161858167206614846412246589649551523197885989320006237133305789285076090000356188526984084410333380677261121734097507691636937040121630156234650403959578769078477849547514526453363125756775927767294592309836761953921631362451399822314960246701370325568198451656674757814963715063316125380886383541364601390844541188920152826477479054553161362863731249785631739592783759214654179058719146607160445260457625145060196421388154351557146341738374313409766762204670635507568563600388044018767292718799546586679387968959785280205601571079901016992346550906529608708011498157706725014353342628871812305460714299865257906535779625173195590144717939166487761637477062720355887479457834595846305127908815207759738497412085389273210039107613111868268298277735422509983742860943182490626817293437809720240643344066002270250434658637335807001829116447814003404010604515066053134272830696517818568253559752861646462783476083197459254136284640195441105386269741741930885074079651911200926022582425190147579068465144211257194684206104203393560449291036769989720652956185312886865143552999224515028316357195499722356262095184070080385897790885704166897129134598685355998601959535996373454059245710690118541945528857635132033982060369931791769797316230038412411266422498094896918763986242946271248516835961093676383335761614408698694411515311061920580074824052598451349536693926306822585311061220928273578398529687621097396439565570232493754886028061178276767960347618261328188849787878136744856635762671112750282866619054023847526558284947063146056454436718967539042100172770100638250333891622984800126598972124262674011166614554643060738427543465515151197135479375455536674791108282470853033398248459303484352164752447908368507784691079619562339692995396897452562068224029070927615390988296211115604039556164888140912277888407480641667095352067773080831022163887453453715161781171340589739870280400972854851378550634775023097635148044827093457839740111076140198919945516287356469395818617646186219717882034342131660797665684306114598518634322546596232800596340729528336549030637262189757786014114296334353799263688015558319442963395708195610527017675284311951518189991948417026840386719405482276733286138252093575915877771735784140471830649583665342849926583658455887047592170547530593334064850998170814553901968160236305078353235313198826925893518014261302046885408504629271658759455172462774632065585129246861964385179321377564803161043467250387441119337130069822779755193666212085925709669014871531682231575823471268829299198874823399007172326652403058283696833115177492764251941698006741797768455240443151160626332596028732654969978483010244239889477691697717623874285885767396688438400860840623178935742125121254458659154655009523906944444945621090251989517502395022654103417655722966759040422494668072203443679888189173794811715701677921389350131954854212736121858040534852887018892879127797753956177085264165930822279771270342623801383641331491864937322465798742496481549055554900254980441176748349848529040535555083866004757484245928300528135448134988293559261481106278672596976362054646369892349903696918635452016467718178536053506701820387589558320193539507124987628866944512918746973175621546577738702988664746019125657727667592577938875646201841849667163188443299884773414500829836014984485988045781826981155975586388561964666190853701039545126047647197471228683900245039923969714841186234848867198188002641944520511463616885152754367349089778861732574630035058186733442158968179300917332087893608414873902769202837345945648757926335206674070297047382116589920831636870646723915478668008066512247416134788160727056239620236211567927111318054101893731765634206291073002291859283770536385118879575991888741742040711880653743853960190090880830952862095987441095285441469286940199097142624688012803057736674021608345238542279515547256110141856433266500593274244077763274003268408655499971902413456154655251163616624398638788005873416288226148049590704194936496060035216067985262488482818828334214171183425374945986124680402286031054584683200309382317904364559206457352428350698455301051319862845510750833498353493514760249612637148190597164320931965056829968528118123081230503416454486287115742229384421999130617528932442763321952337142812884509657350340519140473840953748311411377352526275875466440961769921202877030319099049108704918164738141274084965385358145293446160865423532212837546699712595634532555928017162766823217801181597665234821849341603370587136273358017033749530203549053739040925828600887961249074733556047065275497304894095933214667945083352747556873092510227651195871227443361284985555724903354408761478217305310056872794333296027936813249959618344741311611352996468950383803083686470755735442142506506743394357062250253665175144603898133840472569894330187991999570637395712352216716098900413638512660154238144870018699623804917109107360377672413923503682063195893667432699768571426831274294487673658417254828593347441987544640277733107849535413820454205982189563538242321897024323392423544038505725997475173719780786209717478013769941025978216388443368003735308831387354264858001633770369468013452955238871721115942454602170543201242473375473240353040491780796782140828826837854449876900105963337418817237605328217102662481215827854345137528912348920892036947288306932153965228608330979494174024970127674210674794845817945951023524967263553783712703642802002037980729221569808767547534037293475422176857631683487501392619723381249671535878472019109197489331729026701684255680982683130417334555853928345993257505723634810836784143898860226352051579544094122916581128402272573549973736575398183195699475207052412797363467695061555087162101501529750863136179961932439236907985653917519487688153268712541978153162649295844540855948972094439974151540811497999940275202512045972673264253806553646275864132962401546496893980003438908778613718558660543038233891192463222191402239937801451972094068207783315114324863981619336613328903009470884746723846255425796267970178419773853067410497867938248126381020822645909239481524153968802940979585918289973413533224660951882041235787413265469877905953087503521702323748420590518864520685041919848913977956146097037703280208151184320692303006980152088830750179437535416780440954179388359151432587547831028614029389354022845319124798653551311087054221586045354023432242724557956831988253250934948186170170250456494444064927705536920743076813728286740332321273896446692452372300237843066006683128520358886238009435423041716945214140997431722809147255773084475187038293518941645315555991460852705119728829379073081084011098466182933559953514386285922537394709246961436403554483900220884471238352491281473097857794138144084928879628580608957341126505157819739901859383340903261733524782868446344640491193558657413562207795525693880446471450789176736045548001841895219723091615369077105818996803132880085079136139330164421171575508846009942737067140098139934529227981385616142136623783147751224595513740827589608457463449159188473886682005465653135698387254456723526131482332220315098082734606586866375365550227235175824233599942216099154200433466558551277745967220486557507394593792498474547042241315906665255987294730761224348270792464159805631839967535993572964299624728664698805283965418469212808428812014849547142970682489754982021418612930566344104801362257770659412662527415220560513973132163585827514657157446192887069908358238887723282410233580628258623539367030404785714026956296517670828663519691645123338349469503405076707352512770645732275369451695891411212046948281184860669992964497809394275574984459465246789258558200575112277500684412435532848394574484679582297974360311234075155823131358813804138361745929954007661935634784894965176448325032965355606418780305174481994850599560627215086482238672595026708117745670375839788283803206817642640837608144835921467684119727030867619393435541759757576070220395818173305000165386547928242599652671177108275363528496946509816223286584027297120729843533582626936995291930072527018081155433268018612343871668744244255483517919231892726821254047836509376216734880515903329012487896467357773000120555496376415133710697693053790868257265864854429286003487434792632147978242363742393446532524483193574084804059077643940561323725364253296661904537959661491996103890222491699390353200918708408505236267707659088377907829246597885130472369455953333534461065127157274995863764007033133058730866119985584097035058329593087666991501752441964199358197101197134589751856826873800001205018753787030921532400657236880334451077657170359777022441235546636837830629284595627152877824121114012748917280704729348586565409944174202330607417416580647895495817828668351154144137239656083337192746629499917740716243541288823962915566165518764245146370155322204007893354334901131817062549648523011377254888409462111360205567180562307702814334270183865172169407063680356000672209763329528113952010186727388508985679681696227981705412866869029808671515779323655326498066879545665680942397446362013078512633817174440660842134189171524493121296580124308648176535095706156352204051476401620536707681499361897602519471898365905420535570954027748318716193325920897020341132727078607140623738886236112554951204694749290908214391311774487032660528726912084046507040413997404033584359530536547795104726554473885629371546355003821742773961945179139076154863576633943147741847866572724120327484016314385514910711266390304404171768916928750075936797967385490183933681920550407965712412175947003270026021280602258462199285150659907889581922641302417829866667962826958297604049020522621476019882962790324539727644045253615223774546404247261535608844363030798027219344456466125298848685224748240559187524024469119963367927207163760013735006341855762673266356927130713224875140565555187829266265700751679803310030093880079243803518081076521218898266162227386210511355810312144218383661530289144138446801989261314739008053143598028399952361517334759551615388276056696560265133423541549351412343880215103665348414104969979486153210901238544457289625201318481668691390521828586542500285836905301052005078486891119445512239699083759784150615509067765239647498088829576347122977241506762500926896715800021703509031404825270474655608912785154391743094299416197643465903874600909602815206765348762203198995924727707871737393054850267290118244225128677800988516035412772659786157754044123193847480368696619488234063988599761373878807935092792630368397584206400074121461123369074051543909344003699077028624171997555470756747149048960399557678389917054228015705208441425520303127127364954690359863207275984962379699947683979068040189074316573409701991316274833696789459783468531488074706257848535541546148162248952567906161681558080977851614139922364657388538268852797369478626130868736151442959081729875053746696244753148832558935946377566335165832410461650720620631898732633240723000617522622389892424601658749370799205948400620114957364846302411987469314336871247618798837774153021467355794024557136703853577474163205089416427347171777763571765203945543943099401260726505153805413137639429347151003834564652987017196677572489788400127327084394413148817443659996532748320818890266633858597590486161650678425149435694070416430646697634613455798758961642413528313387379099013842777343997211169481242885034731357194141044365257907765936468252022290781871577407865210970772210605803983131152511319053419569538169945533303602616418374974719331077569061434819822664433702220679785421978834799711062612040933948631909139540476284598696748308307631580964449401759852608805437785997324883674588726255202200275377942055767562704359170508645530779557116565696226014681203870657242526937015412704070917007771224163926618959029014795068912971915061508214908909685883056891917815504485221977598507136411767756083497245084837945532003094437362937584108496956228541009091214153840451674021945434348238420815051751597863922456687541872407735530851673707911645026829609790102240170813502277995731283379310359016558026145041266406689363375548958293734218319943687448758802980936074751174643415539172923011597383032480963825155248151077794408756800288396241273587730455699855210765547379276929594241449162587066725511368470434475637959024180665251547520306190661278135018917675541241053909530176988114771055665584407591689396067341254145985308473832464876076850734626576243132163624436170585324014874020053782368634917356149787302284071214568596545180972545887992113964848584273202151592803757564295367923653152407149475604246921352371542482468834979263692517727373674559430266235289526917238811863047720897187789870170190242678063353574530410018186440871327699246776580445423574605681598682554470687780413577467268094741695114426105269359494676825428150552215536275373356420814700161371740220523450991426652829116753620213932957887728318415704450115878071143559206927549025373851702518086866032726796257997576056543274795728843834024227889107955100016199008639706819552800292821344194687804642268578610336083418266944560739421472597179563461382843915903515903608549062743453713599276930784703172083021514861767439560736370279412202697391468816822247952157847610792433153428024516052277840024727574753279464327628633460405849085222415043453524391288180778979817213764097563007558337430844474803429149407746647316891926977691451787191271256931255030636371257453733203000350181044047896296332873280456967663818156662817912532699324877170015671592091627650676140658375726097230634853800648546707034309057536734217400036306332331405195402001947560353979188272088205844502821485072850721955738277143704325418891100033761052242953251470487245422991164573278419311463313690898418269873830695985883507377969532767353601882489977967149874131429068965060513336345638120469120740884383931866858224526807165542408399640522037481546345622213251467447221220078824471529211602834840936983772008097271336049030444723562264690311186889715452893425957467818032139335229720914285361814969198084623930592718227472600579254433829260165266137947094800198346058120980018066479803949191011754275533163398685164961333654295318111148565873038205799800378440111434737658822501949040068681030717434242443635134047636362432299940735856358337538303010350850006888306689569240665451217121153620213876936355298882657342925767800593660109720827086464928225847261196598164042035386611432329338251206109440772753061247522961262261799880610240401700475149421692545531969720183822300967471744734146138986910644470389755645142252269018093616749148412943334302054950911235119580410586846835213748476464792519578737297420871901837297751386587386382207619619741983505903255363906005110373056381330724829102187154136010651504598381684324814284548825381851017668948246397923137245480551203966184342259102232376904415492960640651252023237203123545092053717456105401876347172430653765988832415700671135447157820377342921056012095348564510369020278142776678985792806737000169568031914781455750712118676754165283211008274960649758595751301498551204645082928491023702922808192745409011081005154756500506401931394726479237305850060330975193234865201730252922578030975417315552009134184915349814273900922884059376229074862630178288778497851386145193710055907863227060198206564469814102345174509779103615983402715307081387766392954719301646851758943142190725431312712052333531128513020582714126063606635073955813811594349756664049499427871559504019203464209091950679990688775127087414985570774398786800832640517458398285542861075068063961774001157705598903933902556743049821963534637650542382260408608749969243276697581696043439750381396797893366217046217593947527256803527184581735068475997958664851130163637845824527528841341899788201169193876372513230231351758319827581165020249649699715687054016822504436464072518694945992017715817500298053932740699276777162148467168975030130757362694574945745117604965016332489106018173334041887624133771614175180558860596198099523254516391338096033404044035546052571056911036587545623388937419095065973661270200284645558229885926309111947627074597878787975870388578383457299175846984035964700407655667434415463951189211592125010864362738493127108401748970401640340675881661877936591396085066648932106466351298704443425232660234609382066325073200534581761336406860394506475565381096697742119682347035075273644147157082031566355999593362032816363057364709948767520263766766773459696700055438580070468489245331512943509828914845387367658707209265999701976367974397383371634560047449887828411367397333146623945303680670811186179434682692911998530964535282659290487912816501584164586824847184280943856045711117651440895426846154048867302898861335795695819977833347462263151440541625049852538743823545168171123904398514315752114267293319807704319088460838917328928460210527395536606357272151351982386088804136318684431594164199058914662459241395020417485523074279455933724125459270395520307676910486648635795561500086999316822186824252605831754532928595984452388988526927654490238671046482252706960959422438709943321991921756960280657111743969235510618194845704523068458199137259550289399239863270641975170813922521195454014796155106545370176020489936611884729779104944867668750258216192135635900544451023836319242851334458563072896596220184965344009934481777376837148535477554735608212135598991609610777223489339155887150351105653385991522537218944435904659811615477048584984446789178362255371170675409012382867656980638872097286221569618232680067696500221964463536263653423119342558645298158948570615536033916868087079314389918763048376837653890839425924682505137421599161684224403101129256972254192810779674253513220452245267403692357224032231728437688791508751437932522882109932110765430543160824222834697934684352426197201893761213546001415478932760322320576226922494008097834937306678035991491951844501758693243780243863513770518140711711233221656208512823225211796550357776036275919130596385011023952212429502698138707082391926279613145208748638752128093915655426731977362845671430131476384320799250488797601319460517352785556162492027985250796686512407134868614165086268538959614341916810092687111376293086576845060089711925523364167387647562267083055796718222333971999025259833032510200034320306865158227377742282838615944517181813203468941410014520339590546362224949196637519510743946784110956385840874356676200163650230128602974363452861749946889127020595190182077257111141774209262136327824946521804602795134628392448792512223232364575319915855806077474200741167833373723518481919645827537587699556379120949292301141300365170361883856037133055473587527633098611784814097180954038621306291683163718756535315069824734561303411409129116342069672258773717252360640384051196624980369092835390470772333823493610779138609939634510007165090038296372090862554764764997092235491304990944325608387025786781655406616896669357935773576230085705728932719992461868581146065506841275452062014533262393031287362316890321734665162931765810133261084154183434950677935924058862908084041733647444634694934343939598274070719043719247450401929752253372567128238425054540430800560958234163273698039943454410878600063656931522464326247985004257536804156398458531009338697649032001304355811259918965006502138352060781764207540954737746239360961808951751298321983525118292131914139954160777322693109046161735142591964424951233546775158733468879081749871273868254588961123621298762474949981480217281451439357969136308383857173655070229453336816705864696705075782156652474125146382255997961492106795158391976616120581387318851778739686442603869275030925152351097036004453030357166717814434378638511804025038976285130965057962467996986874371378553472173065435714283836171368279907222798857927390475615667220413549806852617612096285367967623616883030739223616269663153504452322708852903440930895588112431363211570190002419955305845646829289152859633691719163362575925735618575895454053598182540451175428947917877254828892453806300943643553315657789534434746178817936068985104871492462289813135853402170040052876679760516901107341990730676981097342836630134969856473821565681732176098444821780208623606842833555775093335599760099121346691707601189705368099051222923203592846647148187550877566326543816930575196000540528578853881081011501785969260754755001484631229602415602949927428292366222762883415239834455979840044082955852452546689509272681645868332688741380796637659072125913954181177526065446364175712673148989648969755766048404980982791336008597355288488864823596720235766600063807391862677639015938234897816957357841443298905594109866609729753755850172266805506272960784146982178640605113166984198198840271967438542763395794982115065814347747318984941102666880100466134922379528885711100892045956479630568682662542073382127073993639501840996634676949472974466713769802092439912581913726938140149090124519106676365620043167854733585572429215040127580162190775048120825148799249012109398268086496179931460808205444433904401501407187146402114805932110403324035995255751686928458344835408795442575959234819454738158628101915507308561444598419548200298891905891895702945029850744084973187776827476143851111923808642262847921629685045167880309634937060244739864275079035951825811092538299787758019793259957242149255624665194741391031719820750035502024068808150258162578362395588805990930325039332612051029950056880310504535089936213957663950321874288445547119781471691307447084853833723990099776886865285408373922599231687564486750077993952247166151863875122839702912337653042075195121079804356429931331900427266062986281253728060686663567082057631292674524124801519049231430652996779838941468694656848607039064524125384304462993925551035466532773262205899317311048113220209239839035711603768937506485962713223123592926323016146809106516283275045464285114719263760651083935254673986436166190490574133965743134598051419337104013081472959433779264912893750291318816227601584476993986992202611848566995491165965022590251799137132670532710344066139465007775725654003637233911029417150916761284632907154317914642374163827493313271827391778967240542780523699220272681120953601905430487088268042355723297483844752867667591824067740969420192176026208320595147276846716230883106949414315653410993884660713860023369283526417944626991897999599055102946713848016574699189831799591295742747276190618830303741118538934147626441187461305286562405126801019405195187992567259441116177679587076342675874450827294422169843752007055793936651521759676319381280898894407794263472797590825571895362984769358626817349012106193512500056687168218964979465691603364877556291917345890213114144607396410222694137493610533019138096150941405756918420064491778336660250567719712213165835877333869503191257790671575907964655627267147219850204386090321085338713172512771652888309978823020505068829942198173061972422575884954014744744491341080179824468586438990334396056890897802855572905957862754495996705088507919413473864240103927377741235053381651418123572131705837175127246285728313700188400285961467449253801161979345919544670669545219266244730088181257907024817644062826446474300415085004091558428779784802678212965512909282508616933863808474855875873340794865450691486373335586946560554790669148856515277210296381758485996449280268622301983827616887586366875097340711107345669732120714890483521504240473646348073559953947045475824155732330036336066539437157963054513798041464151295724499698791379125460048027781319027954896459740007386859451542888923783108781116793686069714135352752240301828464254896712280908413351358047852627039793997261939312348584226910137137879641614574387009240314601038332188211628005191139605898023877046891856740906551805813396243832686297391021814425372273283275483041324471637277635071524620885918619472805470407199606622823357430109161121793414599723705874715470677474698521056517654733199295755946432462522386893708190675225679956269917534730492596923364687500637373406400366002655231619111880056018390842257698957337538061699745175879378785847574766527019314521459970135231003269643317864599154478478809819033825718253636873504889914178346628043971159317738379669766236244955970563386284566174006188632641124715595925136356126171107985874217172500498055672890678920750989623921103312513038759429346109411666141259979114581525108990573560063359452469082654658318572824135290481680567547760527215962032214771619479032665340810891114684525253618209556903516999028494453798410668825756431417896819352974674149516822967557911491075436883006624609415777614714259377760284366267608810757211684336331060210331903261012376995754853643941037822336002028471052018630369467912710784279196506754019508807297821849645930330727890016067324523683293162827360214762203767995079572880898043803581427504767483977463478443436527248830646040235614683656958300735062370902428378563769705536268796760195740238687410898792844105772501046817812864199180142401899286056893433431929554612578796931221186484269711495647598897401332329012705104426161298668781282250088402313692083995429356643633454784604711861540202250310039115851451365086437236029872746295356822516288138556040696434493321391605705289418681374679381655398103286298025908740637764517618160725768138603920197021771867702598297676495983540744470385977735795614018851898721339170708566828718041795878728089579794923233963706398188763806757523206830634951051915210633694468107330958345601034810231969469085177637742089151896722515326195042693866904828445373223075187838613164881590088445735853231985742125178422666622131637237000630565135218408175224748772457337396166392257803327231499594990445245274643235378100535417802712037251136595380278479329524142076028977267728228414990773479297509437218419831606050819631499330723437565295511414280488094550354869400233409182206310717882559005435066349174367678371303325038025955158289328769214356537207334233921723616511728438071912740701227347174082453240842094056957502142591936649420305351783045150709090098202467919450991926948086198891111009630515509099013182434171136255668097756942198735107299630994611871633455344336392104934835478609426970543088557825656015244476279232489176861969479017157353659049619493980053645654745148034999639487750692286283792689416540870189991751828611920088488224005756839883624159348247908266337234063054446806685001303788405054350501919027753392912235652816697494616267640000482045402872473415202058053630115117729494483186744764051370575895888446084500452365246531738686590898068619497388205291501631116706908632309827122326682226136966803215596331282839232415467181609047416925031503480628734309971722246541011790998604535203169540720234946166987003398872218815003794494412413455487703829780651266936289398558815487336213209249461055949177796933563431689226604512355991827621497809392210360964189998848017063420243948640286453113508439336521676117260146885845626156801505803482978020552960202887080405602948452227767772033967523514031155048762434036765664287285263712740994301473064688577828607462776968811212024697787281894103161512711914753990629323348584140633252120603744480819861949736314243971193967810548775336184922973449767928590099914205381702502200728726098129118493176318757527120722200020925671108958982470420069351371386843141867108644915047719247270002932601748076728383176756311071124161880266233780050549912133478740512257164780268424481595848574866081477925161502956395311923057552056879903948107999052076339839439593457633209835306702550834373863716368604539764184586184137532075483256225755787317284383521047820746827920235004710439154023306731418955534656520432389255806304036903037212441785991399517485920541046964579665551248921639217363960167590525585463797291863817925699607314752628265624130210521884277256889131348156202670485229623192936342018306652289196931978757070981649364547709497846706328242230598824365451418305506462342712949616801661633827918172139501232333723478455852278458004978581248801994378100808249484126087421870462096835608462299289180731732485965869086141330028510891792312182010846792662959218511365810802885530979429238641732534176631201984194500479982936710779471769126571386168708600923810877419236633846712309435863688377825272193339393945892619708282592097244075815772645602463108180845230355191042773421709612001865506530321526854419022950301929711867001362077160476152756363666873636625068002270969666135914527226701454734852797855533098139631088996495936396831759595540512937195322818906777897851122764594957942311746553302047045834893499609278065132957883067935071855715646289790330205844461217981071167389347281578491336062946079099711175662497520365472690471822205227671917423340130527098297803024868899578416234617682276996594340370767758616934494516360154671120463712256295548870777794922199927318153638646480725650419874614391433650711841863923087573646973592413874479934571013517708940269975002665249357922440789978725321634604223848686375618742189398827042684438770923067622826051456239391165273586604460688775415451309034843957917876427226786006037664986475036937867605583079510530154384788753316909636431334106435901850432188949478622877144799262220940920143977113255319400659672472709470139147705016412612224726687342820277931280883740088012460598247194462116586547979530842873741311079017260908274070833293374006547260331742021669487069951917304581151151183004010701364934427520039320211437146132175360171634881048383848607118849073127945333961436480371029590847373705092274602252214748728108108745412486496289021358585386356268496465588708577083562128402935754515209931035452677304131082080553654456295779973842179135613394930943764732165795076819107789066988021175611902334144051416619855074519040839624344345677506380486560024377047967238451198644718024767607135881849376046602697165250243446099761860652423151734533046010713791187722593648869146187799926988739545649416684360332724428767061687991739843212908666208906355887110885886978712605023557115348335843639706238438702221791957789499345675369904545873793170995978006458199038993447521936774540455442881203935277607916693196307421761167716177349690753075455701883652287533672526160406160289060127219101347340843978357619743827894888367264040579480541147428486381286086389098835163731759802983192989775222488319207808853735344211256187240989710081603938577204981240014636312983425218532315079377136126098582377892208370779565960029479156660459935550879217387287170835683524329645355168924253001379265436956251784151730764622008202606609035452000203044707434375494635640125817941166513369689626277938632257440723447808235627612523699979398131943223230342664268610467278079502217735837194736850723060208512777147010193483220306594253596111690008264614979545211667259571513521518382813051694014454637927198493175914939575945720464490097895082983108190642748359680592419386947459058571075467713404634493599905948356973362857630418105038888546543189157813510572852230352714598379020441550532623902603107187550898527304911353713410724875297033169807628742914116428630527981234178991901341082316604462883366302019178287613515180657052243107029755456315477138298229598728062772767783708984651019376445170526674436046696274284748379431688793231647387726035620922791998813629154731279191120378095729674959140959689953232678187851547827464516738793360413117210341837971220310014157684506628123238740791881118525233640547360570001980527112002926820162381398646143610278229824765502471593107440409941287872200770461829394469875016371990792845898199471024223470359760450285063399102380851889328918515558177049777824209592418574905981096510715637422909523405490236962532312975316464334269050269013656482293450816544074043470963289826672121770640815928548922139405073547941417536496932150599039047721527815210894345138702097646061162038206968367276474434465965583513952051423315799208553944675530770465005626183563556772815811845965254744551561600254390967569892647299800241880477933624373303335710515400266196278368803844689223957638325115440823246115984407902387888550635191121609671944822033980511332861811606895751983899822684701848440904398211810315907499803764497171977410776914979245343427056711007156311196644335234161686613535267639737473383683851339750231656956932346599634957769660185296443260366252174990643816540926194893775926879366764046116780579147405858877859787674347239336999483326794911563243271928215609872708201129363933531921681815993963151957416015574008023679137896493667633284306240833171148171542890989449392489798371429406133680982839151453394995592186155161504120528941240084774884306038349864046019722250678160590302616233778833270591760332523723470921535712294011883447413196985268003174518774015401982189317186907314890949865779697371775917038930469323324693901193176320393242745607375049845524748969889600976696366440358703311079311000316960337387473768031230638214562948051181114224636402358186169740465678373877361447891655828602881334568701937965017294027719353552338248884596080411647059679592074861121222749169100632339020210476171016019914828751537346049058690403087160233050815264525785641986714118389524808276848973392599109111206672051987748402372353780715269874334624739115360888090403398251699113354958908966305040809071838235685234179787775693390821941349744950552680022474524230717451486792875952164956357677716181781574107655972231524717889042439373781153554247775620688603065518846993698704265882489676378989129906390305274717967465781844016317358267189471586783322858656680422121548687735564792400618754782371027819346585050912752279537372424610378130037770039156558691024965272750968186613478201900033690094270406993234662808570917373831322369645522499327949269688167681425667561880276823135293011736219925947267960609523769410408299917861289925362262324623714663768415789057622681804545569578467950921033283737675578577634625397321523151478164116150385194481370576772201198878466527694833238153324712535474350848997987015701722013187704149130408362145912486529130892927935463270409042790545099267825531657253828447535833583974209117369479230967935097363484140091168535967091842956828814096768047689974208453124839892376320598611794745849655287132356226639749951056004792515938286329390577954521429029008310070191747970128232626263915752169050312422466902318959853719662954501961760490920809895200991775482056980347644270445712282246120786830982010539459068660601751049525438725505748572478796690517474559358501220388136501006456313192215009719006185297169858896235553631345539660179943141236901133960420149308292925850735986897526948444195806302195701800748115697920355279511008553771387551977470271186443327643382560312294201005949271034670588895673617657936058446375559796735762571430481368698643588589678001722980648513280106435198016284085192147117111362713641386965634380795538113679986874033709478797653540874061487844941463396754131069825528169934096271811173832866288062865228537914559480284493050530863486304124519116015856481588680724920968696106465413228456522748487669200522377728955341657816884566776205566310258194548314878976263453494215078377847021238198798008744160235107040157752570849572270728396032166596926863780327288617622300455166879397825871725719577757744723268546989419165041642822418510257140499844779481836402906725300749170710079145206842746220004447319827914066854845941112872230793463982388455147280154656156764217690086553685008393402574959113725509921964910633126213231935787502750086837467995304209693458774489326928143834098405796266972279850802773857299463151794407674793016654900500395199309549545335709158919853262186043785001630453857964301813386184347736558253511934089025002317623150533032182715801505485096549564922235867529966288947743811396800439464197709760456937650794847583898986173659440118689915334280066529750757356261548090128606491914876347522163294134066142442383960591382192754291498060769149345142936530098366009219565351303191710022189718931203748987708843946281310130230003518253632521443272984922001741664687752945628866176995197953138505161302630881717151346934478803610803656518484633660317165566992624443811421908527792490441732988904023170872925486379678168470511409618212813713249843221697276382709331155880412525192198785144227485729848684036747330506472812343638661504931122357370135886456832197643699348168497161449653270175789262722510904295273273055296288231364581324075287552737357381417229146553547741071665459525481168225799396523220029657579445556364626157615705459186948522881095837310864075721768216738113789609053284349932167264939178968313717915775917978211538145290872319821786556174791049909036089958298210881460885116466492231949169753517515283553660988788069661432784479469067194949443088227386177508696252677979241714850350999261697563180162612867186908012538596293625325826880391294124892936241975631152854962109818248641027291067345771513550128375904810744799970432786558047276167417374865780168440448009719307547543972698756655092539627957113503551865563506817629236311242406138915912820976518769677597330044195863061124063303302540545334904627359811046244557239022193109427758658561007528710687157626046818434473179723765306979340357861736258000015134959807716811706160145839824315655522637741636809392085957844422505799137146902225265649793717763704769551636569209356947895592645297138291844991116761815155735409643209075052442069345369586718930114569522069808852244203050001416652106078903240762078873001562389268928768018423862628898545990706516732610195974584469632164798303068781885466245042863683514148792429627212684558286438529603102426550576632636808718820489770912216663271494469227181211409980604953638183627703579500401391739510683542494030798423917839197107103896942802522714113610928119134251585099906893688023894960849868346717488776123872786521574608577621172439330961376875863426763281579834258722853674794415309101705080297904089666667229571836839899774958010166300248513359268752676679461483160342909652569441624965819583313037140582646459221523847925534774127048059886506636330828629956227532281951858137992525266956108412295014220759311138755768321153280284541233167027947033996512951538779568426151763998940207244080553470280558542910709857661906629193259632608375135210453630850410157210557986200621258143153888870851362098443521901256765915788104149099060694699623357669809822477983783936346075702523302500412992302861867262043682221555678609184424581920803593502937779858019004138302275605247149980949375233156571326462877639093212110442775845065429642198363882077340829879844775419132696325241676913089840317531284888877192951730056696799012933245523343455093496732896836130945714087040806852409959393142725855478898531673614896985398866359131787281240724942063313829062886987316119871064353964136555692612815910691265715778313876399049185107137866420651218083483098178917097031135512528143725153510646875363162495179174837676810957610205955757416071549998939941469786592447386935086540522972446341364371736321266689075874685299771598901014447478768456716107269117036004628177298373625204386419128697836422671270720979622202625489955162559055638274634434761422094555853887641147107013806067646362073486012285273014858214827753339171985439400994861959129977717075746353724563971825080057683250183179696497389673816796127041360574843435836906767727680562110662774920171071787470072624126472622697020747677338785678894767674027040237787689062233499428720794400827578553231534154354369541544420172343948565472945514165666182064163396942380017946543239811321650806549651040329812415537941701905187171235901166272441093525901919889588788776352593069366991318457350093223860472003299517305231134558398032393412662122714822394709332593415133501888595265276586414256117232652203775116817329235478093272586928636405962081434805340181703036301020045072010124573422868206539702884495604239168002722142189025530135531897384168306011285119424903954036148052692811604276528763989728691048280844692302713031558365693558106097274835843023850732179172145559336434508743003302838965240421358641211869726816470680972712567991473498198196460148181354668529458105485852954832847499586265139944835705278825546172957363348141322036548436114088872239380772502108829618214283988747770999227354878907165663015144365144228130773840423582256412595458063750885279970419507350359795464624024911032760424627490903235550999495195007497624841294501080746489126191647520642212668710166002967023977266790033293742024097235695030363775795026382598548408782071544593436126243603571847105545115814521752196097450297216548858584918808758522441988971284939336958515499534820842499149448596130304519649903431820960024302558906748862433183596146332344551444952063192391100085631706822442952072407469173502778326792419101788674346007045099764133080175769132856552157344828269528994017213386405012254146465325714302917476626193576269053705094306877410377483195158487155691543709783747701088798515828175244013445308137523254732907122307216188714063982449757279669728135743503295622894510480866473344275271113015920211780998884331395903182180024120399314641282918897410806378569411654552674922738272556318507933844441911327775078416976407879474417475099205534050540658153028534260415704289581082703048219670548708364427841430578995877260278225972050309412472552811809026953747036448191283578169016768753300273685026564545753298586794045825773841254822750622296497789643296725614197643155138567965395196715396927442119258518968520108774154289479141079405852932064336642975817594003456552249923760982734616927493789355087624096143213686816590407333693369355614967114696723999044861539328764452945182875063337049276131968586954424978171823298761584162470952618822513620556285256680946473710445253630623377841915310685009232782919390589624731894580546749063032921494676765843931573537508303292206037938459882318909444541478301293989358591093700873941892428881520659566068088821687371886419253968514900852817409422798318983183254754292679614586814536217468349640187445892104798587051190124672856904643030546291182666971612488979456829087857518486972269149098129211080692388654524961539347888804672193768276701662160496468342871792391140803877649833444117590128337840631744997078594583051890669564877488437536599596554607666514696784536561223960742155884405180220949301084428167828663216868079576079857344923490805541377286684202873842453375205793200565831476646347894837528294111363399829140424811545844385816603554144454899564540676856511873226540487611470684779232051333286003877045228717867588696552819786683327818207792449707178592146711918990017700615870467895947952566280420308924099544943312536949844098995536966571788479453862752036491466704034596171968830640883411909977666588309334442592157440941177435263668649166554598906495598116799118125429846020166672336481990605186183762568558175591669461712052106481999109222921350746052813190553050051050021859270570362321102046779694926342722482332655238339638927257721191054883424651239259923871541998385594179296549732411522796752692852508429077396974548317119803999454994757292742585052652016118877879790542201670784261899457350047905142249435705250569568133611355873512278602031017641984018124694170431428284979521422689271646219661511111583270432885775087743786387336170226108956748247740633197060823931700668307153268964999318747638437222135633496859942718914436000736860623207168904358658784876291613175178082747240413685512034417441592239112274047419018094310692786185387332767698538393743730747895066057645783896085945895876256623351636353331824466120258324801221856379015920818150507270298036927685063117342117222104097923493174322893957417753595120824628423831477408284268832616273498919095953657112941236975791844406767886978854951322100054863734713139130427212075907157793480485826674042037693322814327140028141073736235897346238674308005107343075429063141938752242238120639021449934079998523775147728027504874935654146126797895468321629141853341113550684446856244147812164515171540684258197038509334076214777611719974476206277894443137023067008797388398166382700816471824127512705207242311234267216323792701142588024791371817035751523567487201471050138349045450590933362250996226625946557729483077933556730965549856809645210942318149416437358147665451132165197314440449054543636055519277921208392989592977850570381854543279878514633676556745635748035154628341511427120137340766361141133821829839059388562423839916602089269662643418851337754694757956621301237953241979933841488102766309820223769217121216813563221944417072272004746038788062687490303506757711634089014150258032920775709321021934644668321214969630088262121395141006190459159164043446278292317532655828276047053056566767824182074610354426608509734586469555097760375356084355687117115182141151588017193863036722222246110538521709686330282780502625611911567688738590527406586369347279833126815744356195074583157429084306793465735241359691130924874077378003296927381591730874908567519036150222836991065026105173216184454962876637735902826895342941939681762940165325149229727754890851033969848100992380730912685523249454975721638549100777791316996205234583410208894319060430915757254069321913657808742089282412097109790538587276616979640100489943507037755295672263640103095422272512683295790041347200599483901028570014382009591591165767528814601119471498999631971896973486098331891605251467478215528770346675848448360235004686641823735423076405574130446503781965516038145060012613635159864497472578326818949534252358423848065270081509613789614629413266130753306089233525569483580349326660733946694332278265277994517595204489342666754074188293428222389806077547671979627500722048864341510010964223942164317917894692381370732110244187168648762138760482156162885207263504467102205540254692636586773562779289701819062562928048484966253330346916572858387146462561621116241613987906110683381690332770847920538316367115274945244471595757358083754207337937445076392942508044389735398007143083760343461313185766572184467498411667829013407087266847350597376523764303688525610886757118174813339996241210247229692434597657788082261221926140449587689797445338150957746689045881144789591642492617457648549562019644828842548107423433969478237866108205056584774466708986713796945559427023047569967675668662287107399894263817349365066174280519418179273715930135009106096074892869184312063515388121843840604297764788070409133468723048005121930539055419749851465543887967521819181705433751975012771738806959356249657420169995595404410172840280307120730544261661652775486682968520790176625437788469637301246936261163729512835464067521302723199318656837565014445916697561251489569798714916326955165080670088518640215275264646998794753949316468131204081376809854669711386040392809390101156203048313814483860621841461870863390927285568907657519222792041870276323476693414116321412975625202938488578618754672924935599176165182841816520613015094084959565084097556429449214166381382215914496633803134559225103904214118830054319250552514747904295344211659774503330754380677838669904380561594684534903183117453118709399748617813037788763751941311973271067640381937563356963579971046258131974173141551965654361835137430838257791123771632678231731503314231791013663369664562979569773831735419316813812857828278753461932374337992384262277637848081671074213822984369083692417863201862056879936575003512212895870033397788118716841053462570956506108879025006049013667756064892540645528121839018113202346482204352015212778848542680570586659717616358404619191492565155097828055594014486917103985093596458247298158544554669288477465218942901717422896020819745219922251822186885200643853127899904309404384286914570286759494358823516688670996278999663047155982235018855614541483108092703790517670300617867848610541755615316701345732569580103004172188641599150759486621619009210756596589210389176302829635619677133209904228483637233802406795280416912348006172452315557805718755280641034658731414019753106466101025086352412380291403574940294632233520214804409667747714404980396910289748803003435303358713013257627542544129212515448011175562168001153678014508698597865735054248458386017717477726311383323685867066177947202308734449497705615287748353478013439618536447904890288237165723531758359377408331307565779082640826917985864478076159984785615146223095262156153621041924053545135749043158850666899012369262319754606899924413560239305418180418582308458648816401071500652089804547459661108437833560152070997711811942491095864311534878791328952714415433517247928130305950718340441675581969931330877172970984334176078686365340606637425286229064419530381164840057735731073896101767825385265532076545269608459850394941443621883131841774109841970731229866423706748484715698664346934341517882025992553156068805396053623033077000030867277896596604182130859189463927324162006872105980453388918361028832732568617021134649225860972636692937253518160201311781717725176661902724137858322668029042059839200701813878818688845017781672534298798865667432191444557985123866626991326499161613688052005587807122311545023074804770942841567812338104474432242851956070294459398073502312068552821569796209039792611915305712910186200542201664247165111967659250511555021892450192103562507862370497255303221437082684322113400047660129001439492558297110312835142173030895895395173601846609639551805402750085662232263356891394162227675683893879414131185796672096624850915501156434473807014981101927689102046535536785568901482999006568055947578524633694134473510328162841618293799685912499178435203656604803967125997507725499630911726659488794188742061092645284524634607152149610211072012218219678735190182208286039901379443451756643656290899141499246501153287143730745363940267036768899667492394644427718375963809884785288051170465735535597338446246208402443141812630486689894388795897507043093817577484247537434567811360410973288467486676518915430401322700532899290822336297542970803161470096294004296419702748586851080117051437698398186364069833375439557124448481697093815118194385977623837514666914818362775930032265310478077096705720493509405041068327418781645084237032840253883711928842328398558968618721207660808429762015450380069585633637846340279464681494014112988390752110092678053020292680452934406157830189831101157401331414756362545418476046240142501476944487708391456342608504609855414372116915635945438115923754995385395541080323876395669413002676666753519049073043782275278903126222714165505429150314837020336030266289575268413035467970816647649638973380615507561443730959103536133989723062636778333529704615444334844466869357190219039539417111389474070125824739034483017312806415406797740537709748645910908131217550252803017026893183682257402981225901698188655346795094182002606796550910194370225536069110118611359648300260726735887515782263065735136025773915469920475044621546930543934885281731414021581788012032665531961642437660854664488942822512159930184868125332266462466839911877749336374090280194153167409625556885917583622887437355956686887665716534312008888153458099355623736583468962156922132044169570332176160357496785650244372749517601448494861516003948684118059068086213529100580764213484699940524195829071105738039283761831400714771494325272886561483432633790107488857952333509300102176712229999794609427683063146971428334188270768093974891721957212134746924390783419980235394225144428424920571432434157118454370150722525430890895302276230709587084229530453941170979337920442981560543162797476010545355950603049748351938980547926798395152805243437856433138795487878813056350593694906076322238965539739230312418244721524129085604490552417961792947198146323958373988703611820169525140133525123384297251659847469385399390971389270982131007391816063970175146568353138220637546599107803689436617705187262658203170880639065713511824855248069645538007544513345226222002314769333307951000863332155492547847581574231888491639635855125008470968369953136271793523386168337641814401151190485231471708514217462250885836747032863195427921359436149096492400334291114967113523646720648167429134509155280026371550779038774731936728058518360711661738396661107631359749746959809589634166526398708243665899982590573967349195188575535120774669120916337665442441278459748309763503933816454552353170213117139680405632946509091094395151796822906011577209976962925619267116284153204401868991799024734966051760913677949824633244510694461400144677208769080421389122762237851301001579339693416437934855725841906988284659785501779506874034127538452295358243489050240532109845182647986671198973022133933578111071623194427332638236465864171192009320493402843793196842968997091850750384078449789187058347170315777422286195503611311355036546601261865094188475288068441390415987048765047429811818048461254811415829964594112775337490184816374783157500035899275054499766051326840944300269927219488803797733121313004798719309902612235012066221674839822082764463139579348088286715498565517913671986193591258231727374060382572362930382688027343030308335141248685191438538530539053841592766630609371186733986258301384724979178474834288289414149004669369973183017181232396232457587627417658122315881661870803411131576092099894263626172354864933170892521081120632798348727126186877424252368527506905826021748293336190349586946002875599026397511529487127252948714280588432873901604355034760646551532013665060923337410899445930254128429668601327651700683980377427238028278635178602072236731218083286312753462607690870598053981782088530760246564301927272938433273150302500825171947412268735927443879780422179733761269212515365885286605777404696084299778681035372291085238938081644833364868130884812979827616280059403276469590041611583689477986961806918624034575827283341286713633061371467621683125114908917899350462060040207413101287302242856097781946021482749046650734351374346260432379581923989294720492020912769184445956267311116812953996079536620198655689568399024636300318606793139719101541545910224275135296527269034122449965530419964599746719867869802166110562693005179913906537287060082691756767948127084373534293410679353503576430088789116145730475258408858151471270679490928416185124819668747126838420487302310867999615403489718887785255678990807162191583191846227481828266223104305120215805589963131171407911563499441915501521305634131180296428306532880233919758242902151490781760214072670473974733671990619200892046325464181340909959540353900477315005643789053599394468429687355283214104657591561396395925974152850375012404485996052041140995111804466355480674224445742225580965617810935095779574112928199263521113775368910556087657332592832848645542970210056892205613822552490449199323916965626107841962669890589308113704477516540028471108267255390818851049317456000288685071526695163230511954441998941758606290152446036663601339842100782801931619082217218741847416087830037877088321457433274870442088791262460512715635757995294293124458857656197006672592605468219867478606602073703001753223617035180995547639838366911383096807394185456926039121957094223488493031345211249912796032201071493758504050751104506616874414366890513654948052961571169810170286098636659725465963947539333430262385072704451905093261118520994930430643754175905517280345822160832344886856561806874885155224495812452012801342084870868052327753847871071617559150084622254029273186015110426801647199204430180992057263292774060027820361286580783897066344962704270892845928740626352887696889942474080260424461180218694534090222360533728248071796882037584020113637244994616494088395255432056042046857763539137052664800667025251831484882454564705670079667960806613352259159439714005532029603763964589972501692754882653369900472797107391558665577199066540506805788382917881145331624094611100422451803029978125853338339295272202754774001607151171435263910195266864558900416488601338202806064579413916141073189875775470818463031611258436449992919547003152462495198065752258561019991649178357758743408505362348996687565057936320423691959343472757259884572538838452301064418492313592724631305762875996640687124190762284878926345970513290023677567660532577203156583033621337903320228059180200314594083563086121892735233535683087296512299667075336464925080714193368586986073210677178634516967360972629697119403104613905484380766547409803300849499948051156937796224230995335182020259644868955510899917314202173703408002576905079793542191681391197837850200980438599206636637937261908740580341201303122760838752412548145036961684401851250336089255816646895360633546261520602981586970185041125877098877229400975181392038637817140855234843365862961030140645601174839702365861001851184946269099043261867744213086703533568132766154204779425600704645443489332968791542270960403287975269161327771293961539238579674612029179888273347442112613381568194235392675734569758564363567799602911933781280112936116990662207985437762823751885774873661051793937619007139023001269189000693019329177991039686501069535812202263932127191767422168985808488144685882006471615394580014609557789644602493053476035787981545811525986338796898633771297133268462915357150323748061011178060751836025800799405240351086486983767207435654694487315562754034169183845948485753875917541547495985362989291583248213554348809768594702099811632030708016595083934299011162265922646170293505070789529215294139871933059531254777729396018960460848605614644773622980467756125244711894915599697959946778606971025568486742239494199095384100720293929112942792658419812766751181389293577356211816404809215031703045905553558144454414551660823404040589083717404719484458220754289350888425825615030252009615701219533509627995936337747373032481943662893337400729549790544919232329126222828384719012662054575271933542478008136902194706967883614630580705363855137069012438744243354503736412190307603510108775769902419087500050905784909635372690666805912599896110389337840247505077911851409750861660685119033591397171053427682188463438211245714104211536393049446029835649741416961220971227620753524142750031265234776005287746121765855462730862259387451880579707988965763916898329161170537598980418744070337139561513931213988744769246242209262532830033267562107665741260843873522678326631864924129700827128036815886108953122059088940856558358410419819622565616597457566098655661901274084735682070243877932153084943456773979784558058584485454769608055084012575660434301366037916246876309937688556836507839772706065799126284057391214762402259032862870782941237930965278819475715801387381617560077304430359401453111334816188455342179122496691477997308616605554254005062863682693372054072721606448650710424277630615737818908972885703894097719233437555153150197825679915655999023184619168221927446289074196465854324745113420105304066446608586819137913016134578046835938531173109730191444669618189494971333212480616628339366542768286494663772702109301169195987539846362339406817358170581097499962508686155501108565565452879907370703882662700000562096095937930401142008688297881601289705985061038630755250428370321295003253031944885249001134326055337929436736144610626564093362212594308828022321077560716478275788697299538674085654381712136987263042588320299462467630961732954776886993344493704445634045127033577732004588319965004166176128333794719559986825361828649471128147740959398620362856714490218863610427848543952227009797817604850887797218527785037537575853925242330679094617244708601620813795623479234177364237992338915684016653925531521148884722165372641104424676521172062604402667319063636666555637783716183380282008293461528669218367538263250859803259060717224256800608351471236622964956306356413425234464504849912133613291781994102189324477984353860088845208107821136663179854839545950592063557994688769472860566694787448688767801348746219336877905918347095911734225271977667616072612159870613634781676681814736777182169792193245947865057562105175980794831834971138283083569639060336265746710448315513563463716214272332381428578036889601021158827746536316012071964366394890868116555603717544919402771271082056262866164304572949740467097963674934477294326100826968113040142485326882792439660123940208486739155749872907209226273108351055445929866565466925872673751234726609844417454797405476559568586309997021575598497404658545857142463662299350304666566932479875175904041356335481285492350559167766951446711569633670675217894980501313496891742038121884477245907318497470055943108825494808557456456074429625636970684753366317722788128336542647699488420938143216308600077148444210888942052209150136070316846934506173623429931593401626654601739593845253554769406206063629579885102336778202917903344444576813698241345051742403014267462071088118263468472861154633493271355347627856632839678670784207877453922741126680683476596015005224064716647832856848027438553994901206394326403394578723621487519148353423757564509850991048243693232075744453190914198916183541979499553442964377195374194523881303975950847813848172706238817690205331971342311936223385890438226876226220322977237743667073744378716287732506304952615132643701345799910887957237329451686873071832274270788688143534874443582290201042881147614115201671004106593529713669188699641098771865275022046303360356107066225738090175055542749578790882911157218975398109667300651360055196476444741473119846570989616552111361703343881063916668911165875248146617512961467366159483906245800361102046374620376513331855524980023221355209888191191780066206529292188071969042508629393041383961204165085307786262363549073015608796960149002684808134371863154630133865168990378911131873500539499216549931254378457458264374261132964492873610074678015987587685127776676191304038773884816219189371390788045819256235821191826266041126886851550183889451448611369879948455560050843211582034482284828678449727082067181631483863942400150324798637771524609570439782163544810915026337550845441988288698243248758699781856801734558363331745305610254946482834989012095721730295057189763556185679874913086349845471078280688621591741512745578751268560097910175024840147744061160923086304467427216703817928085677631086389877295257366664354914916338904300313259596293672009865571474965011616177460847082835286320284040695474153016273682244653695747101991225551325851075635758785657302657066497066081578582575075341713270570866849833979012215949280886911228207235795560032252063518141164413170155993512766776544099209255769712041962830828401502619895090798689610311322364443163755439371686568375466069411340496347115681167522391026984015303993774810208617479589831513150489706783360586777749222616756084789594974736862385173553595283464638853518044050042098036969360428873995972744405427768897658078741131921159812860290139139228530167481155377781835738772050423525310584509609480220620210190155997010322339937065154948611794227514613537668737908355168906877614220909184120149006534100009961793747241802435379291447323998364653596631130202476036861113384260661239346176768713867480166702799324927562716839395655393895887816887844487324381709796413641404274620955093361896180722503673302715860835232078633156875186607779951682189254500634712883623765863040373271393965228786463928404318144139376578865088499469482447317857377465373092262727824230368391358499401503231644181454232092836963725972684178753128960856371122316754573756099395929453058548282653826995388599783054471218742779190460516526919858120890266783336667618323231581622170796855594169197167931674557287784876968769389806830503542621673738245068647508484565818177949756477380979386667468187455248224432489371961144203448644176174121675824746235179259233502395317757017741636024638186681642157150950902525952376710268335710320181805929119828107376299343271967494747530786055409094487526709353236892583684209713457770084019416009069253308822885197034027860371200605704773973628212232769842285734576858083211426742583975652189731994244415534743323097214263385111736621130764512327899120467780767211089891554131624268442642238023396654182292714407710094466105021050923814483156819961695729955331133871964724912913822498920526974211832829200638377141206379374558729435114454107622665573279395293786806004771482747148718976289673545118050185342690531250106225022967258299703005501819546086789996697860189380400987482052144025755624870782353352073832554180333385884592991604334070531898198193082223995938152282195887324807798675409644288986723358014526962936185235418133317614574503980899394573129554185862044998683506683089534307501694011636572518166204150549746560607209760396667716315175268470385357268628097907973080409279320270799268970588707479290781509037379631703512000388417745401343177175736880610485664142732842062250716569765468646039734191171469287546697367938226795225440176735157384254769785121875746124279909736361727830773156054256622828699476328010417588509940182295436053802953930797165870223856034773019877214650226925726306335010545806575511014231431067139836137714553407667663325305048304739483346568536924063138479531636861661036288685661206802401379426580867892579595036363095416091256836283962687522760352670404400657300729804866236369816607471460570511488236674113240605139973030114879248560295061570618569792104260167851639760589808697383012906453050728642227904254248094994815975325789410247412399380965722204490543743263278915734012457245316964134814714796541842563737086270358310049741075544191185204863783871462464528925982179014968591881373590550462511580875554495480627227993347042259547084295791583396229065064816479035100568736144707762282276059850941062280736452539719000628307944218229669894720361295839278601478953813936061345858887610594798276035918787325002871036559624561856663889154139718463422372492357624906786214014824455754159159667905237431460046855387858437068204137834235805501189879032963830138309782523028390138459962193151719097034975224455490295714517131187758814193186604297623754163974980042579062495828397005871140089298959520638274793173076278043378613091827164999482167172994285061837400900546837582287073931802546709049446013781294135993485272657023958691946577005537274524888711748004746686231636082910209865109423823136198468088140571079938930066909734114648813936426977039000364514700962938398789951735543054300742083213411432265308184307155916797466498863270758375583917616480303605038087811508894173283616590232032677474190779826603071895065170344530812049674769023605405775318943712580059592458494795456919653414187013804367703972529933904591421976564394427100609982219690315160566468070831059858944136107964022300138083246636867278017648980196710157322426939420552313046434301418486654799399535633439237815393985005050860169695175776766829374137070188339772454608773082133451588959030874358180026441871067780835864133265297777491331078916074993036004441040003677275059498755839133984284449047147916658309015731811820029957251425334195445823748942079986595366445452294972580640896584477141591753537012086953081798048312861191103374320375831298355762381270204254738691391976939389477902098117666968956727623768585820957925156881165096606934976370461083881626861434077924748127309707299183682394244655831235522981978826036040663476806268249920205925696265793659171952350614773428683588455864298940417369502117391023494414043272139071018723227308954820814949024918627274912942052032075652198895324437715700330532704384836027602951032489228720079464142659910424292436038463935353700440380160487208865511172930243296867581678374479356469866280621504739808761975717600329632326124174749072815636961551899498130613916995629254324755853541122059114519218475583241875715645991082207967471580492938247907581545555159256872843374728012327095986320429883416787904790887876373752235444437256785940874270220162891679096070104315533586077921047082957300110509222182657471808758649105375604107551177355445141903647684531389432070012339566741293486856751056544444965054074794814130290270531605702428574469585264193020851363703895617882994491892044947096725595270114143386822447460223317972222848416339566941304104083372199098005981404386261142309794973983523401243756609117368065396707264316546410625641472829546929637330544691913597927517302348467840871112155588540652894185655926203522191558332833348284289252307505404177421519248903416027407009882799908738488063512742797523463299841553614678506395490448861281438223855521539991391155812064002805932603883177610070889349905246121777452550363233829854334003130267145172473873255385344897890448961180396776091355998562789911105775760225544509281364590963918050491192033271894839621267010152107121018698637123914473504034221515405098544357263766705282043185410767655970653054505486486041726907643139411527438876359256646516088380778910939851943352031333794516113268745490563975292351014425321850438644453996561097577190216837993619498363335382194998762063736589997700055786311678095749526714165541782912830879763673212774091081181122262662805097423399948463892370387201820061893614851874333385366009295944046738186384791019685874167492098025857490975095124370873540927648662414077092153342786493990320086557053906896980768937557398401830026151363198697181789930889531517124659591750068492806000810975727587236721010493454524351828578082647610063039140935644608484320186300896942470981416963523564578986977083751964026834047579511120781480924318826791100810427255528096660327070059971971984198002301554189923695612901604380415185260215525105184017554609551886123132630116269375445142052750835255101646068875681208234392277542134669267968212940813101803954446515137156967274987211140490305502506238825934541902700649830835494641559148468180050635632347095720346494877585385646703121288467486011936349289669199683336993836872704960482810855478666906819148540935420277990846015472361304968837467169939165238211531550047771616465070201494070157539344529683962145623239249663125722653773941455653036629040691192644721162774793372810412728288181750751229459020889519634666725754241204068435626449830058862883461240308306078735461885178518129015093758913635589296683573251085316225244251899667123809049279288855503091584469372879063968389839453515284518723492257487923031253806477698846170294734508313426706568349507474364584458950046365395255433241748248104070445166411362354651978761231372658221774489724785145589213699394153667895457473865619673669729842927049239487530202450796380698988488978654170983789483184003965745073715137437298768555553425350412672764713385040745918327643984385661493180127394645531083291727609606830257639756139804265589677834601588627789263505682407079995662498980536954105805227709086342125040146597738074026979708734231398273871541697803600724328035843641727922418107315733745959758561705563019349279832184673279289178226855121914865806146615269317394737725620926776020259395824945614210817758841491406844956657170948503443178854903754231109366235772415168002731155227743752863852887626734149490233517823085158707543638717431022349023995455736250149240359009426359676155842848929626046772314176741751640798134068553226127253855250049622597492828130508379896599431040351823117002604033581523280929388693665471643501830850644789115595520434840804874500843726492387004072707052625229933150586474519420761169449004391190586057265169374317739858595216524484320678696811063869383099009767710173470456802053587284384857525169804407523641979744309865757135022496670686201752860927465612076649338153618038070980469700110169021391705227187940301661525265843093635521953340643430240209856227549261719945332777527343471754642049912971355543970170712005578644274278561610127943888823786904676433856481593951864036340075794880369249837433497994226905369177855569019891856653850444034094693359472219692068286551661890990424928123721365812469796651048534890525712116580213727681579450927478299176478836720660372316210429915101992591023645414140178206590569356626054417433848923401401644993855227474168641521033508327959185035046490264713619704681609426557905480856010971078253516984664867107308135682819700523451780245063201965998979588112036598281325795071339700520057938617543334799583513941536107589155001421188053852991043510200318749455628855524244052579103916094352774135552618538963618813058058314249358759151875852810521930303975153009398066283110242175449234051826205909106367406832657443222045269648109894549905354281646665607714121583483781806552015418015706421423941971111276299138998694040959695962283346974078663165068615132585344198456084292399873813148004810640099333218802981902098052426434450569626543664371030135569880843978757310505033136238622536105865045346633558179243530404095149312759257590989145046126277201157991672938916523250976954154487650659992987844113256529768796572961235714834574312335755206867713425465376223909646144511665637754532008829236768903722049062026073002433523907876853020591977835452381888133746194119269197630177832669891781887821799514192929065299752554768816992105747319081151705005665460507626583921611638513470535012471828304007418629298312073273519083832763501015428142132468607610365490620263983469768542366947865656824589728493824513661431501680234314579004932994257465743946270404401536511057633120950038600269052677546900387330175469403349987098526962029262358852593131410082519455055726461657439243775652484305857986655343602626839062745550802371658293545738378862966763444326369309739402262004243379532823848436782776808161577322168267816904944779274417326529261234795664258775429787092192727404436081664262839280097529364218898596085227834541181336879318195798657526489767918524054893028401596812129922189636461646145530938589373698606520047370373118412669638767981459162855523349859808109020935632724662474086784258904551989980658439458987960503618306700759166954380445148031644848348143050478586287809278858326609268962587158735277960660608304130593784312393332785991859666825449737412513081935437622989744140442862557418199979500200159421249243690220551809333374715889504595907994845828501934181500008276071959251943918832097356028105694962174605044755497815553007083215968413102844965028832626268819868278550624894224902825852961119784172851242754485070808473772439466730320079582143315818342544094305678219558259692783834702022317206339820966979816553849223942913961570322316476701978186394067637101723893109206042990875493854758402467050389938196298949934562389116395982078408884880419043083898497032715444847232612359267361383332019605785535194340720574776499962373189623428746162615625626571620357323145941946676022937209647155172865170829543604376100991769416083528654785559154173549195968802652167092308611383558700399751896802102111042605739804596286145942205347985655833321737599997752155372359690616348413468881298694766232657831862088761360284843669717057996631220189455266308433735000936932609311627556482888411029611073899308855260945228688911456093995610949013614518957934320373150031097302613431939603541990119275532467092873791572532887164487543745541248332101376285385825355991138826799464567919629355925793742300920607841424246432697069001237814744770105707137776973122685840209343309415727470813596104068464815563230195565800075862397842586243125237299124331068809708216198513405553024632753329489975305955113426966040613826832169710071209094000419121638288513836365478588341498584358514835585979685537292475348267194385172475553293561553882977086853344315979911248507869422062195772547226617720291178904654167474111154921986542365157381444715144797779833902146261238161683591273898042986296642642122414865692372322805432717669873750000580072830917163421914590057708190213009861964363418694419223235172964662271931989389828689778705932693222388770881479350698388702756317933473646224348158723345546207570397949556539494060147491208145977642281681316221154074247295260138195230011414118389674849963590271713499245120105935235258845562651965622023754474881757434831029292268693708338262426580607678470134340136947081812474254220505947028120605422733047408318846528017879666563389030773000310737176705131921547999686766344696145210297571071828365752913946572767183466989721367778453656437624599310092763159414306957441104286048221584173698998583505934109344304397873287819365032909123239720444259759896115544252265348213069404480728430997640973260932540905720046787299112600722579012298567920753060863076244553886572270523492671920734835086919771758454559253523897691008025094866102774474301654769024955496551596001699846888075070631037481099250014021582478893248962703415740736078028453876339468463023850326770603068071477230538006764252872894507163067819833538213888257156407861993890867358715115753867714772704623275734585084557956715378903640057086273727798895631147833238585630819259241780899133494423372845880371710031817620899228957267045484252860797505737818779712006313459435055797719312752912015702493234948971561776253728050799586386003271306295054633861174616799647002059677098131390187268687809243651738613746954316793026820282564142150567032580286521668929461135350708369956264162510696312720576021809640495858254278086057865370276210315292048639052914069128210014105050479492170167553506156972812332536756700828274966797807531489320645635955786878075180682717178598145108953648923212663814758539784142559443552504067496490011262637830523223217115417515163567299923031857421449834718902249335833825092675538059317625685973813542628498705068588472150001610989628677063861043627676460543674557267881067901553219547571710404816487365863402451048837812098984258308773136492061442442016359378730301381566249594055635632969351689595182282728112723647499179425366767686411952111733160658999993938106905382062164807402170856724759223248192257294378322407404455566110542449727032394786782514969444993672095321980269701279950039102003975461329587232675805785059596455948885702578076517728422226323508250463394728333415277147365651338514684367147192641874120389442704996740469277763680668815458658853390741883348339088621176397424194780734455535943620309715172232646213845940445852811502175189567578235947045900946326820962486080083349582119735370350173651276611295862082514674825194163720955998882432286840345750470063146591431800597773594128515306096777934835684450622940255520557122729183913591673865807681934349935736651583109837810119693201656394397702918432807171172173643530951877028501798045081513609854272978651668894621967349205011066669841684811941713231589435482827207351028987705844186396266069877918827853127529405631208796044199374248366417538301252178585932896198993027824619805537510304978050864679048630562162336192657480095998954329784483120395218127587295974712856739720459796255483525130888446110288784997350127942323696617280910236008187055083624660445160750202652039381531773595964899561585575210663679130835799901017038921382755723542906371947725090935709401633073357343576786403033190423979166712651252918639927442275531280651375476561617658912298236649829901989054659003404479827609025494466902552727182612014403570333237246740952201587676925156098715676888071301088494126162263729251604249619278736160776568174928738715878081821533191844948506081965742733698908767633307990936866540466867781487702269996102551640957666789477143696525291963375143305118791451801809646666592930193115005007425456508998139766467584376785182902816580892768965319097734765162424829543775245152409581843709848245163635861483177936187971649872769669492525508312910856247658467231029931966484268243608958168608305157400384201873025429121494028687350796426444807499827770825200968836867813217350986473370681091360715059078443213142836028873263828889470160771620962456947970062582664368656105470675280329317492707353335183408977058564978629143200407907102040290106380294301640480921996231415251605732703309727113590920324279731224024449362797442794712243771500164668286725011180934989824038139742969328627425347561918073367002979393519629546633608918024898686018546776579380239950140990641867761371191351728854626019020513941867909511168830530658435974020637337114960297112028602649487373150127011141951988976326874310182712774584801289328449690904365928463947052521844438551271345666344954592296795947910478793134432646039416659801081501355478974251546268930221122433048236324312364262184945265564762131604357351343734833440864651323228783681448815944130764344865014236018692945574388486667135793777276123854431791209228506045039873935353173697203427711422509864009607347329850164356959623721775859064445300438201187290365845357726072661233799650309975934890772392235669483706041863483724542287284089494567933733863874919981152610183072282833672852913576361821637291090087017648177560154996222247420379045786168625736481827824706538764488607513234850524521460839573163309618929157454596795595572520274296633853990293164933839239800244524902178236583648548300928835769680204745672593742639249199471486578256008674058294592867477169219337626735107467655590130115911794036395708028524430900982658890193607523856846194608428515708395437555531952418681772458546622492473124347781797150747776667578189946985112926876029714648073351579542996618427350661625856785342221897994105005489653374132699701206097458340000327380330155052365516295234074673810954356679457861896753717904497388324738428403717853931440526224935474788946200562115129696720261250071586995420254838335413016848775263439316735591909975324650694438947542757865724109595355501208595154790079723811700586859698573341860473343928886028985344804187304943576739037579559271621926674855894730867786824624811611612750306775301253435544012242253551315267771765084962247630373206652761808554716455904656452512891790716081751440192799711692253370042745511129277031833572844581019356168405496738378246004410913772552922259903676109969888832110987174678712851477669541790985837965753189133160109236269976094779650928928500871053885779638536586024669788340895254082453676158001929846655271618735290157929335382574122861813703450392495019049184842348369651248090742115155828787893844991155931548448759765505812138181467140365316308407546973782264702963114723397489118054815913165189683920370266809896892091132468137164567656269000142938559041165912590249871852807744688304325606854123817437298884614387020563198588606180848351449125792309019705946249807490662633314508808950822819360005617969198837056494503630923904466474913077481428548083138253470531692056006713639640434595244551976391936645226633929546787365595771115834617393816280981554055889075753485648272915187525885066992553384203897402672582671784675664466309395125852982488785607528616995633977609978143340045295573869003130868240275045246812997758337146385272561469970517863752354372398253612583490148510934159312513635307585068086667016874319330588096292609843021306321031781579672872276257593156533050446591553114170649531762322837987565518197451350099944960836465764781552149182810463024712650763601830189196884349383679147252045137209796601891996283909560144676852007421839282675552824021251102636855070119140329063429301043824210216004403685708550520314302081904802794176795918774287596696434602205331402487855601412899528169013008964878329829813384485407450376539056092817226277762915751830296073247647485099749149269371323085755014402911572575047808546213506961547984262526179937626768212419542807876415981374849341802469177312937872904052883577717086717717395954529256923990879904835520598982254053826833363680899407420168380730629282281663301199211404297574174668582942608047441517158712433823968831881263702038654089745183296452096015743033721107889991707376848201906406042391364280983198640479059793667572138804955633083012668712930953729274687898511318042773478400107916758357303932330712117376457375333102989683304074674106866665919638381178323409991564427677352161916990072587673350729702134395561892470967679851418541815086629684785582612852751877764390744078373165840590763393389127095034942972137109849095952667987875091001164347029671345484422383914234093714596144872034978733001080126745434428289583733583790275454266957922063366575011281149575774519125994784929025706848314911018393725178270086008708872553463881213425980790602518389503285241784221265605476470224929154365919626061781557439153906308899326972192356444382465776154279866088372096480137332734263878986400812947554163901663649513778505137263389249347000242961997350513991691010796984287602396164112932012572734449685386257081169870296480615606085185007238891372770750662153377218827530637256399203540777622425090477342515134882184142593123503834791901579798973158937941327938533598707981694159669661701747108324882546395530995657197529304546830357108552619489191844273165904052254151888266982035859633683458101968279665172307694204559402233429726657964400531027001915599017843464439087375084006578726183147159013887213616597381871068966119633913946368702350727334166248782244426180485431696589733891667202070381305129548595816253863055673132438101633212587673001124090075505786735292852738323712436636497123808497019647173525566863096002209029932912361438086144477433889534650416501837333123849098148458024422000032754096811088266258755712688791665864988836133354692568580111877528742132836586310140768282710425955994429713215677485262391362558808903575683867645390706994374992794097807001156998625771787225225597616606358947005334120362532363581091251426674619316324465824125853834990745567642819874063138032884367904337148123595478818051172046638933069385513927427077585390898554733389752612668940600308648156630473008547899364038265095384593076404586221267152728506489859384188784145097878845237025537769690649960418775257573413833076494410736306426350838043715292656891322344241602252502051644317001077639236828521649348849349637743048826098551335170796025591172080779325874828973442285707661275322654306626015149156074483302474915752070991964556248518063271600845739136486811515302377758533887774697785665265030139135416697509793901143687382365957598240266794826613162504796170853902224813786594177044950645090282889019317192600705300031535595826576746582325182012587765133706456219729590208663434327777924257953886271847372621573912261833671791970805847613239861606178630801514356095532966984859000636462773670316509641573466679593392776397951727222808367901202621128125207711024072579858134214431178367779296834368720710873037112600932076358906562953441606916477684107291831129167702252480735511671142225814495069604771308397672917257649797718461517973718303716715887857415223720081558686134982963213616564545003496934418329952266781728225177023303340789633577741364575412628961584091545416354026283533268032969379217125905808205033846489705771436224968412374556644512083707848223205720885257797616167913255761462218096862657911133336425068004034983128470444966121917981236512192267256772330858156115906874993047314776901857348116389794179991548741419302352455045041709630538197282729400122610480677179824743426560619354196406155485823226656066174296875050633367387104543600444720580355448933153820448481712881627197011887587046290894781859104443288318788472187329000243565799958721377053837961259953115475591315541090704056850154755716556959228092004163336184319795224189192704182410182265957321095740771039784948497452744156663984821425620001079908694978749723386592583185106585256048012778240825569932441476217957263795980394193695720583843910018962967774485914201329160219591870852355790167794690704566755022628100286645099507735003189409060295376340050408025444627996471383460728050473882361410516671880130617084257225876910809987664102032644439557063515909240450169138739464566647489372905970123890514257435946705881919165480363716385730938395709044289024743892470092233723501294178900833575043032384358050727299862824344970867311046675024918094129881937684758558629634706388169307329651820078115567557654258564507018078977138982482407748733889322269097643611656664749460447591653358060846380865535763110984368899433697812145601553148574434726455641190686190412547689193607933527868309078090073129513281447765591265486643787276539495646264110119407287753831717381879188258871907466971724580311700090982765476896950751757022822111534376202045322690995668412124044560626922452387502515253446166498877490097963774162288482113853818742650298347357236872802631431386848621972915963508577755659184532068692834666078546194117574973294180233092928050131252145307467524936887192415493585525792972845695805355496164071025536220873305092334186809344872890635513065779805136720108176020518276712574385189955970182166068439778929801255617688112766044991373140570685194820915547923865660177939725034354557821341161361639825907416233254413520139247603030672565221925919341980931164902648216144658443184523020661985033022851715063770342074309020824105791526331308451822658771683183716810444787358300705269244064766277059224696028179212734765865565218683325635373653012918456224465404896808046429395011855330108574010239510169067040613414236348204727470584841238708306253040536049396775159049338951015471896308202382362000914626019756976033593512532949774587842633481170153543299997416192396621781228085565216809237986329371723937417820245851979511873703114112528781424538887916042057814942665814543615132957206371371099468245381253311132720653432951736815052965056144803845438648054274422481618515212234769731938032032373876948205111907167511309602037144955150972566343291412780071203399135143758152022601432625054968024122345256873361330941856605265727356501793756762294447687446424248009516087856219393283616659950435825355978673769864493166717438035869102229095429564155303571127499168015121642118570633334624816761135380493590092101272209450953261891850052410130061161643562985535555647753679242289971593797030953530233341996463026692495528075103181285583203949933330099799088555820266928978687180032913174033112242083923317340315086114768954130797897097607545052196826053232168504131776301247111325153266430606755035875375223497234807880592163088814075882381732823163287012279428889424123281371963282043675293135187736110838652825896718534492755082432150706066182753841413652197333575263687819990256996298206160777021557263339776516933363160150803050514087102265728720369551272122184553830670343272921200225663246955395595375798714819221712545149858792016410883960619548043570460927423619715944569140949789292911714925254881063335020037710762084276239849502859583783372169493596800467765907024196903953869391068089003881192786401195098407392504507689812809255612287990062173511981856619705828295832067521796718254285512247490639926786119857363400742282048891100418086010263239480252248879097533728903966799022581625253092350192915278917946203390968221053939640528923786224667973138649534979562885639459194126488603315056598065977777917295703637859910789314327759899720393696439173038434525255165838460375210922330318212693167883831801867277443047067383075945202197329073574173575559736235505643521221659382448838530271039454805090495795052345608767272051247810494426228500228476557110884503103383981236394174759297994031020510979271398674480916326291593228539013017498435949224419739698422310264010934064946178906308596832010930958205304338523357050065404902663170381423807908063978802707624384626321131639564801831736234180061871130123967929866671031373737222114074243123693270990296878062238262026456625854625204953533128193709383048448770197054567308157514787436359480545171089964785815678449887550754633528139610588314948942958784177740889338351157225974750482645761464860245164508857139698622373546056603415609136999991500304112745378937914875229383405450182423039992915627071163218482714959934463586741494019423012307498461869182678067107827845855329772992486311014210459270898414228628567528459213284504164016992208603339683007879875717232004977515273082982002929003289727199378402622457687739942325681872827993441995750711582200917649136298481734043811392207983143681576055766773825332941450736584847162541665797718586734755669843528766041816898943000721909589609609232664539876190175625494381221630223061912222566235586471986417936195997573697826655533130141135806072828811649228368750132719591755288320565320258323887216800937797525203965599353331533407503631671155391115098697411900027932665257959803792558093913882806516369250323100376171227068706278293398075039681620208582073825977373575863829964420020187108747764180994093673788740645225040740434055905328159427391236356677427967171498114077622611286622833010299119065953201602834838639061241194200345422992427656376733982280419680271368289403114896357892958334492543056231054397213904706355281375531617252126334479019800684716915460939516502195974144479897742551762688199418062941627761808254656770988448468181235708713116531187631212270123494765333818661832343399531035614084122084768327548441054956283573507945779058888599647562033222393702840286740911738964674831466505402657435215120562520557848547449443865455484769148183258139971371773205214601764359704683898267785100085470093982975083295148609320566009678152462657216799451037857094834141903994823140318499950363613420429601238993490733693984200149803016143397774059299442609879252709057946677119270351496052850083470840592573945766912571341461512371815534266225456965465699952599515978996376555985966408134128316911775422809906917960586811808035553367380583380613036090980244494046655532161399041075793543052202902379580126605047571548160191159084484315558720240338809895921316702444819363813505258580178347399233069731717142479034450440349026311623850610381948586356389375822203528640138860460658858606011411644529808880179870063943284892521563883857302289642228630786661544225780236098022276872115966580972401141535285492776152194380633160934801573586776561467756917201463180230995843099220376650475066134484552096296255642962964034354941633377820404120420509862714490919226112763444348587391491676010658512750831247087760145846774180842293022484396234019358164424517992317920320407996554996284947391539826268890071612639561403629681141259330607177611095082684897722074490083185797237549582865963368908406962651137309225183186682855810321575673027899799659020590374330059115469847127829841253597806489261937896769752618745502899117131823470377921413484957200085537961395367939410934780239253555474910105876100009336162891323215881624672027839508889486125640438847324206694629919705598970105436274243821251016976134548859886655829415544884973177766380064260679035464483655497346510204192263766412468884484630679007087520718737256163982246816806736199372376240603415321125592961390420538801412555792802566842690957313384356632783341811174363111629578703762613786240354402031169093559590602541602578959558856915343724874926610726815865731538710372176568507058786723667357228766179464987973139083707470896633543049752049120775925827579916374656377296418094062650920389070395635600780173069335193123215315140749991104028791445990005758657609560282619686501181286253414840510383759638772487293584310957317098370120556984755994478768879587051363899938137525744414782415567163907766422677756500794189081701559285207654200046152256870514983257737721197003218216311241453065238192353924799966702854223932525737505413950954483981359560337018356136222395604526444365675724748550279142997126741716670538050036899899242224960820794900094529544017164171449411681404971230503842585025429925433786118116365317572239623913859589583546553496284209296407710080565010069864981050416457301122701608113424822136843619331540415860882214923585575251242545824187926577678266611331080540928516681395360236736737065047815761507087309142860619603148261093291046213301238485758601941946533967944788602927675890539517607652500606561520995809994110115548555714468389949383744973110427635701013457943727425534415298015640163672032233731537016701179293356106434337926770126374404787134135962398723393020500893526653816952551675070185553924225737685105380763514879215700174485777209197178307469187259296559762691903567008370330260110500273139676507021002457164971214345410302762892097620732281140260657205852254197765059269659313582390196962588819905756483969651249213984854418608397296052466887951896172919882716488043990481390792680576250340326681889489571052574359962816865938756089872574181619542806651376011836083946743435492184446410749574013291866769930828856858816140195631265248399410900372546385549931900482859044379601264894343642464644670848272969752117681132969612694928125517632753030619502626541345448162196436806574703109250485115647468153420311577958489504005413156321358203725677062617051642140981167716376841974684883164788711551391438799409551637944417945847029171991674125878872517584412069438535593948388520836839267359890477468428124587847691001911905144131150823868106275930144456939567013725318165952961119336732490910033548979818112773279786561542093282966801725011308467285388499208104740256522750232505014437524570266141127963080750260965166449135404104815368000383965736861698760599506539887093090534208767753010100642490946763933315860826827261345663238806011705869486794869986701750571188838156161320652693101299678045871457171257298633936414202212960792033919507748556165428634718071221856361498284071505062472967155782350109893932519294382537975452623395101774841789678239348715296515142682130221653758868951147342669419614605483514709832522103090958773182565152660578601372843741040435726177364978778151783699671732532886386553021219510017597954957029037706456320064671568960134531115519389063866431991773815539457862202310128712642151270923268754072539450364419918795364794989972009696555053702925574626797713237545275201145708168334393224135393333739081495328186637188907961291497392666347680015113427693785203431790545537385413217677597839045525287776909978626851339621549912663949999528448953843716083957937447968861211769562367650632585778002607037515412109480687783032033975966661919496299707230839702071432306867242113028962345901000907695046957043700995658791287416148516203667437951132520783780207937881988683357777372991037197398392201118602264700883441836280917372932851229410515725556148504836145375959359266952213224082993885937621659206541677853723681274760324168731896192271976792956699604874428907566127415294187128738420220565329882328955436878433630751990999059000367467585330416493824125804173810036560956752043146801696824601208616071110971493203497141537914755257351531681581839457218641296216812558649790848331184016083354114160487203349449518915538099601816218456685584279533710262874753684304266036797164227407623422748087974962876765492706719951611825256348096066675623104890707454741103233779779574819931204601794315630646228284789975669826680697747642464519893679390600565738936043000556252611024755639360077863558013300583166099132414234658381067461596328745108847576230223193891789161563416451309723699695311876045290659813336951410339252173779525302030880114301905540568763309733394637614109140873999984291862217448218973244455158983238946379255215819863455226505272125424447876899350267500084968014244701006026213002072410687128933754959186294558451421423597830245747382996744879714277693174680639216681279735722764586035094747629655790173675216870614512260641621340935032426168944879312483690823466272007859392905383359826386177706069306167513119300819420653274302237595052727041746044702454532145190966219659828981035440253458889893374070877308599133648153132910166381867212447895377445430369618044608365763253125913278197215440734361305970390090597818590545948350239581032049751195174490903078160283627313839261267035523139672936069239153948488561959796757222940453654666045620631979936727250057865370357643022217949431258631244278074322371966040778956023365049294708354322947742383421491739412180939785717391169768234854096702775151281024323405712108964476257618302123796641416058664872071123408174037512521083309056631970416042817324845906161462616297318961607928510735685839046010828533167148913679614767866529061736775595821560175326103700442073117857089113732372062877228433663136264051580070681118790907399882782887968590271120002543133833186732705455326151226867077340487898814911202267654011844341155666172111928048463817776495344546004413328023542555027263734538448624043641595820583724548181414489473700389754351207717430600060620131788572179943446212773035807272144113300324692739044296410639353374850608317596219069751973272681847477683593689040669795917701168781156491659136314499688913557085934204367136179026635424522748313151536556445613847902882583601206626765699877231437477557074547228378815694971800099673126140036639734453046449075216615502310839981652414847595082000231655681264286392035324452339830723623654601411980950985212565022049164850793218026420367139558521658219401240751422280477452337400293742787681769086617171269885124070203091932960856242923014532074605936682960046321624074777317308548235266023581082027021645273651299582882722768131259286853344712125514645315812226903302841502369006706136635323310334116047943809734758085644587780964319246130359718191762095243987413834768695947726310212983087458647767861375237967997166481000240760844448620217678413839320430315367150525436108560930619529278606222486547661232722650526160870368034450723066297289595835493218766687040221611573408875604725249787262361250213689552362945808759008721794166057117645849392975625773380450384483712452928706638281825093261747609718147164771723024131366265692334222028508659877633768667281535113949839784535040291629361765104314970386843191353216017609454150990073173660189271910814870384702980899901216654903297055638899046129098399432648631741115452421425085022787645315116058174823315503114804179755051856732568440483186199536157257018545252798139145752174681316407096959829811023231353131388030672137914552973050446575745358025822828014690629437291801548327193677994051084119527854557331616042997537152775872033347318761509613104874492825613012399645340221221073803750477679616507809187422494529288746615100283935671591530424152181024655800360677515320676454912844388835725183780504890482103250038028516970290706663521080567433636551906658443635347423868392713599587862528595952520137930250186314796696337811347733829363272046215892362929694993997687691937385639071937162720169694255684189434471124920466511072755629822481166674690748229690706855014093693691698418246152697945512750030208437548641039850138752451526101620348579422884759793740468910869798295201827152944947575041000686802918286837920552434389602289509523791158918701705539910512277413930433318309808742506595792833523798025939212981642556157582244656152257845363927161505030207042006697540544025060948722547679242179532754541637357351698248495851236153796606424012073517563525846806026911878423500000900297787600049717143566254688195731598644402524381941888170507260552038586925373195844558524868381132104694627890938264396329290882707609603656238746044563422030015181652805127361755572000968068753305635985435830868907060848891815340551850918903417109991639885010130423366393364258806576738036768738438298288990821936047478506737712525112867334961669267312529733246258076806030705704564042453608371643037053971738640802502174105095506773464650028771242299861862999586967634005241478989379081296489280653035181127795054128005427175301864110655988694489387451808643918120313421400283372836930138242883764915456185730666099621206186189284511646044620368682483344170825299534067410979785290481115907564597335127979409308009890995792466333030555182092299488393173233928328621556374499138827554463218346476527282125339359779814507718704745314709507539605991005768258337330281503344694548227295352545914779944232361469658152359878014514267555950161985725579672350897136152819908043967854366177338514131866358486661435738859838724993075583310635105177948829022579457600384161098277580046866814759521343163624834994142676814387524565433126487942205012526854119922493591176181606505383463035252189562478650383861447185903866187726136451058551480332486496302809480261366950076033081730546855072187908885622381795256559447771299531383914953258811494533218748616322163777180706600954897574695857439161811667367224781263141822813303227750161547023494495155870237216076898517967974200187664204047022224968738373059269231143829884151014456875423561564869486334853077552667850352504688016074075214298060819568694364185770467739750835557517563538038384820529571846331814840422346050478255005225532825291584118510871238571231548777824043663584370068242199057843500935863593132220310466556201750389887186098819839819234924302564227184394409401646628324838997755860231133171937324704704947894686904635453248443324814796784449346613483670849075388250116133032799399683496846234321022648952693243224976019162646106763328845959238070442864048917873617170131241916217890751914071478505640714609371871500540899686200849047943966595265350708787212664714524883560411254768973535826283283614853851385690518675240238245551550952454621368585990118525119991707941348144996186306984085016321909495723401989967783221503267217983311431384727240844910730439138502805409482179438676842623939955488654001992828639103863967804121661074756144537699556942289677233376310198401371371243676270619245640905661436547969240277098750420438029821669459359326653507103966652793666010690954058714200178286140762241412899946105125698941873661788080803803153218532171856102531993721549891517904716044239910797147199135635586618034070207823299880421904148934044982779830810590882485942427056564571702771019630727231670656579204914584696236927116320284084013276312352357411275437415346261762556919834658440635645897179430634358604297973990680676102865318582703947201357312941180504155611252670109977230205320512605385590832538781210591576159111518276873084796744510566385954257361521047368802626209438811234962044272072765987644600858195782640388240803562101344281102969301924408585313072818171189924711650808462840885402268289185481830311190958532836696840565942929544911756321168403610107129032587856755653231548012895067849400059479242371024036972662797546461032282600538394514452101350023221960248652996835075139806196527680493590912313182397889659890088352179904840436599988799308496011534965752492618880248600559086275864180680935563066808895552770039755457538654548550687634837851840483616209939474169020268065016896313526102124922969479891664274606180016353264921988866193100265301926961888912043435022427414859152113320260069587329382420231225796488552187251696208816490560692005139757200588889426100456209766969775944391663637674391080982312384452281491045013420230915044254307626452181820846837964954465417051987037337807261767057966739890311986006864672254056554351483486030594287700111349587359981454262336936765757196926169798564334792684606570509115734381810299455444558712163334686131066961195303250334444964169010994629184227920408694549716185055303694973972607103047797788849656047928378730700015938978087384412375611202644104938427232065923840903909338408630670712501788130898989858697744130545044352759496688733683837609276201341596429726529945796357768681676730276318354261845403299788088432559787739173431566778305738353551875245939328082258449981442253360494695719011945417479355005633699133766978211005185423311450822902127300501249590990517408039937612863022497331266203461774751330206643819494300842838588282428847511724898457417602069521662890152704287423836443824490608290493318727043031323934276821954915748505307948333244480939932480559289826904241425376004057623662598285167119014178560937284527565271780683884767231400386814070598951481494861007606209582745004672441760888442692127676308095445934901731104889249072941663618940582255584633466819458585363920103085658603750959856113835395581496400263513125470892591765606311640617803926746237727278538542965996174303924599290672998558011024524493745252089222504709829992134789792520159955651306611140906704159501023455516276371938085452305712220075584822829533853243552794766169435474700567143567204563905987591832935377954288127555678830692492731734811962941862912341700052962473031307104276629662370124497330037927576607052829368591529380156409481300396062295471070260681813862725749686666030457255144533437762277525181721995119332358364134244567218578356607172479786861598959395574074944828156653005497077846887122763564155622921621312597351833783902474903683010747734835679953200200338064106554879065803423443526816901635015035909878550647248662362048327526583605544054008629407750094405239071976939915506651811601112571351673666858663229823652000261602762507213299504123598506601070060010176328004074668115637619191070381512742441063291906497660422711923488077998770042100152314278847225368462079491978149174110897200929962627530817029273867460776197539892409522995685462917237026019967707066573603605825429794617264058908750390580444074249325434108109695970381255647773898011839000770696041966460873457421466695326341795937941939419549240726735066568505050147709095747218197689420097005418001294813071347796521990530295940278772852022842424533555811997269122256976171966138928860858935679141743187244000235436690476045153115604349710362391218676546536944429287065881471385860132230396707556037508650995801421504505537579321358753516010516974832924204908447123310546909543179582309566787027837403003544266084302170256894350073646856425376692377866804256297168298019040108484195072135430727580349127756718403062650718571400944324172611234130887550542252923625510318740301181671063962063878224029108048476069438602912246642509689165392199398422016750549951271648184856700828931518684395161269033629540988740205270560016594082427380519169876469316301042554455064141736374723428217121426306029639065789770308934686183792601107674683332211953177809910698314653764766842359982345582333700023801167540455954803670468979407709555340712198716263629536141203854406917775086208130265720920371622013706864336995857502132825941271655752773932492712606047916863001077281584433469112377963943572912517635689255118228853698791655638657741208107349531992913220155323532974335217482821040104746699479582989937612391085875584213895877464174356898817718682594573748381516701907745628141931208164794101233943264088097359309974822493418389756281886839684805533576429513024536034225285097708961975392414359379637924936676813523050330179580307946449026608243696334651782262286658877103536796255741548562121911364070336463945706077930773523248012800753981329361660420666297536229775329154409621380909168779880266335642091219619544067227888364292691064816818157596766734886334882313889738146087268926496577146368716331351717625776291763227877487506250664717471943061875472012150089610128232004014966697147801385562280713394978414286245454393754773843531781779875735382167065032873487273230353793145528920754909838921885153869465948162669792373652625649079800164421995940257296558527133380111973758090989132506590945562936905062574423146724148583469809655586760421857918763224929143864795332212918356726994353740254924380811312058863984793652021672060250757372850922747387196544440143103807080151714410831306215047419670405401840810635881813278927799652134361239367494465543575807251863972864844461797670789220964497669478297553526360066684677830780046467321395642221519620278970823958002145673312159148626661708080883050618384253096558745052779697464351773259558763526187643282797437435612157239158772832936959756241303866378705484904009631780648500173532573853529410183924687810468118333315513800128853193829149184458402878741618538190985179152985804600122485849470028223584850081538219534523447681247032228668092968558493400075779483485176973529113942928668464209589031395397127075669447342443371411721433491030248082597622213827544450229439397686710786623409759288451231735457270949560335146389992912403841356570965109208886290507125733182082987960178729050690509462271010430558479127831518183548707595154856059312202195925457078500334580772434739095098524219943412638497294377855431386235072944376402729116165926080748506019947891605681981765719991791787129262516060183053301503899301060959522098474043566642316797745305253838342443351610649079650421539609766583696230046954909020281819978140348167147510640779367661070425168302670684820484256254938907281730088891083271980819107415581540737514718161756912498169904742010798314524815011377037055635825458528142704987857839458999013077087889737167549346296895533434174712127094945061881243020676702684284042899326288964220637943548872610064020519709891082388495421913192976063983282993211375698909319408701818571546664180904252870920392285584805775555159286777161792412277126582934274176878936646068080068977186785915210100599077840623292118368396080354879082323130517866342751350119259340060254593420571131646700620179484045231916869460242072384491053913712954843905198599744562648958038307782404804336262889784757910413098856675369019564001542195698671962329519048382092934513489475392838640009816888784448963090578295367768751758473996830211737379154762564379451216488443942950815039908669213473155153008613593697263106784966022680005171584972664715935166159330084555015500527241310083655394084242855515650564095844462046989274450232485923534698119763009313385670518589795466892269002503403217156107172484492966913674289431335749611430180745859189416896579163838370608279756068251741438359666285655855383806617051056577566756258477005570970255671762074237349541151847789350968897474037382571528365169549199885283054218971206045225879299649142078728491941414999681082319786957717873928190607985010795341473776325301421534928676002514997491767316123182522213112453920807184605580275772653035895380339816061078746729144205605745014710126135750956776738599458216467189922045227333612573663736011082196674488822674555915915296824828534777534398322732561928917740372982877403852242051458500199866995514175565551415423106451937415656590729970382527524223204344826766737598041627638579343926958036046724052034017745545975362720973261376707057311792955661475944413645259343127666477466691877813086212691144270533742547499487167472817582346611136536976033705058927197021099501073400312425859984194145182834998406455212601825790420564540482075628234291431045984901418157586703131184796184062622643984005444257246875140635522161655859039341571435301419647804235946079596007771708005142805644841075384367855996355983895670055117318186439460569973953950431086033287169018090155032087328413983236232435972251516677668880742711459931538826586880142481489475301821391567572990423475912336713358772782106499098990481561787803227498706682555263577832355782687700827636640647720776597337836768857489690878497023080044536154273914537961812253538081541317471926748232823272440545471554933370831334791953983875121656117972085790786532275886164430093946001343054372614984552790562658587436381783959789001185393067320379557319769726060723848862124960997617134041017203296035175501310488653578232363021147018936635718218317985445950043929189892772438129253207635723335226377369500734047352688851107858671028733874012227669748594206217827198902265814821537117345082108830815248976665082833022358902809549351396936318540288646283104644480263572054593365911253683855706625764697287751250919856032209500053122892346134100911886729635277633141096168627513495182252617363112033109882238427966698522616879113198742825907457133232431683970537912654390121980256972088785166797700951141676712981342676159750537000982478269883896025624122673580548442893396803471649956706124752884207520269058703351697377396363913662412310054565978859378729824451731021372188820047949651632168754435212462215798382451820975211042336695493180084468238906867469048300347338864029611934150301700075408777158332887049541871993779733431762526274047899802370730824556952154203980847250792127359592420064844810832447317716300133640756572901479999558927602458715136828487933416923183401378676819181103762856594226233492265141421006999591332251091508660358015273248720235713587398495139971973419317139015124273118328278763024113884524871612775529055061556314576403263728344997006768006763585638154166245943871746720893696539216502528310257779482780005691599358994931890359658538539338335096877329295524892365045588423110440829361342090714264366905818230645036548110267159089289854029007005791405839834922846172520069359606687603763694293142254435760130325835089018774256722236758716858131818898245816036404348579066526092272420774293104485440875159804307912190155139564280778563534908405430341211124559782484122752090379103831305674616649085161324539804864314530602144858870193549760848114926367872983275819522106378821034288851208010081937737854497400874972293090016799704145134258844301226682284412785147358754426496168262251050942240135504298404209127705319360862755375351922498921050688550842437503288281295240021809961275401019155170134396978865687883445848839919621225537678310572286425175797895000689921463798842715404653349027377764818443034075439422281958791048363083002229604921527569573145542852752691205579909332560390061177180814006062340302332359736023677332100793537093781531377679364695331213475502592378215613879748571395072360478494179907323399370049266233724006364949005115240978619214463154678790867690287851063451369637626559802399781111051268952536694745487780396474955369099529460256151272385036675882290372510559647046957667762930832094037112041324522552538141946130875840806928508270169892336060562151699613635183691498063110643625825329289318966194518312059110574143587901530699355510077734674479214047106809599548754866318477640513147172915531942143741565978952810116011457702005029847603895552826685437762243173070886906990443370843109121989017009699473178758580124426834838225175173672055018690941484935970578026049973681460556284275813273959431660681588490832673637656548042183943635463512590275975982456636122562775127544493781282293926235710938544951892060671473653324272679357730018600791567566554721917099516943943134130463369950534333094275239164781390300169359318215856571791938702203004169477263388598944441886518811112090602317010758853884028457432701040688692013724517860707465971429337753518848610951418459553691976644106546438147854309852920728449043215307281700178309810833314485947600867920039262012309141637076759017855601138538280382985874186777006363336766241677883937259892631449470984464651729376203263657779034052289670197084491078362161780123188816438088695882291600530000137396631995412609421451398834911786812306461476417546789286842601140650594873236162669354935388840313423861370424773418550410806815951960229093025207585137203426275994312400750923991993835356320597417551083027756078916132068470155353833227448660584620886190203306671554868223506495473681328514253192899251468435687242198551279269402369401954083270151928172221513770622816985019355493566081021592183106083810453634451719277727069213122546517292437714013918691763328331489029218251553013015621601682429040159132293232729820192533994011232584413067194643060308485028458872979221674272079262427035294072317193333466850188854896784274588890184825363288026067557586605422585596455908357722006722145237369215322804678934232702445268307691665377013732265017778316008135323276828337508774070912073871465959802956940671617998907758597843146549161071665003546546910394739178952986154062765496352754551203955306649576441008217806850108504630727491458638124363005368598910239902532614188112776626062663343744545138167525115362180606963377690988028775285510208727142911933283392581728767221765362303364927809680017674963620795516891899149809761600975376832880789292980472940206386898664872990845671651151142599837950427495428911414853359219747746941746425692778497219088067461987972427885096446967849668195047655565771053081030375799318301580457274089063509014814135917701629522668928276255271550921169210419544597632861096365676534882918340949486381319202514313919956410163781479152584558772552126426506548649098410346057801434715459052367557145596599231298505120870390701797119320015277482250256342559880529076090177897682419860084398731191876696351064739570581617074407229480073732417083287866784273268095164651334393962704884514898909003335581028162745880123198436265904713785349782106756993531953029045496777037793052561990934185977650829991027224829895029466303168899525627614984343388681349534892262721626533616319435284943715342371079679544471973802260636440883437311280070486596024257865361617523454315828897429809251078997958628670772943859268075765650130102148025804594838756077383355352379699623641216058827591221428368794770350257522403818362393533198259453873954223998356710444443920215360347723806442778355910330241521238850259557253599496118610226645425542484495049274232771206796406294278831138258117675903588000988112398174850251948686868379330404422093106428034926100598902329320166180064836715032319138778326984519068896805102087128957859733354704174770900148793962517491781737722135014777075844914286267580448799358705902533720124818130348712349166014128959618768535529492897813279476465008236011651835029909049453254876748899583517141851203731300820836131053000161859163954534251578015174590397173802545661495456553269690315338659988032398456175822793594269608963538437801842821479244879241362115938778841982244030955799015825265001472940640257678669594415190334497772541667822549539682588523589805732325872560412944143253489516848439677117992518748505988639901879250255550081227899320559618684530951637422976516321147572138069485374392387923197448154643165185663609674274307567121042891599801196889689134530710791420398736119756164147564325849410236004716124629471515261408712238615766725627485299493439326847624191190991814640236807682151588833786830620222155823622528887824221978818033808372358037488225100108766446012057859046587924012236088378183578348333240260299029801293880314195898135597952380786758917982485802211331314494262186239832642614856457646114943842203279735014505978761569748175464777222054553153155431366806787562558136540760746789128451467247857805435784331574068261626309814293130228667956399570547605818398754580699426147320652832097308949322724682068304990683766946651429816270057824077472779767863119833733593130594242473328727126260314549196085043700508816560864920177340594334426472986733804314719958350974988254169028249050606868093918959666951388272475142087112577747230674469326467962797199243943584216458738642309141950278396579860880248051381505090014783107445210519574876959816612412186318196540657346834791410834967138662743513309656727144985852295257446994151446591477814398131806871740436317170958651152174701951728708616831057114330704758398460962046222778983802123501941283056830250869744226851111913070779646688355232303531621423327179527203931343948125001258924693312807024733599688943770224854867290235127869477141087167384990488653684024110486738508534540735240921850893106947976618725992206059146303841451163348758157136998260192150084213874509848027857866910941392318440068855817415277625120801256160990379228422106581641933030141629050077203617006053385530019120937422339287006880489097570551933837027420929823291116754114505744079897828181331597462790072510035147429610338689593388206902906555797991980650752710761610538063865376145675483798520040521656639754297174583982968617743546661069255164266706843825038899123587931991167589692876432395380679184246939416605013482511053068069963419164798563291337573007086029321109842505866543036026143233817047576103674709447543475903872027622843085094902501862200765041597775778184238248432131961156091837439576182813425316211968348951656986684846341692116910715123345179581674385251549592310783217883612004928600451453842709388779434824971041741669142931359169020109161172799406620339227920721214251353267964929537308402681786275218280395060301241938702895000360822440928856279001498291894779613691704197098532622719951010601905750513662560047362404869389137181512342315944985890269923390914019355640725190137439074238409002321932350024458141709184967532992841112856157677348429510893115026062079628330095452000118771555984391979840632628831802188720382827628334345444643351979037696444014057758259434403877709343861160153199749787336814958152623830632041118237423910587051946030371966764970457951499380164115405806639006334548140580764805398885208958860976548511999225752451505722518867414439929464563950611433903908985498372676276557053203718178982384935450237425455516235829734472481136786460774102370904165310487088763521656000347354040708310030179784807692302294939308053752166568811786590560413085412096560007445741937507184881784385938030147600468431697126060522372692490393531298960418112859175188773256344284462931158207226803191699282431508535946302044745615447327519162022203842833019118938967498542725368546452453726064103006314415142695593263341451069320857752924768653999000444552428763039466032981051381343379112326314653826384406768905532496830467612985081262922620468422608463690817734408227750575507613376295238638105348302921488630202625219235130649778208903210553744217450831846125207448871162342173571587775330955091934524017907662378744243398692262552327894903186254468263401985539609837685837422477312371078702135745730473268457446561857597486912577291261864112959978641805925303532312906262187597995514805508725585084189167371518988676667065225003145105102833006542537991496783363155620200303965591332182128380882429429123346484354263895517524651138854696026284345421392434973634386264488017941210238837404590466226316122718660022409297886241113994763699099656402695010039529643817744603698350991453223521896407745937765096136597875721769311919432762982472382928885826368001772237368158851136146971691064480728488752385215397191376440898241455135529367450190037502114773920942561285200309248063510015034006575471410580677925150081075776255565787288399936612177484931280802039588574654612544128829025536473825999732537212258980506705821257222784620936959363686522405544965030039028170846960232584974169852182860939687721162815780014864957514009483077214637036603231631654797470506671129823219783855116006072113826286863547304041595636773225011508729463566682970116777906840401529264207711252386264398515300665530783516634183718612116996316919091042039637668185545991833243293493889316429204670891487935751808013755956260572588098944186475670034173279277575797319886524050748390587053010294930906677388684422818335378503743905963401822882185224937429728384737861605840780746672698685956932110256080045072423712105142444100305940883798604367949298116127497559053448030010244987440859726782962833977303368862930205014162116313380198977950725033167017437995747467882969845496016960578060587283157104372669948960914245941012809122712797111182165133580570392208690284299054619087434991128018619291622517330165760305358766461637484752607813434555919088086127587132690107023774188034590711545384312368954040973797016192939138865340489880899672165027077072436782161589005981564043620282800186605471478746031894185635496074197388935960539365792831613667232269511952326728250150618340231562108526682640055731234856190298745206109809361887132142528619833500039671512890181166052383872356587757682556275976334103673301394028193256364752936531478939481469429858654216628284695830136311842795651533688788504442997113406582138057809567976966862129403174376268041140303402962254358834515897210211039603562368531003658848324872489815789528668341012541995381439528678875735473227005317942049820538784577283784578696051579164094308557074912776871678233214818442539016932842298612557098433709854293767041071146196065745417498597799412881550090452173896770968877719962654503137365366527524661815570831329096067935788724015033741498334432245218104948182152024691807499148815098878191260575269174286495411597500505675242821235016417225320920918933565003206315237591390435824899906480614513356995437529346255616763036323048378744393594956207824452609139696145044685574558269377396263740890330797104371477781824987150228078247039075460004569878555788548049389398331732377507695676844630071042818262307712940695671165091533322655820553305422242353126009093575001020391298256737519859642302202308903441253796589759738842812759128173592735368065076447387601760753960294542551565393392177071137681196341767012341782045232659233271132408390672757222784857779809196501494415847691148663071532452531609189025949772323749495355311523032700149076692137952448432528507839424570475265427629771661943774912533189096771548445443634998858820532957444974231330404193130561073934545433291763149613262406810171833541093786219257130348982677021948891300212942345585326459390481536970662587317909063765040194209470154387461781629878726528980317083886806056775152670907381893008752392326592148458712086038279217801879654349121460960738683980550079873704285187235080656107300949312400050279310996226055037598357950967934682870634065939080058586201891034718474479481277115936483092715963633034064476725912411052234463473436807196046505015057075438687566010996853896486217761678536186990925784385645301513377025443612707991488556149679922866893889767734566222713693059091854745646607008950708324834157046270466290423283667017253806520446523613297016176778093826024243270880068580053206377238755596902635274371523903758809435604451836572230119333018344816622152442145933586526750470210469235686632058233449362958942683654532008330700892186096456578886180771580557710901809831813912132620015974333618189418579084566957923224640502667022655388613321043553518976121397813969806951967381441339428034776246913161816640011997867910586441940680107263621334647238228108683112967926892670573946667320606396715071022335645750153910510780604117007069329322544961663580586590664889303580638523372340489334114758328284403217970377604696293929247462093432417249268156121572443643412654361755408149809820825796374923255297521334679472220079375870066218201301757403736659821007479332042741057119676650538555520054967331882003156461000765225767910182049219581573171009732381033795717314022501583317011480277939420829285489639945393675865244711524515239228195255965672694512645030266428363159707754039431635937638947781571967709046282001035978961270268934309504819633184766051069233972054183234268884564719729804644126868355110117460201262481463409587681871226780287534266122760251187420566621886684826515320645583033768945236843893082543867524353473706941193697338032938615929342462804874486159906233689696368540108149181543359583912245641405855809139338923757550737786843880784531475513074683685912826428539926675546326975170016807660754265502073602557284030497232695007718971381039633648150849915939485652489191313682756245434931203073966027077907753633474564665890011231491650905141127697689661901423015900602745178178228608650612454972539530080244460684522764328906991600202652679281583202998781340897571676681942328130291383694975955300548629197322018662989175317414316289381374969399600549567358554724689523357210664062156192119912998453164446160127082255658380606764397690033474061435471900237803697636622911422291059889542788294759784192549789346916142823749235234002919542142722524683891183083881032366880097932067139931738893571815783029152558182360286505841452742170237021722551285058446942009651385434729175036937782104376143884008059539683619781901836479745360331995093531704591201866500314707422122961614516329482539444393634857122272734779375424253892016555313687643863523721771436722694300563315206728423774668452661724296768475307984696551069768883350655358186313975100637235315693017868111538293282724390820249047033772786254876800639059913697300193255062757227533622433114928744111075558925323486858907727811170297010703637034080649194122902522614891906099792920066041008080526036755641322426494211672886679055581560468855543557999733903238946585313345024085210012949517934557949825898421989853269162824967962464069664495959815731622501401997690173570795709450744252871556907697772863275401482753728652712190508110485843991518588122954490736983249157538391976242264300565371705490694699814940251164795085405526006078830410500216060748623419235183494404940344912161749375469766367350897533521598774085707901718137128289537355136321376856134417636690066838460298622692302958033618893757141067831785580417021170573918243184816182416869660950168366446882294127299304872598536327215508374751605654282798775394108260265275168495575177060138438264626141591325056209488006538376692059705535540907667248828909885588705236238131843076225905535253535942767442337631782251523992211055058876638293123556092896500743299512115897487903581270948392594748126529649347095871310710576814354266588302418110114381584151361214434118815590080441085771291286948202919806083470665338509913744369759422457822517901800781056644697881121689991155264321405549463099902796266494615381897913221833208466211165608088598397010063272586456297556478855544600336403640755504454831136788006427461511728758274437384690420001151734921726950012967825240855641411390289474214527314226337118510382178209791061483242611161861106189942294340328116415651779676919163236260967494419597457830414425507957106525345666362417541767519009512474551243122711232101878937693549733527284239153674338956004451393617399654564598834704892878977970885057046253037732743686121259528179381351773125972464030816728326639227494164622954970682243370718094769532292119838507299228908881741869266580884383158691626765652606955022234430010382655026740062194161009997031671071801394019416091835367053530725905450859312526150009067584131715337865390313964251791866586448735455257434867576507520682066227358141001741409493937739942565915862673832896309703439488673234779370829125738391683073232871188871611875507011805300210417061008806557154618293365833548774376416173281940825972385533077570327239141483846409464745141837741943115014183947387913399376594622626482534590579747174249212760422271704567345584144643366354765517648989590624090246769387915712961718086964860447092040461698254117625346562580900287061269788298723182161399021666795970073786600911806196453861042220132973147683570208919780387529668144656272807116326485224327955403411432698024668160231285486625934019391450175072838170099246876051918058717366890930607004924972740457584418780324995722635666697200203303958262038495274096637841248513376440297402398544517061862623808924409154826176851518339794513926728539275287627543044096511022679003472978082846432219091268348335366539537227540231209084854758085403247586030053126570909445818008399764984673872835423614241365717524285083361369624607557874471967727903035801585997230643733725521127980221390082603708670090071761452518075729657753165637560241319858506500866090425904519986757659114313210733283967572796564941478554807757219473256901075478958488122349462615962782372597166223343957079867823803136872738501968209304970389792333935164565243563555802034378742580579491635943699313955447659102455912629184439981146529335632876492175305536779712432368190617522571613886923874345203023782144077616386126545230720475231655718878206152939253365036628579284886287767306526596623764066376608614465586005517466623961903514323925262495511600890262797830522167384831435736704687536555646214061501193953550198123728879232653753146525691024974935782162940998312460803269886660558488160893515539855110871875990303461127655291537725705725335317756722648511660216244559138147425702462074858584265925677171648892943356437843516579074856041383578911739762616346848007980191378374632265043360766458323531043691606541745198313846189265963223661559380849529895141994272116899179959827017168022602612650155473441192701082803682437892800778738163438314626510633445120105438990090790654901038955540055400965735251681971417923385723414488274386350683702937653459268924875151816084927174612278260741432624870980916345459428805485072994110694706476755583723450549798687297342715653106279243386502287661834626067557813043813219059750073468631165159907423794056873470017511061347003369869748740204907689776748730480599881780271050101563494222209269573977395366586389673779138822615676228316539450469972997230003406863315133977311000148290068498331603564462895691688861499272193130417270893105934151220150773521545310752213428462326951791323409119181226609461575901584383849655738303385417081992204911381045538425747440238143007202105723829805266492953706060488178934548843242024452110937761478109968346322726025929658758260763849874511700727807979610799268809434582968128378141622490581002180590474523189423332918048017099255311463672023480559996860338420161918838466593966765174826127080163952217094047327530459728928303137253323215310969822328099359037101163580790853123164102076712233288418046949314314799963543916825933109357560690365010528088998823150087734119008658336657142416172864440324059025813854774006083035118504965812991193929004651450361489250070402137597628432995069209670693950036606945667651724170349499197855907313137250643745361461087780534886603806154309297213947257891063213280905394479813058387040279026456895423610598196975103741669199553594680688779217425015860658276908706845155002584888415747645776566199922541909824842340589433329577152669672430536904453813957151408672995051484250663091652190757480229608470263094393190676333491620414203497884301175018245471034902727117227353935705483529658926763119747863824004069626187619903480717154691743569474000791834585875582466319484434711408241828983024694854887190147166762030261823147543041982516874374954180489854717131207869081859636364531970888881531516323573085125102905401773506120228429972425453306732921397661735603936455438464577659668757065554421964547599889567120399345614462918622385202333843432382092053029439321238211246878701307315077949442544196975378879417090743808077644231146231717321112859047748902565655985800466686027946050119706726919753963146435666949391344399650015917160870059269315654322685933532522484225230761748827851822977939484618645645385511366278637815335707589157037252330133205757424327879523440563514438720779204211129208459267081657639584122427212522800518545917170588657303906795770342147145076288647060779061255389052473751913656356621798711462686818301514515973812908301676130011114635837518547585259099106381257577067417340877549617442745789915280335432964780168330257141234804408500062518754419268283294522561734305082518754313600362786002288092414860631260659720166452648314857762058255163810004186887843187432232903557664409061027097387794242988210264668779968598895751389603685382886537155638461195342524706415429533148362242351608604220731617326518065955857693216078782632830161846018087612928621607331954466370820192269077623205148906305831998625629658742300639955344405586203169339147816526533626790267105667173809668437061280444197473384807577620397117571039940730572231456273798720831312227855959888209858669385370940201480325416234793044877090847522482506158273658824005928750482426166350303754134994227498770601890572683332178013441157635314809597535439010661869004725919938449999389039074574228696259088104477955410967259009755026288612115796194178607073800110523573446232583636582232108848324387048376227529557303652438201699874362104179964972913385023756891281619252424833465313761715327463394940605159475056195851602415391908639675368883683878314358825825254503320381672551775462328102559935841066332032209671219473396292151924585769578005181728020415060981602628005000391679219770918112783600751498388300962913995331658871806539681014015810828782709467506224557673013851628111843506241587483906238279842620906133308376051829884322350620357309234595245042314118980093757640775996463224497823644186437283528423638043854309707090830663500053165628177360952601948733617225567925383454681094527865352584753263906369491158567745981232450158754401453602571367615724296995021348373322900605627507915767189064814964442840091964781086558860926133555296051418927187490451153340590898070557405922968339330924824076348830106258352469161370041107473651539605082165556303117487050617298330851728073140175182798466410118576710565020979724633833978406853524474959989743866678624628334123175498148745485764898643140192522983541509125634972833930856245028008427669508144103823292501760264664014173311010319729705233531258003864245335022791053682298224716953125752063076345712922561826536952913041876298271988650133908322435610121756503947111669997721262680373864044197684251207913142377706208678149404024849939354100782954054341592699706725911740769526092826042941467338641226492081719577999948385300646063788997442177286029850302229346532546935852076865328730780757905157462951521760483174854101446771848584265779441114889696796269479899096924925937547009430447495214816151459133306099469061853426661439413839832922320239983697177305673414671365154998439561083004522434811084770181889422948186031296158850327070640540117427753751846495590234946778079537615729954485361505957928889743662522567435438375236061766372083063970500647403955608571287478079630608775000202950824587640261604061998561236198035683493368833818740118070710166828208262180531790548458131024929107646886577167404957157158728451239280487866100468977263704390723788619177646055579592421489451552718339200610371050228682396745113807919118666927462181295319405913345502715980951567436098407994474701386930867511437951495207345056514391978803717626777381425463972643734553197431901359509767414466570046533584198956361626860898721384940057022803499623774234290778759421551567921514630329696227443628573191843290079665870261917491035759743310917309331387482662554989558712946775042704994635853916754334953812036482532213283606927915867246317653338773011127943430190349385812092368187037876763846893843634857326788926395684229169314720858888565909650575941662530909292049453913238534821699180006035479995403741510631804753304231994102627405121865587157778811216376004453384310216585117893057617481175976274092923064188492505929215838418921660323861832628974330042872365373731042114656208652985338579480483980634599801839134587064656182300503360974740405124035726119296384081370136360272705359511737241174278844152779838780673691479473881234244246079643985879228364345877767213450071788928356434349709034077007189268863146561899356057026256215563010499274870756746046350402878540870081608400943926814528203438436038493527004010856793365484172851093367881788851583082920710700309906408153768255508956732847497944752081248515563185943040357644278962384923451686777841415195803835645234122992270355907506840597020018073096431601930056176941023425295879052123396669519308437381983116308930801101777520173686335383736794684316388870855149072010971952624012159316058526842532530591386748049942349996588212564171818359769982551555976689515774787682141804497775347367486264751699349814216821449510049504833055521228596333188516835299947381269967475940975652485375633337553254226562650023486958076293467123893533409813767353307167575689856887604046289521725042975797841968170219650726070604296437889784549010614844550294428601235496958602480554566961563629209731755978175279368793288171893436646573056651850571351830837452503827878335763743747650958657730463578870630285723839919369180282902678788038073150341078245509909359351208576427844466212030031489026753932026793379565046332149561894059084715885807781586001021665647122614064640396378485169765684381983151062544006769089353257830465537702569069777453946700512091080003752574176451910076759558365462010857127203717367522829893015152073917400876942136114706411465241522983157830956774495694290532114458299639814652318346889573172677496211894453116630676359590287125866052754593542259439921938957759723014910760384466695545592237884226617446280503643289951763512216284024417909656851102674332724999524042306465020205493260739872046298382162308812796831340122311995700353030852268924191306918898287659035800468449337282957711303756903202411762890563753541806357459954434742116630222787930378326818275220992345216165265686524161183973128978312200466557514831162911521096642158847944270637467434973581614084665809538901956079314702676986284266725297960844606729075771843748416622074240466767157263610538959453979408418654851748583783039987123437673813152595158719926858839737156515604498639710912265956848461502012639958004596472231550583312148759121492833315634357575583003461191434975382862974570311822482935427991008712848102618958091124417316922380564050596914481928121434423496505418655805137710944581687979421002231533273359250306884153490963462216820530661630061133512745162720018607686482620312259742277597760516248831926186338694326284845358308676213891689858906169696903317279771751040140757778725938302794876221960352288741070409342124004119884162695768717785489912322533968056916685852761579222514108082077633473123955770502777370347422319905028078309655737373042346146280892976494580040968452399030560313378966320394453548184330950782748625469516657717951426078226014415444794216718195366091969970640011544208138475434709110814822967897499639667833491647038383753393204996357778788146419647633764578136811886412160306107867269062111289813652436879254595759393491205084664333763174937126736807312198943258294859722075842608892536816792269102909000320919915319596900047100606374923654573165117417295704912194152555753615041773760788954045798972852808641195689757242093055651071357612746477864520377914755350830787220806105393690237125662670034930949652467925105037307885051838805778877946224098609539079149537249661768816100350069328207292092611972900819414420320427671343797484010298395287586865856049225480092417630146424474179028793720954402386884411941610286887907647390115349472788579331434180467088654838125442205060228747809390553465930459952228742455076669553534402276542303601241849763407749151987822220850238845434933206450814131520070506533179890219594543556759272958295136467588512196171533464958175895114716026380423046297524678534592769595746331564169377532316150540858719689718587821765359910098876068686817334816558912670660404426061151936851194841609136209959146011747307083965611250222582776255493663242034885753472282503687389725138200525140992754781236903313659156732325241996518882648473312684782736055933199665330473151755433981117406054915920190322307462150024844660551265025349830944072122538685106461946901449878136159222338411488035625053564216678473858170621643841006020051462801850977061738939142811669618156100710471962933707830746146008262940449382667488129538879862466906142237657240388946490625740181940959919664411703990338288275014013785830733256028502929840550189958708940658030709744564326296817129362884371865950263358946622532056604778094308156695094420917255668279494396898360430328541259934283254301800596666170810198681227655349279862432202353477065466071807615809476402239517932169569777051474041334180333350875410599343249035200304640478835912124756719024568098986198761286814678426213168863419682247946675557708265120164125645940213679183763003351099960485267020502558855312862494550743155893314158370631490412276884030923028608441412650134238997477045703059197530216510624186825092715443870182814740130859361938721183554266047627968738895611390780404833290358802454586241861711150739139169191498712995692571293370221288239285608378526347846230229468419007381097597848338689809970830592561123251074161330937410610976516699232986384363007249747697427888522424262979620054770397836117859524252451401366404217189312632711225169670433643294790743058604258663767308915519584099005139321387023805578514521303044845510839138635049169112391771450570573816713471571252716686783585433269022027902284809713131948261429723754061483816138687159658192684897940197156786743476392377616526801622081043078887641415064480680036011429108598865496898591024522708534081049427373236198444311771294148001687836302721511475549282665954275458244722220536602349073393023197989716971444757790259695066155848861799485723866056904538551585753246588970918153598352861589747162059022360000319821258393044364047766013099964122262896315870642433047732454975557941685427424050646567467819720941158847287504840455189194348564083389526359994900378033960226709729403642595400815881623775361975701179243360777072974514373616615565902950278211347844709100328166442924499980210955063617419985636934958680402676874690610642552240689409387382004399333040275814093814172294630317582522400893176866517013182599251758333340214972382343332625133890763218336405279627685212813528784785956751975764932507149247192455593279558860410560860470738942133287515329915202603652301678908119779499125068786317639403123342915334951255655732670252825423257347808158219922460471730869475853463857896410224325496703984253393213638456601605853431525709203057560196819806292124150050934673258536857674394528075505946461157207245020146801465760629034928589742957033108126476807585616940463295532746115547991704786315823899438282294275244322629081266686769631486854571642458249419610062976344097642815635900006740048781614201075620373853978681583337087614456610349205752861524031159237775986015429910410252116590895989781299845985534974242368188180333199038681774895652491625109201366923191885569301871424394172746438143337258600924966044907111353930910603386753628208525410436343465543800955863944151475834726782447304269151893727043439384771843096674431556911572275347207656343423082040215353145879155088608504375369181604479604128150091812521436093512021514609811131551317012618622104842358450506954721986767201855940331694304733523612661785524026273664384354899420854507224663855069176799626943436569293895792642452931574472761178178594893320144378569380947878509337547298244471425358063604807607460336787585563001115506200093512267429657549518573065390768666574725561568337608233376430073577542580428855976026142184982248101650416406417062170249319294700891764651579562602888847701483481326558640294560584866102167354171155210795127852745517843749577174282437910011456695092679114320608702890795928655215571751014647533545705569888003449320188069168961260140521676623832671250286715337141062279649841979741481125610774378757426320364304027945235098330347804703221665536996997932982283128640002651815279655082838862750773346519691414452367506553270508323286776442626926055508073351468311315765718699864105396231603207760383184135824556944194351545406276671100899983339058623046396489514405077731496931304835392082626550585162988239897674351700285702705074403318900167309313159446546268550806264469723716976302935141037282460937431569047596087954406222243650309810364923569773758477110447315724504243997017788655750091175405961918723313230155455795257079594643397880331535976781366688176656275730147076988190805776471245089593069668784886401393411833635404145847391624217189259369213969579924901652661424637965961876686134388329946463717566925268353682870032735624794290967373663905382675656883743904612905976786495876633088702590945049038972137066031091822604892914674295088497784067687128039831385251151448416584574052794207257406266512114208534047073664499086109460742646158152592203089563168303299330047078709012210774122038031242123762120788912921247315486591842331477864180273349423945467835137968560190555719066572253012115662912384742567768603785005151072041090643318278638940877974847454354111905434812861933738654912021091233117035503211561612934524071729675975567859245495351575243357199370940965275931473233695210618431413425046866491758138250842212547279877360772379894254844855467451506418720815396198126249944677741612319525626347819334170270025771823901186923153281851361313183922406900543319937196299720767354068818182847950099733177547701664967882308270434626780042105860835377057765388532311594271021908119548282394095736870142335505900323877039318971175043557323135584337109584714024342943783978114502375075767709803809346233241588633930675142502185050875540474778534062136609341627787106872925083918866614631859341140303423852381033013895087641872933996509048680730985799068337255195503819818240795861751337174607883402917521851967727428247161650999124505264553276360699068034414520485845277024672947097540541400444130857333865109238392624999060075804344329447358896976609310524946065505445781123046030392063856721842116859386936024199687605734540415145034963636034723774911832965564360007994355190474222999598240241411877914569088070706600359236604438016243571374112552602046756508505096320432458532259238793408821789089512492185495214337795209014534692751187599393138860412488681752776300302656162333317992254087807082735857989198483152420903228766466014981268876502253296122268910649346614804067670932788096612526323788582413666353835061492052023251174486531217200031158762543683263682353585463516453966258993503258511288074415104059829792869691621088108358927649046174137573934555524667925291856323333420192366308313979864043521099822119606638148577223815591170122608127640917453251168660564103931642682689757168595615683727813320926693416193504699350393628736827145424126485233035677557700842497427899467484198230260865672892234042091767134870687325645221789871618579568683855396425285856340946768502219904969666440504168086922729662773243608516610379250243358891568082907639838306014130102850727734805420140996967748951872800701335859108514406964640792643906883727355628340898991415034899710964043909248478155984869148868531139454406285910928798763203181272721980388592592120056294089749556490497396157765556270432138417442654621722067559679837700318501240782203182735879930087381057013686885772789083777329420424563712614641476905133936773306753365580585529442722701630293852313084701775566734263652915999482590312731548081976919187902320640934055173053248521755027553711789762673641623715107159022819467300713850735189664258113396623835494462681274033108930384925010611202807504220262954816237099190296979863356588728043072168472942862710479503997331926386123290932905565624384707271748088495762686621470245269927640626938986844247051750668096270727416183907317308486951722386468900610251282725743669174453650586516293058356032911842223188946518419425249949817091260216803675621513418913500437209815253042622255271473452589656460126888378163957000474465080592231443124602338924742008446585408567904467964918861285191415103005417312864027992713655813478180531200676798863283437822946451413686364664184145075503295614684031156157173355582159146958198438293267536483879017818846134198378661696142695826876663274296448265121479957972670870059130487339412167636042603625591309633775546931272105101392062359727261467260938360095955431400925873089606104674169842801100578198948076611744905744517170303562070271331392237786349440282448099748802092320643389993822773043103008935261093309595781329645614173055568985671966215743284765762408758927661620186263945966860431873562163060644894025028885101937687661048801885205656274213936112783388699728294061044271495494509263968234179462459915587809410623742489601477834575927138781188042873722543132364378021198812858561425877944910909325073743973005230105741562596296374032425137195714888455610287171149994448087654948087202202420174029110218703562764732329321483908180282447107512248824556215502677627371690086490707499639394544492114948535571831638188860749129277581132692147503313258054246443598448475376184956563394766812311997740739147193774837760596064131625276637514859245917231443820888094760925279763092503304190244651145271250485046691133907432128760619328065328353554577334531813802423305752489161762918894012531241884673049849937294828206428853243777369274546173024969194985614253223308307089533998721852601236800534675789858552029413706408736203643581224114921837121907953252533512327872506693726371537555059965157879568655281383838931573142782166813531857523300029869107646173335246421373298887263036000206638793223353669509163370690546979124013751342552790871072071024808174346664311478680745343905524436605397509504110226619844031095948415400936635269846626313488289980394836526349733696024501704000927621642130718283084095391346909061943651747167720247972390062935681514269807020110691341022180656421554443674854552921705374748188517036525862485865975323976759995239647644952382380112336445421483923682329165300972241656067340758959823017150532103384277062224662109055265541743547740374022618543117877952044771272814982719020661169541517253992824218988667384405281367161248726013332006621965016841595547353712681740003855659716072414815462405375702374194172948081798150430177417253440736394402965472603720382471953920955953359078279022183454024600584653870199169182066815343997189915413693951980743696798817696354207393022542557691028194855897950048596407703171958072071561871357583444384544204522860334538251406456095148045792846996806142247769577628429755118785109997359836254006139107502956284211235593641143654224350632147312940049243353536474623450256973869844501255081444257157675793025864321591035013267749968325165654255556801153520391553998197640085801173475432569845284661873478653683478341341866206688689313320343043620554692215956390705065391582725747241744718598885783472106142562723728678433508541068383516970699571585158824945323193103920910463834729999692033634348367908561291413887497487042455709931146527665775760528399506352237153440899269848511369756491722162734185849909079785512662663739631347520984358611562375095150987202717395152918710171824595282080978189513254670928575675486252789365739021442888244579707649922453949993207655550999314767910078245876650780802879461066964117425041587448421981498865069843070815877910053429828156914975033193523837592498586739220496617104365877675770107536158534755391707124649794274665423060819299555721396705901104553661560405070025970393955341716546458836066960813446840022498028134844961177499319738391701856663137298897421391870955383252103977555830629515373793152533514925255580576875594044297702817826249389967137053650108465064928152839842288929558440490987198920674069354749183219264987132855596821988170013611848511466945631140874221702584725637824227626654254652134058799957717527985998406859214391876094345507005693908835803348764513398713251897481973305551337671264969573246126297808445662293836149607621264321882371765674050414826504332680062237877379452716400091218727428132633356509467987983730314977599080120446203803688335408285091421159427560571140822949908975849015474367278747181004856736063492353163013394217472417834422442331623592020042232206636374434665327110655766262760168700503040842158617593432717100639276799883784101315304014287427379491987924982750893467516355515901770100861545357448285315423295514658338501313053983787214388829211610994651419200311344275169521140871660231069352501999711267137632726889071664527865222649695730440803239937597406562290856201744567762661341655549379059340440872533116636294480318627606182836047868227848067387245184899465098168202174781281299167925582991646334374030328294981677964608190945187354509407499306089226086928101067153048884719393187783529035491711896767852597492610285396137811964280830616374481749009450695648988640933695766033362419161951258616762007230395097466120847061304870064191969458597001087514874177334006705414517371258630580692000680027856615721957873986672165603984642345001163331209345611067166933456849112025800750789988747146866120920688864288125015774085270030746902410981040867659564325744943229064295347115345708039330092421322729412992576709375092820179776647330373680584565193057356030155512197137392735889138442856959739338778152725203185560844680300148468379442266423120150012505455931967889662536440317591883453163727788985004107904617876664428796985341932202419892989728965127337654306120636950215942897960716556185880876081963222648142613839840166133629987586216302785544408017282245624913820768517187141313412265381329609614576548290023143469119014190314171153775673362858435183507236256238649595661364575100460080804319329312466839123219007536974350029177867457571301195552092766478850071349102773346222432745787990123348339344970540189776309878189155850626928211874244787699027118688874901181242587056795583572672097113676580225485214466680287434703299138883871267247767754902918278377505490187882861561254051834593380688597659039442774260427701501438622587676861023958501282538540286280911539551729424648590601744217090832039869683038042661211347081932425057789542720182941780621663922647883630787892607104843047971323953854259428201420258733389147148907587847126653735130245500498679783954390871015426716415839878313713600705765621107247525911131843267522492558494012184893680922518746350824379447855170126008306049802753344918472077882223364863677431885836753942961241818747834501815756346670880140304593676458350293697953963327546950925067101995876788024260580638397412430683504086180971173461227632706518209447333484833250911972420103250607831479813436659817289199099930640837979140786006293678725293768274032344299219957854141786376999780782774649485719821652507191014421454768163397305932698848150226773640399893168558429181222889878386212737189094683465367633648858773541459906615586068445957928152698809043011070492249033705883598159070251931491944184380454795894321223486780138461040728578295499894884799211311022134862326365985991251969825596554335624635770866447610711315797345921312008167000761771228840730459844665731945854090859452562782169932107429295498243605371884030941491276320950111493190652726868290038050500537925870229691427352977538428441255063099618819723307053040141393586137544816570905703274092786941933955912405109144806015187275348920248019981618646217807837999308470973562440349185531351725860055269419105599148577780077336371046146877830383334092347069558236473418671314181026495715058431772181909629692028164683193862422482268516005017937528915152248565584072117300583433922876728910388047086692274966457473961343808318423412655936043115862009287675763196767718908047661844994780462955387731524014320475834191638121162332529734908583857416631470023905567120945060300146826710578531558590448857860181422439017520586778254855662099078045226499011493202231241176856287382519952420242014645211490556161833528361786400763969261569642521341647005577420322606363683564315061487418431454411887047939625542881828293695419299309655711896996700601636402951829906627804460775130510935709675361336113343899543598281416963180801015203146654812320232604295362845341627571605955294627950777356756462675127159205414759546739268035207422292482935179123334062664376766850150960084306196374490176950147087484937185955365634857211871257812999229275703470640445738972957417953865860959426259595401733589376113341929130034790314147898742012086428052091352811592291245898183523440555554807121776765264417349518182666000290075942061635954934268265839235144449611115345719182566041012288411338227684467922193268310500339882450910977333085706243289630238369776541388120074877855385997080501244931693003890055502024554163835466755471020351732543228674699704211100908877012622341211564543022893409660906350829879730922159811232477399913325983498470369619111092944876105787423796935330801073576925873457569893974025188992553345132417136888218321029245407872087403719211382144667433082216992870094602255578344538963747975383580558953097616871145018858584355805930670558130024472366558850109570706859853313497177014675399550688180867855083891753024961072246571541997957066847871759497566221882825335411512949241480287971979176276634037903004264541585926884093260193567276328792463428074287973255394462383954376476635782576889787615609045358611904204750723919879646848457729477146201453109185036728335140569245530267625287455100137327419071623324977042664144513663346005732296124329191181688895830372114970900006498000289557815944145622948128211917805092100423188843067431314544181842805140463974364718637360690368929087594004388239956211194655909076525205036265749322553421271386157547315495030377702143434837372682169095266201797441309862664594507641385841317518867068898686393636473581700891967934622980552698059353563977093794145666235861560243709487825051931253271276246106481614339721611616172465017456557717855595871670972813366694191469547937440007059226443601259258837237235696677560484360912114761810097292610059592573670014916222470850180382602244130085319422110537263029478672041269511240599411449487656454950808781959584500852065153161257246838093750100183317982299331404983215950311305364144794520143917182282896674992619539654793889231069979076004279215474620424938225414006598614390570824952526716349515084235312809702488372041009999984121310054720439122643584719499911566435137389579962553856140232245776571782255931180673248598580586405938151967115681621396100436251344509738415799967242252511446163566090421762784706412170469209129701027023676917996421048377936111950432418744243692040403748662747766080397384938670579834809966839618091878183197239207048794376638621779013486181952482671379849143141878511571227847514372816255028943802468238796011053158298054947735926756295558018428415038834948596722504007386292153883959172483372853123021487008771457205448554952748864008549616594096612634231042475126530480666236647512231558814197376344392306890232176331389610012665890095867702868633856051746995516392801526281434849451015055741927472518724184637572075704916328877444823087508909451445170261108198968188624090902157138598530318969886933726528375989231832215320697179101382914705604568485845184258878513243457067894321730641449959893685183708853704271584940491572666421985326541994220761312884048738529187616168284521564873644875676363699836307904646545680608323672196024753613744528708133232645484557581823825004614859512544591861625463395977077159975519463893769407046213730372035062252850095670533169963538271229896299694056590877938963391132661181994424399641373800176990818070164092911952874916657101858708208091988019456785403867256525365390637276164365311589891161444570675168534399466241954850986714074012187021239300408057968909879602080404997914162196935727135524219919436407426229993758511967783480060544084401516473597924981797981366614598490605556445974170371658786853630131054719890576772609297338218381000450452753386558487284804525146465622762490154231821645994921278157188983500193623955165905918275907243014433249784039941530766541356927597670695122424934795641760639316037829539977591839119530456710399493448379445717725526603527534194886940620165999147814055021988816871363545497145870680624675077671841068834486962031846606600166041567709094213251429678155587560612137571398849361430543219346122409977182178706849850007353082192677793435759494282033452371401091601241267305394814579519083018068004438250576214115860089276528419127714627294405905462253912909286718483522058872164532639924853966204345643511820186685953087048232220082853938340254583662794825252173940140296934655323509870440159031712802770590819525683988406377354184390418547912897344474354736827769791716188097028603897504054455582207739237042914539222196313482393369189453260409558047891521030103347960215595298514958237023655988160489748353499697995221205967820783638841522529574842176773157928338694097272949998869523503202097585215354739801744097280396252819700602662817532591584510933701626571998476780040712636873016195125056308118717040209961561444307484555374347541984845918921827917653032063832066759642456058734433948949163658509829206735211427864577866795598913978434177660847830555189770866776571748276183810106488927641291270628866775000256532483385905212008453274601824490924680818894790019766010875436044685102767419488432350608505523247417960131063888923807723245942813900981875045323696590537761893186473158305147405737600331753002066760236042590817368436837436143142428697949490072711733830383366768878925688589521954385702392762680966809113106215013748512678721555366289812859425771423064213816825504528718080427313162370146473577021033688685847864262682792471955056348352094161014336195170646201753539738970489933458510941479807501623553664830522770930224141175292544214781671587193759367379240580975484962669550767081737810674329209298137884618794075173752026702186769680105819079010340319759908157671341439144748043547979247794064541017142702083244239878413060356277997192630346116579897062866421118789274842454691801379714790256108000015822603524239057027220091941529410622281677110634278600025794910218519034118415023234508772524290727302853063839446088475808422497683673596532817796925189555063860276995301084099425468385069864837076489375882481817311397878203173261289739509515835631649183711486252332104746053911569491878308411814404211552155941199341962831689642277714662996356109942552409997815223110746004951826496658990197779903779445563079375939448656008253597712961228028186137079111238261209415030888836135736003630258871059711468557380445225658557638731942283789746829048096812820103151657062725200116932027889058470704147209476756063932127377980130009023756871645530784941762445292951733054150105549069602117031360972077037647184656646269807489586016922603543482706995295299585524016628928735983619816427738707582902774976584118049623136099736593357921293300629340665676563359736051751832006562558257393464286116518343053704800675810300470838331055870401824753961394400981861525527886706295445624518530426297235031203763513782417092082920193916052974092042549074011758564261168637811525320421641823247568876225295567880627963211729140776913474565265346870279230428021394557539759747267514775979074233846874948138255664068271955379816963780132314526156587790106383789978889299248548725297828517584484905312220199801677500876729899022599030317257010560733560340310759805541996028816827866303006035904739185943130322637558907066361393113313615004617827746326679691105877656828519157490224002358239262495766381659990155942852858343464892010998587584436509710823889325990499951031328003676128387743537689796235433114859116620334968562615607617734331222866075693063914440859974796584544418320468162760058345882711750540846485458816526167053732113381978276403302429860159518916341669582824325825646574744649974619994233880268018362679477767497487768592217461992044602646826862066019206104557615940321306802410114966262816722224199785049363872121744596610977681684475116821062614698794053907911905665592942751522010150784484363543096260880455284021553292144049755915356587682652267054039131823116384915467346370210204576805179845663010892261070818359519841217276191258405796748761327000668341394094554274159639947644421412995255718314761690939975201770341904216251392128063235679026824136537196861621125020177143263616779652881726277739571763213328180526450227900085460499393608075615673273721436795798078632774674408084726414097389924380073310489271300793806740362515714202324975627937335399028091654418130897847613094883371217137049966821484873215043526669802273238815525796519715864929966801763069206003961210457951682379775977276113749936062274273233803179256115987847217678913840836718246708300840031980594480417392562548321381963204470126541634009027995083294989429946290853176970053814549815575493173636314106255832560494760839994554996274937499892684381929185814096311101049330847596724510998966941328843634844145335308243633213107165551050237418339206455614220255098156532936998529665750899132570457096964598802701931517911810764418391821986283131658917518407319822502149860684659530038839608986194692515005079165196304701863466422758134571876476398749271103296812222727902107945949705370228858668044113364415648721406313657015872722368456764364903292984908742615069563004164099950835733864762952303250593981183895930840215831529706126950245002253478688717102383566593184868241074689986640728239750618644428880949055244989603137327277222731432647534131393055646157486412187124826702327637639827647828871194991478835224668778041351996852655027109068085505849508392325564914358945236632531813793282624862964857288791720244042252870423595342074860608434747678438453345502466110164298953634624444421771600418244185003869938167037942407112879915950886026479312243446979194325383999718934603088355923433452406699239175188128474463228077968011586203237923322305753284431309418621010068940222088372756747783222665575068729852633259834843791435914033690939880980207559535177134099857408070546256722262657798130096540631253248984402005384008630286328130364711553694823896381633963109832656230579969038527112543035345097051586217079923552375654298636225306194518787386549750963167920474528510622258493375588459679259107370341385808530465878625892918440979605719972643757770441797259688030317181235597546724498612786669000242814763488408940013556000444986986346837840719775046394493592464787306389694286357013618552330840244314092818483576989597345470999407306064433120628663741840056043088340291874637721548298888682615068276281837021490881582700732471919932623426825614080211541034901480379531396796300054170970838221604733259245591671134198533691829577846455347135282397459376620951492346976146431347309707409239129087266855957405160602593799084037540343299133752066221273706226369872062975666151454948504644188048216687204189271237243370634351456801920309122951199671236213992206787555824892134210266822841611744541627432656191731861114639206881243767534074216781570169179249624843035175567024328186618935829763690329568960877387893542836381630732363350683497444022567424514568140322005146233900290908404193806271280637405852644078316244277456536548696454383896390840947764605954113118196639349354746683741296886223269302511365570264135821647996008813500028972372278927680325379991433432808697836170758641401495677779445909994939182201829506542294070511352933002763471309963247273039104605849079374173927164099999947561743468061178607429092398777399738987670023365581666760305194137295722589047441581053596101409775697559644449181412186051508908042179072057688884099463585476559583997781731909338520559696455920108881025027519843607363132328315160514172730528243037485203745015993897378437827677867488429956228528345335926738178389431522251237456407923679520095955892360886312808370036840950646921656342105113286408322559288803208506850654648893110273456936074498688367644148057929900880267486314740426602630454120438693895740531142199874810589660456230241961057220267645591903522547945090878532783253377913105611936851505734341986572407770537003192400499743346345899611758283970251763768054810303731867329881918381314112944376251341077038963922152913356448222429980529089667591766391608473408008714436952846895411714122271285780208631284664049867050712465248625781758248617868586889304179265500014863931506319521808464799082923533120864080296429457103003626948706527300092277682713414831052018886365589633251037447911985405902933392934151127766454165421625360263868713818504114270498572188095289641885982495509448104027899576211492561445790985394565279524109565588579503750094032397011973562174047867338464161529045407149792436479247334376016727835934636965221660649026641905532477767721964593922104057663216100037687737779150770334449845310667048440338200940299933100160939771151409906612306761801674362882981165860764673820071060357101856471236623080070374809623538256984642641773975288225786520954886431916773562318414638267787389107972255838627224376472222194090516654202746387916453802983853945780205538958378191799823169029206978977764684739696215023497470178725759886555554602563088872744651038126298890736030446284656091296881252762334844046363113307798960748794901234172389023361869432853546148669639019291295730397933168011860764215317801312165482956826711800792931573835975247711328520490313172267363662801865137607599450826563014522138041255076313961937384031988007796792707481867091844296708697713543917112189428605565755907853237849471695542526536253885662104120784605834089631338905941713347134273193517870096361607711551222478281218650972211686808868328806735183920571590159893522877632842193070949382394735709778185424435951114605419355343434415505483553990656895663856144271093060984895483348712216810496482077849715535025631252746774588340831602971934802767158514477180356291683471298319853115625345668341286423876049513716574261747825990187476442277125822275098089854119243465450947223880214129949867324236982559960410056567141973078344744725140361213016608658073240017045493580541060357627958576506168637436320311932730720714737405655367426384576734087506799258184939780762121056723920694319670205618489221607455579555058022959648852722091333776805440345875717215829592651886988900588597897043382329060737633703633717026953708455276895846611484749765759528915579539438908434267180350416374421120499306817276134666336478975605781936299658114222645448449754678901754896607810459444541063981612312806961328534923885748250643212097128802396712719117699341720359754318328153474990815493035003758612400867784764889228766574727371164777257410729675198122856191408556243611769956063718004278709952575166722601119304037701934963089036680578506360095657203402801712474454016698209804006082559701206792335752671967667051629398410191151832468875054375478013793042573944590798288519060050476259747163709864187249213404412207763832837055686278315665578242157174280027576936770225354459985011206639260238875491326267009070976928497049943484115454536329872454138563912080377400026511748183673184506896995119190776549952440563976801666619399688196862171438611458598705659897892223989231217903551360621577601221492043246433353344440824323866656352090780479575245736626152023724013331835825144613330383743137611751504816895666948000800552992381278925936711264592663427079107329012304765521871678673476224572335997614014316211865305512199956115299403762973122556592910518752890461864989046024863970534211101602532322954358616337535995639444114453911100747375969444720715027218391995582121258923304715789566538271610671758371322192733260917275495809899125414739265281234820118691398468577311372036651628406431090905096473521965526414123870379382778190347114793297301491093858296733695075457543015315644943957688412787774546902577318316410827662712098880456269511329489564997447164210507368849511336143354272250542363233961649827265204061421579909872533827232874149194798329919677616023359744027900859339113501838436916266631827985200720253312854955222472954517165091749574220521404429817717982454455261583696202520238428655288664890372296677065122149035219735481639740875454269440563788246032921019098929828641348013546631475935582283235323072372760511953254576955867333219707856703910593102840111673579069732884400057354197598866341331781724414736785787818064120612293102336312621929880954104579993567149966773550772574917460613780825284859341037087364182281827476809129948405494761599363420725853888193859000402799882169405199270041437547026646988227145429940891927428935124531233012910246544154083678820040225817534787341417288518667448887094032565911222165679961473464300829158345759898916133668102558555199700059337003629016237279708919453710440638823807388292336881505484750063053218763488282481749251918267595049919107341178138883578002187704609633221483029709058947879827305431082158447237408258428359655720667792404517310977424980112314716412862355751429126450166601433575214826494499605098693469719540574874749442331084086177755488935737449442137126772299511916495872114736409208741530568887032762391212845220656485059487501602178293881735344799183667383284187210121406281468985437514434048911079404164520726129132763935400552719243110603952079264117265320198594375454058144512817372964229804582957660480778052964697367925357877189294985279130844851411264555925642461590339069508218665735923605658496485805925096043462330187293866821430889955902227165031099571093223261969287818354143541840609554320892233115466549227698365764869566129811345640122070094221541830640872565951055315629558047910884559570555683194183067757699121680525203361361809358201779193708488956766001461077598694392703825837878835536108872644945433751724233957658268100745260914996083263091461148652304982784137548300612829877334388864096895571731299583778110687473706446495539878190951437228382765942231182011747102563157730970218682721033509564595243837541973872481040365762625624649782869148233179257587020233667189712225621329695659818370267417714645356635527155240168178001091392788934159491114513495091598135346827264945903923961222965536951790591068194054401409613650125510964135759069073356921790661394427832384358554558392326019038219380936756440980126136897008466910660185481540941484167591411298978097898207501105806468077570483881209872912343731170182271015709533608051604928029781775031267612118843175446128394911825905242835426799833277125407110811481673893175714886259398220566683507958983792097836612398966932849980693238557823297378889423351536994188420758628854569152871821511187556785796225747136816008682543761018359689853761577170655158149751521823021574976120960129343930750680993535936673084524693567551405409102648098452414454300842498981814264053403981568374152154316038239227604584314222064177551083269686164021407844124085689278392516319684430111841484587882263263648469360611492192334806933337473940500533331575332000417942320720778923435291137035196839347909347423525041047670013815985133339114416196067011789213540970670359935351148991244941396935804453569115183216605858437119247649853307169373399446183834995441547519010268298873299981414030919184681601813236874339695109596704889726416524204156741672903764806119519990169399221010253132331217617547837417077150165335516945560805489512869525876752654860348759974232772140767970269674850701100154683949280174790715907590037911502022949958642160686996865685438971052959035708461601241515711377065650456892741646707688215793528100026960348122727279960481928567275715757020197349592229701646254654826052292625066430916394996006597808760762138214031133383723756757233432132712595754659008685363517670802205346107954173181234509296983142242851999719373467054206977602020445325129954707817490636120473353532867300402372790814406873665984003091770192146113947829025826552510226222175917131534253701730735718451262231641156811759642737097140987834473184379806627074987450612143135694700203457066130641228633582041062438792951868312801586021006334739414105456612499355461178460721856685532844852241652231437833846892209175477827252713398681576897758172646194422486021708131353024553770375560424535255182726727084567205966245539269753789895018535853656054254415763046598443895464096143490052009702268746158733545571154104453535347976101719104641498988985676979513602576156033960973125123845472164130848714980370123200743041052249607588125900611006454835527282530559082187807705573230845196616613818462181748225324553165855785754086071391002369303535987659690137489312649251072235319952123717389429657905353070874624970237841352256340406286573602313605369742906843427780553279625860567097843204619606317793599555221100761695403322609750976805349636810856503750647438828481886561425256880174201407014115290557433141580741058574584528737412616181969391152676271621515215744083764592408589144590157664033143388586488256520265323300184016462930101518619627543399431858454250853915355128043597960093312692855799404146018890758278256776669926062119124519183071081526660467975772044250525240552469849371311741362673728392600385869010601917597433426712506425913412216238500642000130885830136983668512704156620911445582243555410130722484030898115893585282039484669315642737385053804410398051672532071169277269607669201944647122876666167684762115432425296116664088207011277781184415970967773101991546451577375314280451424254976382660638467605241968643707318091027741652561553506520314505117219196710219204950886437096285936965983249926412764626309136929807750337516898548148217400867521801066956127595668252678110543229304893133010758870024932151611428599239577136561447647906729500824947321578908506740959867349486026877393486126663840472326961292159863799541099192470509488517145778519651529721609983741162702183435998397545671099596076207430967276479787205374605578209787725207613102559476074126858747834670413002933337168611255508276297845004931502329593971974175517068348815185513623340112652768397493556002488286817173252833905513554416369050799211803514263595664567055922694452300519151204758068964124235375436063232539937180779194129813015555181218356917528953542290373888449599668764486905735501833429677523910029954294654679860544615627425530640545091116848071630335254516868739830650827047840320190675752403469264630279673633331884362484226145123159084711101718829512937968646100945978889799569683222840496693675961719293195393332456803877940695280693323101945113966968082507567727161514813478294434855741219418335465563475984914379065436721295286978002501576445410851255077081409352132622991676701911718380538282287672611184556239329138014031119206897788339016361501536064194009971072002680216457506443388930466645612264022966005556050680598631417055892660695492447182819202475486343288722296121859735206437580897417288089124267696472394464726274452190478768374263441181523790914599238376359233573236569566251453970794372432639296074480922364468160647560093423843954566525064165425099085589411597884574084043027913416546669529823253519595537301214250102568668480946172219216299194262641957696201272421059227317431796773931142925465345658820492787676985812038111288131999141509627531829144403070594578246605163204952658131127276147595537643638104451872160532770174229246152133215880228441120245377678332781800890281374567063675272643812285898694738486342859234021585398107200145629818779862226443682744513330531683948596499929276565464397003426742315253345046082889708483113999939970957014393488769861989720218056003333453360265090167340078964078634822658179476070547105613689117639021348155390955053103883601031534790122204815281113513913622153642513352987780822722441396570196561070845402669369860166293825456624383656415280969110252886563195228955528326190493879179930933167538883574929537137316277145592336673116299554645361245625260914490245609525841051394034893001421921046461128023132157555038257671582493788945780493129922513866409187073295857870806818745069059178426940921597080280213005496138824198339495025906700066876650466125746030128049401470054965134909128370959128163201510318779077423177509357654163734982423087354362963509314886008845671905266657511253813198394415965149311076077677641232693273717027674313955240948036713060485847918057158653861723949050884629682027427266173360947264502108508014467394696670443461562504550594482759581362689233679843444703526343313529178722464918610710188554308236290081668820932937997561663767747402166790695667997494361718582739938074897101871340080568809612055026623434313068462730196684588948535039269581005728599754205414208638848975676551266424041358835632639814563934011045105536707800409875538295970430486398260613521111877622300004710108991453694544284533991625953412573769384190811623099022464871358123411562872964208283095622117819422491800750800875771789874332039048403616842457504396937684474068785043029308353791458757289070862844699256883487302310450715734766499383383292901766685120403686603895375205737520175804422845683932870420375001089668233156063077648038644408507551456305602009478706461013676690196650314845001460535963659925514384219554728548303864736178823306947057574802647083042464017853678536512040751708918600545164630658017159613516129607877522919358620048011289007951093291112696655727952693563385505963447720852825915268359689301459330346368420147517890660174980963154895459190726043380290854322581574649280622441887448996390262624359296785423169077507228718170544438121725743931755857230359150167678363231677465186729722382650945867470707172458157116426208878141492001330359755526979202436790737601247145787969881665095973682833045111693733978565709248911809297590010223959092125883362532224150593095247017379727305237104100141976907159511993250067760992329635174467412681384464438202146913162195057218335492670662992703614310837946213149058742229668369857941187578266143319971651123411213448568341316167548165837505607115084755356007429518715449181462899200755348952592001743003304938413781261714260318423061146964516944939425118555693852782610040608619430896738248052155769540406156981161877496922061306962110326251139012958341228719967306935959804676622539995835505037327574625875939289571582870914546757528342680185808337021908403980535932654709054184559043135749704730175694693271664629804875254675392175186154867924246799472355113231155489700226537904980722541015770824291492677101523112203862440990956164221974163282438428850135523189033573876948002581309519207901184090277040720476137891342071562710380475202909553282021744055532293166271207090621227053559401233637357390746549351451384717896626607048751662079430083856774519941045747711706223723305024615405654175944139744700966526232086099032635188403883269708970339336545194921742860238572662795858612759177174235295937215388870418542810851509706262178809285070085074348682133950757610492955877684669464969349686947349869985895342093888562157251879453930893452628173215787198055229641576015172274927162774205256327631055961720811365214595783399626592618290368840403845012959644581579177462346133746363105468292025537126276441029044409951320905670458497431689009367243454403462644855652290322477671286685801052150893505774484100046267607358490858292917697414545307190034031543592226114277355624829577449245696882702977122851087460955656962661964715696141233693662379626951313333692741481805022219621234914441071758150754005327775192492457230696440541507716764889413383858739961454439241634114244852555016414176212422770967433039854092290681477007621191554243637300723664510301739054414318987490050827571281191092226422925082166650586127559671188407892490425865058722403810549529985270674765166391899020053346176817227326456918934153898498740927985233862217193901633436227706994930769328403751966607489450152429812786644230869310348303369638054912355145610326469984132188043237440225836191419978239117589701488431692933725506163285883374015432471874907823051891294100335208386775162345240249948109413893030500056618838501445497970476222433401226735246059304032623609235546394146006713702484277850753346599347936593721160490861177983032833683043089796135447019200389176550803321145815686042044455831261274230545436229757831300529921820035816483730607318599248877026232435709632573816327849098461782784949482224053598656159874894842128584273565584958919041154337150343916950873231384540769541305293392855683031022981882730358466218930034034980848748060021806596182950398502834940192890696934681331776009338528099238690056945943453792801526880254069792830408992033564522287343752323367056718853311870360896920910020384586396353568756556912579004937039540078176969993492428028925604871767621329313974203970359781488070808556048028935625170702064688218600713437999302621055039769818061534428262043370347765320030629303060114676090359952699974937272967558257332356315293374421624647380570336282054809411952416632369037091065760035646676982678566261623620555107292188683104935531598538027398256077284982063316429576036837036643479245520072244897797970410708421043575703880756451512039302548154253975542808133781547367541770887560784242195373995897055023577407790970414631038673616058046097555681327777317196043465665905506360642182498890621242060031965949827494440128413923744036447473779847914088563596561282894899308250193926071659470178311241088036884474455677611790573636913540239206591889495668525245319144669577280666915802570855072887222169035809538851859888897455343927600133495775251798057259350797934255046678989608729980137804725665695541609384979852953574903757488338500701536993110350875881256056592647926525135895403448666533535426032391497463443654336554136103772790257362308040564703899256460412896006627774852019288402389385033369143416440292060058379479392442196477989932384189509462727135645667564163481425995700617948288242817918413018969412103327312007257469530364210400866875549770852733667727157435848868076214880417005858410592347989876007285641974279015268630291028724821346392942772524553572521320996481375330443739080648030265661050252597738412297809193406014423325229236858937064910381198515365390014751411991082431860393726938314527321371618497229541788760469766943646745683841260953354300063454394588158243367464257573536454586980194313099799758706005518948713807348105514421654915646643893267405437400079680119081466725638368224183076879485279348038213690918618327727753298187420393319238502408453549745201863929839143955579498244271597203149532334867518949603427333253106174244409472192415808314535916909697057170664073261952106984439645540149744194855103116158664091423983382340735638808136165016478234256441580933647554510453503565808037280420529364684729656710369815219393712633817954680700558472688160373804796707961091435519802697831747821480553906287336630664106494684393531174345897678328287905870878214581001827266968891858693443220731360341029464508760958895900648929566853170413291594077260867525149648422326682234401963704693712799399113484910964633298723510769772618405276067593972576659315129162125514766298589790771100721924254153332440754911696411982752149736158358596146056221336498445143728278966081005389480320868055653144929151861661769553445628349669076249778876431134216023773516886476748914375859168604046776680551414235296505031333536141788404308696144310386397985785873398967889888554023389430309538189558135784523657078802629504905961486895656287401998862428352006190329110388088338651876461067884590718788457093388599344778570719539670698018937653059629483081765414373373178244916432572376657178320770335693799478934540487196582669146510871165091390055484790391166226197916364830660258719610080642383624764270393373041137916558582999941402822238796591540116999535915909253781628422957895219172258296032492187586403924382250165582938066416870090786695668906106477497770106188480286335061996505183327828100851139152033091918052457991528157062456512596697558853963321304600473566505590641550445777832041947176547665648215679546299004168340387819560478117274369183889020795938072072810849580363798037287131744805148277645389723409383776679789605956123753505553711922420823816200985790527793361581865535093184979155309978385534063748746255583644040161574372163792508498920930615511531545558171009909703657101915788480845868125255080145674341722447538185492613714580773280975422561852657160957163202185497153393155336450415156389627819963503502553842644057539566643510232892836541186054466813710059810514851675381877901330535112437235644832953080000631094487520094592846066439843551010962981758166588301425554135583965951559634212134273418275459405480753254458079325270111871800080874581479464366900379375242763394463593510440879933716064742843561534970502666180774936591661872998913338492429703859274436378619974868204432283955523656661988187263324676078206136214712330629462738753462751152023533037995690498559507054793205353757151683024357065094570823497735300667327467007197844462535035216386135551441034992162927139900561237012591002395890245597215284445758696295429570149471274113951423539462112828314746827002070694781390286527204635816404027039071935581848966436847629821378607636087607836606734959233579955613651501647731632420260515840704853078808229500630054465390535663158891442091073601474740282381165492300730949858554744717076399134878253305225637144896367402314525102742963322482165286967984905122759883984088141174257162871001196661036896806603705840407102467557272520909538662553205487475855927097124550420632415563080868664468721288025237375431339160703500575458209615785264382901083388653117013888302466897707528455390743479475371913424213796406084425592375777974397754843602195815093423855769649022249139124966164183541938246673875115555170356931182626217609879364955701455604305208514972084644511240934146616688207278670816821962163903090750017535436499043385742148914486491386462058939038083060011112178132834980406585673642070765803392097353107807388594063822287117129790139789097670351776484748944710983869406216720949620770576590951557627534634890127465278655554845778758827953630932110142441587469372877310067062094320821214836025435373869949714873122475658998007468315810322185506763705791967887231822757309162886598714568663874292025274753011844379903776601135864966893887203547366993868182461684826823425118896593968559085785317429940497440086744977622625892871313301685155536842086108332538729606383768952088085682134034928394856094936832222845120654516749069222528572471528525396092210431079593226565194645141857584252915588698694720676847110150525554582508011664595680429884769101059532405697864947950281299194013744693723401182200818566422901035461095816214376786368796175222810619099260884195396322256838899598618167291179491215138700453355756478555825809551483212089839029834277642691847397070270268467314303478939197844225342600115888429519646055753591983928116541465425559459469465625463720337160387318121753812620168302184613861074152814221649066884869487695507122936485512632461863870131167889490244067808292100199540812204697356195465659677334710254484490992008084312408853739784771769258578995107165856839196781874767240112184763325015442755227119076418697742605186340668884150940498789660576471593783114826980170975913615865261728430797396022725655477462021059091139635977686097783980829397917543428522231266615955656618818514630175585771558783863811297072909862970383838067461021788173800810214283907121417530905372269198164892298706291623240363415033871759722672346667670315767444489269928037647914661729182941166817354545047573135499649215666845352134731233678983787022228404095758913283959250241282122823027669955728398888502960293985682386316757465916702234795806501421045207644737306902162186790511297795094352945669739066496890170615306541125817753789531763338773433244140580285574283932562327724816348440644365989958433543551561465310555486908529914496364030383031102512305809039951986253533504423602822364982835999068172317393265630357512345418812173208560539173034442358155852483857149298405634344145686134428970914218384262033268717860678328379491164398929748090208640426991827176101463087389135577123670015227828432093815732768766867696262404855043275951464583433261551991528018235745653663136965623687353380079924204954463786487233830209042085141597150140985223858095151521044072865645373004702503643627289920352994762626001436385018288854531757792017997480109661661787026017089571143733668556018561266702468412332089044330588422466074661953764243931390104506600039074912808010536303371684047432266159167660571092874020019269846785186782640324419830347217941645183159136700150710735126614162856490047992245478961778385190552781240078497445112259162752397830382756790506579526428846346969217489156640965467602861568080503024767437737645245840937989798317784775408979576566068208358636696293518710079272349533474793154977971265106069505979269502759388525873622328147471073537134537455521540725211460458315634634106767501657361974910413973511063198860967383177530831665236827441705692486996689062163775934739492219304409175310552359727540771253954725041681896844747270997647290923716319669225492740814206459077938206773228997871674088180519741939162725239085438850110886003186894931899040293893482742282285227540919047239556624008831909199345429948112438509792706291493662303781037895598038858787916563551341336001559216909456467984949214646777941631717453461728332209542907957362370692439932519078892278778058492047675179511840998750028280183819409732943174427910744476043718983949994776597933085903159040829257912254915485389247686479044167160883542330103753407599758678796236656046822502994805091334546021205718464408102464261003056364173333526071607185730212887950954662766917714401860937386089439373928806667587281728500734887166759729799368983493829569815363769249309144798736789756975590934862759554005053830770461677629371046833617463146061626476096625956341575218086700689030445099448498743453164125124722990729623200327710371584059613753416385672864002017591067710718801601129237519987885670957135315707259024925699870625699902492217674377838175569881218038674453147627970270092381348646765064578605569863537905414012565402601904038182468158611057684105903624059597538161273656250769282531315738359249264877481189240996106490018755548046076432516187691694731134750638112416783171356511049863259348750919394690666422853288430431163720265430337760122852174270101136486903960619445759828975777042902029663439257116725483902231174108989673522731706872875159056527459209049859501575463350684071508825852199498861927065280536260008271944552138993541710396327091688043061369672033562093885479254106581725780740993091328558943947342487614855632433120917645102079815550571533617565631181811024993242070935327196689584537431467050603560474798065268922838775316388942299630789582530978001263232841555872145511511658510721228005250230195174114166693829906399311824911483085494295692619501760374710833355849338385606828035595010411809405390222303511932130834580220242720674121035583742693439048960199853287188939154747104174209589314949876290721738693329154987469267346762844755857618933097882082895331630240144256456547875734406107345146861777644363299471724072061816754542438173381099297117156011978497215358208959583814245408147309489750124886604815660760964636914294196987608866862592626751160366808447261591292273606496317045999791484551133838421990438342979603759298700587323291349716842981334355153948343999668589701906480638398709883866211356723728441867368289443485650734089321005486707068085526360389122435191737681287884304611415411980617051407541174752502345201933470644009799952424799218821549070680723805298605535850691442044728584127634325669535906771957032561165508137111574156102729398115872924067347172443509443173405751130454813202323072994555174672857184658543670945055768409120719890719889661483468849731371234865544396524086575052378856914877285734192664608326230038474168743826829211660785505446437124017047188177836120692547352231361343388313750708347549610230987645957639695860204668844436207265177376282391750579347195124941222239970803230636935933707957666147002117136739319771387672240773527077711855793778472216297427155523585209496852898140378330815555678963629621794069453560850038596630959782333872223213478113421389079370647868058876389876838404651097305783324656883275167493221187053463084460590470599330870813627934101718362288369797253324599031892986483859403433101674481975014043812782918132923542990550541227132819341138551626097681810097313862684294958890951714912293368971144332049291953821672318306018232002070436584244997082129871713561980499459466490007781136564983278147468478591733713148300178342994322848091005281748489636748688755709165180547298668111470730228784045636285830076634589147339255637845501279967122552427366866356586267955709862704931046526127993283953645052751986936989884838952322713002987830937142276542648493783673040804358165830489695626430105294210404924036123054599316466026362065594415882195729287172342930232783860077145413565414963579514389497041486268448181583893485945330349248559527380717280980843716994647540045810117647828517888567487886273187547042541298527917736737177107411141605298479456155280834557583106092370104868412627516686359641372862366103272326052677589834182226105753024988136559340548547442367459920145464891171684439236942011806125776210826670713296582089350056997745435504457735427048395173984470130161703100850729712817294681453661548137548753629343363845880705508007932753023874881066622477950828321415161372109576281150327905925226178177109284396543758266746601581168281247596516774525678116759874663581151291285811020130118711417080483847344964706286228796916748173679347857184751782940186637912469858189905906414284268340634934562560041842129192114625629536753591991762642424917594035803209614515975559068062617057871516548921385012009810327792983969506315941290009171041140779423612925902962342043653790897834473109771683515032919888192863921747968421963229963476226764846109338304021633136917024522573492882871822283981423542407962151017973390278113043876682372016386332192984816390422537613567924022452034499182477403420949253701019340932983338051822836464047105504525528889040984247332507638889131679471207492678179962777107662747745936828347564467336105056271376446185064061601936536326944997974268894439563247916702691773494961171857769447272944771028144931427017164698958997336612926623734963438168064262852619094834476558445487495636418422021032784755671616279083918822730601343873842525023183854832451611990510286235703183141276305329384415805818743857936951392565244860351324127682271093446975464334339225753462427689484667027812320562761908446558722075801238381418337533133032751395264952236020299501283997578787789488048922190811552375081946920777151445192392793974629870500972008309996704487540159887669830452355911821437027470296259054126172850054823012931285304121329603373339043376077166129630753309438566358688330388485831274534156129119797438198805383531119701873855808246194418523508223840869787476656722435223728681358976856833720678686878134016758763488178231187945818785587138070540386809079045369845053983517172863081370673356895211765275171320691528805763146183008293235892210055068032257803078127472926073863759345262251220179678914849318325500683499285256635303250099631268265465577412176002741271217541359188165825676197829485993550973254367784448596034961886611145963600440500876414927996586785164948610379578764854603090204492773695111010482817985842997327262831241126305993110717729047879482765162277366041427596201175129947738520513501800767770250362073060056340141374205521044390473864368311417254479813368883896001415052465484800204449720445314841467917153100282322130426382665468002785094596174402334696615910123485074745392972340713028147717126233587414909090505341814591327550358547058860450925126100632527303332770518903011996183485008943723910006684447838281079405351979082501993962106399130519528890996434619761323739247676145192197573580497585127012661892841320515829038086519609759331430705442701021859505323967533356168716240279627328680107426041283394988045206162450538238578923649499196907196004364578972228093361601936859514999650935047885622382127792711173509435599834568969616777327703281696173014857006152459927439896065238910159963295325500825651061899037144283802870666716630053737396518403776625277350688311322513160365488192946540864224065232990650774887466166794572760559396529417417708864305620472248189246552570389675693445567898776283876042403133773125513608539951163238637949064448780659355596256712359812236789888079009826054814611982502968702363152761059157955661976965322515207697737276247677181809387680228039595563218468968236622266193349602300930198777400161252934783984323863631073989437170138546045719864682226706120119592982677669323668189777088839700936750219797498424983588180963064117174579471666062494067812029604689310829029847222458883346807231255646484422419124196761839505958039913047293912909956559127151112513475316791714847261625800862506178196923464667294921045015773415580748813295229526733489763404538635472128742734760306885217577349853066658450605542971526850032399020946268872587979156322850495991123310704006451371036597541754644625828011493331991114743021842681007743473938028455370332688204792677819281630607801915068184015047219819904700275785402711212035232020557651047757681373357116161468561315261071468161958555765260751659503215727846664996883195950265978404922494975842720519941826021094501104138672585209682824321779456849178595220051189159302867557722201086591475858945314644699780122616720943951803356381685365659405778104986138171265128297158627229973845722804072043612663081411182813927195057861011688577246502671503413585899915948598947969129230380559461201855281629512741185019186620403432466738813814974258940395122251341438758567538592444014848223729459789110772491247402942176596871130170963988989663063228383792945509073671511905638259796883558214120100010132191265920789826315106860859064731349603795741898072042649716504107583938006908176533011918908624034684867622026849288412943277850922098107054952581207326356237819473572803513956033944837993148447746331851572409585524840160741722128123359704968310888304277242483355757836473933567247086390710615119740247817153759041527678272954793040945729457328300564813606322209165570478847049957001136838803075136546594203358048930673263913408154335774583924794548366808055268611200527694663528887749092539053005384279020981276320799593730335773369825918593724958338550288044988866756589023924422408204104025479940373458250587391214315193627387793979592944427960830905179283096735646167475122034241444824216842288415030589218779070280466258038849840045891450256120553940315616338234125352647726957601219817970291201895994690870217915731422791770037977228706750482889649388055202993789999277337008452981526422556394614469085708954515203057071193228780907759398430553343036130896981883765364220785513189828996272825049906679845011731249450080803642727750928203679149126510587983387692016871627704290478338744879574844784585945904550258757775435433701846782561222960496039930268905751391080852602823202175117971773773953223943170048078751877586643594714513434608433419647791177347069536185464573349904529679229521993557686800813635175028686089442019278006067696821501356386958261797263019876438362021975742315713272362289229882358647088407734355520037577480743791801994889620709807476568207181523924558776392558702539249582683207486314788998886885500224147381484200578531685510415596766036376821647867912644719321089927458279872246759388553134913764033041632780838900386462392450620981839094349153696609392440960479310880810364417587841573029382931730073883201967609626829830221786578716515366536771160278922193683806287208839584545641277872351812977813274165981854616868977442457188464822221375736054440271400217347461971148630997820794374337157262788811589414673226434358336355235350096478708664699568935925266878911410324127635190153709184006445892176404646591644554407857072748858515522159849776192495878959413072360823780446271766586076347522524322182689746629006072563389811320635447998398708563814499898471160092846652136046630865169024551071653698521901177785216828843139616223208380592141894470288211336914284541649609623619730097420951955666921379251494870199882722948557711295659652111155240057338622256965866973914434483076727605021927771650136527534804359795519623761031675140795634011251655305519868063286134865650049555764516877892564335117494711249916841396522305808990398269578935296094124760552076968010238422236438735591428643211865482703168231798153214589155664681944484132522754313788702062291827047656083884829157378591339973613717010850320722882898621017405311399508714919518945975155729400158684519901727185917287405286992497189134054389479977180276481151136857274973309263860215355576902657451967114651437464542717515760429709641297447171979518384208429857749554057966937984288373535232489041461933659091979481240219974077677170190384779493742232730871776132215212803431428151904735620008728447797527933311115825586597777171300095925323546399279302112912164030178478321886164542396567102568052595841158392022578320420352482247060631805071077810016859923173970821558449036730520194808585715865572514562522521444172701885740487151160531218069593066519052044590362120929818962431334211849709201612926651118014666509077057475916230671213884504349432720752805576725121251928288827817418705853367032119990004666596830584533846109380838777766651189358231146914246462385467899188603713436789294663616799271998573228552158526107728446231637615246690117343503004086692440289020931050883890839135479576386260856627258932046259839191505595901235940972401281022486418166783240521405094146537072801116314256923273379475818117836797258569578965225131821860275452381660065648347975309506877973139343122378605556821136583612647190720577064172306960274440615257586799015931263933736069534725041204989261564853354488192908196011897665985811268683652764521316713974384317443801753604223624519444979683731755371664094264515912360277030926749906728747285348843711217838895274367248240036619195656325449599885717262356047607045464442541608196351909309363457404684931199066862201432393522354291680943733274209487722190218902749583161719720281421568835045278850900240120850060229599102479206615678288688794313778955079794889906746897278427920219459682975314088183639914654458651230613928792288604675254041015218655958687801731532034249403529156704253012414863699615494410187449074219815212131799031310960237782456199059243467379639700906724487896981354383189547170000966231220814801398089215570751867843787273879227422184274610718692532738457900315241769792940480389196066468055153745347125247930044537712226763771549874815258992644127220343647624560489742743761022297439209939819463468634069490818996414033690303142508125182459165668225830757967339049641124470472332056778183964367838512452800632137013408234329883526880830788563886667206309783060406174037216789631195898704953288946218933026898296397007154430533058579518836105966766539154091509358113270855787708390699643452243633322763622584148434255498793641725689717561515564743057743509831627623945871973540261394113366041364104392906036905449310186243973049598605859654186446157119880051796677361805633590416425005476587902435091852072553686467190145701287331623416307333841077212014259317954203270170286098499274324499469622208495533848281364029512067604902365612703390141617477456365294873822876086755224561170772286350353827051773868238816025157326423702895118544614838640645978299913010651505403933415904091912590385678691414582247562051212980009169867527725795575287851625167678069815184531518371203387210614337191321438010131910368763711986403518461529347955670175011253360009668575572730133834015658040821550299874193119544810645214572038963942940292650158306962910631779659969096050402641864810296546576668789711846562807625474016669756692930794196401878110421662971573552573439525194884084376872112686755441271855636555256814344202358736361671493736400552476002208707131378745549425724434605196957002892006414071425057637292310106561359634330323159348205218653753649538029751223985969732740788645398198445206704041664702366871972604419473491354350573551540972754392355825281150234508525765261950340968667078870034647228528753748824648943255202119634595909417789643008562895437244809920485952845687990884875334217942221043242867839949996902751771408044360462340085188504254130865679073977227575890832711870012054223536554007691458951833258884770889136105453019132799207071788838324264721401839653462116619735631247297948074375114028114424101409938511772936041112247967607701010538208075612103829205187467496752570297716186890729397265449021539940444398006317286194372537079546618142528433295690446526493521707714540002407672280295810950485664849844843598500142568973157961750841192382866114580482306273377664489895436602593621809598654165527352063960833337108483173252827704705774783243706682751175069614311337423339571029666383474828370707732421408610133714705267323266181444381978838851586483828468061775174924523456512303616536228954547699842480778881948106436074972273253515249292661964379256108194815486258810165417367633499629675451659169063471954803736009007267111137549217847654751936104039152086922586735742286260398960776953274113872429023679029910692862993888450288241922055108386471238584247610665927144856388091282664836376145205418010802152197311693605195553677841038725974320344655068501913952173024975447480595738262638357876592752208667776082752205922588121671456368288665276543291354731760577402998426023092620118456537141537033616546398912352563075585947279993131686434285494263425318020819375735103188332592456099398248762420104676212156818607574756893282368789229554802900106390272660015131320436145131288391710966484719805415747944848464150386097748060885336442254866949819017275044468317607935346962680893481359142597191967776246277948038617383227898010745333998753939213829916044068103647686865839956681306206137177471977309100646031220501084173126568068930485962538374089174982625517013137935786825079181178936580375740737296509095423132997094382118222497202371780122152112534436104824793283554016742006851073978894501847497736436691421023494249194825648380082050955434991970947054728460224537084576823784378733951573669797233239143932327611503609195681864461793425854910406950006120075374831526657875390511056016199357324236213461453731275197654586202473134541676949520555781426829015195498527461290372144543589862335808828404476113108952847942991101253406049411349937704278871409281895614857997244503416543798195721759625049780094569996279081864823926719284373936295000341975209100619322664006465319673893434358821868404765555959308651132525142426573905402157600942729492994352387198713979057121678789086804307757541326173307891975916333708971563774420644005082167052424553369179898049658837514071696242062524563792054509612986907017897422002336388413863820859537365573544782087156776654756038465442329744168909565102810490570186446845627362488083732709881815659155803092124788559078140023298585314907437077453776761054970048694681005180779336635947856505861570796267624161170926794897899154766502475119266616571092832473328383214539101207864408031577235764981792862342496709574035442504783605545539397305910442115402777271046925748438447489287764420623561211423019743186382452235409801826265709659842327900239631409569951845139614789879226886328671910042614472537070031848676031209929488994733652213708779725316961742369079947277883806011877285374845258970016874612791822210957693399020798988242766217458383389211410182817255530074863455585158634403397208769239518260348379977868873626782200157170531362663708170223815443678939988427453810242133312788756251875959866011268194712863371551420467224012660929536651065343930753935017517248958024302825226223790691411819330031562677465520662466292908999803223564508772288252127382830105603642057926467106788839117659831435547561437254457479315097638159343871921906438813940793116096937428501989186791009775294125359241384648848056314976953954062249497952142429823585321987527866717399580020210225779515350255488602585188648864885885725774425008606619158411009040112304090949885898951608875845800269499787013965260712530853996372910606054088527192418460299962626265214463282653816399277469543224495517809990832769156164837273451778190478102067203216188841031362910184148688892992603875168360603723607507520912291057325498056592448729014476648912999354480426075836508963639458767286536165131582355081000096615812667918088016729020035882404781240923626456901982213517236536226617071405773815772583109826711623033566952971413960456773411850218483969827764191822579025116391777794204192643436728395946771152097616590121822499558449697848935351462502743110224687958834183708700388402811728843237908023512399392232254073967552298646752279893676043324752680775094583790080163425595172678271790571538036003920014355459184712294725858523602637917740946149841554535576544523581245593404734781730860618765719141828292769798477742601126746422202169290165086440055880841012050841465772457699965182492415914003787750980645779242971892036382348295997430907239808553978925826938943622140288980037025614860677614561153474109508528737299892627912544065824631653411872966645962306327612041093709007491544700697820897413127086819081295700496439054470696333761863977492601054338159593575039269192870516948270914419118516701815787909391987806016629694855222006149784829341198023033137864008217879007559164823793125126562021557408517040446938354947943212148948333926436830063744108070557839942914116114496621753183772043592221634580669030913244359158007529450100481169844025256992267277502139214106400384274200736722020990767026619775957310750865747991856953867560270589525650950673171940283237446992688848986128706438720289112433918194879162144718303683100737158964262313257700722245425869855949361456181275025911547921036421347831564606185259725178565719795972677242520044288533072257980879379463824936153303052735752344640797869856722548852037895625416208986046037677516916765383555858400450100110388285959592529575326897573961153515921624598345477026776399433822925697652233875601141341827164451598385970245631778029406238610425603304189224193639153090468534525839993203219112006075587184733113175607990986794581711579342133768123454979682860800638834151637507285284522407940635382362988213661148402757011418007614202635118981543670763092047648286936093358015923024858387533224673621223458910441238163290388055908849584673027674819998239984819644963775022985297039042615703234582557835999890773382571940952962509482201830237376933873230632441232489661898283653111525902733728829826837322829389928966841979920638817099781607887630357480288940883932471214103527021253143629636615484439619509128748560654518360050566221930475678199320191532329223370826097748543252709599061876341306078406967628164115884332555953561011618227656894709320731452174365450523028936784569099810216653974246310426721067403659695699057693851427689563545019046375472874693987633840309154761310388233535125346821253983797388265244798384490131989715010660915246531144022723740267204825913483291222051424948192342030747074486368194428833322695236674444464327743564339173339281833014144953895566484091662140378537703317226436497253099572011854133138504352738641307593010393135082315686801774704231752124912292403183233353462576219766291645157790860590353345570156859914959033405998956888007323764475333343764878130779158614077661383292302441522874578032835040840624512422286901039760582972747220918039605221979961599048017440159811688444455114050032614320586005971153354227962670752932320096133752164923298409273216926698632158904322056980012598004912736954215497202195957348981407402706730837004569742330760178778979288796819766287995058284240418149623307458753345019532698433147005627086088644283384726077183869881220204342072282754835253484129879284795438646268446498439821696647744613457528701896957556267482228252858394134565231742477070994656721630537546644303183921275578521594057536882997703802831381451317146608936925310580072246795271261463103104455107430712936680994010737492206732871621974289845731978244692056639920994619012030255113787737938202716794600001506557826494300693385439713807679653283236707075585186437317740826324159752875526236635944505984444744900121585969907152144734767794205210326500292988777925348743599142501768492922726382313389037790010228446556551937798040541281347116874778172941991484659356258312867007813820541076323887600846712671977130198987381006602826625024355353103657212995964076930256889042901630825043449720728788983907834762433179398057749934862362239369283729956418914984507619624520974301588417344129957740585756794885629607651519028136689100880903432225864125880411757373008227546288042523701728307824145350429446506171255026769458714396878148892259494294882775473823832854062814110040210392960216390058877291122002122157224599789672361682687285531675430785174896953707992555475870002359816174394651878792773613172086980976507486506891754983196150245350548061247064693881103698393346146984309307013421976275894311612293844511554302021906562118812891353202742428298691356795549397655564384995283166220839758674060054522643528619990954871423589113086319664795435373869610680611821257661339377965027829103964482006193243053484403142249777376886169663412655655272267824272946721454483633362089199442527448277000285482520584072245729113278520016251111435845922878095555110597869110905465497172255809860439355001435480475754839004820840351529582655531821807824711482596758988010103945689744099109267216746414678612246781390261956448541737536144386752114363742154401285822065595817314559101218658146579180590899875276200391621406781386167274184510742936555763754952993799994664065391612514433703228521720142284316085671953038606551433737679453943151395953382484918008660416377622855680316475092601156256225723962669814076435174598329135237773607989584402039788341055754683247603193366382231857031125562200479682911245567480056366976572087993193595879393200337765208222101753600114956942819971639036236674882174030458193028755568676427518658763002726551923522708840920095154246793399402376096604695338702465996571014461067192833967929614251114711813990867703846937509768121996165867286953819166107142444427560858505919902455498085062539449796868483270662876443426445764346579637586171734307634715245554856693038475131557498354233009880266578724106262799954546824769608635950784351617171097938589667663092601679366752207886221962872943006829935488113160083906205267893141768196848460558692873895749007184878707772490601107551866940601061996375823674412246270313897316984933500992720173044511773176144003767868494229493757507172413141313913195422381573727529424430306039067539500478228681523430644510112607498547183775609799862915794271479600725585833582727824796192101517667928419063121573250085896516584745088638808739375325247069765354891153734089547065858330778288535712032036467546874764459452314340272677159904577161548862607082685048779130783708801701456152912154006831513466504234897258487494852233735495496088109403160719817122911538294440856250523555023710538030962121953707322062448121485068862732017625600451819319811705323760861219814975628860645112477339806207510637639668451549869976741042212166317039201722472747322580795052966139706087245655832435573318266532717199684087122504897015191840016566224303667421307595097383677964353127118942402191314133693034152842076441646427077227245510780677526251162656558461942308198570014951463134925258868345644953391186501096102501696465571649749620749035299581865248974363098832756751707522680216406524836882042576785028380556537152176113115661161841322881663240575588540369092879241643001973930578466933960999715477968881264512826238820015519449782918065971572474039361279874232610940203746435593826419639276757281647235639609843309984675366558482387391416288732952578360228872688596336348893110282225014976868140638193436967444707003874691105006097615830648952408361288216942200246844576282888674783949182513125586813640055372962518639671958043718782662643372447702910276977387527464100515938578224269895930278584583033265979305347677587294249848160047613001909767801124068087936086710609619335413068513590255480739215265320890088481764437559557963800988062865233998789699445415496410102258354521218983582379166748905511925243093708621163744882941430358313466490715809606987309693772193086078467694651248188890649828260656841729745087087236389633283126825989281535802717499387003705080526671628218519323851129991694336049934746658442728621452701313670342186105349036476202594250548446794705974616838235895846629936844103628887272853459250238630851042414210765925603855123270522875216491920633884794502233995215332406454757853246701797500212712815223902704609876732112387564020245175794008332329335878088311211519337352800997156375072797930442929795305733119486633739003823953412434637561313575938613304223817762728075340008267584761857585627884873275511492729850228578215260331088033959357836977820638677710368343271476312517996072845178736871085725299201360663710643817514845869634504592998121882666275543979869881660556608917841719834876493342064044983804308966419084484539724703520526478834295994665834673288602339825962556707502697536028904836946084996859045998342840642565523491947114567969578873225953716669680378233813928013666342408050500595783955273917136638720982367051699042789368035612497027836318508353550250539198340240262253802655486196511567244682693033141116008694227356210150415401123840552630144698278929978866812895715224097219108723619346824253871686004208790686929109692623066697626726386358952198385382128671874375725170505091663990020045137823243225414360577352320529964855388470015215805832657510087433068127494587302027948666278495536879387097225586912544371696310345785489333925285772147649084102102163929557497396063326313476413141645488909076987318363297357632939189772176237002946804123130053737949724908368038734704085163584330697261527250018688790779777961321950260491184779366524748764186795262319983385682612088396884283784980563194307704509641649267359676322036349108961462186561140953920197303231748153054769694697156852698897046845459924897711691915920307240020662936585651732916330157481511236891903114680537105088077881745446792989971435399438716981562519191601443466643133586563257165716835465780938056482075552761703924947390322700220654438307769528560827257796446442466400859510942057789023324137637372895525158683140874554284661183589795772435558647590366845950289904306803824783436280693383139316942362093325769661845335936641482933495385188601228971753858599409666091343195352998566768599231513541457142727566251657599548219924473976864426319991260871864092030663806286460913531318867841679461091476288427550764124456235892899766996380591394415182425838081590825807368690305825058014073325508182673067198100841956447891677877888036014171183349214292291981984626816349484197517259442113614212038896162168845495146155500765668756991094424066984511346579119314987443377032104746796174219142451102928228834149776249794414345449402506238156908635025207928300415038829454203875029326102179761937777525999122982074145183776891156584767790002403815759858195692244486126569079982720874332176216987433191759826259476292130964446673087337594320933434982976425110630182876389137075255424722078474365140037598314107136798890072307933322053407962336656661294950138564074135445614350734790804622743635219079270564991544593318483679087018969892431222734697034171237429270749365761134722039871529413042504471405207149908746861824385056610308540827532271190461613232267434561451246625242279888209843015396444223113100160310638656223185819066915453025882389064769125950264701268888129730511277719838515828199914198771315924347168925473936902052861386321220859153401212942647079591673833103879812673440143584966142150589992559355675794590900915932239191358718557768122845522631362619803049267122434330032767690563393472647931940706441355113547013198598756597399879178868589872680159709826388335933642045784118814813939649897565257037221222789529298311922480318755582281301263829915663224677086538456774766799031242198976900885747092826663355063780296135426684992435000657267745971627275416692129050062482522805685315476924345998974693681272606324743544493404663734100716852129168121589020696623607155666719615489236106334914560404701254487461126806016393861209268890002766563671758030869760272732408611559904834649819894263083538613224520889853486046018127466272053217692125753594899753227899221454505901186253168640446051263791256182157001402813623647787776484163889831274263690953913417370955923074006075483993941897747543330364831651708957087021317558786014470455722211746219302446728002966026458464183883937389756440130458099958577304460086003523608024576154064214635686380955094749774631897717447669164279947485488001186757489252124523748229379610501150801388449528809587017968896779406152519365687877358460014410501879001943731770461624154363173481691544931078380337619312340033921155424051048062096493304575252817985156947614540066394268171860788782834124921604528691624083240977975771391236935353666720017001214847863300454197484699671973607609163159219530144822738411851124854798474526620202785147040044598975486193684679708756084645179504636322782498712348213320816081707290074084470618463934542415418907232593653585668412138054865176874711498123356086472036936401575802241277269660259788348235833520516226561434405350963663040879200777558211560409666712617897256152520610422961960558317322502550963607221671194163368087703265240347994760226352161784757781669519614958048563913327805268976392586806386627393007537971545797325253761890199233937744258473088487322992044758359571402950410049285219120361785460978483580508295716499084726390587601332972433851380047733218068503659454808151966635875972243190121950350639554671781280072539884846190833501223997788355199372568994884911288833126287891333877155558511433900714635829645676630866223629399491646821784907384318110594836797750095509838682248101712779736797231351140962884854702861123674967969462821891004273077959503823397895392401159392761632874897334857546454162901683549213918235292235159315158344114179579319220448733687565807608453588762423836940122378088786851127482423006575349317534811414640396059527591055873613800853381911963661311992795330080250446999031330140932420721772809505366184134886675851596404881462393190946675571420355324928165919493004673851360700335024240453343137841216207942121368949178957652934087780711364214637110312252682748429757004701177788496523947376041555236482510710924614895007662877662435820327972196341387337158406262292999758021585246839005183447350812956829169566446233957550207582964001970043597725861732540030926188676360782709430797533062349228573883434086515896662182839093192127830835982726031281794801559862279695314377991374116970365715480495487672757847678003965824858271950257376910785517720038997569027788845111161509729360111836107980499792901664353696659500470923657268560795644949243489582015127885656361715136493895199525577844514347070829170517166080380133878718274268637259575308883964159961451503101887030562130663351913329338150950964266214906535645376407150668482171460130172785662495532894544672026443389504921951787743073417103275539207044014507942128195418518657843587623039450471321190725533136373190963320478730142813984009963507088681266736516870942229383360796748024196520860905578094767630869205072515553626724985151948126912499737600739372293628435977080856201297828217631113435463832106902945259407933716944029800827298824925702502616935365462540003009666437622509597221297022507313689220086683326970349792960219106401099768327954176270391969392302443409343694452804909199802603999706474808894458986723018940611111712935742024184961594189337552217760519463847365732923663231688678575576717341703959856482878778212360593799755936188030109956835582340436197301267128934553990054598599559274016698476468819385621225910875734986001414474221643212015083833467772229438428329107300815672594051322408195918045055052964193417017469083629062297144131933117594813629685178296711488866702323794418900644276513129296464814244196011622565431971695284733869270648684519775098511626461595370140506741763429851543541717943561616648562084497890707355510857409383234406552236011465115154681085986335315027128196722625664934426337443057915533416361372899047661518171725315866028651423134276977112997306501552877490993681256161597627903237800222671744593484639508859913025231032586028307801464815469657372136103081162175343978252097771070977371936489095208936775832668662680275253962130174569224937723988127709942303847364252299301498846781580703976892776230874980715802092911587292413455965181046607798069744633160700988552203452074405886938677756797428804437675961309943306156244282574324687168229166748492482966746122969836798037567880335229882821237730841352788607402661323163384956847053888489389163044382016743591525041886179610663550571928760495158328733624152268076501606816150297873781630522374151069389967504709549255715147499761858214589248030537999208179881973370462033009050166139398213772345645161058388470903047548847962459477892703285945588012454573156532637313026232680750870521008959381878541825202940050242288097864486707115260005673821054866767498571745544195716450374515458852523258917223524959317337372045850009269913301215294829400945666719086124116289073131773210532231377652549965713456812329725512057954343060707593977138705991573610691889960044352867206935441214467851231915181234450193049600996168910908968646278426415935858686682661555435776991597173522282142683142214982984445064219937194578787246247685731603723583768801166484820351827043345616593287291170290077885056570735690738433445423513756639634105387856190083169356656442908326687051693549067995498497898711140803107866006916079215283498265684976165774557955012817666555202382269206624117962497563574922822301292079989074564718845698818047655890063614380649436852998963153232628758190658176051523277398383024448426607824692361553949203951005586547693529501878994845326781096804238480076613787136881924014703943382154336823610746624120909303707631416223403905117132109740265209346610680186678420456400049916029108445751967197691894712004089892353851628900658861799070259053569648378595262085869737012771313153090474774451732402882873936695797432960479741766523737323312097075630130789094991956856611041885386995307028684272123554787300859056274187018857536738040920928469576216145594746054656392385757814922582303978093903378765649560149263160994072947019190395691424951397343555238820902588828831095731093927918074377701149638292860887995986625116518659167237303038211220881103658429656811109492958981062442944099181625501755881973405477973920273553446585746197408784636994552449348034750817787850194014868392764492551128682177668562815439513060888046246082656787048383101886165955566904144546717358704106315667590782071821141569285282195754011552776353336982483976000352746271634688451794357755012478416095169529625932146691769769682053657431636246462184896447599718214936171210303068251737498954260486444460259943338980696801479221660144756908844954897682771440317493686073427357825610472975488184337055656082738730431760352499429038387339980603851627253904800526621087088704513345133233730547315572341043973024490798507723309492630429610308783810670624143079575150302359359190380344837174910098533829822983691435176548408376375499397374986118092373142956048772259128828120916213554902891768446499637807374519110585252219417271390480012063007561600943037190382415616645978956673936181428666841145585606909457659671176370664770582545635067414591922672964175931499936605968004697637224546535670270621119327444725053919175527312421463345659987572026080305522078135778705079919582567627003167544699393193490211865454479676631444477857901650765764544411827813966455356030777977116187904277747987294246593486346317404676703531246797353115845710688732195435865242511996836134418637971265414033339216515758314680819564463442860084752785740601377289124429209808610856177844223958691511742019815355919969439436410377553271638961563284917285272828423673871321631034426778437224467817915475278896536034351428138787730002141678267453755645586201600481525788432047751726353702360228921830281041985913048793175548581931841639188319801494585362769287836975914032229230259988431967584891873452929995885342676343892362873438072369268698105974700029693137909762568897989139879864857408504047190298005353535046000122823794620895678450532057434538678595184084612729889349669149802173836892452662268190856541071669540187465291700523935490779537070711990598285631839503160925463322736433465407741497665172709821996305836432211481926853432731266007704535593418302499992509195697649867759834020148432756995505663366858414161946273897598984831651679975532219529938315447814221268278374798832793580468255097291468260104105953873309340241669715989303794541546043177038101050363809887188345963234299306827473442497623669238109602492926653403438229193570668214052684884725017775179441335904684069267574611341187367831943591335284386711799011864610356292271502042502599457563752433563193810439608838836431963432033845502805105460944087291165036097519935536720092370495290265527098426571708014222013030984785818846154593348684004483629656469071000544275712878700279060353100361306492839126833355136034802915820742149784973058170131015190863211691239556972770078684712156695280640169114097001087514398864612815241006541225677696580238091874891258785293695394581006258067979635690679645783228033559189242005881462568432914152038648892330670459793965466321449511863480256263449061991478443595727836596096858652016461927144618699929083211735598341137958527132386114069451317675518512533324242272772187776747251685944270424544586228878625250491215993327610145318816756497893328828607240565107241823128088687861639097331294220054249247885259684655063177782932049613316127116192008725578299745514603911870000089945236080430007569246851913905619123836603514708364046920585561635135091103688848984877965960052693277473153295559879371036779631529837597209867580379414616945973198951707783459110581906267880716661265473747554748471334024365057053424785334343518182113189723874148454195809021277714686120860206747118611370355816701327024492180737298585447133421525210854251071257466933118900027565391346158622655666776989436415069169818447028734115370194354376210332331621511538475831827010895341606422890542679539800934145620908785857441008727596176983078304770844970870078443310484633815320303522447639988781171320694554758679745289591442381272723503143276960539724169726612443087295282855169660373654757160940656508018897641088954252476300685422370302478870713542981171775129332103920255665933786102896669510902927504983828992428949212454579158086650052793553859537166643158159767768247913170866898860454381398002601358141112325774186752165150535807913093738428560342240047363531570422207285616135442204022385220790450938005388959571042445933512747358333692029757952983024650512370990944750244381114032725451868522666523898030208679943272857272354078928899664442949414654117947112232725817539006383741218510882152388230916813045744992710058507305325370408097830716971511865913340823981451838969938919904179939895535060031198397482073505118306185846391987422436416791523772172696008676260964966613453955669099372087851526849345774984994410617316590682298210574554443845076935577739180664629758631906710944092496200646628922883110664384183163469111281712429574210936920573078697977845712073151609156662869568237373949643901241785065077796567632912512035543118170230328766386949105685714954318940385684751340600835279213600545393119159937029014884006079257752541441581989884515385333578861939014233294521826889297781854958084622234030879399506649125026501301461625936386557149788990144629452870600624401321205712709044194309904270512488018489457963054499313344364294438533564323138006292691242366971739891417919778583543433473415851465109642708919082066065878415702603378168032016947608823008111099457463089842831953036236170789437609422081826458439712339815258449344718872765150809630592743091336995722074733383333037126395484451470877110724794548387978904870252085082607460561296671905854991441718683241518489207520393981563452360662077526675325123228105372658977815798889517172878222734827267916792671507968134137955604641883304448478776229316515065572101931859669080852320458358519565728251064993802588995925985340227049456759550423878021692995848433255749420367162319072109109435638614406651556658812735859415500442919752192352799265781768597752252170938773997151666487140141025994951996319082207219047980093827067559135384414759439892840509276237103337870080671332966371269225960353766536658211197744190534122423936907640903162802550944491488369507959545456241492892488882802600344012850498890640065459665588663099676639366572950530443375205028395577123554841196470931074421496866931666813990045857135641438612207800931010594395923627704388108731251334000682490597690149539054292900530685374619826554366961310110315989637107824590735712404674548930833523097004984309629732886616317774885057460769701957008347033656969229319803138805240338498456855070576646852158584117232239522623767354324217380084492483187591129405152848793344845788007683217121870309656494134764588019327525272392223601345444187122052609519333166508620938057934205066552675277814054807432559885887456131191138025928045138117253933991428616694416584884041785050645630756742273400558362860489645695701930634575458218276213155408229572826676576614273059251760754966196960787079012847999094371925925369450486703416579590965552777427477766202665251151818419646474942493052442978533221281393210910581057230672963917004161204197645488671869554408486756902427422215635588425104103658000435693007298612526256828497407611699859642229661260195098125976502152283187158305731060847603089209377345561749483371319830114191902917430114470895975581575206686844132385062263686643381679786900789697976946481240374870920788420390005554032689837437398203088214288353401310421438912311138538122520103415134015476773383013033630931695147009315932910115538730266912483048697448725345693720132407962940317333499134640451362084613399915190839468208841906935714843893291885081145642597879172515581856618739984249233018879866467977592501138596395698417810786733811926924099133684868768384738810318540420786990149565695280048788121351131195266571284806551037259468541028438867169531574107591546143437610085001047185714624018726365683081520462054286506846284310824598273611675996275773562884678614990603003792403405221740697567417838809364187797009861652784225564128050052069145237342953772416775229093641418569144645786555929208111797337839503668903800275075954452911216644607775176781952510248417564173349859381474021563556339044389428039680384418538034054739380094408594941968563374583921556448068609235744180306591173324716980692062470701944651493496528203852138181068251301548847560479768657748775241081411152333857982906853139571755277239092478423229630396069842552274952101652672700698429545505919496956372412890806597027254060976822464893701979251285660571044431859763246712533076950732167538986693187973415336846170420934034217833075205095924926740140413451194132217014748501050541189140276301113589568180984919886409664214816707507137494583472642236238562609086021291298607601239540171101582905406866180268186002082479378394472331015926777807560974859488477963772274390092665273278560203460274613839617135350204147526901149342401247725582552802448186535998532090950746937382551657949921001211863402507242424537439408036826501846757133733638183244321766072065540964911247503709095200000217948354006821766153734955205187814674645483299881459239074363028219595197530958004882361445697635200004931233599058145217892939660569093366717538416853975447685839669873898085516377702215615411886363778758816155009143182621079114283208035842099321959907608492175380296749975616810993830119279662541948174615609490192215964914302689940462998949307750562832221391442732725179261072284825428393385363018702966112848342503407843793068476684435319068097745096258143978019734931681049759017155834531278148656121628858623295179140341816402973658429562829228684817189012206447884251782459834371719087996757504649011923172524921687664217694211966786711247609126501501399722754108445091987489030745433720090422597250132347140095815127192748882951420802817183489338012700845718537701171195837524076126891107102018645731674436282490967453821674493267933012875009155896794340401999339485179659967936593486365875470483639773923140328578795592210262050576940455094530053535018078066921083302593368741199909350804086951583234889549975856053844655872908815923057881769937793104069752772883776931982004245337153916805530652853483908372335485751828093350058682259918362588729033977939535174100678383972946320820311116841872165031992476201503680350295834981222181747241233908055427398671252918315754038389238851564441381190413353947189671550892903676278345013955034595405962362320593393748093675259105213523779793085494622919812052903706227515114129029592110732251238387375294533468353808975562756575221452448859657539475424830422955549830147660136111013195702170599928622227430596068215749460044119210272998735480171108138568052319309273010884739756924597374829773790893690682492329014019259536277766302171636043660327950931531462554181836735500816057527907980433335287815870701947733514671455193634909584102768126155507053768956222649285613772865030612326246181971713430392415137097643662076918990250046623668365870011393523921246285993133557297969342599365046800732750174044146583548312515897788725372478786033057878133307273515559032277790411321676826666634668178701429193011071011930899236091062051338114386964886712156290659198234652090137947953587996655776370221119495597298417137678945409090171648110706461674993357549134640369200059142701944488751311059508931242011349396809167979550825549824908113716657447525337684722772096474853440593270981555880883991182172613950865155793613198808736738353706357488119275797558131283579996681264515129337982315914987443682506128643240647435203852610691567374597961676722927886346383528309325034203929136945254833771588849213703190275391691456863626649160092760401585546228546157337007729144400637914279108658281111508240460633214855328743495039325210916116470920527544522128607992276283952356026069992198147530918861453404427969576247903921395157970639877349067372103843865054022652767241968889573755060753442507414388187269109633703171454031133926529433368858975259622459005672482529786334548432198974532656102193731904978649968862933544811321866230370131638631560520874854320508128296440517594559855797440046468377003326233542370467731869655095228967721803615038742874195785538271239175419456272276672816060125382601785287423701669414831000053811345007759443722337981130874476565409185914840316732877970226515229023024680302181489016557056936981616865487851452020539349680042336742472538440104386281241845468507716437834972508190188703381099288170927305960611027078306351346534695347540959385045768214166776779572780337817390813254186569108177702528172776490791646199738602614608815604814675660747704566263229913674962119393166593657520271311367139048369503944615735099823798567613733963075093226818136427866485908687363289334532006042031669639528282750365331433491956327192521111792608655578548673571037227076927836978837002390378635838887825516739594438539585792288604711230782469717783722754271987546999607375821860375640183900094248976346940174389616201427104964223475640623261255532481991426679218182658700667397301275092735775109565307217175653395191364957706869530875975489000573743130955024341626810583948707942918595791742868641377978567397637247201574882199175722503400880364776147317500968798513573375010960396960406770496826001508928189089392198469229929837912593860002758543519108826229752497730900468499309538080248961765012645508890638865381960819262836787169874216109870734329674328779763091432971852815562194338960557889988190588052233375228807426218975188917965071056331154543779895675986599028312541656516294552150567836269646846494893671676133258213669109581702007070954345081800229755134257148475948009025462088287272201620438532979575972515993034675601439651629268781011004848115908445639746626360369279587102665437321671427035516166334589815792172627842095094730793233255856339793821259565322159733321819807302934017308403922923169156649163690874006690345445739414427651392959527685918818447339348079342378112008957986105081498846976441637732925103665115078908903283177541347842857923199062938553027327340028705165854334300548356839304910775635510558977368660327937739897200425557712628359269754773393948744509033547633505466151926236769328358813451074573763178639906921276588325548130345110085036003551749105680161958867394404418151186900890526753892786932375329876741447082529694007405765189972654169710670314501407389834509397176569833773032142508580386962030891580837617260281227528187000425717005506657574618747217165740216359220977847436966867218664596050350377271831286514923124424710558181870127263602794586634981439756106624337498746426014104760500818170707956324645894349902457661938492405647818849270175979950008869731233121278271389869808155842149613470213867296745045900300618417111881797464466023449541646286975666457926008969783868238466746934746842427520802899947226664705181209740347813143992091047047787492236001591427102991325480190174310123853361661539277175622236551768322624908184261370831164178487185455652274912232027219861379862126780481295827119734376216564682833131529962519684923113860380604658497776109814051084726572970867675144620136380860166939345274696978752432048534259040262062441571711609881231922319164776128569845632930972754652209122589047921826444791655366989383866492353305362974004831801675945342003807607636544832927588786951468754690623499930233463372595212147740383758168967523123816240012694785703910335300528821533524389260472978953828199245497608693644055955993943237927667414827258466537004911009665477863751650715873545506887132436538298790470966445538908278595195938095134079706703256949421079545172639060722522685486471309775092291952174482197391726631861502044771293523883522775368228273331660613141216799451745162489676786312439347500279760024455313905131199710395817380982837438239607782919755541579693227645193494605330085702698803673098809187653214534599875271604578032802835818566533941264305978905784854266826295946094200869665516544113074800675537633532797469472383939776931991261812925170448407950203316508238295067134873509307526769073731581312705907162695883146167749498706297877273469337823284252655061042241990421717080765677850164972730948800224502681968891932221908366903742658546486812501593245116683844893392689854639995548151573388442656457061566255929587844666772057670551090448035764624360186569409136329869016514469265494727838469677952483602543977120610437395265358380587599592010134997367251185247851683214015896018240439602422701130750215304832956165667874194862093064300725952191231016753019286091395613291268001532994908075198703095324902889599980220243611379476223953780179209488251253564216417092583175753580619547350123491440798130010140301022365303855477046434387408532998032281370514348093788587239619690582547609192971166992519218442188544658272000304562185271491640523886508939949500842294015211808729567081436202889063214044760442071799141185838793995209861689650113160579795293343724431841995842186814750219771919470659377017268634432459149173574161656970645501203896821781743243052081544567576819932340924637754187299890047849852440363535606234169871995148896514664366504361303715084563764804733418615018839837847615534376868655238976799215109953344892745197472709127865223589666202220284753460247996143125657657099102457551810452502733062801123526093462994321126229606281400395995719194146760387059429971028362185146400789401870073526215054286172967830457805112794161233033319745241964412879285202649553643431041931878073883968147682065947753668573165769249988309089136491278454386428977459401067166560288530503749430213676384404159155288173287672305760708305094153484285187644733499906851238666042390297967339280540325289541966140473287944457299562624324535536955690458237858043823361929177936452010326425453601104979309766841136488516888555580393334551449916138766235877093333233932967794361935172404608143349226713948678405214717049312270377408739919105542708788328614786991606547481837862084432021785361137566771939260244520597058036890002550169289736325225881470832871974596232590787901455928966589646234343322988189070913357146934773386816802044517781771276644787853196017956227610868728259355594562266258094518417551892716784351309409844188586459522468517203483344176350635109017377100819707491439053862554936383771573379655763765077082112742602938372606200517295541686114358781437113924198618959597656297687377247800407270116336212800344211135684058660366164963523007093214732304914671702100437877602161441139371755020967613625478593337902239320832943919388858368359031828849117006194324132656606044270369502464310102115821070585098211374118537876411767191706001472491234679471377480820495371896471328708465494543306561542766223860874961343330434107967253871659957961377962890336963280025124194514822976146176246320901838352377278911549419813579543161699941157010688409001957279030914934900799340129644614085458444162422155781595372524441865712443620686021967195140149765227539846660513875215575141943994706798836842675728449271574202410764526856408934679925964167309723042434928452670772369103438559805306325751110048906094068863177013699541373475475782716556558161932226841198551911805752102583926655641723043831250721869402755173844263408268905377239548212641696812829257571125298223772256961706739190716216151483377761951276209474189347967722300074229802336717107989750929492603901112817798848976898139480587095050895188600837323497439307021485761624283621392502804951392911958653998003898337006609480979335327916169745416033637607708377948296306324540086127376691956476689729741592700369444827525208469771140489006056827155914958688496081434452135109731760138120208776008073274292305012458750022236053617643275874861931038660057535420812105700522002611096566517978831501687233060543561596427521245754827256296371120063207673261246887123261261809698401374290385419781351857871467566882654670058545359031131830661432209714612956590505978218017335045862332216034289677447736836056766656211012137724615835556003299950614945284011594146906660471108913743556969572311577479899680679915687888406780949723689331808058043441894736024779077137004408644284384415954016540212392358547179227037081120107337168930247384877807222610089600759848890798062391061534495244491965362488857460587397664452726519808827577837215211727914125107084843989917009531185100459290467311369402754646308803289501063855857683698890274112446478629711309583205898058558726719731554435150830433168790286432451586421812840414953557637288863009182206936714925210196508123401046271047259183700049334336748660186381790968771733602580682123072425989014610062933668416310357009226556352503998476602673010726600008561135848916870371123738268512889074146769222193815511737486400549722415518814157506671603746612506466481512487088361800328369633226701694259745304233674810116589700323696201598493149498784135300299703935096707010508811754716043278731478136486727858667688889038931791551305888929124301715600212646940661092323005833372361941698307637815726139872614749766766610889610422389486623455858407363767173223740957463548125746562923268767071839532692842631602213764517471267886229257603820306164692122610618386412260064909300686885048689533060377690387084039502103302712062859128017283533914566460242337207376146143738196719456058432801642410888337238461922814957762387678660686213606579572550383419505562930319132242857788891797720136852553387774599560756708184935768833732542764511593450541569785776306331268918932230172221184736893173658761196150577629886667819159821475981328541330544673748895695564819362729850727461798464855051147025069898978299965762894042214835265952695090883003386901100723425882402067163668940689341920947372225334284268317963531317604678802421306864033788504756465024643876389251296463681748778268997872469204757538060071695180385445589431043458598899147163450288363166912680531596553839044153162415488366739798916915701313607226849589893000012865102491777261916668879587300229938606616260867150361195111727369785042392063774474165531320426554436304355685918731069609052321617226223123387167455152550099529478612603722346351335059924687672799774223182414089120665998964877433192958455518470680919040873339086423574361466889919904218455435167435794729744041591826163117334905505236906511631779269718071790100932793432879014589801887275434448858807936501406225982123644901238585635481814284035014164222765294204651819235145808164219605944426446462329867802664750158776391185677332580636755016968314077356603728465415331878441003942860752520652357834138621758359186154079835918290359046282394317448824763836734036764580747465535147859263064855919835021041782335979883125062279879052043425868614871227604234167221054397003650919568224952878722767780464446328384033344607786518207880618530151756695860913091966007161143165235689274054109787592785661150161110723440317777781418359070374807343574161831793612426820151251760656061338332358994537631221331159726132500789723262198598617237886248491958498925510788118247487455487250803991540359814034575499176135632459893838275608185523871135275493056240235740196110452943362789753217637463774943743575636775081527439359188169055472225382384464932166681286069146081343113362381531398862356219974370865186550827258338989238572609185803882674401985421592579739618509801226208791731722298068939415277736055556172197644351087192212837447741273340320756022370380975836386599641338114646445289476636154442526288159840685614439611665001920149650804364311948291386350220344116117893253064517872133232280395404317169735491522346489829733947552098763948957566738224704823812673272027899049909311126410738703073804446883665391962057964562756060201067732020915156966598632252013505708027378542492238363326003852103287301901947533506013129521626396152695870213672481384567122593014015432976953428719403907354006049111970942524567202411474025640895630279082669763058033834870696044468931588838879575491485529558712436840459976281747825201885842797532071350230712600777424403155378866714242033114146762359812139865367236428331900254914088737369582284413542412192900044223435880098916051237836132960702182812831618972551281311005492487700325577212859892960084576314299131227295208149687385924655751011197309723874960125617454770846781647998424740079038954668936250992812682868403012134158149690025744161458610720462235958591308295328207706100719851491416182853726139091864766076750149635206976535568194231751348282977104950456889406654650643292281006321000017381463586679805993931777637480034070343126936997561662943977408855363874260060593642643116486908948766734452780063543978106909893742586530015640284593250009826576030566030484379404959353740135527885966678366627339644875532697810184313825523410085160497769108089375850344942243128695582466641363455988810003774823925523841791449739071118080135656150041827164132457477534248576108287285747862113480006464578836250225323843316778980484259892092799518908454112340621164869225618491372690051051008151794193694835419665113743073173376345773214036378124275720426412818198683513906114937330948691851746623834079084555298249846131467641150769155483447820502367715641569162219919669460600869558294375114853120775227667913199395595677370848498368711603946773833364755220097463270380061255321264193509418648727977764192583292490173573004477870264581404216576638467275805932192031033176631771065085619191588268934439570156305337014956047789807389975226960327878097780119224036278870800929343163150049510803759236762192706350082192832579413348228402457009942005833948143821116274747622262541682303505756117589088530795484011500782089536871652691660703894674058251460006590644010313072267340236085211490758768303183284719521213656854460771972353193759681584875759466251424932852332149492410247007535374310198811167922321914480232449666841021242112825739845980114284901299278845017619643715454032909876765158418408730028948966412018964000973398350594156379886522101416679686014290293051334729232876998087541225579875653970909661753543920690474223458605653569994050336688997432258336536204113664315692633811124002702490511931920616138419208242266942808087664428321022203571825272407131543356102755327435159862353845216952576258254532608248343820922885576810822589113491522301594392805608466073111924692709645989217102520287924322458172648064169258987812720786998219049535156261114454302429787873714403544669220681252355463192240973507487611219226734913230835255091464935305383821959302023238352455742682545271068773067509761401448672337205294893570941643837979088808147073899625449512889347763484845340707824286028510154763821475693696892347401444432574508121021966800432631704956288038761368201925845177515922513797889379723806273170356892777989968451830004211421313573323469463798186212883086917672487509936229624457223532528672218986505957138566068378548348599758033257297477772440138432979884894010308690209319394925543283901642594449606559999041021670856323599125394699468190778782643873159771420796176471683327002536338986477216872247062376108610440255951679074204107111162904049142567314599963835406626936788430327431819477397652239007049996359635689677167074597448199508831163051543833380852864861621601772663652921319509560707605449104678983850606101277489269560452130514602333469633446132380143390778865243591133398401201213326740879204398168123218138107594498908618325581007229388859280335578952173664283860226087712292263136936392332443920880697402808684390914658760319689286959505185393479106602739653247610539019670135955030605430192771704749233356999178411477608553010899606493235546042248209625578858137164239751793215232285425105097174339329708601745569901131420711288011596658177715590432191864999632314721948683491688542690444858198125838544018463974376956319320629889953330816311289327257951520672122867718293372106915137003848692234453996059501459691271340880721786651229484940538307400687324561834553074572026747854534649680644459862513912822709885183099157882807331777548960400188754426082716534980315398560723537742740356912303625885839563973880721759212846320928833498519843096452667380125459445139554613861385647247428418893628851942697977991185210347415292677676515522297783217752943955473707702675680809486405875568944374328420120490765779234493051382773555717140453370934204835775817752092425018546927661215083405589263996958529865334785362646095556302162394361867328821189470631292017574746098338766593935928883870383339551803393007305506152904359852089956160672895131962848220811811397872757647248293466308625628147530463205134496651434388386306970302267975450728650356295041992365665970970373650874239417986759709378775845315917406811812304420739590920630899512919744254552479132000746300300416193794691757152301452881071517164110777847397990052888249064329966374576289818507362068343647326313738554355402797728065594901085180768650045403548024502790992252216233360928228517067751881064140717613405362957797485381510197535527607473158975338130532948740238119259697131118252284049216685112002659046296333931095266746990166445786910724766550182909101779164389113498663687711522839133396743508232258269062041141239954555092237564177871124449494621006612550748041678437399882959009925725974096881095681605168061966678536566939522019952871492934982083250493752624564364470983893179747020602206079051004133461722573125377904434059783514555306344913640671342362327656091237394787076535931680509055012174450726183896963733518786758763265872641310252581112212917720254232036743092489983356925926853273492568568907948192228363411578736934540145584068308364039665293846909517238802766293961040806364802556615706640017420752020748553278811288850778479375518112695169212308315509553573685844416330348364307815717784618038596600139504957804382090783172077703087521661015414239602824378403919056740020388924028345264078450341211863167598030678738774375007331436664147910577690721389822937837453462004873682423124450834330029172448441612491296530032723946655769448131864126209786899404754066317709454629126802271710860133594020145089380459464014994910956385106501153492015402202096093324098714096344314446814503244678472349194088800195172639502483770837163359536307400594011580148454385510146026692773057458823362709185362408879796414443836160849779586909380251470885537420773436943945941266910620735408093141437488891249754780473799545222932504562833739196974374407836390203787243468745544355803009575909485085781611502927959665712227205837268558618541216125766612314664651507788780189240112514556236737744367478288737631718202760996905951089739749608090288804205539276374103495752617608595939629925253361041525740203669909344896279818634072915743095036886589956922226226571155271740436544554355248422681653710212754510409693797323015203277108669764818627427365174767645021116011151676916852807222997648212283614825091029517455617069075083734555087566767549477886500035346368070182191766039914053713199869793320757245093097476249271606020665797289429527084996069471870770712763183615031955402290536241639169221186754119034629858594969053032665591373785576512504789513712392921493312049382582921552436122251958918155631334298589951351787362096428250610900284234731606444790835325325675950404334956686834150504852782399761534250184101284945309132164340116177822489171489475452242071142352434275477634123642972670980574809273727876504038517111375237506563148124588017312988872626833840541788917996964430603851033810095435717256518545515020937676721282135552083201704696706648854702759636376507653622350125568883940647828159874059764677314674374119274160640172172145419800725818656002873457658765953980156386445559221634790779995605019202655895864126067331948246936085133664857398949333161112343774075705608949308185616204116215301590978821309645683836107726559918733661525467136636467896489406445118760066650991286286059888608094963156346935919007379236782099473857447642123251971985679010944724931411189026427543295344627337742320766098695309146604598264094735895422418552723934425788538498385937641024803360344195152011623757916925148507411189072374861696017304251346102502874492489593818658341391899983206905322068810505164325673837294321758280261765799255309739358206466687047319026547358523984166025547032936327887233263457189515149920300779474446723840477177708526144298578210948669488040216317130841783833012969115627630366591439109279144514435245786636221120738682340801557263366600831085644320533099111062293649132168473312760852314045541957751258039567915317237917366618466281712807947244783215930117302665456459760772674639090311395554461973120756775588930312527572916324817530860214129649967551798758442649374934790766841420766978452266988825658256155503541966232653943696605702402854376792390372512152178740297189600457358186023675982566285008542339724985260092068310226791037933444972381679168172491100269729677972622703137643236417311314757859831329483090706852287495188352161944339570976031696796877764811172448238977685953674400377004820201149907024026818602131061996216325656918157401836727377586773073407668405709154713135014543621974270518497371900794841578953278926209594187262370584774698454173971595411596057474145813392590746706311533086519579316181193016582121178186200129124460506044321295737806775666718146931756686922786358765287452252682864641411129197900990545216696940844089901747366348692846210563547648096186268045027177259563961284399448078760898992479708467084903170057637466051619686704259185585230108180255526374273293017622356953059813003385467446211999513270829681115251409488126897565956958763357012454838197780939798938897796676444388359409416217519797606462786449821334099261785742178994790429675242531227120872850781605552439221445984518646603357919074632586641319090043489134243233483049701843595030914760191017356958020170614174039461467448901758683508341560164364331744832925910603612652413005085703512227980950700464435591863483108586576117310300233146489160982423874487614344753162961107627519627729338898877181602099612096140900191556538405056252738492483575649886349845754536310122843924618871575603626612854410008412369800741823831731443192112152863252929570108042788518756635141631039608127897544272396684801388093788237373240195398951076535039959710489655367583247868023419164177384465281812560176503867470093445379161103230577679858752533547314189023098978501368887609138604187305198425255798094508195522207854910338113913022405381235952143763154596276238351958094760022200947228739161687229353906867367649101208399857199272649281387535981228452815996889457394811011277389658785492385942656250985559267773378274960541840651175436791620517229661421382572517793178912075234216573217200374206712200606176159504943419638308131973637576134383908141444269297606306207630088079222473080151608930905019067245237700303055820184883475144733488048387516735852631953311350472407621111526795920073679478587858684410080378677355065164495734042070664652083666432580520056272992606379400598915996794652774611961845817805233802411012591784000392958035620081263424666312040954348842363073021886609986099750888371601503499723231866480131788795336566046391563386683217830349060503407394329506645962569991911284521639217070549453863989463364500261078438217299810737141938792183389793961807927852757211587950145895956359081059820126962280394190143463041653051759308314749828716654824409070070816717148177637553252775282920013399400861019141911419591313631281640206654596548103769483008828793290120447012193640713011881005658516163058999039069944336966181964603048800297551231486559193412814309190950519215689608732265317063904341521495497668051545279860758071784035285429314207900776054364683937336416280976935119421574553709955340317663014003062073239756351606876500306269312927702517332680133685407986157917725785144482019477647981922555452679288079023177935363639574988574447770874909799649355155785587627036519089769692496289475578692958148727460155576475889124334778763838815706171152310637915254956351706448689554870221210808747725669749046385726357462741854673496914773068794719671257323730810084695601204371308232869030018093426139095008137162881458671065318487047508468888374013815343056984107507615378498845812082441914638042310282310913386070812576874408940216901128297735189099363017323208824174044858312138419453765180660282675720902977413790132557421738697648308085097520000535373194258577476463988262631681439742157981173250248534693050562660424813121787084404651616672476464647379753585529849309567211534750661900398180951735207000839572531365571655025358413550521516174390803939454036965129363990834039872269201766744639005991189854388701823865146047104953987947532032516501057183963614325967694996919361461469965299742144633042464847415516143243421100372624246949764674730436610430133135286306262716400436596232524291992338799562330182360849742005622248813407661544065190296204702446580817659119450933116934761236389314490449728485023582374083100109663712145299831422816973250818952493270593872936388677814053142966571754344307422067226970461820794977150401295092728248802702742279566771418747235104182974519569997186087043977258407937898318037996672577291924041184718172751715843166989095795845266500501466948808900063219068568141447720726194212708532515021801136487367397772474031423857633100066667528933044548903407677975223997113259161181286522608792253030794183635773829610483419789387709831480372184277411040027425331989283751448586184261587458702340440765253871281972857513625925508716401742776372273836660138985804944913068923770117206959753304703387348236968835813800824437650798968803802146016914418861222037844698140356942446799506665205781428529263505198521539740095375431574016307247138536869094231661942780475267238240527792020544441563279525940321725437320532946560700547262546517951717132964881927346261571311838067069794771637208147974671762368690672971292053320692579500508086609561706086328689467296703585484038316529858337423431654440316953134988463532136284839834394842558189025341717387098909963426452227300136083473989904389174247023942545306152987185042528759702146425655850555924840349020787598662840844314823765318295227735805850237054156846688258040056357345630705719781796456058829462511717073831185542514015754292470048864095747123410063758931018283482450444292084921813169725912380657305564250938636284942720397508708330679328635728204810380036027448771180466312238576388578516621160185389352643743951568947285161330339352546357235550918461810088361779557274573238271757278495059411199021505729245228467272622510689080832745747971441787784835418751962218183404619593924524271936808486859677246547652486212928028385617022526529172556110656534361032104710517900504891945844886033182499533895644696132915529229389855678259772228957297778645894881419159968488081941403764220821584257352396607818545162657751725044175662563102458942985081631408218012237482936396682504987330108531028375672475907919652607944574196264845692881657958199790429086104144215228604794322060783239059905116199134951800451612001672339971274023589592314771937029648497044654798551657277433559664593884761266792072644482049168349281107324049551746248819807883029805567969253774824447823417711190128792088303975783662135168592838797392163506515778772067246599361739856771681228530062367645607826248584752644900047296449616226013878557851924872740836571287839126500569811868736086033676436894225717349073095620229379556533141320541536351438224336745820376698371720878767577791535633010721384819741627575222960941068269751409622432613592349225998921023918038079779889246845796774703037773763171938461961138020319992989686315227889779338410458375312431043279999319285806823825290324162220000669106551968648723844888876564886881470179133348809053911838824830683008900143993843055959521050176393168964734403255460452161510377171309229747993638399305971772561091074202657008830399892790317492716838609858741278326677980934265773931839986725742265942993917968514857250812603982203833612374335903224329201297905503347720326829419016534241109669919933113219512584203374207832311845277533130352675039314843866852160761768658126125556187379247397779080995216002008335769907366599879765272810586074784925546197350157712223480866672590336031299698504349073527766691569990647425988430087039925901760451929775428581605601651542298468502415531690373680960678421091318042555083148596019414959586037622169356951930844095678234480595699952499063332194341485286095179532618411509997165966080448165394790336112483269938031202290333910637112555769124805052808013644421886508016852743346022661128458408942853318815494584379217148546929098708202430855078297353996318606804911654800143335667305814443483493198501146118222733426314601026493325238161514059603710943955110950863928218362315443450417001760566543044392868647222274465824271514487019444129485644966301880591874612783022280257011159163890111361628855564338273089947511948530335902694916307304183925137043924118719756877622247707525022817214271308494181773471265013734661067552730594710425224760269877973853833738430221857547069215001825509411608675148159907042376088057931948945144600080794214174154239514813539990886324183422803487766057522007975722821050260096461885394673785361995767976519121303653679469809348312349012104139557668476223070906061842332029678361575959680698829505514050798330856561963973276499292775201374661086690196907512029247870097702661971359952062998683669615986729358152794951753278729606031143076877589378573828520181227823799794922486655865262726570008397987999127183430409207096130893348448157316292715246179642760109954783914262053490713924634481975943622101711051042918410125512641996972860660355834551879783728234275950476066696132287113912704095480864753310009174435776235409935121671361439572136180589497387907923346575783737799168647951060290737261693740103658856056924694061376543493044141540397953981128277140986678733865746357911866612838219779214916910404807503202099795355392127655772671693594418280144998951849469959187643937210235096714196918315397170067364529248263651492262344846883960758189439058367253114786686540480240693343812099791069912540716981389842718396239351175495494610130431851631730431668146058274128954617189360914418977609908457930810751744705819664125797026723988397109895056204675037679298417485126863258692711354481250156000978795423813873254895733214126662145776134621985337369875822100424363008890854160278391570715769871446721241710862568136891932703454227053348649128835519554114920429115655912424890657964858625149009845742106589754140580351250087330594350222505128823090620282867094022255182028543699551942523383481032706147890269562656845900064900182958164259183025028021689327379974011733001875970742344743850977196187081979266251978202112066324530936926322722670836373289306726054240499442386339350161200688780980151133799471516169639730095439916268585521526600671158612733745589888212034784225359647837696449229917831340571730639095464302898294571880160368521173566565167406918233332876483972194648488665058930460984162534537870970089158449670854802576846605280990087675835413131557476569622488466099321241684405090155885194313638642084961938235142813573791377312783706288359433014589287570809494993604863887730601621458575422477962812777520415016334650540495686861243752450360266554223026567712936712424457031052787600681810084069468065635813484129591496409308814923588164777999451336922171019582073215588260447638283759539862448860772138598998025874331220390482785149696071006963713748396174468739681860098119624485509192278025076057712146846682175218080726782829490126110059133702894805415929654838299659000951056411564804453729765039447089840683991344512328859854942761113790571380221036404833948898984073163653162829028706490377004775422840257639817986761315815733206983934102262176372057613477380888201964065091350838716400609832222288872598089810011418708811714444506867182935005191959866390103869533463808923668313456664366508889879774130686723587853276106294929534381813814008613900666513778751957950991347256885611865250593437739168713155056621503772674387022772341638096419967098779804801002138102398941799852533862612732348802565436273087671305118251012253150477672543628354951030146932703997644366359299373700786888751268309038113679469686789574511427942596305809317893921521506966577873071828649274550710073447440163230013222872391456423696365940104228411784243576249621962883552051881204719236370396755431989764501467415141334146610909307281031352105820508271947276785874466900234113381494711002161901488559028812057700845995026865146642526070502219301776745311425930382674266560855087724225197085240759382076841613491157064372825864862406493793438377580986873170961749413507745618518620376129052153434583426147050254993599477648324514292467134856028723038899818579648398215988234614742274311050211759406739725273253099633065220472718240196015099410763423468096800875817923158201046165252220692753722829988929549224622160967593441418466166726000358901432233680557775146976267609222759775464382876877706405814067626576252520418707848760809526283039424499490575197676118867849612074170242100271336177975015258676480606341491889922334963751022626973087172873935381442503036298497958290548379584075599651709611409596019945510293073503069280609430407484839655333727747044624415897267519578891215808656194000589481971395172612939094296472343827337671911115348705113349428650398956342902867533271807956156070267489894751712599480070839655514572843014194508696240968686572691110504494501081180759044630071816643867723832984717448609306520593090595145806187356087187575179850465861095282746357237925976822671970075699276645133420440874607062608336411097113358502108185464568581031465797296150292894029305943620671477968411547933062075458144777965250590795059070972313209003198429118963621009015111715043811863702834500502072485449956273212396146341287061424458533380364938930804676867739721918582301903461244195970274629746202458682192475852491412211250140710542516070507202677657548443436784656160924565975244628845911008056510771133605934305293495538129589506524035045259409899151194776671921421846092745760012133362155944160724378182411566554753322649515331385465713692678632317186745776318339547773316862571623407029745800637377250165036930546426525431711627895765738680142771653763634838024929206742085007794016543929736988741227066893034329074082395530664673487678206938055208068798620520354143089195528983477219533578261979333864521280970482210267550362150966916096863915781139874136764007400136223825600688810662155901264346288994958404105717140658030358971140738023924756180455083879089567164459446059373451111687684073749896338415471753141639620959402879162329239388591033251070082058914763250880150242901586101106573288498440061077133908232319188660259549026791395567825159152004325752129511287564741220954279560214673259365070712850395841990987365438872643957861618320005669067804748276049382982188378255802484286228310260319704095442195949210510417750453548416893269030795641105635643446309191777312792621716562202332379609235838833274780403720895326751482387519225449793033783060872472995779891971072383308986494928838925157068176336114614491689866387494593573070654762748135120473705599457637966185382404354232140450723036498733825068575541300709592932618145801033060315743132309846572676554454980969706408827381319571408080040798595879762556452606983009563278199228469374070767474614848418033284528539313102864629550822145752492855786005076238911440523717660124554231420553401006915548840248786900094442960413037300949866287514878452118341851398512116873395930690144037244860167823147123716398810653859322044024678184102313067054375334903241011459566180493082630940457446041740627622405094240222706138491450209732119062802775844070738048089277244030826926422666865959766991693308952233668700587439399599516796670728753813209776476489877471160874918476563281445550523115060809723526630327189102981906879370638158979939225217031444025970576045251635635625173539215948159531903177344657817433913686414043442394124773702998480716934743951307630035258288800762604010013749456276074042167289050669170199436192268709343479045149417667055542666341008663639728785875797405874014135392899081715319679303043790485120847940214494397852920545403125261823399652072644189035598180573389764930062805109081764694133213189386011889306891586206547927779928961199896541002511282822326054786372643244896414613933004617322144214100780495809820543146652844813219815523017503976300625333490745609615458128509105708948366330908138775075004542711260797283771857494479291834855516183744787192771314151630186932048893985951920696005073476442121538417238926612926414767940473634929245460843907237744133795521565534688777397107745989331834730097420475091866785638768094189562240813887055153647258452919167575932545028750570801189881792904004512387768805023647010507752839411131156879391423438916020923299979468157114108761417532293931304708535780695455442655124603698345283324049212467925501463768856953534461497034571583312498348123191318927479207188711723720718280144348971795593154401487788848844838431473711524512076923294595057351790191050279953432118159274500495415904732265177582393033970534035888638467653616257426635242095043750740320812568910737121657520714042713343126851714322088969958686176189810906191975812668816121877381354136391673131452912273509965296792595034045101236492427931718884717439878987661408260160195547822111482245874704690059530841476745746469527167907801983497060218334532628029670808398883437318184600990748443887211411088932582933731955370597297929547068470291269192671938768187850338792213522914221001729348807268579932289456956866146891558681459542904052387627425386067276416900482612337344279075651059318714743279433143602433431175893312296838240837000158395039850306076716888296850206987472421061542543325490917827867407047302490657946366191669373123704425132906929448315870532331318708864755161397114563603697608979267448207216579564816639353449175206151498812910336185112432357746981980660353330848611835665695314333950893619917484591313378688473253309334052859740393406689869949133680624740434653887290926773393244186228079536668116607021543329750718737830133468341643811984176425179282263222577149509239731398068461746113561364529145497256057114776035802920607967841553981682928034238763507351276673902128406410058964543454972854435435024267612886826546206178433786313948985065674356171719539520939376882035849091965182048395062730742835324023100902377354603483649531591567362588651157361317821905022397594408663783491757128224976878901921631409778025052242148875859228085142053175645305667992328253181939146617890491993291316357970507079998280058172889397253156654395201175848192846173649061879472274656827959689347400676606128811075373923163531081219454502202695629882260506489948560651972939783049551485684886065891072472133329880591633706326843038671771705185924406044566118639664121038939817577692299850517529924053458777761150333963028581850158521765681519524792343539004721206651550740033802020059563852517561141495265404634332660309208673711250690950310173836105165840982839623936760950016210641544261669538373961792810763914914742505511393090606463962547048337605095893579249354420423703235068446326456367840557896507737865262107361639044089628065151558673089873611454361717776901680874820272223926942415419153857134333021647780704641219035861244709758932541733438919938018605177823638838107386712658503126723046886586775278333590970133076554425070244946504573412039114569656205810368174301502189727616959607882463586949169774401672248161736538504772535333630784693585271764709884641078773085776451635162677459719160554042719860402663165636321123166098127332325939205907591775870200141515714189739013310673014874412610467411679560011279400040995784105698967282784504807055469290360043058480894619351475465690761265051989410795399861620909351916239147450957102324051374057628915537697334017307095163150065926063196954923832737498842194482406520793433624690878082622081895496027618480781317573585550587835755165424613583301501472634960948564149568465982591222832033723042243816173792793065422905487908026347614193216699535682337137605174391457043083738457546064214755922332816124461475849108382009512241164283208775968445029229873354986407427040240301664979247744690697279383014516337111792492773775209140145393534166149882479604186225179469929301977616555171501577294185851630019716615792326024608712620485502410956085401698267879600241057857211733416959272542254812483057274291956990171330978471569081983455028752704436558041012200220576032420150188571307625421274499560475600953991936147762170780775044301221818736245327904557037575393713774038181529541850279845712353930969053957284508508046596732418595383143857391452672504847519828334102388600862413664086749213297123127065241033708520275522761685215880041460643090139053216080627545028099242547430985623959873331650943220279472897433409237522986507239023783272484787643601632426817722509020000688394851094600902935095993177884520414859327795155667592803633428318313658454485466129530884180632768237304141570338234380542158915369400447261761603833914609085222485201383898938638134463893044662601231184333582854202646593638960931397446405306794439649390737526689763753423262247023381373595433746189636010138399982027795394212213806498719589714142364904152031754358984516276640410231732672481415313505028005711794116846891901053395876600959974964093965169942257540390913491586294234882862888172654793446487281841812060378417538493523579387425872387588988624169612708567796484505020016305063322745436281652345783329878345122435483775453644328311675431860467016025648246796148540157189958768505995428646326494495517026121216706168855140211666956310821780271322317818787344156362863367693801512581651313054720932104103984460006722197756735463450336460741486604584798153440525238196379318841227861426452698888217775930051514084878964781929997117297975916318663904488250042759099241329826537644231405736297444783955981507644585987030476210952684709752384157241389978716482680770581633378888668705372053613878093920286721887002264258426318821588587567748503606374834935426027539471377297114354596079044484768717076241322370698197806279719253810324080867666246434041198786161475533956764376732916260366281223990073453021419896005393576259443371305372369432474187844261843716511324872423654201338482078590658100004639145590976034961132471595587483824011830724928088773740233989126917265613162215051053716675382685271799268598408387149844083998564963901221376532592127979293998679325825582221365761459968818095579005192846947558322787900744006730192517365010210537592000163111273718981024215801493936238246258457795507378444318384678244242754778856704563762293552510693228781691043160371197794443704692964017414507352091482660317084059777267813479906326946356610015641033550230488333617836437436071412891138617192416135676287904654345852343400622394752450233403082900705295344323191349061177309111103150235381889904832934310256005899700693883356004339255546049366402435122804162653604485096234157472364341491307701033279028708407456552857836659625931534519931648682854556341888466924933294665544304565845286060886092464394677637626575236026258526869897015096424760014933527615705403282153633528158672609386164346126436055813112571099285286448839678780916136276326978430990255459794361160410570513589615632091409602181943759164303297379622169902504081077871861659076128530934507892617603377515442543489980375573296061791563224998487541756438858012234695806606982834376263948861693502843646112918992018112484070518356354334823762611106009287842583492240385046395277153779241479565444470790601262479969818068360672355125145424863841513347057988618479318963466399263255737998760034306631387271302797204306277788647888643660337122278206874951744733849644625620841450434217601912526991860511184681554577619181090346281580071655108426180865555395515602138911021757379855444059546212157207799594229677848295293555496223789308559322710329349271597537764467119995116652755961227829663029310027856007917744958384821319665182634661901052016434941013849167743937879851356558337327164909001265505667130617993949577664278212836865415278728023609260084106664835154975996501595706485543045124081002961471371054475355138111322328847951689862232342342299239523694060955649844392535407712408920194491128931164128493780671994560415746232470920355413908228874073328909944592420129908654917042636521857030045711354174294158833765244313194393055243451314584097920414617372482723927903892971743901202166979591376833620856105947990676726221864311909654814749336356775340936774921907989068779627803700166797175076944950738556929642256242919171111955166864961100839038980397059825149424392828883578932311648017764840727245178768365405951341578712869343170868423371768600762659134057673557386270211804560786207353957237383247332070706668391956740703608012840498603271155111536415693637848455782501502050283261354559409685429276202329506587371660374844972445855741470668409959035191581837998863711183665109393735595558225921209255849519612526508885921908590353067623758962070986177585700934442057149346612375060906495097456489306896976104084344442431661757885596504925373226953730088002887124886120588578592701346270445706137934675753085130075492371089032212947550282133592287276232556870633774706377751494151272984314411891914065774170420355462629969077431412322600140774481212736421907694972688267585577166510997347756459966849159056580407687105529397925168482400007374117472470500322535878445058497387818971777633992481702231565860022771367198241433079798998832509229386924940670532947055581650976644437914003355937441740187405848361368906920481264909974681265105848214192855174181458891651407739789988075535912328097910498621727754378179471008887986826731283633113275802557491172826191431827709789892271218935644836431027665834537062617525324688397698678718454403119875427834793672056394854041346388832481259697848983133909405581122977502024579211370738641630229121081799246681509927018697772317414574966204065124108153450204169597535258838789640673976221887248939028262727935941741290551888126864254033665314238110735542152521834366224037186310168308667819834034943439413019733895984801989935104511250920696253821423774177292001365206919360115745216043604310576390196356914765087190370163916594037219435409450519438984261015553840212779845170738218533527628502252287484349237923942365981423188351386636503814752083132156857499664956807237854653247463592810921792654442750202634969093424509478398867015220811540116938898785343304841058454704667234339599389884118992320222083682426735379404924241095480705023346148394934746902967397667128029456339035274128570496740368219370019319201499587402449537840435873615151594931901688392388734272671296204549324554309772506586531729087552335155938246296894218770779002009115869242765420381205287984111113776472929411836066030543026763103849893543083304211497374949883669930157587976460942409005699220399648995435390131184403901653501389325823419296886740123879260892826544263416037131768446265613689616853101852563667000664716602551881734590179293754284480306949084593644788904964367062812114892806525208047974463309488458639534218148381788804449115783609305520833961709098463095969199146495749762213501652995125056493095618240815915559584462805247546787133482042870218042782471435059163977196528281686226003575108504824307617090483784978076462758801272333685205914539550173463475607325234904947081638996212063468328405755972139123346350566430605988351159085563401835780275337991869944070317548186300664283632099686517705126860365240529518017904817824493841157308150163242698558256172147581049210821153410945868531716744783461804951486156646435047199374052574713497359008636873329040483997724755311449850108739389162331721656329755299977630310194316185475929958660672039156056825159086766960978200166571995129276680333922911907653222690157695901743745681620403956690568286129308918923943750446545168950127488979581584415494994886222759588005485135695999652879817737614602179728775868365505299730858685874272892433658348557134046781981400716856634695477739740364457992395081451231331634111377746120478538050704647412759205928314548768521047212507087050412085451171889256338078948276229261892974558527823247429691104442591542687770728263576525546555598057283973210064246476139805180794842492924813700218244765569279909269363813351897238575968279432115721912162174500936711223845138689704654561861914315369843305853117992457184931267145897384412180792784411557144319432949782337276918112672407016412895083276120637169834964313688943359107613500125023079772054201333940043700394706311103532757441754697911331383386524391216018730979389602767321692534287717706921866184266920794431447293578143883544805246030188025063143472754905449537291140261566511225243384447946306711399792090563092517536777734997255090607497004572068794989861628203617595829467024936378140962710899550662028598029736854661296442951559550673919220030638833024648819570433151808201742811461713510820061868157992419973473216920758132984802400940604207326979946662878063391129296802357060014827034873198760546958153350680858289193559860667185788350608842711692107864655792033899398711985764864141675976668164783378591832940725266374689607347366038876866038002848269558452797611160642598083391929672818261737292860637612871471301761931850874894237931184967415275395549450950789581564839737374202250800346020402009780162883918843455460735365798017957595250370061007078801383848828956357727523748428420186376945507262666604638491469036144906674074412404069725841671335197909767053606684609989957848268490059910638989500297463499453606426711169470931998598179757420132785845050513105548271720595618871219682421238487573748242662789959133812927354023349618417443813792525082066762694484487254079832073534540889045182509785881783984325878407910406327690350862369637090625728024939633746319103245140685162088633492540609855348584451997542894153624267549244623811128320983501212466583497232769855884284649977333657648635943866413262131796505225168193543166399284233245840208909336608358584110183003875122960338938766760494979785093106431037419640851059088352117336600365072286416842283550464120575297185106886545495110709462116154628099912931478558936450393340887821756688138750598748987526696600629581093557285804627210312377065332742909310453522763688675180935751238754718703319650549352911987742895384635475846689958144335805334526876878397490986828020966691211698289351123676566460103584883876327252694098358453812542518392752521915093577950017481393043203845473208357378842982443278873002331118273312400022533257440357083193438068991293125225126593820997281187451060917680541286408764813183583014558107386766922361668704997356813448612246132004883709696585509566514013040556763902050909252356911013983762599836918619720413238422652064839836839322443508845075492913188248386128888747791358994596151349971560127459582737349848658044882927796341427718586243158672711724430600130870402974335457455552878091214968034418791372849227257007855049320543156989935909113787480326286606746140421696681455429394385418056580993720234547301996890962304260978807536226132734002558900341665053953427612182756904782942337947679335662530823174181030650152771934904617572180097236375758254322713683540604853617449713683863296992836203477672016104329826046679452568245724541175235609414329954488509359100044608127735377498190551337031897821077207409252409879794293055623427817920670665638735866959209245833877470080503948324100026965908324012295329960498426994385166520799370015566736791032368386156389472894946543151856742256653229761664217294239296246959581638227087755116534641259616199037592983221291362608001153882901966909578874417433532013945489210419816835446765649293499803084536839892080002176779362220397433158536613835211859583850316403376032531497186259231893177888878468807241535433696675049374395717204613929394289752718001094732209457077643004823325976023609625913098468951054459809218459812116827443987183246198916086184410755733040208034248222091013448413549314566867341469859843318218347230358782928113783392942116688515223708261264325682924665727654521663614045352166211970367050508336308381604234516100321424486965649381593744819713947456673424110008030488479961834356198462900209968970044829223892489059618047234019118747391896217133106025130909154251665319039173580327713500057073313321295543318315854703534109076305562771230898394942560054523355113975117970650900746237826142070796255570311876874499893517902880994612029407647056293344777298398483167404838481075798409372667746615296470110448288006387923249953883343966772315583629727892940658651692078683999778591148762545716676447726986995613977319503229216637029436355826289255255086181281269495038773994801088539098306875144858088195726875522647345237817473566355526629370607360844208575448080456652115847138784999636801317035928849775717915808746984067578002343504986402665078771002346039616854137787972898076740842344563902492259713929752023068689932923377892745555944529957987928474931015050756152648172519637148282173555728263155214250497404244230747563433505672044101803535213498015789381326527881134008264218897563755168921620977562618482183109808845183789303336048588876989947946888312423631371167267053662798656295320626297326096139775534975636889898861797214513991645360402579077223253161652268391736775612412659410456384805134247359006498026717523305792134948122662511587364704803611789157668207773031084879516261016038206267071261952060229519271145071763340645361018336370729890216302227639015548704216323020596079751646282100608382435862673268827745061463870402936925350246831788815861794897675367382099001787638844709959483802952315269230751690097379227510537386143289862007302178872976205474755252458873562424259589569219881890298391441855340967467014757594179637531895833238442086163546869701716702524076258200520478988735237005769372225990130690404883724663803756670507952806723212014105009101867517223934003953197412481337343930733985673721741417792590220528629700590350966000729301986009400117692510403687402540289851075970026029755434843862325133357781632157904734990193117025537610460993772311345158600278817115609051342608017107371690659668677379826477756861503861432328387471800311555786029311844936900761171865990745760001115034117487362238187935118928245068248754169474882912809286202965834441927333473604977071374368537981272736847878633948231967090493972265456978743062086754171895268935212367551918106729445375654551736264619400612665325058873713793106234445328318601019795755679534384979092684629529492557611185978035428410417572944729536467806812171997249237219022040322230859597929132185109749202482136078741576182778817823403150134577428620416015170543469992833935080206796597158195584712912503201603331862849319359220703685726484178836301277925458381448467307254837331184383812216806963761250730283841901596667871195188941622999018514630980749091816601427027752749639465235700638823539144573164892223859087724822780756841898402811675574875562094980503594798807378291032044916601603338573868983679879677740997650083676336946692907528688018890117205573918448388786967394174595339199955875123551330294110438459022262147655805220299723285472322382316429109868397741684909515973370661557728137108356715161449271797953153819273114900101766455152844461346582589790096310154368560006293648511908644728250796172341344329484104160621637646655486625870695357507185827411086973144390401121729115055794623921694693457881759349446568673770326324249547294903162822006323869149303052048313428424123151891672711414388327332754429607257713049838159246008210973278181350698625675675328296216524090076803698789492478808162519117602472516251188756740982712561304995113969949166775145865795371346826310602245936236845547959770985236525137384354716634602977293904036947378367302174409674640229483682075274593049842675283585458185760563196198873956458589064176313614643247148800814142720173598138543049999968591688084843581987099587364134820582352278114130268187150159806397815321611285407866843176417422960394735083747844178445339879025578846355398469214358123289122796431024379489016336610545265100621150496453478521607163005428243874634197155423324658842345070858928870598329172419568116076309847585409776690677505943039991288198609318619525614166016559188104559051664085120226455833560603955905459772208851320462139387749615335698849429183682843251331639143053292664963109933907927103470493110859530149768789200702831576615274199774521550066036935640794343168404236550845391765445578609863864916278796745081288712943219129444392192816962266467046501904005698382530954624963487335725249024461259722815166049715044432397875500485837084747484574799865475524057056277734729344546030730205839162196864531153026342382106735845844457382686956938046301566023214428464624914929594664689886063323859615790893173081082765148495463761837633081902647917357394326243821265962849787118918643413460736510755789518686511654228189051303760462575409074919515238578210452771757126616045564671520519823652794400484947932390540574039457252882226170522410562543083812853498022483487930290421525419975864088518503649367039780057771540007580541105458681237639056056962794308439056887693219648350772264950472524656168587989065348618277219539305900898829585894228036048083753244664222851274890900124359475980747840961470537056124924299185643152776443321674714316319201320330973121568078260635595041673215051538399747835340017568359339065863790253602620537729886481761198432498365159225070286764070533173640705462900899679967499983933431773193366489729998252158348520487275223651792810253958560168645272343771030846302959546953740810409203947541915160398722197621051126449687475925261792025041872051848852673721197703847700627514763432658185674467906507965040220886171651711081497005886397672552925885076469933287405825578047606998007351799964902483914470523864195358805828095535866567782334592457809787234063035604537575457101951789253877532218740898503325281903652494323291498524055152769885780319471467431808510508895571094727856060051642445109795890793873343816024388256622376941256483236771162104685747675417167942255471460149588904731622089661554241966452099607971487816227682832363024839203734273777628107273124975964858755588461736214163865513430394488555444836125543582920403426561835758418638239373133019134928582936107323064099062208430319562159456803236511364534121235594514817335033445960835528587689023731858062767567630601305171485186432954282948046314472963035023144747849354487002771363688951262771944739633721288802602786028413907093311470613794391592715194385931543881124918876507288794865137030422453378948768436371045947259192050471522563100928852925839253696222961865857920423795100219365335798903803420839045006824376598913450639046507732276354092931158252470984830769689992151380290485694453700169472149375049111331358363930892627851134579237793251889046484395398787039549712306235038699241490861545648515811345809336751431108399762779251691121205187778410776073227345720576038203719822779179335895615298232751561224267351332342451898220043943569617834529350468458987550944415578094767993091815682347245233840110639547200729149895332059695616737447647838560900564333960975369685842324154559849235288018885211726610494721263253560931566901592187713953263886916765069836017591087571452576916941319956490850038302921000991329037240194039369992504439784307711178338543673568593059680393575173896092904948646075678761966475384406558515304134443641997554659206941165868540713911981370964802093956154037988977009942694981958186620636829729558976214041898291180547125453909043939259081646824105366112506408903556088589746910510119287626739277729564482403626750110081182357126083477763312817144068411482617246641136614472298999817732816297715325310311800592984797418648470935854132767688008354026860233223974410742588537795885923546872932269121102455534620475374266468755236541723263833692165528236569154068052079446072888839309080387007944041950215999487642246788070155169585451985582473300264796239273338240168980949407318385560463139144263290867118493085125215743708429603991779609061586639829711953670788067536725614165423826975339732721030458071140302516027081785442351155981368371072748306502644231927609494334477172314670062802799589461616924524670061988019354445294779388883392073200280157330962504936344969898369394750409384140423701222456698532653507357458818545687738485283006823848007965021185273276633677980593651037551504997107437370270848903545945650564920236143515859525172028610108887902266955824328035269713531633191062894408068521244182066634100297960605701256600786932023180007368937328989908521532409845535468184342059690217407464650804326115253494813572638202808497020275638402029960706815125046938224450528251909279377989973984975418621414661395571051097719903512999910856591479634440601093890109397691208090780116757369471811821002203407779448756878515867826520824529518904032990357380552180380283155465166592034471971340238537331434269406616700161191602129122996976397017939843761677710289223502131346658543189699761892430608111568584654503682649156235210860518822864821369099180976703564440126863966051874787166426402039044686243631922890533625440405888740130837583682552858529135451806881450018090911943536770432497031642905070872124720416221988386221365024217002855030616936591392113568389649020596178700661284890376269395922585984619312610962574711594775221378190247812243245234963076173181120326873754549804648928220179395310361095774207157499545405922247673329743642173225002121049949530201186400084097251031734603464391442400094808479450860523035434819223813330852830155211357743515985232902020964552265214938003183723082991659078522364549929570660577281443177927126837415636031808413702952223367357649916111648697782006691571326409943278402316289078574767371149768671944338140908829901603738536097994641975953919573275067387313812437425672966853363226512090350099648317211608917386175435544540651775287402014527385232006992409232109750263664877401551392128064181785073289448009456141575772772627457690249789168336263316142050169970386622244387798499503143134265477815247063144619818042043609872265107804403288905167559068947447300825383904694666511160818200181147957197341826927474898239031365156522151250804640053458976857482699765595805903052310521935231626998092833850681692512532254095370984196840271326789897995294751052532250003314917490897312745914745681370310379498608876095595672006130146651511221684338585529942200845871090223995704306607998244751783520459594614642316506629851511300203286457170269128229470875882498987152222937484608460467382314535884802700304183256885079349497487505611856756542090275131116237454147154771895390398364261201992253312585725116815412264300700862244169499329093757609906689901290227331034910785808192745399297218047295281364542340733842180008133163565339278660713518141244847312932003357129607092975896820431096912786765866658695292119263238201315710736659919090442118605452754945826415482021258307611898405105314958775251956449335304577511724495830502905943636765921334624971800497075173247816879009527873556442148637158414452534726002021259356159740695634090115063585213326068461438893880169647123574826629848794033214337364229214743020779650446588327096210583919171330909313086709789963681848734384695792738806838027082229428475211800973340992243112139317109197709357150257857571950876220098101143762607294283318802467768559792529377950901505695528821597651090081537504748739920537239497840203196166469517127659416716071350371294558624187622737679928681000767017457966869334241346136523067323382773309607273717685291162391145040193159532934916209180123620537645698484995616203691841032317263942820063661343341447724389311039025406533589054802008795654573583162073756647623962156146056383982414855797356724943154041867711548601403950374683989925068872185295881397472489573568490748353069722289233301657886707346333769852603652481350165593877444252668120560721407661690276718465321934924102513352489978831314067306585969939646602361995997395707003527864737293978625869311038428300029502945992200401237926732110904240585835520014147345495732155206670827254507361718589960046875942247396253972049403227277705759742538996276464070074393196344587366602560204150888149934739018999585539660336852133489338365443975221064380839422089265907542283980903981116892641684224671760651890294983906840763360119681888058633940494040850780413388023898328300461937968093467950921957435581180397242728892470445423815548594879723534334704203646884164517573064532995801671412946880403293148579769467397062125636427610136028053838767158238291779400974386591479580162851910912961784325138030216289046959493944905068974129964645296934259497183742226095665463916056909463245002404026313556954546305960221711998922946957173870599026031218718593034875953231173753343112655731033862298913599066745204985456197157700550311197674872607708533161942609115962113922480692642971412228809087568241667969011498258360553873839177662686065554394424962981165732590949789828433500365192048646375639602569699991497858797730788022136272935821323592396127985065230123062126140419210655362023439320124334872676464729847518193403945579176463218657869791505187809401929070867269877553689726100382158670475197197848625968922143735998234219856936817237192039678746995038226379433957488750819264913888642440377465035616181934715883415762048126729324970936218011524960211363833690509134279201113925873742436450848394563394993859108782786487293631956166695526257182541340015825529800419863807463392867464573229862646691984362955006862422263903160990069680518308106884613299524838947582710570059012184422077283459595771476981755557267387805298462812710600618002631949352942953175162385103955664369031993514044585518777540709922682268483928836775062795860218389222650285300785423430043951290261874055831407721944845448746614125860524393204433172505148202334480043903183231479546134051644790713814661599972611800793725320008159277895594691950777161803776839294581117505397135680483699079756400945935371499489788646877235714275670977831248454156540122297761376682264835035591369518105294868317917704324151781971955741016998447255000008474695292713665528488588852597027110473603207469685665983480172922214964713130828573880673286593397913741627529223233315450771361038319822151618441344975228486864782252241093944019010458807713353601490449205623657693666548941235156571884880413218519257679461917454205056179576132583401938184175654223936417101989966564182486400963679871523531911279183260679150511037285261130778127992023303654134571165934164606490729949887277213919069762732780205778534427238401126339989826146835246766569013164106297852415426941200131641375259501260655851860764299801056764533890713912434961904455984837340633446469772449746471251097679282687268509078742668435762463951427805126879953162717360313139777164196844793383122533109531350324214670292949746009989329060420756171922575228101186740835408765389125830782574487274931003065875241501171312332706248465716982020712530488610946964422925319959467366141530503349904217055214927915481659425160433340429048987406817139880979371616297483203643070315469085103631240511501043874077019223092839439683384284705534003762581636129216316540271593522444537733930062487807928582082659867687820356085184256080125654185852215979050572855229108845601329911992115151400847494568074655501084230500659623337256515445411508169102845152866663291158700449975254681058081094577671988942161335870375499030202940528602168337523921357743784435599097485027436588196338527622047770243720106212771710680900759007242483959349081194120046572274582488273031499268730892159905101490281251171712979128008138305245211129138291992170489427892639939041393380405354182360062284528375427024530099933811180320294594861985069960767245661775716102420781260111925416322387706463719393454224783130670546081473107759065182759893145473631775689481623190375698608353571157445440913443329089100608594750765930091632843125009651095971966903013885761501065576327712273661122616446061828314804604577855198143334554029325292123400417826773976248775502785346056737130325837612447608387945073660642326096381052720442763584420473395021632208365502120303230761171552284107386431665063047163392653567647114469659480796853704996956896734218422656745628320030652351418362947786005636988327104980626115860889438340939156383078742503883912674666152715203572670009292286074506379326959660806913696044320181457171195958495813488050477540412303323912918081369119113576984455912386547348088608128650071631742135219908993760452365147911071511121354466766963421189418210311286452115950947750055412258192810613818608481465166116658808256086000507422103248127862455451160037408328480859139108776955576021269301748249908168961137308340996776097617336375166231770364698803988030983687140852717344536568514007503305201745748457298452535078229301208268489529352207784499515418590379560333552412020549492040061307655629525584472855508804148204025451644443836197521688573022343972935442347132816906472493846226399553992030875667192468396795717749635794843021492617431077231644222637982811446585251013267348958727419225998020930863558270191058623647401224456317552285423849067855026786371926208878597306901085648209469394794865306970481445620096274234686118855511413984879508303241462640649463062610067730529953481050691246604806363116226426662998866083926506800203483233609500041028749182021570493833019871158413301512824336627829796222814656307451353676968088618403474891116867060641041871489604236354033232790161257102295891266399614175491883179844801673361010753067774676125425701614578382675927582885547982634323671686555924924956456579102898475698170118372913081403756936918790175070702185583835286859136467064048335230265632503215426168749772744440469064214982114217046102925936009221607801400066779843166645636982344391030243228781187187357371121157464654185931781356220652545865412408256901289665454754969654027058614964953271537777935688818963120362782185335857773000198813123399963328213787360741161625212726143284020557733054593747560197258330355049332241028623384795737252898570297609626196053505250400158236122429637824631525647111746434219316285995020652439072842890735698390487226293450257801711096719330003066908551774115369838251345777422949046835111403109942208630747006786013975646896490689163776316311459776589750443001958286853459755601781136224616629715245705765941109023402282358938401698144734590884314402459697760587084918464688527264558732044497722159157290050398137414348379566928789984434587887029409285762149017085513691305406314886192881061035731744452201074521327775389235128826854384306834331068482690698943909143741888204150441256010024559599079611219521459171885970325035515921084736529108507650933232995119574994143075916292115383811073414414345614898494441190569002677890144852729370229899106000288510891068885102766787392616129447478457194816725518289205539313148619261289289419703356506950212320107135725523764458109652163009070005750990605952820775080994995645647033519869394517411431894761077299334164087220382166470360300437630435840956619440074686763411632268155939715004591675222740948379854428003106966893294440704423488191487084589861853032083520960566224545468920519981579208967271985378362331370395107846153578002300897359047031267949884412389970111290511409872451037634972080455756590092764043595275807081591193884195650677130514145832889260549304035128677687129615985714790586715573659666179346908616762828924500650297827352972996431648848870856097286025852398628187395851773042467638690292017192870096436066116534260024040798636565882899486717021557856912813767284934510609053328837877926100259018497910070945797800999388433838251820497317737412715338302321308557639670633861770751153527974485554554465843582399198222119342081091413610695174221692443932858512872684517112257802690580441213647309759300240880036275365592203521624595439821452757002102844824488163786628579150970936792356183621837119704961658723102544478783250977156614056767988533744293481141058716288700873854660669831417405584629461201850781242515645231788134868406237129219967109867289429565076863147246101131902363167213787409798846450522403326674798440734312441718404861502339464108574696279913144879556523991736796414212486514732168554013021652895087991022019486998304727461113015025831521779967101978113591110679892358367639460280879843076434417473257023172243364943826985757985336954051453744733598697663440944465153921136766520446401772343899542700840932606264860534334290118430758957733171916982282942432890758646902054626093231255856554083328092046454874047187730378526672231152354625721822816021065681479087237471384139648281727040155752160481825248397222255722840020891279354042632365515797718125932406349273632007721025311187445772129114820951668303042369136913049677357709702892129865413229527426868685244920073787005420950801594739945857305069505652797635152766229470733279765408011754094753403451020441843264465550710484071295904597615519994319154756777136500561001431543839375800018345500700903456286058718881534807104157186537723827704008280086501906348224784172005190743894566341793399494103651765687393390910333425855614738242889120908545358570718596300391038778909530415999436339098609131810292147268906945306886472822607123327801833569713561432200302407710902134801931565234175559761346655969722807063944569864245406840028974245116557609780009012048229860294130283269940727751335708343972030769170189559625259044976193963496581440076625325505990434927478618010032935620172629668472748397308899477386362868593090050259283043361740799170716279310550973153036319684650073724766531707341270787264209761001975210022898929988673000130807888722496943291219702228849587414329689301615641194001540055062346651835906908406299541805213920391559476819267035884020584433098717542659057582901441649491020760314720929209680314406359355724493119569160692624867194186036004573800974389762202835855884570150210741264601471266397707165310105927672125483558439565020625787283133741252264701813627777980195951808049587017963082486636519052600716364596769329440226093754192841896630929135551580771356625963130076575223588254827223610763077022725098814750101238271844305340255296253292218119528987325217904988301465562583232070960716759502482286843375869862695369885468314707872041260616194703599400100088986534040251184170346810380810343335770936948967655453389058200870276892656776230876702320226862086612793145008895373107539643616874151315722489269953620543794153467654699972285114864167579544314443711045496952782885780387731483052135143620580157939525336670710042282274925473236212882743690495806035311828768859446360559119732034278851129941788790945547087553110119248652976719003153307377747652423066246052613039262022348449373302048597333076619492930637603541365667095280661130624393490580621795439578613894467876302110247343111971648133614445142874953508649905882354589960896493604099691692960315236099975415184662776626817704096447250148589243386470804963582210848538577064429525625051766662367228190244264843671225030756032450125517580586865947062697101242720042390058387834895245746301947485918083667736066433298462507257497689962377076281404683785348216537254705711198616418444409440340767263985327304901903459717434126258213448858044943615203791258195783542492035568915334373374295839908328309815240065290375286989093238625824087656552251242890282927089079503087785582016658569936806069615798197370544025269473077452438613989696634582954400109216218364001865811187292125777699094354199521205446578188085957419204518957385239293582002796002143851035176360388033946202015098149294331459645306629292839977873186163100046013109699553316834728963195315594174377799694928733738074719430015395946068102379548172046102997726883391032338388253495379516952278813225520539217762125744018236900702758886694683219124923215744605665492129259750062722943266113674602226377536845883314665982906166817586777948241701546796115806469609187381300105997623077259230495022089421033133411094359257081603641315361213519408726693299403025824263892485512741873230294479801238110779308229388303250117603092114269664962891478545748924723164124878250030640239068801162924089412964597494769160129904355449083049605346259350379387388360170290358675446500097417007380489736657705546655852664008296531285796462991296936203519616438435538891082065031198609312001988537458266804112634168570649268636263907846011578456732232617120871921594151551144816500869041222785141139707648343189294450505392944034658284644601217457950297512623818202646425046907876898672871684210910383124826786525909589635798906411005657382008945116968851458777753601879227550534051944420537021574780786675221042517927502218844558847008755087290771320702283804280615473761319596861963788504595468372963366743080426317906909542910623542863964738136704358937780608009580633983820122999663754006259976105722626125141855127433959824389969273766984601765530759546563734616196674346223782417766932536997851749987419254398431937758425278498579462842518406727985776323709728630395936287268967349685053269282211858439962622185883322922282272700723844578731979867070975418112787189552948646347592004773563464162955479143231505625583362779143580758343524807976161279863591161777193030431170783953627532830936480719663109083806545891988299305682760600495514652618042810640975029145888186855935307058018438477213479771283440947421794714485057245179570823494902983724198428824917754365754367789032907353422290780815394830338228606172942365468300809749267930451854343732706238241217653753793413681681131549443452731042076511382202933314322982506752829689028802463862528084995673621188671800482100065765593686881796131496640525277074063582837387628814390507865579421779177866061199422919101561642506430248274267029071038000647376937973538771124873635205294057959630897277339063437478668752159961702745294481368288502922021762528394853916324988346250661540969619290174328558301141400420860746909886202949139310579058725643835656003718300888189911505096032661889195382101196304050847609552225421357254615065478646579029142165452080026529274698909657196074562692163396416451865802195526759537292127630992923129800683072895395856468118175148881522220095138082596755227610677242874485215328082685888408799122028444158860079040688924857666718143474175143578035241964865549053762987470600664089879235627690952465309349322946504234889302191941712890111959652956830857268630502860325237342466123203234324430719169929575172484580034794552198104755511358156694483418599323387797537861871602148767260503285444369486774703294321053965984201925159379633116824648938626218046804898644346982904420036497025175374350846227532527078551104985082654823476346047833671927784457158374907434399402755543451685859843316489158366366314388724804593180239565076389012473035260402647519921377279859304505511072596931118046938580472907480457341190964112905756083412279733023641241860123046940245420505012476621035469693575921197892671491388434969577607192016958005338002761954379458174658167696343196311683808437072944650908002165249011888872155844252213632922631250769797060578876748516689532991851337587906530728762918267131274735553036971132954670935820040305692297158305915209238933579855567010601967859070231560757061970030873529757108712490324928521089068230052639893519412281203287136629631880232452952934305999620760104444788849183516630644141962145087124113069056361879074175288350949928994290283921119132368938610299746833639671168980372660754673467875658023982055129135526930393723959110711758255822886075813541997395429633860275765952513745894701070620808121095752041855046813617783515584934195736929684219517177423544716718189266628939889879328462669053935578777512394563872732284087285124482318225958428196587974662029170339614235687748686920054116700078597108222103545458027365526814103771277115188394215898288052337662264596103544989447369520001426418874632421224632192053478978865179049328376692471076077579306924724079658579110241540243832178530453287530537233358035149184645929415063847918917187047229599496863815945215575699097208524301086948120047659045553196456522246228385348307936877443345569914587493618656784171363124567827367009874977523792112924912133924059479526386297585083568040034480612037309653364089609471475239605709518691919879559985006484740653976751572607307607689590223484272251384961567981549041700002092211964515922478082023580542371948895920995770975370737659236145273959053578112446832916562264416287400697483301145300200889839113400908973509519203160310552295533528977149689681289439534766482352119898965405216433738308148793281949223395234404608781898005193975287567844766622402791461031901220637794261971363853098077075540496955727216552213210595943771316893546556705333232587513723639087450635839672879868641195939762169519514291767254655501389345384720405877469795117542067983168865610895422965293098821736051041150042917073053365051580570155521012641239070600354013252757470118293253844211570438439481019396069396905901003111625646266240600987830122252288671431215514254654244557990755613338183083039262700523373001767534636187216711108839604707733245983959412160892396576415680903973816701870207084388499834956407787540796144790695443973289035888769730168932166277518710571025658790640863112750877763870999621249237767107543308937887473408390101098610095592101538870696929381323243548482732889217993606256263568110436455560527945793946364371002720633288254631448996183511087474245446445668550631118298964746993332180370288809759446039464306277718154368326295342580830318453810054941237763749372758413692235480855106414353899809958877391306486791231991734282188932432140958136569619155351370637665543353213569829846112051206763753605068745358996577616172259755583954591953565816424124452807029614348449627653816982069480912900935960316379335433610372934152523682432200170596831399215370484793720191838389314578240598726318694775676932910383781868379005800752979334409445885987403455664368090134622274257815568699337072353924514927506558493196670975824743367787293656366926236154880560480282512532261053652567675964333554032156057971357449716095277343504476783383990948897709122129342314191705411329733426303110419459284988446880985556492492188203520229251160357604863194713151280461096899359357183710591136906978647812546669988531435104350014283835021407926075430355805861949603951906866229728820036619461704223006827438296708076700068167147947679473325401612509443275139262996056143233116300625732556024749105784196890525223566493082036832410454291568142673214698315692281397797196001411723845740582908547084842413917104977111386584731539346137263808197344316702050241826124843814290096308584824585366119845503760212472033617791862716259813045536070577133223030673705521461811470084394896073737822995076244562503283193160430815026082315632468141374937261752539845194456765133936960739255348317164127037772728716099490576819005241432910437922547644348865492253111025173765775038998042235014103329347678840911692817920417152736149074361366177043972546963695462356409304781965355586485225539436479276901292075284378703438612804441151073731255463547990064615504510625142557449503963301672454044943075635051175877399603856997650707191946388132283990940543107881970899113894366936448549340201897831697890984494453913934945897928228625399011175464728247222171734062047658137017039216347651719146151674908009849827321669758203005130842370401826004465890745412029369998687462759588005868871614404799014952598234764845963178450801229849336339489063191903320365720792465733338871144094231420683333815924026268536709063335639279212747366685649447979047891906263756125041430660707263362097878316346729743104998483228217352609910556835263185674521055001519345312662798681888415881219296601079295051954893038278874044784604705631940818452223128261555465090229317264931553696077079369175639847746661395997628048252553257278865281309381083500884499981685420439239320177489842472544195212250051058959360351544479163489263238354321569605131461674696332432272173595742929762140704725694975164081882865177428830035624897159456023041186484020800700834855736588023681245691237564626595320584411521304955723164175275663267642534951049092077706995123030650788759812734578784633573206384343454962441500129765912254621116151174717134246215543585215538248530550249551538123524956313492889460675785511520718202726446547106891574925918667962331191262547940756218369137463421717296992293189254942302561084637953606569840064214717672217912378335773457887225705079990292348389650705093563383485606063059906792394507258530690911035912248331464391762228493270383197839161752169863038187934067946522495276238407997434263171701803714326085489398164680701965961828024668309706443373233301633949372152523068702260119994628877374026273961536524570273759772046294725999098791650787785971344496374043004150123445364031744188688326730407452641444239957814335484169753422034636543307751696103011240780357126583835506799637804269412697891716797390598245828673353107275736154104646416740563964049249285745225097893199347094073846976114584561660403161029989384435572190422945818082053086199711830196948880251853865861103231243263574829585141818521309363822873186129912435309512619844489490178003750817561187675016151548171738609812663078693831466839455847188725044371314246759235594021230637469798628732773626273531020103969785421391089834502667191645709312980713343268236506941136765855416820648724633929859863758391198763597034781327289245135273063497950239823769854463407138355704018381224326682185162018485309009400251659562003437505973123992080913590105556203129559281755812862357971967644902901011040803060118248136344395437044603298498026271396176018100864272783639935643943256418161250939023322525869759469961336576702869368617626151906837918945110499506665338828755577017303835908072597359778490819051352643376136314961651905093655190480537077175855083290143903158469519179042683370241517710197661407701535416829158702206676693568308273801945440543163902996340667687422921718292844929234505986667161970043926037374766241508014833342522296432480828046788199917507879270070487953219980195244851024398418904030667824536851160938601782086932471530969164436703764319493311577061363235435576503420090477659502333430060855445181060723952992006064324009350604903201707907195350007164878118842026151291809823295229530360629159393711140890983886184896389280716649446062900886631659537622775368252598300314404817093309746323346677420752834093786568898164745118136212050843559289269076214791084411469334710387040256530694374822714444573923614843414369535074496998478868231530647822453797492292998736130977768974268338170992088313479698347686009141661628270107419381193673173970749328857264303116891553172331481608461390336992120925019235883486301503739405691661035286387327323679264442839680611079426081456156541462151858683341634631278794531191890166835420071122203458309917776974177867625231482722514069457372781773366096122115442167810551790061122763815507733662159405270107761036436423198535278454926530301970062990310652911686083796431999678122402340663229477602194687271435521195373538533058433714459002079835459855773741377719457031800441634907942300479481709218718980611788405518354169170986603704781020895619860060484816564303411995796205797809754162255745224456527870440242091637532919086830161683842394904905520878890699465142250821451996395409981038900549360294419179575611384689031163494215158610720459743429519961341334469769680358336565537986305792013503284915851610485729447294882471192706315744883056057080558762532827521138382767117629160177053345161426312404206361786946772779413218455645332230447313176012466224740895543616911014875515279945845183166468979166032978908726752769217157733913619394658585022645612369901350786498036069389168260473327283009017145051461305703119438390458643965800492455922009471786486912714753380278594664306957839040411616159169724607349712688344629709296223232954374472043905919232662843294999172040271799104919639723426380400056332018148813061286635029967828299050680883461215424706989094741713025971139831007871132321080792622628906354733465874155297386276581817076605782398810953765807913537628171947151140924979194229146335331316505194069725846883168213903713740712799537452994890200266136325171427741918777959871961884991981064970963915330577875094224709488639676528203187229775337623882822835991068074219255165553147798660815461595736410449736502106875737610871401169986252760750405354984144014808897851617851936874675959775007873444342914990625413233163574971294100530645949066705892566052752210768367552430133997781727836831921504667696962457119731388701201859873415244749289164355953495908956763148433022208325912286592273578959156783365772753655612421087423329319609784259017770423666846396610666972180193773682345481577403015121574185651837534010022568209743951663101611281858087262972774094397113471290945848447800286617171520627966542890027506665312789687614803260305307354799701576807728159360050479480436084092025747492728938449591839952414404937505649736628396318100145851463395903022136333617241655752267391490934584451503262776804735497465275720965652911990960765742563583753329661894337488563130265085244318462346954984215336949723353815923524554457596504800183069682341110395047345690570441420368459265368869278124752969139263989103425377297447027425627502963217393692385224587759293048124514923280153873434295405025786495953843093455813355684022278284953237496440129731367673185783312038798494445768178319979032266330203458084907072554634286029755973499325302673428805425146984216870435376071091249528820871642704573083207995001064978871231920631274042667699700024757953353948206321445094750700581267406830623083599781400988827072042046681636491860964238237758197350738908014204957385251628408781564421120942442506311800843473350272546684122535281810896976515346583240022064270446316437050456592308621869317521620986719500785442415546049150669404744751926626369174900133574135950387007180339492761181861562755735756187924569443601927524046769557168766387683222708699850056289255639702932250820561331998241657094569637499163527969484807953021172321245343657491075796561879604846897474922455872575378077224571307465833402057745341019498552864972612217655381442651735173541180623526965513185284557086106669543481456018143488396458048114798450973250945997495327868110907862592282545478173930132126061703539480755086265992217030832715741189864530530994776111148293300304173247764293477046824719413644245613471898020001289494015390835502173137061323305268157483787710651816531721110180983383074090018925178347449747945537349649661329392624729334772695834339441152763432680719479878339609890802838670952365058058634487638387211109870180620974448466394875041171237000897527621867990962275450622903100443892381590671121593255909547351392572859173899264401537829380932775668315167471131627877002896465674741777782226779184217326208622134285442475668534540124504728350166875576227662353694729161355451478654965817979080166378146034874932640781527208387936434806108077295149360070494265402562731899954618891471193454818039954412636458216000901458613426177385619271584831012105507802328932616772937345520481080526688944954059188398830381165218710593357170105000792617510055003964593016170633883087319783234671574058048123760922626674158864451838538007515988894613862712745626565433523807058821147448421955766175214164776860816517713145396027660506672308355226506858200027161123589166336235220214363749775279497740583160147811324212966576294357394364286756945543839919208708783892600338269826949919900438395453716171789365348087941874388696636076606106340518410328132183046740434891701050146400212266131294230641009367151685465850170716764240980494933463938610765494260668058252694706275372613880723715315859544472195244089164912736723912363204860199178064935173471432416868758836194127486886019813908995077170630222717754995191595520659674074268243229933848699044642210523476625201201913376039613948517920408166494330923671424560344001116218656287413123072643479369338465967125280985926304769582085603379682725125095897111378554948962626225505730795050522572853499646567868331429376982355869020111542551509772970974508786843689206928201542515029373545442192211769168732894155213659951528919844796490349778288892403800989761452953048448740088285598944270309290476487835349098715343657757648620236795868281135847627661413796303237837288112385452099771824411077294131582932003828743681311359290977083347325967719008968127615618710286123088308221075321472169288375088274710951771760549246274352076599764271079758849669483742090843941918256367146473838173809536572272744324516239062952258752936684792149769325888697465163306576233178519092716268257799220886284566792857131749573005400156820449637128825923153845998770470741502193163585432939415807987562972450257179765560791876077989872925767421955948203714467127957486044617241069364495673425935215733185667617814528649382824107669119714209228022296524882329831692043478132645678120981590843715256720637254579062009229372333245501416123881922770035048459370577238055590115635075803915786586535295322938540966077261507331597276565173810365757325032269898101307118201531672535227031838138156480918193807126532304686323804964644180800408024202563859067246835211598410241005836776350631738485476094394599905564666797248494255373109276662353859964667997278508409558143077527283743417388504356120904981053464165269925900880442918954267482467783202149802285335408184347658939291678889683427203285925805542320690539558987479687376562065614466643931742246793081466468860945093762840130584275192172984133048249397001150257423364559474974184776918788321750018418824669072542650386449254881561514236369193577650455494662533137448521552032829135236410575429542397014917780674064379891631701831755853935777883650454323820675071072767261464184397623874616153895261964300419841188973364717013892471396312760529918349355267051565906126456033716918580287196635191541773435647786307059617599523868359175255521124792945450837538708846379190475968078298644762771122965975231466940867490438557887246371911633790520069353916553819167538558123227799119334339528698775000835739305356955605011209141629127105776928049122987341507936409327344415120913130018036270849677424558017417445349862414018958847392326171783583405638076040931610558241716179561066080019833644886659110784318428915875912100247048716820819366593712995791159627881251215031367181360217660023391693033107943128026464923175565430654791590024758855770028312770374904468023881754639346163291765637482401424099271042641312482086231360588957934124740170056745950235264984941318767130616702142997631655538298587944739914264714228705110492522907501664671200886777029923529636813671248647390625511677856800102386977267886374584747743381067100233742948833015749819512321506453806659911817062772378095403446362893918514042579960559998113813537899835975250743768411050865836987618481724942972917698647257407805977031629536786453091211134550711541296633584881702813992452698461755563728500875377863691371434863791924089251597043006378799892657365231185603722651705514463728093445068468782709308315976962120855005834410562115571924177755153049435487407151089720025035067671934872362098592924532048890028135392541321803919496324319892195117720851153840144144979863809494607339018726610343337992191500896053660624607277802462368308372357918554999924470106044197905465316498582308667756389892845770363444629928269368204365588434366335253253439289258524088752182312679232523948750536852640230252112663618767978895241857709312619007005355152118404583529944438873078331817954371280236308236301200539778423922969746580451290082401262175883895248203058092628691187521888608985618842412233277073037847289972558591548152892005706414290603783054978352539840069206392198299074914641834210509637288491991804475511456510804131730430076813024661427231607090174896927169515982313598268174916318572106203615629260004315465929718760169790642471644676711967219076975423747407157791542063547213837314914926034905457285124888710832553015396604230787829716023074802170997174147321936437867518140982524392906297594304191543519645417741845310378143974323936137270452056026039941066869147773319875151536401298999325959196248826837974320707713199302021244987666707615023219199199428724906991856996864629906562486894719110205945432567908224813878708607582259245983684209333087171640551067741218665108821203354704243989757496313845074693372850287817807827745519247867682182973799176746891021065254691345964384801338632318866602931851532175321137849479755331645977267639656762085121669880243291711126430137329090414307835120725203194458354314853276385662132538527524255814428444225449950640966033495684975551326622964072365265530267959382319383235211568819847851702936270104487935859795945742074116952800174665517867687223779694061495279387244548493011679362487155224289326665184402374137221437840199586695411786524848886629855841895160460904643021510771975438633942116323270430895323698396760504871962992803053199043931051680813523929749324254469353359406785643668784252321913023762142317701817042528121721138208626517176145958159758636066762672923254829268368736834901578659878760912280574554733568454548997495352386608296197006587826055214430726595122178840490432768668897008983809886017713905253903477231601624998444872271304289787677826442354758332644785835452472841889812870019932578492754297756490167311966249855368726482900978034622354398306661111563324177489047317644831810816584945808507556544295985213446026238168828273878688801791964941134164539855146970595877734350395766464574480577548577522840243836729738515356993739832164831227144176339900372780093287020964875861324664666328159346647585066737545670161713708169572407023668664090613729353758094090501729870357860583727959056708126201899422937012567911469233799867717035869687017160556971045786070045352440059639419908442845857136540084209628313701573365171833168843509376096594860473674070742243046975704148568898187337824867203173929008881343841739046001623445803016238428031047595458538593958860431398651361785437157279427415761207084922570963690876439001083305695867996196894620645794506805298008113048297289202546218120825786130293389313476718698941927655604160669963227762503335412139133453343965744115652669144719402615123297340315841263032879119009749678200604786544142324598438696412479163451269019533009209385071551992050472740012808440267253949114707074296337952548879539242802182834436366586266048618216509438250225160891746755529991815938109077667614426560536582912839301258284855746820857018382697795808646721543664014564922953700777576949880626684287829127153131900723174840824235868019562343964496963936209329935147278031559869344562891677689992211091502011463727024646255184658682731581855397743339845680924312709889326503856251335051901421922577335407545680226631826945954318821265596636103932323453157924138963358909521257100136801343250564633565651198093929422568338500913007992952885342984971697178851324819511983891805464892073879701604031313999996178426287299633668271335663876553015156891865124382277730821193242255795729631382510324687852149260195697037146349388617652810508162888992191037220688072214380742606388212116590067116117144437559743596980802973880277845902674766790336970527426289930150132309636110263020638455859086030023469611563850599219383373150134803183407104094018648465743085629111784872211108155159690283645063256362059474528125110144719671612870778110016689525446752421173957825113062723845483054463665320058570656311409988722828364029075978227204439508310008457136074281963228028261210459215216400099412085649281990722709366851013778109918134557990119494550230085535716256345037890791235096966811562898097924193781916191405242679897105398951942302591306816070432534671061983886969712518440469010419552905040827255081009700338481748931897644180849734057131939076628794935950866358537363680935544180717464277112318963701631662711497312874016625845651478515158377661682809529019821909005474576222181737499601263446004934698391875359359732702614820076101885465549474947333878899741957921730293530732940273381338678382045629536522717096759505078133123124599607307784569335618147008362501162707822959429281500643464856407890495834929130997708936395851786366308031836336556242955240125928409504092637798910493836062726853861784231043878479503979465221864407662796792651523238564302652532972902526294377213215116719880219617766672514076400831244224530101760455197929346164702116594381027610509437364445154336289025080560767219968827293622281176364384486241371909759680265970163191489806798842076756132503403933092016091693532258389542002325250129290304966149355023409197817159121032647321093362312788000171758186815951574311989374482323119866398012928135503500020516081475037251267853500119072028077718113885161764701615689191017571673694420246683551642083163654088467898446260887506292804516035967752675063594925850334394746958538974973160093553721374146499281133705498695541617230668284366710232953490118368833277269913927759995102832230833270681500906681977294954763332484213120128888765698604393799900438427046796870197730906915342357780579648168173140658657981169621229092921199136904200062852315215585794246097138404541554908353487352155833431201152659900127559358987907940117266149311331581617842341278217630267341457527392386512545309286676863183266985167724055690383376336475189926894613542028618384868149337840536931515760347963626991395015705124314130045977611159114849415730703314608560371056201410273309671297019246764697497397972643516868615353963773652444416514045053121987999290830698723140955972098180758793468825947467389220301421640878306754100281965744400211592258721339029240679001554173811361141334560248273183726818194321435500652578488996874791899451883777221320337666180816796988618928551777025991882035615373342775188422183939685831366732670933765798907869368626893708914384979080149545447317620541156665362722573323722694934710959881563212704682183378850679699807980638053077263413954953825821984965931481141331108017306353914906963446981964469343723072019845465925253367744429186479154618325328994957582397074837310097023649337884360466653979619698120680536752542086958022399600262999589563805005316810099672171171218742036418125570365981385478001402921581665935856671385302932087959426027424034984605530727358054184065760753755536888548799461723924155211712848776085708108623763187410983910756740490313771815421605374255574130032562147473455856266172616556916431020261022856077226205963422891538592458029822239160800594501532518396444187078805225550495958980193046443408444834659131724554818152951249125339679433545469625958568666595905367817873481482854948606325072448027209986676186383762563017391689540212332468908379761335560197771249910545909769346837892908517483751550058400469607121362906978560220504744394061425993392023419203917960394505735701758029361646033888005776798908259519682044842923270115006544455481505522451138866266510692085112028280152189748351031428365810968679259212398265356822752050690610621069063874593126694039975350380042512299398881495859727485919120902536425190469432597132702873276152624596481910152853570602104936589137190259906959617526788154475087571308295689645492816720859653907699494456736708083654576003275640341209742080224065418872109009729146482623813645949465277782943550031110718825262274843589238309120693146550530180917958364055872155794104548266145241433897802503600920770777545076392976596845049964273600207093806309791047452549715761849063230309074897344699294802053519495991677980905859072794855208088543634102994424545138572366042962284998933685809092366263806356418882480210740405213989334897496364981628265944032785848149522428097353584384565293588691503457492381833254563204965893774439157608705503398866031537055925860555842242512120859972513136235023627593485200873717625615458598621059350376257802134000687257618618930091770157692449141084287520933446259637016871059985384891023965790532531463028604155559446879452520467019040146909026727976991319338825395184645355697185172128189301160181706417469931273623838287397948093623212461872356989607957763952184204042608896026322680820247541956526226785038644055713262125167640272845207611238288815683865019839890650211118142287543545856309971335763536513247280801470126120749265890664707686537671182264646023058546838388799738869091668319222648647243478760437096954250802150955292374560495269838176486201536038111976063558748774498008073785774175973644859134727864644262106971880100685536362886387218411381649909998089917837734809377699471305078891164308155875918640713490133356257564070323463625500307060101422903598246344450793225297134389230415673704605356786994040553764112514296968174854422702076190588696906576894465634924524447685747199103698388585496542051455660331155225774261985695946367628219386400907615308423873374428597566612081177090691219185834173871978848959243491142161174697831996057195339947532956205562844984584956872789961089569190483094253265251216519245801965789739109636656718191515766165293605842555569086003957936200043278087350260318488515892079733603478743657321504798472449909080687013089268916351906199638524997244058631275751988111189541617122005581867242352601125512805992095575395902957227382885782130041864881529344152045734275180927670889308855727817095360855310490293406439477705962250803395651630951010815565010039920366717734050987574107646159696874874555183610951343967463455332499679023097733078576352533816840829896621868474335503125730025478681244047375698635239076577242636505154928653688962958709871337657497165121325707494224978161326196879431587524792668901360717588632410260469126549330018735140074391025695864204589109370724134101154228907620374291821170024802040529228509645903679359613885654002961141107390733497777652357377633105872671076484377907163110944166625870905963260805211790005426525908211685164139237736524495991047498066611820276126068089514826476710423780956301870507307530483077907335589930435471943294448322788303797493333848334079485910974497538411693151019633985215863289933642979691151562827784403440586237552341261071345146662273948648281912010137029603788217618507795545451704491722849585285545652088957090185233799778094263539321074117015009292372653416136174399571584807310407157143805953092521035102431769322337495323742742453209414407328818862847028523117823846210574375470505523306267219859722527569816317755463157552080483525827078610102287883932539326829277312091986865272250283072511800201017718409329358412122845720574731375245835263652945441217530135903893666470910593147032753002721609503030787815940740060721139545896221482491431116500018677525047014614997469137334583198944625395649189062992516895489186595893485111103703428008346436151845778980123986642621045457247666253405726419143305241584364336642687266053498824494618843795908190987450298838750932703426874319517922080789227379152261214099761131186840368122765852661899742042763220612667556984024808339781070632840128368119063408316006676351021277313587692880872466349274123400711029269570519111972608933031590715955222641284135895574522196762650538274059037421417869953026386758095058249336096125577685800677895410249648920270988711652942204499696627152707879275305760804071890594660727934189297911694764568592683547607358570844457342476264923164967790169430903976709808690043850319404937225247262278133050434492008815410314282396850238129500180074256299777775087744393813143082347543786772998583928122243288742352135722716529207372717535503610796729338222572654066553471547067082134209943318593635526101587019482387988096744486239635503564710315884937149520410684451643054035896195798041060015777187390241621321645613981855243749344134339426773222609645757757638773891056230061117722377469588242892494823928808504232128131277932325921063018113304821989899364179090175276149667954876190738080844259068694513024783213100406342321259547938970521556108602458615603465528284626385819281503856273417510301307990632659446776568916477238946201841487853082923678416552804737997752520349959974451012130469769310462888279670570705403130934256217152367001166282024119877802117022732016969083103055768822721821670493898656110651699707548599050254966366855983747513367902057368793151293271940302790540850413060361601289849832921332855345758196549776855879422367851496523978881158509323410022303423010762234594546490642399583776402228150563526916116676274936460252692226657515830816357808760699083961507854867286706231223728604596768731673505091335038003971371504828997877235165452880642690949799528613036449777334749373053317716168277705965806424355542546873519208471240581283069695489624542919628240320355068859193639256502394643363827669067925209923773716458800871592730060199765709526424206661938405342796883871952608395677832820599265016114868076264006249718713848023491908878318492831432307862519746553189301266765260363822765832610054777487034511985429237200876206637181825606248596676180751325996410706996460960252291430750526891555816920032788119823888723669478078647810435121890680596919383726049746086332254326975549745365031533944325517319011679835890458460988148423758910375270743607806750471475584212568933530483236557184970621097307812525397725982538249741738637422382601487274255814615425690844938549377929028229388036539820989038702080788907482575647665263580594819236110934362719018260722512180997134532611019049570596325922475012929668279136490431404564630436840707190818665713850654341184361446956764524435439484024578251436477235657446858906525090337491830899982016181452649233919349176748359681461055229554672822914701829824300764151998045686815242951847375832569189252536300827098375220167573327233600061873812707432046124139293620589335309385317744138073600442653577533819363236234363990808435345234788397949594737927251544224916374915395461549551163788193892980952621254717256560144960575133416193899081610510624885762536099662712892701741603282776935100941240355345486278328809939027811157789602555205624611903499822457227961804181452889856199148638060798262999538459208346698272958220436149631923007741369997606838930713957019691154407764763481576480777545814320827670014899395844974684332994507160194761917425365326209100465323811964446603359482128235478832767894013735885819163686819719274690398075444809762945373395096773133373372921163886259531706386377450689653279783656442078533982425850243856501768442226062056240408399413336187378274694361614421142356868732554914141100432822824334273444514532243600475277911205538113147391689612468899658355691419846666926688047502676091205600928067058314553110607343362965361250285958902716557336014437197631186890981473674885821817666623472443638256235920558059019229697507446377361910938269660336475693182781006816365402025399652130895490982773926640503117695729528479769404259777683333441754613989864639363783475142755470600556983669797680063765478401696832390942151759966903699402163400578606972716210695048994126824151866304897122748098814615402461802480071555836715973671153431476288708007172788869600172957682466641757033389573441308165102069763091960364832787214473685884439922642383690042111978585072720319422928325595768414645059596239912706679921007288383318535106881071616783637710149481954810544414194228489777192223000492856343650362436713893504389371520513426478724506723394892147018963248017186060599721981122142356891038795647005389905873313089476695630454707900240167566102266903628473650799311390544252578141999171305417223732356200419616368610356913905414372890905620551860717650017821176817098390674455546008692605433991706268274957342495336116592945450039771295708892618600755371003436831818509734570128140168597440344263427543734901221647700136840804091948525288887906021446531618427461296570261730138321590413458072147283020211326452592796632478811055046287586131335162825454447449820329371602622954110681227428179680657527713299154306281119044195367950477309562754651763889603662147100883668616360240052879150877422738011336286276218652835574934213159285315067370178422097670810363256925043162842833847578746790694439741807073206510351656736245239628906625397187553083671739085088440146336363262832195981468390424998675359499718407263346460673308881377278478197903821175466170715960459567305220611777507108548755767915041630157074586968469109228899856434387911614127932115725367635728585840175967229992517331744062780179522076983617810843364619664372951608296413782993249132405776296102619320009133307558216631102275566467592879184942098655340267358320077031160917385454760472110199838918277895315625897451439355658920867923196864411222248626636633826560379745216969401519861599423901280269380638096915093601783998383931634647460055716652648151086422189270618099928119929830237038108787645702651971686301803468832850996759937142929245842890391035041504783201821890811965932266675431255673899542384370699466718330608836326913949610443189642522994143198186313105558082437119535140022513531882858228890162046475078242156720059693653401212828635707469916567678178194843451905233099213019238240619075002335353600856056961006950835937616733709892946155674624027157086212606880633431158446644203308181109312689178097014123639696820786934613598942507026114508864576941358194169676397684187297804392355947528754942750436504956728128694186719894636996180188110288551989783324203996027571995524973316885690823128721193446524428331385725304693162850680840621419681831343654202575128341834503455931529944277006201288423183956340566139156310080218792039415994164676895879219949203810238096445483281289260327394565786478323557764817735969377264538926757547893219052495269537806858318659910455920869881172136358736104049017552035260413277966723730008773803769700523437841068275552380702345030913784210345107959035288231119441941036203156269522776270712720162854201130146721289480992560492146443268035632808857330258691158778502834879114020822001123525330912965496920217526761925876766331130289644574258692423085608656551928998288166356405420948309834911548948589373752840296102430881314252908728353469277077729305915422175187595206111771004230084031375289467484491127479865545012968917275257511020839682660588043643515596358295567142059854820129368522317524846429919782444503544316199672923669410526848644694478972956241201299721623595402945789272858372904307086464853443651124267146144981186480662121388977447741099897511396289063476375287633611388995019645421736678184187994350728662123531313436941384479317659207852391146377984053976032649104574313680646448696990333849489925508433952496633853345675645146176912666657193121435307328022620343975737892727539242745008166689237007050634816883074293652007491758083964731515817919910412133107086406032056526966432927486719467547679245410602997378874662158572191782868131367262129762728664976668187879087063469575535083708447837533548793250105554844124631732488143260307090853506373500041028110102211789268766648319530013059044228297024714076237024457536108287310977599844463515315931873030417561657681644903714337111815866679772916314920232549382397380031890522831204704998045154660596813960906452512599349854849112081305329350080681457845875293828017689773495511007150970404746633687728707094307129701852341059673391337186395371166480791648954420115151048308644930550693176420428308543415894475186042972527650895754338299229555611187705541051178188781980125741392664634257805016019339366548000574800263993014811680602430027336852857077278108468252685799130572878285840532673783479262963212128220863612553462813234111003189728567730412085977867898320837095848526205267345165990029840671676716958886645692096142865260211038826584498218974221088719916857411868029086363453630454938636848591806009076045064927729540769145722508695801732262734626976692793614552248398588511946438238925531780519796928144621904494101234308475791714835621678878887836708140198107565908782738410133790282341950117320315781118257628583251070335356529271863665562714413602819869241715500906497740359202983980447549297295154115935476768532258089040270048470719602504546266672669747021079710894961655573544730257067038469362966770601069743168263541887560532285538315575595947001672323225907483231166156253487115715355260931468772039182195723735448364453367865882347792016392816679975875692466576544448879545634365676674167867544518527823483986934578522590743953121855932042210178215484937462585297022609249392550583916851594912142567398066909512318710749196925711506403625528339237908420198022360293959897462579875736322876841462107535714507448915974849558562289338691149188774466704572235555288659306038816020392387052928309591033371740834153921429054003548615149830354956109496736500697813983475826707563559172034894457600496552810654101718104548541485149021413144572707456933828079788122797479454138472610581327323237263292370205159970481205336215006095390868334596912983315458191498526300776834471416975180961875844690587160398940412310293559024187724347611703457814860723464105792919657661964842412858630568926357319620040278701792153259970592524549810953770373412569197310009721216911241228495794807545691019565594096288746776919839221467439064971884533655864937547215743183106594201179164013618130572049914197056970378117987951336939434603884450406021243677269405971212220178463636597195426005652300441025635933001987417158032536707843007892714088013739905089833632083406050347691375739211489788182568361397406605920384137829285867802737372819402944708232444042808723448405351305152312622723114473208104183082966698698322852572121078685405436955560166162772140983122760626127438884843544537482547205991177546292575325869263488555261608846528193620906681496286525710493392012206309461107825719289373765062997797813665859711729503563615020136209918041645951674755534902247007125916008431417198092164209659925835120975064660708014306274538481148144094268901274438516816302791382399228274758786309838347463383088659407274127678484945808002671820520168616952493762686850611446894726078389087253982598701565640557013479897750169904899340453402885829023108907963244176832180774689342707196090639655659409765640014691281812628191657623422572623035311321326082721521358187655993946193703188442164167428856494441293187187899695887576972316729627507718676454480128672966262225524555293544189306871854645646748880584465201347565779240678847707741418033337563961454164552220376648008549512059506290953470416344204776493819343992445032841447053229847920028232036944412425269407120310522511989582884037835815309699260395087301448235258786653143509817434774763674227760762563648385101082605534102008185728702403543109992705497295686108408153105903965215499203964347043795757978715013940361393055354600527577134096106604848063530757043213988430372534466698080396783165453882118222042330230958187565011607778037725701083937593028723113490461286188050418431721743841715351225569639888358448442149350867646010033920250840296029567347341574514957437880872168031717118355690952830153655472431985488985748624380128763253520592516010416191336650498167711954740149167095445134960729140199649359756216265660829499130928329800937960816351868424134592284239816489390734720358390032583393495216761909645722211082827048571454223066830089255066098308021712129254293862282127471787883722402931644321520857236329963006112331764884195451158969859973145328479929333648550747708709084138056008269646798160689877045696747618175042983591277641603850212454639056569687263689236386858365841584101156216340566641324370132833926557001384760242846232293415448573847476528476935755381412637743285469685619664582092050026827596500441554180177578974243130120094344292553545536464240936156812463587948923892126707018146807695771602702888607458478158439047179575331431448259978456382899754326006859247687341602083236252676531236645190450263492156433147426947425436398977293633834371053929333992644648966594094294348979364264983448659733791589391462349236410034040359980709538348052721810519478754974174012141988236265026070505243916945068060685336213239562659989180140250161464518185946923728089777267360449779448517458718296027553898041057950357706051653913691119366142364334697250548587038869431513039104089768840808203519932954585889774813166218337691569250443882235858110704240882540568266737467650444694961108242081235924301205246882490425381913848611061568296682708834827146702691559699878457020307557808277948504311510474292914845901848644495956814348072276638735653484776537300720729561838910426649844278703456619693691515896878261841534026950045959980971549513440186462460518218202987809082690268655495108663430252390214087243081190340430828095602692163402586157254312769567987561702790404655436924793077814488531353622513366522011288111851861141207899125705448251349226393953054770416484419328008999701630026836315127306055840483849305542100689215704575309633082380778920415229311007783178417756192394431951683266637105384988520574575027244094073040052819473652993689444817282159366763657609788277726845002885598176781243612108153204791963393935708439766235832742535798310231846448151601677775903286129393469850933497889795535371719753283569301623694205346455906525253224332987304130097962129972015266132696125822959742753190375277993635356286235593372629405649619490599256564519771487123092231318978398717468017895238221268789515253541586522341523511877905906001878314614543501887590578803117533246533440136828455760385677132930992978894877567983014651465503526465028222287408232712053784892125887563486395452440472706288709535500900848256754949342715433967847973506028797544147555007424820745239566574823266188818078551140414945085459656780814028295784882473822717443528379875129046407105453163573827500921344995064696535137412944770040373480116407633154427567267506549908646095873083927798699028254372447980566521595361898992414518826649122782724955042528675465943561119047872494370100120126231983136561735258909575545703154691909909707401871529795879570493205561370507965104232594183313200325895197920939763091341358940202490052449733419469326332809992765935399099851792974899336386091366920565932669838960097164613583105211181366591066717646460608549728476018131413429091342717175221699876367260515090893360910031926758274334580884785240701220332021509190141812139829538665948965653735364359425696730401281889804125478214065232363661223873283858580031290299297433731458358082042656322427766308361025499799143582415030257652502170613666386225421869628874391498264809882247192748562126882803643350460311317799807984260109994113013909485825048102408866485881416494611954743018067579947996512004120095101721291409618151647677965509113445131305947419772265547479232409409897932189783661499163863203170554331549113796646239552302157197636117122764556896049764747375943003185372531468363673200525126617413467010293133880971007807837940351196230333525434948281312126806490982125113726837320528545343935110584633469458854673504182669185627093983391248078465623155463145707757983216919055395304295476969031910075005193837566724199089420802167948227977892503509140715560799251253515796898005663446495158730443644833949553763685413207697517582112901395113952138762306073065727827701658574809233643395580554713052183934385707312929309630728786477966442197453347038518996705962586731087215096128060993509533282155938122858317948458354226577177186952828591549482439287578715665497758523820837470192660550214690070642273879174623820345322557906639022321970552489405312773511051812718941039384933271669668996153818703266960555479289013373865505614973309123324920551341755516949309861778867271717857439530822680888672943983919931070038551238555811163598193991818667232621364017799807241756422807980976406277050516494859993048687764123113485083975299662316225731338351929324976048254533445209193501511874215363409309326601058270461343173270282699533624413019587779717870304676103646812231086739326178133280046416764267935155283742315627296217785660416711320717623066266516016820225170166784669511321050586646294474548270941082858235267629378044444408904349800450711660638544165924598435795867198916143652844193195009511628921362462529936010369626898621293765866984752769952838911883913215403131856882570450988004584572629978712016613395237930654187746057461648102386009954860335285419498775913062724061390993453259535904113550780365285020182018190973118231812518976270006462301081074791967671918080146468522107841090264593996849266113361830149886129435689813057185227962357755830762589641360474057750217609015012264816725048092039874524186544834181655371350887163210450764969863315671378941297843244592886871459775746243979209830137374564939925293100725627834820280621419760713001299844456998104891908204119716374933605853493092317144181362780288246903379794467794364166662710241114004604721576961400862451731094543268863018367391869866208563393771188201028294066756670099644139963083803368433534511925223210213075182355921298392709953425962175720874959310692990027731100317469047127750076130704714858870137058519763674499239158398654538932984565389534176288491525081748884858422436549995971107577029879727522964267484191973730039102428486196100066901871727847579666591962084466965784113391794485969886423660556013163390223309475376987990635794282634768180356315327707367422151901081563951768425181371128895719405743258692328020514653921695097227028552372453712926480256665734308812273846694300640722143266706072392801359109220514146186020918522837666508857147347415335504201085173534074982377630447673814311314340425877129685626410363673017900919108501306550090218872232150316980218430113979843350600156592538368942792955645779578359050868073765374035269265633938338339672136160397755076150070471369496670645213431769006872398987181676768495943611737234082130601178335708509396702625224798797412269604499009801404858222974628241096894550056059979950041724405738180768941340951909177060925994936524210106225008263761767671049745971834574287100875038261632488091077431827553282216445614569692833780597650127193957191827547848583753270466930099575367915016761922676774711652500646886436099192539065445621362706283624065940860064722942873600120362858650360656186933062423324652884826833277145053345670026737059359063768781881335297237838023239457148978478012119902657710418573041726472056159656461159300946231452846502530581014424663583054209735975690092516005978717934773386503627679622369507093456899127126398031628588480091242165935050239692088962216854144447551484845090353915613582709965331202206390650411070645349244836874841527813147508722473771646053828590296880110915509583249482535360415686127620915839784380969936839263727767114545674965469017882549694373674631246971852185694715502522811653214300157746289842700796990739787775818507396414033878344476396365139656227600425037467916622703072265703177584161133722659107847200527360606870473072938036395877654019765129384738528350403706140858556593528815230291634383972769689616069076419655347406120852284184113988492289474797979631782825542782921617946960453855295591328652008130298311518375485683854916223800939176328450486080971467664752734942411598261181805901914255337023529422608973410841983023819644516075548521788318055460284325486692503412241518050126221458192227905905113782137164865231254549878784034007993634444701144231046673311433267964860202398589052398342433571880778342908054306937123354424628183865146891217660374944904861217568802660056084968050812160434521501060796060347633914865951507767663833178811950954604629631971524016155924021637635852675896484194798237440424141938178288120391084436411257419440920048130886453991254568699046601547354323520040777912179966717684210501638812326825513153998897808151488592972246593685747657642062414808991185950603349046984962045414242081476276656340956360214808154158447075308575487016471622516082536210723521161273635899812594504959556124647417626620762689705297144945484442249248950331923394579357726581383633646430726626055112885835947816081075867305239550018401364570746061713742418160693127492601714925713395767038525530743150480276575185759561924702151909461600645524169095993428505337719949233185708335230085763191303636092520447782003097887531377421420856014229861800604826390958210818925180973677919701594189966212752682817627138287510748722581580920946363845366434209350318995073061755611192582308675117241187606300601240539043124332421294363728633697702728801480343648386122103092751486024462978507603733189560565237111121569634702287756503048389677540880695862027250588505267631390891118038627603340305979923187595343671423340452564314630786635586279061310301161923177035829614865843751740085010158348956458079642246310172028289612053702462577501345203983503040361448763985810016062284346347764778602019085387436676995965417650371026755398104160131720626573562062869503628939710464406344578009219528955964175494839322743923317011117073530120722505533222310759867973671437600328398165260088922073669965257392026069685251775201260669872735914543811182709870275190542804150274197419152595714042208728303981611817542090608774622043279592343394450461427751232215060239131764229982819982718779994138042545237522064218947415190556059056464023285537053316896998792971656710332159214525003969106607723925252206690433255239059861494633335332364253846038303991345648954365277703938117581828064250794185757925898457992743747781811507398354572009489289176217093419012808891104495467540520160721914875569317671150848349022347428266922083102704747891910840098304703439764446819559073288327664908684318531980562157441690009366433048241181440696319058696156967927014949372937123832496852713252839109392196193783277349375337603378135022853978311856414801996268136483808390736908592720227365448656919051148997204346888587584199914988448691025765888886145868309142535017099415958016102907425689064260264824322437681334561932524212723732804470572037146160480493310300136474937082953106721735655700162544322034709268629779662046755765932479465706021093060144890936859110577557049421241138511099684782181242048717921628676383939112445969643609045128528819200525276955030233646139799585549390900552598354745259749078139914011929449519938022296324447574490473796893623472865987279674664813816290299996998073687838919727708109146030935096052169410757966359128789746425895009785494793869588191812410876722486272777249578596757562361566750667511526667894558338440075618470700450103563555999590208633429070540086714941575602982898662285789388617285649076997045438947850985050828537261631500984385866201695289528362723304603837810060317304407526983592252213113765395721371476133649907182920606574313253830400709709648491579202724334878618243738385919091007388304247108982597821380138710093475021167051731402353650830920581939813499029169904747182185215052418594387373252115317304513931794407191531684022035391576954040332145786912254131493426124472530569278634388655686508671879101338888622875785684243146226386444267792536288488673435487955800727354916587891725914650613426367325589848153775687647368135786505833927939913615436265848896161929888629562278229231259408275828106455472794316251423369407918837206841774778676649867427464436267706462558578750935247155283184276936033939495208539806201420311460211201572787474950747989702806867234062732338235183858062105224145496915553182141023611200400833797496195754311708199838007825895463732736950880641138084541765914289143907519797131184700105924478384891100768324642693216792349381463181500853661391805483232858301741246990931559299704945258761507448452991295463099093495714223123919438593748565131989497164608049306727242875174401232323483183004912512487680232814962534013214232541185542067797666032278744973684743424256417219589881510857643366456757174479151561802737634693558919895112330708837204930424811807520439491605616116841468651199834734564038587340760735203467317937594537501918902874816616729692751430158746740252725078206680891225502468577505996043975752353924880051637296065315165838997652540591763688144366648417629522818799362617608950784746336799808538360736026671743669939705152699309263059573881983470230921037999668024981043053480338087892625403624357719583665515729969843264982665847376677426476098728506310099686869232625351208736432447045791595547747697714028992404864203620323546616908629278482348377318498375211951231764851191509915703731212656947328619951947038656673888027941050497029815338451098235392688403900358778511167212600953495964471862954476280586335362103327723423906447233670015094482665210460824214262638641384881551498956987936991109236700531182533002318585911440308838435572831135094003571242891528225551857743729257654180438771505991050754329087932089882946558766597439594867585989637925653390964022863051445895685469278857135857304345882361913296911659198064193359218634211722724858194353024016049795144900870218599351208848588593028345979773845572293789325925895755956433332461165883638675426464992543608260400094452109846156786605258639269267165033422300687706443183695174472938114548115225988534833086923636050202117310034359788827101032886229173419689733503295619729426810432432322963319301815679547494762908688879628294634161768852354069580977284071815447602992448025452893904604613567091529280697843579167960338904458688451449431436419953287236883684983311132096592368112480161182380146474492644082418239988912653056748230414780641558150209745539931586247463671676938498378274510338840394701134708090549118717362303897467022715563277576966039434794042544722578310414609793102753951085464519748043383804441378831871531263962212704999808837450750941643091693250096309564101683763011142374777642934093336934333524825882133732489460542882306919854819260655444389973137003740185582349912214549093291028819269446393694469227290503338634697614244847338399966708383164595907375175136843609704055298563147261933982693455490332647447485162146232981705882024525119747555828023780199146778828601508346390487981322121254459611360727644045539334317812425320273300922348731725043297045957572427806282708291869384038278335065240973805888719581996242922458074197740105099237878297147611357112978056514461790918330772410398913611145315057163477057256646600091224289532252684329921172715127776900328185053747083052796403135320312144099029102308804188414897571767087756991035557510277844705182946571999920591450505504232912087651683005898671996545591604187948144715671786849409315232572932474721920252126450291144324202831127926804739234078893244675131700151383875326156555815648117874362317517093556082075491865670864802243246869381877974886316627795970861904294497698811377131731254593647729854012332044199778388634392413313779427265933495846732682584626650216280138329454506145801628917251335705037195504167262326110123319614078687154025956405553552036868987865086173071564349695970104025146903440761652011664219934217723671424732936048891279568215974095400168096451671201317853833603605580294282754026753735815553043965698382276010069188313864097269688483724603872575053129575204125721207606436623748705762379413902037180152625465849572699120026674115198473521354871438607912510756927629395777198811370255701893982149530164504092613915160232854595974913929569174214423530229734782840475147695937333225489462753579187034587858495124272971584464778814731612203358754413394606798344283527649572948389379538605131187205288848369363558899767479507780892228879039369683154560629747426106323851000990234886541216515011649127540823869734099133979776786570813435846052376482349939069036404266378905007419561332371348655568440819525777884555605081248242289989476544667034450626338187503396325956797035630701100876426215122737217764504838265207140337424123367781248790706143558810030118899245853891517733232505271924345452329037593116456261315693468169332642243490552257591030661951779346385819779356377315061112028642913886127615548016897875732938729901087652559753243377670365650656873431804678293732460370347860453024628927739020990005136636377774910504299652681728984537981086094004258390413836408010429649047579106393377370375411673474665715726681341795091490837825274587613147321709570426958454479267862699249961551919496803379167477810501986616284332589647164827328598005182027088897903578976572389651488763402006271619035720116160119353683515023419327865460329040911611266413648338384418095731499856941784569174783684729146142991418632240173392743859309970178592320009944626863897978336313859659577289652779520371936499810009764156600487031761862367448529637090102375307377638249994784200861633998088730847941247707937594200973767035311735327160447644875540407068804611315561611105825719804739208107883690833242400978983041660777962052860424833951102042652103980560872041942414964424819026443619483457988819481589904472811131777870257745513966026034667881391591484064536837742748870600508584052754185948192873322392020926412782646319084296219174256339370764688720509321556066339292143422945313848188409430090004636196908567110138150064488213057042815464714938112854646286401829895502958739163807954298452983242507445058820337563909189969594336658409987258627149683767967045692819299114892400767406455179212681751164055834111712339000364267853150813474981196086245843450274521661653351660889589279840093144247908421083543455098043788266016075539445691721942422732822677908907253657662122735682291464491089696972278409909527304796676338252737250241568319240362596934940644487756804779244607591343192631449864145839657395755636683113481394768553100093659993499986277350032220533433501592075879967758842596298557794236603868364475948411331778450237983222202247950259579159694301448358403184830069959520952010817357043251938989783483623994944957912082991378292099907994347151420507763366464341367178938503033278839735922382444377401681019518501103329177188753877529651199918378954368056403983275458924814446252102498559511549420549397301108263362751463088801832079966284884040132058105203005916764877372944501032572324552847169446895521693344680281825961005556851104918517604717016561991052126665807204569608970818021440721029658074472805095668931336896056238495125259873100089970146040172350263866255611809350354999778526703161129284511257509716503150647887937339198701188910363052079284089849574438394475713289133482455215073452844061198769820555064943454267926693578677895333071650869053861062784640335490931105387209868327186116775441508177779503708049322563778168233059630642785751838197827153744559199998579327131016624830376206198867402482030849467964924691238168012780417420133834597080551346296771539281602370447158767375341485435757684110437036967198952870250261232104093537816153638554235321644706922321619304251728344579621601424872676426143410651592094601694378534146851094037990081360537923306081309326995017053640708851503066268662694547510611625483391771288126245573266389037825497875570423313339272630850162084658799444814966319024093762689197862065048941885796912282056739611900500973032372165840631069416823656790407652608096568344795994498364204504526482033040247786207075065487756284716437151166889040083440974459418338948576040599525972972005139141946485938533300093110064358060521794203544954978142479117551578195773822393375208260014499276996502740085895169270813023357915662805639009646345973113589785583660662971912362815536224472989690484116935757718568833082673842036158506799193595839796412680491364232624095203476485230567420819949335867143398315762687675761710280216702641428567703698394730692970462467000768928526340477599895532121013212557365591468695571702436774243003979409357866399826657049379496236894304728592223304811907270425704214834026943181519826938843013328883330161249127220920535768449505252337786595277041317466637478889290221454262385492143943395807795832357904704374888328377699226076988833336020325541682786395079421245418867869205993644680840784065854596750969352661738192336433074006037069355727638964940112904022083922968777383293525449474403546157430850478547522564843849998351248809025521300109732002060332009329626076743696116784166518787543699752535208440334376314389553292383551925037916039179435993258739572715786580074905444964416991764531035733358918240237968802346265452221474049485851459274561608789786581227008417509457084846899536181765193362820999488359366614643392997766762599428988967165375701294748461241269384024870627144237536603201502830802411244838999643996651039281255782795988027330516194433237617259686681045056326784134790726190442987090844506774553856834572344878850760809090963936096617005048132933458672811144026579258111353756772038442562909332516382667763534606861903116551754042451455228793105570111856656988717821387336832917808617460298123794533174627497180936577209475137768662840275515883699130926289905585066392264577165092490498829947542922856221913954110652707750946829495805864216027688572417549147342554809962885900461624487991683726087493616337940324067239060424502381340139835887766748015635251587136980369585130472867462005891782200540882468630121615614916153557535361204355621668471065651918788218644359492034771689616534345197341193640856909542091203156247226056326728999969222057608938212583596712996199617327091529466943588151197011095910194955557009030573096114484681096427971978179877526014119589314618232331401491479580179426178223939815761040640290816678175826467115022308475051337942342085044004250802838674823458069007964741243033129599967792588791739553655556840330415991636072840340836480660346640078939533948155786260407048247560628098176843242640710489163745523813419271700270853479833700779196906019502616933281133779916053137194492157650113849158098915173723816673722403222875390418850131300343351326345134036980830181303540597677769846044258921652296831120466237878361620003903694566489289697818538768653385402305377771776737264673352279842104387714514907968813065120953769790475253439682180543931636107224843022527229763268698361087478157526958184774687233727056693627930078524616133797525643990555001106178080459990332032394905148685594451519542299416406760440574859884673854395833382493236567573651234110798241466862877813328883520787494481382303621381599224270014114477370184119908012330278700761480210521914108363035500724395441287343975758493836455622446100660502347698244238881005545760805825565276716294303298796348774083321753822618259103154271971450441261090973705977561471039946807973396273720877601639304804575837411372564547940008781992625548904447726043065811265848855313426335319878056237889023479834581700542510086017948639785851235149664257242928945603382635832972678812103841618506266333676056477496173318594415868395828721366971199387877532714446441086007506593543575812062554936002349847697457147516065527285840796443515734212646442790633583331722245328434011051092649833160682720776923976439242254147667691470974405309294884385864155844209939749202044389368462478501155338274304065567930123215101885008280170999674994343869625236908905232942208735727571149758228543226785205196714246021436095197619873228720136144551261451137780091546448648629462531173356809653718391285621401357688955891604213352290988392173575212213692469431901693364505806891016463205892310298052213738533824189007578408044220751357500201821838541321009355220522211077072742081972594579084071299461984822264403886484912511748736501793015749801209884031299535467950054533439631477320461022326575288624403967816560504959314633730412563269631045973183745575907448285352625428109557644974302563056976295237498228644341144655819553808982622705364249307321060789847749535140547456149478772064651484476462553149350392259439188846445514073723042589190004750709920632016544361752837568591566015194879510090271424347151013871294510304264051919674556625440618948362910390283370616589623280916496110171770872975121113466662228694820815525142140204813130127006048544023457693868821007346051674554222686931730719976301309217398135831053556762390749732589503953117581254044639258768484964010882999430948814288672143977706733548790874310005671205853765273318057374965104800088851320889176584926456970986641287514654358266899002437317892763049626829793272512694654105134769434511987861930280164020838739405794622552951177175537932544151377961113963241498540910790573603374807235855467074318000343131870269477417949276163154976661662576699166955134106280731576272489082073489657902727658250163535268109586611064376624079188506382086255190069679232242921243171562019621345462660834768782897836918560898364346115226944861998822121080127625443398160541392620465731503775633897534106032022960022586246479291608114920889057325516959342198273642316122105276111809055810781579778558085799455032848314180793638880199637719688183823667495510638545186819928479996734444680196461183514213760070728377897246872432545657755310617685855954970029573319559847360686959577855508030608459050019877828274565567529396127730661727915881531194607625905965886900637876997429948781644148285811519432524749460126613025826522583073386545617339026339251532570848593199212233542910972519525051810734530877551402664550944186764525889015662271675326059781514302022414137338741113004807708824948389837636747422477260505136747098468364207697928446675148015681619646845905980996858436380186808461098748048354031810837773333330912799594764361523190321799827538904799583355408242331804398592426980082452817891928265883905818352313129889343462345801913243854297982099693682102154444878316306715154362998986363480208321754553978223544288906209542800645146146300388799269512152711898500343866363624323523739418483189634165344944417311641318787482759396198582041799237173872025860134971656755883349591457421498403223406919996882800513656133696080861852881539425996044979592455502847263936406380288725573813378754172291331177827048523196304665628455360850386665321112706721107362270459940692884209708131775212677279928704771593496591353696009970515680034939206225871638958694747202236972147452597797482942445792379174883051975585945174806112828445620697385941509217795481255343701231418039540560151336572038487486803257434161377153277765094382098678116489030774397440794420359688288642085487123202906489966992945718938321370308608544152726388115884804058329712915855631186978356898000188930639878683030252614548160031395112510934136447054127281133179593181111156271121259324308577799474045272165335237060596536590630293564070752662749758793933294908408229611711994191885507568140837915297752269448343293183586991425550353309933267722468330714983557886703006089652535748394534430129396892552956376350025771383925812038131937123792456554928164045101063891242831244407379889156782016983516824475884643958281101180358010381431207536795338476996955616672196510247497392221332393091352904608831944815662452426507964142245205283731376046181796448395968205770010664912007143168240611989315434994811187799745568269312981827911953276973991597264447959363790710166629397125276273743029593543415415765475470258420724987539315462071921044034478404219046568362616677407612341942877815281416734121821676461962812738515484768682999320297059580445290777184860470355415508743409179676684575170265310037602198889463482563935730188771492614494732495184464437601470306431043208165652016533071034674612128585712833179667167845263059820356931065145436287608960341876757125189971550465285538607316302313393794610127944198110612732602684789433146333317542570030240958105339075775808725600038102686009743937383525276182842523543972047525200251055512694373263382828157447453795452888955395781091778470722992238795068590676812603879304161561549714525688525602342515812059140026872115311191513779156326497178831097459306268882043030056088401928276047542942170395949390456885852875767904122984114859439774022168203153401590253331829186882456594217650976543330957539869950255838416181409985604305114500022583872469621519438239165902251603163046280629100888281270004957518549827516626856883085977128532131405384092367087030473201497311473341741807896200174592550337378466940749669941435456576019990257039164127112469523457652078793141753298970306682907039331504029979812379250041666766802680858000875641518231144506764319362787943243919141695195950183264663756891464497637914575732789550308748491971646789492052697683853239012643272168751730696192346772304496821597773593855810713321415185509921166364853787631016785319840216081917569377070398706532141516316243954851292082193499103253402370565180358689998296074431260327423056539443546730433911807589064738206836143325547168292761477253216403378465601791113160332123254176553964184569756782335525711307948604623667054252169853688453119753898256079788642254082289517565731022829777812100804230385121294757174637407240845133593136858627171299451699512762346961352918314003387053956662835941915696339546019569513079569149204472249837116006467367066532451087345076283530086303879146944101753029067353955563313325325642276528186161063785532374981795087863000048105299264319677820864364359201579437595091427625074851561589311022105196304834351687539891363310768795514175865506880629880662210514988809705331096654817346636768359653093690658965265861382507591898895339139165054082699775111831601860818551025421049756154856811306674562027950671264410438538388861159283627898937903429771151019608486380902904212422383127304877164031098581995904860216700863095591058593407150060008771081582358177825131505255507855277126519669663913109662936134568957521537353773200737826058201878809843374241220982554427013621441409528507025841484259970005473712176454855321236323845003027284749002447491744863747312434462577825256570939985392994169088619134416288754361447492691338505226748636689072852236766882603197620872934389581286598305525333512249180435157240984212351891544655775360612716570789602403951150864164065388594524379595753124463288823202103786488265922758045970392107167988136606556474896083168578051127097689852307801636879500373731012542144555435733964357960885748444831135410549913633902615721842588572190781901767064309114482727603507626036353310822916990994772915007464156107620353673978115520648867034952891276743422415851271948982467464769278315191273880363070406182823224902601047225539431563067425932306566049221246492352611428250698196772887541701022297315752690248525528977885030057245815568941025216624288957757328931707672527955789227825790248748418117603200660241696755173621151564294360996288424264770427295187079571030942269763575089106638595756969535090782233777465275995046220331750270837825363978671923693066979043716906220631645276665547207654756754734736098130526240187349442129023067023658291296385637013054118118762353292871855233422607406723582580538691814338672380843834027004370795097757697611355527915392586534045951436629794424011716974028106723649455070002100096034427164938025394676998077912497283004712134461991531648338582715487571585800253623791336307796983397627945870839851787406484868886616426793207025503646937699598591011285014167108518033105646416326790853014362445812339719094615182304678284000497827248968001163412491695824757792574400149215484540536114462693338875949306215664262693781260963862948914026669311401448352299857484459390031123426615873060681017143127114995205947376983244195198114022693799421386712514432568972215824906850650865070655428910274597039870801191277265783467613671451318667995007970194255649218603137853434137678193851585097551283897461973296869953868574057810887018718846619969153579281921258707430065189436079676471740469032501309342947195623410132871869416451716367683088755821877836207928388832405536924307162263963909538869467261542229572010323422043948657266560730661294237392670753795406034455478340089664735970217073104887981572164563630529985348003386871832266699137466767367661579693779563735886630605799539024004164230995804643985614444688610245913680615400029566896727488268092012059561990575273779571094281687950397472124950613961267315086036815223514660501740967469523999246842841861786047192307765257877390728905678982624529796695169513741668212868678724702345682218923277615959632484745397371657540698918441760588369928350008117875420617891613702946009142591774220828838804406033549325326487191053801569017356726979926210843075534535552279665155744995966837560673370567466703794806524211829434557066019928384906383597446372598354028454667276319490317272651951459984353782345478750901359333561322296067479602531214614814625880183785467214794889182468770793812876154730808866288405231153111419094911700186777486334862916534926077536624551417980964853779203388204202716348948773488794040149355138426820188550712811296157274994913814295452214530792335584272881111905865624006112997658466459353927104875310996465611694678344776295358525050732556714074042718228309628986701263432467316618329052362829976393527539563982973114191163566653104080371270570426131540407993661715808505442110442911398388474501600009837496701212950192154444600198030067358748168955999631479608926061506258428453391029704244605449614025350724261874052577876000475522164962890164383778682013231249447866212321904801790728983758401547450057745252924414997726113568940777740440239208467591624537818702388127386347106142255844724528636286201166973266546101799742761090418249095488968515402591161234570309117803960837629917552704827925649955603181413062599162459209912100089461429782942246889332139748183248206311611574528221697641907420507554786342426049211913081986179852057229802680591046724717786902031147655434478364340575954467815907542534535118840408025118343151923053233501051199299625741709814804524867301211948917485244968418473517985983775283680277206907267831002410855645600234118722264014194535685242170075871312212072035543759921348027938017569117183269362628143030352355018615905813687203578067787199251677032353056985106410647330712721621506730483664315993359567377106735735516131556736025554868994591705988563694161162168898125006477275065755581207533840177915888909009935448345441282939321222457602779750218817598148944555538163201459009262643176939238987594124327298607069263864833959720581934427228300435203453899934756237184207797051548900022303857894239392948866302620506999342994999505549226490976088390636692423332507562795101266212399589850592232958204108841622754334238938139200858328800513720719859385001674956273584898208524529244354417997743994053104619995855041941993554979925668728992110514292387455706551674439285051921694143946122663134823705154403256029330481627186442640192867560651503357524311785488335234160872839014814812058406757488505206861444150609758805880471170488160333463352227327047190325322837953008853388417876724226485316616772754038985463168734150249451283918155132260404224226691181978986018850845011999088305383677233738681332881400032773584725745686128492855939583627212000273610675124208294514525037655993795255111818876334541188419301079629788022734168994929783024973476889391406657854984334136029253090685279649080768737199653719092211499395928608185589972148017386425926697812402858537138122570534801361265809585462976097113643152996955240487997007705269272911773637553519192575322354172235285410103042447639663083951002438007808273476850886768872517715982269971071833513596938522528876630872798809033673779652030230929148135090013531680983527064685295066174741025193492386858861855903359700240895827780412870667964564006828860224332021304789083521189441217036479670711806131324080397455152102139974386503071779328134518367797777046024974546597945422375583612706302804789362978728832039300957520782654904947817021690345832182919849531191689272453841848156691139270591667703789834736606594821924259122135420732021040090680844759648413566098029694492852245642651206608194353512290229087520177362290418466897919032985667768674854582618019423654049275480952334801781701453767282310410317626445629119610255613022834973468980371153708137313628259717436560105144686744823330248630891917107915437636070050521414608946904045846577718183951524258981865421552880678651857265254005958238539386940426723511933957908292945328982323650198582420633899304899064945901406888052003255100160636247756047414742982971398148227934470874633229889589784799854358687387441262191683346631988711013226436029491298572595256788982938758026490686162637026316868191041142850600880729729625535600458995679843330073452321353458335454990687371376368549806248613765769986908052624959827666979755970186232508099475684582768780412427205389060134274228110129910131410600636779511871108650664207443799887818684244472686484119666489203703892688571949497468006968651382627153249530099337258465661871193196572133223425604797909872679000460211208340386161980700681230632338780518153814166588216735057526837647461504793183370873286554881434828720015099554920112787152309297114289616445236959471259720711229709377237222745990768982137092447840405041698764456631580612289012803423816802846788832689853581516208439213157013362913766710219583405634235271012595820203053227725118695110827445921095551706502380877394720882778554125484506823839126820273521649655671917389728770646181233074564767509734038638380412554324846218041370055453972109199595942872367521923892400363246846084135927316183307865984884888586188736813681014795116674591600657654187135479000413872758639485794520933103957951562722767191368641785052272119815243230536751384576171158425131214164297975910516468806168192597822677140300836245932229675891786701831653694228202295442068901422981585310519576078244255746996045140456925077745458558184907194290191202965502634361486397476079206324326130004666686001874095165462745467786440985622838170068067151544856703205814035573851040909173274627367083034849651998851993410407226172838530341540464945200302176379170416843135562163876049912446021280807666974839885491916366853632644038011867175127791418187662877351889042543901703945254666890288098344456371617289027271698330300062550733956328685830110196523504733009479691373654991653180288581314529271881793920992388515126706285542469384230371604145373971886488029427285064750073947798218843052536315503196351980230874437300387127021581334990438024821717647990815835168657459631253362490644160700393705752599966487392693175234090097927996259357940723165774019744191996364518952782591765861204681286216637555491879373383129344297345230055526919162733949695499415672253297643782865021239527263423466237892729616381771126648625580806339151407979870508247899444684241457019429947912698229745179285288726533167657094355060224091763378763606020466921915738811602817876863925436798355970733620722820706769233722051081749613876221029106728459101360166003129517029832999365442407468888293383452547184927334401470470462119641091139611172252902224957167413168453594705997026981472081089099385476521562730231769003378866284542676150907053486807924784513043798445713411874962635440176736623442485329920764458801005158929207947279305957326126453866645339004556811913743093928555932466788748318586821057546753447620840069422032555144846743520042560468330298037607315099977559808137715168459689131850959102930300666666440420884102056619065109155967772626095949333436997277799961817209972234367626257483514241415307652518948357443468292981134744147689738528971653515767980953442741396145209047435177191307487588286663045768344950181341198700697226375074215073064129965661272264257259858609495260231275046020333779969669794151150813758200077406621339802425450941260006847353099488379149031297129269167089873641075352075760326050835723953685531758910961005110227301831097993392442921332358655105670800575283956827615406634426367557420543847446403440641747768959458510825023553018745231182441249068959618400981531400962215615521437727264840562623215665888119427113610393719155247959903735837899261770486186844714828566046369967399775150161839860821972440491774623677074298191191507035747216770149708417223799119546186395176379230590459972142758544494449139860140234789402259763773179914443282897889633829281189774182130235928654049234877085526982995104710111695652712681101426603622164894997353379600419314644907064774869368656154888159203685199278952344405331802011437942650762351127810865915339846372603920191073199192937821251757457527729816398855356416939241020463125891449138753424770336272486756269030314123697548932563416251188839316150715190596397381415139953007017408363073801666292131399423083128679994249517301374746817211960442064811526696648832577978654645446201384007800962051540502913358013350945372639137018497542266263872092603097089165796718500865400499724034301445758695933488929001139813629542858276465527554138871260816484546075138424577872767932962139318058614737456037615917395903098657675505903863972696872720770083754567479591083835271291087790915856055885492126034268714813897620684822423667182748453538408374177948456593052999333431356555097518059726585968097498402627131009586099743071964502836000501821932528911399601456568132023083969185386508525547237674901336174879054226552043423450425773955074908830046988448618182368050677371345365802225721664215677515371265307719588625407577126985143785801998850634344350144770668498404992704572862211636107121495909048303270436717007674023198650932726511887944253622122504546186758856303844764759241665825398704119401840256181207457894393065477265554960596620780146925128350760430550001763809315983386274969138758197649679635205311293849204708736075380042193187990030295539471094336009558801721541540582368284337425709806315896189405171745426860781649805003627145258186973107115522050657013139480506268357386698484417499794832225275330827412384626637648375021765238309154151613775423390760067629786906818892007044335382156605514232164319032017533862779980466271914546229405114897969734028984233642863947985531312181185087755040047858834186934712380827740975664630143666795642335511188334154136142390830142369195161679539924473832201985036684245788893901437569383815547954427850624655091008080629578301189256435297898517913915135164018568307926733251652905450004504347121251708923555042082124551747070332491881653372317459690839685776694242052879076509096370003930814540246803085868429307960579280167453539913446196547579789269004905826028772729657472890848430115405262691615324740568668634545918668945957682177283887214385425959461637659736937243471555537970101522569794964471638315613897333095860154615035325502118962272258087808876990880846157104740287330087980074992384716697261011401320308693284595775466406726353451491036863745379872983586931039245352438231990600582962506095579754581151945385774489240579963622524754709234028437496516427019497854359881360466888158675606987279623787184058236922611636318356093318440939166026268876424934874899807477196770151070370371990291542652632534995152709406031329409680026480215400278362680051640157252373248740981270261618100724568949234415369938153507125241245571811253294408080463851538905866703831296771655146207841075727475474857467498139127481976201038513472764287167733222484853097270336706314457781883865093425774349791891482709576961645669096322948714523267327591440217587457543283518649071887714534466812831464807119641485969296344209436363828861049100563256010162352734381403969444649185525388411785030560532245045458663655756240729090077940264753683695020130613850058988020519484647317880422531840400217438454536652155294445069101801456921254058139498838473066119401215357354831445179973864317661252689837432646798390969447047018004789507518308355947312305659586971401752711048091913508441197034031948822943366320191143988463173645950179849295890471053442176338253542228194864241354236812473285083029644251070644069537324362382861880135380035290228177983616405774176694415919399300909082923824873357216327884039674692134110147204696700645851984926821303052905000122929713442751167208132299510262956594247118360481200027824294243715203188047689496071795736001841957862182727107247210632346705327652666227901514839738503996146138581804506639822403554043573373220076375730203561738449921419401765401359727644052022006094222935595158761186625641027594842651226336700905987911385660120902437686214626864379170307415785222281239125189757284300746386245812233393678963293363693793182046968699835097442535280417684216461485247221958746116648936674384500865359529146062735892457326575057150622980113753865689328720825821787069784673912796252314487964346775691764233575226852085210291397748847856481471584043316317290849633533716481959492748909296293931891742460510041968772630635151194734032178952965269775036104926652249831532689439550955147296456421220713815568851730217667712797186776393178312688666020513497876814057210748124200768532199015772529056778213824101470298989343761241841152611958287867953235846697720046240736954145106361541612771168224367544930516102393366682844211508460600320356942191572021916109229949073598649759457553602249166659660357935729788518489306841673741289313499857847121208846922898615452247349795938951411171905138898291085333662116779748823457619629437606045080289637676335035138134194986168903077471276612061932294849521211998662703136215655585510561837186864687303390238198917162967386079608810258278827725437253864670784394676583856083660418853147958538191945864725533554737477181479081162768865192455631881667204989600207531755253549600218929355250301296817779332596482862639848230788989078875832860483405344421079109074048154245023469434166030105197544926302658510423268877630197693450386522215694222060153401810088549280658005555488591814408779363524705043677804825147093691973791360836915849621070217537781682512407944842138484078546260428756839567057989209905128194511970334766988790324337557595084683361901995221830766781867240264077255679461504055954162582466323804787364732582970135459585569502123587476729084827592498753514018799673845802787259372447140643147048426366412503058126793978190832695459910650970772962808068700274031813806686142131508861162545223594232342477575792989839259721273088061315225204870692582571681693086775005583793908574256361437458662738439062885448906341566637287042138433586395641109294784163257497966892718048610691817675665006632145341038248441998641034540191866609906507180721326915681137020752578999262711883780300440511565091155279440685306915231292418641229096296771363242284974386613831274752684905621340717122885217643694647428569267772263622966426354545918809760943180007869589131297499222122655907921853981326909678537526185102380223437159663404489953426967522596408784815995778022020800451350413676227503359214481546181411881819604307502481256222883981290465438775415438195336794574457256771725208214344376601883153450750582234257529973293317906681552716987889849941548629586504642531323635399115122879815831525127939919614085979661597145835840143404166815366143386737159597284830709790626357585961861892076734581438690547692351306161209457178604587824159501794207689915275608927867949590618608282676499263375878310812067530249410436492298433177580615665442526610416915178640151133151286738312610665087301111913919788337805707406703331677181440909884117504624678058628115555159408342386521073727333908146331015945761551898299175090715756898240723039828873727931456285354465846992676561390156896168569778693206499846931126649426572114845597929123543951835424798055619187254045203163881525700964948697030732239592404670949609507345896056405596154424901378713879424990954988530168212107604667932810237856566534059665402738966202535804669182892743119799234059514371091920701832850319172249285210273300333396328887433634385286297137226789407330828377935292530505002945210441046490151167210371222403066546634429056968704971483166204750847297828942869286314533145307767156668026670983966330914223677776867443025713200471645561306120044474154422679668838061973877725613699039297403211134040193019088583677517487074903323277085069555558717196903699700808672355073365097226125091510999719949464071915526091257303538846799889542923146645970300570300243681007176434693249119521052926958547987102084192424403410746328233341186045550053351666473496753434929573982172282032088031563207842346584078289148976248406880621888676525994509197842681430992534210847758023813622417934864158858589862775138065866912427926524197624420225015052151449277942875981367174545918338409097505450993115794187745872083573689026802221809422969673355981012367049030408928153905775211834416121476782272446434542176675769032152872665014605638468176482990140363007911414535692701907968417349933042642468719194207639853680160396600162975691049171995475424005482675188786215125737929552825176554887017891556694525057365813673071001116694413393160524725883006296283533893820655229534804077400650654469042125138855418359756420156720877006646013455624048341249866397005190698761114659306323514864858391636833695285379771413934846677694471840002456633391855386603108276962119997852841461452459578936725784744828666905377061946850267562853632920467836057634110172230582616602953705642972312242841148450073511077838625795938601815206980309555548788540338159735180664538324141343960705009162272441475399662819428891521888178711626647483877478103949799859547707436562942099342119771885545809925509996841032263906180595170382172704994256852396677371474357359704498209382062975646519187653121757073004622090461189792122145719859869937198315796625207215017814405323256191436063428880539232520394549970134383017806418237394836558995796095137623699568460749699894997023844502323913948178979539304768038718421250336527194899125593097142268042640546365426798310312579532185326581145395091990716320100246662491464664469348992447745606418406892461064091196127583343443913146931558985773869787491513980847115355924984137362459886805180615475342943135784445645534652360343507215733316850211842249895861803609207139572973113848757512721876439675694630400336435162232061959249629844330365585408934199738111850380526990365339427585020282723912903438614973178114643733722917718801691775803065803760057355801490332118311811071495068545077274083629394550447097020073859793701651890788764452480038419638708906948270632171179668550899134881280440544975243167290501876214521418509813024261458413974176690012773780477291418937150959477092853257573207561772208377463096810722311614505817587421135462104622360793353276137662010564047558556699181248893337305819895979798302848594329047719457911311923341496097549227607047867999166786222498129314927785590759817219811414614504211294055853407667657429504792114906841761299356684288550959507055741277178630530811679967861007908697876328010176065081137603038747668556004995891726839451458627227326832807489146222132325945383193859982099514112798779999692431754934537404649844917668908877350324597758534850464649433957479230991234987937399300403765719820111867301995968063140374529632911528953374954641563743865482134328325059139083981956916638998441857081120566673230792632865039969180932467163105618644676853384315542278035228137895735741862648701476142121727778450606182357348712941520485408583868192407514710496198960446182074877603557985860947082855260348242705948865913110515238020576524530371107342002962124247894488653996678604183039026754211923775136905445319953610377818593274933009948737438443332552492018220953028993918726447564310404467631042111792698531825860654599148629162617953108107170628238480025101060669748764040523323456584253101182629069791400294859255810897464259690461374050417536793254533677760886085708126359601594701923151173678671712089172141559686922155678277661323860895027183030862495871223705618067566599182096983141769751037677090195098931115613182592577830997369400883497606181986311173817092742899612470144890502820720965816901495263681627567748378455520060324369307153523919154467477263099624435034028663888384093382923080306965158916018275220256377731952496561167034240952526588817415346889607866564098347919782368235257978679043781020060975751251726999161231751361835994061951433293383210226875945746671402652691622751143075476458420086030261972972287020651657310054809036574050232877630230402198186514218073542829571029485374105967765657407446679901132959819164579582704602704184438378060630190701357036401726581055375972583337835174469126528356977611306041963029026097342373602135613679741545400280414158485748759401264565625973846830341015148823572184778525164752339338818415805328174113765336863772022166853779904381964501556682388577774065620938897277385691817482662707974281721672318931476682180968365241926961130325237365285688927173772681431838065490498161737599807222643216507143510475759644764326080419326277210794215254668029461001348328836757438456880054573792968070151827157738378562368604229445330092429928735087611688356003851167812765373431564314911650999991703334990952651681185328371336416553494482056453397641358158534322569343935793020623061025571260251344713267603654334293707337952561188451217614528168602833624953371932150074939416657769375555511764232676246645907623425219344278320139515558925400706403362125148607458179409528413978740560769858685339019812501967639569994941585392678049677293191095269018732495876456754222797628515850159875417684212891455481476020717933414540841870092616260186102957997885457619883741990045714505026813029779417621708642894349558881228325989664275346641856477615716802989590659978710149944220082622469632303313623826564761621584489105043259758394414830556914392854148670010001846461368676691233666309940023981870093995638561318429124081409727825471628904739167633782412174426349707586761515056879838552611751400244076460711048971367437666199164330586245040634057155997716694166135188277481375073812235708978345295181178086206462334092612933259692916625646356646542771059706257648779111390915484326575783528436930115816331582495072796118858407586512197242712133417787521199690082718356826807706949952725326562671065837749826918786145684427775910305876031015987703862401153279278146590570043369013100120278044771940337849372899257436554068337025735476417419195830964406573340163044860341589383187786223008336501402202004881753929155790366563574104972857917312736816703896577249956595930976285962853773381781415785197982094999161666416094961834645187159208299703970713045098820281062608497248595679273035796802212218874743068001349487108124769229637026173312972767857560388843643299920389835449475568224012335926596430174136946528178331089428124459407196746291534677164545639251028114675550987694765388259782150309692282484658706148779353141061635111415107856232514505766724038532741989088090996908049208596063716503158994530835238671888348263356189803580386779502183128869817395701026204737134591739313206560816109464961247657976802155717309304624784853452482173480069267584924834717961287250122932653114582147526618931366945386119066375019079848281933657897326722753369092862151749891060561054822334584587160359181527953841036342629929654239500987430946694741949533730272333611878810041994429349150618020010689017762816780399224031407248673341719405167726794666990992758340104964897072463771913092248989192312448658659969289565247783198081846713968818788839173245358422973639663841429383372675694458923020127966113836644656568573540819516624919256094195298482187469086780105527839471619760942784464592101470199694483033471509684000277916527819280639639267403411896285577513349574990337645266600123439975064044422604653813484134750433937617701485201277076532281847717810311933409433873985689517491129998288445888931377771063708796045486482928881329072124516857046779746247581986486008432064727919815710450870644098237306961287746352795031049137612009693980484097835258492387018532769821738480293982538811639868952969683462805718826583643978000062176106222823287931488486910911477036174439262461208898517499778751476519919195950690723847751566946210850445641544678952245749700635973636945959676668859925457241101939524789076409791875131667922731313564439034430933857863177988171742663007936258756994945687790820992777344381788353508846167177730149750517202773305425043953337842753190453255871603281214623004434967259899117062938985645754408372618475141852595576973663174970546839754905852784269617368164132039119654174555292843730465256632120375884579839293569844777139305925710641108516869261237609599926709716418550706477627104547140416670360332424866394645759309631318067002308179988389680179895491768261020724552717905616780676073322902783291235664394262574991025755131690758363093008162815024236938396398691338186158911359961144534065249548674125461589466612316043974929856892235982431934636428049238569661012159452964690991732517147156735629634647525936281567552146352038603393872138883642410162744241231539126769064192835804490629411943700469398970530016050661293739237174138573492258278478249021425221229626959340152798978589421836660083681380793335735336397924524733190987749256227637632959309744488464575704530869129156878964780557061258649345685114856385389769319800541764115320946884951372881227626834832492298162797165015818730946179441882380982062597854142380337153816540650395035273578120468827256891980645469394925249102769062360206222680552976127134459764234989793260892387165559297130520986329198425884853203829927217320010005622722323994172968565351474152892475727444251212355587395302541715673549757119696765508976690819452393415390446882615707955772642870971380075909459939163538704647146261405728533755025456171779521849731952126875693552036089001641573602821636972378752905530354297212040238682349586024570569657963834636488196023962921107955969817346151597840658788377054126854864456539250392750428333686172911849950566866780961115759566120042654309585161708419964833320899335159825672968793548665234630473815353743599998996097997932409671461972702974163552701860879193484276513405634521702440198766502064037659130788863056809822263028003767777659627013446804574701989095109637128247470788024127753257942148972637773564279709652117780601261996053370492695319012246389837765048653037801926018953712341318783636753596266796920216926901701255179906061556985777231303044897999616198202079059177218669530753305415743203813521753266154000622450663318006798501436287859252952456416395008734571739264605667099216192692240538277942947384502646746204252768468018037129573352820746468666189075787758045780574481662514178196868196755671611408202661370004627622802578843202640957735361378934452303792127957538244105411902301932282731943498541942858369524355717739824948934795876735741496666726760114782499831202842511200834105203074890892827279840194369004591882879220650856654301622077564554578472470086854165644591066273418746518792313837761345517776248307044834467557747148480471238402756820855775760312709782774396768572804539458113981834263008659977668690588053629203726475153491892775405710298478794016632125116062213322683014208282747450641394089082206685385968879137116021286976559498662057093335034812701550053083848920997368124903084005171298640913419836653236404464478934529824560164691034261213871275146293774587207751357261396975052331624907729082267942659213064263186691647061193694580087857874170152271656670267406088008701618238084093851831741939269104751747107425180650520982258562216290611428287558612142047966265718373840499735576522562833633126761181056210665432481980211785926291020827201238022867225902564787417413658313887594554111988465907772633232793826201466505141709299899575949511454920722616385859079938702668708590080047555551996706635778661369569280572348454614051228036168372476145153278943793206821964900903855067012289816648682469738377629780728378259902998325945367371160429625912062243019315659041797043312522092955867612447720620342090209679194403437684864027437225660752370204119244605350765518486659766429277733035635449604937947713014223808404504094578043773260604776462206794453618623633363779287355747640435797836023182618797981803884989722807939847956656678445201292593203671653699460862143719491360786388635704119677663661660848949788048116754367417220265451348339267913007913696075169706510014330295236602499216319350760407337971332664773678648595413821134017885366306027547845822277482277855522013237498669891019098086374950105708543949930005585794304143066591087350327570208636213857108187714887621334348351750154324653476749906175611070869589191994028513910505018274762440973979902880384285369262114696396431636771024875437064111165510200398094157533822358098346040520054826248945069752932274470204131008486207237257414970718337207120303812679941378222690953950634345066015815485125512371283517634012937100924063948422797400156115144465939881096885759464399830666625937231566724794676898283157203499035235050125161370736522593279425376273006217763901755435513479391986118805419609390726442534523744484601371857409262199284882367253203476500476520335370794847582416861263539411813057699381241823982447558788092661050412479981934564988054908124310363535466853626779374482333867108793319282094055561463331991269721415264315077864214170114680825802350162533147729859179336822454598204099599356646771331466828752070141174071704660698266654410771033471302680152917368992293134589964927581868687179610043572392975724228402838698952927044535015895916154533792468861709236077045384135016500213410199968061520405296491937167644450580196548785431500316187639445673249263378775683778569811442952948865261702000318857953810397382603994979545468884445809384021813489170553242900414881252935752643282620184206425346481016232188324214351544938260812845337312048535219365268552855514608852573954008279046237167461240008938405383922063391592375329512893939089711432651107051020399627114392198045984624329515007010342497426581561433469755642281561715613270882364754832647328441736705246345497211228279159070318465251950084116424198799663949996839662705361031398985405167618849361761032591144139970267070906523796885756764194114335849420761510576221618635383490035534202869316379768118134058554755027270401712259785711629203626805123270504227280972949315787863830295279970526008731099342499996567390899689973541637149784797187387186309368904045679451301782468545595145848590577542498581681545966272665450382794071784061443143064609097926402489903911659078342786297612541644123518537305529457875764646293674914410050900688818614800645469892079295946186012538427969902436947425057942489408210144668108548957902690877804368750986423092593114144759614157163926171408717216849507705905356494548735387703550551084752766318709734414767115017322674133062705369013246507540940565793409345225183600064604954079755083950262905106670287665690808766384255624986674114983324941338453020018473123306876424092260084096452010577183976094163215844442553298510325293190352099373831242239052699941318872012820624562725999073968087542673563954144205096635534797409761456673813235331579967716480545762504713697666964871186715245463226200355307183559932131092985116161687339970806703361875576618960434686882831084475599835265444517289626869878114833457060443267919845276519117200534026228510601069085785796482122958989782878787198833069082422238455241783360083178151095390253761461107934195879255887529372640475578839508017103830619332932132106487048299943145055303535162559090519812471501661203869251022170732764146425235504881713502851310584934181038127471821932061678449226196865643481897605150308912454748948770000455486837467810903300192655308605815603127898723382102544263735138630877484809823148945673726028756129392933543689946555600882013536952590910116637220371908117980351964552108606201032763529533184399273860053050259641064570981083279047898040558806633844818588222958665116890597758005562619896557358206081251010666038150593282369929092164309669500729943080111353769698162752584449245417436605691052885327454369644434600420095234504606243305917311599256345311706833541331927955803650402903011718370287235319412199554958760551242696574974381936551760801566458610226097309906107130692956423061084181082055483117820972328290044286038468266323170477202355976101910239432549198100027681847728208784658900134532547095874508860258788491360355401255025450826498634346483761042549899039101309003986461297663181465330737400060038257836340733329817623086631460306892546025288450159240073192279437663827383214663042869930355106086806609527165260019829988993976755543485635413485246582922494964596922899062196563027547011456795570736764521060840532538319604432396045893656217269770668129769556824414442577750378128250643309567603576564765331125656390373490544803837370796917472369338124400598376024244071971613946071975474918563079871951898789598666382542253005926592727785056532897296902988464190256617526836865746198547121633946196312563336724135542675735503008650997561025129271451686033823858577697998491441140514678547802762711102315240022602103789927455851850915319116703367953112720616057864334047123232981826589394902995682499549581205966964011804225222600606079575579103677687783200566867455599639374707335147411624444690574357785674907746404497531589971789935596767633338355091993171490570079374328420398499211247238379652608380923299462435732238030864091702198168962261887044331833899713710558184927244015430030240448523788078515852470058273051496679060075054997247483278625256874757001359833139822966366777315781208991763678733953901217309333213473865784112769615164333291083724299488344196447374379013193377166796954967656827677647085084412543239259755508711924519606693452639805149559423835495129125868657121685421690350304917100945854531133650390586323458478812930284968126645689927528895515347380897012277149428218666659790891099601903985622225566748674166848676509953536167217837688487396396110852297475809881143315437742401121980038918718863433157137990467025822403615590510776790113102592210639987292387515123969392260648536604409015068240830286339831940740888856494607213472138078983993902944917070575608375665538772512892848985111048383311808745986633958748439176797835116991609554177181223128056803305868349338306010090675158263179525759706066229789009404859220387767719573133403927158350224454117381073107140791387578423418080348571202344286091047670695674053247824027533449864295817877718540962839834483583965156704309591964913507918952174393192517455460413381089423301602938453727931241517211588809486404286666468440736291187096123534760817646383668028329417596039579887016721547092524740603633777707704651495108784921677679360908030931181562904948280960428450547440852561183874363126930325770550049565493356904485731701431052164315937556195980319917277954228758045338329183730397443996749632726001368682127760028907508980936000694499833087683791124338988967588776568222332963976999163918843491109590743001453711968868220196848888136303707641645534404070136966321571785943420571672386440524418202899828054722361699056293368995338794626473110659778571419005067722634969419809620870406459099725796704248142674372283063141332143176412159635669466492404646116404049267178209836243378753013212341629566801078802066359090517999921930125333499264978074911549968881900437548765436481036362260684546010826033543225405074665149515092904292217727446349340201435282188202180587983292947835871556087493841613136119012888396762732730294490086024315498333991001028644576465645567858571338433879273950716215366182051679479168252293017233091601043789413703175086217789191509104026851012456134177919354081196924870663366970362064620310104114793320828728638330290873981735985087748479025279006459758033598332922821226701371409114871924764930339833984941725958359182301821030028806695109100599919368390312669184618059700719231432281683445608018660161738283045114815465497761405830588538674652213862525394819433805107689099327069375078654175559228172207042569924978061690387073615451742876434537607808528337872911610860906063340834428691786152295917596673826803910720692494313642262908210679383427439342305591328974235772997560080073238493005093396607624118131851145214660173968270065266229112979943952228621050284383302476006272095698935008301324784575633701543449881971440730415449603336839152114657341392306145281767682952165881849130463515617696341379999313012184329141471939816820304670292466679146585010317467828268116815519012889875233649947912968232343909164617530623829672158865383622291852465785085830033503180298604997830604678501627349217256554556021857441843623962588322707855386123111449003631181515813188057610569466185569889307127443607201230700218728769931827950399597697683264334709405828309550740153753986701505553704463621115565481365658730182984771052866815174232487177025848847374930944411533206703566209905860194027118373238857657880561286537810703803581029583186634760327339458911958677610964047400525601985913108440319109933419711358217306542719739826991206809355546894159175748491817025807959032999919441274924576351570013563554198118986902580159603152907141362723389734060845531175314367811950796543918481218208977806255274741334680816691119830165384170064876586015056082778639272702547898499980061402258873068917193519632080700016902681400936967404668812429619448578730564548195128336735330961829599609582508965072367844719577966830548758666284365470947523890748396128514555312950476814258035870784036612894120933239062970039465941145901424884387457940054796987989646544722041693831234290756949023590662355144232185717049447310612294483964323907882496476869126932087822935590731787134683610601327710186435711517632044196415611811962344209766462144523987633892039239456291863967595951780263321949034585788921424962712360303492268136751623326587602523150893300872534257858899122250614159435257744507281115991080309888758768188789759620426728624770228056223239601029439880371998967674886207966141723455020560276153253909488505594610017283437781724349309183823791520472883125523353497331090600716919442317373858423868758326207477767396884666155656092952830154171012368335799815557597356050635473229441417339385677326095536860144249781778654389351001441154981965703151086299001704468169007771373394473031150006018168732014076406767780876530824620324950982461967288436169243326102568230285383251352064576970548000510564271143204887106170985665191052960185794344115872763888400782634167968916977909857220899220492982235898508704499242249234918286246572953180660954907243985142599771959009871281058293914195236026564633794701567903135881034162389155350691570189132322207246805718781695668547687687962442597944590076643316273571057151698534405539072443622874633246547076124249458865666801431916145571024937292528937145289583255219378554496667835264964862398554643887582971780990586484509270968286896321203919564440525180294052949467941881683788476559741256853124473767674324691977864742288480998211584502247899413004065519139355011272632785522191793737979038596535976028621840225592647301547211499743566343423616885436439638806612796046382317310883809724946813834067615899120956710926308921730434699378189375136373681624358279944313503514986227340436644142841664706331041392238961225364125081492939905974971503693308034379804930568810098747033330520128876638723630503016482712933160416580216469783230077853817036634922139766611217006914854761844660597825411499234906716562185010661427860072196613772447410424972169093374104901779959343232336000160988350415965918546557365718630565513324185440254914787098313420714535285273031255097003524874994467695741881681660351034422006642950890559447676510269692239582847467294479758919128147125323936217018032048578595413110193933990184253133964144637601535729696103617727842324029572320596227378575059164358922930006818966157018876379413149875246746215432980589433164712107747795747999885675500205816639580191206861978919365514061098921085847301913692095422256852028256575617276065788398400901824587445903296122380808081460643808114717082620166287608003088789525830016849372725398995327863661414503762207316756698497739386447342158164983474159534590631966339605984185338935398519700391261797232075169460694652318986163908708785038614721540960914477625202204599248581735963461807657157235210291183397071305400179071504294203658936060599574111814335601728929430565476652792625511707364858422566520060150997950110136699468492911411558982474863520554874305962682221167987734973440089265531825361808011101631540478273559429722383261521438240762450444544857735001275708189260207094866507058488375214169944738674422311080204148947061284809199094278006755084243358837047323772936907639082442116778566296988514188345893798538252552164772114313981108338795549965993645830929338547452135544519224339006855107981262176031462604445574515029837902398166158433971124042289749709149682905113717284349293938125564387881828119106653826997284425327166560498235479656358927461776056575837793167995830435399038054545949441602298330362515029272112705283656489223926810978430597021462559776121063890459531299400720144220150132842387214884101832344859029895687043958088323500801783822792819959734200796376877180924886312082369877879882531250117152859522897102439559340347730614899904422358116631716730022287087627629816608661689353428197451362123418822773448991355967086191741220200585415533932984858814249861015897250973666871311844639136518124713437544489254912669388748725987753321257169889921186827396994088453134873285409098653455528900739146270735542892699132816173979882362924558726276730089423764992558634150718929585905405841825953589052032169186999527041421782206841400373768743639861971720485154302534450612889419882020688056925820421260237424904171447231904238509514878328455484595173976483750433661377136947432697677157696803517963747274546425915324636703763185014176146980226003928379250810204544352274679318985922900302972094635847004377149708216528287681601782999717084953870209525246384139201701425231680628789327377574055780971983456876591711353068289838678472179854194928630490491390702056160916443048932858451835479253049937992292644143020380725538162968192702378452076960166049535584218116213186574378380861523026065762055966463827448095480205723598701119685030570744125652519770541832164979241426038397649933154531938156494995818434405847935031944066392805094849463307164496397134216622511332651062816575064142100289025216323688692169393347076174890265093157386257166627152199419909126997957936533209175872956546281298756500416787603352650827300331790853608712306556020789629215316201982173616784296332550053439002820416398925383988764132412202844106259741711379122036267190391534555047330211131208180247886817771003770285978482253719428265572857777526763904928678967056873991221513913625121810010672320670699687181552626942917196247521812732198074691572062700921738230205845518996992561371862633755990898173890427961460980069750908373049125128973972725859997835370426935442496426399320882639128600188745390445908761579747330823529804060967576917281527176843656393076909558661269305336029498196446198792438459741975680442036881522472340671691074686075066669414249115806437929763828357025290094522893590543074017998180814487482932693321895640554077489031054198130432415038814515197453376861123818307474203484524446333944569657848820209131635927922885298366485572330922956585709565628679073207484461620772661278707350403943302290413588456849690315284592850103675271685796454277615601477429871828929613770985064215814417572157624130143753249299356718049046197739658310648040919502046226373862729616371426490038434780376747387465653383287001204930522485566460498292589830606973448473344510587923252726167624696194082125970211489129269164989158463979675930266996790058030134152982472809437950479404356396937603788964135213320077575026723683222961571952149896715572496995654897911237587371162158135534856650347762206145938321646863694159338702451549222552799413362500613169323899738359568071047927847268111174197487765414742436406948021733869196048081109789272248392230714863925876493021281602520809023901456333637162079223179792826186947746466954548327951007064963345751508733063290335847759206682613028952406908970056277448521098157786466865272369171335799991847401424728136589549465776427509500059138636155833407365213703030357073753019349542696958425841611763156923520389609869607242032352119253780776519265548752237167901112743646045623866616967221403356762698318342786689486975162398503219891175882103042151051351886039236180678945375183790832873670901829578139012876813948925224909719521396771443955802787443707688579142366852274042956416629631684328158875155023340371741820341227687901484593394288403297938425893666486493813035938275529467992637763689394996198371391976152324728076343828888018540125982896690094904911986065552672412737518074125559748820529137069350556533129684599752810645524228251915185962170793842041734900803504480154335540761971606916604933683582824380739873235925579687269703322428415240455554358988761877460725088159005267215309182576437804856352304863599545703173905089938169746700056046981140108775042733467844385513624436707191233130131276294684394304024121744699402916721174945996627555504237893496561279048257586210244311812156433278039142331382956105168558490238441600356396008841144063319471041203059567153611760353109822635812598031552846797466292366688029737170674853997982829914780638198918039264686162787807187381646185326295610783487216485985499411788402377498875588311942537637695924916221328041901337337314993473462280280791164871109311676187303414245351676211412015384830481638520225698753592563090746215701819288657403945435802742396468550637452352363420800687137872712154510061475170290493692291655325163808364206269280853049543571181176176665726326241628120739514082922174676241325145990815293852493999201718263286725095064912694390218972534484992671479047386599411471331667321888296963760503386451743592756868634143498628847249298880879051552761169554259545278725673847410402397302924127449695207881011924757284673687514780566249610129636534960834435025262748316323037767207158356816185363640193419358399042764673708200175645385429139639568642631795771703071812610913471649755136849893354097554184131966020312009753712288933679096323528943857365385316501171080403201293635245879137025408670291504692275133228719365371784553258795650453824859621848622973552009859649416286004930534068535395974108662892873747390492682578977123931696538325034065744483432295956762043966460883818623904801269295951315401771235928047418775091959617856898350598362830569031777947402722972779082556597039326494538191764405176308445231907963704465699491428266529540807149417725653670152635880859132313552554554720237126387103301902146894359342434972485032276742852685515426753374943382668605153559768549259428521625345169476548592774337692602313753291918740392879690254554032882003315378283643796725118272231880299756282259732035947418586206367844446464731904467322152728967066757030250236358225203024648152738210608759392508513512844880613824456387147172966903099824155011196724323820569517520811416383709925037434605190191686683064356167519208732051804494896380803904108718313238085079366056355845814726244219814493515459046008625844340545245316344421241574459824419267440856246913800895356344269862334686018037942838136751508306512842151702596799062319855130768714718185440315224980969037244442951321921168192826684125547891579059159707852422634475934417590810198505217018382086135890773647116251571086312741258384274558179265440081640719026587513740145612838840224275215641641540180065080408178128237246092312660208908984434452606754688769151918261421263088555378298713966971858889542776717872881476794006356548788036338216410576710693623050620275002086896932969501503389666168019061405758702964076929477791391526300919251146379180537205148405361926569901256098547031277470638192793430612163938645045538680144477862096958769248124180819388306422902784067193194919103202945037982811320532005697882469475799559087758981184979462012531991076005579701760055569796655452509204098887135106786538542394908526434183234170996171365480318408637107231396900406969631825660003625400076146591101322042011314120733737682722406639797523619118303855024246205756408063464504123939569720741402469867422138492319375584631234262058021690662923206459626770449525929923300582021820892069001445078788289642370920586218024639381921785744170696946710572123761458952592871982690488381864731256150051236167909178282209342732163454708832631598830264721406337798114064328485915203813518443527980864527895352707567192877159785874358056503818442158702286247636929199366303238485220010156630583297916895138295183679351780865206313101600714517814539947802891748374331536786679753555884429383661083857020557600091372362649502000293484028123178309682681001002219449066555360093298358357792088147506590425496085055372475378462490730826144530334851968675653895761369585753807111697027837029360944718346557948714286467937181634655364012360758505455945041310163177257752930559645768050172410162921968019093532924515777506168072951839375242316453689025139614909099450630219164809902268001556664164251186529799036064189716209764346731075330102635502749789818243502806685329444786737848377736846731496164121388780332330815502141805474742548493225691953460535733424473201267342221823596759714532406687253258576891499019918351192008426426196341688574367216899753514593853500443160236710894025130352379268817154225073604431063765654037733700216033264039121337984750023336592865879751132645071539711309857981667899993634159500322171479196908507305806971647565654452703605481516435018258909238322994033123757209844827747964851007613602685234941538877127029442276267250662359223222011606171409014608401801768078133131167567888096490188684724016519211685776625051222105195995651315486347984486431852317666505993571763226396517985015509103936756460843637410731713879100400375372702868449169672144901244866579029092456711720509059102876035208909572348600309326719686323465224302081371312429722512502714447910996116808360835135250159503475235908339297644493149990351795063796637817101391867232556698373035702190696835115389668952226989373138548507051550715486810321575807320345195350176672554748509544557237836006855737680195029363938736385644826804222969018658512778337467400144219756671481943073490243094250889649261637613537917445506430868179300028289347101438959350711623990856129085308263354994500047054288139851836796263234385606144507244965198799774306562097648419232774241181256202803952143884835880925339194384653160869572400223237058356938031903598945609190116714043082101922643443739317945951252222036972374734538736168265015896653270127556097352894748545585307038133696435304201462169307653509874487620280416580398271008363229482178153090105566156894106257234810034304670675740379091557552482173644647922361596498639318398516367946838150445575424510491690913572925375896316052137054368763800007357761851402463331366460185473273942683771139613013165107165229674923417461416971885111566487598240896478735197066984739613956289995919350543071274161204677583072566121680829585285180125432561154744733745405755286303059136905867097594059643863259293400672980543420889179690804802511389336689753008911658611176922488539967722569479255328078005711434102962901055497938792167776111228777531336886099110809152679459709618276931721599189074020250303212137703265111627333213437487739663753444683047430942347764672496584314166387791685622355157367056824765470011067275329482200048324131667418042539889205584861035224710161632943298903717220097885108247575015468869169784243022568715288788663241443909329907137247332675399862134768189390518466846086270142993266607820126777167328596944495864482800158362673075828243809059121831459101359004256069914376138422942682948033554604355699103171414556092258966682934863741946332293844068766888556840544514211860141654040353361060962368907853437378115632233004211833511814959732922556385613923956600660017486732761245511765372250873739612856598199353056134169648875198407653916560552758831548879624348762517844770746201467235277220623652193738207214184038477730693530565573779391239736937022112109154532433652922040479081394443212064066654338822712679612073783217447248563428032228485120395367399732563161935573678197060514099051469220734286878529681430291538674159455053811333511673468395689974219298079599023111961668155915624114438940815306732562159045524767376984913167654627209586037058708450318471727939568107984841610168183937656604577899568333423409876584933089837429213337656289110289784165409815359892292991857159234585969438283733395555113521360547167421844439439489543177854988637085714192069648821210680284071215296590623598780594452938271514321335739273335905180688268833967262744290562501246640428855021167287082987081344633338556425577757943389554432839277813460634538052728857454664106697363625933147246123648253308532857033206166207969082922970323294690706166063813659691246497321712653355753753091204473042238686728063382388878346397431708641999227830278323454627580855879889250218002761030203157666672683610893386455895706985357048803216373828198402300362226586347299474581763251735009128386984934199928911529536106581879266122088751002653709672270903718463018198471168511405445800863542262906026530560972160809283714898777290180781866070338837810987267596777159725137833190989935633364655614087513379738533359595010144138958002849011987575589973743462646540943641549241340899819209488905301514952634294830209623698955468675905640188566631453205344011654260860709383381531691190007461063375414694179144250705310634873943330598142096031856580585227799979971453319596258477043942080287650461533023754667652121431773601904387787027790245201973316416482898136571978166107980531956499953448970945348608173333996579818539707762019051208738301943675629873030019613730706915416904085895007823035963854451622622122343737487149610810050601682811124472686674189737804208003271331249478890490752003510952070108804032144607291495627552583423618888725586667461700623587281995471214412734185468617109829502381746542540867765555773369078325208045173179614341060686446814934568826814967163590831601779145951163212937594366312431137487992909555390836150026816235464897554952446844582173778851982742005737258089040951773798697427583439982939091030166123304068759655133385243914501063417906503763227905789673534786286257002789704249891879522665037065488175891861429842829385149119762666011519129746057502348023975276159020343029853412483089360298046591740516459238388815296724894259736895556057849853371998175751316380327314009540999809663332512767657041022453017314945978978464896288891629303991763221179121396651439891421045888297801238937642350328403475612946629972784164488657579379289399634178954510536699524880358625294393934568271306222760244776538326081685363986862409892559695058600103273938763901160023874673194545891405788145007645909377545555321661985194161284017165534937064974325115396880467398224195869096828985081630904312485436334918960982772365364237660123538927128348738214079024633871999462412123379390620013286216810001194267785177520479621296911372676553130844543369155448541190346194260076777408470655019776844622082342687433623145840638524165658289997542707806381379733327161267209080089830367506592435724356242559881229944392533961273920383730497339124164936142145504481100201130437861685324134424400367315735286051240639890426047793099448588998904876570702874286189392089558822083724064944990614179967172012369280651181194905064252336671558375913460136467961701293783804921558939863822528152662390506998886300764651742140855782398289867947003754766052305824888632446044290978424858348628573941875811452295169984412273537473518012779687627888892809888697141933508319104753774973823521502657273423867797207414731763171136454195177091789288081799457841075051109091065571867398106490288196751471537609440874733107407516405571570696581922066371920569124333488934471740874123663105680648653508863562757299508695621155950583046595993389593814132871892818539717325995732944206308148094297693599043144214090864541650002257744730986981979452498085596273987176823386156877179631537175860587504709719837602777467301265775536253908892942199790790313227070154634682816895475089478390901978355643069360296770183875398900961792929029656213237966397419723368851903942594513797526087472249713328067199836542192816517735514513024575673470645014481044114098154780260152921628878972723921496212676116015033014544151546503282397211132593946420820962991357919644456626668174354158765233650114257559749057910188642715879405145783332051450825955186554903566039277973074708676102959324171935467174598775853662692858519261948749375746016467134847903245904205193336523425783800579411174803384111476056517216837414626167502985413472519813957879409220574675727203202946774690383835943373464614685151384697226009957519166345867135706697559171710702274824083069162274812856581874285466279285681263721855523150962685806211189085779639300921972792172625297323348988974486131315843229358602320811127660481012549621400150222524702435859082387621630537404730348129252200062775319418091451609698601467514684492950837995404388710587678542689620462763778103478907433881224230919927804499575938516579727774192291911480408505666907033609539839262587263267790268727677856493873876739008705804381449891372685236996519122271429405706984978779421164435880234433440586330413632302993183474132014102197573825637017641400947212834223770406667988054593713573116818150019311805522185163219845397402756905718685348251509642209974452506503340065443145533200900666162510255396623345549202727122884816154728199661210907778815698770477382861381982377520790454114585290052112973503052220204141893306415649828574716112428584470017057018343317555961351534725314271065029420179424129496616132891129111638205810782442415449237685311385745262397484827919932563360167142786071915048407348137433630919489076351691976003928271140367955989183719016508767710334136013578525585942050928064169551883176057312456260476570347607655351130501020652764908061941647725872358951051626373847015928849416655990596450210770490206298124214103206314658376066089910707812208847864983320190625454299554434598583388339525337111941774118797820300530776114867688399680119751948710535691737920812187278964970164657695280251882778507271367678592419284933258254287916583533566716287917257363946825901175673417128132386293115104731403913792753365522570186089576250943488449322783385937160971828941145487980755987782514088518595536056449617044379646044350847746662522730793212121549819793972348848100825024895795439870571395427993677139007659245148867301796534225294724026466809987173443536753313556305007621447458460642743080295138569168270381654802161222034705709109898792108937440726095560944437324995342957227781223372843019305186115543312529335770938504206818889227232299263795411304469902046594897321372207516257107495230688673291420982860891609405254524976785937939454527892481816680964111284417601734819964659888517514274033319543568615811287053239078284949728375551634080627716261870677840095417359483750168460311902699733249153962242939900917728600427686174619313853893118674868866680599947910207204861187066923911240472544214337065442768576959705487500525023769604706363959939777369366692477901732001428044225143453607069817085667765986049082910841826291674660723659952600473296637226508957020746349428910880346317507270195505818095601065032238249440173080913784119953161495551638867640335596621752119821787110139608234451295013795024114204021592168019721535472443723240779025055952474948403339264648067509659494475605278220804924137218872561147653053776728921147083635014850350822971897614820497123818829085771744010943108900407597116993335721891109168776187340068037782182024742084507333342960455258594410900820798786627588293563319346517050934484053591740826747010772747472117417223063137709014446747065173143830749673696072438128912882641932978684658578686547669523394128324153436421124271833456698150855581874571531342775049671473843890667517236734226937452135432190955152961876099017220466185452532985177563029092242922407942416833340083043423422023647461532016964268541255410215476268346376337492791567162726732369476763614168825990639799755587062960963931416912537874795333332501447128321986285896550338852058952524541818253819194959961421117703258767718034868816687324024663842922475691790424527448893330070601205625837531981357832908257897372443142211476828384478997439802529259036469593250869970102514331381100735480060867440886226326318009194249237778414027683353935421818564007160744221928983588037787924236679202696591571668322194879380021968832096166281584402098996583841937390936629175516615085073986511014845155685301077779882005951377336256857574505365652021563937368238036915917177970561758789836081031541998400275557724159539638102256499090125494626173565471339226747245666736081571985978943696756362451348704785177627040542569381647775690865916774023161253765737285491961172151192296453646140153286334083542935382598228617082982791914776704363651366569165128174040850213913697454629103294095804509743026283685255355315657396835944599425501683833227032785934993191820384761186588577872971861871491077921181029288183595703167050536877141632981870342849962747623573206588514165302113602731337502534457490712837830718990669063381102749161994953844053971014868509756870811202536430013984238636169858841327568633947768691192773432411236999501996448481312576412475310758927926176973063577767283964802397226389972249426357043564453370747258559928250782193466194840339933208999097573384981894632432421544033769718358033881434065532009497930864840736877339820002171597719541208731662360063506967776119489167519845807172377897992141540239925428103906583420579203334535685185676576492722086836909826579568379361426536425682677586288835221076470491499371797994168861538907354876780725531480626765169508403965921239256894728384452216890710721871401779469931803052348838843504717403091497170375599262692372359156353974323898926065973457195044087344092753370272110993386534865396698451832064684810996183305047177360962784488472554990058979116208150495996320696983472987094884900466409129548211550876813557783926030916291835622939160482557807427140113209003667439479861798079273076109257352877279061669504411152742619590076998413346919940535168372666290664436731686882587766648314888522167667879065345179288522345539679297244138311462999787352552574959480797550691502724165459573104825035805113166390643146820051233209310525529283815335087981016174077448356236757024322387821167630139624749487562519984671808038953237188527480462081686923357152250269366526968768891989951080228883930623000770098427284494070228555968595440646317159740994156697666430166721795248947587920004874546979033162955217007885947364979720913408507288860000774601729914416393460005328864279759785226490967511463911824254455826908975081775327717268395937455016444823537886233386001824423562807199976536752124647506299230967411805064528117809189407899207263573429265352246878871153828483893818447497930622470903860263310774966052827360876668431204325076972125364247135181040012738490462947930042568102432476826763071348134888209899747671458333101977236928806675223465505074711668184559855063879217746895006308010514062447937664707807398170111468840925319257672560108470848975406883345632331730704115989179740661245304863733398271081568989096691126884994570421072778810818087282521937669284328720195746827915193382695083619828316847194795222529428326637976052493558378575977122450854498821999790299520463703591790726982882104836599731930387351304721711646086778166042587694761747413200275836310480231404978190446000910361708994646347443304373936306651381621581757874882780209457700432546381131877829112955442217928115938348934412350894625775651475627330917877325668901279832499163044734867973279372411998208864301085713218525668956678871697511729661560855240191119523322618038090525053635357415109852111110720205894488593219310686461673707164229570485719086745553101735853462850559832660858916842481009595761483587660062745369817153069373402909778270341150604501379955446941411399479831158583716671390979453742163603311435847861753798082145927064619734638127855389540370002581428103094655503075433667578191254096849246382587993449899821879497963551005448183549060134952384420664632622829888489836250503730986080263694932684420360985512303861053823742232302129945953377160570812389464880369063323725349313127693224829638046409549570149567168782266623929226985878796733796480060963647005763515688911553899721355701365539785381937823331526350425007827938137975636962831375304583484924511289880209567513571909467961139501143906628043191096078532672972027718518226968771392941986962410061143184015014492711142037397158855143160324062311738066674436457866234716824374134325755958081904467537340138245237005061176633718311315642160155183825422985590743900846254115793860467562438529250687997690149049195172034518098899302932865400141099125991912741240886054356522918218850999237225624511889260199745795260953245998544730454895689998455753174493416249778330154020333638201884033972640893382684074866224532291397765230480207882144386569740643812343275722776971381186237729960315088162105850805026262885020701448751749470419620287171611311498075425078392520310810293927937609120835588700105732658437311721145540076399293458500322912104701384109156527220635438035647718084380592863215788148807120142000242179727172220207777126313109290042210393661763796540187825385859795276926761852441617241546263801263663905729562819542272238275826656267637633766854285215693158121824686758779193979884210935438110220096932470133434753120934304977968105074827825471461722192150361276895521125405687473332359731618728866137781290364747730157820798195501607464279850374813317797827772915464253151533401954799157848697813130796186919872786645329001604317804038391099501028884675744682813659930761571762080795503489415972571611876869369308929046854409107496201384435590294758554275020381227139530088580057485340659173130795568013346592549558477073167430947543102224095560533375686912614154126055493142899834229469004743258157285186575253828272486989328251994400484308405162382013161220545781541908712391865054522021315824967894720857439393638942283316233743104539223093253933047483264827785622535295078824066476083359835304494905279390975168542122038628205885065043179500511854355052327509717756131682918421414626167063228421588305257032929039969238757569416772115267026156113859282725825735717335574202826531686851384209706609359902211625337462760551989035493906184729121646308151787617614888147472221689243126526699954071898467405524931936854936864970164985978794254391180910516596594095870272842524868218659303042989556842977591044683757633364964521797208185811068696192141610449716697669672386541723841509496700964159915298369507969761504955446321222451771665348224221972155774241451680216296654625267586112761028888659039693538936717948623222228315779439308009418639417542050331603527279597218337233660084939609177769540224799016045254673336296851072542772866066709842699880606169125609687713290579155363446489705002560172977131636782834922776126820142813580762692484464697476095457679381833447435442377024685877275870774991093211068581471301781160621640526382829663635124111818997820010601633415662342040483072847004095120350356461524085463852762374986011524429735943520509988469788615652601514354546877301139359748052381233581903424758307465506840152394760597203710658563472986979784731560561835841531012865120678976960122691024137259354105210430524243621177063437587635856199324646743815953444521808179808475712444109622882124703637375314162689375927628892028147174862275252823032780359875943100417009999074962731277746216510441764933013308776452988920786767158648132233493963842898426669160862972681132443357905013117263233007723365010803154214123078975795406708610287526622976978491195290069565872716540845307801529887288338006304865584510631662453039215755071570403801636722515787909922391747024064281840015045504486775480527635956833596336329451391136869479029504619194152857779124551931771320516912395140390843431103238044045218337665345236177518453940528232722764692750193520592308471820210797167259381748988199697993245913186635204877987883306057345299211112672195397279177568586528003915656219676321323743544297303777361899536773837834438716892411214868896273664622917647230477597778069425905973410988952589610297570256591545443556303766793437092355754045209581665824935137941892627422883444936149842540329961863961967028083438213712576169886216299250792112627962501262076575394351766598458886592610574499073120856554399567895240403687218161172430655642648568098878514143943995146624798426979620560672507052925171590653296999399778916589217686508561150894788230981358800801344473824200497159616842568673202510564098017380769888630653836935206112971692617250463019053264789207953735858008397701516418137138998108273692368198374571919202927026764039544705362595684768433764876813043947518570166186295281046661459717745242621256977697390085887133796992171858138483714133702237395135931656730501808705810940513039717149103263166884561858128671514129534211623038444977880491507840801001800631191728791850601535602127088430213072858059500319792338838065190836945538539279103608972591316374089708655395057386688377510366670591679065392150278842928413910109457694368492592730027248501301766166210898910450357671452358947213738070688173455065906910354176079995236875904872004873053845629220421261418162015453637751111657436307585017778950589284206028304393919343666503631454043580591286439174601733373796448122789484498138729537999966895395920641523942237309474447472087104522470580882682448344837033013120272491993448587569205821699927365582144100130670459481025333828773032626291514300472327589639039845532586018850960540873667286787850926094841834387284650875959431480918368535946102429588392581395502363806472128946453913373007515446475338459622056799552515700480726420855892920245275817648406054064955936809539978231536271055754050517784392604593022798338660597271446148148693346906224249827098055274557720118962248913030530930436544440469503630686634932455636098226893979472532265103885702120050339145508330389352658893935644741739155546565897316736761418692916696883440366352586581439823734581179561752693836213941793473914897212334377984925107481697432861279281094784860190428864349034698036319316118107046596599852307428811803060777089532034284350356158348312648128431714894206135487573954608354186884987206970881257432535512985339267260633628401720952522634842221944543215758441708278889066813396629837107986820123096712633541140187634001417485314787742559815450245433010482517990192915946436124235978197486851263594104299820664836512209485515951990444843231010100178751000006727167737200164950226879453806015742820929506454981876170572323925674437576802083047390110369798881052980938947843389196585123613619505044180189607525745162931521410563822568803884384381975341900421322498159399978453024742617996753307728868824248783938584930630874239240608821443327224011999456824418360039146490619424310912886398359937295091751866535913552173915314441710277387341271820475364599952571756890055497667657013099905850338377261202086059612537562205441509993684017565705197886644510392465855589342821133278814804350449852416073301635271805907946227496929654893537138280905675633326790287016095197541673451378471369765045816523760177904979683517893991744880664908824348617170278855969551070139893619168219599292105423229090445053066990257054623841793187712434396956795451867081673913021506141745488678283787549070598107816640544153164617051131376659493190858977636828057424327632764262515430291169467768538578071456666762661583622519647158984781191835325837347436754361123240488141664167508641331930511350375638383713654983208495058473281030882580956217100782691429289882691377938004786272102444030023245838988409186582004720745760385810821317708548845072859722859153037377465286299388262413436652370631934238655173030861765652775091858503324900098623584723242512006998128617235223326282525078915665784658189885148119606750686924796412062901195942969682553878286599078731144204583852405905667765257121651554191756460015714029220448344003025434002050230651799436646649409074652222182327218431981034352686687932165641393557625974430827132035404711549609146084175832855736497687417429787165252019006468156414428908064477066461612404891083599079316156133498921524133514950388871731417713958837125823082176497869378934549000364031404847584690049342781081734754237666963947569298381466205971226380698842395135803480634516923628690719111622952077799156537796838390208212527922532740471774909957142139655121298929491656295409823161435381224628925020987233928216090954384746187561907530175083479607983588579794880633222632107910388738202780894497042282675750218041416185268725923082858885323586738077191067142969478745219990226226697454333588113008107587824332310842306070149162085472134228166394656302128349447947184984694310581782463456042898707192698699719066232686560280858186941549077912356202946765822045174438305534379702145065573830579306852245122111267213134289065520517320146143704734795948595724593770687401634676676464452990445007116991865627549193526754420500211008299479961983187676603074697551145978898023400041534020647131136606007604024398221449255927664202891490427852231406066055151993262797330893649886669819437209199621125409484961495765586263007952058876321582545019571430215848962943005124720125851824691937275504869762354896383006841889032955148775841279751002353246854583640508562792252474269802024811405592548991234407824152182665806149559161166210299752632494646528875348415443510141507015754190303252659558353205966762561082659718209647300617661467471444062109173754341611043881273951527412728964990235866940235276454408364186300716816110527584558169090337568455815275761731977730697946608493529592362570739463417679422192309797640944005136469588734872119801717170023165915254297069276959400483476346456852046157197857048327716975166861015197346290260419928813344636006966201727220436331666896200538723043180894081898559369323110715927900772845616596339025497373109905477392257195579840072457444782179513147099551667874141541594018784623219301914057083092253502860108597716977155059264183580211463602956901629941175888174971955476844128620868161688167273483539070336559010169748395162878065277330363954957841171536184125863616515542832245055024666146134953191189806394277642823384175510317676928770377202751391983846161732193059729313925360117226756848054253706303574690380796606737487690197366576123370807738553699672564867198528874753706845431178438759746142481316620396156782827520315616794097630535285623461058453089951043610969099974773950792129938244658233105755425059130441101753487937585178784695877807263558333575642106994710835324318004483596499501240200203781514629743852367694631047010752864717397600787302265422836735489087419331030263341544068884300147836999850918476052545377251021944247086779956602189249768617034388313627963086943744403684904817495305656990620738216646899009053467338702707114566268780090248058940305771454720055661289927571647112022820518033880685501933061403893154719028198561149573236542035368084335673237034661325981376816947450356450476896984540481182549213770360987158408958183272349235171180237446935385320276039781059655885477013462131030074575622708028787782317525891733823438932078914450053990176279000467292350992989682956800940486198603503560988003288083492954867691554700274555048017213887976915941393121767167367172059094727992047803752808479859134704172874943244748994634659455458244027747195135743381151103615093436996402849791528080887811465231944873615396010740258155434544975783958474991361295867591837183740301045095053811119985748298425878813845713047642219550280738585354772705144164661515212753952193431812146058687575619775751273698630219583451313987224077770583718197520355265390636502349659895840638718877369172084719109974638681604506596042784045742698182371559801004775124724701913571249561849710924913343375404566352572564176895346080287364225904246089656562007372155926657365864884822657216098912001724861964493292344330192505806036901234687527089849709712148240173838141203537397597803527528648669366592919594460266606847539527806641136615241869068127680590020039613450634329873389965980074780118582693282151759861315648838262107987567889054374821435658998765892363066509754989181105144901556920697303166416045238758216145259889940823416564609967152435956530860839420490586640290590795384437882952267464253788651590464058362680879996664786022029910589289939578353489694725130865680437694818205867936648719805967055069671600751780941813515223778191675223502096837386872104409578725190291749399998021170842115430854806039156783342423989437397427063089065657087222259024147216988503048361287256141421295399348226322073685222857668569967509096175333533139152825325319573795338160824838413844835730976380102401094740251934417318800945244083815506200541031445938774437613255128618768379922038639675264338504705596933635498947842806396475057205138384678062084486700153778096060849858592760605648043553297452649424360999348009751049037659130529687142350744251375419710182863486122324754041793566141248971212971359468623980684938342664961961743373975835628755604671437202749149653822255930955026906955252850145924978968678183875898716550695940130627566802150460548822488721472335738468300797797198802687389638829292811744693395903408602206424147832819509584033156925313019618967068363008878413245865871896264764149603223470685655224864706743595094181765300529245779531696532966832315579372978851043090121598607097819828732863434756773985523552739028536539661533834296211489864574476489029523706799632679982315182540299919436761708913276000708567154610002392044627098919720369201751636012365576563127540486041918674691860521145282867926502144936778857805793877133414877965481121552160847596322964341434625506677289967224457215080321013561882824043723635695651615712551254525734527196736494546740509930308346635562052381074909476613142371017760502025346842536710178310112294910682897398466969713187516668554982942629196972885089829500028671395621766714407376582479813187000359696008067407732471001978792232057576661342151369770209798237194672885471181884136672788351781881264887983855988871645974232910596324610193005415941941142630105031866544521845386265702959739607541185120981856858163323615795538981975981211948170892026756908451558876297489140588054276172005336729181427303143153232670838312973386172282423011542020683797779896133160419984647480874034795501949241597826260115637208851353128165124525774357949303581382028959836585806522491259407277163182926030208546157269408995941253000283534351790290912690774591014309007593334603280791708844404185746932207679174487208764728905823160639939457090198824056094172127793404521856369385546737399594486162512555814327166472997650518431941965886368752631850816668329550569816170256096266434282992381694231679945041797030516311053396745797255522105348156123595321131650498590450596790716195256470782577910454504854942616505995645919905239714019705544945504057129653771815415799422119708272423459698996608417805217990870167058359207709584220206638971798009788132995594573989933659350096130458904294704278458997844095630222278188144012384974026565597478500772526162332064205153050209392410920058459558409638709517126432232024461239339080825459459617116782588661793653094750543813326055676862388707408222289939565744788674754293140982987051685209317098332597915174777223022229212670314917539017140517060971464315917788638509861228777970249239246632292074157597802980602391085614269440638369723621677252244543491670997085607068672749070081899185928633400684763076526667824938909413553184712252702250331521100260964503945098487742486043691178026403872760576199773268805913414388142903240997815669035284969999176843725888506426502087129163678976905758935553214740394816997353113343934054836791396050372516900213665072189835910041048412602030619602362297121934352275555539363693291423419951988323525770506298363081453879808169442433945419406442607784296558382154649906330341483178600922551868564432178490467863505504250821697436406288260704864896978067371123362009423992336353370246466566733773154366921203922403126483599277817663511378513732289105097939368574514513939258361852690459517729277668517268843104405660061234066002532435417218578349800273661777189434602087611267466823124744349426478331502890771534360311917015250779392450615186113553535605683288146166277418707591185405083641711394170004922347426073646222120312472860686149577009924321161119658079358203499333222498467156693690801417671206697440439780422832226414202395962394128293280770883578740421684323865124655879815499731877024865660569131205614640233976149748096656100241827116082741775537095998594077481609935782533892185384895787246342849855317454964435849724123319348422835493180161184893268143894454726861685835342815469512622359984338795607046315178438944853832625790861394827216526001307679582457279284556142032250696889085196398194087881882546040686586678298891791331769121188447934973185582176990749673835716170756138238493494162038040134536411587699054616195898730021686180367036993298554736933180339437078468458388145026389398841597731733071394087931898621118116925716450984969132911985746514057792769822466073739448762328991009460385198845838450649884937721432607264063049270443116172845804336538586203417384362096822195033864596557582846269193676611519395388696502626008221956264145299371852001623131491142866163466686913506692558063159742958993353205584219203134234007953009697579194038549238903691704695208941384267224240739769205989372345414023980592950423366771010887267461210063646178845962754628211254957374741751755379575942568920143874098632739195706610041771740791895189434668261658616485761432808140395121772992982112858803864448067609247983167742089864204597367440170463973730344978477286028869111284896518424970451622767034095390482919569361687728313684350688606252618509748327052719620918028866795275478857976386140783478849814698776956005939971072307824238513426116686593899103777748980133342632178079844452990839657059363341347953883644962413660863880900160496577750679328317086502632831040344350726918474134842614085929777653552395704090192220181368660794228943444548730971766091764012001454155754290598351824166240083213652837382503705370874393295913295841716924118471731155232333493310468126036282072842606567523034532607737405219320657366871709502573375469263815511752268879872804014886981467255815508503286664515553970665593856087511728905277748180308691294700480370229632156871575495479619053225899661994486987334054563073982693915808568195601256977477883544240809735564606399846115318727980662378978794932146281241730990647086402259754952361543163583057263849510669627727354294503733038611136048031321734730039593708989192238430975551113520808840836169920910442087885799526948704238366670336886566941988574770117819114854561700406147953656829223047122276158568640574338421085443104482806587143801516404180416051282843698736404254474184729233936723213995435348355457005501284397485091986955679133793115571459953173023009434206132986116082714821159309403136420662125360074719497124619494232849949475863345515445114224001251083755708854681044030647412027565837287249673556682071441789437460438081162911528001537313557220092686706565548960215647808838016515848008699099297459838163061220302344049897017201421768043836067976473445616166791197190638773718371088100972274515532242752524542936312090991990311359587182125387693272711429414648432728052080228786084171798339246290752047761433962739218323154880868534545021032920140585999631535335504842299395068891449857170771630249935139564267533516367583800721132412145389383842176084545904483673250047696328963763574643016217612300226083701837563407864363439523085574197382183741593484229354614201297615092255945966008944112439971797473368375736824387816589355111715529112310743651691115678924715537891704327231967430970562175861046373325345639353816320454297816773220317369214334789920029265874942829598138113639508490718804162241098166463735192871295816981638302969390272521568083773638814516072758196262984799468580209179538773071975836878466343417651808521912830927946694977058122797109710364495061999018883752884891759622651762281498546054247738349042129606015852654543945240945178003156100192472387093571182167382641587164257308291033050428130151503998713869516848024864661065183197665419060947116849779223853035029395636360934414503904434982020270916516805883193682699258813281807511135882042876550447872096388208712576161956862734666125591944230776365321835849682769335393502573949315097976240700914453260445578681323239200816229255333866958499450536531423899706809889532501586872058764282602039171379973925300855616638229869902229066508870898222287797751356007070841755949220425735871560103055129237024034442075048496491137668430835771277604001797053697061461231596588925868030363133558110756348075204381824128638635218426484430401271703192586044339929281767309012529630537790927445817178973590503975325270365649127998661622387882562418117144754139566782612636137469420494912431251904351293725703099089100945512128206377460848613306986496192368102434699815790254190649016884060004671679574117203322620188950803080389285016054613908496574356255450415695250586530860932486987408235664279508683215799984193104066098801220060380272250088788075855906603177969024274265835129082373443269526233771187365224883232623768087314025244854999039978123226448781255552817279758384355959698400129811548509847895282119607097546527973001696342090251357356037674745864846869074306898293828575308018574561524725178641198791618653853420581693687296692918450895571680167695805432184100326891696075236124833631947910102894806744323186857442720847430881544655432856586862085050905078478283527737951781662067625156460284626539860391508690601085913761367154616284527126889981661065731787403269494916215487019223747822576517570135708032945040578668990910903845734650027520422145504566208206742250713299837025799172793030681132535766306250638076575450693522665270322233831298917742859094756392928224869082795599575502135340631341679246237080765428636923377835398527628721428700539709263093560546624991936396899243553568241918554196658027460088965515016794003845740940852050839187625597829854938065206260093522439191908048277111867034558003619368186798436575291212199882684190648011126995245896955297558004473495790030721759832276865296928098798491404393992285897117167751646330405565759689593945041470304396713289226476304787422220806367488680735774864355422838295398534337903752906545894001304600199280864229357967191928406347661838244554210822621955516587714070072688397940060677925417775978652827214905367792025524846283983598702715715571310663598236876901438333819287286431264545441670934552131112154153449667291645143842358063457932142043438415495729843731249746615359877594095492323563726693312454825242132489469991829009320123352031399890349069573656711920008658329263006602065382480187146953349277543594661776057682956169469347715331612000169306079482780075334702310284228973609938530508788654513805601630108386630129406259725677161031534725611901366959334489177580142533632570994909549647108523924942655114095979319665481786260368190959889247183177919989643353415307748900814546645744458044480830995214647855083610871149000043842804401418143751401610516229556905068857244351075023818637753446739902415891867297281007824837392282635293860883811609251104654583028069689341725831166923413510510310845205907672705398208755322575089722953395703365732601157801967244487383469892006196923845126464908524830945904099138165073237337785366320899062071485551977078780796527313161148643047070473674281458830655667757394025642898708341622886081021385778814057016670303612520383321778875146122659736697757543114346283177349178832755807468037371796865761717544705998631205030016901686551114134838574628383005306500755825376719538037755168306251236994746599834062449508321700903457192137503800633803856879677233129082795685010909389685747733219609222550899807575422786389254053259004547399051333380427548338965991853190286012134750161712572229079881773698788604699890047373408028339916363114221572186768307419593204307559561283690923696916282361266959935975783900506738756218258019297419805920316464433837210774911012077575509529212739129248701031675095352452752273998713030079237685478749537478088854529624449834772597698200190155854668941336750247209023281699253677824833688961508160981348352669587807023121462617597619087115790972788128816167138754221814948969145230195301826866085420305844808250823914824765347321818368969504164791590203271983158808894365728628106983393924461901097126139512924128189691508303191874601030103636692105373581743802574027494054900225856598723362517623218089308447398253924128214072134343219594565932565184563314940642053133952780735904713312129175731922373237922705736915213206334951525422239099000018252169271003583471281557176361138326833866953163281276026630467729534579005566911793468199537859668187219066360633757681671356165619989635476657880785039090270305017555947314223891056419292539326045696432169806474958468456481372664350557991542165886065235852505713967119109275132312822085392315732789302499500156067687843566243126727378614842961889560491449262520150872858560049171890409076912159957300576679756661339238742851155301444542030771222612890500456907931113387237593626706746464876975699055508865087954959630833450215240322756366006931645615553317298900009347094494394392682316955614768893536975546583657620335247592657136638732266247192648695300904338423310415341782085968980344359625180279202848216045648454830186596428497618023259160744950010492236691185061795972307568143557094650311910342375537154983060678359394938063456231837266727017395864958506061622924879261784940060397252756027329274938188712741240324573741606163592514003173745418347745491636826729933214253537670894836604541162265926858760844533745526739822281744199271921143830135254400027819679801744232267672068720316299562861943578169333561449442363385155129713685397028504861001187587220953770928944710415467014324271179747109846675103686915900303036816618848023051964479322165528297370477297604046359872342490081847414949459505438060582357314943269951155715875117107084816534043421670224883311493488822804873416671754694244559240469458130001253761288942993883686616165184244493461601051934931578234638821595107643186930193463086699709208217336866335932586934925913094646267485277539413450529635420501164215814863094852485943922713875345959988090660891558661863094924421336481239440050313580182934289301561831355982516614213729857757112402395432640242725131368452598728380404961981841524041246922746398998906187498897562766586748395382839399571125563146723649179161106883568255280752939273649079422362268762032523832185217223351723829510259753294312812381267913025153891880488428533677645992490053310144803068043692466917252766868835207775244382771102984074569989847256668267135699938577651945590587346586913611398973893089912072390317566520431976449151319016745341200013650293846267069216356247951522103433552672869390612242575332877176868375597677449092101186592698030906372267980777084760688235341196951582858549223154740742354287827181196492517638984071306577888299091371675744004297108315628352832610378490973451857963823080720875270127111059277339090744031420878327999848430299528541698092292356257299787260690627246560620554925855117473503538725092834728246190011932149439813463882917450569086525044050026932059043684523725369888846145999237832587462501487713203103994171648138381239350360193241191378437199102352383503978158688330667442761467265789386898623089738412339804679742213364129754777945251501196287937591560424787827082718580669446210135833260030510687972525313663535849484301106285760400679723305696240007653609682668193029015639931987961634971614826172741304691886910279732475426034009472046095054329409362161000989155078500127061130918463528566701924389714800437343590425415333414754041127788053239906191583880932788436939356235360252886462083184442936416571519766823368372187093083113544719459001258465440935067697422789470444537341083615378371329443832512630972715092280336494475907758911740434846085132329403381491264977947805671422084745688362998880944270549755828372155915528184912145232471688367157359835959239614978868398839125042642739307231586462281069740761244519059986747448461481695367234679132082674653881467322329138769885274399363833857310021161437875850863630418730591891194175394610293736538646719794473617026267529637352096622144817732201924260215994919388005344003207127903313441306194046814300784124087143716791958967778334853708935633592428217394845533001059124544500701150413420999053281017862327477889505273397371669487605714165900363472304188530995104522788280495107355910301650206963351477482860798591123515274668397440417461929234912982345957594923852736405456270002915613099988001302541875727745534079935503579781161513839415895001726099642862488378221578195299396808114248526819401120572614789773357989847761703855810226376674829066837987992666503570839310049917553598258516614838766478184832694318759240090818102436224136787912980482400006623195128918550514689778347503624422153403038969899964123004859310880758247463612918781764872797151802496331149415853294814073851173612957007430026579880848458529918908333554275182102773176928087043754712081695207008861347355713668733434341730242120245607752305058300852014156080581427237053834328120038361499944528902197047371504837754789822340547726534377834675549033359333836026252853120839086576536725687928253624607145999150459703902687879871642626756288238076255443828930347369662361813113424047764347100167369130670447726283830630377468689954175475964702627088499181252541643645147318200136802168740842572137624447456267727160534545011726970395192621849335551028428918491282562375935235018135332080423591883748303361871550289877733315103874782088541503558429006008224717226416927177825376220645538142573866102969681704856997349519849741367605236443826958888061250475539982280577869686195331228043501043853909897452295158732222875249715500919019243352118429880194998476361710531078306525788545047773837381528434279461269253561985142672667515274662496963365407152234205860126497712797267794639733861634105519130402271674101538913773183418345320991026809402505566267626569680567175202987172750428512911533201841881295260364330009667344726116511619625881707943217287234386216377980234240190186656075796070802306418196343876646310028508777574865772741002658126343510186277312112801662764385617918941557604829553657505667434182548346514356848226090468608786461960365816416176408868588094933204824212824749951721885953829613474000318271188570418349620875055672843781294119740855559906825654366470622180914718780755245040765773774381668441058124654422710034520598620285945932865607353330034715382662790231298702377694918109221375532086219095291508987037432144096521148635377242953823658080876803825463475527300655340215006108189207050233045454246483486076414727947031331433743561281692207758446711834424770567090492519200074166345483336591475134211400315682772912071237565481632967506456286523517784940310941394056303741257239639158885491924223014608461469919058848923588168611754004564283601316355487959838381186363923051060641185281658266910148332159019424048940578081687358852226522618877717812555823246425581248705450402321918924202948252312323304023833225811682253710757607204946607469166829888576252882641400155894055426116164849019828185612548266199676922272017172618724129004730142410031290807539331703668524370965508220972155781798465016110867547537290609568472572816606725949654026275464338398018215212634706803652031217252369285013584162483698910451528606966992912628005183438880873725969265619539227621474535227962065177528084435193479704316930012435214377477546728170461439883597277282822327187779562310259602725148541086183880473619006041778616899747250420610881831597782779683336468532960197951523405768674318925211303501406948355823710633551749047410695029628414352812405090485417723133085854259316813200873918208999863042375980838589971734903344122063233472387382979223294451375897420764549986193050581319791082786160430602069212832168428710179004158374736119366701828557148036430658979290828611977864126049932951571499793059455535577865872921782548519701808171099088106762242094472275266578237455901186775460624170869602217894141737611062208270458178081158454249916970677991680833915627845909051883963921357854943950755081101037074621247004546627461503417537797746052113977299888815254181383340283245580587012387408373026966523912214269510381699926843825187812212564818931409544349098937547025217360185899104576490552545622262225399709106676380013417531332078295383833254897964697666403463715246402414685850705624748215471882092400939890957368732692922871759682262508080638674589117333885459811232321801844293430569037297109541854149067363116749640319380244663470416303785708039744483809490331453863269453459395751500101773911618710949514449145923266934086483152283477245986113922509598104427661673097924138078575468231793203144277809381289991709604613192863629114363158290822327406132050786904878705692793066888478634698539392488462493429452792724165703799276395170818837432865508670989167820799229093697040993768560268598604995076316739081198285422756537924021576591776081314341641832432954148318569419902031185471523398402925404150130859323262256000005193098140307244157418544704600415234371219405448767258960677410545330382943234728403652497606182578109137741771264947671007098597177618153137898593583927666148075551415071928094269327535508309474369806084668591302451126752391579384162528963906684553412023608055585362262473760442353254781954976299232858735864377593196343707328159969801694163096002262749406108331540219470449960853843613344263370760405169872570037516598994617485541108630798491752202108663617966000223011332537030899988149668627116934211385680802412110689069809435395664141617156437245453169772817922291464616121272882550299904587578493989822928754374354565827448970496639650243108970819517883727426880085861747594969568793383087892598505035001754212441415532431144863205876589779732344890394902593519558566724161838222895613919979836434246774330939227284153765264854805900648174565787969912648639982917738603161265213377879849641586577517550937730079807824207029914050843492731561726402012175479985807893327397666902455932721657531602131684433050620879548466697447502562640261522845542421308412281635021935907039258175054657331745829157010349079307250747503321439278824366886705075709283992913477776207385977696971874493180828665624087340906397076850204990414455423433412303421956612692773093734971589438837704780586456071355773195691082807155991415157015297078855509676252377053482910951746445420006899633425814282707612141316017753165741442592926721009182256781910162320016689627532481217191477807693028555420776552927496462410038844372446420703995121772206383157845207985443673656932227222193848037069862639729623591325110075159735597111726090773355347544913345230745276687688969464134236157268253278684329080175715722643753451259910191232979693407370323711358690608578942888810898250975732057088702022619250651693309007835587735208583408991536131245694693539958347320381719730144302727264817592643874427336743461615178451243268997229770934314034673602217789963488163571197849965952187810746815560364558647452635669312499089593561628804507308076307540468940572066794855708305854532228554314580850063428360705106664171046417928176424306926345737335937783961778961157580244401082256309834465605868857492551774539336781625806680397412098960469285264375817536661774901292116004477842316324808558298414125718276307793740839476814512224589560114569771348281464150299027844915810308217609908612815480338979902864126096367218886246511899662086904356755378693582407627416288848467856192265633092986674362201599446380687319511656490830021790286556102191808537529214779832934094701528614491533347375783871134419797833221741338260375491725500660693330282492304535910055169563942391401487721408923115753276554512475466092905175634633471013041549741722658332368418779313421866622102039287628742486129431566760822643602389205776634304449930699532313104730016523306939328948555348842385173673030131522618717153461514244948382322698448207182404800631099031289769074594090191535040007224135709040141790068277677087219521501648454517395668662545427937789871678628184337989548019386561275755569331153107099264328417677977437922228106232138790081658513504195802641679912757840098883050504299367053824886780542876565586316881630087054657839943610809290882928977274971829077704649464266594083404597077823809186759819662361648513690833027030560765660206654296769320971818384102136086149651473385368129493168811239153900970854917011007603100280851087185730935942368330220512297972738093188602558566113513744517444608683449332746998650944832152683519922045809877372216907185682730456201450961202180813708312840804878618957845407302281678537164922680491763144007806771273330703822315518014077137641291101562704442354850986095174776541190640763093976296733528954614660628232861052323273938943274660182703773322963174360453569619447068056488349023027001945335024524870487805578665528520691767592449223961330468184924644263856491830924284993516907119165848481998255788930256352285839785221742074734579872320320874606164515975375879204987579459759019908831408126943539798315242203125190150613318193140761991066357368181529364207235366884874880740738715448876788247628226960129271336115588816439151341693802598941000916104917511448439935404595741528165292255126889093482462699242910234331142484982326337678775291934809247923570499834156371883628807156945382812874731905039536619159553483607276151410190413806400931830561025082818332643868576106462412240112035625026752785099597122893115012873830451154376402860620759341739927865751944272645090599868613236402560669276601083170115985785326969097626995840156068800869460450571190017527645629431731683340684819584247388289081942140826877451430979133759820874827862814356040984688380538441310549907492517300514751171933323154256319857545862350121141704887342501013081298825861238787640510634836874977686814315573338053280348026412113904031961678338868699695622423176339547230362878903951702910707468861416780418924421723791792156873024490314374438981430887588873673674942256258948357729607778120631561296226769488487146045054969530091539210741739646898545108923804163716398652554401798209882088248315613722098697810653378391545385478971377150760681710833077825685176951842311238083646878001544142349730888794111550343573015425369704800350219355314368626779763595066379337505483952236172869991150164854387838335063539634523203611827888969253276691475799950426962063413413951868569998042631169251412296617693873263752844516099172159173299754944182133362168736066059588252576408466398880136387461220210818189317076805407193965828541838308898057562323083917168256653309845692221879754378689008035270153962205337096337863196140770973683668849803370701375729740704129912105762091448858988679469940363687861805092272067888582363275827511681254859954836630276043173686282620534215855445409596041235747199926057847858133857456777979769898663808987085918908826437977980143027602314305608547588643204566877238676406305352471052792548605469347481927361152932717121376233404888607029866294900010931623341437027633406040675321511076205988228218976669255358108445069415179371415391507822774604744271697158090279637616997638393526439382958711534656941621018523493197516404885765578890485925313942806936567728641079565209649402578104710829522843398550081585770027091760620271931750948554419627683370590013634203216969675146753585048253351821270420403451372108219341309051309219885301438563056866841748062869233783335457323448042403410161217757831809833553517910695471472377215481767996442089218449486827243180142071812811476202228312290977876129396967393181738983209990937330146227368624831278452410024952077277997791814608829613249907260456046646193627364142222541912157032813283436896946478446076727551348860838496160076652248054014569960105112767501290313898914283608990509247084668476047723416543655788552036048540377907431340236675540989502153224084362123793904508889361239104101479719927027963045876411918394984183863198019690098348840395791837877728148207965894713011139190159011051803865711272190458554750212999701618565835523550507372304652046425647638442879481767242143249944254194196815760114233122909888246768347207452677903775947436865822397526595900975662350533425537150888939262014978114407757061108419843659286705640741232626066632512028467855158288058272572674006925154179692905450779579338697726202587307838163137514412176326541286541464454173643047948429665047509398534183138786408192694484320605367348972594009452054257047607826557634241676385695505320038131571702460695478836149451950513454179621054526649066472362846916191485496176097156736055709867336389590099573241807564178878369829668507923570286775447390040780393463500560884216496565198012139766831725268388735064870427995589162623383367317290350906278400876366511441728212672901131671919351447012799748529313624127758710294948788245392002962915542933204828071653796291093516530936000473144343126908534588446999564776288024221500438039810798975093632163525876732070507491985560652053075768741454714240122881140091868578819059027339572397944291960347670893323871723364314452762664847587971972603876244655389402312977448070317960359640154922305147608254273709859322651528982192657267740587400888770210397984441222467543706173466952138072442625521471781719143730664489096341163092187713751258129754571470595906052486402535711297860438497377532776209455339599808555302395164682876503841483561876960295563144168313869002131671746611054364497167515746103615857844555047638511006740132367184898185863864872253488405862167593573817930603698022265298677203268509414364675550587572223440924238117764051880957122734006559703747961040418367391868248437193999118339590061242531574246361333523767461742456459398759918126365278945057007521068442462730037781104405612150725674556756296206734995978365587702834553116205465897919004860214247382061563026391694941126249050764475675200911400729198339392352988567243692840956140497778034601936380889904372914132651956701945462191996020605385017438655540954313172237166667058976050042199516676826508904439818906342573721376898965147958560051471750733040114266799793305735715775206404074658734773068436244561149074135169743738487551968017469549255352071766898130686243066248038884214416665014049331634381329872025609281425395200934262457103693267110808353098656356570466253955281390447431965615595750019055846430421371047707867803156293901469417158815366338381918415871087327088544383724827243380802100491898210736251767151108628237491400030423479099685823055234258305099570395263055743379107524015716755895361131329587285634173608238255845101190937615216345972704331915264673537324033711278001673886442626363519814347222896985718076670030896328903565906195273015328543611221316804853507809514532072105247879412820110701649294383728214425905972419675897274490920104257026326778211713039404390456176535700636027094842273316900426945831980663894951168784209508213824897550622370563120198591284720321033895108716189829610763296870030401051980182563988930831720990910187414556320140116502041020760135580850577898898990975367688039455630508365195678708927774307475913206526392952562294660484220663084209974711020406123668948864583443847813896102805150221799758666391392466486110611111098902893390317999993629266142955593553002678458359424861651194523712478170063615575930365539475421397062857940096465705384603560068564341266587746917018752408329565874707167688257413646050494863646453236551426185721396581881845090273373969092231884083587821457245079455139127261926585654706117819170850694815932254276162192747749640831903980376870959969258314042206052001076728638121001819573065934911252066991782915370229369964635254611491907942938090439449829667054140830469549475400789913023169035863961198180085798357780379823699012933775792076956510007246617946355127769725336219612805395218518112184115963477439663344136529892457185558225271317014837559490932242036226706025680503221597713793874187425611917086319934893112698110566540748918911140583708198112314309828264077887411424683996173759091055414493126886540760509952472924453520262211834702527937321817867799711956027284892113640158933388049200151689915244003431115653013166300392790418155204168167872113985848765248785287242009596593599598843535532356811850397729148961459613612342867599075273000201910781669623911292508508089458137113351780398068650172085955250053310593828092623102955251512023987749900428803493837509200316151813434799474929281130936599950423144789843321652311622076315371230051369753419297716006561424431325947990195738298581450124761918676815524169523652132208805259062711834909682617165714725605463142598326338692928572735030525548228006949647767838710753413926270686538455099949749726962847092092808863457206287907207781383435266159657652126998912704945781130263263312841277910089094779300614606493982681468599509234763629879611603743193543840696429962240355259796691124156579682893944132183058853786389244096553520881666647165804965974884024202964144148050416099661712878508655185157139256921005037640876734562195989003526768341193681580229726319693182924474803505523975229285540109627565441182897866141211948012313214303999243204506617902100982848612182281272249795261696034474169840465907456563320420431351827334625506198361172313662640081626707888133734709598336344201563817343253509187020065214390897941458553533858544894517693265661355274973938099975975762173843774753352083523271103115843389496239719121182853909504480648716676726662001653280338627307686556510845810522923844353444172057535881011184324842632073743643280096694274971411589651434761168814157888065889794959710934316708657068491975000969171299516319427204803527145884359793425461757553242792036271350593706780203943104006347307500768471496997724666165751057472208720134147576623744203496199905921384653059295925630747527579006142342481758674102677519262445157399578816785608866393918017104266893481395873594546134988018376453599709796847661069425301344494656347996709259971112656803683614210960798901508131365248688631994323310733427347720476122565660769992190719081262910466585757957373158383545308799238258892842116540777285475647469028095417148398121004414861387872177899437441021275310148178773977869426662027795940772507564911018249518382744340281084169937162902838199178197299413454151341844462555794095469912710214414027820718766576412504274880565151832483451882171415385564257355820174714387379403201707428430950377552865073977063522489326192007815773122005171682827306373738028874603940410277061303882847135907432770653379087865988637256231263075263754959130903627457000142846573996979867920531720013840981224805429774935139891455764102449199181542276692863355533486906846528297619787693189382152487305215075114634053661580787981574847241908815188978320099867415211409719965232307999270248134377131463063789611488705213690888024637413427513590888993326289778669346658537331573061613819145587005640974017940654529003193203036231494672331163697225971883864627905381202491318691815227007836411999248021498601095025949032008494522130280838897161921537772536839776622821201790928127474680895482196941866118335548606557222526220469241964691774108659678950556379208788067951175689332844003211745249399874381854704201207303720993454903624543792891502526044528659124494819172817300926252415056425202109451162017742197154800475988063140562679020327633167328941371823084376351246236765847791611968925745663041417368073649801122707076070788533820173634167611767910334824163623143202999972507657249672988624830378114761918035374891836548542018182475944614935118722803874601816846450385647223453982793583673937407983772673630956383739507823949237723810251574317524861656286152619317543612899692551800256054902084895564598628901390370412411734641983794262524933852943838632433153931846322345612446348413054662247030819603874684011501062508726622264178727663253450495205556103798594719437413550720874070592232044361160044245848804988190889756349562143311558314953115627154942138681243431851202728053602427780931476784470693182873723689076956843082576747663799508659946647910772433538470750957928610748995777313738928614140110766319550241124314904846510727838199676802003350578572149207830115348733210297189604660380622618156033432679704767913740700074318260575101422868133257446435964462202262570659063627479808310074484805157762136734593376354453026615227227125304842436578596519533721550479876959219526550589509429804771713634182326306322677595823601235537766352809576839785460247220958022383547656847236819619894107611098673658146970101710738665824237379318580851880585436476249768600632964155389267442807916085828789123673794222021727299674039802844842703863398913029515535923909354542418580452851788482445264496200519168281601987192190972557678585222200620305170897863413886392579838350357678528352334813584105235447899036077001422880771044142429649426412830831401932026135873909007389749402605529182346605028583907055457027276970633410283493221220567161751132615852397090238171807146021307618793345469582290819784374636885943313438627262071148735249011566767839330024662975557259453246920373141752537205526849019187772110429665964254918743456393465626496146923603276222323387196980863944549543924268858983046334231459830938212197870852588881368900196341418345282809406622435957101457614971530954801300754583232371595539897014868061746049119767452466191067691289700304639600966310400304816194332157614358464864446507209644268019498503697113711102130626391117948956080080178402031307705778208080299829784039258164350007626704082312962059090956778522187233140745864130992470775432493136596662488290498260255183778521971677860087649880767995651334305533421245709509985921619899606751456704106250710830989742569174566942877325612671371844234075211578045142007891714875625706689858062449436246068344340303074246463023056393798713044921089015729281405263678120462838265817346767609166933821373080762537108906271940285221473622721874968259466133950674920103824586146023686687170219202821913579258595702808694643779465971009728376878016641423041002268592768620535290956353348279579339907169862552224427196967212113781030107856058480605061950860503690547058748319657541147217477074679389386904269191117058473969854577123833107399150027430469403737347771490486327663801108543238475733627991508570281247638055780631186655754911358561634369189428419714178314666748798719742123973292714250756404573476122778175182100264591060707461699651169179088855697210214362320921757875808524149511850081812082501158297128146516172716375138411177673449722467672026959033703718044125619679564937513032075947641579993492048534875959383191955164530265792742667669137915981683633885547710402349752761911245376376198120459896619953968554773206153782716979880022442867410813343042446083850494303422345757093734824153832688367730048051536822028294104501905976917125349269353827481523884479974149238777510782156513982394026254068032484140973868274404398759253293652058534800880894406577736452925941872355462828300638444741348274374586389900120177291458356721334498593377065292926323659104318610387991512595780798911304172751787317013657781999529327144429900744136151746701817772422349986623320028674954585097345769917290604795581124095767597056642299385672887877839464023670704016529855748629746673531806486903799712480849531468585398775067496742663276897577787628544139725430054631598108988724193148885897454320536907183221981178775035020827833422298285845986159205853483530463533067442493340072882072580189335736313442634247270229279520179301680553346306731643222227813616245328508032864061849858401829581221080234532123442572527811062572779819225463051405433442394477043269255514935859875422181046504211144980683771255543096098905538451989317604777460700396233145617511351758115485573109137732470988223172972977868208907898789349014850253990079247004904272729295604395073490642537854277919381526436103244189685056508369995821751754148762630877009969360225016555335478044667433353984875703510073572103881025878598873124087579362172944525288355306641524191036716434580767730488600950968156395160010917541269732997567151024637347274030422728559425250194194059913766722491939505784434877032384915884522166837535458147863281911773404275377765967973865354229114928764974236489170899613536169529624270474029665081170390308564298901932021447553923766732571855867445063555051155175144179840614261470696903899516342751148196292774483229765366284965731755415929052114161391233758125809688110550086085059918264256691225294886169130827003358810592179515197707214440415573422698299999366089086817109648473764053507002981344379191783759333922236113629112840138996352767037316625373535428523598625711521776748910080151167796181183319981888043850469604539188689072137724229518496201282294956910010611814504249915151318606518584535298793544377008493280469968406637115536545921506077093956245711590518343535396999197302058284543762733280734016376317527043171280476715705893733794838606840792554409542253380052473054367702428967464596305334560103477818950864928965656403090877152544712391473685638374656368589711772443226429200479180898401025324544851865126078745373042940780345905463653259568323489335422401573125216637807265703899590991275062261694616870741778209273512769448474812485079201118239281018997358595597381785326066001883892802820202409895985818648012405927465913236414198979010734278520024087138807631886882354533445267862471094032383401435128147014216230532063920068449879543436487374819530583441335423929140991827910780415091468243410680132112305047578619716032165878400014197061477734938261952910340444424540002551855161257558960709616346957008032343821154824324389516612844345252706950235007065002705118056160948433012081301472271559965536843529203519587234582393432195207575456885707709677629811066210065276068525083998308938310980773903046276871646198363600639502483463039857774896994577694960826235909020499873734352977578733190269732448801136495882001496232590577791847234772948871346784918632203006998471183239749019206603049900333278367129205956032266751514508284835089710606855131239493362914924392142387628597547351866915231657151233338928517318347603564105205615222212465058198263630327877571992337420311858099749332945496143282581626123775596358903782491616132163787715786363495524177823397955346236367607420101868733565576799948744636783591143502330677014491511595486562921229382358708178256404180090897924456192315215023458531257300197301322150007619216290747192257519246133442477459118393981705702037473723069945835302613923995409015756464381649116472127612396450213911559479759725948015918887993043061771277162792434179258300127154945324015582815141484590301233369033541458598024456099487830781981582924571027682777664051926881895792552771406973624219690243469733921213274813921482238086934881481176276484130410375309167112339133900433823598105041148887243599859289011601257156526905196504071503112807420108004697292145409973910513903739085885391404972175332180444080044726642287375782979209603287163556204727631811600266052735333252141268142686481608454653524453586031696567592236597127999578147123436358152540515355297664315132944477502688931169031926117130195903856555175304757348616986133828405354275591896093490884225754980543014047150478834600238478477389125560812929584949538934596587614778876762585908591293145799468815556525603837432656701586815085956035089004857387077452077811529830743083730229226588712664342695979755759674793934915440543050650422468295002863069014672548707969325828887892187744776548967716167933299602672760578342618433269554572080511018271521024199691355235188414271478003541415524000176789780420633723398312379507154290101579139683372422955467341187389325243049540413696198254889574371006745354922330662804982345838142124081626663507176346723527722066863877471218136034286741861582704624634470667739395335038048165888607305178923634407503941377712387713027455872891194800723809669651940442437141727166422340111248437361691358804989718828410011684394017177223434201374721889963625453798019448541983647181236472291855213832704583102272995575276075166912482516092259137084443818709248659699332112947798395031403448944596980529136160649520077854377331431789360549601632704498090164210347939011111519282927596025086265820834803643820522205074960448940732060293187744683739976167142393353984442062347982887910292814796664759233964027061704745909557360065562160413695225813480552841230592141472798627411135477501609108108774881240304140637446634082479874636335960780614411624154046577717591057198172566226388321213860057226272878763218641030264355949156753814140579106916864056132085996084230433648866450582843163293460149308768064717629514331679031539808368218705962965563912432126421647911622597252623412332260414863500785875759826014849599757915310053489475461369236375340831383698220679721035607302810192371782855214249460875338699276292881295228048195776115253839639008292724650149750697299917599347908000418808863110490238610468798783023732948320000328436524226247519260449080577618164200996600483617688639587501941126511070603174384685215599317698060890150369927813851678865962656957166680765248395324899888837493202617625803206832213935840372269359914371478581000581625674923362658418264982075711387063190976198703315392453352954974334083496020570436554195267034638667413758999192610039515121703326342389972218624093546354417350238787629320560637106703024431524005850204375423535011828897462657986665926975432204965766258059763706006356833339114129117582056742596949426787773014498610065177811338137469744717057954795856189116165634284359147581059295884740963895026680547089135408091299799465230288790258070290543817542255568290995441086058554452709465636346996655930333975884396555226742118105233239132768904205456172697458703511282155793797968079120332844783532343213160488548479301256529054322473322224672029980193674236925282883893081215380626411503137114131245883332562168034548237733440018230712413653536136890559187148362491822159885494978009321826171479312966905455288926600811172140721349220598183202213408354899353690564571338728744294458815182419941185962502340035720620549563958024060481101272720769865900881818480090138545580522928214401873066448659088763502873730334590672644392297127411264415177906256558087088345950235531328491829606118762716282220523270268019054999619651405017800042833809076752108137718381455471518053547974088818583583679376509513289458368464456496600868016479757426887080460618319152838484911227796039235337688465642646308957680264972988048748021954916436444271687203713704362330315556352276681068912720633744965819228397869900347270490319504532611631690858699872778600242293038846267787546143475446984436647816074044994400998320167811842808786638941575758737721925395817213078648113334162304231607055544736312323866577243764552708427705361099097205388190391681837808121288527618903725071422010106361578142826267401697742762453770076949630987630131731537338576278837348917719423258441680428642348010851124112302342254556736184358230566157793974064528262343867237936143837257387624293689366390441714486231837251971487635308416707443962594238965423807266502587367113161560769973167146628909795085269669732732091851879396626893481216717572994453466875958642913704049863469713043813548952254998001247138693018246386761615900523704659639973749371042027341091416613231628517407911114566701935994073928165980814895584360596084693508106001734820461715806339795553539877186660078006671693358093319326919163806569392912574879455496778772310030547173367855394847494493695136375927014850452876926013983672852144442481902655691606167845205518600298294769177768429258690959272294658174023723196559765062522983480419284167459488655084017525739323173615398142434827860289666976958571769684496809765842351327470000982484462335764872107678028294181615507067575776459273094716283868647452281954624533555184650351001674864463991992789561788096223548767941892977861992676345120915299945220645495913143515052738223657302318568226850964544200402277555849659200890645218863088712375362912623708669504079261314441055738380999356482266195170557159235227817298157796544404600250670570808504265174928913269403155452778988176361842990434536611525506787954517171040569619959707106424151886165996092075982227504625991445899156706809783337962749524101619943847700158219678867509813533247350151049196355862844827419402110847980332495532910231197469877090278893047556509693710640668169737559361683008618649087064560510127123740437926525649547033701255854705842839964686169086003950236335430733770743989232437780322407397572186096301978029040607705991818431514885421241991026515286673350811359515082697304658044637675273019065227522061149907010029177578311725268486257238963701585486762310730296187173598726343828260167026286482243133177076353995746195628783828458960742620937120773207309049123662609247481989964872063686308498300922637419435650840614234139592808104141780771021863661097240105235325401888258232515752618587655102527909285731002103479578316958556644420824886043250987538534562435846369455254091364829296192285766763381368272472393228589146236664650856044632454268356114666494031055534865436751160933574277997340115254548129692991072717498010319156649151502114458258346959909517864174012959690392174365212896048400356470241690576757339707662404444100852049564365447308297799985170440526673720529500237703012109627412077588619411734611960927207089660545164944267755100828401026263582741785075112629085172627068609124638946908868193411666327684161076888588639294610034819525087461299807400401819009688066373992927121871868195566546924574216608476806809888597304430931390218389437480433757983860360631153439005875539201855068882922682313204459158920111163005037942805445607046119721872674451516619613706116085693326527616973316255916727057941813238629381574395664237691813961990544302997200707674911629041495789582440514051639505224865117368754441641088006318862248803972351115256522280738327356475867345524464671212427395411819681880655870730941560204964442770264138899047371882342120086931912465509966645852324646400040344630881047259655191495879526738703244572111358484954928923962134001186198959074817299354589567364722156179723298599512453659806419425822522177885386786156524020163796036382312538184936534820534402345871781820331565781710376886159178136804835421696397526936153430822762432115758670803431422615277211144404558623190424422620642912655675971471689793080276003581690785511166408131136800066442321944963828866319427857985409174541430820096313340934396692183085512735494424513737984601014087170690582452975902994589444937132292358021001564021555752346119133806798067409386184536184727740450544263800453713870197628433394120267488223028249737871312737942968609292513024562079125014937579851923081933245420082981058766483490269736050257072271009960862667217706014493839379214335503241513026679027375598960309298641764334193778200192127437275838438842936469475803887387761228304285715457283963649159747135502106648367700066330938303624793890395733922586449927404151194948635610966316198458372136734858283622054765855793023698946867708551164448486302832545843178851284845705151307596209664027763088444572389394998850341418448697228064093855188719413385927966665448068167294273461313111197248316993726630107101758856447942041591492393044589035724926537871101147575379699396551105494091335196066184611037103944269303026437926819499961652053816136318706247372315578494625715939717711744185639350829139951010614698804777764360053046918112653800112785756283273815150291662404807687693088373515988500271127171502919930006135999269015795565736476707296049109629129835794738712635514453754368571916676498937446618760668845130011831864532676608253116403398290392203418341449998702936640377998408846500135145836486593521479478017777409198499113654522881568536431593033899757788909238737899412439428062100762074160997519411730775341980861880673534806669690383376112125153706008458939452577162433063270826508231631467520462336407877823232584346136736213439565965926312714913318090478503335215194489343069899050961507041498255900535591051963629726072741453933000732499392393973381761473587711939809703338953116267422143446291810895401759032650872974765324984311916954810415987642876517804093894931123368675898180823385612041766965935166827104198168065313893109572734828933731383593505279881620481993758987051075403211800862430728122486177932201071687287786786569331314155960027947798070638707305199404732151931818114920365738935003319351790161737057708627545090914142270196113992382762847412466948135880310598792227575496263105913897387986521997963986461273699887410998520540945821130018035536064013841098746338022328055508532435947764981747987177245987130219716539735271305394382494094999903282823659450702602607139441050972204162292500692895631885266728542038011303298787040666435433218803405604177395841659419950416195202539870021503823104987785202552358257486299604561804571778418519653400616458470602030003899562630701050462229392824601990007749121954724184095792587941352449886647817556962452296982783793101999104130104980742586766669344787596562228624739163610992206069591406211951152871296928351478145075199027911651803178514703823811967626684184297142483125809193831210039884512962171967249892479680134072775361725655362538131651101209713293569772730491033039172104187912932813735036688746037642279402310294100173959159157739620387328740085901932138462506573534517054204972451862994747752498874220246516469666499997371503426909784691741919328490283993026685416660952038320496044464597773642702241434440476554709828226007829271498790500184879168107552385383988280051461427542643604371408812985818087408650029708752915932257924957741472692161916440903314404550961667218992679497462363243218145210843909742096672390369021932333916657707303977844308716568389655122408653687559570137686919877156680386779311449379215679179641408452665534858122216281224118347745766398784723368677625686704571266385862809644162748820791264644352329113340508977758792320353336883601943820810775272085871603644589798525428994386987969657465469252913996899820853622937402351360558015122408556524890771978236647137982449642317743523328335333930400317072742524382999902304699046810463247693631366487286706673988487007809071580506250143816300629859268741918534377179971529510015665653527629547958034417032198564848721956021448097946051448000492634575768435733244341445166053926315058624471254758109709082920739530213260317955438843615243271703707413527367135641514090746613797324564833982758178695266836446128912767105661521549723194838985705789332668361704997239132685520112194797520771978686692902003032165469434980097204000129091561371353027612617572196909050645353803287400041926545276549004506618619263911190389243871186447673714216260170797343570238358400901837781986193110082024104446328374013362730822350270210956647342383562992324569662264727149585887288209270154420132337783034982891962391694374637637196408745758175904109919070006054559271292890051482935500617049874056238955816331575940355385180414732098932527225039969420445907823849131545063261728046510181891912047530688170812524568270678787218282873953974224377231865098350235757566069136617316873952453649457449620035752251584225621764230352152414489626621281817171573051671519262197150369599143231552641294695930090586398248952996928163847287378580690337540898583117179202064391517689186040367911686207515718571499549024371881647728247676237783848062055319313065450101394956349674634060516606390629226464880490876672392308649718650961084465019664329742193625754476548838737367897364773053104648581509847194675154769414549687252743703145592214219682001330345575592363566038070714855297340818708478345493774533104259396749699614888211678951172539987468853529985695849267348275542131695772048866863690373465890514331817877417942420801151799323636103462602789033734429123743063738673256398854713874275305402499324287334672123575904114247885782123727394216954456605212063916197825393954960401145118430775269874560015148285598416480598576863287954171777344270100003441201412371726707436739829250840453296224176462904018203626921618407895817843571778921493921317163764855318091645410068984637501403538076575395752109818735421324369964358589052528588835228622028818723753709455802691430383999255713302436971414485912760314802839173954953675373070542800164078852832420985122743995764803278331593984785047897165561656470405476273686453112458391331144007535680650475139525360630416987872947461327556665037292674553755974406758870133148538441750607940446110558918680718412093921761554272126647235748921060233016877524364247187253962783441896283825558510428843372427813858586136039045017460585740129080015397840631215026780142596624462686567370544320925216839140150702583454737507758600228746021817105304761890925016729233639879369957797098932779144165031831371803500011597278789633891214173212760764394037120968299843793226280986079230519053384296458941807897558805125378432665479858471746288611326593261662468343706260035784261191889710123239870584137299935686342896937014210671528389712213073793024042479951697784792704336696266738234492432027531768367056956359424758542757664923778409078809064302729745370675992434057727880544328818067966109952032975879096731186439884262235158603655581034833030762427958157580341766100466772480699635277648027300032320042198309020435723127758070623543701466626928439474017896131842957518277810183135105228467879885112326191985037345823785380459982922183174274109431808465564028507754818719194507201544604231867599405716337242680282500420240094088316606995060227627076524300917123289520905633011179294274301412736180460100624826465402871688812339416259500980284481332962127739719735817372149681924764786706183658313919873265200618954199810888699907898864045272906807581758539427984176611928275790549073505660438573613671813793662715088512167004131178146076261191483754223146167956649776522090772197376659082585271551622700882242277921108536808905369170489490232798966706855723896171137246173729226378934904650344128004641500147401751349694541435007655105792807131478808013517400858843993684396622232975876149348710263573970098987864134504131201640968565918259381294801664635989301358666699669854985486358768996706247540361294457873514402164629809080889249571640851127355977947193252488073351678408760581832832919708549492726157244777038371734798910278541555968965385097348934834887941425955896043002106682692836344330941797500111236361253206286239420275876210505008525693566004456761228028522418544100195223416577040135699547254039453144713471331061380639640992899781468641661534211502361997621713858891069790388658404567820127806440190616637318105848148024740062474316365148630167542480042635447868121432126323141957653804472662246474368496610557350211458407811504728772366633445787159108001994384767161229835315718324397797303770315246234024714907265488650169784128803950957622096011760833282441462821407779723297758786122246602186557062047641749429509182530779595035591335883148692404301025126012983842713931867262758287382771282114009956165019267276165493987911815361704472230114035333473912313907427036708776886667387539016750421505121423517998221919371623241516934416339031321140788877053023710502775984885314456876578811712359669275353948257447208205677198278346928211422941573412213318787143912849764549565324974180407649974233527308704983471639237784636872642832691467186191242437403618943126863939403130954456954718226956701018779278637893556979867622511535238035294784399611489609396916639216781059804550504384968446882195548635909009771257640548550940167257354354830988984732717069129971610548237683376910507108567390574116378053237098364156916294197544291570802612759546000695835669611504682075020931940278235611897041278191258166629837993018327094635094261611311897904447625091676127766523297563192302305907331938105343308287934068922699669707290628958329822910780893208102648519068167128007563449161994085467412560181990619708446316364736785120390140510861694212260140336152075366987163824216336559988425522820587104292479031374258364695077281474821203025830475520734073233710094793349963666220898794847707429103221003978145691231939548432557281180609625479510085031674786607729784214288349242493042444533722960617250868811941465124698446571304838360698338159414280066883523571910983336741482249255496197609461632013449244421227856073990459302841867181520657133128913400533468096818893487139492862555813114109202478807690855769830892320285751137252064580707455962460142689099989136398316286637881536166905535556303210765228551258554661011144422185366496273823067477040439499887032488624471076080308738968442546530150024494332385463877944781038145089266518682789476579839046960858930348608068344603850010147623581913857090557262710987005754448045015865572886659753695290514003313520170220981086946956101729208328923089977342104092475246804874140420252372994578721338168112919565502425938834741546349035871611056811650312145151258525437047055810258620795367129365623561630761594432856807651107323750124557465323428947864218020680064224959647999471229275025158326243485927136458684755696146542728378915636037543413955832157345174854527054249230012112050083867542704131668159808174902652316244952886089682676650741161698852660236286675160846061640000603700831261665349131710588915051962861085630147951547022791580606526202479809731270597685914149864871692419417007068396723241710630423490712136780085009691025532774889258950904635964921021329459800758998143613783676585007189940234587760919690994531410902977638825987796883596773898896353172607364089554674981480027685541927657713482183287275514164569787939003698775620296798858757436528315442711331281190100644018306711083360587592645533321347812286967919656270873762680069185022552308215686046279335909203030734052830503084062413959408049473097550825512818577118358349227658480821690257428516779026323622257861504405497804924269782171816831140386344360367406110624636037966025733302529239640992851911096809992064298542645639764386134416066666914590813219162738975979191281795920322020683220078391239601045957358245765000607106832886205653730637277523790733115217023329506217332999665250966901582680486708434403151601433743590013628652313513633120050089187678908209497457595569876851644016308112064209700180730874405366557575577341291275969335707267043572554196242729573291450122025749444182002381720060828240128053104808873929748396896861349723257644640303270415708641479276642241263643803725785515859398978717660163445347625017407685610660882163730479466346503799480283503464355287712191512767130725191053399281686893004827256497634096724735630747932603559392848361422122482875444330842213606304200715663839219261379401707257688218867711474038298253646234801522414536700964858983533013569646086750468517366638300965552382046312536580496379230590513480167491269633794419989570019711043667105132064838735388465585817153529634371806366996627312431225969566245618921303090957286130138705893106641573277572817328584299771709237891550349689769942896459999397034558768019716254628691111844479204654125385848084915342792162054824635984647469007887122543790170305551341171492307043671363842325486159116974114013494069792447286269112209228668664884846338120753064498340265706261282999301086353855461412120262940095969975003172411001441656652473837301525149474705563403786232089361946466813271940897474234979222584493010595338455400260963672715913263999506873497469121891098239931017646389813525611607692567747567818943935191079885064924384016237688049822579581951535852592053358954833774455763358914086500270315308461086831980869224445597464178287991575833386320174215404528015112910282454787501115133016671612101977134721752988406292572796508032785646759671301592258124912216628682195050090433917673480892509026487788512787416844238540059903139431026597352634742068143000566054654788867053597323664664574632344322511859592902761164561806891449793110953252657545840590116543454823147047457713512995882572378175815130304479717120594639304798369366258989146027677787474226791858714430085753685995937606769932144816902051440400666145182198171008211115491170557329802179701846070796197525488950686370748135326088882448748385429995917749802381255263536436455796754625547894634818046230324141167773821628760714897799909346931193218937296436715669943099737145591825361420555773255251862590878132748169033877220426358644514997406669572175734469712999224190604423871809969022740511611022241311111950653187762482986269550541568963605981575455258283193003548917850128340840529224551181696822202418763703401573593533858247218523211358871373735752451842675336462836156598860116937742445249875848922621320137536670313810993166016086827554524618187090615211265351042703318304781275511064549135847608400766466881350524898405820233232251518150906191859492143146386367175071259851129792727123086937791108901125028611228847437641354483188883488768398567488161565517066699166310965694706800560843212920770253679585997469287438037187019914521225168630496051508133905679467217502118670528972377974565595526596872547986953171144769415505261501921514011666709472518159235459370835297251150257361390796599755170290065304060077137963548203503911986609299114906541808451674416755161677893113010653402637213378417504757715945307066480321468016616785042155764568376433418989080070190302759274187895981359643495300286614959855952799452817085755924327071677046073450996602463795146143523678180062011309310826503188291406822134873259859576092494136421473418990101450766030968445528552042223817663217034668751973363273789204130694467909643385531711979613198943453773803916598220186763502072751141507544502418202177844466020396642262784407044305454351209686198040452594979079081206672002454600801824482099684942398482925626579943712419525017286563376878135748818914416263609279051379570262503473117769780427591687869399703595783923291993582862002459007385770984551446804829793682515275281840722758490728063733200449293631732923560242712224624831054138502074236565084087715504279245944045509135286253258479755615755910549534970040559402202405050123859472830847713791592371489955931401373876240423329141542955513211677080325337119928186297570870224907574097844144855604816284254483206345543314221547195227629007169218440886776421324373957553400609790986248431537708601372579728261752696452791977793484084251740265014325902776612696390128747004319237491653111639276459738682085604105796617073880865728200999030494559777904638567369131535251535311542013211088314754770705343377184837074054022885907735746541519501127954446951755273494113263790146696194660065181263748855948242598451479908409905834852893017824941784844499265029979707102657254428191541226009624921796118853264516051792887416007158683949906259532621212147103319102005363801912453923083907204235479536796605478040284843423559620481031777333580640107668132776366220156296625792872263536045761224367014987145255725103261505138985635664170534352691343262539526046517508789804342350599018488174440197578535894537723237077882155280696858148708626743292523918733433429655258879162225263897371091636464797854877478555023985625798033986579496366309951507160381081748403247936269037643808969343949899265160226835160183918937783592854677547759839255460476612238794206835260144383466887864369814944320650437645698522795421426624107946958948458913634504697723189178871744574813153203817361053771845766810147128506351141410649439117117000945062355915430395407945660573152286471191832234218661795442865617377369710833939706132565905536577186365315450520186802620634223140134955370928341028377193736658098705413632446567453128886586623793874068276380836921629383751148743176223994749288807355569832105205068602391132228933339751498650290637521833967188519646872224166933572434004056704511489715160566809340502562122090908232019089129237331687578815085426632894651067326184118047274637313317961477685936704604772552617323633174271252193852893129915543426043660595350265758167459678597889894233232499511527581909689211281337635354666610532404247059771614395876455073924016816363505207009645577838076874010085239705063006604283857696796887992978364722522890803028595097636512517020630477343329797393720363994693206535733038507577782980480918619031119260317936798351770279168842351224932217650837862593255253444558016490337503169727695550830350056292662637056819304797826516130790469257131566646828414570854348916654807440379605701086314937557800135338970180933007759137742378005032128731112533193964818951446273259517578714946802518133486371115190142590432872747694688355412385888184539829478032181236028144929762043556689367010337296445880391506815120259572110007799610564704920309871782966517518446140809243163445296962080178857799867598889675334360015943851292038380025971098248700931557345823023719026582139103894124734654115820348553114048986750201249759878711381200643534973765214438381203728478801245773262672606115149731672948815499726644648377655634763991097900054912434231791553502630427718173902789569442482989252871868547983542970006142399422065950306245687480679603096381561295679670339564456250499835397159729770226955977984474497086720642737540848735661504987018502163125677752825906643303056976817305032055918748148446003963651270217004312600255599423344231167239572064501623334447234589135789952135250806852025716518703519505989121472909428963157828783852890268642606600168931655706457031701942861480729657683934851272765610665274141717736507584288741795016267952301098275456116999335962826628628610804102001655353203822424435210944493159389227256147494789750147792283611214419018951698463779438972211495785617790589643066442286025283203360476669257183118259578798592128179139577544248351556663870622791846807279591879192585102982046679343840731014921737418720545046468934065913091909683986439636230403507897420093578378150203107875735738872818280310340663119019030190193112729199043904467950816972278722033295119397040662595611645479129177786325951489267253814903976537785418562630619707696868330724640570917614544412005210956970747777594863761090295079070010848006698498329081307450495856522402761335597239524220049967656780172832324844786994151099349301454431399454321985670793455606794349898837801928641094926042345485415433056642244865432576860494463997209432651063432242272738135655915022356840450498644908310239728709957691656679664130843898049795728522504648058593670626401309819583777137809874358534817542832053516771013861240400636805752114110591827153878980686725278882170947464427009505985821900596254838085284578173432914790427612930031150884163346757105021224785923565741910703478117723364523041842811527641241411950398863875757931007981422139378472634544894797163445792979199134760632745535943372621107842750235291947236461247544985780143334512714946825057124704164707729315982625519098740020561846252352387097733009950573141693254023945533911714450500182341453609394823077932662401407938647926765228616567581946360699807842387371302658775704143558789779832680249303041780050014706483901776642833589253803509369467655698134804421638498374910854473449214308298621989991214041253421299785817335916034700169398720791887400424452881059253898828793408179635532597375520654225664608811374471457654881215568974120885178526801336039968389426503459622647327342195293061545485240614208107789494551562623836887512555842218582967197252149957518267501228549762815358483690067107266173702447977810650285096121463874082869732096450833440978971257856495946921564175744013611904078370185874611319990995262901722318145717350004483879974330843415364266498493373764513636658493366396965174272500126233954782953192555661287889148071523413931688235527241119300512205268644564874800132379649996285788148326875549343440982553939399154299139990759427387444618168866681805063822502835122823621173935593000668245636261556405854420349062638319804256178121828123923408710676890453506812190253214495784237559259570422649630413383183978815585999756418958970624374344064925611402568255955986168699710606815878608572982848421512793300946538072112281745673320513369556156299612176355235955775273550174581136445589598989136467253614958516924851335991195800675432344941658757678539185326493598232879774804714608188084140774283761272065180132414303292523934085322876657335646270900862493346194948003508974408757496631251149576142821618642191060657844057131074388014783004506412120899990172190417483156168981198211845419596433561793070112999614509600935575783369421589710163365033451260734353228353209366042529567526129460254392747731499252004649022418776107745124366021133851153515679382430669731865998337815752303555867850749194641825818300579806357531687841623561431683839581008760412619605894319931909440547647590065566749815815450557519351270701870337755311006148808160078729497281190134692034488938254676982427637431077653815817806012998719723452816102610228724583761944094037964531320986440430621086305430455713025893799324150472847670727651338386025691919132844819944146324280085983174362967608959243216090667616496037755684122264765399155946611067324213029811647665975823943569487984337287493616146016103105007518205957986756183507852819420780523746478202620715290628520677845858138340849036770243549726221300388980590000171303832619087395241601916486973528935946518354714779180500711695677352238539534712954972113409018606212424931293334125718600258300722666600551570680058846875173420657238315230396120343822256577653122950206671119294652308754222685288757732957462506229388317875997324688967409056548093331581639831858238168879289666746780534475466973738474471566775572599448359821885069514568058132671850542851171658180978586333591717029973080737306513794667143743151414456558687392954442158917568325514921505745907456141772799550155440451351528489286602095209119055532144510270982631370564435437638823049178595986107164245937098237467079169620623654203129463706318034336703296159305269212011160658851362198905974046652043638294179508005560063799877811360188363989201167622190297811338363757239646737778391100548988166878371666316732000041544757692184636760867986661825236069164456291994118301339159608561480403733180415204028606251265339572744225009446104226332538901708436655720009207353100477342266949636889800593591942013386930146151372415057281329206491702226569755803930348292585224464843437516885850773861081501457599650967637321809880939958657787849852982241152128983501919322645410579160437204127246161210351407348842436807647267917629429588301790744446243821238613624556886040700401850489281012401022369732390259228504108644704176656989483408880717221276155502334609192433184418334177892260481713878934797355043013714872811217223700936590638589282291260798108945152480346822869228629699195929657416031729897905898795291427316280047181716983034306948315130845380349512483595671625862290802842859845252373456155195699422126105899276883903829999039191051169267288514106810965628372240659451534458580725046476006118206544522125580191778958276367659680378745376608267054541265328024398794451755983403378579614603371277253646729408598884151426883314876067455604807172726059865058920979379761508822425715386637071758782589712235004678786391325040415595002080039242183936405573974704512389915711549317217220665918475383065922562889498297081237608191329712136087777230917015109974725505059135283595187268284758843927415779234547282727393360679022583898981547296859413050138949668622153404964788008946156999997244966295486999975859872368533766330126594192674039087108854047342412026386830689076291109081644891889083829310894878962012903792973637979134536914048393555504549018782831575920422351576993153991478920583144825294761416188655402934210511937793386113763695380604271664614984439840571018184429726443706105204912194137934365866299688094173829814906310583082675168230804401067300503374362053589617977536199545819572849677749768333534237506095460827511460417858549344752050435060447816655270035775219206502774504185245403403165583206438141150211013398950372776243798696306505321697457932954867553837540932999175026250720950051200045996218791226034048342898030681918909816992836276066486413800155279870491515190760124845486339423242628477250070908234095185686607370546746848484117881649685953496952920997926590955376428757218126640633815710039649596797805446664140169953064691045063890453232920881837161389697360851962429343762280500712978066215030277183466037408204709597228910002519726194130326969600819414353002280165794784600038042258144772009296670736318919017430170824173295765951642170590973405802362534186517650563650161446464207917829867116521100805695513023225112665036783495449353938284329479960931945955715923799850609753645420045047358355555096327792453147611653154519154818515058910377568985765359198282722147108655889940656179617839064242536011677797873448751246918736032782965471313947730183430640193933244110806042469361090381320499432514013037550487443558786880579592966170490642846509290441236940185705068605582809511896612728437310487370195802488369793874831235454345607453747963288374204015957730440449923968035425751581618786792736725182776960448602422606873277073817771259489212435334604022884088343430090078340585983736605277079089023868313846107147254025978084515527158089013254847773376375376627805103275291469093900217431413082377763481470003544900868509594904949281643857270121130163542733482265168431272900921265331876033184937768729790244250009793878909375988626738345264559727429895684578342778645956555418412760466636116407561947994178535200449536407616239729414076731117734325627037378919899647206969586555709275177233366804819214064890093221929328738207159582948740551161598302374370937053080687807875581781230437852871256949694004501252877576323768750541992008046330325818095124368852048877118648229801195527221976573538276781581274501734498588624379173356341806025084259885669707308683227772302764198988755695485672938875008060741078489124473036919796128192591762668043194362812181939806179102349379892180948919781814585247617036492710552613848950068137809826862541296979477529919057000709935703779946963943891302980780729426471537850967386958191391543376173226921496688256095491678840640036753236924505678661699047160110356283849294463036240206651955291138185614476048946631021940250365756684588731661561823861618854551789320105071701910808276018723841730186769258702719335800070949428159034024003009130794023806609077760018114124749130816888657097316841912713806960346261658721602319082990446815350411868033339028954310299419253253932073035364772288637004265827622472906463344841507311915994601081059591320783917121515258532704068603122434743435544099948475891852410745944383144637276512030357306190546312966825854046932640143753280697279836372014652392084196777431946876017762349956730734899955554536165128243869571476660292728583057477138087829500128628636427759224653692170601973941267172247274075108650500113964721473121732117387265424189646354419412679784271342521247380166230792891066414916615753896499249670163905724244772466524027456711434239236850698592328210304465506060294154794769503790657012894094817842007872517628742567913249371761852242673427782969294756427058728231011743362910820932153951941979741731930452133946294167023540784209256067317383685092771824640252736421416358222235626668594174226301832363287371373337066973057053478494244597498990716035388663872901403525535652524642277685733453029125704314776658336175980070022069756635841435484599874877699591976662300898047912208980145765498253157542738788541800571033755551249979316077282163303064269807476032030998405806474759893605884576831291772833133033701534423253872345666850860938740971516803602807492558421758733178968588691695515922181978138970762140682026066712355554215333007507487299138277200954617495410585065659419073200876762375208384481549097845293843832837916154285384658065494922666495152725644558707526329191763605308636250350683161921363377581997391157505335071319585720970308152359877382018392752290052615142343714638595131244943686669471566247088994077180190843361706704790682773202266113143257152660700726656304997105137060197773926307936254488830090941584494305071127847525656737877252695168255379673358759252283721275756659847999019452663615857933677739386374916307847574783116224739349694978889682065882457063579685359601680609421143720499345405672469006256507241036446212494720390925823522533769163541009649083392638906466782189862720604445695044860570717136141362184931764237663769798949373565194638106235901193692474870173552516111981957533092519115939832519742442437748546151215566851040166819440798538335088356816478330467174176681841148919723323783160455340627541406050809287008882314040002846458836950129933233721934990742865131454812819461543051219296790132723530855841440759246547235775209220650554495230748749446557510256228452559962577718210536601062404706742707627501107972596530897629558213060534312051379132385753978455967215110132362258724802268441336690220381090711660025676184826915393090548479060620874516606372831200275889249935247269680354929358601787449358038662919531328021480822255146802839845039371045203583819012672073144274792998104777230549591208709267888186377280827214781685350341683847936032284530855232156771039021155120793814456227934020877744274408490909885980539977647430507514177068777300856694348160115198830795463698124931186603353400520885976690534350001658695140195316748613293428178690630290998606360147842315270428691185811177788662724719092056999628257133954939515656259781600987884216975826190711222758934101346631530898795558861123106772128007650114976842011723382111047636873777112407853961270583648677530982097849713729496019148837365009878817834999006236504625371543166067158069527065363540293883353262979457325323223696079908943431448915105062205908136424073626789213955108671295638780268350703263038983027403483269911364224601136439227954126428436880403525325166023779758047286868545206544329207368878978463625965019333522873286184497993578069218785303763142954219839699423435772661020806915921566160953362660570547160123924714369254233067076672585629996449723816042439681888317996213146788409459037051143815384675744238069734349213190801215257165236510677675766216491695521500423397627237498266271696488835403279394361456198923758880938902048777412376954799646524905417523716810639390322235535372966923161399659662613884738021960160555347911145004316456921539928433559741626583963397910969879945471607569883528203630169350040729894800478971093989357239921942261095842530882513738704703418118581971617679299755832570968881191132551968012117634868547958569735236864230195263088541059289070388677460386996032030209960611762369969127517767959937851253387906142227673312535669118805654845121937014564726769897326654317963337772726990649913893718451340490307721433963752409897539992819419243811578328254979587458664753688349598253879673790471052985829846774669533739642956493607570798595009712867500352269386450169267113132263433640951968855950344358708531037496067212062455872558612272467014763531952244939743707379535773543189891407942720031728953715747486944866480178238663275006398581570890834028045330335371143036178296514399624304693185956916113479107706878796880428857700497652930959090982350173755119032251880258481660937361217050460819049008305616191511975565143954009150733767179438830028331179039761965099071146519003623023154551441402053678259332520149242580104815754392386317462783104041052556067705898874942989717403076057862575991363782147321051111276819496678967157381324098990925983892648086450887815095356936670528765423941658228056902710426254447737918886411784487882938839460637103409456072810423361747898511415184999143547036667068852021438086470179418554267060269316287210585407700771593531608846612268120259946972092908603515796412215443970277701178662842211536922852058346425854408812526709134562772061091816238408669410984955946741095699091760737804943893295797960204206011089424761178233521636078577913374643518938742744524513227415463709767235830160765200999491673895548150420360949834377796365354026611567572947047177525620726783569606657868654571388933046133910388174077937990832735386860962046729351162554268972546912019916045614448878932211542346749960811922773262035249543445257621710431344631294792887888201910157337332495132377966449660052250641024949443048287280014664522102729749320722085559169734401354969613684282382701023606667820658060707990162390709271896876091660658443333318373635924128282583863302774650325141679502563054757122783937242413246282592593214438004144675602198971163929807000649128132102457328878660609139490788350002601164504096350311600684843508380175498686676916964955297632252624466327299240146711798640684671361766389994030777583052937698432107391842418117485938234451879751812692553361302428986336856325437120023345590478682187818979600306323344478596089914819712957101626972193623565805326835274602173690732440671255690472418657031493008809513958767262801885958813723067901928979834355033426821267077934647427170136185422168928203856201492219026610881019293411026286948525729664727979419028309651303751941108920839668092328098682935445948174284976989630866034399230638165262990167999408442575817671592749376681177302033773692234661346669597550623176408955627975948323827876222758558934113846688070011887737705112024373709886184691850548976508495895918458387660644486927980239274930218863121537119559303396635770055539459056708169080099401109846907577487576195518684737581713910181063583693555720624299605932838995811139243922678668715009122107309387857454040962099220649850774389068939418646803958093246768101863689715403966448239245316749374187702204670961947468729864581006896406813372378150378114126389511734752395842357838780357434008282857811552918009625540388511883863648599249323956950651625795163486558485654794663517741400392736126288557181628623698559177113466398401052555684378840551894695508102422443714365025797781446562026602289205537848788387631926224096303898625321734913794571935265350094546810352495125081620998751236211233062501892934740556072928542044180889333660271069568011311422134808875038658167277734252727064666655532288066981334532898279585931924394046277829807748936060391798555116134080381576642560833937264914695517534828560498571737819335363141811161024132940400442877744760858873499705782320415060432573817326163389352541742345276271015385443692610101984558896525343249443139379772948451481397212843477069501263318577507896780374382047233474193387738889812240962421336900158066569901734282726404767622959240144638965187946159251545519839881654330687745303867196008698441675331758512959335485750343770165753824164121038837165435526004226206267872521984748807179376518223322850446070558441787987327608934061259670160604601679280292483196303687008573312328270752615817992958099531316880628442358846990175608673561620569176687238564520930055722003596438044254479786277329011571085256739724106810944724628605752231606889592715344420832370418346060268962155822465471280757587855283332544866300488925220874894278938340789504803053931146001642100000858154479246313878132107741361991069850324549302215540541184256925925899521190618638968708481378914044604776143681159223054693972661066664844897420025303022206982617297583745850514958418792640408876558694012407862723042904037539216980498376761365341845099718672731850606770235959862189077683165305673017517091329633097004466260747315941853256286172633228241730292619940429438136902019137165314441780064217269691918052889226179809341364833398320076428394536941304015074878868208338286292514353724881336076445803490040395686103174221634180308565715384593571016047616812766407695845593469155443775867563342243102621855555395834891502012373861588414670148505879636816361521477650835169033089160162711143802910830980900430486332658011903408235656244296644842229127801394555753698496643768212780376983022395872323769639766511127861510125325218508279090718196643933195323610415405292044087838337400704289441466444773570946897366353406399907650228922302294262242225975965784000738734425812486051351482888131552124204144594664047458920584208328974748115657865410977745195298464989221392837415057873301474724273615264283066948730217964549219854857849523101793051219464771732549243992032994502207064824392040982384428105352326919970116026895448543622888643573111609021379171925133421588810059786764357339660134855346838991990623901998394971425845869590710534239609659573777186135749402319554039341053651120645279560339127519430165132619280549444792548375674790111422640116653041741804465759578727876259987839825147740617768258918404293692199833039472313745795173386547137717717328304600707746183417803789947209323925777306260737518538956318339280956971087261841350114187272886582916663044139635165983334811367577415826865786837321003676944955031946764950845993171668028667161604163069033044871690127734348051191097929465940811424479130953041413929196280433111004454673696912220274272601342590622465876091655448653480831076696627060790072077559855105928096303282013250261944085056043565336791057088841812489878319914017961041816658367603842238587643993154977685490463705946204642467721083492120512461535502076939511432122433778873866095894743219552656087502121317609002944110146083362153274358689778301574759691512924184897697573577784374713752597872262433643844794592164025242273270062446653716791707455766546247422759110158049977408309828107944747197056158790887632274648641341750363715738380593623867188720085829393250791429861192226673753487518133503489176681359783479457224297842073249734683895919200906232630385845185120419304463225001600384996391527206693189703665912216725121247840269603778840655838790587800225095211804187253077971304531675730161686878225917421078747685751473070956366082479391713238749436092514516970922245130385336468826095168249070563687858584608240123337387499480477954987368564731458260078751280044852132389632848928707459686205886824564502377197119033486147681961411784492527402354842566490462746572527872218289082978209239273473069433203251593812972885585196305893813932840277372441855003855060192300696006332776203240287038978434501573623033252487120088108576543460178230167966672720946619998188018135508509337160164050357037796147020449379232834651116323818105755439099898136255559807689310460435244891255884295650566975807333856750226387141522736735244255942701462349510258362370847759999091124435635978368958905309311093723198498560758513676801593035738292560784444678741759789953997324434883808388927024017071449556397610033523057465497250087222356831301434301412666612278876562063791716078774100716631867128718122401610927874780183656344218274899016198273518473124494078117350539190952747138175328862537344799283966211828568025451959220047553995813094767820471750331148041792908894205444755952690775910691781184895662226362182768267788347202125075851062377753786326635820976970273533209672958725794876886574913732119739194067136177328285093805290764376102643575961077343240497931921392313453987416657708032547681190321329178438207218647870593542261140667893213270601035479940993678911457395067818223669998480489687559902749569531653888390890397374016261659721269224017229250523488974227446653501260265925609299289025892201227000268135730794506837101524747383934887227624512663801786385857952490014726775881603290958165623027101913740036783064555579827652973862071891747959680836460277954393529526227232491164992744777672737101170497411209179937821404677782990777928939422414477675507001908471099481665347631429324147102380506541229396570515718194271310560161205621409586944646925531201226099148739569542907965529924936950218911938315361077618346769819775122041636120617831451068258501882692732825410009408148664858088080658403838692045141750919332190607239347623087277603299050255707379219905145754987133243328701326840140434811680147380069317962460020606043633593597873307047592848790872440985836791366902115830097649655128996667467324310892491732202022638138616724043005791662117146466999307242506324736928100814424698602753287498628037056582836895274845438427543711819193675481835528162681128311132080741001586649627358620091441536682023242910466037236270528409092413464412945387852948599162682804106996996626070253648139710947017941931426133508708878471405657681438751722781990023670741562358639411337780219594109642356865748449063058998579503902799974488795651254010653804203064857591130443379443599353651365031078731132566733604385828281056129217123799377881963564301340287510678231928176571359750792337944795835955835547792488841981003570516300398654410203787965137763390392322215056598128426656492691372143587470380237634137507136140637882159882766632546103347695678599410952070533939572388272098295873921761995443009125740846018313253755618914998438729314733205393229283539986967329189150395117079984267297387918078828638108945363855171040260147362217548463680500830244724421819938583808785092940847498999891544553098702431522729009620156088051690203937798444110970556593484328400786723446837009165300933675230989390777333560545990180686634516955166301544036377907456030766744551103243360935732011222889516185946362551377351132395308738536001912954149255200904560594875932006602536590588925261334288935154470311919769091056492410529077973176075888383333089902363599600867847801277252255449475918444987608084665630304679300093850078595376836122123142291373479053445932877705935818579775304521195827443419323682868207148681761526190370815455724995330905405658846269019446921025852762154400452279715643149408458111842626545308289029030146521083964021289209546752142199592087202102528992822689917744997484105373654804704406629362524417743372243050677428849586361978079986688497843120786535368041747529377597324348467256049292915697109448195525469737476017554467185800036614883081572488547799905978068494766814394573048198663047938306029334692979710065292263060543300526782280003708351386867035320670634622008925127662341119419921057449447840254615336745357471129128417126427099973286211102136766956003205042625295054083663131428369824199752349065496902555749326638436089793630290137103033251760529034909359802462576788472454806121453395719471619449580639856435018515518329543964365635913981958429437946266144747388074360653219354473624259421249249376678274992286015982978244175778620891195693746917002647321533786916548499098256961153249929706958668116711696239351655507855737514982997229678662572792710406662740283176237282569872487331005020924645923922272046923894222114829895644355551989507115867421572450732052602960855461562333083668089085901725161603540050064512783938098279337831546158527608108519599777096365938698897100614436252923718635974944761776147858279976079566436178274562692345732721808223339622123472517218247012455102880776529362317983428046136386261723859958303846931358254857388767694596867989615414445762924883912981838395011095630499678364708110150632561859907232697835260780559225645068098686460335871298797285995619519435666552052318995014409345579869182030735536777443018312729113982249421516087757253069387273340992878557759570262435481687329700603831525617612339985740680172620810539538863612175734213230584899692969279691565165573925679537507891141321445509108159598529192294327168760126044632576472231798827954021593249573931921510081021099097470746727458537698294438683381769913274833537759237875728963886670306080028005369362161426191116255384159335132812772454529914268932771233790668948960913840395333508978634329758549035047662945441169261328054513474134158864893152878444804522908751710795255103893838892654692617204612484495052855116971158540522744301125548475448605274287148202046214749075352072313967481691734913356034655157043040087263757610936601664473247588725524679723220890934101106322411098820280761328916525481293617419511432865716505374492171633180095517562432736665343089184266327246964583590773839488609580510539516809262154799212438560196514563300373460068103007130052763848252418832663853533708353110841806466708262983506589409822398208600820013241805497020439225277235278329193313788346554272236692472272482280360895150543581255686705919121845785310753589370047059770214708888235990088249670785332017815197411296682341036823538024729659953817176531154657076330010715791386614907783312807376479629029217416451504320625985176802030477611116793396156870929151333616829287842255513582173806747608537097051856486496193495147884608435805980094187859110490280334639454166439538779064018537319635821125076767771083746002478729418585984279204813987784534358880894400023736658804632538715811483705169675118924879150023400240710732349838620740525919122125585981930576497206200965148148805732537838239110864789919639605584738397907748006676569682216179110896711692702739920895893804547356102291861615057586176863113065704650961869523805412396622480895338200076661875106412059841554463303969735148499715751876861367937873376031129768613331338294003447639371399290218338564190209426526063349439711309013914235633526367520285733591550784009732522094105313401677135335720190912156660378546143422504418437625283953496177944541446344923359426591224032708127270487296501136136789167796202174935144927769717629141384790018237568204670405914509078665582593920016613054666450516104365606494724627425667704079633686971019773086264475758739551644304545194420153899691846638253431988913236101750601460348240136068686981031937402459104890487000433744351652171163296621568874317866412644094544616475348521716178868186772454224394073823008731380727900023395143228279953820226613810382247493295942925182013300136233174717934060305867551694388586325601631566185000470519795806114220109168004402229130274072290354704941668349901844958760114507682614262745634211401497173416498278687177462751150880783014503714390875734295330145588501766611454052433925344893258251626754024294820629785540906180205299521934885705156770727150871677421812438856870142971924149776882837693160908928475205066138550000943286606011842135885003447481430742161982893210614210923098462912481864336811079655687898278899107688986270865413830422549351879442617658751513230600710114812504172973111985518474186253046751650448254444195501862214202504360524928476257936649155758655199232238635483182416401215576570244499853361030547634151107085813114456729816975990508871416044274182315087894163812323208482974914347069494579363967676516325131506718715634872899833080286197257040248512398873555510472148341786532833763581838166846765737591922824202418664301085491108200075528785605127372276829042268028666073653193223944352495032931319057096516841175363180869071508185016944950315240722738031354841742076485673253831701694064164740355708842765975470605088168379201152811422508263043344785063661974662599692130508530773115104527949466413578147962032911834925376565502597551195055103400455042284220307224367124086443120416289392899962074791956684454926487291367305924052470877046506375732958903263485901911324746662886278386284830144532244116720642635951371302960510954530787815831971303637299416984993949109844784216195747550402498627975267911261736593391770901119594621500940545125300685161327057327693438815556100283030020452814425959921949523097716098873769027607611989768080548567326162573163501934950801568513359233524686403221741444717250645212131775812320280392274468158646641205225812775328510021408445220282382328012441564143119677427981522179214085821999778236961992502681322081988162125276056227415501629747976065424399680053662799448161753376149172667129653254551332670396871835164926485710517909992041664723613615414257105786146344717346157189112480514846574581444284357297937598178080156859146976892639594891845931560533589822320745857005022637307226635327847337882917343476950062693247875883641564158260972438486229593092784852873708551902782398389617331159296063033145807141624535916997358035178153972782733074670580255788101972808406727879297721510839772379706762436241006642233092413153836951335574576823304376978706295794266738439260885160753145428749515590266066065562233716480405872938885226218977384860942650344734853112961776625708843200270781256451708959058936521927524017816126447591528124139217000856334887506358491530836048727252113105748109257177495162804730824449654884574210905501992846825947512573945968097416638244564679265323203213087762639551223451295129457875564400169344734065444537133778392879356650075204827063976358192682845704331766800664390630273484954563606176563645165668656244341898588364160110173440950779142994402223713566406330466490668421094729711952529079649686895290910377728827372293070275138725654077092930948292659630282042955174685608306139561902196081653523952857501752072408716625180179349723904123975258584014711795420896512495928271517905695706694135015354428061499682185177902791109495553149014111194096478184503170464956000361224068811683876955310900106391823438874834316473026290027864075404887020523366641689874477455955419094067189521937602167665516896633466900030824598864116233191581125405087412677066124285545419410581568014142384138684388362671941940815685427346107937468933007961764699046593481984351767113127006466164405147233565014874212695971934760981440507670816534785647458613017367668100256758244573684387088182677725085094281256387745124654114954564273268491710555219216951572985040012744809962555995522342740822625411807441957640169270241202310947504530001130026533970046596545958102442459536820333539336201381941916126736048420654523690847622598365476932305725194840221235030109908577111817818343722696026517132529958770748047132186728536079613170362977213695170892103723592101903535234978074001068742771219058393819957420412969119649437238015271206402234398941036061351085120377286309739030135049806220785185717133827346119764278915516886190119353233434609136438953189936217720569836542526091541447503608997618998847369604384562955222764923370377587398452532673268407024392140471177812600429339066509975709073058908398399618047458606870291097238053010838557382547476107176751263213359088914102902605207918761688652359852177915015314554324337216506502555119252458588011096606864163057413264078333779942260273005024783262786761648369046555303537762604217486803798082211391394905994321387072589262187788633389561651881289799597486225896092747129557571716984109453234436741712254740113869163578376041332649025730047099655889500864930546643783912246246277233838498942456753693742295113589369591124048957687854758142695396619270129774241099959686219824863618540317215545508807096910390935168374480678461552720025894349317217723338883349821559886730239863096386885244570220602870869876740429162656558151690361016440930223795025213936001215796368915888236487053789127438073487953779961272296245387445999803310615881709732011435166174785544601770858878973920681230491612813503803250391715403198571112138973824005091624454688236192095835206563250316989324540264779321112384260200987155756332581065378425687813251327761160799576693136972870314849750128306333727061591274802505652006304377777434687139559754889685457274923227367512188853457745733330213018462079562759896323732148022304646944569355593164660635794107324567491165489967196597098750675449704140848251038509323905135060253444151146816884678339085173427591554754320920568248773127000823239194079623811517560949442046144897435165847499254318240647168117146174476408779675603117411829955513723425834436013216587889353886351056967615779435883877513257839912864390495153017624837833910991131348498302232346188057345793771360432468074131843900842867346250119409349273181054463709269570636624919064417929209031926198923081412537120368676158733274414572368358576584260798639291788336200328391673058584968958826664581430661481724765516354502136317484656004106895578948089622168550238714585215632632978163453173408423056786432191196187669542068736710462924909855415885746782481290988822673366267129045079420868162003932110990402363328857605821636964847146539174664533007532334591931171662816120233907331249589834297294375429505703297245175112691890860525673672562005289931044150559959469931276141252618531899231073516112490458688952078622625047760773578439740196816069854818429772426216868920873301583396353555725903285414784149786293101566735079322440837413478716957680713607119637063086194877191471216504395193935626435314718165290199424778232461233753471822780203364202671930301162055874752718208578692260723961938341648231397461122331312861259193109959552029657559879864453969503049697002511242392466256434812661213637223473382299506786202253992298155816208243099185811732525099679642151815134456363955022046847950494589352017102604827798938644794714032750240667461074901622714204673477676140009452872889757437984957659044084519180200169506001969777144987384569280845609458594646999205839365115615416142586469617932528830474335453070478381164162587364438041558544254480898201182375336336352314213397150450809370092403345946737325695203228965103355763910036344135264260569134006793479332231527458761977051002421993415135824588654788816937353824370134598303756423759031068787334164413430720595846972306380577949037967184559375133039480194117342504505703338776499390860168015600150006905295197211602566355591634803592389014998578510594696307235901043892444706425599812031797264047893570846679830104348048214762435182892358026790927327732848807862004221767798700357343043157617411510980405759616569548102037037428655454352663301051067534379369838582193809084470087848090932318729015347841739516044627042336403645575360491823712607522876780714382618707574640567321353414981778494987378323318226992236910995925933040884500205688949232691897686313968089145334967372420848665415276696597397234692420030551350736040067476965756952104180354110612245368597354642490072566525432070508205651913253683598506460616003754811827082346036181539348906125265995829436816621715841664649479698548284455580470899381481851800175617275553782282904305216403944931930725761292470109000328720092361705183291401586799898677691740013755681226019059293293232490261581434911762741387053927748786703101280305566723810545526561387774391338495727221308536049350476672429839900076664739066856551961348821114276395527539872425752661234444462116727411434950577743311329818745568496620231111139751862778877907276871063698006022264968277610220339704630868578607148307316984273931716493902528312134343328427357134235476977767650716553242256142425337967361126721758610840786387568626989132044924426548783416079448937469050187716359186640276838839094983028166596957591419315643246688451979704619658721773932575449108052477936675080127579008514283651545246286669356969568728135431777008012223876372822886860575629632978799547401292930792464162030359221817341595480494361882013030793294697025745706115224354397843254543005863797458833324561889547987659982113168308729363003257117733363292808826006380355177064976281482329127200610245478261002668771873848000902159021598997811292535680659802814045283456972400799978501935840060090090614659217407203582502887883287747599463451863486807526689305622103953756184604606661470321428027460872771492573253195371555095713294064252841147146876291758236247040869925054837059189020914016403129651755704212105932105735193538478248292476172901514764117780950256482193820684334825096309757410498041699358743671139656645665063716696324034606789807120837720448395226054885921003161719758548397585625186259563627830054578333283549104819761136850618397071506785535423364695654589283944326167836069243129723777737754933524672089377655521359281078762578059369569019227873603736766344937722262878203172603359869791360113376500901835457256976407395813104394671482897328800380737292099378548894855084399746918612672623004457061569880549963586168056104199105235039537073303564527470265485319373190653231881368765392319965227288455160594271253387591538490833163323372384327772003062835067764638086407974741702860258269045917121020516446518937864892698602581821871464396489441418581403603210900762229257703473568739289273851944255487100341015974630869405335774640080260907886063169190538433843947398429640665688433983363922752907727268441696732920724350146212129042998251072320252334073255138244869388257763606058240071309004198294511329736911277764099265043292570373607852967065138838596088225428546829039487000650506994244622500731265493479406503539390131439670038657620668366385913333901105465574637897774421415109302448091056234796191325099588424806389345756952531147768510514268965564808608259430132323063252920358316055922696812153563888938700841868809414049277247239601103890405366946791121993174364259637201123412845315270457911781112377974540801466012823772512653436914998528101894235581098324236765636895661993483796702800789192081322130970553941794814411411458663341721607411253510957508622809641416298747940147090172043188441327054446634108794342759261799373155090050442324398064891605441976998990225137511535885769242909626138172495507413977118385891881168224027355490602752341734097605791450959662669918303037973952848602411201485958817778676692214019027799090282379086689029858940886217007115330829706778885997221222329953085326728143398272577960941624069219306225551369444507153597253950189123615032915826308971768987202164348722370660165307664450332540320919129754187531732517404830615352508967105038566080452273622644082470880008264807976164824387490195199728384502148716326227476331842461265247847148962966435184709393789770435186828004942283931694190921175176209573201337436831437148996959276151212124402894997627447836186550744879510952933925884436648978844119361160757583602529320067160509011288686279855103352466432713771058891605150896211257398483413188733240856588981898718646493100827644978671140735122112234920419359000324896531255177710325809196844256511020669577344085949512519828698914348823326654400990159741308083969348901562754744962821055400900611785550559788034602253575867435677967219608350559228444045071725375186029663286397324707342017891653560393520168883975082367135733359870879012207300188677180818991499181773920614039644741311856772282519145239367663154623935671795459268139167577196976089349480756895871407870974915873830753762441237299508064074244603801508066640275385783632918418419448464239732144913844592664500138894405380887744692928972391380950783583379158641138096028745546916723586364990838609385221504501745006914323214986929974659447157221548384098678457257093201571722560523878073224481062878813214845891472813942224975267691611922100834993711579410338657654965962946485217817294148914154504022943831128566244577122935728745551643004387360813549904326325633422982849643842106664129977102013142041847728601527095227553635946638121046284212416578506013246888425308538679724843628596474985244617505188415097894410231012397648975760084765025849904578926742460563541193168864847078257484128324194478674720172485582023858601557406168056564897870887399445750712706181513487825541650831520124908156942157003480455786529419589502937506591272760570880680547029524144331240551441282094611846941163894792571829199512121648656314275013725237479904425327169789815268157866241681739445221675440476110669926267321954554314285731522076866020637352592880640780669828623312745127330479977674047296965940966643646285034961268466911912127649471877185314981758309797935950615290297143730334482877067084956707086376634519943451252320658298047581448972548268366167924683442900396721445652389808356983176228375610430261581024937635244751563499897738950759266703360991739802862152889209215939591607544638683488870921280368878460639474749792427474667083784528047613972285249124979844822270069431586669828261998872657653152118253259133775918120636248352456805152894348692827844383913370658396530477546570769793938690788674684321474744556869298747944691024513524209771299099939053997746535927209761711925153072503359605768838913022182536280122943603610523519383286934650418517293141886915502980094520011169601507180930332257750434835183708328901676489344696937209082615557123674594743784856107675336846888149929786273434059533782451170500286443812927871504243293930274059091059806039224587976980548177255403249901410817307469218152338832595927686714451113317413707870343273081116133576622011916516174428307999663985737412854127575609267355045284268344988700742169849706206893360720476008180706079666522466401979453532943472193540009176391488233306635195485357346828937651874331111813455117644720360769683708579531764011820151373316788345459921446695158531109060983696417480369869052119932179897121155818888297762566984144833888050470201788015429846989987766675288825330757563399008383021158602194543759286144164265965782796051308941685292830993523871848954528689677791770364589527779399134983558852268060260984167756049641820290946500859429786333032636473802401988716977737362412179091683336982789560133258310591596776328378409087573602134474450520716392730165283366404172264530718637328556124072602490402922017282515516149276047509288799982893368235352503545247919331524928633947827584731774211093621889881700677941568022350274026493086773824870981507705981087754925091369744273418304033092667402802189371761202941747840118663973141580441723373620902009749176017364124106482326132333397109422063000013620408595574825069627181052695192392023854889636914087674677871681831530505586301116312377396013899415471099147851983629871082938787118771018900036217189472255092241245548066434590105281683479540437630504535689197252991557019026946257943134582462496811196747068445369423615396513033569936723047455246317717363546312924621995941845744539987633566386654566240408503372995162935995497281702073341653768686774403501144151874131999021833633419300078143396389185470019429091879039365954740589949754780448155322745278535998056044895939770287605793821614972484179360271977390882145067999332442168246834385246768364096710904176665618689325663766742598382552867932352479083763039443056286203440898790528642165843047080024454702464061650582283877704894000324044303680223389147694758799461404827136719847835010805703664645644497912242332505294198724277896904941821805310141127859969704376361485036615051038904690846191352975246036420647796395229114722405133075110848714456950822355653365260845434761750380079247801405927369820455207730968059958722971465314857451712496782621833432629751587732898337014073594790355548764192125951806447134551419205978294024851737330018883873619737838897433568318030605037444366201702558765219263967062672977204694124837528674951156932048914785815577067447306496131474640642069639155559912001230038072374352096889043468085707398377817905514360370112798619208008189994213520008042005356632509596773484222553618798038319813441638414571911880935252927387371789205057070219878366215479538092478680586300714344333024684351100698542896941606312444139414975064405232665501243935263761234743219966169642504681968844298466170541437997439463603920270147889558417160817151366213913195841454341960611631546723681790949148897856804249186407497168312401129465670926881708141205005362719935585799357794036585814745269204812148810262371473018670503963391963236696009432163643914625510890252120118694593960256801078614979362697735961833382518842513540614292501538044140534362668565534789798698175932361656877779850232461133115633626462340472899124636916162866118271450251570371816967104296438346811813881219980884923998167918090141636888336179632220911993050006510549015046252774216034064396855845077353263982927896947945781037116108486613311663087962489693967635701764509372092238711306063053743368944081306681853386399755760049682471286569396714858097237097499072771632296104702197006506057688351506855449764258117506390945107937738228732116933809951623729907761636224608563668173941505758520741080663828111674680632123164702192189222650926607407766042115319147160924000960160363848446982821331074594690465116350581026161967379436447355117265201250661578796223633436979533863129623840668943177395750524413980761554457170401875830121769693139483609598029906332098934076466007850488354101752506142065270323859291578430519547614495817085269228825429949916451608533461165368369899781825272214380265388944982962341832777127062952203596462100767906429814607927798821702731047911524364571974889280291851764130116146967293781913907372186853461914013613866358644997465359284251289879305618679444137430962880088483244764391005268911790024037114713355244586121886135039047524453557232837034803849134592663580788033024943793435350426943693124092607838306309778739051565193670687679278411404558004973750411689581986695743330419080555043518087001206589864366793970381751392768411147451660026012495578962076952333737136463741338997247778329879424569904285184160817796059531369159791365937030312807657591392564619221586269322477854670642351036396198488457513394494853399509622078153576902962754839251704201505990708949115975617592130671838733764033171807183307759567809881878883725249843186234004658733042622628479377505626307397360722467073304507520751963632479149341377925459203943464097929333735555485914921305238824304692788885223455923349745214406788506808744620571527459850051241915373861308378866323376772802590305745920290587737590857477063111636034203962555357410110652488758794489467140168358887928635501168129233378132780834668904191494819994656137395959787615592735117971116893753496032688442176043225598094690762199567320899285465261216645209639242689473598069637969814342882392548216796288518803796331367472530570057590345577573055960318975382103807753682812421543056224754556076115092195861577625687017730417126587716779250589843070747825514467852194923928979175843961633422302948417402923920847195857093034383043282586405144606010454575182060874155607706138338644959612891845169969012928606607217582165880658190130372441786814933800968034050275521568628515451943294438010916575608223003533784353011813972282453068995430929387475335538768998065819440357431299070996395430150500153235720983687677929566151554679630344846494419680112137599348404553776396818297450696377611686802271815185322225646003056029105616426522462908002276718805886204915682459845361227682873599870792384047956234844728468307396062615544174970066715553529813889049078934334913876809645993599067364005215944735487542998801165101358238295759339250295112120221029355603663549249367033840780777377557572390083148468626557891907139509319534813452834149585089998681627499268710179863962781561973231724351944715653048508777208482672545262188632489626382046019064181436310636984042473089862651691815586777992075283106599612542314500851694744163217675310813607775360295083928988961673741829636504938022036442289128798108664168306077869904526571946506308439159432454859334763358346976080882895331673271484710241815827785303419896970735503725432694578267649219326021042993062299535958283622374923979960458870041343366148107065860334317270379199156099236884004733666223161179402269348713562842511052448516791131846382633699899958554759858952149531119688417542292614193219906987164435284212784047281063519631518890763444677952179290087499319008918642999972275536317291791578584724925808422106170446742577526854005267761817628526216504586101726506456902756352450477180791238406240851397468792850642954542922685875404628098325745879339385890067772962997438168553953602416493136017921603302203113690741540480803687693588954840340746445920801896511222221430379582471182402996397759462046022725053267600732558210572334773788042915167499441550842829999534978811566257168192760247963184418541782529952616048171842224492899358898744870630143845583984337333243593460606357749297822278641723282670868919785349920819322901426129723988559651711077440207087594684901809863490551744849948697517931024915877470099611657885955889090484996450774771915926431774884221423981953007843680444878888417364043802583999133754092988677533491455185801982183199004286377164536981084855437066503916478158953001425648291229273948089692709886550262702967828495516908174017403945628929529782054881629944615291994810342217841053521876157512566030014441434405636923303123035657744947393715611502797540147991936648301483996699793742348325767431909289186244148268847825182166422902169931299612655585176241243573253092597113569965389953032841491492920900673371802687344845255910842044957652431600371385062327357626380756098870744626112987334270412682920793635373869151580279519209197371981347537346416271330649641995921003740417334837090586766105501070593146005737474215179249737439948798377307019845502498363957166103515559695718003458875476225468590579980551500768634006686497757630081466227586405545568137271126503589634211803101774657863327178333965109936398417610225703449144040481385590088593358744040181682926280995959505699431429796725210806268904078137759141881387002081123526626102184583917470816827638882977098759024661177079068547117773930207373465090163411335367377786232499556790736806241537491036651349439416360491335302015862118294352464479798710505693615081540867598940755129093712984794473059009482797917306332265205192239271718496128357820626980172382947538825855402935152974212397648551510760689156711180150569207211766756471410780093512789395770104263051466278693686055731335338782448594996547155755060849522230565266836003958653133915073500897365800935165212372205096646231357802307951053679846394941797907309344224566843400786303741538049815985942785079152780201682825304141347165262343169469283211225759760044950708369035204159828794330498923894776319507468696644449645519415843541813749751890164128504685772588481534111712303799312374781438823597381911357006213460334852950428997933204618418708392023546440737256185997179019248278935636233812760268043986676475395365749437794802234276744285666778446988460057334177794341615722010211037642591935807065351721100866922255679866557816682622880494280869334004601193532075532105874888740268420069165993533628537855414731246389450417251198844860716786139902849707283119149777851349639795846155133977620628259372968643582593643390982881009591100353854105774850066242146613277206106211140065612750623299313576620268539488062044946036266683740570397873509399706455083978552757789633879353181755643376155590026394789719506005202856308336058942758295420953285248467545522738895835696238441760444855898055387342803452854237153871896947889484138448400252632920076687677761203266347479017611364545294419160185563302174486012936620344660859861054431238780995367823188502576538804085135607926789738747679149262299232716290551182826569790747522929630343913077565317842382060558005514867307639927795944561991441228836080490773111128157502375049666503724228191710066041056562497279426034107850126173683751170666438068344059890383279193229482931431867577701312413241080888506751703059470846897809153753698196628273766984671902482613535377755699536740039630719755936793924181464752817173531110561397238215021423941984115467561607500974395782272746800139370118183977725727346710323621023915210924523218185859730933485513680737728978684345115628549897776995978130399487122141937019470891942067193187635651167920952388771980344275529385273544305758528363030506101247894648394863099964640208081449677351062290722933257756804614670186500507101971206992599540510761733868202149625562506023702725829021325887743968751894802202987155069823321253679743814383261199697801020085408598374897206415736886452192871023438488268575834549246753836605617663108928678647257084942683373723352487898261629488931668032910701984964021219113731061657768107760084116827020451515617718907140661714708556609980359579431213579768155344172146473817002956222299635202441647585311330724212027345896181809973266198759237324648941152641798211968829210111036767391490658550884159854390614584442354851356344811396273011280403598303206177749933209402071457393637101002178767280189996335071859422036561423237456490699234117716103841226455406240907822859796858127892925360466339035681205852244617021235450045559193136343922126188045500729117380971983848186813169062591334630725705250270242331855979124094528073217141101415427955267971941801933473140429033574797049586114162021106509076430913709781720024946558535576472215704325884107026515687962047485955330030946055308947149131487604816420336714529741498233561657704720023975207235017542459118601081147042606337259098757532266249730162898166612995669011150241375646404387232445608708046257095862273275926282705326140023472074453555455683602225396365792307613974577031702619610388293520566502040228253507859783327218309576774296434847074491215047640816249459123305799054474261951160700145518233058674235738004562589111403452653279347828121218973626129669701034620702148983923274272065598438084793527616299600012751197983697385195492343878870334878798609967379219702363018816593364277258455620296858809990239196879258440808134542091608801187090213453264026730182756434503463486122006361693200100252737392233615785348889281270888138269066749071208165162012045147175671767562032582268956798372158242634594234018152855834583990175074592573507204124531219106464586069913671918058457089928788129960453097160907874591424924799421176523695607396785497105435508486670730220188695232552563342430478605507852808326834709731750635539905360048206847139861233611032012830895868490866068061688375467540566561259112995303189082374185628792320214472100596863015557850229261982078261328513775128054071563626828714880985087393926545288576559527582967711403114856696611321381929766118815709157835665270465078860906974903834589947207428424559130228512935415058802107286190290881582091639571373548317065663085796707799586951737245582250335498042468106949036872675209022483266329420892717835756780847290453706087917356121557074279697099120937037364665461519642417174946922189582692684761136729001032262119321318541972094160623381435049257277962036003561988303043594814653417096425347103491271314067554044882182406656821030284195949923784332431848620483042398274935522449008980636539855486517114238993286497918302095895980702913336255334995696270485886364440700462466481312452028875727658967677538656525957988266338532321671742184490249087740781764320019619852788431658996007859698844286045892943548752856818156019897278590704470653238879815753217213299870537751525755409763266025511242837056922378007174749695458041420513427666258875835942297747115998920759786322053599780104931179688400626635815853878175757441750915223306214523253045738158221738177267992384975192253313427912848476513636009097625277077841878895365829562465978668972045305419402614263658873186623515865492944742369222611384622908989305195020113623189527366040547889505819473106744462215872559990118223327769784801013591617248327844210877370834661429543590550528593526143342897221674356514487789481152449545152705027658218446359576443192753721079732754187354871294633154483646523489091722404399233019056523265308506559624311735465813298551829970069081743258999428186286223106541958037730750106691767814894314536188068222765929639546675841675238929099784872324840626536135538201362217759697295109670445669902825133827215676057225820905515047582099336620962590374851670422390257076775708935646296319188459758743640882423221523297108340716955103993001031283651101085539048867798847441535704907289447026659556529613088473390683087759196710117494251915659086289547365304262812950615801816790683644260993182722499207261529898201947041484125367913556787244887710347858179688914918777952723624742961250300557265141398685426165942198472632526691377241912085760265167781904344253623053198262807798836361712093710972158432399114511937707170502980002473332033237412911957256842219477582961730032518650381054556781483580566683174271483451486529736727011949461823950484694314243478504704850340420176602833580320932699276591176641034705964706861629010385731674529367928041548756467684309366788165073431511945987687233565745192816294130003948577598514042757444919173900071245014099286311969906242274117421762477309173518120208276341494694993110686362221175813021955044284777534544212069843848537764574170062608836018829411400800726953644829033540068297675689757683652221731710295018395314647935671246949912127544703214265871898466244967217712249878589029275205812642303941602066551993119282158990048275221277276181085238515976626692136697385491059831557946618442809607744786427511768227518069205621427834314099097563081984077996807528645125476382046854452997978308200655779066206073589408048225551141436463759475739906375545531582792995660647807144292757626625173991941274557378234256490598507485866643674382462573083358045895001039594626322827108893260904015072573018142160043750367445802572972001827730310821020491117430848074901990239761082583854174784767659715585892446651854358967637875029855839059721146625128060100606455503044301507456082726905567712365157273827334220085721589433996149351845705095838256912839826766956754053830165960191063135966598246775095660612661118306299264684166356529907366714710889762029955249870149887225755577491898997879548204116876732470839629701043123714553116202898743021756323136441862355119259294354262531218760214473423208313736453725802843412793868676314883099409315983371498991180467546329858562628635227723771813493523844542272234318366895042806412984028492613496695811856473248046293450546267725268142646065508388246562932821084612692249812319143266096842498502799114160310641007222878262417423346417394821326291375402936630546419266018443575142365574503973294335807472190057724611237730145539671162785846757286057895438671985227599138876753580963205727010649462840240767260585121279559897650991083464476205569349358586897623429205451669266777409495427488902872893430374748490993519310144403395273158949395254444124606736801864221229350001519460805647598741124804565911645877281451924396863114792043795004667712257259966426197448986850452947146568078301787091255451972848121384200167703339275623724520264343640742126356475285866348659511277413044459955857317435644993912740311522826448431296566278297837830497351031756681838920453680286463313333396110331540197507228619012384334594572733131146939535266261523663744107365782979545908017874678113575410332281124624751823982902068482439618963762141979722935625761450305296335865490072353007855068978220657323893174224870229731432087422530734872944218644366049093326480072558425018925629554596083347880269101443553019422862575754682776419122495765999169678452699805734258581757674115774853842034379166468399751910845417877947210558658068770215081306164099501938340953762789895941041404779492177241888597866081219104190342201499957630731952793187742834873534690971655502590227882615611590620956326336175436203303689960839865370694585487706839616397018438179417986967339782537128743028957763186233931371938352191742407510215441762682576611119855184216500083074984108584193391997251081182947676316375269820503069124943596126264924181726086279887990180584987858339930816502621106813418868319874666362418830216297730978175248017750909968715601238865534215147857991420277158459378947507597492538468768057180333414721658522522976977419413828946696310508420222590412296945960254744580915546953411565747958938530596094300190679341966438913482954721459544534704927620044243770570301016772157306647386368636425249395915615060572953803293188624204293778519434237658544952882682733171011122123160855379480973481086662509590717791093031968921819328580800650934740567720605458352984147237926008089530576921905837321873101729254706088834589346705082430315718218952179244959326873558741905541810406375916536376908225876842475089597694154925360844321306283285573195760694607042310417563824967358093992452463198417178104340439113374894497087136071067595516805063306089806874033062831532378904209513904483403934439608640376205867407863924592896688115436960691058461832223639396448033756324901743192362225851375114652513389589609876904118942929081576323382912964269264985547430303028090363179533661401226281073444635299589916326285175789995310654618991110107306373276532788929119626352005227333237221992466742375776945726208125842909645957066612699797998096147147440049851514083474544500175010896490104566609675068458119408083145160798026546412832481207245881191156249233755364301892223222446749294646938482802247801764451421158842547824274445749394767979090387737778162609346035279343268558904169389517573579409170053412920116506521504624290654303917757897045824788715179106317308406462209229638115868996573297219998130027368378055545989129565521504739575398532836297682828543394322541725687680589333919700921724394586673127610794541676215169447962178755622016456027975044226800275447091076341689268585401453498822440842209099613034100560236097215083411041403723618188460105437120570951651212651341453659780249260708517545114140631185305926192840520474516276372592382417816660464270247251722199321090931224569490968840447072590308525642195048735599537044727609308580870987869630242136507285146618481359798582172793107071452581430748839877605168332104243988498357752249188725121054040327805730567925435534907954705585368644011459287806677018279129700223683581705208167872166302651686101616874202487338821492292488244338494512707837198920869364340498032977411776312034496968421489106560169709167595372816090633654662598252301407784395136351139780578307080712651865203900007669056211140352829575649683047921622496271762629508470230791505613843691721172613661018082059220770011500463497897902627832365774442671845994435790564213281043577108507624856204832806896529124518862365737058539836600472622245126263073192069553025327586209843940918516502350627933517141307675862383891180335326489668440872669271554251683643830656327799993236758723669745758948674835913663929212846698149949773095023106622260401753806051589241368397834297177524054154784321531012589011383946462783289262219395649204926102851805857973711783526693554552772111767915679308547287318272321375857616134741219029895975780712471550783197146904808775160889731659410904505843916296014829974844263156524433515963722310233655523284391096553769022238173079006868638449183466953009018482149210387685435016257227406494563110617309975136494147182229583784910195222848717611271513925568400546455920257742460083739244107541840724812534166089026668477902045101839875316897542912122084340774034990825109017599416809967256900402150464210171511111464865320368261307961635560648320990299073697104521195992806564880769869470782070200942781925765812270566107018946793417102023285530976730515608930171017770963434056753156839083248640442124989231679416551164516459770636626601696806346109447514899036527923611581961743661201444057553640805110471569580750253325804078352083118062463384999707864362872174623363694148996930468949375053683900305333938559548764509553310434962656625879586939513693215979463817947113947014753655144991266576065085557250632296586198853556031521942120634583406961561422297344313205828140911090994868755470683164797876577876389524939349375980921525501091795591801302052831118159316330962531500831829027317265132414924731336291664916263681319884169634140696815310130498352345578731784502757657800834029305328140157695105838906099419090891444017099517126080239444828371129933002340239045585984309521893971539428098620352763333567290644588608870800425881896339803451650467112230721751457977190327726261742721305845345914147459110212524312151940514688928362147899749419847789549415724574647837527809793831732054794826972317071238448155453444792202635228520050820587671889224658231338652807361820640832134485457924022910259614466060271474766297877229721548224687428278998066969667022536254699301078772214382114476951795336100880105348146841827799497619692711310925660045400178280573256426943081815057442548656367683155805473803961706905290447874647688230231498976230028633190502035351769239226455354984497353884753278086813286861644938803516015447251210438592672840463757675255204650674396288676595013775116770304492768324429854334787673044078173659155965050054027629839865640003773885724651538296436049770462858578136776135707142911903778288111156494058999923316284204677538720400607960159323644021185731686850410487790736420858938076506407023689912724080282372260728700655611906914977059685179345083530172999015645802392205100418756099248230417162412837877243096577354369194209876720166866064652904419684010641354510792999786308695489337638608011605637516549322529448026266125142747724671366491968927247950565485984790567974024894987986263192495656081906093153953271910028962034393824960977046025499699538379035407708773851071842168977801291992501474222251820004687728462603290650575092200527973342220692292511000190317715589247003976554971657624743949503624598982340400064892890867912301530171548681112057230461764299019523570901777443809362516506959162187389906970707855430063292779298764064521831606988815158408751950843440189973422674686962889117271602508976624989025971212443493018699229907867234635090186811246676249507545587460720022365430369041417122940802527883664228868833926206657241666591169000137246864178293469973369414260115008654378017337842016461684059643386708304713620031159318322931900017571807624434918188036066078129616328893646938919192251727748813921851926381654749442711404890180241908167571837079579083986970541086935064264082794485955446569317106094469595300534950485120507856001921462529361460614173292042842323992778579334724285865079001404191929929425827388657287769147056830401483033355747870178408152104409720793754235724017523842631166597558616388743235938762899487279925811214602918609053163893855230473266539728545418802705736961060252626149591873286315929718212045541368957170318495237618708189321635018257926448367237101875978121417445275568000918138222267769673806530029516756702654824001959130707259816200582113889063232056453875062341639396945794261109085489397920619045073834883963671525883374273991057807526153699194653401892912332446916758960112050367663654812291804428994175483054104004198885646664555488087547259420561524087834623558689198321995996104282433266564265317766346597479023004860360422970906271314232321199300402625259717879937179107219322566484136448082649487998914657413127750493573669112648309568388044055756605676424878863712627372054446133343641890612441845866215449875890309050286293972162613993613386327591810144271352957451388696722651112976419361275270831221171078557357914567179264140063413675126512733919007982349550071808163963982795224446660397943375017013316433221135454806564809601051563623041766447081902894950579153557768862742826600876778219399421312396065714453906021152667788612337460294962410511802664248121566185793344877426641936204661629668680962269755559077028934684021568244046419742994642924897091637471217905379337679510394223177112747234713921333984140207419473412586246141434748413472080165322501718868304294822850474538593225413688035230563121861088602099187575794825417128801702109031623336902402662298071377509123838090237957104879818369325449115398413432919627137521454716754226078793176630779434827475941753861148191401965307760203728578638728415441509947718661157205992510302564657093732317945188106227892773691656525347192541859678648699955706571262257068200996506881066701946985175747728356107729860607545661829806614965752600069020679431243868863619816709493280572863041245456323457816234979884181308609061000534100005821292740645721068277789926111986844602426650147901914670624666981924089943138443191383651553314603023845701031544403301836800922531866240063556947938706783941375234352048288739996845031891436115445957554665504186603782973111670108394885706676925370535201469028232298920453072642069869935164719355015072380769543476996263481547546385089934457672681578198621708582778300715393404076102335798346659066856043430548477136826805673663233359731810268992892201790076408048183739435544015896051592574416852484130245791192987017904251950541427739360612788516835396798588008918908247211642736228688875962083371557886823617263292336389288315293326657549691396498519649648810420091559174962878754926204269001470490228650978592717051280797159042290463883256650436510408728085001121072336654770738970909717595524882336058010912861071749113783530138066282701654764623810577839313805905654569621687270473140216636293732230855832351633942133553038662527850779300685861732951476118453101174444368763000324797728552384254043537762276222187304776581674180005066946744941352408544059807669742159627784876394667919405671805730788024029347222003200873710909065633312672447847748069103762214476074706192861946129200276644221392697802402331499228264179228518855856044674555402379387707412796791903754917395957014269445141759340017587087406830220604722602725826896739278777032012337638391351492265876017199890151879336509130916490778923581783405566344574026762261827014706716085674002124289743110461774782508993489716291531296159230628941512558587536132783790266655909467942034479178306188800081436519752174295604026343197821727927089090123128580176082769285897941902185206504212890089424034794369148799891045477504886430406584284144166032315647171185925003424242791019530587303555527555070835329984335906641434704640457124587545367751331548814094411186820070077878884420640600355939295632550611410840343235781630275241100584810441628966311038139295773729835739101144964971169364219555920363444773552994089370746673600340033220776097572292525617185139583971875423708165347424950785407913924051486232858896880544541925175731060282333854718891769935488285763103530107706324536538097488729105391595303696396466517692019077133124973478560198350230682690163990290421765194004535784888007666357620050393193090344524768891909674391361428855557599263081353870218966796450501983132650422577635657664933327584747939014593656708082136929276796115060431806674603379667752558272234780799768129009851127231630606029828700017898263696713064215366911243664675102376863635004457128306722261630752522838097274685470017450766774753344084724887406403595104971557290605881961420487754238412449444133365804634691255044775906718176565233361587678170785816761471410922745152255934119684639308453237784852239151933097566331253451244781703633947713676875567102948985140709241305936893203816582188870258262782976228809269447850936851218787832276267874595833769023724453352361777025723562102173446039650393089706549005592004455082713283571635324582864749410101897304022137205308679699294265974932270903566592137077103073693367024344855244600138763912714420306583628728287837749260302771241231903563084165570099091676864209011022536836599434891833051783914752050622538858673092927715687182597163724422933477937994481118850714474909808071758377415054183819825565534868258341695482796544868797710780661832448501314508598385518038479977511680459356433414221514541173563587200686157981275465225597282231237298574028117235586598683432071109031193825287471196060372439211801652495666626201597353789311839722730896889179204621038753326282880988494494865617089043703370492608972126912319083684173041292933433403017826466504533756590272065274750976243555084863589586844642563854891524902363488575468335967497414358564889923035992013367504675231841278997577708738913687731050361327888400550964836092279967635359020446227772599202119839558098711407155525083332567129395982170097538564349130796412787307744570841237857893360822204799286020963277980739380577390033712188068195353577192734039199785763788173883413940064224265893125972032894434955401060747126455083811638170069229614606321549672162116926642141880355514275239305285579991602697603874083295413104985073191615455814163006463428469956201028687023331715184356728558175077839732141794429316813262451663651729262783759573697555898077883828585285136288047568706107294755744224996201209821539725241904083038545369777662439886427487181451556041485289771977206942060637033816171439664445191386402477884623336306128651365054125794815392645028607609465972965411612777782766037116509884066287417787670236949356746470046408424041432463132817133213056737402532719688091684027460830608581422525351234509334215891327796561298518571047607376520286618152376415405561670075292836166180995236352100774836078039551555380149168164407552995742560254504665766133581830459303691292885468236988625665582245665308275771209870578162901850992348102097673740747447236732173380807894387433650238294867841431617976218579878080516008804942409259669511704305694793868811736235670270478458291865351540386095215394711889573603575440146062582364957915243730922197186068056088187168615931113523646265137074136158158557511136871428921140931312950053257997241555672861150774970680932432584889125500801751836791739807088148288191888336913972632065698174915758765471841740682610103990077478182545603058243446950128141906531018558759870939736511900634980048958585762177760918851550433520986001363117519038010531295161924855458141937794759522283059906059618239239027304196716691430498191729962225690627670568244555311319531144647617263623395111472197697022177650478093373571812220771699154383843500898419042315049095109594890897112939644001097765067809305290470731559990511039080839955504292310114746734846883621324438647820662387554861994796558301915972488588185562008384641233738775149720638961509582394970657477825925692945919763269468899563271598182650597584847306986329856244564448467413903710504794597285733445142972776762735010663084035849876167822141270954030969017385505720178626526366475850839982544793083810156193398545785557233952655952724172158133220792918424329299262308824660144034716019602281838480874074492603034821406588686885387302956829044872107565423021446275903036564187613095451796890854329684225005776626278837160478543149639281570041461228727231725239697756130334327273606823419955450466222736102789876662455429171044651909353864816920850528393541502918061310409407188909745900910086260946290007348449844445881006914077366750801077033093773381933641669104299027994010117429377142809728955986978264447483984531678828893257617709483659061397080226850868001534227188163107009893271934823597944871360093416062876983616044298733189053416490909776632364079203485493301547530346643339794262494416712018260331602184086374708772280608913580522054546309438446582462722622798670485247498697111408468058714775753501976723162162797351835311456821596406160158724486762883789541503300153786662734312711084617075161589901337521665182233330287432183096690364493461922645295868624169712156656167112461463420753421374475692089393878000133117073157860894188999931995636818548771918443130502686426047784462151148288694798863421320605250394829690275679744897627946274988670946031780586877743048443610321434526403840001313311905067103878206997339939120436515760934647957194179303583261298100696760450672697343065502996272239096686390319562657742669265922529663409767793012788036039629844229259442631057788047946503516988151883881326043320457177267964926901342218638261140580748654395087471108298920832049511930576541785465656328652882237159828030692368570661336974072199843527616426072110795307033851084351058921373135779343202320443704588685994905630160212900295967110086696742887880706897678815398835100753577220127419810944172033953983231126459648857452057778005148131058633171117480103850550350487378790339213862200408234637326611213547355766393024595192668138706842901373532250866158041265979591243334725124903842767921172245372525235735525609971324016386202277545100005737522031647082326038269290680850365211440987419241017174520510528972587199402490577100950526693031815485961837121885636591746636377196604762026622916711499490739722148362567976773646493990123916569731185242376099200274216120086710764791756055129089749770838584592658145642669831850873189514720066765696144211536196281681505173200882613079347444441793767294890412315792991935307247173403981168609153912458221055931815363351340033264585510584559613612748904242901464552178318132071486726937294246542597135496650443420936948251060216032537267307251026260545131968272722507670797037298935246275454642701097156617610774185494009966142398749256190792802916540286467899657035959250331356989285677618482645677219798332875679573909122984384906116395431073703795024239437135959085105445142432975496600499283902549508306749469191957600367902280520588829404428378736353229610714117666199423239852284218221720589480829465020234342865787578912080029103932293818006529754295359135630614328009281410729473158834609770386392792141383135572967169711969231859304681125467606675897182482499520475846770679478923170406553855582850299146606260629837809120260264048613698835394543474045881461679436728634632985365292703132693256578890154572554356487794450590327453629501653856099314162117847596072169923166586627472184409110897728625573397463790904710657971458297358146632417107388397869016669353895849412611382887358078661101155641476432855918419923480548318867045164842762270821446623797995412633870641991952621495117059895850282230478587957374779949927247205143301646474026181559612438077677306241833295393271452724142318600059059647094824886420824457417708405277451810336824461627210694144392531711362337089170070087335901394344148617405912344573692840738389452492571344213386499441187753069009206226891551150097250624339051904430407061493797866053883009024663717298689980802830035516756509025050176921581419611337817016566992013434155313629753516395468950245882764692841681881605082540471513666411336938777669589014714817627421052583450452329572964022305813006689053783812811382029442986382785765660953951410854591269389586162465731220476575396494116156016791189549328141659284257239769763063282385217656374005251031920208187901086315967288096988577151660739294295093129939799409559126844333621607332427532146667662673556949297093112317298012774118311296968319071105825485291091115130133331587884778702239244553571578627647249162652744085572685179391440815475981685600456258925555477368342968508764350197754091286934352934726097928553135039260102636335672342767812666959295713056289891331069446449432015996795775987336703827608786152574317611692110123047562613605397271896450212678683784263260928053059344747847304122863982761348282584989840428216937801567660511257540290949530687139103081528725013278862052210042893182734145640845999865900844238831763947465777447021412476651862105416956678697273011832829640578422406795746615723531451918451608061245174223110590456853274752062263041628841157003752334397762421005079696513574849740444268321311832199696284390836758582114953134902454673817844653899177630948887980403524051787797963272112410211604978807554311340764446161330577608832792464590057289434030823177606275726381040462915367675466058932374072686563292815694977808358306620360601307016603523899374281509687562527776799655873484346031079712102937217137929609225796832858293388806295200518609161464177547450688883881511251645233706374859435335574859828572271073203717950929765039195761799922604650754721365443915006570824606560063164518971461180647211942576603713742305270977561369960123771632231805077644621259976354838674091675370491691256398386258657618427012497779216876418373880429552017185976920602708708555377750905395357529618868321162102664160797995458450599066219088235551751070452619261213931246678842289677322877785713473278669082491867002763986309434289917652535480653266160120687814132600674979752475687219256483940647692897987159946842208847965685877112449824375784285662093956243079021079152946785189733095045942898799907191830440342259555625297932782307027629901302934874025389821809987683564109547914217283472963652547015354752169530874737044276560033084966097331163181633416274984303219430466119236195073112738075635986506618325172469560855766662941735800191309155353395148548664316513338960786591009869530615204447872724042030561587669808415466985227876695859406947833182042647504250023732123787835112319231317200169483817428269477269908689759858337350922423759117209695999035938062328191372272784532807081715488137689280223021997107167159213213036009431721042423743576578744031641324004172120716425451222453085321996917116908213492390213293158042089024302233286726515199143329793488103200580534723318478301697784712399428723692243221505503356278012961415839565545566053218648516578562486845959987392433043935398518307323651219616660477027193410302820756543498929999447411821518339869136581810686442227300691680139903433099669082993019581798528499897411871528701378439833921454446435487660272237551755886971559171310479784547484130237793370410364806386484597580461209415894253138361389249175640494976669176062249936738288647351209877499971351316909555095332206956724687863031820145536220464095844511606902004478427045449658630646645697104787711732554422897868906299667085007044684757657587071160358625581391659142372225474012302137947568577277314679952396792164922354177937176701701766298930173325740474358621868025044799622902022185508481167744597220202680108820477056803696897703667125924114212345858067418827854223660722670086550014510135129183106026034578436823714609426674108183274602228243036451134142605225357841697044513169617189257964454324568538138629137679647687743046461984116365355390900445165701276899858231627274559652364611484528477638588245479465554802694644642803542471128254515730938629064950875075205933700115489613509975481176838727373693619147102809620720868569694079273433027894372497400610796220022176210150059469792009718280238236004989504812149800301419811131061836318323309679268354031963744484027145668107057261464274532705097244735758278525030645273955962301149629408543732977890596668487011326997726191830515546980154797268915719814370057928286445777262318600632073393155012274222154470408816839551956063601157655756295021296897286542312958105892233103757983254564868766460657885464700017272059291616237544482189004575599378900568467092554063787395884158268257259247524652262854662374539369990259143124663212760533789488944804105562850991073098297239470587616961473149034039384448210114438844262179884619355152080594326856278297913419692846665168659215516957824242710685689217191137069575020385950335889554576694251579450701120502740873870923040507623799330732188233481248526630509072988010639719250581513043717703015931690494087438161748052176950943231704439106263695872707411045827455081692175235092539637586313618430196903016410877348889533895131486447508135189056536354780788289958645699349704026157885034009115406936367777608089355277394583433848520725065883121414431937580354217510222422778879603920995176002473959927594573992647369226549869753398527389910223090146639093268125721865257211506250988586671483885584120021206591922490466151155943771173194341207164062771889150825216039248360059370174178706263842280799710939717882385185364883758692298307698807262774307875130069371785900607896171670720183979037342557347867208743574077450059406356196455800218444435984765371096228260179179332366687752945989071378975783059590200462721194879333111784399967559684862963136237771065539002628883794686756993192468381018383473706212118450356323938695077991935874636116071690277550588678358192752498671830137832223614254285301580216723698324783957663508366454770988033319513528585673708164860989278418860151311504658060398629442656776410876423020508614242086194741127648337054958057033093753909367130133209489546394069810940938911356126729129543530107340859331933965901865130842993188986976437049749676088369457697269009296319756589080880688708517372576530084015722296524811658770547963811437141056156140453792502436494134992598319536528376790594815430045559051910755861002276109219524037074325286821650440000904959823520041595568430163549194657221460699412017439459900032786216900857625674528881000966051535143609759315910794069267016595704944142865699176535037571292107712826749045386515256972459577780653886242407645653936209959435802947315454413816036215571271922834828239761412245451130976699032361899925700277595897426385257803224490840697454695704362189777180300045211051294561092162483767486168985492003346811736622946402143525406183652582702409309047522898497529272279459395451039060258112729156498983678770388581803185043104127735864867406354499178208422198527809859194711606682226730572132267619302840827161675781389911373373371440213000635975914748033749635595171221989556271627367978026471693132636632913099648625091560416007972051730078294036356450046175350455320847694965429754660153265050274129560767483460601007415904342504558976325606244730284134912221606992375390726321946330128566129544956953614063460076020117308668373237617997679582595179403285280473194892114492613135030710748679945894547574097884673823580763808489323029881891585993278895161392456324906181552682433595525588556245577173627222555160019441872935865264736106057167105333107125974103820312386079139445458244772758698628123588964897812967996210938510200928790386475491939067505321755927602489702752953019206296042905069071697100766100938571456193777980781824730102197751759254786637871611837381336105533706320913788860408351478741635435284283938530772517080567440593690012764021799946003707154989433339488627947322842562687037221621024631000713098074059258809086613751368921572856371246712984472365244347499346726793389242756273507131731641995547263344045806517509178172401446508511451173523668222487220020897529999140712168195545281968376199144806684205623050551050488993919418013029319900639352182591335755284255922111222754432334369530244097070224725268883865882670284483893288580332391277481075757077238278740949919763736698076039418002098069186891457217096587821837724603466548157004795539047353868841313473298811769116895676928560629624347937068799255381229402250852454714351849845766403072751599697596936342412335818976980097538687515786693958833178419421239540189256804546195557695730301916701664328206634648367009820504844507516848452998499319903586489189481039299214517896188380223304221532462136292807607827609730658433253928743131400772742355736066211874375129387397939407168959494221529154895365137340269044913438334431997748608235759024854213043462935549427906933793146695670490882903965419924085012699914953696843086020947893890994552651591834330968134337393021796042876569778738644403890516049779087034138658784323889333605571124515863562639812622449155249890847727023816660622131484399417262396741823624143133913713285519703614817169526535089537054494369277299774759444795643056991677219232080224741940311152713372755030329109245144439410225458912728258430506413831319778940058129200962648854774428389121899379259760867189284615363286981592903518364515479915448635898687518879083670661748095105629202160081385397060031135055814164002126196332820615649464617045527058375615943548603749922676418464825578864332452792124520606389797070469513835765248071896938430606988356710248788948560378466210026868489236765779100073442149596917446115829320828467213801427096745965590025269316032369196176080227134324519625855331917181836812422814529848919216375264071233097187107644176114342782326336830365001673386713461936546514363344928497052227229137563844942026786809942546260529565647558792580401376056513021984527865540391405596687456723823332134124898331682976251117651823047777446374883211609128734618375179599064586094421798057485865939039034134059637519500904175863649276529264673465774418259829570949381514476391447616534410456273713614528928858639634426310343630288812853386768554353136014260734444704894376126556498052522415809599383866947780040836451486137308082285739369854358650723827502003438036668322682373504305241527657987750322979164220545101276163183540051919096876873447853141356529274971771200960569340722093852783911368201583323930029029691634730888185206016199619280263094513441499959519592240607407262266596460866497804149069783070406382188404782393348825852032713955823033956464650765134990493794205685027184782324553264823121437935847885147453584710046737733292922102417658809818105088602303241195585256215033177901723847612976657247777839896355045652773748521099334444575669269563783738792827055708941958854819456629222679239310595469254517287563287042808129127698774027242046095442011644162683354385933318410260182348886170890037848263425111312722589288716828278328514116420677404100177174654864720139084243556708811656772292781227555034167853164434682546596819982449588564862758519157923156129893486394761208691820759453346148548790413109095441750227145124645434735053517367739080515103438079997508132753489109695699461267731371116678267779993784493909293138146381086766373739234747187796434090716883218629577065978794047243810428252594810716408284018437537985822104474399508276392773761565619100571948532993836882508005637956986487312446459434311831953964170248679095844964088058785619850171538542484302865989043975525086065758767684294908031709734483508759865175206476723281690824990369403596813119001866538022296664163929188524168549219014044914761748183389329635690770066442600001711561691188576388196195768409135292324644995464061198143118623919279355164225657570482934394415655416070329302183995139415027660261241935030202242290843701712478416561706521556107252434095549084340536998608769811242105999021545191469231970831745964529774327775947180765779706656360568292114451362338545231654544391935330908239625049481877711019492113627457640466553584845232148146940925849894166338590357339903304561221205244113317329167854113454380362598008821065018395292625451731059292257470570199920611432439798546084305955385617175409951496215472945490625643087743687249935050588205032536422668966965384475091353212575473676288986160936271827082449214743768375960504324485854689403990176374900269291609339033858289936860783375323323222495438631800618323602294804320963436495509782500996721162851047349848295533974021094680500478603605345071002070403354852730097130279825970016071183575759559248421543527950045207326633990062932083650245278951261603396736628774374185685545114120534303123329294712233415867511064139915935005314694059331469252979542395392939291164716391786683262096769015317993853876831117997327620869091599990028365500571555793134120614844309733531817464353135663512958304674035593793531632289236917433447975566555382018162286998017169152823277302002765428759844550160356664004791516203490967438669869302973070099555112761905312525996423102394355599114326667540081577669688793683635506456673386771519412323484016057351461065709863976558678599296007831666549655609970298730249027465012044733717455862471845473219034232726791568018410837380390704774677058564999878208012965265985496693428046482873241053293530840855978464808601379228311408232759175488593915856479551233530868269459915066914326726167413968649949835973462128035736597051929419938541776092053803356221347910532152130642282278533134397288923675009423797456261859970060636093249329317522343614578631193286202597697016331997003007995335468905149021673658433454698721170291638376726050584093055471306755085308694260596473136529824134088893917326484395514919625097937576509558116175028331514274790342835616286766060912701562615534717891574211743181868251828984240029183231854085697463676058473501871146451320202256452107311128577210282716183869519071767102588701190254650644895194247711947084240909824613809221898687256302488401259205354410429627653455167412625096774480221894209287839438110250895183539135265761485082137177671538813845698619233113781956444633049830910995978653668725671016221799141191625264603497744130001437394093769036625978621978829629735132031355383138646778069166076853742711572658406037469730178100975746300742164761143755995389970816934145912348647280790692878320554159602696704718049066930057698045874491169322853441369220163232462139724904180985640155617266915215819993686582386814048391293797912841570916607065219785252248679755983527925669460244093869401538057309189486648642328117287747051452750407171672912273252684204462642697752060565268687659829291961870360671188731018341155885689945387325354961646714664742498205737840217210497211773218814382287851460841507447075364351356119002618069025452565429139238178928000733704108877456678506502381186661135214883177556738462060107508243667983530818304988387385959295167956151100774308393153877447968873668397001780936010124827713589033014216352700921655388760060703907090110859205609230436193170045822780082695903122693266795148386677761761592619563547343444585854307880744405205980323920310393906346262141265124449266575317553943264053684934976722233223161213544100780886868497136533342906704604040218015922215806209431863296705524916768535530064181151509756385576828260967987369712382211486235927348198507730871316925680422412659830270301415804086382819154289425839941748510695840875266177058219971208829723414570700016834402921885679305430337018721593415357698253654651346209009359985597967133982502516312826058308785137615276916884901974753524017057982775618788999800769939981096157460909427609697595661114340992422770649469277354468376877106939898198933252536714831847251602980131351152222113028093682903834154125525410236246893005002454068627059683835787647840694045025079771845708532240325686299079220711165095394404762203896061576068656923050981588309282887263282313212034502742777412627576593308123821671537884806908169777875932737621240214387226652822325884292034668126481429595190893254224972177961413159667367222056374352429462815165734112977935918118129891217308270853869974214905233585080282804368926804501861925954970830919325480838337153476524822402752102289829287283493135657617492748223845464153624243481822092957448777819444471648177668357242236849909619928731167155935053905263513050445025241821004859354861001087975558840210176232256306931797243600967569625802944226315717721787584360446448281577804329822237297279260971233917434355462644080861536902744223102393075135176231519525171326963882632560165462043403386160291940973070455372846657097129353806754384751304612203284510834810344463828790883385792416724201377657144856730532573050760495195324936807421635277931215378717638276631964693262526727833891813066472746248039660071841727759281525524931735175758196970982232716529300209260607076337406586243037232475344312468904056749942227275519818756370545726099150023726621762779814289402880341209850367645149110324157140442838552534614729601251453950665713541567307947220435048597974091682673256745565411467826222239996027392445450768853391110955925086496392555028657674364364731814678255888596917322951279850376331022854988674003578799520512149480536315750167978756142845792262765756094983368547144487087957679124073022674547338454575975846298964981253365083002346486493048840281588552656129616276684260121160962664853800636325106218168480873434989291161711279211815204450494424692110376100489674546314423375979610735060316689577341111255586391960845729425987691943682305162744966292653540645434750283172035280075464954251381634863441039599719389637107029605652642097585533313634754552735065231251273583200077807582743752121295336844872917729386174698158623817017157488214595426323194568894141564917690653953073072535734995880188035043078092774791854836607893435436860170540930834726844181257180824529060566597513844091505366011182265779557634473048857884482351958111832282697743000917959499733492303827499126335962988672933386468674409680466633522927239361452952701066665549172345147408375033256302282255170594352861581777607843029192637150037431362749643594313727869568035995152078476501973013040599342752808079210986808158094615111308282235276497523296887384288135166796580051030520382626253946385694628746803327342456244734485533299064697723540348680927978069372611495188520597807788833478604965402307342764827735601981355864991962150475300106964137872040443102013501380954696754332163178118895399601706344608280830981948040545009941462765861969962386550079176798975049608657775021013428912741832683807719075442769908663596701337877657787786915013402675177489929980975279046770671634453835667545729645455971817548086812561390371302002658343879571654614187018715614813407882330980695856089429196553048782150935365848689417357409075520010114626671608230988280411600540999445448008358668498395677716076055298272117276321763562761109713630582249615757335855059124396322027434212590409649826701297548524039840869024125548016738525632590950387529102102988530482204223069804657100186566466333145327758641235657891932521816242965211270565433751458788676130474316881384852531913035519664001529781298569045435782406685160113431320611165798801964434506916163239331709222828796157640865095237399450973032885865155319749194630282513833329324530744061898842254295603860032968321706611119504824275353496632878491600011590720344761309424942910051088828461623115242401435476615352688224267845363242383721205760958970262084157422565159143909269962164738339962138167721235845489187219911276577454706310287645728329369347409889072094707615357105408686470906897110029891815855588268041448977003683783982382049629340131967349399860120284371547829214102225227404220951054449735275163360387624737601203578185901143425230332907881309616671516817765446598265679798296220774834524473178697223804805835784589200164669736950914783862371009724734916961885065013544080082015630168284618983500516356624961515841635569982873751027656752762480878963910298296057349888876621309088486173667447424172370499019095820479328201844922628678291051588269786111200796098231779257354330654087990089249852436994787049072271046398345463888518378084523060236869589087694755014137179203169900265266128323324973960936514070872236292934208954529383388272187788393514381535318384579623411913328727028771752375036026795240541478661718859388626821605667910654445641977595768291956647044061352035031882816535333519205172358043489511033656447853054393816779150305824321073979145822459501450016174329770594782546220448044590528060104852736963298329361684816269495893287292771154253711154887648699612923609559386070692684987545533535207408027638786259555392456979026696535430200770926683240509031645950648604478394430763791725324704218525123497851387738419498338685468134550674083531227457208621671571307436826648435157429877959345274662232823308014975292205467242284887937140655610629189524777600530655957441375726530064159347083939706778986149113845024597156699211003573677704495714583793467679031043481952150031264289701291097600879980253843710945816885732038799760022800561280289432181433439381547861552811777796816938047760309288582793732011152856435778789877555532498762360683978416884152703491344189818464430920315056299847257162871675177789379293184558378904448358031675272805274605742344694620140141936681007978079677858382933539434150054617112402081840397822796208435800466570911390224481543683749353068331226426513986753534811403924440297384063755940780481398931141384966840831684867845793062012365524619691648212477581501824229064191495740140402722963875193885799123613447885860228074590311835893381431120599240652710965802032544471081845695695167914487390377206565849792258041855153936512725536760442044719684225764946315311907743085868601400818918588467088122578655873967298500137199597614641963628925476668399978755182571998498270335962129891642986850192800636201469400635801943866737211882908955381566668524313905925559567325127832987327928446209139180579934261045488717105879829619905983021323422405703602175624548187854605162813358431686692082775525125685752968729852879075309677181888204806270134106460125697654803939145784453004898926374157143621704151568864649856075072777337210518312467674700769432983571568402708435402693432938274916604741443415635811204005300351958947706746630001818231427546401215766849682654698946468311166027679168243188785453400570758534767567781162081169740087684438625159371247942715351995357990316538402292285689457741275270409351776458824298958008527404630485554111897443084191507120049167504751932624494295265114835754602248982306155733470007580255288605380313864393104438421021712222051807759697148698158918367946124257495269037217941184170182910841087051540062758172242239500225239074000834574036269830573990056506696525940364523331183947640526441982652422736870625417318873131652585495875645361497844209332189612109440366194174608321129195493711841124927328335073908784211699145691674609229473430416074814359022304893546844465848551632364935830219723644108212288495036080429046039287296032102125695805069494352132620534034955424506551628836355925956263762639633706858285517153292954856098851979021379922782738445825627963609984927329641847806430820310848543351595323942534431967561470015073542693387083935015720185077745313130552420259921046284675906239886665542023873024748576692475821136195571912308032659305989066734342308507858907196351683639888932806010369673942423539696463516736521755987411203580682181007128868308062633603170619110847493372454466955435913406828099956130592951787364232849529043500800225845912357327203381984965773162213791622488738765495186301698187540630534747308581939105298733375759941526019877043923804299680817547986743878637268180241529125400521642414412107739699124595464401077807724233094981663549575372899422832458963003077488627117232204929737973092960738724236081009147584487315429073611611710308567318589923189503974411423135182311336620205473526959061757361316023603598575144413683013299022038584854217460104661962801501055098915948575278001582096676463256916368661744858498722542005950193254261319414261138807242601790252208578128157693988937808980075234478608103794259851933393686999576512639879111607611929621952707003140580265974624145571680468007089732268812691107532715777117253043784298878891105362316811724719262145801522540003214256996254285735545095768258263332189150486861605333431866787129319771708922094555552457132236450537245828107961248479859695603795624032114143404080271478237818851573444722471736325457567396307835473618126617969192222856899926022300731233484669624587145275426459471975554544888001678957358944994112354809064354929267131214123088174372151100814090554978325626216514065199222984093759781404161208857708464385837812860276954535134635975314876400200312207345665548046923942427808365746195861446936685573856875188663458235218907694030247538477193440174778212752721791140811199255613955997877393866000128028318856907231469591151431873284069325202209060072104104721092221433796181933166559497006499931513837023267418141015300949124028583287517481803105173525014762374845515732312397048965694801084726039873064778147756973167723512046897011984192950871396130692951679496253316967026966642075519942117298020898962489765427728556014336084321908090872122810364233890717580680113747975310928786691738075235820212847843520318784184786460598252835383033825550910479029494720692976092146354524210535863610081617419217748506524459254037474007911636993736942536745103045395055880072518099820063179432590543470803775830128881048211987734817106857393659611771509265031990567681428227287922951941259506838554775249315098074341932296585292948221641277002646642834858283858765500962087719575276662865940653248657059023910671700080523443169789032200118959505942655763543565237759021903225061510108220582274071018301024286009513535677108127404488928101294990672812914776989921496983909592405433060889461224564788159261388922839474634213137224816673184289829292719411915343005722381489125224478652200461744577417833178110641095760483495349635869458316992511148758503997965284452018739504047882148595994145703741797623171594807685057375236727325850179564817153319780515548395181555701372092274128825174245390506203698012815419917473620434770544523994157183941026829464206989703516934215720360134997493531020723062373223932703354619180775915454852635930191064486883317502177392484421131031789055584124658220769851801152605081307049197131977868090485431886653303267429466784345316586773716724303855627986568406901820343350481020972031907497363700338940129722767567032822758843297410587116462295456558002931645307029907093423568251739571114729188454214302941233046523785140659776643667981223011830441801841071665780402489851215034365009792089146755766971530792700114523589487624204318952546710594355884451368224443573161078348509361449345059558875489547706994416326205026914314753052888978922868162921063802649654163181934345524599225696664490942226738084618983780285039620925276323535783210780735166133133370504813100287248650721890948204335789135792569635011980824208234194773882380472362879240888623914782683404098144501993286473615120401873857773075780559474605567647620489414004223168838889409839281692013560333188585902989496008706449920108299632531786402247763925154728231914921001857787557461131306707682023417980779340282968472806005512291082354080404521021886712169959494592944577319243757907756130910944802688110557915273173371220996449570225334264917953977611762268558439792429410342566323385005874541738276360558961572417155235578925214658833408582337369838783163220792289517205365306425887540265962905092184389318286479903128705326041297445227861447397619937152461870012674573031251469090953178727012878845960683689753497326840713445933562734116602708146220316884361669352650062222770626372288240285855682601173846813475426948623584837892541330278964653964932378454766584026038204445199455407241813243450048456898371398844327225525906250250998981111675219420634844928080924015631229055045641378418431596994351386372887827381769489681749999907390005656956782963056154612096869584192403635445915961274090783779455690754920772334984367097953312958253113573323712556504870921520021533363618765613610242368649038577406127687755552180379696466667624804531453162199410475029425046015440138827201129852379097020529243220182452668472469514186364909892518137426233615794274464069029869879438183024393025029184657011954459691126534726664625845015586601377085485063904775914196494308601956672141272960697502912779207086207603495800711378505369774407354408788587101446208644132399210908563108383637046302988208236094172771289072535815111759894376458997080822607877017155403472923153167552511885956023285341299110594903928543440314740689897419057005666587503841996474785804460131791717580177179530645065791364091750623496231045608231105951772046631336518331875468250777469086530099513505388159607511026138089913650637621360841147863528651239917708565574082556196032358460475055641810050146123403746214443014409396828694102343283869662875903020945921186134094803183629699513853826969805371900899685743751263326272256532449291746095117396287511868098654020661096315654423536875340763621788148708176645576227405807964399441781710677401612828310079357524790248329468752455197260029623749698170133294398585461377971450815975483882115642911165202823576166331704277413038469811149263616318332870528784501405719542367240809278327540496510213795635455103312091814665413634811304698483563370595737314869907906680832793312628944908278361766074678385084220431266089574280294226607460287519142180252803981797127929822250772675060104288219271020356256217157904594044224328419794211846700486963471815788083352345785279300737862241823126178397733497972028643995429641762249687228465406157924934167243646085257748986039968837864015888548398206087960906165453795495430858957879817167539912463727916603838740136112475779328232495039805600761770305481099651493710946485956063229735971227152191944031186825721861382419171083175088072670777412009463445610693542300824409769303237738022316702489495892308952215597942682531449438277407769215495419211839695157988183313618037411073030172155752863441407601671147148083304356659150422816125470397831498592401998999041358019211627828277971320742135661140672415081124656964095672436079920989512059519705853681975791372935889892905283247229178647282415357859066021089870229560923257921698285343004522543913193050594770317040709620680530293610342262380056079032061585951935186771156106916652238126562340083026616118727089913038445670957904071192460399249117173785029451365549755219381437505857295651770154430584785676947183023147552601003794381782565783928682346819165467789727795744809640513788435161920920134142219527297979224838531182329384101829382309029661633104259961856196811142127938731540570914419509785452891806841536181781810512990392242934824665217262196540389091101377545523492651120974979905883019606974896779809549778046884902132426364652891678602336356912806499978592554153012936038793455006446979915608291773394972437646375383472634162956994721114458473376550163961871840583196196214444550770700375635081165092116142629797987436722986904907345978021016311890797842408884071967979554228579667669029495643155175798536893408169969879071903341506055802051965949159228750371893740645755181840983491326062726539017280310803738786415001838250114968399647448549231679518429238713947042667194637368795847001976572420707569760856540835052693429841432127138655808735628505991010130241120358507058565869298337249168307610538205294864834449767226387989254120955795639299885830765047297033887746255415355577131459942648563043138753960805760398181107381553278134393289463694480466538912958562478439769344720734407699538975506893056195992479286345251654932435647598174762040099880137187117524300224146925608889450053020544495282399696970786628813531773662907532237588606338188278763446859356599969434114030483046414646765783258306608516516444958739897750012992170999856526017566620033411156475003201310756706138441489721775640698247586592247787475305519203270543483570254347063892574204923846488390572176307363041205512645922537964638229671309906162903624189935942778458731996945524756831481313076128868476163582439756951904207711425671040919096888028420076929907458077372231087590661208473379924120874753742603988434908659270896141149435923089200405010332351977411335201846303472625346189338882172502976719177448570521431319264563403495837274244941291098867194413069804213569736373142864671410020369220151854848640813603835833888518840972173135452775596320352631627244993877562348675192240700201318932041485946896157252858574538054589438779362888761334556623199435632184069888394952001891852556221785534015371486051434286655871561950002879156324105981564228501004395048358717965921020954666903576400255349955641724182763896685521110106046420162573566944674516884547302796830175890096441412899390460608712094337237035072396167345973616476316154195520908056086680088221583892799138744785529878338075290336738474910512188666625353800831203684494313424001168720901110956501979123376798246002897471137841128030711437234588533950565705220631520421605586406197195958926874160703798409200413843935285544611767832636363331412912880531566062284930306860300751058949052630411189628169266943596553019453977838459536955920222602731996411234994986414623033395750962031003685667123603902008019677308608682065166882353287275719019534007106948983480836714896090829596720122090485056159014859285929149792643391216981684721230994726221494381886428021103058243109701956953707178726015382599857914113419243139888059569105984989427801820203764727471121242652381459841278168128668811700837057086947533772373328963152094307893930826742509929336224197669115913021627000286442681167162080498629109814838120144934631540784509555420683612551668677555208645488189114093290515302453022171632635686346289620067986803775441281494768881661012347875614727925969826251978334387500247406714000808445681704435912049544180418066409842202792917886126315170101903414290713459619505704985790062713629959749597298225099666448801588486526868928271610552848434062687850061911586962047487065889725781369526690978813622630117858607841733294407002509906655968127891686639114469479921351939632821064398466789818521227458241475635886953774224515588100766325394890154228551761433210396592418717146973738978686419209846987132450382769218355744276634715111138657565635015649974797672132873546437684399326809056915790249024095604240129934355621696318174806280038493479201110404244281790599406661285965213838037139576730326075999109780121262969617131034297610417444984838182819397505868540925393462500304944734066573159561624700267931444380307086059737520181184339382336542370688788092012761143178647427983697644865618135043084632362952134473943765998865049293721744284913789006221782771754190433289792607411782329671375694400214550744811629725284994865781578866723227602749085494067273678247745917908666164672602410621372648816119778082056078238804523020478148335447243240732950506369494521003191574032425445888198081812732346041350099604643300572902446822722253145250173503180595887086075337556163622881670134627578877204784704622401599194641035493507257527686470376829420674495794394894208366823154124527267672696549969599640064556381183824088868460264198326272590991303192949947622218252707458714683442950025481057256290321365300757219178093787338766349914790951952847539460403699496750743085898231620874620799870380291718968648160241002134276950944290279215142551000790553627391805417513944067417041193906269147164479555211843619419367855577895759933423533327883785120526083055040564454743177193266662251585468797528092620304351613647161078432329151543573188978301607716136643218788555489496566593276005911680153272752058036572795892587213027098970442656138560933786886726227695562099289293905393200897777946906269042684982581627690630560030750027703460515383202747180802380756405318193874625514775520878265614460636023350656479715234301554573490362856593899790161093156164185554525334508975943272925162023230687826034261294082168135161293827287638381648800295037527466310389223132329908787561139067057049562291803804672354743777731869749653454760648981292019674163269084756329230486253846118731276655670860662039268283878256986624031163398577017935036095136855076194608776166656965510674169322758179445146144235921712403222030301389026093934384242688545463064750547360739688474757987342433124642610719632791665217937998786413654963179214455997568123859392437420769369725493522298082290137996024559115263960252777538925205870303419621656225291649297837583151730864400451377285056379628643587799591698683514037699376199458223664336476992289960597699563231925242258225595930704590028056509091617894651606886990084492643825723221641325840812500113083719085901347857956675505091155844698085693973365465692735955669228717384503752158435987064299863185358565316749480998108149062037629389048965518733541664928081446644188560679406575308426504791958939418937713943453744054552722599746835402929370253291066553561045846294847782685428363249066431090308406634888358759947927969321487496732591670936040916573860459793940465805432156362465474679276005739371731828347355473610469664356969953169209014767534517627302280164351194077625004328169697339323154326779836603843197380287208216944383079132636853629989120299281996940139268606402111169905564800656384655098547168209050751657793032690054592192504369687903995328156053276795685317454001386843936869528837355144121886279609216251028619801305453168381384315771519067452785857738502620215330668515601745808900117337752913212748722874854571158934441944256046655767676564903172209574394897197096493257364412090169311107546555866778224898552919529489870700075576978475914856023073909769673810544233963810072624589277721001795614679386766691390892562119377823161644067233955191194924583634706133618425764854074013198668782585089537272304106223811084928264672095574449334280340526637849275685993643509566607052832882450152442418291087583910552507643593938945907682824528115573093536976248908644920770000469097097223654932272470475394459921824122492045248195891238353495015018104001826617397761008565025258297349747698173748696580374693949184513623362535663713556442800155833804401429162304200768324683666079494997271366042557208058770421804073533842261894906664062303076436408699067308055671102121510698158562646428725760878832375125932272267213364726082883905425102198449479710497143657368481802150658307100530640389509138401847819649575922009684561923989078282373390745294550668146057340907763446858711457345451131383740639623507746921075463537958620903232169472989971480986715177272688002457666430728614471522850901482414935107849267236947154931427278163075387266390162234120141174302860026625129303765255775927287396236248194777120543291167580338623584216149574673911562824082310986704650159512190748120154182513883136105239359299471675118358237549477900718144328498985600205813132782263732055154559398523879234136353942463513214972841000222647093715004783170516242464536890694461356964229302623903049780259329909032881974334461450306195123373375875927925557448427425565793258209888023228701685501545680629066079516712939969921614602464960037920715873282262834624437066709197691207024231457385658117656812252124702803716115754856513674583520187907208950575473142148838568933238371568398111269209942218077079934498060767401010505178122368613875623664479716363437605797386606424071407601962632776229632708515612840775162415101712311114612542157021352387540922005838824651236887147855178648750100673541140938026023434320754695371194689495149679214029882085254029099600432299618845861678300354506797553030758624443883903278451579416127696701202603225328890348662751917092029960437943909060082269104916217942603768079471865273491157680291698413681895464199588633465939606055211783976447192901077502088555700104714173765858873790365249737508540212891126957902498994768101190429728865641405134778659566196120535246600082788224480035861238692616889087847057780433051020622157264995339322157401776285575568502681813323987963482403143167276430437026896210211109834832292000130013388837648085254669235098840366645024238589523668520500923715997168885487949853842432994982401444440335825016320492142810269248729642395636937302423065664310704020135594055939856073807333770543750363277035165901208995125118416443751885144348463596025163213575995285727619705672599689514612596539474936030044507720789173752296067952675338257378716970739094550380529647826173716237992203187684064626765343504750493688406570182101987905901390989987066159464530483136603312922318138430947306970277104878668250168170183113582111310626584471148654072789146434312680362127868073580700430374695277947418017278868762749838839114551442945025826707929507717140421442519677155258287045823959955488189192701420853118837773109195512475920132836519025334844566843896578439264971892787260750073348363009228589089276264103943970438011054824424589418168415011224399045108740145123751141983110430232074813541838570467536723317992645180879224889452383772248866280533122507808912750454686881197040744840293780529666193843505251050399424651608115183454486580745829916341260405278494966118240662550307214452500180727114104468484532100209783665132858364319367519492950725957297384187724332831506132216239718405136614317333761759489476077959510132951115385695161957818339892760827506542643457234312234139400703845250610917429832973534906320362455541498002973408135471026987727448612942837548705490124522548308599461072729983710550861592427041819427146416530125919564783606061955265560199019092277218110947037635351490317755419115097003538856715948651982624181293919262740680809889670620599267465594236722515268410445186006641656711910952938043736034623550357383066648528903615121301710004430655195156170260943260647791366993623828468091208947698795599255668193956371357371572980427553767413323935810600423785889557849170227964669268119691535030475117447807470380925254753712311865443232166155298146429286920474177967503235976523713366271860702620520825788774945886439672937321732578021736020896707631016211569743120339159937752477763050895662616027591171920719292411023307219246339428935875443558786741048347756201910962341981711267797169982468623527595258272388710855785308307897865789698869609928154385356453006598344715567925673758529540229951092613206497214860829173258991164102718382517294593826669742889835765809934106380335572506778184880030588956110677532282654154683670065281697864867193509635576781742153054126456044157913806648604133896051067719270830066547549831780541932418640332648097097293223818936486060388044481581865887764098989880177682450719972185185193917172666718928646410332559469476708236125474807749824203747237332957124032899208479448177239756400777069576360936632940672144737068045325110817061707140894739750408339031222603739790261377370405808884705424783769834559376011122962092049139126944107761750161080115298747724690172698004436163402931732659744964105539389392217569167096563453602388430973691277206035171148787771022601041120699758721910606794613827884024349529704224041593563821803670973758905770262630600567104380938912392039500607166222587945460906627968287279514087221510903419006684543834390361039874254087351988672538397992523688167068469008300814566189629536457553301978748382290505316091534542987155983048830069072554026505662334962601791055426541333785637048748759977775826661822729281056273721919623399092532905717353533749812476520030646098360210165092296276100710811615089731310642815903414270416765959270071327064785238625414592471249381331231991012801547651842136933983808009244092956360712238245096546471022438825379423546295613743168780680100837200802882382432964327449938677837971725336615701235524526238883208952225647205260355782768476243890329717695207830223189276712201970761789516531371687316664639619135294100771136985715394420543213233610128094846765124768439101718687158431930970733221745224663929257116509403423541981986681613952977038822395315015795864942682610941254194573879969382329411551471799261939482559246701993599544542987368208007660031009787009060051752468269725703473727403579074905628427297274383227532507780493077915878777245636964360130113662046760505714261705339283402774591650405676690246062237294620519482692345091928329743529656377837132800560991911519520141862368719577381296927204668899814501572217239448860126928604516144810807059236261698983000339221105495924193295458649688374060514905510134681334872911566099538284119967458929071490780318291519488171337708966296358147650648282549243425780832565367905182279987663813089310257705897836230369703029845936727128961852123882864280295716827653615805329562067661451597690586895127552888678453504706565422838971492632873425353433060504791636557179360352228518808293121083683728094692205267570024755358775617799776807600892659697042435614872336230353533959757463427850950482887442521508679539852769603460470180627168157101683201822136316419771825861855558987377968455380068432208222097853412603482911058137336883392331323730297782768002108239694165557676568064441815803685697063506526583690544128449801653837158804053720281626950673424692506696986108822321933943567272279997606765405787244846352723837781823360975396613448417091591115373644727001969382121518890861408875920616242663654543668114724212107392061008252773959711683423311004187374804461767314814992352287789615518210281961939659057276429868105442045430193343021208931507961637077233370619346451249955574858503524449241133985237925350298328264511321618301204199355381402453114180274324315125505307924790765321926114930195508227341650363250350779165531291423540664230320877148868755108440635912819027507286381641962906511383679312502173572878186537504124387242992240049517326796949148073953805173206195374395992406632284712527957675572572360455018223821398877729744885617794940090560631120254427507229312020079237464416947656274876259102400451353696653013117940418665822737707302721206629280954629606950758245344703158002059002043290925395376980229089030016259434943115365197045108682753729162141076246331295854943942194875853997163638174218922516193201166824521237147592111624400358997594590535750038883416440757543606303797556432305055350095661031419085369241582559564307366527408445988430451558830450911317387350170791070166752528912189029055257102634474027165456308331516158740475338549115757083419169079793927780946130097144695068234728364105630669166312950819165050416763458481123989789619497374549940350875418270982470840181173390286518631119732591542664693147570597470430802440995943640495573689815640539920289682119089432779343062203435333771228236598123866063811373355534043780913519403043166552483942247648711811606391187925696353680685061960086687005190740616509012938039083915452593599928362944044030554636899775481832857841630939529354030595425649802872312344979692794099437182710013998953030621919798005364289760795859734938371222794683712767315263678945551095130866381682109113746613699642839048362462391681009791834065375050267719628743702890559919630020136226409593029375810730147479814934873007551442597971966086338589076274861198797228445742664182846166191309691865902793667796269657884787290050004533378843242486271300700263078550612831133283922256245290687576433629641515076566769593205048438069131159930527507000256017216205936701129574382326314588766212461760767760519546654409963957730593025124977425633911605889316250494028099941171769450981908386753074124535823903303258256379676568852762969254126059496114128157528883257543817323173756246230380735306387449586865880711432618150270651477126365973836919798756499901507991393475515024658886766478116771626295385972243829416658672550519315572241312205724653857941510289519907722197013548642859270111801487406138405443662256307430318434183387401780309552389497206351137921947812367857306624464570906416660153451413257871787119430992085498563814825535174951619044991159142713324076531747209338862005586913090029714817623136872062327952865366444737136796202418690597183708106209687773613839865638137276844042066201100167208332901141707056192134627168770888367006752331425020163519527955360448249232125328788476357670143078205769536256471893770600856169991377046353963191212440001752015124529396500987156170652622687847081045892144741659490232433301620625205340772299867405955881147690728778876368072688481179365872782292997432341919135806050929309402794513797601846037605743213643381857595734688542066386064240329940879355701444139737247607107548413544930755845490366139672624402708070780694649100846757901876886627024825222587502123984978769851250484358504571507115347013627206559237441711975306760092369969505005095581731377087524026870016291377696390700438544806189910941282033899814202390658577852775626431831089397504039575702811906069173353402211177880961455765700498428398552509984459038349576042547664177730260571584098577731918492360014914677766266040275009108073354665786187584166073518936212486172574747583584536968975913308508995540351134728313721538580691400798235009725082281776114232233981560954842203051350866143283117175393181576065346742670824424330347471669599668580628760218498602386004229780011515266332088031060576853010524027470825587276960029269369340136248517130055050301159415735108048731877477530514391560236207982323776420659929297249854353899852066225446182077331021536927747429638823694122199438648568046052836689550917494266856845840040859149232771332089795309346685281486676763534850714001350056967182090992015966033659254671082418295773582189538907133000913916992631096855159581618664323894330503743166601117373846403937547319118457892236749983110870489104373419166748536254007781746984225034264692672317468110388378125970699963020961945323478178364126769679590200641328275019265368698494792063818124420159253302546419490554387949220156752476891059748490429871466833098127110832551326992038786285351458844216457025269308540237434262956560010082985663485519556240437710491825441888283332281738765602530044389676669752197824617606174843473058044929447583013854080651487407937384141808809192838403116501908895162789213045195285194942987213098394102335383442696678777172969393086279723522113904243961782908457841958959265008266927927862894809861708893321242017599415384230620374147656152328981136202164294973143850878392803300603907094894210467976635304209230577760568364579653377091664998887340010301704399284438771022735704473903417154102283815394644520683477479358752617101771336904115791183924929088036112444306359759525474202061175095596542236737083561546349094165120545678812302362961486702149822361683852533041009318045976619072675018414707528608223783810703478656350971431287491837842798838665361049760182507389295597678972664533350259886166505618830237724777620134523717052002744609484717328998938972867369434530439366759362626042209483075757876027852711681436168860249865702849736935187401267747005620725479701586305992881839167761567154113659702417197792728315688119351809096862934738700694149867716761871379917413800584856210389583386901787218244715259669706204840760987703678431613251143735760125463411881378812806107916658424883601426139841491026948219096756814362011008639094698882554225841152434672562054586063911434488093622207648385565225820429653282847233146027240715685406905998054991130386106715880009032932061626286886464407260190494489401839456385377307267499969446581271978024499271127189874239771017813424484611894732332553961907230268282702219177409307256790872466154554514345269683871157599828646668277581457756965608699075274582528410741237066879229866263299292864039543904151720353267590422933129381481051913535618888558227119302810573000088953174367732879519410008856242157242876934114778827842667381846798986822588379855656700341675903109168522568750622308206615734294523911699247134334261148560069682779042444116769943937771938711281675437976436230206643791135143656820882698587512293569364482487928826898248378316985237573319542223629565515834207814502123370370128867025236653577182708574602024009197264327663828673742163286746989126552229511507590288542814695862307170241618790357536233857036856219289324832719064070316852357251664174365778838852905993261947552720174855385533586698138242105209287066014596259409305231930501614082332027161199809033328805548859564550796769980271063877750153823920166780288902007529194134605946417703674383367826370043114641146717936391574227951391887426198164131081753661112998017509535027832217495537389563246885045140831863130935938721890542315218912286754429265087531697857739317374099228818825302450634085489879445429181209009254097924252195697167271995733282134658818526479907340519611191264386467456178397419408286465661035893095941105287846439096838218080077047265959486566431457570540835163549432630381559212533316224107339908769633670388643322982394768342281710251569551658791505757447496251826504649198156654675785829505128158009508340215161034295818523852074209636057632557442600360723268134740568670612154711689776585134620286570027355472575222125722124774752064165227548831338248748815836763128362884092389834706756048156573377055579060240559389566632633290808431580023460579354625258057576131299205471034452672942083989480790824464566838905498391843206237828748872383717424800806425097915696098559530862993953588632958255121639489711758140730126164327322559266536930466182800825329322186346387187192086619124020244530817919348347039198644458393715394955877228280220276505193211912785008490646995381434673444742888696346110113971121717337589235057946895627729893545164770099784297056753745443781191162329942026984437667127602970290550557725482739487051359980077300168483620402741222511801891420156118644606873142167272708640335564065458412577888635262084001259795132191868830839398208793656641853950802660172702639550117822871090739722667097173097339105508227331164805677969041937824445725036157377948727600101215675475945761393505404360865430595526166465419591147272674381660674064441858341237443655751575168282362941955802774361819276153173776418686499732307337622107042346544442009152955863656048482277670744476926433114133966401568490346791604496955089356659578353917554538796452718699044398487947302921071456615598007418631428929074364922901137286167340246724757514683263834139929804386928522809731250825948766652087724626617975825321630766567174436085796055549032913194209290062777837207836411843810701905201545628688104484097749601888750016603855611606699356770365357276116826652820062717582347254614064260640692622644012152163640526278421440374084708799488682701323836664712633189851843972717481381175518512737581243827149289599165605661578261761345384763936268743444370136959061795171986727007051364082219854612683700470849730757004909274138263223540305698442919866772594797004516546751872966874396663445239653182999819078449882907941636432078103038063414778378918663437028948718018775592592801423633293819934433147774660102745929790500955044090059341102527695340920796899241171636061312301400692995485280367654743438476799591436841656784780388403765193766783541253467253936828825983181687781759755930000905989497084260798154589858127011442941619439387166623113955921415527985424984652591457311928032787881719965358174689129357217821440359694965231977834300861925239032650772616443523084217274468391522061005766610064312236588815506593375465344084487521837370100281946981995716911775671607424151534930616892251641392525920347349496010342216393824299291249280391320997864952082545700029087230635370429946466641904319769955081471891572742297776492342838897618934022508137489090197792384356713779399524788096322419156345367224595245580731218462115412462940881916640690958845373264696129895892925495757788638079400246660776437642561450122396483101929697963554938887579855533389281763989079408967280785430590841705175850102198051030666437241439250969595649481887560697601723765438090001062961764420256129945260267616029874019218753586797582661398060228828352015491978340142135498156781771209415073620868899121107558073931295673751101209286012589821573152501671905822824030479512107596494325071812105366628337747533975971463051433918319912524750327161159324743197458764381586832527500419062363083153653014235218783521624263364180015119301915146412247200250360212910382593829945672439061119780397477836702344409992717922847419152318335319065849335627095999335714551603338074712135478109678177523847359302130323499936741009985775214534521217574377273072133416153119660566363972772233791636744349718243244206352958591880341082962595489537209629456813874795231180276440113022938139480728352556814694807309792925299214752614722585650940952728439926426200635709127351481231744085314463219945599307043725549180624952974993051373779717943488336521195643075331849049397167197717990576266861045622221102475162779044566656060358418677571770578041345191565730190118452647662198354030519874085750901604020330362824092567601537528825392538132290849937256635719332407829733807558819824653193070594966367739300739656378096783583182661511112820027728865725748762990421591769150664450718536801887520402518673521049271937419501209910577825544397397106439648658078989408947129719107180204036789537893957376700857849956538699249711419015055581494178907813474595114169583638063384585303179321458997721306921895597834598708976739060125223055937457547945456185782749713006052732061203024205828801507492431113001388760387501933117997455162943731823952092609156798260978339811020902156432732485334158734827016462944618175752931925138478874437773547610635279395341708184069114553486894194461401749078687131869469397575632138337254001435703125666467138163827656110178707082930858323900379160469891136794266813486181695330467821930042408819048639363630114017361076622852192971865191493359786705881921108068587475361312692421259070832434636059759265412132092316586214083645145575277899183694125576223501502761238766171690358341534407274958661602070137296577418170084141478876167644114281819610558034889331592051137900846899995525238733547730035695417128790392577356757689427434574394290319880942064223689314962204341567808272002960726307941622038457665831339986461845256497987538683104823325852470379305661475664183814133073525780423853769717248912150723366135909963497009944763176162537822810012720634588591310502402916648084142406195168014405280039275745428125892593111875629646230258598271196138364822785315432403452142542421519236048767232968582506131035452842486274015291081576571634915868534509014966104113486499114470621457750029502032548278705167460159542253954297900785129903444898841902587555623359805142787877300316275923863233956185613708309804516136146090465317972441962560683766645498310606183189930125873596280455493977489497132347282571554650028202618469603184018075152118604168157079551334475606297482316079227740312766478548442093711570976477126598830973632740745092214639636039920031881509517991064750114784909336782927411749149551950283092739175693329787779410249844317688798832435974672286771887073866272130087199811666793456561030263522007320034471523756353287454023484091329049326201694621799544559630981596461164638611321621518341665572797775363793205365675858853169768054144516025564263709929325179990485473081389565095960052244257227946758495319545992741115366775870852473426821316224024208065890484638923331716649215997345291642603951245764164517411196904936940616674452069775907482743053708963986873995738828238575893582959854453060830279055236265937111041734695105802834908093382485905157497273072957423984686136569624409408968545769658139103009285966020423439737601444553817424233917911827538319947967639878232015907294380225451833810244347625742465802529954594093039028486001783173197766493906414801911200805765606618473041094824783087424511712963985904088616180799636834537642586046230327940876861689932332007002594089214106942357843575341972206940953522758999196863986021345650555399394338083258963748938300406235417387799544052332179431690260280111867388148104088816980652258120507021884825900181645729313645522226514708443943885839099779042852877168674498142120117119238942450141460787635137520365426739197554280830180129789457535943317344758688591151220140142980253548647363101635975052004072275439851449909464714846140984263994446728807308749523504674049448605760813887899521839316896594036305656882423553356531169288406488918978079395483292202597722273332926461641102495222144281039166115626236523999727085182567021395242918230376756261704498815053169816354638744537936175460364311768119872290810960856951525064371084121775943852537610723485868152759876068698249712845340122536125919776574585097594784517450817599864380827798736398624035297832209474357344542351264237769375983897471199235090252534993576362452833797832980633984468932550212418842810484110001345136226185209198904224821880881328502311158765260822168189617881610615138105893379804010857330883016919461923725972309207362016200631191131176987646613941676221505484136140937587861899596761875745422167830212818121170903388812691103809605557910700968907434241977422481117414764463623477692009555087453309644565235028487019183988588538663215453393163633192125842203545628641073275714483398470589910384707549975377368140226484835013246668708659801107591540529533947846229288509386783184756557675431824316855477935534220577920625632991130677941954296123914356727133707491139056973875863879131719077897619409962574356348683524726140531740326161553727433503531837525412191010650265799544045281773279008413342439748468298182264996948990283039958879176813336512590327924076643598360386642141195314453419257861077882718148794976943411340159410285448482954394151645532596252064509502024662687161975757600484924467658978538323827400882421922161730273541761498565921821939798346467712972514177820938325980705477176287014224250831582977229185977314795891690924479153615329549374464120280923866347284200136976018010396744005125098848333357636322374001910550661055199139410561412017555167608506884993823932096361859358668498282859763452194063831896481348631462750745806424097211150614756129904494891886268443591729687319316269441298148059163987685776686248015865113947459100827198583700438449753253701549708135738321817284927635580318072504597967084401219490453956307961071913985493968466932444333516987888323717925235037594791817534075906359012022132915161529717724302443251664129848678235358613018399659221248217560469994329005907631655934742511429240454735121261181355366803519834259851344161943052980779553999654227999257053244191081124423238835218446474494203734400838706855088510955815725268040476050080534658976087215540635672068443540649835479188160446977481140831143624263562950803106560774981143482056635700045077413046433071155971462957027166417407728945827457976314030525452705446730001142149187324757223714697697704142408505318160582284276340219727891992599181464951581475520026375235734959951047579193280777310722572755945852984910696748905693381139377235267398461222113849316952926571719477397419179544210070368825052745699716705777007654689357892749512723560324124902236895451141707180538937849977823409560769377611834224880265493429254141215192700309561544205070423227647306535762351990833300719001972958181767242895433470467861491743385218375793284233160859078796864216570598831918565987811872156819544164249714908980352709616834261091482725322868889192453835246950266774268752754850498371929926100748054108829315245886043294161774412461035495399796852582858359121782340180230811116775618475569042288580879138007315855407584670901910898021889877353926378162762389846854883312571339857081479316476024706867444983534111379726325384786143169304536914202545365913345611146307186691954356477884279144768763648382623882259700112792274153985570528959987018151582035656096102599983127407636111506512537308561321282077472408929615276154857102066089858834703518677230959246219150815918330467568248326805852494233096570464272681808678660155825600913946804048962316812425584643191985507696833771055850641518021668563448447139843312835196004014038460854088381126652172448529067656719153568275262268550404258311181242024383590022979907937930361660546769238111816984713237327355009059971851373936885402758290202021193461798037089021209407372512383915682267417682786767814403419899485734037992439160791041048908625474630720824387616374695882432883543673938298383300225709333009079471419841346078370594092889524247975175783780861197123380556570352475967190127167672279757813260240005754992678654276863214470118551439138385186523644731230224556238614262292329729236931243896350088204575969148146335474074507646353214925701671635833309481539638410550156321201095829127389894196224590535728703410582792624642421880180854210513055548222284505608600573125066013901940014422201617235243661527443266750030859348860157857490818664790795801805489126040342159842717375475169682387653869613864767069326575310065025536494833992561174311012074191668859144157180893406076007753557348536845522641529535495014492427815428817659696615466149798060857959121876619340788004506917583950234028087046343344315837517879496696196283844816163810161756104461016573498976003605712618500344432163244913145660579992990394053005176253900480744700375273102890122271707126927282565533302364769026436989799396379284817460250630248267150218725197139756183689036324492793208965532330962713233361278376925458389948652572520890365795463825305900591134295336212802446670516382954168129453080233130761085871194596007745964759882056534160736326628909588542606252272443048184783233441131411402456272045818183525775450345058654695505943584617016149897579978730328934474449322522218215775230259098140603123770887909398157023101369419646720884010252413804825403168575913257670094559700772442209467411733794563286879463993281225093574688705935661745632926406119076447650969217245914758273650737883331399220949084328834070819663734491882008004985620818931183975746039372884874261824928956526209673478819833857258248119059089819431396152949981802871630472279224538580672448493488518343881108880705797349221941055500064052009989274767270025789070450464600101974340870363197988998433969818048953864258993918654566863632077320886783723900105016244240769599280076968845318960334699888690430078780783853724125774943491253160923231128877035641461080941426284988036688817056275401015387712955892001040173020100382039643950528297495554494743737037120063108403871703084731019057210817273496788023384816086632390710878303368365529004849386253309257575226193582394633145421684805305141947282014528245312817174561368757679410383047652977808914480717424894963330519302833141840858446435094681585707971161121800203719623905814380220324084798106684634889887200615098764529963270087742021359174222906833144620373750050398197011507563608083276798871349665473355452459681362898346999660566045789590925968236948602592873321068254310225798417314724867506123661728031442351421162625800355568028171154288584280862338133177524556193519428284695418325984439720529678428786850258459716304597005182203137531045474435598502126435374268718966916216777046580112180832969630578364915917112023422841465864660002670673555271608844086907808389816735925403204736829087189431177169955214300611631619703356334543395055513760788784850881529055892339033809817794605509888391508685959441997395963639679502377919137904904882434167424480502209702437328977581891059017655320182063338959518233662028431728038786283728326461864509926790525566597810456731623995128606839615419735929040444548598106515264743836694439963850933378418495843844170609339436424347530275132294339484120257769173911890440675063843646896516297824390256565587187483424253785250791809731892589300487189769882054336173899934830319718407636598334934718897047170212293118889759551938603441243343899002107779604681468751030748923124694182490523289366862440623906259803339659803304786000300870050213584572492250602080961227923926516406439198146782287965821172226475814293964057405840636759794536059361070171855435250557804192537208140078270785509716542076339562744093352375656295930252594735021872771404469612501267742344247406149088324643121882214642100861835365810737317896884266649994154090938150441610462402343316065931530203957074427121009658220517997345261945193910377038437695004112718251767228702385048529318906949302850996819679726825189448538132951811520182344671615417026442685747031317573856848076824210295574251269593018967067483555907510066997503345224360204150872637992511630102234676336526537133825884325708752514712204830936931829498085521134652558494806142165115267279624955962831617221455972519320759711604670300912326033526727743964704872907661352860034779399454231700176716899959336873357144864929011192682337763024799418922001947982436762876549433602684888895256471522991636138199238721918134340871914038887868521758150651286444550627908268495752946046748239849010093451058578252273462536926330989066147816950641764087558916871284332763659397082336381289491962719594033331399773363117555575561844943325274824701277157785621543856979045474522427340461152329926904584157231049834507151872571068197965379378631016841808081471186292116580993348523451925718112832606619579673361465930823412477492176065681297193491149947341133999804807786728545733989018960341706969941624225328567544364509675257497573600412047724813214598550572044258024548105764400846217374069145270243988616709760046335930911861354246791369870350863024627546061365071749334096997708349282185973797156268259447383122295290037711024194999531440321122705885706483591764387922878996673942269137558393358775972834789931105803702034380776385485059804693664335827179362195612250111342644968216533659131340703913701222165201318419048432871144864762537551488267872173144398850905028667217444715862855326850838285576544749827907190587798144304342714901609670741407616690600916588466164394028041495946124138530815790191164186241308113597759206610622141251265189855044824111710977048801843765747596714979381933867909440697877678177186222666437544382236467499234369042268503789383052485568659715288601742711832140472323833391859440594946080308617040094504487962206277924894890172011886923883366727801854411400872737396424309795268419891194359759442060083876628653925091689320506920152198183445502022297773059844302485585551505368833223540907154905015376448702312786328071166833268997708084973849137880080004088258754158078166570435952912721336143641959520912108596274570138635589228526820573048446644181041615553173303182657964999394196749021126646481616713701542870069666784440125940104524969946475970267267131972839201459995557553801297965247131487944541642810385616345638121469962092180855253205105022316546327006835133736567159199200121857441100272099002204405380455753586704510036613015558519972023647745097308345494303706881406409162664243752160576140505037835132866873020648849974625092528963497035205597201336371258584329026197471009983712355331545843418653279516662898097264957783634805603300139503679338377496620632719839986386399546877531279132821985898037899426588690959395679601228101439281595965546537832649427740917680769381066281194106600907408454096653299398796290611339037412127415192753508572636864187125796199315109278896152571738348688248317647124649494666718974182790856019750741425496249375669948871221525167115763235724487558176140173731055158307961473737144256814879262461040670972085786642237732979348984986878347740036496366431607944538836765243159322907292916761736873075375754234888394515089144139442542512597972622597549011835233505833486057085604412853297938620511282625502127466428031818708879068279685946607314086790995096314278479767074109718620009241175084818607947037644556448731018778657759831660145601059005059980454058502253149049913190974077668917234462411878841407177917518619202264265932362551294770554020542201568402368364057309289887606039188844638838492064603007934708105955356500492048731654886039365636814730065864469790448963046152691338508040030019232007208641748631289251959195483979373282780653196980523646304042960492170568306215733770307867837066806193094970501293266422539953908315142238578358491564342211747254238043504807810274577912797973163336007519789974003704373167176733113147168853951094815153111302145583857230810570817556109903956291221691858649840179963501929255541383742803738731975502340898533183569970750920824100354761978007240325945356753799450510734187459073252109310954918230833479262657209972356891295044951981047593316997455155449872053188000219609643602687877632668791764943063421148583024413403233888160409734617980704460339668408886842646644803503495174656670955122362362724996549417838072294130714305750888900014568476501968806175545060591226207815074493289383817348827871086833743675003951994550648339003135517991861762349575168876784185380872311745060944558240020168008084870228971856631910786392568858065595008237569098520662797486877503704511194282456274843616965760374121014921654612781729453790961415284965542551114763827710201104163472938693866916859990778578524254782931419955167695160676866514651931900721020222258799348908040399493656159030304749381414972762205787271912147428031893983576999322941301126145508081043843629861867431950436407275819707556943895480145168282602763317650839497164102914080470647894747808187872834560736595822312624761686944007795226862457031406191205598168223500277372443296386832980514185276620940635685313268524795824705884722301009715997356250986617825485109799879296927926932403569577495154820986064856095107176118431071321858315917236578412283403502092807566958135581805636845761573265738790323030617106218150379707137352274392591948741124032299556807521210778845724746434524684027209112610747350910176455106749011279031593312373081602099482100571475017708537012572639394832588079082261145768693766235039294357311514680346030589942846044840114323710322512436349653618424671838755787116762722175604418636519155893277667472194524675487019994410408860553738641255917277616499001649835322174537457243143574234662924338707395119350724399645460602102434099942068494603004397713152198194971176362924005341477783128375564151707071414786627937625837439999954957087636195818932102012819722383653375894258028639861676257995350568673451466856170839388426750014374920226065777930027494189352395727635164767704797006254085944736181960182238512856571778637701493151709609285720533520766269928057625086509792552293924048147742643156775852802900482855404153077924062205745020661768262943235210576150786287577031430072213677504565628030964722571472704515133080465954072742341403994602200246775997291567529958267866723780548719341236363119150541617765913239545802684810256987555763583483385098553045360147922734390145034417416398453164152945294523408726550608331827072016885063794603568831328404373260754872674079664037250989004728513930890986489288712143772312677944945855870748862702371786675186435083614419207868890332473442096504794929367798150584642646196193492184362428200535609888124467060872156277003342955984831949044301975556459342129182383969418212658524235247221227695881186742435116482767219551007310296620887936721693204926379196284106941180408173652101064122133206988137840753950316001221511360284549620188122382336992471087963184435289505543377723496040129426581908506767393013350150402418161926321464084891954052647029339993004202246153587427259589407912855214583910498050540417004476184263361458256973066304247097827702708513691165581997807046790925120199275879831506254107959877989693096513161601846250970178194420520252121153323907795512354559789516601710299026204332081887774797672853983009227441131299865482976763748116523197963966805636471875860472506966874671766080888942794079415892532599828546437960838338809552913460778327027825598616498405184140783169328127345947392592632030185777838005569065751010248644546225640628488224104283724111822819288324166967621914239607445313477244259849491535064495066658269308950720551898108290311166262001826019718353591169858576043075813925002115651300641798083229774519168999653801811382445999506436039915568711972796436402133762213484708858355511537311264752721260943778145725067033827003448952555853258682441159569936523015428599699014291496944849433066137821738464927195660037302803014484556685330940812609364882673163560360655276272268467381208605118164030396729261730310840413745163156567516727338150922328061317409953598618383835678921425363874144740134503847665242233992964591173533290962080129054871825001935129588171754040417320121379170352306263080244891420674031998512906232643187930258883719680302630771706564358694874292076380226541742753466467638768370427546467952916841621117987666445957024265018710347834017744547217082964556310863282932825218007207417803480391434881149302706502529674441611374262435868095855417804345001507655498187762752567484957235819712401235979484198494312626625086402315287782272165761941866495888507640615489778325455108906703115962015264457552556573277147490041376189724969187571651668267643658205553011150711476410820327506423158906562634792153813342876690466619744937539147575830411551903113857684258977376225682969012503848725454036487606163438959149856018401806537443548249815852730210442500521369570266807513682178955167772860184769028415247118890345765539374020145670593728831331148779549223593888858093962828771244185183540923222113152763420936429058454280074709287230107849304665801799948073798757028340386256551300666366386349065864482409821165953574652897400880888902585974377870780973211089158569051244336092790334181078280169906191043150169669590469461171089887848202005806279150949070846713318284911868167121557332294816975773514057099941770599803364749779477255572646043038305460643262427532463667698067691341373475454171347928587783348504611707955643965783360745391390323488897786333433654090186567171440623095081456286432286219299594748239634946574365710689754840370269939986121721970824864958581328372855424685695290852059397939832556214085087264116274862485287072034726707407970659775518737064100646153489406781326857409476962274188816678238620557991023427810246856323541941372602762836172157622350102726483455375871392822919151626124931151597399072313275111112230128791160106318797462589777085368190320467879350377039632822724406374984089952941914194645887639793089601197811846996410863957940528022475112508258980424545917060075838374668508681803486496031036705951457947089212318805085608200437503030863783695433587946879038197829093595039384124165419487882704943268855953283969895759620634241088689661840612862852114329781851912353467565671717861301908870715438485429173624148192322951996961513573677399698800061012294117745934973813556894248547074593234143493412681619524700078070080281516944109492497487815047894801950535059576146007669331455558868687969869636125555009003460261021820937404241727290522220386575723157552437677175850084868219005865097030914545152898099026382757432566554845144633438246181523349327944844400389105531485079123471575283148689641454045086377473504752417271671955180307339463970339518046875992061342450481405663594831114481231003678752046301654902273650080893031517881447991056940887154240307579775224367713180119101212969590373938533388406080588793582893705020340559170998157070612929408520624360286624252370523307760174545127155264092925230309440751489059137606349511829036348310972511968529378668928392999289013870235333207192321917005480293795855424021948525521589470578858446136451470329357533463163815861025615412351306090988417188901351573593823426341660819540127906601901314191156834542086944250648026726084824924194026631141462238167412345676384418797112463993943533064624114001853995655086921680815084966339114051016838460865265324107650659909096368600615712831366457601133666970788876787739044466942148681198607916070167261468332336742030294630226986035083708817207687675015359718417732985916382579444945475066539317735515660151283359311615548432204858011082331390643318209547935155465737002956829964104683187788200419965814171927194263102023829086100883957656710222384384372383209013974323881037823277743336828821800338872419797542447651153479875061736490820068244175782264113284483237046471998191270950706062543073646504491133923220555558654049167691191973379423178133743280948209675785755215027163914938797653517948474958959035024369164484823433753243354587031480186282062573875403214823172314793161206229917886320255918965534903126393349265552240888489729083695695668018483990824388836371428618781570402194169189449143168047493496601726397998274586086664130183433513797789104526809154504784691245628282825809627358630024286984379218881354308416094917703764178193918714788607130141907150186953256016349978647433652757141385746213855663755056282630479286612150842941627764365030810314236729987389354293631238660142931335457202725902974171320474856578337448005185491785273573772410328972866493040103108633181473236880137526818212520212620482040911484449048878187245535866412285645275886390952472449632590115413966029776604149451302503122686911422411206252726704506857881242523910730533957746510718647139090232885216853100031562326630044196877807265357224056448075165366426270034572872852120032289974166298431309718750268838563052974973274926680897107187377755488978163820186691539439299131283592782658537175365168230930828272544045201486085292811034352536669126503414739448705001042119567689071607434810106833434981909543440875929372246679006976664036609139078898487155209254581401804383007948753974990705673779469915486096671033225556953759901750103945232252948579113209910535073025628368036301405611150596549051809746358712770715711756018554460426148339547570416365144997351680842129771956092197275916302359723139625773244849161007563369339207511773511192864600823573350094490022067395842492630384087409195183395168435466608363558350859880566844688502126254243386267533200389665057196845765412232339210415577382886663911637117493752656031342943480327891293753375290342107389694178123204392001782945313375783652126406873167458124547879729709044995285325349272400375508613576288787795882668940990671538093290641966979422816495576591607180024584536909851952512918897068198144161100556559256115191854718872472324333103343095763253662452638660216000212062924117581391394707829086104748257452535912703114656681561895723733342850682489495873446397073913914523191008852228796239506450689641191337147500234538091525712221345479274227733850103724859516672493129264412033404238608477068087356446517223060588016364602385156805279023424919163636224162535012357618787130336136272124623480008022389362163428588242450690542311430325423673100200042960907831074091641255184706490136901350634633243128872616219787282593912761303015393643734857368049681850809311345328942824715424545882389917354065898151134510820594895856674258261360324871755494814966908192926840760642752547236610033480148080232670439946919295765804740541912414282173527775682693950739725090823781615325085132224533368500818566583631649320204309456305397566951052643679459951360942001463130791625026394214471557059502851526090833376773032022955078952546430358263794724429434756434925449696684184583260095596538382722555852151725636694602218888291537779333203999308617491546525322456732137238925240461293659097504435040851208195586130090267403221627446018106021801988706165618626937269886413897985179809331021502550020203403473359779445754536208749504186982458041771017223492729056468944461330073478424577536328714835789516492864749940894115361507613940547218346847535327110346827266425109380375131751381682241251618670134505772933871217638648383439404983033467183529660526090551205360693564482154731190922698141003298465319489108153464670259567012382700350495835628700132885909430567070275486687629537195122850152633080373967457380828395099832480173515748460829743234773398215581398242481280358809622878079201521976734557855290718900431820018861168715652651262859534409184243584497060995848523612010948841428787221581100895461840080194762043219713036509815968611599391606260708498086562650928333182904492886366087040410390465125311023932550579206585053915980601262009066197401453553924288419545717974010005733109645773738113767747539568661494087519093359148810047023642051163991833587776471849179466862562369050682789670601715699714682616157188573648054093917759365183470827836992016951774525223877398977050402328963866253141248384276708543716388884058471815503878070291325435979380058387184036146470977205540427468991775362330826890298182349883045513316969274666272919398962322479217102544812844524848713993741498018212879495521397996307327833360296047423099724011806079734883451160282828482875699419816158986740674245666984300924230913802972155377607785303957299825620145130353771743774950273208961769286364144901430757284637036289213444762984801787075860087203266265236056127947542148786658100214415091079403402478787615550760141280608112607108393186551182920341650546053479760549559843502485180501022467109981275765541631663695713006329932705417576523926333749900206763181265565945231323293405414410285136292023869197755719484689305156823361055797497689741256299663905209236353339833585835238922402284109450883624183065997646416899318225784265451854275468382727244251545339551012549435210628273428874816554363160303010970876329120744520502503860170199493202507089407900082951181401464978252032642987152084248043711968038408184444074351096919809552218855568091503141838638946815482168318773356709870442502478048951182210855046784232452316816829313649707221120296845060108089821718117988490566716931144904533144201640241132989535655983988554297489608504428130929597124628007535300926374958966350482998916181788350323607576590946588181493041077504955356622632726884710375922733083448832781385099046859706987137691041687474311161894707296177481551128248461403805376199275834023438126772404394388736296131994333424070370668693016654049620132701490855450775581265734499729347044369006351170977434792063803145805208839897381448612711948920533699194544494769879799721072537727816740842952243933780480284240052135832715608507690194105455332659668327655927146799242253085744724486445852190689118856168346874903737744511928061420533229645299056224991123834643420236776066189696284296414936016342583270852684402202489349771287075673748609813213157755720429169209112763850990869372251590211486576613130103610802080991052893866665175052343578166105572429372691398991882958914100274257695629756177408926443624764084081972830546468235546747869867133466884125274017114453381777356034253041410478552858485734089865930877139056151208245983606966006599053017255269348320876674120142292021045888624286083637265514655451825060753049855699224369069222920485565395775814352965104411250569191227399988327579646836310569163805222366089733244999434726796484169695993378937071743642986624932495588921430746170186795380597743185412823401320382105051571040138882575946446581639303924010524828702901238615492513500910946460722778451358451204748699175734659962804839114197242649499788113158346131772768626940387031399344224635304137957700072595701616514171148919415974786997086699746125685491148726811197382688295764907388518983239538210666572168860098131645958829280283187145234276996175239297810365778747863822935515253975444856214344542241314899422000381220638071939646076981504346032411928228800788210580998024295627228171005951757120707872936705900656419947350324398912764900361704835442964387109658333642132734026665750257920907092349563065477904466975116935056333716695946777579152016046715759391562430663723166043517739642685662705046531159568008949311602223700183217030240088820067219511712827615311768733201478299978098709896782192574110150486518788136437700357136228311819080969562555705250793616009804099264746154831538912047330766149380949667215880272976200684212943604463827229307373160560124547199923794555861359392091964719411403085000304109610932121377507610405477384525673466838394146776530036764221993726159417456172057919438143027302889305046099407019929075218199131958686380040147659141346205227594915511439411897371018101685620633322498400227230794784442982873019111353677460224459072933319479750871825235772141788046543570089544405248350605518952029487316848278505003480730902854204836306709550031315617858118045455303306956700743699507567426622717481033717177032366083659144664133431637161947909864646471983817656542266658593699049005233199789426960591108484095951972361631084670959615049636552412941904751994488240723952933831148330600457952918255583337367391696313666722477199239759011707791444137381074066736168042166421935230779775276654689279540102649910024399130500851554662493360179981587186773336107187676592452504238581974603844792954814733104526477164865835263085156153342128712610030822078497837074572842465759821153955123724508770733328630904196902308200513333908568692978151130542412841997882690519769517320901398742002127361499782514462526323806894285845910870829304985251350896112120343326562735833970629143384185484652892172843803248414489718896561717723686813020693366246797642844421138953375221306067755831599368125420316885723841325695323265987318653970764120443423273258362870559115381213978484986762889008070165884432143886547291551669460861080315775403373654608714683751966433572140015497418072605861856027549042433139308377088884467599783973279996261805917655983451476953058313327627632342267868652289045998256927270384588704171804142563259428015731313241570456251234448369815070486963717200043032855604553197348101829990056910871918455417536566707241237522002630885182387944086770626112721965691086291131330491861609706184073361102074520559411511155389145550520659960079941551231137073893604993556927732487543543062550974487238980641783349905474146711065874483774175743100032089629677175045445065487348049975133032979672510465408800972994924107733682605693754358220839283852289532482355630788052167550402191097263080552572238243243320651379661354047606921731464281784625427195255893827828721141772849638053608171516979643251584161082559119138092470785933692720272883588715043219540874664691909571221192178575335778876636765759613521231924034681035593979315675260581555129192357231313488948970776833089772568626685904585018948083208005816805139017417415308615446528082943544756358843577251155623446281978128422122932503302210573434464644914217672441595311915936801192633910099078988379719714789012886039444837595961727485079038931415304991569991854107736896235263894265052195956386166974868548912275564005717568579886412472993354957997867781313387569735635187008203466263899243013418175685384441215839457473693642832960191168759333322680229888900011589497293497137921562172154190353357696426051857016364290014312973785410959576493199094805002237947436446877143620190245000975258564803084310834888656982292305375378982267892967616752828979676227531840544159294448991680348265706745872402534388094231081897400510141799462335842980677043997011899083184350381608204567550116450096520721189651453342249004948491423262002721049524461469816990867557120436625304617848929471181636643142041443711871836539658763016406335437377342268085459674273666534871250694884548161871810812051258579173792981022567851964993257965474867442335955240329946874170692551350529977792139859632055463543710723773938534881278751152503864399844243544714151455035272545473996201461688567527429586527202731760384586436651955594488033463611480284055050876920244116120632113099536367529732952250183018609605860314015486193750620473964138052392733957362432589961851367745934588217551596326243778466312889263013123535354533599023285099620340620063442205393750288370121402284631106117939766598739025582955456443270370389751129465635976022931130873933226224144004944402840529114851838604319487633820530635378496967430910317554492086443406851706131771586768475370365603363439350721984207621697714917866078794346429500789122042762482195539874262911985814884398130222606089091347480903082106105845817178234871000264033653380338159466270937922926010766231837436091420022517844888835221757569477751187148775057472787025597235774692597613620143085900641806389423897975825728494607528496619454538691934494228018709821157454944945626246889017154513504156053063272729124977105783306647997778950142325694257827106422977186334147720430431938191288430424895018233301885502940826890103127532058777020918502986286476445920927329304829200381690806453075620852264743154937595418549003963900713435733788253448673371111872049848070059662972584987328334889110462159768827486201875738644789567601469720425644679779273482367292263647302032047994889456066926972160798620316140155206064412814681466487059936209241719793755388869150643454419520855586096217818253927488656313095173140039747997278627096807643271227251122297739260627334127975925598222324720138218125112836662813653615990726910483513273706305095513523840277151583734576341977855609386086859697526346339721414647875546984360239413263448596934575022423315236458104280196231399797392287416779828755982307597483375059070097195606263226104620943753993685999075349922161917424010450199566367732882902559788515457200354383258392984957083165531927257799995753801092082395814033302471034768663241918220218153274492009773503091369312717869837843122914270721481093605704845150916120964139397811320138824303673788215949286041134066449137633661382982052297935741775273538685239929222581915445889030991768051020080469851999108439696744021060691761085795531040375692120771704650534234012811814797588523296189081718557558470800946963480800299933678493267095304842845555422542872904454001724692891261232441871853943357759071790674484937100056143750872965022982983897632867531097648039608335939837070753650777604944011864014317446216889908589511344435562932982168939431478583010524101200032190675799697657015361433338185531903779036907497986466089087601764259246709407361330322494834261042804371924401883576403647287810033636496700781350380279348624186373452432622801263917834107088626464189791648914736647779180491667565309677761985261557794694741047904655947411038440661385251582524423701458484562666322866885127904885515699308891766084641450479401835607220356710277205601876253108917691203229450346697087269544549522758249790857191589238620495455545539827446133705492841045445400484344311793840161600702579302718163713059559022585824314083744322377174626961188338921845913471189588476961957190473025830283583587938909735784470319087301048695138420377085796367544525319385411512512990418923735446382848974525146395270406630350366256834799161900010947433788933174646162013030834281557153265082603474805251255095605457603219405352861954840098278758368855261936561499287795751325582248405791447062368964837357554033967352012307655722162317215237430286812031845137211785626880771519286974942794917131944960272492484726658936254857449113541620612593833732718707124446652376599850586379698809018132486812999595942327167938437747514164943766468357916830139061119957490964473061644774498727538469379955470529008257182841644726254564797334980984055157767581290479602402824734150641637511738058139007965360022198813706571390918376648485995584570585930330301500569401294548572998723254708200110844775286489023108935796121703946398428284163592982856453316573225043375526550852919746864112329207616429178342952194799320747529218484671952646584019257315787275419029623209674129128275554828138011805602745667640249260871719712737471920085266590919993987767113037787762687346931740552483942916166456294054264738983180869720032001056541872605911783478231025099292466782126603490931442039386176717254961384339498807389171259557164269678347867499546564257399374407863435886996020719767004434966794628819761534904927154047206373608538391914808808838523541419687331616793397613806655585290766442593824661110048121614558712210096222895365275513208619619522050015957637267847939548331176245928255086373684517240086875003514772260143051274525970104433850719482977041662731239748668768765321737958789168132993337795674000782735895913613252460729175776609524807553478475349523704990400458310425599871836276231922229084447396973569258501503751672826789479643039777548448755254096967841640099896518504806403611347657436508078725665466195478782694326065724488373895298343349016725040360432957374325963937963178095878226101753257854108768218581532265829481698373767419731710284321958813100116115965016546809302851467725073022072425274925191650625087214028708616843328704083731725054212867378934487091724999627334312387545241734807094707275328218410854683133629965591094304419054373878345907256394088154529664001768830698231161837959038406164891848121472277441492694800521144868305790294859747425331721587874289086413278764582054224864925566501998049990193484248434943018714733570325541952897300089454372897392003599682404081202556321165964298813885553791042242000082658238817634220829974357127679224215515187995645948427580547076369637028701100305712582431195102750382355857281024072318217539000250473378429756316444564668699620496081804267096789277974018464816502538406641979913508928975475836652948077006913031292460848155447611753598255222029218805232226507170475948016981363273345767163478831052370353692284124444668449031694597395428437558028890187818895192150748264995693162332710214865145206657210050560700658395780950893429417633168349611628913943585549512215513691440062011056377892710588511987465689532306166605713817791075755993440373001763042297268834467916611777170430887349453066058556151464506822510585543666868433873231815813886645916829164513457950937501928533486216775907793801012663403852211488713597072137146586172261001552019686662531888908746748835409211481110171053177877137200922772858953704155793682922259416393957990501763470339256544492196898463347085284033645425491758402116617889734012527588941370663026525080001741100687432674903838274096637687508083975076878794109539641188405055802981615643546107353538795384065624499798308727363824031330470908465532382026001999741701077222216126525917082525602899921190664739251570423833041109639202537910225021867524473678776356248249157601714437327399330427901441386909635912784117163793875961545401334439871721755744956064742520172561440423333945112634051823173447602214025467205499567067286917758364480256909539478688998114682060402927414014700161893325143808107498272257501249462160237972331747486948768338242170067834214059338506425464197702789687698992537431908729221417460342398787131450076714958424332371192356138912155504891283276312409477856040590349346962724812572377603823645079052502948961847587744172931389187469035710799443174664965872334850658022178551629528686113658730222915318568950954518199278778250906836555291771871957401930224789239635763947053578243406374912288497049648379944186436683540135087546921704915364918576810192509062326471024998391183363952722703075536180055450130209295099423761455285577918133527625268805600127210160908030556657963517757992402165407455340766135077327882469051521685539333366469760067206246262605733622804635831901959851318120778960578028469144820091909022194911168318016836893358291693547411250109844614842695278860133898861914450002699729020537900756373338874663935302706570091829073618072307731646146262846404015162227715333387849419042855827015296392964649514636636365028462585772707262112250504075282252213936828913854230694798973199870278045941809950138284319300174377903221577845709728264769291804119219464796904361789334238035958662063667905984676323161450654013014533097276258532711572350146012446559907757534031969482979935643294978077708450806844746776765318402346318704843503067579887611425114576985522865814578999384711502564154406218478586245455018144188189027113931757990088698174082911105231962037222563707689160889596936594303566908324735014366816381859213611035661616412427385400394707114070455003431776764197656039337777195471447468619846800062666710780727864527557416330768355211887963999732165798338922497773452870093257718760164045769710341080233294360236993039627567321110385676892354657078456790010412745695397657075567935069210904209791827284730297181639713024658595679504206809179991983402052392637027907534668008854048370182511134897710649557012461879555229995453938720532086258952349059814803707445374965747450634990700898293707948974563474790468190920198491816103655717611562656898965651943566218495950239768541763704026836008468883153591108180067586336648172544245415111955144874903579580301321023136443346842078426249548700430498705356805221379658773157810976524400059980074197607188376852403152797767865293434450621580655548016847352659088615054630082152794513298273859616989911064908370044140369675430522134529631339563938309118953335600198155897345393678576596699411501590225727631579851598120364300795134344931426875483813310350964086147947548422967432996966006402835126157902263108863917525983231374482393430635113546781963638870430604639775109555888557073018992843472164638965173984818311271783481966331587658523032079137829225532191702150481203203232930011085734950699722729004672870844115671684069117784980710168603637619027713478949753775435208753374454540639627417622332736760463571251989463469898490617390097477976539500355011155380866548717964176029457314130407645190760138055435614861517935368376716432843021743236603211077189242811328198905782499464361973855836599365943705863588455121467774679931819888116684673647081504347055391584513483720369017252333163437108142256968333186040766945516722392040302158478700286443126012101250835241733412639501594929844716494689280623707888804001014552338511001106986916880924997556019006582940343619980976592122071602962932874665718419706008205748619064223098442515764296254140911446023046975317375222069799469377037739529403593682321141319831086787856857630875887577577359543244917365113482494896294240919296460176130347707091236146414214868928536213271951414519367946728459655802475787903616782138948793766623122282649419388964680091028883974566607308034432417276539722587507582898208032980758426933139977213076648349705812981801325875047447671021572002654114229151824983528266426640652322164734843869533550174656517383592199691437099803782917562704996252687253142881979464245317578758958339377692801215506947167070690246485424109860199257967467441349848043955118169573586591614129723446522351794318876578959393625462686251125442309416128013531661054010213376127054367295716347369746339835526762349815547926393161528399608134485154996929936183146863994601623503496067112392136487488027406787338423632648875667580259533043266346034368839468560365850225231282208819287799825865298096826484400953973614776628481728517083085927005844532531132308831291480867840280849782695983507436316666679074610323026408766882750351346962494086464226870811156640765469587736350799142978526326792102287431064724114085239093929676386000058862717751329371626684914438841077766193468641776739485886860520902997880436972894960961644667147371405635239973003521838174031450812470869966916804775231324089503086608961525237186716926649443193629847685444733891183209249490378737805102228463204227179219214051617182457831241449816727729654996739140294816054644219169871081400987748018454905970945384642800512841175013690956302372211904394876430467770946107897599210288745974298255067925112401266846586708699496024113400644428279635035134689812914490447468042067812259268929767502287225056750628485259958482143222908654247622596455247881206835155005855474261894144313919396792240836069782978761338974816172294024334102467334213841991281641618210521254874082285789917132120212152366457527434976477591565050401180708804317202598119381363213795289040649335462634839689784524874541820670687618438105061880722934571982305000291435749178900006553916981743699736345663014616615757516262834396889381045254178688073702694474262431638198643465968446910497543452475067087646821482880241774926884770386077865583243850157101235235081119314278807411530064428802661193643371043580992770722261383356167704503868568675321682806400765102338942722577331227016365015538363935773763562642541122135714611427643938894641574522076485589096451895490907772147966935347293532839566018265210141721488711507330523135673216237068145322879099183576844409930024322332803446720185188006090785650968428920333025534870994289923983788366729568754620228577905865753191417344699057801260520630944114973447886084589794191134851374042637680145079871764975811539379098246764783153885728337755298400032916435142788478158956927521046140275672972002086651189917301619298850017905436620613960967926587722246640761154281772749659594660873042500112399043261439938840135183493838540114666623850477283349180065872731764873042486300055804109551940541032619002116703728769782129178001099672971501367435759451767078634948566367019436197140940393664999081250989779248514908602496555024567727644361452347008073051726370096466206318245019429655962098384938311940816507774071852606987139465585589334673632589917123247077403341647151453745230900162404062518036955741737874482837526162891810795341698919365092530855203256075873702278653616252262876143831949747705193963994308383084609776334619373351349126191722774596526906542784635632167672996277173514986843028552371073622670895865398227027431988079273962156693339209579973655210595377604502678576260800657117229559486088309937811657903036826047468012873999716065849122605937582486402972492551928572066163420862035979117003907400302213584308100119538165275621454880494113546699967545477089445055091146942671867906264809004698843911994105547683872603586742344544752772252978292655477162028322787161202018906454360897665519999238008861888839836572548038249382473303363943608744139033265161956986119671810375716576214544546806357539455108503873368149893458570546834333929452104965380049878240423889717737526681966306667910789176260006401862134537854181217516151197952760282566393116526506981472538339425364615967548379773565041872361753179644720567174904247104647654066795045763694207162930692245970958195642702007589157007063742443221997351476213415740664461061404021760018300087037066896096107109366536685629518525282396998957399908863481684132579875979757782804410628414575168147875502938144189792640932802995042004629555772432853251406771054600201363550534880811928048113408312560171866026487826422893683767312468894298895755555893676147812064893786073528783895865925669538143310110479931841537724067325168825502372044926279115667166819952586268056964235734727956769368962459773012045004891626648534592755930576230827598185707406811626554959954940026474087519649728557397896088740438773982907535018153204874604392791280686949719074317831945858667017360577109109944336848340713170039599020889099594754445896176919478622022941566172247274052208892727304680218110319680514577589183554800060080519930492928222558295910601699498768089454618117297315865130722828159676387827603655303725967686014003106169879573783879557528188372871677422734666062103223864289441979381616202085896933274780190063010302417177867289297612860672527869005794118054540913108929866127660074103270840576943049778011356538444143742737378086930958365340224053400474094515199095214159962530375905365658303716688568743380028930924888189394048184257267709452366118288295881281315220255271696017159236610153003345450203411551025009048688040892002181444334422976219431614781595267287928113726299077275875846208894931843858433061148862979223344495295798803322619540020766087916283772042873362719219357538316525600839218466211794759677299518775831758450689790133204531279228315427415758305614872185915103820601318051368819535377464894943424553180341183458047637996197976228362048537732412479785599164884375761789261059282336201756890302804509971414246886299102820714282196928811338532429080767688059958093522369090017296627825992361404464492439129819286333301731978856843372448369249798885988965281629397414000390663826115633670589656774814585723653923218025695873821016638330192960366487042303633019422099412266638812629784251982159740020066995295386817746294184412614127423530881914373763142726383454505756409399470142272474582695624318098662922185276826063355354294381624857895445135079242089780704632949875069177549762754964929407579983984174324395069643998204327578999000723834618456157014888770021736817751709523324511576770128951285931691122146057285825339074269261543965234964637984873984728234528009481979448105246178549153481599929649906025338273358742573641128425326850494908135137223550201710861727185507561673631428387553639268980085583249981727013117117641067464488424795689797349881533277265687436194242462693834129386088849528694228734265014962124523985336080373861148440324239566900848096667531115041170902553557895028973991929661696174883396965134641895818858878776948484103674440453597354173763597950079765834892092435245811012535754499591086792801677583509632529156159587063963382901711458249996081924498757866524010695365609696012668286956778909486126443289088202466998938137780556340653087298882213750145149895357259388461758819934247010751512508304308392053791613065904242861520976320999112727099016365522901340331996439301483309306164308190628016724842456621934744642125480055307944898077263506788401820513564948259244016941219741552767183646153229385752747712835106890208759770145925311694528617113173459086640842110953507624825481891935792560414291055904798522314235821659138504980309859185600377946422151661305508143113998220182113933132221518457011490720259857038767366009912212800990214828188398971447547986434641368017453848554356719037116372056295296196809227285674737843710437230935386559515058709072229793728441855349292033301162444682112590018899516763301956081496086040898929735111843343414213097392042324488811399805131282156259400503911274503347286085947101550779270356127235005662130628233346269155365337813620606753443668042964937668049250516942130399752059322707255030313898532834939845435532526683535241480666171514676222097036360417578367117160485594472154340923824922236877157986242847692932372174856606290896394490690226554168132064290110845215668988756213295083530547307699199653979926696530578554542924597239740198959421116098465751144440991380613290559412471228225522572312991509889447367187531939270189152797870953020208461378063355230594381616273056722084498834804085702208561815812774742477810974951332705077928848124242678131619356296410052813054497215613243318780253850770191646400689165872979713449808275405353311045053792310554510242876897366173919798504484301714046342227671418154707820183719629627782167301212712652524118608261392494200734017013892406401854779448028801564334730395836696308437791158984159138571500254048028195492934982647281835618112440836942914215919669115437669805461383393374946073477495958079367393830721449103518900617834424492025960577928291999244468878666334481335713932607353050123691513335758531940141988560830709453363613832369735554032979006571533550387862604180449512800580110507199535585379961194367774262289847552081304984470649192038323465278879895400723149610668082187528326008936697026425407356521626166701951369215997639035368773371621609100874277591593537623611762357856228873011655530692597839570617158104770234634926286187885071067388473921134839492132429743879318686622008999468946691559000804612437902300817350687254228604361936035514393508903617890415401679520549993678229478969099810688394628076927935700825813300191004258301257048342295574459066544598364614264370340679561822132471892623928101871732300788988936967171483973986493943739995850536689207805674168752631403324591822191000047910577858323091851318478564277881638305237143276881871516095788527013603563176879601650695718864919412851783772504398258697146223103302801673904334447473165346105842344612483739907782372918017529998279828299358209728877706109497804729081353500169817598329486868924965171472593563660467854246982723126761307151468766684834974931588279682765392632337184139813761438932008919477605105606615681897536657517162226195529672333393759932374184247957400868307053935023073943895706301641857014750844126540486812197032269776346700259586279184034577563276631369147674389506745329370326948831444587497016322093553553909843986483648127064092051851229316804409756051833826572358797727149941080360334017691688200944122787823036237447179000036187902578548492292638331859146586511698612742283274775108281345410168016111101161356624578504439689031387079049322344257013055833253451777178088626733300464924681899593953516572359731170664269694665747566455586923715005180426894408771846344009716945330676188893381111440983749873491023775164123811533706134320786296372439574821692336273300614173142482986144615419670639773351505061938623136502804927716502876874512106963926428443223396185971682849372133846571347164346152101058463609508890970608896459831538604248581186786821364844993090482155836554219687644816181878283057100952531814907728806936466990410171199176496482890065162782205109921906151001022975269868265563721801806713957601745009329797366848023980530265589773912971391469215361055247862217738179728637093475271531257472458258343685120610296673010901159858733468111654952566975796578249759772221293858660541277682445845386459340145520269227243242709411062964244660826358120117951953521004659792293953597737079031604121527657648894248240054529718761135005827052175713847837158943693575256043640203447317346044473641612385952167853717364763501741874858076172206768589945248374759491155512508472714423634206794891040898195891741756753735085539296962186740898376814965232213649721467107793073501084862463922716055130199582991459268624198100716372282075856635698912705365504270043409539746281744847387336807598745410168708623517348317441512864564280102553366327022231106796138096526562721051386747529347786435751894671637012492593770720724384140582857363422875161941556607982929387204134684691955230903838886516494034895121758225612452271821403053605998094957826550767008449867167971163460991880245499165927294791154573493602946010394001657745061913028629962140362978921421795180770939886513290562667086075056590760604365458673499624765408349739747297593108270715363132153661189995748391057847756989845728155343544863216290439495331533012974055686139027871429076411032927084215905438143933410613476576154991994630480140817821076261280198097767148068492237219467954018676580320722088151386823880910606591053267719459549831334213195789518457324918446841846034899714450915720173630298557601498338194752948440291279101145684530503993658748705056577574231137182806272888158063070918926040211228554308082888305258839952801692331319140531172918277077316821157785616823850395825956630664643563304820231819480009167428908225533911922347614898819081225201237723232940828612177627769361049290753518837558760823991805749049741049848848236113055267867039324744224192232875933191917667428073978380896864552442786841404128151535467415254034786887634693834849872676813990535881242627199900609529494524614377512588309370124884134423411225948684081547710347208699926457633738363194795593243635181381477270630883780654227987418034913913320466722128741197639716434982861092975010559714787963236857985294757581948491484321021389318260453764771906759225602010051251160977113442060968238452777178932175687410748404191281749927957954649193127604623204203871526825488558749881671879973678661195986119383289746217180351699407852499266737178163766812308182445373541767738935828554257042686697669440387719630791601404359045509426159858455455339931218060477318534889000662071689830499901456947113249989290116477662280626976324642353607951040229039695148100417692965811112063778017880608909360830269488614143274296679402376395440036383316518065447224999741368924234650404676588374900124171889167054713634401836090876681469244181483262393900373772982564603478146416459400090682794584866757859460873517574091603978620042174319865137282375699461824384442553738125161649991970246928730585685932171799497713040356363864863635036896239935805924212976040303323055427083357088280427420570747044808153956808358047263836436093454907299890991804370742028794756078388673724455974070660519305342458757561046869401708063864412207436154714062006249128107442296973474933022737698822354534683947211072074984597369197876306613922369708014163321408242156360803214058978984767824456011639234806245796057148487319369079766470615137121621000527782952071793779286623885627160211051520548810944535058781414170647393500172473849382963206116025264027793640607446689832451316298069558078743596712649398487283436561769802423407092196988709208826402277733224033521628528394070431206257851299425954876681000382669980487161891112545587630796326780807024184771683157766368579257834224557842762286662315372852829004319701391027983981584778097848061400797671483877125335307420537557366320268897308302679423514391686119060304900064995219330545563371245738816885565849848008472979872062465971928195504371605079766689505400304464184544158353923369377565451853903157086746724211176424629178239734159379637559694188497098703333652388870404597911959926759320441837092172774755722433245194818010669858800810453950783562940864740799755851560904545493673579641291638649742321707937684649908486369714197420056349138845880016265261088340198187096538878588164666648822332666280962984573764954802872658409951843609848923176326064979345453480710189292694182844590595014312830815168773981003507246904022537700570203140607670745328884469358717078484103770855321250587782706114052533003899491020802249289309717480002431261942335272388816631665959919415851053936299419635832862569065474107275516537861723637681000122482126039942799251170210373178179854117464968813101394756196392369172091961129316464501712333560901214589434764841006603787403718734132962856381206111810990468160473478179571871736941673748185076617687421237446725437634226746970540651913018483332671289563582124390887403193518269502252219510312362531482386703472338632899891053431779716137902345924808491397875050103323031072072618162289024685061999962295858700468617790747187214766997879193640261753803474860820573992132927700590811092822821358691132869900017579998039885962586508449023255708648690223493013275003881221821255065500108827755254085841808787826218679832641069997517769843308892902150227818200082220913625633111423947260257940155674294047340677914107783883992880737846028318911868269967178749936962505199595974261194935728714005927586396647738239675528890253982338935488602218079593046081551383034180766882714588808362288782505776398696898337956812839929808145506657161353522300063345651996824617678650523374860412470449183480627378179624710738356573751787903443798701890986637365341626048853045337940273547955757156930961648101579000887433529631826406276825979256849024605731330850941333732748641846846088360071634853226559244587006044510306461077455781741235383307279761491718534662690500441769394714847640466888521011235347231689448785460602708407460784932285068856242704294598442073084974217038449267997450339457836451363339990414588690552734430001847186202060088011460625260166690059380250531640862843352792371772414700206242624237741342268645914089960398175242516628224220791712746615631556661857472310125357274183961066082786145166328077007532955915791817679292553008548760422813830315650054090627335978142868033750763366693464857851685076389282339706878259260555810664517456634316207638293020669674137549717214316600645608970658059241103441638768782024034135771758849813863124507909223912964533193030468930368390468969594102096720138629926505898308879513224238098520501235950217511811371093020041195063736479364810752641533284373864448883407116622100532690667031259560087421925140127502282799056025716066483844837625747758881377114810442718954305415305630057616054442178443957238491717382777067224163101148255181742951216904140099233997626001359019256946963566295649216940575797403761206896815592588035288393121602452990709618486412957422663845588583446860249811719611823075304750044860258595687013681383169322406103657049320480286352886270731237141003422262039011468104354729479946955721223487560068380267934995530290276175070150115745311110572083809604157363386554139568859172340588618867446167619449076725753149481715887294112056374572880570920088923383812681883323691605630538803487696818729220013600587817276140787429924108478501390067332969416957901633109264028074534908697184957796313189330592568282405801908069457959915124681304493391109700030167648057398911657403551669335435608439574287614258129198964778465513358573083255997228490463015502744216786814897969676826685452593253651929206126212034346140131420191787339298505431461933009569476260350539977903566644967639593085130083279947503425718964130757399770615293617995587150922566351322720208146032890583061833960141829770814614010320710847961030566629404226664249325067987987345662655863151072327736961544127641266015544343169684331091550585918512545169106234654988966091139895032586633621786401509916779039903926232296927895684587388656592630270376618472923822944152013982336319629824700062347157172593486567639485186142768310795318890609823590478457931103454191544981113189907297800450058596294096466316269420150720311509460822722673931148409685440425192741996676377613040729668727642677468164669196331016439559933291958026323720353676171375499358253578958716573946593125945561959329347420054293978443341821052441318309156985685420662171052483777829164326800280035897622569974938032618922149720705444699208860067525592996042021334815027425002607431913489642747181189558252144108467466547136117129640919490195331235540778800567129451723968397977251313737800762583388893942070369297248439763242774477124620974801458662375399621261068737070230673276400782624569565086889243281237477509280831084247286860005300091088696021588731743696683698767840041639863175794875035766510146330604487899143625280907444532682761443278555642377458934070647148058424724956439325276086979750782101910027682538704272834720629064376178515747558639758834288737752270468117742871397544025435206455858461898090772323244384131066505108127613497363198945748589068340092097296450340930326522326074115090392599776256167326235555908985722047348615576974299263141532291065885869227654850571705170176178322201790199606195299623410771598844038147585118665309292804681220966894312528778170633671429490675134281734303011121998602644411798377733923703456711347240290046362625390058178736422866509040666573645247822082352552596180963673334253924309679869608152930344667588562462444268132791608902145318903671210990377729241358887604911887368630464036075722787426262044450489385556431852839824916515194387473793770425069765276116467616032821796716520013442972891563812584977878953038904535378983308350527570694352676414962452284378800763824366952058009072870580781763450757054521621428257723472771449446485580954540483050046308957223806335577025246070317733071771536418085486026161129250435700494624690826313905215743238652880831273180979708353811187103053078885798011698151727410850018076922797657531631189790947994386931584520754617964852202447082890024598261353076463788778145717022941760391309204779985041183466725443139123211728253813069342958870603521143554475190451876350564581421428025555946255619407934170201235907523123176302869463124544443956274879921147375865356541528272425314477784393379771471806973225587863989756819017683080225259777299270447056708527838472558692273496580254120907816442624029180197392595322965474786846908331475741955823324646553393308650761996151223995512411962784174960538880783721129434847273253607758830347147933837411837192422237113487518529488142282174918888951532762772059087532971526515329861645551626466381028967709729320199815577319329384484685543780017698190451860506350893125265684096485288217959286321647795233647166996243361600563343559407067027003981881245055328690800889295641206168994335079051737306298883863319373200428083529551427150950360722960916589731674878493761593786063791991909888105350917934219491598139739766985251583159926116681614688372706839598226512506712282985459363927348610412330203695426883824612612791012473907606398430254347371395071670410715892943348800110809811585742513999332784148256718166428543970412160924286540094139814998075877844642944483988727515275361300383801599467683215313692410143843833021704010022601572261632951323393012006798037549016015506852248389087169615631206940419980739138312668765852244399822162262926104603293232946509186872569093658402710879682853302058741372849721150096465541507646785251679379801233910152208438352542116400130764487881759271728389964069166930505850157212658362492750420188254834015831968253263874717731291079553355710358732801633918090642314090232186681337590025249421454391497730442644652943083099597145590931511821287055766600978174637922882335162822106291076809290011883088710950181444681902375226137012853067210377035795035502245202090346727457068774929941932427525080025660590379194019738422786906385907656279664340338608898479984164955144995628847050690366791446014148268312781078122791614999936324927416404806388715234041161741199347177897675646080877274695432209009488763708412378627709058935708417875797762463369210417420124141573683920772904457146194405399384206481921506177345050972995124018087851210413122574406780530418212225647781474120025857483774501479523972960110793209368202833987072961860707938828971920247918145362799931987519428232509562651110136684169865973573963610512527240766112211778870406635441046976757658708413222892738310569444597579783013204237331627761783395646629268683742879193433436713416475071436988953360490133103507354715926342582716170192743709975115556095929979161237990608479739720355717121633621359329696037409464598180842108989348433771834933262421957950994778568858837522340082747914111083079713058915612902988663917146918665855596246388711831679614120466757056983384802451614646165470989305615567369450375434679350274394876130284782627597479023275705460025690403799775597360893090352129515000052463429341520188174677048015079724199848101365469722569102879055726597638488866484421558741797086129609832356239305773448443581473614615016995888417766821757024652805507087499956914167316409298476731612568407669437124458657042410793435433861964777032178276237245211068526224009028778853788588938364127235991142522032264321490736393032193324839865077517492843728243735292516092915289200825230962005068026896744324741248294140652719182174474229718538552109692710677325493745499010376652409626468221985222763430620926241752680046823943424178043760433808735595882478275887766659220523915224178268227779890270909515883927830534029398597108033809209107597263245064451895808511831044248233664654191914716325812319123104199421712603717462763893158502919617208821601582959684836091427548312618792031701164033821212259034227423450173388666094907053619235610857832276304993115608100765432915577308133055601112667526478067690128226608687672237760490441605641069733069094928283009662379260333770398145623500558217494629179158831941454941964370691089027938622957721011487169440214218399965518414326143856304955932237264804807226987201902388440218171697158595116139859652533476249184135884977883594290529068936461688388917318940137894509614086857389655923995687579911944234960354206575383939761074098023959822224251751128220181024007538506852681293451494149392858478175946750768734721711435254029331462001760899667568798612611412182619125775326050535546922207106707860433268482314338011920707602917579632195649774899327797141537978001694930996886276149834425553182585913915243237990294723303617087468170836434550639439478206432003764254881894112609354606765960218892096067680600059019252196178714473323485470963200593703156042499298653368905761725462954752336342562124629361991435287768781618471524690206999829035739721742833209922599216793880871122096225740641421291925288529945176603251244799429203929471849654404146364096151383313925703686931523599640537977379505351508811183285843415515559871087657811621188436473345979894318193792188950604235120464052805592619125011982974571591792551689444878932021879971132966098339480467448246559232331958215360639464585225442329202660532877082846695247260581315206043466010447691195198427898953893215967798918294240445654599549719603205538015409249659266244971529738106839509319077751239732588936740101787084700632007984800488157784576132397779460902884332615212360345748567714055259281034141008187010727338760540014573374627575968603721638486650797272036973210626504088040089830051892457733659182423284382195974426720082388531276109753210396282497678964898648215212542260213385278587902573224579669358630462528466204309613883746012370125999032728827556118344631922102819447027925494493045010754390850912323025765063063752252053034579291044263821033699656579425119736361681431380752004442644259656194320609704015332591765378497579526198280645108601450506051331500390785597571646810399697618324572854738803321697906750352580036098272404537885367511530690328912535848666385814099160465812658050981789204064114348088527229708585782752970989600229918694404455445329082447241088582669048113243327766227342795408468124055052094450762620191438353360705208470688020398870771478374749616306970989292475362036222346671298197607281741045859099646246338710564400133519023777611877431981002815034967285022339157073389183158363378909129083735534557317979787013347310123421600934761912399656863050860479491358844151519675551196599406078255970975367903469652097270720916544705468483648109557251366648672926022593936220263748759166062706165297952854618005031050345998350721994851337777532697234713054940890954483789752098102451303879584009381103817204364251686975900156322605498900858052821755819516958530338732617750068874530011387122062601818826072176324413450080893544045849944072954031790268817691096494018224732180294326173423382503797113124200169251544268961379801819487461745063053939215596379669901424272957823100496933222421181921233967112609202472082131262268675604040666140499951887478791138911641474335444180881176228072229367112455018164638376129484869626034739504968760177914074408103991012752156339211132491566889127609994805263712044059414673157617863181946568061178613434319384841411563446065664535359652676051418118215659963596190386213278624084632672732009072237631683824258402390846420241675668739687497702105802776490352086712147796110327629991166429234534088776946684716057940546388875734845694173374223377286374803034991786701041293593247538272425938704953186070107201400836512242354564053899368136816526415198246016781893858507396602923457919162130193725064191160058733201982352359646143184344564927853887405858552989687012393010932618139828457398039109690855622622847102634305719753404039785589663870887910438097954796587253168615461487536165422314971559594549661968013614051677003409227318995334993759347904353418996360093431682926546069823551578110640156397396399511340141524613159590956055225619722090252965136073273499326459960928993520666958059518365239235939634916576969128673896244946196840230891799228768252747295752878289557552919402287693767696305550619151215971379788835681653435503988162325843649130432047944398403059280195795411191081990728183681213411709370988782151362163700497808197129606364455623110903211193383363925372982927611399816291613658820848216652947661064379061447147113931918813569905966336215016708366394224277332165838124848269613118287241326570793329443434498064759344017895587777576921050928212682243418772818015506583061023171046223220356474496697678158684114276629909658422479152195393559942884976760261557872464454399204200168283265416779780985607868054013433883951492879134233155876239520957516467255481156311901976647170422866586821631985441415999372691333523690385338790959847231542679003139401314288302000519132217644689507122081614196980322594443088431060083798771030501259504976643810404772040474467214985537392994027911030937772367179194876695695312921958771525176657743410809036232262175504884841932301385228611993570562465115081123520724225435757033770501898440858470532410794826262041415136405084788646079640525347522036892731780626055478381304965006759171267933712459670576581154607619630284642844463621249605934723195515939522789298209204375145605116876531142794621202421531755642668788771700551441539399645192372964770511197037866584233377414644488590128689351728925021438454820402877320613703520969783841971722673678310092879226726625642798624199267259546728427307927900520909597372762712119367513992055954859872151953337413605329344235785843546031988020038402188912852771189342301612947748408380073882650632445588512376815507803307850771894290346623033288382552989431181642320794343534088687595565845602982644544169137721467030434775794974570135244175319593379298604305705809770832455902606964975954560033193153976894830080357898591528006972979638246465646376039200098753695688664918377101278615480139943466425165244219097144184361554189475556526200006451107845910956558590508799193065269648362372574443976054100396159377063560047490407322498348247294296896309499776978228059458015334938804089189640247806048462306172618491728667128532754115316679266104528825456814895089918830039591125701694278231131215936620687279529523211124595358807211859888779324676961880018026114133062776467239263198393106957843968766184645821515513239064692815114483515628483973717921319816983358568803468607356914668544091478514812041739512891167541762302336244848335566810076743678474466002723680926142789206142288317619504200639173050938985193503636346318867576859387328205031991711934307539027337366077444300479302358436611629949852128600510521346750244589530931879096302379959252316884005645749813663528409129128192552928891966145512164773383502305031907075908944678776390005274966372662383202853098798412350346217987631558624349737230400780198994116549974599308682208465825804148930565370663762972986107006085381411379104611181489175559577201323864093961752174614138037337845584277658744806309960553998052855909582466177134147459197463232393908304341287176708929836615182966902592543894079960579178734449700091933302842543065492806961965867484584959252511479875898164722145898907887647326366643276216947506315229821206577956500875020000182885565140306522452412868549749155189223523367127105356094268126273097815421642878070494715987359085694830740004043642346123286256200625695650848591922654225205671447677046529525771538510552765362420285221305046116648666296688906608602068960074311293365387541528932845052939259859826833829411117540645602467599219971828031602212151607416839249959278949030591964834271381959402502421410318532833240283912926967030975828902402668032319025210282061500519285582440169289420743346408162716137554911764978780807719745065408983667925895893206594303605138782050676468073771936844438999207744597839812145356219005565633386977248022661776865237781376771177439660245333477355000737641576894356255211136083999851417682030657883781728353377040295078647341058521070073090588419236911504846683513911552105030829406146836731684669922953702349039306747803477995451666750083431901179217698810779619255210593752799821156409646908065886282779364303833338328268345663757718661474656573626153488317819515238689805576794313486393658067284741929890581035036819095400526919385244126006982466525232899869646252441380538082722998607884502089827442245955608800825379647360236070467059728371336375644162515693466119135897686494234860327720322441874257500129315349836841488327211262495543627061060516485906688914982212226913440976498140022113955257358977630128952150835836007692838734030455600546939765805220450381816248249999512485055403390237038649975460999696101863765909257433848175067248035850051730002169835620696833927900173940513188603580727241399297133114857389407422548847688710637257256554489872934360201916023639433428345696731721176528549885652115938913834342970642169262330912518255014724891716953132855922377519469664617067991415595590720169791828415448210817466450582229341569805525239732696815241076312908595973937255505807356615137525666400444686231150207347190634396715339339052239104099342814918599833417191848724114936203270496043248762710349376510389904886795574172290353355166239932471308234988911014105745887367639676593178947247069095396632147975129957462236595934539455556422504241900300860109349855932169294657782351507280578668656215585988337050302927568721162999853027671453669448355355206308680044662945597790503127958409286929252523645247588419425639033060998642885359173290483775254684798849317337179523490715060975782190564268754098231332491950385039244814965968355297538742917493508285913937142394520845881231012924334851474437284582199499175626523743043468881535674339202631550579332719262282153073990678631462465431826687188493964130738910287876584767309980627753823033468903775373671255416643160074666111300422596126884600716678056058346092506957640925262335519015581374628084737005305590872716171839513507510407674982919124185008530638335989692327414253269221316111569665394900434867801949993865714028286562110529377829678416844544004860235871568384642521706293833826260490063390656023435534872244200055785745328625462122034780494942162497850424628418223364127761071206153977669740506815622805434730882138885354058927661694124813622305101843182527216684216672847702449806836275719728614748171237843852302934213046642098773945446362976828191364056794302996490748758239623518429829703085900347069879514191120610089759534768889616917231796655582137643613443953564876980677986475380193217594953093501045075468151182845953451227645344351770822429022045577695516804294596965705925327644242859205448020941809090408714881897013453831296787307958572449021137675402645573926050689599592410871910606750019073433494586153257227272654522562740195438659745718060549231968780447033990737132070663407895040936818761169967113783673288546980311137688164859772935060177434364482515347353325703823825378510261074861885385154510452982340931380009699829970597998590579751960424411415182466395018793114652734766018392735839494103160957509256574304571587455694248379028903671508268938127134561260080439042198110779649697158162405847894248835885306203266081813793281392406482369451617875064568544239929804064961185047038850814594455760630427953703154885152614286326797304907572492098464019214783948323587013304557694810144892956318918479136265823247032252798329273142277876085907619948357041540145474781276363414197600096376775076228081959712216724833447469642339102786902838825953907628866188629137117621589652638049930697955017837156812076941485884945602480473635709627451814036842618358559834203762159340724223669105622853707473204594595551848582852558699749516371784274100988476889538754126105826294154103626454558440882382606237750879943241811189145993527364229975843954836679769484156688448271744961919336151928800231580195118236119243611349841825652756245384461493583519201567311262673334306651226850479562962450718000721449328793318366278811086316371012010503329408292733043714016612534945701164840903154621552447037390848395243668898711955410844947449551803701264330986055317243791702225869370134853032884256225318644062405786115041117252877379961866248897640686316316433018569463343338825703523561755006607708454893505281698405111271537318862068554608034391723914017829698253180429332537285106769487593684464803615687458361894651631997904821149286288556301178114091636417047310703632293143014946333912672197777681737300216100344684642863281221649398341821854681177674603143403897562065781448699373582366246444375679457133487659772798130277979655076997008049587451528172894108863827444692090872589837382180992855493675366673655740459393609196960958674518177246985579115325549580493267100870208981246276023262430146009217052569428020634128774881258608059557231812876774570433660693799936615486098183865497958834198190426127830667161950811596803681610166015620607018462417533139384292373677021847803959194032423870227407311273198992863970405295451197111691896312977649359129999337483228282479637846976440461530398577249502850417364735597873267242099363994973379778753840818062856587276033391508132889518117079627957998000846324656474580093205240599302642845250245573065182357044053716778145367982967298081862086457846029581569607789435824771984855573797031853140331294984756988298500637872395324214369515212224767590450454439820582799191819392427777534235519327868608695492086772790300925441622508191669729060280614076886256479148223239241583842880510575030197924095645010460448242776106332960333993224699526275895907945941530131368190758871958193790989384674713822354403925506565132278905741992180132228427014870267148111785341539305728069569275277313488883551271329919028855143630438579618260562892899048755458443412651087642909954697905685354712299587583477512591140429535857561424410140748250284681150794991461740343217769289885767450938397992968668553505259736544228360643615542179998521469392035498419403889410300972979222436868360011889913238080947140273520180958854366101820137622830896404596612333069052711312940368581901045683785429703527195581475412348724216857391260992523457340355415197778192421598174244972051278908832796209032275013754019641573587784966458329549663145786253723773776879789045638807938218354984308871697832696398929904041205744541129391425789113773624186679746868233177091112797237089233327490809849266626554630987283331109248930086549137475931674110843103905021294854408562405572767159993281179619208198109482102744604547579242015368542326006144728445433434310260875524888527139662113882725520592671931770350629632704850105747415039333691679318445366094284895143612025145236170629324497983991401916928250191626193832507288019519716321595616771444887091624627146232858054878024802443847650967975451548871216392260468178315256875136599062943486915501962541658793982306301100195468694488170312366413631806752130262031438047945203340954821949948121295597794540647991302316796660872277409230197493888074878529569447113663869214197244893822510655543857896349559023129157798663278583318710787373075363008379546814900046905653576006588048917189339486087062112230474338775345465705824200347997658884303647973964823808128372575131861104912420684767057578358213984666583678227453957438320068569785294689904439804998167002179087153394728393953471548578463573145252087246258530173244893625902581145611138040929970365005583531893781629066363562157523085974528938233960720308053654697118621370152187005247939234688587414411029858581016420059839321502560133520912034805529273443726008831027936163288365410173804201578369854240142522000931860392921486704463917342340122874524250112336865490167094175656193177827553814375621241014883143759664880003848214717144497193255198648104379530765564198085433290070594710787948249753708277739314560393510361252259586493372986851471249755560803320696132491802391212876196317674575660565785630202860912179909411561001261735413042907379478145490252316909648411801607597615003157913905817996584189484516733141547537230596163249892354920343748914417103042899221371556190628209484674449861201792136886798799970643855839049479845419533782314962891792427491405613787925604784138439112664179243360497352422195792041619363137396035365569690668846374806427846257637766535338708431021624322624812132606769065927662788987874961914708792611938615176724464456966645290602291193614752209653042289036953430560787717486011679312996074657277381160771569786295713006074558230843156803314070273936594041050646398977800241050890197838197586215110928056514817364877187146574496795096754232039009211792707758225181615129597004616390013319512630663605083462342667990530550746689939826543636205030257834196277590629753999325364699857076747375709696843034928626399690862341425017844735312977567564544684909017849703266014801186633983941318758876958317223840039784002175391488969537463569190305299544469772800976172931808880650492191055676671131268754075999796759977152783163342658038151882037213703140861859880466296400989722938466788934582199985523369303430065486991256667955971739688950208299671435627456701717810930915655713550192986482922230613685934048152552505685382106872410787194806868724501002818130082984058836338726833982120744587976722460259371392008556857618359867828396665672667079807319704387632407274604662337219741038410594310592473696805651592874073396962869433681434118986511127347941282436443265371776623365495830263095977442133302214724796168757290060907973675137484191752711627420820980848063465677500489215872211284801241230000760161533797025320658264296334865693394586119425572146313013161763520864667448627288967511056671384941582120864260828402164646905286497041231975050221638699242502947905054212837514444319679623447854295216957569948618756511464471374864069766796063041736970345604072148153943907697890559855411257152435428528576045374600146054819833639874538834025778665253112789457779693514688248402122469556823553560017853436306168795836140596345735218296411763561388593713970554917148527795552523616754513984420855591392953012503276077275409216396460990819106505403675084857585720912161619255287386133349421496898581746614341278372301528285285197433652657983646686264409888584066114326549400644051328913339888791768309295442978428409008720220116666387089601850445683930003045755236700275545057366435860281365493803835929385762555141817427417644402468634235267293629195331757808336380286498801346615706593957773261457086446175893633305716139153260175393635977792258418189712644524144294361157339716630530228826342758767460563585288165879928529279970210894324424029563360824653666096484642959661284280019247156044438757984009538614418554899711391354986566885417866849443266175758744325565064700211324719134480705295094465859755698292134735411426951539476980564661653462076194236984668347746997259638216300210433680167569395190695079060522764834984138932301838001615380261474617516239919646292580558637854052387061338356923557103230749960375921905883406576723296892204740257283806142961515339942219565989223184922428006798158083963818096353241348720363799074022183150410844626208631744874248186927350205023499915758722025522801522614018516686034893828857488189158047207903522333377106637542610167430038253237497736151757236574879221803108758416980602994638994510794614291247699516672223620583803396439737530314381264814041955310271669055080032794954984422891091971589173964734453175392088261223430161188247914852302304870576430197806422290267204684890037709388401361560315441746739227871548569257105983204296751254416784058130414450467737505939084905036104774414060585097511162886504379259244024928132514677313925679929575391053729682789509889230028309196028070773490462081043064696424900712038838169395630196561527110600288314096390439120011051346804245022056665221700137957869195295976651684267705843117789686117996627352938555662947453735856445671116819885747522708994488178331562162192311837971489688214263400474712760899169735427400339864826486920155797690519039191536622083684938353104993149503385573322906711370905029064812034920188702580302100042632193998290470133303489375132451867715660364331031611135385380453193138388952592696031106670884390349090500318801713106834801865302081961357165784965623648963746425770292775396220208123259729794211642425768251951840015407187301667566218597398358611846982020478309293218517743459880463630709268485631446678864570445185945102174958127147985280992701307718784527141203696597843330582659440968501907795958926402751350976725069714524671661320623425183214613917234782675789756005238101045709267548817286671139500567756522327582568721062843631045435342208863682918283968208171273916189035929413100605421923941138108438180502559886163009095467259028993652846619260974593621428924314992512932919823584093984101769845411400822789997705422325657763835274375383350408371243241694686888628850491463641983409695046230709551274539866387264550435630924278920005761686522858621973656231134575874544012574169185580020869395574375193378551591070126850781219449200845677113465614349089852423021955761926512567003887781604243855533009325971676417890714111256842396792258947074169081014548249616365182636946441483539424484644475933214154875270205255995302157978524270434234800966479562038792913779542525396318748662591500899863001710616010620126712808744314175503322559722899387890092076969987694675610500122365275572730281031804308613307222650634885771101672252657955164570148903454708144194169506745274072515887297461651283610002796849472493551439949431086633204924892010750765822594423886046398242317403643152390819186174181194211652912127711343190704303396116893931195847818074900140015226428618585901655872657327924555229686150057551254841762425061391839787195037130295458896648933338081801490498062943798013007018366631339345704994864434565218079428347907157072597425241011823814220405887110513703583948364418425604590724089094046724855189095670287908420277792220356790198822610512682271871548370141993719582776157009317822554975941358400724891153459765390123824073638216492244053267210699190879898784158823201361754026222199165204074566418227437696877482095549001947318737135352269989279105279679035011586699706515373422885833494552467298483169423648010506973456708961808193900262018074359379884914899537706580950857112361693610769664806503102510037118876696259663192149117679185809910688759271878821644718370457445885487737484869829500529926204922949923275991859420242166358500366592881458636032394046473394633502859653855849231355195726195076371241269581340981690700985429424436062718111393309228371560946186342358715820979127997521727194410331296434509479706725132308626832512855371378468755978007745106064841282358117455654404332775629182365115884933065784541966757557623997614520444025767473493847970666834738179829911931957388720088944085169302421365093515542670267001118002205687104072864342198722568929417375136751701983198144598177141687929204722652724657073928368643739383205299938106626176253600068868224897370473181955452152338696894617262903018042152563702263626992849053198943136988211307262055936109849093279294403259568289633218940546426213398146963414347319184911884067195850954007990927971882625964408258759934476446507047198946147011344243566756796820675672575754156159812369844230094929979334258972531282118762299741241108827929863269698179505032162734965458393142240434883091418969375518730211791136750673074477369265147467568257023622357065478755608449224757348603520396159403690713829185067898054897020962807637886074855204360576547308106391214396072011564621949931459890131226537677370119311876496734902703830346464096274066905444063866458148155016129730535581257388243677311518820195679432310136867658279058908132041395123615499002920226754499179844815021583340808422517738677001642651441066804296857769502207740042882831478981414739489660979851920948153982176111639109692198342625954391994419316411559842558872628504645366210234016342090173065992738136028984056010951447900631608802452657453684445333119663405066036144005027753683392500757867238399692069493531510791779520300808815658836000702566141924890544267503733557504848124044499973979127840452210833314301395448233435380495633044333541197972078783788250490198297652394318544679468082846394034134840966355637265373558986201118503591683277229751399567050665057912482362799804630067600780796479907430417959124778851521371551707709211872978576136971456564833966026019409127705346730100726905941628386633951880505217876174217361860674476220899793615164258115210193237968454222027688611878596584825112646943650823992377061002051421581078018626837930691161066883285560336612444692146292823598188251637774065250731885016246992638515831099990860052605165298789620853258118268319700046450297858062694840154296221325960059349650816219625475965626801256020425513593725942746526822463558067237502805410211335205069208452032326485168215820303049778512440840248143960061373717311750232219936577207304253714677337692231952134140875630321481879692733634260136238731609713654560263837373303515205521003391855224557145452015782441278464751741677192253818728819437422146247622109886114491676722905715229636990583499105222917101357350239827801915779685068579711189515311752507514533148837451665460426959560129719672217034151311507025652325573236529294719873981449458368964806821932407453716972965861874534881739792880783364331706896479124640225661724455580030452274729620997971987429105766977581776327476647455999273570692580990261415745990439355998126986527793764215695841222737762948654320193585201933119779379709032557310427446437361411787713626141534857525376153661425577784661958290799526832355156595279469245069230434001230818627416660263132817375712374253281688144263694818668661238776325545106077383828816865655840717254674055636663926708810489557061609369192931822889936395995279916995232198141746565841255940015186240298553505365209665703159563180219022753983842611450303293489279723861178023021766783502655459670463355806193245337124509337412700151189813975040403527092929346704375485238317769380205359188243619292483684036226013372108594172311673920540979361532175506541752853130535593701916598398961771023405241502992232462605538484563809839420752745576992122901550223275468122119401641706160269747685352366054831183042580595334980846926486727511461920222427001863335382774462388305919049366241800107168756030335786758254045194488964869099918055441788054628844445377851551630648719802777241113555000499092048690395597587512191037206481296579536197442832235104949723051182088064178920245877676178270850736738724243150220164687408102906430725740070296842879937480615103513803355194257046443329380498635662743157769076089406038134513097111864545217968226309234333486675849838591149475508961142364409006344499385452015180364511851397375752763921096018892055145719678815361016231279407787400444453849676682450355101732223276243656273250007953961582328654052156136551223801129013902445694448125910157322337759913376420630983162848158084191783828865413062958194665766931923173381848843107802991113477418624223221530127931201460187738641224639204896154326854636755528843477785111555498335414637729523213396693150627939396437125078439295658038826995770117237349939840209124710221338313145241515989161870151219933665092187831670013183305628518430645763181116476902553252536885839365617031632715001938042009885201297370250833518577572380674009493833347491408505214403063413672428974716226004374408856387587640231684957697714646337136472957006457756308222581388551552408630199803770879144384645000885605613912834564469140513156751827343645179485066333335635250060940078704966452085821047289595012274576943697846436749682833991976227050489790447535881591101510749032858585424080511367300418294217662259191681267089187843819577259191273723528649888872597591836759342266520093311523152256580295517776380237309276216227455737338434395825283881473481422105279985621812713817073780957510296829022465710352823198620104963224437727610669647725174995851642360409026014355981375974631638031179520990928903372617831358636536620896952935504311027593100472116606568622495642388058764444668295625438477974206988160694425530407864329950758573115106802200483004502551915662980515682808873453821182880065714850586480702131023598382274748912187161100677379417768895949860352170887974419757591456545748268059927391744987360697351768443009204319698308305604098519331066691868849823216761148235683394266844980547190739209442529474113918563044685280050088403972154851744114101482603924061849342282330463675658799173063644472953258098242742317412283864620711149288600617496399441282142009704438171488960403519649878849352379260511238717672285358185594600617628491676653291735662131599896668346332800927444223033374119103317228651044750126082682514601717420966274440377188930302477785582860241812378562766620666763990533166011899743112085648450045154164341439614654663726648007145409876090697896055370542332315938561691810962574379889039980100380551890727165768039508351758659959637019296999068953581013833199600126484754739778465439004792815998915089224651409471178016772200974935250595647841583619215463062749277565684513253166251907590219955806753083488648203234270576960264347943212249053469052206310221706315136644811381004459691670165145460727150451951660051426640719808322398604624333724768152133495854358363632725424913364820874806094462915666445785793137739582518485741543508602156977921645817259154180331266997344151647791585485773365751184147931496603810774110272517639180092684306890281001044993691873606676068097066422394174779426128452126041204600843323595824227260416723939306446705567310921824715573789379779741965293351682056548808106589917277264039378103853904347923777618967371280893881025500463505669730563504110626615459608870189744905779918589515644440760707604539224588310394720027126172674081553648464341769467124765194661092006753068669562472649135342235172431089085705961398667951638678452699694068700253967343382289402380390207624054570045625926894195976203228888893152191244777857744319010777718097988162721488965083324309275099185767950076992084681032318708193306125077419204093063514788147746736574687886567023775814733813444479515723185892265400304204638837391780831640617495782395673628716221627513582183314219674091668828707273318580480425887350099115335711417128160764198649030724010375701352074751909807101710300251559822854550813758737827660206696875553062009828071620627692627130036442310256303272289470921372610926373900842498874056639945354707172865094375851961052183995680448955410596137771698745236087122322394743547128419866400309635249047124980634637048299818604586140790337624010364660745949600460957064179562697275845453595724529251561396891318337901311753994605656965437677661264900738505044595823085081641764840583962514125118103092319979105910434822639099248654338603006582953255254958708085336597502672334979830674934862808631920294166064326705204022396373368688772245802573284821872334352741679916283460519741338831874381056837525859508726882887635710327320836295995913472293685142249614495275608524174962398086004105403282458813704120488403119867223175315455013356351192682515030163421978549870641757367321794735729187720445399088774032915479782982909698765030461291357739677230834086464513989439440663458659255192102564177116415875927000076445992821888591477478708723168156590447012983727793744302662184129711932992291531225703480015967287542936895389793278433365760048210731243613994468557664844864909857093310057026363555014110425648697490864737329754469621881630654823640215116934642431839551880783110593573291469901241993685408980103895236443532470190893684016213779808745205677269004287384286566650041983437338107661557245942428505144648774616742531384380807895647299144032327458482599750986473574439036246298898304710831344461663850674431705217686364990009202914668214163369002555108970139316496505440874669807080756667992595851477892643608100640353945794449699339980048247019281720970074936168120046466244176144940922457265819659732322394345063833354470268562025250480634268782129202906231268403180452518701506839212434760692969392654118832492171571116209097807690978301840502754005525148997187620531291933323977453974098289562230345107068550698945700652020619655251878172608703123015926575655275240527349608370540219807430725764313666526878259566384371635681361435102058884260952561066365250851466206986064452360168687222829925311927683124987833341130546868096046258273601647787588206368600181676877196166497311567188779287245778316429017163736085625343026815439002950682999230040491377447982389943439740982857382472633891128331442214855199136824242595908656709074117139419141846467708639956088949129723335953549130701323798787984320144579857775153305879634640839924837357814806235285935278253775601968467842534729323205097956522721184543576905815540890566655313081312280188600012931307931615902878415309109617016265831595244369060871505485415629407302511956167506376889058215406669011208417113862981713319074553950427760927059503466993783046875430355165640600401841336564059379583375920981540594413419209247772585849529784407188106384440208229951188805487122260426921568497926642366168548785570993798339342504512600192085554957860570479591772980638762106691040007437034810297950092821950312354784923512266607330238678101790777092172912703967316828019812949746701436114997155641702394217091566584033291266416647885750678873201813833994904279335953326000168640467191444283236360947383972140114061678068494145325643502271863332307724145559714472687879090390178518783182555253641780764875147455156727254219285096556033658889371858902745369396753270264019855231779842197981431554508175244196322594135738930726719242208285025790008698799356569301711539373265308772351341479575600408067110253957635470642431611248272416791434401249577013020685513653461534161371513289737101295454133259663521024256620263328510556423952080639382080689208244396645537815882972002707756617443137319317020664090865243674698409070364133175163391844445775131427213339504968513584099072224020487874285716659995168732985092513324687235616530767218964511167344198069042248744836555995783218471900024016892495326890333846786233915375514282742622456874598901002434496561724259653540736721690615027779502816709670632959826662185869396798098302867308835969715737398675980489221072837955467843671863989515083701492837303058877001679193812940409079862141128409711019466458854103386333455079940915876074074474731263216190206323481684963473163914330682609361184300658787291116116481470907974047105216410630968573491153413693697737592328538558080640650328094046001700081944713060014887184222693402998151246329705544515512612648902900084884683209148328945936876102505655612287885790711620309257385146473581960406971970880109689712168807221407624778442174814874871123763982572111728213057600187456294416449724596297844501902816878409325032451981281071463800482620026449633670453530613943272299614518962995537800959608600063636731618298799483294734490615394296184642162824674671179211281117010624694325096201190002047621313175079326269820044400562861930700742002622694774583183164530222235341915433031372477021927513302713235471031566888139337516402871207307732882069686803057585613119105884900402159204663581521318105729395381921328883858600564589025696360708185505655037058997066335756417033253628088396740617572747479857296130305295422160566936299200624205523183461014288830485061845102242352930492911120876093406651089042116869261524075206267960336823414336682868475272461029887886012592923584086800245541572525820267021396666545270750346847258788135375311645642435825959015928332296922350561246197567817111083121047789818929559908754674023620008944650820113909811366232651102876537717368172094652238246588934029543179649870727480095073958376820622355196493098963970188359934253572545179648907313494778724839938219333892648703065152026700234447355916555515376034643104571696578047198276168280794256258472579725020226396896439525017228030753583164364120697011113694089768622138918236429150285916192857235659280621292435524773459400377566667859980816848097551336211643456247981828584458530085395069926431658554998686013979199776719715451659940933891958518439249307800655692889723104943137505709608047312920680810979886452251356052380111057353627708896006005934285726970817980830883986209006267519470345457541274889084655278665202332820799557004088392387620958386135334159836975899783860962294836037147463321701029386450583046985926880398283735494024511870050099611641198392943127853388706083062624968321035911603475565740097308301752243387201773436835193469065741812779317652205762368164661536013232715894855126496611390982007657975129108035849440740358997434237842572041229665735860008494531818615361267675222583400880582369791081533529136646710905458940208188350898242994004051160066092523604841174939790936337448876296447710735856554108638776581837878703203100763280147401962287237494310030693575774645209621926171568840602027076400811450704370939860643757114403462238202587035835102590773025312905611953644565209401356295652375601786881052421244591787761043894716173187193129729503025496049866664544675744475913443744106899980232196407580339979989168183032024026794523157556718315035452982363087672437674052625227053926363579080766347468213288229377484250456482522920412778514594452578162906385065571970973297488457326813685164980117435457481644229031892571217502610577210073453441608210264459514928757973541998794824104200916039702952279864310851318028171697387029342132961103697252077014582470627279035962558689875342049012301866838519111398467901171585255643270609623601037103137991724052559220913952641925676764051403591328176514516441556150472781652219684586976613741533276135132133740711862597386001257491944249477998872189553298928186841637103032379791828888548648405249991726233821863882932863523312952954944991546358446712467775066807732496302888545621420433572049987248874068616098903315001073367534667802302074374559705273967621947461032144242572866946070786189219275131114083658531450026026665265571759270429744005857107760958558809020583997814028460658495238672361468696323551546897173411832775229248835854031847215456833773600598299556754676028078249111529509283598201358129645183881042824993830514653033312374932496714351678451018883131646254728485682155454413755858401463265375375303789679678686297355175557280950807037350124345459214598306930425985134060375725506595480744742292209591302084203248812292003857105610289170603600507097886139804543776367600804857219224563674532132693932449866547846278398797464611701783138647195859549482565559569449610085733838435117018393961783190817168597289435960855844944366656846821987380538648453186803203042854974247757240521142210069257912268977583498874506689388036449857562892914105502469646566192291333085739458518820531115328459168152599280572790006538045119244148975673085498357561615191555704286571640603203033496980909927045757155667444085428109568295759185846141754748366589510702670864272151615022952691959013193634311130288552303172511151404115902330251189882407446449950388843448685569654454301885591088299718716364695653056417305856174345532767648922522899392818524845209527294812389382574236035479411934101794999940221250141688860382579958070713609582872260755111658440259792530487391179743851745224556944091624945496987375737483609144673015761339239517964324051192181112004350760996043818333898912603594453761448713719795457937343824913282011185719869296733553387749972190316984238713410421874806309743305924797642950758694834307364896221222209697483879668356350143271221917551639741328327894756504562032606174333651044761910286556899812016861883872382229742422454630438266701251146090413535069438185153271590491522842133509057823200967056824478931366885664353263266480908552243554988461404635860704708894650591633456341750594897360816463735260135409296054348070055071018718511989789645067399299579638949522426074159647163025967805989503763931027217973147980637340628503586888138085879918198899388369485535168257462048119757175078735960584449754993946857644806086024212076301470026171112851214993583938487500540423718131272201571008529453913348185793100223639843640363992124125801802698688550279156542827130819500637047824939920821709848512514437522289512760320335068557431480048996920864285717991113262971449179528160255492993996671970402833607753031486979424748493630418703604322258590829339333394505519567127977782504204651384443617208025751012933073982601704375066759123695319075668980149712996358695859451316153364103025210392086619513736638674241945148285957305262212594731159523209058419394479145909338072838195010691087342826470498291998235570789573266900740721821237363067267229774251641524186828854965486106849752941546765615740809691238310331000156453844501336067767248538409041192948670960406704715153300273750727920806470176549186286655270817655649349827211504944169003310880893337879822760101762058320532996382800362045199947601530320251863011974611099481685830882320030944169491517204384114237204110130795643200870888777684649629233832677245930994272414855400604886416002277174441323116205404240413166186194877127371141940040059638036381587490858709459654845268485391857723396290502303221294490951457048147707457721451963698737587807011050704897343935595973418687748729467800196445750721151744568151719336432237318626153391307351880052531552837993846092130269959492756576161792712425027475900253971238696319180944310999898671552176587849099048585550131630591660824469108574426942369600221565095445684710188696140357588567099798926958511234038672547341494501795538800547326099028337521695062013145053157205310778043725174342026864868581698518037262689022228589717854850014869564292591776705684935394986964262141420822575407054978551545197012192544684593663412404169807006283481880452571217958579233918211358969162221628224532893457396298201936787028707208326091280495559022552276469086787026386311904378076972076089923758941339686576595250021842108574338166558852170502373089853670448227566851081252816341607257406904719464526578182054882266234477848575070642525225875504159933482566243432145592987705276714327254376254439050599796709825340544584312386971951132580742019154456565043384213572006609949137073988110473868659999354766013704572537244168104668031288324265188306715144583392018566600080229800504337480540940762473652364795546725793775468941718776753204927998616168278671648194591220668146907937714980794173757693235514869309654880227111446224668925198876761692064517434459512761681326409760948743521483744389146635579889621560639353736173894894034834857829971839681658881416321160842655159743843383919949417673707016110750949030260756566490090521789557761538105272579698593042352399896458715659133668381048748414510667068056689674043761071704407481440543294827598067878564017219454673098755933212244981986435600304269555457753640685249268198663907816971131280996076154168471525530098100488021732692309857565651498323776180595544503020270064469473063514205473808217585912613474371522114565911704073765931147767613527341081810753253224564185500248550745519954902565544681780112250048858110131930558543587508756186118013911606959243267760323508190332372433508458803466038241417921346972257581396903061741562750916265874964667766716562639795853550725761423546856151941126571556059541184331328226371647383581261524213201396887014542361477380404551072786898448638398918167503358733933842703559905898718809584255026900265638377166676853868864069610113919285676267010020304539623460417042490163131762751546211194077195013419452654049028500776887319452184122906747783789618667097636979133468196511231222923652551339280008458888949228192571682867450643086934221383557661952694443105443238239993233100341363648737044366645716752933553453353344270538728733834299748125615771892194100541219879371251213597161813780052832050110272448463575023310462878423575265151477006758046194792112828530751591065965263085166029010575471940417397528485428575851956103717725612804302266530716999073898858039561853230600887370324204764533908760578280796736133081980225947283579625007757480696480947596844850185215762299096877879232622766166554366913809886114533407735143338372479219030400602540030085318214683231806888956230340450213426217079341346721767032395112673766003382562190120653363837365410033690715131964749388526334650559514757272046586492346756525813599325599775755358900246645958500566066799698023499273877872663106620119797680896532031669733953289871943011668222983738080152159516428602420673400709516638044238415437636448020404002244766371602039862716063051069585587445974872606870727101557780321459807962000378025570965927532336434417541057377772403146666343061631903298293728875659159751106464311634394937364897707791751208626757528950628059183463850182591534768753642044486340773076696495076877013638121752384166197572950814573463429837300730329571376965435364240631513849276546548003156195976537554786969489438659849735801172662730855435927161763647095148387917501702308542997121181622528617391834179417991356894289841376623381627103766233844461769049088004790108884637963093459141391020260686050270181612557283488679221818223898952244894339353258289941614938889839136378946539067448932683800440041808100614437038774853221059139056176068455614253919420444064483212853864884824997359784726096314902454758629944935681146726497946117985151949609067638194484555673490727143945271357447733081798887136204030060147148598707998173944051328686516998780563011843883851354466366219405937780419226831923396581072932771383916073157790790765501995511512767869700568234977017545898992182985315729628317033479487808308415752849576580975549134535634844806196389490157921756028876786033174656154387827168347972653264484436793887817590396038414514251659889216821773554578864993146137864872783284144893048918380549739726338533060306876347590406235450868326313036371140945953899818952220703597460733626491425544615294722810259573984519447060482727592912315949167196174484021226796819204459210694684575688122174761513371040388883025170114498997150229820329967674210567347793235833049717384346233000582006181472322443703932298697748626936728454191649716164910322244555474826033226488562375781880924969234456550558718890551343695728778788060502640489395062939840557352006902733700094905610319853619073372719005233098206280388236023858377829235848735388686108910507445563951456977974999040437303771338306196238041805276420127713414508982093061244979505777608979655615213668110169616959709503176576153795353555999216884374924672508307007069916055351337506270117044305191795233639103145319447985488239733367619241207551756142360098541240667758604497407994637124588094986825293531243358759278899762965231273050108149681184023126347517596935097650865973353810663978154861742595459505524029063439526330343290544090800223976364709783192958232856453700231952372627965545767111121846290967213489669296781597226690937824660457124529740368416589032533488544364910744616281820224716718453355732534608145535202283516308972927649605772976153529442580926727904548424396479096728487213032872975923849365793771328531689029704353002336853481988633731304385799643723582586210502318377433835072023318785448458513848640281586152907233669880558363982939950743989180146922106907881540063302235688683236402263941139660850671103660026722500137140393966360835586173923441038612150851175199191625096976804350222548231703529601848844414329521548246361194178187372739789156422776113412250362532230597223428566684921610808333071729518581960365796247048658455513584114195738134956401134862624242433618013063402627668799176241920452392124921078201322285560792217478934920142032869498117069467986435458673791926919851761354731186262191063158564159177225361025953278957257914319204165928430487319922382587480470075276637895519116490289783242819230619487530126933187372675508969210588802877045715225835573350280487819587958225020226741034733913467012447527086057646174963547648999246369319847601656702674603920687945189899366022476030028008883961544228621794396256085531015882877409619662966605982311892537235208819606385803518124569274166610235514871330159631696153290464376906173278910837085631409521685312752938333768467977975368839938638088962285090121062045333750416179341981848942790916871685963150729932033497146308003315490829123185329926363954463889217984640622313720621573242269869386817477332506166822016330577878880290861939879229243512999232743632383126781393625494086155790925640697625757801336328463126784144637952745184741617373274604885417716936488637559966800289928840121767162706407775037187274917446230997754522246569653336173728095612252373873742798416204012789757715441926720554278431761238026266220241101833413954586580727251643093502883878178036974401998672028261741485800269691929299795722587394506994020919162984635573723977600825153522098730020732871252066910871582658009805789618818273673466355368752695730335664567635187314981860680845700651994151064389489400417956976070416752732979948706488412385212542676710731348169374578217463559631118139433050458318815855241822152764097482688311382630004642884115080373497775717234180783445099642886181234841214902795306208489040608862289189464015029348286751058813337932331234438920473989880275711628807902399806039366892866666447729530495995710321265546599088041437769597085791597751665024973385555689561706797725634216136230398289016920226599450132017205469959780697787956646501333812105056705744674408590405515845596481393841622351041952512096222963391664429958314234135336755750784253567065857026650103455567217399648666803206757784245614689451343747835492379681489132079024168528100638890443058533806345462492576024908085241807319228772299023890667410900329138165886585755356319208501147381682661705956577712533479463414854978718880574265494325267334220755793037247407759912599882054639183037149084652741293297827272456912829670543399166419295465253164311590067341915803841658306067408482904669135674395866504019912900576358930935229419736277389788884490372895881830258729489713387018326969472081309677255390411353728515833125596283638670064304921634481381873981860987766609536917372799006985001763697484343294109573353664703825369108430428730624250750998026193177543637978422531900996965219841874417284047687232091967573931619726681075393791288104387314205650546907027847143324619016479754955911671636931286015509020621156919430514887740882375493812622950307485315619056063780031381613804844407728522773166571770061716701622883154809587761164966371392671156672233458560529984975875862116865880967744621404100969106439070474739983357135913023356476380392244014350156244103057758855488504957186369964507551907358180601868894006088780082417361989327860409494563774139338201139214979274863352046091800466751541926101689791717880347606724041620461781917196913009891076075056390079539500800839486565732292163480673070827434994525131867725929178889742359513043442330708758556293501485627074785541454586751570296129282737866818895249344132716886143809578392861856303532622664030323112835230824443385181958035560540349996057234696883765996250618638268676231505558101213439702334737054479513653743033643292146252831487576528066775021237603712139040153645438804447526973150655854115014481572787831430479337581066659546523522389182186358312402199777413193066226718472107165505556506915834022072873556717972199991174173711498913142561976121241274806937069156467251835122957512894867619344162286319100506345171427680305008560801198533362678086216908839512059713158979030743042647359372557848996100767239622890007344336726693996121249814757927129957662224508879624935045927707280179124673649288077222113331344645621455989771475354216456007378314962886761858168936089455808017057741077938991708777310002555934062799852147743730021919612012460014557647658465936282608968016953119682925011139832636703786076885795583218559442132900259957177892350955067383423450600006955541313480906419151752984413811322268439964149204245318336143366158550055614535713802529299939504646394510760104815966662260000890651686716338825979547303932995030842447181965707499686254037415003786592883629374732221264341719589520565412312077182321689361640156271595386713064583235076549552062156475745881906014105784714404946762298365705234044500773445295742446671470395533468905142607670929681971464670527675307237002262497555279220416022717968628056342606555622118967487745256692587094554642849786446957831308951251319488225898106495771748511847160320144058849532199951785754498825516548019826020613745583956793107221202391452472134371580835125873432198771687454205043530492220721924693333634971493584730429453411083907428864320037165660610967087949984079487099845807876008823828665801058725266272902417434720558496391295568498096158771130826397483060128493825683741940747012156134652762297134426931269286037943881874900845467603719541852099674999631767318000657431466314580185363435992404091044852650288320358960476788801187817653263452500305337828969297885500445406620882483785296365697680133606278267452445249274899933787875896482980191474286953255962267800047911696382775742668170799041553909347120330491923841671787187738645500207578430217845894303289935007442417469617528235378486818131899073422705505414178967495955326031647686260061002177160514216231876719010469738488350197216275421040169972608631016585967626690224747055218379275515050367696756588965858957374318216579061955074053768639615470246368208163557166991629140181932054759090917289563175949304839363820095684491615135225254051640550443590687325150576286380118359978368253189958598646755439208049742665953885591285779015601166994454188070969736130179076105115534579094018730873162227520454890257554473919915694593487320104718923407967756934356465101592972059788838537387036837245633534530945951342590537615182197793047928561557715060933827692002259341974271524544488704959253089694657293146871738496796420421343477745341723180862191787107823226131070772775243747582626377487122325757479499036769817357562435831879196355537694302500656667355654986030318469659629667490956594940721054148162002573589254099392419708688488623093896360268591348191518525250649587025786294110779859514413145569999919734037965120476792389233794848064881276001785429389759918463902023906868828065295711294528232402382790000767091815205371280968478223307811997158335786833947747928255189298467954522123743481877140556773598723044529967138684539945260496352106987172799812169523247416207689381833628020940460637221404605500219046443041073354691159505756024094199170772739263676531371587048260384237631826441917708563216694036298458269796813721737828923945095638237839672360100622635484754443812420153724539854820874711407272086924512789188870952686855798696256932146871899452599310967499541572760045042158743432037123084877368389057930403698696044913244187271599498739632829957578621321880528016806298702917848757298563182076492181285257034503827530290780845607569962313643248776223897348247689208246130220952037175170533410124878314086835991650352484414069336393609443465006863999834447796781685219033528342557482397333110172179189084598672327675963768785791733783626376425054734550215663943099000414291209137184850639451260754064700957426473874141696227101301799849650525208265983633873126341603847927135110854365309306744051134014377218014223038656957162364658313555437578869965651089802464539463905488750775844901998830688971143056986265915524166936576902647962038839849634538774974111574113709047698745773893558249364654392798444804591311352250335766190118737824276240369002661393040855578791143092625246504076006365271530605045685900004722402607449792280163374706013755941939302193476507699055801767259314846910030620809719455026883645498231498257163417131324298117367050140836634986684919115632804519706419618801495408339753313921607559403456034822498211079712287273649227032965825729908650003312124109915747724837158788446324506754281377979321133632407194807288520142720333983246134160083623531533086443023997920607371770034279539467064171218757300276349342134869739559497027868642582863025577022077633152729245541960363054821566603622111369848361928201646775462797787054634715445355400022687443326277105248429934685337964897088497016445657322019047463632262148529662306355392763379792540930472915501687969264708895437563649941424619806767610706367887277499406282672479114862176492509905885130546592046231765799248708551222638875163098709120249954832630015974662058411749828430075441207449795116840584227195558774607991107300617105167756141927796050133927390231583537732833389107527015453541151356077202774474114229292843865343558897427744291612712862111771205100407284065170864256127393024928867127423264293358054048079492547442813678400470510367087800373527138412365528507275750995970380403424712086838059568212302373363533627361447420246312664287238893364550893407693508055290744301512907990880666178031116785050466867162932807110332270355796709536050124176548780986500213486645778295091509830973740688596633043688087693226529900939778711629070421882454879769274055897620159374034905990439192802592912485857437134022962897361577721040212343595126628975950453334836384305169107811659459323264060114389640998380828024055629814366020494869342843557391085598588777511166821214166477596334910274269199193860267887937369300925888055533805626909512488361166618263983522527234280046944109192429763473622490432900279966846405610361564812745032244925863008931827091519706719628942830208722295767264682174878886452241913590639023855878071573237117923338340345951736610540719699062000967316108422491001516945072688150938008633719969126655294755106987221403376953758253098528278058465826207983361659491744622373694088510064406224039205555906435040448473379122592299135268831813399414973158005412956523955941162177839356628677322512799840380026916337407513288525316788844598843397944598646214065367820465201854703251923364933684864854190479293381504930207888642742878222134968815925147605041771675949115892466858262986686979652116423612812417460466589861144293895640326469728728840709700869875706373019349363713174440661088350892579424056948005777152234823560310522485306709830421311619584764762407277477141025246250659943690517659206837160994053163452603064908763581595841560037301387024019288777281535461405275781193115105674068266472103952715298783771777378103308028499813900003282967523545926762551555272773571364818642510785581776645294105329649744072544295044195377287822009331765821364702511636562768752028824463652780710876174372734819507128589418068822641357031438254226978169900731203103226746195912628298785563088325669750758007567247937506888894554536324482077778806702200067542825720729909771350478133377878356735068466347449197972462712136326098224708638009772151754256166088100337493595492920712962801293698445656461738269677243785099513977885876451984350708546363211138637453246036613574055594342126705798593357083226410332551528742662899514085058873256451891920253421612422915962918228788946165247563125942654160938275731443009346144374324124461820991498611528508984474737981801513926398309343363592677462041041536643710887238009969028829503030275488867245126559804901125070311545363981387048463036136915603267967106358766278093859678187533125736129664244695803627948158370829387604775511811201721035615434125302014413226484507895887377497627537026925522508964212932591365021518950798692025917367956411711858346982422017001664712982455970300411508473940077550956044249376348718773573601014772015701605281296967356880146679370204065738065024530845929149600543612254546179976664906792872444768511499973112523840568838707076650326722614720976913577743454038010576603729341697785332449067453869816092911104100637852370351480156312030791913186416167553643222287065791182123116582325559060338965557129533940714896504999778223425640638053866394747913294817251331977672503432143314684031845160417658667852191383522077096741304678441334270968701372311209045873541254113135082710819918329251612012253149130063616718980587393025323809218514650738588893705540022287829136902659802883853843209183219103635148678325169966314397857968993890230690372689349191669897307391832237779100276677190994580804623767498114896531862832169191010228894561373969759258733040950286152768147374254422427348035247208685444748640537793703677850777846968797414110746901309205246314012257561215693600668084390461178114695593915298218682797013077137775628752496752784138523882275005642319811426389147638655119409079478084118362422440182737873366501355493021504793198322937927215441675818353356861164382791163365934188214040535639343511051429317400154432979965853362863899903913460304719260487298186428063029405524427327315942671168842034758943261604720532803908375626841633007659291394033037946503943040764678336954677539256898949651315852682485411443769164033615536123180779851960728914434119775996269538399812785696745987638135486227917949788208772662865388846662158302633093394891239237500994920796875602242259611511814776024196435855973532469098781075257687413562760308066248754332698447563643490335357533961801139751185636408859177541821749114237951600679430956392606939650493121937069052377003786491952540447919127879942642563986366902523335561274427332932692232857775170371100322060518752964055673063651265792621201474875597368185619725696733753026405868325998973993511346601907923147312227442819875376039942560831681144589166164778303156817675336135308239277027077258267929672109583098136559873211443021648542397542516254428553415587364112883068429281183733117898976809509615185337128337007225699308525338751385945783222002283142699608601053813025247323853762527528077685621906274586119159533707116885258324011798884633502091517830753124532406043210941698822917741044274706404213771849874307386944638464044787611568204722560015869818348524542617459876938567138786479010646342183946440026780465902058549953407998149993279274104424014332344229989370356140502481952832882217128189378021164429755063423256980930402264403499089293630668329037455111793525304810637124838919969283907639736812328398569355509143751931978793239836055475435728992304466361204076728831454861368838050373275517629522050142784792292600456097461102205942205183979402496727655386068861603464539182471551237740581551750285030072886354227792128645063184784968457267850456513442920132981208704104596516560534316593776525376905916147856105443344888508905604184361115620396314273369047386968777348204717158283029269580207554719785825274908400519941616390000747356917465760003735422606941711368928041740967740809494251163665582867845836386046964546448557896665900185332906791016206694538276605678021806710248661714780442974324350432029996172389719300320101979509955404933245347482802480083343174516802129176210786376786211542663367211768027888724290746058683722794886649718852844585377607104747406065752012274576479045067658054034936308322001666163380228892674793441277354213522771299744438062993809103984110151557561891923910815373627595608546043689329654912674777147037473323709669034947565467009379232556983031373635373696124453374366760533580008989369005667635476887290645867234493228629045713336991577624869654141077274097614248660693167297913854503425672935132775723951239766628925522470854765239038589039796422307004490674669569627074662136502115426897179281680982066222518806605674736103633042498362920346545151681531101713542002715519105612751917586251291704508440541188762681261491861645605569278332106597370083788800712136578347248985593510260843596620041848687506931024255076735477386948551856352547874931494779490593655408473510148822608887449602425594259615096843103518417596722270502150392309195821753944412336809989148214394992823958440645786329082740169799476392428180260365350043828501014612714660290659795549849506111364577427493610314153985169913323701877682030420399403470264297180906080350673459666056042057996887359583369824753351305063379404277064782700398025315405753276509112046393181556289324544606015437803578859059021881759146659839046380880467822699512181829216846845200626711624922846218578774438400896760917988494660391528241920444892193240047543272638300861517116755151592970738835288822529688057844645525745592958440489609750205892028865296310020587190813755837702942550018446534879846464952100681429785591204355407470800586079278352635167164855625797881843380474477418720732076460831442840627045101681684550554999530401235668530690092915886342887211295184242889249425647713322478903389219906796840097395898602118364335793012033837353373548198287729152844638104509655787294352939201509546982228842184344503549612065187766966578536331758116089366424369506128199372777901011958738518212427974583366244292013617103406704658508986779119277974445056627044370741727088941628090166366951887216745467745948164436607122825713360472946405097160204916808700642488611494556715646528842636821104822223709833715037240827803398388104033869311292669329232305526445699102375466910459247470563518545599043603307067361415907696326174579817589701653215568173413873536373850025172577118810339521680345146941593708143146580798482095148035614014025841798817428901866736455473877947521522785531408501308667467216510708808078556415938791727784417821085650379402727122271633873599130995267419819479630758928783063412190699286036531143132774862498993894095943335613012878710512545418167920902240541154539646409893259943251832160580454797854634999690551259423700047032131740055745624408911067093183000348946231673062496336274898902388345830296389226990839406221534381379420474778172303752397759270009680226663268352432531070623078951781961815800070748420060976165619292785944147272371400706118032291824030262908033867941615433818595038429002283385133580416784986784357073840348293914369048111541165069057570898810968566877518409087468883800214099102876152180349341077436284180784012437858923284209103616433149877047322432996726932015877242247665265126132477011538424867848047792549406775336321906214049045643595550506265398684867911029437066621811811398151456362360797757765218125629538809550411111167647256414857111233589892354234346456134800358093965529973649200545451450496047080348598379250496939239220593750019289975735203984341099951378145302308759990934893049648296911455389964350656859626946309526062874181996445911008826842164924630408684269355060848515242752163711296094718580939453454899010298129499417110893749201752157137060058314967841982570466810464547809926454655660121808040975897058882353182566078295615800113296731210902268764665353061272324264930612077516426696157211593101723196787453221324096750617600986182816339165148600480935301770447195229989830013771270263087294239968726052914997898155812052746437180381129311481415021062565947229672617172542544494269317128301512234621631434345480539595896820086741173679449049166270394247559336418255756548408873759582661925910811265819820218340206205160435243186807915622297823975709153924977824184323997252873671148467894244557752833107554904849930766924542616261901493861843340651707707632745261795343750499195562520776970268025345692748110244914987099087859289433812614479421526217778413997722474016696434351268540418144911454498209421418010413319328878851332120576245639714750130512503137757410592629550237886210692057793433971460318455353375976439520002392224904525306111286961402888998144428068832147499928938183103906507469376738035610098997909507223401555917680719032864604824936346558467307447315666937037897482551588302389108952750110158239827854950126238933128526741649703540687111212999792677725130600846056156381534088115417752692348239046358320751350237312261423034731301287283631034030986159877175733917522444236672191731940730970101842686496343426966226243644232152152832767242440051944705321461665781380407830456155823771790671302392542160494911031871735123798137250973216301058953012159591790330719810735133506744356554928227414983816125003081680279666734310925782207758052199841089432608588622349017260851879958117297104129668076562503028826374582530657789987142310963851030627068463385068748782799177962701392446141424006874193342336981023436672504037764322535205795206053903543985450514816092584037160715541684025292109719004643669382324567386854109300860380380844780843134684970961820159235140244184079956670297212188639019433130945032142441465054991727852421080810732826560613692989101367987793018531726603069813584792590062575563555366881021331082488288751829570479598338235127391785937302280223344210271115202379047362939904885088032536130736030562195303055370742151875728789867010573062467243666397423417665384820284181590250846735944964450497415545733013125181503039094359504466055602737142924885136131731040135704399133902071033379916633416045512533079568191298085035987564176645815573140088328831940848041699800385198793060990288250016984439878839621885637289478136052001024398976060185252166657495702739766361649724401812482609916450017740742372481246529306345114726872021792713134277956719145141902231759078126917785892131802241932248182098513352105057662309872211874430036251014835689916591910647761059119571886611177502774442116560125741612155253749325913796958090676269329715140165957679934237646438277156763237195720199320856522808161857885154355939204604398494462137065118339219859887257484636581605789816013359411137926687819531203056915677707875025743976482902323743441079888652242117141060689453210627375178002442634015802373976600835036126169194144672786666206953221355535404961881773509158616696591687935926114399343438477490545032451761771655415313880651320120426105972641033849306367610496218228274361648774314963724231953212902447463966524808629930878805110403281877573835787522648189910938137043699741515550864635593540804718162155458319893271661450314174915516880424293591159195364749921136805027489670888945335599399994087562034133588721980023200546028265134155758512522579317697246992600820612582178693616664330698504756177741325536190436862425312479684500610578751600919407174765008215359711179107045116460955412306460419309248050152629719901834657102499432341484089583741748407944422523334370388329728342100923025733252974483434696702301173708628664911560658218532405255461495700591558595517480643665441246274822566635541047581277329447011739026483916624513864483980365064270370805487173424491961853887074878141262285999563784766195265847905841446045379710405632918639787042701424493945895954600133017151530729840200107934132946239297826401013570829812847275499745264794610326246134916720026717178879647323546757815581862161861285627941394430052406632959417540020247601337313482982943121625646344381307786206577710707783417478531940743304700483307252526926460787986814117398911991678263109684759832735886320597415766620108612666287398831535458788118839118537422349438323276907648425863954925577674110797702857607350150328160372175537432309823070131454334076059702538464252701829716389149419234533806523916402834098222522802339315207179800515235942837361403311560017010523937594053304231038470807842365969313163189239064263058721100548539788791709398716549876235578256576908162179611616777643221045433986456646024151267097617280960683168516432122087421639487151652742020989184518594707751838393704499665947946813913173079353924098775358298786286638785626241583736359178561443554759305023211184795548738110755545081082391027620024805717906284403968246006744942647085216038004654113560763377537725070585315982284324845221390506268208527916340760795417583809322407234428773997423964466391580937721589097901090604124727119390632979790093769893031134058983059402979886113690632860642505072975499462899306137045272678363986738339340677557866068294811380351184403035586428174234639717918454081796733623223373510048471561273631452801216613690042302108243591276317421726979747114161912115158341694199605665752026475391437134692601184712318021565187143842337404095841111765456019153395264421612484024159099545043405223755104855322421507761854845767345469323290675524328991599019976825188845271833158106724840332260756570452452710942405192666599671630334023444847341236895383772766242549509434897169794012544508346173629236232794102756702759158760448673610068140890861333560914113536986555672682276826208756440366151887818218004711548247883374886143207291983709224725179344235725182028801817498905118665444154812065308500060988589056316143125515395456230730580127140079923647756064983009758161265484863389393872746452397248890390373105077224109800286742416260908768382159216807903460483128111901000282461515675653633371368774392762274189707883949236410515592973596610610111098238998565192373389827816478469091969957363603235573791621574950348976809106304596256024152874744366090251058558135901298333308764876503294820456365360830890687693954785196302153387930744229320810095703195705629437381630342005817357120395715058489437312409560921620208600229587246450130659289559616666351174055652582009908912701849042027585378025729515361309769212242179889936669109896214018581308521608535638977982790411236032191775198788011832254188150795364985647722619719841851996819677287444167624520345034981675135725567845078833037704166410433676853335828616201225196193746826182367306409672452107190219548892165817929511563508461879371929155431962736516867189049800205397933847347971716671626291396969226989716590083539099088252663565685380243120982341811835542496630717110537735475833462972358869168722500464834431256248120963681314243453974281673148704979649986465025031281613704913540007614711316549611560654777439974963301219828827168155480513269591960137648805463073068131735889852848130369283304348442102990734905809623659259751727272008799071458296622453929543471488445686693408266445388614936487715867994590757201082556326696000467408416762877149658543814729955144047411118322233454710663596961750323817707590749873831068005309638579453870989172876966810824995039868724330790143309427757645902651052914299964887421050639420954741589061985472442741074387968037975641881953192906824849072724770305259194698007080981850159866997404621457603599079371389242275409276848082181418363594374798800465272024433271990792144958764161182233653118922186827824201616449259220127059283000828954435667013207762029032125118736848363573300071063017944265340940751111118540088400481297797536663083116883738986140127292409670951594516932036182382448503960048769180572083231445578398768340530752508298103064530832117656498148283025136051970394347991393586676499988784549626589625866768465671878931568082971442996222340895824685576639921304774098713870075119523826835782975882726253923170565515780354565788581758463950794944317099248657719824212572716355474666966736374778237437359627268817134219610730857370978816289404758253989888089358914208572992044074056998104453308205828609311091774155223688868635407871379663181248511106044640609205668125036002319629621529979090300620427953465860379830962222918342413947554212169149669282937353971309609358749976094045939936413367787393791252541774853951940259457278955267104864606117661809668200272540106141221261025498482041080682277311641482197843327737052101169701258360041860348709979918325428697288861095805640731113509521253797082295061717893129230491547307066634586825835715299665222273170342848177184888152863178880635108952188148941028971070306872559762428456046506047050395876119021732461006167662230803531124040072928561358744517171344227281900993980647577250810901541043867135109113444540605970584095096874613242156042231376483087924131296164975184733549592421855480783842704744550450496956172977447408912673620217707619309687119504505591000769717420570050576778313682853232200751179821014011042406205179282884457507437409234440597540943154991353914522629232693168744916301167475861729541412672713619340212942740937144116660016243642717582458881875125477265783631117463358503604003373006550733163805918883081103316655306424681047398882398576664171306167553446028201134689034610534268804557155580997707326127965444140423102061534148770726873416291903293038754032204667059516834008579982997859193401226995151656578162951730821232317948955265869614039047881810359745126525601866970966986943381908796179599041263673073638737081916202385716273597370910170772001196524679819188554231108230940609618410053669897730380837599232903719967551365749736651690827398284394229741647268281261258076054232830473782471031142052700873308446209407863208460918752638303426841541898749165046981556097287395142779903633531019615558521430674255015349399802004203207750845092033927549156720259280320719873936513651800765248657412967577872694230033818728518938669842098961268372750063298850741831700883061582000483911529923301010707213991235376554439645785422125622040240180988324914646199805952133652546495365149641295716721191543482386710666237225426838587531676685897674749304309792848669057538281073318039095525810999098873884331277274630656960161737278243558125009739520067962095515051783657927240228583353799406431597945295474488161554046235315970740756191772295996501777247103866422562127053734877643859180181314336505664376100826726946751892018074591919486654410055235439747369080494282062893195563667138830022580185283360969198161739993163698001620294517911815276535023604898512111724312525067082459600004064962569044248896201469134773202679398711742801975156359943909090927393434732163208328468999240693054899717051820657250676124882874765750529917861132230552772451436941366283198715056192017512731260399202667903244557775170926185430037935405488151812789347266348673016328557389085161758162778406511204084263784668918076647666520197464279877040329791676060563368152336313010441655256394313254263260276557499289529170648294753750892762550099415750483462583907376073806662842909434069472678373631650071045049747501574724345979171289555561797399139817651780596566295132258783930527541942638497960736868481366627450099712506089074851096304100194223269027483610873207393660595865785040702320610988314797263020094194502825330399276588953479046472662903451751537179114254092401018401553908434371337641728530832747454576528815143437281927532778507167042774287914172467771322670632121385129260409681181612821713559542049296862409814425728762670502889701411085278876192636084211147986435470385037969582777014358605582944268127939154023417884675763322843435774357573571222528992703401952688173165726501267325723155571469644219014791000367565854008674141282340911352988650328627145680585424412629550138742601637899481898203084327226008641499932259166969519307677297677849850806162383226857800861702383910696141647934561962866605752432685859962720524141134263941788235779855625868184991387076693827838750849975087896082576554522563919863878726294707554844726480535865572529197740575612919179734133297005014593740735262061498764225022730496489342334474543715009996490831859846623926042151586604458635164982685473321233818278429756674115467346788374817209978034840555949721170095203310239121297656087037276890206226325970135253857161667087547271746239504425121931712346450115578522981779300080560065602916681859902225453177788633310832966150348699898320872917215101794848548806051075972463244336964130008745710206129283254581939504219480335854011897055481123308346561092551820543168442279122403736757731396226672113247667417094103294982528614714426165394332185056934640228420408666017456976645159589271296803019627744152983420968205084683069555950501029204178200937887184297564433174527805309485961164559486614789880300220256253815276975490359843018021475738799747312105514477271040134783860455495597436050921210789807481328918278031815311841417819103572645050901373638788587513337836226974034662664316673853737019881521339093138944145606612808000639588710728093452027197476046025265265784804217489894417864069381216891841510077946877819471197335142240429534828525196547832524635528191925335240694956945645787139877927732644091432340845314863374990626334509535567725283781160518413493571543117810584114326139370712168103978851288988377274098314464168698167925937526807768792562102322068269771310732027050596743327534503503108558888854642569237419936128309822887111814106955519449504551069466157416704570405888352853592469786463757880106027629085596795917644514582983485045308423565120767999069623434556887995020855381923850187304398079764542700488178730796496436320907234751179181867555039786547627217576500050549597484091821803338716928643109373425819974138745478493857240165857648840902116774065291545514112152271825467690862742176896790172253856400895159085152691243516558703932048005665639116772492278113391472415650756631085918008705087376758677047575287067302678966739926853420158214868473865856745391141909436110375853835850322367893420620854000051090322306206856581828877689968374483187238980550455369095429398397910213276058737970142944908517503329581712409599795430542761335258842579211465740947536528892535043002415233380292755237667718193800486650041979128560066360201610545385622480816262100682282413508836542892850603188989137091106045858022851248936459293514547787510854503658370426686453123305894479901224315334989072190417365924241854870200388898380712358527685448225370704990609045740892195211889423152728538672709586654530345907823679756331749331171500415763038744304567782831776544626474883648639589534249698612716805137673693504737844869570304010301454539831037622124053370270498487928087184531879588453847850562604858638052385829500676543071980031253912103722317014627997479998934516748030078319618895391545258214225470415292578791796635737376566281053814877144546624357575998219249096273669759604629912044666707010735145538225201908970771775251921334912348200815503122771027976410757899994909445550177889758790069449930676395430795470319478912133307351740291612922875833233973434500396073156433829342340775101008500397262799460743124029738045635638061103737145768725652609223012259276570302854840634473373326282376025318007120978553274510821472016127185900356365546001329690288598378280588015222966699661542050298463219835756283456918500367812926800389367273807346389575660381861118117073673895785317784826847172896210318762654032867086279768380132634560036562821002256736751607642212871714926993681763212372935381011676747898858779027158075486136901042585299385832452903842248396715005462516375738737942989563474026360738337118358888490750234151637035312366456416674922689559842410331365411682351810728099298387665221641150565042757025130962549926912855983945384182191204596350999817280305788022894387561197126813260797784829417775688384454394335896754398459728273117778835745206148303217362141521766328731260561823893081586528112357732853337826973576225358506990091690733948468008993656185411742721192313791085691492892088747658537483691135114071956697901275537925302857669658168396101679763479023622843329703773014009868479766054194983959223317021513196891947825383606278069555125544258329823765959241089854844686889526552790325604501208078261346305512299574079181513063559373809504972054138805991842683079538485268984431830604921325163575660940837863168575080995487556993233685814314617490152741975905538509757264637060415204048394590807050362664326737099476057045530034423036285017180582657499356049359387715644570829488997608637662843593682098693830640969380016064581279410387488651210564003450923509989969301718321164840924270798381264383449260809878272254204444145881774907827075361353468559477325672559883251228571972222650596173787088321704346186687718693544153224036692536508375441788116079192482889844142419525175902883024132008102539748133528133965208860738024213659207110202407163500973117340510846310536153249927547506595806855467420240795631330915392067114077423123309802107310363033329357521968750575171698186326203779775234520258217149335937385459207596393182839021162554113480833860781105712260604468398450574866000530209891474138471177542154734524527762678774607365834161248223235942267829695399555245959253896912787739632808189681787095638385736681981259678197375841148213659873663268232728935547364485322978201835296342757482352877229118412381546890559609936120026105487007208387805270362844976933056567662282316671304567105498635972894571320512557015633211386729392625487231314374403796586459722264318534025566638229875676280585030946047122137843671225554610620982650806583512144016453934040228220254486758627812586541643943198371962821269292974321414925674724301487757966518284752409200184610895895664416836566592186018068942986910664294575711485440199574871394207375780556976567835926614096212037419624816413115477780935284546658325772385181109314589569117861490626647343915778300958491558228216391547219104262313672802885532247667225478274215178291832646653107920786294402108033818245032805150668774231588810251176191719531559494823720514935437627203603530699114234448110006359388829190273564366082505163602216877627602742703122104786628745562382131794039072640935623410547371149785601951938114943112051834022677980842005306010081006660814479650191506713424753140654730432298952187818834839963149863745292485738812298402329507651882356303873497680173934697483095336261079037608016349821459237383149298274256901830993118533373663880089172721818142361674137432552284950198560784998225799733104042086651015157985079133691057149284327922678511187042589253841512639322291840449055376289499657756535510784522173661683892903153449172199041904945830584786314377666861191076185365665413885767731732588778255373932704389286381491429000880737944361127895292321185030393074945237922564472873955776185341974634449560672978687859081100328942400553723799592748091287674390104761670140262330768158248568649707152914713184438440528424289281469990461386930000277209132918261064197606672352917704264276145012780249514209314734086745749371914160402082269839196584747718599542365059998602543585264458217260148774892033639822791046442097098066445894276040452364905517028306894460798460104626010599939560988307256614783391005791335322890972801341773832864395290511169172282128382025513123212641308929109529264958615379686591976913564707003588190577221064760177881236859905768474924165502539480601469154771550392708967034515704423741992622979806159271336832921502973707798397232966781917850583092848804121122080518735305018352443073784921067501021274315382236794009987384432110606960773901177183923723671192146340286116578713428634313534180393661552108013636630528481184458305780127325148774335110265512590418629781598087562888512507092210766843986832021556304873274330996315185487288807855250517552601540219696833391039340887949032757729342216251914932373168251911767938054727458036131234627769096960599625605152339337823528322042405775453888270413540968402254516693710464230655992466389553945309714950773368642895685122488192807222590940017391143461927459900804248822472804097530249692369570699130509295966634741328394742352616057591732570560412539209639430794376770794650405848533406252495127109123649277724033645501868050940876845866971557640064594818308333163588361909863467459042785552185546914172839840752867348333597324834885253987021980680327623735613912446183345620449037642462479283819822995037980294858490680153627700817899976292485091782026981308048700531105880424095882770866745099332610078777219185890818698634086438042720165970390264680854613018666221089377260275676260231172094790035861023054561641923507454169878933603682331146460382826538101714298536760789850688989538241205621454952183114301612478393782914262273975626058054803782783174990468239820361690637943121410035717494058126874115458900140798899621827245022580234720976929977299736251115562078102252554453429943233855094208046297193553359055178422755184397371890243920042285343218655428955353058834346331523003827527708806002476799912767731306607335704334996058677758164441779295277896659658507803743614021781165247765446332060636210443883406404669804073393805312670486158609703887229689758426251246442821627446399352928388164039307551211502039139706255719836842748198314902249074980135301990839976438531206065018020858003672299509140007805021823564431613577843728732842962631537066808839360868735552863961114466229010291995593270019877647701148526233325203498272136306224751740794736122863653830222113626672081356169028041938740181587636874978169954914956787285768586126961405060565153771300211273413624290861413273178053269173843630833426656009911563374059774464501875625045132579645294160000796513972958419786923333519751617248664024276590372893124159974907387740810317834849425792090115961443889837660830246880754488065542782905482003705364421567564292663158212428423720971663854231241226830721429869032826814511978352021126768891427286965072716448190932599122914565896254835079185024288368892293867393409456398411341852207189270075537663249591079452803852520760417915265716783407010894134561770835527027619732800915789697061109227715095945751596733452449979453442897712777235694939649130278492115203080303706172564503710901525363854162804341415899819095557020553846919941526286187115365222013292121770525183403473298939543799246080587366323420522652255229513834756710411027493726035026456879830096301343098833373019974132028967547195540820003560976739189364368665335121792409310182636206973366192748452071179616518820375670951708428232517025713560800352431347349217133771206550857600191506459269733313744631038057197503890316415508342800265576490052413912811211750314221699620682343227868681970155957003511705259947581902525411105844771113142459069740476549484554908171275404935785912493325952712318356715369943111733495430941634304030094156242309059977147695241788831591400965026771637258716788606243951039600767123307770608018412769018409159197749243175711225157608516013499963152760515143457634654000653634347904228756302260841032572784472041817358792416837702476671286344557875204102298606955301283515707126041103167726332695150601959659099320449122736606750561879201298015922516094812189176990810731995780809808143613023643053277962605814163116035285647940721854176097249455762269325935181114596540312173937290966453579172809911867980966484446085699279422427688000980534326323592839547694130902072458622460776586918838842530570015003574011836452052998139949544964836086765178028826218571159455513224071408692797613336146719645365955151487495760661402034052090346336435665747253808584895134163497382722751832837729445998394031636788678327900023001841262774063256061529582615947234680688055531406209926780635753966295381410840347731372294329227103726089307414167580955728633499267426277504314247606287282664346816015011413621008962740622243261664562126404016994939001228574973401242577305165578379408678476761447442659708044315237870518815667855193187581846646003246423084540644198609919660904555439973308158231235106731100385087936339412725181304348971412366067162763655390529852044196005932033420739753780148160817512592613627543046648584384892926766731792123784453184857671598335438756054066709574897638866135750546878559767504515159392961353288155639387080886425968393325189918266174624115601882649008399432926585900548922601304283483596486287131075938028564066309668284433330097928652232668738715612672548426383084777125543734622733389445954008696717079117025553163280825481657185047396689715817357913688303714396711190572885639294740259789787941376712183565552391791451548367655339361964378311085575220469227546425192817199429129829678134326305340661664808136021469819093362804300660215672588265763937294056867540164610363403476172851766411056104106244547969259141593650829138281133934930731635311020460856039121169455512272766257836466489254861783335460994549778835668177042161962716679324742215202844435333287598586835837531997180838421314742886298826566462737404543749890083823393113936930605615466535205370459404053833877148774034057380289718321125964474873885153039189089835565298458017282506374155881510110277217823776554996368763002355757678893109737903951475940046261338892027226626083146810143178000756097898586982623304792089185899866758892100250757680656391132567310921603616315788845519912415901539769108803987127248377641277810677241760714065714614241790230128853785244660732228360547611123837941246499657496403481017922433241309606666837028553236950801045078595840673303041148187062324455127417756995118053322617840027532649052931877266924761564154308037003036147764658853172517807211123326773501773747519805867369663992147492550269931142513077556056705963503106217882265858771309774772509180448859236336860886967322471860241641157320341166722206800113073598050556458771318502949786872864574002510138916069114487476303543396696127195277252889481020051956913621654583020662837849982513647580925459803878280440003291500570845598120915806675272039652378109655038295096926572721146743862538259147821667145677297144153639036043449130757390373261749721156582188160792631883939738775791176630116174661573454193652306638142546425617112445944539118573554683461997516800298036126736694725101715482219605287872197166733443889392673621379242770081103372019001390274231406822702481849966470258281220184097822658980314429832260897741657220577438759130490418180523490362771653799732917141942810021950624864695479464213704086058111007803450160427106888421309129582738701412245631551765916843817145790897564715425756090765001576252630900221381967016753518027612106826375194469743204936744378153551160817177092781341465545755848059597727435320281299220238568448570810232853663690799737619431973326072495235955973219729692092968029325410133978515957824837599760542219732632946864741916526053261356470564070577978661106723817534044641554880306016230321273130357488918343056923064265158977958189697566998197976163722651397604368618470442867142418674774069798824593652086942074591443500946755415689115343764809140393343113808457249510110248766005820590887459939427187607992501456858621709893833554655878343344205642545136699987052240961056358099506444260482374651056807435338486825472978900267537581488173710232636488739491506520464729567799435699525958582510724309179836806642408554935970227261896310128728462125987287373120314011883184175503484149104272143701094060802847317052928917966027185510325332005599865859703863481465682764856873558859752572310228496730298641260872342058733329459071147487912123152565311720650828120821467282679427222835077463281087933354996632755890425389499255486100009872509380200850654867495980565420184439182909120745517024313438140257090953337284218607198701854640523836785620826113388725667280629947741762885908348186595649725122241372335443554013144634709340833538299163686228261375223691697936270540168340252590936609591617000442572352528060518170915246488825747605032608153986711389369718966318118763795070312138299261411163455784529339836461251098461063516037402065343213403002199424574821554597574782943103022691950695582692497316360963078923659372027605444297662618294965958102749157752456384802021045444767074192569160224387208679903066066218875360806723792732615189037006167213758858099348452907487349233464762575494304137230492346506007801788890188243400517138553382687280405019295959224238676901337876136149251997337370292103142843081803535180427692250578635085947341997558404770442565102543198975189220100177306665415334472017187215395822310279269401279222315933600002248675495266050812209997856831430361774978271425052048584087010140807621098196952419469924817016418789807490096749601371210080300445849977645425287958945501951742846980407881279605743796152925515782997235818781730763380006661217848226581002843941688247623540144374014587522550319847307202572381558253940771494345806543141882612996824689745859173623827416757744343535891333565738222006234740547469653421362471687767552078458372949040376779980629451487128555706494680780083264885787763987824475711165106271354391367255112171725258888593393028808485587454051743536266660225128141979673564421919076001254932212339474061557451177234122498070027866757162962874346965916303962116159805590238734369631304003051857178149318640279982385624923495055394737522211950229370414800705169460732142236167673298004351600629086075915458897062201345235556380840589611610129888172293088315574004722127334673196791571760845148374083616701570021974363510731776047956934561367841399370060304934111547118751679805171348192287477055170620883919218257373003786350736522643701272125500650389318693630004184800067218030720456232483140617171787384820962823119580875223341279591411203891111857427479804827701249414516741563684470601048106599284562403634695409521946488275416266636100998339952474749950403837780960589185833180174960855728876728559979427240645799499736197132946531596303680863291522336357002868904526645627107535634086562985832618702692918967170249550882147014548195435856667096387474021785956313008805334162044654585576801700217566670529027086781248338621249726688209297162242612977619400356360969577863732093338451617546075965413152506178695996171881653222492057730606016230351894883567374804118265669644438145406153905525385385634923235006964906311509519125957268960906528541004412238549943542949240081949616443067394757056598343309285234730824928032372963266346782313277209743851226925605380148308170250339456658897975545393870800398813571710386763395746754106273875225817520188496258888155486566541023172694972742177176170665470994791045572114720063011878895911649696571668637645254612371971305912961898762386182244501669725463502678657569446529132615061682925992254546654880459565034768167825374906084762867718078520498097686595738181445651174912900088025068093870538417566200519585433691671774873666690569839227355107572192804877857136455539518253830738582128692858769718563941266843065476307551344083278506500818243607052711987430861435595697175494867264013798758289919206577658193435124353142904528899196857301004505393448335694026053763030705304134132026475882867346684268098755212643881116849190304580590273688121954262306812238623706663311225811591817584646506966499282699360911661092997532296677322060691171677415749393346174674721162445335970845391643180057053992283016931115568177350244065528449699952752891332315967368670040290850121396714894902452404178007819835164245801530217459695156536584701036027798279726056269947393232099735933846626710461659685789957484599570807037753212134053153785953361619797084933961553886045497284760066404722032315262409522373197226936070180174568428513936310315122197028783413444919736708175689036649622342037336874104994982771208734144148053523968944544211155307672046586271586455366765803123873401611324422302099661349885564075636190668585226981639461187025527241222212101694453135319170868076990029971925030776221147026116942137281583880310927489740780847082168794970643607358591885616620237044282808623960689331748137267285757301251439378341850553280578681303179392143136681542304102408226008101687654833982624892846469529686651811907332453986738081965084914041038858005649542527333814757764852392693407685656795823455390959976378983981488630228249831649819164712248128644673853069125117476167297126891004430219089634102675398386071366148642988003107424094883619536553315851681436504654509640870635655042283740624418494567933838504545999904049250817915323759359848924180865123740280205100027559455406889819865717272523101326319226369507750448043708327489803772900999443212632415997611223818498848929610849513842519843322462835897462654487294067317760087607164137722883523453205873806054400763065234596926217328217264132481161638295858325919789006136093816826735444927202598616359085988142331014189548437719639926224097551633481064653928038383374612312514527037203120810941007978615131976428677744617004542170527604182833289570947109490651603037210294158531829643732179337655836934963383760831717258502469041576324075394520193508371569619089599860355981717225617759006291146913048598319745735936858735207503583143778550217984408749332875124157079515741330179329114095651661518709590313678266754939595044572462880447613006045028923792779536937017908482382583118673784358621950903938737699457337006232014676256660840862138403563403815725587859700838347943348434771838559568279396784840745544365192706149107317097102538823790462646866584420574993099112065144267685628291854366779974809264518599612505916250108306103472722256149794325010923191097101492319271310787780837517953918062682425982684299184439245848628487152296696221630380597937543393602556092089753223742960936320457150177173019962441348988193744113954957357193604817200704950232001591925874139621489339015373545560966957917799857915772126995367299200013477051913380795152478273658796558464548374145536730962755988007244421582440409894349792852146952196971997139044573024506607449712570988757934468522281437604476148990123149610576406258390684148880836371818111925820076743643974988416192728817743080689279492438697620204925352965282348036895443454331188794013588786466833595284616438567506573409938423712623920316655022885394663224056144743239124343542714272879180676847361572621870111302605333778506457853377525560150125603471549586183283011751537890828656706083531266707708952066668654310791362959614175246222104803279098415169042014869571299805959133564272751113382819442952139225634902681993537614078595905124185178201108749597939707304114300014977344102533023017511147919015783703564476640227058054493915262290729827031078302829401086063499482019480532229526629468101627162974332836487850784793658664184531988140356468833413073443956525086184726548397925187448450095374250700257428764781077378877254164573205782978519281411185043997749074026506446287962784207686489300727475564024710971120642567849555859012075516228765774722534353800825467087005885430837553304262295607644386121121708887348173661597630111189511477984366652472083044510724861746516296892693014243973587933335302667023090951273324569612928030327780687083352378954039226027659070991992878352860147066046796085171228195827351946736317621043296236680930267735990429171554504941977354123739205924511123592982235127997712169621857892526092690912085944440730647333248471075903230383813457569367610395861456188750655349662907007057589404517871192443947856643021545066234514910051670608532637004511533285781373436672261840259924962203688646115873624721453660282478768874080078120184648990014204653577434859773029322395072142114186103721673913743678255284561951020995332905680203373345916859789061786973044117087526178336597304597215199285308294951156674607971061693416272900570135725388919487936037255932353190257140189940460641840394189363347553652416986365673205285555451726573701503733995230645997398172749927369363045163932831408422676051127500774299673184253471158668589465116026186166893552305353507528096660234505225105189016097764697745478769365954554797674915589860628485673732385306375560364624285110180578629132885030520301518015474531576093584569094612080073633367715227225968967295258153184820700280841250657489827791612536702654462088086807299894041562554993465984942950739954427221785394312420637924420494601861526137056346689300303071019914880206839102573010330945428833928634466884603965278864813860294610666423733435043841897801614340270637255719412262582939670503017967075256935353484776974947331358404976075673800239053068747845118610196948667239245195918483602783519004861838092598315788437969196529702091031159510034931017154886094254259936905356016006079764291098111808378620159634664822201531888368672407579250238505442719117167742145723291436572436978365635024758344171269327475946437241555342096008749657406154135206521333329132100877016660383681232942972626697084639440800533450180166869059908805650299646497875848656523119120344891667819194007569187310685488217853321013071744087828637167758541234841069050343261900253136109434080729088769789536377985693609309340815367911316313686312256489513449921403612819508188268717023619542125575485361951862707964702830367510709000352954322777314965109472595704150478554371273516643813205256397972521683898036593137995571303477022249017320671343977985589629779220568461016527751193504330300392809923685645233325278522081066121671313244714642096956249020603806701598411211736777575599450467843188770225077407084882803622173815185763086588419357489815193839144939074247315001934038109890899730112349821595259160896445485223431778479974518194902941877385602018334483270153706133042583790797219393731572257898894588176988291981014868377239546148675077601591244594967040265637355912916181421908431229941402114724509148740464978300636471124993553910192020960735100918802840157852697640592123929020620337557450239929522859195685512306155607556593858623335311650544539072583142381384582981189374145623827660045530861364949959482828327346810113600569337321429163330322867753403831433665894042039132941970297496544733263878173949269298375033471611746998810386532901664662769024534833781469920462553610241953051302946111560866219764670241383023443927317983359078018995262734353335528455010722002726785801587795862988622916201708081517658785181090075399290530000030629960362129936521339448366419554360632491430251261430709965867308139423985965663980167723752861709085682126856657272858108350420901603405144723117780774508408656727775881602052584866825087839560916255706349637333950026990150436602204642491567043838180188043807950520397751339119483047043341928508243772219050968029429471613208618340851465367214446664702765933021523361290515748052976555242300348502324690741117191576529109849528121098881709215791929641626507152489870527482301033339256076110385739415308120344696901922195866019098743737879808454507470075154852031000747892301374075152900929999653479438131034247999857536920869709518173867407420121694116127358508900544412994879927990819120464759716467248733859288439943162597165732488160645644744623111298074164569900964556612473133822311266371035978335141575449418045717671470285130472697374613025013779544142936934379048812830531255194732261031477468153670253120391025195165284698891767778592361909613431433715258255552773655772258404844657371655283795898751059504350003636548347528488125398543915649028948099801997036603029958011465330917328098725773059510436968598224468298027942243956429520399827185103728845535380083912321633119271217483900721476895813151402626287663183558351523609358213396723387923436231087267483992916055748803687658612769837521455884939220547317152433154142033967469006010238203465663817981517800063951575063224103663233025219735104122697519707045820134817049010942930522630743060162081827062072806753701853935152291049908037594165016163505788426615140942214682687209533511165433944121130273908985779400201436590988543786839444168436684381592361332320468425967407803552799732268905006797197021613385977880932442762300072987265170321720255541131273412471178372183590714183065962917539704064285876354165973367866646657593133249382915095646703643224388930098718833441455265780637279943463220353226675120790444430448411286155552929183800202815686853206297487754188294499779871073932152770065457079768185215260343770484164297245012176900143931660609689054746295487394994249017334404536445915955449317856693137780836610351724317829651013857502539486436265375310012295835804392393592797300015551780341548837029384181838424880838595888472510115410377057706633347612553051493115265324617495242190294742012823668582497637803833391582366325759052639987032414347872557665841816565296994005639750585060668931768140496926359195837999509128927219811158434311022356153924734345467529473725487306028962134629568932961217940149383448685462408972214631537723891661988313855839277900327875987951898573193218499849697706842686758986938226502649076907166113132420215492975500659412698982812131972670814592734222605741442324540961394820108683720022883413477762927089405631894924310821336917351493762873799602082373164576816741652186660454343838933306472130960327179327328590041446856882352929285551237472545466182984629116007305684434416030459246977796248043530649008387395432279099060950406905007988769039535639757032536290582954223832446288599862600997580693632516695072501740588483105979424822662796169418755787283890362431251751946908081881875679921966178709903710241134817534218965668702564638465151766762558749043209191543999958091854650529109018003264335309085114389751126117273302394806368273496592318205704500803284985500945200023408527200810510410857358757593285681352911068219129955576208505331555686448300158208123338063675214899382793191741957360452307820980471710165653775141328171976705735955787372714347459938683978807918467161035537657318680255595900900591276061155025804754733742626548802904418230615767645137338975642727411506302971158064605188842161575875743607964292056184397503415814203401660373349884059972394728879155982339297226338955129730254265761722147181969836133167341511968530839519528981677321819835564464726360996480197545079755871329434316309657467488340349809200881138602975480677468935350695926929268292827758201350004502623071217029843459839415466595586577217091879711042028017195232820427319555820576420585450866667504224085920887164437811616310772415229081590827251614292931442382164790680358302125204315809486224824405007263852640883932149195570945030501163738659630791840837817600582830689172442157521484089334981700774251293500015938952426069605500166664128263415836175564987137246443147536368968520654706425704241501062752949780638358321487014462795719123597043487280584114237917013480062440609185140111597652169730838210062370730569040953464961639665201376262395037488715860297976693474363568056454540779378300103491522678474255639795263588121356712986563669396461965510319751529784739529348132974905885200157309715262761004071893037332535597338524029481653754129009658927982808775079680330658715125879963431353721734893200501229564748203933903009520688700940971401519595618668280265636482278231652667314036745289001147455836237792773048247311421840065947665216419477300634388530528705788332829729836319735315812700232827982046018089790632604486106459393975851201485218860583233747666356569123536434219159375282861780307650492185742351923113798138808395081032025184083106619253070847428730688542446377804236018841013858813249132299131113596664026260298848295098129514351005917805308302690574053244701374845069222242332162217726066308787075155873148058558698524529243094504346657757761123790354640859400381279202268015261396545575568967072642427824791752898710914205483847048353381280443822550297274261059633003898992302606955339948958541656068622974772585114945314082305213470524085179487642213334763555589359300134209063312265738092450200244994652181191825912834857663048267738645075219792684347512312319504617598729796012301716280141875736652218111415775476609718451106387796057155426672443396595240702329436361120452712215205942516125847237746170895816955374309233930116571912443741937911100967534748700617452449833114127130175077079225133348438371125167542610297172199727649886314891024598691638803460619946674680469262563409430728420811862550857529226253187601369247467643858750293811750337634450592604688725256969849834473241566258220008544836588100914600908969751217437156593671641466956418648842988435358011314916281137352035133077529616382142439004739379335024062302400648292222787839821042891557915389899108599277689184762808261698516534644389222542356022305058625196109506406416839428607216326654264645329862241838994860779459053938607765935336209839616270066631361941117500000221840632267067471406172394977678940937637901950033533641120055312213070573989539572638031423981344635809008439659614769981106276354011758648456291164898741891296712704225545190331781781505412100228658878077323292959440307475415372022907586217594028755593886920018724572710769105688134138654591121430313057513734930851151179934213246462376725372126167455395362085265398460300954497961662973408255911581434439554049393280249962300233507288775730377612373172248345970488174574359424253663260919636286386506303744475638790415682100749727337686298609673096548648013543518263464122503642857630647581828285645469659873999647732418661279421687042363234607337560131289132608039146146896947736847474248996209185263204536383841368360840193218432714103213352594260394203516480573764495274329664980127633691508228253340194974735935336017910304783633840820525282510965190411104081441410301950881737087925264845211454395769376990312808132805446762411239626623690988727415190310112280850018331242623923302604218832975196756429347175072083271084752835776656969897847129982132411079823383525564051150892109975670921487807631811121757104272627663821880730534355175421409707202963885793952414488459777059004491886711798711258333417071243004310407185536938166316000083488800102529189350311683933795659048939059105170678871386338558722791524810105745339964481319258177144854532027025314359756798917530314107538891527208575687772980064326153058424235490159832837172142449962588554899104271932456996081318218198182748347142004224466430168169292040403309701953660983495135522665753983746108418008434743756853220406054770465894445526580498813460206469099626058933684827097826753906007504955007643950990724142150431321225907202973693943718763160871310034245352711347044450290387889709845763245291270337562402041172067218728756682696412947249790789456795568998200108720224326504001175858690296488111986857123868460399310383850448971417791620056328243884793457190444594296715425084094238883905814722820919100130271109588219793209071654297607727875914344592106502716425927518328417361189523951439662829876955058942636529139091301453629272438109117931999798297392219984922875663790132402343424542302810563362718918818229068341888767918197583804745386988877646937013304540838412742088020322042518992548352280844783977478286742801768596397548584145077297971577470004374783209418594055222317092960744953715003484737411269225728587803660423794532823365439410546433624968707754663822824754117887531658968984193533488089174217732131646528558318510574737573990800002460198841570232923148632410664851065002427539942868112892968786743275814362640097931084205794730697084813450107786269947107886074351537557274701281683175039515310634454549327553729232540152193089445604852892342482113077040985005773964722843306995787811700769977133804231573956761365253076872982294657099972380626528435817235216752261623282284056093052753858561298504283336025436048312009542232419878722338421722210486343454218380728147945070841572340276279474918543978746727293242528341459759756884601386986182884022720397067558191237170764603178784037766728603430456430089219801744700080996869949459928826665649645743482056223996468250202905530348877392563166646669695532601448355157935972215629804347381546332196942776104131366177764606544784777533591875310181258754999709381466721302211187098442495887311167494578253522464517169085189809818807101601966494689445790805142275398354055653536919516342665649490111419013620472670177011556133142757988853079893216355300964870524189501823599056206947028664178774100179962963139587871425423966594155327270716152982629639671863465231409581058691346768659753483858175307837840269017915747810495808850632588042600464011365909595781983371976197760984509778062476481371639605314597951072463248386652795873070848059791831345225457850003191000886759847858829306624833458006928481133604475842368075794409929028458475285702724142101537925451575546348663722834596321192455831329747928534754972725539862397841741005314984581352382145397785771007803391466264413813764166205049286731885924968690940697350092299857518630511382682548751132539215873296810217153955666053747121176571950952280195355757101626502462644280618977770930792176846343525800102850340993295256112700914150416414351477453637454326441907517444080977869340282192677061828742892047839840501555975337870403649250464386990017347291025058833221079097622931202578894947683813418176548264722950729424297745599349755357778899714054935116514202209121250193132706624082183357467366709819136032254613932970500713356555422921815905853654761134607205128025172496035180022667589649696273907144037230599390390699202029711243507647760340953370649650037092881590475954774722330163788338465440285093626987892547620152836407333287439590578535280569922024280348519400873003674225599887339916013102974451700720666242476632231246742447384366433587195381344913945898249981229786597818904706189265911651434652975028637690375483924110948012596313283564147837135020975422427889797402238596428489677875705050869548631415114724784045390338112636232273253749131555689839777788351244770372883775841583009581808651995192980156533175869789754382518132231800474449356172444751474585695140059185044148269762160195465039616617943684552624030704475876485823585548627980252574089496052597482755355439136592257064571549759456755119894145493180532491097796770038460081268055695823865724029750678037741566219723472664767757513862535620856582715091638544959008217140335409317389083171482907409476141781855001659848647666974086850054446975688729852536316940568064167609750729592611931783626539194648466546517295664649756103559490790566823192851592043106365136049208926482190487990400460397020334332730708331702632173073613787592057473815284608637933895189585992519094802632581243578747989668463409542486920144792617099052479203159994718278546809299357264294879514822623606667763222638892722710659393093874407070887855016871759767970404195371032638196180214142035090094953800612173346463414182696139886640074924873833993987106808340407139205554943855947055430537715385431344638323709749790995087674812992662687278438868701362215954902626489076289981464127384768356321074747267869945119321095612288041789564295463053557588990680972055281225861498699856143129586765263289655789157200642624489620020007455782913534838069248073739838594085210499620141276662982256929735337559277016762353421009111266497145137478914861556703735971510832529525737865592474149381818867260025733771776443278270938249899188712628178955143934773359273204781215951886101448518989595087728295579194970155389490522464767328710039561737046697162097456363978607897885319643551733886463219090385206376139035485589225258607629428057719827644141161538657200407783082920350111406076460721137263168800027398788001532829192068992244725419819464551504240930763846580774779029197605967358268481798288213299874516224497992602911126674598508013318957004983619637737563430794612919834578811141173572737709126531805381518699128413727586256420981153735026608805574197502292142370590211527170762033914628886511293176259170653805645456262740009857503498865466156862246157704726165372692674615572194732786919845754608490050512197412225774075896662749412822020780460402650346598447347022875284376601936035423953499226215334230747968339761287416273516799669860376191423622024584954043789697584614597757671841357611240237702390306223660111822459252317731628902026159899000947707824594253351668205061825918511246818868779031770232482751163510445188959347063547867872328583900603128845052101747855621203330752291214525418037760552790386513425958646685415803245166511023308115506528888817291985138901422954390974439479054725246543718823999222833159567704072103977887322042471453720400070703280653647943823045811239404501558494246131274884817719063402188812173342225203569736058288181131655219399326435447971305629991501862493607960249704690518865250764305681517594390905026268568834964956297135114917905109460895950123338027903042223893566020140665985326645964895030686519976137085454152502582947388513542231133597304369930566678863373291906639836050285176900190027847393026808817320505594030394613683420925474920468062213045511797802346261512930855057646622006604998290124903279932442902125954296705925373888519321412447291215073042518012073714246905966228289953187951274560993212968308148024895965720393932567677352289552898397158854272840574185861259303633442198534496174964477175889583106185433102196878800160972936892157788490351845209247630754223036659692390248431634645549211227796922217029965977419992124007804263863646637069531037650230858990724552562134808104900113982817445922048135550257329261162343408504160860448655545310489592786840681877715603680574276664588351194841050941502562833416183647082495133650826264546496957497706074198792456175259266665502874364359886082065897524401470475716359045625698662924572601932508985305823855595223871415657808550034332073238934393900561497582237125609548656441689855632961499937825750857072581691419732698532112739413724091700667539851882879134111607978679636247371596897050353077394824731670314042889820615630815052372269983117474114795326038456005461245944820492497388495051061229245496781468781865316248366753434119470960213032638724004190867410926067463748709307031131388688496580121964866772160614767365879662071933931467785557307866133205144855251138745297536643993210809465093679686922758235409936720264656995410645270333996901572616301714622433544978776798661233944742579574544758120791116380529934621440627620689810840091056276730624952414863840395857059776957520949618240395930659021181650241104353605075113660826291321814379266421530729283246316033218623586428233861337643140085927318230908294268120687256303411554339409616721518062198686126957860862556114905294061793213572206829314725331430018719204210536764163736264787168319330850390641465288390994727986224772253398115875625372479570672198554946933141366062416120484280404728015774238965201586741878655454299111474584456399232215563170250259330811814464294382147489847071343880073541522349038407470732222160577030210996024444156471148027413675163631046777821875980398002078550951340215397221707113426795355695719990743185982401269867826630266218980685893807145341616992679492357834212604642641648080075774617523346431623526826348368900215340539710351943118087296895767940253680553352307523421403388017225170584932236062822339520560820624287779810549171978124133024949924200927535415712909958418235703230738145133656375308228018421678057369504526706607035935964140203167715636968539150142254302413487714684269303475209476264321153755368524832695769086437072761440555186873376202296742080137577733680384405782151944174427433092421247011585571893369005426239104282312649040584344706834295523087097809587527952084207653343299548140772700467522732068998299393575338866630191753881297971583340907859505229034904031973157417122577991208659747568202816712412441788883717228397929192927879802886798126816756345510258229530659935767510350204489608234021288831841669264206217467180199052846651154402633294018331496320677431810551527015070811758091928099283087910024801916800765567865768228858039071947648110632008080771151453124586319410959553614514948424503686177119989362091904886241689931516821128204038330582702884063486451062121571406685462292793464986580929275911235585609047549866076525833442609199878848054128819967635262357495175798010704989539111260700736416115596189688120647435445116192560580247236026706762705449632066235948531976561547847543341882761816196775962623503521156746136307630945759752346041709303646957082054742376291212907097061719064478023530792815563959180050677461886747364232883460954480594024833221439624199130702153642608985375455127852981227878265280385293335687434224040840457969401308088466529596115207634209283696952522816487513684969534533504251087498644663840152929268976432859695207177806812727592396384060431831128983788897989889780361725217790232991841487264979843715232930315992089948444969026772919320058604881120945673682934924890920959805332372742103691116521891808051646125261081120932064920016666092993218256932584617006744561455949298483909371093008596420825469833143749310050521613537011143130444792635325526930650099108206769103670074574675838456744241427212859003808537515714449765748609194510621393401220397623800727809350300994673554261482763880827381608236057520376255015495870252030404368545308162681760865140738163894414993177414321967633866004187894777479516734007739699726849151247782634639515995422119163046823822221960095123775724282327656724024284867152898080501876795566796241175285029444220049264495228785697536784132018000264545832180610872081636381366830000069690426547080016917466481280373362402002339647637361183857313064343425357870208850640282443616053096091576578783016295556068773289794036333315581469940167406092762008168937884557722370757393506055556834473474571436546451477509802029858800678040539845332092234749498044598433216907891438513698406931164060542313558666652886764739468759555114640709867706215988053034258096015925019197041172501543281940568565552293717477508379616218493131295679928365934892699421317140902466101788368600750226893385426786088581800132681757263366837444043795921684950497422482912430768466787090381318075070090085540002442563997788638810128896229448484530616082180419711786540570055027629779255021510334464499330297050948625423398717583376207836471977247486965784466890850430442110792189306786372961509172198219684005059858832648577557337732363378995887747708319514376417132803172216539625562502893311973150327278493019445017887492443796241918236261458608930693169011565923677996153421945416738555658962292621283806772807676538574252816667260488561927649157774036165355979207105233842313381711544666914285142528465099942001636357844135413722118813548298350796478541517659904673309913278328403863878869072190226402096779800232335290657136959821140169764607896132940282713626008280253480673724450555070494724775740969512260085931732680932067025459254026815539607890098036150177377064432121532893029008192776120325479092853040403135082099881716464170357132132003520428761128366202499722837874227643545077430737033621348671141933888913741165045425111109105069708427718322719412323474626573430375746206948768166581495016901841419776826596536068524615174325532804544139562123070719426374407159516432674495683540006081264240769328171220024212161524647926185877093108882560212742620807847821393798162998458351300204751865448349666149839163435402860734902880782287706916226729243760641646423123866228595456532878933720041760604821959411645455760432122130198193464324538829949586641603921176250240488982377405339336692811804342957058501478639292461033032134490686927049102141357454906648561271328101113023218563449019045056747669754880812015738224284997105273017670745813453152875966092417998528978724525097331931566940977451021754553703968957515714245094204544788088168207826421495652874517289925932867340742718631214709076537169724198227414063201303862050881118055970028918674113088503206709285715205817027250524425082853965033517114867326958328080560196280458482008873627766923127474053656374370682394349040300286470893160213097068416258692190237076689692453732486787593810331630738692031013494073072326483630476901322045334763274097097745910647559444125505843611049597113902057058856732127004911090118257664295673375526320687262533298494581153824241748788803426062921661427185615857781384534232012790759490354975432606938462451026098663715461447672204341693065478865889229057324081976164347430724299447006723575024936416049007717933714253003913604584154389958701978378091691859106344775956528085344227318679246040786601210140098495339755993979811392797281656804403662349543905248027264531613542908005256022796744764856838345425696955525222915067926953667460468749228622711573227122550003975135327521464349875887081261726167230717151741514263790966207498344565430047263793567703266208652418294643741990520372340252696921428526695925719534163679596526214243118596293323723690261911665602076777984995456172891900896876169970766940654938591712063167446049092580766173378376542637851978442796797667089265352133386524709467033555091000927673581227469950618095740733229855570393119301828063625044682863004321164543817664388685039417840156872790985051836411575425535540933697975107432455378733932612096928088350200100580316175098545027717123648367250334554126722622625894778663882745062742221875462377951354346680282279463605713605230565214723165908510105387622635114449956765312469196226517727521973383500649464226804200542896934712284492472705133136440383628214260064112900874630660841048299790545163888145768815850956402444265177547959177230660432159359351971122127561974946874917314680277052902287232487512529013705293132378406480835635228923603956335894863095621857691042257542315918465698770215176312813786210982147612220549743709080627035057601305966682404017160297109806620461033384259016617115201781403412152089096924976694207916583024960209815217405524611721691241586401776844945702606573451358377769686790005229528600776815226695972483172938192686198162101010796742024310996017658616918219358698205362181756318079547292936805429669864463419863813054630896677607005012825369325412730735094216901430976301344044487999354751173044767105330917067052755512475355193535533155874451613127868071873129313191074365122193796402526984425156579768313759674460265519977330008351689336731692718435523160819412498503628950114695619175450781772935013936528506936046497830182766860125810396720196462669593866867032915061910133965914575645475315385929332492600260550817053893341004262915820919479406072504018726690589308598330722201392661176159861819009288672833432578250074452283107549115631709269922352770486783038803283835880668212175427981660272180897364587806703780149369936572585086415955171093113720441969097842961081809771863000913059564958374339157154759888842641483411139810078705478182695632373255712418110047591227760903369868683136713962862105969533984158088543776018858258661864718304175206147538693690348163707002432543733646822917537597185465645176810222684217419129512007246725164026336273277702566305851346290871358724927412490949176790791483966553711204001715588449366549683842927886940153645472495401847663370922168908581600784341700519668069307287001769683292312049840938376801093528264756622858584626806748582261524633789317000056387653121053472756102949866857553543075343102184825865247206258842321252736542690952980194734739021830081398757577107705823727013095596986244033836513124640348747923484264528459828645774753662570284598476110148394697159398794803177139056026229990974890357011530267054880314366859013456309690066693771061567485093787487384579431183962028507729668056360436100098257335901497733694712789745909072837133044294920160353280270497567441892945663459417428842603822709499086976870844926192219572395435088453890030037994401188481563992352032815994838597825906212720921517029493577007834723069997722801331301493597889979810154388727493201044862388061275141902336563583484570818534314640541845542754922127004004797530278999325985798502133823929695701905107353991445100535770870337673520132338074771983617038038158247338183044720680099508192075863415570440628597244919175023161696605303035704001307307724611965880803188267892809442930968868301758369875046093852363016114247744343262091852363078584738669963393321679147398857233482330133786588304886753079406501925979638945194489755509584413190628069054017442847089778605785179077957452756011750614975854881153477542734280371725467117327015641603478054862555487122087441833359877330157381938403037928357622784724247539011425648167695019435213747176475789822083923450218819533915405600569964783606017603880736923113962516149347931758287486226678365519668379478572851718458487430857380791243127627350611610664659316314578006255750967817977136878400409329002993440170924167090525318457721585957399806734332074899384681724518368380069445608526621549735716318553478682740626239601053376073272887881954569602667901819679114913691995588927914077816537794931088162836028948039345332991826204483470850347017247263498623376073925350018067098200955813898698153262724919396494704811508634866435335703796714005208400464160981695322072213979808833891784871155640083963777480731701206160577627146686576310453980348392306087134719761645157478175076130698762047308754371514134543580139272038502687899400249571467171945549833879000649295024883756392717626261302956239383537460387273167876885311472498759018175555592672670986774314275165528043049593516247780179623371180348684398324310523020410535089741091855105479601043383202001664098559992669612912686113560231079286020050393447251689745480796271146085502552610953073231663591107527944132731200840549845690286347711655040453529027776744672231760945440971569394679250255465746083188961361485486184620396749074611997690936963769865748956489608443806684603885246565744073360148314112125296323358226324962456653823656759310646634665874940799986031759200472249534548303325335362790157719706826870247013245277915016583345490891689210903164426312191917429546625645819179963346750625136432354255982805487379392638884995252679825825312997646449568366289732950767441960648815405998922637643365390091436208935692582653578795302770014071874998641348279432659775476716948130587184067755582782576597409810108481832765501244924991741084782193317335897166584013903803712243797098226798808988274969711994156399576013572734601630247708076632326661958441385640485390126567109641605946843092744781565154495908484464048910552361918966213013582202726700698548311824841688140936610174356401629258961816073829139501066651438606289173521153018769921274670067634590468590594291551677581073571448568268984683503284183647005875476346571997541243007571139609666779182378716695946016846455710664058350506247499294604222425539915093774418918927247738600311989085906172626619617418358384615059722157967169065515360794087138264501345380001928631828349802471628306856797239366892003422565094134472179792065091488214250748057584459845749616299524639853464632538165388942927617986745276551706684021186729236383175175073283711485823612906674051547927068844156084048035884088818045224967479293747260747835412596152370205901583160375010983127967110261196684201146526225257391601786520514365398502468914344211011035406081468056575071401640009001149288136142049632932329055385683609960767467061483274097763879630355628076986123305612974688237435970493702230286662730408129349313764933134147969273648908517299576650882112724186204363441297054313470459113605403718943381009656961389228906438481617125901160219055600857873217933656598658627834666402835698911741615477091144928609667502083746058278960514046615443561491244278689667517999180461601733153496215344466106794607417400408190427260912080003694974877724374129772267924011246095220075380391185391820636448991661943308007171913582546345751608388221682338059525116177494045712497035545605706173280439385244616959743995968498343340913272679804278211870418766645741487809151338322916593288467803891842967118207819793839706381994673444353271019684144891839326458646278555413064356713936601744184537040772486865190660670106090489541615911205249332641469410126039149168440567628955635985928895271505553224990960791806790328242174489522006915239146083899616344837520743679202175897461901149805187438302841126504727632568334749657322744760285063167175577592043233227964699696840590376175313295583825969949126393041771306296098465693499007156634551288706663896732686306743236197866223931314331205132865949033196312795020213367903929565357021185879914673987927001299811946498093860918048660576944069342900921105029089087341994231763897193810641526758081180143705807967833436116481331141539305113233966507458252949811526872290027164061068192204099969824142639012092814186378214071003151071606758201265364753745485259117308589652243752972390034943214206990406197519229587665612409885189391529458918839211086756242583503664060993416290969380433668113267764939635568948885632685719141367906765428682596275972262349523551620092841536922833309373578082425332792338260365766508564470464154119134538619845718626267983782981703782926611194079911769864939911069558016139736098294023430121167102515285198910182865167228018285376953478259752149901939016686654500789826314819421866363080041079071979874406240006900136618259997716702179381491897769485449627167808200875982802447336811541636607798936917625324654366366928373988407980990955344155109759687787233985575093432413587295790840296829619502075651724131409141606193101526123585455128983876636208148427807224265460988835069952790843614712501328698375984621203113701017872440698228946004558393426607383208843193688757402104906574289433085891259930600236915105897338531285570293124552035549702448766778523623106711296988318206551062518158786171082389457152031294480224131019134592071603445215577040752058609870160649612910480654310015124821976039948342409438144846793125967816509235980451624992543679231592645243656915421168847347292161229694004079493460827594605227106100408538664148990330853144615741792677771462523384822699729404606532255459057597983333484498329079308035335987841243268461267706693180192802162585692944015804973833187869082087477812649824546782267008530826902182924140829570692794259470453331377795199364324220638824123415304315821208108509969503439095654644020974273379574743203648023383914787519790194390653284169415526734818271369822062045235712515256618469800648382849832192099030662328470052401957296517032595461177682369240122654629723818249951989656390986692364574111112100546969122098252624327684086777309507256163805827274193536613494935001999221762811725178209256499957023880122645892691045638154120567552415319136141188236547155826882576276348774555341807677257691701768418481220384712640536149341365209916058619472864478763395799415748994044473449084646693468625093518607992916026974705373756590394025800534419073537720839865604346846955127843009195003610840845263718809192611494418371331097068257381273353103436244000301067551457400820382450384155429800160204915503837662996100501515176546557050042304937496414218759423499227648346376673871469167199934159452235061599274681786051868574805801738569115054816838902697027131533248350911612534212370572295120344944496295623130313254767085022606241348255795902428742803339191195866115913964276557521593313301425397860742509473739353039112587521192580678841771317804624523528737574297413154610498037472579100851633593845329749187800082034445877854896041614788056758804156570187384385639313277661858304964005178500725316009489162030888625960635581283662330883224215972907241797599399564582969033361623549532900516980526063667014196984977210385461558369229173007944563145378187294897316187775546917452593807676573949717218944162971874710070761250700063988387774255259987814088846065621442427797674552237558824149302417942831029095736817338243428908767201590013671617425692897666538371011698219698120091551399443176081439605886059048472836194884698236458478733193984596574870525604126646707063090346819181191748103190041635636770428213063507334086929751129644722152067431515809169212016510039127254549169042166555013460353570508267930402252640408822810682268763703037266727810087623121866669323930783055050315905588648632939827858928409601566466877882821710702539839966647662373951119108273982535401648924315985939413114803170027473091509112644936362763059280172026340191093950828330158749953184779136002433589206541520285820575502801432407469459172205679947475738504520115494609713667364169751094994293313235096121395092066721229973843668552170781367300832840365825605061460621003590416981469936949790158909191373763385865993008389467234864831493943017218770492965560477106305150025389182293595928790282549401586789676647762660473302728830374200901660305956763029124921577430338032974754000278622080110871194534264232595056113804310799865311663683426926791430767617217837104455575699077275346663898264066534154678839918887013811111637180368295796056689209601417532512304171184176026991269456379036938992430161291525749056640424761600181751353907379907598486837533866727829643582401919576136489056239476134061318054031961589583107047228052851147088802489292253031051322907402741416225864233497832714489764761126067813185114494063255302483657068959880072675104414394540310701994707769823586439522442094411907178250519274517960710923993010510421056593758276984196497909296840519032049606737905216470264773484931147963550844954177559578046419825858672894108677493634424915515963477430212027467961285572005645243780039192986522157250258573038204425961751503754209352139533135407649490935564630892723724741900365187375444689137718581636680544948992764998969680651071983558564961759884036387017528618432669704870053922965330627761078595616445641249184747769754507471481817064099805194961613663759715463999343886608652264729982183543870756280711204923415615839701410782121909755245912609794298893245620639984783944814796878880536854605871836140321113944510946700950450211499105479251912515521512744128608314672056025601811607301746341885250843086526068257675667224188478918014829716145979257609621869427338308049148391453736789079711804510925058930133855543008071200106056801557621547573095595215996540760919634455898713797995677402784718847608200198123607463116168587475695525503616816673000960632647281383694925548586665659007514831026361317226073384915971542821424856850542155518705581232488261702790381423940057987253088351485358809034546748645525471835587182275235955209721918842383010809180654446943928667562103859172166717973281581239498687243226932177937590612968383098045027546821980170529879076678713962136026088101455433582541185575972919843421273730723894068888486712748885668253951576119368840353453251661134776684576951007337817500014544130400366088486189834022723376902250740248544785130320061873172290356086982663597950616038231795087108557480490233324955301604735998625121882357829690559253450747549465510889939498021209387343778724742625939230658508518303127076705092256221889532600819135560809484254806723646250800635828520750720272819573529494110452571469542562128627101941506813662397602886506314757018233332578887401706401376077396139858069518534700148585109908469239725333903978501639431895615858474917546691762469529056996720914249440482069515576805251520463284814043867588016183181382788947327662164894640017094692268588195981828029834653092405168335295087541914198696030506283041511989059193129710933018263675486114544507735574199449438505844510999269193923620204161688036441871034335818747453940434860142339821231745009588194393813517450382199267805978797934645568472066777044393127123388238861652961419685601222427997240070746095822531445200331657251617291548135571436002243773092299811813742211923631152412241641620169816347268337955959217747852178709421660208360618235599031629347133149454752290600260117579952282620229232741220771837537202564448170137630657774305507175612361530198914957239887167483234387534966313729732628510457641444332462807117645455343493643201703358151005989703601807884126758313712590203571164458198961260442362805011584053578238693289249808671812128684956271004009957321239333448700465133027633173940060668449614565955265743750019672646057267360288697622682660022862610646643163562729522577430200998739904242217116700635488479506207937989360428542215741947608034128698200404062885639148061430437246384653514072236290906569845258654106070026217441045294274075707146299415299299102698656870414477245570511145708298334915712733105328438683615127863112804663384732249211706709388873327678005773691154435516584447103574804409362935701072806712693573897343716542644606291465455896150974107909051160188699946758349608806092738680202342999136459607063711127166459521034358167416448182436201275124099464121991015053043917238515331680461326681834223912604527766307299521754616473239534091456743030463322739288844442420096095625837130790405594679105712371982854677646943737517144212904700216135803104484909532525874534783557147061080934165595872239171491246831963342512254463883706433823508500985834723333324948738805675588322532710340832550419431610831674504000014497948064213935070085386455852846309572704893252977277165119308150954283108363792074384383875913765625957162735601983705040614476026504968358027359660307494113116860648830782776389641682518617230176400483670759205904595848814445772714590240021567669271487970726451588195476647136306293654356897299004736235252130574022793447847232829882091188815747869769607438219361837139613951462883660628781630739220311828782090060350218160052571361698354734651468503748300407697331942141830690755981504914241245050191501819285196359185616349516353453003663141505746232477365674722797106580884075378154533303358358795986065632862377034922985307503735668588911710956913596676628565149849052599085320238042477971129382632316027046579442968658369434671749334311390664699267705387653326894355242838755425707668372877550339185973649444538293739349300907934435907971534488004083081567402881531693317529064943179653159737385559903135126490074791180816036095715101479881501581779706885247703150946856750503198003222947503217038860615546254032227139700668933586849313911379699591740673509805965754917037446993146977417007100609688215222472078076003598834098902943629438677747512865196537436029723380251754301148501478402320701710459188748286575989334215050602033114561006869488888874594652080372289450979118567898640511108171414167334634879766024995510166257818761839249404767242594588318430189811884221274772747028307491622838632352979339880849177655026807158882835907987661451353299736981311330217034833148048024571475502557806291599329771982085637114822959703367503184262022368881477220340178850053553428694407868529534719011227402921968236837208001065971851480355180566590759679758934055634832114864914044843282232211473228142745880443096704290621287788741705164905004862636425402489596774593827276562517360003184870302787261462220009024222703226704691438534446062025201995930690035944244991872240252789051258928937334789719374450670832571889718904563182697923370737272038063536394595408155737824140847491627472340853383655622268583760900227638483077127500343347120649666100743894057998742261534750689191678738219612735683358830728169115309711480373837852604763503225126625913789596530273274584263192695916036329678750602389066076277703943336713536914398467079566295153287025284375758517885639744233071480748900939778485390400207104930970726691760363476706657849640889354152703322540136248415913239922054670943418567869477147487578957306321065803554731162692378181539375329494002459132679318931636180678732483304789437113473006750183280916679364339388154872013536697564440341467757275199699446808157091378894387030646872711895409776887933802050137104102699110795227124188368046466112446585935747922297576907506585130336892888362048924152833412811205407126822125527874337899960513544101363424864455486582281199319941746866295793419380848231393579207616179392172644243905331286581790397513836447311720524305849729533731276728171368561283092540585974286453279556106442850620966552742335295466255009182169783506728621202397649444840357714391398389867651719813707990132630596759597138768267827609866990538518963978500545397679164671413693710618652267245966389956790644787377310680095195289635615217423413508670538706751469674191083850786790447702467576926122527858897989240675916836159006436510864354117709135241156571365196062599241296769580371902065496199324984770876579501429726295212683291342242592424503719779854423542869628683419692406947148644885675134466623313788552054242213070615689827752299431473272072735159082806457777943175431530932709437007287018462979240887841116952768376989888413518742044856609152091937331931394096492644967493411352319314598307604305478088913936271592730031695694448370603372565588184839727806198228714906475332206809936873603701638952408996771111845191846368517983300831756552192080699938352399400396415936670628519684234692710336695043791439785278588086415085645173395894560497607830475026487709041081568046954672023520254593576216319219484899120380892463058468960260859041039874262518797945588349384705619758426424714173633224141823524857702337743069226240492634129813780680659839129924813663655330322845254309233250740824546854927475824536968473352427715850068295935537570088610218656128832943555991831003760532447446477162406287067217094900032606269296269485441755562945727467578388341896473335131472541110214994042950162618913495074029955347105135594331288610170998038541181514072737829065976891091833608302300211515102663204919890085520132450637885384844810379145489924691288114522652703584475727258406657891185239400222508091839353810835705415948420704443465064308721521555312408408260205067956471726576537401371293097532428159653661194957075963113491829844575131014975776948206089858453770854445662367091202766202093472626034381317105744817223014090973400740979088439451025682587103493056256952037247161191730071299179762585010993806162106113733281743383116310919661247144487039148109320140294108604220230894481534045897068550876767079423394689289990718224817901584964312324768983001111226122965504311436252101961293043683903039119784723375795950200877325417483978954356155536900206348568438112012658723162547231489921298767761546401811342261467854060609173562568963912611798687989399931976532769371521944368478724051395909891551395013951344890680118817060974403556825229099860522010854676860945882047459300400535172684531033961089419527683650201313895487552291564116090471446561456452107508096822114877246898845773138179920433060152613786914761061454482260934230383217297255226314855866700535800967416956751725936245002030684058657492447955153599328312997116551922763596828713493643878110788632006274220094334447444780016764589694031688908380279762287705553608980140703346687577393330861805785022999661878805186689321906553863416309739253648929994392332223187285118069938634503621323490479520994737701233004814265625584890161601983486809881810322409838963196576365143763070431325678889831499972074610529216317764342125843826951578511728668770275219674590998937303048296401336806614421955022737845512787669911846910534884202796628170302250797261018818384650877312702266719918069629934058677619758860549806245472181014740495102259903384409587303349927851013236439227610560635495339934559292358359348460957291472005512122346975448994543345543163113274196962360839491544974454345389972564289418503158295808506527477202468143962970594946719771260818121514293265005658984212639647595485123596393220517768925137719228178751508668298055332473962180326091106176860982272016849954062334474351195049265073579583061548344432558014566314283004561849738844331620436342498500811303148107898078404829874332941185138672163625584105365899414776567682189893269105501490317546611174025280483473177549019269476728653225732273448800455352231401791943831491476086946935443216070888002475196646416041515159816245054658093711513923219465984420785105776371021413999965326334982997470853625672084331577789437687938014309477112025926895670805275600247629829381502942690940020406810486466653927214085440008561873939452450448880606370038222747133941353171613746208686181752065580069561021032624287932528672112061049797397232780789004016751861723392369703700474248731485393775653930824142701551754300089287999557768156265674797004441881967606871946068506674738610878508895265477384040795499376667499024238100879436374008063920541784788957366058848404582726098707239455879586165818399016170614594265188485113569277173501031979933118792103239904803053836275844734889882914764095858099776498527673151691005921799554825501050406176832965268683036335213802246867136464802816842334340734043714995879178289727776981855514538083628770977926850802877530490045592562768618010226357618948955546194116654747592356379812247687859654766069460712804260665101366937435022615712399985373232625176809867434080697942983608057092588036389081289619804683954159504686716717582050389443050592280453284314610056364953464016454109419479506287865105024250993936034982471256018784198766063477002729475560954958558925514511595208086806825340752792100670963521452284141526821825805950554674114153259351760187770851559795355283499349853236450812133686755629026907895140293850530137035107938536896662339223239302325652027797827626647521624453255609860375546559391983455966744977121788535807642090205576676225278007078777696276132014265426694619502918698200300582510618272651818382050792617041332235590876674430515287981898053854766801261369414904632506829927944158311165646475289367512757279603448017060368687029791631275886656301751226609159452272176122800960705303275747563599043495459619236762730363274676481339113290714766252124213933850986911737580937726807472650694222361487655883841064750842022990145325643125526297837399596717166327578507409585096556083249795258401053191415212683852928067945460544352373924964191666241946308645151969009919133503214156594214697015505696051715965886789395332082329066492050793412749893087668981110750177954859040319688578189258395671822765592180451107668032680340221424026733497523146572111258777423211764673992497498625494062686201517218186650685927112529798889911907581721891838134355723134956673037892359914268122428801830778125956291604134341482834307653666423352348600075233507461019729659074313856772111458010885218080879237430148596840567944319389706147173953787666245810543974876652659229480124928561098603123176459114880030043655789978608563244363010008173768350116574775901625993234328246196690496361398249362127554409988199717605313331250614650101992969282574300939013279773318969189190085511078216369402349639588123926564413259767570832573014880844921882205002632465169033304107948973282319202937654936974042173039656073519648047460695985098770983497425749950145245097472912166000469984156498216973309854864434020049929019605910105577778798052095045046270309981645028253947275758350863642560943673833871750141545479960818475383202036881721959429719083656066456604653834415277390641368099447985320391041214325473325656156294842964362024665678504378437318153359954028837858622741746655835638485789831786668549775493024493686043427795440692079213727267585412227266339635419343824575457520050948336749209670053833489473089928808063429075588671030169727600310977547145806720231892481756442839734672143869577055606694563520415704789549675336911560914914035662038391801866246677235793977003571849293293499931878413088361916749073959455759788343657187494564845115349478511029338861403886973635196468266943965829587888401735384025800648456263356846093772852924314107702211676137604397076719138083393003838528895717490517287907061961811092472025801227975034945092532457725472196408449398020404822736222253477749322610020735981949547355540495809823439392235481351430950906867560025897817369821122722902448249284235744108937825298989278879503983491035626595105375660724515410006606164125361190976802352469242349174439828060285793405816680494609970592390813341734522000570004737425673209404810296949137361744837673713339579897424796458911650103579229506766140773231118817828551046390199748829568080284134179210846835335710554954121840259770770771499659854577674342656141428389769667947599077585699946292269001011296173186298059940758975091096711521774139537431836102187440516702020982195065423574939017682829229246951450098479414393143999339769876216868259676481120412310051872132636985519506115423884865585332359467043900494702991954287718196963061056732111677536732120405308804337190427508165709966429514891452177000784736386461926077069006252906996920289571098828367215098229352649960125342616640220245339368088259888580553924649762324107996802455878196196678966171176495222727186080320079489659801297583904625518977276265297870549939012624775868940890079981219438518090690067505656445458195217418887509475754370042822171875290469014752765027331728804143764782280021965379745199092128964203988032553077923707823184473605002086061780493070312668699799368049756150541572121923383300561114521324774644146404399450223577863082696163204538699859197107831920460722572178555104784445280733052632268918608625130276744872461772137586716771096194520045741380739916613068656716301057065326640009523448380751894086881169602661193433616460765413012008433695213332111782751879168079936216913655404528124249156239320361745337031538620217728174637432296184350526962205016132814910864852098676827374815031255284252715404299289767274024079578470090153686515052100362395662594603281319308472333238696918555741323132335111142676568460876993662724668789916882075634013851665240435557330529285244368592152438232645675823277723316316121584083160154100255964387572870559429086145354217403105744292905201143738117053918764502549086858530653768255555962842820345149177173945471506925033220200550664502435763275646778852041466874189651655492322644653811385619279348630437300333484504338350458320666163473629946452355073151422481300423639974614351743572787400249315052851205399028496837981811512335809732287301732242283219682694223772377046172134481993380103628065305837891949349493868846508501354373370029306109704448864041665935000086549137335365296266799262923540599537646688866824106419819184547468569760070886760423280425251234903273112346115892863762283852623877582603247328587367456137782506711315617407466607334425560216087748400177333437973731946279369973217699573474357234059553378176634270514940539897600242105060910289908387424612946995681702093273201410795906660074975718072637702511343493383947161125042680586509432192060942946508400040748988686602839499124288404089344444779255282298153510824428317904289249618052582809049712082147084650990583229902937688393139553616707755601403280737803936330544532086091434278337220779758127370353643706700739114462070454576210332845779353872543184939583013322237389717940349673979367447723896461061402500492194708288004483463629331080781197737761189949178022631549950198493311232123776333641016451722531884663956285661432034013653154993570425786391347035468054692447481651858148212805231543694652890186966266005988778548036976946947313453613514456996499173627053278419835750238144033279338191117852739276380292443454995107344053910450758270308323678464695175336087522710180262957770220316354931029168383987570311983478789077696382784137720447968906333493108755946143751970304361552896628823224691621958802221762946324160846118232121517238134060963953358760841705233703773450008287721255448050309204358754437699520479384646071758026453886478208195064497108940926537915743419948602685923504809274700852957008598531736355762412911070623085461339454000171386754315977554815184952918702989849882346951361342602089571551070897371480111571500005501856643199476157667922665950595779626138907714102653590099872072626185900633249540763051150328677453827542559164173594782444622635774550550904713833225131656389264001333206819785173764941061109208289612189200792451334702174215496996448178046919255280321689176282680717429467037743695557491468525533734294307071297745651279981441665238529209004537201742414605721365942490630507931155174977217238539758087207320752213133416835460362631853980456874253989387719379152398621450268191938867271457177740413255195177736731846829134620790084686508054504443667313299852784474213579939955304368193582103555553228716502652569132464878329347246799753545065199221746434187916343857110104834659619717483007338207098762452164025285211840186982874256317460014011524404751278101587402604354053479237829395347842644549176123003831113146147318970307944761092302397274916055602287149299198149639218494439766814960889838217109951871494095341846574278433142696212536471621709650970569494893848061503640853138538133314048348154113346218011986470563782862236930535762145492178773518814847077535568572302558274462427919220604052314564711445123184944229432153892566051614696995972920311679827568755147186895869197054097654056780203589721861243355836053297909014676162788388786736877717618097405150329114578033223528307227958393166170504906308506282525190084327549295740565500781848189223795271475493113161345155985653868224835473344963243814113561023144152873025113969664208154996806310985500943697772657939486756041442356579515391899865829550279299370892413528459295448330759458127845867018664060451634450505181233035183339118251307726836867569475736372258150389704404691385325548109020721645256478106344767540585847138081705127761503017652053129478869002749224177524576003437607166734929604131191896038647942025994564854241235263266071939003909385618656095920737207260630658028321109958456164494054868370670560694958013379712756230126118295899104216038711820061661893459483173225400212988970176851177954783854475896996517776822259339660359056362798358508664174999581298590537886142714683230055901332568454195765809745823392793150711794741540388772104722367384209732723205113858021991045993536499455191083402071818071763210500626981020917811583001090183853302753694327722576917290181251831677358175221796743593111439254153162015230058202453157717704486914162197613984431204782888515614976921145089449504904020179204673915925943395029828011891452722247193073153376433781065346640315149596980724882542503993921896104502953756221533166911826352312129028160859667905157808500773404439634291321791512626605339823904035538999691024889866297239865155170467624525272802969792229454876087775410611819089373858670410347629409315180808925594710605435801157761023708281998342010738735063768443378751123622520359228866693185431785405355026329821869900544600735488321629942827103766721968522770362562260461110132705763644312725564905888804026341374257534932229435617857764235179221364630910207664788223120164737863273815473318127386684588575563152149755437751158946034437994038539279730251282085688447195505707381208463440575659230575369354096347241195577790618721129270544626779106017614646602468555061946383938415642145808709526535558034847202451924152806156007836638196792716081118491626588855366891272770960813111261748998849104313788218603037336017505690362809096540326746349377337355890815573858062745655442147314502900561950525724859390377154677416137522239444817981972911136216689076331479371065433886733731725861775566385960038504790844905731954986138150300455922818819048802673384805139487959717616535083002270064897155009421887828959758890991051055857621863786240619673024898541214910962842719195820476988032279786151835344531340111868599175130285741628486712946299988820186125845332466168997179568881695098268934650618613848608525674779821282930592683112343511078574208206782594072366376385996275602765977917637222979801970874034856653141301546570058078887036237221743038053313498383905825748404482377540386596866867852293728205509216651863071286465319724635325311728687677249554393132830109301078977516379630249126537117741345145932240368162806285013171414895226954538168618509427833155002486434600842523165035610550117814949928907589636252080065669588091824464333501716234053080121626934576836519861202046287587675195224295615839881933868624079850044267910359703379356986391867857640192305781021484643315615598283273842894333189004211921572162715967528600360842568729884557403702807287878140699319705320891191748297904872700718841626835041265217228533124071328497968404933046197200477879686720497834363441480560579389227268328530214864906350518371327199151713816836723951922055181533522446779519812577592595265576790141592359270970215631067284073226141228407859592704100056169410345348184195387375405006694530004566716910767118788161489504522573627727575608199105098061401814345444970656977877058804890413434772208360407324288956525967259254626703294965580336113540961431672528271662790407300075318918396261307296902061155013281047377952221853410282164206369966080612286490868638437474674426047682611361658538177354740710541611590191310599484052973760963602596026873651901909970404904909329225740219207086544021572644437899701143656197399091274488698333380774146213904871508793035897184431663973839835587043141108156860217862634905002158902472316536539658604512393006440189874910754132470173229015126371767853468237897603887224835360645084981050919746209716385793946185212249706194874502050355318167022046895598496472831321433008555366378811592883204925344775502656796111986072419069156735687532650593433607906884761274191919315588552944115172485284243726786102195620886478143840548652429368555150897837719423180500746926732392243274944481427263675341901642678103393548076896006720827532797759920266294106447669071471970775179927908681716336545206528880669532884639498538891721431185690281950904374560957627896037941425047768567260437842226219223295605369051823501059939298672380919865577576973814937986749161337446455797283460240741967290101648513617891569731939397681262147096612000063090389660744524402986454130388344937385011432520686834979417147993526965536103895044073677465278552490088122518698288471200873087425813840420994257122630086249141975416048349903755865052595944198269812028669031902191674995372791922828578648829470939527248167360979445048225055372122294483487074564095632448706172847542549914889068676965870780677073046710995939581264527569172259093418873231124197710274527182905532907001935901704960567522419558694043541685128912017274975194038697995941923273536351220165686469738988542550015201958421539430187252774855929937223572607653554373645059586870184215874185000659090498795890523011623850023393299073518816803577365050436711442167054605645407561113379152824811463717205746182826375032209474435891655507034911713509524293997820530415912059190893440547054993982799403708876193618676275633256391894123018109060528887253377527319763433617272609716708376489786909801793842917005915803182802927246556393029136721838582284474870113149730801806196443418953936532983310906075255265017563094542489190669513961880336007349684435858604134695912104672989139934191143444139153844599599751807290106099565507421039386074547114314776277912667206218519885215043536541613143746373257063652278611925673882926761034109844811263438524832050902975413770756224733764567087599445099605158175896670883012334395687306404329192434693416290163847181936983792732571263307960872116500299514637037333618658085484785226769608736335314383580018815482977970483357795252183718207222115959982434013185242108591522433458645258260190117917269652569730980350491203559757783832520450689990625233468956223883691628830692451733475866630588207516239071414327553485739827843824911464474700796904099430119518373885847362036736747996819202217473207723575357471571733077803227034624773952764956883248954730079837177472212031390236430875270165181395891923535048672667818421344046921588046619772856296403485160729473325886768690169254429610280522388391358759959827959030576441076738184789791685434795259707363945051238637019037777976766646445583322425047078305439468618340858640422082915017614019652341414055201850540182009415777039925843628195216034985419938791038000297804019894760669769007563790465077638369067751779831589424541462024692066868050710051914367550080849370753553654122186213822327722239766208294638893546144187178092223955519488521929198624142676016718284865942828422347258515063647518594311531274151306027971441569214914692386646725625343892108306196260750397890255578317965686693420176244952222434655369201091086567290329199000906079965230269845857015193324891919681123555804936290492683872273737947619790766800584492091871115651714352028419616689719981613746732000617893761790752627444286431322587583967535778882054766668352631179271030136476261481665167669870372523602948343785138965099476452898130761430827265548390536931370932215440266440144347768454178101126662705370791082414321849012545155759008695646614099568642484074847034742763733357747436184122085149422984185143034692391068005367599734885728922764514085500544994251212475278962235650912738346404065811456494953961915309586832558751681703294983946504959306366523808585459731661706786371928143083272336406978403887259582649770155738063771685090422146725653784603800470144188531794225952378535388474028471826135683838991149049625879201082345204118935769310537392412629287190881498809364023857160422649266497456712092471568430999550269167279849301212326597172224412283163523211480881768149242548408291616329739236673788031578207666357503445937620811692505239537039597633672943246824938116963656209205950630751209873609515191330432580715610221296777298805022227280079977952396682105581104222654758790489253269132642993586208962709199446551765642292322004763058343488092414535622158790498190393334479174377313857037943940349387705241915387122176967114739781044638937977477125895648402236544360458421172449435825599754277012016633250592164156728911469025941451802452378547361539885039780669977029266326504961513519064327606331703870282735214639233924741168164671264352502113117206068646274804833760224697075186840454541705002003105252540547014159342370639266865734190989209098806689472606679527465599677469864024506283636272395791077822285304996744635122942283997269406586586380585965998320658088121172349731833260253478414171000948343100658355588873535523435030814227695758952382357538621987815489540459191957249007411822111771405671301720170572680091894420534453621167099413943321764435833647116688942003274788951476068381227579156024338453866366259915136543769271550332182934490234502366405492924086962748431990589333124468347352323792123207666780938437053724584553774225660999232201207324516527256387944351867876057979937831060315138304961665423354917215019895768385681898261437937220081009301899769017354148458853704929285223315957143189974904521119507931814625436880897798873674253963488688333351763155965342008383985492130059304349933117810473350942756300892784990972447350391538970440949646377182751180440951021664805286426957895725017445292036838780340589441424888031534974938320970133333871105951644376478717871730555567015380858295072892494015524308005218286715327393263147250618711552104657919538114669621146600986506097281066054659748246469589470010551194650223257146280340378187539810075766597427231686483919910979752164539358280926945926579707976598104325094148018186276780093657733891418004801245107751085791745030380891019887082631664465420524934776339401505755971435203743200133320978783988014030863923976772387897660271764368650174743138828323265532227964508302196869980225524763293348215484834214719026361272922703487779414431509256211600276640929100823328241185186453464188207739730921958419497101196745961181789091202838042671829993446943132372803546877975953644088676387490591689684408466739607904646762865057565974331096610076938977024854405140590364697103022959773061012294873702265473291558274143832104994012404287934757582570021956034192766835535684227541528190414238298246800214126057527922856652694627914818058898237863965039528069738791229692715946326340467919021884816729659564083957864894223859974740120378356699137626933877969170644180125531409874551859654340387026721378446893895623242883521432285247736798294714716703856148936479698620163833425288792776333831374019528797269395720199126264235420120919125858771493134195251145262583601447714738022586933466995906480594749392021666158773367121388536111315047983176947683630677832315575680268506913961761780468531925253335707018899611750673227337911785803103872707308157106542576124267422552721387518997693021184031396609652854905736781546978140519390253694405625459827345119696542223281654741695626544661081085021963338166976465062099195711589298410122573948799709903612088606389089836019666855990481989454975404896663307826105070909463509424979995069178499715897424168579252823796921209184775812965198248941847668117945648970683029348710558431693006034272703140169343425171381230778885968339614738632410798686806599110431824425194810252284020101548226590905234724420444753470494837221464726938167491778884385217351162626258963725558852872153674320339567141320101714822006923977333444173088484389822860416676511011366211843636034571784481421495142152300928273464621631209434474665213469489988538074416245380520726277475353919327133222927180465710612765848936903942776287958505610470369828468316348036568970538704229798012922137676339875156389690387805811257024975368305100049836815724261462664447796949663009442341546805720013338969273848452767947309690529020858288147337212817244272399243261370019977596504780766422579219839096225642852856295631608315093410473315706667534934643207994234676302132793915801705878353524398431272408579285005587975417069252882549538175822911123512663304728114194431567003130327308925225507255260461997049503761322925706557244143956827466610936224043549273155003349817345477791284763526682494416813524846398783236652022174586343340419628753735346261398698386479164971832704870093801898287386909169999337449379791726177235936236104161947970783364334833402763304347746828105599376138386833670244195556116334753453060430721532979954346982288233427580657882479762176962831984326128503943448761418306616467710638976647759690884009650210229940855147435541148675258282039600328348046158744954609096823641598722767167384345670679274429768426761748683747749539303981431772064050131244886439544504593566226962087957066533883805275590333063863022895954217780049931224650940103370889786452882517307996007078873018677856415330099904410043266794175209101005399509477800029906878411517825004707693219187404577333405315344711760206082298861950856237311011871998660324962506932722144525042019256089136175626123683514937853888928467464418511439930074445164514769456553844509158724401498201717210733453002485955751843205431563672987863806418723175820025659047595355131540206131554802566271118911742762794499455832935621215105110091869393377133998074366241013237689930552908126269416012826001649806736265346698251497206921912595251460325763957279015213904021313663207651537828500553649638150527413436992045895745062115654414458193512591482951860846262683876030523814911266682025452894687065792102950550734557853963372119013461110044712539363051721940862223012870465368031350430579014336018601337635625100047748988601814858625086016544141822093230289203852101832703026766221226716337003335014261079406411600961637962416451567540100850044882930478467467952769190430546762274428513796403125488322009549740751095227725311296555872750816702078337420619748878758522267338574300649893505460303146670315596516743546661486547186591450444068808901206497612062060361389709696110159295361854262432528847226223381381497126403962195328291505892284222146555507750124282505486382420552299757140293823622386881126253389165355902322749992010479768523486623747417013299465136957557111367665353694799034035314905793699904608610263148124030564950614404536378353707682009216073618351742848671615975890488061732961877688111861712804432646777424064460457830861448385201399178580235895952814615087525697465136105083558354952187633077477508287946194183528345953192689180302124306740772837790107731074444977846843201101445872031433650685804422948415614161901388449065569123688736914791952649508595815090167311422750884239936846785103565461954520744104501470693206364915118020375698276788723188582337527087773139055285534101644063095386423751091385059724134876337782918400778257871348284550603325924471531051741049633566211493820099966343734637156429873881873820439051967181256100463241337089653311489327309393573887481681759058611014129658424020233925675331434191551177996347726497037615535846810180950631766975180944711299169252305082580318804565242466235922967886787287776663426003763988324709232938113550116882228933107607186797511613450131311384968540813127498928804624676456173626879803961949059038761865371733156460610322571424480154783584643279135694296685296263981636476403204038372200543185515439028272527626122555094223907988645274054874582237960525584490774852107039154983568632034374311786036001393197640900138371101164238800135037799589573451478580593156062822017090186672801760738783503795436231134389521158317260519633144396499723315972213340008434854661736377938683574998212333915462043478748739262334006907207262185200313056646847490394866748483474869069007816166106019159964973804285046142036520003678079228706461166941689907887239621628919616385806200304075476033593998967053740876987579627580131604621854591601799806322222509833454269055627588287733764833820410352325213146059450779821464346621893786832371906589154927046069238785089344388426049748219502905864310126142595909985682041420479188954436069594764050221624103638160781437434358525123995990407144207276053634174151993664510375550521015513496196977911831990292322066993098214847674177933487008721239937174260742374602897535974193656554749359512772616140122231010935514288210765363760731062328341897679000576734474575318184787098117168582835067790501132471937132183251115721107033004175728286823835528102500873502742561976107527037642176097001876548765993786950239943800778575892513676653950097251590864566026396628615788311643393957597846547315380619576640020118711613695645196468112950186236127600252399190404873839929543603491355928757846230149050215017637585205234113027301564689895835582192013601317388302187741267340962135595261568660776728015063831281588120105344424231136573329375724167583247914326890723906606975610145104081640930110596335045918468061733166879365862144260409616403717130685287955200718089872732135229501600110504028533087896038885782501692631787620794164706845766121269896140591975761463808271953114142924537686540530666272143391924608266175736516792548440274457308102249136462609927231922034279252183245389675645722329644779920328073946610689369574894674182849572086888370921008493668693996257743060757966527665186297084540766142972652516874987311805472487389437334956561493127034930872386153678023988978353525131015555339128132370972543622303924951596805985091815502335195652857577709628602601280140748452878181237922816869915946622497678820079065459273144845166485266028644698257727005652277847963649021324079686628173427756709526698810741868855867672473769535636767904648038666045140735459800153653761767719485371421731768106178220146432137605845076719753006806815031558273762388503233412793689210268979394837000446904682110960759798656489520813944885936043660223111171048787172420607446243649879126522061599801719118862756275196461761810908265937748179410099497826593129120428142300339480706526854368813510670783322124596390221526609687534819484435210770595560830325695517359766006570096468748729024048729985731211113737219411500903341935901732029611264744137058978254135577723779689737258064234495864243200133448264103302375356365705370454416871719498653908414415279332235922156724886381935177260409962409578172552008155685548755309459430851444865030954752415280507455827756136822034906950078998313911786812423021116246614007906958841893422176288002583594595703953163558544570500536606804589449534123235863962622114819162882865490814436107443642605600930385738079640981241638429478721261102736410892585565244818493621406969709597099275853188415985286144887673353676296060480459055967087948672327100901292619165892426109698583915878307399176620997857788365846768551232930558214497971351414907025431536273434172717552387945551989571968772799614976826717597388035246749643469741515346920727482348920562168354763192703213740860056500768719528360181346251762600107113613553774448563579426804219355481500360167382377676211230471942776192585950142434019773045043384555457217612824517549241586423656532003330590752398199943518619150858961968271352930668034131297151500937800445125648832151691660258132850517027791768482717316952032015440003551183696838570141963980161497670257340315765008731173412169190932718449546564755375374042173504846761873767904754238087762575258148758450277653008384939388407589997112897686290269692422222856591229243463657657804972653199253785670156311855879949657066041194142879552677220906586517193801000780193219664491660048505667054423999474829054174903988393444602416424858348001544467137941428180487137874434015082916809886306230734550101192545030635436705702788966263827222853320212734998816281435342948927652498344193482705511580459542265130073684586409538534530841899042254586759077813406546273570165752450874175169529241383099251896011867856344579799187811051633662808597471080257680250940703597264595070171641034416241258492516161615352887621877932373696638353609616106354602408385954264615713632101931772146675666682469557283073746612914926672819810758999152362010980553753071067783019337696195037538046716431329686365066388183023974191272761772458360577832082409325445660965821816064348198495833245866161077631303352244583098118881861828142408302307696997660571330340088137161951463947346446847307539820172258597108247845611875280706829027311420722378176031223959419996567055485766194863730470254960468759700674437901485030716177332886649404004120167674277467938145764038216937543792903600740883267478449408739378787985461639851912633309188248495618357584655216401995914294771652751459027757491132767010541109466640882705921551238257003528986131721307501743172730784756518285650550481346087777653095088260484677663010473265517579411298143715161789670663683806448859583376524880729673033883675396593229835956015671127914891863124010761191669002393484090782656373431974417750464944398247653629115956600439158668814136880501440067428324815170711838680792970224469575228072299925621443979209701219577697575238233699439720707385852340476470314643963960272977838772558368385035129913780412481771093766424818220524042426950642151384014369745270927949753860222901150823005225174177690144095716207699206113601226515661818696232795960598601221098245529219857510570831034207903789384595870164421539990553010654139029622604090982118227667858723039364200498496820468672488870310441295756536876072523992678630917948282259742745282244421176891716441063176246238022754950545596966102925665785474963240856426815176606365022753770375253715061058117704658207602993435434018174047374581490752742070100032618630537867881210352202942521186505634789871350868891520609208391662235385189388692258955735281411303526470332006065732776706726295538439650966992075476176223790690800831316236412621360881396751342781867441125303367027917188746657315627065329080663034140598713196687905152875296687971235883275201887949988396473080069343729033758555289668329015143270520971055482249098500216428479812533610868986931886236717147685907675637838943622663105751548275752255352691828550706314286110731660411657356867403376626459616283707712998005664232593824411546532842713301411867928865051941519750898425137786870861659739552283663386809198998086622750802498264270969446614746633206148611438917655000496241459843320587395907094027155879371120471401094695074984423791693959055845916551261732891456622918919426664952358766826419574579826060991812446148002942865150356314154476578960718500241599701656161671632251406475325406084308384721884731718446669588900657821093086922101388901084041188169011192067696619568090641717137012824260048879632528195444270323511373609499134973924532914667762965006272906491561114062837343129400451401734348268019561830370137133681898146404119292130581832726227289060707515457197402867191423668031817179189663256474770020331853256319096443668462118191840280604980086930610971318398473035189173540474541920370396251804959188623513092381587559164873587189325992714941035420430192862902841998256138868809595013498509598633567728191894917612538914912809139659706019478561215087214009369733197056841196042694988576215213812703076149560359536578619597943591542811639241916032177373496945284666686719857821825423926229754996005475705691110595444084659114827916521690335865296687455353253656625027143146730842627044195519034957252250298444227270669781425145230264580784197024209223619272801087569317989745866784482978705855583624085415558518336152790843418333448288727425107180299753231529685088569316122551972311884939834700620536331211851226147379361282741177294092023486852080310909221712747900373579606131878644913154907553360065770645474191927810658231903680653558033711993065984805030959139415455193157037298937765445361000039023683575882195899849081129578308629092407060651388750323420399208231182017388932991256908830383390830485373199602814558696554643789607775690092415639053487679044842343446085293064891199746052317643622208242800490611168623554121011742721759388871261108031442186339004360680133722463633143276825847785591366547987869366263476755748642839589138765236150342667893981431862049914574917167149879534925944567690540631941667019355057194448094243836882812090173619626336474273683474679980473485093267341388060041673364533906817579272747066699245647318697160791126951504066978542526487638528802768191066846106171020160352718882185715958375635033513295318827251876516373523080013806346954852471531139000254806149767534987685415374957818379689399506078415626399059626885111635345751818023105349612125587306848922176027108077462586599369130317784889607211397467278257688287295911712213778608806896725179996136740301923609870876760643393858172649260078055694299600209592711305409861528091449847558713558375799981285704881090023433924245488218538995957739398230008356351750668604574741376735303141777140550293023057826109291648780037645556725000043380303642523193109021832856207436253108184637640567069609340045578537964334808564433611427802938542458254840283047742985688762915239043254816349689500833130069522786076945309686190384574857287875162115266138961725184205548765963457593935469533923610686718098193580851067524492620248846726743915708785992956021233452344027964521879117285072301516914583319519456469098145032888002775033636107810633688818299523044366145392511034969736409024221817988336777530221630303341316576019930826807984848018759138262636077275357456654005322145242359268768639254329797273822770223993513609940988616713407998349223210137953824166607961103664186551896958570221690243617040770216031723330173528005570471156777108601150411540961268743883843304994467724248371548189565321392886333288664351129628714029400224617927337957121819565943714333245253978207879521584251986823188363631111953944249852843833045349192580605492218941664065669668940234273436689283873256430828673240774905017698622785135977955236005069751646918264545268287839512454872535064444327043975443648873599258822208282007986082863655403536719255827093758481575924398088120525426852466881398506165740510417603711466565974359176077450913046829347643139356151464304860452291010805902766196170704248399525380072286945464534614395710846758372987312910607693445960651252869379528641424542939500489542817238883752838557887915728886108408356977980822364418533597488114308014417160023215080437218128579611651279241460988341854833789030547721662083540290142532739555564621015233278222797271839411549261311587264088361975126010915015758753353304350968106345171172304153220797085573446915865771454702494315392336937260463633759783659941418236586342562947850045043438045549849134154436559073060165872681190580906586014485451102842397584665839871985984642065969137087809701486427199155060663752548273363227092510159267102420367220573929679883496041468151732400045456402307263940734570946408767526078693325909510152358476680354268049983406767624247620159074251935587237622714889635205947686437407386720705605306177441195911912795695345484130775429701875433291690330641953779153691912503559167916581092941061099355568384577325378532606342058945011085536971747590040002905076068839757925957187155935744568594931103665751750009222170939956094294171406240900964278054478647032881134004179578741981519117696010350438680234507872509640185485760224276823547106952727767306725694376090996540865719613507965350914215038094092980547334498223606267468260576610255846627647388200291804591749314971391445950106722272228925614628063071310933188848306779672378906096762620143133526902176676413331739220689082931924226003535327914643438371874334496703328095866152771426556376364166680422530240440884605671199757923936148920392782195739540017021519918743784843455134627799430720954097877695315325304181361485984066732019006072868537343785590822780884678223324238805585214953439916537260011577531157112042255076830085616518732493274994255941380924262300353222557412826330131603194072946377268216810646972830349747327247260146566521266099047289176090939733483092192976562907473537679286953440678682356284762745794555334760104583425954990611350350001468331952180067363697565584799115466389940328036845599686944134434947567486379312738554490325411480592924306549148073703922472975808724820592641881193969393126097818405827094076684038909780687947748911584945091433113705178935943396062221094857686706253749171553991078558405392755135088050294488425222941116789902341985734950305314279890436118131016326096241714171041376905551441877172579312742130812908723839971378645300131133677929009367751433508206306773517640193166954385819713810515228034393036931062584120540892567412242139842464203859180095486631288339025773630124515481832059052648515496151406145173042507991422067023797745252863037313400800555522063168150297354598020224570414844708404924257120457137074523200958251994948969105211528839789050056699712728719620294236585599190176145417403896896161397475951458396192846839720023994320746587969864277589566436804063862881307547952014023779628739463689557956346765385147568462581874682766447214848977987623251401191677918730516519712638531306803818474364670167616821593386099603023688209156539407142988181691776870643136182510449722469511620197949163409270834458723357179958748715253829698656931267110398160770556118264541413339419566674015504650745434103266299180903302308063705491649990976886247791115722265995714472489418369825093959424561675176987258018742500420415519535280628590311544108741784539728492210660645156004518009314592679428817170468711283846872294593062322016414447380910154440302472924802238337799953726725919728069697606064756691180769197094111923487131713979721159963842703465409073370674601197760564863363369603194298042084568326559503159118684725299061357838845751435884129650075894472647146322894813073336842680707780670342490208397184596888100143701169304513478119425085863400671052527673112374060070468868888343648218737335383707170656294900382398289439313924596653869114532241607962294166224813785641551011560687462573419864713829465019508185536282477886349132617599947833650145683619589265221253682694183405034297600095295816575617742086647326600089051795237476740579456997371939917678434167862435911182173335332286203654226103022068064348246689371223230211627620484359268241625706921646829976434425119727071140013381975352858563189517682788821836349172843376801943538853130693405398708179300004057385489036133596491789854731625404438819675140702459849265954781974588662989798431731932192930105229498543926806460573795084578278650387354469109622367063161894805776136794326001546970146558681215498658687798242312842070500522888335360919466510622404218074425433715984102810357984241742108895547950630459455888008595864625583935781432293654401639544203535978267123115003478653098064034843465301447519304558832208100298874385027106798076000434051637961636123720683630238981213582354105769976239434436452327736317531441900999134340328794609960711099161854848326860218807587204064977844805259195015668564091151524462625077402713351989375571134630233056278166509953916942065023381175861012594453820670392298512022603994763760778595255717379380000292227190616737078221229425898645354507920162865305615947150951612232574334598088650728473255287262704419794442069547487671641033200043563499896102814657799246422250297197793345754657055808509093434848412650977652365330357972606319264615600985903990537162862168164078565476372583631672469088562132355892577284145523438688728304874598517057585675608896586186036320899567463747368578962885644020046874422550607665613997673238021486337208129398495705629468329883005138530496811463090758207679235534090820479421108108919020711301054420817918082210975233288582654682476476131237374195618867845009869839767695453582016930077034349459004084419815130555548010774328875809557023215964765961107818914912907237738491789792814220753576721643206943706411176213768807554711341981394692616973029490711648519116672060204261259152144494847904646863816756761939390918278609084103704842111230823750285286933783698825140106621112650158635368991684998611146204919895025946994342871259490377505139199123387662313582564124225267769047488176785407894075772683401744781413826066848193943258065160648991590136668399179000289132856468737712964192653035165016692688338620585422893049940441105662010113821251017230253104411704086943289966298417016630657644414772076919662005318566910565058273525175977064449030286503019018074931029024116533431015351504510711843698885639661094841864580067966577468552767014585055003058102594692718446027195743052570263961181682613617490577849969632600577933428399398371925000279612281514707514551750136328182255633548252806904103751798345723193722088808524570498220408329869641177599588100582678402754301491379062534460709614279616752751139894847389139280097095769376847074704356937684551677128599368969226434906138371477692614131926924003675923510672170513531919293574822712703368577876038953036135164829715054022934236065372692463719651665600477468348507763060708703261746547327662429752143244439390531897762029749090455043183507207054682016994651819393822450310619124090627200350489207528613193303202424979456464122936700953987986405553172788871103573917392906442995273726467220717347231057734237946587145740535765122444127371884809002894646575978282488272882187143863898338153734330439602299180258295040404100393714247738423673403340860432358974349126499374737475487410373837351621520703862030739590157978272557039229388933451083349836526175478252145289763603348302568177213382451674486036755180297369931363973009949982293821482144353142415624961775613305522493662311454324722195711512596067426444631058981585169249263355625312616058213923227596725997339326758161471464734672562331545727685136383232821788810696794363770600436021429655631987975325524588072614949453767036922191118633205844734828974914228725122741551150677655619091150583438048946637860457174617796174960563839227914148662305733427259783267195507327251010989498633653308545617864562992762475327918364971614215647398982155737890130406357586591242490565968781344110553720018679590743026031576995268583674486687451756938799377763325770330719207557809248475956035182470337408506786866630986227967690696366863208996662272682657438554129254898532862916350883711043979268468127358380764232795711808896856008628996234808447264830488133740195992350849264350238936314064966853497175379357184322230193448288589722632066043409180313238660334044180121754201547112772835995660687555823927761526914474323283183656941138972624869330999756901992514715611880406585646818312831703955422411129426771385012197275786932696244015264569123185137122964398773186712266930891698300896434638783900135015165690881292382547204858808969771259511502542939679478037981284020846046988981028668995743024490180401046357637754863413003058695917118528084105140604664441188349049569031834637954999230748422463037974936047513513899488555157840814420092482414520801802324949579489454844798629417445931337875630213134251315306782464992986946954898255102038626789813573528621122021241622516937200493384813494882024570464105628060747561014065916793537351351386829413354600039279626344188420397122804575588810767617757553103361651703571541324305601242595672917597050183417934048949673879099608020514496648029243994015042748683648865841247791730934340931421015850155569233426445976910511484607166100420984774419819041301119708967270549105793690218195692018041246345971937050836487160385479263815409496045758163210763103983227511257162792085280558747880258420958036588563491371869703163993549020065961882076093302730584647875303007073982764826187849794469266484021569668699098144329534957930775677582416683609874094236903377672530777225754719188949870224696792551068916733013161277667010329907555094782728429510546319622700417342245841157395359534526879983927638068081511044235594271179699712078177155437789763115244451113880980564452057007804808820247082814476531213722938133690748060162036999278206842477690949660078076993173267044612089026757623422260860531596724074962166933051214523113513759303077574597969175431607573529685560095017839469873630922189087003875191988937907486910919052167654466747369770085759952738604253107016195611505922750397695243821959436464380797525618447213090533039334206235675154902713595238727689343111931239601395605513367370780274068122291322926647464773183129538632887057782081081022589898436220802797213884572005887080042247677718657231636298034377256002603603829696340766627098139515531210449528183314268771269520016127370846930096880431157107964008635034170101308629626631875703396862240365035643813967875411903210625672751107231157541280900095115243808996902022348963021500853347029106368165092998405510620493036855761907710980176494903494504443373717057599536430279660872874355314308521618621075964655566280709292593632663968916343112850727823213905123803380688021767511149146160536681140229298922124425213514655602809538122759849075402188992197612004224352965146282627888855361732019762859044346250586915703739566727291010332387376108085855413165270120352485655879355003228140554837585228734376349031198127710710631805430388890552207777260738739985350555574000102155262156568355513830940433003362361748370589061042303426468962383401125704983341582467628084535520934873168548003352560244577808994733232489150834127934885958892179274171847381977530302588951833850359026411896832075381425544763126373862538178912332826364903776255056333263794513573586005119990995451283841137315257998710389815996784492843627874780733944588821747542316423870506796295815195897309411370774488255223713331896852831745123301896465343717064593417201639651646697734029387252154625910492271400735926652536985937817766631840853257036767245354553304779226354507146263012290488572640395535795849748153470262467938743104314246378267066570487308276736692595717416357954557559383286358505272828672468278893523804053378832040329353292279866109125718012311716947059307578015938875032320191642100906813669434393221455415783311755708908260068958398001479203206462487586923894362822347521634226469703867367098731469609547567830294517548757033246832524784534585932666742099582945985668643046886836804435108275180408846579671248177830448063263089254175452366495810594677850690041199333876980835069806222022458169288586934611102512948172007949191176784460030759638639116709674327899919923262572482634974616287848076979703593924268086828143084100057756971698834207962613532382902803167438541777558515341992034635089069443624377442462486634944020038656964654009380927752795708684814834891187577746420623590218958751376124040155740318351872104310767687127528487542473253780845073902625476914642178422290911875843975333668626683367527786994943536031769394837452001167193176031357328080581740510619195258510316076379228727627804321660550601058540803699653150917782562020108775165503094854744522225285218308229454477144051808460925538369207842788217064082420225105798082278888890634507595026930956543417080163050638764405863965469120598810210452522447627732207055051437321285256344086161904271204009441681992864754440784386905950623360255722991539931711603852274951141480503336621936679809149866264229836496130858692205629543996916691872234170656590866861020196293150362537299866564130391870415728837081987487571359591056533256368693749600758368802010345424630508943973609895185122779313766740815915088355876612790913954860565213075540748107786409713360359067728076386458379443866764550923923136257992329460558382524384194331860648021862124938785055402668315667232739668644222075635595710026535995156966275656108980655865258177603043314133093842100432379506346539627005750789937853439225369955320693897651964501186462941523300100976746166035634615645506481065373866687081504303082755657214529625105327485005999448656997068992016655371495603389549999622055247020565115477187758359776874494333823606574069917482788635959746597055489147793831556528767396617262166233803445547243969719394816386796017810899316764216841312648894935782546484134011979577680729774729480725023576055828063471041347256834200528470880543515586168346197140588029053852525205261552343565797613222072446969316459539901172120432588867838756023637326107680703803967104807706814754140741422828752809254093291291178306115071550076647920994570203486501282642499241624956043059412563024899719306835573959821188481272823454999527959261563258109378850849035272744388890173393624612766583197015979886119669808706628350392074760478092582593975676970523745778150432989218187453665224889532379310513224900147345866164477838250621386055916623924053878890248998689997575656994269518120895791114515010102805318180450916902214374068116993199144039647010324176865758897583504960377964423671026530131713896439637878296426421468147633042477931107707243402954798867855128070864322447934031588348336919238661909385430880859901835768671895744750924761842072778315097835251250612456471620932597026300725524837027219816650602375045520414463060375680649293633576160782360232503196739705046465726680395372362545775734766124642359964771747482199333305329401146732109831461576213659396545522203110527954831207196384168543180094761787789083668289057197887313688372254279031090069316281392146215129966430320036367940129450803366512502346747975949649163710177178526380710240017444704648804999012143469407399032585066064415218143799008952264944758451172555991550008425318607933672293510510437276763918218561585474458589325965357042183824880974781603356973275776959228346620064607346213530107144921540424299363196686784972294138390342685119111597196267179938819949376958066364859519451349485728724935519682282191024338805607865250067363822042991690642773726519658514335604910438028335929284656353233308439352568642785615426666196797193186522892267524989875698802441884849575673246295008072885085538720225757346457163381419126476573895633984855540442602265487568551105181686070151680820498337995412187368044599325966246863104813333161445003187884896208216264619768606405369431635895933234661893833271211113936137767989044963901444255988161264439086395269481543523981663572542033625570356651168775945362237377780954364817128097953511660242905639125909497764385581961022488801780712587026993472971675427081964246881058167985267097412816712653184890247024571915212102658260432130662070491699299658496874024631817810780263967151026207517874227163655385520365406449470236410019707317001941402015969000875208520047304856145971685808060169394770863969622296630681504728151596353844661719226358936440535626664804761058303628398890074116942612422022474694964006181322491836688351805711142329512294072031232304774003953482521594535567546760249535592341741140274886310494491285452944594912430561785406853759808804761647251767404058556413275613507779146594296708350306275030602116356806874798409537269448572280586749661817794844986486424293014096734217424291941094847542013228048464556075039678751697870061394926582063275932306180482976657553455850586976395813459295682387633858371434288398413603449839191514611985877664936383828603026786842678830206650831004292844060299504406987828551653784065091321205573042868705425271052410401447803789291287775657960539143190144381084044343020627331725117352822186413443058952709609145647108362578905322044759112024298109479823419785926130634201180514486453651518931624173110781430776716731500116731120458736432708401404804281167971635230970761635528186348728749750225128143618737098129304972633803972045535574261782540677346151826095190583312361586844274362214069310718485325595854522605960794089289197523403228348237903895861722848995964391119645069431925425487562247729124510219021985341429050316212321263548785964237396168276916219285512726269100781004771537529876416372772772413479968091899663316307282701678875332559167129317985016473373885433440763104694370294403828926957945625324665501106590496390049090571315550445937462157273443037195417520622706553349757680155630934309359817499667098019150186623361597306990013991642661143329430556479144320721954799188369451473448480726710712999928784200400344479290184008004169666427753575197455294052766329702970141996717237232836197190041586775938930326515660683359211200001262879025497955051917636325463587010108451083150886511437022865829346174600946022254579955892485214074921069241135046713196780126345381092192304206881314759917533620672484444474916445896347078853506923469804265125994755040747260606200092398745823315868723025297356145071880131978559304840757117302021009985395769244497482826180333450227127168331990393589557647963927451669524438954625765462872048198699235564524299784669604335396512218764723156664863004869699175889712195621749009683387142978075459968908346028020479094432956070240671864462901615721532904979323915466595861306960263330549932748041839252799727513227345976811838506241112181462224430720069570634470667580306049527456742555013791183622855755414245543702225788975698638484361470942487636679951337247863791417656230740688966882725363765760316794246823202142010465612128469984018326307861955736707788702934169716346240576460060366725918064545394799585698751751710697130804470556605253590555551536775255755564256106145881294504667518711160041938852980385033256527209968716621443721693550345184155471176725710016403663231301419002598514041862436087746344300403984759446156724303697929148314056509909643677888479783061583067122023699403804846824604498974930735106626543105873000097604512304158162913111354548064357247108399475847621461140166678163434197890676939685634242908901175122627128575723160305364493888375984199638506277085784653158897967101997326981705204769231549999774215078663280466456967282687974260635077294506227374978497759494422033982924295217437054860507891064926182195731235397260460111311181876657715978696084515740848172620252202181263702742603934978730706989718360553743689880980951549237323343743682907090473061771085040597285707391239072673581897564708432780226239243622525244596233310260353444849675767190404156046469297126803043963239038828889867801268264198069030331134200592303333412016840115245602089544374207986042368718915643282910599088241474543660217649923571945500687933944455474852523365733759742961386312625223594303965766359311883817475807270831079951766528158717167775521621144363126156923108535417080479661900193948851531195154137672828385006528518372598238962752240454282106109243110972136023951672841810841434024796595549657469029509884971915972679221260759471690457696471399326556894980333777286265842654295114039694423372758610091616871605150914932499781032485148540701983859100912630734918908981971617612729336802536613356553091423332587444981476031427822639836283675149304148798470003484703429502838080484002582397870930151799192823018553551624009582121329203867599168415277022820635273496495839014474005032097822984269615012260414283857992242517442684292154456799812235394155970808306735379361035938631572246976598057417455574827411257730866197024011580414068987876341243557293494245776888503087645291130494753945574578788851751446612912988868201254795300664745063720123930674451851241498185546131005151204140069881014496369426822340708730520444477441081005232971518994145460516533480157262566044696911854550569735168169237243712240794880668191516757810500319156224466520558406131692956232687272860268275574974009714918325263464432912391020035131819540911519757390941634372638365065895850748561224909858011146596534121521739190614331605963796871794463374526188274801735272213275911614317331657574182651029507215768263848211466471634135471296626664074944122293548091820133650972670877984188815411080387569456245568978117697691965158507280985158695738625035697787451571287336031490735576801679594393927118016244170872495958602831379228096454802932710405309952750824701437665751954524580627749227264558575404704788151914454306967587246417614068753121876201847772533668073306964749960806995362529652490068068944403692022706839764471490296208025955945149069119640688293446161324490826307587175310224380420650244970179686465765143953561203449007574796876188878663635446152438872224741243798866113941353142541061094156715995334518610432324061358664587839176913358133869832434768554658829309376791713225158209194107116916551638913407115411396830199980591765303336148887063407712070205744197873771167618536456858250294042036515045646558829716904994868559403515321291520336660990138872920991245730390101614461336602214481590671628278319831396554842560085850346073147541278476374517141435885511591269802669484089587911434699561417689562637657067273654231129959258695570457287775817931348686461166621336882717134615384949545143012471343212391967120897294310111608549692128576253763841879415434034742913444492485797861078583764088986442465392705283265323157480264986819085418764433851847979703811014932130926820397118475595237937439970131591066246219457839648023839348720757168628381852056434853142388573351695599972761659578472424972179444732796404465531156156672437973481408188610743549337979868850035804419716388322168594352050131678999468176394370207465598119912336868957896083013395400115900394281040890028625010206587006579410575567176428784554069558048960867567567424624887230522759762603514914739162282932184210889023605316461585407889123488964219388935297344146514142521472027018850028993498405613720510806045365312096929622901207792745442474202997549665061417670086028670011525514168915162309394740470825889388461300446769289017660193204543647421695311075704164736476412476279626858198046923865773277669058109512872644748035533891906623154609646621086761649428249511936117874122100133606097748956835658763586317239808015168053967287601404382544101745922271706225413707551556356166870826709011772421458750790846618071732545491502402808280269346278056955389176316313580205634427257518395574104984209983782525058529967753234625762828369618603834377905678774615244161540078342961001752263138504633713143405043148083146240508228024322182881357041610830474534082470476219618766603894753033318597075310706256873501616302652154188835944434784349817593743007892795282225478437075605104617472452558035479260247927193048571824692023550639470634342536442087517257012906831259108258220457148844090970525412198486674692772890462198302040205202543290263249639987846255813050926703103335501286322249062208764526913826867762691502222635943099931843782526990686799661085161957184137010108228210591671298478702374932154830603713017987593852516828509427273943310746438061909944923252545863850160570141959556428223562660270412475922159080428474782903006393268173683445514444818913263542972432314500770533735235420451629651189986826608982137708173845272602631740253300488866154470926431903164841844667002522195503915083673130594646202974640909998825484162604132611582432467875544965915533935684797109198960522804023958757514556871538827125335838580293051456298898063236098178476638210721556751872821394869230690574271588356344727099542203383681819318291276110251577855811455293448732295679210297572992023452127508990711317771317202193565725833710935397552019933319401201906930763961898997705974787665984525982869305042480290530976679979729971750743797782411960163561608120332739546176865159686989333043268319081877456973067235885542256791677393757867049135885178868842086329422200683464316374420867180425687496591430276433412878603386038628926297722819818450531326247267923928704934751103143808488716525612858904394244679857522428726733147135794220418818017555483387927262474540545151005204762947985346926842851320296288056209212183214662803880046053772353849674217764571215809505545359858037423994927513443000693831497086357089662330717535196356349047601771765996646341784856383630957043903279138240547514621994640211566666965428119388326859076954246847237377206530886416358664775282110893006576336607303393253523911853502190329039729918678447862410424493614209907820436055915454225352878468307472549820757507419449579458254424250570690848893698991679532492283346002604174056844483944901798252397885117136380223311717944469034821658777733443847187594475113937981618554097209580253905111228088958493098508277364636126130518903383321385969268795802438495373411706570808304902572879734628198551555596630868038586885602135886261562443684967105450552253722253113193315824280097556665020178588104095552860510094942274662811132928180151427112242042228239023428957552242658854128129567705245603330158476599653284356059668605804242401243176417838260553408262637833779489903331843522681467649653959273886099991771867873911263479229963113167261379207554169916819218290384783483755899997887621032557206891369003241483104980967788845434101746341226113327330169728016578769169752335257305160935303027923667009340757807800006061921038613810481312838097613552788930549259838197106254859694364174548622662934310605778804586427914110154363382804885624698186112194367860660293618804760391397768828389097151226293967436132941934140903686110672976278961996016896770470206852321242707527665452821974459501533572276817189995504142360562750469115002383241329705793208756979050713625920344120295144457863313602114118503657811636794496150821953141819822222410064113018927764030963056365830744193731018080469864035149873611249086380150339017865368852120793501350134111095587134249419652395245339541602269170119356187464782994172899754673242144856727465910256329720760361465880199617388596559106554960750834960862862841375370028468085166853074984996822061610032535481573671709945986710913432184149562028520375975371234852196771851839354647793216387301342746805014198662410634789786112887303901637466171923786777528225463699396968500605759426007301406530433256483705866633305944811947389921195116507220676134184414828311680467056532044626875108716984958191957878629733155707488857081599822834355235660617301449525851071122823589250573868780583172783068596048059113355942868221765585397826669120202082071769886130881901054191244219684710119596220862840573076797737972821371110925277900235019490108396860109045864142386806608995185685739327784998796855884626501159887935853158313943618438416671240428104753746343410423010405517524544658866236982515716974186490550509151801082060345632465007230400479124046105702748176671654006555408597332397711711041397746638138777432742506307817967050969944138858080753009270522065118103946839731364254230574270917585912228387099450236735787997874889926336721359136163145177009967626962702930217921875238003201660386607542701686227044967726674733638615715776776306834974696910659458899405837806896886401580754128007998453666687934176338336746463800584337155998348632863335908118409751267688415490170539623596675672941393190090451039876811928152939616500420120714450281770647570057694425300525153637568263280107536937128089742354179439694672562959321986951625703758614458562224894731706927965420512496236227743465361399935515785209596939839032912430233867582893382268908603281924141348967341657873854591502216921468030366797577192234239302076565233276090000339395958743337221938813524884754841619891349303999557484857525715062778964043749603297641323804157144225469585861346254647495626996471960230708256976185259213685166619393533987538911845715031545215862390677478195506848682864795396307688294862606550022298371408601709522446135528916281266838279270189952037450354531512989071266651354032272520365109481300554208585618556308739998017181769269121513908255106722745300827466337818459891496081638847027407965503303379992373275323541250891940817561739862946182305078370910764153830539459212901148333871479243641116139963970937028904093140266441140189368421447015945435924015890722060071757579527486663855490809408052030180765029274374378769290086043467741769001129754379063945280066087987863641582997736148883244611894150580794913447571493062561994462615264968173680773815156886292362341185036673393637423504370605568188541354745848867814902264346042085044870891435333820939942971056498165837880037705541185744411714777527204478670753162058067559120614305724177478765826727512253365106311909153819314028407361527839830422485710234510903215465350342168294020621621212638842143687709917507797684359461774269947316437960739294370376616726378375875859824210177626416075544619730484595274178834227071155741788589064918485872551356092788312167625308625885300734802221256758269380551353109807487246322049405704900786697619138022270394860711179500034474139673124009663452215028602274947952922719519403614673959234003834250982958469318597442061585057581479932045034350734987841744629155248253173587802420871478097026989305120724397131355205268038879227553712261248085606905806129808659613529727925672951306744670289556821377908800013836182448951022403426256642219467396762274465427566626658096197174061793486513486333562398241089669699260263835901109489466428896675171814489136466003478643320730376584071019677117793220405161944160092162589086089875456745902544592810202875769654313989416250531418409425705400705675213444259276718137117042442661138014940422270631677605747742246121404318041908284368227448970827623810078921799411356247800174962007706311994370184680092253273688248223267897670954761175800464389673682144427742919282909425169563918521662576093884576406238716481843505332395887907724070343830920269067857867377635900596324809808091621135407621331170571249439416122924333988753875940778240116438065036758747389020845314868884285096156275399398762702361714835491111407918964733813550200215013743984465162273797154142559300889512953378832462871268454603976295191268703007145891218297521013740324004789997046710624302910530912170540574715978806635775652398062526720864104359031459620367508108762335315040299442003428626221527509352563592888664306754540189549910986386071605709266856646140934150425658804974325911992990215494051496353751435838486062088307649640340715505511060181276338375982287091536160989438428822681111732063451369727507554119132650656034720919576692247400408560232418708062166378352357147787357664480873145697182174257207230891231672674146400609166400684972381562100526826618548980582296008445866630161401040137503659026961761055930550817967022533636275063460612421488524643993260856163529612551070860215378682484918876574687917678177413537552232629330161025878776540322342407599257819065283213420743225960932313932296150903536336289616072575614714642205811591711175894677931485997519845925966649199540512252740542969568149193910948299312539372094667274169528806797846272431911876479483184386610859099107598169308579277799526157212373560277749056414961608387970238645687258554413829022300460343618634860266528008613904405675104552629693067897699428238336750892688587946578576456332913304671894215185622438289554309377624106300968286640305337687350515156181415778829619581152073574943068029265343272662631757913639727057127179101678850965384141274602720644192706338807150290703002526826267064909585116924883615261058043258472628881681242196410698721370364218894649444357491817444456155006602197736755846276906130886989462205956943180320570840045039521617178103021487394441593736713407649667146417242867584359513307754422904241297812440307082080236632788182412068462880234158347779837528442152902921379812327609044672232491089094692543530028294283886678474892272014729579299250537395795170380949605354217507309364783638713535128643422037020106796034178248724886460580795974023067064123254439912851703100818283702226556825329756010356726676466484192036903368345009887191232680529951281374436745776729710694667412690798674623456691631108941285359037168612518548682039312073302457713571140417178163306539252162267188677058083885219695131749337750666017313380577248916785818392191498604407210333101546857233835354123158289624003007956410617851037778167166825983886326232760817806659046465364985224283506858973710349107802072333554443935231100881215011574722449271366567744216083253107366337293404172234365702261503089112237826258092415190178443332923369163584348875853894356581316593920452877294576776839979973505328269261431929038063549304496000520617939291128895860072238581319804372543261401698770818250038619918151784731579580206355059243752694763272043361696241483585929697904831725874657862934714576356694737259199740600815999941456679013663964725739506478199096755565635701771834977200459870580941198270568916458047304798310809176420165199679041922109828326723832200581705967869999852752546547027523537999717995872487112647859698942410277404620168658641448315232746121482708057966790871828161993226253841504791818186999976023738014329980154231799255108074168643147275665758840432765353520384031566006667542614421969441420659431793416149828713052363400159704866627375545213465043707161400272627797365679502782297054932463074260849586682174342579441469940615106893102327939781272831929696692347925423682527870352133857471742003873118480954937753413602151734999359068663609605314400600133634462033510365581758897626790603855166272285052681591301999653817226556539372286744008579842358975064748811138205857117528559613458205814901004466402362884432595669920001419062274686056228522016848846202659464480910504279721464920505717788615015386196618351208183442114401155177926920030614638159319667964410448797451009074674379329067384526131875531477252213757727429138047735773065062677224112799375805561180964680018033072989224512741702490488479521816093879698549634914887480179251606575307861583757907897690056061480478061359821703864731461614251794470227681320807254513666352900508857769395003138823475698459041923083870171337141432290709344564778207213413280130417344755558848845873503355264700446585144815165063214831636395000630642133411394356387072162379666360797654356902336454963991562887737419408387083492895512775744829887807023521611656495032989186848145506303983920554412366085730676727433576780606465332321443986035664421712412622478834848667192614503299749996600005417707921330891643264483128961534525221450660837691313042319938270879811335250303695642273593679869084018322715668577149972241716253225166848295510868281693746033918779721779259585565078966946561817941744074547099302388871830574281179571145135017066379000058025423807712440455464006662441130145428183271589470229201420007713446994255229855422166241181764719433034270676324251450788059641986032191584776895560900527643371933939463145132841045480707839163125943740268500612986034813361702472772031842372132266245671061670483659134338572397838327674831019777852166280275350921649433097147920244035920750233128462524461460709428627942243530155769348476565787969115295795444624762432052348203997651833970908869279557978615764405543585394688396034398645218743244227543890463726029751921431900993799778957035710259915819355456919712468936330931800868655035271504077378343234802775412507662628794932636977431187609680323141415757855053643088933534456683858594887542608654600322198768534250283578237487667061398433163529698402367914298838117746039513238425318373915541978759469237963175153941839571469560098142069924467303808263393762967542145073366277439469383272860057279331601703168765280613882154278520439234718567372201665200221911570128755152509924337199097001555165551582957730651332340262888357885773935640134848679718403325943588097760310063700274717439373165887124199216670487955464419353883033801985826811336354221179030845356061553518412154817057622131671145596088734828181377613816398396514103841171406499817073936648920474734161689541776455465259216557525562750903332551755935831665793528412782465690580678459725349269762443890525463261186040786018419021194169365738287716510680786322194434274655960745532446542992389371000065207995087272757153832138514536023618041355286566695311276818598921958966148376249560202286820524628939699477112791043177417966299196306990171514933453839580184750272059076603179956558676862475187634083363980676391922574099485162486871185876961649917967785581828417732578906543236976370589249474755090918551351174602322909796580696490874550107811267240240704117181434247885825583600762915901655696973841345725345346068400417182316566901306029785783255119817921262335390384396318975177329235865158681777884771193518641097924199129833580958774833862486040706560227024442886459807204840670856988514604495152287352780977573669412465692543236628965983260287202736084782440800399498899916493755547215226722123847779894521082589879015149693984953510034404186378860698551639370637576364653615167375552125228763602721422425833023927650651022109181396042956002883067288735857626850742832240344669761313874194383294316685919396840922934566805186201911242617669227709539883644120012965378632913857975123045599566505511091053009175516386756259204212197064065169137982169677679136466380269745721421199457244780668882500785041964859664154400773154460131237844546346499566515038569121150148597083196848987445299977943327578652074613665443894628663370832970787275530678151817292966434565767907389684615820727162024227551530190868120914574530932321328700440398225409724895299836220187768067075188165683740186709537071887750122189716293211897657963101900718503808808028262340894275827651704508916956495736786668314204823200168811695586754706527047816783443973768122302282454102214182517842988837169740110737569953099233571946047410699678671975114036727088641131834592714192757697226795040452176669626135627740423896830357033124740005536772816723010163269006859774165087757680684719023465582323657246079206394631895644875780332995625851153712681081906395818126361101071134710075176724179300886834262009133675710933823781674303998617927752235559311036703189152529587637743446000105838949611381659249378412814932585282336274088260486836062509513647733721277094281652107622432178257645117731607348003974823657004945981823811104249725586381195084345750563626115782772973362255502039336122954822290143732462005833016828913935005830386405176793431115120917061170652786450566058761030602386943181313246345269984058436980944952799048608088557232282687467607233391347997309352743573086640349264929513803805572461264480052343844978758083140062113717053040539530878087230988055964415320142340087547886914796288158987142407903718501943906495971799640394415930212190559900729542465052843968075745896619306655780128042658108837325494898870873844285928760730325626527374403994144878309514945389245803271125861698273335107784277776533731099886257634715598650930426845979010323551118448246462221100409869868416800480482683518793481212469267589915005213815830613456593185673528714642774467992356914355501512872551261940453784900339057046593566067150450780177558187274548767756294519223163971660572703770931627776527493086573958046625834983575262700188297934139639069540653207881577656080081942195640639422842184341443418940712405343962564637524505624422156430424666203618493611087404793232388321695048850506842095638340145353232091803652855227148494691807260712641927509784261346135957021004047555483095049488429599947748868614248997504268138123289998844552493749837168761222433337727973974805482215653245596081078419717830374977901119966114834535692548955435005085943763921122317563981254752164407135871788259698531328001962949861004828605165065734388210080892196440869332175626727319189233856336802750602567173293310594178888732746771836673003011744389519432501378291488970500143873100933679833875847684113594893736279285974845948115072028653933020262276728422581245136909000241989716662886440265582324012486879334087785662422028045843206979638021510666724731976683344639852836708765650234829170482080817291260648657567163122697678606759927240313689201542413657070478831722296432579938681127974617572274671462217937975425049533200098722962328097957782139263478664840909387692619784860228717722131474164556600260190481945607317388036853373816359971694041988826285343714274666063569044805085219592783937001779286128776383833560838692680221602795083433572815850875713283213777177799777401190337692979046654334920128871765204707772826672465938815011065030016932565116140970640907389695969465902904844059771057696092697954566404013171061545071669450600482813449262012930929236800153498806915034851671323055359047952890277423489710216477921980926600769685376379411601880593372510995193623391038360170005380758846560537675042660122037939886816846296853213948289789363971021139673085209869129941090126906190968132465811394171677106149285496353822908943345199179314828863077314375534636807941872601118361660217995921563893173980714108126713466144114015316274560857508699044320965033228564922011294366709932593082535727754724355665682713735222935605411758347531705576803624777356022699462014820300528321700962268342589609440293691728598616955723799522539451470574825221233791579679893727384331289281546971205901035836694769022009318204417100464902903240077844818182200775141948268761094407197855443472967797934266775391321155696518906396753829813100115267237702712901604485959782826418312082902436461862271940660296430236086410493005665073373929235604466374282553077872315929361932699699452319433519249731506435608237034102582773797517150343088859097931223636615259175591461351109013971757987954259015665333184864709819007080202425746247061151618474699710884734067706370647386723645307143361682982631892453376808016392909772772014271366566162480599257240221696017398917032387507327736754943106081763127581617892563133225154728825064976424175946814120137417670657754850583268521848114794589530141741401031549353406922629471759267844294154439919100116308025463017964370266960929299601915906038054982951580458836321780025596222234307195360786304612231100918985910032116555481591626956120744653332636484277569072235452258967215367189588469664655029032376304865947039133513398037996321301395989892800028076812423743768388627949510617215695731168956824088670487639899050388181875153558618586438848056627195862085339416829594159043893614240471369195531598520644805229914042029482867848298659135932277349195738452366987324600152056980084526926720911877723045738648260576472692544252933937534940881004342088290898348791262127425634534673366921669426213015567855418977452947318676282535857531538366846361493853034540415388981219904536463343044502539526686454018927086426107343314996154572852805702349054417571971109037925330278010426693876806565937288439195786949573291013143250385720078071077773162109667381608147543445741130063526422320816820634349542074268736202670227634951152466500892102081453671320748263592455115755840973282896860105013505930470746155887620147093929025710978173597791384676366881383901812098314725890920801327478102708685819028505098421792369037582291974859532379190770618550758998373301334093497805015006211710219024766965241947420378698902655857402044810905760793579503368713817623681541479342814887491096272553932980756279788778963079874505449289032778601437789528222689242091775283072423144888596015029130834018982038127412480694753466148342522751698747515833142751497568160013764616606636214584327449504266278984672152630513675286900600319229165000745936877986744543951037972449380694632545178513719443922027387409986441567572380253608473857792538397522434883141808533355446108287836527670941331631249934262895325813484152613500636419379115524515799456652448229479721001720516923474809619977271103470220427373720298480741545495596228478705714187061856393581083203194650211980569983962210226113352996655557060274989355153210294856077927639028068924995954319728247945427602432468282270152820919827009336413840286477609183750792727591234073353562719344156321710322616245463425203897229557615236449571777159112446509175859624696515630584632474502338595297084326037384940339305595495670007716267102372571382149744069807726203335618312978890762872146862308523997926363883878976984690099576798504127086202427117118849666690908567938274129681311588679790772388775807062173387579124182315646090812397638420037661814298353949449824985334442845626420260864195159811455692075952836662939164725973668520726383293628492469505233052790521708333625106877888987514676230403793209207662214003638649341687265408532374356481163502497093715170497664050324331856110937644263227437261426864180374424712223313768306990190289365174156019182314817685842504518791766902125997259496626808943245974199835639628960342863744321133084200946319398448959656042356761314636246451597685004690349681801029636224774880461422959429817808406155595584476792949989899906254300113929986838239457384445854580680167361962099780511355486871179079158906542315008178335979459347309155567882877754906007882663374973332816311381713334239954001569860216236872307524219691423434305987031245369719014735826497799860846029360424763398652052980397767668535769982555755285278257979100993790328451335681010008070259766915070262230951191692347984419377798145246256795452259434578815952976112776247180494532727857197112570353508340240835630591712317923635650117635017798717495986549626584169734498148149998132525979214616341785847366387219649059163024691017247031272724541708812951732365484698508525608972665162066993611754134382333941981580004436035748115427143675297848345154717873697805048873227078037396509937027039034994323512785450434617441289692020128286041267983535563173386992676023509496864328727947280316275183180431733684538643147306647082435610706059755145365924246994182160638031034269280438387373162325749946424744276751593745431834651169995095128555566695751492788923464097343811680470871576511854214798625524384822355845614866484701861740982008166128166522790047749777871621353534838705382551152878559669316156205548109188256339438095889851389196722720419573629111465721146120130912194613941086334324368832073877454488687823320924584823512831438314579895617484916584252882624059867665613527416358463363597568722036842849948687952174134190840473065318541142078078096574511205189031536248744690017710852818408185877042728483152810662761762318299798534301201351295223850315798277368669332584539724117329864212351715189089584202869552956000402166723657118818653331794748775978828080766211783391220760217230267849785505933049277247941150577958687493212598725657823050443050787746500578700684393807212067264463659040800513664315491213328647170699875418912598371999881231264628889056230232703692031398607579563518377604502347127822725012675083468749341976943493897926369297898780117037116088503310555349071034931045143317606294769519178156102775026202359754455278718439181232515564222470287720992112811063625579426711687366644985058799710418773400354854916174440359745414638279060881372340172815380068830864860985775221229185057783016559118139610623592434560196658768780931918277954504475488648652489709735919998947458457523573225324385773655173762949142178176436718443879167397434441622434096589348241617557717275612025025137764726843669957919824605752051883060346447007666462500562803027793700775539616065865521206466397526111389461520971981748372576589060946868983046438965556464602381525809722019441165486823644113186662708983190896080034162736560605575196863971586761785025633692175403731492805923416270603978803801893460314223841533344930447815328455691472768210258821212029414520682292046173154490917250319427983602538175927011273904308320874105730781610774917137480982875898824673916511517803844290505360069170102253267298612907698243330205572496562724639083339780216253813201901614752516466973105572531559785832526321207422428827883836020176201108318954584124905076592657095539779997698257571920053232719933534592485122356289155933603912018718758708479089694227557488118021357306846840129917682111634485704397418976735794148613590188420596065763648433055562204363809770989339082912103892603838712117277637129013982014728769908413792335498972708784498893426759596827264707632174438943686632878407815400847096582889561757211959857295718337473117521170764732412527418734858323378262930648676933844983709422439806271126670661507990793068629167943133865416282387218082185771995036425235617634245260933406425461829478222801026179143144478975300115038567394638352809435163787663440363837658349583376302767172122083642664399849767282908542598840408431164852864770027492893192278178971805531744751401328243705994809446142981159149547528179920712245933366612766191851986951040921922927358409591062067069870710425738314956775358381359889932194377081631069742928511119165726093688935488533985985496988421542232793694528032218200296468232163295907529649794837188506909365747986609464699818120672818923223934825365893084390265254541914612665174058476447174176817860724447787629181801435688377902256059509856620085056786830393251061352031397670403411211735563749036757155706711803137055090315453444377528437174712739143167709688063919625667010283876989701542709192781715337268076915422781678564025355762424369415816043341145106697557544152919658054137963906301169636830132840662812549086611916159713130228829988414920456703028448766611693666600725809874757214719260918942982063618058826498394128681473651855968937963471736484514892725879121654166999607202203023004873511515315770815286665435829885480026514903049418116727708974531874830354049688921446059143567550368820852069272731860451782339438301548535536857559467941848114653931902965599619026627369987104234071690260092269177828518734399560409781901014067460921954609494470246322633130437911843154228891980119347410470295427644156521610413515613852028917729555043852726121564940797440072754872488186085614898946939357761954461593996887013120205174285933596753714769949622837248145779659912602750690814826386004762233426993013000370375899268190388251299934340340788076357926541581209050076318156295322865568218943882113876313924805683457011565436811326945601750819400961949515328128537286508507387445899079988688772706240853784880415578257781762809800806628659985742897539561149087369140906600546391992122431682226107047376974586537348601632097762949039009437483489518339091459312528926032230947887353126206341711452371366030820689315724447245374146091225015693501502394404208300225970381505611187841423840958158498039331339019892519115470685147071329161905573577672885285924033417749238274139056134596786532783471349280497877685196340128085425149205154514023741113342416082244148685534142381919465003191793082147905876843394704634541477357027829645902730379019269287011609917475424961960249834854674140154873380858120237505129904111615017581081340415092366019477348571004342797738530694163911765106851403609027349676704867490983479766435921497862603758331565085797483444485843277905101495230455089241642738357454770531179200503284676953435936835031715704768202126219499167910670934681919156670975162168329104397033552293511072812532802121181627984609085953548088052319554566889691459230179621768609422001665754945596561984089808911137061042613999533810081219647381809255108316145027544512583175110477920384970241116411148231541819436664368497337224756877444530443964089842074792595891103523367258339495622532295209587498570469007130680626741835403833220037566319531159501150271712021242055034758561119507680408738703148429961698035259263494724263923033769145243488799899330984644991693027780344985736569905483355959715885198826884913161401808580639369412358921589877905658110926018772757701780962844496492290299460195059208840897014528634186827169866483015442199689607124638331563609829823428632472484989555639177197440105804082547934086953432844121720900175707708526125497766743619182917390890545560974073034740817455394728394190128370128055987130454809152593573620339765564899553511348836607819313682670592329413808563078753457706106843313460503425892686923804151656569527140079250773430409175964982952532683010032704800899891148764699385166616515470411508652162911730631667698213007050916803405897864124297511881049342041028353322792078962119947649115053043081487598951091173044955949254649943344069354129488870068429101375784930506045519765749188693558752884468007587269084086533585574489969126189519388682989925174389730091524964945511209939009224413612116326378952232808400663830838781722492838230697243807708696412190943105011349884389531595689429711034694442583084841557787143190069347650980704052316565625730931266883044646311501959397927214374386641858874398623322808337242382523179772229638465384066474965090368747427721759135729307315369895994239421442921540680696143056588649968554930009179177921839385584610371359200183789989976115686056798419228722050781718301860421146517130499621482296447989303368122765835645699453586668429239853511807940088210325820402435197427404015947895468419777686188055817360812795997265123689805408901270847565760609519955001475252621205738008683437724191735304445630035666243313646294732481004263768196321390115357661244554614004158893464387361021637310812169243892834222065028465851085084185602020707362114124046675352888064143570420956130880231532258478967858212380460840203934905180446370793416949841252552307083009769324952141348582332025519988800574512861283781741161375516989658775244783026116055389018590166211274434330114998317897551202057264525636762351884938318424300414373146320316988040169761449432025234534556368686830692409751246592053510312226982575601379247125262071020201473536932874165336340168406154197062919770752914124198349982956037206647371633658060934004396187691135579686242527548970780027878257044823479020788181765133388003808031052795923260184522522597476738026157849125501215240559214160292895351498931397768541629347538290724311630275588731855332407623290413690322448670196594612154933003012527858798454209861289408896266661983445815978081812773500637683363646464425988963194710775708272601327785212626058683490303671902674012783748943338246443731330480098915465825398434082848408939392310451059002041449669758474778301989858380327538533966435842630421823852157883927125653769390885619227412518701626227534628732600229249681766359869520668593228066666211670136485185563985511965042205696450109430022056288532530496015778294597684607986865579052598465863519796351997368876293404717327327706455788543559958777414888663161094954025047680593923893918219646814944185004796329174225361191013557402013928160470437586448009676600896444661892381277888347569907988195785057132193095224417353031369117675373762693942117284316950159495730202983555844735243994419172673018181439753869796068730268612683141278451128393374189576349214388742407006212816738666058649866506041757778125183175556880074117021128035556300860147432845567791195071974673278469235623550148280202358828616068130151132921762165093912043010080749514441455593067956886338750177965270349278970674897913605327988874487063046770589094229954510811247075080116366873640759008532192052264750238733893010452007613921559659270749574504986124306045691436869209471480836456543898883044869060478947599169968886988093900438105812405797815113819892668831488711098655944223861805716390910876406963683124318753252255580601094588351623858862797129845582334568308178060526153698605793684282571428534658569154016957323714700130851094389785667580755964771976723263634171493450988396276443899132714916527570179684985694636111378172189199021464892036983173964541276412152521959672665163009215421892154244458426521156241217214677691536843305776739387226240386730206152398697814069387510852290147856440588897670196796807983213586342059571220086578552924175475471473589169106436888644224073924325606810318861984800227116531388829913922797287333313351072029960178809593776767481307154330389856107284646942779573387118299448428115642940094469440075543240134448700732899682239940382486450645598754410596142936773937460288725863927132910434161753694038940322964873089615581817007827607744717775072321424522352997197967325641071035166684024911946661364680307918762025407122174337538110565028194672042973220467115247180666846441172900270227963413575711033552040746333855263781454683202680303943690714884839741383614061813072747097191859213089967080030812719623700050063606051804691642856448273313830160897736407175769712779758073072919670837597691519616477672108322717518943163444574852497506554682893879649796636887419780298659696741040146403951146309427879855053480848975716936868973903713773539785278205348572292659881665140856905619919718242348334561416050686718175149641066283117454212127794659633096347286000797591395449276681259976679740494896102376741245060421824443726527238833986445750795452222325568422141808092463891834902219713527973852381349805306958948139806212369609360874245140392174730937697055791046943872431316280116587168793829269227651066970989328337085328438914263638272780307458277951324015322563913698220069427551775922306686979349027277846298699280132843716525497407263210912590290704387753181372098314263691318122041006654480657232851720258586293287298778246310048156967343146117811845619754909230287210685938776651351490507205826827489174473204335562401481126785922009522746854923873540516021736192444207105368655396726390623525575821047781582566536712900864270154770334551270694004652329307676344876396948384797320619905709517322317961771265470882775835714371303522560782170688413762693166575450118318664659752673437136947077733727407949501518328831079845768662871352715510184323189791800645982165061699977856390260631766978046436971638345448146379875975809016640832605158725915287060642791205818598505745547791977010830270397353271779348013768974972894800127021753330785542772203891995958336676897659173268715483126082482934121032172181397194974087265854250133815838381072878962359254570302123640841973290165515651628841213384837584288402785413543584541327149089598517909177123394872473873416746656790121474076412292054922446057257077638755055350228572609357844874668194805669440745395820978878378464105660321514517968836251891101530599187111981432093838586839969887922748280202219978985265497738025832866266051658658043945467403856082018547684460433762058087189929056368841090269730923338543074164049379205155219437490953060248869747721514379247513216984536270047017638329901053883822910749056379375467097647654051920687893338419869307404557948700933383462719975739992876325663022677221526605372411927463246413080289489430225413752647968231477611828858276375025955510247210393946913936328747924826638604548436279986093123643750499179028229639686964333798038542580173030794564760864951291574093194509215149431134828697884064811386346346159052837945741028008819207033910156075492316061837902639216779230357620763436409963395524350181162688795482171456738654157719302438258057786271260930583206121738705777758878547642106513765029471827525679663118968263954334632663304165451441006291474004352819995251171093840444804580757568294793134263713320922605940435386962862657247937868437305474599878528817925281183674844451013102260760869802574852004447445179664955068876450206082807174994258883692728960641165941064057572410267872762514098393468780026520663540685144723763622649383900637244051291690739446511283296107598126870255609650182425054206188230599991245963814280899553187085880069919691373364996043482124571502831841477312432212529076390148780235119067415623106808749967712007282601394374267747572898301253206339712450359947346461402831792316876800919011574923848314907744632907052691197210614332764008059610282414726547722630622292170354781119369974609947085188828386138700072060378797189985388984494659212190843425532028355319205412416482955421400836530982785453494182426385689570040468726279354760600218181896799533026980766102349714651771930183479294535095762783959410748186086966838528301241105352832550917526824277686842092359689350857642597705426576792948269169909393723348083122989256880952267947564869082484025803584402781339887973209511158471972860571755607751533932508292715033431923821596138160612356573725885994739535247821109879489816862582094741741883312939791144909286285848917461068334629985513546738089937753742803314832044469365238507442832878975619446549610203227697820204871227925389124394370712606838356088758292120413938421573501377197106560560800717300190126291195339056709961851273020002380338708890647410303348847885048265193463321206988849379502524591352104020051648743199639641605723051178136782054701876366271191208558848136726977921216009410123692047638783602114719560178108149601551935013015546317152711594014204446286167831151620054478806748629861070235841094992832741939423458861685708352347748496631226036769679660315894738663321795030258464207319540766503330990759418578552345176478832263311746091267173518608664037265901557956655971628184342337515242993442517280304431733794663872785391636189654076936403982289014805936317154306490307061259806811178043072545805200223594723425758364249384824501537753506864888237232499899074857520463932910125729080763430376433459535251518115501429563009091755274051176825285139020735213460755679657700858381495966954947571105915878494917971231279542290987836616757317025266731132271630346718303240973775231599099915749318540595050737857426695033898199600226648744333807424132494469741649961838167362515094176660163833213186956200707745984233571693325186210523155986190904258399845876883171054553174826997348735846296940902039943779877840546540745152347178525942692782672978459886302599219434783701380776129056513153786811645112254950760494621928560155922629742055421768769831177448229414825142564784508073467521225814144641282642751449108739411113143297042286078913955973010175386983191603927411357953530525674807753404930512212758252367171853612010553763553667583715884203908904309130942272932480408912509843643203974992583383191700460700654557618361941325852772805924723589765561957126876293216931359397642291684407612988155586135333980713816391934176218571246589517516408877112538398250698668432053349479737681947493800021923524184822458916575930148595264070146827525926653757224810841414307051552113067700924399470774316181354258114790687081176982409460849393264788414657852239920515148361310760917109414839036342389729791387569992533143896594846822470494633483145918376108451335803733741761149909247266567547269353568310278662802341412030949369596972941118867308161164266826069694540851650333448279224769209111958610952221515881583869207886928862209097270591648256320813810444136947392095535233195975944168942467154908079108634533500177044805628858485948822839197719477612159380828560754010232462019387725131165603771589073939022452646990761311954063007414097757400243617468181331832505415859364716491190554473756038387171577639722676501390394629924772012510128750610783093502778877107209649071398405477956048606321440480234494699219158202861555070475302742827856309846708020099900012569121618492837636968351832816713124851135542153495163191930642187375519411385327399674104446896209946286710320738167410375844728738076696375947301650570180621552915145089361042385911953670906339536940433922563890326405283209540587521278093081742112089340788045133578481192877196157272804239481013135153018914058419020099343336692051026087866402364112300266657434728839194997324178044563215147310414618499150184634456133820237841500355130823419789859466307320530434406431248155077272252780172748989997248357584270249190258631406005153887343836216226426287344945280171995311537405381499704820615409015970851398675672700528170684985833981352187636367937930784009000021842920365150320991021634817981145142845162139485526923085886579145104863796836511672192955800708798102765205263225089886980441444449798245641976052450222842144092067988750337703258254832569461104265378353136527755600321775866025352622122109972472042239387377666541587442756602956925479342982013053879366024464623298615439932393997319811620909726142938659168039578593639902620457825255747152563035487433095453558636843913391160765813989497342893866197287163099454725642368137408895239151720244521445500444803071383604165200715269738588382856193232837356641394439450398702591989632690060289481808418361016568891230425380056287313866401905216697912638218200193882674643603236163262551317599395663952984092789361607881159905662556904302282150593991131120887666711920370159018639465870435685529302256085815389378445280364138457367576444227940928985254189123358235932093584278496061728167238687224791270952520603090333402325004932255430653364390481021940022098498260642210493372165732395387634536239874341479939272604772928797781129687760489306038467822464804647914661336335777409112402298579467078862733376089590376602483311975295966266436597202466418396205534941154444866152137048693809043924426273407372052140942909379990463418386794053246827117104572730901934628702494585238725565464291534682474177690160594831279693862933824285534281766415278353019718772707126321301382196308635127942116117393254918698990711756712321225356610968701683957610436057556509865275371432592262709601854564586684356011454573963254558813747111873075914680640218525297490294526011715374562491882076798405601757573888029983950492041769912266151972800758511864611152288656608332954365534144325032996669172962423362302080039437531932911476097504843361807062793855389228796508534803210298378546490010948606474367338392030137331980635058266076599024608654330189348001073848782204134977736591144819216270615645127706864994339524607568723556278922965992274428915245661436961884669566269984688634376118370318604874024910474924988375325725221717855027870621624237534015105283229630218476739387635943337037396587386964427416611692234081198796217176527577743504701826192363636760532030051833751823928662124424699082657360617946343419627766036706406000523226927492007804653038663490588423203193103616359434761620276008888803880620915869537536146688479705313239150327312503934792935268803982785294072269448950935898102688284861997658597269080681060430714746211173169370087908401565763717467602831554065912698007784960010409882590700262851779086847239434118023138185815512553416292531627601836597447698417599635031973618690776926183306171552031113224267559415323931288270364670771926268534393186743641190673833074342319527149136560840896152291484807840858560552848147949507531723093651807927769976125945433201736470101813159646867665012231194140126330697432653249711166010241075294032944560710418330671133804380534221686967527971447927135061502026177809382776416230923449904738638029816393203908177243280706368620572210101041526224659669860351632752181779724448093059630404183029327313822371181293480851547619984722962730092593841628812607471776000986129923690370372786827607992499609616180707254320358549183864710707057754898472088909410446692576284603628472895586476753086029971369527789281865295732576945807737716316876829377430151252848052365498143070443968430071516124098567188993587146936878832496208388206666183891041414495540797080409261768914721441364441294677950116591544073065585981269134911706180465250341494749097757205524699556931993225794864844695360414274973428438336068114156862371232128901488917215919637516613792831192815945603699709937491847250621772024149334254194811460033341059012153109975695854641369326305833102394148745877524498912749054258297443671399538519270504593655058175331787277999214281488380361213589079925832365559230098741081376766197653259532823799247485405194444206141695572814243771551405598882095601145813280289777671047851944925772726530012907182277044439425733214981914334449195289414553763148699352688622296435137215832516794647681621661734728681391840872505289753776777808244336868009017409157001585381666797149509700757640547174127858365351654081725173458800300300131741464757993407093289922893499906397357252189584482095053661072069119852921328065232641606321017833414516842870216225578459566911338507319744658511027452879329314243184972124922830961716087727228895636386160117926306555416631697801652206202339552809744290235344509258919198726258564303107227039784619139036797067921041282289715508855584786967251369929414788716452195268190238174108613786508621662086335707371594078762142671024919469507848016374718481945831550707425112047001255755662515380739058644340951760856064614647950345269882740222891923152239184616796244078789368967399046753384389011016258929404309197003152680782590342677024433213927904774312815179609971114011739739582800830778693178904868305225228560049328616720630301858165785673308074858134652502410281373171345252770471564783144388285883480868425576683091023229166490400024740116432537403664723176518417850938074942532591087352795346964102135058407120668230327459548837764273901466869953567273620361766926667728433620560544736719084287246679013506008659740919014284841758633698004598710764964455388064721638464173679989467381340908443905290374143815833455291195007220855676969623331323382318013415646311524334092648654667750776758874118122910994285236867544870673257009334071150194312324705311397060562233772989106674602696543689240772214830481915647611897769604978050388561547855275255179237655668783355378642802277112807651916052746390120746150365495776230295329215478985632807536911547585918308694472151063201760412220238367769387603664924909184223667639517303038034083263160227358581925635820239501752619643028773740722581029966048370557077795474831703615220487645741153695801860152781595753357328715637135332830129419818379630705021835783505449622867983661374867784180656779404698381883246551293995956785362482934492138209148648068148708335551611430697236847713085220215148470008883640162080654194581451198295939452954003119581494291038126387692310898277645368147291238648511514071396196687282830540017801625842285250865893782271675606337299726109846955896717377296229100850445272664411571645460641864887511872924987154274112421095230959828645554268849467572279523063211330688296935361045734235222582503396299856642671995207103228220183898094959619127487189591882257590816227788545930207506849295090731387877920743084464708225045222343487282447874361469044179039853038458780501626860392963593232433284669556871059698732905207419372041930105893122761149604519671741547699068183129366402746650712015713195207461581235321470180639414132140466339587808908487683093347243589613125636543777642242856768221363606104788683294074104624208363050445134929768457636170697588746172417438658383968397597499223857038014172005285336291160323453692889862231181510105371237281656499863797536185027968302338370907121209935237834360268581392470072368642605859083498643587120573998921003749675347957502484476171305340754834996004083694772882868461332122905544098832389506779385848646418335373277242119706127764869263618988634287919648485524514140902965375319447786285111616339858046627468298598936554034313537932652406555167205519770866130644359258664927954545986353865758569589641562625592445876879931833885031247787199858389331432252127841503254813262050907326100040076919875124408280853314724368816458405784332226928057914442574573640202122112695838016047472857572417438142011151935975421856015401459907562018927672353000738127935300562112190090209847890241937993426503549075616736003850986171734872315087114828629283226555545564355406060767700861026671234010944277579515027324410700462809909022863559070061930823998576426912960744010373441643960711077308608948501006914961832709845363427778131395201090611116390850160044295687059663717123215786601797660489036194035475755580121332065221036536521957831568989919176287051025660753926378879112789310468723752964173846452451011791685879056902093805990144077222103423211111724602867987045240550258789099740867364775522486880394038077622846240535554511616988326605347619223526334411110085906327300989139098312241224228360811726587249215273011101169489020825348523475043364977144809325015855958209421526768918867062231359152949594868649867770000527369246176535793072884338427455510570840579661919990474153892156780555310778457964086965216615268468733040994840851375670899432545121434112603816658981764236114397418333375788622397405166533486344111353864898463062913789896870309756714482418974107933073089631053599504098010217592794232977597323270198363317109053868296139755505634810951048334817160033648628047400885095506478412939804263886735626244805192360198699654176322612296426053564216882001795566372487139694600753520812216559248312642728995031156582714563429704579226405706396925317468522461864087227244840859340495406237447500868424667292261164531992413150373199326462853782217259305422601043930993178107026601836166754422101829872856650026252981771149648761713337800661616264259108112178360526226044457261718168491999865580952061324017543883695693721017651619693592208720992904409407930283964471773054884013138493545344926176394617114273774663130991797650493662936044156558107657898085211190220694518422797497364325443104493569881802040021941152408857082857597738520945737125096430850224864628096605573667103371743649278508504090325995781060797537098270005639764171081584813250146761401746792495882307406172041788458957097370744108817261366164840830886259326391418294790418790398511143340838108675124359322639516405923258343281062043651785975107684540928227444958352781927333420374348342850443780014795389540588291127801892636516991801623789299874088467938917784217080542098701568050565246206710218706879710237853856231585929586517929292770035824256666523167682535640521254567890898185355605571827884760512683137977815053491279652669831101855040999806980948344592541110688722210035951495350447463978101343035469281784762276664114322306037501413581817949868665931346089303474972201120732071440512315363030636975940222004137583627665433966649728070724055130396280084005838080789621080793818409642878890169328005957885285066260235701751608564535690806758396244751339352312619808532187168878858158070303368044354102799117371349220183149441290559350863379614376830570520449083144166274732561380562532293106196655840432003692325917031923835853069454203361438250770187373985903418302994512897131953594847315251821455869847747962467426065573484050800816505384913620461993172457221833764772622136934215389871007325657138302767986681791434329497176996576599802942695470762425630589344136764975059107213561804259103846952567577950574436416832259701814119384430115860341088877932398671924423247408633807701424379713112360984515681738089005445918523898805926756509029241413419395504941261140207057290218685938966597866025959828090378982858515966309940118158917120696814106547315928945161239786286345090030452976319330037226743741012242541955388171919048271883586066046095790248961538003162671491723648610851067116227846246051893699663024997564261365574636802608648947288617122517208703840665119022366161122017517473228666763298056919377915511104359112904067825853258453295065095795472026056962666836183623659158982140322697629860640606869967463873130588678067958544120445299588135432403291402265856651767118302890759080505130056711167173062918808896621039127557780411895498755982688637320916979329364120518565197921493060483499920311963490593951123692411612038575307501300136454554084167160459307871734894218010185708051408019821322912717897529762119916848980641289688854279225492897577653095348301971755906629381433478934760878218436128626490931524499951849203837947351021486420937220082081085099835756356627091024018668470747145848038074924893958807830374043571241276542575676452286360952975427857068069275054473407611862132383161688951577038516986634742888256690043006952535167284850150223599201830587346225509285500974606443226195726810797089050957882223808661997811679595827780089111668753599126519862278986539521550008282998455234097469594534604581226608895179302962186213967187376678126605238301712613292347531743543704451770340653840475202042273996862187823317245322071525734418413262145821820951470516432897052078983408373963046834259275832269049747505249607727349617756266461978938566446917197796462697493663062061348056349272261288947791926178984627309673316006593026371560660560051793225503187296278370849224048926576347067298730265548590687830123906152373743599534003729503252413399879750335471206288706183847008026149443998363684804690501067392721402071027534801769370946758910859167073639638546563360914776318318767040201316130990503251675059999830885130215795022073824080872871838860757196319248353513245340046315165759580792367807967460879790065006419403637087559025772135097667726361759905239911864162412135431374182062708681935685723733955248817704067206374749964426640330614984756390524745151739810282643903100724711678007176302378735301341594717809340733672508638013085348196948460260679184199343097853290401930521433374804563329476940167063054814356266088073879497036209351594578462124283590578771286156456823492875367907483433337631568040963781596587377652200758489014992440947309204424714332543441477436931037807168823257357678676150778877458424371600078014447387591857869676447395784752725799922549356754235655668886249721199665209561756428178860991405889742394118017648489991654991475010421489643168826611073303036688543238839332828148356309835830741646215282029709326121578027648617107471515158377561639604839398164034300586272331257985725248386610728624800662937960950510903233677296060229891228878500040632815778124959474960410832572885257047260622896467519198750367676863463696819605551203880056639624466119553548125275351052171476938420624081711515669019527945641526462139919168296449244444839424453479676344827535612957956130375147829444544615112265396482510502488371842955672513112398556631232049365015063572001859061814971878337566193860264410401241842499864226808378364691585566055834961432483060289010829072625251616468272528986234932120385474180534833652216927200797663904223275737892594551887231742243443045100593250032328938705426208813469980572110159596090308433175484960797650674782560975587965586683990637305792777229663299451912290779702198195912329693385256791172925552445864933895275812609613185434987266488444579259355298697976052276759607177957693000166886890310659498625784376175634756346077144039130875738917821577532378779497268637447813875942443982319466307390044234707119290779474478090972995377404880202600178971225787888879026161495061575291015503518006037396436972708766634383357627365953791143277421539945553144828411949390497296480042868686868284502727671241594805132428811915813346362628505927087338893947579052426128855376704018008124574362323338149578808134098582749432581717950435095625490269319897518193060902669218097259964370803178382352263017134759408615812373327265917508777280203110208526130503212576439439169153590708493095679498828073717664839865849580213934482957263507838711133366188769745860567847738231753630787123061642593232319419747534617314269968047027196783857118232188878732336753366667575136786548512674084188888884955199527715275746576220275244947692423753488010625487630465990553158711714622910067526610912369107309283649119026051499272906396179754427250223248796953872927499009948058105671280937886924001995892223714039274868201751309803344877134360131073098786558450380467427756887327549620290921978187589572262799374868536253108585814894559324061156350655086158235044019649175433493640553176053945453810125712139814307342299602070877333236752831174329588568140745664604452565887395242776139513825898244062393793335653817994197640106347968428877600209391576385675442549718615527597255316691632363051680028004235477632409895505163590008350580288682857723259377858525907508318205039242205774794709016843309265445222581512240802399895638488281361840423967468107673305687093895047616048475059556316150329712075489634401889644683647420474469229410716551388312059898811370665915226577713119766694589142670746283046636906032845270785535921326789180586105452641307001466308812733927608463537159644541763277535439492758024142457726001316497579072788824530351867540201956196393207848176119549224807404856712280756691778815349421783459101451620449569025132333555099859389714584183320573012285639487068265608229476032294474387829358722073373213351573371896220213988211479238257959413266100684771061368452861557884899756331066500112679577001370388493028425244175547227410537403526936239410306352527430033220692814922510255504147920798368520856074423787227028192278092002256456132929013548536280447727409185884209651230772790593789896907224165985686347376388408847269158605398694269315679979518498402045682689450994689846944468001394794096180345249328465359175231200591409933724371970921643682171307006944920417543268183034549736980658282311448036279685007314568118697837550785645136303620526513438609392568888718197058686066803561221234853554138808849083811533996697689051373142672970495912056964567879757114975752420191787189075875972105940983677562656739843331104550139382481724318683447976405999224659115968144908587138945699656776585822419831828014279043868545801957842349641513994957836434451739198870689874036291831636262854104707394400521674368963891038192563159725239408831859391904837569583508656979972307115063819692342660347433146799455265776312665221690271133369555378292019195729515509356579689625818917152953094450329151529323081052821090984907851749460527742813702739703931939690774783406725825949540280525913576335409895461543037386129473297473762758937519193181592210282404492784508036503694501730915140688581193088511780414628704219431520155553114155960174215002419635967758369338563361969038084046221879757639633421222299853274994178803580967400679382477866643266037328988796520221991636311125750539166944600171385028246465284160652114184023330204674666237319616137241335050484848500285084769950091330724158960345373842048763678507611898033528427721750020942902324587914547109984754305126809460659754932033777339713943915060708481333404144531189656275361954104005795362626427485339764521303422345906066967276251824050059257624480063450664896102645461021848736319235047434621937391148547269627196467446748796601863088609226050581231691248416915081039275403591746844190622510409871566943130553163371199271331301995158838057853365763058070764576044845837132898212321316508210853601615417193954724735688306839130100251174606515920539015454290563720799658973097106356667254147428827127509027363396223459939387417936695445816855098419761772251852932326208991066256403105360369087599108718001311692972946965342119134738138468995336390887646609337585006555805210519943760108809080472438053994345577974763861577112435433616815578782707545087222639622786815990530470397045448061551552327795388538896089849224576167113784277989089205045531746999803164045760032365396790922954346719136924630878866405305580030721360695229978863341020698693318741018525228075385184537388307436342163099757219261385883409860730730537109750500154550616015396510606642506911693738000084133096961790563136748921765961647980580824594502501115625980463008089108459376506448105982393523192800562404945118359728687473420910292399868375433374942449934090318703392739863849536158623629115093679288193375404898204556047289770255050456999323505088619126333469478838838948343591676982422693791254150368454429962210444848099193052066432482507822631919427514872206746263326319994517515261612233049243345516445584576794284002519427068725306759001946974964045279223601310404522171896059191182504174024391778114695560061162823744499790715444684508038906845436374518616557365756298287144616377431764300709398401409216004096829182874850883283000509831973245234625713060027779465786215128193605479210867402806834002969288378280858262107408757896763164085724677434469101267671066967902370364940157702838449996971094032632493611748871833311543080714809244719471091333345473034986009390386968647880660955575749294374502702540923766514765829439841371953047249623152874095582994558552786461582095327167140536883530706216130926200205118831613887479834801875001348949356544811107838645173475346623035701362777367737544866520778916181383503282644191108637267286471031438995225766163786935747789924460998373719914078250137400366932671694934271927241687146268168428187576461558994830863962837451816048604048121651893248076553180583030758197991588508771411527069686588033059650524878999095068962970047533000748574669880005697715411668015553355008546144070431830304343988842687286418702681296807900872876623289976773614883519532216956682059806835314414677428458850702591237001765964124614710885247971596979583991830777537528156030723857659266006609044154951762870507603158220629904108523385352640268347643467355191449723332391507552661297152851593062944090367367013862728540508729725648535438436099655395939357106469955953365462327795426489646371643239894506649479397573976859434898762819419701593489482106081206296753753827525955068054565561264124396293581546655639970619706851940028506328433096187853074052524393708844840202011403252650509551078090584686783587438181697879046390103496056855993582581828705268754628255377159337652728665123182328512299400190067224473149019292323531355122666015846884064434678537084307201143763990292927716613048000384495524653056597339013921353060776872933914685566572119426300311406338192276578096500172657520667726497180088179147638510492384909168840788143576692355824699870385370287840441538548094354166628049435194135538127649470151242947602530358249193837877097319224361272480285692410850368522046194905250738884750067232900723912873200692429802765890618648733429877001085595917495617929856618886624090894742587224705622645995417911293799004623650227092011384136183073886411895213760281152960811267129255340495518013935651466313199969896804319765838389804027543784835105228265336675691955741281352317168828199933004622708354054873094532190745869870063320230881375286961983091028774199567073955128131806029182985543883477907581630624690566673203823890235779058979808176431930209493375505294038328180207976182015700413885931398367263238707264596892422454866988453485056431506430436975873607689862018766796089365000388354406984162710325539170584437939425405572534025854499029841244815191796693154351360198238678408844195405347380814638688378609040011172082091155870158852073550228987541570428623474798292417175561043278805318584219386899133577018866655567275078555338600371215382153786532257275954198862103141073828141969852922340104483379397573772967059288308954694753698301706693845437494433643129523523541421189946225956788991618250945550020305840289977131819183024035588681061685034785382524582747859093179820073625732320522002102523788666821322763055361508360927943442435689316354572010148776012635954880364708785804480322624227700944786143015490625369228869142373125916165000648145770175968259414725600703746806698900363538843410916015023748495399119382782200599741062725933368094878858422964480551676850315224653382430926356520724488785878835052270944680995046369989466491843304091967759484763665023752260643151820172018883804353698115496018185946855548535637580868298771330317177297093149922340565649862015372686344242557677941038131634357577861480295124852974283903809876620410361347764713861173946977111944321500511127089976577029500554969414608144960776839864895832100655174167299785030470403359750597089484840652945961294652595770216853006216402465139213336119225839544143645432195503322169924211382039724247250242143580778753848361086231425777860964488175387949874977272953797999458686506846560834408882736247994353445496653657804707522015103186268494916127894758465254513913244989713684842758147778883708197376107795652484233496816239758223541724285312980132056865504493277282392641647840949223073195474902989868928246157027706187314620272691532860268001816628335629068536364216570302705400167836416813798107283217295301386025388655760584685761888007048974342416771982522955437552827617108037113730797084921304558600440683547610377193351321124186902036573342240664418529301039846520408560831261523022400102557710170641865389442100342382595795398480717016109628520023395129930839807433557036743945672502178715642297307122445679089216667243992341148052248963766746053070604189701922317883558416203523197315309923094824152724121207588426990652512110484216100186914638041285615820463152381388740606210155421672722584715396556088982429447025062472143464166100252332287708692576548631179121728266878329974461896467968590507368996985245762401994671608588821011363616698209693406370467030453018705621603117895456346511395036107548359196094778523808662401094243782609689132872567989316365306954900665102725740790317583163549914367315478454108876948101450120963771672007545228385722209399794184131969725263495595498590156261630006777467702905368780800604669273354569422523024915038004394839530334125271680531441052921064798235089096207510060842918453882820820335021322231204383197796682174362499289973498354261233343180831541423881075951696527098789359487646656698948353938084261996611724709257043846109056779765844945228904818693458902230238098545684584083311103206761846100991812456728242032091485297668365896402119793909554005581404390805196004904120568390389247989510595822884459041238707905261508479312689994334046777775052929487554598600990626979339313105376672521508861959161797227927095796894908303540984355409077737145240341717817201100909971126637495322008560814974936873778429197792764383680906338768916244955946751183922919991301757480851570176001192378152927108179700883417472278033451699503546383243150000595623802701837660742802252743805532353905165015505491038469734437056289973304501103618501357212225529495739370846874462531324003744319208555555780321690630566103530974091693298513851656794301072563987720171290172971648627867733962422085439334603424028887029070008688674898482693468364771817306160867118057505126887430790886856518775936350691566969469339851804734030848052308131262040685699242915166700238454379850807934302822170447295037049420118673886132705675091479103098573634695975171332783111635001156906633626788718438123353072654071938543223025437761417882928232015404909251426390102374479916956573208758967298969595080913791641523407216673222002994291724889793424434078266533951005257711551859808441179099900546734390767506180110112386932335586687282686226234112035994926168022469674920492220897891961901179361705013940335615885963426656020637928782013887626064663016950435074110972996167730853496381206116505484855526675251789986288662708611809250760479896657435411245723314846649612962671374072848659813783297000258707040035262771719857147666928677486940384102079293847167400527729882213699033781275588560838401608906370777084632537962802971058196387371205713770086518567228071302022968649315347809168278687123730816667784769552391142502960455631087304593888745375556758276512581122219678503526917023170903944349588203204331755420355615593513153056419898157254148146010525857104647413781177926982749093214534264348727221045704424381030565328086552138263794921436190888840064825509790309188351957319590103137039466441612401635225453768477250764360123588377140406246704952819153990657225866862168202801302500020411490900253742104701014741755953204481270823738927913997389893067691033609388810774638498853735968771945448159535441198129839726811822134988086382809590417087189061394840375028743473436262954372277082745352074767238740756290485138757332421134263739141297364866967545438218859251772233817095041291540398401952582776782723319682117988941083151886035179516417521534194642699648711979422155649179218454520741049932442458929200598392579563736587677126124872730702019066897762893758372282877036287456002202763887197882850007759461668777817866720285691908316411259375909413473306385578306943063678232677991545403315030598964267319382903542805905571179572492118988978587616871800579749080619343949328371740794570016768784397017928710124547858555740814403822235865778722867044053861213760732573254055740709492411327240056936041543687664548494895581868927657035086192720551956142204247542729614823956427107187851849911438653762516566173824338659206171236882822032400435438780615883992626934105342312996104998218374903581250594910963443766783624087093378214587797404869442115476806477866614579384144151021458617107683690192037234971190002837155259962646184516711275479037392315547373221650812606788055155363389612005553280796360381935742381356938812542681324758165889143981444441496927594393954139380007985432408732934312401757000794303453220449852864853388113247317207770821805518363024472710223359863459787687829506850170054337645000658985934584738294083962887526465258353472590077743426490358426309111759144725966898795558532101907189663509556038061016820543164669572451821173456109386620063182346084207749296191729488259814827674422804402441188755774940339266658257210378870280727871175685551823467440687881170754254250639611584843086005851434211518997086510249193438232088873749687231209684584610811698051985969686962424230082191421420961255895389805370635535236548101852548239986875491809888141993076653337318680131791838207309318618082708506547799496954783420685654164360459184219677139312910575285423452395177470139830920548865712371007574985205727915504083543714994467066177191546314930913161780961602870017210074764999977159531702556716658072976456922214509440150375707079994382498397766098626475247072786526912843100830895890849526353905858697340101106150760586071881456958245114851981010786670834223157726032962520543422822541656532983240102859335373104706988948438523424001496423991614722748738574842841770820320989398098333300271985841008564719866814743996256468757091459702545089413017634738495810863161309666515793127046503852981417739428261996783777738636126522852192223637516874119315765798343490154292238498085102690472282991810821841649619098054910061226980960834126248528873249374710989542843257981258346667749382799701186441014538563236373299542853282456867205232946481911091369477659860097522492653828590865527546925293524500370103189447945471291121351745098769846618471448528922392613697247990759263754560116205211369548901686028923300193824270709665786712322072078774772698469151193902088514000899052974873824816798270256255589462216698341879086914047262768415355302582732591698966795945674920785292267995057569415730459042258709779244923732454504162523815229768770717315361965150987114654741626276527113049896568243296888918801809505395180169086624801074687040408529880651486549311793670066689051744074332970626363794222172834014645201174014953965760128829368740067430782106754080512518671465617722709784033907572167769080080323083787385644136488060014692891828657596591562506611446735468880339178778547901787733422083269267991724098873528815568000971243561804689837075863798639021710723860349024931893407408412217420260010831992762814286890172118871367759312650254258911896644416184055875051156196319641776644392189827473279356792417397521088055207114567228557419459069791587931214125407131478890179233210244269483866799032976187800078181498022700966397044088888771316961881828564250847553780605868058554488378176586055542307778605447063623365602041701660323815088903385591324900723836844327286956347462298112526036119389940992324172838082708329890420547467523925580513447963073873382551388824814999516400056242686485660147783887975850205489012108513627121618884453586173344858690439249517988376343018103120956742799095880873977716984087851980706787976997586055660681602163959126366586154908503584044269802449027416198131180471811110933688828267698126608525900514188106261488680294277309597067391511034106324951639744472145248756072383632373969540495859978993271750103582341873269830389458235982517532139605880358544338552119071092666450258688435504607749764902495923803179235421699193726665371721665490170824921667426273209830072807405510434322814652593671677959749708989862932615719304225333715963353549598546898265212471823269044391208504267888838768219756619905318717822562522563396179091331524886094478602226239630095808734881240592336298298342601448560589668136135696812456093738566459936565914743249182208645744639336747288896354795791412084769243525049881282025439030826330951781947662047580282551022001610638426961154354159347083148824159684007709449942215821435966085057171462064393095919353818025024423290471997641383203672949064948517058611772184518539356370115247518809865146650639746006477206498430559056166098609686790130648129314081047405463666343853723804082739541344181018281769755119597836731180938611041008755730489402489070060917881303023331929832525150472529368119925001182113596180064360346222677176555442355032381762785682899187109488042878732950118544187693077090942150143257514612015821249190238471511184286981810449689728177382646547325037547750727289094871821345385965877227083489277850096520183096544996789335207701657178506363269408534928020425300661928406047314766703828031735128226213591271737008853719879149979131037628005615404955038295951498775858369886545641349296992527332252993001269891105589377532379866174250543531975885675307507387139955920073909809783514575192628737658794108973284062899274062881337693499745702569993596917721735394511990472225001473452955424146352401735934614449531132230540352164204813346795261735333708756165568335008174021864598109717769447160235402795878314536356249226045057886249437768416860757065873213766021835159769645897688456075332167119520030343217010936091717408076871650008646906015100471895966982144286432925576974634842420002893225536120019937387631601022117722924937516084362817095442776734679639045759134220214820293410147089430881078883586254201580771077897649465215290026703656870209671285372188348841332430186645564306423707854652934095975628305159001416625100246038283510761951878937329974279290019882285713515408513769056656230727799211166013940706339526397531098508497513394098815688982885163388894876847058576701644166641396070645921850786980066650028265732746090224908137010789249778410432286091226841294446589299640402582998268232756572105705174934410067926565950502433423586441052935127716447998280515770956827237344966461900426848853287548545249759980885430808625641207895217098688168106904478283716875213143784414574613285499556155493027332734456221825112047659313752195731222560568068246656696640862940431857012376532116095878737270902060580573416156305587675720114838988238324258905379506604842141193059271676453520826654410731473354894559467699642269204858987696640075347033366305561064447189342679319060501940962530314125789511773072069359859362388385416064928319886219473013373870331806477293347955664293245696821902206294968973168252193068473825986540153747172553612342472138077724843259730674001967941596751789029233409724606611761777588654509360279019791245079308473379007304828902410532077644524548223269858461296524944605807725165510799859240311813567868141961706761180291599411469769751341773990209851650550730462839738273723861536877564443525596670926636398651048171740979523293308695694812665022344380961057757620546783892678833481635370414853547391381773907186441026220551351656414610521949693633776619166905017882602355203843139496742630188119123826086819738623362216167635708703984001227634013764875190048278069144400689382652479211262414285922648940496270993242706145802638003347457679367546956229756031383205383420809766817648727917235074652276948582467433963169513274158487481047143495470156479734033535803114877507580282257475621781350481034878629963071168438791925889838300251128614567512186194321038664856482886400590906057189480275365767077749230752967843072815109468396441951511688862582364136832488553758036513280265491950032538951614409241855172159831845081024155549038689864071866066773384656440115474290836536982379435000547910532738721333939886263871953369921702816010026335937560452524983188850530320980553010754901579668357941716918543874155299347578355826410977607039702543553139712631862777388829576045029079678921253351333498636449687734419356092408045491796800856365824248329126994800614764802354145855797582345677020156186816263639279231797668848940673736889727047910268592010395756435658491122585008183432234101084132224994839628585480426498541654335980991568759812997409240329616011695101067193611737350645687888549167031645982132913886038579578108577155666175184183623211976282222519078871095773294567428975167196793260065952309019943540935073313727504838365964124161063550415222178943125849303586549108473865651695310524394662698605400335217676376368132753219787684299887790340930703393189766790509133279124260474625383644620501169785097808943834412181869004866379260769246462747471537923640910084125057565478613973073161520986735388008839792446170789002504102802361945694126291985526052094334714962285102455107436109549770984359109751439622101928905187012954186628847430375862536017171634950975632914147270172685090883839777307338847364437838977217023551196415959501546862344128025051027163466273436397132831223701383811569102330364902248230534279321701303703648117098071123564133866746776094023853105027636643205919917795749899166639649082416063612276136314096122484705177850009368422415586586627575270279477891288690069341568540435923748744103414603719836535079468427559225215411027331384494089422265657846962974915232775909651480421086006766393442070721122478870954092603881621557777656424678935523898256560822475045034014288825714871582568190537114913366120777298289787855552325727607069238769928319061040868997363193474763462920895801662706067988020606696067972731260829429414907743881568000391137176898207252327880596703811746356061526202449410157420221847566368736137814085688329778107450718169710557084528444849879911138116222111544305439912972259104541162252811977495835303155773632331875925972642236322234860494201214124454826825924851448663361705327639192988939843416983516378078230802369962395717970412049197486361096315110709820938602387866903967571200197234833452355406154940618284651038367151740253845937679271412483339624496667029629009143013996007610017912206557792909778420719508810294441151880526342781089044174148067269528760788303793060944806909220326213661102081052767730985735022237101143008222443585496178696915486291720454532063122053375285593888457973278217483806051735538331290224959940119873107511578684639464070318560280147275859980468054788364664529802988909992823752437857937702987725126313331226646681127713978964907179116856660866117492145595981945020563430996649543257927613537487430050108572298079757265011788762042485898816144846603455115310992448359280811569988137630385479825265045005862752376970852075036815655347947704754079718930641690152596431515535378732054181952574256218163470925424366143708844806899652814110473134041633306640257076009304085101858074547067740994125881299984501209088274560169376462258986053752930445845991296433581923460803540602787870857929295587484721035894535218791509206315048118683681844538792110561801813302458571864496957360121463828076120569552178462920063314969723590620098203313256686396444336959702762188589396730125959050821683380812730668756231112257494000173207021176173416437662129990309573289775402304458809571448444932263970076184712583014956905254041979151843463679387566464540417958363340347555140479059334639141125222803838146565951047245474741089929834663628548173086143915459158320986870732533754431320348120934623927044166028197763165964269063955582104262323666917416846855983743023164178584791584965397016013351526214865540528101930299872053381171735567844363808522103205306751429620496005100128713947012617245779054525623825642218549559564111640426551447382594255282449980293634899066851431798267955460769427608743477900934926390050680256743092058808923197281839483847520119952660326375346305419896659704055463424039345149500851028564838177513948758010287492065796712957992762035093926325795082887682554777972638490197109460256599752353197515475113513352692799431180586930612616119480840853649004518230828261516378770686146565338891211570633504395005729319227523803122466709713554894365754257089655476972794105231574580004480734042246141748621029209250638876922539010228664812574366897637434124166719833274499393290891263561870883845070788378810758464895129051051756502447071468527355569820275876308952632197910486869183690384850803934834077690327388991537134485189569340989102688346833505661188963851859998697763315394764240467731988578878055888978682256752991952876907897783338169727515161443549649901506122230155995504529518803497412342207644594086462634809728207478682528644461326748051256329206027513131634688954771456161290324531935904330128244056271408964368283673204365515178683160210866385837887942544759000659563696784089168734955169266010145357160040988148148077801255220408210096914419959673593736557351250163503226188042278051920919788988348634670191766787031697673616730354388769488839179020884939384631443601818542875593711905212315947168504884515212756796313698132107025244803428976737189945867670724014286573376201121586578294160644996877531224715193433784798980056792322188788819689817471995953097353318316906515016978805533664489664237486617903364448770069551140149811424383890304679696644135766638503907005775613081056326262376125396805383901781612109329726463164479843038017593597725413228555070054962447907089595201124923677981200560612246688143609905150849445874192556590115411708477096060940032168258270451237384827619648142272649916701578687794169306898166230048708528161882681992033274180499999564920094302536125977785914382529235305250667527726691688737404488909070885695629053795950906082444820540129100118830840980559848452194430886102679417265888636219472452090806768938273240817430246057854939065371246668215661040043053799574749073313614374264330937734183965215212800537394115282165743625159621875702987765575182590555953339393146487356258660264391566600330490556144340203162314825855050917831211828559945224287040787675986752497814087989058270392303323888544489431735682731969947706256785360402210440194242413699021412858894774083806124645466925762788087521218800764951070875856562788001199090766997247606792521003164815827515506628516472043857282673439197219945947562175026242199477904172258716801547450883223981366786965561390784842740885955731077680019206718542992235304966567904032923745264438599556173726522437203874128687098731380908872116984470542036321179307796601298754585517040093961992167321773733553336508195547253623820148236117954743046743428986875128904040556113229056948538706638942806051324730704520487033005782785726758126703499168911704858746854993685637504714999992095986780235364724517364978511321270369711471519430765670400724423867897821037785616029659473442432590968431167557931146872329893290109689338579920486640354665867172922805035235430122408662954804182473303930073975884548921709449996040067569727165803305143279511333396408630290060281851550427871900040104772206394623706259251901202173839039324343376302096650822144804910256142544365292251596581951811523690165103700875153494348484205009054640550963270299671532434901835668834863444847409519697654973484876361892905012747502581020075947645328665251278116202387041027628628263381480146529218609645117147129154392437607007315168257277602865087072176190938207660080839993759358769613223224844874072075408189518162232987739550597013189266511467794426858080779490288116793693235964257890909904254827522555756051163827783397329502963643707362869787728111948292331561296092351401885978414982937997164807285135200614875010618574767197173100577438766922861331131015878886420678380236173182267865410547227388131876407526789480834645437617959996158054297515665052681036378454153270393838751610015395531774908442099776719190267008172445406344460792418879732285559052410368380829790326681491596028842421929521012157795650853374370479563864600345507233223923606058567342286136989855122519147475834142515147315358896110263182800436937241211561300617562371449948302313148303167491096599275393694633864111282993507170749261581792690768665307881166364016585818664306639251471259189385011851652334039334549738813039015576164850883266081875931960420867221060014320473272099456203474919632177287844022467604523673044634458750363290903373490045512405926991982552133411050719945469477203703698995329344701722325583091796227173279698686463074698906312918642363645661306913083095096872481881564967846014929190984206390209266054472224228234596845208223743415602020871300273671782625211206093588422600169591854244724225887008205352564447259414725797879803638816635931011019462922714145310628507354775144886596000140619992464272439732237911140405970857208421280218775146134472260142089866531541597132980959420411298217971514492800281627118861748724869372078776351372023537699881795703205083584151450287936535240772512932122065335773342908635235300150891416066896414824931136385427941081444041782291241822555842414783575791096340823777721023726447913407096266017895779888164339932013709997391040997833954978507052917577840916603071861418475763709940134702087677252755304096195847333874422308140037194253847603578507038214915649268096734464418922736641899539457988404805905075240403131515745659494664826884848918777854690005236183724646713512723822397459833018819414795992520648979013159355936629627178829214548605053593333531703779793419215343644783377103718240278854290515107512862141719798429914689289419299002433491723757520398887526281479464421467315657481548076487001545127997462036331911729290943009599793614536907952511417780151276635587763468494113935824562322717532020132802913494209726122720315675119485876320656833237600878417880722676471391479106313529413172092930453367403622344132649204574406087531987766096195973343619020813177150725615411525867794406022330527988426711648988003233534641358065490273531019310998107737308417179101066838641746662026320020431324745231690179625581941935394478499871644009063976250687992961114519441258307052696852578297680311377457900422661575591495113892727780161835644858115397624430634825484220089529408984428848939895304737093067510791721960728176468280200360937717176357378581088402671970270651949673662152287513819367995998644031508431949421355171166221253829950163038721064073432195830450256781312356699143169913091240781658446774271632050949916130480382122240322085894118532078004391482085429176956753769480740216069319524474580710946813237165956197654710929291299634439926110946405338728913156528544427901120417111340396912149662402071782694871929408815084438052714951786631967450600339773967382572611292096543667966647717947944537533286149353366171290468261917165308351251466028713660675837289005766055806098804206705306672913761918844158188992470928150738435909233189575822094134882923904241441595301159716687028671867857047787668392292809287128278486425768128606894404270320699684941327244110126159859081021416118271695078506166017531096634894236708965541936446279599572097520750002239905310850175826920177759339114450676843001339975079546739194057832883139153062939094552297985454489210116870893542503653120477000339388864780131760606461829509687951100107322512299008540838578540648424387713128443491744023819481259002725779699605110791858681865663721745919062102012465565986887370389364101740089019743730442398067384415071256642472060821901582366705821343155314237816530156524266202883252785450161229289258855922550891609852201261243300322989657183765798483564833012957688891884313243376878281977123044628429665588089710829426138467070017122885917660403060302828579851878804556300988088155291348587552959849748028115717658653260467713223986347342577176140536732816318725068979900847523632375411729887512659676406567560132071494771434617101878627883599654373544953680894701787353281224088262640601917067899307153002815110618850204153705824609471117388704992945144125073895668295490100390660637014060644517154316869150158751652310829705559961810149906866890352905708390891262276298359825788759767614233853020527130578275434431416416645002294854497935178628140563866786059364021951645505315411975679991299060417287687389507384102714063772167410108921478870101081110265367308508107646903299307118398611919901108937112647571842179565641109144307915020269064109968354960290753578657721810893438695235386979260975703054730978054959055819782996699148979949324709277330002112341063869689716298022119617496971215500794648470457976261655097437058907410178458801232240041838277372602082758086640725415515664787243553768087236689842875240911458694771406444883348529446263735322157679589513898562738332242602962947436155731868561848206143097739178225232259018907121012893451047214261412251531355991204372550452530637702623834336444040603266494027853485700508719000332287954603259379970357260652939265616916315954366502483965222961096546050005568931354852687956720331508539910868997078273409451318594810436761043562217203952486030287189054038518669014783865539309656851521313510106807148380494596181792772069004351882021608445313307048020062390631947292759912572530334308791975117296616494664390296111986254447852649093465549385950917242689279709314640490294576561641923908296371464431983470795646163021405914303812667800339457111182533784393566855671954737511935866008389531611296013484471308178271808335218053922394245586666961851254580738406071207605981234050361944598240488072144219533721555057185935164770438585678839246182295981857984901585114056032795962685075919369361537048451124819854174703487329597757071000442888792497460595178548838615975879682594643100014550388184316462519431033898912683987637823722974745640735196921124587317996871029587062481567086657302573611209074527148193621647957106397850659575450266684009837986635889175683009394066884524272864983208752975238822487665402743746031495109589290833989775486626388424891640983025314985676163360761245468007241796502278620723996458828716162893594129373234531261228043162482375133449486101416657065090314752547634497985610464336072050323751204295908137199206730255415522444893768263177442135956007943330989829769746582169874079902238267110908115933874147625188030352203668328618901806552000105217493615104096548297729999798228845473673250554354274605665254699226134206252424564510579278831244380425234772223038795176616171641924510441689827901878049947204560725359540546937475980732634276013354856797592296754955220674122063734018665634741285040827610538327269950922889381587944197648825213173037726000474069828054307892295199619783846709775186230102086253294573277144880990113577140952121268783729446194994362564652109033471089620472498005152394114865810436582479092106068691360381078644332219123800744465218599131515217476756986553771457767949162285678462769985160928858933032959107438559610920342659959841747536802440020760613715522681132138914600879200411181780000265280255131560090471852653276093443840449674493029002394474703001820757043621197035306926824193572727362689995596739376746846768173291531030366505967452457454095240661512639810130815705036060675403832749209250812719951123178121993264194498820244835059520676086691829903632113878032799725373166219256218118496933477390326439456800995306495134188808694730040980078694580196546867714490716283368152448530623370798933686768659471703752485672165136873627001999712422856844239220808039772102368780673310526098829838552308530453787689474305162396828175723096877858046251185926533076989543276788510541191936630532220356323806073573974889628663359644960313478135707034791317269993629936528690404844386345618162723234325391533212776407299345467193533841220703512416675004692812099759793844760298494704270461737008019967343339121357970230730762306697472222422088609493581663230038387583753826780726525293090867195460860398474371280194974055960076104465386133731569236592997579802515754979216658148039775983844266205006680906244755379025493442938830705387226722131523022668508512210163321990704374506728229774771042373885824510152466623801558427164211016534947127431875465692976227269298217236473246863089259903201299553876875301358746379629922483923719649371261068413110973959451142926569556120226874806001494277655020461983094100118400717399947719541463874107440037185987871779739001285688219921084542710639009217469775362723706669541836967711792014320135493076555450821453619930283275562187828448788066728719435306457776666806385863592307387136294269165066847092300463030659693907603927653780463123699054457467345600542450678204847784397998165157093907944956091426820102369307674129071949056901862705409053325609928032439274873623248147445906519352968380920036057766470369591196839690073466834053896695338096005440308500090244711147252092487813642139456719348823400262529751970981082953870539573683730065547597963913779675259452697569696926184154682921219052940970095212518363980098050624771967507929584995165385690155298268726276348823394622444063758021600220960072869002377262527184559435605367907313681187505210651527157446451439677343081810523389921323654754438045157002390824111250457856316823670064089855314470786073326678571039455509324686232685180950118856456302273729254426521283518554013802586238949667745227065029543708892423613153157963546359875769500419052959778989924006946773022561750453104252753632628843386804788808916714350008480954121952306577611069741915591645755355612356476709554526682302976893675467535762712885685081210718750635516114392495335016558388824960240436529697238019217642261710909707917491067319660796789182312873252097206076179043975750245417546580014654536328004236737943247627285223180474854994197572146141169598624744191287839477204485003467005000341732827868949105016544986707928052269095424474790663215081991100430286109659623357256895039785542659287885379482075195186436574361484776016115325280252962310598697574555640877268737892930447112666997485721859413089876971882949849394293888037142255972978560206040560134599171836095389187638289581459866744630930064727214375146462820659459104734451088493590715654724599276595524157290087426811299492842535103709551376691823047116815232295753109583621435547445484617469976614169265552458437243383266496023138429801423544517867571907103844332012583370579171826247975184229062895063094516819515418380135251435649759465801777704856417223330618124199547034707008188264822973133784642415355915952412389285035085918941588080546776797486931418818948375728932336218842812124150512486235679481490970922344903595325851098602589275270498455045861544088824670729284826323306295179784488910817152642840412583802629618751491211421987229754737660278281756357180526332622839815548907275494060446500909805913194865667315599271234581490957982127083496214620500311065023369063206077669466905543792002010069080805378074578715971208519392883957332733605406747956993616410437342688985043702429318880612079261057906726137439896587398833525158897641481226688605987330875051180269273912133198174767811219938597918764343314201867229109370499492496358180679569099916561976256432470362875007287664960305157761082318551185799292375749591612407071947093085258836155471426391338696145822183613032580106823166007679818945732795728394258944460271463596296877012756921216866153647219237611300845303066559323937199846953395095897439782830128373056173587709079987105833981579275334490751801574494830119697073435295251657251344875559989323929761422060234343371228418400320751754402496698189339401025182507241310152852828197853615445107642729743550626274795821999076217629021434461127138654239314471822971167919981174375748254137825504308020983388839413465279907366968064328620081401903981302895755831174569995971390321760281636228855442066452303196767546799612453919000507153559456820541678298888948412411845716950914572040159024820013790909998776503601735066407618033280504653158588015190622093994502815238583395757794243034963087644039946803093376123187305687312657015526573406426242613879446736923158877664105581796259908197937525722412571706470708659304634213797464442196593645191782705870042991095238589924941925515580548415228056500572285842118347456640205273772053109017098094273338909368437117787517216065245273859069561003061950229620584324940909402589440848247932109909400832112925119692438183741643340677796945247902142413131815827238948316906691206033709796379634960327086773299401258747309240676317175613449619128042412206747567255826805159518275145369654081209266947303570799061680124893292304034727128204795098305505116130003621842499238717924432183567711598977957750258054979383457696596928645743501096376784843641570177645967113417297241490371572949289548403735044960895888800386951330071107815830554480676025678954338037775355282588156599220362633418202019525031795076224490435283194704339272214824422226425179484170788555315673864251100489157497555021047620888831275239528144373216786765647300277930334472334670812731322926814223341242805766826242544425637743748915129960851908338693774792284219234653681974268269462834627280567904126300057205813184764957797873103453960486829700225555110913714195788516181151905745600454247495890909632065662121644752597677669062825953077661860196104594950526308837056170286041300015324492956707939702203982559050209728773572580397088881234223204741501355417888296837212885648420920833157517926070926673689690391093363547516031809043512647510413781083244097361792668804065704919438348588311069817127797212193744875613526257791168173544118829979263050938009358859542794066418963384399360358847787727183190517300636978324343472854910982447091548622817575593180720904343082353692940158829821173756509476254830179264051885248092660415926873782743369042941482935288506562724419094328380978889497281234599424425817626733547248345445888669990820368060976361938056251318750598016204911855878654786950912829625735453333317360330926089866121082736713399860518797609223071639533138041145219786364366677720419669260223439183616684583883068246675883958034607778922366591859834840243867376138573201443903288032654706614203352216912415708370783532295533630671466544623251514163114614679173268391962288284891254788127124000095698810766713649628649818605977874041032371544338799995529921653417400273281895395919220330897756734914325436245681452225407566805902516461441142512131891387296175606610862714623224493551509986260176011812271824592998725325009054077481649175611360875396817213773355630940593656145812756834450535678668876389775052510922778023355936140212859782536238438032046324145598285773698892100530196785053523800866327341046165154161922397118801604184582501347565109107754108773357339999388814379476640714769001557096947244275728193755032746317741882984378648296285775211214485273007465003985817892727013932389885082129067476285819457368542803943331304861404571042506424538799050448624395812768395451478381686892686315092900545551115409699723558535529168130650396168211485158015108756734789543868076525476513723389693371607387238267601640023692551683107137287577619195587761317242761169307415950117750889047561865533279079080800181276069450632777453661912078613045965963669973315816476022828397204381658859635388938763388256358863521873723970017432800103235331348722187867962395548238706089691356251541925846248459688338118296353957751880727911622555163314077227336108541371650311909134551569240161665968973349838562122666637219725032728199157393515691261648305040493615059696794752749435459946874318905372945180455787703029223354800939357401932255123675888777580024203869693652798631833974078492150785566931978404414607390297043734916709160363972905728193117753202764091896272560655917057578693228032337046735344114266521290795621759842009571537225342434541369628866529784526808363763877913459452764092411779632108820784150787534048871296979546357196813243129536356912746661088849893785912334559545584173267356849110153485382717239079892163841094923846075014146056599533192752541756730508019447735628062966812598252203122667124007261398696493093865441435562791463322233226892045387764072947479234615894708766916638126862065268028063927475564342612673211546143625517719765319667515752276670663475770634023054647412359671792958459442656750981734280686108952948362212249055893015793518625706745538026460647249614222002153184737044411591632080305894099202000938852858444394486048124288225603554632776907484577819922363461993348761765057518766298891780301392365548788364027742735602870837112879867246409265963952074095035924559438375359367033072676526301717507565971934100010914634415097483461678607752511962313508284314716095577784199512910759765708144889083300155755544545526394192098450812845441451589384210626500962996322922531442703747427644264662000407088455757327212167147610373339377404457445115097841744362329051283829282051214817616106349871321000616777634049996683002462587580016882964299251128941037460804869825798231610537222145247984456000950013666444279621641629364815732675886939870124480438965613295572838055356061095603079943492092607165394170360281253478006703361356634378417877733282365589396822865864911072595979690915703802327444808879855147248366541525955494751968041451986788058154606322246235971774284881954327254466751042136986847082023414603073778409156148979039534171764530427421446826167764646025597445433589478069716278433019727067912683503544622447412698629323776552848895919357402315749039809246032441531505531729184669347324918315957177413589421321136539749126046474950926569551133025443459864265729756879339993381450965229034223438282820404229274154800050354040611618426491447784965791138656063608499833028185606498859902899082130532132729999835254164018805784483063011953778030741722584435953459046896247387046093535682432949868293942298180896680061366436049215598112536543464160516266525252487004153576974198366195425640353281410031711513927456323791473999952451723350983311160757122352650244945831524487736942861393272318804861414327470606351536855538850731195973463574052996449316903580475831885847681914682550238270919301500339440325950032349888396364663653361819797530621533869786188597711570508569065116013274074196747763028833124424425609501183455235109613898900753426425305281872765100185634480487888503128643988111732062315796653745005515685350686741939828501303179054959605020428297461284458813060884019318577716972661268334219539186081967583612999196478612307949806687229267546965029383470705458131178038620775815924087370562413619126141734889515999209113198691789623260388450790772211020464301105180701267394821167389350579407265835624445800951134331827452196741807428293574672107576221834726769330445922920590092941622733015195685582615284044783720827134204795588378872629089769396563502828103113420040840784126042147375982016067629826722146313243135523579975404454887951038136523664096754938731346419051877069796533125388175943262052009187930649470045318234858381999067610264846730043423744509987699916884289783431229927882057413184012277114572634523817229410766437764410817583672647310119722993211351375506059833788300331434930016213035969135359746729927169299852349220697081224883697825181390291469349849675618819722420311712009278371083170772955502322135597752613820945744553448954660423652068014212460643731851899397472819853492559312017828581307166202255639196748444596931608774416863044334289213374766593463188064999653448325319821000209322671310338032882688639953779228625829419632260951341286494765985996087778733330897804254033362488333802388795943748019704524502980811745345994691599582786972508094157083283999534480321628239431860758896534491810946105881584011108251453828452879760332804472719120644661472174378571977035081062951645546311156355029051975396258251144286678303997636305621583040272986263333443795125009654895890459574059629052344215566637555946061261661119733148458706957364319104932045002907228114002485790343968932044517710352383436872143043083432466603064424371915066872176120082202445222094302705202549532471050557493722381043696213817763626869998215219262826860455528604725200911406197007034483886030885441896317398057465297901071548666288435317320746159273415019184591162359483626888022703861825473556995034579041852855168082595309185582223141250608198826081334030964250169352534415710136515657800280623336642892103230686851024347924704507517526751169645043488397459456572363097665179548185636574686333798835643692860795693103832475108881557804756672619446131963225493899476620420290573564124727077067082995638358700142026458203494166415265187453665116997165741896276516408906869022450877356434900048357773288910682996807676494097530503151642062986866085667613064805310719682177121365619965193472907959218984147353438113234942677876075850744506428772173990251938404974460144251903300391447477544531269036734535866796916971992255397513896621828864153273887891686830526888433977415994929409569366960642166910758746232723214218268605352540873018510953584436348271729939006941809590613165009969129895719320065223394167914876304947612335988940474973486596654807586330073263737741801169698773477053604174149692384175482506273043318325118878542818471976560302273162240158184918706746202736192491092011991217972934455994365414465677539308943039632921639796651413282280311169538399368106023546282335875275078249803806180007448512138062525080647941477633168732821907238934654571082663288907348752346165963580752776429274117298376786829837181710371210253966880014306925906045991667677721762120742537055061938685981319542702026402063969039071689721118052614442007515927934272274882632406644680700020540620562802765841948589123940021437204781494870890216525899503466826481293610599599500237601822005156758804170811693262646209954304899359045607130288100813586314985912848739844276173289468787810464332289870578781326940804275107563474183548362933290694594686328237753872203951842807167756343657611309983780821353376899813235441980437324997154903458723674266500248399413694371220179259103034072479979250059111619314790084524645781038324697401858659647867718781406358719027430879267702292221248629570938120419474132930689359268240063736567064619174320112240665929042611089774667166437026903106283129389673325213081598772172352897148647958303048047698225392537488611233377993091659966188489100411023715771981084275399697391312722279850646390996837432329603625864647127085394171258354267123753002563897295531280086931312325276902670854016025624222201490226617445285977561170958468789648822891796151750269683288912112059748196078537882310925030596957720393528881441597620761947253121132699183470566345944431040120915174055114817628668694064985735539414318870622373119536973987380183158964988845897453688010401593545977415994351998694271596182758188335991104679136313360054293052970921913018976836626070223084654260108131646634423458268234960458727787281250131777925171388009361419189536310025633472850524182404644454979210049959039694807932691270811795129327984557430547743852541293615814757291277588877185793876090714551391508877788243123510430625419450709183508148858514214285757909202711320015702499954320945160724201694688303131381372100099869160902205477316041781395891360068137502022310577611035736073634950342109067456181726553683939253793804127794919055111548613350347781268136564231319047800464200685722945712870062027831635878050116005467895543836457060515601587301822177447016811655160449511901646937355481161874074435912501287349097102826292691931718586128666022333364999239819298641201134911293609275507752845914750589330279968605974596275279132026005639558953709582634116035306358686894912551631430001493627597675478541681493337061218847469250178077685580456651133137027284301527029621177118037436926554136730107019177067508789003275316181912430184233284041872729052656726841418144128561576544182773900877756846730009372437842235408344335512655148892178971074723711614848370933451994972735500269849259443149069646412690658037111071476845823762358321272018839291257993938571102997468966887295098149469589595697072161367513287992847096440434287356535298659590790399711319951297834365547544375830004121387258898105208367025329656120743355730031371333329670979338821074157160367139026287129243226858787187882168049046783417711788837836537463057181678417581861420557022041844499755053717740480456771297715951699342414225541029975550042048513041561348061787972131009157943336873365474671761019619508869869690858692485231932482017662912131769841769670172445082038842729837351230291984639946699647490586856647917731198343034297301763064976117332183216512041682819499617014813285797427910457953292377112231302603843219483666245824832614481755337012291146230947241229913046534258840154833336809665082519028031716650001556365362397426911328480435411544687662869963753609173457494447981959597523877826542165444158187933741563010707561107149491742774673451573111954079323699258593235426278455032403284560512403330895746598006342184941753004956161331424730083334013368575136209890248152436353018529684020811651952282141226541124445083138512336479097966903768464559821943479967215539970666130485310250915672984431923234753612716913496190358047469400499203340241681049005092033009501085500035707089226558275174338958294592832821288338724332597595577589130031542461837518348159069547154173512899142825222808725873729282132903187135511540306919896108989695974666899800591302259600209146895948646506044152187839410990145653650716820506847153297306478860776807673198673454280293413002309404183725642150311386438599441936789784678009118355026996841658608121342631133870627242848464631926958010401654226127973868545482228980371184819757727267119101314836566527711952891339638245411700149716338062582203978834387388451801426846308238953005594363348971498009275920376674516762460376030367721810992764770764479463994464946888387612251627415415504685165010792714488374130368443312169071564356782046314399805918140519380853544092330128648881321068463996334059323520388941716394260936464974524485794860561619894325027269143811346603484770162767160308096753092100240170301889385350099120093139671847267625646940517244733060486735070306660196830272887448624043101537683241009098121049225065603362327690821774320294465553244789086869624286831242647111096417622548574682377917637914781675487849503027803410726033674241213269989237569216307450596144366442564183908281008740245774343056217739879146312385047499428569852333832191235940966596045890165843000185829224827877089932924741406194199139082548476960929912788273028094496110485041888202729076076858491550620773005934788453496347149929026940453638297937225209229407063899871527057582759833129633266667885388982421400207080540723061572184141997629520049492262958835448907939241603404928298095683451046535256181650142723502829900876771775401876618168898610749281268233808986685960778473421569577061820081939070244686121642925962275516940016484513707992368530740458340435027873829601697205987817820480550367913023043715472337719071410290903964646900627216366067730629001435969403953105704371588422787081620804994205130848093058840695171994357649772077508310929751561577765015639244711565784661812416159497316477551821426872644352266122159331460599168019314414851527999049323149553663357876901882537194406661504657992149541288341586246777466734753117961374968248670593693506654209676194822130586991120157012929002669696781176693681762137508810556243834862219017472271496057583173325516501281344182643875518872058517855291607454621025957799098693807793590245097919749800554167299556442752067376976405825578339781174574026362722987447543966660327565048604353534037518208091762645798898332969470867538562632550943189385899328662467959454073001068955005575090752520806775145304064842912018111906696064588347775266898594539860125775063678734097598789815255833559346403080137125508877409393024438535834103294919876287538187391076263913542929413009132932821810014828064733621567389114966979442694112510240989270907729356767148458036563775818847362726937117955637689614788642984074941222714491536153087991847126935988621743585514896543658646511917997159574083135087392501705333623500882400894369517741553764302723011560017040812399413755877794644159413199279696091951833594991078199643669010633523143854037117297642745340561115320802506970070092594897758548250454751888559706133900938549890626100293312651444485678351179134382448134638662375238989120068127310583693120018889960393847850632190294365881168902230567198461664019680025988137353443751980180258355802784584539541803461595664591899334477940179208820870518512138159716227909210303079041296439990600963692819127825964360047970897728700012312732421570193889695674126768793762347661096293536040747799141117907408503081395382104724943213555345583070126562085518747179202041739100210065878548534606060117556608421057741247987545921176079485149041477437952848288601693007017533218892124099536568864661664227587551387502745336199134330022507432876495342171707529848633507051188348572500787473744079301553477781241865496309495358377459380089409491424928801372678896360691510549272768867471161911143862935534364256875707190976864655471007070229938081225969424884772918161956712498436715183582970894250347046106376322863490628940795190801330898761572542049010919966640178035885884869255559952817615793173389077769766253283103936284719438241109907214354315131645511588470497075477908459837314027977680168066419623237627273279770123054377650328786739913285229999304901964112569100199039694655100817188124195200917100030240250702993966189426719028964854573892423279751890755103174364368371747486395695519597123135604121097990452882791799873397450247460187641876941718085855741078838124178000329623563718873589903877987197197597376320758986418403018840153080691163748325367102655651909906563934896917055595043657969996935990379053144090900280407955956647855785420875275621794175231469000226097227823296347552338712581322480354586183488073220422106581421752810335026747176100699266048530327728782961524686344036999958383178139386992441968225592691695281156047171971140024718070816913739427268279688598671648034874720444918178221384118812108311018212587661602999474076508405786116319669577714071725693374524535677620821493317524927023001444949655166135763707970462888518132979007158685739236654192225160069903913662410228666204465836009247230218664898977497788525283446591648297195962894961841171956997687992116159293827850180822889496741063380568652096294996053459585442315076416224405000882596590091169574597199760876926088874750928511984347276354057783790999032868191264181421244907293735658812194184691111855719561467253443675326970946928856953889577281816559837952546973818521934616765298252718418056328799867623749178656287529809434554928302044002555370669690610376156249846387635940941010564667870410573695898212286107720009085395750973498094835477810410854481077522787623293908703170397222593243279412540562868494248575821904714470786489412738569797772073318924165422335615412357242633464627614479723330689330814630630829127976527739703055221814215137794499417022087557039675171379520591174589155800603349600483276838742330918775547378950866532792784753048271083756710452517813047646715005420306762929789267801607824393914901368244874758329575108597473572136099386275448547215979591727414263515457664324055685345993050509460818693416201756448695737631944380654686554927692463183522982787157315956966195520700644244610689058277216925564280309360317943126009457806079081230435051887416953274443495725614563341304413840977233069652215715601734246925670570305287939619498023953934282810072609160030685483195461190224490829889163960408502652943468382386274085256855889100317670709775365171920117811537093344073388360540525340974475175925577434914223257779871146085323260782859147492239507052583093452710266939537827720098266264384042615424089168025881062302170944256475611822073507555371389740393287648343243940256044561354628194853720502932791656458954292148142948908150811823738903686020169570095874913709807476871638767895326782056495695927292112081117518555448362618942704196033955248397341946495942143956071795669507061114297275221402320026113752117581058417795258368696737683023792893874239596732212348117026989488894718999335342059911916938419636670742431309330478385673626745179434041368002708848674426795572620070793855945399250595374858526541274380770766509869889273036589353035050573249948694711960976248474385346858862910154624417306559863013687282786189417405791155582663377888337465732165619209445792403571080486479201079521831315903094131466924546987943787111328933738193880600284778121886252074226897336757391232659352304035321196109464528314910135040891957681529673024904568009443934278148617157689894232142774304067345003924236166183866723427258570479572428062616013753315412951267889594895548030243754747606223929883620392202228018127225722989161102437933123030205834487404166651268277672105873402964138605391281197537820123226801198877024371705175119140397542183703676169827534830844185696209431669906962916549317181438158542751978670363545888098093579835707032577324809197918919512636351206838237691314372277001186378922072695918500629355478557698305395300912068185190377747680331427713154459327849559649108454155733813898848925379388085405149588474929047816143379268785827759115786925374177467281538303825390648274186772548425887812522307065856850645609381911590262524235449946735342785417532956383863480548193112992427202043773832136433712810744400987403971189990677024755252406079388786058581001091977565099967255660462812723204990976540741691152038810029467907281987003525586524346212532042498975641818369578861698373146354768996819217108077912893385074725480803006022545480163925731224426201265129956964429033683190737872762438048239007514945725452264346882491135910003052173320377981025180541862912526958140997970059950670572244597821470427544834635568060368570996195962872459965245066196020083655636193766505756273194990802197333247037051259690360118528815264944050885146787123427958177917184326180599907001342900358610502759972122167031721546526801408540847720044561502272560230874935740663671341401625003250159096672688861427567065163060837955518290419855245016890196395160551758774781208447336815348455274652676264817473848902800027646482557627042314175787553006904453366646350809972704994791671285741162177196122137944676909939289395208524653172806193735171478028809914934896628461668267590407650111790839169957548496825979895248466404946051016120035598245611611056167151891947164649464526044603381771811345928755928943994994371706720348623440743552271494004200908459828519494814077937100064433407493885571440267831190914430168825255125541561903273248323670926387189598248297053122450966832924307954673942598667592018171953910573142834758550366922158372727017653633071435057107950504433695566318734127683935457011187797241627446144067274153889720028949577087391977538572840402851765482342162532475813684176513506909528898582855493018677067476731739124543562561717130944703693937836708935368254287905468541633145101690863142965202482992322907615584854719912133457716748388388801380983112623141581593989360985901539525099683355354800131876507931353279620301711885979298544771524829212178648237080776172400003329056583071547743324455124386923626711089037870356871463057899948697342716078369061368658895663229866317267186625246958412734602070053069983538852137528915865245143239100029226130539386558163624431375541524230769275260822509329866342208302473138148800871599315452059869777511790732416034209897886851143290970047950947248190989021184953562131393376556754967058443528975557180884217093547048720182883547447917036474333796955402665869490154122457053668962196279616856206448635767132109260125189864251088509617445994069450716674179076531985040052727198677460754954280602262721542366106270383780526079344045940485313887649044441063822230363777599654655592597917995182789172845863886700486701076487486304785641530313156450396612636474566424174756089009829386410960397630922899573003531774069013014862321823658257340265331232546649006142236103027917244719151597435967255476877574652922977209938187743498490308129088634238354035760722056400809101830526234725426391797134809055521180817731423656121418181250745998566503196484108009108040680447215775584015888062345846210016616560016169577944021156326067075516489074385409176525308292290686352817797183987822755356532660117140172362945186923942700400642985303385357668143254363780183340546918002687180322377869607128838806858416994360339826648240220739647249160474853875445724287827638116121875866512259125138857669946935666705605792886670283709357814863305193300019846844005012476749948611537241406121637859634811038579440978927025635810507542628215138779582745029674849104097559169125270194098897536493401716631372329452203601621629014585097776985362072368930021244864502170668171629303371911911528181105879598364842175806002561452996832147915999012767884539466431162808475474373055768738810976628076256958800895435784251147297711304079872561022588196815423732546765829736546914986203445645576244700474646273582110993549302177651248384412860014092122335654001556855315673928722480291826188360058777969262713083579481603641767537646275266915219898623205870367239485825443618048750300052943402583468175169010582310517222419485920406050870261125263578548693259791177470947155422414977660003428446515113871696423299780974735313866343052750449831804678551716589842261084381524975283229557940444333909571389875656764512242769045999289419613313528779350848258604793079637110311774146877414680674362321351069622959708478466797200584866701460537790938357491275178171628445058545105551632452402738082983506368394317511698129624065192341864883197665871608474263232508705234176800950402824596709818714081049653257184384330228250010758475790459212701072929021132795430609760321786608165360476935354635803156753543435714352759360443690201190645709933630030302810069890966556959653996361059134619892770973704976789840499435456566037604111044387582856798953525045660404824269679358999069184713824679935642340476704770725142027250520660745888203163269895453362558827336708712801571838693095039639410804759432697688467954895632691069305244544907533088740238917180825302812646807986363201875020877714772646362195992212838254700326496644764675702141706145215385251959199456926971336004391821471253356793608615459835204275087707562757241870249402771465181693410404846088222666389799900380998105033429438949111308848038620933539941618177489291561819484621297943114576561001766481404550626462847004437092245174059495868397615778038968860174602070426982578192185443294696918848464368996505008838477276904496553858957148685117031656000265762584553851635986083731119166977920910623410177763957014231144348461914143875950497969849775384633714702376763220020571406801751590041439820189766485385214350681552000321132631334472585230308066051351696033466821339393098928248570181352384905261169573160518591862278747962108723167859276063549296247903879590596114258396495940715230588179344837655581332360852524001279252065555541764682841659578128147589035348556273354141568114868458903495557471323424984377018022026786890562000681831172259161172235486559807639207126533035331698403736952753350041395345583548220543545538879494753661472304517441710922754379057523213462578116054376436408725369185224302756580338862089042748240204263872810033746264058569680751687383273814180805927596748215245485001809581200676094076245199568456857745671771866956774643919866606863507780034902688245696927638576107190034809647591500820879592970109199482858664539778818861474670922723452021566665681951597650030819943843453820969572996136982921499474734932510664473247136512207212510659097194858637015591729624700484960588277703152502353930364331322090800594911806094952315418032787170655343728240996921831537857066574244619884361739984448027164081563925091574640658125157919860611997323837582020352725936375031523559492949793774220671917196593479770845100477597302016762813570779735417960726091573385722360005470100969861987008041264011543677409134774645012393921121089849103026060621015239114301840944659533922119869780356252148538407048482853190623618389924857738090859109327117452561021211987355785205270532446956495878944921072217088868324980854889541552068959821663273776469044049796493356068992794490832554856523084558719123590295349405954220194665056881841470099722479070074368692034111126068876083821369273880305352032622807425032423888503333748437472352457985414137121616460133868962394694204858455305494588271854307509883220265139153226150686722933867584574298506411886078473775903478996470311563262941325586929169567358995834753356252914301039057570242944898809654809178126199740070636975661379638481024991101410539632063482262753985971165276724972437773456237203585467558080754636919127953694277111313725311965136935016453545096892047394032224038781761662827168221808950900733222905963111311298724861518337200604818461938681882910898029377024112939285180476787065471293356307791118998156470786064451355879341388609524905752756050543905977674598193905945012869752011742193981406204908540267781180929196680531506177201006930927408996392533263587593915786650717365094798858134183685817649216329226478880925575668892657178132267757360544446604596372990151622136634197576921473469559615830580008811080131908065117607654179645635104963791660379158320849484978634945930133276911201697105628742561082071652635499993194611650263631673348799110114435870885026348480365283560632334147598280650356727765889554988966119948614258088156022879765636057376203420679091511387359482692668453482770322179059884584782699513495720320976697674117725644211332064976082411194150562068187613266278907851773132839484039059041025950550133441390803800756887654475544398847532787946817924934149913312360671941532544947093450911007624114235205987452376735336895448107555915975516009151472139863091439687268074972131521813572755544510612142955432155395603085963328093205420443797992786948042105161889102605289485225793571293278933367083412799692876258747716508857700525927127335196035952188025223786553611004570948900018914093311503673693949834646010272032347434934095514799202682819849724384654822485075560015323338529041433930207288320790103774916840217496422719058718146913929791228746854112436720020501727108179415596671832472304946547443231772183455146211511950242029068877405339441993477043522236794467360484196060676560585763447964511062343137961785235392131773214058105621825161961757507527345805966753241993599070819936715811140688362404582606275915454362804482070421378769388975519269384116684494799699639767135952124484246932757025218692731850807788904266270999860834586069866810898061666481922490157544017594550179368428104602344902360890227601026725925596384205026250150979283218207045443458290821213073576644113012497768884922866263342894702452260028483043123042621231590291559019687972370239460031982707872408847219544882773934945071854159733104785122566285097834835410411203183039998389037886860202204623287743665043068859319732220757264242570764321725749183412752296569782309440254343399783108214620031616434849741151159599980953737185378029356256475955181533077668332271444452964997729792474086796367998042181983883316745778271740115500371483199352970764027182641484521094137357033703130136707111260738942469805273307015157235042858358600628468067993540338214296654433268578965830293158514195303595961393738009904070373739100413822865940223902580725342778155871469148160293203546842958711550344577613479347566506549239484882005635737144946727007635431335342391923899944036333945716412205512755837178800618862509769313022879162922859743956134007964581683383326749605644435918851768842529896532161816943396594542905622508779451857667291419895532986860749017494193944518424440793276555482748550442597827006854153850645620309764602989132494550138368485342723728439205588246171014825945964672955997368200555508036200355388800211287103978970668411744972893647093454008663035098963231549985294501097154578887486828872527316054468511038622143718606455339396851516161072304082980158363406950684474292266174055717349965178131532130235053971125986343799766972659524284893633946497269880152415791177497202528640550310438903806490702356627016326203445435656439119971422506591396544074588271754467906339701351039139627319355075468140951600216773235681298411209077434431072917376066354297911265996991895708337947701978596619134016385877082147713301061484539881023464942350805555408114692094730578674004301807042065178955093880258728598282629648765710928241592427625469730147112354587096334822544078626637463150779941102478549237618024354493940656024659849888039274186077046837432334246107762888542913608702998756546442093918376940518559549487654255644456872354639781981973835239799962661846645091141927627181724143639176851417043761735648277764839642477300754321520579573664588112332912867057255256309193859003120964658596103490951874134369897501925582778951978553608533581932293739908015245456451758196539536230856232882636082343944933607014970264012755209064098165691413947929924499743411150427944580713569604594861691896364959120229882922869289227035206553027763303062821460591936185071515818130764783951401306957034288647448056958397428954600439672194044684887078156386941534533524238738822038816538614412666649119639881701622394520507819966040264655235803117046585478102746459501488428620160120888338016134017681746766555919259034615338249961858150930184753963283941905322171877387891068750974459289391316685361891457298869545181233543004359515357841107373226219705028506964292485971316731417061910923161553526039112193887296793701108933984844414483842014679981576422860138343920189033664376556874410500228218008940782267106884648954929903673052039704899114306481223977670773389168783957892062488641191672160360197925487714104606829332384957849089763379056793231810518221927763440472228657395592241005182580941201315262311190043547180347503928477688315373833906134600681730711961626019527350774519971615488141683382611794370635672925348320777467880788184802309039848890042287182792825480091924345311052400671407652953232689623783647458239784689326200349346202844240699228334144939002895791362849763279258029621602026425303932868543010665082769105748229091119574602997326527396299429335248231312584242987765491903238632460539556919820858902920365230326364499897958271055590406355548941666592951317959228325239569426871037930050418943520188778109140285389166582712467972030861290064120041964081503567969447025198137344242340295783577586319474172010073683608160501885890186600569929729982261886536029479364001200321890874010599897911248698726631621997359479493388461713020386090436013718999823678769111108917188971601836342647557900769273256382636080184940154870805852883613259109463057613963942822727663728522463751597281966040293146022141193453008729293347905818900762391722752750584031338620116457763870313679080147110012038405865688964665982414375361825063756233541983543822809131507617839504735164076461710064053652089297319594153880234221462778812214601362737641072935887449910857271580374232416707698675281493230849020798474292081517660717954291359022235340798001786650803294530033618279876788473366850417623716218143679088915285343451463008658968639199038973939492886728038434931426454200527052489835882828764010472995540989151223505529093476315973118962895131788724633522402378279052428292315393550152689486655773069891172530118988847448340829465119867561586224615001858789238970003881599479442315848593417719406714455018020371484503656523752038402005404056555453621707830458067414159388444224914057345619414575752965015271370107684964996506415741746344195300307885830650175909089803724513124185136293991958682420462298087942610091799490761610647586021769012109310509190872099873169793533187604630833979071851442731971963351270424670033701236985483708736849871316175563096818869961797970614528958289304757151557135506156917583096975187247961890816802048449786604616679163940134467839478766056544322530616589462772876552411192937698162749265936431807852793847946910284090260889342669736050145253579064285148869441194428531533530684964853764141942256913092308711390598323561863323827553169713459702130976390904625374088227843094410835812720660456862073911563884504853522917950119482061192064974127525092244416194728263237220752626046886293182604564201529123856432241868980104886960424340096160242573660669302242535183332860604005854257566980621339900887044219161360426417569167318241794461283248377044175291920894671742093597395725313704909406352993695751559642861088814299011430000502928306856993644244950221918020928138878778133861367938691043539682372042857650809239663687459857367290648567961607381351942029969233104340268774605749148293337651039931268756643742979104194381732452980070387593850624291982757419177663614765902923680909013390793718356704502421757552226157932022419953320105625964969158274034737369661628054505183092363153942412640738724185526378654122889797874875854536483611223279532707069468590526899256303064448280751409986019689398786243180790690129243560040442135273020746262622935155924316811629158079203352922838645856502269920162442390749610340529760083970011786093750516111366715354402778629213756930910169215156795014694877104755031002512805860064338127342716984063304078684037629316827578535820709361649643914277148120996617896114601337065169328660802448730903624032650021484964363360655308773976690948855702961957140654213856154519686083872507654601142923927938316227742284540959546987130619125308890460295607207585914072016901622842812555156366502070972011578942119382413662621762446084042874027533890181841475260817077360145716343960595731384337213746688929276920257075321110410370608468952422839251886922675101262824324578492620672471130831619827208257530285948944829629845204416961559064513434513111973873822184788280427176251385390771076465818615288711515825530604354753484908562820451933006105132354485172489015171011941543735593713065396427062510655263130481014776192323352275743166019746032990733695025435935579608004080545435474561693218596875820247837580247413238852125005950116647958153548752248423103572014347911728325915069769700027132530372696441169997331140228345783008959190690374035580629797987534765558371243430224709384708198895643665229945400098011281759677121244948872743963838498978881183182693120784945978355056383379330245059437040943163194983855612511193260046888132147851454045295550754441418729247704592287615445439899459941477820540606961204665769404225775008309888797752904892592222165074086746173006082004160151148796624883042745884984983840497098241594451367011438731822820708694234435050609599270544713891242209124472370654060712299717429441841142007200132868701327558129432775908463225780800196456508400172145246846545426712047057604894318794328331711753551863290428127804690559035557387410898210446077166953433561226070713353647217370651251537747691431584809260068280531399778144741764841489881774040044001003971899003808816634365285483699421616928505393086834279764584586671827075814472512223991062704730551436895966595007038225730155821784725900123917280225392544322887013903233703968940077130507137828534107955914647575979831383217669803737450549179677074136004953000893838182564959377079998904623039707376570734930418673682420556233562509638892216057492671179573064272016362826948808683327792152962258460673489886832056238043782508222921245437840923171383230909463579088069681789174616423687888578796633045519059487287363677576449965317979141581656807132592849863940718966810718231274777710843506862528341600900653020591187139525089985904623012165899467410477898593915436277920189267318069608670976444837568701649987972105964328227482554563730073213979786646003449427815141788622052186083412570180395934610536873968401123228410446238345395624749726106200468471855218939321122964114493190013741257211912474140336047892241250796953503478605492314911443266586184306227613314123838910767844934230065315017050285375048580153902165665999737075127169172793814678315975482957540508035217282648058670210817850454467973926561371042652832715143283918765200052710762663345199129432438447739697966689032873687738298166773228720674656212738213334858700248082144743429207130352038312876073754147786833707750653246296851330522793304165363187598620963535731885762197174654934794549173744084267308292271562541192233954531170754088813425052401386061132292043838887365120862379154779729869793221924363415085120804902274070410356723827995439494459623866653566227645381492069966269423431848346709756463373422804547601572173877664910422642640664897240730760837805732962758277213978921295194536170716360397838887120267108695931588153321177280937760811624350125345406737469465377079010722610727912403472049343059651105010399745932731285990971473381993331754007570881508363361723041676847997848982994661981202068211815900783834656113754901534869700921173150425864226428430988113765113246024673527309244805838426217471064089401442480304983657800604660174948089284133589958874044264784733857717508956305515850879216544918799541242184939061649695077887260291767774220376504724169637776859893796960157427802443023237849733719169614826455596433547242316832643792358529032001576778372436287832198704272354302495230005266091063757932044494332071506178072398470936235105583484611572235321861332406252032992348395526833250035882376872624070737144018578907818471831321718473452293437697675587537872999489835331069609897354814034204102875167063444546590811159197051050514718585906303815996600658758156191904242663817442769560800258901749984520142854606411463914466909228338558785329968945053412006257629863978212304929943073159211537162088543583890637859101521423243287495574090619963543161225113267720414524228983157617997919511428726630925271897362470905330328553801015927206004262067726006518858307575067081753451153169534440750818083441058716195002740949859350868436644296341466208956862817266512732994811937987787869433138579044496184276229510460489952868520818239441939447493350916804941761849189228708802840872734673006451650412038711070365807363897452035125659630089070703900851241548763821841392513177932863273984620097756152475034371825096267412810059918353707715267827303369403541471725643554973919287384119906784666979781123753786337993892506069474167316307583018746570359895932983142749653787315506285434292426445399564030019784342359802548854949231026753577738978669100698942406727843724108014144317927713251220540187357233764624083832040295993881927543997286740898302913771639146100793436267298208332394443843999185114838414293287535790476856840801882733479846529879491151032845310097095271161806416931852543393522206147183932846078267681783529123898121920894369436659141212468517189056900305341953512168098816644670004354087495026126570617010599049195587343929914165597039248300538704716290641145942124107565622908887477998965321486907572071018479799958702677176473207798860484736711494250889292523121509149428215412429141999065251526416252986315740160291148265138711337991637769998239888642685660776045486411910344818373340365117547105087908063065438361900748373061967224578069573987902902141027079844133661108080664804228217673726996388269844015364078211610238132939415255150646492197268973263715831667291321119824266168360143692516560106887941105497398303150778601772602443655966578287705136307556525029005114345066301440379148405725719698841551127189657505654954152866623761736111750661737464132050976667000844827872873457443691783969857898761225140844140718452217850058335666029048645936259622716346929669657842551018848447732383181712556130265286095234066963550475705336461667831136261880839225409709406536726062409956158315771914680117270254877379128901932707729370692699185689647194795492347816013215114172298973120140327635851135680548555076145123639696593361787582445707465718904676834279653076024017715315879197515661118529519172819302208062829810869313419964797966882151210735301533387657670323337029135810949140356326480142771304739519328080171219858029549498942759510558075251663475777530537479001435546330150546070553348201343878326011789925141833665598189914849659636733613994906963368363845199618348407842069622687068400576403431613553118188567842711384999933507642489121140136199455492143554436917867121994773961467585130204082048774508519526870652793554738787237018343538604605708355228705772684914720510759203568508991320872884564303786955680002276598210857638564215907223541753206902534173030954925395387247341826580729428882862082025076822177347261582901965572581521280264463657259711293717353796008727095906350420536578967138836611233972185927890320679268022305091186295870857502968757257939269025269367836845350002796673525088016452652552636833502381816867192120497978186000684720350620810051609622427049348117840243178360933587660083948481457221927460815934954758781514172425970802002743777565440459819059023182687948218912502739994087564280864787189870170454448364306423475472568155831077688215578905901015384697188016086010692598630628136198165749969485259754066928382721492272725645101296503233604149445071239256327413641746808329663542766393424325358762728738511908952077548098860798350501896097084723590972488393648016291041328575102785162641461794511866167756207948671520391158740004461524948429425141069687442970372163693077475759621584290401600582849734150119206628832440012339401259420129130837018857099163275134560902181627596667527354800556189310431839686344602325656998930096546700333636175805832610857575558005149531101099973385032605015984033752917382745608729494904729269075596422315055734025054606073951352321555959670343637058258923899047492672838189432307356411709646305744316012011893246716314704175498549733375991745311793742324879421625700457716808155696116755291704439207525620191028984951898642287193845140250651122813566368972143561091312618493528214683732822894107467523659388420588348065264920872217792320940378573387611244030226560984441858505718168822806653373925400258448424418235727599269775788778785449636973308799196353117884601182281253568435091384597134065272700815297444838244697878592555198228507527324998487440829972618430310615126853080771963002450160507185390932395108434493930671997377138784781141522476770870042804308636387102674254755031371584909715733910235588828199876136114052442605939266534605294220736824658074870379925825850880212155811329841712252560371762257427620067926373057373507748928445413704661212585065323615339115712380983959348705120374456964553889879663610642519550187513410624693166541180376167593472312514080532359000285441150005750187109024806300051618443649176662987105770470865474997890233464008831600307884824924761577732689214123040778366570119183788907091616638126787987522355952779989618320755971040558593561095075456361283351299295357502318988266122242433780697162954441713788700933858376432376487218578124391332101184057975034536159656212858362148064862174148660844111946632237322263588291468551436608710514594532528842127678024261615797636931154829671241267328574324158250184337374531139182753854423183849879835997522614538025138722373781109309495449674805776933719913186779416727487065814506927127825005067874242471724420910586158094663266836772301032225145850415678282873935837610641164361519501829818017583934403274108327239129047747833262512768903700637779451904668180963856647086902058198307372377273774094770019618797304023336595898892430693805900469335559965901853116223068166285407079439489174554802604494703459891482599472698705187984521839694612247361730077681722307018351354105864558509998056527457419671179988144706658244280645667811523961253019515098458553613663063850103463630669649848004611931222825305495779275649558452143715255980898810269929448737755249129984112390251055158807164153311329391603860273029797751271807896273580782373157579895777863947998042324481121862120893010835469932921837313117994041614947851005668060149595562041429762043782092805598008596500298140275274645943430904083559736326062652931224441167943566015111029761749435998888275227783035683329443767534259471516238248884334295089623409529549635218403777627009976887985673911183306256150716038012876655270189912195621220356054498193704446663982349863126356483410816390932371766365366125768577067034561269821050992755597221476618052198071951986705442784601446694891983424397880263361808482220226646366358008009421376652303615679810332928734771210835019104984198824367964928855640809987271017811219229296456444170007768291042577465158826927044525689871348209816671690759303930269326232279451491392163352270604955418035956111669472310053029297724151281086721543258210671765132277624917434597163828083690147618755567993542137241479553211850114955946500053042310343195252872590780252974659619655263257584861600814258808358995210701058670736690090934757659545533261481365074480719245004460500332583639916321280543705541859795927014250803805278191647119240104918789546292035099535338573017878302284311751241414044164901575223713781378936756636719313035168514436663548743757094180761531611183427434836118358679559717045197908602935171402676047810131876939642538658054575338241422709232961676320541472663810381692925324486286736885438729972715952878628155134790564983434342568304435562365727352823343031181898311246418769102609576181563343611299975940777294249827315970681664931179086289457340349362386835303531180296966671820341153896293175773294612883332889259251636726902836824311116567838201324431352149219918620737183448372584629552012709109772389504941006397289751347238552006089271588365402720786578853115999200124558014610095355527887458734538618269246251902126355613968949969004348730546338073572668218048197028575063217687929898942945279679196044504578667795767578691791804488757901266078725665633036280925767892754225393922296938909135139144864739325202534175195849330047383016579646672171624906467071595237663740693207710721886164069622057102589090790415717871288444000601523015744079632950196885271717851535901894450891870514683432606493985626826803456125866224562285183231551668255756787080679280364584659361380215854199161063191121993426769365116241520749838473750513342312723795179929978512424699157130994531526568630951842604904092821196992035804264946587573008322131611370155340351450554336325535783867276992863568695643030363262489847841973324692904503806933760130896682005239734554581557005992442181160059477789484381015414796584579438252819857532009889209843230675390287706796578674596791246473595963569947720204012689095927319703080602778428393695116250354388386741888246371572960632377106259186663081496705345300875775692992850146386839504919406077367287507088217296051944575489379666821924207483006023152732297837418644350313400916731478656315319875287704137754260205997903045128425133983187079011217126904621913134757162384053184510997317118351548492506281913158160111938083664657881169282491339791588846265373813942595485449482023977972671414982375336249219426617472887087546973248140411554312285596454314595075095224410589035500611527330965613236533217829349938108426321647217680098238960753354361438946146754086368532864962752603882521030364129090615200102039874213797576161640329989482406740912429684666925903221661419649913377773347144568221323536406195357640034218594845698006604260002007336650243304758495621654180537586390492371530202711526699387138675383053949190819574182386171899326529794705404646317025688549839118075178642691517420137988461785679215310301910488328598695800360049381204146297222245961424426050957372186557051372088852030036608876694579957061262658942849596525183818777037211306811298863229552313217107158574914328711310332758070810272628972222624153852491624714258400810224101665790281557455065768089706877027456637087950714338918185770943623342497608720772420619255030411407694185817917258603627734505549648479639285934314316036818391807959185469223864694907338985456698802392785459842537502079668139368319436560705331331600322634016077757561937453103796022603408082471280306819504014592880796721880078256595046344292126592103660517993369844528984072386736446150472290450380515786540169497025002244618818050460058059831405991703102444024472740954353343521998136325896990049730331117599212421021087505649568551457443488365311823123934972510669559112572467601845273639682558979243948488563144600152185204875161908348551145025117732821285848396890554639687339409878324017755982516382778243169969959154224689654160539117247482758737673925538715683829869512248136688386822850460140866916773666680284718188288180368798265994829339784604428983752892512500543482713277908935766408758484992795864591185055565160804885289579855218458399383444264483906023132331997354422259776503671317198029854317345799494021684126427115817231306264808998208821220279253221680873857301375787400285597068467173557803827502338730432909282513931027351390802351468733452189546602891532602100180266222120809845155706395961927957905444475613040474332926446531672230240313999957007450142100234219297976125010687131561536195657991290135414813220455407745786246777035439570137735600564705274707574889033426059432352932284849941826550516607647418926026204342408307423716129377100536038782940986940389088899561899830565566624159270071780312504954270295060509965820943542280730136458371121488701129519909835440213558831016350552918843008043686390339671781752267622367064093225731149602565090593388652770667385122457344031246220506159618547969246122572193692839391004731517374851879775509983193088162808364867483615755462848864079884234420456024232226732326164411261586662657121521083511206602674551329368380361122670097353055677387540022476541987069276993000659224658859666916167658855088220259222381291124171341391690484525938592240055097634118603805785490831963376932072574051067597514389591198538526576903673852683226596284803330411243623483695060763231248340846335897275009164963794972041992912931178663425258282724667254411819391068879127610686927752690482037706305828838003711719543993421477058305406209438340368780361256459846149725150443079850849967514600574187224903703124726387515131633955499748160373740675009170584421981284092812325142521649599691145501592765113598879487582663947575346577039537540349504915375517200070684070538745053411621898983087139363443942496170007312645484553851898463688849832498944395052644386778970237634326996071349812367246445094122469496730335265518627255431804925705493793855660753503153883407702252314098017221340962558505468626177148963526642824942438011192647705555163724652207324057980309007043518827188308260729209588901073743394467883089083562358926580688068866472722530975936864079122429555356566861679859341088216529055944339648243339997071284414517653110286534562792502730930871826428322408830198379228978867079445599138921081422811028239419104988393195774250133938406761019770487701807556061699250187983639275620754276429414378502618847363491856396063863169438854480984524793193582401440028756150826830518753285403510807926771308110249233841757814720240817355559517647154177726912275612103330039725460839821638016113315391073808551548660850226684972125921802548141518723659492106461248545170197391646590437980180311354667136598123444187707014022061538468580025749062145261754972636729668098888416663187055462479323695029245993448671389549066599856046927252818580012376903580375177105782471814401395842085827319159313400667858875688023675681248812921339463464098052301570305504128749471858924609119951967428076562175419305589915052976019718208440827471988587909225251115031426216682052241071939479937436973699779401440570778286499667544304312637061862209560581937732973638400180297931203933941446132710978646058048440952080662957260376403587397556849916664632095305064531187734897293998437472338714374101206478600245780888059499039864196144002016792457177946576097959298633678518909045484098710227480049564118436466273270848975473386622910312966651178851872929386622401564774087123000430991867918826541238089969383044836105444305813000157406258277310130394432892784395334206472827485381700527722304343795323681967910526395807602923783969804693132238362584142514364367729467051573474543450261034859731160803229946547396145736199911842378987073639627641239885151599375874214893007601194961961813623705370077754131095134686247083167701604639268728416324305295480318037792213692949314826244366945778209749437157655309389525239835876645479950112011428702038091174392746373582024281271229059243343827901115304968299958967411356208716787689643353414551243201845886414687404773653294343527399665873366764026131387571821525566230864426066521993716035510852590384945145256773320627837838173484631954287814333202031323508225523442137360665732244901253359601904079579345852277997985658770611907221253920648067916525847970171755242504217767760830121682201413817642323928317125106924141756160942716931618419743988793300146418090646933114708180374763234214472338021708796759746855880647674972599150714382130968221378632637069104402270355675666282454597475950507390421048923110997869607810612260928441896876847202042813083781423298659660291717773987971331692614899530818591024403458312319533716197898776802807160724386537319986646645071528743113514353067775007702133300068647137433750130290890985970869731249427987190280972922500464421452077081546678355068033377506207118745338885409724151391530332409517342608199998275143094550551051255973306181488671282819239670633289296433921718258808997922259624341128814330874405024095538450387052983278225224921470917050555714645435726375925022740791856017927521791138230984968710292460481091687990668258024494096279178649692504010713986353178735332893493747428349312139845674364584009425586953931618765651478136750701687358325761029286961300251274773288158847967674719270802669822382834154525896400973109994763928224273357046493459366125132567319103560126822027379809900697745691500643196428007921913528544414728973254214394785189209488995332439671107434073979784640517090917725238210522366027057016521289032733230591228632635028438392171309253115857585914941363904922046864995610353574584977251096752122557555474480397641135093469740735157605495161565212818712711836468260372580604872856291480755546059782632101280979742508877069363042102250634054549034300385840925482337721305975550560982910984353027527046718102046409471413753772921752459327899235800565103861134338330325539668935415797220153704610540163738882263606614119608904298966375311858890764032016861025944514384794050157673969704268084061456429398744972558736958452724519409614922160104090357802799668368324153788550198104404876156964169855040105451932745682357903273422689586319815559912024395224135343682361256825722079606239556213106363868767393083002506667240383791262862144436539299980519701988273238358226177837908928838651726100883370635731813241709569516496095920287061062050375486795841600138053736619385533465663904674219802091862629022439694595195041724108871807110420905108584349324913956538602731079096046830007990764737946230951387119490376699196912129401018248429549705372958579489111731262243507304286787359273386283344585268675598734187053607809146931669590096207286204332874399463148786300623099954245876465161941647364007327542588858915207895589160942116992861604828791108310884056194977189367784684498175135723350369202368107676523117623250643931999680660970887032413839400120059740411340198597357437363193945040480478545911209640525714139044398098231576386473828166641729730556570240433173349632978415480290612697471492251438110661841467898531735197760493514882693774846208372129105061939447298553704292911375954019131799884602285658998878577791626642330973604176718470051290050440912934605182636781903576073679642684854617409746024807411816379375255455699802954374077633461050309234297579941105088035098658977650228824757868344441693783214502874086874257985676295358144787216728823271279554423575861288373906532417769381030702743294675100397799270210610386637604153280325562058950611584098154256123356502382575039376983878379975053482416496285112776307528819032518892554130105947003504301979252432978497730846797915069799308800860845228109862845491893839772997877780839345074113232071569973629071311241973576745065792421979644561684800991632379189056986820653006111148436596251213370056858832407981127186148601769460889706079053181618563514021795700913771700364859586769513096977371308621080932117736873202831316812779092087792228159935837415549313200722163085221511120647629341106875912086624605590435974245419908711387913486416627971778653796488107045996603302492403956947286427579923920980962877261961477226023001686379123237610587586877559892822392630161412506456607693085426056098748018673285686477813811178654222015435085931768999412282383051185697456334276087945291500790964274474143310375632071695361694706087364353390170768445511839971746966895185932496049852454047788792662990198384912111519453479783722649660314415016435206984472737240952028408612957937352030085588098232729485376393438218462510180273615338360643197456995326575995563038531385867801197598927787390481322200561719615761036959479365116144611058364301132784494088615888729618499090704435202237566494531316250491342061091623786945455500306218200753132632664007601736258264952511086359668105695084387153907383692132900519781280074516448107783233513088354480202483623895795274135911355640225673921798316736204734281715555949528244784451662630375472482929364316941027515891986481237689808330770920657628096993021863666588111717801494444970727883493676115075147257467430374499557727727056016036328584928134641067003510768582039003471009815053553346239341457735744742639969042052712327430343343673946142752603661340640494309496241354556188304127614516658281274448169366303187715030860958759643296615451286975412403823308033621850308889009096696611806447424415616041269088123818629888584570133132732929739569171460762044750227300010037122034352362478896980333988037392280052901526239582163449096795699515233651222371171614362830291639616541446358699326598447222299914508528124406534648902085142349848527011295650112521643295624779865789698060908017491045057465038153207757818054410344769653975533872864403460071996658407800270989583752102988739697069479586856181445344214790324912961625668493203370435922147410717473833800826531814950725120556558883212001046546787332468633777203500569649580609821400583681606014075858409402054600874102748777162162737759217231253320403852343499461319742223272170169930347528583446651634971346124967584928963588775388720959130268096201442723053113115499381812529015330391499965227970606070790710140524634564919512332723622474093892961112335618847583763289229976897673409722822205858634624457614617111728318283511864165461247143441435178527869863916726384927183913105869075403699519665527863937676252341432701561859564213909311907619755368932463710320640977614444323527952070671394805998015342018911350352999802471083266822880998784745882071726588534454245457503840430534696853660926068938761570990202584470529810934200269715944945051924805185862203725016023031585370666878462566963444502554713784844071334540175587045293730670304608529653441325330764502366779385728796605924789764254597094152167867730975874062139856211443006961344786319931458530487538851568808231890444001735348155274418939620094347221588055192401245725635269212234086516744627911835987573346205035056417918677642577583248237807813533618215040675810175529910140239020528739148035429866797958998428848272128308405059274642409353867251739731486676085410115303982419047043617080901171220124957500441405906875066118420455470185796465645532347724504436845930918455069302006918155161126330544778265627113834209121465106156200343573586473811796325453147668726671270959782379707848400867890977804589200473759897319116355212134786979770805109291040304350656113245088843302799290298044894228473090738874159102641272505892389527482294667854694709213289774900911310291616218130938645983434049027414628957347460169880676111750568617895704894436147359117680424760110332888782023030321507872697850270570993310226010660812347220327850449136186387574326129679180545212676666880619991878815383846284030680645027799349183446183605200007273888237477598869047905377760837328491479309053854580345802836628473539861478219784441617214069954981736225876317366495515810342719886683968773168733463775887357272769836673597176705890622302152599689801547643050892722561408492212707214025382818972837416126248805377564355158498832453079429084505868544451482646526152074670441584027052862290150453371163679038493720956849357839274247566074332823984103452147493473007498425280205542311815937583751283477988736490879632979645032415763136099151595604524989497898594895531855770835111222158523353723985464683126323992080638191077043790471675357481439040921765980946379458063575904245626520351365481379515207097330727198354653074715763386515652389516231918457466947306975690811878184744607229281045491408234799904114127482539888962762475728383977872240528623989610417395478002084474905331310969134078105765610397756398081514459176813403698913326431803423287711383205790653182107679513828596843834370302826036804201642305425778822239233716304905830869346412001251147751328302354942490387166057724089480790875554297469684967791463106984069628852505777924452863551951544463487291938677586902298129122547209195356405632148479766052562367940795998202993595046984424308851209939809978406388942705465640190539736718958493797765566020182528144654167921005562698919494511262653651862525262903459063980907038114051661361679894539428099992248640381834164327797485332778393952717408821071014239934223150120417542425648817555119476459713100404795387674814514730633516169882252858809511646114058605194914120972345606756244703234614868185187617511455260421889157989118038095855757177287227209123684721857258095127597654713388835470253282728288163348095330761694888775876566072521253274794601807257676159956877798275477897977401060765153330461445365028011000791016848040603272671434288764747657849124120428264551974764093167173506566145239850150034925336780064415263667976991700610326969839716952157221846332962003508245248092616990594479051898236519151071696991941455544015991913128538529542828574018859641882656359960595888360249362026273320809779005675604835842865933408690006523524480285726592592649865423242197668512975798859376008569573623966831257959871473511471009755842861101418576399324684443081303157834186090413010101831219948734775103894032074543105992209308977199519843681670625901999127878975542488921066351481063956742404308996918134150201046483993368182756846636907887893459371526610752809586111419598172014285995280599546728186958885665495073714135270777395458046535878871614824257841626543696196519615369523793248693457413478615550974840691392071627281630810730451484245611308544993757314984466931560805707602931974556415163012141474627163522698682794996727621246670262541172579344962310969623524298492763612112987594578605031682786538246560189788065249658814572325129827487323736262443431395789237733924020056271385585124398146561563829379147020009324783734290789288717579269517458337426935065077345933062307801224478605305534220316769177801538334510800969552576284023077226555692122306673118312165686608947514203386764985590064946216533166415078525093914893426363991107730739404406404437110032422660554202399166008313957450468079366302556983970238399788907468441183277302820058243206898483670751884897679643099555908790929009368086826923037811145571686870136423851325557565620722596821710892082152436587503113469501044637133630550726478103318283227265444404999964821862209991708656027371172448832619027988686235872824853175969624938456080368796137590527560772877111433756888697994406941615186232779187033429754637574386906097660849977329844417507052352840803618369185956273600338593182862005816848213203896545899957964506352014263852091854248282177511608538371337539190148416626175310761734253608101850399812325824631816177652300291419130390829567451593196539948590069739957381934895765510770765103664324421800762226295361012356324112779230264896239671559539509674128976212524773637495830870718455540908289712525617218453639129644936635831112955981521204657902942516323835290309714725282045409731051150721674608313044249741674447271247069243703739991711723252381284536593036644606696400712463459089164065731246657842307685210544422938003426062510535880077514988017783487525924122758616432609214834162443252031798056062198673691722521913432686328703851728453204482882055084724429868357467731541145391530059811466370260589295963612327369248662920120359890475097286126299210859558813305152493818289977365928095577122549412583333674032740951799161322434545729832755267162645911724203345009324907499371573649533444183907942829821421514363759756354738846505392034525433325421450967251609646218966876893835288370810457741384781089418606788417008794411821338230101922902574677790986069263460448432701892176244032401199795258674439516099426402694699356399225874634627266183483826790376830775639483132934555039037892449608544790471832789374038672342375848975846512770572974544226787547254436705609954937356450362199163381210229568786138198644242049867516387067627726599400141451898990090540565973945524722031059725099670171894458145329526657160698167706989089478544105879251526528708881960429877607601171125855500120415070053204799542898198173178884748241231272800666639278280616881988720468230149101123860914855721258743316482963511748142387847673700283348551651255249580218731971550552002261770514896430605419001820608427383370968321853581991457585958209480680116341246447366540299707642645241834997983446124607494243652649263985143650676918442698315992960584056055501666932397221052807212535557774267916841413169478757566569700706344722725888943505443264568595872067637220637664983680560778700871083426224456803103826340304392184745678840137668736122049828500428424054498077368022314641782323523704064923296830422303615382670645294597070312317787706104507781263924499243966729186999464483337074713900677980602544116051563501883824579609310080933030414516774162800350179197680280586577633277732873781651111461549525033874401317227656967154258968526514646883392504266709823818109305598571389441419790330115333655720074737958978061441619208640531401233226933592739395341420315843696641745746537359572820509490982956552599239470255737442412360259905386834477427510948786647794738682492607877940388426019703468395390773272467956263083773731463772160667147771473356932840094826942118416784666003399603196789156812734831520522861572397929699808311058157829920745730438403659766452383572279348542334181161850875224582933695276609012655266212032705083861219731128735327872340666706628614159550770555561761067139866599688166878960119626090254796695759013043649937968981345550383858282733914199495967852554023606251578946448044163368694971875170736315168097917910869887162914183586290744583795190241342687500659368613722466435179344588249980198382067450454014874773433851690970155865565374482378934413843993203766068898361347888219485299376549920663974602810379062391392894803083830731373259033976891116446676348140117145421609946579440787576324818324646982434670159404846395693882771852592605027459846588977598948026820692185459762167471683852452494666625248449104531639964994944606017076710910512994959381228910354855759256702177712338726613114252140392141280941864949722951922954295257416230088062861426986507359968725228497991749267554158451933083820464148790949031746695822616630995116834515538477223450297056841906400861001485361365119436935841644954380744693752955450265598003194500120927270832431407688506653349137157931398384077064093496150351030526852921022184806816291030044255346296212687715219350591720577488582700924155315889203482093703525490304389423715166406008277891926037895436191424266474321686493128391901083566455441960674212828849035891783324837054602362094596810878936481506179991419927629181831897782574735252953520688851013548513881204411837353275565630703935498066774964370736130644839851459860833664901521045780925606848601752446582515148769209000528938671692223636086430629694277407979218273497754159541731820106520295670991606565547389071693576893157473700324822989723019252634142038811722864266521170103534172050945449981869337943819885907618138814660373326645350873139353344552058557192527506316624997733022214375142296741079878824751039757276524223342242533371064923516336339653708657331186714018412524837337872714129300408035335249665749055604422485404324863719544310135858783815062727549811110278543766294375302019002377453482035780105638065476880536189802441597006424740046616531934932264500006240100648557902397008940539013806591905540938783900756597780481130486300684342029540705290380107242423067455812829347222572161291413867556021110263375086526460100665023383383798161839024919581154825617474117015680998251193531981663105954481894289977048618852838275801681486705704081502064135330566728550337328152731265819133467317466398489307140706159007908957733994125976893040114630531304867588062063782031206441386182426277461413639838038014947145651917423688829572529573463410165590071431253213601185626407913414975045414487625881605501546502551486125102328033562869551541920237577168430402094799279252366065306897385651211410860695243486792623827299379556678499400074444612025356661472392798446577791574425511303017855484627443511734560795000974380244642245029840206349823050586967695437304847306976937456803831809083563041838029475591503032900498759934795727743103208735310703954082661574998737304152457199153684184436874876073198826338074689470627013385754784966448677576507487697787835459826196299994384124292071539193755215503942522221489096631708187496381670444032828922726071236746303940461633750463269323605659831832668779528818332325976137389636826011858743688592190999738410081516356792755165433870845687711917827393510035711842792547481482827158295852164976348508560915033024555319197991272551734079191836215766617396855357419165631827199721456995450778080102397172657236604462433131549468961242138520156475569422739992976365044135716911686008952068521855285523898053873889125732591357389408119301270222123063676765870006181460524312543508000490128497806221647307654840525862294118945011713188117369418750043785221859111309641256303594996018166867296393452954487232790879691181582320148890659044975801676805682453965423460265015407135166569178670212347128368203582923119516142991686584695725286734732555689452866370773623540565597126339883761517477140821400185184913329094524372313522207324296429876592255249188290098585617444795962332370863186707359281584758318547556608407087156339216640980797173838765798333610902759312084644129806264581805847530785260082297638329353836322417341720679110886922766100237081197475452422497213453579434973686375475806760214909744701189513085146648195181836718297294654603565580713095075489217756545087092853957805493186748413611927785200531636568024957120633001265024414428276980287796940926918914229063635446546245186505732307114314141371997203754414443701818854106602549965555456705589590787320701124316624232465519138795919828669199259691796788111066174246192705978257122615239554687494583763683596612026978398144639593590284495880314908244211265169873885442355877674743614576189329998248233603659977754317522063636894145894997734797206746494730209808751332204769700679533950739368933744997019032540708166015134948078424260671958281602740387457592555685324510298631221698724971885080668394345496807143094798239691509925265528330322993661867339700283853493453332335655338848856668825821205422542670351958050538159913230759475308087277636349367789790600584441128442983962680444090721479670887631994136721444743404169834734689106906574117108686235388949256671433602224211647924605561772021723323817461376480744792838438545610733732369332635055757199844651402316925203698642873238612450679964330459765668878825818930304776589015433458622499309477722671415537900082995154344106935957181767309456097696006221217535772383421050669243788754599511046739246990514278344211364422615002626563321023506296690635358311205225318085320596005338005735427875769348574283387982244777125015429352585426116488248095629431661483240154415593301729390353832825923139821404766944015164767118907538888874006266438752434948375707843658856927661110691559239765847927606936813422222568280103354795273987491647429107816124737418316453571858537810988566861390588224179731249275879319705676752163006838051539889613472770546743360944982565793283977574619775958408165582566390986517537275070799504316484819031013658312238402448070421658227851492403305738155493311321398548191606612198106936567881744930864429792294180651109242210079292212322132350490081777641087582805968336993033133312722063427456457148937943386242609721472772334752964680803963961451104426266962060383640239080788306748628524978004010416511702956882991806625623365428089294520654828329859282302845412730216250050556805159226893290003529683178040065812334417569714167568256054898259022604010688002212928056272745038068834708847563568037113686209371266717703859022421563476660266916292604283877093198732318942222139632334603287016716133333103321767465868245988295945596504218397378091316486267642866940196411333319787885288633250585389825545527172233615838627217001207657940452175333812324841534887831612723070978066735788943997038907901059096440247926751033399597862752095367764560761558784866188715018559528242761372693562454792662388794445999724594468851839613428712534318153966702003026093670376536439040621060884537965716305930265503267275184277421597202583820190830212012741688786792822530292654069237371103882488601409956750956842085494288767200296495421741209969607220001841081023185416958454682942698274085874953757876807930231293301107489360231024806360681697554168736554295585020244489684778281846202312083009545092410509616554624313507448773342149229492685984743588014063425478739055184845893057777144323748904953541749160963519797163143341648094132485929605373645296139308208385267499667287793175231968706159859749857253028384638790321490088142220705995368856512766995035926346093314490966827623512355283025469115043162351304748295572949885065762210819794081009495930209156728846029097403581346941125217932668637051488949751102682122424992379616546013506866989137453504031421251764438605914406179851046761475059604714462780801900985028285153103892456869662169967737109106263261255788501230242440068804595892982262931140472643892898565701928000612698664797525331517717148593647436619338307433982698125697120706966166997424129841022859573381111904507665668511424771011256998475632431013382113001661314534198451324719098248593423511189901772195719302162935353398257701737615936175736269142629141330222572924406084602282692953431214436980027342959013583750113194412097415708034599292072091473823646142859038149800376955183595732990013447564226595902558251491410069056866106323985489221507043888911076861647911657634647441657059801308463073011280017927696221210416345242268524544251449693722611063199790778117256928700451080393315691840605835074552890571907490406380948267275961165822302777753458725171320408315289697981158569121838719906048968847694979257363139985297894346707659497820247377774497605517056210265170722354331457557296563943156203975021266637102645455982499749637597966092822579105333016593177615824011604853763616732954547522692626035894364898698340301423884045013117345947895127000809293947030293718829129266756261371042786185860558765163606800203444187989786634211381754485651537510932853670276375853315257038515760115053736538450466686131395084820765578164417250359441529918141244904822564806408995190293359676896067786652924341164798944299308376727123021311432202370795176552919117273439781137206187949776045619251653051402160642361308942299725254514865312561802308427282260218516779176359130483800444186184033611712887105572848567595681674876862390222554864462006617315104488329414648544016532884465382052638883529971575909661020042108819511346130051602871682819631883706899996727800582463913314207469339405823611544760823719508435167367375707839132266161187261884715341016037359144188087990724693057358090112353477291669573958468502843250174481998067702538381338687203520449201708728245330660670145469858633405293141147866602053580012429773836410106842221161248793251478058113473519717219701381269840897462387714260508691572744566807421693405164664748020230139866898314967831111099814135049335367031329283810308719270530383131690150908139411018036877572333718586076178148400877804144558237036370717463504325194923561785075596968906735132562172070452618637967401340940766423751947131062750883551821217566903733050286569289844880730284394205427732676606170362339028889772236426540482273672010046670190739749892405807670531880941163373065412672905650402606907005062363728361976889239607928540314756831748241424234939618970424049287616059399694810041398391987909964550283908034150676899042462784746210462769212915553069511010117587939188511226466429327383198116932182096093548697976054031870331190473710907624600837315361078986158969624268583211276741163901670951895730474415659335744730176294625909526688225611739399407157977936903629192053971770777228011730635723265548226144352528862526356620079064296138547948025348286416489626590319034948862700380882512767097180193444311547412258608355850662643945927638851381851582810516582177896017312696378211599705473532075387960040162110613331650345811402629964655781513217794998439493908622354601947939932278012067673639438429824219064473905808587224914985643199610944626408835365801555459387524167545588016043216897752002635476959202565226585407892999117873519960535770768966892156443161392691274125589269775454683192104923450624866516924842004322509391870618803880750732950474952974094349185186620056073106441721124641622772135770372990965609851241587100760060770477318923065795366786014721355916228940573202089749101605331204364370922544478202502352114663809523710705865330971170704298327938168899283538577170385698600615700352861822481516732506393903185571199806233831341574788185775715817618035497581488143162041481067083996566127982325936320702729360689464180314149418987045926791104278031419709159144639632842885591447890771784031724461358858580701529550927101041563666522719133485857702433825304428332966800298586957256035064590800639307901268283140900590939256851489082419021992303919850432117132110823978005624531137351554520028802710544196143580821105889757578969571387284213711440062620340843043061272060725954678515592411133154196074175723067944691518075313067543426245335536018501556072166727845549610980747718443733409803132833735921934914379475739236138196167542077265696419142051312520825287663851899679791750640702585124425381206868920995029605151332669215215809076898405329205962277576613087010825148371053663838839746326280759171024886344047376816500836770510017974616496504437225938166592964226931423652061169478845531700583122854033728884794558241699638014954812974686185146762834599751419665776488812855963518186524264025992812411981770600337319182321316351242338754063354997676291066938070158665370856099745374095288039333503411832559034556797467703275425139753917428010969527955355279240628470522793027423630220796286633238694708252081126627062257275155782061919700962660253329650124400820155173928579807446746347735839685775674474334248623810597756219574706269495392085433707318524598909547500874999204618162575760041772120517083081180640797561607981189789265522197731305529602059178816041402069515965823467649697234782299828195630548387216903280274867208757780350341406745922400641337703724290729004410489473200378145898030053249046333684297564164309016356813257585704812028093472952941480737347422706634278054207311106135536462486124025326270447902769443751010942231719316102382503716457558856058773980608702713663002688241603707795395854889229948562025961536217656644515596195689764389290298608746247479704062504063210319394477909136032194984913750083536695793305622440820947024354582887394217375969801056904426595891313382089895250235385486258697644975082276339073631494198546917904304714127124262743446372833774282808731096526884207459603948860320336942164706942603755266249872798162709681895450842414968604220333295142247946461666986969302147937195225690485772242806781428391060465481057523438440225240671723284371822677274923436690386544267188861814648776427746590275268679516210957224375337988860523337181341325096679698402036314837621066951098868661737058635354524122997306885751036009993334735902553119534853657619941471108199930163077417381900789199289948490479111371481054353415443895981083499530347069229530916821127209945403239941816299735384895230269771299882376361916236199600892859487587109291584038014116025929881978625637664000425573109909296807402739180430467697894312659306362958300634009244504290593338807639343909482184520286805942916553877246534248606358704144073438959526574145879999058150912325690060664377660553123251156672291214776080680003245537621651539051268331087288840426904234072814053274590173601495919045741143655437607186040950979909880638101112431268107326858181735298841960186896517583529333445215811790889185369950812610749717104452197685598871967312448610817318500193483853111540805234907825607522033564686544001033040371355324298063861400654652692063386195897920336370511600520463699170189251288982107904162456118590254416190044104686652096386434475213492336393813333937495461595576862041739908362701118863808137759860157442449158944388290312944958285576422422011651966947242995879235807514677454211115357503775728579619741545613048083558798496740723661632224143936694748420554389528882176128847337920227205432261101607008893171301726920958461391451958484582166198464178599863785921459593280914617209690442162759985200441838507271303837324998545883974249194432118171008082848070358997227771994246988247674774081170605944551007076030086731328737399325650347466972623869129004650574555985883357850855348490469223668336393356662825558980568203798816720861370562656724664304298437143011819281753444833101461896736750460371759972256684967523055907415861920534019495012179401431035875832645158344267737385123391553921071978936468139669689526295531643135799616362789930172192214994564154019165790198020107685790614859646956712758180377216984550494709036232594536685429378787042534544664461925943131862769069623543237501537191728289790260256998278923296665628931169939373269197882267208024116794086137507113364055315472948844958774004554729360766737658521734382055750309342026426794224880262110410678147878239127775421238139629123407625854766764481605224792536507217669017476103811467253210792994010236158760639243591580311682413519043848315680683853466925167859172467725252109566982120344472892460919952409644635981674500148477866466610303871716686944220188553407360639604114355273719324333122443307594485413221867640112053034895708414096221312490283438752650431054438104021105857854159415427900377654792848687197112579778391520433609129841840907709142185145793227565783063975479924583801020756167460713214302501791970835916897251614781486424845287352222394433627556657767493445903599997574085270566205019504259833302689968754754001008783090436520593465761090716585764706419298219190676619082394592289985165774437163990180758859729543036962327099308359414460088692281245539521054524220364427635850697451300495080113093613397617301764312192690501275732885586391467164689208260291689845833163491402453400727463044264977002121357947343252469558757827610885158149757279092605892311482623652344236062871746723776779846581354374307701030263716036959977530473584715774433884213248745391428729793644117688804998163956383317413905405435421321652342182257620577220794534704659452689137207382609845431272213934453211433735400679032220033823135833135833449288061097567722167600545465130398375530006522821363279306706764163971193722249016116596440323072221666122569420491264077899340523905228888463589275411510998838677978610232033616694150339326521746460932084473009622944233004721904572653423990916210605204741444006809994645112628865299561257556896835244138622642117273268348814269814360862390816376074210194877307991947764009615097009134594012588083237366389419804962024057801490481614461667862580104212906719174773144721168908594634844334909748031657887692954901466596085199365923139618059917732322126481990886173548840937773725861394930665548841935648318818630174592617960916564791221461007910750946343260295305336881744051647334654870521824593070203734900401370179440645260781639488530382654021676569484063141773512170644468047248372250859602968395146117497812596156126523928523254159809009904976316862514940376067038782918726317203856616350187022897058361228081242251171308567711799160436357768460774247952765272317128280084554217114607656662659820017228443352274782163530483185888368831676988531399502372166586355025058707251690166244340500471020057964507075933121161900124282744850523462140053471246188787225359881060445054586495579740046675403042307210099037165712769726099308102322363724974834631298443857894378378484176378605642525211366819595105739287850818520216563973133614224197798194198141157871299167197327647578554069901313132158831825502894488883281112937249678416812642475375046300333987680867491329413969883917847356420730412674740681383967808254196579905730118298681199227055153009003800735653012723791206004526491258230624361344793578932138590583876616167590571906965940838779627314928909346214025901006928694666519939806838412670621286517609540043840203806814043115707507602916752630721014132173870448534405533605905710091688239115383899665268611622250635035358018144569250429984685367546035636503838273470965686955233901162012929842084061010926255028218417967478891900337338761583818037617828209211755386486517626955651362726366714773533309160775372129875282724111158308606656707701781139237119929356631898646451238252493993674542912331735003127063184555859058898099235045995213936791150841250312904438578016518571418220704232952575379153528793892695718950118405113778593791032356189519334653192479206190046065230977921441138682676190341124656452999373567841088957680577688115667454539682298498794129871108463826768402924720681867722734122692786934698863691375803824049473828369026609350403670031146097379998997275805605087699325740731801166400820652794730588137984216671784240996181386780946550435307333420525599749372110016291128499003768586874449607220203903217190124201150188857480192604419517447218719880163763991524058388510068902900693750318474365115329178720909395198336297042849240886299534083521277542572402015771140648015082272531324150093331244247983281763810534722185376343788186289294606731114321755752760266981705856927983484593286930432853057173231245942546723542516564643766221869473744913435463818102387619276275838842340011357461780698212472216991850143759862856891512132253935500829682766940980312681516619637824339438529757579842295185017984623493509615256027254583745262776585627280997061585245928040723222408213446698889471234076464328081180667233440414610867864293255774081083510611249042970814589136303545376852163400655431502499861120255686632057472157232991282826905213007593267833240200053618254061263637148609678010292933442447383494474083856184370977095460308773600741709150689092565094630148477279143453367606887180717480528209195988539158555983877090734085824267741139768663339712319244804410753700350174770739397272421664090872635810897575004747392862703905937677704592422323468052674792932375196868222099292380666615078597766873549935409852219445989739610118084607428201439582316888275002964287299546803159210587556823154953993775160202194246986998680073999394876216258968780105715876083579525786653873028384906168481203146231303592830817341630952474921882845965031123546198293740115346777084636404708267548263808760487354671451881279616213359882502618051794748431234643104635337449872438807145245803313597886336001324108655259076558493600357580741637169436046918958974554744500418047754685894529271909944166506216452542365942412696355768399583859502547281561646068547187567198596262856155956003318306401297644187205403042185183148239528807169650901879386153451473039494925078376894608286437910128275099351275584486873993428365394161581604184473668202379901437132812478828368889578995721846179105168231613069704734836575332567115864895796633448654450442057962753497636754137434391411997810074231079757209049120251192514472100098885089668520082273376724378142474934681174777696623623837300678315872814693212211057109686743177006547710806054315619391327675081452445124523340291310870399037676105522804511513235860175326744149733332188004614398634283785566663911444272195153287382377535731879559374782049167920954784679239463985062533637703335028408084643681573883271711661029031111202591520862619951053080495493492473852640435554766019153172637266743708483720025127049926200187020506135137480956915960890371653089089254102254346666378186963593805536057671137262500437281597706366608735027752197797378769742805542985709673644756801476235686634581343095792611393040173090560923725492105558349259297274577658736804186188078666565004935776001318255522283484744812149347951748464815300309643093961408939541641561300095011402010639677819400474040323977943149740047987101422303551321843189629914108239681400514222912637408801080310265506185319190449855187361433499323903902004310579364216357345728777809330009930683652508494548442091205345957817338442040684052262290663385645157436737465973081805013288293683867532438353392322130691308489996476330082130694664365016618121381876552326778223014452040417654473466122695428599643779511570263369819691385650141727423946289820246864637701998322292576101703800056087614157446404340116838133557276273592386931612727509743689939759645796911699622803831934208365043247206841407725578618821203389794621727649323295303003995116978145205906004697340367835353663980992716803663204184638605009988169767661602921566009780441851609985774230078292209528568912701558369126524185824710275536646647322231641379339252373880863400195441086805802765047086714593340319812871249381576893192137061720699548087101316816702422739127732466569457998154689219116593488934361631187189349711384773122729461031284336879583150168216682755421891448462758984212008192036904894202646962689924819473189022275622106792090088825594502535092596546181004512463903629399759148925969688079898662604926414390551143021458817932251905632670757257643379370428563620658697215165535868595759998854386501700220381710344096312103613448812494640904463134771223709500671686588884774580346839855469753017875946508600802281059432034307680844477307907181206074900721823808971356720478144243351782377043071134030934375422416655462149075082866380263784514486171021345609639896619292866886896617088889713056394801469546432260583665870764047817124826375093564351282581682138909269903481344997472532463099929797515006767464802020809084769352296296498476220351690028364525910910864253117259055902526780957575842766071068247946155850889105904553437924716451070267483662344004357550313681727012401268041155740944431757016680884549382146493616631793422413322559515161279463858010097318593918719264367650327040948116764711508896965377734131276195641191282547562108853192662988839032761360555572533187378752557369579012533775540794739638655480571475013210048931541603167573377215409239227292752867208429997210132864049498901846818982061364575949055364942208300111509715899606508747153457454790687793735448471777531623886054044269868937190038263478951486087286011653260953184594288464082144372486597973638842073167067049772465281558792966716979912237868659840068360332348272396227828557215106434225315071617118618377304054225273284759360200020476820970633833128834020578066561672720764922215704693289614481773434635828142205590631104027104406035812169917408505567729700321140476594230723201626840940622722436001936836964953021403089124794948179021483002030172155226839269093369930060534855888388253563573148326567927205031494878916627915330138924481860007999495108828593847734847880671290083796385011278005836102460072813288219559074175286896499232272660840798778063937872303222215329434100223870410275506266923454259141647419205186594462950377090164920010728460457704854068739689020794068559753739839160041432386714422101809981925446775458968945169533120486241696146045645335849911232704885190858739981737515967033456213058521737416792819352910838368371611198528586593842880785646618452668190390538339413347534836113985122305391900789823405529728242518628008423106861898069018179265189048425110254752410997109887713239964867215756762413664378557882311455206265714488784318173972798725765965014390013116159238993904000072288641343133593746376734383722071791431260248438647934965427664484896251894975487958869890700501625698021466067345331867308209322715658209918018750023022363974695024948285235121048817063952933340156594427312583493749628876702024332806055078441025000266808824432203391915438080680205787626898080474595442799946994024034283959881852357776350282396866965798219503670211688653928103397355072785951414566770017999013471136750657015655221613325317617509335788897138337535744876434069899738994707762429219917578323960844940732999589964302686194184834841664778153320519128744423295627821327329776522014885916397640543212425333878900384391170363519059031353155622337109503247144755350655076378349622830257480475373858520989624768169477013606459169372132999846813916585431253078732471580969836518469340709315244781318832376686563134295879618914411781150562028766989042890517148192632196263559686489245893745974830732187984439148320272497963193445230036967057846785280403476760607681649418083630170718646231958372832573499875564870952314265803371880563254261157332500727804802304828814660199671278109281985799080915317633095733029627783534578943279521317417756231443486728562122977834955550157251140639974883247073654106257633375521147294581802853162138262842605881975521185964858557674775313612856092816012766069750750277984404832525057975885484409527956180692258267290260724765805957101586278190057979580676881394161648582021842293642201755350049466555579700580686205729759940826490224928108509970980327492263645892514042635820014751262596491246384906638287591736874366160463009751841073236301525779161858559266098327662750888017054712690244098809710334694729458173635005065493744154855665260035290163337239172947184243682010654412012094454442124956214269057404721889269475977003285904745013106648456177417921927805565058921391344418829094145483440556294225944899075930954988434978311515543352811585412722411537338984451430632031907341623314011483409127016632631195607324839880146785397433545286734655840549212465682548161832041741089457285616558686834360821141952251423496579230802210128889562404502303245210809232808415589068260014902532293908307645590332922619448167569832519137982149195229944072421243373551782900116216743090476961149185100435168173125292264819286176034143260060594628094997974775696563515262094168216184463036513696761355181667805910474096555964088044565710163687996619944027725273210944738249547680676690472552538103344371488094141151181741136794030167173899654263845795550433900220389025500043309596034286571316056594274587688730869496440530953413596403066761501862826551022313696258711520115675972879950628555652816098352921926927907185152510124071421590979682893708381741538547288030166660917070446848754974235522452736724721268655239661393890005003755392492722163600734017706670105129903531145791051455012538739765894251918712285992392803900702834208264645547133773006181271244949438736259095839565852918375241865122594617877288780277759100811700802888153749002775873696505198590497806789049605426265823324361356631153750112927552566401450345535508232458487456154075374737067120925304745118534490610533025207497536593234729904351672726329216030215352548080745727750239282435144270412280252768637276487096957924357740914564779253065813377309903223302020491311195326794980270444978155707502397527008532513621764553200835407835635688890813277930362230838433699575541444563557250283053258002445941653860814304285684918584181793804116958224203945715490806517871010026395061633694644111662523872410030463193644288423967099306318902384786044553422668202403048106084799004459837039712795716417166766399861052022126581102885029643161742666266090338018660693161035463401385251869626171510771839767002679532659005889822260616373190417779977384504089012063087826816071948144682165281306631928224748863215073951197154552863583094987186599311444069409225120194386200996257848202832115439005186038107170364907182723825375588385058625449952748171756683203225624396523681907619570030041904861159896506340815460058083230924818395225760357851197384733313472667580394389893945961747923641019191767614882254381790675766808523088136504042917895990318389972866370098010481475880590804680648665262022584999371150585240693891444575022958249383710327002059406477965130522953255477557125549247577036321886602290022683388419952770223674140477217800352922600324933115197497936442819332383327558916281164210813017422703520213703212925877890991669773290613155045153852949020538401776881107054438841060759694717049741043487503959064248567748855380096811916258739071875925627224323750488646944157779619071712480500128975884805937052602581955023156096453593821675750739082991461377892229823678391687928733050280236064596064789905718939627079023570033470506841533337606118320409136630389556976408503018802295749001593183447781826340190099966488982848891015347348860116116298589348538823018206351028614202504392865296940062620642486012053219372689090369412141828790779791148966718687242897313667556029099052884654126818207601436433521847134575259990291522705827177798331823982614523793118660998818295616333707980111886301724657195430985139548520461834517315556129138355177388523730056948615408864995242234405747092057525559093603113213430713111613093140800449192720454762184493102514806964981658006310325561734724324405669787152132627843728142811281132716238511075109214697299621218369480040424799222549521936133710008160789964226180962630907305207646066804162274752413195385180856553813855667699931128263751367185471054140165624365636575953539731045758641506438071791067667131600136517023391515848981385758760704845973221943224279190360953086520747391453896263921113444311466087666939972461654813033456472065291206728162504912117761541843141892503803007351938447295332124459241938091057623998363104937377347608577437476449610191050546740202393487865731483002198611281245264429623451459257128507267833089033028282485278670288579085368745132978634269031792849327693626626910370212138707668126094228299126335049649446850780842537872656163789574085587367901181607368173986306331373449789104299091066602118665072537421114927937928103187336183196466263609538648655737306196932564770527146101284329143185714547920624941108706619538474596386431402670226082003450730629437180816268324626826768764724554963665059482299968429699589853188468252177243536067524590609895403256428887362089682467428823463112552122477729543333985343032539659473761316358547146689436357929414210593166789310443794398055306409128509617046386286404248018513832008451800570458784066520905489324880902737546174921440429229009366853506364796912748095347769521336879859374219868364676864381088401445117587695192812096258095477001838507744377292037422283492584652772726800710621084392570633323494775369985340030864990341368711036063575791916629615879756689445751181580930746942535638897347746907465555148201586378685497254333189985631910679189742373456077301596501115533542812369675685060738293309104612187162592938188213993845844083463174074788823482716130804234638487629548250200565573679412565637220743734021091192378762772473336515149219045948639528159637335553538982028036723899150830880477264133865856211046983136756315246691338321258601892957987626660509089860993830946765811008418589914926129287156369181808975464624862560457945399587674912955709748481556296277190159101921459733019933365501570216499319057033275118129076226545596425854720831591682022695294758254621087824854372804432188886007201284089629341907448441370433437646298982777676224715664379402224695391892533879860497442649791872043555388392226334579444461310549143593982096795561586991118553756038994320447862721984990862610410943256869553598576443962816576165516499377651737371476658556618456630561341956686763378676385144397688446223940213938660442512153805254283294697313263522533977343906210963945579350437907456057889391639820764504198986549149664600432140047459476567259625320739758904861306893048694057816747633128393938625836086173946224913304730943965698042492052816595479071118608785435236658448214633042924749906611355022696444493706551344052403146877487090650371473293824368799909699267740842355414764697841292829177826244428350838254524282548321590829988318705278401205326623605313248567014899515841287295414159626686879335446144918721308078721828477765233048056185911847570877143483385726012717714191141412200770938876581293691884782927777353412758108896175074690941018255646723230360237769878069754840186705079187941802280539312508431759493420110323014763184979349741000104115897356993985364279057226533501186546763222791151116602927541474967193897818470942671202691531482501706746993066249224173393953561390934228968387489371320189712507377214332863079355390462884518736756230526792504298356103263478724047979107473676145022937474901854050668614607561149753449342068991596655071259462971551788167372614264598913228215978520378685918680135285080535466693341399338181421383473675003651334255217990320895845492891551876195708162689568938818050690222477656016377528834650384788052221650230100723583755927559662250596848430707028993608878683354811209431768846132949548997048804637676208291612971992294554397569713129738916765592475062937118409065583342878313711241081271823671722091964143932080532549405319885880220874241991546557858376624945554288579327929747730472800494911790243304065674298094210431353957646831472964778457922473607830803297694403978631137953263947624000840383311839333387252549157159005538895152386686690633393329692781520246915606497382472664052045592937223940785367598973712257846899420337901856573806669084421346028320261749115143812623401509693512636651795766194483327928554083966135101336522403634903221858879952274736920397454024272762953048337385343061195959393096404325967699720100658629305837426485355456538414321179674879417815982939815868785985361025261123735565774921311325498355825997947480387609135913665418402309005569065780850046668689924766151270925630015916395111629216239772866842921854785909377101324408995622533344034145636331324098735564998028708026166096150804927344688757796798185075510820855623314823118335281233073878252737838449923083967684309874897060365791539334081129777521131657574393089548361073820180694792358205811747373751761126881199307179821182509413044151409122238709313559526381470137811998597071604119237722116166934305206362790441775430961615401427062415097614535752082066390990630156140496874396947956528069363429521031568258063875997769805262586016586066993056865659801014557240533823523902359086777456086103774549229887526768741695884344302243408855197973154445633706494341359383612220860230038499266172034917258089124848986735220961821604619160969204037632508312910872104217470688395491286309758308173980089424009035574278971490923338894678892762773875967630090910069841795808520333664759712837277992857332578623834653727828284300802216899625007800202863847990058956328359824237281012435083876776581670835715366006357739394593617228475522345697725829120941152616803754535665315850647731829449432662349180868312978456450024202672214553642328311427659014156371313990416459013776916252791676077375275699792740139645389821058255403971248161075384868558883089248404015331973807469804179448998528710507289540916813043853684913083189412855240528922035354062366029922680835534086862452707045880520787475238496970305368732049549629677951728224959444201749502529643551671650763636020479414325910250566719035661969094857266844499530463467003333758237793663437706567103231115378183459994893301594024737867328041573918990768998458153249577730194677395825101136310434949732441506268499593968345830103096251451387752206525438359254971183635916495194907390568941479710140054274562159568927770518259890625616138994657165817628631011922060689792964414184219663570548554038448073222809678492507089884536023462537805074714800666779866009306688953874409426274183969163766067973144020846360681407750098141377340069521929383111532853414983299047430269592762816214980107256332356240342211169935757070544618456810073543880856733406830676342295038398533196143290852105535861753967716813918141174716245906609035012212914670979078263556649040208149572514929898988471940828283087052472672177599510992925304151831692319832507389260968636962095977799693763761952925124738185032906948948987930967199602027298084417978039120752868173597825486578563797669867650493071963643947253265042003015129157743451853299792845722449816716133995264371780297056456334912527749473304209081023840468537769708844956586347953552444043268560140773222821315222540332450442971630785497484529809741956548362895100611552559484948574086530497343107697058760062908361558503664550196737552231839230739528118326709141257336947716543681187851131875803319534554152856677445481435623772952903697932566544689192258325097105447350630367435735865244749564294041161437124447946263077144961556900908795760984908373170589599204231851701867968015481839357059721224190704839354540838446026386060970050589852656647330656324818896679413952951994459737524267047870803653991088898442728998985526287862560543458346720599958771231375264923591437904350207103742426799614131954425176139811749592084794204660927360967595913957147029083076138465806582522194401827781313396088940998414190400454207277916666798454264071525591300692381162919044409021596865843767526802337048992532861462618535353130235914538521367319713564272801540079754797939580023844137381947916409809861997868500019811061560150805040156509769520967156391912595334118574522300986118151693367216343334288460123700647196408293648814560306079704084254364461041069624384309975242684692633582001547030002073549942420753698181356942201351442528745658957718456469331139458266880274655486748277054470165028417441931152106390299702516871470401231057831862170937275833045915443527520233574730574208004462464484534413318218893189858824442247179754025214512689717198774045964231956428249781146004637773611122694209303196627151315487076344472096679560875752023531764602129006451008563954647893269086066358313882140841857488587177989828661328142135493348750404044192009185330766922795545323185448658121650292842269980435392004207466178266042698229495183866454956127632012759359400367371841640913276463693620309855740929809663990316743499320447434908862902014704687982269551737791987766521881381969447042619301061407958827006624935863637546662447748632185571788278479714662684311030910829576326681147260776519412187394800870952602878363441150326851286720695345534398911800810515621337285066012257560586033024619310677244123858278512510899591468989790930965054034295751994234867748232076438582409067312511970638347314284386620010492577303786397031390096989676939286628852326853414713847599694703494940687405697179152047901225558265727089840147138385212335551382893273912892166360128014679041091011861276030029253327898461490224157239770978249223570037102956002706973611384359172254688973011852275983695631868532787825847070512929803260199748209587331902750290624272579497866837417093502061542475583329916437742876129624473090640809480200694303252616962050606994471200600181493447571467740637964511116259713749602181184404779609213216627904828988376777276339922186112779743447979975906212695623589536003856762266972399601564522888601352961337296268852286872106294232184877883621341970991770870785739596656415719391225074842870035597751664332528941541328961196293130299076126454650794340859661753829313571100986291360970981335695851464751071982325746658428443049753611230392372945100288702891229802724365699713914393685607511840352529088360219281859254711047094743534238830836047377672932880006526752601760521133061890030647819276694500753021744835233371583473737279246665676116807231808929797730961328850306235005528091049655475000015410132534257928926009907542395793323455632152156679684719789379264573009711917969611202711043848269830035771863517626976244854570022374329009342001946125584494682913839269729641753940674324136970152953075283037979460657163083339670412716853562356726308973383692374493470636104339333638756068674815947337015392419928770782565766955431630166296031607079706115700240109859625152155357600706209516624857347830404428375085829682997658754401930775822718190514542710049846831335813329819370508272380943445828712561627779707914741544029005114637412755449263544028063305266642474803513778276230541327999937195726671484003977307805081140962968669663688733570277654056597844101835346350161235831412946635813057753016897818416269116332583746731447289641054310808903552294918090055818526999245569208235169066035840834773737583794223911316873198121800245617348119422383349493235943990825879160928940252726704841763394618160525188070644704036132795912933595013393835099539491157565596769018457951756168905556816338589488669135352228491792690808877541857525488328506381533144927700732827450458625801076820456041593476795924098415543275337813956807736045007778001004988027520321226206218010392011496328269263560473568054341133526364780890607695494198751728255207441852498215589325501067619035765466005648097389509477926331937922564263193340772200824843602682064830416431853362294429234660569599258384327785710666013455905144950214336911285098085964588340668569525949691410627001566128509969201445339446695222784022418654871359935893162326994751308402043608484254470347032182812367693777498174404572726542809785949348905843547149759699175566828718747559251867174669305641002518347121924240128534106177280250904215342896459971123849890486799538603541129709988765832683162205061759696537666374575050890999614141424269324376828054208758544809328912512326875889024371808691549444053400395340042748437739688491770672517040416093188094515631436367986271458246575665120349902813848131805389473312870097016097038250320919506760743420514647427229122395672688809039227875544500247426247802040091133303822945859978347144809640841435899799856240237633623338991522262283864379714190899410675048352349862178535411426061388657804853413053339484850695357143719496446000017713432132688429631747944296080391825488854370896500060409177872668779362442535990534079965453514363618978722511089606332370799133864928922268409956228823387738783916250077769958077976811520034513644327572694698078271437859810821254298161282580762287507643863265340805261038741906040139532220613559484028479180185328887446618766782375560058534065602062838485397440328521438923198844559969039508254587549063977981485183317077975686980766115001291250767779182830181677724225461332906437469183237527632131481833892943746478682015608883045197956243720806180328485207412593401265971969065890664696905626724546251316416030279890678140820989216626132104875610721221375788017482944369802935349521107263685976203976439042157080409629867697151180898857307393356040240451103078737379588971830837316877101122394375838355467299649157126683384785806762780593454015888354994330900910464564468195350096045118601635559325974364119134883103294086667970169764586621966304670678986610748114267951647995305277684343655806492301746066641870733725452178597151170967219101038562057199018400469230129058211518477778300100601551195242633553321253121653020900904953816388808055937239391100942503631577788832064992797370586677075074673099381758146858806782589781105526350998166966415968253917404689165047755021188070638079669369949687641783935557697768942426979997351657774266300609319075109226434872490045686512200437885830671245821203858660251885275614442708233448983324381190113708731332510072256704765726933031212119453520085162691744575516343949126523066634448063267700643669988082868703069149283035942214435071146065045247116846008468059246843444041569715929727094346969482487675237267435430084483479056189522002191009314438969262604631904689903307169689733679979322546382516990421493762499290268579129327243186913340406008874769890637980231388771087789175604601294673560377177488951776280838889620756921759980761992699172852664811357997573880844849308129926067749074082485314711300168018337607747179953479588708334278939762972533886416495188340021751406916827188773064997159458129478724321956618547872136162255455618510119659060210818800978596387861934433767344227942870256516383651617318586710553775469955103029636999211492026258345611944235898434692165698818816795593255813307958003814949240092984532300779122591979466930585584038298782219489071394604955662930920316383827641288326443302596889475194428947563459951435400285322809804828137117247445277738942021024085184549617023800265365542242284745414225907542661140240945298329944105527160072366230669470181353079342693993767361822506018277758855498304006683797968063698337146844990043304476819080027390604671093337138697116792606498846653469979767152938010761644506999855272493405003649035465580510178342341338964559171935282350548194919117500651564545077777914682059085049325810673784375698285160904820704893977765075602614280222088813472125851036241882174979981824649840564305144749497535386496617508061019602064500771514250744033616195580533604031185231863274345983114776185706333297706133067549544884489441814591634680704215042196663261081085980085883801838908341616861947632034110736448438269683802223769585106768445926989192464335948284186754504852129294845221201764952570606181452805097936511645449487456877601133104018983994431102464122868787682115626071944785402586178193506036191506509742396256668371694632455269172635344491619245267041459573674264796802080463233909101713684894320165269243619177272559072908457832225437020322168258668216387618628765408200331195613021071413774266302960351876886237104575553177117897811727201793605855251795931938306412343451876168260586733904785388417201407930267223907866810236037762433880989354468885281174012424762405813200844029491976453110574615577309421427877235065970874115471593722119528898003657626977875656902281883854766516935454313455531409523168959213061329900052480162302726188154746895377286572023649236900753973868041053431272297616667467748592698542503022648373025994282682804126784573953946681776613618548996991192306953326964247796195046608369328328875253691488865175707230935839988376075378492796385407946746470119439072316032971688464992610088398015424181980940854154442967468477040872011115522603305366534286724995894977196102687920353341436891119153024719189949555810947869448495629710695950546503042871423002937980010570426518734499769698298975181010826959955468283438783012862867754306366718055433989207268832318749500986820294101860413051335218841312050655087097874152012819569831990868804112903204952696579497613480836503576753825948790159034209130032511367714779119744590491817938279884359296383335247712301546936478946177462570114023461269138521600754311899713946663808171346916231103314349274238895332027394250073886027089036992397494618129922399559983375576775026247547257825927289055236659690205864737872289699467257896435959531000012481971334846747548572901116576302330411826648745582330186532700701785040037480795986344462098942542446528436093294274479585496918723384615648259603422759611187203474683752051607084533151910039413087550119655699895202775865262642029993956776544221746908326630910448665751565999347206530785581545286657002964209746846981642137156877524027263000017695666557595292088767128459566843047908195634070535374490897139771281314281694592104713239282429663303678322641042291408922361323671249115346809583916348455059146852556889336785900960347623291168868805206231718218541262161794403199287868565954464886200014571742263097952585206980013648525608168283606027059218271627628242722798342686288105268562019554745837344935519379852262349685424402690707687822373652303014219839080118464104422033153724355304653866168196219071317576612183462285722623286727085817768103877325632316680730365559491372738398352567132234646366909216596184566654384654671385807109641493167095353110544537057349413165614840322664631422296773955343632966406848363011206558181484452359212513143207031922588788391796935963283826978886345335995840404256247514707043439143599393568727947619314148338900159369016329592063811756192911470867392861864114793037981136383469317382425105994684114507910266451638821854850324557068931495765078499557743802758583475168708887092966395819116157865315928217070940532179383060210485502567145174184036196718958629681807543710388634839349985574786803038211397070154791958584877164881372011250730025248622511683236886980286135184257505058549692301635752725855468476170611387100139126360225160012343664375451097821979458328663758706850682508433483754791925194951547999723174856159395098804373724061396950086766338250155110517623713660466517456662044209648517314358050180043812230422002309245960954691319190768156202645559961911966417299371486088035317905123496322415094135576281659900909068745326203366051928387938305947939405811002037854596756529978152861362074920595214874427838628622782038162625968252187748854150592552021543397811193985927699065655564799516167531015388681139965866775039960686063651351927845045598107924043965090988860181620898638161737793054079825080676837674387821269627414719476665944387709034333046630792139997736378561795765756284971670238424147354831015658760015941756655607068750711098705312649501270534695771589178427206972076314640673996091286325726150444170226117003720840300210486742301464534022829449211857302527736759241572183580354110515889184441899099719568255989900442609965963056205738373066652456713742036110810049743022741030868260223232356343296984229986260128086933715564338269740012831563441726326277011071001668785245320041627439447846088078873394186786503480566314286899585909746136605331750470311501243995986263366545387599270225035396720426607058749037332913768615720475730601970284760940203828031212901848646511533121995639387724052335796058408474525429041626805447241985086175799943783160874884378864384095752247314252364025997111313510021461352436622881487197168601795934418962793203211632455801578597450499174391507541869368106936357572455958913558286644082099309463544226176977030840155589838446948684932078458096656670916493302910875705780993995442040730012938986107931570131788964962387130174034655746463062889145910044272405111039622379490942615985149055535744828687874428606644756301304726180134383675488605758617356561744859379851111247043484957562715048578297596834162735964317324595050240832137660815230649447004753585729840041396458151036035376961441470281313687409835514130257870387907562494869147481471784887859625616049206307013345518360154541982548635006008449884430709532418701141190213557434001693683891478249936569077580342204920187455175526567085184688029069243627198719418651969799907210080078213988109567118359787647085454150047853030165357257390885160113407584806036544591067719905215268326334284213602230819366411971304598399102457530612158696077348046347145145403571027402082012313506637034911470890549626672648163775063287988182021696137515538195737726018047879560406801040641463024608488661758731066307123033263783974685839753663358468682225101487225458793539451391328957706583088894893063611471585298996371706172736609412615650817347239118036812737029920687673791938822948232496062243084944325270464618131023570789923487919155798481868355581840393210734041200871930326530378281324812991995336687251615116271402230065975531083426577213457656847950048857738662300721242636317665529800322364973147689030304470728617492228008408444839771407506316478613978828499322762931154693321238024035975369553644016147829636008367882111010623927014139254200295659849915271006190395675457270545264658438164685371265999247590676010875313261945360227992771042651547454414710120108207076988767063915819617261349565181930920073316627251268211626363048146187889013813687981083757364393394564480082898560643296608363917371032796857835460643502695128289433846107796373956269711528747302213067820094766084887233606010375208392938649970201750892172024627596048902141181748936642548125653750718256910428850025063494953594573244007933115910798615590477039463192435592329118368636970123399818821729743383066488832588951458088052947710017314046657640206998591524270259762238726222281499369581908269973331137953474115173870904457400047709557630092365615077457868139427910118750382897605660498746678119822399762958121553584484783108997154121990433551566437318889153206262254775933974647402419353054208108609531150802632974542965101730619176675859767912473986953307400931561603066769509423192996575332282750752035568482189574471926844597004693252749573314058183206280887151419592257523015613043922327969692160860194758767358302150517971055447281773535963898472493929153351520601938073554984402886317887437997871181853975637032145702157791975394955968479896169469396525677108613767482621310238875545945908438860380911485688378627796222252780087025747293651044277641820776461177365423485139304013477546013401793954439870604468676327180315038387753195694452256307977403572271539800103096653770724527443118587016965202489301089718671968696832145893943674834458511937269612845707551659750696905260913759869993347479082905613303355864447990286453562854424741769275982216241265269804067574023293333677520973666183110625881578786484603651375374354440544017717844950377841906354432990819923379068409375582422562763831824639188048705639916639497536947929066500372711938417480343341322407688553916364608735873662882778181445733538924200754865462222495409137718374377364305032471445131984412189356960483818413896416153724538644129748123859718131019442809154978602161571083937945477251018250170369504835179361642523009252488246544583880080953814887301598008349398039704933309354289616081749289870045987519758342905603771529897833190003557496825065971671128381016126079491447483998899228462313610876356972919241879092343453497356486332828539715865100434318007277253870802660231598766941675989232958669181067838534735028252399670554632015702614515062537918036445018281968286538302615916199663874771419325755687919814123048380511925164834286220695524207188284376475023239909645798653961820885065074862083213788766730855241660163028132409749329408746223228616321807858545036966183790706015662519993925971234831947241916977397938691219897882000801669806276119702860078080649275814656488338331923302556531501394214926159350091566371553398508140708541742159627331178922215201904887156953253886145974170661988185440496667474630630002062056402776458549430673171570219442885068325555375496356818488152317683620110558687263610289934618643530482748467847227918079276689981692369287208788662233662984397413364167093037412639949926340071431811579347967756593370383389415148191507338248994429639597270106198142189239312928618031220433923882976501666519238223250107986459083818681261413941666295434818249157262936842083415371414066044776121253495779264462119739179847992678361236556188683763497756458609111741407142988752648471430244253987361129336904938176493213704336741309717446341471637190964606541110442976145075126602655562105594194979076702491756346977324029046390319550254261666369085405804088003708499592958161168055395269015346799352828717038920268542808296939145079350051117552020464221611310612203639918899674030733601625589341646969848534576802700713299951146148221283172796022924063212600056050561165855281191046703183447431089883235581961255504938432465363341241300829085324806715360603058331209112983197870756212062576164610792326842613527481359705605625405882803061385483634125528076274932604498900144381438720164546732231637750307892211418539186824417256625054538757323341684053382389962365953160786013197199656841950352679445383069239690405053548793986372223796193453405995176950937560736340470969807641796918612447223761487322319094172099034032070576552598492495109332113418527740702402728906432528313927045359112144381028707162142676739422282420567317676870302246386688749841858300015381704903667736463752927353252062878826363543462665759115690215676829311783685909667259644065662311435012805473311212628453494139942396452217614449887747812784652178555052631091768744655294115699832195981908424248701424955713464405624406158513953480267546533344844313623201335797149793626811477679654111725833747642721753350731056315704839619341141983807287222382065620754214680827054206837252314678952612284011346766833122206030636095126630032294074210101793205263002677628701101785168858274605696096665360026532430032029490702406678674863543373712969217440355560432670973766902950230857308497870198351038159708409221548837840403293881175757231341763267867442059816393382533544477382791362570091832554148188104800571493331028055305398226738858753366453396870628239508515045504469809908828763854822084376506123260559923021303509067743695949712932737747443574748970155802059189044869804528470078895029281496971952471704725326287864919826435463635587114802895537106454635199677100761085977258464921605019645381836744792756689608384095879334532974709141253740700179331214840610887578832520586978983056003189395998410241629088072025296603514003661314208150597657150347977004235108462605649494071839525930299167325391841410192481199228145349372615539016419227302048164446727610187955163872751350605747159715594904406164365125775064768824650008399351496828280068433354991136502105147002359084542043148160121363290262524571353870182720270754916274833405507043094330710076733980001547831889907128087600422568365416003019817005658375985228811217303076803716827635250095754409562988836784162908139165688750622189258426180167193343712243420056260056045450793421959515499621865272590249221035882325134801489294276932404135758172401438187995611976431633156193024576153778004508214394078296745403916120093362213022428232494321222414191240357668120829897274462965726022914918648525018350824593831238492905822921679172690689656667697882949678141336548100424612996158370329195191043083231868984467262348644328140279698596625438290440084704989100480092587099842975648360563763359709089621550746370571292194524744396686337379400445387304948936607819499518778185363428155319389285594036797594400484561568856543573486095632800202351636495922210437255436777926954631229118540183552382625329848677995582080324927346145834556866217304908730075266591783271347342455002968574248398052487960526787805664915901582838667277505959419224936635748585595663756837460718749416363251306019043027433779803294892586373146548109092892321189615237819164703437268073389916936241678497926353617611010949659099693367563921166322209696105450701902568073095691090790825028450982576138626064710940166905353221934848731778183038840221735637029554574566003338054630654861945400370332458784145286593275341347449832049709926250837760738298644427778072977133517481977505367195280997610813988183920506763781278175233845949307087151223873311283391043940994173477409424357458507141704539332578419078461172973960074111628555295355525042253808690467106417387235174959151755404864630554450095525716220444506333916988184592816612370945148026569188155916424413269189652281455907248954743394778674643910833583136725810645262865615648910127010052736386617065019000067449251160249595140353296139770318649657334468735074040098649499634611292641165908444889715240170140490139782412091081005868119536823274185284760390532679942471418513686886351031779767757524801919666137019848177100060659344975460276916317623455031590764744267649349836637097169083712427479379636751717886607861454792265034307000293699155858868118863299628433756009200350396022020581711648255419496376283293365273155630734688061433375776181289872946694290869513812561990827243536184855379715700297841060394380762331012583516508691174637991385410254767620392205940875827383164919491091865807811382002648825414695747285031817267758275272489725949859778721996411405435790982515674447353273657270601421245589824725356377764125464080321392931989240195170434795040293604439532879791300416742242541551026523070843481558724488086195696605288781253972594239943752621260950016833205734503956467026210253113258650014235286193444038022346313670700889917643032573201242755046799821262107050144962749405408824209605054634328319859613264415866536215532260618988306525358080039059752733018502604120940709064669593637116497266486442442544335611303347654911636349374951328080417230772027970888591413355007894466970367316962991306568672139398538715994058674456602995947407164696576576002493383738057318149077546164137849421268535169871101704415766432506450794206250546078327105962951533448972651032403677834595300228861968551931501290513035425342990493596096423752723833091086325880174129746092689219707451432463277605143253075732990450390096627716035905446937078446439158053225985497563095810957094661358962279642313253801658632724449473679548326135607391178170570880105205885136181189800224664298145072412181243850451804293797475341071314748167390193930677418522639564517965410219497054836452885164322556228248843778610293510517039584735609956467312846656502324653310142470462438121495081525181705590622764960849073221605005700578266562103137062720411429288734750235166024143139924477921542807287919432774104723019242239954181898930641612391736671586416591059556242652663710124561447357507704180442072556535095016669472519936882882612305114785767058576190679737677794919857433916798053418792737466061540462708851844609138363621099704721234104563531945960043203567525535319224882102225402245636348178129801936886394827384442186681490133138150819944092930363525233043204548636325913429617107817889636144818189570192021161365002731272081030228245828983589221119534809808489549652220673701355673608652918673430869261620864213396163014689218801636970688172027229114018410314622550543061988338235292306680752736675979098117831757159649598094555490861488662104355648270399795009884613532494017631102950202160177457858468627504337485008119391647644334245815522984741334507324298751244653987095202050083264149588098422834033849470664384300112341694592340653979892976583222776829967297474032001108944685943126596645535733795159550264226758213228023325806994365591526162196776617667102521656629065882103998984245965129438983586180145124742875917043434880203510103109631221467810656279100694374696270746753284690276974042993468207661766589419584752437182155187959325299374385248316386846211157167712784309391339945904903999734555926768498755868310930114414137591076645851610571873816793684974090499998038897264471438814754917816436203822195853874938937501599533176377084149931780141353601682415766663885488644632713369090637041282658780238619221584415454821779787097769559455134185016345512646050995859712527905461669936855800896126028417326163676221421882456404994707066107612620983364477439702158383355287405473042082048801682261725558616168584960270384562298789380563655805543688831759850070967553561719320177507846718813062030732311971063870187544135210529200360990035263267302300713274238205688228584109979470676921291604137881931898896507126876953999004044406910547387628349466886055901410264838701780785923966636925906707153627289874505962021495190263708362678479963046699310367560529965976021842000384233856272203112283724586184655600859747730181996541818919793964813481211524849488366613145520568125282187222276836584324525917151647135078646320372450227718548080842898206500640605657279968172132793190347522662925493318893372237850035780592256894345185626238079172498357454564575351520155465209132614292196903806409803440268078659109915688220935243115384607919488247030190972063544600136304026017655761913324297642301269340104567704797478862246993989865560219820269424368868141894395514066283216768060833577380020696386531324515345652018150662630396269188295349135910219574297829976550947996573782699221801882595119059365741719926404666221791570557729333843174803015257426446198451175266778569319887560434861185573215834050164134479922188064526299984848790237152059677640719583068648525655865067925721239120038479211405000469467735633787884593863492624360836950026520937841827772321746865479869337991198766178751904863760730385496421466550884761018230404890044068692628820548730248299804375921976529269431563511524949316933692095265517705696691803681463609978197944567399593519026136948486625603279943628196457702905946453551244040681159128540247387232424912801320005186908437126082860568970877762462826616087580492582850691466584228597415747998295441126053322343577316822891078077806574791800987202135438391930357030805540545200288615607952956340877210696572709806020152915911283056009036375179082060677534257583539514966104988105579226910364838420615044923092969852160608022259596478917500052419576009277907638266080093733674169214746450311226240352443845175804338106845873253283734874752785278629889406819966423982263316176708881293439311523922086212774759280553734110099082818871076851565960999202058533430849374268415581136538832389939805912003661202392727812885585827392860274650901204966737093369233208752964643005700403467081408577203622045686569720726518225887745804277443622111432192945765043517706159012857867783560219264746581180418287515805446633820154665485824769666178070996605439962105127116644131330687190697435826449427007833212583794977699180458888421293299473816049662475750406057350889816441585833688524556753095374736486791599632912147848350964252866960758560149877934233398965246274888219070291732507161100061870968661939063871229825452409459707647770932284847123252000281664624863566516591989047481926330609696139627683630595006985281610955091018904458682232080200538342739901781333561782403103677013367395493355877041609283281101898853100031912688120886919595259371983004409081504635048103395507840654542244399146056807464983629729792469420750665645635197527539845698266813662967114257364674715994732117178552768121370697688103726856674032872833810103761126565809063938754069692180329333516203158853279578352785909972876855263232172381082809175265275003312834959387313910628450670513514954646574591364384486322307998642331444784311872579245032859697342348444288795632852957184414351657003534064749960509627529173521670007001453101222547743677880368713050226846103176922864629812170272478855394348927275571250077551910748428475629808000714569731948659184973201610752739208690750798091124278663499427234868863607193242857060294811134870284683145787538591494202724737177738859468138020648843434220841560575911361918580109581462975088508837491719857986797450250614184128791958608396819880991876762820747035861377399863648296350665263919678793830442225845235821750641927690502110119067255600464670032892396712680179958586194997713476661969827267772499869102330916573614646365839905108790720351332401237452096862886347617798041390090678227808036840455946827865869017343784079943657497670516711134957216048913641511142137150897403577132349242959168503038572927243313106788614470007418665376627563059807474906722494784270417173461122183917255443004152498130434287626231370476256436301052070201386233002126525960172631765807997883801031853124455685819421805616701348878174038406954605090145439794318190768154937261808562632583064625981686976153951307285733989695812180433647738019249756192944703366721378829137227799752599373098245014955930733082906741196244543271320714569804474598748422275371155684801628381238924396022464648759809179925789890045651481603070877540964873987162936059326269565187113958976746128989415106058193703260303154681542262749261858486960037550318228584283810499748695131413310029107721227310115140289848752957621075775657021033970687714750814816580007046823120387876655938469695386996335404417839593574376160417300697104210741467900513048718833712053242655495263837482781085005125143902417234159083770029491259523710827613873539909892862802190042963661033521365382154365757080496662155428685089305783505993945145179504715795216303540340858855219825226900333912422320211786681856029307470004246492951434886055216282571765782811952692101172641288616017238395990035187642631938361528163195251052436321951601056890416644967585638968610578567796090627513721364448270480432093154840981573430821229301315715674352326739832323606546250518031303371868417293283948735831624144910234603644789654415834058222824222110664025535520957167212814002539266692269146995030311596152822195773066194732415074289829222834461356110263465029364282251528643127273681597185136095476690042604206817966774854560601000569316906475539372025313447179790127615558241661031271827114172859594035355386820415583641440110017168266625744148647467351062460008035178368177552904297184206268523300295581623867318678697859450032469031383208473200609942266383383625970094862117879256533688992851815759734407833141232617656093969741833726478567826564619426098193027118993055976345455852300815763789037382129551534713547034284413329229698085801877632606970383026400756488641966025524879576775438339551501454346869915561046244133701523101022140463984329844023979761514787957673743334854931530583890074063110106693840764506918318773028488166004550864526530910736339475311087598704092917414688495834099445656790969169489756764583883319384859928127230465264995948454980704461851069622482702893788370974207430546755202927314035092025129178640406343620644861163978802897689203898142079977529070622569134377542226771742440495811218152454681556302752622639996804085927393074610438895274745152615752755342283608662322497728502159207713671998079976025368967427598117604385450527239784768509460763669889999078162209158696303065169931105112625500779730549303661445774341649838011871703137637196109732977709886987619445527820690232665515434669884847758437760466598496638208704164071405051370200606555591850317299224317327782420918458391545549043711720869486769540093101814084299563690031959978571956237380524826058368109283611654585692178998404115375654685164988921838852744226451677990401781740260968686126777246246664801763905253054416005061733421068803450035567505463503967911816380540956400882387866753116038779108897518714091927622265703034685786023158618369790955770287158502280480551239039310639440736397741973374962220198671088055239961238563891192365413837647418747073235609901327808215042779335429525977832538541456242360388162975265564387102108369856548988920059855633004563899447005453012410653685883073597276016478217054178160675627741073507985501742524904756558979362255228959936266541029958288186790494359235573347324899593374388516281913210764753615414906785436690283640364813697437901158558902774097532388102392738200619165207081666454105768690441299204445154041377394799070482572400561932048548823569581284844021928207765915329887101713655557651940869701661080370876513799011864213962009487749153769967967338375401692071250604099156848624267908993085494528013816229660226831925524367725969621306918184866094634812830474736230599862728430699039076819396877655403581924413910204891581859681126300238695773164394001476259080635516773819879463413368518825354472182685283546259124329192977720456920672234523454588534423056068321364351204514931478411249165377193891326415685339895389665806620671848412210692743175874213037690767475334666513683603711398570032057958046239600330292860610288201882722155099081147438963412814796331222242166026675113548346469793285324943008969660361451735215794217413018769150706400533271159999886415249302913519792026123979697404101514144159726438404301479222038236791410684423963446876136797493588262856865684273565441462475076825061426294738646372013024911175365860519193336052707999146693796938584207846864747263685681739627449751536585985344019846250399548784520993082561314324157682272001032179737736456276449469914361391777951112557061098903298372010772109600760741818644334434993254274019278147064263663042555896056560509288861404243573220859232541102795028777465212296437165445069038966945257589865162224013846638456643834690633135364013598512167525060851927933679478563855948320811674679555397749966760791765061255628161452943242601075150044856970327741762058075819375969652241712025249346830486208145684048245730853803665571445156185115785568585438295155149837047862726099653362015780904207976161371700329862808868615342452586008825977682632069095702674955678339401376964041779473657751148389966671229248223996695792701948157163881837552074997579377563044126641533503933301045447714446335333415358126829100607232934199650615512605041392509022435339595563550489214827803391796671538696229598274538783709556129184464987205052207425221326718941655656659207309455806308190225990555784675031364023970478150065492392461391604891162809007440458348077377507723637790885584908720547682980229473495313721728980113275917424342705167278481812410046236903620803028221025248504820833408305176317161096715258606983650157041811996741482582490579099803052366963084236612794127640098769245367127552858614603748022333994512013709706366099774121670872544908747764666630357590346792814492130799315008136827855000973542155883281532219834003339518676258058209578945255601602672625171664165233453665500938654211428338124446685822796379397608580746952882715256262979086246637662888073375332620413062691202167393588694531631801373011131485936314454534604584489013478801257800477041266288682544163211081181588765258607225302301136905358205180197308287196359445526282900081617410853446117556744343713740263825360652692341252066097434810615780996348919443416220709731459808676315131993397144748570338919135411099858277508475536154498747349557497621327922951662696547763261274523736490746311139730716865378927667666711770181031506356900539939015304655119378120439010362727225237481726632692650958650096427265256518688225306021134142118305789638298899961947719646646899091804268024194787094643142815287003037339628063585859177119293401241382119000274441369760486843004612722663403006371279718934868293592146587638508486492504130085682606466178630409884411776405004640870371005564003184032930605533675376690582588340689681651281549275670479529253888397714692244897493576196287972191732882644143758330399579318474563008757427497567870244826305456087734901696567584477359254045139715217230292289274102178194468245057045064859219053032296823350234993019028689032746135292699115345841539597523630992624488020444809865911281358296867261524039469006231112031950532025053374046557923760716068724179555422208518855252325014978490733603015915365617766208728194500750459890491342162645333053894523140338255474055269586800009513082152169292058584893423470788491478448653077811002667123265540746032861753275204212852624499643278177586063693230481768926148383736985242173636623454847552571050709982496335509686710278114723822209283995489916963628691515999424961872188029457153237924032162809868942982484475728636542637438344452048962541487505633150656451603282869456655028346677081089907749885973602141044243760851182029200999046520543578473893978714544063250384394018285143173979708188233920004994825966419743871506143210825523377662949508447577118500425314951216258329566256015800832220026665066508126827235368057211498161369187489379959719238166487327088207830122549066351835609955830082816825899711707639239895095997282853481463829993213045419473083850985917901709037413855731814976466752429708191491162161079797194116504551790150842193385741635588758573404940787262098551682622693031734083604677716195665429114030309582450784102648004988211670668648399595909618103407170021674637097508277700147916578489414716057133151053002974523928590812513612946689323364276951124318278139747359091441242822686997300016434792380056372840652964645114784633421736581040898161970724945349532097374154700063343112060413121124779827149027982108114761580303052079653018415974288871445645594843214600433911769753903018522265783685084856721118731641777362463486781486897139465443835811672543583643289679925920568098530417276011061303871707179031100581325507992012520573785574008334789587610878003822463539790985992229690364302396197544732495675508811561991265811408653806854845533105278661300898461945257676721139745977876687552864811708353706430826514134924523133285652000867571909930406948687884938166691585348937321108714375123349721967746234590414430750997335302563984558551664696040307825458981604379285969076647736959201097790396080464014762864950974451670840833849109810199309034151752139619581066668679815230797473228163177670601909110402790086712171872652069764598636121201045550150062167088052602285964566738208563631560928219435084412164300378123817416785019472053678053729232831053102138781401017154068832512745205882296944033579201353518552458863188502066126745989242173047807588255829563114937238189134482859001021894043731401132546013285584170761408130990037449322116461424136920661950289691253259839330042968304544658459617808992795565790151213698280643238901748240687465936824308986562459678254094124703553289678465380806514678505047386838462830914273577194574871271574462105714583089394643058514959450620591425773994886528049049937735595064290202564541156140270023042662196003880154890559479653345633741178919590199512824052111059481888128187465229813312628444133543526820119684598509936323383122369635919431097106711472153758346218234370586987958020618318483510774495862292418821005942156630218384601847615842911869695433001696123498106663637190142550979176309313686042358424126616563316175743043490326679718374166986830317186110045283020732746135731324435070252946881384334680125321524208321226127008713136261983622797741860725083622617714513205567050104170503752218226417787058265177598789876188399308647479116294734205006376852510365114982279883483698645517122750698284739396414356933701664893826878621724241993817959715717697189742029151783385104633848211192807934851351109364151880064845959812607764846295910126971774635611302122912030787229987736109587696277776166656214276189407746095214167822563746815424564427844010341066722205022430044221998472625088096129018798488428287814132717256491042856996045394523373115485812138504007117282154443882018823229874123376269866806735785633179477994932492770545437166504674260374639566455316602609239608712270128869550947192201776063695189249914390413896606530691072322969351121208668518887272797889590362687586222005461781769794332814990850333719079994833562045121341664620857128048993873614253112154614664292220369530839037842689169940700780953627442519142021876803190394557002388879979589551507653558414851090356884483253689928291719738744757728579028326989209056845309399687655228473543831705767937775605343121527731199204728416837385404598118661487128694194302626450121868391217048592625318914415945613865584112696286394169698619408263048520863250527926757404123798019614734790319261135511034998880511514464078548653600953691825152209697178431490305158479010719612617367359022940223091533885178207515049013531495257092286915895342932187935587255574435165220658030361058127355013545817441012109941120831635870844512604730248533683605360614028063346081712373865800801514516437670890547543725138002196555764128337066560849702585235631858768022547694745639303284993644887405156514106662786730238280601679459418386596358489405856967078852214990522443658167689784148603878814709433083873114229250622313066102602154942749807831996339678063371111021711245166729353276871560018339592056658727203146005125830609239664657487054890117454866636057381109719777350806727590511045183649742452128088762873674376123821065529217421877085043101261033338226678294810379336817539910025548749344671879217862937783565944518464507080715192477948388209263761144702723330163780383752942834314094088881491413261305467282525023195409617993648211465065001880744867625173601541187676166125446795764189232082329604390417494170300408391334449478920304040338743292258061876508208485356115841753637359867155397533844606271557117591112243638964978394837257917196327596376314179649207727125985658333857565207255658063676920303334448520384436240237100649019082074083652088752030125004566965442971705201219673271131939336869852962273025598354182632134242413354706168621996266536640906144158522444241117595305626616004553410376737901263230955976558997711316554195523467209079958489896260322388555947739285398388608172995187371568954342862180333791204844244852273191479225240769242424380303021231863706981527123045975670913328703868397649810583144021641224875448401710697368779734832789130826659659066414845521977262972034214400849901387016849254878305768041653973654809145317331658791434574993770346781488972424415912835149796333789808636883581522657495055182751758313665155327568693648650622832602668936818234256833371667099487532879690690006500320928415744391315718081436728760366482344522051569749685209393368742354243707668162933120127087642007572024271212296671804089343640878256699211068010569219697730963936083383774725858192295725420981757259394888698959808133686625331238159404683165918700619592235889987391356780625789032339235780027528360957354795772490130894944257634614525256610893727926742431958425651722381582687503806465445438705561740521961346960771856800526255445765344296821155505879898676259208129060631980549264755512382698396806935449445526186350448477975013291133844122597170956280383886669459256909274722719192336412183508744807480980560108974769431469104187083753369911292314778840697101256923182268660507748024546492167769893343302818539253951279208713277246767003320733568499072667933576728823850609664483800672114978191461351453407567175254690190645774473722812762357118086373313460242333043235738205879943633446870460807480042483263212948304781030251732408669749403528335868545593425327171115603475565365417262456535064095657213589546606189387796012429415861382808067208584270713483461493418133401936484833515327304031596727728871338260456599101573850982259132126099068923221810769319587929334971514843837307287859496046393615695500004095865184916363543456426029744752071072307043257519944878630252506888024266111900611950501454603356205915697738539243046895417723906729361400784094134576709222540159760837845893220747509102705962808781576227329676203568258329553291169286595047259165671227485893431478661996664954209636444891904712231180538232570358249422882376405019596126245545050974221839471719323278305847771006216607864306689744004927660038862402727637702900142607781750667761383921005926103056328836104030375300985870112322452531098511464001195511310446929274813675259453063491311439527744085025182220981508825042125179984384654750893703301168447775383369106639353297838245179564997344238266882251886639179829388101544690282470404550322149820932777385156755683721164681630063165400393558009559723643819458873096233950781603920356914421793434674693442681371312433740950316592415604759152648697630637870840068200629955284846697151698918970983777834368188937599100517248650977609012709203118908214033992438769433841086080350882640259270741044048722873283495776187455173177191101770902607926006373708814422184165433185415297019161515635064437940722704081083247390568645140662143498984528594657336101789648126535105464141810852446776202932596230090455413792595050076541609013516382855101546744168141352012890658923431733058210995825583157475424591748592075942530461463746237571100122446181714361539254694927286012595134871200112692275982601856410387479088832002740157416945178383969908428689076580463209935410736943072202195564955671812412641440210211500090202290953299836401982351579465288583682602877008898702819530200158712868734967318423640173462844811620532344066702066433301362178861487056708233839833086038587735466926252893866293870578660571626467786506345328250499255673509025601967087290378100850793269165915336040012761200095989233424404632650062930071232369114130858146175132423451527025653080936343349221085425429554538551747141445949378523925997658436405944169773456753552029900496792433364306856209609496365396009327712382991835967047881700045686937733666172142013051389147274594477176193418808181270744140278638797166244968081650767208684314252102531397105106672323584255605084200624708314244199633040139163551528595130593039962899749469893295776971024714460907476785191762019401485563424822530990506220317218793875433084821044372354853315513743920319069999010181079429283271235128346697334305147912782958862404655563454352113437265883742088225948897511154506415433947230085803754152794391945455592837239831486346596820631284688278178703527349493100306117219017869393702200538273123706219355976206358699949952126025610712150577897333151889238876519001054711500236172938785059753004769494177308056258846217267122362383328442774583668036649408268924401434627122020584331544547053415665384003103279789387252745662738522707722180714176837734081087675426875114005689012278546597017386022479338984706632044816386541643791082062955476229275330724248916102291517563686969720688070091920928711090014716120124039315496311657366108405197324727071589145002753207458723433162623578617832925420214905993996452563248179911100430317105624292645010034803299364987788124756330811843246033469445811478620067920852897748424806279398158148609952803754765470519322296910487422642053900608879249867980219748260795297687660100335031539107678275846782885782507679342425400911852635592420633646236942983261436511674865420372590165405339046414749165063255997898761507294507787969028774372972264107467859749613170423770981847557569747835780558439557214255655549753296080076990266966656333890579705928783961012954640203679615688269674652727872720055822047907196562985404704569682686501081402941067777482045909302602392234397613831920425858413268198784269757048937104862181720665341253023034598568302309096181020325134735268726752792854354128539105603210251621644358955148759762404174057854294264949150648165307061548165501785317109949199984789280772650445741542265047525545518730714352693463243210341742351213491374359668286506773751477300025718550174102931517375055247009142141755815131977955535232152743388110189000884621351222980224180395498320905652051625061294810171043684530355797074700114786662551385365892004159308117564416905219116829405285255369646800270107503007914148197662970595310893300276299249710742864178954664591084958034685551005613655919985292587389468007417493276618086248324039376046211203997441944739217098172623604573511950315434467874086692204480703735882221507468114081611371985910384165195605390623275137815262055968195817241328735779978644400924615106040583007208910417203136362433466501477271002897921390592449096938811015563577946052423690271826463583348966033083234111547028574704874862911577380025960918373811543664862675918122978288353907524294683844775076531248005521835240743384637603718572038196507857827723455417358836443564158017920123445663111277795031285262645730864094446092819812255540997797162721848143692197446899624595131100164816256201757231617713997467909218995233966082340997397168494884596378555890491071961198846468511735906963342359296853021128067564611884290077882775350916714248123714889867848448235471269844338361169767022915962354583831220653411934150266812700882016415692250151870295765574001380816222255406805979315979180761089418150157753453971407690300248565711885514049469350761855494308704735394820406298718144224728301931067673279807347829050104376147251234175539785823759374674699987398894471406912472624762092317792153740884261714991918391090690181121190703335759798421761531026037096768987374300578568324286162705180812184224840211525881727329781722814640387094022905158461369458547842974622203757902967375987761220581956038777465350945377938640054653408853501714161244922807107580845851619104674116777135263480890863098270235407949447744674647787157224097981005015638223127614281661448178114859916036664497030079556734991714075582872803090039433404131718871636466364915459954142011344931958653797917548582336555083805144934833398498801913436132256791103096085452435535965816858584209919029717455126330972916632690001831021567058953922521314706801640997846645353722705777686466328275152509198593502173709989221087254511960688459459311594931885251959144370111083515268348699753575350013260484692456904110556263963119109775178221697372742390970938074693926539891727033208960346685685192291064195856665622872309177276844891741401764582839732583845958703163524934276334456752896058572671415719618898768499813804429601757316918897141016750468947378326499917278413680657061217415959735391647775845886505500025840251742058676959002084105756966794705370808460762906406464697597334869536727383960952933672127329195275587605808593121587694007686727162534350269619445308852867568336158537398146948886203202796568589255812023810650366659713530281616993412629117032752814891282846753314782327147555267010655355894172774209375651753735690179537220240351730080625008457038498489716201210861361663877126180341554661086743334307351946368997782444811539610275579473329371127765363841935125940546256296568843345590603820568628746303547518928978099450777335828924054245896173464538490414761748451242725762347211628375193862254538200232937580160291179992739414094542950636070069948259413571652353336943280144649400282286731616712387058359446329021109347434431406774049460563225622140017745360666682472897522880964715932452918857609746963774674900908443625825118548280160515323208419094080729147533507852888411737268643153332935272588801462171871441181218718971367354501608069452533894450922558166354087984342959410054622440580399928142634184440133911945320600332893484406485282353139336073493618903125007583669146221030909220421016487213937637124287802320830883384955698671018635371309531105219796624051137547176749628904602461779157764198401565581649789841300460062846523937547127613631017932021226856886954436194364357513864806201538005437222170535242762517992688959031162706845732890279222540786930355756565657197308937177286045155869209734373183875423256363303861256679878609700213443021073254712342411067636820623496669932797651274350929602434355878459828169876779401426766133892881298094381755715995454192921790590793814122731839357150566705696353816513022981740599175080194184111794834496200114842063949070132801263925289473847612824885326429305732497430192274252845872496684488269094543582823788710949109746225495056528208428347272296183997957648995492959854367956598798925663460269756388100302429962672286695461671220898937568714570174148284524191438775879998149218989395661787291041115887877136036412362057831579680824396966697370765139452358107673822044420681535270076759829180176625998921265303875880240081059994593746023437891417587856092829677121952505873548967399184636366621920391433129469804379630186839408945425301800388282013559685288144850831759827740789201804016218985180923250616399589097998909851305906439002777960432593686351666429599058891154580268508494993879161992237515424424415119124803971408495704546510280694583274422546253367881705046532349862408508224095238664465882784448435389777623322078043524492659886294041248798824874992175789117519307315049627041616065073831185514664116677461467338607610243438638468432641452530706894290448673422554952450507038369120982890764532438440864286440614630047958411587656740578694581997677100094619769049137926042862609630580497269152770121883216772517484176113764893187447461140380322055562885787637998651555849342297625741787822806806800261063114110829965429455197030463460857988475868873646208127601000451427674366826102598886547467957887601619490250550789136095250387100070619126283803459905069968968968738694229197124472458018282246692510960846122844727967626318560478768555020587061575917767147051167975890512368522735342522195043756437541413445024956962997318952982473924093512628880007673201161727637222188756685480410392893151708541046215546147445824049252245026864650551852597270705798786259563058841363491221250539266182118707750728769532920019120215830727586696660886539410506822394619170487917068989253911163965247758036303105975046762019191789007587438501826900713324407352068355708987549839697179572720876877081578352346862031761831040693805664546151311502279509339031891730196472797069113160402228025004089389439083449867310622213273682981706228122454051341791651652684190839416933887266155024576564486351588936476146566556959818959641484837481702001573319984648953670939217605191647977656457281706702612479626066457257620681844119400085633918097214915062393518917587328120235292394603304963373807025597841176333424372398378302243750895332432986334951824832730955241746169875204173347316478477339909701744310952083904322633006990109279826096712964582168873514561254159862543688102259842146212739990051763434349304462664992822040167507255439581951813062430148455535540783136131633061079626023080095169564206690356338005712762426929949048477135650655807434750329117700292376943593429705781262324631944797527088970366262098425208912083100048834963434982987104796872508508206946126884334822393148436656540093980320940023885897611328090882111953852745968523353954962808016758836736787319087944828401365962970354708590263206014003089746229016130642954573198143323086077311358331237443966201226426027528718609843030821583455847709816542612065846470598739684822402086077160894164471372361080716585960997307809371446901577675333546215256969952237341219347230334020163341935961734618505840868236129728978989699364202222100388480122136118913874714724351639350996634023654320516904433283206448712985314222375566347034325805998160670860514808950461078743453741226542384991457823126848969415225088473796899315756287142945668910849267668526602063168809927531445123010112889249542809192139661672916035017971573826687620587245726699723842026322086500418340275159010720870629727648095599352748053901293010399024002104407199426102146533806714187015072324235170347674741848783190545590680405466879736821951505239776205136038025827366846216501750561297680292895645783612269328222687549156128901783697742316266290343113540361799332409209339222817220123339630381169028517761093365458036740273752530793131559924011544311470707584732563738502842069347246040160289758376974730717945614761633165122353381120475110857072091066701097659157309132307794689326005542863097073219247313927968876920037040368711775865464008654179659894794352783234663263150303956409482650198086596160463508554152353366438801816200541370816751323171527918339090070427518489454758079014165647242716040425781083687520146667238872674413358003750699992617501757617852658195998876796368698601679156777617880875227613386596307596046158291762404768266232656340344491846570516136786622410201835638642100774817577933348511849936257880839990166546805322546665890209471839488973062296533075319770828186253846040708622328204831969142963045267270468998756065953712173472065572822501267453350481425714190315044625837171260394471077443646831093040674989153447692822414975552745963687472052479074686422094143276740858013741309314958583796386874828054665511972025809940668699740513784993217584951402041314946111561115985517450512967751785793135731759342782903107676439897318141556062317639199817304552280193330726000467435965721679630073384015925683485363140101744675465187661365817189114189883894084682487269855740239997839527537823328384024921945042961954505511811381776928349523541512832161613321547697587643657098383623517970436373124998585696820218266659317873303351404636217498634222896465390034419763944980526168522713174087065246220231157995838643660454230325337334312647401865593199836395929899073789168265917057475215935425274881555772573286567447291085195050885981029971332346699263467618842997793477094478137215142896893683788308515602311229816734666560624786762021865410860665782785164145785644166637434590767026436471777270042964447656738790356506823197091970841412974265691246031194519812427406905013631784897034205064521181857187685270117567575443163986310607278929212526464193443502121790795872625478371966888145231397425466649175948112399464051989521762981775142162455009441141561723336793540196788783259359122603595727750518678635897575789199118012307793306954405984320357830715064998398631715717982989655568091251574160081046040224365149110797773289183181846846012233961837234419568781147981639837541629302674410413869327036661729424094160509293226228897544630322383395772749194455878049167338341003661569812388147148554282883792673531446526909988384537428497144918854032650855190895758432248274499853174869625391630685939918598409748317504631050058921612152313974789097452781490077355089700296117569912854931018336612747594988734091013647907343572143571251377760188209964743934708356514760236573111297229078407309793021682741070766794468743898109878569454206344577680291181204500988201855721671004306327937640204654456967350090149997228407535943025301072982013515699482428694921606035288861463593506996968257825773249307172351563717922814315031269345392410263517209916769697725119064540451244029795292004687245125076040146850939744263642732225420907959344744178268214552241008090065086580110914866330546532457342383005172327870817287823274469794678624940213706003421137072328285555818047943413564067730639614175081865636613175304057729304661514971717636116117559365426023103623469838671135724409596287777661251540080856477892445841560484931784307732245753294825665207883072925941335631059814265789555875533831534260541957972786430582903272392953941451096683325021832230151303490123561626495189700318894127976768614140150562816401078301473813462050061445726588137672994545805085974740849350070302540553451676143634370457267629413042344830278500603902961338094922567175285967420826129152811228258194674710416420765407049243465359850212336249977455980060272165948663768688327483943835295277070138507728900416443071994423783747580981911422050156456657275430577751039268756001393495154836696266303502476857392198244902286592956821378492980442529222273483150266586568701001368479061364139092510501310529488087975661397154397479449120295186798121255265114308430316534778320532988532234585870704346678581618066920054369218462249785956111978976850616349166511783419644469884063461657636433594089775273073147290858642184458518827685634392651288980852241764779698616365165890322875431405343875999207913152276451744117079229242442967272877852636500033131905753775290654752165893170705652208510367609879148030421614409438368857011572035407739327725737921525596496559937751500340616942976214039478582314718198388590327784079953135038893010800379111907318576409330376472795026683980484961455737009299310062729974548352753859074798831128620407280830366971993892469436221736636306555844085942464652924762958629087613686553174429855294429266434610712812065319254139758553651548954792798647819247217539509901142950519879568604455874480895350436320204301884275047708874584987935785861176570302370858538385184972455589457585434074374381424670500371624933149888073921340856510182716783388950706550086672551646183801356365497748200513720462609365834499358656962287479534295432809015735073247989968832981603394072678836061202484533865742596950490038016438708494517485171327002750375326322757301750426897788893729510208538414261484020612797698228661806871881143832211871155402473453958756314827478258509822532705133383919786867538148473306933067549933156298990330743501400652298485761811975149386524106019636113764789121721495734929344356074086520582909872022102597498473242252892044257668768050128240447469653284987396566932917901090789763901514372798749678608487345694923870632457117179869456292860441946323392087589808239312533732334121000588403613926124871428402045752932069721796365836285858916662528790588677537484840917394295865113043091152128267740535119818008563634470865742398514752217176769296430050511121986598352533940844049982442735106052564166026892479486367482653080599399203886454579537694651349328468500372805502540340452674256325319936695683675670697647119281319700958748487454914638793371592702848012348906036556342456953736152748411044764444623706449625762958730435860118042727649818815323157668182039661272755561364920871284507549913629749983082117597461287485547827645641560250556863904332519881915798170097306779598450020342181780759422294400623653254244048240470463021416378797692731114546259585567869053458417115449130769159071578498104927360888446029875680699006228733851707770126474738645979596057237711157425910219996766429520727144492528040376381334631995347258142795318694127997234235622994210303355517295078561408413848499864690287777867294072996205935806990542870200246001556845138456294941194289149707321573653119788330916216595872628798498510409334289131127275201358399989638774405524312396681198488553591788972584350686729655672930379773119303334008479377647928786743070217330983177749664729037982795458326004508333333809902055284819462068619481940463280531611919745177123062772670113699466025218616361373090743493879053336539871814488175816675455836875940717683823437432814692709968236333097718078872239420428932972078979276875236660770635152945490616147768471079841466916884759581758671688829987343836038552199961914796113369826027922952101792525531764470275873703581510916277194003146953688976578220519754563938402859313664949809083852760723983745808094931059295539648438908740247970433448702329631964597122501547303979947611820929260898085430523373958824068647751916932121151121278263817981753001614237321779415389105879497823718903505298648169177332438043021315246954489910118006100703305121184949639393631592910534183057143543701928043502041141641462588814634401316365290795249461999085544590186706668226160054704529483567940199643894163004483038688679258226816991089658789348450715308167524933625227861951214444600651673529239300340107572402946020383516856892256886693848603153798425330443625579531735599228264497205855647377311341321349717089933776150453367174799689070768341217983495893837116926652239513278040823509964370645345637249929747311732065167477871962593656211283357259181974493239091172926440591524274931698073943152307635515791449930347675568703921132166473748750130469773031805267897247149677862139886033189923763185304841053904033220249961733403061041451841649893769460547579060531725587201328784900914217507245409330426935752105542590144370578941241241142107894959280109933348866200677296911496168662755459328805957854897047799794207406125203154494580330692367352601444271462712674017587099524733747981503945960399628093894713988776273967336533614164124560784427436516410275002364057750386290681334202900328367603995385097201521339367190945010849991825801725375785948845532375263700228657896937608588813065657876304307007323035378706357353224759010407738454843463916745345224000752687777333533250098456712601305081933062560471388287158206432235066607274962713186267045454172951651847376154811280514400864795510107714978837067403030421055795975763495998531344693580520319222449242854436312773397730916909360090000739219102531789393646572896343735090541565341950873293589330052007923560144881693953619636450790991858802515999637076196262585172648827542305836195448573056830416984271156293708591488974948984079702236436816779895686286448597137052580371485201256525866435256125885924116837313113320707596951445959518732048589903917967426123107506642245267677757822747998918035762313985310778347008243215246144480573828445361658711420706124049010560821427117212357697314443554365829801331658427864684987963893848738653673522647191891504744409783855523719258127096045827234325410818763988557973498128531015587242647528737435196310790991356550641675652404509700296067210891994685589051369926563108257207004794624478675587978943830235465746771666897854909732219617489293768215726284846987670914929211901057694392774794486345338408028884112323216991809326828127436994734921049257882272197974414706316855573704341063340130241355574788618750651877365829693097327814324412171907102448091484401045575507496533958601915146746232706559585532906038633687290158026593882347455045321372398663719281828286075031527103026944886474088763754813365244368769992034461155406399314559046828376628093808887829384104078644928365491962021885386503927469377434231726409206439919878646108516085561109864284123497216891201074474524645201540070928153616907986757371114453450843120378840523648326745533192455120618452725243709461457012667062131178950665778764244600177219197793066687374817250745271873734109180532395336764778908752900951294943351918221833053057635630689731872731213432770878662197666025606345144162071041835406411986030295183541840216315528086652469469991691364177964565389677856510857054627529995267844420988769997324601330604404971376940995638431755686657041836777639055500528746033894457554994762715236907463741141444701958882784781557170927080456835904818085843025803230650070278315411837764425504214849188891187494467789016193975276786748327596928707674098682218734468616238393315492435794211768968531881794166395523494865418847908668438695438084567733787367912543889004081354456723850623034096654024260008433050896028830853981822415133743329186954182698140587680834850716752915734160026785072820061950499493392595736368833147770712793707403985932622975489256149637631653306385971658640914093926803968336696228145704069222769925639805622394599323356836493086538850960017510101851660506903734008689049022019123060038271564855808561877841454513121526817795544536375201251076788105729525727992907043404547658719642071985287757035759648224379462609796337177911031745067266517929789931329711135977092580858346844076285156289150262321084400429714184525035040761970526725537254382268555171768294120301087330559491678236840847725896919993915354223384109137455229315518917843064047283465483028260835214351317175038059459348219170221753099250535227221456460964328237749344033777225660100345814124921214501258198476918266950285878050019607994936396624467915120383422433642324722615650890858704895234835594606870912756577483925818410371605457147140560653608684442255925563377371989398156628418781075731994912808014252876922887750605051341860037773106771375918968239296353936516005953677867667846455822450424197319921454989876388080496043931288656230519636096297250236762467094338645105623760769866445478804206916286147401809445375245061490922202807712499192944707859851015798486011257790676931728356386991595415432330584303663916020900351809158857987914517021064596338394147165858815912151112912526169668081720281622632998204609832421766205628199108254610822484087374323509722230108692960159984181726370249118366188455850916249170755484114638388821645325751438672882729332840839738889037873557656447490553880721009783377381079414526866669859559625659637038692010084866742079822273290032485357786637232337979108931255458917415471170020628834616574291226606672537034328942443715292513894613674538585642990276038556071641110392860042773016865679425093776838355298869625926811265206312873460975610184992185766259335908602523014186996577562781830858310202875766656969796083740888307914632550023216514689787335636094915395527321231607471860560185868886311853702005314670879458370429139764754951939203400413800164972058343689961700519746571437497076067211648155485467430866642331672421729872104885433858839855201412610387676813676602534521407750467602537847497435529603244240051303856945129488877079630839816545972858783249587083940218738098965816211928625283752660051701181485940121553232550047763623605371356046483279457254433548812206020811393478635565527291501398408049856324163021512605839614452846535826878070622200885053383214648025526995491088742140558717359523193906672150867555092070474650913647654256004532220224290270948046887400657347683996213515634655427260573019761257050367651701126936482142289339797189469056504469565130007029788840223766156630192694011981976396199632347464233692227689417637841332832156151685060390381319615341542967701837512989568915730526262261360845937863077305689679200197089781771163850946884741222297098682344878427840477565987444180972110650245673165901150537158337695982930916851010556315844145182679892017502086972720965683584043724021469597867335813678174845156898990347948824236905946626689163355220347675585707232593448567277526209347682907467367778661769672568482742776902977561924872600512318074015886887921615907581706898404795415019111227201963093665186330105787829460871035133322936376148039419810110927678914802668418515596046530223368690887743842005585333940519641927410183017625063390869077118575164063393170652925618397885067974077631297866244782891674647193293742955814830431660957821630523327205714620976107955156887604770280874880745752682392427112801039606151159494159366739416559667008223414629175762566171282719834212966092339801110559607427477310571935701895592308500292818591113300995490578209225116032225138333467626910951594583588384774632083361621998077714178970442583992551057304429378129993370827022737494221928538976940424624133611415199672656548199339656003627629296842220883590066408603044127744626962242315041854575102434547044689060794114701286267907332504337564865137026102317371840660431330728629768824703003498595408550528232716791161201207289149980928419824435750974762930860251026196120519382750157203684350722541089655427117735095860800943817781656667639636352276953660678174738431629220388915819780624846492968306511351430746962896466970019668421625141325330857828464875750684103015170908808453250449002663537630427483074303117666223139208361118269587688117059143291161529475121741163364406011457928591325630303780026615258796224579452235885891008038421427813106378833369490791665484518510629648989144114886125421996402518363058830293424533254474340519995866419058229082576169325978727531995729782920797307001065433036802740897552368555075701017553143149149588540678316047000028465959405855427523352641891354219360837888379393570161592129175351524475810762936468254794835139666397029323366671490292041502302160232137334288292486295970271144451644110510929838256320992680339219751483694817150955988804437061800792474621560735230867668069665139575732380449326673110695418248176917063651498179196692704561275495483278978790953437650511954459345747679227828708819950518172426859337378546664240490940799670789514890928434666809217388680390492214937156235674163487283618408819192454851027844579115697037790902531648016588933846852184042570897666764644907329488035852641281760419795690929337177738345936669523093113299384212634725065663548746328553424497432560436510388102887899820614995134442824304497077401671808522397350232478099228477986371130910029292854206158754257332734803173656282220126886770220203615635175660005109656630760690458466790332584586916970359303245825748848382553046343147231487428789683807562632228431390831044940735613487488889740206599852479270233971727293739747456320982585027738609409616197060239035159334678024499160001612043696372492102636522033370648609282046603801049432149439637194014372570439343258994518454600952982590801820307929302061073599976965985696259091753220019780655251065424114601213996047771539081335292197523164974721467043513733188060858024121327239817400287454203985421086328396373269925015599605181235990100942344799075900677356680164765719132996084996032258321348963341366287106615368566426686166731763274000479421116664167734428148610160970623376875886872635419686097009716828194541201479987645142424332569677572278833599974865314900194297663972477288752071292333460449280902340927906981915225664218411684359168559165628287646797485785775396415317240451258462255878664891196209861175141633109193870710566981094562120156589448797518186653290336629775894427483469460925711289336651119477104649495093438852533730217430364630561462233390455774844535588258208571297999521534796177161942216042023692861504813572293324725680609932554892305464538357287365865035063092619871496650340884409359175280783269832598875570269579338422007015689596705520314963365015514149241696772749220515963743606619767189189751748147101455258669448991549293139895079259365938751917526203689327581476430012526930409924422947875474034566295531844513565252844698524869336815784353421727691315414600671171763520620297363419955746114189909989916721577234686677083947328740313190622870858943748967694129258188298955035380157988700189459792869727617006011022249496327491944354330551666505698236111949479798602187175699520232945735923642577927954864573723104823390488167360863987051935453925313130388316103299727930001330856936020492229877502309050395192084584834893226182784477316069513604849867229193674253845177183295241965834454528685102330921602274656900051787014743451062390979315497937765028119210244628474383615279105634827937561643689167115270269842171025405723474987655578766561777083381117132232210148438019739275799492111133273194203654317075481066105043097920121149151061930861091675510214403266211333549934565304150540662858599586334121464034330648341540105517990834829985782694622064502129406247250029968138817360836397132504867210171074885072522735740292326760059204976326966248948772699616786791970136295767953583418805294416135051854895986096620092197902813504261993447709339594804640005794029236093590313739353104596893221005967339216237450873312249574403658006832270232696664030289740160274424727095215929775099641153348660528300467164783672659116515566365848001027073590366078033654329575664125906533385339503970547147337220327034610657123667913943548127200872540193347779412686344911128345748075233921220611754686626875225205591309133181754644081399006708623854099522247866075166236103901067620534921188953736604538150198510815985285244818952109714416689428392387038099388273820235005911131505051641858204031113340581257353340661658607405185913715635359728896321258734572325091811433316964477261923578154088065589607410376134160708446768630830696261596582640688432227594588523164348623796142627282354185940424922290917868099054813257996856423630008972384608132586466844515954627177086647332793128439821684507801818275915352777164416576455269754930154777361651212343776841865664989395102246510585378773605917490535450809940381326920775493067784011699209227230523869136546890227557874067273291328218220448844071540415964104175324644395619474964453002019387398456157763885556630980986016056193705111457924551632580419879673839249449704784185232645673463921263244821351391131158670251881815358161040983637758108215532388568346434721657448168524045339922653056946183366108638712125229496947833004388941368142277091789273077238435499121611856933061553381847959989503138561922905199589489803894883056897300807557308744170308805002048646976326824303748526775607807066428044309859785611854608283530099606214829292626517504575185605005251577692694039223545695364371046489226681122526119421240338956832127999859816256682079515907037362925484133762804439956468736872464545419040843798782471763475962965102572615931647611620347047665135094601876892141749555309648657892716871476398044451977030615767943018630789195083092687961862281453456464650739488014390029524515212098736965040552651528996581616690598146052245214117047168822275109531315803158432618935300846862051382484074827691485420440553936183978019370095101691100908544251388010517987046856968830250645352249679725843834317745597311275749807837399905518266972187269375535785003971546702601724906342245975205038184739536670269560735225182801326550957508887927773812769008005087374450160715242302521248872301120519513194854531609635061012537113355670065434430661249173540129174832936164883292836060240848802450072928620642179862651375694234337542878171920810858333584036369818661010921250846650512958012108496459292668839772395394552244631691823572468821382332813155980093715477743636558275802046042640900440731307817390652257750702977921058479483330223902223147473499755681173189738074233875033059250542196462583673213569005358123096568489332071134608261799741933490252959347739739788090817256974110440474402139842445776516578000792349694375547671226012395354666561739576174717424791511148074561746000769676667444466042147043416200311047177067897776013240620949404486835093621157722934169864175014523405629733805413658992043824411543257467567560741890985400608141222962948519598721356900409424081736750504511368911430567417137626583645113281045344181535869430970129195867625476018958670664031732767266613200436663434715239570841043097124232975880081997288618422970329568097460004254194658335397074932666983511065112792321191660627606347044717236537780151057467438831661892937374736617978511459468964692635386002269353242586724621558638185956619546539389080621685244462472733557808293703454795417793984821379173402967050808128626354177828263238433541359395670498895904921732716605894155328970049436480701793739215197161389177804714160710834550185894647354767728925554439420324451455608415698896284781436462215551466158008256754990446430837162861972844829455872443041972060295325513856859524837423807456976572966918270478491493535352573964997287075150240590135908747532869258382236141586160153730861836706747384912619032478157284574180878698726020536634157325533607053142026537045508952731596880614006097247126874542985057290678894742718196943038257471301359405931241430057630838107191975995836723896051335462774126174331266653499425948256009455159262516663665205824515892666269447618413738621763225525764273723193977497358538605993131279263457151431136423272116120137353411943890274726295541853419831313217697837921824298770164585865521624068212798180718524821823875692713965658678903289758424988202105909539001495400748824806877871095563075232888166218507692752242558917283026086351452286023449695127713770324129734125985246694715084211003384501740329906997930688140809000415760706975310403412343898972878443815816774949623857595453949390218444841066823708933689801400280825744450347747320528043153475428252685682120113155814962364519649942732680186965541760919835525834136592916835314456456408146829060470918782614091949567265230616799923209310122823458515736321962681342213907365509320570392625161964719583356523747049639673936258575022974020993063018565034751613733022446065370415073062254719506567294089989988528790227191994101154041446533536681981092522041462921162850641262178370335155393074105796375667272974689382909316511058246428090889614053454187820879961476456294578777728150935926798551154255794682220564103540980911526402784772852718572228704632915773326555496011200407101878787866333740997737137508640068338872036013766517001885676900039473725147992373748957150917106617555235760643656833065549343321617334367252303306683383340612162808156652845859821258371046783971605028237077899044008532779118298326213641482650484579763482870313041908058685780307088682924274824557379587467213908466486419600123483490193565051894295856035522218932163657660384189008706587384836661556154653832535236923575996326104713842173109744978156672590591602496479578646640989817896608760189246152809396444959250514670686710701080061352207674432404024442263222109434404249921040037352960869353009605795680418200370676680827751540678096757562160147526280292376320355185515100540058181344524309582006878256311346581826291459207562020136351544696551763777986312992390234099310881423614876099716244272309108009624287619510267334809220250907441619824366134819202865427570063168839751224805055281608449251709256463597623355421936834292624857931138137299621587349068241446368373055096004000713780163943077007306663454230020402193374603435509892845509718086874445707415482501294743700343959696942148270485002307669567113352562084075817485230107899962348136993980537283125439559372304178461803340894290594944113909558753298966659794575136830636931881107240980780160594934814961691683448024057571193951131563342355514445381771721539388426808216157572928067240842327480263480898076403715205189924457182206398125271361630020521718939780095715427624820269792198443129831620139031092709586670248631548624281014555561239586880255804845518073021186060429095802808213108687019717411968338280668563628180998144099838122123963698931241853422584116929314991632304642243679982694497767442600177351609022336104128669663058908524899717779119778633786583303161419822883747032218517297657051468162964304858911379175231819670450970562773754895415238982186814664513779406248878451673978670097916203025586205370009884320320633369568198568659717956405548746428241555335800584853543536903624914376936387609566857218241726153605296025308136966309956658069181945936501601280401163895294836020515607694094560432990885059069715898758743594253205916774182792120952157742219436156135623378668490814982317675926869898204644470798626556019656808627743523005309837669282051480079341404506686805801144174828561380401593056950089936670609103616001193923076282800098856187453678837727884546616580930462842274672785275794399325166625375630473440003471773638132539757431590080539339832827601117278539622395463627045857240622257242071775753478851143072545837510593107567935348063173060867567995019731592351995103517168247112026367809210632186899774952434008691165762337369589054274340658557760443143975641518791626346670997141854254958005121406672872222813534116449624587034969660213655128767361086524662694811896672557591544183529182054748011745129781543992288662623277331831344784406729009355357006856527632601457741603495410814767755203041938631233819103306198889292678834819041614540994191898861010267890268445754848739413438657989798738862577337397681952854213569638803164529811514394344028201358010869135340489108140970955308661776763025435988301238247629460450438751708052358783263162792247092408183010115806405663294037241928297637958964179821288850780839678330715560762284406760298522561425684744034636719654897035994473618831908577562607992343017556694586502685884399307117118876031244190338798127589782539074995189259760636820704087733852396310536175489340598140037047794738951435348921696785699803781478361471634840742610295348323161569251239517429995410107248266526798226822593682262658972935129199542947730447878874795431553405065700983111979473183535152862147034117133196078451114683299746488117275222295986789105575295924510319380194017827123509649340553616363767349976363015096696175536490819195311924394144194444489402120091558637597620397320655867119598671279256790758071833420372792085531709698024711618541186750631645786946898672716908066101930361795764633566825255599911407213168903844064110371077446047458866628083007084125235558073618089423377856343335898502030389319207041683909058611771968377627690328338847111096146974600262719888911550949147048333251258607593511081131768696619943764130607467248962228819003925781469468056639881669462958502805347919356481612771809934449377235438583958201549448383865002158522388960711649637055014311287434118372296043172017987765801040122370416848000598471659574435259550999185004535265035510298514524174870458705561976775077032437283170532209016280294406611700132186517657324577513072087323202790019611316430345273418114962525074894419457216275850495088484130885225397444114049651208268760224238002547763188023340298099087960753267249969672812898372522763777898222899274832216305088602947542717124585517516828493577067437384009920035242383270551213690292070586354283923867165917818786077701787155462462414299353638106765183050288146679189653876314264220161676767987016076522880479311979150954867760962997742332273522684118862834342496409180447798800981055908882324049420353635096329477844815863970685709999076312724459423554916367651171140450049505108412226542752448600581732878791550532098303004329117194653195918966729220346109500950902641794643696771745682351263199218809153884797471709546468000106074873289331677403894900417661482492483245521284821619596911266144672177427056506318390874917399529680043397517365873223675870175707705505840055494622275570740376737894837084880483790992954787587473435437262531941897567377794644731725510588378751426798901425839368157428096546746720073951433243428222298056897815037404554770146636107574303525781293880133433225783935937328650632674854777924479457129203724826699588338519880222367900320063205489985002432439757670905678230796614881887179312741773664690887755420849763949939556903962474009731749522713883393635426414340983330452236663103902024520528798895524737167738284627397857928293404823327236449050109491442904925436189599195376779265433987006213868842973353903571157824582943702022184077287286261277787654939388248265842950703027143345888608951198319562713652837164083628838118694349190980433532962763141260227370346242636557446710640220624940217035716029113854825136959357622329193869247667326144118049091650101656351424754089292924409467521902928725971747424695495979812178727677769787942680784789775572060070661753819683227958626527800877742299504564458450070262673951635587235145030011100598923488160376963512022796940952610283475145357012102421565047342928807336938639301336854261260321606678969921398067052852311293237860782603971419173635873862902071967365304631308848212238965741264871770367070621290482514816978089974914676893221675232895745114899095660656482545491604429729484908005073282295189288926379335805813801220300708366989937206931678143458844467178266568466634156389973855249492399236228159940595624200158546596044665241779872336690048624321999274374138014770249568654094637197492990404416989191899453923688255619187248004461674656323348217627109885985104983237698227895029030679228139544137826612189117988729637260547953617152858928683625570712794062846128834966205786934037426274811929343516310136713653525345402822114294966553475865181055860333390745834613995696200116757207364610039071969698857503031516298048635945347811597694091831826544674150108583071467242667809395390010797192802153815025229437318483430683674285721257895124979985319939610141770925415537835714804098974946238703473753017524727792241951779631929210352425135732527160816595316535263386959451823983370003524597106865201449630437801998651743660968189194137734246911809438416617023518415268200659819320831615357531222762228647106221828794890098217359697786361286129500158046414845397110341186648392059853940250909654998918233954993088648655684918632369545742590246789607148301520872651036403246684803081174505898261313140615061725645359000654271066378337487110604539463903211146742395541477369668351350357313099360175856075486096834542528417934377765544946652680346473973069457853025907752111739454505367358475663717292237719936683614365518624145349044697731276801072435014094970556492681509577687043147312396487887327611402890547198194435093278959034723325174852783448169749481272426013469311372731617406197641622121914421380690193208499616790961130115556447012878119578714050987304500909368398942050110446514321751541580848435709784305780267004610401427525869792483648922957380444419938554133779791633095297135926536829312937238357263236708694046786494685971750190276458897154757185619174146757456239950098739146368455226076932830965475241296491545610039905563294721595871810707469237482658846953449559528507411326910050311628069594734527234656079726947236042286810157586146440473059726656431962413988058413624290263714277902536420103091645235156492772555961277742477633413603525467328131262222020045496306654150988766285855097496362175627054482836897395292438947773888535886053901372471593450028707482972619395485328910264467625543005393887247192821301608880000023070770710359149661549219451617458601745351845194509001720732135344113742775193108629394573510188619508725734185541764935072334594436668757951067285234428106475463571861718703151921584478334849269143291763571678605677528255789728982894020858118021622797456599548292267165559493745130437919160466511416789521687336341498231459222880060771853138437395156624949757975574104490763701842569905873931565922208023593508769087316677139720004717121248702968028363887157802133772444031186789861176214462433338688288267285503259491869255916179867603582754424148952812159681470861565024161464422767565985337740396641862538186548916956047304780676462182816641716481957964462505136994284123443545568270893404136312016092103700925891624109170862378018482591312216098192427920139479272406198229755050624404827959169684425768127899660712675468183493508959942771262813720662853605784776393074416978696330063935037081959040971617362780489712031100853052969396138669143062052745242701140721732445369350137716378382716353001281616563989621748348749607698498901571412442055943347559142876808078685903225232738949065816734936787079028403088639000309444402956648866030660889304160569984212200209823520753619810051705096271055798836207456752334003276005462321589728568523678756258155961866949372467848712541731632012891163462465898039542297116196292779325415933215571508252103909737157029259867589673852398746740476842283831869894806886885222466375223884399794874720621572034595845047647801790836753861495628311265054968459805921225269502579309494539382682940120635478388142449818915802289258253829662932279992783169386179642741639315032656101055400344257053535634759947881032942034586438166327424411785446760891425460718756875666976751068474664302962016979515875910958247604970798540075106377178350194339271122290389075265374642001501873227321355421308431512028300682758910633029067284644124562333718848551180433383418190287719843011914970247886895477993824976623910828901740305129334330521268232906183301169001191621733557148837897740856846050784387896282319006496647862074421513159560439548015663582475680476575487324016498662279837618899053011535230960446107408767274595668225153587430592998403399328286311395585099793582969203592181389471161063793893665034716348144736982161449150425593328158999586691845065493478318284421276755661854172142716824621023823742743868269336755065737708624666371200453721619859084561392014136964854252033913682949397124618712388122367879146877495005683365915199854236867050271111634157827068072384247318459958296900209040417235157697258067407200503129584072290576391840717420534333191393479455542661472356752555565496927489347606218220375803551456062417119252479562657562747867978114201976916114189878107138262791694606056011790692353724465282747720389028216674548009795022388916476757379240679941952233508902284994846012646411024134899520309476305909472085766008412394458453212626898194436738407320063252079723372538063040921029093858083289045832513557869232028149979467962383191781342992377069950568413967993496159347617142809363437728047620000193143701423924834697894983524822435541386342764533731610079259994781412171705680667622536610381924116368605070044174676115194133316453460074529641570980532039507124434792466717811032875076351586948333478545042607840080532310454524817625972079833016783030931830877399239078271665988626443149821050135531335737693407152207502602025297775231005387497135468925165744856880842900794319181721813552765809005043859402867788924029979352779794454948652341423843449945050984657525291336243054279995848196033320519073832420329903874198690481218038693125791625009183350500222880765104827146967176783289757499776885680788220312566124905144777416974359616340326263520291202523241562575194471656228550578739914835891563877375434228304604752790276606156342940901561579517966767634524901002783943247532287003947911440173226224798761297559380304376797288334066915808306725143464687503834466307412332666321245186826385185308280492861897341718902993562446594294889623904434444824725885588384790383035533719797733206220833382585280349663863368261361447315965482549583326295857692225507811889826614333829985747669454922925848903294242243154336781747641919065413852739064581715366570003127804478269681827654883257053427233254669055535227856876731770770722001972146017164882707820665278545479447421860044696883539614844172748625460157439264639392679476485779225653358922212499719649794893627880404083536058104490361170310944604857512778004037966989484186403569468079125022545048035911819249687584139351946516539856862502994024200219938132676078389249882874365261002771280861438731587789042227488679802265080542770020770279792395187512138336997020257966577589170600093150488150276679879959593430862018248094228805210476229159024428382039734728078678402252323936528701380751116002280027322233264996027832349209341310247268405685996467194646869891191049066371059053560499506236118306494100510436105461632704594149855678286745844858075439416263878929155111845869586351089115863026657906602208749321417334269269380274711261218133870759213027012940825861874542111423599027557113221797626325082766140140962393717478344221162023687957410442986516467275949532113447137893736078972942434302958603980788817101868129532671064478528992252895944199511494643690413693637125251897041989076550974514647628594408282596925311671503776002274224166021496670973919292939266843047719653212930434908458489129786941035966432243117802720978284285490263873618899068887388419170253672280953597875573532245758925316939100056164381960475570947389528218609308605000401954282174124174897794728218758842833095088131919754153616688664550823307434369863816720651662005694090235976379675511263333654236816394642098514245059192841405453731044319937305306166054283604254328465281207821391986803455125322622497910582349494707269967089023456367893122763061230207010171736553979945262308469119810377774069944001706067608916034393549987594451242434108599996133175888895941073423716730132454858033390779029250844056138670220972006632924092561060808454106850559428636623085696783774352117540255795096720025361597856996066303108237819205542505871353693438421652872319414102685614636005426405768625458111164978014305840306064780672739638641120411093636397122833631141162928766731232888231327560964637365713186988424879761565333603318041270643585180843840306494672407286635724530328581201406980710749453300027576381912286863428808155713216211726049825811106165803468198248550076509068092487188439562379298869305561403564312373361792820818744787159274870211974570758341688786972843481174165899898343303191629794813777594131156424855260336428954077795133206295787746804423753077604111951115337817386911102293675935555734016139899133340406647200296737805417093316359237364445876882145250713002540995324076133749468281272756691289022127775842759184263837181430060714043657448551306316183231412561103223576044436817387492089380050763708169419605852415847035930743020865666176619618479447577665665988782986583366743827209924312515572885922829722025649756525161149805017403446551104808486240317469811128383391099435953029824604286784300492934381260381565268172474964033023903720820750256100634284074926761347566033241424085519610982809075094248529826504575376886258393377125882607960516236101879447791512867806445980151610549403246657398855158228974010177212763417525220901149284761056333299710743622648736684324841446304815488726989597083902106007666194451251049882183994546515696256653833935948249855148147026493415718699894529136802532783313708850031862313922546014255976590830078783886135436106390962188373443584500849045411045733631268305042305804321492314788054576124354485700690026633503985451213442354607006151371732511950991795721873953752965598862119185369573411529987201122572363787820008089202089593577004791243457896320698930469042784046758272137712072378789568183596888332553574817500408718086675188118574761697060948580846602443088107769626448617051326522218114363894414671662840150111176757008115033411247191023980096824309312586438647798323299133583603956978041558796465499903016972902058608307760228893675401774429490052440394189811116151347580839423216349809782068168762049846793291704813432916258308414127380793033786909748937002098192975550239523282191985396671382822008610632481946471991434252494840268156331773818909928671032503382030499725796168205285458790376364756321176459029910222595621658788851937132267468512237057705304524211379326914587555984630249232371003683849115585830339341176279859910551664052976094558178891129032742924759473207977266221514069856453627990612652290180212851057585864562566052690365450814412223712324164567261078063890111467886232138004391923064440066187246083995001988511456724534764287476242372294375874490184028821134816508072900200278640376193322574289687125089142961963159526239404732627277436615489308180202411835737176563230140087770163395406873681211035296875358752885912161372325623937009453994059297936192658584103195686621371793777808601831153944717556489920998198139298421538157130796487310414482233326459626466849482887474755487439289035302900865960490156311065644968059545511903751900788684791290510727113516883379398937312436682286341365175884950381243011022239355249081987703900226005829583985910957611754741672149059363861748312223766763954654540455380180084324621708457065946399369740083111807727897221615115568346213265100070277743502161700014702382168196009684432719667298495522218505045318102720277869754701162363691737591909728669467831801692741931524604284499578251661475822530360407345143223530508519557400908913230019852999641116958800944876044265470321353847806079261861400707499790655565584937403640129559297325150701824143986187755616607197857620797179545364377078048188755978546758516403193091647178866713431603094345803313930106202552267558987673253587913218104683664881986463667079409262299744802002661786531347659388415386859111489576362062971177151895958166658935931635103847716061532227550099248638866701335407761047388606700989246725898855589564361773113238331973233904509939661120653381464497862232462654624781904412686326272053837182582553876412517631869269353517417490328521593610309806491929766123733868836504756268904003253356160656312807615573675011750708387364201115323838983853253875230003176026643064341922976912235249583133747647740346425615798007876469026898855638983524504901357240832052784638535029139970343059635392975014443316981384678809406300092046031771097628359455395493142361615201773570470795412502122053149895739551328057088446049665694217654682724760693944930986164485580361053717769181570765820159583000897927723813192147122359544725357013871517082237936436021819920011041737987214719128693106044350025086118159698676355880033425649821664711760243583913628827701960482024450283164355013364575938514615581541229331996437326021135606303660239732072554359701709139573251177068490580786117848482251467164326542615552185415459174035885826663431068601137949558431917051779001501067778821785769942863081473822686058007497700681331742728109675034231598255909803417662109993005718060401859969581668838824073345811591177950689100086371551221826763786300993263120872743370264575922776000654163341776715302741994799647673973520031991744802363636454604880562305982841854295116919873803680216453218968198513803803900990824024425497975932112048475204963835326668662412404377129101292546585455940799522476762931722426446717680892922081214962094153285447482576517305284641784260083861131764162642744754591518289480072769455505740797479783054666880076111903620550403752047145817203569027728131691849101654933425128847511653523556326480318580813307362812833989320063920006574379204824482611829724206121648230538058516034445927720964416294698844955075272228375994734605819934735249031453749744150663680666339692329229030314257897972611878404094654586210130754301781465397037244499592200522344401508910707746525718558646738393283691330942349443333727383590746248560323777609409116816101553438537115104058555450486876715012908180385552728957700846239850830744071347538271134678769532169472803257811888724747106216749441276198489786836516623764097774191520207016801108986652383586486590540904728310897750508771562208862731894430799914875092826901399731706238895971869548433957384270971937739645298376925873662793191680154003174595168588690420971083440798332366344714741437063011259652738182185973884525687388846405572227274677915859322955469957645295052705070645582856518895849053373982932696828073817704916093192860975097911070776072429417995095614659886754127192744638785701228024903320390686540684717587477835741825492974428413576305275038093822405541844887733943718623501752173998286489801400179672922952416680074821924683745998834043620980297163705063954565721419413190841205331657232818445076824496868781271328009858353871317784083962228604555257285009055636487647032159466526341021842579831867086487386852493666231955929585678548560808557852030152166407513681511379478837735500673540361592317360977311758763220331139105127532105693680559507469373777742657268199113309098523581006197056341625247940594067820830235259319254485976590312659213090343083843111456334370634776480646369030749635544046976655303110880362626569179724900973917281790583928039445901325809559179106915054962071289370356777725212556256914796006023764978282822604921681894861384318652750885041929761932693682102796519820915064836025077216392997143150420556937050133130174922971965284624994635521183152125842368190202763387394011468452272803044122610376895516849636366462478192508231742347248009942083888230216600830165161209197887627226238347347330312126723988527598830287517879065417363698528448404624012989774539848722510060166871464329976779825146163294430273559999111743085753804137311872311301974838450640160664630515972872211491544422749362452343522847473725470165279526691285450482838730773011024893993687612921919311130206604573887235281662204506500314219175050839748179921739536795301317386868348693201718632736625949001964394965181557735126309378100503565593658438248330041535215779158802720494016829168994027738953029204620235272415993562754888578281902483708077666190959675584314539040222731207237460054775233447388674728145879845704709344299141772666804148794369336016997238121382693611888294261604250576330341525075960973846233328251376854099286470972633013514353086259190914263230118326550702496976445268031108094647315447605945187127471336059095884710634554657667753231041448897036921986602720634924318542027281129710927979474417486477138190445395482273797911529375744878175041570543842628675156138447604973237822307740737630200931707656913196567747025569216034069529247316355966832078773204716508008877412626298055640431961605474390940880618636935574468775229822960034946123417675227484148308235199519529677748144762849008237412688812256351135571599174680189071432261434582231395466051884785582455112916073434268652083166668548969520147459224902091216691575902589874734387681039628073211808466241018323430161513991912139814516137682848798592923730629990057633402302626537359676980441388377121276863014114177101172383226524072336017945106752089535820187746723360219659739544212284047104762090333440286493770719006519263499502965073992441973545361296258332268030253310258265794360910901216625653658991048286817286216526753962257765034263186502724881501567581337972827500201918105396785909090823479215967914966221209163291268938571706548969123618055920680906192682291951978600437027289276764753035891282844102798433117258399284839021483109587309273547874345842872851065549079399447594295972142577056180250672216285126686276025183674138197100639475650050739385778050573462231275120624776117252427989255627684185258175551043734525148315518807186618490263614854932879549004983649407513287378796218637422376818811772210936075535486203208142519659549397181021762665091245027512579786526823017141790522808454555049454102240193396698825083606573381204815785062631114271690591677461991013368407641941477269202720392956476105809190896164871185426464796020220525464090998662555288635644033247162768630627036512550211115078805444783041100010475153088984029858152605456373225020069756078619043202509861340395247780137042722626765981020128954058988036436881014790693664376777970754879700868794670619198564616962346609158333172932780035613542341492281967586042731206488799439240039652171048334654998226949825169761379394872260422605415465263927409050190474761418730669206037285151086295230047437769812312070438659278917538375096179843615669192844584554272581403013305103009996877388111427654538481102220072543670193955656942826853387273688065025448942519325932225688090986441630086053139869149241031269921970047288528277415494378827135465418040807215118256873570901524713921769263410290817794434655309022353115982785082280013903019705846964235642236367584088641854264763096830194293607177772775436683551948829327309163757939921179994152817563358898042873666462465394729277811040473298191205412381345161031744032947028703957398054363169710238446567856817302150327656992725604560522486437116735608774970323910530010106711844868750550899677877459457844441130763842095925680961480233465341835980163692733332495459498006393276001030095620295016742724292627254668512828758690261128399437058365762059578353421386291672274697013464322564797260307162066311702380691729439082078056842590964426063572607551997023770941034846230810548577104666054678556471140591760585113792965007367983613937467486103378975772906567336963104258679581720178662121710166563644445782369633113107517599006674789557432032122926523826815476190230303480237187619321210755024702595204287207181277872390998093286814241630702563210691901857522275422738371841703967548978281853566829794413023444779925385300469365900253200353709746927118138587587253330861968339914144301380386840104495205353097463286808844040252599082227770446682414294216236975119920754340292440272127599336299385092089609214658952258135986032978991228610471624826899542642602567478342892955414559155442562454886692330980800513751731619356045057125916162087314658993414797675239963537890789575443732879679462290162915555933589050247733733639326224348053329677264813460255926826475227761014164365454940406510140094616148928715926382104397562377159249006262804376935297763457483910479053944984438887445945514017759839398876277873231935833797130901828378725516214727280814487333833219037439941249672997891817020033093788013439509361868282759881079672528648651550063196375632018361248625490046022033134059774083008550905839765852664833109652446875021810256542908983171497071571950683667994262954189669299310260215483740622344409507474365965150558987373138196981599157934898853398231116262575937016663963586227144429613782253120487993085675127196349252021930553477274218088880584744037351277429316327434778251707154454360252608206169851933780415572514009219907426163976530260634135832439841130674911513381682377736203951012947652571592053159430150886796447924820474189385429840663165339724511307384955223129591330979521658647048391996209567600752096622370256311014565634485486498649173357470418131301311502740606903749323814705361133683530644196423117337560805516729552813971794171055305025030920554478486588779988453865959066115828916814106451882761246565306752751565012760272527031285495423053691563904388478720724055193846677695390865945290513986971319158680765619045771885871510981953242308852040585978315116311317991376228617735378637890751377555083736190124387258975739151561985128142771207221684370100159176869826951607342459658763289017840685747906815633626009338170371730362208688013896676027463080515315037256053810518685125727962687653463099960036921669277799521607687845034877118727061458099247253069221383506893973841084301722229228820529344238830423897655601696184875523955612962322259022457831501486636690641671009422177270549725342444281550279340373278403918095690776466157689712402591774812057730669038905360232480131574826461998667718479176926901629102685250302677947522843944014108769446952164557359051454087521288628333763261964205850553309071767420504813103804385511914917821629844085901806857581758346006452160952984826903615846856444268728792387599872126152100303580994108501877530145643945785958167185470720350391191772886886687641460606460310915299269240262669793066515724070460342931871149864567378611191298638540209581949611235732279397322129450996460134700230537803573124610265112999304676861333379208056874797439895081211542328201046510286479751693019632925264210773082221500947552533728380973218804707734068256894705584277832033638135446186855983991094754169873082412292073025521819725740832069545692958234577583488291150397048117641987308894717472224953586514991534513118648247459110123893735890151501911539369060293523696454422221941816452987703777816646267176903804740245904219884528529867937652877708424159254693864935855435987461848877048038966309973874494465490025155537069492773020530589048455752891999187040757275146346116542960510715999533145263435024975635498900106752202392025786021271853145095997088924821310185930600637226481277679927998668920189103976494496969858314909557391063764374937023402784641974566940210119839926425202924621210473866202730041104458989429056829101494687023340019040512156042276457833258007631303515966796321730204209150717890577031071011186782814360407892030200783094206534263881897370903624100608455259218875835910544403825386613666463403431652274723142031091874400349768433767287521391471623304936453870816753985805426773358524444504678436955442488562387448070412183718900410334418670828479069047687249773572831527768183192162088705270237102189162732081293256802339559235596667673076858823596094862063708980784098084905621828485311071470648698390058930349640699097837174790947194869863174761523938007457333166649039108939937136501633780595790410023247920356292850732299552891269961272231649015224067777603153738207094285454173881876206734379044125005609806532416611933938428587563611625683656881105181823917992640947625094981439265959034108879263524325693393766572532918356719196892566095782789749143003411262980729527917842902197587011464420235236156819303381602084491950483947430758769461652585699218571849660450669258216464930106836228107505820934071591987799965512672959308511216904459887501215590073648266160264408256508314985878710829742244579146990820852578318393314139381159395195683052593943093000531542409076394025797923453030226061348115925015643024736013560492818128880422594280933149846456420516983516688151859335670029222495973815726461511875571631522973905480122158816937952202170931114431418835146698986845631074801557850738848316082635578374270241017073085484373820967171063665027028169104219376995836984408027145924656598155992393966129575800204412423193062669436677750485012616259666515160340385206128571193725874899210542359628159932163000690512545793935957280267134180072018660075935403031675433648464130498762572881867389588707428439912288156456087017456381396356031729680679508394083790728883630977731374526542588419079772690548714640558229301609634861739466409679135091291718202523428805908539491058135627129059283709551009961144206139150173382036975555318217284616983283805257065105552378360497220683878738695184576296247075089968292426740481076813490077001818222272496750632082430471386139497515017033587372810326662016503117901732206774748648067428983325912080523946328191864108792796825679357182000179001442969089309338847845039216546631266495650803327462248211905426943433124363766154487334328155050235927492753737367252533305018173172659105254459018159319146368892594672715147805485432306829406851371590076934583109631769235790147992351977992024773993186077743635867171007996960553601857151050527123039659308826993236768879088645654952951062325526002747753528931460470132495679013126980390147318626336884882215034854516402538710011239734508849230347663773033999155048735677052727573197071927344200926899010816689573844171878868802297991530337771805322047354705055105966709446319212781103217311941054293566298700406638336887175051102445548537935495865439355135898999670736532044162429992881408149855728861065953730422859168931156846728133950631664838323758580173828731647323639066953838388489475093813002188606607490874150933375224013373742591045822557864847768680027635745135810016060104019110291335258651602855080370801689263495655092373293258721269944336997080749040562137618581558176671704522764985206644189006195795821565577536612263813185874236440870319265066776639898890959226566296835707292793033628139018580143517520727345022393584693721171024778052575269311190730428606205649948850215831989439103444990296689068754404238271388207095292522420546509519749832409422800815127396737761099259288556163442099567338598254217783298056168904539029951022818517345747730795283047582563864160301263000403116765828114950110176710336794884731498282561030895341089788154687681507127842276572321108329790143342567401521468760037759829886176843235912263000646822475968284061087826279073441827719520188024881956068734755694118333985475131503670900462142630864102405036314914400707154980904314644229836165200781578921355764660971173639516793685320063543345372787554087818326605924442800481141488931406153080894718595047903100825716127551603603577790975331678539391152968454069135972329794118592464199312663353220551367011248502491653170438645473002120162109094060574135707650195785430240841328448523494669391694391236069820685416671143364459396168088682252893385620504421813372635603252993039656477032389349115197431177970061017577443445951534134305028090753814918673809792025219260217961614676627826892286196627322794118546620478876286306933307028592092397535470404832497507554490006307050187116862861906552966299151835063255043156457704366349346537400686986777704944144915579034568343614925010277979285664870052578130445165680898694256921664721932367897350112362995781117481808282129153793322942404491907511834336052963768392601978456795964608894854085558028263811884337236472397806760632946135824036933792865878027109279662930291378826893234429545017581377501971247619986360355137818165138458049111515274286857110123728023523571841386778488971283702876206648446175287835952646275215646359737518993167711281317524431166057198036776314964502433428221044559546076267977164280403769460719865237200125291145563505639579920784516392897176708154082121907365774684310940868824053269815861092084408523507040339062996095251285417698818234806190270462395709501301840691160704726637966591864482148452043593022603254865759082743351924136845019519189957989091390733344383255145300360537741741176349618619185305604494594012045906913083861589886980649908227579404226308707898873420828890772555916427311541466039462076941406055693768554192910853640399595610340663256500677780417606164528755710346911142112658342390552084742826219651631060747316497030075382478183086400501309669220922444259154891992033883930675992977485275169883728187044979182544769696973392778031480336734390815398761717019500285769974485219346760220890182212963515125398709454526241088839196043172653671695695615654426733796097666941426578187361601246702622273421829542600509796439507407442463080322706400653237028725763494038841701260716598808578885455001670224856273282208837853518230890896027118027642318933961869186530949058063928613308896848544220057224147023934950306423225367341904416065522320730484319806034049747289210056628095424623429211627317821868994451538390759695866906527060333670949015488774812232371257657029479057103691033520467599993000469270145519554596363428797584575806504786718819788784689876319654275912297205234410259867273608663021822330525279552153730772436303409333508763770959729781594444053916693542451633311525416510629949253319920467066459087048134268703862585187670786410786099495686563937456532838251636905838683692346128515090642432528518898808447999594565579384128076116983155028016940505313317467227906340280156742410908743211622452593990786978878884407856345514099272625805920419107906324924796470002954875199553060845355971157937327871081358194902645118171255518606685473555721778376568526543082542600908297713406716403825050849418911171026607420003548353421859710436987883720915569093913719072365580634990203982501904164802411994428458237504391683787427393500582286200566559936465555745469260026197143415194851895100524282557086728475829845720552201087995113579711167648456919336114887101108323111332756853994539341686622960741710616701519685384090097530896137264345421083567253624151409608255987683558166192259696739878955529746378006646955006411943294970937646675145579760495524253958322805651405342587865548727307838474321671304382017783638242188605771397132745420995887766041513156937141632018242304208614354134258526697064763413043536372857622556994818501535410812224399520105850973943113498325698539162935958288164467436235631359956321476306646951287526081377057600230875503233776441467190911198444523972017505154091069309318875056697548811568359307982801316191413605509952289688102097585709511470777379414708090178658942298252051056108775361994476133759324851809683474306570824221749467903509524043899804590801627025242514775616315433942671191762774455266678219254084905950331420005177765850832003635941501119980714510448807578665756600036147270347583509907176157103535148732209519554705622127859332887776606388123988087161223308967134327656219629837014851784313235289628182619144020070307686499323433663221961602418381485610873995701623975025992825742095004185400695275007825025094082796590152682759150256193237635899909394734208521625274080706664893586952022816657488855318355417719323369060343946445045108036161589829173532125265800893645002923022394652044604790563434927214250163322919548527206463739785597573977358056065114005157885014834227084858105004046666754527461983447090109006984997100291200096992308838530575679907434591824537157159440692049239405581237196009848716284501027568299546377176331255124259910529403432632451334489208092304393617659383319309177084464943596579611848057131417404867586057924747300022152708570259496513121148810179068151529824083489527042108828008949191703514851316154292385803310970803501009959368486757565009814217284133922050904839103468257035009253950340433585621448901922879576302792361880448397670532214990666192508453260083188864227397297099317452584379920644754981666688007920016473563768795622125469139578643065792579461288087793661335313622698990952549990069095470442155789316943806972092345662520417828841777698863123190025213261787800905921121714106607425472672005380978577368780972166965970806977211719516856232786144093538284178315856870306320895390548473187318201866004875798357203700897630069172361005050126931004427871661972153850858025714071139296103650038780307476363578389581228141885621708957016309927272421805524490141609949952881120265228242817127939049503618845534788010794338747132969513538995684573688132525064154065804216333991458835392371939265557298389160085497170827189425185984965720842423370890321021011299814230961142941968397650581399353544176106948427182352167065866801487712246551658296819884719144389409223648630939268700776343473081788783323298171518449838381489365691437813395631541621370516508613331637178249162679248331069064551135632260456158232464112325152033576235223611499843393429030550057884531269433075822315004388247339486436420280920255790921320345459351963169432519489409647627629921407850148397537794657848067572045025047844663901760654256101301244399817455577007283037525424910443420462579208397728453738638659191876541660649681212296762454722517732615183103169891963048463216091606632801369819804060220112007204607953824963062013315835622021659991106665534264770914387621655161071735319019386054371961742875647106164957828024121218206308444801469190443626500219986369476753619425544428725051031719349488121796913001274103817648357360698422522442576506210905268549476221358715691584601888038398509527478979036437070400640327830212986256096789163494004217027307132212327991957078873131407491656357617532948672531958078641856812188642672853132396066804421867256616976381829614151761438789843224491406459404435252064762196655728452565430459315549338272675684544704093071262492229726055346788853708956601758490117047973832945241595612853147087165380028879632428052044217885750279102754768213019004705378371981348354039766368615273910455932710210480072486989968504151134876969016132843646033413195798065559080956017372220513557483085929370485274748958562934440435939227569312007087545254193586975884563765203907940629709211156053716882068298602278653012839660584294020776077775751905294995049460263081021966677090185120865547699293124659127794596156670305746423584505168235179134072750326698421733673974671366258695506490540986839771886780507557263144208564213482115382639875677364082282044794281514839947085356397758147515363221957747840558468744073647833955230465131253511193314595399514061955113341754884393530576127123421522236038345811172802647650265656812038576587419991100164245756406040549120669865380953505396979233754891254631068351437703255798350574082853338317872202431040976546500122314480619307360793994171281382863747831576097266306519579924479802535056707739388601152124171748143187244078448167260661148609718951626278406911610801427697863411507925315531105319238187763226034813329889415840358317881603101681068771735926830304865658301053083500795086185606943099105985407300462664848438046310287925268141398140502608508328072278897270923857551204308395868609628907692105811254770300708775038853137821390284749426208139097870070579042522568232796611696268399709169786843734332266138419319261599193613910123626343186038813311193796961657680556536174870068134692161883075618245384976057070186564600335132873154230644318887136499953479437297045905619995706172635584434133118454738671555608828500052623266086551387243570656801429746133384602150826980791715246602525868471822156841659610720943134852541675614683102785205802600203319611480646786886484424027344240778541701039981852095492749752625730052495984105888336929200904701369455069720197964126485051319120110021397371316109319885463099789458746073239895754749440542479412422459808135961806661845000853974113389432148659637030075727867465869791225212228631136879572604199592974888228181527739520950302555502930330363267587590462353390713081173894508962054135223907636472282704745309521009868647538632368778679475878038901163057904697999239923121742185290042637898111607002885218497531034713747584416711335790412662230525156373643335235691629021961632384815411180001319807601619935003751722058652820263331876511990059361830836942550897257012658340126694778564693757552047420054495640000181124747644438188516741224093997905767305107360430452761243754975661654254508675301318902399217377309093068026169090886215849397746940772363962017110888575160830566230487130745278202513427673365234762551521434791493236249742449943681192232710384893681735892347999292870183508198883438216949554221695956193579304726842513226807744398460330054555410994538847479759275062248797236789220617206018937679448098570723482672433923392707186441332174101459268378675141672367462315258990246178781810397853710081722548627545994746895657311475593484284652859904026498872862014228271138820615357597608659551262523307256840290173469009817817119184179706624881531698562240684247766787356326207892560868889223135794266623314184042920631162685320833958940065890061110428399494198560314287722707300297634210440941758158510423923585148982449186518406569403513157325522956239910782964423517811526052490872756306818886627320258198361825139811062860085462270372055157278943616451118174206308025614005219870195502807381330334520475099741288731050049673116601118949838222081088728245915225821407551056518354762970362380416484057485225022382801349862899075055779776538594913604600668497519791595760618931531325624828999461332964541021177521736283464883308215375143372826633124833904980458251490646693720716820687184439882399822237786260977838183439326627892467612105167294486627089675855298831008971492010407925480724402978650365361836058362242213243871657195521367525589959673340571539198654291748220648676914744710833691189007756343562536922096365543757146091020861714447037243216321110563534336438745092866391896596620269692047245915907451684533629683350448453231587304919096132371669320135000759091558350626415965272481247266901253868439481644818629549810273799341058765075932006438516136705637259840395675554446629401857940906771185872888407364033248766863030863654898987435263243380085110211966573950497511836490525799439939956043831210804927095046135591779683374450480997485832546965685427049597296158103953538714775159392319832640482480041349183452718125724663098508005240965880730767949794594926362408457620057250309388664688861285290744247736209507508837983491043419214088653415482176900204443785653796610850376252383863902032652486255726993876895801752921145893302908831678476621462973512186838381208922397009929046501261690555567617914746908000200165557202262618350058951412121641646223778746180189923044961802936778628035961531199302884315602796590965852246298201770130744548213549767030254482017093233376374595372230399014816461713819928851848472631013876079186735029974197471635013268128569352939817168901844915170859097445701937944862861426671211189216270405190386040520550095629607081141397703653292850747186109364466969912829609293384474990195626233449773629844696584584350758929077299803807589503703390412107647774592790016433047754616924320349668578808845455477315821964750690831372184652277548089378701683723268800264397704622610336333274226423792265251378035426409886381359017645524624010045051340870858775452347660841335286337417360035857958436921356311118512220053682228297048446230177540399639593493892427897944061457752030287417996761526271851536702788197738795712589315495631060628494511354676097554192448344756816095071030266954798740336776083266392405684089118469004047509322849361545206685481968525028651543859521670259902482884944040244574319784447722502032759209308954362556096445284760747652205620165400140051311201385908253774788625138639782859422029133641763353009363973910277831478174502631173138740510147911625274225894019147730991271708365346028300595745499372601822315541037374162855258325216875500889942448260605318604913645299595100002429978032221722791543674784230117246266199135536030262171435823951325709184452725240862555127676693312368215629217627205758534216006077100312396709385028570215950761017169837601801587725803809085360327770569364293647544755878432392342448999846025268304922999122257629057504001830089906900258958893212116983892187613824710118989143737269579450090373379920026366768104427897316272698010238678276416649762478426994715381253454132089032020895070128498355062851462478987756241124343715372426761949306901234402055361482017801984140548240738480297276271299771226221598695963047614434035507299904264760352690998408319605751589079800289154670587703071707849250056860629189656359221455217073715163210441408769776400261328090526978231621765549663992668542169055078765309459225838085774858712429013709118264649892626184420377834322537039791545268598147223944460863175486673081044606385981217422512541495509642730907171009959619965900477271843904733791666167567719884927666326649482146497414826275400270979402126948662149869481247498154188569953961127067775523849272442521607140245352964425211062369592736850070891461859145729047084993809731968135646594574668968502327736816065752795266264919750065380272803011670757140350871685074993861713530947478517234243003268208042859534306670068179125252960628096124741997349616079788467512875203044478804463548768848809686585322598502182872534135894018207189458099206293339725708076972385457507396028081524609505839806761023040078147838522098099073096074747901455843545766974862245008065890788795671225037047187831676079460797227243399210650819044188092236575276358615427636219119982252788605767855877510212309551160828898646434844292617902704300415376822843696740082154130154067557400152991156662210214132420819390298609293030150080901548185960437548618961407173242277456788269334142808528199832579606063759794039673569232566521613601557746218840569519073315855154727056860970712650855675233188812822917970794112044781794982568120903087302447311861871138894781801127289853654219543292288944173641592955846883145038757285304875477603905818078659951458750438225921620340368289488343463593429884449806420762703530552793486435741794726770051393990152257152487059339540555565302971145940284855095686884127966388995632470333010535054546346877345069377658558293211143644399954491270943676610157163284667679372521927558260845449321812064919327617398593339373564767267611929469190199887292396268132396566240491424246072153311005837909671709342014621325973664711260595599667822144620327300458644960914242722282456274948630393046791242454985114393732001983046160457644501458838720984345680260992012690230797546647953280469041738839196018390876609517175787912192369440204444569913259618972602567558299974383994888152823211042654864201559462734048612699797117651538104032570186534908963053726912698220450417588553723818855272799032628096854418144465789780359116460724614006972604388763908454616969483178113424393411831047240325504890259421011737238262963315809164593982060802263975855983739331036916124514970275649857387212999479849874655410900222210035171442586435691638736137572196192188178675533317888378158882726618702684387766498348346870443708325050915915590979379179043462199727930022654115926520140096102200207770871818916010201406488231429293325589224318843005960858477008303247825143662562771538517051872087702063752531293969767525542536055172804480488184407633711626287464356484763863679586656790356809551570449324376394286912699684058406129440146233755647429219401279994345686404052831055520454521307678954096766506338338515834384282437958922961808616824338123992544984653907820037896304967632532995120838239659661174691334765258028013127959699364540399595151227304049721688816144099409077572340649895361855919093889985395168287075740075268484183777378029877976874312993967890113127148377782947152474582980925630139816924377528976954389243048425140624181993180167766555381709845104133091037115480762279631710788154633962698708667766315846594514853397069562542376313645876093780654400983611671531781179840628205798093745378529995095171461473801691792189579669160792609673849682806805650684597395115237337939138366150253564430236791393860165653607879874916483339057134001758499948499242639560465658970018590680628472493575360816992855123395696891082434615048336303590803055711029687033920908852370776661552652244699692724127796470417794397612996543845150209698587984951973312999417874212183174219857895418258352892536889257980736012669580128379955964090765953834253033293357767887025079502984207761734596098137500255956745284450394185661528350355841912126565172335898895848864075626943765953476652928650114780427327398232976993762105553980642184098366335783192029288906816919201569422501209207489647841044127861049595866084527554847763384831145900570604486364132982347796786959087444886147185726345750208677598232728046391513484966658372978532894921033577771647831293722238973010706086576938066049447522921538867742767011282349592619790225471407979587876298127229930657556709921853870830238815420622229817399338119825586758448552009998055180445758503244393830434394870199623404811353036099966569374157282149281396321364489711179732300020869652582030160654203415549385021669179789075379478182535428491710390151294807007778173227601400629454864085083425983563193333002494769050387399149878789398963086430851849872752014484111004876418991687746642839843303492008006254080651838219202610381462784109529806408868409036792928140026394672837359780088809646262996166757285067153163616603767184935981587833219628751225343524214617005276737921411134344829338128611181707839230682639745880610011583772483665044836220377695706373980940430652418575383160352866735860509802388583571839768250553369869191457715434898512380918299159365282584682898787329580354523488983490282937698123734760018003713537429349316768883048030400990385667801832100510262928206970805715039306393186623180793511792070350002502099785279352935702870996324846498392661927213070165989136203319981073968411245221465644376685142576799113408896248189405636577752253001185056183589161070379344922748491896821017226195266066307886424311202668885052217788417642288997237942246998814272226865740354209524054499042303284082786302325983320680278485615452552532161272090987095375725680973237924898239920526309654612735579653868702013402852964052945826414489968385502391958753764285741989205492355887977642815833060792037714344018414380501104391239037952434226926390906851734910500541051846468255773504606087569399342894035431910060463594477404295718455911120708180373786409375334747355589229378709833022115661628798867513555526188048106154086195359164531847294651451122533932423852805151367609672940519525936978115687564294115786046124627606492911470960881105489290560130948154970336107216724007596544137263624286666017128814283757873651198188939371154111196282220463804438181514027811192585846922170426561008578316927967443516687371823571018042811005187264600298725945982165628632235308526003370281130707359847650652179243123797326737630373073713869556867545272745166251342973102468067208155331171550384387893638625613924809257915212313082921546522574185966973180175480257086665827543802463118865021214424935696305988949499033405749401303324041088337156577824681973191062747597316179126672022876880345798093048920827674655015551333887412238075235719084462673454164557377787069777404849303686106562721006718634633328681306192268041220704805614657661322751197441308418582945927757627005298895101718509926218952469055821536687178876404463552121698630036430187350640280030006323306739973855920742341759811789551530459446940721281697372767394056248990998677901570006374444436890335572345078491420246066236987021834078032284482167577039404707637958181480686492260474043779876828529200865370158613270226349181431233273432279156529452098608600063400774033124046043860411270197018439986346331198816592882940597752614101430525548552345872563284515949252437011969713914069784461204123908982721224809868888346216345832507648927075955290708278977130876755660477694639064265217767994222717911584819921431089386468911601471121515699991695813806207031856812580862398202868647395515480526142011746726238271170133166962810366406120363826760510516098403576692654961901300300259069060619723864156576649410235751674916581984361459205378939634149715437296099451923211440448693255991679573232862704614860684864902569366447456992751410451011480137588468330638107209278819662905883230675096376096529743365609722530190651304178028969499289851460845617694309036761991966913312948177431206565109950734356332563924480657450795981794490709585657906715960674977401612161151609251311134187672505687101392470936966669910428073565593202590967339859177392062275521652480827179435592655347145564667157235536697531718930112274419434096008363593171732938711526316137545777964425115611377906305740033010456253611160180747959004379160709719944480331172382010189726782637444923780005348581000673205353303498650550592205060209002515199798338033276156621114938752690230631078629747359499872107943329172610116880707164963474746450904242311860713986875672479316395048729214609415579684692330551153884266689858397652176239356663247811844601720523545063471765546198894473972680534078587281263089760485630390055814153768029752379668345566229431960365516448556927804877336997293007592004116453250021638107132696524012269017509587116845602048731294853557317741023356759146134981102651670986041348106875178883630936410438355010867462530636325213812364289074481986542001259682600699742065941514837090320188386144249296162428585186496361050724738781628163315918766897000145782020309428583903337696844476875186098130098230011366510828061624619136623432385458139973661042211233008072223037499893301673681943155508950359600598405943482916778619819241061415432578896726373830633609392812694216414710236713893302891456880599071177764544476570040773771741306623020952097816727703891082608272649587866670066176034641294252042551497286466110918423587393389375359720794114481194363433485475266646913050432876448671867810493481120636514012026095353862818626999292959957636062775386222621082625130221764232777994749427691731279041290475330377119233430006129666696211552899827319409424712592707523571593254326612430799691569994706951871290646016097053413176785621679954046870042071778259206073922319572534781720912558087597416948658476760251419536829674497467110609144546918262535275893697645398776531906235241091878439031564050325917134925507153160075734416949752071719733362597245773893399094280421693802526475739211255241573991220089334173549659207491740816483309318639248369142186527134140497746969328361680236015799220424773325283593022653007909138736991844942062934741874108093324965202986792673501965122960833879512259471959680294742329092355929000433007891859565260838234111469463111338222151701836658870247897779354904463515493005200525047863614213855837745120428567638721931007515452282637702814079086866785483867731632333150841133961814361372430999272225657046307806849356382069291974683164051954196684002522420100794754724126955979234057227575837014925434689466299519190325373264908985769514219886375534498566747527381451248981169916208355440547268216296576790380020158825290404679203663067511424283349299569521365274517635430942865421886614342168904966931758848994941406310788227658940388665372852960458898898950760316549597020581898405024918376836376346269534144369636234038940607448458770559434041877792107254278746195928925526108296494387229451940370348564121718912090702684695353655976835680159069784235120943707628903370294259556923974132634863110125528227681273867548571115973919023432292320930069653579401859443988695283307828571685058365492172822740474430283296748242156246074243937365945734425600857324928744854100190557059407969068818301919929474393118206991382355404413109542676957739544267363491065481579649641739476914873875199739143933250616182570350691889659986554827926579557504611500180725850880979239835184594217837770391533550915394738779517332104461209746969694250223740519082439418982378793098169755531487357916933133090499479829237751527790003880273685290700600037623906975020358993280657666723348739185739756123127462320950997506343913429188995761715136345820340872020393848011529774210855003695129137539083667156449771842781442739435264022052121879723370292821932849475135240585640422490641112013343056969175296077278459500567351942151436855210663197908106792207698330649030742386976195885081819444569338273965483873229935226858614145395180057726932463569997290345080670263980667487120609595089615408309582768599994388074587764991954818457831460993446646092804769315348556244904331596140536461381879027845294429362094836136176258411433023774094557383798534067933853312136113475545533831529107648463938674608208700871735770901987018015953635234457635590673527047995642939521513305775654829219407269938292658319328520800066496479404435173609984659945614039582731825571808349592985843860225999889458648776361994234005163703945436421305432558801607958898962137660277401835170092475227748053872786858536870499951016691386339967848360807408040604386340290239016195269364460672228394570278568809386374412770641793536180274707921908847924328877747492356046160495873711552204998217514374467337940558266644962169453399517791050177708833348641430219418940911351485435448914728888610317285700108644907668694302304575485521162801498027557746491495412315395132871138450902471249584325618271198806038788815224397358107051748087053450122361260899504764271276833129412659475394221499962885340974872860693847999883877763320019572594398341800749030867778633284582294616246108662923012281294300076023531479460476626040337101322415011248840889659469927774419516965572086340062913625218095461993070470874382030142304430470172346500268022474193646746314219649975022108108670861857538082969218446822078107885736301461971075907396273984489937730753445714074626666800138501051883292889504772690419669416113103259550914332394891158551895515207676584921362235388600675663126624199068186235972729847425677291128209671607570912863526332394444847152949144222833266880266867152126948144548928235731332583288914313643221903893419166624691749562864716062660213371983921922985728298615491620265992945437626332272545321464501080913210206434843374546890682418266890708720035183863964967238071149825540999901739090154280569644623215066101357938894263546024535117416459589072008362432535217641585602258489196696720523397390547403982174054136350175680412598412422167515658179183794609257168599769378228278236736764679337535023660557534680606780163532851561421046597382340790582582457252193519137824231748588787701757561491461805304418373713972123190264969927691122804199959836261893613337374589021355231695993975434355798605273062513448378299742362447987060795286100064952395325016982720595565667259917241468616549786215393596022436780258758216639362658994120381882752281848953808460392985159267842438496698580917535932612891181128043190535861880620716139171908180441018713955877674108559187377581439184006975310927842981921738427943177845700425333319463785690302360492326062040198123542598420197877239193252515322179512754334289576362667241265609591652397266361045945123933355661418598017603129751931320468579593656066222235965383738076784650461850645476810068181952883780390270129375112687598294947678973840072681762831365119933239539599030942605841768823461020896885637317956504343439157931099692839294013147848541938902060602796010143773248334021560250808747012405833753788109117941472448524553037294284759932403331871553352713554748790518658741680675277072934004778503528034734653808857243798251389694752943387017824965385895851573411322961964740681437810914191740390470531968017923429815334434950811904089147286502329730446180805688870568374805725086545555871759234292040334499376863859794909423839423799070880717715352809357426615990462653598939951008729292461372709405392492204147886102342852613485549266898424014945349843625416266684539878406687522428011401883340959252934880774693539965119926463830734732982463433215535937670554367543352045534144069708712180232313039231660778129100750189850653129008418016196299289983114782474351442607171671833106108189661253519040583130058493566751873597820314406810174062776925529513434685749645968321494984975727285961270281812552205236310062052165288800927172703585749393183850473963301109684385676962578301113090602175820669644652844653807598189757599261203588956327663900465147361751541396826647614155965314716102513618875966918542004218340067177490701474750427565518285754438321010668647670428389431957464136152680733214349819436462614617558462288815501082256555371050169291341317980179982286110286590310207362692807107359657207582656858790476105665292970197211993043205952321960162762670975244322191483026165424308879083501660115646871852141614773723725906222342771423769591633772337799283293178649546492227666049466088035456139490821176666846805360319093598908763726759498496656029115976845097417888368025952694007528778362417103518684214335774656109105264972991278035104130124802040097083376403404395066714390545843310409795739740175196766853585042134182294435295158567333896267485364333047459946202984075299252964408330236943949957120676449768570763853800973561960961767321151272210263889721787075711942711086319557128923243392790487475859010219574357930877189562249370498384388088281819252876602606706499523879767417340837514522577537908172673827879867204621800480135790180331724462697255341180835089977696480234115843562657079728054894023877004742021817950421110228409111230599884517374519428361315120509720967339112807700398933470225751798262729064179620926841275076508118854900680682259437459413898906478002853928313683025686399829967011408637976921617116078643487609214386520058091627643297173452804113153714820731555189756080374750108334370389720193757120371869685398098456222936541200629858736594239915486783437575192622545908074824790493621575487112043435546469292792981414732541546659636452594977600034407637066272540186350847607266304277599103854788379395682460412610295242370499944421977339608000858464322317606989747538845801981437661750695775598330965378889580009329091845657068497957234658147703171240665632414855178816907596685456242210967062567753628247252131728046854771245054319098109681359575872592008272318616101672858663001457172395478429704415682241740986835336407753030785425243922820263908582534644624467451214301439990009802883369315159562863931957305045520170230526427620171172238098604656245921603614726055420203494235239543367100982666488814577657191315636380565926286540392662269574374793705862483004898686675510129555846825291582028154316317762424038915084086570865811234636469487947282731598621897872498844510234210238649006589315505142645520627489244827918564990561865077118933541636489583303823078890174502108400498716201513224776505256487091696688991107234587743790242945234732113492146282310598395672388904144810802553909323575216090935565149766248512381566522478791430001741183859630416951421651144002336812497019300805208993375068985361306506662814205251413462685620743147066875137035871131974565179740704962954861585742523014203066029128546093753069363024073929941199173189181978747462662191252110763500887985922845748585506858368755543097876183716658564905659802492570049173055162638807685747445670377259732811573811990992027118739913039355639924370888116053381141333659674291644788510190110415655047108985675876153928408793859183702515940640067071585653418646665426449089878157713528782722720437503510050660203909605047788879210250173276030810334976433931854885118316390841020649585039318487777346941334396883220304067758041359282121657045175450807480645726561395234359155380077451627250678483156075530169724728277281861914078741763847468744236299493539426218383080373768048470472461827602281286005396678723340312165895711803112340340178174519287937718776342417273923212547416754384543171998332025218180969574815670156495252291890543194772033873751237378022768299029528740053985957061847107509143371399765556958839191804782600761880773374128799781486478443275024376741467199169964072070715645752525050592407196613210712389484297857406419709689967346165015547490810043863205572521991066489427612496129653622088563626789425100692717394495679285800920957177034741873636278922556583061176102551441604702586126570637869948718517146815767492994369342912998984679416495867907115759114453252230607908490612563363453947192513084316680174730214373855501574857010259551725655936772724960911845818530586517801231096701664137268397431267149944451553170514548083850447520621258070129056572713614960783527059689864192898921241449736623637897724750821242579601835053293832727338404193094806644128507771625774314120950039664427419286960650344501167649213000569576866315053988617991674799547511717859619300745028601563237242681172748361093201766136900176753897095645222653220131887962349321245646407674200212990463360135123698858695842489208905347699247754439886496777601353783277627745049957694050787198047226632081945713074295146703490501044408729919133628236466481488618111091683662886904696369046475601590828579278841220779107707622453099457473478072118293187438169142190528120739447325256054553772846182701312552609178251179234544821985992756079718722993658156230749732057141744921722089350908365637633824682314383024586431617304044327699350657821104602750686691949671239243285105974515839644729396789716179368044752271856765705842549441005523341744666923166144502608776604366288808331595677321971124641967515342645730506214771102186858074415579592675543148122648714584598297084541296425276477339643928953871819225653630429824407919234395128476552554138610714755834841010440780239108097703188611111667231568905226992222041829598449177687670309818703963620833173352991886609582012952646388042412948648646652619358633770701388959043562891239609718403901535102828658468408805643026714821465294636933314182128047863033924588751839807765046808240385984760693768163261798722799750241156575485877301316939892486796421036443911361527202362594132026407697944893026786094722106397802989726524464525845418824448443474766254263335203075690652256770772585714143315752474239688087178243218007472599959803114755665917419822715028227079727020560950291210819597477480288943446564574138751479554768643201355200790938722329257207469434710355499903320234483924105091328237572736390002632427333132767393168775260971471204993778949533972238764346836119552849522412404611232494417429988711500575661604171311801918338281959425921166962992233149928715936938004384452865957624486187309901646281328705035175970173723244934236793074390416242688684499625490467738348022285964549274092913533846479083922274408539462080620958625974570503851438247973759617771789838023127907316135448617767463622188095159378908379253000021915215106242609599872684196331654530496694648912670355047513264850927734008176140316375223449940132960598340753337895007338026003606310150742411901101666691767537961092978676118765740544640619123525773320078429147403737949095430590438811263886682469901826541831563632820845510829744492804361197065306412818691389546653968576052645717886633030209298304035238543840797014704396949887300466521264837100209357211706475042509060601243876017645399986217573648143899639568449588129995823384496946063841599183101704845873550313007017386084295814747153266005652071588034828262788156682793094375472208271448235556781745151728895329383327341864026640573983338555681531249552199101841911467747755576648946310385288863500320087440020502460005187583789105114772616180473859711560695218558066524799317363130972949719321327188629501467764875676115481312016106877089458514519501993711329410521077826422570000028500512119497728630766685494031831270000840900099527048908391401217168478742887941016366213115174281789277456181879606296415831881372030305581561667469935670067561351475901413048036828893302545814696163609179079008364034791693713660187010940806837662625845347468751143011978693578032305083634489759640095374903198524359893281404314834168802307585415813685776847148828961473017424806056484029664271053966038997279105046103459453086696903863073029006839154889676162596293639714603505486531639182922762658662228661724401198290247761003941636489416625195772575887928579413192467170457319608458731847799270527057875368145188005963928969423677662627094543826944092312509791235244416781174038929381495554761495878743297863897547334952253481384731720405690685430627177071550528227047432339523363945525283392259168149557545917884395990707405429020854703480108801284961368953909319741532749158141550202614293217961538237618877090600767376887806870904479590896085251816792728540127944957143275233531917851667551081678160713114938970676099079080344184584691710114031702156751817162945062697851476546952194811633588931050787810082040159417454723253332545446362837722641420464333967748433769466750690735876931752128957170365509896255057532915572472850140213599211136490466572417634433998087031823751647311934709817158452107443370371085640749211644694267292484825076481050186730844438697405908941551232090528550190098079757758798315162709976693503273856544095047967741113058312758046605520858313766458102340556514901881747452646396192721429591193279842391566711035216135740587654156228196931346973602285791817938826295838442923808814076518881160978287898844369051280555017227924901479386516072238051802744111134474609836020193161193157772591603862382863152104455129581921720031601794960623992299345933137784207868720008714645809624323534940085616458951714033034767208257312127224767806548930896771267812522183725763998382325192422775974317974239885327834756304709979356857109614831853522766391931058167907259121336381466447298713120201227251794878083414709091936914671813513045330543135264754142881401340473594603548692391980237866286812628425655224693354562923750236908467556879789930636339056029093812911407367647534431202937742525690621634554973905265540330207030774848612248814664791914482852519797216599050087226446090118607159936444697416980081320858526934886107104428642036115309584562206718704221834645796334769915037400419735560697428596865775417565291482552684756236537095520078883090031285761987864902898180922088344690221468524809860469707718038469097637858337720268108866064328631314240092934433753838867727835328103510293965795430466817284960075095096943934376029888768418168214134415662615945927481987295445059622122537745418050461723146896444591281782410199161672018252713299439083535928973771653935141176543218828207563095750937278214363547976772692852854694425415735038328398529557885317572808861900172421799624071198472887111548381642386406699127634327604739436249249250648858332199592751262312959996250084024061662667870352242253586610263193536559533003989881189894381672733409834119065570345527852164339053947557529332694222056498646971864791622944985137349881445297613570074116529770495305620610740250624605424287595033824403573460470931214567406360229108864469104988166906409933984468947895587095591925777628250955300077032108884516215661993997318308360862292490486659498582216670012971545569263008137939666279350945265735110426762648063471585044039921965442268859428365294828241888686423623912440535461738686977418962700894059226111140139305360488272370888171878794503226701966348932604140317219287785506639100862940534363422034641321511371430867314136418812029105272124606536352506860801529505826625489263965680576238592340511375579992780888410376022564123751652940139392757930354060471559678471432815100549227294876290382862314437543021923511090126583936037399030697548915667933252724904131360925903525576141310184335245825336003662256485585510489221075742109325258512774620558345399157677818730779609953556246696973109618556625339557472270464167567184210547943314605777249117545650638886585571819686111171299240170593900909648163901381367549772631219203885597591955579890419039574020754025514342503266234918114381107224994027085531200531064402276103857610010893969219121774721068050772731831935364883652330026606634116137607721915791480633997326843219285034751663573090071158238874203016918018442652578144099623058238491596360742208411160299491399234403350368157993605831473175210478449259602242648025492329851327351636707171207550872059658993832431593386038591678129722974002738033220190166225258074599529267256904224698653732431759768336432866986408580310731546079453731361085982791979406426629969083737981169782234587502837715531843172365708328153656426852261505298974587853323266071091350779890578219843916868725090689035608700253555408143636064797671804789599387004468613046801771917217929040649571356034076255166335142541949305723899553588540258669789814896857017236011743494511557216734131199125260133273230656145586283617316723199110253552362863387760877502405926909038042053122099017559949719301166021950868772198707588122714629454859234565819002222575584455666999954989198889100695707211473140220865581938834513253131124487775315367745027969720241915473371984539048218597622282990172096294048488106568547755129356606974904107209833131130986451515292799128653886982432120447082235801003793199457828607374603376361058691468546006370943969740926771101224184920825953425524694403278950552890210232915771207873259503879679991028432964657136452983749400811021942451679481459795383213729579939973711175861692306224898440402670691815378537337969137073212009712991345794667725038353145914641711319342438431421136020786741470723668424840258325986011722048826431081895360981717364625504675756352304094897131914974329781731336483324498503788812699593120241680915245030026694053376991879773934397492069222247937630015840384357126444195871073812396436930167043877914469812790841336603862164619847453823805218520591708247949248423899662515574349332207763385168590881061140646878929552376693916640375859420225100293951744483057233471693119157537917036057771068595264676892714911965157846887233596234445709506090758858711998470576228265133795641606225816540450451424492938215871441366650175428818727863674655802686587348578527647236633075404050701702348895315973028758590283700161321543156710086349886730903352943447172704937968221137381524024671776795626680906600807808801647293854694949685017492137001819430703507883045574813381292204969406577750723960755764143958323348031486580042677763415413509397523732518757486474758657132765415719902622334682754902439653866868064171883874916771207843698169386123994119150997411879517304353914549984842946013484495662790685398896531514350960412069420867525372395149779740741750810677029073123508040121747658211579729100403205333357378811010183192148071787318455564415192241022079073048420128114751972366896617119374819621575538761104351732331411360587284368346002640923845141907787814837143216046208223512193166055490951406722212761738983477862514432854707610667391055189531335812313512302991314558654074218216175908185972095304648769463178494856216999212436191752033981877411543384327802826206585850818891994557950043667146044762262972693333167093051667166322055841113921114219521216018541156691932757092929926219716189049815801160341700818413360813661499344646162380665262442293258050047852941140619781454434375968844460924719238852117257578333086627511960480285858621398008352896087761743594127651828789483722849330585961278755512861383930676313973086318188817188966518885230436615016777452256152601087068920971904464105854542627752020471174637552129696237715798642460725196885332547698610247219318715020824689603800104258581532727730786419985335374920864731219256296107721876431235583487524321653092568321252551144199610137582656223192664457623926754377606575265381226542289683203361528301011292691148500597788255932667268566568345728949642743872542383244789175105673058664129081078170471397627616900212355882264862775697538668877449723161569178533856229877946887064424506132751249878970045487143166523327015897069331694586867761611843142919854515756057932820166898340921112815801435711137056970109438055912281501323500838603723848545758699892214094695790778926939508172360361889949517689919929400447184014010309414788939897390790854250281859471016775971494941214453076772270897437258168535512061044476948910709551826418401924048922501470186937490061413798640803456894459788115114653545204082510859720911362578836692430004323405469943342860474427714958898548339850852454395325580163522177380186861611519225389593058812884549475482094841535353851128504977441253669351560323435497945392197219387116254485876114529465132588486968024549941404476956652505433280392463686606119643405181776809312806388002199194925780031129998074221637380474250368475254397310486097590255018500894568365986400821748802233377659554838732074068616657309441612566968735351529522431197775515226996748447974246917564373765762845918791499529430427939431846159594146447512681840384206067443016011083604343693670252867271105383085139993603562996560225303854951644395148774006873824839276162057851228814319810401514418586373552735780133832684056290141124182906603440176249085738750520938549761188619764606529863094450720933814587756923524648014672432174399132459251295563525004979795754201332692913544772479633588008917768062695721608794052003774276327843937236208359056313049044380918039405597748029579525804984226627272276241358810816100536430842490509160282760028783235705454315850937118577903387302957902436099911291340515800392451272425607527081411039103383542350320549749545994575880386480625755711648690372635999612328064473036497952080857901596365117206352990365712862423744713658619162642346303358079426448137690906613701829133571017894375398730910529732107163230619520047589376968530420436084774284219743194335432758607264181253821573297546817550023062843379926553030388242121011071102547189139945740360383601660683436603692502708891694327100658403642140430089663115659714505157835761179085042908304545307161759932093863356235779648154940788025394087515254209802450014191704363717909401389217500407366380771987945482476048193864669758859646636839543830622782852866578110224671266970422029158430025514614852931224568651015318272865337767082055261695112464778873481283781729698037008777507560650516255601295479255724237493273889974241314788709205920145809601093876773716421092378171184759586375688803583475680864410999923651862767932842582043060352487883490975129835511543780240493432047399682585714842561331791758280513305418960873726095727816737446358297049014250972444069332624144134083567188899608872478239184120731245847774260094632128010731323985424229421782803368543872612076785456058978812598542457551581915652949887708869239063630594954787235775936508308847211748932908501898672988416323992388007192892724535762108381822730810764857472783491710376612724690875451876984641015778765992231141898065688442027646309741498130150576105304269031599804239583809947826026764701782470401473008960510673708774701097872817814236297160289780136809595426702126232449832794314883153006158484891834768095916801732874890502813521638523817679299279771567785389644383589282804801454019025125774186486663557716277755565837988810918426402905059156424562699972199676592424366331853856168058079168156912081896709588162999036795867594989349063449062059814214393002003644636785005077008436436013409681159023961161393317835734872180921339958615770202196268792622559079016986880709673614770198539386693968667491754459556100460202398911388986795608711794545107203757634139574344656420700518782533926760017408375665674485998773388445814733842966018576101859593058920183334448379640968328810981664155416097673411516169130983726627318889229547079934188249828314377227935395182650630362968544514545244216910071041656216464822666401567168339570385223375192550793017075002234121737741070745582579281976484549411476567229483300250850979993596074291916892107592164442618478645130452406983741823815373269599856670663762964979390219669999083714664743666505737938522516938977787854052905702990093541911832122955878164180462830452514405821827332660680231923956674778260160819701384485283671331835196488845366550695889653009919701368016043448273842764308730344948860221595016240731049787028872521265682005940395141700762645844950603106279149379866479724430155067424943940016462443971681629422480326280621854619181633453667129745178007458220553271904416526234859637264685178974440843967299895465222016314523325193908073356380805795419487839848259346344462981971928472582765051200667053947998065802488974491870416124821360715949292585742579091824071797998232521615863188743396306820811046982942995846850219529642948691459692287214232642646253884921736881772170786271426498363226417655281458597462094384445953681722732006817554617291321504056085356217910848158353252131705971736518004324256234786101094743031770932202550616904469054376340216011170822708151682462506639136668814998971647365870871272454610904041416640509916504051284359576417619330216542346304710504534942094960963298962604187564638826381147685929607855034463971377645038501834243073172224951133736655096696310592526428663886828056246891556379030950643561337741794654772507337406352105461461222571213390742562040816317294508570649294341859853541738369048586068890759669966839890383009942987662995973843673781166159595374187797068595064498578443979074588869735601560346035982894259755180901851885024883441829386003187167328961698516447346063155417704385345178075909823335726331446962070681644079553302659643877398611510452050549066891979967144343472823246298553761264582054606713960658942523018141837810539727836368205782112867183835684107324552797242400275042169223312053524291402096082938092212861584657186655694324888556843129419495672945916296342729907111579666550272663842218657322828937573739155956576231655573455231734357459930049329735157065884828141144697570552643928224393669086454223105469132476657966201032680228528938191526873056831645313303944689977146110606488360822279376740812642538928798411845512501323322993226318230484946002162205046982643484016013693481198665559523756438981258827444099058858168593962487144400048540613567932109024699994679828590786326486758930770740892979314066054457453300489489092476395873691077676967392274707740469390236269853028823972446425043622550487484554954956339650452409533375975141598695663563281932187858981757962006730886761991143076123545329634995932422221128864075835613084678781059971096852033305627284838630808693506404229300505471331611606730941399487220883014721496198671661584852005600907888727948343062855168123207073160235652805076390747759227743040935828460878089826796722425919795744115643658505819403624075854730489286873114200549524039660020673651296855055919404757742423710604366447155956119105880335754700969286048547150837569809072516868179226009765226146949174987183097841133431679274135145648863262965639166802036897762203517606768938169886158100122510729866825565611483634901551081610511684680569777180138199145852422158089329078465809002401176372056294494913161427298007406860745483387587322191684889295072785920174676748810384362635491817187183515537408864637936717096922086952126263740479378167538180996074680310105875688902887141147670588603500826197345770228996029654684391314432042845254512096834589612945318027565473413359105295232832294485733693507887611693906983602100451545603706792314105028876696292769650753811817427991914345638931853434428120508065566106780501556428868499273862895131051279408208997284695462705001851956882088474507027175656717786401200294163290009377629766052091634248914060979552714664673188341845035060962076840139501203927062770457134414037587981824651345808885346852482680264109563885168928460621191675995986287112289778744790100776616480209668735523561375031111403981978441882897392421671238707478132043834165685236858028431119738567298418014204517759654213923167007493625526242430243952045342031911643013770919340618821711447605076711623198229304323013443655507980900776850728732126187629765398914409668454354953647820096449114935653105249067799246484902945547992165246928372335503688270411704684214623820903487663877850915769217833445169692023579730791166222059475616612908312328344181455665526214408677478906434609323970461425977753784737908130947951384079977431821337403717537793349087099962938105952522584143297979602385881621246248233420665783946061164706388393279872363696661295177285835512708725515945631263733766103438209999932177374930309740107577229816126232050060740219275544759871256769514108118534338108617126060943041012265628015501309413924376180451855143949678371289206065899757714386920908074222633208778803413633974816739143536754868751303021210234556690591830277801087342165768573407500605090350990356423472502957075325719773579236116541935930161639768434511282681955140770196753771809794894416758704694620675430741704922562266046279488981570962580349638086752826069474744060134807779427158856836784943244745041889596621831707920145195669997406716524557601702940192816155276913015171130688042426947123820651375407421090838169839737363230753507370619156091908162828663892876170959979953974802531090494466306723755338118174998663673876237675969291354792029299160957146444735516203393068442789100572574300690463271522923709462971963835780564245994270571223100783280843603756575126382019905165492720513669160268076984420262954151178386353733337663665403519909512382585467621203313615253025760022879091491806769443867999774999095477688314017308767730916488353915728834974816958827634761150704138136526709068254448198327921172436215270648724113402863337449551655106103826803349184819633275841455490227119330837366395909498440453238195394888544563475066635793575795669727959509867662117874460109278784688183611799368130990977269259484255154551438255040466113412636606715120530604946378627981187392337653905832984130287233830232723192451554489469761057345916502856223986772558388246189911983671842957231453906669932842638854398362573037935318071931466047943452433871976790758346592277653752602047974690914505907050645296333977072591661557479679947341185715064871699363740471734450096741705411080617903968822988255361150458981917520840285538430409326272009836393832614847764314035291069390097569861506272675014233406200000599203160284141686809033384899222271934478914489002402490167163952075089166852279163955075609011039070878481631009782189508295324495445286945122128464537454320730130501676418410906627035415474613137098583661439555144670830509388015781501535920108010309012914701003353117628796711038382788271500596109320387542971047263780880513924401127126489626354763836185952580588623945072847114135148624006516690924025408850488796128763083083416382753902125012104602468912137503781339941085793797052052847455511117475609656496571790052450999666813455411164365086053067882610895439608787447666314356641675207650486921150862193751949786114689581472473541384833906300787318095934539466877601791003867361350260490324093933967887580884152871882923080126793944330806503048077351001082376122884792209913717871960453708202564065522165833373027363385037545054497373584957747739097514214759027794894225403680423949969364541258405179222963560286057572438219632482810685785931140494302763768711155377607904397697761156505558762301338232563273553880454015090110290897715217757109047440924859567135589611506136814633004775530797979263445543264462112723659641409215375658881772407747316863828285586681409431650690747931325953680408296019713734565288285516793034022786174735999803504297799458062153440027019340819425213623166655041086059517115056151751319069401696011993711978651257697534762682524594335634495636747691296141017461821147038998960242649281518730635092940541978027258433123214145326221649020050962713245428842345107960357186091859194411248270432057984497969099975043162200859691155137520961829276850400588753026050303352588877442219630059788878126883141606385848266863562106088286569333857966777560361676667425243750121129898732887414293183455135593925389403583562904187966024665002504686602354643070319436736225254407655785963613120919891945438142037652260238536284237438953367055965836757138666743779557124005243957854069275861956717696731009811359673554766720200760818567947684930481500071643717478630120369655207111373334929510090831468137057247263502589450578154031460425039611964909770784063485804767074491989594549348954632314010839534267960067754782749393176682905312345628111189724244398508663847488233919218667922124837739821930032450197874066186555471763233243383872639369813701208612768470390468756017973216598723002977602937191136478740747314958272847292300822388381021083399642807851465249317722575141539375668701603475627205061511522402080733645471381850379512617598176683782659077828157245169733872507440641021374627492729326304425205919015384846538308206216433812110693778719929621991480543442370831135678614266086106724970341546200256113940519487788890244881598155537061146000133397816758081181895408438228294746226765613655446536842127165661605885175006748431736636731182986214456634856727043694738725165479488190945507187311747597668774156864075104521150247547956196582895565743534726386917734186388857474006746627282478572349719321200017500613158539038537257994372060331949368633442307242366047286598964613903030884275189057400630627478060855737511750760172751629578793520239267377559949323646783568563265068384149095652653644272728560011098912982631744841760450472690071309552904973638630526274701055873555708578645436309551510765904130761307311231153760406068956411726385614499548278968989232906584436130234475265816888874272161047565070944131804024742026378168602780896978819947598656437683258775045828795790406274765659683136788896132988012982935671285429484723133228164404688443458636380816447751402134386240438473000474133543162924984444388385383923827857962938332352377360657863946989311938146253219544121296476085248691298980694594445541444022403375348972772910558233592535505038378704416556882867719675913981567545551243472753331637814934121992688221655457669356359223075812771878125960193541993161757454716859030182035566711503140128807111336101528105611126848928018953539870408574233179695485686093823431705442556146469967629254267842917803228353046147073107514555628298282374742338479210488497693424154024967702619347283672843882269457125601042698715637506011507212645911831321133426344759902594549183105161677381103380951451996026010349276047901192576941546879993518634203518171085569371152151025421142063621590453061625372195623603763538366174644276934167519898540853399257728889665385563148688697490933373047319750612940305093829915528647661246722958895661107037802406158412788420724997172242420606670634681815497171377895068066859910704356954325854707855348286440556032394700848732519609462306186694728327742976948432231350634899993487274410542716714709336063537974751588333955370407865826458621158783780574101062207608481159660661310136461793887674831952971709162868265632001141553651705505765160655239130043195447201885659310188755489055915908364611808655889455525183054310555764770698753679420905163122840846077052496489459223172120575598894936439793385212349644911606159330952555613734581118275892990287913485390846355994808539796298859875517700472659534857488699427974706018784761179248799464817938288126103754036991871861144575959197426550651478600267434798026055862562263770981525334761213732246062455304661170445499659975752295150449580391070171181526186337170566662903879586540305499448979045434180805310433439660945566270158133497179074566196328205525124759920899779499460826166077595253505654325024839209403260484101555446292134456553591139992111721505712638920407515342973109976990259277226413077684157483770987093220151677047938926757712581657837388442139682899283762514733301167877047730608056816560496045667042268507770375012180208380534069033170693078424837324926284924446959225219573286304931261135045986068425519069957930212080566938038448772253104354333662583469334976474426385329655917098334653616623682135304163511564339795483759488882324443285049937973946777250230534311368023659122103490939961669784214029511445070831412937543234710093233314667122025329421511673616509641292574595632942288084642853423032623660003548590901849416500717675431728885164704627636757983165709338153838566167323362434844933005330950812895191240443293039632245683189797154286672688700701488774750410324211069152280429285162124465040230811900856202761730934622334671182248021027275498112782356503441522337542880761266093622242781026103673235433368605639719014810380615662709652238312739251703204797027033689524827325890261117331550779195518865185403436860453725033979507678862493350743148667029292742317195824286966802813766346283337060518458890160198809386323724354822156293944779469399428217482345069459156823171988852582751158854589084567438609740026225700346302402677146121588454307646848691938939036725996088946001511671444574445238282491330011769803781094345703186491514241101948543172103983582270865529514862843074686492834551312817099315807607757099196290552530676105394639731097786416515275511594946381626365011970754741076829471100149439339102885651369627318061546259806484297844235532601114751684045896322374885935235103020666664940710021061628800161645822762574717885733138602619272849415621191838312456774769163100060799295310695574293600683028636019279726208205984539897774682045378595047398602039615891318385101960663618430937203332516279326693537774742275996373103292299034948809188409121071095429632678483877570510661731036608108992819442921623100022953025811421078626474220466443418022658431600151312342658335089125361345256427690175049069472691777396481117818064188102955961988950609518356828548075855691741269056469905900481667139522179438073695725638919483892450878241310549990295184062310610665314045202258734546218012706788593434050976259424664127385149929367204660564021865195638996347721613569624055563393571134838833528917741292613881629120734941457264690527925069564841595319804378131177490153126219074098525087095395402044200623086987067962697147421679647110340582584127779585051090291141042364473964630181764692697930842366020586933069127210683335461519143993142557064991182572016801216135559071477397322463278679436866101474746199154654926961420876088481574834165272616647340193812081414735846428117335045770586614778309633562252199157240650714854300120340570384571286473903278961551594199681854990315052614894524794138637857326921830921011212107155646903408232954704451544468986202838814252047429591896693539550241782954333452631291922529054226458052677335746640607068381640719478577254818107590062634868467615157242427736271683506144007052211149815519687831115144148339481480561959232566220221227392486440578833756676791196158360391939869949240198492980436837661810524323383810729403457910269741542230243053610285983750636286524822426347912326968736174176164256582105924259185538562830714619418553169678149691483813612780400454912442253741826208915376871905912679841158456113310213636722041709928142861146073860069496342394597963133394795140966973426613556637390199376822874112682786136846646155551211751932876701816257715685587657906876244654996338698001941023974219138575648173835394039586871189658833503477672082385679657864226458848950439105052979580457629968152979735529273750712168998777713639134324493128343112278156581837646388298998048136724890652017711920132563560755967154378191207913738845105935715528915755012406269049782312712165391351376864164693320293913703861935886022611342483713525841548314805747303351053779366258307126670186064919390092266922590754136846009736189175032581624596273870122368135862901361276660966179206090125278744665918880396296700427838176880763801747285000575487036390505719162841921781204671963194662585319959391358804079923159225935447246465159519137971638021564587590251800280750323317339190971641640996097541497400743161518648412592559408382937362471449697775295738684990569224122850990764025326161555438880886134796823449664265592536665950812346656846394712022849064327217313539283785788576368004468409574103518630838518161604630215338645662163232339921946638703252482136543519984743047101738130593937376269445090274536716347341556244553957035844649088237423212963433951593528104383726694237563584763620744689744045771956609495149251428493280908393008978532524866267425210530625494472434081707956025221673605872338246886042144943116563088593556855367940635455322935688396340076284981996634946261691224125453879905852527916685675963179625045125721092354776601780790551762483813510685296331858791008486096019398453792886931919724397465571936964323950910774145664362352403549159169873804747220841623234856770781296106279661680238418855141869863174391022431012397537280521916603050302725975388404370982492560591863405982568099317611781303929175755856192325751448482558505558928108225215000728547620065279167421299177954210342266095434694376584462452456217639997225893307840868662072695303357877034358757683479900578219074318263019580849486893048075207724461949412643344083085066155371012946147808223642147497054686147549095570497807669156315739054214522842390502147934868762253035987389374259602542102562435109653515935180400955356614113498755618403169000025273164597557159682767239606471358057590473128442672569963598841840153482639453284342784070703802802477363976564400726159186220344967978208534254688073061843642753872768901447125306319622737239760830845026587914817469967658311654940036960266012885682701460003443055968200391086258410110708723709065694317272670282319664554474503568375931362444164916384823084734834002557832695599177295216803156151966338121134946055418703999420316553700263918539196293931209816173317986939900085261474924588923822050742816517932784843445264878713948310646699127787514636436142551110378208167533675854620123210738246630805246511288458820200488127154694055690867358830070865530897718536807938863368609930337968031845251355372597083085959911079428740145733849078709475683843487301834482710127264671911269540989293600711021932898310686563710786577520950490052553235780563788022346098026109078837648136917046698232095045517365622228553217646813510774270801270632474665404860635231755128817748174736546609140480186337295854153631519341492706297346198366966683830803828920788056758773981419831553408123908135624123112962719446315394158294849886949244478570987889772848227433367169446093274916731981970790889588050382009914827988445708344264087777111697060865039513289600723960155065319700180169257742998067296476600970268925381111450556348966347921872070339763619229263689123789689993622754408706258830860433100745393886660380413876634083720605540153129569585699573289728303671980203349876316091173930101435243658076809505089521223250016800087638158808848550596888283841286737441818281728526159315755000949391890041177013774873763417209166909840499981731983964515361914811761449204255682041864871383647802671155203047837553692966436034054579604588508335640649613330440801476195407558974611113143770775242794415271277050954994721602510621777691463577795729453259959086165876214002590448423444341084744410453742740984315661447886810516939461077433787377484580149096691346317117684904142519388878971501448038953693315382094471110393435890636203807332054099108351271389294860496725127248578556851557091222604095679659209214199215046740101108534840109822433895582698210925671542882317430562150242972165962794670161036965844589380893198971150448118485441447794989411635469643126248548262343020671032934707234630559958949163041624398398858570284303776409999887289265620424058209787333064892320462665715609950768686262662091249120677576466580674620968306888914930941674893684226290376190610603663864869722278259255886582884867636074022759356798517211154740912731007383704644383501076405219894611621861890337695137112866813969000926530018226561967635532410410788996395834225040267705244120517463954984443156549089303679665698903018564150309418294934613412652631445211067156487666119925402241185717187624230082034810857470508461882470104765451475699660895658302104514180613313097014235151501004178666608127870890825168254663005395126254231379837638629127909683595923547523360173793916481356902021394518570917601298522475685646552443130046271297423991388613732016669386526718347679088853188409373056605886791703083078760126475710610681095329040090490460139213314398713788640749520554815752783606761823119643096068807078290917347960624575398926827370259651276728142399793489741734245565156267869638555700568668386780168630905126570764812380679726974858666349213344346313040873602793019985711749673336025691448665600671611669495106886591678568873688195768132619348185126415478415869830821506634821563711527767744086458812382660649462115087889255250765622613341528107706548296773782970759151322904125815137676517882014689331382424464605788371160479564434803573503938546699638203209776033716786360478313843659029638858608106517524529148194102112498911544640000565164756024782258633559240991261041606610454610537749027341813352910912603829173333409632200256427770699649604970712716648827523066732774426607806903698041508547211301494581695376911720295829891861791216250305259113440220476137485932194299150554385070283160735128381721380065652617736835046436204011087742025606503533177655042328807875385119363104858845717612059401236822489241343980990913986434438843852374780709183892126746945781069131039656314042956835893270502984517950751275179771175290473922969825469693606878468512786463976633485604807375911653693783712896252602412461077767252723470136149379385873891198661584042631562964130187827725604127209922320715151281755313128757445675248033703482582026811992939173780895283703629643170036156686247840328624004043475062464249504439045135957752856945273277494870256867750897530126927431900607139861330959522608366436737547977025922158322958252092129842637398738432883509090068947881611608788505529531421659880585232806198728641990652651995487116401003669099093423434308502071764150609842268170309845836453151673104280620690717495901784772295551819109845673774685128363175703481320089079270451359885761761570702304805023562095409586614221246061126493754276820462467963760194115510669561357796601847461564405907693011703979666618795017627347289036746940403741326101221738060501679452300632494254414953219291826777623646494702991243731693921698927286436047084446904697283920885092735135645900923522250373116441307818641741252950228949221538158586749369680576102782727965547463299376734398267369552441905652258557703388666849689258810628384649367638391005379873244422804402948818996338034265482301393784590825649638743490820225729354545258906620752109312157522296121973649109370217263359921209809395598279536548795292029048118694234217045385419669350656305388511314376668327412418325533776228225061180040818024869164718674965630540293620560274533811785028916963264905785300183571631596127774428744490581727052593611681898959501047478573137756131521315320656908667398790394957023537147900789977243991864857997812602820171951362155867160922153250760216155342436794387627111620527947303282598036295827184506247639743352845420077425731408998334115812886866274732894153521685126277034981942745160954224216672636523840851422050933473798554921552681953978859133736078393772716975962371188464443944889210290827172041813283833783653571877120744561317429032659140337497785766022841668357309389792323511941827948395456287806302034172079754175661651080269197865053167739855107408957265096840287516152993492756805257905325617391971556384433262077527566403870503294721997851098813085082305124160067584451665140665887410468326405074880754677990957266455647762288024535743520159587989553848518746033691419279510376042222661128407580265701454538338378176821535793339532868778199627544384273400236875167324473394874169423582520763019024153179737650299726292197384042114740181826717061212413418935240723301115883157919605254991165511332866556318378554895487099497373191278993253400469145381836919251570929608427484678445285005678622705554018356452646233148518769912563083978851630146544996103083548972078309885024152715527857239511900658592985692435996873730927156097039579309022421008506475044731638066707044442506499035068815326138391471625269714256946529859787943376204869854635480172771263316232022115346547108052803016014456115263703319538428848242289803199119016128850542554184132369046071359884541022436162080744790129501808708193879445311386470939785538591166902189216473636561442855963901475747289499052225295306384481799990222487393500522364685911260261583674485915286655261702699873062505477271768028831129938943544741515439921657681209058757653494090040839485556442624064892603025485385164508501787936655935966344807139591972021570132762163458068903608125829150650910124144040811632772559758349650309637800833840885387157432791264986404104584284297488943277304565674283983064923384402443770364960722580426725663230371676876435675414020018562995738713382342126546245480976669018515464048851692872392869274058090802980282727003549609980984720905114020183805093744166375339350335174387999786154147824374050829191413875310276355754935622942827476402372283062568020954323296430419492075360714280838813623822589882169001626417871055552465919875637544623512184276576584179232676892046019276806431822337847848663695864286383794475190083045175078114210819988366432489937154188112191053075595678341569604589769233999050741163758118334159342612014104667673132256390665091174956848041108579018206139504397148127244547905053384846869564757315471023980414453690679806943435200757230936450232564190379584648828194299061597565925496289128199758370320765450440212283539058071626355353632862555073772089698513255784304326666460648216851122963145678008376823419488415182553224644589711895364517230458601401242991515070349078578170226312522534851301711690096794830478701382596679072160038855697560406446511606145438266164824005661745118331490933685753125570414547007812671678524446518098861128220862509303101499760241633484913156472991521741784394988708181983708998788842314342708275880295066832042827669728091125812909401012359459065904680256148404476982182745500410210642339024252651914356537698702972569831277224255609614606997981830699020919230588605596398773696088486470719095825957214818907878752145889186980163566371430090982894354123882539885564945993277330634249618046395706375577465015643220823969140192285315239971700593416090301441292708962288067025269852734984628841164055787410893145110697882053671512420354690378529560804695390093277903784165888650988926447131345276607520291072673203887670709032796157173393972021068003011126195592190002205287966486318467130473180238760765752896071984889340317988531731638341419256966321732858272703229410145969705628167011025516034093122796651932570962678308371232765617632558174189138278984835215078460357713883716314389021826369356614591019909712802440710308725836724036082231660971774686850649364374363201205369157860761782953192684189415430180489235575156448252216720990234589324509755983333242750745743654936642750731357806859855089503063868012485402219872883879166450865680184287771176864242977640453032447461180715751251227361471001075726046819710786346983221438437977449869143752235400688509739924524937629600475621042400576856805523582235825170412643690977213395786159016758294778739351993417052377288209463785826767028740399528817608306983935197575023365982268889779370269149827226090989840477195857036649383634812798258752891642801618928740958239570233470092085021428916702655189191361530757191373053697733192663899954673985679754242079998519041620820000582586085358240313218094423508964112567898384634408540054552432258318876505665622676609129392276501790233176043895499210463865118265028454404069510176715395745567793429816683660700253695196727478933160127407042865020570624789926739069363365797609720202161820078501617937051278977315661959545630379610691844399444859179062915190975166639907857560048402796614531243949884719781876240707825920043294032624948736799806222666214876931869980275687311207561951237252223051523378488399189765094944076552746315922084617694664723184991870570176116976414428792450996308300362862406068461260690892371006107464944566557702105192290525988686546094196137931984948192586752682098728808119893621610319607046931244230217399141552688451849828168056953572920873288107010008622290027874440505354233031345400329825304322249495336667114864520735287287744230904568374352967516490255334072145923653434017199611789980270952628040845551234764738114225264280895383961770481712832142913944284724686957735628384176479557981463558103987085912301260798535749686910067609740418516200998294465102731940806918818961593164379478804837161731629387342648864634738726011004444563411896506650597564351651432409438917478547235654765770233507873200793943280890255052752296338658406171166714897947552632329318780441061661927160258467753762515301480113497635129813462907669531983757568625398017025517190441438724375773341122816717221902108636953697203580661008574891584167290639624514682462018103184716351506195044207050980766830936388937424675169105472311847732587083814822857970575943031790914949737657312976274622825887234973233896973381373913307085022431479544562767357435804398456908166128588133431854577157139215221311814641813625292723754097873562587556851468273940848914271844024025690605256822681085827239895775853410845466303071035732207623749372169078963241681757139313428286801549094427901365716738552178586346504863851596328062409423396452485317081437679547147816736806076326499849961616273078093281699506469193119584528253786170921850322537493296111929401856387842823552622428829340238533187194805358686781025915524035192204351720553768711657684010756472601765294377083635534941415655209791625617703385885843524763629893793431372112506302146947076564644384828918959439423285226034042388001547053899336967218192281220990822244710887901310121166392381046136500605944378107006115808353742834976635018636294762798110032991048247859216194798062489884833648638309560245808012495735311068959189659848539498592169984701326729241801140886472253446695903878350168776538219133561325391669534201361693752703980960126979950264686969803808317477531778582136271228302134818755715355455575463218186545310953419195647218343171443082780728184385247091413375103528639704167151652424850293915057075527298926812289964962192567839496384486558145304323831927687770565926486171535887271688577773964423416237712789083315284248056006745279942418275792823390400224448474174712293455408381239280186221920585610607728342581785615343657842612074965556225334187230321479359814438799681040865086920429342200068765974335385701426853984964400128112729844573472090090545306114487369074099998346823806704594180471963018284591295468516368337517771792288360405623586809813718391423586175859885936324152412050048614349069807889265663962862313233497481766526852116463794908862636762099027438322330065432399179144554700313471855771370657323275595660097930804019837674650460355036504055157424945256171632422661435446943754885958102106340514814998403385947900092597669520634595819819567059652163435356295239178448882220758643091531227881902557357772855317242164520615295585635178604779155661030788131897316355530516209996722913111583057610793389820408145695310998767985284811795135959491446315490749553958549378595748292753513097177885678394385399774185309729719122531688553692965068819321145420966036644737400988614835969697101016567034363694204225377201218115749976860321993001413654165743936855805820511882265837569187737088970720193692920134456745818115160237910382673284116862247004809493683017245635918160641028795338634810935207333557817448401228568240457276188403677006223060707953056654121627561857702575350331961098853260876150811042616706517282167969558430457230285050727028661600120418359035119969090974543131507009500219899365932149269745257060742851272089701531989810176318898057139137391083060313660389439730770136281034568238521957661792855822543017263439381047618799230911900714014642678183068752785084495218766806436840927795012221807581672309022013423545193378034949388719917195604419964564358428438358985970379208784780574549622127743356198076625206349507961339390449771690049462929661079764341875817908554036231618177811106249471369597920024056093964873143516771244206937147438326458231578359323500663291253046771936825713120534781733725460957473233945221318156104899634650961748970734607596125713756794159301456925757176278410730337621839677388861617185441664178235051883743736071922209562043937788754193064043452804199322381859881267778266856328591620292456149189292398252165349887260850862467205039998785069734660631006731822139870222367588631124712758767026955115061905668384068088277276889009615150861472405733066103736557251207126987963132826647171098462786749568955917087189857400677846474032966899668262120921883786367848775438313501520023238984192493550385847590998213746515222069346158787619602166826921749898324051535310403658473988609862023575740023346666860151662592922938086702038025753477620370164330609335233762119706610839139276777162899323164122186951853277948937018066872811701643192450322389692664402151693754641660978787129785732603411745948472209558852803482042351985806808313924511280147471476678816359975310063419632802100410749765565772751603219578962527199577088414644314827412987374173750726256059776452287032164256390659021391352115241397244786436985923570007888588009022209768943078122794111263596439470564571534344215756693453418580210666593774851689390003932803358276750083349143451085986236971236147804419880132432050013308625036068937110675310786134791373573554640679684935287292085484287364118753146111995834309507324197781658609344912272429061299589689689553638441084199030476401944565962283490898571923909119867020130448443763236765587457843555938132962764579027254521827012514487666064310302420365529618760932911689730890344341113030881315573041939308682603233426378459534544921610787606926424618494455707800911212495743593884092625303215255605787557168395320827651023270965541388334177021241059730070324555848400906780489040815855368003493816011085704113928583778897190902590587344313173196176149392028320087474757454525449407420494957945777702240711915757480805728021198275747659253198614758392501451452329012148706978711766927359991880616190224937313426941863201977134508097364628170608533818022284017657347124535177762943279391304353490360734881585950934970652790220668081478036639997559761878697950302175818600749451801511104737947817500206480598123173896538101581347312832110823289433188863221135379684159465703101797166324975221212393620498707639275112593199591443240316829313472538774471538568871431992698210158539745673783433615675513210631258864678902732217917212959751788201900620881002530829975077768985970737946309402087683439877752228076712809471175659096418692794011269280049027588823577233778961576945231292677471416484089892095272060410645182797828407439135085729294681900835287705600050182102253614422081439959426245815414808054719875402254286022289808380134350584214796361871395234349188087777025912844414059599625657713606489303985241880072981566613980649635890760399735703344735988231205633936643293390537461516202460190412613316356378381139440246148701768843258132277573977221712049417609457272987917921195946947475825359329268637572921928849920347572098454676774185925357591170971953593103610421624446183675811626564236045121058142497683761306233761054136693706339137798358267755761581800854371924717582416365930065404710553705315344508913598091302004628134655958562854726707051146846705347347771906123949680248596303412053072982869098907911774675831791022381520102453489478730709109438127318732232787502328219718046347758912471448177231056933467743726340189930650762581335745739847632327649758578394890569346003699402229609083281075453543393891405741112989926355615523828050203381714105097110796755560906819120265302010816370213229032456873548762074265835702887690871768631784568520898747740002768014438390306101404838983407371580855379829196938725203820014867053181469410500967873531198934045310605099011098054123884808241038307938631767777956091277638804205185056871392334602192267732251235656321876858288034998889679932711677985725373257952034488296697646116065087333921585051236860996949849996569364196458271493439871528454877331660966954405464778907273510680888152283102040337894686071984548246558624716541220930906066496781137646500999657832791090186884790820579596707993802201538196944530831126506205432218027629047023713605670719767254794665289981589912459313628909411720902496277243922517914427339693976640331970862577317392294455199752908758724170544797847945944037152669685938573846074755111206142918510602428156133774712714405559879427821172501407474025925502938336426413604614403618191364836120870558322073039268909314926837884529389678476390327242023685479562409583051556880780688972017651722212900633517550875155564809766140082365427820439771578435040476913377619579173831164160935850054676684139335665542226123183369883808127181053238334760715859376173864216130236749120768696607624152422318484881649422131634200065164727963040689981176163012625503045183893190913420516941950757774596188744443845485774856771550142041638151049362502048993489499796034128187575213304132053737154467348429008447770403795923100951876674889006265615296956816289940535342714717697390104429238119990555107547900627113480868459665564077142066302847257221389587218820333640398719205146653841564496620795847757368398838234656800513457843734951564298218032442694819632168556203000573434967277561302515353135507801645193079019947838178664595974130485268116979129076450462163574373737702709839454488395378368394571870687793593416617707669857725507413599919121943680857459041531309660719454254538335938861147367478679163419385400560722099049240508570222116449982449290092019195759440391980906091839978687186571112252484092034096496620215099005802189330391110646036673520034475451609373521085371846870114868047988582276919080636752450535379221376001503255987114352782725784259912779301729989688457158211146520097835183272679141497041605064712182496383869439368554454886404771434911856851138237934842703778844909404430615781133513520017702019645411692269675798391932690904828693672784621932397866727318491521940564981212201772516694694872101955622690159851988177908266735216536413616251006408596075168702379106728673990827639489509336161883224463988310600369860050524805794333877545640088594861435460958304691950653755507074153831119193911762133488097498806619142429310337896422952441044178377601689923925396594145485229825466174512445925889889500537064799705880589518041683690814472389901078975566237952842982229697449711142913370714977903298419672541095144231606679351660931135059643769156197801460857225162769913134098396887698871317058533201152236426435943135731057141569553365592323767168593456498464040126778715941935882540627535635854386364703217356482310040269104959892302836610551660495054475262827988717469321961699790682732379985774196572685698156076407068117458828598767524839187085328975172124376444603950383006908272754271836988513810754621238914975366087373996434631487263200168177222270804008229658876098789406647536966664792481375783271520063005815120973909177368235648543104869479307165814560998799275701997427976622064795992164509700546711052010353905448290536047057288511287839256088737415021099355960465988449948514300324449295520604956379532413842604533519813741756907085258523401381758819677106093732041156205019318646131014810223760716791768856219857997077652820915554967798998154389133001446983266505630203588320010870141129478890161552771546897683957896753889522314266477471328682420971297911962850501028907287679472013515681202933194262473447556997364389312101031706367449555850670436685473193017541059907870282199207382669117649020065455760661378650832657582108541655188775654060844671608263608450284075046116475666954689248879937676027909959986468396721432563406405029890574566011448321019024049107855816307210579586580600049762433365717172805180523207646449772240522459467491611321555439363165581205246030143390789621862852366051807468993330768166967359592725169959306979125050281524442166009036695359655673027571200948708557578017257123416990494972926947544793146785799763059571052287749797753937589805562350236355700024793422681769063056081591792606095995504524521725432466865261489541582617201577163368037720004857283508746532878572835230957674380275375002113558101230536234126744250001118587134421660220837460313143934867059457998147838847934145428775571739532161126553353201971783795156100491071955636427125557246041286816251992543733423274686276861508124903634323961907716392101321878422045918898535382857704128195175538219026603868026823100024058385776411042547911152586398860815433202576343820191907453471236868962983523713012257156521459648309232438932152976355475775237680958877876331412936421803975853803710948564738058344725403909137002533416333220526409645458398876091139378046530285818016750796787910272012824345179720789168179830210649511248379838258262985941541367614228427971698823589219820621521296327356643772507194782811762053745392435529676500953107702573641067902984345602752021673764789250952052545182503510547855599172790694763304709735408701258503629144926098969552582016911908709167615891134704127106196159724970701902715278199516488292572599151704055531637244476245866557525204738496090226194488096495737802583908504890547504354923960030457246733960656777720307386480411067986211422682979464711768139430026067099855397126643289211609659315707991469338655332496792792072330779914386952590314763673739264983428255587716648203401676523868481394806052747700916538115819379782924613965607178552696768338187225661162038162071661599287500001001257900655212832449915552049372701793553603041409414962058412808740053229624965421744769786786566814826805148901793322305975182397879220012824404610148793161063073309433031009970567482485915127209826178471032925483465055624532162644333800697212889544170338539677516850160744115390773686763475065081682962287920551858942283611996150613244652176613209879684743794096069954865397054969275480174591955748539389232059645530799245537623361616313730635944077503475103324648443366400343211888388473423418522166691955974561272613679801116894193679824941606296741471630462450069255742670044642401627068441604959082281762123428311442262072756363138139262623340573445510629277029280489387257008592091764730073893986056945192590636380624724575408826122491769878282088746741964586556721584533533284920078532372305841657164613337034211668095272582594713858251021007308211851712906393039233868763534105817224649993313424764649940280402218743431753373777212717751552682562957879675620962138993989268353066718961016094110228628086415057448332489569130867890290185994637687392868540403025195908799143133803696930013716196759370207242631368107438016778423606047133183469473352155892274834171813006534070364544742136882013767358637746720950059075975135570568296658587876569308536934957702356345087582355682093578676898464129282926937320995426061153426764338528771895440692643055625395868994792903947256150053058264466866847006337009252035780983123889512406741560437356559680075727200688389504905468189321708310989947011020820725694201794102811374661855271532412053738780137283670343128230527289471727105093929592304149940586723653795698621322866091484932728263703004738984813485951828855623094433246953397830635762954907927383715805770835186962594046886415159483135611425399882642733682917602331760016666047150316579508928334714936815347779134941803409455746922364207831645180765723166502841989483839002010459933170649753546609055556822415633871034415453411189673301714142818607682900332393608347353017391259481969201900973408977926118922022054441469057464096276232165792697238609064090779857806722917806977918554141989453997163169823397573105529160067694393313223263914146254638150251184000115146312513610763276503308346373478422178497966208252010855227335297120535840676081479505191782294901449399013387769679866771727241173388920564971425002532435723933535533458603753272308831638085587511957806315235739640041920618577267413537859596789207985378910617299942535118224507571355041270640926134806158709627616601373609558494702945029789032924705664613659182834954980673907730409360606853254538101302490209011851257864751595324542039577794452641805683375861172157389473136147957420471324933095473743399906871797241502355869034155966623959459509696807790628318874022845987307778969247976526665727802789277565893795215014689517599874151933103773662192788987696112827639650394559119239774428446585407810661781128736378249288367713978324499056837533654608595831040653596720257828577338389479831729524089041119766972335114593662600292335076852003522023447302506622898079507714698289798843536810435437095358357642141090787570088082595387181697337758235807504221222349845352204933321626508807289041624065300180033975123088877550755198762344408357801731419831164047261244346001610405971379762517175245180265297406012040035554137820552528934753122889705348199106551407577428615780189743917142111150454019902345496633391920405024694406461787735500372749573580102766748048030076795400250243098741699110286632390630720221101861261345616356161512398803106119169339333423119213360526605676105739476344669687388879140925713452361690501756549636761141832310462117739812429418608746591662582121164876661433130571487121937360170378501157518769721472988684252409327354937456523932319886265917361277128897055779632505507756922191714913980945189578522143455477453481388916429267319714909482854250857068389411945715317156241459524283556559821233819359393161714100668376383166402122282698661567040932383132257282777398907328090534801331115115630754951735258446120930777566589934174683040368834232822207822320740700915728153783855786856206969070832241816826155893787979890084310689559566591961422606622449256180889727025206606199835233041212588769754090864564195469523590382972103890906371747836233544917821766199044483282151424818891450589728492860760951393896222978801065968623130762323371995836019157916033157103467350498310915602485421191386868273706221272986624715027141053612543138096070072667681828934541541664644163152108184745059892090935465544967794124653411636531974178121310482425611853685097907554359647679030914968746158566825226157374276128982789718240327991697777079605224818765475378305762900652995333866014510785497507300828495358257089799181088809890629693557078515018741036363329581293271299637111361659695107612247111922937232720893377721977298619814521730657771487449570322903602260760680399085702916234862819231619327564610117937915889321527080201543222424013369685374140844501696256025091544853891414638709852977854333578822114390295208556251677807371352373631469980209935276125588830532189648918660964696190167401924731317552977538025457770491767631970457011077288565083983288556804441813607577613168131208623851626699309293050321113166643114696288067719637450259352991675045868823876001650978676310997046442641486098624972254207397419367270597340512500592060267125957864580485826310931875579133832426387037970494757755297310757251228158148830695089822526690077786092302510069540829026571814531053477184741044773945617563659053115795383708361110884552231245220933764923547208069714797652131658795580494724089478088216401704330392390950381818888460509899008040052163298201825370511857607587112140225959905327677523372101307930716513649661024247423532663609422001291640925286734278798304889324231177258220380197416296761917242930637582920655363138144031756899634499813573765743333786032924907972320016937704989200094941228887553808645951713546093512735913352401331146838011284095811445547019727139398657373030915455085126809671236579175956950815225075175342124980053158867798015293019990822010490936277743205935703364326453322368830378729130426388353052582016655546049908656262711793226232584367078697571481934661912474695527883247546938765299056490939410677141769100812670818454596341531910685325306326077408125170508993757979104576854759136222443646379565360082918885826722777888402065720745404143088410477680452053958729523810256065597206704561058875289614085778308655390553298946473684399066068982597416511854476143542282641393293578414135479739782717368805397020456717665690164160986709861171349683692363279249414880982358513928301770089886320840708061443679204204207630365883508695969899129629157927852934300250743829809761427313310233746164846303690483493022763531443261810286394413558535610570304539674175116960895442034732663019535964496489546494822033225842163951880932005326832619366732662402105277834843746421847942849030109101582959422848622650569651694864703649415653404482067026784828628316323450128635710410596992320056885427386514261577341121640645501644667385989378624246816050733059931518843645574067158591797435230443359067742328806759959893285005859988308430048832510228366713875157464031754559399343867419422971497992977737686059655848134813694924636260290679743945887621181204917097020731991785243622789342721007235692261908897832508354373651738772249940429299603426752749086727042588080586455918715901677368884854025755742277370585950801227325190483739603585432399704382544188994091233249891255071451985062488425002200769633550856093871306434492849501685291032443465429819683009428002964201572077198887226316348677117497084567116422023535620483725991021905539702572711864071160817548791641095410868271014219711357755259753485813029747200515996020626238990963088955552213861586385591138428606939769597975071908960247115584495296820408009360794043882484904560932080798827094780511873860108823120741491480044720011914493328324781169538522938298295680132733872836161208742178691801981041587829987364003864761522397888844888539057613509187983872218895822356868864783570093964933580077874879454745507671322697457851196465056076779205967755175035899694184710094544274722534005395101302257126148637812179605314532691734568785995980512513863367098769100072032983826338340278383096244327390075297542702760776239257602942165207054431180216321104733788865060321800909327627706494693419710669189396770060762210687942888859316035669982731917703112555577510888255743635276870754549660341483470472311243714414708541284496414204078605584258905073312072047025901258075763368301960065481532240378465044376117725071131420554189115870750601121182180554256495684250048664679132239158499452864580998187030923743763706324876806682832534762404187012961259456184170647945203811769067986439293016650648951758118304914574929392096887597601099252841589714940836901195007792387300154282890590296540120499701236190442838448616645377055377017865189071079412894654265261718973972179363664786678406808332127589679926030548320700040777693002293167675713248506017257327170292043926056448973327873226206944354730271888856761636807105276993176378398988697812171908996055326254151960230507499482421668674721533493817134454048337675433489525347756958309438634640540840211021519982852123084766422770421569389851188418413235826767888204754901381641049513038853880010893820496499505394738159844465128778042666076181951398856693840496051796503515335180291595274369946825215800206173636027758564227972341938319904053000582697843879981075476032775703402373451779223780784356028318939919060828133500835421356239961433714178173723157110949913074680037713059609696834345506255825382904071500228577946458955785609996860101805369403099609651066648085362223211555003782727918211365709734892940170804134398792834049033784804036240884330864861713230888756257429841152639619483509493879954187005963534792216988053092848493907039456279314328636084821089135551773043059145135293277162908914958069322164355698537517180078757165713288916007565559105130359051609947744408220220992116892816312631300860723446828533784489126097638789036502010653620472274683825380964123327148440599832453384330605271890769669154142690860443180626366062828844675183330397220023755470300069821657770750146531822414550122372429582526959076164873700583987312419423499016042078532826978108118028036458559097908839151845849250493959989620293413393981676551710631363618071345358514459087988727640817395899336282888418031577461083007627957438908115843991780167702093273812124982265522877797452968177438170081267503552230970876412331234021789252953407934796600109858282130373779525987224502468654465067771262034990090590465925933871455401933953247429077965574433709805153224816399449317422299663990383030885348499624767424759141215559517421868181772331611580209884813587087184211464412572982711307727584907715333754269153526739348234891503164278948093169943167020136397557408166179522072854923787163363640571956411402256862571018804876852655962241614840768381898801330353698168233754460544553698347026132870138087423246638210384200088481294548196258392686233308323279074249376591592481646102940700399662720742732876034994512840654247696449442884851169914363206107624043261973328802826821044942935175900670172170599679259182682966998984096473214704042785721606200962091652149054202472204904040328580742035599170680718014239017866532916382736865599159539205911479260362575533671022464115117732573716203310997231772985777818588338665630844043147848918518694720007354792169820979944591654130553476702871695783238883672262087478463643494368504355075927798227087189010275137370070522537777748113374870428067851573334801841424012456063411126589444737784712813667939957993484283932446687871220261536528153047133809774654103349459426462333733810725021525197878892318392411145402561950180906355762959958861950259390946184837844582794079213693940941546424185177279805549383665660445566906711208497883386739185697841504995167172696947616506483870050515563925936869159705388214121840025341623038928060275857858430708574407562437673666421774109076350934323114244042104917714338882294864605804734406170578354192846027195113282737098846572710886802828867527290122309991897138026915165115925975552181010887659250430091042769592373331922512668774439150728492031562199736389535615260024719584181380896857981912147974752064080951431578388316010709614624792401486569733829588365741778088006246924533440316676920773290416645634808626529791814391235981155281461375866555686094705253383190987745313825940306236848542643815365440805072540594187479300029266578022595391068520053487073661699927852752533789877610339629914738020635816344578228645634182984098374675577242467874629773537866990178780365721025426946124169066143409776600283205151914943987451579635182894512302565140070650180568599482994370857703580078821298013006976231513684425533285088948160925064612688632786731147589263740802396364401484924528016430658849816268035140875637457655135671873237050989180267123804775419208448518349146370397013337080034612489781251713254078257278287493369014388726246861774176000752992719169067106296212610891522593639653682167109291206729238837075679702090894851084100428433702160448619354609220704753613242658092618224127516213785157325554674779353971072911277276730952508884507010626446176293125818296023776362557451862969293274641932349876383564237655115303419510177489877867407412500488592351557912143032043483850627530462293137521368070187459472927575446862652901345090988203443813370477778777355604383634758066620075351611698439947278556565099527235650753606434449192096965698850703900536860475371871633411724650719556270502053458894330482422132791018334500598908681921839156105190695813280339846405756098010112193649843506429427072745350847243452904390654097166310598611564567882569606898786608131252062466105336596878112873799948870887588038744201936949767081333728596239221794526345911830057630058721435810261690596146168426923596804482936548750953505736613875639852671927212719176321193932744085300959048204654198173096903046804727738147846745127665438196793198819512781535795702029672797528009718679188096000027149768894979413537567237644725809788361016024812850829385787932215495073097158455828583081955438238743464337759502342774334305091634018122421914704389029170885192102385338873765250931974180265111093738423900343138769913793988174564329946822293822543666579142867071291705905891894506730202440406423067763260647350071546663216648366588475129572033661868448468782677757330324644820296823916011074152407231698337880321836374021251349260559749182321768621957875825496358180043159878123908882989105954757884946416604273843177787172909192474007460048686925811235130308307128958504765740446894195593738188435878240706046003117843884939441647587682723826589141369632782980019580299840600035931356714599172746731441949975061431840689496606607162162893000622067305075995589420075543850629755643768939858138361691161753787617704476897749787421335730200382466988842562872382247515370087764828955669322916704331969204725012687618807233776078332463372595386746187591819722999491955667055818108779196711531370998292549045987249759847299923070530698374167903306309889453872170570480763863772887033595442643971750529690071320788416619831904964821341361996465760971195259916476149321509250242830889674645494951777429598300095859263875695413766073528266250726840888509982153982801170103888111292628010384121167758734697853714653777126814241532446532490684056881098912854131616768278508935041880684525506658410436641054918037432205576222355264172151963559696939501680226536702141086409401822053721271905466670893843158451790686837042105017586035331053860316187564484264319266258701446542629846989634045383914349836537232664221599787023941322439298422010317178200901051846671227278658827772474358054878871003296411332790887174672392040966406580616792452549038428179471557717141019378017843910706549608129001061974939073207010028163622327490157315879349328975124814485026159288208138498831256159544144357079531702860873758448960924750066836229728368083250585711077999164975999555976841473111875094411822472320921964734682716831917058649708086618290406440436785089667983055470296529205030145752877793018805875242842374390604327878355568223903448974204195201413125139461318556493290482950795683213003879779281497641645704772122097344338706991331383038523194345515817380469267473737263928387641325995011184843727783982606939461591491437250049834157451227806450706149884552848682350408705781245698849750873747984141165932982242446146012827002449954426071626656417510746499359140677219133812544349177201100268890264186555703212251730640547288836498095704218099273505975701861187932529039314750447646389728881411014496261345316621811040250882301141197661225325394670023596845953707222103574636954674026066887079966720055474544001808970936848081733663751649747495414696981885624031880882479427543850735772568218673815205988791447042348942835203016432908006471133815213996844206453367520543681008178654866080090474824497676465304127244112135553048515227427733199329746177337914014014349971661544475107180086156346584043132227786828951995276433501805762064358890827718307419667923025240511715948401695605019919165420381360117397116993025957712356454415581606500586173714187224693396209449806497855586896070173608058033489891351875366852505593820683431780067596431470403187019092157794066614881792399534514091772989084821886271640985598559772508032526275229602262963478927652469763744557513159951214947209806187718456757816346575165814803039684099956204200122484297997240952585439078480787266477472639731064983118239029046050497246052849274103321883342620295025763145202319870690366456941694354626040162451377215072397949178550019881991379357760534887208675212140471911645629777789084890047206303571189588090385900746269763374172895394083376147565205481625453442635164192641494226142740089555875561466542076255209012944227345999419864696945078364953935028044181311232305040433451179686968194671369409946183194665825072714847053006272826445445007309355652980115661767552593505525632937072965904279093816281004710408045045252182287847969010899723110223782393847681542469051442155215231415638820258980952684864979543158021955073997502953811513158621104067773160621028307623992410763224717391990260013776921324649791923187589405373640516840898727241391397037038436256243879449907291599485548450674765441387795908019510780030734574886774489144889735696914185887849766491618626969166175428748229521491481009804338397525230004002532227823842419200140802512389448674044974046338465586742272448629358859482325858742717008572008675403996983828904224762865285005495005045839982764768226777567659411632958831254420399098770213203639495847972591447100125557560563455175427978926758811780859675721282481813180366976442783173897221616684893431216573079057611866621002248026848701627200422940357842076643296254279759041320409322668748361344707774913553854167997776971120102792307077665296567728637069938492102459082960345574745095174146710444487474910417647201462022751071552165898999895512744290223934469567441945218635077430614008349079167344059370435914831574535825097063195087594206226273107708779416069949509778175458876144643062536761410295965252710852470796139695309811835560442950913391768094709543495781327575087951756566593822508386026596785698102217465961435500397762200175815149302951954334335629344519750745168280294402440181770411480979770529235568150436010652541285875075901586916668827868178394204440391003646372908324200843323953366263324790233224642698911469604652612148036334767804647594897723558026951709828191800620240663491517673060301750391867476326725886139623273699282564781910241358098985039036232623607111724916016618623334319716180580151218317559592800176679265099117042469367412746020321670148222863257675334882451954566665063804353935575040868650621455289053248309219526143611085287313560909654029455654418920435721281271072839064480713835789968314121027472095128070419256040805618168863976373488170931572249139607306720218046842637607879891388319174709021547900165384511519566785246035508100231502487453441503665691321850038669639247922427922590457418381800133970571345237665834778047401046657078222867245166219175724748599867457068189860545108791274732508156790091519083904772562709645718814766679928306371803858964732026881147947832299937046299556865826193830495080398040240787432543359190830784244790344760157716414652948161559988301717639701224760834271081937952248535057593450301587362323609835357404294843882965592832848523918826222107352160263271207261475523538412594587079004838431589716838685754122536431442491868006566119987119620490122795251902884068049361444913182917928904378628413982768556888499504228645594428595518684010384751162349095641857660100598556415753116290172437033228746480516420361413200077117028824873764404504820593217700160235965896766310582453029938045351125180688697013505742923199834977714376842833390567168564715394261097808660081642959934943913367217890610015407610867385007028878114442773507144447972854666905598270902301000016603695266382290916483599758016953301608343385362912294359252634696212101408140646946240861842795934627268247346756076751174999994501176384370655254381477808984082226735186961612197994050796384090483757785011896449505347327540234912523168229414925778473097557942037874208052771075859533429620168182726159092433415341466336805799993013629447187209546166454827395441610326309606100075799408330130832217827803085132665151964004991407825545764265332359103583066575766441750414639786971020997127601522013193621252017403903405585422142220431717949344858172186303043987648031633278297486215793331781212827885780130341838680369342805180550944840719286039702259880492926975489708399198423503481263644805038477838749236299504166627946286520794383361700095279867491721989121165096729278555443179066249179527563970834354100922589749287129055578121577292521962237972942148307336729251972449589267732043501437135294605725106280741502770597300512156740262021662673735941246583181625047061987088268235020640435587338859951987860944796655977224386141394058453332359343799796474881916031098462286748142982245745859779402113346816186206109123979436212998978551036373103444555290401973334596664075553149516838175235112920099584330740043271424882155654792666367093482623048263618196117338851007578424492964408328759200585823521256316919955023616019125598556832468680284005198777666477530683244253862170868330415233253077137313197361459480609540203550215725922451306300864125527800282859394067820983045397828039947980535021798944699914081001583439420849237000027142116080327206952801032607092784601738897997688056492683771916520185179759539094380786505231551355439105947756307410432129690914477555375654231238615227072265122997511724199524603007763682114785340793463399386207219873176185353083159162634671098850883683336179354436542314302557338215583374449770106958327285022002547851889939492582137476857692618545418053192492290444268192499652551277296911092823944216570305947273923294161305509767918795506630327982493307062912187026569638473111749557342991782351654621652122606965117447952391661320463311897039910272983677831329764925059346253780806820976459729988078338959390710161301798228361532165209395551042403456339920940359192039283116254318338798959831707796910902882120499235153565524427718621093212126926864577172586893570635922802380548955062960432967480535278123446270952642442513762392812473789346103031810709274142695629065010287434416661543064214489401835735513407296389618310890927577120443617242490925307421286703901182017961772254258134091620428081830582598165940628187013827079266931491968373283068352806775656665922451882486965644233424384463711518970791995443792232005288021444278396249810746114950014782349950689308651132658272035101047325959337595763304096962860720081827734519842389971499058880551335331893629892550399277573786951247248761762067187492937379549499252038767781789839780124519034747894291229098513847389782907615392872798572256660833184121857820482722440535930685060434838658458818207999415370801644218682411930558763634823534184901569879348025542010110143490276715114825618805547704379776739019354766454340617004586992844307141177024656397853383632727945148245542596391974512945397348933364152541420767361614301044458435018159812615000720938454485630121054929724104631852123038767416464580506443278900794499713842585791554123481372817984651411439771862687069496207523252973582044879743947237652353758454382602891375475385594247849398276980209544425437871720004562813893713243418499838656443337758004201606099710782226640218289886065559487701436150669623905098831188728052430294418506962827762108370799027975762765215820028216008548536329682720235042206702706154310905131764159679180003814317944392868110111261922487968301875818681739305864605522841769094520505066852469473926590324313846361074857579211605047581716241818720444099428613784015149213606287698494057792400371390573132513181764240894677522341873212563901650567598109553018154774006065228808697696405356844531703937198998154453769072413704458040224096547268785062170853717907180987739656124958246323407236920213890283313577814152436146933550217028019398682595059329065651497661716870753987815540561130335517322487322603383134527872102992892694481821265535928032545741750368980833326324404212758809095857688779104950644980718293748132984297757613101822856537636456353125458792808652208821038280035436789500284197897528927692994133481822951640207853250238157727849379368473895934574078840982732273177771673760790585174319719222238562782818777858886098888400082710196417741857331920244345837109512520290227365390468450361902776461034058235648608209904500858033560998808426847056865028550630300980072201029139386870951436010237143989955622934860371469424433256621499177860624749453011389898697354220766376148128276742484183766016647027802449432519780214337432425082265967261348366261475967471767859263899789821844450536633390865524215145863173722287974716244302790078067696749684158029387267828131088906598226057093887254833001515734570520724042199298847860273097990648245428338445018263213521121144348172419198555041933540279072409452827942140475293972755951768273047421995025229933243229666636881424984062177468447381409329968238270061542705017911768379201840725658011060578531798991082293445377749726892225114644403421339322956321275410955218969569053655492717410460442845899341135761929999548454741618079396736759791283339712551818938728473622283741049960626628984061403839069240133115345153387917559006767447382614902367978763832229582060113673359469595113438590007201791304468934816947949903419436072129817245192804399892881510091929628796178993636968713774494595754779481772740210772754079987706815587211598090984195796443974657844862775514172775413228924659830250134454803783518689001221513490971643571922075793640358623154024069737146084268862192606316527377464746375529316528692567803710610083718878954971437194248313916353884197377650567728309306001264191194018406630912920397127436704877658342395892971744307578208581485589633089199245478653308464151553019810324658566650982425727035064593395782506242210963815735921858726486917206500895303495807132281334240564742373459435568835471559901267681912444542227890133960876311811407373477679782422835700221665466111003027653149588064497597389021821349016705871152944085185930007678869973907877131687191263976878184378727939005432379341612887636366868177597799274920602141898043674416043464262225149245997563956683535555788703626944942355649321238275349226409500759290744880646690830677646936384446595442661911859828673210354079229949780677622042590551193008958310001255023652617424371312640196660903154801023237659906473269498861879639419170004896591109999141733901113125213205099553360534347468121702324850032208870307695218749585842889476247447083350324989434096202469532887382417388383510554938750209320627976506634332934067711663844164076377126886103307462617460888597271809846433493513150633324793432517721650193042555986246136588993249505681891160880588036048689075714999437313106923387405998240893007131771987412049244322823120239400525400512859423314725785986849002021600436477981621930759471052537386752898523467177057723980142373518704073072971122599808156697366511682116117528082919121217158721052604851133454750798301322846235808046326420662829407531929149077509737504887399496325835253706080612063567035338266173394189647073195750962562853527122936030251595360823795442814987285191445173629459503876233049262618957371410914548943982876275514053561262774359540356170960437810162445601416361840909027850902068715543699696661404747855675019590017370558810760921214931976944358329813504576888703882518529305072916760998770894989538379168553719684128663133450062521051473797258262302415950960192494217062853066724935459373117629542267343408816468007478252623238164119180970813711613610345761015916538540491033734917372329580355644487558170980865290466061410539125828544501586836218901465537328568520436675695403536405242330876080533879769925681185678276086926771485531321653585001545035366346511690912495888169822224020046653012034821246864193532916650872129230001949676264284427315399528448951954680059631364800896366532940089249339558522373037547112957203556502114311304203635500125514397699748130668325142347680368884588513194491507749384221617354236051932043824938104137852315248951454653610400931886976549500370616839809909851167409006383206303023774799259965094455879347345295247962807825729570466695973271467655269630850565571788770247514270912846652209202379010136331921843935653974557757112341023431342493051581886078058477024694307207246874970339045374351235462423433263690641369465523162254739426290781795040950809170220487508831913081149932349675828310115812439908615231369805268975689588653537716999175639531777143553064248485997543565702607374987887767490555195712057350395454440160211541111176938664290178239697207108330914551457867068009690335618182510425637342844596866838760908156593685979208067935696647727329098368355422460706827935993679869402640030934182198320414357658443529941327408991554310585497157633620061064343419042407609778896997438216025862656745559793803166087754446228027089035111804957559540179992529545068664122217830690616400306250950338741216843076636760148936124838614386622423264421697924651534849841185011981743452798933994611223662525726579850729145255082402115071514763198563949748071700358905440030613781700645970743020763190088687221484299070228923456965105493408083629684993842258211806783761786750994730013568674688946229300261089749989656083981323950627305455758587932493898810136924419254544326097535670376473335742158854623615124102445340918562321740882179669751466559187408242672938889594867815191523182424938051274385366230137510163818861445880813881055652450172861888727739867426555081797612122999560444994240500607393749019408996166565325942450918690277057648649527979970962882954093788732204357114849236679005933046931277915410310750839202530037147033263907864512825030338927733561743026855762331629740872618508794478071371919214815135396568325269929060512551674479920617344603747861345259075712333050194337860109506582999471719398045647413471906155039390575808608785368519554244795682339522445355429406403959478612110227026762555175439217884654624180329365442509215980061563160597260540572912165848273492973504579331772020197118538963875469384054158238713651272021423500968605560318695050570503558131570068820591723798828985970507424223070278440087943218090417651182909619568377886738154962399023270600254102655881325791563423290666567865785907061914527378760960839780070279825037979008235282503523941233802226246418338055588023529816866679444154243636812396512314778064831960785228107238680989592108131979917196082651168336623956651337135449154838059278080932367372201114111220636735194554388739267764263399051479527519100844130767243396624259500442151903399637900366633374587410151381863803654202980735388237761020759265055657888197931552891456052467331773360820780491228514308310453212593754599479534183469255885865051345904490279043221175560371824954914105869468395691105344978927211867051546927055166414213428733397973588935531984380940527910731778307051872409025321893773010561447736861747742932800632304194597057100925309901054349951458612574722721143401640257126540438343601984150638617612286149306391508975179317602129068809517839590180792750672159912287082856454938538185461109505559524391826625866886280692652694882880023822584009896166382809239349693101098292313680217345953688200246126624199473784221256154846620391443103357018646189092612395992825383249943722394403694685681236094149376729999118229765817651264143275102500737706156604976493342124263197899051872433744787823267818316814644859068081369789802527026594866913436047816755743569040770945940449564394291174586449652453166904265347769361333389647938840903571715715230316287307426883725980412651270739438086923439835696021585391964990705046947723106363375887324481698412069740277016868360275494750452259929392942892766442465184189219829041145001296766587071649595984826440351517181285891767309729022352361138545231179374740533553156451780671728355448866244491538326746330915799896131939799946233476825106434364090776228028035381992778150438229641110901589758404827484433754641942032323829860171497074492376863998122861752628102181599953598707001531981511257962930283159567862976761603024723563660060814087648205977563201934942160972670650286371469453515549549204732806636162370167187840770392462102674225807115994928051961814009429610710807268666360213518008873802249332154792139156955696669676548180740369304352442538820483863030316418340177372065958729276999004376449755412835240782742395934574956967387390019658578887169558068203855370864932965308754331736241293956307750480295700277522221822422507533476294271637077078920875144699197053505196568084709175087910323267342664081343762290893532011377291216809090329467223466496857387609509646655618522686449501980935334016639140100951841952718660675105730597921171966857730686785083375903872485265707532202829051656658181187757742738617709963788651493120251246615453638497948872160223600443512488313011763039507855885782972876900481081230867900678965748063705231790959320885089350963144933429680949568887507798844706551457303236099082848250978108233293026712286935505296485495547946693577149307310236428302837693303026542492775934670982700565637541964942469433280755996909106471362082439935771169133551810586502249320527379293370741298877922004170805632007177279253097713264138379969785136285205654024980394920318322683783077121451552942590907680843074276921359596485200444267073705413297522602047693628034587240136786094737287509691368768173066086449156841728288353220266343368891986828859710887111453202012520403533417225635609180455552395438821088336590725289268958334052866087909140305177296969022870694853050601822018324576020715516380742013976264222647422391101157837746474982405656846916705141470778486557782933453754103335043512163720300577031626896709855008862594880958957587803254331001282406848410235607441106913229877755169821182765395064052725271706320649553089691598666190099738156914676324118479791374145881703571284759163377638537963563544790452215732780585571569986927064479243958504508673675750010523647424069802041139342351549223437610462688807516518182028726577911912632880850792418879971869778634697206520028131588629834993371842936136667978213216552888012217518420258918848603732776181002261909588491413715913028066522601480720105212067598013236155619656046486252010117826519868450928555126677504191998741278965470405136573716641348441767688928155765855587564817840605897326099232195563175743602115894050474639119888192024420714943137507937621752920459148822960021523541165301078690888987349728378133921844752453349703813906888939618689596233206706489282497761286160673512772997912076080882037240513086163528056379896239253908739355470923927454370005591771847598344742008516390969617177200993153220675078168443201302563779573708083411335901048624453235721773557482195058420456206957717755637126327870052746692951222518253307552125936984583670697168421034770845764977121213799552373660898017989026912908044783255945020514171798583710788246043388389542584544486046146409193967882905408841089729893235876425202618964219706890962924871704409605403676771697734007931584182176657686336765656050555063842754397775386186909946718541063131076278307737423115315497735699509971737473319037363429582538120826059907547664290671412680407667699309695424202805034479459766914630976790570350992083823147444500409208349510550006260662435848240214172451289846803671580653429787822091539057185598819072492433492014699679934124075206059953550710414719959988632018728498403200753684675533209905411132244134083738060587145386149045887607985408074259292091839076055576286909742118650887439643807356286546564425617953791865642711769142300788269308438546519815643788947828275738843662862357266139753795541479609979731944941301516381448927109904400650770123653620805312891653911985570687473376940397154471495812281163327009557071717857283963950345733930684740061775008071931438380906326972006873911668464033109381421413891109435127959606641633347005995972413664557134870424904166312861627968946342754800112998520226491134094029901067608720496677029486102215004993503405694320453783609888596152040436602685240782990258677936514513019899295765986109886744367079738990335546371551802132881875657299348653126234139001108642218864128545703480139160867739878152472119948465862588058109258584494927637600272639383195860157800687332309903469950243911983550750439856618831954302511437443841055219923259585411388841945257718572445007425231032728560799331000883349240634322900198335483321776574198590367532776597118625009887027710585145906321539293726764376947211257071399277757446570671072956269496629491510983695099361366690221981758516000450287743999222695570417516869222473351622115518917690563042349152146558597165130782471824121406857062420339234176710519071570437747272108880839424086133813125411566884913982702889011148046876307744482365881169808622764993507035257925095744394098244782167374462077586190783110335420310170912130713570465900615431237790576046151619379286157412828582905021087494079822793529340135296223818107725840038133568615450561748245632049962160756373286464130659772343636143605008833321606090101935591235709755019062166861387604072247036788931353336817768862065408549758834057983833344319895306016535525931659469784661093315199457748972353028852053552216341805403698679677763625398035842148730444177762370147456754379524895896160980118597479784870173140536671737930365077579076981371590248329091868945089855850734717648046634912033306916635966512007788715340702989819327140872409166538469745989167670674970681813417353099058251933113888515936135415099224213461614342926385979812276504095108541927973878568176219039580317589852334675042132904804042819320811468589377882162270467908782862207077458206908874982890626162317922686207995253259052696034454154722334083814618813747184659835107945838222856972805086029225371661424453358457086736682496150554253782602393040178980076431030122856298685494056958171443288337718289666903422744916014654042229362959237055408542820110729841297851420020911027455396583545980364351143196625328204758264032319989691224007594005806930350739013139368654694452852501034809876964620680586940266043679746459714045351999594535185413834771312015678921193511163467315893359974137119268757083518764060125362737847504128086827237547516971807779931786502054857345399145273869188396192831761163413750697280091332194530589634607039244853946489581456449909521098092039610770231790573341097020595452804148309497482664187799614364017101968046393871393732698956874604009371575493562195797714966777636653615153701337394137590079298943308480666171865297836926543952530950403729820867232035104492557694529300678111906813284413179473994909057947035070492973567162843549787768020586984020207048286457472154675903807034410883990211056629140071722541922735927106750797513223211729483809482455254668600097690185456648685420218726216699614906476064703451698486104980086179354612880319556544388833275879180466950444679799198157385668294810378494882791075022340350016709112972961411697348820238290737731351646598287867539605326947312019126897650005013356321635803698992337839738782827522358749370805353107515241017143167675909414950674661877447914441177483153850709020456155452837439231467257461404594575629508466214947038613279568259118487256738858407464871832246277928801694937233693072938133660508152239552460742070161569507346885363923486929487174802787463369860165533318091642256453032261888806015806384022142496938619292889422045008926877201514269587794820094173515356934849543702396763227209430114711702185843029871173153512424122646028854461767118234299750364649173941423106650457236722806265601531048221979689445236357787669223563077081830846847780839695290615386868878003037420121849779025311101269621408183813095730056246182315483498677753633672584870704347392633765790403906320607076841957533995120186364805897981928791531864788812230139250887754337446436915939516077900139562807597501683310406350357416573190442854413183513355653500004378965814646462927038477739148605764582511417700288122020173646478519209360200732297981491779745621216175253351347598953588942512816639536691141895387320157772794845059534040061232240026290841189017348019215249618372673855424524911826079530738333335340670457587615534072605240272535764178414269387404249141302351810268356233870539614877255751976232898723521409872248642993994448041811672558124856753882616578061223896915734497519247490704287825697487625219952767969082299083098584498457166484875948213969361855845726467965339185499816168825381316230832725300292490850866699478750478188822956184701322012004044756107723299081097016619666623126514631890961251328181058311226384385635130558138510458459441085029983147431611048896507847464635080088350587545847112314981963070006493958983156348996918375085940632731826998107546652475309580648349019990040522757391168695724408282212544169484247440640218260178013032584006315423544688372206674090689469818463356463937549349783382141939200572376152686808386221121830849635681533992485202645522376304796505488441124803054154466846003233851381985642905503775936242517946960126969074071374352783889240848448695456150541069090716734027727937795236827524477910273518980973836584886850568327430374075373032005052713733169388124160881537712726537982826920263660210170507504789444116030448327637403547689879506032933358083283819881065858246971545254275986485236444079420390236641373205526146103903395194904646585975923252685885771082609356951114918037204997022254144230435350598986140380047281573544074875940794024922237940392035190295388045806092713289429231737020902621196370831300680144219753454827017855903322703274642327273093206348127368138041414680100268291893131982181055394969065974541033480029097374584127447045210812467055273674957708977943278812676194174248181056872702267046422640726161420278998318419835233362215942524724707845111783382954398364973916113285198015314072002404891834063770866579868326393066295037785856813561189511004493106040348029822391671296680214850340130190526640516157200202513413634689313586285093636475261286769190685405889359789124913680428503180907407031709168495704401436631035740364235706183597449563480040679539681477849077890222082405575144916403174369125614242159525337149106292057097416166258561524076977631152295389054078290853074267482471583724469139761176785990034292739450533056095001765546984812063561021215527711126705293371222147678436570038401023983122015997356694227293345214072075660038123967806797803538472311615653212710371858753536771585560658253233014808420401284235705333137630063224272599402124394018132356770212671958825500251041193093284074721381574138811131405720562302645323037939492628751642745549459382710971063865441688373609849000728209819706817805550436591006412750982383106569302228912499703636588707991699098478247495833648869570262597548541359137315890710066070731125678429168497417308685515691855349704921887621830879180506565465753147167761080192125986756318234145214160162845716237013077494250573056353708294250259407244380129043009125106563399563148208082898201977299249614068252428089406923382088228756033258721810764326229208532516220131518053133760938490916496500435767181047187700545211150086055303986824961985305324540504177619632418603020073018126016702322307041534236329724988627006078095309720494055195950171154610319659060904551317771337507668182091553730460330959963382289973438725091089585344112422059434599591024985365494013712823426920245537933465085831234529988618981873454627882567846333322249677365058179404516541613276705074488714152766859858386036930832788737979351810619175870029023081926063398492415446540856209082188238426614068435381209177242629551679419441937858671435146768307507915836572636344742101633460541942483560681895270371772423968566658782247823423003194446287301196473737488134740017942358442183833985060074008359007018409817342964018145521546229368761902398276839754985588986937275271445915572049604363551620698154940578295169412538974946374312197102650122135035787830355824083199581366722201435094315213268300722049843327072970997307686333087518015393712409557903964359636457250588264472608698137168770991826840611880248608406005774353175409918111460259572675877036060545469795810842474507605767022852024093430238160866800590537797018906405039126380231923657229591709844338402503719229801796599077754456629815272615979854660222086870765805951845473095873591288425340441298822355845825704851247199631079130511104938652876803069072275193001919594787966173545002929389896258629616367002762812472318537684740615749350804991907467815551109003992732800468620189598346442565980634934813414808500514072737578947827668200217753901839257447505035552710094781736931818442190330611091851702078891430453404338214589834864167643343822158783384210910745185553544512464952713944254171957891267410471657366038897892867382526948365683746617198959002141849141314879118288285024222740313390528494012888873475226577395867866403834763777150347829247480688748429684701371174153953569415696944446459128088114920571030101918184006049280016657944805655960329685946700416186664853681331673194434977623588819431917748641120674928217077275912575616009598875740296358987187899021169620803072274615292447804217664072202283848415444437187444978761296603120506284798852502499390339937459711573444920883824475724835638296723747011834706851258162789109089538348363936009053528035255962709418636223490657530158840595112929734878536021349947921234673002773305591775709346052748904803560586567892943829493889550759901721519821648575943160304748038404546075246829538184706165016944065787993880522150628964444580000322650560831925388292486902052078814964090821858115660386306937722680703422357202010742721143082539887057344281621668146754125726912013585881219687164779011336480047464508840929933697915865117093201329504352829036311173136705418941572728112909259222929808688330258717628347118984820823186087688984002011167454687254412630847585755428082583890433690759788497659576399037600761424961568547201984841728100418655396153031201814139824475069524395398281851173933535879216163306111788319190908578528012448701895751978944049414051330917639378073784937793355773233230285878781714581203453675805660296262425459346911839630394589816161936387485163824728367052068630739293818982634333699535600695576350501105787435372135300160557858338788807522540217172317784125691351348395142098926755254397203754137656113508432778973047666964255861033136727205682240207154883766336314240968109548427975260856824818077990461668356312607227397277843735455706807645065932838022691024236791698872727534294217456245881558469196765923237876991857841008582087955982057126434559200967329122448573171582058076815593501792157436381806817625888362621946338317581659357930043373109277089191615623789310078421661886794186369709306587117291234942516754661481939880939164193262606535651669487853074361311342678142703760896751055883075104494688681247932467698312946629106601991699477217160688607230417408704994435019125170712025271406491674959920282648884053572970744235501411571940953492484649505413618705270563647927595253791604909212005408202655945187112614339188211138407043440199393227131551183930676925701850882192014708030011175079949454401494457300946907615094400030571506130374662291216454289950852267357429372028762973764407807487025653829463535448062669687700604514192744727421588609185088093217483697201653013367731851010758144688409582430087913907403303087270219989624827911589825515133548380399061748343720729153394245915759784322307755946322299504085182079684713173091921717419579524095033855590323568561815672083517440881014618782770172149737434459405964307571374515567650842201746097083204854764378602289138307310398234190633584064848749329303168218371727540510792133406602255828876541198943541764497868514779099668824750170568169862573821354644917510724593227342589338050425234136869547889647620460528721648847648975892631602627738545943913594428758580457753329523070250957558455309954739881085085069021046537835291889032382801051466999624933777887076346695740690573418927675483680427003614524100902974445911400050941809021653057989827240713070590960360696074164010550880355687583276436084066936790002302819510008797046317469320419071314029908159142935226894946724813905273496003397150432144842380513785216747950897846358164256401892571666600551030814547828435404609074426827368085106052713069274259531490827172547698153548189942493282873711941845408399340233119584993729597250160702244287996092260077171655340388601701922320833889344717066526878844233121436091601953620021031453881036427690506536083675982069286571194289633736353592803864955716047176809138908459671222586359745339272280191051257273002755970343338056045966532551736713006790384435673429717372083828788598285785034620869186782102172972080098996405100792623114098595205448156942662727627827470630855676538777365180342000451752095608293766035978604434179664035223826670821350464950262313466653897642736334092937035325391326398011821666514183257770467168191548143774697667506409974982750950999222900024463215796423476592384905143224656695327942929766827987773855200707689962131209982061334594616485447476736691474677861381098223019654182828023691833926528276846914967570756286183285990117143453899621677484540040691590327150850842509194715393905866070498183188373629805509289933459219918052655105536536204407640987758430300340580609557569636511126475359091865974237092356902601971468138021669078010163769008270277308426679604688778091818946238451756795174899628692416562564601136363831935511535678860159774842918432798703482545977912224279331966020636211687640785956901345544960061020598749316023246377665679144922071763840304506450980898899763513135086671600416713947518792210576201960832266286527895307057382566276886861488423626777342272765036254594290029580625064538273679028223949259345196111344036079646886925460041354622297898384851964364736758664257517842907271360701082845349797856116156027573768113078177982571154359623663033997938056561113350494816800922786421032524513593761490590119276299039774701821400521322402310273388236014377156688836371501994447464461344872023398407041338738587945833482921839041164977998685460910451129659100785856507404588374333344210048898592271389479426179441170911963949617157838132610131627116677747699105532755008296731017836016314171335170692664771069719926195070106410150430074742350926719927770656708891694635508293612020211407764430221516942537960470525305510556123786614225337578034695793978943473554810280125637287601715126720156009571690507214085674044406361575544176907716572812034940448320469595627506493961835678481571011429834811636466706169623161316918507333697749076572891290305705296228537705345046840453436198357702471715057791575819609127345269050398923131485144435674261837811474947199819325657635936697752317874722533135413973025679168224305552134340155296780016734523346581735360974594272244919262208035910273511891566294978171520145085456224637671354568565119554388393557812180465788591504659560066966456352142005324190828539659262267580767377995277497581248419542673196087472008865762821934285099192587039383188674077709896719893350181191674660924726129424574540096232903963002267361208067589101833382745812144154032369560374666175255909722049592097528134591136204899869499852143303754487309975966405070431414405214365079703665542277542002096376219168294604726970741831465007730053140876664003874941548684074514655351251513016064269495928733505703647086793180193367101203157506709291399543116815142791928803799119790103329514007928268122811979650498808879919934282275841217922828124040724028058991648453680837848791916786819157223432457429788958138812264578586225442713207975654924746733730968302728257667153647021581534043465362125731694440157006250797599145162353340693842873106975348362849933160085081043113727082493264279466435331777667898864539614914709435299208725238545224078515562795552993538518757201296152125583806040620233667930599733480344428218252307112657986348784244191858958228496577614185042108033080588372642032037114840364473895213125091410330648923504791717651022814697426723782488749123866404229884035460415231140344594670270272582496774230351027284232035945171021745873307958408598952750801727379697844089727060103538310279899695620902399378652992527911060066017658235323378632422841342478849673312458086481308352225924657753388076095764351493328220674250233716078779335092716654819777654217808119581896620008301349233390239051687949195976115919391619118870601137088320292652873825467543512158435263995937834145182584340735449557187749821307982159997368326390516762904964236498288328096500632990720099947241089715519482048163677143204295632550758324705313513442574353001384792596986453348253491721611477813868949371277725598630863085151860236039509651227249210821684452170451974788614618106232815422188515913369854304064028631888075878830262646036169040455967706195763320309610976470325986551079137297418567823371548663767793959460287021772325714383983563905875552550161588108413878670332811643456866886065029748315707571919206928254026991996316026165158962015900273318175990540127761484525336098413228786150990888159658702963227035531341365216324447391972466630611505964022540176465490924700430009900828215675202072388956481316409761639407140438074293009934688717795111805056358651200356016669858850024854041001924700914493474849277340626171894153729287848007613163044552105418590464627994006243735195380999509136396137799218034208676408727204973140946604760306010855334331614722507417594194526545217519202898647061847020920215690897489957994010844530047384233957931203418871498894682783412219498022814790703231865416249710391227705253968336545054719305968059727544963003535136450128899325537400511909815571237523283960176636903863864890447415013559761515362086478532702935714940607521027474286523045677033048315640597802469432384638664786715037160577550914588453898593273411029996749103194256273704962140516556336762090559355604675883873814623804897865721420847706516921725859360358886508717641250206398981650147209439667066078750725321974682086121492636123815727112296476371084347456222484040327106069227644206437159760494426167270059163258412790874800363936517839956526514272679849805230240714698390990638458853619894907430341360522929747002559243768736073122204353147130685842480204184965505695810851442815185283413269614211214670341551121321188741270774205024102495690057045063007288528465346295377486792852028367315664687517675640087141044870446899726245302540940082843684730297602229125386532944632143209588953813088653088418864382908585796790361438536483086210268514245542865386069243276086135004374362810355998218369341770315146789916080406173805052821138552839528957104607667745496230462532055603032804986813549415892932589537894624990711805227376511232505792815210989681475497072351523595430554006833913268365682363061010419636032342572054405222515090099312119384437620683641978983636793044093037796189311977712806072263077572285858485825247999102704881395306291180258046853060127642972298636603982700831370756749288319657251331186481136376413319875330971701808985877284875807035942488942460771999000547061119956510985619893439113756964120846368990916743045940905341060166422041843954498838616231037906346579708816192098344039794806250827194063709096865389539115568714439079208152890632182970295070063197126148707227081493766494746014127868414866064122826939587572192138553941867219696651496966177973020761642299737172855036666625129967019632728607815596949366275578467135028890798897312845364085617894419862413015099135392420764517342045586793391359306530572449799120237282302813861272927197477110843809830399165770122142679612583057069130122156049488307246055332265728070887048600852226272962154892769471038128690587037359337539374733424234418590018978149794445021816144413192738612601650287235247475871563154077252221336221271228822708902649333528177207434027080919350989760867900862778255886332810943203887444967778538000746214085345873048552510399210587492516844881129179046043837654234737085841007747111303589112698309354353530420800295051756374419722897254015853820453435396831745704550838067763949704842399367964682326560127885243645738209571684678598989841073968414771196377219777556720858639370556544463525688099280299685340677836907874817752481657490400886750928768947965217193095927392518382603174291854890040508666287553771846201515148688141607955996942172709797317242885717800346845133103759889962574353838811800086054765230372097838126276941890645639360024448122209269541801279852573075611010451169357779308389031393793058978364439918635803324956590057238586060792072073569941179510103261027093981378007115953291827443488906343404016200713752678022949612984567722624396532787586397414033180592616164605069061324310398711137900154323813028531388469951294750658397256034154872627176355702224807572639454505012257756134210936195799309144388386032104759643440205598630360106196957823489746797236467422343358006011488293928346389006187732435059485802464104795869523576285420149784571244297788138004120735957062829674048145906554184719010314520434238140292531345964569781637520350986863765180258968283069443830428385961712417362619718559176046059158038814414897638690880268215988617708041984985601094435763397420305378739321525478024737630194526623464126094832787879710903542579843451404017228843814406900308110477892916678599300170905064996000963994780554824131298594203427473384667695968501778260623464598385822031567450841860938693188819589042174473508277165062644607301708274499561752180010267616730581013367763405832094183230793569237516100449032476821450258478201798140411984810107868822220730266730657946956490431524386803471688789825011829639674499105699962569982128234647736328702555665490463611119670007115775440449368712371758042264066525625393219438795588975751485567674275163802634432170223987558163074472330335068703567397786783169516609915590199819128929442757490959529887436525040518640740897829213878540159244693270681172196751720538366123738415329275757192482721259830853962557578512859305643142628836816500260827276481444605274700095206262282253570790071395223521698110878205199437351857014660095183084796095595247602487405934994850825083091588293098041251750728517317398038741284840950568168625621202417375907157967151070315502513886651386955562808184663460676404795021664319249435757899175795400924912347440116126830226315867695237823615989948260622202768679327651850289544662773200980515707373411382937408332351939622178114776971690804001414330461435026866122648831420623970526774824563191213022709189587339775507898592787959648274619296548860061217088678413398286768665904360473690812927811555064375153254919974054103788945054808994216800797887078576447813229475169717298356189107024199327302888503637464057361358743963289115975436627938118712670580500466201085049864835255675506190384922351988367280433387855765248804792148161353456104333585089540101893884765509543925065940217079585505443103512966858996540186337602206766403968156843426966020740931878174895110431710625613534935020192290044432334823277077442851308651780553766247190301304598935098202808902511455624178322356033251367217596427649143921186785371588475009994635124067248264378784601662680997535983912373160021426304273135623530821913829687410765126685212937092658318252722721173141158145613458164089569110613406420503431873210534349265359083052611850435325803036241189270401391049314867561411558572740013743505468327182157622844246391106455138709321627825423079745560584831274438337618627169716117571597926967784877118282057475519223374588347496855206434927454790089004211822561177884393597797189995889724347245954648932918017027894201881250158627755634339132972073567645020720504805601206627952643742606096450837552179222089429053891180776498429332859827119111701295561703209150294260641049272501575911859932551969088926681045404796618510762825954500657249433826935923041649229534280548989022302717657300459910309858026699891485999221315667568698611505969980710683057415335380999019391884353430543395634910944127674638141403655193347059186046520069341276044265213725975295432846034483151475067761179483043192765982235786547297540755772083880260882635665109357843278017470755567654219517531545968609186163632051006956930787219786825115641498923411087998459559122878434078480669054241232924868759382619173986863557550133703669744468227924952416042264349052803736624910454375756218763547392662579827402150913118097498798622849481646079692212488811888694635785175040231778841090487306528702445096149646386748150430422360991110142270324876054826594623000761928474208301868710337396630864330511280644748692847020309640379941015240983340994423459838506612068560997787335341887471073282851236606269533205811042579371027850171963187163785696524202255726624198592772055416208917777239152918409332546653947320472578344630769701908855839830534312725738325407174427151265537271852766929892974181414729491825880135916058138439811420513773446859750484890589588597042320929641692093359466329430546701053868808315028798087013289686634883150090699806635841533916595108110473642074086799457459155208252500782261371138040794937434612067451589859785479713133587067845818988823161471088190056689624569923961475518087597598131354159700177606567431698191159193163262901466705214774240722269569693323023188050737155125825325218028650732079846085496854603347877385634749959999203203875388037783507017497752942311730616854355806780881813211008694103213365870989172509996729622002095457916028847607372629932706871337088394073695711364019509152377876476009676617183052544357798776026964138775234605262955905129870872414606246764451420678856730629723734126015602339781691743142179859891116464546467261856118914328858677411908697691047738297131709445286753578157349180351392265651367563280796253814690465266399427035253595676307402654682436023909415954245912950271764427049199663680739922630259216987517514383331810868287168734827530305446930968111274506592615145356316351594802098851493834680340596415891959254714582391886213344380752551429948398560681388142534966148653420627153679905720369671257085644273143513779871458132677802741184532146959329074352893059881734894566706613344962248034609550970452113648474333447252664780752488067855841999299800247869451782921168051686654471406368662659492456864267472466292659090392661157424432609377584900217095412374346257687521543208082044104820876329302053527305179133417741690979159104689629045022350256375149744900963159907248203039200701031902449795359382507827543597958547844352785645426325758573066699736573999781654575801633085146377917086180455579334409144204803408190222389324903693381025194724383411487224392073551715959830281798562331776577923393918621466232219054583407612089630138047725053270360158064465106529417246613651844830700147088789597187871586716313866652204947404837198672806127787717578553014857842245311322032888523225908537922740514717515148584678625890679989877775161899561865437321638855951542203565112288838704318480980712409620643165110779428227005896811417605148467460011092904397658590840857068702958821187202004928148931467969195252117311726388748862414471986752192863955206491537933494995901941620213446699189246540221083908822607755818564506390251201774968626828664152220975241521564942063235557666937801864874059511685791972184555599692126169862609895562227098529214007736509333356500440126972180585885888515012422020612253577696846687479448382268093598972243947918029167251109276899634811735940675118689044505502276561511125968498657782922905209500098792633742702922724126242913089223509867758221579820790036248032998858886855791364414660887146866105217785148608257011032637372893656877698899621121577007120002494677995811082336213075455749343832113006473714813985397159930282281124386485255238805362911053212494467366927697162540458302539595532091248819612006338422862241189395551631499075272423240457032009548607557665065018227137294708964638371564667103551639417176424765183548781683133981758668440790249926795965601977593812352235374824393228623236157197398674402764369142801915170621683307914249518795870475007424420645335565797375441936225791439746067922976766400184595359759184707949101771165650966828114956461879218235379371203263466322516171461460700694420437193854168499968094041468476860094380096510852024986792583394323184024014186208973870542907837724961463104758675557207556480924164051817697882652847775809913452426726969487362685547751618870172998524944499044376828686218167744158266717251989843065106085673347217330146590507513802245100158171116435926995920482872488628326548808515532221130752981799566877650888016074955797541138193569082638919362968254698825563370555576871327731769293870109987624089348842565883596326077744512580923685589068405732445199860210610872221575221650640198903383355477482261608390338347492196158574423594930856665072722876996132807663481759344474776373160234669762748979413439860745706450308032500162648959505391086289054631942520878448093621741418456075425702195329062313500005848081902988839539226792072163994163888001328432236314940800496413027481310392600647848481068655999205778415252466912372084313450812322834987622362638407716173359926901129095985934317369973882378945589366519287282909577685065059107851504694387491576853806418733013659489122729488385077784744383872282552493151662962480354147305087884855599667744033553035813431126729136920139637038234102302979570890240652753708132727384954816890060025023742003054483395581013832237576807336150662300110715706517053376593520703053872652114970814414383798490023490376420907619941497058339753750599744030513777980552553474202517833233079841354057389627092532964261847850444043937211477185002661697072487845054427317274700662208996504396014010314284080322167240682361367722089662430971289856245114823390328348424077975822080439897905123093111435227203684914460987688918188691655735421071327446172192105176625820002692986022286040802142611265158087908955288540613196670338796793528571026257202371558972466981670526325664259754329041199087195408694676005975585376629716996421969055365618933835013937027294169360983488109586794583711763109982610083069181893298702808153273718958856091314440401769317699642146149404685276910699677751032290269377904715039279407729940663677757686651992002424520183506913615936759825636870727330640995984980435659213867752394591445949700799557203054594643021794824928772480870425825580553043303145928745660877140523918500428859540038179602921665897903675807686928904973798281233776654250463900447333376235494113402437099014219041297671242584646018238175980904126678568403655192725840058019039294591658931223105456777899927771248950550797857401503770867284219643985540574259214598276908107194158331188782021267245623830284173454410762387396401444632632754469640430679072734891638334998578184726827669313852937352174808614854366164660192667489661399970140486799702148806167874309528527895386937318993786761437318575340178272427766059095755958589461873569274886135521765402201516812670125906886554957557096088112986687150957892320013299466303480486426815012338505343039282353137900944878149203345941206854774382703965351433805583257948347397564616860222920437920494713227095115787584786690454759321021443762907733987193282608965726329719363301394167453792035092496272719460768402554153786869150356566052385881672978208117833143103219900890277165614790103606761394619243535991259403605455441901697245622572921929115367896468955965552313795822517580901636010450139051515865896751477340005716221424823639255073113483324874254600858740103023818797358659956705621774800358800949997030498778709681352439701543481091570104635743859704740525885999010904457142660023618627576748913090188890207947776014141143626506324485017209866441676574903949883417872367281849112527856498610173544789218496681941806391003160720554998356228551661829772704828069477326193526716581098560707912231393265736430586452558375697577401291884893386027186264610430437258228310249610000169043590114742562806861366512954208642016022124299580806536757443128967320503743993937068358914481555466355226323337201333639990767088899962650729240826829048135169528934330727786911637141914186256409985879326327939201332304703321510278699197232871896483377510438429367650497665810306033185748256583482494896637965712942789896655652138806017886560413220795942698216620309260829924801409456793030682843791243636108640762019784028247417864791438490644245264120434111745058794171771548768615500639516871523501081736029179694555928408820236709055408349989459359607032410616741598116598210627024482712817797233359511589004465981270810051808709864280917638445585308469487043668982692263710132639387078950688285526086113748039732766895548122078841842023580340560170761121140001919626909614430384358327427610204095518419473463222693042557374734773768415399839064215475598602752315754292720476609915110388020022173934509797589882068319110402409599429821268149986096360237980590757321336748689406484374930631478710795028385151971800585218358890051681105058472934956554502862739725796197216618016715248342202204347989290745531485177966713635991859882351284353025445381982145554795398381445193064961702665969837325642027116087113171787774807508490729382650080905906987388399451235140339717162081011858655165847340766586155631351346984471865691570866904669598014162294154636953441487284463432230116337091248401225401770030836167567681148847101682113393985619964197952629960421413355700466729585471311819202608019595882162958622291600922471929316893442125670555805769719208969168190354404557014471622637766312249774147186860230023052403546345013961400253315523091844344928326618817160774837720738707237140446153527194309899690755305032155856870627107413742105397907974474920277884203875070817068285421816801947404579438936538417724989836960059751437947976175010827499238501662078285831840480088839713445313940681038424690919528102932844723999605253665646359488464941824759934564147359517417609206135520171042842892697985579077081787702278344374677860594944860955671162199466768155485324789635056260398830252126917171356986694343621761092766102393512067420617714883467653278305108712448709660549447563714680140073383226374994668308941756644566758076588083467747536227848528202869345427086267046398193291448103954943527686424846691559206419824662366091882527248708164405832161822896735327435839168132471952607413413841211930569338467939570477231325459083096004850430692627434559434712202488924036985971071021469615332107860754274904779517476575458552465138885117230297634744849734802961339899048164469981627406681267500786031456513451812629227185854542097485162985879390006215341510306550526213766918994942081048466837952067573025690292990426888531194980002526036332785283188898748609394607056589313868061351172365631534728102955589969081902860187069592426560930718395889431205553983190818356931427058924326682491946101265519273002881919970510424005057208752430713957702023045314318532076103652969421135689196552477774260989727292069049557240156143551494912721763104652955503544017813574329710300351919165920945741008715208973961020188654831629567953346541992706935813976762528821995314413433961864067009535264131984947964845346166967488653433744903993061387286750523682001831814900250142017214025208569083389446914069778625844373138321492814588352041817706005776855489638857511959002767855757740888662655753893844843611828547740343884662824146313017454635786083054169570213658317494629518274663395083999697025565720876145552742851778071800717864702619011547870507432843723793641691769768233108199075220169647357122076128513427934800586936258544212367875397795707973537563489868335026565438311674684526851563298254168026565572786039308886527321230698200846063891846730082221855298347360467341852764274581724179391516000830148136493245262457492365038282472943988991152305535087695889873743676110122681717443634017877574074112209943649275694756443862346292657178476443922500142656696750242175753603851922186071870935787993844150582901628703542863428369888588379778614550439573051496833696017638010073229335181837027532605633433521626615998451944729985339372578538461297723914135574145669702880431950088287704180508231797568309787633778061914624358227107668080357914449012764696288395387332370054145994539492090688194919484366622216415050611358000304984717045772478468401894772341939012839138687471731359058596831610263895790322402027387555457801595820088732990765366407486558421723153915358642129530628250863100231985017327601369645716105058589971188912367363061947807287031981895364044649572068965340132820597655970304851161509632775472446436798925633849622265724690986301303690495564988263508574151284676428316632705546266961730055298054640155493475934289333502951033919183938859602102584883304796508962567312114100102509184585126714069116389348909567776014862791736125386265087351252888052902607407877172390043138572890527894543610577547252174071346180490039922789759401663565232453866090242958328136138014733761973583933204892020544135356396656546747029192260889830991713735746307292334121975247626576363813716495096137982288122765187073389906592926813869991327396016528591741979562806835358588605314666400229809629025104146171148403352044642747476501618782647201800140090308359314092046489833642961221908866685763099386432521172375820465145532985489431817404485795593601890054506853954503668803211010137307322639524658200434342958325443806950440849419852603240297547309038250814137778549286087242881728786888639458967661034024176143461270389750766812309179031045956397974295408134417404346391969750321323543817579745157006158011884853043180223339839527808491207765768874889113796904582317697716727597112919529373512969038177564822341160820216319782750561604354256806564844186158313605571578671553991420672213087690806204392074264787854991408521176669957243338385595603982132398365208388437823981823827246297135069115156456510930630547672592604793766300265544460248345125666158145146045349215105248767527632038788495004724083193701734867163975139358096511058364890617695711060679374008117061600894359301803302486037829736789334025247621842035470270568660604216383943515422749713303569745206358197880123144548826146328796784645019173867036690804345278225343235576029010176314068883228697360402498248654785336037304530503700870178989441791256264112585934050156212248905574131314175422875271722174930647967356331181279100888262303685512018191824011042800090493728476818703343573009919715072691584393253470613904579353379356346675946612144879297508690004833551587157974924526620775430768228699433141183814725863947046736049419222164744306214584665182392661495591716364789237077577851524261154893536696439693493021381083077980465680132545807481102811150547307550065362731719764432506582666285630078129090180303361629646877376371586265106752430696722209471351155915320345616359227053335360141812653794211357487929155682598620844519678120037219083955451336318923229399724746117327615176249009079557012600545026853984438372264082034345931803497072008294164800643732445081433310674170459635793504460657158429858573226782663551841798815134570662875847294944654421783403553375688841545030578519543755757636063118861803673811524357837631551908936980948487849924981530268722449783238096872331058191505215044251318296324938457041189011316300547004534525760753667161271907247612821547136120525876777036010859110284987301215916996512998746678643634034510544350733868836053477773143686837757342277966050664357049039168470298451895630926727643270119215421773402048038355583069996307088586107060192562592027860297513747361368235557612725664672171288362465510378450230812649752046030518299583881419974644631293250972048271540852604709614607470568042692263000480794155363451149116625593035582242255849761107850273854504528088512523622219911502594319960517129688121673801322504271477139739069290521552203097164809256734603085140248728178883524641575063861291699682278737911280809684702845684813844156173363713146243530896895800737936174148424907472321213091595492765211623361283919827244749916749424707122470095139835625484913114216530527667015352072947781268272559185290414280910666865117310560444776935880443568951617395556576588822979925531927032272704528965877198957633322323757000388160702244543324284130799900147593031419159112265327253899026467281898268199620847105331000850856990467860163783477563555043102039831355355048628914670599591045899907262034635616300919343812044357411473698674873972027868358456644886944662034362539087654811711562024287327177843400246164517763745168763783083556363590246873264140865961682192264869958853395206217349695191474133992739833502705946443187577261658685084127486068843291051499895942681727960807889923554343074614928719306585786726031913524019023999949989031628881604704719956256240525013078396281217865323748403985660570849137310171779994011796152506079596872591200107408370089600050218641569712300947448736518320376716326106356909293950636855973226529821266182627606647166245640508774254859504630130407641923287597512425468566139010381803641429795823523611099164620741081715399975084038947477258462245395447433337958715328216821670376825985997654587617987505719534048620313360916577989909608512212872506028270459991363435984848313400827565344529491591123026137228639130885813721411739940716045440220907376528011136787689856463994245204684196417931212101504034809420349567004691583222561199475984205800157809699973807471570985127870270405568968769139614394299362527268046444730034154598224730141635403542090412843174179270990112713124939271224386650894793924486811620595328327494714087230447085030052263797585767980950437352347146161050113845288802225118954387741013528463773349242952741962215231489912362171245502149741369051307220460385336546610765816169340524897050088671781164025398296571384314643251347545153196208134377793988787474611932761245725292175323555929763478402514689464210478919931249186856817846819330284775600593648452024817624125780225050019844103123367963222351023337795308471567739736480621819203995884746007798775354800182803516675024062149186931663614432482776259244284314170016680074571742404384857904024869293124935794432168611768049415852739405377570150748125404191768583868930840359153710763066128756438755945047766703274229117811414462131845922118195234554650018432904583066870860785913613360939480052379343817534610331435837308916687531985770270247024591028809074149895364488881635968346132694457735847603044178516881240623530704589978549369049963915641230451405171585294108946752426163748862833958745299552303045801100166879769495879507335116759714874270600237936896877771981197445106137733438111672648484171730959212528244143996118933694146921105477419605854615876150153287658034408703032412459495501533074091175214927807489286374658314482240457874817050666292971721317051705317465191795464442920895706894324043826317473625587587161020338163174285177316534556398767710797128769209698453071857845346698390101002072644708491112529346577467390125192758103286025040224785733050873143693840006421133538466641604790934954004198546383624975054643423789391176808201270363413855197993977422421804703723883296758008516356620283721705649661079561616874400512138889982824653195898927127704529474787130421169092836054439883896424341487482280296214912030239458704720550979814973417216395595979357124578102204406177783255261837775487721647996938584946822866843568964010453475985306046369508207158524927586261710558463832794077624583806920801302176481303252331768029378806640934377783728018359736871658954751476733440257005154995554970666264528519626907490465342810241269367083795049973643270648895166439319409557726832935698657736125652521474595495425225249027994809540576140325938601816858488861351212487849673853511950360393763233700642724379424720892598829478571122959994499168960063434747953315716126087858374085669429060965392651012900483826538287406654488076410111144703489744574606717015504408251250819576064391892127374438039041595854983179994027010856442868954232095085814570501811205233494432608475012101003462043240567018767105052839031975937241479754208757037283150437172005662957644579525786354892619980883618087246942235368045513516616325687803719172695960269114472236836023482285954699516317787065907699790030580677614200683172688784886004880996586661562454670062793656046036514980955593688322095887088592687848888577851722030199673426630954365041297347568862299818004495370871626053608380573698173915083201031777083226365662668852246459197952977455648284626030107557012742202946626658268561418110216841046431618661222035243410855820131808501021693773808881091154483783688634811266008564443337237862067456511997246872875739077085282197455905431426960716085239859915783424673834890031440828889861457360749595459075931290666713394366038516044678055564055873898087982566058650698333658053876878680919118147568969280421714899307246682160395263951516074057404577547761540089686362613391836281867186583306837674984916281058631975164925188983679094593692944718510994789492213854896070744404626784703517676328703879134783912071991981420822438351737407851360023554819399312325690086256853429544156288387326538188200150283335955293966201677159841945732132395053484207756627682415182879665020901931554907066746853260478322983741172631373419943209789205889871569180851699910093658259831308335833139692912116933720026918195987080579324747271475009838793998060569068051847505294943791554404675682539836122195350177756766770091540867338218065706351552129235378810167183927234333332105528473689882330531875612535051855698304965484406172899336022728794263383108000648203423109246569393091366492254580283462498253230286961772499817504714713946569580195526631942376781116308407826707966895467890761672193880722515573517144828430952749709446026955334432648764918486239313305196607999383912382877958542939274188813984425247768175559049772787667700039926350689736193369846480737418131255708984101026348846546932765778605467094998952184240420745410853241519500617877849842344688206684489235841601755750062895812186811848545715135110539500322248145441974118924662182794815117642734683146685895217646374713709416377105747168413140828698177167764865154211422319273221881000895500151300613496005582380322872497409215243673019518484611063745149766213724814611576116815195694665187270937887191782117351717678563605250202148972877117957427229587520447888983284750146314324445426679991123367433492607741272232320765002167598634073251163824341280251616403362991286095139916253797697769279635490808596685427132962178637526685126509948094126688189147555001243743530756797652263744033271699956881340053104531183511166252808879687469579816494623821104724465282067318096279682001751783929628503134744719015678128534475443340415456835350494994609686667897155870716108760185717776673118275685123462435699450184779272701592316367434604288233190090544869433119395566764581523766943121891892996080023879062972757521680989101011372432278776176224384878071887166197925043798436116700999059492900129531134467677150926243294663791013865884985956418155165020681704630698894768393983662336610299574534687385845244760315434868090297987756966132243797472585281067191540601276269860354657615504643621349177726761378837036071587891306785084761879322835420289120704099211798541288187857772436794897845380779448892097423625509543132936066776372001713668893411018581484736358942950367055642908965132376654018004248486873426678339391329575249902891626549312721825681986398856434930440791914237281297815582622079682049167887644274635261177396107633400527999863008660015512725210416592143775780935625636389942916456129800246190570002716630996537958224653552689868535675346090929387699231334835214674153034207577922850371515232826248547616325382785453340530885401712964132942432242509144591737132294929398275591703868876019928556772239522322422624750846160409924159025284066069812718284530868984872928003920971609615383126289612979180331948646466269313975979995271142736544702695553254746850626583945636754857775549530926987366323699726838658993266199959936615027678932348198062316408519381287019525050086084854715278898329289670435939639644467402851644350557836858728121741674219570415700550220666978371381148515525431184191302084431331923689425268584252052928030836229850315353384080783279474520457869444754605357136214889888362515238017642304275622029466904474999352784596917644547171277447285511136386182864981384929629490360964254377046405986278530446126861624288030657283028697084509733850283805032305399752880280912593015221118274273783649952274022438037956755750723796140612402752266322702678758587778271861898468532384624333957849637187618672651466417072519666935414975106155783947720804249588659768384177542984240184174714474323268420093870229951101640119874511298152059245776866920753751804226322348940686171658324419109312437874356990084865975933983694732785183502548354463107697056157573413932202730883162659734384994941114295342037863894710357680281747374519800543518107172064555736063648475217173507402936757329274609662615478161965926630601836158322858480564510069300679032189068392578410705021921346167729070585586754468598004709682267017678241232507487442390330568353292875374385238231759470720559838903916954597594893990113024843891011740611277465888793017805780817671228975682989370670940724164956290291265876966387474908788315668108414009366199649829454422583049906423271167986151331482781206570225166611677706867038010065897407589840211154517050247756397555786450465297412140693165111618957536572436615154352855189454552854866634553050922922529316088410583423984475143607526696927106303602486677369857813068940428513689885454547975432762568107496204793448110213899386632435523388265369548339432835473767225139965362895196011137455616941012092283459458102598703724207685242655177304729488771883361426820195134695355911835002390083297526113441206086654590311455401881409440924268883755091502008689557338070112948595440685142153692952150312710961770371925155705597740088172817097871437030696515112266212321228092227062564259472655290365056199691645517765411521126471310982505502174412107608822594117305847350160111881274385611773001637328987377001002764672509900069671064896083184960783625995882088103964787108861174627837159666330386567347182968778895296435761831296362502576818693824370442648077859880997781697360153689169539868691811510752175065421796248251782332547819488597983129953299064709533399364645477329500318224741195874327561779079503382496903992675575137469176436497362219822417039906031969086106024821131326159900456319627888121220174224249478286674167409751611625604109092994481926831530867930267183185973930625479952077183075327809053744489090941315340450237893780171126329980882036782094180217158268560924638164725617106571926477299712524709541014615070266651400673481208251515614003942777582114546951530795157735605808173227507004188690094327076297931307675579934651165487060566228578800794994458940296304047994305655636526435178217955602416218345907398618491193312256680366279491747343972384044745851595946612273555476790743114976689808349767756832515186889658236519738112121629046417616040021790462481586259169060451581831086001543022849085373745053144545533807794881225907590563124704882415311337327514300013796765413255314970580946603295456770260646981192845233490777966300231930870636530078779982211617739871088473754002450347185168087505597860392947217108731350781327502926789115795768295652661710413945973589695119829698381302251784475851157776232724267888160551675757990670382313132894623082282851276932223588555757597860886716458515294089754961050729927849734775279262611439047594968258316246568384075117447092908434253435005529474330672943504721314524671466017306002198932107529560365780529110719417259712874686802101843568012694902468832823124943235132693893463363303983822329858309948387258949733007709092963694041310661069828076563223945898080777259956729844520672026136143942792465189540132198860192718847568468668493707655021836350263466346346564002786695577922899071940934515115703611884146641530097821621881161016262011294584036099970485896047150993033298857940953674294338466468976999297966770575193609812925887354385541347746271155697644593301011202913801139750334443139787412831016764376089532241420918616331085743684784742783394646554533484696311994395166863379118138810985279087740327078518890436993617478577406830349306243647151609825008379555227301340636446086965405160978189186705697630190461534068501980931682863538180261724409518627272218176202946620633322557198506588216866249084385397568771544168600615405648984398144703590359152177873150795609563328750731833356683146689352833627723475248591783438328719303392397510147799243374795549968291964034518933127039954537201304209220528015235214986133705257826816974454104381303789930247847024012506551976628402433076252322216621536827768087337833031516212082314380554111508320705743509071463569989916649146874713633109274823876678485238512787985541943780263679727422211237524239330067410128042763345301757283762442464084844468794076312033779676771282687320391162428142695283585377534463027791674791078858289335321632909323792827783388383090437809956106660807726200016089165027364109911374522281189783890205927228701056011131786827827244135438231875810530704650011186910439090913385731160934046069397182944743489085938822348991547177860705263397253386841938284568317249837052746516803439579675665041350464536370143638020493219923920362426867722375212022111713546751676139546158224571284116806016780669924388829544730573985208155544733540907896712558635597646001497401136025722164387955724916513228984187009866149331051045240981639067332300999997627991363336199166471273178470496424435533513327753562650667187310832847464797549238914847218890568784232294405381969064621494703376143320547349902811808014593723000540601509277766934916342563647595738094947528660935385628738703493073733268914534544706686109517473805524603200969535799945598736612088750398297436252490581027014170311846877379768053608041183840712887179278075922147883771031002496746683375517342431296451648220083234709043309410980831809019081064741879433073156439747577371748661809059170014248421181325361665975893362588969531870669433916579767206405272234832696336757196936269064192048986534991687053468762275539905148930751631743996868361471539614850032926086096707812060479981431322136503769404160509556491871069290938636296212255339541199001182572835649810447462344404480104937944915356516226033492058824425468619329502132192302250132443829935226627667270601543870419258121032561314379456267211530359880701114595987561247744368945181253365586560542022077434039726614047400698151169113880546518918221359114956472318541224233137614171736953205519980766451192147732546147153725881841956705369419617772930281199351902986078806484347485713215579138222558056225022695866771334913883274395730428166501877646844687865691435923479202756867484140781618860685289071566599093487736323450164616135501011602439773467229371454958457957405795448531036814456240169119628180982449619495810088197428359023855737031098605799005784823042685324536221651456175717996915630049597533908277275483801196169880485863319222035796508602985506799715768939192166252950932193087407932477011680062685692457694993783044062175452663360174464096214468065686886623046479781569073145539763036179458600419078761520188616927277222802113114351469150550818010528919341574917176843204377212626250844453074824381109048477476043673623862093515832241824053045294972497803231172481688502581005143173807454025480569214157879995820492514766906693124078117807864346006380998126139511826897414092649858869351255896945189642347892818144262156702178570983252262494131352462658539914005707522503004395485639768835512399562495315797342350894041350677389792357297367681896152807065469776877789148085287283510057400464668296060659503938174144081716215177073027187431853900985388802211292537061701509734312027610419438469447089762180042218987788115027495641169388867084288053962688650058494131350319371333589232376272002029518835894817572078224245496130308626177932515447032861022332067802180016859510537614442668922809688147979495128040478907490558419222862314956437974558672809755294000339881214250103445407086041859961039894487053587609660295733731310697096836818794738069292971495900492568914784402830269779714034886004219816031878015562792050145874826891260493796439064644547822607538003719854935935130086682351440341451403321151948558705714512450378793271124706890873326519718739857709392620490775503064852862202828735099371952040758054847215057541649486530347064259257964149390546684294189205996434581445340204271144122123946418617934077998250346100510419257921877214309843090982385456117227176017970832908980601645539655581643526577417165966422309082743737953725202668657096339259700363727307950595233337523592608822783420700455951721111124277486222726363485319738597572593517951184530593105324921188993613562726288294777126868709430061833694498083823435622523756668170943242058912814962968817411813628635400159229462982435008014356621713550073472963209987190564188063854705678880139897855936747282693926739758322637633471783976540101894987447225192293426121589879189129735318706935047137019631850432256425021407465650420800464548567133468890324925484972984083980486261861335003280820700080500133614044941924851682096722574541248900297636323905989338024335993349785514818330430370879691118538578424074344937238394411805566126166974217319166924845992176498500384472770067702698624068117991691411345959640873263415756044300712552709256555713709069636637743860318950064481549820075497186199098326785809357645152054823997249255901388531871426381579752250390365606291252352982482334885262757613040073581293364006752459595670945109295983104818796277242783339733265760922780511396436661584716375237300901251595903908366131354206331015444282973140159080466790700013967021662315012331213280823509460855025788280571581869037069406590876400911526665248399047995020850773416219181489199375565712205738260435169136121514959521352360734226628221903283502361725640548013083716477442120586112971495602146613984096392963504318965891624325374520090535096381147123084367036221740686596430290379530211517185584856784634703577081596064702352258569382737785391929532805652001704575583430487147290853427259383622611669552394364023955279716513645054795724712304060946418688230609072405732468869954368305517028758718456654164392864712276227914132385764927912403660832070755285381371478959375887842023544249972202309707901528521017099020915899406317323125382984890992984697068795998210130428714923285685918853477847829421630107500998988419709325093426995121018878614517809281373352346696795273738513951038844487229115781213442293146728965066546335374427062071071322221256890193878168761072473836188078149901568385022619437442482683342041946002001475960965020960054820023099399757488374291261693003838293349916235072837721184773937251105502387935012851162607353857589327089935143581527842726030343913214413362267719591805946712081624940708002880251113941220851685584023291972864701431773332287155587396161041587671081146921831265882747794783506088961670634344409911465548765473460886721717123539558385933327641769575524411633193459472179309014203453416577342836310559855069151248110999748123380280318133841541085919297221066381910961334434476162874177562948169969460541128769398362704310148580404172131386483291704608307226120536836551024570627772408812125713979456589394434194643677440138083816673077860945310192241833367102855302474557769088241071394420814462676973569481248027545652017023139790362247580885206683699595100485335069159067189717000744183626929219886808615071133736752547849567408817817977030597173987909678514620466475268629936893990358361845297662219041941121923180742334802241336662495534158492836847011217697042646326873950362656971503407662789589336495854210641550323592322812663958384929461592816807311344204700847470322162141336802561597226412231216518005293273124399569164002203260397201255025548155132942446649717775087945211287908814521566585595985916093623222578481347906637547504551741323648692971404959001921661129155308199960094657365086060506398865119184011507527801184601713385615802207108306171276773730694156326493452243358533483481000344899099618035670993517567337554080820083129649628366544317121501438917642027640725872563744851540212771009568362653981284730155177594447276905795918500892584476719941970183967650356075799315618085789842403039597156267650627863608833960238539290261903953335709414438843660656657961032692685512151558976040010823509706620598074817425693668278073029621474599834323515748924266997092540003882974459867688606664788782301317134395362869166202759144286365645079613611195068709867654124501603308534308332203611419362389039357443312848850048780122425882822970713857258566172955724707797882929692256507766845988534880987328966478464208337481384640261712388657005895384664012455158521689220220256463572116489584373708096330481460045153105299843749671167996577531929736989146820223026102829239398989591763088650287382389158165536496435815316166999751714383570860417175246442917795088655450608560385828190913970141653763408069151810719822827754289300895750064601911979188173710252733264998370621381626531647498485264710854945077991856665256296365151204443962712440103176448899909077807300265411150441614447749684308662262483252999908235921131027994920733047518280883742052134316316565762560857370608952249151691318945721584959739414050779177048861377213835952117041508001938763373012664708446377828066552477456816480568397925972847305137515958625626095233597347589296646212021102656602779006769647666547394604360156464225719729396572970486217181172735959965591234549994504892423206161642907486624202186355586188573469896677038293652326632370745783923798593245412294027876544187065685129770174111989883771485140335030391568346693694937587800231516988013534010808408518582143298069300728298353062717454923419684967402654266182813514145618844771537783579643863068766888845647779434843563843611291003223296594836394783524705734399838657521331362263801786769069421458435345482831131678706773499530086688641602648054169432715627814744982557051725114844553751149967904996953757633693395334622489046119117079752341820924463329232191873573414860613266758021223517718877624678422513857495094158417803414740230530812498156251636630508512082765664854316920556828296844687307099713156362474543908399809665449201346218892601751888963770061706422435499620137416173939637070738022306024249763222347342330162502919783402076879976716603201908823460261779343983794319572419563396079899837483430096654821865107709517872941582909364219087149070282999172598929753942646817180865464851826463151809184745776561034626018395212585566301072108429976113581753161514202705187169986947579584115580131457059246802905669336113718238530392770431592305483085221228380361231863936791300041454250460706209783995155182755006214491141786010257040208153712264837039971741297188054014682985112251625085349249450267268554336665783371155130745218223631521661840865489454393407052406174985817304360370367086397412241093706480883605451751280190168336288407829267856608291276637230837899651948365951242659328494443538006788895433116234722687937773569308776066826605032094928435031188273714917988914471736982432200170655135569446858093934827077306984922004948339249644052725945166046222594202881366914367128447155215804770911081984681195652937949750078632510877364299843280744664032986930814795596512142562731862371381160212685932469458966991066794022140116970451876593900439339525083214292108776118539041431998080871387708539703218546890122629774592998792092479624385187623121450638467209010774640874918403163596756235843768694509517274446242358122965236390978804633070775863850445782135405808842450303597510921739320988723367176372329308856015086992212882221847409327308625380348115915135655294872366483922754237521936020909559257354658104281752348010397918289157238106664621625817289846042975415393280554925768694808739730100715516635703286655187317858021221849353702868582666955713516503076675213884736946699204482241464463516870701557036047989770265021885662573936295834513197211606698745316516881391571453738573275724227551961830703457683627674432651478610062240223766086123540318154875557211122366540563749528777908377414344162946531180784502271285891129519660802247111801743781044676501152406473202724795519539132689327996115116792264433423399413300993223661919074759455506450875674678535177952898487020526836843801189745513246504717364836079715436061878368362952134922126158339296525788088286539622246938347386923662810173373438527582584687844823780068645016240411367620009346727877968094192967495614095212579083779614758921212093261896984491359457114399997965963710700291232593698600045434038256414073176446482327211516250975678601529263433272205414920076442913901277069675157421869538887934862786476367375661191364673267153386469558306990962045261296827785639147697970579687518419590242798414629586935583403190319415430777232403564044371388593372819210361626035557376122938384910319484711820322770967324316306678140760179769071004609695215756217373918917502716855018436919704528550916954627642293174527008213201699568901367431090365263969675818744690001532412550674592753591562337027819894552022047799946124064164842571767089351827097258008218301539478258726535545850458173345382594084363157504594971761369242253012715799630981261988521590070250279134482899993976232534372992213900440817196131671728311708262762521105020171502702147388584773740433944129763979395378848938885522246057369932409052985880137115312993698821030349076881774332241259779225405277405364985780911023097340145421751021835769007837590361241548277735396463841711409412067826589235107168784588093832296456392367877284744156348431798312295225255715070471085291740014600612932791803564723269233744674655638314516286945495953735651856771772317041178885213921271341922438601335980899190092888376600279963908696184782576997884892995654802665765236227842810974542526747884373106916798026728071494225662173533804601918272161329704246819603613507818057126610097003113905627637678008494562054528158231193518943068383844951408987793079406126994142829310797734782180986590506929670684621475813479766744954167700402786408817574717233299592251320014764030009412196024904025504936945596032234763649923051927593240324317326445753517367472521546807165206035185058273346443907532002742393167020124815629069800367534810445564734502268258569898921525737521117262034929390992171932195223423007067102542097464586759915258517900166434532229571430794497761621274681129307173818544106105097900535728726846978266161113121626701069827411018694073408064175294592201515264475805473469124040954500159510772985488639724441529011067957803043844227721189548266295199623801013007387322373116761515446119092169962554347228628516830437168789052499819560134063619475770452884862030416888599327770891800026292422995149904811249280483221009326925931687941402157621383418552331042151711540816358938454666504404783288947303657979126461710133056194736822004378958865801568245713517872085841507211727503927682977235878133824479708628467633365958337061604367360172974143584145772421427194110445874662427524034134162697292902075446156617546757970868120237213726412567512010801604873356416841621391424084866076597764422622444876045079104663253193989925060146196270203691757057863034931657885361363492512605275555809805482221134661808962692092449969934697286865385630879622005540533707698408018909358764668921666584508495679000162509840041242609875430199867182577278564665416783322126289754182207629763886613774960857776721941807125461315399421480895899988549584571693864907093819389356570287290140866591448062675777311276352620885870173377403158721059480310715149643678527638561269334929101244218481199651850288900231788920092528691693356986841518446059085423091422136799106289580281303354895293584384482194449293071900861962463486755916733084366844823116255930338743518714568337744784913359012996631659966350259660057889003294787179642628229812510933303903742644494891652712332465376890430139424082984381245576572409056444939733219292300423523494656645352445623270526474295671617368854582437483615438789050505077733425235013428261190177481334435967046749056656711898450115923462657290929880145882117541733050911097363997279945386796084715880311589712752581738333481507091100833627902312695030974487027192071289400275727640606169512126680036369108278064594584935958974918133721559591109202628998115872007265743297263425540742167938967743948615502008511995566749332820407521153345671440147011233030560364987588026382990886951636301540677008371837780450275269532388928443251475693489155016291622707620115883139898354372034409499546631014910578160783091163110879557132259773208518471591646935561807476067135715247914113770139644648271172444954728957402221733279646578659946999637463078066783692383088152926579404612405191418582645427648557809164859893682703362680904394464140553561860772893619046903377107889503842134937129582135471147488631315052183613100600945576978908750516979893090461966625966563275533671316967593069364108396192076512241496641113319047942056655866240857367722526938609354706752349418123794507382259543403985877147016420115599661127333889720292170482958920858085476980592730915035552696770366387092929376146422421931090984691052624742302216144250390254529034511919911290481114166856632173102546558762466722387554169476550033906222061766918313626867361709909509561975695575454819974847583432971170269039159980910453143915527177534904385736817560918081896482850731402166005440690615950289491821024852945057293309923159787199828319516540994308970199094632798618204080807795192322227245172405416831826178872449212821226857679384621614792937472594203035243361764028843517738782456739165145613494924275844268766404215115204147345119242468235270323182485338887879827910581203257955106193714711975109418463253104508773802805485223195807442801002190780488539336975572488750230141863295111682414725624175751855893571110934806817706344839106210422333595174931459787238961386849734555527842782957316287089758200927549055695880666820379751397664950575801496780267102746518243201579801379774125949606759568710252965857465247274739182150738611640721763192740363128551745490897353155996184184852577084290128973805704608261564673891419913458901129000268962365089100807648970700090672507166638282800855445863936453850906321620189267978060981719516446300725279646229666632869957097449539285625211578259231877683666761002959090606036676382920218324394621087904462576301548752632623067899848682581314812470396191757567240322603730089804455467656487202370721725345058891699633603773121302109304740143063837816751362081025113783651865827569618161592464793666312449470270867506419703599168050127549786628221307951742109280926625610654875393863547503702895953433265206447215856561871973107742929673468532473923725990905897765641590848318931683218164398319455002983574074063724024496752018619381642199508425945637923776672945390623252040093035872893958690259599174436465672708677910488604253277505719259545251447007743072838686904745684185035906375789335205783410280720719992662382295559290703202607935318217381219707851239534501746744316984931037267323681303862798832577772284346310031005642889263498676454179462061287213865180904956489854344472798714771774653450122772903179740314682063334496227275288397437246882066998394229097249610042164986505676081420406520440652005428730463893009449872901580596918871051832546513935300753152324587172749758017767157003988303740966420167549991796006413126523210136761869000928026451140225974871449218852851135337063237465532438907924130430919602768993154906254960247146019367161646286485615904979355117604231633099373783690799670499796366403552426381332792205352373651656387087887596722964169641243483738733839370231522900517799612849556578684401702540094751592036313923535122890165982121848863006508449417871913253404833898139231802257651296275222119008943719730577672878966365011769109721738951117856209558421187490000889450113066614014023854319049166096053181802544894169483619060889337552918853301730142286786977420632540496260191410179860687023318900261384634875211274135546845893807935865442866738508264628835405771222695059746428576860192605623462064668147609644590258240260702424128552981888639248590058203111269744439379761944342619056126503870970259109819091893611208967173558108836035475914906955714483497251406249761345678152973867773084308559414323377941427744348034827662146762448752153591254487073756396832079597686061489599343667600003053267602120026488517081171030508940289223311023379737025905832316093026191936284532121357187244924344485706304614046764905424983513363320965951111385459976470860738074656684453848301266270464462127400634777538880923413390633592950388505698680838252517074704835901802596096850190766072902764298359895215779358988415073885502791860804098396180698790763282797146789698939679210190988409965306506273660985360923603898522854296098588833709774413704662349192480180362202346728181231355642973811111902270469728873932475690463157015718885371831253520576749696187204890081505787240567846390593456404908641329882435157394889817559348078573945565808519560046384470495931305304298178146303658084150057639344083815902479315188659044532318803791520038519421538287996298040614627274103407154533810546675816878276907551709413742180667957557053208145909588414800106741192992373149586631843586647485004067502304633602043602744295162994675027965751216791244686262254230703278873890556522610271535381842294962682326865663492247402533636423443777365774626042377273326424167205512720885695861002214629054854866790440755532761290769158338938952814987801208935705846051082521808330524506655823469006418287994046808047235185347698611102208099682386086832572104099931653275915545717863834170343976540553638550316184449891852002476081066722737126825465438123894766250074304278048699857714788276233940762831379679912983764867882666317817771769455695897764062917589713289170726764447686234614562018691466924823011265999479602573107111072313072975851806088012296514326329649924425524935980628368402318597976693079999893981896686496857781923394116749180946521278111781082701938861770666585239592431855440781057494046289670438735989567977629931993871278228932650680744070712662215936352183119503064766922260222664236909356166222655781551766050822212021754669779322541649391420136286991126250532008150652301642793630657171776583355797616491992962606694113119763889385757905846943583754478555709961675259183084609709446941394768535844333872093245324577082237446199416994242961634363026650182340567509092145726144088936705775274821808751550039843967989984205674255749016908870397795884870231845559280216749134730298029233250228575801120600120913999574020615551675535486963642783397501391906426513008726336395735610187184883300749899669510611819715631524335166638638445737726790607558406324434908051457975815515486718408179431987227198253115245083280607460205255358280795691043478250342924222764644637314301405995565785992352043938637242284326999913170277803310766956178066220613885233292565457802765498718474549370241827773473874219821603304641538810953316384242596890370789589596327144065776070505016102634740489010191903832000705389666399759301092041531246660414614694874776939841750804986970875203099994851458909736097241846210314382108975917562411602585636119558418151295891243514021099259947994430510070414738107332396012882119121423395133013044131804158524894068106940952595522695057204863733902918282031230638953671671233178560986750025117820370728338326003890142684236442041251092838275035272709256314293946998233678548880862818173598582030505457096743832949336118409161566552796102249164057401041739185785216716731163696943638319917873966170331255530314555687036920568615033410884614663724574053010157394102257001791545914365312009122672388699606283562524868414520803168706907769910634165547303978078214408716401452327787915678653213874055522449058088095712805515367901106860419003545956966642929100996937248736911389667667364460382413369550430829411431047239191518748276800906393515492914314216911668447625477086974141221742195414759356844941119068864346569006370423678087104712173472679870966000403406698442024411844642942076828989889904811938829694548893696068156338411051831284109374746904071784146908574490010641626942928374248992549995173548826536208353845869065337250731037100723524909763062568341090225339650913851170162780498541355101790660282602634361239798862199694949671690300199510409756567553183836954996589602121869789472069768284725277625771920666144659937480599499189567542447010879333359375248788583521935781500739893938774066994736836784327320664405714774560397180937456080760659888360810067616207285146678941989122757285631755548617180161205132994840788083026421107571257186005606891769610502694950179049470497243575774081268007756817398267654441744411486018135400531357536283521287215526562514001058220274705250852410976535158180587623128033976387399140530269884646958539214198467810500439517315207689157194946446397699723011412892015024036107715411341193926836644237677611890002947661546083171603389043365785932207921344579295526247635866988654306674463143401365804163699333408171354796949781949281594500912875037636179936249335064961082313889615887914645478290150728724970927848523198005371325458096648498059859895458806823333984525310534026614304826033732686937814154176935214900853720783581904803305063910505552770660079775777364065136917023701890034418736551153307062632497112151394486920267357327377176780186981586551486710271336021986502662594775064241811787625903392994561225316484747458597466175729354888699714573848255449450187702718388834919635668226199291270684396038887242761634226970442811228295676074294686979602720456953870567175343453392165001232556846809833160072174005888599369722693986516169462743966714692636542187890948886399775499679682221047333062653498443616965087659156075726089543876288842657536655159626785618757897740291264523056836236981018982578855863256595293837798541229596781359474060695416257424074156798326614033886852660132744480763577354008360644787629656011400438053559413004184843510373865048713891976761456380647895106563373742277440267455572687208253567234760353976932654052710895107773589306752204694698744271255736920055737721956817315420114438785683613777831690018689225483097210427196916307265290001967837488599710362882670824735960688479029048385458879846732310072139329913517688134671707472829713269864471689038075215726882953041951289785237235332517727584281852792402257223815165623977116033552998935427623904188195435258261988822034764567965285229285669305859794867072231998292436439190629764395063762070010516790507078120364036957450377822900861100360602959738500143202292350461749339598482199273991509341409227060885050071838924169880026898799182105300097741011925836916303569864120630318046590440089936349741829912179180925165736484357542072150394725729586223627196051476847393211352694960453689591639989508463242290047739948050148360228281337811681452521263143771174664863347385191228287701160293026718842374347552868663408314360214087973390504988437068535038656131695311126066034080538318872638031137766050250637854070717739097458618378088657914383301515994185261615564906329729621422537000976378058653572823062061753535574681985483427305704052448499261050076260978414902750892294402736806912670564762155879346281496038107063028446161785424641432380898434247946690729383754809223847405954756019477957908197338928660078942900633809390922268724636589480019501453851950800625680765315685937459941917312145844091268235296867282837743101787684804617052604286237253661820980882565008326098750029484232939164972649679727971328366798135828458523162841589220978238313265660430292779468282954701953759265529489735579901751362116338121326232700026413646168230254543326737282282992589832697199934463113846540881622987682553584031284146141162558168266888993016870027373967759763644039462771701914226202329845612484278270009999254304969858066982718458004620833447856023608350815922844127342303427787281218204138735459325084344167539663108740234448761542409645016929232465368231519402933550068962560184618161103918247814689392900445110220920667234702171004991083092914830649162290997120328265120598133014539606105522250153752930996775432127555434915919736311300439049416550919943373252650613538304197203364309293178693965698780469238263170688240456908814719756925263134997057128690944804476588996638559835154508576285057908948310310964958572473582539663114870310466600280089117859850804119877328709949166781694968710843920731152099241446710919873947218977635117766236645527114078688338467918591447339486592305417109744946247622454025749433619814320007740285304789050595192187929307109023145681989075313828572965661948218622915894983610085903811689079958172102919427333933788916077232248126111793258629527888843208752816628953172016862273271497014375714923773738024687157229153269132732512983580490545539606496519198360395068792252588990136949084705667861061250952753604855989904289012067295553466803332281579448982654647662754396540379081497832672338717760538217413669811713086611916260802008441953506264931073256736986920171977413441097826392322335024604546577950855617574271977674077634641986678267270034432533679360131063208565991530314495491566759124842160710529348611614940866063586765126256540557769122141532104082452319200209946353438379093407404318981592034400193079241976633602005466119577038656945597241003804083207750256741457593636178171285464692873475696155373489731341717658602726302565702246500892079057068526777694210584489168394459554577241210411845492183857021387851087826976603049940013265490102857726114422556751739397862460630515045452242741365792844569203111898408898364337402710484390821050485806452114785997030533127967626384602939747575039215869845713529260860094401210044653477339332775130612297244231830049681772734391899119937865240145684336809530822397573498484013451595967167531475947541498750159586351177407609082173249666701102959473546808197095212651809825296741994708764212312875248275744718625382484497375625700932061380310708232191854988869167523933545909162990578109265514032772463449924744886660646529293756688594478667647760134611139138812231760898989111992574244165853926380016806338585197806031294697123409041606895356511845693297236726917091609121721024060136952603436923586973321617597406719121020714968452706149455628652049095476365748723822790478995306409152801187863924785390902059482208482289329987130044817288864369475078172483885644113693409968720085987269815162974939816853753794126983463751085163661914389020398899088499301725108391183706637660855140623057459436835082865805260388748932318232068932950163448304009296024382042887809834195451197459281158307010033728122379889965924619112238042665585424643088370675179091725525512740749574320490716617959684222471729313918931291791261794431815710257111946635813770256525338800553029699790026685026168499359436458726722299449958881899509070999444662820648320064563859706780151056520533896874102780381403964784731799188070479050123133896763568823910436271896068344589558103229088276962164903498554927386331871600406269101413504540670095101347817897207259741816861961667918198308035978007829277398248842692515343340301847639253843282900159712266163300237656168187061876372738682895164296371646659210897708307856950159708479853959915952221035859026365141769099116400101886605459325693384428204610301738491920944435371318100974120627717388741520836159041985698908591559548224433706724682579078433844201993922952216569495984713023403306179530907760805375046086696302569711645127969145946314150795880242548017077713585957002387399763087114436785308949370805542577437220380999136094405015639124330536114021539496798024447686219264131100001637548248870777589026747258941096825987468736633598339485089279206105666298050678885101198126148038654742282083508509513854550761487355944055938371353428501743906074094666588077432163867725012304511979109798519502553394539398302916409368237361030440844085465503395277734978786335897174649739801369218498330051917967239834960126334908339470206292628421355160507785473016031850160257102349972470920371335034053395000915391923180103909270135056015324123132354256529462206681806655476324124515278652231626720801581768167103734561024402434766121642536683385572619473475394843168357648378998516421510732258996431439900859930715080045665583291184759567046746466124911322987300116333865204230152323188337478403279375488019871868234804482078139946805360898708133258563680949925986769948448243683191224712773692776000421099465867894435783030726827179447492795890251107510909235515691995744774054976993385911516986129667389191640580833902126471247396014463779817769018799558106004451362126654137705646809422382358795988812086614683756091628884791586366010447426491876112217669534510005607647228528536343351868886138569301104972213485269889127300586207978989888906805973718023282549315868881387879599110472190423803991396350374851659257568823671142321883410764297888064479736328798647803582419264051310690086550982792660731543477975989616428275802626324531275138455838558628714581475299499580371656679447963663310943646936893370769303664428496322895928330668810401356277738726135893931925042631095511470757948741629710289086812395537343881663088396920022797994600236393413484969117978542605614831429332203360289362958625115598031985728192448402281922862388128903144717532910599062955232646184327452542467993142938931399337248451594435760752059367109890305600733912128092492917234292607209506047222709923965227628334952451403026528936201507538530962456344605839813147208645335972404929948069669455083343928995647376648802291147599989233141521461310706445661872154650506226849834380601037930103794272181488148808151591827620494426576270618327515016747880216305007198420522031956549592078803015156005498307113084513582170509247996822178526358852780776638091552037320309021988184935182038523490721484346867569732955675704047908437866304353177639241234474644102817058197915112204815340365562372056128929811286803764256715372355850394604024085059052290116253060276465059193135471619780721823155581310494707208708820552200073011402401258454298134458444568386538243751538634483503780169330631012693789870568786223503662564570838933246273099640849554075728896180978257077803454563007229554137300650860011770508274555370377367145549015360359690449737674041486405417987110639326996160844218857304453077421714565488146567722497880782477652284119567737760450251190738859747020797609493635425556682451863299850404673519991687231533162551694910734926071833291405132876853796751406428760993865510741546493228118215471173365821529696898088795863222847097702969428015450634992964473808069759528302109791084401582472965608062039390033083484304262049523193864549901799921423154804987717559265571039513939244448474942723923394209710101557109467266973359366038911642034445426403536588939492206388311476832304461350487054777308121431687932343175866732714594505194383371296244284994541520815652939607150341687580251167279332736575386775826486053963125050519432174054292506325439501032851587026925722963472393453927513758329388718446425603066215083165918124186116749262517966717159918348801368940380025882796288093385165766244968863531556617105799021114897325347623709157725095575985135401668304828293991542802640360636955924948506513296943173320872110905732512527033165179546536683962073827753247566168353290078835025508445030103777163625166296320806343291951669676676218583445404026252816513129356493945430929033107372094875063508054121728415707529994200973570461010662758438983478374159271360878840663945397973215586471072426101500876663958567291195869151929641042027590392493913886220055421808124987366019309364728669819843060886636778459786223413953422236120484122420394708074545455689794168967323232378744232106390107986268449704405790259177849966091540464172341780671318876231281914554141132505985721878121424019749709041130634169061661482005138858309327219408797304753141720164271724617486786488387412632519480825588775354259846693752130616874460127532175704146239471398705789743125656559539666515063544521598684709145681741855458691435024330044648558070461098721802938192117788282136887615630919708114751519929678057889833455397400459398182608644729740528926376938519407497260978737475740709834927797324477164527271003378646248165571528929183460268015695045132603414568316695809700594724824713921264922465449783715683414627607710143608130282150414148225740461666686317360725721963972519500457378927393960011541382556381693153687021810249806414747783438421065458868325887420928357117198293533959998319537427843307265749273917759656039368613927953655054720555536195251910737689457285010588292228010260595219851619559434288711534650407374741481207883853901647421964472183431495590375136183010111674669279985341493247179698225721236380553525576471594588623330858426689236074722567535134925653009139305503902242836688369205661701263397344270150535003170269746196061890103369972570314455535757529110934515436105721451345023883653465175989851857049303239057326983770977961867887376343207154650506764657665096505146826227586541975822451783616646308378833992495783752419335809333561383032234999922863493132320233279949633061163603456727232426840094748743677496391509716018433420354192577405697046915112599657896015591189379226509765806977650558782148808304526489172982337101969978410275724531202626464401641683127167431115858407108780943482707695487115996239121098096367579703202840988287408345954195322045157082315255374157200420436568713901836637854216955397126532821310161139029296120587743336633047995583298513863373329756246654573327832044773080668234248534915923554986017963667152381323396380716401500823271202322432521078429989612648612573997410397364073868934788441488981402815459067352248930618086572341608551190253610910420771675586133050905341956457841832536699845139840670077066374461235293915718696696551282684200473533624811564525241106122117342664975391584386118012682838617336539338918126752284545779151758471656786839796016818726840607626765159477630184389648502967819255680618305156490605930279185894936370844960017548737593684819169186791623732357972911057216234362997709700864769726794203037642965571614616681392472717584850906942939390638660033426303842141533228197039872506395521383252982728594836831706398058604989433545674725157173012350577773077768789742009133376136923418572492324357715885210669517885462057863681312937419080727695000494007100174199203961694523042563598511983965883907168530546571888337052400833577386110468753766859858644244709150916680750638241597934172528723171262005981355173607987993930713645059295635416443600997752555445267194831424941990362146846017000582981183517662724037450454410511589820685238374799593982667901135447655964122653444519855453100683922718833266733347581197662275313100307191976710265413304594095093232093722249355427162999864577330961001924725576297582316754036763663279955771021202486255705734149257063933712732471508417692778946810233943615309071066100677480491129405417439384314235360175479418519784090636194236502937353830589807817368781555965719413273732808193870615788577139910527310122979696844876735703459512474656611757608211971186623288750790877026237887658804822612661618837429321507101699401261491884598119003400958312587548089342262541659403369318100307558628288012805859591106395183413519048806872237283908437145266315613740384626472666491389668977205230510384352557281508286762384954892823321028392181896598835217156245287162705989766883117065882621365450477120336794220910736313367982999123287232268436775423738507859917268673069520855477268663108919378980326641103507258917324593938822136235263095614918431324191847823425001798605279667121485345841569096977716983586505295438490894562675339607094517259931548495239371691401518533979581774659857927345440089974455282813854524212202772770941322134676751919784199883363845061416341287578115454689121653163314216253242133045258228604290801318971018300650554868870178323977593247019850416117000446302874373300536971604455507027680128672198140615716609974279077439403204092170382518645753721277042817052509047798994803648654756303014023323486105346491568307862124573568388362184929851968749648625953044341185525110798329813407502962194356000117777801403837570690643360008659226689680612868379042342101347039397262507354216505869796658413604262641549273576812380062084994426130617965791982417709181438173511544535085336675729100930222045431002080538176114748795124280936888807607782937602223526130834292866029514141367489811151573799853480599954760075383876870123535092709005071818276187016905922572050395510191621336240047300154512352430350792167190609617673029492308276640032518687006421558035667193458566545254085163009180712529694381997996551960774230360676188582083638505837644541449534921501068446271252618626207574631918725550471748103566760349547667553644809454943633071805686696114980292319780252070170607882391431197388373021722403730823549365915819519135520093038131026673316363850377336053216781009202216330424824385684108704330048068817715280692757984052960386344686845838798871675818782944751211262115478470110722033507339989204866641172051526041567449535626448649361269067196462764969328415902181501995260798842876231238862841639196461276513069753491239775122260092052565199862576851548710260152824122232652677939593511549151365352747552570006055943883882093025328768241307041421754125194966528058458264155341024280278094973684028676108948874933991734715881172546163921094600325463148512089899239170095429724179896867140825557399114874121525365413739357894080747307117356906470755831429372204395615220273892772883501539958760799566299180238116824140925975181793573019438333668485521665152093952472395646443939589966797811229148977755010809702232657693096454687489274491108985048105292864977023877675698899525316984393420593541782644201217484492667472595673386578911624214377067286599075964065266684211652097975254271475635215348923888042686001414638361436300825361253947253599530629520958256318502676380086817010371698655388855462287796912629934731219033054598728469050701456155772987793697970234199193870607491160237192224414225771693894311539019119805524404813502589800840385493387346537882750827102528613029903737057541798746201250580748010202923162551195899877496929468329273173970013663567023014099723217639935636651600113690940503820341097117177730520210481201004150888723103874297875635392113092178557701902220540437421077303346498461727079643104972410751085934707890449902478007013048395234054683577315036635296466577381246193704440132931979231162686771970480548164992899245599296949849780308277910819088566432285640397949562328527616558418213795902706320369092579766323167379048939319600777729780483539371984792931383141844534045844454263901086698641769168407136518182767817038895949059861026048754132702147201075492317599307218864832392703157749216337630405136092489938617673355244811270080292721179007093256089992615157635813422431369413131916150355595224700450286651935980112418102640315795912879374756415835984831050503413959834065537153209461656501987931665231738177444591075467770342784249928572027196665874724687844323900250921183297872130268756998920057283901456402712599295700460726472462384717816851286420462447849032379917765048475644289594295901862860288956305563108409898307542288796304747537220591098241994893148577713552445261129499268286979523793535573154037152937870943558113794966646945186322079507834385308493825251467605993461089342513984929941079895425292666335734532527656588975961054731666931694187870853392355694789926543930064839034427480771043920403788825573318512657665120185648413630632205089490494113575001767419526584011081399151276761109022833157288446477553802402220580110919676109415935958584368634825042425478447101563613064858501894978060783421319550589527702303847381357273004638032194381191292528365185498545970759324456039441238609450912398484711424742493410831855596714571780830695369878131360877237814506859522213756812534844556921907168642283345210024677383061572833412548312993382400312636566861886396506911000451494492873566813742346189668885175903923753235411834411114448502827827228205793418089631663440559343089772387566679123094395151268922991753310991318371305700402178471712386326540209967960247459133852591800899294620725473494384999362671430900160873558950394357617166664017452855650663063571299328497052006303751971692317889085063507484151930197381553927088220902208479669039575318866788373874654921192736919876206860902126542222220469528674441895605177586868262721430969441030987126603168373889608570963522905111654980585317793674135914900940705794074695761131008397979297405506008288587800302258348155249189561378884887265054214835796517335114905036441976079514135077077367414797572406129165834429687920447515245618163541881530478703783836412305988882136607718833221833141410763738564862185335766449016232574516488395336161849463805168938040207715971188837833431777151628811982923517749257678056215619111622152264505730428849721262546922139685808622498159650132042569564994115390365883732784590021850681831814058961818279216180631562019081768454529458084019073224009569676593959792626161268045353884768493744273217932451037969355694351036887412157378789677874260996440415503460103504621406162518883690138793658666668784727938973229080309761735177501525459707523527869351181645574024833800267935218169714355940597386977036986099674060246200829705953438501967809653247970196753355122114854231559766348381492490658066644459996130452486680308391823311664472441580137977015492656838514941875049220333540649737301733357417876526597125927406429581745175358432176490541994709183359297273520615283047048724092427558437075501186982699424649584907717523383402687033355133632649198842857139642000891106377655158603169777288589211872938860667263795636599508843795864642937176154707253638134423982072313187871107200478089901807661561647791513527287662283378617102274715893752516971465438773498750573675953328251266024963226753546882173568471577865444821074657876892704646177719377514703507447600710020771136235180941068451472281010285808662931705833674943982906279596634628373176963876266366860685532309521026677089821768168776698801805308225675555497368992145059108550666402059526106796136150619399222405054797705754890410908784541919139905564704763978017555778143451853682077009619706837290650599729573617986480427637422401700669370952123320669983120973073720002063496524299341344333060587660737436973442357788732543194713395017723259462109504258522980993802965218826799698847950176992715170809977751680561940465993210993294121713806327363611006216277852068675284888244438807458301035702818428232524531631713505851048293820777288554832442352406452905193624414200901154744650467992474032832117500809228085377303302427655635558366886370661685948168899842480284443787290973460370188739925705855950736828106755777587830469733543735166656050432682871246522155696567738303068718286381133921146956986770221822576641410968781754797330215038528130585554430267769480108516185515236056213383865260897953484417154168592138999814441133617645408856503333588464925136013655398819605438405597156633411180357690320116366800208069556580093495519740185900237789888602716969445304883263749751039407133945930620596467933152601864138086363711222323600491144940555676956944142239374345969702319142081898586587182743885398609807102363083308980496188486519505390395542406106422543831448648798944188668887795527131643862190217070088952463080326712394563553986811005954893848021483859758124501243562800970717505937169364386860315445350884072063773660948393516543685585015954519637276427840003916855026781262320366158618456487170248825051175534808892896855430609834952771406690122487158276990361532408054089832457335528757699668164217013666748248653888173406831599374704261093522453467494694238007757711736558136602791370547610280023305114421722798440753882188534961833558599452322998397560591836489078169811126661365732944974114541323265396212428642832877742315750319854264770805418359216202413179806998084383463018038386464714002770948178168529875219693843876213885071459014778842404545228409977302105457724416769141575205897631787681814061750587898273627279810993695836321848781544787604274656674948983904999460030972215226639775942818235000686932324553509966386018501992769612314479728833140209462740667060990380601632573128181414278475894094128226909022965711967948922178429726237530455995309956951795851454296136175537383787174413177902629163575128683318782430004758604750299395835479716170830013124129692150023626957246010007722402333162724498423422117076945068551046910704543249359823177371997739588761075461730096680366690269227045960093566887140101866764179700046135759961927974485234743358367402370798912590981878576783556844693027978555498177250975621603311508509170429789769517062334214582109162726884409253338158142912959279999958221358282007772567643059066470164170097990967559369966896141150614559844376155897363436443168604569600308731862531820646656288771460267488224393924622242269774746894080787712765501372587386182882368442010039392471027217224481441035497065096125601450466284187551995042464406185003770976906087615711325863680229574636637111429467597820548237678518462087834955626740380849798906386178350233515886019650126537064651883722475912170952471487747192295066859213847651544752606062016155723180784987857902041306520613880711937514918215318654800772264901048862689271813039974767946835367170507400469853414571587525895520088670990170693139755079910837608071864076761471954539706771176450031050883556814386672531364041051465024764529082624676929362682302549237727145830880413688078643402155121996619780719494189243930217842067524458857022972991526752889766287489735451649198093927432001460967606530232962423371032191631464578986228949470181606185042695896589295517744981803890385475667357556023168465185266702056343241358873059326694687121929019280895811886456328187361179158596724845292948121999323055260756960308780370605566903830125160308069502078462646060581598423631161363875839844509974070538287508543998632405055390049397124752431087612327672231597553373058635357206361626173339984426463839040315476862715103626881775163076033323254801131993559191984178431507051787717244833974513976690864638556570342850972807511019379000424319455021381128947774437370330996338106766813103346900640788701420885286181143403890548020073038514282842029202949097408788158079742802989278216374570874698170064549904551433792729078666854595870949822967991630393056880786103407841565591497581523743820638856773547921901217163247505121745321661942334154352516979275492033152595944784703813441312200535122080120133759519897442146946862590328088371284211589040927289568585192029054823889996722442049741419674095775444374221499461876224831847962938778872063037085274791709440813331171916820522515254405226134240940136733734621082137383768838939639545529251659523949391071387244175391003862167018212435946040123527005248598405975470905579554326273734720796941371849617065342061459421013535004720212327640755722885094804414350180314621156680804644119102051774394681254101548294301556672570131900986633406420139637041381050625768907825889925265353231503394647079140605432976219975620118489416923467099442428384215449394576621389247453779795677094220658635234346819360231998947816794479964775901171495480434483689336204976692467292480005415973007490285286853947899558614890164819114489853332635289281300392903837037542761551643459803254707354305316070135327899218753251812708130115695962976895904191931820465683130881668466661653901147669502582655598963227580528740991988262695142569545243545103726866798023291963720945454202135126261341504171258362108061302410480369825938101478679758782224312551235362686952462604626674050066009833510128791470617527133723084835290246879824937328742175628289622121972251926365959307018195448111532102126614463826153077336528265725113055774465887958470659267477492181670328025283995031121596628686484156161144363523777358688874933319040901896996890980736239714841387275618552518619691180848450400650571073739042116432797704779222920684538495755199029943217817176340323145957830645928194112706753461466010789108602292021529469900372730677842252956960715963356429176784596089430811971767353287676990065248482194011932647941403449483167834586944810265219608425920330231902839216136584595490692799527467152219926788632965837274636030908817549325155614084853980413955592896108749477523425244550999245132914503176326722074626086453222301555251960049905538659987670042008526134956149255035119913377086637510640258422866002084670442857345560992196297588645864807126969789170234698467959917673775100294842837066270833343451875118894589314183837535099231552122530589436493376901209870195197055529069814836479453644631096194610799500257901044109462903636019143196203286801245772873484418400837832867686658699190056264280685917998901277514745465344349581795303680732382123214287046943995931207761032637924253121591445029189054442499893527730659965232215803427832056483249503239153445286127430029353965606713237906070571289492732777905912302764426652529858976662197198563524925344269404479295738517056982332358154076533332303971611744327079088523281838479445056504190123158451915219626139150605571169540979918763086433670909726634606047221922282277296401732976307243382405713633241489905774424346415146300992846432623742837834691232111278073885912827171662641360450132153488099046064036545313640949333145731720629326110498861452304585446198947800490241059413215671075850599253277322930151962253681769587382740629489206704820073709130542874404818597448997390441257142171854287009868054452152340951049630036912912255023100393597193719976368844801219973215056321661009384743644679651774055539156003874878913124909290746738684563574099826461014467681023435388929897663040305660044179732892267977632797301471280078277788533769734456629376792469650782315072718430183049987885578376620337749976443711776616832840158427336166826637307381150140952577699139084719567515015304676499354437907945281229586685211546561834217927242967060432848874676036608010914171645938226157005491330887888741552743334830744297167619554720723100971746670971010273072944491738558750576533449149575741550880408121144408415067141357465008877477270234613560612633104165403427111572836840776195327774454971374132927961117919686212986452519995401474298877382088967281421857023125085154386316427222032711025016136924760104068663956591295535097746383863352287103580678823114883995907600088757830687775169376378707909826378822793523304041044374401873245394354052599724439084724781592784723217287824605897404328244621371020267999435345348217228989554829453514849030705971024999878378665514463183341324710547385501972906565986637097764783875292618751382877551144286676025440385901243733556343801933720357512295808153859292285140608748531133623517280209231517297176895219918054539562994887945337647775282240413283459282682481335974673824988997749248964425350621471882558628755319710084546460023981101880860708939886772987724894670395633327989984249027040939762744031481465226872126668511191173945689691278236646087057930047830170331089631198172549701867815784858563901631158340335003944809392051161969575712580192622728579141410471762758018479030838239094271016269520778336323914225570318435332340303361991311296683199982717906228178588023680290348234960952389629008293560872094825398730629670656721041693714112614156635094251630549231558037922109347583961834744510862825488362704773657513416527456781423503525076578475946041254410606405840573262801342626923178637662269304169289010568648457648677570306856990837603854190291016589139960762127317400851018017641258370356406794910466879109146464112559595502026932575887055690709632978845737960910195598125700645146435870977590299756049117235018129955949549862476462379925214254860210197566384423188983459690189178387683866178010187343592829612750489908186350962610055935254576039073497338477211939889671214753409590056843366949509565875149661830949703285192136915909677074480158096265666951678500798137569919344006237974206843437085362217375984843872410475511013257357890042258551590958244790194844538429728906921917599914058628595103249475250065121530611467425961194803569988903665126379066720084131608781140580001534968069024656408578683957608384915996100226673310960471890301184996602594457208059443815930255035536332514990578737108213410478742272982275993247695932106177313947036590620357877704989643988251766182536350965036646374336399275735822933704331858439032130913156321472686296289732534234550383186957407418038264940669693809352231086298937278865836359203013986698070722069794006601623725076589531024945731695722805187356110289594258756006986095873609249225337963254231255906136569399583093263214870863778693835254609005809955935899346189562328002837138459214421943063925412267476251337975667050209647270799593928847845634616337461885341708328206805003635030925260533326699115861818481788539770055283181185911010590131316075088522546920248527024796949179829928663262718259300625044968859758595034414220123854091659672776112508420030672569317145273484760291083648879796472042859346877143119932387804234565400204502337647992492423715691994464893787572707819160060777681333370027140526558480935604857824865762083567088019738408412903860003920737349874234029903108173725546424586101713055987224747278728404985676032095287237267493932801231269847522163844453736731580774151939765213870755450109632241348747624113358435801987873894238878382506612721403275600151595623716150931776085343538248538561098142482079092448704786484395702979406516263470107223145179759875904815418250719155160551875067253549143672705029339865661838227853161010109336708709474068348156171155673724975722937369844426925455945288693199307287090192995367481179904250546290490732693902030913547379430972884192369063510189355751163257646102057518169661856888799947808537809767075051193218117690704946930173277563206446413337294303395808790857943301824004098323010073099056588457617529612737690972097407071786799125147011629530763448945629881045151844861261747605564738979655052912874086367788778491266757738266303001005901991935998084262819899803016771704765782203099756994569456814518799974922310525730004798655498683628585068033334894254897870966716545723133169094294610708625143536156901447964924814650418233147023380442639432577809147488954916092964152893619116137521816414879198171030410745698105165117246899347428081906788734079226908812607909481153076922335230646776666799367096522016048755513336989821365338317846310629556834558472350595476995045581675487773164014934683236780612004749469568984119111170874368954513652641309833120345956797076235566422650508399647693023713897687928393461477436913992534519242113961921813505062157853754119356161197395208331984461320649320917356697548956064305749215770585920153171979272665363901001190696832732967054314249709551263492828822859962421031847531834394709849732291991472854017755490219977739265848891847758964298036796141932650920734106158284413468409830071470319531064806075557783230596015642451621207907690231725146279159103820356232382221237853825110801392025755060278762426669271321666498766116095553982716319836232050576715492067015831982923884376718264620636375702057607433184928039939691421918650164217400120825781289776111720667277436218244409476455729071686139294389966630365555407173974126659619780471519147008748660871882230200606409044401641720169790016150844533994944598244724331454121856911216411511571838806142465943044444918673044245664915061370945644791473207837702568725202104110934145541190372307412869048618429524373730414217883502078285281666129919061207522056584109429755229382116565657784821296408911028721261582555266369441804743020023919299292175228258850036705565590102260718860475287806581725834654166898975179892328680579250695142972971728066641023947486148637125187737781275388349234137306321318959439733896789852009807231307136594142630814841610514709847612495686416213722096414438862188977831920826546817632497545992932136147542299181162068479915760487411735647664351759474446562676045903176859832141318140976304136069524587032700122335249721375104024245175508103297964668070136844346274631790880387971300331010171247203575732289148388614897889635610863089901478794311727604453193259025185263608400935470806600563387445260024844383777980171074299790377699130265611294818758565929043486489842018300622381949657518515946869369240889832917399891519631292226050066221340398182927776275776793441720665229860013748883442814883512800788360844114873248183955537601627403733150505673296793020384330710311435924888295571674753297681908824997496009212395963694028532540690561270675259780867395216174623157651538959313647364175857289491109972557368049849388030703237543177005960366468496929171745147845309963191922810568279537082735450605237309051205399246940948860819277425485873514402608610719288347279683690981739291352562956910649270468388330882632025804895565127857338938036001501771770918201707980886931987659194990550348445090092146432980608089964632209711072516585861552045771871337312690753934732605093814968799992064550662655765578062378088222102313434692375454564907123736191261856809300192450527073124728351431089724180203786004749528067364735092403625317980654942645979594014341706515269469943236499744544824207879646111100299634617852137591314180266867656612400741041645350348284301628218919871478393252737765955430864801898130187294536277776742085449157857767221529127237970127195746608373768460091716326313335968751284550716587886275430808952765136460402231037248502405269239906632485529085631158117653600164137261148135105991480238517735422687780449452012136377097617368200761110418240913907478086097681367722950576453245792123132822538669371079344628676865923784629774172289029104966673787196579641415516226819764302515264163824344679936174051411843182821085045671988952112469514323911425636949644339871126020406781857934933549230772697715074303755578763860388464389392502369799597598190079706247970967317756473803561133440400758101611373013828699469645479249541278578339893099169950317050750927382464822877586850059803420785355591206014224872860759693420587862789775042329882662241268966675980559052261540948824328874215791179887412099217495517366548054912964979023900747888423516529908895473370607266295610360184970803431298943646509971905402889019754238582418963529811029327829673108156518425657273392884226895509946975102948976197138815397119946174339795603446356309571573028582493010127991045555657831886497873805005279399757903495259240087161342709417766201239663329459682159606545929070060973148242298821253179425415596667522971743278575372774986351290701175449083970734386639162584938509161023505142497548945065378713087213087612724649234781896062843568788443287300697357032302860319332489834280010705642226284205798115438888810732529606885432052776558943025653277137854574697954413032262849598851703429262181496251128275301768598558163865031313625510845088707774576840348966423350878010877509783927721683947196888007171774716722123951812787732750450595336681037688926673337546158766195200527227745397653802987884860358227346872033311770651401759867297564902979774524901065556874213288393794825591233430434092179370709290146093508443776283657515446943988857025034044048327802951026799539495924371910218611018874285925516866165445390070896442753297939631910692941600758361264816158597771037655571892228445345228649126729354787944259223383942568417335629207960270857486426060772368649469600900609718834112740626962832655865080432917950076833681795920011596889648898402509865936491110464737809506174166896772344655043395718285592175548446959184991169442527124194164509103757494749660362006824216199678955713303395012960870364515278179004360916892362090183661002048038540249042277358478364563137852705015274681769674842263214886005876753168339235662981865513902386028234269717652317856989851631125191724566391038786804463309512522937556760050789002892553942387326073322962748327034673853690029226478289406699899776101323814244592586764023589484124392256192759547631635569260928865475480983729233044926730328408064838789019720240175137904461941169344763030619592458560676091528764783780393549868779950806979058554774502752376866115679928848237563433473520204449980017876449451626063237129102612481205277665683248398177455369596153620696566057921366357989880103768093279907161143622685235078942123982157851215907655621528897417068868655267493599455954150982711327434283515172168103919385972622349830789126985673089569057301704138185773151566519445551192361534395770500257884555495898652517946715930379611224153416068939844523833168727059993889689008969803693145295748011655565079110370249941270824251545473743660792827924026098429847686898118641003802552990839510131853132411861870253454485161934857474697325961618920629214204408388479664003674804890308330269882851203172572511265328274436659748991335498527903888403775646075099538937610304979521438783163335045936543548833030884825854119919995597989534824870945507908473920042332750404846535245942852370510405421722237683578108593982986715009937677310468031158280821783880322951219187647176390800979547032894520887878958187462494218738530829450342465160506202701587672247264072813775567072836036936621434661719337574183870988719872216006929242364023518813455241681947074623162079635702780057682020933612360023502438521992176936693564346221349447397385127898893386160417296211134125860917928647514088796174854224648594734021691341294289461066502214513527498998155518555442385967168307947483512607674499815854770997483014285395402449854740277666618800198609151036110049548024420802715493626316225776221088889519394954915544577379401938832857903858262268413877647398552613237581623474879051232783945021934990936991151785209938811723412207208719503296086654440032086822460711353685216088398453565798910652025113344431764631633131496524068250335148884938324410729815664886926571010397543674918828160924309002873784280920609215931611225281998251467329479243206168288173473108447622061132014690876617946868038637674699849325102129837178458824770612430612208855777172630569879253715216954497754612763575683262798356690136140307548345176906963189998510467134500127316531911512223298289232851886428237252985193086116362230795792052947930783396308299449932000663221465157969937710693979170186799141696705067587816876901481594976736352343614580521471135075261809264984441063236498716249046043693658422197026280894342530798311231306597782572736411732262047054448843903978637995788065067605502397425450551251790439188365937609098761748585181758013627823601424723821779151638520968451494379592454467285086641077700171031472050851732338815686404993409333684163923990665049199016208809666748535183653888492683571913667302405699579286218114245620199007692089379900232375212347477719678088071050588020470020562700224824774875556888567170543396697568746845788569141051813401078866930906535406387783163275007591389325927299293287872189356929781569495320878220879061023971486525234250923492925225550849509792259901562826741693299991233757480525159968667464423784285971913283743503061216989240807591783782992363092808636128539748157322453815135167928250867196127811343654180414736776326648398241329304592313470870548701411628677699044683159638762985882829827983676420484842953473663567828750930734529610258847309852588964447238614144352923301985324697320036386479682617800978534295630629937202179428642694599765918329656726277372357657452640143019095299241235758386588690751738582256896178185026903281326963058951524155378328588274407282041551894161254667073648214747107009796347598973291202412520785120646470237017701521741985880997987824472083763469862146037040456875573366897572955573490948479816921411465452524040785073782970481893377803748167985351020167711996812661965160834533258813956264954134122185417222621694999162988346646211156223109398853819549180662514981439142362043439305049691245894642856486351845226281564917504576174011779959195993276423727845910170699391214373853912963176844608945331940732329717014651242399472624231922532232342644002728211531396596737710057957919206283811788016025278698901892152123916265674440707710168359686386322200716976179147343983131829950962124685162720603325697159213143072035652396275984703574151675713866252602105367955124290108938449679342739420656117412550919607894406075344684605445515446851925256287725858134989473202407546117479077150437875403202345823918654017294353629945598322544598201921039087014262579292905856103865497402877553348353219945900299744272154260706901536406304907197755001676903628642141994370000157106749531532111200474451155913955594309503562175740599149465291840707342503032498278117209113257478493442430560639570290664609260100720550506846109548052272436085051203155486661461258996160696376549565585637987211980359657401479993540359950849233068556779662453467888101517884267288407798254670560595000883053657278344354024184912869032183744616047449283973408683290158436987818877462910934994285138241616730805232839783230976581839354891552999708399923408766192387496076635784779556597304306158755511562141364180016371635853666722292186370349528057109493153929959788491443273452877475782889846963348742010835672427161943636874336244231528248194901251579424897313833068346645502396135226076687274880783042539857937388861476836855809764426126393386884633446172777058009284651625909723062063156139692405265144096261927760068524549280077171035552186231141003787409179132905428837603548472401002897990885477119562075582344727394812720918678489908961637399092026241791072656682232759536472821054048259830012725929552195868810662244897209857451464549414810068502280759366345538874210867104407306388931250451431435985513957299421755604022079778419812526823343801966065428923355810575367362960770379346919640639623315880036169032532809384666090533569977685142307386550057812050023471915566278172913063838585905349174702345900918011838338913335944659555617887657249253070120609139379099881653143885889872166889124888101967895209151642240223291871702250025470052842037059034408556629684501785980401937391938575354968769142201124497670375730494230476157941276169939995520731594012522478392301574635634444146736451876888664396061227243710494791707043062136270665325029040730741229717867493758403154849570990320361026742637657612971605889629977968357444759512667225712005827710125202688723662543374262421441432648911413626727553385531504972224752616310288731367445362877136931409272264963558224081495285495156347900174991212163105136165360551508913227550938360650153583581363514970479860353955646102421613850421875865942589025016792667081702164149806078703877699840607671078058410401277352948514649541562808616064063881288971470551731314147587067765133795507085664497495304180973633466768067210849843353995414604847582492928857271680447138686997026491863931318129340014678267834717010276880517722350547971829891922580841881032514642189391412631179902464980286347316819628342932659173645729189555366395559146462565383683523444562193343117100700266348952036351298509912738571131414157343769701032495211210752898030968055695445534252649550838047880805951094209240771471529823894292421743917182659944008471066578435052502200323865820442163966578669087154132242644808890616956772796047022939186736947522397995528147793865166214625224489910855699770449895465746102014231449225009847972667854162229943004844644633201072695704413083688641605706223390199877047877804013268190763072704492660178051924250263210975412535553703102757928822575439153582345831508380700265766369002979166984709960621579609035508128819151373824605166534215877174411719221432491010863826371479003102345393505197982022405602229751184271656247587200786437704926168429463187003079676002098887885454412312486673304353993733777191811181601960230862293019848892523570579058041840508988375125829542928682403873557968088054982419590242557779078996320499058685928695480565987365081626845416324379056319262756124983506574261287016776275911159594391273583607709677270444320997561666401609672886961045592620758737786551683885718764267321533934490754922420337797691140250373633910585831596298380767164281896171492713418698784159447063764437817299128395083818768057861495729335628947520646765379437189623062709293179164059931304692561485327802212406714631435468989904873907726368879453756668606472993338499464940362384520937466942886378420071377870193321429819089363537336379699842145020684400375669004244859643027757849946573169471731613907092625403540563058794464044521209088348066395761856844141031701410679690673200425849202594110989899244766639196963741812012746711623901303712760713070411755556885167086233091392016093450332606883585163378765704238243323493499462209435455463383154144933661417499443742177022258598457838339983963161883507603765787179048061363483547638208579529568362983076846483560928679615378460973368614494936310519426638126700379098553393709923084466398345664605663721537791863629776914296185957514028805469295717218144859094761959629047218343193240767159565201175027592786784253595054357638003498810861302553950074413023482727990265350026226744471363724893223602673749822832784459162276459585159095695383465589851891818851236802963690239357984677232069265514109001154209605469843048042529565193676441525619743485613109790664489293213534865380964378507305940526051453237660284919807966912578517553833070844820188929600563779991560726710307340876052503307638364318004127885917978712795061463183199995788380575663621569738963967923302486085715206432613201315291673946638677204984301566322265090109434331748917270079474027598406411031078594656489312548006264945565020433245640093805563931963790245639868214353726250958700910499390700593641944414651729681968802765345158845447116332035109810908981816814356697573228332983559396686647930886772012048080729581427716435678176233491444120721321526531265287877996646106314221866105620747366359332043568728738721559646948667872738087170788055101468298545050977987750435552442782018414466350917250523619328945618110898574659674656756247031838864130360814925705164096613108950098827786512122946707201401473879120603883389715280951273038274750325173129907965145171704828114299630283094829544006143226934226133212887805470338317112131451041425089230930469171369871034904639261810581346280766994077071953801444522021197062742548848346308382706057218618801447246409464488113844863654135296790763104475838239542827802220368816272367199900101726946134201031273537452467315345143436453019133601689673259158906472078813053161822966989009907418304616915475307925092651350863994937970574335826915529438940150846360941369572613832757554235938816351951165548501686950054056387763967900008104422693839981851176730174316702066034492688999039443109423795124895154152820780004532839936933821149581178758592947671326124649235614330539102321379720117348822156193030273742106364561846590739091586723413590738674675623053076210574863466065361760325965874457407262276127653955275930230561677890552857130861745347691909886085936066319598216828350468523206639834806703951478517904369212856598728000675245559636265436447180767092490529476692774967879165613809587832966669712018978830018826631334912464326994965287731607501208866515710884269380440457235617035010408265473344554693488149442919176611189015197885608420195400822452603948472141801762659370179265729439758034778571134965964327370414174816486862117088196637206973609371998286529089949608281146884595878173411975986425490943677179228640753898031881362272989678237025765411151938660889314339978284103082994472011724064801103471346572298498952203761463912380802362971007956537429234774778310722620341021586426558140361232639580885332075861266059891114422143902987191970716711629741905310597599212361783467015379177359687675671149219848667630020417437351725328048450702324100245199231328610265608344254728815130355626102563546377471719539182888703324924470277965406113459354524104789075560321528873829698810515797445124778222483712063330030766185031629182728022583206704248361353620666504082437972560747999370440574979723460276538630322001423981107020039250488515156818403884555648540274759249819293208247673771263081140490218953516527028785998134905901058679658546731910175887702278702742690428948023845309700384279084511113821104335459924787429493337395062413929664024887352605280715090683327816559213664967308867511560778347966631789828987630061355846909264477055227985833721392029720909321655220004699204257112336962334211846946435234131070344720831110939712053510476773902958353332266859012879024369309580153535057936937762690163153335390415630896045253702906186877040128996600722988830238831565114800841430587450619815710569914702923752417056628842192512150306207379345737776452118674376888184145113123964952646415915228667523583875918062336002304329682586876659607525670644085251337303912161488723280769844431504053939837948221608020707253997339582251974047161130662245180790522511318707067679377151323045905523250398450541403382482509580752809335641822461700121795409601330456431984456490701486668480642807706439509032322359849192925869950254176433141708929582246748768936857991436269283230607805506591055044633223221308562153131188579472637490838093843548158861385785386381644107594515548263435561402092717387919352382801212509930656798219295689885966594126520712253029128648738081479283026485794954026279358240415439378577007150138262169292060427107023123763746881532395374066423630231802641445243469310099021619193881306935833266170082942745750522665236747389749539705483274379059339539252600463169396913242580590074045009243374814803552959767319744074560617744480878862976810063121973107084729400289564363787402597417015755338692960351524918061171439871683385711058070118332888772748490763810071903702127844046847383971801000798650495844164920108648022377598072473212551247361864185651197748156492936000448119951832068210471229235032162449121042326413293480037900376114216235989760235418813036001956701871593454026601289886038552430658575368304813671166239109473795233010219259513233572658349520129518476733959066927987641065409838621847593798694004369040648478107129366864961155802425119816354193991731389752358371030529601530918512606649460329765874047379623777879631445606034673910519108535697915270465772270196839138254669671358360690872768717915203210602748484936408117685353063012269307562171829642223385438193677007532546764935034676562766943229788026179413257174773460437132958514171120580967865321641034650652674687714236951307842774452642088235441412384712177890371526221857726021928157099268881636593466650274076525389618032734789083305330875058659726287877000581698406815485301748529940307758256912781070325792506568416386508207148391198590864775162536365597611479123298713337942524831930550716462643742787973360784033020769036399100935661492099330664832071808501364388548378962486331448637916568246399692051871394349651729375130805654947190720584406453108965215861319292570157151458960119517300831809414915484687426016878364939214931948696912683265501872640386642941129498714510175639925012957655602553733176899237443413503414383454923503114593184603337908991175167326339160770310542210402612347110659823604976816567916103534394608534166814471430217239902150356964451815527758211468735659978724525807183497319001642408960297807474357986172870886911996765826237458242313076991778333005004787773787123559542096799900553939399329873506565304126159296511128239739164854612076602916374593300269464730983348141395092364058714057144610392599729886331514100018030773985257932805781636099399520034172599394231479653696096085611187404864345383506191283224724882120825320877817371822532024125417360785307417588524921630584962755579154865380843777235818134318958094365468075534047885345827579392320182181783577286174182592213418389840515248546699119789179359999898159956379731277501258915411648980763987067929892376061027598642085531914000320532266504577128796012345191626205959141786927714535072103240417348452590571307354106732106360845127204809614968091825175775960565583645663031536343131936866863832040908316927529533792234349870576382298725451228335114568824195855899999255703551052943641434454536164405900046104343676995705956648903450245165250885610792499744695116853815437747347238035190344202124888502039438187187638617872076935665198324422986787376588049120216398613384029479620228444797580343589837688906521669944902740272857830180155478164877018718634717577471460291470449535974798482123679556082720845862071670468859645900702142326394154774549960814737273404060138074190746628630133559657736194272436419296095967579658124976033442881450641201092615535131462904911920790606072009210704189445957823596010492382282395743479547556011767860125444748006331074048215960293678453070477824953528822478542655189287567809073327213893809892671227462665676411900068486027226965549120633653122431992076541519797089829203177412454938656026977885693821803017863524960094122199370326713463369458703704426690831344612378046491499170441340611892046215236478258088870961519236055789231685561654070117002226369518716415879414046634808472323550510168717472328138868086176827446636937839080494958907440568307186854786953137225729079555735128476785929045606549821612179495440934964186631859043769930904151763713216078100917714085357267471589951354976731115272305895740858031336368763092668313485607509737978996713401818329752770247376968155609166876819447901987251956746019544521204736410624085459762929703452262903106334611789898666489082530985140543026289839767765554347595186012822419458134297226509700567507513098791947467913151478647033341112930926358509615730909743996450106167310394124302026983495949002273295403868351379055500063095531269918574109076853222252446918263607501870288387042544344215770896937882260190831711278169419486457692524327042590585763980238712571731292260590423217507645133133309465002515083453702764935731949750249601758609529688004077779228219495809855751901461073579044326390555651132112391916909068246061115376732924812564114605925176736556597452561944555055485900802798609342055344201385215228282949611227097253026933564230158562645073701871666925911732994631492440961143483173831702413801348732652143798827162526752938675069324375688842268745169156146875181195038495175836367854020066395618835145618617592968040101336665050833574640080215867080262181356542160742294711359043923859926324778906009711443004302121904301968487392916038104880896606746768061368779710422196488259737817078510505898614636778220158280826476821107475539859106872370258935521208141698321862900347067102097119203782543778154432809276352876188820340749358023408399123442798346751701877952819160164689188196621001868139086119356519169530387287766326041861881214145127759409515608199904844851996457709458979050433241569687573849917179617895112334030717688202490207339866994511566231434006372492629202768766936808537957447125768375006173342907053435183479744331046656149619387786450294271577791110205716909598319740709557466719940978709985452292099864015889084864671277621686067032616084002090622719264492176294012905710513957842203373528430075185098101484627577119220883813840528442724117157568618150179651550864633656930219651247276645783957897557345485277390789365734203594663739707813319244942989577649434818518102511414264492071284379923180629384484725736567354236073337867730940391577917717938033634602238113035122315031077860141736061932142225598364013987569784211358147619805737105710463739882124415131548253046349705361878990116450814777890172375806767716225888174933976088645645908360706158831779232644736051786796656427763077603514204762879510962188316644509430846551641601461281287868146562269891848676085382667329616002397151782538157319049830615477629910514641972277459233105012613115454879539259723147679036666488200778866892959844414240846769179702394107737796789634364704473936672440836080823942843854105276537576864014728513133854748119515890890453165925027581275307523299182321146444472654643897601791969143197611563981514651879109114243622264761720062138314275998102309047939526994089922316200527117941969563359874495045113521415271624533489406558629337225632419132430330224322623794788672490101527646432249160149554480935760412270190985434241404425203357585569990966991630477534689781564135279297036044952411745482623325991721289571287574441403042327121521092568622087458919425316859414811360657975116776735537488247929225013896293410034564026757773158386023056824223126409981610749348526995207117425307269322279531722552199654884184121128189570787416688717500968199136587192170250050941788358169513831292862326135336778769360920716364308664235484228357889556745309785472553699761888331723092101931576811777937135820451286339185674780044705436235971876292209857501002877862899925451144479846270275665498300087003477583954926796642137479514806577430849893633600866180552557470206948190423076486887263301565074657735317281364308265287458373133408298653718688161267782540496944902854164253055081735510777324425570024398889754727352259277794245644708600992524881899954037911159261093951611600737829891508294632081728952303553349824118561013118690183935959611305787259558272744875597466192835161286593578653375881292839240515724194918465220717779586128573192067697064650839173821561734551717452634464648790409949415247081786724658391832683033090641548142868765085471812606783225983545151381511118494305689830268986911165411361456025155743857874914590994563527101374643335755613160559285868846996283529118050587769309899904192471024325435598111491227615145155001192246183737443967559692023553985910774452378411617940995100613887314506371941895930740332201002682258529552443623731459667919925080685636915997608129702522622321219914784068085051536319013536974817551925700086853631070620169251337125001414109594266472151301466732551321809820717550571532351518089432325670057188461836201069299698729163613682038693472255726157712918615615698928236209993790944821570909006503714262879184837219570129144648312217157409491449466094415913522540331976756485279300228859169733168502647153353121479556979673542270251043784870266900493916024717215042145447916423934775720453568786731568749421093195055746485276334285455070108360417556634574119051085186545302963889896983452947580120527290556359446417702073936980058108613112234249274408200032626238746725122414389841792499843822364207172878512669770525633630583815572824132997138238480319075537046073464995711019019023607094976423685299188282855367538758487492638708584898690442130177757366573509803963470398554931931285800122375817501342921021605224758635317893676432271258345523632348806812278388405437064533623669282716131980812424473585218607364002649638766851320904932968048499101739839654687106086736368452845650774226810771729251741824222722481597979450286730980593132164867759826489454629078662965642754437363769158495254027954788074598772948476731457349406423703139947011070737958516413726698503647049710061724839373479017385304727041575912993102683365058763939738864724055066125746074685973787228349788057261607983139489943531735946297119830990357967926270933818727807304159791044178436024624545441101961438690487115740899660894507096134013024459795166268966129227796323994555303497286407001395125004208814242317318658127701058013374132622323466877768785396571209206267319653736767648618574493340871167406055838123703346401289686732181499789301194122765545183116751339307299594841714875193199532478717524057792420409207801022197473366718207802991796146754223805861316666246084640279548337389473832934191779748904202301702245289011262552190883089951216588626269836431178374574430849393722000488050870079549547897720524007481253872996008057650197127913098148817952555578341402512100046996803256444103253418872415378777899721840089622431689110426639361387672405935561119642904631109768003688229611671802028590944403018863317677057636563793244580073735266364306742317488528499439566181929443784337382589969248585500361130077047666620111733166913864795749705602689239109977804740286333021686382421091263802953469943192238576080381960153825640051802254180654657495484286195606043380438921071631341608728425704643555807938764138775947975572593912727189837116796961514737160965200339089247273554538257666561165570623626983860016845463202751598836202846384065452495638831599556907651403256074765140254877955076940651489866716664339638316590782875507255502307993409954306596663426594841836359582283825919951723761927044707610530485246014476071414560477453783679662981790574379285590114536026128808955619312798449804656296505263907815577630498956104127502659241473658260232735490516985151024030186439801063069593293729895977854446931511211899260831035161614676122060032794044639646557867833240378027042525668987718437032245075634861128198775554533776321014478305272708302932992623474562161449080448702443277776926077487290978029862386797046018743647023245546045054904443885333264332765375283290560948183626666506325562942211026819307148781532205660247998088194608803751123816534301007185922946193924145417863136922119663472090499883958447674147277727896018280145159581982031211022645324340716735954627910773664780012439843419587691583270016531523370509930758188557525842911354089620837064500897194287515381903376428517031653766504228872496149677644166595791904428652518801699826483085167454588031039562894961693307624808150951956212273776258789818815517235918851735121899437107245113928402983619954538674417435050503401396894556348647208395603898460738116791491744527176951680140813073049682298993033829045243276628485988102241425115867610930913938647830139212214847171703596788445384373069673364505590742434080199975541225338201061570450554657189223422360983441535717277246035275478257885545886810634443937861558511853346172940724631096334775101929751947290599311826544584667393121762445963880023853903036492217078942535653682500311991178868848303290237292137259466799046180717177803720395526567214542634908647927933463077919354097704042842580282027341735189574396188652778736807782302897554268120213369994717647109415428794391992540793493260195031488571131101259025915441866644359297878347137459442299544604266255556645421832486606648647612579369935697148630392941312776005431529673421041695530151904995709547936626100386867370477353901275662588067890487663993403070941602404928347874166593497989407543439692441738117538839857155431179224956053765762878424745348533105575232215786904517044077029340883384593690646876560007622738124298952386275668848359376340596965573375677878491875319698999723814715116003268375427041765497331030358367082083697627195654577308716393675348617576546690315611476524458927882580098291236013725060708751015498984774035014263306577650155347532025932693694633672031936372283321663329992210752543965715407966566431380316787996117458227745724721785327979472980206891256563872559721536000654634529519126704253226394776684516772070178402363822030260508502798417433624921016631467894939437380182862882489662120488736226517085609206772756893904739580266007475426653318734010085052135503298162748164229583602618514171761196471140145891937631309680940812130829712669536898574984761140385699958946702488222722800824081348129044920426962466863198468917356373386265006668182141558388241451936339697553709224877676723213626448471703144180732694985937897075129866317914447903309009873498509507727131625085906813573766084607235194386387556692115182578170006489449222602351356244709920347720093271854283504799207612897207369630598450024367819098830465822748515027548846005005266029944520443464860203471237331378046005505244615642473064644508296963043032159077225493607726568368038842934914388962623277263457253264323549327249751735955743685231029836881570013246028976439238103694072074057974781133598460383201880370652289293580192387447734097055873322080121924740988872460688330624516902712591039408534382605281142144689155941039558360505309424591699920779954736921167660366710849931351818236534162357220369304770839495443381945639083867797218371307844761515853484560630017331146293819662860373785257082584603245831025798013127096986903391574402659074427749904447813960307632807312858231669469431627506404352876939589860133987068294273310743557769322331129896520799007083264049322331234247744786884912630533832723918409632113476518258786156792693266565236005845167944832427333777423409596086626063364910169751661842913860233490959895850891482166622035044323824806575436194880353468073888585860913167142612276897117510858144251152215294244465950618619646752464716523173329417698330288024564497159112173871894452868258294355368987191935474191741452960889310748706831522740643302483678227214494069237222390907783288142499390620304150483485850616053101367293389659019980064636591648692860072845696365584094065354714016345447311841858635442181986422292339653005496481972197476602752204542126622646668639049817021917911442995619301727849869614374565861516411044934732068799229823421980208998326285315327427055711565306231038037389250304343532420046338278188233397181647528584136273585811822006383847352845047692001466527208381367855786005343759248059507882359965318814457595616747687048232609363228581528812714447273223520160194161267502820859060416739815471743823071503865844783667028503243580620062117215547593205015416948274739554854654155613109893639594225189587702781380526446546203745182128031714069031982128981143425812004619927044560026544173376425565386897416490006203966013456737360956296145991423573448119492057613018256824378941595490027587264334953175476672165617802958873980990169019130656343279596047541880131325466431922863388067436261040853548938522859218838132310505900035339931132822045903193845967318992054711468223619025781150871784914113568206323589063550944140535781494493947377139193766410669551557365186721304133027053445517131078776258366330676322917019932683836007007733289184482046804044508951555418544084815826215564238509386713810813969050099077187073885360539721713075979242608137397600773243979392283615645069614587747838924072293673923259934649323360273199330135936052339932765015748701978787786200130918937821045373598736379840530570725368201671569609001157710126540932699254763714798992220792621838344207448895729346866909010512851120822532045413021722526986816595835489957699646983975849207254830012348190360882397042850980772136947360555251942456005186248705157516854536193815063022239631378177521848295146446221781730941318921485620086379080856694824920931596845311034590419475573799002943698069351663220103323964138014792660685709116028921528715692823524289211027451794521610237106932929537860458609946892959848235172341813949211007445785292415018076523836188242209258392643599184575787679708029601244937282085602930798990126469554989217905085146891223991118057664939149035145480139334913141039099441959424324497098239633564917506701135899731295726680126566867103972569122145113777150072217918322431028297825413107920945327091537222535404935939344594620220000579574430231370824501109074428261627764668619983557322098066677265401309734381917986791044197077755794598889630169488736128804732597402086472918196234753068884381309255739773062787417408379775812826805503611353869804138725227082545664915179001620187790342140089648200606049693107423555941424371358038118844096851839589994764219476954134118274517984987595928517207482125489661428606914981096497092697210519330853978988460366128166195604606199408393434429751777347642100780109993567546867830803544557940094514153389966644063726104743773194642367590695716266086470862418384481318236979257149032361141478601225603336094426967842377234769675603707318168826972971865492363985249946010402825218009367636812325850599555908733912130941045277489787430195394353274966509302849681383123155704809764999074802936744959229343286293259719069010219360790345656826403192710261662783692769315099491044173413076115112801562475412138714450436728759471230290704356072177389481609696198262015823277024793294996795138723334042385810523578312741732497067510499456182658927841241266118418481665012628848041879682942771823675820808170887946476186756436568109572273917159068231469254572328747275730531402494207752751341855935266644230981681223582809108630965102932175403933302113550614990771453155595206552456746294870183569934454644241479842701176273496945482277793988907049783805355453814771291430378469542232862826425825914010069912514051052350653927591788065681087749948275357151047182397995947488003247348303883347543219706900352380966902910521612968513879987435333528047199929422132243584455917940819192007174344078431887768179762568764010627575302681658555483726592218044283512067956141394754894021230489662954047248000525192683831566235982076863314133881635678802726008466522276115015410666879068281288032904408859904227364874291015073074266291597324852148311741494910474676502173620010049215890336111027190423131144827746770225737838888985360581674547196370210019964096413073074957248604393570530824265476340619308504895268383606177179642797465406250385866744162272032131392048943680206117643280043441670034788114024675513295765310459834647772065424991802102908378022810850781079299666910184622019983534101621005744533500869410486398774866582563233187649811295416595109555769124944533159299592188728596488264202719224297213874767249967684926936273902698499646836418009922854613667831688530386510406957528804431133178554448176389589767637382157322487139122911725809986592525541112553676814668893171011546855440453219567902339687917954681805504786312050232419060560034424552538863690077052302893080809167512630711118432176523133593661702742820938307200551311667880167114520634756203816818412787782666504828499931585260218597606615058579112470596127519953031045647420496491502276841843090332079949785433277180965200304331127851582709132643813768148518458626602425220883400592186037186621810208858564211942486674744741174560239304733642237591640150635337375957761700638872141242319860324610780640612929342969104665346529976012979440517932824694271081109865555090176675370183691831698214385571742127292433387966034605342245128704853749687595424495286812385202805807810845796194339265868757250201385383616852287887192518617198903708415044355193309494285193042958359077023069968431493720147558102223361292523385735184124851995816928219855404462999732385446351190582960282492043901044678681181685993399092624032658764694994357663796416989294282300142434864823060438683836058328122588516003418137048537406713117970554246331625995363291611558699947119390368077935811435315812232201047084249513022636383637923525331069008421913151073133729544019408955445688932763398291953578926656918822681467656650716722239072593230955900125608081249083567554083956102467561819018518946980325227389227101206119005451651619961347502877305460084849301642535344722728478235277812547559669417626514450037628973479320166928842097084464499589616658517577486651923509981460768408419296887124558740339309479062954568297215119066693926902646644536994123464032465150901830547106788903420196535317655770770823918231101887274336048391206310614039317093770536318276844959099729868971105009782214436577013630103140620248074519035549305453391040536894462234751068249916740447664992394295133175096015753839411829508828258266613365818206284962802186941551633371699127806029385471328353133129281148182064453154078473328901518735687737259661161687116973524273138071753420979216210960635227281472361522346930955673639616441948303491217713604762377945095870637300619436405402056527649134658650399600694633170448060931172682403760116730716626514998784418673638896739933376824922842180446913305695218528301150816317884983918489325273576211661174929644453444997035717029828875820230909814065642489585883337336962652571201795382916178560554624535216731640817223967023722842334204993473682449710620338054743887169147857926433171569166992398730493131190850104401104018617860936400583646873826238986449434755658895966895664240559329527108369498481328968924219289727568458990662109788644999180207282997383832615653210485408234045748431730030951077912368577692184828595674051995481188891858262294009158934578181514017700662270897868437881477072058600920819728702619584784906599288217538916307177445917059708694046903447104818685824994426725898711363094311097798913335271859273985653086155189329147491742287610975670149588215675468772239509627342428922038651223291764554054027004778976460938429840272434367574164838572869180628900486700153148972856720511148972282623080889627554633055139843471483116811179264427916600739791443274064725574253535435192073400052111157558834757700025747349140750825111594990997767502598188195210225997908420407235626251057884514357262775124248278592321122690724218069389588892667594619246778970222461782808132440335038581685079326526239054814063592967401159456123710936198719559207509369808328636695693769231967004342749274950418458586576508701071107627596111491733463028258373846161665879276931529374543444557092559503748485224347855543268271605088070517128614492341083630518264310500311625537071676647869849057668704698887764823232766162758077058469944445115395451903881482271310399623576813283334569658753276290222279688202473617203210718174717166884145961473957866837277087996093650254867501305371445605749993568890390821351665546375752360656203021233247167024952161945437810319818759168894720619391304731989446175509535014355866536185964989623455500613227432020970116576419779290916455216409606205411923684205734018772955361843846133321340099672562702577257685426664370092381297242386662723012108200589452186918488070976584558169597258744286927142565754722590778370804920265050036262540207746475171541215562866255256979616376322339652725458780919698337726642518480893722089311445613338226866786291356863542296849953348002829342678274425543670645132762705679376654467275453066356935364628784261132763367149961481237125956787864913472817301856243797624681354278839468377976020483328785478121376435084675148445387434410862369561561496325862987388698763244654475885109435691040166001776608979498958361185292053699383776518541440585555175313257675103255435020771591583876536139936809869688455018104874626018262916595644974628777248021854636439905705690070365896973765371417105579537888932835109273333482832666068573151591577609641526405834306135970133050707796003481698877543224819109521936661044100298738545411223720854882068844181629949716045422361126777671270776403286876337068158722816599976240182294339969274914571060082132991616148904765880462802640352568661585842518583233682237551164875463498316145316099135423055890753002794122651043243460583044495624138066218394583269602126703671727310170411151992736064054500528213205160556259881892377580450307242936665975025097389268687110798414823067633715461322454373162080419255963235881552079564219856938275389962058822024156437570515875819407543878273187571486458822582697907143111599888618871527750633075731238559313891668929292941741283452422077307862023582989107413920581784870885513179743811120429908728525294761735843430847050359587475442391845839298582641008521221618602040470630450613770446134811998116308665364690072280346788845049635947288908527899301140242268131170268216652505043700795046274576494930981630230425483803651572065099467748222470681543788951910097904095654213702065917917060121808072255129905760465129943955396192629171874167545628127213215727364128549893610822701257170048792753542300967196151098129695889740247592253844588621166259919781224632510577081222484582079175903076440055352696618571568910433145432496254896369545062521211403297082982422924990660162857622133694215821432689132454505613530602070291336293169398894966560746959399537083597780541548122345269261653367287297862621627676187691079989682002196519775332663175144084186821135066341852535951715999166361047046100348059198507276374906220399582228431037016296557518421239513013396398019150252569700548294976870168392609188380243307810582619583505103541815416051371177027676720818222371507245252780165998799796277176000846048433706316316960611103829550885219200402865326100200620138205665484500669768966641768634111845784650143033445081790033760621043509565995899327993144661093023991370561431414920546466486369653147474002028149524887120407042863130833556819254390546782986649175258393967898149134025868664288236455353522816691894205443687705443261308827055833518881061490261401587514435671536876465289757261349848814651527419976190324394081769513975603185669704552865378977232672827243059798871848168242669736180526310565054074623216902918615185489548908269227094395721099846233781470169762376912041581440189878311651614494155278695038780391119167522014685335264295061310743631968102567069342941901338732966755315362819440966356987728763272262439356196288659726160941340391002187390316968034750892427327626583340998313633180093115941802826464473826454138486536435531369250582698085168168643046781245350963091813154304030881123623076967111989766453113196863219342735920433242537771869420912733224767780247786134530304825097696866507612165727589644495770512492891350693047235602326571181177221643630130557815768385903041113428241909769394393907680495206211542037494457194748215536016806700713725584155452496532422139188721418914489654463766117427845760092254291949508153699446537119228901194113834156528766711373336467443667929544261043914731966300868487832611348129351146993880023861945122885816534179659213249914535896657206478175378183900741267446206800454257276888196442282467534373865336238927471214975482909531366835816126580840177372899253850888648716909708332189807633442356688964809648247651720836099733469992061473146310982874495805646943563765796009592067657235097766174482254103370351985742860333787284571336640998658176991641552078120652098565758801436520032234679436923178390699473925200598668905980150926865593465124717621744255532580088748795705705218799933954821592068051989568122422144936481801091788957010205818523121431282941137027069901475499975099809859816097704195334044038173587976643067508406980145020486073658066925306143227971396149122943189646551671177981360569951367548879391058366717362792565151194384176285938840884402796276824481976874994599848032850009710340002417331198310547201686821104873201455659406364030823000877169140372577653042032944634525896594250600639808642576204362256250003274650530584641015509187835751639444689135494581392548091691810012894550023779863744563626295321118957936139554744200975994213509131404434194514526274621541659902950895739124324200065944393379806520354306518545978933874298428619299747628854535346739866261788251151195587936307482117019442705471895809632548404136740591645519883556565774756129439620361289610403655701302725128500823893990510026272779589463553886687275755270704999402834852445744446969517774437505670979604874560107767470935875930521699704552269874508755148797589764712159539749465725203715655910813915971346313456220888481471554777854879091166444716704889666128655633173184724651551064224920329098921400287008709305360014965444861672323362891980906965489885042674816368119000444222268177664570841939320609231017952533302482661948911038432274486331802377053953908604100430382605144157134908861800461886474097208393405174603152255555376636535777373997445200204039543610155223731269330892281427051443151041875287553228211503475556873773185971684798314209626797566626207766034464368979775605791226554257316898025597638199053013335627101165663915887876654580601635826968415471610375908178283360521152371804906386835421944379427163125133919651143522925163135475772693982693121553430334031274118984602421469529789007309119024149346992414789919608062068290248644374034707145620045287293118682794383287396461637256068238143788786344777278499747423763657843215380796385949012503138242301428462990864422321180679830588637729923576535171713133582134759802240360884963107696074785365583402284745927100380315854201743497418623994512813338229554203232156560348227448037755196170336255277060609030436413810677081549417881280401172741085276292875629603630826529287255136563532523283721420853377687419263293740586938385922836813123241911501541142196868988287332422927844165319006942422009861541491858095101730322635364802789113374054425551293959934323165630268332057341543732850732092681931337901970417241091739167783801265691796665386532882344991651566024695604678511129803311254380126165506978411782129835172762886693765409927404237642557438070497250949893210167412663154646754513529056509836076160502036959493327084454325636530870914324858825355405922917350832529695044000803748080088775467463616582825173265786173622652272788739683700454169625072614980651493167109368904150331180481793056828011808556773652471988189630775419319810247662975587930232975173805012861724232061395999939430304812052020052399193652343103554700988675925788547224082461904656483699268311593675001254154034645457303043085153836557813843617974938757160025183461944751471057444331450174419406058541116861268175193698513114326419286125569440335780915321950087853062244934726707627752605483204258594240394615760063897239976283935070707731744273807300691230400111972646935450233553539096517725419000227894593171461970104717860746653641529718006518934693543052301005773104262994288232407692114229828461387888611481428113746767497474596483331151659614349843594584521338325976015508986651318126607829613639923523325339044795594932178608768938605143848105567113969788950624792824925516762279265864615265882237585139252676011006880310583619522248593876923139341415638097497897420477628331924171818288677245485730342360230945831625566328056629897070352931314996672639397529564568011207745422815660366660075390074347850122952315844734498866821382078102401443589494565721079646847167415713820509794660083709408372820664573574134783488943621025660500499179474709941638331548076052265968727502393413409217158240664775658766237992910686319285193048820649821398411506182449366092104055344970683484730378832539997908916929605157107534897396444501279673850543406747209383539870168803791531770720105896403935738287162466476690714497400088390490828671474702929015672379236598525133616846922512189893233166504648029685840608593439866557743450045067266337002540579413071609022197187463449575355272945330728411798558230957071406195525170446090062799021896234748233535291532545218931408265518270741536052057451485167275309190063729771259781260216736136703133349464946454465750182778019821973975960685730999438539093401641054530962795338747214524953213601153981562918677386126965405009032258730812688457709833635169474935365755728271532668272246501686381771081765919979244439987854579765661091746571194280080440120280700091307987874981309224999377765663474994384521703543230650031480525583915328213125634864114312057140212487977211476251079302812604634409170308182361302138250856648604459705154346909492103794535931800388575019803044871171766076032198520609780836702985654121176962585401299640263064258259538824876275370314305981268817234242425594415178282801108303183235324640834867523070680086899014199163879600105850302285605820068928502841927836914355938876398702105619749485568072244845094243150922932988226019919973378085159432514567450766939634097679230501293394028845367498923224513853109890457353365020213148001038962666909359395443808465207897329781580975028852178701428871338286885005758003200678422403959840720034533863571490395045689443987286129947970869726684938775415410107464149888800222236436441893990313390348543456345686375699979987070344221416846426699358920161910653812448722700965746270463154222479388861048593018362363562524207496170264127219052818411830257954527434145632430194260568888790325726431169155371464311954062575942272772786612246877131345521143196353655494774143405607886849128433698905745186203818969950939027954077985743655493083829161431794116412525373360214312734310181109791972971502694163762169585809673194446973750076994547519009131547528355451059379964162833519578908054340053704451068187008309295877079218265087373926080464415739167418137718588066230411535658827729888108578247330794829224085983710744676665361556697081709902347521416044832976312735200510847288332385721916793341264009416844478995463392622428935185864735483891579367148623280348818716945849808791998760194014484463619302791780780172635736907479609320397161777432018625638484380670316943664377450447931954093430092927911181507639145136236279260401495028873014107090125839102281878932350796051562257809565960914704111051669712552637289404258311330939563560767891128491948714910062291099683123595466774420422651057660068214247771642832205838476175567621577364359359414128551150929575025090932327469681236038501804559552519668905062365792413962238482116050877265291767697413417495031375022036038922035130468853226112263722134987526646727400746803979097595473366299889960925934753231598639661580497594103985966539458116222233724111158304546601901109526461509688722505922405324002816838086519068490329727028681940845633619557815700353773561981494113026520652697093850741745338369756724688564059362198720616409995267095623834350265113918600682173550361856623314648445181073165510307142138223309344045264326466086440524248284692088680122559434702225418706631270975483704249129244760444523681079007855861700859306007635319633046546072311594648496132588666859072141547050762070381144686048701584636066169517112422416886376021549963563270955456923221633640396153917228579921003960500684227403678868067752287922020866248227171469167672660579086070268239210962486492813635002610545522268315582766205511894108959043897876857480478117436532577475633611357711165424019559172133385472996960456131611621898460865091997885424187541189854119609475932030038091310973039870686219052844039520641298425410507701091775510456657520280571130389764401935571337490823982306918594780988266726390989855158568303180315963758206573937419921482332069843043589270728301516316747650233796358210124311339987036892275838459703344786613949475471041899073892470353520219689453326812258738131967852704274694913976515679339447683752608674784556522542839284608890820523558932688926628485272894548314432311320770164810445458259753080698141350113462166722897513459546834173684057392539818311889122536291638510211322530942889335607938546587183977436353273535655505713262380536426642905678929111710969995154091393735365275514396271440850490778373795282823140914813278286443403090942881945609619499748954715322495640705061875633936984760561402153678188178230174335253521393806967062489647218799316586649648614896975664121028803228107629354387496193947480706656704291524830040281232829201125408884542060115177775108853811601913153751410498112994977042614303400903824738838200932838379822476069552721148608163277180317113806956833693044247039625661483793087918161773053038781288827420666619422413321864846973861011117780099186710814674413959861377590924880770988541726570242721894188977430198337401458857824246570532725724715935264076214362600477880129797481442831111211478877256538889667444565138004210121632609166687210726386365373143076856529591941792116138402584670544581887585775688762073985864903845817319172350136895002133101926830406867598570105397862795045993813671499202453944783967720031663241761226365939437318143854595925647152644630185476921225255162984724315846469643192299390583789462691708996387859305134752735508425055238096150279379317955342576920818422000111075577040016165059066921834577249376934692442111654031533135161723313494685926304284148962145607829466468805725554094730402232431634723201188741655421757144382611282586668927739543849484847106614583145749182742206386371673375909319646148522536030089130853469028455709887077004463094589919606060655735322194348436834167596621838476361361125192915474540455321907785401739038932663175535389758014930829545439750818900180652604728397466959993452349101761766525983765675258982741336441323888561799130845719601789159621315117520031122758534024227099231581008977845803935256295270269571561203151816469836062077521552301998615193083822276408061193094586752714259506077142641198413487463055244542878544564684345461969194405202556612822140450223581519807224443922113555696228798379444689342983463989696283082869973114669617745944119219726825666431865817631168523989565167376454471190770496952916553343569422996406471653850576314054095114865521055312507009717818700837931337052014668418683349210262822229744015595774544269948247276706497355782378186697348470852759098783389893744359762605587497218287315761974422663969730927769638382390595212218186878776536970480417359140668145811127761058458206674194349918009515762686141694806094347624140296525114158811534707724190635699631202017716040101708637042890752399382452730896001246555001311333507108600554019059351532160976787480779763886114016955734868543036397133866542228598226980297764387323778683268605892803564893781765276922633116736438371807090005800605011813528840460442611874390520059522692137219241152910758184563193642573253122883429455182393088807078920691507612893991993986167130302773911634425638797047225737568547570939225085703556658721260709867742720940598790115061985329208876334927631982566736660388679479739242892613976163559386883010363585493614279493568564814677874905550046517745455234000129110798268743687074783097522194287896424797127241352797292978314199123509003091173714702493528983856117947804866885288824012881243517284954380865970997471825949875054618620027903054364284521968313240977865575222876894959656208779361509749113862322963175545034712258697793469534931506876347529479814750086560467834407486999810027396994284018028801075726224148842285532872887213818355588712455418527841631080648781372837630223067520562398394137676104488336314903989317836141301587413840203832578856764088125425739692126068878946605716869888126348870453783968670942548782228262600816604836026514358267098177355436393174354036914325230027368041467541103028733828323145874504834583090612002258941704208996623065348601774182657713918877324125999480770394817585365590005116477681424943299824560934066982154730577198155162159335996789760128644978643831247497987016167804355454915165124543139054160003794610661537264983017948846663395831054547699387949149897212211328745695779639685380228492310667048315076181458833565804061222527171827804436209416449078104168905856920143437164113141849442617285691465171700358204584199868273599146646210797608094420019943623902303791306525791593428915268940142867580962569420386901595310888699387763810729205357012605735505196331793037327955393996153224282992934950279470715387249243218640090972471117981270326188572642788970096320878472478150966170937398052723911065871824626494525506686576974960214914310084799038001243447618889436699183749911676192890485032104713852594562206571739213438547916591736694949011412722884586212705025972074601374759923473710961067141860655877555011799156240377014548360046426228764917603301231230818413382541897388457987554631109662040372660246375366385424040619106003321506800018392393244591021017850826948611129713018871053780645090239082421591162921451652847132786127498775051354593025862609533466346598164739670937189068042737890347747252173685049162104593120042210419542069804866549709445715944353228473638173509453266074950096367955244433920755764951531643698158354848337104198145780776949183253181013637998105550460342833564925049762315521791820635527925467456229902308785350011412484948401812014017699140670986872209283671313287102133355237015197557801434406516864064933931880654056776107746078036298722685947917598566340622345562881671169232568837364922258810444961652830547390737416044730987366455525358648796646110699885062904360056648148278079236824460748017310898644489374327834615805912331871366310248210211083753841474048945889388711962210757939740237188245688524312298730354809382310008797175625799571019809644992195056698180429604089576753928799615056037487804985456650155608428590250404950282692266424370774784100624923660759298523504641712966473952261154309607853766916955753029130522088260392233542173628076743656280318547536456317622177600249991824521380532969604829400748251563486156275534983523676687040778344958764613080545280477390836310791402910081843799031445525275373310288415792105447010230500032187349255050051219226458718289239293555606370493937713677278124500093199881069124306688113626197203502799769398731761928939992014432247547875686111051049628001787281432403976688655598809199804882653340666511675341624149568289884477283038683341615124801005940916912398211115351134210343161306892164509528903887705817164091596087135326231177542284292967062955975661483522815217773792870440094230178364112997054860155959291463690377627095720951017737139526044372856340221422449763369068178904638133172009643359709391562728263379818343200493975125531516047066309090389823933781845965637144777765263858535426705173754301285285793311720302433079548672944299254617639803187412396882637952991943780541947058769077152977385887273408525663507494592071315800652293682520641772040676051899441972538780856257736069865709075849510697530857399261896013935343733294351001690663457456555653645674808787234289465350086062774279496427001171792768853613821282788249502102585086894442146043522667765105493791003421360972385281653615441568435242488123207522604323357199137292514811430679383252009403726714095934514600191333875099448054669680178206309126095060461952533630356540914724427613927966509705211488579798283848344283767882238496653998720627717631813508953693532039727653727832345330061814963751406890898231226795738319603326526214861371633788286662565369158090675859643791758739209193594776445522109614206464445275653951845555942506611123937660793817079438460385261880699363056607844591239429384757022111749538979072895052390487953314623134901991831732680088692995555998928469498702779209045641879518143735139565276706003776150704586104791170569662864308638081813407194015115495226155166603912600723490183619636463569467548713054984162868911447868779608035512286296600798649210878297547318241104497756336401587274676347883504124113316049275481394151475952085467888336086231423667678094912096139545221754540765279935550420116885714634891973461081006504422342228145512232816599400904198736109676590444108922281896487004052973422237216278999723459793790343211698828919557531532289803819052102377701804350127359478593735195159491925273315337017527154993456812237841773902019326732705691044753690510385272086015923872439880263879432050443069164038555290791120307783781800578170327423417283076316252982667098862326807041615522740441342204780375752636578617371161991176649930238039437356729765491606554251839221775987663905727520174895357579918459111905515409250118532370368663548784078861919579464154796643677650529669418951937162787598276526902615466479449092554537360940091192735042084385613708205237880474710760152127735440274386425065498744685113928692565427582353271355204588757400986696676265100795317078450845311923422015963493673348217250296371727764274846171226372779114442272140730212645777821457577824805929987107591706415808224058297976391433803176816946599810373045693551947070990573558186877707285021679276464432729601509482372785708220938003333407072526215796688362497256897516706741300277415545437174285277654880183101070018646531736116374181555122239717315250391070630951333558813568784856406091741388498898795269021626333012121813782882736965925464412645718398737553757731595789778006480153949973948437471186485203314135873354360913018571521438724012885515893793234200498338436095592234690067728731231715092343746018669782778450307658064851498788901009160794392991480302957901547157836327976358262604854591551848550900665097652389976350978886011084061789298088256290176799591647691839587138470950359168545777498836377375254642929185299609075252731454676945311415984668591205899499873020186526639044262443864928842698005401099713897783552425768274096306898573484243117903245929397399002043859873004164164608152570668613453382363901527085961338462869159804709859409143584791264058819946513676245550149349272768823131621567532709885861577422223333064210459775694047583963537472790884271258222880979002160259343178792850149361140606827215892959138359084865677694431548202396996171137096143896215256928814004155945020332441637309072734742287661285237204549252437768285554354025126658374668768858686613316317270997752524265938903254104072631223304053056613926530591201429810054272330036958484294101308515159423650273458340034076000245835191369854151662500600377554895821444246334960373734419685081069089526304757064869646852109338639418221339478191120898905526827359391725606851326526906187736789963999483525222874643918923901387831585861850715738886113408739707290075751337291668306124933587137213932516959207288334174682751053247486464019394923437248148455028639581552784213088114497049449188981090401209898106856594729352174932586439209412251219252115656939993511155673688088764334570051947341183894681651208864557329224611365363373901335803835614074657241507243236553137997493607615086620347835592064896205904448083608788689620648981260391250251702077735146675924943321454768598243827890723169757522797918308483388483208865372340764731772880613067128316452361239664501023240171319546838298762363508123074554421082154734542431272954201167699650245601781726775934195933167582983693180043243195533977842812169963475103082510296707808132138761371477862750272547466461037421797833987805512617583312003908370427781142878812910723484195757974233545096523933554066459868298214907989846612547542853172682644465400074622743389095048705651059206524530696463175669243915724614323888163405754935881163692508551892076762042030778307342001660501701270905322941889121915415635481122995667384402453933217412260855914407727648182744862856101924608423410536659736249967874157981918465732038272947968524110361961325126060962655438467843501174103164032364753437829721216718111649890282919876508426397649591507201795420391398490478420570077031316907337075280539396136352113824375911960348914242711928882530032175295279931930915976023255527629379185056657796196474480532339172770760868389403493541314606591177705448821963095510149498901026625220220371681454712800826834794079363265450973443412060029504354713676979515440328804584547801432832201671833238296516343114296160387451992134463517150759162328332318716011807346025385718498876260538556298833789688575397573330691175498477542598639982759872839618375757922653921170095963189892179797742745746942498412396311469166346887618567520209081563465568475306588702171947344160614696905836717135008143729352829238347278479005709216814715692362349620411550125498342258891928203219698261842896491415170165181775248681427297879361684174797748251835506121351199710295135026558767751917979414611635272250874293582661937523537812714950632027151191340033997986122193596237160227229338162498169750403006413014458854329983485550888700212922590505686595368648384257510951697960140825753763577297945046318502891443375843331976209264336755453768716110591426263227239389919146942980179700339402948415732921240492163915479447720512200146939553149789412541089861923163574591431004321864657909850118865248941287707530255139691290428132277147046167507603230062944888099024770485517436804854429318134006011178793305292817237087171963466834021809148219347053837798144260649438864399243394615193916857720367585601951401803053480803321409784621701530034084355379863383846092935519773874819943121675136943691651369517973215581516925772876088291331877401158073726471271206017768987939335185455151645213359997960068083276762572835241676842283727374238250678707795164734969093824866330409122758619593981173235196223159265228569630831893070604044571620683106108970322931447511482615812919557452233884369776478476809110736038264173389441824795767740895954981784848018692305326972606449211658196665960912214523581115688717974132790744998304641067007215733967035868310448684516024545463250233172307838719591967124093910813116731281639080046706830853216470386637965858801454250366237359537336102492316039563755351602789748953365137569846798872612106776374542870175766652268572849044863307853930952893564040061400355917619144137338853078277676543419877975707053940487319755169460943976962462654163867952384126205985724921639511427470742618155110703644180001484165203920221575522559752006214871790172361985039745632647948407134197253874327419249853892307834438689572452946637642240195337856007064027225157476532880008230817587288398326815675801106928528130257828168987991246120025854576568042951424500097643368234831080896134717743596015677747727083027837186100275777078627056869590390405297299714639778191916299844441880605381026476764169116260504502334772404662551701803272520004782363997532477170251825282815162533989960992219550443605828778630930320898212852082171411526264939026610249923344428155824414785583996111180361153085004845753243547071036409828311290477385338698585277716181806637148745472458021513855827626946855530359406072204675257330908025429980377238405533033383086449157711623036891908632931777608697071633776091427057463573224501815101632285531292032511881245989694988027926635154988503414625885167030803364847520783046817692069353500910703781181724085975405588707101600692525952674095958763726322501394189312822230528263985730296926247528274327002832619916931058437859166268205895985596026444157824757362640995679081018417041844887311820096752194730324708533000925071910158469627054383035743214933937118434979067649764669599237463567544510218707489757897284960786309135917511545172757069101503321933670812602501014259687949102468618658908721737963392305371376883627488133040838832831045979025452129482345813266326334576267954336327098388167188749089001664414016998190543932408761040430311355214274328895400532497481530500850869220583864517564916826198610283134844419075704427064694751514523485803421798991737918963995100208813544592555324306536926189882243899741448432016406886945175687107679326517111231956473540362787905754544760024428486288663848529269130934112577435587996843539060999401665536638560141855323881039581365778599458758734265430112420438309557118940506176409705361054236935539383626515727128347935181068704013177451190984849691092404856596141683667745964509257986173469946571458691226495828918718672675477833498983491496020092736302789485628473885605975014763638099518549983695745102744954889952559753505333301952241020031752296664447132468634031744733933271731729513006971978645591284765830469756581724651528002036831344904366639398231611457717925355165245690764216059520871239880978517906627802764069286250261761569820922625204253369476949298915272029944590726940494486227863859673693650018655100814547438185971414140853036475259067508661555122706838040903393390296060123087635715675366765877088300773982551414027498311356318187204640925793561350911812846715033867391784550253530860189994252429810347008988682894808506339576620982326298015444557639828848754035034622035259006793896548488344471706055327832379732763954759740681783249133083833880579793881114769859157989432412311704038109757848519247873634122621073315521934889585323762964601264830814036347381204204820222880316422492957703171071704799280915869781484188188484091648850329294988826295785127754476085533809891435991733139554608081099037082686999072710342284606521417129057688387103060253898945678257871661901845844653819375177091942793681342399877944009629447806651747291679360420848753622357285415469110461501357576850802961503335518770037678322639319822268695564886028765701157606934487938561102971220292589903773008234945063816251037620216411397571151376137513408430992518057247791382797927902740003819184653955663272168004545751853774643192764451537686489833747416540032739119137692579168040129660504277899697517962161339027610985469552493722640202221026038327195856720339655716408098393358013136920239709435412711313927643643558762753138129905765377020911856343890862167282281585363006578136129795835115560242861076404128163466410208452309497159744852740316449162317738445386366605305129537859674407990174665490077048674388605927356589654980188124785502795944262226698889704700837902359962721604340834533012203127631220246819751371375688641240486846154689216770053682355291078181569048544409871389817141289152945990526424104762449317751666988364752625821709720247021469591968306414080318114577762068366303751057696087907052414835860166629336490251128455662454673510940553431976002520419062650028418134908417382506464688630877612820141577819719142854096130342659452907215945105957225727446171487503970053530924167262733726775784406204193658360490533558903563071959125744973725875004156418683445732776253313474843346565308262050662365814090305288939904495108197946007723998557263246786651425686426063666803697001749468715487044994680505510143262981865019231502848527947663742524114104568072262517058768314750209479709201833258107484103200084407331571780860348183577305556271244244245890222666993002317627723833355713226536509563488738881474503307787916387694735733853280417940142767791155553928894918671493931861704120749117528808978372913029535154010343158964688727729793729326402504742740467245203638936570794312719893279528608350008180445510078252579271819248104930030175564594516003376179378419975747531781724027624566438700405646838322353945517077129406847102546171037237938455776325954022306265962185865897406673212709377894240463288040290497012266510832983901594474521393831211218121144093621851053143106266337681695183016218955460787601060208025799263077385505565420930495257636338335616205349298232865675910595966795976391159673816929316931886718112896637108889118007431046564157045307939350323006904504121906088135844628667573048386493423663460589153381139439672858212583676887619306472273932878874403082775858926749883564160806625717996367984542289500126540118787930599815386502694220418054780258230960630798751171014251596069269429529075257252137058355396789012714447416260047277061918492098642722906828842296646753857985476608992848889924733296510248579171361218401070179262090986151933772937583828274338669515796513850068762229307061428887139320322917060713448678341557433767364405451504537756819729511000479145440422983928792902243427486242935647431552058646995961460325084615814578097634341462509395250210296067906352449822632369800953951528255146850167518769635988718391542278912916330989299311041335945848226490079187939878390493569770131190495094084104348881467776401203609104131755511126285994085342658581170806726846604288181866188854026544411798709786929536082725325519631469627043088051356571706936781243269541354335356311541162186453582406681083743704539424534405754767559992684495191250891458043170776223029727434082292483246755619042326528890394734513079319490293187864052299029345893810912347656653192966309903228878592509166170904998745263451985892811017802045303717855079560885397122955514715367911998424813389672590065080881973597805740003214474359586690529147959824156307638335022523554509014127492965868774551698467458983507930195026493652992837573467351923793665593175624898516974273305515586133679990993042605242125811946546235055822296374450780320223731334761930923536196385884815437081842367962927050453521848217604448749339114308077041441890984728469890016375486619175333832699037253488318054317591250934723028415657610274532991543418485808296697002320738663910031486212287551255262426845434466099505185906314774714356261758992320459266811010550238772440897233940071146202031729263984026111733897665107352906651573905727812749790478542465190144691061973856673290091735913375023953965243212418817005464301604646851353710808993619444729137635423029953356934011269057288395298274837647684156299573965105599886664661518454984422728640934764560168897785750004026405422801885608105878937568296302361901254561329769435832093769691063737647931527762247448302332260497110913553982395856371674317373663315606413920090113395143382443433810363124057945264016487707489511882465653886573698120155639312067427901188754946272597116081088239236998706769001458848512913030579771874748225801373666428388007216516132504753567188902339657722539104024376925200844470696554612407892424228695468843796164357155724422136094180074172696403991003903982333532234255323266743123809622531428387815327864838078439358677271232800892247196397389324891903803306842153421192318168756833763059295488023235573325987777331618342376093465693948154346185422638738610779380128839259665557233936374005634911676490101756000323465293172833360724755100305987815229367199052832500269634044423248340127138831953453508735689475491356610987941424951276484722007326550469074861831330279589322695459513499894249254898610302041414621628015620388125759191306916262872598798100823373857892814670938025191827992949815428251491113040328826061062325409734292334766131298607089754985447918298619366280949202149268529607563621468422240732853527667954353224815796071621191878825375000372174937447616603417009643614866789142883407258382913932380995841907074643700668766974134264455741355822927932102612986264708876085822873383743880455601484713095837786090502083768187105001439303206755102631506978959723733666802875792296990666202569270930966676807319626530112128732353751512865226065582423016220452652456394279784852624148543014468418386670427907301335087931593874368699473145062332590114857175566119496143204778095940007123220283603535621781755924028815462698651527377070944747115150140415813724325459653547221933355266876402535012448830330456856416058651161106563964760836956657983035043265829676234484787908465499542212921809754215808589812849964430640341670446521895786441288594724502990915145344106573174042968127291912319813655606343178424569477952856131534375263058179647125857758438111472739656538307192085351890455350396414977728717885831533139140156083348845603908721499384439334383639305824301033373223453673230382121920707871955478166488759670000928234863636548914708857384939241364757536124722642739432826412988012786356067350424293547798552659191231483207411975388769741035547064045852326079910162777150441275136133566015114695930849601851464137776085304980482856962378977001199717603016225210440405235856248311183184091040159559414019233884929052576871874328783048156867651809610415496150247816073766863008526517268923776225714652493119310865939768311568981567909327115681857934126244396509549979891616154489380696206940818799953561414784401933946436457459833516424735698907778678013368115731539217096190323739935703497333618240442090672644343624619921871786198402343536775065762560317997350037434431255239479125808882012352724525848947543663649294406893187668522538859494461258120961778844877394558465412331131802717632307868292644802077958306709638622237653971466312030472514756742513933194140324743651152785132608446547961290775285188387466873571492145231729932462540423617792155972821974632253663645426135983690801616938892602443600295731047182444422255513679519641380809559931432455356211842158620270180877706351183547965086241265221016669844633138032935730473095441983564998625348856428314455651480538585949360418033604550009410981595008681180272236686783472909556318348188791499145958478058626397613009396599059818942695842752517197840149199890183197144649923724794597241824759794674155744838606169555393274335603535320512429318499632489869104053861864017862428404281984760868985780252824423526351824224521608707789392949289967567958256120303637572958052994439975904525582245033048014345040756501460988648175286201579306209570233682792610362043411661554073912369274820927951963583322326517547286391384804613549740867523398293122915967026422939545187012261415529582510689396767748628269377911462952221499088176917363937908832496022235958534642265557576669133890947239768501005699652289893915244452291795246593246578599182503971623537626727114245555518824281023078751563237951307499020045578591437381750315972000382371967840977116784458290147687769283373719688104786188549391562360435893115111721129094337776424423783922030040655288904301586137134836317415929686896378051431413435804259114682557077410334230977321303505580284796955534810109824667324970996500189002318928179440562753966225494809214044406740147632210001711909165230977474332626815230952896367075203452880589725035467311686164937190820140694315320746408555919802517830253170950084747997224170761388445398332084628538990980687997559937891838872895179046912166794654286081800704051508733147346414453233609130293655608423565604366177885697272551707098010440432005202877082537643308786009321575464672782850405868001018547130650769611730753442303543486093958176817044815306418826891209946695423498740733718440192523882551017020429650338318074200179918329992243039044633179258768465664327580757112455103999549428259403349575455731631067026658606384287042191898374538568125858205583056510376981526881770855934092967191628831011661939321602794306623111826629061414950654049581783095705448907016771853949072854640880336033324060730660958141873120363440218379372651902763592302296544748547944134714049841418620530415209671556972311616030572591758122314131533393590458903106693550183917675946288310636748000717288608445169735172024971991127456318801906800917164169687340266592603053252514044173335162072601251460168927555253571895861504115667627033405592874615782899930757786126837825829013950262183941699205417135880899516439283845587321325580777049530907070656398408393940751889939508491506159783149124168370476317141064581455662750762853122086703446881640758908552671679139363712108230421859011910586771803653145428904258730221085654087102329956504297860540882648618374290265777587780028008182089917153195431965700779812310013462387053678630773369590833651738415510548091767697411836785244766501727283968474230967663725642961374310211214539132280847222153984747562314564482643501918450359551234928135000197446216107422023995368159298238195804109378224756851100195715482275821693438455008064001756256110909261060836217642173813438110254653232540578229057784336191915274512452329689054701466381788888621899633576069620950202997726784457661491672068763484572720272386775977941640536052324814605027439845087445479944076852367628874350786914110426044536203185229072802660507575692754786985023653204313945210248062433097551961897722260511891962899151899827725278815550009052470706550463782680246801145774321585319142609226998125804488303429131519917575164995288391631566244939754039233525683716820235515888223351369946461527117395079388622691538450781891126536019842488181300105951946952084532402435288389224607953157766638153961459974207755131003647020343698089516760128985332654094444104070971652482017902048088827414983927248092994399650590099041383307687478826763396734379458752454921219423798679359707282220894073337365028131207532491291943425981815117045722011634379620879404378329993267612761440634509119711581253274939942134085418337156905899804731132176965195486966315027286528827607277039407990820515507070742351795905889688981600818329458614447052359673482011432653556702358514093576659365900111147656372412311636887211549445582813804685554903556593257383127540102812199917014500364799918167618736815056220985988308347217300547980871627372922517342378785862464882391826336243643216082151738971401304045626982148440643013476357134335013811257777800998313772712650828280755455626585699399202468811263716342934312005982337280190381467489771870297185372200812848486401374560376362480856837664618436851343078713446666299480496681015973156368883532721452380567951161877501364734046459376072859574775921207059885351727169434799266085135848145979190120280786646041376237880914839233935797833481429303103713876003327112885098636198032558750068591368450760966230956768131814745986995052914256609000255540418588486984431546696032864352414909243012499289031122233761898916643750810683293254415314919890519316212593706262270716703929192570979096612680965715967245869179232075621796367293998581075347416110424876781547484637776791902705152395061714811099683422423462932847845640948238136857762435467452578880049881355245038953017588859687269980170792864574126715477146953635538074763029006580741894992179951288630543405917250587289872389070170772322503124242538112292592504428676007457461317678900773551510275122289715701543232391791571338944805053846601215596760266935448684893738651802927602790538154071822151360613942958095521277383459728231771382110523837685653394219720771589399173819525742135740048951354156235635890359345434025717860483726756002892695998793083084455574197998500804994500015758271659342703354820479529633512483943604044494758330518193707183070750190169490771271588440512843146252631290682497357085822323961463257139291213061840971618800150955953869902694649987421666605184838928403143085895144277331776772853099994234312921157240397443821478645278452793167848320976510709171851734247018850167277615251567163266014976068766583484464680534056218275136290401983421644720577269002502269780708331957004231118996285846688790667525419992913495887962087112709741286722248670740257374827741096177706562480516410426949172529947762167794503529471153522099116276805889430309388273886163405965282114462169278853561655385496394574388160521021496885201151650411564116665525711505859700067401909580961822736565398403880776997340290297705826788543640520107780911247619220673981998992917782913720526869207925620167573452073111202688041597997524113692281216666705818482733972432074160036686189967378695912602251339257975659830799965820669798233196186559630476740814217413840684850635721813047748524064292813998781472052110234072208968309245007647737946545155521577691000011587321406480210694521354741348770364517105910287445184222913294810061224826274842328259928572501847860743584692998018630854054830648287581414648574641166615866003900599161065106741710700035908552104791902959891762847226663388106077461525578294758548656322603693907250891514583974231044606601312066379156033957269137393642352201543628272213144724348077462224818126376059694624337137366927001096067162745060355083067417643357740957222118313518617132160235533408197294348586628890329174012986772101704082231002985506353261942407814280461875795136480832521095589514822315619614734814737480618623857546734754503745068773545038752851048214009811520393513784077012883796577709040635358288146541580677966971363917204428373269557685728308908855466285839754153557602769610549963957617811817627996058815204672646231073922976671671441360802281358153266917444960625116363886197359489486399577887385140199623823344025157777290079601310032799495914035883870334401068714970920369717357988804313344999001642349026839830311159973638531739346881988611021623978948236849469459477165146399791634406852718580573772966851696375413097531740621597870293863881036370981903589968946382790622277188785514938859428301794646796758822694060810939121915821802267250721549359772067458190107474193068610765761139504468912680165970364881305620814211501157732632617215130659451375205037972640319130579511733089795507380810412140392998970706435182694585610122346162360565346042043547913066832753579881918398417846491903495545369008064938819608155705534254230044915266704886058216421819309331053035757313893185702266346942801444813269080546400422261893089155062973415869407763131664496379407715058095825218554202563149828563852323249932352576649459889269428350108146561094154550178500790167235476408348992773034481935354963314704171804787731148203279295908326849017039271477873546138054903106129108314631390446512456177515884765174339680200736021278716647563689198710024820610069729001615282363773895240793741343653333244172344049692294078176891888343883302386607851811615640017811389715904717310018282873132274157947184413321780696048031286563434867041797743385287499688947840567735336154523596611001159395478493624635721925069356300580966871229663398530852457100544324770582421741889706731967886746592069055940195115111425830331020460004018307687662720118497459344311495451222790532966232860844064949726813228200174194773425274533312273304415252423808555108124547245469757238092300879653661944359975312141054822045994598022788236638315646133323321710807952332264620475997378621751615089864048315878925563972824539359527750948806795533012856470236690606557262947875612196867669382329683908168753192356406159158333388384290743846147268013800294701804072207145887168627637480282821848974855879006207933116976803729576367602159633955004988092189197229241739939152225462775610696093953097691814780051011953497592950333903133726901835092913141214454047619675587192668368168273181920831667494354663632970222254582157048355218954656432468310065060777607909499292603317879348439188367911280642826967217985193311863944455291392550038716482066210966674787263040330825242685645719561997090089725209809859139585648139053366133189106467009115111768013463174273850479087127193887231408873579231190299629694223065004159520079358085203996814157983508204388206590919164026291574040146485144701034877835288674171118051503909392231839969374634839934333598284875857311649867030731715029245164753682829030676179219022948473344947184141305420311082789170248814239859739207005157881393544711765396592694501489433043864622498085383424090810987768632201394336612310859186113344487039100301911743862323305790975016877881685566527279023924416883297274941496484931438547449702216330788493623447261008435489327400576845261228487104303427146293375457619384683470551780010414409048089534388268553416184831687579229005993331710200771877843906855864679083788183349417174725458564665783933363762140279362073202548851529733734507117939762953202421525678753710466905483440126731705794962560757368603871494736107995359711879160024491720903022440380332490426772218201111161328967086710701720471094834127731113050486358431614761128577778259634811364894300058165128335811898651871595671467498451043837229484516625547634372151575512885917234612719456483315519997587110851922384640522970504438985083785042167297693838316844000719706618209520360294023124207928619467250457107507080149908850793748167096553014708676052303259295966460888969883026445774417210292927661297199914608580589617437876928711015760923283686131554259179599385339269768151214281678430428194013417203651002684781522288595657241292531783334238722358583020208315982396812579573308178856946873185950654945302062893773873278035566447312703316900262882525983297226050693319742000479500830730899277599833394127745828082988257911588490091877790562263475367335038445536027973858107909428537986645636497815626834365420998793713910306620109157128717804508491180961322256849225110124027871414031155030111584462261635282430172146192352658264101328768733948250306277052208206801304423112998656111763817724155467930848273446377197465151199960514649681170997899020698941819849599650887598285183045951717144180144643136722427614362828872126427087939373293971374700913478180300128109196422773033355202554234201647127704212409969534824991563920091633283404242610740650666684791599246848511111081971506261882666246501324767363682614117297176343586108035562298169707434622946561156163085620004191848441889836125578015402135851374371665716384813053882218692366695522094097637542491772807036653899818349342159600635322675632574435682608602250993867944933684793330549401927427509784939758752993780416954450658294189008780329601711698831990710028041297852754415144430855780012044739430462470175843702424047904128891910121464210406871086870055080762663689336774963009939601460262909890539801808896457181665228309416775327823199163291771428329814878282408731988756951789908894867418164856726422770392206628368786845030305213607619756086407264721186699534429762040756609738391468708777649795082419570043686713511314126237561150386066443049484007810570139235289522554431237908407074384071698846226149182201415347418792774956724990676048581852568081584723154716532008076093205045188128868379904079089579428054912579991770658833033967592412725107761828272927490022576807773088119968927427415345404496702822841950064064446456870314420253618264938947121526683223016212294871528660795067582063411626441103348111448371923051178146027105829403577071236909700553511437103783976722135888458534747068586506980899884632412721710389578295795634877730057044187050552438778004476141961845092052126573315947240359428996069776950416942175683288893137734637237709906074150423860717423357978300808696209160722949140273689848932309765984178257896764858432509682567878972764459800577030896096263806573598734807380224246004570588534208807431167233902095563803449859562789505228098903393799207716781406075198394744423220705720313773688745709869874229767871251721351333248149631234511728538854430066809322788526729733963872003082437794834206082690485197888828943694772064707601418707941751368665145239460896497744695755854444458886502298576689202302864942748466918999490959474323224536200889985355878878194470307046600262899293814227017070076442479204897494388538099322948611421203202309855434512016816097027478391773016046812955276730553561157561263470386282054488706303443366385650312009359447697360330868262960989284133620509162300481215538200595743292019842901247548520109637078554858384661565955746209035073703495641442236410951592231286469474887375453950311450710849087998309532144926421158487121722265883568688484395649401574471133203780051003070601046383508875497766889045405402721210646560917320469374336336654792382523363540572325046101484897499701127611260770053049215554094490842946660073740667312722210172783790086421903561640064527734668626814777625643437930959653283027311073487976115476802734682232684409670921661833688185266368425328708726643109491935937020907337202529301697757803254236162631846217904152026527109875253507340485064260423165739267989682230876863761091128440861738436210473242523259088181873071351972856707626111334319478381566059648290204097172336711689007369095504476150308367707636010598087784951403193999195429725010586505696355071516998138288506211322575605896058965709452543822661197167924521351541762182852470484603111427424797431205373776660379734928380622234733986350035900735140475611748852902904046878441388637156875724891621873285901982076497178975331583009943113938197338669834573377576024257274606539542429841505496168503337256836932457179788803405033571680880236787635857682152064955844217195380248900663340732113613584388817704570705462243249689715660689852745724572941365097623307325550292561089890923823652868240107471751855593078085225205255694452876033234044249897105728491510177426953547597368575718970338500964542282156793139717339373727396734627617736479338641668440213258904305678938288840512207511900918080139555966990704309727145644055994240984854596117103330867249267529616832363258965597343740760522504490527411084604549407084438977921100739471845617528856945313025875612040079202874981358820347968899028872298232082052153719304568507297649779080791286765209585904918883666976733235500459218907681286680565576803348228875461319745354984524721999489522544908390577651440689466230676707761078611896928307038676390035529224372965180698711448134012052518241586891327863567608073575340397461039617697881128198517955268530859751552428046851545425515162613542260597217188151230910925697147368762343150362019191589205574886596492479222384831508898427475919802267954004538614418400523880941567900218054314686756205304983075719458417846347104922557817297238223738778223795470726914309650808272069128183024845493408475376453221418829329249250518520424273433251732990460283123411179592941689117790824034991045603175307361923945656209045487347197820157760755170639465166523636127018182324275344355600704199982928392176319688875730245314839276619949205933094045748514168558736309842215308781929339427778519492481674019336538484960376274786528588266803476782544489478385157066707183830958955972410348728493250307789736803864557630919283458748683536280217901971746242918531259710601714303132767277964330440590465712927542788677855827459714223201754792524319664422645444182682838713746197152177084295596044232485798548553197142138353156432195144512038087623418793202879798321619545278745486965755219281116233856115648139560774051722146441728755305293713265020802196496314408542545334878001913399524468619504030200728497247083698453862785901865481457568522615908408575890954410639946734656112466593479620492461441995829072568445764945275383699376949407320975668876032852101855009773726974587854120644910698680641522177095165692836363501317856992958855835489029443634290546714127132290466287404224202879973210868135774581368296776042321840487180290034893974438539835745252682567619353501842343321634365243825182717879990321457772756159206603477370150567175478530303148466755704676576560223509976964313471307646670061740267821300574106452715535603212823569005127501884564742042147435378105522469248012627694719556119073758989228415794926871600192503393498640939148282779156569762627492326662905174157130893744424359479674389488258281700139638820693954446572548540198166185402880178517408334629509290145625324735587037605424108291174524899330042865812717320517867430804874871249171290905334650093167088557640322205787393066627473916538679509713382286069593593192354566804579672919818974485027563561422319152009879331450480394666245584978883042372456053641285711822825002363767599666196634355172238590634770400870085162631337130551175254281263947088949664474294859596259296617735632526417173037687914758081887206079946001005744552475176368907181041761080317151964720955511127833233544404434461894780858217055502289896876101488207133005829246478078124143082444152933554671653067398345324340377040824865596620777788466270785667067229514154758800253699672264684171607198548470822073179236154286966775922197860054552980185577264102738730197999003504230014829681817552737964901159681355041832667360580706675376766776242556831273470020663472824781722225388781954240173292150228216228217605448960851009438574427247278139551167810525705537791535618566137076028367324207774081134290392443505647204200864685461883324390061732239794903973937315064460151058265532573287036486995439045657729292490681938031045536257959775717865454528135124998542655520747465602423304612821133967343892973033734968974240098397578728081515396783867250127751811291897217548543482833034619516634196931873498022067327215782837331728744413010309145617122806265394130939210157068926948601092672555718991337297705993587998646810560236140091789556405720651219186811516050706236115565460569992537731386084679231676793428659188078148984643597878776207426813666566437993093228657318806662424855322824577001980486204326606275979412930582629397439253283735027199502338322482144947348359297716302727419449322550972931945912055657740651700038099682294690537790404444427092883155696728805351866452954862031560005889907385580611150702444880634554997110501429030490236971758642583948041067650067884334502690302054645094653160021298765115883064853467579833671246621239637681592148215723285391851915621792820565957914642386188991986295351976360483144695746567477946437935491497666122659453502102710055514790138111845791676618689450791250292395465962445797957509253122595693601102610503286880352454410743837124861429509005463284042583931828955149043336048473146971207154230370558126665978362158308784649533911658660739207664389976748439579128038250043370587423705790206223646638788155880576667283822489981154602336206133605981017412442660280137281052986409380567380197434267581684174554634655949131996649721555115806445892016471007966773242105387046886168542670868353369384501800232402265974632145066228201301248791549371092991408648279422262686607302178796086921013781010580013552890631359512331524443941469054700876743621238729969541802217509295398598469251944033812190674823482356483946791790063808890248366795897595039652051523508107483460110188074358002241633090769761830191254125541843964106871517371652491447064672535480701847244652262994487145143266636265545528036673560867527375290985484306925230605380904488925393398896775818724611429709609279505751298471551574825744846406294581604663329708714794205440074959099873284166019004802315123881424429271826257283383929586896682616031810176726546351291119877202785401304017445555355552237673199683227163614465462764414586808024283650865941436300649021949215695871180770096221021067016647339375551505981545497548085872598896173791371857650678293588697937085504923008501108732828810051077701005516738728479054945225873894703752004928049161494802766173553450581532856181302219335606784363891714456257568077322857054036011964716670297098064813832217316922477899816322100261556430472706332724799850199950013864717742425159213459231255643490459363742865834260686460197181837573646756654859503954456069306201722807927725626171917558494826308205137457065746929750832395660807028524216640726725470904757211919951726070775382352979627675889328557303409746605812184120114575276192466142710612398294099941200696278998371156979507283348784514842389142237780696693626533354166223256015258831028166272853318468855891809798798180965578388812155419707539250966748699785354421515524654740276931489813166629492598939136257704909590393184082398469520138058659177941598773321708208828609683288687315849579293239548895363793494503527012379948387274697696280240127418696117685385517568983507539679386976825949266013547900328345117354502478973655526657325903429336427577690851296908348162810150686015799046364055485827561714495932848918238837835194335121963614125918439278479842048081834990671700534825003770332047272369875962997044842064026142050854072869533898389143092317618736850686582544218682195187208398779138573284566598082286090922127176884452165065746658461886441082198492749081372418964145078024197115576341170545992097666814439031964168296695428395523594834437632843530918981452222571099108113601711984996541760455258940398324506896662889764001086303625166308131149231422530251984018296475426542626782481592995604624172989073326956225946894705033341175063362812346178741980222761206365981961670968207061331602264689979531561389911512487014112865189384219043430931201718392497995374056401473410164335350933145737123382577513701331097026848876211771296464408492722565843708858185707982101498979773546749553223151889183074535334940659364056479458049250825553861935996680562091118651753695947535989749247234064554529189651986197875942237648351734348692117247445701368992654235199525461089268834902299874501281887958543384512275631866208690308871041400710394200798448015315515478249158896467008808253982292557918959130474165654193343804753309855398590245183546315534060232508163271987551969057108471280037555933441599649662159098597625369283840297533807095800045110029218868920793862026977563811091747505516211471864825111467374559703482466534179413164930719876935012027597798290254538989685998642335571397269079158063136468124456897084596127979072667043945004874598964616991958222463986083330224079548328779262259862884640777776422795605904568685642043257529719884488987642925688433719125324807172972442613311326135075827336768138650156372776260018043064969064555298444586633815917312933884921694772171693508179298283028849666643370820873838462591327131025226245312295606906298704264200105104813737333929990005232339433479260988405746501325874276583049272374789344284251583248722200575216936969534127271670026897696724262539332916342899624475034041212019011415928777188652594511906401908388794604911460571443874863034082344191716693391395885316729812995499200949422691258541434315112981314417868284934259454161613595247541451104703999008083003948899973336452818983803815238347930728316629848173859057478808706047270651961693861303467774078193552040301900219421933111021277023953763415037437687465576476919370182115739238836679076958716502034029048747262604454013627325441113588306858771310727021663012387863638318631784455398654052407854915543875032552511327958010907170599024419023526106816791542277984148922546647790549389561654910409189710045793528475107398544139470533083191609725219689337806247972992226721380468736261260809037932579917214973712162720883033298786326439348893808365460665298733357632600390291662366780617511944754128670682132616848697964087136721535217329120785511052152038970089410748410753643593589954752793563239983492544512944817513759359855667717178655488245655877165596384789797591882169157987166206701069512099151317753469915652473601384731799074176639534518193882616582995985479657769855030294570633827334801302112375791146334834768209910715377287896666988851044220938284904812870628067343621648103169217713545194086402885799405924027764294589554873669189428883219898213513229676688472240065012527801717255177223173603945811488918530197509415660835804253670431162783835399422855783994510228676732992196479748429492608492279106378818037437635283199369485869818867279871928458482747959153226189856502196330591454571024866245310169242950978314951580744506520537415589047180807253319267598423929613088920484303564170412296863072636721634470885461521489888195525353916225716875970382735150968625365323658590469590619545615180267811900253105061979195745302522544614412948024595333268226712347555982144198922964658067409048128275460202220069434472645640972078608167601413070971970842492048499707131446563973720069687529869049644862830484274932221386079738440036102039312031981901289246569678701635970442365242133798658500972139930688322850382521834729207960878648556063498948845497074422141636945512991155478747100190568688641652618186117593725454265723842546893870524143665288287847007212066790812244576079206103736582170504877463526894034933401338830957324737486170813972962179692106211406536435218177985750528303024410084518244748621328183606996497821562513215990724100375729346563208308004390465530217197594760230054115241740002069934731041998396659647745669162618702739258534961154449543332601030700806464102626902446739207908086991983576253437665139579137935455959677051294496264325796538721125288959992616451349943515996931029231078593800856454501930756890115390881781798241141843287739236233633138245198434319659798025034859633439867154783742225875325681078048557965041936516277177152709392440716786951213611611327137886183840083817724061319879532067776123208886854681198464014136995782015570937301147857457423559856464113501900459841270550865469809223922041460860187886985324685216477874663749824322581309245787554176729880354964693690852545923177845367164702599146242000992662958927740071996252894690754214551327734051502979833649984273479206442094225931176640687365121267576235101103438129356164396638694550834884926450281771191706970900853252188054152191447817234845536431778114164569423796151398577379874225378715179297145433781477680858687760068436643240000858608495864110630271690444812036719779100330180691492449294225006901268575172086751480390323259851254818212078463424143015569231370763118908438267862409000081072422981832737179949434687893194865775901797292065026304684751510782404213413209213173141790574341208894736084094894355097433481812956892812825711782579587597206353884416718959328266929966328243519810681612149014355703931181268806272640706416628905958035071658993844591167685632127314656003680238670283077072411565031327208986977306665154701416730228924289910872617630163117136175213734634614964696554467355147415389385324660030925626836999795346520052615566590728078615016554862599995900281986502426520280538127657042231308650767203717735199518061510944729480862607515348922339647458205087498005836609901169917568380754606545852576089799728623062701560851030384233890153220283676195722226942663017262315705850773231569826004658702316502716664673686061462851336024922182305414330404047738784944943093416109837190627119550907833616555792087997946034934337847894108748115578414655989108647243838853082708181060901998057755060883736062712441893108708461622491541232117032837953338773069669606406323687956516756769219004288578425483288196918694498004118331617544854717038103094645759669449856740158683118681311364103213398173291988654403386713702873116003104325223812471942306645983246464332306046903473135532050373829393402772292589902672776577732985019129350618531049636057663249018780661217833672696118211117259971248434505231296778930495284053117640188346035321721536343074089262984923516670488975106445490439894166646836711499914418089429500301439261701721227890090815844075487167723976725695852667086425783726040758953087241433975482767415963779476541331610808998048494405050973671360729057680857431713145734966641608229235362506790720724022939771293056146891636603344223890797883073253612836899917469588045804192064434506882996326886945895623568805264479638172624863003849969772692689109493119687233704880679271012227309514021465036998834551712926277183028777150256805998546917138168480538726293269851909551665433917725568282380362795548600175629897273130722961516165000291063583341136717485306152634753725125883005943912320721745832255344047612271124658583132155639244092444179796475942717525403907873751670211941617075243434859684382139548539358014733398877639687509020335302462219001943949307367169082517704246772250732135956892253487904434786887289957516612259189369380444033791457399768891544080269332165721905621035757450274497848547419494626342351229201211966569225430846064466353403866677799339077104854842803700803069405527850972016275510780087971312215252659616846989910560197790773570811336980095535549091229330596456609627019658507245702241929447742015413139621976949365064846042333052989745368339779692603565976594300580081131405273438237175068486627337973382582365963528903637202441086372529649429002665718314833352227823747920299308503707388362020999259325109222153549330742508587183287378218946278680216445758339258658738123082560100723718777169634868595291099990008858819256386720500571018864963410724517860721490289164892049575134990730465183913675271972701510435077034516423044555233441501359685977177629132022908953586871202302211446728675246862699227359955201800570370431486777963603931927321377329251667210949297644732176965964190513306671680122187497041561700140668558912786204794935213163893190052729139444458500916324852133812512139688679178712342253756615886102694687767917810653176512721602581088915006525931098399927615550562511606063041916627001632368781354376972303003887696228089453379345036880671869541072131208942262176846342256556864683621010138649440497451202577907064889998831862549927160408908552164659415030956247368033465337769003291200655398656280116363370455249046269660700315394957834902546874487456369970413928773491103387484654869924311729079489531397565523396692799323436281823478751320840538028208330663747273554478896393310178441695117610295199657536015191090428914886837857032855763512822241917327676273879591552611972578994810314589304037915707844852427506350055640266615230094186985096836819584425851203009353990597813065173890788750043484632308428201632296968571961888058893655845452011180396586524659730049569933406774966595007895528157086536575615445118013761373358824647516657877029388073275085946270866868366611133926534858038274814135439961560931618382848810517878246726266024135325469018118060569818507916639171139128670802829529471140162882435064864043488154757169432420604889101639156832281857862142397528361295512088140330685804720594505395084512611262946114684922471334226085493570609138416628499245306350613530257728450792662227203436163714785588396867682753571229308082307200751615346831062713549699788088029194507680736053369754191575163350862043784127613537822022900715560306830374504966667743522954874011645856734983013094185520250035108198752554567644640109317965217392043001560579706739188306163881012139019834093130725951962134208392213515041433362725963577706217526148561974233487508071672169816347947629578530481588825969184091694055037690149143496895770131062089861726066834763586971527175770959724301563817771066201157155450642182921903534669929404747823797817547478457446401820353295540943680934087296366783479561591124720373311345147509889073812442834680306512984425968066094024168455951512743823801059635162400734841438350599138549534167046060449732146224906367188377335957544844611716025782402651475628116027147991504257920342974441107530401773762759309571972480978304380309764337482089845363363138079044345248225494233039078608460029922325525102671110500231417419521787663618848305721047934897954757004613863845866169957722066281724932247181806362353635299211407479851640628300723957581227626211350520926315668963581045745486181614257994226673297494305462932291419175115283335268030524092023555753389251517157348962602406394998177521205021550316661608104669378253967019851977550704922456011747350023336440649492045951226648713835121698529034520427922354339288167716303934787333821962673023692448416290462513434188884275878816654300993262162877149843807088075111085740810660633941917658104983260940964333455954164903383267132399191628310309779468590997559297116548583765488256048266278784797887478625460591942645970604594342274748144602825087030241988566088054883908593062108702422952703225670930851163756941150212246157901167457004924476201614788497612640333684738597363043050083247091191601179369972049794539083363177598545923295334473215139256620060896198166708881949718869279638994083576972210261210755186152713832041694548823941378216403995816536254948104276662182448391466434256355037640420383586442636083814113104803818383045430593602849407614172653716069159925144496062000640570494473548008979216974177664123999753465970651301830826362759928767293930461702783151243672238320336264490562447326245911230605239925236382663257037350850083060397390638838079881803940571518683101509716234857538489559763745085431643034488837703457952204096697168743966844939608990099622692397961922881901130462378495763093021532364137266998924593797620315225831707896384069484035188840069979588634601714378365437963759359310628604477960887531740462540107546498501535893611882810441159633271612749512614059508077354719049834403050766109018143377250396074045253082649942223478975418740663611356082914665167341797009035033750674314062353169031159468404238530900323289376445990309252780557063146285409410802565012323782629721476759228450550521918687311963397418644308444618705615388638250302087120735643069643793473891601731085376047432204946211740084355284394385609934782249450169280993543053458856882865794629142172063247737114910064618380945611962457245171245855245402620802962611914840616798647853117501487344897274736915662873966990273558136141147145390461715603190702709348619671151677218768565664087662563695273794081799232562481809362535683755560200143540581547269621954287288430726663831395803951491377214996202743550630835795236011737488736697365674770542681339147160489774830222529207704341950897175149051147020905446605357481250246756568138381496215947169294774570023959577543323552079405227108531899041235842124817654986708685809375369018283872460502875037247759724820617021015882487776944589970110760517712364339369301071204629614729583080147748446573682058062581119219104833730660013305418931995086866195935817509303652409707013557434963078011717609732112768971681106140654416882346540259300828776603045345073618900189435188649530302287668104385456347938860271305170690843196296583288510152001509712942604740747442309725395864067148711690252436347687917385056625809892808624897409763316876978163548138510333114003316873000901154546599805146719171835003544504680748081663429779067550040073601954573620054431157747399998143621498952748986283205807393352652292702754213063311130303029679194170991937516370973312458009448700657895636289856182371877746472986479833131150661139836488746261777886486432567268155112048651816611979594584643435641837659531730071321055229560969001640592207973696110977050405735226856726717725489375562606305223854852864989383624871559985584503927821854619896025084005840711458373409912795406720800696154271996512260793183127490753713823191811102652101431003598173547238496212432159153649111397301631437513702954512319628535472897669883339567433005788395739192987541117650223870003277434063705820038797850162230761755820343808952480871401374890827463470527491535246384265951011035380118836523558918020283224636951166936628961007830617043055895632062129834244325087878967560248943037623129079428406482769790227399220566362839182169282073956593435701346433111095941569627876982959875006786470715181367209081268386114899719781338566463016826736445535285379803778885525116089230074088280425440852849449319044760636052521351693012749641714056095723460137965966133187232417670967248292777234333676545892717655807480363436948841506590116919580529279039448553422167890878563088262882239366976084673402533093364956505099050771040735772236348130108287221111309432343322620088415823810070428291099778562251831892460247805046489626882944548868962625054164335831843443909055054814323093376763780669989122379844358218775233925089764304793577374657483770984102775985801649333650127776039632599436217924079429120159434806437211228079850937709088376591745398085336979558026993259798613259866575067322780950991427977440590477290522430180006633428691082763932568495445060248921099696146668674615969745224700358848706490493505035323114848069148367602610778167165660002227982120025988084239444904094379382548424778299251357366189852151170779124899784051248557555881995923680718898499983163628716064056688839740308585825357652992977524479338032531886062433650967714413263132855981253144704447830494163082093111416788137251516931731534091111803601279156144113661440179300960735559580603590497850080491077692818347928724085791105603996103102122821919985124779599981162531284721961469962614656137354526049889801969430919369020852648753984829467288246437697713003887999518416649915555012366760695355636748278818920508539975203036645703432738895016385102739260546517718570008649758842145690290800629004770140594624638651357593372856516447728850773632116066654215685096487071075491421815343705002782747659249387393795446180812550301367197438308247023025544949064654007704352483033826820083083804546806335700665479223898296265057336007703945889349022057195513778945325414021821875394962504592764655143750487021275020824951868038440112324789658560251654933764279225613781568731687504243052617484413488656269123667008844643180031269531529585428313609686777883397837721085177123357735326728289468633492796037916745880359823856655698677476180573869662733379815086650237316209157126077126742037857949182435805669805518883989094081886085814463299225960436660756925261709080647196280832317417665355665265461688689025434008841926184206685858388001623730748414583640729250391199231364696538349451593424507577016589188800078521823391503495730778981500154331848684804448070015157268422618611270153489932553632075337124313028702995444768826066174318145192316138799791051366295610329926534872141158719742703687296493398969487939396527778718836635710773534638543141117036965830064444890732018913143148022050965322435043619859960249905673719360073137485848859999899838846952568257119654740226475456360000510848342282038490505742348221620445650783688763692387479236935611280268449236791461696773204462814219634097953328068257060769613183648197169189824348238511067256866678097890233491930545762892347987946722523723666469802305011669865639654149222880554541207188494683168173388975285722750154997713162160769229162632396602946885596721930826093610311224463718534134101492553258198902662284084832995184044833148305298112730798975142424435956530211212318959420940729361750039022948014894897373841443115209575930719952405237605153403524469498445499078744894175342157845375141977568184617700862619080870335702503150641070099963522777308335858176635831537620277193663783737159400716368502612626917236803972304406751188989386615973312636438867865787733547706209321767655654971777498325425939941864643137151592921324246634611828010237357617436326926948274486692985132729965581739457676823667575795878959097769522408224897484299956455422004079893496342277181226692937790181680962598847899102665258817385896228269397720808058051606516015473298415995907995362610238010801588454659573038911447508095434686006152085326588329184750185614101179223913091394998763648292072073778571264269301422634451960785683169247728333298646375720203458552420983391324841124059849900333963200786020706916310662297877849539831608253817508654585348750751918481565373705143160546882310808965975357910845278425895953272802310671873719397446344674164290074258309892576317495243817761296563048388207434800170075503370786369817276549067260800532948264202296848084630285391386972215644208533545405348082200377936498037964576127644520662925592177278465998205588145070802139816454522980629175353562093513187945662889917753496106309108907833818170053436348563750922962936142920535225638152548567125945053680317778139132210044407557847586648131039765319657861149960554854281354607064962969677773812028318854913632115705780478147901356433006103495498967671388763884208785566649448171503296224900498402508549648825026421755320294872849546471134715272491879074057796604843902577775348983433635745795061664703862003833825779682439996558131175252675171376062773983356491918370983856969003730096316871458195516510730480861081224679806870412446581883830834995069586686788065867866204599071391612058692021109840958609039414229106820765523952714908575382025311960071221560059496636809714507673084229150747251101221356393306617906884732391212713109738793984888470649421879357662774870887669612949901321179267751277556919503068956134009097796959622206041783613687169962998495627062160898592316638531519981576008674040218463808454762556520985023791550113125931777524829052590995098087404378429325964383594523378653980428613947250484206333326429450004546923410802481913455694602559336485696959794004767460691381037986661083545201448923564124692832522670708363152052478243024243810710545340366853582895486315431014958537971194294495372821660566500297662285722194720157225437871283407878430366185381877297630623382357634388096494814654580061400279505643354883280076402684683921579089011574829211985974548575386919236305519208029937417448269309976931074174329392950137291694361781235359004052026946214554208463763193317322988859055914850486271531625588286593594807047486464932685665874563373343344989704225444359279099902046900110912696123443321580132365984460542814027428637678485409391102190959780832150348555174324903624247968798849688441773501193939722868442333042041454500389886260813848566447830488133713695769830293095887352613235439170911592744580456674849702950576015483404028158302836440093375898643000465716779133012648380376584536879174573376179462500471512399718201862664641114072115687389397797566074062632888289846206850027196792513481200940796810443216601931183278376606810694203594062608202349692432019987352373135797940278343203045794635618728009904790298419283752178294258905991248882922995741976691139523049147766064330506745338286388055368807639337711124428767844403333176950093882091138944936512339024962897820608975123926415983536588340366410005053641961788193865621103194861593096795747261615662775523162550165513928527299389350111096817130130704673159435720810141033279851797663182401098796457690099252214573000691338999498893131323387740754758173343607145944877857490152773431343450465768190461641232827110406103392930443389057690439773615466683721904320648209883284581997426298685556206364151407982323596233865110294469111459622994793097232372829798257096578770154089316205830918233819586097219269141052676458558234981251161695883540319389481705653601844198971444746043391130255330802281041027972224991180454302089223286530388289777321562900688712005416169727465807604588825733032505671278429497965668862362334660299256369046786157747854237313272493542091399368083202316628667541649899163291714011705592129570169025035420239332997727825273768687330937221328269425433207897096195077194549715494354431358522537679186681399396080824074721610461509957803588731194865446826180647160185817444937233379788022866761703230416558239720412723508958033157679924974603964612314598829838114244492139691215973187265964533868312178878915458396133166313597879641057917305670047423662347083003939655005027033098034223955255757682224716760147503087657996521905484837164332035968403678825375806228843671227536625558319691561734687474065972149349463027767487243718122164985488838417096146217600998479137343256192941342707499281145372988544495592640593356581664646604451716831250286164381428296499435892476001744818961107646184662762359879903358886770397983150561650653538485434613894103009899092933182640552934312229216724935387879829985647609886414008852805825210596221750282437321373591222220538292659149461959372971118393849039797569177878016805492743539105841768760749648999703300694578156379054881876929783091588802980198287345293167159346165733517599284388762933466728748076608205897390479767166266331470691276926953381504979811813835961909122026558922951109540167718303618884708738367226160352796517169449735694337886286973690953389218641240553397750565076582715392409842321796909119001949805694270898483103301800428936408175713431035303329281194161556351110786310469584227650752253673622054762041966917136451590214617021465328253909296230086837737223339892454664411949343013809345284989820594139237878057389319345027665153008312400206988933726028043810580417340819382352138924407111815029000775675662124472188682552081550802175173630240568721640021280231799542917409112435390004565524680309952799669526729629794225518331473416552895605553577271758984724751914852311544631203857658972296275904296766055597773179940829158475033666294852212167115801326406542566662143769904485880213074192351152849722727798615732452476166302199746731396549785276209872778613096929552030283826988494460650670698119152184664247927149194577265590738130812202859393091288629171986998152003992068007558914949654724742604174472102950025349806272136750482337608922500481180285870763429502003394535066322023787746818071686943996803653603580513669850814969147943158291544621035632706113546405585301174771136522306148645811321721941571649799690076675370271525084017712215043181256638016541120973392833962116881823985415288278999526726424835815955043703165068809407597062417161544168591828407990240502442190618880736735228655408796564233023695554353217663898737049974078583833130325974288704059945374553787878396248819051193447045359570395500411234381695338463559147782870320754642369322613889268658999007438063034089386725540497781203243830426900105752283141625856008369105843472239655966252703928717052498013640260558631312969938279569526455279072025782388650141583483988284443777521037784543115695328027316843776143994445765901901926071705491142837790414916605002579957951451768546685775935057696262954845427118596975356009002404518634623920134598071193352496882650486374156527424219909995705872098522233508066939864314150416689772509746351682538390549220790712562982202171112947718640038768985276115796964611439679324313869318036567978841826429876104953024566442535835309744698559046746311795816775700893122239383954607503678727048167750062093022937682334627251546490147645520079225942971429013264784667450986301272616395486458119760687827617367119224591091226946244378986513848712430746246468412539041581428888338995842714797183267890310625458643694720316219538292521811222923953883596871750235612210256989497208272454608511179470666999316444917691307903669661768342612128514275029684788597042233136071623918307242208166441154177390086889893643236957939012678883849018417979709312409236026184550788838590429256352867186219568262552840264064149239446547307883058591801524147885476040625960713990914274733275321695989428800274681836212031544577049183763586469615448222810393353179904235254904548648370311823378706448995093292939696933188160241973337780449392110443373584296738594175942643464343302338198115239512209713101701527592476071180553905342964853186097070395667060634475807928737307274060203567638437969772804139859878245749165250932982784421792413878522337414850370606686918374261259131856491656725595125582145484493551830221405115271676700023872262080952521526657112000407071151118088190283509005620284501131848635822309460931291517232266469828976936253349813669585518102610113990917967089477004133325302252290517729182188556353088462566094345261353042728285538653587264114422900303598665158866725902250755864996047171410517189879284220071304305679919080700966389846749943042074455893349249680029075360260206524912041033458897894023041952805005370037675661895159329019717250750152491893309731723256959419967419972920473665820605804738134377867356620802250332963540430531765691624559514500799083661446892842414766091533081163577767476660319353639487047513862045725040940270484655835096271895088534211880960581574944938128621946205508269197282709860576455599029745689941691020059772029552614737867378339594944250713098245066600108504124193755850910072034759838294136495446164343979045613559581359801772654648187263146310051844978725169790067281128540616414547552122073351449977785153620659237429837150448492783131192026986620390784385436358664949309818474724069782159456821348238938094915273551473267610781853605226438202902661710381518911968645296823324010261871918189736546231470961716158948905269748867675254515360752596180465093580785015001981945594118142857376763477695184676147304041098638092216722993583963756976182024662632008769812701571945164370597893408210866106684596056354958821499523615462663140419627811694632154619022856541721731539704802620430741774655149451757599402876153810796576019377856965533063432421062874644669106635456089939510646211560674048447905856578919970227961115738146624511923752583533044660559423193961511843501299392091795015310000845517715472289804516411673315939988762723553696020590237171410342265445600229783426023731714883971070405198784032659574070126941686080415011617389380734175579122013832466050636960735201930948192216255635301460660982199680667911830971025158234006237655790669122618219672011613719988135209746939892726659914455969901917458400840328265265033452972644652032146527901222696072116972464637035015024337255819122693096692381162185033188396271358052744373010423523910503929849333693237159140675973190602347325050573223588857267437446316078233118558405906432249651572919223155605999247290317052593909330215945891156818358381242450610857304145573298375409869462799577607014359207874263068026360625141370430875543773397323819299733075461333989025577466017264228544776754842076380872859065159501816408694445457802440606821864682950162095222917541026928317343257507871602045705570577601675523398697546411337381276378372332369299027867758024559425043521959982851327205633388445011980248877068174024335814594007154230145493625840392664080000812989009419748899306066805292805800566752060546395129759285355170362128042619810014288502996336555154728685221210860886795995469059521218571143376140137343636217601562584989435770818905063448238582771627883232131340172555453812503739390779679601546432541443219900766181516210623381024919613445827240169764601092358285986530936979995008135835971003535769969794804054710812514465681059059112415630118293000026349751504533568052840102395233688931719070338736701052744349863486966057444329363281106484052276593132598283119613175493988828773542444335230141454025741846198176981938425272714567311399037935647665858290512909880276925383880301632136250691953055854602172065260823074392605046884932528108768368611708845167137693151034939380798638405984151015572982324487253617175861228281267338177711350964869582030003200427769695585959268616974288098856839336214445673251964080811977186934246116414410750739393725241594333084250037606932212146155722555311160444099022137151944637474274814171989106863380305807238299753217324667001727247876876277358220749387833873020732776126950213949181463273629931303999735486720128278878070317955189537168030627950420396636511121184193082215148613752294440512767935957910088066247896156487671297321136272181540347786533241132260356792283247649643496382633124890397082359069030603265412468039993244791292783482513747594618814759191790767101961200337844785932579604935337636241342056329836933923626938390314519618259914549533206492864604153828060906170530656926906007770249201965386643553217489831111609843620388736215400740602450325365085298928868304798231879114588250842277931986490323018123773951870485167326157968360620255183561458569453865920538124647064833621011828805532669401179101553771001706051648095215803713506184978510346763454804724060680763370560013916799576622959558240804252958515580072281712802675943133928910618019659038156037019802626507116146027659017720413491981300378482852158839846898015166495736640022547421572903212750236758522969016088207462153029770328499127783292534761139457044011308700367309447396601051095191930519677723140566348119047044120559247364336803995863040497971534457531869425405362537650754343594096344397404404255906015276777947087212518047659717263051988759588777145868869979161497674167180254947836855081758246370168981762582701491873317857936890730915794332845745767872182358237466932439331867501139383632026218181064659208963504234438896380004174364975841917853299746958923460153189638787952709999568394134143391515932080474806144983718061105013586332796068834327213293631076744830197917665295380750130614617250362345664383502205816354547662765025964450136674401150142104311174742184169877820756880258362319120127851344742371882198188304124581506771809812552207353966802443731740207436221551993840523273305671772942952648691201897597376598109839696364740455268636964526289292459991876919096292582968175079158829010557092010538116411993286932380769179039487540302806056853664755335658394088616188573083622988371675861730647603951616203205026157833093387875157343399935457440228425239252674294764713997261194997191710047760106119013153825859347206732323131390139373596785085266497041704291089629056110388672875628924747361833038496862266405712227970441609019567538258952596339806152366048558575492666438745711157757404638852167430819571509006267556884316724588989807114384098644635427335480815667895906616797627382037632050344091365667549969120404772460508972136334467803646899899860356996955586634560137834259429328034832369953500601994295871280683882572541563575966821716262456919454757641163338346554998891126837645225281476886775714875587928527961580979842740829529540144164224395061514800422031781682297021104983535352355549954706365532895357983528079926429469626793190486128012633795118403242159323743312437902637232743530019747740220561518942980815017362858647350257789153193226386193247589787375959460959000856528395063952883952898378517762809544530631786141044763387782892610044794676457013861114074414907642311015947026367529596130689974970333618398582407490258493133095337523851788648621208171300193821629588366823555191442466429065052659947341449659500015335817256302716706810742501752349883576253115099058364722588130345697494574241955936422341750629204680143775046207867350798815423318189883888871648275090827256099703346861733189340456328697455931849382321700974712936322604600137171158538805333855520225434865957064438377965744490354924931755871440030460499795366996932752862307885374582536459545064505961420241795582641745953262706235052039626932285269240859949333362384146809779984040812280697598105463282089510305717619949129177273774381546121391168372138067692559189053329061544542995929012580104559681262246530029442391679928259517353538402815218334566339547240518766815678552428984201250660541939381629516199513858316781557517093426087558412632844340655803979350878902726947027683470762561337762176469926205754368595495328806787813570186345154818278258807368670221490564045220302296246367829879267591878483306476532361834064019169670558262589873386190223408640533721793500120015744939302634113669886035290928229504450877591511638730836983970652787613447852784532212789183062935651142940811930526576087717316975212333747365521370398151606775360090704914686140505918985115118546234913849852788187186986696042237631860778794779776973320121903483622126662913032189223404974520083402302773922251912854775364648022303985858896652309616207114229146790006876676258650364254290458346642671129658518749571825081188835667034962330960136488481890778469379883060659373088103212578990238710799780376902381518625770664714558693206244744166755208838458963084991125511469096219574917751980417421708026635921831926657277734808801166344859940027039214565760923772864501512338574046929582895420188891197033972845083482728959696882433128113367531640289050903788441307155665397507777817277682415683763272077733443568380731457046757216669118136472280709942896863159786693782145980105286627284638691272212413940322694015157234266706077568355808041567291801060472582327948557723612242999976813538144163767375846973410586660310665854216807441531552035491479303199246332763198266487726297585438805127920596338145575455974319265019757072571656604699853657703476223863728895829245310557489691301518026902179657024900473283458276289371672099145248024477848859100493250992623057352216234178304547959260262935579907442357745829553688661715363050956784987723818046980771346749391842238127931062059961572001395616886019776115237832291642703629823561260729648256465114449226902287109074687363286660297440400392709638372457435186781065785078006541113704976687027973207461664391793656546279704092185535049289155663019883017750817208146571392297725024664773722686315760873440199624946210320791808219955749301262038610012268005064602804241102902060559140932035708273070029795372409904954626413550421804175060575417156087417557277892706649368349024560687413515736827520145761620121204337065282662600890636077865922128488712509676247886995968211442896976496898291375279721775585439061968497847063424228703319950388246497768844705104933701800800803828771410274819093240181143777719458753231727800670665299946458863582727840128140672770924769972897659467688456348261398753867520479098419741293863475374108514164566974752609431478335758082491550956486193307886829661183752512024124239768693404571049473060325947926244470050067591939510072282399396883161234964008413034228485561041703459948583193906314948923307117119794654260247596866263221363146351192235440647340406378727705208486613788081594280240944542927660150286383968051007959948681400869580461001818782758656391224763182046657449584350650585330959742991206724696028474067508170581814354247660932875836084626598633561900432235930487022064445324051327763595282894990535220687338481905016086796933343851735507587250820391843134627914978879831314707660312238606689607613600463732687497101191215192356442737726494088918438859643505382023185832170669830708523909911763241582591486088541090560309285531061854342581061443031021222914082391859033525393966443714407935223278818022948969756604226612131728188118743001729181494766076936486872890562709996431068729857407030981592481140906054585276930781444676980623109568415048771476311385176584219810992985153656836616248426878616706090029973387952679022258636241234732489494801201566144125490998477060148495785539939567167812831752923305250123355513783509425327314181130002951735098412632922408261899654970553984926742503804403971799298828070839498192316474919627407927751100166545479404316303259887501871513156835409771449359768190763681190182738496171208039717976033314612929285441507985961947409874355663322052391697604472427353615548459206468324559031978103686696538825206175453315526647846618314905556337522897587974842432159118036036389324186417059593182894596942118410651971155676954900250211157809312423992829438445485167310402155564307932577234033136919874405764424796280291460727549763185419912264330103429824535833518358072476303406744369951678213637190300582172272138599135952979890596631884193994372317922267858716349709606061060058744949312027413315124223528466671540691394580449323453567997718900491782927939298638703643575079933960399719783942744314184492558723506174324115449063888520059231069467060810889095362555124943458081952434189935115712371600714636044050382092274687374087501125087896977678346799871786406667966174195972099496043213579658830433338724517296233687745021796170699058542214447421692334698552438542422731332281877057110398491984665603587926977441164266369976129533597321893216509500827396193992442174743832227997593091712157311740070354012527830460676341875812256356471619209080389956552904985366794238382202756684640246545061858656263898327130347020954620198757508591722064942560152159986528645143546527824922459428744070362787149213927370211843513865815124637952550465151269224234446089867390905073372938347721515124609813964749592666683808424829085559386414434334750146501297694620889913174766290670827166797798932834742511229172112638971415598264943376824674132143539111728266425291420972347582594608820321087460767013248272311209966160870295018026263532383768127293521318174642066130551400985018910189476587467257737966527043358230032792671141419643570906348800850856026476092153499541862040055018795180328807828770012577477572508426174118172257810013538613040134556220832251927123666509652717894836545871304778116641100756835069241954919821835585067871477553972250349044077473104062378034499031616336537428085548853014488239121059968793990372684813579930239021759279934617343003722001662439058728492359343145369103305136458093748214084065422201913247151751074873505427670329867910646781414949903796771322559080924411654645297910712274227787604750736402490604149069346317055877047837208802884801466950792862584329073748331642778091405610489780764138785972903691911236401325154320603655613033309619041206489102697494163724914723115818309535734689447052744561242080232309546471520232018438636643150400723185960351675555339416619030184681579067339556384308422967995068586279136902940957731127168298802606375586640517409357137572608325904127121270828353017143187184522655124178299839405426945712436675585018893166887558033019554254751064546339998996228302586257955065845044580431768878733837007898034955539574706724752801515603894212398158372768672962594533684734658378185874981684629746436838293176811377674373466209053561926705153588992491014104801973383820644829852736153104969194003662065161587640190316759000548925276774600269552895169256393413614690175488923126746093961853468582754045523573546500675100739348916637803160810717530848223336114099721807010947118050585378948441890828899540516125506432577270712231625005883707287890422448005316453285776140434858169347133424990816266266724876056879421962201686683245548829619337230128859656205702926336883795427210924035947929889144092232839692923081745471115530759254963969998170095491105492463528125578706156597185758313929687540981199369393576451198286795762629685386702570066635776529008422621221872012317585448992809317741923696820558986973618584381028062024853214552909246715118148292489645670912454888753680584733445872602449435370471826160241394765531142368245116919154725570487420361551660451591501467342412088375933385646389893280230423802458125034535514394802557961693278591143381720865304536241779139467647582218514846670086447739974904646163657350730466577670598558535745044124335886304104188282023473507888549958901506240139468017514973753792514465914385096439341104078927779368894557076939978025545617448069046871791060267327724036970511659755550255680507640777811366839222407440322039199703152495601227024622307428502564174850399758546293903077818272914858775702157964960249231536467783089946825146809220154708872862412532951234786410223860082345761570570841032442082912872296275511194283603274364356356332841017836540798367417921055455385218813674197421787009470988876699590928009416395718955750967838956684199046480341733201940046332359264876444383170189941537122427237250804214155903669528785975240752779171533705140485779844211775383043479460952744792854185192621543895222363898836211583167527748898352846143685305559456039009720554247889957653897919378410078745974813105488861418862593662280107544943067093690738326854810317990012297237881947037217705757059795258968091223844231579203586702176895523909051113007134360294973094179914768861530027209627482881828017452210472411313465844904809926834411618780453448830884250090472960315594247245150739331795153813544894434814005976600191924122457495302937708020815545947030572469601837593230755772794612888463392420718608732568304099810917613563805187086343684250853997833881609996681139625120645459564832489693336993636286825780494567184732653182378264447807258329988841055496599990733246889737783217386911758583485461735587871057092170688306190966458350891947857731251331161708879006561009896291619991694098174839995444523442131802840784478765766846980431990005335545287041753721920795055854763884037784931804818329431278555695098089013768542643718313667589323653313144769238900621285556463199239992727647438545648256752248463416204530472066440835010697906259072869751904441375157181885575845595800379386421068723631465228703021816180579030810903630490207117755165295472423532091356331063898904613064783743559183857714253960082780310801586090219199480250732143267640227274083429332284800532476423670964965727706284563347959621140964792472660601596191541934251300932567105155418791794505557884074835579916132817924594938117780372492871197674551489212142779966786945153842455388094745126533098704454678202888856819394230123413310926557259467392500161681200316364900187591361731468459262105211410518191864517275585940597875597000893698187944579815959137146824374957828603619080011392981114055091427875262110418997343498759572295992712765682332973166643703260931989089287918410132317030128809668055799087464220825187571776999618779687675576101581500890363813978006567160498225411403182088201436130895185139344842529662514996316094371222478232212659481971446350845412109819920567806165482268655903249769964704927722623249931415117033281235552062523239026969783575851433630225209870243775971567143720138576636332266837593598705565712168102747853095636558483663656594768848197753148091645178572433754337776552702440802386699437165945235655511197558035145721119609194911776257860390111924415488437307040229237418713490578198683141574427378001657326720022984351877796431725480133304194070992598353182545964257828516164578411781059486946777738638600823632125354787839970042782703835374127875003479782233125526093616848939682548001494885306621142434825032891198428406581527606870262212968661433101515547948367607579524822404899539333202057343123540189875765789264412645061687578262277481359450786657633665986750353846693081777068250599354996409836046993137151553505361439345532770581154956098194566196874498681859605093253493391701086369651574209811997926904809092619585430168546008522405953494297028708815086115247545430732215740996646079625394165870241153806374616815149739649333080166042750789943528354354789798826690259521438717932493838118465932970455120175696882275499224058756734109107248053144815540446588516436366531518055836493831204128101977881983149774459626380268808107488869545392091883080496758306747449151414141259479969647965799058065256890557861133167850173020165582122554663708180511733242412606732775865469136129833561215807569863136923085623344116746670013778624213921737472757956714438298609216235250225477323875800717691733502529054762990156779581010289764981496862924572388926321598000790671928126984033196760738936245500876357610652286667789238401963640429090729715465102336732727658369672568546050382975304560246537372350526499505609486927108652686298613705964893861213574658298068623014228847042077525907527945094309452483904398011888011757860117426889536942162911466306610506566523459954727393506735068463814510560544700466029987570626823908145776143898282398957553082363261178316560594733458898871957236292795807841688761515188099183602486470139609192896782982982500721471060787374467382535814034908665838879244608825141454629184543770552272735401651339463427670342292206563663179450683382790777493074235673878964073392432027266954140210990342748368024540435311552866346288796596197986682220237410642151527973831805963366532196552538084179408328370165995945062908065163244281574679520205697343408308038157246123709417701131426675911658244841080032581876240510466596845148766351682312999979493278022944591200639200529683266699114251727801489145943842247344754259163195597244505734170108366377760837552037235784757425416981491462376391363505405432110204800330053581991957949985231590731745884199005723026754211491515056687254346724932353276283547265442850103488939275272939563885510704214272672093099058129943379233494221838410801608558183378195596371321643038304756625300987035409076871072981818930213084074968219293678033424088001072586683652723987650937146796743864477515433817986928313043656724990464616197922933657821885537865852586030988230289883380268361628024166531945831894557999548756747805300379781932586596316311414512352698553812377697532668475248141804317428535017616758433324910125111488451754113112294551553797199528964949089449720972807074984160707413117090568125151252281923334412131236339975816290053838540880691464583366474533121235231736552881364730005672921099849420325891561288639384184525729408704599752338001503663390461936107260611122272145490166311994097689394262802427179231384675666544811604159358285325840977293599070790706260609743523114985700382367209225344843855901950728001260307114793471615934857556218145897786293621251163134499107768454609776491945239393996482285967541879302607931623918376330279796787810105468262601197178747875488597860391327567052117838637478935969816603231597481643266895939197936314232656783344254214207820110240285249441214855044747336876049822277790027692532034193524372593446929963408121058273054344339468005699119001278127781099338663072421739654099996417076328695941686124900093725027278796881051553777328594945443842138410428778762316481689577753690560419226436899844429305150169866481557776267415475140432932232938971055734487333204017393002814849812679351442955160555218964600054213842748443919121715100332858495497990585570929901221142961386224244531531558669872078817597665555857637808652899710937256785060109546380965673775911543585515767752703948692380200812044487972845513479044338110657278763427769022298696150747433512132407537873902652828203307996327666776496532803481084098139932677648043182801870363459421561585436274276844864907584560609268660378118977111358686737565629141890777986915427839137847984116134382873805331456219295421718607669063205280114832260733069451705942048712927137147003976966819311495443289247691584073159241464505410592113963236026923562403081910096155252511193702786683570801647739120549375639403405801862674031651731631154705020713789492026636136638704741395445789434730066492341485886285928850024830328902462563118751494011191667019876067209087322726575608047363718386074499754063369204418511289165874740151733185073338261316359597334132683584021912095799831112800921306231870153803027015955469003378980447105733308836361660965284911501476909290331841981585606999635330986466213000810282725603114101704766063466786022972735576651873493055155103248103112190691433573535359082683847228608908457140888624813211408749077657389163174282331910691884168982366288163304963198264314848333942132617797413727635227355316148632086589904802623156306871115147581764066623990546205116647979511288444465331866672840006954243028428788993768001450625646971367361129873905019608004138861742423031269393809914354771292707642798729735715640450960797757597413750002752758700385591302053217252434752086110175202183662959983842598463701790319915204262080407251266149010001602625822895650814311724373939624698010381558629533192690770926418682620599639632422027611561706773181814251733171259868405211222365666634471975933653095150687990687882263504661484165773770505598335507953293107621733331143606739654045926314320585571447847990582571061223915327063924953121825271629312678786042723684595222458046174719762642355069486816618759321948387362937582398151668373457210465959623572974989576145543011989024759303890073633592873977207193442244201075257659516896379965943492553179892028821308936736883125622480728882488632767170579879199943777659564255576953062675270560252940160515328586502643168825045273404149501737274384168716219346974271959253196143999333587219762983929892931156190841258077986508407305474118314668527027273843151860379826411270508897500335084456364255450692896491062999637837349808187792634713538792460968267060774087075128659582362665163676074141076723005338152834085973527259685773772090202931191164314696581540604935623205554769568869523366521704680113801514113250076001829782033515491804857533244754790621794309850374990129424991371242367817244774445722975257337504658269973847030934805641972531839085496184284035017352625241677243114483720027939250171244886138327561922171812064322670393561379839157603360872313328541875877331252611335602359779210837915214258096969344357621989220005761603073168609992152370887023297846843156455420492689795721434651581577148492060838790699603665948802888529063392159251469361834828790126282448914930004757153715479356078973088068426742465557823445459033407313370712639265928365713386533455631542951085127094554175379568475868482767997554599283155528562811069639210079581791128460391843660976690355313909399985268702646194736523742200862626331551999755716400367474241245329951489048963977755813888539203740698277335723330367590181432887331074065574714961597661230241380354490138532266530907869304467304679944937389598532740791375794288464478985913452089253966829820034607379832424532572012710168104058111503922380851942100975364306130292362487008788315767949593068225270645749279579555071659340810594261896683636830224575530548192148182046217355690607993829815051903422437566967435129405333593839711461497721413322630469381514102923688670115114928729316044240132874648081004730565504491954192620174203546745354502553124716835996939953719365369669837482768374165736970981486017788148625571871249695290335638169464881029921014911530899855990203085444214385899971126396254774969485330370907551011801490711853672236885256005138259461113276534522187425246599210388925565472055474248997806393918925036130520283603934773164251252260699719202378660396582471154218326450869699131879635153094174787910902588210077984014147012680130062708448669408834430742715258294078113549056431186266790116081580640083527031997020517580671683054483943518848022647804465042977052673097084531039455510951335638122619419456881517300528737995988182402576428110464307983907322729885529869016845872070267003869687624494761619215314565961046916696805287222126398742642679718138845339856888177445121465751833168560231640715638064176348557525245551938278509549666942749813875195328310858451058108579980941567532834788310892412369415996645456949753880565814992091935828660960920032990536020570225095272103079419337073766789136548364784286466211525401809247232816533799394255524317389636146258787276656751170838774453610821788318672304804855629649622962945161636540506253619450518059963137141648087726379123611861306488821321704756734656008380000988960666023349588439199474755718756206879593317678408339376904771595557641785278248854536078192666617510812511776327987866532870205331168481966007082247646463193870038516777451931738541426319005404033578797001191694928039673017146949741138906295164600035010140456937102748199094166499581285637236668618565882187867680642453690533286392662914612730230208621460555326966728275421867169578987931529802432464861035863780611285311676162893174750109865019877740516907310491112146802629840493983798812373801649834985139012008336033248551674561229972181064757469091301761062678683231355468076184427864496205347188129756855512514415079390885195388582493157461989741182006576362460237171947849546350425247870137376294976074308134089550551017098201088905681473247387206621731018273250860201893134214701829768615581972459629212818159555700541746558786454857610583094848625525690158519771117647380597972161790848750871960352268313823374822442224963441264681662991247662947460071876884211183017625546707184278520573505868435486084439322529801338688788419866918281556553919109562481489652262641296788979711894404280428351542428056690353456891767212995901688017323329553268502827859125273943609016300310090964849774849756315460894680188450293160883082142087838879847007044366427431093809555928511498870876533894620685753809318736289031869187386656695729400068564004670069929218363818618363691569187101899570812052446666062794057823779543073810216272494399660850932123930218727159689631581926523656879411397481802815727436098249582287718308258808380102713309764048898492199945234689418179304527313351379106825708843144340128505034136280955413501732025840427647455244554723558788623637015426561483299057077820037016079364921687167832585760288558841020959325333718545556293879732572510318778415076337687747308724020107534896462762439511086404384934014780714784927296307179292853144301667037472782429247468417864357512794561400631204151076501163784168576683741420413260509618298924000295650598338575829121601886885883013688517353151604798428035345209903891331160162677822673240717725983608475928717744024299857932849494665767815564047419494407404027715720446650968304586989017205714758393173636773916730676616799631569983716312582195243220112272523850787484412237041556112382623401291486833201324741546805093924160034925891362139878516973919408253009884301450398837154950307655872575867527711511124982443304997027303534267367716504628554940335818281793790759922324959025407218074565104214221113270214174476371391906436292345675290374733306286252638216798513497046753162001583651258019861883277615697860244136616074930322295033484458089909709445766568868054913429891594316143004028918071488295763748155001254360485362850100799587311328235561756324481002443678710366703634797336346522308174855234505153370717691362207401595149884076823999525472562725604644137928027025372594961651828913531879235048386891304747616387157579491913763748547863811120048851786992583045759025748840683183966878780020093001068959206151763853497300264718784637038848348264664223166058319975681566490313040895974937101417951268263200025933540734124222376055673899041146391374398783020670215704745575816983093144828775644415564476515503417138780073109491846433346357631761283206827178855303790261625867355990742041952381489657052605877209643076039247698192430887182835209822301773225635491286647411195569657865631656136543243215100135970401144732228388416721843032279396587420776843944423334786626424979381959474485023448722747568127089376715470659251921619563409467773585362106514599086398296090792983992839226216948955258810662238935329866978052196918330401803858083493535257432776609037963404762439171835582456078960107966332627775337707904558645113869571254988222958033495641574978925689477401614870772529735726522150704813777852825195615594778469894610306026582323473513664609112772247391592531268839918879961571737797191796118408068137699591239018207077694641131511668493566725189407464709234213493722792011364479443700968673574115893815867676268721253125545175179244416314203887125171154060843127953156424067432823480014355297297268117419538979935675352023412131308419305022797045122071234573192185809710663825735606812188510516318607405193523417192067994717336864412244135515400537083732505430275627501833152433601885363422377947339238773841862366382372559482602348885841611946474702418467425704176303260224891334991694060561809500089436239783121570556911889220775125440338842233447424582681573829861623366850923871928752739663070106216737720299660925660854731142279374463074463276969011176338812658673076537251615788525746039471358636980118837947260836776817307750056556674776723215766058879655258386072910634842824722699550568598837935070840304821893127318072102991800833259855449123377988250617799705345590001851425038097607228154993540874746324150014654443966834480260982518322344963726617753362367816063522763368459884592755651596974703958935666977672053732418248415512090018255193673781884999654099915478807527155164753455048243633889829709857736883194372471933820184002732169346589071773994755643800525208771048073223322998468073037081518428522161969651350021846596959726293445442258373282013483537422898464808501341830889705928403137478007026837920684499715112487864100282956213265662826588951017498013600678681458827445356291983152627198927191041798483056381418127091064395100929181601567913499822594915096047725721901927107637612204083564054866856229241686688635829839748388189748241780730651339403769144398390609261840691669777016622052477661947228827702576129410859273044459290683541086327220844993426733343940342762740320481987693087850064600387207330715176593864145218323749095637797368644085115804448401201648002521109685422608657464003935058930685410202706898670774847712520838332630309716815359508641490779609760418860341940202938270526093218599701095845310062936541840242996792370214591700596720049110978578629348786400887191804634551399715385433243167701686294791430476764548992836556249030655413413387354535031956559972193701624397257269358375713666214525004427553749912627803906371097878909204786655193581666447895616973394307012955322133756140500944006925334773726684466024319636105503566557266267466393910782103152913375629841964112052146254789029661486074448243099397250665296880488798447144379704042174791845242376019053601247929679501271171922345310389700287188879221000196819221849258579856704707880994486627752854648322413000146638557172511101506892206986724350095789492450874216226608326269160254503015276777926203006941904932520559961500175537249961837714191326730015865379288271044999529404754491928431349839493986824478818139292737373544729741202613128551676228427928326467242092189835066349798157572410268388934537686253762812908796525358543012526404803568355706100225586289922832392091226690715084511616174740588521462150812825544987455885316288244600749958538530287511684163864574058456978237377865247995501649636521543613897206983923610440568935477752092706189046131690693993670132832753530031881219932335903380517212312788391382791610848427777535933702336985921434887601048092195411709597151223904033488626599161040029923730522764248263631329261500888110030478721228982288621191130294067860045842657785815968360721230561008713042860295201954495700605348288546423755171799689268085873468496724905352097126680509091009558676850388531486666771156655710256977058447719510207350139446893581733816871183283572102722479429594767880741414883111874114913929544315265630608795859202607708512578524770395957722825222597402944792711662210867912896234405934768435544015335838427802019514948432407121679120481813209600807651038458697445832711824809215020220209478237385607029909842564590562997928656961513537177349738162306362158062094467545764335326162401888648898225306351079346557706877159521955143979795391531283941880007173778151716201304714857441046957846801347089602163128207871302457402484187374201226901823451404095946102134640244996470839477658108604276877731874161549760805882442505315513706909192610162254127031424165191004424607376503986931358830200923721172213774923251824281109232589589542330286187094822567065246594470809182430530707672358281306352145196010378333315847056327048046225427278411257505677141118612471372761543278238378118331873702866499622556976004008001976555518881309528257039406171060749232980523427453390194674423368814667221012702175568095373315799590838264686895514107883249948378172439997487764743518774597547023912112641593256837731214350238291796780920208365184095208855338654904098313224017074303671562973978117362330783156361187447678959882513907035614082086148874513799809668509513501898773538490699281725373895047978810802779842427099920214193433539565889305827142098731590131027686576648043416602228137101007622935040904804959455791588906090936277413736339811253388945009223898890512103439312506334518604501707455929248486945427616527422064619211761202820030526019723395063487329256631295037828284603964299296076810536802354340155698724509631026795023864349668627804643203186267559445363985915999334508223081102740790833055549955556242919944847673210388002509971070446865914321260196124795865981709567136113317993212216339954310445812461038938622630218453175093639640146410582197338499912309040502290752015845181928200422827072706240858601406511884807039857384386932710207644755824986347040820436407256722366765607602517368187394913118837503529083807671652180764118623996819036479126835084998109583948471796409988886542519608351797479081382602311530335323922154964277548469031185187021077055629065677884124290724460870028676235224759608010145552276153636652660102087458512999486675774338542711179198765302665862422973399654071766668093988302299940589148958966779760509007485448450117360362986106690938096667184518408742258551081244946821370236519997614531242286094917302028788865743108854350186214423886512656999297984558312252752895264436762781075553455258091809985425301897602901829770255981238981276480013791644325511984947279237634358308477691740813828405124645703836906062861167035299262672753119980089420484131137715567727318901840604537288334443053896100378223802189608739422821010028547547583588207685968728669567971290898738499074594481113734248726941359501093071704654300273529612445225332187451397155452049118467823926054195327254470783928610896334332419505801331159494928319801710915094559161660900003070118105136925128400010314946396795396344786432351736638945715608846296417613066703689572836541882842283033306998339894948322104485090226399329954754722465811937976600074367907318756296172043072964726801633536075001482263044322836817858722888742561584916754667401507645846916706100295050583633166384858472195788390174915271207081998351833811128451120926466507203123854093950717140098088842332897873014497429491112580563557038609436986494862796001501488737597802955535259307320825763228088939197893012847616882050085777552464647752924680583191753358624649414337428255207616522752560649123553551996256490732120371376441281050697166961893739431920330772355331908018625154302526728870890194852050608207979500247628833362049193830409555261229587037923012130243125916596220980756823198116959024140756360013227504324188139276012852156699895637419299148495661342566237348186446248622169168623728313351943912256303011080950470982554026567389987183324607275716270827227680061918259827769610710147546478169883894093996771224132724516193577399352103007665740763419110763250224962087426551895650569052708785320978822597504160374604684057414855758503383396442714120337781496056125029376731401485480452205804842312218800198676251170622129156739246137215098390530385627908944934613020112241748375594645051738923385820047318420685641012015645632627035649078386703112727734901112201474111838600766274745796602904081091788238476153063840088771080350731151780185617756155535045925706707900850508337515334416894539385300234045608196481792421464967460491110600578094844178018309871289933225960000609119020969926280357979082178171908184412489677159311207957656893520206888242700779031103408480388377680503429479200388832918867741524979404396577851529355333761830397770488420258623076267242018166650781835683184162336983479256282710993050651864529304876681324975368912189748939142595776756597690424444692793316751706530970307499465575611090196056408000706633885360396103303171543104044177550427023972595632158019714263273717959418187239225812650857722801969818505837409850757749768338125809935721912597956366140688041098407310279077220653050061273492949581498854359122687820049305636301953324977895396011044661795714728649013034024798678811990934822889810862663351837013016413492860779652414620807085871352562425765623570486705521287417344006569608258621842041917175862524266723050141805103941392737807546197338653999124825852748781812933880438243713757272801000419034945531426966717754381323370847128795163608924541071094802355532584100920460993991174682801592420344623705090474577239752784505584924298083397634953259366980276996578357489233589419403973009562840458497261635457162658177146261889033052429454596757814838451917835791638192238642186935505740797792632346304013342678641209698932530679027265275303026899846324181418212355222614746663764167053073467823269648743637894642100383463725612927445321265853085826917689996187049866259870271072387741852933486775373412538436512911568257356285805957100318032778911130593254083513509895370943110790852147737787738544338394633730668613418175254254788463209644684427089590071301691263028461970048015825113558143690216650964768386608675690427806133883077507910888308774371534254934293947704591157746182917591797898503923886627756331197914055538335012663360181103903328557473410583150412555740382785421130636032340743459392001276721516592489325681245800945978743646415227122756007251565825349783307470247836470814021038595487949089568428500707506448403695530906723793311576536942149285753385701249298417727441463340223693390380175043877227473300054785539190919604239620138741413601309227201216189214748051209739650341373042328284253873438819298456159726958561327904052820691304640053750948986536964548694811660126652095860329103397516389886067221459993015066885296083338714750456758420270487878497244300941979343830503977119356651670740286815872584949259164455911989390693232482751831912113405463227186166592086323574949269248154014681590310658752204543568459605859967225162365273660745403493611676038607096759096341259586189509231712465517294298899161936148001786461289749212951677964965639789596696619655038932792780600751649423749265904740063395250990987050276122535474806792488300358448128217838948709299164083398110738563869868215793630414242292414594662526624067613027746651999403065274345182587452515058595112499020538491024206313234435560318301212236657082776115570584446941363276337046584792125381540734288490019897329638914526106491857032204583119282371770216941324678851699019415340362211839930006523336758935565932158334622350331967855059514273730874240165714588540775925821462896470634654985723466184887961419118453562042122774666816542096169090314659074231321499174269971688634178961720361170239731543259725400139053359203486324144722678226484985672063591905259525469888110269982157882275308073864385283520008451975681464220714270291390812758734327994143004791926939951574057700652377839616981012499499641631682437334298996650361519903538862675363043559344993079115983418845418219909952248506438740462721789603956163710441784037199636255713868486666942312822053999692322444793153815609169488912710106032447035327115597966827217941008203756388821878950343709922166513054061005031852383670886888212471892600150194507215972772713767858543784988514665347874076117270616645790716961938692693545562149261521357800319068222726324687437196967923585801539910551150196657955927986175098396520794404023456322029626631105656097834811887113601810013681621396599159581731835615103202811244697729782220889903098064457206523919730410946462706458004608650262739007295254990178317859822886355051730582189455595803211334764425307059321297861926233555515976146442732144109982753577400381568261658281785418067989630141538429845303410338152659121530186851875793599185637692842875764489509648849816106317358735133416735377049625177608101020784863919180647629594427183454231909042182912947389918849973238699319865136594014448745078789620063484981437736707556452400028783459564238093872795700448921272345008298009759865857062492122692007279573456393325814246485352992657885435293927315812453468803939564854725059753189037769210950726602996717941382793588765263969354570086776629483630164388606236403676494563956905962200229394209162368093005139923555027145526630432393563322140729639319269541699953488977482226010663542239930581713542336546870165383217846908782533013936090144991468552865905496257086196737008591881194430633883137553116760189813386452022754290142017675907181815156315826511116554693729170145697604010586188022530838211270057603783686399643236552011564304744236326282175257846370854122081534327633461902426828297166009978002053726666115882709367164621080647741447645802597682004282573746880429691483224378139663579460013527494305406630990539537971034568739982408778107688112345843161682464115536028310906842771357225621938802893731731503973348640704503551359895556109541180733004616805963723359522928482982650888746224409960969537380297740841118411858690373887028063312846247516197899311941340881793842405878355468467907205508716618249714629384290151114710106875450610155062572732599832908235289247133842109173384563004850516396576259874149206233109538952044032827173656312762030373346609417000071329258244522899880321734089222795552251618958947015215309612911733063729661157854879950398469710882478687533469150300559804190252655065506612169616690473149995411901868610129691971135672564213298929728688007362416307093391498276546234673118571936240632434020720576899216836051711687396287963156963150888153290874693663196675200151494159755366309930693082252061680481762689979151943793255185917360655229401792176844702931698051540250256042370213153206000182263462239781724353694778176953467148279423309715862868685261326313081784026569611849347745396092610231147083387670868144596076061464342532576130357665971715580634920104008379897050207547140102634492752238318462311588819568339369724751152924174495033221981523953121516381358606696815265688193796372742116008846372387690695245593299950324734145969807688855793541740500589289336348646660172948509885917546487793384131275976720255238955208105409938199262631471757674683127632197391224769842021115438427363351980801521190268561684350749989483441343060780256100077045036997741052372252273551174563336812440807590580899438699744439139180115434786325324514524198923951818560578568456150307035864377872352503751638538241487561752813502969596702476496737020786120386825206226514998403322508568174321207481916459617518183965320231330823672330007727122438954468878439306885772448572600115797201348469550754710938301277082064459426927487985399879555876283427641311092570210911585738843958313648843520886216501321349237307884119203251781849179103849309676797183652220211979769923690520057579631574449984348124817313304209281684017687789206159212720571334275876479644878714871189412936443564524704341130540610233304150985598295880377358405985630601012292601556244705297800507034544982693296922877827519335338178538852880454095157717148655160773088545566798843025414591079990762786970919078671361439152194536556247500347618240973416893290685720405501551554418597533183473954622028640136718333464260814833121375451150116808813962730418031905451160195747682479571223840201431229917816557817859458229876823977204691128088370058595788406808317120745219646220567303994503936881612465550166140475762435489457288900297208250342991658002569631949092767666194985327745124300625140165678530595299858113427847114086064063139473707441436864995331828523437271110134653922846509518374837125306711105828645554544075195460154488735169345900265825998373532675103415286169043925695909846290140195288989332388911651232667605217553672508440292730148134541012153958700021462173589485586268011134851743915155572495364276011892164641492335741873139203713953549391197395251124925229689945573962143071295314295742113370135675800341307132727096086246065294545163594353416514976680378946328725201944967797168363637248527161972045329663158206433155975148570947901056443404811905183778565770345244499732865051241492240803956964273620897936997694093124771948796896744263495812062145194861233624716123496838350838951624818002736805946483306325544968672770892192223985238758976299434715340703940161927382910371288617559195020643522617354466406075817576126445724904125345503200006942047432153427368147974064639648781997219240957872306466128660972835586617717061440807070048192800307624035440458408918513600554185985458987869592528965508712609515345088188634102473195615592044440239665289809381441329803548723510697053482072134566500781313833349537229012913156653836752330882003544094597026374554300637559930262604953242194414953359679278205215165276389664172515763955198191129416199207372041325051067638370534766644841256893233480896968446965576295301537873601539989940240930546645271990196899835296785297946780226577146028087340902667385453622288407475569702987760403810521066017490791386982567377792331243404729270514432021831117024134417339800869733587672894580809891728117346254134255914357594573452601822675747844117419309579345560523252429911100354691271733698676726834953244634051730968888568062298471448301834324493781191221903401435027609454389880664491809912992484888782577767097805585245885614315369193977226983721313344094023367247938732567117993021996312841829263955144780677973238551251243562153452023194388708186454763622553039328554562896199755297228385648327118514453750711871022271555828887361647111062462069861836064641457454414324378950359679614562367380496817564837219304075386753474603350311702089504969199885068747800878418826942604396335775907097430293840923279486264565584332403095849369719568028278939121497577619445631887070296912457191163393421913548395153146481086198192269321361291504390473699216800238157594390065217092842313565483303857999765071390284226507080516841860746522913627988206372127581733427561335304942062688797971034845247292130344428724292539392677562515115717017317313298843784866105671276653745465637742249331742446144153165675275722232503784220716472980229409601932634240069697593914641987652859713194957378962966209371140052819937873813143811131519388171274641216762617784561858773074757983491739996503185286496020374117690531560313386550711200317989746491852304057751764606479269595218071598275530937409060378418477149249127034726559124870623755867029075245547002021552045524269002451545742964680449375458187738555682710989222905190640287425315865628351372413546553805652463000240187414102766383446976082081885122298663300432295462504565779028210150063515578433895954824959599421797782371709645646043199711168616705375866762085813715474719702766205687065867245618264176956980313868522977840717183538645828527850954321704518978835388472382228154296069778131176911816661191071765198474042068226183809357258760697594598152772812680506273467669269889859240726053871359248099692577328569255914262577009581229573921388130366791499235367446837474475871661747513617857629760453322245642279517009981418823786320342889301000472241080734406118903655144745187572699246537481888918849949312837491658290810095221512878133406632337628621366673136037426931579277591039342930783194154707866798153986856318647534657024756480638401341681297885729565112267169381434745513129534868132765240935253469433225237553946791280825418025179953301253260275509058345438350904961787020668329895437917323165193105207751953730786608020542623939533706555720670043933137520789737651148912461787992048937076383859884127149214889963743546416957490479636416732144065116825951873019911891864495611850019521606641449494750888678455079354011654129535037653721465491890266943298610971471228182627604107071810418862479862759592816144823982267781676654179761449256889138446088991012188046058820755621138656218813425143530802066925081607276895038956067706588107239692991143733755363962106226278527783449258908572781349418277102620423980954595223539412643256437509292226140768273331760852168594230075632771286756823453341100750408086218399986602909301200180957504648672218204071444545939692639525880901215670061773598893422318427582317975514131056701747598310040192003302207990183625681025093993672334809930223843206720989033196725897002183967498781219574581625211402134243781244266397471832839555576025408984193331391619339486152853423405954391564360056390971626021928883041984692874342334752130570356453695317728499685707530075069790154526934877101746570291200806638855757661720389020833418622294939316151064134152368862264013518839607664156126974707349948457344226213959793062781975024765619880770837876196821896109205395314835400414277544394018637892225838585244385533643182910918805613438707828452173675279597591844675178673980608725402335145239379550229458058361766427330527443293640173330909811167693719544872537036805561224685692197314265404171164753984709529698267595226389429907328576808008273498767996421137262886401928651267683395059749146297420349253570149928125970535494988876925442774412712961539952815974612674988298770398542585904474230286578042934128366249579792589653807178227057483384185845071707846297484039289554823939795301483780271331760411306617970926649020911787525191002438757323383635168178528632646167681712085907694728898565745593964344171500978412969506566613046235200787250915066973841195090701529398304144521250072798206661448770508618112298877867974394112508734596465799787190537600784006193375061579793512302315070306379206776023288497492690224028127883631049573198614504845237976364622046854012764114539495860263951458100049276621098692869616890528881235175189213114782197205192203111170974073005382285933183937637111318012061647342635570045174438501646956606498572346150698986946214842130713600571886814173213844336258211786200380370282687527261699811085868144475700132112507988012994286728190476332477010215942128870743510178537565867067337285239522915497223597645952980841332769665340130049168061357140807721192758163218178857501741879008510532242176995810303094959962745041541611384101905022888485720478181882835984284468414280213034382004740512889962415189648903641811677087557592296789042073281762119019146846681087314004449935563746039583258154600071901369993409838254204852150164020717422652667117459848489659032494601566401251461630368718771372867879453395307425757139974874978326980907213673774315045782772006089419829615782286384555225716557790498199709235978329950753179398034449120873793037134083402567824652893372334461136754737519394429235335526460432342401049544865924190610621092871617907305387398244591966197494055621777893641243567151653298722120241680015769412823205752014744787202764777962794096248852890356177920676651143895490631615473133242349760618411880714108249033782605480808946411864846878772056200769362585603069813999889248056293404213403174466697536039456318808527701665469823463578549786388110852901447128013130869946530006743935958907569735687625343038343763972828585741874120992579977704517297082284076930225194136782680284074391075299725869956809679906708605276287902596595139361985602394064515256800634393895440115136136706977455552876064993977206764269474494650235440820877184334206693534184146003721775531953883898238520520618978489734650772549432395801658279828218111741924816895241576094549468163526641517595415949505780094086051473085021884611652693123974445401482108722905072685375221315630072463174575900573742209802856311364557410513466028812636830077952538700684917719718566344325591092863336216865944260671740146236993816050600513030647077060914610300677272463669792773997508321759989822056681729420537527362739533760479107868984280150548098948561077297924589765211531607552354818204336898521727459416800065920962537029906065863488176858678261581384788741835075628210502749795544285861314405163254562282204671157024847174465519266772544970480368267639344161905178720933302980101789638638808542970409169189176566624900055370477968318403264268020218211959594627552503950485523975214875000763756437585970289636712853378590312859485159375551027905024784301512726352683378340596019016353304186561587685071205387108911808512122770629657581818268301871832510924764800819303115840845312654086341195425321216498243065749795971893053714485867228446246195230356790390783201881179404327342344668308246914269467304600332716045727947049542666065413639297729240833974237486775721906858721705158810409148344733798169554613429174677929794870450684001257431405265370346565047329018559500555791701137630841538599563683112733127011636465554634329011238303474667969789513965721364664161968362537143493918720255593739572083807810227183469436316600862136992655721956733750235931919600341123625473291257732381787711368518512515415082834652508909066785826247783984130980022914710836801842907260808572157444062672712601714483516228959089128397789092007909554165083605039169041285912567195505838295673250598460880986274302958840360018347760029794243335719453180215351619407656009611793658457371033666193382339242777530059909794156616469990539897803733153373655619055525252317349067456026735323793614141335121585270923123944845180553304631877644110130034687059825456811033051141294280084557114857773053386820538641411865102940660449336722257665835668639592876461804457747268876031384295100528236180002880013587644042554673204136279181818236525414016422355945721624552591246449602603147462158205795181350963955660593082988914421124277713037887098607439767305707233478408168770501499311977634006084802616425464791033972480792067960627977675871511563266207175594952355057809512270635962810045156587838173292421045545640457955517212316192139902934006451370168998091964374689824989702390611031301755702195873473822491829548444843799143344668923429951305531991585744168812982492537482649900402720642382052516598172616292998549521416087533524975956131286805888181132506359235175640068128765655768500892768917508870103275695612728601808941610105040045906076987050492110810151283120132614746835650333154012597685176719713921034849714154922560285345273188804714097301493321872374620173942252935506168439300183152826769752038632717524210315319959983076472976978709772677586271699668607269412215727908082309232968445476409292332876371646487823190796792596709480017574716232588136734681351879840958571134546292745717413450697146751418628507858505802081576519570507813964859359980482083110751341455997358437975420631508119754948614895754957906641928096439823941843392562401983839454728014089461313606533003016773309137377341867692513059218030646955918670490759387926344122824613021448769288293719951036521879452489159783341260501801388352019213436258992075629335598128532354678240656627339303281459775227177771043924899124432789549216457405401254797870044742034745793589766037091848445456628464880462478053444932863885766093832212218420815380353626747622401924636733612400119958294563007850140706221355654264720797830509457934255994184610248193532941952173447141674692931982983916645171011519246687577501741709290197198385577124434047883647658660005808680490364982820066884793803596001999245875151188655591943313569645772949575120970300194594775024864767781796397014638683972595990156654166777196547845045503357937891670517021315739592734189855396637740156285298547861669823831422075333383603529762396954968479152612479022490377867811975723855971813764009765851451019926033078496970964874283587749092256048307789273154323968900744187369782577244256715911563691412027838866686766605468504329536402172312903929251018370843879600393335147931636558966242912478700244540609853779022008007476329676115490952065952551811409779472814908146908215867073678696535356808341997901421818502518513760902390220802435761040650232464041079439640100903183741072221690321415766394301922814562504197209699475485796717092220073964195780271949597180142391471158110777238984931030487980848875697493778887637191115575028364664866542166467627965946747911124429421917265038544251348909683145837559636923296944777867998501548612538440940374888668199913062681535323585439122521201637349357496939449101043807035353468558850172874675171848947654024881648009458434343423624620431279480434491217719293762826335269708622072950078203146852496494329447420844337505765467825027168566550244032452729239592762443952399004469669500401528598099007029818082146982635107938972758245413467806064024510364591797805746854619321856051407333284419820057692748227565533429628807062526610453603915645827487670606742354304976050871520347520092517945796367405543551349593329549621357973243141771825226812160781646810081934887750911375168429847553592991136751205777348230483873705924186448322176802592470868563824903322401973619061059579913261963959709738331319826868894094829972676870375110138263987440961797239705726134128363652011991371009474069538411090146219818064421675661083523476150625562801136586843853706443200460818705434552323147695830837454244089365678749001791207989459370610471995730758488054040556457615366277395530532344833096246086794695287921270973997383427940772977534382345789269947801852644569490132522205763258585558478770978402260890971816937952847862237418673567242926516529943913626113407783083515907649624381484630505545406710518663717371212899624639550948411582018387137521585136050114494048462710099659526593037530929605371318758312513530196617329637841770554462254925655902690325331727259431776487524472515729315556344385427264168015835535601335791649842319760096285052465843192990362716323683923433090774031483321844090300330025330576083732185202607253258301599033423741855302122149293087693183330398785240686237728122175659440237260281051569306692715815743886821044972822973390528558878638545917331189509747052201912969372604887271001345319167503426682723760034754812706601126230800577170422742486026364540799287609396344802410804740038178587498721628704216786367029767705083343274623616045481784152947207968114521420017777660472778034795734781127785005400444392131065081438527552392371717868208518291162958869006046916955254544006826803055338588055714686812260910276402160472562048508621430850680765466235543042140661608786063469823504989293752527668855010878226068855911353633271042782830598872192994106173953979053966120415178752413473063874595419332945494180472872868125269254746309163869147020473543553765504045460917998169276082713035403630174802000282717273821880705570169177102206621954982325221939622161766236346716485853349527021175428973657166828972141251542408593183416567995831074703382320154715568714697643969745206238352787058866054553133053477131832184066958641260433581062952635928976119920830682149035299375588870539562351318200520152454071971877900123740224842135875442553308080462175821019372234302134091853522951955934545994596348207715365125580350326603265333215494694475998907309995576333186669665822610900281263992993831278016516328865704405226527283692047654507023002351723697951847586818352757228548391039136301143372009738473423435589316721452471524729664789549778094928981980211676784528256447048083148982823919980435291442951289204156233844708004598236200076636642711949641609133618560638813633461016832255487726694285916980970359238964878827580540919008996238251169807594979106037227556688951142056051309618071095957130992335019619550836532345569770400940595954654075219101353208368586824587860224948763957289886394905072562997720404620963821553666551396665011931939428828342715582219289333710101410429470900783257835010976967098351659777851049132683232871776820102886056135240717880530736988970725418602491207368351619248965721038809458128386205734422960937444126914249485817140158329132056023596274219871398672537525492187749883143804565303188133329105934721912726025846695550040577538591502462816658304127389342014281923772161701068679967679389174053325483052426073761889944719600329156117324196585054889912499347860580599172079483181266931251845138468519040365840763853324786041339184522710389373667197738455365271562987452231395188163919183468624623079602554348975143485746988186624098278025511372533661140402383405189296716874902542422721813523807513037656240481859149648343769030533037201544897565015760845088346980106640420737438006898991231258194792539893773256753242493888630511746857347292788642762358628115911142357370968373204111726991605574054003336633163658953877254053122714569942814624727645844644014137383278949829131587397365319492470525785765035588969550078348845593453675191732431308705243875573772583888119423108880811146365046136251473795876071201086437618584421089577327152327896302015519005905822933686350981983982043011378215310353230173728933513646873990160029419973487347905716359448984081377953785053084243948422865943641346403085734858621246426814880114921651879757029240023945696696979227163159405233325574426914306320664834765955324850852474261812255544485035382781821729169628433701716872897120605063374046968183845344326640200959153588799923314701994489294593568927079311835429576543192231855371557216330977313803232437548060566744190848401043053432892628550272332232885211897009320708137185825691771014391433543297984810838886908934626553280161942269561746379086523786817749635341137831038557838556702266681520319811429810812977547154070913074762960622977632222299495910075629679087826501320280661927396558521368403106839061451344355840621089339762659720999477374403249564467376370795209569162099314337114260143671116534916822224699365739231329068197367754104949955986803082729170060832130438536819896452289630246517410626102948586886615949692535436404426766793668174321877077006165807142594675129870911708360338530153983265062524693545342583224109739871506238587113922299900409658305691280418707920996805682803106252165936740016950163480443928045651003357289369625435920643626446117067746356578925981200819105137895334658695705445217515628678656376303479603987306544449743714381667777813286279642530832300327570188089365665878527123273991911980379973912322736868061625406579194372825123403040908977171432827565273803416541220392922481215416957920208671793061565779449221231326854697641011187946816781040337074856285076782527264858855270961182680429573144894016297603826526125090284645451719766647361547810965647250535078221477829283123976003613840262095599871762642593076380726773171120063990465811717983504246805016703573204708148000672480413637323257419044511833995270126975900172111764819180751037924134637120963860960884294513537724239136860599506695564693787290311102653253514832320839963104439092504669530021438983855714283236892495458828403630253410247323826701624173101288068157310671407478605711678415079897256288674359034895729499419979096857416619089212750747177628371317381180317782211395839877885012508960713337988283838334461510992153607808067243212592344877835875853952348035678100851475058145163815171070692599257169706838734696311492334620713864553611464728930053031793745210322654022672449031426177195229462558091974811537054611271096995096869644218527494856003341299785621926533750015086851985066090134979772078539079331074193843724848779754768941370163168036232096539009920472088625232956119381247494097699492637141658478966363691854539141637547168284850962914025502247499726636066991171893332174573060941357104915713347804556170787693412275397122689529678526186065373480166152962105488459757757440179952563401461945157727428630790306611012325630960756405933121869545430274612873426586017181783814707234138509609202737401974177359293678189586294484118734604785696541712946382064287071313480093440251926709110778891963799576034340543954673897885425579769013074363791823886041913400987375501728773642765615953670611857921596539515264182764244269302591464572627589404866428074666236512541230651655104915414271106211114805022623578621902563592444186469451025598311084136296415332795529053811841661997664628020018259325587270708180293842897077982865195465402535213158969856884475836528319412789372394307653066418231833374005369269342595890005491615333838973580120499324696819255008151022139488804618753749579457088076853921052260827705830079779523380270569938397452787222318277073597510866994903944518553474844708113434156855279248741838173291478325248813341358126022471948067278539710173586415617582058022596178774572460516736706353428867725200073454674371912681331602492283287242443312929033959286449628126613069297301474406844439637553232297975818130963027838828602382828126555843070604218644714209155438426574244353816193561539046516000865730534327630686184555469794686954056973076108829470278867044952083207074663813031943821743515569118888103634464937193224359326460870628599804902636472359764183242619390195591679561543884277844269978250076027245671768958840057739234104828278599350734100966490885870675358437283058369631730028988363604461429804084390107146130586385212033351903817093894218874806911064081558478409935952921378894113075830550758402529307201406081673682941570419868064572379052737749512432714021292178180412203595518840492367977127426796080330867046330834160910356412760865889148493984018512203842567085089095512029761246195951013073875433575280334981543499176380005705960675267219070573826132925024843521720833498113763583874412724584491884857168904357895379255692656761507536604651895558003307910624669946239737502853142963775745194164352787361460203600234400006860595859456183796123288868649865465824159456633273821739691829492410721324300301071934106814946091556120659294720746223420577210574845840887347006744059358898372484027323894135042575186914940069836965684978840792302969510522173983089864800177620512371466093260926243166876177244662211871827294337469272266220523391928506960238326116101314817050106621472846491213207919337243505834650567073241096029978818736589546891564711144559330174967389282199439537340197304102679963659352656176766505712946242877805663103108984716615310808577443562928014039129376931693764022235611663735410655251981614733160255019573688885599186031211050412169468358141601758748254075653711074249836429800166084224456041106175820993576938338545703259550466008729775867575477299537168106429626695321796904598937207317912603522523846003465434061522725272875282648139591529101003179882210296146425912599385039184963856253404935703209587547543387987266097710208750232533721311758161339995472326910603879256793212015385304357660428372312320246487661073371401407795552361977888390498912961245912274226354775660981573089630577337433504276599529902022786730225623829017541806310208997215841516856010862305746575523681232192729584540845638552077228903787013096949558819153374075482441165333572706664740538107919489905428877060643295117318925064498316766382787330613693096312420150465316209487704596605147533378939446080191864192867496974743642296313092148273613092053697536211641921078287337982719380470890402488070105104518232019123268171871285310215184469751477799146057278823727265099550925217893903793483074575305642848483224060495010320506414482899320540473776326222273629606866284759235209117896090932040633998595732568988897484184535126693663049882642578274253386026825504203835526317012332794606704015168986861910374486865988996177543214132752044442743522879966367153248605929715893471067548706386113780428128234610016285519198947494333323352370018710871501926150608915250356654404089825999681784665947596271129100566329250000407917705540615677070947932506096170243001300934284619668737092880213369928587621897681732937029422622872866648107346611727929054343127557936982283466892749784583726263927660013627944065705653018351609713161637454358878333230786898257580845493552447123083249602951571780520733145458391596848771362307294231813610655872497967293454951724074920964758076032356583088431421914429561043694290744599280412342826580283954406320314462657664319252354456197495220784943922919648012515283388541977629586073530087030495405711879213250397544802787142825336976857964668505722561169698717136490608691640465136208465256803293673115564769902444102837190855798319233864549480175495975068189378712896571808629321329049497665054850234578498117314325575934277178519462716521801635827603666180524657868005774643050423510672162868390571746153231340808194083676566432511121956423685844577818621111076871317311454618571979347516698977450111158616717207336824591402954221908463160970352624317937859839772112823328476550012114433689339857263211191934143602952809470598121784856836571503731285075368202194521940110320452732053123185280134233084434801217967103812560105054225582104128897918475431088885254079695636577588826979257925767000420767549179049962022014406001044806494836170750251366617910739422422011680598951477177407695866648473887463898162351329665398509995888712811918356689043429858208986298262838799090143716993958791467275943990922346575215976042675003355710024692475796203211151782910039576845604371637738275670971362165130592526069127190757044921217463127302838086410532362475598550756741905430054775521209603149897408446226166241054961109495376728416343576149974968663877893627838806679792508232122601802653441198414313668353766501091237958003216219470515259431379870941539351628256819787276902740483876228757831693564954192796477420018837771119250842421268527196593631909088102111600978055001633505308170769371037216247813898746868207159384531867199029532319038670704411287341745730693753226871076209700719187859391249678999242625295054060913273515726518624085096775562556716506770134231616492852542666906992820660454275452351322221145005712343801433001387917876770771470018061611103107236696245662905353865211460992145544597974173834655129399138356851109040694629742334775479544563733816532737438580153989819940542723742506874046766467845583597883536484387814319710216978630824024314891860038607001839527435801337826648751205027509037647037900292315866434412192732755974655115610385640078307719831421903281873443951181417183551524732373128082971938165997823759678819298369641265087852379561527842047227681353961303479053499491118145260715924318804288988934022166722916169914606817038546597141818314589401911443163761677304506095349944422372172711673143249853727092989185579736699976770508690795407004623079555269242351460245317047776625601349920603987655996497619231559553527880685065772007085495934921019513703414357910617489213404241434244194982152723615901893580562409806459696047554354321395889467146564237375880345468105911412549590379266580440321735427582054865149691720867733950908821565288661766865543433328126568564337792312080604999785869645235287470367518941777503468482313755642605548911937646140035433716191559855433634821047822508435531524063353789661625416792980588952652431737842170932245872653158037327202409053798653367640729603631815081191105009664498858452168110049886820761733943964781033240844795084445180389849268378512367936514031042119919895044333053529065800692516853090308654157034588776362051821887001743533931974383866309044402768685436875656078260063243592932633235622110190782387508856130624651829385440635960314499149808665472386752740685189651715071287730765380990997455092621970492949502247975272153230797096949321398021479170581078874692581037118708500159476172039520598467009256731493239313705049661141564960947816494308910827504584711183750472937347863097717464306665374339887705659780053617002225989582901810251603015687586187559395911778590284697447857885761550669467896442872988899376439904216843366700766852942414480253804795400354582578272733222365535759161071127361421059138000797473976461366982617284992743268740974432762445169356764846111575270983467294097076974523455341778827443905605342601087166636182856915384325507477244156454099916888905088932349911671549261109793827398019505375037359602027088817318892375099355855126644300783626741780585584230820807975053864874219175741211925614004358523031036986816285106168059412004182612458993254540417396016214776436487301310890772154434314662413007400915441037850630656716444587259546153933537262350412219068554461662016216264920545414091946815851725728795908203354072661978699039671691832486048742131867191268620574424734369257066685233226676497995057378052029454142915011570222558052702423102130800156524977542914304634438925846464986168689953524189934602500475080653553163591191054011667510144712380786522595028442888287566730450084659281685022070367472461337705183992741313952604487014673045949875574746453282267623377583788919916907170483589181538248597534209376880249116791674423620947439841433446075737253804687263926145017278164751087587590032283213025059225395680473795615602598521259448125912542905417065595205219122168505272784743494946171961794475120467659723868512441142343043437947735166816746181937973287334154408191788138850256572114100426802695870599036008100529721717653808504878066222445159595293783803193814567583598999413471554442915129313361090011864344899267979090596702884417216215689229610543420100901147555456618623320701147746220608502181044837258472959212586999460544556102612061893267308817940867926307199989877124212169838417030099862656579749350301930572766565230153627015165864684817091413859218567883559984625665024067110610754059827247633933527860383193370295291645979131471917746102261671795559063258403581373876374088652264654487993893587588017438606681676433118754581849870031771378578421871078331967946195696595386027462650142394290605987387958210488492998746122596555082248697498706213267079007328451110396437119404429663327885888935000064961201865929003491255466790417840055711103232129251762826353211381143536962266608611802803744647462636250536917970401917553862717133954582264654672279556394894037698408821160581100322224550110340787361475588140724096035533102765916213224283551407535644368430987983509662087273714598994519183207532539332196667023215715288694924927539388919533945328357772861781374316163193004986498811174350541384375003645943302679457952448796844956298023587696221403526910363500454789934831611473016307980362322274900555756956222168081504148200793538122924598489517697384416998798343661164929018540149234981759405346009946857489288203769411946214632541118571705020825139729352029561122361210050120109292564639928284371566515809409135810293916745604444428155748672274908295826536273029046738194802059289870036538215893491633636934591184534699746924128474436113243983982754839724474122672867431740952929500246663040928024536134379891383401797193785543757971271216164469087167419704454046462689906100840982448657518811623612216000639529593468432861851752533421545683601402098927219950271588189637362290980273720503728733984679756929278848631470173322337688973939535432757708085335436252723318991012007062557416738893088961598650644659770279343506000964689779644860224688382449465842536004885638312054771931689614153293294518069853027916854097788323046386711067517194638630123982626975205984825148130097083592984430669184651218141482366232145860049082092118833497809224769846444901052687333956558775953110113645809204779673240338283255032240536104108374935047544445626837757418155172619403462498874963620408103243934865404721181779592925269021785368881215363156763385817688874361759843558367111815407754359265797908617995207831252535818913332817486174966526347372776004089819682411280488490595909986127069087123494573008383514439641089672087097372303443751366333818349729028751230271151654108545315633288962262660458248037080130421168329591131122024684359924251682973836230016328016938489387464358719426733148437113461364978345837385764071449978980711450983146798912263431402196027704358111853514036988445199803157173224925058671036836701299315352239690405804053264377411407296267769271635106324530863537245882545001872762724909195484201599986230322844639363259107878155933401344657724812305830580172200767711254416076419640942733808011100002487322907452004122116367046601179799999184805114991595020776052943494736244692389581597713993645022800737104035940452788524883743994562764989056005970192707221533733749405414495135880446189473158214775736654920168309441159627047564295265820035841841009250066297292628994208593625997904818464764908540729459677553465243725147807379104906797383308282068522636682128790470977818908513551436271313809310447708336993472032956772059653636257469641540735072906576481944621062687032227574720699263811242359909011971614928298227935563301206881895800587422081837850513554509084414500676073429607330288166839456135636319072540699397737786598423365240338962638224435343175642068676367791270600743611495743162855396720537917359279311071054718483933562994712907876566006536973745753972245919559145508289375751947344561464303599360277925125261186263813011029064220954586427174775386676087330251543898210843072924984384589002714447305716832719104459919564227885040713028425510546419080597983657884393293902464820399878150849322498767402197632888992214891992279015503062438827458931839442461571180856480299527515498136492803414712632491069921108024312827971702000312308275311766671258198768010249512552664468057530411226742860229819248642064471989640045353037371363260441131634592661238919611719414919704081132606446811007658814229464392837380681183612046696629743037767871173212871956551862908653280536602333269299313501391657532257460258374734820216936487899891857073600646798823398480399034656543962711074152734651379035962256782131691417243939699113864411232675927972352131798967070241293506095216464395689546624255760475326928292718457177266367062947546269699183098771152060544769074391272948335237340660384558703251748527601368288746302979085420388135300845663699812132479531475533911059760083097874190842730115125636836155489704761557958870602168981756155647099765288421650784564509942462687788389309365454614869309554300455002584995108373382162117360544990199510265601167646257239110209381010173150969376512557583996146762334413357779833338056336617083476196250211108701109234339292804112985217513220970653236275946985373505067742124150212987876203509717804769530680604205275908097192939088264309343352145158415523006733343307997064458202501112981215578750181973737051736778702081049909186386568894500661310700582376382354193777991170768850127913423387936512834385889567919389215951415810949780553848340165486494854645852744162883139275340548431527722363266657696633455490269538400169770212977110388820006271271701610029263716732368778785307250996497604559281514126217463848059134826987663854323692514480502060857718496747549576842766606545924796969468358947886947256079467744740280742769740305378677926516573570864460884112060887716410686423405478278429906438374627485115944658640290363509095544141099354846837671082605010739484931830058267494325826906652293236109995813846353654410878809351390928615100239806518591694131159581146287504769015535344029616205158770955304779731912468099128622583756075015447868141269273926654994507262531816795419323671836952211799866418528418366230821218914703714183938139566758132799988995314542560880289768911592125510745837277621921365302683322302873955780060062078014834231763809930772751799137842288928429849325442252822322132361644328311304735768889924410530952354772494868685632147923600909103018414283840339651934394227484463492461793177008253817935375176394149507453951509697357298952034102605106911071944924779912583815308650207654683350204150320685279940769001060847072361926603443872197849721756396460668261786413524425594058001127516205084451689343421010034738244051764034888111993257276221066652690782344138742339281943704178312773107363810192524938826260644684142273791104775994216186024626845952308030564732852449316849075590640665034118840526096544433077389745913343707654732599105397529821047604347306697056118828824488239795857869006525642839845908725173433777094128168581345077312656139295570202793513434590196990869821703067396104984423344112540767096835937560484234943913456152859227295148352399853445587724970528443622904033961729638141472542290356077662789402331500304963879835678487254295079120162117128736565592458087763802303914428113083287219334585241813846870461321631170074691035773301510013184581676284462352033488635113812895435605427212712002586869329886907993125160476987921119077437149280527430611157434631541739287902103917838616770124256770531055746895902665205397537162279267810471401297291866018342125064798811889224332479845490074530701920408863646588090338258429334644183699966337489448362672542208471921734199085350217601474719578542112113967709728320705130696322905407328396175629122061313257145992025209007617045049371426703261141262316878075510277223469269595850967601171642329785201464646606996058577449832417048731242344219111539637053249261288114389053466643834512707826864464323529386718751493426411130256961718600367945053636203168039067907023174703074837172156930637563935166350967169527337339978225291154012442707677795672451602017263739048678893922125134428781776548406489269056410663907462725568516760614689792434214394835938320964928494287645230019140271404127124617388688289659753426233960732970482080304611165737986379399719789223056816689299337824611712040149557097265751985047718206569047147113537779193112978419185962244823262653744283806038475495072737073661839256954005639341942065755106624388129723787697667715049504318927644261127568955319579355846885520966443663774636989449498043665848290818741153855492531868939677068457845531418958880419236373831939901476532172715771008433377997416956999699844334678038175581812569285878147846123786956486355310176255429945599984709903362188943816954763220584118865457451596720613730620993508019592803843881115143014524409567271587480415766710292960519892689415098782040996330479214549078975294663260582037367584708606813236778225078826121252268951312682258041211456069645873852427094230117936064010153597227493908706717782703306557478677479457513935061721454660274736267281595448610615702938130402426396986148211509085924321737478775755956431157626629843913784130716240455743186406684393394411748788960056788942724186613628749974166351082423156201867371861989254405839497111632873144690664146661564866029582114306657507255977094506512775225725183751589876284061056970671382201638230234460824347491216283659542641428860743413134554965666912056492225772120857938639481524708952575615248189011988968288148952341869849394911130028318971823353160744868748680954819991963816242519674284722608317087901680659328185671473967120137116811319699150613797052990450895415941101635936982996063437571453300210188422869984688601755358132966896069002758462138641875941119476151938415780700635782150722217939335815940730531269149819882702895485413907558224342346809961924473112952405856624728868524982082225613597981861597267560487230429271055912035803128027281642257277940044350522042773730306580906112251584667705697148153235051274474170961523912628878170169914733605821710925753171069374192908036600360893229180258955845250693812439928676170839778287559216454333354493942997657757484189170706811267501284766766960627876456559467218164713659664216185369318543193254191227458529507087431398264141526744140197151697798884463682005394288941855977732181112240549074551017722319234829686092154340205027441762876549570961719666769426534107971015926071430407908391202593411281999259389701743261958422655334047209464979868075398800758610983832560021227691655241750207101088203309263843672377577060949411004415185464204816145758684959890204652759375202701805676180836291621210401088287290067191807221712022385054403990095916771854431846520521475121431635832070888248138802045766786317190579011264960007519779689871313050293036309062391743519099091148335500000000608948024151066233207799608191738753600369001136006002952269402085801149219330274222575014893593726998955539398206491502105524170240233066367140152053735467713977935571693953494560390290963393643365999726106248437733872009793105717309415038147402361067060366530774487230381689883717505867743662927428702126921118308040549398974149909387566358076724397352614878710965411610419467019918773172059825601988808136096560112594590391241791627229729709239997706692783828906652636130951236730846144026778271114017120563543646084578557040117303876051604344867266886705951312843974782597418984736708638698311008871014675030851203695845740680654694355220234255597743403163724508235786292790886301202176007619130665493007477156244843046722932868889330097335334372793643624111292106481339890673520016994431197736327699843815890048277976580007300919333425774619015844290175501256697733920430898942610395515433584034887946471582007830386689366465946865749213427082781352192956157474247914399507436309173831594790077794910156222705594330832087087669665454749724756428995724144561035137016074219217932723983329154417173497210649091554434146575731244715186569678703178798335834171336598671743143309926043251727143685997005012471882200454802383954984221296443228195969546833460239283914683370990652247076223005523607506202480576433009259667160241335295123623525284840447354059074133895495092751410019245790030356163822072137681842180807563810100777988864367407886265526846884792583584279888341778890778511305018470131237254463672401953850973595693319859936969959269055569759708065624632597817493561294125147994776823626788771032324219463115653310519327422594336837329698698405879849715777800237137373878240283692214866067077749313826460158097612661643235841233397873788004309336241204500293200153604458894908071181398445918818682425568062682863346225273303575559034070341531755856308362486616448189040902462163837908323023816693849392916244899105046973556945504233323151390307554758243519859109763443644529092810182071247552641741378824869211041687823152258492393506365153988972552936106883047419825577280582365291463092321533939903840814692993545283078346376479570525065144738407017886847432161885783571219722533193252904637750551459365633079506935244835507676657151385703128907927198331203771886318576532406942420804767624018400512416910002183448261479539396136418095165493256184342712759969553848539215465295741187865274663157320418180832952723912015676829334198394119418183280209288570608830274169214786528403234396660196666307324461867789308160538592515723895350076384136643269583420824734311730047047243352667273723217804589632842068697097286134886299157520465305076638831826958245900087462911924990658257354517419915855508068650997590466015328941039718302248212014728123541722138539978863032540853280303962308110406949268096468079967705572483278953556010178864294301221981546838696425421894992748501202293450163664413374508124707179432936534883043683600227204229798444081035115984597875648834780381538933742413199239223963668817209075494748341984141998894064880277156392157506356425694320740497271293413566079353003786856586871807625111719135143306565262922837692598424736010727084239472202309718538160151684184970781592184614555886435806056707946877715364535165918166918817104136403926042559197282109612157135461436566356275179412907139369766110867455643412679771072662235948648919825784328451036006647801980021257470877401894606695573242474035767817578292368940343946396428911530257795474978925494980911028964639797179662487425827374692482302280443175504347801654154907673630944321237664727104420272240465590600402387066149130428089036883070342933876596531753084922701384784293765793219621742363450726936699212006250550887045454963100494733287926859320907284084489422321844890098366260221734230126208609786365577693254298377233609061799196343156138165669842041254772194768308594107206510316468933389957748232632162662266886409448662495810035970547656030681130617954556971882546759961966448330235206999764701923062987543240921318303590970556572157737237550581629494988448535280793597878452150934845415661358908343904449939324174909940668814864331184831893696244535342115384876051663170843045919763147783233092138935462599173606293732017745736047076319234113922541002473321480549984040238852345271242905919717677016848595138615344789453671522468387700544322236325195695001870211253208252212090823226750675599939818739749979305137392267108033305240988143266947900474997634738718107953996658869812013080849662023301385473313671693269194955175997624576112860904789552465431178875620739589401009388410547299574978365100551971156925786134732832732321585449237816375234550288453382832304615291282765023831397761420742911960404524373333789162483684175403819404608233971866649526729319202258319209581009264843922218097918240415009484254792528735576922975427155040118116467113975265440032104602540030167909453791965251112898960004592866469165529862586943566788558898086870425971689504377383887745877295228451850132157328687455792781969006785088238207840609031960394694340269414457027293675081382994558076915385690672379992023533491546996491845306559606469370195959393362732295766647888860851700568794323283646734896520379870125232854185743065019056722939430853183345251209579147354741704450709904161623237844740995696889923237511130976964788966043055112294842585352726977346412146993876031770368973665175441383779588225962504676228798974179167211124610620147241881044128542126113195998842150271122167401714994473079342526846906301754400338530590958895774613489737156019832582918091297785851067222484635694784999577387259398421865383511545663019595830482873343384877458482404101601483658270684772928553664571560950746354446466624129994189645264825488970041010451985450283761360982430975221293393827353906419355298519785796942779525334260951102930771027297806001094698945993709133153669536491454806451578995160282142835466711773795968389670053069479075836120276974613358672288708816008436519622459476111418374827447458025548987642081233055874399442162601694742128259595732205000137675099142839654097049594959850228503339143259420204818015484546531575099813914157777055128080545717774640326575666904383564830795933564246961807209986714634198114494102192224980396424219450785232644451443897975337232385281593793684031716656511577965513078355261977726391915427754935097936142767738027966380193333131239913795942510736482915829200148503869912179447895459264823571949731723656998544842914960477581316480381226514978112741784468859769444066228467805816319635221284329196800070221638647045180396618023643790841233279772109446777289006229093963870104850745955053316025982496831015917266906679164275038193380430757763623886068815212302590417558357990239026546425739006701131938328230039505194655075237612462779392607215691052187587401350870702786649356187681529333792863371370014665122604433798377234061449451503119463790603656453176575949931383237819366276480117427408929370167199957910751525130867041608201282840353743889608425766923936257099019676830733668571278031907158232911884939706544638779096366973092990134162585804994844153487333533473127034017522979004477683726544267829696286793689205787153412709950953244863686135065032077104016702406370235106957940121490123506551434028004040140569422078168681415869101761299239234143186388734983246268802848299686010020267191638430830187054541414916407060644084749605885056323739910085057186230860026381747178964532568549269134134254293195252701168699434457877865325251222105135339583147233393654531941563347709578848160148726908174981764138701127251062815074667436062523694281628972868781992089357312778650946760991057351351241561322966178294119444178963888413813856368631523916516033177862504047239765904490201892319805118308359054358740088880969648305951567142078970763230251633234807565271654361457893482035532524884515976584242893877302339425154365871329545818358289419812749729840220290702769711078119461153676198578256510938694569799922417177124319226039353258260982485945266296920038756258430472953827692967309947171552747509461104589879917704510040927876980911185852600287801574993855674363000707333551941411065489810194718220628934402736146122570404968067223390574615217319143165853209362216237972601502411917325683901810170542335697886901377856959724635477792757586007969546232373448566933066473446550142880925702152440905244920155561358673211516273252130365865308259640488025324132365434410073290434464926384017892819775161706267244489957459965368193123726832463747308983406943758111085973764537108408277694375921963620159818472359788537359363788706854649909473390856931262852362103909459138450684822066505601529463153080075799093259914113423963248139222283646644862008485365707318118970756636748635532971581556621006479191579036470723453178964143342023599694326543540956392661127395172212240097121498521104535199229409420630775449689318542394073934710295018194684702753258348812761307635412675366388271910011761391116397317994853369899670125931631077409095109965114931241329839921272771263956348315799350952143546406156013893367880709986597988479894763338616928737924117317419016410355347724837314094533750419121133681465935575327111124917878879498195826181503538101448514160382666604083574174142510518835485899090423434291026288069063567966834036900702627842675019749774275808847089921927885434594791338342216748844498934531298311957396692733397990588852137551792465242710935003312915425903448212062901874108771143855191730230549676347375195126276225551528388963701680192341349845786945489618725431286491005411129769678563720872706586828058131519911585618495314202104328590705525907631960097916934888021050837225988032191234794525133442989694931582802366132077925498184561357696230210635846295521942540819177218990116771328723827489765224498046048610401571560452258439025928501950745900213819094033611934723387019453969989093172327458301290941352838294588255528787208482049113854855729584038864036003668322725888192638443540400283813964712854470533517351072514813293141474538803132682363452423556074048294800470651646841988298435179480036987461139384905308382049075975651185834790533575782072293627049464137799333280697971873448659391669122539181663517190944872366878970834891933294989702706646727951352278168555774112898220811716131006447173119855234953285881492412866853548319838061562729296894498208191866153830500285569796965732556100069807368261729070933238818609453412827921428487423109598235516245341523125125955269612682613841397935355693607136808627249346328486924393264664546124647145300142333313445708556642528549447164475929595680054615849707214029572973149916017332642570707382116552075876928151911534094608045990754184383496887296603066294582638723042021820200113686125532967423936750694537876851177780984799909826835284225628221886198596526313846020449125179484110860848514547087231071870646056658739197002253624640259340580851310309309051002351486490405827845891915279291823112020983182785301097393084321105348682224505879070209512440535663715406327447121285276559823587356352396619761043184276897882217177776620319055107826343950847279351647247299024762264458571564240664269771820300059458868397776237324926821589787752582134803425627077544331081208795844938419281278041116871954354467419814516457781468325586775285766099237277850236759622882613363847199926114804612088410008807740989084183565231951018704880775213016847695490202778313952762156696065879759897177818296063500551287232292948621001543684852911988218186843690152574548374232109501338890526140375553768092694073656026818392715240560621512346690979682365219235526700641489912374423717996010621692609120297250245454656430751393832733397841623607196232987491229416146197507081997841714777919581482515297460803519682904914006434973308267154768167417304900884887224119319304012484883461437559654728369278993858751098203279194614695747653253223295064733654315496301623924451759328619385836808499128931646168216892841201686906178309869246638466832773285635060151871546401328283804564518033747416694217720160579124601176180060011249465620949244400183814273684733356851376313174178222850679896264353392998240715104818612441431594812284793722389405139665632691166456870462732774103547323859727307562086720159879154844626964921676004888746562098597709530287102100443708850752036844023367329325015086082512043965667235695591121729065421980515218765869174908740826050572528728071596487948888028798413966393705168727854462402952810100172037414698942318255952134531778165420057219692758342104065027891602401114197396551723677930974735341899511806355200552955456258246417840427001979219790995971635654105615491956827734179610606352661447404137216480990441410762243705717776352781486434426076813670135728527356906963359033039902350789297253247601957826418765511776420735065856417636969418122233507639827108537034128412408712248503760755932171112183414856744684023503935427825039030765997128920149383195336988243881187135308257609749518074221961700333268930428176533091220483229478226562475574468768116382961290344183154038200423201414085482373182050278325266884512381623124825931318908697630596960358147403160701337995300024293735554216972238929340405886661454307429906976613415625805173153753772430895030838378185143371654737139459424013665914593923393749504954648744410119452177935145396788563885898399567251024006700724429150617410839425466901278237655294361447794054760877686291334018908870024245110286375232867844954439290021501364542395414684496187611188964791020852350069186088758934043571252948566561594226191215523366451203461688552299662960442911388350850665483993330400596217906182110856561207646212805343070929245749417606427581640806536854611265735015635899846335117086064079984668548572497951002979223363434335143236439023770945752930434685958293534931325255815121885227928457523533433549731419496437587846058094710757935848404215684482731070880853114755129242791526767193623299760485963521692063940455776404928079195996786192724583160185581365300858250245698461018238819242656969295249740564385414329993301136157547223099039025672978022877532148244497881171819257166892273328312681647430183454603751656183853012266164651360032306589397565648517686065677328139478775634429574412249728369733283488324461254027845308190969586514251419229670158101457051506797338705101827256122167625556864325948150256750277172686812667090241626029355331553607282293792052713023883955928139697008797394844141500929746234620300581539516087388407075768192375016834815614916298075158462159324756950576498814580861755461654244871315414601481359525291114907817102372819219928983376948802916915318293783132187733919022015344579322984680844051148817377023539626639793991430971110053803748805459009401715664591636351766095175306054438393080623124107815034298150608753942978205814878894926140486936486784279920160091459339815429137162735776198215595585123996437810786412917994316840417632700656982730544906953186276503334257698573939676156238245107311453137558733111580157447825479390093125383205285199130729382768771446161922629028983209270977422886275928011417871342558776425044557976636474057047166110376090285790269423986692114129096353812275344051846438041765266226849712970624568492891449986737422043980058599299934549966679158205685171702439404045253848468779512953025308002967846912705529780920683704315805158786640453801935634379863652957515362946619916896498629418241721292259777649729623241882340024774948451234664835588623158223391163407654182358105143660694803029483177270986973247713523937174310602701516049494883259688334265734488473270047437983005130490371328820965058778269512263003587825889703609352409112735402956337231800343236219374756743709596675413942641343200307508305549630515820274824180602541073856318103038877435480745695794608021077144252011829480621561600323616612013380202690810500751033142493970127616359093069108817648981934291551586381538074082948092540190015781217839276758420396087364849110768969834346721589836742470360505711585766480498707700461233415948354451925337551120569995477954470770989565938483201681957370990471189135454911824629099068849634234555277451269479249143856039415665960437200386387658718805676158372438600193845976868107070447273819913747414575956229718864252576225504436281489075295312530011201527798199875425468471811472588580793022813036887045661306333884210259264511361581691665240391483810653377534807817866266783845746923348833882227147706018148280536416770407622365415934357468121729686966511610146635319608798796893461290630754011464646625342957225251656408402651533130974441740616613647723429730946944914424964786779699373760813473595204945956906238449223670652669892935464203693578581861313467477337161350517828534650984306738934336755004606901049999058401298203269076596387403382713981858509294707764948645074647985647276303300712099636121835844120682659183276339876588218074393518042266933417468244588726484803168214020184621740462483977620470382686592335124680056209642639628663507099299679821804703913755109002130480810690191551918888174205314852625845385238669171040948552774290729200653413786608897275017016879692360436495702064631794639120263569007808453545197574653516456136598799066549043864249758230428190401537660694562700779852460296364744019593710846940678645027109071819801128583257014995414018194695169770079093844303524873688030400784981468415307290363872423698021359152493255685213319531266206993129984007271208226833370597419159323697958711575962827237955509101042009025945201365767597763262810745511302341866930933902395331521043101348207753517018452336493215256870573800005850085120963708407544595402153877831785711468156421857113887136376972023273237155758949125750867916729646386778074523257130491739757343628660231660324536712566736990949781760307987339490936464670960571438282923213147516078660936502851212851058938763343778394887016916895978248589908142802841382115390111689163432175565055520604074828654076575672300104196218868341372059595196767897048298019137398239883747771293725275877593236415313629622934046313954772779398226343572938650803380832796620288358144677515091214410126408559353505102514383898246121658729344218166153554373638666452369786331166047406629174311971420875105359624926670803285163126280628912762881742826733551198678216913003560463978033374883062284756616931257437208722350412758655797809094310829964100430170688061105154700877382111273441668946959453421844335312612760143739117699799482677647324602536009141835313554755149869872030301623942135042300918464716819689425164241847489181077406254502569267668234642103567811171213721500676275159116197239346268870678705390797940518618873447155680873010941160740608907742966694308554206538785533444044658049403424249435249780542122791167635067639132900916291579307971769990743745668746083204409309667056647863021687507254445810421002339142309768236201304424556968542243990988170148866772194192724287126668683125166482013481638158613560976276388230707875880754332604487862084283345126366752174446025541859257296696205390213935182270533225052555141826261485088684185094936691934913727382671243311270559570631901075659328243588615566701630432713089479819955008549177599973604684662241043316018657186870641920909017571221065783640237496364044644979796493136981422642317587942654685820614217374727502313242675720118443072546400905867685365679452294612842522188602471944037658578154488340261730308471262124941779027121419565342076309475867423254478577485134947078650237180643690955330224348718690331551306677703404023062573473766821160560330329097598923114795289431575987336161507181877674952460176719552680351022610656522786294764505525617167801452793541294265239770354635355634626463887437962516320842250970504961277108997758594117214769328604595416733316532325863328700068718303959230621494906563228287880014851874111634549218915252761401062224387729597043110828037538174075597388574767055848626846210331469215102325507617661937643868211294692151346967409413993369618513256877117580283643580922169597168876898815318782681929178282443004965934945318033771698988787453901192467089011171800592415681549110608168417982482522385342259156199899973557762776784985951290141286919728631588258232752980193667847075631830772989276557095471358307706627554202156453977626623280352177319071131153140426733385296653578127712729736782083927870225996066313958273403047047432282934890986405642152657838163775754578347846510002949355855749360828232153642468838610647140135721013128305435460804963785215277081471792889937545768397651819858498876215895873839547760473849494186840535670130355339322377224055823543189083823686988496538400474062348974054458541843471056372133275598557412086406860220919824053101669981651833680154857092120721944284227686995241844380634085820303890791486628433508266368657230531185785561170685007732899099918810969266502855341670600043760164414100549507453243064946001611715671298825351793803642522624702411136886121207943035133164754610179974926134058926450944069769110852692343318063559056086655913248894797184513826941724345839019052708116417764144213335579933625452218563480361880252362602691775400733137807200524554690661485021514045379824549700874682649526292642492083490736218074131995907766959518503186993114169980863374315542714399866408197821370176271914055873254020331198623149832897648501279982382302589110378088993875392859897101065556501992832426044425856337825869352707081156721649310663964668983609388490960819696406875424388859638651473427578650108322491443421246484560980673442850266840552913187412809663337882913969779862073092046567754833788421469156648427860377114090671894874534733815433252871448140476288990753510271692019566069140832543049525640727130711391377751159720958209547781257733037935614165430295892681452632441334136526370055218043542388043106318657827212784180786707032207717624521739566615968121600365832242684526166954261419139831177664536628658658436921740567041677869675305385532415963409960768835048705498410524320124298482341159931860109720854285450530924163140714607736318558001857399654131328006294421110967718956623875936422248948673571805403102266733525285039494623189003585168033445694465083684730150879192115795993739843899927904050821197455957956065000124421610570325373447902541607981297999970854581604635432071699679202432601478008655325030178018078354488987057989379200463991491968398615411558640408792764895824798183616557113135501607106664448757101215414386160656642929909737044677204190314665468514297377815768997773396600133829342886558060798606423830152315080771362602405302798518046143685103581667229883942566309632310350543285639270094568539001683336663053521613656954803171621624036112472433240267595830468668391263586449247909540741458762783273261665400837783745923805609368747464883149136429238978270984696332376712574952960144459562216419741052203870995876305897227706187581789936891311325163027706639558987834757184055488019852419869301253814979322933264560066936650785235197799024454642373295435991067558159878137182157545619746121127196799244351858288637270890660941813859102385067051205647843801815125977054967698536514799667554394697453352118435488506718778244947736428445860451783573460952786963718849835480377653656915851021289623899568529301028257570625743582679397715106726788668742019959648925313041402818066927002878085364655884568563843438821582550580846987003486975810876502000785390402959248271427512311310532694612014346245077938208532098605980721978931596281668113751289789585950327734713128670145306161179492401888595287342007909416742429303595545671113863358302114368476005754489636718196955999879856254403071701867420606755175297781379278958344656172674728214332014374529885035448626049566888430444200985880539828302966539399331840498179069738057075611994766451473482670261867832406144794175679113621912478141053813394001742057404778494599720023502332484182692866082727899400373452919254789937705914827583883600748648479985445125289545501844319047715191928135540660172786654625068479076679928037474213027659409428532195456168799792168579520171374300716133814889008198707453863945036042531313825405031950239485715706082203859413212667863555828092372761874056567103963932297726060173514448485738762645969740308937034177646284106361753910188170033975477639165371151504025540579996212184602587229138650142481945885808552785202109732627138155919932225946027239812687086541798611975507653976114330223430611111778643731871175880365813337308342231482549270884866679457359275334788164142699854039961329652110019494456222815194447938621606502071724744106898260452926691431801559302724568143043090833164449303100536655512218508322235571442439813345085862627109589140066130973407511081677494791126083800221036588069521173872442456194065060412140097942219501044061572762050412443031323134380167742058239412043030190442573674905061444286053051492860376922636469607261022475456621191144294043514313766932181199769613733070538503656971363517692359092111979440787807827289493850352655907184115288407378277004564653676474263134547489654186788574862955215390481649697778774039676702448475099302777857581598033331875692301157619462187402738466525693172089631347171177603565047723969244706840795775167243602085593890848136359071936473120043036561126399048631030662766287407850609819508343821166354520311512061179137882870759594600698925705974595223349687052868692501903630621214618469040242245467869146046423050323209904217611274879909409266420611447927087220400416686630395618507256681896509123654615750293086291434688824005733921022309405722640712977215216243627950167277654601332658876981954842094502148862485260175728922009562899580386774341978855012131675129494590473228870963739314818224364316683200815282934502855244940431953833649810682791728604248063091290203784235183732340865667828458177822424776160885676420219820117700008273985072459450444230553182334324866327572736440705324936217519879116663024224002057351344441599189484937211453750182400411804310875861807499157843476238300732844590390808931552034742735216158459011631903548892042909338250642427617378373166959872294103977044885691875660743121103107460737795702104520616714911630862102101348128487959901385328031385360115520099525949933816435102929610382595000350531388160292591688600866590949914902709375343562076703381079653561486994220477324935666445209369272371217296750298883705714375307377584325666890747455051212660952083834316261183149068581656278633858039332356873945782932699203875014421096207228695731030061734216280332613612103189936412751313290647513112653643804040758626162989317110571313870291581884281404409033786282467601379862976660076146529245273202906258526704198469529351877560529628572262986161182706817034868304702870896344114769195142518371879019574075628497175376869728675927618920827548951022124062139265259284043724541920707291182700851491102187030318671154740089102236262901758880796431478431486358089412332766494562472897822303537268098084048618486356005220979124364725671077673732558966542310377971448578155437992451939579371804269973332240778931598079578156443503055405779752350179981923682612753974454468073270351975215139174928280951063206968729722066693138455112838833694144665223521590900127799121821474760175722202438522227636487234188938179088576963394493808377274697797971542087569874292139805795441047112602300944275554405819110821603659577310467624216293533945266061502156264222418403688264187239670314891538597387149494427395649145007985030651076580243136878749783903025272418405828678113490242198486593517641798405845415462783784684094676335151213132335819941550837536213114114360390123656491002876721965539623275006792226706058738753393459332327523675043221361010182261843953523461782222194577440888798200585507316090173853652699623535381012876220637494968556757006969613559183710062596198132427027808419503023396691530843674574924959048314775909836711566261657193394909953643292578347006457659932334228583943059081634541399506467496038267966360087313528258648105800968011813062104918878547869727863957011821501525944329271185888013535638183782214657251951048242985791610461379416641493163126611479245253466224244885835384648495875063856244981779056240270151572110854608812222373877526745459439183617314498974480644402826924459788116987236902202573655309751807196528912121792214016406267291112573041875951274488751548964280022169102844269735677362672695473793547803872945528495625499056998530592977594887920544929985610262120122570173636594756857040405110567066938695350242982904770320916949466875238046929866837030809875981977511273950043848083125148970270370947848516377113483677997467320426525068488443313226572652396136614087359933604205414696107395027832374283286938511939188043472431146488809549953355529009398460851331485042089852439633115812727693661564928481885168910652684929594980831506036633207831628594792755013941934789860753043809985378102809314269954885824057237425045345007830785306737732917806613945999985392725225882076995756455815919329206343737247228561552398067641579934142738946499859540872974093700426703816815827510659644405930364598845370493130700857092818641183481411948656329027032056559420585593559776326191595981117755261657005295399777258396007901096053703533074315560592000822106355608611065866881045816634415595944505889732688388638125849121717058913643771544312481433246368287568760717491218061725660091140502807944942747338489444825833418941949571175388652938720551184317037025556141516661562250533710382271852841999484565691099932019723403782315726089860573678805070170795815186632943660382309403427907923376582672308595310334055094999381159462755298865490166942944603259362926739426056904037568105409311339261426508354301243499204803746142912803434542578569168781069274261021015931885731306040600492784328165395194076373357758699242577771228434808800576069311427981720828658682329040082617841598172383409684633479695090997738750948695510821140283952492250088803494632760955363449268320588097621301999362172793543286249917520924129264129289764229626663767525474060890125331014140283925078474262860582119973954467966946632584360390565574661706739600287692024353318546960005773455952092458989881869168939750264362118348423869449961072202785992060613923911944832251655193549798325041472812926909205982652510757011802870245297280622135953648417784431065510658296332117695008331015868906336097453134104024283016114317854797469877912102223001393277531624883610949140540058430657378236659921503024532010705273615224974822098434641830863029251088066222401409527358500421851657917773604445497663023006185774927086024581943995123130051984687716482383278597513672427497992224874129137613294978948026287928039167202016333792153090742824479524678216909534014433791703292904359940003069576791173799419213217007104829764028660211050678000203228015896616986869128960391907351516436624213650216224056779145952915589112702737815007124861583621239349717966421447103090060104652665162395176973146295248651955792288198619386212602190697399202044945515416901413620490993721074029539866194611943770445443422351524189496267462461872136108108967118753378316709848165121454980577233108610454844437670775782272315384649241786469334011346742989848634380312498287835308205280798518506232309195819568817095498446228774676610940247050494053098866249329909143752368599583353257255162668829204927566722169631308199888967045008454162939293243199430062862730220915858032123372872694707076504960605409394380501201461208392134270181102132268109112920879302209550984419594989388164417875689360929099665900556766692257383371186733320376927894721220424740005063336197984048074144996210621709432481795584143047203767137086335964414985681091147984989540781066796723389149220588285620937449076194521757108748063122730654625465695008884523990236908975542802939471901358742918797310954465286198393081813884045755875275911621115885377718279708188827705499126047674432358850340964900656712807228540324717368715270036652633512814091222987491323612317045068960909463399922233857215978955767932208747755640874370271289575238607949269559768110549731640933333764028227105940654625170678917459904862335311853337470999022975580843027672393135330926087445329305250427260475062118909874463658174742651902801677066901837558303237158798650531041507595907072923110974585975685663163547843855314404336001728541857159771906276123743136810275839419218570955751346073348268735411937195746951304939644669363061649322444095916630937764737510469979806354960996903728869393410161007911932674717469754231673840693627065531906379350771540516022788138440630338668371408266504180145387722046496296104701257122332397546619671580060782682662474115531602166184560583003171667242842416334335343204096387875229130348186835368427988742869280788715749399158818633256930289904117157208498063326564432356618981688761775629373425247493404584978010801157302694293990052943402677522213033097140815377661764992745528127575397342436040897971328737227393170418045466426206224273577263179736464144598096597288576383685624116277791812481090337320478763300656316493285518471937535710834526572851314027416418481645635749697807241947115703619940059012086684423450766820538815411170107844034923423973090500133838361247309371428342173793770861453371548579916957228245039662688984610160790754766240903342581959420365760003876057669327987325894009589673411261357194078625824164415668213970330835994321888026380475686982739720499918350231975557008908519943638607635768423845445673965620816071527805124346929560613067059328423454705435898786428940592528422141512118473192189376210501333914118262916468764732844063949981936941545372223404881755356037073644099232464940756315369922023459301703387992652944522445858008075790054412635742597190929295625100825804295268386350855479010650854142612438763484340668848081972767542849271459070536729148917989969694956009495154549161126840055458622966503907367752518510151262968327198487918546684352666811981807514379087762472297766716377242226684580660359061530501665186689700099595164057264603953406993334708768459727043967816195005882929669912065766110011727396000890507308489488033038889869618120251935481692625549583226775719596023668612508361593047124699240011779022174360976985324728891193424261817259108678698731321153652562900514384589813657600006552091034766825850425726695645228660365305503914606334768595860769682160565802686494956031184455391542879525139365123351130751661850195834389712354691702682245540651821313418546101549160888509773825354850907091165992128132616200155208891123351408117990848419401907656892697274393249386225194347229981553133536247119120934753889132174492338383436175482385782432365520753941881378015657887378636166580916505123588031202538159749615633589781472116916720552599343017489029286547882493408902081816866947126008030625473010532760406740996223634494724790237016606447796581178840530029615975747347050135412934491970910779177182001954130916406297924237118782497972124948529855863808195110085028662794894399162489679212349016113181420585262254107669892035615233328551377999796910017242578308111263557574475457416348643361115771152955250537134946221755918651972658637496342066684280697846520716693744405233936898274474412274289338427231077972238188201935341529203668833791464529893323565420995739912964073699293388133409851654774112784747541399407601098735837792439621398608645193833995309550775871598990417896244878903943163092260902682545583260848020175814818584066626182939064403219216185105110780604382117372541499081096284972729214375378181786401157040214048310311136842638312991668396534650625376644769160651626837816354547132271864520778339044599081020589602213530592905084244323047602636429524787835039812195342586448965008313735777729132107515064545238436584457186157953684168732450579613035053992423447817412183851101875736801628393316272474464621011688978268340043983251556386740526257342961273218427801291622485443564749306716092004079729262946652537358549053541225984350575471306188141893548233254791649375066592580710977802871068134688380857080337557435819363533141225204390748073520639603581080101279296390609306747584858528306155732650685046195965065069444572848907862690864896150191543112295185579276245153784952366403099610761436993892686241756164343884996033999693426676774688463415486009029198694304300491892442682994348265312777027218120618405616223230695107395155394002203847244583784348685908844337257289295178659330161765569317503099834006039234862034205388409453657821806623722187337678306611586574463263210922324038004481376524925716858831508681720483989113379307559343443445489271877223117913848507998752837996996840164018511415368469091866080936000574954550086452700746482399628245603024969475305848288303680426221270416851463236886190707055453646940881216815930647011172242577033222576406589622396089335277864313032354472212469676271639910945903114314495792482981947397875731837225213404334755158763311282959780621220695517894779751279259747101760020420516139842026008656072276531421420072370412840903218769748442809680646189873357233541282107061562512613113951666587385013881252902811104545056894367608968865508321708845051746213261979299096627378185081208956365914901072719155253616507449478981079220345082284325515586567865367864041393642594413684594822188672085704742049756927858419851887442613540213578162853372070091210239063686238915949951424307333573580492926347013076580494597522934841096654724212281277298153742480446333338008145563947257373306442857180611499989919144494099385075274373030760819533133441268361286769628863654987200588075998289925734818480755103505765527419971048046719355300209280412594206135140344589440315994607385037640937240104963878634134755313453584424371468119233105098651216469906004544173325496716386403412348847800955563512031182402420913624711852401610323085351717752088459547066953131940653551426828600940608259972532493475727957903880885945041198533292360611096069699638113382415979918460553430073510713468080065802626706878061835273797448136418602508017424039323150603990998724697404648534564160260826651814951370460332415303457230153001471778313145040939069457403499275114523811773203225265666086402854007117280291310562630943983513916655918458577429381749088801296391012679550732742856810207873038802247675614809459518024366305079337659125158550172744283411977836722573692366913172586533684660522404886415179677589766843043863442635793625966766226397994134380720270556452065153898273734454345119859728509211476710057947616347337669115919155990860940166871940209933617608593484261650085848924901368689503050706616365584745115564507823945088293005579970261266416215648162406351241239626181286465191098770100685118945835290048165200632782675123985302257627749607751840910508303667294521984693459547181129357022831728292914678741614973483649124139822258838552967837100346935592172460134999054148204442854817511107048393782338743666241116070714754811039511076705550055438241135939544876149416940556264827953705421030252014402017747103336030919723865761580066402311607797345316114687069930824430806445620690969318052220548833028938815568542128164264900343409642154012863548653981239500571526263998235127766536921478777001090026582424253931534598636043143612130377860067368862311846061459765654734889579267009763372498665175258624002991559716093920659911079130593720050087499736118844103919709776289582101958164264378551241068072767830063953866218354502197920435814263243416456379237954957791655056199689204136474724356215755428716982768262004099166903679717832197705351927761269475996582022009258716982388938480774503700987131146175517012026926398993424957027115619637244406876213728969200938887840132921446777966422296469898187264972092725499323516081653786926964168117318217510040259983006837684788810953234820175626919645006401195174241018363948608210215563266054309329176974775389291769024959615509078629094306747014323427477938560431944025460114962365204420985263648130840936406226539079595587801732232269894170144938419551795621709905698939920848029394415978230213470423364349897095647907304355454222768410359330743069107137842127917279696996316801613418837944063633280433260924056079939739072367339079513247648915880467964329986910247295262669850258571081553023003071349494665853201352696350589860273951862313159473627947022149825731985461885528873534394039286926091952130753826629862488979990658328829949576084027613523185296196360991773121363320663890109006196893245265372259020319213553745301433266687593644930104302013528318881776519572760713607491009521998202292937376051384016119181240935182621436123854059906443056762769121160685286737272421249910299292037746803284191849926240273418877921423940427908943176360849884216995054843348203322439668402817624592924128915694748707924961801136103934285720456567586203259572032431400493114907023952465184391741680646151798084606913739105277591321653572633155765014669239809576038377955442507266829961641059887951122240709369302965947130915436950708611499041502731901445600285758700578737539450297609921182754264037113214256882251566054771458936472326995545684728993793576633075152265752805905209771433546567155561470336283709517380680423892318094531018443322114979159009574476872271275511175233628399627187597994321402827344085676831510898513710122397922303640874312444242081784093258304149985454557796148854307097572610518831428686289813490370537575928737961560977959772092368529983053170240264896198287608408831955262590915966086145979467843655094072376306317518329964646217371215780235205328529843541814814553909082190193731928449114683890082036138314998050735229346235344376489094403494741652567729746842399086882470083115369664502797021311496359652996330833633565235918697367935412780820019622691513152830010794603030994045322689193187747867807851451658068693799982768467274997784740004755381090736766471011739096612604862320643428497349720616625527052551348922804664469158444362209407257935388553648046786123068483557824867790191114508244796196410175597469291754931023832647293610468112155356223321141362342586279009520868833729658148224802045197590521961667638975471271059254523473179030695011896462245157401921902691232195181196877296359561425601400481549383397388038558406430602070725373764429167928556947267408592379862520183461326678231092386163952382442625540985120398173236044856449782279662757167568800011536537634423250802979155483413857391679043049021385315856820280113833898394801843394097804633190227873737489225001983484999868188572801134478648044185604509208155858269312208080365088150068548818345060430078417796359573156404148228914293094716957098490993007570996010513338229218267906259362169843016433996607221617497114633617687971481131971094711326208493351382438693896479486366501224810939331223171657773537651149641363266914761803702812348486058877906097938861488439258199863516877975311468244689331902981582873112108388479638935044578746392643240138532400034254827584367806285550823197429422945123166381747106589877525139518005856699003888385475593764468529359128015917050014245217070158181971680205483179504246845810386002510810145738439758147418229426649136381682331965338825769251375176168124696649176012410512179402167457645229211640674580345508894039723767265144794987445088569099647947176825606516180131204267840649542217778534463527970068334337135879238881343942748641565161249561631454271148342165222928622142037407086108362993762881299065447534773482665129683446599124166214063863288063080119609784645220407585768176018462625810993151443074154553388034364335664728222933281410644568953310608338767352573602598464103947276893070248705688421986415354655692711688124765813357779235331661399441347360250020635939621192320131814292013055486437034365778802251955867172981176912683872355439098747351202402933716194901950764091370848612577732010005730990051299267273696675581835165647918685715272815053822053586254471877430331379149721182729945981351955649358973287999854661415027154934251306415103797757593899824819048307683269420610261970591557333182203150811152042381216422557139441449957823141911773314871161137345593945711626025822652932815813189568291040400861473641751866901751237745087889983709673781472190351336859138785441881723510545088614578925287680619419523801726130428926895615610951830122336173227814479480292500070054614539756340423002093258958321502430027906291496213458771681615045620468887655921916711800608648966308739861022927804020414504832841334112297771845723127046418414598598674762240982494965349166480977914868647949440512967289736811988369800683110475049597627333653550971151331442412216030144147857225222557568912342369230460592602648606173868125431986616537009922236343247300477216141892217921439924394280115154593664880315470539249744856398998840954090648348437550665039477990112576116984264006990033372561631457586734432690853995427384473437831270965272880422351275131120360473864969562413555650408561826317067709592978206237175833683352761717874110962386549032203054737136701926590255214582042054639639859986838753212914521497975597862747374887814267408816185515652945921699771160398721762428446580543486984000416014320067780199298372666613438840759279148203400287444284751019062230444400395563715361452405399614612828940223131562077872379076046187450697815129099356075970064758044324949419524185396764444735347881279647563336925741560730236299546031510706552414971232229481654301430654247194145851859727743684502334489107183138994131883222823338991450866823357248971688411997607632016628864749917651834491141796265253854620420661536078523107602010285369607097690423347573839802427230071207130360074512570097786579714565997704173155859078733074026058045142489931825765650558264059285736512497455617382581210442393757177233297571928996702276841103182080192656335104771720221046525679839395578246961825964803324939066258653958229604057714257708819615517932788354949409898727308517695735167209805873681712309576117304027676328859733419167901714398779316167746064907926629963035898676672557632134250383421132756652612286345897276517797542724579338656471555405226071069911028997920398371526244606705976210631394128079945945497878261892164562015022707178921508502282672617430050482705694885263189053661134503430809528165780269572187029695713979385725254856599962097610585395112948667372180156089897009549598537601659992235417587910059680199759469576119061003334919838519200562944752033061738733328962605356745134426052199808847046009750880287268021095399593396695613523663424349511872682614859659991752358157835715613219548395698956978110141422648698307258250484781669092249414718932048524396371925581258333407837962044697928725715415690600195389014744501784717962324198206901031230363333384531988275932267851628479842355116145979478382051427784082242616274391475732000630087202380685028380385926296969972897724780075213405283312203942053360112880046195102012980410685174366932615634200512532579292731171039077503209845541560440890941174056312692636062671752356880316772729176985713275677345118969436002390466279899935656823815573165484406453634008256070265871182508277568543912645485564483214526906443120023361759714077028027695222503065852889530781040159919459421153869272038310693110031566268196067016851845095663558212857814022546280504039671621462766644028587522625071598151407113388621586509538449875243193015800285544208959137404454505765752837144252853834113977223707544506848875123369907047280978300188963667274931220559158707227150917754288149195508920507972475572037293870159988287017015879785427174339873426890897606411419670667798643030850394339011038285028932767116016229030101979334119424932553693336436615854595852307440872535207099407548525690749305979948971092609337550939867225783089796174129890791157822071775957123603377630072872605155515463410402183635926824047212642104572321380803069262286792613920796605728869630676145211005975281615908307233539227095418434175572372917309208394336774862069852299871916271070101978483037294913379866277030780801618973238773170722943880965219553566416681840147409052422858130949689983425400222697673214324272626254070972494079074002978188188830852772650816170664535465224060429138123583827926337591825140190170311341182995489168985183680020055680537697596982406698009613560133810551260838797147814300778909694249551444055608497320623539356224541737468568520271108924147077364344624209377219176730826171971466818739205670443535768937606630729858298682157510351768185222950736235717062998921310358178884240579764547561082594495157902243049192740029061498537503987795190240680902367707795064057411148573196383983774911483727768507737763923955495560430433398188352061587418928356184856728611723495691049682827785530211990519810684562513379483976606695191871499937461387825225678607942294484850275988654410274991373908336827854378907758504417624794527307101464020310710530503724416913500922652593813198092169661326787327972461939311405212590871795648437490128993629658785426271544838576346958742718853411985209316664523996227372332600260094546693680367867403804900317463752921175593028918393718710108954983032747867755132173826662953738240310553208143081443296864983501357495544233334292854617816998237654329838577685145270708162564617153734445219830002149204595394200555100420131940483817854801353029320631087055398004800108686446912394502971124763411105069951539359682952658511331825488639191359994577963409136969794262818250076953878881663350322768043696717236276943843239455398016422466731358503935869039064731834232546117642123591964343936767839846711154146314629743281459952513234768074748383819951561355600768122847269330414703909295082399652428234548893502900337909044430396173822839174337879698941831823176948656263518717893416515193698202374762947778829653711399248691067176478262051833381862761730518522056881389990952222557962695061153428511744865575517143319286789720011205860794141852182522284984954222763519981678121792434910853147903493844199914751004230605144459442998824729371164732197261594510634906217051686433624181252497919058202042706616450113419884072395519578178886587282168324074266601739113885079663069985801147998951150923040793310601911586824285810229164734094519198716644965713814925017402842225306147471491445694664079396070316330670375201072945382677826089372290467635533034841479117510499116839410718209084538184766893932774182237871565828304212831185760258570990500489560205911082630484616797042280451824288185252821232538065606587117249947907054250037835417742934593848015590002597151835827127764016974099293810843333102885013704608813986605620884340474960362556884506391149325760832477653717064529502808155392358037215838193185820220864749533061535721042079886486920593869871312537529699835895586082782771084877012589671381831369957074063831368191062283408085752105256606650678798922695285209356947087353496628294186593211021795027241390085802158429207302671130486984422544061045112048755669010161352047467061518155955389042459258076952639007778185498362969436306092511149083513339445764717171441015927029089208594445205017524726341629963031624142578300182418942187041321413187952683783691988141745958386633420635891816890009828795938842286844254857508518253847618159963890222707679059844481964451503130247284002198396196857195929583971695889173059054783427002857467126593182756919737548475352555259217582212522422408491464947396335852880450042222437631961049424676768367983633794060596592256181585626954090085156285088981280954997420985037416874069811839722516229530000471136927839092228849456893690817639212412504610702557541060313723012945911275796350269194002793751346764675867781977569264375324118760471973220859812478962910060609064199751609034113393896798927081668241528469478326339877374487924319565073236726144993387460360055391205296835379606044735538701426046793759156947083940096697086609607363431364513920079188004101383685323128679774144008647900360717379054685626606306111947407869001085735125621097118539850952161991560408884170330543630900234722211259334879957289833836970376448665054954797594004575021435225386435052960292266308063485260127560584224049733943651547734869099928954863841097373616012478138785553969151523305065043527388474313686676871266343330815866416347355875625222445801221777786202205894733735433872493574809332935799426154553318075936366529579053296036361633306987505918384371254991573971008659362049004064603318372389526854811815828406795580550297779046549416767250622552253461864546999267148962519371506747835740829182757369558646789755904594162020119448005919695878841603452827111872292973004158533856862670484659907956432919439476556309501988778429144290968231777249369149578288423161866806262004025235826336036867122549941530630254823566248474977727207430460298461434438044499360724105401543024618635042958685742549282796841286171284458478868808475379889864915574891719794102812214648736500996746477492402107897688517775536859727406916705075675765361259092946552135429971840206072517101733137917906060509025369768868153665941124070355405326949718965422868363380132489086350878984188978702997829781984109747573847439126554461349516797747283859281576639338934134822729222908137711973728970437073028951808026464065568325528910600906527521583509550997272868543703515072950005262513052859734794551674991119744503319255330204825418297698689685934305867605306831279541341244197739240201391238982269968789887683475641021754368537689342507499151681407394492668627468381031273964064066449302487710549746511930489381069918497224675661742546318967952600493186518587876703613009598161184189089403547202299293625344187436607557798131446776180290686360821689587080417016819218501480837347097682242453144920899639121204516441257995271175151647960342422314560019108332695959841423764521273647255819434125517674698846620660854330157448029702256773334248026750983641870380097525247018449361977461094515061739176661215704948278578131095450579852194243937903805230206585913201522981039670528373980213535470821546822768568686699934398161633306110815757834116463223714966172922040731522178919433580292606842723127916072346725206527333105287029044853814069523655872652262422284693606759520676574847538415786430226027504944776830099573728857987770609280974632365844111290232406579624594636730398274522888316199980441650980367770446464128662171838397364717920564096751820110545695777559188146556336214120829804523361913842584608705613720124748628097970159920412832090360363944958018945860667542106353878644962212550614125232081221206133177835943344186389822020713473568754505533961890902335157503586681203105306444445195625911580604299281253076063999884579378091115838687693905356732086861941223292266035721454954475050761632121053383334681654721608102080995898456983632631168529881465020512380410675997535657971600438214774670986145248986424215064747431595198586830028579527105001382479384078267179033540456158785841145152454349281422758922646071387398355521223010381628730774375886477474921170267631811778526064001824486216933621577576859553824880270675968043455004962420789206028199065664919949336444350636848665388085006199615227833106846342837759320605067570208210510504229473029666638468759479285922017275329362371273387451768453973432800939503051838806920279120735740913637415678543524210706384294823907566740216942472373189541410129788655242980124030838055325467486327510554560783645136260468813908236569906600362532024637359481023741437057846050202389585944032401888688252536077130030162435379646085563327632164426438518969229483574083611732473236814677840749748939134354663977107745049594801878976243130536569212297169895723012615529849846129148755798764163838157655044250811758979924232347934937452680527522138324073933283444115630623499139604551008987090849806238709405275121304405477796931362504712841189017080510366911572190897996615008694091910328473282864396071502971800817763201226109654401575737958464854006512242055326496838914771938006097498740196988391222231411221124954454874557942180850710157928407812877538296047480927491294400720594816157022368877904691741270309239820178658577367183464876770868997074038393990913800474303170912291825003524697034860574363295483837573288185655711798088323211240027464506097265918490174153300552574595491763676078665081424254360864092557436468886833832958053564871233181211957257661642340374077875701948137234473968588353280110610909262552957943580360745041410130443383542876953528565291092734783813341393317830034043014224868994422004533260513066042687023454801114960851941128245775053665033574469176873210769141926681422404320735482834006399815310515992533811856239022118776472914315508157262677700881170575577529933636012937837462619438379262925957886857572680388864423327579699372315770310218679436034252719186582027219767460157006993702991289212061583914323099996822973021798910906315365398215119409034329208392544566897638836659409944225432569692166041305574344328408657242616907429942482069478171371507930763893614847009397064470865061012155676860234476727300774228423307197430569007031623067073477962570996000368018433266556508606939977124675893153332168176610926763694293978015208695505656647622593296914206155243387127990983301890778790717797617481779549942494875899988985079269962548633067890924382258711895405861411523569616242852318527101959468461827949198098521511505918065870022769478175422188920455121100473157780209537385984521759101986320183300678032713049558014787615846308245216447274400848586329050991744077574796170739767247915377211715660288258616099434193311197276429065421955834608359370035180671580908602038564661615948163753475995760159867494853069283183339900625945685363697204534273748147355319390058672869828370254934895351564181227082547131416286850416754205997553030557023869260064085954732688935565498597631970709841211110578277673507173225678425381965917448574197039950648946387243188331590148716219034081459951446195652754178436433803045708589956918268744318207553146068202460633503244132273550133538962463249375699483469670382305086876336383411563066885339052948135563967879929768647849809898128943483343339094111939359720589407382998400058767232403189522336676580997967893775349664323816881206884968989586149353374063817081699843515201880923644591742605909481004533833314661504242222204605401444971136459674683887184740273510653849341108770845664493174058703446589340277320966994949456146582753871637117281923917312653442249847595681212149104858390511638543852026305259704930159249618276087503490340290231396609886269014849016373972797084720138366736620383485847289298660553716638324418516372592986468242114769277880565315658035459792623693609614721320599739736409331258508025105839171378458857277364432341796654148790120715970342873900161528817655042798075388000262906859804565042634674752456542704839744123896926587125707428051738072934527817042334023241773304996579236063921536993999625935896312750609930248931969169236902858738033692340061941566244438401326939376480761310982827629823051321265537552510264779889506268696875796368232470524465416149300258132341344183184199700424104313117309765329303356809271248129048372531112848230533258126205515686058962695350782421183885187919792693445099887179316500784347742184840526271030569946730966023523684132920504639239053079100528649241705560245557166871282976781066957606873053376511471245871471109831534481902229137723745865763080182769760636913364796836270320345837764105141665538388645575841736522685881823154769802719253959848956900759892705887421041494635067857756168543298759369905357599068869314281051403549194187760284767621135861886247142219808152439670269971155819595248244023539367702163739556329306689651995971686259795610204816205905745304264883945977873247575196508761945320445994484636291493412110371892510752390580217743222131789688363892791720829308064051761858379104213923567896315675911643314085320471819822705755279729141991265332302500335727535484886886499293699706293918568990080520265179132710991021938695706151689899545170355653670438733511930022736339539968159925629606607868488124852050816633912290625189802871540841992085321423927569776603267967098554549046892574206545382753696609820278070235106838968010468507490348737271462659301929191578279123868732877241701160000520909978044275497271696221295156146754104784954970654048843432492801719184843224942425759402285751902598983596805899168848350613737790622383392973957996802499972667236225692390764204598064825700361976265180756843189438823320758528638394106689811868341763319067827564011205226195536451803763371098928004113344230392429879558196209985652746657787441157014603594374146893084196105558344982627668593674245376347289811963416835582517652647466696116555646176639117384498782085819190990267804066337913122859880726821621847734149802475338545053443444573224547550937996324368640512116876891347265634762612683431846608124387743992048990901776522976901751774222672744619733239998601608435392728947015692354062284840103814797036460213287386940127765048718024805034550822762225838804922079627671197909175344778426454945507560817506390910605736907082203045714319791933436603613615977692704153739272511486471168579632888550840834544507017326401541467858011578346980490738893580045996738360939272101194450399939016503088179833106663128394253400339529483678956498828606593160663802167632348776062179589124089373568300541283283548521339249455593447049244432353334452218905567451016807360945104775373224951112696242342890851035499582654726381421747562615106360389114596253175901068388479829957242281902956722236353683694560744853766468163419587476101436676969007477931067783692931963095696451046679153407429059103444537501876941983031950510283714364339565370755327419444448409305503706391101646302739417026435929725739793699676634999024540861409951140847331257748028657555902255872215720795948675739858314479032139812654790530287070021773496063208412080143302457361264016945187974518741902520558839736123474965782446654508788375789059070328420547680755180261530656688379263347781747470688559310302402017723451604836622507261635992556589164513822398912046761925253018920558569979725278461807263549631025499571468288376361057978586573158444624365054613966858025421614327491710535183254424974577179263635772584048675109470183541912281966574803149070313942617702700130196186597257827310314358328748560553424554478491617644101421120969161190664301027004485502413643130197719427169108296770054555551702161808132833636277278088141853711507469103254796852398101827661242285527590643702011466050863994051216964184408612436709630486738808701136254397826570108571501619410908874174417006010837663584829504032511927444466266577630110509100149961603223873859761733395465564905757509698607334611573008241392135934940242239542220247984510666755368018471079897375760149930838415125457379546229493753317724984071931673258478842946033761643302678037926093832031797076219501142951836642512836080133986525753863663727694778001801999997031136614626065289368442087296216496721578113150400390121436731707173515998625013556237319034770635854337648285175129967742792418646936126158643641745369170352208349515205687684844233300096410410148005461283965003563410775131651429394343520161667278257473088643696748110322176101340189565203023488838158442700667214872447737279211924363116258539141004710523397621456333135033943911651530688507934392986149502579015457570706342118332365380083089317755710726742113738611427094946796122923922000294488508821166618513758861332154251386582190128188314107662533908094362955789716995455018168189751060662974375976597316667364119542134738813169754004157250852683002039881080180571609749857708324519078501255945690559917885674887378409712495060728252486798809785102351378713105718868053385765782160333919798921121452594722119973504078285672517745908777148562380242890907479135599956338460539864917276312762424236415761910927422599272812037952078976189131534425985393283356538631313989022844120660766202752272139407179626123720938086353069494433660254073495525100529128717894769748310435865806522441276479816700428810634236829932804160442034474201721416974876262934795323881615559278063850172678694010994448469267733208447763340475430726357558726036698985637942654155236729221106645773519775037768020534141786607900931091402512274421094839625251765346104252023281075350345991568646241726938842888634110723235734784213953512703686661559954119040829990092635946495013533745581559404873203625416442544577487483983823422180881981900737333597512686894889082906864421405292859034290691924207215453887791360808484699613653537739837305289050429789799754603138877185938621036680544676271332339642894959296504297986162200332408194532737646529560434773233693502245296902668032933988564480862664293359000067858308019393923241012555468004747424969720910942202069205036979455439047534975348505346299184504210478623461613612569985913600248022253909562227937119833904565200729194910846076881804528380492706126125413597299781475263930814771409260204492103886363331304881627499526976590977547705301409807884208184360545791196127681997957442870319417957717524534007539460211362933507634908004399078096962642367968516818586850064270725707899537014207219187299596897253384737036724892309355492973938440097747658649973355434758950142559423275525850436380487673647791795390346149392875319083494031572473479520127442539295902850307918836408894856968985563824300833575409902187114552137510059590674045398256509790942613014741100112381196188105214170509024732674944367804744677546164016348655402650278536631103786788651503145483325347555706481354626874524833345236513484372830603771094575065069951081126491870009881345029906524257795488688768229836977582866303385874483227531660010269892759311342415703508025333090495517339983772236689944872396433354311302404744503907461648003023083999670208856626267164799890113810182305446339820531316505688547081133720498209139448958130073995595963072205170421963735142954078544255579847125902557979999522156496785201773529427310846534711649756926183319518022702425962363007731964253884572858110154667029186383310696498616417392884461949524793632004847231555349499900713776254917024758058163130133796943752373014307521486558526688059584784685749558508706113184941371651387004750592602701159849478162762402348952195461429537223536916545673869356923907276743019889786022036709336296117338705751603631459907663914376816059289273589821795162462446936395137163254081079323919154926041906052965213967942556974128452540692968626500843104289934434030907393207320276627080510193495222508157227924603238173837171793619889773426507002651733246223226750631142042211543784152417519157271906992577514462137472819678962484428505322290515455699475368276549693676244564470706782291818985591892140933188315151061567879243154604488989966695896630097051248920251723672565300179685531822715964834825873459098778202640623263105373053088082855388800029599722401482617131750727675685921350810710289613983150529505832605263510229591559543037372667047120917850772121583465647597034257224798517148698996828547325844310382289522496353248701824176662274805648348759901240171246430670620033014991266474180734934563341591706734916172773487559834632908031517809143896173774665530985698602811820563404145221106974978303592206235181087114999915281042928078901554443635541116441157745238328757236447300020390936283397043442824977216937042835715084379822362488912219516263177738124750469757630775421422554770270692955700240453975997459048810770241888583434259559946682263235344451808763400687478856251716265751605099076297150109541278710566494788107584859244624401995920962327864176439670684713132260465607042921491090380625273787340127518863288062768265820979371567258454166792838254856475617788897231199913858609377260677725976076300683880019574612891246511521895304824088533997820045219711078465047154199550736393929949744090483244199701892570131045723562929816228391922393064242618132981864771418140220938813220420934563959869379702913238643433078361061151562132971546693675239715013331679035495772755885514878433643361495058887826054655913066355826706699544485588285550689004441422438197330105996466513809916969381776679256452006383108528841326709759054391320570475560097490382511765758822248911351869870796979783993971514717910381636674658699828039070411698230166634421208862680663759425727213694779629166209935932865382581967034698503271172065387084666383496234950666342777761249383979879085200508597808050951450575106573782464109894424266735302418883322101540898968191286575595613240171626917016372817250688009300007435518488339017811843399411348292187829922282288666590103964307134256816538140079236012607267051329470871634684053649760720535637650616078688081953817272986021795381461661547589347847949353657233339575274671861425058751491631001579113877781399590040189022554990269333119000080688259899104781325791657994266884029756727298181247917252249223729026242599984150292068038213833705728391078241491297718367973636376702371785933069667019943513548375432140434511015814402553885113834585943861036985583872754526990319194762588999982164276206961397665446006218923561119608878688406337796428747327787266212427689025007243174783063666300949663111693539083103333031286007876020023192536135069906885833023921975813211773462585505161274877797040513728664387851291691327090645674635118829411338065000368696617398394857458064130791139751458952161687905153679235770009966354521112828480329610285075077703214939064876488170399607741398692028830982831745438331706399983667719687682847062781963991994486399040124770239777623346355822209616221299338091916508550229778194133189458402910313758019534057007173139299474060572672063153675818882932306996575201854035457041459618620517482845181317481957413589765143305472545481599048923895463374985929665956353223034273104296924159790033589060875352806877262436780572820426291585174517374298805736400924899354348278536139619590553826809094006915502522068651215696527498128127444289288889048713612106396880156340530274834969674236475111427385807459402554416422820020951122596502525084195681239970219947844327241138793861181696214340908188505999978558971687304521088991741717833920790063413209850387175956365253129585955991416341238439489690233356923652268277148028536940008245731763472611320385705888253124780735108154703685113651840828817414669600957185377236681604611614439471948970339335563956298642659855027019362241198309504510454249937513834433026870556602265908414941814339474762094697114021897106643153508717519677410143719562956939454448908260578070684363756303546117264545235882847323029041772799693755247191116346318680818780864965035929008093928962040017249565306984055012524425737349186754953263953671360155081271441521924629341967853816217896700148369543812452163761093045450011141830846367446549730032896185985252483670681365135919025240578894992189903538015597063977001890913863357627472262383059699122599551732099973650425170507086483140755727313200558997922857965185341616526277678431749194399804523105171821822744470434896918511269395575066745720160927503729538380443941745611288097016220890860269904670701690381709760089932364376501328463484632459598429420707097058481754384653885939706952359663811072269658955729610834771913312539426135629691436189027471068254982363295129337791756155581933171017254222198200669764728257751672195613989577635352522335320030047621665173257828327974446191648528181862344263220783818316813132907560089892534513384919487792410538675602841048846239948507257329372885400049411911261262507149706101036244769368371980357746820928569087940655642817870052840143074106188056043065076330260141963896840969277511376775629289085534862316609414491576650080944730532087049009653435071064623789166181910465391142510435277765582430127691270777503194086032302778084336764759066799022897139101709904844911981882510494710590337905651754754683628243500769542420102797656786199854138958964671225330324247405143514710884300614946953684252437694627105743529769408709265387927477734344406980550728018062710432476497530155977851957021097344056822603730855261729888838085178114950544050296601990408040517183192291778425017777758320632773630506135898385110597824422777799525609426977491476028843510473602776927105588278562672647853055858224125317491305108360351052679144427120872961178272012480862454165275882305989890214826833206437890952183200683248748152247342849231120452178206459502774020140137640144045768869912379868670501498110857823254899652934272910853897053034532759432664196448822288467797992521170559162373788221086398141788767438230112680696252795865386345119211257446723558996485760020663766106301043043547165003651581991892836535467363203298249579183141520157809321276127956152057097852658567315153408949328560312230151428377556617039480128155722579026940876463690150724835607522196309700179550316090249379164987911048460252919717617010083255534080720222160257338405136726475170400618896454399066145741931916312176049475890976461720022709241957431484214748433576871406726641781109088017239657076567331010868018736392184100522478037593094624125615669929783991717485694857924035638806575288457555033952726612338454848092422169348195994433603609392263677762086114458641698907804784975938640196748880892576260815700265948928221495502610387937038307113586451466385065591215676555321362117583952998861864383397290745328859669896609726665420205288191813602669414475379298027683015955009007057364281947832103869967079276804464433984255441132102692816100321241432261865744665181512469010614947663445743436615152684100038819805110553300057164575523632421112710100659583510145708980575907509314596639484873501675705303822633604266839824379382758157702545953260185164791690386627718421837160882485923028529789492187884060501479523906821655721343582492153055584090924985387222525075672103110024746478056020463694955952842392738973991239273193929809486583107373448231726108214967165355268952867893778891211027059600107278209528198583126887572724209925817316598896454983085108490745513380869317654746896245605511415658368934605385546275684514534954750706126206337799515594429547158813853430703107450223228494083839007520828916286467819390620324787911367529449567068928130219019692617341431666570927016058004541235043598669261156076836582099889467442898460590533722966366266775422217297521124480350702301790184177219375489381056480087565509413619162731925623387612020572493084602770569686107163198234791377513833089839967437211822517430222063429412133476643635459905287835477760449828416344168648706283320368855165159204672962743199892358970249555254171251083710351652564725476764383096714390707681994445855522348167647980304542550379449927489650509154509662864970951502900184298184059142474529527835431039791170811525012829225096396359717127012266077131984637046832496020371361875553367549634768807123508130995769736388103709951835710005323432303235665154161406267504689406075335336075714776293089758257242463171710313957476653247487822578467017952460008805149513923416882688508574677067386431446048182040176238359805946992895748270155122541459969456009109343276271845571199409431469021194839288936280219840012553181747912259197026269575129641730057649620517602429327580279845058006157267430696776553847405434202947587035848502987647499822160733465333526046794065443156628061770238157477060833089698002781713968472972080644780540302702042761464294298721949240941751185043875353715547605501150396131640269309648276799775029044011286591781833275858257094909241294795132692623538568360223949118956192397483223678301301222209883520907584349255917512060452583345250008996748836143589789033097170462576264862872073521475624518531031585673066948554575873604160966978525299668454225046457888239255470522829959217317857253310775980356081856455871213435379581628673722141593510464697243223384887714140428878455995846117780657377240701274305031594269132157170164929859775154337909270229966799787747931950159674187440606821817983453069692580534282290189976787005141953832297727146370929574571820997744070737895590362766770868399226384439801067354280817176975838619134197135921260980159910943279178721666553251774277358870337090476264484285159849766977108690220933415919750138310637407417968499234043442271543440251469495478062002390626390460993381430226056123662781114034090135472906824170886394852815392052218476175538365420685812875499493909102761312272731233645344613760857127736061002748348047562310797507780299156884847058486409018638138421667073542924664640129414262928193220488486091279944907050845211064214801789615905549785664193711478218866460494139460101528781128927786241194484192067175661483589463022108399909774676299897314427232967552557604123388240767344274297362164718122507553763987152924438767221675925955839461703720859836067094392141555627338566409327591008832811150628673575142367674747112195223251997705133425288961664305544564100334088243220364929047871885804467850387818451880829599179454488834878124108049843800841971401748354293122809731539665483270853935487668692584052547074385789851870124542645952486203242691480546065071474356255432504828111443785899197580263661917986391585179304944568987032941366287745200553905679392077120256188938458015037711340382808441235440262073050835284856531458761218771313011104560450369024719813962503844511932054674933288901702073099156789374840985582929681355969257461823793461032288038842571721490957918823246445458993807135199830606327299116931417149480615798076146237433889151079027512079965073253949216703519322945891118922723049433181199903492424644257097778762584232867314623108952430261617058047960471831233121789937519410832411252060624600138585375527663475248917923007747075153558910126640820189525846045069795264532580467021537840248301083072318723387470518906550648145860847222063164864777899296050585080085907782910846411846120671537111810879722223286075506639084425388633388375774307514621918406560452443262575955210022530007771439657939866206296361179587605919007484537892454955892451061629864481376358503256775431863964991383586731110993212543354433582852377588055833183548504802877599165115412433399500679714408885041731394903880794837439691791539410539012632753189908400400494920894741920627962539668039624461297587784912916040205780306078024027689871866890064365150202453883798717429864658898977504339200363988124076722602417632985708549171389027534250489059944616404998183559803212420363728221243529794139072630263282649245215977251374480982199578119536534550137745213097336217115574350657489248694687603166963892186489661499272608988525269490821906234870819211846510077302830308297104868669900979905621487514163355062294533141309057624133444745106319665899791295346131166887101186967866592244994042515852308487898596675147960780406061668114572115031692163714476228674576928496731133239153752419820820135236203688303308473356397010351533999981760575616588862505192407922947532044219768355712428794857757984024622127026425767783543846207907170475956214122279136426974074868040456318797507716215785899049781718720099291325427393726697839376231112385286522914244523943954508523146709948356691660049809309224380720485775876724894520349737868822638383942610475958113997016150308245044979750663059737452385101743985369341976045114369861796899875981585864868344689618146593533474337848853520520539648828670640580387331231508768676704987482421643949770944582103301065411249378980546078989634854889618428415499407463209329274716598656679983583130957922954115959453152246711678228679298555803801822237388637880922112273217002624885048210771744414063654403364594889567803260308941845693455003333522821960035767365614557366977973278178993119870493536626711197390383223468009384431312575608634370200138490235135388865809851721408342775063533335803478611670344680460412198821243156643231293094819628305545061042851469080220014810650106431593813594289163304796395753868567177237174814669783016631366924191866628148310065030585252492173347937334996221405817955567845665566730328453044516569882398120755559610160013034485259610445458251801491881174083373242380751436332654959820831426830376755826290015565457247299754622801867974225559032129932002135202132005872711280915212661546780228354007616399406235783821390525312313593186180622412249426614319655889704694604494248981103093055023713520705851323659706854382201248122561731358152620935514856743660652171037964042311350975341908721344972751269904313933541962320998599183522353730168154816242659820280061584736283939027593766597833215853349672164729996864134818046496322124946533809360461560528945147764510423161899626490136112997332158267388465957370406394301546164739047943601339589624118929392234343787234321361392542924022927870703419941262134094926931783028067854521995492359726297539153157413711749508497132347082713011969490237959423743513610249896628613161439288705897864544643293222909039825229391596664665101021318436599077783350933592850127811701500787785651819610199367349426912742818850399520983035690128201799134683837344735365768442414591332941768984503809263992514571256457455127909695120209757559737482195387419478417467833344274782676953608608186483601770351297550101647887275896597194650650301480411598058888272996074138784690511139984619982245672876014157955363495135155010655361215948882950729250953862270300950522095406994291509218101970451478063534187162593046346773391457461816427456922490691051934403149346242052338042389018984932476653278945143306166422961461897372805672406397440355580958707185288495763278220715013951881576470124485289440327343873928901141681023953110230669247052888410985936893899963688391979818795666925866545067513570256893848401022081662917879824503018562757417539531571939800239536858052602268084987974076686959793462469620613156741857686698370108823353990496509792635519099378958656267028331449523716903327245309039112759863006377284952406536019849575276103067017429639227308872828430481735479166733368932665219743454002246480781974725138644388582774595793944787036165979383964490108206768332737530403885166487202251671828155925538826810647452910510371857552806138402774745307034367365666678857630199074728464662788287140896578937232603531654488949612110749110745289024177434926191973785992064879337619490957175889294652996865373158241276867593732822034395263755278158083497047730976411563301187865470976180975886583808714664557797541691789801233200161454507180684896148301869524410505936955871674597359736129562296122599320291148473892064703049752187076846541668097332033519440307117632813524448307239012157871354308953074563001185526729151893605761945784561331698113302948203103218531933308750191619478379750102183810879059072414764303368464351296141906506154100533668518933632570277267678766980437645020678857352580979936820479222165053555582785833714992279233066909342643892571427658729488922854450889588569927901650863474007757829648955645130101385175268310983445128719233156111919684198270312028425918968135946153959740576969328839122670128384353179012288211155520795659175484730074374655224363173384386516120975295541414541726936447851602015896668377146748400211930645519655005745680092332668245521577108003882772990185974039230476286901198656117683499540772286413440011442223963208489244904745427614249583305319216333507022759930748468771461401574496586944777327738588611353259986086311416315722241943458447231552844068392493307897273979377613621723250958400293583982514816627881720174527070303910376733145260155103367993049478413514496219860496765021721684591249794017202435663664419355679316370105072170195019283457804440226253643833647634686159462155797690481634799554004336903479035357143472607483146093537269471976222553916060532709341377675216922906505495052354046022132461288839392991858631966130832568324299316168843840466606643831572877621256279959437004807265546536101623033961996430791479005257913642636693307611086822389386099112308618278837333977646307703659243654268591419484869967059319025793086590625173037362551628283736090557011987003693178701264909357862424745668295977739761674122757648505637096669025768112851775427040676931334783273030941869357957565747643947667034577504381696952092289786755781655333099749177029995191357905174690467633328782122455496735175650371174874332548286824940168823372064499564006980345395059829039824243642537478266291529273431536821516036562296912226120007252766514210345528089521064336124276937890668955277540966404530126827725506425435699904102267103431102223791376711600028779513100847798011074000809323029233305459967795126309527388411696670557006914703582698079908227290803995881100259051976595697330497966136857478743118055972672919241926779164408238129340928779493937060963664041622698910376644706556149539765667325226128060979838557355969146273507496857853890210490649022376961346022172466885474697649043681590344456322375364564569441157515756182963742456877515447900497036340176130498930282819028357920039131933580426528681758806103321921874679328522746711011486863771889870745551944992695265141036950341969264943052949551739725220896109140446469224975736140453384101855636463406331233895096804056060569307071820945813783697000395885605903077626621847151594136424916472681877012215060848708036655691760978956518570478139108301497873282962652392323008752054051526489976136492457418003758165814037654758278050582023262710164242922997872441765352994996756993267494473651266026685822410737807476890067970710900052989696502649506159027341396200368191590983073424348249915105209467324266947554556697766040430701593246431422531865040738440675450233808673364375776040112552710827565470538379019292655853953194730402312418420836510450790166388723603219334382250986334632423513457726084906215754026182185053139575876364998322875465802708552614375132379714015527905074214879704112223222311088620071966058803932108525489588261624398698819440828792372953200807050755038106386486557265617360459017709816040590320408858917942890755099801694305097507512952221145264688011733276542120693098651163074503310994454716687184790265063654142025746814388026392083613628971117040285226715489109709648501421225362766912330099947511415913754478378651635392994414273056251260714502187810814420266184170996806829369042662715528625586724904919301364243020386420768540369669285733138003935274234445799388109128611620455738262250168686443165882847857413153014639574073023452790641449622600279830225290701877243678770998833391985316685118499889401885202158840461263556547128609090515250116206580974116492202113554351703206096078289027872745955554078556915315951227752221080786642446320926429985128564904310714447238581793641581667293779796843714009984093112817752968437016095670100928565462932720233887288985841637995608628930172296181694503906524170441912511383007428969520002230610038655223551727011928227712356205597576946723436959902012278858834198697762867342163205879575686539701739519781242856582469443365430328242024430641297676171590291664349283517552859420149430821220229374479996731265043725671812538401064258698586212256061379326886537137025442045825917506074609293498419815990500628174603356013493113988168477374402972753855574889822206121566838687135926504947362005134855372989783554467626735043165524424416940248515944372915105339744348278348108646287354720260409771944514230555456391485929810506025285125297133460335714979195264504160504715632918732855646909269557381334515113612475799741461927060334896628366272720619465081143143650944481338701614886550774699691116247196359623224398269204069324050929928286004976826420261827540482449546023334626858045815085705493066635329799601644009334710216326244866565342451931685652417628676531233324624111000712881591312756065425279237552934468803065638420573035515047736941216587283969355019546290762515786944674062070779176409375367551936689448769714131219965891617988488229298792667441319757748713657125180496346805216163557919447052720219087526460813391406091673361481673336771507661637549073163864645765419559973379002656335724818613778296492714192155635323987401577059715221350340556726106419212378949600718233031248863352317207715753275102421805608788353007714318030904288142359786611943692239707651723848082009509167795639148850723863063375595897876975818710431270364129706703470121856810161815134863157816030584048272762365473056057857609583265052726234209215053359575457525751806628756162202447433970599593302247312148210214145701005973368617393014342884439549785196950132296261313443605316048823095025036843046809205420016870506385200538983020151227025764983104004831064949607718007222743773340666468217012471004266095513016906863053554874864953896589390438822855148337916067180938664744818637002168486144536530890667286921903012306744660360153153080811304237677341659065429904570761053453159282748828485589512017044117257465985367407807195185616732282633585173084097839613134422362228803470189059955268769155601176389900816422710921106463947521488954907738249244324616548685151229237768613229896145323680284469503888953933097346133795272092518624062113744072863383465296937089850498583781660925166406907465937315746683353190250100858635736331308654621403335060087855000238543558149444107716518562310814103480928318784946910970168076420847227940979344381654979907313689313387595995736452575514782600254965088394237623580099982568245765841342434830360184548136217784786674349168663638209625676861628235773351878220590862168502698073223163292233647439152395291502964621448005608379902335900798689328038281299158811021238526046078134237211813454459041200296104199845922826874737971771151106591707482715082468922519095017091913820149326803321247650799058503238447679670971309698221848579515315758121733773132533699905232445389103345905052805799525717708690290786459045665999822714700786680105529397352697266524072270396191509947688782985285186057484132839412533526496628050270908596707359855647225791765611647635878676033539670902229850949678467190227804584675054828286464049432234865343992487195940206635751031045287138796281918076923657965515688015760523005327689397940589099624572836634434241024959386031830372022523774813879871583917584342932770628432827912136715407434564465002155135956839779354564195361838507154706127518281653752643586313036323308213685905752902903340759391702228689316705761599402665456179529677128415578719646702064283493449452237050718043626328008711530721125269080546103623391994685314509726068912151950552694978061138951038057731030076386047496510419739133216476945615302611119930874272049829724288046135856348656578997665582180849033313757746145452477691229886197448153136965631560686811905125992899442755601756374848050763014365706389894068210291893479022291508309751968492229286212450527035480210398708673625463439798005468653960865157250550760406258284869246457380445008204741307296682687350276128829088636111575778719748315927414788606410326567360582563108475467993404165759923103531022181782621005658909786333941191655314194545929249206841031965894878006681297140057652269579619387249156487633910625196375780073704733540485382992970099845842234492184617835086240441312606425471554961933690841633775472075565975038308230479865435477654636913421180545264602231687789794510922325517983993282778785900607891488601572709198759379057523201151512385046459625686777740749226729366550446916879803074154256335852706605249477191829871442023823002690561654803192466383225592227654115178634502362356935614024388509669669444636702633679050067844213925375664804745369225950443795967766213280048475870784495468019760101152083006361848798175322487430069575735049447335932066211409682835711674546786223494781014733690162974216063541542036345231636941468562018513851293873175236376163513172317482107853028328931759337458492421361750084483960366862939887562395229907402268394442041939466189882007101962760618160203131311804077314794080282153117238634161804304037698296714812003909682177822350635303303597033218944766660581583755409288767476726629789165881269581735264796166038866047508600409554487736450826999147014265752804400970427406239263812783737673910692821618508959921950448454511430028848588535019100433831265862463466061771878288706075701474599090130269097253431416049919598762446801671778488234179355734338304211595471864518088751889143113402849048233173483355217520927053113331542667061822033935080252584231723509328842718680828028518625197307119586363357437512297434030838524414279891745450852692782184429794561460017762789494409589948486016567168106183457599394947258815512107319778650971767940124082968168298128616441013056624557550621471461604020152177360629997978340312209680913776949647881867972363979362305048289438720541133808240428632454911530449654982955758765075544724517889390723583718589641394268712468691542561959318110808496373272551642093829250824798792777526453295928454541444424468414486448264194527214169042762077822763928110921583218807561266311570119169445722947044046561140629922664986278256283804427980339858592157957716766241829495611916290658776954210871157553627869410165075073704652735946314105572335923699878435788836314307758672896591055139953639077579923710188962493615467317318928690928017529056987260714213933062962204126712062455521224305111069294465540250535817046008712010333036768603545878998416726894047773103556398738969718092257740384081046949543994408954073308098037571555395552270190143449806704170070311418760884866946698013066812814613409949898858137312406316323733645057511573234007015656542434896745735750750197046437908407752762321546186494280715615356696046040099290736835277750801449782680043927539059926190845070521861118777435832680353005739211253433996503570594066437645909488778172199382769575486562220229622734738165947028134430493120808977834061253094492014411619439326247726486715369338255559764794543693480184447315026996773769362961455518396752431091866201888240031852549923249305516552021148206211573634093972185788345871245010317370378259118452082135307450443249938830955704704043399154373781326793599554021834767034167821812503451963968835397040798887633973034666308216935242771459659723293648467994020339169587175105521457891682965818785571844604694764096622948361315571197487152232570521658674441124787652842260043982832174268969796230716092392451306728905435964498178900368646030273476219434883380899496021769868607380881153657478575199903318319588036231992700792374709176055042999495587807030001161320236826810452111773458636720651714359137605045024833800246351400066104469205699835905326068874861401781994119807426361011182812902077293811712015100982358267200940530679129038334716840226972017341291293779792287255364060473013473339535126859333068745241351257215748605383023909597410403496437577768785401366549075717742967267288838621414568012335047508534480836786564990487291492537124796708279026381021103096699209235277711973446297128907824107478767387669110735510136454065421812179318171654358050610066399055266978294435699197908299888784270764106647915489098255902499578510350609341610691906854066205394645306088348275785985561577033723027311190712444576657066357007426629255035330817442648454652022019147035962916298374424733530533701420005538052481520018613689908542328619698541056064405619780414343387355894483153855821271617277224319187834903516755257910761540438604792865397059746331300546078253728027217818167108381356381074037061383613389098031001277302010653857396109252773395999069641747740800209679953588610314285742428919710100352313824252007070637797568831673188633439581461148131813003471811030880036634448292968296644074342188473107454130876234441372456846010846089816467820477926490492408239479234792218314042428898490729418175550859163588711865943365295465338716657774836052449777357251522417462531704850364536147612221771509663792504892663969965248837093524508808834361208589966154266982228440352056033949752011916397180297096128305160503080344640698781032037314446576521082139809661832156961027967983903521386421862308924727902738888886293203139205800188091793149272861613389914895802355148602788907348516294906435094434911703892773327720643182203692643337836647171574494133434988145703856800031367538030500392432170004209028441935804599126293523633366404629108103331942282967177809526461478571294242061754058959310748133979440991618339599591306148219717274629439986752541306486636424774147244430722489282774925818987281625654239933075744771886089622882946082072259501385156321292542226946657060002894231443572081986340015198811693523731124674676721533356183329773272276281895180216124751103271359774724567859904675146693426277994556328769235045303217762514944043565464824201991384918411785284221078631810922702577411372745415935115198890715497254038196875176366649203550889367794972257717686919808415403711411704522540766064281280568635646947839316500006674557431265469611879386618839821729656348386785913371764605605770622386163711164180444183211658507965652319853088793687917776400118510014869727302218454522347945181318494437219427702917133098191379676063051860478945822800442680477750351047806161040382799029527667285845085343512576253491037524114651799469980352476269573730884453708084048724218001621100397109206982018583257889916556464135370605533486183822855140608800958778494814520702101500811281753275679735415559934956404998499391421291167191063283413627792099931506682671288102251321968126792692679704611414432949397483837660672882202461352822284918677692102292218230176948822145600648119701638208846960973258520312002253921198087254408317061615530664581433470612080782214539172969938771824253459418508424609806804283122107740242909064880657470894852737119823071006641934018301488779415858707623924747364512429170217573816727496628707227994265766582211910614852762573190581274036322960376953142034974206140660274550268951610262843094865312274556557182149067515599383643397446378276941393719878070384932104795172959486458082201846690121136231099098785769758889176711562626477866192134478833166817794680621019834548530900636404701126351662117872692823800216108087362886372181511370625930794301896290420259241510380569793908604367462099324954501494591055410959942727238907504234131728712761191430842139068996096202962694691848306824468840184824019937520141923325634545921957829561220912931259257342124060064119939881165127639259310461835271461441994697324517004351504141995343613494188358320975733504581631590551393684990762451240608451228501527461748051801004800291648020741517179071281514160780849843871886751531043790145720608202602789137474346727176968491400194893879333172642883107538026799031525425873697263894620490312510563607329292272467269525656165183903786345848463513961910014741118497781157115573711048131399897456586469231657701382000613696557642880511477348455948937697071461498084663970091742331081332004195719473689666946017475066998662421707748995677732301755941123191594360118313382962752279599096698259585560689072830160552482212442203430865799448895189177807868200700582158699885180030790166500956630527820805298468052073770474955088805641787799847152550630182492843027323903974358519012496141896127968981764502712866650972411169185297485367219782333399272718370606794894936396865606479579078004662237818376743136304132777318715178732198680714451348094031542496959378884617986270683478181188139485232222347933787913242361742819538033355241380983298154049478148989005312646588731908961569639371098698865966336047178654754073847696530172703719366904088023517798788305173049793503177546748790207398523216738138504291049228722946068813565571282002340137609042934307455517090677281424432157309791998351819888782914495586152527262830215387710258148552728461603334559008027577063967922890803751396631152107271443330472197109276237402313687621962663678378216025326948274586541643761997651835819606968341928334320442268978558207883874680633609504043093838960219402700779475207363137027051477335099716310879999163834450614136932557668488170226332140496748965355506851877092755438744014025440112732030083886733850592162214282960472218052226620008798721497305930678624150262328687624683195096378028136105372546017552084141814356023287223552450929879972397002872614555469348018376874529147358530340756767483737205874177971240964550672167070387149514418763936943123606866282432691358228552767013891325039036011026998737324696536323419079112892183292261743495041268082160693945235472606746392853009491408820537758494371473139233737100293304028716419202950265199638232792792944683019840660096524980939356548619563384406681650559822739915040336518810252976070814137182734066498549327198961703229023499778337226393626649689063376722923272942193700771304463457348573116685644555511965289175328675428328653972501228229165177383126424039297560048980412329528388136943289121422525309510595677610430049128460501619240463148348787648311300548153310715871971368428834603507863583307795811981444307989058719590179164526293615671612315413445527249810215877723468138211245393855083611951278727497744586244120713787809682648287987610647530354100273428239864544975952804634002106609104673526893769713960943344073024767228509583235341407468145265563114099949241070631396650206571525778830584261264553740276688832015945248537610597821590875068692826535948216375205986856899612909954012262185716116721636097614794340687872779280466178513535490328052184560810090100993739842232028530215560431950751017408963594853144908792256993017874235267886302321295075832894662845989129040332540807216563418831774769911880099910817248962745095756446414447588054490335117427723164989920730311587881757645182932100208634468734810532909678165252541389954493325428138917729115851240820863026896078413238029914196688085468388461232569612081445539555625398838786550827987454858036779911466447479795000594999057480572099098633995409151915998729179702227820660788314962547684701285074211046006807301138683354375765219573149882682297348504833376872105663242862345487982509242339502499871739909824282711356473762758970692210191675413254171623683816718950880550808606006242050775892935956897080414526514699782987827019650245883865679849894604457447640225876631807084767816368605789559970565348970284482216257567422745713516682152722661628170963748538491553766786251493053729985043974624526750857333835704558917573242213644922784965057750537129541518442993928124027929617165357017724889504094344869139686348667666453742371098005137422830312230436498235782402330255133146437403615016353131620202186921280140128865806208500448328189747985075140202492220104937921203669253918624553203795442696604080052196705673323999455294790639048216358771955989659374240574716969950354252239101274442622456434597767499852666672946790475385732574114612655205628254032022138106489010122373765837692742505430620281633057999207602047504577967035145402699542490188652144119578087845554407141673982259061601245225115890580747061295950503274892191002554468477002821100033840573114405584000302142585293596803536528940186145022687226274226283430061019635266875597102863173783535901173889604971822299229670829135850173851753678129119484377415749819816775575408986241102490184687444706360949553922352616702590794641407742378485681824122017037926372760686192483753130000918467399740189950767583145274883618201487512375562708322665089777815254519834686676899443837116762353871901142503412171338970650165423517123782916055315104239861108240782910420398207468537530902583099729030595117241731651002479954196227584726960598422231025457600831049360328694502544588830296979754164073459625044330814203687214414101205027050250303861112560728295114296495993306868850302561503924677204621321071690627761676449597091879799169917053319047013451316031178800694015485593521854707623680010959441438539977446932530023347985364141508328093176396744970429120857089104610626222208563375369252481939655821292337529069003722087595843929337947151430329428997960906211413110169941104524506839741593242289199385481730195193425240605546174899698068878206415064185945040007097171482709837438808023081548934471829829009989966163331532532760320642871795936415890126059825833181109802054763497639881151983305114889506031397746191274101043941465092511514054344171927536258922060803152052082220953647421954750675936129817919314802925130794171669748597093300352541973902306728885850759707533117589113865694944482178526276369759159628321894887085422067854898928438911852156229572012351239671316762822920632854219916923385107026377072615477499556094580082019307807351012944058723545921829634846633522535216850869895017533030727113769487350852100214561806242411665335784628011965535598793332019412747060537314062981700980884321827033361552046962940208512379221440174383487989145995570388147914695084186778728929663056012834621406907368573255116094292426905921235508782303098193078164659484658696027979713590090008050670578615078508386082506056382578473978373190813074913355752820670593272433258713304977326939769255851242341846689781758129741082015301249870862998230040408445272005556406632645018852828072692497619268027933173483563150116490329227145240110544621909220360142378532991383818477381554761079265296263930569001492127051782519625487883738299966986499843486777472946847469494457827341005730589978306992658929226276542256398200986581770313873791568928001991942190691863407412369693750188036401237846918524102805142576135488920462561704140038747246061684905066077852849970956011303578489395294853348364292953073636667062936331435165602738368046139217264021589777278825223113448668503845515413177812157536707965835780226407208416313369480628061042011598407382688015673334857418640812393404343270944906240260956014850361250320123929166417874660618599313714443351482286855276519202844680306935789712378311632762140531890532048257993916266050469661414865874414470668300484957898059896426769496121302847286910021806897819966766375170632381812770118641993237381163998653014086742367268865566890750949469268665250545099715145678175964927017800396131772627532767568194016382918675072646306705043600498744248015917464504550416135037125228335413371502515142149334534236124587851627802297353686777247240115892788530593810094042423690169194450426372239876439068713901791020400218645996642050655195516011017212609518768397321721841223194550723615676593928346809129382518158704351722446283874320401917052867601950078338180241669520531176555833099296549971445559431043167095999046068017718602703513754834467822394593492674323715201600899693436823360033129598101982136607762990013523698940352982191259194720147974610330177655577957219535229205588642692005719233025415193913329301254699536113606310838470662190643817407961427673949710276412098133005638856554498282029228391797079633440827684103429904470286304266905157359160482372204736980528140273300455273276193079058539838108168212747395104710613466596007709441999157057291466601698572709276327048130950695096012128053623344991758008703696372465530229072443835498596902050427808240727998374696554673365908207622823998002196052673181276040162787000604519595487384611242065968086282252542589231332468210172945024498710337052750675941772187917238430519847658639163381150782697009089100402480290582814785901846789074564573372930849768584841266865722112329983328423040751418236495060666801267063515242177800256244948774289607203724152577078081346208374118887563576064949485928292988548517305935553217367348244709225921467176614179855549771281851823353237873710648999003098924298631411942427535741779236763980589077846810648703312091921971009086111192840264351922167895287586973822447738082021700103654072118344857849939515864614793440958408732809715956616504972482490786983440460458185930681608646073704762556655596246593263385661297401856090849797334714675456696351761060628016185488161743153260261990926309341468663408120890943267155775722380825657216564901182846091129692755489714733552951995082054513448159625887254944244053033354963179763821158082768488817498157885518466865383107288975415925016086994492428274498674887356599508757526403273918136155258350388426382522816972676743012026972751033062060407203670036507077429340219345747240916062007960878128076607395384725885917292130201084731271921215244682281699472925561211190336933763531966324027826278324442837155035684467142540384446928335372934705831482853729835272852966467886569824914747827812172729511908079754163465345055605153687235948232776608254005755705942650936007571456444840582204645857064238121838547642043825044529809518298127455428142366071536478346549547646727845172603645817546658768209910780237763036630440928962178238154572551419588000634396266545864038224647486654779035303110423377505071456898032742187368456023186325446280418181620567505099186475387171736117119605399886536815532312934370993953046784465040392822127892169198493681040001862082130725012538996891010640156024192926946714913677097015207555497029144543704286890628535143485016910523680181641965857681606685034331639215699707108307756837883707174802649313617433828205959020613251262384690573425027983594972794255874258220983181343319735731696608728488832195444425287584495747577761143055167400787652495115116650629671185412328258465245864289469992070455433211021430758229155425713670243518892479358987606731940534559328188828617702120206006379532430335291640012106087377128766562139182844257599449473755810977171772853635017618300300891692120159961951276333310451840432251928992055228194921460621948946999270740254267541690008799117133796007783901477920580514519307221579625298139359759398563288725199807845887363398764305454852536399290205836981229679424638163263429378306258476469736578371270873848762405267130936616295180393205659915100398044293091703906400116346305891267333243615170011665651252643950189765731703205334230484785191295381158860080269583626368069012761051906208815594301226401351747601602711396074306103904261478103406539923951071616783163249133194077518506252817625965224726553868269845146872912618172780565106063581173823185787549696451291957170351090749209306896193687754918271624592726187501042007783177711054652078230674323762046992028330796429717039714052574447997117725594870250234723856799516715414413556485998563521661218015313118110414327158183635031876360691181259848527424240108739477254757210180534791458601046911318536415847140192320707707861228346758007947340806627918999817001565616139304684811887572084148490560898881923294637461073678056197987974920981060777332345697776468648412749743234604853431111787072428903662618584484690797293643827698960175077346109120979487897611503552067381879042551777507308779988403664636478965473320098415953694549105173229915061710460197142277012910186554773322800220050933127379775783935514864936394591814093879712333577376526161991368987106549787041874513149525763942828569838684454739030814243381043945649342126901625650875804301926136981907472424286743762349821707947632551618047458723291457315807824740012838582341750076856217595121053210998881544546717072066892763995696311786360313665716695265095822086867209776388267173041670630600762308880143614024057912015082667438074419241162342393985882187529467659139200166004417787349511349662725499545596808853837354877093665260204278971745121278069260542843837700547426832305998171188073635691149439791576361631211223451263707065393010522559671022275733603284889687753558988471415456965215777860625276580066633319468482468584250832672302917445885323144568047190851779604707850428544895305072081389197534386036343979596775162473189435660725114346384458316751685783677893791028861558666301348535113979187374959356617331907773787816195409905271950802303449023543672518806404541761472758747053278015501651448560198102095079893637953512283603207202309150072089760531126172728613679497450702800675259106961428744141464419433408020482464679736306602581101439063310409180685608637396693563179028608570026834643423716853385034572213443294072098526211926121117108595073570393585124818675279960983306700512131164534970269732138408216789372219331901878612700737467297651517949714531873626357772108228771753747738803941378300770143914798987356896666959949352991804850025685230692508213523161911167408276756232154612898381201798650436418205726852341819937250154531827656360250324403150873686580637498065221108411121252270682597604023328594751511364564310595262271739098130436022621682499532889081408194635571246535547901412656790234687313993757923494313875458018483648445054553553628348003312956462475415837197912883738093367859617623980141365062906624892895059301045982591575891422099279562570508815118525875683078060271013757698554916410020887058498672736107369132000287080467021471526798966012479798419693953323563408574539871126845156834015396709532745266701948706369715785095780860424972358553589125557563310104310155690236820974123076561292454848698462729761715596367028674848311411207961257955662538173895774990193153235626885923208305466715347685072552849240796247890389894658744512694381041564606199020447913905559542229168037880612774313034471468572553261022955303695469670183355921387045858233269799548682418038288574801551142841428990456887534210151466974578019580675153734039757053384573525699678080392237681202927158310097918649226360742565290585001573123938789525049897374828028702833319206554107864218286080201211441007169290679581224370762426494027892556097074702165390221626625026682559649118572347725794360176971421917235296758281443242965462313810399834400917506965101836331571427462363773829184281521309073229421700840389081762604644557651796914409082381962540058110901322884519171892832934695018429416361904649447359836491004474213691806114452131713087667113077045562117124290667732743343521068696013792842484267698303426163882087026424648386796874395345317749533807794334947042914088773806331921090849418988999200314262660385355981910950889704511181663083228009708858964147625538071017427759456231376702257700704154141367423143616209592388726959137981616286644351013103671356833592288641767174829876068323267417055220402181040184390403266550677553680516206307189298151536153838155401196690312125296875730472914499525173271183853068332625581127680847815413274177709257436954812648928527014273739140430955968575665428723462530137514427351176247598400497235368231925070683472103645484144921058827031866713961976827290046798506259723556658101840286488781393076626187426275686098811401661267821458416120924098150084912729101127281616014374212176065982856043725811851632529243516402129096579244298409428244554921278124190366068539704789321832660198564745250547479812735154569334147606430450654284145837453831780981347198377109351387562791203611853873116330135242952404850695337912928640736792403506379546702244077331484253549243857856271704464237658417472180225749118121549662517292925228999376529474339005745446992842350845665273015409992643071028901268705826099743238684201517228734952793478837231112018219699858409817246322457615331070946986032129547099814584225605102368252394580647465831357222327256884510343447937275134594771173936662707028578585593644029737544371054430269322640977313349309735952343547193500302648820485217943933345914633495320183262588138109732002247631401273623321378419226951845410850354479403637102181263824378900861666071677878708321396826227758739074351022526649986727550565149927554584128916745531477859891415573332674462651312292323558984802065910851786712014858031402936342293602442327037077895540310358763743711772652799899211865431082491856830179711555804440976940563751939366447686677436300471438599237167983954820703332439424276082121522709478955699893063465510262794764218814565717654525329905543251029299405367967979334676110773871086312731976451719035965904152467299628838402533574708656326973542939111318322768964441099284062683182727084681937495154826576142490406161795524244302098913958443509408774820829891055338581127563954908717755404023441691705279412813495285391816526301811904304155325763500471855864728385948006491998690523730488693738971589422107057629913149919722331532164795926508137269982175250854162459023162663988107302572856412593445978652691544467495868164219063385910862657773794863369281741172216553029402855545578834009332986002069649836552981859571189292736653709590004787444749437506962815175075563741069149823806175155497734604137537885623861756651952009024157298540529999037066286339230757920640585259519662241878325246485464889184171649493808770777178103150936863668318584517458040176006901616951210892286620822160436778871653274597029946592868390627825986140345116593682601532849888032553251269578372812095366309483268848417163916325939001402007989154340607833671349227861390944886255128021076737885527996561407118215973127661463746050189197641300929393124137724230910929568171955894808494314944112040879915643243783191077404376381938627605420546945980681586812690614850587174941002104059224275118331224058317601295888797342746776963357867457264938175577387304795553189446876960333898792251129273454031915384931325833841816969180923046669130556896625876860259683531700003050174610213636745852654881146830479344884939203820731767915406330870999176044306832302707570746405865100127276250449464105750286912999804802540977382777285923104574895515973477756193405296397941929284006750498071550731308280694904643777973458044632679951728433251994815745606810888921926417723004753911754310347496350084071344612592108001477953662968806264347324647020558029030678520861240624080798500219362176286923460682244229632804113911593049351553538905382798267325949960239904498535815367028675611981099041996086174247417933117033378041959014168453978381239873778452379389659609510123401977968427288223161758954415174427100147971637841940260285635219833521355565807780201587025594625625878822396483409395388477609229770463071147715056302166200438450607093232981036584591624948223893147096763674597837842290773053324639632691498161930116460400595046028817033803610116946559268549991756750599358200085166743167988974517147731718899032516496490025709586769120274350426697809545879465314077334070551741526958573163322624343077028357620343494389416094045245711992833469424026314751776197140702487200921182830344701463435473023261983965475249161884622447136537541763145132634481170706851070651497881188558607580876120522710837645927104919218224502521003769375812567135691469451605082154434322127792899584287487162478283571284115332504207286698454280966744327349060605372788371922871621406830728192394764054249068803791681133111396020283140108694730706717100850695198499797472231757076008411485710478203324688428202991499165307964635096804328653274787202165826481660159563073985439583394466712378545166939095448604961824073870352705824714653045207195677198922970833075613429833202550618844618506531027890311562486140051538499107111730523042557288941435038907009469743820704834198685872010833420525608618538236085653804870516625911558358269140140938720805501103710345687019164834461588878574456722652911944615523411638179735389170789398218076373173209825782579470368244712649282018674450148345531085902696114995988397011443033752014274579360663572719791352344261830718730322745775546772103558955691660237116305085905014112892254382561729853203014817465805747087211368200070811732226652967130119316878586128120877609571400859718472772243013518653908067336518214096259368507545350880621247635768023017458302113116950917508203291572957084316971613061061068758017454076457858211096422477179866241498531344315792549775454120897964256875285594521764367122359422156661813912725051846548284423675394178752422490904813439363617597038861456675900893304646690360974547890434578191281840552921628741109867693560124782338044016889865114180082150128084546492982160936176828606641036172284590415509521151754529951789053533550326521805944809101489512862309907143904793481219405323757314138535076478799903390280056063687723256721497709316452511389076211244623093580732501177892157256832651677875742587923969872825048842741319245259193657884475160286647639925538941683784394438411204279168566751738585993285145224481469377963338222851632222165446482728928616208047403933888103703752391084631723519563805565347977799625738094170724672735804110700161346262955360471965246531696375750627643234547293898660699010046456621624041909747122223846844871311572737183065732559848027045711058255864854871990852077324374989587378819865409930677273652245562868395299095159323879969232828177741001839859682151266786292263710138375714566846714746888910568156193944948720533611389942646941909788344221692618471820761263750580531525173269822181635151514567322407791133384560334253833014362200455458238653598069056854323780485553891951456563151078540805153358522427436679372271355546108957626566450882906903595505676112542879547218750107533458340513302215520069067609286551795530614392167044446025334448633417684560930161556428382957981335199960705509850262900692981228471978655518706945045062077935570941241803545475899382875579403350090436114767636682815602285578221849363855603994266268110162134882096875762672537009296578527141786339325378600408808198369877519331038178680688726661361016025810067231341325077611583538764356110500654183562810618838603573186023646825258177198924507593643771052947855264474862337930900848441302622887784750528896574732718004954945902840864582991434920157275600429800602210485839232269933970563890590245051061465918222959986978504346980077426622527150450616064788565128357548231002367195033924025570273900269967250723609197257581410320922836463130914343714652774535632785327137856701494853412701664210542635222847040180018934309715833214655790977898935434649777999234461661583421414525793946176792620366689933887957571345890038158003644075411980802509425410719564847357275498506978559435590445775328971221169891290462087083453864170800510383531887323639363200120760273746879807066813911713333958989141957149616273708855488543736780932644361701995301291936384883000082746646749617113634309938942838553297105873464420021807327913864512478229467448580209129988162936369612535460412453823010754319347586486139757993899831075178027052944895889321663009925142534159190217438620738240914932721430309236668056901603112290563012175428254740741011189526181435440756229153554514913467743731099873613767438911983254741240514198742514516541593338642140511349364519982411119909883368066876317735676786249878173320536009330240994374815593901475269130630698890057121297747678468524278266722791683418182850714499642365812271515161125137375085680010280426053248858845675474633221930131195298062715858855027434812662289167794169059804940291435066872787426994447580963688889987072560520117566180078420249934030088576191527445541191279285675741631492660374589393804928226443557929110840071763462299663964315267220197632498630106934289912988827081604493756430338371811646229427219463691757694452139108951919154587742332637179553967109743063537997320555295831997650136876586006324467093378515401844298495224136717746424372588150723826004630901380862963186760806902484798590800305622234536045556221654488942650672347929526825801744419516977214220184590344862467481054218158830042264565309911741863187096731368205254305564550546758223653277459917565460971378462046821087018531961092389255242330721956892668124582095457363090991243258275684330501779299537398798619735095484192233757620698028132865686430485207470877376332658646183708311768248977349811153059000117985941697294625682335262472245577302847213809549907076969480055506246902668083830299712951825809272575457334583879852429012185107125965771069150428405451110411776793141242344255557244458236257970382197643412522135181254982326534879549768880127848114244135638246277352162442516215375817617868093692039399703144634596267802473193107838447553800535655430498282922042353686477057135326141201845732046763912571759136601679280685757196937223345120381248107681365528498149810079377091497768827394746015379206746622765327173341072734784888362810654813375901041063653542481140621400450175542009481664667982286525143810922009492814511507370204801360889081414283555889546089096979228518765426792269184722287303652073260300454241604752813775635478525926975124089722205612352633891243225152451629829084143802447088580519740216106944091340061047388832844982583874907785869170223775399353850924397988277790965367847895150759496148636152397109704576926022049386850530020992497285010978697340403633570932320055673696714897842966863459478481039437326207554140571819784465626150975055666218773126985542197741285531127819627747682912599383096100726159248686317972735691059198999783126651284987516614768644299822519537387470070617697545600112013155922619717607558341635814332635604864634731111909374734561451962142165787663602336480749902294604819102165979185430063342897252541265656234473385297009760131575832850585024135790176758515637743324779844445904161040199554137060368780051261267813698854219174207436751129504583197182233120085192918331564639065663463199244457852178784361728023678562920353924515464030797407763445067120920462134288971647110654853971970609305543715073312782524208454353597867724564854193180349283161217147901767361478116261045102120404772231001036613938092556951740190633465251589154915973485450780929877438039241179063152643194972443478790722736709091462936830992620073430380532165913354735303279153531620914624332473610793199763508201543063756131007223488745251265525647149426574762119610806665674443969156521378223497492723099064706100219642446145193020772131534400298237429959894170507052224357986424137351644318905161703588765708817509642115873769991427822656477493507685417718131955144997756481862746889981802615976485204465697739084758571691163677626894867877355734188844412375778596425600283728337068865488503004477470891816888429603089587908556130634519751653727625220163104006342043530726134462915488983091993583698733769493038257180841316048397017282141919705502321746433287037928327343832759298649316025865295454239425852504404115623765611059321643617390592188160276442683345171436137232249557316991405128531555082401554351684232661742636543508977177486219749951605543194603596720918324558081461145944825724150866229000179767549268948158406500505349418279430720048123647096666499187813707522736065805114391029845705461799326503295764709403202111437198627450449654547867333159333132250453317194698954657135945058894529221254077913004540529216884227870472602253030161525634482613171416603859633911784529456892801050764969866221682252730137514976627164404896916490539039396770449466162452254781195285950824180707048370933509521683431338780866465258170829770779831088059106881615999525750148798171147155890504714670951288288389765892202229586785765802186875953900794458950542256657425549321234517511861626483838521190567878030371961368003165206834860823426484584659165016094974012607355902408884534874155195199313530038859953661425218546606221033940701800190139344973174678480268983334713075287624772538203123940471313739663017685714923121115912556179067812167898662746276684921446391554310297026088902344044629881923784866684890397891155436387713166323179908401316370007443344040724334417587881221159761745031081856566021329899218250258998121129737701191451786205164678952501267754321736812817084436630388993284310060139355469007931844827756580934662696163706602585892942257910068741602934799968673376734159688667357030796370152295516388198541209238815380881003625640156929495266926804720663576709247984541919445864195413387490657534831055323061576796086382164418880649248814841088208034737918445856794577049510039877927932106670260263746025223084789894439734330122556611685082419856347076531785014307904793472977238049954321857089095490828620759228349619338991347306833145755842371842797631158114324458608890070740019687046763217187743650218832801620589348584817296946748703005895062812022332041055947710375827509189567275796431826149586919761272830993492068249773020088244150217305736198243202280494605763224968127106551694780592679471641108528520969497296897572768866917873761506263374785687961268641130933076125015803512470126169576872121807869063449242248273068483416898268902889641696522507432070590877918409917198461131691194613612532822817663611312241436155727492424177705022708348862167290168927959131332505043350132629864157170577875290553999307733242323913296672577980626158696115606507216761717426425797056472728887064231942036877011321219464037078138937923659171838793428324441677592404922230092420375591679277085859444233125600500380032350248821181818047507936827374648658161511321405199676330562756726256200463532909031085457934384621720341580562620630413472234260873926985116039973386937921144547695011574606271899945287660593390968541959822600385149060621169855131760669446897153909082514504566206779805240157226883416066747146349701272433462551935393959555465170486304395092924896126645390814967415800856014574767291275514857629843079827127737092793296771561676769551556984060914166581888563216753145477913423372765666419838788454453111799611667906041634658811852668358963254482614517134448019179368192124699977760221015571450073469686821387041853750396565317073246263570075121477904266961167258263202667277729770633523870471450292004183742589683088723589916416700484887957341449654084498021351784214203275717694528827156452459806891582402552789269831051192830737640535463765793594469342650345080597685592498649735777351092351900444743288501577633562408911361509092770313232377409159456117980819666848342021913807846055192324089604961426304600950854340263386305424982054248010541063579185250780003132316448790069072376105588441098770493879584254503265888570629273204548908216260272806847976110119543293700986410176212069797583443263665556198606318776945507266867132994569984215357338113403182660115238412634987992285764970287802632036939188956427097671971544090980793176174857525508745515439696982367111877574916666364812955426805769824682706631157072423656193044494044886050690900490660912312304098741344481857757874126492618097538057397260824795359405907705219807652789371311193714969882169928869744545421216499322726445550183284011273254946668566559195488790677539751888773175142913343274562732927558904658117082645400822145205388371624849612373451279161004549874157727773917168585778058464778551797580154738921146212395066255205950081964424994487116851638864367838325224976370492149305184208629337107628454438964308549265640110242051213458162153611365257507967683590652881393292919025980472753237729731047062611634132674467913847852867777953392534646742362266246677627053882788201706323410590852396946890861567951397130221582702021747188493916802110610188390638115113632541630456889696810142003683548962555972825801381276600012224792061245606508984110439787308923924796330891322014206384751113054276399793722533597591598892760869618554857549430112079999461039625715345230193375665585069212639291123766024894647776374110692864651545227915649367145594359523925212273882740060094561802465172957895996325555235842208174407720922389042610364029468346455422227980238120674873070077100459433696863280977016204008562037961468077821377287234427972587787648923974773365039193810490067644962030300720618887434210263742520106347163551624054736609089089608620198674423828921282942712705146914692515655880540653733676934960999840432561820676756497242114389246688177547581981627958956420465029599240306036655875260413691251844796007515093159937176367788201151948289586975084814508192543867145484650490485739588023261323489863320877581436558888958759068736781699281829019032994362271097026250155325315440824775084151454806416107883534580529463571735543577739169364438097279471835095923267568100670648692506324483503153350997717281405571190011065231302446624534128912057074832436037462111883700343938113176485450335188350525298058809609629107374309216594597027808593925137509695542532132358372358351572133114825571488736808303166196420482293015965695574448728506603918457839348742578032245558210545669267649044273130119675871180144496604293271368933385549065999574742497055503242679814870011848831633959967030537756856589733764536664354931992346762578498481692048869197804315187928682480854810431878244863143196241564107010253232168725566260516046945124577031130799598976529374274163775200722944420668255560202010194619080503641803938684059308804488947085391236255995659638749623278607770405422894261280854564676756279131538038907953539493632466600242178326212755883219570605325490526529570452270647673986612918631042486294058506509072553280382787345228169736865087588654258111194923715347937402303252991354918337249301575781144206084141366881683756620999261133657370128959612708866546204114719356685183318252362842083283369817857046857094291248013277014871076645180533855317240820533746110720066709514224484397893703477890878204282662151681660420206213878131786538076529759646970093304325326752841702484081489266755778627959609578851024100332849986005363521694635315950279240222218655543941888438580736488396237973830540271180554118243983338488296340365941589947737853389872868168539387036530998294165347109731942332011257538055548655317134095358151667034383432492115938707618565161389255431906033793067570839614185701951221008318531494336078520970938040810464949140529904334180526153917811067080889876922873726252382561558135755334577433471488786721456715472611121369963499776504626949996140963644541390911118222081473615372387229543365405992955324484045494906557635753255600983159840332680429504315802021090839600609308617495476598008116789905883671308821383227555266913484284292000874502692061436573705505831258473216577331759898333944350561135497570406784756903873731593671909816206347664040500956245628674778110495463368001258053422028755931545711586996112418678040622775109055824288836523675842800329923150988806076219797511703602797362520102050852464937385809593839059643274336852005297508408874238069745240517555104818853106073825491243042322689543335781810520236845873317778946518824505696254998132956522128047155963931305290237348116456622210540671554327801013208958218463157489924718900748691265439378342549977952289821436613393673762615880204684017282355733044287634037636953746418948960689998637187671172472611490216839603973537991387617392173591482659234631098708905528765483807693634935631814615026168290154824066878260152797281424955891609522888597794229191793968900275382865339132058614581183063777082677060778956485442271990355194634713539911468174225931134422979254091144030471409149233902950050260041994881025811974657871175719813063202267193286853818700695230257011018155646358084877877866049586199090351108766886752330226888135804098731955145278959576931603762305572897066212817937120624617924877701377962565724624205860426688738893061961914136636138238931590501594886247029516613236877430127531654097816951930209664198608198448056261390777080144293768351410414643154790900153378469464976481385042562486371962162191419677323827893784310567793298886501693818107300228592150160195702089864495536557546722150468015570817205751726415915501859618401231692204193408171418555786188347634552106668515221085128069413053427629789818946832195273416953827464884739109199749055900863124523717572527242868614452824170064141698738919813764872703142164354141900481443523954298960581961391048079223954292107585522331557774596440401977817594979081418068123742571284039867051161364813786564703016456950697173299282186542469298590625427006070371283292767632601722023920373292917470437070856297656980097184618199203287358373540065600070050337696439611767948344056622501184452151015778421680648891421593712915246625350656281161171362014925283200340596174347121071612913771195743218591058593931930522521568852451459395985376261574754707595697646619039903427938686155568166237406471069642323446514688540868858171801929023707638383678234804364447461800828954017287768825006477509687178326806511508442093511070584558840057368630137836399612208021425677488512705440238654451572027293970260615989781761586464361627246329892451070841234278039738652676703402129839465044891868983010589856259708719430885219245571393065170946930230558755965030554668298321884720697050437337984098107796080110607210264424031188081619757771218603688371994315307181120030467619880007385329830336030613945160653072553476816307512330211045971272956253992240234733868138594317995835451605007498512343169266785756787411318618214235383256926149069395395080676004496275457538515401154403590139787311935164172605466460461770064938714393081730637876573112591584902472440235360018090876729057903229304655751450990762294043074796129402169579463477444136917262219925035651381059401889083476265399059951662730563575568583903605252541332553221096621027636348204439279839530382906565111604373925124395100460154995123337217419700433248572794922426088222733962716060692492075413687091621090733524105906996370605971868843094323718852926494728213373928678950844203976070783512330356497493005789366951559806724832977858935552832249369032116369923775796614819606422157263307797279310597278879903242677553900890318718252965435281643331576212298495678969495189025073539243005658220051550530372833101185373390478326538489436336412991335758857025069517202882962146694211697771150048536542940605089507300406399953972117513202095757730950650655348851938369705414272162822607375881325482979765822428770455490200218077832201686219446461261633070872727019108311307668519963650992151521495567553074797713588313794439167183890993305314647308073172871274231368851980077608138784357889777329016436105453958272212887990328092261263868310212411141400746106171751335334465548122345380790499205646637096470395530624503297060399576142297720558655387623854803055632825507072556793852911157232668494353053476822517669708597478609510011186405824709265203676817076887157436471467941901121548301300123666835120467630174504381171979306315531471212395213156325375323910002384844626746721494587949819977588856940898167144831517685787406976266111842404936555925372384702909392514061084699276526340094704977627567871827807228058740701015290568416050289277725894691907777966500611267553691201297476101377227748499423671004386377244269244060659645435393332602707446696115146893004442215734461081987569426653540407814124303447070098355994277403521543975392468504673542709138264967544812174238357452467430770589516916873816759003768396535947039766257061472777622070038629107206929284318116560167471439878506849077434091265472926937617961525282183870305695441891422680783763727484238647468586438444218975896743487310215834346912777551949206709142530999431619293767416740756331781131194073795121625569964360056082673222970524343879036718310729021259621455401970328506452598769595274601709901118393030397894738223567725814486058750758551078319428314051912984658464706548165271004100174478497968291661383305266093796257475178904158747070500647049501865053956243872247148113819371659811400999166196574347381911952323120165150508785657415195237810667922847721274888535009231738002881716348740641251682467910718132127591438437838677981070097509140177309053644733731036865466233980262181184400003318576450734575438416356965715325174803974534452060351105719665121329059807620990239664526414988160195820872396638456183672636188847141467497374016539591382712535497407813903316634230903231739598240809062282245932881030429959416313788659445788483702028870195684767602900247439081853004640432962469320643735881996471565191733837231653123744425095844786625260076601641432215018131187350105818958527845904596827448147472286314171133977229186385469114759822556019290810884766620168703720060355826105594398714351264916950161174027693940434131770707773276383454652084890405485408115674171654594338089830154021827207099956810892789014529195884586073916969278384059416145603911477752141487750564481741565101685177858559705052434260321953498278908279955557688872367118663045764297146127437234490041178246193860013118418208168169113319594366048190284352805320742589378845261987369478843017488463619674760765434986742691407620171237776207757864012955711362391574604107027399083525772762840613347685481163030646357148035746991312350979115389429813366395463758474596323515879189091417135381438024976047084382390553278199664119572357317546446904437118365999556003924384750331411426470626476239819945649326741961208276935790730909451565332734970170097792935773149540708542878543363697387219395553538446692491838718033552951686871851332368009372937039541778099019381323297371008661596479741967266331833784603587195121523114002406647565049390895268580504308821098321075613012921133478979348881335122844888338158986880174916666587062901966048930143201950745038420857703186090468452702721216632960586659974889711888188166004020547242823872756713006984392225268924310571317614265243087920753078869124887043978641373005006891581486726068396509176824440181356328299939493445467723893736999399656817497546844943600282489133592174179533379058907433881683464229849858863138908211022622519332489363662366541516910672918150096911429989612258920804206837731460655812418314196632686379860285700067701039113486570831346508519094471478591791694502881680931630633558803053349219479556745020653495938563889330607047589266726246382451201175252581190052868490700997178751518978044317220557159729449243054357667570398070795094258838443088450266315261730401920141383128702671529781197636096632030091572928742615001150162712340775288776548281145135836644548734674829289561019200174380761989167406815170958231385858347371522187249065253042833363334359855597863692917249554929352996348645220632042752099555514726355758186332675085324928741748399202283594293688002197110996247273722359620678674332885331651057474406006453373098014832765916806127375505173551881548454023479226562666549957875066886971708227905539968479194161639479977150166478262143289671536484796679121823068323861532222502110591014097248631390356806508070152942583233887225089522450825039934379057563632316660265710957619624368484053750916027064358566980441975211198519526520163896641535650106095569361831964213002076119028398989978970508737883095543566551787577586755863911466917373700344635615815954194643380607542187700466879599486391860695978062923869490833932383443541756481133993900824484097597680154984083910308149155097980604169645146167470593202579442442734720482629612595453924036796678047097238185142776600552744040632671682757025246387688517168219358388486530114124126721305803971750555242235312015817478275726989328327308258752118757787956539968685254303475356206683100759176215701248269398077506284770738911618170697932246776575929757630214381639479330474200843009747274426647137368903619252759191084281582318844656200699688412875656510229595126015455319228354269003034373696101558767679401390389637393478476542329970717589496176660819696286018261118640770597010877482444676155696487961539489899129465902488628346539008688468388142089118431162322073139144896171924343410909640898963571936914451321811838297330980191833577291082547036038059659836974829859564028894699111790047959262548252993229562556624077582898236904986570978595915056490763419157671090751712636454512637060338045303433531633555439912054326573386179806984740492746590766818898504792540107650146938558039769423868513235871334128315029984428303161807758270562525481305889032747529156616608221556061592174954282359000874663386410910739750331702781259545637299106893707802782379265635117912636336162506116954158281571701610810658069100438487398651785562770606479762935102575271309249241855171680956303933059054619151239718313758384475321004014945670016771398510985454108737335688007219900834729263304360449105077687078498138479131202924759885159966630905151634513670447397241121836908081175092710080183523106575477013501041401143924266458078261403889324490605889993865887086382093192679077541435098833155941372164701832601849101236576845797786802358346329795967387132491095912302626417073724316558909063095435227860729091345572243146130314484148976249438768220648929815036955951342625259431519708666170132990780429420929625590265060275431625763910771216423431416129650205575915490274027102453862922152323431287493756170239515535749476460890076383644310438061951529961510892650440794981329290765097895214389821504851608796687003335444883640482408890194014456575077986677875335708765312263372097232304005074195412564367201411011483056093726560456300669800022768833281934161540917140443048367634879142093525045208822147794951637531623440794460940566316763547255996519866937001747099481812561640556040448621632875763633041224472294979171293762327744722282962387145640926511336963509924926055934020866722537617241392539856819971322030275759535674179105862842748288667006885533995796199271306120332336965032523213494453681303883571015553138200706744368138638479611820193309890790810706339566384336550302141281276156163929050779321857381372707371745352623882994587065278773573619680253120366292788429812203725325560706653470880411440893221232265938970934829553064270952702242534291205027005861749385476628239002593358536216745183567963988983137137557652651637337355880174141577177699655813449164938116605868154551128836603293208222848318599415856041563478516804752277705679801054311256950825207737927469536644641742499197193300703229660724597407857125952370379792285543881693604230991179963642441703943894342987833112976047408411808234588511503191202907447666603400529453931093303777917438292062359031860826204642245524330789021098428649138517207050687811930558631840684555501065195224149565765991030531186144406127536435303885887889736280279658821396421795431136068493866140931508626222098675556078948218403285180412009091824974014303724540704246929656677572675257994521049563653771901899813586601972329617526925200899732569131636860908983391299021665056677608125569481206316683202212000620713396786633232213920574458187731955804223724972636839717735701059982545377363711689427469755816783309925786524706193813090825577120720497133976036284063286699888594018716417067345619816416517128981095608813950405014098163070783334594291841131538845903291990542506628180229013715085968178951966441755792378539637964917786102204432929617749648296923686008153885591861203665581935205857113063586010640548856818279159468777958031472303180119706847851039601731773007124381808362345045379333738557515825596803843458982225279546210685239576385114950007970806641931047863716123872756754075632641456794821730295136409421384437261983622339720007682724967684307652048351442168704614641849624259767916651597521178170123941160086599736634125096042343972272406084883011926236373773533776086731110653323092142664418974199206009813910824326745557101379593311035805602597271648917190696288340225049178136579797556618345383338972334308338550663198235375974538615955186659019291372522016719199906996764903120915676696056340720136902706697720762734760458183012588652726097164094717355390845779189104208875506532396839088794479522108939532411140253227113946671138976740062079548765231845393650696908890692767487070573978375820048632158353078492986488269418936795965688686266432861716135279725690956473483336854814940736360322950999420637235887419746526156213866639848148232625547543667224424809179765357818625196244157749260913233066454946794488918098107335250790430072840243043337820685341037731123404854358289440318468219777073089591096123782555960166050966815716483962412771999194351062153984610194305058434923120216074648400388482454462089877282149677189621923047627741584771661617607084385643133120937383157659669709304949237011727736230983368552252952258410916622127495993298226109200128708742180983598833564634282540080943176787038934146043173617936148632124487221197151572645920352259101740808321281464962481208261859034563168012142504141718905716643634663864989456858862162698219057176991472681398857782235442553514853235801329708609999237303284012922275378277787099823022297548563275321926733699285893593076652994328727073601614639810884229589089733994222628149639791195197244525154721715598815777279872982529583327187920728562604113421822503243885271281432245753106407698966791531424709365182497562437407841045464482575942856482154307327253122581477804800051379921835594177363732339327256546476432181173441737121688630112398148866914079802468717978747952931104667166171105798921605220565677619034781022553596088191152594137819079243024330317184122097501284161194253449687947386940221814043541826018508737149540066531924717385647032163786200442984200796965041879677251063879082533536532958148762183296667118621431789550410073068527477284257232709590663462515963890264776507856190200320419779388953527261051649114018132043782662176713161587955718262194522456582193859798856892352709843154292041067280287285830733342974461724693906952835598968229265092887785141914745436379417250324382256136482593479689878714269208599551460116676296573763939705961765054478835029348753149110584237305375933393591662512069946393673987285680187482414338277211324117063295085593891902345181830180806503682050942942723578012889783353368514859864985958077987116670873628137405355496229185913851226303698118735538794755056111383922872286744799611340404485898064699578025895899950978183288222055218762260708910842572019516741733708632477624883786485275757192277583329020285290406777822480230584836971841688797761186280000788086027244935532298865037605070471123261080936109070324127980928038915581743143105452663448036814150145512378621627357571437419551034273357132698183885618143230475950099521409407252495737224910794431719850901303469811507627970509662754753032345445374867460264057276711896932492007177596011228945988403117053719893984293576104175724525573787160385856782267805795426916374270483560115369560688926163426437962246915552092016651693301701986200064614813763231929616560870571543877938039468976853932090434953737486440545631280774498748648753761460043605197459700958517018355465306477357168031613732830865858182716430557133783727091358449532158537923986398007438656820058659801420277053018788448262817568772579817851360899521720367951573578632398106346311184185843592928847502842811386199517260076032436209212067074770038148748669493755175335551354664555110563512573529997400878851799987030624965695947476186679881543067117419340901316326397359026292604872698655430145649404375315324136760641446538516054869795552997387940019347609682211640544263154884606541258968210998865612443314761257261138620904745119773909304577630881972304998966486401707571742469801150815152618568759569178836847483123177476027526545799174564331097046374665527487127950628259514312273836091375716609216759535308013675911878215498363798940936904357179689059394140465646783902827415216029337852553856494191898326396968053780485114929785577212740294408454027308354094130200748990743493814897454917592820438371162505282267357387131436550574211411426070453797176111146547938495428587935282505000246144544939154454288099670176247986179942756752405383207746884001918210304948911031718729537871355378165985828318195161629747076254991934354973029744890271927739687955144736014297557107630422101260018803292754852113296145292364523849877689497266449460791968676864891273257640063257368666382898434343520463562691824104199921424519215130049710738492892473714571533684214689134155775220216621091279008385120481615477170450837673002225378409981308668759407306577222630153753158519167634900493661653078046394333173359887661895574788915400462971221999776146754077382576984680373666663066360778664760944255290849884920337415699874659692002688894415591078851591512951912538929404228600345678800362881992586033183681459832464011676113212403274727347339330208061509462119234498133974347453071212454705056914498488057033698844477985120097259359895145164451300704921683157223385011030331059365325153839351057274449935339679451848223044925611752686787599178504120581478051412041688205814801809971683177907321632709578365992793828755873833134062308718271520510662800908237627759848305016510253402561421783262279298967690466909896954077464695999554503680573901261834601853440868396078378316383964205237950996723753653998613924715198294274748207044974546493241618629181901589688726395400171962998527218302980413953275277868104637397360500429538290962814583394061065984897952819825028821565463141742273756100296627730444382577719772525941981632759943686475919316847077651396524576549604373649279830358957255305329056711984427789741868178474962835051679521575456995475252003050523832023289201582247357744829263573881377207347502577773471989010356702205746334022700382344291737461048741526044758446428333946754683527869911663240528618995436562591751038707374841505324370749663233114900367474555039512876655402094280751966275668068505260473897874696516257332396377511954930533267985671465890428298227927604739137378315955512698713644432350713020654507810794032474617861995533116846559820232057723674707076432220180586857343617538974338747313657723958003481792355013266438160083779955054415165001039960785906567844805680976640133349434961419834306803254678988142289687308395509054723747405546559518148573074523673481217229416624741962670363116819973843065068920690640970235272222580118882299640671969959230113542286743374159676614406084253394563900445749329716784098538075314804740920596602265291285135491125462502222119355353061131885818829456137675532905030509414223716213014435292301811745205913992808458721604760972212232690509417994418312017394968946006775920185889706054955969869373471410885962563896031278968869948737443378268220542316257325641411284168293501213868010116087640848726966280244261882027946222624268833522648843662553849656159484765142500532502297278478588662266790591618793445797799827187628329865725032544448100826654174318698388119952538732081430831295931946923557505351576411154485319377087433566747458009172026063356896925731952669513761548856708380415349317632464098893743565157066519619588465765779316190140094205293244969690234721383769396230103927601879102663957978490534712312787869440099148630166964005204097061031075918288546008780796602155977991330225101805893994530073791006977626287003227095572997893237898358560977472215915660725965768324920639641186051886414000744479483480728199052755190189492007788869643051467861379887078064168272392898514044304048790258417004666975923942743938224019555644366169699173491275405663995313251680727771209827808577966952867401382454231871002412010037139414467135713302325285256279384608286012293191065402507254738075471014849404507044757694310523104566746424520226260687060277317765716695361126627582029527795531120212663562293920274219168886545529774774944642394468493851939594860659774330792316122087367051287664031861186379690784058402059346492219118325655706215061561769926451875266952696789399093867066795008014673724806028856842162605553867156360088150018110177178330449069916255333906150733487139696392410613373069735085433744720674009076234173250391319074553207875672764614019002868249752787102735935468392848525590369059163144056504609770008569204224864032392728796634014867776488147700526730543274268765236780013023787909684193264354979314506579304545246283819330807319543665437454537225018656926117600806802509642836820600214093787090473565599746724206095155348752510129311625127821329483791614122844819729862953960077029131383442204227160313977393577169043131651681138859788462152084265276517607822631269037566534459721228145587450873508029822654427152514719956533964890724104079546575912323107833769594340506072645874614895696890130826666842072829635055408993996980573482316474624319364668089943968934613816669939004340161029288704751384780758004371129933483767380304375182146774404427753768103549007241524366731807630669951745185058794953746077722995421616987657449446980160016519925668912498389095924794689647143639580229673431272942500755718068529159385748323738415048833427256209159294126364652885327939230906614814789038113978900843570715710095708141873751898894441443506853392701613247380023145956781165305830537366995106575883227127298508500315619347955503267129983901461321291688428519966649791537236036218409457030763827397920314239310716337630632025599760176665438021801676401028944656951758314894154696381087902823937081292924094107949543276282689120905662628005332408030109358060511030941466917243067214070403583335325447650199099465380700186665256565682077516851830903982481097277582144553734213484025566788505790703231153074613505631577600710853597006967102559824932180057787920134272038813841623272383127114675531046137179569914490808335890779680329565032484082915888731273112950429129682121036086921675073392801972969383996644910397764832476301527409665067564698972891140540598032416239322269308089957626795313901762785563876253904420162810781570521017451614931530761212802710117790357662280639303973134319607679980414215130930132260042947197342483530809887709070412204738067702180763734307579577737093718961635527916486023216248905471929028028181506809117811832825418335632526724985011817171886092377546580603680911912835981893490949728060944397753567251680343231150683956918308820841460876517852197984235717103705322413823657344107645070107183819124344151534324943491115205078409408376922912815361731975444009064426331378064611989209818156016385809360407921189459476136044614589210436040950785592899930735894420903684466952035015744034508950731098489769343852730657857106134831516424405877148363323053036813748033490030325123000893439198176739032918112553529805453055324615986202869583875513948948832937494970430421248522196098528207108521902891141341639817800235648632879309722000449768730261784625484976324538313562842335021398448065371626529598795383107434055163936719118736280537109695792543217304376717693932917743442029320668669112251634295851960773169848037286403365937888262753499956041192044153464968985298997587538035287160839371721270369355671253979413609244680385839778265828996062313600533929168414712391730331413248306196753062256690521156877088962339515747473089787493613343881005470188335544923723124969602197429248248607022356133737627072870682906569131268834798990268812177119795920693159964037074822001307034508241660086289741527464635342211659112321551250868103148354271060323409003633661325839606075012376625822318323861641111121546475650112811327875849769944439766205172089531587973308073684227312590165187681198567860579818927961103314164548163183714038046923142195284250060244600926836786939020247268359469567742449824714280940339103634453610829149915880225455030766908137981952537261763699570417078644392110927526009456280290106379505308135779578532758466609760017762522983689463168709934388534354417261090966183220812234531628238453101500778882745969435556880562265216862492452264388326980752530910795850693844298017114812647073307903386254831309872276680431919870872428458495185178119095083626285023186978596707507968847525355047060813840910138438071892335426271506187584904023362600045834587056192111237500124682361214651731985287461114636415624750536646920967197514213949373060966070265881764783422656923361894109663030783660389462638948124521300863041206044368046509477468387285223751817531930994970343041593365649131335382090026628465266205321453626108048987105674031933499478676467252695265439655954819184245278392263187459029268073081329603220767389938381102380858166516527116653752288680876760047998638049009680548032234724529524653751310548112512501509527477050706827338653291639991312791993952367674278714779079107986179718040152152832191866213950446996647413986703971828716456990969474329537618749821929613059206623418032829705564012877066704530654361116538951589752673684946095036837967971377160549932838765260208370794951776741300295807858037040772437838737787315419184804438023112654118653583207358168943667238031272145042964558231211034241411537887759086079525274932384034357407843189203374510755591826751757792524287468850560400113159546934771316742824635241251795425179392742215100608366551692685568539276809481580848386328755558279407245223590846581298141936649200217654224309418666870172299255265044639923668410613134277320682662235962112988525699993398645171165987940801011097730495905506662830052225485755327752397588836435314233808899242775435656414044508756028658081650989895569007545709256400701394886666874490421276375571510954148992209856158833057340534939429844188204072928439292538415241735912863379102788144541162611622486341295100297597406087790112384497716888747539750423174533242452875555379717744809947444210647208346347228422352686805825255665655295962900774296564263854527788703355447355432363249630834430815173112650594069416442822526833885861954902921870933109578503701627968862595599234101328620215137378028080906112237568003765838433226898906332678175231163544785597704909142162044980524476476548416750967913262501525016160479428744497398955640812276875038075384031259558208422869338643515995608789393042715570702341124908158192831452551665384073207136606866374456681150280859753819733472607568312880099891426283658348938536579694591832083982825899597466730501064863369626323107695872100834904967479922940027081185442518389022312522901021376381602240150282556304412882398298535450328594020394325661558519247753631966265856427222198758623308501717966768852234551324141402599770605390694832474715823413901999532530025727169536416587987477710473161279080419021113040304269803881514348118744102026684789167651147014210541162430341493606632868628614686132626015867682969763650837649275471525990338609173226092255877394784916499913430260822392671684512748712039897975977784077605508013990333123401704341269152549297961237824774234346404450412424866040381206980207609968158913238102816964718955382077708921840360802713479105093714252329571026514870289352112557571004520662062531863172020923037005461912322267010202056010056502953314696592588926413373019617743002409136750119576489541517839639425426558002724553482342047562715680021058225478171058346872421681616947507645126294994689975626958410932327626135480630204244363862621702908332303353351785613684317011152373989898024492063702707467543959468626730216790131346736246349458326050870884028480866512252878270555126268945645685079268116869105971182554455821131799229394990722985848127013946848806774282981889008813859190344194383713645423847655619677914627489799867393216415679288695544318628816067753574822898904221807719516150848604801689865703649125608289913755129499666791179686494547373886860610732795503912820965842243079145968738966534388853494784531887568041366225701353057247947152164250665190894028205434526575961690160283187664712303359879874350564461946383538996890205364392000872428695511547864069362365461636611756080157307902165501392393068961642216934689850159030412449334159395490082025207015994161245148999125668667277745320561064496974291180318195921148940343750417911334735798419050809210764960256340015076010670078013247237121233210544192796586090762230564611263436103185605032491763690413154751885947190572113947023524223982004027059781889443407990755094971561858838935800627580462722591001248762294239503800104460852366145314538745394328833099951466529894614770961027794999557336203044771022135446579857258290079341032541480816656540309349207885857701142493324121023324717472250264322231285108327971864382075903969435310208218504967360224310438588525751012885600459289832429617332815220189589690186022958563463333370836723883706662143363830484171772015035258833686562641971040188510871411989097147665685681592222498950472455614443207128610191928766665380517518810012756237641126606138334436358223555870903800543753489706455167392919291486574722069167542213063427313795595699300941183463022072764297765528971305456485401029505188940022268204732546156568742541880674123434102438986443436302685013085814463441752635803939487269578690467408215020100108185387474112431409588546448727138400237623441374737806943995684288289054284237763375446458418925673593813746409563429727212800129228170049705288391276638854941991484232823318203199706777560139648935529799167198378070262714201530857508052253730209608407014968886562301252103695583462783474365063673601635748789574091879063230537242962366447189875395305948250498716836072275469836027444381439005042733920233043188176911650911334373121327067743581164603351581881958094970366220906227962348089221752344202340887166651343701510024103858051590211192076223177457338306823657897533109887183414480105810089083246572031278317986523960120495704387667447099179766595423687427540475162199033159129662522777571120111121887431004444896153144963906262370448144798157588038944079826577805085751315913271953549505015176736321669298214131742246882314340820651230862597852082749717227698788317106718781226675978438813118318119316104521345529591477494711038759730510042749208673436215275473769895242359476222721735134313409559801009645003017913265218802193170143605485706211575594398977336599704810590259141617047141745392437063072793527715491543824423030011801640412773808230233478196844893123014026036310492843559650237175565206506217537080858326198969401680345969544625882427056799032484348084003600351288948404951441776982207837078177539147420090241181863392519969715931013537216510438936303891554005003363532086525725763450675701339419944300110428023641187677120461708540437689849094869185650730371009924685932781175854421094295841086843339184257150170997634203883118281303652025917847969293526531653393308212100361917606359529510406767531469501506743796090636167248782434959775656244768895370285826066257685364019153845791494540444976036487384499779509609917121757075855128056484194347445991343520808288895789998207731118442406787167170847371210921916145102862372179390413201413498605151394921145291769307135467390544312268442349417996427064105567536943487901870378420070593840821330295588239754002490417253676908286820094970407206933117386249824459270990487152174607324339685381020736253748107059727698649732979834863929330104621881431192351704096008263902499633439807445402671337393127297760193141582012712817799489162642549470223813786312150407721000447700768431955469242693514329026043021665269173222873477519030528063788809269857865690453106000285898886989861652369889861974115426712141460601692895931149938728919210554723016351662983397051198306721330079400063879729861507763862805495304337417763296522686308020832265933789144506020365906495703252357254221630359996730456535661109173256646872431773334728941503438543264062181650016577287730766735832052668581445831452941499740144180504505586716335092420496693216511620721258979058361922618052560890388238912481938413966954329566873559848404244135929480716732877200353569982779063251506961146723929846035253674021802303226782796963949156770151716043749051920062613013077948460129128565729534082847806562498877421046324990118550230947619518359514102775097704278766359105112944653707884621669636021953070964806093896250269685545863201677456364305664207184445126482526743772274065469343684704661122744347961196658252175512743209479899630220726353156985034166659746392602262850883154707066254341427358496800468347639289995894111738287377249565380611681702228229453977414104332308852130486879343809780228958086557267413642983580067403433914502577374072686618793985549958394382437536650537800999602231281595196691569781682065670190389249428241230460837914390427669059583808554551630254343939261732633901130935311757222041273919770189944337376219480711748079186624908017480226322461630678524863579113379682927925510478257027409255717030376978954672124629994737151703546535205162883938440229089891071838973490663653206609981985870332863713877005047677521956900678926817066223650736995566853428382104513292803763649174070526863447604641118015159778660859271175088466797259848853021414042189574129542491136252122808984340166446416318683839644130111840994530247868986842983360206295921986045053499914727234406919943775710236046966718258335666353889682913416696128011771071475682665034518644696715003368602191100763537839370619422465604132949503553929185168153669029334192779930252378841885899373700660964747844181370283624034075889141525445896203572646633191097230248186736711474561275184447910164861183780988292438157515602289041978213804472443075918883939400427894723498749404670889070897581103525060144869826845928499993329272054745578843331724803317560980864371743007878848455295096627527884470818523510743735459827586520761164214240399031528685961826989780631998494370154593842080855147859433935868037935246938615267786607380673422386246585801475619888466157119539474103377667722378921389903098372935370000503780365852367296758136410505716573044467642880948421826823260822504960919706131595113302647679163720737164648481191687281964206036478790759928062008974315697814613651743469271921523885314969191137383515953364736604459650004776203726532597683061040780687905815881661387461043354365562203407642314730244550202447831493901600044892633834298604105771168327957660120411309766634028012600051696789297364952589540365263560345564673372242343638937400454318932373514331771008236977137009265575226601089743221447327880149865746519268506492617560315745206255582973066221592454131945194358313109204716223358053180810931472999116198739181778481276374233723113896857655896395983245434810104025967702174955620332276384362243163611651968292661444255558482279177064773897032562410428841056429688458989752725543059133903247699799956923520951740629668782661335434651344488190929221245008757985876759480700711156490417074206706052106270743125627485792008945949018508430208607213349566888653743794290136026283768826457353022238463792238378450941406939289847433143070898146339441273150366423470325572825935808711612743438294217517074815884005034876620037665404004640434674636232623104511603540792241144028563521553933566119710657807834607582294678975969359476336987016049645575882156247157909183603793394449028807752385020982757497105716345443082399172963957558330059487910795646990723253724213735325302012799351246415900700902890545084563520583782938620464728590801957309567108033897698715169970315651075485564894485237811976238883658462689390030865201158575905697245950084143695822174751727349072098119351506647182684065687058207661352316003468657476655887247451885372986061379694922569649087688587179909731563492175177384282784900867078763686398728873722752990619311330722396619541982473415728817984294684676235302662940153469713694564575820724074668010448850162917600840706782476317436068299213336455362321720673219371245107054142126178358446782082611298409229582072350200005600914894162787246938933570535847066481651904316619451803554235524741140160820730514238059748191250966059606584326516156090362317285758442114193614310911706093734115235502852191147665989347633540287308363065102375122486427926993802592354894191890390644115875181161141583487156401709508486121882117050021530264741719509064784001303302833103157830525687962629058438807431591349527097732577364323595502737259555624944433143584593032547842010058628689681091447341644743984055373485762251527466653731574528642089104290265935728421396015323935344531910404219432720126782928254331306224983962011411825615887639555338895778763995259096171119673765261013164863552189676368779143112545744769951087491030859505325632999996384422487458417283400312264210640808164227698118278328797494304985536145591665752520787524807875353507445361958615895581455764348124250099296611064616263820703819305330976421007392130307119603743867390106655106230613845755353706821864554031311458843755160277293260595561680564792328119258966359270889659531206244308169218316370829410786176722106868296641079089573110087241101769029430917119526504810902621282460795950370539571087095027539619155623279952906478054551071773172917896556768363766753902075554120557826505269752568062436511386276292314126840664573239299896821343098137690210794380789112059195387752798506674763356058318898334178038321986522565121047668151441904876778416222751404776183752178608286813470384855900654157163392247336721832524231225190491021384223376770257401887805470988879595979394780578213055414574590852180571060846465723590683825645136598178181926787633716766823013405062085145547697406429087900424885128548383018476626610346107874224144402136965688369021940889370616120703773807872106021990620452771950167193025221635643871863640937277877457735745411027520230370480570748104571562318299266445880067293875031675330975636282616806708692000719893793758284158635925982974961787887488369476527704572027276999488054887383956863735529581929588425984314354573219727792202329386337882326150905378860501080211114732560279460480039865982598682650332980594588355533075157180014011117480906530591485276131673086557543534023187093510294726501833805197494465508283488102674898720805417254463005381415134209203508152386916071842042107313833504349564810003925150941402116628964201973509519396497980613816974143480119626568115132897362132288693999356803124776008667567143855965251732079708915885672553738154812474157184640767607334661182959500250016275911506246421896774670736326153948119409903734441139566332603017653779861514566659491726496614138932971655591451869608699542504694324486170956876786233714951548824138989894449294634044529041307911121143756289726840638552156000954892811410676955542424655101955073583567951768719796203251003221779784892193565823388291206929614216593302651121410060295697325189598339313376268502755360063476069862446909496021175017260437760191854454133704459338203721540195914998460275488753054233200505695383978818627350343822522449807074280880193537767196675678163008220023850390555236103248469388447099032299064354787568642303079670727033411691629664916268912601637151750250071294059075135825971855961276642194506040675212130862746296800477460057086932067240852255034752054125001026581231002419769239264459029366986455392241133903850527223280552813783705393966166880942300967754470071142031994231396429219750908016048097028349384141047484305578461194309917034312867270485756512907631116608155149155816991132368969660268935583890647013583052821637489411256695354113411883528911361483032792036789516240635328285531344525963994148007279333584174700245477792555428984531859687981727008528839239273739234294349546608353810829850333433794946576533887901281720981119724275307555208473814278101173022492293884711609089666600076594814727889468367433588316199981750631372321899351033767883468703162027430658853021718830557707190873383365353415778367884553040694243910705479822656721992129920626336065701579736003596505826035493110992287559692923502987468088910699163638462672102780952688139789327070938504392584277964925859144454410331896810776164680601910146633328033384096510552000347676305559555805809001562199043966306683712241009131063960416895223609500166763565279227013463064036320639205252152270253158216850232756361852573029394720799451351967769388278000070588794732998676423394197944052573608787112904776641920229118708144697903127871006815058339895718761217875072879427379795593404751911168759414010511628853671103664772318740828893874010841994724292394513210760615678211800846118626112350852084881993113239388447272532769773732272349893350887871054231421222508844443582906254588202971802181974194624230509207314756837362208373940646873998363846823628463919307962953573785371517553151122599506628903123451465131912269392860385384196410225640110250930653307970614909075663109474761467185567592734230671689576416368502420544954157318165737863087522320254864532295744014029796647466470788466619590122951193091610868056197952122710427600837355813960519985609186419553372617102756809811986728915057373408592750128072708805983805941450039782679889324488648805462665962422676885204903639841584751297193382752889658622124445598566378926659012852203546685804379576413783529502622669764948604568772071318214055655059079498119780071438982751091188522091699136742543623666010013966567827486208925229183124979789432245762563537863780591091958462462866589155965923264005984046855698732373881877225767610378107436560995882974193570496078615988078120242881980533602897448639462606561656255226690556647824125911736436854985511169480389110186602270122925234255654499296912772297513860031491921691082745964058903406538117241326948010974055487976790819437121514043796348049819891942582999520934969377915947742964596316300491246665104881233166473640612700230399409348104734885364585850541936385662851126608948831702029267633465609186369633331631855230366139001054001518484777357843324860720580318133337776999644050245375380400121719405440119228640700855229208316535270333808207214347268408328060228671743472657487948668866962142096158333133174930070146095922280422440422628871494663641266659130405697972309756373922951409140173939220544744955527866384640014802101756110446263408428170261421778701515004995813250127837965558326789133100733655690656799068050536422721792962981639490030984195690540538970047711222206169783066662271625313178048103019326548763320807553998280160653815175068768601757895692912854586657021373149578635697979855036568560250704318735463075685734172648446738026656976415441562924542615290815809201099965302880930712187497512184310403542074916477480185654111909725665708860352100033278057106194274095954724003128270120634886735909448432445905058633345017670999995193344004081144529214207663638971453543598200793158672182426594187055965625307310681768046547170353243063143925001162650936082137472324697261192059673977034937135792327767807749153642652629034544109585373000775609283714265560453018806173010341342450645485790174275471057963867107973454743880943036326660645998895565198893912744843634946866303706450333763549031639408829644195991835912152023871412618741755273334686629822804090023545580849876398515453082716660453513910983988520249943706001757593148726893788681067436612256486123787180745451016574955944056454611651997503857023752810837501113852536119402418308157462411307164549681236006612390620711954784501699027890111470214988048738281970316756078283882566301610018683467291560851580635285814646888995613545676432882423166690712723173710625999070872627737457168109516305531128335786894081763527483614657552439195719406784822958622141460725509098830000608162085771748072726921083886665699619438070334547777606638810548378579831511915279858512507227605164331328865081926031517801851060873974884757932870580948670963095191867328071462767684820984365201923600183009096988284361870014955150698020106759124375636434335466460607309120915129852284496587968947667702386041480950797549302523220803015756311219519607948424989628605564159767408535680793932296372679109629679403888201863823085576874602928343233958327153315241428549562863167527421456247924965053235237914458986802143811161183806167297987498930438335154967307631430039779710498377010279754789778676004254623518393634492428461632920265226614990646648803501201224666124586077544233307658484782864004683478217413097931836492132220175364182840231544715154215764914245623700029669001373637026686696878088623636203548709826597730889573698406559322920760179633007653801923802846786011240631832249219358655105185007724324141827804365353215373362206738868031426652445694174857510805549693460371093395374984249718599817347854688547066286871388763679457854010767207127996512622873171788827338215727838171285560537808607537232642813194818934210289190417068646782202173781038692205749550389623680273230930239764901504239523747841139159828662489175628114992959949465725497928858266664703362684932862767473665797465145305009016494181427417296031789374911175497498726212498847591843594021010549430624583077312066574622229753537474760930063934761688106769538390105321970644403932619123962915453482790308061798499629919334187037949484368374444751836536925656873101679570613306949834161592895319887266004907021448967498762601376215424036812185035940494881636440621597053199128835793383496464679939507775133711881898038491136504821434743211937118406526504892408821343303568458450291419597821849983232861135777485232838812392206781042818855863072216150753922819600277689135539755969725414711662744617248253383011476598258312038134058825747896803778348879668883408341650522275776286205086949458844753623257872528148895093347988354461990110513439933178008031616097505435065230607760041524411111574024854598154195512823850305466022870766529383055059203147142231552370526445504359042939199655399102491462458567008160520047912961569772473053342534959402826215732920417940709192305390508436129221575435955319905721938785233030871776813684304368944618122621454447901554836098517299723605706513978783959469651877876734338623197508110469030178652046151567332451687735575409010525722372075013022436957260715656601739707656878038330326740748106049148951388365471838501423612746708166493880513105418002609424118409753943669519558081742403013162927605069464413799099297104282087448041219260468400448791315555650620766728903047335438544493089244974005838308928526785591763148716567973621458890893967693962878224649976026122105030432825637691478924177291716713991959103449058323636447237222653371244157928181579125284406483408714493758241753837909399734628438476505060444441263359390980333208569445051255011991251923471996158384091971797957150243695596087200592758169555758595961466092636147065863594925219227225812490264765661757330371780574354873786221322391961419235132117588606543620136795723819392094214658734161579114642784420795041631253867125954697290056277503181687869107368474306983716462515007584972046672619172000354247460501402828354595288363587377607712115409309893294900258969732389640730361883954143478136661896143664555808962366425178091190656549104632442187316916746215241458669231502286195302705187466461320935150937035680002766334968230680682582943140895784277884962856033024821855470623678076842425133149737547688223542770093287045960047182931303126883966434870458673498959372935136445277870484934177920739804362609454965194669518517668158302873401150864170907165029049733460043473808183118324139296583041110224628758920528475270729024953363416456868001882307235930515656876963308471056222205096771838394773774705707354343225557647972562744030972224158105686436844668185995626263356551932360433564014144585101291824436777982984583944732103392239292623742298448994570173515802808054844383990042631397673787605372921518748167690292589848606993466473519601009509734818971676860394185654929842855990350401065577142418550769248398461680452409162538896835607371340619224035335624214843694923466682398282143039299244352674617629960579686995001991836402755107996764221167805693699498577087894270283686177928944151441591704642609179047586892005820048687587274573533070978129104209803112352669193029847704561323531572047927060500709970169227494864358324854712439545231108985394227737850125365877184779557406968901785626420815494659832303847487279755176498412827776007587220332429615512618381695513724316536967652464388901660708727701306737635991704399166929735514376261322160157323877687287604986955483289364836459526537864147769462691890484392983154527741070979189721012564974226313412367908658677275259991326144848120403814144475550614059962116743781892529625526501376243689873104732769675082897492348518830232992401976376721057751581742498351012805229791105541990519671128583958280531005634707523393629634786926922161929995616594549566232874781524105485233681774465052375590441114405837741038632069141831974307929348812581562610567900002499556388646818576344726294649292525585559608447170865541032600508239546768924011849828849443469070752363311899207938247356406978340822408960438796290544925089848645464680077752362503583496043193048705830421566019718585029693417690214493328637065246489672313988138498074970231532943765521895994707229540893341742646778451474033509866916198472642999671989672432903608503755321944286002481092815862396455837191157719082747161757848532479581346599758013802337669542511655674901151321148045166958712619236770475843638105427645290441471430329592054361759321257404708145628554119164326250886814318481939524928491569747466767540187469704705687401404748437864574718958790320500229212338531447917349189479840714790406097531463218437374497376929892188373337662811742446914708276720063501047978452912931422112907618479392909026578616995486819991888253804260197821081247733827249427651569784594274811383836040009503070247428530942135852500718536400843255804041589128325543914410643511105828645268201489833438918904551851244866603939204617548670686054939716358198997516748728683747905700309074021251409570038630586982499281485592344130852214970327458193566186543970457442680010475118819609787640492232345264708921130413327515177391101985639818925283877706216944879146365663417903287724972568549540042239758632576226939097342206205688797362209398033624667614080356815591574885152058817657615248702406126486550076893516580626662181614884564611028159976030802380015295247857933818111729407739811888717132493252045695781124833301541323665309973227409201574837476053129511908110238252291317516944029717271664309821448644003953246441690202585917308235330218433739228457800391934611137021999494641180578610670095282842603580566733200860123375296638830491103822296879169866369714724720078870981355945030725188516150398083430962722733901558308343755670266757743189606956283519706825755888882729139838713617745724777740770526166231859598197295070205677920222169186434856869440348111246726933888022715078471249151849979666693344000344082734546693314200996491995370654337776342091440837797030599311655366671345526240850965320461384014436909781232380374263050683040466120268978344607217673041728411118804271080122729807125682362764468210412159247741292734156894364567095774881127632409056786610313863306900635441028725994227885121594616680478051431688590209255422730081446382610703512395458424495888489298728949419001173084280393964381662194597224826854730956577388133648778002074649445230050224441432359885705916505362638824786604230903767536738420848056548824280302939215717728089050234093818264513115096107027439613499128739496934583438855371124674129227872547455624388733672386241890732100817444095652353023981133761528373254237344657867757015374990777113053238914243243556182304215945118339708562899435308342106398200708582439092019891911994012621366567519628785710906336816660550481888640799659981975523234055462660162724880858471782654151124699023542308534491244746022260977732137918167586040171532199668519354641172476870056492601820690514636056042042412851129768696260598180096443894829504588856470650305517296258454293831613793337411366669434784456705049485430329882095577069063063179763513933926508638481066689002500372230497098017388681157294802981187680599461817482313755610966910400516682317851928137900552626691250901625208584685841072709353077599832564977204217225736281986008375500899447019912680881698939609045102729719627433977742212834101855026998311826449183557135475879323362145733540320925292193831389628247769985388019527656576581107135238398548802629048749799307170180868025869641297823777506365574149679519605058901212688520593373203978967142812280416941299316643206599219624976850572940251137412209243279455055918704277980888472634418548885249802796214387808281119341994365690425875066991831197362674736309260995051294412531330876606760426101834443373241874960739804306018143664483744297632609887551930545002815866450239750838721767985549373672573288920367779647247730212381785360225609704715729266700595633389526355627847924919879087004916047832720020218520198455222326197121884393292502745439047339488388853049548948668110030808838113824247144824077704546373764031564170289770109691934929095083897352399911637254899255864372544215816508152050377769682882920749105841106685671937480511571566631507089310235417235743037552087735505346489430175226926845157563025996306707104986259265420450192343259567245983935124395075996317047314676060532899383141401743521121658418420572525663603703358716688081782165348213730808223434526405254140499322062184122594979851318658064103132476491760853241409362432875184420606212555623773340925617807710095764102684796868161940203067833228492671072611585254305609115918456767762517457253976844203321847461344287632162510018699659966880972490255546938540938445544718406322348647948316844771484475005434702412526708639900362891403996733323010173874254313334400490319353025080428613800844763796601526770135881131902569168246774552870084492189201297364843926881247720894115482088827107857251477960886551209603366298631012124430294269249188865578594349636272526712604338794464917779855965806227084696514193076025677331366396432070317583210955680439298271808412865732294764705058251309310494807561631998718376772650372887029868258078861109234218155682165944833282966179258266177518953010199009615035865534468979571076925364003531702042042458331718123356735524313463797642464616386628903279762627100242338743974914999382503178384515252161708099911601927493890023580652451303635622572174323193650428393961985796507815066762095105037375617604928948745470375979945312875602401140275607010758029712985952537287248890032836038719552842063264523426519095516146108803724676945990651821856087888144991459096706233717776428427942251046750978870198886391266157577421405730043018128118414932696428730637094480576813942531860545757557963509974134676252677210710943910052716675720124883199321487267069146169885865634240328551809369971196306783479201318237129452180429448185662532582792252672176873435801398764321921620203717213509995082026100592954714266487447067998073623129804607705267476737740919899736765069624064474858401634424506371022045348622236747729493757022544488537926051386326230355695585233963731780327611946661998041142173666112645466948881094888993481185735746597528963199234828351701887843622463407707786686195491030558734326763168332030201703291250895441232462591795965258279270209919533794796688284857384474929412896570142876537213667638579556143245792894491361470137839402490842161567345357470648222515031675421954592473928471926630986525757322378160160765760397803583181232496589098018872398781548539779441240594395110759356713380352688960225371121627538712408627339740199146658853928634713767633065634893305762403687362244354816525192440487272354864129661081182387279520935938780312938204493293140782414614518416009190471727387664205446461543999759030426824100772470948331888104731474273587092438322681618011791764280134696764700445319490911305604374886946460165496492737092467755281325927928549446791780613220927601200300855259044503975530102968322277471864155385970779820806761168030562549948900326031296052416928129349712936854266375566900424238764946024398191709336616845362133223330907910292912290893261516793051268141627068146239020668622946421354790117742980355241112718451435330398760716097689192009465897286493061425999357692822857452352722193167459583080529837264670067273517222642195375634477435684506015601962354079741408176928929139109940520349926539881612675942512112187390454161017195656826885794015604013062865824599913779711351533969867885821131832540369583652383493352600856173988848161461851244153340595135907287846325636696647395341894640009665642953564284705296095416390292325072191253808562644965476712123343311943391544130342348857018749035733545587555165192694004136357217954506017077046125070982795195761764807735734351621916814503146877209648642044526974318482061317497922307647224294085958329428826504421994472017516166085987922349310922358998649542193487440305557480504369568298513808849908041747916194983212242530958506947691427035069191269371610208196008821021075454450980423930470231648123230164037780276755173444610911338409095668549720538037366701943706782384842432684316814261154826155818208179696127476306383885569962478103704008994506563633760789092544100684337710623002901273544925288259114632783847039105219252318727358405781569660318231685494099399692040903197188510650410515912898955229118360178979511340653224991315847849613784551738532337265585741574077769281216264956376739068630485638331553489739607724713684023115771818482304184037058433126895158919375037202677590566872600436343767480570787197687643652283811355236819990038291766925202746774006788275930808009718622805004316602032677891711082646378717976076729098863003037722945412163323603426542779129216961279197854445884608705409696263271071034427671192250112567391811196276210687973116666074298582550613005291907803517359016280051773996737894731178514075610857047558406976051220431612944156194255535517992482729444752964786353601484147061150680821071813362157655717927797740476523559182164202988838976532065179341500947299777771254324064124269121707965548200441596603901559420037154862885809044724349484108441920039392578019481697957633350711012292069650458116324319238614784321840249688193773216635885463964406376086336235469097075353524880756395281683265830776414815539289816278596830394397264456941960994115629110398518414670664042869660236580425062974942883426000303352274749285975164525113171877212739902947881341860804396052660747866473175926511442072805955443828089590880803010327690997979950477065816157825796934040980909517878516859076778068568815273043176761775034279938164359750962647482002844386045611591519346644060340552121358646186754983916792464697380490712618859759295339059984046398960769785937287583982163713617078124148308200459378302461156874950689761734345234775445588482990959677825121494345798586982681357287038537198843278346973063252210338528483250995229099286842985177845101277491716449489280329194777036847919419982232358781033860464712317995154087325212612234648585789195997152724041683324813926415145198016582280728350672849898961995996158569217297168216267800088341777259496009935397737855400248831420949196738548268186199663134786470602396852421477638442982026303370354827257555822960550642553416942538955674840275410409772974502469323980105951171020558753819937639264409820568787602098489450890843864954758353869779950201910084077172197596383294173575042290838516289339032789650126651307895408520524918261239626212718881839037563286877366725093812992701238115810371394632344771358630730433172817513808649301207838380083248137524171622200742948639577400810975610816487922822327731814362163639956713544753475786695842343115045574292543499632604857123486399559809030579582709299531977300997241385499980178141991213889947004762979281945772317867497901320482619485213717281652534720270223992716295383651793804127764202725638407339701735998966004629604709760445858083285692337736762080200421196556122059154160064162876944933171439049623159847997799711976784055289285879333946280802865242329089774646483000000451044558551315754419956157930399301030331924390231295220568247696335245499579228061845465752944187261891995837078428394758089461437512028598669454118886638235709383791433889336356667959068263774021065400381531723249184901820133127873234027131926177627728333604735964813733722737195407764550926917181834020047461097741753283501299899472217822922757555872944720854516950679741665141050561385460218381911150930568812917028501681869547291632624794114243448693421507430120662404139579703172215323239659487197258303929266777069178391448832600414667659281969767179848408258909062074855522724390142645347692148814343255871888983801388565372617039644581061184419657186782612888632872695500414735906080132829646033722014403254057265028893913968579577348935836198928409757567683321107982266607446202515521995960673879552670876771890886141805066694466959483737420809096303885648404275171962040960636302537657683245323037265307722779797528641665241620052486979032724847428205936516029268043056325443541239743540940080156347560964472285744683279239532165931423980361138838384444531681378570833311812758573037648983709107075288123246942771829334474851989864452437272148158837648721779141104173957640335773589345831379160852561678831329796299079479611188672275586849167474251920858070940773116022878664149442743554129866689313120373133374880578079592550215125625732918774847120872547355790616582321322752895314006314244213444868537794613965809110874518682379188322030637267885938060824599751941503782748058584802853311341388193439797554175497676523210218771498210900222627494572794069425981193314491554796822567785426628262297268513326597868065555317190554043024248639440959786123289237007788752095718850281455819506419988746107661695929952784029173523891945150027975929496661497291523571434941720499806251578037844568042811463601557759624440103566049294096269628230863199338048113422328625396834877003155244007652039693317347703178806184756798875499369116508732280889821586037169886234274026571670003293807823238799684428267187161137656431839824814111034438289774970919613468709271016749803931442015516741440526331900487299384512769440188008375838366271928236468480127898895431816547710330417931769683202904522690261546258496098100311918074085997378825495196941494096594092521108150626659790209387493272321649424036306907801373299715661967972390215122032059674099103571640929819054430185837708091418510242434754425322696170452324494734620423019483299500317526204692529953222979371906102475215705904218223410422038603773722784118775062551280452346924724779139228212801151900243752274857162346026335249178438088172541904376460667635175801864681449002789830596849426373183441618458411169155198984319168396504553567699839358705330352606460420023717540409714656744725021363656744138353167262115076059738018548568551336433765012747872526977182778541417365302930609764915988419095669618490292814143454859951840479100472905321586208184453808673228711850090216676519241975364748749117957162451388719231427297364025269244169251274614203905146458600823142883449963159603688249896738185891911558261225380015773790854133026885150212460868968715335817626499567041322565004297106090736627899608867217274065995187852785297108973504962322119872693507471134445334753412870333018100007097691814948998867581094767318072153920652912658689188997313017423661357207168850724281181145298766400536342606081063893960393366762882893219899774732011128269452372650588642776515750056799712347051584676155453430085924320929552582981766657444478103911658429276443568241303140397755886380617453288255419120946697582440618937192588544452951262234992549607160926694387061612349615033056901530547584059655379809061078556567259683240908625434719408413311025982013251685037472359057909306992525441592690760074876257796051355160960886553987160520009457465773563353827598304304228674758720084484957582902249955521187693619555865647573722081527676326138441589873215541718920286234012367693239295851527155385327035977371712535312476940794135035122117541908727123992471945105975721006355739492375220607243426719138440210600224680549286314732683672716005994841868828332123986064444269064513637456975616401105934176921947665666983108843635572053050377601531215533645847403713095900956673048454586826681580811691081676934422966181304974325942654510993405699365931748067419754196072609404669020698134465149238290884998728991612898681438717324258774001077745566209988954262868158737372253470876897659372872277603740174991390469708631650203118256616660242329833144138149229725360308803091529695401688290315300378444143389675448806663350148221897605440575964166435919024157799622958036957910580161880416364077330104221725324622757503980743213719901333452626311540872140945159499238216935642347856707284482287022489506457907915781450495653830987073298522410639714989178275893979406666591821093039432589769743600966874875630097732504876533588155739091409152933394237525604879463533791001054170548683342120091958026164232248082875405509018905003936270669840447452274849137030241589493521177215986973123739850942917003155715736080020332980889080536121230685937548972427194258427672594209743307978276794929526420804158824782284487227159727045759365601888503447620056499734168071330238548038867960778885705595251518637080204779906444577455134336372448668295740835404149104225769199668349356696265551275198264657072822430726755385194840745864204892445579408348114593302870649888828221857082279954072560503501737247994827718527069305906737718591055795877730162641214681901368974848837338081501130069180644972936471055368278442975615362904149629596186524094548267985268080273392957944075634841356356042781866974741451263743967705110304888004866865131014547779264892714298028091341517315828016898055873487806125681947083113010837501786821429739320343986362170899146850125773926517902109375435422490757926270435575795842704312940099348740882503376069465579847014338358848919259847188865538274750717733568952038334748292974590401446800530765505795647386860019627233999024115562307569335729170445434824994327754815867254832054159523418054677248432084570427209334095296249589869877076881853475601639388554322386215047757202788117047289911620091246821681281189059613104057016696013625268359655472412732324738922860778472470029841603845884737839255800509633967567055639936738083274716935836423288974466007661914019913594477854216493641683811480276529986219765995022195424580824508615970165733097003569479634712987420406907786314102289637584097841185733564499907447364723500391520597905740222266017868798643782952749599556509996670150153707860588439810522912354766968409684969871493703265023414524818669324778941904188919155237411914660324754944819871535469887415629960183934356403093323519113933133360283549027460823098918598609356081677107333119018631591078839719880419638127677094416508875922294553408185791706195880733482341284647463852339486208176044922421355990028524246091088063152100536172768283188911533708437282616338491326557988420690759229361589434074518536382833415677393722315386835330990775041333821847619134543754072976711201910740438878815363253022776002623030560417399066748140788954280333165041801645305575094126487398621885021902041982165787802704314129330822718046531457422747672987476437280698652581024157348425471747667227019099460920185782503552268993935174816155612357830664404885884876742471119000200568043261151756770768024782440384987972520301567467175968223958197141520901823505941153391829089803598938954825663078116093195775270878387321762683413620593739158207579740027864200161329402251294169515852921756287651447453505328574009410950704510176883407056032318250716228003227358891228763714447557068550335124567945113604509087665997203422213714613441971223795272919121057621117955565929147247771666305403507798613681111344240377136866773538567436015079039688017814680337713147427258019497112290846646625228657379919147635947010948280132468674448775602465156319766145117589273849643247394249552199274610562468163961299288844901101036305489324197576630621938444604932571427163004782472435386189625578084898634613021132411718765523665837584594299274601001001284674314618715143375184051619546764439290038084880122007853218293261460644726833179459541235566503773885497892237307162585347089785259423181324414070767185967514062572856675076244971149673402866944773421668195833083079195568747799811262320418340056695788362870479580601425146504923844156621909872354150992404797777174943707090696340671107972510529028476567733398629106366944566018170405477393149928288083308104546545634937911576557449702093688440983102780509075331930778498303994537688400863279616358342885105786964025759012117074714924953819468472125611591907970821526841180432545803492473673788804801726240806444217094906733537921869331405026200908265250316870681159723744910429720890474250051638339366368630271774934754596803208391145065009099775162871428550172717937246067222630602457899086673645146367095189793363280734447019234322504748113880995105526983431523414627092234041041814598741711551455773740223517472161507600497646039603011053097658601872428271238188835066555067934289373587570296997392524874162603639541148660369848622809508118199145975507785520179902457084018994119809317214290953941164023095121226859633453322821957939082451182519185745678358564839975041302701198759243967357932602945350577343878643788946509927969908812666500087185479349574474810804098061994332773047666216566568712195199905264060734839178984919500419993640316256189382922987527715901429843096387275451047391238193803221492333495501712413194666286623339138668129534672854893956939128271162818205951526042119571424911673043067133301053766143615971477989896910339876986807534281229579979142717240798655446226324013946122960734068404816351746486635142171209820358628802862505070810428644195386500246946244903243568709974776193715103297444152889592862005809724038893382071359307757858182354389864905251024997208794412505842919920782004035805426683124942879550715050864339117782919351097022445517016760404211230682826635969771681341929148749053450696566501755486213074997278193406326172006427798045247918754653968831455569330787650471030812083552812946101428144589361969047646878160137778821923910966136912486588855913455574128722956347673446790398814268158006266894973939647045309255058445080188258994839755946938227109357186243846442438520219710646287511080942134113247889396495148225651121637487539032852779423207914236763764856297539772404533496046224941868578809819954719478501177384866584320575987600953011597294843497463173935137995816926352709673003609237595357919305028474988886686525382576890839088373147658895893720277444775491693829297886504195946380129873490921494445573802398880628266080855314761799437348683614966248269398505699096912947983944649990675268455618214011556953475716869655626272066892022850253898615138958828477263602164972410509908787263827418453480600045491661984243027599167661944582862439705593230241118383635264766504166600973160270099875989196984062196559734607467872850738756049461621968996925031808383318445979527403955523787551832988010204356451882646109260235140767959436666704645676469272789044989062245569297096268131240844888303194498593573120084121582223361719861076249485315255678179684837940230002298671401595282648690158587555401776768695068994985155166196040386275477966912054682351924933334457233157416066836985543160140239108415708399156741456449769254678095725064927190734520964963348365538255247015256100276953594174265703222241789473956310326990349291093792383215592472376885884668271985881490429053035885902542240579032951417507207148558024289129391351365634426975235509635253231942574531336701311285640196983506772332093305943695689580084800181851927320213794739224595329751392009332837140334309925783983722766356616149727753965479398047559021129312746608899262882625155107081497151841450340539751462221433723595843921692445711119117337690404855698008145925546788883960322252305976284296537917463052531187940758851782800555097641463186601351532062769921237953419351945923471772203609326410835395305183245112426725088952289958806776131558338598212254247664214579479256100330732205201181674617152730605988103222283245445447394030470622418670785035519720355810480268018302006546487992401041250809302438498241654660416574064902953212282051134395233796317884736124759881452760305050880829731703191286597399502782421835638014194694708703428765199175609453071987775011219241407980749267895521871708539527353675380100654031764016486901833226360927619295681573502327501610114418849665160106970181158378490445325888701066637998243832029739897451369150349384234129737784004677587361564766027869073075759892506802207271605951765161115119509232920023215058115345754829524608005519928568005972513749660331313200646672058817010346755963637746488098814681914739042320563798649825023926936768338405469138224786745622414639747649073049143942692740982146581521020631318878143285815519463381438396242557946470068972683962535299821697957902970336363660266144305350325151604686666469941332298539338133283335480236530186726914332709528317983654843852365112474781349406488364265454034418569545574567386040744950492654830240152290519558644746068528741376968754999495395467280153447644853130268746129863412169981455665290623856960712837045893969608618526736621615039521884537342174796222930015244932303492797806881491056736718707131103970342902276273738766247696734269237256661347287898328451322967020970812421798466614231005915007675456080660718642841874899498447286003700596993720855970427393685470218352370862681189069642852360618756872408663722259197419294604206550346197084232672628417786206504961223173198144739877726058021661044418126507849243406098001508162910640330975749328277482626719787836511122083336726831643583508276258021910745026055941062009335459047230423557232788704898237510746117112405448816079856662463609731647661460487753517582711752660678130468267714830756806709529447046586283153969970522469882507758367097956920379869279682139411783863926762652495914839262620952724599418365887868811334027753467601345231132216117814088928310451967684352870509792976056603423887760308788090597941568319900860055331783025927822758228921893455282802349400136032656503174278797747368843064812317936885672043241479522412199741261756205498841869322049670747422645252320069392022901184670377580764513882919665598015455200295906326903781171278651350655192190935080431737813474240268902710372222504532682599848747152670480146938634941134452531907349731606314258242566850300116048206181276493366977855815858828365397576379135049290122324742741947644815244063387912098699799609975387696037643390006990084025969781074926258611822603728774348766445562806569981609221485025772395688931728087653923964839860830556072134630304473825041363213585547026463579277287827135591332427260517834638283708524675008449742607712430722264068140600532897935600047181907230118770897949551611761271277417186504482841383914290258586440715784901422440144732321292912203253713021368510172799710716349296855227612666319550128267264059367845322119506576607006950249799186319518465534091598966542180307057748331736863569018574402974134635424515262280230639611473088240996084547601607543000845646388028738952061573677821116609361761313201854811066177403040025135303181438034855901790069915478867192664517413097720992710522730947029762316649912567386205292604596734856861499548748674344993631485600619403816066280000874855917664665854579839118170855976891632902426878050190752065439406078605080096316354825118464607736975290149334887098937967204360564374731522596022523725443655277222285394681499448659568523399263732720243611194505391315258723530499402667702620751520572113563025884212672121070915936036210507179587901485367454530942502565641220097222387709084231702278902977045009147749807777666774731785339766188779684221369440676683913246756674797082120045364500731618560206573156666205627315160957368091241383985095623588144463236508344914760311514895267075254048585300412196522485215940987378699318164603287064362267778719076772031195589472297260026037577613660673597138950851731011810673356354648779634843564583560177447138309511614965919263352522672370356344790925099393950039855224591313208820130810010942065922225439993896442331016901731508091337641467741310236687972026714490852736614465293688477309079715266384061042766940477327481655025641893615197665492313124601914962713212118989109004616516664781711920028395438914777174559290725659234171345306108679928880656720014723031681133721585510068964162718174923134860948984955950120856037165027272883153909593321469144746376113351701411092527128709915837311297186065449458070673759072110099100026534702346278992644449531062774230286285036904781423325018135353701699684785856836754379930969995943924170962177801425225544086151256253195651618855889906087611251817382648058373452659705042937814860671995757868841263403370363379931697686080974883069328667990295769133987733807712776593927412145872132593042246819702192066503468637973787883331971658789294090615160455361187403887016730462638658773525287932489834224192989719730933144112068297395415296737262210443623482155680504226252052383992708130811441532455430579281089503017038961277387998559764631601729333422986892576311307516738705424288169979688797828767922024497383347512651051580851421331266247554769267338373042482795061386940895013132017276105542995666147430241633472159809395604975026781282801650622028082720830373294246056950166514446166561849934239646648597486054875559943672764139331631839336044179547950560697558935827672656789557643133701566436458647445735104046584616367836029365577435408777830275125601665483283553936737051869284646072130311767239960217067522671647448463616654289782266280151686612647074138247347556354005645200262896267519830199434495202290575072866355257767919123268336532568135234897468475818344880919348889761574325332743811181353562474635622182971117324571227327442058519967197346241325807688665117889684347551404312157200823244558140132275673001812597420900209430890094922163031378771858248221063886562112513268054499253032501970560469796174944678650678570891090628960952392747924936871168850949577128707465798179551653247104831716627186137116117077825365825820916718509896634877316412842744482520835942367821499181947219183649245395640637740810146815323231263168042813299483723139638760837358224168672884486130363568368519818810546400402658311982584812832022745639725310930115265352720847077474084519782858302202120141486950701298625072486500078785654603815156071177357141040774150026545962895905648011233341970467444652712498815204728194069302795037032203298040581134703754689610445209426009066109882189366728006664608325374251347831092395523767662768255236672208367295914958612052658745267209243519556086565698644437623853732112829250663553987680442095397652923939766634333977760340970802177352040119136980050938588897658714992208958405926157207241239316102094846285636853292911252547568925720811210846453806418640179977100348549516065338270941070250363005856167080741933524815015768647069085517054935129086265757596867165643915424954068846640973959898071676520945512950283216432152631302942902718391038685303054333629959433328653094455666200291386806586400555525772706923090295359750120881162730683316697954232673586628822345699759929625295703122795881090887365074705460975062686288553711614487231532572181273400318236196907705203940480741264322305064384326834103041802313677698604246195327436725517472002978332444697440937873103932576604658164615887098574741934988260891736837702733783228551108660373600475649153431847357706453561039061901489200692102936397454110764658008196477897699576327215637629499104282912235325335889913810943700298332207908284532299276236664074099536763804718313591261450957923240670029319443703077709855658045072795028658726956929690694122202339857006974264081560453827939943722741100613964333178323291125187543485936490289465387695388351485215588856101414289965700234192857623222359317644698154761811482831993529209146688355943398514213528008493284053610959974976113472707951851204577462603246666007627957028159860965175373475670161509983533295447394794863678487525515410715488010144131737396874851272695395774383108386387711910663353138302707509041931795791467001978438007768154841548547545560376846019905863584073119744382542213250586619448212117755530303044668239074935154650005180699918848289479197943438520515850766524837432622073195653802551393366950385504837501503816090539084378243374359335962408491425532724187414430351630956455771162471748792664142457100021827952769222790107940390006822310490297362169979080162743507029661634562089199337114909158131344014917874076456133689214519164498199512986374542892885240917602341223015678091584119824156517787387793160237240673833693276785652286891898047612228261626102783876984874804070202852992098634255968812023589305237681837082237917285812551087162170325096619372444131377350622334872625817406909250299044279385839979428659053252114752207452821548474848030938182004993594902732494674484045593545673217573148983258611600859297455672571552198948649314043110449223859625814458720750777418661612916695044046632844647530981488850223489075107151159949657893801379715464283294560306200798195422476038687074728125569948202969871269161813974906810803021940785804618993164513975061720899770639307441120917368020821581235430852612091113064952158370218568286511823784525891130870651651606467977443921822626135884769399703469519067011081249339657076936303941570621573292699998393501868361994599464629831012568507146547787532641376166613976690473892575787109616357162697444018819132704797229579548339275738466238852371825279232364573184869307930507508725831869285797436565779556793022279767995589649892365131026915593150335776829698200458601001131675067419292736578080733111425240251185805614270347166259826344080240269684281952559567154000518998039159321760023583288756603907787148036256966133250957467385835993318709647274719446035511404365354244875107016115558760174096547240638005163243298628111619243770653087646394726571723958783574791357387808908678374855760474870533972722050527224478957081282322806018650278930391913066644002287778473344776291109258652045904040296253284521164215951232200501342630394721012176352042555635329174278019694330864019348303003135209119601967587308729474356959021810752662619274939904019122521141523068249734504419311383229631393590155904135045726264209298198255592192524261359890882850696104843699379824878980884025389464927078618983669918819620287017175668293581892009643886399001489608268310746558812400360299068111685141037570615634700465022644106358095801747348774085007613718588023389440342777934606683083039826328705163069043564942936946299008409199355855995537530972815110194219623874468459703018578068027900238753817112177299571612011063343389388496323304737715499153520891317158817280115737882448797789457593114934698905015299166460961418185233562569266527066432350329538270417070393300660625285005485595734558356382197183250336393396211956610668599894270315602623925366537723253479884414982989630316437581713853230282178323969224195665388360767818266272513149708442273775115081805959984539332578753798486686408554441011261467917878158745610089839744297958289189901378174051001163189897153500498086500386639904059744363772051346913064566268922177512970553845947149403111288590065505625807011741161246139025093457878908834262427922897611104770939249977396203905976084114147661911281848150675267640986356206629379007138394152481736079516654710481403911661356493440919519512813308388809197736598665918010480355256085490410195912436840526672184775796783246696875582421248639536938533377340689084990358206001421659808495045490130031032462666948801438156589203677601751581323664827327860989526974043605971153182013412168289961938645885196078462811896714356348730567106575247781045037698070363123408602064923329477573283513988929710921670851166669908003920778221947049902038415214090617787238108383490933542785317558433968774759757527191642534155749468872767138894890986831918814371546162006943342227088296410179972662992739257045132224572834495462737674281669449066501092029929652494305289442447870491868583097740726757630277539156726761035244623420437029298774878137240990672672637219918751900027034465662260867867586897219934262244297405846393110171184890187442263043626820638171046025570011901497377705114127061612928299808766836700524198403001707536256070773037581856377707949920426564573435620071533666342223264227288537848695990339838980405691662698821850603154563007370363057471843187910540711387968107535249727551838218422622453167748550275501617512684584583787299998373121655485915066740395300588018820948320520758402018981191990199119909261818324800270330773436576442488131057760678004383871205992713864638438176711343077128440225486966598180541225794664627220500938054560989270376447608598276934930433187925566401585045555857426979130314403250851930126236758433569548067461228346865381056869049647527434277034422001571900262928269278792036647953194197776063599313899676113426654634880588393678134355164065754362343950403327175799074388903617845302679138950167906759807968459870528035321134668742967937092951119834490409530164849964548097505452393704474790704631848536688275130351167026053783617242168021091466499412185704229989391880045753752502034736642198873732044773532769520682524327208048387893549302395587890755004159956821442005542444464450855390587177230772515677786448975210860093208541419631177637807332957980314214091872598348237651994830363112360455893532462565725895323156029073301175222553277456652109565056218557871472234673959556510402985975481144412433763869898537370842106673868028721556994238793096458907726072703474810775725492885860413128523641016821438066143362298737365824497652417934544330475436640922445177401427429628091709389418023632209535272064715904926373550521072120958955411664088831328302882323929677315080868917015314764407528098969597866521488370846996788710330786689208835682922418017295668493916034483812698027398344081122341446197975610472180891575941863289625680996657482210878670669308927205409702436813365416218099688112603102580075298279857333316307929555277520126422256904083954735465280733571255539908831560801301189990643213420075711999872746356428178463815898857128011574464494769003752463808540353206369425163716129785203815488928891067272531932558225879503937780263882524689294850663927552775140667546380898881165193887493585545235718316738375987127226967726469448522338174970268840170884752863037967242633548796715276716128440233308139313882528154608187473020963831175477979307490414854879754871376864751015509759913034620733318210078651512055887159619341759824378862188349032520729260257027872701570080832559544723789784822215408713275825495647162402596905209498263183080501408861745689820057682717321309407097256887381294139024108674788125903102092498628450341309272809572261500474701959557795520497159745951044707248480830413926158726901298542136006954938494931597260183901173888408298611315462796483720779618590060349361469102273614243760566798552556735106447299260272133149581477629444351319560930716345529078308915338096105423198912685046588318674115479931450383504151551989178231371393255346234607142160278474765148036784990756357626285705946001854426110547028683816283648222238450427774301555498030658787721009646636500224389345031519539159497589201737284528231013418242785988126183025246308011150122256731784012805727374252228740858567133103068322323937899257830070272652159739597024219440815557465642864132954949517307715509635407199310877386831620342312305155989662132023118373220710155506761645892007517599558944137668896601630128020291972087319894066902252856246705076592867215301124832514093406921242427847646790447947368829680901313741537422822730466520742701141784979206409179614288406443923167066015505538322279038802375800669468275902519002338638780714595869514664282439953943596304385677589101149145819429435429867009480560273862642778046880460033708119976424664463780360905122011814646800245507921366005013624377675877953522631028159728921751105170115077565711184112489859898979487840972092171729785192507008618309499782431555769011688229788872219870737989443537363157140619203725042361037509628937067649732437973697026759878385818555249294562541938885281116599519467801982838137506122149496839123118747476661724832565173087433453286199918976409127576713972791837299782411269745004240272487761540832996262979726924654696986978662329646989470884920873282061187694387720116306095586226825877181701509052237256234600882928925342818741343378606390629627044713516429763069553420018675112621008493077832816736217447569134450005611278378439405037151668291473846822236527741429736973637903265782840505590366498631666030463686904890431735140195757781099567907192745627002828894467098803330144432361096461596231465787206501043975993823303888043040108038826927261634434247813767046326755184541773910351982921411270307173781850641681938349763063756721091454326999709781898744945545911681628099202597544445179629738777267470984154510715283632825666477051881426746606577342647079407985878508094334968566190034402999857554426596741436834314061200545258281710467419113994105430738986275020469473515371654830739319810753686727235659125861842952097290421414961592689139560010935763155370191003405166838054568002464913436845356653364099643687048455184183590283000208326987349526807338107217595481213202997859292281169045484973493414467783120176830635279553798147467539114274041546334109032921580843056083051271539273516148250508548946011731561340603918250853716782338083027439881699651173583445978594024135776701680777755861515164335161612550641428362399114925072436590553597776020341412510516563091791934403133382065348480354684903004864790930759200950165332459571623137976421167985305129834413825852187769550598559086329013687636864381266359619472956100040489314966723900513671185011423743725720610608133764189140953789007580399662986562008166233064806667873044653369072847082111816285848894089548540688393524763448364913780098503266393704738265259597564724449228629351248252289200539556791755513739673582829539426485796839959352174623800574227479964760237746514561841963234349549797189300649568653424837680854382834387812695995279656413457771763331184748890356710329487698998671390830257181002369190316533927455681166456269106921575340892601308312899065909863864365372805887559239453709442463962688722842484731333505791190081856386907769398056996012821515135243306789781574203295801462503952719822241234687728176551369290267642377753553987047340694363904083901944869888174371129368055978356952270080115518888470092077708473322125999818558247783046383895702352514937096764915991640673562615422155837168074730790889481560087300160493967511248005976612679352547291650982269321638442379009061570451839068150802684535811147861940029508244878782043964176829603290580328448334030194042090887554106710708659705100372012224959316116880530352225644670409497079725737382209411884870029257779104072453001519482332452686945229180920398232643283956789692021169700940366114954210919638749518896362510717560393427528743719613444219303516716586639391034846383847737913929576905902963136638762676433954040728625910304476312802646412393754799184332304558836939831023493308333083458071730910259694598141853302446423134693117113590481186294534309982921689187812345479705899778177391791147845751555515136358088154201385480874943996178570373787130864832772421512604763814151117861872140131657537074371351996614993054066105865100117810197385760347312470418788613493775887061612909060829886420640060936523554232344476787551260130143519707026826811261228168589502437393770683970896407403015200116547447893997803140953535707045336784547021548686364809121473741118016614839333756437488614167895410950555953995797111226915760204935055305634127152274846509451850474295265261620739777133945478063383857214544998846641451083593056450378886180767480176900614978718725293251062425161443279947376923779301318031172742506550859964372146006576448069782853463717629980275800178650871772157381529836549617463484769307699522848937861679079193494348692575163665283526993071230890443514113301289423269463727653565344692101946007543972236912299429939902984164573866036564709725656938004887938467768126767010845963985816754780509801644424080342374351733027188961211296028786960069653611304734372413260673198514342422641042259135238354692778981162096788843194231537787808461795431343204729605545046726328737532701915541499530708331650007604107543984495603939912921476472750409450569717786185991362059214311066890613620745170801873698482054155578436905707758015073834374497366370235148808678936749424546821991597433067366563535190922639961344814536434941493114905062714087743682500649407833629510437945170200716749168983016404913752163310187923649109264612025194617665320438125233811259648082344966800838738226323697110180044411066439799091853576748627875518975427443076901812593506058858696430372258394348543037348067946695460299745510643505310609136388026703268302978238224413220643329964801296947974205387726214616228892632738021001003968909655714083118352029599460015673004382593664956574142015020452145004941117284291358077862546161029551286748951670776937634461804017440803072559074775137247112153954194080918940395725940151971547463427902591710009883596832947851385566008294859125806203008001830592717766930285430895021673559711178039339218199487030434816378332137148772725545599290911628334943912732862449305693766361482062393233456524094950524443238012442919303179549087001469053155071084618635607445229962705128523737992891044935484382729433444993949891137274237385995739481492870137244988440668415591636588924899449134415513682398282443975864536429513014388582861678419777131546092283929042926116822442013950670002901976860397296974843297442701764888714523572273617497987404060299892629454172682637361386870154893135216687051886258687240449852605508649700027020829380933525845553088901007034571742276214465585850285061282715654200400513123030019653445473500404110257323918870292146558600267267820021370410006523613505445267931701543206259268712686349000356362214050085578758208957630421255081962550070889712309908802723265711291434025021219723092110366198744383267441011047369570858632282943472607180516670779081686435225299302315889717538207944092563922195128631112460803585342615688939114753095832334616016571976056948618747589865691119801991856429256188485399391678798866886632104261203841478600103739903935126059674547453467794743424222884200828681943513784465981576863083764389645358359977936389542362652191658887595901323716239093524096880635042435977131156444391184592678298999500294901164014529903554420323431016419478866248532378658241637394790710368927524962084407344317422548006786171526811903122682592536716485115433839218406154972972546307113036895723005434292286163511217197493734168476106247539927122564961907395515301293423266210284392256223069022328062958514067742225996739782567099134052772458686733577357844824140439842359208198674084698008809889134787542190039413210542596466017335221667909221537373248712295127787699499713649111080276753493049314011434632083490505068618402984454348979235269607638497832028117557237746759226946485117825244416660703436731512950828760820028602098336399103389021203589994650816928862247059604129690082573775590496386571273340990399266086730520735314287231067178445812226739544271506879678064841755019060807279529249997583197308124580768668363823225389914936710032695628779579365348880370946136618893273383065069239420822935417774539204776893094147055455106120072334606830472926343248881936783536988402797674388815802120697560175281978715410427575531746596817072662023335574419973147048030423290832258355737261283989144883934119338200596320091280680917151308078722637086379390611834091831389803134597662608935140256175671059925736565835454523338064265818583061129337691466033083853309608724961696674534695296429932729195511463531929284286095328279219286148455751001871399912126571849190579996646520776071405929171090318813889654884649750881631710781860543646748396301721976918005874848396934394283810531685513806418851275647309861343736180613587019843673737023190723397926810747243431896277842495106390530068870511595581827623384383225886914950589040497615292190364333806296057879991953461426230440143982276609564074217895884245815553249926255308020105436697980572443133171459141774822616658705081239927827320074829866877040164915314733566635611797286607779497769074463257881354082282653081444053345850170119935727161725562403968639482424425942989482967153920103693103852880353660843416855204148562129489279882282047183004581805572483599767322746909165776877177775730795011418925526149278454136888320492046699584043924491680734337185842153189089145653553783531534561361430322125640951077624095028997342858580517992060555251519636108122235606310523760177946086931490259777034964792080397352692016796912329385152984364775786039988770656148363481430534639079913796188739532449327713503564705455054049841166241728072556948258246828704865743344977910533509706877876795642611003421095287083205712120599973462126787426693357245031966149457529649775450987654810488389360773186592499141544219262490556086857396700683533546140817943136715826993700600297313314681833416224109661013747494357604942269159102223818974697013572500260400340539655236852552265992496811593207928068024428279380004578537711180829230535082003308873056730869811411424763570753447041502970778380870450902590753845572740507042266984195735140886936812957634990046639960613633420108969183122067935619260644961652784305762287084479681237778543878969246705701609814538914752296978828248015684020199938870430501940443971999475213761133714669156075463224447131534241673826022909740786380279814108741223434634195028507009160701138705210233249318753349007287704785267757014741740465451031070536135474276349912807020839968230388689616767872519114507717156821570000281258310821883533181902829454874844625652107132774933275731795540710807141440619741814825028321277601662423390284937838875615733665334672975973220362457964344388326212785485578032483301630579742812374931860204005589735427213145913344437989275537458845244839687149010443316678551312556567555828442650056525612817600601943304551415543710276602262420478637604158173553910193721020728885598329902358720315756464673162251094753422416027680147007609476172621728019902154190924970665447921163846113314223151854021513990477923623304302948934668158178780460047294294611236805424033861185310225396898568282422257519260343422220723388705127397887201126410207832628453228892967183535450536966713610791583823169487651238935960142980905909770247235350015024951120457517453665354811732773309749315466025776532368338633616366241779731866950092115338183114051228177818770156252915388391048073667864670810366842738610304631255925298530393158484230599693898689009703637310470619570259429643112853392951438584354446943312719506286012196760859711257139004314223616174620119915421550890718107490461000977549156895807545600225007678631270931945737772988461201400699216683624860805820961636135071960028453658074215971503062031675944373801740416342800250492797060776552006573541005634715463013932916548422763128620914462972099181023259430545042983866657734654984894958706867298529206678054404357060636160360668311147510538924643313642851874602891200285301045461564493379363186418496840182860054093872053817892071778209898547000730836381095194437600875329844515141600902536458580527511570496732328156948487904043766012565169071252759305553322656984850066778961761788364222662206479513556000710971923949494445645835743408558787090360491588581817499388741119769105041786079544749796630714820305500330111627982572540599079448152042382484974905796655717919926824056794328682739678374017709692423262862897727626723529495089492424845780898003759523767987482273999826399428459267556251724332777698262951462222980731779222554940801276026228711594684126333365226664316473444192152483910273166676887960399991493358199660065828259939150414789167772045508666650436117847488908376636052358832783075867991361037148004790551779655599737703813949401225628203744807001316767485976104475810983820753788402293225966707707116117672241751261709472272741854971165479386680976919710400885312677913608556590103499977776693038458960751470594960615438735866321470683837174117308366499096255026788442820141886296075813722370627440321749716228139398431355034787428519612254861490996212603652306319226579264761968082644000906423125491881206732751505746553077450384109434299629098816976426454440427862988992647517273300513702674365724315093213513257835827273980489549301316174547788618168495573352239003457413836024862143504430484048889417811098872882942479850152112898284928190954672684719788831703697293410569012829386347368337741913651552281797787433547147201642124070103702003631507489459584516442606130030275715553561651549666247121148333090619762265812720171778059939748540853861201290469736247660189224508289250341809229531453750265056338117237201540117678208786268359189366638728564898428325930468024640429810180041342004206873510426248098242893263509787584944870524677830308133074215617562076307313907449002653549995264365939764367886333310086498903304072412875457096713926594142602233286784922840253171186986350140957667503786419986215616533746388473382510807143090673767709512129080448669098779670646276209568968248009415091372118945934125344407416352282108588481622450240118319408608507696986368851925012834317520366391270643378590042167786914774356395624303459105870813844452270264408476120508873870854366481989221173327261282836295688792007214233386831675984801815290882378902788282106877440168952034552187295334874371151214340729882474722545306825303446118701878921378011713427835688422450991713003897240338324451104554000326646897630462352547090704463775979166438626077030326265153995913981717474791151950362917234552939440685084677269739363199808965174455211828697190482494925633974702558447737758944674495062213168277632003870374224770247969653513475631342848341260529668073959299595281074153271022826038315721048750100885245676146380342635044351277129663511674654755492202425393927800981202037425111612139277809871984235357355374379268156251610868810720568725886734381238814682465177291742632162824243430807506528859847995359840667724934363199724231146676197824991670488699640120638821098541129607217325290719802256263777828549893196520183994085835579116227624866800379963299419415309014452018553237002848245348025279529329150125583340925062815455597611596960997880176180862384710694838700022502050043103899783745040222313647801599018195724983969347812836903840439828607969071422797474285259358903106459294653313556793358095372261839107616361438453403540974506239864006602867572032925283999681704163150898842585596545945514654300127462869375439111119808313525241827758115483133861906679849147083724679189797656359704091328887792410647993186681964208082036291450757954792099665976090458042668318561741888646244411115583088104156687824999106448921415334300972121414600815121689225371661475237855033418839915360788066989293155050989776532584152928397248388884753245354894261708824900934701223531361888447340787797555277487726458172164983881478503535384089514171163562678558868913285928268308150554215632260277995341400906809308556884834289569809566383456935861649811309645347898239744743219883768018474386576006839026620920573642152716697088377955200415348219854682158173894539196276162972976066065589262347099904504697127721692608445127276738769461534074482049879931910638900786126671181094973506688744921775207522720505150900209465095264664135784586180240014725516621006162914991438937523984593728634451750777375086948976552028457319062969615326880724337453805435957082696729965211307143770919796160165529679118487154502401910218410892858652751928931796538594960624975625300674514456926233412377220447082722221592437630747836659436137597690407956628954294553235318782471537181949343931043098535380820634156198058537557152580483089443486303215553917534176308428360090589911776645767006764199546404536364945347256447492546349169425742495161273269928119985217106285403665817705521113514633860005084905368043295611505018309653930238597054230975365846805503770274045937398072450168183738902731172571297433732819598204119724106688144751148744267673872389301145103381671459757913532991184120065167542336038250763336274903163133112319100749023215244124889899003496298927694675607547907963410684345093067348823290716353375137051789519475632750185864030169971094706210257882240945022022965150919422021114158263301491877002058123851212713835912775479794533037961770281805535321187778529805310743459096056834460535659070326643767976933262877749718341002391133970698270097166758546870844892761884570264574487142827204696473346976410208285396074629308018103723483545976177867641677690308553193816576721427825467943542498900643991392367251454168821249171651717030843206960175484469647313086098951879901371355131659620410585569799482417168163031904098975807409571715007203513131008621268114780987691286245223004719412912876439266555003415096823220253635199029745473267392284956225588985284396621359801388306192057548978574537297311440230281852511134443717826135067639449672604328277555300398068177688807773906714326345709377227340464979334153851421744759145925534169348819663105551573858737046269855647316700293404283365873995857473137364472006949526492510257546376945128889323160851741263344415109244363712835289707315016908847569140256912835064382340138199801532252222708016929341565805696691471982468804811154032346845733907669830401582715774673751686381849335214185860039244931438730427921315047857878197930701431145123773468361952034938415043661240953839620964898852833347757892140770179168134641129801342583661332805792920894250988459373077099148324798026008691203243690415181132159149808518449356683729765254567899739169651573546378313193311498638730755109017249588404655538860555115192446483800959720028247403743189833626458788491549827318069788872949963266696051581983912159404341652814708283571012529113657123971097538483536532534014479590937866228912913720414734095199720647075410418817881471793532429400018262932891870097525124142050615174577318096068861010408528979570035399040723675043486711770493266519126061126061599418192054738366833683598311502513331126533214624916844404230065679325015066449761862695225702823192704181300201789289748334781956908545818548764658109918392103389638449969949887555826265464183577642475410107252572015929063526304318239963316792834300388120489557353337777582817135016443973792609331775151767793764676093434791364354978287656190175418299232514437982050096910054826062184446238703880586709859376047688183547695477412981319726482844648781900238536664816257672345496552631005693578917865679751417160730675806110320639677230428231680499195281985372190405690282883259682343287316174742750218628114662694648426256271882215596770054903200870544760766757835887871157995064647992453362646121943638498574925988841126656869906030522459859018586297938182261794108657738692970102157714718431854751903181115528959048367103326440217228737918191075603441311737883938203556755855064064825561375276575337584501170505919585765893267385888349975040764486489879564055935974817461804405436086856187259167963262355283794714313532808517768400330152303639874947384204775242697601762749879332461350600307118562042407555469354012472130628066927335732991096865212455262516284166437633862807212267765190986654644120192480351320601001797722542833365797574857819420597245349990590097003427083272270367923821820421293508314577870138033586918098368299324413971521448887467965970435133006358945603626664481528784133114738692683898021393217482093501260401676376013316231295032418608785218869999193427309483120900530918778523697188932128433903903866913581815648112951093987952406339749651876124011078562438117798985436778937465981112278909342365067514938943780253736403004242837645705962114674033120692732642403174839465068676220354378044551696638325314394592719959805744570454291623688030113495988005930891032677127621853463716037551356310103015809803114461259900332221318824058042478391577839310202746282970967624929126100724103544605740232171341118631780937688467670653320379129237317944403047300666152732464266608630288897761825094061453938567871891107185744817919583213399657245984967186331459274711217736074568007729593155310151630764792189976109384499044435562328198627696548930465440960223242815584037063368779321073610562771155901372883260208077618108828245978229978183029992504062725806069430947742642580574126110412932993994231291832497686995559688179080387911544522644202484601720567051856357440647313820978485430107970858091003590841157606203317738327977856754411782635623183700184566342227624313144280531811620184671512949503063986335542677714948475951163151549238662271867411211722151679562208292483353351877191132783655146529620036370471342267436694094198063605563323521755988185756069617797737652693439649881833241691417252143456221114681714197614177885648976785419110467015622115697635447907076218496515556207419613661096917922757167976311923715774846853508023133765010381476806974075393758375829119890312836432763371313319541934451498050485374660036387885368357862546915239434166079163671197722413137483905617598556231056300650222119375011761160602831210389691444834575124343229986034877450828862755083716697136704474872378185336969769494640784502555430785744770588179904002241114879542226085093291229798945895868354479742943937406799447739564575471636521327582476886530813855015549338293123576743206066587191109943384480279830945245713585464955203823159004384768993684271360552474335870446152156692318599586984672294296342564149261882515632273970081060238529199328969854397256092533782675548277407753052279899693956837683398612451338803340242950776286204094936655100048521644633147896915487864801805977520991320235414362972790467262602279073444202760301610748665078170716078171047791897063613359246811803309711294559961239718172245605788963908166860466174831642122827504074098268138314886975952520061339836163228907425656454644797557865102133257936722396523288988088546993247606956971682574069639649692701200525472096165305519043879826064544967660302550774263480358416303553646441197323473941723949156236174920598105476540022610068753902750480857771093649174479232017760437834591713272138462410967771529482208592206208987313937423065188962101546559933583907299924164992584768325651550044902231599674589333351467350819170448337287089848404943693741831118304601163203353284584911562300187659541676282465441772448667562489193355716553747419192994163017760528482461540779158302252677068230238018554755739478327331550747834956190078689534430862465795562604656201056479993428965214046837416808331616291829036391043304858228050941909758244830843331657435839682239062681492173231968237392906795758531519128030005500782901129379612370578203261539009457601219114631918205291635750111841869443192591205744309688596733609346082120920939018348349032492289418109282424827192917001684952896845226528150827609630082080916024463609054908509411821621234293338771850791417578458204528578771549316642439782448500276603223749198149027859119528255980658404494691739383690263519491152067536013917283787417811141409972041363521965459449048036380533349596820029146980625720926253945304377602727891663993770796764859146891402432214498749788311756641527082874561413690072107125160708921621603403362779363857231058319207268348080042270513917657503140299682032672701224335245540616673313601905694708459565837768810750134584056634020196599177507016450478020659285058640188526823324429544945160635584716144493565665665237731047771944895014204619770883960325960138469647908828322249230703892158551548027211458785482414737338178381255937027633086196779842379865550663606132197436998505097824916466267644678319091669632207379309936652549997321619071411216767192461536685198006185267269668815597926040685244588233703187368767654870931098646240083045401293017085324146752891350309931010501737889750083058756774446892556250626423610267651020020544096272322071945812281675144747699528991002409906895733621698550445670082467497481526306193350173408061050824844437530981452950137078255812594187538953725670318160925887737541281516883223844149186096807322733970599253339501310546897083333404707575843606421765845844449461125337545421170720709826898164153277225313400510060836752284920406184753259862947885259770245813444171088810460329554717217928193205954919397133479061166909739994260574137408488503049313032319105557183075986076568252030523918997214309682612965980489101016933547424006582003492072027017579827258728842194644005207888083643067475686378612925512641110645684034259791447128172816897821905670024722114377737853656179270311461237108281677857736308608418650729020441575193201350707245229117462573339325414784422571795597977308771867338645006800230192681678191590309712413434705439691828150503334647354615293051998121862308570204249739756520764455888165864076369419509388863020524221664251064858969530866328002872024177447939182906759137870979927417794219870467797109565788784743113498321585908484719023016671891714943303893889426030297061312303570958982911600615470856067462338814718775661440431409804025008710132819652383481600364994672093422070987939719923265878325015700910833259006681650064136388496779111360340012368571167950733921975693002181924304039068738555691903375352275082996002556138203011984288937887768343448965042932018284605934949907362684459773113030318827986899170505679280577408491788061239438529500696801847292606410233851724742855292098902106494041235770674479513601841951763660637889018191588448468969727288734636957104471858679347164568341994534554915335511223430959604845917935281306345069924099526939016786871940315128849352147992701677889905937920352028849754270505191275764960875585841574333480822915859697519868044693705512425688657637757832469427888521294435468732770543296633220513228944581131260154372867548601864489485003722846543768467256168917717333106173029530676536001986709602440084266667573757648591803582089497542123488083166312150246303146759960799716611633662521661434260099851620169327577355995938224125714789717736298908309524178676991040073216292346509016984413712771634333510314231495772655465190067024221455201417981248814145013541068169302525969330762599322956541605889209742101758649597276482998257177874044479813182159438534030976041511081439753930317628553387734838090697574551008281933739459144534006654677409329113547521300164399332984066184034725716200203023954211681754197310376922289672386437505696452713398984939518218375110409574559040039415839917325713321425334468496592061789513827631215320529061429700024825497608224018623233340911790856077959823798404554498473458247097205790506272486374583219904302032370743807692641265566759276715820733848512310457196113957325749404944126868483142731437364847759741588517148643403887203525450018585782968846438221080364395297710369143838061173857957553537107038101652782437164258499643306501464489715381397428767744548215363977709260239325442200169260178673292401837960738484076829000065079185762284740811740083417486936408720774353906767031740979828731780946715751711362576775023255166912108584943433623606134271857289350726439058410379681358546188280981048640549534060157608210994505594292642392264508668385674426829577021545524209888090457671877462346291596119177331651932616349361491545512336130016874202435178335080475515558566791167683200551860200414231100789279211142338523640792872077068530524462593480693789138568387888220059145180165395795502021253308273604671635418293028756200873573005744976472727874482221190788453722643202444893044159267020029468784609807214726747435910284331997666478052764225056490853503190457792044906461252227035415389604133787227916897608221867727353573407695240175285990995131731620429807229662033214997535196415836368730978861819160534923450522123598961302164909376310267532985283921011329121678384305268868044276723725811430404537198074496274675430991401703883443344793365130696782699966221395519375308425775250007616890145586818661385473116957509474993955744662331354253754660829922305691898073379751129701644277219098928868133328178837328267895029451034641816991155276342415161283978450371211247058376737349897026495994116826412364302467023384971173948456482248135258004195636046472138164711930621540768616470131345465208219203821855689527369027566495464941031778289593029591226118043971911175701508313836065688501779034636117693810813342851485210984775678353876498179779229893652377996135811159463198729341387998926566629779344161948849203599182246655462853570911093555823180055982235824522162886800513076992017988044841559642473574104548341261713828521205464768089443529051118702741043797659272686244353587827741652425972455026938898925258097040269176128938463920115298601326912332090348675250129726794372538504774839091963883888461483747524831478813618898596064999755372279393113145506184733498628660889041349837572876966131413859676468299963051283570169879883199551653458148123151140439524614632658322603169731146599155955281154082917378031250264954314037393594911046530478871745490785086679824964839144995920289349560599175923988940990400230582310123854169430147521694820177457048697101860043732842070259342169098100943639177026963391064546992987852007101878557887557087364414092063679170728577621925473163531435982382570427915389984936381740900176192105395425841651657476262339947546154827482841456592853693163602174350711258123551166047249436151384948975456364126893373051543424914896534765188619934834563339577498061633380992714687311554020036238318772022404178857825026908519652771556182340804701992534174814996087533856865994648758965084939447373636838098478772501898944658612492404455417893131257978727158572290966724053440190240219952473832442578961846162483170395369205717326609061095622618070404265212178950942890981656569344450313463767505601919300805470378581572136405579308547003889759054645968469161743886307601587146173048583873162470579713055689457489661984040629549918641265799029557373464803243471151222160524268643543211017761661159604005385073322125552487779235289297108912972063857468496784095293601554000233153531852856129695145592186728862068352743606352047976670392415876068925592941606051474361678486828095772861981938359781129739016584138531197162503407058602788617620972837925140895087110422341799204380977640398855704499222802885834368434237335583983181236912586056564599472287371905876620355217998921309600087619861866586093451457406226950898362187601245007147171903413960794471300251655989256043003356167460775457841146658081095939505959164358254751389903279520005538994727056846642634548965768787502079055751381831096545595484749050049098677326219449850571514614589792410770420080526124556213485826858461532632740740528625170643805972565521282893627869153678903773516382947839016799792138953582491014265457846163054395079016561554779044746012030612061957339499194714746654297580145190641709725632569695248328566409996526493688067379124539783006303939150716555461830273891234879207391691025078567578942450667586565881480811143247410074138636070941443782286697912939749774847386718616307586615793688441962023825102202443421113735146592769427819619570464811308967198694377982301873901397930448614371563334004469143901034659530839227128847592578415770090888108243877877323445295078833257627802769930010670423072378100931942810991711199910394081307037366955769956736454463245651178312322600288745167672090618769116861881490305347521468097616411713495054012729321139897371422377569693304199725792646042066456771535618917591809950606989664540207771429232563541317653009453489508562848704094448481516013904502086607423424616086379524913896719413560866411209946525958926773125585887310309824788583917280666902575284739772261594670504647119466423363333116085653424193751781418445874485557736268327914412364631211496671793097896987702017645268047327546159346836225582359135058311855693871990646396016914933536183092787029325469063936050318127934924746919659098550521666265578912165389088531364281169317080570594295666938427751029019003269471645115871508962299804313087608745302024559928608124279677302825698228833408783730782066898710852595540552725703285756305196423449080080267640674078479673016579803310744824882819371454317649210144074208213476420372630923379375098514890233726562509998552393310411457635330110333313389337286576255013877969424507179785499677396116053438071557884759951546526896622765571020476462828602541542902546500522059939239191725978632789968606550237010447617217980371803966030667892820354396862972610105576263962455797663289996669273368731394196760385313914413478738189599312436857650429776563483534038615956439117623559708797962986675249618953369136651364571045222237393759697813408777314509462085174252499805678895104548842989511182531841856249856112958318135634424018072277011556859852356108056435422633869664874062980385793891027255481483732564176023097676097434222746502671943551051069088211883101524152341650792866546140401003119877588600799603311067425774835680961788616800759373700149444293878066721513155398809556472029885437269298720250289459671108250670962681952955124248536344215261079628982233283829652893130714055727446116238864373431508494047331797872052514056902277603383450338979520314051284704924006395225611174696966596927225404824597859567197052644982082014249226463591279784883140281589179210970196452055643778998572255568075914029794749208700165532068095151175693654890330329240125395874634380374118257321329658619221846108977719061293055035409355523792796720035369565624030838941834358309577182152255774921510231992400069502011442445984215477783421175335333354566063207146732469875931124933982533602062388144907750302172576598444451611458514165673330101741098810385298545265393389776401803249140063204615808764327999449127465955591675627709060484606215477556092736618229925604678698006582488474209108849377838379601472651231856395997349291210181636967301174517603845720697655129876119392079212219105902286033625970939374951306224704048002396051996842335318519147748258734472773591337411715806416742288058961153312072257162133114596711067037973954995108680651988958230363233463645180954982518337600257571872481236996657690339412134462809931242278664449945841854445926088728755261974455623021118538894140815600585349635190006290565685537202418982089875206979069746587803405560089254000925677591596509622440549140014178060918481672520164090347242376764931788266877183042606868316897650589836595136888333653486007344550138247324624061788080889506190369487483708362578908933546485647373844628385625881048123426454473172782176576404891477469415841404971946731139871656390237761298464757525069801147337504840285953775569319509248318703920181445435146838731537625131844389632262697740238987655051632194347296359237641207004343931607691698738303597529794926920755756416931513141636579946057019501798649962751651262478232348181515097021257184261417004070747021087728418776527003797496395339736302540572122000932983997295688465368345233670545589509890693872451117835144670448639714355970875869894690271531513894394425136162642340907728524396377726128948497633361642204953433442554923025819237460889946294952992400329386324175750919184588125819077216754108551019512760219618815193166530570443315009354651499882764056634926145340266994304720813984634595453660793484029802772596185490938946678939846302917271184922286860586943166946345481106680371428925792946852565289739320947331222102280902224113410602424846031587715181992475787340657077845748349483648368480155360277660482423495053378449538171424610227965703206182065598791906680395429673685829541985484681716704201277655669368924146708476257892734867002813620539440434565183538498559270595726980485367802902371420767454602405347094799982937454020573919273276760221875643433948644700538245427547291113004495207716872169947028934256034612647534403074470260422697850394758717856279265291105649233629620649685536146349340907360653292452072523712637935359093859443141370317230742828366151213786564892676304980741622489748817049082063836450964387075873475640329364623611575700825382519493499667990559862402827574389459246393881658946717547583209576337843240085326802531045664266217061766335043552044765894123205671697103758501761790797897655495512963319473398391093388531391967224743476260117500770163274400412412662506306358888350158682250407440595327582552372110973091449655693635844823514062015181967663713102624291353985596476876511546879041946734790786756133014090161314343894362611393616095917130445811315140732688335334672619171085168685203691135943937410990734350262475781867879515287550167884648108919961020107946923662879642352996457527618272077985552716797215650040639413251697351402130478077376747657611001672552159579598279071684467398692657630230202094144896755976048578158910943698003283538199970923148116366019329848582298425922716208014422416779831128680132177425421888510641504463574217391177480900577052373888815219575028451194126045256119668229825699470961748934910642167854790992610593575895892917368542695720951559238909783884767359755615493092424572001027492401170486437290182609873532138821428207903976705940172275306965887564801057407568892148965753241475118730006816641550085094283747478177472620454607166675549056561748458303980989843067976612849460718527733799474128324783836110246017270587611513708891159846124682667633360228468703856003317928938934376472203079340984401056967218907495387150600482801775113858924339591056239078389370893180397157123326328076114935648549955692271251619371753386050397424460744401588908890007805214866120296256409939088326826982638168111291728825010218121601563968310246730853984587360161004448691955710567702688182801324179165183229179881494390721619125038172899908328860743076527519565131682836033130405618025253744470476404345595365145363755050161863827929986335229050010071518372386595096458195266808535998972949877782793534258304022400509582042450460759667451001069413390199784288587776962539478341726890010897602120863825404253724156133736470224004100998828839884275074975105728619758880735226014950201148063456608049998736992912853768901440252325360635261305862012277405604729154898910348634509905801124138142537732029876422122717398103593648223266134367618680244637424148529904155227122259304295179829787650598117089616590362540065619864370172167533172735817618310549443120528951572092331854092147379889542649151651615118497561511121649297308853347530432814965983241252210595908532404391619771828343855775620459868827352316561596273933478125770102008247290081037371494220281232229184004149835614196948214916100624061113422737434999015839406883151155492989190574743191836177447975030891769241698781891588698732506843930277027112892727734237131463509353686415559487598432785532877400403815768123880411676899757762197513625031695168317774664327240296536530619509939352558976389277897942389022862087458022237656062499540048315914848011100282429489581596408471909468789704953344501688689027561930829251710799856732914704462647159198634915523899346962363005126147031992751426599131828144219028561452109237103574543481033935780598052889020506992823042617885419700843378894348035883006070426282175038705574624951355465992870612374359565568345871633466362025283009908113695187583484944327534409023537334067648788578960278438381615089115572951859272587001526183145053800494038197920066679473692139701260344992070453660134774061585961570096415698646235338881380653099031517998156009639060577660568255977149268199565039742299411431430802610603482513159550144230886378960998361731968969790816847948491507848104109989743447524386451104279026511890607599053486377994859997052728743763775200723358962718882905266724007422513547333292060554157245336529540068237398503318016183436417032548958766007425164430981040294462544586760189174051444517906064647708061012357509037098658388009621856970452324785502152656810633665261139858075126958539007805267860392973347213262457637134568729469979898698270608883454445709717819845931766684370836835194903813732447755362173349326431014822574975851070235913694536599269438395393101206691125201980035005115480164696494693277830037939953082999050927433975518888903287231637037352331647483138395688281354471721865102668783578729848033954527803454678310894076922325592689859569555489382985699912048758873179721694778529484446679363022066944024473051089530374413195781478928169274979249187452588415735512618852587931658259075740622537974293902811969195053953297459752177764343930247337903379391346671593424383631004253786795104989081148454115410449306765377807739125675056817899676796953411734056415385902612334712459159421478849310541755046795159016075959954240040588736040394475756957357019576326601850373015598923648243887194109691529707271714022749660102358865474347346233233407837630112745461406698785535892649120596688571335325227648782000174735111890494143029468038948112374315288888833736610538359975661165944804324127427128497164998887012893587810447548518327703154288004273683927874221900512345163165297043494148526864235525509297147236136880051792927122857585817704217246304395443659329394635207240698760606884646627150116884562980171661348163753612423616333442267224051481607023567139740559193880240359001812084148789526857529510847390220329407302461501716777588395063313030985500769279926038304611719223973312516957279125883426709679233715940946581050678988420274983105979113457394787759496721609343762286784197822972750285322853656473443912167096314223886948791942130384154048429222757051083341981065226842436993118625074221497767954354707470622881787643014719524375933896625285815373622809039209413404658812344634537437601579249877902653581066229468104328568203630126123321085528928178777652415503585529954797948054326075071062901861796294548418209031804128643609075146797262032925223351564264547489452370219494302364703234871918981811811066320846095767837429409026440850348150485626787274597629984009104434117895402395737268322269879267502973641926250345557193467318356072088208340346556541037899722041503515744738679705709925341697453031574105326767663798838542207775292592681819473710218056151899347701548511760915452241631959991671464307520246682143980593981139807600679536123181766417899261223705689351243351426679732863120839101159302650484195750243771439142516922336286943578908834290908045479085906689604417045000254086508191251103815024775148558944873273020836817995181988170677134056530411449499127150478832313267205990325897783726078695078531217932223452258460832647432508155277880881923618237104107260768200946760599946015105303759804190828917044344366369155259467282869721066148229036851534745636931470125146928741821517003111565640479266291050079934192174893456499947303686067260542861096075062963055030939801675715462789284186615019370643882428421570462662824861589779693883255380951293126286353821334593726817238193511323489028114213485032292056433850286992625354054461067084858652760615084752639213935487159799812152639195949804154212605106664259684775312252592824414462591603026594457883825705425169304419753147587142858146030966792996881532258065266115878455493585759441817054323560813489783780055943162901711020244510103174376656369105624136959575626725001256074095319656500908489350547358274213735694697363235548324456759978946058906918568086910727067836555605424662459938019331164690507556996386158288218272607660920173305938914379835337938950821702160365158402445175381942718961656745866106448329793552933166960139040950588477742066435062600114641068416354845699983939557209670675627404618156700849017216259958795610811468185602654926631734050024581916610880479318949322588425321274678413247003080444162706569609214939556361868104191024107995091348768658969735798870888293498180851553120512687485972738083274399203877690703898691110224364939783158167386604353060236639755778035326197832257487471013395829833762983745680812697916690486579128529700951613689400422962687461010998350885486048496524446495502443494063712709327165872475714483688511791973159664130191345682810442183137856133862253156813359854956248818714220271314323208459989341736821010131653859897186750157217455731895930477277935553304080100177705894170917924100902700685851328017299978882266867616703149436179389107650065359270567677818451821449309844327941108245899992056376813725315532157332189304879910215710747309908167118623606285624701404485829633862860017386598568139028294263297623572756972222083762585938912765698428314999382742541183889018109536829833065265541903880027595226738800571877408964903474756156109437214308088023708261103580035884217453402903124334500653494460207426072110926468010600132457978296151894898994247036081909868143826633142316486478560668078896635099471725808879694109864342063606579184069772613505296666793983717710143145950826761522160976077458246286897194724790079343439458549427743651892680234682120089392055038335292957835886745344704525739841956500204609835847516381997250917101629606174738998721955419493539219645317922948653232338689696997900411554140105052729944215185222945734514858409659858994719274908202973593295324791248507378361797167503788923490358996355175147000230643404750393256835635373071488545142940019476830703430036591004462449087740744398303778063634410953132936211608501493130541522156953203435345599194657567286689085433395306844576835533337368127778829555414000056124295698162517233134759253000871234087202153837272987398717612586854321988447054208652640177989492227124019141829695184196263399854700431571457577894720823551801332987320460959993271314623199246251718470480426285772560528227143016284449004975290171326629950869710863157525490025265131747136270776168818504823907561710511529408140345464501222141440627707703078198557627064440281657558305613358514270938073641128909173646797828123984899385341287781423268940372368910178859779915895421669182373767244226762771702725899074228847004501452128291703455527353348868782359085448608983898381074180441397164720372353993112702310645156734558301794805642039572133328793656508686310343738034884136778687566692839970650948083630525143413708009349114862265703425506684785761593022888676068392022707656173283989137286257049944132273294963095578362232711988455559195743308621780066765610199009435227082536656275317927465292377111341892142076029763328543531850128403255833465998846035200831436345462081289255258301240329748030532365741386731398549184336296078443119878814801306065479558903641262706228530156758586787027680100975234623198702072382063920607507526661301726451156001156612511362342636412058570920788436577660567172412035167681705935085684284630317148179716962338289102554311270603508862403274516460733424027268017829907745239649950709807975993180261737483324810179256357248820073202955310453254947171383429651908038066767029582719847972086019402370688240953473600201205976888265002620232059599631298563015494920228504779406148991759965620256980808922875713327751992214318658408503770339998721936574482221820651584308689435271100920747795650938802816934847033462129020106118580593369648736515677334460795630387474180538599558855041223525853908150823783915566070065229768894025507311781932178106630041410429889677613337384680795830322152362428509254401494047193081181216547914321125367629100982058403585524121873196201835837936560218091200766102851128116743094662566112505230352706427047209827600046975799976560478280862131271383237929958038527046622477315174494328488967632966701951813229094038212890378131108172726325033086416097170835989598413487538563224501638752505192634705544075764877956996018862773998328106697022966560354455838654501383107234174133147120492860594407609750520407085673541326525094458971052412690501274647287898624172081561479372678791128137761065587255812644629926096355275603310336617906852574418693460347536800307010022786454936671941394791620948860028729574416996601026461937351758152024628966286577370264970537412289847006651085587435932280709671653555840643665699228235359650432547095530567546062252974969076297142162233326687149688962147579436763877346203272009744158917799927048091005943076143545911972233942158678172580876310681972173402457603013308847833834909233095740800162994887285239885952246346383218101606262930845616975860246320071218389843277924637420327461910441837868370245380086698421021126871621330649831071969514682384838093772736958335398648125161677813853065412200386730713502813110124972461350387984413067215212896247375690257815824613234808914641465267273140096439145439900765364300734451775520801026745719813779666262080540029491324202897306972812899680782275164667912228649284314867750868059664944211372672825452527461614564191208603111794815558134232820260648864228364319203257562117203350000129087089313532671836744947666795713140363384474457507402121548486885983795230608500841974840042362356138863301015478702447819279577816987173744700473391549261560192960321468130307431694133324799929676534276810184362333392462456000268030776889366416849347775540626273926977429497116835973389311261762446623748950450475236664820066908478923342081913349494229864289121678926098447672638830744662302745255485905949301773755621952945911311168815424035659764331088589131409694015843002638565505990766674429589128224168972092451006976835147172829044199611057155770409730925718625079538406742462681143430804368760731002757574905127751753346946125043602101037972830293795815434057059492756182549092668898905720804973528296077646793366393416424212437166561623344438059456666852057376021539391129566320897985471042226406338632059997764953077691941243727434153551970373088519228623542283964146117474740841874523169876550143080554075537328811351908822258725998691108006222274455704593664730763282680681836752160248188271854945292849020811704735031987147892124434324244410174080912200928216904170457161903346295869816076085158867429739997917189934802989789709913904643434059672474083349205860384764731513998822552930895545876276934956356168566057193474530768406345660888257362401041688676938110146746196015518515757101477195080903970589619853933965626191871240505320484415613253400818704073094144153380734847331669563495912515014530598403457325249772241806940560341391822194716344289025998945635184405971470622620021741946248477062221844811505089697152055864557517851208614821390823962580404579915293382280872266944818246124327400033959757547007743859771823684750284796437142552407274411056934104795502617684470081058579832009397102859313453050221780108426132486264631928538712866194845570408429380871855389979286140120498103973904992089540213510286757545038549744547846242076419011138627855245989009270834558844002532307520562106206443921126554645706108212000069180196124256659542714404381881805017562731058854712658075621739433537684348915281830402026485080339773595402341952042149154873572176110622486010812451303869811787979483510446721368224186772822846937617120803998231372334902445062203890629786584840697025679376851443673106497569781630588674025619749671575280175874355808162075783653934530042801923135111151413105730391669538905182307812792310272049790606979658658386862342870329091266238113070393691063941781139768159746252095874393550662820713198933475300334466163383324525253522464412096222043443953202671590774427564416278915987095420974608835542321085292413023893438087162822630158896244925462331292692964790544647724549021430716625748501971830790125356848650320804413076755666816891660753354519556220212785829401847595140516911924411050014092307254383093062956059617105982119949508245285600538044492180761579119864685215174791386063034466700648787006949988003910332393479069967869530187277567806566426446533526447255097328946364773873439380966477074226079282750900850143618800550993541419681572442403245105440791656053842454539313278545243417267699854861683586830519786850422050189531244291628903772195462409362852865597698451287324432351186284228266424886394724913708660332337055699108519728952345885854470561045415975031285677442877463891301538811368259546756040653564733794187718322237231148384810038803855313068764952963790143558167654654630673635743572504368770092621011239780221411203414778336789936116142964202911965379585640917052443352596510186013126500666066494533659387106992316883892486708475923661690430698770439467739710249146749029571339837763314350918283170451644553011906055836733208263032584275261504532339915630327415161477324464916715561242678659588358600867855461759490544291505129210581259556125131441269502735904091475197566406097870508799486407513927636164437373186033416422043474832749273891572655007327554696111455778911155209740720957294779499447740985118607786449101836884576137499162126308954189874321715294037374189568996012412577209766321667232373529215828285489204497575991323836218196465325415187259021963243733457992031850074653122245511402362536658223199179577321240387162654520469236984745290440688752849759566610324150399460897608207140328305041896624093896286371750793018209441344463974110143341341474288137879260724534801229048052282275274911574321000488810440064497011608164927830006096670812477780813672941517855071326869631452355507722609537935944179822984779720271836039450977075173049884456462251880571959624706668343927763599692230674810706242197709502105855205504492773469047338606546428467530589301614976498999621009101592835193866908410828473116663937190613980927796273313599343978469149816620408324594934303073164614211014978606506284458855192098646718031030041957952608743727398312322824025285519653737927372091896988347112350161528611449642141022950754743030173560084069530000787030033184756692847857229321845065948263012966107038456556062754305755727345982448227277860243387385062734969218863501747926656920701131635924885930691834614334546824155878268022590598589115755493568031152665626671327203060400863264435799590632967453962919997921043946333745236719123858474629496623937242485670779736906456338810271668437477403008158486620939637295744449702798270711868712181177476842372001523282609814581434463792480074836095685488880524409123195658626459974582762284641594590833485332889263560379842798932107890626875202812750054898242205216456536792012359984148989925435599818210146932945567561910178249402260921743434892608142914059118314335356498628483099164606714363376902436445535232446687805539369417760565492118023591169763912381067191565618468593419460647048530622887443570519895694516159453318800236031547538617747798807221621782355247239434796475337885801161430549921451768776701302062256516881702827598545630129973567923634463911885664630968703059972027559385318036572444236489169805479684988605043941934770257196679355085178048960086890590499229791432605444268368377661364997950943891325488571794971756935693106401388584334290066430547459182431963253796326297002262341876314664936895169173994567515540400834401808103890557303583062525794781649537429805342323693624898536630472534691228440098782882195010567759457422453621154818089100580956989033160614074059255000814787136694120275039126075362268078585094908136277434715759745859265889147804652461449209260620701786976438137408962953999652021599970365373142594294616912597105933369712982090844424956035174024551301471015361106129991355270286509292807575871347275332505317471004436001629694368368330535169432083318256129432693900579841562560908732960339218580694092204255612230807197109525980042875946233226123877035299597712372515281587274472389199300693039822118936302845387473681688326678725988930818574927725830330574709429986843120717968949215504239620566117633943705546517021951807688565499664242774444712956296594764302624270254392207208809635559166440193132712864279666642903433876130968111567487205865089472921420155049890826730586956415959210713384815699721289929231145427992046645255166413075417144508300860623556298721096398164737340599651296090008659331542258923153718928359383296978081201198871289411391775086418125502526660245936546441891249560307818154049139156742368653249375016637797238055759736391966743921333207278890682603467737195396918412261231843402071089693218318621606494292093823958581279049050569453164354150930909359690983077497883073668769165251735035801256267237280185271711875892858219072707532428699275272941471196226515057277855032619755420646762005606929269652855651274807260125370005680576554862590316797369385751831370717660698994195602832601446525570171380645261002555068050001283210632144292897302999617712342498438795175683422724352399005663382785089422084786781203857453622543975153633640227357913012761776589913136799535682982543560069611170288967104760688777414583669042282874446898042989860834201228084200410410334266797348043678430221342402465236783034467073360801310714373963842141897910074435647980690262422728878280497067275642625101425828160420579177198763012421583057938766400478080054103157345629665228546848442867400817393912009341366074785097761079008976306632994941061743939081570995658346955910841144495271679566968822647021077044465265304076450885028776854464518335537148905516010533258617549605369765856199701994270360459168545106497181205320597912918758805436971577018131538123885859540308286547117489406699784026934947299781027817732640890017829091344211206917576859970807505089747439574404476085605536194273696888944139857362851411459537741419652001170392695336702261152755988731262060646818289259218751142263633469310448397660059963448201035287525396159824307147506008387482242010999415214209180864270365049666523655470219006684216622318400905984642814776157828222417876204104548695567415237763960891683543317587761561413770854707418449742797110106012897172944985912652661781807068953397261759310580398750248837382548975120010586232342600808009218316961676835893400278948592284409767984487751695098266084729682134073120833523886065330509658898827590459060172751125671766912310429701426772130889012612468583479422242671958694327632119558153238383586142052349787779199389301724307319491275768867081373813593474641083269413773769601872721934642175265395102582954776286420665334853695946516295541477630984266116372614289558022817224835048518991718012802682068091782840418191155603589977080930839637418353489822934407089436753676051420103949200957396807671348883189399058024355552483900531330766484631152793689276933335825712729832577769993057988227242029108476542222936640641530303650384518390894294226447277915443286769918080984393088324478069358159658730854728032152372250296196404391671133971819835058290176336908232799009711034846947889598432762490031116905865001944111636628018989274179537217794887250564617332566725392340988933235781858327712894332181135571075202329913475957932019143336992358912343696486268720814096195985277123613631915137440468610172731469712434577727826187683222398811680851489999438987973358011088845287770270705918047766667476042930742977090135291213797509407498448891103773720445805054454845811424640006260486501419929072704518986567500331315979371282402991593659666757559764761685741625135877051003423729096358060398222699529055483787552176872555746433846909176106497256479202701778302464022676959172355079295612390140514804146727898122837670107294341362881959729590413581716985501935382202669231802080380545947508405974523872885738919082935527468544152423274491526397005707036726458082143483545590675679203040222090421244516184777046437067167320060513776170621430485811918009695254242483209371646524601235035863296696451724136909242400380263738200157008085172838743184405516945493065247406243200016335102029696055475736670658684194620711407706920641223070336068884169496479371550251364265748284893639122187924961516666890805835220085537618934117605294492319004930484446497530801617732762138274135143543925673082626081256212396494859285957247101772344937773396698135878263250812473173535544908074080749879121204429043891283722423197110403331644171432355621120616872045491740250693868771809001764070410718440966340392579712015185124905476901716847184541052272499076047072889912023156355582229919211698015807660558073223698975642080612495687425717966008442833091906741338316548723976766966952734919598108451159118438582851347708877139626474777831211158972570683703215924093657344394254087264246886442909558493067722163630758722918397923510773628531534918760956132672635023300823211570524813793136497943689935608028368278449776139771894118309217117774779302418072028081947837246417639232183617180876817693945559873325688791850365926374710680122109533091908449702749783037025095548306673818753369824597186708434412544623129816470166273453715908334559194040244578150709386144695956999151822997099482490258630039243921059877213642067767492072144292757835432404481709112268919230752839420019841167930600033588269371164753544772801406148360294133456012977978145874748741511254276375155308126511151183346590049166403720278025702289771717843147428495519723336428896757493223022500778565730118583613273250357588374493170827987297827298479773562155536315495056985808590879771836148686276668564336290911066204087620741185306938177657225631616984512443019424867076601456315130527223726744002019528353521608848191582656662323653112987240562004750035620720048233266391295628273573763634918700282035823758667209153105339568700585696009929485761648588805260958017461369837413730139786850485227664985821606916652406992975180000689915570701616649255666354968090511979621951459698809697436778536479821326585609862797387876374686405390226894849665835076573037497788288364268015558696595796857500428278262486154557966109146299150615169737800601519543077064324757371633599573217641805146663441787352466049381798580816237937266401963319461352456102663882528144615631771742334116719409381375208837086466351743871796765494237656281722275755582275426257992164690663531307355982437679832173787766049422929340400746546837277862734692840115133813847384109645278147875876729671612564121233788261831113097804053434795691694190564021848709168921640679771888462684800607235717148655956827668805821954747200609767356800509055074077772865267871418958295317061917842111211238630718088541383805309483805966326505619560366759205853443790520919950503763584930362846761675673833469725197970434815728260384530407190291388334528218385377852595817935215658252868538059789423891901329787363446871318773807941422655285693589222127620156465228073670695981192404230774993471083566580924481158615940661830858565733700909897868324693155793305238355476016316619194874944569829818152819201604550991927864612971445898569541182243973710321269498716474078004048645197491392831865864809884360976795991883007452846533528770454454063808855772615884643411508057102082860087868371503051125057717634072782978664652732083077842593434754624642506789478938122790101303198083255598953875968570669135086347631122350608194240365916426095738169687825918746560109275309492880857771872728195209418798398960273301287275112981288949471336807829358162243258964132586176235453591482011194583022665019622012756225974008083138321291950997765077866586383426242470728699860737122977680821696506900738433888219862010069871237399535338287385794171739481394593472662885128315619286655683759186239445687617641215357140982618881268660274889092307056002388261219504231346380997513310998076102726983138883927233316214871764831354035963566723831357442544512311314833374453550907402260397193107226052290957957834755243415298606722929050759141977911399186157902978011040300640432672695520516124027082334640322909992833824177357842299649260771131824263930037062782093239223218618661904061780675020773214298699908530781929050322749966648682483776670624296085849450386566693754841237310490666449110172185055134239467170315704713213089441683355792785509376278621736858557535531274865251815255571330643908529252926363611376145159366395916375209077521874711232848909604529693950206793748147655705466506196018800536648924834783873920421233634656898521686920615788779082369656838638768211690916846820070550300949891781432284429706648412214499189719336424142977771406780731941297905269248688049870386310567756639381513760199985127160035735794652614847819801020482227538320173165560510830483872226478285870236917183195096970848226125761303251594558571412307055558761822284344416877957671007317489340066654911478422404118052354487840804116565642798307528413101518383439326340117549672114171899068407144340173816957165104919167702338982380906107213439698720729722165341349572799912994766529158309867056472102318698096511877367382589443870574921705378249362138903044022691817684243747134835756917024981276265936771936425087454552080229464158788742788271747318257143218147397153424676874044016616302378297415756207813921485998616952150399169295644396209325146868091214706423290708885278786465829107508004195982341075408195536699340630071480100278299081407967279795448687642717622019062606516745490771575999876232868264879384800272775656663992783499150526429236824090685734680703264411109361007965883907219126755226772918578288532276069296429207732930713078291682420211149969774631448693670357293737260347478737665823783728480096921961607887002525188346214078596084199673049260582011596433554979329922932997523981250431742250633399428738082693918545825290015808011878725238504518164418307827000301471295479686048879788462738768181185591457698125806751847254574304629538646274695920732495260537502862707570545145069093997949639180708625506760666581105585923640292841757060745258009148769640281791713837146298870704897753008683435420730123753825601820787619943153789174656231394894748262116951831725245070957353038781086183426200298893213125951340273108373402157913334116703996219534084038036780980816481891627794614320750374997469302272265370192928054857312033004966638132647496558383293946445047075826164026667083490317952314579421770057755586492004061897873404302893311383121357050917241244978160805779807014844616260343282042201881476072178328023645704858717254454473315176864142402946803762190836920086407025127720993504788734321346620303502160439944240183945948934976967513921616110606218048659450242516148513081613423714534469553783638570312564695799095785953964165663773199448542488493210431356290278208383354322934859717708190104527002624899368479989713295810379292871725047451889016213479483380612013176331377135073681293962456125463794308338183713934209526068816977096002462594604696099878285011882222819985554445221232749498374284949265242097973402149071392110268130327626646130560875623003983694863050130435961877957984323093739099281819496149591772599176541491037549589886098477029255857907178374816338868067295375457649529605401396194731811890546715415764511346837891147372469782189832689232226836183333680754461104267743780424970120070424516721232365648020845364847379183837141646163863107332991688695724125243611400156391013622751322345261840994347688601388570164556283662672184443646046933494491867203797100453304430423991547117867119666267863021687397375811856494062835628101695800724063132175460796647045919471938941626791844398420678780212427494031334296250313632334874511718430395560194098267394088857847492739721150180185670347592506388514835858401208879866478822498126236327312861957417004294520240219727506950394181527076204129675529974652898331761365551863070537765427558643273518480351820584646759047832437540778458692009558240171996857661133791166603340331154342129165309952582478806481004723808285089200019896547133813037196964129454421584783001371791526637572535763716597128555747516345184919695084493992482825875421159656121066804077426296518695067265312777314106010852393966753855189743202791085669023655653691046069624157725193369476186822623141455063740240817426571329661884708442751121811130923323890617798285426873082017214085712639644344120214869864110799162444882877066032995955893875391969099674665681070718260405851573906644800594885832595285197068531657708599223514622101661975643526927368254860041557966998375052154854568899568588672689757834673243444061457149499836333387529054900446781477300930664057626104329494189803813733466822151517801609851704435344649818817218536330786033924058674613058853184930527541166757212218605384400414877798588992883589276740998986350108480261702849839858605060961321522076589241196974063292419825601544610623362749196027672011780365230136035731489362826762172519759664484921213699083946738724563840731331247009692453314129236114205468017668691836012570848872449043530294671887580305514785276171924914771896602110219917441330205203224751577305174532242674348952745723983024888756946421190400102692059311713802003379098085940392244185226345399271725112996566433918370809703558824495112347411723635789460200781880380372177399910572040437508328598843742699080401459358053508855956361329795072189474216506490858410559595251243264969190951114387805042028069737920182888353646585452626282964854436170684587318237816048586176628698734729270527326923293199037604122488990595372104623125155384349261944894306526595969260725005498656884785831410802865000082574872021996886183970851982355088619517862179628378568215355322944756379843552702169338553231351086448414183414226805153611397336668220764921683894464338683552738274138798093753357135641311492586802305888412032204818641636527693989409995296894525906644831642638432073788179857070682147381750713419423470610930371885931482263742797228134802509798153343908428260846070546960277313411366514436327809808020108040611490502412600686037012114969646212548691172881563199789753790750360947881675422700919198093414263232294296801408449556819321525710481750285408015332740290949314635346575159531281736736969652849773870399366377957898820271437392691603599266988884287984486904836672779761032172599002692262719259828672351888691115109064297875151605572485463817271502941443736337298374697163193558737920917544264246694672178009340012403839948172351525550833559290537336017868445934739606224124594724626460351113455543672407464760824336030099681967064646319620352427398490801452227511733086989921869161611261270086612211390550303119680839483473531939391026859194758415286987599966593808840279258231834848195708804241885555810470244266971420311941692128676650880306947005313184460622301981152387371119316381120485570530864757496775454327810279901146173352990406937360167828866672258033494948835847278624729134453706805629350395653199111129398678989830178921250170948017310108136191600746121229728392784403548726526065143353137608360012123804770158560426072856413029288389382769661510534308322746315436809792042453319073554513808230571762061297131796537026999531552211864712349706565848914593020280288686578081905905457644340379208921613380932872222200929817973457378049963192392444633806542632560607624128875837449530855187349445480038411653939084061680770657758270023316996894048930821058375813887150919961718043761947618506411593149850442393297206458484761115983342175803316078731783785732895276428921798912980144767401239908153961642569513136090237315625899832096307961453796673579826490024328656536082731501496107855851774911171090675008704351840772980582710282081494721982929087239533980491260544486908262786839939366825134234956650103912292591766996118091847393208394588927479957802495936879744757989948050565744195101713483610152080366769583453372352870112075059434211710616244115589369730080628275489401506016262813995617587864452496770248646085175304716194631243284527953435786832456002757150565712883973893475611836496291093645330107711388141609080166499815184155888739129376980157116367707683911532813503048039967306557746443203508452852360275637706666018685784238156996585955698208230572518585871027652732271825568783890530096235341350459557514184934262072764790324673874661996953960941993259666866714934747959052934695244096958675814534004301902572639641317946002963006916388039736991217560115396857720737269744780057052944067622599319562496271796024909557771678567453044523087989013487434965885707681174701185258948741099669046154896325117036196912377070863372504715841035094357405818941929789006947977232264673893435080310914087016029942055719816018020157223271533671643503914994713668887738943402126232866523351990455967315073223786516799621393904657135629473576976552430270495293467924579742529324457925516747019437744636604405311523601492154603839651177823219924539314557991448894118243065504836503703062962116921251588231271695167254321921068522682943821831949142113415487651806773394448968014087150428097523419655136213170902756979799693561492108121980533325773122546737346334161956142415379211606425730059350679469096125011000749341400745168011814015468259871876319069266233150494683995613714332038427202531515830908280501129282060073474582504899673365224494863322446022512135167013799569983451052766327446368239029693289304756590033502135054920243598175077678938059311164812540739208722005366740893225229603554520148477699452182593158193630616494476677915673992205819517686237991382231692728527965024517583529871647276622431305956064478615310146427186940490869701322105685346835482193118151461875956434548112160895715763362918625604892640934809519383166131062661634334845922613181402280966100924069471549506075042564949888676014687362157378041955542180440229047413021269850138937441803955633457657872977938002271809588533730800295152068322548876131632482071727992576408885778102953546110513053989283569301819930693399074561526351119350749428419836428761920886359389389466280963746737898795963077686091794600459964872516957735991497333219217322961585742068142023337719890679781458724229267043172301069957923549824278419697954711864432334000984760518806459699874406751343627718117271455115806386758789869665326543237549671641552614592720466678795180483457690968998948090384191669863010487903687974285330680533844288669983160778683018409225014105841452303100802645357522870476141718322712295541016969601689992088326924934443814353775803937009313277381428193876930588559950127585754923371630519369809529251974152272538944380695634161716998132901773061277233677688133661234065919028646541275114709320452018875243493851043524106545012820307772338443076396821811063580537103380365956533631679139685447626692859449323801320646214004109894436482197733716510319472806833061305492761140848317050771375280671265474890829439212905684813461660327994797334221582928934964570549331859984522094227167332108487401210997722939677384198179193853105602819333156601380204977364408915091665123619983255484650244558607578206634806060527264115018939537503263179995541805912748786812633585886129778950856522853657599839524009718838728709754155375834644776806438760102123619472369819438093231886362787035270146870849888044251212618626906037138304512079079487981060750673264386603562938454829109582757227145247468123793555233219118626584384620442367389748367143945143404256446275828619787060167086947765055428400199366479144376076241323766485304170495240523666091836895413973368975797176210699097270496947951321082109348222145370887092918275453993306836667170048113318597703479289829747392079988590606983471975337080206570887655178012597198295512040730751060339996752248981264282281041143609469280388504071178468491061105355255071575629275112556584110367355022334705662161644332523195410237181525685513471007643567405604716928477317809660341082390079204480167694875848198786075775809388035390872766057411094598861954874390885754086972252910754644466946573237842505955918741222452394766314502483396135198203438122003745187449120305186507025949167856432986003269537792885367881539928455057315688782411278363937568822451772761469298878797893326810932485906024845511453186081981268048863651616167885670215595303820309949160753604238094232149260245506647506828641398841286937973945437031866620649314984411569354968636556556074200103813041557533748809288336674375350340765459033438049057994820265964666052310462542329338278856384792229492115801260318770122116056312432721045680323659932558808699518043952346003664395596980485806934552922066617281742494314261791369157493231296507070745222986228953348139033336859314416409065804621375822154259763465730077527639369705915744693307415092302566909136861883514029544039050236400641049456240061249583144787524780420945112876815400914911176118830238857441380382591513669574043453153883946543897649081744857705192243491371032588020693149466488765409651700321058302463296084695007881094073488705091480884692939950622278682541472953799572889221944347808766402739682077806898003957093213063405242923824369725899822704367040658473772194804737940444396290988082423564729742610404082135314248376407402613750490927416417129465197910856360030789033713248591457722860929441584997987812193637063962556296646966045079286406457970842259691602673412515349126204323484385230365463503253862311308389637831152316587660003971432256265204358450456581625060556383633577360163661534240684363942753976718102844212537275470796186911238124160893690016739662315018491946435308825236672186957140209878333719365273817934236334946202309259214299416057280771353435297535907775634732329918383028382659239062760648583593650212831155127085239903004255902808681129207132956591804122984826930047285832524499312113755429062456540449211052348007251574845849162284971087377439329127961626328292499568078928594953747248014198208458007944244195204682861371241131597870518555377338136097356508652590808936419700058939739846764000222208457089832274799669091507196196924631528089967515756230208934845155476023475672153436829844425339438694932220828842674395107424677876801421840245281805107560431798717923795274901119979596773747598230612121654005761829574197817564308475572802092191424357089753430961642358627870726811778028787007792155309703984867579395565116533158754046015463579119932788848601621451660197071351848695350614177747024926856517476701114900997283081961291208182928963860078064057822681157271518571443486403111182312426751825937410025376409159577905212222678735431248186260788263887566562611802819901312042575683742534964543398539801929153936309114245510607548372632928549492154596804755210880987576647199915374749257941076264805018839297052806659435974538729596125171443991881953681617132357954117769273822877031513237734059951246085853108823405685830371770035035551033404643188285258630220444522875622259331006370721003098500871924361033182810756867429526792950575979727790232673107249882699145810148364000762091939585079075945469599924949879885178639122991659982981812441426018816729584350872337141020527954859961586951047864444239594773730847157114948604950618491383143353784727378589981320882484330921658553569397956509107730953512713247454625777133935379487582731238472807798136969859977680842121697810688532396135534921383744711849336168026784136967162247756431355880870245841118524550563789906847066149282217967083867922754512801375581477552397779981492361967329467104919488687087273574293901841212426475366053156554256572090479501628831816913136718954178491600733927031868275290838256129569079787775532420267875040647225413973580366497771583082420952542502751709291230827802252065673563246469972793712725360777462767487573986348735151705365051382466048612711120694444798515308247228719099378453282056690647879753717827561774985310070607067734246997652749051235129830502166555487207841086225947253637825161016254123289804350987081521816668904646715523692065084343930233817275066070914422262272048436809177478599937364005516951145649803520395094689336426608048686738366898492291864012595635769166840328155003340060220534290321456066574567822247050002811594205827180916184891124667003668768943034168833589666407571881268757010317756146048038006450844450691392279622774243767107944354255373570662364646426148359940555215590671243146026997620757205762511944449885682366724231356907324543675180411471692361556635566772143032210611633198832060193729634601310553715019400829524094155718234706706882126574887298927432213077526704169768479062589952086167243232877325773667442566551321021671584207405093156486721382962367609297317318368547080638929975153220475243076039529977002991222483454436035815313672460147426938627686087519421665163232778648851069414020538950399409056161619349580416172790471697259917970048810764665671538160336030261789612126263540901758833517104416064740679418555986071934813376495355668603318943105299779542218085483553616247512200941991841741599689408300126993522936318029025288433348678348237177964286587777027490988784867255054487076616531213041512825765640336411053752282933062034647340393620283021541009818048226346155278685248993348958136213365126578972097125240496457071179529285022828647039107547150855114996171782145429634391529657076829277559695095795945408711487406884849171497014683881445249894583136290774970209645393631023625756549340546555469846891270378933780608672158601920319823855341468456196861934727131390033943778468991452124518714719152263360116225267631175010425114905730521745794414808290075822282508278531563625591756196279260518478301207893145111966918318646365669590154522298665086275764619309061213693346725345604282758546578268003039726706752491242691252411068153699450918271938540582127520928536441888545622609223151723983090404571936419911840805181980935490546297790724268849371399528468334776063669981779001081212731445167791951467641017102276161338741160709316109076126860009251262489769749054523164328882515215707546865601717821830266508113724742392861341509620697739863934001535200699308827484002459914585719413349895922484484176776396379153310784353027129729133232350949751541673402157208704411799679550718463862750722549514204114321435848515718462283588835094581609403958782284798246885733549874466325395615644927733674007462689785685233614587425810360670542805094977873140450505172057095222133933430854354207744052300652854277925781232889995803946215242516908327345286353200510851828042304508490611323384641845456169989597229519885367466038571278188586002529409627330567568925606467378251106018010665239565449630788085499227242821188476644551917501893813711185568769052545389555853060396108489545309667802682809747388193288170711691199241660836897636292033040258077082064743559482457370836505800795439460821392630171518909165384192803901980464828396845080495566197423709926394587214346745860950940234697002039911467046911623298698793130535678455066432028651797866196384044702208933247463799209383536296040872472423125014101515554223396873727715901021754304468598249701545079258457899753246543223424465000426109555752131224173729304402522080417374092244377965512852163215163382748569846727382712046443119603632158618971651277380248107292322422165730644475337896646339787564265415561424709262864637521037843481807036192927861933750847445789157555263540181050242096172922450468010191037755417652839951467217373465278812856611305106881421836019967412401713777709175763746320714805612930790449529488219454998576877571417261807868196695302697831381560971061898389279555896525053553295936336211988857933209663167515514743965986890392859842410353339410596204528818679036045093487759623422260808134417356096720145409307623774919464317045546409773901408907967606807786652412590703099724085127271151616213077833389624229017599654824452529358982309215376842114813347867543381734716293411117791030971796032405245156833313288963712236300488244468849488319236434963508503204014713704353397268311221225959077536169732597748063094671119736105210412504505557947794229469324814140513347703288707630050549946531668387749792929099237536959967953803914707990528745758142494886169644344324519212341586101340585636890729863454613656801974075303454779855200811648413890496179074681633263071344469319719993872603784323682486082403989496238525136210928835416110243009344853854206956793314096981318216398956874092898608983258844680259963433670872759054740312516028385992882747782317552373112930913604472512766074546144424332461288125884219433915772075497943663602804870029844066205288410669564089749338715189987232819281477995152948269450215571512659569190027636581353625905103287703706581906049933578904278073167724054894641836992929523646076357506910061659268527825777584472020134712803283415437724189207945201966751249924148334742894744420457114280491955031002270855752898187095602257257269388767981376255267390991279294579554777738488723087621900269187026996658845019510468556189334593832861098772965040814312920425797074155797592017882528963831132186603461091199118841238629022229201370315319276261818133476083889438314791240387902913657122671126560877996116120698483370496735283425095139530311984151885778503968498743782989282590234786205604581094254734265038697534509304225371231884631534840161190415189798370748251042066723809405440382749457793308464709367311979159249611161195382790800497974100408672376821030399501877530007081659255654695719252204398748442780624184882127115569360625662845275428275791414058330716050685851296304011991971875487083058433900284611668357684433361412903943142721069744321397579693491076626984226081620508402412242294715152567995142512210680318123115473289427042426813204045241475416392770725731302154221888391942341920432627259895953789693557211708764296523767815247301785986175099068182358574603748105787755042992384034787051144164431667457064129536918525719728023197624392383169413934361923236310363601940480879150524306681001656402487820067090863988641458281201995590710373451014388431828639688007157390976097343607533814819021450160637818974936283734114884440998356993795087263479052048874513394006351274823049918628649900478276752836450504792115553830444280534307901198134156777352252953772956105366899802967036030018233511856481267084831819853229924604837478364284202725684691057534621177709350743169855520325016713066453242881428924506358387177526766768861124681089891027209012369298847017124286061323874023211733761324127590630741321887687548066091657443420223681996965980475908355501776454907867110842664132646421574532398361585106851634234695390516862113901041959837244308729881164470961103413271115851052027509044527400224798754731077475193289091336004646232434064057128752710743509143115950185249557914642815794404471955207503993387578176593585047118027659351460774230970382079427450317951277689252132371719070614986168210259313845765397084748307790272958913105094817740688477042376644389943639263538381860056107019553551332189999946598433645141891671428150548540995224933927599833714936761669932078837077036042554349472577882360760321322276989727507169419737391599973854350277627211468553978540372274977389933615019910464608159075125297083053967986765530891112841254564788158008105301573788978817703282910482791753343015896732567763208009235287259809905855000211137347137966241998084153229714559763171134672986391213665752836265611452827056501239064217385814434042655075842005905822917433438679355292149159032813604255664551181461814154035397221976165802492421078013931931326887449329396084794183009260483991989981625798766924918597972902415404170307469486317130745389323483768188938892447658239067141095536621451834699571027998373626809401881954328075115506438382445645514896246615998931320622843372734329258937919257414754251233242574602600039711286706993426910227261396396811098927097405744720770342621708437568005603154417693017663954623943439995684875493537541255106960894131252617755170756913068744139214308672139267570371199387321359736193987529566049306545839814889670644910609347209732749017491634657568495945457048736021427236255447380517743287367803094453340007611787132212620390553127788686335403979378614166617162797374010226606403762185636902071929235589393290487138715983111452624991410342978072058607758647978426129410197246107757007626460210949453134446183229853845346347958597450937444201927643477484598126907196512827685291395091688280421395728619774336774817980877225459414815010541801648234081459596687122993369948428196867089507371732845623106429709201262037020545379693498377584557381707777959612804550259475600116651907253862038245491269902573075495601628182986085899176742874192253956402963817841352904429858573643030397364751193989697399327567444386282543425021698227878953841142514957407318191075833008470417104399945798254144724684354147120132046380988710013647476024002994445773254200397620922568996346766953539470853530786785691820907447568963504801917059166096489636410524050038318030207207218156318686866058899614518764909666350680746512194255757724159123384647395584332623546057403631872970801916596377121052034982831522451511019604942944120717550504708000802527068082522517497462441734197579824030396979050980630247237834912781179234708580506666864020290820327079280941195614094721247003994979898472577927056522958474028327377757780772281285605328568083609407838076311701219359671356722679770880157131107790140301121304318293469627787064694696650086026726307621822122761147493867100757123488576323685064405615020067602168376547018852062909605743846632568934575744719477906685446993792707856935626802347763856807124926766615169436654779604765559890919769449515327285470820563827421064856390973286381725099945570538165912123787018602167395318828908335780146240910711037590230820125605884398943780255335068359717506181660831768438209335548189314089190555811338338653658692638216537671799661555742946424086534166627540320982628022070137119373392361092966256583046142796243657153422351975401304516537799649054824688537553848427717667571987903478251952243697637150890939681496765081161145148588269655680735288706303292297724003757555929280656568274517273905978085632528633704285565855223062906577879141839672825536034154433427915594884643619887793604819743264074528116609018214314126055292216099628769401867285413594067273090292617673580724800880295471568097200673623258472735273865562444257388210048472644590377960109739307791240945997052373463150154990547920808212515121591833988999271259538031172278791747607502638636557418125908795551621802770185149258917715191569097204335975787483678121249901120695861925989073512904352916672771129002804729273429603197878991792385222134930133472165568188068585121420946317110630681131813886242306473674313857643891199970290793540273216715225970225340163385788110520108124082659564429142645291534583701942868989335252039755655764059778891850610921658835137397709300465934032400739920800162591438601304013017287054858035973594658130745615772308583574610694661967081187774522644392766979550841708722397884720807783731848102244830016912674064482040363023652140484561970089727673622804683116486563315378057599786124348531434360481362517665861221045296438436971294914972349560318350708593066321930092889131427203487023080683177081575708626938596310600654129811236596136209602598341196372686176337421562522801238370651967327128946298307229155273647691457899320676274686744716615922925348897323585571809122662814181465891949186324851904447226175499348205594332318256395485850038407896141489152093846798907578791798449152471328935920240058442835286504317886729229219324129961974985519153885935396198424401442333850359144356946885424637628370212643636342358865709991650726919677612111861923846386657062782953842832723987649925933959047105581618954706925484622588429434046940505599507263320307988511673917021120456535689523826288351974753720564755208942575266173302224895232417600522765320748646846863758345597467801465501483712703725047361685738397761253798417457855726143138372874243948252120398339355280474985451128505522992959646823906731415078736274339141660662720765628917255221362084981757046320201734227719006988552004993433729606125247903714421848091489423617593119867601920313966106318201744557755983121964188464012922371681490798099956438565938655857153957929241537369010822917233174849357320748752525166962001540491984002324070259525539992483767504729526931518148635605918784770699000441051178429576365895077494222731570309530757356516775919790831193114943561832489234501161672889550328304955807150671695380902003426338806598851911342507908497937537326565088068870593485742673819066583445273981206531290606842553144850661636245861869436962315141190484233160609768340320958778214812629466357913490326020817205906700311205721147842207066558194482669310104861057634912364059726967834896232113567556603881556834935103672211078285168761931828830163860788544064250313305507828964330968841744733905456244663236868249413305689062220590521348859773368858992379750639186704665631055145365572140952450936681049267183344795538224641107338324654090665360757424969206615706422161454875516647922223416553970164880465061087063225490417460579232878968453849389507310864659578019981393136053196930135638171302333757823720181940329604400684768905221656147329296809901477005080852093864529895543526649620507593001224023038332236284232994740604583282252442886587685989086464732649431009958467065836327152785024277029987331359924905590491888551686403106203834137875092590278961156580165007975076573412626943060973975135571062165243377724732488883538191057904170676294348859018221870123096294383150295045855665699970953602545649885537245355135406414939462059099290964148942339952547162323581107449508626184483040249365691103830846362407192398202920972740759883368497415049886696448256790225043263916762765627692646435660073790184607707249579713616445603088250657746689719940386402611973685872950751953514126954108206959557634688277962873993686944330174166230122435655185738000658341880812695951620202666636189506996723771893967901326207063061938954238972207071348898298556556795935894284161619244183082169713138886482649955488667383607867496953004923810109996519818880273781923914590285871090142373402472394854393818304954676013483240986311726245889569326944710412567256513637096415802773102446506521174875878137275386100725493372759005841692859541706792122673633358215266869451368541125153591487377229431768217868534217973214701227638154845929764069985641473808283889549424062060544943844784963120295488642718952519475232859988144450415198958543702041297504173080154650559914546323677843155725219511790419004560497073503468852407018622134264562792825134152948571544074778175769013983590069373672852771664033485456929825053946718736768515879128181693995658800844608465141140782294140470430852299845512123294439987313417530264213233710039835329899483250223727669696149968665398758315106014243330781108059537200723861739956659275521609095728551154373645188793460744616401425840639315169487229520563022734886798843349057076961229846765884815911273161446136374177934216888074302572982250061812895774368384776699980603253334015915185305150264704208645014629767224172371926417183033049058618004804935193992972837693318500827480343628367846196085581554555677741702373602862050227028679769348386100865026601265123696496795815594093873300941883935836774627264702412067105794164761505839774229580128673774860511902941002069064915065178072164494593741560973931802837375566382273725904334644984557329822928664030579026639004909571511990958251794893416290240766957974512318806606686598904958532454402163156605417034662387164114946841220775116555961705629403738816725875923710486992884471694527825642918616867942667639788359897702557301597556593105605373930742152830240974544692788994260284308927764782530785129819191738666206852049199378666755949310748625984738088677533192718536477643597043631091131186080893092672090972976263535437910981538114459871150680569923472053363349415787141750897661296298404236245148383869540566921265659653232632395476740094934013917928517530956929838153138540665708569779593481037629662113525997466036674724790962198929382207264913290839827341335168439218184095754928891647620536074553618813377749121702907234470307334361148500870490319156984408379837884794587422625402021593020697693576141487011342526508493199071477023166860839515205015245130010672529427524782398711570922905349916015293761629433860426148911595760899755929090429173766078189155459990683446159956133500870328694521842191977838852388784414676217717239655660888736521051966393231588122503808137923619521259560316448925194297263245458741245324609362543985451754624573116316805554052365871475955862503852530854663542882505741624923005808687951429593258432415900309141585967042919505946703482392599973723071524961447528695894541165573918796174108667217241569533090630448415882951996757942323975991083619191943994499312514018622177729142617934105711091454627863443802474389677169530584428015962085824784387962634294347491727237991874694185560137842094562544591204597198076274659708978663350551304457185095713126275887969395348233156159168483136107958671713838852840391979327829118878491020953818927011927160888135428393950213938678931822125701888483938402916525917384074597758832428615711193858345993952105631485536225254704610074781493439560274478586743430071295416266516198028226106183795193363487498643214974615395710656647850525993942340650817739846948785515231971026294104396093043737566358244534742030459114118893670346062976858099212881169517535594255171415817915152595917222146710699027028729199664111291424468321833065144288281378042345771764423814012433558908110680910021215095189915219528736225736609338463575662445831115981101937483282091172861191466374559916599392251582151800176938153387708471759402403356339473278746948619263143400259700833215014423001346446271908826466830235688150451324845249710414153286019749052073280585660275387645538213298619620232825801620281875749105665669730608304746484186182983100639167350412106877123430183925824411813082192482132762313892070893271253467110717861497830899843080843602103301106553614348431767628673805990619551162432755324652161999576768994257246404234479745394441377534070277566837690172983869828991945247764586956437409189818772589721191750416509239260756184353167864274152183005269944798482204910654337953289855710427559556807513425318625960712497237487718630298912934864989467524599669871470301747788575650923286494723650449771325048956797461069074034786785119243289876827581261589176009792546564899698831987147348728357907392085088746800543835788552391634876615003558207255759110783201722982723394710995988341056196443637693203558604034474332880570530639047922361855829919952663012119132385718789810520496381302145437702631006179782504289482994961927830672177140925316282412437064659034358525932090844564834799019443961238105250404043581870362417930166364108725587365015955252478307995225784467754695652369521530838773566376169999732061880700135514925562079631742285232142087957979746460460506224614669490139720870771179878334445287810939440816120864532790723050336774317185585849706790413024457159101931961886677068700241203851331992944211676927587544650740066279945490589924717119292944736725867054407042209757972659222367264693859733556337545941033173074160459621104746967486492245986599970792470989577675281584432908665956944704806987479151448095584234750875985152500590636826887066220696843029356779675129742400628796169082360418758211305980353320647945707073621438838953922643889921096293729304643165075154051509536278710491403358212327615820014554345878183997149044781488089462931283600381140306004923467796642226634515251965643027297833743004186640672622975115325815156191234667084561970789099058380655755150321533613095196495916982155467974665160113993067681382812615204780717068800835648512991756157842149183189967989154965559688496499207451185595384427680981882901122656250657456379965197797787394112107460322556874410095367788953066060924092451735344273091965485901220095333301254044964517149727660323712650349249570464092951873139762816343781698821860903638787002095015093260744834671971477072709432569089114533245192286081951464632635985418131076769310526486867854271625382863435406093739737375289546333895870135845179106579754418865131278401943312810794818856124605661464440137357701505321838463215989417045671007548106552531193157838023384055757521733099600300144853732038847814651976063147094274635988046105353745487445679422996809196521261378116551408475224442299466943233110388397581728153960378229667856626718554839049356499004193514477657432870864217070855293989784719361991822203199585724677156352549129874678219982347948030297856602878030356584235399061356700045058540176886137660659336449228463356248662678052688530578242818101866413569460834277621692295493042580794653772702525961140372053725368450698141694429605570470850226993978432333895399050606242133456576547215413077652268121545901248110692779316109226797208163114410987742569630251574627690595049533326608404084101508179151022698555144502192798467243794161385630248857775164198782689112478565213453876097172575969741566849810662872620395209252194546087225467436966231318790475806275553277125211112294505602727627033204176387207337806101566049344302094511891393140059477351990158762267133497370653241930116755082994637806873664636608915643192124455104330890990910160180684050741241605467463271246205344706821862498936420147539372632899540244523193113861946324571730384448247854261352523277721873479293578676801450051930285403782185425061151626320232093929633089630262923825003087921248794675362102121912358899518227555194677930376094676149294228152300227068452346040780084776649574937346595159804485929152450602633620018005281889979008169781629038241305357475506543325189779543376073297792567308923590193167293296180348366297597749593780620797422318689450453721601081947132257117622868770775556442756476636309754531725463745930377702861619478179855979612398925743632132988309331451537438553703904532892520883565506637100608483620959652328644013969897462203405378856837698584760011329446980300760686880202089546387491142103022871098368026784779328134893931031140033943415537196433522045492534109943279588649315894889320193930893943432959197962942188975794788159284631583395543406411816712194194591946366017457406485398413085784651009719134411096395194688270367527844088085491041365963136479845820777920477701106350979877725304754244622205709847745854362014162229458095708980669920878553546087810322488406106552336517913460604966030166624282683069622923412145557743872494708673840661815667350199098410710688295254174513181939238118950003427549730151730844747256625826391235148667476929046860143032795011339688093648236909658422228817851144032173464646799940080100012046928107995878445560930352876425047238815868714256366493275713594096208466267892153384920240948403483093280035081242436866391503659772227694818647976648353494932143058878977537225263332900875008698352345509988249037240865251263064024505229838369922317158215608753747476869077961366175749079586796588724163316556348590864997360995902740230901602888257312996201019114978960500048267326787551396871486168702986254755680947344192827108018478379954835218521663261251007277057582723142779248084554353612141893537809187777105552949793927580114221507588464315274736815652138494850117170021586750765878886190570922580839076784319657527613908622959008821734009559560952734282535093492446255120322341819983772904139367280511994754646750904266091483145638383102442594208553554124729084800829735810786031363012239571029065656863456794465685418606764567117639984504653980912753542043748909470412987213879875902620800626156753309375154542022084973052993995692596924392271141281187524696908089884494012133917829183133173495338048560996707206608174342830832061855728661389219079025162359390304253678704183132273210983133516159995168783866976414986853421485652295605737452324711335406402414401186262427655221859549929164455952566065468959214524021493144231693431534875944085045809036598549645049165551894479202605969231636937874232906889948785226880267384258413876872310967214526146096987187861322885363730284974656466862825276480375359254787530660945051291266208339100420357830038765941829517332183939689172414851238194100209039800805916222284581372789269913092090994547407604911770707176865584136040596016620847936886473688236832904842665518458753157599182126196509001112773597397652571541927277030858884766210032254399674676641888314292609200975794057726073264603783392283455059394096565762955597669956205195068971316056611253451476209015882376138125961614700823693209206224247639871885329611305804827785817916020028586054053028467683020327196832879303512095437188119138375454347183603243025882018469345488865407420026250809013382295277266268344985959502786962891586842228282997147320138848578372992957445517716366412705077554262281235622778038489993993736348021789918247857220294758520719763236845610592836747323466054383007582645974363215866651474543453767461827887758811265610362076433392542982326942149047120878867942617390399465244876310596343960580834701165683924050844350862506904979891186206173425143725439848277458964951106343499181301455146623054006416042886376005692858665511074935586907658258946100786496418472752897972735136569051043236143089976670100167907428765439266378619357623245307736487749347364744877676414892567762312418312331709589891885308123537643605504241904382541058406398237489610799442286914183860216367409072560770857131370643546045538505937860762745070145202547560418814484718923424940485811059693561635598751934965089093980693331995731334449367222609636061152637539613460411587815464427096263514902168540424433491143821375572042664931922567220271027877252142026268416971408846918187091809431333077489492688284587184985926568573220735549669867163461833621686812299708286156512219761851532509503145601419051998533709833209231744765219328850767164063421984002918875637033376916351390331478067490625436527158099279362786695506815222875189026983818202156986793236779030221148669189364321135773700010307362021193797025463860420800847827707631615716961240484757392837465117224182440615151527239742503206825854178940555975877419252714257866034447877451444867029903768416754379064778392575605582405932324534788158791456005671758388097914589370714985277723316313285259617036459200004056618478967146787757459455994478809197738624067764767286696825953046847965779482636585157826987939022079689498167856486754823587352344091691419186986911984394479023991973065001405166943041395540099806605941420515009568354721863267448856956404327740286113218651464121647350173400257812255097326751063901160605196170657028683176121510798652145553357253565845878551793779863686169299387602776438589222473185936678069645358527701789362356823850212775394379607676107037406853599517416430992580667069549868337363781681522807123717643216148832675803896677349456083411752032340045954009462406776086881537912673717782463060456176686574889032827145314139656840946964859050168686023436037116930769436531866427809794145937196418413720295390671375063302997337431943949221945763680629048413269174030953190138703513390876770388962203103082710849541477860653042461936765159099425221596121177282175435691178181821251541258112653460292044208493940353345256123947439381872121232519407077481341702110168595825844443730313769627305688119751582398296619441867873176930896636699980119204741291051296876572190938639130541983596512395198682381603978419725219580222373230463642909463811251965453455034033444910780322264473611414739343605856104705309266424365455322816242611817256984325183252301052010005294934773846488400745931944611674514202928504215543318954100125182593607609783108663181137005992545570009318701398582611899874475965506109329078050744204054694121201111156078098880177548193501966197341737890177254029348597416318902056622345813983426969681459888091296130931277519827888402354727817666718290538346815917828908300251842479020966875997709198271875367186342026605497111043593380102706919186926288684958373826063745196857319585537030774173673960222244904245210872925316565382169185590412652770534408561746513331682536180616010878860593533666477827679426129169250613060925440188625196894126117892315598668181460734486871090552449522501197912270738523534084476060477845956716946448887621747985845550180486289230265613812306187958723207169330884467116726791763651128635055413792905135718021856013355096254519138709709952792923150286519960029275859765499445508116182146411541891395317182650471487885009246703186956119165572766679481543467784967299348477565594199733355115005292564376883703307756595633617693958900231317756181871852858595478276853455371444599309626235162335753948391972342896453230497502993826082792560033089116331168393822632697064048406848658003045297863897334292221827281049268729007664630370726438131197315268284334367017431882599136411350560256080619021068773406207066173605220317246726393948923894074682801367143836219930337916440634081048713921292891452953481056805658032150113091693192562156215234955380158851875831833623146836134628221223977920751520667012017735989016997416519095254248727607547774017417336425295317055017696888906526032787263186164296667704790161241333503706299835213022637366312206045857406235901360587837539805670579752205487218539683901897742037412407950498855737865903038828460403577253046980214380654788822552451660700103905406259690160950957071057050365598982220644104053823010575880076805515155423857500217185510368530274511908976138278726526946958674863791589443213365513511083685085701773434349043968716619574269462661315614325418711772493794114491256182093749708800192905158054888828991787087829776064680480832334564872520221342124405655630398954505593005135156060356671750052265573163225383991476970987036503098393284648236359772066383042768423996023360113918254001910881998353872192617951216005273212821670013375991033402729672647644199249813065825934539576239480001252950587792923039591183603017370588205114215398979337287039639891008346139173181150558590866988882487624836380332571911127854886072898797865264545467638875269403271661091224257022693117467381804854072208501788547764899684353804965771296632228427333551251869313683568864233606233221468057647570215631165661923673846037060326592736586464687454062101500013274577790171230713225218749784286260159457060456650180403138367497858386656825498838258110632305045383828520062065874482073498707556264627408339866242333000473292970968709348047549205849905540702190418434050125419564086365705379186879882204209029341539773178480961265927488002905155363746472783440604522010384774783747524204474353166344479165645193972181415910643686540500794197076652110661238438685391861056457106645216643918398732096835811812490265373183687147107146573339045922353307663082754599706265484539038690863713890468887972874350893031551640450821800327151629215399108551244077181927174792164339206990291476222253692492000666331188760550076000686176436471610326870551254210635038271947148120208671714157450217469555791884844648852548645546794252870196339976744192950786131093831480020876079253129338933979863231975095487593600251734337984718149617336871800633043180505707725781128946538956650866256521244890973594285983290231762518118940454264899664306536393113931476567110794249406686745932099627554953081192397004539913329947802134129672764330413646232153694514779138743533062300346715552363407266267666391984604365861754590599316841428169621318585919490698647398135060193531935976690589803444907944384021327650798975122623936285025754970916932101349092299645303181716480377540995352404381499178970996832940885577668581745301332461894344850883135630478060029698117345806186172871608208222897714566767769508392925476479493411495833912460571487963481085726115993565959091617905531816075799724986576813680100540980055008955947486903271602290505582183690132779379467742291388249334052984289974949526624462341701191104299004618130111370451193399364546761576891922384300802888337264268462125449227422714773292227667038015682215160526458875151208170629999463947715056886909448923167332753340709271968394169611487292660864798534493336024563645889361034206242294333822960335478859391241456807168388126049448945143488419396950725260662477164155640608598020283429003456530744885455741546394418423894461172047671614258661452627315416970429762491985557018933014403416573400259757914456577296421294428767642277797422076036386383152527510314634627021860997887677964807837745756064650708670286891363218107221265918798768281644052705507911226892047103620479923838009338721607655929506721073193361316944593447267442425041018410058525211602129903689485241491070108271715133542762401181927758222611807346147607537864093839897359577834408768760002653558185811423083135858223627644668841484922529660520500689576808584067863833490633959104783250626644371797867810323742089294287072583331734635978011297598380119891197484113147839863919841254880423754171422018827784182497514783361466402079360672341345517954429439939739496889581110425135959259847371664468379125817507808918562849991634909009041435902489410602826287740779360204955796014276685781765012885746335751570827969300324990472203819583364849519528458766084754599889033726058041831088277791826978121560039832874357991311259468945287044237726349149980184596708999922476044842150142503026634025723012958210737384485365650128713409953486959856662358883425185079709174323239731632946370291880483204913168976501876448370809138264273341435498357418733928994650560051204257213470864961097982999240429124937664032958869234634533604429721452863613327498856618996204733817591419764912385409451947885183456495581398519069810202272618293551042147097524132251475725588662378701194237829117535608743614807810895519120950827141026896424630205225911384857468019855418575393629840184894826995814545835502268490175798211368995111754641820503535705333197237965025196622102410113742380191629397194976061777600837635176403134973422797814966675491186521829587838214741321473029852970424382844484917413756772066921521394405362325946152624599792849681377759935944316803132380758862718130408780473640760517100481005479833974984201275704536404823395517150621943192387005708828417196602904387267091979376766599109659685949485074814263328332689560162690252578151805416965436186045032687619470073917226965676112151199667363111291786564197440826226339032811004428883752069475301307902929730115310002610061845727182741319631808158113796533457756650360219115418874377468518456966812123296617057703672699753672187022340817116648858975579774427907669742929925112207743534296056709280472016347769502695982366837674875694773773305477401798932072548279159143932453608538036414294599427987219614993640766772036249812124688745722365116619925977447060558701640824991990403233024528138183368280072657771813073228696023995456938118783459706474289438898151376974238752912624955252823199327909894170753167531022180948339298435109350763284297060025457657488912877815539961802967237251929475746910877409193664804536135762885242588818838352080902540719432672613574254245096309842836500308129570968480078876870862307307614388929299187716538195044421078711269530212373529327453451108867254378471695196495938153195244629375210708465247879841896048520368238582027409906350951345494318124713828116954558100954367918788605893748731518848466946064163640636414867695701003098488854082089086193520155070094264823374112096810602982771770118400675604694915066111984217242404573846047350780975100012054311067326957088251389735600403012666073593067261674092736144469174636649661355305346012289649114712132288405877492949053103510112338615430514573931643771789726202025041120157073069116752041246462425815128701864131226656424085603036899877171607178141503241125815304770808943438764185417001240936643949179346830091035797538212454060513536332164492155391901534728922926729103485273673001919826091767020476755347056142839578311697033802523377505411655052879752520131997507043051996647092003567227096115007493694632149464297079970196443824444507115816596391029971607604844977422187806749843046667721021906108722012015115307003109211866137119080614454082092362610862322279515443262331297915315121399777661036968078607641970493794310289927908066245799606202555724127851970827300728415212995842348163233587933527350357903643181019129982203446671997465069967081465700283928120651501445808897755644784983941704154817192320486516767964806269625956465902645472315543424062387332580309982038233206362073453824391964811032536515607773661313563347485181166127213852081283514898233587858841764006219180985889164051343219730471433171568219972860903981454949981620830159784261238440726461093679463310778816352784549000481514621760746675652037703907930516380383505399895918328712019377060143622752813066691399932929165017708814704585682295185164029937571887164541729082123495948064853619369205211335618693677045073705587810611133125634735815831681426417168401337078413997782552902991250246767507761751211420474384874005314313793677680045195043343612871659212181793094200917940750197915318051877008461484045268628489989578066870891326320452616625024314304628666959267007736773905816144334146971206057672790647152374148689225424404817037639040098002909887735019588275386569006846381654397947874356847103045279972198754100285423975338802653479265289156305251396813987830516175899883847645216870681828332776567893215667510919561098290473730240737007385058902725225117439320013784556160912718963553294519198518527606813923593352071038903204407170262315163403911918055708143775586597241568694377463429428312560000772719915448790327131249973575568880256107318152842979169235501020581770617552080948790999624673713739075084955528163324893655855406229295885208512690684243765154493669186480792759104986283964412530766788542000844441454174776088821029396020318472636872260085142959248099909324428799919618811512360184369123865448297893822478123719043272234815501249630650277378498474450407495262548209192001736573763611029487675272581612847819582185734355790566667388557585169840841496634396880455748272475368726969828445465375251541463262781771529730488151060344059262826553134522595498773271556865634756537064333398464776161813078716452498802351138947522712183767404886391715025143469393879251150237141591441925975102395388265574500917229773561284464535996541909354883550682202998597481487976013167115253098936978085460244479104550144892305816468993748468959013030931251621284410574602039082835165626717482967478405240596392635290177193423170550346130110827818656123609870310922248438828357623568667755008557951463867255956559111075478190739487117699554164701894256697951373464521286575967140451580317904442944405663914826028590126649691224749135999082212289620748207312963059173766189428180684296286603515215069869068439648741317904905683122919849590006714837934789490625331224436508228916585209759823720965065757893330546793306605767217561835453818304997250086761203578247073972142689493144447771048777390321522609561386469100177675114962991614105263467059859650440212568334147640853771028201837030444283569064392272222585938544554224150389563828613886169599426802619155397984926657400528633284183416128194666286477445436994225008570633894974578035641457853995019626200968278869998252163938666324757662549914930055347310916520173194741380435407805577920048800758327999457648885066293649508225185797548628254272744997830734580400723292599362373434959414066284652508825671912223996566007346578528567178628486726803675319561825093456573397876734991913840071695116516398775469347409548895802207496990717585762578768231787534932756938303149540297585238609575966621785481482750417005555270763531534110556272535049014315633528864079948801016031793686551636366782175247079176811653806086081288387643796274601107916885697494664686723895612630947386105678013669817103037365867996068371229446120804247186519244123315663182265291026365532656694123967928276468388751930687780188919993401241598613205935336569517747615779652165339532855472965583535126646804853588643292079902294276615921613521950144035223231463360631551276293906314963948551513365584983968294645097852753297808411331807257834510528670875272728725858009895194580411961872265796122851753220521706475826315901386182837557819839782012971203701605920702770508031613664277161002877241697389673112452851861880969288156250653792606317295056526762776658492768237439410343398124236226617111803141433782748987137852085072900754131063962455059707922728373544750162103171330039194573678320997565934031148051745697281025630006847410779338991429690252279016165641285684606875696314846263701014150708450202651467606065966222496379595333027276410997635821800454219514870890454384066036026417889095063291159607714447922168566498091485969558634541101326124765111013346897297334168070940647614759129986862759330419332676836326667316587050053567943314873750525367744112066383795399523051700576995542071564759940717648529853488876174377376402684908186144429928553926713494075354348266893314347515286930671365142013505183738710083615455967305906061549483271257094977243357720924366176552633799875804950496016046303982561931110801496839952261140521036228563159961972080357120129896207806256232945860431337940189320396347912103189418861049583336542200710801684316909817043738078477124738792819577118703591922089877168817883907816719634509833027344878102914092231983548218162841415035845051831544943679861894687599884152382831350427270158316437417758842442108764921674712832959712472646043137151382834738119667336970481718142452357525116375129380029685759001989287513690427996739329753298163276512411734855804744770827138564544909715913198020058044670791991812686108405534565958015795506189844184768567241154237034243377724119293221419133355758390816424026324160143595443095683426563288404555096489225393237891522231839406064508925175882369460708192946368179227394861104519664360608879269790486367994728788051701607387946956543985474965205343123119709415969126440218043284290428785328184297512298211660976376868339227668261889927951595201059971915444970450229150608937226197463374789415270900657150414335011469754269451038034267069209445579214092552451306287992639246561954885575927762934232739043514971331179596341176853162888476926986074151707845458799740227351374474974781177248823697772637094264581462916817557110495847880288566024773469688854982144291580379409059921809817319351921029988004909963641128261318661747041304594497912059576835537108582406682354175001942521280219380542126806601916089926006174057623493140872533882090265927972058430360571044881917437509769753700662691633330483613936947241224358878569527524518008095827905543448124928607452023755563333867508730984798846046364425169902227282880672568183583083156997770202486141781386781314181957955800890388288610251289125761082332235380348855340068147398896066178782977098698966816677673657112570689056768240640596458886164578479400239803611273035716988730678750885620557197063420684411191618691569265025083573829787421247772460375312522556844282017831353378563271224287243915923076024036316816241786551852501393015581526603384500158659791845142091456990209486877021561862093694432475806278178335263950494785897484795348829795230113719138323659932062212008420750666019048951444918435369406438075889599823803708961792592898003940028429511402147392226974503554932588986194640865995473430331033651286331672576076873279946646941206285229314150504994020288505330284897987780577672372075087206766945230560707594635144261395466743420308616695069903508379394336110975060549749599887437067209346008073190371622498913913873574901971015827315371100945720879911638810145974546813531515699551388584168565131611161921199428101440116876814979164357198211377103310980594122558073971263236808119695516384251427962153177724686800230366281597598307046118668226558703165712301663282401581108278957088785430661095795689196765226757185558374709745690353631975153983226460807910287998314455125362766107748552637780229576586800177651450984182116986364106757638620894998229119584526927728126092335301247295243380899891043040531972552579008175138911003090979497214427473123782401013276950978442083252042882175796002131861893952189055269216009740605791883106836457422970593685954345484689137969671288336397675415118561915455056374548743694134426375663039260544035135838963670199093735238918710269425755212818721912339271988573731650633411137436918300637547284853022900091682994693994362570234909807151473582832613838832613261128401120264965149931466940928603755117353341258397148278050827643376404387934855569715289055725156372088312601574138817226112530968950569328546787890459961512234618974476558006218065284475703043222451993527968403367390822422236074943008056759622251149377672430010448301517174607851821339812245012559353061108259690200080728257388900176352031090223274322235480797197550562506651297763998496763220670226348070972346383469436532656940042064470361957707261915073749071437931959203175802159721499873137154895015348343560641717154448532028241768769821175523165190347194257201386699051722121574034735365311104151189788588768268030792748192882055870490723885100573812057370999977785244213916540582255895212468396219710969749046918601075184742147276576066470715004054605625067576366704738919001172826333694523658819996100234321227773702950917581459721735007779284366837347008315414309641962593643719825172188724311964561534291048136983143330121883358690926234523459447342222271598169308793242882348430112543968458605889620322691395701144282746684862221934842915641005768663877757768044414641415148520434927818798753537024732688535790540062616984714463737663584699163589464472795059061729525946771070276643503324953571681840567230194339326564352612468294383767751201806141853709290131103600880972010516524210834762103418858504042431904771118083756719795390304662738307241833759951174261853114830309322977671972208824169794063023074113548681499490404261620824784500486759045591400012252372408806306732098515388998818375437871929590020387394606074362486631881658550455434977564605608549630105537062624009098265950238038220736660274237828993052596829892922941776807589660122832065613006853822264835408090177275124918996469568378432823775509518647371442865668686320572928663447168530281050402558982658229521031222313495316151243618873752665809725093886824626866543700899277988761071954337170459383527670230336590177123115498347998647813497095133948221805909955059433623617850028772271867104468013265829685562212700536996369702275151881463290889889998929624062576506930246864831368499044559542114606767237765714658054693965554376129494696898242062709224288118522279084927540036658633362596858965881628995279163709458493514772044131939367987008646221783909696064668339814144773039782252874865101807024980074730706054379863193510068678327044834438485773954315124670862411181155508407407686747245329736069573737804857564740429450375330387353792025475404440216162433279573207700345215193075178149381652359964201300581689136802159123041939063217800104551826961399518799157866010636146233363557370923680002840999789252156829313397376953994534924242764539168779258092219170682456537378191269669565103185816691335910432538897763069487083874245122318381369688437800089661877182933450591151010839577192192474582892755594638907966182522642237771375990018787115705544181815939974499476248295481490787844364703963840952764590932661887858628550051850054048617612274724374761002645984679367234981448492965184033315086578997461627409210412743669930687344690038092921519487251786219651733450935162216301744940688016955533976613494379171806349052646623081724726246468679324449002868891981698492173237306035785959968873534922676633609540648226083111370330942671675047576220693852149406473664260029335765683866894394693246549929733093793825037097181081895445044871862279297601077185769638240207598473132331356792089628172701170410183330625555382706554229028827753360143748656356850226175305980340122963236881884629800238479511269977286092489221549790948274199146822300467832340198149286253052628298207592974722857632328643940592529442377609378955240508126160902764038790011514304980806866979395680440360988958186066684283192994427137013470240609989722521774969796533995068424896024673660580506016007714111387572741960985166999678006760285557036657196265044918448959775542024735675348012628772418559172445823134161913211728616779660899300396557131305227802415344427619487486887504002260289633439528622099470867978806271543971635659811848796890912360653694664738618903227313235530139368229282489591226358850139033061064324519920344926981035445368454848748938096499050056940631863549827744023772337313695462579054053911434220434185661787527442477512088934881175073381829926575164756421622505398436199918341090403866873880391904808108519176108491665590867373226024094431054544580675766974250813909333289812566209022233505840313704731532660068157870256467288474394551865499783294738320458256003153925069252854184504216513089773215681022591384199655074077267255815200086480324997951333932801154873712532215191264316964890065157244526619721340817475844898117347469612605521074935868194700927148861959100325857461899726161357029425488407630667343066341830125530400389170839296277944388075960356660020560943659601677169346446912815476759945113322854557308619031377867792784532595924786552418339982151198877508593636790581331286923508377045607827070972931226660895093752332300648458357280535968615888960926197640621680672998222545807927588482824274429636350043309762941516652050529472204978707518140094345834803261038985918538394023655699718438431687010807080326808736667354043171543843088829785212185356670680141823550300981991176736232067245967939971522517180319051252204836358759323523289186907718309674654024056663528238208197914257830071281855623818886501468360307481773194451729881367207064164390506556530778680371844357391644885590827469967016972010198853157426951329061307874186043986580829621200387331387592803486678695406537211146057497702982288366071193711552584823163675816037550825692832765484468571816645807467653948031378812759634365725506884993756515109360151397202542257976708451553815529618240507169967527624510896263985605495585863069706135768229942946079592316585404186141325888786589547347401524758620242448211732419683182562069655345094037572592758191272257307773666895148050641769123153743669858167778901309962511290402195808950252093508305800403887884238611846022212653612560196602816813008005982480727066989900717932301728654494010813566833381542210354639022915668515302381344857080038909092514563149990422763228103749139980186733843224115390850553911589186115066332395894407657043056203464720698526217671295994007766374463424048545641833335056427218531674021639491433572068623923080478839140847598286729567742065409992570814445456490256545176385326327035160504956405369081188233292512597772498060787571462189187328671536316450947090261432246974654495640177372220089320995937414420937037192260903179083380566547612924567500939213146187755741225395719388967649710584977134345490862424733532141287045071895936354131127928880282478668167285623780726118731062089876282835252864298116350047571797309113734474273657149822829184411453959434194214379267035010145856841535182079933285146878628803828202608360270756845231786355770738071928346698634057391336247709728124484513854356916902527173487853588278503362985333146282667378128793550059166847899649374443775153495285287470689427881802585975892276114122026364097672422645168572041026362142843638725232276209929345503843325480795695129051315216703422205581132420014782791622809590615914726410234680005604493017193796756529433527964982302804568532005453932190979833607564802988096080207001226325553051547307441226203859845008317638672745395359011686436781014769533613127529621642462704279139122716436504319865844957809532871045121852421165243324186325852056800149768458956902362522361226334850650176224871214156161034194963714349274851346973667258722829622392161407885121938025266139058741769899050948311472173105133593556616970173623228313108976531663778233851254385995891030250248837855789783592623402456558372415384255934760514941093394931536259132473283539366559483137129184694392263118977647298365659782837382251709453144429436874613379855656505327754294817202954928819289259421280829903873255340122822046570750698279164967883479377446731124396521881043303690213505989628491755803201818348871449676413585091565281531767021614804323513080992552840924749746909961438277913443477812157757513633766120530686147519526872166237468894921523245486856478880384429847453437310671077180123671641336118207108649824580180844196687616072541801776454616849778282610229551348984312887090460000940061957758505351358249188230757310771950163125822153216724379824959775292706028459170154364149287588195295802067460042732743436569074697230269157634122632113082767639601526690418863681978906853403175142943030491441711475403682599281564538677180693076701511294214454912372528881845917120492270819827632144279505241176957551843409088623366629569691213898769628939863822097669072897354377857002599643559124904052094501740922317600198462904375690469057632486470354832534971092722352237058930303220984781060659249414028934389896328843401396048562209247638888780039646665437040310928743523748519061309758092234260086988393452171440061151011405986679401934426928958377903334134612656907913374770963079738191140379640343399397963161355647126820780318463281247921121549154713249984062990193297064057129148898618293785708044577144602300613010576427111561483730111208085909501760989028633922494358630874611486219044165596511022577486968708402598784606397796322984357183524437096849003226867625605228848330031079350692059592714956300948286072272633031543469441485684472146468375421930606875163055024110437049479545079930626599885408413025551993534337768086103533172073810531028065905356247816681979952838347930309888889360301521012086176342859995395185700789719092199187660299805358817706803748881570596542540872952629050952580006960720554741170892095322112442703937879792686079344382051776308832123034935072126987230331348685789174194864740258070274818628717968744076542497201645661430881444374646334780406949905878399257139239370863343361070669566060138319586808274802425883401452951510583796063106423287231164045211758231242252320922421202835684185577894751647027196140613600975306844780350956158965494977132368849220555912204482917513700154335322838395566570864013206724472777348910963154469037089417039993547840728742508093561436075286505337856017250745438135422394994898916335151213723890861410455486162207664252528573541966461799066650984118241667543847489816236326546213516177338201533784223353069331322929900754859920007519813261173470400858052840636028338480986731705576396245159039241976306682503147413492581779588392966578446326218400357682563089466012612796390168796203939539594319857558683068645608291306248089649798209699155959701646115448920673855876274285474624236019114112743230233237202194326530443195992606476262475193764563760444008030244352351735834031735676353056153507609084069278144171092099478820137281892750180413906903195189275798319550480346307368492999893849766407281173888249997819316681923959292188495993347622580753184258887571963878426684201935851478176686793800053346952277791564929439284867489159273810790080902384782368644651885689182724029423619361067922967128768522410521057061330900833857543970802695095322944401297579214479863493366589149819110452475692365491916984741308997095019389099880679115477047502874312727284374404494622664082876202013044244117781373986018961530868343799951613061577710079334588666976553828399994693800704116273375178734069259046235880364900661888036833564277001285412646401588479885672391469861507059388173110656255069039941203243233979859172095521442691669277215849061224103450811234443787313348280703132247259916761441268356582673678996960194632134205409641556713191165056647342120780502693687759392566331248791199199352319895767460240575745009691588666856301829290224209952976559055871694883997573230818513339952350321834704878115662968136148731738537134199116833910538988567018150215852547497542705253722829698190821528706310914075341964230440917899389812177577241713538819927697787503858757407545977942343570169827159708338416025178414029031277991966631159477264436154107058955180567504354690943190162820014661306846726508182492076634828931375505174086863921317192613543653914384379056234240603126124913438233346047063889114408357800889815722336820300117247857801056372247430041544880577035772033108391018397465073432939663202874035735734314572747207917408585524981348000744003088179703078301461511615114150415490458335039975966377859211460330487033077121936562122723058380769198107720026512246800682600973526922614844896218071530226404506378351480229381363513085571651480523565371833729769133651617072088770129890670212074000098662381301250404538598031514682096262679164573852960644854715194960827615466815699920103475978959456269595640766673000500656327892434193379949097303461548567515754556058172724527849870837466011376863566311482662137191910966407251261268039342852824935831922559001089486779431612713021198988435404061938358457106356767910634214770318284920124826419735819309511834739470483473562580194893386675200338086639659874956319135378640467959628721634954398509271842206338364972983844996797940953697855975162478399123789956019222821876226412880781028668553168766102345621663078826712518073411118043723675394507964265752901276080150013460088561715133862120056395883770694151788131223396820318556275974785012843694112204191585395287838436752318996518012041456681254473817027125467600904225934743431273262384158952429758502872917860340647680913121584892577485284458399165252734569845671561524880218776537984058377973299336896613731931801359001859613663464371146983858869877179567171485386485787573169511371717662847678068285545774459042003887119313849450440689698718309661758096525654043818503109168234258894068732197217104518054023491929061477015924978919120558204165418673223775942062564002958464877200622021166134281576420034066711281516254247013306567272447028262112856248984459578575450794279732327095101354011948787928993105660911167275760759059015695791946670628497771750266996014126005069627816874523808676688750517859232283780155437725784112513208225111145372078721817726559423070491727699384479763307386025491107836783615223562624573617143524409124395482834141521910596453179435013956021260472771217551107200311538860058000169639397210325141861936907465844449207678968086141204317068912845250133412342232580953152260875961986764705202295843227779335991173637583469093871011757755057137244337110579246106189035876942016373079766901219953647566807807248066828694590220865915678148449286281233887946693159207042070282434444998035136935653900669097560811309430681452939080977368920837030019816957861402414135877630095714924611488988167157070080293684010515036160331498373314176171817339120389531951324664911282593559073367779599043685390152608576508969096961077489056266003658711139817538160683727700728506979001093786433633330744526993342981637681101402085019916488310144871448610774699139974254953717664443806201481863529445451101117444480757609715652952499352679074605190593446588790103302368923103541682675222576077052436513049456531985903724586328606385380614661911727567812617045483542158963663018420188698527033719548154387350918001988309619430093669668505904590129304429189570615146192222684099171389299898783830235514158932795613097438210831788530013920729718214388239082693467877098105196337107537025603485260887311452801216607398449703650192080265434919039003103631905705105409139324430350836738926081243976429545781324244617322960715928089786655892464887226294785321156253585291005525255017282126228589331666704516684769068576457413090568409196992778496212001127097219152163084002648095093736332440026059751958180513106274364839041889246133144985968874713244098438640279701064194449240078758708286640029510276244202242228013052921499095266188033364020961797971686899288488371732574262718562123225373752198623707133701934255453468202687698062401824041422340288025287228010097551554447161779124765401529601415168046587768893189900239917990283679208413564958005550369037724570381485962340398928491069420809354922885666298641492996903023281672288911207388252548444359916087957157559675914500959301901406451297887717042239506857506343528861735677748987462053506054772253285568870648962029686233253020269918165265868635071262455985095300860497453507223325789763872773330023615062723515768472747444163517119470418493814862286214699641706017565318934970184647317636632815126308716513431366246570423477896871603348340498096786385671998554520656034103642165984989362734597243189131508975024993612438003535577114061944455435947656389889613995794933167633768990209733294479592371465665038375240350143030784992673991794033051863354948727081661642245669430179293789895734523781977451289523129811074279333092288311478036978653673150915827395090856596218212627496351093706935470391515431398739027789879401169529099248443217249789710844511331134803037326982443664594334377034239619970442486101740494633619204607209627655263843311433733779081586978197655819939953634227293755097820163888440214427927402199751403216023088155660766896875684352747632519398135000763843305977082867946873383506406618326047509161718189803469157405636076674122905936797937459908660790774443048629969282696742314612521373994995787201873602629464473602038691515029799672378108998359697629185720691322993566391627720947131833110475887796803733424254816250981078280807876339389869898476644625360385350180808290592707922949817212136141623743491216193062281295013668399013791581931418207853524060598156242793816453622922552964796238948952050009516012214852096934624827889538696064280123602236434240142318772731722222043903069573377617673635117740176887339801364055111560765547587142686928884962993170784813869405631071693565431797530306289816593136755437432625825248736655984242982405845607446843723045851562929025839171316901842032475273793874383065131316136328609498425126799973714406930950761274712096983788994564427217510369462863553269467983535808966492917726547726337941769102752260034451365055364267493576999766326422441914387743649010434460047831668584652051270802824774875129795357138825191626142724689449038086539061114429334826574101037191370546927715617579605400432834369890526958541205972775465290403075208640608134972485671963841370972146533911484307138843232818860313425609903202246242644636350816829546630096055282155542159726390919574314900856433469082179952692717176486876208884653900513215570747936889316183496755172289245374039570004648054373022162323109318582275290574237722228350863740215590151520432862611302674742243969629215126361054840130021461150417881589695338672545774111350052968603277807190609222352823927048856142198532152424616950272138819525420394785654971719359941175708564372517445522320737616578510592774069004917084451130979592186179415510293260234733658529355320534633409220312257269988826230204255746488314791525424192637121233443704523516782628347263020053368122575701635547151959117201960818355168720190054486894027915037128564374332581447142696739223554081077211443712182666213781564269880850973436312137650010116817097114864784720980435289509746081245887494250698829326918485577869100178136654215983077668302910273851577167745107109862868144499393533442999223798559207022383793026637717939530071105666292497841555555324157151361378998440796997895440520589531729424626865937770127930451462646608964139284456405356783449745829669108313859044056684054093607725773109101457796123224401024551607928144029083621294918520055263948888016546163329809189260004231575006244164634573542785492764624827227739465328649118490723325090005778182261436400472947270318962984361439197161972032497930707586608419716635151138959888662389586364303131132518153028097981574398356481243912300745468608194533213935021563990449710379739932539854817029169603923597702716361388474647807359227651982340638526115675502174096532808536029677814017773667318788991753275826697723755100746645466321706376157043799023462115761775119626087687253799843061711793657440517988919517110895424520655010704289699298732906924979592991035620223756825067955280246159996160166849298588440700285721219959450289487300263637660429426278914277094201553161262032001156181008761470433546153743654364398178518321450174517034305435471790442455992278858946130924240000802678528706842060706657776613491274302703019497387195297037371874083674253719420894735288472332721472442044610556040939025194641750750065097025354879676120471429477878305146601941967201824286605385001823450361346409213852138677005046333512590117263839260100780141253743251439822528008311546982292833458233803850547653494235871198460539633247091393970929919116724566353277387976678711759075578586381953551997978080266594132526019006580319341622762455525721452115584687410099601567119761216593016139312555059803579214026571279541407372479126994777070416692326646022920046681680433786077806762565060465359549472187560753728985167937603754923316839550505159609574559359829123660460374709213273415409797370284503992744926090896763606548909097569894752216285802938108852202604121773620252931196009121043245949967754174456252907228139086418133687164614890171537980124716658664585840671223194560944520410044060561932154216317788936323521290869915890943864662213620086841471225529746882046165094865844362268979082789527528017404541133191015282282101196137442101478971042062342475370578346814419620957691646240511464268852912282751828130902405813118284347051172124978980339478080014645127239765904528386100982191470225573489004867097084471757447364684136284416317830989535417627779495980634071532723199489133779656691254592734917606085064238681609945572029353569208996787280678929993951729132062722451720073455308245773211210007619060397383509133686208367762759595670652085176565200558749721529557826203572614883741077256838052068639388310333171725892155486082013893652797791916139668791483206524523172484135573956840572754229250048387390046212980849253547003711265063942695355316272004315706578773757046073771982246389609562580590520191357215505205411763114504087010047459805541716706410441909538833356467570685065443760668974214649721249920332268556137653584925862244813353718637849898355575995246273423458281245699894250505935171569848978770553947024855751274622090960836228057890773572398064766969812017746829232756400147314209843549773347062227781758700492007487645591868398397240472640490776509712361724311143132494241437892644861773846490679510957732593628208334189566499084165562365549765682531261638173200439473080384514998009835510022172258570962710247877612490203582012890179533640768206219831092444945419452226623380653490406936931416725319926481416962021745273540255780371496831543579783879807114443867665472085827579095894671832798883306579264207617773131775032263492073540754290324129232018218477892216571080627430927379415382920986086730628683165669762331620946837792977915210038567007141431121183659676915286698523196604518980925920434857513525743510300168511248110452261830887051774665705007602875880814121645846475517459209247698951650102314527803739824832854631634607898434405869597129430191210405452377731800799310657107555763013774807943480055656686756468056883951771539842715028192881350463356984318443693917665967893580849418144967011885313470544942272848768711919546021726747392391549896622378636830230012984792291670161409840531429088012762565413946977527514288072913893613316674601272804745458733689536159484152292913304021217880003890140050102548859424331128740034527650791315788317998445300630327484046160555815810925218139605861093701241048293883094392782074923579922782348674615139257589719721016430459593103826618372918721898689168147286086286288363066327441252894463998809138828191260399939541973303392050129110055827763306568213633195896675065429162664400567109768461801134691570225808455470250166082597623142229399537729753250454389534490340137696075624617932155980583525733035491286917202166606994047503835206935409506624474008583922906804714682074389584848387070411352963872946996092310524678523215112500125135873639964777682997862479125698241305644744075994771377272004466298511177600401534859596780721794767069430152888116932883638853618185133565947277188946050787646090353235029616288919414407731069851722473483846192469206320543512445654255599425122733162346912883349682313970369246346475389782608464194728724297684961166487051871892051304920058237461775611905959676704853208876055288695647912835610859337643787973957417743960366772312684049940690395799168914243718890247817828200497301257883137650895934602889707049721986298166320808972909797137304539939178766827927900511974191032286243962626626711825882367468778570459362955794639607286004416184350545976307463934019293504807046035305274614647162144271599935998215743949577630599447022703449678640549226625544743591594226378586813079222721335940843136122442355155250462006842806533110315577994460383473149189351701083750227033030964480179950207382067913985142723984418028384132100220112300178794437381004994479144171894745856862338957692373312778564059660032459521714338292230384416562198483154774271929869369774053862227228163381695439744055906107095316658675024573869194356345056794055856119122875827245991701396483446066415348232719124109246223762171008955122027491087361573475341345163765082732431518939117661217218445571162272503806464456982775656552083825983885542921800369013453838890865927124054284242375768221351266617552902216089909438801851804527346378621770307857283575244769711522404969678454747771104676098907287986348267124115676103718244360112515814335585885411627387652592370559025105744962075656194805773256599783678454831697558645576588588357553539262852500228658995255553851996147384030310985238877482357010389757747249928678273997101230138123468834000156966428445573842442075493849985620355363757589879903158803882801487702596224921080702357462116205092889875151719045276417094043212561254839809854713969931210358461297954064082554315909376331094197792168287437113554388736835281000458930093198622340946896970560714122574709883076124220987350127293730635700721287519004728424142230688508376528568300954071512470456308392939017115775459386229542178574152550352092047317752836432116070953339895627962507465410535047639776960081283727458643219029601906456275331773579381448808808044752955549605102575375281089888945183332312970150526542685196242532200273690845074952137229196670676641851018889494983286529199432103095680206402949734866524696341641134691676176656647561927731140919929528228157888038910290059916801055636198302669829519779494370307094661084239963186468903526036751950536978667940562482461872641863579252919891642488488603451267436355100996811301017516846448493203884238712934763118936165812470890570640141139206238516914081635319748611777460084924505798626152326448532117192463718940313159438413245082326540367004412945225888780176546451954631230470694238753140583246839283105410638165439300482605544805744364162797010701869054194990198788836755628279621663749848942095133425077240291178787391121745011808176369722239546405033663180486845968010717410993350006406809738554491682937995202770884583340355488424452244720949696859620051395712872577083627154448182990035693562566108095808418601158116351651746504729740079016074334659930645618163590471221673169111124865960333595672949219075169709076875374615558574181235164489330492365352373024987163675940625242085271293978065833242503510717225724510827364197174920939533202575988863316269068355113293832960905942016644775840652615956655520789998362719893298016968127162431258269792333479826020080274403057438184828677731823572742803758712000777655234970564652396154999390233911215135889039757701360686308074116261690656072467052202145506415361832112305515085569110967083143867297827678862777225616465965897356049766137001313223577168876022943752686932176236206716284798476288043084422926135788146081991697300646821982980385456388151417626783943883364330487474831992564284885548115798152421269937363751045594571841844602524214433109511280893255282223618791875667635511301098030547298644670778492226401466257356895903660624148480864976365309773257805173971264350086093772608345166607101327206046830637459935020198153368809966180756972495170736167361374533471533215744716819584836662403642764172998528395397261062089768769350179066704202724904932735126766320731803180356533115700646954025846091667741837747531505422575803837810193048069235542351390912042704882861823405321962979387274752630516158146232798431938200783963312160330190812751529300391860451897463387712711204333763052064218871494797905466923065241279097827791032236912825968861157190070432594540411241015736981605573558466636713008344802503360993052968622698804764099108246906527090409295342272216292747143981472331763640201650923108693849248642399362190338222376373743857251018400232623806587028883516801120702357826662506314399002928639539783829601246380858685104649729834259381339543002800688004065413483034240677518092142178139939298964122801728057511016444000682881830264044460812337657391555082792639671706196245817064071644606564676446632223478451635152165293927696563896864805463541306520850666875008831943600844663635737287556966988123361476334149938724986254437037974567109372365593052217856378058769435286332354817541927862053355604020535010046070177050171916776258839455407184154563337841145918294489721682317143391175829147270993356494312643414936137417238033734029167628154962077181640899711992048315376694188496401068878149520186477598316423587694637488965386236844569857258138913818490126517729222870118380420221484755199004238579451199498938771196695260714867084359646767834028556349832451257442616283055235194480358226835999176520074272508983865229601852349034989100808563221551331239859353382220769354443624973249106765545541236550047686326899822477458939961544827056309723160211192326130807543988477494608220846670025398605572016449849245346443434419062586127856669184808405233525174116986198848599363717576051670787671581588028841067497873808045783154190775156743033712544242609874394743173049872842851018465865848057834165955873939631645065180977424394937023934062804166079730595654392613689397577227727552627057248650899407043532704081944421761976726474507439340235736220088474316710305289909441794225074606356279114473169502081674076110487052342216739922288773933055676111847163170045888969895724221783737935157400838289537239893996023630665790578264636427534907472011055482348359302147520333251648792795533104478486719897787783302964702161277226785498454023532673882943286440927011155209678988948928376354148877996723076660894041663208008196764656019526282289504109351196393959065847232021681241442827836260476827258569056109908852328325266540524162039574798995907147510401793530106315159430690321221499796395113292562706971779435575699390334225613807311728452460520124206247038129450422429825701917001020891081973611809058709330282746599402373294263577473536032373416363298359087079391937495044433397346509308614238568944722551256138283961877873163695462736923829635984273292298582984931208766920170723074989554623910644144142491387161608484472032279951382255885184775702804877493791503761385567182696083455281326305391743823001437273011003185801978318917959083811733117413784839813677672544837479519625438315509506032809168223465783848974056658990606898537926563267970709561110054516676507520764309404271640899133985584558210835888942112921752347673206787233306595431380577227032418378330944667831915167884711544173704245145082058542842132520048173052116349408835163658032836733259427171389069286810586494579072219522556908102887326084737020627207202363733365491629262829544373153357900272802324865257825822437483627008601706675042754858735492154757363364093621677125342528659878891082621763367746885279238284484802361146580846010272398505936523148140548962966391826547158562261356216148049502026776947667364520489410055241463864364486484572115705942970890547317872540908657132202186961846746186734541306923314367386680544101062268667858800159731389510629245250761678349834422039090908767479516045248017652483567312779182419861358986139558801807967670020295453371737323841375920296059489838874757923458005016026376539580948481241653642809891586051539972667622259735418159654917304755612371420587842922679604969850230960929279145155107404114671071888698062244364121417110071038510887642021137120507604347007669855135049400224093699142845549430844718271991465681796178749257060812616005882161816034501240021666011016805500913704407867570166282410532783268324258203499333924568238872665186398061002911624931863314709177384375921868737216782234178529385656617654302143028544270071652164342126319847838456086967394793133763221288945909980059802061648767317892980101765158688768764202966891090553537288216815807597322749690609330145350579185058024720812288083279502297030466905139327595845697465747767762428572252598630803435786392644107143600749547526815610867022608497843419226239875741057545521454390767608487914618870999306394235151651908865872027848631427561939963139027901056888004282378820500655638115928467092819423449947830708600676524047113437560103907586769170142308544852843382721595200453229625119775480626162158380587308281596799712722144733015247358523728272000084031627848323090245783377885312948985683493017033343403149429627407507629120466030654906987249346686679278035386927110723014123337931450702805686660981876053764086677420389533707556789026282641288593125263302294282051182197071498313440510454599694184276140323525328784052334930773817632427990999550061827457881101196816074180747289300860581790675781404746601091421244031465204668061914454648067886964391173917225600884616504818056026969879762007531044411648904183946781522820583694967422132484222856561090204798276043062055811635199922259896892574606455275998658588776216922021588539580849064946432019876422576700553956934998656175172143675805488956027620781032650235382951456898835077951125716638309034283953840660313849058622447154606121199586552305500900810807923121863929460774161467649858110518779848602523105996001509758509302500136613148746652148997794691427094700929316279974819134417571547613257084630415031767532198598539342900012514026477395924000659377248752745778442902767271930605689829087407710713522629549876344729915149051220587531947346294585565561523744284460450570778431550369449769408757534334481120197795863701758318543118314305712668815516818339730221334143563400217356434939249305827027490641850687439777172907302447229730483903904826073466308434851668348662140417510496925524892847901166163752892101548637709611988584357823764895656279043785696634430546501684847541648741011679291452289428431519268464466734718726878629835458442169353330775412822585961167421905622778395464997753036074882909705272865648923988205736041304376283483961607471564474783001930104785824291394430849748460429745625582860704174414833330790227823394530696396801136344740230227696079557208389578822423435770686834585032353718190904902819114252810263824918172557707675644935203999803381647791658989701371124074047722631171694555539879024274399335394624466382667918457607945946839460504339176762209253947609424706942032216950611624863667384284734525028417125057710591515738409457491156922865684502771608235160178030696340953617649620080071841828023789420997328712374445922268918202408461067826646086767315002130968771148885435421875645910529889247476132179889642052685368866826404208222172938415905970635558091209451674223566580650465788222987122785860735330629272102111619209748625059204123336972779263087114991301703653140082437390837614046338095830846040820063544798479082412059106568986178105525077053349040902807704449069596116844916171022360387770016027398019002935279271078698050090046471512774457538599643808391849380650091300240742166981188432184404819250572374915834098743149800569763385447420203138631265535198351462652824462775109493662622560739839226646061980742891957778565666548579493761053616707588436010438836807095773373380189804856667843759298196390864341198465564529673713833085326386612438991151470093951941969300231305293841091971796232493887332861563423507112874046699122886206073223767995387261864942062264548645673078659768579767972340450994421944639250214026255671548707704568281520752208519956231686823989739845567072857422450374747959502029375039019173086955269948504323116006652260195878690140886544401603179743290619080437779113689748860851827304310945664846229335119070911936752833683440160782058134253082744767529665640936969166843943355550050504344204703466361177396675888550415290494186623911235881348743448063671032447238295094979869836921571447215892507346894001719124447673378184769796235818296590907545041734496247938558167403236964112865813944406953303602763963310843553566871364999483022288576528929789713631557872732166224758015023610839157435069290878129630941611304170139492086482048756509449139547583986034856018681075352111851737019312808115682749460377730265784453931181599229687275646548555599730849689630333946405216527077648537400063898708852113164575120634097342986927289994095334573458899162666880778532174826944437171750753078874113497823976511309273772992929818033828668835170025906049575964338249781413894488691991176611569439811951952911913485130526478028327430171416828630227823683453644252424136739537060455134013823173383584964997775183608377505681392033384545192775696615812089998396782756488443826939530806980166840821080341606554204143138972002095939278558878424174987138716979015741280427423057643483970432898114699774733025375501108549593344078473132730179410235539845979127701028278565013682837648398153744805800262185751281682515336786240856853130791886853812447508101754155356975313923178719537811603168510213106094114742240147362724307248831681150793743500720437180531722530928149519889245694951184447699575188830376161343357237046471577920432294244425104176947918156841493443004159742414098604079363425417620405609399492420845935105982428999682455071422038799525011770825866209148152451573432356988206106429432093819233506722202881565259777433345189182493731096745672184963206267713898921110372411339101670219069309147410175595874858036151269675248658040880576254797986659018444472884769820465103313257676558935623674041676904022125967179598076441887097364329127932087580173350512231324898417609761678956566626620544992065922665241190921478900565694028825520374945203290188602609462926893876609698414890237565266756182876439708930712351582914485264156338051419615003070805669790687238277643068559586402208590669157266449853626598389255164706806293678588193142612727236654928052727423009461000887983856457338164267050009441234484951368830760029456970007880075867062432816780189323456254233170760567512661077387571709599290153704963123984217053915641699135104445430639910408392248543124917381711824614388953906427226309724402962355759881916258743068557141125358504348279421472153222121759913617973350786905091960470933328500120323159310088135777481131471990846277992657098726255878258400925751469622515230100545151846987884323811976468352427870661885563158390238258960918560102052970895095825942871890303259974168093315072913594794994282888243534989262299329537696710049998300534900395936820774241061233095315382568885426133821601581463153172037070150605747153237486659092246137481414886202994586431408519155396647988534405923526682805908206184426675415789579917993145638456613244858145314016880173665942280346422156068816101051013809149046923111702210405826017656804007328518292968046357902862649201874905731921876602012771309539265854857381811854671530659659211624797054049866053341746729339493091184692758614996837433753161594241555189279123094883127368394474975584350595703458793902752088048695425123186332953681672311532303880655017913542634388343133912279561878215660003373098323391731270489026387519449771401179996517543049581394890536231382649706108464538410837527958011936929159787120909240133111982690987716739474278013406840278468786004645858394339219907097938582652649673101343327883689069266473983363438577051800106027917174268116014798852432793145289388480047711837010512456201334715276454446939409377311906162899186306511446145102737955911548295348026013967218631321606148133354659137315889334294255151878166654494720372901356764240081071893252729286337909224592818988440756943890995484566336242624286278447849923687597428332991606018906425513680734753644200815290869686967899199348231221091839146299879176840728323402051986558148211199108774838184566144468874824537578691508309995824800456446734347919513851484427562653990375655050912535449862704278762987480877287783681236610257520202644945633999579738502114267667142013119573579296536612134613017483421804625470537435893992971093893590178772131458068243481158210643259479596076756216787127315919147761731234065186498608019956933717597544512716633000847264349574183113283546430825679430461117867721909419026456483617414723732353376979466889557069574360677499407712276510421382080759894077338853776705856573412904492815273886246624947892153032522009775915359294822594366909760710067786901566981495747185688528867445518266870782636429195682228565633678671010802682106548595733174766827866530808039333018046342550213766122429222107388007781090413277062831345454129381912025293838755199644193530200392701781735277511451970732996315058768110428606485363317777964493166270898703210068121506436518862986652268610749725520243830426650580336602726886125129619171113653067810311873228152723698439913390754404404381707939372178238162694576215441024153129257363949070585467205819589176145925404568842456623692889647561857717379462234374615655195764103307662193262415880772537584590694376485910415785062539357677561126005730745772890323707048423647161255307062563602444457425071382142182247178796132580678463712938035927509874001958599259640330994404879276235833145904020788738627959902111585419516208579873003081834945532601838332848050407355005352878423001403749595640433153861831893514003955269112046049301392872630474220334677809533372570166536003265461601292970094171358545068717117648074033248693018068458551010644616798226100529187899548413265576711504862646637254671907828152955900142987673246648001377730632855164685859138250337665850293861047462015808811169048817850094257946375063240262721240718803773896115465674298697473498824910348880332140812900260684939970197810235006754708806983894475106864607242197382958250884168805624747952037263426465438130658133992617803582461927035484266022536674292984192182584611431596947790018311987055475078421886952278326984007047443048351112809117584452789439722494334891070052040891752563558027876003379199128511314583598909948173862370314864954133353293494840292284438391337109016890791891255437451284822340099292431413860564585586248538024452220829015697182801770619307540002596711515871510514146281408964675204492276649284531253647210263018605800423218039925811463691996412661057373735830404362158976027485631711882583885104049621675121603359464727474860269063880460578827877716861767394501486973297790438057934230760145563767738913221408449628818620096622386374285301072234128356105577456301836449222036657010704051959578551667385228946231029426170013184827212232036904738165936903764969678501361844640648233278634056375271581231293636922685731530005834186102384250064199890734176868542327428701285354732673097238620295682023529067351210885197630373683395035485824453270659464702526775240384116405980280330422060608121444278940091250719877062727929900332722659662992617828446370261888502846133454684873950688526618559989616187663922391389442707945061971388630142739240096863045465132513448580029330848609387870057651522974954030748526796058703137191230975512148245547541099099578336754034281418383253241274759965727583914623063857067390405776023459243288897762584519852061842409419757007785951621511633224548272721543561765160146391955982182421582497582670771967771447291498807964286821402821510202571895736940203301597755481252368622751615654149907671437109896760453750199813250654618712447391072865890863636001102059372287625791311950782780374366827571061400194128735435003906094238813486988580315739715340830184611581928956819204617192163415036413656547270479350111574307588067623412902074356712199123012787782363453610984427323149043978306061672924065629720431160752858522879509393134636091724712682302877731427834406275701158781439960145316276525941680913083814748804098551986339638458213744274340742544196335758130037977346039039222851065527589363385051395259497417247433154905638703450360596350410153690023780188273183169324780540553705780385433797174455121712121422108641861300225011519016574842362198161036748319783797986917801216914576743187053150736869439901986935903624764100786805053936588636950955508027964749931092168678349736899754683467207941016431103871849088350467807939211920338768905173997115801521321256875582204705197539300717178949905935470129513388420591571014056807523061464848283017199507234554549843273032595058249481234402909625278625046834103928830231608955441677078064572833687594186199931970894792454324096794573314993583178805552863216853588317495922570262607490833855321487074653219025213173734939775004267736374960794427108979440179677357204324858563033833168531457944613570172606783484291290036292608731770485597948120346663642236170980369661075734802552873813133469701472806245769467845480979717604864377369256744626176641215580912644502158504907482223975973310755878034617197133798473204801821793330344752140851034262026051095222697809953162865735847264591554569692197273887960259498458669297239854435401875257402544871196514057058195324135439645346051509253182713240777669060312496482539814820779062939625234186321439251390150066928560828254114575973948279367178822349169463013943214745667875583937795430251067252551964414865208495988814492896166294199149740083267096103768916093173064844936887454822622178652077650637242450810048680072943962687218835556505835692875357916655577203616621785690753642072306533284575233287342922337559500661668447249845111492844893740348403521556362685684273204499921230730373102170249158745006290111160124912780004807955127642745864416830210017085440450673859036280479397061935811918263389257352503209525084432404965612000466146880772045718527416538809879753040217645924076454244833233732781994238936695452655577126445283410278211711691360513547240022112867224767328785666106096206486519059848815153298243177934404009546693000123873164672811067077240209181195383262521769894502507701711661384490100064959333663917699218106581766609887888207104123257463930674943727969918639940253889362482335173545465084629110378413749971486097895441596128736495192810648254264922337998208743069982440590520688656176450253619620064677480340240428704331565921803161076685928854187605962867182728010100958773020320607144833762349176795236050817450534314923612730618600110134970927102850878003870255841240494361459543101399934342926331292306437773479616190920726204072097982865695209653514507839229472716793985604490576992483670480648816499350822042376700660691915337992167219692929262888887221276691173634158235100325507049015651921697887016466844176427124384682438539701933376486384469490499719606842432156899403722193396984287583978650067541028700326136925323414216565323070422867536354235889732638930564576339808944886846962381730104606662315255657520518949684382634741226763492916503574359844486147211316349937518270450154927188767338480768862369830188684147670315096182559044941473979989930933348126324503431438328354863114009756030051265079015363693803413280070948960712419784546709423768055496053386009966537263871753131055773479812467401217326679473995347917804649662024611274482236860013784238779977642017056217267801672980648071589066704626021004008901176917657697122175496103974606144751213145723167173315455771805957567124385043481575056962098840626960855437463742540290533416743908765352973870393677170735854399728338233138184244562709017685299361879490856238067875108520509179414788162750683335496581794987694407949302981652282929362960751349370183333297103990956619804828554325191800417282931044784473021283689877888404661055606411009720925763590295405230083125896620330123135040599782698138434025672786135102332163763138844574503502715170599430731711720563972226085543106801799814069597601152028075595768513186468098476840544190799344999151090684136103211794257888602104339409391429754281097884257164453375957175500445138102935846519121632355131275891536868077052681160771008183379658940802067365479421052316105595229720111040831853328110647598231639240996749541948317744558506912422038872056430507110017035465424606120850141622753127714094065123949814816320997404689499598419583670551702221347316451025302741245302372381732294859745847974525792797412026997236463805700747138864491135226608423603854000936804290490150808512366707368968549330676599537734076487745972240468712024927302186563529345763769680428846021458386147137128461604329510990688774810905088280016675494851594242110154478856492209283408827119219744155457192114150900465764074131974267534149714598807942712335085083020764208781004362358414688921848494481184354057172995389628500662606474466496152620852712461641446300494489225742142349762480853684352347424850932222468571430399720468275824012423601176062259966704794535768863701836212898410330721927686442744448559063862347134114939161731184210000464442877022357463976752893322773610443150583019833942273400368938627594893602735751467747924269208598296506465887067333625546220292435138556798347727611196626659447306791935545527980010646533093818169037618549715899744132497757348318999331960685806821405517938820036030461500231606719591123491371207871427475048133985837343675006284397377398231749741409957533248533789630972429823935158741102773969426161423988382783066051995637603576246066391416666795598894083375969335054719428881794311500054285769478373315301546940739042241347336955292505620897235063943382004143098566919256196064233215200204005303939045978974621841788041783682309956977822326455045458266826537519818320186245784415241325568397737848412007559867534619501573805101492873754903463742258727405259692215310041846956131350783321799439207234624473502850730069379138702978764131055939971409536882172309509197357783024529105805528267874264670258475185740186038831856528673247595486759974543965037124980117062575736304698746552023744600260888327154404983197703405278977818666544685108901561023535459995347144633189419219699378474963336882646879409317828351810115761464934606809084418572568573515050105471683538447837541961978705166181131727987888344217947008396529249039945974812523914003054279345175466850801882382288743901377559146467848849415916904091881994239213714119673861094894535417644653500230953779599059790727629052950895030869567928437787193326437842935014319169303156471999409099221158072976327750369601144223059633777069802023275693684753895995458378223653797801282777394799519834048163452160127292275556467336346362059374167027415389610177310146502300418890725495823655918860209230919471231808940714994933097685515654625586487761149440664789372795839418891227112551402220742986121218350080621187578735075372190774454896682717506252402825850315209797367019109098382473201804193426102864674113034551488000799404248583791624142032259501056489085065742718026840286639378163543606425652747057515671878023426723855848920652938469642612534708767465698612599074163833743767297737723085307018296180186328764196764307421598640317150122930993262209292003356411249855034875436449423634076776657345115579061792901303187987480145401928744807072804830683916728287944324049938125673746328207466871762732963204342407183350013969186004583758259331319222172798048212355237074155584581366116781683568651619389867935060780303834446709478877264276144161770110874157079399507336892689454666111355640229351397081196888401980282406833991863295487980757641205972542594039760203793773925735535069871464838922336109638155335769417876985350837634789560643326715835091973377182759026431508806202471166085667261963869271454902211985896815348864344542897012143070640245859579145151043445867901791886457792088035181563788801442193540343738139183071033867859111311133491221149286514750142549741555607424572688119303392084978874468995642512649167590140562152811742991632250924469373495335258325100383455149687897867794003589498641378952070364498567788427223926260155121878350030554936975775327652174432362888076172425773197274559796341531645212136058053434989279072810192598111993891974736334509358149363277543218164310048174549161870565928289891409988160246865565895333688794316493664823935492617673024609417140385415800679205847753837780917669803376677029025276181886438573717652819611628926731511470475584614818922605414473573565481136377159695501041934324508730917840829816218988451941254927767354452572743968470506079458148530768765576724217516470076121258408020393834629363091535065715290800752137478001359334982447105760106022092247415034375234806823876634241075964975362240846915073928018415632474637036330144342002501297908752900944133813490446807845146428122069229495251024455757821762915938244776209268010560834380073921022955239171014560333975234217911611373385292150077942995401157285737868665615540527565124651459738730289011749496347521191385238005748109340071698745546920078094222318163190893243551273092855134508372349240937677265458003158827846534081489214769163015989052174043892657459778766103103294705941909827454141622669636727849691470223372954884138652396100328164570032511742005212683577721288044570615110498958163740023208055212570465383552913236464417099415849981339736773282443191182908696106013275028713308118400680160379435888367103149382589847707398570475618353441492043161935863600281733895339500233242143109051142100260726321103631360963604567260021163809711190831055308461843722961397323232893767368095498050495317650277580919702503807327371795877984497846834778093017141162544190781368560583831469906136993942515568872918698326111923620345109001602394160885105628093702106348130421562845719273503917887273945616470012149141419386196564063712328057881700796905191615159146462412980391150215164066416925906421809570068714692793459149926657224962051653113902261484223559917904328782761698248794410561141168210146642303090196434296714914629287065043590980263869676670967039787074534619447368528302998747123905265837699907584833271031981499344704265379311588233697026418686094088963770418494560884431864859863371058811188479777295423118534066970651171651687629067674210564181560302249881746381828510586226634526522206283159230194662403128483214656247396713544086999469607219777809582794076728972103402007982200923736197138871122987496284530769558828884647400839426860845366326456077217286227384340537173869683209341878895665428616233947224372343336942558256336671998328591362837813131744317761797261783316326192428536715175496157392579477627407098904700713682358257630155182866964250036300009597061920201660526511970046271925832456274061131400613333702879334264425437072466562311778026706508596557632659849935898727286359824639080733950408946273836090848058370846987234188802736848601046684831749916070940353147250731566413248262764810318716918612960664636639503044412666844511324478601409892094137783745440616725432652304530958773442713231941660634164590355124520160091862239963645811627725318320154230847732280892682239962883152779489387940103241701060871479476930304054074967422303089049480242386834570101457952999978859361080326949426581102135598499948327560008659061910269649267542902159150124820286991951507061762332925987241680282991786289526622965280867992598372692953192999721815928929730428541749179466338801735342386250828603500857586294580041079620679106760794550943947240411602121957491407322941496783231652058544443040369422978314879007623049327288279219858552459789740325568135169902757003446752300567881049438437017126050346563546667067604416773977779329995073784744857146372120691301900189120721372605557517493970810329229924580197270714346027607110809863827842729379421623561059732997388966582173416249086791265200089265791613477993403017539556942492782325568423310419768989014321719148813213720597895952150899623739144707666103401095939906073474903894794228009527140221797297762629933267643079601568185748571347387862564859246617288039563455780522711010520030347537591860015235751133086877956564972603308993935812769797293509649223025160830398669122278420302995027699531109871932341631625549440420476931085721283959035991585646037302048601003350059164267445783493337067982930389408799602738524827724716505662328511378936270278685448131341796974688565710064644403384571443577632636174322002770650734054715793320663736340373740720163372248810657263943589286905678566430655249501294005008071124840759953871333935281621215882000384271263717753094126360911593602920813481132687614536417048666889691155375683884904973472452037174334061305480268006910487060630584209063196644571114297845466041536945217722865379562498453853926366498006112081295720624689836146020422198223614106288361658896054588339580562549318684713899484861160835984159182994928003048893166591606290617795512400901492976612132168034723483861590401917420019001729888599366320238471731278583972249984304584591687146442989749080695377485396997850200960871143117950917879112792413811197435624645356258051559179396753740596913663898540650881717687538036123668905452414620178096725060345135552333314923653490521663524975062968474508995888882631242543262003112988144952060281408426388201293088016978940320831021550707138028940005244969731356758140448955663768252487542346626388438452811133500068979890684172049270944503458567941916682326107246992341840993780511532175357177908587263477580843794682378961340207617686190565111451834195249997311795805781644286104044710273632696574954821896291629009986909846367166917456666701085462910101683320774193626913235461482701112335989014097632489601444594304003630630062328644812476454893999849191665500539328933589978101655300333609954223710973656390951204551680815956112937373250317201274727890499395390280401113262424717661669345417834106370789811998175111232032334009468075337454311311870376124103147794118810697832632764589600623721550275658096226344996260636587726336476975522974075002474906878589021975619673414408681367119387212726084763396305827998537100881044969771383064026967186233069268839344692711704811060011459965682805986635250280262168955856639169054091404869918809889143314253950138244338282100492200115876196252953888003068660373020605509653779195404737934747416283372091213951876166097893387554479193094916491085155646396347197258078684397228814811383121197860010756197798210093169427843460454351153956632203221375140201552564102374306897259997295879868032091958860712734563958619067885729382618549817598925439264111427896604662090983290471925837175314198457112156059333890248614571243391333429153582083958648417441258482589130729176971861108329742127523372821231580349582127598877101308465397878374220443586528262540457904883295450853752785967306847016154342361423278491033604181970680102738421719377010452581189379401335875208162765705662781252909682902339319667729974605881226310536997365371828569802700196089443545192915947833655045538451563572048512611881333664829965649296653349536982593766619432387650124880056777320792273860653882403899289230188383555560545647736666558793818948849749774189064541021747200262411252572422087458207301479611245978925888698161828601827053100002756303912672581642632039530884537304996936182944259031257178995049053779853928533394283000482200055755395203011188286785558659717876060970063616445375036799141967967673177305535026996014741390527661247194548103341847584866816250528353053238317389331950827182282630168581851428743860202687142762975661249376095058568042977515425239499669106577079607673254381300569658806977458282541514224929500150704434061815316475455660868219775083884864819453888500469325163284391890677155732605686358389669248885494558214251960686127239170720469473332984689765758677964526842607849128090320498269833127477586648475085089706197737060838535678469377628554628187370990746861369019569250343785292235072345858555752093877556535522067384310071290400596430776150770759164391509168100707196242624291783197939171961934411251624606460895548447866478747912821171240166486336972434246646775908055676864984196448903913397226018596958593240075724196869353837996022814329596862427651326808704860526326431674076630281682776042852927713608927863023104879788288723733523738711344505712113511113057459755648129806630363814995085730381176895619765992899768291830630703586647090021478426014773674401364428163959097763814727416695117787619355904397903988322978542153260796726597458250742436227482984644410184181511400850960860124389807272803691743639682869954485729738070156209592860308769596336677778770847099625632545320878035687835902772548956945562026006475447998071970485831106775240765840461860794397120358229110024073391238478529482581430236397264438968657052648649863821939420770792929162900147433950066659113572489069576548981872401111874248437507085638589487684129873104643511758010111526521600626111790111329802408884496100655585854792864603571362663447912270397067010464264828578529448170476898809683718576137261785227339331406340166596352866627465505825375967135057650744241455150257908371765423398131793907205023318309913519738342050250311750551988710791136910356056182866715713921853006809237871334805868600223877584033477603300437027034621414900834445877675861934194777815630937104579684635055143429903472038194543076603740559544119718161500954921756958374126107424537818200935229432925348018175762266392019597383940973989047965002255535679876442978606515430989021566437183576875410529590724200854063863134929826235986035210760092099467413454014625533005130732476358605155009258658355529662553793614188837014011086607685843504273536433194420094881619550775916184740669342912223496373060840711743140161809318602220863959751231162000650906658739439102584855326844875643772769750614394752346319677001702218514907190859182296097038479485886881886275723920460660618506423772635413261906748211724847002871252945994398994331443116718547170337315393328363430573879886514188337085332210382265503520825887138930414585702194368783314343525464537318019438501210607341404808397542743128602219417416930272255248426119974689999884907820677323566008068305552954489214974329733251202630718600723841719051556820361059826078362096573097444983848572191461910826533430984893849111397369602834988937064509098134886894634745993460939975005833160846229804346532389286056877708196484858710260652860831242518683340805113241016640147211274153976168140543357039592760364414545309435505142393794919672768292989678848818225380033121064167041929651357210659409322201871462370271787838145750059744860033418669480060156333090521464092895909812247294385314835966023805346486961916185491980397276016319034422297882280819364725192916616373576556042501648804971946357950762180647564750451069710912967530232091829306172762838947097688389568943252952612095497191923128578771982574369884355994915004337252540817543160365171405861455549008186230302631485584153397852792297020625429781041520092454921999274194390501143562782815003154178825947313450230045817689554857612089512698132799721216133795380338410686568843763802229384248072790074541278633849101957835693696489197193520668717352833751926107567532104271954191544025662132814657588516199004606384970908642777430577161098408772839625070511774243371368316130177512077165103635936141857765422765913224079859846463286943140084752859522451005223737657463089825584162197093962290621279150413317440456103211877054221077553765328632595838414779979046577650202896896882445217616065438157117592031777131124608712754368399182009652362570653907533445578222168206474914817191379674569032770045391780968456625591516542721367743682200276829730081268732741555515643055348434440301551632376996208051779636600393223473616661859382677844918722453928126949672868949338073619225554032729285933218359948358109969015296286924269994456160074997538732507252585526377272834986959330062236964002273023503097523824477731622183106045972393226994456750928228621278561014697267436409627906760797368943782722951522805950151531609436773893463288494481303290514248904661101632211677437824337239715704117087287043075430638306641425584369600087956684867998789885895215155218529691643645612053968405645308383822747172111184471002240855194508372969805592098891971593155657341934125110034054509634242065746309200721377605002405415138239806576369506226344940427693343507545542570034886887521295204926342191124562226015055318638972274817176093228585606978730898385528082737493861550020944531717335679378611440521445400490010678835524514328962621276597932333683809638798686633296808086128965879701191731386543805646999620494199174499189048434339040954866461198185700850120097107056294171571726024387030140967271756517987294202747000273130818232125776691645707239579661424355748317818873904825282688198922533640856226616234938939765983230445485334909976880285419533450149011409272929172877029351841323865201283539845031549473721044983753761789173524850986609855199557961313304223746416533355268195987445359062715200456062195617148421326842843163399892333671738506527953260993058631391727594267081838665805651993677378527295383158670409534522233755214125827074212864050522603256982072961835067696084214451352773974656705493353938043528922075578163169488308801616687803964468639866696139881046903843377582787259564025500798514470603262646540784769663952757148245025034008496280311398758259205259224918894831558748117414392886910518969884415325260636056567401826926332128497214936950686572709911415597717984898851166171890018647362853218319451844727537748002464483592434480600301512025454805580481538482064881398609890997985148248439430696261665558126769541143431760212091584221715012922064262752257795915969376955324582797601646778619109065771867631651715601326756854391881685509849940450997261583482821747465121081159211365455013767817976290247418602236590636728450066178410426044975063498025927297945236387231939791230162961204045594814872106169509937124472268659046492052229548148608775777638902449591584796146607071455911881598802652429108756476630277055738042763759325642477459752603649728869840143091614948407967300259960411321380282546917441731318701843235519010103255106378636473360096757039716836383578524750585085540438533586272539544163685134275465333508167297736950720101832280973451340077414612739314998777674762882711464251213767889999721273024657816121299657308048099093123866530808778573199402468541213026777896808764896512113819000334126924454584805699479936119048985243564651439804293452155641058470186785358294724788628353447126764089314430374544836338236262318244008281757847429979448967601203963262223164514736328693109432291538436340184279617248131160707559906120427529933236166730087280328099426632308699962009591970669571886457720363555088675115140571115085946778987536945373287203653242393991435506964889183646988814435495012666350616448617597255759703597867607132546090547636419479164432624980888004562149782451320139345063940427112930348659363033345184400553694615709624453069507743131940338311810947569406285137437916251847549703246364795091338830262229669047709199594245713660453252119426982759984301457930604355883148906877733339723709804720545600277463222843561181616767102707274223755900691811265592175504644006613032453324151855944586101541963448176182949426530045265424268119037202080902445541215026437936355616841636286681295459361541088071929739257330761653776406268022213483473694759484447736457561267966947078972144417671628799337735809667502501327558432934197604473932317385722615045368110475768545233929554829617716231506091467408963416387621029221127492820343033746252244486691203961167288114251984171287199517605418827565692693179256347986056780163304910162227330428661683960957142057683440023664040550571767805969754265265953082775269335879558460466526625538754677559470801941367059260796808619838620142952100757012297291056483141290045742015248527465175645903780930174376647162909702718716756293099938524214603164596115667703368383773757486266536034411037309210312205651194968788854462597928485019956214469851625669995093739022889781507518295945950956893286723534738566888849362130602500586372993240585668867782623582755487913038937134850631673594225489480742471935895523419358600528986662040004379444560266794316078439021962483579408850028209406526293702873308417200441417378888038624323654037740284514837398269453636098474263048904755234578181283361715427581249149011514902332466016759016031905209771486859783366890796141762922494207749608954096992512486031920543548439037765723084109754497768127984208716188702802541836096367307176024013733438421430024641856744750171359636289835007534847757643611834575866347576485834979780860753015457363267778382287414065160354582420837004276277724119570921954118523110808903682155054522605333633652543558982436372400975034033541849342940821513526210502500908332375221432323638297717189026958819738440975965580382353050547103973546930556963644457327787915120361905156551846814180484492916726855260089374183925118257822511910028967501912565609949175162963432469923543624055885099897999850610257481589490817701199724369762691129230821167303226364184568540766191862432695081071144112818966657389820987340446505064260285876194178126845861841262424781932856570143876787898987894838940924955514768636041618091231831535022207997742960495198446875993150395525454217802112775160067421853356337136529152869701057486714734659589312026378352571607682074083578889838295372919040274320413244257325382275045247914260085317211878461267403787258967814078749652923100139246405844534461539033146113336157079770373983910219561356564660552848479053624720873461918440449977745138435955400978700333476573903850859662147580794296501059017431627844917190531143307325793845319154098041513558943692046155892023603089976376575734084445894278949275263626882683001008978932901342025199573426856338390124667129017194862907773476262959307336583583671185307658240351240734659620419809839020786520016139925389955847614259998511176292240638952875859911235247143418131087135428760436073837865033963438327216064263752772385651027577823162498174255361806304581749049299535725755157116520630731762298963946331340783447124018463401881879920996389585760766271204702412741680513803986888283671884336001022174639892233651561253343508628524686523106085367992995802727718730617212698148776432217991921614720064884835944796446047370642619455226492332370718880908871913728070500185489529895488716702807513827005056535887085830561834282174426538954078385099623545365908818589883536106191205861303733030929769388382739091370206896626539697496750460821010181048683422822382408780694986938617311447282462713413637326016959874643318192294201086074168008936910212547383909869705435009118300943607152248925135574185368940535839159656704925582921758267783667055041445375979769104564349727156224394578040435725665726317783126076958005814203157029224333135689454836702685244485637730938382595258737739843771142703363753920857632059058227932968873250786856355791629214367558470604706015830065359602298917913792835872067091398517249136821243493471372970153456242604781595754646280463043659336280789715087294028272917184495739948737117299976702170526838353333540816976587817482485601189914879048930582318212173896549062270771902242566335571395360734766576278379479497286926747956799463301788175046213907748064096110810203461875549200303105036453206716950176517241372225218283556505214339941438156050272273086846874670705414742616039897092333747280452010199313881242562225515217222230000739960808525079758415767199919073176527432272369225581345273430604401035685624535618316971309179561002124156735496634048067071198744443483898718706759497140147125270832326084414323892897264882548966218965550203384057881053871496886508828611881153118155567565676371635158929835491575145003224664550635023860235948923893668550447456598522003128407153059323145986511228336265173193929829861163897193469790529586080868447585054631388345479671403685753378055972993728307550930070008102890713527306670959643762585771357397262405244397171091357781577242122732599404289556165385574515165961452783123800809445027742330374798054336119783939002564268247166859914696054134290611085218508378659528154231752644499664617368553472429086602181966980093680755009341132044140447074551675323112976034445666351817663632175568449680091445993854988978964955506891737504494102984640553353716164715683113152927686182005217962867469506155670557223469404714855945515166345001654867521026993840356548671912562011768362140857824100651278990482521931191551752250605567124424114139465708523427744833196183407468862361659661344506904353429061580863593222648973558184035049013677957491525876133224419315907335528857062628588715949063881905840957771015706445502770647340604820400337679303588367943614351597474395496638855673326744231123357878031330108484562535296469990337234902849368533075997685405915481712880864869063547881858566608021255181030382658238169461588454937301734392138587528872051661809029762036291982891119280428429314682376056956220256693793687503840544264632539866861085935787338089978766083923736079587149341368678606340254946739558354185290182593085967347947517059243884165546470158924899697150240808704553670982945563893450291456309609445073838340676482689543350101562441231463041824965476038304279735310301091842041631071486979076811644957712388106264365187586891413219661593737915145975030509979120898443600843365208310168244202676124206778610798664191428679588215478784111394432766444741108656422710552979957693534610317289898741272494619827547696320693385494598266820352573641526260697343746792041259427146714716002193589434050710001459410170625352838843706077542026940935774655913214728710097212314220804493703012582875599436141387683646009345465637325148856007475180830423002482847411982156313895987892398588490490302877967949199081392953559481861966411177999500918868371043945599460127267268999105487751573387809361350268304887402732822425712139258799383868756216399479654347281857987511530055724128620283035886461615350054574869369743806307085083257539462391866847206133151198400329511030021047394153203302824799861614905734765871464866741491408315931213294339348869161471117523762947264063723580161757428421904305121302203678452306111748902635753383752428084689430754944267319664803932387497999535600514194071339335342280727501367684775933981930440642054132591046738981711539254687599508499291305878074550119665352038720349041298605679279335501242776364484831174121830942156020549575639764944041045719016295522800733110510867403820247862546452467757927008068520596971979890060732029538758368670622950081823980647894410430802948331772955580068319660737814055395209328163634199904692575042275758453854974899742266530874633294971730469461795953562602429489192279905040285406904368333438037627149981354444380600251635236749617326033513808042685935171586178387117211692439811316016975636941480225025949690142013589208178052796097711756394081666727802612200155920302515524868369837100137236168318999865317280643316332047192134684229508416558627338847582004223167917593387059109088694451304036493567057355940899091071045428753142884435556465210425155367207020085594343879637886895655835828450484234547613474718428157403678283012802126940287188584685002814628429523964446467768437152299371648432736452675436805190217256814479489245387835009142224077909979108572961769227215274715698461156418738880187646315132626963993570939393271491424091726606885350008939277059637928063990618956363527966562373810133195265590345634423316992952708481492911323149187469343691042557815777119566211503871763897645611304450777814642596400660346785676159914795351449972694363617290164226711505832136676996636745529344297668562893368517776425409997639835347113156607110205540800436638945484264693625678698194362533275807298178008305331871090225933871504300948336438907777784661669772914418784345831815434818763288377916925200667742369292533688784563936271014340826314288464520725804492415284032007802417559043648325825883727300429942514016853189000397974914105638767584496562842358141603556525066046853131555963682256368528440962188442771275129113137616284128224428493581557243783248197783483325871563232921830986445158618641753883644397875689781553403895490657059753543647564352837112768585166535374022710255110598764803130367257526028132323523258452176537183000716887693830833026358302895714916430877271567017954403347238956070339430996444557458841137975342077307252230777226116929965526359796310936544588883251183151238451107271478213856965186168232577991394369800967405055872335746574448118764540610918658416437234138120498364290115786902204794779060620256162895927500747548286627495043669027824878997112493945097713754267043806157638099115976696945515613539104559929292817221578985838662857147950551740780381793248948119114279009890413903730014770213129745898195137979588175005511652740558015949501367191463413058735805788520650586295793053235459499430215225636259726057216360551659827614196635767915428488915897893344375167978346111865889618447382813776676162515296726610568780803654176340996666738792735746608240758291365393253533378927094217211600015009191819319133272285168580927183847700924419667945462088788199371325033025081701479246020056760520794910112739210470619622221846524535708939373592245918571686287231243772010427079315813291972495657351539792947235843374298016960746175650577194886394470332768531018837219752794148974479798955520567794724181731713760734152374481371968720553572699388660258866301282776323205705058994533436515276805404374241498793883429906627282221196339295227494761871477632652558034184675581211255933505865590217324368309365825395053694248774798444211601533878044120765096506513578173194398479964889961168445990624119117120455122038294598100567641158978285134099389710694740612842830108538846422402431585394535217943147340344853833877764515054779890045914823913600900007038810136315922874564139722625162511922073488057094783063840762157766504363867169840759357439147185644987363474422751142267204850245453598931237272925470966642172881373659314298363415621964974756738939802628364571062000859715098569110049357344209657712830494512239234477922816142892245173405116746926481301409462314142701587976516321329036616638797738275858257152857179280929177933985455140871459319220567948754448458538208252086110076808971246670541782216979262130072873190760726486234362636717580101743544841864419064620665130069034139372880622111507181749085193115837172245612313961555536763921880017302583647468805516877752333789356191012758583513322504680790320872041678155184828955370124532344663860391200338210321212903747718840673516069242695256038990389151044541943729049266318140807301925693574611669581420855422229683090527941818834433075858799889094793978929604257110676238368766376504882764690765450088234157734565688700580208469439968354123499358060934505774845479700702972540120231588640020601764526337693365764213312716439253198096677072614675793441168644568678339609539685974537165303930371561302376753777783605485061474624719631901433725417246022369355758266170240045136449503050818616736634449966125230087999427647450733460154128914866747722347903394317656858497991157128150512077941793772768995745576416493753319123351193700797675322891002819592929740616193813367652181022510374579437368729043385039436972380116780014783152046830274347758510604147684193226102311244676956974076470682993995993356193783442656339643994775579724686956524419359870523331499486466095818068055298406802305133489300305563009546768920077710215944975716275832597477076706419621343815085619123459259294492570449624346018281695369567034559564675587358581954178990935523452896212371709969965861113912318043538225782238442894528986723548027004034310039709424897373254248576772297922189834357336059138882712554900048552522733018952001989413544108043796363640296699653620789405576014834521662726243486987600217221314798851331607649020060680890465950096113622212703410478338518216623090424576920807854957719885461142133800556492337703814586319862970265712719408388100780901221834306250330237221834100081492935995787381263597918466240165471509556168824054065449769435012251167542416427605025565287009533335784174977226941179171562069150440100712366816899518462143941795822798694350122646401288860768650356098695412522042879231338700358916201106817457810606044620892189435436413008052167897817334930485451333965797961652561443503008640387809548171197995383790941824379495347748595814181018389554819972943048262148785372571664879408080236186751003750307366350706503365692141152179948950423798886311798971147070480046412315025407538834200040939533158686318082683026965422213366921263150502870216243202303034583485623018261277846933214477042716310074586104594781207051645342740829541248003164578292492643927835605843699500002943149044713475250738279590041220000671753360162613556839624496139193878485700322453146657973616676150852217040632499989104892987038410505186615125117333159058233000734933859139067779680210545432449604677446768144645633010715395152539355386847195827879528514147239492378050067626991866990214909777920513124426865467200461303436470392440010004587697199381814939037411442284176653743173586726069641418526718149883267904109093608112492337896265279411988692049680574140162765120836725569313579580455875867025838637091667253961049989833932313390263462899716199727597017457616802601997315520495136534069382941308615787466187259422998469493956482957249587883714573998882945519046025970754208679451662815267633530481325930947320035088834545151087729495462539124755819651976872299023226780898452963377592406086786933291824230926674340332776795937245441284069034945563106926140645915992223503267647644423194490172570762452265697624796251199251519593830909796668824256291669548755694840099118586807253360340467854113453888644791798420481479868283462853106094350270621761195668578640731668933628590890093762178721322502168685529583753316901668558529114314449483651011623930358549510734997409114797378881900446304864383321955296637265647530178096936629234240421365032652110728073848396096960389618189796713568051756046296199224457370657692075641855552341076377087095740133429989897406060387320521076809021088594504434570019420476099235293174053427915090122152532989225797440377034900123439217434551322835928321222266599864886762643478228190939307717773088902725967744182989477718509074997927811522610955820546075011784914770941249253883818858708094425293146251094006597012389971624472610514445378705849020135893701190760206709888956847478158006879206933087871303870237731490611390087031141663350195821861924787705241284686791405166594761968963718894554104694436446419370690942547425771910076168469009068410382137037325491075316937144284255908289525078793911433280408465477622331301286758242316346605339304195826684444837535894910998162636142568963690171438061893889536893619504454280406355002047293689131279387313490779756305719643224648295827228463729149503458521085295857696466642663887353655401010623108769326035286008821291400343149130613712417871465022821737006626228537749421748472138646086003334037386538366738070490324447716936246502415808222897826337356525885947092848184406327095589253156457230357987452568001943114164055152093441966876900871935107940954087046594912941913261252578969972712266711780062497300693113715046504761855411345346742343164957290518672147084089203060678099098217801704307282468380562504005939347183418000132161964235738513162690266966496992636010681264845790175257651703425701742356083587174966183884400928157547262680522044917469379289432563439274293453772353237921423629215210677434571432993726322277386398212940599510877712295048441221259962672923112498447024359394593095932431387407510666277549691402413599087499727236801431012311958701970031205107492966086801306536278195515343154441108850961130672280477608238947234547373394608758112843145190126246605459228448749811623198449770284926454023933706556482110001465072551504768527372076110264841441792102105937320463430976408948070960613345919316853966701591971050701789042707271659824028755525326022036418727787537916965601246762961542965203226292659594780890831583962611938413483784466638357754681437613383149367578346918161488229792778497156922594067517599035171498678208006348237287807420842899637563702945541744866711704319792226784336459910226986763630023946230386848371965971666329163837051857628772904373954303141561741371729577129096878759547102425180154637127440007922597206248534050857559545067365215435396681880418614597703126753136209345928215992753867383715672213231855524599016245137727986154433512844947914457559480258014527708809260623236395671949092985852643545758103963881239905491372139196972416275337943295557014030395081464204490896637881397643682030190448606764086644964736006330806935149302731869265647000904005655468904168626405717553248639793137824719475908115084887060488924182194554696742768291880986083544674433368877559696603232895367298368908182917524906428771383475496122948212402129747877965644745389104101993628804480720905698512352713870475057676658858953647927872949220831696925830465533550255378370572003348689949553884854477258931227270341074787900188311396684601530146080575823958403837363789874898057903585917231158266802893377083309861840662905429587415177930462429514645467575008642173651842921514347997455787715236933705914005918710011938296881400218284304884611765036459309596301544252776782515291532511474404824052123209464338819430577358536574510521042299909236660418276808093913559071230885922947540882910744520743029803510792785661119466443065723722661228375191385028212061217996905836298361726390381384520401402403545843201825399464969188363312502432003960043756777094488661975026929709110534873873482153393392194904667555416153799515818016718242693346500915941708578912563627565229035538805697434951744510647621531371516781190734809024601234962066898447856720363739741356306443356271015664795821450109446301479987149461375714050598683597431756795992050213533241079477672092624179146476654772740905669006835442254765062722596734043462352122666630075632423457975904989520193044284501284327416456159956645271417850064003574291194985160033452332764122137562375071841758488422484548863595396964834265153082602036709051102196328176313190657830766463122309185668807375967264748967847465803512475826756088786769874828957438313835131799361699663147690950773339627980779082859404668508174905122744758265500622819148716326864112905369446028794548491424532449749311740485262927549717078078232731570144317492604089005762222597454770203827534663892272321866493335713034688120010470716606568808243292925301001172514244771461523974094917925739858119508326953651262273353050225504943191921422142826786117016894548490093477303459494050915316298926675239581805203503158665979472042885977355395476105912195283934351231406776383944551480625782806587127247280337704488608439486385257590450366499504521974041212164829077611911416864058863615222782202571040005054721486692107380165094412579654423299132998220327825851597245539525451860111159223349043971568775564612990439972462780755361284134238107167901793958116259862562819785740225510207322511587906150736424302528750202575990315197866030850559370477023120634415027653330428983745801890503798474133191231513609779489300287550107047530735156999598799624775396987860989824534394356871178524027800777055710468025103483624372942202221477374791180440808911290960995680601292394935127416119736558260708677845127337010925575975511078265503095698085036096296121240657920197497719480209312030267073570368382011515217845623451898683458878205512531958249410851697802720439499739436406519584019562115464919815120961889263009975127295014774631247370035461683209125903655451395088482872824910493527522123367472041244842333138826835950926600958051634859912133649468979769010000206283966278376814062992913635529106445379761561197833670308475836494911833386449939608880922569499100155146415482687573610601050925261976020250925641104932139733231768651512689368397149137511812055233051222398540474843043524485354161610846874605104684426771241676353667412971711793278606399779635875551000555527684230813356781860441376767584588028238468732610328410150632903139702366313480201880442231373019686265315577092394183807227307748112784542688992329699697903857994038919718444467159928158807421309745273161039595534436133055406203080923603614597642033770933882214378315251546589050634502125558893432373961364086867501645142111358953656429346486898745693822710216387457555143830884282150237423976909464348305742158199773066148307405518669288173335179525377525411128520894408213554694795211585710082760760356174198395701586037114414995856612051645079823500586784556142593480536416189276557196881708715959680437862430617447796634313815196154003976844922926849009293451219597206697159191444574435619164698942657655429278730816544979403342976664320550003941915003609705320569895772718735628363358699032415801396705084510846597634650901514788449726229769837410793623322961269147926772745179632401081719821703258441597384194311010042197956002891752218799491853889229506162109307652144344947434508501239325843885304003122108149554072592158398620131105054418453575776622354474374279907627748312592627634210851655261778487633700247585319373037547027392733826477601153063597321970858521871208912587643601993703234295782365240123051988887479346231460810284138561464645987396605030629812987269246768922107547687428412721302456570367937340136799033645602031799804475592930567661463540948605291312304940709066255775977717870414408254671058082996977782036523792968413675644718134694593698814724032207625981907252939674417329830286992798206936528013258938388292447292652943134542726673820139588162815244444902288939580499486038278097438409930406744470688720246866553396666384458355207863128419770669055089352435027470218256242773962791759982348199322092605219926170209961033983115279691664948663557080771947799929580083804383786019735561569350734549925366736083255643665701905348314088835781115286728632622927096143040165902952893900597207125527278512309230610235996297246384137559757867684236984073829515569282644176838298355190606223091788144369483688266756969838536640241416061151504190019628014946531834044191313466660348479746802093893091175720619360670303510819922577966530422300025511558812680194972722524383435308434747043682981287907189089860773796929388941528891897962088195675600427351531498562166969230844607648311390562867360028037229990236376668702083597757410898760598123258357040460858686651955472159956488312770513245767718137997167618327723402565792353374506331763847770334480306569656698524165123148340126731513302052670333587582104192775272797303275572234504669156439592232753166396913867483942600609096682984431901768807635858192613550555841513996695421703678057511956993821658631528112617219073100958978601209071583109217484808214274002580106354329705932138583661582303084936040464242399827197823038179775129585406074794479645334797586638997613889017697391201963842367443331445898027366857681044852765757949902077696257373180533673323973751966075599462136559645216788701534610371210650925197464583581992270934420597095190824389374328177033405621467354328946794997740021555530177428522952178930266900143266413029282540586431029317304656881815094537984999465794454470260208633437234884368987221646733722797906163857378149367307148913159556686769660236658422739527227000292326382302103652584238436845883610672344458281040033112577241582105957082152602022602003590031228632510139201503100190236366246673365569878826492269860238079207758468896570856903935933076587696234394463167132209607625215839986786323571940435122077430941798780367709046916417844083752981581071905593106872148666832342046174873675805916143738768834958148190071229583777516677219456340016326581739277690722277206399959179038583557760107540083011173531524140083982842113474285572063727326097414215348552798900008293272794069462757908753411133641557147731772668865594587827985986373302549335078247896958100364444497395868753642133527990680131289383642054459922133176961125644652361722192163773691564399523089663552598780846847639303742809624647149527452785355004336486320014401876594640373546090940697937033453549713438081681597960015987645861983218446444674716240580680788793148854910944523714112406485984254733758487105392395506348857296035704952862463774382549572682878124142161864517686900411468188213460339199530344470842986333827144815609491762160783661026782130556188208872910546401832211940175428974536753050497963675200578670749870825436469229215245196499215429800536282469822292002931366203822117065607039151451510868796025979709124594348571484476850569188308417871897640238731353422392082528125541445041188168573326175010591592126595577196669385748507737664079355299147726674701034773786726225064539280571512946286900677801191789097769728283079875747159023840574654311044976683097995042909330126216156332646738203925206940725937513025673890704772003282940599371737165470110205710221830021247827402876636024224351698589049902994132174947144771728041098757295176421353473533466651376539514606761190358138418819346419587011826439548339899192824378091366429389764412901150691867707220905252993872436230904080587913628920691682376615856814589286294419518169678312289634071682588573427393029005189649764315041322231067180164698435684089616828286578259817736359178450538804780627634252911428315999287473977618318911568129104065543232106725699339671969156036264788797324669857404549564041658844937942038389799418819634781174698754865571539628797435493545159006646769464358402412582945763142071285415878478085715339508218013583019318148263593805901961969832802854945829252591380774448535798275146113260679870690345936094657093382167621298866176064037101352665788613445949697588019872030343318279166803138005333220482820537639446498585868610697534316131885773037364750538203183626977561131239301818526119736140724060029465298191001546274926655632522699363064791169694399961722601992448937966316914173740073677071135765676601384874517448922261643707582195801676226749748627633033976595369485330394874237549826430520628485440040364826966416469369675144179634260069670688881484053915077935708773879669402170593365712655631336551104952619216454233014659786179297434003182306753279307939673266698847209878270456620409760772395953110322467749771459132432552967446761643078432485449306143071356519274580906596354597496547231765290527576158341448171910930123251111597879059554703258572028887531823091162584894337762010841462017355889576745776670663506492760650643245354617196224791634946756430626180899210709952591928528265785083268276566808633975718846938179559946574485014543277653594873842317970098264232506001931650651856237112987267207566260032261243587515807941626145966254474951170826848487881511862753938508520574910983915558439066380365331728349591665539750759944010513662221674621530523812833752721556256572470174525438980902341899474510079150781164440091697917512304702570702704152792831241782472926813419471028445909119537592517578279257189368504769537277819425210112795654213480182849383429932216434124370854633343602291846565577221654663883455167527689121762145865191298802573197373545827415772742036812041220201866103337833054240335826974683849915307038159234823392833319288825314345708769946828821464517000466960213697934328152375803585022867368318726812311144185123935047835130840358613085567062086729831941405268611676309547970861968741980932370191786650414584245008720722930521628901347524462816495578657542748204250920904315503453539045200446691179210348370766338877125576262151102708945467514524975976434268746874227899746932070227349389502074889688912471394615041525185426303226474813459429033592817003411917911247808154785186072653330963907215557504735557273964960765476251762441412686251922953961481414614179606334863164092035690330073377874955592578925084679731769014585745794393511472845779641201648339094298966004296712293046550520159901669779866375886797060019672491190790031875519342496882670978264991930028292630683998286036252943491130127428038997627945538978354036975519837903704660111893034012604737470494132037256007089675233092452550744283732347392490785982840409992382106141546409372568318926007455479449921535805942707415841939430587742850547315244226944838676093964642332261401167605736743604252688845075466741999819575552401853072623144219777204955645033202074661991234970409279110086622275425950627924327252980027322185525372001716247535724976201858428251977271055767116407484896389461286637537058777718350191247875017708794310946904877991043848962425843011895001671905109539972074712532712106249456956046640657712412795309673427513739811048440810934898590053876138840815218737739893057327036048937056204804301895065006444112697019823889658362616882547826083904410887623043166439778974969409654484286562584391282668418246253167702976443683517141500365522781554073285247907873115932385619141164169379928112228504488748496826419334964119108920798305757918394594075726384175632185979820435429354211959072965326969217053432609960379001484886408934483963738437978233432758196519428573726306397524449913925458751838176947526492367550737646387986017254250665462600660014066217831122488080329592703980088037806616551476175270837073145476203825002976843084494649519945970340217312485521297816467900219972544492949207441174073857879094779391115500812110016266239673220350006768326921449300622205663339201635847918595696508208801216224833316379534573650699825177216264959623740605736532755723342533930874272545243428421069743397338440177165762411388639802141388803637785143333733646003231176189609801761563948646533807616313175439095565069764707306786059016826508392087577117173636411229229418606529469673829714387115547288398456607807772291691939641003191145314128449782591240901689838464546779120153972660045481924215682355757153478988361581985403535466279399687881537504066910794178468493053813813307669733384415377615434448994466366620170661321116830551155476099106710448254284978085010217592048086382668266437118888024677544499627711550816383611453004561651835369035551903964555194099490345582353495258914982756945718799053252674589646197616763360542600875668716961558436461734145525869141760060701085668237023839204812132431952232322951344710676201392958663075153354830617604737533033830252306425499298682181180334615411966738496847093279368642833249574736750455406869481444342524822220252882345024553086546446655954412502410714721379441232881897170560629152985276317527067834418066391969107554497179340100340630407360921106283398451452476279710716943562894923394847062788630416888074722734088031019297759783032463469267233897125956250192274706241437962362177890503267571770675245970457368878150967565781471816757592998989549276291346812832795647445476252631563726116422322066518150217169346437342029143050054791243093878926154886252784809625547283622474131302908470101920813604101469500565465057664707876600762520940709861438431659684040178939814308884322563301168718168881436185638522366105734587242978076050629330793389759198055555130740102377129525797203993061416057015845823750119334702288244336667084461957409550836519353077204611387517051331087877281788285327253782291496284605922515700586024373090849032088405929325543617397884592872502695004801126609678560752008281407450426959455510273384824426054919183438045483938488369130649192448791786172480202930540440358717334604027217844452045928472739321230505808522449969795118626648892965608385148663247827092171409010667466715771358604244786600046929712238878165507842076540735593605205691884824541821601705289330084489538816748242337401163808704318591109365537374187187072802081302372184767404211398688833892466344090175284276880786561790018301238366930892154420484290610775299860993503128283562376747723262872447692481748862719738828023169045530372737473273518749704174247451504332042000135433428551041428806422925122195351519704076766823747317912389857337444844252639040268567739440929225873289394192490449095610316664149185325072068770441196021356148952893802980419341709229033268503581430186413736949424674196824579619976180055348111254412710363773274280248034528008685472195494281209558793525133904099551124799115868335413232316193837904708645989368733224377678924906338528211592103310724652893298760872602867737855806578923595230304010783096705447175279920371905707018190841493939343000582907410727006294666451861267830541727260203372073307212706187809626433459206790064960087662235550120750339640116891362878539690228069202482994639314780085840251574003830386047782463327706282187824436185136087396249919624464879943832739415532086065328552127309359283773211535865237679338963259730736366818299368230935535889151527677659965263455660475734776469081244052127480790841197430635581805618781974285287033351170538112060512042792467433817961623450776860881106767411810621183356563066376598360054329412323612857573968329603165774711648676475592942267785335263585779980901840365740411495868781361375898411574578031743046774559721385690157642270922720349914839241224871490083785098396670598833145009346408938736098146461064461501698106794829701086944528451646185517616011071269010997708703283712933226988981811727410189842028868988803439270461049027484691074937985641235354408184449856394646080544142238152645933458795768506761294149513216752323550868451370035291986898949125779229437198586040344275299815130942819491576522037871135786285705217723274255333682349582840388961113189894825551428094260473493216373672161346170648048071039937809498262724349735883237422244935190468860326936477083432685719758976969981677816323345748109822481004964620131711228816967815677880265679637668436200628369358969944976049509900655095953204957513922733129380281042805032016760585205014893546849073882776956130883713117029687296287047590375850636304608840935707771075519380797218825331884159975783716423994325804192024939947945176328474759214600948492457726287380552680577222203927056002327031591514293679366226757704672334745615956278541556290205430483567690326954674791978958230740990245391320407833165410580087922281064544292214079221555437579182028462458776722055356875199294275081999185077430760396125960825430101591436036931446379516912177846157661042288856982728122754900521633714801111515118464644077721727345263336883322533972314022556693379856518917895382679756732242128432729258274791110142410365778698870231552774429156173315945985112504600846231022952452517950160416029466666286178009676977834409071290983530825867075814084660135193654122455515839857955406415984693887351672204673531142526600826420655164982998446360228570592231253560420053696879837760291781000380720923343990080246929309604393747135435216677942802401023818731862335554885836835410386340959677071534715550937847811702979291626675483514258186912502663211889347628169035356982905079925884972280040084686676081651613015964990515286612443234965480895660989230374916768868700430965668775468336493617812432157038378133275767632575174813447660365295747605424148699080251733589817209143286929965284085804131559928297240237217360099935796682266724381905395624956745393403540250501148651991985856136733977810679763449202936507419840616380476516887276048023944872054374430461136666642862329446030412636797493431607031689491146375182619160494181263373674392831952583855914487628053247298751779936519497405205590154572996320193077114762078953708303751992920757970463433556072064674875151257351243783226107505547660052176041545715081031214682195900441301432263113375978882536051174180655238027288370274740409137670550350734964776608620771966911923104311902592131024292977726079546557111643258356596251359084650131704169529766533237412204593487221653468539077667784261193675529867961172636509776426520807912051838994679677721236145366465296863368232383758623641024426529754281603568520899894847100635472229704264758006943626526864205977766970958505979171686402614487176405005997780744096037783776461636876956326517987352217409741026091297364247415226359117847709257770765845957008828671521445596261541665025375286355298188195309474627032658783129701813262278953886102682130905111769790727269229126320794033576840916855991404283277844886134910996584487569607317091704088551337749964769707155826996508374706884365354006334432801245997019145296855155599537822712988908329622544431263545573092717632703916889120362415959359319135051789490794335590510585012935372451788859183901461307921074025213048358978257078171881584479215951494024436354197770265038720991091193840670892743122131014043684767715695557885871785352204825631500336789282729007438352681918061469510939631735277096594774816002669001209166833676240740567735354061797619010123759660175166401840582180226075990596706428800087620917908611621593349269329344760097234432625091985142920644664964874397719960515349343796366107418984160206663719351728951544255077037692452521795298496996241866897547432667849455404203385621654479234262791860018058560482705800786897654870793134281075891099273560039344954252597229456771587007801832867656435547011993906516004292131200918452660653137812213765233473299154737140811018716237202422028826421675968207334238618347466105367018512595630952020985805001441497984514619558541400556436420299618377906016228747156273539645412114277491407467185755767338471639837635502965487791152856082383586664392277399783147718123254048011981959854706713978292397766768900392531855537543164392755715232089910303438764272243069354236088170638986710823154429441859444358794332255799027658677744087094766597807128483744771087409915103782800852987730816966595304743511419010108045861150073773216236413174077161499728156423036394804339957711428588536293080492654039320291956719201234391421729691309181000801818849616483778944601364385896776601388917092125608343847463314979073205287315882551400439188403674903778387692638926249775609483375151326923272267806778841789329582751657483530808542546635707716014793540718996050795807642187558152594396239448685356537739908931838108452321037384809782255685005561962867350313698294590305121825671873967204901933333275421544097808965164934481661041441584540453970687943733832634198192929746911142930546292861598488717281169202545609243937140821172064532602038657947751062546072363858482275828174244850069037085870170685490514456833544781095659470445781222533098480518184435738775385117887393547521529564582330625232313993173834319716018620798941815356601630744938774819830457727008556481856731356468076187607713920531575491476054206583621491270692083860447095321140814882019169714150021857222590314133118412345405095692445535928817555814841754350814876790936954512826883850716596075557548861259154782102166227366314422109875792780331587992675714708694370477519758661173145984429402769651963348987920546720828334750525837117879328311670760055057391143153346574814173303282687961155721552031997905699824975498425193078549504146436685772547867094665901213301833194233309255505308425734916582147717362289375996464392856800484476287398842080177087097127421161020559975255658909210792780245222144383362911274631530043222875370585416040505870050626086706881856045769005181918806145812625606560893479283668488442133957723530480748034358022505930437670430588102418962134259171936015740440192600490067026262308245005127051322162826036697576679029140594816979535644802394374860727393040496671367972744925112926374175591269059616940711845710331983887528024709934043919175796231459925267705714317056647067801832256173489989110537589176722284909438617439371340913288083805386715562150712189255575849191649333352903126347887987397953898499078358015416797949904628980511882863986156572978720846480864262493700083210910326384293357030361623422004560195359239731872776179426111225711730854946073681484143038647255194865767472476393302144497733946454129936276455441165568454620471210704478423326642476462693206955559050847858975746419259270632565182380919536968258866124384813030423637480992537611444956870912415936232097965621662168898687604173087934830968373102022907367225076327915884769996187002848736575321521832747402762534107082218852071636319534093581931459483592219980975865712661639172079787767458683851544282305638025257948134399104995070081520810266820722741002530633707941873656821151922688673535700834385861539072279961159685039824354813043873117803838607686939888462461915411416188684886300086696494941633003494163174626847273252292511942034926939969954794023286023746558871208936952751654605252200995602315137052246528257432522058540584289237258269139339039189959744573637212549620596544636000125499441855919217779255065346819009133452220771755459850461584247626415690893306688312392479834481632892734089785098592405013940665529504051117304622720360937646068797937793918725010798921425540031862514271262209455989172152788826101896996407082020230032796680136878212831571014863975186184307600724681604989103376506270179231885045497230641661529795061967269867272710573031595468957225253015859048405762684149475149614008012394627328836805873385481267019996275386873650025354073249704958091072826794997064147676895771453378076762629570842199630935581149784384402729949893553130508711179973539270343304553422628523220404856606345434952382828498254845782036849837304086405567165862774831875062593728241818765336840191820396035112942881083493915222302141407821033322796048887572202574054065544767899367488018540228221393767296612862623539466674872389238518776766832140268912990930994860989345478338536632577728491283750558394871119440947721360033688912725062679155993075569539277991699302749227264039359448345247060546724762994605324737186905727455095272324768476601017853875526982023187591145910588751361590022783212003618236656472638492194897156398067502092405820802206257710887149389513198207318537609820407483020123107303100484974896821345744215330790405725212241476147222287831300044526426959834982035728134037997896903730150528258392480189733329144360695834075935804410933042938398286749725346102799410124846051610503813284271895028048248637367382794066877360036762616875296236472976820720135386067125508955538748173627911681444178900728508309176920456269617381507807151776161442799884072458043261214355426909390269787749666226485614977927620191653988985902283492329775588890033597018204689867106457946544109216305263036492427363835013031533503125126417996499649265226930280818169372114205667655061292433859206624507514925655885645139287905179009429271506988080311707695749626490766070427083964289493902682360392670780186843558096586917254403029265075802127270681322810216211427326217544384688835192723388913721168786437864998844631506774496588696227642792368814443055725610620870538509234549591808048400777997252564061916520030666116417461158157672174115724665435611335842517765727138923879582427246466476442919658446312433047731128793739763404922356896030301591711496867573437831065112466051292677491941680222669718588142684977798905530172880710485457753448214484806154104335799599463034097870857499639324398773129429779090491021494139614320232620926989250082541876991417141765591557400323745728537156192006211122963991576004106585941153969113587814423127388639621496315116469355998894705177633240798543623284276922025625968485495086652041612281144315824049412096103198433769129635612053681718548507969771088780389506730115976833865014785022512420708212182394276400952398696454495649247106247517073172960245207087458127147543210340141062970573302221173266427395065826438995337964389036913732103575978674785404593188664556026346155310482667342163645659996775196270680855158282694361690939136992552226639329967441837364511346601451079944712139437303646138552413130852858837057897736799030567653886032345958789358338087664692944263082148810636311210435045499022980678283048754765702742594896054290284426626685512906012046412681326973573090584151789733583114048305591841875467156521795009110513535050367420363091016172622505979315816599163369485912478616826522389141068621035485509382526380656569552498994220968345048541926091103262268271776190308521811758097736048082727643638800422076675710555977190264461730089732863442344123624509307507886956988785937634042426681036511038625147552394210412731210873429340885225174299895454766758500962913072931565379521564697076212828322880704854105974592289093030322478145618948427545166866664137800863993326432372053414734942245901200437337091394093767205595584585414380833859432874205483198080751068231117834881241537445126911778942207409222997176838494804004929620182459943781879415146467805064684023637639986795642068592495648045601318556325454817344835312077534351914253989777363149187386885397114374488038930823020580493886453657879438991661180852513403164960879933837258250909615055529959561210371869643159215401968244736881658299670455044904163371491077349742450136780621782611950535299144461719255307059800773518878949308647514642669310588651716252008028145598375748843158262451924955219027887638081901797658661772595468103445191082559859123900155755671123436709435053093351637363570397148874704581263100225458372981092536762295022727807291353973150394768900917071195615099587336605015076490005743836864628443721484524618230591899146517278746465766525250103247032726673903390516306238637523571306749434766515854967874215866875011787530217649005279790226960250050750340999123615178249966726066779083605497144007190299131988033763513649229032317623064290524169155175424269758434811786866709871711321892928138517519526038796881919430568627861896254592469530223196097381567712554839070528235257410328392481256020405414745918945552213817916831715116351229986252624080542073949841571628907828584437620526189109372479743900826301945527121941909540799835257773594150003235542575730317371929574096497327190880010433295750997040947063813401412896140086669233531829762637592057773581224723796572295356248087310615529923952513130181907317014208063250620206762968264697747689192788262281366720176344835432477687025332392867779573039241468643158536413649576246507296145159514257923408135779947561113426634446313240792500798840792627681493852237776127591521316965182658928283234694026643036471496713154536741392619394497121751029111644972583173175119505188610280981507824670655150649508701570543619849044327218836064633311709313012093698395066331675812307664523074348539562999949482615126857212254973930331193778284477428068447932148104221131777402199644032784045774878961559218770147368400234254434255849604625579097054435608054651807971549950941235146815036943030747628394568813525144074829240781273689888596589281070919762697789368369884949502714700817749730835463482640084138336270058130014494091187714053535452918449626042847458430656771995143218095430236112851841458989348720572572483457822379999200300516751369120514568056326588995062661703173066859134817474693565617307492716627223024542249759815711733116612715508371042444177098750277068815315994882312506037590363927579494603034600200911055062117778389409240253843451399125267973059918053123899697717146140901186569201805285241598356545291781190042025838626062820808807808305414454921966171804993451724916522413884964729538162810835752378121703051837279245142959825059947934772976439293396718574652477839747331987137091390893637741164478231637440609656924697261174381551496773354010917877147364555992822338222435108394793341210149725534953416195833985669869517534921905311858714296920061871042308177541168403966886677296716297235560370891445722325581298302771590234082900773937316812341751971899353767165637743184368300300467160421100699190073038401214543018307117040939385599023104933412817657024487806881448136332278159374499724843148050200328680408542900978539982677557226430168861550625215589716521677417129822282224124177806290643069613629174565105813243690789936490809570878227570803221046042954474898474878444325347151726304670138048702430234981798277393064751749995398936702145413851596707293057635282101724560276538508199195752867035884483453076919257652985261465698833906926450546746749448850785961282023105081204109078572162250565160204797556130556277930918573307775114260633271678989086516025364558425438344037951539727710659952933200768567569520709772929674802312110676715117607635375392506374675839125383130600659798970675445706978178747474447634115207037956668018906824749248991462347913497860298854481825039142954423064302587832427952775010982733751338829468764633089807684392526502506399784953848488152484075428556543955540518732417340818704279112461806237533410022293950010657828548088710849718151089799451392337365248201907173341322232133699566775975754654613601593575975996505232173898227614547399050191265638474766851845064747080726613101330149865517689211068889015694343729650512309192951736919450083231459665335518692738881531037429816408952114549749900840277358347648538663121085051261542537635910960156599535210250407639162877110126713356364332977740889828801035859757808820459620900557494857356069441157927793296267040991086230006759373388399418314192861014948041078666525239148597332765960742440231233029556145977114070258760998712386537946046821504967130356857286882289474870475091573241402215587640264480915350148332437546823783367636114050850629384632816047172272983287645648270222406885070297876736087528887222150436080077566547819586062873782338971210075731540726189379070159849707000888088803746667406427199005016823905069487583569404223536896364969396298054190560636320359966807493030800935273617037306946688273557311266534380408185581990935842365310237156018988094496359447635551221516050134923564930354094244894743704622885481956556886239328832947029230533469385423146529979106186223921917088708666344597909929008711305672800180950425672621861012043155601985040505986775434132130288308406663414694498669526758847417100704354752381417794799709457301755742541528000003617989424527071271631458497808478483373911197055286388716370620162580471884242419100805155149421597149178486106045736451466897394844482124185468676011693784276128058527024578069236892391894973578551604390774915349053971718812889935809450375657655101041549800675937250505734575545321635374571246692672587909867236001488842679835984557138249917010201528151164666972522433692110432361172513935861230241499304000239131506663598219673456538424914268634057293702679983490338596361239390626902091648637591779148210861056747681145972145175683570986802766694588930420216821297787410455714777614434748767587003911560344450569700825111746774896546258066093202697780692157810692330286571351319825545157832415046996780686223660359590037581843132498613143787206468882326686430826369365864551968772160060886977267291010497280806654108387360886002815438945266285230991286584372540910947496628924428703763567434284497055092403222836671221714892938059881697370771805603884499387182530502152559660088875446964030924779507910958386651626130152564728481726004449443327377855948988078238149352751486372365880212978080765154299759439231365407511583824846219236544382951434187456065187102086621126378634738008471845806608233994976327076040997950680856041886681317405724084168553012013131939409608725253506277950217476508855249057539945986229922478088789768862504184714797238435738110417815090154277694104227473785787400474029978921117024311594671945106931940156413152781534857255836166752667195282536226550704376362010787571205658331816126740952128554358711565956855290644475421297690053688097045900022994480061452192825897549707640439405059349175059117830084470201441366319153339644963480509158758119682400475624573258039724464689849772759566912270662473284985108313918736355263214808890917368465952646247774032769325014663174101816327447637169683871329933225660646185779108768099576757489883062375885966096260796494382319631030468951045898039462824813091806080262133780266626922335033566818285920405462839873063567955068236181169097992294715892398973601888129566421443649298202822317961260329879759586482287254604872713805344102508954475837071747448419998977160931162008924657517593636275564781028456160092849690844826781987648539806922777708761769298283854563390047460176931071882470542972537077121779317296332117387880133184948644414860294054315777065820789635302588628482641106190932743414026716086698750983167208596665912100300430157570608313746042643458863524779090900314042980530845214372300692218954663459038639713568572269302458326104744117149659648029253197786907576733634189617199486328483463071217375736486989596265127000393830287415310142246552962310849419230656782492946204839771913287882575368532765335312330101004261095996646464232630096342410003202859484237994536163195861817640989282577666172403628924281961485702365003334337984991890417069550210385610308599049327733780762456829800392539966755424922444629387388513867586250151153514948626172981884775643533552872963342951327512715491935201685627762669235408601203488537813779344301211532284807438378291569895575264343426422652018844939540973328752800787213747189906107599392563090064008039921665575277564863721370983933275026178913611657943356977868456330531434073296755247967544666431922073834488051355470641549885926802925493414842572524270480234621740325512815886238358855888805392075184378635219459411805089898911298007838654086401848144290048543232175002171299054325326167647286653259135516340502239884381554461253559092965079206505221061213235102600907903536245809679347458257287144140450126690434576541358125443922142549313501162148438506172906512543181154260012992808639416969699173598491693049648606140784578493881402326350266796192866815479179777150620829089293744910109786644972905628134661002645274409549627234001975627630184418073652335331180340199518162308898682257632451209614774913006429054213358834932583141434501800045424094817056269162109540000410443031688524461360640014144381227032322607564032429969256839837294427825636608089167311096105624634509361340659357505793238908128238970847321313180775190172734168041737034044053232464230197721290886743966219088309930610144325105558925018362321830948662078477598998089937312651350770383114124927743304213627513865475697101665010971607269608087305064831570930299586758884932533656733414263014261796282097347385011665075180110994337753540971185583074118983430008173539546329439175943571741361831069779341848643217095900339930152863258761530802256057873338598521827916762689651995636898108840304433695234885845939741232467774037208006187444680787903368404653762973752299240184664860841727966216810361302371941895897320569999580963517887971272853378237067430054788157076358065326710237604391212304281653891390526441887446850694234622306068533698987074193259345612023455080230964435356669061492030341776021150977041431129310852534904381072648406533255762139521952077275857924986463983315490659155491335361540849871073331493646117490820289572360996675268101358255621501847573791580232812174120286930000232489592951782175751940103798474855185802163765070961600509681427627364703185513706326017746617461345083754661567664465067110804918279738363700221443820492011232534185713786086961782700834002203597060785372681752350383288263788975569895618281414201989183829233948906170546434763847140366652911810989172220368267355156405701644840029841337741351293079244700734967669193288528588484851329641120553335922324845894395025690887030309396126190164698819198162402778550337071176162176778329628158687108300027252989104750471695467185671611203274417046811978369932875876656686760461891595629931867771737271947357274325276547164469727189906766873171646664322809165501106272962304262417376333425698834709520013525495801022995885131837883231781104019278559019864155471319557425933076742047124551072884082440448072143726758966716714886152537963374965631744407740020045029357804727537318396434246238402135372393204682173021582909792484820951889399013876589678707627928801425830101929284352660960695484507095319567327412008498823683575249915668226167363578467381643584573756587792115261782321732112140789133652222255418861217100658395425770183067087822425058253955847212406899278449892573229361594450310702588108445038767295582938864545074037560918812020023576151509076787619184698045267271315436461372921408566035694796787217982779820909239538528877929538615045842157803813895783510226435537280975801008975778690414396422028898898232513501068443544998372339736045328889180828367584576073037433831806136477836496441812051879504010628201170468734836946677663063421691176784992109865128330974400115864072659704771673984342107632281733320065271228047705564395683454469386931346296760029432003870548818205696625136397267166713603337910986975334565737334233770875341512803015992821557728075196905568279281676651018353191091901062188879065690147896594922685603395948655352710653378479427993431342987109438995140103544102953212750205946436318223692333386351638411804759477317823195279099897063559258572744587239289284083251447745725359318268483969814703559458464937530753121056555695714898484608684228468670636371849644839784274923832127158066499544975359609740128172398079417523462338826743156544680704862346525000953879715432240093969447972181953970548136224416468602872264361686888908428052407914738079512649906212690840520146800249658790653460937162806109744348984296587857111538550196137184652867235359601182206219201832732248027216312415262828808644386680373352935233356076735782585791786114390037140805779419941495200788481169234771827693977200427860192267599395320366933195674950711488205675492177399569722875598499767594866205492089088692973736135672991793493867153203126808814457595869422442245812866385170385002929540918825010851216692104730988856922922409446491575113715821472763644165825056284087972068611629987382143124320455627860844249171262351235004703734031930538406129165661701144380139519849936265418283312120976846155987987305460361743999854462586057949260175156940692971937945404801910236176404071731298904755394406595996764288320567052498421470212500749533617187561620440060290412258017928937935918612434021575758608027892071222399515658733360682160505776742453959536548721908051681220651264017783080391988114629493275946247256887465144763989347454927704985988809104134833725600613704372336227129833371837723168384201253765653428677903368199832907141646539824288754267697757396063620105546273603310510944295361624216292511073881494091186026221976221104631183424596055310928437789777589817300822412164370663713495515296212223682036393262033826172895336659205432249620770566745430740899162549488446994543424243087044062785501557232046028312033117821502366698707572822219369632745719676028369899330541731445090294300710802593677513342088578358909000826691506134631165839217158155665008599626248723822526340786262857661339155604113607432577256808691245072993685542105191779436697460799538321914084144911290928111544783446029312245242320911911958683239649888418747963337417668855906493205151793187064596318659410570874719238550241951516829586806686294737933351995679682873913042273210417977167350005391115382312174348698878181136283820122129031075528843221522232892070588413652212615737758361922126129275999801629489857187337262493537851923566595558989520307568788923195798885311432906077324398165872852002710743790710558683375919920228899036318146020450802334591329601140854448329142102253410092334327454919277818120205413427560643364094897447116760449228378787694772173414059817684998960382554322977947359131089241148787978783201830649683373576336950270604751026467611748667631566701598080320671446801570547579933567172078682270777520287367577043415595953437194930773490410750755337408423040159408696882994587953396362464626794637703850793171442703892220372677956775531866260265057822660905457144954068632319992055753297291499544519437667633875863509324842699956433231498610907965413097361212151199848984191197735378597909183773917622263649829126818965868316882487114607893583578858280611858857388208978826750392134867620831538231324755098903061065937891794746587281738259655463335008428668557006457931857282934209650836344076223210509035722859548028383861433186507716369332846350031566514918032545552049915789289359290679188860798898966692722177780348457720098341928897887282788636455321100853437823815014558877028753064956802735160715788586673238057299304354797210101430820553869490491232987487519061851671884345080234249627098665865603567888509076798785050942528477450505374898879732695153030782160165207646871906725113112512164013976395056965884764626167528902491754281603943970095611559561532168394741086772886685093560158885372188750048365353308589225820786492383524303261662014083747809047447016336527007599835236305572567316027989321246378960732233835925277166280844279505890813034121642419459264895030349901833120719469732743020779824436703997844823678513399297043757844678263257688557590240365608010027900483386989318443328851917626947279036869218001764061818958319206953695064961933511419029316506203633328228604075558625616913961597791238122332411054755348747552145118083846561176224031512378463274919828305084750809607978331861761933058525101858222728388136481216071023129263216548984711135963729718052378477044457291656747905197389056085650904838128482591399142577005721449278281257411775248416038440154808027267393877882814662189842299631885587696896921767278672185472475848209012691725297429640386283355695151520148710894758181066189530320146371874296814724552525389728486280086514657102609793875078493941595889789247940366496435130817614463874013726412552696161347355916235963135739356732195574456954011863942498237350385370730861100393850773209093363466404482449255521157951304666568038539660316173052015684843185408099802850612173421541315961616138462147170856416116285327133711655823653932934364070910082574108261925816100462144432798004567830643771391329877378781390575575341215784331406650651828399155294977190985649920298212869625061471861861620052903332339164013180138813217548205722492275342679687286475866953588921704164570556689299572247474944582410971731549469420690832244783146189350403252726596012407525238592838166502438459030389950148403531482567837968670231008414546691967921806024358378435450399249864234013531378053029098050765784912418917975677149625779887876410826495819861199112662729421159403405456280311524337771476315203678176956482615171816777652684731727189331624137344911014373400086456687362380393952179772810909318321104825800033170102773575278581972425398336018940715872201323229643124595616370177968984143939570747248947126370773506206972202416074615905584648501695444905379641544286142922084583841727744949269171156578438112445258564838925291993694911391817678373954924397795655151405566089671047367076835205854557786658655446165005411433321921364620970004913510605927225023131601550290384146283479516506024909460325975433950349342037187885717139336080627258949204411705830270984217580345281207065137915798573975058381823871046632646435029711866306494853827921522903619141470370108441188652165681820667831059523364768571753046060946845667583374622585983175779745280786611553839670195955914585300116624570550951877453215054280865811655873005709948841388989488589209953651248939015619872846299690569591365354154263772027854414001920008093182038973485216060948683339756140002720344088492088137162652749703308146307383336914037438181691751506034644189527775314960025901216858458129199094586168389269279628040463223067688957152734973564528408930180105176513294363903441632059703596364846890497746066181973617789803897674089501684486823530248682822711674839314834209618818147888617715078022399060233038190713554042349340989894138580965148844887307208525882050058088098168773750898611421588239914973005490363599747917319228031816388888854133745007110566971065023954247880087592099951793512000443897492864744008148974358509150018290296039544854280694908625665842983935681859714363281433612712955341031584998579145130683464658891972369924807747856061621886109263947771732032354859814109676675431837482037914712870504031717001723432043931530453509431743647684008450160174073571989112060584457256884348427647229290062895904727488114646391627202353398061941592840353121171723455615655739933979275109902494792614169744208945052328731760966633685157311736038884727914606216214438510973274850940627464800927035750668708722267900298770724966547507553180541162671208693050780562927157949805029543331357725380438231547871039020895018464698277693748902131736377253494626767827321086023706516267590627737584467381374444858720732040187076698420470762375527579205522193141991669211213403208672604565008433368762119175011755093244276933192694571770554286768511934403822824600861215068234046689831232138384787880140779750364184432813315531975876243697879399047883173240011150839728333064781728677666069789818011399889137716875240120831105163748441585936229231646964064432156705854609935129308310350888237852836677952329766322969985733071888876834803986188862162433305932757636392572104412960857258717883077197395953022334694128983006016917007825987253990671893816737175120313414338141486517409254893340467651549164353630509670786852464260006181649173537908301182313631898391053481302745618609710978073124212388260060284765034442760099679032783478067696701405365526579254478117491940963519425438627839818588325855022067195865786688757647568424319502282029122177211885935921528172356814338415322769080780688118243097166631893626173503585878427779989571141448904390090723620322927157524683164787267518223594930633899147057778629556692004407690202650168822767885418954538425672735767302114891982451300135131142722663875713599981336447992483053647585064147654332162693754651241017190917396197981267733384048899098323896341900805956731368326279584769024457294240714323358974306609552307428721401374760398992629363149153413387494580148163854677964477470914763896906620868983482739356799838302827471908284193245202859908203353551016498037658657795109785918073372017189525386941490948287308101421847723137766268338517719021118190025291984308565179197092815983526242147615226634211908099747676332723102945749713416854507481545741055241820927831159899409290293283108303866675718058410976902423719537795535500772160557454325865849922195474562939908292314721205115458338465427563217635191313764067721905482580911659901202698476653054007239669081355341919712547960066019140038226401805960965587364775747951849390437721434344375394687357501229885402028333708418414559128071284277400015681603997806972984479067535640836769820336408585716759436201225099629756958895611883098051337559214824198397000050453426435322828086152565603148450725770602513828917926528890570328247905995961783197394011010938355137811445896735366137850513417974753048847844281793761109333851582229841400075596629902919001960632329461497841477038366293813939288074113605972540241041386154820998279246963404688744078737423114187082979416187320996488519946556925085338252015598352789057413899469224026275539214180707019202348282978214454131165292702938918032645615831535597956309843648126616550791587085763021017239015130915980587343501296618549597465123396549557088668020727806851691540376081253127035892902809890036289408694024058789411798489384263017109895511681597861121953250810405429131564113458117126538213042814278669636997533570118793153189278541806776382072024417018866087060473682366345882356380022404411919245947892892113701673835109644522958634588618497526871006806652130257382897183890892771401694800525057871700632097066140645135786778838184176290544771132319792275046479314824952560296114651683854234254052604427564001102311170271048111107774570322080212841439286014188417048322605277424472361391930138459925358202066495720883629116353289217627258079311814727838943553658548484319241335969461532583617505827934693883068300614258291118582185233580942864821226415033129030942805174180638005847675363074631632925993036331352247131324321587548318977142850573388771340819822891174354576692370796614120791994414112034248917414332292243464165257706940682464083011066964131966092066385673833387740073719458293285814146249947828913659023149398797834322412208975325620279893670399253243076756805339954579375728114146659190362581458003775622037432463205886526121375953705142360208072441296626169678603799869311461664561659214692753135091072291887357125860972805178575365535001505217527439563452632480248536993713180646622793043436481770685346521682125988706487889288219673239459028129296810282591137035322036970504808793719329499280291156212825978783276380211639630045398344469007987832481078875466241321931825556013923928710241564253371290815470565326432988451091220074118965193354496177591396715828687483718130467985692606818561591860909939487013484047302181513678917258933594859973466930500915818627159891886054621221034909905022462038154250562575291827889083234019586178227790523239528406999004299001110568948183726764818277957963754021223935760856516720673488849871134294920876497522706667649318406333223697148290162079194197691649697130172125834506772573964236298073868929091955125182165300033504841105573570463459100110418760790360033081133055176913402062976028653962494213663445380995503382218157807896280069032887051183689062070854472901799360037808345155029358238609014489229304777819629088953508629975338013852234689942286339588206158731264901475773894869534985500142913813574270036116381769962582067064616485770841910620118689806578764247942608586957875016376686551807055675007756170828145614682674620806077072580938452147642700097471380937233767420175598062267035089419994172261778256728232563340684437028427273749528525324721884738366378137765705346033633182644151550593729141971584614874664172525360498899075550158376113051078240150776459588353493878411416405002475458577827932532271390229075237820691667237503952816737699826946403022006612537218699977496722596170831119139653824727133270582688633828517060173260664907197414371269580621679811590467029807993810371873439659024718252633584755755019446981160061815071299223634763986674124832966965099967898747489155451262998929026269381484357670146413655333811541176302203669232181853948697793815981204745920452267703411947818142959435195791345869607200386311491362897237909135566861977146886096483740288117209146708284066559779117543355707575076098744774366878989086406169964959381847583770451967810937190996843306791025330503530699966759383887750820511846662294221776691472077532810562754174403279538135398222106666323600838587361965535077463060462871125105799217835474832430378723292631629160496277772289371298308209403097405450714446797197305132180462209303120313970696085658247423714822217701134035764815681429515038001009601210657850904169351358274301815334491442736081297135120597224661288949079862641821661636780363981201849337335805422350278925876118101771598081639003288230757361651907623900903890590524518598853420644826291376125385088610650219912282737872026438189493701600627123089457696838656637219080853790402528180454731753611098680622847307113913958775950238319221171438448779963895722676368854401260738751905372018467227631930786277325550099277339760836510756174614114773128729339763792373883996256437468340834245192389304604023453967388192249114142376361811757222800678911082561892795636722852492868903031494057805547907766875503260708802074953615540831515789350344363149290324398640954779708379187575236346451911126742741372939123755665731852125200332242809205223855734789061403643499040964221405630888159503885286916205369481994073182986521925703366146682684017427771106571234595028802152261556099899551570089136638850281676284958952764806214550278872114503416683892445382200091175969633510337005370736223202501880695559497546631974295491757360366330046388006218266280709847279692748613545464297965480214307518014516610957915802978029499310751183335041225976194819400122713968456851935271405144345360188070039447397150123115173175089529162058453297277592526158999984144534838285352772085518203536811652180027948272116326006409690979388998855796517201078579894214204863594960916914218990135557170307645178247855614610769164763831028575455201749920705746526854985325534100654420015141946546216469871420994861625837654335094691740568263726216883904639496725864260966020540027587197389565225523141211777363639219885345461452745592498393104399843442655119072273705552925061418594687000277774588418329745049855820194808573359164721081597225490012498130526106330542258426788948240490689925167697847951321038356402914065248915918818964658604880725805228555609738041691383427193604892366021772568913107396295273715646374533661796401234299118423559773607307622165015638363167779376314064707329575036423828333859742356666038183516284121327661881388289191084355555696655883471688400689049790022659482342626384789188469767965587549630080174454946073608382708313184349140660267033476179130753263831865571728174547033405027188799152940806952397082605612765348593517110317025835295454001261410241617374747314616320307614285669413387822988291641952919176930353098503723782903541424480205751875760731942731836355271715854152454101572525478482653311896085007737092365955698715146202938163980152595247809333135625336367615440395265163135295871813911288934996289830085969327470267657491710810851473631334241379288146422434608707074588137359184031171589991873455795044062640641996495581747544231043746884986970599778819956511222432522381871283631880409615336608261307600651376674575549344880727702485868709555797464341710764140863435841171719771686945372647638685423511852589740355019128317752179687336904320358106379896065739286952320646055783793610581624790177149835204135650388134551098692014797030093175276162710121979682715830608044533334959249380577909617178965298628530848970446371699026599248552054683813105061668527884587217916777032642784950860466312336777221827792288700455895789964527735984989165422782661291437445379229182553662083683230304673090928669935961736235799114087381686726815429381038411093259686198082252376372468942291892466206337909251099013245389507872393462506015637230171622026128934721318730050606990048682796328375469387593635413291554697701036966658256935943070600760088651114305923528392837171626973537239975244559656522847500538580106395494292372372254409466268380646153459880165668783917123120158144297581811020465948508179629918678986262088287473330237153737589212291831989375778546842460129675196401110135913102786723778751452043663926785057465093609211101092985334810186111062554859622671827911189536242249779185141337717561634009275636166809600455659925433090199087628230706782122864325279686281942704675711477571106767439671692259629326020485613964288109435168125573029023517116674524236741473081076088959001917152332540096839181531410413179064397617351934250109884220237104955609031292784031551075658900228922272600873210884174908321335540091835420992642192466506470561533460534602451547386724136089460894087922431914392946797373423070507248237671900351481077991033749203457091326060782315543885498395057635011017834580354883277891457502510451054922286905734344663276018544690225755222378535785781838776631083647950638008883059228829620376632591082962292394897921709661422157425270601138148904443595738851630220562754085474767033082846848324087270875035246472457728860404955401751491904722886626232590475798662941137775643308227071104806249290786261700656251148994792442150448826658568089247267064391677207088678352429432458762212209294187597098054810238633065175660662338295406093104329294629987228030902685194730030020791641566072573747370206955602569236922197502360729580475961698604163127984844059191375618553513887039487919233072516507504245466902957706140038272886990824326346822784523491034721751201032146395652985577991508731965921989057077377500735024762318212157985647754283850951665757974842516037705112589833849145390204518636412972553800165799028061456949266437225654617186736549489103873095832820070066981027532263726263434643673856219430631058940150719098069965057504650021573820457337492500093048232335538246527860199554255184725163027524727462437775004839894677264705695664196644878926421416685980549362124111395671808065672581980239444529100658793264703784955552329511898232896120151146968370669977696122439870508241653103531348518677354428936579962920496893924348679406060661039574795464525585633774528198343291275420558841692825193000782795493349708776077341378563525944144780320635560337304312011479161117202880951920038826357497673795834447001675974475885657248654047564030924475721852482253430802507930857688872115149755262351871127262448745339483777746138292302003093247704456598491872978350910426572856178462420415305086800617577436147792514831857670900184891713744415186310245117945607714855547401636350681289871353008672461560386328366202280840268659208588595107524774298628850512578288952618705264484048568643115985340908611039446030716951492810762857621314290080754344887901461439561874168773005784998014141286397225731245467070426769557026420370906980649646422446633311044197967007490134536404018004966127103099005155889954833118263285327560445737387159398325621082809338932639877269980732362950025170460481831580890714986974126642856808306618623856404755084616916557320300163697760135347963526342189323037119914799891747208933252491722790434813471403600295922483570331367616299657732585161881396255847610251045168313896063080370973373389093694294219978533178049464071058352689971764811348855167381258988169037719046725537546944516957740408574309246358174724803768184470410587483943073836169117769470454980445650962959822064852775989564472768468466236976241524422068581001963900558662738360861692989425923269591324583059637499020136215874054182604400077646104970827527233249769778885082027684394121665380212503657626244413681671607146454353145539796059928373207454698299593627200653701078979739432960766534515120011805079172419472847900060477866871395545779314404074182019526650923706590525003628940055209179998612731309809399317952296394044378881409121963513742720355496024073733751751966061493470265121830508690903007393290220655948522008779073444589871493599654291576552493649424915130307223605579876533107054880513034995426788519486336304369756747611867911721213105169925651990256248227000545749236332768586059938733005966803051043548371412337692933555218422420635762928303853261576968993943629925123203997074442057858889179668996677362864904610565539592190565636735608616693814346315483368798158889516139443397721426183882553398649679561496880538287205557221352411770660489016164523594409003057420380450072981103200408708323021158876680499724988340208466039773139526262580119917134187856567944689065223669081470369306557053551479008719952276776083441863167891526457716255723084529907050947333802032130178397128066172249756583619750010274321034904658978503090410395366837994340895238102986178157587479427781780976755756448926803763625525326018238746957128041543959214949912982397167263027800670937964253006939111912788500551524813296211294169352629147616960893324971924063782037689565875519938401736007275283387690767754577707444178859021648669408132518887294157091880257773862941910154016369499031608942580064722428848346924270464612480535709698539036961487999212299724360668978520463088864959482573621215838060375007255405737642014162899151420829744080762029152226577346862962635779495280966876861413318803751805398721721280518380999781454083901726365254790491193479322165105307515806196104684083838216151487817302072454236824963631665740216314079914737131858440643088300268316574698136857495865538761784220720542906660897429724775199454990277386412021013361466611367854188340448641557140255408606203676263491616886783065757576247703302980687649797040902262999230395897298702197332649227823161450955213705345208828236110249697515733960647061509368347471568994054388998789945880542076719216030892355726411328564885675842794368442693936727350768960333483263630900323765397658496206197541445335703810550315515703954625349164649163723349615448616422250242124637741737646477662574816345287306020329699268945008270326656262858813520488759551653841782362969540465100858771952147749456151820870348516401660230367043774905500638710136405812817074090355998179696209880839842101209620079796117764686302144278929893375518559060666581324803046068232297528286264483959410155966154246323549805392022710538255921859139908811153172540923011999986589617872549850469562263319458068136759473981130116613088203578918835115513789468577580594759922104788389918684682731368039442318629500952823996210037407428818530169978269607586284265379528674073798898865403834877643740538008975214153726436642006011301691248846321605638246680820995581519042899002358075487901868978857957772657120659338597904883124351859978683883134979350630225610947621748278586532990585506235080220739865572341921520663680162571644357729451697831546947864088500462976553279240045443899498008234003408494090701497301431008932790453512993562944145469597541323303712271605947018152047502875032979767913525092574454387074044801502280877734974126795013810633954893711099526835063535654237745250442421133111913687807169477048778953230181179932739179974981273417724693901191650851747077135570739197058412737206867442899078483931061963172113537649881710124796469350297823968139799639346711448846538289226520670856961019370231388210877169501625596749252163197301113206772298705885955679735116114019462758866262172286531309662182904987545090132455836704909951504033575124450112822317021156922545818995496847724112760060128609778214622917593321283380366316982081344878599515614281160323348804376723626490383539629773953290082471509846670815885877734751350280918271149040016751564353423731736113165293022823513422900720661156098686306893456432959304454362202828400128269713786038933414766336321066031942085824911005175397146969570752115569337835023339072572139999267117709268558286812518464067008438525334852001552361954150397192028244536452534296203450522435781083024304553491911173754043812347293447875880665031951636961243934649583407622571415877367808144512385345142858416303987098815753712054155712575811321435573207878226815922183180237443704222798132838977525261370714284766777368597092808607334471995150808694280625174964245926088707868830623500373539597381311975113620464066050523290535108871796290747608678513169873039482981396353697131189857809793706243432652370260236900136586380170647397740215215752833865602130427351963007401959884131441345421062523316506555023934390210402513009743470488825185525138693281142263359486345748863226142208764251655573347280541831362200390192592883836179594268765863973060856387477721864596732007084281778806963008748025099213383365947842971069916337564816571808457799996740002606980003336333637253846108956957595609591443496968642093759509826760644931680048864610295260379119653854443820583601653268209673722718818188856078078713947749271867459195159249008676242151000519807032144106159948725071279715539946239893291496986640881005588943811713281726008611425216064106157903803826692612109445837648507195998056965854928793686489352573691772643399220299839224987147958083659043540428508183024479822241821495514797431948565099520974164495185176805770862575936656998737691150618166446516077962411136601116351838704344497255984651297468416989244986589467431307823119307681888440431169733704197574196505130589986679158208364836945101551414077438338278236642999365088777495357081516759216982104075014447198491349833723407103177106049231829280577558680244203654933040644142584337474769351847796734222399824703716002346981054995734758768902611381226556350450674749690923225898757044132535102733083513115457810719520677725282817575951839612370686707857404966760563230046213357827173110226766443237937508446583522834527219829187967227469163851397337850967862532385745228092316678682635385524762510609963887364269253250665395616385206503649121857644498009673986064005835801148896687669947554053526943702334257962177940570044106987063496731465255463804088665556971198622492019312980293659647752311675318150614600062167463058829271807362118699664229173397850129434014032273825900578130153939778465563779184362092490620650447583525518281881368437278642621984037297211495466888826599825340273772422535477347818328785505886737702781667204572357898417103737084795805504823771445325553529154144390196667188200422765704787312160962293687912335199494110923361615222259619529582136808001497373700922209920878963111078429628161314686788231270612535979380550291454985825368224519960098400215405965511978573067601213067933174939717611006117649621821918599020184668346264002076588917208210469399001086039138987310541326213559467816545610813849728922999811120813579271668648587799134151943548033415591870819964182120573195993549761620958761564169935114886715305102136992802081381316233672265735606102750125304931006513954665170716010836214551718279526456796550903778995356776785932053589420960735775237632344403206959274200507127849601726311201028571735696242859584117814467468170678242096948449764554957721345111953602273164498924233985500912559865861206402437649384187789196383007736743649135182904913816692116310405978690895427487576586480576852143059360059207151721863633728502073558252633297264030927241745707352652194908001582759066071551580359489359871949421727167056850651612470377331659002896231802941232917765939351160311716487901684418468101181294165414890475714734289050112082506101727903133393400768699992093746035599455006649732970991505306872648776970017843726408516363612758790711127410324218378039484864802202722757579604193091056681180726420102153908959906200017035397702625317544880886049203823587015604334393257370918679465861469336071315099839514773957690594792392775354430426002967014108644754478851323400607195017161039849089797909420882966817899010844635785485640654780424387715372754158851371269360388098431820078824329764257716058791048792573117737036620953565244995015191481865025584747537572511611549584777215277923277478321994360477190172280889286873262934371489364403888121735203534946934249396284847064844334748195018430961312070417884052612284364815047538746278841569849518897138798163562229848287336904092822506912764022894465920652719554144457818744293372235236146778583851239753614989305333893816708029823637941896963984589084579377723865123384843959514491645802743686189258432283854168446900536475660031569015379615171013832309837217422382879393924005847262714695851642221104756060534397802509131080132706008820164297707405686814800669970791431862092872899363924530027699877624311867102409715045599746300442110182297201961707090875247539295191593164418484905438689398446177900535523363214445810196392158517226805854561984468758949104817205018764472988153060059599625163598312688796739419318522316433202857605508179668464218653883980431694583961241506921436747621261477847881521840920089137304542921986956073199502873704467670909883586050884361377074011092795480955873440777200631317592796631872549777768043274195144281463414900807882563162117502541697852805051681277667036114002625669502918925781618561924992382471525552149514333798855286578228667029669292394757503752878142681057714089586133485550454182623856601545157144169195430990279149723172305373068548895719763654659471575281861829008775567476356459008935950980537155456265483003422553795854766704492429278686543393362573004033706500746573260637520243420447388255817623861296566485578063424235424104695734073888152680953512077095958971829378218546321515109204506594805350572439513617970854587766664625776433581383880953663218008187271216132844073839896109854676405153219123102820863788417044787302341044893340111363922246123317648922857551752107528237329912170737581646886990856001858752438109543784456460615971983903581350186367985843702173112568421849486221218313687870540418140366173842087749535733443312326106800383002876002580577291844707726518345686126546243401816958122145894515781720381917864467229046876734557527757220369837471974913261433574517821267272868276111537438386677082222653142870103325853373298393776016169798978598563912052569931959755728164517513043272255489859239769685675062963511307014866951023712635814905241732292612577708462337012151176469770259283499660486700017068158588500337429113091369192449332603193327093434044625996353215237640522788204553135957094592143633519002642387709785755287612251151257233868041856600357390004146983524714007779632792094698676184321962041517733631468294194994564144195795782414473671891301873172097405007301599368838952780890093487517970123287086586387997479673326662537353353201883278007069725258141891680847497204284387632765191088914269386826716202216816820233312052312463828510101668954781364482208248169753321010071049427278745649373519230182517942033507648074261228446240928796128374399933546867956033026968626746114983208860132720856727193815546578949975091314301058257494312921582431925558520678822039720782710307462933990021780514373416037695633997216362706111558196761237968658854433840855134303813017742316001753638700605979148412320993556601798138763627422023349476739082099368006538337873388676495065112150630943874269342392931721708047377749712043918106094163819141249700393154775352089477379726797369937337381336792108449745197725525724842712150130453925545834050185858065592637665655354791205287914085999042170769417179333301063803156617297863620650230638722617541282924782417856740682747901025067424609146897919318021295720465902989570353525984803427070909207628305051044638068624087877216336105535163159198538287148466655278664602402526518207608638676310803312026633421749813123781337490592961590487211116874146428082712977991971691492942845371615249225818416143502797672982151473095929799977840074422984410816871267507642370950883050040036458031006149996616495803069945036823796581343808021610848733773518920876342843533745102277230499046808826203243585808368497432393952511424272191465103502267718292102113600817764831687779187951919255955599001490825117493528982695038607789232367244706550666187070110471788513766040314826931448867862232321272285380451272421995187092987400768354229922254229885388917059556721566338145848867394851112151582332163494914354063423866733602804304695871982680328310600928015351445386336456420430714175631490765269366726126467709276696744071312070355681587565766613770806862808413357167865587295852719832956632178283828676695933366690061645028358462947869205859921068184853565798881905238248911963230009151962976574596138902878461056067097276283327299263244244277401622096594487357328981361868429442715279518558864552215189558954566157575228964250342480026533206651165193897547304297598182600547705245039076870476778977593078800447788778086288067946174344651758206268908060849687311964599588971737226499841001988920116267964407769766089420231957647378288175727247043923221450978641921795472293709530734910286108741099611125776983773980775378833156131722880979132865551615491787044321125463871450573762637226573629351717986025383329457623787183409117755465493625414481256580943160058198237421524504139160233889560247838768920632765752707434984101965767888437357697380147541933685366730255626490595813759426215089331044264144538696364753229961154913464753688386631796070501556908563715418780473407619108596321880012903543916502665636484675687326158045178954842227654875008412682120420903627665932062341735468768183305974230819472794940926539387995134198068812786388942653872238972582403648717884598529909037822113621619021181378607176937530991474076683629691438030990507002646158514754667628845433707628205019150388621129716552836562324871772138781554685103839405320132720421464119637298319588897652946962891146270891860607945375013138120024829466659523309165461256422737467722027360112116956726625177529631941078006019809051181419835025455193112805188071074333915470317347693817405687464915020214850390066438628711409930360330076965939811657448225951446594335567574245276874027331668338368567556301125173685222270538775496936377944614039701217164186766623039730423341850022084092230600057004352670060122754914832689179732875480335226323256602831621800075154528133003092759687408436273820986744548685024956922841603831615862931863806164628173988685362166605631824246610308134116260203530380201857007749387949188184059702143351847908649085600313818719835031748897868848854165069349038352376640908391639626424347737476332043766103258484218965885592774256574268184934318905344215784238389279476166629905576008886558772111305224603484088594490542163928960486727816495436322951052026001332224301852781028053675369388212245621772805577845893807580316040537654305209325765769687826253189919450469706330450048289277991760207643378795755616350014331974396461684239461131609969389917392463743139564968737187183437691006989334139630613603992562915545618110446073407712307188553780378539792486659336140350474222718153216701041275466205805986318085293837095875359879958814016666094571582576005318618854189007724588813249269561038919940250410036003578916570200984254805021240718686547492821347588878227290757233369069768453410338741677302307077596413356903431552663451296725148035237130903458285473550571116162229092421307881925474101035168319360355737191514459301166829974128996924644907370523619354951322456602783107308801662593040342669533915859796052996723380252658757931877432615005719643152985640336971862155894812288625725064137486618287830541661310487765114129401161745623549015757097406833216356599844697976380926593432363464518820144651062796227195568423724152995616124194655425688363627534984052616595031710111386530910752319677059070837220953750419710076907303068599346418671159975626084355179947665027963545308132295941179560204756918723599719415287294427917807302058605212233957639089535883948885410951543835083174987713000994097646030131325902810424168833475328951146830772541734587099911258909066847104145863836859225804654890384646895335035662113153147280249493204695490692850199303552633589253823766366238267109828579483349563216507796114878215938758886074158929783130319764479043045229424946135602564968119595861125037877550535437466855652502901475642796307108246956575618688963604523443554919140911564373201348591232203420729677580446668092921464767572861745085085425424693297977260417338891073742773346602049674510400353675974630943370179641110123259242008582601025097388302731267803024290249202869549235110206878940610104901457953084062938525789042803844567655630535759125349513403048123478309877792319530674244614913367036173754569122338468179198138650573813503810296586516740032229790351404667484944522791197970500996675696964937321754466970487392534255599954648005968339707849927505611620215894554130312164317914107328239440792678127760720618122745957673058860705585795769389743570536037671719853558726565935445291779397561782976773641364482921826468444262949189465926585556250409554146505352011801887028388865117886507420789507344155378845746492664095924627888403531271043690675491502274853462706108831619495381847557336079200481001534661150825284510725131002216523813901679406527545153316718307937711709964000657248239210475483436457550015301111813677730747060045139013721135560144262835324558448166643489714815969856805257809957784204348002039978157579427157427906201535361402187585463657149281655155668686498424665224756189367621799135626375083684520594266919452305165119577459504624600658933102890286106086486774819949238972517991340304353427122061864197023278282496159892840415875312125278908970260964153931006495662252059876981195132227851168515738560875513074526599931020395185503720978482422137300626506173894752728626844642939375278454617803595866557132596878756712576470694502275307470563556133613340502251005526282246232274418629565806268919607783185247312575836151922241773294689997027862254272944036432741514951837159644874413133883064973648114521059710746871375039374475706380287437900911402531689583982766654201246732755838665865583103378649755231566037156990352187618288570180136306137586587224427193724379843341229747888232983821998438874162692975669974754041601988004137028127687748664209120979857341572418513711045594241058888394841624212784010508452736142414717471251004232079995132705977734843413635624263688202082821350127389251769616483083822796798854176534538607493329804355109391276381398404369898717001688407420317702405311906897160271013194244300711156655539041066472286335069381651075734203288613326096104176490569309519377846300629069889484449234365830655875507998115325175007451753358103294154833901775769627095537928758832469383576305728416495904367740824573416478198871728543363987539027691967830670413533939597073353876671638361653570333912209154490581239392448089253476204646061150269940717901201481017501352403336930007635623761571511619419528110976920659742491463761614538466863914625734753334538967369094142048033904026314452159750107837766132597440079626950639005096982646477473062940611198884723104725632340355247138084580557522052516619028562190604564626052450177975326642998428156231606565843412491579594756528754301294629317662774433874634890238865749012366475185088943740544379577367542961984792847465097502460798985324613010004004394429438510255915057449247021076054187354062429125059803760599179127385288590140075613994635187271247781292767274956717347364621832379766031052071774836090957593352457420295179755699553942376006044533299897641480152823078490318021281697049212279937969358361631246822034307944366164202189270775270725579669408387544896753942031084173094473379012874388884412446997401637367932944811482576893260947761000410575359192284888491390421567740031255613470436061940100801879373649239965484598773805128858713343708644886732209656750900357713631580331724131995603129598054969250732827642887976232621338534323140019170075425309073383968054725658104431089914070932658567703781155971533363268240986804945218237522596213829307333011097806875200423766882732094737417393040874031425885843996523382763188197992202980588957475369307950005120630965069713683338897260482186586827959737459316200804834445650828536569425390570343065699103015332313035701907655382076995301644776630507712849304148154931877991275622784262669353890109280481950968308765369529708349643903507159879686822100247629869710419037696570562839897914748938331731307307030581095247998679018762807369971059173986878735961205223856541892367719597116792890419460015893609420710429714364319027353497004268316550136493241781776311299077214669437530142828910812241389059980648584709600163810611603993385730334963896627690894660703145684707568793524000969096870028723018960616076733284106569943636926283197556974787126704029070255974959366136568369778691271430659653489756701477641069226053060453645308395519741783367274257348186245267161270984133081116905104903567952500672595416216594748005301502714833418345655789989531167653437320197957523540252805900469766887708651581106883089871721946155531247668633818330714792120278364018838099797518175616874024688375856201036737180482966361159884666918181496327284239253392838477977331995295494060992781835109656171901484757508268308482488278576101593564659412713972549863281309581185799038465185326817402338977176371470692844119651736080572989902016027442034837147735733771409018783084914872232385971241665981418622474832834844684194558736194349953321641070618354520507361603441908808064240647226610616664163251376776770187828733079639404609520562066624287465414952002722963636118122230711409420358655087998699687707219924113589965869335227655496182239101059348757485593435344083873496731682683064450004147179264591921694659606113184211315955331673439670919986326590509154587866616963416766122483433676094403031213919671210972919698196614348909692797274093236860011528735942689330498941277563144733366225173437196736496550162569560049960603091276456939551164685480233256528127397266860907864262734862233903597359502825077321218025413428046798512955394379425968295335097082402031104066245655608765448517307182851468825827962151477366201172924429455280260179572533030027254340185834745878332949769423658053474437012323565808693698281293157599324305312644621439045334384900753725973438404194161603081239788431558740680330796458307807445583378535219214528104778036957790254563247768385991356232517320297965196123981764477829299667763381943805366668389599405899122021291295349700714510173809850933694546801915857894401740362090895416593587295275151866477050986827177379722670740373225723637159887131779588460288917388927748414363695596837437112226229024073416331448221722351361438055641951931914907199557578195143466789013833930209476359847296638307815518060786129002271761188691360441257866129450783911601587453504033056832119240687621637764430590497707246770281861271635379675012474441233975221675385660294802776969650534180252385523391384461879672339614559332632416278158349401437762033709580070064632829394378556274924942302104340967568194406776192116727776039421475120610554130540924340192300504799173853057361909188331970302598127031607310592583865951965143808845743776420647823453177905731831718632412311296371304057975008620986685689015203513715015982869955698729023413453810311299316913323840667387369149151994415803408076909152007355669154945866412949054127466629482396851706642452513870434951093550459154941635163949919794279655899221317920979808484674670973872755310810200982062451357338163457212151868952896643452386784008295482460022046549606634109325972769029860320661409278494953405743706608692405841072905728281322468223224602815684465366605842772135213069944585592666217351921018405780601167147179625316894920961262949571161845214871602434272531043396947781836558342428017634765913247001614997092500422029988997969457051236797612509770259427787949507897286938272985332576944092728362196945796384311813487337779008446373723327378126404351409023339365196647056810664617569255242402429368355546640702251105612239626919942030155393977526081503053145323377099159182254755044058651217547897165801788891761187364152201352133692538608238444045277398086289116224393737622329061298693081317332793711905378963870765662945990874235052543115481002788380879911102246277015554119765773876159392557031857429443871051832348581481594064203653642488196486549708988278010298609416985987498236834130852051614505344353706643115199186789989811895568266347861649123959127954275958574990721397931477491581872035813321716486558357568318540973964277083502388582781642029825925353465194019468608692648578493347191908944970153945342906191506798732053923989246243848483623173260955390899339829544969867043606918759122425928615413118620548241915191247778736435612963256213997536668721065501309512737115658945498471169359731216129752039390257789509506517584202737016386617929071917254000133137845724490173113913215526026391322579919666326626323653617274918404465275791741067783859282186139898318314773536886828523181284805623289100476061837167799929131095350404963862946551154742217622666643625777353854455544245567329686728491496726373543587759987264144219275476832557147760947887860131857042847888397871553222590820312865961692996338627384335004970080269755217548914897754220855096044494121535426122880760305125312590484526086511730206715715671840201114328276005597048479131187600221446093748097784278589973391537500659872577677351504525128747056777028734182108720828769722146238874997430169348483586139412432884479624594565966186010300993045830203480405595407456161356476839286393831619924662350736641580315319325505830085753572625493326428179614104080401524919502355180960575682237006782732086524442403125885297448182606041404760382406573022838352648108736504184916547630590777931937538974572299564481178925046679630467392588276437301806914709290230356988411978991064795001438077660336605683313334442167945807287572544913302868977213107296048262577721218712754903245886550043416511802952503519562043128361338807473862141366890357069114310291890127077914958300896044231928919906129020600518183996570496225239369370218344518854182201833081003413828658912051319771949374590381926614712506224262376262731964558294922265875717331842344119046808192634303840480398201522892229359253958297663941057654508864548329083390822987939394860105344216396945961383815024407290035341738782424224622310332256818996185752611315250716201438824930178862970819216267001712992308255434991084158186811661073113674970496150692131880059116415036996582316119866085135893713382654733393668025844692485786922778014997603531836211684397275243191601144357591733735637400999220101893997319394404350642938654780799149423495066587582826986190715501095693390319356396599996255332061994362647341615361843648533853747049588508493843370538471560630055501840927477770589303684910701311337363872799066816954570100384094189447555671305030456886769313854261005338526987003301107286095977404068229075112358922928516855066158419218589311293861909936674490006060068011891604282208943715513980086798342922126831957232430386878196830507562365994171129430082891817812983932677127592379625370653454886940965209367233372156731446428925993937596044822633453832286823580355502376951544271273496366615226703392507261500419184500309272479291187728231594272290042869628672663169463438754624260092338167164844362334497210935970856347222537931389994069148016193051993511827712963728428514710000005831037425852107422380202742726438509440393402533144310280844419956853235471229117109800385370648556959797569035590450438969754380991470892798459829988061814017066496137013251349121738418812534364309423206547749793115658971953042822954196376398420122066408050341866999933842435570721556036014075683583169358763586660075919811149412075460013619578485967139456633435370737095952912135592586636611062713680137369692911593113252274124450319748865999887141651475053847571423966341552445572633831724022367848943777359442154676213930143763717594148700099685944396234070209640378515302645518914948104922967365403121304737066067672996488970399055845871616969863997182156554013153072718375700406403120787862660346422633689994593149277585943066229852951225107029463811284629104817485283856423903435699389893372842662605994423353929014404821094511231651972740602907127199755584501866905365187650644322860660131901091991014866536828498211067450368349109185860350062336301662119286299490367959593407949144902612486930736397237270232499533953283272410820094824514707146511106684620469219651419630359930974624748654855850649273807655969799774481872336058004263914968210553456475191224900787865295476550983562583999041066638668067577395141505313604995096227296883785172662005256797260153398236198724672905148643920470021173796325783185554625773283935633337070480090744256204874628790372161089534836980761291136273641270635982438885159533665160144719688235698074025158345332591407106239141675522888184649840043559221713315210315553929415280487041678833919245484672304873714964136577965069294200731089436444715648334805557858343856524179428065706577964202215735069739578924066476335458339512189329890539953604141320736606290003146656544333993030264981407630865174388789723025391075375981640838069786243037008248512828213872537671431871452768223185415602615332046541042404352737854295817241402049768183551134265595087292221225652515126753017069307490440986212609047907440784440000766889676679917017176175328800419058298795182522182396965277565933456448335150636234998328823467991822149202307928590742752009324182815613428959923883216452389026004654886590062062648564212428480679116955532355642136664442006110073222700753085631985657445327607738588105083196866164307238392954201741098177469744482134369715693631187469527639503034126905750511179997245595609831730449631292110245452559023654139508515631978362590939973824927982694768717042691833668438175326791756710624670988006889322363411365673044196778862525564650702710356618715540769385241203766779818665047812895046648338119508280034079508130869824012210998770124946747712163777433941565322005698840553227305963792592816805078460284938887782497893605957232289896208444894898524532642245920948681976856473796134663624947338588109522638449665664830955645474669608612093103941246041885331936043695514929868057736862765838733805672633370363439167972576990677238346217355873924996210880311054171166425388869322222939825488913946732202832974531911591209145074449934073781691846677119846150050189486730110527277646436449369587168063248667730476808406419228402597547472434815077557478663018539822343371237538329784500617015843284826270136800683733858097024197533828484329664954289064035092563966458659797402872841642838902967035881095939976651901246502313369796677690477744647275483534286203907154650492305403977447953596372245422080328424720745666689283073544622720899023767236229634535609057110106173556421649631904641207043046833005457727957740474053010502865328759440129694474402003918725549006845172362257251168923188261904850091064160621631966456509520820165005941748581659069536341572594520288331246347481632872136019479220602140366256047036844931659916006789804892648369751531244975439952750407502900286039143664763942551136138926915295547468243651880292275932913293388746199379315175245344381156171987903287002550140976138174043961944025165309646421687699738195720703877569656167328667335595884532026064951473960878509690698387245961821878542181749832399375630360656879180518845762359064175205748670003700877322375644095797440592314118585974729167249283456675419500928239447690715136439458286574678798192391893913517556534095168888546466684306487797129814796305274100367813012882572945349182662061305430591188863534689866161595993324107552823910524496839369043669852912617214358156057320256806466423591405320044105331409558262162037340100315686287831909803554847979596887313525431116748766340490144060665921666726842594074020833652741494215575250675739892669794490941331928355784949361541329337345204255234777291117774201305397232965259282465596281708285929753781616130129947564026238281394261793311233843072940422576348856031477447869145310431812766052867780618813367258492049062914719304389186430142597459305283670800007231660676394458682772314761423284217714070119234778599398551780347175632545714410700982587580459631906364301467257874301222476344284481628417113647101579749972893814281328484514414839963597700797151242820180063320678605581047854451535179462562018260861096702406037927395656439767211120334865915633021531970583144101529625145986816647387596418592984077500170365891786774569458261003880521102255273780701029247080438466079882572986284718533008135134639436563442658047769763632966147886012468774820447170460489229580152376295335488057961847436105237862390247315686912039195316315555387307691145515918805168251881054962104480596511048950246895065870701319702211752879897084173126608641078129451167017978255666572754329379389389487173527187088376930881318749134180108963128125923268134514693193054978586839236329657652751793010060734225899753352465817045315637333801470375129676703694148553828042888067473034544414568311433863599303177871211503869093761650142434062263948407538495309713579884794511994810794840301116064578965235027606355748752530249651174143252306391644621947704160324503535131866169409160133995742986061930471982462570226102775787557100924452900857839813493170014572094916196411745141500119924044673531986581279766887729188840225965514383847433298948379922941526257134638948248610539805653916607173910024562096161630896837801869871770617226516925291569701640637556281347090139828426746849644277671980089979247747532986567841057083902481244717517636195890046580858668323355336720993930342409642372413956015992911411547150603460073457534145238696649862522724449308481772773866965074575594903779069361194085948089866253579364840571463507815939762788631009273064061796170570371884233609271661519807754621102627264875259395698449831608007695109356025646429235165722353982570709203545887829334300319354647708602639113699439485072476597647949524425199258468215255777399940064482148342909365916403093231476198501789866819867023240922113247938766642882507962861030123275576424527232083775889418208326026163048950536121371569359287852046784148960129464662479150984947562880476312904461801809576938032221180986715086791208306114442430932529600777890469093870681868266758205189830263502841490555984050767558532491818844566348368027366941087303794247840395705293366071771386306575743994254285941516147901575584535518379333010127906126350951837319501849371593243372367543742897212687551939120452249063510713677155437770921221611245421352898556309201417777660326812610700695763179509577213014756073796701287110237455171393272855791763293431417197942270781922191401524974790714379271805524374258736047046967249399263126945502070818504522205719317275094416636592350612932313232837352017905241814197717879396557948477053511276177589306995704815292847745634562822000382683737105234652054936479450442275246976836673471908676485814358566317372209165613934784763761721030939542377757888610432908483830748805485193650563306210975986607047689573457500974265746048663608263302963788820197485843554294943236979989975956956103693693455694774895106133419159996468443202980094702458400728491135730667699368103131300722969907096896581374470804033273830044540793399899883899752659029541294796870345189430289817484380012962951365746417178047851891562520418993175725081118429378754352510214490324238450942306280062948274191868549464181425303173060154195963539921987130263597835724124272901723969495120078265880135843354792966413714023596869247473525714955887350639556561297143604278962872323394091335895950237628039592108794219672524251913360667083184680445470985601945322201494497269525231396843624804230571112399840032335588804819432373197462249531815989379333283578358181784373260351427411548814352594429466127445876181569061401007417664444474038538117474742081874991525698127293979628491583570678521780313752532121411629054240629301521736204540600241789658441716356089525102877127803565249210501907407276780800198023311895016486077330327913521133021285197293553385246671708111722294323616913900828082823562460099246748901892526975427524467489602887816369260227205722463747921255997554462738263151673892357230087725545045240649875013553356319819224524514874319948001388424346654945595383746769367492064897235191627750122579430856898247655214935988111473303264327158759681234499735319144838859834921453224721530179606589386643681252901382207619706608676723559400809911862744309963317429994224605276801817313141177421123386322137028415701973114230880487893738254036266903223582832651926342262675437630772140676706941252023417451208070587874293311462238731146863293215479353682473562774724597682542349619191341277062045520141989482449875471078315863975994030480568313135429468425148436329381907205404073614547077370472218698644137682902848358125979271132865109029465053480323236406478450287900445183503285040317285968520510343760162847067560238853899372688575443463404143145577565904226119321608327693787132615616575648952590873108290998845823342927224965864727360110601414333213388714851101089023435698701669265072721918198871462149158758906934243730568923196532543929865418181516897797313892017258675850162008278176821620905976178384030162441787028527892811288727657871302454839544086392494159860285215067008214180646462275697042024773704089658084202994191000250955841067553073294596853441582292358046817361548007143979973439520192975678847272728485133436270637798572570225901988034417270471705124160777740003408101394120129515489703060763634160223130833686291721052944885954838108351648056732038123476725503918047287633780373558558243164067749008606612392160042495168701762864086878345324003195743637781266714839603947961942589111118915579816087462859675843751323347770782945959585270424400453875074047227594517126202495601846605017873676813518305078171540966655654593790012480065105115429145121794403231273655884206211282694024884650968787935281080821669743989574157753767907525115447460893925005243515832581008476386585266940858085877566716846582052293457518714396641062415302019911739489877571524560759128805515308545888920339218647045510716877439383567439459847641198691111436614574374693038307667204139126646431455820569375248171693726466048941292764036154006649964538989029794942838222703369367346042897363251090286920126334503954104085308910652326367819338083024167329578557559199604234896330906129871310569266626300489943393749794703390339411859914947964832831494930909999630638020250597670032125154522183597839544282791031907653597834336449838147442477842370074550290958947181747948070338128337185426819935695905370633011938047319089226921178258035386403348929624386209854099815866944617859505420173765562687216602873853721865147482878727221284930489940217003438674262329081875080918911249215435740717954173418876871639932199160168270480842991040840116199189247108059162166860445578003561204790278058241393258441960041737864868490761678430056444168087966084577644697424662179913908020828411983731533920538088084862109391300083800538412114284782551746404037110288152362076110831575488502529659818994313157062803663582212566007934559228846393084037748845317188954937316391897017328856607597238814771216740003903784523709568133921946914048766222181305811648028698499057417341665156884500453540166577549340069632850701112956789820090088596101779702073601998085849825472737538986621821874375477903380483818404870202050076036119986738266315892331479732022661884646925983316394611900791112403247042255858765430243148017374758898051608122779580132164209146194232804212954070395751739243952284809406401344500308823109876271196999257383993528810959657068368624948824692139401370740418389650220677476064839515196155550404995246925173995266772300544713512046686361191379592939001544903679467602021512380504663373441779806812960445298322565452963961333347277954742672544045981541825580122563718041074476984255780977992273913085583179938833465581640609119976724683162549736104208393432090189225751133584997931632450033787497933692239276753421454676953252342166066401400424935478757930894752724468436895079859787743832890136418831927764042787724886361132502064135616916510324788150815978191798764644111043588293500277012647691620445293411448750021254235114350596088283770596913858699610885630110871213167247180915079883372441558826137431044902321124906422744517199543001890428579480512951494077094646952444468362529669540107173013000231449350968025693519169642069999393910172362252252432899307011643728215715471817153072508160204461508287306090226031486955258656003353897400371621591693987823116557944366380001361525033324456456711105481417387912077769690815480945956982539613568647830665675521827283573263889774666792910371679869765618388118463728255896440248350358490960676734385355504325152386207249933994951783679652616192174540788226319238724943262891095933221193216382457473353498280990435216862386466719711753085559641133777402866269629065241794305853470926934286381842064375765979954131756735432038909403725597383487616984100905194657970657086198855946970831499950919828794454079756471473182122273284679055296070207509753307313271118077463772539305395682751183394203763273597264711679625242820105665580185871642236423260143236115927945497156318434430820159203557102568049418129687623224248039877501791959801333541374078446937574098940754694349555906676305867653682651381014050785198848531733161706206883250481019846883391160641437444093540973030191886501973123505210066599588112141420147292146713410097328637032082434545460499242625977664537923632195710946035523459187644201484295415213284400721370516963747838053141624382774688275907330323387081869210916825541314335620147345725475959082167450015490527346630646859767206155099446967498405675761720120044017749350368830147868948143924461788221002938415251038520659645553196800747160479979584236094170582383235282632584971152202119955894281779822266232309871167127190424002580983664077557415331550422385369066288519966405946128685746582225726342229597626938230260655849422898780454696937105964141544342646211670384074233626238409239549714504404073346832701756009092398484358882144042383170986587722990458908465635658372407681212943381619648171102934355243162800165292479446577997524150774723435779515432863064102624176688739841054857701881278834503980227604896023607431575160540947081167052794106880121576786268801978925586591478379585105285112674728748577127718122586211776033771718452304970421321939092268996845845781873852125773068508268840493535395959287758285247461191727554336603172226912599385836105136482944371731873656281200376992820883899169200190899514618115650290711994733553310415800282172408236939918313667296777437340525548387200726858599505833174539840834855394830376284653429186748967614272820531632590682338102290889268927817546472887134324458045760765755644780433438361153722642723101231213309692505090384128056924298770521562285720826894577567148691513666455309300943017252665489844604681754832274637519804098744454145513237861915073352227637302357669126290085693885628186543871496897215882419801852767990814129772928743291296226526593651143355496918966364663674144309200316809531330315413551437795436805741117060849615394964503193127695871758908496496899409444140685191365360574826262879992106498932496579144660694150543862940671693985327051163981358366187199762762138541532473950733458438255388397323307834590894679186574844617074977500578921852372421340023974025346588752367348710621517142965885405923679518788436065117226734909438953439225103380332607388244876540035355857787148336064635437821211611619588737557786251176593379192800823274045439060674470197849885699080690978216613853978206834649763283247980078452672570694671883521265061409474948028626967477050593482777626875677432777631650553791312132288173726282513491726618934085500158643350147762883092303285688924970510074347063304464027901827096750786535550172380735900523343701464591817972611556358460119149234023368139215333794389892060158046426589739993526985428957244934415658149161065288210937104454969806222505161080506722017963291498626929191865355437150961949212381980481342528762620853300795965814889764991031567439471764077009757542468228656222368987647615727610632070248196460143720917997413022356415802313160778547890292904082257098084769294962588035880998461242486850142465026457081277415040546982118167840248867050319611835234654907322203490431945123861509715980674922633686636937554588985183491735214966554020024633858416571910995215599147188056290085406276953642873987569016127030153111423812114358383010885457582086320273969609006075627052269223788104488270751427684993861069986062025277741401814585871071485742328043088502287900252239182797185133524183432733551429634058244421718951847563598483786878225731684025184939741399125975029003973651711084170525301413496283200567371649103271237524457019291636737913076517748697674974692320836380987136559815068895421956538810720164220863753896307818074254148667658347794739087643900756319923617615263357461673373316575287625711442927675668829669311390923363922944214049978139421876113498630618586462856292701030227706224693270745362719222187638911360045061982266930610910418937666577486241228236820795978750764442210808633111651742496686461287396398365094772850226766214242327816079887080961906299673367822293009694224163961553804273836424581697408469608283835021800643797537227617677481611756660990383138459948967670096535441471685921551206401072434460101567818750914578144992102849658971487383674489068720053890634074707620002336741027048049453246768763398015776715737785371592478036354535165654342727118120860079254837139803261578513147674329359265096845676563992888893100325383544511792671404099505232432877410886151000563502025697504414108840832348031421422340106880161056106755703393416659938268432930021062806786084451634267746462550292887062063892312570787927325669832646287696646209300590984491698018951543636158209739695349920303311056962396745103296875642865133139396151982469534897579346578370874831036647404410978828219956056725421575989234740514184856512541502825068544001343399540831649824626057867500831327776556354589085788319020335864664096034877231449693208039256583895264735861537496520078481312336903289428325863314913055545465407771680260370149924535990481110609277673864086185575388620164629499578494723820441405826391159014365003397701197162967682859458020499336665544244025386657134686232193748053702318053981657042081642934658362499681608287306525171892949174277495123334825921545586245625585658882336023986167315994606860149303198743750386688980767816647579511893837832500516956662189807254602973807880521387620010054154532786766151600846137566276454101477660641914256544430212702413765148870617949955893085642613305185093911077978522972445811284309785326904127871919884956785014104300247872932035432793604024555788311050386326747957190481645461633758583947915243378290880878586830191280351005948950604952479950558649596758569909718458935436447805950222429938528397499935932334967413823276062138345353426575160017823347531078564723232012177884213559135981993432453535220062678968389074848449496934335861949767824303845390968804828290387920561082445772113934339894469987903333477246972026369915838667762722907874463732188432809018140883534261099190465060425517778673667033061928476978865179121442054603607926590882489930050860001311280749171314302352060817576488538126379479880173463438067578540702966334842682760667556483583768339678399531412157227846226699973460331437379395124307678359756827010847861915184119483726010223254551439770708566168104944341681108625637429868149207666051721758814739778166177674645755099953364576806642108474929914251041051386155538929199331271013106240538282317199836972622009423298081267658062340629372142229180587783801210193028638913589899598641681466904887198900397172336073069062715953401341216193394434143472400826275804703500512704978905436893589091928096549459423888622071855783034164605170053569128450618007920440408474479115468221580488480785109827230854670457330645616176213692738579271565490974402259979268907772408806769667657083201152243189290817577313638523302369282117643040775371401527488651173186034815333008403953383669211911771700997152055919154369223060872402724241815115162966885024397066044675967302652162370063592970578935405091184733271699606865552519969181723924004036505885596262327497802002239034439464145176893080490128799630970440157202415599577673228147451630197333950735189860283038949299781744239236006315915509246896187239855687475364414845031460574344960357007840305799252381565970623770100732489073504559740003951197423766745560329979767294900617042956543598620225564185774099598030344000096245805607664907613593971279571652568398770574014130626016922533400021446032442001030435271651538129945483745442536711764728835656387531021157672961654504021235583395522111746134850097462704691926790002327150103986035492338759974604616039262632059688102482697208483394219538251832617069131709551439610103829563991852187132323376721744407846028806384857736550778679420833576983242095110114022049783681722084271598434843579023822905320895784468705853539650292507165573682121690814797671146167488516125432362254753212253367664259106578315640964930967806309703973838675735344035825950425789102913431517425341752610438385980030905612320808642093027837574448362446449827927570926451339225243599481971610650371318374790824784345237677491784193996868838150768492113216217072756185118708055359342535939098785374945495092971371987654392429522600109657894293101283789069064851358637797019585404625584546048891654044505160722637218103563361109319400662577128288914055403785385967320025977653937185285755046567136714015764013513769832493170149965554781969481265311938934027375704492968879125269937130691356455420130238849796079517330128110840762136073624478851623570435792673086571393752344773967398015230744237639624976783004292941970505190009059696243899462147859577817370881012793910719928844888560756348254952776536657469976420324921977040335065732324753993594597764220859757896948321495338754298345719403481848721669735370098717865399559661303520077275963713908757410443004806724576272702864730014308414329665090093061656054369805871361668599306996536475018072088621617446624051687448728172273726422503169621453074144113993100366790688907758650214119967001729678988118703389417242304855553304770554609044510193012111521772628296574337812118493446479163242753336629680762455758811104692409379729779844202505712212510963137331908445382080246844537702443910381438019555670046629430623651093343431685488335851361730673683456708253088573995941717116076009950939167458946193555149099864727629076295041041330507838783334083518601545012555895784841530378093745885503183912869159471495411089908637922222185602523127666270320877926484866880003587887592757591299146507398547746056564885292245636196805221866115929006994594567703841637140622739413073583541584071137513204655700835911704326876545823288969766027551035654656323857764002977977790963028634818497648981987020011163836535441515457058835781481837344856052981320096015466598304201241762705143117755429721302048845565297080904673669923863398112165812229870650060565176493295373259789025452961811273494921517388796650972884306661408369151119275238143806618794699873692374140821756749489601780642808217266168963340715012535896111417028045330084633394278308382837878342820821579143615335967915833381166304062546382860261877744812978574949978043356269141117231633175290890420512492890723567915368690887629294133018338853944370490732677089330572416085579801615655889890412638891351988459220308715985538914758005672266777057926653463987211533658596920925987268965543099578465292725948333079733840762321424474664287264898422233421023409384140662792940943311423467167512542961124327702177841960161323582123114702456254539793870391380880450239702426272283737325661759885315158032157255867274810989778489349311215866293439077608636103939984233173925176572280548030876610720310239107186580291826052135688281054177043337458444301439948820476420709055933841902943343765104437185407587221791538938277581615691851863946687392259154754805798710248959880183116639710717534520805569929817446371427435563763831632433541020910076694608062475537546765253945032324318437805546196209230406170384440676943736004855852781123113666694509154183482261805026472010344982274988300390563883724407050408076878660433614523212874302541353434346769878821882239008045932817696370594477957033658545803006797310306324056193525434118300502049347273805091331626515909874455847106491020084466502255427201744321475505289268894923063556316795884891155369378583860982062501060747476513557920555188144380608646383383654490115778634802394352933106184980824331531060753281891402354103291741653669562745944748720004479367985546922053278454788772807017247091508607783285365201964359507655194206632657012691122023045867142331058720095708629166390284722524200455810986800934202424053100525300238013789995378058460649755170450892206734299762005550913998706377909236569659846157406667597965279699729293439076611534133232458647000524190939171301277803886332842784457779600612097032594866150896302074959741274381233339277397817112023151414272935976859625898473416732117414676523981691484392902550049483554428285390221222905907690543534415816474210822973237579959499284875567552291952099213100398648487671659024432829446142673984067012010810363467320867684115880104256160755049009402886344272812309896121854187945874728920481705604177876039791324285889475909152614152377791005318230105755048153296753930974138855035269008257533444950703961092585511317219761165056128315771072372058633387334332063262851982634413736730052807042517704728316049012007942988764875686292691211584382705878290804142740661584776173181897272325709706117891624197821021776162535876387200509431659732276542850553588320450710795595910398555661879466568345333125255072691346735278876586336227759355946811418461350132351834512056262052833083426483826804208097030693910907453695584585996121420665756394051241536820444407425731698666696491248445501944368854154734619786951244557335264516281650895801855964174275127896472118574646895174511841887137243025925195254051343980149402238617712981155506361283065311498958471035999076654212494714321603796858297356642885213987531736268230955596537841736885056107654734482002927433558771307329895635248417587252249989376372306805122536569186423963219020013921883126139682121933982317065063819568698154338673651686007581640978287604976632958032140260649345611163883409626019862620335780384015768290597277876542589386768575073056746100523754016052204057509272103162067451031412028979221428917141312683125856581531066124055711085366147072574718584483542361169481689406745629820026707506193558619250972372680662435805523233008821412728977716328177364740320019847877354681325120834343295972798857149132567187619358687202247862253240979517791395757188695605687896380700575128150001561211980442676200041027273022387016290875362573449482909224632056677113620205333003612351171846741446935627378326877075691586056588206929243307346399345227258906421465674109729972742485768133692793827389729347441286434839536224412083744530784064375253006425558156774442459347162020974440844030286795442544045746583823965622834186687593630310072680917536669452123490494744890537727416249964380046699139556456841239852154375859804664948839179311000403293388921526197592649862549857992771172750849200054272024514864170412690944789759272278278018501062496235231572229436155861899009954513187864469380846187156749872959545793913704567972828719044241550163396641586144474444291330761107526495058000112299309220407453055895763650823174667898475593807276138932407365193385303135109906913047521040076180459962540614508906549849857846546435116573768052911117990557238740137769274725858024364706586867861501308483252227216693213698514956483880911677417625459006527804977716761001955863226845467101642518068545496732378273992602022655509403374375326569305133430656481313826079333635562110957706229551201552530359441886253650599715836388243945557670067339228814819403305599959736686312475281888080290813930410128439777113985588413654294380198180521782439892634010221603222094179995129690670340550949043186232913068492852104082014731187935429915320576914812638971127490377125563520756112882832379294021632594031242888317292867875508483671192821903975356598417323008934494588280531478846875352542756379518499827344706484959427587709542537827673856419733819273997434075976218438102058911913341565311314592737733917037516797739225235901590010521418283998583080924102610504869521602070251179476317224281428800986713026699566287564951355417529172696540822563101110182108381250723088469530957308536209568637921272763998297669539783531791600805954374359454060694485878217576936134546269008529474457654843228206989067196828623459939825912669878117522450517938570683588294528908037504418016870701083447933012533561253766290025613813078803490846438009470264569263549639973633861794040778331602992660391676141169686489464142761456024670088505239707732747015024829013401871401290974581428935180111378487364675927102426999570733671014360648771313995474755162006314686301317304341736353774031726444055963801024797195747850543025157601125486667068455046703746752259160008060551238635613128861241500862492873217876743234887162986559155608096341324541619221203434998695551574158413226654741184113569483028303236672737818862688508895391765810912974332678853942362180564848511145295404888769872490607859375396268607825659303911097820627760000619605282030821666901161215645030902886493577770163895072749855728686272478715381726271400251683051917213049501586207405742612650343691076350791888935592401983208456029091928810942071949861283426903820730594615755964970864460057480845199591573762732156065186022627522920462578678354101962727567679324483664638779522633167433084084297150440457743962377030461149934526293477150637835288234156464131287672230000221320343212370403178629964281615075090213149380227828263015974624171154853113222841981926874792407616216584858474885036882763716727224109253802863202977900105644241063352342060037353894413143853156758920786828615221470495216727899967084404206126751525620299335183691601873743850426241714372770335819853171965104543421947260055905626645787227741618333421882660934617832032601467798135785047220011956486239139311438358487769138350483457665089223278688234452575461556528958489328961305411089788004127612283432991912553832526663373989427354077529479913858567278064157500216039234766775138884720973823821275017780599649394071533017060898491096204536171854993314577504645393254174298301037706037573973505830374592124574323803602513181453368074551158690377807312825210162223355641004653632398448067363014146470134707142344585995768972770518060497628289623900911889872323158468894987331881708041639971436122989197525115305946365014618281918266926111549207391738755997806150009929195379059540501075475789206593896305891248464361196654092324841227587550907282001055423905581941150308884939862654733077845980822078780323708171854454899555638058538103467299385146481480660149137789676796272625622182416418068330861279898075529045620143132161508105419671433990030439132437685898157305716334568790958853866625761145399649808157597154551844005438587015325354458661483308789099041746532461500250534684380924761013267646799202268814556852594518369116221344638678164672064242936117594493533887216141791555152775012382881560459780730717601282374489867588236254126855362959298176787813097259077449105453895553049467547887150227563309633203375517201699937141829791287870432668131061576177608650182117695761225007976169403279723787746916526819835225652174507356978782513250934525709312807988672094821085933225534159812055345888750862842003722417851048492655996029647895255329321892144555022632386546472024394726526266285265603125562738526130411827440224569781211536951296114681730229107824520588864399541348577413933497150002805843998801275541902557424454087196993785843388918805971511385990450507897682939143160431597301668188152017256799911924620298845875589530573903354337491966649668489491117845573452686342191486097104479425920560565424134592527151237326168289344264041071558726635399782601331305276701692902360706044495021294807104724003666480941292590663009566404015635919964796332868372376643972508752155921590105305593493342749431011002468631591742432855223571335814124105235203299396407978202139593948594409837904206602760071049612161532655779745999555655472302770647983434787807397554404220756836892561248204989029683044315636884017800465523577817292843573446024305276721189957195965671962829951058012028810347883312597510549515143495816875014744509757569885562200210756784989408624284895759754642983455425071447774240924963637561258740356616627326146979266734178872542835632557773559135589791894265992449964257611347733216602395133469272656845933145559016994536929720263036150596957973266429710597964287554885184967039078195434901091719843246795494217475881554661048479551896283269988620164272864681768920750045519816221646854912358267876537165449521991275400054730474265370403150403547142834749470471293869442906749203023598418773015156430203638690357536211829579401173159789014564303272418653873144471982945275784292175982375013258059526125753199261815142858992441588450533653404028435540597628240183206281115139465811450641762728372359991222804369211028504942766808817456305921043921396822035727104502040075373218807368439261950036015817794536425112293122892711281088231293147730398625409339460925318452513699870706151465280162032340118317873350138110186069718692599212079413771258788512631802421272171957359358519143759833916754046726166731719874275865036902281871452369603535264849109391300473540055138687574014312030872647518799498279981831026856784601509757582272303860586098431710471047427194449535443384516422714282313323930933441046560462593647429217213066325082937088226055106246037875662664571872972079673704122083235150996210406413234926197933539772893983857932662172375634716696835262115402622427038489565374924816026345684661213692545032748386353900657437608169177444292633279673721845347862082814335186914356135047077644659829151245680222922635459832135998688645432285886693728894686229692521701402092663469336524478395836767404378998613682050583992706783823968797095097561067872792686040050909150344487032465739752758069124986939609317254607612854285218250371378646630303431216459286992688810610751098885561494224270656570675505404743954361949780362606801127407973228628564942144295739359424145317872880010650270860133595903065993513128649287500340688455917066313684401853470458292465091897156182278946236535093113060369330542381904267132014736244739303754458469092731391734480527879505945126565432143814498596198953589895074832355183505304588164794967207957519388766008625246739690989286654890722061169446604837298558324844387332445827204560123654405665008360406793638006234887934962673770545393069157823707825972244303790103525230192855788300790226211570624374720927839005202174896986064049038400809468525899916401582194009435184483296597317106595677518814309728933107452056382219099230323840986529398412114904262436475167530859082138251544020076806434111223699093373708402827111927563380139861555333050388078831063313342442280468258210811914769105740841974002176781392553163232660356878481820239789411525301856879560985596052630132634884904117617373474090237157346775672282360658021949417177088367063695994290284852967168005744195394504217683512704777930170492235695044788958378219259744860043816387065362890416351139603675237059872975676522123898893219558198776787251037076944142385147826710324562746572594440669983332949840711713203926187381763956408194130901836285114366693653370442680698778468754295747072166252889109892712103124692721428906225888198050031006070767153589120129847729924149755208276260694295924325514520155156736619398994741115386816653948401722671910869685944655444210115091039133415049260749472682923408495016996163431428689804042166430524859985316573776747168643001197501602546240670047926529195828598549602370979180404390115933684487743387494691374788537607784787412319082228957531376589037385530212408587701584884557183684663165426305799719452677727056317170590917174372009518185264127061748672931967022446821464539885141441655397505191362077816887404316493951815532903952024971251604509828904443337412809297880342466555547794197084688667444724404215000683244676301323709841759975826560727055393209007614938314193087335590777596140964132280690145947526593267172020250537844445631279147812916621997044225757088285132778739010510488617420447085175637376364245521305954922311248775933188571417294431738572560282662266299967561227681691818998737960828208017605315900148170111940272689854362520356625858515500514925890946899825386515250326486860871558312752949424085397077831749230912401887577090769020637156154028571794072455134388777370315800067985986615594966108358273276343565399277606892590169098107378882313959510339405500578504854371575590399892532377065659181192906502541501523585076200795204667945487822161164079408440713332198562011408446509250573466210128780539862485354015775785051817058251690499715727182512857015246816236083351258011886312794016623679262062137767464675417319334940188597890379326241278087414089738240261865302439252590536547943149495620671970346596300522212796583362209303863593320258847554945091113077540839393473943089402942598257938039818512505076023914809367879727947327461405704362769473457077763888798202000528448265833634896655454764157746221580107663458311475137172460701726175415195885514812779123618528685874891390541722746087728181878625813104767879424686708149259939781222582152571455557020604674222888699455247140678461215906942587955685026126621609326782437915804736158608802879359108300054018950242426908616162566287790027496712444709225010409217756962487164564360249267884162950310930502902034251571016187103282232829989986775377521391385232612144371211014089818785090946435403909333456751728026671262220307164019306266604700561069825716189075983638347137147520688215863727323640655890948159792253924440828450816669185933459811742515883742676628838094004075637826720639181897514740641053102203617792508085786480284265775283870475619696224254232837680521182524714012539709627582025296003167603510659801146387073050801673404907385813965028139621015474023961875611109523728791467174220877104748526975977302556734611598221471871554875096276736519897415109778858579829778841525071583317860942480280923778273333305960625837177599399340954028881893546300084031859022596371499782509253602119011081091281618367926382643212569638976104459383719575446621145929421652435019303514589871661912257830426095787117574482277635164072823423852201148946282393814102746170334155812536567556438829942997938862887067926655047362046621608614532585947308354032804071767258636454755092613129575650014951820105269284664405089399136069474969226681324444384501938015875346636321764033179135142182484591071953048389856040307314261456954247371759320195166513185716003585566067758631928435766561057889024877581193423522976544902317847239992208375031298220082688107064435487535983001271311303953534999689151130569377696195470401539388547613920851261196223836934295852340767551037998057842874077669081678249893840289523388730784899263225225000577962616024195710862476163454294826548289876701278983330537737720014536528287535279892737971514089771591750109460757260535079842060236709230089946554901255414094965965681951814673430968098545831651677129092633839868751974895951379126161608132342552919034270856963555953164260941502791524999365302042816936628510078930387989890569969208172526376565409385118776901846886900629774536967220208521498096323877905881140700325176300621205510284544345928244510321084692496667616312147284565943859835038470756553434934900179096098840201753350191726850590295859645775141565762648627450309440658429461628777120304752968794233448378526203421259757262785871663262469703532239667152420391911529465890308569407467663710188385319269892480699198891276636727111318379217306967279414046815699649244458505833320653692021517943015362430286777351508053335142694876205259240543391422303590672241474026941822384701925860125039772429769584608893344286714784864646643473997621885495426838085390169954386513935025455454656904433872637426875716937907003312679856543990757063333014608508406649208305445565978026327623459864593872991308481082050023116644822963244506276431247665251177410476471708735058598058132942664536006733513022032191069798423897371560612909947623365480490517218669769338656414511680115772260961587022874319875480265061420736423231516058187159969594554440917753200880856084447198494257768556297401731846573048453708227262445563123812845233216837307268964525415188834322757984329537174487633878751951171616728113100576681840775331238107535952457096571894697804606683140707333050274871285208124528644876944185212793936018202160943132176003127706872126064468125500809321699670951952799582305777541679828449386764075751302088477429158402931255789378485968519157187219136668643744205181061893971109594240892144851913773875568665495271529838941040201819263222799379977249003681104878711226222018754975266625451289048584639628821369428913425762372848227350942008544294119656210248690779645495283895838753282509877841310024983226857848655905121356401246682395275448047907609129745641325583836088345488323238587750383699051839925823153084339875131011661321025440554601588341053626640968333966522820484029102315224438192849047367171653512534176257232394911391829638618208508576676329222233860451694925143488598461326596171819792537139336687777908761308938327270163056897782481153808298995954867174320558099883261271315511183784288597722623698797255687825210702969987199589064456996164629382641668544443493760790484330572010762678729185838999321204821349991588461386880689433089711433773763404750962840925850425411783401901233296075821202843115807478782674545460572432146992863877189520299111313793134394250329720826396172755988565605071576370936164507688724015992348342869592111669285002855308921626963950049664526223107860243008203233863590829645260057220525198111619972965943807240334356085675630012666880199734949735533580276951427981741645291436525407283571656074187106602020899351800755671761924175142184252934361550812969107472841673970113933559305688875111825605613256065460127058042808998296764696279032594620272671157852225567957767380750434139122085666064730983148317157082066661158272215735213416874078395154214415456512606319997110930493248811535255540920348447031643648455407045580102695064790885121473950830209202165753598100423173707580214410244783793284434035056089587344135771363827817449290893381126289064479394336465866114544419351506346288478763491008856317133581528725015005143682146692072136684232965270157361034010118876312132760868080258268001177704686234352024170226205526179887300597110996381056790100777949331750122650698781394652437504863054318200275645158050589464858833143281882049273354469107618446357218857502911095242683298575699604635574303039704703392397544620102044626004736366542303812482790654002885347629196763683943689665073758336017486609296634093099743584705332300342408620257044650415100068051228093318368565075495940271269652468996275050937476563757396623699207673974529605226810641785313816733676242946570236569578810892614864152353140283554363780051948424127133063633105541944752135968357407581125208496730745502595391906824541117149316504906341742754128999902359487787733339477745303849203471853524744269018213602939014763059007364640338344442748786658469268885553662586816678150975572810495183869422707981198381853972909027374418340068859199506528416695057366013900617138981054596619371329669411371234912256070534238628158161407279937970578474138329267093491528912297518762485462456379343888336337483209580981684704891708670029828808209590840408940244751234698888466963787837296980258011941501959341389821967076029236629321762602023068549396780568320709530030025370772160805360592830731645940065579552048149297751160272868267571282522726166791176186034255273987003618482244619519387164122067747022762812823870705952505256334201918918766944153707931650336524627302911112583332284970056800508082218549190691101850879874934144616632944085447058288217419619601834534146866433622640013182524647680988860108826575536675005884286710744630383309186415410516308854291870394910941293295539679006648704663772449611577729944035517114986634148524660134149088187643608329689814483481979685766347493305504371344153691238685618450443239824098338290716877748497073216810297296514288497406811895344840329718336981663449335630642901001410130933089436847902655829138269116433797694911364198384360897620970447555170519537519982924966379921604264288367495097080263638145888067607935685261052589694326861415525754635857754407141817432625829989460852037404214389616243728307913799403839078682655824203128275375167979121648633765459922645579471350361632536529420993609985595509032894567599015615476653678960850975106141880498178166292045411415710037536276236727855925601787766152172731709462421075448600351528845545340164852216728418661370157897585062757667713290657472087843120092012338116238334513784442494483401787298978234992981709098612559618356446274944048021000077248649202790825713336682177626471075393874353139728441985653987947881075671564450618177045235485284119797009870613239645908645240351284665107151577512034295588626184416199830160495151004671648402134783749218305118646298699573545853575508189107846532167594888300526645795845920290716602566160273026085034534726375247446943624961756423931725735794219899057945190808921656676992025585135237255615856932419764290466145864033282086322245933130224561424091655489633560459096689919128665686887166834748290447287998459361409534792501690746430434635703979207320849926490270931237998796326602901055817690737489942136059562805184685562866061790889813871642094440288476718505360517854477581199000969135401129375966407955211019558625664247371963927890821613156452970035959724758173868896906876020329666965853533168557384113649802703861825570082399252810552947680685492987451658535989303225160063059763097135379409636596254465488399907731069855466933795507360806551156132440198777597956364068206234062101644677212202223002031220197767744354003452269253183211798768954905566124390297546432698449085631894515986780249155293140517689228087835727537223621202621234830797360763825101986582985292139605253763443157462576329737101258047795467084090792813058349401137059175952766549395068264689795859734033461600433692345375745828198036968999956090394883085014033852529971163550001276799256194661850497423271115054403644194441558104707472665277936157823298549813639547015375831890346646043396876025583652493633728188505798063098666410739552606051701297597028140655898728546996737008175402368507498493705584804565542081075507228675868505128358980351950733292715894729175061662097143996703851699217170602862760500743209810197830044635982636668249215898634154178255560697370289050918701439128461345186370610710777702687604029949377816473768916139689676401921053851992225699479312304799807832579797354369437220484174132326383657233553604930257456560581793420935948662965954760920082511567602090878418006280896589297288399825292536435911128569607583111835210565855521680224170160969980048742507380126038168647354539134621331511097004299673189349830835903823291574703119887676704542511851608070455415638542014075966660874746163172806969191251365532025113676459250382736023324320487445930228441738048710594580810410173028612719537436287976667179791644353565720185510035201813846777389827493977372022093740670819216684224967454317374316696438171202825324046387274434020777564753670049508997523081274460873550206542094921982637403829242487614213329074788048920142330246135208648457371762461248331505250413115080069501777606658290369624034940189353475098586875104062462376616906206702111928411086228735989368898631734649179271971237361179466532143802050901393949538094026815559925487587442094082839096087897219391341806003138067591080283903506940245907126408553837665974587653480121555645414833407519468886020414533169706823131773601381535641360731214820230796456953741605897982407366258883301928243092019334228988834046612881986678678410924535660169188083383259059712863311115797159784635649501868511666327560843820212794384103092197891608728550327649784532486953868592349394648841326218243967739733800070375214210008432293087347292959297787278716762112899570002630270734537724087382843010793858485555409235418720582986575974074230298778477603925480695980320117482097158833868883798112742459963376149319350588518057582945744112419817107478896361309138034750537321061063952196998582170477149439837755183794892056412326743697844158883787035711017382346649844367993208518180183795362359645870357218579304442199884759658872596204650711439275281227743836763840353271723749008897337350541909031998645193981702297876634095883400408298033829791359037690719725872189564087188932159307240018194376491375799081056025162829583389810099962581896576487090057985484376447331452811294601137363874268262824389456380440857222340437420012896324374705088421831087411568531810360877586470012817018478615077675476399773500250992176497127125640005871074959139911743381709367197106652194647456809374373770189639392400586763223791256270526971014024285102046676040941815461712618380263576536467796458092788013368618614522405909813089973412902049004967596088343369254887838405607586801026524158882496873051363602406114355970455056636464247592093445868845162615959636005095836573055439287661620471403578865234092666511325725025245502937773653789073139223088933063239754299453446471104525945500468530289485092026890119135255156900436040082696630209551680012756191745285315736153075398790645678039869475911188771908745638352536167172942741977180916578010724603326401388580869282590754199851878801697165818996724883112864570143096577642623260964399729182305792976398937118368555786683714077270883829384303318441452372275008465236682209902831269873602423690973259494946074869748953344626944913617175673085306395603211640874909835482640989901254448682910221946178976232348351721800982313902872425204156662016222206674228093495348584794884437954813273608502455178212268403975176404279362091140682615260583975281044950833143351485206932660219009359133940363584564888891716877559662697826019215379188477545764332753972408814903319514465975808725567468090249084496329685029253480954875069023936006006531250531582450391164176465139242717860680143463070285807371645913856170251760823175702087177068742883236300458090303581918124842993384498077538380514682358731406255491264929920450095581260248629500823784480780162020797756061070851078396450470614771498771161257576796250264210436237259829728812897627174143815071424979566002438467578708700957114646621516111268476137151885751088679246846517432940482692877573650395396963930246451218677142481897408896830058039459938047341061646858716321436138343522497411173206530886711445568365125840091780536883172840890319434305404577965958646679956368676423108326121722734338919558268790652417932351350722189256312504284635584449238706953402096601449397059230543309576514305815677924208520377601041348619571695434907592531583455105299927946586219945643224805356399666781229329554349338929755909270988624955700058009076202673774308625422142402123850640725490423760292972606620673080819939972747706598763257161179298842048906864770191026946845626812262954746334016354621181817866730471433571159687101946743986627705689264795841398940277249881666370771031619327658816824406979767092993115991340296588637980642962191445952881491772039697224340940481929185707444412023610989541959599040753156797988047786964057424288895995138567295916763543762685448258587158141960733841636427295834531191542209476995072284968448059714489243791847156437015010070829764128706944609461281213983671492483811454247583995461612368289980269649388036746249490091741873089108990838434945989515594263102647427649700620879846867223501959039109697104296665398572828164487001045225041208522003509338365059329940508033712987332950026006351664750217286972835187566029518587173447592479657730981119063949091227903489554982609880936065294433151409224836959020129955026391082502562864797650983211831724838714274436060601556582573862963162354332908601532402559180148297827876050578388945374378063577289668945726685026394197549251726707457499453458729191617723203461960588621355256031879906455115522840721515192830628139037661126538666414662279868978684442646245143452714920132092514561957855072664423128684616789466275991808377928690557937590114841524338168672293573160448850337174564950889070789743922892221733036976059800995423340796212837566916625375036872938078353179393930796455655031516591735012387630477885383989079265787879864392643359951010738476941533559018941263298004876696496676437264282343307505665698892653817965726937899752064705688793966700018125163786253340519491093796889382188380331541228859310438457406376323565500596275621839861657931987852683445948273055938964415755625633610409569059120404674647686664145463867503389890368607201723820053573736650334216361670031774543798205055664913783992073538632034152682135137695775412055415199112536971968212328384867942246421439686908237026812600414633699202955323592390316833011450148613334336886963768818028116792007622278508192072900967046581745830658814782403782414191135470423968201620476871978655135030686659921473284711367641885738617232002354485747694535893709794024154573497932807814342329926231851544036254965247589798389828389705677220732488689195980675565273560604042568637140168633031600555260710863139212679533588057313793109029203217435824152990086543305570497226293314668138851765194396828700233320323316394146433740756585794446617204396903594398412309489711683942529015149299586074348143593848134485516898032558520136000023839921755610227547344799567844002182419304293711466917467226365163972721353357596441285386708338837920518520513109284345357793375413188941910803370750582400248842279738152462070818292514734903868470343393489957044140197213620978222266872762497682105195697283247359039677638038746725755561407059591112621274951647607804439057805472141527469047387687504128541715978928650696814915890301594227381087021951217950075047283154474625438590033731058407997089974137432562352360786824039812865235368348164376392213823720601746920612070905733528783346968524570743068573071023000663865330810277313804945442400537197894561879363316055377855985818706404220710657369175800333311268136997817997879048637465911067780557865373207656702971707862649287544189762315476243397420875180107788593261860217819913030084367553047245698080612648123940471981039809624992174054290813802587715073946694060388597941455605253679705178864405128495234242276491757333510685424149566189603615698915864667931637364416707850030040148690781126842205901979329898128042606007810382218047937135446902644729642611689365120484930432208053667384819849636974217362748370468647589572867899996988010975951038475932205063007881453829321407998647687504878353367820058838913719779281886729356702273268122701965019025545917240872050669447537954915094908313193678924420810085495582043442488357342675393924664505147592200690246683364144722419895966003941984893070922448964864244718627358686860220709521244104063221439996992756409946642426289031399271848455065728693789489950543976094526233120937221059815523773271012557021515478253315176004475274124072183859746678141849240733624366855988840911072826390719274398073267534351894230878145884250018957066067493771815473286637576153091337660069551050292535238319908341172193935774585971005496366794589970258927433493826483735952151606269091385785974157642371290027306733315649314316195021065053985659920879475425394975063804738062258375789624484169394070946236372229908210249283696272046661724281216573436563063672674675339370262683772436702504667547670619108950485044521261652711111764074859809796384795738164851562184344647743483315359287547052710826566200919698737024656302770550405274264730825337980508312767985828972386669573451994385642218454677164272748082348967415829006048807765741774130602383757424308849922284796471662751197292509111100034965255392470635149611217115738238171881157888111299889641988776335483892051016310715501242063558750897424623681521681580658857663414816124259300209159951757171845791064824147586789933618022523601503024652341231796325362231140568076547661415420186643111013422452010148314640394818440466024849947157551752127945237421354669332875391898484018231195136412643211705059475497532527780754919904354671524804483620335453481199735151661818147515403669254725550215359279988737227745886546355531964532130005132836288608443768576945838069254733023227311289981861491755572312751104732226116630112682662116232553046327264645950666653570926980119077943027192366241672800369629098768919108111432385256422801713794623057397558042372582235202589954749932673790966841409153457325930844385117970524699518424324984987359527600797205642296371556790445782165137195880462049846323138853995254338801448723037916090816225792468578439300550178305560418695135695742780950292723912678656709703092076075821061558842847284215674890389320463925701418209513833800103442760305011121777478877449174265216120224317788301999896095843744482376012606301985147361750192072348009931777814903032820832222314273066783969762211564617549290678586827733755901184224429751778744692402248922248970968994606044942396985189019803986768207940698910073622394784279029515102150383387634880721363348265757399172623469576513715497575523897980539261814650381068641468402740953791344471606816341450152253848555120530013184588078615630959142887423947419991502874891464662431752468147204555898841426707502544520817977550170035414340798040651315193660402116962093354541502073205907920833848418858759249544765593940375142003265547047565240020056459380610448675509062301589229717718227160184153728943896672869388352267199145263789853363498642645288959611724907018005588149716976846453060793123087564805372934835334063359378258905567824736985981213356692605930621596685766343804740415441807381844609329376174033592158790907197482765265950989645994708341508966582017376371951138153892252324470007510962895378557997309804028632413039507443693182349868483826359146865660660478811518447823585705078325300898482339012919648709686874235074070497756472446612235361397612377750805029283626291283682791450793456666867014671784567836500451029478266791216629582123282146098142131754274657084109347918575494363369725338460362828073848201930192401926838339540172202849518851842731384659362034889517886244613645515146572787245955604041941642458871812379279003581895959076074554130000052943954832817623340959039425939259339187986891219010219668912120251155905919245344439978568630756638774910791521773764738956245175453893358178929957651014681981173942863041065387246431567340385983544575572577413202026233923860000408719270316385518371964330754464683066534153581863872657297139137677041621167188599391634875698995486305815099447344974371466239325840565921016720672997327557920513531358387747176664364819658125486306770783402889449769822703264965754207434438320289841316460686510904915111798210022891223135775189903604444468490053993687728951296759879791734689353228493293257130536789638481969505404231954137475070889311204759932806043758134496257104349147318253548893815391071933937893660382312029388260281655445951755199587602180902898096315157550761543471613493469794991538510853947161034976311355323937457956869018890919581026428538154815213382769469331134556171465407871405064615985357816167886933965875684778156631910568396934922219878334042156657404372343143576796691309958057863773959872896647795326140201229557290458583210937775596117757383464287692428531268819854637873885756700045311113909702483689861622737928679418529043269772131720158433576118590077322369773720346344408601322918549752250033576478468330395691432129751871054542732434752260471467443341383092381737428419376136144761388582359272162250762110695204445140985284227020019100271498025949738925125752824523993880909192225067188276550813905030026826263424522166865316824014208838048045055247536081592361583842492764447219042096223966517346815318594413932166603802887180263967918793154772925806640512120276674519574146293560978912405287721973769344232935454683412421505624299550381531783577070040080566125087093206992416538561451458767592880599971076599930977197416856599604795216300604000539999064936723249447892332998957604282017349133476589659927486342057574417122800965315753263311598337887463673344784843430339704146819610794838973880355627552988248105205659518604974656593436170601601044668703536414250388651687282505973832054603915165291682919657669643924146513187311694483023647002453628819631902864171041524906543978082774112830386693746311154766925121144292112579277431912848059040954779409905477000562249286448266029472370791868828609964227008620477126018384769004868421442918784863894593318287134854235010114505016007570900790966292127201253810535314536459303177689450341190566761396912051964316981352898033529293905851735752554078107693202475127637347585241271123052508359520424795192071991216385511772326248219380904974615442699193853039886993659878225573761093364818341430740099318572663305301116691274718063269898830653839764197315023298504310435463674664886877166088774893213485189859918822092780604363658945840229859690017282531118226928246307631383730809923972704951180948544139422995236001171106425091454946700025036573358386804852990275446232632628548737335761163262815180964496382252950917566570456696444076976540229943367798121298244204788888935896805013627752421086589216520862782343481749105299328572117118927499078071727831844449253046050523733023257810774010225144239398216897697380848801812295678780296608634957211217263436119772411663156775630624080957149347265217493214488589559219000395982798193436826032206946675973730927438588390930368885218607403814751364172938144345339322061794761242370453345134580895547031247653194451561261757162529008893123253945070770244049527176256361967070631938147908516871163133420546720346859198021719957176718453448718739686216963669194609845855082429181259597451849135861339124901600052527765045724635552150173981700894336110013039638562434724247960037281285149144870307086601018222580732243875674077109098150212779512742422717217461030035537766584318417544565044357795662477073212423278081492350096253516722616726051041128383058588285347913520293301068605206071432184113461422353633475676411285390235152366606172112153106263524006535204761862347696199414690584755477537433971848522953086484729897087300881731938607986090402319800970796434104721072648990048825781296310064991682827346875890488458419195523174857884914665074723454965672146457799227722532231813562401598513514684356546368444016132067578583524288806719322834955098688476495044645638049129540254882167708674889209887943887092364591734543994743315304147724682922367458014644393990444233601636795018712958179241992284781280849789050331688924146822066918326695052462120678267367173149680694579522990373355672935119262701483004446769142976056897655463553179419734340222676135571855981488432231877993368588438295515994341940478046234311520141099439022265309317361088806121248165300320827990517797554570601702679874788229403705109645230074687328974727504602812225057271114289131463677381028382517996531896281953062815430676433232739123487384532615643157772430474518290013293184464255595110484726077220583698528238106375803047420130037265395769536105115299811662075489845390275689144772782428980768719203467776613915627907409578344217311904023359174315312851568694464878059813379545254097272647556335262408333809259734946396505642641243694898196670548840852330554425821280754202801511164591913758913986211333311694806265582611297894526487654107468586364871133473561453838745678692354466966159137891185162375358935798476035154098916487333505970147702975224941113477802844808673525608927779354723733105422807795052805954387654433727373545883347129715425759700474493609635554298035672678578238894227115318348067136002392086667912042446372475989967608125127824447738779729205793269676915597455029119263690714390939160478966724137103032822638706942941071760668289591899485631199103255386857741708604440928913323710717181811695022276104202396400103458005555192717277330262448311314692799839968407731691348117430705258595770135244382002408678428930085728219806319268237383898919415359366015056612884318900808042787300783319692273644130013877494416164352342789295181831539148750700752033896571570151064954681712841326588315458464348099561682681090562138290865302449272607236977350769105384272086675913023712900362442854229100278268855455451934200671491468688939547502591746569370451169003772568199507041564143019578670190548332829012902894411905208512830337791388953062139518762099702672195006949068170414439057087018782153618097916522568671775981940625186574267186381185850876294107168664039745135563050191053467162446486926146362648328529957548556654052964693338113393347713347501304243692594227106459070032391968968467683362201881519065166945350718008223420974332339147471104161398378385087597476864925782949216697892780009640057533130024648563026525985429776829988156497481310511331403137124332781822024479201828848068525390783388272137776096037442915976268930600690107265736276790156115401325710892118018481745357959995346185223569828063776200435079478414553150783391264590208448508309623763703561803495284900579618788821912164039161025668468637645090148645303043548983764476649658318802547741796098388176112292268758326289821991046801860295742782080048203978378579148823783628666911940637730728183153546985195888510762503045003318574872369049890940136119332962098993678553145802452892621761943714194100064102999620859003286383453380122381720021758286989823931516031434485991521657171653970026363418416876529665092440873560551965914483187469113671464302637033807983961921404739267318249792470825401228007942705845850350149748656400989587439665568536832394736230822077540901305535244596862269687769822073901778709929775135605558767892078596618222177179076192213595761496972694356817207327706585895007059592910377291891528687672313007650704830502466925193258490700121582137468673530205281693297069216952689462770729849385263057314451289149956429108945493639359919304029414169802652932176077740493092238455681432316797440344091574415549962112018634654430977923690363630662192264583114663526043238993256661335398094553714342068959618043292784593130021173913949666177034634916066245948690420190928915858994532043514868750105883228771115517351282978060006557549965195125734636691743756294412500949394266473693296365716286771375717459262336851760281963839861358029821863585829029627281727673014056876551659603801127653617245347032134082416378753352884668100540549244425023012441407561398886154526543337039576371251166827579454547555952056643690740724845409327106376225003022339255874181530842060058585594303856795771262970552756626446749049856656490272783628545383742093149542139683306755941199014170501538728309169960857001310049763209562164386588314533026313990178924620875653102394568674895153169129340335421900098435424878758251346976422695220284643774859787078279924132398931475480767207621622554549653047986601606154232422895313759231473198334443479102389171836222739389736083328596978006888631422302429398176451465576701874704488556686476180410061370115186893805763810442298740472645134515508978983822904292341771055949721942489803516793704106118386289435677036858183668631974240653994519811610194563033375820009799767782306739665948905482238224031445940446414360511994794987571140811203095167413552288259105779128314021064487650837189627538196525091492070324803579772246101375335441613232925641968087998623491395834155745248511101057214344481776909515318096840800233327143291010265045036541310449938898486935101574309269497035194194236103340221565036949474723562791140647994148635693391331235755905940481181043567773513666300681927139313087379647491814291898388353701568401653866458608543438891934148314875183521272693947686813353896381454115694950575167529174191162943101720952633145405580458715301419828678204245856825380564012899869909042585327124014819563028834621766022656348801812703956276153127195014691319201216175980222759976571106987557957191681144946886358146864524521534550871248147832106636123303192113966063049491508612001252828337358934290988936648182926006261824172372323404269039752145277538105348284844003654580450847204574069506737515142036422697126586852029437549968582887746147933574055491225452812223218555236414279161258877594136950069849470372723662989258479036889795952859772386415323452852354726941088803958392333781003944399136011109371860278396713796345601892493697190719912068983869658329802136134691012411597122251212607153613558475312646148828667357555391743791328121967796167774598265899351122415337896837572383609402854132088582925362739748439811590912316030662972524470795161939542831972921165570297420741876476940802151848559496214767512295792042909500067883657943849168694639482686610823107480330581021725533085517765347601790838910628468903722631189949990887151078340112708096876850318034696645024017011237794372669698025850221620756698648225450957230727259098483447236202237952611089716710816960798928332676588815027105794283529279746490770709284005391646024310490844703554164119184470890382322221364585106388255854467759531079164563445589612156792289852835123325628979071882099712936347529172352333317494676655191513963974099099620872075143774837433485863773648082698795817141445502351820821300925438572418608852866934266547587759734356504346927213962111308797053654947317187299464311243980906885452467901572356865383723014036418694329039348950120082862705114903178519095896396624407261550029889622986060069097315476666723743234947518336511738170954233467200682113083753979910663483382763850897509419924696337162372850278284082629021635638745400797904429423240325003572006861574956294850429672265270577430420369200979634442600131945764058770192885788594010650516440801655067349806152330962422014102936952102970669322720829552612851828190214046264767110907336610173140464985089810369674190121256489708546447165202631094846464603713169419468437882683012013084825672498497264631713846158853428812810863049266618326099952219591529276329533839806778585061463511182408956758025512243794534939129857611708274487039181619722951466454462945885051058934689187654963217362888212332291506583053392417942488364876622297005163310401404545902018499462889377884489895392249555941270730985041923522449448289556768137971490191490267548005616130764907398895211836633440335499836763141434729546976844110090349528752862640329169235198820034254351956733056140891887894341608568175432112132198899078793857040100055031417864801635090327594350170410200556791508214098853582451886601536132293226166708924308374120729377118639751650711977993290199205904409178756739499767610746434304615206669255930181752458310222254501374563715438596912574431012431212314921129442331543349691081944444206361716427236675245799211193022825026960240313479106631210619383892666843029657534322975302040220706344032720228260039020963621032921839525631335002354061635961306804822904304132133537084764271792801708774197398264917395321614764091991115038367292982495339008567017811590106953471217362940141614622787428186978682378107942796961101334940726506198706677972303119925071588588398951845123114758177399748884763909063579662410516331200108053499989172133171050123968291438870429044297531507437832414530041855183357088625802893304154636945138682647320907995814378423024038635534393407758260759620484541442234319933354686236542941591711501532154943224511966807777293830887048461553716065333715723899022361631614132386067537835751736514963287981625329752346656534466043137442933378510218299732910237624748975446347701079522426362149211410646694813909072505176303662254839010281443605864592782757613782836967953073843889644118332189718432509953055191388309418002349514163853987281614303811389889009061634091939719974556002152189029301127293177729692624001009714390589329926137274610851332173985890073021983539606618816900533808537391907350107756998436229727086293654735096871744820669006692213289657432335665809699035057732859795992166923850079244543987499546517273160101294062751905802039977089122809224174832019505895697961284604116496676838053749746297173473662856336032603793883088770649704218070456330772939623965048126449340192957533461992693234396320616457160834854860022930837699218337770852197356587622610402295774296548258687502881470138863652443303299956162007329499218360891594725766893158074245833433292487347317068871858574420414917555090595131232084660784610815056925120417516303261415052029493047657912603182042943349548319806423935988161956995534378649463029725176420544498624993382224507742960065059584842615806779011193809020116099667196711853225716972564777757304104631952670687977133224349510070099444375636840065873130340189534265491802731589124267943576163287357206905303401389962416180387536106524295427843932158684213562339517856428192231350475411862548197287267035584065606480228116548130329919618018133475330969774744124919870327729888509084119609505688138654246225928698507842775596265632270401178794427967082985398159142108829916341194822942079901718856726283776955618142602393443116051948281337421724543126993929231907994189756114990979574317136118979859881935823659745144341721223922376560156273673169103849178204683736417199853549163699832384696586764164144476224768241640165535619688580707169523766237618371804500948425859321799232667847259660510425263116275783999358999165157214106178571740893236651749967571109924183113291906161529725774761552177577188367254820543028622389677698313569555771529872610680926817898978058715969879044021261689065541742067971191861805005755698555873923987398819814087892254210480939910061052461100012399029249731818584761931778351194980178371889811755111704021010759817536466462713766812949771422692112439718789024692051785457797015336195075492286409650365252408282173194450227233742106274212596198291810318871903748198897337815755266764035520486111291350140120151468120803813086992296954832500458503811774954754303536602748690677522728867411053986333068353847814558806649272128918620750806728490318690219738311582707887676990319189722070175764701911737374929790638417690741829118552909267602620785498330767848644438146099545437169339847234846706918513105072325912917787311191738560533373393571226034651755723653019450598914279366452257303177385149465212012828694463259916807888297031438245450463260906627452294386418262481499111226663365088136769869129986106761832044117292446810173352612207730438730200099917959410930116825603893085992104819318016228634411566319055305358019465073356145125902081444179366458097670624342738911210553069805550238856889936072546139096520815244124300565640251455650105536963399355495537598807430918621048963639783281421326698252198710989659564170693716751806910230082594384483287673551432508927405276797802558963382390815504222625033108442073209417161352996386570635677698482992517454181887557500759390310692810207253673019791220712622978768605247189399977802685372252529301415126959469179880973084754593275128732925082422141258674723604795515416696310963752698593953612911015084865270110773624679663020008322591754813313721115527644906213301460533600485993898013175144108369505571255212882096242200481713646234440424875965399515902275394855777179863615554859820619149799848170672538419743663326246490494897435447867757741794858864950834934587615711607526037760277817850589109761320568213383700313125224877082947237974456075142672474975534769932265538002703033522051425318051158057858457752549760357167405896278683817941388294407572112111300533514804663022473620246469491130948130536798803434108559152199812908131577313323467811564688571820782084350615398869741260754085347011020772961876930866466078523573442533633868688964730052262948610791144466413224253328586050982189040026049850875718459816570456354743586998329897353682201786108866397348969695800013758239022968721726975322064291296200399791525885830510244744844341765154651973242509298597634088616432217458540654513546258509361476669032314044354824925064118980679025228090534352739398614541361913404402425312660919351160410900069905207479491580861932782595605458410397927103853749413902571907962413607063177512015177661328629217546251428165117754856696373133992915510253225339644071816290679862798115362884492248500422064372318122343042516934166972220258085000991103305494292026431242362941494431124858882762971406031680134383926046880683032389429303961512787249082722080963839831167240011596670525313935262720110622476417375353652528776435317696347007387788629676582093375295929701836657585596298124873863933188875888825220325599329076945250219788639938810425105636360877094208808505199270683523547845246388881318998110182895219111794813518339525923179507492923387764999562214202825192246704283973450890531585720517290519810615668818485462774346547386427568591443364645750741660550834097691299020998805337946298170583101046720983154761696490701464469938235530888208021352163918963986666917039475867034812878894451071919057230141348715639562712731131083866899167236934932255301560371313968600299914910884673876896001554362227142468810139164791048842398703941898882695590037909864816655616211136112377322816807937124122668933187266643493650362693995254358286343748120915824688966131427949685647539072900421078203700396128295925588913500084682701493437347559657620938762991590508706082822071549660591638998481707608668496712554147751962539572999006246604805472195864281457826144504824322983057726939115781689315998196701086200886038582042443891156962130336376548626941030778088721160257072910366846231123326939366097860013626891507435210794912702280384898754723396695771801851763827074546610575398359396776944825226416551066885477514286819949585265398619905415492971290130106233481321963395464910352523691120780575761404955860535608875690767207262974346519822348968776678117067192698644839379835924153340866735425872554133346942813640934609890922170966627059429419898126253132187786207552391791964780830080667438920578668412844432994866850327683827470634007166801088568698885870534705748737056528819184496168689721391996740921588671156248221235437571614749626190531856718671166661648135383790097769413824084268637774498522927476210284535978610156045887263824838681379015836714066321579378497178275293799879313602421512407626484494315820612986965833966817927741647986144492738031157319929391804196101716122982879956801589762469524166193104121357566277523578906886510700670759559954908516910863867499834445141479946282041005934121511980350288651830301996183403456345894131165834936744464956854675599542465242736151803037721605661394358499781413200495374637364700352325633793586529673242582470822973318762136225663342305155050947288881163611088488524935489743500872640591464754640414956712058424062450189655080517681610177644808466280403672182746663183266925590044814802905137855478476821033577394022975051928455235715691763700535578732430292061830089149281126538988801041369035691771708344121043752517114706243458370569773720383067557453885106907794579524326439249937595418063520056074919391901937509718644483992886565064782517319288754265684146965060594015298935852786482434106806564449475261535736950382356681890949094024369330981140294974697862755235951051675945371534384435370429350307074943841045749346400192241412437354379645712696977743451884341803899693092267247263806742010657030650565007877335166798078416948200496544479445409663823734351432192436930618501016054044914338810097665067432171494560924077171515929333507303011366063347882124916191228612752222726368191915503505030343712803817970093652024256445481946096953602644073486337152464987433867772183962525644909119421555395605483132547246624226023703495347760665236727041760693762298280663134564326107420634182745223174045327001020860611798267045726404172783513627380133096360610373592779134324124247687672727815545287024281874092225339000454574488653907869384456957480274547962440749678966861599457389830743992293324445933003955480147167790479360394152004271786897152136317440599589352149944369735459627531598768481322426355473598286399514578047077961532861628784128079663268229812644033975268946923016265165922228049176701052671543280781170328197355468788801171888391250354288560504876492873060261516482578633246496770744569850803307088256001140874237844758601601932171501368987253688873076244630178355987726617127751580803194940167050791118648104894162752946965616880608660469153904842333626354169730289691249887732302801533672505096148395761570946245301213939431182144759626601036324918021932955432035930088923824555931768153893708945917051888807189014536269069827080420350074507728294733046862469579722396849341037172312630580851114342526463596222022004460846242540984088194956450839335651751466345404858551991335594943817221469195474503328933039551274164210870393512104743350585014691936473307507687487143792124044712797134606328760086174310901662148974927429690571777843630034385054368710533991490482947651312812189063696176256893540564392102266203139774556850953520285395008845195808745194074293535701530801108016010487754731865328992338731519988427314773689958037988678931403347113688649983258185249060608956785943160519522026804556163898597915452910426774788796379128699130557229968156269441305369091331699164251404246750117058342037861405421804687236574323072709691894660107714769964744806335670755517702683692894789888389835265867024610286429308274710656208936297294510424619605027887136442874852692795786978884226860547482182976351891566678070658227471278211362051863459862538007837846620859369567807162769357066597305048595885260662217682593010351841079708569504610581265917647955617608652993716030516001573903550183149161418937928414712983987843092477187761351899185056767406457921258250937951219644107284402978795521016294079592333423258018109132727140516982729915759792901288302745396880396022914753348459327630992847158232553900734130844226017238731438738950765732768893469437825257974383799682610978763378528537115725885951824886185423316209596017332956271063871535272443334025666523737309300328053309527629796767302830611983145437319417916454890418485656985088178075840766459570047430762609599559902763763904140654702837204537717439136532652669751834371652375147247319858384997584484169361791559930984010661495487291348577348173632106861988978195977689625639781597049231530529809308349554173984400046359332241111654433741707858573583224339936029668294121301096603206094556566351718251444846860537241667055321797211666698328391032438972625960666942154723063121290102594211997821086859464171141598932189959415122590359414038836286194987237822988317685459764089324564145814902208838639719732650269860370985926602912713187609534601403624452346012506443719521760190892671096823515777517516575786364220581475083182334748122969209899629830574052448675540836531269026279239290672972954401648299832701563029729258232650844535899598156568846206511831349144894696823076042241397412446382336405544670716395705135279344488714712590051288677000210899711276611144290063120886099455770341224256444174336241227213900923980988431470290225289400098942887590529701837315068360061755411779626902147109025568207147896618091161227799244575047730515432328236442280407715086016592025866696210184198323973596573715405325237144872831952603066586100872226102383405423661963494478675850969481042246266321191850005161981859340528520449803719431024775380236584985161865548507303877809246146703230460334928379011273589992642349114413599097162190836974906551722737495158649999989935007033694393181243870407436447437666449681820758541429310694571078285112301733940022681665061330391063053492708458979751910559129183881601582759430494933034945715351084822554130127340839753803810239983992522606662797995727380890744717704797791514553078717409264157250353173597909342242000579792300977096480497658156439791111531045694922642963836867124800253486539966963262071535665877410829763773160758444335799476583455911514932504300589414630006298935910528610724037343596008121917611324714835910733668531900847707524164647915115263583446172315973208477369498997912155124253767086241681451384410889217485699488686166194634766188555089606994411839348443524068349186976170930375967602853015226216137756801420975171176799841435975629153999083457744005549906425163724264044878921715207833780696566528814151095904380416097442065839080214631028445027296412440498165428373580292785569676360705745160971647305998442044626127137991686483836717142255484368148630457865620991927564582820261460018437504310903808742608450149256147508860645298387414607742361626857237305616575991961664139961505640788120483815172352838712663907315915131567831454313504738119227569872405815311935204625264323175416723163930369203725813154030197719908294325448765963458258833299380097877494006458784982463875757236905847240316292729658126631323820320101159851240439608868710063893036423952835024085551190103891980140019751057169266645825855232284181690247791484268288329796397428438755573973088353061929580050904374492570276156505317785698986489002453076700162316207547350471027902229260107628532148745055279102471778040098609332933355946504969340678665014145921446565028066370485396723258656281818091064388302055907389763896729347556850248942085889634001296488231770669356094280492627012557226237096078786530411647330501011114872861549421576601176997332029127566606465177834517773101154877174072021394380730858692790606090064479429031449911367995851277550673130207962626337212114783504586686852737945630551655850460242319836618078728350347337124473649944141340590413184220961134175449076823009040068561583477791502743938589566074536102616156610585271279528829625319538294843340041501036167744659318059300863145628824375689130291631640169313353584694038306198739906675231813777332554712158467895444206903646721950347213258180036196276433043902732337945990194758965834349047178641160189445706408807102711163110791098078734651080030785746578683343439368256492453118772784627363080650617576679737928194552817368070646470841273533404584899767397682730583274610089594443543591214678981074460084406730645841306350763295656411295836704377355753654758219422297069850092971081867228666235567125119885012198024986558637990237115572007732741660515849868868852854013470033604137635598911662583176043658198701135551715504940058668644156165281557678234929100660392059415340433724052362887607175680198563244514570149541041355401157948845167155123970314910586043947130079721558488633975987876445545830732188261335624120940747300147783339734881419234239730818254369395420122404787453459611415174091355188545284726358108784321869735876911049638611511190605696240615467142815073189617869326087613524573809168424531801568158050402866287494032805477858407708469410389668761317781602155167137403988067239918379715631946463381910960892436276943607692011970933897689142386600839406182238878630447599922939543509202002681558956671644082656172982203065105807626904699797718791124530316566149198681456742213538326252640440966345412272759250423289996034573941855729836923431461587967128500507054106412796570528028325224126614813495414042680881470132906230634613480912299677840955077957707936562444209431648601453841405859091630667693753615828811437967117017202463791309005294575960093631219568870129840826698448388286688175023353220043387317928551864075599625568230828078898513059484098738118174562587129226121797961845049456143692514550045835122419429561899645342919499353074890340646733922552786472451695387188821236712442409071801824230905193685758822136342249955734458734766496195491603054012936350232832575169593721079206003560696050745263669893710131707918817219114521759549059263122110121281028301845302235409915545786390588802100381123705831585439232765089728383972347474356526384029408345151887695107210572395469723733839898164564375209602836364754945200303603854579623920071565463261194880043505701823981720714336449528884601510564124798181705379595906898977262939577609193738389115148221665905335111986228466195764364157391146785027577511882489068973086298998898219627258715390398974086046714291593803482189369009742252643389131611792173140398918049852230091589452189149071752596664162598045255380145696869738868055530039510586752922012247902646054585162554087997169360734462297572111503449412255387153358999347604890462682158011591950746179278489320722957916410206658209585246904479960399779954284951738379138538414416547226719192422573069329305180164716139638506395634336793883556254819448615466832416432174152420579678703510623402976489489936431796002599897350953282820282788494638346524608500826250578426956460263626507488611394829247065061155633013804926293185968996887557937485504018458910350120012076829707351140353284215813622444148109465578364201452462023362634329526342990608216623151135770023689825856420270961716465565987564740774335617778263355196837269843653629345112107115616619162680192102072826252986537765987876562681554931967403292572737867005539304453747260865145971977389720908334245342669186296659176574095593762810635140012467102610752784499864665453850596528094792540508550490331096531972261610124069070644944884421890939937887744741736564336200677591581582941472257290931460514123571485564945978221797685611901776118985435112144140618385217015921797272614592165347157852877326294691495549268913714462369718787043124690371124718649280571174684409433803928544820524114424745140358609229449984167785418350208762971170292057432366546581846943018588950671607509933720344916655704395613309694233546851393924434238411046148137145648749890072217925818925492997267050994634015380273017249972883823495257826485412595110444751443159987439434390098431100305302509744940079843083661900887048137682613898095532439648923733197131104823421698565432692498647908658044044585024097653489251638843048671073268874895740701881273329569864977603000961903753087780415130559233336157877113377336510151481595239940081862715031324231202984357348222133535125091110879010056187089546741022108582574718422563708635249512245386616869702558380267217547963966587687728649905513877421507523660829085445508487475220771127685458826324467384108462179783315933290413090332525208545496833527147834929924349902898270492923589977806087645255872736568474646656657782421141196725052246462055090669483439775016059154698358054614173635521784723913521682825592952966857407034477819883617264999580082257695579439864586737802473000447264746069188693396507216322232639183899708942648447001354200663593472528751970920978537509157477984675629470977166862248905547503962921509274891504598728525066589874375150876620069305187885917667557264746126730695588438088741751637874238279101187942133075845737766283996223744194664185467614998881584400444713405207726953132846909897675020378351609046122726843401000782830086115506996467517743456774918453939476845951835074082985200195902068132172388092453980658272609512105512311054790094371847681414766146763661819559475096698569642952614261014247919928533940101226876554331344930123079106822672110751179857635605340482560567070175659108438729501437194730449398707412748881423005894210021968639564338603271240590583181019716653746409668068158634446411123420123909422487644123784704065489272909504801717794471864976631914988643656638493179724134005976424287334580741706166340183023610922373230587779094079718925434690376786012693022765037344174090476317573416137329918413650399711924441580588743380602767401462135708714466419919235374612094002976966910266791274701044120650103786169809090243324646148205524474300181626877771757934774759601562669530239151516507233369166389383343915362725343460133659199677024097653411754893748094916864818076795493032795052634686867628791296361945717663553994073784854709803301074506504612080364709974782089147596684173151051078560923581034544227876385263421633539873283643181963696992803031333837556121723536134816419347063360055526438541538313321293163121580905368775126369118186616254841635943116535254617910481648442446615338506759337059592578505121308006659628568893443615805781133556237151603220677941610830410991592166490914346045365402147714605670848830021743945122920172994491632262131957084018994615649286315353692102033884276779275058363488565102260364921528352196978882287296355200059337524773030688749918442904812005822535712533690449863508822829367557794927065804674969785809743071916212445553112162672997456324709044292551348354758088157476872095878929249156780393194035205947821579122451693033052234735577029924975575995847001484470155646809917541733339495729829427296393607169053533210252531053075135432613212013826670683201741776235679007491252727377501391276280878581278227835960932546883823850774597376521404736090978713675339922758448504542465685541408139295927802816596943038034166251949598854792755633130198111534027643378961014773958708358563146279658030864321524434861822422212031398179615117439221419962030269318937806106708821286433348732118516034491289611985492215004985889789123103860957855738225595715850475535821753457014985891544330171878853883758029106760471740317342759621613288000996861520287794252316881678288658722277943693237909186750177933946270802570362820168330501276348592634992803885144384955607241664500576618834595382565897986946662062455242721120228243650477741548506450620093088433013590181697477943985890216464498786435438957440812571963271780767659655406528138988961309659979859289703752851248588435623400658241121488565808317894856026724339752099421569736890340080676040487740540064764909053552677859393631971117980014524774961785763909107640970587293294485666162243967782040702066097306780954734158503661236934812347324814106037395667876755585845062134136441789955754963556713418072233635418556856327944484392465618910188684328740529359484952078623182931840445392259929154417494711652178360838008075983315902849149557823966145432522535477898060294505655651828334716482142347088214374118024643502749093487446345912985335430495785605976803549961072513147159573681937932079321621308072643142434102012844922052604226819181859544762069533286737495690391934608816362573015908429222003378477724274760952068862087045951409549094534736048146686354284249042339207019984102050567179189316864495269350204834176397340190332587452600988422459729595190795712791398501584522315494595925920381807230701046665234572575052534369032790985806583287003090670139536005134490377884720940837273071945589323339262215404929476310595853568429584190645202331499803222516963522525027914474928886847638168617706228407250711251795460544021395166801936054332103000605010105509929273597722505530642670687022294939870290802522114448753489523993513929752400995446045592840487653368920620480838010027147871314722917817762256664469428863722117591514559318116523298888731802239074602473953701618715125893402039261121499216155860557030211256979328972312599632924354791905175694108308639744938907570307130029987865339104419633241250502418061969387214381673903626041131156611065801439014071388889224227464060092519688138257914671681083761318889870329845325961266034740824063889729492691976702878125088446370864656875976430600369332878823373179149528127976332187239447586876228787615236261429815153430769342165959817912756035687032784811127285071126531225966612599336183553170372839388545741031937965436329482632821056571639437477966586570373820404696842769159610305689215782878703399856130406976428597131389449934480318387368346357649999309394772200366117850874243570034787521002752271565740283975985396933624321493602816282404413353368905445341584834050376918766582896182235538658073060390327127605335024574117298940260531118878066859571614824249847131982732822968565374287442342620106255663779093059019259380726014185717669863552040625519142265743567765102422000045084025303662545249447459984671345947296660320605641418889613946422826579979262106379974636529441716529970648286408401537096965206861037501469409536417787152075012978607055284421490222997299533706781027787175628364687235593729230056929891977458330924169643139722988008313745441707042788311721766408756285253667116847435348450617368402621747717840370893736779511728165673022804501158215169330692288731792588269097958531728717147439274673784374496874636859872788147653249557320063473674585826056940509597868051609465459994395035748915141993514424110458687942396732927617910231445419352304985902906925605977737812062654168433320356455299435517840494665815239256916826432075741648303498509847269897428729956255455744658903948746761549415859598368291451361968015938339835117273167553596449277393038247071346559460906376050849393968762457546770382438994278855064476218746191127360983230499453176666872860467033522992246332188035745721962005509919723579632281486880164065879136720210235273820526229409296029270653911774218173307037127372283137399431468828655606197516629501738349405571662172166557866208712141529464785872898779317050381591206268393547146796949374089334704928778870913161447760288091386613307409612944159028737851443615869441471222041097776037917240461401659569587491800148214755132040176970739371756681996148684080624378296627183610536663150564217080194875410707672014235035730804220327268604755695865637411778669733508792094541163875009665463138975847056542180098856981041417784859374641621573690797200620436627271218841121240071329174277749983449081762565252224746250759790441179165765076903033432720317673528561577616327483364320730155998395663543836622256052475088216996895236593952869718095562558047830985100154891715088316523585366098702531630544518183595467397902030842721421483374941918840305464619096738215687579448025495295908680135876788864181376432781305318720271526229927051929568000137356669964379442386151633339611204225161443499016532852660850550984931815148964095690597737626713328440167765384162975571727624247326204611301089118523129377854571334041416624685296121100179958012520123678303512643747521021018760429316407275352761191384642377448570065376037014212212688769666044816385539722330957014518046053989045135827409159215940146844781636189608095453678279229032700056136862484238606771778139579445769732641980438419122652944673093871914849181311155183960631809703525133293961151333788754052253346285655389062070189149903142220538048592661000394526123386951629735063075423351607792429556455111120623275942446631074158350380341606996360549458597284087505858544931285187400723238640536272787074772953309026023197051338826820175244908371436054946133794023829780661159412462941107611737675944828065050659242667910887595555281379723997312534803699478041425685567510721359880527395441894267261510227513121080738644815478943699954333530405312858946188644098636481041588679761494026931906121781578010300117733352821117090690102632048890637810710979010744197240433630392902111763889019875168203606909853892584511240948416872361671495593771233864187407979021659846493914426145633334437278376753659202340899941239157805003692617107101177894725354084193305829512104796539569563614136223090324318345737847061478688983097680495470729248489473007911293292167896853883067887771936086871724687110382857531842580990279615400711095483890938755768855840511733334518375213745303556094960661101757256500716016516691879232273186707663098474246252984585659316710567113905655182428689024580147721400073605667345616420419256694092333818840783036159487430366412017768047758645582845311274553457098703427615884520601086712388828963848522566865898024527476652557214189900600470232349775792496991702878025567409551920242463182947694689413072465847492264626220842639590048853803163442097048082526721548490475541949564997251523394009627778537971521879702644309674298545559795780995816311473955258830003279961240691029360302637257377837506430295598684214846138371076998342957356921201910590094230077434225254561258283643044562667827582207665204863996183982235740454660431380070579184994794224843466329982443147975924983988563721721782900421216639197699607021491763321201550835476236822017926962219018876080938074192248060390793436571860110032646805854551922019839238673630376948788184259476466654708238361159925661028935759953829488562771765922819990672744689311278021454938319445206025312806986617076289985135822193507430817497821303362462923591985695826240524535885055498976535836529123702841224965728651424569645028785987533243941670147301278180127623392270041210952149026534132723162836185511300357323562673975492531753269481758738189346671675947465234394789558344236464289087329090247456538010166228244299085068831184020743443854965516884537115165284382810039083390553282407833855522767607993172275211276125531492783784831531344923857316380101950154161942002676127624330192214318565072225820514626452476538962890003338177821712212286074718198271052194471470688137351863665863752248740549670416194245415021237489213083836144857878436348412769782159458463021729380547822104654141876972168116356614548384932151346820345431502536362677928030858403292654326244236167411507760218407681554039729534021950439972376647793105697245376643250086499498136556451711915016740220959484153534900997262502518387619473340690103474200027418414582409197812765193718585558119780087064330651315047026999343095636301112327003959948865769595614168961122716387286018963601895177102864754448256639147455470842629021453583448429605112989242681832276208690724072711448686432324887738763597887767047488575179204271580364948222999443445963038056870352559511915998383918621435323806439891151381901168018549073152131018733147339814132992584260292590407558581663684818495680320446195921965196718507485265980899293722938118368570598740799106839521839609254705572437143812136091962264371725720005838180929651883687490726587778415686614338630028255050740255551420271796522224637907346020671437886372400810235440528185039090263364606078278330395756314948996122099448186689024655813699447274432853272197456652190718245293910121762285784413003214675440961849515251309499243257509190693731960891453856860218725796782830401406101085436287537842291257948568439759675904726382117803100651130912053263741140030335503629280263290044345044425911364890215082388980066232439511543248562499932320378592881277615495654157083567184077878945586049269013836211967875394305218530694447032848623884696909410856959008253234290368476942186470596184780678500861223652928588781523865162700368961757950476088689540554599210976160670802342497872872943452229301845158368785731468195750915071491195423043590702774383856358236439129486403563215208579641213353879035222923023223654850085247549646704786829675865562010796444718230159029662408943302328386965494318424033364451311933415986882891108307820047448742829043709249486657529105102942290952484735093464270692557306624235386853462143584157422290564542056804861386256962017182756384045111659306252569799821493379200382295463594953656202427078010722809607930458879642261739795144795605730202012900649955945291894462989289175635813946766849922128147210497107611349175298195119097981320097198381568193875342304196413755807700584590240619538297728421264488858932398040884218854338882343441808857582407541442598868243114357427773161261397050027483690179727115110925073228665747370947626647963357767699615627470478499862908173258682107657498368657277705838865213021574295378486506023124692664829742077371116494413553781093004443652409367978363043537457317593916268718482840255283062383048240002494570902555082490380482332475724777824489630480875442681451085906450428396074021101368420731679481140848967669453968744652082230094424340266409536021612079224949168313614125687436759035324493532579307612088897560284011375586964655664319073810804728816594114369654257768579856816017835938006854168697243547931134187279607172171515905721859818045804383310701249689968515279744495164779865621374350189354663203386767030514053065152076839451260256982121404323506613950916569077242891472201083729246461644445033029936746860104671465074444323742314573527260397836100631430453686399810550637137051400086084674258005789717181261469429239408011981555623906020033133812307859284158154597342662445744504790844947353357329961923147108899748584048742664963212543610903880880959346296475114243902412973289540984739311487819664550366754608872565432372593112835395063893661281020423178847866962886857090221010860352197779101091550612752050027849800352116069004656208912474478802037762062804342247195244245097657794008230514378495759160345621851281980714402263603668675304576031629003914097951291255392347219467784247862761038162172441230098386263135704157876807514070882357222750873597729165434875196569447725856978452554157025856382575562091038066177875814480762623362791833784167158713467507077614103983646916593266038154502271853169223691274726473088741318772323865943507561333245779378255096492374718868457513957776860236009317268604163501285956220369233222888639646474418103659740906897915456037317946617694761685679535831893480764690829362592717666297467466431434116077873993270891156829153602865613404975000279609629628460405351678030404370297470766779458572936154492840311061679019403245505489597876857954152821126505213981665569300003182238225541664886116349682875087630433185429626497580554494793049632364997603976105347872155533366161888162192484123667533673208144776397124180588818799448564098040408785933061913277512584996181952269407511260357204671161643862507788834890390688275783898706505778145659133222726205625871175668312002528760060413613380027543376937552860180977751403838038295650724939129215463076207762156812190300018942992098148820119552350049392727094130807835335401456560289750264794067118809961904736157759595531846771761942387635042643567519687227711517608945628392967531118224094354176812585149975288495259482083554516390347658868628453778173945676470182963479615260141259602837266375429724583524757024496968506518578152637692990001159112105502769984459888827400932325012703626057348121362034932269207524756029244844243960756182973013806864664084979865426323692427634393431625859559756988216605559815297826762488288589267005574543491821376808769958116953452609046443438246574943671614876802428259144066766124218958729370017994064607461501782940613298893234564354217438214431713225048415883417964729803028857888740647181707663351437233529874071528200366834130914309772282424155308648614805782029730673911234954247023657459164123539553416520383010725190589583791994845529258261798168610112338749920735483875556647331420941475945607695290434684621342460970539196174063816012718530844404596998055296299755255206250277604764925767815450456712591102825393251290013120391556323942483661850051901388534124829532146172982543395382003792488649511899550661043570406465388726527198856365226492375275498243074891847334576677451403087584207558221745994557507201545763169992338985237004256240965670824936232053324019922618137252498166613846246918672622276255863412604793654065939623309462755296479421064537285097355202065243285618079047690002434448572401550163382104634773243198861575263205846202407495154939056643328099140877504883407057748821391672741059221270897708979402268070125263483457123132323694809308540313849295974429244426696078525012703750288247790765044310949256545755452885781567081878224527425296576650232691638223670164045563637921866411801962482580162883679591131327841937495427243225250998250169482071197754211355146808777372419104442156733965530606989758946423198447769360382882178418903490845996432307243244134850116746528815802862381023933829552886732104431734805612224200725855185685120008200983113531186601641345326816121127910534148947300476783990296778735876480702398975498601172299783383705606649125743571974982597531071072218519890515221531868081818013047849767051910865696793779712568514547078402684561982848290087822158741328942860706495025186338840749409653044556617730006725197745720562145466640605651932490250032991092631469180039117873301284050393631260238715247543371464599086249073098941056671972269566931090027906524618877592080313678652737823893470491626246444668224207931221761352264087992619338501317676478062779173856713466627630868602384668293618077540665561024335904906290317156369108907458884871280273963346776153977006021550260241038727765151858872326487645165192039562013823146183943530291469435006603900484603802924710437875710621737310923832775191931305767696146328482179712768916719018434340085742804277964125641379730862782834488607001192944853123923646483422468472412137961880608115193007512053634807164290862090678859375447840067619100514875997202489542923992692081989888999798306186043551182554690941929640921460011548823648113323875484186932853969057843180787741236819060623806063254984253194651481666227170327558292432623951026422860888578610363685188965469833528201266199690371703833477684974200539329551990912468495729462084510830194260648912508673400901316182188475941238541413055182414268124472336447006777568299397632702640187008067619873205866299811225260331683246560830672523449705340509878277840732779737717586590543134008268532760825008013667452347844758593606813658729976746078365830822288756267481185952912100309375602003388453012497818021255234428867434309172733598162904957491823666774919605113791213766217865053752295367061547708424600097379961106297537064348137142511543868110006394817650898794776008684415960924180728354772127036526291276128647593846903038217520019992217028134242681574100959751626762652812416798875738903736072336586145344246198230443081095431679816789210066917825774258822837808451701091936896883169319518383892902416576879002861376168588729198291887324876131899378668536349569487710082054581925992299388281750852654007850086666280228939062941833354609727666006312124846555684067293595652061299533105945108817041629402149044640039399567893942322367950965538841603053607095875809052201164808741805238216678637798665654594125425431330796601551242570583404896502772464733829868372349975133840810287503263299712240672649833605251638507919662258237528721958298820225574774966321193758139592070604583003312601815877684721069439801412457145874192096349834658331888415388703830473451650494738331295034637960341243510155688719062994587264620942333547649473920461099871766334699055353693708372440530618465661729832979438848467785915478060968077889978845249278429763984626393960989822093675258271092672677649012374380546342525091512724324834901475126698611078194472382670512957194177830314620427120993196495507667306169866773440908734420655157353859992008011283558807335277287578871354253751064853319239349979559400680904037596655198015645390631205498312837629367196012934815680694700982448911300747369689414488436494033482814345621808022293956509624544691330415924168544108189824936727769109197559041829295621118222876886968340122698028306923792277661883608274372685707329727701581414540591963751505598783449112532725349304617521177407068316942554712366824328177987555379850050904275919656567678368033768965108803405669974117346807129933585086025115336238598672648097004186352020995556459681453966514217864321799109989659055022964533180446024621663240839729492044347808763178542609963134583218268915273848178692316490052093903837604234687307734948091057370677655312412156544598450370921965128157612507242914919774296984158595845093711024146145229790000399430744220429017784966434057132704025912147601761768945298365157426559841125806310631695747817803987912951091947283447221210583170553107964415030249691357037670535096878269628869194371002781448364481006360859168377670045193602333186253075594968119315769437133544977323252971374260740510217801571808263234190419331553132344984714072432785459294825705761005312293749843484948524995988307423666013979808446774002193964926265833358734044142609917188741942776424928997050956035188673514205288368994992162083189729746164833146819242086465929336746502114388568965461442904496883487840266044827760032860662917487494024172767298985468120761305943877705223064428556081257482482144335283786512494936925237944948706874620354069826191617739033812512734153832827033660198543989791585593444228563421811669975027303756419097152446820117799636202456694133354477875382259911127799971164936933583800975624191227646806462349164033476711907457158532712758632551035233476994950326009587326723537997995861996592350394885948492591398702371357510767670977046687439898759649651859732436702484317644911761934572487647538822864285863205629894444622502862864883448484521734833447889747224621295270554457874209323144359085485195971470751649781892114037294542488442036496759599159356424771506891727773130122835007467726323878396057198818295052340491355721794526368196550731105371740917403629681849793009553959836210742760258861823637282343610974195804236715617885713061763655683646470878851984532023858392284224143434432702862319780745230207978702373903971379702445769745792648454765463798337784177095488816818717628452103021642935310395659719988433421804290654299203474862820545318318616204800787320611666862758625994109760985563845539121515517499958251306128783689581108011282483472497620065444963002448986176066630805233313710163160246503374424502610315191297294137763929170566170885024194971485149297887597334396293833972356790063757279938813130191639119838655341367958551813770285144724032212715492885256876970641290327905193076080473334927673971157713456224193200773802572401116268863779640143207983189949689653388674560061439470626202919952817539966305048545247247001937262395422760765609022427462152982022912107329104194103401315975506670219990284046066066809240549284189880586695693251442362887693405975222780343798196732661190400251222078669722161783694661244240574989305822324053913248949569641298003852713209387453573387366634844329255477196224115833345701152849391780959560211021682071425398442488206123554457878460719494479925500185947909254070425846610792923479004428917123791269493701651653912046455366924165855277317829353417099554444272635502858876406516116684097414664697175734802771545765264530891249834115263576452851504188804027722920322404756509953645453847122506554131937985872341616545282279285364909882360723060314609993313695312658936882498339196893098873958371833748390269894673824644706808561924518913541975768851919270096048417200587266863018086672639050379526545680560318199304760892038094743793210231989004629974800405323502413493853599123283022585341082795562019002383865986204666016153634139920060675060358839076334263301619922852495580133282981312522774926405890860251984692182164849856083815006384429212958728257297354627763574935433815157756152974330284702255533117634542714243525931681526325157399815628830732905078061000261283977347278505334213962877502538089573696900743831915720945102927070952538907221957857373760676922937482900814927539049695913588034326082739754480927857305454198409291584676725872115759610544494096936043145182427191042576112106340620963018204583122793115386099771141114406723119276936548812974144085548691567377912242813858609296013395730405127650788170238684530410954372613802871796658038423770295283981433399759647408888546088780040086708768796721085019373881256157604881829575116466404820532737759674851670761100092987890466315689687231784654858944707837747329425175670160986331159299161898872731520383989398344199489877969393289025453737773837790553174853092557253828906520829459271887984420162679313270733840503236397154350298355889478988311779627583177359945494813042346174273725135533503120749363884013642664292006753641068626054314377215686285212942602423816283361298179039174155287266038882435405610195866137104683708116512323120596351855502432491682199660276725411040396798406980279149309802807186173014258916610728385893635042541682524674173278555375491412293300302135842817283047907813734570928540847332525172907145870695669958609419321663463689462512680503340445580770819969572453583451320873944576654677240480518155658497916856464285789245224157294592937296580119224719171758396628333745839329131639302901931527387724455799389754519362599346789127584577809430246625426949877807446800546998813621472603113548431617590081150802551507520119678713018050824484625066402644671128853035670371546711746689603384958093044521543512672305066884229335750154730730044339787584178955645717750333630897137151837464495353600171553349972633068215768741817614811503173292075851234688279158944630735940448367596981975030506788868653738539001172157833140596971244143179320271335940660631172049615128255341436934856332181552304144888574367713956975728962631382005594497951480261702876813768409844099075883491016496974724992995473605706110112728957829970101952476687861390455893382764408747431154517184144243218417788314713424553045319897368119531375934477007188774110745393667054710914226471791861526930197746630208895869242322288593124675826630652557254652703048299374630493369917079247736941105209291201486891617901884507061851467519206036920635608820761217406349792858975150778480157750067074801310906850835269929204485603247111604404538253893367491507122698418779244139380927884461985217289669194200656981668359326833778703127592909850257955726720320599810431880638881669915811193895872526416030296568181949318954449136229554320356839168717204861586778565676286522151986134710793011506725427794845768847189392530410072480403978461936692791662867877909712042088790506298295540217470781438033073171067165164960341473236714885977854424671889956082480393861803880648283434790399261282227317254724909643651862431019559805431933572456728021934074890641042009771395157748827665399587654431618084168190574544735103421024970733508396338752752495140210901161677864686292864521092776396188232249549071787530712631748792568456953368068607543302237991617430809227573389520856654303717554758987131175642186480231371985133291847156434967193409886360882487414722151034949375603740936002175501883527470130474501407809394954018246492761004373500899093009180610993909014109581611241690248027061575629960386569334767249475111903647632110414645160309330239342298891632342316558217264893813172312419985237185355611036922923754244817841912690380586516730084327059956711705899918006338495173971370947468698157732116096054487513138071167810371111224478722082402892500104907158534718315431949361473034424378766260907914697572252102948827531532594525436040746726446529020108482723135246551257114786634106558508123564016446272211172296794619782354783794818523569881178983885314227073186865653116220755432203590360004668841168289769077405587440783566265861901781837591719179966770938074034613602633537787938251660642925233429268352148258672120076251937197901751814444212885021526603075201573356823209928720651206895977478776591443986575894882165514118994475894675580871532484592699150119773529219276508629252880541829513021204045291648917666270264345014041176682687387841912539347089315379266226023105992290039624938716150635310706767039895179264445319156506432359278476160406029491963484341615088756586844543253087737291661035205120327336207640764885967159275820155249225493297449286994250002646453579875103235743164527208308855571393869925996089223529339944729393077135621984768543563645344490264870279712035632932402279493018439944011896661379776097589283382963317517151151654673010622978243199235429924685813662774468497808927708964980462618274220116838693130086561464624472483906125473636977529737793559127307911569406501273898155366955239035766920482978446427755409611527317140615268272395455699354182386973611063862186967649114093318946964854151509873436056044187094093950698625909508692714320020041645841491137421779541251945903612686221709835433010476477769891718282693806150472115694683848331638381618866081441921568306934178571364466945890265097732272923384735621326374297722014525382611616792575503561739025544732304838948127147719190994133429397718057562058111591090473186624458758032190950247117143712970568926544518924746223164086867634015351284970687867706443051525482974808669208942959584792301940902179790695077105058660364154982422252093324359883136653457189351075334049644871894814871181943542411724128198882947000267774828796793071969181997072455116318146149544055124263300452675837118104795681864057084132130740890524773025406792299382772268331820410296866182491014714357074613940280771211708626577500640308115151161685269284066810081688413442156569262395549288151842529926121523483960664698643905259957515449921850124533534850934747993034956193432959099487962275086979826505842146303610188918065918294481266194519692510995648687057088644357616206579012705274380043909350186056263135586624829613484037590360838817478300634997782390491930394961370020983515889366742485529841777179385516708284782587708223929302281730344902353015752092574642428187218746831678062896792648968010130251420697463522956361578235913419226124622676046763618594134245087226313245204351073718615978652604358168076035593023561189914867254976634454382220582268577965139072335227032101788393901674652382975474312521355307425744313269820789992616477071536098285830725476155384493012473240930014902111440524665631140137354576018223436766071980842255583668454206675922290692645751501347307310999686597766832737297446979403535930698971035456761603175754213563749115473879557107767780786468128745635382092184771661428039709855245033462029772845006148575301909003105686870058832608455411069338780745172766839038677218333435862866351306491141336324095327053957162395420590872847062705367366982008940035258370677947220485754631577178297154353676980502056627381616847923433728305290308977218715695341977486549679498591740363465159730080088751278057826567076156758766333002566925810835398539270569348835338231091405848503872232545401874114714452340370898787241945551747060957888665466108163103335670553635131674234597450725009362553868988338854272633938983493631618785190426697607351960142031516759558193555550593486414143566286773671922834433775623945355962427166299535392679191101973658077974593082960022056033008850937662339627613338326494144014840497480936109258869620904004487923287278842768056617732364350953578517261016188197607210720306105534259421188783150764139512345336894301394522754035102745457408491125186244670470811658027781255593518824533958397896764409509560367667826803666986693555540757643318420138672931595704457097399480086680238665933797070286696740049083373724495542366562811299406603671593877790704326169770555958084466929639888028531269767809238012550310998768137450388437642134877957016587100301843820521566437869035117443792487413218639132883291953293337578578935346389701122771433971128200554359943377726723060768866772223755097958174718438989179973170889471611583236183941504122177366333704264320768218936826741709766033392594521726322738595035123243286786795771356398025452194704212114055910707074702213811148068458468940851356015355034880821407767439464648419252776340524636526519993163379704548479781160518193707431493038827894592574915357473837942664898794103573871627053412132104643699360349558095715932172388077475157413802666598144762734206911099678700086752048021106242819031667559622709622042672176572575156437891673130093503005492388346454073892581066122835013715556446015448420444799404684376365726978843302301045638331736467066347000478322306243464643406838799806507481329697256582948292555658391240246929849489258472244990911349411609255577151807346618950065236594478045499738700136992246848824400324603632976033749224572271832483455876581899989876511394908276291960933944037194910407202518591568969827994736530634138355984551621993127857283754746834566778402946770342742507407467268366257746476477746959658390789043850287986731198381091859250652984732819760306546247888984612033218045279318067924247927615812249906536391669181716519282922988431409896905498660392227804534652004552698238504870170932949978528001407162300692795840576141594665955253855733924512598837368540260532775002171244823577330749311771632912740237735002244712424831935125170707786890143698936969202656900270665241516698908889044258677704588887261524034922927128648156487949814108108899698636659999517731649734247650973558606652626039204605819083063261080121025702565227145602314328851228895872348725539660179597416008617537001420911904809955215792730347432779048965499689867809424750226537511115330827549683378672047693131773413590698278230190757758353586046655570343584427690602884259435405781655260142877412853688387961512328623467271418398411286092024558706987217380045904057187009589084483251792339157612145553563862412248554152277690486505215607063140631033848202184248807640272995584611207920325681472338371041069123520333068033296483025443974594569605689672797559575801010389683817327739502145587437653819389425524177074023538441328563653880034713772098743804997169850946743061282203618826239417221277973992187532554281557545732799875461145355835826396810782870372013118887826400041745520561185716297144875908490160380325721315039755941550939842050057032986689022310121769493954026669979605982733089637939625577404056177487486494962070336723671995816951850724805927087817360199497741644757222258365126610406076952280648394142964607572508082030668307604159278101632854095378033045043178869365045396156327715016545551111312433425204425899500414271694931081508869091321800034586431044812663071918383488738886463493481226581242686269800695593979967395663504305991920344400770536322096916898789737002581957144008511783071850847992760179965522816017107562102659752648571967242362712625866191841284766051466973581405997313408327985487416273401433442719239559113044824665427731480050688602581841204750276290603888720310401108160101631270543558718137816122408492277154436670497614225524793650721150156623507448259121539739461754964815935986992943659638714966396672684186506768738285217922423873052690297966083168451934193937506231263632493218822550713276925043321511118842442193649306460930045495614211180497965636722961871764490316862526860086961031983264880391709119188715943384634380788102517105740955873006060485324379627036970303130808388039318335211707353397988204145535843332863900681765678801698406526447920935426935670465642496099324172164763088489828925245507894616683351298152746569286355084914375916647609808953611931866954698799486532122324322004877770421842020306928579814994403210732183955192240486832626468126609476842750040956035714047528480222027629612122392573315813022675191313734085509009488629366690861450053193357954949636076137591943039321390516107660275763568264903393387326687837165820231562944782869695536556824316416895064145016521907722714692140674948672759596686137193950593838634924271713710465433544676886003818854374290775176172462366474805864494631875086057430952220763586002158591405190525999698611017322225320781148472244977431759765415260388426387087436295554374558906157847765330800147280337694958285598854042961213546702295798662420891978041141001557700591844795078977586341430891121457879151927037220942296506792790021147268043116561515263305631618948302475971276182983411872116917417310573020468832939894887815478791097513401245879654044440297316321758210507205795692485917399200003129438174465279318861727828473037936970535250346150787483638394790882913735405389173569107734704777285852868372737989578892093293902535515072913417724935085221523760339795145899559225237114939927371020802295668979803141636039880144102453311668987983836355771441080192874473680606117889557639195820725859792373452011966926861740403184664047629144813319617044551246323844734106040592061323054337837657647793507527844952578638954204065225469810126462249612855716322972345954248404626456309536160344343835957989707496214483159422417898082952765158448252028230144408912394581190037150444551549239402701464619610800826640978867801955036603392150567605744251283489953996583996740192947759127673272302548830624604386178773280139340450116818901437419694631399053306203820742386110839493442111445191716795954641113290926897985024092130897572053594923782477773947423644937460603541388007340148804765893689176312282626050742882698213295566997235398900806045804700062886088361903381551280267857799075891804758188221563349657273111594409462755211054773356411255166772470782385595289049288865578980899185839689794305430272334830178959319945454181568746168516363962283091154260420551297930893394925838027761585285552834194663995701745494803965167266933985073591887093299388255976555377689540260004945586985355407190993919547764421670934386765090856902161121923989511509795607853835917567461307494023492603707081501326477278191535863324427045295399738540643115685860018416710586517162548142284063074016960377220456993331543122468426572198488715877006323828396764552821518651675726092613533820804466446228566020016841960287562317986362528821082176182389076752314972911945321037428025938493405954383052757883775580274687346806824283315301382266620453986902662640063568381913242250263048577789866618088832974007692041899872795587489611058260020498136757773782412846825228676431344148137324176796441527519290663039151324231361719862421786181780929669986826272955702220347471224161396550116771203882862846524006930412238990700666872842683248884108728251826631206935460972405685462957401332647044169838264833578993321128357524809815925279108796350595331527043483376987842206183000390520352833801945136429465470631462294907189093465365615007296254890418765766866196907320477881655955464037791037749774933912292878452628355432787705129748997271138230590919771671860301529898372408755337600385150386061074687769818486755162671110285278482664773015266274126933943206196677964532936725254116258338329943514958708718108360086830268894863382091048077817719586229640884663024126633397603941133385321914406527705138975326469368292440798848637323322588162248933265695141871539998328917649786186815979641875444922920723422670240962350104984026393081902308136139047882893818456986878891219990192082858325390698635248095571140841688993564992412707676639143884376593085071959615428085185162183422222082723895039559864913834590009220449326903408748735943764326971745807871395840434493504916730863345540266215570536098928671895891780730009388596622801048584964575793464421102201613432445981304763152524491841242233507178586593276078370936306510815452275124958208030446340407668297647401077096282703725787222674718576059054042426984729402511104802597449755988915607737283891326588853120832819973842616980316330417377519174631897526698708393610121540788732647356794279024601355449045534336786207379412387493681321559878887200566049110468447098556297242726306398055728351391257324327635167105741010401756568679055977610465946829076538290218129833521409671136379037864934623084669109691392287511379001593095062559761355575182422155957494807253964123482155156234978239623314060221579670580737432084480385623941766779154899429322973525132249221455712848544871697163395231259023897531685000033460379578523789448447724637767203670700906238562551034713544133668743121715171100082740953180505700283378847396577909288216371754964738090860825178146605763497993212850326346153929910089165392176735987489435806098833850309897555409305127801977802934335593012146661187398911255199817449585741180771177669742957277825003393109684107695460033369423373462074675784290283994605046245714118378256887165730028697659936904730488061119218721523672848939901431517696938034814155127324445788794134719818318162312565406233949614617147658918614834273813636703659132938425579519365613616128113278722194689798804745683205219911554185374504805493395485538420323873420336398009475855221228043775889639583331429426820987861778794369698620616593144449112526038846268460418353367225751407985577233669951811776708209797620355472764191030923141863015589071999234993288281799454498012613106132716961453598206380999078493175492981654897937752609737681726685752399529264536744399443296673755579584934319275058714600890835455845470471534762994117703502677487472444213122487698709631442894105606223572087175051585434874513229216569513283661927866317211565879368391365583436089984980347677844959802177572505591743736182634204838878273808921454307923399798694694594061604362584266951979650582500692554388544167662551680025223902307088657579467338088573854082070044058640994022806676742975198260602843021647254095777730606416070088061349263838186541704600652022114349162987433966972310304183678425835624623161198935168141397381051206062378059290511401725201395259660814269827332233276143500075546830686241024199733996524895517209684707775435774364811264994116880823634984162528580921708264124572620090843451228894968690474900536378984748399564894698673434898174433815382433068511105065972643373929870356124716311217259015425749189267579396150537127066322448523336407955177880306016859625668029378934195593577695939975411442546084125133969046735533567533079858842904524938526827208747052404270276277386879472360934790787636036047407614859973224048186536117999604771483823333732866717781820339318479876715414190334804480699972400699094231833405204637145588746509463920898674696180253330605006829795505831712256553541706172941541112409309982102991180418905762022781464715056739312952128309329300031230580778645916869628124717657987406722629427570441847089369698049630097936313156486958091912159725342172626738991871432314152140382590976107665259985393977235201114685675923519112966686229402303267757132396643459520948638083753842561822607697509246050850088730755067070391095870883505698792191729312475377640757266550161563335969367302663722460982394765038926943739993067265539498048083519093946293099509737275449075660678407059751099591806897200896918317036566020720238064910974349224982694258480857681969543935458945337243944445525460746319913871641063577811521322459694334551941401264422910401801748496318346620456118034636290979051180601651401574199550913328286718251639195957714462968376721416177740905814258781434515959920530270561783434682645845436617285033640475864554691558638391572453295579600604274605051726821557303924248044740879363186527471883847522107809588405508230359435714675231693768228128677169944173428563415055109004077824127821610811011203614851103453602380754433292186547542024783323006284828707870396918803649795654199895860184383263406532797408894278354421242125019533227582937097070458188906331953735348296660812841589062911715249084751672567817274354775502808602854284375227031469583527007440154810210427861535068718404419437970370388344907541573374321875309649628227394203368777958172322439670140806788370912225573078481143088794501786279913323398321174178765341171901096848197295991428279106852278817194541420018451613666647767099675963719225621693184190585365079295818070502746393431784007038906741213543348232429599781142085184006978112847510118844095915101782355448822242418763457309042976594403015249309656493842465598709268540942048359607879993475585952627482078026217315798789634406262721606896470504111389566512741688200219290130045040977123332555523279516552814900522133969068595054470921791130070216912782566312197304489131075914251044891531931412724371302172771718047754977353245413055034138013497068365484727775935931056708022486753695714984033926518020361774366921932238235179616999001437335997423735257227730591135025960262202382136559300799113085426451779953365981534471374415990034913568214231661159781240739131279823275603155696094726582550612562494476723070231449764730003905650260683177523219891554337781197230355092269170245842907797655325680725827661505592435670450126259257965407414367511727373612864392667986774139243553530739333884242586168171832577970261536425922145935868913789652106060660455409805738454365121698163536594940688424891718204269379948039985406773288166797011404013415941906660925983280637719918111536279369329774656152762409643791605207942117330526326857274565720703662868861734267761947594348678809102257654161157759908759550752536557296905298231209093747269784166765392722758730285159121580359727147870604318443638399358342900364159857529611118931449119761795322520608213140982049942843693439033161142709543511623940668087642005933016361700994530062797280146768359077081126141200949191856097870473371348697900780770692509247805468453035079089781281561206770769207448767220140408174734423692724143542451635781763224064317942862541118127639390234942366014987477247781539227246639938396454573448923068986870499528552224513459801759371086775308443166462899900824914805156797597081223794816001577472403442686987653283662147551770582343000605268412500980913936180046776519452634829145150051081688416638163740958944276838976224479010819675138692699722636641624735632479453491573114159895115987462941073545738503523238226094786615316998077744786911286441873883088329118874492541348688223421385470857126726019645180277198830681794044774147541943566662082410808102855373500374393691927434929476926189187047087626119118309840023548770989480787834822984791680470231144153745813649065121033470265013144799952292714177929820933196866802905739829694034354871505177045566603340589832604253297404189912016879596468448111440044380427054954294661179850366270755272039849819045570073991378375774192271970625266947072121741719886170503870240972375652611644075742134374600530375010900915783558912629269011111169299214550756574612232724718304864980011464629497615119384818992505881061610577584194352317493809605013490908057590994910642713240506098661902835568873146002597744896090834550285121243345175354907406546509365323409468121171183199571738255042082901378432670826455601372942982575123148720947419330603716935910275332621019847819807026619657290236016798083034606504045021597743771870320279476592531720207049616289511971858709586534656699658843847332736543785384328824294629589286409944315230781339198585580585295762491184865555146200570804388118188988414413602354775302426177384178812679309774691668955045530032725769087631419222672258205838707075184929274588450642977056793075165819347725466468080633751317159412240644887760084797798273823036416881187220282618294548454434353581713943126555349245215535009242963728603409952411192415142155597598211802220257383121222506785242346700464214367574874036235140527597748956964080822146948572292071145746904876627926434063752119418275679713523191846576583508386482618693902818884558991723927489801474926898587134915353751331436519661872898810989941052713002708975936427687978508517009335245538512348617231088735932194582114570696498204259044981864614191049394557318929485309616344445644150824318052114156368730356127462288809150959445796101950287392487872232445756846355955232159722818449114462809296486141843268753825116998129845846275178445464821981776614346545367163650887809869302211837022612846097125765950218319100455393145493436467343490822454014140513740071832451771640594255990541489167050852975328908210469181301199627834907622095569710644667518499797541567627968262480536404437290734256224269194353599545386663329636391468941191932911431953606738864736541214489377719489643996765337792073070973758492083107645976559460952966803979969553542994002529922100790568264546441583300477251623109077242631619553304682942616701718286218649120518663094019282358859137981230620643395814025803948066500934213328910700248202016633385618254047223079506523632559972629500958104599274168189985607368303273717479122591684280360695642361219178834618034688849602652481258421819734935285304933463343300229626992262913883278455723913174255593119620989230009312943284977498088897693262110349412666500575521973637435337905280955990711289874191530046778025114635705956327785681466163026771306322625799184075562999161414220640549686866083910069763281645259041485037988507788804025293940293492635778492369857475046198958302075186338069747297741137056098636313391249716316099206327561765895809449698230034747468653855365635817051065102863795664657712845810549103966207223841974014783954558825291507534671578471591752250494582910762734998654612121056638333431458297509200042183326268057967845392847847950941195919144632006284833228269472728343131542949040170322441748234293498853145497436099503992841997562072901365788812717788441159597142817911719307776425369022878637837976710288852514393547338653336132085802739957379750152054841159392224256957160423756781039891145675930057832210620059914013052522405444786003523402689469817133490607149229036035704250951929662047937223190439912820087253170765363099452738290598898753127209569876754065838657705100450492743462203667069874166492802070742007530070042053019315272171361858006999972382227055450599923948374125437171042624034725025110124273512947493020143045371075215051914876783907164509502570710018967595952108182486534381845504159964716382438020735539259858828121897778948096107210352173080058513859206052859272510419722821614083742015698138829853250124398924141047426319004396176869022950815027112026785371146120452014453521726181124060004535889988638566516582275038848688689727842198848851778879692689277509827275879804203261847680445225108458351202209537328287110449117061208923966207492272273332760630234213222958925884773774185246948938865052526378987865828792162661613704718620776019199638708359644240435278147584501445566181033023273166437482580893427398317731548237812008880524108669199063624794826985470850351135130012823270664459117861718071723197203804983561894336010843613533281200796984994259108712019754347516759513227269909634636964509326438270313868997072009184672320380492087090534205908124323200623429373317383652697974791466573726100728565480878859466505184042364576058326703752445963160879749276677840027346268666688093788955951282661944852510937690707664294346450541023694272892269061454323592036205485354763358275438886747022220170535216683227629177453943274501753118083406259932256092744736023993486697729423408830829252714205362446997938912503476419021196986117766787448312248002431201443205228662605274544766206699620239214566201164861923703327849217858224766628473282321570071989395844649057688144970261962677096076761180052844472586569915906262269705623293157240222545292839681289027425422720772975770081833345559558900739459691143920417472850854267280230325599391229650803261900635704832160137160993963240027431548778461091562811007103903149399416089700668438084898669778742992365129271607744972299113350139282074614825047053687367549628999369906871932496181806950006790947086857164776169015463703626603861168879621257673351879268574015630037613995872968597480279520263816533606115860718440384277716521383504335253002885413484225638209362828070506355035120231078552952224709466677853926946304430377784039657234537890516419374289817688144230472356104386424875750045419518408219255667135800380810800041139935473645879277962116228143066064950004646894693486379680190480307461956980771373020326946344348166247613230987097247142169910737843190173606512868343436643073296035438441655557892317898993483424267723753273361018309010077000572488973566125083085150455575883238846840896529093239959654364783633358459440314994071124613329963075821266792666087187739080538726020354753073344066808127098884831086899365198272196138807482335824290133111397074338304344585352356591098081370033997542864118762557347646965640225324569029437281190183737381976076443077600283467069714259865567876048126974801690299634782928376003243528559225448656194241541105190799284939782021468019132279883705198323784404174603889017456440354621613288809624111562327417749457995452490155470551151569492594041828475148030901741732895565764425158783579206062672153143822256267423097334293670342366097107435511831077641840067763884726863330235057950227521958694743693109652050387381872735735186122127531475060439924537956535876868719138487052590131052345041083940397111094356399212013445150586219598868630383851946272721386735133099599203119073019440188663121958438922007123427561538210812959797798857035177230032367272060053109067720566908971669967941020942370055138662106396924080793956328650444098962039628479692399098127537313850519751472681234262435818538022727283201098608556122562781591239855225325897017086093220531987132329038310069235131746276113810266633085838612653942050785337113191817816664877594172925353913422005686367401393696213538378842071482278294906562366154875500592841008767970219613580573780131988899742206538029172986738424244508271696521405609676008211726648843621569860657957295961033942060567889463056674073536822201812964861329538018612962819106432984922398897306909075297106680502836703197191768151857049019158918410655660844387023008320248789589394228205354974913770722700826395983428873857515851984219697266827997406917492962201025039646184883784440421728650955771096542167480682370261935570534630456128085215770321671840644825867724285571267386225182589480626209039622581777451741616548495252336220078504507086383085759130003467028362153537234419180610297824760921259879846079424461362162213548212506364949104642011691663837460427517043430587713063929786719250036169327574125564066660154430906578717786406818737585399934893763847744307452617857185373398308013446802217415858623275034731283868938677947041694602046372170488663558116121198734712656485162476004958723290753923838375356024419869066685506089968623876865103000254660835451057055741874979804928862345698560296427966748515655003321602413704186990054319926854872366615753387198423038588069839413029914236776421093599389988554079033467896742134572356214377002326606149541146742896312861241669334214527839326280132142985874852335248234250071426646341651040749248206267230787409760893164767270400583490182122661181481107607824822829162640760788069209151440928745838430353830743614451956174049236623378308850789984222609994613558568866757388919833302165522817553931318038837996196857111893891164135706762764888053728881521827983810757570508609672325131188687655798046424939203610695672198127666019704894896952122980174941035578537055994834478902677263353754154133182528160859850113632286535135644824012645571558555625779448950868536296160280641040529815714405878296992587935378712395423075041675979211970913927397170593687047944743537252974512540374158644508037601022631342445153145251700845527765039736951656992358327050749306294824025812473840422813036541155583431007403080406194563791661332922907274430725589926895747467693472472064571404573127027546558676101759799909536386072289783079983973100472878158488354038578854534711077714098139081415432433819654536476842528520086198372609550591343937810033532103704421500308411411886194419676581490854488056610647054295289308773969302362658623503972519967537645089702265520054132496487012568232012938746911752275947594927468922165992659177048431431462892518580129651013087789660696818353345685840192338239935808652934084550003408249575140117082074899582313316078589188549855855165774320172197509289012877159892645967823835651138381310125887270727810465172254233730545617139809018256783758626534230904563117481420197576674181270174637545588614451791730943229465738803294696212832266147372640261252904685145438450998771460448203134251503838862248198861814389939843847170711298656981018014098529118812206260418556356349605204901146267808690646758030373604069579707130828406448461540581989947239632191578775543350209612314093354151806761666006266451626758214496159558079866332880606452851453554896082456878479592608131184103599256449451334094737048304776036413854768914221493593815807581084463846543456481652873638802711526464326767024542530466959651490306804859226692761041639230618297925958950192993934289914286495483222567590316234151897098772265439068935054679381119342397877028208080883426813007524179467013343540771325799395951994288604145296304016156993061629194130025461979583686295946289621795361645426499598953284699991290533045636617439934425773951685105378174635122119508194272035804076416895569271074297656028008458863851617328721111934837044024557165835014034409361545713758912023948037609853734419356586923555482074733038164931083312550063331989434845766849064330196901923275708809281054167397546222176938956630686066813456578971738462689949992872432726907813213843663729414991542688942070307687980439118324927245818565835315260663156782375801744975541243016091011972924879392481281156261516950104190551857996745428748367327615578961998766171298031246290025709919147682984786662142139312885792359089648196018419854415093937152097496756320981781713020724370003880055862265136161825107703389650690904930339986285047635360270804146020671151596970177723645646618148390479200906244505477670505373430969546304243199956017333192127328023871892172246683128424272900080399947314497429179940574528146162714419509431652210932496716854570885492083045227116684899212501493022760562587930325174299898277443180942151914844648334491862839525513704684468790635730938860385251612615880840490682913280828044261303120640732930936837778514381478596870789252196195840124154733948092326985422398352478133815839358510387927759432221421814538324817494440829196417553505004018809872415439825765303484643639085975611204156131632806866154046022661428155557369615329680124086561728596033396569352042667853593704794087114121258084522174509931915005704038951773166107302243956042886947298982918054033240845816327852840059993325414538582855763119394192232028437501295467918521694867996644557348748995566511270232785933248204656677783678235999958981834652032123705957820337237128516251318209266525493341801776352852339897465405198315781175064505077908507687246906744896379730581187027798346617999950307703307731075251189464818269303919742574181663943796359444286926912929724245857489447262630724492401581312156286014462047847215404340408061733847305657453972210220639048313603707352031110393966005860304843277406895578766692567230600628291948856347139257058694158572604755503270881294973066005181257927472076561004747024665388012934512179807326966639464248421445040776767635131407973714574718079541610341327494022881169532327550393585287202658011377635971647625771050044941833954756568236751510116092987571229646863278712684863921971222750726323377660212530700329076918209905902432341238274331771863808970028383891766335498653583101511692641143357969648638043723851212925972734296306673083068753787891164854677269801687838480499962919056150313606567483996837926954676963121435200849098343263681238828466441820138375907797652631234628852254263888926502963970986041834685719839261295023814467368633302160897406612528684904557751256441808323528150183625030906542334337109432883335123982815009582736568235157797053417610710523103664614663245254669255335183433964491815686064401050578875075055040673715810316897431710573614220169547807400950517986042340028124342570457870506648347817444196484639395728899953696170457559273583962958447201553489175339041331219122237978371363550348391426922055474416807288847380591501274656736254143524990694250690373555288113523176982998986470414241026446287249428480905502014237082496597158966637997288572718346256171032575281702192572024227660033463746875691973941019373876900745876152473530224923835468132619425573676883394946603524763816258125924262351333331119818491523874606227311010094578005329728433911029582017192599667421269828827273185861288609676079060720226430783260514050076754510854520464998332612229242644936430848788822504828431949458281239593074078599562382776426077155259248105045537773350233469187818759564972389613151786899741697264398511698812561637409297066645935382475921077122323366201042012002118678762815049212666989541722337031670660034338165334109336043227513662559894800308093796553489688735800266160878076904693288361146425370638358055840057324466009818055534850430820106816042361128714414360083264032544977192962952325373455497031539491839460999912099374673459652932323830139625950560921692194404441811011010761991528919446978046504033255159848157113062088551176689298134345523897786553748343812324309473465736396374351888102570063433615596579209271247788937502803526590628427158511313036401987244600523441445749672608353151525609947049528050620405390822347728473705436604149099444188017969008986097048560295347898090230747200974852867178450495233444939077531948380715019285602663657474328029119499867486113714216903992958261863963412859780998205375903552274921427303569997581771897752853700181003598803453080656748628263137771968931892055445139910515943971052067363012980685740998624245892068054794993614983941578584955029479031134194230514171030232166149027442378554803500407830012977034432691592698924045982205882072704665825462437311190327359612463928533171627913043111752988831314514831802347911358375272174526724007190560989299299724457322752654100692785616808066672741875638876644961740134698449129014643170091820638958445559781947970585369883670985809720166568522930062470180618582558361352117584148608922793130198552175549576289308738052905078849468842790774533088917282785088086128621702654223966279791007198694008884051703820512724785958759373113179675417229314827474101429566808378818509371871379411756219736341863517202609064941884561071824705451155115999163753290894892007659116600988070364907918788072650159965017532490308886183585249443603518848878466696868334334256427117555004745821805771313657348105780981512098096838982810277171576769799100697272395962394187872534639516335111064721501586387662618356258947833412473170978460602206469140636309581277695683761764442591431871596142334523064647071508040554353070357665305024484837728392001848854047672167983118079467301036470208748411481405462792283354739067394029977952868082569798771019088844264990716725268004977379429534296768578720523432394306566591631078815634781285645661208631832305919444484991943683631671401248319858070625448849197228322315400445184122235954889193962918424809382006135927017512550002822804807787102759323087880190367295444858941624934274548463753476934609718391884691719818641830732743100811018359711784869636169335204116981921485399632528095020926295166908097779054732026841627834761386092675800784092533419436722985811731492480949304016983220062094221288665638778028484283353702816257757512740193600022894571808703043082140393108124629549167568677321929818755695838368467992494152680764068554705434477952311897184228792206854251873911151845446111309891333935731850819532220186455090203801339958027437405438322182301000852869105308839483138274613115657804316632345105997826644879463029180918941907152319803299535609914254329384711228111607716808224942982966610576295160258159190345088418482215263790793282318489562886524527798242789419500303650081680780187909974641979398816252099686419510388420648196038346177506320300178914907218171336557986381738135078036164593270191927786475792828961796436845240452859568220971610434943066681850522853633902740869217244562148307821837068168761285964648012724322175148738864061708353051053866070347333887195028092547808922381179748776519408673907753140816273361175332386152051706773387149589594362703113052846194333325134617457942356509199313018971956379619061807730390292949908289125423297145238616270456279006620745845061413441741407882533000819321398041891995135314942543654217985225367950447986836306897031351247980603411389070495242819321178972392590654778223774721402144022556422608502178338556271229824266215243573876215097212517739415886658098384349732429999955812546124688080965103512676104589944290604325281292136118183360753712838031746640366258257974198745463936651660341673983488051582352454407732246849341209720322894027583267890176272244474159008126797874562126489293309400811042286535763973906891447261832912402823612584158418010781702264795192488690916585277806217964859471008226045949460588578457821983184754037851776592225602564741318372565015993681281823568300750387978833749236972442881533844964330098034705545369855680970326525808928566096561437149538932528903264237590710222133094778055131985361055756933524950348414270153685835349274397144424103110843062549931548560140354166836766435557743594164275356902371282768372249961427761589867698120167430725885765746077124954103345930546135470983547367901592555839190617230352708527606468714265573062278714814410912414638891769341946952619199807054806548823768596302075696614739353514057413987266951556290278965378918601069585804246744700130735833392830525874113761020450921424544034528837393285907473664764871482543416902666887990668776845691556918307317486950756727097031457060633782896668222378461519923915905349615776388784834343285109859549486975259421626984918843605441180716323332200809366838655280141010509735669885639731948166870513046862475807115691140904221405942448795820750003082385914646038130958478391507989671641469297538658606510881055380729021192126931245487576489022192845249141118690520736708527268740690258162537033415355357843582753726030129400153280362149858890850481534644124141507249264211508557826899276310027241037773783272610969440073892155127863312545753458063595816306161540493924799908962279061758780392252830198839460322303815308931457204288441318754916212605785920254876048920473999430281288363273929497147406862310380650575118773081362335399866030202725580506010108615528339839026409960332439429507761953763365754171077294731579548640974724429690681379023786729514725326528143442324022608448367973283004638090901801148512893388454564165521568074085539723073231790403904764122169101376371158291260276331745003014543788809927399648102827993794124948258655798137337450548828770153686861804114875835266408624115466533680323854003905297544312396503423613572003632114294496201949014634761718871862710722389934912031925830993204930982644610760620285118656735740391029358971367268638449510135786216003732257809015281804264882186131168636868429404576062538412943143205716202499865175808473770054504904062417722456375312751725410874280285846302322968785712775144151044891972975065437553029056052455872939991997372663500708004885044169659600935065649645368584086618316276020215178095820566607633806296591063596687584981532941259886157365248666557295719058619287979667488585307319930750610424057818883014439203565094157894596190056297475851095806159588794557055580465755099954603877031835203102326536403042905392665998681084242544598472259844353826212420115740132408297880525202865855677254202353776282467852842814652540684104466080493507583244336152433842568887052487403103152953637544985005170626188931291710906017973370856123011964831772576190623736460958557953081474219947441509651851581214183389863423712785065025987793589423820403487028030741242248369292150025497751389597402271339243160326100152884175916079606463341220766160973815545358168315323982082643499045116167475444357860316674752947550533120080659679818426315891507483926704659554500296246469182121209010590451428179050594396049266294911262443772117211737206310759455540572465946619401337930115873063631888029135431830741440357344501217367941713241185555603183969076758740243836956441248738158055233700478859016895965032351954244970442656132333647026203400299901788315787441960834962056350421442740893821507629235228361788660758713823808463386729531800709981679245292418860735602886949579973123856120451866763036699917006901707591527129602782917383983438538622846035590914081235975141426171768664786705632315475007816976394830547887883879165009043944889905177553650742760586214459179229505016015036401588195972800958728536128051311053582471884353336831820005422505263863303952748675425600087043780241162976500046198378288717001165582914461915176661015033493134799129837381819024306122247370160076794528593442286503736199400920730189416153209131053819549659794709255680911978473456433402812198366146387616776378363091901465266448415613513744541235032076380417621189697893698827959017604585257603539072526040063368089542437013459767376631365923696905844346165560563525835781873602895079759856650422819244075792490967378872180375353695523743530817051830696152803903514659646117200628627610729260046030597399909002402385032331381288980391263496036804954290861614480381766240294181450718046013060378756346089367519827086505130885164187443113316195134407530314215388011359307191687655582657853711022991919568527731120850328904070637248020891605630431027090248185265795422870820796633234414691530303711638892159808419038452382254482889700688207200382763817585963062594131495959516346274783069212640777382899174187182369001375887367677023938874897715831047538894430246425892609091403130451693457268008068624997260519873767441812063410502220387722713430827107279323331371468189251548977774485394394167584906030578232030241506892803997350712717226187860224252591848237814420513447297663142641143252238462430283413708179707014774815165166451213658142631191548801771435045239476832374083558544754591443053760171473615466129308977631700710896750465486756217204490283861395574208436522567517889706184210335407935026743279668019245762436745588107185231369402290670900529462059990529236374381223994816686424428420551646368637289809135585451525856446618346885956923273644365950921757260785058654258885277689118009063479233848662748698894822519245888009411763268216507013933470374698387511817244482492973434398640582836508496490209742907070013891833655018626060977778224300084793996849825455625517719571691681751357730964907737785776621824807279834154610996024183727092410482486572730769491315943817647512587148568605596403448140823809903567375486026607330799222223091997895215627944488328544557733143382182139627125273311958365722627780079339025602008786470726189971553295697229402388834510662180790570157877118178282286463859405577724965708688663814552126486549809515946344856448002239434414494778169262120762888629138394649774156709700215628080290510739386656056278104290760621116284852830300181284066475867181683778390635332499120728277914430505802794183172500964111800338767171311722444420017058022233866258299305480187071395667558567808751481513708134424832827215831888777344365051141823314789774608317074883419752663400814246535450976204722264138195504036678257477770487151500584989156814707612381237259509176134572434121088046414751141820829700689723115636491702222646644846013154897659380817656389109861343393634461522700474784298532264584954428288306995022816655719330249107439793059961486800067317922040895469094671603355318404043553085788429570136251470005015334521585473382345156424383709160721352139933142664931828564951464729006959247841710126476267467068728545200411473299211991476676649231527945393236730121826730215539638349661311626384943408427864553764983490745023545220872865383375933157377389012973864085333605261733301687770293181632457017013695654506960842709836989707200786236133726328474340606704213377969206951251941711803596820928179743885642717969469842067599006532016171041631544153521689248461695573110425125440744748645442100177918921596897076193787862248067387775756614378185693902209468303917096684075413557537184022740816155771175082634117081200591240719241782437831920394637987841457791279272229334731056124403850477196892333419381502115366393690575807085573124244283578637810225896972116048020137529675382377243808484196752989836828711288098998145201828688995843113277646707046478410471659923063004229864096031910617498557679820764995385943538235384822833065104474141183462589101404925654730918468954966641701317095100181223912178982809041347178517779856749803205987044033733778139321202336128690067586178487329584472387261323541007163735870510586058895251745526946729966634412055064291342903478706022903593937414412343159834940524878127139688294773632514323166113827997557555294095835256065812008515644763508492008945806194878794226273615561588072857679677210920153052103356315313262296289029267012746326708634946807962021208410861269920628883328539763103476602829155083773283228454241344359089015488616522688577561365317356621892564837161495809328207549850732903649701397570855969219855127639792837821970232201862248630274976883503012150730315487037706085336209312124565054004252542079735267574575228540316806692344336139604434695206685828185555542536272282748778531046248933155196944582462203497599937209105994170616720246071937831533481269804210845207037944584022630401212132621822612132330319654068901818237808004629138809322771935823674422790426231661084205260356987353818558681376224840901550637413941209517388971330105962376124476190039795762442369114124408482235674563458603347276397584266632091089395522334772829604705945831407903343286142183990548493953695006586913791259310310252306941288600005936568305699795085288012064250556156071539412185735270001984329855265666445078722260460352987279013874260498870486112206126818129806021566263799092972680236259435439766329547055426972675003978526661908429604285721243352164606532107232989118343196821823724041047797683876939230973957580206981687188091592620721791945383973924349368203231218151840401834024929815021503740899616774807239846137046033410749706723888595378709899997787888398530424348192765456423192123349102559959071945124313758230978304210603209762357832930477937672791382689495962585845316817132454617211776859421193126324538228535475006486348877684033727815023213897488406682927219982467969929895684734076321974400508092925679192422080524475658627936164348936500934941863035547631647355207054853298487637374204096788819401541593245105833264404338262267132897110552972084114965784658762902129077562640252905920713499797950662882576210394793350575668329156059887235777382697716408719100478919538386452301677657857508116364654720764887411432534691814387376682766782003525132082939351856741319935296909265070620394788057707128100590692916880325314267192992661171843108177620790420659048878651084368477770705568453285449849635704146832726459055092394980948590199136445248865796776693142515346767125789467443014886564771968885229171701006139733597578797185461327409149301543619977091223096335063245197045993516978768333520524882150865589839260988004482966978933979796924020747335436523474378251567792682177253719253259698270834675105171338880216022854159476517396860553360387784280876921488050985542800460084382688876034494357519680712724135494150101186459372123005347691585082454587680240506636513896654469590015845568428015829437144888347374239384583043283036055137062996124711695790959456007295746945536998193834752045853334940498676792282429730242792364673038704357802392056638832359535186429228648267741875038668698925031830682965261885098041316116016025531357480533068723987299700213514381433965670697206800606164520230666439868120058310883594304892447559009519302337076344687421955738900328735800479389646099491765279257391402822854680173648039311801513123182719801588974854477100275307433873755991835086068605282375949602991417668772067204905079652240546894870484141471710763633627231544439041956541856270044039184438746193398163133494896035668086504819279743283807435336290329285494609633350950294032057660391328848343235757943550631199132736839489045246201462923822837518738342388735196928353657063324253925530150415947099654977426554577717645364434966227329760148093424768236399409114509488524433443170024534785699695690054040404206644388482119836905339977120876958197966759587346769776784921867244544478775419444815076540733269347568103086936264954633698242106607146688747631916901611003223767105132422891767926729383065197348973894443720102450082072809573809628733337287010458986723702612175051140464640057391140339769408840119813610733853026392110913867045336643119685647661737883189634316788720473845905840790190474799586049068595967745314552367726329860599213424248427057391174147545294066320030093344452225798166126576586834475646251590760841425136306460302923649430272255834986164648336650595742757601096523972849955262690051208317706766270733464447709425096572417689807948022588079406551116742774927897184411328529510667048703197003270078727002781882777944344453181845535812380918008477408936234966263510502231734213991264019142325754041445263613138963892616231866597652423735057369770725520591517484723000751036474898401096641623568998512288482116325564482874002342649989889951141026095551999211365042903387968793597261133831916903268674207528564482149108657108813006568646377026619229638758739621629264271992070113440489670130496388274142701877146865433680247245195995366652619097524995163686199441728814383874746759804962595154459748092468198051814959418842660081091128240460756836605969550684362035874905323044154629989204035614097085402635486880182032670307518975056382911077151186781930294848905543996468173577681952452347746991529387557052262740353328104531234297913441637652591152629113201749800229329800526106282617786288144640610987800248957680480582991669700073003408459716744334554116973465907917802984161746507771766628220579284548201489995635607628001552716950033160498861656740461587476755430818630267566342340019205562679891936258767755074031288294192736365185689493033367433732503909918678523410465620449424121579444331374643209824531150002542036043062087656278124632942260906383170955812537879958280062789719449153754192315728640485917141506600136772057033293982734530831640576057859230244540078503042192883211639926466331455973527109870943421357195901265550429644370448739248799534289831042333829676307475627840378752223161512072344918323117902134497830027902819793982323860832153105466702719169997005494775378006802112996979868358577231707422585749391246171268027568874166787983908450496129999489308109067538431579868265838934007359251507877829204228423593462693011424348736424618213377121091420112226917285071569499037416264926069467485365575289893411024563910407054109208169493251578170314577412013881559055052055732268949766792946870305593849364567112370633773133407155402421433821375807054420822260944170428899467327366385660506715416971102514468406503243744832896526435360040086940678079412551199349743792364483100689804638633050328749929282634575911412806696059013448590209287483709432446458988785761686449915271050940876499799964707428463115998501968896649302201733994655939072017260937834844962154992816854254384927986500763911423096006942966221186596102625530938814964815349386312884930685480151144142222497242897197276103665463462274231081135687333973222705492094582906467053037423762351749469775868136102447283186255922176942422870601165345899962372477690298108490700067944757967126745149273517269636590220260046524594285435627860174367630928738423187914419180560283336884160749811460618532376380785561740167133405499455276771219927917607970683462487559875585211542851247194294997526041224909135863933643538827513513973147512904141218521594220263941514113912815943319617686951844062996392619766413581291615782785580604015594670746097339016072325371500901189857398406967508011886629512023473902715584344618718784936399086940888764282939719967995688858920496557581630679362490387978919328741902972093366991324655369746971286612049138155085201267347309658113727089292602615792484081143339075023797367723532543770522779990178837532412726886177392940145402129779229802492235252089311823211891230107691835732429536078224741241148923798641740064857141775309937983640692771993220032201987702313044635461559416255980804508324828372636815958650313089732552258355764648886844804344920120082253588391076476317948365263363866759109619538169731423623649862254930835807216461400360218762164786187478016529493604862634360140814594339001306286618678759445058967576786089558357440323405340055683828987149704170588226596195941906328068961077716183450728255012653961991113171965528515155059995018402940512883692135127883051444444691529000227418336043173352515009292192556473730609329189066799385710447056873002067583549799712746207294797557374253778029677190334960747475245013435884561578062121692854576639690491010949198066837340883427287616599613071395345977988696316047788467410641903755186264905469206854489828655071324283692084496598061811380277987502688255337983556314543768210025210195188794173774754140268582127598733583944971047923667079809821144322794246226406996062531180925075687479402029246671068566397290988482923490503074014633482704651045749441375061240585305550468833217586469020965661019418762923949954404938433144355149187394256605956268888757426028460190707246785981977899241398881436720098402836687308141185568301510247804192880794475742603125089251088678119179538388864598683600504067584688476393523256858819850446636866892717396048400177394041864119249006715288574102870716964115070822142255182792944376519998860146731179008630928942909248468450265884028352378263672023434999992785983632155238706467583213089636088688755329742986569256256251932427617433577282946101097631774050471042115849184582935017207773206543770234063789893591767272161023623816789696865316275335345963715151963431674694412401398033407572282211594453461267644271257950576330572617360975069811840325391867788953332446390909940410720344670213752394620415792930140057552576579262239202969664899789247499036167074834658793454374203171156759781913656685921416618245692986776153606962949317709454788802106546424589562958660084547518020704999655980375718161613997432429725275542078894666721981813060862419090020466056855886231541694957795268902039123311989807656317797301203240247906029487202145634140781125653311102233199701076387945695616143331287777824389608243255090613319936043083552563980648423700934803428956585888330788277271538987096409047794037938336056178262686221779521130504420031591076357753715145031097480511311014771125138931080126935129194802927669527240309509279344209580781593316094148962381374147784006767631771050493641312420433818167235124420151526117674250256082933129920745315601961196461159172064574375804881569976665828394951490897894325790631454744284976957361004579366056230680764790769152948529288829123934870384327683010747252332131172459102709394195064281481274954060478337343255041322991862318556100626166934773336153195792252985825637571129293579914433096058317744871743671489602696514975994729755479815128982320311095593965042846174236520847469790633964855123566998404909663363518227131862566532400145245734407649488309567432964792028951257243225695277830284323430535719805963709904713959572247671571985522170847336607495350405208938070232482868903129525553982128526878112981692667630977572322484603040223983988707433330145641919565486282360543141540152624049432738899674690463422838914359932655548104588067535118423076886385726459420423341623922433264149780637565069748168174382953400094970449164295109006475466253607968892569365686967205472475389097809577549662514330078417493341653615415532423674516522107193798473497776466715839010670520113690658490975960627567859066290865214507060294343117161942993161365653298897646085226457605716705362297418338673064376647217139547116530630317435040471643900315928670687597043757546727096031708274000240398756888980476414520180400637985678304415307051091414316231524967697469382530381541274460327091479185946406276973629636651501463627649478115544516021128974143769176329224618387068336495353097162532174915921551713493017838219526479215973012345072911548530566635995347141762284402682760469430612945629369544118469445006296163328455914729957127919645112459848207110905728706495611973868537465684255442238712339064852643265560254260566201966345177216162284336575362192723796224865877979521578686670780162965634381831353372022404667889190049024734835754515108031939529939164491084025611382582540977003499373421654019680104408574390255452840881196952062659962409497685962204162739341623122367869128399127078936814442831769688245656170437929176731095269183561797197413032724083348951368039740722442139955503013876859349259352727801844744769323840466281898284220104587909278026899091165242056953716004052407762282086279075520055789447697727888886621368776089297618276856966911247837549720871258734181905233905057102305519014379775786382318910062627765307943630569606874846470627057844228171640716048934093947998226228367123031581470851742749089137938688213750535258365948808752172388279274351989377750781348710548399442221183868087561796651588704446441710409296199583745335705634023194402477042546374776099623951192354483707093774002299051985696983111202561488500028220653594398541504299927897068052883106422181854712632778791850714214616778079854363569036120535921740388988998581382620176152578623210101959379453264278905781341532731804171035330519102958052889771863117074950176050607040264160957259518735242586126388250265652692285887609945030809716287098355718601739576122063839380919487837523279996815952711455150629702488627114274668498889881759861290902630050136411503026303637952579457855021985243991708090998585428884179518265465008476601959998046101002002716359320508848955808291226838073003356592947843962334669960370348470850745484384355104936238449188061250344363205423496097826559801391242117661312202320638201904936841805127479694203039093979012274214749398905625793758292950669464790452967636860688001259677350900729830306194928711387496990082806789419444148955546848266957663488774778338818936790300805997103598065489335901583665806759390476596608401104748633846521075837140234068580489137004132913666952092211830350110734115193750069149622269471935558535961869471979645275186982304658569685777193649663463719979227572722805498970972150968825933877094002372096596374162589605554265601811461324643035711749692721877802261664113364280409081146231325585474742683306933115391688487261253809285757410676791019571666901914833291306478814686146908126186056455530021691070458396813193843182338587206422838159134220785173379807930382927125107038669810805644228341532665490528466498121715605258068485533517583044008880489801498439820725046378119821477255847811928773790429913396714527879656817599559616242482424600322990305326521578897383511149601785588301046226757910350645281502851796431220976968987993897934142084392148372604193115359484155997489026711547843246288333073792153645334306884091132462702915482012622299968694938811285232375737628917014955584681116070795242808030662335683222292417990413068512626833003254758109198458782148632805980890647082605452922731323429485993549768811635783550797649885791807636212119267016951519475442934620658812103562724631826900022079674818880047420823221287772967397893542589642308434675760772504528336328576140159191356479532535541382042702662685069860442374407950595310822694304900087818162148456573321981670463672440324967493894839541849233247239271656806543629969854883587115945315107389315367637632705339348793394000521080011066895392860927757193307752833455162633506860904801269581176402593530819841279101334539482292497122484452735890497224688540314952635585584110403467948426275310385778389290613870629679732409651696574995212417352441653998325018297583753188947524339735402658875062688357141015804624453256291826404802955588738448080754658674922896775288069144614984506886828725456876513760075582948261504416943512358406456994317035568849800535971083160718030998969582614056338655293899635254188124260894236932757204995709128648458619371331415842498753197252090401225179576556243958540173133876598379204093465840686627364872297922289599367564856437990812701967086162228666061337984251195707427531136655381972707405130660922023702692109037248605596985298796682325459869770380566362659558371781335237978941178560362309300934522194908142382689905413836415111440054762934234461287036487258198398661583636338217535523586576867479739766862951379261208237076652720283855796902409163171390292222723433277407197776543838408989463711131694193071721593565956905619666518532621957214776666701981617293748567533330858010045718601580284744601095302958043569383425102955177623141122570242621965593277802654686890377374384297372179714900446019229270583653321793340517006575121232236197218716916030622650407429201471093984334749182716590829439164215379189412854817287039002551914216793984144530257722977556211164980163648957521353053327802319138026766560891894541426763697162272736002468901753284944371408710571052989344355552248275157266004871079439647305913147644271208540502127499215319820840781149105902946119014546583406491310434955409275326533772480615049010580837397960441818782815891587090087112606903019266908965461643735760260008842718353968474379853626989128359191743461331005218927533852945987304742646894892592126609235381092650558150666567608132480104925609585271085185490447199185901368027424412845249385606983734015106993027539323897430617469857742388876685127565525730196509726444763554156184289555669254953672623978845242849846539621513581142582114966070172845541880463671946024805924621274281911627334866142296942495267057725663859060665753659400119890049690376927014971605122839106889399539334578743849464260111733312630749870006907320925650818847031792618310314944370550439588454572555423606992811314517849954717963343847570308888934130802155932620201874623670642927697276825355054765466854654612418051991508827774985170293919627386080505347492966238387296409348525738235932149776179051194815926793805075339176959410767352186372391350496811685047454688784631218965973116887486008519681220384683791922308613165706254182250024521009978938993500238596672383099165326202450438730234758525745716222657636288538624005134719506399348126856547704264062792571415798555799573242738789170515447190116250067440499933959891696170936891897755146992784125143206052519068415288317513759600900984642742178529018597067826813747172769772732809412326059581316782909938618474923890860461675149372068400089535257330229419161917136095182566685570051197156931149533331977691387184721379657956928795610160607995013729685910227461443424891529532994964219436948621608837691974578925157587419062492249499201549678481177241947618341792242974774015946014267385332288605164415500133208903441241418176271527710498257767226389621717607026581207261542979026641624113707064897858209810168485339815247008372786844580215199645835721506877049615167875582377022140434031319601259593356852964030257194967004868140441656993121823679733792288689820325927446324014179251786712873965185978310203780134130950258218102388287589197060737992215299719893132583729204312386993156362898688630167222565321623773548302154934413658408527095532325294497011919244629786053635416533807209035395164310067207271907194232656528300134830082400435656403126066909453673257120477177316131678901353807249403827370424257223062018127167854751802558903121686123674526000894113377677523306991549925158775578184215011970606502584920656143092891796088589550674431762445939687265692241407427031965633408195702941502828421819324597611115923831016383297135994713033581518600771668773236114477176114509475452576680954298511657018751305911771004086621995163482655802687059229213910839844623100912294716636732111326304741675301692834852856627402834117061851774310625546577436077064870546558967134546994197810052123861716661426170575788762026133516055429533166611025061664110475628963804245669197470613304908916507397798094971598971002114232610496268578099563126045466814399886506450163563380266100135023125343126441623404123395569749502805081997456825627351313372223248740001715821402912317800915141510308740966190275946792546698389133820140186839277037473701058434196240712035486239503918192251268495877137359573119803632054561071219918228899894867150424692082466606137639842117964883747163310193912157326873760062886976663570006934468312855728345571432925290271230952681693498037650012362006731619968325831856820432226140595342053502593526512570531285937633945431360385470759115347869666715366187640786808950417594858337177978132926844123057991265496414262859790667093908105573905695206390296492768120310527704699628678696878047290007389912052314790502020326186951410172632201913506626940842996736350575964160610969799143219456554761349415728639185958746465356238232324552353452893955801875572067317105731611058188965278795606764684843036070635831591710603529147670163739393836921352999360494299015446254961410378289522685803993357545482578530144120358101701008124721988967156337048234090965997776626542379177761514937210537818967466761761873280455065522594034848102448461103673504979155852479622563535329046575474734672090073696158445406404579327763034525547787693731153048804681842905529766254943983982251877940736729664643209370848297069250862477041843150935876507694016549054133004108893152473976925969220336480521384556604494089031534645109359570925481562292578786003678650161194380597711291803163494105137306106679892245038550911250300343488784926094973776576987369684831994550075680970428068516611606285577277914745183364768256500348504559073821018176828735043665279092095991626701466112726850127153631230842865881240014369891659388069312356273790583434608817137471765916888149592766513811154463608508173944936226454814784302867673904093658870079995698949149756449233560086160409455407964441002273255391786757140487439655540237409544988033126690264053341022360346018075060102346778948581439710537751024835944813638061658641526176948586772032128171051304413586389777416168388446980697325123532409879761406470664047752428834064106531722856026180557285996525697800947605359075170619200634873738964076956408389752111923828070801396264754549515839856358321066715521972457867506968739400924136084096848830115758376934665660888055241418227543001528724139010365758768980634058159154610926046511955936235264100788231587229211081902242740153586103696332666663709424164505629834719245140411456147910648816196020652304801992899757758605538051202435097877765207561466940791440971566618127128409745155253830836064751685018182594639087962391447017006144088465117751752929129670002818111460851104490284007017268720761963360283706158552377687308370088770051483112722787101789845652519632883398969019358664375324413193275134156250136870321331636650773854632511101909805113191292354772015423501718421540458510361651088657642418493523397169094878377417035094190662861046404563050698083090446075304540686572579523591554939899606980698122050924439288779656105330312701821786912675639885129027128264419029568963483998570971052108521002914170742119539489617806310764406073826116689003191988318006960852791814531299232792763262075680689300867779252738334656410407549432644941114120768591044705692808387856111099097032430659439634720748102910540754734465149711522134189317502986984191335438162207394008641742745184889254424044932116200692933898038808612978266456052654608071880535706410456489815019627033862369152685294218111737478600259013764494229177203936290021364293289926545272353002943201265427404516720509075885698860027526737251845490313102791284200896254005298766346317143546331706123239818497702688513608235562556139161621658551773973615539984781511844101847366984989293188543794736760323451444825799860683095651660189079982041203552259165450310985360605572838258935618814566715509099359869947174417653738202500724250792138195965292043243718306298382187393815646949759933569371072884595861831353137299099659944395547173269397331531379197267450791148902957468155960995739023825511319954645363707368506247979172519576624294998533009008643514852367996148591020555344836005647045484796155661485709655877043419217084451866553955555359065436683780754440462832850745226598860862437856395410889882332304226782348546132122274717355327172774562825195281217291093851562048162690578710270697898602934262229228215747873585646559106831227024522510153737332186773536014203554759108332237401271538071399353321175845186937083369341968953710103142106586361488670598504420559230572676769184091097057857524211232551117887285374729334479466477856023410566802157191132372362988602845382647229956362326705797163440948045458663816339477308237836301500081603173854301742521902977904915926817316554107291743749005006061425800136244736787659453723640890283572160323591235288998357428042767431002621402217231929219040581168309410874686473664292483652909458143753190307894652137462931917044816785897575900561467019714994531591793229324833819080785217984067528677794942236975559369134856109280522887457106507335010993483432251682448012976584701145971024688379636454448687842548359360377237548994307687698092112581215628424627058608340093536546484605943765516829724985876305316210614280324659252901233033744391001451531227714738843683836376878090274621545573771406779539498214402171900242181053394101956035628723382298450438974596383373221395011128938873617601795550998332395621007046717238046601787923406511284818243646392153376519990847381908858478099365963762172737981571710896123821887263854087130543351958435540676558602692364625998088306261666224335422185996451770736163580462510020928800187900034794331089731825811622796389342444427090982834140707528029275114990621969997342786738057146221334356145821076687051061070538507999674689297625499995005072663460769381743212815439087327243086266435339694602160544942859997298387544891577143967510597181111260592818512920448105767650871865616182385008691083338819556177691097091200149907993312168813936074317186258911242453811121066473071936839068969943561674802910316735015428524668001981897048339758276337368812538253895887401506529553001820403098269756617711904038293731700425680780147873703427093539553893079020629470761901804612380793595516004518860116669431567279653972928435683859568151135154768318649674328293592954695565260450685400588906643666257623273036588960464229910338147491920643570906503399042327547024129502848852229213613888255862479658151819478744164282050415402991064049472041111567133553856604371836993314688877648548136071857548359067933651182006971957796374179375733208331833160697058238780642391967187951716090575235938952303651081543046469252594053844889670584676735435457837823099097272394665860754819597551588892549680851279241524650396007339755859281400929197631263979935208962762660993361763424859455696481870463323090651048302703179091793265128146252899635181452387235897225897649519546314075417028891377940567297768532357096213785887057473746461847255294705107351967804638576932673090846609282679446031974768205248006479280593798767214567632377244557465529815973449109629390772036586977123526848940688670716563030818554426658975902882091259408889798955046212755949545668993661229611051681086758880597073869764932809675174966672363500987330246275912066923034376617696744368322126698281018302957362515121214956992880936988518189623670503274883490904358918208464030329857525063709518314534950507020877337947691617928388717203950045831023268778533928630814537281299445699376635447004860244613437729393697748868429501684942501660513417155446603870688985901118239045586658705844551215873889728775936149667448969113362200493548087749505384875428933105631917453478327716631034242851697920096542018972412045828070804090836903554526971248041718932280826156613987161115514736735936219489513266548070914863581466076092020597652642562587435112842783797772696553355546818313365204809818756106755737434051905237424783785480965617849271564638184687391041366571343924828173437311537949132721853147611382639183568660684623492867229220673500750165596589787776745916513556003528678170595054939963885842389945341611629100774458417152122679589906104874602531948377209241342400618863328296368534954989713618420035424926344910055458580192733539671937162179626249702727535107830174088932576695558489451703265061634978225313645414139794890721427440688510370801183452040696431401524627427562125005734505688314354299090501351633513512785830616441613640677340636943807785691988536726190780708048612081538573409463939973755479201642383893540292476788049695244649076105224346336465039070904854314414191287905580707718312044488628816001741021215251826281456739898738897243072370721189612417482707559225290627272868875754669047570307949025404405520605415266465649093555302233704238309455883656078957361832408948705116668172290568433247883141216030256120590995241144132101400068748164590819355890427826676796923702501348269070673069775199521229088422933254163513164012738599656032523815937788444981113491792589388358583676832525373135397901087253493796970728137177436792069950431269424243626545829299470269821502763833354733395488527530614506456583461743044666740182639759225181376250089564791782838648314445787143867044248339850001389314973468433431897619842934671990911440511583229216521585986965655699539673968786607153707213609970308182236314587630269969209890456679863334308556167463137603178094903766791980274392062032895347892569456863647805113816718189559284678816473574333308444693515215126109313456359345108568960090474627840537533999403726026002536760993711178560194174455805908175932429621951966990094937952960620038689780866366453851911579425339246604367680111974241391356838435814628556595279100851001156507302516704050346509004208790670000708644419087428640676453225323099139253957642749862570037881557898201219026021723677363809584951727069748555873806660361703948260394240253065598202187087981161348922904000642896412467069001879010849481188572680206829403415245433446828235545861810961289573040394736230674596914342688270165596734646362526035387950196521727127999338688786241308902121068184446329947170010428256666699622107020814612922971041986830595544895259292939167321863936201674840346621247417352539111668691381280289146283088029591577293036423005608876005515244580839721496273391362012557315686991521523271321829387238407602693950011432289882291117190447447507078477699967104235546027155729111848092295367107236052867673369594195336842207413138607297168474179689578958234576308564533784892478811948737991366336990203583746001261145116833392901209238747026599358350756635824559517034920738244522347398696936966059029418802012252500372660790201252323119826153880481855033869877178150196870738577960378525737323209585386136420807137972882924607175965872381765640702706421727750536031029802210285928606831325018643419885436300320198735474844365401631296462170512545826730208669265711950978359254094523750419461833405937295053183126528598170368539758306715420273798910805282651767967202593224472753430508457702865164325380267232388359731321106134290031425475266404839336497841329976012022060338251205473140838916083117365971356497340592711936084561317170274032926157007831257907123443594987702628753839016074072600677238376012615761455228124887953383017506945447135811862180611704141746702244036083494372783884309848873105413453051161805938810030164293464226194683495636048464713220679279931338291931772148471893735077876203915993252598506814098450861452081803010705788427317296435832857561487584090602983172044353936149084656286034364706778274450458283438314757542543445821619705427246805741194487995753201233404890746339204652252845111040481980111467703486526708993366461651169487132959813943401218047135002259492791896736732761108505012736252096091580665398179594970647117913450951904582168006954333987805138353975848795885090628381521414803979959908607621314392947317518302364902042342097537243329318425453953328454488230773592415584428746866230986384376811171233066332604172405913135344396625749569762235761564021812574137560984020369152470733036192575990170412088023331878993814117287884803988039783596387971446994315730144165044466422102714093173900055013727252055142985308973109099762582754782782397394676927944235797159541913579414481742473571909064366524748653630610371606120596680069983970511324422447849687267677758356952801271288274489846486632237290139721222605904125641487624877488191932955415500925356551777629485896736298900068350595583771211590555709843556208508625658163291435189832981674942457350274316540360814989288775457362977884557497615690979132393812705448688754847618860463196822591134809648273413949129316817765534015478059789674893847879440247673864788637966048562705618145120388953157193649105807048387869263441072498713008502467710852442639080718036750098231281268735183089278700984963116228347889190740079331432858898385478648032735698460618223626892599317695154653395786728567409826146979475727890877460939041882458247900556033034654177052513630908264680408136163042546736915186249376155157770244852351984863624614241737390423430438421755872739069169710409499636540302937313176657817379234381024296963438157732451924452915041822902999491902437285135221416366536987439660313071526885076835262062982863001631385682435711277188365995428273929788148254950464400820872098089336049529974238592303797439416008969382080505885929760108984230096386827814002275841386704930583066337911098014437268084507555951042687088382874820720933759416116610620442550881208347662836185078508850238060872657068194392127697732617853899691085482461572441603884805870172288474271082434876790627901627542583003574361052726576863988625790249268167517617931959582562824456112826452276148144805919431461004492372333200583656295506876192204041862612791403552392429731786468324620423638727750161193051127650133467897496022887665524231642743621283273821016737913331501372394228101207551777770681348361611063880295593913929738732112038524372205250887395944333987062720438785849743158198134811467573054702893016967629804993646357521337038806964609641286847995613423408790272007999789282677827641574949427579721832833988285002061939967708123317430291519597836983159752214052420350031727151608139605159383207282705588689536830989696153235059333381975124865285519211883825764317181205968043659749127514175774877459120399736207629626332203012309141287317546619384631768293486653258445919869213453305420805667225528473429713893204560833427337874525522479572087364408568984355168505427066972717226897966196286491412113573974314571222163670546585475715264483650137857608466125420862638513704164089366478938180133560111756689008441842275086209018332635231837840830171345686944115781933653926535919379135817551393791368184797560055443207532893815196929312484854329415219554679166253659894012355407744618472866892402629547335589729690882035057158414956468406398762414449579105853911027341724223564435141525255127953859577123047606782929076284050496123329795029602918580651679357098581973883405626002836355874052004484407032516499259814822628948699688433965301890617209799385885430728661822603238828064176041040033444614056288313498515052059286567544985283909765514288188776257311125061875185649691480065258671005548807946872566498232910543267662258220270750603808835134863030184895753591382215397454718678434691159863615146512503566918051063144524876829008845637310221148296993190847527412798205882582407841823179266984268887853496147342979235051163956370428712697091743293025631333576537428964344733005686721468863778346062449025361849458824336730620201486447743176987013979233378083532156505099880021060352246525136652835714407954386416015265732685213704723207924561048776712764094915487692737029042033311616633699166464959020082027898659886938642247771902785007173312813572887810025822234005854363014599506174574259454395575174069216360960088141540750484467471658857709783548433948085765497118359020517971103723270169206623866300577447446353978770227726932928734527386951121990280397687100346543462902911909903544836491421607606541377916933979253394317286731769892302720923571246615259913001204317752845328403241685097930385939946751671979727175007640676357908589193594222885668511121523477900590034269485618715633087564923918268931961021161722601237548490068522384460720082033031648772525574722051511611237802367062026489389494744674471773409055386292208667688111120047680459102049006891192262336548752896153460833059218727540032623657617576284496548265335446902905303300110150815673175426268581131549117024939537619214956147905681096277153365633988887048724046426938715245680914166324935452125074013030894519928404758197554621021255214187050122353910980769747576397497269819446704230175117298124856823097194470521706038326179914159786728262174808640735356014085039000589061598286967645731133567853345645576419308868994248327607520871010863699313860409149143268894394342993590041794620925747970655657915661518714906531371081717839044390341930235481595837330476723469615046001882907136977340568905442376739123985801800731185724735734400213281236046408242131251246063357998142156479254945389322818471034299541996340986180337540600139394569421220367502945059097196715966861111317111330185917786756128769635177357373037362415241147464067043309207234581004480098413301212254679184403535122934381736600149914371746184182054740930738628143122070230712382594406799432718156241617872331462473247646423533444100602291967890828875232292106939494613929212686900229940908174038578639810554613384222750696466737594613478712634232900932391477673641276286330273338449574576872681198462989312760698540725882076840269430090584985116705479935006816750350281021440437494823687442767872197694926336331205986483143799175184274236076713224158015097050441170402490106656063844196287500953016709159675283225821100384259734820682207778105099062378834464981801863930413916318952558888129947578396378571496890922649426546269945335353295428370542833664536856417267997552942644659446971505763327885280098332248675655520074520844284284115702937722646260413363760395861803573136725308453778396706893125594864274603245439379162638945121781247746437591569566870658465688694949351534791888562542144972228813512954912339468264020452105313108381982414034123863390333007099922167500687363271246602051964044070588015061297121036951725442274499815142689609772800818138237099073481116901585956436615095126717112930400440754178469608355939752459751099604993797037192070655356230187322181061162787142999002179942169949482788812244974242765669425965457951301863639395132850927059257622272769746316008123278230509052642372101486966672616522051588135224345436121739109786859677551675356451176377598565082125863312783831912880521226411631244047204401869693020331848403181916894251370488692039165553385112216295294197283900602445960235576589090348115222392469587067480638538585857959049084208827259528538671968828053469877504137092616126808946884469803459673929775937404801307485401162480709568288585354413923738271903615387126597818781052792536233851267122952128446843745741005568220414569493703401704761976306102902157550891146068247636693748393658087444893792711357653652500678936166668059880410575773110219833986347723230345803691813578794070373109908474422639107027704848081716947101720420544867635944644444345078372307590636920188580650328948865070749532493105384936515431798525468157377253248407154579552226500153642122374630314308739784672282211202384390935468285362406890858054190917914650773046842393661663662385068290483324340373032306378665402934792323462450606253849129491946139786518344224639173692712209064677990730589053695741786153680645861906336808705484517702848973975934326695664256059165192121723492918487125392130891145464338503834475614042030329296078007979621330339212601279935941230832442705297045165920315209000149649750521570827443503479933361015828223940707496893831123009925050337647859225055021801868212166336189331260415090849691309891629753539860799102824246779403643701247428819936596538852694022973531858112733764431353361758587280219498872287751518451755852020208668617811251835717795318691769659512354568888531906154954588417179967872341134844809970384000630420915587254304474936997462679283373232427598046460706871372115581528890678603904352100602721479792903959335077430085083541943182137726451564964849677693444318034881394683610921334056564773877164182538681243493860763641365231018290373733495971483449686586905186311477854935818797499911696481891888795391544479078540768125651157439941229962100173757175153958825775399323378225500583336541354592816227043857561332419085996458578953946272793602900951433534458718380569442859172181028758950564703752177979297286934264008713766877819662093333948284879971206581901111912036771775825263506250739097325930429918245746914122062401698838339871022396964007745534967767748437140381018713447298701859599443927237398368608200270358576469188795576266179132525203005490870149073265774771984992783069256795058960309180377228443157768199386308018918044212786383425186378943118688709050407533969807690514183533470839119386167289900061536584710817649538312816578829141697563594567802111935152616009417486656200067103226307901959805463933540707213514430154916658984245865086282408324499935421500686985140307741579804402165168171626118828312789221972068209417201574880289548964259603049276378719412753998265237291282996320165428648265009030797346237880592457594742771848488070269707271271314112772380004700307612383797380387465787668826909654274552095856719884435568457590701716642427850062258483203332250050660542552330846427375120023982464738825985578604909773363692674035680151489018229942577698659044789477442036878839300674825981749523183524709638302683121910837199636278620941011583505776695552840454061700207589302711482402768767722963059567605284025255787136607897500027554684798858644134696301871423271982505972549765015621752925648605313036444841088055537182806623854874804986557619188309859811334010557215018301565222266519233101060176706590507686493797365125919995040594862521777666853882848102185747210940691695699813692684249690298356068467695022720149682048459058707263011992081453032693102397340549256886936382758287419213330906323989150797320278601792642439306807157998285020631659792553200778124671554153090836450728873893001039755630018706971222386860099185863161919688662286314451221122500891669534389769890148388310274581583255329965768590603931798361139799797470251181760078252850648318142302225611076425114254535252611358097044914782648165054188937206266471789004581095405781441971565843916641481372983314528226464936534240781745647312129207187814471091433261060461095969117285837524485896084467885142156947263560443730663458756976921717453973650152180322025482465232809232636051365280742794654058204792053386372592261002532693455473408644104048358026499568805783289733645506122236074548862656870294069110500955481681420511138665607264134117567462538435699441099243010979217423841541617225264165806685368855695017752217140302391539170852751148685451539358818937129296579122137334972273982751058700408134118669439733728293762381116509043133713236392931569982855163938546745347884328178098409190471081450629529750842296446256165767213513145958905182318095380056379001680661778010253338503713259647220356625739042966649387178300958132124969025426014864098603576115007231265760988729085013275689814042819948242641197712830474067418643626685922144081513052627172778128586043817105918526348731829937319051789557776922521011669249464138009176073155780737060121879905760470054726016302369314970484223932207432138939657492276044443940272637352852371546322908098563066684259530261147397252567922362559840708958085361443859176208252888756721237785543563247146206348140262058599006829312547007411965517220198347627729446038050332532199238284730651261070176379267908760995544663639807893918522472660679241630979254566743789413436471946853813072902604716041500564739425877585912005045568102226226355621147746768129930753032506800468037326323638108693890519709828008124576284788204980576238856240209786343657489528148253082657599113844712002280294239863737420678776931252987738437493782423576330991977221142117928829866364997130859227041417375688253006638888239645358269751865886028846361286653005417030032822312834806180742540322410969956223412367216699035811070231747275280164097617741664221427759119514423160785317422738752559962302992863087909669052819896940515076827830723738578092227347820542282309146016842301518598603373417081233028174509081374281245171400169757217945793499830949369271715243391018171253223947579020220427808207301137074315723770208220952104056743622119916165173523709995418324115528715672254258780702431140795554354635813610502775620113334583531862408120625717417878562971780996696795745004215640655849486629908620795064268324204349089880021904288588929448948416950399269426372470445128634770784681617294169851215215866070242797211426168587523144377005374670603798403173728597621493252186605868599666183024817665193511147835250242951036138800812818348745652475843042917468235910578982666159639956721968029766932201875529391822965752393128206287141213533198694976995936790949282464404619962945189734920956771689826895958740296491524802402445205505707642480274993867854547545821356089694671476636990185381506164526630784230257509935219394714778336238732613770397626846380617879693532690183869300598560359878622353749444490748829825486847940253013818970795000142591324738782579215949291839560496415004435703839707237040107211429334790702849150105303030950978720335938242335130126727009760611556278128935235429841545248410256741464089283760776997713496857402146164142729991524453947215645034830772334534188416004962828071711456522914988628432254887510903470544220935913660596806272447201552906501651122369176078425057961868352181571884983800693591431231806021019414641413432401219243707215921907898907789641301674683580974013931000941177834670062963485205860528431882890430127726069978502442600379715308506276460903313679284744926726615442163657613900154607273261193280261839419805336359276742569483650911926731089486857683767700090100345772879371075759469008099158307525721431587663242166272761757348696025646932267996650271428925351098751743629380011667956675802571878490787747612836162160865810331364613411118182106360523106607766839521954562839379820900245479566365566869379424070813207771284424551318008148452112107597802181086673057390962841889345969213520230391138702109052302088643448597450810104326233394114110705660155703230272434308685537448079551798112943635639851457642495522029909391058028224237720907012082724940371378016558083576472525808293642410979294262224674343793395264374251781312167571436369495909892787160263685071243466931889535620318463950668339488054473444146225372349204927762746469854690674314243225118927685698894030017764705753279808658652677110733500481601621717916720523531372855377386383767330998910716388858180810840876189653455566644215480581459621635008435703471187547795502678745020574821730820758086740647414647350085236358563620480300557020993527602707875785829266486245891575728296316930789889739240592015598530336547459182550267007610063520087302945382389949892061286822529439994559608548237665577510706774485212659960005940191581273854883575009647034934726303185666142344019543590801649029482811565558776078226870286453472896429184123728293680133352089983715015908448185288467949543861440025508125851258834540141861391733746396462598893314684197245072970046106892526217574814284316842426924435886836228783086425957646160535106816233940111973072953859788217844231840397716779615341432944981973179597046331325916633480102266604810695253695498469761539451439211859686779142099553010481779463112890628531842359737188922301170249360350520877028918279786467930707258882681168954612169165709743310164009366970806370042061855957814975500319864289557093870035235300952131324123810662920378598175528959195249513403176911887633986159450443620421468836428336167918444369300043904202801976291827580016612932124189190868543131767973620897590697136329625587235299796278446024661374879662866621477809166349946459305658396036127270865390830959811748066601153746130367578990318020381253423985004546241790207395597972053449504478356294652506374227550205026415232354747515336117243046170767147304689779228024068503788168843263011166248785406072138347180094699324323764751124044645277780923624299908733167238547320770091252028940447144813620522478005256063609212653288894644772421623744262669259432240394340939840447977733997656433884334884201876944493131882263286863056684064732264266350567347736435022286272219478351303799134570205226330708536648434012859202870635664154822164248388471792088162980205742150086986399552710027903414243764812616476535336814465777690731044032765336062174700597303070750318587209090995930827375510459033450934964556194285815601287786327547203333508109746817871071687154506322438265309147288772127471427707859720384090886575494439036736161131596051543572973476284366238211030126424192859689258449510614890173859708120767971343291232819033030553985826478258018025550127449916393033995810528863242763847586336292731991815568406204233364837495660546342038887773475746202995469063700074979272525275537652755264584803979588298244385959225667049772143324485668258541901805386270999342960235221959125858291096388932995446490185896845947556295122077100154107726394343376395240955125967542162577132203947933814241903653641620104942911909314473069933224487201414179450813504341956767311539332950881172386691082253659080867910401369552519173948438321137413970966019819253378331366500030942041283868242385165870210813258024844010666529170536462906766510752092171398217321235666020908386446786672055097071749135441985194353332655324960035853488329409446064608836763805722827527943349224184646094624975783495639907603054203466129260797083514994168145940558356940938383995328754421519909490956918154966653555246366395552514245950891561276334112526103815892284311374073723037443595594087493022773467762489028663983828934523434393695187345510326478690808329022528497078961843851474848073329091738677916371278545283070569728776575267788641688187198719065866841360964378922188351089724347720178832399050435150963270534306731702829596889262698920103987252513533389930993719613047425343166436560163197369039746935268400684660361162580782736084603041913246994181565772531577396574614808703928790123593425482935149484961551894094744067985825489784589076267645885067980484501090039610463021298773453069787836036528414577760389909641445587267916774359678908873946983798435968863959089225653396410487358716297929024328361515540127858714689619229602462873455964399030238806071845375270065965395267324317765668153907123608031391913553020244969834811800706310244879267086395613941060907705990801685846809635158492829352645377506379641906811034968812632121085465338846944314209408289803753444231125317771326439434872890274173663287346064629105802288663159830872908194067132785375931075177894075834233617804289679414033133385770144432188964688637674586665487501737948710943463495256079432226045282251037056311422739806398867564352577824136911709597079960306417880590672154650561261714815783999677241290439487547913125429066532709437013192233319330370859182240831728195292088842436697720119909522131991138542345288331914709250704597729985471262180408193547114848119381486097280600621763357246055627021342825259822280465543366771185936007530299972359053466281691002895948754998327246207897726834548113976901552774828366814550619704240155847660737606382807811076146694899075132431567446203959516038169259213877445678996892353702877588636627124827704453972879929051392461056396565378093569461459048764147870178416044010534590692777651536062517246220932178052452875468166217163667131300029313778342268626177120576995069680681695220235859220095168566110252038585854301471243289053718173586880503353388767142057958476899268320358245297200299707362607204415459814721321341382463478005977879448107037347772344898611647738151778959954230923659344733106379592845915357288807260297941915798398438138173433238367263947103558170823955611761797220566950657825304575460882932692814154275201719947953951767080876253426373620723135059003024414042138463392124439894621161051989314873168422012848163865080782080569307072130136510692983475477691301456620746428250454410011698189429475633893837722156686489865418517477365609852738595205932210312094003591418333616569815510454882262604842637832522527121698212532154756812831175372732458902248064426156821208200134413396259959923189167164292011885583869123727531400527927716397548045509864308049207693589152034865328131392311567880199512391578292037940493867461834028341380600322753184141492918290142759920194223325577097658031314921323406026555484798038556713278855217343138875232135918566979152283476158786424304228104961709442890850148402881530610055228005456330109748958663704418172890853744707284552919392119471577913282262238517980940884480169033601385176293454208971564308872255848704550693537126249903037781982488916995700378789786135489263160240093300321163769452653780203737648616096841606601725884628258969172768431704717113290351871313945095856991338401565918102182356235635274543890067182433732344264471960789028051625535452414872974304535744814548506029054266537751180174849664481259355087430874740248668351636876702931005866643157323239717596819122631172672537990751638185695655216430563823411514802141018915246065810836538795092719947394572827161124267255785322725801124308399129080258865140176336862107578298812712220306231096842364116176386130027020343868768085934430085949655508051596519009865791708135058226144775110705700221230305300572275325975091294051465839102801266162259356038205467242297861208669428699182744133502013227570721644188816281556587754622043523309826743775287639007753277511655884210881142273427689089440759040743470575349766704477549485953111618483206606661365923798215734873531489949327310827168068374193701927513488657639779189590975094941697161241113414039986244141343095612447261825257827920893399676704638885151946947728177389667541617803730158066615591873321259435498588988449005960711341307079130042517741254977525315571863819168816713171706364477324189893512397031621241613945276825989751696394853039351280750807010679131760327497753988284608642053928490020699240342038364533268323214301403472253158274534202479746909651621964305731548964035578808595872331851231124229947309879744330907371149145325484153330883538319208447381113737914572383299896439890235878886647100396314342823858900393213976814543469518810244414247854316462516537648055989661191960938525898335493386858262147642715922812407408293216623517718063450551897524768978819061302298401666327406031452752304385032079955344116889284675593427758819989689968534525855990011225940656418179155475795188835199363085186855981658548087148571865001255967915917899223892742122615374449358589123343348760911203528642726281521759126934017183956199016439964289365805788223581362692857640725196244667692491495877110346286330862050231622462980386979659837341432059829046339793195132959463836134559409123110212087394338593325800859779663119021501815161301530577471804683327632249851218726443953057502598533536525178904265852470173605905868503864714247003870646954423784043363172659883583289538244459644667083244220043368703576940460446471827393869329912317698853645068249347171708138333247136683543623722365646047451861734488484456055337232920914662284478403109498615410532873701579738436866269398041995862509091078010895917826236039747568445633834861875073560561535332183922437882828868714923216885063873483154701864384816026562104465265917430102433393477332663407057111659597869980082188535558391825666093978303797858134751630041966228387747947038731254636823753231523003800342795766762025904612565956144196977499989284813459587028436139770778657626762854115026856121548765156349893785029601613892921023221744957289887314992499192859526719946796812298015314711405674117787654053440334153722262686405522441493474615544664675720306621280733298510497059892344618625067474252236306183765744024277647404117060476605084048542209578762366767039025535200392910150876777359626142552436593278820909381685052402415773959643376276508850533140224370025270223392042043527524458785170504836565457475428613121623335228381736405285235046480073060283519021178689087470768708443185139170160925797557840962888367772758440844961484031480773455378269038778948266808279227648392483956043235746450996759663677632887090462860136178821729801160028635636571697491557499083620526013056946132595452080525773211716907557469009245562667558745028066887743462078878590154747667259133271240719998791234947144214886017588500053024261878523632776985769762608990514375242880263573541283585177121572461768607885176970802696877622634026364831286107231185487445438181791659121302410450048544055556459448403787963876558048758379893693299841828387724330769733778316442729391986944145993810280946969681467778081070407883545738000177550429438196519016456085293489198430926557925408285145567781909475894766486448517090942178243039012664130736943366784008121559330349070398486715314811392856482850993282047250298435675190731703506685048069321627763879209448292721721202883502590053807393917417809137448394874353107390723337475985278125517236870110988946937247922851689426819123135520499935290952517663994512883991728775056395712677882811748101140687091227195358743037081870211795202235008203351889330836958393606183627872273314976893801819557377210172970292358675138771385861261196240129648382877205636229914080698544116483042565865462795778143996147308609336894662400442177711355196778506168425683073862854066950386422929414088473835314322443967456689537510784280619048875234812840159824201993053184836941556214339270936152254119290144484460260168419179817176284726476061461495332713684697882011005765151429979935171323226904496356001406182879971088352333663561156901896270464435458141658592293691055396176244731294214716212078826573314110554246544558186564511376618416670342511669758498847001058513062229213990111938005762702847438087748115483103240165575189231942923836016778445921956938020781907279771382850146974379018288950180598095427380379370116675468530249133929311663283165668786128233225215156702457789034258368405233916088325010305808849777454585292452447115252756919719472659734057852743052971284900555554930275072609106520191736886388340151945438723366484869395084760670013447019211414431833760031211862927518039341109757180393032073014522915663952358000474444144140014156030271944520364273622161909778838153324206642623523292608947981750491875909395645311325462232800545495109042025490681857423665430577305139797211652341954867744798708173539002433405790970092235483077517686781437369888055095060740620520923455061196030004352810183261038740727500962524445596829640954144474381609036367557109724272210350390767512540971451001100083644638331680329972621491276692951953800654248075545292343238038055149094640979188339358190890565882339094800312194470280594495626316201746969154676003495253039253714391732423764710114068549162121848744598137930683394560037510570165676329100993338905798692885683359325387684516016506999698275052904032615818377962411526040585888708767029195371237481964036211471208620401836498405828623745821365381696030183414709757354338796918838604776557387053996576455261679432783106312318008495604810176167286827886066884772668087188743874556204008429126698612858140631056600404583223123013289406705734238844876855531721404458901553244186765859888215697183067177660301338304382336240006027771989973357751691463667478523085588952781545722437206325648420925271140327795813958164495594345731945854502666108739080669292374462087426744247233105031697592285070508286455269466884386646551484506804381491100289731029027355484624093386960335737125504002095674208886799146215940292113766702694055880545235327597814421751271560218093298749347683460624566232416355977188997848271780719038916191791952700660491327358576594998999713779365019755618622182856885483353448430807398225663423438164341522472428449701154672988080648448760683979604408843755319720901880827266402428242780043761297173090402395206126580679133253311043907947865828754088969963105449155149507557762271689742423849434643196412767383411316781487635833589816026256325159740077061638533538226040382101043624524051883279306206354271230574920177056084693542954640373142188864859389757983512421678194250795298530228692546323038668108853781923835675189499694322428335119411591921429595143717802895064870626241216741171463876939689699787895419338948022442932844503025833264499147924099701378820398234396957520599484087382033497193090942515558462176359240277103163776153662006372966088246238895117746084265980412033589031230402147206855864883735771412146586720954457657947904379481334150680994573899529205922639817732223663208571507845135377913612876819809809405658276142883269670308166096856764399382331737238217508113516187051493700976803526994958150547485200765023329712041003818449500839317890860428380535818602022919687382540732393153613465326624001852828394946520865382061855996328719205623013221586774040908403594441082336614022366338220967259583707758073846338381857256586802216362203954159136097682165426717671936222617764768966633756051178758605013777331181884178752951815557862877534279892490198327060759010833421681704613190308534880427941159916162058879130410776207331671303447427860573395725705261725307161818142751031229320187082107443210191112566058048161309983676499436051029123979433538268294107787533834148408225842724363542624442418377271984946692957630591920320287516892663096068490371131980734401902856345957187123949248926158265243949517850115652176170477415186435061228386225944989210389810330285774734319981363841005678056844414005989959387970931475635056970762384852335954472379235255469191086680954221980659492965410735258468377202029356369507029837550957677756173101700090227299346326992353525360727692187927065192120244159318220894077535971714926544481666243528120070148181160919328996264180892153728778731185534677331247824586228624851216115809052398406350084199968311566209700352553168986392798875554265662152410111767823407899405005799324877577620018985459092751682325654346432738079951818249219240264676429846656718220031558323937653918038591891492249410821535352011101261632890943838077202751259809645218129719366704113250781423865725627894999307542668951241787375811343712822550405469183790192073461495701882433194219089827529041653003632677771879858095193900718283412337168948271126043616790697737127950706556493459606629497777224632558679271059858663744722129624484913273266722972084742125104545624412161736528380552703335031815379465570065810328829266224450536146793757454739962448522699801039356553694855593754750197599574177932816592819780348463723642324725860746237013157493728076397094036784018589401710480896082817189344408882230563265208967693337355643479739406491114060978858836030694769623369043904531149130860660112254912214244366630087831820244023431484579142832502652773426433145640303976488087055484559096089372180789977044374620087629560263404099356615549408002805221903416242659127994593092116892545198035930437051690144446741028821261135560250999852575971802739451219859177636718038578867621868617295111624442081413808121018991064967605803243094654359641579389203921856621467848417374096742864611840807397594557157509724182812162257241337613299411365144231027073895590191312768124872374360454393410916908591031869615599838907732901431596734597378186872996932887587651096971627267117416895140723717253617972667118969765334521113334118399669073453604477009933052880515677890054522511804928567119094977789805064542564798063713195252930661003456617515289578417782102609089476379641575823276043850214076947025319343721517789711967589737033715965744944506133912798590232562640713972050024840318619728735497070870455562467373877755953613861489820187277934471761920444518134315544550190313198867248151941805562840047257632270388779576585162358547848612667289836726447562038243657941044477851462093781412316214515106521818154675398518454862802679975593953162044905047075887436500301911696997140419548029178949883485444146650264389534437265828613006202278512488199396521297417382147148159332745350211085013135184594438004472931042871894186262462960008654016197577103872122935912952013202207203845527275931876606748116610525528453626727771447270128457727722524917323751787296753971550373947688290610241560293896885416072649039666089147054611683472870582540363601650606729283765895129005381634491438609265879922954702031209413524797031223703854211446699485217573459037218067521487048125013021450958316278191838573457801980171309558279683477388867064062646837323034176225402625123673652858272257303159491700291058991467243602428705090109141233326441714330163734606190382532523806148452552987599583492240275364097579507423011447935874464231760841852233169781485119885613370501937224780982185620479663712686907483551446101259879943347573124789225957698378092397960871588758002288249223396051065959948215762701182608087196720420242173843313860919618592710723951698095587744881467962623716408828141807816079134427371884267736595822933128148254354763757458610517630157470805190623849702889398990464504426905789290426122912872409902409557173228597904339965677191394923521143128003503315743579063742582798950679078819152527449940058786885529863867759580328414999734913926364671163322437045564787806918550547321398963465793697971498431737033668894420506298893916471295821592474014851121818361875853923776943719477762321609018704543904505611056468162148273872982406234834097521825860518607759177979917635097225530736249462567036762956169498671565348666053386284313002323505209246091533309990498891576692324754637511732569979010239872657979393456354228748064241555825027288132059367319959421663023499918401217887647916211239709998539944369704633230043979085760683405743489748207963818094826816781090753477015376374724885643498783031156737816656330489178179776721473057283838472367464530527097055743745183054293941182236322670302330686863138431194098135419568061529956007101628765120218410750559346137160110969629387559252677717828967507766966805839383356789187418459677511862598771422275732059265745936971882081721375206230538828457636724751288423612712078120692797376063309035161318479438660558303886665760716313691668948910275154088599222332482057587472412991845401016883960222535357623875657761139431678553168690808275421679346204130681853121447730640151396881064838918493782857213864052585486606317308517665021202017052837046660154394683453335181809512890120388565731219775977158085971593916237844454288565845532774928425210326597610792534158073298652083322067687549552848039057014697606905492937282783347788084288883746916720380791944722517999115330582159814892775442639692694105847503328327383809131680173892068337423427947267415775327818354741607770730831417495289120127922937535130888875261802388581391437774677949982850009217224013684432970937732851923037623761499617621560092990597355423837655468706806248729154921632948718966156013508174359619327789232334995600551327820565606950316481417077186747116436494006919565949763032051081092780871301513833138906158727305562855010553547092429882927290058452473006618110173644315337207482461834522479635408944653803606714183022880397805161634127699094807733756087753662125088763542369810181539754438601908990644907635916720534791673535138351666424558365552220140297439910909744435278258540317828767668742102246311245787345567748162015747926606631933167795087905769377817462427747906831090015067377174480098886602314631757275519215502578764412105472843432849811797492558097344239157346387029934666454123319242164738078121668798724181393941742340567798081694877530990565105676068538079575315833271334286412001778194928122303388412223108441323105176570567336662405018506873841472766196718519247082745742170981513434681434939354661830585043122578958525297234467104535747611532463735025861846244350674139420798952433968012188313620427891770869404547254035041388546657424166494741211779995354543103251017437058265751074242442515680012755793623398315320793351440376151584004864625885845682464047665828383019639759540799970773351986805800224683214095836605555077898642348683829029273220224748218047159859498902521583707102240617868023882067719368069374652549425146673675809435728323891112273445948471050943426365820201424007774495752622136299191316920254128290669816900482214428885551196516636022216371119129310901280428817871818898323228965392691969198398799453596158850616486933049162542992135387263899856123640579466235381539876057480601898349403700097148069736115675376105501082777319963779551990390715358400039572305775293265271907574390523847624867172752130353275056355491832156462779140402420153098153896618669131450896312191214421240512748226693782806670689274446472442716700086152023731586193906258820051456583840847368534806830082843605703147449006785725168609467653147428707067226954175332670337979748450564045037191258862456439373321292659079163257478714634178121494337881265892867596032953042264599250259610908401769504341649510788120344364671154398341918328741964114007990633942251688588548475048729238939610662078424898191732440646865536786978239189891424733933823571147953493667104042166158250275171841367969463577856872937014051721051746286196087052035054553903234814176896513316708016455807722430272704894222213649640944738651387353961681339319482107430218703312116061636211936366275897714796555162908803089012042525878543841267999268889589387765300532396906591075047497267722564636736995892913929055292927506999268599446962989142315381189212134736732461194739971493590938844220920023064663561305657405013115086014790024032726949405121664321967117560630421678938433855591097912695404205989551520042406244586980509625565383507908142869974605562341765194299384833870279474231361575441112838632914055707196272538450455996407878028738188869149339789891602166523821773455844694914749402649540256025288331182430137055844443962395889891951188257731904429753896073778892880212597179471927382598755787427081953480844398331757916653809224018567143826541825926364432576990191811315724075094124882894410646002962962016338780597825343040526678669387588615281761036349917882110127664609197042423731606932329491827924638434908637408390657166979165515585187524362246546021794577801397625033632574678910203184461902309961553102771589505448083372616096880175209450446482241386373201717971734752824137826529822184312580615083760884428237114563632450870127888921047616423603605299827650714433215360416675899302319206794911397863722723738879029118074334837000437309569832746610660961364745070752269051584370555062000529987312878977124129822545917899867021930020990135515061788223764045911590451165997846524764768960506896018740375237963213327431086771980706220820864478756123332074966896520219315804051942536597600959257132978968009781538808413504303781970204651714594806177769643645508086450804285996462811253311098566652166000789095007388771875882527894736495615924364688129764598648295402957535882008929268837386878173628332143799051369207154192889900551655926427089876063565630962771405169282244518169655921225761870454644363698457535222465660350740298562387595142680036986518799989296271431151275545393251789086191360265109983762459273770967775478931638030842353948154589537021306922680556369876129573848266554277529564343145143310539458842955817587209171300437669617393493636547871035884534664978115341238614241186955959147694413589161945460432310143492726636927474581691803023376360506352288773972406058206144901616752844927468262035450049888777051196132956379953882522250990229802099352892716244695113449377081857851850848871203523928260385681595431877171948575860549321874926498225333460079308386447507768762135886287267355160907350176875736164443385460431894493979540033922124718993510153933611197451379480478043703117884001649248884673344805038571811248789010324513151287959323341560151365279034594378032079866909849148613877639883121655289354624654444614756166096182011691773384388496497394069932771143334293341254694418600103215280876416570146863548069361918768590798407241438609497905075488248999798236843732785043211433890158839812833327860328007841756841623473689889381997191988639799998321285292523436242672327629291296284970908717704095395173421931009420980993013963467842035339256523186719627166810080853213424397058496735141674982266741548257783044934304465656673728737107608626964397310231213589209633112802232914104768686177046110557544793038159335101579022309444689744764419407493007483552823694329513750504000662212520206890354354800153668903795365897833610270464198668429691257054886209685906151855282510241542051830505079413698620250998907517570703681355875917985278189582971956520870774462089777295330501526646640290458426960003480351553149043822757543539370856013122545383739172337615590436770197248852352702708032044083880262057815464885111465805337452761016824543387209033902380372520052841981470587938426459058407175577744660471705741787290521635070109056792176500157897835032391929214543866333509320893196528092810890433815502222842448517832060427725586967301706406086748647348248693954913725725148166078440562942202165840852660153779766551878651651348931398441913606172861495993575493625422641186689803677894702870009188905181060464464801640410719838715695502573874246558172168211025608969384842149321134189918496038373188316938217672873654234107141955940575193887449214812078049160584494496193143947380031631714249133617180973453657342942847132338944229293304102756454962559974105773276955808298274532284534721389867446838514354685064790302756277347080332013715639249115177518632641152167949714879909433644520097107046666412258692763004005414280132501084472602572889829254813350779517730640487537328270520666703195198072668314478214108566647524141920491568006946757867791068172251978101112119837311771395444527866383941685801198445342826928134767582306612081441571975243869815177248681517055732134239791861607069304455302726010846581523511829842813384899325703103596373333043910829532153812741755648920488575158478355093605198994121915305406241329774807910666614889909669722487692450037511197775153385165353423893827110249632092496480999947042920820064982375814225012499338801799841137057303486413540681380805047127502478836462735953242792090990793191917352283539872738994937871200570363279868151237724330332039848039363701219418325466570629299560262042432488898345084851919045831875723305235661597278802616304846897564421327001071267357271806489984231175049246778413291186733990956249676501939282796479505236060579087564871272100624064327493925788359325275532145795770691545129039629529458646700707562636459758453054418198726427342811028899666831585720287871450049284982540681059312175136634603975743577118511847423810823586572740785105253176139411753202954302991365195084980527880457476302726292448429892435331626185100579627443304207139368599898974893788268589789475593060945550727744418178415609489249022348195931039818660725583632221099474040591236612268278481216055376816035348563123160215584269519107810436584453947508179743745216858954024152242244384652221808327537473762129656206382254886059824921558444989757179634302550791225325140042983874685727493062797699957087142253173374834262227913368221579036745480894745335833685179152372506143471343544464042671215311583010031983835632928132794259227514476928043318452113205023575510478833828309385319305921119351547537785862029281084234104379416423502580701658464905266627765320663775218770801090662779629893228449564764058825739956898624093212511588967231770399659544354871372528029018536249011725372117330631955010088453214564458589286256560137850770038455398039051954446405227667163198657345092414341116165606633404912130272728925198579612909241325008554358675349373845460574852920758033139885499210512209672408612550189469291953784921545158197840894700453567761461344705761605352959303136470578461052571377337575843960609709726547311783877559910996648431206044521148424596209238981059413412920716655266044268501840373576442304137515255116691800958741473652473226447293059032175362211795098656498198197388026637766656257122614636366539591157790109089615707578972845276606637440579009874538933564683775271690794924100114246180470924047653244854880888321596202075737560434742799403716128895021013780455052374272466753514375902089519894031192493807649436226825011326489050858462407063650096650026679536902242116711360514389157474037020300580685739000593090510910108175506211138949556170283656510645297824584666608596086635475446013726580850254784582783735350308771243193008123127938492496818496337715039133867208528140231019099158789300587081314825942074528512054252173559628000556004289257860444478124873638873129667469157949566638070035472503848940821008111503139063255128893463640940860294178403832395026622082203233946654535644839241380295351687067844060362381642904141453319241488792060889610808171306252386533668481999084571777475603761265329764016768360063885035681787525042180554286632178467887613378041059738385448312059593340188786330612975681251729062090005237077744191423845792718220300011286230421408798522811502482742623768975600297783747160115445369675228742437399531135555370917791404272332960079503553461740924107222780841875579405404877083492141772456358987750736297158646078670540975459347257960829721274690806558402215548081045588919269646467337293013025405650803253805463874775913433373895923294141890091775055370903604842390923653391132693107403376708770141886542604215552115672777971449837071224504651432236265794173785268598563520035403046411999549922454958733918832855414131279918032360624897496154524425968161166688320067692205248797280043620876579863400263646042367683681423433717146276020488122079286086747488929787912965791030369172291656028899051933545028311496436436545177249990500804033602625405414316577969716300931627370933156899726687188985037256011564306602147914162810179006486746060618375061624720362971253962356308657888224106531393191647183929852743769372598404693783880994844174950486818932148049325852499681286412909471567955049166432966857705112712291005936927294747712804875150617182118142054347259306052606473217340262226156746237249080679241783318267461459086816139261112287721329009961997548706005494340217390151237028822854575920424076163003146901995745579998923257537991666076670406210726483752163589462662638355962386881273638308519034995679787290998621734406329698707716115503635155519190501706211908285160981091748161621639050496800679618233247202758081857884685496396256949650902252280200967302461262814646489128248955069394945325756342138662404075421348764673233457317604570494585468079091700246316818926642807110142537752847757032888855090966577046581472038233303060264551723229845962338031644979595007573878054265075207193748241522400034994683214616961467150429115652913703339390678079206773129278597569286884484969508541084930332493198441691141835993640566781633618031211236437345341785521404238826779662806752834083722446301079701818053834414814546603894799282899553115003569456360513488645248009943786105458546952907356527409569222047274324293413807498993850535263181672431888788713503804205744164711286782960047781966886312330605510975127372781055870876258404772495910338807292674697354629103708198106868544059430838741360254331534738613538457207268791117635636041958788178493975764508959406842531431659856570092683044216760872060283759117737579199050585150679763000792161838783553602765686705230226782661245314856571498003904185944063458888478270569386924635871503709276989723661777745779384533455824293971907786729090039913017695697059690120959906771961659797884621522725536818383620101143773558699687137037120547831839433094418443737225582777698330231095233343126825156300839481985532801433152656320963796155179464886820162137752988546482312071975834933165383753461178432963360047111733357353703186167915343109119847439182014757509198180706733829081129228042792095886134402349955913877727730249473694338665308884020439134548386943924934934045788715710891554358242546055459307210741264284738820251157545316490193396518495524976752109404390656031001981013686644895702799710590407363159279009172619263099896673434355751963975634733944049485096156860874951903020900147893095174241376434867182116645593737060252424207067177337628543892264307850715078520028263383423671767183325975629005618371176737005018631538830162881491229013220323223396869214961848204717660064182121691370410200669636108062480265797663812840083050626625131779324755233933976858249895752487193940272194639186881082862507953699645985723560952951893086866368100922607426534747907322735169655630664404584570539310151333927801985587345116229185287861750330800597897144816646498081527152380611198388255673279429262410074953091202366004195976701762810282122599916126875985747660774988050606056443475053704804382082415902760006988561907932020664387544833868176916870791743503078883466977563387079353235930165858345929122941639531700805714983466248753659237780572535016072146122801526108075329367944429352423358956891671854176523316450015215511922742491889096556161164591140343805910584451126589134318497517807882548983633574388065164755514714728167367435525283911424072396396638427197794505018763564901304388371448086272120451877124236063248195309085550111911397969694095746259239310303207785949360582415212090073608708398714361394724483374295694053531814017373682164661140899157266072584602184162399179851398911346183804434424072903132677100917722280113038053159803953721960960088266607152888327904419425755708834952329849874059999865917016304380405590782397649737257084822169403132083299514432022626981200260816531960127786021430309074597927049309392118703853481776721742621704091980089856524420524424432652218711156164317294592237898192248649692648874606622567591885697730254619192874051454361936104488845105601726862728979998145832017128575776173444665798168459076445030832060203212491171674847695194723491522797635848369155471191739704456668127161403546021363905218742233039000852489730168835497842532324144520369621475600789955087587345854966992866084875798042431383177315243813123355020080443081499327967568992655382546598117767440394877067345050507328190184184725979408566723488529446939254237300901652146911900656842942783294952798643118731071989901753493281996373045000471553460975878678977673611512215971763493599427260742230626025368832624767139616144086043527769442454653117616649524536929237439288388601610203633644571576819572672988255169044368618960861933020206695225665286378046024596693101166851573978845694496746974014965706216473782792734306448906878930687543582134693328597045007431038277769086776043200784826197780178282946172339448105420240501017080539086291268104811993619577895568048736839319994906577976436313384280907564027451552776613526619980070494160713972598756711457582148222196804974891487976070769050389696065649494043612727764802034674239753707355715513879182110226826572862231385052965766134010667901223656947938632617099246093941197486627734508413219005950131526667233080894981704226398542326378042216642869668485285822614495200236454675322129053355099530306896132564847426639544480512317029458468668733046284545729066339379290723983813464137060521886859154790683355240554265600579096570315351930875800118611825923545826531098659713090336834933889649271536831829271411407566770413609084550796890486243369881092156990468893377457578413754670166695433457390684483161319362407610905220203107983104788160688023917629662152653607054261194460336764669610950270522139647214339458979836020078610210657146023135588854715829209709151509984623069663628901288762130706637149266506602470100206714987051962282310756450988499523828353985318308000696850313436943654892854136771653953764053574981367823466875949935493039645139895736119391957859849314992158381734554812498007671033257416538964001586930352988598438597496005384083766803252514584982793250407945047124861969778197726233872091433869508004716286248743017827201261962440113190440971757273959980957693818652019510681075404604257605869310776707725021213909761460304006488357589963911874631887507403026240730702814281670116883176334323910662046637368915722859549880236139732088756282895183930551289468218090067275352851745749175931404288333377623142756011469929191211333208229144189491889397633438679174369382174099887736224949934255617847272590148843085870805551442491108183653182802241878641101904826985886666853865595793917330457581128898912476448607487710218795214005337986268532627834161277336000075047081384421852410821894883877743733521332202810472952671328450252274871947552289016706975669291409326348824479796286522628422525433519938562873036588153079014655622468048885340820215606039531529974095235326759038832736468421880748172923600524375726892524537402673569068948870052990944220392665944764933592304941848295517283437346141803178252020233386951168800303926068614763615211009206748420891547711840159577119535987920912311712298868726186724188647557385313510891268764941712268863422672079943445820246702719319582210965189634228231121774740655938837996453940877733953161741714807332576896423120693659064947999675287542481532245091195872449209741461286051687357210609208803779785246856840577141427142263430065206413625601461621041720135350627800878319761768446982534504029552770756049296323174495028869482308730317022314919911336139404867515617053577235158393872553022452172464028635912380503935720199359777161216995305658387943155803759518159837985768826221633285560305904238736578502111086018030987488070203389611019568968543759400722078407703613452022811986412795442183561152508896370376283527813406438874353381066831690751739662291655147677926605022828334580016446453220004021354840184828082431286594430345668621284757962212142654492964943587220781195781538774712590166318122377502874887028494609682644263000799724574636964859983580396739630281362300442538236188044076620473358383640281543883061996360309634850540060032434130281270372544479801519941033482256027679085313010473011523468121627257048133248324882582021039291002130166390107231261946225222846800101010244539591557479766553263436865252797093732787516512699021183942029071595678914346901710224944352084590547491673428874755177644446682988383272705766851648743071064694912969140456670614134676532749085123140058638938228456520561136762488466363408690021560299611594419765795974740230244834399805345132724859581456571641784061282974350899519303858578919756209996341449542439237730007079879980197852488125064356080123639198912649203404073476891332947391413822739469869862997355318851940978229985404668452398733782431629959093216961284380059304939703808081888521358797913829126680163571783952160850573525219101170223351270656756026641672128345228541097803093392107608538311352122419691441235690548015414646304284647505468920656278720076097136815795753365257261718563263114977682229414575197017515555480295631099221918224275591236546221134561966093922808871958988694273604049664332694999355200342991477128410419084302528820418612236680345301811484467814327333507174846766650315001507147478885799553550187479883655595943424514323480540731051869126014650797883826574716263501765010651705359929878717818241203293540674149781295771127023972727728802844575752172369154314519649102121383057163422033600018266062775907052059991802535458273022023136524378144745102424352191298028927613206679625196789026475055175586457584589021445981009092093688042372454664487402384907575734091574506356442657193647526013254428599715502458168338764973870100892721609338740778723938131664096229996993463523707734903336295604098911982561013768428701131817876056430509465566824987077082653086968094050539736287708424360687935739293986524728885427700030151322756974439226932763226372760273480589971449286641230525149856196337913305329564156431046386520773019584394985405452804914928551871766209082119696373547203858438688351454110705261727418107319680835073459179101855268091474519296064279345953667869030517029787312405138745330432245983285057096756624360879280290837934663093878612712247769579894355036396908120177430668827716146019378580442743282781085804440233085431900814746339770480616070371898752252212564036507637668445180250544708155843382887470924081797027997110271402001446835625475955505245894467785093584159753376644520646736848779306808404326154522372191243377714168258241497249886374103647548658731390371565751614456270054740374315531310246332598414458929928745581314436542081059976437304541031441982458116663473526351227852665967778476006252077370010163701281717540477831904325976685928472429718682479290895406516825099077243455341890512249169110632092376120482168610709100479302488682074478672921581296510747600515610925430674684997271139772829241450885516223554520581701965429838052880528497025517128265656578299868738572205822553960722058486631656471728801551910275276264285227258822023424925172017637128811482979795501441589694549767901182922066525545740135867925347439991622795279161468762556496689152447623857666413771556232595724237414638981857991146523887593747604938441402334961480413391712166086489114099592607329984782467629357888344253011726326268945540699726376330604219374181619723525280020481106397179068067326521474964807810578671384164467861094184706751333364091924690823792358349605167368726740014194570112038897393715346830744333953242427313580451444460126681058096826120360313406305581364550966457703675857445237430206946304921247905529113427273248468171000067176477956746965410027992304478019680712208844968860849606846508090010508971833799325357806687208257937378863448840622383250622672353687676225663480626795743798027593660952518102488835045862609469254130004384912513049026050221152120106806988337265927961069114474555164764337874780980952427439312909626250396658535352322637253276577183119494732451780254381360618133494571389145535251286709784103407432636351762941252933248716805632089469290862120685540743697483247160053828678309823939365349472536007587040371486121878053894659603970342601508050800650193328665188674100507017352809826306826837101347198616533361947293080426863093127684773377538822554127535780581773747479305230407636305379573798574293522082197432939488793106324717912309915715290410875978729020655410720715400206695859043940146676298870959449987346152091660004760550691649592398561139875018795842483819825309618098196911245107258079199345760099643826131574590456281860014422125318878336922539356342609009835700501682290127865740906725432602169382274688041403517166339417349956619360293593096364977930773046412039794636821120522259237862762140763495319735242150270954544480967076227990305074626851544033966790924679554726025450331406276121672086466483861456925640121208537633984800238428064680070626405179934912969507164399519280033392440800746116116680575048051007149149860993696298223282899097661454125887648772533166872157493766292974310217241650381590372379419918266966098188804491383718512381141180244740485998521096475215474434308173914416945793738052358865343211148891768749576104761735750910190192859554083733592097585931910008763349839395741695329004557503969130033880167998803986977620527158364474529559265485206127121101064107298591617469625309546113902578838017338506959466787134402192485406738963211773185799856468869026342233623522796067243193925476427867516010785234434259542818158643911168652493005231429142215758438912627115253066740206901063536913960476434977354556114860674331319795868968802851644010482004394740418097721171390183733727220275034219620802675179205967672345468422894121556045063828549258343814840775925823976657191699094073753161091248899205932927557503860727368313377558673328235301458745584594044901645609908899033612403360605353191479185870483263765245464964830704031088370449246424945582957515188580869119175776099204432087979307616114807371562756121906566963793471400792404082558024342115202198342804115762584261023344005568469837596318085622452632754715408738113012907742282662738087967824817683657674612957725808497777751524806612011820981256569211340195696607407095089667497932353602134641069647788997016046544384958757600480002399951839448541496689892114924496599421587079288253929418314054639790040393787206628632494064773001361677956862097789628346282521436952756844565968202965245211089790665991618227479776617707683686999127323172258877021968216522739409208379027796438956025340767022320381153647233296021751861746512897888483015089136334338497597548284580588047805969488783799836159827075229571903553456984694228680761144027420272755297003249645566376093411943165114600049917566848897739566851002801658160772469855483638944226927060076569481029413333759674769220720104842245709016200576272910524020770774226449738699300727369494740146016070222511567365608837879535617298153413259172096192589187860881959216809416815383281184230633267735902508149997139291059791025220118573382496110946437988483542575272031097930264290673776030503984807239535394557610604679624573284257430323631483916643931966699504461526243584565531893875577710315518527086720812097050650298378735571235635867911452965460179017544313680968014793264881248123189417296745460260833183987065342019020074425311065114444386468767942064578664559303163799386903492713743954657832011894089405604247629848834458329097689465457482103453443536871868997016850375051062602604275583207324877149338806561144387459096824938088445783880391018176766320778799152294817333262358395579792087319001879924989395576680501761929314787174997022477282006787990803550409011471728718013940342620260915352864887554934969516391640601825224362109418636732563971226221126559012736226951319743978663985200803114766556239012459782449694511306861381656342557783895480008771903757233765867899010166105096904858433920848538762157211971735618143339596370992743980643330708582106691538931787717781239725157094954752224617729664981077268413009188197923022145455961175398859694123004313053930363755046355813129573234669180848354118137141333803422717501444258627824963351573977605283767735299596571777172441570181710882068414369563404178305600535570644849171597142074622785438091911247408846857150776507802437770636448224721657113038836960635989850424385371120036505007660498528706588708153209289574543642555015992955111984579264622561137843342381334015987829228445786225178981942809588424363948806706308011841774019434756195881608865261187381293986671884565316101739942597787335607873481850969300496045237374853570602833181279552182780056612918420322998715681614406516195277867293295839683895440905113123193247185762590968557848375113372614037713226323120825565471541899750415159358993716850046670546750859045590514825170228227543150441076516270211609236450881847619809944649370345784745856941119803620347993871217706066805930243636581828077808311426200782560779078035782588589983490545350268149060493088773240129423010961858779634451930716184499768131590869748782822010072523267835057212058014695990732615340125193158780832103853411218882814042344946445879237608590035713918747415516181271913382693175597366308048508018555553599969607816760678315557371843399455751698047559434054972138901953542867417429915747850737609056136275256326706232151001162330316336933443068859422783685039516307931235146587575205835658056048826793922732687995318563191142694947263129028260126656972044748970866989663684411151845319924688365277265205051665280311309875263256085867879542423444289842655477409210196229181910346508135167354066601971604435210069145103444953585519411831391791265465229270514649844799320509018972994699989712551694366058036853452437658617316810346400365438760579247802901908160485643970471276124706214466819118460735912805420972624842634429993197220264646861417711738099815743575663433539975295796630825712725066511151943104463494270195378091440150406801219461023688369818596181937678704038136260364521374844152828360139269711509365296061008913532871051592325606195346874983598757289752833859658050967034349997452927928121282195295082527408867198593314366480421160919585107399906825229986603241379755411621277874143211205132937570400706838326468298746636577580119862954245047295411373539803603922125829025921340061780868004566017079725208691052316152868519314271664736443581334134783880974678038191328162032265943776169932796864127036232070956775120933325996609684436791467377935760504869195660945894864365561238315082155762454016082273431896444824886203295224534555829066769672168439946982726837005540057249945811661478355367409277220391819677802280311838506480068921252924954008134838155071934773038726009972065198617208889028594273212611758183519177651405134170315532097306476883438799376837950472263443255135889344950425869800463914900710962011108410110300500137323977558165644033373792911393676975936378433056398037816267235210836463574855689694675928321863385794067940630193336743470709133154469587936270054927727721433235310733964012249197254752949547255358062178064099324574367287492024970592372385196916862606781724445214598799043846096963468167704980289113620778739188655665733018351252851944256191875087008173144463874899845554224361954409477784096754776184260644211774222585273106393008035750491170633647507583292702654728395587632402971206815207312804502369489862330400434198344931920826964288095190002815813699188353025797716410118335565708535432678757690892646572005591971287412025459927237912029299286755738974157328764368180286099302533003143348606110505212871868265286093362301239352829942315822376811855272763671096071600992344297826717977264699919816844204327673213732207791490769562915656947514923330892826912949784491177482321231404601760245394749536263701387638033930591948092578031336953346431818457201429149682692333462742342681818582340302404383013251053863152870119965890094096867453401435588208439273960097794584747582059097898806890102285600451777870016099423029570341651912656637911192890892324414472473312603569513503177001603595487871097388182636372909058420812510596249145837870197193428868028690469004829171408245733112352161549689682131980011263794247995519044028858369813037025177854999361591288440367044791489415277232468701163636453031252511787133694434807378773814228450256418141637791174746197044584691817103905039533577631831464311962710026997101320122720701037142105278014052372564669561208407375244026578977755807214419458873978604730124866173629298704262001209997034772554057715005005166107683238174730812687375209108908242779425510965055182311886052645972027122947981602401066896266752509811648312146911025304017842151900741023897765926947730217421286771881593707471338652243816765014944308896775958868184752347044574612830477242438594185910990183390235704713945282538102703568171850763089607632340874003027978488667904639352559549025855916834526832520528372380780033430975860740546296383772273988022625393612532833740057104727396859603764909134489121381859331120856044481757697153080332134133737696320931758472144767741256313082528163791127353247144450545371329830790776677659563006404475501936635894858901087855094093166136807512741196696781706106316442315220528327729826531259489743074977056676840879876780087447208636384554628684755421590566819115075898024059862264149568243884978734558232967470805706376944454700532810074703572702311729348193783819870235110537113344857243990680442167552634345717850444895175325754478204333721269812851308537651329584348160654502956174938857402415324808514806591428250574391652076378335940786157525536977686685979804305954530370293007752183320045234976804256914481028911845470195298604234104365743182030683767715451792071593721363414124473379949619447178913153023507685956468611596293131541777351242534567306859772340439042800887656687018888840170892480079319175561406139952683534472414716030124521035536761344881558898061673909251299519499707456352949344846011754484288979703744137416375271145458307171446857113157486148342338889774790848797993665327573042706657009395937816451967898961776017548607975375436908478400802381546698288859929942826884317121970808358939446616273994323800713219365455466843729263056455678282234332424576347386214694017396471624228047384860143855644145311392926296277339316647522236077497487687508863541634181866697249256673912349004508546410521624123940790349641588226174859864680125970228867710096924220034959300059233444009515169483338108830625678297276879651827462762007288018176189465227902200888625834241708610290024507155877902398554557035193214891474036910299293436988792721177534114342906219815194039210219071581606612721224937697996058913364963249038963893118005724337984267178825997570560859413245314936998149914520895839593726287622646568491434792774312110518454307863833169719298810255789384150172863619228002563018105376169564652281695639741181305938615315990828530249413050956508749114312479887768245417404705499884364684357729899989550399150932389057462589386392632219968703655957716770504047948308429023729209570080959116689230348161732000424641186484988075360718159513857119556384931776549983775096322152366790177397277631128008794415489646211947838753375986561191790315864837006643271173113005639932707306633818665226014528558340879646367002686298805649831873053643280664022791614951150218759403576404694980916128169172386685274297587864875610868810763368148513576815668772206996045146723765658008839728894903381406685922515860235023065395454296696351767779912409709401569193046077506344759632919060485994751097399409231750642499139240227003199295872871030514757476885216541315157297154017308710137655303692417909573492639953711697965898313998892880842424242136667943972151696092054820533950143536059202277422076063032707909861470681556859287870687772567870736828224227330736005796700138497320962929526239555557574574915501671423072110161676678266541637368937307523977129572561415794994003498468066031598784248444551856298908925539545388847460288069003051552457891481823183521462771461905740475532635143664089323313485285604669308220378398311803338916570957769624999544096758942019509871421184193444153788989290961900935231281586020585553884358319527409824491867755085389339176861349494733717695995863233693901000770995662956048536599515221324829280275958892523749494276932406430528941951015903147390714384579143566420263341773458881467682005014099593808020459811682334797061612926063431532353914258293945137266354743429331897082701441841751852079985392241574666119122370104905928825114855142879869329589274746085843797448739945094600242625854963296708022288261579531698484907704027675739885221976181064273391244532519101068036986398986695400345571954657993345260017778774913070572496515887462715567250531166008072021905015715941319924848563811665745695574925647875680157747722728370397205073444561055079110584693335356834551786820673776303937752228534177730934923920516311195883248426812547595883711400949578218573667553407472582562645828855866528927200358907970979145308038112580659974896391583778175378752452785759221535915634682885771903029213661240728470698883821619160689855954260532737221298788818917076621978702386194950758081753529203890133420025870174417316910608874703638132946054642216852294077944873273886954578184181547754797538912634302619161205259850347106037313450989845719245249217986654399124862467932451842057321045383834756022009632604118670009879119108789571779152497306654278814671550022509657828939107115405843646940997019807168972379234037121128430731813777714822646352612927811358660362525515577954577838709927436007293413320469288072817409650181919900030072919989450972371004133576246265594530339174981860153684903692445013013678548969063993541364742922597230269964992002080584279189470881912817513006613226314334146532516375645924084757993548201176368913918935388248224917520650018236928979486873939213760297227973353924016871628993912448719251538448142321042419587475159800357478027957352046957899802171160993478406131104455549266581869904655532958330684689234928802781904353030665143019778973293849358604539414191481370635198920586748437817683913329058661030350162847832511900684157650875277390129657311257976051510977412314677070576014146040578645307924715644485158724230129402061598653909159128953248573831916839667089269520232039568678298210943301560706033265344499802076758626725771720571935803910678543206113695143781369131101479261385663736102938298206270491914476153149039741718448025841933848911108872998405202438780798956435071763828717883976206782308617690299632616286022501640145266831617744898253918776681721100512389507426242326206597479025863250774777211188792027410158901324749177859583027875203733241543111039790103429554645390539516609052796239059603021420941605873611484256398441219505861682528660905240410835279413464789480471163047523601087298686282888906086827306995780147992268435297047259891723951663584189508246464270749815051092949479711126017700383770206444604123998164860763746605902001406167547142542348377163487532025743163513156256699505043863913153793172654080610973691512059476950593002046735341498403707156738348672027640547800911778946049289694131278873618176742599390036354358001262454583134441947287395343898708346102739589100251879311624309816156557487471430608331020718029930914381731096725480823548077104000987928741162591123886391871386750002511144567339223838687322449496272351770363767736692912679389637058407641650211320072839874374412864078341135297364180148149818643252538223410847698459423577007835839280574552064534066012331675626098407466650677245931870941998157382569908902492472472302896219462571765061353170040858115475735110939878587082100125187365417564693457596779319012997361497859292327195536524787959704170986759334174447275420264982103725011680717536688316524347171113812325358259995434173726352288456591765235687211913040535283249586005674751467150960631421192709462456504522956415337873539283037424004145142942746391442847154457085502283249958317993613948225413171733234864903755499490505312885407707143167293545422232382041357033440374381027025441348114254421895988796723589084038349390881262225386047204304889395035108653057876807423499310101270667975536431454831388894589457314490249350937504174429413728681528832562204204514682222616205623423284143624454250477327241187278583728490793713723636952326107918019453557382420080207921830771323517888585085831602444005363021340085642973769543425704188370630833972981561876924273733677240448913974612675968080411210609825305390339954090480075347924732053733735035074008863629034031821710207204925502960483856089700815208009027690982355170677863380151160110189780787339532730434673509949005918247107588799580642047358038602263678498613233649467314871155049554002189255261391681477046392367393597306409153378049560438516828686261407654589888667812371180906328725197113754494722492909319268079426384274136471358958020152681508347787460680323874191391106731299054390858212822929116429698359846886991876554203950311351717785202972551713308689020220674601862190149926952175233848918099455430443258267333878686495568603581075212964943007627507462007877353269746396624883743800544605789048023116470570945178926556666363507842806047656002017838865207113296750377569395379591415319828429401820030748376657024062757183245975439256823910573141352210971166100205030384480774859964563148596007918590307322787219549365212756951343796154447380740391825478018892734050714006573809450328464897089041044417836708024939023727368029076901733261818395530996126481697515363601800674421705019952513438220922196507946625650339609346686557613137593500332767527582693538360450233630220223897599366188218906028564646337477862640503345589835280555336909759306605871520237179199218880055444251467387934896428205059966988722893652716878897557339305518122755036761335943187503563506771136296463815239126393680582847721522014782570481175033243209382238453883645925148607538492086903211174777594824283692644666570729253083805232178461462420646611366019024354124556933124649328678894787619909958417136815539802740614996320349138328653797075710973834550594495271490390665573099902419929063850867005974116596707271979336991354032124240797570239585683062380448139518668694113846967393979405138072846465373695750156411796461046241526969248631643798884341009042890173828175528276480779727037715487368389479471180450227080260958831168050597668692033489093386934920652416788691756725616503218928789955939899881310152411672246779035409264768434831741313714992466493156817449203008744030288997873800987025911830808974333566990777063990587795290207719824459223121540772987941817517254943952350872166297825250168432619734805891178371939930088871763799453396840596454924412296905891848626305799603023142557438533287203784916659351151204940073321023136642985526979782929969834469189590144173474372002188155620231710555964855659778396942576795714894331851128540346090545962774013733463283264151116202932971058192367619183866778439986837098596793955935617058866296976065794328099399692880217919479333586098575795626947097943103745605403828865397652533410612282577147108396784151815862475584297994755615391396349231203235607572552226959322038839789759942335524452990525125466424103147484396400930805549168375024375824294171997928766286815268890563939280983792836579394431486729347777751721075747049407001127946642931569106000133116674949782479592898979426713654400861450403922565964395421703489643996803677570427235423148942298084128812169834533962488626658191512862680277416435026705380109680640689230255958969959641126152709096966832465892229066551589643359814221065437170346894875590675255536593526198307826840728859727355709201153936333121415708306442312430115594427798486736989938713100301249931305072641873427412990055828114309674869440912450814043498186465097287813439694768302066855481637229178082267906840248240027026784890422145642124338516039394355512388241019847470719164291182252376408757678770268900008950003822089482381562597442282305040364535582947382679235518527388630752571034416090350046295508935865758181095930573880734946270892485357284959502197683853888196318043718838664660458341295134212347626630122535812885216996406962464513981334038827550587052636934458725940837643025023903885504387048885732033721564273331566202399550614824186218901647243647428378792564324703484568552595754236229447331448283492762548565064006991043185833261728057644022443196346540942263807197474248962371156778215374156330848341303994442813555527021861863655085647407703045258542238215858562215779039742435395290900812014556477156347173747007695455530077216772736552997301372947554827797551166011239735153360032226571999672966476728105134313027102234907900763498795244665967375638796350953779133439801081066273195751992886814841588598830663118864020361579967904490553494420837198326301160363218054917637328842403451046768837683203352727587983944320197819989820359651949137301754852375787543177519854483308620202605150701110991816127878851684161704557866767513650490024200223749649443468948149648283006199322390380863075109715602126256352961120666780210598640131201845416052179048444765893493389330265375660720056585661945403736641524101181970719575449296539511906472616789874235389432486860297417424732123135754160699889199896152012933067571000208451759513243961838621047334568344969141782789846915401850182461172010516908310929281150892091796504049288555315039214592974549983929765158336327462732250656851374327123320016240036958274318352296031345830607757273470986576157058451287208189314958588226633222668862144885374686511699156132454548777239449555430504182275292256483742819394307720257447058522331949969515022448799119040395022926872754957517838809042359853136492159530352471947450881006344413839728005235760659840838784077894938336783863076402445062533610703996136082416331681152101960972960765641986258386411880838840754098538816576348433344571740270053012769632283348910302244838431058243093873653213110256020085648206401810394381868186757926304029259735405076250370472103570837242776282563611473114276024831657758227995591395896660538039702420573149062162259742151149409294762691043760419448885147595168277511456771400717271389719431604836719642368848453086194396011590783542948912519974554148571347826258013625471770222307171415905712038016131274846088772594321941232635895626112228327052174604156413485768636873148646468769579386921968152269121755059639328639215826762779595284580123056070855414197873051820629553210006640436285131006168354039839380229052382624661281134969296712720407576848835043834161637015713141563219849367224431769889700680357886336939038766276089805351190027248071169936637458578402443803780889405598816097623893074731119836116456667600996704985734098172266243044789160890943960827659515508219954420404341225828823306940869075554935017060517448672986670788428645445045708903036973770416960019455354580824316506304901093999158573430957609727350917443423292846887554944008877035335554604894169494661120314732253020794904667720956268141839547763782924225865221901885270273500663647497120948028499421463885025097294559421074590776562577989600876174583145431563989843372167395833827305091373329447703539457917346880410005451062230959908184381183583862131590342810362600874138109383991885659594233529674935858664566580525081705551450177479328931114580522611681578667633384843589734268012744612581565870793178390169991113526823282320376811364214071722153992946492731122484166195327297059199190755412725067399053649498075212232263730469456892714863488000980561117712776297844186565385670264880938491501784428367914642803272886344618558780483951167286404529842813907069565278292620830566001489917240913671864322520271038175303321871638515637977609513376387526048084499709898111956095107589971880379566902506728238614589102774494733671040632897730838088756950164787115299649818244764747328082357659081686384536524080907271995144777594826009999532120594185150968734399162549102838151484931711460535536631466574713883747597086920629945253194629220024583581941719391334096720532215124132959859464522695399632423593036659691248988333553407984288607529264697818662089089580616178919528448930187517942263894088628381185172646158743560865267288849275698964160570724177820825343574961032209276125005860693193691602461300948282280374221129284257520619076998216409378069903364856657117184274292444726131485845544644003295258694724263913576879369053442636926722591750981175778083096537756465023450836747751615719404392768607852717225430993042300291843379364826789979481205634994382768279628718256207715638695179944261230697511902003470844469679128717659435634013435364957167999834993069416710375677645915258251432907186997476561705893248848400586772597609147282999591577578878459005927075033654481024530220498320096876878157230060368196255679056704149836343513761973703435984154659814543408540950273872440256774771786766879469054521673564107788755771602628108018663373476572098911395823554385366274504849913832652937501711051913256597821891612504391344417740104067298114171982588544302298478965487563208373162382290971497843521230681964107454110000576986574014127334356540141640299363731468378377794845053995165149512356719255924209269879020112685337212148000328131559107127546913398221265729167689749631038346447382154724501747048026015342457100099484676716739393807974240886332348130316005137984115700723729370747832226301877939015626895827027506484812366923497634884514132335527433158310631488323698231663394379977847287747561399209604295091709526303037538202135904070703049241654637406166904322582899050104761705478338938965721225543694775588784957256945408953807449712150929846878150460350638214428213598358303566446008674462718606383486811333309123558882859246023326780385612304093763304332753490366785106867933132279473188458398339018016873385596361531031146142758860159238742604421055914135554597972073125658317629171708433305478500655485395004340111019968163145401593060905531355239189973498894840073109950571837586702940207421443529281567600112037243535293899437949039927690479270308384915194568976231764481396902365581469349881428019868654741852473002570282009746450011885695727947061119386566661746400633850650975092264857037008528622723018558758506817796844520789945853475746060824263028712775799021773180313279393098173131687177261049563906588369675856107233075624449615952346773800100292989012332399504340157547398406522780626987360361147006299189748636320299273091217540682873136272823043398180618290222793486182626441557570239730195668976264683351955103312031402355773494188819799461499405977037336095136954673731484671731763738532505199150188987300625182331309352892501442210175033923357838268946784572731167601878775297504945444363539676447439136153697838058356733921928666003871304756432045359239496932482849591823808210224293540014391794700043230248315134947528988203707932808239059294951188528843846561561968522204769540809402540495420916684702669949617150002683463569208564375785378403933165392952344930960999465896231720587142144217732838764005502921541655353636067399182224568635899998236812926332255925449147567170377259972408364823187982946434182907056590894787011076220390517615783899782422746133975025280817991505426005212934551379883506076159681081283771265639003678371639037625583895814721498404167961563325130714353827065209411574361652019952020655373461810832647040387319094390666043715077739815801421009274979657706501684632462667834160126026450497649282488981200382745612455557615901633016120871994275600255790494531414445062955752403522618627855040095907960251476002551113387403804827149197877912455580353418543675136530288277023122647422034433601328045953361048600163733899948450743472147318113690935725604149289280444712879145184955042290774803612740820477818404271434660418148037030804618040679188890725065150886689506964157770587840360004370650139677863540227487951549517868355471634957469957934412495150880761503189613006514558787258991070558185885653195357946416934036948703872747041871771097110887111964140332818590378290376593540066051740833880051314617398802381279905125016637171972469496285439028344486526253412067097373245772199053865070180222933761843402322404298724445956828418608775370954242092140969087151569193852565522935712671430076107910896547008932129076874774876989628380135745051102820706810865181172667399728417731447275233944480208519706836126641368107868946431624996457143793640542519129829706261483166872179182414664742128614334360803114097542463164897280604249557490699052720258147589147204506027824087089909510635908258752888050577474739449608624616194872302881363766415683352668757629527159833429729352614817945613613055654614742131670156286306319814776238160939560667189625275934506975485267021681234714633670298102673241391051138640386024123244439547167242558157952377132072069845930533530679998426351451152485512593094106924494841778265972539381810852676250284609502485398769791845588209523284791975042864860539348670291406621049308978862624783741434994331664608285663452335645281202965674640475057586150958739328328223518788764279128952238096914727767784613821745280207191539886054596847254598432123999333161517508731572610129085586518612285503637385658839587699059134986902566642660453864024866754543359109402963853276132443081132720456763655167998242475620314558018545129813019322170727048921601872594304136910275599240925497095759728152587025407855084441268002131713417940583572569666111440832834668578047032386217851181053733039128782911221741601946536997463705754515758055619853841535579511110869881496317908579694529835927276262266675874670294474901821744152487859080961100279009787984010379231918373490237008023614169780127773768995328820244562893281806004456497928351590393068692654602194161412842041473921128295317178342190314887577743067307054423823226390903509749067862137364027098583878931611478434721069438931919310373369421183864536348966815515853561537777588727981461998455013756601323140721722387714979547509438403275220745446950658966146907039383139156996056620740580874951445686211438314530811935692512829481364482897295390258061410334801716718876377508699249723369721349574479728137583515102918625777768552180349514195401713070917423626031977258040362064780984874036936271749254751541327127611268968772609021867623338587980380742306700677165248132409395559171207122985527774271772446518952757097843506402710675266154072996700335012660432986768432560909287944157588880624689257493170228179678768833135940118412683469105122787478524290165075650672827896559146791135716667055212376194613783763547870222256734779113964286249038935346715289198042392110076659521310826276115910817863174638679915091741296979541704004117726468100117455038635104817431604314041012129713066400193787903428445334059484804960709482210726598514454325556837213137270402492193636081928970173533742923157183662554009127150589438784433824669505960957171703334861925838123419471850983218295953794739916477317555551568044489171453630715927846222960745559049334902376022016900632852418436150191620574540294287550872544748222396657925554144717049100704439011195765866569694539513299312353311205707360467080103867460402652940204476578869749739598380293096369013772032328653076902471940645710395192391392906068738524970043969849293500440939475140134213633690513335124250096989861459256280632756670150093616539580316453884652012117083873787044680701151261499907797333042201796315641684585854690891284368901843169623222742156672891323379707241839620757556217511966648697191288538315657096463034977999170526119498620571510462864477041823434518664537316596507120754800522183568634022854580362626174015129436843552001447592163190676010944628556456856781741422307292321492722455643429454046365237939618114277147750353755165476937715097288549713634474198710981432930478346580242643482474933245320209417711861331068837810672241659410839736312604453367521198054254397517721276527628611407425995787098342606696303729026613595934381618273482009670192604721525864252141145207030614190548198684775980548092300998423332039226685355667317417082822382271134888429079561396867396509440593384919497678656728434328041588743654017531963850055690880513238114451006831191269227451319676747662158996378771145251506932133822710759840937288260562730986410723836492185432551541686306686777454849166987509261634214060933029442589387603254176181056416970220193553575130679206375095963777827191062924809855950323691506307996163268886042328610979250826967846200164016127758548595764997116971142720747201532765740722271731979711426094821545170410365950269196958311320737768865466815893477977530914934152758386860951972664464929493129343129294025100248703794438359757406983483538166687870139384089362312504501384456223345732016229597429852546880924464744531567069577666365051915693080200039732386727643661038527148251637251315658193573939033062248295310235229436765770533974328583276088870074531686139883853550040848952491095626039543441384431564642149704747742246092991816535969983224346240892932245780764026972191506194872775764859479989411927202690068770415466136461271504622950253474609572564634947459929176654246894318318924490427591087775680986672429923744223029162950649796458882124447912984739276613764362306889215887872589410897286739575435475768864638717737884537912232172027357865644149299497859490650460802743954944223355298816006215078808872532715451966842692862857625706211887835906003057052928912029594898935092031017035452535813324602859326185629252285969675002749140116630335265045095120969649044057615736590356367649503530374400271785395474790616707822982597597848359405060943923032361431311627649649395972250570005582823770330988023087889798292306144933622920330592010000475306614539223571729929425858882743881835674551831071615030405201507188707811254799571983562329262088502041069762774233888165998203241842522523070362366054137231313557838180972110157676162826390705703471053664629024431947015256914490701302884663258288204201502528605224505498010228224121565264518194304969383613040825189833142390517347014458265547192502202405244223022672794055539529339700363968310194393952315587749650559322865595300408518882605978153157681249242563794227529807623665516641150123431971268918402904130895586400663066455193347293461161908927434047290283642032163793245879978332890680168908774761151510120001009261292378230628246241297913661303109815959222813273656962669799995423446939211360892094982856076259518951910814133751895178438423091100036185743457788629062446369968549112596912981822675250791037978899286192649568076085683379559055690671721983529723503859625574797977170903817815049234567912026831088374490672853206311228347648220727349772720515667748748180682417789719158680826564223847966520326723070216415103706487645967747450471709314790555882000959289438771400760572153437010534780804476948600359347725264662071552472433290428258534034863604528664916078656926783842562883469999915297341433024733902760295167342661849182070184333424238616577111753431804972993877446418592297697962679918693272221269410659027388924209135242813148829079348935127915886998846936945849255690736077862661797803620587105824939858169544031097280742161148562756984905229005963245740814884462546737142142389690688887618958622573935644395962426303675076077637687972374122334390627837093814417392710788687311786133258188545049965082538223305358139771501804274469404966315577939444651766982351298013427183119234775749344863446148045525858080454525892827604837272893387761414575124060349252278914908768575397477972236852495608902405675190694701968719562040816240201350404062284293970502371628628997952290669491291270333407562264404867966293768829539875711851992607978878871213768660410534854421143876694195600702836714932508873609808409935298983682672067212361452540266124348769587142374663019901667506414169195804977048436058631941826212749701726524379667230742802256190437635751057367302882921325551156101284819413703059916300295707773405595170340504449050555648188275239596679848229791071180763182019453031511385795969677917162804486038825730870456050049791177117300774852956159321867484769258469025864081386803674403355670486425779674318325263619969135275023256017782045930842146295680441205472542288441449690322046918437320526352546703345521891291409669053941922830199031322496012360194986424245307343493013041918231867893892529079107366309692948678934779547802886992873235361320529119962080673641456898080388877179616451774888809849870737238928982781216677495639208384110518718553430140667630073349395951959392985003575972849542347480900378608567795156626349415214470795678335680881044864693697168370323157345315566968262198531332395430001982583778438566949283045302435437584342255992852119827405135938362960788155278388214725361808896348908502514577578886630356296001363868488792899297272682953067645424212298749274972094107309468808041830490974266467750985038142411519330139175478653896194761160547954916786790820151990775044463664640345793701743932090686939768135860643683089700592584743225732084878738780784534889061344572956226123857597137225318737382726967320614528196644820897137090379665979097758033612021984101007590887997216422511224273953430951593366341010373191876408429381916970551048992023822017589134364977092319710331264951856970333241186128456738894343034366138497135936911095065858054971765470234353974924855818693082254069738540500318819199435234256116410176344189044317665421841287149302962297202974226689963006872663719308790278555161403489528048039844880653483182993995878484855213081908923155325298794702857826686444351982242057336198537540572175598841001147051697059491992393953521783962127869987780900591865827398083422665772502806876778229085032095757612320946787945773927091204748505455090384654165162776111596455599789520742723817476467297507742693618910815811233389385118002099750414575586508375939662564848862754699432783407901517652389110540531853765808522051646972919604104895484566451994709553398928288577357288114311414850222610408665852257242488595677585044401870177234537298632352709392080381423233778867427738516774765325946178457202444759751254242603467454085429170162772654688575502410208609718885116624439403816854655237121895717967037574841626824893444191464914260086384607307139128960454437423970053044730401803116302055493947853932027733058653438445538708265134223868304961084161243088544177679278468868351044007969905885673686666608081227538568588155277263576556044427279275515167407955636708476869418095919602208961852989345953481903953056032813319709935896925392204948812794844351197150268604932416075198571693797106541472741656147700155023198962584584063743393003948656058854234500663122720605222676102856265289675924964889790738366263143252390138240359957184813571283530244953786755586871180495930812336001137661864269976738545123245283254999706027473253010258412321825625559570354157369481108224271033305391228699070553869567284524671372085363951079807299975981880490586810971655738190897198796537620632695125772037383352008185016643848456566147451720690036633719177715805596478272355173364599257980460500022552013206178395235223335109427709939029911348771311950302262958667964475699096079465525750718410219395324653171786442408484635037739334321416375461072914454054629619969749127068951611977579580669203355420684908736602859287608941169915619594720717228909368071731702193380560677175588873910224019364994507640434660338059830304795767081952944935704505165640733540708972038341360016091744021102855285686904114110895436006860749833724330691141857032976105987124308484446980070147344740397512615831389249871130553688797290716420330956787819568710964806454908805271743330364824048407741145896923707084609250907521874833464938334532705039010157812792847480874910724942300899894104782198703907576159094486579954841912841465071646931343597336078195067094981324219363454774233788871211278648397833696428759393031974136008949419358191668023337477216106489978534313163830384224653259633063340842486813271984151643865792062253252994627731652160658654516995327945493707620478095386729205989552775152424905343836541402731326318635978161082779857472609058971328941199423554860011740852358484197855192076944045897205861320958419737450220200170120694204776786208216765966468408031863268595080721128053655846673472554655589911763191969060372968150696676591103787359750500071522656482309136949491204943868801936962972822532002287594899372039496614449797466547307421576872501218529553121826634880428006775638171668058351925229658709237678386045243881582991419186089646038822974218130443461236140986030465330686455915449665356131024634245159434271276978480622648709872503914839812207199917475282767433796236232846161585876006621216002325750769973886889749237656194365716610227291882681245427055261043689826734584414792776138717008209582876390633397810768616152058584948239945971903103068281600981534176578353422925535901878300596171391310806578356405643230003692355085600648290801541199028826216625585740964039477594355274239145382293399809525646989381003559997032490310664361682830060393360131644151557076780775555574461611418559034393464839891368540846010495715774653213173204196143629393997147349615344344269289142399232826536624492819743782616023643418760162900607927780652796041511398821218047336863475286606089935559343935816692424339365236239907906205246650433651509020439711639191996429470109977583901059323846012819948823073446904407119273136107486171823934284898832745382686503565653237290993200158353407331693806945240929107344707384524452447996955120454411625270086786936597395831593500445247432729162811006679649027821647692643471549829794646484298560807633163747475206097978971260107679101496662939998174671567332739430081576385730295385043170207474573434234546340761742091930064453127992644442014160590066384217575825886458426672209877843213550997813523702137924910840484810335991460794228382502792460573367707264023766567870300683927038203553049476789725838288801321508334804890147693156463847422505346639044946454235886137416634757430889818767721707569954384411053414875808705276947727284432416254198160558925392709604676147894275197274226569245522476356008707747509744277134034703470118069126821723114291075710003982469474131876897496580401061745194266375862471482209325053931153696923802803882742550152754763827690566565779575407808447438048551733513134926900049323312495895203583379219088532144504207319686831790618542485672760282156685340886118957151168645253349643648225885427613078898149643360145163823116810034978469136004622715019685034167375606666326368182967220886110007962376540990536023146602815043846985070072416254756343664141210972063282415466032776912214682390580544559108381164485222446157292706996873402596813871112772742242001381977969920476836793876631142116349845856671777024273591312147249683176937444725003539119834307598259204433545129228955921621740058469340715004102514817494705404999643521367306051282225666178865103890991706891127169422276449728667297847836875316653513153365913223670420986276799329043142216203438666741222100886514915633363460468708436626679062348817055312778361474265259927423766428137884742373290892477370539848883266652565018497168568729455480429082848231793957307354052502341421434564464961019109940008621763488565353230845376302630244270955749027038489226482999803132968186128738415558244056107363037241634080155379553280253994740564759877506393495160787490010218799189693668834064348995120836623039998900804115865490520194399411556495987502156845786127991664450714226976365345271358195072788338309903099627180019792305068872368182557178066692067217925160012753200995799294098846460645422549548045128104847044776506720412923234149493598440292939048606658818113293954877100111952642764777477520181449697909353273546378193436863604406511606875772936604294385539987904826359089696659555709730267340418957073178752796840143877964235139889268166048293788624544091284068569298778256361834078637022190737527402722394000269016327264831133501349954597025691593261133777342871690573887486030125120963622067461858567090332680853755031794421754587215286619058592421772557180144834932171815087949558067142827708048180618375896692400125065536527783567056546214865371399462172072305915773560030831828963536040567899295328417597539831017744423026390306926409008909793993495578282812202942616240776014356957675645153377746367156926341913589357542538327804271500348228448392438587249272158670195837522633112001522451301712714202762990109748199912920342255842589172847281397803693980530612246731509721869139678925200167383074003406805058564780131667463034571401981343092559322360924773860966315022555393571815049225741316385999865516084633543026103858835156853032160765567571138130124006921162326181633822796437612874046764675917349047101641727237598606817661364706271370674931935245770949361615020069491216105350266801322137361733212095533766926894315503652559035150462229048944224841736779782914845168552935946304407632845820315908893368177201222258903993508974524639593091602655224670867573052691065963945895169580916010051556050172816290918851043656626578074507863421223118873587326174022718306978734233638314460638957828640842005959601940298995092394611661724908337658218510035326917805205276070110318238896863582196210577951097907441193827355603876142646919774560348852157728807990783668803107783540707882122074129574590293963439797445857294278907555589859460436141962762777466269887665395770075420248479686914266991750334207862091737854988660208393943464736402399548641439920661022159012338594098887971259345582238216595264646790270974660655273286806905510023221502522671998316099524639536984499790309659909244383186935844875814022445103419751385234480628490357916645675659698533119791277378990013315272008511743376801175096014927501980726015776113618980027076288871044379511141083520011938697178726802686229055923698247787768898228218278452373549025533793893115553172240511270318620605336228901391496461698619384890428901894712970287386762408020976737135908169979271129004546838733286495479671530193973987279794271370225953368456812613202218068801588991778502653394287172069693766456522958610790853612641011791911415536440198929158998020307217077432671501009083064828289532169538192812312498695438089095310457348643968059201922612952710729531871419474624434137691886344780345210304029129066804393725891873999212561144015676515949940450922574745524619740030198525663638392648819241109421290099256326273287945118806595649435079836840322368413280610130843017258037768531010242724789139693489523658773274547552788433558114682587493000326059456463292210729425073108088562073548910215276460422056726599368315311917629612051836770309769029046837609920468348425043242661223257217165916206275495240017007441314141645700701726895037594180173066669764940210127274039818124460070905588304818348266190238106118085293498522138121301652656325715503357077706935922472028610981739832713285464519684533324868809223525532557256082387944443847904209447981253933771116589460556309889147489525130580993833263908246221370199649292398091888274374147790238693857960543860371846927240518184146280994575449661053898107842424159084188908014482373125829488685336812951771651882049503494095187567327805721911924071455342978628900282071919054411200576837968080226830358454816568217442634001107446094993737767455551765249809841527416827994823401657303981798232937744341896552998117934235565017378344455361904742040949708658124104312085844513427536118668450111020968468250660625278052302422347446908838996690456581643430743364949999965886591532636609694327323759014068027610766735070521332548886956304687996590207221005687402590727794336022493541037471806447956445596717965344997304799475714465038750216521420208411881601191430996709029673698906875188420960425087749407006823883119359026138866740864473745433434637648337997275306880388321700142457542033672551100984140346217432725703659993913036680238241027457968431742247970554761846998109532556781160549044642187226687210190955239898159930928318416251705543224640679903219610720502280577404338293875974668800968870881949840846618291791117952113185961778028984194318867234225152466154794801096072610626039539897971456155500361240161455896355988838560733016895484036238335415365718686458719942517610032254344991477685543188013032663786049625908811040780531842736000587627104507898409771673211593929708251048813905362422462809161540405667070428988849131545095993719604896585230373319101099607929950509628517508304772769710762288971004178779459645014466256780793029673199363799548716607499625341699960235784394524775230539262046854048178652913780595482848265561274982729696280539246946957731630125236376691698795649346887566232955427025237988041349652648213281620723370201470234860969662896782649802354705857912935318624940354813401174002156269262208750685832510859098560029387567866286336327456038524928943923659548621209749569265479990521422641609153020520078125688624616023984125550904222042565701863012315166062084406830772081282337231372285194708756956361465257235842117845694683522811712830242867851262702893123497153728849520508869753932193077356434198034907293616687028938299989757791191627925673731461762144718411819738449602355816373485245423353591550424678373113764762490956328038041295358179063698264198430389926582404778954772815174211476702189244546609015182477145486503727700828621196454774496486830175188932574482737230504770386887929273738286279269987593816842139440546760881207931709147636021938855832791637432490175904736888868355285203354606766452602403850520189763080326114119993205343487634364546877358109078352091587015352811391280534608031482706545432322146306432622849111802858869167070706459681317274962575757161372829074992239433525053445598496926648292211646304032699399784382198341457975454703630169699762376780942128969523098930223472497494375439541779597029127384548355077723943246576852806366195273476111469958403611681686057506542883752380630597228075861834761839017059602145655484282171175711250814293542968419308315787875394460994120531894647661710607778698013254277523806024490406562337366338803663625531225386625591455023511060301987227648613099650640766868441884892620942244131034450204974109300142533959717358406587047608851823318419123539496677254132650460704288049241082168269030243940704260855005585923488057631484226535099413018061929467051380401293530672486328910910419241366524012766766285922372432657269880531707556101910053456615721518770498916930959988792271130877535623618355595055582747145032960006410138451450080705189358535837452633459693497285892837099626081847578909375420628634377841343985515639778355538105814740583726957410309317851452140786096453844064349500711857225941572955965923019576879888658504271050406499851768701797138389050684836420128094531606930803522656089698959439211980067135821525282748453056852950255674235064797735024951781397805560564115347874493151121734010671965157521263396517151204546297883601846893816712025518307020613262675253903319578453175396693431128420237580277413219433872688160240791094918759188920364661413710581205416384996376407811223608340636902533395117865982474466521442381424049327134553222959806690057200475353170550840327264539138550860723112409391905432992202629973929830084446180037014917174814690295485432498888285545889803150471287565355279177947750880125067006465676463885712781589394263998683848526622156855468237979492883467805816898386516292538429828981855666986300102118513356543934284441117478778981171097123399142494555467615024068380092398714887616018283520901774603031466572630902527043858909037055633725191163803617338326904993662281111730605821224694886929714657500419885460763265808184256431621961287791493745619686627409564055531937065674491695520867072077025518600329489981495073065959248502752377323469914839926845005287005424795887980027500550128470181291083565210734402447652244272560993303675513862846015620462220597656548130933098079140675660866931529409985038075070328282892585422214846597431545371841263290875464443186643468612165585129352250149954742385592651283426076499849237942674049366902488521277427289693395091452874019578390193140046754684550263545961800858813191884492613816773128978194072302462835063490154456913509717832838026890700016645612586460418467062845730383263646673313318492576844284001755689967696558718000266007467671657522798313726274429611886274375363935426819221962146930955132052928468752735525584603078940608855966372967884500012867994564340495015105962169747010421477441671988325369863837444212906483166402345739483228791506507375610259102687548033078552012298420018463576865883855643728176257014478571862441975477074146489400542706294093989751472889426041492236371962207841605390325980177895248355677555767168375443788533715985854778541917552618393909185767462028221390491716035331822938866861172940826387875851060102290281590175082752254812983908255743150320110741799663112190902831546981536964155380072934927368126899842486372273622891539299735419010868223595100962435088544067243973030395955219361972103148535647745049992892676395402194973521664457844883171757390031073623837325342732320475544733300650956280692048303085310525695615066619840294228025735384861736387807660908558497651614431979887346452110334229280757582461447780652589741427926850568799045462617329603523289651800099994065043897679096906022499739629503417860933262007120004242148529364570315445561581353393753312106656111355630935531829876579751903164945260284569801829236310360808162866734409428005753916069005215802186243974985833191775078391724614728065056030151133062814596769828160058235055064103090539676624181526322458643139944282480915656120859414878661860933625723167261503922157220778982427253416736305973599371668602133208990736313214766722803953929756406575041421285587625158180123440435897437418198449926085696377206692570079653221719847669850175097612108765740987423305427404344839181829666132339110260075429185097410181664368683584481221660864155769194770686141761935118543715901332899571501783171013732706688246523275914745720408392696506425778343377053707895438272571757940828520037562045843618129916333602163326674253728766982847092303029374646185595522190506346009418052539212807994549379722140354919035633788820034974038195255106103650483934425445840222049186892563043147979918850622145817552492156957615363546937331337257243404135134296665480540661432587498754606305872344909254466287381442931224725822786010887560591662474356249562548116680790338926205625572456960730122280069084818022613769936274176520504900974713127702458807615146162205825251903888277116400981557259780576684415587806568820364204014535538826940574558871409110071484621095033449054814058249388084629833879365702158001723960327723246596593531555750086918886967806174498460496393771303489539973481900125545234730651748224741373161470478036940590162837450450485033076489216904171029482182290745381508332643249000706601348319527908567222870097397969471338420216388188371228908937939193537477873363687785895301767850432646249559138609404611337776827203913562617380309377426803459224907219046451790867445519495448551571186856865759454845998793012024934247932884800089055260412584347351514572244308819011134906293391652377496219685814109834121748472154338965787223870391527200140830707887887083561748648913306983100853871201595207349714313025228177416942952480239065397909009235640022660980502846053401268185026641901409530094439635446499766641011661061704171438036737693692200021352570785817494228132306465247742490472147529496364193567350761334518261377851017902571535938704872970446934242477026485259888645141658532506130827980131416642575176561391429689524021322454003960801403102440009898272171758078074363100020091307102240668575332714762257209419987126408388171517922176928226882093133930101537605178896317094562868559127791509398147733484946511090841173445992721368850660839984874766751639182545566399427099011509973944628263080509379257594599664025155616524566659860482638276535553173830559791444065849928338372528870768599041468865791591299678279656293127017329726466536113425818960077905541822932813004759985446622529581057353835490084778222714056293226019440976254295442657904641496368514796949173967536693072773743815629314866890178383868510769752181550009913106558040333022678077872311668693137503875523590203881926083340054767120729440997388445785559088435249327104258514988188443412066215674667659651847051932546818181973717098474806585753715182559597918343904307728863935403206248666394679173349491679628903233283166852615217335566649245820650302498832301396439435671441781402035085500424257348713990026910286162216827055713039572415159724116843511367467549760203495211436527909952906429666589449557591971089050810844050724469243576494616152436770625925679723075994878479232178979561771942385718444417064107558372126874325393491280185581876063769797446395941724583064633545836256446160529959610452777329630349331411679885876065660941808082418327650825122485721092001552335123651264576841710170197746275453575318477718609453527036431400411386171565411562731724902312232185291130885334896167100109070405396154653136223442639301655542815773425004262612927081265534983032455758545506300847222746362156240419368406580350487358503402460706278104796036276941238144703754666599424475262922861541605851927457202740082571944421562709098989896579018727676985514478614135632939660456603694433433652901709060980454816931711768429472462794861268973823668535443493669475923048749206487140403560122877089115824788984573799988182703983022439856431593910893947971747282387361642524794530289252973062509016236136063900849083049059130965680210983962129174850201860049265663418526072070113984979297409119368712698164083366765146320729932440607832128735812228809852857964923381923464490230616730526848846617840876473238436250455719849019587657528040077550126392647328792041791088268793577875215052745956970664560076003680630289349932530601766660012874136107207481778513780638173131005380214055459577675212927652605438988797805727301679611712822706629145867873594171562469183788054588214151525090656826025135541142913528114062555680563975284498266860038782048922223620144600451254227975496036395181920982167089455765831765715245116726023336612508950137945873547642333586418037710903910557199672024570089939342948519617086927824792971231406040788446034110577121755698502039420033452389322383977320494950669834736610602972816065777154883589028824090313978325178473528041532565933542286004902034138356201939774913755701345682990761230959148237030442728694479135710989892364734059905574100226373383108727451054215905088974991237913411489467381980382558026752506296506864556716798971565655393143222109197123750947801990805587457622121716415700911289302904032301118518058478974920561846280848128317236953079822507283024088082542647471745527025842864210571474372203383511623792469918876586908550566545533046993818976113641837255371458276356109444276199119938944707599150880243578012535891170915263311500591096377125011781375755633528330348291122113208429637435290435064835835766286199441153050633365070116234417873559201960764840371616872623889066484361544740612335449569175607509929546765850121098100009658373290451059182401062556440394664192325703411032175590680949970448332599843421730306716940098198369948736459128961590376809183023772085823118361176701615081316253150327784655798286422561173244744208156102019734267472705652070693750304834671493258174080046643615494901357608592993191539927260538519864790595248103831436324621877995337009596574512872494146334125334260409670433859411257269759886660738611111439888973661139608490210707388693710860181891520840569057472257746797436864100996162489803452130582533092784313703263797385083904073508606383202743490858766977402891356862922307932655271974556724578560960353613793986414239594888163470185465828268642301313683528425709460043691925067464558767132212611526965933281104138084715124965976295973535872471907033057660293382390087869218087116080610573085679785385143956302403086870806918520567528027586521141995572725867505673892031047130172343777974782746579030063748212339460096793703653868700419219971210496351605248916731425666768431460427810973388922686061705100753149465121693412524657647194614497695937076946473094249843919844176472495236764165694199298396348600948437176053932886915717452906570303865698810955067253418770094998194733223193951374161234968218983403839616198829865465302390934390916012858653956805319814106834517460068630400033420932519657808471806436214402989583888337300390959667195086737441237362499736726293700136138298613098599776646520721161542849006769993831352551332544620048885747544140158783034760019380573236437133582963236572421865331614273139638102002856825293018538827021617602358730255689510015012948240865039024090293705035512436313567222164468531994346887207980084114754570664020088256784090917495974834484260627065507136142074396532970421440119090422006244921747423179055049110779128085335561642019174565460452690327050296049528765411672945747572638387311633105146490643235500340601193411886429521660551604100508766325766008682769227376994243785312319971968261345758657720441827071020928281556424270624044608703581958182329063793608080191847150556841118954934251151681542481892751714337849992315866902012438696431325828660731394204944552608334424009016265563669763982760977142494512598366835736455615982157948820326901626698790245112665796173784698677555000346640286553383495995895693943450009151861345643477412969352784362916395429346553685078816526083467472648469438157750622082047689959445463535097578359341844460850498726451677538368028070748347521728150187489664341382905465890959100271194418690280829736423138074092255149075952851957235447254679415858859451017704067000428420471581148823542970324637201496246774628832159607962568266354170129890232138182603745836339912907327373864251796063419102229903478466630944480575382362576360305910615262209992877368978839263524832477284118442751205868383148982886207655594521210446915141950466777381605682433589145996420147938325121837839646246387073884875616345966605712192601774525673351996070137570330385115143025026176764547882429632571719196114937164647145489386540861822219925232066167840078276527170425909778945619336643655067625173076049808116158030437514897798770849537638842603137548759778998737837775442707838186593679110753750655517993016208879481222774314295845230307330830931892554024522505135177864287012017194398027592216863788046538061398857726702384876168093447937099000518228630506815323328756523020182040496053871745747084813740479445733420289126074856345827773742647856980114109373603287287704777107975670924164980337073692704964136030688333546681459184015012568689397623309529992317003417157380558891313630252432990035003920967929310910986971214971849233496225053383226716609169459730916881969333932571343599444095654987371136334696908566561866169479667494004758385094568871995003893704095172676796767838397159875952636188703740011652366993187239100178584040156038041189313147123189494662586515957171980824309069199155990785746957724367330563266757794789186411596244419542672770192065922288369848431260930998429736731823718905916635903369157603912254534626614981378212412827454687792858177431054698345222892101713840216581234713544167948993810278443362212485384162113978983365789691385501463131992562271855684185611702433170396939171495524440710177703871724370562636127281444140321030374164188365959631769663376435622097021468128441185196175203571682192212487503970869947282455220696000300478841823906831991520330608442606903330730679513170414443442031636453076816295693814835114906916252032231466631346377557872008166621423220014632625837910357419595756188398543080685129620400825860532717201849702455540511175853396748708812955605777568301578999196894454847260883692488470612782138440577639654217346267852471409571605140902914794968743123636992933281172884234661443766394311464773925050300513364068500546952043381248452708496623228399885306709243796571699456422813615031893572685004640945880344270018299037821980997975366815034022214761449109788762779242541379908858423481340841445044907287436244129891169858393007095759497642484554373039040807279934721681352242161426416062313408972626495088114725135015024206903808004941766222934266454631635347863966152320888129896756112388370991805601892200232504827362693770682114289261987787286427746390256588477748038496446818660874689481844744412477187384031576193387402945223279519806717914455709786412958198136966393569457224948181709953740753610688117459023115025970143709920567117257687922709373166913228290150843481877466676866518098648721090754961795519876975341375884889582583418811220184809355415140185024931238336879207027132716535898579959385522758230089158509638790563172301770349884257976705831155611801806363102590650463020192180292096497918018258243631239588167836178583502960070857944700134880420610552791219263672595492204637468944890079442052999411681423904882726298677014834565994418215322815552636719728861489457337793396599158411243980434173932387206014688258173130168964262539362781434754808512363285222041351595016201809745458268803562036576913801259247777970856432224609137123234307522899643936346631321117144226226458314112489788988581609272286182449045189628573833749747726588436661431887683915857803488715534311283066397660903103121479409274614737691076130866183191371289692045977833776077582813005128850839263258972399329621463099006107677257565071306193538556234546834467577187510188477289449773166488788824471999120034011890381948950851946015838367430949476210727197822478871793396440744998967024358473088583631588490300988386562889556583883045148316653545873249100358462972058639604268901248988445726675679137834499488422166313744497216656207959516855360740655223513515511881901670275058950114986087315823022845790774275862507556161413486169081750187028216802178770774412363381438618229609673487312801983985047265067966885584738845630350149386582082323463056972113894805499622814414483382111191128579107339446221526336812941921391004643036858181336888599551318922418371188372481270953444784746729319813319177028616912230160677208036048267169487296032987148638928546946817901112119036082194564670882471878079885172595925177785335097269439840213383302904004612180210832874319373872096417485526586327885076511530851416497500923521505602399946279493179802171367465085836294409020895380717003786964266199569361818593028853044720115796455163349310072041362252990304677944833752206278555836052177434661699407923117329095061412334603072854518813891882811082994522450859995027669232494949925887601528877293104540970687927207156954462552876674997781151049461041408540002846204479824937494416331046757336405401210257358727746937110176256459018377518180814305968615849970714020907715104404226152644545579720503034464721464764303697014964342079349279556005756205106376892437291938247134193780969128830225257152930214038139851823881724431716364210941531683139373415025315960319003295863812598357144499149672592242240760811758730615069120786917491187133162447538550855053530160343854749902808058157393399357578583610803717072387595129710501091110975889775161511331397401395690355113806697678473299358611529773555877473984465164466587999515360774867299393425823594188858468576486598708576110304824149410357836848902093501480583973371128933185062840434476851003207042044426480685716873424777790035105971270338813837652745997608441755838665157043804706608614465765216883036748021329513676776710887125635021071307453688363098348673155797776933705106605859737587231218369999958266075729531480744980239328731004547130106934538268094830795671618298568232356178485824582519742360157013631925958499359297963057889565658877244314917067345977197222175402413469326515807281415929641205991795101261627470037170892179530125267983027707142340505845407842500329304166512804510643353878506419458413028481541125929105578282004567197377574740134577139310848640399842751715471345403329154235669348105949493871474007260000689456752521825438987200847257268380578890597313024222090175272036647188793467750829500197499149466678620117693164821813282365392918273369594125449172734493984750221149151150323701654160494575548715452063460410935859514095225189937532260122899252606767366255976477520132960220574231062898429129523146219770957502444924172087892391756590114288338056627417298645895155844119036159417346734629911492123306930241426738351275970114971849918559106635684210120482692675594727300704070313909953845691068714599976615074425096288899762523125573107514678256705761302993926030639452390231803655016678350920474952208261120733268187171026389819542208185542622876842183627902613188515634328748152586372051930998600753624804528193789141466071917743630841345420276240586092795042358826471335169958751954479273686552807540860542411445698028635622204116328176496893182811810027560766563155687068206319741877842937124489500158774805914423559833186581623355572504730916081423243904798884475604977391653048221118168043239486151864672645756901477820661099747329521341766479335487597104906317532553285847481550029422968527346790368637565711290313705994955186257551730212173822626554732035807427146016678506103658009174851149052237840410208999303357012998140614381941826907164931132663316096883625600690079083879110594972014129721281205260890353407265417117075216616938115837901417665341754048958189659986702232934952527301341350321404087511732824463640250481039404040203784915950803398051237790135037285021931821845421895657690520240940232564898246246044326837487061147753312333984934146396701813746654890899022991310121797611965927864773876586631695516872584876057076860734744037791920601099508790342814361569417047245550562187281786652583778486756154488972316142294912448855712474305137702182809716472252542329133985212351393604183133599838564114660459418879469258075986430872205845875489303133888151616240251344712422031344330041291610059511327628059166357676264585316765643346386008920774359442872501382284796437062921894425242646874209939217853947042051712733272273791531050653621164305988336991077620478944030642795974236307173495423141154891282100971224602241820562792667181236308693617433427862351695000018525731243130939918695788960966464628918669956839506868458766886694523479457711400873723910296442334830879166839950301235485868115354590689315050792226387419785498899437196009375702136488014186105113248981492507732342458047157615628035085279972153204908727132387489396191611828035152272148314422206119491635534354600372736622390614396053880882927664153463541933683312255425359049894803616454967195602155879586398868742103620381836916164471398100683619476587127442115810834511555360857750308474712227454105805438449262544105331569338136733836403851811444691575321158854622549568089898689272073550072190825744702052748553726875154388080036502061516150652629731417775503455577507328706308138053472836565198635882735272094584334096915554893328145309612161520840171083148905110927549962476400503150556897539316104213478131301354698086448887561734427771530141624093572995379912437500546051164484517766341955288444270932067850200130132525629905107363876046232315510442749091138180306026993960360101324011671681879774356317842547249020702627355071439721850075627840747590673710155501750898520802338662627596328049595833284577131401735853543073125589944606667397687979455899930308269702614952091652011652513967739277979570652719866735609281257548345203561068659844913387446593095649024980165465066101267490010528456419458782657769208487625176068448919462252723743749168310998768096280533108434654171581766736414340618496398087276764383271181720635848449033607990505222071313924850672180785945792757101043627338249685974028546547338239700030680813534495699467215476732306100183941120401721659006469631082516863871391935754700803536247240840686876842083548232770239297261911428176874564353208223255769780835841447970499316889281181795286280234394354173942091749713195852678823974967991696341321358032015291852396290475695572323650754339103644973477622667907024055539393391429097813906709530844710310625450106093012638823506386193123097726084636997166437474094792240768406505812982955549818884989486543020306321987212967558326634741922989559335830785552837573129562862011836955619894396579390552183030914463955042943077625524578518679394995952818080774711684506959138718870672770714899854586055469011155143505592736394601961501942332944864547716988327933739473322683942140272863351486357356138494804984580129676017238284235642941462127237375935544902553259825426495833997990849260933481965856286355154940008484660732744060667776580704443695626582604824865888774480496499900576902009208200479717878532608951214469491604099112201280815559686228656633097529627231658524656453952791452564089530204438969788607724020450103958804632003902586320604894746553392855157195204150577511863326892888610238898469627218341146789748550236779937116306944551941157029199741633271374610450911263273931196353215712204755687585915184496851259542531779602612473485145986711189641153864641186588858684634325920056093816855083511786020576704014988012944585948081206446194257187907019306322784873136881351747527396899482300012403081052952895222723931964602301143692638400718056120711767463177026782979244304724550385271812124969087920251567653781343276410122602916963258869710858338678156886217963879514206871339497882107160507977439644637150200741514775182612425889859728195591238892489820164437763728228926668589995850717891900967679266945683601947573830496838945320361104997910906818207806846521688418160278655727554312156916826135740441104551416549171042893906450452415789970528562301053529635676122575072121250932611448074387246472967643681752597427348770464153536124593979065470435351957913356379458090046749814602630778330653218719354520182964828343717798283342267558719016286483786668182166028064192468163201608903954057983863891833725019388683424203581035318766859843961362699946593952831800047353704459396606939240485918071238522068719835989216130865217159358544393955389037898734957374465794703349824931588789221819191991012805681632115900447838555031442959007271950238804712868256459485751100160714702030905580371516028536794672232609465911512119493916385061227142620921963278706298693241463261460616501266578272426919018075384724773938211936525286308710592808163808555826589290825133159864848283029094341215146694888667536126635372124502316936543082194105785101532268953108116734957060407372617132568882785760141476660920307044905901325758377843790634319318294419489026907729201581379894065727922982165976567846418502948191474952788160179120228866811422304469992066209140375050048262858316883157251220227026818297902100488290366338973739943352961085589071014777575035295696233761732550778266564837257159885236796873698818502135657809200744450838220635021807245755926936690808873923414540839257370693631143832338666545213225891641302520799822053675628729900140152101000954253905609556189150106664260480518956778126782449440949723754224959880650838306817538555999871639359042106259374387194704790011630663712355408164473696041025054486146300806826049547897933068424783132563366862491755007654630609660955696272617046821308043186055635026981706578915010354970421239517807330414102078464397634833095383989434104710932264869218333655061570515257708487402147132898743139096961716373693711281801972580394045441234657700311563832733514748235767396249171733908454975347580795596338459827395924670330146867910908871557885486548839151325945782924817822413002877204990550515511266175127892667176080696015651903744032504084520534586351109182674775848023094208171319330847949585381819446362010659899740780723247235250376723489367173999736347278315708634566012461833420115956532425099181940996048977450614664864058498355926681760664046711724879413836051389825663913439312514756228176950836364173726880969002919776615003280008511764501450529897126283191394014363394553048969573225075960247425184503183674039058648387028641672703346005287847168648213626356799165343011334178163007959026336430923086033259973877967647705593199928498727093273846809531165508593739127316294583945917300154901630707371756178070524011568463871358236818934323308407285993603269150716365144078865341552359864911440872997802254456584798406229601761455982060138486064792675218951963407655391394616355777739132233827683277645097024942569778604752357145932464719199873012193564022367433890794904685423890860988976805916245220426195202014080509360302628461813179355957650093113440016528479266379540249456915067393782750696996600741370019509713572834241875025947278495925366585133200955577550546696753000194051417777600590108092147194236121223887172204109071351743825783260274105532666575104464865661470437130412459767282825541753966547406063446707525441873937790714998949784779880714410558035847975312082970087838474002549749851032833359527672368387315026012558456129670925241806139231055762113234612318321848232660257259920934974775403208576958563039903714249184146863631106699916732253657808245519650684264640166428283024722613458168102739506214593217054688180703647973961262272687966039040156646302506498164101743124286215574694373484901868574128581133520073289615638982548143560849284816188564536899344158400569215605058849833645827336346453710814000044044967642170317500670746485131537513973575458717564566952908857169440003132181490166787157474374866896077415206884379783991189369154538444371273856911782960973436788210781514302612155711608098698249777081336660543714234632336410359108078338384222524954727739351559092576752505401636519591771758811016681763663175638597727217030393483852014866641128079624418869084337629778242245652313672883012265678673984500514272097881992512213316412510885005600251550401946487043723788138286768055455147810830788189240655308410709541797683930325723839186856588041864404373929616141269376459861514636850986006199060419334562252042256377334653860323021573896874359374572391958721740510345723389067661684844390947710957767198984133780031001615921976024678592391480987086394991513103439439489321308208893458166899300671434760615338696382334978464016959562824814394839102882617250509255827334888891652013712881562072944125680703806018608130113476918469606695538005013507947036986662710329450855216595670257254330847264740836133643854519914642085392939190775121938960177286109429073751009575346465588280506403662568103013002452860540250469860421896726487333187715526315787638268665144493648457241655968454664634110644914267693771348576976254078152037261790623919818673055819989374878988336201440929720303431978789730598700808135529694007356410894186291299200885882997429360402572259186984595928403152957409621022083174040909418952845162128966386904143331088752546291358262535018741405892412452436800866214315047099370833777198547428190811461280459071638706704871728412760361375233507061031671310363267276022174314011029959586353489849322521899519045475654515677004080664564790981048341392510715969473370765695692030045899654302466021384819308441080223715349118980550254920005338064284747411306112643671099904814307728748604239455445420494008672858454811958020210911308422517102499943766706496249170047329618241093902270362400327308628551225699753549472163652748118520478912913133177995148748462839071901872945180098288705499077695869598411501802502924098105109039712857381533068359520716357259827234634125828533923770786421418636439093219156172674107456466700758872583627743882338838061609471275765148427546849560838139102080416595497394850774685539561544350544149826689927401634534927388198004487281441217026081354355448561457090363631853420319250594371153383270413043959142563339314365782350054340169238676492819096369316672108811331151906348146418840315898928676740550219281775413412419307128983621093208025560527524010264622920818450413814817015787639605822909612613559080701137408528194349735378485931932700531029553895017347191804446187379311017043477659467334644794338864779828566620297030649847239449371726317799072686952388272499350564033318902731505496455619902025325594358269315509931116175479360107356211056233009088429519527188912101229052321079610653455553910370455100890428268249599384546018501475079243893495966115473443831409323154489522883207364246573547185789272067719286304127361941376180523330005209054083385680513751464708721065620603156256632432999604456175319430058742261322914280611385521911641402940916301164301405820894906940266623289408474268771889724154506278336866740571322464394217645417990830570181219865875251004949020750852424511939527825995997107220303774456847262241771749485666702328526970831831428209339584396370558400725373649805600236085309308763329353969739403614120231390526294677249898377433785353113295964419863740950179265992880290786399922627839782174335898009581538673020769733356693482282640251335755189949775153473966497264772234786897074953239921523497628922663978026673875652100445864147908218779250383858820891017632227761004915884700879437514193059419811336278466981589438654215379648305421126999512270284881437661831911896103354326167761611575294289608088778761664044809365320674910171599627436303369263965273236568345180776745543289840627769784244445921127309068613938153623931217955440197382831834866198703938775545533138792062839955691947169563124685864762689943674510461971073526176125121567820632592867904850969205608542440551288904064269090683795740546345452977675166608753353098911220147963769755990231610115315046496847656830297624003112769612960972561926640520186315476473975901012370260395785666738345101123372292999397806539941655925187387204034121245071096235756359556655584436492153706752246506512663047095278615620780965212786924373223196480072447366812981379532121720965937834633908074967553938887947860140286274997265876015712815871683041177008877730240395941695212503747502211671529506192735936273470336310642554040660550754122365249228571051142352177920866787864431780347851350335286011785186368874264941426742951503547165672799211598282106476594294710796147441437873854067917937895537139797222772805073586129953452347449003528153041367622511119289266114343170199956841562227502814942985123174617171970221803828560260342692046586146049901335161143906158100734887517682402718614217120987385020155670946581408288648587767184749725492110219032990446483326121244958301413237823470682109908750580601011779278146525667001908922329775727268963365871160011842926144399595253823132182800820681398550759894300190543995592563353040099582591833043914761916696437281479173546835491428127344547550382126829578089169362098468423170928447036578228925076699358729498190095745692585067373061915857125626531640072211639189321804397652353832116567261830296181949019753046814618045617610557833480707944849399782237497828091063127216824170271368738610291617297923662618505301512243258661409198692226717275475117173481372930891275646017708141314501337837202014984715673249230078263844807831437903142615098623648159575640717863843794239188839838446626369012544232335994091290508049551356556363047623839720683964048434082731120361365512198164114248457685203933298354614474502328410040687758725272527221993062694500151345649476664115874310293968549830222765310463461362645268234228456945718690917668553887743102776389142506005928139165758858533929324609012699221790749989991810811700281877773247630684589669874135393508958115458603589438098386468557774724556289607001814543632723781177499374146670240999100864769416472195406912784391432860939105169598010494022176014549098795511608363946927609300839259238598552647807510313301674575960761669770168096306988511689075745011634461844850553974473865995395288673482621274822934917484826256672356118593767931676492559701168966656557752445082273852520541740387635488345954492567158040647229925154444714861824605282515689631263236039481554464719160025642221487593912238019319013867589222892707511557391656906247272198692981116878180379664844918500865610872922664473990580922153589510320981413509220110052350417343233931758461008171933687005638784249956784197181262292389284825611694614622698689430872127024522781331788896182704545176335439406773975976228417932604642215801607371106972934710665047257950052004945634788077281174609699590265348338398418757065801303783480852386203128438236244002318789748519495079878994951529171218660797684707629485291997315319002852968818975591941756569829881687873884559977285296211377547651270390135563880337817337687266858844790876065203618338410177047664947003125668760111098107937872202788657231101182980149953553954471294898196708697982326121109707629636822353023436890786661117516592503611002140181252186767959246164856922649720431827460526158170718819886123433904514725920921332325801683339014260234554430896293774071742249758304364055538995180647817746574911936363368488462340066407966267773911496210477121735601959691335071623641335369886999829499565384333377104110263274066857671333061734276637846263182621378320337682661540869768978571862139142961187610448672737042825815776594184306037026299454902136669472436087670605246640919120980928489907501781048055506297755170146732833987247195401607393273274248180603202109675476349368070356826870458747996035280200189114847679869936209999755835445796690030356579286757447707590572769863510236150285226087440220023667913347060648135544735194224910296447139480833482068061742375658234158017439709595028754083927797349270946372374765100352096458473881909905664581025036342578976349038328261814400299737898390212937792981305889668320252779696477729633914844295539636737585584355192651126378875233870808827564637387716821844069472701697463109613295854061991361360348402060378440934442510657943555561239722117637348909723081964455700163250771759637275087211756850789073116469762630738029304532939623951469724993144722996806032203530807295702987139410794772873053663545462122240068097787506515779598779222684821431618934954600413560265470504521370272799186734782648638654999148499166912690423158501305676539168433274222348773091930340476493905478173109841166687033303908287913981368869914728236284517596548180057479689123130630865776900664194069843676951118900732899456235079287112679000650402793867424720103546893300078231745598590785790977489763852321454277230171039163345751996437805812877694712855810069406700501243437105069692081876463143222926216830617293536949789680105474600592217275346715640722708283253771128739653334248490307050566554971982993956009038028960592962670933587182485926979552394029660468565250192659928123022855235043821886862699168704084691951172542223708722493963987507338123865273747454813133311642285873804056869459917820877389257548051282361762685520108429809198378172629147081577395529205904989183527838241804818043548766448818618863252814087437880893536695025506541447965101562962687340544874426738665555903733396054078973517979085744606236551982684409104496080399906908541393354019705328540512912620168674863576072046139511977923602549730599883879633573039376872944735684351455191816544071313488415239207273257388027426547530515607442944537275712510763349645734096458313252757706932793272288948573798258349988665878415277465236261995031200140082466077780084076429806269644574173282987937898699903040854596892773618756811222457651066165829664386474951999736364804392951656916913627466489550475247443216506313420899981520843391845615108860679893659777423507443977414767318443486734479141443858828761988045955935468847428720564543280291295046245862818531159592075882534475460658367991825782981159602510093711916809858903053469668296587928826981682605625221240344546322561425196656667666722438723284857187855474702854858768339261910127343717575800203742916927992555341358269625765350775640510290148757787728686433970663663013129199171291775669380950015902608224297048998033382213493409379407900838826267232992205519491810103279690397444232237059806171923225817856631619608218466925624926906305435639228178861338197402663254962241361534218775289612029133285876817269298263619177568863619020771717974525195824942147386295700515308193870130282961482247068814250829166285115346874178353921684144805580636204717544808877696978153175437986215995225942615935112754749270010723468481856289767600890339427841751942591452992757068123394094950513816899818933956379152664504124924778981309545379571121814054152028679453965482614389286463046869214328939810481749665854090340449491438046757598177385648848899482497884087462065328978556622825721010390090049907229980276549006422280856730316829276556843019490412485318792359830565242138723656087227959582909367903462266930633020783609272901193628359565197530122259869128283622793539522677030040209620003568080624276789196163350071888050848152595979147123248556174433825576566708691489589770867876138880421930962981796493399596831519225890080890871022967886447578844608859277897555529923717597691393162939458786233183500812948550842567278323304120709200379278363390060267994098986988168220416308594463032544206425909045590746554839535768299244298819984069535627322007932197476841606270217640341728456733289640083683951828307864762975314708247626534595243876230172108153547806016298839598209140922608958977537205426589000783902287848799467239724552183144248201173284966711712602966378089260186755895037247111523424262979902513864432252918197894210195027872564496070996147815768057410573532715121858038032375702385048804625342272296700005925669991588277696804776758959083191223298919557388480423017615225767730109628135638203319448357640294240462704148720908498380022384781342763772162295902274817635309626518859460564935317774829761965865220726760190861328560361134075014132608775816054280404622004462831683927583866380207152190001669374299870388788485040730515409688811882498358618434760261716389730882972234488861895517031834025824220729817948750916922991787607663715317600167479345327066645838471250949134419787460616300996320888584432464051144618856453963120515876011061552530415425995807864508174099317431684665340908339456838420338318763490457568818425803164029486937197076160814865819113161096630637556035609002303534616562757513213909954399941898006275266970303495171203516347049727125538502634547823074876288584235708311935577650323001124899820241016660567394594989165022455212670503279702410115019138797354304894646323042226722159351667362863425670423317811823718829859107968389293795699377779199683974365114318315793547373145989961113002054444211150597607064009455148542030457933778890448539634767732810823006314362038916192055641482582791681022333998699715912694698234756847493391899266842430865711484413518346179485989731856473778828161442467553880914958846241777201918689500285114311392537727194147278481739340297766711620969676748267747776027990477683589564280759437014539589961523203564013839716517571869727537820275212434562883808464743000430770113805503675297824525558177013456442790088041828222850269334360332317923030365581572088663779191170609923883428677202216401747135059956012490169782367352947571303861895648711520750620413013480751021744259471819970238771406906778094305666050264056730359902848414600871487348286557643433770197976104714398606791610774683701043114771543934427620222251496436780185728965105851276345537407428086186238635854277631133280416062547104222810083488669176349609058016226442683200979555655094522226515921428956657126619323405039046974502964505023854148187847517108434063079105661639648727852738451664508656147526072233226460590169216762487443448627224916002451189708415398179083358629345107913161951276349357326230395939847381854818543618736200756036369193826001623564240321737325818575404342951616711991434287158911479123249462792650327581834380002105917258452132671155458078350886369583308914263237634140661714199368658630361042744832020072695016246030140294309795397196450620154253767247401477435427964375059067248752928271231481655334822115074378915195029933657031104709526492138268066828020394794253456496281469445563910445038167418102013439094233814939224487256674242358304283313167399074123926517823128418316887597230771643022413741341668446461828621232429108416750934426133405626977605774544953390926304734636326034038337695272789658324583679657604082157230535933306013174123191583437208645715837644058913301729934472051529944177648737810334594810826537934559287344601234572938348551765887277902556478339403308212230082320953629718829317347436709819297093421626688821839461691064498369261302424073888440028911128545510608386916083515846506815787084533668004645736121459504751218125884752543394781465856824819518905324648527378205578203634413699951559982366024024608951889245710716399588288246982790016581287448280127815729052283887899882595517128782086779473716638647918157863248090967239855158398620478195730266052444328771335442676420768007371015170812237944290460412892712536347606547433929909463767187234980972229966870439917409913874996580041826460535636759349062841258925566594199082892614682723111668330055609910028959768085013975018030365007413396355470978019484306536265643314743986646639683677054579268984466316440242610880549175539498961617061382844015891394909168042185111546457756155634328278581040533203560161659538722653834028295865661330414942804351480115044709845603676872386063518534341107225241824633139282949870113413402938698471135572866128770151861567149057354555608140891251839140959271876921533280250965832505584074520535321724496503288883121823285423313894336427071457039242842006250856563521404940655117518447317367636109582074682940034573714057376502529289699358754660053081595017530023568972303522502421849582369720709715210950208480954493692598162196467886695856051303508671507366343709168917336845506706645163374748366000238556862790436728063923027339806984982068637332676089251829947081835440064538914451653506975237094474262404324818247726438130833802641960917561581786057617565387061590704765726438642177338722242722710171296039980218040745763524029688679576427539326306260841112288729294768934430020645279437138665873826881229056001960379445358276499570224596684377818561943357339904338940324683720236218223577544060623577190490941030796247361407851250887309448085204709571108453840700103952511449550907335024147607087065838394850862559100366173023183639050108630231485124110029583915653364933575966872586621625390273197835862186637470952526021269562399949806582411664185797584718394375022981694845743147686283791235952710246977496403134410919200447543930313650991416170470877835288009926592875010614172067566435921545226095278222585511184710939247559964154070784383503244022980313050554962316156570951997311548828620623511664519419175781127557151226704557862585324013615934693138764489032666635121841568337506353576227871453372107806124664073889282072270422498856130542563660521743568250487729930045992509361616301821302096201787863172401618976571732373846636869958225034977106237356006700264250224183676927866337860340819100285669356267855085970800446078574343731371830505458204695645318544911915704267136552071772910495578930990842632578800818820326783230930332967255468440744266701148873087658770870917798933507408575286103089025524542241843111870553495800363508914042284746612546736851278274116638544425532665554468100690491803703909363320134258245950162147867819156031689593560500515722952806706601825786645589823947318020414128794984814859689777337905641224150490202492379685700052202978229645263902371966023177244027145478169917748953874616392262850058120308911875168056893185827099161543528641644186762134412989602320012011320391589362846387682084255040409896836494989804266840363754197521810950971499878273052059893103517578821673181408429539901001925935130231319031083396418769712415445401132980204372989974887771675159257383363385687513540273067052860847727106842203214557437956411672183170532622782722632422332761572153504055072307092782839309718621101264751525124930073571313085419914122825567511820018946580508561445696877848896155045045982700474010495183038307765948727777206598369507259585054501087962321806645583609445227207749654817909687752359736164590759104769355628924581957268659925544548532008259808722170156425899567872623273133340220991241921666833380127093350195358958663598979546461378374031772719289066611027483978364719199973955042011524286286037339832565677269193539374620721705265955041719221212701234065317562341144556498055161617400625507461636115495215895266640313414722991675130982419185032647317791003825631650808054860583577622869215063208515688798250990513262062416964269961962388772104191429012503714671811021593803533750960516544194869939209537803646707734800916992464719198320840432747557557024963730627469053520133910632365421127704528391314863082588715305318397313577427812501364086146109210662110764832995203800313610138399863133698699652765542124168776949557486428828322495488588463854746275051879592642968770720084007087755115377298041213838409540821343319096350236796644557511237506180539932765145461096070633333096813702303308514335071366216437325701035006470590117842204695598116242885548800263172150444548265111406748863027916682323182569847950425070274294134943477873207940437872117863067171674765932516091639748814994577366778277469523280342150189337551200065047432894354104062669484801614280916059083708450275851927829212508369152398092063898606882816313972993890276174320440411750514370067069686971128814411701248701892357746238634874857423443013475655804586585982060019626626154512641498186542211609852997172031730691081466374898567449159307221233334714021473316031294079613177304743820501603507496523233780342009930035557793925405862368133570836663615122628513104924195506954646186319043146528401926787417173011040833633771428820020459332605142272509357234209517484859991612484759877505274472338098587876466193727563089250662212988015013288026454194117735677517106019945775899821038844129108865279683152892394065176915034468624649244519230841819843761855046482702719414878077939694521356070349862337353239750595696109538286161628073951366817658770405261034922598277332787866983183875979797292126877921434131612910166919059875853535294723332079144276772400900223632592710107134354720768860232307498855868821501469868935435738144511190003031553716178888020294534272603951015949074810474797363392158252054580633511227480951988600992929470253966316220624012042194166460513088547020886352991422420860206057183823505048681960592899655644780714294978896853407166530463346369480810459911993891405406338271280611992490596209761344427561658670400220656056394122122613195644591367148875796183453717675146323729794416770313551727157036226935935254948053928445012321167869945631074724645258652321873364252647299938582425614336478692648989388555696241226148778496937131285165670479484325299285907110902945634499298024042430650824947300173347695063270769934027938995922241289750437348515316146868635237684987333066947104000000360233945003136320386233213879122516310159224469522806474322000678944999100607316401648563037203639042823674320763447050705329661650271572341653946009134147691827700436376976110162201872470344372995652803447587857974992934249428922183646077657414787613080678794057002500999496681892495915444841018981079943977833245473289444041087369392682500568306428268634503232202976608424723712006404576197729131207908955198074532018990951822205759358977217336803589377777609059591707478320975367020900845328275189063971836332200627933433487564871487812789280085072871370107389709831615681672185189832783187112480920123156893343891095918242664388111422334927904164941271950937710855219329552720973753499979967348104779704813799097402222012725097387196128739972735718941971770822271809879970300921134893682340002687126548309620648894154280856690215298747476543905081609991559973838333664067050471669188340640283856948277568605421428167194611707285702396699616030490528789608019229814410624483042249495259855516474586742920532054330868496728459049930874340534978168951949328851317023356995524469166630437059781279057374506832546987865468493739460016727637021405564761486241830609972752833720935092872139202708090706974212539640851999556970884510088649700994255807785497501600813824755408094415669070908017793911704397285599785452513801500044601094302209840579601323228239029699991452727163834869805622965661061534607702449685006223914614193724231055710386675306825711358748498083812338577705058809905131949116137349039659447015074851169959662199097901945005575719983505837027187027274371721969080987340842464585803975194071518349759499333966718160002521472123323949020740766227078698249630368625983592298928256829734559901399544270627325823277569113467334868906261030658663121195916305426866461943141683295349612377001760645760317587946726843425935610833901080180003249826938601189269526738668936616419160412030699877451949660222225874696473102253343634001751318294341840250691615181006122900360366076145712506755651681371581490623962317576813478711461520633979933876958319313491354574952950564974046950758372067301531596234526144356583494328143569370860828513529450639535285889573163974953673892787683995320002065701962628185459957326656185481827483700211805269350118837404312231332456666271916695871181595091485926352650452110725940880016182087724085407923772004695743029574360397730629194039879325217941559779556299927714885041775554463558574893578925285054002299948731966525552710260617099174829268641753228146675581255409109866219586278528443096433797941135726567391848487474289451444821581632877071443055941080708815295310194214058266206050502589670833505114836111062321840387372281392371166145226932094894249219164846009691192559462992720033756589533369421436563381524194576062550456243698076303297323321597235228805833338117110319787647580596262035235970779000694563340246498266154146011989370372643920018337484034899594529126785646891765896273217802002091187002275815307322166098884014767664035213200085689623642521790250347677660031435316524595204085145537541485858748575593991290962118410289806782761882453849582370190316296963702683722943830467903497118801140098585536246660082495558484914035699677683245017363029358448689232694564615210683829935321108155275800409965937031425754917860887866214348422619470364879601104711193559154913500104528260538389159399158990274811121132517912900587463877604178757518408336732081030776382721871628279868774824288688962424661538667952616622622442841732165852357601720446072947234205137442636063430885720858581212323132373766407045180018092441884075784274177285008527841468701093167759236897558564983013968094133011569491590515654757714985205137894544444194013598094173475961698378804456555182450417454716068748333485533675576157472544126654341235174315247298817202341805731431539126493220008374051239366842604391859390794361960020132746772850402982589492394307154706515696218028549205043938309826142577333829207504718932645241907994684597018185353711874903130129765405729818799956318540775432968478593081529658029575887294989280821104915963748058907246222714804762702312788529519910017719998320702796854250696201370880051254005217588776487191358643280231100618153680034501481996815745385883522566816706368204963699496903663500524858205465952209458615494642356414861346564281492763222791014489257960924725635502328721438138635772557177089631070999303533488431609471423637574170908990778805702879410771077980657908642830319689494316060544571897834413280801076659075536824285063683756349091953478419758333089277148470115649822767286482788515368051649921357163372315277970688920664798366974357741526463460129983281914594981793642881477210494499073217526800744520372966201989579301048542062147025989639016064087579753764477371069434186146937626276935217239284345276027855489598798157861643406432797692702254809260262064133061028434134681431966788362364842035594053685355229463458831695169681358648209893102166149181281123085965415041953822614760156688188288380786930311098120532273615837984840817359953861485917822920476759915662350488879908059647952555645836563012170799502588970774467323860953924617544161714668737762617222223025406603545531499878614640422283828218245828425436356194064033514343772260235162054159231752680923686162108352270227161976468445081266677203250384362790101996878732377682492368694937897886007171691793269517433851602012591552410757699775436907328711179726179166796471718855914723473196672243132387774516340586704237242905957416629593433476180080146157192331717687352339461959026036603288141677777951807055842407329733975361154825648786278750474903702749315468111744573819399096677763125183280425726476132487867635414509392408883897495241608154805996996092718278731914817214526240622121754729687182770090246978119496990747962320553166034890814748111866402218322425652904218389698099492531414196741974230043975250389548435743477852252409493966418066177024638753932811520638959458624632779861403327115852505453999701169365697370409293058240538369360039366935948640008854142643983894429085766537363066336214757956553875807336903189350072562173014210740592483139471677345101647970069196366652907037642160712444278670421152636555955824031039252817070076511184175666370104102590942311417560662430402179460849298896508731249100884460764554505395387842962295406696023183311329348885944335533139915821049162691941504753335741777130979484991502701211238968431467196978173930605391449006877860872159580973293457078720118064464614484545190929029248992888733496622772969136588910646376732969906646600127762649419831398542105884076142465091710455262660536863490230104486713707645175487647575417913026246148393332412075521189869951803833716601492956230751594972634330164112309806380597092090475582682810308207193521154407794345203504233690656816786709871008525407210170033642448993737621175278608687393689471418540689559280615853924495254415350879330742530456002491835671970886736479944800093540812744158813917600741418226252093466730817555855605027540476614152530929187883763624555859110161458442732614020173816059504099585697649022625225007554100814363437935218955493407337762644691335176075476095330224324050865201636617608268419074228078809249020332193871636711547953070729114659927185793974928539346357266606905488346219504349048782915193419521957504776797438870042989665239457228334724386934730012685041471563418412146619739989013595391849884571546335613794830306296344823443713383156052090887348946065981450825862133051492070418400378843703655314429619081984881672824956635861818129319995118358015291391486478426726697524164029186519208865026650877497042596406580705737391919440139570509594533087117581826511335630308610340403636733943849616800446239652368325486197396672472964328416950237806390442335551271488219838626194345943606245467528954120736027346779074040008474144659719139585887923092711782063124376271276744910210300115367115651484435832138435323392221919991299989995909821499336396010337753170248678303718840650297967519754178994494475885801690364410039233100555267915228900693908533422429911278164559728134688891102842224040163705236606433662862153385063195320885278970570275885671024731453952588486980957340402229945149916857173481171089362645868257525398354320022976857090360379392014552595503564831678899463225820720131283946289739471715247263273001561933429307424479708766200059745489090376616376329777867693570582108634016251102853107223921374078947822645007522015322800566670269792117329369939818642862462246596697305766806277866746214098495838129723929239245593813330709288724030853751462910936439871397453959436879403330787271201678907862560230013309982698063479107812375558741894597984647828320172815439175079702165072248981381893918757857869159700172012052912709523179783184459367611282429895890067420847456332128650945012582517980176959273374389706710749608339801897229955637986799257630293947827862078878541815257462670736027414276754469273806761103018339051863047282196070763862440674183552893090557154879274212492041726728821523321315552343751680911844946965076501822889242733694057713440237629950039940851362527031634877513356676855316275941374929956609743183414815881569197141283601883581657638625098653244049234568836793450481352351778583996761969449712749011513424585817970907822624337786392181001751977540705895093696027806718564883319615237132342713855524860264831252442163431273576098319594877596693537544722529098577785671146311510337470796477688177339228623034253952816751845861390290885837142161039286570073389288200259489475776987933228100045196958118501685225027687929607672408652297422184046869396148872157987074293903525397358289341958304739362289114506746094846598642491965846614336185040582629552297504426314696842766692130273484727943022957415241467350806704769329507154693772279753636242069679031794864379631397045961202903913135231597878374374364374893590688643758184642078278260253397499340292228663694430266073626788509062302007030605593138358615751401499386987581851142457488382890902715943951345629154030567747591446347959644394324944287039084800926540477208710665417270486483354603136260306733097745410195479889963113767040290400136250944895147247450333187393829105684471407905438183042496715067358840682335460694767576921115339188910844377752157798300448792662553412238453982036085965593558122856516700668700348387106318276465216428558980323860226925022336857751583235754519035745174114429698641850644665744483753725059503455913961951596411337943796775809641224165547313728643676387822495631211382736180343932191473416118827550799744101030579955158831966775125197834414920748975806116310683945586149060014314996556832025198806285158440122414327702716288416088683180939747424211944440701277507575258732415687691438293696258341758575237532029370860548486312470421601555621289642176036372056414167916948174806351718972736344715842415630424190180250297621073251525293897481385014165866433418242292849322922564210671701416482838244396404692394649473665312918054078218277128906046334241414293865416264392260591987167135011631315343599983257121337977581872524354214582678614450055683789184193145726959640702701856508401778101631242119166238343194471207587862218999551441365277327971136854495806210459920254599747496029059104505360316300683234717133363867148407759296877791552895325756193525312888513173502235092606994097119786955292626911349088045686386420142748520054244536636258692845166132896478392605437359234717823899674326036428975507632394864316574530298251162320538383970959518530743982998741469611123383892976979691676287710623986318887446978751050604224022051160847518258652274365288617560309417457158851370256644887402268319407504443972202536883941016530083236824801941126402123142542201103062887474485441543253375789509084684024836036031600377184457466995792850236787441770121546538491109068362197585284630694353303779811801650229236365056699232413213668048529687032128365297742971530500322678626262732340379937930447719236118276464491218529047708451192603021952359926225912278338245234158787449168777679887638978651332870327705195214185241350496262116291368371841851330042260934188386501796576813395453660324859456323940066965210706036930390797019234829816346653204824228070937569921296639600879990536405304492068868769870843627728330505253701374666172217785820061196032393624705146500885417114150521627196010322230849158351902579501121164878173035472729458908560080110157630840990184075095667062118579373878969165667995608679570825828841623581959084576784327200943350976705210607816497064083668602805315431997515760817294283182453878900152461659634838779302965351397569950006001927230911928963245608037211847873193437682395296396001478758003269380512313317467304149801841902285670966120384566512155587459173042299681772295785311715865354747190156820898745040377442205421722084427002957777594427334928453580713100839958598789087768032400160864340550629865300520310769435488519490071942211994441172877766605665874497474265488633054440059005370071863092839533540781080554315168205541650179316495094548878008769776582441642653098980591188112924978326353874662006758762982389159171981120096449706473792780522053540205657542007411072858961629202817084843070115709442532571447254252654120088883815815071262585861200472543920660841183313971233848103466233790594010801034833025742483279655092787296003193190936604080993201765659608828082244862472538423320320574311548726846068189713466361584173291612501659304117130744742757410861005869770839935325547862201154731001182744259683521826007789270373422067887620180748163830054377119136243599679915581957526032125911674598438559943474466275276912361241819976382888216614582556755869725848725098959766023651434270175995301647831146300127635962423187368166362168115227836795420365234937700528127824945734873368633711594033429286083020981254085377327507942841553839868646994740096881941314057710510472800773420999030476346835679281709548635220045298775006787610415768714157589887102485952000571007577326460700481391564013560426058831234262372693206263922120335730199583111482558203574634873368481503710085556508057742928059929491513736621835878650584435445851349150448868359472185261476054380231380173105300787363847607733463345915650101144288542194437009800525082444959200312201409647386472277755357087416806765623415442029248931477214855734317414701827788605474616213547289138701402419720930226343131965770381339515936564791933661581877339521734222521687994862108453610318531384761170940834138145224955958243506743804665434400479147019506342706133862265487260983139605993295500185965663339183683315234244107184757665736029218130884747567717241715454176089356940455066566157590992223413007985757045782606269539302015506676266838589792858353378619806164798785122944697735033894696693591274250676647424626857018919750772489359763297944350740652210483768140092079330828348930231445024360595622910689345595416475945691845454790443480813248083004393737778957514105505766698406663926988750583759110482852675239384587809211074582235520881924687294772958269941237083875360664574286796238731736193760910552550659158375733175974413224209906531782426449894071850731388457531185869101965151488371232325102345285199158476260657090906650541793396881988453351992913624959594749759708305223166017049126285755373108360974765524099997161161277052941070679887961189016633712079004270902958982459230886615966771556425549984969590461325148440640751679517618250824815595107997524693053809191873317443647359080113791464940758030338846026183225685268260437261781525896775290337365351205422324366765665176399670665534069740091138361024446570883506946712260573012020790488178766744693439035993787321145774662987923650024010067458553534722965318810746494888688543440769408914933480182292671470116077043992681026404037435816908293209634328142274542895992777016777611280164282188759361379581437091695538549502169479379663001319966853496004582567183590406866636742384654375037533886127117128023763403674875854702754511362907976655664057496396302155048180592637850743348571305193551681561914719738200067489253172961075664768925448297536306322734180573153404158297620273643540289098443930319011038044796236823196817455909829157714435127804597149336875656637729837421493442583829836434050556790215941695199435230215224828416495906054427476037241449972331738802606926931717397409731128427522547778599707722477588045250258349368571222188035957858104866796544113634425014207373685558037466987965673842192604295073139120230154369018353883842941847497744272336817519836194934997581573367042804063427333720444824265362039863419814839301910482258208299226567863618783781913983863135011922735822210495207462105270507873726251900998592363222342853718492423608989618594479003084413463498212756967780874889556681760622032830343115582696929097865601906786951849049444532176202901351695383985600156860129028178812293526400197061643132137123355146330923340567947471736343180816202299687903879440112287477668415079286103991149181477730725412493325151374339175569650364080276691193180170930520741039708358166570253976998164783758494630163035677966521098629999594408328901114646016853753501522823356189300539616316435173744154971248600437813835201540919132229607741348822771933747899445689175852882167691169636066837350858287845981440919066143033552720165765686078765660703693671426448273427777668697083552477762565205447136771922599770761888143437923690426942575796952720616062384511684838174541458126149425605261127929576227191896975992576104071830087159584298682306203592671929055231377786171717475372913833353202681435290627680614598861057788651978288242349638952210068748680856474675546376900430050467585705658046179596901399677415644662500802986497389975262961934607750730825706625716774058802566834968021778503027328123287118116022365104331597754554173092052649288207323119837146508421325774860334306698133997090924023684179860723127122856193352253275610352248854167361446709843137987487659640692316267888735823881973236936193908660425316827464624170518821290580487964525151684370924625561817936023279247828597591439844955296193845192699732582914337521443550076469551257752502382503108105103429526140022918085267869083699413021151398085026781680003156525696308106892623918189948269007379772142930194273285841185717819381264814376627219618273235618363995169873408251412482578611673425328699792753685973219738811630093712157293683978144497117193248547662428957537332707479586093248491061358834356794065886367546102965086319424991980383913806953117479625593288648830946513120675883390098658657927570687519719538108213454483400417459715666263857299022881230149952534613128008581723726530532267408684054398899651387937114431493323958273484600049460547479990392323241806960845116268652335752488020097074622049885684197743073379864519355864262676046770122630938120592241530772560459468204512445999659518953576462774745916713787835304995067932072791219898989693072077792881943012206837278832508484937781982697955589823734658667084908124847247990194512922486720254088394088802888829741146715496860341899950549104594554629308783098237491262773660344321811505359212575900264181382572189349460802476153965404598012281436620346005326046536837425235956299847659273511600400300929809072709624108240793599403887504153894399729442927472482771186212882767686486365735998189927540610519166640869883940372684792787705388356311447682892087871824074748768053823562907428696429832875158302872979408316901163059375832048675422321975128643228229798671215204877309339014355508441037109402296027592183025842170752604883341017211437074760473035643144768969879463484751960855018606372895441619007993414408547163218133895695220493412477241573601855505600004370248635748776570751826558722053166810875327575590377453928070710862556054254027739002602266336585927544127321864859234456226639241672861635811267115156586779870499535145651105518197908068533400199361179460110425888620686055341715364216622612935188104448839385871682460917580210101040992634316522862993907585908460412212201323791428870538237567753866285224139793081370192811006901064554591154892384530932161648254961390418949486079020619911346036662456835634902239376863249454480480844467488504007870494971475737263166534721503142138909412829858598254928707455997300757998056646288356027167334368914818048918713808583813673089758283884770608874789000515781875546449922353479431038457698476611641013480461055118827567189230865836593088351512078624510552682646906802328870692846832155380785898246977614555496780955771572849488296757812698455609457361133477327337949857156348487938642450581951007509767251037926612893985796728555106224178821171110626929080338026862858103559687907606089579323794360238573281000238912412090022159382599954802448101647430832229212909566461334755051474770258470991133616640882614765981286332438436833193821523167016496282126827219032998134406974384667511790971179992387196324133512150919409389457566142878522922747582842565170979551573770923607362402217092057285398574543251430747885822103461286078522955790774023241851960148206296078930206572279687519910788507978866593256733473196480456799106973333486540636884691532873396887154697160420626867371913280798673215826337567446971824671918257292947619735427850832769625470429219976044558863324484794473504493420187972187575964451727275779395223372919470224848661283787554759822460321791734620210037098616366682929876401470897666025012731052390918828536312024461713352466528058743898027732257190165045749921050446571435901832261498571380804666423642238966163353562473830820865237005999300471370371978917716885244462746664514482525994785738719525921720052340896531744848262334319482258654925810341551095183787754809605083194067952187736124828852844101499310097812643932271352736620783403043810582676240858846703184208399369689141185075460946332299621755334094020155229951805282136186551470401976938657873941200362170729366511650753634533184596885158909299933627788385610323015443784003857389945598861587425487041608277043514245693549720484953456058392575047212384852864533988291591809286740649330448534197286205534205793957814234087445337177884087420627617029920171964877340889787275753429594910006091460135710922820171066826024016997278450450982106439321218386465437535242227961440913358018239049297029658549074797475481502304298124286851313607784365495522316038337152727176343512013178202945689155310387940036835188011141875149095215220357586233912164904776517547101389105660431000309196318127221380774690286717530298076764212051985113282575144868731359737086620137911853490940236872604556987353341654675821876085851469938573993467241508837972929519982877569123138340568970644212588031792179360170912182125094526942283970502186746294330521865537246695628883417362667771356346644774634187022732158072040205066450225741425406139766169080126265787340027488661893584076911540977968794489416974270202714926661670196085221885510960309564419368112359045653687612012973033166645034176123131651745856256795230757644502686133621063897315803473736652454972880526799708204656939740462515661449603406498397121909571863546894742103428240429729240249696883471196784511398438319083749112842120281435870182853789592181435319395322084161409478787194590993833914067401111986462101260296035046231526242664339129878137266843574332306473236787221812924751295246360201773692934149186477352806424412696169396372809197154958389138995928727553107415355420703243686551826526721645034023368975519399106608824252400904662415518849685795257167140717357212008552705003776652384338139055115027018511999546269057568054412688318813634926225710900940144265487863791762280682036835226370765894674275252379387494725616336608489899008736586349975972283838839734327780841027401088332662832844281082237372667531118427547709698325142728647322467481597067670986369589031930369020335583654052722635284356184494247333962528408025115620127787495603767479874115827933225825154964791277970845908410096350686147688936658437701618017979647739940103356515926566253175430762724331552691091076240270154086963321161941402905186172569360356959392797299849495446939806803176985977662834330291236927523688515177718352402113318889809283308969777726173436066290656836638052192998856371664392786833885623924846721044900738388799343084685635081194846568620527603775856893537577405043349528594790826241706211533202364230581573966266417670662839077779624298799950951750786632920057641639628066013427794800524826601963527584995427689946284823145249734646104509620093883459925187044193626274835733680029404230167856388148413513119899916270065621076255494228518332061249636668755625090664703199228789098353325143763527599055326271045522440995743655154958530257641536051511191519707890474709607684668351700882559506854131450631508166711026220458799329721040900404697310712672377126231302211648619099869519889661821375351507989189609068450245806683545848065101126276541296255297021013392835035515998892519244713283571831102265555959895454121302518230909230667107969675207551836210542728651948987570102130925681311681345541919794924443792605061930451275456300946979737037186331465593166261139457318415757392534426677741966921892674219570188693482816643365594874208387465903980380772755189027572637801882423977569972880046208261178283476259117970342275810129820771070774193693655042859505264847934910605443657069748081038575604809383468718597598295321152587250236777919887203662474965992147520939304658371435472476559657257983737537283484595207755645875979332530417892209943017863953339343268962467963302327638366685065615386369573273323893849821998704890312816414234960846011988906501725794303695802475769339742235383091921079081762413924261279154607519777938168333252124409586393177649972912373155913798784756399497063211522671534343121777723405756930330995378460532053264103887484669008759494935256781763946363788398272946252365552423731379265021160733880092042609108903941610200280427651957673743132269338951425023487089604134609792362608151818484961782530170528088103682716155118465247529936951319109349452788347836058363680394711973014963389206865789439146484960269035908858822503419037055046256719036711170115574256916116137391827565401650647606165373541483401007854368293864462336099188289610946479304519725842131611934563853093548618592988486541045635862888012766384818351337848868728789779833304468069922998899562422032895312002023873337517096362921463782632564055908122180073169266603003245888619738626387877925684362891156755359350407900164329100124108080642207931679249830019721589472024000140701829638116672459563805730537425381888625908999235730539379240061775748683237400114407841742455216525878479051406652842682622984463205370359023370306543890998040521328114403950867878646895188831289937601659149158560113654093320116386962141937606519017332978325834246784266945299432463494029099343833551448992274315456147509751930879675518018162141170224949303244141045451320493486098707215960128111784424708363318279384693955405252183164370846205565979369415925969744143084348658975694284507132889160286648973752714869410009889371545898490127315267520793596833743920835180071575965170327873624241042589904426967945601083735044425479149460290189081577813393827328733762475759519600210961759371461862546234571781156686958387349842702622536809015864555404768029528065590632009881710029297056207475381823328851157315703781601214328864804703096993498609314115155077654114525330481041063764073051491190727366612037445583983760471809614997035430451037099869093055971962560006570745436082347984254563137179542496806871484592416254544089721458360154389650507664949509168042355694312874027360150736472143342770349846699995707145976874602645165890775175026909489188744622460434362064622243689183230425051898682872537671760808567881380747998429728223319485987633537224692146799169257213540568065911558865789926312379683966515899772383564374534098022380630897561443175629296648272650142211165234293378425674930081715427781598869162391178553014882393287393434017827601335379590480763552399439535288131073875682144808903358440061067797356448282315996925519302912887673927346698422763839071194019335153180975827393418739445431214147234330131374023344201185234898404438101185915052732115681727861310082626449535868743400457808323200103981126979835207273545312978882030021295285509041756543031776069694768575273704391111665808968440942255225307149514519458082409513905777284099978274173857405025687577465974775875405432232916180825013736860576181151730727252354787764222680182409674787205312846695905955337382030082712151737212970028732513276783030905874503598703833937618267190305324259977434817642357404751973332620717754441584697685376532174178351185188503780036193963985250859740522301099196280749720477296852443857534735087426274715451663292480145695892508514987324976078080518426770231772644655598613037678053101326523204637115848294281652898897426970383009662591272159168288451510547438494972134563822279331904356196157962380182880742805902347879717951107127776959638377805434152679657686943184985901132715057507146769860378768982241170393952409421776968870884732496170375818368527192012600725711480235425007517499333895167382750527372829055646804510609413730054723873764308213395215059985947562295513573134432369307603286067585937320316111403776080576482375385203492545985008500836427075757725178199665029848281981506345593830695312232384909851479636029478683055386964194488864469528943372641812606386021359556627331016840357578797111669352965318007993804682363745416821314173291359479494724710861518937943476192619115929766378704934603846021174256215117116507219318656097367586983963682642408684882963859761331143624140478200588292368876162821462176385681915075725770448041463465588394143427272576596132240796655935178724901007498481897408925189654642441126313287564696731843085817526911440270869427587764449617230974359411895781691757821577778426865387299579882397674714045626716835664331073746497600327149099801125473338296693042448450487049456109025081480250055940968691169244785851524489854656469306032660037954552056650018985072510192336161771175106273262348203695819692841712295288665682874497454791745162575344101923062255886884541847575603916548360772242447806164168379692776523149020216854808391630884312571930253904767996283851681736236318104367460557430471085763294247668123475731337029202183957401840349321697722802577912224697603657061802625663047098369643257159716807695984730037190225034539220867158799159403744350967415725469446275816652798530311240388973417488478010561163517483394216438094809460104340337968909286575098139768391692880972337722382438380477663705376552946179818283824045102414711882511691571191631720381127116371680537227755932941643374192823243172258633180653223069178864675025284605132440204695156871793391924761634252784447289220230913352028757078936364861201543060914175758572006219942712396396633420609306477680164491938202695497735464538329858046910089921009489655424725031368678910071786203925295360834559806058039489506354899786754265153438675661940779571083949677340777162848867882105968185709004227925372908800277605772047229135036689228459643386395356280221853021505994084525237358471530122586614673842277937905980603848811993814868993293943339229856692993910802027018222024263891674188204965846742419147009046827367533425637243581320370912117997876762005548820570175806946397700877013699419119582326290378904360461541964155903852593743792380796052662534515460801511632745987998658933483034037714195805574376773114827244687930918937443581849651644860698892482506788689081226114332069841343986576790253689629716863993181442127852935334906380075506146340458610331832404806967687191825502978931112662525679215360325139692537954506006992481714271927821137818924119338800915701753228947683240026188830136390636850081629072431358398536486210603314637114446784324410651779068586555439369453621663791681942730248162652621023670677614877425108846628191931175809712285907281030666481114760903547456667483775159646330940367907517510727406004772873295974984875084755220883486907587618544828021378620644718414700236983669512166265356576464545749494657428912571536932109808692615163916897742363475571652304707158031734820617411799230997339779310301559144584678395991942937678280189656678835419724221470412551527122911367023972844326903931267250563349669393818410850799098565171997929524483301323467647539279218353431634804453312149065350250053760612373834670051122286644276792013622783609555416180068580731719981480098185825687976285439382674415812040975903833527746226729392620402566943165523797132576485519001477371076138089490760138631778728121807519421765808243609308857543751710724722639042228436209982319355060048199611678159130177582585667147582943766741915023414529885202411252191522734494031160820991335883720267399071888548959077165031981466261432066555491051426650914985770503375022055146366419366724781185540901373147142805762590966658511793132221467798046890616406711724284956626764707033235960892264665801428510149002136002855570928246544982952940796978122493717667227215895199070279665195501888212324046016422891520301056733750435724505780836465225981291246867206516832003181871858639114473228623508384255016498575544275291652631019333412523005437049208440063517996715261110717327121919501264080357626806913811427237653968056215708852122714329184183363856888323392615159067001181136233209691094470401577482466085790804064924921184239121149896069660943599267630965039382580495655455855173646926069123145483036071898143209528590466228064954978284387426332856901970553818016756439315489493324894522203382087393777302076539845752510621565014529476209265617483272727590127659118578783070903964073656892223734571844653928731906065428276500364799472327834059006818192860044085473000535323949161359372530846785785878988986316851753251229119443501570180974740955921458342545157479449606374213604625521977835539921276896029095736392688922919634571217945098276230345040955547105622039558903567720147476769885038829539320767504813645696121739539833298241054122551033406371168825153529989531057109698962955522498806220059180288187473311088737597678382022453734514317830248957113581890392370173260089396348305457509364869160070761540121475432221617914976912383266726584797368021186503961527505591809933330042624880028979977842308635149620905067523403859975391770390886468574841738001477906285258751276171117021608025293427100713519628482911651614105500202688827940554693312100011800947756928576892114257027163077960216055155566732220787348137617610412011818528909843807587741704823735276575847609310785277526367697386738750054813119969613201455822107611944510823308538437839320871013255045128030519231014753816156620372498586286248704985042362323149881384083128650884316303561006749604690518826138085268979992022549914406364482153345209063596485904473357156480472294073947452129001410500097733191978243510611701663108153447532752313886120609713028452131961815700068000057162796588362285714420901743719906456832261347161726988594920302863926639332920111031786392190662473061497612167919072495916039643038213203111902792888016652849974115350307316137484799419716550531828244912816474537811255778265392905525305636296042398471365043194683820373766903885771403551814331357196731213873866078181431597807156942215011324313338376069758564912139764108640967654937635119534594789187485676946423963169313631539324452643809416304986358586516968810232429752885258641068103057375593123935786531081847752060557818234371262185399644830116002780192270164124941765013517147409774082348713440212006657148635514762973872026347259929287076400392618445660257438728325058632015411654405874197512478838619461822933302324536802225229060657610104964564850920193930040532161739388087035150088373885901671834979175884156052486867637846125310585807667895078095440858451257357102948523938276503186938134245749802614291557740541980768393163135133183242652025185011080320690479723255480476447100884913259645199037156983887374927454425918924421722205530532440272906380136637418851176981245844956999995025371897391918212090578457757091407252373396500758990752956473573019258508725202109835111875174411390874611830301825479780184272441235996109000534771442243938457115727085445385660262298908320845554637929174425580878726716556718571461504775225242363819097688397529175623042665931983147628337458935677407922914873675555577968603609281145578563853135398233796020942495650942498995860545836177535870631777911406393760835757088323992590890758982169128611651932670707772092970027747958133157452054287245262475341156076038830900942691718445415710448631137910771420158992957074568740715575842391076148108027909223331743945153495520819696885224899635009920905060170896207813921065775137461635025198783056468826919136247129063096234249914207564069337866521778087164965666964221581976192404582348315154921810215015317318570360063240090878060488512597036790411847684760547615711166094194699976464926713767028640834831252726292550132318129127337408507779062587548993264501028077682859845801410805168699712717525102391276491532160781425131839153304363177034792512649140176676654710195777377183009625281564900912179576867555854191131962072752905200485487443444600403306554439551858304918115906026876848413761182280914114824669530924797805898785794002339695579278996837594717365349181258657338948360540277913500572062794073977008073830337518938983644868527448811428765142439218403067903532941978768808988312725615577485354455152873369431832302397628685965829416394917444537791314314495010737194928027986275737371962180266281044785434076164115548886644910949908922850342609309901688072103593952997609185394913218260118977227422648912484395738109040257833902761014825467453325545605434334073436105821002264614662814437536956830822549799125568353166971139187846699432907566623610847295554030012640692077067257356877879911898365054121924266323028255887926048659214419005562968488461861659230963130401858044363249044271184086417440150616705208561164214500251180754014895938571252342128374517123441175182624794765004784211341855350597185570522377938501597908356811888649117240836650963460163275116189863665860162387976572431088568869767307491337187978580510205802150458601457501152254361297531231884176909976260934910330275492721910138229848766238242171850343536994556123466117506909441968320785565319197471247725355440057160895511802318437184615881715065934463826570586049533530685929382607851366156771545334646210948760624484115736818936017070877288183797763768457017759949009511693939270732967655087443869361525965431625713398410733951925389674557262241089780339683003238018609952329405531216056177112440375902145243615915009383791276307949334700399841238158006146903159924090745313322783187853573182195206231752286550640667025557723668591326169293943156203745584547737038362585587580836963782193886830213668904931486910007392918015119571924765557576029477921936643459998308349490877539434846480457711007491405244297631832900196091544457226758970268573228220885429662569651978461628804371603154652391980860808466136497643013898509728549053867323008342009810274103006007785658457892649968348311570752627102683764344531305232624704654711307870668456315960320255741059788427501250405501561572980244208805557828661037381775220344031673030411379265843561354371206664588710559547926883595831138583031458227676635756046189953541926935523169059219090303088874077973293349759986024902996908510483868650518168792331849157790338763005821701982026838651774908390567377308158557562911118575298474731075952238989628489551714879278784589045471635167902776377694959869204859611805718490866758320464813444071880987173976988429950165288266112517886502098429224207615439468446236427966895159003579301999455702255318218818374260618837578331685838214055592611386111303133365852129174604757944735156585831142010002567542212871862060717329057263564735404215206161010204953699515552670543442962842320071260486030393196790501700246602657816828616342365692165432665428660807461184979030516928063436758232080095120280713278880439586832705061437064563114036994191667668766954373078998587142271399798573869372950716968050114268272224666447432054470321954273994345836769535694561635769144421784338564139033218660744045707027565677231960449678215060110758657966155828517984143937184823680354002381591713207567711830665923495614737575497929182269803648252127771847128457300589397073020373716413502852781645967257407442585042167587403590368826073490847484777549137870368390020198688890609213051126041133786777034056843686028856579140402831776334346653339498847841622442158945307666162681414373334463246824409457715611678083046865389807102240788792529628097923423212511243943301916655635073116550663008659640717360086103972046883351510522835022904208581751893138274385746636730682296556474830988886302100558094289739092152770088994902343765462798925166709178539240483555985216546857297051587339223352950051634594303421440916612699870099817576761854079696381871959224145307752191573684104792509055277019550132609931614243300711934528376830333015522120766954431914638448763673593011987706797726635131480270033077746408532031615478337719969797854837995065726630477630268825461427870505828420010928488951180142277857100924656993105109730414200523910001516484628513748714336513863201390784052750221312927960011628583156473669054451328217821955331652116077223949915456741938624448157375109420479620634011112593527938971183323053823735596146920701121750203446571394888896029358914079613516125975196132233860771382040132620494691149894854635061949208679734603860967181055435207546474290435612513121163643844872281776717224987644176372191842414225911326856956013930564976956186217488165654450183783716627714775981339717351104243854567000383941702696059559529404842695320125861852660271183740872148845125122950723336561845672618742156421872000643651421177294266061343857178364931188115349540144885059988495132573948962060279938856293899403608911857219718141566936707458849035099567713861928557532694995431341408231730956612209259495901043671633016565648939290572940701851659271100697728491094443824894020585665650156665546641136448259647682534601975602316181756817006036359227475480215292142001223816842165812647020158063600277702666698731212474082485145581451115769474840803838117557426255593325698499190711545658319168604902933584098422393220848359657815578332900556930164541065478100379262028785249564760460889972000093055858868022499340886417555040613726758023941189635247082502204056842594370054449413716184492120032068802618115899904571873922951697184594227744885891371267235160348238979729268198180243184117487405063661294827493665251916327534976932547203773614096107927324038496330195967849532695533099755670439881198259879768413157073231355573968125547912645617494054208723693249534419544330466269895210411248323306229425442828705628060551751142940774869350171915317015927652094720238285384525873041226170948677012811144350346310609032530827958510968690003708144232038982430813165327789285920455898375684834735819804558194070390034961456833655202002748722597670504585054796026555273752676282616753579113541660742377069287945375360583028783727571421997094362186856903409100949710243300278263146634187262723117228036255015683600857217134712538831688172416107796546378601838008794384463443308696994269408222950725025057125940422458741777414185148712060797532694742978276523297296324592296058781367826608482882961756082246940451943883431115798531455116952841207087127716279465501617313306260850833331913415985144215787453101481565305661321378822749171114657731296577682992307119240786376809766032420855567901705332999533702428511119445171670103423996862349318202253930922325191636934729037804004660802008026187229851029227913015763217704072673488368559412780940209126762964414279155479176709975163836701728965747669698285009303173777058600559819535071652024039445831429370825682751882238554280490048498176069876039457215357708169289158103812370711608204547092981888973001062746824271265262946198687739833491560553818844596123124419328483969568680998717092644826470454775940773836359515622681023687083759723822455550087976203185844472427052079165225459956506010175875540548850308783935422792596219197396114513112735793715974068287293610593291027619999704586078646127373610727784399162468597542826498505889566433203418389082416205515591307672701808051494188183713892194730994898028398856597562393806721185421418384545098480036101279080154864871556427080024613824212903802317318265718015925127509565774270167525345719897956861245974422575191586118812686378754595238198640615336482083435502278789722169965984526768273289355876428795679419019974796820697489118745722373407239724796517312612073757327462961365594321769391000189820889505497818580617743331642360477893781274519530514503827483919190607534401272169066853415744698349811723416994854531715300950383535216431013860681528878030368866223626209779550226173636330691252650824557805003048527579437982262179234469144067305987958314579804532983165218504313722884606361229590263742387363094064311905421307965270039104377524437853900580715231354170615001807327227892180237292239274338342395728555040971203999659118653868970001148055326196643960258818273580769266215472352206531572310717406228336294776426678427022507592771588056695752568663258510563874881057215709174983556632906584502840069986651112342520311048715373608930886331671671625675347357406302419560310955078266989837454197059800692333329936820645962556794021592075755255701023219994632905630364283319945768842423480227765209117285396016379415444669668871756685899554894944174305553683381019641755458541778445420545868470224323618134790062817455312982131864462200736040959297934527614658404708759853417034488028653976629747188468334264468658339927092164299037158089172743566195820523343566573568823310552938924136514827508325042347633599877197738422218792105188172580924866414631147111105352518710378004969849738079552106135791517762649526572969619139028579996482008696479353623964539096652342106266820828455845430405121624656066894358733809331277817612781987283485050932080844834865360748999062914684443892124888648849655685467472104162571263230426067678051644998614093481004156299598133087987254264571704842898890198797935006065890088125823377043959002461792671117782615953948165333999016876742741400442657806995853731377685621559657649357778557522844490334090289634153503178723879572849331926896400811017063865462093675711048158181891370905543695288006746810492502105879483633208012005551730450297116649274040530997664302667988936392259067243847366911387843392036176406637247219055105283216295074269723885863028132475128937413997908154985309597918663174834890489145195899156980936678287866764611697207047257608621458200577141484994013723179665692451294341851501599927482634682859935663497789780144706961837052575424849688273679423408541114687863553918893618742523229604204363539526398969705488483727319327088298889313656547756408622592978584405200109704241569112085859860346150373967936610954467953607863535871515165143782126631149150413397818677031175912074414377344415693133084716607804023235029062697565762014945145851653733025663887919387204833006349048938005759765352583757335951375505645877052386034188761104971728319742232411094941485209091442339351926517477083167829476051983723554337911342247437883013589670458287672933215081790910707039259454448142956318834945701829312885667630453872139374578437823797955108251256479787396764493829986099739842480610597646749959175286801099169698445048332490826802641546835045356140512365829682245103746956004841872450719159490070724359948489955159498157354632348351921383276544840196847445354262384181304092219291077537116531185562136096962127104332833290188877821461057802836753279552344588415316500074087549308603047811409536929995353593934659024344794891415498367543048529253320724216172640249157347573829317360456032944640866604488805498036932653794181003127074905971575911647758501292970827221105692345792388748940305817652583348948522173604008735323097994459435889797630010168100382837909073899977050755487231048550384165513753576543509390345441760103088929843036568998295544443076752655491001211299797639757972442405718186322533727029811784232424565554807698867877654211766446585953923553251635110635168259371365265839454449527082319687965016640122547433946341350690946357465113961830111690894027746016091114720079580468966677465089198288851284440719153742398030092093867172008220830220700824319145439678295665403558945006593717134325729099765544620394449172443601388778864623766977947505619588349040572546375813563122282989868127513568815624592039257945392889505210879658867890338682675558937696791208886898866929465199158470002754533071266529768985256426191024097789994117409497557653215768784618870198554066715629239589178479809504995527114759864073956990491527383582840042749576901972618562300840104305445527316467090099434426568935752644381238577241594736860391431385335261137308617844142908233726993964866753730665146487992352589708415377230750150135127266764306506108589473589154250909060773635832312315786271914020775836765742318676976219474031534248128641385120159173963173253900675666064318666334282676707750539663731070241180502229751080186694819170210184597748189047883183025696042069019052240672089870415099869454319454325979407619501843957374232384584574940976200468097648329361886822717157470461024143263289893854825229049839478479382601790427060096238283334847638647121845204395312426694482552259420778527785811873724242519780366919144695921640890343712898088145865439022969035944380692703780503958878729234891877434676179641511819936659141808436539327340548529442009907507884993845384229038213344057243312459623111015350735452381425154316430408794642079925025822357543941512585786935187839273124062195560564707937471283548289618217204955166355041544699344642979629618357875530540061581435499111179859904650112574801824323909785506041805252172080870462246445024319519018120189260861692487668578259132064479926767805413864525118256401624702050586739132681414211258989268694808129914953390268155568504079850112843778683519490204312805031620894011757020926907939892747625537815718545363790413143801065930183328726047989085193755653491361659119694618443411140687964096137530201954580414827336974899460980425900029241205962279902631419164421039829983742356014119049492314723595248518434587522982722288868965172203313595347965856596638445209635619612482127363081611487354461583373176303882604752768271895625686604665616537542611815270516359273486603975976660482151564804283355908466468798171418195725468349024379393949431897523460200324561100050112890620856740655396706178344374822060831466610836100925667292561637976259495427645536228479523826972871672500032966681507830179518345456654688997866129275411498903821211971454080786327743233095007997260655184165789091128438240213550500593784030373285375051885726841811699328483128288353142214661487694629285365315119842880565285751936413980387652084945828215435205642403436759522991337813199120074724444526420378474459368318190239812569877076509999333067914353861858121634603890095855049948134316295041275473694879984920487916834539202874734559965257844684134031619006626830325507933796111163423903732309460233536548142274197593835827024463277492873249297666040922745437991166096439963775160859275149004339441589318263403059635956706697180607319772624088021254524526060387622913506532770225509002144421218438037410514365493563812488360449940579820707150374710864892129303721465232536770650410885967144259346905262256229516467285488367440859739056453213453073936374357197464198506622399556377395493443588705825635668478010566948084447637241184160985361224171132808469977387085329515532610030357507715304295786717373999685849224518061419040087504838232818905744600705196124960999336231770041343774295503445440554176307564001042434672513982801307286052839735414569483609323933919806187007683787572758853473020538509588866335945918379321705762746028871421676030756399916369296192586637106138768181741026465497385022108307355531546658411440975573412981484979343180813951885770359876236541347648919411380318941721819941498534906968630347147085196893128063912873577933992128707626766365210460089068113769558027085470575137777921236658631629683297995020120470310911979284211315730376924596631560271944087748057141775065009452250540382468812755981299576539695851997602209549884517803665025103670223472732444357327706990699531924762899522807935577424557234838511625426348572602389192254410388708440291094902698544069686503190430358473167400427244194838342357736322272442397869991083184639657930016472329357945188677364495757681988771089329529539098758811668668117482816394041800765185737233463100047603116120527667471901654532816375835276811251803737235655836061664641468032531404433803523226436294798430411770455520012937447925810255036803642227598777749528970735039350169522508442915743663318100233221210844519376489457835072343216095391018317361262196155691729621784611996546986975106223004698846744502767891451691020618718652297170704624111797777808427632470383604262352144193007221765878035554990655911729275032969879195187849852856449243202493452808608041126626970144055770053504171345494422843733445916078574846527027714754715808265882223375929338934184193492543046249220962550020823279376911083351766733361860021198020042893910618435247131983349453835792435774937481604096404398068886038313202652130437499703748295137248369429494033532422254047364030211942616117734182032410526106797175171639574154133406926646675656892941509269108344627753794181600130179075240016845356283160123613804818120283870826212346321419996409665717793612685033570937833168308533559369413154870952186641819479811627044724921063364301398104059223097112538268309405641697485185461529949332290472868526926083551396145275391315157582008693317390153544476035657598454565030255045350807621114475870706653086374865349908432006345074944615362575706782997948613965112511136338934859199367725547517948107318815837342158878538122498395773232917727135450247715710223796360069777854490330040254330194017726953124935378092772816124214065899896977130589368301512393663158476742389428794133843409704076853885432071168606823218601790472639116823213661425779413700742411082049345188991241893927371866026398499032674505764872261761903518503272484932824746561940201325815173387930163466463824871262838545119498654526071412449363057567831858688538553045635690582944113905672992482608411544803754143845258885735674660299021334863973495987801526105268777044452828755820536844540140300370984497957091585580792558228055214135290887383487935910204181107531941273160924252683800190161929421044836016463425281929426977875946486796168421005662064298029526301607759832145350093124990108577139488811558104999450055137034997362598719355588210440463858750977102310010214460558039068981911112979744923810460560903028217198634319111451326771413904686160566992758909398802357280031147548827808629603280794091336227185835288556457668159144371617633094108727933547574566805053499982384024417013700384206711237807165956149676468931017446352565114894243603859145688933418578941464117530315761719702267910846718603036531071655947019328033011834590744732914029549500738687036271855834575991889814855903574982977544248272579459701651106211089687511756426870669240476358488543068968789968635964543360304587559469722086015002479110332153061645933812262025134919459256608359266235106443978828212209273359007550863693610656551687676243196215711399414330718772486402175387692201315113109554937725168242373519901558876783070219770141138716254933911603354054956924403086554503947645599696800944474368893129024616555768589799525222228593950487718768442333673348585917419896264590962533436046893215848663502275219562942282021365340401326643531662779427878164258847168254601134325297988085910000417940134806038303660139938063807962660935727748117451898661321345981149744124819036579884006342615245935096959573087690978215909479575281127157017540563520941204067379249644391031796657680119083832012062987819918751115411931639708568484219130879352569522264711995441666539080619134645399613775792555941262723027355385261799867476298477151305526685285444569914696927123782898284857905423521658920385104153262533572561289725862933881406721133787876694507824562732975377127816882346573189163015951430899607566510590598611017643099717765844056502256708104844855720021183853249084396404947568388718750888920700313726286110466211884463819347671314498093689356960329659572515475252107650625370115534323099262801870727912347235445199562765717717249272894358802845528813170293741234949571131050897655767325881887584978643270309522868446084048582138493264750270711437938431226931583925129315387105623571304757807139975732171149094315687001619755210462042506055705411588747873283960405332008348864585325467949253888462597694259004610361257665434874595060336633396852558296940200584815449064018443101717879628622531874956582672922297534697955763756966695920497615954431582246910588182436838209263054407902978938722357822191972357645995958651301559044705272788535356893957847243805269169159940100316953795938536684006649050821845579207037055919435008183659528610761098002227101070118999748302437135350628944995118242111321392849960600385317515161012104164336334254669172051174517953374882171358570477968544311968851518109603282467283180564926457097730946909998670548016686845677050736000091740346168676296295493331481611442381691282978577730873670722292547372799678402911557340699294769600853384984727192415807055560232139220167915402284151151557448553860417928148261073304583780972802422611160311088611223570910935561119887812262764629542373628923675362977102223231236799882236048619108051920958291318211308957569406442182688007198135152540029633325184294913967787681165560825037126182933470059026380270747225216537810460319817581904961925057821128050869873828126343041570351425558036959420630052059564135188951354454146007632232268415714787634815233530904308151769033642752393360781963422508690437199789105881045668978943957308029788606397789910370556500034547917142627527948441629841807426664327171420763299526705107792029322251933141158649731974514751047406199319075609897317356226216699503496100644758614966570135641988279974966749234102489272789054255947549845531462615185469120755514426584851470287112333789945805246335985067598406641856371524778657227057270827950241783897347245518230437691014116917225910022562577604222529675846441875116290977797869827977137708792183607192720493013704120570062209693185703332705674545475281283670186630008766214682697331903054774582851643032732799354189032480145842824505437357628493783753818646432746210179778661600414582533951565188028718060728942073762829173814534753060408502921941360162792800668131534730280593442576539012285681820032489349826055981884174586204627328487626072556836965200184694142812371886819972425705501072337231817826481268059305859950618896756210430195732311111733934622690385807425485748824716290609663688244441543265354356840144556805166706995929562369094046538654047650354226564620037756365904298550626254278779719115558648314350812715861353903728272235211158796548704851687473037754274795896958980831178284076843319143902084176291143463759720981671604610674265208370711619924166094268014484033935473141067323053685484151398797773010282247477795236668977923551800638872040812431675725364304714069592779518010507042119419687737396703026327616181127186452663015141278471142733686144737493096030415111594405422008433820848324961745217311243887207727454586115569159369954262854684772631525650391552843690660124303213242335364273515479456867670313264274438088911547363671997449673612530619677860768648257917243538106065103081093841158272890131908685847577078804004846123307454560643938099662335928227384380652455987335924905198328033683553432769352464567677165627931721286690078609428387774162673852153355756001950718692367393264982768919180590546494766160404320521179550848667457595852608675535026423617888025398327768876557289214039091720592373737718066057403311363784119359642801443678804464755617928905727314802050851341937423365615305278604274034672074549527093529732292566285685659001815535146022843302929740322802557875051672902074116292924941925971287473129921488279852155871540577171452684930075189297090244509601809323529252898333050570890494817405748488440503492963820567453326745805470290256481781431764923665695233195101002626212436711302305678210858961196645278147629674442082183879495810980287840304506792207516060972749190453632163460597023322188909354729290556473568254884337351402163393756324619711213155367624439341388773376560862505196229734671381198608025981435000233445558738385389507215455563865792690783517911525598809512453222398969997851866608957776637942175016865073748668108963455818331310941594111094982626051722229660358948645593394769547240845452176875214274255053547665267127003111479469821714915105322046197266779045469160891157368014352088556150370569693144934187188841302564208686820912511752757732559327965413917183614098101828301818465652762827635481200031075450690127513732735998950450496412611922291027409408275301983596756653885502851666300418043030690435016650419730214638979138253988708279752075153456890383481402224229534363342477245545599580912970679900277251830728676374220877763095385894002502302867970497876627364985555769520535561433050563204471758416916251005086388213282865316374356307679463953264504415360344820288364375596638858989044137478907794704481697077844580728509030852179169916031710149142669108912710970832065037555477535753505054277737914150752910985302250639710989634514976087237321036653008965467038530846525257909833019777115122424012503566410783754394498814614268704390790735943544142420268555466073755478440226155059694364771684865002668108465624743204248924775996888239876463593259693105696982645783359321142404092396763707494323661095851411061386336094417319669178303434634819664053627942648225911931638422672538428019698252995063004696358254464404824579968782672090987365327927720742494581359303680359529632661106472940656341721782888982095042822029608470821832105678924107433859001510932657966668466504756881163098773707944745955974368225214514217621835413227784437242753754133032884373746059217346315946632732601875034613880594352660842981025081248720095651313043966461201454973660747523444739869321412839479908472735310607104478061416962148175681896451572679262195967044189003745246586049755835419290163315767501020060515030020664831892246587340152561955681186073445828389442798680860183454644498267821326417673669979784714358251081902019628868223992330800079907943306238393429823616076466737452993542906589409761307352851932033379126328390812839209155460213775391531866425475819062860834932279098663829219173354510052417657740117289220829934303592531338894473945775197273339455848943089815998100322547125994012381843311271146314733009906172116061729444327270072257045947375345100609414741267142497839974762102372528371878094249628631193464841255653133574260201638584852348411224269645281481922531078751282951541165915298329868468669382125473727349776766182227183192759744783563274301779448792891158195587332321215267260399167888443232846819275687139402048627960118123560992752036849356507615139973347753641339962249396775110517530575058577809823118009614878368018794477692930747661993894392296685274555183117429781258378616822183253920789836838661273544286140788476995509485770601994883258331946028108168999630094772690539077768907138103933648009135939914229684531408471939510624672881137541257081323625435306784269967328333507487090450597215109923874753562723239797286841808480773645515481195502200824246675221883552373836495948143141356487059203038867524445701047393293175966615267918482293356924410747368076927643542549206788526385798761421316374221480247503186018236508970846412809107321061138333041648441364186036637004346675030913939793200654003843511222213720841984748105076101506488490619382686412523894141678930596446349556727148902072585261375616968802362027546553158013552495905823760510096136618587848204752234858008812403580376755358794130864549595975942885526805288961613194925320948057583206701867734009719288699062755411551118410093688207447247830503666168873718108488784902264243153447372902863977937273086260276037664883527119462379825239162943002941736497898048248837248872471286646987951926047536215509209353523044222970988682642204695286083774996483712322285168297879253461157854885469040625665017405786863870440858475762685072406752313769561856005400233661621372577407508222122027453057572696030437277106190588637045937357739848192754844946772871337637731088448871548283214048967959874799764618464756202938827401474406542036286605499945413058337687872036121499177878628404148517165189844879522239217962193222197661466781306287451509650683957381853953528759444570706427000881214736414068133570361833109920641359977421889055722724800677589991074768423412108142638224997491867785513717073990380048480417155221293326741145371613755014592839184132906179159591968023358672615859266814821939227909840141765938855773600772753835505790304511130327194669412770086484158765868481919544978194605597038730436674303061993602773467066634815532689521957037815958406043671399300957794711595121209773539333761253507949526178145787364069783025740562450181055647260613250222437259230672577915037510674772516641104451241798274318962270664826102237325187591477816237694888969849130451444532078478716476840895118581168924015592992495816976405483528927514193357401090740028082248515806963427888379038220538642319738463383342091969898800088917275303249317521336426058736618641505788930595543978687017023592518509119771329139267736604565994236126376766432423363913473285703707404326563391914226474502234021050421982282321468268294525965659964343035501225963739447388015028581091689972050754772784118293307746841088905901250005417317587233336095523319552805835060817001457628021167086686882473699562081028597612742454427923886229901132898723746463128413601922876752678059428731543534078922880409924229403100989690797997107656231230325783965547507042905256767885782797655132963604985296622108531880161695098495261324361868870735632897443565278333161968548960254270574780043769071290294222474543681474130935995812618276707864990281588494114977532136634530830892602272882844493643478689141212393459049934599929646020770077851763167296133167982189439954447783703300828747894171523361924452436035076815934024718365681566141551478871687424319481899234357418885496001592665431363629286732909797005241276641191702085207015624602142356205986770232314589467545809370279283533869789594989236432796381456012132280871342374208601892806847177193720676855390863813827678159293892519224255579614456698198059141756624375537610699191286061214919139194327516832273489092685416774733747571703588857295513516880522494786803300489214895970672119242925426035191968203999948168543776307158703452825552297053822279853532875717184675747013827097489947208359097627695599827733533740613803685815385790420702876698380471655680594058067505029980702148542929435765334513287733361320359081129947635554239454302666071404251541045547754837902442460756514398637390499688011554401074572578283994704827072034129090807986321550089062154274899540928083074546166416444635796365492319372054442873059508028953824215019542144732629335979779486050741657831791820109628504506016029725021362056135821655444322116404714220061678360428224200920979469386855260609289927619704534626805918118584716769896921517537415319201880874799524637188808396695033640033767352987781169824918096021055696862377074253397399745674323378254564886452077111690287354035592283397815902182348618268548372958060745386801877924829348948438932763604043868176744637941779129941476640810898961556814455177628466115177662627445420803108192833343078904891646809238089243320702139117596698818608339964877456483476667534289534798083768398118290788215387282999644360567053507067655119180710694685182617807926393496553943314239880352778381469156008141823551139883819621485673727516500161904009739858006451838680999123644721460540978394496521518612897866659016801469324352282076075865454404590252378450458942489865060717329491560419478685542776309486179566556816997973807320887964571475167114108299574184225758662097309395822703479978699294951337941884698448563029486096209437796283217028885973953726656109687196864793833224102999200841613639089898251559635769218457582439354360419632038591844531001619904795421433395001758598725714653929503361699523373484659625132757984546498877731051434366407862811409751410932473320947837926327272679081132599020569017983085593939137080649001270479013790121295767896071795282447917066164109634231289503995793567495847744127716054983890588479361338031145196847338747367512086485459935932533016620521794204507673912423535644849830004242707567679741337822333992736992595994969692111520666467724466733203279597801531805787874183110867206621160739630917703225944281367142727399926956295607702152862069972237614452061906957306694776655725183454095025537785711792668557953919856829196447804418407904870726523256500746059165627080602559075497113187074943318539877223902429770929571713780248891147647995189129850058655203316802685784952016912727459926096663000642174079151802925770034764830640317620857459483873076207207003268794365552354111381968103670762124333036819552788237334097383460624829296827891101413876027991610526095167290508784944684915060934318922382109309312230510678708012014555401732155142366838945589860044233648095003516602243882269691736680224373563170569199754129660894621804122684678456675250575844228339261987063519849000465122961038875173207311492666807871964440644584134127851769300485033265440097556965250084586105909528060666739720607995396054499516059373062236965563360206069866587182301735033630805842795525897450330942586953501010859664589086609446586016154007599371426978695763096354116903991804509637510520760961070887679661774385398073900224364413060850316883205462021039045094137840051573224269413525228874836211171500385608846629948968341821371532200436176045822753374667046634525263141784579667282286758796829769274996136814978139036636671511760129913808404825874217956041096521444392546591674999287507295531241860322703434085563895687400855929148983071272541878505351977358375063191610013189573402770942269379495180592038959933843225072042879903010370708319684466970032614193941436219551038516937208266459173608033378577210253228889897635651752730048164322215905431032379081652423625670919005156247809285234905628620943151113522186120880312367466946332574802403371638476516341602904573529712729327151324313163947673586272474886044628459683931698180839792924875551470501858059104713798305432200107235964051505574028774676291799606145096251375354697440542387497096542532242830683412342632489473012051176994021448372421346509443636698507687474722709129979934733525765066017544383861075020570677786560031413577226855455645701833029670296791729112450840684625957076949408602022570163673558073653378324804341767169551266987937059740438769351575797291689529222983871947767263992501175491452194029385216053868397130486016406093517905170060112439292089339178379100145096209864387568431317315354877507563562976496738783529630123863226860791115510972472806086597932885236338210253751230889871068156652089458375500691405355797026727606409462884600745156201699057961631132605157495398303707963993604789536185371953375223429332758604114350154472557966013271828743788782565138678101464564527225605095303319788038171595618141886249110276005588837982393596413915791472586107569369503133327702393461824438516681128107419474442301192748851929108894305341201095947628525531477862594520327522475976675687955581033952572756829171544925047874323441130295902820699871542201037628037428171037047900010327114797709217863538934160083027760703393766580875249494365884933796770571872206703426355979925005558169775616296624473003094598066271078641584652842017267182817437948127182148906466027201099549606107492918897668084594366336231094157793158553896420453219866686465306297401033987412008004894229234119719022933844490239035141909102737844971756452960520290824361745069416868614630141687626280013344021238937992222802523324651011294307299618228121965148852360215059045625356604589297704700257950978106561787872548142820792253495495859736842677932757115213634824190411541354728900747155126983880593789285237645668748297337661117183536202094468821108060720652984207762363399528961307811989116525201916440285638852994591091184653466968714135666118620830638274635260963080805976282592012528543839792691282460692226279427284509131920158835917690209919537918334689255400761234429760836049863238970621988040978666306466246265162278404692720122261863214806907863072199712512240794065257121586512747961276075315700310873698233139674419333399629574006661536225159091765059700407769197397978671562137376676181875100469454461791415066911414707222353553676027907956301101031441716346987847455726203795510103564589610401513783087463826869582105217670036335768749980323244883494027820705037016732731263507234163600629977044035828274096396439910317611396570441210452798495812603552644326194648366119540175856692452921449758133916370663177298512265408998407842675751593329723822913365429968330463465564703524326924227938798259632965739641466071518780323661709810906347492093424085182247434785757850836020711655149360423214570561178305154595767490445948358061537167276186027539361260556318620701201330094877173763123687284443659011274364271916660733341064192182481564697779531630006149348738482753025101263126882247395566241257970914757647773121273088703344497019445240763398235282192671525488205842941583709974946656078347869156196413873641017858454464286594777121640813202250842831083541324003377175048295596899963336676061230838453806868628276314081611929512358227245486171807987263833783879358632657657205728786667912237281158672746731275285510886725270585273049555065819908445107033411858608391466268700839447626324441246130989997346074036686226553796684289220005308045185277007969305062734033465927367715302247131157494517203359334900869942478005203562246260364286793382869522744853216012560876075285876111317932601123449593954121079472500015972075327375911129939107367571442186682099220891596086518673121805621307692306424852846072992324510504284602312145236055608026190522448738788062307298088314766935478799105438447700204630783882684617166855473861467320183461068504408440802740610867998584596659765043991590609604771422458501193121273513937760959376556005610227723318469050524464225720252572903528626107876222925549794722221693810506413363509896367946247759436397231614408919160772608033354494091988723275017682539235401099198050042728317330506135516156550118637007200586512971862462103376734871058716475460419703640043219060927941699084576644358728488202314126892010235822427718270175345637211481242651751355970677680283371723542644632997826702377931054674641037526693297395123322073032962962913594297095784473103666524524757098275878328590871802086219538901720696639547426518541959865094979948679310899074311318135545143665299135719154409957856183727813582017226361205586762551121213774995931742072218653065941600394057694059742736398686306612770391403039663793864015564219587243432920441249848769340431429609531638004121558045848459544916827893764521451177495539155372931009033433842226090032545820823123845676846179310754462000737720679936092709453793491302385871438415722936731507306843869894724360240841475002166438988484348034698761166902998819289847062841968659568463412221095223648793583848158675281476661244181276478245795159898116164862490006604439036703019688629798065889406483989286622149440840018506312351838494905582736810760538700804902740822457100713491895586478159671859009341006386871838873028163212842653015704084516516933503841603800249305498665737473886775627612234990974140036021315198516976357635031694192125562858144501458644641263109439357337806891106681344340869597734816421812962635563376571282837798361068355692509421158990847817098072675289231549447581914683852436623268335180931191769956156171038094395616544376472872122338484875028552625830223666509537990354706772355846263368916906230669462303785051396524872474665749436457644542649510382717892281564456670679774906708155214380490619202013637784470265665824639675635552485325356277369749681640527336652219905097169807130363146170871485766544289952917328619240633309325528557418847645038638061793381072982096371885546888659982462799089661874456084322304795711802619939768847076542905080984728895604932381058872102946046081702211916244942286741858181145063293603421506349792772835867459009602837564303778316275204130244055091856257512119144200643577890078017350701818543062222819234663516527472724014386241093408437934524549046084435249451092205575513921836658243515394709272769359513306388139848746387067148529610008364592873129870851823700477414517863768722638901157045897524530224486161838785739379993280467257715538432681034164377099043448659926168503235331585754978778097904284288749548736785839367398787582740482550374992209304425820191722370997789991644897233608205268069156797620482929747284390972619403035781830088210399130549425996480231296827104630619876604386021591288651900624701253843622935504318385283343211483293614302038401702464276321610861344837350497323894228303127569537669307708982656403262170147657153459400226105218382194517505921575479821428686297643245882937801487346104528575098014446678765748537741882721369985516687998534986010724975329774884402276407711414187861713519800347144957867581513073280674550836570554985511187183371988716237156153670723816379960075001608977243591546488554431054972983492271433296229708837447430988121990047321417261799167384323325501412512010927483719681580414083653517667771473430781338065697120619604745932805684140309836502865624794152818575988049026688535370607846089856845209498179079092752540597648684151417211697001278894946612471350804344068338600749878604005399347299094124999908298477391310966808199775365143153092994344910980744323513987838545119386468282127490861475344600070831377577728764323090016263886522893777997739154498661716570856797712913023842992782222379708410676322463689728375947922773706798654484791269725408110184619967029805383161114597441566867446967743159563594558578336714433875634983292263707598868545965136050370208303833295594189362276591990937598529814944882302553213285851007689418635102258131627908960369834216808510566207369434234737353789821739233138531207672900191735422078654062079422389851552532652250502755227334313654857644544279176814679510996190797699737208950195415993387965647332653111074086180748142827964169124102118369712981722413599947835228924107280778329523055099436768545809677094723902984114192588245782645204575024356019495386224226254373139180042254018070565766790694264923277992727525348809654270385988030816536030041464360194236953565633489699500602411787925383768806128629003998386264984269150090484612002253459732695738386523599345025379326918516402296442161774281473902354729746221953276912868781440918504098550537969027597403107355185436948808453195122853725287540482859110101379499784711134009089549073017209136534545713863207060646330938141065120159126169613503711573126610765650900317386041015944151157940439752677143937249585588730057228479245561375523741548992753280285441721738356641704451986491522098936203917798013547297467757239704117564706992633110220355058070378781331650603311498327150159944504532397969088188744479739321608439944342297528441126870563197425116089731529819820280926831608711647393206761290367623377206095351309199035118912873339695303033130632934576122288366611399016410123707739310576809074493652215675171241018454556911023375359688613791866864209404820887124033472005677431787938270707165567121943989709286628911619833502420295602067966335518410637319790113871191452210282804539891511029722631596574474411158694416744715995057640129253127832587520453974929335916180277633573732370954440230850232181476546324171370963353109481505924461163527941699714022031856501409776912717491290748633858394844890708864971470109835538566166526375345885619576253318421584818044516634757004664077303165560000226404327035202166996575804219997919714634771598452966765478433101863432105357220827619158469461070428919100307489184203568598823868600769605285841835542046309786911804899914157898280871534492986546831936675319006967469133331476448798204536742617965533445502262180865598314883611880733553652545799546248317014229764235761550295319264039987034536322944022808823132440345549946748552986732661118404236783086785563225175733701646460000310937232569757112424837422151197944318852972392255548147951313923318916433910234798941260834144172209636708478428202030515104932759288343309673092391328637197772028339363429058499938459418982229526540442350210417294829694445384545445397144469418926159715420451996493239728524104147909567257959091750734460409871430318095316090813981908022684734982817533039756475555566293087169907124495621426913200842379754096983562696954399056793788840649040732456766571966075697951326634132702811686126757847730560531847109117938013769475547425974432744117803339659051950570933655893065881062937598917447426960634025146564142683497457454296338713906696504360233334758368671575124580422275968171887332196279452657184970542145047186856890638522161806686690803908469348600533163488396929193586887658177445411979893327759072364336542143913443384382412189043899532743179137922944828451763305660080719051082286741445645841747482268890430889369191311135532163566656910006048885429992378352058482309912564275543928058192437771966410319753236391081141133238313808778179601453869667479742833166713476447930834508228394421809457944897570890175480820594928216972068543078082990948484281728311456575858925525390862554228558917791562791256358119295511424791965491054998243367818523189617188995770949424468166202848064786293748373773909973113750860208773859936893412644712435027948916214023693279799319811870897635717326331507844453973590389617570340332073503457391287698569411186301412036074234973836209861167053316676780048139366974978788791523044296652890239250140632736602265855308222564849386913838258946226685676888095868103301104153973182549724729931531881986968190179230214977786888921055500800755799207542401948805724287614867500528389857311711178925895698754172614346983545632856883930646506426890172798276545386842330933599889576957442809096775973970488824894365276338730718492461664403008126422534820698886445685765507261434251147314877444237027746183234101795444274659405640838183479851275039071763257692167696852067775133673947865677291095900811868385338056248221890707806294820005482216367700965031759240054982348307532793161191068285800730823892242005374120042013267532381826363936748572667934080688865190957261416160852707450323290359863000977158516361954141677833855258770988788764161987632388595412432386008737288718465366914901688128879163291881102952843848806005314106871405404812533882606992001293394739300168393337881974098810811947595649936847639255098218486309429386062085142817606026844197968952574129286002454127828186697900700080621224090844288754271881345327354914917636767477254702421241747908860272568023839972646610551876604565122663164383408307859964935107750157568746131987422677362148366034695129006922673133689367655384070376572731735813182619686127218497413676314167164071808206014680230096379869831077447682463757183694159530306795066095138093876352264639125731487788381392089529304015906843779036767038859920156704568261435448709007228451795762155948912749838740548833341813164628740701691778450686055285710200357253519425389645977621050859208677945246730010282861951464668976545773412957323481674519407492929595723676719502675972611817868390557224453776823945689237984888783605252301735269381389712337908828290264786757245696474032352048273050477641938918316607325298367888961533300435482401612502051370949089685409915365409409318285366705723245909654834778970935933698095329725108863421858457750027798990450088155831191922307774483186403528324004646470191560642928633323672803900040580181592958327651604623866565780799246677801522035125079650519985863632591982104065410164587551586731142606344331722262517559119487901699413838124731691698153162182782609130170446328485823143047784958415788249641199547629574657254342968229347955243622643369441670510596540963769338609047866183062994693891917867520303579120666155969012561442975746786695292783177124493177339744488458187346480553526525371603929604158573923181641488486795038571498188839079027497630966915858161959629214363113486979081160474606404125458083578316252208302435846975474158456929881977194139498100106571256754268248763361941190978099381705614204344833143125687599582558878653262204910486162716614507626969792003628145870017949982087559678593716910550256145954510473134218388455645540935561403795226624133202513885126145625865833251427900357490942667033906390123718268384726632219645707515727532215830081686732073636753840434927188837781824132399898178797549956360825098357675232115175552668020117483809415596243561510042319285404227401035563155386632969654525349830706606756584797373455695446974402729783159888160706974422733250089235400124443941842040750661615270588659859374444752539510053817494557937457387549425408978425124969645938775932324427781816141004416436070465195223970620413529450121333455527507870613025065011788353559321250697637507102151465330802266355777841906144796296623082382183977871664761975797677842402724915149454942782451016100567617171734300970454848795607546992427785656743025986752060695505977574959722274813608685076922133738375239748148332175519136355210693549099372262606122199722724169613044964670509325945580204628443427823042225351060560483770909603354651219410284459308145626194520157047862634198017199122856635790750326125857744649625855790576009755702227067790549160218924767023456353384784157422077168895739444530666241245423778762630387046677114656961131258887503138192333243716848373339643743083441619717890766129494871014287873168290468420816425070156238518028153496852360428493242550515729740185804274800590165569351247116149914111615892996919773077358244114213676650464887019775072421332250867040799779803065537428383674461805418888223096142936838090385113197788089951303314624197422864170750346380335578504804772693323779511963050315863003821194415815110574691205508048513389293993227809543129411518734985180664531781489332269180085870641039311924340833929175948882664315727178814199090388835822165419213006044534000043637918629126338292124598285331141230470590918521156328176784040241947731022756237862433616977963143761568120735906240853082882486441484845599705238686089740221203695450210037244513317252794033524360177528834725642621472556179791099941953148880954194699616097284931473724382514525078134696740285823202522216792993347779798976037377758036715636610495015940349590801317573014585614791136587593192956797344863220280858136454510228361490280230981323754497257319942508132564445320055631917007498988463597935299815216272765209527243221896490427856934012712534336994198460661077518786939461334801609350397802676430851436683942265540139357429265147159760205374661817171884068311890656758349707733480800246993559659873049925857565988905447504751553464031514533923295771861360437872420787203524911974678163034719235184466587816348548755918253715215227687107339512086456454351219916135616080748154835155416638619481071608581078949320936338180997600128127699637829836490556518247242577302346012846303492654873219535337310810122797656017467368009637593481733404976609434951168837310928626188030596969231475264573504574498176825547224343355481954774135257492613584484229304966519249788911541368390214732351896206612045477665143173442101377047755478505999207862447025223223148437631518499920892877216667251163829816771379785206106461877966111791989962809340181400627165227593162118009851595420134569318765426167840480380504508684237610946022732819232606192281552696733928553739832103291000669118367204129711275898977504115214973710693945483357398304668910423193738618320075878756043097179160550585330363213390107359797401744005507333311601475924943023490015142635703203778167085735642841810754167071353378800782283821475016328051792007857257983683470133234803258821199311095664397416846746148773937048803018130591383629235548264726982178206702832235973805448888286575835889180750736312387309640244095835281000786358593600973463602994305534231575466949027188766072742802580569189629977844833382948219662985200680141649344378576190721209860739257824360108565595740912319858540451538373510510862234670046679485606747137962946033230551802771713338680340744360862613883262584591525966667327621659659643537977843898952736104276166547862879090110207069588442324086620509640396261472509681477768207468492465729862745492178828397014137151334545876147706033288755552591438372430406645390885018575528105236309147718437288811718456317062879343735965268718652790009318930229257037422134071924889064963335374545004233497178195335589562835136263452453750509596278464046971789834973849366538802937145325748854279933625554611300753880795937219413017250798934816140254841530072693720171050408932298633351845766392871804256037901789997290550016626337444436220443720258231994047322518012007573301877743876862063936863749667446997536172603063671126025303537841822335146136704111107422730232743514763752557272931711693049321807278332703378796287364099670772428823368089310012896416429897605336313712413272306336204561624316521923445304660416638244490415818552852798683747173216417413023839648355026691988180355657415661727230666222991246695252573783850864497750161408551509111632490971954487663970845477596997193813240649623292139752327102712266950465391938679333415441360534705579243165712130825006688098953944455311732445956279231929321716546015279753272041907855597592519418857673487856720067844954193979589476818365317107269233500572210653510665031796539789622845686520854350165440043579037944416958216894606086187024605148051311186866745272619194506869532914385786520278088063335558320099552510995969899504120307920042540899359455768139699651537204919841289248138069219048527377964535511231382551538328870195811039331686058364472929283835416376202066324149683069287260774588386588677493513291005883198356020984221428601617028519318277810332478932373132405205148928985207962779298194725830765344371715751967486941328475932338750640766714146784210342254002015919773861319490659951831422643070666922866164671053163871608417154830187590616375097589451016095168821768159167577130249059201723417094309432224005254798060655749257290552871366688060013211125112728461205507724054438821928358372435371917690631408476710242337048705513051902767834860893450588033191014851107441527386184219373189598004953201193817483567892766324729282220024892239391121368252288967543973690495594222334198241985166207363466416859166346325989072006015543186175639596224044403474956640849804303874530813942571957658894570023956857203159582271449368963241842960855438191837446429428198550854618622587108972282428863865891066039658684072011296327538021285336124017558902485604198456997179439101519776871716682289848761118103120984302775244443065740257149461460389402131919026282070823286010278447639189676345381647476610895878818279227460896584448241092663040403803379097069147668069699716552620528263952191466660391161216045200151613238964249562195569606939159508729970047238038257662413518952221276393664227674366093248757938494997894656244449018896481338127029750524342900528976205727060603745011145235429756413607920850345004698345535286616372004985231680579476952203108224052329992854459914386147970230878405127797210221638006271825081193521570114897614765802586155060249662506083322296224262137848801175516503280441390956609721386273639875742825151668038575490192940232891504214922178952631260405736542862713964338178390411481390664713623800659877587596562218076081343390605438136319930115487524765816722636867066624729193293290365726183435391497632581679735278967192429687328748946568618297219846066573764335094257110649112409172724094339921955661659954427024134185255746027864777883411693336302464566042133873506186785495399075664337087032104948747324513883076840431498358111968823583455302425239758125240469883863271774348228888620529135057103570366632069380616909747409322799991897916589104320866881366435382604982951366251364834010294373853305245382447845652293126095002672812811797488508758228310750680856210508027033172529377774173706107918528941125693865646833098614123940710291793332709314290078530243107459248465252463995849975216226731094270643131368757824067100115902700700307064343784120099367424389307964593296464256646329787196175746027417144769572040599042791777664366861547673414271537660704338998354984771249931665926143824693207466082572849980937804871336440735759579207408897749524840338548658964013798594563952489620263747808843358879686255411525941182743919201784880912011540395690510437549281127406581043809218776301521984516490877554713517766051397629189221097695317542604011030078676158797906632045945544153837102487828261319387090644864113490885790731777847241848670984119531047694064606633424545265208511761876347191549575397387384462143522124633010352281864396677890924839773859569880767049845589901195788044717655461972245962275037178559391353844126025008153655276553042072219888851068781179563626571652487208960189669650504170762772161640155536067848865208605461962716109343261998461070695382622359249353823083170506302129171269908422539247986691652972404720896452573827997742570478709183964304342308907027623558301079376701626140850126434474204467922958952183435497976744266565329843903936589920166517427497767526724305809860226636485023502834754798589140839116637223527064286007078513021955077637754540024519232023294972404782027992645618092124149905204130839053373077087599534682148044853169791583762497168223428286826655463192125652763105351282497811014174673890973817678956253755320336613233546412185532241377265137192418334192336720658913612427030727774451167477794639904381752363486682588210492465081964574378937514152471031961720191311569939293793113488866822925274520404790637834349262490439736614969835776706594516327977006552877507403984260795320022544226248522689804403672443089823608028952645700403626329863838509496892979954249083982933723223047782143038681333074317649693062264422686877828912082784688528080058191047274389721514772458383725424171217074038653521364342283366252821934025093729830095006406934791257335237164812333870220741536156714149002233525385346165377283141855576943746319546133970524458523409572034899139029154073603460807621758788548944930383149814152880561109462663849979409241224229541497448900344473882922928362037104788404893974265581255052095380558984567093634495309245508806667446451414149018302226816095916991281665499451151403339768731957159793821971630401467483126427958539838329197993640184673329953692407610791821259402819968210254289424010096043301650287514810313277117649841530640503037200381246813150197156059852307733590776468255414930973637019737389272419765563636007613155275139886186856327542396447460291208492797624161096149522553873241660953068982041188316036690911757732441001966998552529333658242118239120908162919347932476555359663793667190889611083465912336445242187513407546406024331866364564267797711310409376537889592579313609879699563272641419671381508091862349373326706164369988210912796406936906141949585854720788247195406516742968862198489064086612565029340579447672664828521396402190552386749661646197955623130245379244244801991300492286320795730585239943094278453023238437081822430048048957925784823671847435762956979585755429542628331123847116229526320412658317814543499245405360784712700637527942447109678016342926824679469926253542997831950974133421362123656974235421536773193883678227119974515063777726083705472086253042730550028458994123305589124139047866339446566476169441938564490465809272228756700080969054164924927445735719455329416609024814955598640432041260750683821136938345114307165784288614279219686969109467470087372280025466932500306333625487800874951640804712975242496286970514458392904208368568125799335022622249072907808177746947051038895669368538517941170120092166111537382774783394230354853901440189161402849006098016825250184454368125895974132235547693623292794135860186475914055591206550194495321106184536003079435455451941565694189906573780248322490086397734314401709314265479787929697259445819236097178657099724677941091045974267433649413246965772283038750328742408729022959281755601695329238052769472262774011611845622575150787503720070350659633590288391584664021944329555813406640103700376467014114697222663835528017348203191186451516502548848834514369585951880722193504248451825026341937350714070925157100242499238115951303665483009591747733096284532720985122445590368680651903389122828643891934322206324308536717550175727009490815743465059988216776488616942431467113064659991704076164838487885257830062949458396708626343610050454068562875489430773913833397811474911420091098644062492170197187229075878800141998888241129535074292703058216047102526357200236892455427669371408527138506636337821561555154605353014411208150217671637576193168634898014219186023026351078155665236786438220228977181521733247586347470231350644919312234841763694982307085508585795129919185703236494823896566512571488682872657192711823016011622246281802450969571794391184545409425265390341152075650552031647172305322158367848572377622591126901600461017420306863611301837598264975973887495333612565415369525443955638455487488892901009952420068558201044684039981245568392417846656812105574315248547345002541282328517968766851080482320973519165568308241814690825963439542432162426013148028114019851633250100793778861778151066288026404545739697709010119199232147243692954762950044094170529854999668808112603418644403559849140970350461311374609409742521080404639348841664885716291103210778269486925972715834450970182046430959456732281634399145493536134017498548468743156897875537254055003717164552773222671219552143976302538169276211838150668668236165624626827705115037840318536674648106359919761710268380126763899929441299435954939294709779857028288550750121141722747793221103433903489489010655367820379898444629442714527298321732283623619028729781669067118340139510731407914810453057319132148929316358969247229936139757872955984217907770737413660127378488660237280002162536506806580315127880781379641017566470730724452509641074613939188295843060920222295377330566983061537562772570235741975748500880475652172790131385406498807969186800070280429440668729940754956919705548697715887056156798361699106186530581580073088388276721584209255278877421366029869684974661486167203260293268281843093957097747179844888775867857448295442394119489246403807548706056670891311945436819388855313021840864340645803313720851087495905388191008178229773464954015619884467514064478608884407583303765892161722535063031289887977757429391942937215764736345743528055579171933392294540518657910309411799354462828547258799456388392718503171369391689631069149590394616762745676078635501074709007369320418304365694312250711846300915505515941671849569750665135220554776054397185506124582460471818316236213147168813462674456899405967043231644716180708622198303943825751851163146341160848114761568329702093513137163537999517819252373034914342402771187527079186675935284286587239659299496844367844609339139367122186425720092801930107350911444326244263088997573552978922667729387646208591152306889922015668560138342200629106279939040346385834080330363469435930124251551318205152933061881202772977324264971230009555136132409464699944627836179469473204974335452747912089305201972236352849322671844282191913184572338859434134462799460689047164424031253721602527939780392022155205473045714175668883294051011457527446247183591139427315881643053282742155501050430123750895044794265878086925894249691094876446462438800115760172984061670627624986436444642344334346176147999295407965208401720614103004007361115820840610993287161746808042284406059883574848420431039224643767767873114770434049439669182607718548701042842499919834966366210466283630036152091937240178802770602445434311239726807808211099774378143590008347432981227309016407043629120486514138002459621000167281124347888917549557357854541872080116440728313878377739497348298366154815081812967702471401147359360469233700349793686487355908593240832541270271311428308415565813168624175713732855998365079376899256308503265946751901973443833591843202845247854919361770308447433880059888131164333880825020922812029194499299595278077370259856098484465333109679693978943694310452668703554699452331219932160673751580127649647291302027094317183065088444905511977259325671303761029716337712010197318767420685450295786582756600230331328717910263396107807072310811722606087306781442502041452672858551290904605975216218326879360005794275883888188127634817580616535846755639096719597803004221608170439086196569424986855912780775050285078848791834503065398990168561744136994032205636865007300712361599879642812728153327660276677356465778566752458511476208125771979369980656559414424545660302910941994494198257350902671357361915590573506232213178704652030290338785983152961172610341118589065833082330300074161099305602540570183554557156507788235203025131883335960929172076990182326448983629156173955041016096303719916975690896807741151763080208165104553465546146288009641795860143056357334192958567943233163088423912114447154075593844988281750237735259478779990838255249084394166317745902605920261115078669082110595751285145725366905096751799572656529937783203871176851281444992876693977896182682851716949817835589888337297888983758774221137573473023324527853701519854226516594489247810420044523053905068930620843260126477855124343648155710274085751374946326771017901786370948732300949884363663330549426669555806064253961016638054628118159772254494324630951060734333082234354625020154294660008058736598353501725409386183733400775444990255772064632980421901513052055322507190533418053867969373778149623315052411217367542926906002877920103047005612449268629515958092314014019691713988416200830419044015727435284299808733008116587782319435866046364610292111825386236550925239093886129928560187515097502876560834962684456423923449314558093837369420981853282931949852158455931958395082060218199585446320108206923512360298008912579120065060596178672577976041985576136811927121730950263525411368864390064345864727684744708791591629833206196418254368572462681962932232600172315773994340001026275213869931836051738567235461949536547003640032714900382239696350963568340523119584045962628296970506582332877768519684455783236742059445644601005790420854391022609838218862452235410912923582919416995302951722705302334528154989966980625220491916055043284216418488337303106839312470366369859881288657722360790394456954384930009925458334289273245438062215869970080914679420103388214114804048906064242927951084008823309197039554679426690910301527798012817995833883411522345433130727515356681497144877039495774288314269046276539388985557297536737681522280177246439258423637259206284033835456501650013150630428100674463223715176291436950668016819984022822646771778704420002157984370768890261753983515788046332948983100681968906987629371432949519798109231112732297677368275503193879083993947593443021487441081510796481385235033856441189106642556526421186310539702640400752598130091539311976184321483914084904777147335466666258220488248651253626710938595798131364702304287648874481165247404250414063816358399287941021420646134573325708544503219433399782722499730550185407509638850184516197325580658689285336221760309168727187189399267766672420338668857939548953320363939653281183338972301043924680764743631181123997447854168117442078726933644403342074358244994254431409574936167151128118958167403549461087274854296950477468620289329072248928517314930718250855464790209981294676199825499165866025842310086360278381770130559375276617919534437846447461943351079747708894660045674559354669042481176798527224303181855930683512745925345225553538988677377244806551897473070007866408912274995260182289323230312417857536351001681627971224543436917421700866828738776238841127094786135225312396175071609859550134959147156100065451113810660276593087999932327756789179970788446366880016937792645509770010068613874713650920986328454774668795122636196539280273569733559308436949409228726853055330182103547922460569368425850836787565096714622365520488000300271652216496771319562693479699700449456982708020852571673754426865542771707401276288710191135816947587927376714164354858192857905750498205366389869988553650042727586829785433332070899255518405097156146290259300775957983029379811222840251495755676779775393019958736628878702562011473142550789331665785485860519952515408163146606850653277108633177905220651694083223645595370317317624362044707821347545733103369230937432807522107934127153782620015622139187573787095087716650421983384181325827266827033379684512258769960062809942238882812080406952854130295984071016762725641031780377926529346859474095664310385475232790835308804559447778470174061304255607289508209575259253250167585963924492812150825656033117756144928880701475966630992158047706420410400515372329564836786550802545086390029413390802217514148070059856435284823611914967221841659769924223988762138933977399030693107653524003797884907190041027954570111734550559630292292919845510349531335700214699113014006303718552288416717330832018317216310147252934815940660286792664138296960579457780857757090812423862899424792050569448841520692190995846396893382507973528615366667884714600784386998755321032830311678492206607543127438797800193386324248670389781872439360514572281012485406625180853188862249836923798417079021969258219639187337157297174740429144728987063204544094605554033485407517144316972109920504686891578121317023845952895766361023461255017782963987282981313350459094659376933948389777098608455777432171012984289000459709325699178352140158948391642403377695470632571408989786263296286696479722660833573029638102810351604282126718686673099794346928515462019447270755233093811935874312430472667371695527308524767537693897085358781600090840618571665370049382315494403397941603152514930839949750621987821916205720401340189604171918650125800648118082365026181644079382186013006820148557108150653826107692599362964455691628757087272803444217232797243492659188990788166084404355433665705459145581064994610239540458630191400443134894505277013959396784313659095356879757628502732748005159126503926649498908644801380924240218362124844532661785932644607539351021159044222003134370276041367946100087242343572583359299006455416972879747316931796048568515758255306922132625077436409476681863275839956566054455198945799318971572350097178903197872119257375941244458939036879484114727676357142441595391101432927941641216848059191318997089558521152452348293274900410584080393620350524886437198753453961436513610451371966222834683305398509878569933391606657527068127941547879275022454117651967436358911768427799317005557334961658400544275028884254197116976410377024199853815881042114796084085297739386322960736492898501256583001249168699623735608315829120132868170485092336365014742641609059851339837284739141047058435007705539695404238325684175526543645424113977801869710150396576920836253094102615627251022250929781322983897978236845172526214371179196958139305646654040627813616594443204188374150234058420240563651398842255750464931203983276985429018498705826827482282667492494339852653594407266531698525489129598286306061099590750150084277334927386912292221673301196196339211782917920344146460951066877094231130296725901752032185054082986709411697792144940376894941629136463976413400629157334573062762446707166337944470239631514237807878039761704269926048869232995168908463479909006783604341583288954706040963066377414394753589329867194896605401589764903280425939764001762593428061752931413030028401916199007443185141527381112583789017780147044113533441181483269046618012176864005725079192358341999656714939651490418343502228928926517447796520018787156169166708722360299604688151626077553981765352352915380432536911474058142878396122132455108698802862880218632331558533391275469560575469136575351127613638315933447401682284318529472793812271798161735642577065275071476049855290447997528823677597806597209107891092502205929512014307101463669175790604372756203147031989855732291093079221112549058026397193172105235200298192735273088974294639801283215977160440516393776405589226419211355348366158007092576030830204588806152668389990004451438787805032234020738931765889829036593235549962557781544068517609678686457631049383279066891213258388199226462011857266490422350490552304932509969778142548500743420644494885628096492984633969645704413232034860927300156043466678517984747583778653960412853272001860390052746901587725501341540186764535558763517202322747519051428689834104464869049946509473438936327402864841403608839740602214833198584010214045991687204016276967702527847345587986886908399907235454073000993193564499720237965795705090585745155083152303347542631722844682265628112410460434168031337051633491130645696076617824875028143704872623536993385395609525893889370414258861839593581832728037309651080128708249836265004836820027814263393616282441469212135912223006458643254474608581139573924645734870554859761083332819347233278266871163428348675032231575048650695708435687090164161670818380203418092592193090965036748806187973285632290477789772054005031422508505946401648450502778722222286325353957560800483052166209884852961541146783209603188965239808149886672133747145152641463393120842154576899794809623609137362360360758522122088903685849227651112801209223399048367280137599294508614130708108340675884193054577570209377920303786519321600175619530188470994338211935128854502260063268711208959236725357810775501056754984048914725343348293574038928360369392009903327368802343442241095579071332335387562534595857394486926997202649492725162854155053329534643809069359512689105931702672555236035633334887225107848800502035559133508166930216934728273700139567171816863842901868803946197633239021745596311850478474495274861620988427031082916463298507352793843122248602280008506938235353920822885122233073434760578540104533554315817567782696041443520573623144521760068619868105196791362360938403492811044670065909544752775524071652797704123018689858899982534373232275737225121582707463307554134162787525408241204187028682564604309155335426493963999056917452582313029872284562381068186988099368580376251244739455922059139560161612160702458410086349693688404787907982894366057797119706812152599428759278227993343086123633550606229249131103904571824851810459127721406822198111963898687436951372548718345463981882999591997854876026792613591340247030707598971902422523071498812389780246483305908245215193820051071385675551354408209038029918815713341891194757480986250826749248856854928810313778548660158656582937368282826230972321399240793726639177950578358880649908286731777499927057615338258889460264810916395171266924199236888959825018288821473584423244838899954693704042775113806970420698058093159690368195871274005448263680264113538908881528689636326891137144796316641152323159658618218183614353549704981343401372613947215222022433263068939032820186586026518452344075758221998012405003160853069686269915317027576683270227072060013337967746440918729148261487236652611193623346917218214493136230785744879137226644797624884771146962309136402137937373067910085525220662204004641610880030592554616286240745703733525081557647928220368577226815676321885584807842390206690024315167885830729925428997416094883315754342966380777541922581308753347821184204764357045749491635472567030490232454489053632388707030575939154480020946310182806998485631243366815171398920401848784547528824602896435852739310589642968119576321033565851220852054837911838105249494281451751475528554936342388205213109529102467096282996771016193031866896683780971352436425568845257682767687409644748553641374664397630864777589921506096923283555148124131280212207603063884063209129406682694854479838838341555492065427923785143431138360426996018255599106822803841941689770813880123777172592672462299532532406782837307299909785497881857180467066060440410774120980619100292672130344363641491068220373715844850999003670864732987352055392217527914754530129320374206633564088701376789262235292627137509861285945270373063280135886884752750698494504977769083875627321107186114381019933932104547320373221811560144073437885767790386847342527628326135672965130666411980672038752732005595438212907157461579784591313510698750186075978483945776129529715232816503226963006615747136353516559188093161339915207078038275407671699895944968766044094590562980475970462308228948166581930493926360029194532356631437776792802667461884166758658239316604573584464870323118684125477160113697753002844778100237149431016072647476756044471004293970761062984959634791557472597371921773872652030585525800567261739519297993480808440038005138289431102453905046876585177188048493502465550542329740056995865413462419626516890682172823584841146130759976863961703122840968766776451594577811720814103373797470039746669784925547225298771966068134752364829717215505636763734274484559675308386279177109241409669992759720828357421249811275560182114189156727079164704109516062589570085468524171357363273830860835539340319127498227328747924110129577655762016226231176730997539943778920127184937559876676278316347688228794014319280611915868494510349417638592759266461172900860821311625086649399305592467798040680520783222195916690325591120679062840964059635206858801165395437619122008137804744953082749848383999209414192748133811849686587621299245777624294942265437784404603239977027375222877313774101633391698851181202720188168896866813205359105075370588048549304477710429907625675664808370501210253970429196617218369450760485078500370970805330686366391188073961393370366439797583947131470001213554145307985823056855477574974719854251441633749646979319666450327821563159305508003517162330931387619857607636648163566174502878525085419449899128963799935644329559909967546960420112738515987040127116674528888231704997795154138274659887777447701148876021048916546973550722702864380335615709731955589586835238747198415040630156649858405084853280287558433357889388468859710068241053545847711601711681043031242633377780962873455726576036205891298859785213376422482301897466320203818322478552932224376310079365797630901699071121908859896787014786430355962667323406577742150094257707930622498050427304754393197152986986675580330172881867575727947287863713257049032600976954535713896708451430036366142568223846933832923960852867114668853024810494760399533309131433063335709892741252418038050473145714323491790348639899528742051205222077753061821107003456057582687406315851652918090887296772087559465113446857839605553930956268905538764182007978589692896625820167118742631535329547615040359221306444587183396747837101220277022948311876704135342036525729573654479153061024432431926390937879296879669743947334343735549741289067542638718921981375265374385719766468630051357792213069379136480281918342831380696436613829691095989489776746291329170996769662639177688924986092041196503856894444647478821735072028192277178265455352077862642897796303004927606053919782516432939285214512247350174785570117647717257516558832563876409844571051855621012385799611915511422670883653504167242054703490483719729201524924080997748194334721482761473851895034891625972112403995186452531149765369213987365909957770508725382037510798238264175183518206302893826007810688818594423159132817201630385147904559268275667758533322136414715067472785062218528812360659091492077299796828039817137839556275072878846738228586489380980606395295500892526989934050415648578192950907186927491234299659987143955110288439527365436007177928047441012297517772446117178666398604117569332974580278097351861272386934425346478298900391774293668894691954462573446742369293941155902477251062272501057971916677397081868750977915168026041282390234157385429079737659745627042037838686982232536270139127136123643779690647057270422474936659270926678668665811139304576301008802678558589676253358819356293406745499347243361604898494437784205618510857950656541632269949115673954213568963499012709212694855502529594664968791348205643115863905502417288528807162811514925999869946830812711537771034416254886566399131844860543541456443491842896801959898529671154804540464876191756726062982450973445411829435198288527569080605645761015234481426317857257194147542473293085513342514330982286108034311805070168300438028198208433044093842435443038634732171461791365267163590129229589425921986198231959052671759329038701676612139052064759459656771142070989820332875485592537424012141030402146149040835080326830765956758125777817933603987274491617880577097109784987434582266112388214804124860272882435807977638801287539955705406115023397650912890649979319433293581139777977750391058547185347404383364497062124414409470620158681862783057072196689487615231371126439514464414994893529557043308257763080097742752028622200227001125950060679268649558029533303727521706059320379606473181993276237276879665886113027159141460522829101523619856221846241625329498701702477036134333664826107105411493177093043045403939527246413491777845534477231417861498030348225597695509945338460042184446695623211043896955241657613193134953656309994994662292374992366062023476602900564623861563250725279365709238112309444497003765753332844418766188323482408536371773103500002684149246389541308510788240272058007249905178826063364157255739246707398042287382505526145793151413797651955086570518034679922921794309272784734305277513660222750823724067707065901534894149015886244263105636507383507868263910349564006720456306530555734411018408404753381199199359267302189468810764988850437009480243514728495889022071930932928818117685218833877468611289100592081079752489027340086144744954008635889265536964212993691977262327368050110232337471701196614643654148068607231684850179207953920508140745349315990826998894683049409785142204971035322050971936454281875976942052810811560889155741171396616028423553611363849106597165943800592147447684825510052980158260630211595674887736439950931866124022730162654079302952334921099827674600699598725539933543673212340795228779452281636740533981968545588223916906703464008030375005909255380996039261091514523493166253500466906551420477438284372847933554767192000225821867499784893996538011380598141081425070908065106925672422999020861408593806013352516419637428545620808469170417345172028686292860897036588400459707355383474562824696037726026971625276044311642109338300255970311951372942235375500408820079887872145684501158200047807659187217576377429555557550163039791123470208234681981288418688264251586127663031714401047214309645737989708549561400177996463354049756248573096136029832059130902593457931213026126991948747412100082074494471659303115988918942178530270377748864437675471577474510767129459644306698117704469267296913746916019045096775787674784078003491626385706300616493619483548927024801966295982403826300716951289961979581808402164545508497090337213574100004410731275794575503195738532504774808960636678142749560629109257773428565478117518123266573384422057186532137014915020596550635289580282124610798835012325536586280134510248117254426611535529404240557195831344318041800972632211843770971922235588785124250394815621414480417347073926509022682465601171773975278621640814612384331755121992877904928661301563853612468729002436769115162313866163991340586211898323019565064672766792370581564743714822190981838625795965460049476740289397461585956394459474861004379827444632664967764995187002913698756189147357338815301772898216454317612711341242160444708197294676135211132938422382579634534184994957107091917751757428050115503965222477037087083586795136086566514815092734575148153309546118912386511028122100229974704790513106653381433097933771496923283910662639563833506370460758920660593647329751669873203479086423259496713436319822580970927079387696781001335309499445768861049785110933585126579722855059537416085922810887331674138850275440213894272895687364169797329832485811274674834783961728219400620786034151641736834202646966367404219759999081724871944804172858200319909954939899294326858232693776507873274531619874444536273232115914039994071509211731470902840665605590862911742240606803036289845542683848763542576148657549394685957232114925761091456958620003604643269041650325455082813273264588492064445271885977974990861018766112754353352185451153751548812328909371552934250144741132752690439841152437304650671635539917159040930129307803154126744641303423547846840504812083887335221890453921516586227680062764814678024202336603723928815739829628119218553198924954073402393038383162544782743756189378001129638949988518772837200111562767623995893051300419552790143043511872610424796147373717667479582327153712433410129100087669090453900213267200487569320569780847121831543701200570401262675510556994900342076375560284601641692687947608907746002222572093913668641762155887791407327158579484497860955478722347274585875330946716608289145879623440436655291791583974249674313006713527031071182545257857984863753699337915125247150459526646197306907287931643810972876986531732220194127820943461470249780129468675757660345107528378484207206055845177077829609932258636521425292366525767385399268597268164300604776297952615366942104980818883839851484472288630507970603179159027055424017741929591311225525513224873113511096804550766384199801836962342054755663341275796132757412974416038818928470778466758543746206011363486594339339079870443086691065824891093600280387578631832548630238938399449993804726627059655003060549273249261607147849119179351032228253587886481111016942095285733274903119661288595872063554329821616917648451682559822150340250790179996742299613538369531770601072976924196110583002708167447727533762732368104553607463924651081418435517497893069803552004785705640119143046888059715244606177929233659194910350753891379759727160565266962945695356660711869875591250264096590431814987412496235780744364588926984779357334522770712541586772763825357695457473996747463884247755091558845005626728711460375088350790039719964400570794946543815823436042072116647084461951799552194646006878502620299771433131738304168848280487180577962341006670207636423785157373689609065904021420627811554624849527182338966096934177012133892056614594835018149081987083874898416072657945364841187363599150873143955630704113343695907804953273297187372047793491190474611588325793606751474375790778849178835395197029465329672143540824128921961805269730474370557096521695266629362869066325153797026128982045265370967420505811057945734720065671287804440311686262499742935791756435314680850322360262788873329639385533590321396413668046171827734356818172514166509319140095175703291241983687026856333350352025273401246998963970848702551805762013150407070838363392574514656761530099172644350260331648874601685108001334958765149419371890968547184579479328740546765000870287296022672119186689446323161597765515038266139428790037615791105544964352396778917398904360023629642536898277131740197012766750259127054723541384386152661231170491386413814802387908992591509941320018759116668905950770994675499703219933786937649296068576747817605077718481595087877290044336969393226688764616852470510586172414714718078825201599940870381045127856547158975436372383503999762972533047069599439631496323193914393377995761603764648133935277441432622920082147441983980504729814410948514707382807924373250221588093483970054849530924412850389601008928654222300231824811693447770744812512883559169338682851616893378315385605429120698452827776995508988058843541147539373804780493302501881658173460091659496140582546198283897912402052696425268370780735737629563913373918779408145123702584191932076809765001232310338640535750944623499863110617617987441230284463732446669078369514674064362743657135108429563723041680534907147448112719615060384103139085763529431578316678748277018688079020840901332573798509508953986664818274869944727417665535744905898485867328615958780045114391972547155695407598848090170345930016273450731717546162799421486120117057941516164622377327017691974795501943590047851393144163056540653993766907215110373544321625268094228977617925663499033923541991231160587113803756095778807594827625590199181469605523581325354037337456231448193284619380188945018351593180601686573068292485919640372009181942299354066920413211241086826219080015963823111267814510477491687217534288102927713077331919047401660564231724112879265890114282729437984257170023667202858458625542741327819213848678236408924929893532291439639926399667175938447520294707028516702482828729761146204106507669706891910293395571067438485917371025895591683251880006477885885405525330678441674055720634059010091047738308255423308323712846354613261774818190631378190636388683713910718643355666126650106299092687007927020795496263385404599025060868192197331123840953354491829840475239265011503025190682832483481197550885701760102689252257208623537137429617050165044479803001656418628238087984404829008806169526524099499849520500218914144446732822741139661210436984394563601698955695483365156483493777831289931608302609067510847655062069896437581184003217304476024370970647580555722643348296856939178341030256322457097326379973147003058781033521239617973914572375617214610724085848859865329188859135154400466126652830807763193462824912965586289829444166563524264856648555977796498864175436802412690076306381021691991813285649106164194247055577337163290576034563560451066530219488992030540791361019827861153923744480904287410676587821437458285621940814387409185898789703250681008009895388860549399975754744381098593486065656932867115640906159065007002066151938123820918434386216556548854837876884582507758222640299799492342873078363899683144758277485209887812194076066564841177670763870942700758565296558983548526153370222381942090721109027327172325618922036124844257024044847852137515307342665994299327468034265379170735727658712165491282531597280864587707566848946351822063983119043991078020505196331409194156702590353694126118043392057092746634799474757600933949283206799414326382391819554828107985931458359871402932880774322829506293842398388061917238379937857609026133048022881663897684705943602916585153552224584038736562194790486901664500500358220350104508585241349326231444269600289825391213134860594129551201663494350818047777428303253796654355339165247647030683920735724567061613458572789045193855113141080469160004293026854718006588746798926119365234911459395716972059216494738162429409037426479019277278414818676518938217924445509605822387241116796094159227710965113810083194443394211750851142682030560816935158722480464254106767797791659367472347268074603317745607201771930858802609232556332095410621673109924521193135594108369223335915362028577669846229903370154993032076638801482189559407679432932012443891705701831771478361138203886461017028665353049547934047484721180829320870599373640516832695076023633038201474261211853965835987222581359172227057693036500538873710075171309052263376814340366957677268757531960929889248548334658597079856766899248998355935524974530522623023275046255183220195128688566443833121475152331967727629935729234935487625842637803718115278474274176896483198707695178323226722368115074348389284971332823854288059993972077502700713502421753879290572833190580830508231296513042672604708831627987363380544072598513125428142877181876002211709334339468789764758756993920998583834971872288201727585721875924193349086800940476862597372801827955888110253225638052746105543909796270991581860278225707566007228298612350652762988346757289896814028375776126815560415967422187808548631589874314367018627522735162509723479314343863408959742920437866611474948348711180249999024710128563139527612035638172561719289663188678161172325301672565523245812960107403521566972777458040658674201097787008215997994070940335015900647458712921132924857239600664194568020022011107547329758067976400135054885842581268318508842578186800632666310798286104625059569629535322820085122511939137013258792059917637454212228403439523760448209180094463782470875470882337826652585720384713583106175677836393716417432659850615595326796181968308662889576358945415465981067835835653268025512866056109645713847673564893869327473639136582241778603059001720994070489866292678262813704498263406436498630337902710465499569151013757511486677320933117547048578229786485710021466457932295280815291155192611761896960176786877509808275402462429693719696183822001010637158839972512035983755196637831421000643421789377967909944877037883769675855607013278051108930974462542990856475137977140791095908577045178209870212191228982187136772504307250882902885775682393911574007216667035369422854542755157920172155883213629478458496563428864666217059594811919826063076330355383342024541552103358647950807462371480997183846674678554225815620814325956817147244305829355202443517872556908640624757039362722006592307210623924679882547218689788204344930611279294953906278706955551390803231426836104687389928396968696247915020488414498098225185326649231804407123373980294675104520232362744025951349053257245624719534670590889551149488617786084761115909174456088872372034875239356311871388103728605158083884881943329400979521675802041693461993384022278831833047120007217091760567141463314516629795627614385280144478213328947907033225978194638064555413667675355570781561090351343112538433809697591503906036877285396033753101315472284226811500510421296378140214492395893148752455115986247312480066021199441428502163599753141432260471195751770984062960214762258862066654968922327402698616517569330964583042887628715624378500224607499968022161276395899306596008365046747223540090838138124976029730578992938861655517122297177440139730144534267068167179611389869852350978067939447716495965048691585487808375863377406378137144543657322083848608060543302826049042422729279445767678641849934044059994582230563869971976856103912869992369132954087818060497797638580778198032943879065071542940136461553022433879702814514241797726090993493994742054785793469673765912451463017238197892948517546020355440404650293174505979601130616362691626635818776846240818192670150966996124124038388385571967835136102088221613933285779067903949050451741588305683853750943488910211652652950341661393643273637183042736166873912600314190344658294398234692490907940163276343692730853488979785573170207331289303488661610084853484815059585828477859751876535139038723181316294356525865811625999091389259073664905226641287410100745656818504312003323021088422065520580748523148354394136438032883762730043336915047669812690430232995456858968229752235404677639094722113834273405428198304859775006646794001672265874565265290614770010351510146498135333998515734106984501221498977732499597712325492377221024507395401927080200941689458631321628472268721332978627037644205880780354034655336835610628841079800333728633580277478181953536937316353934995209853466406407425581453575649359100077224444984076635678739233604613897621860651132457971837576455427472222907592567380504367845808150133783823936944765433547505786385566383175288612698365486653627054187369042570505951187763226546822653655782108538560069901318290159595237339547665667545941666906371626598971364190986019317576900533855498690760912343099727815669364323745875263403302677042887625117526632751698094195476448439489293134184974106706431262188342360181600291214791164158136604914127516618843683119106604724624071913078180865947634997041809086685305223637575763021879131790069259042680279468828033397466817001417211291454740697840077012524280994867433713789947550941117070042197385779179219728975758280870686290108542234552636189609856582620355360247072071174150073404243371450846334343359789704748865222418285235527395244374016533358280395858025317778401457331071466877467972886372513488637272285314606262447629971753880924846921580762134350248955858594795523919436643630225593991063510841749390918452943198787262741678483102010746216897849649167323348781571427099623906741854498176268919211726692682491736681035470708757482072355440412500191415767093338317154069725450044424927262690225993296516020826182207617132458774460595324509867026019237197627336926413154880707235443251390415610314918391920681280075395308735038423260639093940274646650810123101874636062943027384467152082642504797115993246722846393893791972342060406033017121535918620823857894390611143353079254392292878055875384299643310022632553524731443374874336937949193358833726562468919283216823981557542649417139654406121735031545168496429651161088142177319974170036544913273836179214540524704743080877920017574980336864474031812163311460996443811372438971085438503877963332465246471795661085721595728711288566549283421520616228097838571239713778343566655544086758975344245201292296772838492123379459520610392853748722217079757166888860623339959606076420407966575626036485627409436481420995301895763973184015239452949934245859496017282284411535549614463209262231167508591225228199320147159863577297362982541637435168367837552335839284103873501577865924681442641812572246955711430611855488594287282622226920366016239924642830122596872673486079894681938889744562326303763935014942026587247048604821243312063909881647697572927158322879006584139438935946435539296434622933861138763508612024349278027028963115042984589492509675293963291048316089148517854618075126385603087697319398777784733074696618765828077013676572375364589901247083168013821682629374292607738168662931674011084119666165135934260333796024117913051193082424146595416387394649728333619452979131772613365288625782360783722637695775748750454994528650441660416771305551326359875410655067623959834736142849098065504402997314492174020349389526370728167009035056985452417486666366816810654843112945261207489009219018942572207528530497628843970745237593015706439074154515337857820895045237203581371637627286283923486350113675975267044895057358333747270324137907382942452688053887777994718305444689572519575017401176922309481079989021897170475366130685207268035055611414542148711164624414449335908736447076317613468286743147941461698945870164897072235783779434036879882899484630083839580444142631380852993058721788087176941988062214540293080621422186500190876358132785438042543406173791839996395219400915953201553794327064398038305658398765206162000065646383229684458594695676690419967542659217073306060123223958543660220594738626924495301451654578114796004074208415771376379247991437261887504774529247790188944566808836846233047136564679328609155255887054345898689599584198856664852760430727953831852241618395987922393311703412236839587104443803337481948767270158652266030614919775038332423315102560845001551614535855108273099870749035101382389431362124600563833290990161497482266337027267526239833154181287680438839684015170506560696089123028271772606956716258848592361092710385326673030443837357952026713850651505909763108604685582605077862780347398936270286451906118033723232154480016118301693142982768620439524422792399926295482282191170391649941184028889485456426593603138847982665826766106538443184100090987466820848291715852872670738911987531978028401762870267175821122710750451631391994591910231104777896488424628572683321557340336247697630611365033625463134310789981190425024612671928026612148685464325655972699504238322020785588523784733833471890755726390351200347596811680808723069058529848818436358257548506758210910267224526768836539958707406420405319130736532184464358214745067666157012148886765316073860160542085645501920733376848534683217620767667741134038952474421765837221306376714089557862003164921170268502136786369520757809707315247791133940019645974976256142472636816765778072128004550230984385294101405991766929966302293483350482190215110386230252232447220673520717159002421529695424693813179905961825549445406808353657784460123715510167570278444206324978344839195280919311295410160192157394632195574251134660211564027481030562346667036820953036091177866354482588686329953211710826118409855971371601459662456181505617903666750413324532713480174613708516160090784785810936409101708075110131860435263002961926351825098674358514033449112253454259386566575035411424621505455139053394095038629826819569729773823421022012870952403203305019186998211200088106958226144946183513222102646338734226488471823886466721462822091849912058251886820082527322550961295418096649502028721786809765279903793676807748220562157696756588029722498259124738446970321809139967219250600322163019437123718264984949727707776891270733738236994917806103951186728572221758413940623786100033234861791718667650570674860448981756174653903083398045582644127487810542025214337369370970371243902917981641053025718722593848867152705610046200850039503434004903692819705579595265862250661858604516006491672889911292756545778420768577643225485103597265181802824009276424386973198443270009655268812477815013033861071156812406698124416259176913962663106903369011702395565877104903145993567462103292809907039008830920335278835561819138606300675414619986482330271354921123415604693805024246195967801053117550898192012147216953788644696422514167549188209653428863906407345553132794018680535295987054635626928302415516277238105174453050396034253790437057214648207981337174795945715199484540840071542973266380407721697293625848142602818316948098582400904861390078988019802501617374846920022636823348975332825640192043448474704812423577841651823478819390622664192028871003764408338190138745398911343174311629608454707516675525465287353750613242660082067191121201925976034676119330039926620432658994584739580677433112972039361798919697409386158432425695940904716135751726506956336090411588485217544972437243677784614961350273475841358071307653052129240177816622912413891290317119402780605262203084463758576223877959785085521287636777470877339357145829616591476721021318306113277133417657513673501580607203012797415617091261387781799790874536570322888382780264921367871372715660586933514054557770101592363013783185757586096396006755855314389814263357246589937650158917102767402715734143909549362401877821331376414658681746348249848729971054277275440234500309531671121189931637928154677613387545274649972538981367431817168919538261712624591526579847733121329931418397821031252828903479587153560115461143419101775766208718974685863749147397135160863987394072613425047924832822933528190460070267416775971634071980416595279305859519727283885699067916783229449158171337691719735917404728046565018927202892522342696173225223494800613893699614608380524468749107753178922029516349716616919159030408436000277106367051450516496543756564920135103119391948695080448660269525986009254265373317544646059720803330693850666126454469931783414890142572321432633139721652319927764605374175672750068308665869487308770031499351240857577240340369795576804820368431646951758303781258270496613391947289798245280803733465767295423613462219805368313744554830934229833270213150720905085729153954140371993197469024077674452429377809436845022018983822282160416207950080683288123781185829130565694889823820982053013681144722109759432718919845700851667252618779243469170580604756947120452972088873245015244502647676311686470211409805903050644028678110451123278889510870497197786594004751839568962787073667132452990023025103881958410389230096966366048018899648086567191929994948743335220138864984366147185301966559510873690186044782797752810102168573030465486139802375942622514689455547744874318679317550049211073079131650309846631017184086003999680087006645085722152374494079128079752015773243425064999076596718109374035224187613257300663882726932223000500539544719983357579035877658257033340612937823831433130711484659227541551070345346443699723891066758883225833947849271617213186313267265057610706144795785590315703192706119107490587531673551554026366302993322194568206314016102815876029346765482264162111214654363905240359779035076416676953394991872488159786731911150174108048591617760562519253963495088825022102709421926283716819040870550066073774057696488839490535944255129047301841867403706143831473860871528016532320292416378382632642920555580782068900173278118094635362743717336040125837663174269632431682323478891219944182859052705596512823057670153843088038420419660356021526195077612770232931234018232885477463590130241513787483540548556314520986415089622492665746862744600816928706240935058724185270696974263060725159402043425574980093359430829075927574683290517010711970141009321225897061425506553607986626646921858723733390514262836163266209575313279068328414964099257109453749373009950625341926522839760506234957788366619515242481633104192225254899039963516594293775609598587749278771606337311124399218976882866541184084559678013793489639608851503552952959311409351689863605567423514207161116540710121820462680172943038505909813377133659479300863028590608082955736188103903714771443373304934564713996948764697825740275077211302099133616167968154972403944800620926910423501845934060132055430232694521928748116831487438315763924982066330500216643751991084063585351051483732097888690630184331106126906889901346664274193811206492616563137701335228724723699230041544953937128547675684129566944257744756986956927151336385019041196342361202642964204632883406214897911507752734141398389645416296233289284674176312920432225083467721539312886365941161242578108324304809919985792106204019053845147646232483070647710696470163490613915048236832750631314863636038973992754349202653889289689723551454847112044384781952578207735293172861140012923214621187834306137242631177848313318463803229041812417933151227068998232040756753923973230158435715780694391146444803738021871708423026459953067818368293468816039819045434233593503253390945980982792438057386716626858024028803874162070946322314301426685336498434342552897222775407854403478972549426941931551000741604984637642127895032272492096262817686624904527131217473349080630570192603321811076263737571737471479547927544081939338007637146490130263955259872713144362429649698721465346566334843258041326031053923011563754627469317719954001971889675433451690175474669047290822551219060336419272456936237195317325164794105884461347104708130327254385002125925945099038378234261811653842600582101161226963189362973487884169727974685413602719228039423400549231234851740088949260289555224013900673337941848267758477602097940527924764808654211694957338444673764958243450839083703146686637294818588793692864939886169899002205617587128989097732632244247159131635804757486027868937100836444742835171091386087369038683639959259927930256564422892708808347672776744213469108936706464330652054849729088053872878420923634488916036201230657034726163606571880504390310201801808592135042432328341658680332006963650896711902649472201157501800446470457854885023455720716774298896171786795570430533946432322526726358874045146481905338596691610316249927003699068834475109824419309964131403460567602614261140891991724011824035659795733409892196258113647098037598428681012636812558635440558259147534216206912491411490599756740819208699683738568024344455707870964772394082716357776093189916043487469927025333233442056694554332748809283813619168770334794688638915022040984563418292638999510377716395793710903424275862003313922349135061796481160589987647957341411181524371979139795889105296539548948140108603440058752650016970602847843615131342482149574895733327795025625315858825569161062413597035045525705511568358601306421461967641032811841767201772707691014893339657542538766527201882127997510394364423064129266224189028968960049567632922943367545329358149343235472020478402473802688443760481932942345733657402978184200796033458361074322401170698796898613544359455378706168671004926035264747657024246743922167350406250723963523235729131180750043694860066369637010769110526772854057771662250693230986548648319044760551828852851797075551699002758327755184408445495861438221179957497359934291990035004416127110180684569208634416936996267846677836489331903790337286536777602508274963928309388361104734347389951392486905465593849778172013742971495857155126283910612424149234068999697863234355373527343957571247864780316283061373270399391914375920089368842374359630305101682485285961238342547219898042787515226848461448370663260128795304608653561274924701498702010475637688917294925459538438177816573402352205799116888713166238875719691976921952685014298217421114896334356769194191656085504453121521962127569529987267774946474498450013747519808926076040598011918112147101318635478503464244057355581397949160275431413097485967256894924514780536826948371694388026361112649048846125228106569632110971695266860947760088682703733252906102935602291305500337768301134542659846393966703650175269043094591992773579829609731797906300301068134167290717028242727787052633843488301936905236862831235234562015120394389807021650116235899499360212565843169280889605538190498022687799951673739035186817512426774098897269883880152704134371638920510358213579254980460781541236964563169187758968043632325458623107737105874443995073824270256621336413665704171010480780037295453535410407700852696250292106693979962730536272018998918272257686620033631682463666033173764437894580797938709635372672658963518542503959045347519551764473989773238782773787428874436125891124851897578026389791962467058074117749698628801076993522901070681445499757396984662384575209328695794332003951492036323030729481160961140349927004003252935360487956983624213128085619290202581476176956033349480204569586432175635824678881045017432972542441524856020561696678850319133323638254906746848402214560075971642273492406451965744404910437993768312238690660371762734115963652334338492338457417414974533700279582873297896571245795983367357472012498589940652843168018314352916342570536435816933381322488359907347659369484026468476901868132696884759185712479772702821735189455662470595732014863173090347199966027268646804485057965687721781054554904799931127256775594021831718705794815419122379053046856598530929048014066125022525459178074497726326219584910471914548846979744781874105491162696761897581841415522680377109137108039854688740773605370330490084763142985009806975829242635346702178481686690362154282504681054025190255592387846905280535256402535399506421347471196663161310731779268756504265144741025796707365358796165465401841557539811855396238499522818031477202211674694707911021749177054817506711300412707994513295037588462205948554694504434845710948234513427463150885275710802656311270772513744978887679160210658181522862561036456967236715774629731914118102657609816970348967380917587624927706597423935084562125834813028103976071163057872309323752725357546746714771247717920986601609737982006406785327237275861745517805038126178517000572310692455908118449455390825448487994109695435658717394407566760769195737615627501792749722259518990870204848902603054731556392525501259931095536557417404025765862270412294781707110454922035078863604984066855186792274477360784158411199592578493021407501625608577444851316145589238734668475602019768919267978359425450858670573852179797919294263457069663714726310539975632470676550218229288896201928756586158032676037887798352324749437782617826391176403434581130672140912633713587414843633251455714204073574154429175204372548555298758001609065298840576628309814669632375682603682913721617145187033967414116512242402747671503318529833314288966276530003061700910125966286760583332763630675131290351265797961801236941846463561653339648820449716217159189867781070732034249483727865267858683339162215130484634749122483350731102097782686381299873461838002257289182486860061910240160292444975811868681651182652252900966748968866795249685822077597690461723121174831337215357032977008965463229593361750677216075538544545392189585834270240536733850018605641874679696171366489500910315366573260020188541431806509191953544622894153721338471495239923697688908973103131140961618304106882087297729856964283061668413002227285297641118661362523763276763607792568000492440702387831736282096983641259071624237358369765031701443202022494805190491987964168422032107927710099082816273220642012244418319780886255326308527020802190363072922514062095065170451966707948071880522796174606125299016597907727551794068754366960989969669421566528850607880897957993498905173317265419616833231293135625613024309647815474246909382035811296029884241763011183355178062205109213993978158174654043983182272626953314797932400524599190672382633327711982487783608696966002100650630334036001722631167315898224703398630035965247131063554045741500298378816783375164327335451307390836956428197043416708682563812342520710202594776223726614706497675245645479015108797659104386895903681068279064109268302486754626520968120757779611424984023538750170088021395767621475402486549517383834697939457151630623993528608842570191935694055311821470254460052750660185310339820316869912592741581490051460334950301781278955545476452407777960745822009924165989623934985292965496368164926244878310704576140712239697498010882387862508369604985434730986940862610879424912777914203610129503259272653190628928143148813233751215010006599388983948931074634095777586342614949680570705610031128472890379212558917427166205153527421295934756739283024548919659760837465574207144845788263252898188970595788588351317821904411743592222032926406329098249883752394576344426337111405689038032527257981600083298974208321648987767875889965361474098502036063748666527268815718581805025542726784714899493831995404511196413902828045056126106404524139856369182696917855294314126551487328965816764095106905301799701729276802748952340131272279377344790371708949731956606118025756515923815772102431081943126074813014541303598711788144464610642572396177014165278149034986411017680321538694172229010813962518621110263844393336810295130351566017539227358047045133253729002782944613487185507827428460164671221941143457850804204099100188893537970779416970951269859122082685181641991778066725537184982902930724269266562322803238087516082403780492665404278365550358849890283074650334857664527692982358013906564777274143024225103340294277559840613981390208894187725465343622167463253182303342737549405628134614567287209103230599505253758507573669984361242854128807614386222984602846566405404964905124352957583208962137904895536480411430914583337534047836845915375520346281013390371346106136658509436465052205631946661660841667090459555356251692459004631299996428081698001034635631309490088147514398041343001102271561904038006619012321002060776460749072440069407344855475458712037407423484726630243880652610158699827758495070310051258153499924834853042568863214285322395635398082837780497357711288303820322288780768470448158495974355947593399690117764769271539277650049518674848625448160961994903317574382297337369613015638305906135779099964601314617139141015973144752772375642863890263825728555559145608790327630746228053406774469973748869225157476541648996545949026349129888658520001999647905611673236780061611170971785422670594547357976886866094814036723550878392750820223964772538659764416408110003545878431688942566240389498754236751689112051091220629021575043381116151291249678670289541266501404614534884762722856964519089645266076640454303717290111368125699847696702070782447813615688875285349728191311735302176299397781451831478829795552545262866765667612046019145847425939154900115952464481433061759630864925892805912552392398599014726535559651433812331687606435842402707610060952501398799032004800982178335368166232770932070072366154960765919339441632274160449577415579471005140122466026666452837111079954999735627529629159611686577119312617120111995197040161705586775127311373605951556800480269776826124336336928476002616947911810456562749349024006762492346926233082481984791041539046074688726225554587474927655728115541116453561508862550833985236769816868530856622891436728913356155450615965147708613609643216814457973984231064642095568350960770230213924167368644917332572061211109874639252280744517152620928342558082981249846534615734334854125108480801080297036214869255688213387125369191196602746140862788781312043005781254588177587733969983588328086037512715639455020450334785203373968810055576555540723379896569254422602983341728783570244748628256836030033666977043416167782206460630313790719451510560123498994245539088113375516944895021522631872161262271405187227474355745174673970765234588189753351958301954458938739404984487794663112470085855793833101707698830425992550973305256186239478578613888950843084374968782896595484549541645335685005890795148238338533836383852054158455570150086215069983364213525029752054723094874749744115812535774088993878455902585167855910766753127222164355291149611124144641201529900363375790565697300258518022503760276765170068507945482946554489760023783425808928676022796126033419440356161981112388279535591082101743631487278707385168493337426340663050720926488514280316884296381030879199250093668465338594866129442797700259043417987925822220074283273263900800876977866853116953147357879190223104756495678994647643665516842962908287920507339030429234764348970378702550696630110195931613885212469950961188387698485383233874163574400195355298148093974501651855826493822594176472014017246409733602171208688263570505208282283670324645723913073736185146594276624522930651703261152247250436564865569562398824861226624153274056339975813193281746662214332562035369951529087514152595728116814194794844219336992989288667252951863869492247353178197446969646188931670307171991975329121620004659346202792660322972928982062037005516137411575901328269507903085963372893976590209451212122164827978338024467979725012958998474963288440455204771736078563778346846885668919997912650662820745482168748594699275391598433422749165083199482300536570762889267640343332874495192084704711865054113435243387747941072367602937094865937728522725076206931180958956447324182418313834998464884280920558253858631199525482446252971393919085222437323256467446314616333293611498109085869189942794667774356799419198391968750280382944367290968435944965501419014586642357181878173134656980077660873265735729781063352576066721759047360580662674401561336999973209994003954132877578100219516643055624903002949187112643188157323897119281616043162097433037154840693741372381561117066902535977240781991023358793937479019353644684228234914285172475280250199808611709044246095426664284603398859208998031687400848846101831405781735775439672424016272114017617139064347839445756827456940062519249106608958384004833801809177266379433665409011170355187070181779758885032668310514974860039278280400476078330732696430326086055337788724009740799668087788902439684622290604291790034364387868943985917047946079998224451908332227153907120896393324258625661639574238499997065200481935440522803674820438910634749452981097705749451449482096792800884819429920895260530785953022619553144765256466441331811603095465202541907104885696199107740670498190525462186442179915011220391079251758965597136267367180811464532828017859360158440399986910581058863083723090634040964278368318782846885210565247967430213994688189684701625811192790643483110408534971231825074767789905814345337290681697366306239475432859183294681762279837046586811015382086170070759386084716921377050871937238309692108885896836210615986202344947874900356132218752413818818741867227984355400794767438125014093612867617255781656585495899331446275833353105223893429744467023661265711434476305192349978286375971607219067445602153756840228240160796730471469580443916159608378243600390834955375359109894842441181536008503213831333282739106140867140881891287743485031822700961221407796207668935150203859773076988306536028286284107153371168297200504320962071126068521085531484944808695406806558943518506020574592149403373198249834105415222563354958631475476524991484657778194959982523513381801157415504740201003271062262498090176643318844511050317561402375414236678456520107701718830868975089802664565385408165192537911353959637796310246288840647894294668294778507602430539038439148184502249999084643632645064117969711320180728964771446944345931734767611510842667520075416971125627081925954357615173280792202176430501636090417168636689368505328366581028304512478441944168169152347933868687116034293791334403090931707209051427244349149549174805512405373436871566200864664369503502628971155513569388452414302625253535686294345490443039166658224726314401041177432128788014847480391186245736527992786205034827597663713012335094225961005456249414625022831317421190430105275016624134269371545490785568119152058550646913214504796612548008301063335934975607923207900503622194504101865050570757867263713397553142572006454111983734775378344418450596451885213951633725530574924259289970123834586470357167640434208164933539289878383672820646990482622961047070455145468280259325598204842214281226004957288945484829201205649507251946036103886755266228537138969064767690139165512427810882617391895013417232905418246618308391893130194121814874634893536759311681891745122251928278168857024271587291279119177949038215295737564568147698294934130137562496003295102646477878109885137485618732319143065429139738431358092130676155536908143405502966484516231272634197287481466057544990609633651720661009530136367237497092230258355129325339093278575976000105032498999081126844995107257512042702621533368327882352123347836703902955868995200837488277283304282037305433639179908100045830287009022805513532071641939528655204000397872889215350091315322305431604151676216209018419872180104113070503836981433425979201778702180721748732721949950142102360569391467675572566516336138058168969218601721057716235452278619598561249262915258389919368936906373189688627060985278928698223814459072724540016958739707172344312790239344868883301729867231910607947083406669682356588920443992940821028343850021848203219653976651232805226509540452776429442878502837100410227872755714317283421570586100484321688773905998727447760081489304194842011413408045834339567038455894061158502776289765483460833515726625979129842594441189686420730139154958988244672083289289506580835310653746772429474941258019888796740246687107566978078315633874545808925730627368828052889980512328585703242232891599682970935591028967314304233752256214246846868852157990203866738592007716394646639270665947456347837446458726691859801708026322427744088164831480360287642786055432017581335422024516030993944005150480158144172530277482909050720622979656131835485806406820163793287623481021515408666108548735293021647658335733832620483052975932902408278333024315529676107015341161751415436330931276550866608342440434363297928270173880097298762855024619787957725412252892264389944961049338840258230822205527196003908641208121072115558100653413961216114188383000145689922347566420766800975055600400868713056454930016066788194463684608215811976573850786379594183050203719028358773394826646453900747344800877312884098005295073965340255479544821681935813018121366319300332648068618865497077974585257746972433815842155361124729346590804321409607944539651069542544119173223193901252586258560198241353720781533086840081537866913805256767539907097765020446152636875552331365754434771912523160290973535500876840098054539377386365802658796260785264320233250453426794460517603552061169871973537529781336439511614198377170422323845061204400010009051143777619974347210922761793856715196833010498680364021619544666309519716004106798918862155286943895015905455250530271371805560566912838288076088667505109872370757758620904199140981696970653949053951328583184070768429367567801978231824403821937680769746842100309633433542507187765371655105623095492457821645455234450036683470821475411815915134040619338209591425672180365501525768253600889962279176782318786582531814060913509271589322157698290408446534655403350183663019270134728927082258509239330909066481072495572026514179052754946639483217871085859242653183763208357755537999857579744681333445593993031469045580951452164597365348098537163718135923774418100271113611372015022312472719298692731158595997734086087126447767478698894621257921652075034431701717096155417717449450694176183357064611358978797322165980093544777211889575244034618309459771772763694320648206692155249951390728380745715377257154727659890078648360634206453934966354875790382292317735702659667520257996436424780026470148097756907350093969960564677327082176309585749273254876731835740375718936320058689739726220343176394583488826521255264864650306284449037971190927215528267781472358052113626848517085114484805242220284133076977937677800670776740339162711472286730636022765034902108559114600756009945967483890044230480297118673798707015488672501097703982182296546848471386691514694024427735201950698527663797356581820981446372575481758565954721122136898846839144591961550982514434828043108307771646243615194617242006606621072939312174950694666843641779737556381202379304467462988353730300969886554115507950314104470088290585830898988734446857201498119014006494191790482360892437432539474474086433053898324306283465727480761890314202176888159347605978731582470273965339921422087134900699923762612258780884592482213620315096576252527374868817073546928085090334325508603513568879058948536301551550222051140286950044490141790754510068816583015965309468173527899827523714025737325131310277964563518510436787434682600600613827948131278884762858706937138335765005092800876952732877194824409253312679732994568453386038141016228012390211484331360008067276735802220872368261152637838198566639331398983489682656015900079303048472095696996367681152401424551835674975425785978049405056682986837900641997129859878709763863961140347792681307367662155460328550985238596264530780838724175255074841101244494256757155030535563008395977488159533909860452340378341497655552480107765208755663252611252955526761940487726713914304809996416669892943854849506031882197431470879529125905606253864620332320057830815220457496297727394378960220710924493678514814100226144180068363440701982531387283098864512143803769466950179079702407096862024878961421460668040925007867790429624279843453773371715749484111691921216326542156610224212776870788924972933085047359687417247824079413335516064127030222434791630072817879073078914190177550606612628785895932035037991211951551289252890687690137539823717355553115388953258655966615222186307150812069996252260650643290278022322717896640228432233071339177410810551133391427968593410555404861127585610411002701901155875338793594422471229659619464930508943419218060155586197541218606084677928697900988595196557195739867693088722076649627103658068853050678778648439661448348104488960168179524630930175815631347451238358388524581849964135993259037903709282848598077870397130483280159329976720106951259615249592544075332847856245268504019656199683187179073906537195580485964041320417581533866836211405146106456769249120262274641639888479513049841896410542877667395687344423005178677641320102794880460872554515397537141726126948868008462508326909109573912974541781473286389905704175281073674723059928576984506358512317486182566447409683637768650003449740178705949750162430884045465848276976704336782094465746777745801434206950265314417709405059686466952982452137897354057704213773810485819822173524863464651460082956946668039651330210284187901321191629636020443160781373853464092339750906674224692992662401432407664874315121050280067800670314635496649984069869785468027442627415995048021889721459486674574130395176719360918484826289748407273671756724418899214924258697923272182357101359103128566661495644587550580820817683842639678231627024898399816107572783770753466223170092071423295576696532744316151392230876461898321902702115251978986757933720144622576602585625618859940372072616733916905793147442676153239070960104502397110142771293654095875332243386363426906940555349359879770824873588445287970177453253898435735507229943243201442811576652020338053564759253967922854352143176605578980870435948552212552543732403857626694172974083052656071708313278217926538469629957306190160253560528277692153715155896068471559015346845904525210697447640225042321311844005442222946397628550731977631715449930067486225327847152842569364183839228609464555239137616755472568836068947004459194676928589572314343177218819998900347695909236377784234057464176463248267570003390623407096591103117558628932661830593970824072130822045357037576213859665363360657595191491118346549869757710379582912511629261367223272646910422792448595354056536376207005010461674994362040344693217254565263467922810861701234751617774813582932271325236026559660530146928750527221678895212652312206925222083385077687366011077694427029137764340065354703231751074016175156102169724017667533409811557739967642120917095315185489143653827937814812435469407546096557607766063352066009633247520581572517743120290069811365699188070056304783465305311473759909965175705218742098548617335064813116723074580964311893130295950991694318085062230475260403870948859094616705876717668843446059990904718414746014192240238784529496062693073636388552534614229149638387331152117150165891334263278917048735836420223056665307386782343089194377823813826181492369911491139555345694479681061578438278833365158578058865051020246955236565365389871139837424275103082907555929853930932181465203556475433541976360478665346710034964236321640625450364639799960649468921385440036050799313115352540065212738333667573426908260989983224026609858933473970944696223648803672504663709619297427562449046220153622715070168795112674402723485002239887000872804658817247055852604710285517502193151335323428105090957447957618471739175610785148249316572673069739172034928648955594664563052651496521515204381388510157162087425264246425738158861102044946222192045711281571708825720535569402196741153250362679994098013045365449209166085135785242901252563099918722326341787667901963573648963944858538259123560382157301047690919215829213417146129727603513208584513377628012097857984663693787104466584815816857169282308525043322441649062382616562130574192587460476330253031494068168600030035576840876281701480209284831385710148239510171550835718993128477666971507113102076912792594255920874212384869008994503104333413076248923328538158977969322536278687422762038323420812503898738410602456718032170481762439282332487901799467261064532421161979239123470594059470327388719101070654293591628903738364879259375898785013362995121357362839482789248867620011350480065425030242546064711248060549078999859673796700585281743354724967570417518805105446551241670839927317575898393902517957329716758337907739731490111522116833680343415668177285796739439285681080682253131463565728634052284062976519680780469317047832004393241129573552098549724506936984575678871711877380645310025063501619905124578133179472516224400063058487839798640077147075270041563170314331102858942978868491614939995799545393537276238745554221111090011728722161398495338299945858142351624137860744529633928030340785817543287494170209835760163963367758142574865425127842557412524794111946813442842435859629414552073937868128444001057317119878689235749208590989945346996337003838604185670953975008471708072874165975433467003157700193329038846105040900600465010470120677656098170489369081615986774946607178767572671160340933601858600547814984415375723731276323674351589074948566691235808258956733352574308682414773397115192084477134334365623069748501040241571601318827081686105661336756436682297241442716482335377087857708484512271432481109272643011187019161286633367945496879926451921057819808303509621416252506200772689774266311818760961563148733680887526917143235077189989412188204979080365967168981836756545190056898811448464196693224269128602498295581751607508018885314713710331334137744290326638272703154268573676614751998919532080405438356017775336799206106497383699289106703144472145144275344684936840619490534695017582039348286748795764360751910114496197622590633755206212702738433224249267522992763770314819365247783206809419449071761776779907167733648723584124871642650289425180713063078990617066010060944178448794678229854240721554529692763746527782410206971055957874797006073502153256492885940322646251919570777860767787851340223669050403155530090664723941701729653836075987732898663084548263217231646353134202622953379470604851080132313658356137207698450425003053649561168481906168376322707312147027979662683054361604683771781610604252317878659014321906890978240598713154011630398327870745571220421117537894460361308654458681370422669299714354191573737266731760638571239473036015397278245564374347185314350892804767060912525929591391988416386540494022210646492295141091711076355652757354417568095679928968648583974940926302685977366658208111127479644652143371592031648703893156151191884092199954602149367721277198023147946497173842963567794533835243383314344217782793326189467780193557502997836507819904534364669982960580967274074588138066104832132633546951377167205572686986552358191816037758301078402408256368826453450666409403723055690311930432032315745208022581152737833309054249864558995419401445245738144337567682890925415086163693362539733959612374831238301188249812183444118882675881365812703384735671546259582648454286011221600397048174838180383567044073430463767371250902263468848335154414831330738501412172387721004113476798877140422474527819728809740985515018158803410244044023311362130669105399155542599212576289234578383410454656143131348909998859272580065621265597020371124721850241748200939891006325759950836773385723416933281292449491585732332245600959316423835695896587655783123703235392313487589628093276045331927270878870002744494727917452379697975397334568905449284396870557578231967188888650321828760447713794891510411447816228874913625610153090869232871120818534058372778469924505606006477301170782471659034341063481155141897943530733586080020176052899153613862254392064709816364914787879167496150326627142514505994002643429245657628773670105947791823055117805765771430727760460891488636127137879547148401543958602549188820519164402965760370968041613852260681072326129256073236701510529687144203673455573434527138695405086348127977477480369716818152034743672984798502668775526522176697232344683194118174898079442877088026123389401736745959356286510960266822078483901961543235971205620342343254390870318119351037477948596086903978453984717404724244666091343665250182220608077920011820390803624955398530389345718018295788046863930657840105640520236224982163133349132654821541876807699442479408125147820285327950501392441554514717490980119386569988624685509624600319975323009992658263149904586552438001305403198285194026111215589605032563756881165260903267259513868331203356633493091664245097039974422156387862043929795656373313739530790166242034782984090583166209442204633471654449810050913533137554666292900109823275449748624521881751786730274470396445298852201264513458044144970796206868917583219062098757447217871220439159889695572168212425238813410265788076917236233937905427936933852240721190126602817698774381557106808455963214671031328582375101749194422880258718682674327736815235855339089125747080168461558875653938497244593946256609469988442733149045831151904683385264708888375655056045643547175746864236785372619081097471903073934987125420319097937601075693285469460322158983481145340761146285885497458565466202176552500839397708082302968508812275200200085804996346818643496015145949324268479483671195824512804738186858398876214122875786369403997499416007139190000912625636945299922262442427960432176068360221451067708372146834342760540404093750958575409919631809876246717905585239576191504948281074652918623885007909644351582069630736142875529283279007569122267855467736816939382527597497048888349911987991180938411676246854051925438992789084612740129845835905146419313095469024353395596622201688837775134981515301989411722312581761799339481263318070230475636607576724782373816504258987536128120120604539589126406694288861745551821335741389462776440132645495312505430809806451387851680165949880962355422974454554058551468474069540463772686615506144837994803306514388551147865598534366966003545088038642240188588543348745064359371129252040363626355575645338133815878971844896079037181312497731222528480776849894644863197530385569463330605700800713735385161602320883429167103310208908204218881898354825337924121027340025377751329260835656704170796903170982992867689898453815641420833405166953400878619096081748218775444361231947622516641975289273840032783555205621709097871799891322459557760075867094035274071650799297979332291249201824955067661874268834760468476134308680438511092282739822202015476217500771244930936944304349988111879231344967759569078359975777429728306518915043574701442406910057684320699506005154843922574556507459826152536696291121799196248293373936916146949313679453931691217164120795356118833503381371796259936126015914127097085964452555130924691731680525386566405461936373589217247497166303802839678639970289188750465025739183559496673118340822945344909051304095745286244855389187601201144677654690698516838873126189407269808566717147685631838678444719022352347655998067965235239424973879031540994149406316038936304152989118555166725719800916448806484278531576542611390107999961155693251660670411934577968429466477328556626530507776600795525767031108877556139505477541862952624442730506739910502619949248156101060682323165893771530513865874228173955380461650055042614053518076432957791435587110410846903200040815534384051392544960684641356777285863004110731317367496986412931208616167483533683854170478793214866460565530656186123855576093846382244960386137917306009464260818668005062509395400495191572376563767689859473330811771665901896623635540242677335341210469366827900684215874363710082740833671738481152888201404038491596633348101106747413643604462941511272555469736425079903793551672530089112743718381904942048504988266412791756647365010329113654646807144115745890456762017113516032184384727285999424931412846392152757634310451073232730964290812072065318601148321333451066662140826796724554783078022262742272742976029628686615585025781105855258459877779245165312234377130786071960555236191269377514801643085579078875242984630652410929284713911281574728383380008398287524151434965765310867501854112631650230447781414414676735065242552923635043499715559723153679379660770892438459486981393050748819025982683131801045096109380612572750404662416654936503650751764720802696600303164568682225220597218458088817835961078486212002709375590471315343875394083826625657263546465533918436473964256894972648768748637268208946425030360522815551719333674543683128036682955573461551398433463730542808033509301273328941371707670703940101990138941199183370286991700710768090931842504795958606008063772722158316904837652251844439730194299396135140161095948319853975084906804649080877423991770441973988880769401664094285598767126255018673550670492071049251621680768687059344640863751771699556346948146510914293985549581576025851039805407683526267978842851304149226185604336240758312825320922383109869389436907875387331040577866390770265467649953536764394842236589428971671426626056116940181023455541839408727641120488072520762062753846486222165986029230126787639486773743047221655177253195882161707022160443792689344748120156515931731914813891681170058573202924109675400669893208286127896439371334616439936126124341488444019438574895966389722581780135128257094455434625363790082440591425075319365635528806209750669439788875856000528682129308424361998173857490059799621121361062543618508846296861612772537273517195966832487166252497270580882146529184656881241767124732087509924143503777384507645471416487223198416351549703579064251668262671994571532656985886572303427893874061878668567968071427671446659272704331337306451192537410561298194473187360334497748459151781638280685783499180822142195646718264046230451976061276360069627395060927489088537780795879955952864460758921273532021650360384871547200703929724395354353271176385358766556644545788827839575763999550432133654673129549963190248018760746179373140780476095299427440608973755195666151422390633993941302828381356373416024603241823242380089136258459362731424993909374307121118550617032656930062784432771588518828734702243628234715023180242479104282385417616227512577675479832562199220725410344062628221326995673823706148712195355966257444023873342378442641598594873263740600964667483762665166979458147118332960653079711129618291664420428333287707624365914481697992749310755572619285781309117967205515444946375666447084770741693988427861851098750427104725070672916064542625763134910218687015328770089253923315502851240298440184659192994805122831347622132276753982973370711225462563028707946391351712467647231612772059370215862670472928050764051638253514936916092608437407548283644220296927823639626265837313497708062203523480683253058567821094911433465553111633124282145185607569288585815370470471327754891579641343038849571367985955587024988804798426570628330373718035210561398581709082987918725890897960425453648523917814013256622215349885194190474944379395236991571216339369995569750246688390383339589802307121068161310337491601073191267251196584895011157283143843224496231751766541407250704095631885285850071114757891848663930454706231058234714292959895411552963583455997883834975583353643906718603061169935654825800982187880904668339075829851438556968654205822773690240653608716928407837060547947679658637706764341699017971408027545751329284975949655959681314080487768183140693483708630344501262875766913131316908135099126260087386061010381349922674426255821515621073837909586292212151588460722191424658478707445978491540240852977996124037861846915282247596080442736139429691820462916143827654246576187960631907684777106155346627201127330886834185498560366791965904082943503324053250305687533639615884856944067069794011854756612373242175203901330932894873546112306786866671135750793014628240573861045814820044870307908320892592482626009445079431980192046692625115275312617525385976688658270066986267908755623581917895531647054224006694978895387226942691748184920498257409253496718975630284861577002103514754034645709412866607777129619001957732813552318127833778575042204457185505553664476921814116643670531877798100779246748050017595472952288908393638503594103111326182128291192104903254500954396668903578265461250436401190859307953142253604720276519055318719335056250888685514450766707843565588028716143826423098172862651247156600535168566378744623841437862502120131721356529979625356647474579280565856005554161093571834880799814406239824391429527748317072316761082709481696633200542884187192090259846874021730842427408562365791143023938632189477626101846944363616947760992827392816705043533370506885890549612989261665710520843114885817044463479391932712089567321343069663159640186366310494187231631495328075032121010218580768850323485635538088229793039805733077292297930211823915182387103208579756131416632176750662155471674733971965298885246947322704310275275877458579686756083593444859874161112915340124804346575157103604428145616679511917930685973128136581028905793823159875721340244350694712477718970763365685364624840170630860819979848207987843280179100039277958268627509979837178089043675115062879046252929004359924143117513356654282954093266633967670986840190558150977535247699056120970223943509483343690954280110734037129337790029936132293360927169128714982407857637397727310777232725932613365474915836543658261812853576761172411102711513012811027910436650092493646731930856264203931207192316590935744431910641167911588014689225936896773505357293307883715901790338348187573822835415708753838401265891605808354062982345018167908942574489120994482448981445272428930101129028091489853126713268862332420003164489792601369022876830946764870961270799139629732957769839686487809662831993641348024376183955694454183148530044577779196709116962486000304446741675536567050096360170098515610490423016887342944061988925529465066166666889537876213848403270506395048075889051351561056555169036970532657456189492458059747617678473520657019219883361094686111229104653550423855476892580196343292309995810091359384409776371211081622173720958491490838851043825579374003888735523963420647567778151833749571133520588171087757461398327290411329131631279565813077333347436430004689032229655671976610910001314890043647041678295274020123189625695392401118856268052835078161457785929786387624143412813394977786026619514908927501099954564992947768989579228936180581172454972215950221346549313545234869077956667353922522577027091881517627532411011572079899273517542197586893735133951707507106325287296914969911181322728498259718933451548242305373032442742637817606230797072108768109835027673671225662914746417072990817482745577085598430510825745669891717521088375662272893085539888434748399414815387045635966172991278915676272480802947018685817208341688434467387841057676772802484158813688755932642546661156169010648025287462649697236512060798552165244757832612186664688182285133981853940125266763228056663619107744909622551430937567982652662496963293960615526913674285158377510094017721732711795100473700185785567873968361829892180763209759379272235514459437785653661641661724637393842230954991241351737486349812616398379598307033576250718075103161780159629350160036174870304552029235531751033984648263920188595959298911350192734847960639545668682599509011753384628649524554477713305368281173583255062625369652248324637190024704163593803593295909600388684501379277938904314550913340475336712818536240465515758976448199084426502850241404484081024459940399769599707969378036184816228765359174152891410549701626664931833473278341017571802128713345482915924118953134811796463836371432518059739507720265657648268870538240274605176533641703385162050391101107743516689503206147612297648856575578415585360071279269050595745925511789086561264322666901129195051757272440931598496754111229857085873576953467748572182940754219881864765983352841816320237619741042719506740469110088080444144501561340189941296258556995534725095825845677128050124007138156833563220392927755650500636888290830719341291010915390988509408692480853417894954702184477852988975893235727427836696368432910907931463332849572992563178458045587887022137617405496920750868132886177327350690466685386131176497886070065979825018770159499538035285542566250732663964465230166552116609708333718883500492231745660393962023616464490588335308434801958769786481021837048357560027480057746510684437036157876484978013962120405371648737157822140382415154922468403362575658531984051368577640551117453342440683149794820639316705245286096881736011851264960558674477639196769933744312668329463269190899435267299620274739155203987820076109661534754162953623501114491127565420663101092137185303994326501582766914857774770003288669027390410730293028652853966321803868533400615940496010638332910470263921126678739358054093780286004088402480085684426886326834046412856249574209024268770894145233199071549007313253061956800430797388202010940993530878941324156216016568808165199302999477856443262242661968614232649382279392683047003356682998371877391764014923730685486162873278027591942991520314152847106517433196156881182028528573581249993940476983269911929103442283079728536599296260602981072189790389879609496524675305086386263971790548770149373393863841108101765778938611964950383516423835377716759560489744563995647599326432439276004837826256944528657411797120834150312360196608910440153814379360320282207751164335400250460425507007537995532701418031377952767661896106901556183087051239864831773043622255467584472008506520789786112092313954475499801142216559450781484332898579598025074790062785661900072662068484783038035199350547925149279307390936023002403601193281911961965469702227352227694340785856351735436400695950292966383786285751306342212155767040428533092087291248852631400447685805971558425069522163930967994320284347474091563132716174365241568110899697087892661891237740143559254889955319677308667924777126390720471640689537844018274002847144520382160506472226112295212667121660809121086560767607082281082512286917744895668902514984314877229952295416574250845180006518494873447105373894405622109617010434523681044640818708383595859023886347343138402425789744461950783039350373276285497919685113502844178976754094916943806229695374262511516423817127350408089814395375978310362139892685690372130168719930613061629730989109277674291010807909299926857644136106128210451947361273758900969950680208695597666325561767419725490869225075043319563924503485865831438561388730395254772926738800869393124002064654080763876127461555987408282668854563025917715953206843412667751439505377261362387302926685933250225753080199150280896523195405949981029853605766272355831774374233487808560428478923292485486312811151506727240936821603794964362186581683735356226111229853078228650050223812552398175713742863955918761408328970385675394117390373998757343459338400194998109794946706648857445581139658970826493561887128963968989876801560143077112545083963774882034721410207145673658862017427756781838794121037009618319496741825351883691482042479727435620002059903259585023005861944935057138176606285512565342995724587327763933332662392341042134859877805379457899905062169400983478248667845935100781385573522757258936815773914393910042868982467582007501378306538864853240992675043852313192619765186117317384222676508036505178087466198040639250627209637596505052781247813236965259316071227305122527654505146048775778966328131500540383886504708479064586685951708999282139538982722101022577268518677020842731829792462842115307368770533452425322504019374600215096645649259658711172147923822208511235833574039783495340537779219364203207273732691812060966055522190714693846193483036049637556949631922898514224494197438020575665433426694682973759512149565655624669611920412731349487199213888443006003105035265450771734516929739311359001243222780542810198586037528464316947076836853512819034332797438653855084636715595677849472566795353647618414408691620598675503893929093708911957916786164815714730544591811755630805736046503811806775863091137529242948131090325306620197419724216984105822259918611954984643691947718821766597874080511266595805554614359475547646606467186890361091050545779860200472809577120274616406593873166046792761153748204022401093592649429498732363361148293035135729436412087626594929572857820465666749360879752593965800022634468209146634333861512750020153653811305365310418790979372705375160467295163027476293047993698703452556441952394233525409086771474146155489248342324480753601000056257047606441856887385160708401732630072538681736719556707181916660878689104594066031380013668132420210414187728076317302522049755614425552652306500933499425037844807286324659926852798841937006914504427138262575916648672726490114455790359770996112235847301201429554862227058589487338673480956213568753622682704721274360635217312382951022092164036529321441363921072820957399751910523432871905901716576982973064623484941260743866756013222342728009819879002164044228503400874077231915165948785324396245724062571241200136302104510048572504793150509639187759253532261080418752032853299408276862401642666188579998389771884588286427932952791512936593727439541147840761265450705046316988476090660568390748153781094035061244522144346920616553277460739854076910620138555598797558518698548986458446206076450396062439360234371990443773436462422094848045953037805244002149892820059292223622919862841648861176935441435354492571675866669189860880946359965443928817888214736437517520432085640021851286379878083892156282522739506099730692939006107840083928956160961338360876800315914652274402019477949681622412046465985754601788401716913412790655689462953435513478504642032822724718855119316099020489226980166960059842598250909316767226353686387933915524176471431771466743994331946678392757698389250753861022132580167997838026230567594380750653628527806678238537011488075196238977577322434871844261199571738473768750999904426941931559393551935068187071734403177402471640513912914952135563941518455382710620229553584905372519199145456229365110776165245227216195556129785139653960908773250988046136887834700759506345765143732746436763581656985349668219790567689390665454684076970280937570704374772077152967931307625098375518349279474305790673619472252880847028110481804201796004966390815826504301273486006708012969284791167590936831270417919869696668929796689303305548732356923374564660335129032416317746225269781895882168202567886391247206167937363973798390260308611084200118651506095648147354713424263279935932803506246557341415077346708073622272804980387078158130573214844741441141913687728440676327946428913620406354238037596179495691461316274283649934280800630011331941319741703706296246288360954653842375445627158473786738544127637135935723255210824323823027870715879207561402387453298448936548986911719305848035874940158303129636860799784945542138180583269351665791385556510580262862084420870672403995245571358639756843370623062627613284674117930250783041801074110933857967614570660381759482713647931330092325348073057151300946730632529162202957798058419406699411651194548167698806134054747700359925068982675608068194028925952080865285872413022800240181942532544202875272041731622401071755150978463707229116208203046875541539570914531266276406573399485684898567468888834368429787937283437605003296144141760251358660649987274379340594505804221900039077065104004222253874435256600495033841824400180567983169184309305066463188358740345295081281453576125647927987553085535762289243714006551809333797589028640536715267332199231769065544827304520106689589056733223097720136302777239077030763011234870858992467058143267759322781531710371757887673074815072216484303976752007188347180150761496105544623749745617354967571562762173189905119302269660596181120769236241470540763131218633442408080634800281648089763474025229433913945054088245685190983590513769336981016825089131838722771361628122896176239032998906900235709116058025261201209839384767181263205163188011293771024202937412351153507715524207137915873184039958429250679304078171467052377796721951293404847026439315662972457762059656412989568438816243180626584673091933201241335259210471725942447976323954090393856074959373530812245407764588001311128692533849702620449481390419378647638176778732174130949596939856309281292229765923392354259324411782500125338104503477518117821698828809764697083291427305634598744285061464821744421486959197025857367305340537060350254258678391866433261765032941682964304628091494001319897500756988151297732365620689024901671212549409430288676307814392775108479693213617638492341715351054364444935142761546618542223029121601033140998728369960946623184618961611417051934074298202386301112390723796372260983299529642591963326498874474430086481778691500065385066123625912164348567456823092068495813529967721363573860026095153496724825368313053730501924299734586661584250609942018555266552395653560683902090945054949509442111352094394338861352417043681787559854998903227999480863029590273226956788467067299073898940655893977621471733484385751376332138394684937563046104302056090707794858017540004163192056124084121097115119459800987549480450011761420283422468335200908759052241418668823169189205755932082582352889299737968241591535750326748555498221611817273235544868626554869085225341955365378475450957629227224651394017513206575334544412980306785981494550111609323952373585672162642323611270005968289145117439248100015527304754011720437140833479997635548991615443951452951309762124226349427114033899153027904191092540189494700241912093864324001524286022530076741255329050956295843837371766215895456912576580745424251227189035381658191206011096160410112574207781842999251774485017927066866586091980076294623607971862556037433627196126573402628957100291339421277178258130652564077903261124670561553802444482985749652220410004908693255670009402894059113726786614976413276426065196000216235095591821690128539269271096887947062245352520483175068631662992469682422014893853184338081922635942681328970893996938268651783889898615449671752667006656182540185194693071806710930514447132444107049086484284931859419829010061514086076608131586022791154054358386454153741937274255125986497559320337823896266178808115418191789274973572258089669967911908222706415526223337492859680154011621765510868621070517718080348489718510944301329175190502328611323680920867108422383711880495551065443702298201622474624264507940210824567842370981806309289125455059137612839363044600486833208489370711363633591683518348520162042234526605509162310265118376661487512729790405353558778613371775047928371433852799441843726551069476153800651018183924257403382591447990299459249376300196022826785002493284226394109163540524046518058194033225394734325614257916641051233934785025379866155070882191356897299641552633483837016538069177509657197630934635137901217043374466080606774180581459173677013490180542185977460295339663155006358635507878262894783476980700833347543441181738113660647625146526296671314671584532200172113644443642855795201557464590553862690255739934480726693747827033873424994119513314683077824455601680796526813604552188772427014752801464865102667896023254326696227644482052472794790132729205177477413657128830669666343703309156781892491279702775473276446540398212585038851633109439454381300125827812646072640699161573209850784045099335044381539646268102080747384514911503799972111016638087035987274867210390070633966862178882177654595769250123700375486998049505524324119155390123186130071974046485977611353995369936688858904160019586059313071123486703587590297451122616838423996648847464083766548866807155172095447386286726094457886354285933029899026809603451026250068644720730589435745466396331923633155585864722385358089112412876488150754429111513603082384218680444491598880542605649880903995235781307759754128903998648573837944590262741004992838725120100260484874791251440542232717532988280318147624223278642374285661250313078453423064449757825876300787159957125532428766631810309674962458541945065080162086083334215654735397084453293524687740316787257732279868055070494716383823101261206076838723029728290990169302157205271385507840211250817162582095448765581456243174783708721423282869006083322820623872031337194984562522145461950801127595953300900035122471129822874694858579255989308735615486099102531108147987835767176397424038999576217122625045710937603390998555330204572250690493111931692425727072752746147200018927981600649393751313680803977123810701656426689155315084154762655531458433081238324742245860958226893077800710930215660706102458772628209488853669060944910198416977535520672714639107222156360932647735239812473729263381129789995455463113108297648854306643727575649677155946291332260653377682995335167966509274591719106672410796444129640376270993162982381131054872275211325303860188040651854857341105012730502564378768295603229632479422317883713710670308298931766652868205347620328430250943363841424401585194708142849618290468913487781595048429541394646974382072962646526419220480369041275971804926774667341924955975149726624615121607297241214014073248465026595489038726055048836328887140956727305351443244775213771124376029640497981467825509340726829708751965545101118652385072761900860282313176807207223994785319139079161419177710743587633085988066044054912109243210145363165041556318470617586222726026017529631747026681560076973883782131722364724631236123061851827930471905278894633971898375601175309222060705808462787759003846494368497024466145272856819428629936902989999934952024730347511888594923505538676210642729307220423589546974940862725954385640782391411486476570554744247345691549014391390631558541800626294714023900112089078462936540870311113320557704069271259686706339097490832108455103567201133821677901394435251160358672740722323959930441489539254437343213401609727587218387636964947941340331500281036587046644305615245108396326752710871367670131427730599428739682748334729760534867762982957552473060832562085778300947606656970540626810804749317265854839608462376029496073843258695903146047073346006467919581775621787786942094844670623792201750907478588163947244297204977494086298279159029050490267663232726777432825844414684781248280794673833246970893410939644492190990323997164367646955194080131485730001488532528665472641146706260082711419706529546125849524280320200537119741081476607403600238229784016686999364732457618744772357656414873452935195877617395894220026091314642447008462630775319788200959058472545886291128652646754761408675673590794725693958987781783768172896991359623783641871886317248888710941353570190348955778073937204025470610263167633177416498495208771644590039150742586150164810350376578951793142979939969585971601609269063399663592599310542031049433686546112629191051349380952463915795661904038117646218378695557104431792959613128069006286298032939843620244123763491886242555711682684432082251458651000327124626017926124674020331518192828665080978802468800738749160403231104619745711934505467235866728416316155121469085976861199232821426475190874957960634450288799208089654397101559325398522198062069841485526782308123050507177098177168200917315993157713432380811938570971578268375622258047147226777402211480160194853081568571799705037754093049103298557865004427144401424839761022951164658789058468340367051467318530409503749785718699757013481622350435919740762647218126176588027423443164504721770119101386501462030477978277135702320058716102542021164361030548517643076742012632378918276361325764872695762107315845422687252500449917252790137144108510341740333999235360337329542839262936283504343512840018129680493839107068784936180006137153809105840655030848585988377812975071001512949763076338535532211445251227284117554021280745195637880445149873883281111568214105123633180731131894601645102485669805900245039000928963298046827711836033780275595809290150120831890232568423334859022334324582045164015252681097746067432001629631930775117980385152035561612693314702901003473105770284708588039828055226165227866641545469733185372391098038670564461459140227749519341059402416805431016749749551458068771740012979293016899987008171397504851556103173426073586187456114859538110077360014664564381590694362298659538706424522147577794870149685457287891166785377347822704419511060781534205867569751109646262540763216173563168545612129198341475262854270719764165403885715797503983434375905643402391301508685488133967320413410218980272213989436599606913344875986718752941756346789053262188384457284762637485157314867097581146671746836957777478409733783140507478266664180040856208119124794712514265981741833559001280446355818337687686404249997416351184700509325380487656594778022510238230364347515745985425834009145118622261105935866231409306719301229390766234351522347015859630554927508212191883919976310645065651663256811301387302827976423123894407664306158270930904860614009730948176288470787432078609006783040718498823103917855953917619291218323231095178067078392681240841799743391356381935142664598289072852025659210958088236258780086595259868126808154635144223659767135891523132037682198984238652748549673215268632012710341689924060280761986259654900630416396368777067122730895535201247942938829255800854037050184794016689210503185072210186976269094847264130512424098556542272559699194855001788224786193769645696048919414770955619020801553180830090575389769175063530619888612189515841543627028172224946801420425509024089834222352279920353917723118456858883205288762157245212053698276504478151182669852087155593958452543121803978654884828926012376098166014296008514302244220142551200227134653977975860265955749101062986999636789380239071028298495480643905462062688719638498288004014603173089054201374429203264229154345542971060829251879988469146630487920802739756163001573418178965453455424352578060928819759823254167711067752321495758342016555416498789871394135259726719229255641543416920614467181460242967827152370774989697506395032762971014407673996954362501662107511884741612216434279891229934779074676773582800132473006512990602578737328582540601226016140247572856718033832607210647854522100746690641211459446711411916875371988751926737611686791248522423259447175543192759309420604682016853317048606297816688776028269205876210039521092825697995524643744586930124120637068988229014491613015370495557421489941447072895764432514166399400513942518839041895749843415311068438862588506454394958566775127795301245312225696347610550002015237871216577040229470725939483062726943798754840619461727224494833827760960278290765821889288772313366620636079351155606306915958433629877761164883960346042119970739317893082271510037933693534225499219064651432105712778722781118562481864923523225169982059599362174238280149379899368362674950624750819296552924255383211079717730187324818405035540635037882923609733377563970955315617285550678737145298874418269153358135070463838599386098392231993364658362102728756619476626380989323092609757957085654660091782684544608731643802269004734138894003627120314663985609147866917622803772029753578252407099843481367956815362896210423424010006359044588085817893097283318577078998816595132007522855462395424783069986917313432478623986059104854338178369597506713814553423786724232404921603160861770589696213434073854988858923827850879594568443690106576904600135815555568742355752428756791261304527292979426975238134314715840464243420966669463367225117906050065042084338587775438779871883471806814605599768988210466937163825836673577047431349298731446278242186529443337009466410919483521024530679872455643781428939298375104763205543667318959593662769887159296021964431713865289433708432463474694726849972658536749358079919913212252735948887185326544852618093918364600644996612611989299799297739206534581721782247574006784363590787146838040508448045462808433959744604881674761473217758601074821395720845040573316355116425674094833762794972736385532852542162156052344055626658945564240464709843014140709314222594927859436879252711799188757711945765795950340892539281222362184078216175102186539464804407305831119927809134742730329704610023323566873258939975302231075829981464725725920291752675684832519355229268637991002443441147633145203722466913461757301608756784155764303996692211702780322568305462227365102573410182524955295109213059251247921409001497917607937777799748985720687850346583617284183180580705510160048645218496424852372118968021687290885560707956953848991868160757976265604265817527312657385970039049094319723298727361517006565838251615940512535980062813565820583776209885920721997037843242320212556881277364420356404648554264194706457938801481516613290203113821215644536377216480088133613549590507331897334976029159472223558069969202585833356817495029730078470025106348885077045205141010636786596746101377297496990296175557673250593231290118482665918235620027236876032225126848860414691743694476600506191773467216688639039028351034252183595670405488138185024431389120849421130508366071313500659909154078273768842358067598754784866937515253212459637649685241733934823595171152152802960575964370593275198815973085221954912391301641268985620836764813994736195707794736637430883566872107053234932359577002619408255252345021413466994029560755827021558050872874598735216517952649679989982450736682841570406045188175219345339624893768224577821409035428328882474167244469414307207715159852955770233721187612620642804940449376242218026848468317697492818276161004289307499227170045124830430432320075231606936601809119891280859910742316766823466110158114716848250751139687424976284803026120712305463405802098655847329446451942182484735508226683759048994744537208635417578797271976682295592698248779494971303365045426996466187523511652320180292937826104177581214037927335999836845112001513010820272903010582561411700370344591573790933632954359105029190424992438369936513082379833132563049011653040956119270131961940401059881101715009865765105516430303580803397932760061605311350363840926007618389652943229415631515292896919304665656498112124005162734772300983790783505474962893239709893198739168495669925933363765570505093672482220263046981266957664371764224613800815830845458297690902544920139752003732511436134477768166240041134148243831686034592248746115650133212815133904195071683795660431714448472206605578230926148994903647665091885096934269365034060952360441354685451421397228463066658231559753107306861842519776942491478696629787916912430298083212132576345167062779417665654953551556406450855288661230377651358681700354957446375370642328552079198477571201236167607405974491679625633435775810717804395526021124874607157360955493967863850332271513819125089230087783261463784027160416543748951295708680890781358134415248999492114488212677238874565629428057921141140318729676176365623114333563931836946035722134548527034475741814424426381077996543068945286102512330997877163462080590343368823616331186038197578964850792313813244842127933387085789621795458300055323581159932078419634564797599688239044207297263901784119757815930745570348388909575792927476256534780457745660054637566551473298721163153927471028515230619654980488936466559497078475997494209194335448639887395451442004174196943688960114807637945439417195303487742107543285837797888547098630842968122390411405361105699998427797128290313630109325526224737655659223064730283138761282427858421591092929388977202601922566525649696563215603448242054281280451951974501347462878062297031776095168568685760590560596407824147012106255614285469382215119418006778203029658568865995792408788536646812792117122641966633963149754454242136045692654721024081788380942901817705523053413607951846520962675590250198599761344563559949306044404010209712190814405444007492756517422570699924235586495755297913424019493184439399784465818744093466485309352110628718548717112331889232513419865924155488666584248702589967783974451257133366677562329962139492855570910697308126065760921075904321530201674801497401398930499732410895557442633631268753642756216430174808165134844416785617288073701486534258142385627319830575853697355935289821502911050911878615240717980164932624540800728846443023707327525497122726529194011618285387220907251244950647601140532469924690708789778400052227021070747874934198975133914279010134687148927003702768552626957044943006746957284225565279648710837263231838256741635867637190570917689548819899286487055629070018153260768854714291200763793031209827255118333849983516253812740082864712197438212332718597168431830613571237136721941476295073444402708632231830221734436167924491998706754852269016159167447495710342009834739812339642942052683282937678667257494455495121463222940903396215854017668933799935294969905981228249948067711056655536575073648099683551270771228392255164415129068926381665585747322540972864368669709296367631072199565271468015172908803591038977270176602351155733055630852783099210900074611171092592606570893806167735686257241557714902538848104030526165619148957482155650783999614597321667043985408820747716652087891429930667537767867332641292794862494252391523641194082223699193274631223792869481396182458597107053705183440770888795316542676369903421171005085633658238774569441989743103387784730895895476199675373276603737021011500631043999981740215997175581690895258497232061792442371750008136605774817419356535108293717536246251887717003862049132271729197342454167205473983943837341530973379480404776127744165713368747573541726273444742298423541666137148962152203085667156615056490106957524190596924678526908494300457514531046514874042944779274573248006797264113107911487462022021572714693917781284530286833145427024615825571393413486454402526849648253467417920957948470568900614508381276091772786914915687110733860738122433632636821847587685190118234553073440984398570396850953793950605675902777664498061999082380204229891075985613561141164649948418518090202480284657205530373884944434701951408375607677912053282629996021109788620007937351652568733114075668879150443076821352942869278425929520625112216087162340893170833291154274554471744278168593019859842828369417404938120711325423805132286489793527797777570939495136682034690159206579561171621120690515562759663309943101330242539786954974229266667977499977318751185735139940121271129299795421615543465569293707582857703532628284796323944016833433337042638597510869677699506707169906586836008631281475890487593097468417302526659510873162905330851847141384332277847578004371213349496764730352322234194670100957687430427145106044468995844203479420923711811335581951152025556305144482125212618262095729735933741363707017907294568775138190057193622010938242834788656657147287084732341845828467828239163137960658094067997633964442652689295105765466333297641724187841720257309950495760325819703019392156774950913334748533346562674713610271554782009406661277250375615729193265256868457332768614933858000803656215776383975881535970250759325362762074589020907036843471315238334354940878127826516706061091370334935759555958740816767052826711428732827728111097115071633909971679236335579719226019707519837285960927297051182318415536461136646345239706107477600080982952698848876786004421168570974270241658169547331637354616689845377403504206924115251124196517397022914275290830235544585418399687589107548832381706371733225938303886615905272713527810640968875325043249607133947722649924114866396817461233534800195356352289529322430709856517318983634954974431940350497820931856950793494314505761290466429276301882309088517893039142932761010681111675429640879905101979778887602970570619907412862160243171570210145045853125536867206151477387139544876196889903878676708706451028421430476922556785734262276552695747684071721558583524859430386639748348806523801741707047261446986379487866531700015856309027550812381018711291799829775646480830335456395677154672565985452957969084250293435530311481617414475356531627472633443604942943570165994006282082108550856854081759281012588608614853680904296582180387649167230091497312103786155144888439551544707148411466585386152848940555563793564007931234554327940601820984005025292191227337877323061479820584624280587312607847284619480760480603253295507392528211906227367892034559410820292474433273646652902696232628627700664383421603081244646229243087748519650781070747960560002016975843610355385368914443070707364773625817682419739991125426197697794307220391469621500771098512509043839341218194131576441931996538981049528790785010103373320266521616834254334007294738182957843855976203706262949125220592928369995803115489441021584843789126959545301285372097331026631046857352825392501152811680556822501310143813653550014869108741696813822756364169624729988457627351557475784057739224959737076930914820475036611215463419136554141651675032597206724456809591505489147036323010396291287860326005001698788889800785424313176259126198691281582617386800900905507213352687445433454408798639664485832900089051374849318309450161294391324169787620584158418744977479401901598080166947283923243355844041078187163226147905371785322989651457544782919544786891002692463829375125547301080914742298876706578788077055014059725572082406894528407676027940280790497190506507837559856878977474295176474245600322138960921561995461476619575078308307923979334907550611127594814360614367517808685600338526620936889775817838380209197521621819487710773195612090282679809952486921074803176892411828105687015511400583159866063047702789951029812774604883931512587713968917347386263609709673666143160571826097935901352612110317327561997518662276178043511445002627035376598444463105235898187786072184846154580276786325538396568223648554692908402753195258496329461900781951328867581184791340915998455600135015957608729896612367171970653980355218414289755515394061640993762207375121683249574550689287668734416510390763863053451947257869123112224281413914164659044464209749916856161689728888113093044019236875818101869060932147523694019515648526250047166464318573725085263710079429383090811175294156418421891958466332877444053148612334237600988347539746766788935820489944492719866785023235723817034815724108089708363143447062629531275519881469288703449521072367378915401004383488808529309555179804571089181290506225591994770905451903271806615317524874545190117378317331428029337315521131155417936399870628951969424260790004956471002964908047076582983127695746369937017126050474281787503093266735392845189423839919639775927082636803578848003645699533002623676616921672375185215734471292098822469238999462580970464255918897808747956367072157615939936437795612869835526125755880276662362637245302056544014939014724882250858721567651214590273807903955410013635690134448767182677467385761571305694949035526554598973516783740247298520189260048649961241448040531021395658456175483869961576521072640233750708707082322369828909084137551346832222338032311663309510418181670807022909607544579262774959617285977464152202205114941830562599408332173465953965661585162440825084702793637204542887831179997557926823480829872661322580173348800847992283754063206530956473795890240381806454500013021006263700161825362501774933995969533129457119165931627389131291776728296448540038434725526287654666723791349009837606484295664955035678587205964678540195900407630515231278275139806608347057484267458484598845475497751387620020043586611804457940676572360573688794052201177894520292073482245493825962785912753246734637920443466848251409811236209255659336478355561992477844589758151030687989759852552288415487166493864422734654339291780920674763449043851250479539518646124370252676731763155254565096143728739473124100773468147490877932358906558854560531163041956295547913135470865029406429537048405643748808287558624471225340499993567853598749416882044560215547073715280830550999387662752549528945357953218124687718587699269335389495839396134714399890655696096890181830508365825943327584509512173108976314890953117696264354697724078849576531990373339132762968569855427464232469116361361381867059362690719664484922037036675499411305933478621525763783364420527814584292315749670190826233157986795754517425935240867487476624761307015608050178999525877515258811507465251008338453194276502279700223349212656069021231477218176219013398060374772585682309264629651627760569756843679831002897745558518879968016653236074883054985120834504883899380992030984538996181528748596714024646195770666042178617460360408380905437595688812280028300687718322286128520631524812546960807441189842012123611441186381019274290566292301509733971898533297168922135755186378573978892366522949746041813324572007306517631307651149380975848659629829246159684852341073189283389031910336462948575210179597536900918919779400445514225265471383566798460810583501334489331402231151675691603198990289141572901731658056871484797387223276509363932458250671381596893628587144918608612073347745402966723983000855697362329505298523784558206975721519306339446467708508959402979863007447291763774656342566456881287623648832086020474596358816831017227207694332087006590328200546617659635518397735473601253589110522150325400207971875125101966586026644778029551346770889610683093604339680860815506780858048091596200388653363614158071665694601471045237843433393497285000778915093449477323834977042011659843625795018588477115304639842990107218066464409231305703961075216875365926035849233647435400522529978567907180453479388948374045713394330926861180402009116600902692400086728954272811683930865140158105331779689002351587060226656425646833734176976205871033878139122551850446485761353221266250755863332594643427716937333808120507518066503624347559141104002358020767785440081931778958377075725262759525969084713329081005523112553354877022515848623699215042577980210734862265950663024245707221100873970254274862747447473434935030131841792767207083463220011865576498491516187377521055770825978008584298955833193309779941945981424703328766193891218798281167928792123114941627600005687116377053655873967259535168807451687938449130271565423876347529849087418294302229174172592689949396115817299669849025951381141437971136483660894714615788151470443153229171995504407556731541933956228129193343775977446126424290643886171309546956328558947423709687490205831121772411502377774052428594112476336357403137378729470559514704590892375968112366092297068390435110112453555304738864628312206025009052199036551932690256613112216756329357540577226333833991245382242599329003060309384611462603068869870621850384237421132309480693914141117219510571514614985539391042803908213432450603860248562016849211671052901797694007256204325007875256316239259851180172583617669899885866361931144271607958743991447830409829504931285696093152057613442193566118543936008134358252483457956938695854344905803247717308539742518404592263966451014751667612660565469549609332785815587533213592456896135349011065612709689801025244182794169434450598014112305393130799773451749802788881993126180351912305031987603795215993725502793424580047405722128605063665866012341246899651127712067746335585227543042536545872035861695321272912302897302381786262677999828689941079214989549463278298181206950730025196871161082187007878072078388637240767443697098055728795960156990740606449404092202770765537562898243981080453111851441250451102800589758546465330321165680723870479586222370430837894126346261026360087115298833939171259072303429917246399236492098305562330423504823605503174452921823974787097472311726664080156432363251314831750470640469564735733693587874216763307341195106583606250971020534583984330197433541587933013969692671054048534642853915751672656971691449769725750034972471339893903555049068347579731585049017098185874428047374003300453673675702096063544710738510897007458764850359608761247245559280700782441744340321486531150807231642160617810051863294786374094592636844222146714581326900022609644805723989906442191190463722424300608887504716614025531634430280159499230929933041331301705293130039192071843503327504321711798891606536836539694404543168668701653734925688078052239472675335901116563184129185683638422141870456548050673640809627547055666543322532775766912037288798847864494029974418297195805392004197358182824276030533410335687879197112027650472164809761195047283956460524729330011955204268149197748368488210783329578325574112054034066792922796643170057744717438960658428293335403104325475599197603076164379508549228646269004985525423870158585909873955141998144005612635990100114744050215111212270846426672620615807298733356902134254624944327119201073412718119444204222116374266302819628378784327239805848406545071582504955921972914552794629645957339992557865193690498203772942981940292597308974379882227083537074297428900168794775640859989175784702035546021066546971781189353337620119631214572541869706608461874948818510937080804519382944017734567059102331651202275262834048353606442157113693090557236840052033901369039953539198429206230150255981574283169203501898838703316516483552109009283932626840621077557511194607438328053818034258578969411905544029836875509743320126323129989617984036108087702815362882211831897347747716480808708663141014437165214913269689764084584749875631333055630996752877295479061885513718033519806848122024455340583793986881118411909713634524986865543075511447332596900980449962904397142706533966826339471897242423777903613521714336389681035268763146797373234042539731834101548853379905385316501324121922829422358294645014926067784359979955934964997815964067687507909832082419225465552721176206889285712643906815150612993114585835331075904367668606652605986529076682960925066432159984163340793721526069031599210856811782518363953454608716302488405019047013911339561163389685889222489549225914905180810127643915541109303380943353646864792726111018411360584259471571654330189909425574658546020843350122911365962717975815643822533968140743735340068077125099903842534926500673013013228109566209925897838357848607785858004492873745610567074653413661480756453003998563364875156259706594101126369759280342297311898431553667918823979959769523159521912145337705498314311680209332619144300380202001851665810719068624601747604603081986290981051815984754149095520135682453676129391859131495541084505279871055443290146312668095884629882869137217000224529606304023999203358356072878796176353267521597078215725509155672073047713719731642273130871717771291700845089404442382813579016010963814762999573991272508858436913579815281720307038074298735678609860827390049895851311056398754844068240230782393990979885661934923391902528951889945268498266849388316066332869521129840268025300520130398135243829754813267934213825922748811114720762638819324908343258209048632625396885288214756378974206098788528748999289999537522719248607543135143816984993413494453647217314943270789482989976526023383387828995713849217860600568122668574029111704147666559819169024395816057262411344387698766752342834921390830594704820909352442633422527984293511731495451728216068374054145862517390072757063576049986644780250245235138313157446915704107686343670405843636724178870625878814196640232121639838774037361668316477785962767620312442815167653385402595704823707802615415129933826175039140302826088459695128387483366438857782237091132775070854755827791273696849872285001673301576230995748613079112268524570647591290847768557516544557226136380599812320745351792769979420871853338152094133774015030664191713039712615169650515916150206619524849653775558913039688592012639986195526655877130713083714297002721490173156421985834661272995988755986358422674867567541032566986680480574955810291391137238407857608915045387482373764796555756344788889665739253248195185040072410584630648510225217783834396459442388488564424274618443230032161996524737963793611701192047107273469075360091320580414482507548620552398680572746047710989971788990598089979690999514954675091721542425913922762042713421891650955976625735437891997700390332117975599841999619846208906583810524992994154789262184438287873280403494331266704315555615789505906554769920705607746777198836835163880684859114309585771179187602501263552245608474917514998457394499427311910691211735238782971318298210748555546346908857223025779983753280052062958626657899050104730473234806195533215172668199835360660172126676600233686874374324378344083147853122836219219670826959557993322465629334240791156295653359943335729917638157830699367095435228209245290086141364178072553908832862999681416663919455469197134161735099535992240778047733949490364898396539391367832651502058100133223356796067209501124062545436441790535926508099106003134657759509871370735931562638524761486950880873123519841578727238458051612298925711684095112018965906767144407030485392313285355437001984951204142259771437443930051332226447782629229182105305680258929395141500000793715483066634673272794743792967529666553461186320262115867796931180843582395636537814399119215554677867241647247945750831674421430642560492661919619194223235459336298129091639191156966427986568144147826963397815856846090423795896286291284078739355063717239309570680156203066956575036998383912403525834242446825911153562774874481892118382125543723904110164487266898323849816103020040553007108456632122935080791128492803762912279170109401731941107973857778214916334003885778711422073194389988982776928110886339531419175950574346012562488746373210009489615750783500195285709313667745806126910749391929532778926265094383902449359117127233747796283254181788065786923053775489336263004888485237098670061879193102097818925424296358421324766656859370316468698760531290102556169596607208323962173311752894892833653506084905969840791883034998941915687336735453608007044494537829734663343168562029475285632992969317576879762543953745059104386620245538658922345151485436715170809338955435389788929630880311229015227005017226360627680165028318672876555178408838248028589678582892733563323553857970864431421829036316464031345346450403674994034400608615363617912604504201241346027995661299377787578692986505233218724904752374724761576426820757633994022008809863397548256233939899406989469290026936318134170202959166430581001008225710502341702546986261403716582325753741927469129696431734371792094355114013484232572301317121008336236615416969197232015193435704951575119356121097973919314363783958318799521657394202822189159640255381808636676175753226496112762249348574127736764141192503364801310792020515251373497290273577760235606733786052899760940955145951805810599420419419736306201913156045588059809156998953449050311831559051444555763057122065319010338170249685730348699588587041306673392958900395927711640893332670959783478129483938827616596957924640483484617576239319638627058883226398197138768008897021715075498593516107942398901286240156336185384021361353513009427114087644590711559997440144508467009690749319539458272899468526481688829254721879302458302874226850578314197879572230807013570540249577345752235547861602465556265223287269177510113571176003175449940909771086253860037278843199869423415776958732188927706552529445471687541421071749981819968536298570979803266337746492550420177955367212132832903931332065315857155783904456575166773633619665398900999655912247898193866241254756991855050048596678229804718577704887176206111799976946789019954286017601779826946845268678912462796288043632126968224632711920702894755331975741492077566979352048764917573918341278809899070593597482927683293431042269783830182046469333961381017301317825613035803508564790750970579198873384877662460978628431026812973682443579507839362627909274258251176559391085473209032119887357469610039766203821310768427442580903700996828674367415438244677061717473673833230610847022373289468645462241369637225509622477100264244648143877800847940693146093903860864511978495811418473194141152738201676939568264791796728329680679795834877788655596476683286302676606886796895007587227675492030671786857202444462743776777806735954309723760036200484857457845454475587886581123665006915476451739884393226615521920233002436640410961623504029818804424442308822319937729630311772467377021731315793519696494656842244340277064868531483303083200094102006768962310268365992846398238696542836370831657234538137386829635469205563830775957594495110306668658801514373129551332929197087274049151747344650246225877484286763693108986134623968162313682764883648515397316573192778830072628688980586022032404322414742412308787523407608122407072607739052717803993571392298910372433781953883419213510171856018128686878665978261648802260416407313065190008751151579772458006284763304992858086859816668022910650389229285887107092231952895734883386472277009776142502538812069528283077305439500435651202432811119689982906467969639138891663192835465600818376244138579942716242168106566370493544442273271907709968916311747727415953441161786406433903110317144600618650721947841137730176733728330755403521248269632673512252300295618861615177826914796218690570006463643438678418172449144512525818596399968535973523368087172781391859632098325347741913865877934794894617072125025886543715009718490537353155570103017745816823919611210876375125944295004750439939505716842781537603473663987615583729121461779804672303805135026684861910299073662153623033042080836557165857764992198699690295198827200008796504956518765821374749548470929066120213797738133899005492720812571266179280677362983535125283141223818990456944105299309161817782074434131387497633137666149244440914060783146805479700408760495825546310453220340135365914157015544245446776601654313592257643974995931945594657974432274094560940575927454642971101442296475193230740626750251829422524107712106986064473770595602166978393628212200160616996602574618246947778964777690066087292148928928004651222746085871361801065963425389684149274597504154314098207843509913949646016194040779553297238970433379639429751194685280904095596205634849372323573711822925579500262982486284641127888537526390941910009607807934864430479268636353065553257613748664987863530695054817980615634482007993309465682780165881880402071582938173708007271648036923430650478909585577565016031730839416898984553625872725658041578531908231603352230914767430690847616466803960076345510083284783409020501050073449745401330250145122430863891099855497236797754292655865369287484555755017562468993509227911857050161151197003066682878756399193779164105851806882478384533622638703637692225029458647126642834996920460615189475173018927059488465911255968635529781048048480011981972924167658366235884599957984684244179409708728495694031187837268540278389740519662482099726593214834529394810152402718598580721734803161551114037399317876642848982546397754119485116310787235675832272314634024658474396471838467043397049636824172771220790808637215645042326615074388794478397045922265034680065524840309862098971147942924868163917115029249947758370347654663923229047685671315636449165757166293804192517422951498592722187776040318278587212627002228535391453192432217788184736845179185887618408884292822966423626373563073687895415925884420367766363241388926567137589872155367378052113918279998129613220660486689278807018484923328454106957008956512358109979164440386128753782948136427557372873365027308874463763662188089438291962382573471948034852079228324827457793876719171785960690425692508465909782268114014191406352751832734019016080177426637526804399907654463268285194850370920743456580176987566929302546186616828947485293824979424214493652474331847677768935527911432048343669576721563601275538565455038514470975164717452682819679826062076907560220075632981339209783318657751091011019510913069742949296687594717933565703832780475553223746890610415899260165536467923452848437356107070148620093664523808520286003339839555105600031892843943193940731743442031707583831879935107051387134255356579242319795794613201039738178282751898601529379495958608398279803199188119968726826802366941170554428553897318867831758270366763023932009986546685908932281629581868412572157743514257258000170138478335596145350024179542016942898016284248856975605454651869699045857421539449233549463610178460410273360164369213611710698189560087232680983487722731653544356208885418297464650287291215146685356634258755198394223887166005052247688938157632025569209449196193966937519498925398564062201325042703681869562206088005844712031438671943310273356163417169374103161993348480521416540064976350425894551865719643385719395067086993399061477718407943367549427014453597179848821225995980386696519457658929983710960642453873546840679930254802707338378225893948844765703941693490169455178100830808849141319726249064494229626580388599626649730039732031504513470910067342071809171710127033702402747454882216624662892700853020997930787372683984892369614097506507051311762616682116596970655946644680418110391883359259125912537379036190497430781493986478427752917970394137990097005705753368817445602896943826704765160138737437993805331204673386343428337483537151160258125765538607655222322367717750084596069715283026873295271509233226556737505486200035067093640012397657345722883266427212089859949221514131925495329178817539689617853883104534560857864913244971525045174485057854559390649681603072468646444552366666498086657340134273792650729962443757516909126733451468813161821294431913090528999445294204946245661597134689141092405706278477568414274521562763277119203459558879273260782615506128690237650413575643527897182418500807251846658879368277995653136457644896819177267290520998934213986125771221757240861739473249477344484758676588382127143429364264087719935222638433022384957668197587061335382922726433132286140789359054877673067994661130972897933147360674920021804293149972673680689078168865944538972702752301045917362976286074738320136405843114803623877739152615331377553812248238278126012351719813558852124530618316365446697291300600371614701783516485599362281260203542542358398595576489556697322743506948558733655435844006838950229329636019716669759235312425785316376084005103070451143058268230922029229243213399481519418001823458472053357795206456392155338792196302945429416530991369041628614147410050288534074914105152031540744859315308078976874165463672371186349874641320444933039907735572597368733346888697173939344624923837097179231455188159084657450150465585268039432528941345575450179382659741640022833035102062715195967895513859618739047827286145047541795775381760264574111011708276925736633979246344887276647090095225882955900114732752933199083788708624732815709987275029151140920413564470354333335237138571258297866770160820702732052646722508462637119060630486151516826853849162710949934026421055659775058377334361432097568642045690318641211312290526498537435399073082776040916259142938090294537765055252038965740617779264196440285662149681174747952753910634688804101050611245776324956608230273954918386949303078218325453849699260061007004676780746596153386016599572370005230031731272701237960806756068704860651813443709162283508533665620702566872599015135318664669196425051602936091793946485328719386613886946194303409848844524383961617423650997274790152076596767870968260175815386357229946193505624272472971440075185687809922152172373029652598780778184517217176265594564143392911439216905501497863410452592163017496392430508686852405470755141172220146542695017761430993973940961364881443127207951765225537442836335015594528504896565503303646701209625801650077222284954453058403348755843892048863138397225013887699788603724319273069006988673090812163469672803490316985734806726434855248380450569913961176792684761375971188638098592722312845791888553330722237154338910393184548778595745246409459249575388758353044626904629720515735102147020205655914544035902550417887095741935979663471981246151213525993295563797596649423763671419464054343465207359756033732227021543666378798203438769899870669565460453796015954871924930880753588791721930707462797019441710454587442839485290322992254332421939199826088952441600335840675128866687060697898707321027628325229200779980416921783497360770131153346228728861298211505579411930446248779151454471060182679664288720705755960364642226287181185916303161676136184576343346175387514583858864626113870198430363484803671938257638086795091612786406033694313811179937112695311628339994589842349243406247333624063107516047370228035030401952556553324837046583841776219236605644900192768117428572220977890452279694572516375890402285358906867752967708530125745577647480705905886219616960959145566067255574734790165452787131119737959601070591013207941632921652141642203396566660716383954488710208146838092717971311520673392199069505250111602655086709762263425870815065113093798264830471974515972997977217831284418333320984761904697159991438389566649594374021061182074650035033842967359253779882711027588908098199237049352120494044715782146253898713305881462242562671819539566612271863130789825166399479333283589920789874782125936296609247399203873775083649095277823430246983865661779740087050609393442642499852485949783451076515548154824553123119000509484889110667674062505437682276058689147020363139240975459552541221550066333033661037612422301341886654717776314136240786977268556572000879677518785964026141250517674967504810195106570856569895337460440984280568539564282839939006687330461758404370638673413170070265871557307183769929496194030229887553695997892733987707996578383657171819097622720526325003602959447485084977244398822538654231088125131370096750174827116884821656241931340551035179828050505148353753022160977921988461260886084051131400672138992640606722406016965447151817793798248594895732255137271567752338554142466461329271430706321617103059952451001017169406660551195054825039849203084677331543559178188224125023883657569541814452748841342650405955476701008413055958119050846895513755720812397830473248329364035902537333677735562892872355047294506366269816072364722909959093753083101108101566189453677153447851809678554921823174773854655930195211187538892061507378381972288319665409760159903060099995387921272200432222674296560049664236943992547809414309614304957811000992701454344918834050652485279279328219262811134941199230139750980393910235126058682473651025418080864640230716958895451719668558918780223224687113856523738594472913216042482064535642049687525251416115157108723841231990111282230116869617311353226871043798377473800408280866787239496260995200298999384056178084095726933806935390932109935154820937510878485856766620099683215192301883992747457197051858641837985099783756832200724291975474368801283812724910290719541173682613539343886164425511770272175803343868979719331063294521103320501647767587517381752092227286995757521606253465393974780385204374317164357913740151831335194598328172794589343081745039569147530799960449548062607105765402155640878375464318987499413467022274821362957048266297729249565399768311459971754906791016430271752412955486210733425021595111113038413901061624212580938145740078271729848883901434782427290728263795697529111900123201613868911471736567130556577427362873810029938293683209336308521305111870132468288915074003958289623367376696451272439506016627923284627302854895349844417459339595048524100578631353199795698958950641180793175295039218020171439466830927333124113436305140067083271816656294682869715741185354245308782653102085542920974371596937494076058691214172126290792767322025225724376308602735594734030769400666430800234004315359034549169197422507354014955164557206384792213387899078244639761042610847286082793322658428249493499779790804035893841912681776433135835143876120228338061608006473793520829160294643667200373608502090621240123264104125044689225580279272908523870687550475413666803025578490589458777541259718206262983087832000295983735404021442258355148011935172720228857880743719683387756358423810137296009055616863395105615205001580200090834743660287145143255424086849591400382202259433171991549421814277387402081061503785078912571956081945889000488864368890011335293762873485345013942216786763262200519124284190421595228917915382348696401080155752304977368074278481548926633650716639497884523348496811004139084018453106715090407214189482586972910383037669880766153912698060037994958381628647675907549875592626464638299332442132624594744649516715943472410642825326006521762088275443558764619044031299240350834240954636846199737109730143573223776795001103877251849668942275705811861028059657695718926831613337015986680322621599497118203647608690048460678531153299903888496173802310949186672313294837197951260580744577321154878009391023748480263731032754619900469613751436015737197406870142958652015669381938395389560506026847885644183048878266480405965899935023623273071445691543711448041740211571348770558691343873197268378993324430320228209364896596806835831751614548098429423895803588505289853055795727311591341724653906855286140784842996925016050130358794264571658673554073063707693575681057104468608935762036736828808815738832010165273486690094492325705207002995760979683975858742511525149359781269270077399731745640716035320376490744989013858889007982703690367646943485603550455865439517770744425236515594889369279812018302509082845075104498913188125670016363708144857229830646842582842519702331195864886877075223098449751502441724466264801336565253837604550391679216184325881717630497084685145493103070879456052824884425728657055778817498591713166342938980188756048349502381093150284689208547792414659097518809242049969150062512522125830566732789206949239442736341108208972100764891029210188011212377856283546553641545589541961659371603582788036121863386774364884652869874156150813498853914585504662091821463874894307151484151885865981472672984853897338667478013819621733014133908698861499571245235703005202734675522447703113587887265073004906045285926663843008005277865675082455396460692612191385026800340701107906894920953487053577193358150954656578276094330747826043873572791225509795018210494104140325392781089339058194543771536796316708102689884498541041663593708599077832849960513225298502956457861688898998740045355206592196176195891289576420959541676145940634407073915090395749232898810755857766797415954970439557163308930829730382884048315644157838826833369401425052197095549138381410348376629816358941799690990751195412435135734692815400686675604458668421813003706728177821897562067379524861730086797250876636141088343324513041165669087829311438771992583069934316778960128593351472241269817188342485975665649620473702046773803405646720165863811119140308317969236892947563827674594846229701312825677610546039421362267197782847971923421536802971033122605146342775562988175812429604672319488062783447239857299491252665486293349880413157912667729039251501229567998643372421184401499526662811730273190248374275313743015233258482282910418945233923986618341734281719747575746931115593994488514695888595309337028434769015110040124560128057131487617910579495691216160296845426201823634406811610098009666588597507995671969903321076275037590649309616456562382679768290764718794979152038282083435110012295295730583271765403709775771540131461810365337205655548081180529212740054555328609458788819692857850601912549652641839414477177587346664070603282127724577652441740292399593896524800962345431668805231106954552894696380059066533181257159228406525529741409043068749600627627193276146203713712801749977717531182811460121147126158001650350885512641131977621982878360515658503578079307542027878686584004516973788223353726881932628704864913225522003861716688090054202649265314952286263409853399054157003379898926166209373767751245051754132650629804198242810932375488403614667819201075386159092998388560738650041077710279191834853994186832429570837373050936898095487321628404326607939965391902294168479735189210937777726257622538900148009351231830031430372088080940854056538845578731557675889955695999775854654592678377166569533535744244912803611821325372915227700077933019807814609596810621251428258016704769306787995491802208435823604184786235898387805592139952493445106248729999590265843836330252961436151454585303001944852823202630528132548566492822893004644346341350753596710231599123638890596971009914401711394334310121434092090697317551879457311100523755575586077708062378012355309976970322926543320893355218235811839449529766531342739081314930524054549989543627440754167080401042625826557597990708356821777025311642467688727598489824553279517349396559717131591843503276629420276549073132243165057832478086817140925474855418175262889780595924552367516942541161697423165344991017934492097945879348077877967499664421750408113929419687521883748456933704552355796416362936467737411089144093596683630725260311272860014863658689441059301261672452804316600138391052299964324183299516425812771216868498719914730085870395531403371537444969442887395239665586963160932474472062898094286169710658694756702549299836653997798898553053779818800593166676586406006308983006370586747488613522651292978702837642160324931846177941845466477517082647443047701143764896689462939159727274402021966464689445525319377629120370064127068677108398692325288348402257697308973901662373862139991003144479892716411430845778786726985033022306091647359194625955048436360742962923098596730219523081731047475824379752667556091570061876574185638882268202636205164093065610318863146199307132512062293525755241407883699375441279833342998326609510904788792586088691189616059730707949324342739166006260809481410353386975783862621870535616686669853490317287610984306051496651033873592263846762396315953286815281640420529127444306060637169707068580493700429644940821489452161163747122031341198077163751746890437249172420040546262540481110038470408457948614926712847025678176154596913019882139306291869690657425390213758948294902727550214437756048222456973452395635489122560223813109364012938251040113320767001894730350775041149851497536253820646799451446771773112091356215297734116752444913797709111456984093358090058473054678476111525129634223189236632765999248347201737435762759373077006362085826515298316692839483253009290320902272240971195497581644775750019270815107078596659053918544580362665344164542929070873747663704105586325155926567730145032359262970095638501566208267704062593372729943743016952713137640431865958021908155665555014391168933964607837483111028355380695701406236478057296018849625816953094474517313514572782467040397589782433294716535235180260172548826644828350990163093332612956563882014348826331175037048556466691054947425102177618293981785323058293048995535183449379402253671588975763795988706543066628060572229430121385062410231016236989677565834385989754465017849879288355990102099136718184214008055135839196149358204636687866811834998054727637173363171223844401277772761843395988444261694109499085060962598874150247087572500218104389072211914452540609666393189770327777221648913877065925094798311056309107019735578459876541622586006874933405529233239945750740980496801476499103688746120058504390622435033669293227508968286074278534484761906807107374701037465560395268153360484991554573601984879491424288281256549810444437144133083325282762760677676854193509251412836944779214494256565340304964546617983392144963794064453766903245489008895515789149150060649634798075570930039541870435430761973718249157230185050021896233469470215364581738347005794773598390590011944897670320122675587378478244253393518040230031803551736066106087922471818112392400830181299766004610689536157199488886264879434342737613323990968225724537444288361081669641695345225348306629583327576296444654227344691913093880300731300764868001958078479337102909447360428936068443790086525041189530122399568428301730045536258525195518724663099984051463673844057392629383333595080959242145660587568477779279414508828020051781168615019683430874915434054989993489648959835087911731903506426772411808792762507573007763608722487495157424278069256446952717867727423655350517068759429736497110278893188674358248843704816040177614321985171022295879512841003958729022061435561215559222585769678402480423811257327094690977131118742620822846490517145968708260980513442986986988926443868220318705916376547003117215143258903215363125173114420891542230350294779932422847376553223114814438332250829517678852737658253851566131880122107426761112086054205163103162947145401625019215835348858534841799065903291600846607926365098868948743282346157248426153783382148922867270515417363337583983934144986822195470303505814860018512527674616326481125313674037022936655058046770107342153484185862592747367551345695060328413644021366401691675118368061011125051176833135679683812537124077330156665869013542211915472764899770037790660093625622230451912971536529676976009237086525872649201125877340885479247908948691729713090771413584149442186870642789856492044743967256129317854310681926213578482049869417410507619309619742018838219283621016109420120963243355689454720840327853198710502122629324393695856150835026172592056396728501605450839831002811947486521784434596456020408874699596686501830604938434008556811035470715201225731329992909189476502488458724036828564398775061232255353196182833430766621233854456947887604348141831228281747730039949046878653285419640839613370546321789581344808083845717574576153520547996851841323713218591864626125171340379066299542958974297116131339858884457861110784225843825498508239527411270618831232723785909918972355140073083640915439487584390067878985455922056516570030040050378618753944803949369654781101709118165520250305207624207573791209902408993096921874878191005267659259382555406568713989744753938860233701277439583655336507852294295842164081477032322399974467965681510080892313838475358417755298005141165280823635514597712942975790244825103013257924936150620854730209792530057189382802048317604424006056601585435844933835158400883199770511469451306738608497544076781770367371285499508560062708004711656726751469489313063276161610817726548899392440080283486838042198588877568926857932997264595359933127537841778211660900913531922963011558375307894944545746660917647465753396821498915765792128115350831649920894844853771440707677286853271555632845440804809200295399079278025207595141937286920832286834240346878785110327971946633182352594139503940079438044121803753932393958382061265664389998441328405390495661580182337835279896305402714942738517628208791103674837735525095990797410865960453558470438574059936073463652740102502198580342377764358036692298097643758083207691831257237076186879373506725041782703872189369057142436608649884100922546549367532251512847960199451448752791631077401992777494364370788894137226237283056796888191885623384699766569615350334981773652211159061561186542169057106760312595894970664145743692019333072519200592260967675730280831340637385888983118038061959776618397915977225631329331748503793189528202683915124185786756385436056067103373933409062182355561422884081465745671200261913912122720808763755982873246611230828034554991211157655091172969011717157228591501897260767008863775608149638145677217012696187282372124409222224210557782563734835509393814501164895978467311964020740277123978224050515897846085287417720700421336292761109688296113476093796002334832579894094490443888740425109990121971270642557227105517269120679080100356149252336825824499908496571216261305137840503537128100265495616564568565147305532879219540028669291090102421543052880775608489398515317171968785336040273100396948077059229364887910968755297342624852213897884803607177931004493475801722434544933727823248142757595464533707895101139038513127380672383595829942041775326674579065139808708890245222325551055110379427056184043035472217027420706056618725463199919223289590202806511833554573825591220458415241540523907351246906705294537634299070663095416552526400482818583150001396822623940168399277281712145132335363242782450050033555439783710609929741218343599659566974614464009106715598298775667002161590536714317821339563807796151518099490186618658591471724537633651662186434358057429016701828994421117433638861790443369084357008480354440222367048750241440352839304563333351325516370333799382267370650119120771253931289174286936720755462044346675405991356787196012107418230830182626103759738779930411834494039922200382830545050180054388281500518452467414503636659043144865065325026764577178572412944879516897859169350020168975971180694848317822875559683553948727920141858607192943416473897432871811659768161165176974148333248846684858463695562176017446812578965932958584365606170433894127690517623603061138327206606400954410798821043713935276900644703486784161820605146980486040486946824602114928309655806347074847963520521463286676123826649618146636419925129224000410589880376176114804527423215295262183599735860360507114468916421220543124587912014189522007036147709970315457208639230076893404038369232793996867072703315252619555044652262071398786313302878844653954805043178537057361429782315288275774761147500342694436878150681621829574321016220440125053427144573757385805301298815942207364955708270145131360183196755521071587769621149252829389478042495782146179971043606815158405351602565792959279307464888109465358229142304472683808360400914334115858518705240893974952378156771648515017463196532877164712260594573068711773958840835564528227138449502206538486255458343887031240266280840229434896470732972783051025799724765571269256802699575647919148301033438028099568957885979654263684331217957072659343221718492087207504830188248173503740131022240917902494803204484033510620465861112001368015445382057300596631138217124495940305094838326607193750436722015521202839959607608596659407952100325149340416079831060144725626222149714198096745649483964268756507061967567591679808421726476792103140843390481285460993573961742074694751450447188179126381065715949672619289117203352374218292726341616683382307523669832190751957845693364591084705964585424614800038695158632799016262673852571158435982068148625471742982943828796430399648286794722383448570725255655210831048497148041105537421225338953389326040049164184482309455603331223840861907660503777848074267051133740913739990383105319171154580377022428254131157411828022648564608742040803873265388520698648160591249767455986109458470320763201769376624066473359282687295199501341050819142042220158500549491999206617749352568199034896602967757515117938783492501705629150119081270300088171848941945689726938378710122334219961803791688225310275669189060119139719380329114935080250985608954635248990811407878955534453156563863223593462277457165430224959679218007893101902959682800446914281604023891199070178129301367427585616062414300813071583032220157756829329076689905091393236760037895806737000541233256989547519781304927866640403875304787711981706832805062987769275035540055789216702882193606972960261258334972279106657912790110875584491754377554962989009679156731472508847964535231617980945684220112681561570727661365444423381220818741479578810024082191761637998842017020762940764445788829930711801776681226787864927288796731253848445914600670932394717832237067371546519767540876430496834888198873316244693711789892415615549635793245638981755054227931165136302305440502010277132382047054539416334013447056130849687635509414484489164842828736821938410675223202729461759562817835861452821520960253828344440414019199310764218556012964115385150527213914564421229224476246536308971995216157325389099028058083084960468699627171164479157410784228042840194153262075454843544766168222875138592130369622048587228839293997287054004083256539127941413717501462796180010212014334320870745161415866333350687132832400922242049832820532906339425393154536210685746489791092630692521040201884676379291068718359339056039873534959750501839394642106921211055730087607462757740926567332861207005148408420407427558132735166249467885344928866349295593312329295848186165572542428013141806539592137985618209172863186618171212074965347538094072616889296115794375211222180710849621161144216214996143726555453983984615028714668324884332273204115593954674250140523234788468727966706880131606366403582456537772391331311113185042513262897450339686054295061229730239729880188565265522106049007307696159216575513226886746914783144573661868150044921883509089673941683979359318470888004706561904904036185380872609718634420782539169422110083691464987615101287065349290697494825590039676703124905795381180166684038334690771050221430523874347734497767021830815567392569258751011883754264932124588397354579709811202653429226117582661342858775147139834923360102651284443459653204726006609201991101540444288339014661557036734335757397058161248974264551341351168058325952196227886594282676705162466932965782094582194839036039358830297731420284268787141835844175261272471771539428779275876650280652311181360154116979739061551017219557002807247728405238934694828807028655735207601666607739157964048808207632067862476957676759372671292358322167877671122901905899215125324893580134763255207548931081973621603396976303314601474499411821017859805248197746910194561826846745880281399405785798281245158449246348696962065651028109727754898765982327178693163965658381575567470276189943933282464724022257263608443670712804858177449528869834189524630709278947764532390009004421895465408085816331010848609979964041649625908715595028635926104688349182091064453854762260263357907668461090070878113092572050119884432808899391399458337944989682929998072381907138393799143206113818759473580651127593996748862266371736542693183812765875493812585158725926853415466673051990967796539782246360680497897122278981605411901097146657204359178258944116578872173255204853452968100565609788473870640377754132725829955114020278397404434826077491092098193689640115675842444391722445881222958093098176277336010226443486133571291410824712619420086565829730914216025611966192625041560849234101260617497805023799816389903838089549552917635875132923812060582508619276316385093359907442603891638810092699169278545317346291272785233174799993247241449010631658214368851373454089677983498073110557322761399158870713101413275383797215820378044749688210253491466738580330509738645559744920790947092457505716802109717160829375946374367576835766416344913431945375244877785242506971623772440262596143728935874197497867092359504374006622284501724992936180800030061868752701720283107024965435860582605366599576637764522329165960177357383854153571619891487798865618493617712226889284216424390411936416633652684883433566510536216312535762157806156047097527805612379380727225114936777587014166547603708443770503686646413465240152888579876772117065581135027113232138168503255106316908856359517931412185367774213277509798999587456154829939939518073639962044412609997128944094084595075979568674211386821807510866714158722293106257877218862226626353144382833480927755001051847013366092611614100946523805341495846624926761170494612824280059648179469797325784775827143177746501284843548925894810721571642356840955783881516393867554379592059074514624073864190085065239161751577662582366738854359200145160414881548193282123105609580695038612678312319084689647064000120005038306304767108948302328690733737162878606858414609971824390783801970618478092145998497746505545249513354205105911070888864242364120073078504654573711732502171673556942287545133402668295878470824866340195363960692013537912780800437510623959359683209749528764734594089275846138706186867530321430665644280470422155101926361023825316156125518841652686854430128316882653990641957358678654481639808467084705064003196108345427670741700127035920126569971630588419884146843510249414926542875957540764449227466826755551205909634082806256472288004364102870042849213718563560083597479700480734192505594240521588107228048388632712787711915058265760533202513151310208361455061813027224418704385739090898010670119391259220250603305758397712980145485478896852360568423550429710271658646396082019713980198704085202999390874687084675515348079262539691713552486463909791215104951238074718288221919397320055457827846573844613066506699576475381056547726040745460111919285212407369832139579675480041063521127944895666497282141549277921276802265147011679953251325823645361023282897658927927350813728819455678065315388761245239835473323655838225147735210645373531884556969848673229918117462056111258936577497135786517486020427923496151350936582775284338500799742237802738267364817430994444379983402908407192761207662815315501800250369743103059455619578748698164847085021033451481560917509974456510333021340290084593756512845517844698494738526811086277769067154242316810041566991192652394630851879103236223729061136152474715150197159890650525977635075922244259523539299199735403472827364801508886748504889505338997993709823623465141744430100531657994687721773025528014886354595321449038075520900351149080793657759286320907996295166191189605461340618065155196703587337357830219589029672364937364821265080844773056024261925623844479310946778290582314735833559691040311063696671580073879454427351763597381129284370329920146329903231859449370950992204632905345762264514763995764347001843874546940351461006004805016641001484367837712121980080483592724215863263829573639240778692408841114083464258682719731519748186331219687947705166248658820868971111822490232371757459636956577111766668946250496280433452219928600372896067917791552115234314630039987566504509914925209739628625208778593464462742036440077856403393983925427929700793598440414045015882699967355546175900199200994488075931583393478946000558112427755475147978469081575410396997457501088088761844733441360971928336216990129642797691628504475991621933185100799027633725188063189424458553203559128540620548063440703554078804489103542832294984197489492549237495408188332990864769469255859336416963932653067172529334704308521792141207190500414396193549115132362201078587382980935085026444463110777014656100705993755164383949913963707963323170901251124337719457571546250461579251436341468078380023270740739538576667091689578344720761724618165263481050473056557650360598788243200438370356887191475593994169321278581629086482687983223886537882014578388275141413659158554741686266491266235876060599183190240240598835260434019435856645913932243900157582896366640360420786285092758458712006072074404919300460970161699428443550198238387359750241468575922041462113602372531792359927356855588552479648464899700871654296019117231498707345169057794508704777883113653821873117054093236660153156301080455765558943021453126171406341452265729262573094624282000231722182481093743415575040031447245492966422149734858317704907704006316211386233156500103149049257274165596943728672484222316991386660178097487272287977552257307526227072774311222377540471006097908863221720366881188087940810324134642969511319134390176436565003867955008765638994771155642292141969178668030542789747058542443539302065025030630406346167458038138914401400795219927594068205155910870408584732545922806362134308409518974911714707622201678930134898431339723373039575393627741141515461681989418706804624327228763740300886352511478694387812914972168208861792082527086014674921394952908496747444590618025316356721659924172202906164731018397801081922257729181294519354292024175108346188422625134595593371735289492627885437640157122758097088914527835742251473467962755322964844792567348688286952845210671749453778890792199593525825188455943537305996608458431362455440801837712235553691039945920880086267354611519575423775579969244260889773688915680409340551620591528054118920406085785942612618005938260556066489798841331256999555871349366672871194162959765835091639789442785098246620406068319373480475122830691865223573326964535670050916245685375746366483724055813766708321373219581962890213921314169303411264592731662165590349465330413754526823559602048452950613557952960601037456959750887602886283278397254579780330347371222238752529684357280617186976931099199434439350734699663832317776646419167685338803248005111853981670433115076723308426033400317603240860029360310635888995322117043128353733348217057453386847645230169475419086925007696268745151272710828632583117293566829897261586102142976667927159847022508537516992390086165443762274257881400833733701792584449324867649296882608473328999772296215547859476260037383001256161037880057691461607736486647383209087302556057745509195877935282754111584298850649266568471942887633536646855676878450622833476520471586505106150302704018954604920483888256627220202836963007435515323071074887347967159247321659822117590261708368138515242150063137767132566103885890574945176980915362340438209755765978174776214438222611742496933152991986111544992875930329972751640595756093294108627750407483204234686670029246055138270531667970450090073626030985803242048406539252864353886071898468388660634236066367146729706461404684444228226131702648631564685433721956870518999455293784427104576778966012161564644380806250213145870240941064241692495454037917028061457365372092601199157154387101732360597529090356168834788161973641217033794500175613238712953230395667623267661283762058849985138155970433748669157762801055507957543998637522610541498690923518640126675748386764435953527491457760556583583287467034805252070781855375976575878596401670421507808978769657164025527322746062358658902201889484515669101770603951982338053592127644609395726241555376727026051563966229957005964073317539341740438881747020147851843162383049030369990356252276370068090615932030881708971615870382978452998398167032432783465141537625217993162622960431903376056334936394909169237785970250838741395904420423758176936851954605717738099394231001716172220848243447745548194564043831085012435185026742745655392699006106055572091395436646216835549976868747686917284417238798354518844254821094498222885846906183950285379132795779299665435221497829611904792080799686447288534851436823390717482668293651016823277276397775526049068273595132395932952674123484279709378872629586285089195904985294622902781625085442040996422941712309305694988189880858784736821840152229166173659393546845308541815282776842558683810368719594995924117193476632618674170807525971216260667851778124986209368419655863040089760480293987644118977546048192876419460407717646039783897924463170436128846463671031540142048303687433634593187311089489271273755457742462481615958273823458856951628062084431541862441677731143341937743638872775667944095287163244643796552550710673822781029414492851583280257849920540013597508540102455612964925242313400612014965295692496008589176378966968745453718831618932606870457965424471619831906245845216171852308915989252006363183752192578176746865862782356791280110752416076926123238403532061500077520896841850202145824633936356353813444499168579096884366451533079829695990223136810598999742018214520236389901351492421749358892238961634757767093968209301832011095843570118033325778426447218159756235407848079242976301372797139349111541148445573221534710173226775385095325026702816747469899398644346844739005609991922979472162337242157140171620795534676804940886611441444168894592803596415746526651890594421331845030498983951441303930681454563106720420666176346661656305155124830187093859058910313538646632944573451157559693803850967148675967096708952603481385868040484062089923865760613534350774435800834162834081557252739710076948368639292764332446792569322002202780508986368259908011152941200957216279970722362363208058962242658549232936164005111990120307610383825913729823823066098905659224962883642330492687054067813297765357145803348547387119632078711988908391887053807235748744071972703378748028403957988817086618896865718615134934769520870840925116385454346220016887962362333057777126957312121998322363419149525013031417147368567930142211265948825335482055968282466688361150207524713517133500139989990035431391695078441851755964959570964408708845236891495810998525982963307118898615401114593849859154312996762013232642284505282006329562591350676946022760554779732291133925848820101867385263244088040449165795336349507291354531571222766829162095470003585157595872016784164438339293490423923437903881210674597562412215889977510162335150275670811395481640216053047074927259007970061587337738801378065188071629789459243237367725092832885741420092225089353523073279480805016732542912404741321964899295073580235566268675261807338208272665336275179698369763896643948117301036971295657428407912620445755569500162200454800126221195361763132458987606495867200783439640409814034690897849253821423255591816444495703095705481777539941027024093680059335637616938665739530423402946054650835500451342008095581884501599313332669258446338323866725664344970785567092805222912015608908857356415151240355400728128614644598689482439285905770956676451876267496505397237985377738596858727252439581608999410393506074329254690631623692895100455778274863091737842890208726612791543179702947150318882204675245069841642526783717122953106266975417698165346857862676410319052173929291369171341557264542246846923973587598930850109912234261408544973310153908683676296645564639136784573354749509724638630421915144043122782531913147950016009413025946729460862298165484800520031855652587459606729916908048652428990080478951764732042847142324293766052026222597188911491243349554109805054224203577983349179924339772654260210182482059560839141404858679863913989393187735518507128192155124466433360383118045273579691712824773094637462802282272467711356468619462771231802939615918176048153454772519148348511142439052989916855642520890139181971009654072212610210607084160067255701001012257250823972555745056257482476971505108304416159224403347086146699722003628752128434406257803810664800042177879931702107195678873017110182711581954988028645778228458552522251813323541709904304789291461347810068335145631035503809368759735008621512333292293332132209815897054026395016868341507930928310575023779896742524038584456249785619082864684153722918478490620001763297440792349905337812816606190404143705146735906294526005209677137369607892899979252409497089774164620612203847800339039734343689173522332089255095577212340120226434796183378407434227637502245726082310994370228685280382509197981577763254345712305358546525266594952865061605431529773284891963750933992793434267584459192465424087028112434208720651100554116012505256725022293775765779519282971470488228776958014308355587220491292474886857010959461219519399046387555423536308250786487479049961129100426881211745352940328642852799370935610097835419825485668178917830058601109525602367486457276483645927285922677537154448340693534226676357167449336856354916096907473341556688953705687688148866845818532183457686325560509864598133740218323581282024686718905287010714457499189064122732399190858299290280578428916956302110921662157132893480047272976859795427074677113532187762508941527761824191371695234049265860818387234654180168655184122208901591317142715734864760031649801150298912430490977003767227601304961573565536647382907934473906015681354685514673092193865185633483341327236360325983276056592371596885848788353763997450456746341084094026732626798634636142236283501531316054132845106291593651646631896233397499173946520602336609483849263819101277235476788650515380088018598040000883082003294670744442394785986115597371029434355790033182233215153934932453512110977010447040065459342478176516637342919814796318222607660110237692181939945170069916820880674873089329896364089114409856221736102132511403646219554837948011510562128078957635705540954685652740017093046801753204876392447109393143364871139560665262856078414730598237963152644703503687230379163780322870950299724333270284791597123372047914021543256168787779918106500101138324412304045357648342129568085444107124582077064036777857162417563853839327600012351762277500871073062042328746921463053667678829683494185833061038297809717275124939814903315475941956503058031277138736820366496319900037826120953216736928789853254343426392689386549211595098217506413879988977372679562993467995757484676628984723211695206864050815621207963936645513521008933163890667681350425546796293425225245127180621578781100743543799584626751808065148352754146548769246488576223371447674148806238934938371226654472508246837482264073206482114648576794082013414712147826826003452086935537426688591013682263117774493205778851661200634947602618361719791981368289840418293823468170080185833261836896394054532611153702493170680322096987495855597846403590496846986275765167521157682032136958035469954406807049456950109607921716310407824494815088424283831814248543817380929149683586696507843721949321173309997494271835379085531851411101895995054335696295057942540344064098786752707512986628182488786474181232094308456355831569250876528891003254066115383996139462400403608909688624086004193266849043573204284123227421431867942915128755348437939288145665467545086468120263783694466686561845672686509434228222649913181410626662644281821278213300959090785353174444636957938300025824409678305137090706690579172296937492544511062756946923263642150608485309223688618810662545851499464835284796149779455460088532298174425604388775102642019272605569382378405813347153430899509139913358166214744258216929745891054361452141797963864275003048206727476668015009710275424946861355406227039281832225299237031916746197543883782594120473647393547476533398639168502920125367808552851695062276503646475675270840374903213571147980607941031080835595229052150972828574216640361824132102257406729813041675289271623172816702767267794092050314625973657893974699344877143869795079340267466326993999309323545542983046303984925730709003598598062751257159945293281681379568080931359670257266162403219709338417693956483944582833174174923903869358259092617986585588104395023363168335138834201108526592863691578902814197196535153344144025089434509298317850547420750361410914232169648169249151454676117119657948608330634247023000347780778220893421475751153302122828209374736408183994529152118323123489611280112151268394353429965766521542022879021673904235455753259360376380414632937803101678218559346240665791658087480116618881029761076284898634801471459295702343811058634103130602831775146539247920071755713259704997641982800108552095571526538141639866220833467652771220886149536194500671888860161612011856316107248347793780760534838201412075358404263696061157272758186471661879835712478580289448111400627090318024897282634523293549169620075009702406239827685778882939867225825686647615669426485069331787610074009978047440423980184631169326301783535720246697327174950353410037871563455908697925848661018069541595342238501130849720885892371397884371233106963611694299345395715846599482010677029700572082044400094442752793735439261513995225753776275517371012866609665674330688855520764993576520428281511709826414954267495854680841119521787930447085042244082154297308494026043611913592239033466222277022105022927695542958636868140855066286275501089646543704279695530175916423009729904568804575993692562618353768050940876666803253178439937018271079525178709649186058762130334703121787668180951393058314400385868063517013887688311378935306722345324276299771620053924634479786320590893098203257913012498908930622052023121468400244169258046192712204836699004028975085870956480951070544679348154008946214575370960374733090428128054176344941032985904681674401052131750485734795436034294864818967788966616658030676130750605483063999512264670939769324009826814933082409251005364763616516269285885145101852393518243500044934790809405318149042412245143250247473817418995364840042193617208184788413071821950376513054099721276220739574548715307162353138461259315404993795551982904303464609644548062428032624085025825321709697346114766931934181020435588568964163856547875729078905486036263255737780126294664577684257771377395438670008390164923760795777544977718976504501480097508525356644721323250703394505555621128128101511949401078827642170661648224297135129627615761705798067993055053889473219390882835647879126007132549748137652224479193575991970466554660479666298305306049544392935742170197503718232714915373583375134648425012315718807364622286590964482437440793601520481604003324015547062272114473631102388893390814102429631687540285763459003486128306397394148660437947962883904113834906803832951676214545158256412486623127714685107956008378405823899015328692011352470164200366207649108029304390941333484268140340676912563290063474124270419091738440605889840651144138193292748930388403194430232265725620757231839797813695930388532279146218753193735474800738236063505881736247683693140695349217647780476120042384212446401867173134796633729770170488790548098099088628475344748742661609758985336419095483366197908161653712867638792453739293411653172172156990598523094647854220736028311699481378575588568937397111944662637756280161847295977557191227617658108918703814309179251870010067163087638495712811085365668793635056712518112352582122341554830582686777089323592261607024647073085292709163991080322382003550573154609048997638433463249933391325962411561218271041174294127998863371478441502853660844938302636027182416932110756565633498532559222944306588691923672852650377640325562091927913092335129400654691546004591787556340983826247562471828081631010816409106946718917410582944152349007942373877065124240307387976145286640016033157577457689291003783823682367284046295699987834012055651907913722682377584125182870904157462505863137929186776637715019348295133624353669443158145453578476716214671042117807566178028373649886040753371911039249217993609318402025507214793959882921817301967006414414802997604290176773570930209478597498784838956767343360039967515685818438050387491944214923559196931920229091921248158679942394774065076542026276777319889798644882681748567440334804192853291930419382761097471002340841060049597826692340114457965393331778286988672666375065658444738686292902413513400222762145316280346280333188359582886543556393147664308989239197626345971483437499466036157571543179573607069786014424485617929939096644774750278687043633215701567873065471838860712358064199488961090891104793069700332172037821079497039369136554935282518043551022263258232213656266534730739871878939275310759232590136476525628552483910342801818367063415171611956214477019239991559209443747160391655087752542471647562575201233686550891639529696954907904882194717314074634480970024533103336523520692118208335721432506684552291073064905097624823589920768275323521858234647165842140055935818429748106102490419050897380950838251514500159214036786013754121688161207770423185447139840935596090149792618719165994418083355827313515189881884726304718849725781549349850844377219943078708888231067031971856725621743305398266699122366347277168717053397997386938207357697058595921841989236559257090488386917476001800814399947073727835278193573598142218889236347144650033495674300858966310789056621986834050909438274893466730233589842729924952411401163856325046523796312794387377138504300075101665862670791390855054364800306242029524446306782492884361405215923704835864408531247916684932792968432305854646014852902463647634884313668347441802704472284331743159907225733704123152060868254280991903992436918823328628612849557545188086251391828112222205990991520794612165347795351531798152704810154233840912578337849977804179140239935168463803766525500804211196679969024365717470690526077331455330399308585464350614653796672267097036211657875259662190556102845670468913518841313049251034981247803987057465971869791219234439602632854269105694014953045663512031455458938416290328876162589262952142576363517052046040456468385630750220667231907548382722370464429518420771775769952856037442136087247478669850405672630137517362580631194709079389880592991606256764674214505685394995867022921333559875142683224626642269727721225238103854177537876825477300679315998077311862905846009705084682349656180206156162340646700632638603923174821504693446452782666523614466230572901136074154190676444479896500503617831381104165417365414449550745408909995186851780376620906982028464739820897134435679440126953608222442506037570763799389155104836508755860748340957531668017493653660314494832937106227001787343168664046014663844038100134270841994637349470786991853030927354603267255173193958387500383233576275385105764725896108875482327316289043114167941328167068545443718944646967666515397572841283019879791052467964730154528425869004558043223173369179753641916666736628851359282758769273443578605374887049439097347515908989741002618050270897259947039866280934103575263525252038214876873094600516253306888258138970546233998025656131601150891418251960874645470721168876385387779845521794752673210799393619152101838654633016387033122903229433309402012156885058331867392775066841447784782805114817003895577810393002854798908112757699601876493850722698662886520763399455252341494615157661577798862052778720506464598779560061143542357469923865536821271970491463604795942681567453179046704250067236034563227930994681187597015537088999017482642202396156325653071662598351108962014539106704023909546439724176519762694517682528403859279019482435949933826001715097189607227600757737395762461449335023311414011613607052697095418071686561386393672152663240181501395364963983699337399479765184923099116686482652872932530123404697825432853600428248273339260956617571559822158871146195462533347844210150164558599315750752980602734205267813483502434916095659358275355595256298078377891481188989885112770719130809152400826232860941278362348140511456501542764139443258469512163462277486530013899280805894996293446735842926533978987005610004641489150519644430831615253907745399310536784407965240793552167978217752881946508680581996920294587244298370556882791532738958803706465557709265719039784822027161442129318169781830981610562839771455428000136770565021793019577339647264119687594562864455791111963710049817371585010635562599291379782962763464470832378393640894534859529209465216934786687244288448450995071132987947355710601128329134219386921577322315735240310844396658715982887153879047039792049615890984488047530426485628186602237234476441139691995387246694270559288487571505086212782230775067714788358372582357413770185953058674865607937236887174468740832158428994193559195353269656612596603165474777420090741690804627072258111142934982461056416240781318128937057500007387010266289308810628132925824431753742293841342872396848594543012299185203850230047399509818167542507308661038685324347282700385100541966493027340580080675642929563782644020598825023052931619980335083746927456938721674178813552458292106052069739241438350487027914542502560455200480056513794002249415250646726989404059124462171094653203739321190510688287668939328243309957142028504113027179407384803734545217629148833347313376610874027287780760097242681644102633082540773282907526442726572404820708518305856375152223576656565484429678004669765737693159388487182583028731631004188679425829897798988000935910359987820063159574178030717895266074715863656091082973918466269497322926931005544877303257777956204439777765721950409524582831139606326448775493933280649241701275461738299734497936706098275027266424899276681888007024854086785332018172602216193527206730690948066548614452205016007729921831152008538458717723986858377026368137229529014818360727341218472110929494087580564249653720298203528853928793218640284255393485130326390825605401131809199557803126152407688538854070018368259445307977888232580091588534722173109322670930174511048137905608173947849551720949755273793948953953221401747748495845029553710187856948347234145476674707413912115022958860188460651425328972675752597728543306341896173866723932949665615462516413058123797925999355237751815819920701178396128742676703028834118789272348106008437400683397335712510754714656489977155186614497077248764808229549840803433243581582930525073036490715195071740778512272774217937211117145354758968414673411953240120129936056785527964420029637907742975477859992699636924619802251760589330267607139274606339167146657665200404253244582889476280261619381622204162531981331212098750850652145883195903962171856626777770018541608673806546727407196958429553671804386389050837871253378007486439918761947308188424689900353835672214281355207302445249179487683400707328435956947332737712556138887918321788206375188957974300240498283858860688105449078857068858783121715420066956615662291337336356846251042725169270764567447776117743409312248464636084774957019323064771970682764209331479457276924406811755767884736105225397546854134547821273455542739418249085398865240845620080840217902886930819389731841716105461298600478082502937818818802629798136666080591892340079637932997261323618030559071176565555032429897061776798667469617091106366469978121172215373031629731997133253378944039433111795175986518038606199536037449169375983804005939189665962620642534497156057974027352966807170596253010137731217920903010540363779751756348888780681130205141078461873905452139222149597627559122453126361005613629954074807863710816818418670222822486436921476900835840022100568536093147614115135317383399853955642485305160631080549886053977613798662725674776009525181908033261005381624998816071281978849712171466511350429642374207832371720132228110284513108389361688105553896209396784996972527802177697537251731909462447258650127200659632410214946536124607477756063128321614733440394823198234089357213894489930354948879770023163552048026225422506109761449043174650309513455655519267215591263955815294545616061638536314047292220458908545381044239225699821959759482165584654698749798237256433187748099748637596383995432555177901154488785866085003706614045022001453132986642383952931850511811235547971516259362884691310599860866466506615904898628614419744296085920965332627818386021986003199876264146133955745352508013623505644641562661390636826832573904408090068309717895904885047634431706906356496683740945943163246646233272246046320213553029353864548299238233331610717626295995082780980958907919570815446323836649468914654018344960585210599853665133308990180351751072767689572123282042538835893047395141482631198823498435539981947129537185492772052583064973871891951170813040479492411726531316880275687208020722993843033588576963398802970755869616296537637777929644037638314307422834844854475032447763463105691658869050445963286208218730356302513259174996861317050158669800252535619225047810555273104631668929046103576480660731500215012843232321627631313136632490324378031903149241844059630830481676111392953982895601718844815063883250416209629183045399499878499607302193687188734446752320930898229234007267587387576309808268836953751218432064493605925521918957078621573802571343373756833005636418107059158837567361229416281977361746033667012259419623806535166748596495598744660777165772123847215027100962487519081827874352947110563268988443149199416543601731166604644178566969435827751240827938377635190004847686237455243560348403250282400403014836005115742669936319507026187126777032836346067133618742476804764983842164601256923367815937518918039419921059117855123867481506840774574218504625473410307716091986539148355719952645503073391458481856327612331065623193067609971458330073263611437037389209243896828320048187656105059178295469918389902860981695726249061740542040836505664709781323417045038840775950434177325957628935199657411841625815719683110005810765087537647053255370275200951644677518718472063661414839228559134299948658266372775470986808347140589038507672320725401842022700092570344972329616338985656129861661883519005085409597041654912878028626128369379311070982954590498121957844854136863690559564710274386084867901488472234102176978111162865733702782443112888503536972877444174329922179071735125165530222035366734319299091417874582184423848406412424654202254437782121742287558338913995204742364500745022991052890152223706885361589995321356733572932515431818360278118661281732406935454077236701875554937435528910846617216990167643366693977939279533937095472807379237972861095017307286970202436038517501277427929778592786595621279011701048765344249058663120023812107347037341807603113634737653319535439942163879551490002648027238430333844014600315307727075440402193237353286037124911337491020350924026577562050478649527290920186954739557239567379838794522344974678128419493223208080121830214353367990719860537130746535151161120204478965366581552189458067034312100309634820225941609469330470574286553922960141837078145272071537754401903673047906103661026702110646470188914379233589590096153151525548534127829195074605435088085287785474472289894837939055641727706696686438234531262342058445187232309376159640747456993043828884153318843893782211937381401383330699444281669444505414634000334730690033742639285955836524045139689891046864113840207429431441157438289702288265851895541182856464605234794374751245432915882426868121152404340419825721537732642322638455115695312868537451853214618512140469149075220264368708316672727544248971894911837158648626426591677921022909106465922482229203596265121246313397820160417194362000564038496268386395759458067404100386777734330503097154809325496203797531999151819876445428461061013910604431864709608234806421809254131566572663162271947971431134490170959630836588094480767409164398286081318746002640505050207056958346680654011789715955374639766825617779409824474589536475293879215142694047093699525592075710550231930710150958236851455557473078817066319773802492836598989850192274565611133371669761401993927284475777000456836673773045009279134407340505508120549848356947414839917729507329843760569689779301387584292522429234529925705728583361055757960604923489042159783197945836360879164850556659361247907390109687793603480274886611401535372770517533408879780826761373570447632645042341026619061299190200787821056544273554497300985214003286454446603343210986966278893057326645368600685647103883883071499582012127284253492998301074274392622775413905225132770332784801022323138117489917153780289547727356644461194006698593787577333378576007372374093923626925124276958514469875561276290985120191044526952181729098320974660825246930734635796990016553228548716975122672131792566772496302538581055071903402611694288690371127569231513122355131333100285340555637849497647704486261354009661629184180372680426390410039774802142646466914108090740175262212267652901141720638128410184941885355602690159772139311680694434618764282698154462915450126070871310344105161774496253095461713424228264619120369691478473245950393746528578797639526881523344673271820330384731656976971312355407080823090681299320516699871404259127865759514496949666769933779767612073461257622597545209223211095357798381026802507023386475700729856309469914046612581646188235493832013171003380157659592592308139027514781105906544468296267349922745810998832398509739487172440542254869464714559249132792125850408855603002343600856038917734246619931454198747030153854416116453212586146153911733378233698947500175874635751119537356576094843471088021032161053131275261115953909676264728863452180699998502099119109569803170301556048779028235520968468552867730718394803047158677184889875561907383885850528454683172011465421073388351030010066138650782417079425213680169357546743473178889929546454714531284595430338115796629236345434716297676502601967451300867211336322174890617404259450586292766334867497197743002242481131875290766241968362761109214668159763110048211678839229816477797688941585069794268811467517040839735458205495603267712609934095856044780755859825335057152607122908682982327448917554203405881658189665367598424769291948343892131371386219922687610548841920347515278427566517596147387277281734380548538321703001771137070295674094779332707860841642630994640439489383545085606926111640872950060213074599571948476848685457815717778803827035125427948855190441963080723860209693754935052288574731879072136639050331168806307346191812216286636460975988599628718595208823976948102618167840414017441608824311735560334009980152028381390578554453613569774427163503457532350740442630202377552070869273448266747283507088705094660673819037013129612366972045420402770674466741917819955431773909981664982660260330546151655364466256360822581822488969310371597821009140519386776607497241100669966545208488176303017692883583203025071676528566499768786894366806160763011312447829632263660730337063181948752734321861777047836990943337075299966355905940159225562474356166962074214852635927122219919215262670636768865038993986485862597568559149297913170152685415207528237088681542889410272258131317172475717531331524014422143489335804432119300108601535071538548462050467389817580193067247054141411438083757235167880768721894542585834000830369627153237172633561538183128686883694674139835240582115349019973331507622243830130743216868944404658657212399442558518250989857529575399770543228814568861485545108410551889652261732522127024558605375287922545298913970364968986189891806120439286446376437672601867760137861934145943342331790169525390788715119292450674720773113332395874531918531239630663592069854973334325387722804335637086738993179387950603021244268989141119604033800005988253518486321902556250316362117890981078843792016096632299413648899323916731070165621078977873813368252486944740204406098683189536340983718465843053417996523947602187010057985724274645823747426233215501049999733868379129952889833984697793008742049127034591056011141020579663932274176314044242384693668132614890428270843131638459860734283064337528286259622540036758403466095441429597700809354168836583568895413672540311293161419174677065485269628356105507904828975639019213391597828545424128304542703624526290364820430018900871184649011181874767621406363448383417131995143129017633352607525094616589427262036399473892947483557392208424916085695978080525468989201514425035452321951310649298350046470488488194975521078162961673139163027541948445981650374934930537091647182180640683605704704624324353716182252640787074861755103036387789066906170737860463019448073828606811039218991542654845179630482536069164181439160792643628555845863264165945586322697611338746806793211171721763238617799267626532769402529351194796676579394281967272798481750141345217936245172127757972414213890848723626033366332554430834197028741442112048555596660264312734224229520326409674545080078200216293130512966776231411236138598804838764497840621135836715500591025687543774322102580303546986997007125612020879274506223719709256082510014590299361734640323530943163503395303959285644462561234411391573813496555908444773559465437428187183652122565586050404126299484828272887957871969564636172874938219181651994919173546229432909639549037920631170309521603268540576437040202759512457652480477030263433055233509109424585015412322326336890310326730320460881852296237010408028713952512899287572241142336418494490182860691861946840547966860526322122461461015607748324236469171200261134848529920579179070557712868996906476190002540257058465041087491751668314153998181337270367200129419460134975845379685295330101321081431968087952705693655648169735427984851669457797541720034129626230480891892990464310634723466662640109888562939830628570199226896153146699066050718529868233572035587784990139230397045743472154755437394914293338778280077185074661813670365897700137701805191907555251358262913626728644225317986159548772655844961041683368609040723719755264555395268168373152520433461446508303502127556686805877469699642020000378674112165801694907779810541198895884548336726655102381324270442126085080511579304262647400726499797278215089773339894686159316945181840067534185494571315202960928395765719853985908656696978738925287769064962613983976961244965867265660315174167289013591166645012458752049299027698711349995413992814142200376003725164878180470328857478558706347070828836592214614512835383074106271585044349444858303200358627311080066502806990414657600006345106825097767986778357806346882003003040094493118407602150153717307237531839099389921724984401455905807221940666041511156000490022895020542723011923252308132295654479207952789685300007119284248751565835194442261982009645611398938324312060071318075125714767167346344061528601980708128885508599506350949843552752219491191108937279216920144098588149046255349479779731336132669358255041348469506952512767429254687615554671276439081158896806812302414611411696575371511807754085676330615135538641861872371859382140110112428422960289580042264576190731541033393055052829392675040008147974210466100786224245124562593390814753153397934813181672011680008888303631950284613635133622566326628800120587986560886939818528076703872518747747763589824596013141706093524061351261323927936294925654317781171706486257266855836044832426470386487617760592554583102673462028221446012633008384629657718606412148338150728867683043753278573699922937594849153242499718579897723026199650287255777554480291700997149102966598672677145757317598291358473668230655587779943233976820693889962638846176832552706588806836001238471828468460865256717402979837490868482190682658120736493530161100243567508456200933168144450169415384812121323532118399960125470014422695764236248507344821042842327683135692061097871708336700030464808189277258461528875325488860795657107535997570868187898144268183992376182193360829923497013533863813870814898723110058463867011044847195333822978044772661108878074417279049526308971636977060473018322332114391123306681747160430070730512883855050186586985872316138384871765948243422079055036964531684288569355567975078081912571033687588388438644058981242839902415814891612861664917284526389056711798969830101520422679987450966532090230625820903370412164998750585588074248013508289854331255905390662921169805429593899870245793586366807811126335417759367044805845440891248435975164693479169015441713035000736245750031384593409054922131559989239185109847872116788807596772426919946459996628120405729723491899996785537502261018066469111260903563577587489833793997293559345903186850567504954088236605192760964658920018757245972444222871245078132732539716365795548310005275300542459483500909318204243469543971379204809647597934492808831789060405213765184053925320582599771602745273800351347403633537882709899322275651881471999210094958320711603064985184571104314876734722331678823570620492249026862849512933360336113070676100862555702416828833485556816725190147603813153206575844200494761496939571229335219880095915650576059583362596037678311763854718140454463941994316624500041465787210257180827370280064010062554749565380889198806993516151229687957232286625775166956435050380687474726216893150676501487330852333239107454100000970627027345194271839134167633776252478415425811667526761767470893460446354750697549997415836198741338548930563962679750903511867949170970358654523716497218769427494223133832334855172813994258312361240073275298662713353140716795104645678741715393811483841834985497689209933360824743264491263110018348917252122343978315123209916779406322171978268646273033606661568433279425560979025257320187991344072489292489876625191842889455136379019552880429374256067796008726812500533603845774531310089575327785228416369061654354193966625019156844677469385533315395810934534841106644601126376393703770819642193959207018740342074121385366036281662339200673155038424088428373428249726010820066763756488889544294354839338709164106895143619441407406036705426596217421313881171006160437702269636869596794302138307662609985209172432969242056986135234414196440381672302156601207452321394835378991837690608100337579347653430163495469237506610132191193789978069597523393886099859128420695036017269610607740970859625320039354544199927260889891097733609620191361505636835007369139595740921584485935764826734827085061011718643322936153216665184757588140965301935242150524409173378269946735017480740406348443562462950283856799490087222976389799789559085393403928916036010678844785136389054589399878680247446466682456008614660858217376384435927357047346993004966904327855247309495738316998262978478156884740078195904792531936459186343379439757458806888059850852796863514353704228195874063248235363712905648406023298432622871773156921980676531672115820071437333772551779391738937942550439174521560671637721069332876417834798431615189996562047762394724266669348555174932295646410855158594264957429484433177240096348516695679322314369588256337891512613173840089585495814153639749116076255310049594070800920745808616559223626612472375121586659114438072877064980369958896817510607749380529287708725506896877915768976255022090637949311013180412738582450093672496223391298931688473427537131852409326541490542727717100539020725050655388275235215653828459183435801979403169840498288867703283281421570614442982518296221813599663778739558688367598644520399689324609181452388288191596747085663727921147783447953411901144941837408181991439008734723956879348852613514355710288770189277642001482863158510723942599171659019649316080754579275487000424128911373240276137641735955960946536614268952425483769612007381821694226379625399679239794051263895257614933508145880070784141835288553800532661031780944525577064052418633236450734942064282360235586955704934709976394217947988085638279333933676767848108196523092326854816162295218015522612534556498714788878565190144778249662826779878896821057820015770401822316724316914202080286880125929628282496686714555017602462529176437859627870241233725775297798071935420689426150672166035831122562329962220333073409441770816492420154169049899203840638195478560337069500908430826233896891006645901443007370791641198527115527017670911034742360987909290957789370861372643018852283752840992829964809182644884587613953291531643772051942431308137377024307848740343367791137962868474589308022609232912003480406588253314521683567519269661429397983641179755432215666127311645744846281830350692935645405061709302864702816168733673421539901174574119320541691537286416650682555078939498642272227776000351315414806906322019565876480328515472949529920987012507821960863848907695080314558009206928946149940384999004682978030429695269367178015903044571989560766090139904308900810832019583912717693339009597807444677645731406675436096470591398083189028301931516562078864054810902404833142011043989288553803425194847930522303736546529774544179131092738125099566218241742387562761265591987509058673703043291043809898457829358190314948377580153237076055537375191807456573623117440357974446816351211252737319812264827152404177913909676449720478375435378667236395268745721519581170142382260112857571270389319993071569401454036400643583723374830515323031098899946214626584241192101330207612231146477365029550966276139684531940950941211127946504189749943339687399280251988161305520627923699223776605685516987210095062895340702396846255919986847302399437588420288517176021026441960232969228037726273416582253369870599000678576521625812068582279354249098371940120370224716929009688703896510177093600869891774559079642699671765146102372628745810973609520848886557814743932345113621333184288755308565825678781098187735803472641658175005485889300270445140178287593638550115716919655936687000117580079297047327546730429441273092165574364171663610247415942112425249053066824353625397075948659497987993999139941495689282241961938025940448482622218015003612768670933342975215528724296241256245887138074209384966832420862314154197927397334005886972343083212895573511496686782480546960820889407206898316912531068483923231729656236409394219333762123000004482820939116808719514740754328083843149662528567014553231081708502683820301990765422184014255940356639911742851984703362065369739924973673882669797127537778356250224669494425558449599876263841558183811801459915787191927531639030902209903646212360782255119223770502822742463813851273194759677695209014223129202518773438910439403976511336432293801082965799567746390054683431178594045594889260122592909916271371345982024528758378592391985028997555392910975106165106281686664107079489072051756365795867329425181912216407785336836661317896411441361200384666055856211269614930926034824110522988447278171640967076607827862984588672287517236892292390544907462502877657839728830511427381885979139478409491242282861551110481367442776380854702940611673542582268755342025175434206519636350767186327749894741391305938243855554943824911875277826111789671222689982226603689807839080273323904086076610073975231250397765219548508554649963219675175244401720445356712379892970887145804950964674006958129733153032094761623005004968616956051001163770015491527434388015497605522564256299359256270389048482151790227462901538595379805531364648306982400497803128720514637105925392003549969760423554010791346273763979424851562598739071055495734863189248488644536804550787070317581710087577374535175112389752996680218521680193879280305129039468106759207905860533116615317903076981047398370371770174755096587341260231090290460480784944964445992914815441090538784078516843343949098398120090865840890408617844409141026429033858943937852467661135405601354580589738929833552218031259869321438079185786202487808151841554963857247503201963481046490163508567130998737936348196150712680840718757450796070230473709934110665832383601932336984467141630185301164437893553453617593971581845472520414407325370237166768433054017897268041401116865801671021418416642996130078161901940724302993540748516160049432631330558300230042047463837008598997564546937534673948038989804437329700866054954876705758018341604434824450890021152007143996792040523700229023322820775850027266759395976418790251376470910891517269758475772101392890448604415631711858147574043967490873791160557598904515585176092178736850936189569739065634934036282150434288457950053128360894188716377892917130065973911092852680863703640699103137926706414163871446100452496282845718929703002233285390186468279113654932956327440484133696255109663744970305924048682913256186381933700723323205109510991426996090687418467748152900008423345178829732386495986236623798690327811482044003784470254151413488497661375478692314558905428314321491108539648493570949579685119639862747658787623151992970835964982040987025059209099901529779393552588999773711905572620511925468425656141703021758124981512597321751725307116102320800583289214921238798395909591491810496369035251427662449740256657963170005303233358934232270406451600024286504543650903909917920490773454562477213633471010047706871242994903894686247583603474205722178184198797936572830833636303831110145642024925178435983896964790820174082187001309731691911027606107274421278148148124002296680658247119083888172385359070958189113270164669792637365805343997143004908294153286325204757544904410282411988822546483997244616272740987818853552318451868453295577325265857341998452291883117286567469912475488301372085877270177857886701584944369397431346457576867996586736034953717921179922220240675072885950230723070547889941331949611017059433797476918163124631266258717913840071950813612418647429420126858577696497715293193081226500565916273710617716496520298314321468394943619565355114146391445440816839806551554418248048409937012694100928680943274613628122593226833072928503458173070376768083059989843923154197280139506793442486994395365700213718988122867342056341589521168447126142047872721381844356484556401540641152468330947638927216999417147064978190093124638719784695382322128468393641251216828615329198167986696104590426505861997899608723916721807394021664645978784507134520572984148452295282657326684801817067387110324552329238059079578670002091312901461969898049476899014398889192825286418099222724840298370464943124038287405166304851530161005139594976863380127212377629880870733055018327205104693675589030888880789097493284296193912632543075842733114295467330964089722227869164936727089581719113941681712623960701913102800841893368957389641108510637473056381172894397617237323301601659416099779434953657064029433967226077806408502169436901823536854442561716264856859937743582289612939237086865153349653886614177834980784826294790914027975023214631402597589573899068774740976759114897060963997792642085203575103968641786209649105068408130882357577282143710192588916214188619947676691054878589700120749748236713286128891164865096539021738432741669521414279258017716183434862894387266007731340766418669822630318641189583955024107154859178256195887721283911527133488278164701973232019643470861217556714334028242372922577881412936363528241377212551421011387257306742999436228219090691177259223206930825585581330355367570341462873720382143006908015399424990852608110720458181499377686441973555729841961099115797889582486088435128786594896914863747352517149478786052324849768101004627203014172414326475834880548791554942517373244707176996531084653094405855033890499338815449145254962626747250391205963639002422314509408010347322143012526088379999398496730594986705094271820671890248103234698154776049122860523568701685275367340846736892993277867812998831265666715718138631398781192754651398191715856348869029152368921279900078189198586911128496298040948817265915578828355083083494266952866518043221047128765670891740605711509130464619541484805734274631234993070223711014629412451208212364376437934445949177645864681896660810019614091237546447370136666440252264079937560658973503312964426013313220614982213454700780013350606058180420178672500350901949314785379385670339097097739349708363610849428910694988110494761221833184925707052809880809209756996044177159166879607568431204927188882225477540125447370146469162630735653646619251651951393466628615810097576567864564513761950200631700555308571333614892428122854254990334015863426284341664104619417139736621391013891291099610789617108974401426081781073243076404234384636868319532062085735278631255312272322157634560779033181743250763841198943255815118554546424916520464047017088571136351920948583887631161430899296069257074228489251652144039898992642086505496592592749989940350010962958696644410979207440515357626193514781501313951852917076512265295457577102691671943715538217937813036381989108973329266027750951126985114622745556903660215076252637858530870180588023229460990903893071687950400467760964750389516568719051222015128288796267194418640075244052375066979277103087082734983988205347813094055774695539755787249441768770096623918303036640938486884015258053997866766942796101686491924961775824578917003286037688687122473853799803905795985491816500587810299781688169476746822886198622792364345693671905166966890039867396862475398572327345917666743348272773625188380674375451911460300524473577524742450722024036475502450242152148810113934201331307127184827043645759504793768155665826082523271963145138547740314590617867166523700593236550701386131486903827160971473255284564577546740799360678242608219986118907509129961939931051564651784964644753789767253336296887496741910652041036027693721306142273341341531618302027678862929139259967331417376019542479945714377784353687226071716361410391256176884765061327962566487916307524635807818191762106817886482815219781326882858983995819867078285783917888896678919177431249468923904196839205062898634515005981928537329037096592899062281339400136092968431798092849467736221797203798958226473958799446207514446496792307508469417484865944411221567622895863394700695077875905186992085527678514425318129721910549423209825850944253127609204685154992786802232786774858106847478612690224437299480413975445152728972628393259942023548388200434387120818896941867556847843694126815593553083615918131440558821705205917090135961639546927181342638345083538090305380283533034512070505244439251949888446744246262071987660613584637340132698981844148652296631326242646350778763944054721684816445785059194267656842972293056524164944657673812798269592190597030280510263961806971178508171778204575881342937516994622574709278991611013778514408528054352274488869124441202692162733228746977258851188508636266683960877142924354823948969318279046009782580119236113468868919193663921105902835201023929554133578835934819178959100464727211279544612013602363690028118479773415235911934307762417099375187353593617778978231381763277699962007282987964694955836535293393887584601616928139816676505330657733950991750492291218423930898513650063303440078807578326018970152696846057271593307992419615709323239748189997737225142995891614206117016714218374234042980970819393790968184553801848817011499399776445322692115455365922008950000915406943768722938488923312757909623951382702989730325950160919455627741826873121173498762942564412337241518986018445285242926249900270459804936311244270550502090729701562462064948647017676443844723083874085361029180264720428094798651598315061250051422605436330077860884370745247105907550686701068179265069824994831441146165961179980472764785410387353728400117847358370698580527723588014461976148976440895352438631646139553035777147478301876252530213646712102277515406904624371166835550895248985626036324001604866025181317681789783987725743824112093438701739343570419906217478202994358110205148561842409114447738519358284584492131316839361659266983372191295381571327015177625057033545503166082671950222822774930279305673585231769076236552298053423623513645768074413956873425306569018055728685244068577180263666987061783265197838009366739237624096193683929375745731919047362997089517773026849146148214892717106068709548156619418811623269911147064240321092951916478259451546552311059468418192278791727243451682495106826460304167371497189073143641822598496976807061116785871094912148922947351270525283836723100784911449257014041689328324212551638794125238046250685754312912638801318173979492302864522180575720295416994525455979109232703342205475689066440157245447447616239196107636063548878852513162597719377010579505415702387473973630925691969323154086355701555944591033787391680456848715507946491530835657702778471447587571880475893272167474940289139167585341477429537355762241029456894197764556294198633741743327518287762244448333115606819064988342026237466031875362713602475786988658781851071390391106696219319899447605177735579316378041199028014085614459183039400073196852225858488653790136362504673371853330388624676025364078328944656879887380951273448600111134810765240286540246774068501573982054509670526836092258517211736254707047168132281664038906154962949436657052895128509638582295978091119716548760255189801539640114057223240102220501119577411981038230254710355685509786546635569775328989098435504039790720685585668592301403526190485997396067102188068300538664512734019762948469277300442259864162473403667133365683911574905988966598341745149439761502382722196005902567313393734400073875415676054785814770476613718946359770994705726921237511978110025391561951284162330815381107953094502379302217143616356061980976330153280548407406905812842751626870304741712241712039526390412048488955996408138040944649813295915403755018790495134227882945623230106062872609855232213945846339910876381182735713697127360054168175835015542723128333386402703957269603133115808816517650812237374334453630014571523854322052419063076495679408142448436471025554844676421776930913768331142462892245675804532424858972318125019873658655547405876834950181475678263951528078640961239251528640648844633736720704633572537762414761253933759892521003864184356214156487150128287180442575890571025676519312090146135562360258952115317480178991971026013461912419848593787251044382071275093801204991558053493289317405806062474414798875482757525413053993851136467784023428186535765870694168077943595488548459048567139154826422351828133492621721996304916300484177530319888324097373865749263385935799812093220149539403354576650002096144619054874121458857700374525454390043795017138100688856317331587560192029172879695263495413072515881174159888346352401742197031040026722786011064411006333545831431288968152801213174721691898444788313824057916329860470329034658206336104392045650188158388495753985846151219854818403344216866554749353399237858768724491367264760628635725267791886251224544474632009136841691169400388338513401847560919221708908469114392640035354369824852916609805086139987598574396244351586751823681025159266726566318551994557439993679956229091061251305502434251950420807429705063413576699466025501314945147739391210158171657785595223662711469795911608779213689290705560595214615455468249225996135951704842971987624643317576123864815114008984292415108550974143509033763170436420488379085265378018394302773661050657268122006162920797833667665739611991086262655341298215892587479124815590878418337897192647059103746610837601701301811898664723864549344984271234505999607802154734382594619454431976231533974396394434994187083661736168977552700036697298952067892220660661974071936258347124381158899418605105526922328655059654878467228493984116793344441732039170903900660242044777136175106325269779923144159460875871743318132382650712135223326062438039927061074700499935418067269201404841976270572392351377800544275121404374944784604530030613018749403235245562126000128437462932472693874210079597282078331217539429683920112770991339854278941956041057909733063235875053689373534692678154436577507047696566177810264419130687522929379462923481051517531962712607064481914875153755313344361071480324619095144638601183838048256826749810572785079153988071664383237092484084853744326337535164111771927358380938520208927869764818750612547421718068796501287460585765812510104749320069960183999785065495345696485555639906701724150826160104339777333936014687837514058043722481220627067970269331410133343019754295266498874169821967003099037662887084650632738085383571499845716026328699170874341271668925185243499834986431259887211383220094520526740212770430918066582119711905100378444193079314899389464673876269634274551537380902623737372171281750986250566627376072132470773491127617338841341141745518197137023149474727967045910958373018891773813379596970153984803683049547652253103197626621778897980800528237883971919279484266322240889259484626905966557084548460769044219909450039154362245320474479777228934412068379529776469980709659149017500843077943691060790758718244383288802944394621704081381179875350702509492591210266680821720514047932888123711386054678688322053519720720197116610237677773518522805707592966989054001349767156706240706182440981900141298680085494064545405253099334167329103022426102735689499030525830213305122707219066125290996699971729841259826529460814094066337244504540479923797901071402906763872836017765774809420694261801236414762838724694894824314628421777307503529956885782242408785666954114252754022433559591224757634537785818045751495657996096369708338471857791756173673753913465331006728370083519516752112263965307366345167233422366112619768094683234270308657059103640358388465450971404052248296809379016051383709773540152387567011096954865610525947241877193709881338013566076098354517997837751971228479320032372373759380975518108434869974111099422022726318201800918190004888858239777363208797851929108573714148691391228525400087572341045474046645914831843169524282760381645846569709171165328230446104018685324538331052283288744851396139020929946877705392458375163855863880971633375988216060374252091497461705730236481006330644951847518861098683236505560506498417026616847171617502611668483927279998996742749491606821677633262734303006128805219429000937186130848611395984900774558310569517214312347569357277418957826755441301537201792156644315407008548013837497796858719421246441438166922434443178089293656273298533183064599261941137606164570536041721947472338706215336231423000689229051734231204640502772417631258949601640842154006054679043804031949063937519006734088928073358180443706086585168801170383442728337086799594387739925220003713686526755553533104982015889736652131368750403523790730716929971451992096058918931141462853765036968442848814139521200268390224962133747183568556021943594466870354601854330237254287580242366130834551359414119962977151833633118178542922407985117895445207708752389222315164709447739419889140481241791866830166226575922396604277093465251132220753950507927548961939438362480582600126603191295243925021742951520547695106351641853630787187173355662244879983860666737888617366240528860720738137291630578248990568720132188061428933005904294542581643379081452538700256525690404057865127577175275503576394504308423171891344166547859573956240644930473780154942250450280645552785711090244025014616018228883085443044506979305688351339741445429068965976704848117272094518345143717520214619025067795256608856204635468427836595652501216564058646672550940292080080240993233151288681480728227142596908569088103038989713506118351898495466796250427578036858402804968963925389212081345209270033784095153584336796177671107464605496486877020144635731647402201519689192928020552532817263589731999528604596283421279083543008649740644839792012987324832582344934809346846929147257525192834030823887565101829101677587894074105091932849467009520945365062001681672208005189975991207360320445247695681498089940441954390725574394848817278919923647685234770887019268813200319174158817164875832260378515320120313003871684942736374819443667576461981138115660140917159617838555412888491942158742732730809828053849329018002424594054713444146718779055883412221727069078574013555636593956338759849839878117400122575644164765585164436879788215900984890841299180423805961553209328258920083152532063950838467249246807748598713135482538535690104479117322565654107000037530208891135953178377470290089036951514531123812798114246978334582878131992011131484127655483829648936393681474503801735168795509321682263637189501924119297237678003297358873492721877766241000833808186465843742333762977460118163471605575921492387851621233856509056363360888359574336977624013115604814654137074523432151852122889310465246798510917438274010295284198967851457886019281771702741794246525324834087587690134781882375026444397773137909647609313598768594596389568338957092014791151075865819053064661117878783737490692819452233997473275342467101832840376894421549239677421518506551413279681352001340303193087180311117639442254248163357060693565753220231359449723831050299145018416517191543217367513475088417984432317845425222235053164168733048140335678546532258314094049703633041617175985267738450571221681392023944744143572597042378605365981092673043225994564582504092046094417626029792674576038276608394220038765020995233838003377166665802978643130390955898442721399208314245368292597796642988415617222652364450432143224981159660912442095864735393173751310842278565973642958992764544118749693724088341781130479319849530444676702967166813561662624500226859623226011609512058897822926460290482771198389406622751010167379600900157463562349143550486975100761670860734483588781720811968427018787193396487718969813355680002218223643991914680279807557775124431767544544967865001807576466587700146173016157726189551443864092754127677445659673504426759511441598378455311165531818034738507499794129626195828280883867240165391790307369820023157556856995701533825112897081278684755462007126804020020063444946793368505529603504162521093365903159565469529891134119497139489041176636155068105714583857559093574708356890369135603057370482548398520613927706186268231558409813886667353123229496928728322885652783758197790286885565337665912147393707243876062771839418051396908149087692875445977285703555841002576776100192705483093665035324159075704006678856120174035034550590998433030937511957469831219069846275644675979490356378033658852152361262301773499971278511916553283340100836484768050548962091961102549539314799103487658538949756743476584077493616420537430940634387181426270483054647590240596537304986436539851349612515351461698920066690342370522677561641808987970478618893317284628122048268156635556983190012115036521032645052153790797758893102990736194176368903128028756205651450660970414008872266032300384465324009668070306235008124558229714744597413736991671246091151786747229987344422058377497536165983645396040178606163987082355708450895032931221043384427410830475096037988155502571915715400556217951335448169119598054379998324509206561081090379912359397220211966332471238554481056927753754322465280798883089178828877869445602289916377667745511564835829929597417150860432054103073300031450931699424977406249717305188917713450511570351662943246917998238360817177599037343167089329411989681196847115677496973631956811432879106437228982574846505255741884582114049036264162378587996708745183034557962314808677668056836315268912343066422539005748834305611732172695039784719541279971906329854985403949891260665938662869154363546662095951244065139894013254248076783528167528957506824326611860677859252481922118549833090857057241528673800205847010706087575873752614190187229140383881000408562105228990469793371308616408916177899997484675512522444774263013173782389800087033442716265316303468355712018972109657462511182048221847113281921203926383039340777600918346626075616970958583897913317740897858002176520738492808266339504455277864104085515486595622445431481755592145600573238554431834252254940676117439609240676806323592525193268372104306219427856421721656155317739938105256142629340992951977818411018498890758618194208390643715187339597116305622319985780767333676226345585186067852295551140543129445141105888992367817347377768182572625983438755586590651139662228148455062074048311684907163372873296487345248576669159762404295131891381422935935253920521601393182190210682910042003735865286456007191491187938672965256967435445948716448467677101040887176531148252030018194698639706410209361788886918022153873201828209409481283190380920784048461245784430332057810047819498789061638598735829786953328258212260919308115087964905990518272137172437998549421077842155370116633915564578457625034288118911178251969035711138823165051377081390048359729747369326766248653243948898433237367096080444340567288600792408769950455451669413125270774783414371027678999973350198542740356671099918067805276042033127411464744204179400222416998928830991885244817029433385689637525190161516400810205077984040642606256134298033063436013101698008413018406790081190289859197591294262732263864110878180716675376441915901387678780136092672721461093890196331792410959031374721849389406004592155733836497287856019494050424233107088896864053219386473478379089525996439272255754832853110395972489558348452892136802965881357615398072067134172037000854068753026559914228069600312254644731123295760675095432447289102371328763544920811870266387239323297129142326013322091257402137410985916018864701045132883993265698181224287440189308451839694607328584054644072954063957129939953678680832879746015143566664867886067660977666637829444679555121169013489907232610274778945846894049535563082461758982595619401998991560202567729944081617113468530064517038785609750709292288139443524013830184509440797855526307694182946910739626078994344748861903569827008628242722443280820090102310706434861478789325410380221593316901014185063141208023939598539733752647103775626625285761434022958500525357351457285304914007772679989678481826379882800769995071048202970618494401252504755045759431029211800785316366062831710230763272060111537595618402522588390360927856208112212004001762737794529590541849728232692116459712399642351638364335263290370028445736979120652244307418557494104454606980497433249685480710131488068777548550994775404287202309331932688269633823286539109209133660053678312343835925331842714022109849356371190477375705180130455684045715802932795057516201792263595921563037638391356275540907136331841257825516097902741769722913338551523090973244533296764935919235722351226138988220649280366842264588559938118449808861075852809246696183272726806958806847450064741545046183919032201385186907120527223932779899702785574478102628541446012623262489560372098910815439447321195691351412869606110784514556217204359560242753814505317039843129737474225845142904032866348669664142374056571664486206316587659370443490379432882184137289360254630256722204394299429241355903540515185670111390124316668053601492538585463028691895379941400972064767702826417626387328086422920141851650306913662797533504703423477258186849713264727587436729468425751460998496972517755027095877409074705655978760195418497472318969210526892130348151193742961585696580261477336971919301804299449875691817696404145167276086001501932408961903375855711278138925261612883903953177996082839594803905607685709553248789424480794487959080915872500127069836732025601472210518965346756534683772083396008752546596160740036264174217877500702866256290303323956810048767562315126563186051167273811638013109203783450817998451393898053766716804366459689526508405283735466192767336532189193897211718175714238705418417777683133803540083872926150790572366478090866638612420297068076933867075672348712869859102449406754838158911425110081032637209604736139200009906912618103199622326278977125045470578515937383196275593705674949766579382839710148762322218110531308818344884151265947123372542347992237475497702869716325732562748691544117292163333480312283659661095146616518146978646647205947302762697346571077565846872303894503177029616119367274091748629401279676076524498952397546838641538703253327124128720468825528818741618790980426450019092742331878792144375929664430624105517943961516540119707971480289833365609845637326649118583912067602099501313878954029854186499940260975692993981871050954845579490486379733690478347290715198877106677576338578840731528540186934224076651693439357173639414644247222241348931625739570911982706829069517391952997527666252741032650180682086558334960913274576808184954239514187408868889399786660862447529634863165070928263817675430857345490911829548077608352858031444286912682232443644624986009294414021837031515931077232332248220241718559144288460109002290127393264055032250877876706880229271148707275262308692460704186759985577250197195777916328549943949865122601257201737927723596524008931679894008865277096335706823935694639844555590594844414754186564956473734192381921291146292688991281724514516347020283494798455090779163782660477495450141049999161043390205598363572717478025362907230253801542931243695569857917365985120116392138071169910298123379984849221793519966389128256848719235532070234866036426303708688660504168262036158151952833428194080876507058532653424330347381148388519546832485816142820293970556129551703929653415577185194565931919171227281235788546536957247534911421229409819374704177687450743012208741639170704287010809034438194562457573099048649461137176720806357158269894317801776868509429691656508718609917388370362724810933074728686585757447890055550347924600042796792512165431988366195965621941717773813272053092734074877834737560210183445265425702611386166531968405181698624737428472360573488047231622160269306338389626582211916016221904069278630059453967240814210232969903526939107493694194157018628268365416816702686186318701024764939614466653129266305040634332296977562366554413143293314993611962300453644577733294395377680194800883721245968724706406569841838318537289320537804279087840910754524510546910791820861512579444161822567389750575050772240208593586400329613913071414368325583882278976927562060653370657794446287798979215971159157412805315827867922408611446974798572029692042254848370217092952168739588610318363915210005402938468938250727228744518099676925897208775511814452859280485429347625997763708534426271042496568339753697785404166369110541102739260212537761863624533916704775382887220045658084022411245480015971164563698946697627276620265130117421351221492943051828987643692340418349358873249731576106217111842903734470228110248986951065645011728470807950262153104222281312396000954799757622442912107896806404211401334797662189021832011171031185702010816444432293859765430469528618082183960811471763090525872364598711882620421270695426200899541300984583433122731582363614395687754406068385736882426206605247143923279317961874018968523258190548524700673122841713608711442707874747544946624331150043962984673152679088016777482262257600983256802584593412888089348077975245503707909194392255561700328774607336343527798435137452982648943820280046704924427544373540772389991858453324958475902343474993018257010330274454163463792977096213359155531572766765556215591719022485780508529723664771241360150130366023032165586362360560186460584140303610026494563325599734388894482036662034324610066491155036855088323790873061491703675137637827118413723096420746320408529451124666702382887745739925747162771928317844577309584806408413741674108628592702265806934524133730579667858618721440110404509050468666387195956178050791935160835770472303388856767972902727130058987590457606359948446250108590295798201599950066042488836566090733634659991947279477322908741958573696926236549727895884807253039954938114487724050814047958271921098008422737406743643844185801158284136885114649955615485949193219627683412841180514295952179389527011064537268094688950243147809846548392625363169691059824699899819543434302088844262255251642726419028897204526821168839919612968431629579906683671522020492158829108525997523925666440598247884530001395231421351364240111710547478974778859282066637633275415924889862926664903370902072344624965745408750231728072233045765851774974077747190354153332416261281533747778075679703400804724159076974901000671524238950706254176305961617601967152367115223163760319974446240127295055921022532795953515565555281259410687962502886867373650724503091233909553079371265769556952125662157398563980452249671728221269616310127833704115776423629292828350136093081382907206785719186774513130760328877217770273669509174253792764755064891297805404390521907261177769808197818748443272490930404165573267073184716088684078929288293948600132202058201391997116087152908063589986851123041225944754384576926154397885699995927253511303889025623425004355464505914306571942751892889063672619173273550977556254012032512608945616719561976025003092486781100117305745145087672232097721310681593085691092842699205071145479692282966435880064371679053973627675220012836870652322794460454070455365997044494977495128777794932880360977568176668430991636754163763487210559224070674484780013419259625157917205530788410334575926738271162702462085341511011644809942990451600622195907416049635137819163466782237300104781419145487506175367711490191510247779397433513452320028834235291795719468184561128359151221355475873673139168622623091642647477917613896370049158203823717380212704478900520970625741990883519176952318846979137384096250921681151735862915809634020761284504295806162912680008653753599234555454029358982799108405104261789353193368315626072274141930591328422831996681651742526780097708318143622462320079112965545182834617298627479452827838788713232916935282002327802390800115482783434436505684408300796038961601728003681220693288499172505788868537834677098249319645462996280459779970061744520672517050749462766612328563349384854148413800777253140900131374624401698674765773922735633502241082520464233587442786135235965691174908724983688995109767183033545516009017500028229915157512800215583300822364857073443388741349192709686138134698795892613968010447443773563329463088148627787558482328728378484422853502824063174935227322411203472589628704420900999389988175821233829926080165471387085079561163314602188890104562808563558597784252228656048300685624436208218674714129004269695916276441965161399681213802848893743539747595284979877250399502877647566698880310371524637094481611734783470727671665330420801785928486202367987842749082845969644266843480608216648732098594164828211644312551007257031749821006084506754910354829612696712819320396160396046656214540756096013052285418818608554839496605977785444346574570402394485588922962032693762172482160595250521929747915504633690532565628907473956959573193815984086381071577898202182197776691842034640092720365544864710556066129090573290106016125663907455240065785965940511635976918479621026532112150930897000774773813747681933851945168365518732071012934308148835293521305784510963248710482992777844735382142724262858680987831351348296428310142922044076776104886422189022982181620448035542205901611840698809731113521997374046063609708450350481267653586991971031491602821885525143092724537505989570900523454081143697077979925791305817265400205219188920133111843849929534605360710149989395298976343321540222497163061489133483193077780358853946899600365365644363463475940006504538989295704862509584822750805370361658712726011865566025096313111659099354898874918499807323983017311028998875720639791334423106968386502182977147566901228609486461911212505038476658440246663879294267899899097174553819932634631937778924727388211721567125242773793596124985164061639651908578015206088241258246406087391533723584011175292244739374424163275727223452351401436534079384400718268510924733263189988721017570985948949498791414208112802797243351834927042913403254272765677333270501243583068888890526990550255862717848183228859728149639591578779780724362939120034559185250845416446043359835593885934956390667022866903305803039589826737707336574720795118147077091982106525687162785192755659489274052487396875018225458078823239846548030167150239102328451692995113510557748943833873510316333221320960749937853448814706978540973487375669936486493585482679897556383782498987149388182729518665523876676606540708699331863470911913727884472015857466982233328293244230710251130041780148724112390894711315434563899412289883534096615107556862005490561991498135182007875471244278538290750978663663840705322194928198692315193162011477113735854018196686922154193124198189415054905747716554051745082494276550765071362466411723690764295320133694545481257651357170280911305473946607003814360615125362700410880930138454185520617758612087696888891134038413585247896127437489357589055722102632884288135365903735642075609784150612531001946889791297856216930273843426293436853306537772684845110596348353069549070793471817017765794667972004235820802425941375665721739782166022487816419066438368565743019997393268368222330967550444277846197817225753358327125229385856806184041200997283426922118011957420115919047906279834178918716398213085892664951025637732206936976877663919624551691202449114781808053947203661206456726183051274445592232036733292993712261887694023905795960367615725343801073709281207848720314329281855091985969186769324251473613476670095635373406091708216272472136475292154786043766262475911561767353003875593352721330613989962871166983413849022039466670325801091845130821906739092029604651669279152484529681853542923356402805655638927373902367774191264690618129712218556556237105183316264142084605050089003688693827768177940218882282506765833771706338087977346569328892818964021299891846337590384673314033269066685431543842989917730795538438372380026874179885812150035238028587548640049680737103972883313364183627416539099638803347283634647873759148549320452102685951582962921314103411651322067224007830387658826976862058228538735152740719157142277788270401891020329459244910707822160921026919691670345038349944347938635305340304901053791142235875277994201283793790209749422886019641192496932405670875937845727308475414167938351535214153284043210254844774640492673258210719316618871538771122588505508889926487015857623521898207737778664693220721184558171399946489405581618730102249443532002052372334088579108113407551736170339993060337284507629022687804058125933909420755530892081888087019808473567888280992017833182654717894374034704089348208481077457446461287030512531386313778354866459120768358182162692408209174664618880423622156675064199565592634314953841723363317784281254988208495699321825376596795298307643285460066764939596164150552689388471618666013151354056260850706986102523247297570970488841574718838878253270072694793230735444452172205813716456658487836811275934905144370156400324641559364176844799027996612153980192203140483106830804832992183578068701587936126588669924444000693568936013375847338335372015489619070986107857525442566443502694064187279685159652205318795851601888487034254459778657051422530180313359410408468078251518955623172345743910667538941422634631806854496096028432434168839547742367972896472256497242518054080965654324979325536412689796999087148889685613425152496175013809090800058294536990727492633302686158009585887007044205144589031323492555794763000336439806245238301887201639453529034738288919239981922922377499110091555401736059419832039878985975968134306514941888661879123966058860626363010642907734546130477362777792882650217896079187887836224996663454596334846295887812245113087807828164671972708336290054976661276926937913252878617976387414361541399134211630273878829497578075128313700362531438960661028239445335133607624474809413368888215614635218818454530074625964570129612118452609474413844031473845169747724961446164999183009512462218083488827182799644049253931263142700347739307951712478217466429230566935469524065761229546991649939456840980999126198580864875015456820209719348588323002728794517422049953434781781920750972721480918147021342614129094265224693690229592344057867372991247614824156106802903711532500948088011333281189047359285545066324726576535244095025034207269572123603285920188096182998506271581046082198441779557722819558479911307447756834744008049755189105925035014945755432845893397276629480718890061945562485843867145774006090634529082556517760481906634205991587216788831804112905765779367497192599952098649087873825661251934638611587757151324208710612624248558300701036340545540019826872815101324007175603931553034621601738295546233160091828267208334682118871087863238619719904857840150285619034662850418277496687678845934207102230488180690451522133990429927938824795248231943442417935409821623004054701428195135701976916706396592964764775389739886593211774843222624340330814344086953841924561447938421384890139483338866235208003268334989878176469290008023457848502664780156935221381061355710374394527743216417735820919275223028669072951221283458529662612981608425412961057121578150675478011538846707215275480327399163102809974757689037873650192551636591249716641519958832836266772483299241541268096358931943935122998567508876095674859456201373506815871558136672843751065185727146696967138820282875885968004103767193533956032066036098115983515484303255984436634175835166151156321913528399094500500582877252884203288782279559688321764264107433105396309257559594711709935835748493310519049240266998826381370345299068571854792344148748060465258226534530315670261882117994092392670951380806378304097442972466250555946854692445034724090713756803427319277095349359474164398061689775880922096317438770720334504644449377837787112891748378390378324501782749985491526845451271096329653168277471905429561021875478397315017225573549397859124597897399355941503259986407111839764596188322086723372790908605181733095884190280587513191437266534207130962445188127330157354057635348165660815273975290575507323228962057299389258213290301797543531616729993524200571691053599621290877058176137498296366271488959995748857429897203264495745919071724063159537467588885428913006110902425407037512269115644484691408923972572025774638800697787501517928393088777849996718180491106794459126929961681588162090957698797552741736904208290069206983732063020955870253610571744097782637674446770269824021061131070960619757483692784988734009947805915043206538463524664426692481867914822300482256225246291242440906743385909816584934480608125774973665632778942222515094129113822798544580651726165212308287511397812891178972273022437353322293256772857625301479093080632175417839509142732220525645359051014170214346543691005885233128032081859789811796606807245469619785962823917729428754829934424486876651164275751134880416077029494877917344952104529836315573774769670790336102332804856458218794081462987391951880165608311684743358931608293076449662658084970346109657106912833843931740604797757494767060213521668236253739473804095757901658955324878850899701302453946872800472855396449936981908824591966057723487971371556205516453482002655681102515931544049870657586930777700092751677502027930555580743674102023275430361947214543558867477852280887736272669842899229623305582630404914185438167471306067635638906550460709707750326498779336177202180729366976774312308762138182672038623815453255263117918077218375049785385094252774296673277212888770869474127602049458533491940315710362924527976921005903770979699624836698578451120684739272381524600770916061317913849849679538325947535321129579170035316815447388768613765728270442086326429836599067783105777403162484828431578467595653474535086816319933945204382681181507001367422364637923057777307963048999900050352958370476258919816712852205756299587872127497479214780550493544581138947799725827444142209794103326742145854006365266455945050312510295758206607365085657978180093246807336627404917728114425861464491510646011321929305295515699627537656567162631306857815248668482145223939760015177218699855345160764148335333460512999995441977018403182874264556853782990054719138690358174473029396697406780053437606272608047015383720767670567993906187878718266622255633913091031640774135879744560061544082371858481710145692081475660018620791997696207736906722174068084641805312727362421742548695697009848859174151942520711095601854818396119558063431849592221069741381846220143982820324692975181167273138955194104565582966443199083817014959403225633686439376110286627191844984895308430670024876502821218195998950441356975929951237062566163044594214919134812076506189169811465077312553002097246134938863274246700060837097572189865643280297469818409236422642812984744563997500752841006791183540449646637334141697338898674660922218646965066335070194371319002051630955520321861226199472772437952062193256495612615246879296623544007665020206325133909600300893423567005707228345949507547229166994553724853695138643131648765598449342609679967274253325135806389976048969795357088549241037422207334142233577979628979937739551264567608139579422465128551743632788386165539859692415401624487573808854873518961797122694266988897198101170801971841961790242965048221484772372604298844793406745671123697316601807874913397831871815002744486684695963222556287649139982001892261719727746084678025761914113829556783039041221546267753908882150303249443792294057791610530351167573839496308274427349420370539756730848213748222257008641240918904340016113102676437768675097451162585540354202423464539199674186213511043870181466543438911132845736244461125216037445023493485283396139464222824065547034586167400162402726015859371381546586080703191546951481690942672198022498561044510047405984260464715285675478515581386603788949208858331931747148447403244813917446017028553733682887183700153309863148486431498796193107436829298012046918185246092359273782713434063690803397013946665852416128297871649279804837325768394974173170358634527392678014660431115081197979754764060096429174759240702797772202123791502380052466998979504771421005479572348083571709883568747474775060268684163693107968067209261841836964987996084770313521559414268073764580127215069764555641848912070040694196202579539041676900219377928978280161624667381383702972176454511082936886669127828904368639444771228756180542800762332404937944031750836655990574618188514691962863513338533543961238038824063628732822959849312791555748602446843519155766402007525307894570439914805943656013565077667752488343297241479386448556020462520818728454462250933133398351163265058810764283939894451471525864242051563439717987350831562161446198045510394599748265102137444441867104856912970820435593752172041476495739473467237752072818562230705767372584234586814796488172730888617693588439226494902025900284941739193119936005662892255986665667737753872533688262012345023170102588437216773523493912682950989874170503662355156952013197417833977422707172084601928833030039005471271294499365054840619985885992754719688021658930285119697968442087542631722856589704329991452493664442147261412326027573304672462050989239773632868239606287176966259174907095842002918372308328257455212920858761068464681917617032699676827025402590905684491010636773770834228501586265248578187169892902178201806701377683455354699258752603218967842319859321937666870234216021595445720829704736235072886486197855037282318464086642989904463926100300404405629680302701985841175203211047564699214739463532202257135404686883785602610264451324515356910455683079456146790490154691376685966341971571731593778017255478728187519368673310405339484973531162652218065293193093138238549722621752302842331138492893030246925069420449705664379822209047290794337961720487638102993655269001999941541342599382212903926345793385190240010559792013676133219740317770862084655905643628298477518435772070485188050022787269779580149119083892083675578940533884216886099212531604448870466667078511040663031219064232352289616900014108250402139914410870963422623599504364034786174859747645531956840805887122484421343713530698954375219323848752486757029650997113521704370181399679011428596758677726531244789550701656558608905644070928413200678101298016180300091260557248635016039586025883920628133120899463647033598069261521056983938224454923205017555887540733994937207352636021118139103120519924059168538412112805420742433501383259533294885118144269538259428372401552740168234411919648456109857891447400214478106494252044084131361496063215733475877041643148946903012223975801823586910386442193516277126059498538927550725478454843813095913797570958677846740044633135226289953475417382159257152114136027378924704504805814384068067468676814092359447419983917175249704086830979719827980360565135264502226781923111408527030504034260381696722484835896469428821580697250768418221228180946408739175580396216632972535562878120119916107023824859749673849846240872705569114525529888919394919231842133466381204167370825454017341201966858300262858312764682578680455459921967666142840997533257900584967059580776595277511535066931236182483122197919264828026817600097412449696167245488334965732607769804526730463448575160001350780119234825645879161075147879375595807104915503272884825269588081778394458016789892563957184074135010992041767087734321507121517910677996061739028966515623933495799663987097290643576222977897974783540105951222353297547046736146070354500211090399075894999646180858346351421934732688863923531170535791018564617528127471346389875834000927308577655451654518176619471112061343198238379416149036859386117747972733888600232709211326262100282990486365812200115973126392713313251053126389764059474622149113630145822139092530766100362994685779331945561119791782238551760845360338624599192946706114206707952458518356406176850340389626258577704599762590924465939106609883524272444264971250401156973493528077306267302686068431959736262491022116858351096809606217646503709076556999875659476377483866797856433889796767361954578860065740007415875171735192741635961154615677000019080086620396998715524337238654239914584856128903649960673762443052436328382302993662986709126355214198808205007460756804467731426788839321624120591748429566416005197853971770197567248566066614357829817644708503900827855865231856446812695146057136954931446458215738235314544833678689820391232617179767973864419878129764034538683621862670619624538506524108917541585884089307717384446539212300072118961279408715863485672957060165764422416725084693553929468989665799012815185627046739830922044004425480018464540170691824134058114316732723511923162777816437541817831533070594349538031618270023828599799118184450967516243310099265014900648080055929005869730474016640747605429424029146141677866051313630773120491665996500684467216065660243846652941590426845012119701124939447125803336164192703462331660787322506187689328811769503645391799820060246663022302116074044929044679923303604832631879864950201260737464283267181701028767638427747205064723955130076948722866728903444078617355991637609497732959968956977409689369451978620471433234065997313008235865120329717237608973976691561453604950131137564659376453700962581257971021537070774885012318228050630768815070695666167450873480599439645570375242634697423416693397018457424490782776177525699765881950570883258670219854711823779037866973711403800526215175072682969481432747782861165337424346113366717145020674392468911818204627692988641639759313746729081602429792998195130390990635602022968917778253760892746568883419585869129732407532196722049155772159022504233538072817608897482341013303119777599822914657761776253913556359314633443932079014331207651761237348312945830243924338808023772895126607876996400782691804101574944854901460602292195590190946055926580175324907098057322065804602794864520245778022173587935461640830923218204151947555506274109199400366300098021928739766952692833654488779855933789501588784441880897721127160521310844773028514158870669777897076148296638406300342286260873045161452701192385805698718582029801649716067778783917038290003974400135958545273903879061451813705453923492377837397738148662012790586094630618228702202164877690735901568805493995344356566498115316354093105399482983057409319380126571616834868537051649191409988286074957576479511396794885567429982344793347597223871165552155166232143314068746045048426510486298914168097705113922910452194487098886778296037096925641203817259187863177287637434180954754402472580820029857630202939591627061521050314526276016845654557913433018725508257210765737518089614154040249658242229423511962464637528528203835899659385740208410481050439626117800617821034391135809577497879709580815883492773387694982489912972892118260046741566849911604171218213800866845767491993719527349682322673956864102625393337714464312419952445222934861228424640486046810072696428375308741484516777027875785280394757332404192008831674675382620039063173487138951355325679518517267028018894558765401146531528816717737064080387904504123919406724644441681847667567741612119022256991239285084041592358991862692811449977936472928238097840290333201832031348263386140353495814615818616169193991815424858938004240481490618546770363276913761473747411120759358604820694713833782063715692629426693851192775589437020265941171823519753452830528624077611236163726021397924603979221443635133263572598697754131951778538463768021166190101607887200643242993049188847271087093301995290436932162195799140966164909850136484838897505428163470883451981519261728458073860590793196147834678229740951262637431327811394771213799087760361183722753486925301310670447512044971951612090758904403041570451447898275581280556850426353812735844690307487210685742358936723372049406390715942461714494433815325012786285538960478477885605881049398552238698874984197281679066091585342501565505623268565270199225581534204654876478722068678022955529922394562383364269980810103909542226081683784508863286448744249719827015018891482829058609745773696510896595560395542779588605048899774771050597826113499320063846900910769460920610994511066792543716709520229491594228733487809607589877579641456290463484953990227979045590216157848857023124248851190474428542886848356670917638173253694187454983925728104404740728979156451510319174422255286044799354621259798300671740579417174761586076477002784366401637823529144094314148548136325037939638387227452146904169872316037745690674696752128844336907056769530766554809435371233588602392431730367481136598449921281106978998948093314249743673655816617682940634977492934192490437334908768510056382434873167692283208835737264340937762031692567370857656375574328125658052227209818829630083419772798640930691966312103149418491865027007285133189758684698795429760607019777087259129943614565753744772667416809876535026611927101424999995455279958179136507378874374204370440642351968426855062646976476917106104771456250651105978037064226434885837107107925171185617581290439081596916033010583049729344116947134342986643697872698423487390042030080095112422241194653725737072723499099556349894116135278250800201707227768495773060062550240724708080071659327174112937093217139642129781780567700434303727035558456441604593436240707117623518748009548824380442571304349688774480727875246112357027731313773674011935205985649586091197340721753786968712203218909309738227348321171476356863964354254471506895960697464782945804601958083475861098430547444175058413332063073817194115302082964730535780564314724109820758858929115366000924773344880202420974255188546376368895820991717851120280432733928479682440521382658646813553005310770805887806758574542572238715189321095346433226091398566757728535068041544411779303887307455794500437884265712966607512332884638373368216694744379225166893897959144653037116484769857134841522969649097057113098469852323505615024113917256388489531785353792129094533963647161619456167760981701839948627230803740403457818874139512750470416817692038549032396316350570544832903586414264369374577447616686609354608937165543389068470357235842452471920079067550272290488031105444143103349714665728609576043693107304694594256640171186404580696407256908137625791446241110511554835615332932940213367038320423919217860437381795576018887773657346022702878565259826511849976501847058652741115832202458378348511908718233842225923877710589717482507849374252630333364942888424456699577235740869314673809580218668923045664233656168257441000523222429957934651203578961070499995010605314808417580105719111810904031975456665748032518842758529080181237425267772091667990580198665677982275037919116357500015286226499358237888697202514752023591220246300059039439776434598052719443224286189567321101529062768078740074304423323521162277580590834239584759434623444527153410899025991781830591599140056239759192882262256108455470813221174363602296557494743851003678768020352625791454979711626335870318241804517013038696383973758987568052699121532874858046278157161254890856014297735365203740113983879978609093604862447826952005899230213641989231951679238378918033700159705289838385654782108715987060413386787887123995663378671142887826301406845762391602494921638204903479552054710450380930000788628899733149466529421803656081750774214420464310787018499617594622784938880417239938868435438939798159569637066808366026115904865344744013542083378600110726695049314285666674737305383531469454470989238168290343085120324547628406875804307336931677407913740009308087306975452062836228214535594599307460447325932995578477957779857928053318458236951627617971022791514488194945718295775210765108134791794137180387899140690137172828407089243219715400033706844838485612375272721528814417743712217696537698538302392615834281249331532259649458751388018447583793042481755741292372513946645615284561991231848674392106198050879578091621904202491372275584101409175944572105478681439064958850772131024851695589772827407331482159656312725306090582145663894096521357345346556828853252655401141008706421176768928864962988673451845408639583275032665320641241829581150703499354808412178785913264037484108808420803549451992683817644450080603830628031326474506250294844687185299863177332662121658368759850029406529226978910517725070639972103674094544745100417633231709402912388978856636515969123019464822369193138091440782374357270913329526812470692665938295140448492697177397815852819594402611195813531323176899519269914010043862951523743210979001734325006700774810523821352985492140152618117780541399322180200660402543913977906422611149150252842257648046017824991000348941675895718905379802596975678833341377936512082101892771969465658300239401030814284351526411685079251367210326463325469082868176585301234932790941238295558365319486959201481403532374028361659604885893365465325576575746917456894565819174770192474528566692870651892929837155968415150928196100874887622360390049443108852162701051120854550237446223995003731262890862174416126013765499444116735308728122145575074697271894267289521912408027715247434811107075729398329901963035562078740563970335640233788900601394765092281658227202181395017915938411505966240853301023033375314395785660127870629128453056390414202121282315739467437050776647552499994798076622903874676199391702100564747705193335550322824732314684999095964570297497118412459051137509960485631086948262488131108268769731880460882774387841322471942054423552386764155663183452901883473331186045016556021587704231799183020386253738889688706996529454934684913353388073996373112260357478063752456656744792180367454756523447022375353159928196369950780279031270243991381843061852604057115573068612506511168676592745118541274961735425449115653298987282026181565043607520549228801081590137239580624485417665061664723296066389052080671583919766244057742731411605775408667688739558943749543818211546504739455595819403179859316564843291008199548444657031311240469033748946834619871262561929723458727062608758832624732089086237272773822069739268933354149300071841096214045449213073248796828762496712345436539773680131754294844048490821462441571268333701910197596133010040686693377466133370486862551948228122104523621398290985736352011771317884802806192596842537575681710198855959769810919047196412779869981362253274714662348094231695279911015199254255264570578782968996732115384397148360137468995694475467899451249503097864403556991498183579600239740407914143111821820676003224955768913380614080403367817531262728660847621679074914851581222492373080572665022199844394844415875403891583675682056509565326426234513499982514649251873988406516517886227736161179589611965020458762623232425750996224965249492001423284690159104349276978161569842333436341517626655553444488792038413581470891921859684786037276504226285118484398350033115685978100361948286108064872622881206082361997174052817395410746772441579652150668784610742574477497996285484771266212096279719156339138339941801127325579746821529067717183060933207395212263794941505286457156425940908561419053749155597415414054157472347450183415484699537356750096391717998263480384725564762736733970535476928740754997602630016043228043730833093932249257778976002117671234426981741316025985029175903764339513198587711881949547555638843907047754282612225130872542581830321586587490070189219827883487523473373573408491540486101385063582072828950580785125119253568710107555368073948467897836232686205937796311827098153615326156764497691295188799524883880886086696679521928006062336480559594524627013676232806895647085798811572507602200158538923924640861677025379294119802784061992152039284986907056294623014622270357782429216990476595387667445540163761482600999835308900395017391925581229382522237244562801606749794555608866958949376302149373288121321274520968120400757565779348473218924378171456518481304601090315679613515831650639893179626958920558245018755169780857247505537245997566817806800375987939188875813628678349911931541519011400164419656997167353800132169341414835032596403444717650467668757420588331954392020916360153360636180999322220128639004972905604464431716845549430738911456413709833122511702251026949468796650241191743321199570875468601248722386282388838087430972544111222324035109359193036528759527145206395819167651025760263559781513128606910680469751452212496489158102271192163186291841645132449571626015723390149466943289974461357623809748407309531206649655274385852067478209037955489907188951171874005588894130022093101466291596785412849891317220856398854202912754559699832595260738881574272650201267681636932946862941050887545307719946242821663382940023493187005757896569214799057757708128582676281136061504761771634918349534392385892444703146520713046819645324710829178642742025768850624106055008570872864253470858881789003506433556386348083839771321229929778470902173057201615005327482889043787299052798870356329588567167059345615100079205540183272726205896021825404535499014876648515915003794192977312736451551011838818525445627795355833989442610849844837569473893179597131577507193762951959391392614305272539543099278286537072512605142409816801487680451755181704833415056613176158789564677286244534167865689878586242988731363886727617873893491199113474926638435450659478597195889974177067845257487756033920424519449476851049621572123061234377242828178090956430222196526872932412710392155498500973759105302597247123252756472905030146372861141403208697746209595771199136189789961265591483168228167060232568823573726318100876276410897382842870901734151737706746234420773108415779156463773187212941521266826214509677235247287444298368792464402652042749067531343735312266409549298082066324318088157319867405833389880535276174502807445667670577739944037497983375481007142451826971685293070105662165023330501876032718241192149339486453941530758438898887785896344596024411110613140229506453486825377474695128648382589916164239212136971928677526931553283692056601549186951735613347657014422237706593860122712467006481233226632170404414252116777540872369410243521974488770430754170672795203189496156186895812637143564221078063868137385371335618410249635930217810713340342653447437337107990292026331108743172670390491751675581839201513586762048866118833306224059525693524027888082940671923995916046476271909510390759862838353221260410361958517041434702769836482729917142641544971774222376310566784175296282322856706967525171942850082262589501036970876144716573388957788392272347173893710702392353550074998758470727675112433331375075962450574659371859511151892383815218854810233740967611878586983376504960746758725603185630360196755824216180965475908676092031925875545070039044862897432444927727905934108106549246467106373020974401760182142091068206436123209585190611305307798067185184082837537008781740293147701472814133031597843137606760148638272544462984658125838337602552682831804627115061923403284907184706686375509452807929050003111053512594185210677834476864237657640857011846534374558996519161295390865486368581084389553978918585615412986691177842398977515272596217957938869141143054349922560346028548691619168661143372039754992977224988990001384836474158572862907080495974786424115964536947069272588304977776408553501627392322971074087017806335760398171355553655612790952207307795486822489297584791065726586804664602023939994080817484496452116047303057965327414342407228030088127898018746740360694527125629691909639513178000337642573471366156096580206003678068149973893556496460955472790263126522076701134348535695035336991108754538079800463049662775827018014425543646631644831352643610426841753291578808453186772922142895748764543672100729635956665244967188531037454771521340592301028558307677839936985445303384255946141242404097072753977767238551954840812640628009198996756006460996895491195111359898758679491120111477520196319586340081356978965341194667010980981965919413579322146707081575484197994231005186726085088886759064322838978654541561196019659313969243112035980998700512508539371663408907951891281464183143446170256891330372733999878522795110133283495865299600779919609496145659772085655266354460030266943428324817087650121331079391987145998945162588830293880937853614282646511052726343633791379856012761694999567094836168284706624101540808153590366004237713014331100035222160361787985392597140610305245932517255151738614333322600809803476609582705627111484458099303322260675821501206223841740976450207976321217715645047324980960266065367575961957551250640388825584829554931803779484443978275524456994386170627131670478680503248450008610673374738474111226456097711654206544440118452789038748426421894045485001280277387736899834974294168614351529643993469186821993285975303689616225306910091499166803736165930922331494199672451308433293173996524457681889102263962876577136635696770240248252199540651201342952279696506251806684256934587149632688092813441207477327815507302786719184234156081691712168429258172461431914941422080886720595947466838700051643095065470618866734505739220044527060493319710295507314669232113244347530763184081927829581767690041387789959565502530266140863379144471706147839123318888041563233734939843016507649303562276907548716621487513021166266806985154036274735871095031896506528339831340179169353367242692323742357523566317583490440658556855038800690936061577556098051427093117808409968331046679418907221295887093787442686144633481490971544433334402888079924151574368526631839359396673284234137344243126393326133263348345286581332709225200295301143946360585085773848694232543699158818936892294526366318926113930362821195195758162217968445404988931212372963038881737047035099505947629649294680710864482822384522541040952941390595742013805817157825975345247615315756859040252786018617076745302420720869441558633380246305353522275489314333187709255215086083523445218987797910455309315697610210969585981799420081461546094583527826415999805142855583415061285404466174761651113678684477697659101833416799546354831826965241289055785521832485909247913816331450971218762192369436451004512661518754292273254740705119279165197931707657590270929763727950855649214153045455656716420375176576639634837268596226023915948838553498773910532888358353742826795322046824123966321126165281656369117062362040832234704153502663269199806599513456302295773857071490751382266917782417071516731566764381839893393208762819044025988857549051251598731461028450763829879011542427055592443569781474343478877996089396008610088219031616651749992388665103534717195816889243523988033309814095839802089721663486117423916479201261034208682435268375928186974839477459073001516781074545942959876662166952386158077985117882736848394865215657100599872477609660258538635510685180465295277386278248560471944026556402883923779040739748343201512238366594837999391910955111977122021058067093753805320704827652533718259277145380890651111008687132871711386572080084577398289148640804399367055382014518123876721537309194683893116368107536012225325011001807349383147021811957581936306609942517156466479161967648301318103140907048847483471473113142851699434881895880611623697620189150050871557913347784097989514327789516882785997007119460362579761147472543488871427237144318494329398793407044748360781013252236605304312501501558196034090944128431362389653063876378357778844681303929924866022583782296965124621408818833017635710163788010349559846905614115367004599424381708409411045554530562183667365780203416826181465717754085242314765740716595567790434306160300076003024319860783456280299946542285298475159365861328308713514085365438821274157544850300200937661541169993994309500138140898390349219780147867288147792010912616325197811430287485547291765997707654317668295934313532305504856667658251280016971989260424589588402312371727052922940366044254043929531179493426810127094407347580640215239292411107775775779955920676634739776564336514593981649769725500874404464086668251453688293808897918823569102306156649631600404596089114044953740461180730233116155541858788763513812368925751507903638694290645780787639906695522470568979484845933415587955048603943239755521578721496075884074269250540241931598923415619120262318362726146118249391428729763263287672318736256431997011904559610073264142794456114508707263860655231998127255247067770090026890438080239197021211390801898944395413209494747925042777550481093945158827511224996449118295712931938023396125538127107077383329651168352582935406571760310735255505246729995025654659690595300497398801767718214990118242500373357588770628443568298552791040770713019606026768262713116827760468426774110848895136253578164841994950020360912267029725123008551948820337950460768008116886979227772085361879650573817957527183901361260837803818500094096287807024724364680920539463522553394833565256101910503839836447284289415626867901251990623799343619846727024140892710926475393587631220686872854186309756932178585465947001918204416617050277336756675823698234725065948759253566604590631651016649310316072551615802276060481830014918421713144470550649717708235813878491998008547357411429659935244860143893327843170352392488051958684709838935568664824563798039321298270082923715714435235730797181168503496430782094658905560340936776215944505808486807526406150523574029131701465986727209206319761049610496460261613729455695317311686414411637108279820751151214842579042786158029057031767500719192854467886604367510181753602998934078575852569082427295602066955782535689077530914367138564230157827301462599024580381599256241609229386082265559009856726138573584123972695958923824629014367223491713977946807609265664627212645733185402821854126260975976414498984947901907435673739648725127183884456381066091814257493646402950005564505119930163393188067231539048516651002191015233585702371784549563317145017264759841925216901205461322975725648059848892851376104267504572870864000353568996423008192879012643707955988516784206149823067359180548570712576635681043836838350374322541834667672894577003861909922170515849886351333483384548443508955486963884241313496525160741245188479029717729212320755524604395735492143047774217493316320996471533524482302792006037577976856569236704919430292875147941445879255474908120740740526892802628088061158793778606286404181109200160151106181575501848523982186674594733635275760993420056406838322704916312405171797421046231206586376359424318794548771585927014781629700404527716441907796582168013585840403790233354816292175734682687539482369820671739037285078773579091116398412000977251453031561003879510939230790875192814816809324445514508700990220263754875170774700643242131614922974131625442791100196019185374589426328337919684819673680951248954652936845556841250029084823461874252078547013707050398378706914541876948319795971506800593837353970751312237779588933531860929425490882062404308421141642701989673834705320564436861598201677961770498953704119335265588538934130657148908509313810539571926507243912575210284282478402260926794852765738618488513425615835017095494698875350542480681201679082378664992557219076275570908609197225541361854464783103890510245523612987104764475517998896441812899432534949067075204886318857712265310766777409016555240784656535131310109668333511483794041476188284956811381793995336602531593677562089363539510385522870446755736192696679588558705006831058731135658400521170173191787960975476816675628400659192514113797089618441795528578523060313374291271442740451978806002010002488165047759559654661674100043590700862463178088749362315277857558514680015103881177110757301035633104573930093152541382746353222637895477362784228124609679030136176718504673989935015579814464603554114555697168523519916783744954697609894707793645001823541977288826677110422534364837053723591152005163053983760060899347242157996892002221632355621776089611064691945609560876266830652575249881998221835200652717682279127139687025845514446216844097898675371206894438280432653039626469301624816220734058451850743511729762431768169559934959696745894805812581716907169761679997911608103800004518235061738421111099323199168671100208974454422036251744210540896529034047928030137205750825920297871586705251500133072375911134162370300367022392364872096301410742630977926519446070015388725365365382487060730657695584897110842546883720089013839417192900481568744788539446711534176549449036436227673825927315887795494853469509547711184472619687944674108693832152593626267266266171655326625510558515505148219503682362425324815535598378998143401515379533232454831072405805423915191917830567399190466741665609067558687212051416525777579821329032382239494587334329550004510861559801532770277445384157989869714284504903523773739662170231502391938792975303787152430786252101163496683601432167158066116015823227790622453010374951580326027641004085736684543041970973387378984715431391278310507191825936772264323505051878898466319223725825932480089786260786708397432775287175965377390061901113627484752729048382256059000350144002245586104439801339461572214480944163027608189732608276773554146027397590926638591208126509327042994335596213123309431916927813525404059188477414624567119292622868422749293272123889474021241243009136145889965856548147549942566773041689519873802650983957667718679528472909718560811441286204409460995177240981240830166436568293788133094969163434637613736160840196874577662725598927182776321132505129322779728789512396707875454142914679581504342200745142309976749976369836788443138413512770968999045440564004895407803518580935992087351948426354779954778705474297936268051525626311537333734341202510046997601164973019921305048497544242839119524614524020214748158228008098664763511301336097015745551917345419906553624354664242763480899976310541727344133953809354786200116096257936394634705982684571814983419091380538690452459534794640780744441236171901498770495638973204300681451151205535726057279646460114927811024228154965114936619328544464453871379110156461977225882333100306539091374464975529196990624256251135407456462439250594664199821299892443481737507370146177498057379118630461878561361363299067673969706966782898206683145996921368115778341536818997852217716758243668810102182682414688346610559094284111045873725586323898941941380119647485722185962303286229285418753582556293847894947567705800356399758461054137425035723958817615480516214064784930793824321763946588500048283404902890903060822421824929872526786173240022704076681519942502204910249895109756429483606833369460452975829384715205130294329452443464701655921157711617595442717336920351344028527074427035839701264704716046024744994464815105243129951091725903873144413709506114593380886873145999158324475189027604867393491432225564200451611688067558767918535318925448101531214614645433850271225888791912429300462775524769577662231837704589390416273476246337468638004586504116259266551586335969235211802872389780044772792497982095108160269874142848605152182670728559974209184023952012226619711967513556443665842594882317495983628665145155519283452195994104106092366516628618821789567710598910040661730968778055682130796393510678059074193532938629580689225020541641255040494286196483514461154054867358449115697335455218884349086545964928990662335999083717516643051133188319328935313027043183787408774985297713812744857517652210755038362025645324784806400827367740401252712876496689505254906337639023105382500672862897344530454085106825346986791287921620226369380279637074709337754557676467455648158924863635138928134050952924373271481078195625568057255988098358483189256909602823477340906704276348426734147606512683034660426177553013825580256053587316316769037658165615708689749305101893056577358525171052484322573221439554300594072710344898813582856296482192210985959824307379363759897951866403360781664030535116875393712214265628056660422404340348535740014201713324462016465158446453153023523434367600909884560982326128959684552086909435059758945416854367579492976393994041517862018557315570315324461146074480546559099011589294065455303883972499125211786378734005919527224822938259695383271704697095197149591996634767833298064008790090601134414743986110213751606974649554576177000102482117010709590444175521014631221683585679361920475732280010937916825824477973485691209478235151020235923869010673283278891928501571565455094899448917971227908126013389309969518421576029406650275274156428472656451228572571710736892420530151412502063096317796909016100042037830957816057527144358031685444083707386787092068267332578256900998139423537453352873319463619586386278710016956325687808707834043245608548357796720564280740355737914424365803389006802523175705093911964383712043472654622831006774595902892157552291003253334700556651576317517015395911965646176933520979784472315163702240510307054672014768803537859179528882787016241077178848634940402969743292508472075387962241644076940341088645034046669242726970689479784742253469781965095811225372086311784349500820609719713464827715261893474775232177783580178304612649195791291713499522980189858926063725483124339890287595475274400978821042002021367880423034628757988952012407119957441103911138375809983243284201053536995916481164055923201801342585790219517165132600901579771588528858565846886015350539540340823727063286966518009366860841404807624188562982479187873727992135346186526254998895959860143921870711782474537964876984267302124861873879354436539058289808727390482431076322707703212534856054772808693707123049288531142141042280311283489857633900637333121183476299182362194485631966747135054037554787782387109313755510008186501532167860501745782508072387550498519430573941994541875689978515311590671639041455244690194264864691630089776298954745775168986887407759399496280318654340298720296492694775929695930406911146064106909597235572060879743508325172231018972295542984792913860702483161714479027133946775948668670495930526317245465163242268099901169197490064422236394736171314956327592021485230441116715084322907288015955006476156027956371470494604061550878546087793184676737929307196151825509384909105469623805582869568859757832737402644977676955406479386864538382736178629607474232660085725940595100033342840009613147314983290173029962006301985280211799143216212534900911958533153262913171245122816363729480728605182777671105786441618961494061136036504463323400981586162411853709275394566094693863389753386060965188068189830885479507518061338853433630365089257698256501390161602357803218282922423478641687711253473664001078639973083268604619521325391866714587084703905941837714947449804949706822895153027457647062902641053308276450160946638396289530463336450538350197359590346850930130161589395760379969474416975098186918523668447170505125366549553720985028070004901103602804908014051194924647102384897287289553350818899761535068184461066195941487279255081852654746240533721239283977800455394493540142130267332388293504709320945521950506315700796680352058340478773692828995602395304401366105053445651218546381679280076047644468593353069703215794891845150903610634975517427535158002775549427933558135335865411069735680023418493898316696692170082786427846286885471860466648506693568247985860085892515348232947324686818348638128791992766613159466339190433170836525522877772575007775063351832363263604855388962849867049719314282635226678948180978201102159112562810457327837439280453706143673599310565269766084238912130109885029043718562424767941533812064158157749839802775766087454472893756070693601533348554758625612953396704599242050094015092532247237932326103721283045755025202561907807365923111044673598026295826657148770873088555571262650481209991264635926132770189088146588447945894655202006565645451214272994793398915919224987385623489555509963234188489432920055096893984266144283614123653187791714273558188044207133010185371266770272573384760356648177824659102674828863009526643401022303902120152396073529378370265488033827495048292423227225630960918604038249102040790220576215249317935614619600516743838734762613371848485363556793208110331578749931032256029199203322933563293160945986910390087617649615020022786091933470700528436842783673139494973517199738818944410334411208658741999927447918800721317852281605465351499852305192856858747759204354535813764668254155947845031465655265386091952733900123061587190821490284945585461885190102586021552291894820502959776911113131049002791140294573207410336327017325506597529672701823235484315203370032823411894601464622852449419437521486064220010925197933721288441429466072871450019576061571334872851373489469251736799941139742836063538564538708591713054556836698378976193136323100774162380487425179145960978308736875942375577610070530729187932113356933189218108779291286787333913176315661280800622682126340547877135415839252572058452236872055478189411935873702245324435424137725159551931725844706125740495624994612852037265938783547505060221868070316494947241551192377088163330354230189199829151146325950453182441204331156975300515824723947877159085973263008880890886566836729358652811098481786217781591802558885264575044669900018547624327126209080797969974957422307067927435177554811732959299443813083328675231679151715159140238564741919601946453059088237886498161447631142076119803935121118561913746137997384684493224874475078891826836681399943822282216319438741433209545808839075208525538368091603390669496124576067728051545403412135129185039710474972553574494092160649276860057030127599294858864802757588928608251068195889928590217174151168920637880114839182517689514138998004240587594492851043025019310099136111893965858333962614428933472647423822228998351159368792849832192210284309138539213336350677043349922893653742315294895302715472859714291031770593645253735071872299108331031384128893824121389295238534123547499399415423521794683340485604237300961306344201424354900409154219357459281322334077934658508162078520278980886213887262477409293741050669912619569561094401235878564107005808060378745787929968601191099908200264657134462594748587952248579982164039960884876313416137040287688064045029771516662985667983011649197995455213245319062008889046204857560331504745602136289653082706136154389777697989061840772967529957880505284584591977271355763535919349311753226580442222433545994198488667675251005837872046056431875355640653833724681887876527822485864995615293126803409205491685993577292755917331594719364147445937413281270115209586740393497500851023954852069621980292751461277123422241455850703504293492758185285298139449468621529762349739241551345015761133082399502698636057570043815399428629148950706155605694403947167966307204902861392199850117016386904163827737909038522932402309924994304302626806573154946279644569088316541905028287688143996602873395633956026342218752431364774108251788028044761192819545900682125174341855081220933742959396546605943481420873676525354079149197295916307306905387370644189070492854880473878612907340438348367845078372592763613132196003770997636398838231815594698466093239166846568680019039288331182996105474977258316465120908930015447517096605927963173353938474230854605370158720007291649298289019399337838134337311356156752893438622705548517673061647864186922609242895827655837613114576759390053360780635840927780273584802661989787531555624515118719121856293808568339532186920536524679264997019076519087996719297351398589001825247662179891869236369954277802908976324286202237009928683748111720718266102466362777696506466138092311382896493129183475584780166790035960097887617214508103922395020887399595501444328224791829257797006512887333723745098372852518495307484005424898877034979937419581438068370512992408934237058616597565433983009929770959000098643270553977631057160384260627225607769028625301520355083026684328585271743859841534827062754143709428505080128472354475910057308016606058046268159451391417766318913240159869552987322621189546878808648424607403415284972771687124921832303566773270750948314835675834380911636093458644052906509052807775713015122587505800150382174861803946189858942000195577253116558680277917615077387726530755484814498790831599779195514878332731828813773517953459580149549660114879153544495251235416989193937568223188109575858054609225293295741190444065615400137718966941903658419033648410108424542791049416665307925435214370067273381664928817635608483571089166831720219421870451799270945798087403592344370851697146343013020098943169151839085570070354100281965101951629269551242820241601064125528455635562279806462775115455542613629131079720944012269288461259743325550271228649343263086370189372695489336861172050661093191821347257925627234884438268882301508623552938326963667122103924346447455688809957861926900348229188162483055207446388244194942581530312643771939676672859684254983190320649163044451171975037270525211367332592049474875580916459863803314952284913216997075135400589375271127691272411575204777213880719572343840659580134099523289360045019846448408115342434551517843558426701243645888062324510377047901291941836341833011274243259054516027596201671161655082572728759433550352948891208027185382824911318512969512491419908058144757153033314850653315657787796140860317229972489695007878185461589171830021097265173507817964460453961737451833024379146131044110428600615398419686235029402991359291528551056012405651694638782475495775497683774806009314027729869705087781104305976306083641263873664482149935246633388031495083224662975440385263836112555595104297143856955117916389424960252855033891489846804868403567298172734072325955582098556646651375633099451389202344720953293166139227040122176414538682978064557318469097665396268576044164473963760642831102243839562009076188153702812411575760868622448925550658289855422732480369867368664212818369862784878721073368182849339485325467851630726344359252658497087546146958628647349674284897868665560484761521183064195056710936294906992485231633240340793224419477492595723857450743696630963519685222874339863876443546205008619030386994016234361819004711998676249276261878733334783694556405941903451114048993790184559506446330691532127778063113907386163906369403256753723837752366350482696486662706502008528556001321829907621955004918231859131303090174405845221196251108407022697808610117452794451746407316230726898094684444482322073314828592020426483345977439737710528644174809986208822257036805470032071148223201657955681538535630977838827934954531977414690908734740035099057785266762818104786194524279203819105507506740201541018705367625372703922533932484963002500459526550638710667371111289003807290358642437032874896954504651552547531591922941361273961505119049420635897786976757442814311135243531832547364910853669312813216568962544075532297923285849585430595670196385352417531782768057617440946601035766700740577047121185890275395508203886290460425109875224901608949050749186945365857053510118604350614849190288017807076098560819964921099211579077636320199191969602359758738363906458725641827601657144244956288377242521617581513450276972746542656012647545183208540940405879614092210337736485567123318971161148922109843113840554575252920702323157991609984162728646930260144374997061683756912630235702896269913284867958974240383337838231107899397336770330890182152342820719026723206318531362229421413777106269284983899376512188196821362728221568571714464385301357086798985476857979142353843428251549694168834061829324036708339653761771136911787654018115741287020208043091684318972709983265973118750417594545186933752721302799805556070918103572508322159145627520498626822158718241233518518198328576782836781317119635281841972948279144057656373283557816205688728675067109880929731504134293875946497514604573824979229891636256444012948649099040881482067838738540480847606197740912225844480304476065041735246638931891636717988467943654908254695687878439326342776997491447979052954215268260268444124062639452405440525650161901459873203476596294680333976173734711981664493494377288141281941579905620519040391050739992829973135380753069389420676746737663061555076893205529610054688285635600855899983123601088217805612134829168306572483852886133771897872968171151542139549361630063279211435255494867935294607185135865821480711840335458060727530712884222628675584319617207932184963996177571259165324236364647880039315316597751069449992078058453102968455153852809526506265122722299652391294727231342583623410024599810186972146714778404704989585082837827138331155923140967327287996910895420397333102322171984825198281221983096519706476873033995314886094132064505434913000219460957938504248995760968288535096037987939630517193565409663869007626345765485679346586151127715725093202153393073559144384949443490115528733872049696349130974787295581444436551515818896349795602943641791745870346195667902111684449675944190536854167284684613554743789077644548035050988638951216183565557554673188214819571619857149403251980357756860749563739743360391709418671209189342799633196833521180107334767771602097239264363782046621369259430934220868597632744056244454613713951195659096866050574137273918464839701958894238554671193114193275534281918253704616612944685496219419856193881662687518179176462127141380338146076726228793267170032855967092304327197188060806217987402843520242190426644381711906069833230686783159124258588485529316341229998739925556253524626770834217417832655475337178332221182482462605743098237055023546971751198728975448387272153138581575876007265789720454881302055925607796063313191748203255686575379096729765866795053180643059526533348647736405323170269953645572303626477559190628754251028054839967470528010256554116526141225734504398844915021508981693372500119036722216879510089781414449213192630172303236677926153896845183408354854948758716199533215744405423487449504855939560589573496078491288383786027987053601842772839190381062026334792136744440712141635389468535513420637187971028801109629764629735356682999990586456303714485457129142432511710815947623354650333345502656946691059893839423306295238513171476495522300583264599307537096557908807761069491591851457399892243901391984993539171100013776571023034872565298668993252020760337157269783258151065754950928613112895002468904242491696461810848675799168936100369800231117823691915225881989943756660309058399900324729224349448224017992324264135105004967802640943063475956724882017802169648774755334765974449858651399797677476602359573191145307771026342717768500514192625649012873037895240320900415852687541661177760903064883477134231622827528679963268616373345821544769807912815318094147641697723393704622764757839215046189614471031470142582980777641876776261297595058999918599792122956016900536591979177834513934267705829100555779678839936096471693040856988781352004455968563379572246662863798671949883596452702146372283912296395069635924982191591981580747774984201070516948796399162271754567842451365012363654362107515189560893774739578641416747838514445048388191806338017606613659801460039065635042020090058602679890848549777005111045703068399477695320168272090751411992658442948452583753613088635335755721354170699752056350528784293291353116294084880559255054965414384196796994146359850404516590136415394116684951349262543831436346402328032698542152861388971970067307959650244328410108716196847030216513489154616818761611954874729902244153794153041347376412250697034021384041573586029458694240081288583267692946907155436978454099792862477920356403406328271509927770562237484829301907357740206138110298565185602286578251342386407740021394162750764323881904205107826880172513345344944877664177396457616700824163047292388229754026908741180876265830577216601939982074791626939661850437913794471605987087347778931434581938179763478621450849083775826885982466489156397588339337328985497853747931832900576310333335675741307240921602720714581838246026653689910675144073791826941601710945917867087665831185254869735097020184261181835902451331913852599604127222517003659373133897271252950467355719792527362122783261568525451294173693575038642174857978949878786900226369932608701712619615255222497962313980854701503961809450044412816430761605765759673360227571958682356630651678462101122465339096906024709527514596544861163205771483445418851316580224743543076872505066080733078748008593857169749365333577600402386467982960149508933836107341235896809129841958635583796198851191381028972454917674355515421246395338626119898034529325130808543858246418963461226140645079185776465882298044743940595704982481110954527577153120464874262181495486064028211551066224502673773130562852529387693299065204342847280156518113147712378500923196988392326814073139671461744119500069499728466711348532302343847784631437194882829166781437239309378381568132318547960034681797047883721182709514788456544670251035887091651028546359719138478402486956906571563510174639292143599412534962560094816421341337405879411259979173995531217471076772685586420876361195658309519814136921936712756514787461392192754316119540746857335892722349472275410680189793027755581035706719953131833183734342608753882187813498198810930807265191466875337625998267046991974813062592225817783935641059519218025450758082801431809582301500879252732378733257622930200364198159214248374905335928756582327654109211873385262512855784842528533445921444691438921287962892458070328527409902071075242664220060419104037361132257726436476633656055635803108285379809477956809527459632756035802462114202968639075667981573445318279060199006318529684834591941667617761703900235748901535992115250428280212002821021049216375554677629032948022517413969097911795766171837866285512586931677891647786298139308437406007284973089794900367086171827595728673923144279419730734667193273808470387113545058048170009927888834957249101532214852695378482828076713117371364970992714338408753749629166800135323178927452100845269973055552171378011888996998987564411183795601107983711551511118624533613854746069371933419674508487261293472552756909558999129835356323047399851587138461976679007709689495609650331644059527664441471783846891729133675254024828370310282256440968882505518355122209907264398415590207515187890358927383229250089307503836298891296876087226057290644421779756721888594898850750265699854662938285615612819914859466217946414002487885008798233989502104294146590446901099682745289240397317533991207210157953427929079328177547721929882820340393008740263628031798799894424992632555370406786642192965121637202644612251889890669171748155492842699780775636715852176938322064148408956884353652177388996371087969234027053316833842721147516384909648818098072573542495948460315656372350230444831670979488645252369855865146086212401659745392976426435251172598774852825815369575221976633327672726647588534428211889767143971100222703878881809864579244918282653773209440018360343536510889141765453587306545274008897476997518092448845442482672585292816584629327740687879148096437466372805829147736651069901852992574605022003155630552309134434655588435678480695089391420582903535732696806769645922293864588180086483779346713047963364334592929763781393946296052283546398507192941062809088390424800543139617656135864785844466099872470217092004434199300756103955181783472024187982931586626078588534962046137360340041969196918164279358741092055806442360077075345090245151934343507561972395618029594743990992486822791908920168546131932431224804065883092770160254790968983526319962159520537944000961231272948776802266441003069209460309472322595686274684511641843776768003219234038018386643238009291132342807930413184487485667253674253118642221676453764175968756233988880630923013320523900643898759716881422983899773893902709375125809183123138680408378296469316623539138930691526218319498960450940421230141183364570831271913823984250236643713932802813469219184772925364935053472877477189606264019619999830028435042825964249167629414403444134485401272959416645577402962301886718182938420814411567203194670697255312083755309899367413807418004142467602450060830122156711581623509930933782443423718514276829636429757971364345468514352130696855255075385869375565375565801384649576086266590148181264474260525184625971638750731863163169303923591748624257490177035321061405244152364635586891423407934890956317659410332946664820904401483628560595373704452652155761100299239394898701103977130381460884918303321749365158071223140226932513676412904455908733824607046542594782658381341651371255785377149315430761037444599127516161265913124847851220357750025167384587063694342840772680836459713450233276009195216425558030297830050688987224326637286471683743743022951927483250924075566111324099191014021093610873385336166864672820766090747724174217800967093996073603764156981328391020184702717992071477057238207521405721305369926480590486707288050809894508935345028980613277992952042743199768497904124958686289102222266255568509312658422531061207931856759661877042389573229955557724550699769645529134906603768165685651331053367656879490532025460642032413427647035317095561149586955616227117848519549114201921750792053886618176580393042405880990313717222118313255549828018904269588205651390222185402329411033522007389870790305760381325001849008072920549898203873105297688131652498256012194163655573904782357194904745511472169475005995203955184782576208889437982649938867692613670278465497665833429528343178388531438182252668705597426869475222898415817624132167765962086871891822045185060688783070354100503647104148278043907577366191258005372877124344945632257735689662084826585791645512439281436822755307144711926974850304182869402290163061221535730645917692474859653979274742423815705769302441488667489411413334484303449327405372550127075337087592928417613223058466454306315560214545822498244189906161686496283801442760256103236665224884083571544804118942033385608238400052280113337088060749899812594565521785936661782364600001204350040727399771255413044689242137584167747041956745588818289898375012831078108413538935918467542448896506486430668699207148711491530228188264822012260976503774852726439259927587832740585571562812496900783127932474161326764244705140008541023417651227999691631678715013862054494779332208346797218628715697684453614944233484662669424089314322888300339881664824267506157991739583514375949748376592218505392795424506265902976099270615618423400050938349912692759035772701133309466912115304613772318604066165619168644423585338830687072535340976829445592213538047893369786622736186861781848027358278839617626964297675099554965685011905090716106579890395449141337091727818558058055093633317152108932591728157288356826993746766534964684977970745198565323468588400543400527363244341062796929032411747847979851866828040410965504416620886698767393955206699339489111824684943786256773149510104620371247192805485597425231177459255375612014581057598032560205287759646740912235974239854309673040928630079425376463446634149383837737021184997061528768332949128605807007655388248686452678253511829410948178521508854157163590806181358274390221023360307815121703324325370713988968589836390619257570946999406120812650588082127931239764356166273922011605927117624823669739473739143118813006189139320158577456485138750612864397903178373483344423134854246669203270911503265246151710556993290522129060025998958159936464314401143335855640803912219714751466724565341838603181515995512820025767476297406603360644039963422755253505310427670349623592002350668625811263915068751800929706271692430501315633570894289051519870383506643563611245958071586229642877697637191369279024371897549849298281936246882227075206790694144643148169837770295656138695224854802271175109215254856874632551889363824391942915821355440895178873085280071388355970758807019364471279782259313748302447380855037901735401830606786941601679851253711714090928520737774310223585539453844778956834541175452752167322551297306991185845172755730500452148650769690674215145616406359854868500486371979410838986419460474912011391528774042874588362043170935107411092932331003973203225908205952624284839928550624945516296751853533394512391304744122276028723591595273456243980929261599341389991070905797846620090950176064835980587813633988220438750411766267897439951250193944162922857662116139316061294368560448853702347573335292122564526442033360266225842763184527412090036618695176912218473358519167524633875101058643104071372173848894538722328229303101176594568483801857180291248668074502231071850390549586667496200386961003192347629522380614495568691313640017398618366883136395322608874384459733005658584886055714896718506281498515810165473155796547653112017256255321793411264283009185579072765499031909820765568858670848661577932791715920377917314685612275936603647585667210175577697402105730946884922103344892740743375225681637115973555632676722240734581021983356566517996149575130490945020728451699167159044388147095424520912918799970915411399523079354065391888288878545465597036170948664837147715788360454911237927085247897976971097555936735815869211017117648729674767881863369723333105517031464338623580858407007507507781010842276428682663238474942154025505011446160699403892969705961844037531002851268344130868517976923423042285253916032468478522022136384800067534703676486895750728382940148182325663068338920311787465500961488752971520493795378436468778419924508384949216130372941136922304682615164391987310470203173714330087638282531539286120790127371924369346433739273315486866364356752760106826150737944738903099895377148130991745480163694328926731319091820964683689355578230082822876436936741132032690610976032311395666901380145880752449414785541809441297650880004577947717993683518726795902127918428453729859923226353819250619517919586612223980140455377164074153530561319461898046991367596993121026185412847248364377284048392916602033583429073541250697032914299492126398823536968650258962411854740910128889752433372157500063049813505358861670270364266435605717892573300035777002008694183959405328227474420546492072302240594547972794986039441566767971524380032767807339818792707674559350091584317807564399066618520273825440555436200053293153279140965725046818159888564145111358156843867751309742508952201090091870217764849805192905289627011593392905060178475455070831492509557833212665098892618649625693197143324527181452866984487606520210602247300691533189866589453878841479382820625894842427228978576680798528974143964590068643553743673548342151840939244691267481734086894012152292117601516415191903991691699275768825115582880558186467406153876158754822504775392093166571730609261557421021339974387217746519762635748847503817927485978108443134113061777509297582374594374928798363782472493743769522706337921023355229340107858085914591105156236391454491219745683749153682099768022106375678221264779204853718410041356430701743765177398733439511743042651691988662519084263998797278673529527785113076782609229091145494092676344726172304936989108101803055792561694436678114815173323802060164681743941072455453440934964197326834166243352468566807712417937276133918839487390846570231756706517644384114466105647232087230767337701308818162930870246588999623225411456903724525971699153911726598949479173087263028315990333171449600969236149769399116098673967468102717531589800155600760536340243106357717950101456672754918360839958121920691249802530108563932685569558481753354372475320529033871881907368934233348794901941578191611470495919866816102492630721487490913020855067542771455008935091665006800181728672639020094899278381206808449716005321492776783608236779956721503079471647570853488863040664746422197463067296836386580801718086183382771832845184303326442349260576063362312498068992829661549806322387164553929451473689983617185800326023937691696089295493509562233463706280654842674586872233039117276902830285751626897093623413699279437303974921104479498290233499754284860467892537772746869335605959376186159378090356646136001385704856431231369105199919644099171208386544033822737207122628717018520801274508315871962234113520285625151663301912378398658663330229058015905088486029137301455080346572174172350453269549173984487861976776107784206859882981171050622447827465598773678068856412179335250426260803130987996382365686001668451578302080655506941889077004640847769839996500759444638940646440647308673881510101315670155077242670913699678003595358733875406682430476074539850322888087405975608799313267999742732207625270919580593763272562626883111589302930386978990479659609366440587430726297643418008068804086427730245265733755189358093056846527869640980239079416789807765998215753912833400294783884039059909547119860593004635797819195487724156633623870361146099557338508929215730116856365976965462147949741965833167756167564799691463824248363431742388138573052800097710042331893697537940074086203927293550433815344416723254165655949413270873004036187454001954752267472727791048070195722032006565162459142079706036068234550385172668349435308355842285313687292621898780140822867117526003302669894491878992856464857919901219031713935855958224014201219281172524385745268473656769476066547317758039927119850944296736561879456556487950244090031496221481029447834102180860272983710996813068937408378199225768954684404800723450704009966524086608894989091156085491337414714876813190232480236107145634977596381668562880903268080678215581144751862392710005214486059944171544444668569586451336510696635234964089856398284188899974491012378545906342105849733186742206076535537945251874369775267409976959557930020284791084019009919825335373944412420710118740757877093955577517202108171544380594565948906290582673363234334674875625738939684509186293738895917888251532836338136577420481776252714054389926384607853067439709943414402109515097785485336466555842869118754511621646498773579731870775790428899157930898282717031350203105257524765582378980639101087879706485719926514308519864948655454558441818124530104394805659865209061659090033537773523173467139626266355639325649715751338363170344007037902912569243193378091564615927512113057736851481530329682037295315383295136861687382728208691063078423543394472892953302383246290543056176125419111363870628236245341850649651109925284311324726239253129705882696709212807665975418792138361178280544786602475425293252238392524691984611988073065194965353179479006041895327961783408620682601256218059046697709715685810566060537546801930581658420040865243315596030856138164167593613587387486506812184642992802006882799103686179003345190191163858776523711347647666043393322637425190887333041516019264282622472597523527327458438450930061527762183987581006322451768188025175712157052158573143587719416548501704777259601342258855229139970225218390172023984849570994839851034638009555343720389161687052607038419444691140682000141415096237089438362607404119589655193431085184594244271069695325203322047106253466542270413158769921409041470834235565895273563664298803856849238192653049643137397336191098863829738629171005758399974346876308382367583500023385507268987873685595793804142251858124857773139745916962226144085919564438548823158055586205408448140201213082480066991782310597215178777207214110227376238281992594498040970083833543643751337656376185322470364714605431487272006537981514918640832505737005733964853338535566812742957452857920933888447757103648746212287742842696585577984966044978083500636521039504948591417119604432270335150292125274129219441213369839854769823997693215468230405743192256786389257949946975877093942829106241095450462235429431175125620400705456631481428400922630536766752321400354769663662597806932594542853449482326121302154949438568694054257788854673221639387843309967009624791844199122347337582788442913028658419237916816254431505797991511990215575560469082255733625315785243761654581715069524172099152348548129198853580053860465131582292284500168904820829219605075772488210084655848585857965418948421083074948306311714677605709892415718964262973859605170080438438916348737857584364254590355855128953911143758482407201875933412489493276058569714956684620351581445079113384307709264681943644888790500171634210008869458202345382605158472070287274433617643322628317749607650795807607500116375563695603739805050969527545896215479510001372415286663787847874112381833537849267864386498088320698262676593774189052961838493372817877269293961857259607081534952662729695935366063959088668636384283501429762785345682446010272068910036404773131657682632770198728741479285738291096912256308542388756294487126113475066706107768961851682728550825846709174047927675222389071643304794113439806926256671530712905893309518688733900019830381593540622273148380873917950412471372260516602721918070587607176975957849149214982343095236808665870948921823981242283259911720901499632171563441758417184995243435672844653390623208124727364478929579338938903258760305683481293131972173370614662161260980880379113561313874403150732158827263010204981391034771597755328332338342499288023517243396422700537741440082443879617381165196863974680658744833847790783279041471407088808192497033827671607810149547569618864420754011813788228963566215325685113326118751607694666556077977671136618048964361036856047592504216113863917980722938119476932152631389780135476623226689957450005444646600886506717211230309757397113044387009690531842823483972172090379955562634541675022022332813608434647226208579908958027333353380374419273631973850928276161795660496799016859800229665369690422715713011246423858110384171345719410621093184330580197694736508284958292634800789096784061873688168584315995772219731769303271065401127465680752061426380781733185659548262887014958505969549129539203890227935062208834671060638995662815441516389156492454632118052179641210561426511144608933605361054488515769912582141865574200898009766334268235384608952290878926733405859471440580688982923093564996451714307260424730334576812682366610557937532899167743235583468371344311776982132754639945516741507260674794389628542648456640701279515479614156736168995518683235806502711183455818338114856088808991798064313199636029917473109552935032110800560591251932873329989115031039078139132655708751487534963376041989939954713168697602411752768060962107548295749129578476160574111454151070532719137255846166533586726848039415807861532755282607906741021274152883261473879126348943420769695741854403362279285816958297037236793523244280407841119003423675582508518137114138376707378914130366538617323330591076247009925099194485601894591440692450036295385705576376804896621324408538600571461713562937762309694756492935217610595829180770149952502921373364369770787452967163909528007833919724252654483130111709372457965812730390516442160223042393208391909282046824914455868670035559121943431362965059675635163311996301804173485202483413552174323804300850330824987533408512027585611347799001745078538791624205673687588224150146288150544782535467872637784736253787251535590001590316052879241033212929020491540816066699160664430863492128854415477699793418804282889238350439786800011680878123745850651513258603507538236742760514838223472787307750027141846841393135278414895831828530755692065440552077723864677064481004016980340640553427995492407078886291159700817737332276116830238793940018039235085197106195061219736128711734093139021480961282079039537002689333631584634981797947123111030360937499276317709963023749406056951036258511308851328189361596217371779211285883714195007256632293293499481930625576194131224311507756671856980849887543116132798653601617457441024970133400206506149601003786257969896024788406892804538718715991075268260233109214610818404001089126493339252801235204963728076928899784025535075339539942054427175303509419598414634012010508309435817389210411397764560838844784916625158818210719233355920286741104348886739451570296500877526370531514328365480322537237482188739548822339879118367784290421438755807588018041334759405119176836185714862261973374728227647364026831072535303503426217082512795196881893390268969070018389840905248579342515218843561794450898858514417626665886525446325991575050756879408199394848547454485548536237202318535430904577445234694398635215227246417928434658839337020105182695419620149374861227640872266175893613886840813937006017399501556557706068027132302648865424183574794921040648794584277712748430595016891544599509629480111735541755836611918107693723249122917211492260752245899251218042023117426337190215910030239016097455275268618709120514783515768938484450451838302483823347869760347804290486806776433380760333416496705292571146779696695235835067377166424623241082100853712959526381771065255359286461942813985570392036573436354023360258049457187720387083363764845155379780435333692323845450311357558138485854041209278405190353961439508279075611725848039883008771479585534865913044564289605684646359132224953309610037701378615426270421594626235110412099738449263317080404509176566623318998661787175643052144127376027833071031097128437138245623824748570182022755076500209170603060024684365056119716024824045108689272997109579830594576104979327816169681845798607155691658205579813632736443544594581505284661752109093604048692729495360899089643987077108092315112394648982507724255436763661451206048416465588419020170460177228739100968342307479752885513080459105507625937042618475701818025738775791313900678580306076321505333793811228480503067143968518127914457254730293388707123933628551934034314777083321958854864276541357333366741074446753079799005331504029792407229577192310839752112031375278514288949429662649696850348338656038632478952672844301662920735751647814704811914058149486569857836582871067297898082879721727644180264220083533586424809236572130460781237946311003617030818548758878028076053501929868231228113919825969165561915562603250497712947103490575333754921978911050986189396525641120460270930995390778849893207516152828153840192874911989539117980701666522972148263176696337562944149785139086162868348747908830040754940492603215326932023598373709922838184728249161654317688211380482102151581886722187183842604143773029891903550167219411753983551335844715687840900826027323135971807818107548382562812101694402731693855613678741181454053218184512357617657596670731268550989503714382571065660441158033067755863378437082048174135119283863478208557056336438767168564726821969770226763539880259420980237073552502716966268935270596843417005245156228835563010651778703677886692643475917866609242969893000142505892939673218652095246327039805051048318658197777309749712973405198471429395885896440727553790325043757837373730267085789152674060683786607241102457070322297366267103918901533378632002764598571831373678016478046712772228258377730392062077102511446797325676003859301364419526056212259354217220278481217628727159037332691377338113030905254590161217099695147800178301028532923645472411703344976255534705465705628852088443327146052739737638769849250905074616580482595763478510778577794179396087443875561524604224891725939402762804201446320295002826784215109599395469913080429125690750046291144205309880720006099262465303820683916934772173821791889551523357232661746367720300104228600927503097752820206519844653808597272626674813561273555415856366488978623721775477540749630048076483851844524762153971164119642995663322333744717039661651565145097356211251212223493325275121699287464551747384897226444662344365654514991092365141981655876059179224527907216649147864482776925095746077179844456898341307222592617023627391384275922726030931755734355579158911929943845749679576169668743631336980540729339938653866030527838332230864784107416122740143493868020926286068831841887531113086686339082041482012953927279859381969179593020872221231490225739047083328115141785561809665700661077091297756497917590144991815041151115025835123785633629532149649139112868215236818060250463828124415898449725837407357438771382494322884931808550971797861157067691381346795718715384428496637739705867633096734510605674819876881967647609192751904359674914911576475915264559813860309903390441522473928159981195579937731378456333282570543812227527885495402656471019893400755868544959444045054834721194776129157237975557919903445784679447158329295103949441965162956491186981784336894804787109638810119768031356012481555910864708950497767980201225618170929617493715256454882213295116913301838040269410636291788850663675537272508863675129193094101543688935245637009446686582332758271442740186012455731715425057530380920144988388579759986403106475857932343345252625268963855709727264278408598085283655326066513295399697030858855457291464847884782629044967442790789425319777877674786934254518631660556308956789420250532578800077862915472386660546157678570309949419267877104127199887242120727356427215346410896795362158184381558933406513440875231060951239518829333565631707349940246394470913216665250563741285320545725496024078229605612567367009009163708377436173438280013582664078037471288181643620378840738909652503711592358721259739906986946849701918076817758998178592893895215907066312781572444675737730389493670824552218199985836162431131405485221821806587718815373285345302576343202705925915642295713191942554976046331190592148113704945909809139905354472160561201659533984632622909843715191326863428491299606170322851726882373171470735943364668216758085602200542846142581516362198104668772403047959743537195554958757897030989571247830360246377199862445895649294657633443294804959709369096719805389621807335815443834103589411769332622068705011739452552422717464318549992590762583709832152451665532433722719024569361846293346875784440352355676105548880540096192551832016628373319727213287193547234015495189099951328700089415606934796732950209211463131020601855423945268555763190219301758205435339918998365280129408624706652657521576093440377761913692094162781419919373268578831651960294723211723329939944467375935534760479761252822880924189908107429425070739333091602755496519535873856145998358534231501478083379405715108255794692467913483102428636588535103997790711558602023504253591753930799775278233375903383941755991165469324973363479782041372650267556682395867136335990662285741488894556370480594318397857594192405361387463508069574321382610106962345747902489508988353238550294075130121388693687666596458640224596243613205757312986522637266815939866611269443098757411223139452738866978366349237442189431205146177435937891035561451609594132863713207256808400171110784455649801170656932441608875052147792456244941780126781269815069508415301790967838757994936826870102445823851262617573639680168848090720668918372321824416873489040140651735068788557278268122021951613334562327959206390634285910511751491491576612684659373672937381625152202286911739089245206872504445611088246333282212052243982121742629982610165546634583203953729973188593055832696250039649306299033111584374825724494160522868176125135925890913056978856875716395936842935979320590065076295177788722949695588272252917856527925320305048233150194978256945971003571993847737602398426110444899255800800646808596021278207175153249270471991516097041065362465323465671010349681079477176244787913345817077397379413604652970914901494554989513683106872466169720249239634873318045576860249321931350644719895887004828825451451680123043101323860103086961842038915164713477644014385190496865835372522202156842349593852354012778873878408585694473972356354337561971709909296865931960685963737426369443533023577385400537145762281723704450030122776600211579268145906033662781512053823410172509590000360201885547336411556334734364211320546358027517804808558087498754569073603336897279167190674944594919251951555784442000541851886598785439485430238001152306541531571778597542216489036336167776254533843136576720061092470525720613964127875993339231999331139885407744824655312654192095198308490694963823057043441917571593703303303854619223685433296510856270405413598748122993861148700290463528985198300423446908317665359024540791520845645168257297936431111250746336026170167985717284830361765623166855134279075202456150927412641733135393694513905311587768320336998888945267176520865667836918877179260263365100565702962491350047236758390301186144034218977268913511950432169777665817653016557489104328642681758627034754337410154100906604858406814124657685648734175372825935843349839019718755952845490715449833246784687397410916336248694485056239994567920036090078403997802632286657291377395538579160132366151208332786852736909091667817325425430059615588010642223403756064747679341559177510233837234566563161876449845666325342044175620246145479370689658709845671668965405386708476162495213885465066495092669257230792620396947448759046255960720367613936203397627436546636025181898739232017245317685789773257718644151806624729122321044602094223985523421736700080782230260702769841126126958413463992951227756263283319962655420777128974159553061505959493035213115427286561850658137789817631477478834455433756297262507717586774433414337890856434758970054225149066038816661645852380450877121125942018753145129960907038928751577666725035518746720348774786013535850714159577927489288993416984778086007119318549296650376604988501152519735565849315128903666194870412154644066567064116549260658563528598772448442868664075621635786646133679407633146189049852060267106798563100564454251182465509604368946243552035053597278453727912538622991182286382547390333743537892013031487767485139021674008256007045517212226560581685680191300264621000697846097382843133923745042865565238798575328511747516185037157400504499898585679396715417246816010002272289146101372555646545550050657041326127292935823576501247761139521820093116835181958388108438623025401526900392344256339108044315699999234316286267919531883970550133409104580510157689752551370121379048391991000811910361291555390546388274375061034692883548502344239993598061911973910754023586927350007070754709714252619521393406429234258501504810431135367243636461818886631820191703570220543305990819305077319812738845412214282601548596966401366860354997270020167626630711213409329615420683843200365264735061459844899518141263046710038662536402346385923414495554512680547786032963078651584043025550880476583919872266950850685906039599134266174704059540614815646187163237595056952942577137156249532060404489051590734165580979476626795827857740764561513650856518563443609440787247448902248522241994056612568672601081589669464026643591567182572219896958557319983028643947162456291283386091866454477171055791871079240646498926334290788300630070759239526828591653834303095944828115270771708552787729483117082787830568486911771903209047596622792867611973534540833553657469039887343663918864737909811760430666721480752777192528206884977819398029583063693676073741048520702011103732656607111173008760120466915008822416374017535331722997631175182380017723711743208304777904138359762256500067287314851652182682769964476749873179653064653170707770730889213200242494052067871436387803480240069311511979360891978267676952084952574045335903467595504350178086426358350588246397532983481577533825612123030030086357644543587850679203294926711338493910074205942528342417208601337620860128789867087203018464604699394456830294229276816370894418430259151575975136329258690599544083654917460540034474195119818892985699527787683457573966691846953868098456010867682734334462631321720582298890469570806325989709993859477611195459536113299101927756937164447038422373297191514272877982619227460483816764558817459416728402109009276866327718575726258552798553812933423724811286190738121945081482539803779819853817674780467021369766102373959341695899337706269281131949039554768002174646925679458590868176827862260109791276519292737699048917287333978028381662257911298338096845511578633704827191626366403693264387988892771222972578006438108195689430057821404711034036618648934565444646470429004560522700349321341279631145021211335252221497224347399054187899838959989440438003917034401346187525752172299519485459103281952892510764319242107390066442260050275519857313951360036471750906717047568135438367122985887043801823915306447605268499409713845011595875543035058199973471095185863285319683323658752108894419113124846886148799379064601207560749496795877708243820156421101538127653662016898008709414076797363316269990595283607071777064551716095086972941037421563355432395884123422674096868516509436250435413314759171347041285419031039795412381160724447078104442484621798805142490446853249344758283042218284784841695240127744233122871336613715662781358113000055104205944404544123969896228953081239251526718396501077054924088129933162232728286881608566951019482876572005154648386081322579019377033915703904718263868206090878498358379619660547460156580033699141689711720800963977146901789362751452126547474531686406287652099692130403196826023556624439174137695040225008173495594344298052179327552254598778781636258144631167589598175162010011287820792711572125287787248023529492664331932213195328809789802861708984287015474308977336996876790012960838122713347934101468098423285830710727255652902375790193785338209753378271916682074829584308090561212030565770005286331105438209390106256939484461437725323217535958166730569382385928020353559406431143699084051590277013211591621923028225583687830309652570536553508038986724245745435854071508887901471853442840667118182754606199195587603104080753472951779043758892083998318676693654708518727616984386760991286385276095219843771412836031447247378048029952134834986631024882870370319766523554593930549327159064934848551865063593116522071567257068592135570043835684514885000456896798739148079370391889549862715786211941889152570756151916164667768500065799670282778549986549003551991898031286526639872934799086184201041654306007917813685756682590801067281341120382404062413372948565279287324658561985805873110476618388873384170002169047917088649789128364420536043742538141281569688450210343763575813906725702499655642768092308592963305058525623856464696527524430225978827659514627913717775542983169119841257632652402254445969812249861809086797010336938022636322609452625677274927965876293536464067897721933906346718162586274971659810309167080559773838976896957636211862222638282089154430982315034491446922915219846668866966745439784683200552437929793530107211311604129897255109508517594848328567954709589596137424083551557807475660969007940449713564472673136863985817264308904243349711781920248117401764680200000391533677546092050746822169590985820160654060224583583517887055464446107742860781769097526658697251139644291762535165836292142849623185000315975678980039663639307318023281255347877543495047487427929799924127685199345465913562608744368357780699232749839699977356920157120957353989119023995777574680570358346235724564239335005873126855223187228279988372767549072141507763367003131073044764419785317924596376552381418904954196875180253982139370998863046029359147286632212714048126430959705883827644634540165616927136287323714404862455074131395343249635690716838677642832439981280528317487991986179388086464386316611987372611481195675823227426893317893567020415623280059509853686048181797572636633683758979969127714960167420673506138769811355174968630721559803656895952289944453383774205734603909848441916171687876863509833911655653684123960186597820454420196371626251960015485191844014972240876968747753456951004533470336074062446159449656549663152228061846299026736106089847567840657650586673535897387001041632084032793502084777673178330600276866859866732429459354783266247725675429020218290530143626155420992528075915246193498188274088914570230500913968443995343379083356385205910678304493222448336336899421629248007215035644330634754390854335562240123096989071379468525633352215972000456181331070479094179928040649321389137724143790113948871319671165485091809408121952571358430752638040218486679495694105891733497715301306862518864637897215038974685577763641002448291440772934895864438623916410836364215130746181785442582588183143426754938109438103644953893826252390490648944552018721348775845746914660292280499379335864975568960875985540422443495375460039961200244448265399748543633704522418767609496391221946108514368623584788905761596717644970550671027945594279510592434122251428753460578933990815067417957807271561569102402731809464963187424454905594019212057057333657467874085211515663255859565107902983557434062248754853507643480564043287339474049392402230806679015184887952409074029852696824727018275523821639115922758365430665276802795866577600416483720514034161933419757928166872687965456213772155673743235581796748703796920006065395578844807763877776086111730341636609242599301884319950377830679097244172623668676500673160123315588018253504896980264837452290197186509596612342162803055704428873735599913222066337087270119781452670178096838231348704121632801569231165768238615343038562419978746659677621090488588668703934270537817854368776481984279470932992604251594581899543671121102826525847931608531222182326677489469120832101781745996280754861730599363167149486689860667220940292012850970366419203272788057871953305512799378044046719948500993218679997373060525417227565448832764386710907307191118565100738331316435578382371560449802355143224709670638856860047877284495212311595195343324895808310886787653474243045749894990400456216547390358863089751623818703309936536448868329567573908731589531596098212968791394738735401164091961544108337028528694705299156404651434759509436205190886496904926349231318212158855032355415790969077014307978276861049358852868569308448187949734272080316787946481535975188418722831203409399098409954961245848922527469499030092995443874247177596951914175555446733547687087183749278699100468409047458655598165891228620729843695482261491314117689753057190690931713662336657000632371377775360513826814370308377570314997944932042672380748655857499976869483691165514148513915238241370554448226881340032791907307073128044240391910928516895989652304246930073820969530919712837730422339039046906337143036850212688112787131990616980254427554179277650979179651770517258046301300472793431785481241816830099398347852576877068832732992883747392414094779565356820396111950453875163089672579469022179517485846145626621716891667293236098068430381607440985681918270873349203585223343723736967725798562873073279524474911429367644379701377492201388838088546033972524916955221308472175477242868450781946109611944368344571877068183811927609796353825525993379654936915989926345869127227035672096555124987393791837659395617289610105623829768518499582203101223047169619868556783671765304559861689344287570783763973516844583118586797268623090967813828584564512356676846915675988037388877512520965879493819773857887387262228683084985402606965067674956242212398473031626151259923191209208537711185264868153506050641293592071959612797379641817941157704874353837806036291700489888822378992584394820752512270880807487400237779085200956530032346508916422781081542418211146101991510489394210903159235644278959541623925889985292399323498763841580680144445791851607189124769813831744250097055377435317976561229827682738208915141138178223443830524609043315192270427868622163530424485374228648988984662916756604706373559715744343392223928141422747782294572394754253284911704290752995787180425224172272727544547246772249717576317612557239010881906008803966717666612903441353391733896502152358026586060244426718781444835595279218586382427096858712515405361027116718444934954523301816537298928708065357878282814476524714802845873040032464359090002619277012672642354776549034128031043228192544784125292912494920761477476437357204270931847382895310368319434359233765897370013349087329517189499632636893052718354420522995441068772066797169037897477192263540381849309963573785144131645495730994996688071132987622869848003708700339381357504282151958096103147057001391984347896935059999409819275144187494835101703958840219563034900403240290428383898355812155636311648738275433426755126967805277590165960181272478811489030844238119576623115331080191371150934222297255732800340184742379542939142974858648535428306858791456320563082152214517028624680105258734860201019697231555856802938086590665468665090706570868430030930114802775756385624904464345103887544994657540133169851193613596128252863890190290364481412274310703559807882152953772541567102352903033340863355286083303892225782562314815011727140812396178022445749545488597160925953869933136961404129291337054841259750414058466649351313547826258516931351666411488818082803490748217582949135622700572053046251247687670154308915308536284380666528720485912973306166932828782947858639677503998407774919212883892926869457692782664751259199647342212194553371144400479543913865353429909191523018848618303084027427312917939584719256685889058176970436969485573568306725727527765598300589658326937383420116095680265108110469938192951152184259970486798425134002780009548173621565254770345676195264380259981554005651747459764570964108278449485443812077661756452705064529302529302041386618267218157755825575676583890802516106338405099497706229223319448748814255894379544153873260143191362617330183341248995191161495276745044434356814626317811599286777291475847953861958501114407435791056035205349888160287957700928697432867585444601491609944306481923933937781089092690099758321933066548182451214926191968705345613352421822630421227574792554887384141427285620814758143492830715312020825789152518977720921415929505516558269997532679558124033404634932192204612073836936226933066266358150036477913667385165368730309935306854257900154784633997104896391178693063257132358681569186549303621298378161326678026427580430410300297396726428978278616944268527841908794574424345164995580752068652979632371369738015688599644003462433516040553209114369983896709382607229489742207494220198737971593112068643056379600792768118953423424819713645495526365880631386328365627032683365382473796014145439969102361246085559699071036929531883426555167873168300120035738616002640228727224204102315719605383464600599677445609334259735545980921657700847816652616729217093873735591551548877093226251249266484724567092480976335147022913641474421062074416202596827328497875117222900204061004943760986552372293800470389142958400335481634651463014330688205630250263037382056460561894335165768865021751934722434173888595731206973628142613866259596379696615833201583298107719717030693603080745646666281418904385312354908970152492420015890401800129633096828418034991430113053418098103384711838069329942490337632758280280750736279931861527864998852944109307311258864284532392220200717308475154523042438551985541071791933126775134103037111762070352245822595433203324790554321951931731866892625400768587666386648630360062035810322214663721041681442258294278759986851127362355954086398433774487629202459745774316441039565728533365853766525619144945105061534297761047597993366747238375794527614547426586064448289408651305184478524764140791582345304124585693182617859342759152572978820077759282156608747151726276004794344526328639757944070417961363690721788565101795892234690423666113454583582639044842868571521432546380163534650670161816795348510211626964230183675808346609510257133789075285215933286025764400183964209521984453918825999516183360853280819698174337485328289158118367595180736862606518170909143827855199812547594498551733299704494296828769600781780930784901702465057047110157866662401442652498071281714496750438184776767663970190996342910303239869755270807924883473529080483440337500501074022566978833394358491830904043546071251608276897796212065617644554852510642639830382095832368440430019986019824931287120735088884403371161734695459079135675219087322116246641875853994751984427631943835210624769017720846409872804343696611430185708789190584967449375409134039930619590918972390916039796869323751979437942782418471032409345308558598005049246412062671017657542164623799205659808275439634066940826514376515626687425061107593202652052671133572305249654695899576050439954165668911569782549188149412455911228579990787483400471146258158224261534353974311373152155978782632835060411366130584733970449023225555875870740562833611440728533540720190336869550454186067032442286828934089985329423989789453112047681733145115023126977251541137071074822270470078306104290752114629080116468684486948246432357237827246185046934363157188044418041910587766207026049158595003445867288467260936751690954137139245493795313359598573515808042043796767024420881390723548121780551981574717530020585605176634606110642475464534207123837364207304296464662987972433796512352350613720596332944273206035083360161783257533351641137176676135013317059663981734106026595289787110778553423801559537722332610697653425345688594053672708839140836709258728765236827120630850536450728102369269701975490399878269876895144729160273466400814177920142162349605094356018673531772486043198234597962342868092479469542449873444729890408863273692778837901531580381985524245417828480055628641107214618792155336875417100359090831740546594619613983641829974235489300682867044677621411233505392775787488124533115070746929373224214668488919242773132450284009737173743296629114923374964167102443621833585527351301587118387165618168971062157916682525127764630478932949307928041778303018844797437241070555041916776027378073788178657882124187974380088064981521465660916215819385356537667879398255326425061670252469839341196307421554152455908101051633157166418477331278207238247147917623610258144900276971855276824991718381337114371880222300506500943048231731680617032760252426361846878183537548462303318236096210495079221189421168062934855776246767575892452410439681384899033715279826644518770226904885908812049988424216230713163563761174163661870154568436533203714782352429443177077726689163047026913019805586729641623143493732234523579001637304855597845378425752300751158814565331180206642599124360982577309261550181218421492566437193217768344414634912102200745658437748599905364341063237748960070942887120861669811348957979882024173577244702675694974016737711843291216864205741145017123682618298593054680408506509435635013262624414331231582002051668362379499978006902069398392833441808353801710596363114678215950790586537790368999968439951280125244902193056833671406265387593906290475930467277225386438633939478229410588990743216684586707455538296904238695985239789549964024340282439349018983689504566306929995817289905804093332616678896410200529144852861789533301224717755400473287868492809506806058624811211892517071250121984965336704240506005664248372142993201563044329112029811407713381329715620949767763131536122823820733805622206468680534314463360773351493066619113766219497645201815221723915112779941860763679544204657123541935243220251402584457528662516305348151006360250671911451093901797920118157383095732451486730735227601043288071716492197042437250742400831129846215112453592986056410322054422263023009343057084081044689859985246426317995342244274843279206502679236252480478479771215956453219553135880268625125394388683231926795061634998917801195881543302687993426538137519233440223427547216555757881040970519171308410069257797042428939612069000943782143599339413745170184137932838438878956506950876346058402588685400410942900451733750065765617222749485345006801394752781922990167315693705837206185372739685273219199838025173844859197344697393537772935514564717641414515475055667080537338992301634084547741518913227918099997052786697038025285089942784314398785718570454662737606501839185025318921875094638836390423202878052371770766251071701132748821679658304850182917418135083572824177680925784563258640985487671183799237467714551684609731671841624502736058054144987126355520885122955835050468642849447420792176130734486999037036750448145138426632714194956274205552802503023996684225347820936276925790840986596259156072552943634665852849036689956157208233961357422684585039963527463042724447503958492295000326343943117177768896566187959367852679218136434244048029008499777817434149830592675432247574823773882346732610795955132224181511938326576610011208895968595991028687149964616271681246625634228224960671935377622056654689985298042553838688933776403363659087088554804800823502039350664321257995092577625482557377615224177235666719738293080813318908011547621893350473353854943426065350357610430281288874102959563549818556197726752426181887944490427252544220422463130139587151556827465976894064837576687450968956650281043678601303361291929506241726259235814995209668644043392020216858059779435094164623405235440477948457745126039047790813687757106999566329846104124504648043545408185063421170036945376723628492460232983702727191049793160361439944287559422127477783365844454325456059610699960217008010187566820620544806885573571343561477758192476272137376093953003016582858418433636386874504611734440113964922146329234062228337160251232625812602393813609197247218934689494567551719163037977050278252586420696101391290755857732304751636043972705714738249084602704950666649059091616662929524635119620400344484608078940928060890930967752636259645418483076747969428165668174095706057179833337531497621821126729026681937846971802435817719042278186534747861041045946546987846213190368434592619256548403939667427198748463824529738063757336541722507910216313758345591064950573354509323033295759980212273799739565298108327663941224555340532662443902644036937176425917897405986099722931361200882461833996987732135432580407194922818178326269531571326939205560135584122590734222221983173026211892322384687133176813646659199493786609911063534500094598044900393032407662372076712370445159281790567005774638828074838251278772996459038524759821601560581966981841208685962911680914591428939827680461377214750203032195985290144960794564944574901384621745611897149071256637914239710882963458620999200496680112316491145179345140437859435858295026067259707239028358734914556308701385680958997232845732792630150879643158688652770803711668160201270542396639117414276401809909847126559929115000165312297647426672413967370206540865362674190585058070624818849519406606509391272766733383201256241712084322692245277108347775717253728425231100405388352326428503464223826914365492727056088041280913454935158592092252118434362490966432875039588422282657440275420612855454421612212625979284813703676721912865198413384160634072526950961344010601769701002832220657467527008698042031315925519414830462758982906516697256181593193256394760128477507936991127683170459326428198791717390018655885373787635342618134553688286518458758674016308618549009883106773774619439571389940717718751971289956276145989620587679635608232400630707431929155125129500408470530769194357172556875504935821896622372374373362144978499965256534923833437561514900332844156208160380510859769803452560439469833545097701516736849326821623771013617675778549837083051956330189583686801303258387923602728360573242805834687065337077623858401153652718729762979708837748993499454613896305468544151380100348755989463262713682717575742884123537637508424875100793320536511647065268611738452841023287843372001277425889571671539668879607391011690175672014783830419994722998337681329028336997385611617873906407788365818776730449318843324638996769996147323861712342370010349295462102148585641627382830292659948591672036343542873392540109916618835134428086690633283478167779843328273414279409586663628546426845947294749648215322076932098902282135137469669890855008552055842071089333588672836364317848238404474900730805904243420468929878631190962771548255217534704846714438675081939676553630630322138037115382136370916016547005653303328336050239808540749135026072376510613938690735195790861495422089779328883533800919831073366768906855796323343588496123016617287847662481031770729768219902685353372369792145175986986806274548771911599460208318439710132754780823131979967713177953829123218301999714102392755627076807119040167037068105262254985485618403200912031819970933713142136466821150347510484206648207606412753960886058425479414204974734381429903412458654893335559386192983154328742454254548492581796256005071512784430743841755441581674484061185592153526708970402702153107325479889194417828956892090327989716307303377313795695641984035585798436703253900619736604368468755838305563082131818940427850538880635303024111259900705146538515365015142186534919598265866451954034361202200088364931868642367345184471479209186968427052664863244244897729631734972491012305758518028027647563538103985746571236644305394156470699916889155556517680568207678990191697503417377110769094929700597361340534032272522759945655359099317185396727826384441362933704577482792184955742490423134746990110752566039968842708948791142613231329521276151498646046752340986784414878228950230033487831284641092886940010791334724527894802760010112495079144261192483234886193942953589047554761322217245643567939442624051442422482505789078212140218552937036463734798602863485234719565033876963231192421300507793428337394601649813311562930504450056067607110931723938575602882588106569228321450612913845475714102750872343536170330685074581130899919651189896852665091030699267386327532017534655214620824314587999591990761294643107503206869168940076181642624707396215252280942521024001583681044066445969592406896024597717848233105679239156430492916517044478021212983646683470670625929365367618890851813873930694668308156914671096462149139288211984433347948657406136050837786169700264837183304032421386292948226636285412008211603746587313225956035273537537144475567730369613557655688924806946155158899160796875546917504685205158993575716280211863740822855488036184147013628575949196061055146334256038814371733605076650633167472175923462366066741500282177325549032691773426035720966486264188449064839784171571730451274392966808697389705090733366602794037972288718234278667182980188227718853606342071218640800522167981173532050833818038881706528424135554201409659848469518777528685877299719508731264086530074052017066748953176062679057411034371868152037752664595532213496684160071986339307610319886237132504166813890286185871894381506814403404087986707766767467638456661612664537480238335287786036013947397766430495483866085784539291800022799916970406130622891094107911664969432317079618623110313757843216226208095850977829705179221093463294439510464910069848321113303207280160379652597809988399858118765665483880362800491527449371419405465174403038202938687897564633129148359028339086781368471317471985083944508776374980437750642248861712463889238147841684151606184803316893860383367418434596581181556754463083781324318778391528930144200910119766230842266895771083538045337868936584706244914901317591307632036829184464893239369334616530214264515602669088115210707377243275929031886255545788977618691687184663921739736335698049282643637083695321904364398828078475773227960491995930255831399811576922999483416751081301705958522858386378712411002908580180948644855886628254460765351980877250666314802706317900031203120206282397779733552914547182881866296819880286746485407772256343515766706546622445400173235648813354526627086489288760607034235533170740427580289980506310542849143566792675913313983597726627724537618864960546608397902570305529768007154675090097576523009693309096112341639253619386729953381599609321900248386536150093014869893213715414099372707048809377310219675507263088001733546662943069790011553792969358096417766939266238378720155787642658562473306509943118176370138598963174526965517348244183696931710332910796093221740073021651690764207105200538320054236096255462086847455307624854135085391181513321453790735196626772074931791346430287068749478864611112723953720264313795027304343037530279123671222737640352519787847199984919648002909777083528731734496109209732155848958307337816939297491453694632403669572819043847007695463650542693212346474609103337883551567548619228581502018095131374222265856778640155953130277742764113363311815290603139485985945030358786161378704172426172121534630177148821700554155434207175147530624880290931604895358901718836109456792554857189886202230065614508016893254313754233172737868010413061663098974506841486727089156464972881524384369838798960651080473269147346096485880869050344765163328034386022452217735454526514790574569596864392206696264317814170971153207222488375574426783248213025441323181844422061926889269806081260051858491711924638721089386194718755889543904954118977786426605505569493102131589944284488745036805115201914843750990099430247210630536006406419696212993863764698100420026552612659435271883817019033315296540112387282040656115876258949582086636986788745784328118776553319965419290611530467729397755323595764035692830138003662012808992654562788510673327977635021531587054481988183598370240610554284401473790807101702292890202133264676226633078743030849360446088469422967339019103685082534454256330000156992316522130916298542323880991748874439748653855971397936333229603975466640621879069308124330043334030172772299621201426021730517629362850076720923957994454202140263169065964780315682997867551209051452902750822857872733982679413054837446644803109408373267065779986356300216789219895876707384775294686482555040079884925004569960424287086054164864539770457569981947644337803677792244958396585325941103571726498148847344252586947500046213554099203617610361858689803476954265038406585436733263867068955464463499996861096054938144879685905470130380505871430159412855986011111925223473384410674017256133064017849720310395082175349681258137906301287924170695577711585148321827623185266631806604368909145851591707033771706671904534806751464605299529078500309699057355003232989255268147821590039731708494461321025778958267384350807524696755326559348217032510267418912454865529034850288314865625151940787193172590432605820271179412895416928652838869975518464257642637682457861871817814665904010269949889934979288865080452061921967364261919683203875723264516131145964713723804553018022792874531230292216976803255412217607492345260156375410819345243976691785948124486691435507003504839810423426131147635812105901234278359132901306851292505286992391345317064493186868052726993152692323001671817975960027955263065621822663339310492852584352881433461500986712845805884357362144114392926618896477890093842405426071695828837729110542451303784524676392466424069842166100124216982711913621445169853069185461735839596166316081881005506335820948678403989296576601136030700616175709765016807127816513495782458084741784757218360073327978133145980334190675077990411359451073028597286108829059757334808069585615248367663649903260820209527719952893639754560941198484595187467222267722866422333644962062325199442957006657390689064462742337144482977643261630065927829938631006077180947485603972195140733744106915228400715895014622143807265575655845406794237129659337177513525402750919078628323133803397928194328532988826123698675796294670912225020231137697501705804922081671854273710560391413278629251656523773230125114176940639163330778539662689667300582554939772325692747453764635002313319545634777659074049512434286293425049563992425960603402619254184950335899013866677477744261884440543079362317443240461709005992445359307320878026088321878194114095990879756100113038470157863487492873497713421292790741092505379044844526567939977678163454548004918481340657584363316932220610552161400305606491197735734581143853302243068252201137816848416860871619795473467835245580953315488307825700843742764943087214479280945530355930999885730828308775759908295743327716960823050887043123828972662395552253459665034492538662563600667808159466521460762848253751819098840830785811029427129267932217125316205536179166058022394638896198968916760645384542500892591470320624344540693873711577691938050751363985951399011907226988509320950690327229133825205978557238996072392913529821273522871898938774917150823897905890239862409006251813130835853144873547064124707060388950311608476262255921041137204385380171853340422850330310279143262649227295195154785845536546432260083899100987898240804934082229213973560309427624229501383144850762813510440113402602851546110216557662535722282878919966285093715660085053087142247979480096422362191509640407477866621283359758145026044762441508215744182496224529888065049992341106499611399289481923994999117464339842914802452540209882414756469254723345897628872222245027955920687528755923231931587497553006573646442454586948726939499725627701228295091646303889287936344791100911539816821718711393120924690640644551004494047834283648977483565468832901516336897912566839168613928019372129385970347221447496705258398254945450235506937797653607511014332390303613839158203619065048051967631576118468174663685175796988057195895329103695647017811690999498345770424239706477997590483405936834377515511070671434104846521481109192549204746010513169515090357683851753387588601235675651022139774595800541700802110784916607344265674701487789508067441478286207870092353440528049200146974216874092235576076786537256798550640465917310777592948853816903861793679247383961952523058998839741237418828486569357520521106931751696698940106603036331327470179375103296330089679851163947034184861095734239564061300285635918396089714514915259925614725129770941883789880609267846750495614949919135202628444825368946196789810223039757077128546818554843438404483040723394330799613673826361621888665438652742239573972792795811030962296180339364571186150514871340733095738499396154743530194994241538955703210061621523802302207361243951484902245713866034661674072040519501295641910791555170411252090193186766791732361412010737885157331649038555563399322843163491866606057376661717031243395226528697950673706467472806816972552381657371245082828523782653905646929467070075753111519029382635400880390726825013075578649518419720302748797301567406697371828031261065387653572215652950698506936537383942851587110172493288328129964031178202035496935170432581244155544668172367834341283169476094319708468048681030175259240882170520143096416803904637218487788682864589093789253753044494510605595193638542288830321488593710161243779816267741314203033086019204150136528330277999083741896521477075761905841331067065815010937591755391017087278277609189030400566407585577132846030705109190217735557300919799021352804106339354090713152884127255192076430297406850718744152537436593636517791319658769905062819292213825640355343757023742277409251333530141598009317620030098582520970318367160487037896061779857459310877193228798051239022600585986992240801618533437177670041918770022064597594975253083091268118846667971195520048079522562005726638381991231493533081829069961354263826244392783124397253664946755785311554105745929144438406173369040539188403156147490433472035022755775377577540946473266581841194847445858817732583933796671900861575340908021664272218487895129902645072223403892580514646267427770425777131008918180053793618749905302257751673156305554941184901118707611731367068694250912905284673819768624411725824248133276230770999286779768151800325969575263986735590344356477862633357024113896711894831101480820994125255819971662820215285650292144102486466060649657872242178101656363802081561587743896462678027479254656050128948207580348232868036086090866738828369191490316560551012259641550073912553299108778674627192530507606385784975368788566792028260163680568131878244537179717985419592226039725660887336492939361891539894685698777712017019796544342207616005124960371504328405512139574248747521229875507591762552190877882935486258130668521413302227461086459520693290184350374683406176061932626008294854229013491239398990228386216654686327345315750575081314862696368100726304015221584748115279261407111778307422880558652690485478713696938327326617915842489139084202173753162018523180065431003945085981265839676241936130333588112947431785315300563296794019151612367624053187001838957898349334201695203831988715475671300568841061680937253679918464110923707370903351044303872231478964359061106084784135583007390106348469394104212221865662395807865914709461833563587762228509443109850395289692681030083511788898741251089191115825790139305726587240654703164379176135094366821273479854232694769916642353897243029870088081467385106770400860306373040240478489812263727088773052527872119482495912028866865883993835579832885332854131976248957634071056472021413302318245962765325346092461732103172481848922375794610191088957733409723624145777211694246037522323215023152718931517653802420734939848654189341339462417762968171358082632489628324528447661632637639688044644419700806616825993809559156706194884913766316483768125846676620108136300996555583716475812212506128004670297110400626630649749578112529564933832196081765351799947346283194769704621690654908645628004963276967827677278534741595115860901342639935036146116638694579024458681825422388315017765170920038510675304791905472402868564982108442606576918358463988213975827242736844571813892847420666620646231315276122903384549887855542329878809780525861559640914847650760416716628271017440276948401965808672621555601592565885661946614226989829607785537206083217132759158739414970805158850742409840405406064399138078892998835372382303380170999293314873078100233004011687677040226276755357697559429276022417288279863820484018515936326883873730866223359682632892834205266527658256844941521493506980624823389903790195615854822110553304448300582270114840084263798618339604456972375055159593785848042357199173768423937990676101591180702733563069697290818594564335986902342450636336009979112679339272977675780058439755372375929530185024497505517586273143157414556674990492222330348367097829464379316228629774187941687865918927076465125386940060381750780727758475893340852190162604688173974463686617477342988881261892173731645618141019098305185333452972836616773154109885354358521967087156283841892373691394657512853385355734942288323120517735399026284429749554745806713067978557869929912723671952930024600085924549505027257837579857891199366615267125225759844112415675887741924259417442247172437818779738674820830957047599979284320666558552960775078105974697108977563814529614780467157349930963979767503764659633429449842765638969102964118865340077278973281420164730252834432993803823036456692208517671535894975574493285524086795969791591514585912947101268797537727511895555914010487308667507511167090299935486583652447029350709124246850618983732023679273442709907255283188265596477172760909658538647379935525624902647995583899771735461637684451951888961770041373983988174937858665233344167242874239713176841839294244336884912717176281436742954930035214778758116516558788568167679421264878956982759951567087124785796596879155174440464451346594022809747814314893099251930680833773383557276231033856566605437190284352807190600290512091678030901801896390617156610613911264975703852175439535268559531843531671428979714700204442587143777730136657639983651005082562142870233910693975866110715494039083348815047049453810721723843149937386587700790899563746567107168473371337693532221226909957647421294705539962546567405783761594887776433565962418545915416876805318477202456019893135599958512223926217900611249507525533102383133881169388417469560422169832929122588457077707464011610875771753307067645511696310315363672982703149298988047559217978915235144966649513664469436144443885663486349703253426410364868717110425741034488741470279718067422984581986097153002608711277263414152572326508090528837619335605605686128061048441551011396846073886787209776849310872643294982816491796121996456318961316730681762327509114144106310462598518191916945372757507906963748576639926216640151719384686638156251064050031905052190784947115555791039029622640398039352371949006436381387030561999326104948785788832521067707577863428649284589062165426697152825467734607085594710922625883742662230829786794503127387406707730061143524656268216076756098386151506132023031916746898177267872980212680729721760758304496638655252515985816231320180939158795998387430453938907177281669810954674198831748065536297204133519819462584247903946432312378722220677773208121015997569378809643133441616403880850917782671188739818325725197258479428153504079645374640007943177157608690795191961570096812866301219364831321020314367647351501886606691529619039244130603382370432064530665320187714169213295319904301731620518073012355710386857663235545502846493776817685190225992839152236907285525737690026743358806606737982840341991450645384731785734662586938533380820964486367388360302744728261337818912799523490541513970886369655825429713098601777373128612480267044525794238179157653071509240833604784665769541303353666999111552576579509781767378043215892225040282734761998708938297709287825608418871336639052066886955845400215303090735385755791047302053381653063941042211970034590744216956905150483995491452102250156447030742022905950940550470835284333456936416990970782757367632028365873763967650096528555844692554725437846555059783832611634653350016690986344193491671716571950543037242474316541180696355720967279888569392235137137677736990182603228312777709306627518863182985778746225900150372311251545811022796294073929018307159999510628068010847843232246157703096070317259336238495977185517467344132511822096061818779808809589058544359846161210714049625811475834757063062613318354850685760783790516261559601756916647178251427127941639722162703319944407231141422096425879244824530989220917785350423600710236162345139082856464626664636576544138311267426096973865505229769274350358201193771564276471067104330012000669112698570308989603062363957174503565819207050421646519265063349326810363497132680841028122287528128000723036388672990650948196089506343325066529909732997430468510640616038646921473663572926902680335304817902252447853731650845887558205703198851879837783534053419612823941357233152064545264999654397332807225721770765164155421152249756720977612483448265145229435187179611850594688711805929104072931120208211938823322814114187827512949121269698950320267843365527299490472984866386792344030428485980057839785337978297110154900837858504379510751951224641899490575617541682618382089741834874569727851330584115503570532416527604349535471644247819201056294953921498635238416126737961134959577557831169727599404360285816880983091946300894691084326086969991078126408862452685523058974151050473146912221585881792572109361813473324002135638266074552461772592004875195958029457554854572139879449841269862884694308078405013697610370830891461365034855750460345831227150994555430148004882673771955262197878392606528137139101591704707903568511309449398291522526478295488781184427418823828343508998933322006783365786354537850686398162082068128732588907746675545943539071560643516746462424722113466634210494551556024426758061751195728190487788189761815680270252384758989760356180331084495280307356214160018518509054814265490520564128308306233423467154673143034940748972702358404196015961116002034807451596519587248709559828430132867807834751343615817395678499239628398274102387376378970228924404565902501566955395788909947389738294298423985198769044243958743789502784676609976169976807540641012235487570322960644382928633860699113946181199484729031407033227431628328028365153172036404344697797145494038770434922210020116909258790918628140627920569255911655457133248844426966151302843474905971068919148999649280497372216704892043550066337873285562419325170421786676560249586370761603233187968420773307918290438361763719886000498746703163276205570083860635943368013184140748474628986879984301589880693033407209927646232733904921000240484460079642565284605775181435223581215360321852592032594085796685920849939044587659594722362025156918323214353808628085361064014405140793375205311652582143272172386915036758124736039605117496687276681445162257750403304587713974129559011141056595823815132548729786560330846080493728167704740894303741466343598319570427630851602311103801491174612960646289851319725955060195073058992159370568559102442306371434185584036975043538108109974427063194960952318632251334014641660444865145714330404532987861389746576382275833522270994491359138420454519695010905284991655758086889384876581658845074508056538787356783483620879784173942237817985885902181871521673864154719324673280608464649976439343937223330209453015782248835047179181054266481369153155225491758419784356332783624884551332737901387737920710942633827596339338768841166955826728971808375133473062307991534306066689191961392947244128945293199129586149457521823401339038497376254890141477499208844089664889647547063614063186076263723203564272695716421579316398089791880675842215898955725108996556218387927092478453652318952986871204828238095133203710748809967279361326544920013208761886531111637071984182650612478290730716954526525875049898249395651736579113425795476930684905150512547517722062922399821256008113207415221024000017972418445548308746924738188667438833706371808040436572978302038420404485039149253688327677757167417387440969935339594340472794936297548184398266687883053788109421654043144679186857976465967916533749173855507095159965033263385266266181775016324106422726905111777800664255258869719300885112848296730056344871902777696353396388869025141785841065392422430889606673353240468605081816125425978767305423069564069527947374187693713258931974861539851097487579649226219204694698086665006524021750651157573026718802353872462468778415074308976150701855548116579210059319924367260048585566181911066539183677003731549542972561407785547324544737228858040898868178818515064268028898468416130478789751843249934987314206283418620453055798786652688416692623389515446874585880201391072393263385245650438066778057341599541386472668850714057789401499060685824252653203547707128468206694529108913033209518682300980295474021639434913704088582999679729199310682540836240760065955515300064946153074725232860629181396464773061968620892574031346565200538078234875329661913260009914259789947688340109187055809904426755538564326211729133568904349551581106214109081572305306386840192852457733194292114294026195931240807062428692328000665494310651101468502786874786221642427258900903871874058646813721239751726724695714333824405200770386512906770460104435282341567041820707437158983771919244892989599240976770481096847968659856160450267401865773920178291211588424355105541187267952188952265491737506812243452584314323703135898406141340956930650222810409860232561979236198034560796269466283599823248554814014925846396391216816340117968783989419366304518391016258297048754417651482739623734428539275473009246001680440394879663157532664915750431856161536812377662562415655403534348131880769935493174640842982668403611832180982692128384713117548524055344272221908725408848343470461512356393190791681201032432507008662058586449206993254480134343688512812494616059334066630145223058110779610281780600236652370905544012367017295397104801701065565268610128555388944101617893074466563191100514525304201455937072621955279427333522680976275393100988837105527048609600981897092214518751673144531625491902533796231453104490311330288680716099398975933277598913402706953620593883970292039534665435897784722802578446414265975078560486800195720178838572320951171212046597269532324095760193429348292548982085645566382476080468752640055943676405638983037888661202303681682892449148161019343800011469057623336469581796021920513341322224328990377557156665831077786968663928399781933785888264897184188655243702220227171791907842568507712069847713004973855250489674061699406652974713097267892538159582007799004018535234006729479860358055364010623318754744278775083686784942696737267255984561940743375073824545974964512497827002358498874150245763764297515648669191752874403148504199748269460563729387029295750246638712526943970630098741620242691220485076632366397340538740221349990589179616322673971767174196148845143038999544684606479909359460514267836257055345187341429346716557874548024334857176203213411283455006799653134803496304642873037202214163041878026321003259313382644476167599125210741803259867355843049969277953376951448592653166312028286858277954940116246671208244107994636605583957599654672405651021356271494429338146810689412846371899779631565758199230997865656994803951401022927557041128550287935819997067273787916115302908955529659860633442634770213986308431856721242429231832829827091358346172298767736227441335777029871906042337172803508829198939510121370888636048909829225135890711809316276155781569003100019645293525432504682991402710261772415305993774391311162737104392582899076555492076814871277646730064692044850290953576644637977927276305812611842361011488912496829731341600046403809732349435471358329603916384624494100542666214140683785224863623273240827456366893427263267223260967436421835190013039271426317459859578291865471140341329426535722608996210752166746024788167671356320093387261911296236923535741390951479681609242997573094109965137836124015107708997882101802354807185712634597819166301688197735110078513836668504016483758381093334114071902908995986401848170996058329132397044871016612151657402356713213587531942074982451685014627099829048538289443919288027052056366794237834767474196537927033111201913085675835484689807963357909235034235337574892057754389222886418095710763486303063715860273718840449913514856291033224883439937764140208226105370991444600849980584557069335574637875689140177712007232145038350100748401361570932015062235173975724336566792185906815191038250142972160008476969972028249483244994005863110249366380677698349394238713531071252165942661027085455746493847486773163781176973449586960544847460432663988565710964206865355271339668740704722617329955677612824430405795571670449643019608457027247835928152296133778966535144589331021399485191762321727847327903251506151760661331136870157401263092480925433295228674472671493255133682478966937488245343620286907587899488530804305561701185465221083059025064305824938271609115610072581307733399363852417357569772659671281278513572153429292054632507149680616455560012616434094047161763109497507704357519192389865753118753157048799200144554551708130858939262785952333037945949564305572427698407198559315593305634622066386148641282064735615283665159654610256944052024491503414152841523634500603494334781960265478579122072647263810378749175066553837865798501683411363496990999277672224380768233512839738587303230192228925190853878839173304924544186118260467246350289359080451183579621058410008432084874872282073762163145517260048479113109289690400441524672867716579857092565481310500726328612932699091750704771346922302796051211938071537926411682793343162768092147777786630273237721507254985993513198477185568350464836617861632618551736118433750441512642641460460098385193020182505707384729210978140221490351108113905451698596478103243366940089656679378795221057115378874554987794511190492334673042999410748807586694442614250444360297076101073750500750690905186417991688139169119934179008707317709577042324415185633258896414089610167520624766230005828676259810594386122046900093718741950311877820341143233488624459992670177302460356616876024901375456409987647171399794344309601982894068494072587259546427287813927289309871359549361838967709342505519088868762331174981215068516466351765108748188591875661839394141684692686067484306003120151509888717115576787069746792113407434952090047780514085567713085448817428808970160521283633872319311134538024676319104641043647678587659942904663813616005269013354634151243271769875655425547218098460198328819662370190762613918199526912918626429135681876637639650139881214747258749468943554503948658509425014143235883642707991069904188802446512108541262550216793996965168663922855691164632829543143565434064149284941140175320461452477139855376942184903379555300954909589000745253373521472526460889942163290777141957842277728638267929244658641121711083698235230368348499485314341625040247687970161540169508048762760080874617912701952795129016943171451800774583515615248621463615103795534300966460486036779531929961657134218195918938043937760948020894767433938536049215008304774480682802261259923546599054903378782916350176516683726536605932862938230685525474561571451878904227984588343190760123587570979967829943053221833548322294512629518360433538734072261553490666910667816025413725862487342781429280361483571277077069113307799340690598720059598418795513362419354971128575172487731211752812034264333688385632171404659006537545875064454406359457571170970619982230837585543350560519287990800294382206800110779309064802874244286969981185403269635768703929230782831642659576140528436212501643097736401492476577646525953993892522880865339200651792082208820765427866468773560808296647309917764915131876919398684371940471364367199767341210702879794848599792850280360416876969559835319877419989862622768459463661649060432106478919141815447009431965241908731221468420540016505819303578442194192810630173938201072773596009530462416987450258150926977610978354445828109816578632286108952462935048390186092457740644456565082680273341815309593303506031869709992101609764004164023481012611893641594013888775162001914811044139445650978348886957044632443434801996257007548588204718418031601066281825033818099906923149212327049753703127702441611417033250106453749680452610038182046978188544404013636910612820973362025160932633302882499822478900922487489194803540707306245025855783721020189991161980428251814343656593565723959084490538378971613672353654700767493036743488740454406871467802050772621027713274111347406132981441940237412410494837940487350090529398568323087731317614650254575225024742975156744905153250641770188522130919652897115147872246781543927154102650815045336549240857739579638084682563045659532500551120517128726490598613677978821796635223856199432803615696097146732531603435050715180035306564166172286964735557213309952808181760554124160527513597429169201588961501607858877885355106086289132047212182278954841096307178121111183316501380021370762789389093681667121896374099682058991461251407159177175499474621407465602071892425526334438887973388851284331820437673111352132006842385104891160400851469814640164059799451799053756381679158018603596872032691602863593179899113956599523973099156677522132059861901688748872192602165703882603388415859401075524471700783636607947713911120115487210495476912626732494747239454320804293182959968688488450373612552101158176565166206661363111878242255022105849278261656865358662397082408149451952842616069998246718692547693800192509169784233691070354073100914927121718183167699656593261758859374764541474248465925846697545736097150607932944437483212634768067616498779412516819284922660065956437292202737433410841106151403127100305895448712545346812920083280502686464711927251180494139544085377517730506838436506295839653468557818970876518633526906934126754039716195716839522596276784772102381501176677820922386306794494455399511702641661421321635646661497807041778460526760483799687145950793043759646394745848842556776980876336408162507513287216240178393588401447320903880452205047066405748349639170951181065508810015938285766249611324322512039513913399349174927203681536654480390623783008357229977132140860492714174017021946113003388411710763437362157970838921438403643532611126876097825485705331719174399718286159090935678326185194182139954057039271969109898221777873332410440624183543093662000694026140841111760587704664450453103326761318790676985741676679005780059631388619924071878883293079485564322132901106760415975111290821569432256691519656030179504924018418018152303344356964977436610245058990307183919101619139954457604484266350551363930482418348578551206473326667759548767021082966646828954262012927755642343410115894166724126244451415062130251388692578929502371589927620161544470418470911857464855318353139082904603443183847739956059629982011411149760830117602065156075887708920616100256118171647830337959905476057591519990527362176456338602217047338372441048931980590262048682552837251415541553333689492459374981927745193629290360855806788743885849656429692546781141977734335529705445043844511079541381366510596428483076154790289842543447041364020039847615238219764060123240573063408270022706174372570080758649937026948982046575294814901991004876307217464335893760799877294700084215930229672770756422852450306150301301283805958631589236143518479134108558580886113216665019211543900136633205587526355100897301807242258176824618980752203246656710273261694520611386481464894169652457516616223825052611347220941717701423729886985855928314559415957145638187727750567350244963719603643641862068706292428016397780198430130173931369235594158811751625524468987568807604998426177842471870775239060859446362746602426293426541501406772092566872040609362769299268268121888598521566527077915622738936832750710555942568582022705054274856055235926308750530030058365765588356083003275926658724962113393759813619680982083238590876084046888646638118241657585324684560007912982673142298472433808367569848556935341602392980832820080987832321942790585001070602783653557742496716743468152562546864395758718654088531040202773600052930874964248367504460864467825298812841927881113463602352907236059263921190029539258971468335862371531628119295735221297180749219568296840937004769852063775978461926165147532729981816505196487731648192393111539194212591800042532205646417707842229062774835640546297104348022694528458250834465410979727256427150396010681717672624660112852487386528538211303722349495406557733717254265934099393316227116420624613478147710707780636493590925841512004638939701395347457729656132723055478051614310584935032410418469780216806266239219113145931461314613482833650840713397093969252266920371480618102740224695800260942137075689433677929539430145316723535052513273099807526711126991270556329067845726649674916187169448362239367413988967899257705997236919811434679570589354997341141432029269071705766074002634884901285955605779106120555457043257014459302320127439794503851362058245062624074145139075370319320129868029581406761027225497342416312497865280431100729049046923139308958281550810996953643978373140944559490874477877989625503581873708758151291676346993170745453147789284409374615938532948794057402830715678815383417637720933968954746763097296264647285202168514029313150750669635021112822534858540654493074682477938989840458877156367040908293541219658770495939892131538759711363648811688234651708987667978615651482694489071617430385959952666126915744228601618682002712808775754067075433468493094389279380858920627971241850651088648776197983901710894601073535469002131327198597818419520327868665660873774962239890653450182462579679817125022646212033941290283364685058225177360569177644537104859127063318281575473946787770057576186110274664631688690436479161586799007769815638101867180216741591299173820462479813596375187672020472994294465471090448606289346027871594453457274054629948003058363010733381235018500837922606631802471314435634846105353811257649801894857594385006752852421173575063414273700219928780374827912374984378547266563804566795181953280779892261662940661468419411411265388125301533074803848492633987194120232972363160070751671566100796099303225700498496489734919452559481171194498874489802767299901805701864067235680410278185386926246621770253149042193604716584103508468278618769685198189146246076617608595808505438068223801865897417431078769636975601083260828927263398568370100340756231492625659187637318110488451111353610108329778329248612738361711001968599784571524083556076244805049816173102601416680710437606169437590268540528402354960099382531836921670887725611296211282186959997349513184862762814053361699623770263055892504410738814995944991359640168770550161510946307403233085028847934733906681792143157448322339525395931454198815584314968846124777945406054742975977869876476419360369073737599267628555015230209981148496056768374423432595553296285025570063624237877533715842404268126401848052005289257783381388834787514577738979010352730196022562456578142412444270672354151698942841669550428067789995852597511438949922448039813613986889894059885584204612982985429079586603113753973952710338543929881343606377709767960255713371802189317343886239929309249171318516449985619109312717818058020591486220583163577827734286168980697030069197732851081835526759426490378693775016357450573502278810950386790379297435299457844105018033333382165727948736639546877367295970341765474827956387090582606267766714120427667959003150114551276219190281050766035647415401625805732484490112553364562771624221803301276061500574520453348894381504984698397942812897432629274645276765176285133853287708020894709260833483081650455305821629496376435818754377213235270023169433936657409648053291345231680851136226372391402891491758344530320737000526862545870761571149538334720898053348584097360118475053140317361992134707012823067338428199092297196501109598154364045324492255678330394117143756604272657107552907136701112646957574792704503606865032371353998506899117349438038758990954909772541039099165125875776754763084195724565268218269880614474693786759862299783660600049409431533220036856045269738915296312381564657478901695741929639332562635457085574067646998821525851068366716294019744883567257514529097899472826123284552118054837143050016826087498049778815443452879932636624439689767234176590074964200267905618690175293865633409000791342871508164539793338214719569884189704928382731037568668544426733955802649371270432650665141567371837675306911712194246814212437248105236711112495946760875822097532682742684294189042252808622152494038933089984104187661568076042594723515949634285659850681830783856959726291962009341145660979109396629400370006521149157878784292323271875833543719155166654777091672910487308172539496387177511291142842352608656404716287636540900441611002449726681265833215896769208352915314776944631319074624841727857385448406972738458386573901709651882358721897299686824655464089393663693768508004103483991434509673084148842776218407675626305939504289781998445562386147828654408244419697210848173491728989727160558953811516215867882499190171356540221999810623484934336385820314471596660412725845988657042011020358279481926279614233468153186996407386674077903275042241441849314878585177246713953025903667216970264524644228799683448048546904797831252983235650023504096785823113566895392796011104338549710403366020730627591635671696299723355206389607742468388955987751527685095512130245124036297008374327347853155029277885909066921487413764173816167694968541438755725672701502491009351723994898189135683711530110397220452774670371659202652537090210734931632899057268558218540070894240092554429829291925391193623440043589632435286601796816309895714609433212192269747597974354271491369711290037670223228226432690570370774488753684930139787979531947662144779102346677697263063741131618737720840983278499473360405015343176686507101051952259064875396484586982559289374631032708351953030782235629337515671453734498568351297693651921408877801604850634788264275042277058119948764874557296669902761122548415275552664169757962561031284027512550484186251428981670794813648015692911860639839159814518336137708832017408895265928228226889122351350272348232203340386348186552236557369790932366833425762482708809124790022833742766854910879043777795543659627919788708389989357121830376351875322754142317895735517416899955789791470204507428982670659866088949151745731362137154870555683332791598388277817512622984028292247550725990876322692052165881970149539557999062046023653748199632249766277703964263850549937607807686631795103121637597346319046493989880151795328556243170817419144366715153679386059192024966490877144172855597238410042414976956458765686004012311209892491916008979602937352402406091881457576611001245707435617628107241337224474263116212701400904055573168675613378827204742759731891359467254657584689325305156231038428274763223748435245145232956451014046693352182984211660752973996073615903853890171528565954735296879320866158649056473933181910656859243042974379718441972572224019433669699179372190285995635606741429776155852946585007031968085572725542062377942229316332399073669773818341718353400048837050508586897033714887264674487133767560786653847306491592790680274833469119407366552909232589792694892506353894154498820409469465637933056031648943245955569724881983774110021467139132123676532160983912846053001506823138986015601032129091868032342328511410459800563375790253848233244375674050866281259401186880500089523693767738870835069420207197573475083956365799277964870759110263558185825230062135103150258945049235334962408946860107664908145939984417115858928957659112749057947697666924837838325808943836463107757653901584475740411097025198604594770234624428853961576974369994801629476686820119550606458181289018014022034897814923331887859477828795605655937020366975102608632727783814775027852415831596705446272412155519081104280211063817349865280992223669953935245526138538625974745699755524899923355273450180904600614201207118184853583874222867436150610979355385684271978616440923462033633762349511169472382758723434905221694258568425940437071547860441178032980040788444276776939304950336468142742285737419606035102612391224038608610521467315988870249361543718071794615817989045286883440150839919075943639686881135710781342612551125147410230094651652184079607214703247435144844855597980841359088075194787229754007690421490523286430476810956879394559087756947962801936743858624446639804961622740561350471002667167657450291308145912772283490489083243177996414267380572757528739185826351832018040586697922729707126984980533380038147128105565896479601180794091618062749942564063319528600777159228629392258275065941514829239873360462711523179691216720907321585977898278077286576805525298163749135918851598980429870610146231602413170133268568188105520905689723967732061499381831528465758298517178400798541477108304594709256350257136866303756487926656023081126485429405152346171891362674960541379444933046515011700378351335595897395461609195655599453532384896823598603564213953412326531577926742118112150313363085276070907476830929007927188905627177034464759664538188437275935706378916503745189589880929799616031941421662506403257897468296755705433327828468453682150499441265253789442147299338699586826163308852993888527556615763946374877495925633440262501281974682262133618799468247038330458533499941736067449519457372414545807617538547304822650285409009147626048262902588456342077603798527414514931394818717996554751458674709185348947131407669226134123468199388340521070972385005504640898601893340205475523018849029806058248764282235028552010782909453222937835563678570574563654076667442665202493333162425255448178164609879034606404905295008332161777303578393164683095914811369188972114342384994084044176506261869205018668289338691158350391327109346486647593610601658690709324132584274866876168427244226803567151461440607953446884779127591941540039030161463009084463942102971022515366408541275564450527981965102804192006108860070492366043278051359984986793075178819600413042455281908071615521481004205940894085606015983978158685344906972517445126686211258340067132256758226894525669508849032792175339061639145270498969861453070512135337800499658127832883622489502194311464213570959311506002275954369011067602419860699296810092324247240092267496310087002270358789774186804341038124139570688885856869128390116689026770243779944211131320698938103511585286828780690832807068877535061415664214457277122602370768634430117511582167035521628300135511519717054426335065978447247007536952537968430392906131201376497759304702847469920101016787556730652863651329036894029796056195709561847251473987137684892116868901055645694373476470215456350860982770123859591780483122127177330083637825786331480801361781834488890292953229893899019207000960353446168298016066412850704031764427023672057060353128798118054245297761731392564166893073902045999186255630341046986759557702606096138338731264607173160695632622132335502017862504641763278647747676079585150595777731570846595125694058406823863594489711760705611580439349751305194463257178425302020432515100766231156066979058996685195824532522118620445283669665814074659307172393957702963562329661194751813955325827354546406806079568000159871311049469589445772622728112162874799872951829966527786836892658524544462664236623133351878589935118636401938293617423042108015453386670189981573553766313873259431398213005619425121770923039984333731687154648898947002126799718219792664588767778324759500079394943769804536420077761500957470491142690572692837965673244727240481489800069482228273405141826049186838961950130486602227343005655017059252169654033551498385021412570982343080332220125153424869228888040325197333057863781948936132864617844072983177075659781268585870820397682751813102094798806199145715544112548655034117692884695568476287283393605049173159141077105349397616924886532697789036543941592681104147056391808701846911229451666500148893016957686035098863405680281413841293596999236563477481339056185923497976457485667466172333410826015547748631376785616689178180420473347857316750866309780438183918378299388322043767818521158248729320322974102747456932039786076512761042403828235775611308269169556248503307405455330043124218700207890902534265156217767809384304939305012451229782991346582250122155378394832444177871396284713798092816406774066746510508407043792950815305477425270430275071898983422165633752316331633064659761678968881657318222303357963689959850558696944360973876003851673220199144916343962928662555932559057832463641998503815186659982162074034937560778704923506741047818306135673602252217052492676774012956571528280770324023815260629280280909002874757772222502156190881222419096985554547955266714478534574057844436545153034855640647960359254185308439352519403246718535623192252760513965315806396545945047636184934483419639501004256959371201195986172537254583270042746949586927808450884637496347704849706628543895743274563314850883451750110423324645243311460484417385642925878379290522935791353689816625262324657478929343845526070466466546448038368036882294082034043076931567238714735223436206793600824338638076351326380040233100757567343042187283196460998484099521829818117212648365789884567941000014101886971597792496984517864859249112047525686964131793700877685000420640977090131960706977485009881483573588148784899238238693353203086232405331482462455375892831352656709987379607711839635157783003400563938940274705098508577912184587193261399209518530041417332556308020376239732545808341394646158042923985371351951310700263420646539387588180647841707655370838291623137094704499051732591119097939753827516543219128088655769743558825876705367284534625465106825671006521882103900308822162681333404557842087483942213256719582926485607822345261717947248920646212554051511606086499764366111515251788720902534761692118849712208131137337077584740749333463023346331905627277654368262491457912780733904378401727059025812168971748541178899472152507090855702034226858140239728161426600595886865681689824941003417612905577510594192894776804993058163631416840322623894557867438909572302409834749912846118054512001147218243892636457269911086963390833516030951430999795796880686080693908058370664151042773822586063432878550870089283464263950523808025794027758717437749276282243237361886316566942718335584638289704908619921833150207139934016357830316698628751167764867294131645114858748248808013420616456968160805770890541397051999771577905417823957217083193076433074868892936193736821061700791265129062497932361782536613371233407045239936856988424100260337172313914732196208463209305091028730880785600958962753660617881124654533886393466248476659649587491078685371605073301830421854008149518152173295521676819189911246325678248524530546864329220195176035305735339849890119521989608702728854607543704392112492139046513778530730617981712538842807625784169962603830437518350733261315867858113186996306490705890882460127972763948674900765499593089767846152890322561697054599187213418869756055581855370111957778665737120056788246735569469675353792059687297050557110724405733630914435534244156223610732943696150327726998457311958535254312087605049894200066570613612781971689303004318386515429255882533541555658750953381710436631272219578787690138756007824045346131972542614641912874958091299070467187242932459225991826513000172406401788852309448290424412830142052918665666300479763906885858675400618446031649951569555505036253586126807243294334692784170665363445115448454018072436180432872656104318823789868948774350801675056601753986104851902180846434054642606405959236970357261000207001060037050273535951270357463480351241685620571148329680551873850465643261627590298167294022046505924218462838457246556440529648089328715046395048955486170082967285228106420798116827789887296821309250715711641233814512543244654644226013135034093022385783831927684418877501464062708888582257460322782526746391334083758372007120107637454069183658122067896367677865965246049998934092745608547954667870495026941684124405336573150869981780714599160423351179510068907693654236949837560048149693994319635749322580827408519566744745587008986941879937763774878972875203898541724348565600300351281083971019703260998781469610793856888696864656675572637222898595884241131909804796053305354955491677252689171377797381293853334635370583147456532264460793974972373139189645269474816528005420818632685614352993490731427128428181263134906568814430944746470619470810419859530649697840882746535483634507804834628408898531927492845302920789308783779072191961259728100344532938819342819495878876075465805482766474033472510913282256516543680242203538296964118126027570127845872153694822477054507798729236732830147915491430488505316270397323669990105759226495810946685836412267057298395879704126961796694726161817832276389880853636029578413212607317003852995924267554533697843365513529409212683139286157198829168668855757932453200954535986329818481418966269210580434178834795798434357650918584493536294023819967584963343386912025690487810734201062273004924240881601667404490966999202419923069109596510439202859892660809757559270701353030453982698059121877729005527603644011449754805717740213303904480201740371872370962727895773720378586864548676028198506119266901795262812115706055506252203768206273121773950875425847447254118238727678352962239393123192067493135368294125967089910453349118944357116894123364349401452735587700354593600724031601636313536932026760177945653835954825478103845943601873416524706606348471421955303317104187586394847295223767132083485393553211310970997383318319161983392025132225311854685375208243824268005695184780042522380622543700126039525319144154510818107002072676874787710188214619492929808125568056481120876235348360202694791240290435161965279135690049599165407289550047318040407874390890746504743922538483481112606407403725867201654257344854724627372968118105626890391086666179639470316894130444519517518240669197763728039330102159005368515816538231463516568472944635850820624942467362077587265742868275847691243722245450604667912781218241166872088413933098062755615772249579433743696693195294662207847060510310658668579773518910930079842164629767371201162240656146212272843836590863409118276479325384974284635778860540907142953059072012724236000593410481432804349723921280465209865881579059936496905465768425855242281747565738569508305846008654714499408729848593274305082085553015275880690735288599063905145302359545806927210274500159922108129829774772188299329436566968467763433567737548334132910314426874993344013242730191437517646974998249336341709958256481582506542848706949484586896032458867171608829287768197314251874712742118409238146171348367451984018768294456552366091758235920947047183562218943454363052634031530916940024853609388237987455067315975500516341863684174470529595135128233626965291314783893697857518058900007313571174145565870984000583031281579467383096236434626274840046249866530841096134894050618705982702229948318865875204491783251429651974538179195822165806006280296827992974853137228315447676329530124808795366605757809895622391834578410470965232315601839901399071856693880177022478836573477365613858195595306829223570223211200804939065430083661432945542344846380022443568849570329629559126415679428904072589176750521300910564828613804431348938238451699980981657534792087890410571659958089849789406704167991712942770348329988808238062671598895108348754034911089852745334707752579171620580909096369688800104901033568712516138074767304894965095043209858720866504635887424744942093645084809874544658995232134608657637366117268567801310249854762130334083278222298089149120693162480582614932297160466618146016384678121935394471768158996702616093050473072464397855995647469490052992825568154728798405370695269206822056717547556302566990646653991032764813764890891929251170958513519830414327373161249199794182484121218523408904693628208503011147185808362703532280643640266755326007441218438727311733155906208349814561091302186988994945757593533250059928173474856454935116283286931818737374966616846187598647617904836307603577334164775466795818469671959700467671930164295274993863958226583974116006411665634389659629510876598353764685822169065540595735860935910434766029937831535915316905500928551280585658404312535175697361807514036582835485460856418400313519781226961218673780546026795449637416827228799299914231312836908078679750994219397882057684582076732271757532071093308536362672537121720771691968949274929976641529818455369245060256849828904140515464209645209249522202191584347108902638532607397620912269169247353465141521646036517566225546234326523612244306585275193049374060336659830196268517914818184737190702499506553654806567976971522589830903755767146958387262335634549689199479088107196341845096149599528161322996027259954260367153535214461959554106545574566545871967424528072222665668468497210528115397629656836655444990911766571152067521539064340028765363146030581708581314607289460593852671719690159718333762570101198728573364092888860505615683865392822673740887415268865172521986317583232619639210900564063630101096103548687172604680884067271344469847847646596773653667190263495481821669022646731848880605008090800472149417189082539637673855180533226452931617795363109740575254220612500964499429487743488890906754113472807272238024538969710708774471655623601436587024589633157181510515238364770252179694776052468007254340154185429175411795541911835737027618380997569851782616295113886683455236318308934036535510061198941755373072707397648394218009256233303913506904805900143828035219253154774477051140313687327370134281388351086558150244563983352719482585249728370897911608536682286964642324384349154339955620517391095804952226997293606864766810447233653498364402260689029471933309488419966655446076625971902460818553441428282993494558687484674746515998766531248497890035850432473701954085502381551823466545356774926407678610874845715258465456432416189383151834119817485162863219619959368977890197131191697444265500645297393671824925114510030345316879328308782856630447487347279376313616161126069462808842618109814223337192701599704203520415607132275671006724286596016273860073352524012246094729220769406690323090554538275000246238987268128001596811942978552195441247929927024606099436846375929676121116286089443912955430971101579706470325675725482641244876675309706296155622371116562047300106658470638051104310729537240870334482271730177900244774444705631102093180850242495144501398558065818820532563136236867631629511658697642640250232792609692672088294727931818930478863684136435208174857196626171602105563083909283193442315758657627945854665546037648320197511027921050313257018553626786800475714104250719549786884864044150510313021210833815082431224017101969679699537120057756892950181025742854751379167077453877864688604649913280230192520049949027641985454919650147514691089262374388974431093974671570406790580671023603862359998639176023914404114687390020858452289335287317295771850143111186615091692781302672612866696345775740162445812736568252162460644379960317703898180902741751976756280301201962142945753017537801275735244139507578055313754996945488415746066250129174246353571468485844453431310379238177761345381349553380162440622947423588674528069917314749800587284257830950416470270176428460034618014793913355737906091539677461865661929613907448392652226524157765208659886557785097561178859781595128339427793501299962413678759928747735001716491820977459031110680945825169325080118953096463653784651309742890208468530371741101072134974166294850862000719224354271606969389535977761470160452168026937219742461195393845396492766185131215926302696431391482017652338703337683816883113037673949279037393050557660185416171282847189242021093408267203852144418837918273082935900843997381002011418010975563588356844607330397809118049756680195720577322986772139020238110518790726090013163174586672818384875975772784778022966350055830454879123728803114065357276111318842225242911537660441405501042410014325051099342793154485753748773285309667953913330496562304576851984145019658968715790118311942480106866210879733579984942197584522837449216745306227505689130862734337272099760520037638615113997149287223513210188139479446164134694151256934999799044198543353923663029792378351506071226982667173065717108656822027257158610918123096973583041120093254487067416938714762875166933824974827158982378606738683696249720518527314063433399209963790802436833816293890890608045134050750612870518717955659642656243312668753090744479933872139059530142302847750742220598035413338405686329542427113530076507963918675467037561841475473050856728494412072129701215041658609427149573839433507063325199175816852723481227342498262974564839692665345651504263449335973994696461404403094709104651653554310952593140751780852100837567373425011142093638345236643634701101238170589409821270970267623042933671711655312393714412610290998398022717619678421466559945059513876414111342192229564636301313206378642467654516907266232306243367367895466722506663029869091736388172372075519674591517629116325472614089538698779379322532325208258200279712097503611011310422694997767365733910588086615232255754516919429972864656950898371149526128625095795850123067706268690753511696570489748443984918435623575391689730245797677696663985782309952077117902205596006858981629597124490624812161302232984819002563835583821289742594908962965771585773347551190738197692915814445541931000495906709844500531685864046159431136190668083432467859316402188637928848361822342266945463450204164240675319022916434835700458344576860696010572357820114086956862468500099523754814910567981460927525115416802906492895623909309401737237973868912723499635698474498352500408611789105501402223397260178770270925889145173045175540835295672532112546628778275680419266466802546572227561565143219802289389057985683939198195781801921904960572280923450451957467141519760073687738116374089185510047702436977190238199069338131966275150959627909835079874459178288172939252304268900206878337729804055364954718931370495694698494191760080272153640754022823714676014013011377943575479796850344821040230745985173022479716152952152620183587680358412254076605229062287571386332561655290096787791545712882644700510534853643137448081304025719964578586345577574388415570573045637748159433081552553637606657909095739026656471337742856662994028897399963068263831472053957068845425113856812386518707273041207617443384132278045367375837945589153556330238933873245793658935271654846131766392021177470317772553107697103835546990557759047221667794060079061971070685452980500479901253436048811336991988816014327729678352535626013822666960806785830477283579800014078750341784364803037972174626054979658726177428461166452672953297919189217380444194927333887117659776411077249500423123094175920220536644631373697945142513941383983131820552927310673421725645800527856144306869661764562746678484229323620650093699281123856195683673209872175381890729937780585170404476946117375500829114602425833091632489895937430076217959894162547992566651193780575596908829006437175634246086479594829443149626367304323119156499616229709074481888347424962232462442266383073386090583753358333828290648243009977852381772936074156070630160210817793829598573137116509181812863015930330846319100348985253232602264781668867715557186004344241167597169377604386906005970728602031048060287792124850621261331152518884125780989387971193877152755156814956828749054228093871882982160805254245999089348181762436907196608170306078465877828945568923932758988372152032739503321179976153545619991127872238922591652412898581025730211256171884497825503722920098651896506337462343633594566845374718213782574436175782429520413455265319716732769800959052502494550479420090021196513481963480941126741357051070455540173887627244393946361955703149263664977032862970575281811364007877960655735809942912003021372148627506390656462579499577197937947885636653734653855894472883818816163877102037893403813880738086935417492363195577118239457487736349241921137643732928518552796225627022126919253384494027328999403143684649581264386853902411073223867871031351305924379315263949522596620414178051393356521992787962003364449324854792471904664017027900096488662545694697943602436773814719221541212020423852433916306566067694414510669643441976590341675076764053549486280619809497272845627191725218405037048594740621621561387740867157393595770357268358171228721795723926100540545022316321935500276565167031571796522360954670092578313477127396974884946082532040585335685560810711731302742724944633312573885636052730646053163949994282179556137078260758429404080452636259025633082554894969757297638899685906980004736244194651686794531197050874479000374979485838234693853662824255742782260261258320235991673940251741569796939870500845890901541269378605583811763742019272681406637738172069644065141914782590102312668640728814429563075999272809856006629490803293180436378850674355910259136258975372672224897902160785270083259412817394363667574142722016577652134603072512074265750306753173292113782920361687216345766933815531200734309279580704493086694127961466865139757320462401756702361965064530410837893585261567310265307605613628648567180642677912011843087479274477024299447107196228728721040434197154263989699392172489587535555682411705555900717870897778006463545946901099080709441413930677139364674622775784383942407582217316523969546026110660075590455047220990425711102165952835970628202077618168316066885783913378380733774476909544681150332444946505481166337840200248777833076488803523900410962671409940522817948751516256822853402834471501976794332667124781937400515051027794327096577248777755111879063663997711819912190665070754567019713415373007247520079132556117705783737326718516218564177681454199577705570029970287641682029667191950646463662425266649979170471162849631501536271542154454729151635595323307659768124125891592739100372110006651175481439135064048066620561885041501537369953847237793654379181032103002632602150389527973851726833445507491188986502460003363196839445857172749268035165937552644431167665379320436794941899002100113581388844319499323509955109141526132392489106365997106392639834820461355163324182312922833522356972031955939417297042855491468623127496473654245325217930908324559392321696863574176273925007238179662992780575353252407734705805494737979449249879114145851198323409466152205426869592988211495987572505992945698110051173860900015670884775639804402224029135461579929832369714572134816058227403509912824767083007596052295305605022851063492839285206158205614038532966836525877185067066572396124249902795709511601250480066076143173849338081043131886756278544768102322658125118772461634400535116861434153193371932275343246413297091595047748759209701695650363145775759367391890068795090318274989389241395493720360457824305571483067147336888625907481868736476910265997909979764888997055991991760600683678726523729967475193062442461867728232066409317343852099716193176163873113160027653074548180087959485418791631603927978685218448899244526642127468738394261150108846699728953345494092580710091424624164570284569022250447706154446467614372384141017547631205907972641111778244105679492516412181730225827601511474997044795531049636940488832696026142724907696791940606927324506453713916822250919742520120415695402512338420167277252426146343778913713980763048558334753322014407061671565751388347428501240205138743743921212834712629513400980354270497655985855731277752908567383000055682983659705084914603315671479821197222843209116170983842410298624435088137845596755071646885983397921521618117441109508898064065977415376056925253765465293010762038583812756687838935574949150846372145949244732421774106500867451506927966444492073528771183696668029451658317967600773873256499192608880855683169645289266052264383022625481087246902472941910667158645422308976811660348890751403966595116591185203146866233854285636276998784926902445426299989841150486846001352922763279645273329881400231829580958578935821241735516160877434783758037817884272179355457026651012396116512112569061916860158342254517013068028325226997225597332631441932816150087764111018726814295000559147044842650073972532752035489429105378191054631163943521072307440344803971970194752796013900413009558946865775465754217488204585224197716247206991563862429351562161763927257973894778146901784187101315006342048250740108199114182353026900711660207828127268559710016246034051953340563514647297518237242638974184255141611657287557613251743788292045736258841531064015481262357298685242220013226816003329775906478360165579699510174961396939856305384933556192505174416877394835557374283084396929662337883433860763559374371887061419827665234163616660015579572288853578296047045609470305847582941612489142873167665733006112541593824179255105541978719722858696047002505743544494999581655614301260084140116305510109594063222497337661914513068742781186837217259575396475161070347546224540738000080957147202360988899785862945300373466290324410635556513125249284873914823776282238158245494098547710277707497634025073411259742269948341452115981126401865453952071686624731454950495487112019244250641085919119832415036668081815647006352734264339218101990177383309612173212565084441980469912742085659907964661628293316657580726455678772005461012119499458044505057787917249637973545957919631536527373924713941460624620601918810202253742632903234515275704865635985013977546691946394346380485250673491869564075866338154093296239208427346523195370959964039402620350442815091985860167878566366796362622767578004899952706575443891309094355000887079165993828040143697721020565954037965318309213263167048703700004082003592650755661225688331173679367346280909296223488990018396979502497984756340734552381437080606718633612189024580779985718897601825502112121783923972970853998106165543229307078722767045264642943837451987882279648511663281980184538514722036395248591508966449971055141156038491268426968127494401375782738149721088463691897659973624625012994420610765864090042404454211064206264827993308152385959891817769174238325462398705283765355432280905210111289480555384068154054836886417804258162388944023563495207860317226773316488345340855231588728826515657637405786625832381135327791236979789955136513786050253521506254476118669743505973957923908627323011501969131922306414863858803490470410506752441083377364828165141367804793904421480753130411864406631689229552003559502319675037968016122489890337855672660530586055813129919899415226655716071851374243616097310844515561248112569452327242793840683900684694719685153961972376539894830013983935375106313839886657230735887185623707099904254722291416050813127770560896913216698250192800508665303247417781545426191934901275331309158509875720685185757347635655876273157837839327636088071866920963815880621126616461567941825309801788516863302322280411626453128927823230686313470579231114971115114375735051231488677761461022940239371425154359276165093763411440811581677049766694092645391957338380870999045986811604852087171072062170859474625982124613098537502760685729654151256622652168419207100761097373878192637069954522550669557796461423834307864925431049685626315577110465152439450162198204341926785158406903631988180873776531286268981283264014140555743404413355957858778856240251960304076605007716303207162801817298729560220337503378235322725013615166914992576119484017580493036132621067408039383521649543590662726109753733616449491092917397173973948319814694032610348565782091685823932575355064447341591658649042119054447534027077343836552950624522179835143025954341474145643355192851459493224207007662022152002543467527779650067495784871452895065991838836109923985682994831642659137585195758933946167967849594686384875357019199298610062934425021027288415194506989291511611740752994336320885270641447324888337628750157687469912237156890973252655136209970998284105983310164277740556610172372821334291141432362537653200107430073921526908979675516045225554420109355638477697139431007632837844014640784384535553678908695518711471663801899966131814612570331138217813494416630254237502754299961569633269513257786491322755240462572102404715671690323666165465177911290145500181237977227870109800453859683636938091058387670051850615232898986067464944376631250945524705465298529181321686789221111085561425629870527104390854940633233011621831820543562829635914071546706988516060067073014635947084196840646224650989840790706504349157400681538847903873194865591769760174609600991184391805907005534978980044651075727960147680106721445584292399425308685832330603343203596174130590057253727876541803715522321018328274576005217776783924825968107407837561013491444023686934129908423147533814170398974625771707668118789362611300685890421057948404617059076541011845401205790395533221314343708868114807417568141563257036716968125787793554344427006194853881774985938844595853154667107138523796255860841309220568962447207450521917709622930128484513069570840657767188060935161930544558266586097471404610704069520285014791611383606150012314549319165936557685264893475111024005679974228718109408572432284846423049804565943497301556550846909982638167492942086868004842990048820716867347046673886164247795026776317193792617217327558715672485078769615714462659390757647421583815264306385478275900156873493050105484841920183355944630333654329705602808895746598986330970006501035323058923678831949827913946685053387312849883456419268299847838880822179669583944950473429878519605661188131816811754707278536689523725872822537319062441047304791716827202309057005375244547645296414587352148184054864144271453559631453587363996540104565120134088113735839090326969366306830290249560357293940464870360427031502972676841551292620896137187479622665715013268435957512550843181253157208453071587182042906912544074544816253014674088712039227278084754555096636227991185803804548726710657134587127133920061364292032685647642358992883271753206691415660453418498756161047046572305688230642348875995124603758662034236475518328583828255278280482846640694953115350905854412730648625513373073915369798789801423539360792520823859924266643484773492447262398739003084751578241145457245908977363246387929388650899418567534768506500719786932389454047881865638669534312277046147402453305355204914353418460101711935434446103657632547320557101949969150241815144845823939745742800916042424056138888786139398179689912954378121961045332287796649974177685786101737343335684965874522587146040004364217314347863891627668892235580434399602122303437484495271061483265270738838079668037497425297267788857319229520852280053429764778867093800184765070009344018801425231603508730222827176099530469772971078180380022598143416755063118447457403133370494588380753733680211447742794382163851526230070771522312039421198341640868041867710841112927961563781525095150300231601500856479340256131559551268760382049411625517977013088639621374541270006352321907265040450538580116312579997312915471250715287843297506848791431497102865895732102915961860281624641081713818701955642889959671070274380454963378022284300349541580789032902220640563141008092266749555750930201557946678810008721681808296739589951426476125248336334503190540852070211649541107007954835765320218400794164627604676705719058464385179863928570648019676148425390296585472084644823021145989073697661520413542178446484921279460428877723015079978116450068124618910239865910957410922456227466393973159377743983354445197992698602068376176754782245319378090499548929014802859931774274687865323717294746192161789881289378663532072304046062051107407567481942574819859164706368250509851876980501304190962416007361658849356150610882596265659801438303536553991276813995853821066019922908458768676226752324963035090275703200259594982800098041073619684171462326016067097600658785940517231426309343719938538605340199995458008354037089785446255696642760394583719008335661450246422629751515441760418202467919064667901866626690065724796917309948099870111697707283329279810559296254362876528653081981948159339057636679774465649444888892291691855615540919226344621929843671591575833479767715959687244823292618991295288058914813744902835582014195804399458909156642355048245034919055130980126634781313635668622357376664865490204319651229637759098009077497248661964165738761011811558249300090500372968465933169100331381305125184595840451380826666194398124907282475128166924277634861482668037710423941889248385324708227346652541265948942252916926111815433142033598588541899189889630894789401329462447301880165653440753720034473566202949056168799260835599764434765656658977842211350813533409743961360854299280197218145810893061448844480653111573389119348885286674586327974660083518963156432695003865454735421510155546581309513818024110822922064575555499979855814062138726383211957900322420462464240371695373677842691865725558718109519255453008311556793292009548460700880390553976870188911747060201885114301800290072172651501347749869397039744084973652723869538882426335556622061993615883497154506225259823180274211319159938925725002142977283116841905810686139237097646085942980264059469585134261915802377076956404980991585715954547061154341085890735427478109994449420273788523348227635459443039029945643228224763987580219133298885452749342269133918541040477289487923691937428607701185006866051657053247740387957959836677509414933249793465057871864605170235625118063355138847098250429693751677634082801764683715056977390299716121378430770673965699342183481892226462150420496734687746686129654372970299489741112728671746030709761008806332731454889508479473970534808046919025687286821833300131871810856360064585051224050105895774915493768551054405829110663493505510173328074769239669719592123058911550266596874784860253811524452383729139635584094756464539405982842471320442198407701388052841528224346341567769697211236140261484792732588318897900038539278471290387045745656522179018562536898514485705145807579729504708900228914570940055185866596080604096190076581161673325984217626020161144581564136559582801076942661828185952897403257871353079469745927242907614856125220910325201038249730093248233254342534566645218037664386802832388696112611616932813465310918116762113374293301034296762428462926605375619024080093820255601546833586513488014573531007875252911723734732269929103257806294922270933323588294748868653935973502137293725275456699492194848232520176184204439148228764330032682300747802954702295384053040049816849552978453731766485703462831737858659989593717642798980630236191118312012287691991691456084084202520270120347188109440697433164574874028857372072603599730815492463006401600040363162831977552214334849180684720288992530941003357791747753990151186216401377267330439811231645828803879820470461832325397355901834918855156196933977294255818125080206075407403352004548518350306353118812977990338919368503981528006327152301343273416941101685835226722432156352816402577715187357109997415753836902225721389593870955647303282051263388843507433309746737674011755835702126565027906215014207497881422858502463984708860823154557383845833655672960427243444022226275347133294268845282894374178542603882907130090624739045628180229974325926881047211865282713899948597307434450809921387775657120578378681969067363866813881421723311409881507075911293999796597558853627804813260027331369188991013662443730646166651248436035430130304092025199904872669189403421640865184533391438213142553132544668824182934345312742207116011058591072146991515040303551454319827880645081670773348142374930454666836138299927577651792909887902736890893145079462608993688094821418772427925901451618293420344721891758740768236828999155916231644407805094971365908554424375060610591142376836456460218680850846560880302050101195762679099112762704294717586767313272688138634954574226440143510934420045081076219253066611822910638113622032443440025176274763956944564379189020249413880615929719654460033584777525942001874629209387567245979111284942544833121983111414668158798809273616433262233942135746677295544600439444790878459255778413943763600373716430848776205360250372108425171022248540235372575237381656090674350654488360062606322349930248890845067053849956205864285467441856490416174392863552010533233014158612880933063177075294064636545407123012294048983226586321876433057187229117619671983855165213677794450576947386827459923961886772839454569930313416130256661716154243025691172203663588134529285008968443204963312441759143709094501272081685677939343504103804836516896808415570378653701978989730093792323639013125988734890186092395320703091908636245939908055622568989570263776127180887826542082743894782157873496598418441302910953556727383408418872858761435988937728830647239865559013729967475294317048709210281817666152760946309821735161625960574975838471214337922830083708515019738417462245691319582663077459208259863042209027562625648934183467531180489303793437509662653058701503700092382401600624914329928556520498506943730830328103021721663712354641023700247811036081319480098638807045975018722966343263116358722107005638980775956705891836282661635623538594490885579925757765154627822669834852148028779365148395443138283934025943853185759294452499522010883455740834638950870119968691294617891254538777027244886723942836788157688079150253461987244940842834692994197081348936320793756713848194110075829290695121985695675741641940826144202933899177700046088131162442569873931549244805584711822881758058943205891433531932577200792669566485764485712289379357863413735557749055276918735348940452800676524570776271187835024477662949681507829977485604816349321578032653571684130668683428342537644813101168856020312900076130728476179031403225804259916563475264622981484964788325354200234904347819483485895726235966581018084699673175340417559983597944993081716427193793466631710500631338161263971248310723946965747710320319442084063164653482788838386787631440738161405751560625730386250334430002522325712761470920985695904600671877653744080636074770648760420143754363259609547240146596689001914147183377679188980371984676564300623788149309409238629367400802513592758534983748261031193822941439501516604388094024514290444201483508570597007093982332630721250187870321329761181800311924906964332022797623774961509864754631595301108653455236805987764361154399546917075665266363285831472420957611836218499645242238550511033913496085686071653833082674758893886301949516088357834310894889581931830108892129127914043812210491374414969666695336816565801000618108330666875122385359251416573237334502743336806458974122886065792279080450051493046342537555850160540999816773198840480739391803898548361255349307980417306823865894803758252579059080191299074877444595742553091542757838694677186958107911244128717157501823227602501787982463060810074932646113052616902707570923818842410962597224306497190876151473749573188163993745331951478935926408601572058593375486732445072421583008520538921581258541897934165009740763673630470874794301321047579971498433295805700812324660890286324615419150971237251188581617809723135643912065506543779943027688328249237380938077301854510517204083563653714421009803995799140445632844432964948869073226681635794494450237440127551248639905813214699532042668739754490402642636697931400119129854580020326759866154292297546898643041709952068505604399690592421219637808377128251077676859698851202734529368288568894366013958946351502633983206899658420940118803820507071093528498313918365148827879121170146862279407936105503497294692358636116078034066434798194054515331592179923564033143403110094029784904525564671852804997939829743840596313675016995371132566551427034979685422167601147521173442947101084868141177724094918829813966164448640501774591378264255000635023600537602071925772269346393986594732508676636099378317462227572223363792736590665797026388148193082494965359100158912661744312656107055838452491150754724320465343021715179372455531617817899133718090131656028106977736450429441741077793653767335710544385952309200467765174758386803111836733622692222086891134442199180465507197154498439371062331169467616695174052189458838977761574270561539120791802678613250912254221023558050961944172130758566324802176768541518986401789065340527302414692138918602940340528107695248077010411851300178809677980147563377594710807807330390048914453421770173387823591155522390462424508508481023611442197314779237922058701838795235261253162806363151445864373874225616728419002610181212186601349364572250529027081060818337352102984972524724373889196232197019751941356822430793171876038815226357175761654760369800464723182284344696872498349653976134162225749505999650740388014742894783267037878151520514317877215094169813184863731570748392923116830016973199171422402485984682869151680162931458758351868111320434474084654680895923504063437802630484727045322887661114594719100325561372571810500384288234967213575409441097564218423009502875827159906866997253705619217054483197775559194353202027722380007591583470392874024484925063244255289147671937401380847084175865116256972249246227994677531268927223127762363099521654257489174501789726364671692556691950842321035326212767096401803568691198398515622161156536854866265726890031806320751953687946268473468252222726442827874547749754483219044274149062107135013997019506017648732249621836179777270436874921899534151596989066858123680657117178119815044705207353993434541789643849739750590220450368304156407552761900986487697963329127962183105109417987162299129543661363839359558564022667999164999747284397825125347625501105554967974775995896365648520357824107417798765111157916594167648307939185891629252463639594531620073628766847816526879572090141106508797465224492223962004062252670488835798139657058800817626554127413067747080176325199333547737665995917478814373090808888720671623161114430388653855107936844455490126107349806346513326605722738445550321371288701381324596917415650350503000659192335020121021938927735881596252050513688529823365439403485128821289636139731462403209752148940950605072215997913634544329839123335896558596977092489453186690523105836797595080828634003500357846303463792268783955649931076521205217246115863917878085756818010706511500398157885227663425868874903403374886893047789412667837798903910881523333439384088384757519440134902565172168400100621693718850479872830316329564329041474503418615532769258999162362587138473294297733392625887681317225170536404055698334654575322633202750000354244688507872735861301765608305184153907165026795085508014592824967316777166692890506111026930267957007307230784757368281063567554416887433187479137895952494966387192378012801532502152483192406927788434592017728888957179926968047108899369925371512675519421167216520994369127045813146558085751085302654802148747698219109681404771812853427824674290292439830968627036448122189828200319786835799710278261104673111051916935588482234524013137708945699374256458816517821677356334283127205768811385719533284016681740879539811784027487954605553725371484586395628217241556155399708499275710377165921514576283798472155447146392984864947123447338432266037662126737090787912709457884906338610991807027097585069905540760320852792839565591113074296985078891091261314833018445579887186209315560489197567806226571955088050525370218363550812299130432879884147533517828369227367880200915849822652056533077550209811979623375148186966999838957880046167844733330524689511923026405708837872904251920127617264416647940024522195225449699557987176232267807703388367306013229230066056185322745324662106758881420893904653032754350513954710346855939536507033272278930177886387072868320597499964437979476635691266256558177373900013972227713571423549288512078049777903760782553859759773723022639209332279647058348087489424017981973742913615295834821427323793087538767279640062251924580109806734183473435148820743078008132374314256459741292635412078768966869001191252619752528490305551116856815779416409571138289421574009004544443050826116767935624551519570508676584410069556874660260581394532125729203592627446889991764526671857680175098894729750444786745443444612446394617680426707419676237712005845137145471957868283908885336659651576026390792747101556072274983847467196410029574617416038311658092455441014314650296272754715910705433947779530581109257892117866106991283904702580629326093780382577997473712595992236417417127963148140253601716022868785432230634117173128254404100052182694295541665646398777310717171427768515212840029485848052115035656552609833976554671883217265460808003366471789025998161251683285301478553490039694056891359321655016491643964423820463598049516529742503239837914721160662102347836629029428570391602272525226713134754722156431393630327600192845266881857831463156347654062809251456480620309343397173355983689401123353887934271477117607270246008927180996377969041889707424132528778076051409895699944068715663709153423264430578715732835994988282047747728852220766545541645037843693984295427039439545279643994785561347832828850316394866092258697485285472597708685977498188707318173144900976564638518087554006485484584027248129232886830862377705057680567864635693571363426131336944892094103875841354211668519637662699186865842063415250229596536271673335214097143619894529128983349245830060504637222071329983624854835559809878018218882734041766590370902054752315866773612188017180900971319161041010192480279062727352637207231706570834298984002422393854073103246235896666530610908377763970402511576850720839455354778870183361153989454558688264761518598792302681789407956786333600786387081829043980997035965747088721294574674024514814929285283044706790984119921477795592823910291389387680397319338580913904417811533792105410620480558362144533106327116763016750577512122900450733515035129316584229751546691192304516454337389068311288361721858484792101887193385102425153622298748561956600839118090929591824921483456642453624339544418537851511990286421797197454160423710909627388023236889413015870538379640490734978549903522757694438802698137924986639493605027395490068636335526930789832234861048626119203511821369693309005913521970856910459508944626231923831509399407171119461517917693362970804669105644785010710686380311820912229221725420068291029391453715637180434313303911775797012254826369069398260483192982538809916681244203414616442842751253390043570462916567077131447067265574469313584084152163331952639502622372538074022998746143213483213750358671481137885789486502698521962553308799435627918682780006413914501104260852402302502257610501530507224192086857199516301968399857986279931776544621774834649921730351878794928388764014672546905244782132349003061684861219583436305954534171272444612118007830386814035521633221850539330396462405790123690478176542987749527438688103010697897321563542063345816678486257326489256278518142370278963335477191134177257082911793601433345566511281881083536982463445073394095465662450600112284491449623338193970105900614868119362570480517368565800590030170856833877676985416625468707134512579086593859187977427323224617665907701059063983857395848241637688869372675658679672977411514268527686889976628793359448082874862496447990167955768623651118019858290201283234987523141826756718140895823063779493795424503514834738421555778352985324711095041453265396864908630732527662643721479703841698833616358560135578093954979823036823503584454259325925215180603671806540669579540697161503403317666956180717148747651810783959840055210862914891621084830049071374585139003531115510062828086527305736108140167844823885371219783070888873598435482539908793819245957932050170054676816263992965970979120361275890899848105277162654718249013179077311612688770614812738025750585122266495076197813116018969146641442667261047464938884169748744124738508337264279688590716788278108511772360527441208677619768000236789495588162076513580835277169121052123264233643540737594965970256206612437410252781162059578517669344796093472198593872326979547530001977188544960075311157761380555603903991434655955810257932167546632485138944209493297863533398305461350141212146523002834265239613538794817949718934278707003101710533118491296157177141782540574043545800654856542925466636182305604405596125585411418881579990473363492674070409410646418596303317514477717215615928519443735227866144758375007740229800140522182395889065266108157593497157679995551846868029848086401848181093560690280052344253336877943228991805506583974216585796741159823169137624250028130969849563404585462990506380026408072574194628177371350275361238885478303542876825014783065531626156717071046848367587478145498315174407296930887446479065457679302494644318469215699820391790579738837538174965653704232433265854348079010818270363276976577320956902542797819940303019387249251205566060533113720122766363595814054926188909282834748180485192712963211948149066676942313070595774714008390864463957244762400813793018596005326093812885722605316114781053185814789759102813726326995932725983141994938980536276573152954777136284458517872950115457659658327528702952539015469827280586963719274963757855724700388047599934745565089010228410582262341516065605813276036939741150106437235793717944614840970648882364686170137061761529233586944392266867965057080381871010573850281493910819470453127601607230418556903845831219253357510179619343362407745453959205680477347533885187678872204238045034465538330032624028259041275554551774629241712904678387652871848581847216279102952138948311610825576165351327964742974323020854162586641883262784454510633751707648310384011203660305883898667224214440395004354701360307145240556331405985204170942834588733302794404755335728895765904711175612322768178862933647308153338446211974471776738089486758787203941900972615720700389721642077144492685448849058528821250861622786340861316880945438037312140611779659527693988778170676770279476029900305805861335917030077037169119287571551318624648911419540975499630746260122373410905486820111005995144466039203629533219107982963378373278976989391898081713197942210434782221301619667223607382586370745878262078064825927773220863922839917329037258308216427761567855051507500651207658816505423412740847763292653241141215637542037360589383375397784833483025986077076434784317456074736073654109212363215005390583267967536882406055046264306262072237415877841182000250048343808919279400651328550407818462197591852459111056065615148152538305583452699820881665070922166640545257508620852935071432817598511234843994656015083612078261566214083504066329519484001928646163921461539333333444057265261830317867007397140177934350855492347513588720526094094033408866154599323946114602387925388541096555304995020775244409174528333494923503349899126768206661658243005195419793487110044989679152158635136381732271891978303214052724408409317200560873939092662545384576962298490272364246759256881339810102176090845689230355507390423239318121126082072502945858725447816865296448394503234625929743678963990368685508761369368155855025189408699556903181587684787271129085699150965450857718892359613836422524713751493774887436641889424319099160530842058270929548162334807761203014359628025518895980066201727287468149219884849282940599221555184211531253932464202063179066043378085850150446125255146878741712088902789945112847517725677258531876041552972701286024044735967790392237451008830662957377335478831182364278219423282780322326805766769024269357695449629147700577050792557408625583245857783871343643801633771996374888530599647215745096066134046747868428619197295066680989924328961636548976865920692435068875316234013361759275745703183818723794707712818219941978168744750790813720265491134236505120993620305319410807127372821492308141347796986075790151062383738508999401398860404322231300171037819225601357818078691813774017821580712794272013165345268461197200104354040660910229806105986805884501352055901669206550822826689484544307941890246221787528767866391419969092207126537346947306421273722352188566320256994245355541825820811082692828268714626307418426839278670680648095575982952548537661049449187741202159288064994018807296334978829284361785214909901784983575131627486571951767393393647850769903747551787211125506448293260179891040555108109350219606788709931265184516541825822309725978705266085675675224353233547097819704593671706784467255651019455447348481270621509512674170701260822550985448310018405761314368235598359742542055033457589284658716700584367005459115020994683383193165056759585432925898313039483232368195357731160478663686894627330396389565776496739517594902268215081366469653367714445734333235191078469692576882086524941923603471085122263782113566666397050873606129281695055644961545064905771474080919437419980853354675997429962177031728600953960606412476958201607361454184571580464329523198251803109290555604561043246845096044308307003959983443436496646987314517412628585043788583603598143679298589447914044305952107465590831604769003793489580154272280453012217343718943357626870026644117526426547587009927250516752415107587844313146839819332753846881532726084039412955525627540201030637872771621949737882107563273121383519580729511017492644826989479251228699616473263054168994208700076045485540325829723063465662901292191820690192984970120697884987985625692380272341364693799129920538987113405060018146650774880166997360281260534800227973706699391283493999980357535996133589657067451564806593755596656768460108227325151985214251415922164536875751347347048147930115214659503756855713991568725032692883856520157603789995405076307859988504014818945112429768218590294716183087663720982872860797465849890425242590860066825210763660628743863738309060441050661391859623735148473446402647300080029897773944302604152932546315457865139302649046488852646042981349046682586318702194838924055955977013848236185959683223164298616458929078715641633398413621311122039842233366227063766264438971718014102750521147523085404562894318677330647126086944172032437854873210322190336235651025546127375848588263882136529013982023504554156381149921667958846513406998578161221993097214023061286213920461409185533153566934790843852762686308610330897424238682813091647692909309876202396464458264752070141398688164906889720749169833102797556695167699857146399522750443300846946119213807794491153512885133598824264227960676014753627191537424030724949828772023309865379524950167668776609604244754045358205679083123439425384040447714295143732335956801990069532103330991328924431689558962516605680884385154019324143671962692901049594987321985250406453189004374414739995696742606279131331621358895839427248008618247178518162259549499389165928404097036568802151652268473748669709234836025725060945782380594144311384533785771163566273131358195048967860793932884478958379216722539381092110787252279952921765453721607825264848867487145552843805396599913353530013573497450950045674410190115516884053432965824000171282589621038509256203288833739427918866258137085438716082001135388732355980852720459640029755660319653850060671762728356789394385501393085407474664737557532279460563545474874682140284645793488021030483632232963680789460946271184341455751447443029877719358609694024536358342213876639455842302746467271772512909076908335101791475910178537031231634034479202764516425161983287899002648616334054327212088371263036357724087114297033541801928324248540364306962576752068340268816406821026324257523473310599073068775109483503749702215951294806684988789287767212867745398063201725227336089345781177934639240398685826224290809294246607405393654603588377660442503405444681651183427936028783962262287766078515609329392563115914920873788218645155347368362475477410758562910626351674022136108484026284863063734676284287313848000938566759078696200902550405465538269845977345538690891754464377733349447322695462816270951171582805214224432843530804093070064660691972961757802005130975029667413190682104149500659155365538077870509515135841823478063003321719040700629266313675160050506543660819151111844390797702312395852508970775294235663164344921388373935807038655796410913862042090127115366585163511686061472361865322051240194727060204648737915874582062128905925634551665234528519902959439681314772196068830783674119847437925075468262957495370305543624423464271052461087161878870906525208019392898234684070421085998106857990514884522844559895062662993742386560471916259370052561653848505478445327010318289774388368378897252903866347422952332848190521869717788356348493321534983907905264943002050869090363320741745545377573908907822900636014359579983200047508927269379522480295596413867469598448647598736349980243837519791944653188199337280303158913590833651942855009623307889648356635318977304326337936901127489206808268252128507430722779814097786254331266791335377574941325390500285004838607639953850976383947750853635152579817964400138954076336804531308203173618075935758424666326451507178069085574748678635274791973354483843060392817913937440429674427544561794904482971261674731089947497117057579886916253295299714295358232684522381558497283978906609721854532287584741968867964603542005938828616619700630396896824507907055408709338885721850780019628755693387992400094394329207924123074535309012948127919247094658524234731078732576356041386345339275692697477331429009641444340816185213350159258637169997972004918136813817543340026360990913800630219618561923013304414722212653660559463670742829285290301663490737555915161339027155624604217732229345778310762988306771017631379472978212729719725652212341972070269742406501129911954198610662400143951068891172142202020239964379943467606592923278648460544451355293463015434032412309745766967118366111051552388020973266897029488942305571439590615513876034466064928466300059503097398946261923416557547140021795660345020338547413474172250016055142921259685961716792208656309731298310337068518590886228957697824588729492695847807060779492509449029198482461496138726989868665099524433390588845482693690337108805197783991463262189938649112084632535177063914350835042362300774501310568365842642972476992921748374785387200731396589726884623669875485347754313343615538354223302634990659270995891826084213064947021978805807143964292572284110603211491539297462276770522438903596195262563490086535571984303648055845413564830625736621006965038222146027684886577082250698352140869948439235133139975390392965118853900106781618021827936100364079761351567769922773288238105087590186394889887637720024808863912636422672268233187452590191683959539861888963488319528140168130672113628700268842615977866365426190266326339158690664587029557289894526817365338587338139430722033901318597311950567648736208239764863346108869698906051891859938259395624316954339217425379603327833368647814839177546741439108406997203890508669997602895233977004535303352975887945501130521092031682699585864740403848323094668813090721108265764899317757530973089913270025566014805044589453361467515796363010957179940683816682395911915910816226483167617542253364413573737481839608516222923377494561797684485111078309417434593052916929832787816836455415666842746292935785756640371952944109659881173843976376448877143732634288794224362771484185130412681878421828238070550407919007119223340803501120237283103507698323711157778698606001081965453822626521062891581214791978540664767033844908930623826372630922028155136953319229903162611640176963799963408896613567629119843696448497002827084718551870353135959866021053681603471669030591424603517753998844360666350961845709684865091808605060886088956390689991410288649458102924640916282999441966321460682322885585508892504364053345768624562860173845290303721532821240110021044846302866335794292306429638657276530330705404301717170706569771533075528749404777813673088084845613441022346760484840009259053683849523741590480650919204691285131451754260960974395185498530102453360704583347563804890980902540667836399553748834365846442268742627002977309480821997531012002886478367245223925735042645189872238610350565862977438555776721904600841479542916887227399564719827964612423034275954204076166415445525941059697774886505857796430970557961851378806465818740271183174699666182552011539694363422027134902599966382423450435911266485672149369183447540489343199790927522119732247594762080632711797583798923046010796403343419526285286800575113694266594451885077297822939014530926571046299018238352882391835090156919739527051390041057990780986310705777791507910856228480023472225765317911943273000138788673573038515652318307790735869629766276538108374921133635508419151632183053926686500341003151401607008739606047370481780415966096354218239981344872063015904945029580020336479115053162520342789512579944324083208799519865921974534262833156093074095425664319665723380491087096502402291163010518392528995144046414619658954000418509358620448583610839409268937395069995453661491360979070210337401500449685786751612837634344855851719461362300208674138969173946366496068677038520671151679017069446054151034386733947468702320830363182988576835432368555476018485363984025663271443461095141477982776197757033196746526369901006609713509190055067758068631904651603773639284310151078605104320845595927630387874785441013277517373562553606809834003509175925957011689117061228909518490191458813857297529519637715877228363316542292227674544440633355007857881477084971411130038459433294158653292995010647128463675176280290167640119965561472359385701433931005447127297219178602221727506381541368269369804872903609140289231260764502939352524784098346628310372495106148296335266469535105761374279888428223878646138407187155691271035162130113282155641233901427656967365609065346183575251415270669349063449731332917002716539537235304179280921616721578753629822825479264935441386606752524588407719082688256211667178336316495824298069178747416995045086944410353350416212455991491884609543520438682939590177191581086298840565330320207066147263260621532959727034881289523944276149118547012678105638315250112991352902920844125608753213935720395970827981561433156036579154318312524616036604524825761527290163937915385250692500845023586272256621196025384001701389331265203694401845684340448370736745755030132073722535281116876375941549399410307734769126647914125987584668009359749298317513264414116836793863873038869353926873297943328933594702509754124116286087374476862401318676293259724563893146238528295752412840686962112620915355318999312503055793045718109717963043523082473546782939485724084862581575374713370445865859966559906977679970917052314737865513333732453774680497066394499868649157032161844101940609313743723022770813659399099132394996621036303739083480972159291753564986155628275306094954757841016397154807645769598059945838366137111239594096784726925778744960767206273579772456766294710471402849540838030136998167626137933255200436991071033021850706587426552712690779272142064653976374430674330249661902512714501874676499744178901309741319294045277051520195422224953172397066391780777965018272124458842632465527058666096138573702114288291106001498459459874604593139995236139860036419754899231852075390284893362500119261224152222920857327086313677617968384396994725063596797979833782433795338343327616036121178833376550612285885408179247552189459249627456363048571281548533714525092730828323110922566074930063715817799716960052279135434023530003223400877854477067477382979653810633693895306059845695558018305053521147154700997420471466484913735415645031737938221507270227684149424483334603499375325204735299517916030606760937970806306719653009939287140897261458125818212160128908849563268590789331249071134999598761110606459819818682375301851974661379104607275347820388309287534572226455400494525335389476223913624243592402960085141979178898767913756804231112983589788128348444526744627197421485430926459141613879023355730350223826194037174221811650514547551010517144151464700040802392272913888459506711252254024399145081705721406465348355882911441297812480789273057381595033213207802871579706482490255507379346801600070483236256383115763896329315478972519592360179634243434322500895877889620131334397124141225080477098700906414900601085517581275721420411615585474115895482363513121633583680733785314724892858322782786909062506018297225388800512303023255430929977118998858128041842367875542651155274158857316636681789317435438906401628480387212791256249273243067960506772212559574643048967744783296481069849219760672797217783683621749068000850175375216194862060512014405702651088776907192987539836457553308928527509381154601506880984262649856015431569185676598900944479463430540487419257762930158278949683565572813911662181863602423545794052709471520843918209850914956413668702458123945811530064662144860828707576434005388763868513113177588196915226818213207411352760123250094459542039955774916592591645051571665944222862196747578700745637597012642843121306943098415580833197368229009367707555369315581136622608350977331370043107900703760550611731109359008170547286829320195036681876751049643755339787556557856394046373314485805416323220543758899671307016634234577303694602166038513516947133058135792086215590645567330865100624163997841203708114311049717168812310636123553740042391562215014173294017637728292531320376378165403771587999444295355359596985139983975380440106085976957388842697622508032899041335324401563737381501119287179821653288804403141037767681949566763735776702105382752998012955504673425577390827672908871680789972899626876797940085290290192895308565426479084874697226149868764944332565683580999822796898242443686091087002505265523270910945857601709915859504972992682418650079845344919677919139469295097175453119807690459894185796179162378450060004619177778381970413659736575326896618831679129557788431780386085112332974019801146567866299143034226034881068932796991889080097179760766789281858863652176049678632166741704781595533131974635494675802341813495996555980276602065680432596220758187147505802789071895899368314744457391239548725940079159210661992133082334615257712012900460485137196593617768106717050768962600814029693879350801332119530466596555964049021451565015875167327991494315583224576478564448125756281024652098624533137437252945947848051010164433445646376341396181689697097942633846702304326048791158876770313400772205648015433140252938888447753199159530677200338415997691222564414499118245255717619647189380329186513083227057310517042156696570758578716437235988609459341178814833801211323665903500828191022863235120581867394499119396941701822655200942632386517641293612077124024569846276555260353286663585995189272676596302718358615712105843008820258640651785833223573286184145568719514369399667872059266729550566434006366780604459118366793015099925046749364172007344485555074567886547521993154512434521592452174046711076776140046607101949463913664957084621073708246652523022401764852713769581984967124691447271883930129317579806939764661652657759357452067487974134446313692509892177965252550635401273760027236306629214269872600021529482229352320907304002642563475566085908252646809978731011035601768019942031337301814697253661593240437345069360644369266617055191948819180758366969042257906894131310689927485273439502776986129021003730658998528712815639518658702629815444146378381494580471184156332349399833723632900735419843911426992403131264945492232988725220646900929308410345238527753075416225333260766673184796818749132942853994163821384520494567455737856776752667199793271881852465034448384249750197632072776001941765026694415962177681578399450708904515279240161066024378069500766132155499284183744073467333093713025745427556301765202941251257519139136660086619426789694808073670748440662332545867589446330461297589560865387020307689711554258248032941798544888980793739836917840045989748324276216096987511761944850783005134965855293624909821227925832627852994911353884040003577350261806535246557065449960021133429219693951849656330912822502353632004408660785219476657226944127441515346665594510975350719570108998143491425987889400259684468914762343912985058828269968042477949845818488886586550367647126472133553266733316014964740745173009499311052021847964310052965745462496793909537480418344408615577452490846812192225204665615515948157444991376102134184142063201466437699775583146869837918741192669139102765200923591888660735477967007227862575669339303825086647162840079047118593319011569721373234136382307757112344393589916205375564578724915098738727077912264061694611077203615601255402676672141419858469580348712932915572747544590448215394043737184714550727406505708390270174094650213246538406036326901882468254112583893678088699680243304038443602669748220478832086851311645835836675192065375876546974870372676590834592790306076454487165145754957436995718741764085936415712444622498811379431690201555517459003732858654904313877953461974569869813327381776492070038693775365443457552419344355426057120697058016343534170421851064531948250268309210154539107929166453441597317534025653919242126618192807759566523571345372320578700329389793038879168550985236302200649056914673579506719135759079445396374291048910897423311264193580699560695920826707616506285239461914026223218308268027488118405195370097967717449848473786087655057287485112555106009595817859790926472539698485619454993812635715139973871863974222393812039637220883036465956396796964463999387875682432466461523829165312506903714506568422235830501339914580268618252105353059945048561248668856085698401143502934543491288372495699974613628527709513134332548765130838295832064738083465824090630861102711848864222488654852251758071716492088903153786240974537043222008160989719543982324355750313575507331126912045320673143373206442837896086653377075996296229699147839021999207751762236130676478353325764126912217862953755287773077783600166277538563414014078623214502868246917097920592175235533207215715203532135959549193136040926685011042988212974472470470757537763561478744317728267720298448728589000084696230414490416932898301107157089722426429317998505311198106296954535172434060767999955352538220042687318633663894878600074783769600824620614966430978047463080361833493993463711185665683238311781932649020861716858391745344163041233223739110021764651746252907664878486898617827078336014622828406013547785656523348322344024036014340501565557894067301436299337252600468519469856976304871857546868762033105517903843904434029270166217118298265777471444701951871562833019609067473042499285390687869394344753083700259350479111992986159032117115835785496710110740021896771199749614092384518920947043381999206426047007928331426467758442914559398201266588413345116717631314463509467608746667058167179074593130091937775260128007488519039389758938894158361560906832130954395423337243189191059633708291958613241876879026997076414889719701934419998604466129694881103638589177691752440440504870168020052497804783858716277311220053882126955691599639167119788068488515920239539398385933933730396464522740903444473434276851966560997430759869423215544807699157420203620029533315920716338073129902781684523494641695474734931022029770565206181393956162599601390259823367886020796484009369120437373034308795820074667883362834960658424359428070769955117552028254775340799341743770238351703964591144653175794717556495882937142327579859198224169118190022865619733157413490892469945110236959407192361631474291094479488509460374728818424133698377842199172004070458117272772538987328895695272129683750515604201899003055410838806505570973792976247664762398680850251680657279362493611346949621551676076273253346842635071253347528573784056862589243518155468303845102602046352874842171194809585295975585410648728886512537791731472073966866289974803387072387129654136541302229330816591989951181838311963885849369809429649076464240915967015387217768992826847447539539236182337833567257100584409877002842636572543407688417667450241523184293703115129683165662168238708286281263647627480233944381176272989523004458336175679747834092114250652440409092078627121564303145050892523144755712858774271001223216016085549513433386093887239928133051034314344125779440359491731230503901253397065663384364780643368635070194773436444716080362901825292002888266385055587235562550873806729251706224068895710713020476044591556289168146749046735627812014136154142014037972371300819717699309874457420336591066047889826279574021422695204633873313896595664682416382771035916367394156587311651735979716967103427568843458271405117878162756765131640726316344540978810474699588317781341202493744083025850856913098441115155423487794903940533149778837503011119520544689303720207868700258494435552233170291595184970815498954961188262323215801362162548347485246736765149916209437330581477984079002858261012706847329527309336619063950897121113051740441662872540722090378468040125782971773491134454211839153005438706952398350659782327107279926956093383170238501286998603917421364490853910501332296275227538777961618740302595605328094046042169326836311627364935550083233181718680069550186178595653013776551376414553933707146678687905814782586972174500928125007750742891509545615935568213777174992077117972525327749145917141140834485755005214154390267745855272012991703681157410488455985835470838966040877572701195445212166026113807740046996943077111270862941958481218936888090316184472380066985758260549670916806863988487110463251234929831280958572814891095482752828688554229691059422724529767396375267068881585324243595946039333942255236591645968290622628020686695399860573680408740624734031666477220909848457134959421924677242210280295101457914836651708025482054941931230905857295705844685700076495361086568832622636045286360504143654039401029164162862661835394907650295045712730412802736604949952498912620416922870710094157632509632785209879124901615301398018625965346705785992063973048540792858711165221082204748799339590792753322215955929954774874243571216686055941331077719494949598957989871634598781078153178487677450288770578613146972969720097544700356295560795782043250107194540400974315845434403009550327426464648170232477360162710833322813352064848021868560819970167530747491359968184705252794691217868591273637846246376133943457959006104070550544261992941474874709405851927932149213264554610735069688297778607788800547753696249492982526118871826521041690521728915751472737926701322928595138657093527397827737623028368062707739368821278871342372760616901717053479857898786914622152052932157174858894938162532919685668264498216881238874478831691620007951749623907042516861895590678024673539541593339312012415170913529946338806619565059272900848043045330171483244070940690503755336253455133876124923036986281851826458565092683755962051119925743566503451168802296686300801652405995765599417938871399019392106845869502471851616675932040986329467500298685211250323773176785030696657257880766928575770533919846258212846378010962474652432995595715563203502469834345774306140202822429178989736012097271551246991598932978770645023370352851679605150356421835317003504128677199781194813224254689580273946781534967972603493303695970432542136843510411121863462768467298812370023967003064052865499053214410811697425039392918886801959524386081118394464338742216928186404406680259543960254651262343424666186677337507561621189231387767442168288355783861074353243563572808650685957490169137153020919226219613049475700913937585959492401600446773848596069088462966489847089823080569240789529931735448147578032178286692723713316379493759304089097269988976814207468886766261517526911770869816699645968503822286332997267681845085403532808099182743639611181427748632135469779713719295353447319760028825395642950171058420137917329826261299664747567908408141996534877512088681521103880745923198305613653439160679255678292491542997132235984433767868549393251799028228409748923578926115987582696358398768947172767452016371887541400183803246656097984066946853551788765323956112486207359786144726085824045480313488369934858332764238955964157752469959602234236744341500032444109383567241592628128481329736486309798758897218597557266135161785793265471706891611048125242053022773836254891579673530378543730495251487061510785132651670489640913074650801038521547797465362447292504365852818845373223478157842861263086088741262804663146584164426272408831468358671149329911041131874504000847744057899149189483266249486442404796564835219570734080290335871397659224481949136586469112771268621997471883805553165707363815640645016149450661602271773837760506394210052597895069708545008363447074478510559828014152281927878442267181500817978974987397797287283850789183581652712112145406236165394704046029523502325370473370664565281190987393964692322927265932728311327736897489699288557516612203294884660978161196037665209822971013913253452795509853819646435430632033673216417841337376281112743782136989491575507579682791785415587088866321239759948487063345757149983157086275118567580377658148340440983138436006744092430154258335604374510190360392871209133059270694718712067025653505693714665795224763242922833545871208290848651457156739154766182794586659763916314080716050966694811035658578544166517829714500171654392792619755982684638480516550232236458929983393117582685021358215635784956280577273556793087432278846098778796979502341651573653187564920899717023771514562720479469493286939829957378909737665932908841984178531712865801239623915044740784046674525541091427876218833052707334735078678553678439502803968775636624060284954159073406295092610754027082832868841850582594733377976416068585239703954098331329273396243232374912098563623012017930484935768741858670902620798285774985333549163988435220835607675336795004157607553608740526420290574831008311792673063041627035795593097050468148220456290336692634242155776642750463066516635849776533403597123514440918842240193672339115877771388684101658991969947663961397342333279066285326051152391381152875706067109172067936977893743330885650529394540313536538151094668307906446209776363019415256903606315076384200491122809497983214650404759453938683013844657556630839032487574205321090327664253265160697768211453825351446799096302610299652526162864221307763279638367329016398985120650697925788806013548986790587833267855455398202596282526013814219868640159355144945380452818911845196781534765821691274160667459658838738704293040783886145033912686330762564219197036201975678922171556948331924781519654359604289611001790441204530455423245915144476317518876476032251524420820147321627007180216491855310714042530431610443592006698785411856233308960650154472879117808490965046101614937277433618445616271931685060506728039323220069598815123510064009200793774625639880699491966377628995036205480044283924081335351452872586553398974287043914066627361666649185121665902379478603742890603863225037225756742794102870483214669936878612711863942556606173732319001385234142334352048524727223125921701477234630704581055642780153426745976033796686868288019037102670943295016732212468757290411559046385028226010531523284540462518433494381663292485525139918761028400232916366772852170173705119407550191660789021804590081235203599835489384054087518428375369596739234297509178289515763803332713589227615919995788647262799286200985903706664679741669311955073411766406968205940879856360444884726989769262721645624605313795674284604598331394167787514012699239006134575111211056003193093803031173965081953203121166962199269537920427643360914968408205284270358077948384148307049971612682267328276567843984749970863754153537366369532714328934456797521838809539460930554868930869825939974986488221066748437028629683989412203350009740354220105678362863791244670818947281985489409545758604010297166626628945829908162852055674352418399996752672646282883481059918570287110876141672185653762414897874694792705276843540574051528040910760096878511557481935641438811813758781359749327920241982122589814428052597825933803779521102345400021747424437496704551497255434964086485225427809780766599743560993070448415909891787123192261389721364736737010545748428998904253681935750799059114075218048008213951197066854383233744685191507821372939268730929251362344269084943716665493148850739518429371254291513178270524649291418117694146118950510898660996995148914879880638727403161083125540040491986363073562322506618786231791492576598257219757667037654832083680150194545693987108894843104628205888329694636589044902666338685736013798863584876794766187545784167565272701261447073270947766958460262727841332601584923725010344384168846846136714388960877704623500600080156676449262056387721542009204438806805645172331211592023655304656898992346881167181952215367033296694673261141571444536855680367382835166907399395508315012083280822999813094731017649459907661478866339350594018785285802193308113151018793300449988801103146653416770892718145004472273129635858161953388840155606748951273423603657119987349456604501952319294740829290987036175436909015502259501972901530735338213140297475028858404242767593601642676013806812082271976894213623536479651734113714001224713590396607002355867092782405446433870883973693741545158288230592882489811522759352348139540873660520559595821150170526923156212745140522566248791766853078273993712007214678663577645992595696618870515215463574122814345091122994527503238748986255524751440080255286185007209526815449783688452480296586259348647847612514554507241244307769697179305179190332552478807703716729231714228729521030613949264588403241541529110371210827239564783839127213729026778400273714628870906541461883226022412817560945729750866021817395800391589449586317781347040197286037503846130780991329197193709368996003306902236201506609114504732499096366515881215195949622133744694211058845504618817303286459960021737825479009460879933965389700586846517418154290299545964608099125000620441862354584675112184188636803823595381585101053100417607099437167688943041626471419225329297636216092174286493542975068604063425852593294990589747011861222053860511814229753525675348347182524611893360260050947030389173873776621200756270567719889824236762133551789410865553313446990260149755713848785483774799334320578607854799182268819431257976375786501148686739822545188054326345211109026294899733793542918058942717331596808354437202525565836084790784390454864777347433352409664937188988748876923667748309737407902936048863812269823483445553011440876411522465931314896231460493551080125096476426805076340606028804421632984865065354584598047234199128177864851408836897019515335010647427732712124062528850152933324923564968001657167579335973888106527845793479277195974371435779892218957825629812977220406780745795089775527647918293312793442643002256954480954510072594122655298388433380620371863634863780305453176802988944352733280588524860809054776171732194457191523624504178381277122819836747742687683495708524778331599604771849469234951860248818015714449475536576650753634510162086635195942063992725436557835336484220499663946960404293060551640551747217816200433960812414830930736886494976954099691242530128411468503163709595921515946737242823378652625809539016036398956285827271483768537516158803718904002144905224996061130540214446332018510081508172073124391222571731544469054884046994277116224140829622135875854851235151062545357896446900798180911214441418456289219944697387698224401989533279229409224034156981760106277687072559110606547765224154278669853468919848291097146831106924920030407916200856518100564756820779975076293057267773023559910224418917491621358894735510933832922446627714567256610403445678178393479363298965514734346644694573955733843206841234462545482399110501691060425864064831478866519755079889765449292374423486904665290773265289201970548468395015461706214869093962635326648440764013569462189947943148253634221131164149190885697175082126050339911918963177303614147619668622392804981873303770526945309712347441909478586674996991218123789523176566265074892908755273753249746745900699399818771904041162471221335141425365927113473150289823065992817397413911219084806493846665540094263639102132242585965704785989634346658292834491990065613405016348608230983079969502764821171248700496216655423912742892508928096228114490986115607076777042364511434074237666997709638716305029351649851084194158184605859979981371270436699993995270622727246072803475090348137809920704485886723476992681717020076391027724719821383391939170777514806427801911424520629519701697414790564542969765257162574551858149177181923080490906481247907163907920030483675647501401261273269274189393117975309746255108116313085022128715871609260166983239654572646681208622871946507708528683797583179315972804734432673750905249227319365908708707043502000362345583450226163892141352293108622455541314689532404950187574736221928096810801275443812743918361532220968499814698452570555365917416003190857453905265933328816736531666751253579177208724779622917451652381768951418945543138026890437903958472014624446970349603372778990495206010829584859165429648501245902879373345208676866356825105929375673758699977887912286504441623149991703319583857890397332565481514674365710825447837926080664552893620132147025878816012510828207094766289977525748595636066178269256936685391216463538018899040103362743672571561407805110900330019820122941895212260776559547958129257666507049469165941258944715020687655717505413205587002249530234365852285758726912075813047720434196195775964169207947997190541958518544404609548589108474008345983440679814097195998519573162092137156412224753117693462283806610148158581729377461795844049370071224456744810027983363545972561504845451364540517225091760303021544664294201517171093647734568207439317612871920037694401422374757442862115330761736384041906280994968628161062504819564502225357600145316481453636718241639358213019140578294260971558044228268384725249995698426946801778066353735188642936277295627846752586444105527232775855170562131779493566797181876096839079693590489903116324424598529822519568144905858644209295070039204628071161017075923006654395013387516028449744625041833556482134725621450592598261679598937538939905888887020284311972341919919356412161470659963588674767460657410581621293227043565650917297659218964432840371665469719313718151893473802202918290671582077562154585879364312739661229308436676043973532893484019691480010209544326967953755156253380516242044920618853515542947851305066763133379754024590930099716520557284223587058654466172054482843062458036003118284057518298564530467798288161930180450196114154676985102055565829465418466789318978392003577802134138128902209640539138401907950499234133497484857817980852414893662739472348962672223625573705428524320469752236638038451988803939530721088040421334685855256279550211374891914534835355934772181298566080715734021357214690496403834458647306187417395315993635630550329389367643998866036736170599835339363081450314427090382602581737884642705784429603887788023027836739598128593700445088245942837228204912721895808495141384832806639651438307381191818571072444337648922590239712457087192646375315259322671545686774748981972262718505398659458317831886311536446634712293063678739064612440726187785899970241488737111535125410849663496627892295484040515982947849281477702720026572818426291650522062576208257836281593412262133145556477409733732394966392676417816658424138104688013192680421994362779754046202337666412585769679533560804150475325509043435394390920324438033151680452604529340343622953848667222641931082613039016093155329792122929066451222792121333094925925752398900711641664940687116508990664405246363539719430595044240483034798829092750681294782250324024947860146379799623416515360862967280005622481228111573504263362319989910638447092301107975532336380210076236584347063504151678579754395178942767603251377872963852322825143535665165909922415145474565656887663914294242891989533507024447271424600629770426775234765842310013920187339911074629477973058577099559923441260632729630229726724791125288929796025289330832483167881869324495288508731001235733632123229252291545617377395182134013788241748132372447643773898497901567682695725079450535081458683347115401701560221353838943909145215380897737728688090739175033752172561137555514187430101316729734658366353061214048509177282199686306420228205982563379374350505488370444666298660808161369920515372383234701091450887479896258039278917663153507380808689345355146172767171034136500107881627035617083773890451494974721412117035592372629991173723712523731829642141328167031457222431197344735408252060976598211451349880791147701082393088278410562177503792507716256623408503705333388963071426904631184912154616304657074421245118671835711323964654132284610239447274695311271009546494978396538279803929830854649250685350469554236943141420088138496866297753648806351203448617625762515431098225748913585486434223106860395762970423819072062345555732177315105325340743879581154808469983177163378770790641992934700729632041302772848740513637515155872551697286626978433757945808737662767780086439744966164938578383556268285498443023956785350575495157536014333596568987026156304324479850839037789005416048426246981297139403811177898713248854611687816882370270151861238506081599910239661007894050010585589615092481320650791538298162703453066294406830303422686755750174818807466573020420362143706406118154014014291768166124598126693700987400007727051490913956972016988459847000634657016591120922771068628248163792595632149425541958430171514003525571767282005476421887474895989441840227718847400787857129344532588130756241713535165732446509912642615527927820322853517149381781498102603269688590678745354594963880240089755091631026417755150681641025433293546069341003741153388750245841894127676742176621378650595452598727234041587470934160469597397056583577203182211809775508047280164390406941809017456875230407394059721309410977969173820807238907778033391584161099551052128205294174034245462830012879525460297686894459233271753052420575215352881294990934352448593455574761185016444264469810732748362784580852149501274787825458535618531503565119084330412088407641732190390890516572981075541807461302578017173783614611614336056143370540956473958805332355009846824702888899850073254408874916122323680615638832179906206713106352604608317277057103262675646559792289647742900934574879888358580033611149727393566187420563752708538521486908662641328535078720643438696124826311405303883571015657219090092273722059753369142670908338187852353356216809388546137211489295210065476550994507175123109483610778943949171089834403595960809248806711445559879129221981880631894592756371322081619983279586440736569725804997989997956598085070824413615695714442289845482578037005933333773860149168595903402734709730661756668712460086537952967247499400189803190673056168377772610448698239124706657361556883813113659178975063048698845696881186009007349826051698395059496450719669345271566159653613633169844704111836118144896435717340922885737334590309501238433204432884607676164051629525931266521007297519959861354349276396406196086521526084417039423457883570801875627063872478897351977837851556175082110552263698456989164447823354006549376361353936117570400975343317693745526365439656332456156552336762932118092116679804503751586837844115549539058964107047017825414926942615107596686966137587221731200814568411353156856265874586625643954727426360117057620320941494214099312952636846112688196502834479310685255678879782970874772791951063291402878554181648605350554009681244208376122828476606023664000863814056829596191523528983014548114459469130556963103349990011379365275651515795245025497542225215864775611190446573452002958992753268988470970420432969204013011001275188100832674086781591895237891595140796333649526090315100409215326613684112893796567240476295388611502741539506340088013909577700352789797258275659190551538924017096069376112041640162267231283840957048592770697152063584280479620646507605708393923984094281099897681752845198016410653442864583884172177298696178885977863232845784012519638846716236092060935869222159768412733665718092671265644869157679020405259441857728929269393276407349655931399410103962643410451400967639631075191793018308446415751060313588269613742290644915920517173841124138687916331841225978414206942733789416503114896144354318418897532467118244896728033350460206776219625376396855378721427212534794443190756851549962763050438363191352560635033625945591376479894313452547786985761273924154773453278984091016212720910683028322639377605409798689122115362852743405892244707678912102687781678786830722319802085121550328640856005615516722444789377538857993564470723286309011865808309415824851686891882787366810573024729378299328566866273225536541201706421418060885175665374276966254275973364030897104069558690230935859722949004862505948692701244154923912392706040704554627999949008942722767420325391716565030811087074928636763062195282866487057813880046337752805416358420990013731225618281364657060867274080242499851980877642867293535615205587485536595991304634758565223168485575292555755218773195566004111362545817202392056904267845953316659453330683878745974418604966217881469634208364118660211691240984543936802503516046563671122631220230244911849606291944770078368399437716939252078766523012514094561935949062734660649261804382364671002206979513782367941599472818233378757567621489491465133621006214685831423605692085784910123354109983017421397739544090879363080998887872262070636225219108542533272580467752377535049388942583802469069636112854427118920113765170143047853031155122684684207838091520551490756708989521655751250509295764088632633439061706129135571831901345276636364775816276916062801635603172812244292657973002732133346031227239162517268986939234302521085474601132676147642393005368938090384853648687110157298473688224299098004149748165573880963142408756103096957172370489102393869212616897902911931700165609518164311671741961328774105839244785519921692351423125131699511266333728817966131607297250556640057374013588256804694688307636192215662448059311147692936539875507769543585654827930191585596146776405093545555339812070544355978487279014226142815418267851163303205838397588390156648382615798631566318534012041857587599903163643849958551989037267209233524938170975999351383315466985086290634018775721658106748670879039416239648896104338969046568203501746392300038792975595119792145650623995813556577273563107659299868491679405603053216625401486314260966733292968718495550101973992356023290043598367381063734569468615304151553464724267206599284713700465263504823432685265803694468414935493395110208861645357496364053788099395539485212717569228033100440772199334927479165091250535192477881099044704122809977076557861102997981790337971066242230805155556365988880973418678670521278746171307170748167239601761213434013578251756263042336914546591048106257633088256398251378052954217500104606962538475865535369555233566665773986893474426334333943107306724948800880256340577265484236821229460707353268341209734456591764904454048061606079165140858263516033065404179541790984852871924080727376947769004891668149437369613255136646591639301526942560603862944981380717419082662362265201255287221958814058382459688337330299729728038092866150480005056606559259743211746037475309651139988553557393588160460684931837576116680785953450459173339617633358415699785950172488499577164702766808558227442396722023971862168548348457136721550560794562647453349032961054917463917169441273419849941790228174358832418021842979922940293419077874460947359924885659930070354614447362150724214839487690617151700678794972324746033526829354251933805631164222027159269390567811104500714712828725407923467158799616171264273425133364901035805334664035022996847624808285665586618402405902635096899918977795263927476771454100892408633332482836004949982163554077278527455677358640293328967689130563453386810251577904042543544740966489797509456994448461014404464897199253085671586403395118573863725088491111967347181768933939271654622974006127233352080129360662891792807981934257312642791559214678822373694733524522003778141814310202512604370620559379311492181174490334305130615949437890384743269466222309053369360475186635038723891350940767070763363086493273962382142181489481967175452530927301708740761604853177450634691045789061428806545424260090828193814959337601065857595203581179171299746473949576406128517704623239892626098856798359968668427580255108999204193301983602375901198233332097139641773673509595521196490294037658636018412818685981671788133343240656191455565286699824593284087183141590429402474520559428979999941012235150847489464040168964007653746016354033942949008259154693297269914874542367091573870541315349139160367637870680289531742017547864361416705702205327732190818900954213746485800963855617018408348143580946158551596441586692206635810187130796461856697662164496348233554461717494426134886845693668295296523285604546385246276555411028359970501873360436090329944117345686058502443726918317258486099834905863076581996216781559338330990946181298886591691309186103561915486205936599665701743023470433802254012620593874987469049150920309616955066420526304606470476329152813358354553946021107807647851548778034451209849402904287593464736657197016316443268444130338416945553250933436790668985262680225535430534815633547425582172369402652112070948410547092072586195943006200549256534336775642559307528855421461373914864423280879651062436036323918092824716748163424621607602449106829085970409460340134614383301036274649905910548257523513746436317827726990699172521242100763179019921874886106151342816540666356231100695312548901687038449011111592325294201755812728004479646391157871881281338126805074120249494883692464493200278513598286077590283783794063185975117559201809642484942382233094311913192794183259686477927009382282238892876365993705255614715635852724675265151280500847059125611120447624680294681430585474811766646732516984314136582037453907465284902897524659805681781087438730497147578361848137555099283815421532172310131892890215284383733956541618726332941488042865289006276146012163345357595462016110754698819951374464289362456715907670255845032690325858960319944975144157766184100855795187544233854165176398873762703710410367286738608554760092342356028359021318017872216834811792998921983984697977735331633943000380127446701300738372117914907337780219367589267333396561227212373570038580244690996263158008830256825984794510929866406844379485735916889567975642669275147448476375651663751693206693767482950931193141104302138210270504575460902083688411274229760258095327864373482164603441687050813422570034204815245300628490726923233412732599587544615788580269820887015718843547779708977583294542940594650809520177869619513986284406333849168242308174611474678886125076515900404227920233251289673686716246819138296524594176490634948742116303446893419328510294830613877651322806959370485616441068794651967620232679203967696305214492422115351313514950808269575519849208606928176487989004640576450283150227010602394604622729919607863908085349536221163660078052261724394410350169126382360307162201732783880261393486507681935385212768472119656148154625812247388687535492941870283663335945800970596966335991065008787584807586514493583220478455405757894295587611318442650191708669365172690840782737215480517042121297134765795521989020145660554951715809616953919164042103252670839318476986424468171755652833152199752407896551242297807097477111933713224917305304294639318842030301376878702046527223769269775986449000070072643812378974579188900165714725735849677621983520640681726140306239038033182935879224329233895542874449523385786189045943808368071882433894838423805161110914039401664055708959427501302626277421642857022355517382857007909911470810319007670090830270681839810782751224675167512943644857162360116666856422728592648224142072565247546830528773966279634455666741410373647866892874859308429591770924660983633371107037718162557488254285644086850173237228570051357903196316575264538187373022985973682821847465856529459854297778703714982939998043932075676698832657115066302975393157220119693622500138972456408509618141652932572098384282279317387227324352609526641742506428522683870651060429131408367030267760530456046855030175638633224228838965213125335715910959950896385738429360244423837768506960089945483293615443721000680151113627194985033441342905196614835639732067308470765471799262625052479670616214603670021059135730250941769508761050882190377084813471408444520229580898458647933487376993106255246978897416020108136032051243300945001311585564235771726290882567076621662897254194487025006127381685555218067289323258945116766248590629250912410455157716373898952285066481090281610944111545850608973723311661801811571977164637973759422969867038510838793324894387587965334096487127774979395649984384595986479540140518858415563978852509030138198418599756300552102896398987329005287254610456705658372597286864243744177654774912025040519921181725943843033161135970481627897900647625681291079382059573157474017132582800902493174296080156673554052077204297995249546354818966443325632654405592197070311847641847115294124911058349218891974409345426326769712973910887409144804217724934833323818693782479124448449755045071751487647605521544909782310610605858948865890031286607170541950482316702227668041309919072670014552823311804204438447461676354606198841784420875922601165919552493189872832284322087705060967892209882822389459395521352258940824490752473823848873134142144805616213109237487745499824159672556627171860730637727257600278290256439901874709522833912378560802541844387568757574587872351329864559731904308981596816600352833850858286643677776566760194014411760503606084163334296036798084868236348976487495520063309201732075526736605477456834987990431029871890048365264768914337485968393337598910971330249406000297937832144411166347188422813763729159673501421803720127202512115636357335754286781417343260945136578135324453326020888312933661569101642266344154396224249491808471253279676200681750077036942896162879103710137436755695822881310215556874485544593620260920784416789497119882392219119642326553092260735924140114553912148622765200692595403563649693673322340313547796097358613803116655637422840398772129906246782440771158030083158253782276529728515774114454663467991609121092718444116056629498294013667385072257413407338872770572912776281320177536985928160757212978011414283217225755112755524051937446146370250329852352601381215870086190903843179529312346547649039826335818941325334474715134523246833460294256045407692499251904077513827811334608733318330059775963369158155568658732552646570234442784879098149006413153885770937625044504206153553881805974179241079911301796363123591133487645414815966278844871487965151093959359882263219423651001997344306305466223893317719479346692236825304414746151896904436304865891821470856917608789961392171502451317136072486876869972476508225830415604269212037563225671612507369402984366431244315414870946529709626598027916908023771526942279587124161226177133146141757506104304696973374438337644315870778919593442887209289784667129715526300203526444702786193356758626341316559196264236603402418158866886103824077082348087804793235331315229619259890821265883086330107061014650932729855651779525376815422148549269976350203194764424199158759806451341371463161345440823828725265032797918585703847093315634292210465117502569056845618986765048680287735815525361918420847578094929102177720294163171223185132157867898113106238215582454544834596551662410926082907749166079911429404926914919332340692703425837399832958233399707746940604652849164701930633275106007565998008879091259335556021421555628791904108118825447044497096994838887040692089402818591747808631426699541815866993107209414672217731699325416510194581658448208818662345319273528258841202103269853312742042589246562184608242297215031991715403519092759854618020262852187315923791906580569271764660164328636021960402191995358813433036790636260022859760510670911660813872471728476659850789090405592912484351436450203777607267177656673009151399483633322272464065485457541335687450223069554995866420918525951789701953601904618893310311822836937383938842696301082462939100209162381990219993141892410484525782771139912094232684376777308349761436591938142573897986033101243558939995305121167670735222487528540733844125325721947898253748624142611005326947283848883194471335135321334795923373707688751885773459267697491126428769162994810830568722842789996823805592038409733179025478669177467823696859518428927143225826683691820964746832204727137147640230231324272001875885657505715237404808808401644930670560518466969564070701182116345123047419354794927606412586422748739152021145946782946405533992205785201904264661509687670257849878721207622427155686015690889400443664023748868867172390984227975652357277246503824764526476473805426177177902356225458478794736503843463611773480345789884575646486735622709965309133945820802672422278956538996566102187563664273342853819627266527153411022999924609466024073440008928337251447583567122799159395569666103075464870160454726505813561872409839852798151488895207289520711463739554452310551064322562087719963219282341603019618493762258090088393165611119575392454362698646262420714329656840380944347810976863775705300779911186313377892172390118880510924916568829754555133466450593392890030452941821187540782623528731717418196729276405858015122471794439812762220014109269612507006852341309526135330300058744243770197673020008550338399007174378590397353859704516782020255443271199479863379352838555394621653022199521615436880815309756280026478668930435645441243217831873113929393193455141063208918399944265999335596457758707471096422603106451136642229263024047662565056286652236801663875293422098031993888276577073529027872902169152743617742418937723200623532701146725936851667210089213148840428165622127661795225301481341569130812987989790088552498361991228293212099242852312414857564558269069115302894499542120622416328066885448856797290727826818195355211886806358684389676752182550657534847567929507266471389779742440481657100994559719926626574043288823821309359933162347863663723197386391133396939346055450819833172737727639635311129756333736701656714692097854522774745951764015709274803991236731430710508261855084821107581939611952560907165093280795032628601609175281179130286604547652751593505711950248453836670149983063443130099063912870783032861539051942887731696213944006267752205570016591940199143560231119548733760644736368922229096831247072970427300733223263618987238423134990258901952827267780912595111897607315379957442858893183736593414493244366066403519542353310711501672149629680875421789849711205239402115830699882951779217462790656834051080338631981534565451082928542924045677506881918131187331009794175506920602943534433328626364325987783545732064104944926405267869417332462052423100865611355965944510716741563143006925695661800066197102372690841359743044624350815377231849018062940256775911358293249237547156070195022714955476638979968233565886063128101891418684503786187650972599462455010635580243673081208478020447168202646086735531992278867921096543258099161765097231110977353968591922353790887670126416108516473028688798270386245053784563224645329874538255713283001701759959650848590418481260882663627926062164472541263750972285122600581652855898938894260464891973938421282060911681861587834739470590318596358472983931587583807756207635900863784877091042738897875516346092063911616481636883938072112233601889695042928463201385424011178780264464307241633940931753502336765733743429008698870785772053283218220181633887154556558308562999149407864732803121669753889591441091302597808218340720624358044779459026928304894203575464659158594966230623236168304949452759200899789803293235812759200307600431632139437610985060788399434192608683641154271362568925913663767959910443935223168075492163666166741627166474534112287887299381970258530791484115893731455151165856730426580370676033423695901384190170091170212901099510782053571101447689206887775012565719674669632476363537849608407919718532793441694954736247826630779947126844060123308760850302320159050470178531940560727585344310855783475455568515456577220420923060741346008584907379928483207266809699628256162881536696451676649960120778693504896787679187358806114010224687064067170516009212742041503566796308447552903509077379006917479726166898562230819301802173999575648726832664920967212411734550243977515348260210135459978764057223748429759111185869773186666774835834337481705174636286755880941231583882229315946296385630169066842094921040290310042810601148249767116789677636008340621793606898822461942119397419103751838405967584821013051497016093411943878770583136183424916594248748525516296064132756262552149626859491644564230725954084318869588811673350612490714932648934183575611486307322302334366356628317539247342140458965589523830084053553043733255726269925137326109860333208225107609636555193470253739855442261494157513054752820298294947319679173860116723764832265485873896268405970017079892094178913959296525072825092763771251565766359739645519364167566853554727996539513791637331172034181719562011730229787160896835947775950253952023707165125120699294159942232193551783973540664386937872251744603489136865628179900046107137402318245059493192662117509879447230251049642201706886721454226562470620384395953869744148280030997540456035111731011879256933367610871954686061178851110921867106838085785531963501264547844255087117711408196555756636083073185942045324201077086039481012583497004313730343945621380510549377541850225722925061306457279950579120618454648574799016999362277509252524787431061085141023607815965561529712686576166442972633429051727968824112822442696473893906921443602609527178387864490794437801014002319216441935425467399522460936948967091170571535186831655655268719458248901914893005608522669461943947573499630238514715325921955244898445674046824606491235388498107921957908874914122518238684999447225907846255308955441340154708398585803922679691540896428453421618143764946845617383249705649045726952303020583803569302402373497510902321980982527768194367486603331777394078073953109030889781053614578062447244101095237179146817356124443953336138245096681752151471123435550093296856552974005873107446950146466509012925592180319635484490727894008519545180407409037399146365716668866834876258763445196595251430381825449518930821478927301115089939071445209082963630558500654817261524369487381768015333856610704752204695803603381212386814410098186586534604864016203896370625343070226907688892120320760518020395006652585924456312782903335783368834349838776717028651560962810539756935871956113026877965741118436984398633375825568533811056766279190183282822956669073257752137462921132386707294609834477441914207872204763593268262636250629170700458834159040432306334307893185407090489384052296520713271763083637526850417224979290306819938241525072498899689083978013173836146391535458106099890027022806815244511050350748708645307613365900676964775784296677552633137231168460478529392023840752322075376743246964237008742730355743415511209287762429833513707432384005345201975899066979337236550414526659107407487089642483181632316104459555493273737889554997035997446503171491398975962335881145120915199357496400072734013409458359008484581159650625898311594084246224357794265993151920616168874246950483937334271952791889107162761181642106133400645652888718843663473361689698514326376207973888581218862921600383231294283003569861273494537118901773783322428810113740518675851258751335174453933151217305105654475358481713867268229001976733258369364271444542342956762851506811313010650158892275720368786389199499905654661396131925183529926338275602492891249148014872975952605772967888906330144924329580207646875073706596997163433828500842592039310151184145585874261441098004864307661937128344042644766583414149659234172416643287745758865362377286034668727542899504120036896580972774860930900781421223731813131567099776017392447104161255547862843980150507156308140158254807654553718223300403003878625078064710371101609804877599131738198092967267908690934591332099534554387226155569835667792869946465091898698623972700166145424455579609755921362599274460488066297985288027404691242619982318251820279524602544705550646138498413232148986598642317078528171990082824178651480935868465068877792479296492620725640933239247773644101629098168744385004618282971578106928482419877324330688967993746590612103385740974650095749988777221711773032540025243412167610562697747684030409184969397129174265164115974674377389254728081102612730479630768620578290665824555727242857569450249487615639689050162134949076503131887597626086757088179492478507424505902051375125017094775543698928298644863240740948809572418880567480578424056819002571288000995387698648003126901192346260579826203702054385498580791580202067595110959550107061189213201510867613043512003046577570240988948534581922292577133744099059478975616763051692955294685679833139665341949149870549704889561930050588898470086378914576155528336146371642813602646808591957461753572246594733402018911783304919515664386256501473622206453208784067001591302402759012496551156918014075231337657922686961393583309824371075210096914550912340882646149523658520398827642854926654879611292448275578285609228097932916136598952624036883622977603484292305708870669231891873236576733566920441858593770371694299998839511899776400701719827136169602657413310235435682142761286870746595757064718719810613543547295798558530208440297592391012297979979602923146902073038645230851359513368966898354858967873535777280251775724382433784978310628550972859275218831040262180570930243880484391348817056822015656500300700288883478507355954476847360799973674938466311701289270578574832553782736741077766553734080308381821944228151450936718337647136982136207731584655352844799144821096596308377951083300407213054964455305600418674149773569986150403497652259038787492955354365368333537807065373586246368967697358421306631318019220240852335321303743028105088993636007414106216741108751336882550031013153329379042326989444444020192449850977140662964339617048297373670085369244442419495914038769058655364697299920818880249752399899911024621069022491239199987980254200040000301421012319146422636050485528047715878798623297596191467353642573317147772927931598893336794943185514396245862423967940349441435095158237273216343690979032398984153202680684516063406810071863606624744005853125152403604848049138140610119535498109572462165425083842780615932905147344593917902879521380175764770848671811602899047037785057951687683763208430018899131496953150827781284763632281088072323588786991653504496532670994269039962086917351001318192366186151996991366687080631655260511104410654027845782194591724542268832764243917429476253823821672300213861037893563503763751524406601937907269513047344733236046444840091350772941882221677605686197579386034177886589983134313138279126543872041275187407442328939425916171907147333066404777603372182797438244519593495497353666908661761348611275481765690992465945962410255717941911262865837607618134606207779953346225028719364449918480340175336238299521474504197848821464049953159335946068487661716462262655407320121726522055566298681945390707482172351830990908096042461996781377790927026344133430503837649145981059424463451641339326678691435116452212567755830959125283105062299426889261108229809233602384014438675256575661198102885979827225297985756898222794960795960008142627038938650412246635495629917658993738379951602191304741984023172365360311913741702344897080952726166854671155243280603227816450144373708369071224514794887831135786007580454524996730130577338382059888344245888990303421029231653008278692146026510204352928068410422236149361184332855881619924769336323101671596156295678910190825809073757311628709014896777530798250666083085842483473462112401589091033847140645080039600068971330709629267086440873971258993522331209438524182389522280658326467049754245834202165624977912187464173503560456595028966910282031523446773571405563284396538410469103816522440594589760362633243051979028482339415429472219100974765413938829448141584076526362596480202372453833698609804871174751357746218080725484332195584103089617488124203341039216284286487944070988796701292409902042516576828797465993830693871331837708298876464443111336727347433798796575865775175569167417499514979861947544644828376692358954433381032756957598520408969481956557052186152310869073456105540606590962752128686084482336492457732705624880848837946559053753568069415113813682926721453620439096859950571494366977645655433030385435783674041084242361707757550405413419984928383949341771326535393577379097492814123104013132305178495337927226446145685967803816128201055305369855040137170068122493269571772381490090265416919618889535496255457061594690485293347615275727012913236430516665136075788894340228908391182888063299251991683961563871989322954958689967419761781982155573391551872829548400276829049259826950788672324144923249805689720181538220965650812794655011897753441885956647374674893989183192747506104512032723240881678649765902165796586563215373936983186527875760643485530471154828990431274671601313436557019900401714405382907076982608094687679838818912469001635870979341967309657334307624840654966448874583930248718700936052227931477762695425390935421906816443995709476804094723364013822032057684659461366919381867200216448321417624048428094706721051520786501577651976565771992606994903857258469922296692418154892293099052421066601724954441380966725707637228564737672857073961557313361369685149564534693254612008507124351824118892231388643653786710173986837057538425466036962792473540734750252052524119591707855113673977174016686189459082820516311923473454335853404861813398265765122817180800652097801843330899057785155973725018320905417419031846201247691846142999443019682755687772164010240143340741312181277942710450531334022332996259408722747167803461762737185482221513737866951162501638702990738046037256945344216364850432710625935321790503293190835135434088914201368693845805291686030425930869000301624934980108514873706406715137442604769707518392947689876563315769329766557022518656394379359676991581286986814860062173251283350524626092510650805918930932256773353151332388791347170573194021947943928576906084182189370609499825417970102836857961718766678995265067099201088659221364007924515888505096748348753550126667008067446469182604836752152967326942018901780828926610258394831802355844767337484640836009905705853445851370555967654670446374257623011948539479851512526024693468051890091575799844069642656710083033275627944839622944637456172650670523708732566480937793010914596286613044683231897605913421188630321161886827728664747842396250982591485681896233016047426059774334183795464653620782988422572065914406806789019696524378236058520557561579295134042742827626100909063784915483288378882484393544512977987809243143618348529720825798164059805502850515664440272419208637063686661537178165664815311525316777050918129207404974604327943172281646009021046589741835588047351026907955561982879627738155614477287432089301356227546466421093392688357723208485609368124070256470785292060749966021836157646878692517768691849575304338190736678930573345319589045916484294024341398550066640612347238062746016039929623562319254070036062361734090745964785531972936272813571338524109380687333685925349922693749833936926764495377938456003153055071232118207665466746911753329066026126297193056604274140216731954935899120733137964644692580776038878760241183216839079421130141924730602964238779995256232007785407801375751636779133378072014615833875826993611110442900422705153904605529024374515451218942956506785645883427314425568058615211783777679929824618161879576355684669864518429523331751484256788360032779162734790997114420395722422836200579216617420436223533531097615725523242215311976560172404779537343925711540987340783999472920620277275899822956081981431983481323552307182381710191172884525894220296690873727325772646183493670308600256204003442999488118422653434498457796733900618999161404710153439481489840169438065930008489549338930706761780540878718986412932818721725868613980859758247467238504322652989808651558645082091721706305441151213879764816294053005321004288663883274470558118248607076559902865276992669268995409494192375126428270666127761751394798589408766691164101188100838500057489527831133829833903643951677925605840046737310249465317018599220020925391813705596967337571248948923993859201241852842348497109927504870373421592465171518449925034338809154464666066048686414393898532245337859204960284155432498150467855464920327323440907769668985885932648464374610336031312243051061052387561210916111739087776203543929279636362504339195555709213220304907737051251156485233329318125151731706653450918947608867383663894105596530917882326817448522127729105952808537744979748922705727439528257322875825682800849471162874022829088672250508507605901732921067817081032926841078708713900999369290116954833271433896173836655335152876308946027148417768637987840467844238142224826280828087668643176380442452131834271547798527070498545610783934731084270099620690306501362558393996770034034276907082778427569010108938169478461790574135688669540142806538622024849180296042948962499731162083508376682261194201449314749011394637612616321937061781330059790880269589368880239885107666353454927591394202218759256821534033451957170889594108622848731400908515195312182135004943381202834191276411187878224685531402912679740885774742651470700447403277047425373387049065906383960390627821917181441480163148944092941303980775065046944455322097058270955087872097137610136362453916771839750250758759471153214451428549560307301584833615778140116730471204228139016793996228360038410037684143029266337167610579436581765148886852106784490822303050717696951126074866152397761364463264504736944703076273810590297743114984278671974480988510846523501742715519290452387886214578775317735682251689394903352840608867238016957211318007555745608962010799188771632055608006669646653336008580344279425177434877159498406850474887773882398308426502628783631182365756707817189400091970176685522679622439859469418527412237226594285383519432009570030999180263206446631480116587996555227339439263068642679979275306283871804069828970641051879648781478544850316454432151651004600249210743410099139352452338360341879393663080575400480042617815586345872729360613470943903776751493517925101868527335855900476211459895829754335852909571895275157711045262424603852394356835567807781980651313409925579179556272207117030687812396474799608432678760036945359959511733517197617642072215774435851348555114808690095065412919297026785968068470737962049191016070281160018149576217476251183108482855020749937211162336906107662152211527266768668915183889037196103554291120378577705508857845314019635654083670695375607614056245402115750765533611630441974853585927378960373547783994935107416955428832110811197198328010532835382614675656732898586571615229136551001659229828053508605455855120060243735372673970666907170764292933315238054660103284564707271575650524181662333348644085772477089523912691777235162017402334080415908440670955403510528557671110448044986210137200434491541529713551580933904143208674327653433434287648709272087692967903867355505076913985914198916387223892995740838766041615193813309914186184071342488171527846311484965811553712759697081244219413991990681857609369268670633377213627122822704330068661884701677298422369141464250956342905686494432565266137332417189922604891077985963136901764781826088420763346347224829529334215761563904480532445852987987343696291466989982216516721654079861482843893279541283027382076195824782804253198263747757479786163206051179831547797513341317556917017344628188591630106592040019960139760425045595132448687113362981570979475111013632732318928667447308559615388312556600451722513589964562177090209763510138242087548363991385296604545370097917905201456132360254731600599460171072030820242152350259907290804399455151530462541955673607705698421641271791991972895811114531863459484244073920541997626168239438331652595681433712625599196372331236980972387976797642452751922531612681696228657960772740991045612079622051863246794211083941472555396285047378366574510053555197093723131672792447682637785795079776330508796275333029871321776072475336029203269324962649428805261090984953547114962295876264705948247059437429420297467983623132444618019994060552043107495029433291605534188764816805564206540523083624631373357825157855314974860601094695612668647501976736390953659520624880143676364260555074260993461458875620484739272722276317691323106343867753566291342671165718596006169446921050282668005022324847987585630513511342779526242110673006118104345357939761758894924345700059632199363966391314029842176668042603926364951290989972584093668245822490499950228127567811848665586868622065981491373247373201561760006852153992066168423114034877901436898584298578272652298175596266809578702062741958889616311173680591159923945519318153836466153367586613828427965634224298602579850866974057406089504388519278326101645538311663209309165158227470180435684988748066533298321094781266803775869063504861378745004430189963511135300847126379684459121212312824311964722404963296072821846992512802371184037364270335954900052322951119283446489263298516517640691497540872454057356117049443419132339208559484184086292242775355628854352042829489579906418326795382435182548606271799446787485992495907138808338372518438042480521300599684887958529899913426448216447999867831280998331907622959558443090210300532262170496894467593179195635113786763562551400270376619475232347860897382040024557082643000960946846032415173130540886883452248602772813537337270651212075159736619182180087906812299201157439626979041342308533680189533434871244471234974858370317819743369239585843845829175875702033764256915316163140449720050470744222823990977233309685917282491685428215871052436889027567158557273260807761973386275722463737447852796987805271607178877316996984887805156968735957680380888041001765539200905248014025853167996894415439359637041740986532125993611584795428062804165421777904887647198501165780850635555932302594365874747793810619406403026013105110113041465767017530426439608078002709520953714110333175220753814930125337652462659310712763018511357510082280938788173887219485283774026065600404281063034220959281653059958567842123441451421882611739429542921093754699256735565869598605900870717937000057348329440695507508826552176082839231662458952390278436032998157828950365940622612472091724577585902448367919735013138111344275875612214521223858138339142029154276946280029979767627583553588614924295653272378556306031113224781849430924313616789634573617904073489581220152451034545067483968133312442065011762737644985668010739470396120259193319058043635713720790961735298024535857326747887091573207544126845838834025896670178393629920079475932511225599930029300407484008463184458426844274205424908341252575823733036112404822241602280398177700713334071414147305192264970102494530719164216935281438401342113474455322862010638033834631390123232966009630914605982544751359916185146462057012543736243623473592455852222532495150999064823978684650641059829389172003959125429861778748645399082485199665985234777022795746773739727972020709980457972371283345289927764176742674083151883491444503263958391606162109265095741722321430982760126245417963354564121459907745791898626044991493946031857051956019730973852949354491213956330790327164090524899699545169381572727229604550390788894420473373071331282622741911301104980468911081078525797930514295562808447719831889600648372985700006897182717309380388779736565517937832694655050714813153210592667388479779037326685623305946861155246856729473902349131471652505817746021624910683755686986812857392487015232982964140093004255451008033444142908006480074798314388666368273833936815933230422445095029646384949360944802636690015478254590087445406682093803910692757568432248877757052227637074567621744928995823931105908604078080548434223925278542359027866295238094132962590597260991187142249869344525590708559716213914371623545717058934078055984869378250247883241399451485265584226916062332225122069205777690386228713936691118028684167219010505340810065922420498933592365235742188901089647484655939304923951543621776852180142161021208085754566097356839766966185921740923995807654665777329693627514875754068877731149322439665733006609636802966517012826676218883047506233618032708899737659472718516082352700078883967217234074515980700187895830233635629976568528657881509850440547993294928439120874914173168703061689241276870087858194440970104406272477229990572300709440433701834087741447838862549637742282582313613152086107411203130853030034531198065985754149464895451587751598115185142871551405704219826347254723981070513133899670897916781148859133814166918834979137115469104125675036864931883816077757165577825696650722450445384948430840633549173112255531783387323578493560786343017850236489595156862238107767522535294266523412607138188299761967781555187714543811036722420311774588101698141136394625844353068359130487150798285994916226675558839548475083193703850871629912592587976457886832987976411723838562994569953912404131270878109566277146711646981251797181593994219624073727831729986562551040847731270896957134540660412217879798012310520615753185848523030592969960157710405882637841273535750909402397063822119173032371045884754710757325810867618756549226199767332953377621765202813095343808240233341107340611450650959526547489806022063843593941766755294813035396455425120639021188076609073664239203936924545765150944400183827025521631497412596460125668987282686198630156276500635360030402470602029685535304029210534052034625217578516968884620736532901301377626447347891711556753190903742498671890122979284764614290474202717427999369129685373888579338817664659641791680401482378613668240552652020546614116783374718652177860606707809399640561671373237490594727392696203018533969773392214185696527633545053000087565924404792310615560866552639549097284427887997504388778740839029321515639765278064570588951702017992294313239591555307528118121370626553010731039589408520717219485465880141194030424835520673600528034962945173000147570108037416484778226485236578737314111866332020118247564170807438688593554097120115057329419849567898203707861142707130908518597722805820018960535655319178112782151468401822784773857574680660240834178060477374721380537819139896377755945067236217378260656643150322803900945259624327693732207058144303159483423203451750276244553396736362744041684710687287265680196562021726695853197400858990053977568554826020264806391874936498722324699080437207126721598797519004448096490300001037906839841494001196916940768637093980170441077862649448042606299900154274286577880017408533845253291576698408905422358600770575938028723132577585965106858433899306850920744204804638767822579804799230508226317127855463473044647095764794370162996580357800328389338508010753493683335207063237502067646299975065936856173957394287239762174031915858776867251111425739611220285847946184648097498416210375021323289176328483757278968300794628781433313395248234038775299851356987204379552366393988273712373281001556387993955266079618455903220160747619954340577448579642769400014957596814533916151758528055263611764912262709341739786700958201218280274920798412462305926231860758529330563365635467611249428688491696404956205946625843348620856267324654654786223199384781278091932311117888176447750061550208490252470288110627111283720149508188093268922668486723490451666713874869615399559822909585692444221771965176730131537596186288451182903438838405106102591696509370241324785575599719205493303425270814533964101230842229902343683816191155125372543490561100904426311436461104740470541708811879470380682819607050611481424597524851234594615826094322684546082359981979304474456232252057470750610184222897955812798416497164890319289989914561825641523356877445075936022673976423575786826899980280512387591694543364528962612882537430469922399672256466033350514275385597139767083377123351722063310024184091624276270386299426120296750290153365286167214757099648838770703431749046434731228294077025898294373558658355591085787389717328536810228765685276116530271579482368030850295107358583132821621400399277437226074557361303798392433065770424836097132411109943786323868528184958367570490430785700360002910702711066731397925706066134074088444100932539105237403770091030937314875871816293536198674139027350599457553397911160705322048708794449887412391404518563589115916229015304141424306716706889660561969308989052707273649794414729993599100159244115832080040931230902297048326013126425218356875736917140710425106862529883711161326945466766151934772671631017676243981061254664623014970381498981863283062499380915850021226061446224064317418219562920469446168905221411862568328962636958365664265824146296301295432755706082255814575519570356745127149481555570138116865009441774771200530405063247486899517871271760281688806869757726377629140030472153701106839291364236982172901916967911441659797730852854502875352244680829416546487256674696644748654508890040965401257547649154011685948787551438761451579145417808469836638221779439102258069219065434718996817142169379683814570858125571658038268684359747231885643541324752030056665159409305637557573140596732357905216636055877198397859706891543742524848996735489242472876465819870980145857974808966154868582020564144940101855456789156356626187336940973528731292424421635188332531108634273398016011450528101118257068873488284790042479331363324896524169218000002779025097126260246049271152465992494247160750197036503368006190441306627257535356258146234188677144913782832943831517568186798058826565151220370609994894881174207928729562577159731363242830650382273244684475645692039717539745713718122472268492120048618220669563123589620305748117120586982211088623460195785902851669299227200964352610599588896640282801553746318585406198024080698199115893578322310254553487978559610813674406646553773849392155358685462866999266281465760211831018683734406590986614562829913867372759846706901003253660023813737117293647872967659137679433991053222210340671649238772885825873917423572227826900368385082113649199598919527321711014192851258507046053215016980659600493864025309278851696761888282628983237144929810682322008362823197022326027374432000374235587461106708696895367307846132343558135254859888110764210062412795703470553041276754878062032730554883071358661164327182432485081485856699090619464915033449563349208612600744851011617399386998514842919514682557957260630737737000972580894256226585402492798463610022509308038030043556148787120407044671778516766351074398035677925895486193329606160829465259785284640882299717517818108025299334881873885244190823033095945727048583731476446687991610922960892575252188747089459754627823569254150639649312251111895805023514845525663948976151154849372521428056250858435376153162782267385740972304021235764558561589095144638929738071357780042790363416925953238917696281830700944971221892368491848938461971705434796466996848581094988170151087729427861612059490580003617168163010044189250288600330415516471083556552664954687034502179308712070457277903894410795641417733122883071965630479368259530789656232971173764157577448302297969658112658444716432613770352724343094374101476337035494034865894450399263082938316940948411964422496142139449344982330762656900280842967961038547693187449826315215720028367135529148281225884118648513799771534857092719197608220305596227151777883886180501749142908447904115411136899712648674794399461400108865263845650537063802246622905699294873774297186271670370787382867126327381370929539738197402311163017533466929089492509554485073354823371322337488283698419477483158514860785263432535391286200035478739499207221655525092850593116792442633944280759485709099273856227558236438627695605935315850061178862735006384740894699672679836783443183232513174256276358594230703360590420753382021639732074892271865199745769433540819563467832596629546227067517189251105949148317014774222478128579119454445404287563026298038706372313809366705377742443798132833362006298622186257835623470465879842691228380130876024193726004818876433408799896893279104423806698088680257896960888713619993222163157776979295657520393191702495925432022410432731849613988770269948875844956709763642429428706135422699326758196407457424453496587622825413072725405985168289357662203521858994532250664686154874812853956625360602109910594529242095915883900422993546091722185410864260879773634822329671090377436148417694638775303584719590386638353902124417359091154317588062817222548274051664188536666371002366286794391816086048429885431045176715748693095712019962446287468732225282021081404742018073502520222904050247632054446254426641825140556621862197982699758772112839518505828876193438456513359583623283463009804128841343183778504794086286260931246334103176310185001151933511750683005515463854646707203669914821096987550833416381647422939412144995375407375310883495938498689133582946775970504547516434385883665210586768315065272600734734730084075030739921657407411933145845673203222098956531880023930150926681304334310731297436973484453623072205302899402956839362225527969394231700850838942198208413502084393443071414863609967294774287600141836522174537414582258564105130119115426790718332204701317408035026472756795604094473005801630993267516125930541840026578878506249088833031059020878249301473679788641353220911781872755480996157199661249012715862084816600121339963126052993113393818626625478938257087639441061130477575825755971210956950965522035022028035517799472057082893557406912682488316234118209216379873956399460462793583435875592048610634973957322995911743617844574690855405036162358192752430665081455585720835764119640646592377684693216946170432568243503865760018248193984075255664402760950450525625988836301112433552120468254441996335916812889712216248600925859174342506495475798797475467956968470433890407546452127143874276882748937775476978900583384888331566950704415775769321333360083623753674491289635274202773470068881061126144997673061777388960496693465743845731440330744748083427987868114268346453248535495404950751658917179348760594909567168472605117561556516510222950190920918124646241850618338909863250801690549111533789049726931983678947042685834518588469752647567600596988925590845049057039582447524141614464421463553082122611331563074363131441959582266167077234437785468288972819017531227229379050524990695459059107342820763722198732064529117100978352037248518434012504622613535292030456131035734887688477484223827102505422350456904641153519446975738856033757977795848599262199458419376577446979866065013697829920129514853963053127076884006995968129960840464476182698231971384023416090143265653482327583610526621972698649791883234363086296956335693585650782178833882800412499509300776557420392722500710967252643108065332519439281660707614369741755711634211386052895807417814805751705317755328930042720354766033121530074213378554551721839419296122230891206492304852374417738750234733168067486237356931570682323108417591881167040929230313637332004248443111025621300990235454270900524609417405585146909309737747066449254403331008660020334354570420661547196311388832594950102144480926368797975652426919272354450476445934728685328057252154498692201786091476877982259866725756422660806733763874203338505107621273910446000349228414903764166779038907459850029635920760170980975204736746668596415940346670379216938848865836269940947964773236480886239557707154787981256684079416189252813552364311209056849801545966624479858954126334370686821564357564500114360262743284699016657247598019046250286233510667923030346269805565273767046983085045535248642290525064124965257407927569952288044216845394992755212359374399882124464458310742279268088310501499310612139555691896012936632373420398559189067338431868670993120814484124771189361532763195037538203008610896061679926431182038123618821817767597871845948493701267041920047954818262714324400621725281864974400875882865964530871154681200099593148025516227813588728316973270238372768819512092276525483681653965666488193611688137720939496293307573192338321431823275466992029550582799369606416198880614551807761781046742278724909018375310794751146385926857167146421596155962990684152628044968811547892248988358911993056850680614780649361489430452367143478264134950314077626340943555233865833518156048539121911185415492620300183967779986359463995449895853242341830781260121352316840573653373806769287176467610380929791644770567279721681798690600732867492059974338942077352601871791806325618646787334858033899899289451869465381821527807383105061412941074879617226183295847011986299705685070359274384842297875270126149305776429635151076468791027163231152220013731417186575941776805036583547599673068032121215524201007935738085601647397669193433967920397174933100458629791197557691891612998400114183673870658945376268922635068831970557185553662548754817791334547043683659112167938287311655002756325116888726683955395258001522895294181192857556359175373128989048899255725954700379186792960047629309906369634126647588652605766332579622112868077262568524954341909411402891403193711593002566324427618870819652130161192648467937883061810993750105500684266876617834274358232039016182220135566338565902563052109221374007579816837457807980314633289063173228070225186583120833478564096573082805390831842814388422494409892516311416542240674292980441941102492749209698715456901922686339007819557520876540326952302997981104820701523788781194639535683450470527556644311885686934351556340664521944441151746374742525154697148564643648915930717447798532685344935015647463728170059575837797961612587062490446288833183476899684101920384284582780553832186690259238674361472615223586978940791684736058494318480484398666627755567856547796555562850489874826168550770403616133966114507869763625439664617966394909362198276236356943228087123873995688761584347959587748328619234153119015120632129725829652544383604267735537629285912948239027897136976351181662214559178869369673346790458872461251825142023655702397548755044920721048781422226500039241834000159992773282480052767273781486466685040174901845473942301355134061121617725380297137969448842399884639206254632836579106887278384869936295811565834959498451721164363838760544997385240673185893872616530490335867754973035287814850499934270043706024632558393403393435480962744183538259853226606664249059589829907298994855144934202267455993283020064017956015982354601072276717196060026352487355169774758715011173988082852489697821460850379337178232217907806572511214923138998979186041979598502746801785547643814582487920795120307469491428787597203826382257198691723497877663310103706559658128864630442426350729030353588062494429003177521174884792566322406990176214866024218179197296551707960644363691054849340395216141294234978921333072876427742371208392643558588259614859677608533824912421122648296234966337362784306594297845239899741402536677851814621696260187475772878952861917809594889187887323288087977015261314901464237854010971134095970618698461144380851829961965507779209117462366374589314431460394964010236274972122729107236258928587221674063212978181034635844282573262574260778897988166109060141577264672534917523272312875812212592325324473354275132069032433497045925981588206530790203793835626269898266051436841893017753997989225427073508073305166913806001042202811851035122215539886528113710824979531361167002831002522129162271878095495488865507317949673623028391431784935440873006236177592690680618982374776216289079455518975586436239504436382018625338537232783447292304659001773547655619832288710937353565238433723356594612564957234375164331977218698425968868317550075602427180306588888176493001831100234460074964851506063785191253211003804828967071041954560187925355159880022405042987211158983764592408588217116409234504612243885557984443697019459778642258859585708370466040172230296891894825531528033328916637261149403556342458991776075624418383767486585339027530933684040032997895760738264845539256013318695535765339480854272760957498716141832693203932150565138590685739457440408354847045741806089294990429444294027236363460268727180728187787444692189095616008442390131144707633457460783661174837121529045864900518398807157714653746556425694339380195758067380548846535619458952659241858421607897118492342481830133454244336312575674930115151651691946892191495924423166187356575175112843344449481797802930776429905038104457353832667293849833228864335633769347755611331244337520313305021655401619747754615983418638184686315749459239543379479261164573233026734889224054545856948897407154772914356069570668651601447399271160470244564369727690565942953105258236642895506713444068056980533950396338611133410405393969733552034183028277317453814149152210696007418743895024670991433200398102945813788743135133758828817291488365719014643865267822016744335663959851363154690185527846243184951421674088324832991745479020033172728721157979904876077467528619540636741108059247274409105212200713388274784906323181157987900159885123776204925208503019513900028321887325051562593839584759303117688308625676173336701518304631220295666538882133099871596382753420160144486059562427533950784194127817703415666539766457433477085454456889200021954857241959943634857887246995520843435385129659849732341469337500886534962496169154520450768502090951616452724060824426686200994448462482942441273798679562647046549558947783117677734409120058579965124874020343169168403783584658501147888897875387504163894423619466699067780829192586882015119773572138982139799031630014095261618265648108966434168110730323090295064469829874549727353075740859158248190747269537739088393454791571143166157581895680377528891041541573311903487189928656689459262924036088374724038003541059187796196199724219638853221463719094303783453426158994736716661102550064239505372487315475228147528027706723249615765563715872393070626124666485988636446669041734537764612050629289511801423776632877034786079053561209979680719650036070534828112989365260750416456531539053485760718012321034458682106639884549582646209020929047803101899337449582477050066557748582479172006853043398159974797419916181528325704292352395021074159563323453918346299713821968866034727064750231454348818446094239723355242969652428329099587114044612568394329897064473973583292768364393612248706568833577935506470384383065840987924043344385033628790272769310163713335745111743157913491192475789170698916238061195298545784312767189370727197384942562081170528907912119849475256766250792310323612388269573497519035894920291144752740816027826167439085633922589099786088968102030121027618894207198271182034444763772089657486390196521931450735006702061972989449098694729222047299921143955668549944469179681077744920738307443553138831574998878280253791761148179499881730946781397984407384435864972403625334426997855039191102850239061387418697631988022846173711752911934033576654140909921734070653091241473993775542179287873592475752007435128224282432740360592472321575892050149157242960861537794238096505197572054320784021367799774076510561371382708976476401258418332452312201948066796854025884770187971240626372447696213883479430649131902470207641108494063047172928985958836657755320069570273781692693450229225361536410710091822563457904690627259946394953157973087506745291789512889002459665298063692530305341243579135870136239773098158569125652432980388377396883872111592391777236856583074406545497985603016220446272079474976331762772844559317069952907691912307016156627215259342320549318835117462395148038377013673483061451126445433794400987823505247602626640880357138769544221263164530438616841430232706051578890162535337269372186423908386034275558105964900908092471155493311727911766807349569537291088901814099789301509504238888786893324082077676256086148965061827912170980249468898810470099131296954724798463589360975873419737321871873154377728349853803989776626282861081380912779923924847125114074670742796755371887239862135242232335449954957690391497008284688571472980322559468656554063044737048127746813341031143303958188548793703733090247670432754724705989960433088653185554002583977398147100877752880587363486386479622971037743109974801571701100951195101420964199288913761946634237686100302579626620781494701083822528141167929998721636097088585970576426624635398015235123866599935964806425692207756963731849679984806123235212264131482033424465975309734449013439378099360772370150515673240515698510726731565831609839503827366239091275048876270321553257767377040473888318932895593704365130841515991623456855510685479844981829893593959476740269640237875060701642510875633123480276286799131236565216563240204677656710763001328753660998372452221906568673799431069757958666974819225756611232746083440605382442861069676921985829747051380224453144090864197299763539139065278466421909529432729512614021168237177627565457481627689526580039964344363180350033527848315234437918957360687197243785788913397828198066048689356786614767792100684187739393680130231711794845067902716538366428807701183200114734285460342105602870829116007330881125117970721039544147322225956906418405172373994098809702817741722338701667424056467038867168868099909268702111495631963120689898389362710712451690765244791798533074897636703573838833399548279130186058435522357990527752654251122545877114511323953113044447906108873482113545772356538538795879941379278418884432591173494691467204315466142469808706198180487096478672449457812140767862102064388870136062771770695629003387551993961326054451980722277061007615016407028529443609060958195576789139757613818335733508909095810785883387745781556832915824639966247918437441472519878880190755818099938606281901210534033351665488381137678093844572899858547342947659919825064044467520142946392477913205691755274191437292564295566423526944697336113649312257255405168725598024245092152466315706407913743277516116120898688721260624803220396736434582262751919037880314457600476473846349268587411152436279688772794803037436326266826012872624851018093219585257866278354432856566004405402207902442748213894195379593589181813975430097158043601447318616450256861232939564954456877594742096463520119471109401282824527190546796010953176292295384168681461296855462252367126080050109988325223651424051307313146465660079604367764181134621612723584167339596881634793424469620433363913739755858725831475844435829055419056049198534572140326718626235665955024290591821457022837692487073237680195294916850529446246192469910107771370515246025225259988796573172615195753537596926991145237875089552871778482321608303810353648479297535374716867303634469556307999146105161416924298815680547858605816102118831032055115607285011042886831799339580232954625544897644775136422955647191931508002854865225263569532847617025086796889174999175197805396652424970066821024126715051679293070858253697232806391150957774128171721662989633496943503247073535318952882357227107186659354863547688133463317817669642200111596216942451875565436567919328346261599074961122679481403790706100820603953227451300286249911201588041746069803047243404463726878194354772921145784633273579218114523664715983152205147034356768243473122312805497464908805101013721348472628373624259474945610699832332445416507303546026459273098750770911958418276251543410387155088579857940958744013465420561946333139240766445152596306238333015274295865128260315465305675433097543842593113044784566654693812089442247873328121627797748669448261181585958278245169743343494275996460684918837832861193751733135997125716966567562735945652698023032496534513394779340286757234641777215505115300239644158782758823488509747523264631965023812862145957513298905332197412469256683922739477577621119880498915504013700682580150755845736156926067462593037248553908104234527746736915931057187731837786477428698915918318828989698405190665080424023801331103315058212725930043136574559256475311133516792044093321282691040713735945544964395556525583328724746087141919366870030261738786398501206668564076990017618916091799791769380347740592803868499165031948643745795411347162671617599205801214245631893009814534592381764188759223418929546298886843961489227213734308635165386155203391143376227525292823095194289901180676257313929340498657717120125029575228837038232389252433175021390945644505048043942345693556399604418043735149109493996971937074528967890813408693410409531201001131484289307792381343327106671398109658509540528032140843143663247994988159212965508728506131432669442210923336921426918624306769865114154453495657179726748288932739352654044060320211437473232449254116658402819571566056545766096696274308186383374418600269729744956509202410655117710734939188368607368167218190800055144186410113668085429459262669541850916553081277615867185068859116107349654360545049406687848557962608021740383541900437489349857295587852346646971343128512971112505550775916411992452069166332361017469057455446282987854957163506605015191336612834842129706075137471356520336978298598292587120577125914811256215532561841911096568264546852121420201852151458542268197126836593583440868287421711154576793813987224263481253288254578403099279537492772715844759426447864539049487894500871817231679802769939106535927640580366541198278054286394464918950938154149926634255253177204757935915857260570816602736697011211926677305334500161634969349262732860677213510699517496685973978856065005271914849675998351655571581327309495817139666070240884445264264698652899029812584845001447652207159812027146347641047815739481756845396648821556157374245034471298657485063180231836138511686978002931195906599586022803713596087999140265937661980856992878868712154700430181332366005383511684328577055540420584019648307249002013768612997638113815447704202215860810126702562786028179550674740383215002030519715540505591830124211605228208565634388006349831628621035544122887352417957946952323127578243272869869052084381771046677286945970480141344681458032772053207501651665751775240742715204362341251079570032894330375676668837809654038838306820274251466459759736952204886536569191730260764950933866518682613887956910124787334881199891496696458728971179629585912442214582423260894872175812042764502899298253235371306404941710807664168364756849285749598051137631736285187811211933677719858961127311003937937394527302683256858976642179660088224183825156136971394535885888516840181518899869599576395364202065003497511043732451975013398769182383192149157284993392714862523372545794495956534640862189280374945327885727041852213320242475221778620678251317675485719089215452072618828536201428032553902789491030496560196777140285930691848212000038455021090957290127782264312346333165631319918017134976119098740433516027723292041758274484768274120660539102072814061624750281025919525522569575871354047965665416556506194817031912299249962633933084623241352027853750525657242232871469312171253833686099259190822783315662366389095672787443371758914820511951725471783217127806970803501065552207513625083777855625659324805824036938758257178998641863276715449236412995606555248890806978209596412231693282854927217972940241271309705612791778265062027678187890790803958263561626121111902411287569465762115865147900782051128216507583117439205256727842434052770462446805455087858126020822139369965820404004189402528339417108037005608650896489252062613367957126678706021589875504970111437777569849934231733724937980516898252683203338768332479218156388894487483212677084209163018335071911094163837990674438558687043493876241276843938238336783666812493224507265856515506568386052201836097531009761290203988766613307090403309911844417229304634479299774914156222595919165768802539183297029799179803472492110552848732463559641899769632892674069807984122172719302735826101889011496744135875470659641266938628455561515430930980575857072976704712298374854780643089166123630188340477682519939182047834950996166679504767720618044303852011343141155871816744378356824460781963819208797931120550641077795963085988119364344539865682456426375248923807174387509624860727186260717212037656082029049796395547931510694761085038875492198134408969418703041389698362493706767527337727915489791214297933780710320776471696643375768378860248639801730345707228180455055966336612735320163550439858963465990571873521513693275670480708893648365376584237082451865271071204436419568838606860931234001253354617946719937425444983221085922199107930631613266114835260032939397440652923441520142405960189871347437305811362799847066062518010483908249130715216143522967244306124393034162827301172430001843350013908017339301026779585963976127383588076738490494286218646229755398670861098534936185550766727019366780929490213060473657754559516683888898370770444901689770490255158435435830148649959238690688705277452768282796963893394841359334667327996138398290243679081560784867065960855638013044684453282150110396102911818793588027609537068698073164205535550384185677981499223337358041350980242782484670746256338356881121153740164814299736668265561316339229878604221848217975623162731026418358459896906840815716184847586902629211055107487563927596296044461338832184005086836608285949105292957826319948667001989323972437613207783444663423955967342103299857954214032961291830672851707203593974801447908654418144882097055394106462780325516168098824930496630972887317002969883359510926534457205452462064083681473572911474098734728637768265330567073308829980917879016097088930706656069555609899600575714435338415661190120879512473110354378333536580242094322995418827626844105009933315911496413805374509294179579254279113037060167094980009845170974578595110656603974554266812458706094284591628769012732870445863363684374927259680854495999490638110039061095815455250773543999659897591296694275064765536250499777816005715846673211668240762580874717970156660943540442644084896945171056253015247718090109656534142860499242771861770058349942022397021698489146287402982931050887568679035368024610588864094714507376466007178923691231809131328452652229070635698973894405396108977015708226093247577408289685075316556783831065376481399876481954416854889925238893593692627028500835292889066075457322579952496824705076429851989925552902957912352537601922396554375700310372994336677247969234575334008334894601483007439114728616147784547227224962495112171909763732681519338168709857251101411666207997893098968163914884064335487287447854025575849464347255822640642683265769015641826716176161806817449917036939936586328177920001966690553608676256714440573111368799579744071799971578073389990869766842530853501770668372118661130396323974255306609208223113111786426684289283940855970587891371500511699510416328585172273280886724217607026775313724512604633956380781587505520425369331545583017148420087090505454352985905987468592898462986532750592250096707909772981356781637900736795047574539703501694620629462970198218060877062278854602534874061330854685928927300013971984970943071749372173618758188030606846306646924402898329643539977840758896164968972582721758353129519715384051405645432413708792301671922823217298579605806871643017704241691928016011466675830401812610397716554128694560771502119159253520709361448928558711234854574261408682083725002498847955441844816404136030845114460425165695075711681341939192597423031243739150005339403259437983934742426685248841726549761705608867321748820356967719878723481280282640661223893911435276625903142631174787814246494029597237878208170763126744827734111172959096985697219800521510112395214194981254427933856229039880314838116434103594698321817363256530722663553908970692421225529196879368985469912850447843638394163435180834487748988147435030162090887967409748738966760348290647840635899037392760473296963313422701861457728774394717206118556289498510386271619197085903217779247224594295500169418225714812779151291634586289603792171591866263292219907583109779744617009857033696551274553833485418976915414122779505378416953481737412940903878220290695035284032306555442271034308443330226383657623268859885100267804594942650528164063663935372566229662420771205159535259825082309836528267289579809072207004433185680762738492457871487786257350333573663877172169622388850018644082344980868200009045033595683646207282562261161481062368777467384853953620600743187032889636694751415722448176264963579955317696738654579336413334698260288844471090697760653174676663967501173616226526778641407344226170877346004030300931172754401879544678926956275650637875099719752011181243404620085135569077803126264368464320520509157902206166029512757001226258060025972832540384729817851246292453208289243391527394468624222283222726799548791898717918292684394218128271547160645956887660151320396272103703620083128561158359834072297683383472275400274701468303472447513193192827133304164415910141392560872432439370694592017852506316694757043304622120726367134460315897422507957846952137234100882010065861588735047059915057398734745765250735274027711790810604262183960939469206894391590153696010931800688770108256990101672909237411896447509518449476206855048056531554371166413489136845113355911324827123938947976666633644981256789981645776738338416140650189106630502753105126193389489493699583361186408107069025315761243718803850927342803204321419212180325493108289620222763740521012909390810547971282074702675189111344154058619685725536985381321328351991373511368642233076484463991372314257370097471648106505386482830120540667130357875032810430810251889742496454979095530924642428755184928444129242811622966451792984626373825721374996490637586878588842335539115117569379940052136091578516741076105448466233940658144708248667001407005985493279017018558710039253047115936205539781963769966891365226097727686577759068828049972572299453852292544471043599324921262845506761579853380450947359224681588326822661753229571433699220143766357250852697791089699766432664459630549688088555668844128092458290544302442123009294894002544133674807704421745978583630003674977369624337635969701235362456057776807614963392032632797325553240976778769906450373150811277300318846445991132451156460413032974637244034304442156589075144389453375641657834333248088329379436523299434294207755944483126535582171530084874671014541195237033701563910332516615298408568017595590968214673201059303077597541279312941409953409567346300785245818285004423783193447207592570590142009344451476004194418223785015551168698562756834279689434293784460976969457894980149533696908847159661862717134128100702533403264911824812033299572107063999771988057320213174188796802682557572868196689960047005448688457921427079997344827016129804946130656595118861592760210769154304420319464909325530958003886794831581510818755200865689918352526301758712225145421729227752205538839744335966657276513077764531683932806572462332278868340141071825209886218129775333884005054318848439997887227947803259129886142262234416541096187882576278770872520679966346811862736284145303508381215704617659931268499987529501463759018194354601487231358630489511089506914631612072952573839274237799958759921891113048517698937946200782980459220685299970250624266493344952713645100864039350835129366417997793772222148290542489104926948377786723832742888737754447533768076777928996109231889462084938781456930987165687744276720244100442085809206554194529667302937610165873593846884380638721904414302363072589196334389332518518721433140441248978014514605947339318502463245916216208819927286202008239595307053367256895513688839007629151635990155268226420059886437726685213988594368586134606387167411502813057598360644693441096873812481299966119392706796215549639691868340335556106526870623524974544107515865603533666391260502874120734322476876414884087890662464869347596273651274144927256405226330998314767669079775912215376540992466786625018361516056383151894050066015173830735212510688958070660455920148082500052432718068437437798282257341794792324506922614444454427329509597670178098701775628922482943688989436432318978963770325733272258394869159464090968081557738515097833497343203862793001117516278306729337168854072310411467811978268937145415339613465166274392157373816129587009305592279879414800421252118178471428635530483350976162235773549553412829736277498397368814359079090362119132685449968418508768369760530475203082010946513058299955166270428441267113225055542838790420570090262006058494695144730583212846994083364484653757167155630251721336252726110046245520120328073604914793933672187346959424965700612958927188759327235436534606309441191913838227047904273519058102108548211123473409040017503276384558957301823010819364112758792291993202140040778430193912919716018846840289236355721790081857805644442846004653896960886361201926887789001805452110014974087170461489025800844538880858403850864682167582950196873485159546291907252452830640255819729813172325720742933892154274655978771543123687362403334900962601407930213246353620345070984117925894752277542635536789223469512715594497233438538067174684173681481945977612320786640982004003472721249319702991589344131345008134200133186400352592705748891754515903507512219854522331241700649917808619287904507366882806470272040639608835220045617313821713135315811834326283742961587672986848695877322876246788082634292812854629079065011319507764997376808020116634558080121638035899045739259349146806795067534627670614427258042046603486403720022321472469589199734602952190129747414816390376512609863059322184029775316237203637040565772499126000644831168448488674256447881226398484024827163772509668437294715802437664766188159206224438460161641296983199334910425695963632130295002848597919180224102527195939929351734674313134119823135960706337097536167386834519795500543702524995105740801981169777057520476950793368892081267835226533235657061534784646099497750717480811853849858303065130569659618262152980830745227810404538375806237311160596497876890581607153184099731085655026168086057531164475415566258924649797851205999708644447721470336234664603871761052139249158343847526426065535593291961849932372852916337393244228994333098445688443884253220319585442586037868786859512132594918378474827546144541916457472004101863914913101696632175180629025998091561667522475575291800628477130023332722240493351911455049777639140232337367028710613623286605926380855723353879198235356012135912578451203356159092896708969192588417778445782136623756949558451476045218959370020472991892845193181317243872275858727277191400640336617686832446840110827407281087827648086205345340372258587316346495896314610994094031100886477109669781446174402020784904861414937459795542287268227543173981788195439011947288653437167403032434113680444896073156907815817211677759577640708474039994834526375001022483337810880292310888891607532511731720648776508538676459062661333469643769935594769934888328940813829636946379778458927069033350087636664243666598586968590295716198832850708086112191977956345596303488618174130469763553456061422007065675480480139289147454575544393739858732180274540289762491626505742778636710595604804024801472059921499671190034440480849445243140460008248245585430391532450950803944845110926447756073325468641533920581986064992136357869186033663451296416563167534726277869900754535949233205600240804789036947199260751953819445661415431554275681688508596477827910011114715984165473015733316392695421120323558663290891092510055132174873188460567290050983452612007873814031294225303129923045402842536952568500181746820223903101558971069563579086933539142733223578688683067146080310170683125911887613228423048920836193920695219608373603643430985309250595348007949709388863270201525288909482998774129467456139506494262456509143558237460698231449675254992021985936328334206776757859544188600632797710676677456718161838407333014714093456055559128181030258825523020997994681973018785284829155870513002689920807621307944218165892118275093063642562078999339027207086011945208070301313803094230555658117460074571864714492866715338474143611220665861762886790481834731738869879445904694894632061772876535976880260045664945306339412094605396631006344771521966891266096252477204909535881456266039986688180881725669997413049790900937309221105632040269028699620211202594047338185733510426044695235772395899828183084467624466211061768603369378779858590418858851965276290166732321142718748843702822731427378982835185705470962803129809344898010916258048711513436327308798654156980630048741960566057719545930821586355111949427879342942374160383550019194596320735501387961414125220550408782961419552113286101548838980999371574681824290265441965334587330922587859532985286818955809177007978146734467634599740561929300616379521727297728318659047563140063816729775644022905523415946781587911969388250777759725413563806198265184183153991205505217119161038018113495412378254419557524438385339806186695125576868014682956894710997608914360912203601846236134826466527456252908008494834660401452152071041448323196547636058392012260581113734379611962224742433727774085118442987778832247329433890228587734577119592272884889619123866919973838659374394326383607989005172414559834807898188004295700484528592207049222241507276212955174982154962711054140716501981360432896851037132264493957625518701030685582812257662030745811125324818137755931887920642137778102355469873917438366880614049741861019643532143271771119783316478738715897551297031194350812078940475485547075174015111209518675957571080769539172682876621130814454794901894383513255199293955531275864962758283991542918383093197122426668814523964174081536014718480942903474797994070571186338805795040251670066980502774374845297235548960715435270805160373138745128703911714202016189649562014112086721350299859013153649236665094753560844701751332480599627327758391635022976023749600902487811198185048110337929744333929062415626170800359810184243737832753101932188666081700836690460121970115690848144521116024709017446252422347570751386111233006744893402169443218403921534172629568985168609139778447285143585935758855944808457818433432748935096618875625387927200120950861709393725386892361709781668948151750280930638954823327693175776275035517671287783507129567770338080696010531393940549610076575094787776167708667671564030545987255240264968745054686710183002828666196293093134210491200479945024748153066129936468425136578350038827151609180126400906984041293959282828761028860714137772924688487419732282517326750270409819691583960536294026252507713430450143562823914871707241980565508835246542791623526308376636952664077877742379599818392665828022758124002994187450398797106880995514928874622289801957124394134425077325932739017798299316089502677364745216457602601540665607993146235294953385775254808544813822382632608425220810407633089528657934738667134159103067296025565428367051218111493104430682766290593089663255946282710994108816509963073625701721631192430813853902010846029289146980050173593412201091820603251594050048496897560317187121976158562888501964424913743940526416873464519229511273106726428102886999164106799571817608080006093962125046429545476828045888520257862787354631247820579440233408425040921757515456545011698302517071650608217939302976691285727407039050005959409875036364161296331848904851105981934489870280504294891892871997030306185880222144920007630996853847706291120420506859007207170055373529661597061597078318809958666376335950780695978124027476966365376971976163390045347230453932125022690648612026647660769739255214601744027985775388468330297496437737580738425399069693212920366642155098191054818209859458631478825044140303932823407415845846120018920545637394668215990576246416549682811680816545420028241698147452726000047018453632370961522811497869984877924988479808115075886650589248886191036310240844568563294352105675543308815487437712376227030696463050876869955850878951305998897832605862028181977999174158226148219661239170814545711815290349113409868346558584234106447997337279474524395131560974959041864704295748299548059835792532380920674479931549507270971009414322601803702465619732968214745901043527845479392809876105756753730329766809057139764471783455263895458716062754944206957713471119871732117030884086233175294908935445675438347065002890706911644160065640863047581138204539480890272971634996874613047869189935890090439887172047553114600414743466718286455797626873520932098461955017315811648745410822383244883131960191544361341043602384109195032708858196264329275371970295951291967114550313618372904304629934505391282468982557634950974612087498058152944705439366090027655420088423068531289116515402194350998957866370900725522304886560532468280945758227555953641823607634290868148677033877777034223595116403221577904073686708418257956340805651299368661509311005690853445795806724297549141740452645969622142251469090764632049684319644763888563751535521552494444255105160485708441252472904290488866601128894735501817597676955123194053456040522047020500470153956404691087914588753721553938326236857413132841585915734137116477396899371328176953345997536455647298639321914677986820982501382686857624130887802072641652038818609836101068054751257719547874210225322361562062019909600793308070644010693131958802975557310976489446354019843605222444784590432846710578326076400016045856746227134701155892103104320154943234603327946784113285620206142578244237445509903208324190263511136037993806435408964775193804596066708046636224610476572274293881684616733050005459537579054921855341594358612938343877032929916999814622884515595040467084821112179680494890102431756499372902020545736646257763675878149201169097113883913585933443686112085563184109561015586920327649969650092744425957447974030723842798837502900841172577285187252564882207120167386205981460162259062914157650521405557823529605767995174429613988903027690461224794456666028864012427807472272577601263143629074939320538328743163693704419752233896325269099633846969723169049739394962898360001134949077877233968801158071887059962812792867946753983461689920249406478244769318949746015251891110163771764397032588897813399191574817186035441649935045550871757881377372242039219927546637256126689653434696984254329208405629429992661097259684515611127917334842900605161161126316812206465803899122055883869422307430098775035633525599038936883187146943387132237066573324587105622844201534511528422774173023576569696981608702458848741526626801551764880537479663628521435567994614133402247086703885653608609598761690595788266461395037237923243814236879896209128228498129908034264030879508367990201631051435396666532523397295053548614156139580313896518295905376837641720201509698607713609220993799565605234614312571130471502686852667666336723327285995623879304501821812273669996549815871060407789091856579931066458465363581794894117017895836176792791635145836901483799992203151068427970915435189197873607799060643963824613096187308913735190502858481229532157785529843897641722066987938170249676779257776974764450402869675910597877099801797963691473183950435536954668345833410595392184132303019282693995771455702155675767179837212385800405526557598701464568306609719160043575016283562419213953859828065006077464644736692315436334151049198270633119494821430011265605117444529169515983569981736509186042225884783931080030168724312131545031174465734890374897841807912929707647343388504813667461537117651433627437124201393676515073637101156605790003320669265063337383439463648155808974805695390474248992318741305200832611465347111707089849692091428781087771474719226888627028296619500434692535350773400539051375640453509945291079251706842969065626097909115779495824537088664228483819053936731100783531248559567221216607697240013468667267338464922189365998777560691635229302898464298318680049240728176887089480062208578351162169538485965030948927908462848724230339313417573098395299004185187304659401306375291086300309974499659803070751664263815910314025959740383663434536936401859658361429019806003759240646788910761706729832085501376349585187040424625159334840267145172833314163537808447850286730894369241113130708825921654950266298363577303196272405852727669798306747966028852943476134034613782366711919489933160339648112613390729853692453034785558805225075614822564608319546502041113534576175857802881344752411360615211797596639511012314752975143091418219989847928167254824953750780424772288201697221881447817887144151153777791295461624735023101269437288936762535279657246590444245052225064347215959829919308415709635458795419345621472267455006790245937684739905458789562362674630566163343613489451842445823235531214453793351515913849297022880571992326150762020814375851229545493669293640883427708190022882760707580670058604491887169581139655759070369677564763008024635581244126820272295807303247501124186732106771991844613800882244460820928496332301965568151406150818279589916541176665804219224580739169585603008745945967189732511887676247369801798827238400728924798595647251217501082037154408014706737718148879980540855871562266491341715871774228635922279815489554885574157128050172391666217502652765508864421307668085287724541395656024715909213732695889294264556588044089977810259159222955706515416276538679005461298647385664151589268001458128881569442495113584989171465463321570270410047307506118606701005227512528688068483962150755712677295247550694873967659962301126219861608665024625061273842153853993554298708925016677209235317759879587132346676629621795592879719690508987532862800256610540539733691399871285480549692837738585187383890055608147868780191151974108560046077789642309982324115839009729831071871852123211299113625218372534312820811164016678122410649201334649543221545031112871125560516742874717666477933747195034068941522492363470115543725859305735026209952183467343535610118990564015408574851502393205739977151268845322240985632871956236308960142121313654689579067462736036136676281139233900480406412193680695260913472511566095934932387799878376779157722774655070844309686043958509541060831543887689976631422022846920328474185846483639563088980563192708226809697414570647624281973291181360937775425440023648492797652327050449142322618555734114690666563705824646438740707017340590465841204057717469659927500711551875192670542653544293285320913278000168006900006175426203976591203404037265109058985594931670070936236640121424250492178069198521213056575043350687212758537846664964845452424898144701871558530063008176095624997013661725517714332661706999417748141919123288086457575585878004266181404010449005592677323826410552135598103755304213459595363031811695644493693475157033712908694034525910119147796479894180228127864354744640223990593267663890000396022877041395345210387756704939733648266072822452619943390606572861998222913989693871671527446017075101140799467302302418751749072761426026815649901894850061362266382856708772215872370579927209427111016806700245592992946029284743540815685728340986104492907450311000195108247216073138416126509985928640882781574520777940711436125339891866009673440426453447626557579056013777480851896891752174313108760853114165102891518893087471031760907783771547779864834693018230620070515724525202606030199382879524046391413667737411719533792348084358327424755334376387909903912782266479786991341741677411279485652358457419544109906131898472325883810650545718325208186190235723707702184368318817505290114928455068760582092978392019475122793779350309393826548086772621779741466649217565680184959955152319675336283701342040612984503252257925628081528167972176926209797247139528392194922054663657560409684780132277592570368977360892781410856774077774928345934230808519106864881940869787771553890460110057326464955512874347209018798094055524961986605949755030988842964824974820532348900258754653413948083016690378627992037438415081538173691845768903689335047648324299800723760703552154333593385304121932437843635099786078361270404870693940554525242119611473779847232194373297868162778264764786037750285020867958699009590908317083930459134099575096868111500925288867503270667834070566314562452345891766274382886469514349288199963130646598140724751663177597866986727347174689770317557621241119222359993506864010429531454624217923641720414991760201791950566032354881227412419411795462969261796921308386296779282846778991031458893807239949939113762484632859277200059869650929596146505648621846804377094892838461202609360032464036623783111732601179470369654820973483016593362427666062842425648585041029656929649701287880340798021568508558517667571160689810213265928811376469624230628429027499380886386729821148477313162394461854379571950071707832266640590689485110225463138310742262780850126933172331806261526543471878885334788863630874575695337184712582097704950255771066509242618868374264808340975834405489686352452167473098829877381306800786727968315811931716845851535422951740725965308528338315684746523465074533967300627667497252646695293222882307357297366521994568243575205318735054030599908689248410491468149863955020549880857463219063816348368937631028668510457120320268832211737059723709370020564481044939261259792554215611802178100593414008815824999800321476432203931961458849131634001163027630492608371271832676367049236222315428199011136030595703708967062372332160089752265558985527894188691269511409203041923530357670881019371964155052679388716756899802350858856020204657530529438407924671425751955040890837728749961179545569934134069175933174460560433567516325868459586108743749311356071347108623315401563004971304117625132168760137395302515762113072931330099498645856190288151719553759044857241370764441724884851471067433181483601576254062427711258224584491301527076823185981798377322594002060308697495046730310498396310837560241177362413614074576251134204853171642668067923096553994567022901365737807892724534216794612656674406829663648028076489446513173101797919494088352595761867911548594517901438651876521479976173927320242923798293784526680747136697251021076859486508161516147203376515472509961954608264263382941014188032614788790547701655650908081425808362769080937989540647349162195027825193378646334305036226276794053406909886280847353956876763493109713574926167078039791513537711504590607222778158588455415441572522575905430434983285853670041918688665185977857327871404843947147687087992343655925156873699252292218789178310462420861528651313721012493397819016079378346816168110784323653052519062575711132430391603892022060058137332002963665326371963960576175374455069577837360699310147276872380098270399746581576197268095848398273993883702594084758932476501351133127503569078050086925626018048603644235166804258479524452934369752756035950997748825998567511378067982331550755558891104911043671590663941136163065191221597043993853341593488445165080598613029926996791719035525240827876971203111717637861170071395910993546673010858370980857392777721567380024614947470872434393598840011286670033137738644751992856427523690385340834739975931066852475384982490970038880710009867118162643246197776488553868300567891968940321378014317895404282934876733427935988688376262379617917248026105508141769154458524334377556826007708839510560984745293816745736187894716034784389763134098812630846432253980507680248968407561206645669273802136256992950027497869974645618672348353049535284767355901206117292954462875039180607698568888761306240199150130646421717272464781590723021781644358536424516478909451711935684118694511197203781800282136024247071552439188717946766383084562461416642416486462500281195694183854270328679026129515381340907845009136903820525048258289100389779870480298618149646794391956427210157882902501671527545513569781439228186317585299612821023260280040308714530708311902213227337371610364466827192172910447186087020621810874824872346417973704066684330600915517805834816260699771860654969261206844244993604452876655403474816965091668713142888300602389862290297205014723514331064122467025130451811227029476817232767480166406224162327261688085685931803617836257058810762290752828735873679297804241105906541203753577468587908429671661099633653664343732794905662526091807900292910773028756428264146260282397536848762111777612376834530836898450211090969244355618943657116446800994811007132103711968722430973636990593935032542220114777027667020200098695019679109068622047755219530349391823708361298608646286369684504778473909417029959025619297734833381798358702029055120750775107402953768813717934732288920075612031682883437518755371315890878831199864451432569458696843583837580522287775082126278662627898147085466043748461527048180388342688407430454452969878862797336082934886470352420967467593464561439327588741821822671520208366868861440012293665156104051930747570182819283052164047237730063126686588465280041912659895880547008036645853035135638966228637942399594415525818074544065035976150807407279352874908609925620592673757360389262845252330413563476737388209455907029885736977408360460063945191891673405452401001167458090254370356867642795459289536407247205554557953405280852263352297394440068247750813268137703761289634323865667614559623327991413856648512354510933369926025188243931798374327433843564095825897513009137504438026942732270256870424745562693775576423562957441668651024748125269315785699243581684532873632040519398053640086448436880410523877707320779145869286197413577001457996518416945962033243184623443357050116391769688174894359549061926169832787956206504169696579184342390206693172931451457114852491080283240833968413847787394602795984419323084951682210916731789795602661622478604633977688981628906908946043530032820539844416562778515157747504523009439048008829190373746632875537896860005083035954086416552079883303826989864980470601094036292147856318704443667264699835700740289658706175303991283363705508470174970877521165150509076224898531629114198522712141459854796549029019928544779659433562561423722621526656679357587235434140205878274926102486792657734622461623002075324841375994150837887946635825717138860911328129659047269509032288606975401941986362312351688214954897984608141066443372767810359730773223143776515194143256948774255737134682084894883940129272113587160639247525884194099187913095874348764970249595813431587422498600554335010047722986736781626054898274025121073491198688174224439590266392898270749191770005775097444769180079530480409752113502794182973090660266542376912813006069285782828623729848574571065020647380377550175413989612971525898855405185231529109189069909532304293030655426630100015241059130430301331049936728772147057514957432889757618774208081435331709650579536700776377851377358490466375604709074571013914822209265214109094851472402859889147794800575220026727254646805550865502632199435063941318209843522873554993913792219865004538497931105480868029061333586170116937440894009168177057640362082061677267960519031139515905988518229968898335414871765945121496786965987107516322300277313019651211451635072599997121992213565527454481668947549580023372204630462545083998615429747581716029915967683717758713952546746426436340788392043211224595639225805282886232733108697003732576920652667046655739169149621464390890633303804046308361386590363955122893361586420563996309432240769195793510674277478974860867127308816691847760304278995204084307492761790222331170933260832458370305696013750439326750505869924515019167238364518358168721589212436707061429903506295676251083409420760485114504136148306194006594619759761759338321595042421564498499938433581957144786540785924384684800608925134183712301757972517794389607599512560440963325282911002418178120290370753559417897109361096583577730705775582254171809506601933619625173832227952732437199903669400292270517267577986512910803311924485733526309903020824158280568809057779372606136827303025390253127762674086102334381592257701952162500434077126836091224884803033791289081398672798998353622265446269918027185900016250280583963807812192927786538761866471160930322198365860217921709518535606938172562418454000052032063708094588398794297858116863459330528306666697548449655471847322159806190663599985728987057315455565228117635496270659078808658257272014438396226658101452240681768013651565690431632990198868721527237814108457262624014012492804576779064774730820726487371261178291280097807839794888927524724605097851915209028673768708257316700095104642322119224526632384511510240221580022554472976377607807876784603228407425091826491764837921593117636326766930001947589377260585274183130034007356602509510480669689976160545473613727318568746674789482397119756603435279820513297327303539931959502865546937322885878583922713143839761475128190404658640192031754656049239130434377943129208970151255647075090398901380327537230169057852873039394636435226160028056128583560140701490749313492103809170239670014104308368686072520630671786644252587469797948118998974571198578767772715731981954553745408002398314806492486831391196923693499727332984314132645943951098750418238432245027921889263489327863633409276056751650168989389588219302122239252073441531604905313009971154986065955274367611935378967922560540579402703418173932694726792385226150507663721364507715584245863239807055042957255718484014529536731272706369269591648482382714227526171827490967078875562535564236501433879920865328147212201338496882476374650755902384025374297551808389664656661747455783352407259573153003275223096181500524867619164063961230700179875279148495081066250705888034122532610914113733117453656348959908176444099136368460385577927419089730052684320887067729293462000957758160964282449217764243278843080716388816914285949331790099934464856320756970634622943917947806895660692077479634644467236158170303280167194822373647697867749926546949934529802281137553154090092170725936757548811250457510172081528571326965815460976893737044752345332570067650838478676639921148582026674641577594541306460796890034692798385563223340525560724327029204901710284017433006772116368789695939858375454739691940730459219595950034908488030835399627424086036806741367770800653144361012904826468924115437766815862893642057150920575787256895157230202360244332232597058093710004744604850699942068776144447190961327762349781884870837637073594686316130652715106217998997757748302248247179701623324824104009104101395376453313350995633567249488806677165793345871031049423528617067876391781028669447227587049225660155304380288126350402734409878871614561928336833473484271605982343227338926917487118670347335321002723080833914659677695006449700072606968979516582335162628013570711108032645589905028933046350693731518311718893086441008674267865690692290768901555304340445543726686369612285268157476582514466689083307273181682750984242295527846781247407601215676831158482734378003423951227607137809309775983755445716561181979731812499048150931336599075117404020707523960894592340407461268564192109841257794727679432146814882313386004865425364963793572146952836143307555077905773793707297014575587387307162499367562878175410862812896514542138289904689057199545462854922313697220438754628703867897602970185756598872703314904362829978050980656379173182828842527832497160716519455269559228949350906834837274737471817343748572491003278596301091856849308864356500043685506650782907400359474063317250967948576996288623349733538838993110379759175194821671917387838882645978342216407555541366509205054473306603399925310421970772333785670520886332041790471456578623348506596251952884862385726664775162976588636528710685792244726596315448581074043448045162754817767621117226218280635403177613249953634909517787110575305364168197884033191479792230015769232454222983495382649944005583799033204119150220253660700308017429784275373989230987787675181698543518966150846736010513192815929708738994607642777525538165638344560954817296930627425021694527801131077590323284569495835791335706110620392804229281910404364480296597987804028446926180547333808181897809711011775077079012098572636345260991391153514953620733606426397852271479339038112554668249927007930802454834777061247454989425292934055731462716110197059810874297438077595326050089996673692021503076300264362025818883393939255326260430868917794605632650769844556217777258537282835722059555248636919789147792195421529491442512962682855398986402803811175064502266161279570918392857433006352790471044848276264144175160871638962895025150254400255821888938078837814605595531694043685617914157780295600741995555428780081247708515511746561954053805563756017957709122680245507662165946485324208830089928602407394110158443819327973255307646237569021649940371065174029398260612868465008310986163244035133219346159168203300290285456280872591174606422589556110298902737952552994725334705740868071696595168587693703941523351263472168983541084090778191524745980622430686345703374519187985113407653294424683656602785522603851938498201388708234975157031746092614342180224222995530872487814259599392604145485528034154918985628967678208539124195353134922664608517436603129225638133804111291320726465177615377294490663320395951277677979856246714984451792722341822859771241476910377593595163271721568758501228114667222533958528286186318281604721895026153904834636710667074100937601765256228581909805671041673743129559114066118600742388403960933384033691249547075028495015955850378668251002632407726363991011509577342850420863006681307502066045498458038002295123775505376614295026117177233001753327234631998271791197751327563352537290115649576406420260728948746700659801855364447722317095845082235148889560920248701845364742625045324649618863125752847233323848985609808897101800220318953094490187197337575099269659237644392823908504312158171135289288220249898380183008083908031065960703614467057942628997026295451618165733498801220838618801434608050107379951731712702990964116721802019279387396778396024212573915386627851637032999949282757290813387388529916144424495228117297085853078924823351610415442025288033393673947705684562592240984813421110913335679172193785995298564577362380686799372976080302627359800130794605667578443795581257825246474802766361352701546342434014489420625708542962157410401753483095361364043304860983181625167447987839980542073313959478242464524322391942785370522600129581937737270687135716612210756776704919274010905711463145075332731916661407926059640714689416184476599207500016307325678205390404257548701003068108886454338152547587810546222097807888625207959532452971972111172381253980373725942404780652327171026447984421681852363018713857938321020583117171334632434019002220080911799552616862021832926417421893518476452221309510848610437956231962238289602324989737235545267159809768296640311982890106034049312931698626179810076638408030427314121814179784704210164215561351801641973698619712506400055805606686017203708918408174919055091301942217787843077278622410544256196566158599840290739359711211118379429748486759191918244228093555600688461209761790216961953794454066733130230401107147654552330358997282234126581326292150896317603829523107372974075748617545965097065510703891618294372098315937535435976212063285476618188185807296342401774362009357488651791518679653467486946055825153919049973017157805577755789629650616689542706430916155607819259833010602835534456132426848284099464027029719589015891654420594793972902424098736518615023230423181241248905303611826956995491294195117786900689408249094387237460882707650317839707454760659621345147268181767273934403020742493781309137262695676850519528592636198656348673836572572242465366931948821685818521119845822465094483724067464870938939573722608515468312194967539081805359958064498523015176267263869107129212318394578296050505623071309449931269987014112446659092032740147083673852014038622328585297086858661548427388277171153643228145960729428283605622607453117367608895493612174595593211804250124690892151147107127114221979048752830691777310768059865705390332319212832938472858021674401649611749399966611455245435055916748953810950108709021697677477394343962229035890743179425347673581571339939503190959102400103775171577736834428394822283398196156122451849700100087087669488282505579449369585561021807434661383720968850492313711960899816335932524122616789756542536378707304157132585027242405214925124868459906035220712277580108889066004444084108298822333834510222879916050484474457390623587828540343721744589078281612828725749801579500861386246668858828951629758595888820276745725226937793903199666992280558002777590385947240816172230275133605298423887211290093022765490092410255870003405187705374561215722802705877533765985962247872306364017196498382605198618729626352371219371386027539834433397048122135540782156619353161060783912821368430297170960066300211135687949238065583280247258473261061719445962080569614360352425829355835750951431960596807830951789941409317808929861889302526543546318258180889012612272934246089131019689820138648559090198645852468437572571292124408410402264321138478578481427501490870481508490557896782121017546139607299853767632350767796185902173030734736250673191282640464124773708722191311315404339877622847043998693246230293256974420415372952335132542860052939926701623518748645602222190275501056739466795238263909698747016509475493481186962901162137932831668177959440484028267338177665063782971143583915869132312039505632771963979398026133610592343758421339171540008513138557935276070890482371684707374387750999494900533019226264827883071725597318739027326825261306431629801237855627507084490944898168329260352719772208259201424061730452745179895937839186494742722191984491019729602587257358314750749286892800292346691651567522813366305625724599277853875412339225718183064233443669301214817299564850438761038321550826463414814862322180160900962213534673805131489608296214677238580643424493130749558753646980909628077948137520376119268722081019526478184860280007303467098564247140634239131242530034289933916290913340279728634398697452723967291062413210128227944088511635934481549162123338666241028080882423813348547757576412715756066442258368825712581887846453476706579791754605353924328316155621908090367029968778190484907467501483690315683687273988766100849852357928353958497378352368736865256680230639884140776000920513527948017947319981276964390798913372100658663337035516826656649168021438653385333804312209112851579975777307761411124915631731524170451983959452288384670056465524573631404112949147267216196210260612477848424828435129096161272087831295722467308102847676996165518416089115167044844635397669259757047380823065858971833718726932214463308142181644458873316453436918684766515571597895204128995002674179603145539058600020061096358857589938570534838243904578707240884952762380762068258542804609619279879786116149404856673434106635713376771523447048938437873603718239108924013606695568082078421075387900305599947563027060277818789663110946690557174477347521003802104984234489550258161209215532608712596605186266925993749347281374067996017894068910186326324347055683149363115851734864145569636730036396947781142175664971393710406055074652641906983550590009729523979120854111349261749047445894312989439758935631751989916710146179328974345809790192796075506948605562507708383185248535349684695379062614406715600248754989988774136846148967927381499820235636992470814445160311147108796060837927060474095082198935773318787559839856596454493679300395425720272555115099228455288753357602214513298954210662639360802113617007980443989207754666870560595421324190347598493705592435522674501763959008412284658606148658389579455857246928821729962333173603616112977927746461628041691471342505230058778334492683478323217473428654819838081399033680636259944364348780263911789914476990873488112989657628755054159655947037396127119115547750128334547659576522737978180885808354284564423309432878512573418622320206682140575846581374784336581421928085911347350463062732576148451501862634284022646720389982806565756869950979596939893374347470513379570202102338372701700313938462609322283623189176076240672242896971019708559627972191259123833388378561413257732798608053153188807418043223690315560332301640407849789094536927512289493470609957773598672103349000414906440668347125319752085180442101419857208284742350374605151932912785814275763745574105995274959608740410578361228687703451308535568226548096574727418681985016219356653709792343981632276144866696016688975067921524010845762424521967614252472863477735346242157233918077146492194581723635114885180101058360372625490704859400960692039842431814358357144785560641690889386829426662758653693551570043013831513234784291316275538026116418222516033258132129086904478985694805166677526251099504049666399745194619767494549348591301137722220140335453052445646324907261184010271504322112549059018114178622861750419195305724522099738706617190784582115506762844609963443716149012726756862130732335744914099687306258045675624114100030273527089078636083295906279500508828444914564263320305813038477597785269512255775160399116938978879315003257096782797772444509075831423375288687619047854383746753463231102081433594063663895488485077877007339350984704901196145578702711627983923580924699986967157712286758686069660044802578897117091613654432762909310344241536315176032282370320764363490143354436662125076416458319618870774397324646431945848248517563606946126460501493541916727555192554901142142113412305378937493038231480274091961595425078701964059785318647798512093999832713223403043533760740009090752276453588060665560042652343111843988962837742554308933329861901750175481374786640016002730272791096270831976236744878825046698196370186883311407885599501656658910796310947963222243808622021168478837382554697473683813422959826743101566254787807683535889667945291832528424294419701609681268088503041076132488065016186888342224009354041252166510569729495889881575087983912284856102577663464546241325341237234094117434068430367680627435016540299610989726430824427020886343122428704628712062762028280979990626640631585021495637669535935747516111771888223439542310119203411784930961327246299558181524216982244974739577333159052808475278453689000238636216083488860441764694873893572070372838514191079567528249209741007378349399208188424563663535248553599322260846336123920268280355869478707966717358660555409775679151285794165650782376071522763929581761995523076059068768299351705805974630317841318602828191990365326324259805584391871631730696244517827172356823017162367559515713281472570887790558628840818718272174042611084731451942364839583202490007210390313694276658220638697675207482386279735445035377763788620374824009074422103354811246782289545595226264060200424154198432906676138203377429123197328886660101678302959716116599028698993430656825951661291464417299683541635412187282705587123605640024247155610368349650465676912513126105430978659162917498269573072931752675409101614199730946226830011887442353181427977485624568431205651737313712124329668848795604965327477268392697236649811666223733868181829424859965710919727190900479503381132033896819312672805544214146521023422238203179353403417854795777418391638380180843058147701431003002617009586031380296684083040021267309322055137533522345346540949785667821393589156851964686362034296655369236594886163199280555027529639564586782774419607690735608030827792718686432085515523500990269023231634171241326112574513195919974001458080740917895484079268887900764805261776167515891561231662413575360344003486184669802208304795056153083434021142193946901767344797912660970677042210069848817541764317582296629632257060125431802113625507753242103744567162122696421603444699213761441933769159522594361827327678857112962141513601009319750493379603664442954808346966947912094437463793880528483578951020984348634772763379142356598643529171664237456933257805874931254018170525555098669281622942361794896112974515710134580160029628479669214605103610756288821808176053708808596660980035060641965468423026209488316570793659090021370301003230946704983762333331642193742666531602391764426165118869988489518151102685088639151831171583444500938352716265457989000219731143746857620160248108240220538330527053284712843508091549950708461848368873606468275999137038916552615747920329758985820242132037171711434533463437543230631452555831891808628180349362750686428183531754129659323502983831589490498104946421288180747731031941547190841752022645558232725832120152230540685806541226061117398608044307592759321264279872060128145878727709970271187804752115967670290943041961909875552572826655059647594395679778692245256274578052551896202465488542172085704116578702752681887940119006410962167293283371501132968769099529877548348537657548243118448291126405401219996961053193130700235369125399664426230527292163496916864894965120295238525165552876087713124042404413833454298739689764928183141556009849520644489809857150929854707752437915107963042675945799315337960888166925348694813238558060775002269875461038774642232217056542686641804598515361397688324705650993739486757264795346834177783966634387743517943743701352518518942928200238663760756602310419174693296007413125904052587251228279054812749021401190998304795037033055591479521055470109534224940388204577135476005954942437283038613911111662115730043949557269182880764401008191403991257126808159203406622086911187813952861096490411625694978770327957619137040398374795976711110967539906484922347543610357573624669507530712569839584129327388729653954167709126894974415052834407492707107247570791492197830529545661678159366542896931961663954010928562901646634434050862923728265973483777211047285540421360708205942489618657142665677687745125427109391293005808592936016583588808136352415563795161641232062380899503065788300222641160494020666045911987553339972933630478639118216738587644111710341003005230283894324197216845157382136298383446772417539674384095314841086587365516701511765247813800686067676389884527285567995234315868468330973285437170804591281307579548148098295751883210766888434872995267893175676944569396515239108922194173036076437724168978844630050428126998193719436156920148585906702243094363497867672032933740791917085267490217490591627770518942030360813080127942782690650330600523860051109438665311278360158462210078331539751689802366377446283436399314996926997405777208904657957197859376468225776156371780644189175567999446497393414750820591496982020713333607938200634355311023667211223688157804209479188451542524683913809279689275446364859337708760227239846395976621776527190582652254868927538810052759954637603715118483467698355086713933645512050447391805742206430306125989329257839848429298011391210011379456557184506209761873055523497742899204939927315070434394911881840410467641944837335301970640016669274241639687737330068264119531824065875307724323848711677760860104553726006281155288347535777390080988334756156088101125867757834354362333175017499058105152684051226255341501237002646428369025296379514733798293611112506482988665594250416256523596546541057667160715607069429803011639351762505422038636301891472706171833789296059589691165948132593006469002212862103928760550881500321259876122645362689192732241953316063889387612837288160505584869812662685185586890253871790685664135866957870045422054188142632501942043504492005302797341505180568546471528689386971207302925069610448110896351966699511611529524113990830764197664907650697764498095227591510519880656499730671525294295019573888184620514293182911372883528543152431602553655928901919217463145511679705601166236687059231092887993519034286605190690897039166276716263635815458892361261236509779030132737559560775324159987600822006222055943233967113242917624026819881053475503811010095094225318702025155331439823057726128241617993203135522196559629769731226945109671841212774861084628116743429037081087241732200618001902575044360378402575539293586058877920905488774578112794522369357522400534348475860820031560921339863196783962966625233726138147925382772530109316210964309593648875265481419252199019837568500886852737590298487231395267347543274087771388043316367895804508714763270654369059668374848077209311181083539811264165142747709499124771497076421173911316674871434385470920027225053129391366671811072138397901233559846690728150808528699244731282939234710495148574947401062487866560731059368369939762255150032465147758442143382146966391149406651306366220675316524072664633372413708373383248991781804547512534686810549920918345803403175877279772460207066663593706664798317987823411830442436902355505810971463548710502019582382473837528735232919573013021831692170514584773471307480439828557377237548949377165058482574136322607138566041442578957620233975309955444423018461351950534140225020686812101669298694959453805819341295892983533329987533505397038130891907143477165220828389319667578999971637830139596493270103072507741183446110320143212820836375385657670110342925320937596403527420058558713411999431297023377751189350045195319140421153807683644329876371631423210432439564018046694036266275486078037762529899824377842679964147035437699446270451499209328108352148576792979093201448310457864449012227066151574268530000858695043713159587486131398145221690276017942215140140692406871492149528999906065090858844269879875926618455748769208693891036096764068125650447212765240321563492024514850403195999004601977215311322432682542513565804857208551084766632223172862404271547724360613759059980980349089003018835389065961762565040312884923939683269817203649366992498151344985157310927956599382396597875381436936528920530704113976356219125088422443292670780381099285276068594105854219222403281405661190690881914469226319043967522612505688665150796650425310097893169160906419103563158183760184771159724962775081696650744467991960267178174145130244087805782759673626656361169159178454110794540360548994708481811885743804374079764624709698261537060614157040309530400506874684328387836326132512290179652123626849949949035821019622064816120539768292115974459588122632821685554255273042207823394954804602877487188989977097332399149079430434710314478778935846554677375652376336858817455508914156577576873072631114952542722180968304108346166993593154109403316115901141704102607158459629570041031951056425766177506669283028068689859778393838213014132564126728199190391089453669391857748154183459768467103616204935670983536391290405616539326458253034666784308412821284810252766946522922265833968875088411034465619686617696125714351660591547792496156732235128001502836585793444967238589707744348565278094719086700683459649209731038752903065559177634446588742403904413798113967263491209517504048893734869098938651669703200454853293816319406033738728276536128115009462375397384399369117373009209064435617912365696476807896025418040649921000337275271363657705681812173358531588823517038372206397457042962898104074072238296197164126145786842753592408491186828087743288134996503713338654321054381057527223408448072527315995322495131325324781700594611034146286301718210900089992940405852749911747710108769845953840259481420918307330944774714119011062567802941137479526010423921960786618328550719386621458738717240929789518182724218574709179720158566606975539855461019958025042356020861549997522316015722209128099691622381821340881975816603501614200500478103868560246221494701668305497861833820057204600075392115532794570931965714911217468153787801159875494894362539146705830231941915668796565518152999748150715455754932208872267810761014229242622843157962213661756459646644637674039195876194622772676136218675986607998633322086649826206649536891431309101785306823926121519227998830470350531580128169853652125945588612112529339494945293415983571121655630306077100873881816596953035607990450647535105744724857666974436384191338876208099455179336326292217219240040013155462133377423287776685222529973879828835095427074967665824956819831885817039232231187627407959874269020021828676064166201990794865351076497960706807472307830769025483481943220908909509211154878196060348546020579899528456471483215957494514194291979362196227093678804936481149566527904244580971711008852830288325726831232926413300301474857677841986552550648285571643577044842584574081398228931963671352658743838160493685393525210035354612029471412840460768233808983104070105722496573218462511014611900148312956313977866434935320098406278979538204625363556784164906344908081592431207853967857222381630182087876133539555020941912365854130007049573623517816161892474928083856561208403548596624910895134573351601088752714497438252983719069224558447457135266713771939367173052873976373872158171861759119883819150671507452803317908848140255088244582427292015794444403594300596455280977246228966217360607075130134892193172209025727172085672472842769748118499494795263131162639421035223250040064526496694168897643658051664625721457238677787215557677715789676675562326106092334936314765622347947771244999534402861335621887876414338136402433809281421693657942982113843557456732899907807992058882248939389619035750467320815860301530240644666288592166983558115919496319943033818465173365181538505765784051378096642181843547420530633318965205987956707325720716408229195728639593974147507054271912382669435694214716640748857054642861057545261488467267409811046570889737258693336414875995642385988744191575799210038607932556753160295392311467572270818639495533197038302169662100869751423943358781809620452654194890397608020664966518555672311331808525181207203424350732716144707739279158057865696905656850207763660865325058857768779572792544173444704297585480852404492948268538500810089085785162182854883183139780151304322464671965651367200338314433105178693676988103550340398302136994176995376553094606034870224013283417805685587592133875457405586654116984232839240304244550123946788331783963619052692599235817699773761304360322993436329099863147647625550202167333289577357071405499711963141924150483381591746892738558321590999159851296503052217854836939779734654579216557196707826734175720155811926367750138521274865196996233092219389320488994374211555846180191237188864773275491539827791032020799404734717973725795673528515393798942639018981927294007705715409679981736566141161557752696152822772887890096692382349186715569779649726912732046945898660925533157265208702481711902758493231884970286162680088433742972940815166630907860759852326816955491702138013769177866038076212836601076426198546726858212323078870362719502344100550660522250909971753697938278321152686202809771841227483581112380583524017457427665837945068215281969521421700097429870419807657618430557174721490720512882594815898508370395408210352386107128688366486499899327079725206300983749616983680493851755860263721285311400349524516208725843951979002582218801318521119867987327643799561428083725695629906888428077397283189033746871753704824159901052547317273560909532336932515781761789463228818073406552492410594943659289186561273554188503367600747730026757348804191137050088995871962540427688680441658560561132527308751001757825638737992990198983795556988869218931773075814669855277690434564112409565916454024529047707131538412188033478695179130573607759538473184674071757363036272773909057695601594227597990254380951965175291755126114882314512080386465791183226202403443997130665696785442431195053423972287769021956955694821713813744595774860031175005061544715734753581612971693157320534821872272437038464322923573783256783713409973743816402377224924735754485984821761222896414080758990174629427951670759052108211146647696963824958041228356212299564333488361524047997879545950625374326218504565308737705923422824008286060320253147574548017987147475506189803085641280548833145051107736038312369256918299635317948286127421889093229946373119323534499304235037295104312209854792044701980938490431157886745344835631451974240895833224319127439868338453555127531733560776803805004931385743691926345995901471160403657098920138955975756114584956166901442869408311734746683967450509602674217344292425895436469023745756218302569795757341798930756318361830172371824940294753470084324720460602869438375546666445131971342631139333206909821764693528029930554169247756826317986304433489350534423741174719986937257756713477953800399138330223627657586216110546959332192481650411254726238795710129395929723715715844957204611346125372292393099657326477035079665775148590323348625662394354152376353119211263081700824943986749005756405109050659595708955748114491277454140186643581451810162255125895707751585628038382577202441362139869874315630444139726193647146942121981887252246174405955239034978509957427865548604668704336924183735715287176093375656513746028281255934390895362957359410447298780681087080017787020164814791963128124521756167999001356929542128268336063842581574386390221691619704953803507991399665370221166558127513050132339649417027144103254341469828356492679487998388967096491508295894476921778250572254058044209925867190119926470799858127726526011445584925152939377166437925394870210604141879078753111095837811718251604707164189568143384778880647200244121483892104026187873450179959467869647732808291665832586860417676276550271187456633578739829591847398414446926780742498153875680849045001919966392231706112912994100948979584746168588043201715071822670767504067694553841025871107348759153988244198193738510195972551502100442751359703447535717628307677889824745542910743209683278915088631413995465642992020478328035383635176026909100302146361070981127319848324731570542093425080715779207394705770610741651079773696522560065679741999366040320423265444748779310314546185932670024095012768171166168180521355229270953336096758273831089523495648801302897878394757776514582242498230706308476522093850085120504899524256074909145992527473239711332415330245862048046173208663451029315829210482585691765166810461289056034882776644630547295330880999086119878712326785704640135596838529751813605101625719839215633533204889727904414563716359133073297105769752304690044554042654317192129674393171029169903465352841006251230621217298261035343666334242795923283785284597820043465279907444146555809615776061781240851446263663350535432393344267766441384015962478683844543921464360241860259747461691710839161496707954289945924632014738160685388363927732940710237212455494177912093171879245580781683404610438804198204098562049961518278882417654905023074721652660415004030227838725234504031534478809896818427598324320597968105879191858955359396820713222802574463709261762388415268849550805628335067724342944240652376072644508704455438806431902065879621273427430152069535420041909169709173266705651409268060392962726687566439306528925058343490077945147555372922327655140429272453656116295905132004946752311662093602225012884102085448704959519294144050738908312055046726924381361519949886744301793097909160688483401231260439520425959769225337004160650378124604917950636040716649470184314861088760650051916435951224573171446945244739796596328650831875362253086373774755919061217724869027278311779442858776909756107297228140647864699200865281183305795846911568767892601399972767981409670365968837835965388849596692384048955500950540980497075780288699774889641769576459404936295475992716794170522613983323280413822124694933725679502551128586338866191436531812676879502517643849055647963458885066894817382508838133331934903214946608823828421941268463755355550983851669984076952593960265401808062752761225623874828465175350047427644996390646427028037269407579024266392638100158466131455156194225327513596210784098749466152376408508730785813665239183887248895915694543110756210204083734366065701769602864576980852994607156880904422953394798748600781929817156510197129163697621109438419311085587095521152323034122041789594910602269900970138160007716425860606393268301688134795836995337904929719788158348930557677814379166424826418241990877072066376075862552846510184344799019295811317728339027815343748732061561189482200615445815374084655546503733159323223798458993593585416971972250163654001807890200923510069520006686308400127843587951265732669074128808694555793620177241335343185395357963979572030790462259003505839702479422394751017852394221927312076608237549231565294786501933171751716327918594138911528083204773641514297679887479850175129946987645295390411977539602299209002248321789958083565024815679944802868381486939430557488093551888843447918306359876938528326991905881333152705390629359975669153391155804698640768200390983977454745591705946914280883089246063137612445108860763393820556072996439673263951683086379713958580157273552093559813244833718586934085591827360763420014340163021374053538983702279559925923562578607595213494722874768822091026988288494381584312371387274319188348266310180249604297627284092856199439413892389579417342419316113527087378699494131637341519388655513796670265694329767275552204138335733069000416055280530766522772520375912986739734061829637591871521396357802871086826307645692236546556962218490967804892171362555568889737467616017520525529098437337975767886588115761947127226349563403716587121195343713012751425225163417741593982197177962005552704595098850234581902443303116371808273063005203844038346288682026744938722513533574841560510416946598701543370719376578615751281323424115283125368093462099532226083050183379810900037987345773495922594645407467372613619231718905075486256147841615209385257040301566048065040566412294134521605850955625496917745111289541900565501524006974030058572891494244631354165353117609412192232612554372068226164735709909901868926992068769661350991858359686987118972515241194671559500898081114272857572928759163465068431099254942707729331571138036622743778853587105165911647176911772410992779258687278161221889104283044622734596784117213055038206223154624495480675020337222340947043541419260223053019505480679772545888077050274796193258931328214718957022624761000648487560712720516330144055846854115294971345785299038400216317548627406211618813279059814440538170846638778978797056743164034535098221076670015835548717565157250273103722427287070587130620398125051292526029076762453067398007232351011472004647923031654338458103972065576700072905869676440102808123551391715281414963517707196419372610067235393659102488730729437700340530888081892731225467731824327237586877983335686796870418874634232824492059642639027457424968325665825876489277125306659759263146965754347122275355391276598033282934828061860536578210412550257502446443721801786507800253447195924031610469761790773575665429555208209345981005051100624548780020666435230718885982833387493967381942963592705094915739021635335858833274071692091485408202880728427444316391595011908754552580984696129349468716446079924457714094476492912592112650279196050721842272233206375947313983715434269497430681352341567387949177774950969730269701602839320151015714129748219552974646479517530705419487216601833503107314604207459408084406829218140221476832607340367088736017420985833810130968346589698107468862784721912844517000675033887499463872153544261687398087071003387720109602006661492964860731706696677064709663432708335937737341714100442812144204544436144627373124595495482855293973945932405511846998243128663197541269791442260311079839752094208069699297800115808207230461806110394852011959365053691797653542742976428954675853865307233218905652703991105448983945084074695799653466656563816453880488801441855993162156860368618712579560960234348455728353977589006687816818879703584982843706000789116189725345050177252226018940386199881823905619119856304769041473049686243887799773807178799572549970271293283128460055427007146630095044092948554366909022354988488347126755901552929312874759772765831332403240032601074032126952949106069653588471116204152505717947271442726843478353676813890393444996227210563509671136979552469500751321758472486407977307307239193615842119207787931646754990238071004396826005337301515030971210618454378718399569466935361767148550395209426851420120435499236528780709176230003935612289357310398610443340765131565576271433112511121363490714950882519970882849638705425611383948051994111369350892740569587148291855488144005640418788649252673816497339050188626569831594641634096190439419022222280562342517858519167100793016482725821370772140159906636488590516599314336752131530944696069640512823559401466095346525353447851739054212362811161208997844103870279347102767457585644042281434305899018696577110060732353099363417285932908360914431841213258143217206121608417410276090193681047506670755464237785057632999872872209609156152332240068008734233206932676706911877708894594047002664642931841185501789171872417517779466704545181190888326216401862271663133379433217104131695687797086066651669486951753916291476456858066789873248780421621794793812065080448614070880447858034331389381546350732925093587925568889129471591489580296112258677455519019308082963474859354815873785923367684246625868602390189231130015875447251055781220669094909506340415250401650835807467848419539843120342543213259757815707643213144299437408997181055634372055841972431399963709799964287446728903930103019641159375809282819098275669091003773442765870021129964867418284232864041641327010260786856879440283671271301678452392845521059412503580350266797458390246298142583197882365090747907941799502652339671703326491847116245566081042844622562643982417693286729172679968618819162027539068211782891758405354157981971723352070372707793541542140998849867227619816804937437730108424662986967140454893837709567899427055029792860111939728776272334835163021284789658100486622990554732397453399908111737248543013448838255597804817253891840908355854412764362004020294090740552963924379015545565977603593618425016337065351514609815365502465585806953163813720412353863696531938303611492690835093388055901931416555922550216306832220149321578446144654323367709305545529657920416376287578653355261325318269286081184325875850345894027405767636172844880524193695338875584556675682579533964514000186194965842116643400007978607873861868764522001025551416346528481599197291975078948357703918199426495182411352117514081009524557158667530244866691724383397142049096166048122571844707532554779027958476626699420901791267600495325320300214219830314354870503219567672692184757828848938908810546191260826097642611218525912214950582693236437321153861455702492451538055665489026416025331347961138126087289733663541147949227484566179635523608888577232032008362484464001184143983511711655188025884986579843593106041038348237263050021811776875933801642054354385213050119287252297371091318922690493380614834411726978065328351484362934014969209675023934484662940074312141992495087938042476670730921412609350272355126882244535938415340076143882576190649078020209204544710133121793076121473427014411443418353959925822272014211560006336599199022522739918731249340171773286405254999904496593463291575114405519956139457809219124324045980883375894408935950236979919380890699745577403975164953696084434138256683272522857722463996166028200581643281871161228070706695076449297834515111573418536165978514467129158250111161713890470244634026384242212960155366362477583621407889841981910616644825905314848736328739032851940448882924279304440508289343700961025730546018147895497738131101938358411115656070194729702383542932280187300705789325695997684330822432886241131702286471653340213681180564002282514247670603568730783966922230496405829696532449165531109367951189726061941369449598266576861384273804478196667632336490555574853344899073804993174648383303108394318660674680735976412849654506870680838087333074028690067761660754013767011733099426441230706891310827421935983449462965709337285170340173457622946756451605932349866762176448590807780697371095349291155720208355800562062176706595922981979086778935854310092693928749942913501919777691865033623452446932212158669744064104703164640945534036858730920189731538945905500524565846292056219877577680322577440702895853619944283141327624848908415061962490083610743055164721305317511488366783892401263213225929333995738539190394778967605174982374293469850788810905990966582059147096911635617679339369197280298126970992832537701647640512354440632817268293376935836472610691364167370692159173050621726364405378646915800286294859577594815165560658131712828610773368820080012058878723709943710295270667174969619578589486082999764173022966203705449047935938772027626213873216795317320143600755975060354092387024481853086175453669942096689696313279701436976041999540565699016443596152599339684179733933842772036072128268380852068954974513359488855588212752233816180502563989880616502916740882712205130635256317599499042503158262437487775340342624203003832203738962748883382726547525042768254192725102437714860418006599448106672354531359107398164509297459030211623463960817754529825455282081561927528179161804230130049793490794848104939177578070708779900529636002611744688587436362804738999006559651420506562662381492717627974265257728638248461315652409893457879186588724221510695816838450122245285967959849256351300490133980535549138338219419062318442877512254842623539864329452987731615982868898550499663321635633594995476243420281707317702492188169824581423142747250945269447357213085197397809963756874938883803381362642177088300522203822564404171850016095126416317861961479978711286039416980963971895117091348479622139388965310357867328961058432306823900640855542973069854556887099328991732849082397160219355433753997094321600983196354702744179448527476967209167551203079114263605283733141123481002099916289580088486534691505872306111552482506321216863188622886581833598303950812606110680959614245622276879255422089216594517949733031126726697198023688637960712570065320268257306018534133490281804994785986223229165714275973771147342169318748746152655532845481423605027298378109494381775831250829450343235099781067307399104020099270622833699391362274614236603167849057541750224499418254579331799692681359624143600934097786808429842875151437138028388115419419802949730881125073424159692101519889786810936209579509972274522918452080293301245139056806139447499386389768427815203810440697406350378071931875706959912221255670575784530519351493110873927460117948321887356411600272752067756198055377250655809375937963860437306525080925050058312067947091551831329312673131251814418298649044236344078971620877215200150615311766914739445147694048983236085912170793875927083740941711049674032874360030956179165851228096454215360910696933111580287418708405370387495471687906595837339544008890990857926059392653413630292378546363986381651196940277737597196086443954780887733943206147044161645642381534957422341318306103708526043482936184316978559172332731335863114062233543571120109955124546798271926540494941251101906686663804482885140355452722456355667096001746806828417034175338228159605134861847948521935003664265758885898465307938489710703088594680807210514540918911729785280277571599053789351164004657994273778849628784338309399463072173798644975783183679756841998362229981845231328413447114981029137736180345316093383577454313047595668159138738044821355895911936040462252408698417441021627592719990729532179743776630513360826304779653188398349502164679975260613677051628123454662765889101879581183243630875900385718382738268102832738055870879215883865094102052374564116208957477878714479988462959552700408372957464200485705929771601119994544447546189235813921365185092475218581893605739948014306428672739327442787989531416867569130893007556496266302990741310618718573040972183664039841834284489887112784973995551768583534024178839836162076120965605773304444996936684359960400618172128235289260969203718839896642455901738593587150268387861625920046532128639708616229024950614877664013364079978994890028977619252951507980360509377631103204144346682835993227898231144463203929599030778204227744334731441380500974334824035024067026091059087252854854016221148675201123525373341584255454728497422867145965393019490736596443020219197345193012111587180769077928729259159515286907767280220048315171490501292105714295091716753678596427975204453576104610959398146288398633532382263433817752351477878353512929532276844020088021068756459025341202346353630041038683662322660190562836231677152830325363140179230016995010462394929693153627933974822720687458213879422414001525647817980832992001045750239993322316990742658800099905898031869747356647635095954866188361582154446956178952746712513450802117778495848549528643619530564942827512235602637463709300399193062080159725326923337169349961630730187881965602253801354115288539735441851919694045051341034941635914994992918024644672075617649983867606398608990942945332209422387841601274776796918606271538555816358473178164179943909573628571233769742209744276277438730311025798082217109883737967283946708815767082340437553794370997707475354261523495153736653818801740686134239584838149794987458026098370159160426050463792331869644121641753821528644737309809736583862777547430001238852205648278849382153860852940475016428893984183858939398769539082201953139941733217161192249700654995046187028603593716850920434780539524018520731061854433086935505740419112671803557240530373955442598922043550164524825850581536168600615982552210098182510485235450443092284961033916515429449862806923812560973037262842739981442628377346503833623401025708024789875814443152129570083570813991665674683009912916835603486426669731981770228088598402995936474671669362857461259744509704215769689111426004879635480889599047783338298189181405833684175670808592921855737293712196615871353662181958269595015795914995510932575825632522817950742682495324924117861076925239625288005070793031182009667686142562876358937401893882480891711400302709687022559991497407398844602987541258261898588308324772944526548120528597915319842212755395235294736930477582889391235039903607419139767586028008570488334991335635768696165436254680099976698707640796145812262989303201968990827871194549501412439352998297463840211438706525339306693063529025161895085046661273922017767313776965879293308708452965019498109576466465496229879928840207471453867470908138452574020541104702513917978726976350962457666510221147414832843872084507840661768464315528837723593378270739869803878285677789397931169618987606994638820740077026387395721845914822679327673361906941365689629375687445766466358165338823565012667904660655943705667484824080620874859886369477877165224358889493815739144803624972023281526210410691121790046760077306059614834096238036245240172563234632351901971409102007034173252260547678712402863704273238932244044428777957713038097207934176515796256355969216996891316125194835304536044802766398440504546948793079659764643844865392898495459295960952839265908042259407785180247766803618189723004019600724749892147058550763763859335407755599710826029433182879563686466817530622701336465810604764350483874104756809270148115824776453293256596922880658329696703648795429393081705813362692219180448222772047051609864752085785430831338075158000491850381582293997728048554714581978429414227060722123263131514717975069121213155382728068731566121955584598177517118380548338657163935054935919405619422066514908376227043572354479420309172819540658129170228739338430214629906970283259674837589169770713802777446133758166183607293525268382973874529822583293939174432440210294213253184262576486877267648679293059485941902704994945929795163251527630041020296413596895572456604832305260899754551531100298258733124368108556449443209222691807491105801305894219760975033365166172527820285573063674652986685893452270265444023181619895675201284147978170046570097364986437355272477609571237404191763360495088597459348381519818345913432651088199343501756885446392973135953136386691460029283354024254402115216962816132497841503026582856892255520158826856844432985519890043890808751414446650491275560054587398909418027795199946830285332978047567469220549415913161661865013606130216072990554097355190732431142032313228027542574618252904635196392969579136375377364329413089099196860556106043607368191258793920185922591111600307848883679437531951199386457832563052265370597809738898951609552630529765171351508088110531656404804478091391440900160922959961124290921811091892652264351051030276078991868822150649174340865084190595477729236407102674556883455302561288176615719702443684909232331918110081380095612626116953503859623968318805447422506063363917974839648936824626231096082400298026418586410138200297933137526462761156739584160785790206375648374033365915857454537298493737503593427132500439173022052241705589557939922014254957649380108217882442778106955950906971361863860111734630083583051503128075280862844492155383141098858168421666736434583017374276109151290760752828988816835078045564628697202761219199992637373885571140444406971478410480350766517279311468005150757870893526133821746365141508939020860967731138577313548313366658725233009612300400694648279763987260335496416355070172885632415856975851595263666797003814821725737153483367337357805887760786736571137867256045291892989924686034866199400658393971209847845423144805304693561461581645725176977831754084274030729389212575889824154992754878680211288417024604354888243832397005909425001327840229891776685997152969300716347608193599827456327138371931466575097317457385574823255001384567504443063725169561159992853471638332794148630292331258253072201059195741555466073115290527338833236088303045841175873095753709468208830719715373559527118661149951096783635489193472976214579731131623513499734144334144805573267528519381356847765923305992747879821118211081168630221981523500806832534232776930791599143094654708021117719252373609842252127105526820775691115701771473442665243415682471922099999714310414035216991867694399798084683553777098673127288132209356199726836981768450473319566900136511455786765073002991791727583432284059283556221223774008781959060800877593926701580387780803944582491257614446115616389460108941238367109390440996411470144101230026714522181885373283192551335015924333225331702622733916242196142731565002865768636257813236316979455795736925157000639558652991947400887301211773494979736492177583431687814259795569662381494670221015761308976105816269139878329103059037767981231352170953724528274896340701161300607716963541763683165422715146866457628696330898870124477551697201232625234931445529233737348972668151603874016258522276749303284361641772942682865233440633418550247038470443654694028721172657420803302572235540578643113149187138812004824082464281733441447537522219785399548157688728932990031496454788287315458588885956454159739689740173652494011457861609023749851141827312048490812453708763288685441017464302550873175876885244511686289405494709544924340896258055550131279402679195700192667135154329194759619250296744924885220505883653615901839290634059795053204606233165269996702932561030586158166291868942815814250108830031605764599058522046779805388867079418709213767364947281878766897444708195797120546502000127181677229872861951177550109154479359603484147735522469119921191757500604873417904176878649338244970254258632119255411072435104890773344457759657574500427703608235620002940389750380157802407397161883834319152884631171877741006204598669471387659831162562875493141279869388440424834684541870126684400631509568647934304409198337469301712103367819829076345968209568126939735688960245309016641080749975134452334289120348683010078087314302691373241597648053532315034422741633759052058973586960153993191260465511692058214912547014053479067543331581696328560903581494585023496413864281925881217141290537912036963123391875070939817540068256813482471608396868646669709750598357175715401135459200749953106319874810275415885527563834400397460731226639423567023883700844857624694879288264546347894106907563388063242572967847572498036767704301864334419266643464782676817639183802628153739354238255352772435166788331332538089851921685665986293728449850574980669121930196314945501203492541378796955276491460651895081264186858921860857730046383892287930410238354772033539365957582507148501940128409666255333469248062634851867173163207975464070660996461246371563274772199896157528313424128569206930899130835411018718339079497769813363178314300698813992517750260837119395734572746798588237962318112837365680870617214251772929704236009038834432286385561029540965817246388979359216784762544765608241888714715575504123251594626023074062198922521901338082277189693834893488471209393541989106017439639381476469125690005948230210735395660186183682755649373452496972148637818074140868701814481038796138901339298906432214321615103208840686532216271804789092342961381040061096130186646487048050409991095639995779967866231247991103239950808868586178639944500186109001009141669297937308348116429907736299538690787496545704707663461794528405941352446281271832286610490643507216215979045605503241875941734424743634396104475176106506402971113610664359460763536970463415179919763942175918176763776556160824982206673949603671856317509526236818986732295109498939210662789744677949784408726529677538430968360115538858305728969649194985061644479027903502006894354747369965046000327511542366432572849113322530830529048992827095053508971731382471407679654766453290801424978666471304494288816075996813181104191179912371122074401639048222556087232149655731944376885822571642116132991112498278384775458189981276403295083510731736118511390160156369682574974220729398220606892136292870292549655381603802261310009587958218551761745664406880531208833593122706876955133763035614118909966517430894518586893574735083953058283288535467702806734275035678209658857421820165313679962052752064211342900029309896787726726913566018438816735131306074071338635814893776735753908982958275257738538890669388205145733465958384023315964747435073673531395356614174943724769913683226635180135032217802298440670759371465635165294234572211032912138810373675383300152475290609710943375859687173309522787768056990924521085702028511163834687744156076750581621070159221969407703082053075149675701447848489862608064084381052807417094758415602134864448944495330127834735339516170482674307110195768441324452162177012371957428582217158222647013980383815992989778382296043903913387747179544211934379004907384657499296731742994010214504837105918598912266510974302641812012116389626758968205445113046451699047284226447498219990019354284280088068343519066479036685506856348557331022299937144148027653008669231928389355675704309341678991936263151079062773616480646835681359676242774315649214987293852347406372781567684486738484690428041457660469880172237364964686150925535572094723969449643661773062804258559618359307477318505211367496821518859752166480529294469431468435650995446059607616439916273614432438580536083268157122721485099264498200682873461613136245181654656402843578272958224892620274145809342891055141180303139348294412214459361967760107848876627357201609263531776031304196658384017562086943676674456891937872917227201994332717601812538305504731518984217423874326350600708674601251367947071844774727432098013024730226275790695798224766311192940436207952444235474158094328392463910078861803470185159003280103401617279983699828558357160715516907039573188375927175138790932287240371131293309880501711938819986617779934227493179240148093122169505463061062641809716824091680130354784252783330656524757016959732954058422338619494851987457498441857606437375997977407150477668434506772377071203981257922242514441742651427872261461503418931592677309059571048613707694379890461823453608021255157889740280486034309447948827893113217213499940771900856902690792975060713869471343540358170177707868918446584268288369904201197340507991910594302918282567389222413236871526993399024663713945704248373089892751156419472124609754252414593998202132219614630010204058586808724630123511497524583952504884327993203466938972582909406457530832451282449325016715003799804364651293304053750630159010265593423982074294872748811959937472298249649279220905831429204149459589377522723413653535971797890827633532591382846831838486476279218887591819607206763626737155697148512057286915079485317250863411415489838202329564609995668962180293218638130370578732524576527780217700957493794220884593434568172700684282766131990686950989635190973131754872544841076225913439090510240064533380610255786211622514689855955987363656887260780545519110723511617367397328658123933851159414653561925410437702006422924827054384521508809542286007172135131758242858800209800043415967263666188933970599350011887419769250134499674436465111520997257613686772273957060388075623895581159009052138451563570216945496631910415421268250578956304341557466856721852663024149082237991424604180114289294198542518826420927427846692259964291061417459377517968229641196259548016072032238056996239686547187427738543516044285159544727260770060530245773569084635882228839329295318342540458960904804708112424561963087307368186405773990483276903585604383702162498393848890251564400234205818894565805732651334401191744170490938731719364460125562363130967135607677370806490365887200901843606230554437056857542192007851486045407350998619396535650543135552517850086194619433058953449834417793023688806086799300298323354752779812332290307432238022198462138449825153127754770670569854433749654806506577249650238111890065178160611353738147891680707465684592486627377979251076253808156510499599915444043870993741667765964683878371706370128777109909752956575299031206996826064992773836665779435785474402519862653850480938905980238868931574899133040825416523209568849195649661992681556136592174111208451822590099121864073078595148820534423810290444104824103075472197553732470445290349819549686995716110979298216772375274734671489802528903476650935310221831149741836278646299607983126614641807008756574602347756723024244545382778035426239951820861683377954470684209212610785042155032228045332263780484074392318285975835181433744643420102793802616877347764255147131342369634597694325494448064760511538962668652371874786244910042409202845874189345071613307131312043546491122830383872858111040846577544935506198928516414751624730734809697516691637543556379097951213383547835948210967918611928972556596236548170154438319952978360089390989337399795228738562682415509373866629114712355282831864278140137777314073722757724171417075223264503481748891282119988795042903259603705105751087798980681033976306182246521100489500295997598519537901929793964874306674703571791994769335968165458196259406294790728915872440101704295751455815504600974203388536552485987250698368877936866187928645878475919195630125583661264673219246420468883517413385745528561838290735829063548328242799925039540493016608576970778167115319462107449594832886768840724267997311049903670017166694016738444509235476180778985801079072636307638670736100369669546933587552188237975858545818106533113706354993068147064668711447707424731243672459867531881823188998583341349638424139068983612237437307738226224492888303026621312664791050158454037581446715511265380901717895813163764882468234509047050936511958884610965165248724658438352121533548892734522406623105754183310259799597620990130812738416548557907257238658288043602824541482688491069282345129629740115501807762938868557409599936467390943447415935630984194193544962091003353451838579802822645532234512422641834606324041199378053580289763104584889217598247145030461894889314293276925450315631338904077585576524827456749818923285548952750533102937633508285434345919671214705911460151824502087590343988698781587891565932397778272401393922714896517508087698815814880801866315091202202923815550761405854730977577630325314479339663619021205661421938366367041645332732722415456175679962607832671130285359772398443611663345834712842098594710959991101278424226065981956552564564320571992865851143878545938488395374879062303816326305913109559925557903581557179297275212359490090571590103179481915900217385190404793297698804901722131077332663593257409799573993244886013895743416375164287165498407626384030798250840118952848145517377179393530712215651214570706145768063040048227826549509620561908407591910680372838014815933661669782755860090514629185889698915689854984111581742534428335665090370183989873762244088519095419470126062663096782844430266533200352998700535245939851677098094998378075149790365578700083613126952426459616045599892145944363367802465322118905252453672087821462338746475396150993462858775497238674963897597865686144635452303524260841059289204986513998338926082480388521357689630444630988422327415628267637181052454032540962593010527988807539905431813179632087425929144396953541279201190272938913184672665129945828511852861328943294950621927635150616420553419387180592921760572425936246618907856257082927348479582163343565170338819819798455734480695519062885405847605402672604944674904772439932429579704775435434263126284341496081715728347048924346467614188073722009800593231911080016810325903381526948727541240831921927930509834021306123076724461304719487309098055886835551142739511782096261234864255397749003130238509182062541391075280181362622743079519425713114005462003386259055619335693402860318464854927410984149322273373013255104941487064322668600417702028601011901145239259719610610455675240968916582095615283062925746529784071570142788947980599441121556695234783854727557462771901872495075011459323346613214085326806076135004033119730097533795866748759866763870428665980678385979757032987162442232050115575583650260018393943824754140217726416679309374308772156711082714604296972087277243571176188349011976508550985034017389242330719680924834169423413446655590839767161224564043506444733879130500522890120586529711123573891093117228064629667346286374906805155486265734581737573048607781721940213536237871541429457404790486619194244871408746416703880182718000393123776604605779583363991764718756814040660922635192693017073328709963998707044257845085631156014649313099266063709916464686669002533123367321248590595533970538499057869394507277092819104055756453327423569912719453586893541969993237740760433711472579396268236099155458706405663331178223018886544586015871018316394481909718390072655004591437085104628616068191926181656469257782719029529635410275089220584238946866104996225115404257961794518766046643573844226611035039168625040850974920271597479234997246609476711917823329665289473536739992228983105235078764088993064665123669653096162193923079668638499147138668643466139709370047502789545129423174900094348799346670377762795622328487519536588107538505768671069914165474919108403158907156144810860864688640671880856802772752535032550130782512305015470256429673839642153948336258496735052094033127088189933217748459892322256849734483054100065313670904130492589151704925532987322019864564766377268796892664277015663999517723023423623403517209357604072224448029331229927449541547940524355790956246775787827502846035120382514505596695171248436411926752478004251515104781116924472780890164822935014810485142074895670091515377877518119271708183307721669410511066089584623267933715929196635762219968656315822275390758742976483397424537160280317306223355120415396742971013992581897297056465976185850234558999436899045117228448020944920860982103471590526932495621409589908298663713697159533283358289866101703923171596843908052035736379977282829887205631847455718845237111981076029529376575067008700210629810225431284122577840051162729394067852861768173416893486438623606434157499293907702723054966143642589660361375656800093251522662224285579949414392808529731730345958911181403898952922704821274949096036101568574004016559170842814992154162875717115602453385607114703083867375062379326829904486269928878574725379744494233336767982016714598099321912041637605325490508951011009005580622295300864354265559033679339333702697445939497523634540015105491404038595337325759003462644257925376412981699935778070571534299224184386754713098995783779998462450425318597155239095455252481538960825955003590964896769882982976880256895635929884613640581200580864561205950179221177117857321435900487538442062161233500217363910043721603732406767256073631384841730004382680829064323313854481839144970039540927213774827924013033964946133444198660814830491038902318807719744237884283842402067692589693663513638636445709918958448017612844601041047268884587178623750058406120648858385890679115232565334150456248888896476333330208990608486023712223068477270350343454588389579337704007889637569953405774084892709750293751706888013396899440942821717572002605429121678962705498413864371916888898573980155051766767979158080198563620085027179427483883343604066519870976064528545528205289843981280627633981794009060242148378230985424725783062682564159232305342380496006819528343258461811547082933845759440199181540696370112968583937585931553987099063795962632339273999217663571930721975668480134540738477106502935554719630094899959848659281515530260221360268796414346464077925710093754157812659539015956772004703988364063684928933498055545290383290841716722343305087800324919220290771539599973835156617194363355350963418121489309132632425948917369961881037729144420328779356398440977158791192257362898343827168874402709410027555063688679684504890308873192773572095105738435208902073273173422858991417977846844388196226925307440632939180485590225077910481931761252638970172174621099774161035827823455793620335577280068952430125700554068923490262721271088818600094101184686800886890326463999959983921352988029914437048273868885445406944516861876755248890640443749188656870595542772959905105487343648093076330397098913413433752089877654701038756101772037397719951999269404005855152988261855832558355926453309963596720079450685210187475689068051876169681637211664498159325932244373324473529235485210130985712736941519803365657176657736190486631798983799657697740775153580264344400707197120481838120654945671592627162384833864281292153732001281963374286362541093100595704806565907934794783516770382704705587963636569147542532827130391200110998240377307188764928583496632896439711712429337591456221884251463550394881685293356430244876452581720714865771901441076204071231413526155238102515769340114840508549769657421726162212134167920143900109774718486689445866037391875548609680036275438468126264342300039143497209618678978313960970966410388841167194894444637873815026273708172063192890484196373643893724139319111110432369738549584867193524725494485769879804779911664254203623367850917054350694407504457339938843715809104441043342685247605854888717228099706302544963538089203209262239745120709629439690528232076533316778194868398581417716680079722138585304411309674037654013799919024128066738406900966007251376322111234303463745692140200622946088759629832209232990190603947792523055808779298057969084828643100131721312367398192110139093672617023655225906305087278234167414579913969511971468025433562136325794832574487055897696105807447942432311658606155971652803091677134696125539581320073866074648411148261447895131497050241929583223201735842545361267281221290785672246052945926497864987537948847482322730599921823280318482834587273291194023645913872953498239319065244755810510910017373065233432568024860893166309973416081104958275534549382996202942015430514440320572591568428204566690513787675740618025446450770481393193026640678785448919771780964891559640820792000794465069850750617323149674633740506961408435755707353503886418344673286439592473959226920381878122578089831148820406565595263357212398941912753564273727556762094931345014041085255942246895940726384189682576802079026255062286941699555440079604174056142702187715275205770852304281806891127650085329737387724172081156722001387268770023434276619685532882369997890424297305690036991528936820325090021686294372618200987128936086229087339371696532717667915867286740043325392778136667298777260020436905359191409854893389941311670590387609231068045205339458066713568719048235750901410128567641989813789322048648507680520954123817792567046741538567725581176505021756281602329740533088349488972907916548552975058643839271835388106056910425398390600829415036940141459665265663877998948612411382271548896222394511687790712024789940086279743288116997087104802729694629993661479425835126510569246809584915389673605027081029021284048406106231870268289569590193292533459653652432820123067280995195421928299457682839546923638288133787982432980680465887528672042872586604254174379685272039835004835197158839812495911154356574840838238290028643219736899576589239697742436286376543755250496211836038071251874163140739698236871487367745070386149226554894943004914591721832746254078030815504378873100821943597825292267478657268149217684647954946027701560969664693478901746503981449277004791618316539059996867184602373249701269076669447402716285063016933349679983144248825893452552517675289690598291443041055853050519979837053586296080583890108622850363566582217306995378125613858873944054800072154925082898127634070450812637121922919684991524296535908603478871178540130327994864851763583721967986763192269112331541094565146900141394822878420835741323068663786786586618751371481042761672227720512894601383690530515729780945799176745934287999212886679093208640145245951472782877129803746658205752742058260408511942879180070783645609622271728115576854372276003414429491051319502107916013168370169887688156615168623725570765890001444368799232447009963895301373786384704336737833661430927452336993757430194247151145295482130447607360848488997664934516591947190423787896109631237615281219145042981477970456513266690601086564803919129857757842113841213161612687030153486382642900271966102417542001570789219794167059525355206231293519819147348776373040995836807132035762406123001015840938052351500954669416216582098134597330748372086685942847933886413084955258754965157195175972660644293856874723487572884258603919764632993921712249082020931570487100865807866221345380743474030732450028742572470383960549874741236987515310958488093871643152297154360063283380032862364188099127006273573966538576645478550743612847435008517055205546680471315524417986421163193579680580541770825795486260296380126770338578294767138537402257421748130814330941822240907688888549189555169107424782273230677613646697403941955617660389782721628995425749902696688219509511814309217980929143815662065857231272901127407542870520703760911113971501234002840626169025265458023012035223251650963633320140898433462464910130488316599738135151420612464415759393105362952997613713172464811838421549511789173685189457357344653308169548653598860787639371125586295053796144385045950846049728319719149091047347483527391353975459027157332252533121254967262907223463013034163124708136060910719314915768041960910658793463833209135615312055956388411029111136530111548743109245797919114946002522566174817043294861587309986506060794498073629666940658478315999044730992009252598288818571959289086949353280332183552102528945828033276072660747806625969343159897354328678349405725579003771292020368967283827514732252602136913077360454895147587204953233488671172262805680781096397626740169083389775359993239568889066903172202838402839245759998146712227914067254776317113797466402093067918657907778186561776607449559127335544767827493314943022032624053088913083638380854797491065400995881546848533149991150886774861385570739333996180887553468403148334007728766066371806567762987813284218354139401950652302806716978059825672140482201330803797124026396155668563207066271311654277680498181661361998326236567190079897279632910097751603838126942012516601254952003385598469352179118308984959035993225107290021678224036755878245544208407172639042282422956500211502336503997459006567852010248795073122005946373566361691777091648315305851560154205813099994690363491578591600532960692736602349707057291243157724621998330814637182121053377483222094238953414321567641172181834989089339938127117281141548768464333194891313959846064615572183328972740268889522277122929219471020407950797206419225841825826077683799625186273108292764800807062933438190473841015831634992742995070135963282037843036903434622498306952844577725426496807504231632467670520180830456977617376551429553116814170383413429139741238268855725148132769298953978187266903886216389540177274647047624013051986154850130190279897858671984979091686267033875772467843922860016906956576855113728937934189909037492151913193227332155625522536819262381723106689938971107202037690440874656564696595860003610437576791355850141710620733853202989852103920194726469573546810423872401498951909085713723337525969281389766636874543219043383014005850831498971847517765404088571860915757815800352006556217125969811899887811743901437006026230448544319971414047209743162522346475241187183672171585426420216104640315556848894387536236771844166163765961267977805375863649618313541772172747038030062606147771344975619070230943884748085458735442830136369572993049409515691881561643101883365106587401243895070029556159534239823049563606810410540037857372460539895805672248886830148486611786147372906847238796672723363320615623589957047114300017321224341759763741026865220753129807492016667309331244215648882603904215929987848249668820273954236922083115997363568810665660249257131570121764085624097652559689240566223339057527976451482156969262520891438178902878044072327254941537804058381641055764999464440562660225241653016829186878016886173849366351870488998434755897515570318096815601939533820868593926565198072482947552857201351805969192191520788445720771057529092984280529101540442350420941411834807763527085016470243879247737516216779778870923198157407629440848873823675859233161006662037725408539912132574387979352299637409720561998005526965328416521816239102396539668570974815115645360839306484465099749415241186440101596835530346108146003190762229770790835618073744763343236687104530829446224067532691851610458083109420020077289781035693369028578175805252732440771791910730305933183584441721003416373997905531031530033674144140297218667146714431514755193006969966953933726557018412209092680016341400438914424931916195201325966126984053503349345142747010262065843895274019635332341840356719450980884772716138992380502642723769073620313062738135324600999980798556544890149174846350581176895494807784403606593807277083797903006767107358327051629187357387428492771176239536941281221576580247025492468925941715540267453898880676979981845682576956069629407051554475426933795585507243477021450272124141799536639538511149155203105081033826094258276441642192393377600800692698764157386428940970773338122610681305850953203113098227273128318264648699716461671141107755607881124820435963308446120955622285948528359651389374809767173107854050219099889648490464183084238084108255291965158241488589030049164716429588881904021273994300062643910035021466771822924745298795232481441767949739971861966557128969347418007742690647638193893109172182585604181129998423403448088639005126594838408740411317008504024398624230192613558690009870921093802061296915511584048227665549850499351960301665338213707345436234530342354823896407204718545280843301231061505457628321382895634566551790543558603361474335254273975153798419342957666626996950117478277014319230462601947068340829616223642386864351897411495512663826935191346063914365104686067303473163935694256484379425592906523815580147508802974845539335037813357073094967446773511628781021168622434211006980615914734247640046491993435257808002798381654509673925411832365007497904396627613253344644670587844178602093794491521435551413715767916605191493920147363954867204819166743070327426700824083328861910621435311049316921990566596062865577483413212012048693570945372192697076061439257904440435697409464455334025266752056613115640097916262118868324042341672246446790035799898592601425101968649972245872565773399885471652867171285923333319811033071412197621605960627048915705949298526303244167220158698021447827619532279883578452165929783679362206191843517629360424759452790436309508578271492109961589729476995952886528155089129252693631706117389352986628051611770630720541667976541341749353405421631318195987749080093691295661356047482473717409669757634135326746605492147774597747145234217007991702375353996906903215578278561738633878004404645634909463705388217912146977243295396853669414977048190065120152615720859515269222801721656937287907389876992591538663703241763255883446181746296719703906221553725630901783433868285842139515996100060276463888556664267131294384547523320580120610418479159597533983932893406830193419846481815370286628044038782150384765191057016172197219196434217950605452984581642251146617697356574504521946761831328352728012628240784931057037432000822658186363693388852242086958352621526984155569240428579432152201259437012931955938710068108812514807307208532871750268245397677490408613827437301054899840140860365946681382486479015328733647146432248079666121225528725011951442165208925923525620438181662233581905035360672240283159813586873862857688357418154239821516935741069932058782795066366170017470563364034272767174695674337318938402694129531076183850223961280690058295039253352162583178588425260063807306886419761553889659654155271399005410250989660941127427166192055044589855935295045348891325142534771565166247733272895401357352670641634027619385531472982601281027572533983922419692114299530783857466545098948790427169441918933379400209327448548112949249525559195016045389087677026390244255282452993427604201416853311328379098066438234714108810965915581073039764015487734985695363191725292519089185171581971523627785818728087468806626676192553450124104752090172386621482637236667848957263923957773121121885032149173858649642149023431838688975464296767278361395400437373190001197856926811646775218533877566284293877246955279434176210209934011577211907851418811852659422881822401862625482131916216003530064017923773200245358351890985594965206423186535674947877791421757746311974974353223730579732454953073493185965152782884837915886268445130704775139016519151312799927998459968593212335337782421474547507071646945676467893261683069983430173844227161026415711895859219208723150486928115995808754648676141176693958951829159117523156915459626766863262675786612334390165055010153654797846124978334783699390129604056204982065537980239387728430476910235827295611493069765590643452852977491659529689918822946266046778201903622562071488571588032911929577596912498356541609317252631653263195953757902324216344311598995558540837101609309360678329814112685761381980984746763389852718921769575595725936305284720698760213754934709164961002878797935476332976671036813090974099868100668189685981017763128057188678478330669932766703649612979996250317896415825534102769521845375035214813556280763709126480912698547807293342313839063802997145931161221827935815756525069974850315434887719612850290870109020881617911807817657655042006546371793922479103440600464548692389314281411839060976314698389836225405313503229553368285012107790780301113495439953045826453703820747646226242972984520192128891110989392030079410368067370164712034817312977391224491445252673895173066039510808325417895537894061855921034705143225982417184864794828063768606776338835552701101265577522384834226967392737829741031590817997161515558256239070182306691767367145659886049691247990075419720062162617443736890614715088132558158079882594861014172402217707713638518443126315456773236546279122584333992858085991897293443457229715817137893677225545211108952410577769726655511496705208296765631924802613669147427373514964080722331924263241598307693154081672941612840373775285855751906688304394986754509404365031652100827987406774312134013756404992734765766600756069073478293616116309654805308567936111994148444024458630363436797872075019188944753508351526236903338320595315892808843047475259881425837489524346179775964306599954323658714111881252914069049984079526027008896594439828929802656411903612217479770990810171687817620730771153603244410400557112165081742766206238929341491151042174640280641539411669536746027017059588310336661296812864852828421164274069432586206349948998721649529500066200457086885411933547123426848813505499410451059429307820036062910501080432813981533172260909839851672077548506464048208274037116328800088423870363747913429088283951572206038877154739402584759098376930991822327480559697753848724269607026148380879873331027567228474463100642257210487395717194199294505090825713114922003459801381371594150475880088561072299674644192712136257689014258932178319441708172698609517161304935540052385784928607109464731295696936332643200694985554063625443460933742287287556426855274083038882020083423044914298802784577916399970837287982340602625434941790143696161430336717645749484724418925898309878216121294717180472460099940591642784382411530693689079212130875488699267203848910951682939620634932748825335640674980310389901839787472231655972483180743057358996393144787817246372499649369577851322482638484524868838574661823626935256659638418319867279868356799817469655041741106763149533684962074109324960559899322782592199718668231908312607447799380568910808783913413256432392949573843430813289374962060151182768192692799463979152089591024546569693135524175411188061481760001306521651158443420520309478904416127307809275859305533361533345589926276813498989455929633694562976232783050934882552761376588921084483481066127066071484928859423783092154138918928169667563019777573869667338515949846968303295742685988415049234136535168407838534452512464933677988494987670382515962071283623269914145849974171652665697120532505983775952483613653809517009585290701483576213687925389034911371118349094709431489522058785043690156423714929049054057239992102609517181549874495003970787964999178990573463768612254972627169740263323531748168792116141979105400235176319648198488398906458144073594967937973716999625831423202409877465311597124836473128570956578673628940485104597928300534421239727137895011826823010993288872309896398213281744797179176209996862248338903033965342153535835313991598661536750604238038279236406767495167196953435310164282491636163478532861543023531872358919247702756862535369345401239370632632626031317581897281869574920238200564524236464876685574594250537697576191776535642216463580259697453749122331591250565974420134794937353074880376591867702714895210332019922927202271507794280961674493531770801351540796057265682434499641867077652900709247950360348007334442738617569278945392998397151347919810547152008299813625682717017825891764295103698722784646385318869086728230927766662168671172296927753694634968507355317494375016642221640042765274277759975444144467127316589196439158760014652328062622269811989875974664444594112747919060501861908326990599180003317193295321339502388906475958822551380636138710179235980384045043057625559732873255921972145628948602336939067668395751374363580140806673627533825340578514611502867253764431473614814449003212781839277222262428508406024359342622110778485503829680273009441241747416620107086042596105903857987647478700041200222967471278473467681637742007712737140547693272167124517979832058083126911538195097019936529676842233759572511564293935805287043430843747427429274774971730501451422248824100245675465834738256539886863937758135438267638395934541331887708363769521318863083884378814523412151765822552488271820455636023931763011871505927987212761061188848950449626531756838444795540166877651793909926480291159680911195736116751793255124575030403252793563939446275149946753718139756492557203452138883953847134270898432163039143635902376210764499929387135323320619412604080516467852800733461972607205997050817504036605162018087078170784078454269796266844666898707325788162240111696653994210375646261753116304513446834211987779621805898042316180182109211298613655141741149311270634595982018226041508486245635816395539401351879736488946650160326992457980523991518591950734913980033374364391385242062945710609712351289942782891399782083224510634102609990251319608272009980961882077126916383498945062392082736520653229188091536291613052973569438879421521483491321562988161922457626266624584457536059498576404935780909748202168336937219996853911998540091442614845470039315777346891315106123041575079421312887723208945984660043266815601138092037394936922665439224866742293038628529358387103792399023689742798482622394625449094969682282204671866874558890846145319356652259657630380612472429353360165201540125535231003287106279096731866207033027280582351545470510097050650208214801271883747541554688399322933065024856267407237297616092924273532011128015951777455007970512882833157250200155624895464756455895667793644679146090467068218470809443686793485053654875906222345311000464416676783685052069092276860311758764009054301834342246031514256500909590686208692126543542570225732645354071974017341216715043894238443025897424844272833714290645956816598191406950662832443067401578177303694938181991597486522436916202179622688541756136702812918899139334388942351478608759618978097582815688423218793744853255318202198838719806879801983783043618626756158113454353574544941813172145724256306093966621565360254358039995454692603270588260989246926290510670740180408748056139861939732242475040761832180620342077790987701750934681663548801544805836164799966692639635361388504204890107149887323078704043382331692413323771059898012802400441568174900340176823983870218692721950931483938694312198321132696364619297016208817657311672496224218922135262843461922891024877471638081061861134149539858890966650553292477105534682948771544302229021151692275976342736341454857824499335483534631042817826955614979853858726283056177582863499818171037866362642024092686057133852569032711519371190004911017654695428119906451486225184488930699204920011141660633638206193678719091619209395584287733954388324715295225577474952824941861731608867310357151971040428841786174189005706429446569035234574149757757063315646717402825787631488244847802149412169233145717109440623567573828568223200367945501840084318879518768571860149033758451254106415534080544897549566269940747485812123301029093439457963226379305351174670867007887137027657386051544671800602605145187101519422443517152064432346926903140470263053990107007985073975249155244606232982014558935602768738111498699143552009041418061185919542907722158276851411254629588365761737179768156708342900574801097994770846334611261131375882207908595719649026389036281759355438450978292923339144181668800987693742570391825819610493507969152863764632802827947399794345531252271542247726210287233090024394014148356752788508719926310918156193612125828279689092298698914790738742612720793356261079515702221024823417267936452522680717495234233042406022574178886334052780014699650507411112439419543846500165661744925833318377021898400799641977513648748250455494424507706822731723799297573522778562561859588786541845305037240207525809643829754004370501857382374534848322664449097917032273166051268605598249932713090381353704745427873631048552543036163958889467428673073752347045840100932122866933990423950738049985040591319733147497782925427278388427104871844885188870964816053000818933636250512737855465407097163097718827398825524963217093444276056085518434156412786149501143732931280690577335963251434024548489575782854145653523381002070722156850663963843208568609149871303824886066048124717967620906693972207179685061785206485381816744813724000609013871597223254255453763040208199985069467564427183897399550360730578669456809973687996414365897943005664682264123032711991988374720757882904844073488086235405227296375444953482588747287919005904856090234911690492405384508611346093970406951114653671516852728505955954650623905570865644036031682300959782813010271201335572755678639484364640814551940877715059465648538087070069736720950321681787795704342916746579733243129863477806974671605454227782541772753943581439279418648423459099328821081129469726348073179441385100119504444991051538393391226893403241271981004365407943196176195453903665552994849760754747953701257882629865668313950830897589105223238985870691682673660318002871822991194366614050222717204708404295486677709904158107342655170353617187686521184374520408203605710596110702641646308332545202651141830767289239728376856788458348790297553656862509724615812131911833410968100493945318982051142748899700923573134350461490323656237737281855654107281002376415067704267592150121785350795381250194076417228978106621733880351329678897197563591069935820064036436793327869103231074154271121591697208790491276242771688954795607202741405718515656753844779402613862321003802473101631905275107629998748003484969193684932789569661188848479535075596474646677138567281181795053444526351531021922910416650512273330319199564105646241510476237532608633550385952686096479162983097174764971995358936908929729515669569160153561914969389049849747477458299038187440211638406842905640099782983421370808156710352799222961969083794208241656061471556590877968854171846051030653389885928450591053298082592427400601951795716733163793836001810914864160773126277629873932474885594278181324052685104694230331502972713875844349811149829986653374259111337842531389142176058770112744161188875177285959801503977136614578172576795187402783830243231006830076076065905761072732161985467761039688915142608404518426769311983952647406310561448963064349649602704049263923192824721449884928062733281076152230373388253444571584580250768487633074224244525960910729096915029321970425253678935926693988823824415830536647046132583770980012009124923086617006603460955316319640515362785213422988774215465250790007701267925894060213907136499725457456439078053719956345401384219054506237208320444857173641883922824732478943194108847543445737480696598765559374158541602761769470342301207119775490373245656073346607880301438800386201564458764052412721948263669986308454926426768154552109122963941124148625043951603325518836238625971663297421721861092893539016373514125764082371288234646180139155216819647794455778348776721173466572975075002432385744042733393784591948855879026236726096427533165948408252146071826568747186143779766851756816598806743467460961271168578715890348355781955985804257815354764161775924800105561348344333345057653986590439644064977938806716901994760734798092898940766113509344352206810902466915662300879161396495125592688244645166624571650958951931607596929459930993523431031058245934055561172303832047877516989133229323284264569343722118897308313533542697463186710271690397422329465007022717644824284876311702465927899335551530215067882511550385793813852935332485916259049977320122012845211198173527313043266813888532004007104998455686812863578911986463622620829413005374964790617777552640222453800237502396352888450774787751635647331644506370333106920858581448765190319527263088523648869876540039891860784656646219549248569529533936360756350630391300077707823194545007563027406110249909678465763969597057991093895473972603378391193899992379268773617827926070054222985620745372781031883818963685266506268210797707877940071466209872341799342433215930404284371309388428605157932885739139036435511532342171293380099372820367524133867507093136687784923191540757112510696203583765657372055089752449569159183475220422757643222738025317237256477201617746450546216262903302892403443101703876187567873684790824466872715837129145894249706047476203266819731600746992234888036636305943386673371574156671087861388628198938063289637645811155543309675463474181539486412072762982555431670342002611080400698944423609468164817235441086985977222070632364162108922931179714594006263612186968814114319814416719777501807363332963798010851276464235815767762238946476568330695202011220399679561392683472144792439094230761525423857070920541691527504721508432690786653797335808627737509017355451410544226633329001498651059529576037700848272064615351838760543674147928115596807586739605326402726194927159355953957413769393608576236530116183134679656539021983502904219225806814753228555726621556823772509532308257089340112493590824218304323361700878573470927994167875123637933903919744392882527234565299295735591888376509769099779141830747484534306745293681394567158351267904738729935211774459048212503769685835559556846368526221752338575578066860243895321700194822457527101312529618571240241929109985957594562670165410235620867025800559905347882994875510268933087480258613086133265635409638255205497995126640460615452669791121117181037486650823108064487702345025693245703226939943799565991743156340930156386350958914938796809689709651564226433196275838951575264693176296238104191014784007151433685576575927965799532509293703213081265000107197055410853798044767354049208475119016274697528615913999895473992985454568836039753361921680140504930036699667264188814126790271735981673529491643856911737810217642714481522828920724219177239318742202160663279655299704808367765272625028056729247054651153146133252073390050914470960473710703497758103881304491068086221893065923261255234699482998147001431844411953457824181038920610603402951565748030292552395544911510154760799521423270300519683204313143350590562198686510930812156135734365021803801855294933534785826903421349697741205186127540785470411571583036198642125569881865655183680686471350036224718106205672747478626000626594803731104966825863143106667092066429278042220810598895788550868952539048788285397548110045847634838300037316522642430241777360282999455188929435275420394264825255279170308470632196564295577804041654811893181821502171734333815560615594854423187756783512840067975263605379581928742429210242295011442119403858860812294809378762396305010916428890617389195114176328848414746999472623610114567388615934055647846833737205679081997290469186805591539323056607142353881398603797593036037694800408184149310659182581413070333325428028840558142856956684686142188764301394104751421684027790415998905891224210118412788250148423286107854851484221553719260405581134316142510073006773215893025312618442727630503571246472978409294363536309493688649462435633760646805918137715297156043177517054599465787193128898268908062717759358909726494704541770070585501830354543763444038851939900493510678694380453216578735127435005495734449528911289723538797401744795783933443430286783803680641225859672551225047127368206113618235843750896740653858677344781312957902096234721859666906667186091338429734973611692640667598282224829768568131474904857382710437998542775391992307160938502855300377247410866313517696420462225488399744115178645840033785211395940731715454895997959123882181266766828007737855977779082912973862436269864126673847233922189881120093159117046513969835096429367495789826370453904412972992544431591757009115547520491398616515844697479304654684365497078479918828561631755525673383535345305219666248222045794982014139028975748133321651975892246305696585295430945876013037764894629927356255521046630632630150180411051405310600839871649199278978896895572908439755769103928257200110129779981712313612864405184600621359167485676567776775705706719209035209153336449592892806628257704378846539059688328732748474982898622779985989610945214978770327952084390197288295735948070555505355022546757084074357094646108977045837941686046443058404277601988490325473028158492479378972994307361044561020100872053220622323885605063959725069002202279965914086482023923175507290484700025604710855670154597248708091599221365528350605741337596964892230501507195633333304943511152169967689655483257653437379314622394552130465624913382789574415298231445413620659697233993060569350411006877011313335994319648391046168984143247603859786657862285373517081692129201926783114644566044273555491283058629551334479433157400035512826029948705133629056178215110018560007142708399367545379125323476310470882523452517800021069929654193957801444388055304818859535337795930794733835115608564192678370782416955748610380811865353485541857399991681570416132718420095983852706176946284246325894574000176139965110372884710696706294955975176069878442896949429685549143639922153511322741640703421358144943377352841538795849489518297730235486098091381709475660463467140667862355080924101044090681159327540454359555461993023717880376871342258349383348711682425057331174625798999145151049970811069458069972048221375623708418322543443866449503813361022050462653375427768842222278068254643467768497818489117019302201825753160066616431788296048055818759749942221795208028950631433772963659438314221971467834024210922264169377013131849040947613053309249432700047942091006712689993920573806187476034380116711463335384825722242790814477753115910974668210192985105670375621729140330995164689306600304233358660111830686873922573605155872905857241025605963320577967086713733241459699874358443001426065944327486675502027731420932318178012654661506140726185176062353174336158246748416239912590682505938954265126765086149035661350974888544987281093526761108567925559298277737856016398907352026070294751246077550903462047667542532773086664594444113956405247473624052511083904564317373610497864980530469885107505748743012904968732137239138631158071113383227003092811742122171790267023200274243053449636223194983874143371186593295605021092492953869670397422517145763582444587552103042064542955222937201287488387626797076074347225282324331684658063652035555274545655456266521171871052935139047897559808916952803147922174871981418942721718329891460906362537125535495010564535568705559340000154722662613750137624793631197723951933912894891320422464337078182677496672888759868694937427161501102797818227359921226443161224777098311115824016095133387262533378328027130036329828804701019511355817549168316698655043065508729071249547121819397524168770211149596699686215951097106327848530518571291958238827090327213524941641181305202674788712061554067640666525341568047354815151448379431602641057974054591532297866052115257992168113661117049539454621881664121877089708254039630535543639667114925197805929961379874321787530197710278735061946531282423955192629629172220621224950984797815492720202251234471051105573390673303342972986157940943159215685804256419724578745251209682582601191498282889812714875452084096918628477730215823270738840444511635206621633125197914333126867856818830502189794150929863266315799350379788928565143516683358805115708695671089718331504925669321709788555441737388423456172150751371016071637671006979527936170232477719979928368382215807109887533234192641969620718997815186067620754216012636296623675779612214836552985735647892873289661359940451703417031044671351839914280282952611777472521534389391015324906580827771803032650129282622012300912043337953727660673857738863179697917186977358764829547895188498176902822424424557478217335234994471615360377946818574830776300263876213822354050856401182940077747478148131701199148904718951059098683420631798871284907140828995417350609864802472177113089648323855751646526230807228810420288527630824085045048671188844829908349493648628846539349053047613533931154036664515323062018469765666161286383549251487087228852570970688126392500917383157528382883360291189856744582476622507982758993576686905798644235583352370362813841940814334413823010368070914529773603970941641652052611072236310514794301596786353263566366935854078856179827487622100721322686822573310757706305401582713423331349545483751756900110839282358939122727357304289681054394374201106775014315837641937189252962850869757821996900779591011720456177837715871024099265004794260176252153554828324791932676357217164640444064366530751993575782392446871325222697708907780178173793799302021131258326982806650645690303452216531815178067391590324241610235969407655799701418821064522428960019115505730120944113945824207664383937196945213029604778475389675280800068559943003151495969706421792066758572697332917406028334189662888175355173234583448420666316277482770156031508581576572592363801941503912329835521160372837779760307305669101658420468345926232845748236886492475013084350928627894284513810449264257285250217707518800747742947305770590926160208826734196223837138341040318467477210324329887560412868545338689999110428921145955746692537194404124500599017046424278369205503781271948611244491191941035848391425759259128401618032954606977804219850610307689761499457199520420730077245640917336702458944492534629482934432191113427919380961919943421150049804843383224283226520547445361220723367374854885022378293990491600352891521351370212230612356240691599721494603373411972686778958052835035629014644971998775919025010152309134750116098980467199870778835160933319386671953071796685877418322314391850493839713426323033834424718582681665467482440487593158261376146334772293269420754395792908005498188728678908989290672695536929389984927863012988398550985476733115604044538176319446058656654422684024804872430554558052830052545737334835723159802888116656967060114082034533251213862871391205442419939905432978652806192511771347687470297090313157008764158112944477231865054178261517424304310706770225313904427322990384021901225452181436008822775053423493625446827708988059196654745472815529292155852940113996668792651244712834586912503529503715618392709721297589784777909927916903089925994592251428894597416910048020768359427993137379306311346966167026040138087122409611136698170391339804078313083878363458082984044327963454757444700180884850160055198625178979152859859084498285359475424467580850425014979741116557297841427879690941757592710139913440253394222004906975209333798451735335035911675699384640838502666288620092164140126560661375353988306955674832378174604544064785160040067598513568094008322871267017072941042793327228561848492938655290442651014465610961683787010774923660146219074595128226901937283855621757672833068248197178298961150217151962932883311159352178111628324027122464196150833864735759267667034484487642613613199937278719742555502187244736008990968055456802252481555110039794776335075302354422228035670731444290128561750962428370118647277648677207731041632356569283986014564525740906116717434200225213638201002159503109194540909245753062706513924553010401888652724314025249701526944691135731399935937723365840989994366221587842498115283308937279806520703857209596903038024242308282603656425515141795736710220939430930751472154481382853488115654842629595339048325430740218201452794251480380350849274866750021353844376785201611625678232157272326275438372452114228848437649961652361240798881568849840159009184613670765656957212431385918913155509637309137298361974875858224770788412952692433849998969651763109359288499803011855328267751404477335392503356044051271855550162891201126625504618282035681503780733362725989009667793222151503922703656530276139320304409301038066644310042363049100171393531045996791509500160332792776170028149084656136450796430216777414512814396221276051755223482740495757904525502337403454435136626499645286768234914670647904159554203838365254301870742845798982454013736360985741248557227276600573607558624760289623424027996208775851189030096239588717573470942841302765695465095009344102231365362132598936277340218759009479865314863180313798511184470984742710375956226220764643822360775228647139915362985858464607312734801614069683113207020273851095347587334237202409202629208655126378192568693107566407011623238127813873896217749956364301233554814891627374635917731165733416746045526582847269896261283756203289022338050669365908488916146093666661878991259022964769759893681305838386346647239704390593379398307463533766335185042758781323302680146363633245801264082774948350510036545688115190956816849096251283642317288611424285110203804219440372252863444910230559979474696947752644028053115106886865733442298688183010039922923705786550118821111522798050729818614785771576631117142476444563713766778242273738001574914274001154632443729557352810169897128726879096176114355886079863377390998003327809552073477140529621394182084125997853740812437974582501792788366987074290036701698501045693447191488640813419999915416568481595668551982303984675375174759029201352553799958277249654987471792886752101663561707617253141232851782986159807451499680682414548871382725721135381350724849193822269314580105282962507506693757014664792419225950252299340063902190994828441091476548131722202317899837449663831051686950382309013862518392852077056948343582055523068439524908317074386320285134056488547885870340679884047335540499474560914530444371304536415170692144091038459328478664884282980039705043372804789497014917449805486411433641346819367564195212930788158186524873340798854813201637535073912382623100756590573346241218300429792031284014538798031669078254605237710190486683261152274249232425756411665400571027119809569942234328467701498037838529484732339907376338579389010914992959576640604412587487745538327172363956826807380904678419787028058522491236611626550573607375551057059512913261117054546841673127203405947846133356298534470447924709331005768505900606180642320151752272148280210794554356053330552295511201804703262926063478878293587621130013346036207360896034725160867446788010276057239669769893802190166604007296543038729778318909051763889766170199780416049009931159079579576919970941243541397531317382722465862892881941945054609752566424993506254919721572779298630883006958962722687366495419891956145971169125798739654317435433096493334859360592302891539092099121766584305380285711893833092045091479072292735084349591808889410442855843010247356503714223836641046508947893346383451248268488782855949897953338895301016580854268192317195516279891427316742158834607542826171318660217944935642837485970114130411169415652401603033144164928550910033031430882336855165115389754347367330811059172880040761429778625066722959722491823346243039399388154896228195249381912806975391900532258549043662585759133158975446751907658960872096510024202385132175617819225807150491887755962621185235589303187326955354305194717446061455998312040777944162274513568843577703235401688014649049518113142297308776166318859149389613040412969102064281831210724773033335601105272481019304349907949993346881031525171478488843784905333783481856825834283469942437708619164816408494179518760952973859279336427795662463663112355097010202539033101235133321457611677636551045088584364027263815116245652204332829151720029852684474842330749420482256326145997921056230252422458293997215279199173446365009184769974521429652998077441809567467211016957009253545102528758516390402856134510298025189397095368581896661520468038310603862590561577377754885496903723731010009648793728020757872105787426403301224033258557192597537602149819961335629807887474066842797955967326460345874628936944313777732576165449664253810385921458118865370084383448677724086862083903191783404789841896715274308370568698948197948856384632866097951770307192005807270511346701138786537081295504545102506063428099804874964847600111174978775231786669807272667857364426002420669014619806741742194640532631117662286287245690937793485156343880119197197550328627400472007257413935037784386930617179956877204485473759973062454100488733017860034474880791983553726487490044124666602828785537359771259821807296114276548592671700492755226567333749946982010745703613496934768661575972795491471597952833176670771505291071587738305251071526997807413318839776923136468065595136749783994603211994152446667842494913797146047484819364046028777300319756930950612657744163095071906518530199544532558448104075623471893752562519167216955653219304399208319360959819117835605547758634287951739983337235158224241608901846074174252525275468142516427386768980948844516371120618626774300076271992118006055552765278052314160463714606452618618148799532288709747237920265097759398262705237953250733830753839728542051550523238774369840167830415480909011818296772249515438587880929848365531878644382108446470426000780146792503250269453045719887737131517963056852999810880533966450642608570089156140232567027071907758620263588006779210890426239858118680108792427128058354464417085958906887998765733635832016079817831924971725178060811405755831030910246468638868764619801943593372662361177437716396570303474119466785001537124216123125449565542456918481596043127812125359666248925395834742919735149537791468333756355527067533548062905325749771908384262992008522729435595500669626471486064544370940473283060600515625981591768033144977445058728087566607546054349895465004956505607450282571674376482798022626074836713219110260526560615955128164945480780242214376396023353893050604662096188079469028368316888127944184074434906817208344063546623178568447802692594495387472728506571581767927431169225592832887501194956971395862921127554127111082373113909790186787357409518147158160265016777995988029231347893294412674034080990459493940747290076185719074869333447871433350303795586383513721181497568646120160661439390228220281747131262778376098563350682366053771325037516500249374728864406147202914358761047462137606811967029015359210422486278893804976442385451689378353987409732526630297653376018538867355059795859923623613618507198741181525935036857121062060178495846851184383113516426400452016374710429332973069148232632372903015926311460320872631480120874811996589627072949406354372158794769393198376955972672782367766385148210565678653065807937752734574815337723354760587008832955878847468427789856250521081460612963358056564095033805748921260940258559280908044978881667717824356795692178974631902644522074158622924137377968194418325310438845731201185767206036992336488659800083108445863903322611962526160854620365103179069877257569974586330334922270567328548918637131154109940691749839964557232678615980145109805805442477847263138158906363083332173157557045168881665220465852634463575683293261099910134037823159282462669055369485856433805637121932443070105622892254593605818525907982937482247032398554448593373166178374959572518072803832038226708397817153721464562688637994575307203398028803531697000418850761395539737343685505949585751932800907649197999109663276974184592605162201268123071185814583196445194418118590721944892880456509716753713385533108091710499831311958251602620455910774611265355536792949559044512049666123247783836503882910575161155395179430184881597452287386881341350800338473471764947352698064326124938047613122050762849285116277237981126476446678115767813151974026157446017535459026333544135799888350986527061627763897359420257531710904729070339620875811784888906735807973352029864319274422113908907809957909564355481177122515238095146472343968537440838022458442194018999738104341347893228261151249727904768473993802338655105941224532085194773872479349182079010445146559886180798263939227911331065714557678990634918065545391081397640658655737145809922114594027618431047458101854174481030067658066990501417333480326044538210407543935310622059212304145209868313678614045963170765874051200200872033615671574121286926836835295296978354893833775796663734958956502961862152055147036654293465465566019084050098005067205492572921924446451213933128048308385363056876192418357946909520245360210194203612674241294425140775735280442952872174460056521842889045816481445556390260927517103408918378301691466231470014796779171658535264487817227736310630770106763274616198199496821441213646729305318055977629878445569034939740864597993816364765635654037950481325734717893341022255598807538435095282323228051742767607786195676544132870471223893349474079816256405750484650258850759881841444143345752536907393404352803206835809483378898035557830722946162081976941413101105577748492491699628359193122238310165717334650703210318966289202242639812383528375424993810288489848024591943728634556579634821978711106726131483411078752802959641408913259507501852322367461247098786098762582882119828398852158419026233612591425002823322371917613981403663052914883364591789536227799582854924076618289625611210530965797200279213820008864761092216397990157740684430448620421643015938223220414018343926189288124854338223267986059339326101178456186008093045801292467959151775440886155385173169410769732073113165554920005995420474791603222060360061342540429352832673828441853082682308582185701741339403549807890882487084060879402584838814472554739356937174124334715303274148946734290191294404783952677590448717514484534159976116044794751574287817627324325553319078680546409085732224006569342022563319345365409473208403707516090535890842885177234930959229313001376491565099042871700181337160228854656061974211042940198958435580869163467866225464994045179104339826628153366966244181900171252736995611401083415770156225090277300027044838241614455397710615387358317701524024145428696835022363175711637054388519717157599877961248503144527906931681278314410146757929003048896023830063327230571667206139450371455813390186681702856984547952175170765195706790217324500018775522912244253724085172598747958912738781833082936444018565948490606049157500064492131849581148633751499646726264561032211468333067132659671797627881215780007508703926118270980251507655663268816247920190108083476378848678592130728499597044013186910809394734146415448552181436701518459025445159663546699677189680383641018847854130774857756858771922271643476574719659038003758069915138156573375688705369253308691579889203844735573374676300244147589140713924616818423436254740132786125756168282447567814051935064956007309639601541248775237696845194202298791122277717767062008879481854539788261103921315814032450816192594813710081232929857108151566420586080575934202174690106633189335974076584233902362007166754196427514872242091839128869724092421158411412825607236059254389070808259836120241917164554542180149489198027899549774374712779525924503445276498041636175099858557347901136961218305524264842896510278936900493204693381666768457134002906206816627544379746892203731780194202120883565077033875341598495451553061983653424758766949555242022307004335788893836590511300283061314329505339279114763072259185484746188759297389285290991630373494263443798231283443094833494937537552613008967995786633658921275791683713483970763048572819011802146597477926714362946339154555724336586877181364031971517089045329225709453035821868260235260468917382085139624064745197946752887814900743381851666655679883223818416896942959661062486742039587735769929202222017785785404974895637300613878393295589441688558100157249242661203737990467793683315759119185917700713494105009658658238274807854314957041664741791309736003462718950723478519193371244190428081852543962948226886624875952190336114208669249600818583968850314019995286314982629720544268392548431685477463774181386712058090508260071427387854204991054386523672213165049521710431475802637889788849888773042865493191696782689845978028820637842640442656476498885218339774568557577949292256324870460043502113540455000370654095822703897239358298156117959471719512792250458965938184240612968461193478427124490546873854092579862906905497849697254937272859804102430545146237559226138141000323092508674274359400766856057972436055199743167008761782347339571319105992202886261750265800547582575730275739342554848822485256394694431843942236040549001104327245682743276187142602006699418895233223545626006369600559758063249867335073242427987088673152126818608972216385489522099494992708484618944225021506242041847821633771935309089668251146290165281249904783480379912230559879313782361595027762035418728421865250255926973320499288328393334707446089208127350799126108611607879317405281404160338587279536593454657086158870126198499125039666574626753525189339798292096577879365296817621975825341582817585732319251780830744870417842699723454811601977168927521211739267139146964044293783613341372272801310921987508592479727298313544798968606285424021597956701053199905612224977863382702420529141614112011233217261258406838250268635334521135070982648495271094943291613502457075414955380891192774540567317823078757027752989106566722603132520785799973060307139548269414159807489789202586155511948662587339292817739636669602067555166718020451021564712757422479495073268709012616506503635798520205326534906457735660158939939687491859592459839750260876758703811596966057564264529193241857976709078355287342953455157617501002163952957761237000473279369700610687718081845085795435741820196849849459757681845379082711552411844440733061020412187975728651125650328196780018084522624504196713498748415419802697204503026694093693919828907749317937778879117366761727375470529184181150166982780819439946647931735775034786164642189494989003179481335130163069614005277134011688864787292903791340487653621564115112915504142727422592087535179304470315098475438586909476277503735291325904773440308081913169776647008059803413132999580683595686467145218925160298128553564487455586495071734124658633906195460697887233976202596825055703395365848466901916770031267189598705760058796423606292886608137011907715929688993606889548826491859155260475315343946094060659105281234621607573386943196923336354027538432028752685816927186268385980502945624358512412336261973148999907039410373789448588957618699589606400113646392114070120527563302097466486609378874541291645919149036052112063342700002365756877819257909725925185976486085479596950461516577442548117798525917692956052145235393153627015942112295252247572608980036497370443747834521084093476475325026817426885718193576421320230844061651548708229298297702062875483501538921596547832419378390461510187909336733644941121348776203562495198040226656785943382890405815925872379938623163684508704291920071626313977277247308639414582263025079620633085126466370991140911401294840975323374664668278837504794261995945769010586733730304457341485698075512546324195695773356124695224950780585213172617976563371225825388815860731192513028465593869959784920716548466722486132827173357726803375218074612027807171071377654284430384305483276673006791517750798773938740828674250995026079696499704131227745360175238014384216009241442547158993176279488244110447271170705899591820651500211706854623843830620934665724596713695845896364333744027480953669051075512826911635782922722343240200772982436931512037980513410493070821620716413898296782415919557992318590088324935972813358449877324603273773495293660309057246234262817214024639532304242723630543935857147762753418799206036423922367598903463766078401938030891391618895019198477778071004413773237015650520899035550207911067674854510446856587304570441566120789403216304740222306971186100589618730779334137950923648410352038870358275741254736798391789411685671456325942070357096461744565937318657080009080147496682737180548941631738160884043122815955135634782674360468082969902656501400017457419847111505710906597334161978758344836105802090338978039868094212459853821705484610515032032005194511499199874374100836082109347344641396143864911768772638396352917254461322631569895863055267160741796769796187296601427837458284625001356149254147443919356351235630140509336938595901635862129676447268854113321975100367032665226373505114035720634744970391462391058030354700027855946289719524546252748157612344865970010002472405567993637740044758770367067760478920132983630646286271640881541331295963925500416610160670989266424620190756526781264068862782375900784489784244681141248822562420290722980264432035526487008997948416055500455094572134477834665498790197383095979499114312626967534659860540119743171173946892891676238145523173846407523730100975386441513303937143910219886537752145713269819034695880335974966547182902037455280082531999930700988506680327220708101872681508529565409324284481442011777542221811494146257436263109353805228454459884919516048217660039120307977674611897683792574013942172165820269799796805230941014788969806332505657971506994197945617939398790787651719861788218018435625580583692563289826142627511169206699138004338089943194514855562289722282576826588394457251281327051769074252231338574159778939391865002898756061631037562737269439451575551285993600135941867560115713714014877968925024586916455242937398933212346015268809224910392616521458526979680555795933119378094807853659892254473923698051488705445646636232690524210240228861402224255599405490102093833982018385766389918287006380809179060245343412274953070207441373034431812894800684415148610147819735018671989089301269147736218808682212053633400551523427129624746672003119369396928602664808908589704201294227176074112438456208230785212450364915192630363690849348302825436661845011749146914926937401150124428636984959503968827478867292812616920972970268156670214728838433693634743379396276395030039250820644172979400237953897357655487362974180183998016069292002310007080005613503984451401466397558676709393916434003101440057849577179359417954342475491607966485925708772577750896195377761910446604790459565954451012966732041605440422430637789014916565201768319722462069521019604460953861993064784509092273108233361255700240194278101914559616172222082298282490321343681009273457269352776025406432002300504299586604205213200985565470124018291744685400966015821642792388495333849445068976105634081830279364905022640030170038131772003629661118913366495523360906993463275536101504751225821219382959574511586356009732450128676510524967809242399161260058806156896901115961034733840749898602006174365393134869279804159423291112284471015314937874967233016997052202585993490097671352677487128022164142937407322881112076659586874587777272706747692807279146683197347799933890253474360169558879309016136253138139629228778347689307854606939617887673589088885888486328477056666560048903979302938690197447781990755761948444470913611241980743699622823327589902651194765931059595435568379360661739094971155301912572790349817155536622419935998579014998801303543783443665294738078948607116278626291181304919453884895213187630434951633750964096206978251623530904941210263912382321906935330010667810474717026271881619108385810237555637032460210019364814294898433678273242885774833798531351431861733134473792064265704091187316250486454980233213803440736495142064043284584897282024898122295988666346119759394484584450460925811874294354777961317054077459510716454837880865963794641626040517576549399273652996474774493388406052333559065047679098156460842658161282922538226867240237758667136387129854214805636223226473201865245491698691367340692125236329069459210495649103022939440694955084649469830384471700519305246467334484802155704018671789215222816272351339708808744907805212086093643308264773763168844192762094521503347484451754294399859242434343578799858608690366394960666533828030327844694148984533772504649958998636670104669018393179069969963686270479730127501427285842419781851243542657860830986584107204821948523444734275401400857492044417124160727950409359556323233380166968749342286133565055638149206734778562929293299781936160255262647635118433605620177874493274678131580021740964933698996914850938487759711230371461728125550640341813682867059238815046294244383041802581298782802029478452383844679283527233945347840874846666681445784932830905930817015153668641013851830361150394737524848382544979540177013397603606147437604541205819590741037944570008218555885640834647477271979352433827534450683579693092647287604549062401983786196005081878590978612421193737977538454410072401256557901760706491571481007213427218771623808759364433769830190009851059398513000703966089063515794612682724088018560569528985444532222264193315916089527058448674102540090153617056285766054955444864404945818815802033579806206052054056683924114952682280459228149235771604539705011391674021696042276484423934807274072256756476107608823651031750588430049543920629743475270120742137160875417478088218452864958248361799133092524247929052515976579239217765568121295830273363019970284750239895154022217634749587045270591150195529666234757000373869497416212811431261046726583837234606096982301260636031309211851629859188980496415494945526742827866820523384437685590003789946513368102843063615796474744213040930764591125241228243081465804897156509946079381471551421382779549945878581224326343299788261220334660718025079057400163700447121323641050835340303066129098641735360105500096711626485596361872040403972764796354977156383724477531441971321174935566077681640207967497058544492038935591260125716978090498901352078442566230503044308297703628305222363918679332923472559900108083831888667606273215018350773009399279101898933090684948069550827538501051492188242115997345617277739213344504387775955981654415015812471439906018937819007540189185340062812639039833845526033796561476536441468470688449858334969741391902097285776072321501989890822242252322405018481434417126092486533848508177431339629332016711376753514695943963824673401046494940524716805406232530183812206258501774136979057731411388462758177956581660402924251284349747438557295516103813175187933225497391279391123462827342969220186609043251162720947005823443583709951442040536444206166309622279397283894478749158765746734521926300535037944950517199433201693224378252207261812658442761170913965345138985456871548058822856673678145528963783808643995503422986421568163594572205925216074725670856176080309349142665759559912327425424214477238590289609016335664998688413858528026964090264801933996084592845017578557255716247328448208982043345465408478275477207258271036261078467954557750667173784129409785682636046761463617689825548662084083732492296252900872444196205904653227364862588033351636988146340210384640821470624411741574780941358947788484757811897240453176071594805410881167646147921900363518392548699516525596976292579225287287453765847213423077704510095415901590875819757321420747076746231759034455629788556384317775993061072341757093141560175851960300208628737444885187149849023886693299406562864355594440322003264380069184988864775623294677775118215454021164727315702723984723050738450771106915301694919132915994025722584843045302909091012515105673602851404470121685916146231496273396064877300164536800981196321922675855333576571074255604229931548541508966746486859460482381122296236375275154977446080282960535177116683815749290843178183191879363473059873752892833152208552619473114513591681419309607359845858961189034903728931085454109470640015848311202049330943292928552520965558801010834483208557552929403585510881053701483936780784116373157769122076744956188785167703974581404383794446256039584349780073393485712395880678488214289503703223031115615736146421566463215265364401700866414678951559128493288606517225881389976280543512757773826777719258490591326536064483405487475467720319115388286082765069656062477584288428681551666207486614025112491841302451783289336777297917887286607703063714103547023013527908915528239749148082741105638272738983730704281311628271404112941267790307748392469702030506112580223378254464270987106193838550175090059286284696695407839693386994305740006117040233750006561675552281181048509153665776711079311906653331613396304801324488249959052032547037858363231661784904785161780552345967915370002867313083679591789106827086249345800784131057183376669198232334676852414230914583174128629216816327782506395289279381762841003102242471655360574719230143596220032039816729157673194528058893355542843823641072094642318403758173914629196641193935510140168744952422532477274098682730413412859089252894965835024801100216126425086058763667402940959919428266650549658794356161257148371111696975506586292871032148528952512728795306897180241055897775951017174695303530327191145345266205093219148534341525087620481857974637762117968302549512151660306591900606861838542571613030790627719406345808688369862248383904601654760967752204812227528434294453228235026303775462541552986552900541711384041037950785246189710347106065705230272597985572181600216070683045150883196119461175622209412436932657213782540197554610968927715764797318628011661913290168748043152866297140644024949135757952977271391293783862608783176806839484727060320551518928587895334438788949206804748856614260795009174369035418750830024938486329287571169154358145787572851584601333329268813511385069066383784440510772016852512080393216333804142688434775372077527437423998427154854682063624376257730116922576234243616663180328832766100650558607083271792504334430057162913098493519578191712474445046205484650216734658132439991762213415956527173844463847539141947180976420423364295596690511762068611624707499924055840944996084283215466996773156841902747068275768572656970194309805175374851878857601710861119402514438389499982635988420904429432773345770250426497319453439109851526300360513749815039462179548775448543694221797752427256513041864470193274290108140139046627220495023389859849193143421178548203526733145963643697551466424130277727264370616393254598652889237995383027528285951580648676375908659046895162806321164763047159557649151975213667399046686032911743401784711766344651515358035075916037872999224175201064100753833255408441824772068611277415564779448076601435399454188693412732765895669635629269407113696282745019666498220907208600004401647657876694300897881595988247216190042195012557979046649786711450585512720418016320577032526841276919807674082142617203176935263848447281858178782760934452762932426797491783757990024680847719042831831308769014475300803934274663995521428061835987915970479539594269701661926520917179329905659487264299423574674833645842644478971462098049115959947972434087310642641373351180782203699840719659114870897363630030403737625769266187360755829153351589555442101678078360015756367984864778838389348890397751334431808824624084208579176958834114070749300820620576838795248701714996594045382213792734635707824447695709726661009717859741649333022026824249462828678939108189107149776821570915603212110683429310996406325291313063952461309014966472019309556534585208752121985574820349048487030508854599552903043145820978519821129374917970931219001591129339981616495102391213607053656494456343266868664165631221075613337513234398658585551197804290551220192253189548334823191995181450169129803186748532964293956484450653540179147389659680940084922741029535914061484422987263501193040211770898462322840772496045303724890068187040310560857067441794850254808509669982938341078953860819221262841541305676123398686853125098777888375844683915701699254362733028606924200803105243623287700366319004829450194178490754996352487700548489578471042224671248424940556117747260634853431640116940130747195405191971469544411330861598444155980248660401736615783380360979938150135025227936484748812891441672904597795438057240250147181271077471503308278729184212632281791143075133121587563977524022652618624683134476974607980612539543544138353524883640658566230567189439502243141401410125019434672784068015906674190881565233923460571482136873195584292306819170842383899554186189789544194501684205395230687101677077283946702210847719770013250258019878179305699073837420406984531545673557804600791054899440949927342159811109677204913275542728023834315584648966815426560069004095552034665024446373390324931152120328674616909306233387716522361992226884644587603519525987140332681255172193827805167363100392226326252412210111314095126013447305802612149992318917182954893916024374744670598300515536352649840348873681042785381738469858846032311091580829521406538691170160160567347053731504196412956961390142393691703384399743052992117604147005740104252683232830339756879421154345625249825008101243002536975213003866960860352515164938842504235113465189671286333282053352036573227558328121032743317248889190179450394930413615023357387639064687952420661664552069713387000787854967582477949737534937472491084793752606691448117508676974161887147834176315854382825347557448490830255584436766788001115684428373315111908822705128416465258699486028413502482055011105764073941391403895822813309320418948017864993301953276901705762136905557374601019821981764304324575067891830594904762898588018449494613744302375649450971219732028399336145679764640346613270547119081038608458151175210695792478063919312459974364121939158349980804655326563505038580064853826650748742192286615918412630546005931367341016100418292394482804234824887737995859043106789919113417681100033709655791180197230168791584093791194025480384343625514808783197644114382912161848642380327274362679685287697117189904601196198753869071244576055606341240923632501859196648386880511628647946522211244228862881624724611241944571942733572387960704465360442271865337868200777192921913427484005799113289560934551640188458638946293563565603074014146524349258608232266941183105856261094192942965346824529046209886051071646605016695402217828606899011845781848921836677611668481880196810714594511732800080287208433941181322245849664789696461926082438481871632304088080357524022698614537544033441013655066216219535929186500956515989593790054206244253083947629572665614319800600967486926061435133809138967599525273001308062241232785975181086196784490157474657911398051935683771886859034965720165737595373291765397292453397410571434607249477669678572885854717349081594184914172836958054089303743616676509076286441030075523058946974934633826027628853435392305962822822509898091087303356540624030524674483887407163918691870601454596835069757090202961363263262725720615838461842153311965751970767982641473127195610437323989450474387596423165777881975836711954491337136162994102145602656397300712559602796278487587147477125466521681989998265021762673707433821378980673056740604657026580573032922356984109077417427523424241434792145314579192285457978437084977251250146769154291465969569601653251148577613736126852497817442537456993514094244678395915882606317325835765190705209523290251140301975561714429128367833145994534309827624477705753824345400958706213489920709631135660578971932995748451982885655977895483579686944608778472791443860874590172769238908167127852322607366026050358425875694799933533836288721495995754631708412321579692576161888905414171342894441402677363989189118704062177436302342259113630446201929956102873112566664215220748422419468138253710254954634580057929697049204872529685973740390823284483299094153403780394829492620660082901034997690736328628873950090625192466454381386981351529599971073270824477890253531379158686368668990976098584039910748316429747848652715163513425675914214792187504644051485673661863840321425000112746391614448131741281623289554242830929492174766231175231812244210222562172420009357511411799776706892990876233187119597202124693069899621356816692722025902168988074581415725338210677578270316860940305890358972309455270319181951307853453381226000666650902777638060753432607854046567634568345361760409413311721164058441784090655684967214465175215032051670974082871820475470181191963543944435916876358769973104413755654464983970317565935247693050069853780772878476377425013488460550308957980429448834445312993668402042573932623510020231851594511117022186590442241873903313038529284350588956608408121917282112000634089918820453905732791130415681590474435779660778138611834226042646856307229583508566393188410965184894383009261121979956744882873141170205169105363884381666363333690373827357259787606570058213645734992977141214505140189655168427427743725044427277607870911580390616694723722829993256259530214521382444302611926738781927897013532806439064293639757201320666687691321500265589317735984047047957694123690091350326412060685145476861210791395631982973544535192987195054209224426266068469464962485881646444320773676295166408483755565359955405106982641596855447961460710928391031415904505141088296010016818579313046326380340014367128336405342520212501220103584523215979068408263976188600653922101606145285455431166396170876875975069518840883740560296726898369281025388802310027190590003594482781058960856290392675645604511803455953242790225224646797248844877466197054485526409653698239892533542526600962424004435111648542768004774776677919656679123691430419746513997763775397005789462410259705230305654070537992532364984700284869347493201503268076795687985788158080219030995863027639614145943035304231647517453426391545424911455679490650091348677997151754590127561483170511553089985489996130607860710707705240786130623976529017337197829772382690765900505883957389567475609652560464350918676338468163157723877951075723681292529585519417718095054953689099623842754270647566424766248276980686929945153534394743568865996248356384580301134752467892108733978829713120334177522934270210149424364763036908413953550660435927910391379336802587964158791005303796801266081256330060267710538896194765454478725561203617704244884155693904270900438003167257824148154736638640593466216307383109413675465650249524315948326911309828578440985244904276034580429605064542241953512740640583596378944477772781406252916242160576156752250211713509872894574611438555421298750427808073886543187350740641375294203719483782395586158448027478629766683404878883415133373082954502555074841327611868173888057024325767417324055754207529715441326738561260065878818403806980000165414607177372562691466382825834919268903068820733468334039792195297006237891056889372262369727774462295769782051995808825256638622182953256089478784842008093485898059350791263004369686425710263639219290454055663955214420512482984126004231708552369641659916422159359687752636229364375721172761208043528256219842158175322301639980105146317929443533927196603589811114941734233955244194096072159482126686119990075926953182247770235532585095893666466730510838767343408862829766770601716261535486198559014170680770158768558206708062409430468164255480193999499835435557841740961201847526790710091565522946660266676340058383180075379775386049907567982414471124391328430536131969208610118444878339659368780843521742628111502693160862855756774072497610771009045254794247064834237071395620964587907211223154172266429837427143752523014110675113810088308422666861625666785397112714105087646076086120406857763038687446849339727916542078231444490785575094310866792354003611252999657661754335067080506331971295945193115586804715352271543819705198254447540430681586158507521216881796378665735471068605237367841402333365976161262711195936539732377973297416921067810425191985232571376502311280845330297989310224852283467762151187870977245357192563913099396892217571320116242869598980389758109104144022523142628017565612901185544968804121688915763147112799821239331493170050901712563879702177368360120615704818466144396744992662302972291290164305818355102136962167669538756726866009636095057601163522624608444148283877325688001528972231626081263042385744297871528102154495360821822625331154363666040124429730586661817858268150952721597731075739398240597767874388163565642977038723203207197593415024506341999392991333923765165934843282642123469040261549387433290435824024447595439609020639373632639596924774982738318046925294343918703485805085039616062490537298053467194114551479250199744531423727176420064326576976387928022431303315883903511937064623026452300327764754161263835089726985105021802125988699684429771296905135161417955174634454524074248213893889496786907293355258878875439545162177692014759048970669240007862665523017959056219525127907554325742583252081176546194287455205927746335407673770542917171264916264740300805343940926502303145973884433679418272607215934998820945687609337356762981634429470351745939320662321869123048576741080456616769580462246116620184834282055128693350813643435396685206251652538336298036617709842338459853878286467963337620627799992667347584319285882791373340874084929923759077693839703572431441003735729254824797417109033453286308683400645071178580909908074536063382901014593895027137958114173269341940333898533199293061635050991176581797602982665111344879162896754559327427633400306031590524953799085750773127723848545595683423684165296077620199726702134691914616711447300981293260183762894764593635598287386968464338052652158711691549089173615477046014301830889672655182656053029237232111264856330776379414674978245205129886828311364648687302407358614072714794884620389701147169116217996811775757173353714328842866878840781457203166651674986815402010662993359289402136138169627400862378513409464033103645442572752071851819009444509622213982913426180125743293745320508689517935146535269194582498806236399566214010361785863880269072254882901548205576764535887227563310523855441191295559705005821696411256949457555344357140976832996610331841827898904747082690192283218444246281158698309299183136379075224387032642631416650276013058086465017579561034352652739115299099161355871849114899045231280638253801803874709318611479156759575820533693765416457120379165742902448950704522590559926584327232291479642073050145370062015823490534218907410810035096121731039430361404194794316196773463914061605859450859234420310316229698084889715599525682704876331563405762602912906640782935852005418223168373258854030562191127150363398111342386672799921589515107657726231569078585106545610753222216876360115867417093479390936193835379981969893496600893600035164301076735326991735071966074521310608934401140741161500839324977668866470582029299160123730552952886403092312805535318205216962619532940834973437623542459209697329857515247485960611171847169293706864172631786361861332372482060904250432067189140656026089674350431181062753511387051158398610347729719843612339885881356695313203103168892089585606059090069679059821075179939446634651211155031345362360281380376468235441464219656267851364921296370861869816293351136072510661380016800891829418154882289536969519130494154521876949955003686832827662372091319999515055765813940155526648225930362491061314096177303326809521739020752957772118876335883204941078650969840385646506890986916380076348799504436292209445158646572985817642323814826474183770865305613780297973961972754301385201817932522728170257846447250557292596596198094862915755200229366232649715634595581356267148952931045804424097318666362316553482039456126229544765879802973641393252265455663915888533858819250932030366115528909556044952985221045303642394286323148022046745251762525047217482944162940528945864638361352638858779860522322185538426120353917883616116398736330721969437710230664731823832787659700906524656541289786011991758427423309752762370948684029866734167110598530386107079256083742672693548741744718261834342649013699937199477565175279760744828192632965205090320958654354616042492208524734987244714959310468452156575670262158143001621836122624884377914501744212848787150431722153107308989617535181845938859046020072834121175584741662093914703441118350401697002690271119626454451939141807627328066556210710539519788582257946072687091124819147614457238264921311441001892199777810224105877835967223102678775856646742375732706754969010116062310035847020864010505432862128218867836507955083499885807746439334404188627254247635265632167175611505069476312156461211185546703738430830042262100403253319001279550474325331785702050379546358303292732788783974660186377159704699520571127710486013042568138286234544198722194251125797095376705483353880800576513543819104363644842645977087887648078010318260382004131256369691748016790215119923422323978338174738713723136118350522879973866053007501903454559846329437814060344620820830086584260570479871364846697559596731513390363699033343026973553028457290989799947657261344827725007378713114357300653148101060604035518711703284065519167567564607599840376991855735696028634366017155340646225225846911010483760884830337555163539957610339532981882368528239636451070736090164096793311119181674675109056538869378071505332640505426362395480452724835386275595982297475774510879368024814638850714398586524374322856079592247173035842352437259866305705029571927013535101805629647302458810989327283855330567761154113462107933377499036258001787541344018289828967342936687083079931615991053034697362416735442556600404158362908669599358374433286141444204834849577879086736921472500421511403782800636253694428232496361344756960931223469858232158612222473919109217070120121455990767221131080753071340065620411369147285592408556612491978977519253085714996474676352758075223997800735501659008557185071199848427799173943014252087771211511697995682379398268746723059604519625999505811510001908644821159516234154533642763509450843779247004039667722975523480010489170340941500883985885103930283231082828529616371987053286026947296778594281964622498697749816593871157535039871147975217377092239468884238995411790577013851930775173424822950728559502875479550030563142317956493002899492511203356542882590986789082607748417188534348166172256202994106031783679168133989547828033410273548132947908612362809965066213039553205885728081410110352825759310806545153684532905024847006304913392177724535214851529647251179455565530562290075373579028169013384723125930766295523699607356948537337528300735661931887981626796455580719933473893259494014630747342414885060724727559630231949236708534769298008589881923719477370513382695583982689928806881335681923420279402979004466985795708958803740914027018860929116050303528574012489062435203886623576510772897627136006328874705968001535749374182174374312055255615766772362200366524712202036660833146643046758703660386441335066633584797208439225355061314522316953319999425506593769938812351011530156941252051071569195427734798806683675350080649203878398696447779272463488779205925138656411127095092948169512044903869384195694420167883894066734442442281075605472692488073421825102914235331086761405948020790091441083183330624614646430804576582235990232912989823195493374539479597054318920342296714000376464395596847286652157970890175865288088743631383034956355401692689591159292574084761047282531399751293617441481591975170914315002567671275602304978777622719590967829348166069599671630356533949803252735285826874346803861392240741203879720665680444441292324156447193543293442717586216267749808464999009299327425469453278292815392701419235289544205575188510402576124418383713997638354065523148677261263310925591749928882770285873024690391922305973370892870856529080985878046009105359856182694944460693040730474755847158208199952595833538640895371028998608389785476983029026542154361182978727935750461457123429051956012107424073364962275492373774030252632631274346233839102083424638713077477271332099637360814197244272476017256677732935729339679228326297925019345007392322460010178335129773904459492641046445568535506830487029322410028783509902847737639421884955583714914863328034518298993542029036780047411086741335210805085421229885921407451161018021420460518143625004644721519965648245622934100660528646280334587614535681469264359381858644405679964237315488067047256509146430293182885733795486475165405735461259911672695599785774547565916690043144130599252306708532031274138863812896321600688125851735865941156826070737284463652416090185295986411328480618248027634024288162826696684313421056471849426455637774576229910961645456717289760905188326866143141946457485327611390580630202836877798429881313869404435613462741807298193946423303667501639375683183335370947251596087596058494971038042707815211598542488528846874806578585911872351918829793451026551236273026031473968905473090617813222803782828895476449517897768467502167978406435442922899486782418322044186808732398441894832372862712621349801261006351420983654852698491780458945762498696905888388470678469304889477133027311083890356138046891974004055494052738412376732653014072287909246304472042244771139483007795209894616815756558000371362656319872358933690568791055738379579952661259661173284029305725872367395197898378924127980642719063718553555475990101352425313185380910987476256629898435820095632746960735491525659663077804628786598953531612247749629904296900852890839485766088594431050012167049655593574310738172500300308476299292628975841097482184198008409363739983639707810389588104690887077025367174440020879453028385173304925552264033412937346653246366066719680599176373145380486122581286691155062819423350639671190876937377604987847325795075980291341335525978694808783492229256148481893908539617577082079023175593631182376469252860943373456923813336177974809292369767575926855302700339925468143701001108966399886719432100293616347015957791049197555516489155206601661146828474623174336752045472606419958741210443774383337402938344846955906777854605843411947087882454274305308328394697502694989724590600664009092136793608235530650459252970951139615349252273178513875876935042590179524206693968995821423958064950472180426426671278038216180597420763395575970422566020759267606937379147107274773424749609029502997721712834824055925104249691673922520344424406087616581171209585275883491451420156457969389190693133148629871893862280976768320994135079955920623437941920061037245015878791154062292531741616485063843634324918772096685037494445424440669912841234959309784382984039883097429780231126677918791469704888055038216911072339170398219956439205601200108984528487019559365298727025624826569880644119799381278163368004916250842969442645639481786904032385719445798179112614060609702132787321504256068869992415134836897699836676091226987743095714805195413847521452799242230738856633260244102936710441964127286497044602496820119651442718016592022600282903788078921165484349019627220642636441871963376042533476498617174745299194272009151118391706279167177477045900060464357578325477539614347056526865909741356721082152984470024474743266081223382862640065718477621305522285968194107368052838471922706903569483562544978269097960056398643007067004547131435984772101516422203066967066634970004333781962296772798536671160646651883751179041623410905421987754662097910922458463283613520716152916242196089119296118329732923717203933023747013490702547810730929912353008076279814787081517841754169407000208334198933658700901303270768979004001144090781434151620423040647356623672781823712201224282769467810427723663352743335707091853107000405337973448862200730750385218362789204034312185760237972867360133836633119262501930131013566033910073331108952488453104551170627562942102313203989065404498585407068180145403147294126841409069949326568248655595708753215738444388693169042568208853256265427866887554031228524882953284411745728843355713096131691127772166138306348348104391759125955039859106259598623438553484120710659661809601451784249957939062189562592327734197819151466326629752390959117537306214188229361438715681422513347463990837944198257599603125798792328512430615227489627197075987530527839697027729992529494603550205360911659204030049311717159752893388606994328137954576059843721817705653794588387657581489551176380309383156762535699629553988694490253966291326416896016723662063755992923830126822630527833340459842262427294928712429995273650095533124488109906027425207801405805203251401014135163476209462510586223971580714476432907219719702288667080271184651981222063553543222922424513908000293494524804052965347210768427366052215178682914685961343037536725022065897976840955071003310353171443109165512182528165059026344398942657400997188387364589174187541999619700329235786522982391464956108327159535828980392782144343421948936021070167718986624732258094824073466197375186169905834014065769896528866947208743311934988915745082088385056922252798320336890575113342885093299590476522551372875959094362536283351521871148394997433794173908220265275342134647224149869247522166587360808259268847878795422568105967080946775229866405215123887154531240285535097874050527554975705030169195313808322035095470010813406785795262850089957299562834122119973215767728396170135817952255781770284201400648521380407896357859593327612365263739996902802721599775396204047690969900256263065675664459127471339979324769918512537842290469197437731965462183467447948417320145366883717408319368571222671699695943984636827109780444414129472165380483115938728050479562288435967803417523715740179259008312064710632298176436707209843787529461809216229775131141375748258310109078520968756849855826123372330199273970056032114384984057667460407724785709898516421367454134027522190829398927068979361725716300053027646708678570740385055336658960168113603165726418368998266502745678822468324878423036525884408799452705078187153829891868531512415085241899321343315933473569144612121160748073072399991819635334593838427056525425464156453332024833925506723850632120644080238562202638760349877064698809656787579706119237105187192466752640276834839652678290538276997354520326112738814994914105925703390998982385334162091688389575192076980044635747129657275893562446265564500216962461124006814666301677708667114357456866473312122151823896516166282920941856028943438527191799970789180873920742324875793892926918935065062346671609681609600522685206813758543176590464488389384976983512361051335513034285605242888757307851757396053773676343951196775395596576757646145305538338087252999063870836617874207994167706384497273990867792994763187625501688587344583753693804979093086349126182577892803945719970811716994214886202112590226498915011805319792092511095848926330688732630975844407488088152142894912463297685471977834233793944781486346511875189949885127533230984817580575775737270815493159735544820061318465436737309861655859632848826084025214866186851236963022703304608406041649989196054080412319141740063371422766592405618119299199088171861385086662791190126168955497996327899674542804816188666541628075591101630853541552715542813423361851037122643428525699454611854850534269520044319236243907282523857960719130439745642106802305198502975570371419091518384022275547848538334394418964031773273504470777978836537368352061266310718133592590870084534247036772491272958552933954535727931377466602492830949389954968007539858117564585252596293488321055878450520369948134220593969313591370129932544992421777641942921539565247140264421246712027820232728945930132112843356521901767850337830495266240855768743709947711641601836361482169144612039493102787135937912316683011854111510987910753352861747846707412029104689258774282943633916789165916827614427426393556269761065810892846590185283848886975532713340855740676077166363152926513680786404789765083165990083742485126103716530498611263298336204848444498830717086483009892743131074575343040799149068309317379652614021168290733575100500306247524876260440733939244047648920016185671121039207446692854893644017310766586067711785450534743466742218207475781664257470419334690568155987240951298718114089588310296507665111440980971506615084611400174920920607379769961915468284411944413985440634575972723425765442602333138118106792993804334308639372850632683744495747058854413291685671220163384854277653455130166409973420332210487477306015249459283491781211669580495319713405433233503123267128781754129251370336644717647508496095807557444847053136161939220416745421935036273398369399468797086622897505271619780342646303898932130372842944904444101203888885131641404219957576153830637038148393116728266163001997431514917009953191396421515629030093130309766982734579550720200419545968288983257497416667590747728189799687546992776210452358455176486441504190383529210087296884324126149972257251609055139769145889406535743940269748579796618628065763068525673928870566969227616234293153928253185119689324784175851828651423280335192084761118255246386605186948057018663922371650573658144010544053419905048378692196474355199616872369548849420851810695518742023189565610898602022939314261367426355290232124094919912987986675911899665786760765880543973112819624451834428290343423152207568234942839324607530510681519686226178371006718644563338578410269063257293030126255567948027031372018170369584631799149853433186481213910259365974216583898273808224005699820814812674326426786260489055413046204085320302294350540461897869997387240065290640576488630087690792155607359295981330237639717693952291108685824166696564164797652414886335947716049277297383473151269159693052761368117780721204870296005527163903495707278024974663711793773813516922524856679875944007529084213929223249054538310334900278081393447972639114513894269902357666151846830143761388036406568892959532795246288942862201000869142348046268999178755802231372734916952588001093673993893101479220678494739003547973166205274401705392546889338838101546045092624448533136976680656989943407464870153240317787702653847441129872730365932964721670472780602409889262500242744206316772817341740767808736010119368477661259509380084239384600079112799048369156147131953001727692884447045649557610005092525225077712876870966205979343868706610235097053452194163046429834155752159087898680271882430909370419188610684715969991996970886284516512096487283801667772244221771240592917615533085927268519734377353981477042730953693753575326350281500457383038653366535776278517541065024657786028081026161174683137138994528178425971039960684411152636673796708056826059735349654669602366476356002965293755554412790521808931279093588832319594924805112052082644548339481001388329662468004619946103972050125469395384956830826088755107132920835774239073430399504839312309443622885423149305507087658579093217130849405028678671829556103469756592665223996450148139787708446098244384398848554830210830501006369302323100023549405537082966558394929571527676673997896824247558169706547214303437321697050683288763174119173949259216321917829988635342981961419463410759694005587021404233467353352851692669840165649244775640926583053112734843903148636945201981761925286201796505599958933083284888169128225825493922146815589543758634783514601066374587697644668486331111672022816266425699911705576587385140446692223452253249368289508286012971701176470079686999262209589771814633086087029578110275347009124165274957873467204404767661654026048432636775977920341293941161061618034781515281778198269262567712335719137179327585950229260367301993105466102117010892324367339752379186057703536916852236133579186560240326484590872607939548984749934023022598668726035940656515473150822598263678933061405556773358888988195764128861701028368575859563465838760361383444119015617115097172652187562198829743087498444241032626408820416512363616619118136774329725105250713835367892142387142407852002395792359065902013957043548110620799110799394107001480258737142965129182462717927148068463474908176922224429607237729271844827589171050468916723047841430602609234611380069475308539582637453860908824598305077526263510526965778876521287527732117574529802897166761028030991358589401591180366881679033188278360287549826939910469670332044667672072555279139347963514022172748976932227675898685986496491107176455026843647882918587289917841203579390764511327179613032516602860301982738049466713556508750088216726157383687869599601840313602443294897091088322107446263695518522871577757553647502497444724066621736036203041658230720525072910157015364909622742017774829294846167045771514390000197369037791494341325195853417099030515573187522285713654689766918503416125826909447180784409902484114009317801066035920108635358684350415108846103201990246400484355385722725355420702598116147407782499385961904278452432290654331769359439376079417927446896413517599543196545482697727444766150821141205605494891775701291522682804348108654309570221716434111279975252443800995804583324733928295748274926566395217166630760033676566361662153083192771747476619514205700539871781238564702890643598924803326557942302720968790346938130536962848595165220623598890021743548358529604420339453367279698973876999671538143080558334924333601623829697029290501376851428577991483864837552856186653355860570742306358471001707497398989808383108971590143952726635029841326986893609365620663605709339241248063392856084083214284863765325107170003780294899477778877494866555456299319060148562380169584352830795133984299758943760992085765344780003658578907204085314464614515908389316591202527096186775766086074063042953346820013642503215437155040308834613680189333538540731197953892837973599568556308343050513805697842417218685017779954483769227893747088579102488672379770634893985917578093652648070999482817224286876638393892935642233703940073710028759688967563890015982157398336117164541375167256244722683980956841257075743756672944210046014494095203021215310045389585228419727407265759352817345361611361270108190244427330566403300655044822535013302621306589146626215553349925738990746314738450489830683653738073537319054259367172800848931114741993643347707480768380712590491979594230928979690005805930167099476145202859608561292038847622937422433392513635764197494613013607535586416594027806321298522601274669981893735307720416763735387730359814457011815095727494758268926413317010863857050173569803230138472341219376911259696654916691825230257382396937007868208269435952076651842627753536507115533858678457893605180172688402790632640744489313926848202800748597466617796246961924124620463537775796619789840800493905912550452463638181021749087680823692886877916590238751567718792862574312817374892172468783855457180853370176069449257294837490116758990489850262405879093136991127366330184538876268770201315484733354958419678573593328208613526686616566085427934614478538087290122120391295770503244808744575267552908096631059220643112597203919799810590802312683203497903017481896359710381226010410387756894834238667086697877287144937200404443305494336278474891014909829987909690220066958603055733954719266731433650805694339723138728462644972722167220223326709182038583576602689826049905813468448701882592417783883664067976373788520381884853712463143367805281156454461064199001340067883910438017313019683375419591713336814670349895233658182417273573005846715472122442343297213000287714577339168214918836758668119779058760964024144163252345729124373128469853097848654380802580983665506843668484388730808666757301209597198926586490791360659603999983804708119442592963715884988497029211544444405039021011488136960864799658949916815103760779187251047907240682848044671183523518357885800920109217268540016819368394389319878485535514295293364620687844399346024283739371128382507415081852630170515593661054263781079242671519658335364822584398214901513635757348710532728713275490059791209301193675413612648526567671644029700155838667008521049378534543435737427372836560820152324088893435413224699090642051728161505479619231000951086232030105451077478700985047306826349674074975912505236218476952153343592556599660227450978516663220223591558612104709636252083520946187084905403040960922306681932195820774459097305839508881661907445148936750164003254083836108328171557990634936199714240023311145209592380470042952052372579768785596621163206203637143947311912098191866772538828212800403902107739409380365513746844890201549635413461474324032774586796867703466431178954294841602711152662886986329040688857361533476986898261991887606954009939550364124950572635496973052824516971203846732451469761524301215836443448257281352000955041562158541529300413021503959547503552197513627355511396165093000387063893621442718464299803348537572846548140814144696307816561670705283779030091419677311312226967009926443201474420913521022908466444360644813388533306525011592245073850189312129006252701753230083242991769849836655076422681415024357315237602365971998474434791874450280552750124207866126892397319202925130974942136691501204135072758623199677094124504062036863939784577108680462946725574397393514191479804534041799126820588625418309426531749972473035485596069831062459928251933141148727882516463091855423414017184686383173294613214520242928056962697612568906364308579567979240102911205869107350761811613980361030397142947732975936063091653572088230249682224156448121211771265767073040141331540297603091573005668598917579723540519149628165883282585955414748542456434194354133856390398148207741684157695699655745190889531384890566315168085930072332557561766512732680474619431327656481835416357834315973544976391726024909704985834897796352183235582637657396766621011843919076450578418732461914350017495707423372800024556386603534724371561222008727122248179699797478191802301654780257635773508030683943734727231942632528148037395913008284363472059188470395027961427873260679633076225262360341858931496050721777984669736673287701062848451813605761182855498559960618987237046568956750950205307021279767589591396211435890380319440354432635664087418159232576701539284324503343996004019736253138082554763391668514152061471416243779926717132201828644929545939960371563460181545464151188270653639827428673394740741018456372493047898995717059545092906870262413961967281924682834415630595618779978265720752779908719499611804042815200639999636536227177975585609931148795747323838666691501179822877343588336589796054426234476076265187176245442422263223218874328183147935471993375767702333537090906828281488542020254418422201841618032395142315636690736737262480600193618142019396883906918148690094926776538777874130987091649473045692074058192243481483121952959273001650335695814462918375971544313405015359745358968459605830200107990114390849776035516445272611830222849297667673822750373141934563189768745506390172780575903090575960365847653653354074398307033603513715230653811874698490658233633588252633085318559777403180279296992777800670210065026048744710788257847962790577644142793447949662847988292959454113768448465612928141297315426915163806756899123925415709106289676239974382653138141677782426518427796737356027005066754788278783365829740661656594554536097375557280198979204982610091342713202637488074019800001715141623898534845807682669225719562134315778834502709882906813439643053694827784482109815308285731786413753917466550637848336531290438783775679908963696152666552707732134304505789505812945012742678966145614309378128002857599025179803391256142400085960534532364582749270875864412190592907463832288767764142728780592221139290284662624484569404957919425473815755197891717290691440782837549705429806708221118514729027090949510288813704176187605651640207705188313550156887686773309110801483198966970754661701126832865469124843080289762803465179472461394220862828109331170141041146277881108450006785117799776794318458151031924755019669181127523009667389691407173822720529866184855662350870915207453843448321346606356008458916999593933638054266468222268260983401974222703619063056966134325791180243847319804851701901097812863346577164412586703578213293280386579399865922658097682222312731367561105114185598188435706686888708044823755966996810091305159662082843735297459406066418041207691899499740688297152830470650826737853521884975770690112959935548994604573636456016176238591192834814013354954160195395316981370900567431453867277573950484222042142273044529813234309002711064772264995639114257523355578212306025201161775739874155745167883997917876843502101444703635343887642000412381707232937539066572048235813206884966743102338206334179179534657595751256853007954904317933001060774105891336929667175362768760767238987331442895505691671087809564246602085730102740686131806388977550743301109472871755832019978765939040809245908135650256942749136506298617867888498835080770012879440216846064689798355841412214406596971308065493733440673006913081730114298474596497631944328578107655619868094198309587065839353365405774698936081340383853885944024327692188973465574619033445389926805397243342930295048990319795648490508921298646035657545602595249872508466213906087301377321070433231236108881115351861945641859807516235364111896266801887121107097560798713648230934594644608774551790761493326412754004707775564923166270899200324587270421639294855521890898668347969181944622754225643394168044668318989664300386242559589308480255924836077710192774913965689361717626060481586269769138053139859697826408271677277474830875144205747026251293274140091181235388718958676454633105815995790540224886852330814046418811346852136295568573332317320768076309359091428484238545898067909860208035184125928399950872002929226644274877142506084373355958149263285455293116496473244390106990155086520270603850763637473518218074024958787070116059548577389484425216139439422253688974932163517685807081259454196380539828901817391550374474870276519068232005803678269618304702247213244614146670756533819672420287055973307575660284275955131822150564528919726930517875584642643543358088373540324455487503652076120750273299203254601429639051049050406837330686013882687514856050558317529337605631272174897740586416725005280588216101873507500260549727746698061646687394301553109303273104471791058116981925696901336263531878675517407838872465007031194696397278731875976351729157454826705195773043691606924126571040168586166705238745312063436730864043219978282711709569121674958710840150836780723679637202113286038134959918279915614165032106102366881875713926232975214764851668840051072899321096810772048267594583200665424420656949650096402244245935720601398577016106649077094533380629573946383333827648556819890665197567745410685261273037701168925891666452731885227260004435064830579497955598762566845983918876357160233360652116366301490777602735585815873332628574235040207823648297019746565083715428391723412001570988105207816622028331589419892699960383271303017178587691764006503358448459653849853327592818214010088907207280413782136299524390977839458461050702991620419068427584126175767061652213253443578385757720739100675039856931509136127590227756542685290141793733883395019288073769916270488483459232183068962268210993004549547954369069952273151175506429697889531447572253023289189886228387172532466001548086627062276191304391909345946027154725241110940773698283797920562224789161406620766954734315701620815307754349683359925014496133471661153971250440326697864504721668980052392836594742322063503187427824018934139072292277439460753643001702666158588606957896859631716214514001060325213996100629208484438747116270887531880167189797063051691410799146346916085785592318842766078713673770182734331668132177757013828666398475033364153825574698755077521441217175802510556525260148322439145693048978242219250705759394470887509660948566646625803276719965577647409195022708170997167721163352880269479890025431390699965526291348198406298923691737624479317581152559818367412505846679963366582508880568272777478171876486129931070025407754590411264185429977247239035669943864392890298033802918306806160258994432532074236971725525635094071161212846093270117634425515532761927997751723028902498169282515052942587029642146988580059073417856824616033993149688665133123504205580333269071181279382854055301392106009254900436460202884409348831524505929363145490434245806103506323340346280747001712598263586641524142637041801808263417586659059836211161773692435837681076538741826078063570300134636621058402440838294266215448153716343087103336213078154015221792990717471593598668527406643667386070530893694495655946388675113237062713108233411486023587671870188509228421305662931729295565049605948672279559645040224116256084559637869599676915535274488625204760225746632945605664815567458039770654835993702664266555158713737552598687232818037411273967588174021229897380412025250920162759778683968794422800149602016997072395188498984997562357149489855313058440081010310774799147176888327511264141610598022406582082683550701882341228410505919752613676908465227477614231854145957506010779849930491447642979206883989775326059760151098115168949815243951901963015348965652425408023011467786698440827772624804332608231204535623283743739173737424862980168099762771427144283231213720771707584797879455382531504490598336055778928333134799059254816764132266989571138766065363036522875147740568388723417848358488363865674974240885654891518903689804156611777606515122687973231504760328672199736661281021976132365958999192797236861116778623031439525700867069928742371257137989788726098838155936984452552443737327183568854366847532694100082276698473292047409999010787547402640535256418775790351627869264363075560436166334928684546017109306356336625727441304491427796197840414158048040241466634376982688824572433070138138177459136985205303568087970224849283701705378627366443100096625438873852843716366795201273016278629599409305458294142832816611211621193752969720423071532251101909163900949538362793865018050244011449709740855360787663154010973516558632806753656830805600111222070535941744761748770626090415035735040876081768916144289093593508198134666775699284896660179975452848287402577767808517323122340221707777092109595491067337273967454287174575273131849724314799454703089047190786870419359900297520385017378682374984886978417642001232916428468451470581013168249389514722093784259439256750830581293514033303804511474129320229985088237096212877220122299318741634316774560210069233315254596028286034158328881200021410929573455778494385523942402282166504353297766026370288710574733880403023601943170438068978890913020247887890058932524508816104390649700295508065524802662561937539204730758348465983559064106702099586871234135406715460414086130826539922422900798796674046561405856032097564391583682338589090118495663442997908791425205822105353456731435270423867317518169045047322280832905024090015042166837861763978501142113621663109923757627019792784782679537690006585093893320053581920345352227494752717118932272346843788929556388018230969416804490379211248194563948540822304161372770645616220686264304587223134921216441900120233450552686375110518929815736762438186685577612636845376319861616500897064619031308881925856837379327965183874576693402298920724186178942131464328261660806742989136968357343205292190063469952764119052349151305554269416761531780296119444830116801236909239262262124371661790984400747165519273051193601903255411396212064622664054436411599163713830552567882723534635736076177285952974690445509830798476518559888959141234981558953369679198460147505889916422938016850474046234842238052704818693806877223239441350203935664347360060434071512754646431199632379950770637974096346256572215991841151842644021433052643380759224451693504208841084595493110438361170413666858753997741195994956100243983316908457671032503635314117830459130966357695703615710212954934183730248625821248123960053753162121946505024260754826243011328786423484611261543464600500973524662760233395743608038491207751538878318127175768139104114265421003072123803968199401685083577296323550148932264369410571649970312759751832615695684359841071654115406437942369601011817388259309290396449839885549587178960582678577451249037400238820074591499212486836469762349773221100635480867361492556728519965356091118965093333534670201305412207901602281057327129205020618308685149670570635370249590484472744682659631633557194837701356701218931775630205202175542156731732044774621359972850815511769987752434001467502541675101325254856743096881505269047319405250349877626569567376012099849461193948992055020323051301414039622298627484849622421191835421779392634820895847009460490645252641603685923355950161708557971927821986018763973140466872075477960501588768083407068631200566907143384871914610616242977766889640499123464718948644902031440274671373643394315231896901398169295042668946723775598849942766137598106418338474784341488554930109382943580621324159720163055202990991634024875350739997494163983197367505814742476995400947145113006172388319900134130597326132723328664387581959468881730281542866776051603244918750550626912011550255899655658697924873699522937248929740487369710821947597268013722546703469579422286760659314637637715231417144890514280367681660087844325089486423384527673046405539658576822568245598529298766531924351494750970814965986619326954195724898866381374898251469587058123653563042219118017854566787060007137560521038751334358553998885845674932199008212578371818382312506635257659523295090930230037002953432040378599694805924771764788654627242803147223954248345781660811180158573736155384275541802709733493456837947939362893551010998778813201748145950196439522638366780501283777419415968709816362222617182000182821660948255610155734372399064459440463066828947164970125129103791196488213614823150162310139414840859616358125543886397993899984282954200378726962781481795388306893067872802510659942596538972488929824820590223654511592179372204614376398628065840065495485974497854461407251227550076174314421431228547981888715572776450811644378356154589596544696923993887206821261356588860518454859513236538209278096316087688713686315942089303597961937634846617504080120749235343725680240729210884811721669576857756183131234055622433247881149095812157366825608077314456011607111651121762742377727558687477962887074279165851138024193195599864761683850326441345000952573517922477379385667552342171838836350388484639429228284384622391371887202870402596882380319497995250530095046617372738840295085015350191472863774828260939215466451721409014158833800793242141680272127636083098949148216732560865383983477824795546853118150504504733930125759322738217943053079529442437535787822987648690895476661179641789829168005542907121065542471364563176614180727760430955084372726637724425395288100258470033768216649635172390711947075529789016260693826201220627827628054120717758939206510337674108504965384866228642826634613862075113051818027588223902040963049201072183798372260305040770898330168469877444868880412246771064465780528452992354053500757398001165248219579283947898758009629673427975168513233454494050633323877917727861750604339980357082316713378940312455611821536996552189047313694519701404578402708952296787866790375472711274126405286209794744874840301067475306378189840801576956808625748833209131087195015145558731357981748013764021648736584771319413425292368312046560900435200652177437758235804805673364960716290243006404602744052088002018545454132278554849568759447513179911421346058702720710851493367860550131370295064325778535848444954326422270984216880852709856671585632480038511854115968547876751437782484442024571101247868495767928729153139686318327164011338643625326502684259695075827906390358039542885584800663894123844591437858827514406019640635559072116952429087311812182495830755712532203149707773243025869946439462297290009018433728698601635090916447409810759568359654054591654717214180975457555417351423635119612958710345184663791442324123809161552459151296653734388921061633799281692827095482837226984629751339466032616038913842030371970469595268537291532732834992569425899659963713399881368443009734068335407806673960046535334613037467858452553239466873090554897262616576126275543021911128797030019110475164660684530856697384497921840395351248723655531571446989107210035273476171471828200927734345148803781291068478342744161451916042930543695369440643763444301549628949753669240160097950896916396708833101669081013167120034730527275337741293020999520155466423302037674285200829732258496649890398874199717584360725895905887219318600466330911171070792402757248030900201110246077575000003258321685686137916092339800213796536228841734222213969703113329094765819107731226669222042423988540187494841106754903918846895730742706807397883949789571802389450837149312622389848695834584078262490971669372554184092687801214046061041715862224002797731526151871497290251133926444473959153730964122337365873092128657209949755846406510581807336379832284707037842744874902603189602323480653784459175668545016012074245776668056722632746777751527173496089408497918317614864910819362944943458768871255730068655038348191222484313876021812879831689739250828833442290610092632770130612604572569955286694189046172215613753152356665917190576277281872491513614617483510989943262901171835842139362579806678721649949060540457768284581532604367660400425642512967404672570398645507767103804600171118416796394987812825308296199383544076621875322365861712730010216391691826996530062204111653019323550702119897821792112292213386743777966927902105991354699430919953914568984714627893644935559383952456404591103613897592716733520213377884656482835598960278383325515647739270648307786299097881933116187684401348888176569966189510788727627744071458881013607093816814640969606051901724752899105267101731843169636635516038655491283923388438858689659897787725747633614571796945145952202524963202305782040253511874276160883589429652340127872258642265645062951611652637938051963952005921046783660760736752901997676211592399638381777284579055267823251659063122287162983751396431136506375858389719043660460997004745861594239258990550891444867513989078170025717296319933151266349587784591502184314942889260163621932065248741665821503240224090519272893605546168039748816497085326892962641810328480209253650799112444341863009317057350177509978273039604179872227074395097711990652002839795567031863111522727160806065494058676480371658645805962145294567436337948592176199227387161240208799940616032333539240414415152563135032626125423975362024401040730313944949664600531206792809483820821545657191248407424783361068992073705633441298993826515913904811965219635115636328123120897659895237381361999663362163669605774434399050023977042684657389088347354784122445892757289380330574691889382393294682437378595977949504623598403013296621300478975743954341268166572385179629931964667948472309781142564575818093720823615781551438390205440599028029426254478082457409439053125644126043199437899355858138228238538720493637056186067666928303539303343407851702431447585033156480891076281185397433404093592706824331721747379652384604590928531710199254584890145009897023848724625330714063903981373814252847314202736809303756445785159704287629901376939219993770195417575781467211822798192612727019070532330844098370238096532825719137384068810465015752010541249431696009891034856927637218783800772512994624475292650997394913223872077653611181110853891852365664131880234379384089960886383954945149975312855838160810984950379380782586928031664151371909401900959089363497176208420179559942769043847999618497010437029574988719377755392795294465039135688708157031910650611067659087076956916722556409425461007625162605420501818237181991350957234541524130868219795381120793219611020735056280427263454110609028135393083152757175155339483854137996761889310652848421034822932970319212249532500611414980322774046432818490499262871399716768399500966132332130251995824441220170209772728112973734045168365208758534575433400430208657358266130796703171926961166507263795170744245477894397634330609771392164538564112796216241666599508315223364012702712004952962572266868198864860702250807254948338808018103727058960734681805723091275936596257381824743191617076089193213719922570809718841038237030212986028059719154659555149096270880464623205653967726781609952937065111112266883407263164420304633130559013378061311881137595029546783064319943347473061310317154773823963803823419496621582513263151086870299309692156900521525902739480894323391013829631906276968872505746222180294073056933430901559495241131427291133128674522921991156370041387484349283857040711689713822512929908737026254971127637508325880967985941899478566575474294688393468804677045526030173203180549465462655196217443428032554524383895060225946277524098144453270780563174414056998104616459127647953893681989003840351195097001872451983654536080680555873252632647774845899176704761840898283181594378693044006873738956664344400483658290539016726118348542964428042986289989543989861721084461734168810459574028704124999698777361925938066363709529939193901168216842606154664597208368691608179046685625312968429189384916454013751770328282851859105069439026264490614887492995729774597283884504370503467408292911594739537742274294314716772552072227808277534782753767362654853251164532398564869796173426509545000771556007963790997358912642085272756268566787072809872895473636675910671969108884217836522695980930537710327598030861788712352142504139853616854896494001327883995824020223897192818294029068566957937957998255883004330147290636040347890897886044053447456716591488597952094592466425379781175569548110521899266824147055807225797483270980414536331530768928793267664691185660637680019129498222246268505212202913201690809275080866952870968115097247374607611492216941985853179729430203846652452972178178326364949832999644215649120110482314502322089999622965015893555869982201088503719716501548044848611628023163508381656359542668604593840443405307438634146567927028659544716945211131603283497706772572044919706712734792192374584167437221407969757641539445973220062234643757059081241898448586589950941089031983397132821888997774172875894508280044523897380549718400393514806129079097567270376330665034727679974165316470829769286514608221296707867325189825860617506628218854866514279242628273450723741476579510126976157850190706323145057496617424853758785635036189908355975726381827356811995290896163134652277111884982819850493471999468334071444627855935972383991345815955892237179266372140646377554618356703394147925503027672560531845318746757037520124266149556393569786850950466606419795637448068510487672810250557633793175219883541807129729274957956448345197742136955179939017153238740505867956621966724270931090060179566958630196293816631122732045365315268304795356492406561153667609589409404198864826570933755169718203507385682951297019694147996107234439923822515503879370880337277320441385451555873297610759614526741191783375123501129875367863606600462896195205494171251582931232933861944149909505028775154773237660721161930047276175603055654265917681152340973837009701238708062094124588720537292425677547736192701577828560727085570168912293992564837253232186332198176617702011342211799323826573677483161613022549670375840319071243149008533470991278414209788085277354932761285783241752155108878339911056924693792070747030256213350926504879380178759614799909724456730419236483108903202469731224694334671881837388700075845870145484504652897527263164320990050041160752929977092281533784293277602476689380386204854071758264404535629556625527438242932186962226481981575103072805768342269051653956935201256225604707255186886334875495247190959952761187347339834456730090571445422416669170058758976625859690048966231005727003729805277017649135481477562504765379299375527565226413425217660824889675557311706703272413326973944043190454289218269890709510341326789999891720207007043102374578466655256916864850528949572334766813638807678793624566922555954160436293824060032733627790859624024860913259503508488343141572970253964303832390930736054107564503126881673695537047820210230991322013508884231806386094397847675685399379380096466802390857425210462077735144449303950590210585698527595938932006527077964392970315074544867170459521589465563776431590819685022132987526608964357510824981462185158490729079066321845139426743736009182708855826082876368495055161419843316802742711369869194638214347517323752641060082834860330242434030108695828744519893718035110374257442732234496340111938989832298552868120441582025821208539906030222278368321155947916528151161388419537148390476095006430523045095274945682057416847286685447232814484175069168548340525690877657832409766076294723007546152029093992960228409925344046300339232913956861989643356811718281219605754283797063002872825798512147234520625941669023045830023417930027888617851579266897406760255642913600119724549060774776749289790425752526742646389429089314014565427151154330964736600436152967797775055945119427158057489456504224276009018665225869651244392772142917626192725563263113189749185469259639878864034271433968191536613085177539883883603289715788629961072938418257535059137590506825871864131960080167349169065757764280693025505973101315472239070430933378571842389289976009542877910656646569720417320034420023248450123715471795189179504424001431481860510326545274761989909223195017737250754329986989351096640046126966922114072803957248244923764532139423608992399830834501376489631345279456043823229171169446200374363353547550936792883646129685448715480736115728151440689360626914616515598873257040940708777634703234738647840127520694392873969640283100906261299242581810796440923368707668528744338456952925698897248621868034963029110547797192359148689218684068493429213548091853519516453277103529055488055825684403113270040604034196735982654032357364070378681736289989851453879054193817501866112376519572386096059118020717865713890217194827487432272607248211470258205828943380668372982481958142442752076753357689884767603345549586486389131943401742067792468938854064424942155578300954259137037162832198135962511958033938656188101764184337807086583742344452368243093162808156614333349894961345017569701838185344223814209743121462825248879751534812741169260557644554323294392381900166628059152949485281252878177283935471604879149280361316646138613789473946381356652717072594227169006566582118876519790568746269066344273094656827751840991034880105909024231900129646903885957589829982320194049600750328126695339206004445232525790834739637781463261667407074653058608438487922609296978900847067331098566685924885301696341781268767924143502623683596608469568698692155497048299931461270260130554107369857462183382437471345499479115262841867011053359657208564577745539891446018708043591270087424979907818411263991627098850359885056529849157302060352921823465863368514267083066893103820488893450868143393586199901910835852932114417717292071330778491520139158639133439036620848621706109408893428920002030075431729587033749932523013102050467099795775961217572580354821582480387735432641118655769171926119721191177323532374799698078420759721112992398630224207799489984824094884378946764224523413247596384226558702688075778814641395597580696172999317381894162972262788915426139229647837863422316618261874224186193216349808556762889910614511251755281312449905095015558169667102607276781385726905293820286497909279510711369690863743515629675343895604397237652245564711080963024129496474090413152213203118369387744563869684669260755438191512715600702769348647822212816230032003200195226408012401216901156986372498227543141767349099444793179052519167803018078153279064031269623143941596478929380740265323643868260512630337663662634139999623931612994866823742366889634844223482152929105393816855151878976244549491251652350459653244662131317818457073888704130140053304371287611070966709058514896967265623075562420396536666539509612186242902433490464826105509094213124070685036151977549529756561512847224367230239698568986398394067375082832197247782258865948952171384451713289790541704596700899411757731608004694243147313588480670128483279626479573479629201196600033291760920664777337008517208500906626665238250010953782244345251585911899832055496365744691088047593657198974093001088844715129819064063156132768420005965206453428558122623860323854899348152949018596151829235779511012687340061002504576615218571669323427006649985078192713337876283658525193897248942494756402506107198362618205380463359954964011961358896842477450687689671590919046713438115242193653688990582802660424460383165380498806178104009233520241121531112771077539419456405238744562103121710810398712530538416162144209787817075179446298774663124366015409561273052846814871999881334168242240106072736688828845906775381327912527424133978075220570445369911352395525816632911147162895153319175253821678403714825693675972175710744280663560901757909451019699979794312514491202851035892611688800654550590231038343529369863508504036056744630180630038913907487316936254005426484538043017425976160863597658267810380319327699484005143101081991281172355281950737797605236090158046612962417709526942981149907138576964994150559845842576830365193519396265874313196619107084321071250650487900661579237319316051667506320356708104371224287683357529502596191174699594123748144031770591274856701066821358568431203405413624869768611528643335923178677587037874887644969740934736054881149091348190209670703889857247789709118036390948015742334633292979141123745885727499065320494444447262522235693203811645409679828034989741882564955935246719657468685129019473288523547984464035803527122149636758589099402946184888484983485697337653208564755333092070103940673068897969140941282340304944199249778083286219240688366880879193612969198093662203236520414717852649257860623713389899497173207574752579771251571449238540844056741943367677861533364198624428549279900437321213750300851092335658088006423763804128542526458369689085490395691131323457992815811562602879028714863999515902730041499959591300919830369767110655998750640139373362546151430738095996289968291675483826192846448535604165721049745375039132538444941677775978741766154230101470204528616957943841692506264605167301524096960795610136490418572457311610536809491046720405793465899223478108350920609452142173292443003907439734719596531174586271010916203757429533460853037813544573374307953852383351914216088991494838802610831018550585176729167382979260619289768001541498728953936639239728211312744694375335303288836465803268149950403202525633232769100660628496683562836620987791247089583116455585273670438549964216183206567242950313202104766172035821746944340014509937124470505245834337908664543043178930191989440364272949283235007689576119593661144074955972697255361667106609834756562440236662669136548975648528991666339119484603742904359505498529150606147781385986325965040450756486741941909015491595614573741012396275366895822577437020522274554257194727415321432147647167347562825869802130823811512782526290251831088359314604435998323789559792600378524576118392001415675554430022878561684798343260976355703566224463064114813654575253163685690916719635728841673023219389487416068730242469296760329721387242740877930232002954102166232413923132606971319778163858944225884986309996851243099114682128805518216299560351404972123548840546385553537318576884430605741453860437971863504238951188019868095861687360288949905862663941163993464725947527594314573440381264361972764675456811524119279548240959917118291076557602598436059929057351075970276294938287614891558551274932833280605893220842134881227819191977181077806304317684076987793674960801943120368220917076539479692587305463017895612776375546777117274879518224861027846195189394383823868133340021974721292682095428363851281758058486410439485743450537585124183218672136410849623934572651099261138474795088691568530941990785310364242770625953918613601124499332340314940523532675846646587166090682986415849509294852611408224855054782500827049216187324611472573246676225893054175727944734121829144503189552401497379490061273596674445944635942208937730821481001284016719440757017065905210951438221811305905380730944350647187007745145591400391096389498206511004628363907397215549169426951575106436377551089670727466768015555288930133322516293776029694850077741416883027057061447460846320144364938661949839208547647890031923046306991475013814813100459933075997997030975807744062698208581637124628419774773657582607122706654383156735559372913315684140672863429152966039543235866720989738755717889943588332264608344807242468696529746152410139930309987587171377214649040026797548749474269001746338459654916979865325552793310480338122653196408126294812496556965527250629387937150342212377344013142162825531855834092058645744905439150703051905225311335852014914554764093882391332732408377413433017430143933880507682597166223835801441179457892743578730962593451957676969556338525066359538504409369135824302166734441539914868521949257113338410545304854947356866500875243733858990789910892386044126704380107161679408627165070538755027084315874576942421543034769578015669307610836786569913395456626976956298716037300168643418091726584622393789665000184453646194635451716449415561936392030951989257667194264863410843058670645768748156150663210254374067526150333878298374842768005631727500678946887264784175294350792326691217421180173541010672361922762257661310616090899145419616531852804166193261259596834908830716638967180861803319675177467014017038874894333685135228668261745121143088573326583842901520306694165243594355876666682203273419948132342133124694441628822181231223975625785714260639286248284538721747819365440788908667904726305817623355836304020702779460144652923765984125329658056306378601363734013298370902248951059507557890340342071229948064557724002804672482295483304016289488893918350034164942222032055059115275200021026950692797542070501866049274652721003234173815390406294521139510940276312863061138638849719060423746794555692702597637186523273505918131483411612241532966229617426190541984041740177424519530125463538145934871690557187129966472298615256098162643262184255131789373446960568175945934908302792665476444002075921468383663589908476561629507803016406923065035022139688537852409179837011341405781057492319784361290380546298175999801712000186947164363918492986978515163612302541255647533766700940844580426448872688421691989187693624725198976262170116552885331295178542494382660276012489651972975197835542189075519062940089427370753155953763475625306416120600557829992738645027495068368704182918067681187099874932515974026061051488809530642540576574135466076103970175779356004502033846451512566864069342975301899141878303645510651772376058989120766736615334181087540692863636537418632502683444440004360688814582540058302563278648984649808106984387079777663573341671209568212160943679956619319029692509492052666733196389946091934832501722264239605572821930689964605426624674956255227137790290510282938951411631772655454576195629334935025514946793782870766204709816007438339950796312917464169660222188673685174184853631816072576443253693777362292204527869840611224940849170085401308385954570002136004693027615280587251238366582709065654093838825033498110570096449661537551905781111083883948093891916189853122986780758787125634531863377670004098672541091280330106615160534030147735500406717692722377144359469417491259074795305069280687958946256949314032905736505077364496691553580326008714457875973023882123378128640165714356746110128930326464434661628697032790734000288713371554837729645031124753112487824438488966445155690555538643022678384712197832735805392756434509778498146002123896622728677055182263076462785110724908518346119506591127986061182087870123832946779566152859369389746910696180353588837556625366015984045507033627275582477164816915226328774201247259625718903978295600279031523715417318607647159768780380780630252131512984820220666640305347368110571214154564676891504044734417774521000237652385262567297079519784411382995094867327285179137424076714195629761625681552182220040134654748718719300985881609505091046754915486443348399946531567549806570963591635620287590360605095763686048207439331510399348291781653383637421021123137371864181858785053921127582237071099153243211154059841605455259159127100566918332748285506152866111752345132942391774223350763578944880632566613251313479548758696714450066900927796335751318722680786970581840132611776023986789114292986018068393248093089691145620036171322459564116278743655062297085424591059185984556279998677833217295678593196716508857878914131716410179267884170909108476545017545842405219267247591312561798854110530285543276244430153446337712259628139937332568013244412089687520267348727841731300929340034367364004301862007171375494368861645558064620030037726492990171260811608529465713113772727098380029448912912859170289326693358562865174802816511649372287521363400928488165078947544816929328644106592159505385129726950333885335977175425695891362960918928473759902813690569625540151635542139229497515251319111277052590359804545508118303080332064571075820310867162792697556029573533216739844455080828422209377896425800036853845345081938026242794695959913608555970663494517541450050462236665561146796986131532332293466943448013157304715716882870371826688974327641869977738455774274677906534542385450870513334504847035640282189881796645006026221920292763263037920353148124107369894513287768012426828441758235655814517464842961675585062074511495971189819466671536299862795664981750604490381920371674760234928640759200377790887565792181763424136489506506603334961499611785023370351430523327244641488911216972161254065505137773115104360144964106447402540496579195650411656939985148967271138975635417653134003189919127789222288081820264642759383570301174995201554203536388307428461988473779607327927590941032893827788853984292771773328071953081341022987458016821767447607644257753614233895632794629658492368258486879941440985354219933683338688835576910968920766960288689406087102491229149400638477279343539400044703572433206342600844760930781133502072516181915959411116372622775935411954970574677746723875367263102070368110800464756606333326359407824539811127190281515225615774068888090951189950078640047902811255337903042304012805186400229769968649489533984802993699630096084107829045230396143032777652631170677865173166801285993839450856136991334384803831163418530744441231378625822108904331526881386512331337947059158485356256649163144005988092028373927628636871932528037042394972162068684473792792505715070215161075319936079606738963777547123748254614914807872985117785518681010822461510208402137675257016608448991540406331001905181036855924329660093002882843223380179332353943932002817894568624234627792480651675451346940569174797005276739130248155389944141056276976538591485977252473015884720707025897168550872195451409358958471225412580559560896801541433327720892672189476872285596709032765789932466368829430714693665335192879355819754232937446955599730719615693235055474521845867993394556780619226670581227740452989313527075074805202285724337510213001263941271422986409881489327066850150166903066707660629488813729018373983706561651294063331392447264837864314631846159473274860085913133810351742880974830629515786438316132021851219907017161340469228733590736618864154524364166967711185131072412023541933119029242985070881098528048104058307181807751254749460512926871817099875487500852324450963723705701333552235527712544890334747511482564037468934393314721215355416536238846324833922114439391399214198863917283019916867806878409453961358903642060408686656120782115697044219050589049744125460867801245490207781360925835684656046774695389466873467384273033516985370302074102304414741400193609863867268196558384237268520131445364150606181879383667209315526525608108461478604289709922541500195371056636658731370484626134626752447860944593577802129476088890137937708530662440773008346358668143988953704897244358197000591099015040169146746661648530581974187799450370953877228920649591969340452343701048859488874449733471813825093909717272527739203334676325760511058880533680745742532654721429460323189092320693834077039745053856995045796129380605945249895935146707523678453026868558168953237360198096552474132775882274747801864383364313745571506871498947529020270921402845562604507235252203792883585562884435478903083183245992985573844977864947783247326771660244876076309634307227436961736565355158949536113925207351502589951739146140158243974060603604181070717359122068820789125933751101875587770057501355563360020098484975912830609949658082754494497153877701046186184922983399850221340799190313772813842745329415763057589436801165837682282744557327979695346477192316830832090786367353466710566807199312058400349612925384745606891774839244870752106242220791494093839310588651210373094951541468980527780645058745330553895759290377740223304573568330885988976849023247321788000700358254038057455151626023808775037844673950626836513926070046399893099818647624518871016535972885315971023836484901584523571676767954254057216986833455550154009076973309260344862603472506686077113460728318847651831399551220575895102053716967585025188343327832090532651455643920190741385096135541902596335162112212390810362369375724601378357551681735368455735486757759240152272219485132366185686768445566925110204889695338404818477987539051103490527214428987760915993385040590246062228642076040377977390939475568154462518979325898164382254176544196651109781722099322479278027529837016357330072831867578067856891038352502087673261600780281092366282276771632775922409257755110883822210623424556779204704821058739134989019178735088038877738850873275370409100563128147677987047777195214459044919730676745779896497838767160117910056649448788277868679349026166182972511465629227044681059945367191974197231245951539281960836790234850492825479257060526511585936306116161083222573642745781435095665961676162447075924699910527442154606343156079994639263718999825435418284097348364430679389168126646589721056509903624546278785118392312393412296701384667907343155877054686876202903409433484584681440781545894062214354389207218642182331990753926953409564864092077382197543424992136726690912868373898077501600728066149607561540222186621548698505703279864424712739789436999965922809695466986329427775229895557786438398095850005169866047031863814228498943931701875491635931856796603035913467631203107231372884027639320938612487613950047256000437220798798190227266002395786155290119594629059512827503849003844093593289361807258915776473929565304817643496428740327826970840686798042093719303476979518090702249198519431828278775112499794640775507960758478843029663405628244020486400534114397685023308933042439922923237029710628391737447501518755099172269379320102771029619876675452374347346689995359440432002612263972399501965489408814658259781714320494079570975747686280764500666825343950649633439267842106304831269638945193791355268682363556334643622777414716770544685963509958415066643970928394684303615955865430374244853733409461645130273854086055863911894001822283097985744534139016774601969875909180852225960173706554520467215983624251097740010218826360894608649392102033844903070587951439855975211462104738485168692752638512162527577665655094417929157906890778179139267807151562355319658164886523506220831866494517465888904871593207667682946787274455940992482613760412905452935230011977678148182068242601993005495436876226989450245550329704352224956774530556677092809143303228397732030520733215070992658351512883620807946162661761117413650699783690397684712906083015876225171744329022574684662935066834772862872388506889428358312016418739405614488551460797876116245027244722803030770900211038276893676094789482974707681179809195466027878072662618891602030895942268018236001648906244979827572736170101819943353791819595558909639712866197028024185869105925665767809943782648919496851128123325912875725133932046819734679199523779641079448387133564581202849690740507430176091958529210550216835007563500891051575846446955533918504083916324222219299256142667280546865841217105019108854577316448846550159648946046900315756141239204846134421287532661870939368282306811259866206737551525243363229256919450360178381996423632973068015144949502846641694950743091515655487565060750695115260094988652674941775123501895800580456390190799259027594666349564230673004112806766670878667929614162247634539330060695050604843608025121573683086194235615051513636007960846735223844879834264708832444483883415736297408008457697292220416392765506173303324804435124997737354543206690744951158974350206663650414098562432779001172554748734199983827699862879384419008554630139340625246175977854908611840283368106139716845915637991563351265160437056146780082332351680542013429670691026512298678198320373940485199324293725657914940368969538298233926139482935871601823943623428052129044291496509702891554399227948049648338854506185796097138004448168283317383344281733235803411914857805034159354773617667257204540028922226699228181793729904414789773377008804386365934622382533229822473462008395739567770842595849453176406796208232088525500033553076261079371485862408330607936546321173695063783925491151606189204264606871451047232541853576758812920898733696274287168161550300388435418348397753294172752518186852365191799919868339676804883143376037195971707838461281254986281627548840715097189862294567240819637311608535158583457908583347993060491353099104064934227539605939587668889320591697211147274229617099140523872509069077200402703974686263452434703166800601011025745352284132490731694576470479360916408413500833145770127616355303819958524529939954601923720340125860201696370574298473554682693834878749660876882991002344648934398582486426798528465387952567331935236604687979989269595149075492257616312464329467201269927477690710300972060944261025294600727608929493649444302795864961849796604220815161752505416491609521505382559583410868343621861139852076650617600347966983425934515965476921796202323217625882770167243935617546790294891817863189125988803211447082598348979769759750592688411434503550749251217885303142597747039610866427300907661279879955751297169058205720973113573939139470625486882816100150793385689462160282738713929082528112272790554660171647310112051333229008897667423242638573827477553575212336263769357498912662737650845973366946824180795382761775429308877659499644863406227216062621126545829776297940820354883929504045633258392285107233114420714211959551910931257650206937903210261881750253684389226428530397963298014258760750191773036173088029746961203161180244924849645949203668613184616326670511034020171248273694286042670651520684091643358972718126212414310098962908596339450510036744701642286894852063908033842570834968639867071066108180431217770704165309256422996751109635151178376850177040710802894560781135653595486033374926304173404029173555760196553928928617793641338666137716988779075878854243234956319288268400643025047220639872299414313011187965246752235441357752928474645237587508907063785630965199228214388121573464198843699758424959696943346975245052243580808457947250601964161764923742382673774859006357385196498776901041483447687756099528168353659395258824383994870170559350316237148801420725347386897775461547428562349474682032492508515118556144055757416590641997211355245546498695461621460333946324752397601995083306556906310501609348422846313585494098134521134226191109111732774475333854811558285270516582924262260009002465109475331588843499970939730645249309858037021283548691384284181388069403119973514094817322615140863045210608994860850157460247414891182462666554577052644787207199148379111378096825117835493166072072875174698426746420675437474074514152396846906813077150725166588186831545716634367276954251456735599148055708171920257303636354528902223970516996806842961487245365129281411292561717480326440955026197128825141428141891968726741997242278657353199854665476368817652323212569900218959143564682588812989935318061397539810480741905905047447840952804817938686016769651063840656857829940487986307309283762302276171835694515699200537584991346195212666154994305251692556134608234813466501258296744744549899464386616482725629123515215797628459624608130716624100765531373639050697926921964926456437577370552931937353441815009663929163948743518577766052216209101230653295580781254906471321902730238674242855420994944361988109666190483109864107316103478579995342495448725448461922390235644537729129789226751873538088272738954486263302531946144221065958674023123984482088092178136798116171042598626764720187555762463804003439669114173775595904730864100845808226655643711449773526368707212554047892117110987524447238638020420729818779329375257793254069980381416994472161042758230247369591390867294181269389318323056578210508518349649153800812208244606441032215440297982206047029501936958049677002375940218101063215415154799640723919902620596717774744847847352469717827664936087712310235661733705554626169991934707505684036973646294970691850506098745620583139979176601463022680554167608234712661210473314619010466320257659808158856062572037339370642638345480614803452148323525868418258924265577581226534626802193647748978560416252487259563382176632172716170800208973186150996784158588275854932613856915990914529814618047255903810270466996411981020431618734674570325004460449484332040803558069882783482665922303668789902801800296665529817123660424184281527024020425547727890200364708791322507699163666222492827757089106465715178298998305407300811776289789302431176626885949902431089473609959207930644821140170865544344978456526039986045608968604948235972626528741128874395039547171462874065948301148875679728946929571946698864845129512895345205452092262526222182322105271138122106718032485712472066421102804772552701639740111741451582015680012805591682078112916050413178088660017166266599501117390811470338657774964411061413992092759212778802801359753201729634720000643975768444272240677109280254030541670812026240286775201508812117216503547337412188277392026210337915147783808495377089760166261472571353457260713284800329980915589525500495150060152185572211865466831801776054074153463956325553134782458596888915138728944640405114858591388904640276372630836376399566703500897187099791399376850168415180169419517160727135378042527069539904268299911678243350600603033045792660200356263890472515711191957951311137633836354326113530047861546778345229987078475720188664211486285873315021989814812876468983022191416676897486248408117317622644493642136947211139697241502467827702877557103688960732851316869726934169117749870521946038800511294357444074465871046165839549040216185583405121711432821502121140026126850427410242770548016026387995837278179437507206801577901231264650348347909090559365433304556378774788779454079553932759430939732157390009915905594212112962723442914275853452230480464229385564956750830984240738108939613819451348402529120756054178763986008109358559654340043243055987134454995819880946618510332418883517243511969886642684267073479526232250458075245284593089466110581658922019610400652487447465022763096460135834690723511536353420657836038088679688375205896209811672923649341497560785278525573562091608822700465410813321814757769266547275354433578025934093205501810503885329128451928371143682901580937472824676131621154998210451308787122072002428336177443801450519570961805654726699221717094149905090032727617669990410731678056836764614983062436087436860533259598673824809780602995344760968848809983789919080467550551788962064436646403845758367260829285001114899521261964755939946401605926445477947324150494621512284445991000331358876170253764604905413330263359086712808214727796073912694580898359089878950084727151000714872440788666880215753555751063922418471982819596959948184256165807980387961729795061376364932435776988754196298594748442095983374606130704546398018101368473932775695246879115350854553058947009928610029259517593498153768577289956651289090094482374605914594584243488471215095244183856793002108514943160370821910160470750762695265073297283683809049101238535633461530069081430131138412044701783817272455324720055232393270246172621245275557883210873757575157029675609095943803577579799292267186100179745207074502317726227691870349563329629568272585002843713676666139977794755036730005674855014310891413447420967120672407278225411388361271608135742230772063691206372142875179561861810164182700940430813734873182994797526961626479030613231844750897100274963980489677458121354329761226960294014758118666422268240247721369012286047860105692755047612601368895768335928294809351330013898586693912585375635077726863859686611101641505798497551537595923170825319794401555033326069115289641143525018350309431936553912772116087957050527371129368467447032289713076892842340190757529015636456781329426608741152286385453287501624727606500566743543786018672053575148938543756445278072703804605753885696193802943717595408549448178960762985429479993531192307030034303429474179252515356905827905538839469943974502102757420838030976875453646069997131703469229287722314241454631290201848148284101947170092540830357277779812263230288079370658843873031136236861832901305155673927893886721940536774571624058880814900806257501743194959472354681884862341077543526717913013636218843828982741272609982052501589267512585571403449997550023477096902880701211190366208986746988753827737963259616941369602577417646626309137080044898451873845809796193864125710644085878705167147738310430249514235736440425361715291280598590980841303766187966279325517005677408780555374010638432355225402560958801009481432587853334435238429701050921010486563679407646501273262708721156093710657678695501487209657663972847913716796962626276607083493661678262543021714896484710880483585295262367885620349255834712812539497206560248099796416096983630770371960032224305276501986860563453861865710687963944396407135099748748780013458710977461072831163665833001918749432360195537878003384015025010319643576308341568700680387030958968883383274300261428829060983708208269935217698793423283419398850495258431771771105250626658405311176264750928859783946785886731304381767074844967388827113680675792564350257617458232091031017187098717214701386325023896484497416352794675732736672623119669567580592562989886349315079301506109631020306937769073168753338113085725014127900871457479039474386126737653007995422290398353887792565459754696418230840681880897124528036317627477000050472224527694681438065831964759467970535215882670765523774876228498611016696299473864288646485180551048915103545272383341445634649669683262590649062114595358731913495927870437084464198786427189704114118097448059520889859452021593010420414524617255630979953643555615401848311424871641681427313471121824299835557041540428219074181537094592660370165027327565831525494566009895359265110706735524297361712420729526884648533691570163881374970596697930190510384436008134116200146831578291934305947108067293229972423465351443109111412661643916875622192844134732047816749330390002275788642471343329611006831155000334772225153940148431291444560579277074808440389423667868418961288747922699504751740993571216505549647708373751001839057095294182228729845251462039981953610301499798966028089108667330738474671622074692033940163755221891478642437771338835888260132816685602081966985942937314703101053340693631502981979427789412286969462189159494610454757643695892217299403925910548914673077413553031161453297416380833460025246877478049352240350517655916080259691156681287976865122377400035739481332162251326008399859706984206486222980606479996630050646127376338103044096667037462165131823287064100167264659593448080214886497422785140721911611140696061812940536721197041941967067459652588325996728601206795253227671989599912549895755670300107289699669660594462681169982044370574537688734103089995788960777039158693508814938448319683355074279576583732476754693105047065659838157770502316248781880518105935908902454940720539529945350308633185639120134291565394363468233129787857294685358504918733065387754205003795373204701621515596661823043815842537085653285296031892521443820848579975751318738345781212584022215917912500516677967811612322144275433206529460422313611330848968359359808716812554800867878480122771967642543418409547689601303771607136779092935540334081006195410003033744291700258596781454600008483548773638500836128483038405214597382125189526388328428604013396831521426150145797976307136656718810556581003882531327842630649797634619869540982706518935095113726519512796456846245476375585185219600444646469501301340103285838124234236269405772239364471539026130967545685848669787805970848356398286374455630448852560085298042318312688148050428572144006312590991255854026126184600335133587479684683150497169118061248038914334674734488161377892232926148684555274717239836460146146664700701134147389099348031031800405670662256001947424444244721482727877251383014644206512604986746424825308542879898613497694732522859904921939328030277201728755030898095760870272518668576816929927013994676296469933204843237174365379186466364478941358356529058609265165564408633608140077381290841693886681775840603050002436140677490666784347271691508169301635709202837887154863920013817628457937233485258199610767017194027906022063493965897222677706593526583536498020532978471115285187785493481043298703462968507987371566149120576794151543206634350838380023353157177351864281436916876793808010428078624893453308294691606533823072951224231614503616689651593087635162471430516988463255825499368940794680374081965676494927884809989654137601211073465503493745555883596920301841634394816555275935791417448199692771580624536488345843962845015287606189528531958775802638818166072526767528748079666961569031012985226483091080203375248624808866570521046663020242709657519012616548509866627489065784400736236864247080152982442016332981313572693527810480420573070070320446877160648674550360228460745498557117502894913800307371495521893907901531231610390941516319843360157032254545047417649393866629986589665352227747076934831229530731127259550123399115322311936617385050003440476004333250218397296331162930556110638954884898262724179492065873937803079101611173143263145142447955172125367440229747963933385157946001613205214856920997760625734355223528187617486987125315154874612252124879516355193269707776859646463788523704774013772109604077413375092799268658896496533627138963686299637811380323284068707938420602396316535543874589445468314271316150081271040596088297005278906742871385696254217882043370406975644309043928423446401625274697496502567239790641965596316058735744591718566712541727784960802742753324470882665071152079237739173255327920892556961687386321575716873154138839925885485411746647210784157334914078475711870829016572663222752797495975730098079781924551794902303425716700551217763539269306169530138982675848717673053720503983485203919667645721342968158656847368473379120144433435915947249890473677380247452364341870781788377010255647517045598257672368555334635689904519426380557582195157689170982602197758434417511729641838200748219849789059473535631610411927789338496892118257667218626732876250364141831238958683365728344274600155500402783744584170266153303804239686398636240370306252068952366597771482164830756698631345791507214304956319924940932596250577241094897316888454292927637683127981929021398337625669146192505075479260058340926213526159806520325618986447439674472984988183901519318900135026906376380808585574551692666206091308049598992022118397805349435097315169570069721504319001257626509238812938107424843161460697222281782072304422975605453223807255875308427511524020317941079316743917669824286065055461973850384703932829515417647039886926465462287096000853591690080684228880975700857864833439623759628924102589907561390150699109809463589011746472212642795608185752590168147378638313247322853998824120171787888176870298077891371930147868552034661189400532649259463956098068146264315315181791359189292653111706191742207388808764634408239953526390956634011981970347377580046404143190676727999681270417305551824779155248312011531985810365283557998611248310311641217161549252113567543282080791323553259651125000763900116754732171591712143278177155567394222940760390557348850432257156588266074903363407178312371517653648602080567418536786086935447665248205159203467132910062972684103568574868603125653846961807578627717408067494244316751015341212587743514055241795450819865950579628092957129030659628865854597836594684127009086495126969205794609991043433181200765559345920162901796905393853357575209274263082370859634633195168590332589803349075753756448312645044522467506073671484004323916529953122289258672240237751150730878994172098965980761111549712924163617745481157418256235360298561465547257629781311930479396389602979626637244533079707169264583581303141067455432129692181176283323199288202255764232778911698919950079376615400804707572201579446939031417879693811831797643715700200414093104005008893768796237493582922619422664796039412255106114569530563652563248361346420978916959368456222373209178154139484272637255957489983611543062451883258798990381260374999061053345771143071763436302680530572274977950119685920180145191393462958683688905987707526089664691146877534220115264217432200986975578274331891172348753501704550264896123285679964097468765726207020298257758200049859741879225756807292705721535395447616859765844644281330796165389439964892707163212768789037795779410764876335712535534106378544260067763286168977768856915959627537507523926493258192569116272621587560400925093601163326828306416148606849243615061307172145569445974901767060375111419530694176641762363004157392248390939537903342489897439531147852630123229154567236411534442484935175825437981889261527100137769255234187239639044849108832647361440505301327908003270777025176537520775698917576826884392293177084542878730781485424990618671028713463565403100254541034882991234071455327041617781397819986794958104772590730184680694527535059532638921892880394077295389186501653888599800149761168936893063975529545726571615105881981363554235424254505519089989173308507077032308466190921393452026032266860644867509123535207685955898460848947403201337881014127136861520730099983991418483976698586171109667941189055003840438462362176769577576262310520658719514566447189643724917761927029219990301051159518246719186683532457302935995570880122110416497206775674871505425907928103147449635575374602441680315757089456198773994433114188334090609916814966158021600731906909874952620309548101938680740433227499992242927680461279247021887508639831175018822068411844441884366253274522578517773092470937771649166988833575213559404927355428942623533902741602197352712097981085284049917227544817873359771846484247150359094640444577857193226899095383100514137455667206761597390122317353503734760814941916468595869344771073440929175837267602545028539696411012895583880295382102061042470036804695192870377279998929403714109097707124193301808938653579552516548074755986654613829452758763404163169356424471215631760255623627529876729674967714241634922734698554058626118955794985752631881573740025948781882929021875520620032593707521133134081019163372309953755310797895138519851838649797774306811228178409541461846055492936261391754534438529488616221778226817890694509160196671864893334784517540544887970318839564684204623705978724986240764686675780739607577403353032033183804866813476710789178116038296035785035328103622713558732239593684964445478136729975022137118205324935253828321764054749351918437677161541775047890335978985440934738503117653732385439838949706515669253280785342501265663655789052625565602847394320258221576416412171341065181554773098468522745785174468185571889673183006801950469620954878229131793573363021909174049580872157118418734287141899284811910020709438257576450091077083769423674244555546980684914938735064617337923046085034304009705333648445914369567680414106600349707891207244299393820486507059018118927111311514137621613257198285544522202897014947470898030000287186695775559305689114397174611205198932068745334775720279053731084070208410611885076081393395988381722736988251615183406101895061744715851766218194377055967359606778391511751853311175487063927563870538327397543133779155477678124191288573411304639477959653866828400124072403671020168827957929022701243497163674692115414820079639488748652378041089366054288517394261738021664311245028660316321612857775195710577351685041602952639240299456634060892965968995060195443831817527332295177599630174612574204231482326554491229780967346250621230285058282578892056415646447585776999701329960146112331102105331159043141005189138797032907065028387698456179576433110586836178038999518811526431331057748892933353797641924863983106746815761406775209933378505160816497873426761932629643134058908375161542986141150710518221295352710580993075339803180045103292246321588930525390488052605532509563178328887410911158022073610227960848383328279509353762630282525065567586827966273920006192881202482130302448285745659695697721415586339507719776318504273018499560912487678464563595564181451607165615453411854369667393217281873488750685192442111228336199400244400422413577697848130481485720623698679741696815151406861994404726083743399491688808116801079368116825962357074178001318608365251308931566641998141644002294103205684952044329291129512959059586435515391084549463635670687162511666216315336826950360468833647105410609107417285532055635300192393361985717143112800386183792945771410304544399995766571537923040445977449619934234295536710794467808906903284451854333696227867548059945918710374394025747049437588393068414375751858915353340400218972300752479136733061037153362667370830939529727290737602971630881557012536027890427117585124257297489311911237986909590489989005517121343473506094046377284590406508090331941407597745989399376750185713605354154780264427216459303414722481959688503966098110375660643206249340140615780684816216616913210039993630094138981528815193334717535402928786823614405723716761484118511507592123271976200205846589891792206550547182873592821863020077248147501703569017513105850797483095546306608466609701234325289433799194638201420939700016393394087259603481549496077549806597953111361910825641125104405564580761591004206194915261862520211710671918946871273582483714562614454236767145251328237878189592720831498028199239665693144598524395242451463816897333829737771425904217468494725046230083879537382459839501750214741754605496495753572421868669766757569929785380696147502380674204094861372116924269430899191893995757734235650434232486337520405663054428983050139253549307106405172552827683331910981064803760679284503545093762672985984520106429014170572191940826411703470923275418964112503110166957631143118331731601274530811594424187749895433033154302366915953121314520111448228627565531777455422645534621773277991242916226759234931298386343292334258655446887047306699493136698484565981410718713186443347035603538613319622461701727169738616479835000143729189079191508524164722436751490628919036607795701635872677348408502457981213699468909857541267358127440827329856183047680720793115391233222039225818718119462690808276792630217089506834395531443828466973202200752712282874204484127022564999480561903423332047805432970424447972435334872513846738109708828868702208613629050383351487936884857352233321067849078260225736552032822634384710135133511747667610211281571723287263256352339321089184989904666210808719387795513704931267679841590964842796475078021306451991059057238122010015268684519779473330663453123786766322349985548981670776392921145570950349334735025710295548516082540198998805060743693436615839072650011425850854067600343889278948312719728333329798323012532440146152788832047337871420290086291810481520304079981024616751444627876229015547799146841228565159020984013908091708923002487977217519840247566155268849825586470415446083580947089338150378696119658120750543185916525015610928011334524328512924005397250870777443255298498605264271256610581105790774032259087569157623430169301133590799089702236309477290669211436335996053542860560760368239796678565132530335923954699887153398095908722320693611985817589372934822408904085257329815657255951745312548226259226772730805185029264779885024925712586529419150110889386073409081340089978270532570337301181680510170052854822206637008266658048811762027854558481623210879189827708450789412755320553516182266177526103558768282051912284419393262011895896710313613269887641095712762917246889290449111217947820703163950470558309525611542061455522464769338998254702754113086448940774042406045235786999606947980481300471957687647349173672035189258003867658287900695930246927147589042906708566293598901984719116092900544319582381245432401256058780654362946136467449700117356403249996651195984891399373218555993384020527570593054160877737235776328646490635552174661780536840836993907205295028735764062310839596802311545866582941021764644227255764574240900539740347961063871602932285563078887722504330469416355221274940745038957046277284209875646504612066457863246220651077552529025380502834643436176551645085289445972016733450609571533474447523789610632466770155978972668193739202632606494391164585102309652676316486340443904362038828157886081844185304206039552060640553463512504000303625061749598788634332523041534750434818057739175859011302778865246620618153663276119749649454137189079634859595364375786864345647766533823124207793088541819131697277090555775642668513759452237103998330860983610640813422619314717393814873262527522009591776460909347407569421635681710196542999186503614074251570015900907122576537546778749102146288958428898838359874648421525825695098322058848788734739343508698100800430937268566569623765461220664350504695995552655533179924034920273327200313857854908850003295573612083229728592816580242504359822944829842423947988215469590452333059746423911115215216181929297428162703719002954888685376426871282689039368734229863476302381981064978807673063632373989592916353042672258805448773500948276788071839569028521830313436233141461796113943914404073216870582813950728241297459861388521664311690484178282732441312807578793522076523315736083012824794506431179994366710560655332541891453338097356339111740373773857490693951246794848838289149888002843744553219142978356204805123279575137831882398624007163421652461956339152134774128992261342324010493328244847350649495079315930276125741612013949747899055992181312521950023228790982921477571310243383944981063385584903674386469972629448923472936071105539776854046923901242930483609751841134501075725172188008349779009273377870850559439826205751216255960803703884772078666106391942024154419597090890752496343493163043717259935806560827211709114740346521765988233950984911029806545981519236245480687160498363840599470515487238369224621928235146385089040295190911981325728723604121597749595495663005083161931271142243593941875453768957649920828042281564638007863084014405615449254282017111303862417801670254155814059358248671790799229535313089752350085228059900749870240675251297755128465738721148719869081898820978844979041049787876410263186355220590023905268269522474682161880624605518990329295502743811539926049127756435549179343201244543485396303148755838016204587539159530972971595271463210982848457156729638894427470575187852427652039165596463440791843320799960088167084019688163079222062553353544921253402613235920628257474397785146537957536180610821864811577996295263949721528290345895282053503420465121859104210458816860736904669867321061441679151812757251348981955183490105177544072578411066815984690709808784263974600726956496864935860857334446969527541863845047650478666097728629147079409461113414810358036611667632163719196877152396978325965654977007773991917204200449185886893459346404183068029884143446764788742665480401246065051585102433163284550247585489715156760203970543351969815714193148548118171609433223246186214661690750463677029218668927460087396202318872017359225480988254585128490405948008208371712298966617223538184796648282107050381368945228724938515749115140716681083252484727444671091523555480849906907303780275972787257771320528948101515972869654269299595796619381239839973990751556673951413678501174310584934245728222787640163075847877975029551880318846076546672068849543169323062400090675009282141910431636923819808175345123523944534323070006260732670361641972172378783043642624251902402565522926923969993495995356060125268873909708834373376208679338175507824852494727570570551163054475088799340092827145322563534770373231023960535686515308875377791239935330889792074096387345733762856522286640531870168575358030663425958302638387744711636068372615427465740314467626594612881463501792902212471240122997297433983531665898323320365324932866605070428601858693902484507121790654138900868228258559417277376417679491203345307191115485330389927334657944813853337164390136168303567872391945621113457740100794906322322116119677420511171538362121312375747487069514312458754288254784999804194628545849227213232213572264460011340159040047591957485016142698507965869100271484137585419173099287442183993064424714368223513639399287086474530464477464582335769728801610060718056046144662858830706817561132724555627536828909036179712104011374467083282899996899181038778177051759360506422669145978177993199571144766157268860227415016519652904257988240085675021334560822486903798787402093195070399537573239243386103045508357050055980841323877721205678687440037112830917623094265893256705993636816989837918198906231648896600121310673483451206292770569503632234105656295118035513621336482592262117503692051355201308143141937712219518354066318783961326068472091725666819069903530760679327047132960125717468464847767247532175101481203153900646243106117126599401809690472290379263610736987761818028236276548532055996536291749853161648031612050977466984133470195897927943759463106232253620507334871120727953695290303677711709300604837896408536220533936202130992269012830192799627109337422971791848616272581386090881448682597206913754518083142602902962296218943843903655698046117128915713058325283026664683405798489474332552282090924598215495128805564962119788053252965975359382006834935978728773130491606686933509115731010025211804668235977315145618906021910515954738818446198714846494996509519648433512094148851485329566633562850652822744569941739455187368999223563751419746167939305126230940700493705933614007540196512744999961620830971410169412891190362518872962443075038490245614755324300378996949139031754805419879347506408195924063810066631508004163719181733737848601560398837991119004674286230113622865011921654855507254397693025629859461202522789661645857351832091419220349478618365122650211186231762211012542648688244320940752054537146507107454344472943417357646862003608479796826946190305480533402318179116306058890454866396705470283428964307610859040275512166720178807902082571784830205201358415683698078959765394659109848097284525476392419974525013130354268674669413625504341265065183699764767278945564186613268038946160788296651533526770782615802191444223719753487031497673794719895414379061026747974486151730332279654644437957057752488108265458640301390036376728620809722511262161517772743264842838211013617691181696442730367125003484640709235661367891485784923929545836495378850346135578829707975352770274040145478737243478142774605298316475191728212370394272999641727246025218359495161100642115469001551483406432256795652192737547820861743478269405765057686235329556913011874959991461630704221760574000660646439119359727743219745115568560570669799667058000478342498334721106358113891219385299793003144895463397599422655894413882045994601843945425908374994777265089776055651214265384311313347435741952968421131929096769181317464358917291432476632922409701374534220563221082387731969669492936213827050860647949481759671142966188282432075205432346528755031113952163319929769760048464948229431420753830725144639784795648325809988661646522539014607842817119538559981577178016009706555614286564417936262509771256884218337872491852369345002819136469735306799267929347642529065544383737104529999216017902381383648177724814434188963031907004487257907383262555078168610182286520709665051928226671852309224081658253187202504728480553990613525842075830235807597122214449808269151972676853896783941306851362741087027369307585597398447486877047868752672152658427653538276691164191345067828539008729114179509484140394327656114213397291049971136047330774854570594985234017845902188534554215774138077127398844586420087772983519337358422444921294688178609901856049825658721746848730136250229934295544312709819320479263620026400914649006707639872107652990935598678455446956785133781796077396068618116218130994861999261597320007457265797929107709656975725772735357181637563369463102240393885120651941987387428012517947354631093319265942968150294517912132661935623561501805716616536583635356813229095775483820798051766666761829229829692283236312982345748749150256805917912993008852111355868189567769650952256863812085412607109741846044443425271284085223388601784956181075686882315179397067142093653656830309285522249996158899626619937878769142833934313872210482815331883953487948763216169052127880066274041327465296735429740074303941853323582469496918392192907718038237886036611886945087642776604767244211039201348368402014655808433402838856214233144192423995863940204885265241706810561738891223858029104214032822275845060121837273929373688942451866539249816007325308512475762308807628457857593552976236305732037567936541632036636071120768917175938360316945819916951122228206666776656556470883118183937351665130150755792951778891085561354667900644579885989943355970126617936627191675890835247088272532318055729516635577164285714702055130995781309083437774686055978962549711672857803317234373662004792881535459119182588876503368838778720753879044105087218104546400849270806003421539016563040410510594200227839342771196376489618348086134445756526914547777275153897227516185238732338953959547454041338404470946744267410373055977812683646560599978160420216743493169164220274864137692431034819556828308130479277960603355098335644932104371516896178515153935798864111463943924456221972442896488929711255969892223950528682293502117864462050919466669228878982490053686628382780721221673903920186417931431119526908067458466943650952929716212949595106175544028417194342344863754375949916976344425188207278690249490762716319023674796155262790054091384371122337095424224498725174827200116185766400172337120010559938132276247918673956763123271883663845296034649995764484104527235128477463057980850467078037626296059163840798055588467189259796552457431184105903327191466638019330550188444927372148638836941228352773492485313084699020968419309798501886655876658627911975360517846585388061941377679093225624169149978188726841764973518450878300969576049245989143065625889004337999406457079984301338909759389217875316237592007350316596615675472016874605268073912337546365181905746309201765368686292817087606631988362842901262023657439297820778451323285537236787941156551030557824135307190829414811379962252659121359580489786501268492268365885927209318976971965792112486986767752191911408917254325475870032096709852115695485202340835775584797120639585130720262995375509165523224746816290616682580227870275255181129066119031733081117621868305777835259649513266560596878026399823662416876068214656199787347333927107434912669827731752633157824890730795073892492348585627695703459186164125696382213332376971526505433453414585692034819967814797282852647536090309612852002172304491794416244652658469507461281381562688956485241038612037385546652538543381951643384186559714157773423839402182907898319930509054560029973163405680476054079307216127282368638399818325414453959397469309428090208975052653622603294634889282784089189444774166304927017294778563302742325049102994861935167895223843288191955384123100026415305485177234499624696313975700276272720491372483150515467771560989299475603353300295033444914006402043780116856454326515998572760967967388887634224219353465188507756409553972788547037274872649681482714355117584492988970819807355324151402106127507135665909151797719186865524967484503954808750560358309742192473404440542812862250873158157567631661123031975020885665303493460702923441158397315028604788637463015989554427253915754188499500177468101569486492916065496176058814928548063498793281096139328481043151610319222798699209177595565556405280716367302497134937579897643875831665939338796702015461010177641287616729923658838640295586290841701071122797388573944520626614991855182335750518980858870995196663787739799288317337027382487824070964041854457607718523855390203960504992203513894002132877732644271673947242087596909909348562020602206390964855033139054571860495174558000406362839273866166342202981633929540678064777366968453974131601840140669480697744540717295191993922022978806113129357841155717914325710202932987074649990252810511497123667465304496515017338909799450330286033671786936701003511422699376079024149772890558434488407816886606090105346405075356352121914625681495792216326066132680891696617946769686837166616327359791378474715592793383329269335841436673277133574679859214090177587562622597006405984901707526099947533158197996003923042088698620847490294927358198020040298184710323399940886857605269470968259736443364673409722787248231456179114572178377373280177360996060794565625661349377817041721181760931647430767184230722933388168382456950440834996883156455662357864646391601658435897255202939087727543029115085523973341869658861180930214268790590656896650007094570678227258927174889827378207261534548404727306922285736332882061071496403189629661008881951802559065085867668490452196702543441747726896135700799631121750144979729583068774599156879619919999946896622016659735735451640399824457357286192428402624288142134754506494329358938590168172884150536776849147470788523941779655273849817482313588150542293847380190101773657795134248809551085766750768646604735347449717071554396284503810782890835150204110224559025039879888397602300450271418263843340939624954863553533512204476649566236848140016457982106790473137999204317049579431276054313780337761130887391030046250734134180843490927365344773468047496134862389374141863270501325403300433076289554113937664888582518561519082392149589330727854490875421324657134660721378144682653241928361255760005023551878443522448415821518476402523597011407775173676610626937417671289217876249153148401366566690226942963232616519165072101220713860974312653797127855410659104552461638056003424018672297573802709389150932131560206549132852828996340471757105857051166875178089990657305561385253395489623201348677258355930918866828869183607604800645174813421639953386779236084748708512462078866301766960322443337066457073800688104983311836192990076058586309432176098523506742123557515281409462800015582553423550678450688042561395246515532881136718948895642515077985501382331032470740822713390508612973935585209085203197532289199301731089545779936456751597320398459326624203968860231077390433974033128918451267001314824110355164614877060326243472431044797903860192927756541435271778395660531157890435972160767084352045112040468425374632775212817971606657184528159534356626235527069426482853945066369157500449789399650370629140271104610858227862440790221385632173049465647205343684248245171439080291234275937614159377035591140687007192905779293045439469091744172897188031739833060652973273870673104344536750948937860491036950655633517417218636365338125412918869990674219773308230968794199451321203122647242779297490235506757530870502132105014294263557463833754057457600869851233783648522431670091137143025185914564310766415819700085769806618786640027845381161865051617899286700273617583723238187470939918337608150188500857437512330594322736422647023208007556774600719185894959556150043837404531110168262652638059490161605290882881614151906854240109117182537412963129008628244178082486754448671876066344679609749040369761058348129428286392667676497269703596157214542776426670128378550282989382734635736834176641568794524075200467937217354478739622288101550894519149203222744242331834966906125167850820638277259751622276617218218887704867723525580631600174948126778427068556491840298798082678754975498561165464201945924841019145908455960053713516825840186215804229106590407959812973285164238231556551566299415292500463158413770615830836619270165084593283647644734226452518869327754105930107377393838603946019569030399403369963081994590121395627596223263579750493953116018117618360178669084784163075926581306734027766354724238283844782975495245283239011234544415968224952817566531953474577917232891451922517164614652756423422207967282468012699232795784049092794980364007195773906750141605511125443868425476034437539743245113907043469338660283047287048553951338703169438525170354759553397487117343144417595562002543551939400737274705449082971938233423149869115138451834132655770140721585808948876298955959059368451915813517554529766980598517633936007296073324834889985987868860770104347375464385061168836463639903657452129297160873619210262223788435479108404597425127494276345102043426111929011209113507448472281345688926092004014961213730109121607493575706206733826448780233372439508571630680217895719741511667724680737614596636055761647115423934504984855581935915739009249161787923670880739684764002149155134048409762202206675134161275547585548586794305410123056840617548921992476968551541272760872661560779578245239724501028149116444231899512032384274210056162307132226092709542579231038956979500529608789605999907310339290916282134897589452617182733271475875726992296902114133216384511657515682948131506835339921258363970188398468531372512995138697883595587375998791136483552045230937753499053778021898922304431387059222370896539109758942815997713791620651344474541879004731006208905841297803196722810058122573823692241228453545134691426136181391721044984332740383930126121770740741420714493960744562787562874270354247194504545036507563629591038239124653377694277517624210272194024796554516095974645918376804116280142172587520908750766708817368091291898958507802294411475706553106855166240297019150034232589161892961548040168556452273295937787892785822080229947665898259597159565119438804139363846797029421985994979442860282771001235848760388354930815156466574802240361499228329783874962279068809876088846992055236887644423443739168750755724702857262215365432992648088652044443865040360203578332640153588156626019336599906090690802356580771214271108688736516026361455400956073233304205909780394229408023938558994792424694271545524069712341674576471453381057874298955855841759952824091973718619941856862461798740616936743625385738824008380986133918575242487961346432991934497445879763851332327364194222966901025739719631944017433176116015269554322503616635024492526914523365144255471375164720477754386478093356311145787597729592674831815987209870817488389450241571925389835829650976683957357266345663967162038510958294620778282989517647049520918849310268868562146260889549827179799535188090016619055322117717404305514117144068916683368097751426388885952099024032300783054685152471562891593825484264730097401906229972239872441115392900103159122032677818549589160291834317412311083252662349375989443476701392072023530828092998569377525213402991936050410917396756683421243397147721950776280525253027883969595518771177734604414488054507956732164310869340899838289976888612385624839378300594038098786954471387215045796001668441269319836010965341801793482846328840403968367299043409200825390675619466421964309323199425368119475539040155154719038994073178742814096477863911662089216783098407036193052944184100335924358341631784221229933298133662814767944525894672509343561652897339256223386701794328012147016753057540773996867976823109881444520540278607105149763076629040402201328444379641132806944325261790000424817711946204666279973078853971987907035998841243744944464841530908393314026586377248333945849430609834725851362577544783526475766919757334222302660399292749087111203927963170430549159617293988021907724567725034912900910700036008430373399916576476886082547278508269716732842980605988101333328319705691452560960341906119880442192485328137029582985045656441925994621170371269779222586120489978389991306368865067154128161794806723121977894610174201095060973975451426456729618840169151822781418001459693685365430512684369770975673700592364172425467162437534028966508258622342817740340011705392545757669373145462137309479070088339773924634986017228055116636695718899931833979214102702248134506955775890511176782363932690610037609244123323159511632644567029168056527576593074572281937341273417006383834930331379345674251967276292348642362335788692987065246055483392860698389733366456430242459838935096282874488436688517536316889241637186985345367844717339548600058061674141246062090374585355885371848533416465390048483749607612982420052385422612724497589925368845637897289155417156770702964579139122520124862614162491136379987969278623479982529446661876357768789892906894353541310894575975645998965706048106880142378226642588316521183069672162933020043802502053389038567815182785454405460048796212490487799576300426346638069968118625679995341234839380729267640111012881886487040191008216519279743282959128414245926109313251829981088903671074220384621417239138662822615659885218412723758798555345773185986113044749964940331512104975331514635085873171830999345916193443797951099021990729537857199211029456799435470909166656314470079417574229367062817648097211004597871035604038124859597570908168776325697097296453601372335042059312785764733961109944749949989603724857542946729102096008867902892112387424708112877234579236396610927558091296771909436265195255673178577898472634469884229767129212039699871689873390860084673013072152445021694691904343597466766204447268323896781768926974327283629517638625392513141632228635571442126968478761862711711896500494930876961947627183983039233869764528152136600080305714974696692307528008122832342666409600961482408045278994995309390325764562678513714073361725983596054340545952796374498518899605135725122657302271453290150925131981412894927560856602342708845462019897531686057312972468069483750134335663588589429550962563120809771070603889133188410086244500371835685078392019152959081861257201257859962004205672292240195255263983730279670094581721424177761985680242887894157048862474196112861585884979408980784959986903976331176464558099719491781388718718396602345343175728159215712117649933745254739397285466480058132755202211093482845709171660038799565220538625366526950734105851308818384338497270003823486897113191605048992528607319288285061367934177566485515442657060405910870023644215629672835231529509759301364581345428912676652261850943655153253665924743523907506218820904607345618006145885674746506864085615901893688220918487682019377398250879637159321153558367324636887353593855605074650979725216972295242859709573990942811426949722323059781710076142269129094879633980083899084701325635516999218695718031222505104154106957234218678687048009282862999431845830448310233884993579793286107804653513199944810157230533088821532965519843488718334928079256456473304274674777298127243365002254036887067827952162225766183018316368497089822663165994010064935092218579066336142921470574150954101013323633200778198649580225738332898414192791904200496597755430758789272472756444367558448632994985105164533414009818566753481991952554992647642946560660180894720785178732195146088968629884534670346431300968694934087250081229901384398179612196179107994445936806346061976814200121204013475559689210595216727789115818171024202054973075091559889882574679022474091493443123014758946516863365115420580497961634152528482555659246383160782306090323746944976462711241734352854118055896434711099756082418155826145050353080481616785259236941708552757124815512127788430438977710847843654224093653736235428457515433165083393310371951416706469118772946357646949533153131448303988881468732795966401788477494779722306488488490318922836784206356320090980393073907981783544789639727949126141325729455699759243492124385751168566046786347937268113168084695392439329122830193209852774904440894579631336791875557326193708987057079814896282425476226059186483185907585466604848733967295396448585144004682423345508865519618696973234798865572374933797257560803013477702188108328679816362804874724302723731270605816206348149616990932921858358444928682115179035580078529436826834876241752172625298661684474017014315006349860771506573474531918190295124247497002873479358016334949527296305418016976269736543293125417763999704783409796376992184071808134361132126530250023370167216757323592192111906721554946985537922876852140335039587153743695474188075822508918307199110704371660439024559085199652279229904098869524457109808438194821848141486600430299667706396223920677888144822242312125818334674109474448359073244488432634747200449660618408133559368508943097364101123675513574851705900722186666515203922047326398794915171140177955004682810946417122458853546731877199664650686029161381579512836714979679499564796163251288045555170658910238146423162991389987582997102624644327178808964882496980496921818088100482838142202264452588962440073912559628348513810453551442508623171062823502584232599578489389742824188008466211594688603000127155727228429524698961287904650056557053564355282939546509897892652173860219526563655726402828991699045218153357286739006543517136519312838491351905234185014083580501453417827095770330637253062454724509997372922920068818486940096605043171262705740447783378432605408729735961244912058359516732150430420704208359156459431491691912481415811058395958165021298939883972044302246176913145616787785218700233743588046606676381633957147096732043891154003337627788354881431726303100333227701394895373991741362550070691612371604629514336791872949756009460533713067865169007115065912077360168990945031426778301044486698093887680893643121691614128565199610037217866626336385604029050967068165818247852909184354444707115403160153569471737105140863124696733432521615391620709527847821572149470739218230585012587398789621874860681297706861385102065962705993546763917413961630300191276998591840794361711958923456964769969661254506502395437428261415840012665829618345052223040514652311349527526123792368924599842598946343721945404749459652183172957917221899322746451563563061498167616706616987413107574248578855810511842075846950590477786567879590586116077464573990677610180447792403290354386661891551846115502100758609024368972401752845706994852163931490509624935664263515944414427856178039422360177906086366691400877102736428890509605916981331594458102302658139671994366002353207699683784532882902624455908912069968947863563368986005897214335427759878665270308310512010102900614724868260232233154358511741676513419681758008135644331269983306925190634582487095354222264880110440636868584472663931105822266598674393671318374037450791878670894184645529791504356814896449687831384702491372553709871727224905670720255377748180087565445154006780681297490034320595767647823778331976072507162392949504738022052286748148184098318836227550183439338284788407739372647310466292905163840210634987782146270857770136243578066700851188669454066745377906260250549980111693643331446428528369231029315265920138275596120885460723015064837622638316155509610450673762007603116677177288218114357202511083854560344321323614567070646603481766083897345506213767827216199079998758727883386731741425303511798291015384836939151682451292819077249649651512913095022239556954466947941315134589138779176592297235627175829269339694363071323822271021821429320388218099633979493007006089192508405458201514071740650028030852376830319621723350768734163232169030416132280630317299643351893124984731294787664406877583453128708641582372642727737197839727503250187126608632581893514639210926551629460476710546217765087169363703764201865814929203704940391126623234073218311953457477043487464244296246719145564093289126386522973153342944088785518932562747709499834156776646670921628816996026093002145857295662414119721637093133572797937764957934868160047135112031150282537210840728478125013845329809321433463119362274221412392457445181503926857688429700704355616528969409433939359523668218747328148085598605838589165695707667272215995907762507207366957241016463852771201717479000169543839321898796787176997483459634272295373306181862980994632955167536579859554416571954566018944613980627584133940982782446329818772035596254780658651986286378786072846583644453465891917803180292400581494795060958600420088261062765998700821221599416124947341749197535651417661267235006235984611867102358142262901553094269219086632080939626594414906982472291963218087102449387406414093774069714756363875383994553339146728984270995560391464512476429347551510552924759243384086485305502755653061826385792009130620480891459700571416154696108038849459406365879709716140317344062488399763204147960831653729349647002793873441521129544958308582428320243071004344479402826151946278141425392790970709683674055556007112514949314959392556860673729783049279247898135434735164887452228594012961491686359950322900681573326336411219188990046618912137451555202841983909593871316206378868420822207233086002559773374129729752679519636241747548207521673935097793439727011139378569046558943837546273602082056520095360013591658210936258625876209047934054065804391513812499786962767261385514034992208649425660984880503965672104247233637693681956096733403878016073439463231824968409231392191980087991816556701962426592844497199193311948696513908985061164363576021637957943896355299245849881104588993791966736450892990485196270373644488648929987293674360012000138495422592036684669067122651822661069935247107979144262610862395283226082205222913883140593924454167468794315427655971858899224797178142983071020007115163011330865543425621653557254697810018565658241256796050295261357996896571045945730720530818844722942174281298577742823046299903508994528720462880356472645986725760955410997382289491333847164230502851936355531544826371488678414038953990332761138996059338041075403465877324199057240715420259205480024399746680314725637709199279481467553942077252235148056400211948034170344896805526782290679034741894267959140247828670214736803392972098533003840845492695682882949407971879015281683213398697883129688331168030052611390227752677447859380412404186077850824691393829660876007255811249135997079319383880690610752946189455555116995216088560283242732628334232930093468559163730021778540194902785854968540116532396247474531258889311207125151310487472963177510180141271821535559666247119719971743961723622966542029651099607598158159488319163277187208816048665931800363579856213408451549827718690594699550872042473237734821801339121871747430806547588980885683588338355592314443132285796851585442807707734142877809914969283037913355616884925633172817324282746166243406593998399560532442569702936480453792936978615581981012363220927715528532798663796123799690514976250051428179052649129373780579372618776357284831918473535574456291392820376639453992023626829362299805101871314577885015123761823504885758820399796523937799258085489249027366816179695939136634495764921198462423405578500556886407992157339166684029597724776561439965151919513170863847183107137723728141866690849013839979481826011419950326965094131476729706833314166429872625442948516217762775260079466230670720888138647542455757390825417781443381751412219392681086866010512460206469253321473268880232782417503952673065150217017264984809049548170887243796604756780984744073113234880549011518599343142186422627042429428646961414892933319773887371425141695024899178214007609186275177854540875015250315302980037547660135596412898843751804531681087513691111974532049716167077037569759460913000207731744640602745965932939427695748685380562076701103450154402660628187302052845226453717023211613985923333550527785704889685990931732203976981110204336615264610378454700118895716288426318404322609268111362137092984311522016049194949966193068295943975571422748731511994672077631350832689416477076401622384584397803082264854704738561273571259998210294393924847145583472537399135947389428857839069912059889782086927267683872225546862957057887768412907239598179823749233152235510568494800961780057130400864968340113143387436177482686074946183405919708127684824014712242679212595852716213274812164030642584879470127238793860602187559550364387584593781444604206719213627794154535112397875996298548360347605249007384762725880228745732921753253072240777972337525538348193679110636891692177194561153318625966288144458784778703524834202855574240142915750300194619171940210653396035908541797819086772236169226158660684003481907461643567784122436460189928949140751825147658635948649813977663745480516447613615539922884111354809047411354821341055912994996681019932650258354130464514605360054876745574006185969888954043725893836753877647595013279731698705480216005829328660798261425236144066760779832101376796246128872635011347842311340255615307511382249829558994766271902224047845788230249853464855411255839522639641192371864588322713845381567240644209810259048798507966067946368911051920875516680263961574498957874398138158767943675652189519312546891388804243144450859500450807608003647107053854875391656752885232255036024398818759584681168432330278888269327124243444437065232206435478821993612326976162073214505832342308289411398499105994090651947451388783133395652958063736712674910905736862249395550970942562139363730970473683560498888433964634971419365575810632189222107884518338430783006899572914396786091291295038673498501372807122305825341931059538590854974896199867318132378266343780030653381416186892865565928874001600247031254594107446223789924032910421080479421791660474867206389716153584835470991943202915483331943014207608047764647107821997424269942028371147254902155702493719937753607876786426814139074601090848552021322537854318015324731261088058099699861841161946917802135120693483869915280421891397885857585538479039019929691414346441251182153924214833715337914332042261256427460052087507367877050322093765918057872633651136622811029370625544542271198102592122264036715980706807118765415437300753612782639896668568742975884158689043054727429629087852415974050527057575190226474927884870504941533848382811714288876409776473852945617189592368066208271540654189992761433375036254785898477955518300028661739449200573335469291433788850254382006162119489099528137911388806068353848458560645385444481597249191463783479323690102659179596614623334368510563546190206978331688696786303240536920909523361985421901843768270310885470036907424603702090382241190655789762267533413133653734635685552920140873539923702425142574361542891131957976034251534132860925549880045639933216877015876235551101995942358804060793216695227088013091796826848122683773355239840235908155637047658960550654897752338952343800159794654790118191423044141582997437382916668862180154726546545465131819465830520484718972839257596902749576869283538952733187766228951756249262490253314202712566395628351188566342742734894101058214776812402803454487239754258722943023121627878469026465576110075021126718238279016023637310806976470995871680801248216380202140020901389261224570074704696326409470383950649781820861246978059732017584278262134945242806308741457883558998368096437434573944224243883245665874618052592184971739827086054701597215169229393101405946768372496780038557706157391818014156021472595938102838379232165410003198273403526765243606054005740479910474770326574118353210243279534478575641637346811317778650858462849705843480829307376762872832526483577493454730508576423946256009111766743006050900530055771343009410491312454032404010377301227629452064690884366206219908855788358370753326563607486599883729141527839098544603974082652241840688813642990673623463468355416892646485735422410001802052534650277771134439429213385826979277612217654372391362167745337841928113215771124968561398442996397201186746875699276099795812664949045856205854311442574756418809378531005448892906041454484149351051340558382781223625553495183249050844069161017139706343426775480134607580451300490841765724297461999628983986661327948996765787394573122982253619620790351699472163745111370751395016689536682100009162966665432879811189486900144446773952122295246355970504122505472028499385263325355169328872211816791862779038897441742757368911806827463075388073746582492795851410080259456154721910719667794024506731203356420467215259831057853576695203816625852011376551973592341018344296702375888740694997546364656555311344236278238263615043493708394666392491576598367355165176364207804413448870535724282156360701982254962902003661880717527943893230213364253572811836998035813860187554028294812698088799793878893644764756188211324480487826126150296123518337975931511698712336651397192985945843486833188740589704770113269531036257558926281458709315571873835163678539555446616405210558375305775529873261952325408198165190637958566647533171872440073164899485736629992466213911180246852292064474942045459300754431748472668249494747368886976875133947819227126812971900138939021357682612881412241199762495512924374955777049481181966989787829976591328994996948261738621089590183104090312063488901269962684655790040045699148568442109794319943436970268259898509250582276078965222373799645077868466417021276481996000319876681602510450794936959762457365488870854469767153121835392078809181305856881528160632863247888909026700529536885959386971888465353051314441260243946314605568548826420191183734380969706703701260012535398156677158261723353978397062972958989746925048974397697855302185447180732317349548060776407983773847491935623410131264125865132333063967760019719722639985048392506765525681804722028938910422604425199101153262590330737091650795435113278307777274651396140084396364690879263048502884488940538200270783476143398524176066655914414939736839819548903229191201096738201628153769227769596002580601720185869570340434764009853006310352455400163828184311285696326964913345847038658137957500072728053033854862454175421264804568519299896650440430918323461732162124224621323911049884328782655790362787887594519378597565125193177078002944199648621155336884474602454522522407681304345708379130585913659666513852307290697104983880083409540822861605550246161982780908466495192887950449447319092139930781534916761563387824701944081105490510343077057605709995788017775313207427423411866242315466867805226329376031186618312751273578434162204544993180958413317848473177084369017472215523958107791428953019429139495678271670885169331769144081115056684408805130664344353094638745628680365279812024015750069860554490290200960741256326817336955710561516674476081557750396003169135906319776327940655375002018529805881958495807275729864606840605479013612415477625515272346256172711139554252461771895353494740875027424826755380723544402740080770708943775324215280829372331970262894086248005910259381841857993764722842262839454017701173052924792839193377970566892158754516147260001004255819827335924752125823244143918026654126627828844109056489166073951886477179105565977720510070793727089652921108754180343245077158298825251089714800952101811831776049464965127297725487993399408267557317597391401612252605536276930339576007467229568770523137842800374229477796543228129644214152697738268787450826689820381387698371130926279946302277655601608851668412095820225585566703806377535305743693087451272545853466716204821331719010064654984421338616929317788315791146364661324988336208080480641636256129172819721621184955107177445509217198267655616278265655322453893572468648310598828682912658107844705828567717501410333930859233507218562422444909641513202634449259132446068581219143264930127814471383565546637323711104270855134108831124017589008831609042636531928555701412150973329943483883654993216591773226273299769792497796655681222285109445429499281160962264570272604990571696908704089315992146197173359817199080552063075297543345011395489881616053601845868315710460817056945720397580321952883521389478610533716338634917561937744382410764970627458933155825257350671096944579208332219647341843826873728521374568333228952572738705402209358643630353711783205450836878937364848342221208717010542587440729907769974063337181188452782539090869897997997553199180756908050436043810976921283648155248519118512896148151114343501920212727004594402404538688447375506998264534653842207343050241273140371056755043569693980483477772747592854666166790839999606533956266327160437858247083748172318232153323196917586140258876208240461937368170762800072629797867756106806325377281189177615444919560976109129504417100420827279651315777926650727039404048838587211098279957133055489217623046497885835057556160556725660097912402664461164455137343523129768004482338974675761160314436598629708940360557420709506076433699504053590233615614536673628227405275511175783621251166402078839225364142453669858214041729555346110247425185915785066105368718911474165597405977589293314652537497617538860844252277848146773095991354867625111197352729043768053352501674474070679025487348383222839531353419745304557995593751265108413954060203688755687915749083460365848635373788381733982077833917632317522604252022577008558903133754627629531291582405907829689424274410579364712946543738162670767359696862739241932967022445977660912800572327803003796144555342150851444189690512222414515784797388824734128539290788158688948682498560990698354612970628987131212113721065646951392931566978206066528127952780290257523311720198823553926637140865122410769037520170695845924850698733547015992329384135284471254134765275430666213905994425617859927508285386215274537285362937952542958652054528056550471370730672743533326807272346241268077784269639959644455763096612837549542194430276209643974227148849570907635968979353079531255836293676740740777703370346909427023790798366623100447752805290898279841211559381269457160893259592656568637980952150797659178867798929332946104323684386766110677479058240600614310758494987100533137726006197746694501806924475139361317526076862416382025079923002687763057430770784993638488397003620947706958357423347399819809136644097533368133141181965043966914374465665310621789798296530634254110957463372520474138281418274040868038853202175260382315376920699277719818195665671308205203206897038254366521618503652571305334824549525537004444943953142620878754069920769126610914929305292730317684151341473044636903806660258851277720713702505798984476044493205559555357968593909972348087178160884511171939817049448346575493072396420684674051647387914619214687684961297404230672242627436990459939582399827853663473539184549611419456265023635607821149070973470672010263655800814049273647530887554690198445892289299367337271859356959916569349049203832514907024570015570234101170928088006755395908335523139434717790288003238990871311874462849535483631328982098269088362279584869058479564876615855573350244360286753291481509001134834665786199453466063303962372133601546300260732873346576360229685259750126991181761912975112277166174442971536314607891653015860266925915372155954603376559724443552166031460128838291097215929673392065521025150304192081936099456282013570479226586863679724347665885979952276490715900867453119537720051772299227192346254416163254833681426007451197366953138931138259741503038550155323149218150816808943739737061741096306340397259488475652658347497760830559906166858624466229494546842652266799877662139703209734112957443432231279749040754368000351194938115847448982189292287674530501406828179509184934663504145646137684203717713740024096967263820890507547964305058155223566111411230788258736211313026532225001540574930879522760046737150883677695441792740983737922867391875078239402792303826657150708203510040260849753113903326290232714946162653720593673847894599067636807976159497875844778290229020907179325875243536542788392977381888089519128941550684926238605221828229114833532168060282477078153630863309226261494399539270179164905622397624417089270087713193987535923812884682403088072078144291313613387376493144090882273712526943639199417544263390291035477117425198209673465433408713276064389498813367235073419721897188700499297432296766206208571098391205049463473846402108586977057622250675314373975417325999788926592544637397594291587581724066516691228990550716493264096873405814332762231701042487381473763580246080395639019051289019208969190262400777359770996511135684623645437804725305012317148203275971400975853391306976988956370503726307085880225535192915877615288288321049090028133113189373933033652371920544126072539740736265358403901873846805083084209438985893644280106983413261909749873906596797296446680156329554681893781540255838832510944132551676357313911342546472746602624498189713806936259910065103179764828760784198697181350870842002479654482489282795613949062970626717863565034777678493247201325793116513159819051123470777466713486310084218820980247507094176754466532445842599571311908118443096903977366417846458280171829376774685123355375100592421474104581780014058843985551733330170880803931441149130585921366359154340413337691469428740529122759781555064934090350706920942493217741125767518423415910368858102130877822320820432433369764372329351240132514000199427668437378724346112722760058982976606685188838616310804092735280991666653494816144905354115412442688157013462183758183101493796162947260943699169414196494621034300763010302237857262674838623149410833303025160611090677593147408963035262546633771583151311184240536153356362823219418702525552780040525412817098322172732164723982230580495628441044309666332666965763549360377980138007424770800760139250267196871082600892946253421501088264529687533992759600636384495478327554205352593934652443711599043286833809202240276352308234474554197931077780258643762779535226044332024271878094363696835418076699193232280385058170840854736387282751565926558646829017490198546289214288587436935695365249902458586960672154482756774459065311429350445551014613073175769839525112056543290177539638636665940164712355770417137456953191491687494970075901688222119908855926054296059992366132845186657714156033216650729691022644061958303791403955046136099260090713123274422497162245743628377087382505057507708838013071185184216037076399456140988633358540952123685996508469741945816134258792584683281782357488363491611180460259283058068802609366760214672384890054662005843496865900661063876673185844429426929518802966009788642622117606496262745592611518299908813422838419881842903945168907099153476893663149882616674610848996882295586206448033448139715698526309407913290404969568763124433799520118786130828455801866553287618758589519779415117461150339261171629042646651437502628000361861512861987977149380693734129542573094639716964343031390814596065249701206279423438424192189240758978803964979374113547274226278275644308737362230078197479740164230419460502472174353430249517713848516077615432811246866598996084599407081108747951177930346574039413960231144602174014552994784794784126798581747730745135234046423039161500050943140780937245826898538675330311632898753951608343251722516508052352127798045406547664265625323093030425813195750396403886522570068049258285949553563748836395496120030138199110056627392160454197627692890987230124616728826243138783730547545351658656163247476403177883233092399295337583286436424695768107545215666889973523085342527089350707284821485858352225692405556559175721936082657939935970327427076740074682555164116264621965114766637315512409658667685969522441622211056455054751370185665982948643281197669689939680013353146018729359004706082892196025563441938331772716365144270403326319501903426189414498067540655636461539215882534598912637482805649964239568895735602703216438363334814444145883777397272887371093134770441545899823988826234948106288956104079150441227315239912302560804819709521351338725249937367064280609914904943149206974027140097862934069231604109195858250947975148400897117698214361589947045652091695518983282219395056215370993231467333504835976977341700085232452482710502094020443357060686729878748051991994359040613808896934512874873473740496099678806350355876068226023199014003603382686061767306350299993318029958540107622322950712174502461606644210303054035322461186620056598430005593793784089141484801447827398431749483565976461388674392147723024801007311452151051904150725430530435945134153190214982642646695043945299266713512364811058289478727764031727383448195351352519871166301442869063823117354484991846187975537367018454943742920510681117570289861700095725967946977687913093690856630636441159550437873664610710279765503982482069142807250135805683528435442609161917429464571043652856769434052627220521037533618191194908778335000687752633735282683846285686388006843395020988056733249211262154717110339579323490624318914011269684261211372016181858059481554044176372642640645429675197491240384165216903446612100095288099453629235903883200880851628836598401371985750512092633871336734016873658739197051329411848944571727850587233342436208729146003243367798429412570741467247461575515942021551703969113310450592943455842612449432158825705293122717429854105705945008083911751854973247917135511194355862558975048825499917403080330166132633370931705727456364879028044223986414771923405558557303969463570910798329972929258490420754574473678806800355301903537650815723631431971522513778172337660680033913782701138366024005779944291814331706867001034195855730565522571635324681532539683588898054050697974856977982066823356762375309187119452601752604960994744445832798359807479823801023027057887314008046349936450212600912488363928780499342599180269519365393672228565776753114632930246099081927474188414983131262719352522816185214330168661383027078233515244831921930471612146440308057130011643610121261342335512831138698247344743401227497847376070947588106801374321095333554823778311675387151591692070272644101959453330195259352808396888375146038317732818602667633392883915269170140131926191234136492002144930460204753658761204701417629498852555174973232694324118472913508883816148824601167334434002643378804630866941752325693276170071463292905620799005936013707049710007693572549700132278633186139450113790894069079769635895950169410334767151289349353276419892771960732122906440962600251503682904856719693574847311409889377555054311015110853081029243404190888289857480244152754943934882882164454707671351271514495349452818247751160491968565157715161230819209806238989000615047952882557242421313965601170300290283474720406904828478324335522807828487235531993140161153588704372323888842991373720732934628211241653223067576569923783094690569507333596550119352758003819943914202689035926372793177626932396693244459725734867552985054652247785812640943992045131686423208039302926076377858384603595722555296840894637599195850396373421132545574515649608097019671629246994883527971275648777916504273650627339780358276487721366019461401055386981232752161411904585252424518836561159821832554276405389403921787604636322527797452116393642568175916738087470675077334767693317584233099673868633873190226598132070622341598086412270168555196449829126805323092658473062461281871720581125329278608360546371040160627702155684706863245245938503989386075896633685963425948377272160021388845115663908132590422501124784233312735191143467960727474894066810515084956703017242012119588978836845155081864551832431699895579911303533171736307035933446562279250879260092211605374810300551023284511562318071057629693561171130040485278558176161181327266927870520476608118549793356498569487064992125297695313193784652595666155356862618734920092654709499939308859336146034097985354941280833040576558671780117110599686611868384094183774382777728752601566344791445186737710371881906292564744434842799890390887799084528158329391892425140402148433512708338547778100183916126840886239252243412847214148775260926270215606476911403546792442833954588524574027327106207233612726295398371131246067894349163988572426604091100071476747481045282680288915841575876553770700848045833082641160609879804792769817904072258982311170500429262479328385764295510965859349752698843377490066188597847468799936600936644813055421733593543018488367774063897828748155260731270589442324991774227043514925082682209086422193988416288098609911696610484688019206198758191217506701024240186321982118335107993872949093567664489063431958767703814569937928607387323758160816334670627362626874522055303314084541337476413827545581936225934939086375627701419386764634490807562075335773485728431397843421191276289766753257893110042588490024752438505874845907805010829883772042406945067643225176130737716186057580346176838701281321772684561351236723550344682780404247225928920949883614822268844061393784141328983697710942246341575231624691131395946536096886526483260971873001932627966366925596835814589786159445888095238471050615794132386989535808181395319215622659938037876694075003599169884306608911396147527225256719954125574094589596016890464732882834151898581993021194154610724434566491343434496319389832112298918212332866258117533420083930975349284693569346067929241651460730950167412452277197014515206298969407756840994603955684368109581434449249620495219842313887934540057929874385443896673459807914769854708139181800305519519154023519558833495442983048613401917431391785319563321114228018927802259761501563455721135893601600542334149954655631079716470875129733746397630456733050362073063636966008486484902604684436356749796368626322363414329573604068841692869069919608913727003398498932109424013527516169403990168680908923751064474628572915426426184391180366268316577442950126667317835504533105074992086316649319209956711359643159941926567357728604007908979038346324639992302117835546351650490779784756628851924170808085173032853027044783265673812300582790218526471623506078698438513328963897675782108044790103938219286233436315057491469500022683733837739601984175718978239742540710270463531979677281160463788718870110402973877511878017265032675670612900602836838931683076733532039417566281541463337657395151591075575356009548255631095077048888826772730786637420276751982270957995116837509968651003397864432829381325701500508337338978578166598092874338725997936272250700337455769078875066146138417864802881878352764121059439713845501412491648592388341353351461152686074598087016360299156718558133819157395328450342116464040712208877140852147879801746844201556783727969913633128450908996265427345348191922033115239809942563824665984104035511142766750599119375642200100772796865646525906133879063303606890323075911003709700318128534101392694939368946201024516858527707340442869230438426789222123471023184296406717260195918416182874449115894055837268371594029481526741154695322132930253368364290932280351734627926979892549988265003426449371396970966357975288702928340337035371162359948136633078151478982348833363502286523410341585024869058309140998427407297553732804133533067586290566148436900734257851512102942674844876838606215311849276147869311316947782729817772742098316766041224968665679163012582646241094873953337315383967688570386333732465848400413895675622187125917598895363837381393741681047259644705969492319440430001314232130438365870756143149564790757373441971282020274524624006941013694347734818739888658868933333360583594540805232002038389697128726661171587743734511146720173592098511087889766892392025995837400618223753927010857109722333810139784811818920657100206788771906701892352261213413920384100502297378945796873126328741166294887448562447625269011422631678884498202126449861870474703570007909954416864638959484846984815206845686592464013786574018959373785154434684959719735732998201159821197607175264348511267879593745024209329465104906223868971782373556808510954410051536116965867773000520341163061953983895251043882133850008431777553269748365144078346509303955070235339440653742273619677686799984459690814419301775237461960499799049617332863762118361385960936197978767697852854951850553703020675788027737437837415844951974069777300952618027272172310166367456033596011995930018235544128742222703174047502153839873307470072406907603906024053901513619298262587613934172797016927545672673947286217329843411872578937157349450937302398254619477484596791517100943592775605971155653999702187092835814428377513669317990602822980858236842673215701992275992027522808456770897312778281112170383504257862112598116543604824937662732180088631059026309477433353835925302805621569418299751084162753768719193972743589086148709636891889928225398567630805775653064732753980920494126672010139255998404878469468040664676576458607094453609574345881402068385902375665440341382084963897530545623590187610050447389569918295646442875836388775755842678725641387319893062563285612401044282827467289592602140291572485153231001731692796735962009698246029920143533864941901782703945584870530371503103919952930054516423713487519047695002727567663025042979602684858155271097634208403737655448113593860146560646967937015087971725382220055938743983350348606762889874346079813028823458334920512317736563688556522054640998644005519606456467080830924907055567194666790259671791120892051456905015320335008891867136336256558428323263040943527106752993953433711876237233187330671324812069857710659143343777094868024528119656944268603025117400886175836370149701219857513396374063240217578492862588636052382068712169895237851441673498846900604555508222553696429560753688445420158297842361144036247201850857015648303738305143521953691898482677396398468992960732420458278584037732749154518566801291379925254373203155021755937795281904573748423650308428252321739772464542982722123980551448281596396776965439933231830956886268434495627038886237159401427554920855814461561181048920684707487643797457608899327572494851187894077111057300430091206027857785716053332234375761867676177114371782898089401127502884924610082175800130438754751930954123774896516891033315107664095858353419444845428299984810715648690853874853273302438065538725402463673335981296669884519042491737940353031443987053139070760683868584280827166291565707377691779053680266371349521147094044806871189005697039814671673071225041763411608873240948176504312122461446158487184558310628965964657333395549038536615894819658153198017925527430896837142360622885319973968029278804510497858139814866791030342317516166514873073591602368594096288790463486557709965602612208574624419272027987146314751191841564219650198086910877250654844807101335024806202113508476765879518478984645221208916561249822049394787777477851939574306742102142758636092811281267251662797145377237950295976894018466416116572707530145956244841570384129127352310486471549336472201376387106724223545756563633011889587863480932529132811996807134816293226312397288713763647745675115440675822638278004717176684386241926758085828840825446908862055734790753300209309153770603161030017854485098386896027663618786953591090458203896288563599572182081624580901683810447148854203414875182152229998425970646906000335680122186104161288759962349286679364512176231546987731696421097008028538665217041885051829700991277721927599177599267466002265431128553305609123979505947607660656878803789086624528624706641217817030950176990644484261649451393177635462306679428216573194478944843448571525312320249882030858790409512079418795322782382723026749868277377216711365159238401624539577983689142425852408503192150714565213238236760885217794450484207500502465238441083073523182943896615577646942189293913668843097811912632332194216569457435561077968374680513331053942710670693460994746731239249918397310234687625130131227572773568582788720368502539787223469191803300076621812447322556190767034453002097311929896384563575253808249729383947662790521595519902890451716224934013306277321481894216361400355948426989938860453164857698715612451218617814125846225561588426055931292550660874693094611501730916392353677818149465433675234102186924624831703429066487524510212840533153106225438766302183878323412556634589902069627682447591695552862007634475626435439232545046144434101122636086262770302564317851813190249217184832779956325399670873046333179319796889543831344327125880785985334221807564817766474634947088928851538899822964661630423348070647143011282840899218034727485173363683057360402085110780742551898783840180970368138290944417127891677311879707876776620021991683637930270850881718443312879824708057714839207412070396516335802449378715710398036503756292184247140498527667171958923778580879305960336092315414838201804127413201314639526665911265547052059998521303467470518431493331438199982017113421525197175155590632107675362980773248512775744748339967544521710653364738922368463691162028962453089670793467414245953160582609276286822992098817510715392201341810598075422264580604984193660183624880956589496851217760165097154553605831938668920871652529917452639292759905450220001189876426086171725099576500047282942240389234695096780550470450131536022436395790794790259459442145205089119743135810373748553420386286817886564947217644472441850883394759290059565548756360939000836732065769372886297609392505261215712295400431482571093777891506017707213335554430025760340576343290037172085291952149698642625689116010595851436579579636616484109099589379806428812812633143204102986911448354044188743714152909592471898914317201110478009961655581011456116474259962269322910347385983177684033731416546976222302000234323235320391605316419601573899321138429112134221531380170598645357096721718739315955811554056112157879055779657882972007013783366285554793042058930450677668408208231462424058462240022028468393646313036493267960061060064702536539789196765401529748252090964726217005930481728132633911395932261250092176245455020483569135715684494835250438269427013982515134309829634395272314811882930115212908903341973990832664134245792009290692201463057142871191710345119187945622143906295735100617670668376403042015485729923635703706544778190814682077058303907984626970032000717523458178021124072991120847968086891082373298446683861862261619051062580573895088256248890891116786330173406276650486410234877831706402100148037217513432855685389176756075393707653260762781096877531718882860480152877324008730386016492055962010560107551302257105691323927413238452782924492816488612348061881526932445867277830502581403953028279484468965845206493649501756634546782613423114540014947676835896264338002696802526921823293981463722004832834165212016472927117201032313768086293731596979097342872499766771619027354563202850424204233237175652105691129327819622730165298479523356247322420897345595497928134832288876504700740147504330427430044761413784436132417161676310186923388287050120639382647988252023650086368104085929121364203620653313665933524412826802151560776364252739578258819127789555540214244095192800588661487632594355579937358195239915115940737000213299430347501626835553245721684385620797129207753863950949735741287358923002633502244252211731591365928533055244544107530660084602977953291610955105474154859863350992414936204060322870769933553712638592272071908622637292712706264433385379363286344429464391691038584370526115858173465028670088447276447214869406406227653773797017419926927856520004594892359010435339276175454744076171794189580083528771789250321835675543186119807354242471827223869065689180157676532862295613925263961898889216918055051817905542720699947738644726840986367250202367431731255169372151515001306414767267472943591432963989135224422483076702970848811560078192442072035781063321561501783736777836023154328183777725011957973257774602803447842619377497813633832919795739363421734652914545981432305129587423828010648155128265327134559050686593862216969785303730114155077162681050200220623514927935642964058997915521176759507086470452358827936462016659335994720379708152152513385945950109429690728184239439240147047410049394792553401702995903020347367430138193492766133567760334236074966959540047233673540886209462340055956385819652335916475028966444030959042586141220557349107033686078929606182610145645178405326168093679912334784162724876433898983196587529438585593717769915591063672301188439119016823353554939567387479309829030585499069011482878035427607574371332081931334901125714071907882996758359386684870279252410931484718663935008577364704974965146906581222659266210070474824109509264864574941573793284821295812725219409603371551938434874087607160403972252109961841043898421598805780002488010573017443145012393513281950024645345863160842112082206084563700663141841216198084915437512540876267838456731080633379456922689899431674558902596943191509444121498498259712325438380388934293467493876963409398682406153165152574889489834617093805928054179893299194135846753872593278512750520114284915417930923890208469113427368802907916641806723081148145755775603109790115025602925921052032024310600062387961352614161068006466409250675069689050429546313510907177223010665001042974926757307653688858778278603050884996376160745689133200961713783081734523850913665364588525774303408994600267877758554061295989598592020988498490611954790083944599883172790562357963659425669619948550446540690158431472229759922516445867817538623319194425414942982477923078858634300383943811449513764084365088305271017652589366459328060632917241061158798103314387554818064405881010869295875978560336084578437290203003933052440542758694958070588570275102906728284003142165725213322243061103646320638203018559081700691425333151742859317396260283245828426741221924542523455524815452635837224345213262956964013014188596482532183688347597361593245427575369592435275082408903517994381531690828735532234575647668949861225531180699452300469622112764513090722011934937903230459895440661171961203296661561603944807919118569911607831783674878258511976938906976143319733229714444528084200982033456019641126726800932231411556929672043477076991532381915316101651074197102671002333804416310374968299730053770431555296007257852427698683925943217025712438052766864510368634104239303471129110109890952370580509910225558182995686679402129623223810025266641633035778219758791797536745696079609599130449842897774940963692498804751707489351489444451431238708472877834043173222580770297636533991346943286707150977156370466427235961961985145660074709092519582254701253607370840579162368946170875825002114741298888614145481786701697780949667744676739239993672614050298934742646534277844752916669930732946423842459901085109778777273522329319156897484920155995058107890534499709996055713446178956488951244583109155878335286403708272302051679658806385844046432913476715006663398784849838517473886863684002560639373427641079978740661615673294841902042556113878222865662229234453813744279772327918225096322133233068100219800533159517234631082738880511351258712846029715463246346764728623172110477371177637861576020270983708606682221695637653356668281105130959378668542076434016479146320753303574722007690455102084646716043308504518469809050754240047585622631688374499026781653322506211776461322666852761537346374093485895226995364340635261909029507215666863495934422996444447826622114048464448988108816013034845617231155506192958421427542370720749514109753005303707822126597121468154658807885134102586026048081640834291233363381379174870190551684559992615012345418714202538520580961728677074862854677595624004789418318011048939186819665747153100302360861443752269800310428158048530318459695623991540539437093731224136205546796015863749028602114312970815108945527866622404375960878666861240617181187474571928061937010103423989253165836420021006708064947940744147999931304418661862248392066278048641725313501674755488553323990558772769334916589874831541484087656550986865055084393346205258148239606353647927251699551439934210322232801719347802274505425855380042700925732412007483226668665682623951579356442479412474385430700783998125569869152284696741780341389196258704261911493672003675720171108876964572430697262352506738535536319427285968350245028697516559675007369076563995555457108634835428824172291448741083414784809014213370246320996242460747869332352816565302366156943579781842371094987972243344753866672477046620121702840138599586000120574144753270922875058465370375138936250389385876164750888608270379676422302504898080202591981166502421473412274025178670309966317600955337571607393412242669692642225826280966696472420775118678077356047051639973294773856284293067186370372036181013229934219848257871915337867639394866937726069971071403891778834773133986587128108107323055834703598345861070004341903583045154905100998653647690012926497120294881033663006169813921780253525637043161135216529819087888426897733329398815205417337765797610886194135331324656186537665962537529832144449750248557447963114441069060572396319057187262518408886182258554764492101956445298982676597455500367758103887171671293368858238408556294228828933665516761132234396327167737169460497067886984858246357139463287668817130645956649712857933988917631839057235572819717236707935449500029390265406402688442401465295730684594168542500315454945814750672081296843165470786744762585591678784324314473729932133057666339077315059699807570300488278016525215032290951217300989585015182846304915729350707922393905984640325089416550229798978931421530515209666285587359598844041542054124092464496747963641565934271246524381868276040055481224746147087249223497950307787023687715143791079660568784757374846420849764620227721190351952204276776401212024286819895593044403694500019129766303544286086887081391993545658171519247489079623801326356069805889052425723733456408672481240518920511359592752584394647782533283661873203296471053860112583184783758490298911951679514649085599967765515304961739889021639926657087169222236685644217363468188971745533302074737626218451288541388354251659753805513001860118193773588577645280717124198491021650429944362824471122979173546484032526879309220170913911968415321967678332854057437618164689772437970110841948590309097400680184814186993944695724480650113881122686251697957500156448187016735843866999435656758114264858843493451524415367125717692909072339118922983619894631747097663478931157713506428717554385334881302636160297620797081154718677060903400163716310493953944540664253094546450489832174374934133798731752351574058252418748502859436935635050594893484147210110067131166996113288204251278435773841896024655814372451176982191350359326635071000066920454271554293209149440093079539279457228888596856636612804376128645247008045088883897209532335228169101741232520943688198309307479659904836527366780518488545398504792813086283528291252570711685101009954870909393024158213625966681366327126144914530247574649557162577199421838736357040459226627633823259794498396569660746134385926054437267647112602552647418801598962328501707851934488999480701206612021186047087111455632601457893778519335436441864351764541150882548690167431902215976162284037817107656056098847282112525406218708646482118028867363865737711291133695159046957983733289214212515579979655375215029390700043042183729531592848464354841963966949441078667113709715401031684541137605699754820704194368681516084017851351765198013618541303849955483541665349481419390135109637125191346666691059686560151444671082321436839403898238313243076504920285191222214045776197138635168012636771785067046500471392605790278290585388501859825599110362175226247824617398250091174041648074715298692107895303441010197196228178736959096201453108067812975150876396962498567324667067916236387323877181010275840663726945506347582732302669813133542930360523230813668062329255710327923808380423195144873071449185549497874669034448634662518368301399383400827499736800979061941151254695540992919632924436421440756453533859502825100174211505790634517128494335647264322060363219067105827335352284611573286425574492009799150570498139843414414080940380899172610922607454959366743761876118393552566833635715600269189641140222888224064646280335146609844151776898487822019137118297129216436159593203199611618588316624551504330835556691983505400213984037400340709435498731438169163400806787121223973763677715406563083583291177025481171305059775363509434749219597340565667014540325016018402487868358067278155838098468420210825303590809813144208922429115564340063549477742500837175047679557327909572668481874398035612253327528220234692121351493909668536474339265837447532595832846215513673269582747132072124667250136423704219669014358989303493902445157203634163472966839764929489554488687790978468275620300085238179671574605014541069043058893444267491682408881785022165960803901527973269479421241150900730162888108687732819469575775320148123621185139950667105185332145844955740409367020350391921630352982870328901710907952981322085978958006749531827277825164545266486280652779378051764097424697052015744384564640025812217958549752892902081042601990047347669393456383194716464012309379506521404141489762313671651429890350667627877511997313016133725340856349481912299997649933557172085339535009395989141663436917420813249459192655626508715592543830476674887874280120169728843841345049105955543846698979458478676216300531797497699868672907157134803730521506115081425624893396180024704129384826812556640144846344105917990623264111357436522364921285527827654219229340533471179057449497241267732504384013084727964563780584339054665923731994517166399603300391262777387819756148172490154726219371316766071294525446487759799227677046716628014789157854143618276711080607724588505330674810597260445056525257422309875445696910447848155939650980208695984259887909344384820627266269189499176151967478771303139387156853543336465362196981530789621934020770434036504893856554955630422036975387856050606245827791362924965357544741265684638146227902097992145687539892706043890069901022355366833641351415486756250968752932374799435554094807009694299687050056631837943598685636507767439241274148382868342424589537429141837915273235953897324107972020868578780974269750764306585441032513962434636856104273065998597683590693710959789693580209089417957148561364263749835119441314769274654337976624952307817261326008892860893157594076239427631672144849862968430043248068607061736832003144797337997851292854103766906304852105322705290444952176174937084267399011863719076770832038949333163046772528986053401723544212666912034618534949703505125977070070605998478930322800686667576759632027938938703484244395266712701238525976189534458877158733323469939836694559838867920842375989905874022701756400868588257517178894076534332347507919200248000743935651956052570964067161303558414182640551159675901211925910225157129190068020809793527176660494624595186509097813875509955178289769378662424211388559950787471009218814408044357575074471162043429718562158749786008128480949639066603557951310499911787185420471069168889569518344195284100641013333947573258757226967849303817195889503475735349938038744477735541779701824433862079283515289572771728913481426237293550288261813267656245792233165236750996790546014315008546218508785514948820220528432629669302201968737172224987035737383245467296400805274106456952938538727483548542022811739874499478712476209022014168797636095551597207574530938789930388692870087731883100580059125280334260318200203085485622975857397665703560726645474705951585781254864429056621581109352245013182882377836056355647364427513288092471832726388674547680661160359529311968338723083057408976766068492620033025092999918536233142479857840668936736607834213367123259477619021618538514891386603986669840561571438816099919500936975799984910744767807014131974219436916462450718245741173148638899131679305252176677656145126057224737701800527734015927707277334327142787977419933154263049814779153391366372536524759616320112692923081785313539183027264281823176792914936330053377139637119878401045068178023686318287874708077642120102587835415030753468398764571248559574894349615312123016114255273208627157102654209996816487031747609658826358136268809239505457756955323359435715808199315452248132698311098095175757476750771820064591943491233907110033481552911850904191232218431807586455949111581571952616700740428357534182756772878431444980585631201167212023441496373419623468618347329523417417094786557370134293607836459862595035193293760031369413471807756470666557337256436647647058326417979925938928206016405276026691879059416485266139223357220314991139229245768542861007175699633036397123865253238394863799280851058513497306961056126314757190620307387416636346932596484061648738647782817251174967982367864686679781250143120087995578646819494310932112346154079949855061252070804909388246766687553222721813304555826372991424205424121054935267488743028596276683892322414708568958237187573606991163796192327988055784108258536894843229288217375311498822822518829495861366949735280896435245751073178373296871339491431586176789222775366118769861666773931210260001002938447183870952740352598688020812081811728047419847707757356288625283231310094385683630085414185870617165592374717207537022915376860628952957423036646769238881000065666402286683318519806800693516398381703545214930496520289998143673178119828593202114902006844500197029379993030724526468246033767475230085196316982601404911515999429094648802015936556685089251865460084928743647512944906131605919615757168370720102470137065925510943578245564997670567259079926660573024802047295697209608701577844192411412324795750711604199147067840429068759308108866491533044932374136888327106540575380733904928056828603176309729141008426396320845550736448064739405023046847867309670735766022957449382177131214910802096471891438483890833592623721720623196599313467144331370168637812825070865749240599050346239535445064654510942426055212595861035174507882534008621198996630661386241167692879856117843023643488666498608091645632447248790464123573992439892405078060126006289552116158835740142533499431798925489035263389794213854075122708646928444767084764279048531461331258845615377416945517523458113890296588403694329900924984599107895391014071360176683533351391954881655319056979665977960169833719674857605144429793324474485344771474713086987043389316644668887108918597265943291975655132710466792557095465972597902951523977018366646465206506487991037556911821620907707342384910145168808151907246214649170408240826065484596665990135856643300011081073663879370788730286575221877440307149029791115251579520629217840434816179750720834959871237491534395669675049528843842417194147647505808709876592525239012224584842165399514259869085649956145667343444157072131126490812088621578271509152931349626938111916788923672321505916646486575280929992244486971771014240979714569433162201334297101056025907708234053184351012638386658879357122400649733304397100497355750943654021573274134560149252004649760736207527722748749058394702545471579723843904003621451120738430863579355236314992843689174148739615580677050231822363444980141895891762044651333780484668906934285757876422372950770371169328371327154956502681991287424865798753974914901114445545784805599508287298844937536083490940471175995606810434443724040176663427974778852239634007047812125145163502026605801890843882820678784680017213281330061709812668489253531110079009392394601215206022468007278052376742135060983832402322881697277725836652576992432653867216124382155769192603212570099908765367674812907407275897342659683551854036529263040238915583358861766381849098753030617397781059743972526704163424033809673182671589493692778386756242856022089607456676011585645463015384855281670650769156754535675571711246172780054770485972466950165496365600452032037248916220455241730975734727561845395193395357044174679858686054787906438849563389840852033512819579793638029988385614799436866423116402667933789102020088141412319472875725786166498943621545203949727216845280336847041688684203840699416348282039003976566580712281423163652873992181068391920719350284858034724602647283246493795408293462355122031147671195528531330996839060867138581284136350351053674681431651904527971252246262806586479670698066953683638444748764464912609142949699901344280071799455179139692513987162518708945398366452025603866372779351496058089441959153256168599051973653680975056177598432551327895643568927243624654885565960614833919503914717022020681936641960412411806119533295885016288127187221457887074184787597948163518494173590012258290562946429132541528905421241716489355168005153888846300532316025131909530546841604754961253182398424735221274879279031661653998271239390653791799961384169084955410030479496910765122388082735473982524359355770556736432313953905385210337124834498791978015704569956532863020565721354938317511360967148213156917479343062945868791287523673400540350394531488952177409334843933421315120326735755765764535198956474605848756689150557449891130255700979617066149567668192829794279261058187285349639159996720605684341072312308501541049819225858128667748716450627365499885894475438677658033346860220157822229468779570722620779361448416486770459822858728045345067675008073969187070127908207401080637110040442692609196208822651691288579485847000322867232592360880497328981479707139752417892676304697024816702442237743152088758263286452552069052644763267941667639850766786101592120885961529073958857984342305618365586861323470157578612706160574171842793100785272352646629133995235171900179576778213681955499741238363263737126440913284909610003843803814293986868581841473911519231485055613733234621587142907360952350230943841219714951968462329565105084468441846486980699570539240490102077357121802737170770094019341674803146789165475633079985796286353919039275048803489810544152059209440920445688727665959974550109018831939028245027947524273759434623535565833424151452340021443756247054575135871318995870809993345604191695982981733590723357561976351986871748860273057209947215451378718297213765062200129438250933930390915175858169523271913087294527514250939309774793314361744356484560746147988831008933376505639966784537445941522168153568429997624602802268400021408784489005234470340682036559391043174302649791091603932540327348855840117193321976673194589523161861730482530446705283924316880517873941900548934315066965091526335143778118863938519157340093714775992919017936007455605816870106587017111095644940312490349149626580384323526633977718002382220750249186519795134423317265176297039426726561101989005627018586915207135710571790446701796765800488904104182580274059657592609526489595210725202972424595314587052398545312049609632122712314835947804362316896246823735734082165456819588192157043658411787330047028570094519459893738265867180629278540387267902777414103323358495278547196978161520572627960455370286040793987397800666524079882193622645463677762224444162268614462744257504525482811899933391049861110741046838990652531046866181540498010202464460235672583531778376346547649936192909699154443481022486030956116356479224495066336327974598788702679390901096793042959334718876745438980171179370192508148304733085965732320437237973911264367853295327516821421545779859988229403418311810905317528873133852587025292746378368416870184440554521550284630671981301729664693827652490821433627851758316421456309002813358703245354874731410459559818796623116689883271183068683210768453078011391156196826482052425747097220567751625952422377908231026896396978153866463847994121416782605808436745300127826837117870548142085162291477722038207126997787277681334375422657425239695734843818522930346998551278586410153324689486886073134490379491185461277423778913134906139385770018723550236914049567670222886722596391694870236081271721565237001171204011037200986232965804688727686135379240429687921141595429213757524997847934580509953866260717278530603862493520832570288654352839359052387398222249969922385568735596636560958395671036458048367523536721877134695943686643957829867352991819495776667774951297170768415467496788146247951043633676787470994049331416327032011913181810036313097658705711794569952557995435773983339570904409241981981861737135022787710750408014363029235801184713970236168876113588762352037936724933487794263611633756308420550959552689060022601266051385905087019024019437039806479584038189248899350759483856004713971634565045761276489024678152406701030387387928880655100600688013830409135559155437663195289609773762608824684848179273360681066573016676246275507900645944409056981619072423053738891773122908969227251438123591587497587820143054536854731642969744140725443811148248337795870472301668997130203197408042474300080071523876557799831630402799524388590465254289387034350302939097233558761220666961799029327337976440624501439265645521754690224980896789451504515623457924602304839682392799561884126358650314283925939312603728716513741399367125530421701305279008812079394819767611538654143492763334201871373299686461982154901930701139713244929159133095932333764230704777737533419392640378045840981615067772590424214810959536326010061899644842103656768907759629715520206922672412465855431028773314255521562658564252630659863650023194942300220102341214153791801736852242694108968127482130045174711299595579647975544397063610475859332408954165697625682668608743828025577808853569933595961557694795906845220063209761508080515578686070472132260826753954146797785728949112632327158132865416606648714527068520218982002085813689251643156047764325956040918797717162530431147427661384107589124499989182408738567956820815034236376215257202448409539759646508922641181448865942803657278627350982254060460078849362976442853669760799118892577882018178911203533877718307799913748362794052418214391759096684518255574746269112609758269262581626786278052448678048831102373084224377554873882307629320147155664478767843524314998833510438937944142668991415939607876223121096062963230840243675304253373020875141748243242070792589342206187362076817095893013356119723655665715655452682453311269591371535466969630496016334685955208014458167447229595379446089406603783428690661104150152813481911649308416843249493407042484541090877365624452466072802974229250647217206761346449104423381949759760496928411618576713633748630557289684185102889563782681764274244146189142028035077609294345966155611903425300205080242823477313432628410302686321702243927002555092613340028995919653550358085827980840870096195769410238161419588666597663477777658926379749066942303902434683570908560663824689539589899683208550755916655420246954158086423602888428516887569128304771253205076671964298796607290908491635404711161272287182627593857354161598973866590898098720490257276311116962118811706215304555826671495772395886746071412908726718558346900546123577325534699377641378802830932822817873346873056272704448787253168308850334331861111911077315353344215573694172637900463847403482028731038721366807373160518373198520700796153799689850692871152389591946318347174928257984444623306793670873766361186698238669916839303352430503028172610516929310214990128618651295073831133747278508855628546856517276328763609986708835384795073864079676692314010947483696361699122492194985199150277316202979769135270517681759106653800534610570438622066727508066141496218794331757247888599644649502774035606351211936072973179307231164825445600550588160383018256584809541729459771773217878620323853095194533850790974865211226300116670863284910950808205954800440454330953513077718533510302513526030083388248240975654691815706261728633129567153232417113191636471857801681421664217543443857607460493703810874425524454592677797166561547479803248713523820300085877620733681332728847273055989570143085552752720362856857496790445025208840440795068410400427811234799203222148964701381850951023857929582131015523816871552128617068493520432435446042796342744660107751722481431266460836071671313908977993026633785388659448990622719524623702390046902677071653740367278320201579185332295561657933032927098286325351658525352400447213893051702928672072833123591160306628421952266459742497649129539974508825531925400445405767233049663021517196739447556278667075206023961690689440571122587664263712482896692776892476712706184158885320872145677939072432599599385063369484330010110061770768499688435060160809963434475065434840872473690843241772586631632733061702039923965839144970547060089506204693322946073319424607823985221892107504892100387250826688008039825859145851375185695866628587068334561541959165761792131962450252800993208265430495073913999593590872617084195516654487680011185687780630732348786290375866578474145341554666551385613971700459815044813626308722781199411682355100526638634489664753180591508880937826248996495663309164893828075062248143883294923181487732207849857783310742865170382798786966716029141893580207085313253520185786924146526738985386121399922497223677514251893971168515470270468942238542772113034032280170737841344873688448869500466344281987438309232637495563368035142414031568361444754199673208060962095266628613337714377694381036983066221284279463824313457346454426821461690663282520358139185180904548266933004491561093211933464952704384570177526859006957603226718394069882848832799506694409723725007518165972373839096442593237592250988562944477196460620254712231762186743178525522889205642224141974431557851831779362061573967414610401894180237403936670553536406397667279303966036894987607715792428245369150507456413317588729014259332295721097117529408284936765650238414036148693006998136757876411718026882343522588699237505798231936861429359110021183169814695362298318042524382529776722180209733051095375453755882154409759473173486798509844391375239413578892064951124480479941469768834606471418336671844473280246072546518903433764093514016840588354354624820190145827283942344792742296421735732420011164202544897946779806543378263187135045340209704216030292235405575230214308137326849717688747648296833784015464862399864954957854329189774419835256745676852534549563894244436296704229868178971638005745716510948633944297158202495812611015427580131269958031109266960971484145007152307859819097087852303889919526151822145518208734351236887532281969992965673672937903528735588202821653526611878368599315981014013209184842907372994770842501230059340659875905593861655065296455021755988276252427870607053633638168975208818819005891597901535740652574662821372260789873985415769593009124922423837163204176959867856985777631548894192449662108843894971217484682510201241682626787234557426187175867787148754892633860003536893425880107259148565281741762620837441434015627813373124775697754079247220361844032930145053077579259439759277934356824131298752073427970262469528605051110724521515247991036761976481773478834938402817823356736366529678452953878601854957407027846124922481375619502722113448514190686380671266858339596056977660460118302384495507267437164634461305294007899211179377071923135905427094370488738014493656570250045575682674477079021803991109270090688449013167947628597839501800611126082788912791720728902026382443450095550726611290366873662802421003251326617550410298461461903406360196521763136625368465860204663467041097223563474886481131945983354171492911469947010778033560913830314816851824626735287805822320673425375981112112122665104683424473722651592434198638403591108922138470890870139334284440571690145333951969914634724233157859642530657471126783749926887233076181638086509393991391064461635046188429305389087788370392127338275276235349480355904087593114558527046241552415667236825261655638559573507853218137877735132781419450071366086975391905212372506878291996178682400659045174972574686140751916066257225279877853669594202870250963414279938635053615615197071447043353129338657829324002103051688557481328526623381894857881536774142377840699577298962551679752681117821091091734138806310063884986583867757053071030648950768443829123519065947353475182529697513926199050286738199961130844374028336583155440618722748158672466501975056397653073917097668205974326046481661893779794017043914706039293421948586526945365587029061824422875775458546646867499532330998542002722894398266036466098544675190449638384824112371371873482146878349400826500674956659502929030365242758564223330323954435920584710122395452917404380622598226606478432268948284385498769521156094724970665989338757650503564047359318376794144012730879306596365268698606735840488186192342006627542545207724406302218433951075849451834703932374773971960327763496030413120468862026600743359628093045200763779588274885046079384102495891117608178791011604480188435452453970918265553107439021231899940171336649324013914734017910610666509163230360448796365950542613097406964125516067799306634907416745734778340405249883050438980117950820382983310758312892323057748664402757958586251635033033991752020701157169867155632608231381526535835104941868152801568625281486183337040268235294335474869204457846941233466596365274384525261696064322829944567915047287184785082262403791548500697091094463952248416529030583158975974745144503556050106623956587181616269960989546931606998978018892552109195823668763850903178345709532478181734574207984856069952976199935094970417660868933829647262881512813434272282453348586221724431178820922921310487759025922847308194308472364911116782357421348786958232518222157107851643076236880066929826364930065481695693834720581657907954244259339566697412657797226294664054939100469112033550151196304084123751495762778636181713100617946413077157906729731037724580233004554105356890033302604708036600373271242036036215005523180038463621805851304764742201563828425254878863101943546071766982500716702054062555121855106942683168168040389078298126912663435073283580101723736306626682253307281147081571577657906923304917790343432519241517540512422799398157157498727466215523606760964713871428511604233785556662716604690803994815176618556172974137372561420130454193843196962135799989360444753899072619789820419232713947242646422512830367809823557628694146575287140587456675195140093238957774030904955840144471846923920197094872656083215667522007630015932069477680695469509313799616177627914763138198127679762311331551501543259951502491652623197247559345367574572768730897106753769021264859191032919858825261916186925562924016894515486239453268895986993530279711654028138948602744943039022547102316288377010443367229253367951662184753417280468575376084725642468358430109483650004957255398870757017105974014284553136669543267546777137988947664396083037528604805722099411520378571873259643745555566438378659705580946753713707913934875316224625156346934228472058175171269094533921930521419438204642647932553813317371202213540831233018178787791494909354574248738468597821348918399977585185917068614345643302748899377787158644586212670199533300255931487778094897460688999392900248606593883515776794255019234444955886995346094111260378744289686782843362055571944117857408931761540469407539566433915078950056908819209795740831546424363755457976834141238181754774056878910130121962492075132049975825556162186100049405656454832012439528432039221890578923590935140345426920026263058372675340805169873962562991701316389132393075633139579362089003316325914320712213497693246183582960245058204080697512946323960262499049891221315468986132316481102105934638331821726907809735384203597236498994640449129732262942495950427495259947545599846300041641522844941143192756331258433770686631718996498306636451402540361935194057295453696832036628009448875320248377970497667081345140721787797817896224477465514388651038698131184246088605598826432238371207059229968383896584984115001680192666368279150196512657189532385695900251971742544039711333611678216813379496278581240894391819769359018871665704593828290834914031717945411287248053156944504737011309519419749472470429890293483499176734287061315147215933056614331389004912525903047281829282672136198683258916421257874765661078667173822921505871811035643147892902206993894807435188432933800230083897279138909101319966791446603238650535031154503743933290231966301793601704660355710087690978725222358898684060665652717222489935367319717106585164588056209954832235589799383150457858439878240866601362424764626803331061623903661223572080811336812661577811785458830155660414847469848131910663215201299020614837894052680353439759076072355784705325755116989621052653081926898263215058039117900038893356337234203502870806605006464122948423052934403077805469795520652306400011806412161867890370903300040181532390379251862023378968326103398198923217693675504803141153323681163515222383945692899305294558529733308768028014446416563322271700613877131980147599171358486005044287840539270010119902888189801409403461555852830678061590949770299453138716782848315111379444787984738001994868728157773639339315176070529551844847779673342825587803882301701013404083038219274072551416362398321665237538715182647604065026863859879597253582058913125471804636095438347292880035846671183017347982201254137676491030966858435543701432128451858731226477631231476906507672154056174456366677111734933983554523213327148945621650376553572747065449860804338309276859163194846597194829176705804523619033288345210915300589461782760247709601396058172363828168707809620719574640729833835633229708980063216732145249237777557899401790070233569522657835569310519220946718473443363731778912317923064814701340532492546190588056563478217779136839837654398350126196392512470320006103489503282338946536554929383905860329485014165345770152975711667210351713362450489780376016892512141276543095258452912514583936725790960485550582930631864009463987003581010775180890450165585870775467412228425972566385098742861302186384172325986950202894276669575136041911839496267551140902187566235924264426003967754829322790750926205802225883686347449316903494878642041786696215728528301117480233502264577978035100566210265305660955833900160603792804876636156221037845398321536336050814762216394438071859939275175284108109050394003346546852263737907939788291094762553710895737020842398316946058709029894889273703544058499880991702768943224314822963525726439015147706405274223307688394312242884812883631383751745226251318439679360241647511317010170913730966495739518293123926797495825706278379104363488651382363263683995193346299110036115901268370391222201596712155586461123239486420931777668422536867228808583291205957339015897018435571021745701274919794223747730916370322182604546953173911662414544921731765616229810441592908777778864736249824169810584020564832296905192814402541527578649347655873523967930171330341190941779369906327867210056176807856624997104867004488651615748480980054142682683511995644409519236036581226509167358924099640786394075783300767913279689735627515829918388387918018627923434033727189833710088714267493429007560064961694228469033201903093488258915169380001358306402060482532048807363103762375303207352733725515109806862055081879226967089534697142183510730071570455998252127108363464954245872097116785400050484010189782605987456028841262879746220773207437368280921520808614687990848560638015426130572254779018450996636528922664093369235619378585485951166641446979709142852906824485458366704925550597777381726294582214511817786194018545477084348585281860308574663267218143127464575888953100169589975958681658313812956243664817644596571237760238173610557681247858639765521311116090798369797524404003715628995000447520200788041223788459241873767695329989114757733154322558624062333330927864335549241130642031895396603169056215490858157671620465307760684861906760602365543719459779609054142707485917282405594142536741252590527325204679105289569048427451515088620199247305260552495521573718997768596541538595158918243393155752594203785970111048967982197606855796941638032438724916731351074747900700371138515736976188647040704040099251519752071964029712780357794114836866729977525877181200555274274883047819403210110762758374931191760448881419290046009232461793138087984571838328581063940428763089594840381943512514248199187766386325981812745726670112322404897843715984978742789264669982934931999586144376651443790985749756234339660486898885648699617301703648022987533494675160573414709973245316822487992752474625815718658205329740500525056899014497195304087436960978302902941268381364387664076317434121519335765946395805227363071768403960009575143622040228756516935915015254066339519465182194285433745819129581427954093267011110176937372810334833240455626748893337990831207620367732580192346998993397219493147676919735889701094125289110950269493568635742041179551555871266969337316199254306909759244919697955545928003496244521038162159773694406932134212345641456444841012735472664337521698986208356444419558323036539208623024366581578498432012742767964401699702159475893298262989688467692016636832818527581899310351165074492774066915838706297134295672724189430298556422142174450274927445161434221880206522742169616110449956493166425833545827799818545222926215633833855723855869106331328514070550243001582566084764735562947433831671029018788365636159486925699697212576022932626154821051323701931725473173927181147727092513492069037479531830760438190042561708568763943212301261852589946087015321266995060545213708258718137361413698217696241993567758777572445430811715106658191370992871954259617086968400085848288617512549351093134280283151181427455504744379634435429377307706439049213714926555206953370537288338220027748651199447140656757047274609564070615696608595075013327121995114442768099969215214897136102933796675223057664547832396994883888585047449227979919222234449067515836358487771071617473663452244165369461985785645715812807593114648071495401889766103336637314696476285378418582593427167029148302350019310905805050076488143664888250380818840526906471210647318222729457064614145869603678593782052569324508813409438859466946982843063210381080111466957333540162815426141973737008729435112446395380463421657697300968228880168700706822439508081210824792078149275312962746250819167897712136966855432551316580630413960308458981961167995397798934264318269557086698926490382949748128872618363807952899998233619910277841941343949956029673128822672757503039022926063586049532462055140959041471862205273573445876527593308050150067693895011937354550816654792208869612081440724792127445334287301890800676961637376035361664237027436229715847576229704415411126274528558489170354970376626682242781612425354609542721034339347371635059584191737689409599179427944273184213807412912513333965721280540107567900513123301256298836513882031726476357692944062625118462740664679214861068681611850477083118168419847047500883666640151810124130601453084625649603838194179721401406397017843694505342378740146422671066677550939107523338755740281394473035340673207456100765752956210080748036006688327822725844718518133624602234894493005247237880578871282380260513494621518130583864683569446223212428644417497199270624763789144100038422033984392368167424192614121789102071804478154304894637245586531559511681081042639469159917900133070319796692746518097429002981930884641391495650382600005844268801069229194925529749700476754949910466276189302547037300962062093948843015610063963151892302596565888847618023293307454671713508642852574931308855474436798804632410439595446877088786981209112998992876022180422971155517206281464636370064648536100203263928734378915802562625157770381253090017606897154457327296444092453163453302018458428607794368293847637755439473295077027623617681588840745114969143909713277189868001508194787969093595178984191898484370816481090196539584242659422554832014382863555922802506604044079939995842797026208202659495761294710710756875341171824630822605400494885388978302199918515006315491118012337843581282372043504342192643203941030913117195912698049998748882754046783006503743579741125481188978812821318145068278943502093797245563311262641980800284286893049497006023399987855752676263351074014718800782266598323234278707690882406455748600021369565642658884773268144385451529700092364041164165875432904520189390429633904410045008231610625024009655455131692614591509679301922439097278323955226001987920733939291666423205408281632705169984915243277283612340317883751115673421227182228018016254784413923807220760837689134121919968846315205964901484864957050960478515975169253048211681784649321271800493417019430278933240070266747556771938756016483835359716698976240194690292640866009423918911530682754092761573375958685727608454585285028921345120689436820783820790219969086056812195081414779581956681444575620041051147502105754809314817526423394126874832719094680497533514236228519477236183329127102013431886280199680829716992729383688268931029560514929765615672888616253686381639979892400858788381183714210864843189662890981923796573001259427615427289032524336072322470436536880389360632149381082822513213181188865820532087809014623928474766041944596458026908086548540320134363054216327943644189130822800881875947532655356750918479396176864442370182103021058847310508038860679571109622180196008354025718396812049396888390268899484214652797898324359644952553633270383624143292067989619691282574009607746213003443973326855948024285887306125958696348537778800486703764821392775734444498815199412488318264475389029432554634118691598155311631535116308857801283458552243538275584090262525946044645548061284272474239625626132331939452662662354485398319232216060589473870886645032893171184414658101141899412308470473914676219328949713360238825689000434772905175877021241109958299216710476407788803974170519719075624406573596258990715459060156711929739675631967141572277967182941210153620536908322689608105161540982609393595244469279309611149672330415611459710292476041938687635250114878270190115777507355519458480567069341040389596239943538937610327523579608179341355578473823102011153230912222649469123592873550323511009559833745278300916775546963633903026241548471504458490134564161891807330496858837552428407292410393944546131501755784271013293745296714910751629295744876243556507087843354635940075571503713260677888104217481277630374787546336799703284842395397156935545773426147912424833115338876344604313989634600598454017877506599422337878563618954292678423957584399341560271394491134283334316603725990062240541376981804085044255561301403281849849107963743727915820115753177716655130399500552195766505608265647494703304359863834869709517703189281173763603220509019989424604424350808836562146409499787872410892896810139976128871195802408460230975773149077218273021200361276206164329573861517372868483844183857803966918410734518689989031766494790490039288096170559866417810172781020881329247905075566285598579476436320073848529661761379570730803541429336794741148108698033283897509449192734094100109225526939896269369261736124334476862977418955966472752436596061392593750919630645846882711319140575363427872821781351874153257579483712517651796581482936214715283732415492957057379693386170266224921701426244961299821103000497172149412435081512946161643035478073497624022109609639910422213083967704039931902172455375887298218081346442410761074959389029868097577336571126214968863793869959469614653250069011793832975190213360854889003377247733599416356770375035844534283813757916266871078492736142922060120412199419963771011523946248254251484160549171678110222825885432161984423539990439160142863664587173582904588636274801803839369172651348556734503787527591015756221324988807224813185734608462825747161215075900674912689495348610402944895229298303342417441486289881011219903707596849754275960486450736806022794304454051271043929554510485467302752544227924907684095944644768243284364799014384550114832118075594451118939800239054794869323351517178018587482978156515916489765075885777128467450605161207671247269223682423780055817551202988777602666850154607034584700305885552891888186517683963625594575917641105852413594847097838410773604992640605511775579646609757723185365316703353017569276862345559763322659449709887665267572861930967263003753084242350589806236164698958333630531066377165658557222276781338478678579212061452632564682184026416922144068209473284929830698158432899572435676752135153683140875702622077792155480175777472070896335762897744328024994665721276012207668419206869817821027511739694926805905458169364181588647222355965622506097095836944187516400020093185164529457474362385296725720083613403755290281158454304982865239510478664672335219002471291882796459729652459751073373600955752859175745165464826818210496042581205107629617433008121441456968600011084153854313682531564451642227468439064235423293470653838936554151573559361824424577355569134205702989058318309895157515397363351769619601879041563910234890396632361413447504899611729682979554376582761390886950669683735179275666299249714900484293038239118488598114362639043539134964361525080998528463577448143010704786671591244549259520366016595447238145348764851457516022265927029416365273503791143830342051221933009352953520223772702126720033109617413029549732747575509191186553145239871632834171644069803663962144540717457404208360921294349942605038881225283306067619789106999380620710210541176024203798179914118723960369690838678926036346479447662911624716021228363104859857658670319564530091488427497634056675122868209143470959452526946337752649666348349808031477717871372919794801899045281167647331430070719185413162681265764111953231346789721367052854018723573262125996825320966207266200164050279134899567563319026878377040837083773369933033074520918566350702392292302812265540004284371064996668510364873432311636881346189583488880432316119600272780978971614616941243793251510027974721131435801896527009307166727867590020103673881027792527527836074732052356659788207258902090403764225543566815840648446896439414908153189851709247536197217213511551221664804720178121596296583583144357693756472335530947542320077492730826127365086339229135480452626681007152452086658477260434417857102023796803695511725207754926816768371100606116025208148808917835167814925219008848693524571520151457699474660588916390257700175701347492338903105032381502817466352135222459681849925881632034474538456358567118938299182694828404990228010511349817895416295695578832856523795449351045461791155004336082548526452651693771736663829359233571556844508845688826061405021518671744900614694493580348155648827758641519749119387509641247783580474895515674021131123807262876385838474743182274649968343223363851644823950209213651859092540037518845938230989832565163549578694197500719676829513043736046892600682885299158720756955620601743649482549751296399576996115409961501478356917981292655010030516816431296052155352946731166191083882548465622525159100147278158497517377173273979396421611485508346829590055993600445397807226544419363601876244167905617613592950800159036926401195927434724394068291236746443727197927392523217811561824692146581811631238243130643395330565563825415074476198706231418443380119992182621833063903430526871219611624909596777214868534072951183787943408911622079718532689054945235981645463784724157950600901333715244765183368932702361755864965146058917756147911036956121898074834631875051558346175239671860539801534961294705546659957186244729655599485958537344425349756263833731543270945663282760840268046707402520359791170175156475643283962655458789649977017404314510064263991551004679960083193209737609085502512486507022848724538237144734539694607417618335165283323389068069572488991096687862229794880544678805042678525826887522990593109919579546960701951101121506558295570264989493394430399367290415027179353714849595849916155136779543855094135884992163096332026664330903142644472415176126360207122441526883937070258439467116433042199368540534885453085932245169840742820588892549742620886102542251081711003306663908944384592291861661389689218018122473790293742253250509804916919424548883417022153670932466431713846258938963820857192288888016730737069769735968892316187571162524060271381361509684404821116415327294860675051264435956228234633637912894379970296618814101731360291926857974317118956615699361541187076393469646527522102041831965638263438459562144525670670694330070107964986619509390252836736913717003946391898132118525643403502075616931903330829783052445621011563289713592660894940762812923605376806107721680132845561803016033209585409028679397496882126563605430942774398971896599009628057781484196453608960841548155634766692970162819813284143814560570005826883598644555217239440300622356389508929702644144865447229756030702008905084032533095015179867332864075285952824468577028628350781699062681429099510482111860903066946748720334267989844783392978794221608838388765651232842662076499705718266431131602880743503199853329238300605369213188636276236455666612964688461089473462841688214784807592711391279387664661135185947866465636741583039087621223242344320740940998819070006371179144603932043552174125953740887705059465645311708385327967700144958337655961637553781835840174129442299184954558588897290393746829018045879635273021322148818430050526529626466047775162195256153784628699690282467933934466026512000736257411280018151808299969867155517877475169465417843818365762953015745229126718478267786291806837703712479350734776810077531964105720746180701519370793148520818086872895396229473834609152706280286210724788603435821874411506887638673576757647221132963794487138142021774343124564529260991048943676006103924261694209843143300939372187582098748089789551516542497229581840287242212830852383629637704716805018501942940443184854408301965812082290940912661824236100382290728177549740938844217289046446912883924729289628437952884675769766090869458069814500379605844380601448983287530130992507757038277991610366366905380702925309051577760761862239607190169042250596495706449660701868780779545550311948376664845411955522747872255541297518966222362056721651851752689306850111821059700922415521184103863265295818066420974286986175418577837633635583681236730672309366596765741878297079943077425757658457860103349850812873773120656974117573176222690544746699518696163160225153785263351858259969268085394948277761992077260841291946493461471677561062211523314951568319316226999040024994061527239612255634219870486466417169559175308832121009337096853063332738648818119245859237884956939803033514686285058037028025040854426117661923785940003121286987185954717502501719010014264880510235036116840059386342989372680160588933006839737482971098085927941990685012365486223777034274462643358633619944772513486533987710793061531834257633505661119546765002221629177150081885448176923319587940879208546004970255555617309194522251725860483005513458221489055653575462150856224950699202554266355305829365772351627878469999353535220808991800215865075215783817461883691988496006788357727892247690191166151033013529362854446631330644362681004935474130479976760516455741762661619173148870610181359304768587037402854949162081975428050044375909419690168221346227442978465083561728022102380521438654631242938569637131343583421252739895892041296347537748909174184935391743076787254116059782398666436572827265000962516528186805211135791559016400229444536450246552461902466401759277833099270970486146799554010387904255009158340243067847207841578829086069905440377949421623474637883348426997939297094961682787051013411306385035707676570514699926347392401183056629949726655719677639482876792578752938616881828420747358553339198044480612537120087818001048973984746691364544816115216854660357770143039486107514917794691920188151219830532161262830135745331562905965172091492797626918366744471014804853580734372297620315546556519151483201481521638971679557286084078358505481869914793565741391361933182360268928664793048699366238825343717318166433250353484513349314026073456724450395590625989500952036393541890578951558009404320721374654711062110412229693517945236067326117621247762535049227124196036755310846110849963923592205397497713616295078720014466669704230923775738555649913236548220862367739795707231077727969607321950969206937083894271045875759613831208885549536635027146218488480195610368270159939400806462459632652050366208012023535898857142392592290296029278649342268744394261682497917238159262636654684181644418017933920297637813348617218465389354958300275733160186681194284823881607860221934019421082709342539456760350310914617568999096051983074413854814707843664040944245927044622473460832114505750906425839876670066547266231699645362561015886246195289351688070402998798764363409158847715468469689182530167027320918959933054910349095802446591455643227600240508236320123705583492624685774668400248072580034741694912824752587365528868232974790435438444639532851519659922826550891616153371651874826007229912290946408870184105340265951946473364742324540790027439669033659843454731865829785109024575376545180461277118237339655351624190083725646174677161314522069213527550313440610880894268683013711422094928399896105105819131581537281816200400291288166193680714635719132982270354056994657881301869060085427893017500642601591307846482517409818285790488746880990681190054045866858943282775079203676013379476599107970292166898796295908877130592742042628624083269345067336259985230194564184431371392934490496334941885033448609797460147659520132097343411528040451078005253331094199421966003382694071126107464107234289647502401982799122511231805762874425179692524015723652261214273796627741429314645058315295672049726266686802820896494588361242076723141291228997992512461756881974771430075069174032715796738662089037611571648831806211661914530222357649112719274179773673288008736029956201450544008268472993058409427563747567747536043753521058231981600746330461341055077247059600188835517641293787217781365293784267047031759274641942518094478518223829677191687316453693022147858767402738689061407951932745621108009632577579795490500413722207052086446677908837323464698278289220840527307136689776323951746712629638635707105630173016007636999022875328092362890440834704055047185759431256963941096091445617085001690752169875714375604690494528215055640022336375490962143051038428009306865831308109043447235899986188779397945669566855024882539491319538908282724983693479497724430428909394574687009937172323277106340470985260582325125672415354845264840598495100111206430940733467323879399202885288308767597303627628630488514273269293101630936271609211029157235892294973354973895270746614014267938983569835774358023276672240994737337307789606583002778868350168692915726164645462518952564887580522082687364737305242944527817132287198200035380762508240953959524861019023526435421954022537282673882494730475701530454792814131400023282416991910338372625888726381414646399596146476978504156961284196168140903142190187929960997155303798128305520934284696716541101361440632310943771880111985201033605999025696475482647303586956359108356783670156347373494182468582731760068778158982913367742485982747207433166741850985598913774280811416293784693979547576092899264824365497740163058039185128031515633111609324821849481363312916265634663561492308915449089701934805388743760412117536597229327525778810812308300109343485365476895856390031653362086706314025867260180898741078407814204112935810938569066851916893633563299596722393998037830693078574795231485295161152008554202925449250764103378803690844652765937802954994540084738995587225420728676886882372363699086824511153888278818741294531868164497894303162156753226983728709707364271864192680621784249252198786523094988542653065503339585437396544679408836121435084202959128703318776824120412427217125394352062007201280822445560484375562620018924596575733930661262180772763035442286432030960737272032250847141507166376132241988195441988646469279475326156197625746634593580802080941464535553573744430187050355247335763161543431025914721519572700082264858612806844584854994156454628259339428895695147225552724463287279733416181744515947046006753444932554819920143714902458521045473248736289341646758490454548371902426797283515406074693586514093260313815591508384633232532295894487748463042052619360404952687566363236159293497205741728735384201543376449951101162584095122081949435952342291220082444610391779673437481983754735281824883334169913023493419829300085561486214880330000511739591072821178676666599181897754083888755550875335087046060344669433610042080355734125849103640876750503342973810221075920177946081295044140683925238516774745059376573842221789655986208282162189135357868128406837870815560657449849605494529139969735981674588467741284594841718793172221133468630282383412197117823057289902861569990245552958973453759379163244042086127134031017356270748825587926781163005961687260893959011814148464260335372782499827038283690704468569197118972471333688208219011069361752899962577974488151569675330636280052426994515015807936987929480228287672408396216681080311082168383394219197123499123479973187278106673405869323967304012208552915020727626733068211292094637465737471282482126197977770461530671594353796714053866802046130013664764121832632143776578198081141435394593482906964743987985706783653039100200725089867145086920065168224182823669883303849108740367844378318226495542077332170820494813142453002593077858276475187259133164274355119203163289865232227952127521894296830339904912022703478919842496208452647056472594107938236566920132929596784995062021018723369953614691668841164109966717248097936307821507228799157173836883079062416238384402509559271851621335370689961865219378219015492245417478157945132182769520848761079247159684896910172749622694592930623462225610927268883849316213306133260479807650958352843160566710108456000514439059125816750016195405220386223507850264343704602522944744323853010493586375269730911218353288900853957709412511948903176096392392006512776943181359648057179131981095319163752572977160366521840933506872322479996913889080378091293993987662081474717785370420300259686242714514991160768519885812597717888442925508540279332009593635988733348070677166639294408694678665267085177080875619122725033045935818409150620525549885720869794732156885707571657353205980918048710635878726042157851256637969171005023213820719561493269538338619854237891963171685125769151465838238713002828611736021798433828530516992472350419235970250391670475382115941734757725408845677688255079346414216060596250514611197727766685040155480405633189824542969116818497127171017425858738409258854940808550155137520393659336377075436069819301683745706720925705577926974289176553866943048515888216078763934173640446549624177299450058589081703835742023609782991398503290385129382370157547076968077019746091999857782613385375260215099998869734602177590373138957041202239046864515237243906688232609723961992480864124385756459128210981913184442811766256167089934977446469241847290581992904411490393723520623969248999917505272264979224525794859851456346759691011300729152057847078998845058262493487301054633345613989701415738989134714390698181332433981302248233421163939086856045774294164299778881078047596667524987666988338860806263440445991721482464857565551560158210047483297228493849491886981546090834365337918255937266406090034747934088447001918962294472432648613283029766841894860341528774181410938130907771820785121874351695992569006255812406630864185273117049970420391477012097854262286118392629637623817524817736328667431163584641068365677635710574181111294388357470082969408125314064581689121006270829883419408956245808088122349508055772162311561837409882091980226384558783364082410319853966332678417718247816598474888188162242229072209305053259877273688374415692406149410858477439064402564669959494683151320436638913951181428296858926579553301894696629284204305888075317511756090125697125465010253216453763287556445375548100781440046874725104742871098243877856398084903624443305711346518334279528970577663651351264074751801600690612737171461919750793259186835318152157318767176035452018866277629710833927843522875694765573845684863553756816708489538249322884406787950498720308383991296234601975217424703647181526561963185475279190724925139951332145289038123301298410093639440482107230177457764630872373488503098701918877226190674082145135544842693508200668996539682107546590156703676745009222093017712693544394186346670872900917991367339271190255202923408414546859103221912320727726368055656766414446315673201905578044049135604367984150515360792477528231587678101549817122457530598156342477894834214011072254914865427344637787589453630853322139422140537745813499189574210216856268145229592246392416278757296412491208935609908648803900596981062276144369563412004492380937768654735659292160367626865223936158357453205916479308381722718178103287393982457109178853798432881329725983384185238379509342031911707084080879641971535653643047368467238893831457822172770150984643293066262890614595653128234686260188548452151333123809569395192317040323680995418787144784126267955900368163551567571796427025857344303243788128911803144170176700372032004682506756276759885799277097650916462632342534699198533966095343210863263129440815213992844881150061184160051396982325571199290723732200839092700899472289631712630840604379947700554299135081215558103077549147900120316481471200228948831447451979346011724942856074147309247833857375406901735897200486304842968529218108442254935788614575368584713444671758528249705175347243558925861763239512011285204251124078071096168831070848842855754046989122830569078084800907080680644051888402650901577346529759924234567768576852928393601609211364464498833005790670195276422971625577809940890851193104067197880750417014540516296274038800637665772946583541877967088327589100581242465676970682702533518081002771408358080717729380380245938659000382327249808591160753033364043766022264124375253515073474145335460072424120480699819196540322823888908566933037362973244263776772549603598939520983351610290377614370233049279546939877902394725899677351226386779973774389284091724307100161762747898356259986258433874337434562002250515891131967634082790950729314780951983594848387081986861227070430433973184876069506505886727839131310905527813361562821320416770485392494123137348445303316988934522328311043158118428577425731319037800515239500645763526074132942147164645481402441731667853856119189709376265391476642151164420544896017874126890381705895025885963691555975885246439293003307393502417067235297132565099853270850179309415615901388550567103327849673424002140737696602687655657551415851180899166709554568137572378564785294814766910843837518448516569475952239254444922010438139069097442508197048244513830589971993969272597938361098678831744665244724721209558951522183512517247661035677409620910775792768275406770445767518742713203360736273735412253153657429528490888985214742950642655133308526646061299731198877608026358326203252240411605391930318013050362847921447376529115250750500802637072913957866913129857198710821502615102970356336486676803842545330702943105412914526773673612285957631717790956490115153711098765149329326706766858970205897252784715052248391941200787791576576777128203817363916688117026699602392100573243531591800760647426604164864586607982280335042763233880846344103947379730326507457525757954159882648594402166345714501390152696518541662989924471667413158740199849908067977823049013184199436037076176240706362677642595049422823028355087025795710747059936960250253424441743424701981431820558062461772441474767307834707735149466908433256519397140424973010732642661695013115195854622732114869672784194613306365051967411142657248551616998614162335772143561904810224038817805520916951438631089966961517670260659905612344736717060008911350010774227738596726328872799485087615214776708357013135009282081853962789590456576609720218953164216599240012573554209177299552111439805890435550036588547891483223357479897715211807980366258235771633806644585760995983664354690850575938781252139540812922810346900250056977584651202561972027187376395899159075127528907030919810096476006414144569331396179198484152719359882750466562830439340366208622466037966727597020693787136613526324692261298839247983738548151888553434871205629829658323740860484279431770610135457262505900031154176710566728146954848188768199606355363290093827899405505804754302258943763886301196684397606031743081030287308191128821856042262751598256636349048581899656869939262083390898710368785873386323850537206233404780188384368318632659833762754754943344232636391027038486968310575711845380897552706843496932798021086151457275917705394604445998607307018744733542309565121682620578855457750258791810739647821758721737163490255613168596359097173482270686039485668596145562406820340142220534830464081628775608235659682492987310593512713369052438377151142380181212410313933777219499118582990439579779153215857457093978991091538550950423765447591982082135303875952084425224058721195028581055621356530654823056033339870906219167903094342346953556375995248422797098831927389276400636860562390336484475805241736633735365735631056874602906784615754864411879532861871544145322302440466677264729990096095632472295230859661920339239130497590427494814072489922513380541994437595030772599538095434823334968179343837226612441350810288025222287176737485049508980426324416228860181383679370695525107560089024506207063630572981658032042540989139220006986685735643838436495947204558493604064514788457103218773321240869223387096186648330807185486226692806694534385470484544676446655472513286708699550322726412900641638760513111634032685598158275374147094252390718142203414050715389469345860448877728333270040977633242120316962112153747687856118403627887786110632036772246869216513830373323666050815260914418764142736706813999945331755936279276773908431656391804169975491991379722609427414781393934129719121710825047937394559682478724726738076110746464748559988851439737937676000281013132652072961387660122412394423515182847703946719925284414143490714189843081848220419599139562173658112386096253778960550667378016269604174498440661646782492999782996677117598254186869368398036373149513408886705147602190842513609512905543848136006021807040407277454782311792703825333085829578899008854534075104628444285129173537623446186902178994756182389303180106229757706609744573999767112709347950852112851422470949726832208664212063475680338044305391370775135395770394796305956403831067106070195869101031538135239647981857688683194475228517060563760423641103684727848393337284784590794575411131356179115899731520574381611699159005922319424666260512981338153886360394353060461494722408828456564194340427069612664407026277688390109478811658115483113615506127932475945828850271740978520268566511723234107441849482512115380894845198670990619459031905016630511829749581583225721623209783590463202461575435196847836502416093247126582481970939975192729569955923238375153134851606689302511933822590864957627219769728705696069653595558419541567458883247459045051375713756907856184933661469760150008735329867351662638849524611747393586176374243523687894381155971337261547383200923325086413582027762310282102293394902203073759510039299382139466954677299584684341870958887163615945205550404437003274919224988919424594141624439925426476214355407831808141936999049606567745775926874649345150897652446280420070816781557078021819753793512192219156503225175562384079765688591216187407201997252446806345565034303200846956448667006481513131460995972890769007020624881267160956446345686541627157549568898274870256381051471889437401390871970342214430983802251703497741788149381715697439680682983727135632422751812329576687935220916969689792993982785809166426207225692906896449549981419716601780303598590611668733615887705658045448980626719920182441046555769986939549645772824151499138456599337502003336864622648922248169849884516744397338852279417638435272093261159238312974243702708440156152286256742331285297248510565813394603256426186664051210942234250430933652532988716971020611546191137437642789855917651347317423718277603971636988678612936347474359606075614441336078364764505518274483775786651408993724520515872106312079398441323298703482484597261489968015585143360927477814900908804369969401607228426863904582753161252993659447180984070549920294539752229060580776551174511661606590570845883530768358037895667541813333492939498390702643315805199645382782828230993487615760945048278222995572027413367916256524697015547489044316761101156580168320460488092882360359864871271882922635166531278728980038128815074811804112605268005508608264980945689679504338917350625104286463074119579280053765696881247832794713410759219613164716007002142359493940825386786987902874792595862090538709116224021985696959466206435963316670999317372955984481883419592297470930436535048602367878955552406586290339565865985301299228236955831209383374698907561884393549760845393004058291454418167091458891350725897314396710178454714016331067300915449447352509237742578074225440087726806228831975737298141665855661549194423026098956955962486514688389282819422832376687632918465288235578557198405192342602884467962204827782734138957181133234195305009332592367668009049515231284600525608308831056575582278321548394452697197051699115033167590050719661926139036346391963525718807163012423475570970401383048825274382469116210314044371606239568182785256835035993812060096447724324782743187340069246224759907952880142353293348147539631894730222096351776102204476442600222732411731958574372589317359921803957253127704128852981775131562117722850804743201107148502879364571061014218481138195401051174085904962328569841743056169774353691313132151952691784072583274491515798545244549633087359450383770413651085376366816202210101946281123721393603759813003392942112349366070778472090843539096931696869947636401935731828502640556673164586966049176140156600739986096098272978247154745110972652323850175901622505808975857682318630859150181699849508823459816175528839351881560131092632672484363654446904988652960279567355915180309791394324304021548669896394812200759529297543616233874909560539244021378634611062012223642199250967505409233991503998939801170022135430451682323171781300813607629921164266667845462470422893590093743211828617098081602066469327634636863318114948103157766784740183463080779039053956799748217466121168220463214938261793977027185499191292393013226729325268571971378186050399549452765275923185603233178210028940827155812001458628621093652653939270746368489205667589611541893939836533152523463343952068260625539171562829279808499580906026624553022283519581640958355429024323138944892782690406346302685265435617564230150855429890877092337895471588325931519203698214932698622948210104526780653122504762693819924706466429237999293046552254639817105607157331152187448812708725682544838475323173800107229207956222308804850688630058937486948126760933629977244379447742489000483024750898185926229181720854697680255033764199038017595891366965479761807767235971830323611354438575955373620804098837705120007388715980837209236060492283135051404544322905849715881498947210633987504084567289795856669840120375167448346698243923435476424274126121663109003448006345539051320421640178812113441829898459704694552844753869615651607728302102328794375270514329092463692176981764467907494338416162721117899169316707697327641083267694140793244583315155862657844624889068079439382414500596823196964978137998044447934983544561827492518533090467183833968119600467677700573136890327980466654378654751178776973674565626939526794791181606950073860639939194836472680918548546153060127119410917378187941188855166349547530927299914661273440358587070105860429216990794090711493888418806850612828215941839451862095146327632803448184597566086194644275447536334288039750923419254310478416614736277963584928351254956136659094084997246287597887247048074304700733893856811473092944326384560869777110246415023990786992502772272533084574721769156213923956433938764866214139122085216722200765890445121888864796312237429414579183841436921347372597130910645346409085169716629408915455650675901547682985376247809720230940998399529612283355833915414732230392169160702840969599180566141331448003320790461213390698311829764227234990551418489596085651154642385616639172212684387217650914409716045443796396974203154193223108175431734083958540971682102284343971561251097216802246703534740345862823182837591071568169282428179419204974704302638108740516865224207143333834204461847492959061874339470227344166678560925571126866665404606283425691241810194778453974022709479588726273245260586753511094688147408305143399679084143669634711894215709913180616107309005424632577676215269985918531990682592472561720874911930806031491730202305666962996385619209474451474081415047621843646829601131493800667324113824115856194645560859521601988647654221026408542120995421641208720605835866131107645046407015747576592822167131676131607145866848509030724908412733400091763511508941621973077908813463043489222587312165800006827101176727836559392734876346528016511316596406521853754168824693411970357968971103070543556950479257302623500913437083984864850940741555929434166025614234328106900237891052894436021288177045306249412353569443752727181355500587244878721361052590587688250927009582638858082585244222790752327842277146018883220180105658248943470287490033476915375984801130246997154781394678186907946331707691288341896933679005387467164601275725431681198974016033582260801860028010561402450726392206001875752121661899111543216299927293921980438130500781856342825350018707433615049878720518279822486021760927605754181341902110219465863210089935352703234431971898093422666885554435159349746359145532324774511183623433095757627670355762703814861662273085207662285802818701244619493295256953689134544462572292323336438208490661645432745731758639343874621163108469414131737005343776875208365725177786650766253212494572109720233260696284292078850675186412230240755527587954776855034045330260656388641728488444294835610455573100157382060793008534033444836475542458880576719642172687449349777015548453358188232207270223105749854246646678851993059815357919501697341678087022975928403673958294967671587196209777753678126951364087394652877587242491993961313393289653987498673700737378981207036895853539465314336331767451961437328064643985313282873866176381675523401600315757943190740145139613575782210212024854050927302910709731721605055882019801685773897987659548168165859135584039197099175338071528333379961714895457053535253799184147496025438748565727412674687249629293952659715312189881123596806515248822576003919776997397098894452024553583627332204163299216774555607284101771253298846083869176750053104023572442290781634555486359746146827914301184929776084303665280901426428025922142830545703203129088572953269056194957775504404616939721012242807207136082689061262257448739214327551041273623962584256150504805587920319246242916051328016289439082094882897740977578728739615435289712019630343692220709278045685474677682252096268490775173840524056712474917797089587917855723402092699205334552776153940386887674231324468188127796692067194064311432356358674026823364758499002928483791237729099344950941177600062183010077856353992794500930400950548039139253430023988069072812144795694185765531949430545922020838361527279759624414635157217395274829271063430706704033570763995412966934598964554975165064851715261526750338043154121596314785938166314069283836644825356674368238721291340799628587111163985824975327849743435670661407612318178601929741149668590093678528494838654373352765742805148294133565211458590496696646520109337200501103409999153965103039210218267654559182647633794141963585403878526068007568147169552403909065484470816421404787802705035013221408884944012176574186651091209927150979742552033411094534363211180919759680078172227329324991586708709653845496786344473362634170964223316336649919193171929722277451668319542813297044930948522093718686401692927107014264810554106795468451170524533677011887278871703437527630933170496576440609990826372629638205642944322979568378760894141728552840417587277419560658995682478273831316287850341067362871560446518227579480180977765750968847818837238285202836375269571613843310496374737765843361731184296155406416672168194578354886002545397023450720607578170272906514529646451279863098104464816888164902546014370284290033077456824575864790017451737009193005050768132339969543393660254962219082653313625550423267965684372742387099820268767089040649829534238436266599693843272741353770198571868045055236923979451819595337098649234718078297096746657085960154451577723326446866861842157680356566264491419461901207260871216847036019295264667441603608551996820455826885054946790289605479615875574838735798786565558419741416380332018999552252707550358239864344339508432039482668711042118325890566344565733761633050544979888030337835645076131019856257287654072096726416539768901485007066668130262159282325025766450106945552828693267879783011516675565743599993754297306759758097188204237267538649110000984694572208403097007564937520097134193429541912663207436503705013458613791831797030905568104917752257650936753386837244329984908836582621803839171931141284684700626478870672399772620195184545312358402313690430426750332207029522337779574606584389313060480312824350808611433013618163716872992130722640222538746638032878753458584116895896795184088931162383474738730146587495744689245174898443681790873167066377908236840239004728558766449143901890928673377602740548188053994216707965047826778164949087352658342300123436973450505623281957984938581264703340725853667594195161228036866297361925362267006153446507865703733677321509481628909416860961259612394899615660784597025062148511850488591330854355196050201148439711263883221166209350052052405075374551834801998967263279036244685996948069135229853464733472637203790139796333480701938895453716568734644437834978077180560038953616117068319777752442149815702433516520078501536990994301208305653825685061446846851830195743225124942775314724461944478040716807480699524773792983290204042832713213114839615771323122665284873819448047505655809597840881683789603786413489480416049476575213445687048032947118887031085027401798934843895731268862847331481549041701834884480121166236924074387389700516560791084317658217138951040851030709073054279693021025197272240742457929970973114400767925335115045875566051816638462001875731200797600047800198367476730931835145469022067083811872648695620472138593460138739176529241573546065998044088719431908587214234776086593598887111905653662987951222849060770398379951606015898159107267580486499771452318401408906302392897540364675948237306216582505940059784341005606587338291467811744233868628633628531906601678869327518588635425790343322897571260178343040771776730679686716934516317577435988270676382567138845358681169130957742896504547629051398422399215867342327980403603207629810835818458032499315849645651929182567583931231138052532299748873128103633736815312336331985548016899644703137463661169056844430452057571691105122374486724143262896667268249704572638782186961737677853712266337663491082728172820512711781156443298088728157620153402219762954133527958866311067782328366527703289822448191277885910822637346852179685982110515684475934356026107971810803793876281723248633331887189209460169282387313527319829713092854062877382583031202167108555727933453803722691789323996629130166706274514014713910890495127426917048395011799770084437537748640877354924503736326323589723119998481121204993348682742334527226543547800805182082984037224694288490622259617600490196688199880057493043911141489118667045021434883399872445458654176566568023990361778886698600979302284404357836896017609357300635543031970181169963919290490662864668524005103748762284498358362826693000015914208991065857100561760350112874785438925868344373259361295942016148719982571066216926909297202250885666581033806125491428314825367402933549252377159535547794826105222757015137215874947791432969774595711433085096807465246637317153234899699873351960866294271274855382309486402307721006753136353918962759969512103924015032635097881991473366490496810768677729752296560185529617022589204204065560404579239161094526954115833470493872263764213778596112430332003616085403474279552146730428295782273585278235506580234327931443137605428059410266161244204929601032189665992822702637165236155466114870807574981125424040086818371183774276162271785995506925546860348308249837308990781677872438379642831921987857367904871965416985388994796275965673647335837565531344789831200646236709870165544335002682981219380037698478040751957695495266499425885380881803516795131681624586364927408001322865699101438504164793130282381274037007928793066637326954054831009436177126247370294851828044225900034974037441183074383663936404714327075844889873392823147292494040715358880832686667697859049418479550057618390106182616881468312202202486707817393005658840095839232812936556081907043083894844659143966681976848903804676854387844720765644387117431501818707942021675472093307848507565359628032820504826762582367318556828013559012974264257638383969816839890063680288172388804106543018840585248734431696892254609488813780884107620943820796940534810835846489344524024608060237408223479625758892256513562530132031764727705165891634142985063573673368249395113117950855912297407630646946613140407875673962287788140489841716348954983702378298613095423677929070006303073797721405245504568754523855745591167375324418236938275793028965673057436715992476376891848034425378116397357446129677620780546107659248871222436643689344382868111945323216515934451707067264812079416960707487314013912824306342462365721329361990367342382641600789414333652038804133281417991478918322157193007352384760789632781657016922716784715263835613787953151356400532533854713253465936910988050667421008867260386560859803953197726154860641204181955888683221510550673933469991567426169789516860166534604415451033431190630717445627406851450542618826496854766716767098291475917814480331442541666777483393587702637174698682014423798817362290210277254449013784538337848770074916770947621655499767537929889593745059922267777476897702717995521269412366673895234888813494581060009204514512666205940475418444144917254799613371749417744012319390833303525376062751370392958316524790761635736471737183074899962699782138672525386228356868809614227839357097070231822115487791239755397614367746463062974667587556135220088348844420112509353591531310486500345657549845310171395644864980749967711686438282006454516915765551826311785845567220290593782552600963497772317311723242900126485270159943004257979214736408544003518813848381574807873593846667917228146910366083986682249107077390456046732097699457177941827169708309934972276828690779184168676899208860237068040845800066105003209726991209282221234271793254663539928133287147369075079839117837907202093505452686612672582429384632520715965788833087630928121878362330773870327966701262860653102432699697126885496774611466486943456134997891246726515634314036038736288782659866180641575273380940057319007338845059545176341849421908516760259237971082538011647170963476578328724767290800287885633018769117000692008988972189764416705552930186435518916429047850152627085483356905521090162535438855716342506768153103043186927105266917902139599191907495866999376994078827334253333728621528136080870167111757136987115934689463047671817350949118241845571080434309407155370408479472657737944076269990400337287686191283112815110611872599021154648931629667941246314019170479188225814243545709013140940434948043091128946315650961728955834712785461829138090307291088353595341820245593678105863190220603876619605729210624165162106345181320360701679011095040516118012904271132024412975524749328277709175359708703524745505672421193438069298655457280833188798404399032755955997593287917911377143056037197635653099570033620146018074841204122516361279266739306346803554491103480907588797386669862711663871019256880581854577783615693219126237170633773127382429411366525692098000975265505847066356057124797941419927341014384796679556577106968022275414575549418290721782412333154755802225059575764845341863242143235253181737200888711410498396082274251355429729338804235062258002308078621305164170274968915823426559123744921249389906837105274137464984836521452404767328641414202981508841713223349660149368841492384970192526270333744654571095397889679746494511356196776456307474091790291409941163140784463035408696499209226770108538691771457996764284468835338392636724542693219130768576904168851861521279035069376446233530944338065459506899006770217901986352325115878619292492575091246413527128137363556306876641052014852375523006525859364566389401245498493482502791590503165023428525495057741948831711591146948427806834129729296908024257627949142731293205238181107963476269914718741828775094101418874138978597749383898217184428171174251810041570974010428752414803654287579071549688628458209775596893442782359532391193944114186968943461756260343960151047684881437417727250114197050342744127559711357344560142603161976338605467839954374623909422251625342430395341030181978319478367555839706176597375392248795168423544800396637869188155447624490992407068040190577324180624900755414934895737855809765332391996019364208394832050277080035627035827682026733036477453178036059731901387203324824299451434845426909873197356100441085381692120143312207168810025227216318909271509600244776726529333020610796453387627449770731287899466226331453794269339951020406111340151226982368233357716449966922861257786188740135412558588070026816184749350709596635315119923489059647733093379908657922711581583118155679289338421218084892974168182837494420642864666378737759865299779242931098324032324770633506221681687217455624660728404763641537484582736280142463139578597359566154177227094114881526616215931629563908588261983349244024892368411783716938721934158010978384425438113243470711001496772034808444045690322950893196637026677352628356318666257547994945548708131833972954972644324564736811019213652997301555200289296268041700533317333016543018898688879179542349973219860277216099434893956967482076086878661356675001597724907891804893447767565846442103916451943888853681503667345822465719180637549117251739263407107487775867402632911943655461240240619034620347890897099960825914244905895727754121597343216532971403696201349854113104700401330177015841555703867096382101396832238074650852609622699803756351191019049906949124596772603501498787543504453955012075980130230797340484804542021955171415807381823502691216560143157160805327577275300889797300339691999210871413447997342141375239552837185013544027768273845898759999617502786513294602114073155654327092965911329895133169908393910587432604954005942963527704479947597684416263466586764509332323534780918964509932857876066694735264893149812633073167858114207179298139652213552933127571231392308922811395717121800731112992949127487987740188879157702714720833501223661400197506716566003600710227620800440907020311269502171895068880106820394633815764088581711324183340145922285625292575089944980888791800414046826554922771958022766362030953010466447000635116658567185545206456684427485014113333424420284236481335976402064253097057607349832429650434647357306751296399254886679091621819240000805630523457933021431713864140876144446531743136538248320226340385895546558577703761049406641247152326966368498792786178847142052519955730939813108569798047368423922491084907655625106288825891943028855911733892301641006749777160676895437981067601065933052144914028127225609450279242100670871014482434215011540061418959013623999368029419950002873569069039387468446561463960043156633448765304631755036017877260210938278342077053289517133397770591373956651438645528266732080369886117693150716218536705381484061221569935921346552281934772821745742369924564407790171409286902028274976360089026388293944764844388137666605007660056794579102913729239425475250747496965302511219791027172296921619527176695571154303676069015069417577179187118484012656814894264007345984479144872120820462414820752676051294395625100185111366861069902397589100295741458705846351670238617627913508662220394227896058496151613619172593219277991722059490670911972337547999480161883242210207572286140658522757021764408051707165984069817782648766367335985418812509817492930570415840734527759908085480232596047270410558895927431722558534727844835868992540732602427505086707148447632286938119344464063417709043985859105097909749736627015143509728204147895910051485314122545642960536633106108410335208193242434856572696439712878699053120123781862169284419263641609076750748982856688036080008543769933719412567063560748887789180576098122178529596588117559537287539470072295951993906133754006525673696109522593042504505908525276063676878687890007185608873283940131862647680062753459475699601115765408137861009744682882262067228429190532094938618741883943377974872139616530081630476337584865265984506264111677933301792229122389890463295784681596630028195840027399755076037251466434827391296367493740909673409422420819076521562577566478571271422087645877497284989895888961995275557225900623880547623530524134346439505394513131289822111363612074106571931516964194155446859173322671370857710309111501350194637243888562338011912060769704434288812953139594988578109766704427265692643642875766362809050224875767069060581644722646307607308276943182197303325974977354640306865507383131187788873107077868485166433599159856752611467370599018868987959887107083240849424938925304780665118149037238179748084060284062783519580723706086927016276843562179640857089076895167392007813610910094169912345703856165965000708854589570406778781048127913805538371196784056826071125060008581503949030152717118268233636305076025006595598507311904025398366394680857330479440217132241435399000784805877147913967147983162415073484650791229867388139102352594653688805708106481782254348685614434705749040371234270272410860049266531444886201679540764348828935391976364346432130342427998087799117228419550397762500859864273830216438190143288199326265775816369716609460364000023245003306385678687017594576672822647558397193568335577603955772012870294692306293699843880719217589779774695338575274169794046184241375905005850856305459029472913589376425220717471546752780417213203737294365072850429880055691305369493738365075166408394960333911892159686496160960701017728188963849055586601862022979573999394718311937843419858876009157835978112269313265771684938862615098007700121242915637165569266759718397606846914950501254287974246856849289843693913633138236977469990305741283420903895835882846680616043715292903072943711561520396428397035929007590914801633506579375058198521809793135651065661986798639830758296334543063444212760166032391898690902175724988311281343850146546378221684164684087260983742288634509402415869092978372766323229393363542420800191291792714424056074537687213171431347127890427064551073122310619884392496217551685022323237106959334985434811150706223265323424103480188461782651393644051942453640327739514615394434755888818750002115109303752790984753035239366815241870539854369197185886151551129734856018774074021164365933459332858458473181306868822133255885847475157478933530926348698460894488316730601116275830667309930602850709025538732752778108057276898302403617323962147135401206395416736112358507388666084659894067283199527998538347763350057727149020374063316520083303271697805216313320007559127276450229562963736464227960628137878728118529915460804706567272603118857741083211635967374294803963991732351815392358689078734446310884474404936212392070326900208636771750857543322260882869178752689448169253866629360807734753818605127943500378140188381074900033930251306610842061259275933325692448637688523480664463835067307809748832764459719607688071653610042286322334057617658629096239589502206841860219813972854660911676784077582264303239620074186702982416081557978584780873930330387914390652942143889949544403805877934343067228144140762731573881331817658762477710341786686302107207584253975607000330425412540150628106932949095549276305126588310899163105596458551748656120003679361991091790659346548495856609771864241291696013072093620496869324858786638886087014684275197017566214909898403809396524285044158730258922767942184874015170140360644120035851101481326346133703681750029022839701805053547666950617811406530927499799847924723287722105260573308794697695074357003735210938181257271482581046029872397581571896243312962454828353565012314443497824055379559880284308352969188034488662724641867365679559374376272105779016583613097149989106622770604509505089041770719599302032798037420783577928180140196171829835292876789118021356795844475415749816438864411157746603801727912586171459999823808201510807100909627236604665828983302506197725719389226760746530558111462137005374777747146315845656483395793711959441822936309343599888913398638518050833156479435989051125691781050961000904490059264141989170739647071271208647301950583934309120127774881200559801854265401058838653747428899448287797997122268632497863917522525001883281885058853617157738201690111657840363479186530314148471779028576982315757170433172432975541990437929803023395312534604252015532648400448736221086319754029876773916697767552105762089800241390660366705947866460590025377881927157650646353274873801602476841721037258414280606419827755642122916992636649956608868335460023101404042438492441665019011179696314933838553873721135954305768258923907340796597238348579044903910231744134178201073996030342954605296427541385680521145798707512502774166492098810296577711245922809555516569768272671648653278604905154496831273137606126185834748066431290364216398690363390840033656567697131920911146298603613423724957544982171947514091560447517166561144581006851600729833306779084125695707266673213122877998409503311594897329838361447663845805779800139170896706731367013958559946386901234902528769022149877694851303263475469554188447780486246554115544950275053902689449167647278435550305189266672528014517313315467771198977682914350520850287138236595285212777846205148345961100497533349390970121072131347842567483343410361368705441621542416584905300012778687846688359271900538883855654108318353892227927797396739273551731536816027866715531268405257206559688916675204227921852780525321761190156229013242468545104502411059640835987771074022751147932601344480119763756327572039835148794365417979863775732667691407288178328197869201522050787659919815791189916137116047928873478126389502430949936703109902441504679379540563645230915337079238458140165707108292136376885087073420821273354397227890172367644733888537785522837699480708279517022199535544479718177337441585060032121317118620448520122001705953013611807336951962212609817822931166247263473048030117367257694342651945085639092457749864366436450217659374090644162861532202058515165764665933031365346975189627476380102744103271060807201265486697657826745873284277934201969108538692894466924407745195238589080380927109120395855704597372744582986332739503303826067316367690449967910652886531882147504826110219231220179919724790156082935048272143953061238211742052922402598441549091194933546016181875170633020610882497185715011578478510502050765493680687679121332794673789417538288554856861298402880537090232248798594631933790026406375431765600541236792972764308593071824836962958849956281756130983691734266184445112416126103823808544957615417555011808582510328455669341572960075820597643701702384049695877171344946852312427599410564460346623796567537233982024702914791838560523699014839731135625688317001583677708241008253197003859544307651126370807848215457813467256749054571866043690942234966344366940711967490673373282346305917180252727424180763888595494568946828041613376374339885307120586163853990660669855179146167047019233499279727509779662560017728160932591946001693331154871876723254857346637658651435561007215989578947337041889534642801601314157975548262533026158821326360792016673567427168263400108198797259112479953917706595254953243729309576722324195149347056630536150434980095608214969231947769042357212201910267621188004161940065515226223717268658268691593334052192716218477832447755985744017311851693685802495331637135777474655006193781370668648626373084096876078594216632619611899258419236692327207139841497867767029125371186103216674822300009927458915765967758935397249057413431115684104151899185135058073340513487798578069884557253913812616518704672152833429952033169097617732706957799788589357168703956916545209642674317808699910649734060206002011646439247979787708070155769223076101660863741694553839370347278092185365847029375928045099399261458063000944127619376786040751746758507118229668780179766480551092003953011900052028713563275259911168935066882802303528380359586442748259443968255193235751463388095268041372060015316315527726205193511766990673095296906801462832294287854328491887707354451247325832833054089870069218116819775302120678275401886616323439467104500885796705559370089393966033975967053639361894696799746885740623441446181275256418850384199731563455150147552719708740238837590242205221498343401255822068405751469176323165635544823897320503364394407542382070139265042904088206275041252353205770709918472323655541278489785347704558104746325538566919987581798086530687674631740939623190434759403154240680045414558581436768757492634333149936529045856789582111903434889067541955687487361844769289569623592007630260941271140772956821441139244635641936108136712360932964934815694737135780365507945761570460451677316415810516873074034723929496630098290987200039794346215458094772421769612596785719654053772280940008976883879695932677722060482754436555216443695033279916911915669616506528789156112787063342913847550985374541923301591426086074660973197366729678073466122039288979720446991422215356819205902484418396354114652544078353262387555714983684449442918155818960801225116888266398417292116669928272749280894309322612436259540140920439023515063029455321505285581131607549243427409318441616485826964780583073648708989886597256078446704885748806506386524258626498304509012795375309389104647671469612845272360306435479691810165031856538214153570247618293581204781730013303070210453294441647838248161487284684272145761618508537840427041470789883203854672659271138072445577237038014246470203863051009782352303518264720340142510035233129469254084121176955815353327947722721084274360062154993965375238445052374009027479823208993881041081233051884744490895846976226714434893196683873523126183818467468511133500697851675733486657060395399155098160082817975975837902958946133957385802232709777333315977476352914929897051432606600130464689125746024273935976749176030310551019091126673444355197910597627970398723542825004893107796539260345236761321883981510825437425633602767307631283647718993899667990203002050106929787512155368579229415931600555629500835217056943238576287170752403975858324485283187390730834951785900025095434893388255905515867581915973239535875829848730438606061676609055646754051341327594069884185787208583069085867761182149078396542176477527327715000574453402989856601364995863739976036722801084872202369673195359251340532226039614533022466549457749029284666351753163698441469829979461163446542728319545724972662045561401078549405030375679548927356079106990034957258437189572635246464276398568654228178964550048777655444281491076751567917077342438390795874038987456071576110931814031937504882492743731987128297561207888919480962917643733182660615815140665564353124589851566853042304247085304043649442490877676064380533965111975340145881104804043399618822865047992341719274624005026456800770470483618618334161183490136249079682437477340108745281063842451842844915205018610352823384012569836832058908181075334656626908342884798106529921410085352057163472458590438012249833248444122636541807646854913392341557882934087821397192336276838924938231544164825346342919627688572167538163253538251610845629374951538789572243372555139534512101959912123408996955916085949107759957534938811543057122152877147944008671589363110022980386259344176674179442198662424832923467303065779719812462095739998905730085764943909862814705236624754074940236624388923060489769867784005211058711266577818743718758106724705090251525385619044524723135823023873229002511974992617112057077213711925590472929407505878005838320036269672851836305353350987701340943929526301641699484015681446165786731982877340164290574250382064606142031059457968694780357518523934003845720274645502720761162555444087617784333708064803018973762267109215202746362775712058850025841611205359447915596014272422667857787574056266413901774425069328921562119517546241323311737014766289999860290447636173850181827194067608748725778071111239023299626506116985274341945192495530898576396815471095031714437943994769127478122127022595777010877902339809001606374194931182789675316109076664360642259760293355748462695781221647242104320802171458808924171285133301840031729716415052449962658382300671606348525764851713659506140984015329957751360985361406955619401722722459462213221601765394723160889729679778025238741663010744833976012543426947917286959603289448141570199446912385391772791338064787543222131342609212735439918868118425850613942457653774409488046215776433298690458001767424856643446781926528691536128604752514924749059787862517349116057030747988517174589228678605958542734325357564743632143313160708021109894457937184542920901392198342966002053314031410505153144830500980400713003130778424090832454773838433517318932294380780156891670406386810894291932851363748922452434809723728961980521362314068352388057114600912752945407011860345088324229226774402519183984527084482585097819424188867568293089153518279092174139181358513948650858521092189130036872595243129865730839003413281426166925091729397453250856825902724709846606139800971286053937356569260045158520929931976928271851777828807877800011829745518502258943446734177491781681848573613500843144396211794909742934041703604326390443250729985906463582715823532824497928802605968239799367878935811310198501773089152348037967563786928240307823279389891158091861321382040063788073448737598413031036818180738430055323495428394551173540295295645582222365476761087637173816814488378558099142191825168531469249486131390876037776702667727213619312816168970160883022507198747574892353236235490853741809152126422604410610577009096247730163106127446400979670286132049291093707260452318267009317859007914749813328171966564530236681255804858834947610065463081425306426605174124348472791935785759611417594231389514529731051219755664126076088342330091224960322990884207691048896409177594499103427904762471944825480320004979272789885612188065109159708018589891699178098880758314271714316468324074650479690214885145938116312647188301809561260218144568580193844571483065458752291882846353196716477090239989611738291787204714401497985689930404632587843828638644242045699589868757242511880911298143520333691353599134257580614990214321682792497157916009304503239669623968057674329510903264604619324880567559412285049703514727765870032681427676689053194323569479566332018844740485454980762040138238514118935722828599710944938874031199082931450396659774073585846579915599852270747298545375100267360218696977383441301727694865116076953492729194317387720330631960133861863932070691289528487391761962374113473185984105303179698467506871870910189694498357581282165670080985380151581838863352805803803996965838696592242726123371757314607214981578195900413952630462854395910946318710907790887459702118339351069122969564225344168830201508399893612934041726351695056139499053903429568383803569425484819946154618680041432923833525798023516790145963311318556430088497315478394689324988339562359189434499256950248042986508222987371438687756226639485203260716772196716182021900327271961922418554260444333252280343283870901964828646964337516745203857965173961072955182203213309815307759737280991097680986908337482722294307131611997459016282703819966590960596066340300816824586043288693508612258147345356104513964940215518631075383179588761517284731701195900773245288636967949957190007358455467056600022272203990814475998439658193480482287903277543937608367762679027042750188794279810190421888041327770647379011030115484030292124079631535562388715128650898492876083381393760404602681266713072419880466054782524366897225789335342474655110719915049523666365396249534430992990643165593271965860625882453684916944993295595005331130435645530232342951677103525319382200464186520569261900618336166309338784684021118013684132072649779162947848899902698273036209474750052400647480854934565702979603065943318132085610180559597376653973103511092918144545733556859346299184814245001422921460961907937279704454028647525067889035832609837503437135355713100455677663938170744705898565334439766115637297750198270521540958026756660359083598643660733320280667131230269125318785199423247904460377430432244081523326888287544735595762331180274746948573703688863142947793154537276799961796195331212690586941836571526497342198828721285438597449509749068792845052023530715291050733762081395687193788272290167027687901678418443714167531157784020800671334806417475412494186666991932716823850643929896814247399529598854326078284355384134467238386152527162564176808607847969301566932045599920805469118597724790475635554862605349881133023491849785565290409867408977458460982049004092140200084267968171706431528969161785486620770954489191644046743364070915138848728600424961139049747713160055930902202770848398818663687089454914487109559228158685311845737176575885826689430737619154146400369639453180904485577106492948239668466522192058207483824772588008495558286180933838950067390402042936963424292869939238406247312018648710881382300486203876169027778277175092810755039992989476735304246787852852262501248653322671576140948937112480092243122726710221209821999311903548158415698783075150269306569002919660797124344897199094666306205198550715495294951598934468056464768574804298186071622306153369333550518582268799019563689618185948077743089660529038590734732578876157497127190300936431700143937158503904166948992740193958912894921612021183883894144637398154228781339836452934938559222813965848831289552682878978032357634352860500325974489309322306634555771808138049005983019965047681469201891601035973229246364916183809443080445562476965567177606226167383027882502783290290460483958876789131039404059472299325294223862134649736897228534158625226258345798126501140045703465919429365074119892290827288269305911810191848125173227996496280140488117488994258556981137474834031458340297329706216060756560476547123307169165834303655482975891263331823683422559822791788169455278598169551548686810168266231585304178177323599396449545480236225892638649806873212525335599415429152008327291540176575040000481441498934676089990466918809021282103940041451719782120674378850828592715841114883337325412871452365176631086658984868792305197625342501983620886410795494713647542347793023806324011189000850304287622370450980732870831337898683565590715787696460215584948394364746212158116333393195380326460686148094988183740252574317568143114391843935716051345500093902819906866665413106018740102420048498405267494855142071678083094854958168014835067015271028563066558971778391214663451705832184410314747876846481891214283077222820747716681155387907478686127940354713378220070670085730470888648896454553444222313014823116259057126884723622376223895336056749673777254291249167778117330009440554168716231548379825978330603811563894040330027554770842179238492475052293638910096878074889787628150222911371285732248377347538110255238679747275637656286680107129383451024226411552945126097762764584334590717860349551008943715194700457833791177321736148794051736815808217972963784714108384494289875608408061040450008857313546013832244881597562433428968339124856371931583034336812068283847620214980393877527152782196419771216442687879054233073467439828709097850691187903984680521826783181202481168387566489573908179172304630317917464010707844156070238083334124163991263242713569880049517622198489131551594108198655552591880250870088538406141212523559015019446767451551247405936088494423863601001389546769730250705674252317775087359060779743592002113807555876670838691815874954583023623062003932228264474701874920662196958520183680469097760228761738494199908830020154856763408014916031598371055401781179696237955867230317470677166530334818235576216893920177347704122688387985796680230538195897271747097037900392577127434404041825515317028266542526433780285902225191917564238866715540742482091907706213669766780497800150847091977737752048986948934742457927838975549383781679711366208463951706879208306909163165908520641346956503700603136155727839017986890250359110544728663273434173936777489301940163232813528005364510956146029015469481212166241053352204506038622113114651505142818178519088155590351169937842283175797521313933362299985587270058370971016360698789424503015986156297647617057601901422754777954910961930853507284574982956946979943735517392971315949523274762962878208291534230809552597346953659200447505639930994865105667101049493262516797644201402390205658603867583836316649801722268532359451137394353691816001935356101129664171521713499568955465277944385031356272463956214981180417558771472722567853589184834244636811727803173671407887194674894698630163713283170386909399828302771722115548626633632156767246132499969584087925672043119424894341347228464911451616498114075085690186045218803228338259316301603883218897715849858624764461838731133263389593532884242567142996584908974495219744081821576286539838038477932746533772011793100455470485929820212964415018912523670888584244842460871522813633969734115998173873352186219702020448985458417928191142543238592696525622872391700853373753681302426670288870869458612558266563140959598447390139431516746391809109674005000817244618504200528516917588758093166672045569102502627575828034064933532512109288919694747171901122962780776001685258911982213683687276566174604130405020802777188912483429564653165799662689495899662109291393330244608101015398124548671037656441562193829744315897325745488094953606472506082217446957971314933411416069070346091761327795764458538122161729553976063277318633953182137710529479699589363411104403670132775962102686987014138865149066983805327194650323255609243325748897895831452635348161011838490323730289280339535501962801292293438197051912729484943838780723649437167831178731338708037997200456968668606305633772384643890739440075628730344861809305340724345003958060104141129925929636534422174884384829973781660107217261751579693160983762631857009039397023245563536086851168388705559884709173720697842553740075226201849082964211258566522302797170493020106326025028876968346694443219149280370918363965203281352162426140009835343807158537907043123774908543714278923775431978795050242344934989449141929957478139043271475216125215497305763582097510104976822437025419785481073801632509880510594315900369755184686671105545092214970251223135751148882214581919791836695002572209888565072491428453498642077059459214633679116724567244297532761161743732199192151935521568981811087044444377075106970741227699090596508984320827389445117184736298293825698636930243540786780397656448810922555093789018793980044145604557714677667314924720441443213911937745768506581587740536441916560052721997605798507446523199460222579497221908319082044876929575825026137066287537374923935484122973707563819839809888378502706134874094062786915922726236228796040847803852863636559419418722569688600785811849942022528440806034851235709740023368963569347418730505861807760776095544130696146318816461319883221290496996077861125482472450554862187097589574070564198007082646320143575154180199202120440963771244723877615420490923359569568885541479156380953871914157812385068262777144959017766293760048752040719758053433243623239303784582815976201020251688628290716595238607389505503948741926065910903763400564622314132488630949904695235483171184993936061722957382991631811313820325639772840976253991606837427979668989715396624953651607442315958065103054655124700976951971570722024290594084868882768415342699928493435771641011937800421334651183747458335610532376563313524412262693124623783405114350806318027582703165885225259497199671440955723867476516953474815228016503941975113333707907559120663617632983915011254003238924990433909578515858074663267622499092534006672932061094460873204222176719537065154767712250812097950995716017280115845091798414063832387040799747513410666881628882098999626376990480205382004544151385582530632441523782176774492153526732991973356576256141246488315001753522351423201730880066074690005892833925249116824908684263655326831150614900524990757984200181108344312934197774655135012008957015201879630164749503792647173177784983289579621508639562093389772342631900651752714240136547369143396349099079631404635277836972002155871041343716286749136475775415674458063291445354915721352436384484221835512798428511018788907052262324339410852170201262295498740409982443037744719024454041912903713227374603347151926002896352925799575047715627526622575859063951688556501480140894708682391092895829944198686777019708438064059903584316310393813510778181518165400947597943055981931298438865329075151748675379016420017741012737113759302216350036114192283660742829116176565780379082767721487269584524102468130722116911385840229110335424812612848321548500589537634499913645792645210831360184296541878359659179052337261696533219499263783802204542154956848112198140739016326847166623834637413310784404085338952882805927509844702675308989603808081596543193978107075303944883119903097016010924127177879445191076295992894094927619820616576343992737950728656783649789749065597727742358515976709517037939389227074138663526331206856349138514742148804427495537110854938347255849378690431855735202938853486311997092873585956992630132567139460340696304689525106343392144415875854908007650911845744023741347728290676194902909157305529362082558981471550110831698687289242350710232638775791152477853631844747846565849255612906132098870965685510734795943799406925690041659938479207786771300483686318613713969201380421700729166016861831380674163334723709161083768648018804208308798289353855023872449684053772626067963343388589969558048141767275257087529279869459785511108206797730440150278393507355324653915151537635076794471547480055563322629011103175174931393323825554215031877756445744127968349882373258611289073347482878189904168923778718381134584575049235365912726129648417036814285332327520636969678194818344734923246134974147607464642501858199068028074799426736360123578986915180978525490099397715971873999872706275844597925796453683872934234869863483004306551057948738458095952331295056225346591206327027580106084528945046118585261414700162850515907027974177167914946020161654361975920324125341455204254084899151677233475329208410129175927072508433197551414013858895473273467920643186411448460317760212922604859364145864222145167245272933953258076748898566644271509828642831164453075871839651407095264288923626385107056745900748281682241724909730529109663634717674424186447775515596199399445642135777012856418935393246836354178557639789157354330808500547170866880849278441549033473487805160003884025204884099679897533987139392533028252268365803976758837582439174613448399474855754883995029166031123241234837706818304056372483923159400990439445437055682157852876996346647693799659768299060805111573752684769613291552580027580797001499571105917877555319943411383544841780416188315435015752844400467735529310264240278472171141252236485881952628530379535807003173295321602517389507467793076801774580688110515074454083404526542368614255711697415399283201517627413893178911056550387132945794368642885962076951378880724539196069353439367359555122905153109170800775291285724920741982751014276106286564200052461567058396590062641474536667292356435066381559859455825334318081658110215986617408947214311305119139470783490226484123041179140756560286953428798665074673948879130411072944601017830587065131125594201762626509954435574346947602227819357940449940210640630847069525504717565831230480005288169284087153831121617112813884194762321275468658125902936345307504919702765873364764515580553773601972433596359621007001772189735837612135642794434311164979825372684262982970844873611466075854065621621949253883819533578326929314358434628109154921464937648109610927602680007844222540702026171491261329619356809019380492887901364298765843944639833339997149907931318591138648025698695664919294624795136652346570685381073460015344507365440609307650786112051021837429582036660892623503203948800346665391696164008685999922463686492466561505287677891275210534615530758279354627614452059603845427860845647947342479687913310007601605308607256865369758562275308787627750595270820743826598726249316267283023643189726783608579780322462176806123514115075668394577548354028253528631343630038189124292713153309142066674387632005938694323384788185773089488195563974062972802423368263937400138718603258967168260297871702393941776776701440807822585189177825848190859535491063235358895130442454718277095196750298834905726793354162511178895157340117505391437177570400894009198803257177583416203688853461582079427063178613407069317983047193545785362442115837475336984282529513180447786177001257719471228628535883384787462783400655768230702028815565094285413297362097986974057253864190941669627325935859623465725953777940601438061395743865942945156891451233157575123553122934603267609725734879516216613867295440057620616422868365279374921279097111923524277937284765396158740032147465122037390935296688036938785334546277959604063118103355572849653281237387598380341744819673839259850094675974191748099555877105561856859554031679457848675043301246510839245838127787415793735620874203887544895386027163989563508751074762200912123529253734596197774116214880909047467245046828115008650228594828572317306957358259578565542963019434247356645984245095432340210947663054115748840334682657225043695183422509567114520646865320847820502016190252388773660324223722918981320058389066844150635190739670518075218580033131845908650550374404281477532860594724554601161955441989090178844738624133902873092745930473215541553843134431488053754437715340065820922235217925053357265119269884444190860433933158772046507565410796091463959883191401783865446274753693182420556576683635926277870615911923764882416818114831240404506582270231237113577273342658099477934991549112819234755037135578535307760845388563611608609580209114170136120429146473269135893818229144528767715698573369165140266970440966552478976057263310448625826852802082146128673192348876560669191526481375784428330120274775561206245054948943879992582937526752997327194287394295821483664250076455269976365150401641846458946608485900788735598936915587843567488607877455313648317162211757491748387464445868317844340931520379978916457557226024753949387599918399211636050434352672465535254517385561753089163295529218832688553023128354247145744262860653148855912099610230707211305212869023425798102383090443875027502476045951041176205357791471728571515121590612873044056677268085887129045025512158804030373488311614470928169357328573044426425223995936729727998479771375917561719687247674971750300928522307530783839841089615594096607874066906864770538017545384274095384565494772557495074874854600503881482722453355539241549888018045746766132354217105218180123346333986666212238132712132658831685032428351605157626529464783737916222290629506937872527577158299000929398029852403162847253549526228783787327688989842760447520529720557559334995232843647267565792648665023404290668858134686512309483060688398721216666127105938365962612317594092216467693510118275681216245844289819825103408804772090210392732204202604174351058050864397686121269259730282553392196949892167216041206733381369811925953012812072920053055851171728402973246749847560298531389655685904279906226549787816592551976443589890980734073726310427155759542153303342090648595409533437350072186669730929705629608331298311954446538243356427532996570324094638543914484811055372871744743822497241715059561776364768667068761929533463217309818171178005490353517603867920267683703635476899576557934092052367770082301165204614460652092074876671157380851969873215850949904824956843550428190735678627876772326309328365873482709456580895004352191173483294304061153646637346906432324409580524117811226343965703736968919131542939335244089406357317034919412892636747784189889049757884754952440742337560236956840458175457404748889655974822478876254830406028443372495826626815035092579578707742835230918851848247194930652340863849260686329627599829086754085870650147979894992273670425088561455479606722941942194077453340336809276487746920341004738613935562526740696059384897501328648833599625411810166717142506568824166615633017431075016773980642160219261942115786069443706562884744609118810624980101195635512843261016194935823366047850020209190440099063913744961915447239077456378522367748554501641864035835275999919504086125715934833120103581697416164453400393150667440816931135854487037354918102204765522713845222679311213448800955707426508097489835236705224611439992138675222869774135496597958516665186940767803892311992910115232034794466356730166404473399279011256478621679766399131418152303782900410481990304349702098372520775211628001342354935373026294799424088073952183228355944787466906895853906668361087635097659634379098607138380501353800456491108479814986209743995040843866491060386014529642429655991223958769687994750951945866313364432995210858228320920256137814202977116358009652974084604522657708779775318856023448903419668322227317011375198221255780395184041810436934084067076972499601904263157368324138182575071679268824077003366642985487792077786616509528650371729016795695255359772155328132507899189248073200676012326544695631408301017261355997270215782812089884775377204779852206590487300077257748697256803898054115712361255428944694168892137939583531887068241245590233674654830166864676074828411819216434670226344688767090382339270594067655283766431991963731951621449684272499045580004263778929397682201623523671192839934689418736504264168704803943745770749070730813474058757376235834804975061063058090173166682793374762645631302536336836883215235294560406093398325474729791884280165539789861606933711853739499178430388737740939462222034363237781892704784118634604855075567062004075795303889249099837578887942426224392797713411445713770280694261968327229204831728069665491889623467355494169485544366942698076384030048427240528344242316555612116572187562064813145414513928063451268049707277342333982651713073481840596432155387237398145240397431082356166213314452597234257598214535196514282917500640775062115668391917169730265939071505521227442721935982339636754033589008389623961886210775030292834948827245830353899733059520315542907346886150965916503649510013212026019251567713107060138530349834531926838860464412461635120722280486313798488385168634453867151578150405236305480644346508144480253947379133420614730960471205101713274975198355838414318418486519450380745771780428477250428265216143561515946798734144799192486306940702901165867964537574331985698408856675362982153110882403610057340478771790182731641310397196186471137776940242835294225159523750231942345513042525083347594885541566066259142385548464121805183400263739037916712320245961901831695590139420296624326486208952232055818851810303554874314164803208221274176212124088531097826149490076829249876113379272625060630743900459833146806354613780602637769973660104198572863072730016384292687230372146613548077805911032978108854181379006013333187792180552541849768676986976349118829185122620950568034200711560473107739519719063785985905833745137880702838810384718520302635520427958801699802856467305343384489350934151604086409500863513949046153797418253122710619909353433718554511192984734638126219050658442941899135334206416284212532402559666657240913688029483825192026858210286516607422196887084355714776448036531792014656077848510526236893549031581254492902413281181529817842706015865694821503575080911541160628177390289941077602860508588805202303369037723032119976258330621867886272553911003439344657216851758043253129875098398267819007881962620171129143742173487458573766890142337733630061014569945349342579282570562746752743188031202224526064948940695524206056127163294007077709556886317578496470799234389610411427352000920729481501371356516022868002710887758363157740149000043424918762441645448102576156367222342632605501437959708200728995869027345989026230941896480414706174093204081029389139855778297130956908000473688471205731103580703849139197300644353152308348624563810732341900312626332645092201402947062082470658089548929249673542186282768138465665147862892613585809028998979109334479870624372952792720326332991351469675665279523677243517275019910038208534303250400143146982511655349509089670534797644624456993081949139710559117008736897490611062596016417086041750033393900115654594938524138952990028851085109895025458387285701873363704712992482466332170016500908447716411768064317696913307575337431421916077765453529703016648843087347343321836549442589248294397173922070909349498853152036425263772349370062139615772937087371143539137097724945039421278324851181029978560300505700752657824464399297768368006792925828485755310596131552028039214953157787885237658762513771386536213983229505932973164763648427737264554284990238709535439144645596879187341296309538353491148779253644061426384969010143926229532066656330622155244264874591977760397195767409353066524033342413940443617005415924599002859838701513956198198314075514801918349925362151173519605019599819582246011030760557939160821319705729899685660573751539517206387030629404774462175427789315846874692317996334970520133445450911632304866071846622088365752677052757881290122386701826344293708328871285861953791216708264475678651544865765702501363755905185470422928752590882189913794294191591914340686672630890079162566254930140309928382434628610829917429558264126956669036766604095441479736480565679040184125252754884575029492108952090014304059274864485364511811277403418300395861026718119577442498213754906480795816819802449779255291005084416821744204286312177573361575890910616289476529729235594600721064067704594747492245486669020189712273409011016348772410058786634268033526343933106264401862417388823389602980730091219053154837246915666712437447726233967652362730111206152309529002328746183756019778406400346336103925004006302419698706093075755599261713191807638083606939912802680235989907920846309938325449289016332395561149203595336231495214562926218209129866759732108118871678722868943313255236716511262461375033879081249729078436634126287764226207406788627703580628564001654240279903048509464226882794444383155828534159235696199318220089540532543418958421375038630967407877704116563480444120359521449654288831821828726432711084540360387515877019389621436660796993236158230202818804300315625385845578308773522974632394121817416501954297236120672276701141955763972759038399158059088944613860632332333410777381304375051785450692441684014751318883225702532254126945272975046852979073097750279868678342112101465712648022664245316673734622461830047891468764808921950575128988432068449515624097598321936027422537545742922582986002358589267114458635570889972763126908330161065891612285489593481554716788481721339359854788902389791828611455720874125571669750522363700028556300221592775965495034133349878287788017682569981737072891291068564476304132282619661500254209313883955474307222312445236015524785980479489352477814987609575992511496612315451901271457281950499413129266666196994018954256457838607065159718825897298579646706766869959193707061312468074008816606979226175388052559753131339758253661970823992505046410893243936557910671092843143444725408072996627883309793499858270135035980232643669228834495372745577099704459640495726779647658047584026986353789253579098335676237307924741970767609797766767036393829789188007572180298923290149047714561445520246609012986211297081658033130349728677216828361460491268461482916452254278794975021307997515866848263612784667735101160595755427789588526151740132969263080878189987589041149534334610443615769915253227957321693693859665985404602941813749864454709766679528365170286277819503744452188980786428936596386241172683046565822594007123799603719458903441140703475048259448990933091693985460269874457777174220304862969449161892957501311099633643777741738334997123724639000888336146289123192438419865515715513730722540450920470313725504732373133573314290005089990993987323749543718995102401076166479883694056565339259270077450990058730612102399568743580242470259305965779017932568121985503754022658308794486630025757987822310667931437445967921383858442598458673200826646330021650402068046453888559484885969271315059543686065942672994695323674912524169409426197485271876302023228059548149985757222905217872876574992021411892514991312886159402431798232517790203700273943688830352768052105647111955595874827127078870427888326855085616086165361965489238182912970302322556503881179744105002429026421792775077329515928157854196450528173269676113827635537076368584692105114857097593064155159707345515954004354255116698533966370170292988319850650805968220077156769525189961101489699395887271955160822414464930787165375369192253127734581188766951415535702554373646232542761212910634232731769277664502860337981742843776820273462248274515171286344969615594520173671444130915424100237061447663413925316159888533678557285391860828240105072569988407555000220315350523582504657548532087860264917172728337157636195443436144835210364632817169444037957942627416125203615189177507507696514539449301322318044917193201442806273245434296057660168917997888119099809413444890947673877336992066442807669277293835144270889785694792916352339257015939315847914631488260363722188034737897982053082314301307224760253791817934100749080177641501976779239364151444160113737418719344179030938710241494988060180861202139421438929263027473224130039341583205318838497111170215509643196423813738259969672437915305961138484785162687987429604029887539192729270162961112096571694904457362028753608479158006392508800447342810442113596796821879017810804936973014525109650435030554630401478017852349237682748115425140298565345211911372453731026635859332063465430079699223648316269290035599803281591055677009657379958024255142846853160228897311394098859068513138599425918482292765542014669592038728171073319038873741769549748199041014511192268940498285741118907714606708938116136370132429550550842034777518678292759731329395033864079035895583233631575915646264003370468160568336190459001573762540240723387453109448380569789691044051733035200251830896892120918850815458565045417846290740953658923365665684965376030201454621996767262103458368724826152567860435484740395125919920363622168844804923257655167150890976914718803766925060257725097174513092164490699095662277822242748743522142225722312607670357747049869216973288112506634449767064140468866233567859733441154338198852297587871383497029827877724139944304924484019777585260827436627897506826799227306240202727649931398582548646558468709129239840132678576702282105640264728498512998649144553495252395561459697031245632522672797499096335417837268902519203663256181781037469855008416106187780555889762250551828351082506845765038151719031755406380625904981453616243922763450631174729518493189086581124163266042297522454919849222185613158511435795748054720568251673226725528335542076827561457586364223183248529290048863479460076523048344334816604351142577084351858851101012646870962619211133901414491378077427128212563263420334861670802525216208930519424037017666473384700000409316307264736999812168755130994925920357190477369579499306833616793875308461833608714071065919425059968545124071303306438875174546078401785902947104038740576175386015802746709072290248111073015972693712676147847268965292341972061831729138503867870887180543823187187620600430611740209502619724455792172732395889122715010409538750139454992115588401174713682461413142739355955524743620420563744030275836749268933371611580750403343471031090143235755545617725317444305530917006896405868835545048302911495155502329010597142905983983570056278215008691053642324210390191841999458719772187844341088708764154671460129549720004851948716650196320635580358064968655145486942085967781114954681336993838998921537958268741517115940425046789690532773716475091885577880472968924943572572705700928777639975500616895147492983310544898921722994886862963483866917335780705472766244129372340222711871953451537340703125649479418842780473915898148302585245007272508738791407695079807402015717534980895380327020755069530654132463934899627116039824170443954801361926217280493917743501916918158345326954934979410062814816085239786642973756628598389700508719943610068987806657762157426885586691471056531797571704652777639433081910546761503025183669096943913111263736720397108682342437584786258882570573514167405931666180285880746765349561054970256294752120428421374806646146390645495443364173436494724710841251380343099288227187997261619527636867491609953589034348307486235165953466351364035203566077368595292263522149344921679612918327809794170705970428551598724115500926879077344730456118160897370872295955651087128593793517783731382597705538139750674503309187021189483268188796952935355744630912050796229291806591629461281514236777332643212960769848922206635808217928612333350498463808130763432930953589277042902797855284576402184800153903171224388337895777887452764706357530197739236159014664738945514706178827402754258081038808679464556814186849631705130096439657856119173358674332923530918555896607925599054692380008049018796361843286871862624915508391696983626169107549528709991619649948453772487419233300828802891584250951758919959069424849938364613147981750427374086641310192640104272332376767733959928500600866757183202806865053103408978233537345071538284143382201377481593779685620885575348799759054700416837505571678532246408961690579616343759248076582745549905843716488568356168884197652454024125684600537058103244742403191666431082024978676565862754047231485149607702873403486873633647333916348870803018315400346628822812432600577581037934623086425576107660971412544959684236302565813408101888843978735350181462442498571426133255465426408219384185095167809213194134701857568032311508061191769540479007478566665094460286629096699183507032323364561380825216496173852030637890761839740477785104823238237765472136778917563276662794173745079060322786636973531111839256722458174679650331625459144316203249215360214538666401183998782937219566186365716890016492178195203152675040274815678436859632832649897165290989621131522321421171672570196378415977715140651654020861466892936931719529525066069778642338725326081614040767216885493184115144641788706273948620711171286186306460238812514950031639214827595757944923769703849189077781579025815537353188379795911406452192398973106196837166956349721015435945529025246819844872289264712371195304543550771048635221899999213042641685023199875468344409495482609631847697967374940816591166284873610762771318023866643206695987596737273430649658078417163258598108275355564741696771146931464644976463810271530583834687300042844070843045508551766005047039328519829101612185535877717704783562893768681299240472627661892427828774499703391148461425768440652149045834280448628844828661926932773602501839819960960609817631249415596892197326440022182951459687750663296262296119765905459176143922278512789275591146882095244383398887715738123543246533735344446470761073628563119802502365305121675029093917723677035653070093504027847809747053350026111831152119826404628600919273924673713007311340914918767729011133882763337810864642112138908658580041296587213943798514729131117695719750150781459994852147019937947780034883489893001533420718035427353273691034463789872832200130330205288018583663767279871590920765421606606472200934095228751803578656988636988722835442290971790686012580726433032960516098460760452746134467118876637573127759886663803363915581963557702166378247136158140093521962787975697426305006876181128165046407752464308619771336350655707905270573168456011935339761915999564751764321208148129643930139704435169332024133630689895003311757176319076143117791249464069969917414446030655143276448039199408127537274643839157158155094165753944903660225520172364936627835675293732005828578861831983590532802539702202007997379102770949153459138840626353513651957642490358382976490482919009097562480831379557128279305850688985024757513354905311401576952647305507167165557264992291972106107881928068984047378115194880445254840485699359456553665098151311150261741970350306679691363924820056398755861641689244469482512095595678579657093055319139759551362487737217723898708246019611754673019668888466005808335534607122011673199684608869199441695257230183789138841834292164231510565222921235756085816698764646371398544539106975395509682424751940625413779697580694134201310935574850502702156078064860621816426442628040233921921756770409401596024967777209372444678266620115299824955567667150370953841739600230469584117015924854182842602346442677354211077590288561116280786264608447801967693197016575590950768797828927686379229469565610943100403459157767468838242850297208343467251593597213279567334106955708708430776294854638978413167105321815635038278935291535304591978466338373910638823970243295106662789406431313849239107979501661677306534598409783752064451133612273132676958937022809098330129490767171305807010359401409863599294128761062099639337121692563679409707853790216443120019864000846117842527051232671356284493619289069292834571374606709253375774257805892382079026342788962297567197432443066220138461634638339148763635167102386607858994969736480287193172658197121366273729973286164936141916864022449069113444077213708439757985191743299975653681456496155200100676120002832018623535260426619721199342960205071518108384548871833050301642200404190032818391852937359711330761229958342001465441300790508158612820428618093583788417971782074106466081882832383865239679601990138844054680401683431892953915492247638771190694475926556801667095734349913978234607791323935964906940629767934265416759912672412007096365315219815972261302322003923658279058146530419367534473376374677467354639835766423589031374179655520546452824567094597976762000636404606414353093474127598867586593851326003126011997035121882528266053012138299392579120254478153083051435215755867077412589194276211374748484842569192148337304608005441565603814287164415103564800709706731892351292153136349717134095840494521416832102377618539044072689045798910168028721117363238594617160968880536863171780530739502295036470682578439942912414958874433466264169364515114409283864514844228308329344421781178984274909138695386186045962562220640731664496452526218741241087817532335185254680211969167202035894696396394780248936044057807181218074145489464580423014923111473592976194813898936201435698734629985474864421224693394388953813779843453493337716633498095225382112868628141469198826298309057994465882594508471742258140413631821674111435422366158731648052277247372905062809335777164151664567968120614780275345718532741021006642242002347739419857509908070481542375094167145934091466473518526050472454432144430272229797185524568517120149135266128893057902763492419186896046172333343120294954722105025290564771175026110658224674005022184649214266395587470678583241165081520845733533556916156139920559032316053608080258065672791746228771217727133774849673110448431300230315062240908559588786047259297460485526681044157484477607761347966652868708753963221525504374215223307292035562003779471808590151240604134848931305989238875383019128797602234795323850098730810350484644951826156628575531849023126321823980875245404507326932543430735656255363150281169408058258145554240962724792462950324018271965326735986111873102635497125152973995888153642057018645751590843953346977563194295725248736353915236974623358033521409449708899330757108519352426587444908086229729732170236294718443438013752923957822424760512366175395644414375671972040072120404147304372734548051707538642562493061634788065702093076735774952045486313860849820300920998421404986140690084703490454768537535734607575767634527790546363246763081946461705813125058344032798444833397016483123553601653953149760680103490269510397950250146425485173827837066227851076265984079621147690089163213509665450471179085514399045993822531040689651881488339105443370356127846823344100612738671829265341338247718318234901152944482516798449721514304770432958018507344256772156905865214830301665005259109340600493563747088302392255427055283538439071077524392736488089710710140258039067640560892449845308882199732037165038066462726871113958812286706387448386071892398106286776223560217480795054788149157244574874930891229477645428001512083629155713061734900831463375437967916238163761413314700734184150166654243981781523355073579148336353959413239610361889169762937794233561779095187361243858549674941992778380768832019343465538023627994278199346174711907959954050926471253552295323606187448811639054725089395098247033073828894463318362995066630466436540109286703191648916810937881965140201015026660249122539355750317017440762517164105602477089132547747524528368505683867805612270074437916307620551987979611114854727023316590265504819191133480886627089332217311094600566326394393151682219922690250247324301201126942167031333933191973093696737983301552937065675425641961367190628544734283569100335504328613556091697975523708534448983094903890796335446788349014472813924492854335858791643961542770180238050531531670985001449232706326266269844683212583155732764411477421969891801130147691679889414303183611247537909394901713404209084169314238108242476217930607420349282166322957212626741437485766779312109018704046022051096615840250640684566077641776602959611640880814675729864036797449359538615730612621269434856312119669083092014939877740342012816146987620533056543028298897598340006984538852714330344702230269702544203350737186729205947149741102709002099671650383971262615160482173869502647157434709564179783579330477409190090218806436058917992633406356953924964165907896137635010060190748514904627933148125682268656162999555503173820957732994230062235242325847489487735027107568744198888166655953300151073874151936059567178247344448650997778839654222088508612234105860826517444528399631322254250147827991956179999915886802924699205607904367089644821333248637677710234346630978118758040020499519800213516195380077406506465478265657539010918137105799670391795703980111787743429131432347484394507934406924945974831552288111047995702653897777681315567029126824774537505546812866243205480564416467617477642539866032438475180607828876689608987657061537451329068062696703432368955869548840380488312934473944510258594303890899010121484294647108986984491424275894178715760367308986187298924349157434876095431287957862894853495564303998523839783728052071673858447885290144692063369561495363011488693136054367829617605336801294716115756064002297642430782846193735787342442593506168903433733114024445290428731543385065348947461302819756770670961207087681699863930848136061699487794253151419009390574224521929868461164911961251698554873246581727764839681092272300762825462869174325896700062454055654584285785958460338553640072538818006914527820072779311924466255103717759349614331365218551391015371531541048492488366028248170005380686591704826048800941064205910135498848424293959685295394012806875906408448626130797772223590991716022053041636207840489865427167943625174797389342770123003464297045239075085123403801156193616146660793249259188757389472632508792069276048961576717318011080263369873428809497189306146978406602665319461071923582779766131712041416384752374068113757868126702284625653105555002733745164241281119751271259177551509075439193253197945915462648787204229107063465655883219348385916678969858379152433186403857394305597428147447164026458278014435937758499051488660141150837847771401996069664861282916010146881112558849331741640895124826259428052396768767559423970375498845943613169246671401019572211232133946702986514413584502933364630334250900610232280219889337424683061498373542626067315815342684991010879661340292119658417909934507953238584187528847258795701943077162525162504072401135634296965783995674209557819317944974851243947113837565856143829845357627783619946217984125652398955361346378828059391514516073469639933740967139393633716383452530630692223018973035849021903076167714484354391827090823666445573178719351966840664992606676127627821862824981447651006664395065015864494128071331695676517783327865981603937354506487196115256941692681504619893120293661294529621805845260189935756494032457198962882327499954959437412970894558322391741350871619230746224242900955764205851048762875591032663925973871025292978950357166474245183129642013882877761754381784229593938816741522434556229376128940206209482318541068192595481399167521342211105026716646535046502986524046837156556055706769630205858600598034880293844585013374704533256187504535169523763398977471310622976387332757521121344120163348837539185157933130618654021231890937970478523144093771425887072186427911218029095969702599130451886516131897474175277389799214254288489669842767996449663853227284136310574744723419353505903317441178913066297479824833725942119354126103343343777474019884099754248761797511156957623744965340816247539110697303098490670557403808469839070807463200585273370174898925921629246352183970723005763962878746416007912716665631834782501629474585096936374510732606165973012648670938005931642142994002777614478073020364750273639501044335094252019731470489986933030859379621406723140326438711888961684837217919581080628869671772609736748813743301805562167997904806014472721699980421119961183107191375744107153336169526689480826107303861021498382616555647547789315131362554967721624156534920746384084012133261294348952727982016706552379210425140715433042416986857659279208069465615809382520021161167229116492211470305934581877482523807170604359339294574448617077623133008126023098341266492811497458444360924353099234563569977558774585870592094652966219389451042660644925875875485038223591226349072937476687999654601063715810146385983542665247755623929387153331927808535646311019027660058579626150602463426216887545622400313608043252862639979734965250264364173440831167211675227405642558602735759846863416447655246875370357637138599179799890242584437407865938759212575929498579313398758590839384341091761771402959904898599118667770136504736810674908358223668841997854558318602067079466473907485991704115602351866847471428086165660194015605259783440259620745334629360784366306228751806956317964145050204181046367681711310195871814689151498317416636207667069249148137670085950162288579174301548151291356624030362011663188879979317859429193053263041628377197417382918216731989531583667938860104746763376911560507914580331042036552626302320118136573260956152112725206339382368416886819869631903174914575571509460348776017787948815007897174738608453673923581106237614385134414154409115515149343536747708635061392591260892581816473899221142913559433203088389340927932641285072899334746073279422214692796496060842477543900895460157912968747305270548644394262957860106169728580992516209390146702532923714777636116798961959295419279145301449618680035864073259711314691205302685234012507752401577426082831049263488890204119137451333719547277681046480687680310523219898027928323328970370047106652195050673949045827449228244642524163681308582518395792435532419695374465890893570035406063742751630747835001554751332132836854582406896443826611219955804432431461350815880243408014044541864278695488489518006277455267832999998516587140986051415373650405728607727553987588160776926854486728313126585186100825176353304899877668255753739285473583433456771056185069095723961518195084763904854548168939837362411409860251746292638959884751962118386395976300978716606444982660693226231242769720448844224607396240098455142250886990190451828725763299974708646536990575907616774658554308633765180879449415370548982761324682708442164668951586463947541626943460670681158811803010466406535312087063617053992124451380286870746702282641086410692395747341058233178603933166150130916392031910798470682251869071326871387503172759692466243508666472873714187655196125649238602277009842495297130944788765066621984783355415675247625382358189335390345799672673341395667759696973435741075003497982428697776924775499440454215626912836428031783854147272507440890332884225488529246445540325158856806866315307734117828963821745309634742434816665543067776169429573770280357028435894686487304034784057170308127121440651612622073781946846427368272315076169073726456408653574071047552895361338705211992899026313032897421667614814798337988583156179739392094524805726652292825275954238717289504443891629608978396367145278323237552753862916727806020133464913444274377038432107114862738000426467609926798839089108571010467708802051805504747045071717697671905661524422494319423432101043869185323820623188638142507578557934370093922426826487114829927929281049063471589269639520790232404699011423517315201589925826395277442359000211902633261656007190148378070556506922479775530879997308881337281579752563753573285681240461178607972033192445379868603707298873773471068821198880143267588841093618001208582476356679568787736230362534567535578062917340220791915744629029533786754217544689955062044578757176267675027014393856234011143888373290573129514582990179463244328804244658030152207072928062796304888530772762294328589158083480629092104797179838893350027039175954493901113991660664265119868291488629218110029252852817579851762786399159249348507711074414292797749258196335749598716615179685629989077406158715398839347182075649386826431654682544288946594507100969412720293759201426142356434027352666603760847679760463248776332014729100695695636101046423269629141106527960198351679740263554294007417748328481739901955426826969854623489852460630092236047684327829459985846013339010615133082475114098820914496571842917411568969639340897900559716059169276677390472065525062081914545653548733614326344713371947269667157310079303685679540045511451723381193983213888634731144835480256478452488736261897618331286942963092184617445902877581649411627362111431666492253623074928694607657608363351119676377853596977468397084231371282517259620120302107587985303984324895178417353437163308257802095153144257193148191446175369162218236626271798175689219086660325880660132897571455741271096036751241616550693260132410537883700011282434909415467233909668353783729275515038197621968168467817948822064804171264868551642696920373379938934419354364094534812508299543332219903944954837342207766595007677877875691748430548121488903883626855113254414329090575965086844873180832984860003768332462230397960023519309296989336314717977836983588000061908280129486367021226227675739689589354420965291468448113379383645161291477555930295548215892646574700392524427222898257604819524260662712947322626166636518095498936287605678219789452974634737652733593510303715479217111226733987861854853332680209148636233329824087186791320409719831782692681053788956200478379114641370533906901300379684585542780440500057937446748904807674407782932801532072936097046826685851276495187434008313650685141812509106310260026221174811933577934395171171601257890087217976226466479914201402543462742675148751907391048408066649339664759393385765180436979257481419930875674783812674888154712944185576363159679533329024823029690300064217152183714155253972378797407994501008980943686452765959588144491862250306010368189236447449222780296700337567937064096041097028253328151374811803968271451149090312402947678140964428386314103216902383077070134116376588985956065250698844684590971714667089292496901262142522722154245861068200387785699274392566924863881697041847408631368454508312457412488290427793264997408526885431204710609513593054896537854751748651463438210911975904702036624142863927610193860897359123032427645680979789390432744203919708104201723931879572260020407188910962568812749433939605567540385266217859636136957382532947593100821387880809094925489618546079621826804216572041039443504895652556180100644212382221245701451837783716067651044641837273106080902203917679614057247127006429749961239048700418424313861262785180446071743124808906784854663136526450537450524291738232592558594188255884977982064245819612517992929969512686919339574760784185332366747750609853809411762710366743374402819841095168215334972336475902041024638570697416368279394010484807131287093866609440313129832767593433874809999394626077846788012776408731577968806705596478310983193746516590602272675911642369922313949520451365683343627137561238199298446259905955783072166185474301733957300322796698667623185409122910452996987257746012353284358318851560910756295704875508520676945056937947237412293707066726006248264652547296046951204992798160608767922090614710575792829421998598435411648707892363626854645815618785456154890232420657782056580460449176105974036094661330274125363203166858662742478882367569019342225408837094917355071711703567354348594519865415321227737520719539938864051236024768760079057757035690743522830264700591865250526035754068900656931657025478612090257891919755067800972988537560131066699159612082062894892007258204714035779255428842000511208538728062704552995426099988907681294662956826863127652958210235655784251378228308009030357838980789523780546268616217867871321362737051642442296187196782384007996751221446561565820307439776662358948034909459129184682949140488138210275418765144756927045241621132170421276924510938572541005063124140198076850826738562413680869881277059556886714994500728868454836880936371273635394690320018460893358419917676806794432729131541043785252376239767394281969819051662591059566842215110354163414463550300837492695001378613449128044187859358402674088875519414925176627891366395719865256473240524414745483556504893532091993596498782274626116504334853769812561304893109717532288703448743169850935672418884015831577718684197532393691373988359744707542072173725751029569288643292848995786884113655317388982432369700429646416028576548921775884127197413968805911461290424495238021027075861795858135429844213783531212854808190521587218505979156299204998815419538584925251312182848782094844519002807191620059242073139486718745005247839053844541035953650871600540298661562523202103348129651111376723708366408933191945376029608039474884118129182348025000629610060927878292917096026059726420418885552721270047189379070555309279041657530887830218825237625364841410557415256094815760269382325565117848535397267605439561856529791621641443424953559638170797768735387837477132696569135473473181231111143397441601435200312033009064109069319843393892246899148418034570798194918843898757468152051732511101818644673340271352466822566838015458279600334373248460401292043640180819851633252216528402130668571918534420179179178216010853334257062315824684337678942494957099832720839333003503799774093903206257746164143255654717202236658395270845176797294315473438914188618174011024804157536537398484571525447093832660296057891122591290620223297667186312393604803303104391836358550566802185752859530999409723932854251452940811449795158316884622352696283974789777142296008860482772925630137873887952535799370515619357182818374986970389220698257896911218429874774240660524774990430437178260331139376268327172526909501918721143993712001430487820268658075015809941391575588184029864863020061611452574014024152633138106617250141224649919038195481417528263238659316765009446491035309835784767837413490989692732657395753927555914119619814556762177741672669256008999075442802550441282197663889176404110520842924131326121143590735240893060636001822934089299723694970410865956701210490084123098315025926409979129182710622138829858839791613663648145969866131279486434615253452822476131370139976830701930481701483990816064686427387806406178490529693557142551596216149183848986093501394875596778998267782633116299319360646022555375094583458177270923531348047164009400418663393117238976492366834068884223332338193289155948907071331304619540518088646816722506751026256026596598101905157777090945403034160179777845645425870022282039816228511053802681051487077157146009591283352852634734506681205931048813268279638335989226503957872147600177163780620097023188632298445747123492651567324745532956637068495039661367220077773766573051455975817983888654413492572351782146621469856088823676157170304791966810350794778895237872705102537166892983046966931766882036100824511820655603051278439451424685325360584335399957129405292872962191908230058446139796694054598320098159455042263450945689537669751889903693228606701795846349015125864617295501789343920516692321424993520542954215876534192316329085203792185155308131792780690188373568605829447008737799764594970434059255425778654180934723496167547782027178314366999911203774821558499757053701603149814311573456201442737812623887084277830778203284404819750410160768518329470904228162437318152574671373640487454401190320730932851905799485351235872857833210057023179406627353165741971251272413704626011832835261987526065697047230918523655993861538276638183970241069581035232949363096378462062224474017300164286497920798793075379665149517160410252239579818803263060788312903539779891197618665225496135687421834401515569204306986596935167049371718484524089003320594815590484069525475091944066852503866601189479808670417723970532620398552680405926751707823127838234471750142954854990726900918770745597225479341360876468027367511926009078954556219874823233035435379625348472174673377188171675453267270267030754944630619292288232324054878096690606101134302854457473849924709047459510547689413458828713926185059754691233306840077805576678474433390145883788502004789535150735641071937984208621513349958708415280960311343493707543264249991266362491817102305198966700933674565904749712282132605826013730862199402569872904373012363027724953860481513222896043292106705942401543129536504339531794086846198375256792470643868703331038877701194103421114441193123333569686534428173300885210620220850032501026679700409309495573953539803544413506192880758767327437826148145799741977298620231311616358098940274396350332707286213659765673779227520486079228693210505781063013189093565409681945744361125046291843177248957358788549005811385191085983948803649726601177617125677159230245695693917512544884562126435327282950884070653215259435633018147815339719760010926310439048129983054819581284744077344354582568556867424640220030254070456086726944499232487054654756101923582447980469744995478389250058119829476377516314364180414432107461593283023559706808307265039236659190125970478587466372419206603428648957213987218981483448890998419186837836869676207809153397705389272644704833626224570195513876201983168504243700908793420968474027594176334721076356336521800537819579946716809309413454747241084277841466037729061436575655494017377995721664441197963355986111637588153388943867538715279504658176348161724806436999241866196704848564259763958394224659458628548903492410787225707014637001300013463408890516521483716190900801999163764766326739144142467116232352468952485580830610266497566321281188668389963895892461567234797647384322029219728931539033915772829531460051758511975660080042537863631100635715382647683016167063220140482062393970633752172277423277936687044178050483920100944351639828571283646347470933981267496000441318737483292430511118298545356036682162257814170780635464507707338877995968673154753102630123107087118721804422574650588434635893052720128157182496329565673230303196260968423699916806333483413897165787530456850142367102867785381549394933064818138062038060807186848809829695530323885405388707015072488643780117657378113823296764616587357152061215052180179559678622194081147876242310502447930889286618762261216683886656712734694584635506983727871231572367574717288062262311741758876441978803767311759057514282650897432959379508951319138335640411167214139816354895510975133435196460679748916123981911282062041154247120042775780012644423082808288060439620658857223579347080321552020784653093284374434169282747453621561035750831104732070351139557887425707653654632301068819683458888980980491386996355383463052573458740978917059492915111511105537912967937365351035362546352165420633265789151409684091153179122499418716855385074793522247248224753805658693620742906405951140358072803224540266009852349792744942167348664859298830538187513977036309274851397520436733289764289179532611167636990812418945308876065643723443887141999149746899024716281811011825673090478398928088834312502062032788110306310067586884451002560745839346174984893468037731997779134059907766601788713282240608488779697818280408192776126711780227169775712985499490104549885152800034985321325712169843248896132881543885796770340447331482335072038152558250499198927356483060195995942197905100095264700117093302063276327262972092347860838066289725386941486732874737861837752897804206030399587428819935390586987637938707961341735274904664366895659861558752864564589047027035854183191151003974870930609695438205828158506998235032156080632138746207708238429090473321748056937833525558310322702836912539747395582853674857519694725829908661029557172144502630344167571843539563755710623352131170136565842071154245030049769024833910658699436283961832558929194445524487625259113871401680865564982770244592217309927484775873220460302709357715242329796443954318078923503764106165542648550746103376039917580530196324277147369051761640196448079474672366118481294554454440012990058556072183174223512171917829173986025255073391264349009968953330411624099081673360972839219500555971266995065942945353397441299151781045432267156768799739556209897781848750958856342634324629204752142356673026651988286629299135555969356928374509817507308805178780672426366250357053874353301157462945824980721977066858006937434572771832756961877735225058230141554863923851962086503138137093528186294093066095002683975882345835251542995660164517324146788093095088526253903279702003105528308614505254523310676160286798787399733005159190751121445407826381072970629006363524518830485456946366713798786037912583173300691814833247331117960203027607123752739119808862544569523194610430576854110793463495237578156919114594159067731163054879321481353924064996848102448084072647270729995413871281433771497139629065192790564138477814002148326496114813923619402016751639291162756619132227077900850809465451649272924548978553430006349865468215030949012843604057505447243576585888089018136265453668715985814679272888773791772077398679878955872748416429641477259159070267335205490922351166607802420690223675754315623717504833272055875918511711664714506727709939066402219261272587254417161941343343690758674873121901211435975250778000093342561769331275351021762818483516431365850802656128096061486492701931064899663825524050872198312925295036192025057669474645525864195454285835216820302493475384650780016707707699749182852319278661476315737983254209845653850990107690390945442458638850219749989067037702354131427194102020796165779639493315127759072137568987203776514186687831383050356686597435577710072029767333799014182950336085640155617833058614502385853259268852674429532260510277021277351298294793246293382837913608103000868415212241543494398566879237795161446165703940026854386934202722632554064077846506670333834258094779907606991414976300100352667824692972411978005403008923148207536812567056153475854422926592746802467275005270038323210999204816518299450635585431020264417994651610125750121136057237019128321402440210058527279777619133017844949753878442553260962293808476997264431085359712060337115605604196136929405776388065488163586957181389685866329922707809349205720116445707696538780756841056697263151836046149965405670329733133693010595397486661085212257341088026074207763316584411758671917606880096336148557867569391629542855395736145041477475192204019894749994332665506274374714000250922608512009055564152796239428248996778575803155953040065435543797858736189724668622060179211550312559052246773164771720665444879992095443018399086898896476620739149703729268037348583263398639606738355644430968492734417520873130609969003813524919517936178629276823233723983854677308015140953069353996912279064006803035900852177006180740187782123689277228209759521214514751567670594618758107214220074224927574676908133658208174484824063174512335149676901394484067748581353904471640385477873164313021256837340047245864112316063988963955558880140427425791024245707873697779075649984666215084841619995142114784427331540276315198223217986844965225404708155678887211067278184508122376209359450039440237827109999230252321026188047418524865320214968403362328906995393922614524519941904082573061435715805930625630830053109658345118367993363732182522208856818768744231657247844871884287320957265437901339807743749454025404318619674381355987669724223495815435286439367942705438242060865385671910693826222211877502747818251753340431225700568209176220154245192599007461459844473554571153726443090526524964551894485871194436271280559535906326700433220818836322573138537960758657097446316735196690552279342149050792222864944211512162185786088318011847584847318802022275633926665263380894721661693451624554987214922556726329096293743667588452536321590851953737833018904060238542602973469626892727232175448405327169521477582859494223104660150532092002903052502487035839119414157552907141783164961553045997088490324155813519968902214726988944793486329287999534137606742953902138687368398252508733812958043233699729362327901053655406241365131322504592676435365236705544271936737819442167827834551512324026524880564204731385709296255663325483042733991547175791637181535073498517725909356195560734845085259065461415596416088260711399919790683588072960144805635609607032548026935475567404216684625170724582133491369080428308037511510043783420778318837347214744986661354444998638071340267069034146351333070974376881419166414429095922336140807410617943339488800798084968865770843649047396052271981265781126077963935056300482476990701397859011097652114394622444171634401502574753572286737396139437366258480460873838276381662039337109903088641895170845619094060338378543677941624068075289713179413252389036598946824525497737882097817686367286922547035497933134806070152753301102076238685767471871491702897801775005091528452458025424454051612335642562924708321282949467585093897138514299620766908464610767160175950416128701330678038652477548487543894583063561533300662646042387597091386167972875531851416065794920331529224187024280202522163389347915917086571791300394865968042288189411015254705528208735252245057306625737631024581142063430095507055566613348250672701400202754020512436800058238594832542828728221730340949915019004465727525783173523715513560421047890263906391834901388549800728390553098535804720871967891109880036345584554024631011161552533747278227745368556661948502187183517749294789009514565599364761819613233610534495655367185620259241675060080330410848599233734875629229464113887989953584451895213496822069684987996798860110914133809009079771486549932220494106427423694515249204697655439858190326091281911251321782590271832593506762362257352441298961214641984296759975435579208163407304657248662564543899705168639187608732390580995122666272032653297263060968569412646252333165627635770254566999619413050542518198507814668038121913045552945903864385448542399357113600322508951891245759983156670480873703348945136762826591351649059573530111488941701849774258520027079275007346755955924460423348382636331466593962854931555480413090460948076819665929070735566148096839878570141887644232334156380109178669227954264695490012303323640089558277999194940521597025048790223406602656224248566877029698704784578672873941100133560394583200581446874809665070252137174484096618659091520872967242414605890424714636555054178181093129629423283738513121637986605150617438536971059346969863734724773750092103794468713373550650951748500343644696705935429597855341696531618809955655414787018047580467652830035791981762714463931029562781483287678270861525210194828075312975917393794652164556494240507814051179765157026287820228419576224668313890971747130909202070707876164836849099015313094580702978642746921511143155505872245005254992761656746636387070124336921436891696931538296949337366487336240102880300427586231133892681779687788741454244072850894978697368456419258012780614967693490845505208581601827559532208174523982858333680951494668030306039410195150377358015728014994416863853075758737781846374403570468541861484497764730463034498067497172547782249137417012906031392655709378747539912528104648678602305711344662321677564320565334032540941079388761036476888869245209050754746378441368727019078835493090058000338038884091855061512984091731640210290095570834290007781618692128077205112731940661964043302965323378521497699833090232351102902385634317579535254313428973177927472215872865610172249667222603111376213477273217518659005922617570909670310611701815529060234955273955456374460120229126870868819135318347794804695288103668986809178721815697182361554464242371214109728695013841590507113676109405095665193534053747922692385867326162840204721405936543740247417672800523886803164562704806154610628575603603356470481080831574834828971444833672609161343839630494167058242768306529159670787050352373681735084971982724763383100713968208956490925305412054949266952781842612276012980422104716556838257509882040384356455231793931388585350853949962758314625809003493070443850879956889048622859600965080402512566390639450747518594065361514137319156685440670827179116006670417881216205258303363937956805640097456033595909834631154668632856320942930540037730874334884849643048860042823644022215768274788694355520329706211057495079825380611349007281960482697023622761626852264112908633529886587153196078863245621943805188586695810115049227923018307064013407395473364191720780766175261262596796065890829322448100696999345581386101433513906304755609196391159064787340540864798293716380144658876287193259341546765709557133440843168006498704844748849509099001089261996195010235368545300988411852855672601635468978869625655371335163008412429326344605395155104139061333957871518227362891821764003562479076293959828675153784586120556018542707673034748977988107795163460267603905854255035771086511535746364256550708915275631094889388319319638480272416499783462797945667424288104116651790205773515105624204853489427642045007066605278183665340880145357150975767215150773969552627930069428529327993252279203439024161034899106973612896990635823065343286652411576469967338048092886186644086810406046173949364892014272450101271111884071991535669596186086053951689159073840745701088562939758073804104362762243688897957431674446950181689594813407772845723765351969560201809476341316615755898576879364343344835042890046783771909046086773115936559554682954588111902393442130649411210042650181276817915835450591991272276989584648392581026917072611977631001208469860222027733664047907568642153981892235952140154040891586266158678604567993517900241461717181500969321119431231945472431006843196507861492159628930543864140606916215164338715534927131051922457418556986411824958756364429527898129439678262324111972182833520871935359473742679660709528553560052553236768824353825345450871721396090881436464442788316456686478603150676137559508482569813497538418038021351153208449080281303286703644470754739929483130703395111571717597670926120707093324811801337814730937777753869931695347767742610242214338229065169606201093932051093665739090925556091731370708857904701415149223925733750615936592403105259996266355145271130186817716529429027851762929254976322031630939601500962877863001022734772719792037794909266127099922395314784068718199412091414739551320120041569784018601918037147018401526641796945378989862950092265577715882561675709223226140501891911699231853613335919039822164945077389202769473829536130150446850614538821877427103174231576242740549163548685587886663408990258544777939913807659867529177990769360566422873144404291355087489179272067353342506774312726281318640468105806085086511765757933872020456794268389596343306071780083770555107854220720782030805475621021347954238017646981051047682221399491757460684755552326638130745895237712977759696452214623886315238925422231903198519565908540079412602973126637100812714433921702556375331119789740999067571594708573641438300021243094034501399263016621228410634128174757394102438167641163928170390167861108074332450165545490969110634825535578300632571747043719566036209140451208498129866040027129845997302209073705678506478652315682782468195486730591771755182446799348178973827415026127130128741846807177120892497777634573017560266368954941024825510804846215715962804107171258813877310581798296257649428296454326770688620066231875247958825738239006776851844414556958173685801457189157582170344185398094131574981555645249815270465136813806340445811120055534819962003496210547573118090137975502239645674921392808359486353880096443674621440554119421507303661130706519863276850367246909189952083112944034144308050711367310739405205608100940262416080939698941754158813147526500953757662104935265175612505384917468053167402556158276852367215736722551405871732265389488818954838127816028308806768243110136230183133461862001517422573456111796903168028598919568906495292681519389898808790480719405074887629482408983096356353353801418625225396855824742748243898739378453643808992957224219571694254210680715262616456569211971860876156625066351989845165891766012500254081609625628215819277763794538796271831818944300381652532627756955760752514364604960546009139412844067859852613390649220203312246879835454938861077205801062857865683669513599816940036122717360530282541510910777035165175456217188138788922838817270894122909369719401085233001203099895931777750713192617912726422753880440924195505299728615766635122716148004721325978952357867536253683163504921689536321891187203227579358420004119651043679492876559649854185508758552169057660173050695209139846107824975425149825358910842275626682477527025164843610716959392887740814183075349378057750616212748227403928615752204542611125472221112297071236489817529271856005899009715236868130124474476056709876982328545577667061364361598985684718590357821043477382271559981538023157370165563112115493107260327671250538926727832429910251473048810682140444677371204807893156246489484832358045406783543860151453553277115915631930859237879057843100205934444179056609797116119661742179616087940966287817510265239993752111387045298764618110020924016153227776938878003931663123674252883983805240102498334546673980922745600919286930315869345841801628751344340813327180317949844404289478487201779690611526458641155061059668712412759050740354873474910585685999380289403277988549850163605591681808965820244936226988325237310125548404674434134720910534550757323017151596581957469436449738323810291450538725766677654686916604862284040482488963959171743490397863312514657866750131124002417461884398714990949389517722908175230498482927336855206180137480339996670566818476996528926243330091703292702159199801065122516959646018409094735089182130121658948330494702198099566253863775052877246580967446914636670413403470840140517844106787613212439216694277334979948481620835505014202985002654043219066400289613211997280264573029269246690380885344146631606980613273587171930867160087331749522617578507040676649187233765743905532976250961586299289383079214795829781152059824799309057462401631355674902750494087864342513968016970728732713858292495358868729373302001978724115510396436379560146453299310842473049229865459576112628804477181292529891547261129127107537502154732618952174770814587078341852962369481033821350404687496616805097878359767399096349407264844953647527399783154231008435911551971910457793533503054982070246300721504587632567135871896542482513035005146757060096670228274070921849367431192093184814567100640722714255308345686684389825129103604345357490138784791587175692355866844356159772546411807848732075162013639373885410349177590566576983079377039619602492815492332086314519917785200180299548755185674594629099571555170448292298284500261256862023725672011610762213325157072334024957529541770275271741256610423644071532282210209039588452697170719884279900389212332042277354044333918069390276593612032726392139201690807754524700173597612326186685418987022450880718942931258613021000552694372289682537147185542651577732044275430350655684242749930208278048310299123748276956530729468752838782409132401830956485466006575956014542234809815251941530510238412885433025219195336209513440187479428287816001316539003001694268969394418863685115796096007710238134468346133201922751357499538273729084182047307472860682868548418360628069550824111695772225734728902186341686274745122261561492886902224648623720427470127724042621727602171681273232233954507560961245493472695795002713675186653069587038193424028907815170079257863276751971265435407973155393519538235609249562592755057979145455265912805928496666272472914425927560101435656725966153464562660177929967597608430801545157872303523114866173002583556692836119705929335618241978576238980690599755295992158934924874175787395629134493395736224156051252243307251626825582705291062254852886447389500160963582471846402352281029848948111293677343125067546501735272198189352990021420119913429904279463072428153165584251584819414433807747728432229048759440834550969078092322652832074782141609674993347816870588537465003650074438239460430163463121702826501296353306925301851134904084137880535592522092304067069499254284387533741320604121467220234548961602625908095296365768069343920355707907315431935511882047525631977716406857922524642651639348450002683643376804333041456667504925566310390407023620628749010540807934252531323329581645489005163729243211623297168591624894149662593383746290359070911771618085366529179583461627591153375817588505717182039411575676098109222254007487011176207081091415677664429881930782376846941684420894461196836632350262507495144020965365190437392330909446782178380869474501244452665567318250960044273290878246220887339873357284520992751879979954271476407892212370236321807047154110402275309177453507121232449093682506741324848179397058771587733963124248909492587418340751841459628214851304597962322799138740605101539461823280529580693462243534522203733345355711978941217323888499047734181451090127695205500846228355325524996194940818271008048843373418001932779131233199065568396013011821545197366659220269636295619140451422853113860652708224078196057852737431100255657358726495368606215763252334772082729611020556997834729772071345633119375155728682985320830249313245851629922124911366973747473089303503051965733830885248732778498994997932658978927409860205825985544009246715661869083775208383962421708289945032327909197778537657357287932004610199010470787538481535807314364173856995155679518218713050202842566902774464530299829120480208552427128857793409391336221047378854763594014893437113075328209792499695275240721910317606211560240236320790818817988473618959416394839870471428264208607391559471812627112304930020515879416228122824143451450350613848641663900134093275529303164128760635977779470069371681435943208176697079379334215211106824568300054266755659133327032337392352590294626598624965019917977612567531769447617589998591028608371818885465880853248012692002084229204446701838684754906874529905141295262224318243809540026133462312137744033371828182408778238978898234274528424092601372527309509103061432596494207945694979802339857149947073969870689478287268693623410125667868729218644525366105299143037370513955660783382742759381116900283879225708059933630091414466637396067783014685918708399639277152687537899712176269521617009970747124068176477358763449038225963577288908274728098506274080775531461288649263469973500382508998545650178484883491099531464621067280725469743058682548780300542232124061214976275114008079315880915823315479160695880531223445317206820903641189829565930681510198607930423525861353765676675070476251388932318678522235248676801861648905256352369991279258795962569928789218207636137616243058112132501184549181452373154418828123840241452163005210988235691621920899688665435698969379282229038969017795269359434355380409154287247576821863309038434801693462223258706746590353237987542843740146302195941720070761637274686736111407287428444179607693207633405335071766635484314332546987814908738307657697463269372590863866195692190991219028699072711912875592758202355742451969249625144751780149743058355887517974047531814264420902123102729979689176677181355723367222999640687476580894306739571508279852948581814828348991168992545897085249301493379453453631718962812507876006574878253300988879721732791258657677016920291894216774415529028807739791454756271666929593959987969383638658185939413366163702820072465104376611799366122902911306513775260316838932334039142882065284965208525236745428490024995181375280830520004630199934724155094567497514398049344982738419238496000994155402693365030470375802609556493854821290829513469895933556742123246171667224060154287408908517519684596813650803139985808546854897987163076169699943793772112725660281687599266876784184469064503572186898847443898108375232743596916781928032116297366679807782952986688693714552752031225185793397610493550960887279789696949409339602578416186648258532903483354801445971676114796720427260714636979263830695451614403007818714427942845754117990769706226678008189242162250244781817770035543334844172447331622250243940304638230205656534903206425586576377535964201573912956727583876520380809214425544949024422469037466141795442593402623919089019103748220688182522158270793645891994100651691248591750283538408053239037712688322219664238906699105912055521833481957942939746984717948792841108788860885020538857278485687095345270998837345052150866096722875446151971572680503709129749695169651532715599743663395439266918523907147520077870768108686623240373316795422505304580018095476216220244461291875743309473941905223431646630528280264984112301024909839572450739825472412801017890035999109757271313709963686687547581159332614155012115806910562270389830043166102004031025979613309240974417264324705974126362322157724041366940025348996917762026597444053614504749461761406588595972821227777325572847741139047177544352270616026994488202666190651305365028502725726480698101559064081770955390268716767939081025449603884792070509678324519983306015315454868440857373192018147961432435728954602651553028369525048474916028183285850758606879896460718498688643159026943738016258096511208097608283530610031895571149955086768630212065766624224420890686444502878954328507856351350801759507548116908940521582266150781993426795095524725788516926093548628323228966509517114597202842415277669123916566467403139620964616809545454176284318218811776340836215130050276261901646217880030639737182447413074739795765841216726281300081398959462961510707258571151885020847347676773120896288726480837448329789890589482880733192440445391509933655252851862048438585773220672749367645893064440278635822574494145850345728132516943919054205367652410736949908885300466124887428823825966681942749036829742549226930026062169499189030421013097791554589895133258094458081074472147333484723163115047991984851434152864230923544520137392831736105424992963303207376080024115127999789662688806404047665847224799822267547543773442059685367299586041280002152816894603380872145683354679161751706317569824344595611164308020006536325288514394393587860676147966816040930885337372250400292801429256326876538817232532685243485292082549233941048559802452452639865115171100221109587816482403762897984148322194371606485907121885060621563810816426532753443617420634079313255549470974059440677119023052436852208502438090181241993122892406877758675037051203715169130883059687799248903731072128004456411683948657562830035952537198701262052775401589176026634737911237308330878970912453592180025637193791556168312944065094811235774300767549999709377705391266166512351457997323354029528823655835796130917126251304098374176422796967124456041198605048985031115443471475359034912667205293469614719803446507892054225883881634909802661936018181230733246460628209744048122047521654677455830365948379425246671462581194180784488101350793603653745807317418537748646647944375475725428844965882608594951981617743728778083140801884128684793567881270579636375210554340327100668089629716498543493850089378381457872059450024738325990244818177572616939731443638267703788167224034465039969708953875008049703648541375245457401922795753595833873000060216626367395632992364755993882165917316999709310503820466690131076267580664222991057178598694017739954534355840297930639799147018381992993973761293110103958228657225463661088574078397418001097534347445809289302263071359218028158422855995774813472855721188087815016594130099559554960455247301603118307986469256154380039196487801750040705986271921094883957962394915019501933618455562472682996395524328874563472854942745890856322889611417453838069876916392414156149559996282694790171048708870506783919221495522338460084204865279030923076675567139423382790666007950623325107998205206027004359665679278430845980078981191859953654699761522741319724352681746443207257988721936591849405347147576375220771691650464915839160534614430861511679022393145884649405579053394030397781685632066155951883043927212689302263095813533844351964034597580343300020910725651594246183824801607202763389912127085410734352707762240664895773826517225824732915288840155663034927409256563721905464210746915043867646429658387596681224154793485603492012124200365494393266489646285124383829409886161540322198968650695336272253755495226025579801909446938908594522636711629819335346037245613988920075807308801597685332321404047090635628365657946042287627986262312833401360918845631329155955552381074633783383966889469838082355576795930121456692214309167233988992283155453547652435141881164183278506599777554500879404661490752347504480848189756526865159577737540114889796583048109721386677422846908368010792135531304984377234328393496947591937776594579411642122271260655469999523039780597699046396787601277022649316382483317911264805847168677663688899383235556746459383029462981686158750706192488883716991570733142927395367159471708621198147511905059758436191707049639688231803683543276456725384878287677427648873313616663419881668164103585516765947716626576528029552903202010435751862129396017995598242165888136848862358453432527079203119087479176469450881322208714610204670812428716242249188531200871111641927588727888610448676473122772745518690675894774519624061061550334712268232994469897610205752620643655858569150266969429361699442426967000911374472285430089504148756818856373069408373623751970613798746710861557646125986843111358122092411481033112899429362781365365027351760733901235233849946923163235217481970814073987149539953804505932268332702277553489756302190787790488763371507637194737907298558340736194197909896016573276828987870407754764390518606989476726857523129974338009944824856487550553850373268612671639175914570180548152678867713765167167961483744152382163481304257336986941672486111101238401971665155980511281389931333713706010268733383175819393502178963142413218082262649322980993303777879791074273619878935198205527304321333411140299597908358597821088752039097528763202655087117511218878137526331235272412453412693601289844369255962177297043989922364216106461810773181192061054295383790867579706792012812710157182986643201067180803778790202732938420283028808691861303596878303208945370414726339503349965912872691192835895426329335270193148187951492809464379434319580137120141504327764175663245103871406043023452689570966761119630081513638368903656209957115061002394755252867986266435110922204411519828749346686784781516718246609007105327100657067003959996712384050318327661723141247976395451495038495218483668974342275710838767048686052247037645280650455952120949904501496295986526210514949900374483836825323890435557744909265282840232031951418820938529254490169395439353940377512595514949228652500557725657432312422868281654624824132232883218501782022407815306483539924974021890521547393863701905053103189906040929017516815922041136591008387805043872534208538737589922597379226318432829156848393764352543971286664959097020510305281808785357976930729933946828630070547098894591006480039310796622610823194652527819561782419872419503447706234679813812620478359152013826125069224089712441766948853022227966689095795939363096424931608623598649290105304596079208687059391041074998264610790971778633108839834293689860177829650830163252907170576156465591540862624391146015873251012366000574981883749152717429636303319978600495762448290945976040560312767500364865701405013952028439430108097543415212599297662261315286503667103291281526377338570734709116469333362144041032321256428044328416865221892237268410379525257326737833627289116729635118601663547507947519351831535331010319240087079042121637592600373834791851882457256552510256065481642406390255421777162578402275186003438044776104597362406764517758756093936438957741443335746883006000986849259557653302474734571597670435759638739952309443763498413626997571833432860240881398773128495917448773812628853268774403445442132110921737992781818753488616164832086315518448019234538921504315599684536450118130088827557924350931889083747452933964228775737412379608615105223913984378909720755606143626055981397248760753192608593046004428098844936236418205383007689774717136942966654521723721418640465652211560341021470768985486761521205718528594216010697114925674199498917583201760504032098802658630334413604536263339103810926828053902611886706896068345687534328035325822304635544253246103766210132362487552615152561678436621731317765034892584072696672493255204171380643047798886354422118445302273869418759755045727342219977376437788322885044179926872439354751223406589913493412519756150593227415319792915025481056075564503325082712314456036466386105014205452002638450548545873018809259097555883663485329466429764675416843744322991601368760441795664281109413948826252521640687119484636339063924406067429622940792691586502026791017487283718692563419611630612119165902832272281054970156773000755597480207951636330292233399074237651287753198382780710182067799806976732655952309088669204350674626461964075671629115480299966873851829150854917774339359158754736791803027781302359464295882865302843333629032679788485507555087217748052647233553092716202706314026422483046141871989841189423934505832765685149609754155251941438554098512684938221784702903565342971888031908841793715311036705133834227273199660506151434300925624809606714201723236662686731171493503262785364121865352503762376803100842747853829870369254208838807190123679374754566207518568011356729700905146500358793182613279776390909232880652890042293109504604769421306648570526456297331367710414261520480766620295607503266418199981307073402817552780397445798336440597771440450191887057527818249404154663973460342956198623145156746476578560215544979455235322804892490696318558001512664133576706454338062596921730876984781141870779508401812510566896674785333925785733780094827116249737950988701631965883362190153176044465879587419293747856598507462840004289829201884606803924266811965980242636494498086921178818012302662369046348510429094526674203895185272799503125930397693591895510186514850363001839718804857677143144922222849705623799342651743336146526508488146498846154250175601912107769483132823217700909461630200721328861708265571243776925947186243581485830411191513816172264745669477846287462588119046413738603180387253653613832955200450951353347504246272010239791739133990022140973086865001075038810495047043916944660639627976217979391067589430796737277815285952359173087778716350882354158984900851892889505332483752803275479608938299247642159897933333581052296122040239882696385392282254644726078134050381718688568910529064802377103906437953321793230178946835901837039048309247159402604861181005547993175374333983288870263436499718262058803592677446749524982530320122727371800747753593348631591596747086888701988736000674484764447752887178464878911695739872818023942258577423560595392068254044412245307246657919890631549740746445803914011313350243934162496887951604284580819320327786997879623972731180305755127395538969741685625764600650015570788661181157051714843580486866199600431788714951759493117106969931541559587768130497274158107733671465654079080837459891488388194320920770647409639638640118752879155109024582565606814019460152289388389664603713569095190588274757511881667660214827743511757697087588485411455814398038694490522671686705519838524964078191615607283451867553521805318563825620617941013166145130267970012214273580055252202879835291617781021945105229147748497552649313634754796753309344551898931540702196302513571813690266975674267738156526349308986783673482730447545129054431419455693519574616403664307508245262982399077605362082360122317066319105843422857762173554653658968230441663908699246487287861901496741386075254012581604883811403608913677116647694888199582723868921857008777211153496244605726224961155851262018796917450803602534055185912601896237667830740295060940646704769036566416937487937169026409558899926225969664317374368103365024904304945182588261798019971239259379346073043127972846992841945999474470346397067697334131108053052826442403959333396811928286827952542276956822287656893342003779742351717945949229818518188373909895908410609486478012151939303023552525493896899702854558665472041179941350783979802053552063857390825860663188977952526415514522496213873295566727049730881804801102541180092507344971350932927260742888191039314218997908942144892341244507296339604328821187307068037279268852494712283923789996974389562927960907866286609983875727643351311434352170772529333564991948315601627428819569730924506129434686875032222417287428669470621178484365292690428771855157307620333536242498871321522423502580656646540242052408623310036187502154483669644842344872079263414677119913307929761293095303231968294504660532042659881022917996847745440316273875187939360792783476299277661163401871714284356124764536803271056357517892694353421844747633764736734031607836395848003445512766964729727783394186134008594090120314606098169953152780290345406233975189567385672060761926458859623186225931864425738724454162111423624465839452346654206610701795172837236160231806244975327698295141569137249359955302125291695659161511929879027436903437824968977953542519922712991638996839445385965082244251999928930710275621858507323509731201650443846233330235009210016981856789567983938062709862680063439389556078186786397812606433716659896518366830959947405732349340381063673427817333698382464913767900742207750812328184699943563888173353971624698932819619313831324662903616693803775680955227058521554598642600560706449100285924236915605169091865423098515407786371036969660905167167913248921049021247625619069348096136602028066653587973333607618908250905281630847679370450713116878888290130370447338860430628653530880398388491011539534143620292624918328172002922139246036095985902793509345855568313851098255679500085039948517151849318708405364450731501880409796945844914127755545494021410231079251312061775131581794674601809699313589226751193987231207080788931354314784624132364538019123906118325366064885350457414736268659434956534628897663745356486113505303492730244185717215104524771697387618924175767881870779120989524383444277043250785921966386241558045884038879924869218041091533392742458186403150452803078246804493204916747224557845460173055955844534181619957211600541846407428536385278171599072171751169430236102651169198218515985240736994198021873442526404745039928724127176579479684286437940984736782122710305711183361753554667891802069174764262785067072682036275303463921367813315095005255115511210325512811074045886711676223093768901833280466169852127242086898926252535119867770606551629078948903460997341262788659859166460783611116098851264625176619410881209149477823373367802116718231972141170342679268289958155393546088593887413421488813346270146710829333144331835586553624902920475234849007946791557259375758880581458105506635415734208029148052157067002134574357495521253269767076910151040436987072729784152519525171322391844978975326432117199460106625496149103887506482042256989967818886553773369315110327892977115708830771291834456276882327536569782654294494645341196169456921182567976190438142217925232670905200631052952250635238041871836516222596007335360610503933218672207707374625409489831377831583213516198069414577526096635833295983016638429539772095638002826417172834801247611599122501927143991652158744237658611869839506644983951479179318063995794077068377570826922932560715704642447785081894900558318834344067137439610167701540994453873021730388323413247413655397517765827310262961880109215957617114801681564801717935608350730369409604525825125973951276315500212706756861482400804564284146398187082867177874272690852017921823589512643388467724027881976994321979292237495558964536576239088920990754622104923563672590186460998929200098105854500012669890146286281043245831071873294047818929720530737497002401530652173484599451569100964288257424109128563853792890391513082911608355160157800646681059258566832255418553207945130248617487824726184370399235723952770303607004378690479133923476580200944562527830150649800357807764471905093838728815579704268778430905914717209806900261895713328131444459057041508327483974394933495707668891168338301715363782947525506846251431411737175438670437595254235286633955764336331941324118998864409281825069882303398993798150098593848331515711999092994455699721551287969471424902855995504227012975430718991994593565793269903690818627047595792722556872097269962415167944371061567866274478923589270360074819293426171856358299839308787004022446113592674616592853971844134882081182234420518796296165865431097250237160861672638826936651821581131417458401997777054360967760144277556777070856345605243004369904143450466587810825698634011120732335933609950076681834787147954085794802705253281743941165748631050428650192625911088072949567893048089747159904317576558038132669832238744898658209236345195371863105074576469654702896254645270783024523406607898450747181701822001533432594611135686617656280249165084320103404373703594794069624539341005370371112986075375039706660957173036483432731317068885960565881805933870276063363297122528302053857621301049891119831611678794405951925915955129152101035080138835500854973080193085650169533671402489040048680162590650230467195895503513643923130854000308963793053528113276415054502815463259353197171017864434586380489269160698664976193037170113487557650686948472128976077863569851941442931652236147888277312859028303509712935577034421805505444754499488144180436869848378514058658445163402124775954471865479855808786223477296324691315680284374105400454733605865969157015029391766282236449130139988844656237085153265404017749046678959237747059454250808554708192118457497216808915516248564829826944897012682207310523459630956434318397773481817072635849695002159109229643345685463308248784319279342479056213426930733394170481376090289730666296077490862414476010397467383018868387827193403137565826514901241312233425317009239720124274410538708822052351402946982751257548617651823727193541077787146112056719757712305523651464829302163500463514489742312583518295690905962162203218983188486906712691936897223832707868495128575121545035514683879003295434015534143474423931004917860956193968394946497650552360398578266509207302755198236538090198897226951683073520122799397954256787082396105618172375226939705032682385074497592667657010362872964857651707009963325608746790150391807800594670770672907087340995053394138611975690358857713931382906573016447623288271735112014354995382496116062636912470981275842241315528763860095306056018165361756985627488008938000340972380070594956631957133305586945931879747727970702472800190887204475151925276600615674329892819651048222549208999065650514521668886951448605489420940239561936315716685052068656868392922064438082357299706792770767045324499340495433858559753291872721694995470129920277617828272007030876150657097123426880702403462941172538991100412954535383737466224324064892965987054563836813281176389192487521740338999218088463914073654225856116046668399102383808322587072129016712715415228775598084253362936975713338150964459920122815177046104418108137322855942605382406515058703442191215112080833639981032134214819384007201738665826836936622950431951055985744777969009715735508997594843101818807773986050083039559007699302361446172049828559129409401556509946725431813595008224283430956782053880272671393056919545170732436573572462115519794778913295059427213332126533404228355731962073963818401136625073438813686331470727221996384256990198030783093343853163955197987440068126106481510884512028308118686106701141795231534207013877934209269704050178170292916403050701002924089712980360449024544021527231248420909110041754405176111438768275138516391155947040581619172727235986859714125670255368713062594338591059134175078918240826170993334958965856061104245740916744374090419682986911729582791743860411837743990551406048955245351112508105792582629316457666761422945781739563825461880066486134869855462853978721096668668825700340878458044807203110864181481170430063827010294703262225789828802021544489730905962757240084545075596573041295316719013931914043652799091261549141572265871847854312977972502736289737860053963375733231347892753833172314874374766745228050680428000844957036591295732188330459641561012702653412096370381819778872213560957720483300027590556028587134421552156917194335768353151483245429437952109905827876389102028626606582585669122802704519330809454428290895088273899413192961360471584218719007077045713850795418304331871317811836483803733571605976064317442507061910672869706280694553329319664251543087932049871373497229228119087971991397701681626594439426939960978564606596610583498409107370551067166381990840646044878306890648487713751251388512568544849293235980346157259687302352395439968136388513239756923136652857627243097244445475461270329933581729614558546828003852870807299560313218772096554148129062532359646414803355975744088569779459175013769289766903159468107412481876551122094191030586497563226502124480318845093560512526868038965704925970993790470040598737961717313272869902100964173036813026166571575605707430365543466315698129593313286943112174576833567916129648925045981851116960874016669959622560961052166597571406457635915015940177310682410700426330336514759690035689945730367216321202652386704008350689453337210112698555800409270123036432450269337290986612575625338012925838985874947471014075269689106403406691907254931063961999455227231820152754640471645541720884671808304790937244901543197391112484627748352280667273443168330971035695965434420006086181632539119204474616384117822300362390697669030714551602998599636005549322280092216793234459089942626544404406208014152714429273689684919029715649810603357879875034607276320998425427564941845735420200155628312571080462305398259062119317491729966209753186811995792735393258529272564127477970496839570605140461980969046725747488027524912666591925702326805689894501288018160154764692328356372843913727204541746233751544499947488663162097110313240665875249676666515043815453558542270845073054697077791123504376205407618482964790648562035775667538099897235092924375553328741367893162905567059594803186790167398605042236457340513809807821110468310137297629275652565405971705025232109624090102878836585936515229384878690438421473359201735547072710945847496657317794129100054114322296618524979949714073955571596834512057794560266283526284173384354272097760054246175069628814817263266230448824083248654645177688719992199636285764766338859826521656084066129172365156084919301512171101303119074416151888001534798617277637524204336507097670961433261116973517592186378248133493514543438641617281031095579199569649767151108742921939472803365695639905540697570388061080923553779068351634387419161355197036253216530451398824584706507253629342355334987694372041200056015754038554737090441698714719446144023820932649304665308193468129092141716035056864248633255909293796373388934516620443016646243581989950820233347783797582913617898534626926166577567984359169126753076090223011173631971442419983975290808812357291941559233386874154382986165791480688323955232215212567901626921465677448637990694741521527460088977340364933684493717545092448267550857227585343690180668476145158976160754728831043882668318513585510807227613313717510553406048145278730728642781669728013823966770809958549098517256109169871117119131730289003347081545340897992053551324874661320293824939877574517950006805991935501794373315227625708673255798380570585953081881950632288748683465886582567650938589840949991803529636552396217130405242988933464053508193116628389895700090558033845613933203293388354732742123808725234209120685458577549559652312125673416473077903438225688436829633011810565892403054999329851247181217435691757617988446668244369968863409831722185969022345977231886010085687143790376003347963131792896689353410118085171038165458781248184901149387075757876524768900716323317216728402918642311234214532038730019882712732264655175872698451899370134256671849684523819336475067664093558751724927921626613113633067431958801641311789557435484902239632844396059319431045116017283004311175888590789033595951970483676357528868712472551758524531430794423877454655643346493766575288312230174516231745870686128006825303795511466855710236176397074133764236654233150110826408645875430391399943598135780390994724834695642810849844845506247187786553408858320990392057998069521941340773792586197752075426489503683171735561254932324818826571742579226379976334334280360770957363260507383336089067057981957457027325543103305149569243732803633550673649409538932023010689967767347962698142950579927071123796767550931217605520824710220500228830908878948189657679574702599915484176308186905557226862062651036138728778165078685351250954858976972409963050599294716742672542569417184277290680556621423729505070460684834073678151146651564617038939279784499064420264239905388945535764690202770482201654322677102279191653885660373536710158688404397544060132349896994254924111362675822066852052112909639524847732755051229776840136888259373571362877387765365755414221773283204908748524885108677231956096425600066459678494233514819140581513700688869528686304669142777670896020334667229267263697421815464302222325765508653616037616796602262161015154178225159118119193169173997767835222547449151295922056474190003595949489654308346957380236190420245912406186641062166593179946311298635518428592228198439488391601047523510331859129547116523753176579946606258953496006674527295569466791704463356818813376475524889142452341927956246672802628833587270014023489878746183271381782897951182082585254101537618140449219094752352467466393020014827943349812443204734398491543014319037032566877697523868383758998914032149482675444111260440211423155681910362632552895078685257642155001472291570538532665349224358212599338465013166057533628051280825557502254739205175235485743593882977127130963602699307394198753448222909138545232168409490911279173249315460791573463168317407643368680577266727298307377107468424565422536498271008183198007683474294409338335987294319409967335099754997268007898534132278398920252463335238711772472526857243171658461986746876780450329349285984329695763583244316016174746864462775461046485753286182794582242375813790725414673926750874437957295625448668568056417271389674972439097401455881694258198557866256225535175894886073048419152461174620529615740751813161133771092726482369926313821611418476839794793418567647387075574172382664407188626020349135611957246603544259082345052684579389644246587465069132380470675227436140618692529042865762534200167588295739704176597742004358919588605914951437648395057927667400568964646614310721389639760005057141160858325191551814448454703014934657124469722648425758462570889342145847059648337786950509246858177603919386656139330215951800464887324704884360041341858380510813535594950210464111084827294948672009929074044115873956919608951596828648490421468894578384585397547986460320216551065176372184047264948224990204205058353728677247912143714574143561283767619162696108299621918942280006196381709744743392779197136230316559213219735487880707374181734307614578817809978269239439117518114714320776248245436824164237623116485983339917055229416540876820741455294937824497223015183872644131707373015332367460822103100759540441908848538305383673698005581509877262046746902357347229041764983427929841936239868012815409917619826390166130031862441868702392622281197988078036937208472238284922818025971427541228473332397308979150789492191466528764874564430595505070247785010487579831989916334900042107368454631727466348868606330751162015241277733314836535937594333815166320563207629195335500409819237195552915380167341701809140515326736588376293145133604857260695597101416010754904152355738188561247625227354472377118927908219186144653473314554173317492314422013111127958128870491078290625531501647928539714345074187462472591866603945010500673211127219418052818704510003900353434142526979431234040858423201676632086402688848298030630183202923912489371734111584217584260306553506094546886622922886550130039617468096790485433833685698592530789983869470281325968547047647066947034830494520062318554025939259965969866307636483266802146332240304751679019881825377540506535725392705829427416489103965648525858821966443758136752460710228679817469497295534238320963753307776873042690173339778975938997974135428626693182764806844556469170823312772721245422810934830170836868107843854055453271676394585802192866862509153729786980507042450324756283988477987196878197837956657651894320582751684061841477900035689769934300108249599769337877583290992884734681000472002731092053705606261548302270151109866755879440546944815397988219950394198964806303687398064595686214902710500172223752616732504888876039858827070450387375454000780943257093720204304383496707403878290731057648037583544994221409057593061179418274306517366802707577004377895667666390979421810019064698725762068826632413590635553984466218269255689763592422267776400672961558712548325775207643455623139668581687654039964283382429801905614689353645798263942444502306894899459682267991779781767573722865082952519507388822716999440365231252742517340178874678339830342355727674506224845093595051849672661381646400081394216643034427396573700224202080197991007946754585907331772766024456308914821523215855907592237123001716788936241455950352296062677338194212664725598367778493888720831034450390099496592804253648251875895384915614312277736215203337209718839265867097085398179529025737044653525177232783397483441748029069128774539821129777776081537898322319167230901700204475779739707193722222104555876340623525164246153070217150422221820585569714277670586794923035692226970504763021911597659803112500520956692560100893685034086515859445052125331601988553607932731557411646431607319684712809402119714825905423898052970655294782601996331340289165209296937227014881309813877415532354207057096382124727206144981523198619903606341515994363094269411956701398551038818674066253104345771391359467176451984881975696528465306094498970508201527778705541774359605746351520601610827488879554867828624639056183248523237600076118011783168365485650310063937802247320131274287533094570902983538435910142813946094449932694708830030089553916525585915555498698994897637715201073164354645032035196879163837185000778140459846968929368893238627332042806572723660615833057956822130304755332953926622874685698301313380222809332496038787858604557363407424507709680758871073929207601252639040351075177017356743579058989492026999585752990857777493613376993307674667418979203209793534248678088883368362080315274793063169880716667336244477525504730247570496131872710459583596704190018307916727226233529067435460047929761584921325023778346837358482378733664163670203136994224233962495647178104897920972580192277106585623973420536072829309364057437226458556710794935922594324629548887527394902564421452052717470675469087888010657956924863756417691869455991713997737085643224869095894374101094196536714347500461495702945973200284384005373496452610618774882646233875962589782790324533544845538486588971721875097786080576729328115515846299573904776279332354551196692716126368992864065164055474058423223721499667484549136096915192057043303017265367104146543090514735223245891306160148044989255150041177213045873322532633392729805951443337426027829290461557498922948531999424892012406911406747838055189969609557503554652193930360117930624279538733943681734268777941081305247616963944460079372575156024667371967015618012487648954698626614854290125369140425178462981844557800872344971501902604518425201545526237512515573120806601706372829476746872791633006703421406107799216249712605003789308059285505711819704624685799280036916877581706809818112200011168231678154996919569305394180676647584582415848573347408527040140566133797153620795526175727652099773054410292337649164018422160719098581917267200877869768204440992292281370717714221649053723288397771028382261416776491192664645488524384416602513469196365795338267841358639597298380318060719763676856973900961631116643971533881433490503408311001576037853699566516545657649363293338018448754433909420493306076821835724649954706553060531871824213074024041046615701334717139955496009724067953362806171268471575914664958570385749908744289932126772265056986947252174219865732600341397570714877697729678601319520983979608574211589537803317989586575217722969311703993766203475370075450933407819488952404535185476538374955343433491467587848501368912940015631286361115766184689769673527790338003955414824734144252711956141471186987146169749666831915884175963214169362490007928022148159866197207238449400300456591478128314579764180769561806036427343554183448418761728937011359604188154258464458710957667804851672800115757957559752522491119133478359305886646232760517667890010551904477166547444442498222854473083051300094548423785094023630685513870989216525382081948257063176044190264204975221777355206458485786786043755015593711084368783086655260003127287684139050472207734191396667166890702513442020501199065871550142908695536996628487234997283587790594154772408080999269735759354007187134204846336132011511952460917357686219938849714498852625363530043732988987244486694108657303722663753278993730931096211970658435962136417709990881855631504481413955352444803442631266853876018079447465762995426857783655592782538075633417012280709530562486815890400313805844071303843396438079598405879831968475944897239774643617480712493729793020401982431550036550662145904078057898140299840380699896370030066512523722596771320736736853660323629611490525602904623347230969916837999899041876059315990409939772279650373981748129043042006444125031274841227103214356076865185281035723740482031273437604016602763882125811792055549151723271741395179114008152809014404310335147920631742820143093060585518766539411734732913503448731542961047772941330762258245875581733258425720122478740450342563359031505568283739767735324848563954261977677738385696475991960437498577329155427054401975574018125383517675281883739755904848133046663637522978202338269672690176081897769617134809755923695390795471288891670215436025964256760954122382597471873089730751669795769615049376563112379294726898301541253881857570531866081453176001627044157973477800799340156129999166872059864945750908498988729336823929548000002099879537503663425050936141145315795319332908981630971409237716672715095613678760583321339497718799038353366483412429239405557749846309571853384338703219392584653487591325239948164710710270766237612449292973135857793450203194352100975431893154571073989153131308478068750955102974749739900244144844932394477058249443764227827309213737479480519110611369654684179362243217301120033927135067317924368809175313363503826794183112389629551840558079692718959814202510742138462029558077901499973634463158186280284820010428557477609366372325365681963775212327475413719572008336218778981217472233690677771486565301094204283367456393035968966814091159053827690514027853122345210558194869870924271452491034869643313671506420271136955915582089740151825855937956478574276358879198061655358815190952843454453758793106273989064942510751508287698131210507965630094650386703545529114117625274168544462573506128406368103196698987859660829110941457040793195962484232241533331634678143381699199092916303276320390320025861742256192230515903275750299195693451550047352018460722097403876190524137586686983620199048017088188513539263244881365558491344231222993076895576409823986861712855412793883160112883965913742921059126217862621534250039786049334371406224301677698253245303452856629151709185850059177666368356640758875547664899021933096924963287915665573221434078638357510183687492664022754639763736728622708005915227357251222759090700209067435090284618758925374877959030704801546034207559552202073927369228930760973716585436596525934914722898417267592397103929853823788848413367273437103309729071163509117724767633466836265279926322454579201327804022533619736205197090397521278126441282754508059851392480384899463528690338882742770112524771386702860228960270979824369886736644270051183040036337364901063260360944858547027304029744160848208313785896437307865159709097677081707298982037651397689055148226178828598578314142586643852433595145238795077660397084639630262555035684346859248373870488539193460270502845509751389405008018288772499408896652375497171003178100986101588751884191250347648080331201056293409007528879444457093072779476679255610380627208936405564945867837153471103604769571734920212964289922306927983737993731524774131978026763582831567314886480438994049655496661285682441693584309617134187139016855045689679919077528264263916839640801357632969937497116465734556932674481128374258606697989080216053011299095849897927191349516323541034243234092358872851077905152791799717054990347690890126482255859188810785696252972813039983486994050881653275663981653960252878884643471799273953513480833443510649613521937569130180913110049320363490448348178506819095693792945178734430578061832049968144368860861636237267279441183096735807580221952469020565314029594599865031004420671740897079947124316203953002195636356489315346863763741837101415928298353509738830791222649001471887292417929617600781337417925102049857193847978189988191806716184586144004188898388075023848848002435246838276805361110599282047916474332074265323832208417633201343360083436530708925709768837956459493065866881404792758112229914286337880647991767790383606940823658145363386285777188209610284544348931485189215464188772139075074828582222250015286267610868339462524760213397441003818873610906274728391061291333996699609862120001402768968470224383821105246997658738929677905060501273690789064754399721916329431217384780339056752727691342435939976836228462433246813109647853915191643724344528895195646161720797541551739555092039081192641846173724147950974829440958460430481016637173631303908759179614635611204418808466273302406003941307120135684521232665426627290695783180753816543686675440993115369468664925903081650408640184402205034093922126746259277323539145994781022243338680202264220244426384708875555421140089288226248492289402893214865729638551498146956092662838577186819811181938387011284938103491466010061766274269946044967917174520632876483790666709425668277932687002431572819919977470786433106485220214379251654492645758267516613810739800130892586468503163602079041346434064899940660104006947974591067060625869984301318655862023579278787384587823265972868768151195084991510503810297357347239020172991663484996415154710005257162948850434592455464080582355888252734939444758228662551443929803979186605790586771597500359956922433758998546902607015828538114124417751205460834333145330999174136026533429490181553523969296073088368202454047893696764698695311232482769676589268695475337215713800264953478380740233189777678130257108143227114711127696911145253854368655051749864253710541252930063381999916864757688453774911066238687997739958876001580968752937788730995476358640644741616081802366783736932540930031211925309510803207767986816407353337337421178567968317085861659050889181974624557517945827966352112942934892636005965868803416327169521751225981203559883899996307106591575029310453350952777970613258405264470082359424035805713648240589212871975887972025802646902125086331128940544713765141623064977829117770259117357546871861554057155415796520368831012712374194213368511212896217013026480201443371104977469322833388441736069666854278813772135346307377724935197805582748490645137461272407839648933827835062812525468022822947297749405535757943136227025383868378259944446391861200343316155705695983017809944460547226434541879579503143824944772025703596839535738910567181346455321754389019117574381977540295806455761910157239369515120255021825748139342426338163973255718801965391168005600693932881451022066041540682169872074641831747102570283576160422434093676998294391687335202581060311353463689808103188462562913015351836587686960141262949199123914215560348378236266714970169444675848913056783385659630592837520505879745771717987534173910614401429417505067780504790380090176381453391951537953199449305065639780836186777353435732427801272506503769056907394039580719276990198665885945506625719612795891881799484581698696209633996919173557060408741244891283623541018065349047950092175886742358390387693637362178861634455168549351396252961887590653204170348956920888502934326846863405552111909692832960287989717792912592025565161834160195530063283115698664400504000464553898817742130069925390354057098049139796574401480880176730346149089038674541539803775276825112282594206969870568502088752933168427988752452097912858097937654135134886490539102750057407153994591758685498952586816090462017963356174045315239053274499173138461399948069892298404912163370470755280673569146911845609302607293622961676113977397645940949111807544782354055135544613585418668846621905910516029298702729308343227136677221413645001217621890126876946232438959047775448309022666276242696374143345229372174232194972448109964550878241726983226107338339856498997585557035317770677491319375669580730126604576983072056926499764373144276181289172942731554218162390737529654807734857933482699250652250007331120053789460338354258562966153837606029664805541947471409169735841526491645276023285513132807154689048609762574945576844206225905069023131698228948315671166926086940412222729112064575501523897353946828620899628595694033655217283894082666029291996604739434854010946924341564320072620835243867887177191905093790618821270553993499153758164866375335114010921070625409666672942981439272824652895917047704501086060481826221326031925962849786064457541563215985997691427069338131318158830437410779951006172341701348940628642701015288045135129926074940747904258676912716659840314639993660859486392402848133778105075615732922127921846269460174584440725826715193469324572402326700274685698413502925601706036713925051584082704837268114330193743279163831048968255940014986198456729918041137729952603591089301259506617801535280406552575273377673706413137434778673840096412762451255166746812142202256057714765134463416107291247215281519542906804866097650810161869694813155258917521988044400577439224663259776114353304763995097487754870992024792848387609688043501387626091559382728028186750682065304186690620810249526780096509390849197914076290087080807811754688293088986461208076235070489355305765067350748925448757884374912360504629774829034804328790549959176895164751205586587395597291867631137874437207466333421234260956368758599961654111708249487717158074272218313381429315117830860962361298657508937151145075961972395823267729668520783517784131975420672591958331108655889802692937718257387364875810822770081743590659624852516534308453159947461368020296920073197354077753664520141471022150179931867155805412066238329026815572298971666922260053434823151080992542072579363997150015087627475661804150850237978125095211929465469832300803794384372051966015430645499325174696593694534134684014596620814471134774163086413432468695388683460901045990969274888763377178185424446857164284852924511922317834428822727125274570783214631960127125393217371534086502556827669449943447622515964674264019522850287780919378166229351200468158856998484470459181613228832947115887443138685359572809671548680209387187002447876884227172298212083537949692603483938213404496511298844175879035503593307003478605282033627679227750160154531524492530174342867982137062320758941992996491617024281013306071460523895030809816333867514540347170996086878704627085929207464266744527884442398341044238227570758246559706645637890007159509768622642108755469980904138769299066100799548546057380296186210009943815396011757074338634785608601532514710413112599016726298159717598307511092482028820881273089777399084273100157070417582832796991167938872376745746681269379128168725944680531333068109450435101090812625859759518452593031553705357518078450537477367212373841218108420301091923027331772910964896582585782929079719397124989889382441621492976404178347958791072902569909954591799093010448738864365746120245059516067455076016099005681306716904104268366668485566429468627678718505920397699691405875061808400861245087222314350410785328200450388715099238982950869668845488947575076504924625534321933604158995659601245896274440539493876304497430758244913341748003128408959632212453500493165539291754492481918012045610022364100008998036688282077059432895964544274364170371454562291205368265999821171028380253176972114867759089560943631711923913047786711831069116836141851419964260164725141640750078887198402283470145636538249977475196867962919140237519504953431248684115427296161154904814515109081275036814275175650936902938040264097966410382435137259072233964355593872318930498165442482554473205558269079156030985408425001416921006074676038899688896415247075386638321853269205026903230002364873092467974185370484147637395983531437228728515686848271532126411786713713196656764335301154441759737081001511935271795358232443162550488948038064501301669156808143879720581772731861063415774467225242093546344106450737893557981631147342386118847793003706605587818081404326167830951395154790239689129061097259445392846230586128116646327677587484603865866886992725715043084433646335871190110256257325501635471763044508556016594847622104674271103713377362367530147310531758435890184769676548483160892452801647537059150520435639063394379336494435366901176197092872039330367517986752396589807814395122328808100863475783270542999266923096563057413745858877230178060243201462488923730189718072931997671154719106848981945636293135897046239800185067373853238704977804186688036842351277544667745477302024756471401895435576757227879987079946888724095987071015242286502505298364718774850910204598454920055015339965228248383497380620553127718065594631864257871088623662304809218923771796469881785231814952342399071400368018405035011761987446705211193532251735735053152535537826024087994147592562250436054947320695830363043612390715202152338557815005613671216900240339255545172629095413065964213757711073495930054939452034085830001324294818347427866257572983661400016184445820066625789717825077222928216482144232618311160854738446582505482276267093795044189290243190982679195474209666838632674872163479681410955181115919119008973279346139996932203478397823139931580038311528135705269498900618902104799390457007299908237076047012806837796762450815880577100991351835165199096880259425682116708670686366698965236937287995975143375830878561798831005092636318155441518525344085171391732310435163630543458366270804841886910471675868849912883584410810612430448137858828879187270214614257932074421012592899380437813982191838952565931372871562098345086438047933402870478139620479359682602917992510536068994893817171375259130866079423872714283605859614275202923123676871877614041802780183849382117995493909712416801746428668296598282811438721656150534443257908473105418264469365204635660778587994597288040205523561009664499072901995516584749304846167390401050483168703414043975395047038734190092140360230003308581251796432419844977440578302396235123968324014445423832875329137490054169425752999450502581946258044850248470015446500899040139132030440922157197457793474525451171839387922439701247315377607739513479713462197430423378942991049778568919270180836576195392864171864680139715932008891284953960871381138306133979698340686606448595303477572666480749125285004323040248885387278215418844168393094989718985432757475347425330924750990330475274172243946078640383183282779410976276141926481022726101244712080155363674863666881074618266876301363425455423343250284842121787996690123295897536416968854771668598652548757515965106583477673723273774917906884065198727918222045275488466529796921543159811371168991029243610121068831949069072625791006164160280520153174075163251887825016721778475219106964618317679169271453573530951805490539502843343887467746370570357588349796268766422823694091683513847179834742349592441483551194948138990345934042617729268806256543861272531455276590140503393059295305391880966135378428198441347609788415284143289657186226788687022840073188923654915479885079549904180542528153008633645978023948725026500188792983692824597133366282311546643248304795086601733657698641965922918858876691444554068048291515651408543609266991611857839040544041387662125172335607140296985597704050650520865822700374245411323025139041393809165168732114315748338399201915298179004168613993422655021880336811958163075225422319365065567649708309820911664782486472255645240360347289654907058764313227129734236560270746593906039739460254213074968704348232082905225683404282842607693971388469688297304769555018115596547486839483643673785837917352745259929135327741212675016106490870294995783418314444636296003387516334773544864225736373840515407658575606212433838793208232440516169674763905945164049910018783026428976768338873141367903450401937297849959986417397489666822154225948776744291927212113101671261733936830745944436799211345613301742704176715718114199916905665952557368219886537975228874822483424797788347570112919355356819310822182742393971525168201364497131776968038469400487234284684741181530069925016485805260324848086362263122932477232561074943527497811893651658673134575647592050177657124694188298876879805407394448575618108863813030984055054204098929284749371486035253115158916409700168594474149517947444458844258085910561410716958478923987617976857641197372326469536203634940813232105130389171873031721775221936008955461495089543184356349661778702260466420826313467111783628706786463404045694749349701598817352829509614210514271680029185430285318501222942418058372014970529590041667026352244667943213552238771503456481821386692697685656136065801509855026639593990689689642027483477134538965171990437319570733640642876667095364293291211475316893284917137220217415415330842990594016744171975478875489815743407444233577101294937391309739861043580126389087739885623691516240275027141401280359397001331496664359530821536089769073276839968769087616944915124597959428325974019201888846731169437920574814929502941799390764470339009668620474653668717809767960420962549250099663516174011794476264635456931683471694972095472448630063151554408587522676545682970503204506288677627722338484705368128422374431845646508646816117630169451433900411292641554110590796095414831560399977381647708232420773538803184409172158135709274450791403182112960222131238408569544685262116433607744339091412005140948724079991433568262174796146026367545985028935635270278490124089207016152155880423122293737497515284588138477371552776990415316397717260954960350739855253431983812060379806945828607257596493062732606140719251161657372547077558390238436949685354098051326723818118527261172335677185674888428139617906324340127264326018173417808676930968415400195261099020413365206336739847209717815253520029369195821179998744249303240566109773418548373108541605023176748579094646160154416032434439345398549401926142628182264722979299983199251571908178506033690018071840893594459882200127301906085791050477891949978938392901945505223671384188722492966450019226102202943444598075127549145605128801910132405170079739768401410941980076216847342537604730270632063516757188171640357802175012941507597966669145899810712961485597631021022754191457924842478475162772409655137795342387744278912683725111600516899346622927421810005069949030988064522843575496204180363976732743636158030847526582867377818076565801231373999957889520104131453034217091406808958151474810391451687108656042211196909233509389375209412702435345220384463790397611738831128214700246154098986175045312772246179180394782044082646966595404390534589177164269074259675221852205452479000293135588676417198797616112917758385040126486237695793728116350813561140180833903366534450515011768565956070283760532784910481611552738418665922701888064893236752627648809942527014707567656842705472852728831409520456841496336473578473833303478637329578134280924384969393160098654230351777828767327415771036297936183653117934418488314680375449984308549286066009210365381230268643151105147548118171193447295126678127385479254683867525135010592265576701012087693671988187969290226357461712500201970066614359475121396044126173995984759458462334696612092367461599806670425813042688971404445443529700529899830436630191696756923939851673303740023837866158337273749368028666104215865209139226673969173691881873094507387608224747100056712292429304641694561306632433354625839281190692687721004554261744315040339417161648182328881980508982388468823021480685512515000867348921886323779034803575404029400832436918529057940927763262217123252650308321767825535511704952809986079823573647472602925113792358227237033955394590308713134116655175289012438446432481047310110994266128624287360158981959369808302670791161759911021530047593355744183663802413179902713856660150595110707098794109701244310748565831215655212867261620183838781644199427370866562892167604541897984858277252892039662960480137713721795012356273110358640963998493973504508790308585851970097155675535428424186136354418551116245170518101232237920561110397302579736108604282610012190745002462054385327910061248073557863223144410936055669482090295032387413153823439045322934796341787313089978503515908939317087101756663940933740914026016611817183991084850439742435659836094237101811628107771881901650040170552843615677442095839667019875280281138562466661611273901362676389715585202123145984660350157556093862512369125904269779282022818725244579717359570167131402723709700007201700106442038977034965371175857660139726097952211081713180497239562634394546048219075396489639796160188016839343887337145727188357597815000417103858223945357801310775998443539195640918516496250814371494986978478650088305775539322568329094217723686106968278182793581244632908392789173005889091755849019921501289545059489062000494129669634935629991940674603010272160780355066170715419810882054050737392365695612742063641385356372709540472415235268486303250740788371455398252104580033323107156729561176953835013330408910365815093511190466220699185270598044163480410353652781803573421553066094175519635402055255417960646188203777803980441217956653106337111382874894232379964600418101835336395153305982003259118376458624001736000561064015186952610262754337945061259087313086933233477838658271061618900187832663496992588423053164856397480708820611588296357939202745054033414533616654606582008131453575682925282265254299310408621792545460952051305835633744524194476159067477017287325047892467273406399312128036782970703546831601935954803036374183668078940828993866718671665956218545253040625263124035834278364586904300853359315457541912044754426881049106568332706502342628598758433311703373755625461520494940765625419302150871807621574600314137448560775472016442272590840090061993932662983956825502351584883916451752585887363996659946488159905708154306972183103814439189408151259747055681084008579013182121294173650578567703114470438956175091729882168196243084135387915013921694705770610323059172406952177144851602464147919709865618986340805358739562525808244774237884346845854101711534260641149248475916391329009045811691308302607174588002090766376708844431696600306428938579777113653279103809509187529259456019100386027434974930741337889109331696936480715312262589137020123979436996333927634105223573340185242792858754719455932758340586348106591460081727517876703219947670000962201589825718696360934330669602926706584577635985993005311133957501314885936350010031253585470874146490041303633096267446440074491400660267681197003365919470557968635197760913501946653614520335569959289661109458668865265897433945926541677603354731516428707587554087313413357677586157401598477448603355755630819252596551359348019766721664700071457120359003858206322705066926827268726523683010351272347037093695953578618161722639984140947427256345295254250436855907760850431941340302451606335591293171966245673550579835024915353826838979348725413240964829063089486911381133599134605966033102748674079217579084358236455715329844342539264062394513994373523058470809196028978324661339161103275594294416968482764398190019228297606567211818605482184466729479617829666517843083663289402051737041379725372103024726534850076177821444787452098587084089998579838204832062923059247007068454651068023930388461952447504146513181977157329055490654597920362530334669149661743134320134365348482367398216953804933217336709224176397875891503429252158521260790662248668336071017247187661122065784748319526520714120100077396178640899417460850156892534082929033965689614851754801412170613567360353126962553727379870504222699241175215473458390883999931399220324114444264014442511330670911968872379583795432084856035445912541489436579278595520903512874990647467227701647546329458988144053066231563207911455674331854733881057388202653713273743724035348623920680479822750385464301186245737309605731552964737907438157574906915000894910437511437247202807016544084751638001425193485872895165513047544614992092873197250654616764891402300123013528992393806160183421172202416937530336301275505137079961031284942624812563659921439663170957108490521761854912672576436736435530868803131308857109382282911967772881424122975281292355140361776620153133798585396822606727391805291787249210758317571326822432456744940856125147712405343111864951456316095312236361956237529649563126021791274464435305145202885563475472432457988501224790727622336737981946264547988996503155334707081004696274644345135434832791478627643478513498809957792287370525121341321485357675238162518034285205963530229113288483914277251370487386616606064168889225594447381649419415868047152424277386688451729761630757662457859427554242677818579325228960558846793707176582567944388991683185158621632771341604310246163334247634360543246493196109348725848166993054883890957819018588447310244048710454110757479451295318883736960694684240000581783577488424155639624989512552102996359085293346646077520522502676628771150062102449352848192560583245740318703756699883142658575131638780069692481573059372858917476564984796348704136861176693847339020586378857110962054003724694414072046565881684355538084632000242469204391086051756091268394815680821522855903957336979774485091175953521223454098425784113464393879067928793368477979389500838445718956010488433219790718993116449483672653537459749483295928975758467926656940454827729410141837705467307410297861211210523286342665688719656395564324216989667622616195004570240686324025650051526017012361568404102152167107038550936737157930733767286991602403358217297924168852014786175397883529499058609434926505941848920314081478415056420262689673746877180871586567101788994693184075261689299713238767725702088858738419590476948492412705556354463208443271665799902861321935543619144656787456992503307554122055598790318691120117435522735508574640546726262607691718910728131716690025601958310322031175614013271364928691995265071162832705295511581967833116431623890948587536020076819960892735296703342315281670856569757411475277080200793068790035798087983927662153267740128405950972981081756241472419929796223675827649514273442633141693828326560108664529108121159675855383197881064224132840287381242730684325357420098953209080047234059038805451345176565171092690420391526937274183079306353998509049671101013693908612237961429387651640703136150561966492464731662677345887195861922529775830242360688023824696730727402214426958103637302263655079200318307108380110419082661790897036521591558187841688182544052930761267802463906794834998938294031949407290646734798331598697040400832939614734223691010757727154689101129571674329175391378057083896136054080424589611393913106243028309295607561164875812830503256683152945053491575425383994076676565904957882920397764893299876839565287720094352006647528913330296055818039444909253064879427868331856137779735868485014911401838117188310677025440896838439628755789455613198771077913883162370027881866763484660839046908458100706156657559149603574729709353839578281187404565595146399559685890841384880227580215697989022284255535182649828026954067800235536561590399223001630895402948583344742010100163932911911546480918463440784316384359970593421435888305101164059529330176017653872887935896447533572034891844430277431724995048463168524999709608502152999334621692935467882069262486077261192056829464911226234517547900080562712461166379364940587087225815935529352444024978876694485585618727684542301941264976938362311002945122771213988273508576766008724544487760774454457388909459534235519761870465103860894454104527972962437673273144841834470603276384387178652957786736620502305538516505459752022847214316098035455893843802523473895743610118586661517443525740384432353588324164991437251713971034051571317642480686610414956632614381017387569071518549827412625900689358525800732553194861279668155380151046522051785255323635611208343675542113575692847586649734186246514924328906342165324145473471117602552794734189812672650669171235742808967561806567488718582350978835948157947205026464193410832891596965723907870980942024584859012960955209674578824320692115849199261196605501604643233031467191305017989583296916019914889501304242017883926724689491239574787645239654756568641643751340513884186355347578153354699587163623983710924809317987246167492383731019409716030689127828147755004443342522386947475418987809951210967805741868253610406115115555764057832806349444312808631758245745464291986560428470801155343019599283294154219984516260840678344991535329784565496228353006707921464728666123115120538254657390117048515726505518508469511745322464803365129025289602366968239727829137387087033114716243759704375516383825707525451678902489098708067028859614454065913181864223839003775086983175850440943624099035205252771490750037210951391378209567489012191747183012857600424207574129896234693533207439230723094812086035996752254795200900127881077410604575838308711369727844279810023729518818911018397049213330797783880200188494538732026150557476977144664794476746938849367329665442868219567844658934546292524015824176431802038206391583468503354973453929264580564995673932722031303641679613561751494772528115448461168299724315407642956628682269457804798205543224373014221420291755911510497773944914121089425302068485513477154719826937150697543721260753715449413255868443146217613810274967480524258468628695965983802451489977739805865216084186619566578242062527901573775683329599278231573494946100099068015911005962596187412778603543179952762078856814150729074856161057791107307683496673345365927216417530409286992012439691109141059933413555474356228293618979280340167226802584794182503662996468099014035290611469941619106749215710101199579690028050715529252710212933887349914348222567052113217431404005921130180026247940740381401449641173326517376855230125661100193735806073997147390847652497040166181860722174425361998496970140717944629581709595050157467342057713332573693431131350977959747705227247930383512957824828405027839333983783371808622187777065794223303130985567269467905985797944272603685545282496145475384171490115674416047873291650902644773084105560234421013208403322662214177766978959845178870515742015990157835772555689856483625075648031965425573055461086167807508102105636841863324016061268218734444562924453288932041133392831994335228605187168810191029628849584087700286263961971141305120056357337120257865543935032488414360303401092139648029860713050579649730826393839320880024715079565495861507879947415348017164347427680512735476960702628744221334309954388308863928781308132428075992840391137754979335699524405932776234648360956834112721856877450601137799245799074073023416956617139012615375200216731269187537610784376160077246299931691863560680359782364888716650103533629246876450389966595624629346355575706493776801524711226783595622206614709833264878929335533890464983813703629229825573300850164270796059538975949326993842557507414365959074996031722849953243839652312967825847817508151929767523878549644542739163410074983602346091573743475791048179586388188016976954630273011765789642214505356279917588486983222111697495119424228335879857005986165090332863257247527362652709178267839539383642954103117368896931314891153540785554961886278550367719151778495837484367062671632378994265332763200468332704353791205581012506121975360520781558102798685731993221522837716171641817393300182996692422449397719104817910586158170118885380974926767797929308651251428989347656218716008835437014299318322188614719625605227913679432161299890104873873926986057575764889988605782421483906474100583076492253038340026829338062833478743880240684550657022248730874798053718726679831836132048190649097255895111460232291269192886429275654171140616715296733710066893556438369111597669271878815920026618478128061599801896485513617543565059227398396163101072702055135025998928506235688243322389511558813266761410028732464508012878240162959206121888496350052465477945727487842796190535083962083927035576378367222326108122212168059708725467111747127303972331745977146542146236371853835922821364317274741760957241015843027934237072650407355161445880342005515883843215618308396176224673463648854705114555335001134791244014846459600546604296902603639869268519366592145632612684467467662882941520886494927923680955750462996124340487748890131759378338384878103578578800914499238008908627164054099586697573330007331416504694581162062480974666317496430559509612702132983440649103227101151362811286243755504420363898523727385283383154256556061451118939699119368407398217356188963026898136660275271856290988715156794189917068730048392959166280458756356746771732287881987331996158369671483329467127033557952392688710341500966649003258459310932611992628580906485931393115614522727501987047927042201104687675904594493942091508184573023129576743238535148270744137664134306536172019608875577945728082882546950009903262017267456993204177255831580074825372004052599613453779872640577208419366281965645220894423043543425940231665095045229593938881479473281765822374598650544156749101842284745391216577966463317533765413025187084126638121461551589924790568221625971867686481152828087742739561018276148179447989985865784974824228157681658656951159459934651044003322870505850909321397489810821462534150146262384329975018808274321806004932101760803570948385481533026270390451871581406844391731387556718244912450570141788902676030073140514893244728918376988014169922408222034248694783445825287800898667793295270817125410532620519377595680560689774221801805288954886637079473485026369031870818797998038093379697707531895914422116422450308122543055281011881382281228435129467220147130917006252376561865580549967131742782370939020424789451691955454389577961492521216506596662134917056849183183110631804476663452479879924151000283559251732470731088828472150732886489563563408908048907312646307086714965996738092613084784785714182891866966227179458331511731530041786686250935752716399832158487156068508401281580267685554553809737959246714733205836107918609785085870103592641518648246525534631002156767507928968981461937930339750285685391378361200612716409549982132288845206121015297141060697779898229570877624833969400232619720652819561295511782314705518791955742660479944690548642096315839687013987853919669123466011957012099589261623379126151853951731705928160138809712726579055630855072457656021268378557134935738700134393036059860913962569582303091377712699124465814920606742786768763868621655227957222542277662081362903046447099097944394171724343148112518350745628278695068834850506180479262885610082821624832525243495648567825811567646595620730610048651114796800680370640054440026049120619604872748209497948347986718208815418084690470156543165581636151143434715978073054007772840566422999192424857366115356085383833231490544504645334837979388018169561398402506037512735426589417479342459506130162698916945236347360622713460529022673970385483999374611494410659912650180535968498456832824417051308167509081238228814606592516178588684287248785593924969840681903904374203623641926267017384179465525672541612856726134733423703488040493014317965592308970912998482683704535773009067355966896853878506300364913319814905299937218215734704365404563300458733392907463478946538993980454114981447096337514657022149120686246386970449958542069425140188326044983007323259031438145393000947577556608865250916199439176497932265095732957621110461395759556328585125716427787186485747166037713538806722285985768715707441733394450222695704236566550919684534200582590218099722328245856310671699975963631458956665929480098169953123123838826999535252516834716803307975484683280126362600015038716033444812539161221350668460589518715480947107728094456177924967015267633194489945313685047410026121874907102507145533729923044494453842971780902321558619300466311137576614050699221789106544116939253009867290056261510796055246552044699769433860852867828550601646866740140351245281245377046115115188320221207255568509939134194451919504273933107742995139317757006756352768837339239350175666784779309875642098633401391837130801369540359393434300145830709136927959841943771021260813606101294907512501226915837111242384935239182687937474415376863896639899565681392118524879072844803272718296672798361461718396432744475669286188667822193025684287253518654658481205075010087573552119792894333536361752915072039959385353134951377962018142428964953631876938893307810575421668324364355372533451003484647858185667341427064833228221670033136275950516170507204365299958110917807495999222672410077094669819972268003797530434606548762204944541860576580485771197831906983193304801038845510675747798697321379698976855781358264077790123866326463010877980673414850283605263997686787625210661480345264944710330491235437286985579412948551673175688358469067146249295611712125799959299880563839767898415652604537469130994381784634367914290546501836121373523462290925767305167366538658847817041247571668097690575363375949152860271360248616130242111935194938995471882774366810941702054805267972619307157523333530258232783230455732941295216434826879608992859712494872341470979548993292872487668368685363797413358038548847999477547431213139821905961740056887632849386428958488687645135365252134048013629274740472555039098552903953651608782713604487059094925737525289045283809809199735830337823242951615934384558490638327176493841944651799820154672079254815802149230004495368484915159647815518102496470777788428155900389046916823148805047934523918761103563968852546059853420417741409922778497979703995968549327456342986882319624041386731449128271763854282861187906504005425232842282749981555311714659776985980544301000907462545725112714785161733387823718483877546940252875856413058552819302042216503728298272275233153787806990824713908952036195529832073352028371732662936076731610309465251389461546949040487851359264619379511996875203304132428920614294174925784688521451610044669953139576997839054609718477852325467462419386885395805603919408875249394819796271399867765180234170125365142402926114773455362212539257688922349648835225941628437307524260546741317442051282649947289207242106148956821866019428653941091170809074296490284186799755023089207872112218657987675665313800184226243779564933423457848293190074709755978756946683259299377565362479015529721509537740051865551735390253281787610692483353132845970995210740241081051367073069483924122772029968219666854427983212134555148771391645715178603407980790051226573528011904974756163549858916092304344440166106970364555944204535539578894006241522354997301642085814025578124592735345007101143636315996353474240323634246456052895037469819954038041135333613252593716101902530426822870692626839108268872500598746815779549233103537971666407491149318990197913742930701409944660864840244582177585469644265175638608050593418265783714931946248182381410091651670535999206399165406863072724607749302939837029696243767125619416861316678486303315706773742593988104900854763812659544131809920651342239910909553096367304606443466494431082516544975878261327451236372346697283669252744449937343514999928064362183607054356346719403438502110458481942187555372815512524213978185012199943572730977188837407116403203564770480215812129219593091589690653337274313574878294904927176705626325465964920065507553797886659558349745722442202778271784877882089590364995578886380276225353406286578097108203502487930622563759636579402441768936354660292942963008715541033420377924478258967623903370232461326616984127498558402989453971273078375688669787103298430454666575892047477545972207733299106491365633630662906049007811212490471859916125583887881637326080906119659086520635536717386392111648855936317657925010072743589035227826536064824569245654922764202571876011119191394295661149843725454555693798988723377702402004605161120451743631948334867357726501630488591578637374029541506674777213366525996467842086591347598456402519301500040970157888062978035704230557315418170469021096107069420808815400722613652866825108876983576923372697788645408756630569681439473222246429349212209958693360894116534319215095256562696784006232915026809681641400302262302519271929277891228414285492150992783287556151760300955555546955889620568867743877222360481839559225829797316538200094874118236071894905970698861760858648846769325656080659067799267286749600363441612774570470429095233739779106917954754301964409353778114130113715923008406048376660216080358768205990978910473290847265320007943417459780606832869655951294433116886582061348758288455808136245548002525522130844482845302116294803721409684013750068345590184421547318625751853794759329317931371580056895845187201581105680888693412038796096613884175121759565217638551877850669827517627825330648053550677723360697870825372548450906234129496965248499562862474336556039422494086727123364844183144493596080571011505689143776738177432139937612679539872721632276024162662782499313838970207159843618395635649161592078495334009054445703721859976481304033589653800060869788517746851638645548478481199336623307225091848257473716929935898379088075595608998040222845187463834663678137668837101609581564548731415489219822591489778287082201642889081228913312982536635831050864501903006796316355152105160063502301061824601316102669685338177784435965523757462312734550159157220196723172838338172863157310263630016709580972789949189556951315335231301150032870604076402507802469102801943335688522486691612026806377685328798166559932132708798562024477748600836340086559886101903148958077651039036947402187657197037813840096346589396374280550013905595610762103683915441825045537925375763472440384689500110376845394476175861069163639973677710593450494584956521854127269884211390824144250474108008362589549227995858781963078614333045233238737867032755076628981469777601872697742736426238031919334862925248856473496191404735849339263894000069321633044470992264089266976414041802972617291799426134818312081944349400588627616071133071891919339835553832136065753855005085658973852715704947569952497186221896903724658184105485760052711034362483436233286257149749751804019862557295120641041176492421725874761760957866469451841208635569620326146149077017220344228338308386908871581617910524551561334114297953451575437994368921667084468313737654216108924055163364309214517244720054529419346041962155887411205753900264580538516041183676657416698494511303302954333363771102333198987193113764690987137755825826490771622874727253657998712568985660108842754702394344800219548914578245950848416810594682317658600581306035592544216016186235987473888078388198804409864471106682226949989806531900067315039677133756948115626831491203461568173792779570334792275180585211720727233641121377210539624138194637239801598284931391827935752219798297973579264761599149402913115032759483970930764319087734969778691509392743844393619403680600174805625242148359932542187763203348725493528497528965339350448555818608263968493009011511290657540584362771926933736577811358416912079569223745942026567542933858946000018258959699430621607386857180723013360177004837895968802171768234836248323966399052128007769428265813081211077114412745237512625357664143996639356073530268730879021210653221268962891369011046305917000478747783339177093403965548160641488614875667532568331596301120159860755097089992593387517363801766585164687934817513265094773681199667522865700047836005478363659772978588941778757352522538498687969163111044488793200218923854122655035383818530334921032501655501719930559269665678227633734399460539489689204016550584024457799607139645911535476466423488056040786763941499416352527464776593307816761018623988126475646603315566860412220555830624089141254268073115372922008428334542939352341774497542232791339302333467181708011049486009433618878147443159431602801575092895793387114915422793726330502104710113222947740954432293656713038742201703240026069184938240046439225679977830029916758094607880209579467320524654120262812255242529323785315827205644710230171330666332089448493689663709785815762158465107261597373514074463287057736150525701836856370100091574841078425741740374132208568872453191516109119135093720663417655023417942984216397813457150091135184677360802480266751771459317368561471914627384557726089467614237365018029536524502606590475381401421525759322561365249691819389344953221326244360964496658643694992654677679925495893744618354615716618735718804992477224696511293134423128536307940645154866109204433902046612249480559283814880951747846559686982158602087848325283191405670593810663674912338135986100138604313786746004581553239095490342487723111063243467273058281366635669415776169702988668652052948937114726765791157363548867727613743548625902937366622536027728490644363265120652983142641104738980066758671500729455312927824724222351908646022883678686339708046522008808173108353561036820650166244557973267838204781954717932002811234554224609739233347191701745194089211463202725142215063986372371248406331682837806089029234207811271696247884079551152754468652764825559462128544348886363941420345710048441971901649975735333010414689064395666808000970842345089951960784708472104641864225177364536703439411855080567741510284657403873280769280339507691040123929540060972053505810005287214888731356316273038123526032477994786019783857341280885486800100941744630669982359594215864531443680278368160048780310987115565614751229622936122754742726093586297874798688285773937146057564353527126145384256649054838408540106866060624481673174218195976396523737770754175893361411214169679756936605599174521971178197973398603541710672742334174381371148924589376999658624450479277776472602413342890242509540572959195862951073814557448026221417775787225609330914453971670730848630910308435545547863038320238464480191555577096011351056016437814483705270945367222858946983762327955082206302154869579401412377244160775817010770784669184778379300493012063174663069258211673086544987885220075059823314862674863165063093323236171238604412701880082424674944711311953862228095268736472915219821795456770907531866504963578726073884955855435473344298778778033227916075144922680912227104600116780818753224518720759533238431424720592328315901392006388219793475813059800466618572295771238675856729808959460785854577144015817574946819727970044272968398344795721774563530859638615688829870245092002019545990866912486914697679546128537133936789824868895476415212942832852540963983788495856087526956764193538554125150958448389999996665925887012254427337551415335249655514823868388341727144081674014446354251691639583157906955704910174338471464585288869979805497400040741527834446862082913193986013043568554321015827857644754606775161611762606580577031300472444615008017110598924046810680662015541359707409080963416803655408382461822990262894905923563637687077370891848802292781261991545145448539840018618644631653125832269150687746337746985093155847843115356017751136401281562622938702866024784012671997599204859999166999255824236587049224300970204439738386531524758619839173662039466478871425225271614334043992268129279601941029066176393788402539950556891432166223226839329928227400208108048426455961538257035171014104890510728702028361528188212696335079212997423670128393907200927849261460623305073901456763373125786777656874795145975021004722078697346032477608861249445996733786936442895931566855342218849312842046543620300467081795411862006662434686113163700350898543088378679344196246834729101499625863629018883643687054279568465795096827609137365518694687478745004742250345873729018923437644735446047893000212878717103316641826324787110721993970510463556857771454854674345699336250831501515670363100719778231202632066392214779421032791574242836217238310188931042725739444412523343609134138896252561522625603426217869321140851478411852537328142421876900430936541901165798773269883705896905934913587817464970317897159092479677988683733067759009563701397021302271926260658214358959323501215788627237788525607187468817327469197354123618544401993673673068798831243285499796183402006246836706475062386974609962696734059082484839222616726068551617254918187187246223583349352826066762385365333034175700479569734007526439510061347537184394128935293653884397892160411596866697028060402691009135370744202002492527125494774139726909217354057420415994219915690559704430807975917302661488356277444282273485471664399969522158366813021398863160800247259879451303277425803992561098920554460226310113295903016526625905580761299071861825931559515596215221537081035748615737769602729437053529943493343473393347641016312170722137169694002508542818080759136679046580645585584663543352969008120899118777957535620722889373496319154646713323775945875690940739064235711235636393249913833093178726968436785009658404124889597090313949666757420121674234658678919594199916277451671700982236351286618548575539876636095337535915612729941529405670603393745412352919602347666968600146283408254505952053923779290850900963657982522297342342107772318218545030092473088290042265682035190515677082243021211334962283186500438586631771157379632387330785420292170083279741198189781040400594436523358538564633883863237056472168223452046716373359573718856042262124954359711924328695866209194599856287564291937384455693230647923019338609880996582492089892988085943716125531399216699959292605631404849003716673048283073455757406732033008559368397749552752042379488641985726282269659728342199237245638378887698071580341625161335479228161674805418999969403973627215392595241123832587225713630329201972703106621207615170707364094189709383745607603442855587345331953981381262557490630545532853637791916199120848338995268700345921356900214812999007692369737698837144141237364398657664645434643056484370564120896319268755478034986923927405372374926539697796524525032956479887722050211053746370985880530393014651103947189374592090824061850293118445383468523087187062240172310803510480418282617931063212330132707371119004180147533437649535168262358593805244113210177221650702119168533786796725039032752668550726104001122175284561561691949753279466999527635828324863174293908243693790855523817649856059179667403496024676952182849950760445750555079265607289908969215307815759901002032490258830665253111901941501729860072659775359086969337545734836562293500544362980943827442052018217825177527119614279568614586144376093595114652570850076009723434114976514994968221358059895191762564794260985842551335442403801197940943754401474049113235272106102430917543356509030919964645421530537480820387372380122526201156241215611692069347892013950147320726083519573886845314891824658292288928419470442142964114174908290657559363432898906274822214613813337432191653716870407751524005749103730106887121979609268359658047583640359102607039757050396017553918551193353434357042784356228551088952068902106156948865679700090342895367681114897863039378558000907265051017418907410051469913067499226103570031407871033575044286282079966210636890166570416807501168370166225886406970672635784107836278695818978633843714252977553738330482862872963806029635194952554559212060512959375288978225561294450733842362890464640022913488714523253843515709576036897828640122390220774134804148163917175881702096174862470866259749062104430393413730171700381520209159896391320227067854965706513373665548904224403584260581288263327758327229308478679064523192524237258239762921394305409339184897050993223378844431183596568501662375193380691789415190658905502287341714120632519863084228417744479155352161582928805232894841107066312221390130015420915152194729238438034170182388044017266062504802267289697480989727040709820658504158150198844510479661847948892859321832243913571325582375240119545190235616200204598302549212756382333905281478769624775191192701439611164900849432725350785995646671018638336221462085014217079720429745917657115579078447906667657813342012209290646841251126942373287884626281940829581081205576642210904660778250230021781075351202454021870723252373434179334706317084158334908812030284680866788721073078054011592788065685994050714431707778173576418241368360040196163763408746293785134605898637772555658734872654263406932068947963590864150246851505765840769461969100147847886469587776042462476467163691029812217006723655547502657292890921230819960354826201105010890835466198995050511533098086365935614538319294048833090604631786861080144919638363203643950580082441229665451089537362346117999427193522574230923203073396524577650070469691085259390327048092837456193527218210879227859264322303783838655415704929810855150366070565529701460701792065699164109229385819995068037673891812183489122752115655439983586200362773197526444836393341762183134081349616815616479881188132189459120824710836994763761905563878395130067333101513539490098581801040824253398239987835825737848359717315520310340680988066701411493055302952848250636700203311673204250424301089868550620246253086121160061808302269305781379725347729352498096551913638174342336550493313520257177923988692641668287316210611104830754201074213266156333480388325912355221816494396997977372118939090596458570322968423289431883844376814937180602794211043345398638238783647504513040456692407337929762410308959163013036737006412972456692209073585100260651608695890718071461367438929067708365197583567036447606022076371037309836491244209594135972950729902660834706499970381559893325454387075390328311839105464398279858334760795029364399665347636263079156275758443945663322679937080638832308463681115398315803828556396759619250974916308950463766476999422128125722278582279097964578103645076650306182487091695438761936851742628784943035210767205385817228332010317588481827970175766331361815176990340945878079072329193666842098829474826096609069873854771442728801124538641958449412829926467477262047949198317136040698446900205722960454638983009715577022774979264925271367349473131683386334012072048599039034055128518975225081814030690282099761111490652882409299834187846030072244835316228134875171340505977528841162445595429559158207064525410405554571639239007572904368495497969321563494417458122858174016587888926690068775704372032186161313963338858772630142558179124096731934144257215771642733390678107857917609599200034217659727654307797975865932631580068445733645290678950341841776228072565061884496881954362052944287584000729442447860261301882674289656346734979751999449353198664374994450489197588244255857612575268222897164019142063764133771073670854465584422813680567839177338361190894972155431781328549465754221306131638004496995956874359213314874621299111713637566090113269401162027387647445420991575423335193263505420815795776738669639670346039956104493948190744737331644164394911751994087732951440444676275045096096237557619178402810469341584644720914002838083233995404035013223281633642729126653523682110585349422652517801693970971183055822733096234545930112642162571240343850604307738493901710957747123520443597143671937178597163937157868196310172359434280093794460047615400129359240872286362084188357486436155098929561135838721383859794417741373122005414262051413644929246641061066389260874944687816066362516366194511744849671214628345041737663779435973638270714310222319740209226884403564330344941971717120668070808264653165783670294339146404697435528928998048797794826769503424839222749363134122900832549598515520413452709632529052928980176392366327899491613555273432201031543914593780058963654586705794665598642585877845376277504412470368881388099697139411609473606396972277528307044787722067858559248263929054521925873567046287783291192657211888682385604984478009428683311343426223347197519639246790258299234047989707423650424214357100608970067321823727637805021236991861522002281920185934373270457622182310594439815414351355833354633842185182019471481213080851272229088773106907164544733410614448387099048011772470797748569277878259098472787296747665341182923326704495958621622913489151276899520033591315935900531095063963774388083686565466197012691918681658443083879155205338973338366841879257834779150025302505836034875450551085679875965593768334420637701957480211885537869391607165373135984770626367239411969532659382151624935499078510978815890371227545830180367616354116637387358252552659714702989419947151576329842186052936293167526784367271976316367100779782688660980542283085186782466274470836061643826039807208250908681724370342758146533372626953632050064783484546872441431732353648723462832730693955626453378512653835491434481752883959938621416248104452175264935826719600864539277091720776922593918924813174801967933875353464498408898372076153156144960232168859680188698895376418861687234537231110829335456276083873990672805315878048644740667191116962646760574120980610899213865995521073967387115881873472547860438289358111882128852497684613979921588924291985656066387615246774798056607265290474097562692961389091706115351469403554311328332279320639962138198733206028800793770240023525138815336253246467079274146517575894202304604612667878743182370802476056910893520826804748158270962053801984131501753866335880407959312265476018019343031349395181181171971292549700984105525794068975898644800272857630405957589134134204332937402361962001195842129286073778400751834722872877510782718777115095449666262762466876587705367344840245733572515681835349106758286270686538215717389190254312063829895522741976650606618211010298070237321270020502504682250254784524575017044902832868055764849621416788880103430893023896849574556263511023536905701583926950654599081533665743446051092912530850104396956090499439981658151384133916249179578081415591617037854041202197607735662245425047710271692558529756393873121056233877520493051866316778738455681674531091378473709981188399034668323703220565393067870033458930948002481053741396706847084475825157396778138343352076512735215740020183821759971200341980730412072146291994188858650652961290148269773047180257510952863633395352024370796978579132242825360333336286157163114134837428242643812923757337297557931465594086857657454822951271868109873689483386877319118580132023738698314823445709438025853254926117789796346843289604414611548409885717192016904625808269180069642194270849347250427703018438107463640136363328533727277658263077515272018840759344769568325239322709517215506263884726612631794058023562816657765231850486659335697154219243047627785785823495882750601625110274627871009818589722363507636723287717753817942226446323997277515756874964806399294447946808121371176537607113038376721941206626109523423069984732368958224804241527372121749195209213916909759050953601288217068781273821731043720479373409927399136961493431638107377184020907049501357854570887891353304389154022079286590542118674462599013579364339601723200166075558176574155153108465146739199963595868531597059422275055656056096910816163783363190786273105633069257891677791883348844403628722922353826676625326460331528352332658989109540413655892947200678730714333392972752689878759208614916273262668058277163818915759791558256798464752459031032210425933579944393190586817350045462140030047479163855658571349508828581336500295828254096010203215403183655169941628749999338851239024253851663711892743799658496744650555714703759402924630600039505141444219877882585661283612260343499578659554165755757626447702900669780338358322926326381947835647000163349035961676370352686104216866753469986781503137426853337698361903054279606533704876843816750926632941081582458828448319181829775814442794268408692466168508879188494150162992939521070578807058292193527804135223063744524320350344626821705951143896383427779887156495569430288802401732992357874586238804362259990591271677950402820071361302577103867134392641842230051689157640162971643101685350887255582857522809947815840267013788382125561279061486917863909061516932067251970527553597719475932721379978885058955584288601188048952545085297003316676513437453108432225335478616904472501934573904502614493613729293323707748307954468384982550086939961151127912557926768317494499498979920268403929054508798704430915413017557430542719745759891595025391162295370515972417592027414660400059241896892839662761216773161546916117903262848226973087520988594559185580263134047197373077710125754016549468021258595997572464678880833773603797807178978652665110223604290894989951431309431688197444167074682350794894868618858928626249735428520795269910883239639610934580847376224103052841355904717429109374703128013940031606119000948653588494346554305185947971760050947401425938868196074577358940384060851391257524641429904476833602059195736982364836232162742484708461245885892346535177453532595252370042709461628927079829684431610068345152979428800464013831182973043963352045586796842995166242642718409801267373564349750157113844517098950543796347618147942231460921710128953655667042635942926593411584319364932204450441906144896701328969311869147175720789956485524644962336151141480085002456000349988845259278010954176501453667635361034811363229693397809531872127657179795224983459838057462602945201829855850814153766473253440071861247863013307824061997241275706121884730073668570117215920903470194043812886152052988552638051312742842160241790954938453477085404984195729914022940117743537603390617782658625334003513867213256347221596817804348202686007766895803345944615881236187923105077861618183437439825957398219639433145468275401252623817028691154868515529205560370067985033424454542727317331374042594694051408000091992557474225825336020251642245823016606801214435426144496366775017869469909666484476679011352414983973045451786852909068910066195824977884833477780853528505982379255313158823615458976990475168142274233328438169320001195414149120967911978921037990927489445710889141869978375803834967460702846492496066405512098530130416720921104105597809459356557751268731986123223305856138682087249814769054916796616683342747484071075324541690097394398816671223422801793606040920740207140009154574333228136737205698788232518243392344706271440184522707945314606153794163482596587823163580920840385535729128815963748821674086442624919416822523687438302066316748129500454842202054505527202864967712933412502228316296605367489654423537486127198685831161180457938974473297708903567482165626969123985644689383561461721797151153915719447865303706110572161004021161446751607706872654111187618907879965799902734665919283900756899202140973631004863403091730405504923413853542938742263131829372596522693562296877235975680199902312883351764275174379700897490395195351357900030941016659811215480837281283261295022241258817383199091470097396515206849083258873221757884762383540132468570031689152696431916344041519666303627884467523191522230964781812479430019231170097073737702718097191186866667071167693792813840232167418429461861032816973927802808928405288485172495889581997559599647142876706288260176094323785454275268506810634050821519273030437213040785725777364701339881677264012463279334801387247715834435856754931440974065253835645820986079452710915355571616656511328101516754334634277616965274651668096386107525258412876094942283219433968477025246406774706976805338756402540827234270065992702618482114185460203472746345830826066379034433323839070096014427656935526730519666494699872256199982289858070990746890046495136243050877625254158761981007810475870876185738083331313629623922743767635783938511877782520177385386977434909728868168926786517820431294514183255622282810309292482638258597267870422607427859510141694521679195329630403546507971800617241726884579504779155275856574739687187784550322185028879141684472494814133208478712043022473068640599935201934858565577287188987955750930434757930662536509305840149495890996840140860670986167487303834213615515294545312926894074175953312914916391526836380758747312632618622224752393130900323331206369976400119590297686714268182940391648046767234342398496674192750560891558104151629098452826150404872009572191032131724035482982320377366465651783350144230064858522844219078760721412521505977241732625003132508509318624079310063989392449808640876751453923137413330936240530812795512734889317971387824629027957389904866257702302571586212434836999405299815040130145172224291904240064210228315555709439499169549744264704688154256272531474097548179062063025463045490681416421507141454014765570567701242267609808100442841362239580423952250308105070221029295094332902422281322860837418438499712645617617548701441594839925478634568132769425562936565718456078422997906513772138086699762380172884222248063702610149944252202136929906822345062334608035849751687251310678183660799432054796449067740176426383018233519239333820324905761684473087739711957771609927248299537462178964687051288238187627110913326375173667793908040764558494112398989222237040617228579339166900279869327527777286862334779592552743465515981429999664245969490657383523900968735157191149093401035526123706418062009257387413254135857176332799397441296882294771371018800987416360651735297997367824393361384017467049498267897029816152821993146508486792855301486572948732082654830104606525296489919835539430831096791718534741330469863007500921072625720981625550589962511705009109325969954830778863056796069514701837952293002701441954072001444882719983283466388268809412190936499191801970152863667827544078017650055481240524951138022089490866683923593886380263223214667388927987857029906224499240624032431179256693924985611159516099234613620262750252209332084671617470688295194904962364009938948254021883630685700012992841755663925716079879358500537999152313756427079324837473839731500388999101925734230224458036804442128491830847303668164574688962544790013489036023379395024345473310129876913292536615624059944889138380837152168918867819756495108602045088538519691245631323252961202861730073796681852760937791283606041333534551311788295620238184891073306069689035902134249123356416555480428397642422373051594959854867078687459775224454226550406936739960151761991599869309401508779378417308717958715481185151460230242861216719021424941000438022625710789279409244799939636119755970397542333509604852060170239438838879646417214479533488842824268227508855876956777152183853871850756410328335545040325102756410010281856756701329896868537387370416795645872985950491331293224669652266449899515834621672088698943328202821157155131417463980579675425077023461350800258715865038530974961329752908118686890398072684246682722539938815324104290681843366182040995640609171958752867101832235816896234508209436334948487495373308822954085768183138850445295674729685000144629858568011269762879591772206002699387833505482963403806968886761000479532500167931401045132871452429327772185855458992753503388784877773668013090976935912397870312261020088898680847660206583859783828194074084261001847249650386624486047034601350882944370789221775721734518679451140051889106444543418717990087933170858056858743941179817351719953528091287255421259031654156435991491069078492327955254014004198000182728332271471263220102817520986284446702134106998118887403716670984798210204037904280605717783513462116425342128907606604895081825562346616569439999512182327082239964504597293451868471607774031793745096410735821431703024550738696588476070579824655878988144793921196013067377239942004932711096732877532508701735273479418551183149232456493011061620725808116662390450039469966857635578286167781731109151638708210210176462091633822125100940732592159162265647929919046163183804957397993496769441471091077752519232494883618263586421888856969062897893949500215157016900223999582881327679978649631964091069535606488429196504534415109871595767338352433584556994748542298168222286501870789486273378817017163344883275134084155805066553857680244789278460074726632627961134189722516972530179933314726979845638965345585534904666295657572551236412164734087806513946718692393672271350224010713339331154718680947018109048368029722442446342545384670556064318070754949954241000222903248444734988226236079171593399887030352428489806849300779272565239443688745077366925293617727177516520842048032299492437160070534498757082187311258481581427974545940529978708868449769596985683894291813771162076678162090066225000791051862551748956281019559665228561455020813450018675168799878793528036943985674960043194038235394254671860778116392742724253195193587460174545080183407341347343302396984724321152232911869410175140793313743228611818390604018346077481024734885576696381078076060134093438114852921457017232263342122773942981094161807598698889500269034511583879928829211146740923645992928572219899826276252609505620124775323589466234600281844327097475260807742101702732781178489732263764682109871899246315200763753426095179068584323991047684106072666112262882563834796308483327343920970347888793570657708686303349762744495635857741704513684258733872508901118298010829155672408606755911097630901985297790488351598611827339682819993590890248738378665973688265758640338161251607174502208798645539425840718055312806024997940942903407888681183665256649188730119679163468689168403657631132211865679161480416772551306022189401263398870174979506418563890605576025497871592753489396399465807300099456772090740999205551978165916178454618635583844387734557494045779721598797467661961190013709734106202666979710539251322694923460914496307024634329274824770626036545918671741660036419721414689385055913422966936618399513720923380725515669047909360121625213278771335941698897966449620863124290154545990420557961356067332069695738092614594483977366764375120567510347454958105901245069761774408292163688382998135347072459858641018327406094912870984795278827071881134081184247687345139252674622866076621920152818541018825522338604873572897999664520265229168896873944642315610425692754752295659853206862309577379066707262646994428641357274495673934739299584675244187855136676523784279520016884273368261285461781717481786667940981935492728462904367676181252234701514704173124133448145180223424139867161347147038801322951672971905118625012684608913932799736714726283526825076554643447735398519984987342884318845849285892240955082215599610849541897768012500474930664542585122232551720137815643348361622451752230245390630004430612672961638157165023969177947104251449700330438401422826116794108060907896320411884647876864436621146067923152253763506442224175056629201055024320948582653949582085719826741438634298636888824992174585572835711573588508525194500051979059364373289012488479681611553956673843415726085940444279234788424813447842564504733860504697317060273035431426419909432968098877878466561483948183836663442363760485259629756304347656540219145560690204422823639670478714549381535902671904644310738334940572656676121350904284367076408444890718888716655690310776067755743735541767347881829815241132453637443124177302732194396994416029309106441694866342874446024341116301043121198858463333345220692239424807453727179929613223925485659078430256044447320936893049651339617503124394024499128530036074683639471058273281674710145498098102102985932485659756558977010204205981902958552314038202625426316653031834974373174140394888658011498280245221402542380764557968269859337121479775691058926374092620588127104729459394295351635807011475571855840834428029788764647138434271026992151703448251303852207327048402473972251949322400114382590646420769184772105865038434785585018057869518048662262567316909524824363893676696823400770402801271767709673190861745888736940715723545434785718659689513335670544332638627261190839022402194792107333242500163656803471764815709095888807771846988762709031178553183073576654668572622131469699975334847897831994305863918353598002333757209724276392467730010080527263405006669216215267368821605753888153159721589488322506547572109919529528516432512379231243935875901132491100915225095929439047201119315003651562980396491236130170534774473018621650674389502598910666137968564781712264055419524774071436651884275357716282004996540334313076376332459259597979290741778292629386766415280869073241923138994965850157234759636350845446972135174609482917974646565632360208120852329630528935883841893431602566740097225644145529456163131068235570003030376446676942653187333418113306372580892960013267941958909144765438162788392522182683134345768130182769524036081254790120327668153790515702657572109066098970950303357355188748461445182497401224624984240640533798111852497419472281495579192489341931354068591151458967505287250457986707566893530153045123173392734324100237673368859954171787663489289202093304759763889074972591853478171392085704722871259695754400008256763082909699568913176262144173256055288040770943048920404806862841223255585503148961765606959396822432044338565413581021414541963932887880582723946009022449085744643486635822424984951822227649290847467367613533892805524070354949495044785268198243159471062550204402694161974710576963746865073199037516117529230635278472901523131880766847937692382992841931056977106627692007528328883909825808102315727027779974090750966378807428769094273709132132544260378555191348078306912703937838674929763791625866490736870256737821094868725157344915478793547479922696633440317751203433486159787369657007271556013532626283767103352682832782314731540866060686245024681938509712173040510047766795822564802780501872020772914622677490711374598129627526616136722185147877446451046387354260657911743753941765950863452687026971318629119241355014771284856982056745041902874861888688861452679269022324067959117110125082558514258390835620894193923902443658521945076241926544174978926372474734276650775774122607536657208203738699410987404240784713533265683444104490226351439426405711871601900519579082119129374572828896937098701251455158899031025663771813899401136177567877931828554453056555585055865058557744085400930522198920907618126104719943024960903230793799828407961968251795603276628026698775448283018252308226988131183016197984975548174585734633268763094582700917877566855012291018823324142498612482612026437083532087114511283728852578414839395024443533644178277989014577559055734736464714399674671484308704176073713651670354799520729915543256778074137933406294844383625505339570726785395477495645972495651459097264533848901413494139131345007218985550807163174579827865138776175439842029663327736313452418998297911246767453851438415419635917790786701173556209534209267188911046658490014041329423295313480205717215448087244549304015235126888870686962745064761705218186109512596230676063637243388630041919222262097850151272168610987517984413807182579170690242198565429744301096415745055596912516799608701507346137704663690959066653550977495842266489845292089108879721887198129199984025218973541093709793016808909684687354645234331704703579548113023931024380459197946701712822508745859631949126748219748547666872256368018195997888208522522514749830562224112681435054909036839098686961645877025807972096441181591372062441599910849772898238268582595537430223046729149893262718793745285080582465693934159696975167686950781590367859028035966549647686068043392807642814106000803528025958789964810868935729754568249261825968227839179088701593386090929653024392972849861098704518868986389331227380122722934559069297644296981044293513664141204953398270152224433634952388542509750760530995982746407511198463066469902923021950660685426028378053716146988018671876508176423908682666253569092124124837255886707441203579149690104552576437829619705780360717825295416936448726464711566770900149613312233432111293993892274879253808663834890528614561568512421908886866699861817400511883288074311794977164738752009920285258023094678337885625808006634571481068974225340465581365704845381575083065971949654616623956754381733981242886865065532873013435772392997496634087082440651281032943370766154600640250479824679080391001055547006027013743235582280584268306765807001786063994824749856346277065440129729779216730631332841714250774533836029255070402346922500250959633286051822940641273897878832224583117114015960828071057043134889931028501662644512870775806255558409574141755769919233047114236150856741027967828779895222849275739115884490601234026217491584325740142345805122096414184886629376081559653637102972208179608764001938510228374534036517201999832355187684614845350886740228406705531787421251424509635182249431955597055957616586410685103777638902201913154440436465264023781379239905984818148864576062168620233095892586414749194323937254205679806980553080873018703137710586571612646248902854287230225855452100976655680171935559124846395340884740198351698633038126058111795894556759062324198509449857485437795743089863866917525627959978193986337724162410780938954046012042252575395005794948653193164179325667885760647540450076935480122240766908999736038203129652212351699657481029631198014395554592518877968715971112189061904939905887811408867656948431283325643809079702676697987793146076460839635021661739147832835726701684231759899038562503982122660319720115255228773652989422546283093935740051753733115802813734964630114224347615269061202445761915138403509775759842698400676441843672884882739084257532774349141955339835919999386075599495585380005434214888075635321220272642884723211457021785283187173945069840069050201026994645618580122135208203837896652703592371367080648228644505820201220690784108071794124318516835672518650298363956871842222417430088985085595893483235760829456702461451912126679042499556341133525051375405798073908518435966329786154021101533810677437714992574430771907333426382350549981450024311815300304115048710077294264695559573037076553567759435187366958074265583608144349342883447268520796955063509962933016426249973709805444095355159597383955345477904738965651228685100090430621148486042988591566859015921718781075119271642765767498418882467769470726058415454721121835498226928116236018546257992110543826591844894472114368677018475709685512182772292471426416822102828603245684819901695928391411835776423174241610328755666576250058526177046608279907423268411110527281450555661010273918783583937103207458043519922327890566513322811939556042173456177912166918745907933987546911165888999935207132900125445342529445851019094090484413527233999244086702492494950603009042549831003547919577716726820649426777137771866359674135997756267329394886839198524985290904057666830969938638670192257761057863558166436190865968904609969151603340784719157077017904599399702004884676914364212249393564419759630590036021909294702424934527643889729341546671408610557407523767109342227879077754540279834368080568840298198819120282506623994272702128501987779784540471302785383031489366145135440638310388827257363356060077735556295613516443560412991942623772980200576342561499096038210557136490203977322905253956221450929213187504521975231826358517914287238296380804557283526035212276371670827700543479633317694847130097406135505948170519463422383276606058758442189825618017094299708634375842007622970881490505848476188853556804544504372929407248040776895418366225650447832153939702308886442154204424472495761798589758839884480186617924708135155070934683876837295503755214273065346552109241997094595041573772634663238289474392279749944381611292235189871953122714614195958301370612809885976348194765560993248040857210539843394522886841172316231963991522127262213610477405444986862404454656421206934962616006223610811578404859740049897230539865762404827589388103884394636218771559890262285973109687580005364841656683338286679087742746438652317736504272799496836491951679989565957434307499752561688589696401276797570218494909837645430274888498922788481876254152935405078446292638494263155527592565861451554321175991692986999774938697915654201924801886452788617883060527242432314489015203132732106595281694139144089843307516379958268457017410819490073964477368411234002218923553429345290174324167131858206351467940769829541486829327437302162946569297736423831573850289265920154728234901236404139157778827814966725067537032610317846223863936853585684527284819801114549033191121315988504099385873175883823578323619440504033132835594074438760361511280601444909961770959397909078423712246163184012680048157791251522580764377052689996136357239440605334034227197059098381579396472482971310946341931070571009144594200225238742891038101516338271979076967529670387429343509160225857760158999207056313887693501194150693376967546469386864929776738441429977680074592028494162339771810961513194469653527476050050261087163598904437443826514129057890786412015734629665766232539332006502555866282099615535463185317117459962864250206280750860111810498936598621501507712738387167897831938383412977019544108441847328604562624385018409840105054960649991590786497860188262418649641063926389001467924578829246935255512021135402884781631949175687057427139902122203159115618467320871219677665629690554325558973835807571719103964948146091251597890221639926409323916857532284491408945820506354315251278554590970715180220591674970795624199774176848000131379721763101120763489794173456364902091357980398311511919812221046420890168780142340963682976869674495008897084767291107903637848701249200272810931116673738336888973241190700685157557447132088758501718905836448118739213418062383078643098359560943756651006207981946209560562856987016253462348263448084030514769860570573157253696473074471047789871804619750181702975638615083668758052592054980243258892367926288858139569618572018963152838492145869434594031479221075469222183938942208352845553355350699124756548555856167777767455385601109405644312611940027735134528244783703306661517201471381220530541458028602859117278360596993064598271648081794148153066102035209859112302424265265797809217009308423807127237466092666466122347373917492534663648227356265864486147353404908749112978253249009228524190792895962406632300579971595986398618508932911942009515384620385831079891077909214823637215984316277902151018055373539417114518835180464104511187309838232707008000223686715196018932325952474965610457167100879719878070613989169192230709761457934816457276803848116355389599462813945698738479619676718503113178172474738702117778888060181452724247726931903251510418530478669181836697500275074058414208374392856205060936337973950080824318201786272281067399317939435873209682076462577523105938339487056593986986949843986828490211583334788864775624453377859349635596632701974958282936749085740407953972466386444018073325819577978787429729156207713164582025532973956805796065573350814661078607306967039163107833782726367841970716700624653990453820181038951018706707516620131212239768927742235087144428596058645093964393505009558968064436362935916348813588405383560563119793640490314425481114171409509467307838285060850238015909977795825461273262990391877859348964441537093674264700136357151683589281370405210453011301963474329447121837480160285068201154632293930350239357096960709070190912831001716483126224540031032894903958361775924751522964615261557958059600274626782334694164914648710612164484505548094039926105565914285857985996899544750156413162080491266562181599887313881746324079837608824341299097646197091893535607119914104212837192018816968539568676996828779793130900166666663755830010018366433912457964526456683929780781975924332444442968273014770919137613948530443020800187259744199710386030955221105786475989926268659256527316502575926802694804146244823967368495314464105219491527627890163827462771102364695790925760458141199960700290279831461272346003367957442051407297021616517747088919098333039357648505814798701625338403197819707093545722498128215329452962516493135829435963357926660204346533397646180571870957831279537837579701100139517843270985416030218606482729010148498325457256867658901671935015427586636915335883829502422602047630790545234257263646882898258322472629088834961313009307132508298955767344450470998911376348234865082511587400715350861968969893156517773292365184445787604067744009227507999683316517420579572970781520280258248588784399025671988532926630564727703124530336830658306141094491752376997369931796014342740319949885172643726448508138366773175075062051688045460804657490679215689388734017627835460473737660247197011238601586549267801833341100939955692875185562881450846976341214539162539532857345071539172105123103782676848536558456653888556654937431595305833817445916978601515065940220370547136614737043488964227873583903416626048921863293586850554987638689829591916539092612420280941907813566643285285171164978061259498492778829810365257147591653874776369509327173140985903248415251163025085242694068507786848426220381500313725327169640906160102411712096310062571117803460354353517988555963228645804842351911657175143902098825293025208986903823962109341669392807268998757612480300172236358256239582290044108221976234088973238692496540300599251360684156932840193780338968788872674473118894004628177149664785322315032874381649720237259709587888980460364198859529910121395560145141368347766778844543624398435080373244145558072015869255551234369714012662013549835476348328192891709748502064479173040682971563310350021655754472252733863974417293827718900274537324320024898208150574359437652140520072264095277134004271774687922998429544043842012057677593501167728568133506601323311408887025700609751825817727805920800895848588346447714061954130777052075977474138949069395689971257900426174178129202354323953152851290112348917171522361253579659729678348836225216041549153661416716423699391596558040487256428556342077854924530615010432063561787340200050835389308572321175598315206523859475371991907670648259550128546464282355314315032046421420875017843646199141770747841168864530175719060636351939253011741118302796706601355928402126583156016941599661232937705659876201736722625780676541815264674113988491985204001338602661875863606450683762838681233844867060354682447883661790928168233594145685371467990133670804027208671502972915608706215022926925533308344134791549946811246094590636191558169378178025602402734689149229565898966822116726566511711809127643778809751476331441028562461966197557388484997182359345561129653767479616398999295981703681981911944382257242946988383727506449579624984281083042204608693389965081148103117489359260665832264725671298701363182031960930813018506210254257148295251834318317446958335084659056583001772968127931530829239375174235019864138298584167919626060220653331844060596319971933713751395202425136781722295445802498185416121736623454516741595002427919964258297957307857235639372245983550821101310740583620287972536413073823533682570400032564936888069834958484958007793384801116515929768809358707091419444498594127819445131429242754013904024194617324772968595379346750243901742958143118954985280276120467165941112904696173612412026076262353758427451703540048469488172737434625235754440016761891528207757554400118745566627229861986670332102873300802477240694164715298528163377036607765661848065599348499624544077466075489540915469047453236884286149730235748507579918716659396193927188833637961442724225209326939359262310043212061470540742786180005528457784273096384851028272680591722311841646765576368846584113550464218578575118685643763725910054547562666279942404538819706448016721374697684665473845171838101233650701236756251565053659392660318684657191789089795070610286160102590377292099041381361562783405851163604570967431604450035091004953251263841969708404953521798557149896820718999402832790843415543877293975869411947169061233983510153984890343241118749612580472171038580695290779055061415133575131946580166365253490581257793878813196108658172812840162049503098392607758143936526183066031685083668741665927446399388825024929565845727868013528297794177088004030365643813062675598826251878378821178206571954379579754732504355959314751651193684550792916208115514295253480934173023064597402764154580461780031940126001780917143470624006457055144663240103806582050038031948804252194867830969649352239848759880691310667361507633158618092732291591139953920932600808468619867391395271190018264982385399744094759078676253838235504747920783132249581518857473177137345364930004674177619509725672150446492916404097783839437175527456372787383440264767600504002824500052687392709599612849683059397144952791420807107541070297597065012670759296827360652401431624037166830729175807486156569324679976230498434854252928709518861035760342670480441555582062433795262609480338840929394701666760447755443585712649738139293126554939032228543339115313261799790579927103362819378865263894460490248407850996666919590571440930500368869327966398984045914741847640569785359999555744105615069704256066528201026484516301982608891586710695969664468604844451397085972586917881265069131678004931482918712812155256650944750866777015787558837887943788739244132984009903166372565753264152237028905797772324087578639997535746639439448537775814582360315035482443833445667568963591577749903591614294768167158542287134880462648627205655232221995252081144715543257732075856014499760013687532649853291797212482248243392136388548131507331881442721448565894210574568632471024270095660129686738420015943561377887375069772983862075930332247731174488012787659929626666320617441566768158255574991510118895904724139384441350273762090476405188442313790337981482302900464718129646474128274891689094607019377922111485162969585133432560055535895843261271791611439683145809454972228740585188011279782077595716468828594772279631113084815772424102857937597569496313024327342237416425105093925996920583931707575426330229749256716538308636284644276720197538209763313327786714635858436452258896726885378765066800535770514535838558704570101100974199708442714380696797167390857827187883519067901885588353409947423703148524429438444604532801069158860591475871608314666849765616122750832085183209800707631706366229109647358838521285643059965730012938428589602591172910999370329821588603604878547539299784400449250190492460442848180778998914748436637625169721764113901952560342664829764147813115103379678467097242742390792824157449637860311411204920882951340850093517453633426828805271316153443176911041859105173947141911922147281033006305852961296318559121381081679757938935488561227029452575227224116210133868859797059668913058825169009724899159293730942464729585665100410019652812696401214586610215369613838286171413361007267915709535105180015812705698050180299243131208918280954154824079548932612770018794670532776618576315412255354901376633908685352984774797974943728511790424275248486361541470866189424227595913409492743192236129924032284085879786994461176688286469227648313481609572204624843827381638757852028484258852144244630342648991052472131808657999213682692516065269448433711760873886416314302494510492350118199286402126610542382689752606492557488442694905768028774003689691427441423261698388760724083738294094512367435321005024511433821383173972563096203311468000176775144115534068971215446077922976106996781395415093723727745827652850791527809602385223560845470435647152264136342111689852663611488960872561815724009975862371351781477902209141796959992047112875289420524831349574418285956438717707452564228570880170605692912576032924092631326632092512730349182149674530595066550324093690610748995061771617969898796729195413566205220501481556506443140789194110058761866389233119119254917691905533378291585161719012435392655057182246679788923614244896113409636062114200662032414190637388064377706223115966405494283155414535223230809100843677238270052416387599603851518485051960817278526747690785781220893453413491058832174154785752078129965488213261508586952500293274116129547354092762277975278501416112929196979682872880181570459753003183891930249714394829520052441976327239585342994732761636515777180175150650166045227677028861829800105825062629472718942022618953101102316653703451305885435100878921229525707849956028339358796704418674811758244321122618027496784514438944003175922595748838000899377653695357206231627852193680374773168865075611979422611392899579648507470113806307689149929768298692610328831918189423727485841032260506358097169804125580746567004053379593035561249930315357182072267114126627976943612056410916658692079045531843017815699533260676231461565990133002419861210212794730962944615476865530125466238632381620409249359885103541216450772851462776200068922304149977123746231247714568614834590552363650943505133785393339321053391357065003051659029442277342762971392315406913380776774877057210943974415539133597366087256648608539348570675875615871668810483294012161731124426545401062933303077241758111105939005924652157505245023981583430939215248824172663911591704316544774405626913954819656543318047758986702785458724529414258309915526685104753327529107908780947477406847500608973535338504984212978113917748617155434682321239503110621762934180225885099162729917902832499399343049759337042657222056115929622309742329764125726809094934786216643100431588742120381063205608280367166495014067439579467489722349410918250661859158609599054563185311014467631528853020748145104026764075647366299371343392743968047259162004982788343230894014137149171480921195012381550195662461729892024540364894973593150270088949952066352284334476570922975479327419349571981380036563782339739792421052222154695180756164305931315918365137349485584660483965473019917838923404167613208929732507233530716832244494927421148740624129620507654292581485049636352260761061734865258065277049395235707859042853174296246048586426949711998725221904370915578557172447582472096832933290599547731942276495912487512230701472843095654743689973808578269168751440280417665109496215015742150662043012848855560250773623866538592754842913270001886090874939220718869227927746468340775264738103854161522386939119789224550285111368212869388514811680156783982288231507099867640547817125612596905011652894823583290604533746837698226369664316667666606324035817277183939429071071567298739902348744509912781242008623930059033932692393148504375040539164624267787839103941729359462590395558985558847561418052387554676591214256194486654639781205685131432616996841113512352355400933674087678967413809506260697503711058282496808839941769869552735981089994313119520550102646870611115935426763561415590834439891082147136761988741830919683295538126473339457475746302445010396426358124254655998929688578938146202847456814720404319699201764272041763327120668295591851631995589562864435411184829294760206366563215535488866900027811140108100768437976592310310779790970552553420402160077675944328650156999629744284876129970381867333886407670955299976697997944190531663874765401203811090854445391382890407836432129564356445474103111012782497150105105433944097181288118311942244782917903409775422718908329439993073504331431579230348053765413804254835034344029094588199424364067247799532663364668401387482335636286856265103431481861201024821310795408358190645693392888160310080761111417652696764729445613146996965269767004291472431058649962730020227226161152528842445881165405641541512603912898722556281487291511966085080441352931153050897362420849204983077492526599351645993419028652549790808517235500877669261077952658717367920182808627470764168306528481317298814417968225123195139732787273052127619775541055327283587027689811103014572295117978275739728962048807404371834608673490410448658783407556926462610214988591099888263337520813199305897354949444299335197657344465745721657610646872274276595983991445907148151954637747076654052468798443419251582599758986472746668903244085976918621154245790731291967721065654025738877185780742193129453380265306215365634739940540281267201986750366584588724495415447357737096028719148351031762258922174010886028180832521866032632491841097148544916371301024304256696743089065631513312708747044806857457522170046973806064616687543877461867550564275159023645148671060239092835431054851214334159504823133133832418444143840517469426913035784749168828457285096849167822507077091883551323526262661454828597835390173410398029465177706763371153110002199199064023882863071059944677006578446719441544725911463260244029508536939996329338777542277595131221402090567687567976792398829588211077004986911512890439792728730775455171131933689017502119424980597889172116959207581608892869295746825577612948210474756806033549411265859073399454931452534534079641416769880226071345726115032484982674785645996345410167316512918852438859569202529957764960470292245443266033662189075532090486700351608020435109884948030455552897118662673007628723650918279524453554263280907532592527310152080731359366742068731273027807365748350524521128672435825718169778198174265388039225975410891577384060508907998491842909948975000297900792458123091903909970592230431873153822856707945595005334389403098004344218533460966926646658983811706047111914625299700687489187227583437692498623016649363705475704699208916679339443651534863819476518704468646254059842499430867896142936539722230666252645396778012404322577920773147061190769567072737133820707591333545921789843186101833746290433564826507444061320328743301665016516384541118205577573699673002151714731936895244135033468452627074716877811861665012390516810564765010974043733583778456811851442307570351764192704110401516514173000323715123506263925307115337820139787215168216967752479560107741203967640045981900539058122169748075723519368635598639481014714374676069037723347656884799158308559896039116831265234270067340689448658751699376794898218596827297185582305080285818434977408160902568472241330092994751035713585589697526410412390398413093983723869788977945945217873167486881381058541625273651176590279387984294775871549407448222877707332786630929626966636619332698294246651800148399049950408992093471048425378210805364841455193334554131309399013554716618395182494499756751619792311098465076947425035537237240717479518976509119569903180581186716517470303695871508869332921309670882399179872055823088116834698872555983008462251505156917037482944235928536777975087424229482928929959259993912211685372802638469665426734892630119825601672864804120633503590624333112997160050590077934866771174768956595186807950551346971595392469738230653151606878346005628176872623150357026850034632131248797756882938176026386005811804073501670535462860055206023434235693247263459514703667703057791811328794910971315005090200481535339054552309166445990453831306063847793914042998779254619795144033118378558276918038453602043202690225461802901640617249373884160293267906710861590268948389726163650983637656869237751651228538002271658148003704884179364343156739048315051861120942027935309945210610131273632676636345523589295308437836157867712272740780683390286696044191409646750298976903408949810875929492343285266995486934422905868519428817294593289116142575272417610193858434413146927879609687435564066283872800461803973032851730399578465704240926661825827239775352525181565215973950276993263763623542611934299397630194356944425983393956300694266656302510733764321199201891041240384841814537259965090697845837448115523235293039176468918784033795128689834761997607451139108094506732458617250656438345725499499719239766895573354781213148273596186694503510910775092051930022538445561743244824678276726749171170488028030918692855169190969448108505815463846795535829787879238385310340596144817965514452266947415881939977873160335571167817779695713154322056668878124679098585561396697391107266027045827319913191998226463450172609853845414439613249066157333790336186078875147093307669483839571930219264236111350947441038042490272584742146534505158100101893823617720502986060708349067680690870040744820781668074211542778997952310074084875143698101622544315841752555913173381556082406150362879810309319224443217383882971132763016747424744788337717660419407604299603613000768384397339277363731343981987672459522698589506339899211552894762492995511731112785611842173681808067057692694226866049376115485542769210159546948216173787108293309704422413339496386467740673001034218703348318020484947764027748534855238869433491611838212642405530708304465524407714088739938936328473698015304534923576167383156529443943755261332564408306071719363098552329818819043852112376565940501382943201046230106031746882517210604064564703963617804466182695254875085481148150514562280853247326034413241059477612638884686449393090500737473944959570969192263944794584132550516733408604813490306393980709492393143345886958422748740544650302809357627888865974475717470418237872827067118204712507482740091918261149290783267176455713625246405472794882298553645410548062879748963890953232449342662585470977227821570748115798846605355462275433574055167026132473208620951464908356482579633696897892599798176985809012361622604609329540536610346875905222201038478975975546751104513151616073716532458365216326915863672460780560538759977622534018685637855730766275870724611328857353905734584954923961830374754642986424292330868666259536971863699588695879055531246090944256843984738470288867793187769961830239956826999240558659786255833681520371368570909223187932713132066238279725242758218041096734849816802750797907646115516748059614933250047348174777648402601200494310797385673481151892240743698248515311443477348308029258849891363064640424946668590724689840194743385121284935993303356961932222400824523331906502913202245424892013277894880551948781705239322122591675190291735986447963195441607182564314449559136623775785409963909262214740114476198855854443024889709292256064534134937948250734950923252875853851894981174971364354979786175094635423943089863068467900400002421822401134596172795688465609162483427754516353716650779172010125160566694536617163303310956872938392210111237016896844808435963543008273296749512877437565655985104873193861791954715465536829324959328669050993229391418476649111703351052436522413649128989378458865214840219761528787768785985497262488913972596775267214198394732654590402116796457724686346238451565070649707603670883538589114949326211931446784973514544755160004162841299863763243339166946628557546010927403739422327869615006227433534564122759094660608350824888386061136987723626681517899992086577732032308145631569286498779180453228781820324246522198930961883143335965722511354097795314726958305948771696633612471126775872980626258984241722040418249785289712974172483549113854613739412265239080549494691783086823516115793989886759715503579761356276086073957294533508191269465601433256872607672651126540759821498341609166013145864416053716872223794960225859198442504796658236267065815099213884164866850807131855153206117689255536294413360991420723310690766020140537144807386256886059641818292907333472690982584759386378711373075679222719612296774854965904880045838780274500511174964994566852032026777919075412867423166594949950813570204051195738275190963093045387109829691451010489940873603730375734401058826863534909567379897266368892120211337471399446165809950411207499477441616220713343554624461069665227707116395551384480885011620330629551743403150562374627065654473923098055149196295003563655827232086186785692758775401898358770077026791185602265322210235936186970373662758045529615536703320975699146811664774680913893140476472791687093384681149600975655773192802398057526984067421387874810709303375787289077203388195578448003343343188977581481390225431764107329570696154523085600074808072253864065923043744722018166711694742981537084098160404210286791176357451264754781488860627868456413772435916915506363486285507354109145366832149304022466660168864274706942742752606325507280646692990790825762103642038637978869394942233969550381277436132839673221415326621313876450657575765353525354705673088882154027847141878730453003044578915823996007814423620167679734049548116706065071370367204076895793262960967388698652614782235954909977217990763471615766847603163402071013954331604986191332326586467162584280714408035182052499131487483823551742448011322393783791178104442900924519837912486016664666276027066107907090257841561256058455695076898502756015758499274155630375549398386454058230922313653168640487133872401217681981774769117302610322522248873582450503090812191809793368832213093616477742444285857502146657847434437725344245993760071558103358005765398404817385491579705046144796433276196959242289476764953932401862865337229254968316760163211313352721731673796688664564555638634996918849184229080465226882921200591459271028737630575895223820758447055830182506632289008307176489383528022029003678842856964161203631829588248768451581679282218248346888633783702810962356584931676193595230499953305140273009065771254612343538333077317621500739694400933062628506649127810995715941097267321708012055971775097429873419629053422961515199607221544973520908805274590530027424133828215558021355884375906189617156742097579941843037012586979238809437394792788952488488740038783926891724491305243915496463769527248381167414022175067457055700217035722406900921440979643858145803246520405394284486593582836390654877808070178351372851147050638261677660495156004435983988136404085780270859242894699542879163231275863616686718421319681311333930101254913858710885084955335523018109117470927859251638666935358461314090555269540385802357449498206537729266944767236384067614412631163272982054645261010577735226414039163682171268550871359752351131621387142769382661761129163250113245817883410510212698085979813981663530236449873631208349405293426585262833904291590309905641629072596931957215395897984013442530601632973598256363428288176492204141920117876201902726599792136705620935669959060278720022396595115166583582948252460621601181485115910233942462844613395969379096307725633825706282295987912460046533441233629428474695219278961340638436263881117818200328357521735937553478693560911806257562357669876282221026140061920111021279676743331651498589699548375348146351183894868399563608952658611773434915412901734975319294710141018374484532915805969609660602424830028613781615144575081223549389324899334960394764001289036169710636609843547510220400021270244691338807082339746962588084553596030995558961238317938586300932063160300814519477449393001339369383607699370302576445815380708321761860849715494237609990636366630549641351879305514466952982866017967992985755645371795227196927645843707101820526759332770690891793703073418016241513439559806721608737111435536157685319895894107292956067651951823094095315788131378665696212989691956705179546980915722131173355268812451164611864038715265042279784009787941499677561039942366604255023452640865153892545539277983383038429738140927993227743598998081185424954415029860397536681214146584682749537965263028351007660212955606951720536547667802853293679161112932113839552803999734205010162244415529678560496465562011790313284087117043997614965731927279887346353407722161988334370165118406997888793865722512534932233119629758514491311949657105358552728591351910228512848040171998187114805329070944954541283288275824664668795445434862648434773109981872732350214474078033766686894234412650898246797373052859184599065237421970916422439978220431868125562930167370439499112507731942616124859156041917627354185784241829694356597337099531127678815056556158188884948361944430280585371058019480963257611618868250271572045315481914813515865074066786553393131211332771448954679601274141842639380677782234546697692825554753380150404896370314596417495764073253486544093265454564312122255034737475138338188854511703589118068859315388759728373243230856232202797804491528249702748585575193528825828543688106836539676196929162292514872442769926095357817616993975894010039201255754612620102927965282987694844111074972136346821912054224829494456450444852938814732477111730571671744632778935913180869180951995242276217974583480017364314157577527441344188345698630105704423960557014257975058158628558838429648112419718046215593468658561353690862443286045332594357776319186654466454494009950035063076954566523307927269017228223746424884461127167187435162630617656319367681069760138122519150439709365618394464808551607856196216419798843512122913342068295277571063644606587648384822482603345354372258269397501423516417283057205370151230081039846475202521153291337385953927898248506408614828197302024856094132397516093951298630151570348847932922650748157013879051512160254016984446962278780612035793164100860566521793403550339492260451993883742252995448915717603002156537422302915783519224086317672912517756881829296679464199243245219740409937235423511798048387318723116105389229065780782277576000962346092698815558994790692188636808493909714113370643634061009066930790072548826587252706365581147494364834782848989012292252712399157493006390223856322641653271441115180530471649618762046122499264011645286229272607430096013508570745581345073398426177634379014150345402115186574555943032485821873163570000640879289895241513057366870607635422191732993289459274154391849513894871611679645472574886228802587052183423349536615728981227365964149218230354425131230362412099767046367323299622556063232218180118137602787153160622915476303921735803044291669734546906141780689259455756030498843862615484066410316169090853903197772458220505109854114749105378390358802285040828233626686536487415025415116258846565775735720841851085305916613215621109405940149196577097030238226340467885391924795381073962813014213171231271036527432830713740149989703264165955153627526822915335196677202168241107623094972092438528069142930414041556227237850161729735406119652291885088959642813619326931109299753371738877398811602176658643363510257002234732411544510909772576467524230360071637219834256894519610413688759823956488629352273443653402034084788115737833849378512062770364162070873946960559711909301373665670670776612766930758546164443339623548225828207507872285352048235532272851111884257150900211555285313742038520351111351457374478408379114400506281220647380783259933447150783115768233578909491647632344209721481900057682225640429446228633270431968382057331465685554867979674011701427195226541353796825015926508239510911483008117145494831352733525677699679809476215753837503003724800533983418078525511629704232602200843199820620553668878103406587467637050545621684882629999877387268237990007741900101856760959100727017599154150646893973849282478197764219667412162947979497263974333326606354347081614849339822474654096642505371619009247823709987552135267804364146251823610436829814019759032378747951011135540215910714796791598649520633145401666062240833722981765503391336816478827286274149443690725487071085310220205365265105052620669353564364640428307680949458683046019866638231792813430712124545456961406143856434311592216893468934725391113712693249919456626721530763225250543599962923618926077757216725934867447148788948571040849578137385243329318762567268324005869839380993658780183423560565027562579338152413788461656118807093174412699049965498225409743703369946190471109430922994254445432452647832827478524278729999059047526166066162913531653100918486666555832446031072238575807506325331597254558104441677340182172634210287264615036364988384523894504213982071000699384921140569050472066431141551769117212303569983361545642199535700449937524776089081306610866326509149072138036203748002713300294006952585406476177451302604476129141037290413943353452210921939711587357719563200475161762538498910461844313180739549483562439225793961249181311366674551913008034148740468087632830449650657058578649914339550128528204616068907898233175010284648816425585707706436684534568096527305445764093955995230504391022581505007550489319473855456942147584041223318988494384271762416013458715768134579701797826204155658443936086701705089377986384766695344685481860214776479602576211921669514495000313584815001041453712689804011067498245771992607836838868145460048630711078860479926176978259643524293401148416648572454640865614015737908396457398070555992406272829562812741249714685965588744668754565890726966031820833528642272981996198419144949602764782832062193754560425590635414855665555489353706289128105295023417215742219605902674956469304577244429642318537155724476777685722961595027379823070219532697317328066524114663660586807171717161898336473260579989718313273147320686475527059404893272879628016404718903221382350885900075273370721743811047936905299141728655132873098711063118350516299761200368600731480153460844553042844605787767053619113727735788037559015048464174924333137273623405072472988854066497865216022490751792110819687102211805379590350072405601978439182886698124307715115258966743524991286416414561173145077022364404575283300459173370541106181239223828947456702484122270061780522094148852942997394827609318675014682237751778558194767688812171237105964861821679801775867483442185077685561310482548562734534996910724877935577908609879521219840488038620644814399153827467628564824618707448942816245981835434854449311288922430892381786718171753678997009783218152988520895183347513967192192755900634077111188993179603891959512154405418020168617691503163421028868154021495082626406441358548475294208229269160598759023343495431918547847845755230777455185572395439648567778014895865692794653806437649064860083333686203503487852321795666619167353366741439505628076244524157292707192536192347957170595055008737039186716077307406375631786120974587388085408006562885308603995836049822790628296301923874109746522545217029424990030926543380819020094115382767826086528696323548044810716819143100069455117401142217797239191047531055716269636870624412461416912967781018345129039516114937429536004438842765594640238321233638463273814851425009069301053336685435275361830643713078804421341462406233858746532356615707277269394108938622696518015997624264262592378476197479216894328128039090224107015044805573334799705193790535155780659203576622022817812209542110017613952581138673809744022177845967618308217074801380505379649558067886262621059236925951982089951318479054293213509768410985188085784334374184236421975518825275856529204596138440722032484284148441284857566952437173458639389258537228019815127377011198554092913592071373022357737162609667008654724639394233163495530971772442619326545971467995645393576835160832735368194982581876844824832918216645056541021803564665598418284627460077070678142006199563578322490078133850860219935297118016519784499460449509630716372560766389222791739439643964165775783788886414367736759501208467973251957320809345771723225487021184529536518785612214329238319547722713156180532299592608275923351490040410065293081227745634609974683718589212703709302936519316208039620343177500547329766681004445982324055927384811451777534979384573394549212437727017987272382625303553669373161823706462265824987422239425104150636813691085433173695037291143202389224454148910329390928491821304523892195158579059052091399797833616112683408969306049876432182517189848931275783474187340092524093444960300489981071085412437726071165875352206237799584113861214824530284793351052389879550899902946582608992059927035597207300087976510942926583187392281245245444612346251024884346821644867556098507611572319509665197349150009046394012475119421780558126634364345006125197147971436871366734517355146680622405629964254947838638334205909909494556189801027345882178908858626614399294884584557920438909794293201734498229091683770038815128610888446120397133740995262178905690484916680552828896505912896860056866447177053234768936675994171516286841383277641468966904556758910573317869497541499484180242224513448628563135332700011297734979182275278374613870956235419216092560733686849510882946799552253341649945891229101651381730694841951963039692854510532973907833967130089315033172779237589450683795572471882605482117539892958996810257909919691125505164306593532543315613971583441204341257281561034059500386628436874246687602801271640063028663088479357079708063721060256812726471465807006212304930459078596503326004653341304763925295525933266429174273155570704364712677600569124413631589823469928924371244272472842593502840547909048610421993628921772436410795293051407769118113358474922623450041345960817643644584802060270412634108023942980777905825697929584589817754721441171939224216089583633995626792983741732141971033113764731510642764138266476535699770211133044532581976537519567059102105535463581562026453031064578335486560647726188621934433569865036733643626766334352738082648900881368278472418090470936934155281030486169327531687411275555309531138155752153216468360971701188017097107871538210525832212941278684383677349362727638354356651165677670369721255281610935514848741314494472237504254500419179427463761814940349496243912595809261048777506783059616977825784895461666552140442479264224086183802296483804423022105562019294709910345123977247100019396577634506525858413519492955220376174307750128713742359387156321291488697845206452598932081059924125490457416468289121828519283228302458913733083133796594895521642629253750694506000564635846410804578097645269124174541069491922541202641451812534202623016610761610082804810013965668652852891094844532198635518564930242211420317215049779921547629662569561736862811168660794267565562640006862447016665933426377724022171772539634860336000647562729412443791915258889296812392427699591817640641058051845432946225746120305105510375479623916144141053219584823947897834731428865094867297535599388552286740243318931249235581041002331458310689544323108026433193113534086502439765033621743683726713040494971602790403507859057807504544917005706965995307540140432917467707130937602173253260897349430403382420911954141355655145560472562297866384562578349501679552278475015476563193494699573747565384200542137981360617830683547204601848512631692365175011638678235146520778901826782431316976685841492520116834092291134625866764661342312864835729976590907546884657676076911328126006618184714605364156857213215201756567491174388193931169217526211105539156274457562371848961353617020259661251622115650114380645604097114112921086366849387523746356041144921016037453444545682027098558737525354166307477266184386268664192801127689489284233408753753770240399363339380356308665160534529192102206882762769169941407246723482517808843858817121713774037417147665494614206168819142283105581343572269766115198144153719813190459843993102916181279019216178900068876118974604012980906510255185543773814447765349692094871396443323856610175356996301465426966387828050339892656661053379443357717761827876011314181440840634072125514387219986716720499298216418322241380564739756897760048410185802985389377609127028377618317918515596700970075424010284546538981441307033678400726315355120730156468800955749387080378514095007465979872260611209931960065712899176811120209629911784621127763812751085795950892204240758317380236285928512455087691802182406038576671157528231015439275548826703467994844372818450847530732640592107337921360602971433492510683088929358481837787778000911533913378952649095806892599312330207193395158759797079433629119795945190728889264022786141264326227687825611858693137750577982531183276679178323655053146180736844303600064601561850529264209682852720501089530600911026152546202184468699156853579130806783348387825012421072659413157928802120425991597334513606817346225564744503741549174740857520421837593330373087860494755755781744471747885655921636810350050926468104431658394425278630012003370268923387127781553458631156981023904335798955087901643793862747605695297058034533178774262745601166061046081887290934798583449006365181634144175709413845249769702024995710119487377760406057643418695919794697859797447863148901214095332499768256201262775443273684659735954740197865963088657553545786638403451151157811249399848305736095836431288266806909296225918322282789756669783216997293026014699166673066037214626805685586692978617383019366885513475701678820931579533632094006014175323700554706366674881084617566702826386364091437449407596349525386357651154742585794047295209913339790672868446546397474475113165558243045656349019599015983869261206731421105535499924136027439745412725037096846968912879845951026199869609208047226403913889317543056631853846697552524282598054173931632422527552526886512703728179533499855753599024745585986759140014099922449916751745277807318097907869293919299753762088771158099163782810294653248025462426253795586922490142463243814928053457376083747174828500963823867194051853651927011791305109397433791943370708898853695363775238753524480965587856755361627064028051372265426502897226203120200724738196241176412067433241729651915843534911368886280682172748229143555077963882567303646230760162912928583238413677496899808992274056429705448554398187900874527201445529362159418367002014189152211133424191729709248366698662779056884643008449913156163857799112617872735265161388635466904218474230339898435418224781724748879192100648142179493132761549560287703328671543032236058197125222979880587470551181225777165717947540221525543678258849125408681535454744227708399266953270135158940387532853271744768265183454658608934716271646309868793887775285028899008114213849430553315112510615302230720204963528517702073395502883622160249366386214382568941466668065296638441175378063575342045652877466708953241542972837175184389359538342650424798578767451997343916300446136473457344335133823084662213743452941874885601813445686039821268300459957164413320373832072185069188080263040443677996586491979243861809547876354692115439273134829507526755327248387236799525735464730579321092276900816199839998100678155898872281675116820500213209044228704660479967846628462663496652507212928692795245964237936900406497091384472863411049519189599443692457785439179405653784390028107230405908203757897461718623265488239876133734868254547958307502781840023035344580693848142768690321345625023922931396504523976698133856663376333345475314185321541251238299869971575972703745809586695065383686207727872204029350770182067665498659389558197126533612113759278943880446102153056934408219314218053220012600308705046738528190891803629631006492611635283850315179103482624666273499408747450173770434816383759864111680038764478956397340385898743642908317791573812864117090077314472287430249549297021411054344771780357055121169425129443985596768597483287913672967249562774564509904297069993969391228985405855839626752543489889879969712980642409462171565409065929876421676811638715320746927202997510550507403880806596748503108902935667794581858899193204376920955448308170537605702256524947940958259631336261655246715228008339569700394335442178419869441996751139606675527692018071103332739115740742995605456748887558947476165466111062947426199365312963708364911004135498953534402842848551102898786383927022465664958360038700617607281222792733109663304565868511478498362379867579405875607571220156362491325643112213125721811874530351420893002950617720520314295484042280328258109016327898995504241056013620688578177824035182651461790228599905183919274264170222045285268785227720315248430034344881318078862658320673452170758120265281727947327115597616994305540844197585769430279086641849345744862581742719212512600268276861202137980288104675516968092527449567680872676064210402716710092164544082159553409698091175937738069291718441844999706304750293526329281386077379675027509237572894258480739066635076032700237708585640489020878502674232476755870794406303378139889255499904999397324238900384843924381053884169566237856043734960335968268398770196017643589586829423867019903988836187246832898420600443808963685555039819185748040954170544021306507980140012248793494059088191273520267670227643750996772733435287022435343793636651683235790340048373560662418483163902248237893877373220178653926178859932117209554652162313215277157690714701593620217824260974529592582838335204496163799223239912588111011405436047881691218429764036028539062114932047932255041783495138531009933795965349265598943841752088055359083088710731258248497362519596748652706654223536476394823379100850662431635468424559276973709820403789453700346328632524628810926017240691914500151118946972442444803715787651640441493180656850544588380678385005101345508819136869906444572713759318061160063397453096740803351861255415055770672919315229389219367770530243267392841774220452732874321262509625326647419812041795787459944189966951416817928007186634978451271739333271605717032837269812373112865953152974557128271924377709919358770666724754502680747184099365414127408276277978801908473176766759771676718710622257278878745483586318692827169650534678280540802057683305085837533450712922668819132919727554034693121669129999872328933941663097103784607010733587595740587519870117108613818097418454697698944204197069466009841512636054361336499972797587392366012507373921908044183360290375075248279070488362806817042100987153911426190502342645751781665097222754904325756974777365773284965734944449217492872942460848376351686548700869424700931952300843564551445398421714829361550445196920099246986002626439352544641273990051717195293930235374274191297889042477746651225441513310737706007358307013934054710883479955109387789787674265285134657639899812111020064033776064212057975865513348901537917522413622614441891201133724256724560387868384419906791392296373383824412282114607867184050016507185262606476789389333007774879394881595767231048226549877305624548034912447127362023944550024421813030318967395439620206099211532528952731126041814238298054358018165370937817816635635095086742022649765725722285166500141407233323172289295472663821014002448608896718007575228625642623730435026176739814449808128086416197385496232297440116893490944391051660364332222634760509426788165217643813068446243884361246308008939053622454283012547842645278169726534472108030040080254632556159702058030694545392387876864197355133692127276320024753651250150624994286092994972342552008334905449497689949677107536393382076165283215524244223215081780754199518110079802169576740623199704603490573836013740449016835362633132419938407864726648305459580832182137173328738106252725704419929282046688703669783399494006389050796043214955326060637730985375899695098830112701281300564185540394464875541551941041300294404518936662796805805151172970477747597192161904357417695706431055062932695872607429891961257145845880079952291600107096025542078991103591042755713530460826866917085987017558737279946519899492286266544401800757346919671254627777927987222115197208920275385934903210565644108164007869343764917132522876691199477400779140123366129260044223901531400507850426136132593200542814647487098493234891868297356147944281565114457503618319916413961894237222078626408912511481490253856868436005506069750271625595628126541380396994812295519949456664995252345256238773678239682051409547513385043873720147507343745361516851702068553859796300928866542360492978661340107914360453307176636789003527676803811792139643701193569348641779835388380242725125824773964280231860415968607754472141157485398534929888182859912103432077720968161073210447058721136407121003871221907781970722940343629035036613588045372375115677263737028765057161143189702303059450348363197125951471350733724892419237116971340494836728892299123475955101857931046570758113652419648164924352334998946175808883621755648184655115951440584812711481241982248993199814722996851085983984034517218136551777532078742263272301093972369798049381322615340976038089701332632975939197984958785250791100165246947791511369224008065403602393177021708132139691828951006784006600218173103312932105108302512676042804285803387892701074146811963994020633418125035957489633876593674557545233564780856002563837430837873189204012751839806359326902301209914340904354085244426718839409657691729670885146582047889594790347974195255252804126593554347809738191063072726885386610473432262879866076809081975442855141303737599581322886349659053726232988870251621186071227304775984455139783332645928384499130938475309075702197650355496285547263710385461027876107297205258241422967669304845429585261793341298173729696993010833068313570510390601109234848937444263982415738697171373005285938428869895899575692031886996677144856961875872634465848820281502568310806754400231601059540575163079125694345215450853584017814428012792963921194784912376121546712236976955824605802713807731914810580032415565595992338789168885871941804244342473955250090308746810571094604056088008924641206602658471279041935438055630735747745915275376210887555481596544474134164567482114418890189943159459117185143147971624035999644950111934235798782507682572575946490836978903161275302704369525430278451391843073679885835044473782535475423523688455956360591397773255947750653251741731249103126788501948439403549520303517553734149446270628548805011368438051132415869731527477616423951653259097387919926034638715485774171924895942905335798368805262588783957804070553376604774159319409683508380033729864432324179682486366950845423533905032423079957081328435606406004462837297507490479071177586538684249609427276445173038602402974716451257935816077287463834242964407632877856648197825801843490062068000782927172617897625978608982996514371976668413075863003051700067414316893793797407603957191730422057327331327908335332249123614076675895591303196545917279945710125456072523672993554458951610780322340940301709386873297996418844606120452080035874321582776523157754471614694448363447201889419507477484428910762261674106436871373898653947682648849965991522385479140030118120627481901319677857196787165244034334586160637940252952311384558022678098418516176195139104520047262168649470928910968860536625277921324037547612781629893976780103445117331221312598051005218628611697728465829429983101150973996702007660992700275710446352058016423955910021399960882688453976383531750097594310630288560324689741429073700618920728139625589507941492878287440426896487738397622324339429307590009843344517022225308863538562216523365244052120595731432115437147667361798607754039876984680991694847049573593642438908755365201664034380589576100594527059058067385266026574543278611327770466348987410104176933095825164100478391587660493678062592352301510524272745006416361868426077394646672153255339046642474521396575920330428648045023015807213936830257430042182087113099820082832420389564350142369384642755056827885506356413532681915847912798727116171387849010752634068923757751744193554208462212279931668131007030554426069206671164160310417788523502368230467115430483978018801662077507260633788274134834297411420905651044743623362225271236920908956866750777977588613502065685181923892501823971121277810344051283748145809253530200353542352817049116545356610653877849406880036872713928691737144881486288805710400879622987040288815147930180181101864128745126620661987572717206247754258129875184510546656915629638493670250846254589255915182588557602806904352396008104428863880336278462586428020380015613195045986825582881132162615185731417527584700680626622561849431200120475625523190700430271477079784146301997861229758092483462113726583938371731182743020129933434188100406628365866988062524390811772637406705481900112492120560223678222296651847607118877438504214622716191611230169508458743356380858749834788087490479413725909642024692763811405251410513404912050049933007474116545340779143221002976941305508423513993788248912288190513824209868545855756415701579698829274114731365084718966774408725524986586445635204738874190643252982484439774431025784403166868881626187027721164877186096068561501332056649846969254276169926167812537534572733870377549712466541906609274958952643462687935420599689054612040342098711361881080707270456326143483950360036068585631200528788874697849240648095320219555598339595552316932060014272833321399544946136074656896317268520321369363749967467021216153110985655711523010198799500154543046523124155321062618024988310204028161713029565114571322540580501811464061930813237524974953682519741835577623615695313129602009825031068366519488434322077754448137552399181653869019054203927414635553883516916290968332000187564610950299970234779843177992781739571338915409252974760689570642154127608046158704842926088855681942304921201550193432627646363510084162266610627150615751436012660285889401233359695651199611757224704620074326325544001710907323166816531702539585493641775488819910721406947990260902604293955186845979102082777344590112751341654280064730140098368259973708131284340423762369054421280392996814833739237958992263138116942216132151905862486343721779242903602337570370184664294864039454213648882128990538290104070816661729620052829434069502788988690002026902174761550891066771193073486157526242218028213767827495331134000276580113945557862332844957652214595634085043151947733158565604989951242589366200907540863700579078782757807996430433776196029214629527508774153744577341712335868603336732290989895389776914724227516295617405429012678301323478404738979097224072057648470898038533888974213684931781403402480146868595953684904481746061633410259095806592873926251440948930166822808116103017223445055754745777600299549372460924323495239034008001286388190451198075031264544083884689883009547525331009323819189223998760156493286923764718709204659035744829609848658920694353448877251590461502671728323397439448400914959805500241756266524214621883508333912190830581263985361805523108340946250286277275282364765267840897336350804690847551469394853348777690287620312525458012109558222630886379421490212984853079936591305867783654075243654364648286150792271185634771208085822833901499639040275478682771891275763240340958667330797162953115004114853959685496697454947059744908550060115352813861634918397728319246532358936710993355474220021714829647961881954404424946789779499718512992110633497200001617182839274041177701606485182159208402758654363312841792422621002508641787517852665092392216245403025145779714674060097966295485603936606834696609993698549966066920464549162008144953967384064337968446715518351265960386625136307526806532761763497092922469203424566176678802405549408508304187266792144377665401703359720823706369010347264939764829784643141612357921221335841887310088501827346382498944887550760567574541919319881647596684295994856031330185489374007833545772048811690258814934197181502409441228779834474115671030086347781237358853061742244050100802991135762292835257967453127985995138378091164804918992526091932225954409255045229775377444487562319148766071776639014484290353822342979394308342729589740401391272647512871530103616836389004934179301872042395141977097456650808976508973561307113123624442741139670732915177120683926972185201244505224425917155418941797541543980958353966888912243412003683426562098036958349713848787897225450853154417690984561292673874368547843757206722871537606801651688711071555820438029688767611872330000979106941267399967681475206290286793966970126123156165043266623617740881990647339494293839017550866311680674183062610180821620965820681475244226985611271851457978092886863094886318377159895940151698082012167736661564787300373043261001039059150119022666440340934544839077215518223789711984453457517453946737494823293241830871076137598423517880704059114584410742426863035735124141268080123035862089226835647436336179282482627100462342317724068301322850128353765799667807782669549894529476145345706312121787347886870324889747355586487576606901371191072495240230909349182238641332318211192783958506886035407432544125326444093735849698578926780770565235560112957623695692244130902324692914155012904582221005279682463509316719233799684534840774330348681613203123427158678071581113570232455527560879209549336923140504303924228427717501364865547072035061638341425297674214443993780337096467985902390738565360244818240169203669896743113936296965773999607403205588151815641678132649326839705713909119329487868356656958954338572232698811595823585444283014263474718095409977274896471557382389370083903823397608765482995329303173153385230732548380383672588584553988621393095554655282369324274848278894940194591896628115101362482883120192702763205570371471885820275349239463341534344435094477451822837967912258589597980777229963574002196373172716301765512241532507275830136928769294598871880545924015294930430719298045075796339039746208112058244282084898080189843254931768620474249366433347995665481506276613361506751347809352502723268466318880834345422266217412608857099900753187020727484359779891877424707410661959955360346838546663906756163870564350726219399250104378983183759586842944218116625927258076429963075149850316158247787505718714555164901654897042491822121385959041440171163171124297831685732540729185409101403836484306203307807462436837627822073291672740034453544454039666976326293764243577834866009284661578194972067352181792706576944957112418458012119514388897227875061651319174320655926731918153255327696632879033858449811407825078915419873649728364881907999756070474679391747904008448863854508358743820033046752090260029095912216373869590471959145260864504373211140910304778609151910798545708958406598958034043190431958288238319674148708695787907445921123281747304509975470741937365053390675061962775494375315328606505695440260750762198965055085595001312944768089691033417628578338377552194063137606307285373894827115075266425998306493713604665330141251623167738658362062560377641323732560905935721438184954036224495341782744647634515528046559881973805726935092389742999171058609170591122438264452920451706977762762463707564069988012078468440204917673744661296848035030299736418407782538993620402766368073941071204549108344382588929098115716603871017427337421168092391545395317370058912294665359468051095425588757763849217897229085041971355748537849855010327578438061734841942809008186683466985602143577256712874622661786346517972635926873146609776093535951557386885980574974600970076076067282287982938764321836544173590829850999636103685092324307008202075853909292955050392107243282524880981941439697464262345800659589534424841484755448726022423174446124487358446027872078922225181240740791631900077411967603338758548948400001558151504069290373849080371666852601836625725827069125971800285900962721188239612824638378101894223763612498258879190205054008621389184203266695007838781791225868725049301968220849467071424804197558470863310194437845401683710923519551284593412953233598144631141664330737865419024103170278602926587189744366044237866416020434031056344648531998420077101112920344143704603243317582091274104255055304713630626728813216697603548918764597741849529059230351450584437229854911322776102046782614002713010108289036800393444683587605406193518622053974839852741092912166509123510063527088096531865043856591049540167817614092170554460767627777267888827307160276932975480024629864403298603567213502524646699978955306764974883708152322902406327795354845587318308753576817507624490894222283351384885173004749020391648063759273467556297381825002731941983314248125393554622508714852513965869047863595731983589506066295597098965240781012157658515172454493430692877131358743323809510261950502114459971007697732023784652734698949133011553812175753167273462000086063716193473508389888546391110564749601255083178479302493036906227623665193365860665873054969120830020865985127034845153766898368242410840908869570931888434660533394464192191541707712917524242096402869735690694631883935537652450399652747182826327950591608989033798906108551486394818158644606285840090616181086632474448940731455834285129906301788336370250848408947157011032246391686767063796576365813644613349412534222084062215899998687710152074532604177354941921157557883177105681632004913965527188683597894939047886815521589848398033929073056506566810362999291953680023624365343516352900797732076620986595768117140127641396420882162506743289596501298658284593410886461131264922248726114481515801088256443237438883756065824578576502523546067418600804219424073262373544897774966903662482068812672162116661868534887216075017623710988968997436615249370564125323959712668586453476502174896124445098991082142987077687438534455677484442082032812411804953609272031133374306807707308591482583668069785183915717515135292754245977728779797792412550872596252211930665277393334568266474851807630126424140667090252455796046392491071944652509483010803018660771997866541854904486896622962295009057506133987436494392861918458857984804120328362257380224755160954235744179751578767439495889459851852593097370679138784042301560270896371115035908507617221465862325327948771888506696489439904495453720213256246010659724137495319353969419945541663914543347745634142964579809533142101815007691952923041426006022648120471732843004544338130055269832505918492631189057416151573196980883145392210816390090259804324008018786298364964346310254099372461422811748081712912696839983450867728090596971750079331192349309162744925251490474253464400707972749014034121496983790639637582012453097555462633918738259172726740714632012152425079523274719474808261796104666137192010275283381331447652080062418201008000120679432609460109807143766031117848481985372637638044600697774289408681357332017684699794483213567560523187225689275988222990240849676397662086949989628563044940794058413093998268268085809565364044131707630785884278948296990353662452870520485378126967561372480735993831771340147059196774499140139509757313687040398809839365417839024145872351856212253133963849375286990364917769498596090657653520036754671278980135659583793575795744926891520111933911087165000231476844912051755086276765063163854564301648272914360311893820393089241872115910635775439815740776088586291770937010321518578608360547410426349511504443345837737619641961625536779008963952509345347519943652407228968555829070659261545319180560636596587734183359990793565704546625618756866034619886365602543617714584002113565787361190858454880842836335171401365512899586169081566628142367927943992475983180944482197404350297667885036863640194518399580255810921477578601325968617567938814794603373877397673824881545897884723138245713906146429836695674198703747533061021597552593707648925057749964648100724626144485764718910237816330933318579484767563319787860507322963212123787540403189503011785412928647098677960093983493070168532614221437092476316450200631292066933692031491585374741325000196925840942593504688021768379767905921377798374538888638396113275397807312825685859266488371886359234767424152769485436826664527508061968433939907527232292758799078271055861531365519708374213356880444065274948582424611074512396875696760103294333254521636968922942775783333966043000184610957327923263170676988520512500300348861883056694687836041824434659795591947814685373902828862770868606840460381439351806648245969770978669636138854499978862663781256436247246819734198460836998001871823997945177119632271562036151230028931459854458400080945716249095974845220079576828914467789879857376262666719015027597677437025421137112670438236248328796023747796723080192377467889077880318352720767420687503968979768565732458244437649163608340332094068753130034104476847049472652846047910115259585007518271285889507757910701992573811052234857842182860566689756801832604260038652723737411877978167806535302036579811672338119934904783853860958692295320272025852399917681779425742946305072728092070733699450012744031146365901849893771997205481386328065359623981557859044807545633276714492644544591773150227120254703367134245010017494888117473629145835357232036017071308356071592766845928818643110630259448382922556270678161450328673921682458078639299066843601919901422939763634052796907880606111136551070042475047757138817936684073151760241541137725133211078102028729859157354599064602640591692516058804366737842583385995429963342879568958491465222572860241660569661817947736040525204181500788518608026671490939304404455332874262301066939334417571933519354581438303604778496327328749404461941463553831536808381224379837048753107802034443783930542305895341562817626150470815904586461933284516401853654386953395078683771542541315890136412243782494596114002270834484524420946568982549189839499314791969002924723653894352293371658518047840677709733660592381453986663473857812056508168748192754451442296765669990847661876860118460522786456048295658124105770460908490354064859111774754083718276093723715190015458554060643002835374793652282358275220333700394544983065515180592491841107834024974360943180637161140532174483738011018315457438187666429710426451917606780561846004241282123466812791560353487017302299437840750577636979581203169125315471663956641207817374379360486397904409876736504188044735610929051502825238049031406262719685476592127674451351094333103648544841177194106066698063866731491194517621158542394811990730054708188340156501571896511267998931706632988537006677122502305362885587364361574274760261911890772087766537996993125673618878419465835118118548224725754862680946735908165868571786541985920082077021609126579796061792030648592513188088327522704699102458824199992289459629150331908351145476252795277437393239364377613644307719404523864807513373412828273543961541094275216812905389387663732066537609705101683864214067232194140137598997485508176197789391536330918015601819223493879409685810923932032789003314951718556695664599254936780170259049493769660644171818853556963611693137816531885125464363320429363228840628532819340455631841782495531921630581043805942180478699717358957615907643004834064839394041904761821726014178332376303700474393769844101588843557508761870496781248106779013065453890671428240912884126422025336107185567555229436650820436630460838213674943243600354294447957766753251474697659988221057704148386476995138504546183827756715801145396914324541767372388096880281506279661171093013718786793467246701196019156844382229786467270883045477712432569240912823743144516445246385191382325495069936179702298088646419217272580262143397534987658903332908274961818085945347510408326827379110794090394052376995234783168169762145585048900176261665509668640565552900477883118029395067288991709287547048837104189262864570883727243171705366969240505429147874231007525775017632874899088636573953887922491118249963752995736889895799903407840012086328988416921366528910481575009018111173526289381328166302994567743159947055470846963051595132476766296225207039935914333113897223469425303492351427918581527024099305636621561485675141527049873880641993703109306059322356982994735386867348208403841199222362695891713530388465907698714221880252921411112255862758369053348321168539846340051482498047700260062969801473756493855872264484086692661954067458261356872600522143920934946528013182977954466973758768317660240632520096522798251663029286964938660042948128802349745437349865315276986776058326053698917206051864203387264925881612889452784563166706457489390208077318875859076532390321573363565212198323053670839442909555982819395079855169528073033627238820216444368455375990682861997900390150025762565285217526261872345710559304082058543786575709617756327711959601506241775347608985548759936295311013186918849001133692280769215770576674980797021125541022026592993915682115157089700960875950012992742044328679619213601445398937749690195923645274233626649624203509773685891680092201012275728653455460149211608092370234612146530375965786786086161794504084134086596402588844239201943475636366029523448416442801712049817707621996585118666033617049337763371010608530988585817949607540945436248892376421325709600120738114754491225738814518045636413407921490373809924303411263797467481958598934754057509638929950318400498059710425664832094673251623315175953058285625188666005044511472756813082981082905170591885759014915268366588291911708150536718826670505663360006358673642375733869726301114557869345968446515490751946727175634018276715826299732205675441658470147602072996523928207999370101612652626490143263375771770272800541523631049440934325520947819915539317664408854271523628673676756412068805599781806608336086522362877782964163505001068740303395333165070538929843179122154568086777791850903177005853029372412182755676706188145403077707921166431287651358134354000568676690363442782763726375329836998940106863782256326273325305403663931565653163149084343562825419888835724076676842739405076145200305900468197975381600475546931960074570267902789184173701372382929095675175988556113796551823126484784889469045334182748543589991334135272291106495805013297489855514803125457112135857718295226254674043969678976380733656863319056851921838636351153366005338406252425774617601499938464260332051978951990383174660222547954788553568459143265592387483411833432626410015739088665276209823762554364732554291350255205700720685648732075232411179737991993278530441227222025002537337042276544625412848578454366297728029052026078681599128351677283461721363120329100598862168615528028279934837767260283853826527758032491480012639683231787271329714347204922794203808157683943341773100660458982807942971412743305609420247706688415867238780457669813134365731262451377384363220378124922455944923037130378457650846087085981842227158853259449548335517301929320643943709217700207848803500641341336546129216412901121022993338551671206603832990610929367428922966997033438438333045781075256272676972269764130280219244815714546374613609533583281677612616427613074575668049332594878624619955046228291169830986814348559766511534254411524352381673949988817000002882242867523117002022255223558583376261730510950289855672005344013211017062539076189240008154207633253785504989840030214354846132584752604324936577987214921138298784373965334111980065278813508336574477530854659209216584799451728840605993003527380344069716050437506031709373378957321392609827876913168925690680580472403771255542089819980668952649378985267283679812664260281803235691594401579123017642587416420817437859703220248822327063156322525654902427444711853538687993521863778811059832706462693241350335229826381222004957510611570180441687478105842100925203405471042299374965678220142713815969717999252458841509549906617024332385585223354802485543894373567320136659501784048156678299251342742253397649032049269691320123686459924864174246869666191661059041945675953431996257716158971991498938884115337934544953068867330836085829252226728612405026610688454655359941475361674635796736995259547177884275325441353461516221294750541881039844819524044043839252033896822020319439723923631039781252457213004775999919905278733355048126012729069957971001463671298630758333186361709035182347362664000311109433495753827163997386378822353127244643965949457717061969897922265227897073679234301079236414757654982648959655947094603075348439114483267184326810181819604757434902841910895574866146782779357287806518008670476392496480226866390665585444681637488200340755837701224720582659891572028425380274367977178563178409764584253535439614033376594854752268755156724772829317556902718178850892234251514865772282006755894005532591280061118522395035125954893773825605062378178685787442403805461635554820267046097832423116165708616275219071075627520033989922190301821627927515139898611594093511512783502123264252090225205924005948325963081941510991992483838313675267859892449069879256629148484316430705154476555163586590154809299906995767254475700264083434650044229649816417600925889412262952621041158100711068012615561876586424352395871107332050998413254226203319674708109697122008250151226097070530106301320872915702791674531604157133441821972616420368311326299109766329826089682641527208312608379587594685589862488709679034382362514118897090745439610692516812163746837827200634690535975601207732956459974812845841746335887193126710795864964164413187474137255113882903434118398818003317801596430962946693239294097345386128021966368818297233876755867831711697118939148269053106592002546864260727301521652902155992879331710283277945030573644814586790433196755430159613616861943781219794053214777105593737445829002596895077723339392952011457330235692734251973603496169272013443201541211940707965521701045864568883369002855975280701100816804996721180633636097909535556558421769271340166843165619954125448619669058974364541332445125495278256477454356158897270899728077840663632379758194801915949291881732171013840010912388525626209310077558602573865528771790548973938046890689399801216164901496759688364480733362450292516497250230176168128985983923673034619291549888232010521530305323100012021844635179010540226043715882628821553970011934312356184464398314505961938406913962289403574823243220513147652907465337410310143951963878676432302838212025888601726076118498863479544007178102422605456431986331182575158185110684692434390570903706396330896272874262813939113985140097245898218581082686574010748508899608135157388373427168911109882658405233937888927146575139143779679185331644796419183810138449272551263837625258610247821302172459949215145795825733429541416376129243533122306598557808060569918842553971327731015714636670648615116329194584102560929622177290980899795123987163560710894858669828173804948639887608083999327362505378624226669157659791006493165040397422583019247202807165853225383995037239314525135865634945330105757526587539111479020926551650948855201905091494137397794718176768403411411578236001227804607753913009242070143146387497726701181050393658800767061324888058197627487481740421788710580640040500924671732213144068452279391429393709728081194526790826104684116024553619159269320727713848222940567886603776659616827651037360234019577781754809897749553841931948000240236816756475912812053971028295141382497168132065229552730921005252119893874581100232962990213646782712515859992484416881426155984055568029151751001943065491887820369598159152509069163853034153420606181735225056780945612873908541284125558794983378086560840271811650514753376504358258881623920382234512764369305118821046125881366459077785214878783264732146578335745660030958168130853261582231285000067498657671444263320960805778599066772533751792485705423195615448912346472576535794952622571449733434768436454909345869279554085148493239910893059061722572405221282182624160960390998086438909305637663171418934570014845054207183532378283557524700694212991867859990898863214823208578620149301252011178696842869516881854362485014970668880793960750605571790726711903019865061415236628920944386118958210046256313443996129265022041214405094782517284778101931679685686274870764699637709037713218868725489967324921824513057415219039953355904540421568695901983017821184437246462477828387145433867683613196560982163141530690596899046082005558650977672174056246435971106285017629977135773619847439811053320496973799751887863234039194466285729915669169955064041477288134114040719786243195582762668766170267745989624045469465609563462292616697624809874936789767585466121241111714858713963786438671869195488490459941825293386965075919020364299317889342701967154518300438750778667913313305737172824092338485587545459345297428996148924592612377952258298524611178960645106670504757406759251209487217033960674265208183702076785188459555145195542646638232143333902197885940599076694547133705489658677046986659064113192536965597183634965873122153413214363314765715671897747891389523859190364033001923688260541546001605046513758160168901517642518939846941139886721709055654226780392911405457526206226078246889300621088233199248901820739041536587293866962578404573942900999918778490367409187599232204214404454246312654717357234937051345494205510217433445909630482558548569924158855922296412515659296479471482436486448245483539220640380680479136813337114202877802553516896257554459030279216707132637623547404527759326317660159895617653740150043900735182871200316075938337543131032256845422821909932129405035390838554598622668948277101437271571395277934251976142795483219818382449181219697800313939939306326367498321393990387818544004835807800664355226294615590664920568873793197457658477855596737091116658448248530185060478963314254805499661557551109391038285965060794367274953262994240766699401071203564917691321271672630358346555423554932209652340366061816561765751559837594237357469995285401853664784655059381723271128350607331921641581714536489798543635183165324462117076811197725733510860435082691141340817118576504477279505850753593238226893579242213387921745531632897195495251182589765761882161433512974484261875165735007673663754552722722404760041278795585648386798035874744148839631602544230433072820990097650256973600487867095487077300109312222893087405915040836708421868596404430859333045039390574569598380304191390652580083505343665339757260166165192841600867255698644290668415104938106522621335179082930946935994451257840538784649242341421709222979337465540248309915827941428932787866580734096272106401827780354901683926830694300471083506838853291949654223824676589440144137540992499792191025406125965878738237946284492332394270651339829316806688432205888189007409660684196989197235205626116579406905322228531949157370315318845465503116218792261222490646238034929670045923425244276706348700279941494317102152373171380641221142594968601118488362399885046855454466703846048952677528941737318127558134698764593633669768550330581540421405973262750170469061427532689970249273902933835144199483868420194614706801753014332579749152156759271370542897082083860321500718310853857932874407705413089931333814950508832883216456834710011863853553741632608326365262833583276253015664624196483211127252630797101010825839753999164344808408229841143729842930031179906625605622945930587547391090255076118992770116774421683021295254199009607970321337271557327967888644357429809276457023293782286899961614563809379790290522927518646071071209162539591445753255563741175613411621990981343346477703749596213909758941217808248216668676367732854824684039302703026147407476914337197488468810559516023345921524435962918486181493174877177201185246150687574702549973919470507513765686827038930694563835541622095081519013770272281056742112878814423830391017151318906272875980909472418301987784091050710605601784400812139759912195197558519169116463916992208380340775726521771699563977310216140582607983829630921400378667737762281664914608310944423889436600599495792198139179094704330433404552279733431537247240776245431422760094266930495403503632693615283866860313055290143227009871416005794266388722663500233858835651500401873487771291086281029877357912356966748730306225628617147040273657217055276663676045950646961252253345893193212755235115294063613153279487154231664181706874761487850141183996420559518545282734756247676399536906496834540999885311238281730811419301195214936734655265291654569338563249993114638269761485971143393115419085308193846603354392781952995884931909769780806496753643114127211700353173843834979074243033706250298988585982257775932106497249118913883213421784472378423850553411616613535722640598945957856893661032971362603685051806042264777667567822074258904036994810892888110134760866234998535956292978866560901498149008561604977374655310186008288085787515959651067556730115663995596286179267330515656360182401650316987615819184761639695949658760120169003573508600370834401573702750468733625897810425852996076121642864293413596917040367581024188673039817287221493939993247234398085741750907067056879434199856635308695011789466163960932154563674062538159122733101462133377914454939926905370750216977086897813005266852809917112271592736986655236955578510204827325693060041973708914335574606239897760907358714925650534054148686228593152482085279804726247241004167000108758966146016030281859469311952481068801327888198705524677724012818030629690279474531626030705697441425460776979968262678400615783794675621115878034374328729777270935965796758568280513171281769695044463574538065907202033761055528824351049186921221063820580307651365268467513141461941690853912772872867576385527941921936428239619721438787436827965737761297368491980747392650444629051498407489242393972432121287545321204901898885891049901245444148686662438927820409188889805212924868203754272141538358034950520510805676504159126409199284530084205642047904487558067881356200192775495230271613400683238443998531106169877107311345414901220490869440654116751446507126867399162063713214321237245765874149598485763812785990509078153174628745438790279318208230220359366904228383247098397653123717489519786991912250567879377948858106196834234889442733660153388917860855459886248894231293387317349897797698442642551690013792392945411057090866628187631219796816394410776570170123285721846850938683644445123954940369474914803069677879156158756236835695821666911193782973196553461242343740144350918859476495650475443674851115240079814411028772379844638650867178877876997713875250078937894064807550403098678270588233340348169228563074328782668389758227516399997658910227735371185529192325185794399018890713681956131441911352569174275984511467677377312354800731116997392354084475297075217386930375556910202418238737626883697815665292338146001559117279099293160620061854975316740715862220494374345775434756424268137440336262146304650963215922413167168230163935078129753832365758282621205652583118191851610886648878867756735024954441986360763486264444914449765517507867888580085680122733365787182547031606643828884745083114546973358841905931500746710685557319321625558238654178135785972184093659913698645170169915047812894543265415106876443149942107880679668318616332664762628564698716949333446985470997337416755938596683523140460123361249045541337752768946182547574696418005634680556087927216586941875858937028455369996054346248420336409935763484289959162111697408442722134326682334847050703962755068652419798918013720681193220589321911479685218765266260276563947602346575020172869840693948993531803608107386604694209308035668712268949657757117688401150817516758508649405207885088847574085255195695292557070510720995345675918404085723233330611451769972596142593988036004770571107420551674621508664097787076373660707744062210798833271734447435227803862084503458488917031093143032206816575724564190604134558331471896793530811821354104189658705115502508899820470143929320591372662263619722604649490770309592490559519206763142098408862455430039426180226466792215445218767462530431184642274950897253741674028276270175317602298880722346131120930708973035227079316332928663441182894160427720520045268739288483542494432590014915047949396639107973569973175007555181952811452066614376656207541571495655644177056456199391409511235052381550751673682917277025780941953856871494867342336498166040052983534415060526457517564831979941662205867384809273232756000284788895105128529472111010054459956960965315374728054488994676791490128734180610150362588109919831848747423555747130643505314018137566702188921466901915853875705397453513173915267627510208660531210941216119986730414208782765326933911365993844017999366601492735586088543455129940576545537157840182905658806890449876420555232135939198852342567110724608839591653709461242687006148691790462983909113198139384848582788147402211066767103180089853165824764550583503407636350499255365472012724474856359743768680608168981966406356303607734105345669013250757046138195377746711914660430207801640135583176222261340096517062710394574748776841325718187955589283694823550513006889320631514204829785817036953526971812756850222985922886806811522675044583365763697597571181551255891830187003909620477891756635094382186548876252622432616822063429864390396814899510860738446520564026393218046176948119217024067702653672893184006810034674955126480742403722395785879990084495113411681533991407560430951087026818662405706336294910870214762640344766330917457930535477099969397660985749726737049411106202050754903772069158640631402819484824614885100863835749381021450067283109936696358815011166199950217972345145918359633257727108112805005765926897938141550428318579989303743750303891595410772467036043293986719948686443743365731381756113998442112777532804229023165584856737431955766594663127245085636357224572881578241212330686550953875759189308283021768446110363461470174468044984096506864776030302375034852271245217716322519092698011306154478764535351648660240434098386479689528075667864496556986863791830861215106695160484958046270305063980999334234366064526504635644175149523849577817540760416486462222401595205742146538900877728508235946273993836982874856957945808198238315041544241520893285321728159208334076941399237172435887486102050025711926590578341384522677046388546390145677434141003579376454606192624263538505178206914049975994612683098121559153599399016815899076797713008513992406532150763309565079136750346074307340032364650012263241099798947473405652993340575164506740173678096133284263132314227401325933123967561901561567637716850691229221467687760987898525430913167963802262677010243397838493467354432863132444140152148313145897994883870578329567514064198855577133228353319820865742599196922440849897425879768189056523940903917215469295704321101318469585611529895248378525953577319673272262580590571216100330259878683036045487686745131957680366707473639057792108661431285867500363694434990157391305434764661852875000057092155434106303455774708123702221656737215745788846632352264812416956027947370694738629714099786994411170236286779682037997265789897258505357076590844812762850538889531557016839842095138168099722934218820378386417924564620804352045683881171686699666180800421530652529023480936786408868266528835823737186893108496295217654912569249834533988497903397452402065491238650494534475768984597463088446051368794898841907031667337112123422154441064551594960217906042217013589815749174956804510908348121241724570360284911163393859218708231284586164572216577701246160824080055054078549404878415345604284364306709847696698745153912292286622385049540650711755321368516571433161574098524577888594569582965090679974418008362223029376655962983798825468693952411698946214115505403508896491380542471080558230207708045015856591587071189836128090981595493663045828525078181648657558171541841945539577786420366100565152283069357590836522571739928717999661594503101866851994305575090352205045222813100696901600083240173815875768543090473067179871228004053938487617613404330478059181212054040102560825895000225484808383756555028372167735192165611800970806131993281851598663515568941881991441374725510556501851773733202453981985418050311257692490487596629049545037297756215064937485456970825782167575291034656027827825340645421685727300942566538250947839078527109153940062137657727286589454207465482897432494835503512819607498604601855368246270011050313041666035251222565603582847132463603334592833127229381534535092924908723646054430496765337273825986498283615187789811413266786799285778304742670586684783893394770326131491252284606512804818959851210838690671648838791311830743162388682186374333226130832158949741988946738084132935867635403699215839407702122515043694346876078654605090546952780394631997376633463420910615472387420019931306392999656123009475965317712517300480031448638494789304408911488102213064667182200404909604164042651865131465199012602933431112275713121753298254703189641760275226069506981987715122668094705034202786618474668009886696624564792673648509187332109687513605047477823736385885664605267071504590465557390960320000471357821375580512795783611422749208815713430582330638919116041964012633949958524059084803691346842508485006563354560123316752769576985793341783890877741988551654008566635678818076779897883565525563194918328986841081642664369638754612973381126009701254031691155999786418943103693835156503654617788932150669083349592355380801728191221779766259145646016009677973422902548521954235363517205696407176407438170736680057112680062728390314004409954598176898460565196754738324444814251015897416102217932021443716757377337012106264865406050421064236372315938760517823948529851058847680606767829673150231840966368062006422603707328894592047575079005599769448680075651886709675853864444775864078377298637934193926104247054050823027533576379630444981118010763413542595667847617432488737399786651458373751916667004978703015554016938658210003437256217279745235499374324416607522932633845678063048815957589110348767078204108266774768542760935561625326004298880967414032892081228774252675001654069688608436933658688448429207222147840253115733131670503706782316380606392595338271961729068760336996102032823246830007927656726835916999589480618247565134479098301551400393864590280614740755660422815838662589663565057347958714330328596962968988271515160419830064583367245496472688821620902053319650202213072723426524518014264258366468632388798800996949264677876570316804910607196074876713811705978075203465838603291781264822983050400250012969254397875593883734956462704576968896689831386036309451887684306312921848971690494039127427342535669962156400532448609217055545517391997624115860842428657554773337813352093148622591760604328244933362789499724133628942991258899653949138775967762152452431619536746837771513765292728343863297461671710465586660165672883284354419726355901681186628112900347376180314241954716265634111338464534506369056787850413526718936987571888251966920295604908417498080794138101654325248589702671610685941454675371445030095820859294789837548206529941303435014714490762421544952528691834980110327907212415775828672824363018066790364354073623628618530384993574703156554563990825653561288818904835097236802062932490228778216203669802927501243747285083074493904801309127050090844261020876370821975823793674294492071209453130800771101683707455958357428618294713066422991934502208136644554978506061185523882432035928465155782373540071040998438518270176092549924027228370165003999703536034390597504675543632611065898456956468771491216575948226877129696690746645383036084304487004313564031582743270569686737786729945397127112243186502794937687360505468248104925754218787748074941289156131504245965606850214132076631067585748281992203153270406070420118010561303361939777914071866897545630292623545521469200937023023678705447209137779214479517571641764652957343600087044644432394425853479813391407270371823032539986669610575789664177474723906769310155225589662277252065053295140448795894447144457939605001930476146399247541564623787239042839085064345909148989188311460937134354963990947342631001457535177701634429895631247545746900812194604104011645592436913158093042478114395920532179365255958738582476995995989564111449250897008999261870823734074891315364882555562055993688076384055824083904221649807618750655991717182131037547589044099681165715941254048741301156915121352092184373478525613156855115987171595110489555616013999698242129408601629365447337734620553657199794330909177327424999002679725991247269318822758547888003539760019897073423150373205197360249111858722961638743465686940521328310065227357464385697583466705215289048364827356235399222787603631328802065833490715251479064275230059829794726379562743226012932975100704403467741795954110614773185980686049626376351180900413728076990613019418046084252046626757908636252699190300567537335610608408549489894349297728460130645044193871319705947597796941536767994443361986297514726655222291517234195718862757623425127436401946319605445818660657075855764547371642350415992569824664023557177366665635965096804328461072740571668790428686611348809266178510290163369126664268604935774561391534931324009133166512243234412121275759015912165111029755077876476935636390128825197210642106367395801722601710125931519521356317008758122938530720248248312107114477619355641002135847457663037841780876415620137256767195643700191905104923191338755669242195517504180492585321345435171148769273931339989578578778852116851164288695332526728721916639818387906201832528586795131019291874838793246039176314621798807204346359906285232242959679393061244100623133193625008003257439815678902581580539551467440306309471030366146513678740400806059827710526344133951741216960446162012828705485235393202326549324944486157290301592707602711545210986102970551711687398308258539876151357153464939039527263830607266199661551226238657272902629434977768165462606934878637026832710352927839497905317120207828295233713791364221856039351712359639527651605832882043572730015337039488225606723256689516298894044830935829843350731305301063839845957830407600321828820028645543092118777672056844811802234073946055509804516869331463063215323990665508094387842534460074813037790245902566685452726295677573944133083857022645707833444712762089183910628385909278285860631319812720884761715738611618444507294816545669365465792980463320690123206914874811105136920519831508384521604838278617241843035877368307474346157510519540806677479046499628237394563090340665203341278163398846404709333064553415255773821040022013493471222575909956964508288475892862609928469234903871481816024781858392622542566478647926461201612188476889332521291855713470110184273552936634954684189787670602616285461515620166915748276103707636701334999715647400801104899408066943196268311363707612648417550876193619486552816803694018125698596905484128369039301851795536280344581972831088484870248625266882397167298147598479185056500238985805694861341898454679375228859217780156813758759296294352551708310438637474336943732826948862004941124550105851091835657553634146371237768629800191269409733788237373989704019114389149969640698041254353578561182740518094944533764469402549864503476393845485806613096109347760128111129447840659641613982335937587580218239814542421041300416168099521312386619963817567042928887148186095060079502263320330170405148286419476553375288784349355632225337269945706063794435456510988209698115785407530752344049241833981601855826663223339241101312963836727001718815508813951730418671179271786595320216493766645122192468045714991756279076807154080866062075342142947785328175543672225468598312416951815237964450548129568594276497469900189727272478933397523090924771963748481490720574892232489125988514734814682293943740404278219202521080845772663819358880797201547153152155010125294942390865753192030842921420343858765616335057369252007410129415143704840194760423904090456320497598467857299342547043859645104836836417465783149527506704586799051422797773093627353045763045635108134412064564293214927937939995054780854232354547974814536051801414925550937224477692768365916983630356959463525106815778579272406203297056042084497180556718433266696463733109120605283783662520564891185735089849917356024626077833371048499565754754221653539227918058068028843723492339238557310020674195078698793338350655341992752867941955767036165949884870534074566260995535332146966386167615351715996489997688657523651662548577250044105295261608265739459560723733946541128313273256101195942808475130483962654830215570592675547107538473154576128148388069670180435017151343056908156190593820228967537836302785371249922060233279664514056942656625979931630261646513724248854568900390849206169279026382918701227135519714415839341699072230980508685713191590873636959471486397759171729564883583879257016080915489762421314536863622760818683899123094181402791451192945748325649505745886127738824009093249083311578079671866060874403700704977193032460626085203178680985960621543061884980035027917851813302933262435844302770580005816751841277831834208824457858619720951318442396044046968817011058838506198169996070949560735467615539283756050013474783993729052451409229403092415737635376599562660465689284929212060541667113599843461063693684390017233270647664586795950788521468743364646489410932608361755142642469228026866633633362213363151492150373291090323870877830942035861903969227487905023172966176668903113455516657812814986350209393902022518141579130537863113184979779703984453953991706687062600793178662540605062956511473926869034441990902316464561243555920491806760668782229516007202509354248506862400369651650198658285479157603446334311136015772173524172135756644355903747382159616761586253561355284186485444386647967542743014272266218504603588000073988721975183918902989267507974699099279263121500096434034092370700989036377519533562537283081687435115087887898583449721803750861624846238283636449155524664658165597960418092608185769639633966489797821267199768320903314476745350357334755052983140693372265580325643258474196233008403011033563911347459752453249883684302195445596867236832831389233861827397604842625720259682517976120067516102893300401658222354111607507224076306971671487357043213657089989300395591236050266306134457552042783421902497671480249705237061240747403906066137055031176810428422370596664136852956483198360884122661096869949008367821759017969537733132206964130472718216869977091620341208230651363910072749853430237090903801624951237495553973696750966909654068323820759350712649694768454162079529429434733582313591963121008257399147130233867436737886478936326901525181316273496505059385513078051374058056836085641542631941996992186230216998167662175290744576880294504936511666178234798086162492558219445819007209041368165711757863960507304049590809422873605754713204035865833297048526095873496468853960733962205459903694738409858184621386873299312636769252171443443227892900826751092901957950469399465758199266976747684287795765338505207082750663153974523552782182856795269697227879435427991815731035762070826303040030520248142210422548040148470723913483129048718882050225413299746071911067387914421990288007859157918490801839494089044929517252679795300892277624912348011624783342444978260141473573095176373215945366604075188872737557364714610178640373791286055401828965201357060536798854765125548118145861921179199070141264325926474824588912747813702994596198489770245897735363630544167391324067017463700570313662172634974414319403018737348085667425088497080249972009582830390342663368250980953770779601089300039298448072924665918751458571065495838665711881392069640446938760864193699885771921358058424466483744906074487974496522685821689860206092704642884294882380474448198351017557009458747185641367952036363990083304534562015968804130821591317543091744202981398561494930752978832360988432519947880724693232037319559497046288128824151052193385529067406211047156972287365570641153768408168861099488165602496053391017914228537262450262139045310493172757158477576365183330296404761990496441309691511017794580104951704529349668648264495463462885929646209857101250219376421419051605917514956724276959479709926563082562189313509955345000809453170757160100406228103871788059075997243986682172240146165433059252352675983734618957723006673224215376760754191411246925536651036580882152604780259510770710012338917285426091823765906828475459682054244447600142871125548012559539382244409703124138291434055984317475264914728436084489806318525400327207105909289391785933596107560421775736160430333060324002921957002633211492512215630769980439695712115584781743989673946717577066947380854282364483872402811244584338068392620319124992063680957641764340704420323318817481683507671300132840535185741113091889366940464512394655832042658587504138291473786303583083707484520512214025228523280158647485527831878514179352330848343483987005369597604461755188411774345545001889683738534994146513135118372215991150075104487766847958090814475558290701814407460120100017983872845198139629457268504309201340366574099756380301558338320397553146915491590338907965881216539092848215559370842121744893686489183287642863613953347247156518722817323833882321836301198565088256233424890852005412537919948140552782176088555489207638348013235507160133105496125676990839053627808884313881326824667721910904318660623282675903935089948200558479042548986999066544469905352597709447650555828929416433528117872425506401057525795805100407416459986415037394082042991224157370460376651140188204152574602385006091961796610004419576372473760612601904809051389735462217466203690510471802687041904017351761696399031901952526876039276102887540713681569839375264396676482988078095109088199979015343513874276403101300573227088859000527715008935179385652013033138022644523804325925095846789111736005624007934377067059789144412667791586658197370607978734715086792007154793754275009070549366589301895966325986237129514251086687777773767284316992202147703778238953644760522966795355434604981272427980490958299875070946142025452287277483239249808284875403334071202774146389816472887017833154109651789208969605631475955187612375010137737023847347838262253622466442033443955595707860478526184566331336999230949224689196584631106129414895235056027831979949846145134805356755850760375283380758652888349938343578931038479467072931242487964886104495144857817029398247116113715313790520508732500796715931322320374446400203917866628949254040102573906967222402308643642138895757172140096684855019100544959351052689492220171620388276905723285475557866571736622692065439245423184938641602283773609715201617827807479227931061623846076194609933954169718941850407672179002244188579069045518776718634162462489767778216590589595251692733498733379119130634719710871283230860459060937203709763185120501080985686239056389534700035733144841708639983453454179569996703208713229995099846782748040530039926147039898684558446748031163643717959050779702982335253594521495551645611444041687277730404369977032211287880026752127434273138947273081770972825517164130999498117133975346998439219251843908576778416414082194730097122688876770813729311628335990743392598980388764155244410414270787636805896069072971756977437904753054175053800139844524025482658241307493940620897169378700594063592963653021209338637091595960022907573054441334811193490453214212104697878475801613644691095340031990331334705225089738198790818589992935652204174194533792214028977825194860473452985258390072310931054037817924608702479269030280869767451490057233340500132386076528144803629747842272032987673844489495290574522451901778896518407769903256159291899825310730321312912690499638882705076158367484435513122559928460771016474429048877825597861508601375294914136958965052680723891495020353197305344820351305421797407726484062037449559758789931663915119591463923504877457176232278404747181033577107066489406301482248710491091549665475394890451036380274179424660956438009766769904040896457554308999887266727927789515703861658465882443713939776279368443891691241221483625040223080363229363558669792051039145899836633719321476566202681440549634847250571995349911945805085241805579635575931201768792171805609148115176126709358165590470967238771830669481878786666067311268437849088893947134034919590784252228354168225470274642886957691857473879016536442004901907995696930757925445527083565587789502148085808887013416847340304390371975906739649050506276471744596249796518733513719575409274868917695684633265828474949077203724040261111008861532434223968333297054800317841311900403252590681347837960069628992394457963953454159326771657427460644380785633524720610740640335494871772422909229179809192080834038860307395135259116423521860994582186052796081003345400537521917164128401970694604950088814901509771096757531046367891790631547262804012238155109803195645213607290088342724951118010148758292598351474397648990316856907895381298107735868174761139423382474483177710438546806808459137031769428872161179409194831534697800541296490045295356068385992762506267585274624029740185572616010653731399556047304483140478142588355950642772205094391318226153050635009935209696645570458501466033331046083808703576214864205646558795815010721072072173764782236030008909487382733602839374546836673281046534443862148908783034465714709185419916622258429959710471969176891236179934614933064406190887495238773695388155221811339789624786917268186015392813561610151806861782479050237319079375334760753401731420501774665936514304156035581923373437987507390765256878613199377236883532225360566802921433465998451801268948397011733656808401075903923761602718250279788480227319692239069204535639661588175361480288042497114333057603922628633279862380116502185050091533091923710486117032839687633267767371341240415589691540450501874966536053366815953011711971805298619453713940786363867358224712115119422452145382879292833851505724559977421710663146544430947906125275098693750107440784808953051503595585537312047296067385829699548939795235122114252764181149534378092161114723245698527011637205508220296498374184901040986471621207382000874688468469678789787614029071514652626618303376563018702381804234390542702510364842588564473551015060932688703471090530869706183535023114776384005188606313632114653578832491887842168857749027360160701388719593851090550596842399721412087720508857486248213252522620355491519724246619146892084745529236193089958808711669088377439852751426549105007155842476393895398830845274453590096382786141120107999520693922117621740040642396742343302904285744810169320179508158860407926019968514462407965197748471172304198835022233615088632699518610630168788817009330070606333361087503423216810943331896129435985317613668377909851997886852945939165368535667391141155079303380233106865758335736158885871781752612740974761692411957673075825065740472949351557300005744990400651685918761365847344267332555283115166540879654767282854777907570090887067129895261480164712203689799720490993637833538182038715748611790076852662773147869161991989798906338343120896355178410380322664892700414853332554021502855362231183539797663671507519216845338118141706225618018517050746509420804347415475038664473589263711367257916598677392136857500351467412324987932140368075634234196947120527578850753283013843724200024323620602811435194502975424287781131957347886092470619812731347317093991074195724886267225679025442892839354758614745905186441971254147081087266070192068422965724393280727722654351402921943420676190517027547619942352455390218508121653371672973416042623693658413362766230328900762078341548374197836044371220187571745906678102664188994371045713389993152184100267328317476990549331718396391622006904235515857076426566763915001369405690897377710332638481177052183664702522434513993394622223570726168760259216324500821850336420829414769436377184056835694111778017608439901862051467585799947809355416104608846370416610253187035345537367682432660281472568830132669847457133978861744320718602527437452715750524425100424815220329779036222476399491104758287172376945250018100423356789196854515812771785570628336481390445670253964912186017276156753012003385181528443092132633253609355652769740767433466609453734166543152962652566358475671110220794881147797159462664819003122907337028208590282703566012970778467811536231645045858630737198502970938407791617149253856712926324088415144646488167894163163980937852203897686069345732287265393274522936762965194765022466867278096747965342225049648579563469800370205251558458661541705738980923842587979570926345899415316988262592743741740517600570807404081025528197498194330211382591582348236750483699449905542642701418194709457656413518805581785344121844032154734283321492618327293298370521920237220297023634039155852830105969426841178669837475893756260625807366470817880977639238996068081643728603395374934239885572052726966927171035654490279007156761911941046042066391720276016169991280369601036199026967749470731993909587048325843460713406637752833363711990455163378553910820726793849918607081386983119959397788870154500547740694069220686507739961088693850619428063717500464791916508752537290773173490179255644801617095493579708046300367947081789609547298162146897882620282588582912092906803445309161222847871090692997252838359225739824299936511149355790580192741255183759468632483936127169920246995290080167426213311520939329891570994780983689055694301894835271048220346644487382233043801848045466174967427497729991935509737923866819093996766780123643914057766183496547616649125079958882519411166428602653073750337388424889181693353354500404708875335260138257943823451192290005423410707550119094074708650645471681085522428941210611418799013246854669585409951726343087508941353354619637666943018804515593669879742404746521573369723405821530637567296195245949696400869905999870620553134254191995858086966470297571046767858839491769514568170988327038898279029468358825410087234062576213412703964666696891345673096711676814333566033532281198108999952203820382943484453152179454680100263891644996800885389618418221899793407452919531414553184106294263015756283585363051141457964576767051455316609723146378242608288204855870810733576721689181281651643100574076712125488895701389008520039886037392340594002392553584760000821778582547634720507337136233117088810069260050863119420385344458165969635712328109467198574983968275849895172573125273488034299432197121848390892442742497180060879508392504408571305011996044736593556676044432843504846616039263891984197877604448031324491792118386814238538858084617996969117175597457869569608340404696320347314552973652583504166966817374755483831069760722157834043691652981341011428686272661304133424718350107800337970641073198634748133584302257530762740761527373113959604041040561489828242018225727876621313351677818991100922109628983028355640980578933197777654168434212183189186575617784017924507944248156154304773760509471207413059395761558029937440238627804998574385704316768022290961184255244176926599374918851794578722142252668977497897420736714701570473147524287878307195280330425099274881397732135497691967957065622640721977208705202878691225148703737721170519199280719452663627670402035383296580670503388354645641528548793774801934335411631545963921261496289037602373197165948901098196537667978927929822194483714277602923460384845807119261675979554443396371571217180785410098208261409728882953562480126065615996688302977559482513556134573327458705946826038446436577846810404759184697002985539671446413215371286598836595818249363659078483853450642354119624184917674111459894505067301088301852779657344113723552751251295657997362799648032271534751834776110668661477000837129438913142539225746050743125185941653729579916181688660382742289441723463339536553146840410742779680309078907837942241148082538685744920955346026936920123012493772100756941277502625221310288276178036501574886843557602797227891766368056798895326994910682644844427828436622244596494277303768327839308154795795194208172005950421728729527567596567237613340317777986710571372777294457712662573088924125396164235393746750234636595437482915351602749426776735079433365982115072987791423742769083426748225480580595735076047203968779012286841671768859290887890285791002009105969027306861583374471978310881015020463661505044842057830193041202889313619036679531634844754056455443812267102326728501394372127367116553993148672347335429602722756397764496316622674696695088044758132964444962058942217202744267731432596125961177752504375618029338362018702213082926391703484134147892393941579461845018266500800764886960755807777932461874602214828495566967656069670855871065662975793744939479901754421883189708137112877423833797489059827946418292174909239757888125731262548174672252304239907199784776550329239511599010660797559815987714875815007644773039266266743853983389915605203735264458751377946630514851113461701121831122637949266781730641420133654434497227515042631222500888898939829897201395307360413939382153160036761200336765000513157138716207074529902610335386998572392428801979357112083582884574655859077566056802749923198654537190443247209339753064809733957026159022734946467086047310063842767372141582850310387645994628124902467595225144515441937782237026816930308485893406016359054851603594020720421709001475076720043866915075997289797141231162194704181348351002093490519619323073888195288567696182283584180292847181825452388989367029769988039819676928854003808640928696002565221842833382597432723083217095039322061876423741601646709378907724306282648310256557961840812916992931844130033120000866751490909334472005888597040765759644047623996213618102384149732542722288141940670262924905716421161202761371010439608605407071370880580052655058594446527233228589846512010629400077212666891569867152372626475217070695179353393344625813927943339995649774340861500319792703845581684390753941480872812687593596006647042389000961079410178665549333273629641887134649956815565930491243543894505374686183058128268430967056609767648429103091123134335447732771045473258771163633663164484475650753276101632895819946022124269570197144098634717043107331449207264219826826242217414719098172823760778912016222215030411033253650214878474584906728972972172002568463438441200372715861200681280110796489533681334080514165838537142792759098443960577243800711674758649012326593641892016980720176463858435513690536580947841287182802146365854253973391347754930793874912530112165795034176168032160638421014271061405879379872863163973810021426234204143243815021880885616883890198117214022429951546340938021189907187035218743282646192285452110203484074804385326639923737141336984561610915873214470885342339817644025282945473341205876328560968062110811034642167250914504803870952870690183227070804974407347296869150269893482373201030098900598804530671757387368487154487664067806991956821568773774724835121592285123148725967696756458038620002694463919393396722777324481571357358994072565204388956326741134059118393398477724831130739380934672403983090327219945971358631802627390179641990396365737088139234813478458270527913848742246889709388097043684659077192431451003452896952392595706958841744575160348819812660316843471223582004690710848460544371315710409275751834192105850261631902195320374733450597609686200699328535683690392932414796080265176434335657738256312363544862969290122637346324850346232403575628166712289750452888681188961833672688176943814926666735908495597803519727767641195457531727830061526145946276411267041236374454069042841255113985922568849303748426642908622662993149290806278277064513753528530783364972941143230654070568698991640715270091807500717455991700071803242050044823401760457198016956928825317664977343469481420824378010741501171214170304199829738465007555375261552441536736475941384322165600529099632571984664323626266514468668695634321268357370218694554219894001971358103781568583434881627572518908681567948073419209189952456368978036405635870902221753731931641877969062543220852159589596296217772291529679479676761873804668792414759223786293076900698656962172756483412797179505836512644362471746507055674724109184124985684657040811564540922510660065424351366109032055174468052670522883340082297931643432649609475232015563022122351929136231267242462762262968991584358354992670635309717820609534592616548305209691226389855275379308638428464748172580568501377313567576545290164361466356161124673047506696352551936671444678285659346802651259427318607197413504728855344122219487461720123157807661248058317478163557076940239645869742954774739119675511130925304510786614233888683336282790828612308204581895978457911015594212236242416478581171238923878704437255654582644669214295116229245161206551213655434479632967754043779195390659772304610873976334179819110443900487648396804852525067537602080702419882995828595524452645826265955980655841732377893445765107155144475405046215591624598010931400721247781526700276091717980195231042372955917413782137140905954284931098580064871116903948038656306598525557933758209913989334333343268611952000698538797907412389395990166799763837183708779926973339053538949350845002786323343335987158828371047890682811251440334618536768247410981188394063602693952992737625382624879827223865436119355028604853389232353823313103296242513773872729083915830015863139743976710539297612137978939897376051462468891802710946623923362119869921436413490430190390469362952283691814313291037232401499973272910291763752532533975960389110943211134343947461166118725369596063289520315951697262960749977632789793251527452630497884731851557305983073716399899903480172206430002363160504761934329329606951964790460831921938716131418597530618715870385942827753706068599424995893641747001735595268085093370212569326189206774625724259624925975955051848649822190636350173943061443189142583895855291259053155384887405907006045431278161870608434843618066804281204952887568810004226797300333585061073158234421389999343937534523682408147859363015579266823539653419093004546567405563223376382533467393435837168931534804895553823859659329361355692340711906333164855022691116709144435462751361103531982556977414161585034556370220341573548126265842114508357557733491563706314801117739169254698128786395857194369145435374550187681873875384289148032988812259372624476550784158122400735410730714502748096198732627523582302222529439829834106673982361895874504501827318992036391882209876168790238997434541255269761114261266720006640807002094433810222924345486034623570411350257542363524663814984137665252138742899295801515994778186405175154583686231525390913570523810858923737302963735364669155581745979932659148122375824386437829580583161513260789584902871204833573261689373521553621848550438556501987059292768699337038945876162644823327012408865931579286271966997801675123206787730161179607561992758498675259491202332586482510442777764822614429962748714169541653574138319339532551499026297239451388684920434658720487815207043010671697814847078022984693943698374651542965322408104971916304593399650029221703505844965291427430699420313288131973308124969015088282378677096748862471342612308851517437500890090710245384874862028642199122548450865152957423356629573291425341735421478834696087378222667413816918113057429597036814887756634205541690639595775536402259139521980170218373609827141440380876343169645085293401206993659404578460430209924905856526110517249230012605000968171154538961619469431343081204160520666038397787049058542648383241206647417039913363311662314149569434111166371373334302584774908339517577165565421620883161580280478778186973510862406543839735061212807960658351698295413220919440938875318669851549505704917890952369283184581505905442632642206314589098610618584194686711171879241795308534326640963320152847652177279399938130252247117415874305792679437375534382228115391222683389612645005787064363392500478288762655414243731429045110411266729289677853763992539855472590330356874594171588022633011647585088746414958190964906642143873690748984086307361558081420379495607566402249701710842476011730110008010269755692669573992728576459424212556205270094435004221679908149145821241135185926095923914333023378475487124617959457160002279231464249649874401853142015083560075182321705785061310234955153198646297726116354812799711601551698538859075669844618012807278460070794238649800022772761916654730331668443850811709709135456528611026050353868426896881589078772908958773522734595748469289102308454397898312168151431473474170173869039877030094253660356297223595497709432900228543178846306094335394564581688030380107766880531095260874624645270836369503188707651197843968696328064528053861356344460021905440246402628734879189433581060558592553073428566471250099051049613404072146968506543835195727166078156965951827026020690059302667343756984881896772029671330230257992128654213213353337822150935049735883233860161290721057640288278622799857878240180211264959044538563043349220607027710636184492651846023954624838971718104257031485843096222446798359745312256562421987724453622867629760564468727158151943036834088157884830078304207826514012565159055417513128644095934584641421338074804882363862286670750210912433943106839020172576171562971589874468592570386714115076983272574295662616796445585111044156905643689423676176126304427413363451597198090329832209082658756375819495768509521487097908230970667995006392597103560710655409862914910940687244729120107198743465830263432697198822877136758223370358744135057904287786681529363943286689375619608626743492332560493948133481328635368619542535661325670173455946571801032195912710463566289619917298046656754548754614712922321879102171679892434340013349775223454622395304014355774240353543447087732266450215980132165919466572266805116343715814729266191204194893758568427964597720017495665396365797586754693500312406139864919757719351310643359404957228832867120967919636024111085978112608701225752321081427824720862968482626926060504169474212829566182459154547744025546604571888646365868962884106347977079341931141269078210720352809934402309984623461656587279367299590185862046500533826689166106216322762684823349302432343842490464728007691595105289816708584612110746356571586889340307789822329264555045001894697697086557209137604081089268534780525093077202038732016922987872914092871986630940233086623513393849328649391960508858568875481372981365410819363502000957410016740523706486839283260362963910463594524629947485552188753565317160302095826275392136252149258287647934525924113287791269985504366795066403763188419424522084422841728361344388310677841967174021504422469916003809735189359288647208682166220404061691289557910259647558753455620355199508064648369511540005286324608641299254179682018817959337729098057771596746336781106804208805944369314904423170457368314887519168102289690761881164404729805882195697435750349297711287535024959444684479388134287531455900985455058580976683264130346966032030003093357517515573684773237644437303792709957483456891663070765553335537206805302541522988789884515208624998506965950636155417396634736922122335855895071987598544048098205582938173069189166757190218674414588494775705146258919696814889292374530037259876344494859788035781141945682519076955498645821714076744103410188006448153769081549910907619084152035972800289855474066538214503078270389067367365874843248077152318406296002941696814041489536578371054632642162447230449916240281564168257276837241308178179153378074411297757852164962845778091863985700476637370898344552796359043889966723226044054330725022691542494446904806735819949582688080922171951233118463610427102209180894862345021832635646953886390682731956271721632094904547375714165910186513194230786287862849203081408529642991284125912221577780700363436877409874621173349511972379378008667129894722412957730033360775471994555127897504258701634655776623433947056947809013216644514296886342908246994691493769838557589909912567114762519195446376358003181293639278823723527447135112910534730836591770067970578409411839719773739595289068795931707802644574396783493641652966863673232501455622776250454939366860903349903796393787409553937006434006871251233312027782525352082579226559718336379159055094244287180497819881455971004614260227269649280822890581818872134981592090410784001577255182151633489725728309163578924316735040515227901326085323532480185921338001545164385819702626249557774400441234372665514882671722107914890693655158249843571268313625634886889929992540269680834270401466357652441631910698178460321716328535734121384686789827118996411623305647209059753477257351578228146606071460724504859662064639972946214465657852297541964663452554334076407800925867206037034302542043270759293591143815453576368924273822139648871078678479624961463048648566806046677783545498297977173117967068220493795855721387472080256758251014569536871485301578930278346696964609517126902720623037589890069842632033323531394385430523445168034013432407169395366525316525202703983856742075499125691935011939588649700605516790042308583989085753608508462712649562619145569068579474752864777519523403836649787852637385712459799098220984172955499140150934725904919132482137973564368269127310190056118225222719683652480805046779439375852432261893764528227375495997611405873530259106393569785115062351163790911027451235346228769565716090666464285523694508667315634970605131487883999340676883256101859446535050192347585136072518883459103151945791248882520203009557225917475733769373501413612497816229488211424572582744971767068370351212844502614682626980869616128969469971714918297136552470321545436413872904617071366880971702931798878841864672000250467684535552944291237263691889447795952779395629300737437534403789665936621596980781911742457161208319295913996121144427158835722308869115759578041905169779801590156958220749500001988832925633460463925293713427155234757290939355248966890455234048508495738247675059030590189588280893172677344413170163802652673663822580425361921863184097000729620216386332192522154379075488777502195264503932888279348664752940730448407796468932668983330582613013403582618387058102611908665982543964768024967567146434806625026860581493045943851394979090228548047329406406808582684317375640043878845592507121579634191206895274846967157544913401030453532262673840109106538034022963791325408156005705675999036808631645480310767349256267088357451385478794501418571406047038171341697406794154412845322743617280925017916091836042889627009075688898312826739062124661338616205210602400951803296250110175405672425331380197382395503676573219234431458110699194118345554916688155398451500160546169746803952892074355866910665675719224730835236600125288455706485990610327385606802563294887714491956640861287626342361756303757120918836326189140414271830830938393786915273632945531454893417544309838605110115640072398510427657391592543178856075425321415191863761850955936238092954042084646705462686048755554904724644614913948917534618962816553304711840168168195876939019216328449154938776776545550260481621987555939768578625357806951137664302436148826903012498967620977834684104523257214416017974844357062704815351956881438209474663741048811212938953381031321413655487082429957513877244308587743447164631970846682467775166563154168618103884760054700602338780098612750753374021285803304236152531531060718218043924396213564826135420983896265919670750234734691638458322548121768112293915705183393374989973659519248233010796731759447876427857912339134852664759038873476092059913804070282012072973895684041655983051609552637401587219727483010543959278395146332912165519413237027173925845186241904176222632390301577135455852325689289072214636364394736564187738270407378337029393144840239722222459063288931852410051665448872690695618889993067511948187925685206980437089577183280885313248354351397859608319581202469260911109884840294567727996766359146582559996858869882922002130138334145806242373767927155360645562167632534043875145027634024823230533423969270761437594072239935450027125474245703879179508424293647159036079895685949451720952170229664038500630843030173705167847457345968717314321603115069974222668416279163893586982434616010420765826042926677787128843613929812032207544258855230564082392690038886803157010116478793373160485714065289920105618268972435307458088163823762506866581257522453360181128054171926701185535812046041194120091910255324497454844265205753737652837629709698645977796060939332556560198995490643070299286582703376982571762297761626835228447424417333798127934222495846851757158501883591307805527326591233240510430936378775898298937781434656907423928073719078781246033889901395778340455596489081295620235403563117310131135475455288102284149717684723328883627681766522965589421610085634250106767833392823577687861829175430043599635323002659197578233469853678096865041738602578501952638901416905781836814596474942084338352283659515467385988931490786642030460351246008122664362521908787544975745621175421075380417171264340425306887318654538156614249462451804491629435430801433418523916886446024096783646199461221371466998077121917231996828624413391976447540915934408178418659764303298784516045049037818780031573114103216430326932806843864731547249186751653372326191591210728006081924870965955054873280096985872071064467651368979778401534306111716954649571711029804351293990473673259583406454663747227965200072390355506750761541060287633044134050848132241444038719429307732227730015540758791512881645660975366562710440084251400722042254840586522839905327845623774632339069619144134250662199961881208675209453880282372663466214072382488680708854676866299720231746541793696592216260731630646449250014493394369434621879576657103873558164542805459610772072810236650328384323522652643052642531162738550549725943374285405143525900792911954894993891293261645305765251436351105864030802151699966187168278333387566103108092189832029176654790191362045695417933873097439058946138797325367803101364934601441918137768381841479443935827675014611773274459895158455081144201234773042847903181527469714977770298608154428993910960995142366634708510382558530203398281292831821765818552431878089852985182319447839180553550322148373940123406381862360711606422301379318131305598969675505024743198134659663055438568960343339964125496236146073120841772906452656160421566905894537983206749834300722114404346706728844686294031471641000452635610883645422907422864725446710298609201887244059433359542598800729989146011629376279250666732153190640727265069634679707147542408859190093340032089039157860528921296075311462097944748646005799908650885282646617355256182034331218470173809624144501455759711976316080336247214960927540510296281009479387809948248648106062160712466270955712452176584069906943627146603366321874612932090941035503850661535125775081228414139880891272849096951178677638093785726866017488270418856582850306723659141748652667958922578019623717943246250308911029914908557637145652861722149586744654587731325062016725380598657151448223676004125576248743155042468579032176209102805373669258704662177206685376291269510505435548945115558104841899876756881872166923005418303782810899093379476886519491014400374636145849774935940073586977559137988054989184933390055666207703474041399274390400774650516795922505296646285965355057529049623420316161702381624562275443450782869887824281981037957279394680426213971767404438810505770954676257727645313220671439922535605907239023193431229258502937412564911576851817718331889242916351197803430740421004943950749351949015861371613953395246488769077238994709400930741221018956593807886057218366510912705915473784898576503803578830956100765052096885556279662554688465036829433774134484658861946337534284766872222903941089148184436351744622072330666782294992384308830039762911498124249114924243476562445840995606227559377700207947249376620680731828322434876191570003889617262563352553063652071104297890602817203208851675174606880363109361351044063932900414587791881986792575508535269710916192929818687374302956845834148175509419347933136078570428632259990205648324315510962636990183613652629562772881045729596700751691568107636525657927973460637194000423149837912733565110987927686612765882316081073120835461863924172154365187206002292745060405280839865232151460098005177454983396592822103011644631641630431201721403528246538327212573329901813320400895627982387595360433901407014723533565995931717475919137460048338706784024051661620177520010297618744906001472802051765556981022363296128161516984169924248837886812294491282164235547472975043689724574168999800610361646387743296339049123669861921389526691052698143649243498491691239915531751589399413530701901823810326715379473164778016218946532235555727605896160514250908986026242061792483926763163756394775896093988201520047178790145880816918786210909455666546086014359119353806623223233765000855986969468330103207344523234500686006466880209400101483094923038031805662850390727730311827488736558675840769372452537658735051245875051103375854988256981882772202492520888178066466715861957703676813848919379292180396071970460897153147450231973707825332317974156539073090265356695699433560362604982948627689222120290426632055955352855095126959294133887338813184090558741934223281813667164051931685816501151567209566059225872216422674806458946222476713079716654809439243004531742679300318479916009349641535791182744022386434004172879800296980525205319706437852615165520565997496099045959537348301004240411991185522232595501210708646530345656066841405511537422163265427516329722966887107406701493573910749741807658691330221809512297274211586696754788907495269004467525910368367176588237095880901795258903781675811038072088624322583725428300067829888660807490037639409384621650685737615386658014220871669268489661467935622233615201648833600084412900273306835571853491299421243181440367184127381872036284357321190610153867109826530794269552011543450451278786721583583531571025841866640733270006655677503951176026565257045255299797125800754495264194649249384815854668167224055573025549266381166004952059525796507094440239333170351471487517415291330050847618448131515461034860713203660412834953382591055961715637115532704737617229746851491435540491565988757829379148532285483319157248178973382246715689880023104263299628495768998840948417974876915106451511155702616262853621544340919258902104482316570544706081105332299548628053967558172890589608066947677757539605040197225325308143854979236271301779534271550169272018026898472960512957433873484951350852010388575299668237188892838091554361755573867422400903416311872328721286333503870942511417461126267690929227472188253706920336097761053156768935543874985796950074529149986695044499480856136417416548754252245036985423396629970404979224076705999780292147273740279522686456638978113450765212561468432756617595976967587894885545985895160363772523926114230197647721351579488108393878436200245418617764497740428862881210580237568111794937368832668113098420281789172636876056440727069611058383342405116844382133965580861280073845761631848865401719816993155179684690551955365975414740048292359216492087376653178073478362648156638008128029270479382090747734587298663202880921056461538626395354574253263447719571102957866320281618203121976633351248738641086249319217450334482149046625562017663175995274070759291927649634387310584034181129696988864519382234342768851177109036302978321030095169777099549353073269505720109776620147817227312758716084893881241454185971667148886293049871537127678863088354392867174203531332593090172424871293616955620051894934457179001115955766942347577787630544305361598209782265600011580356601672751210739829882507192525726459756999323046135727716959782951840850769641949074696834945984690847556805589144187242247753461182551318009239656165407069133845732607175782555803962442487806336619912722115500573565492141416794940256295597625592537118631308214538742212760039517006292517357035390121187716201029987841393859938556448953972131495942469440873637880588263674661831694517885195114054977013334455344900493071572976357285699084089818785957754673717764003117047114466658273749267706793177746830073927327491580414172041013943866723626543432283388811742790384786556390795129638143073512256046254673228857807674845045057683070156757901336696521382377197131791672840137081627079126849565266958295609099683518080113526513459797880806221721143188631242085575247433242365908869406691445596119858313190762842458989012080822750618121715827727234778887260500276281092964127719091066974776762422130273031317870635359657152961611058215691412720043861555060341847884147384824148439592125021888917240584449969462254206826760172196433235406234401043345372994763306974715977793342373378644375673827999730949961077043102190515525823240577473600370163669784770966783640314422957302030671873213105428393292482610080561821564616824367445753752731968334206948204394537749668147026044185783831725920138514213195486125921543429788626564332056979507314121532458709691350211522476004537473235369879412958648238944354524255234490938417205801531957365840230991536760566205363505109569623390006758012523008082057138209608522367443777258740751430165608769524811665378172233188911379593194069588963690230485579569169041657713460200412107747433366311156335019650501768725030425722312253190640246072286905269825177702273930051281259155519105160369869329956278554060314164147691906237328953217911683215806098701916194749138259769356098180269271697828012147418297931816588170886344486467051977575344349667167194145950131517357088234227383041167234652867009360378729827595556447062986917663895640569913635516139047638723889783824718325778960517097239227676607967442672437205882313827410174822582716344338733822833510954116696048826633365089301580728098107191924665320286944357039303864658899093677952887124995653427817723951695884106992721357858251274284011840100488996822824471780439335333851950041164539606411249513784228122394461124684876928479014378885529431285639804231569391689837761709572282901493267368955991784103728131654706240056124901152664875233385068060467178139159291527807836384574405417261428175161151321222241698029576635447570603830949730631432308913111896539019655645953461308380063477314275245169071444627998859237934904761311740702255293215913320854209425595791675609130454449880805146124507008116941464474436617328813039435031366836291479442535832342504525574155557761521290507008280166326085062718340432339646976401664042300453410630771256412388416351206548094393664111165775091313988808504455881021176591425386096391482472505347888902690292350342741783564112680641945394235758471594684077496702332744057237094108357783482093318721314367982940882209002189526422217655879698981056504148546903564286366497771842119773137919631049899430289262237110284850140402906192128669735885116233405997667881952759049984063269156683086937836833967202169672562613369164331690497145969744868341754531544326575632198173341735025311882987585521335191173751087865551434310119493536129684167573521554661939436587184086894552769730790718283700597336281856320175947433332030820585070635676002556959202797513232008406241303091762905692401404935832199870436309421566817190036649216545789366361786966233209622192203430446092779525727595739732491683521008389449052052128601392007772961469674122602337542390729121781442116496500980195544471107361572140014838066701236070142721288503797577486654798643727685747251294422543788817571834191204849258642341562103932623207473864001728083161700145276282953874543074747312113316106611056171834399891301124682946066010548552515517981897695622439199683477854756149706215073810729761593412639039996991813084839105951424372911071555932151707172783026374066639090004622515560589014829876853076372990805845705515137449074512132971037528019689423717625983365336770164510741199960152707888485302540422086236097554894093592513136546316849048815375709007304232239970898826671662702298212625240331265595423410357571400239596917560259623804080974263309336699568479361950888098907415722991575110701081939371424666570666579786396281901986944126169874106176637541033961096558344460735822220724254592856974263241915621375482296353229872416257834729664264100161564538839368139010502515789643575341335184941104366500350131769965911806906138222386458912691363156803349865855592721315283364598667599091883380729968157387131325431828187133384192804301978072674252031334978221427756287820867997128543975844904201247720049199066043873235208907975116708234993035506896983945938130344436516603688007965358791819998197147147335103913070522393238084336454895066328582093622093634252651947831904207022970434611006423695778251901008281416309338890818337864860955588270752999439596612604033488219504656611436277586690995445456598875615075562399624013687406480760133297462650116324467814356813139958967700885780837269691519390784378841697800449930309622203898545945494391311080713652635188863795499042451828385410573754081618976614885838495474457800478987066222066832998291651771303124967044516636497100584594181121207297692965355151012188738790820407256947385830225694575771465376301232102364787597570587413422761322756187495419387536624249683193056850097484053832135267466690333107346887624236023912163807262785551975131944763323728495496946349325707219470127000088913207418807820608158872839722913537564558854208296306128626736252184618167535362044532934284228237433987086422319271685507486370619750180676063756467266077100515215175766089282360744705346702999420258068082138346503190823354355795474191851598024414952439086794378046176337584900883807006424047325264707146661429907663045722656880232180139299777766757691923322841597920166502987360856914892789932418084951381722576945732439396548522731728238686266788805258375847151858005672486004831732643991998759961929667356074394843576214497973870540589454881798798967201479948255557920230752000541806728261048551640437866503077550178122922102252278226096091088226704095768141185798473587164177321663756243437165443960713189512874763269414904545701108403544386130996588146710263809167289482687336176201072521879613882864010072279223572170824666339464364020987899039579060248933186667001360371435006491691822115899222143358664323966153785939975444448667180813204518298321479319766299519966551987986817662514688421817119788695078902335438181575984787792943654942975669643880159935181505076775925599495779487651448783755935601496904555071659017820518404871754476896353338204212189674592912953732488901797590162955464030145996303116393819863651191184873690633191407663241934292995198887320926244264849733825791705357601810023223278377547866062233853181897904878107865269124189734479886477335870205464054313252528657182356771412492215940571953584836058984878630785782949170561854768669606926522908381731816818029112309241046720242019010274687469828078373139978197515550416438826029861157124060383592333022554185826764497318993591284539160984809718313703590776172521690353638504140627376830760997149913042085563154223976747547509243113793465491849187075373615949869367012367885107207309552425048192026777096031745714535627729524636061280463616201584571332959332246892393143238813001593787589747582135995978868106227658368603821860374122291436686543340239024558190225087523317392543585399823878319027056380877665197457604787032188749515676253154261824508119686295309213549664959178177089311597745410722660050998084714937856872890687923968856071026804150381999683372913936157912603711404968590449854662839802401573785272804186724988098649859687211757057147361460859880190204876213952788486630353645479546145666039876060085875831121842750826843921704962078818589470586385865507277143228745891835628282372236185177294853167072850938354757292961877072635697487161790083620351982750064925683894175377364567734677136999425347505856429997220287762108386061654604188326427073730986472323980812367315849987519207850683942528607290460003531669164201833505001180809961124539539089709255096678143946103096308099957542992329645707740930234844031231974209763211515305529422008522199013921051554106833568264434788768830016803120216270451801678639235058857933422643449383391567194599900781294676367324730546257424064736546558699403558089922076874137960918227777613720110707448270620824271159338812319537198534618633774077305333695319968328212906066874636541330050023350642184326533393301524004096942390808290150786544704279294791984448733919867467255498576430456275927855289846535993382661774233985614208518562371606585477569254290415725225502068448810474454255765527210876329413846917683337662678643827716138487283309699003684840034008477358724176673712229684925606067966896338402854741109903248740093543144086340824820228958577157264287564631568300368119868783129860950018762981114066793892815333347681273677672142720855974250928935489218797643226426972784949868193904768663532548364277128274614069253949949733413022316963309384113668469673861824088043476414338768043246549532525753767991563031847514348741365971662637100297055114062406631375505342309980304181534708914121224067051744043470682814604026702656603660766476302447300544689461555929864361880149802944613174996751390009964150711157816597024043504791016096725321785578831704612739215176218074243636063107486845297783262634400609111454864531511431121860477225264170969803224490186701567783285486701773907674551741220018638684552858965225650613672186531937524274003542119212789672347740604641334459343320539201948522034050481592667025723865864623119249592021735959660116167867599656195622834401465704207305464868062727540646813363395638162467655465053119084024245747766023575292102144068466750488476612428504547305319605976686360760100162035122056986880235169680473092627570279020777151831177958336790034901146253780759675178104847132291309094550145389150905687796335272568071787428826429984522218285494445501160235830765201845455658834079599133504107393380557771449504504998378893641084533315062509459552658238289397321374324716925870660112242444736038943088162169616438718189010504851819745635448221667906822735695035568250291762005252365620211387015066738088927670970113501073267986118014386124640632224077301757829331323203347400216301615519623417477322488269553788344636232056242880633450298633444246567655777177758359348804219040029701665285015806755790508924659593912941800190362965983579595643087513475808048079780438667223692409002302193795520132618168344639837422372300484265380002694039609852740030243640013739180038491016721798145032213717575489669933232953214681751533207293131495125445372586461811263449745682593669693763521217676872783828929582503428652315050424754877736146302042728336161849677904121935088027479682364482260621119028871250147946043841994875424963178268551562946316468663866857615528775246729997020210521601370924135478592652440677113022721731304209658946332301473639415870527103464121022134062981939614141261921050343682635759050827782284171108708562251955074191353205166422418597064602725716230262171410637204533390926338376190031296990014026146209908706495939812730151137283549527300634977242919878370410874217389954520828084136052488039649918158020232691264746232525056017324753123295140240693953788002319611346692011295845657303536940374721696953615995915992632503037932228096100621899047595679281131340387468742822636542459868389114261135321278573143131139801626554475207484031480259403284582459296651964672423994083707006549789843036556108110807091474711252157824910009663149907131130605427725116472905585386726720655123865243617355874849757475134408161842774283261176073097091370460828605438816585952334459535031523769497135610152612895855333471150240055766136364218861861241830417879979867438365116562091889786415098109355154617368995214873691719416544367013782290403281313269169826208652502963686998965578829950343726420946472238750034640608310403111146453874805828707649353711543704193715703488474062477129101173415378724633692103235994534392629570806159012970741713864830588640439364915497709957642032102510979181181709626051176522016023832081927542503633608327450489339709802478643305952291398337418809598833964811513926678495387625797938186764925281588444820203243194920377150772963390614175046922367607693464101550257544136976608963799048127540867185978335402825635872260608207140170330060050120383080221840489064260310334698948816861303375213331797019985011614661267533174556434470645003107924633993521368122210778233268842317678910770757872488738680771979668614674885530509313027556872713830055778730620186716366968724893486689418248011434690814046626781651682401220220793807111574618598224244125930808373119454907731952589641050085708370827931369896367799112482555130023344626076187959400861829890665471140478030814097951506818044604855254953343322239313691990404866251961806195189742730439722572164918931592499022549846708998671121626689578429157867268211722998545122804566983801279370463281401024811761244665985498100094400931457993085402489112233947563794438749789651156869440502764998797523958274867822729131354628991244616181229085259284663851097939683372014932259215274910404601901271950844424898148514862108684522096631259546474874552018316150505279026622985667213584151050378669470671446118771268709078625258688514989182477024099181193040761919006104136073878022723114675444406653173002307190675028345278323146265762408035246546978595760169770638105288214189019565701722936987774355250530850465655482324444095202377125959568057497760899503146071527716946866214832514837033399525943473509443557693397476939281183755718747194774119702895233206587266781972222252421289512465929286285024115537447915874799969423452550046350795822681389221500562694219350182803271564516768735404401795966490816630236154659664763883070194099455350297020989644750954122289032534992723895555295347178337337805008796771978522638494826352801309031390919427349015561352816298429757246262282609396940269730729821364448983219018452955102501398412055680610019518887089245945227810966992837194945248258484058254782415180796615918024131053012480372913876885707550670694286601091982456745709826543999931489897258448680709088790780827951936944107756558761844170418559680366909309331973656175860857717369482273901641193748076108803943925411641060146525641051523774149793276709379330382367551177112065218158073712812810283974309911363021638443883659747020108365780476902383165166655918187610655229681551640185742629580802433193262963100823169421788855381671278609970361933577343199415870292861344522282775605341427752176497335652372570855305208903939735765502518120825948305206092377323756391590488748013384930492211437441641413522094256851738926422818821833277895859807511015107397258230442786730543340293337182008737430378433955346458956826254439414379933821238030572154012856479391106265847060220827746740863434562222888808126893924449528753986866771840648219588999147208874718082523360107303748045476853436344863159315416876319246532236492686171717054372901648218377137024033044793088110394503578790698782940658406609160059470339151652477288967583850175676450339635881419013620943690640659603378179130543979037470464633417889821699750675874301655401935604257875980687861225438415614264752237052189537359868564618039455070997482641870111959536902875577707375303694200350162431616997057286266322414085271274957777315790861207280274464027270499182629305784436672995709089205257778442784013668701578602235706472080344116314949549744277300949147205251963982321231150552502002478847871537203453931482204159004642576634494243268190521592639869250435977222579133072421722426219891399089515499885896226605201035912052931911897632894851443276541035801413842887677412393818981650884371580802397962082618219128481962770848911598073234772916613406992726260684137012649863780281294862697695888220968928584327492571020003239457787457683237799287698618669995244881896475096305703300358944081251717526761355649159903438519334767451629032913858559865910054280246095017768670886035656907964555791119069946207406092436520817147248206857016662961726111263685907667929413305113338607234623189521363505311357918644098495219657424637592560087382290233625010257519130417145143394887416522067123179560975294568689794927783576552481751405993833329342852882326661859130114760544562375975271315454115870110698463186076096223684109593213889081129404026281002576589059359027610998202503848230145886703691537324341278222752957144082126415344463584281433881324662033418478983577253312195894962159979513358737990389729207327282253950619326287350278275142784832969304559175312889130876413965949522973394825247670530049357599655202803028152521678081177598191638853211501574677246737978823543703660056590742655058528490032972732578838528083126000249863359882069945540016197315240990675398583803858868773506802585685260085537965164305036731107071750822048883226084588460304570778094788917029665203571291011211759153458225336594537145748036995967926832075039538119834079130450027554620903754301653123758965585126321330781017402230451928091583459397803064147614527711080351472424224616539981370229903899317644822933459187675204818789453090783806900881627082784158212561691663867457404424692574666885417998763149311019645311937197746096457799435826574314187905723373615444751158736438767651284063520791877795687679265632705695607778578770001737892397645557731213233763015863179025388828443618024240158796351221186515811275109339155081725466561155196018226398629018715595284463820352639351738100935211367515149649172662546974765065432290865192994240807714107720507759653380609476841267472520599368193963310932610164005368723742999976509227176408496347326224873398640864008791506671297575777177021165575945175091960563391030025358380323226786532038888260054560828023166561961315467851058807859249931256997581035750344541570284627317705165140714412366930212891313378373690521701865414318518574911907336271548308366074990570668579551032013318570399464954840320867698644282744777006475287503404314519620581882040885091797124471823498856616032200353051221214125747063453298514708823182232990221237487607579509577928955608840780711829186374589695827416264419886457270252077788127776733386663137334049364481965706278651348733597031815582483012995769816779226383119868932076931720592198249023339824078002766757656580440144329601747585837656809257002536255903958061696071750891317354183072581427769898709385986698488291671026336505454152214309919464737029049688740212086316583812781345541454245271234061698762437789350722112580068849052739056029357971162978022315929854490266074085660548476270417685514538622725593513656808426983099859342424097045525529515123509190307408316071760505517755760694285358954629743113363620272066843925989931243819494953553963870246263055199036648773101874665781174906301165552600533790485975915576178924471244106441155736508590049219152812161800281243174833621050000674887228087988960080528099838707747128338529906530747905467377583512978376076665883857432482674143860513571624526235467204865839159874990060930782644696275461584136622829403873020237245450591081158254620093193073285745122653083717517648453644175577680594394266766042518696975988573800288293956309213329148903370246835402435361202099189659994743689651741586089616633340917562187667374465900357055770899253534599612681108120509067848301968597438841967500644368050469770771620631980127189982878526782069865859296148817760859799525437468387281796568395282241388154666268114953940526076122056744156630713607166709592501201730475984173506275056271788263702905946619764994540250393380636190687673658069789949236479759474640681000788670687111902713959614612253003976589067544191769712816880001015448109641087905682379084577666890502353118145775592888718593621760640622066624427129099952457936350902983191480594087834571346891344158450383664090569959284410476108820451867593073030081055033473293936834831868478674303873403765735919735721847421566810538866400802735730818640476220005209497899596982412988077629581349412197555900269021928101703189122089346468412779955397383081596755023917165400622769690992689715202098613905273304667526441226173789522855137949201875942887129424524840989874312521927291669064813247050045850888670524130908266360780654388587084337226616364750714628735660497690305282779843635888956605065499315465397149377727666447036665865005131476510698286181764616408323872123572746096625467508420684593958999441325593979870711536394852146407407791675159985987642386865460422575932895567757946694506833503468492079855046306349228992525463835641211968698230945796617125029085081498526684714072853745414577507789860395146293763435138735329499670505585934433160107909883304791518361981854084760860315898958038279985210235366609289657883733485591965514259182623619529867829308801366651272313878455772758820836404629593900528640023418466479958714908932607868094305347233742313003290009255536549465987706033271799474031215097065699533273152936951167442074504724483351730827709599885694282482712186648460181791421442219901901255442404449792131411986035874503295474441803222611903314198691405344583623693561701085863761930356878241353107562628610041554693309850247823415374020826586399754365054906675504110641086120444932098590878731848343520209673137084239813670686255031852128078702048873625293628160089011432428750643622188144813922602925898363321836915133276621647853780319365967865322752394265320076261056564589520964032615468635260899074583627794136465842610506779625044184201457499504093211805147374711373833955732130663182088319581992788760485643619134749612354031878388416599773474117032461652173292533945817814646080472704498979796731776197553718944715695367625060565390646940800229428481577699606790651472467311106137137065937736015338943382176165144776005868113603262043259043450327744415089951565120066414370294679450293569305260705836626067355786334228307309126507540257847155272484215422177439559180666960581731905158465425321676891563401991970300859562935148947180737230602506882452691109532530899450534116157640978084844871887641848958316451922267669529096409398887640365179863639369694162809339122451165852584489982683211135643396044309695202180925988575833598254973769011344343859887243370387340957403843366863888523888410363828787626901061175217874273877660600431037511606228425148539486845661246716018938006807329817906534576541749660158338749776822387432305435333772067528559564574990379491694116223694830654341796189694654633015383205725237104943269600560544028140954961197696562137097899589355397066706451093908108165643537931445595290046779174954081286198580548467180744064689030382739769586246552407274994336945050959505093428403626252475487057089340633043712425280702358337192647289532325481592913728763086658652371095299808271755742484530295695878484826259598042268232923732375123177307457418621049518774087900582706856038007164156175269710313049895340989966455778308981888762376629518141232056627660156764079458165887289705550846930061568509521749308530236688767488782016423236779936239495109284699890197928232352206121240829369725564392990383531448227628458791155299721167790918645864572873449056445848325277803977590826186258904418086823026058232240166609324093902963879866328698420264960268310858137325474132154315442989663890390421284792808081883123905186504257947164391036932918270781767348041420959604113925752798612580829438506180294730830832993706166071832690024619645651111390013778696913963828342687447255175930614009479555169595429212657636439708869415533757750970420151645009017785606311486563678900547042494102574297335273579098730802719689425381113772850543809177018102165901933730099430056758997448030835475949670032612811811896376882503009446697428427794386013227976724134451736731559176604108238451839304330261923201849234318074358839068006339492916599945516634410095285799146208521433839773991133868573204837614602718360470142919346011456343242046986974729149217931958376526031577916840506422028831024396230363125636096720348949361721898309952371994843237608599873879537248729615219862604035600732360270039657285358003442676465084406494051552848976342750657849053765556076808843675607704864310128083695685536614517043814853712401213993015365953966813567842568786421490421913527844996766853110453487193250524076855859453564583975365311797904649720003334991524136713995950664506890931003929281154094136552743379033642567252656192053979904477637891733360565524448933425579863694185105597343268929072787773251297913743338456276002914258363244506092164848072612117676204386137351550834143207967904178795155086417142333089489198894935490610017107459595274746104445106094456970069701001211670944733047090309546288832035236910287871697777203310359075886253227964250143460089289404284997881560987481022600382528068153323097308058530024864899805685580025232779289200546623044291979841823445954603272102927213747636380453304244914266926378520910575504395214476282864453403122965903487069821874668165953619566516324075418653102164193489386431186442882700739786026554038481655645261525206181075879722309583028160671510632226274816668611297366941393487570061455767736178976172203794465403285725526882795598644626693498109119906481119913473738875428049627374765913900102216104696869312796895693927512990294375900354675527566602055205140550660711597778637712342510403165965725712012054880754622438153481576991988153873210774611277336311778857707347063913166849654699106517479396254363854260581877403200811055145882694507209683020733946124801370128303708421996628006363733218292564770960615152512343741896636046920379090009017720321342348610349459209844074368518408308544597053841604615320897555599901734471085310659791490140215034897001606616853244206441992014150065439487993429085268761614103020614742435344713802524194904188279785084813260012641551789406965718732273159817994780193627176970885008767187913050294833189348512798158968847534576813911375513596643186382584538795612067775181519040886700953618202076764614702405417889826527218517080116434668214478190903354650380716007037577956581262210810072547041941147990714903055889630697609677729163865708213961208559119576911558671446929513102576669307402746166945279182948197024672866325125738327626751977731218620822921748349565920439473869950028698270783800189500500864085320866588402278901501889091461842770925654923023148714210347054948225720136297021522748980726767268799789488020856651773324675464732403381415649007539757339754173499912107123896552995106889473909181600462412575538816768219297040700327370889979902871160145199866302033960376176576264213236138727896640649084092342372364328823332583973785413950392800457117938703334688579200440206290322678933607458002778524684760442202384695919045100207370057097095467543320308780921501420055828264113237582806235933182319639328037238131543218336161723491805395250574311588270455236772846369290318618393321465926199207651071479140855945492874870434619930697932687042710024594035230086804612846830237211929235893759973238097990060534418250835938933951179584438532917731201246020514883648124926769758889895524408105930081408057362790359888564246635577476821041744410512576372169936570900688438363182218834717064013562006451287583035946348655032267820867777561661370008765663781256917106620656804942492027104920583935267571145812802128230892936713815349480581072576997318762367112277588166374068027622411411642981041744164281219147019917262606643013210335582739314420689692907308496083624955649448664680370090517631345950096854790374645579477684909647647053086256455924981094781454217788347714632250427265462273850208374169412285602624663019059147896506955840379176634748560389086246263309139231446570179817687228066828917052896964405303183925314672990357316750628751471372645864201166850476881385958905344290963647054672991908969650007488735728039369868524189948007063594430552407862061039517474518337720263672525501408047474563951793025699241276373487301887773828041925980439750568735882634112938544735770983127933704343959957460797349367257151228823176234569847477066735071598073929511017718052983482695532270946954738195468051265744607379852544997239386070777367185433623115980915038030128081234885806702566739000844345623148619686656000201496564856747197710651183992629381407534257994219155024679240011968688751974189734670584914080187723629685322366761870291742134950878495463231158980619783826627167625204257717140388579586082745558379854120943948786964587578037639061234592050177607452728396840475489187767495265418471077523570224098209588333765818288264424006663803638224608482213351540408806009498974476169614187767757328949653698261540665383455115939019094629627279353516174175907353346496616101275515975098938465109517896422664729406982347034143203010437975470758268751050392454560707909789990432975406962020001897973417356356161894539597837783151411092213800552442512092068686858726036117803626043376157875236298353117929347409930608348972808298755619756840070620587201138799963965663773728260821962181537783237742820761612282076627771398153122078709700995461275023480526613866279737246363824596236272828251761573758944664093016655526341068741932857111339118986929316094039706836294781818167998081416705869399367898524216439328741866284717444618607721838753859138118665290927218165750200489707841142386448194811919510316276920230818483176463425382273270449375268878208349469045575675650202189282109354134494287797399395774762225673318748610043609741240813721614145094260100089551680072725341603057821000373020792201149274455190393340310951995221963121236616149054807524770844330437169871077587722883017409969698338952215498462470606323044130891528338245463062873167489649580825892769226646089101200700564812330192940565767129934944575678364282557617427387323667454669786990150882425732358711429583475400749538764710443917806976866651235057171670641391028233166905161384305510879100246042078839413943899808770687539101333100795099232488925505365011096028264385260931353141247479922764735204031391353092379237273557314764851556480362789731422376272259528025573476083560589424582945875329298823496657967154638582194611374707015849847107318472297144622539003647731093102979637130377967727118376632824196113983966645326226605586182042926912283090958143847962301384034128826218971395317507719519181572099704356671474313724941534946410628596050724582415496893817073844194411002125560576968483787346604756066501206959714473240345360099942308775538790144783652732988890892116256888860546575980285500981620655189426194915134213908584978637338770229037668585501354298204634263376500254155655346982897380609018055415971823153187987891716033326115649765968909552120855678487961581505562951913734377280171579103577067704967005350205849814605243860618027610969610015971831199690836140331891334163991064944502896264371773896835537380070533784553751399597805163171042597668211348892218802047230539167642848098426533128566940129596154781763719422775266839378268981524601804416266389105631862424435843596334768588242299338284530838616767888737749764089123742602424720743115496581715964064488891112529343238005426373241758945167280096143095064677396486504571268083331295739802216637096609339597919737816529640293559182108208255739854611243017235630323454518524095555438705592330531302950906922887963883929382795513796771320725403941632068889823747447438497694037150470896531992072083989138427448896288768436321067696687046519992902087243048038519211932391891399526082618417593043494387581061330297990706745066087984321530619281185082837406817994615740235898241453190756353469889610486103102337683907996735172381515408013135729818876404990101287151274124806408096810751202759850200793392517377272545823862228503130780209382456511102091393957409364489869729365457809422581834822496614103972100360509212071133195542383820214301838023625801089097126014830333446392504417618018306998886653567938526571382242224098814368589495168914529634748780788007184885841162172188807400295265704072534289769341498367074633354156055812637602320263562485866922415796497598784360865904950057281598523578164835528665523690687822746822740206144504133650634086212564196698751492078583126124842684318302438397564565622038007026901999426197730530948625040018630658140929240329881019351558562397418343864775928351475774241548079907766180068335961907881494021612048019750574258747451851174128597844877916694861289852702807597035232160436285963098321613137682213065284217300202647404731846422090641865242709844765465258850429293159375674327982095384507648045285164372493205757357280753130454660631561767217364438114170707126195640500924245765054899134240926022665490478807426289320595854271963328910205495408325484042649393396802731859624402987666422729146524765369342495913333476373191669228918726455418908215053662090273097423762883079493335011081436013362905844734755773431124206545858360664558495012370895700018020846870382557108657136073492510689686861769732051233745071515238642405896607126903220365908043155981778234798583693713187453396600974838312565881930834008429559040548366555064015526320082692567786728962617445096977089542103484362317614074702879040090133969470924580522883315743093791353884012465932647644139756584291596871368644489651943529685539110455340361730041068643178771677148634976956477759373726687307745452340735148030580929134521486839346813478009775505083175061046699574574702106577030194012371965155803081060658311158949500536062754742332494806065575624876118935658277694368074082909725367073651084632579595496617579106965577239131499260189483126438495511648527970800389586835823909473449618026966089887902353716930071400935177004387544085272194394520173276806409025379824077961222729258955227969487848876608168882728490327559571484424935775969477600501754103524515865870592999609236640010393083047453677175569045952841235867077455471010779364736669156218840422132193361497253618816553197468207706072652070705798455714123440284106113717238696386364076860647826192866852431006503023679327000752818870772607456704333692716033328353836916131705451240621948261987222890074518854873655045241215942730939610777973008452285719485644042049358329680797034400078785281518906413739666907360692405940705306677927082965423179686942384133931211243764607240145521494967726374891652714479604083047471160763081645682935131701222492516774391539526358945085390393459394410075880908985518714511178914688608262431653759282396660552164732487350749815546674483229249485032213775020098411055093154966414225286460681547972260085955740435877910926229361410866291478991248037045737962189082181029055664302567881991301822084027673589641743244550173255503717277454567831587474996807007563700353382213603546658103382254869594210898453394200271637311220095680983230308904156231155350012237888499339875883110785608966191842407139012291875843114634603584278539672717036889271865527575289491447253897565017475009224886088931384380948420533079952403929979427082977561593989552268131798252195809315792619989067751433907225150708852428484209036600220398385426139618026288533112866715989819660574026453537049792559473529974291985362782824495820326825385427568292725752039939514232477116585645609563457419882409668594072835061125507432571406186436378998516212916469767908308917147660692805466520533097494786815698590847739525758604899162524685237341430299706265941714368870666316254453587700760737311521367899284699622061598730370993975418593037481394131279326491263415121673161888190963590992741928739424504629353846372154167932975980262197099381153232108112793436198509648438809125060631483530683505969609982793628643947951407185105242859754194721428246367591624043488243615431332221093491421119999294477047860686403606203036718521034442099014776835818218804258072078996066346879314922588506616151807230609972793342756143547060390769253308593799523818977793876976739578422584208851773466960231540350398223707898889226495084227242528891746939796053843337783544316636668256760194917718295044469176514305694514275157631261258221454814524206242547689838011666499570744444085736964614884273124808962521296064191694281407851628441342196849994969050948748244296549438725419892224846827029791051481043642015683835487638188247046055174877633132816607402095014690746990222278210898480680021725643833392637046865121726898632132996610682317843862670822673483098802024404558051114920556990166390741308874033594481773722683416937730814255949434277475140941546481425719626442472163802529218557637933044990666835697486053342231712792067993296770912764789971854672843921728351470134666735223098068322632703835932080335861329934329039043569410812471141983110959515407453241931160390304733798926703107364159706130107114082674957560971273492757587141698434485184998113008464385878218544360164392636327013222380464516734685462773475913293902226735021977588574232167733823383217363993905397109870245942678097263252201550345211084548800222874458813417464062994612083951672787575004382051115954807292920104408850026917090338140109388546693379444113927108878000951234155656509312779665642033072518713654819112501111741337339805446509614468867877710992203633440672280757610644394842616389578121297626025745985336404116732922988261189820382991675191642116646221667259719811136657204532172839026936162517227629823761548072598150343486618525309858411323147700705043355965780726243781610868183905247315714809749580435502564629107226171956753722401240412859775378875253353164541501656962758309374817380846053396325327665816439234232709508542911446501772496523178000911478230197917905374323361813236927688618146918391547189331800578647407799807383230626700131078953229682865287025139472938488456068835874883424564062296144394873565725104731597238083453251669710495405142796188800223507317753010257452554619226364418108829472397411473470941991991297067101884079219350203875377835031999908669125270848576822652735610197564741010313364432576296658605411613734923491854863622920814025588573081820159538027533670821702865005116451356435229372089532564062900702974333591785989840471549683666917053767545918626023672057266266405003633635401405549102827957428250645453626637705816330450346164069448014294722932721920111483775721298085829224103739220670792116337372404292171757691588747019759960164270986929359402991540999465438723876716329850712242200269667574014206001469597429695055763423623880159583678998907921739797994934638514256379913402736135766705462467468095514150490210471701835433890810933084952456825140764033906759433050527212960579954621986069473820847759208637406183041101718771592984648675034252502220643610461184032531055318357069482684859074964506810892843902647154557524894265191846136248017556472475046022150984171505499948356220298768574080698032912717504045047995542721521767700641696089240689808125584583525210688326140100321513499066666362626289250112465186844350437095670609134835752238800913472142531374701451568820920649088969273164445040472318404602570902237609940261420633880765426717652525823784537505639500444882212536600719093134607968594819538049214272893228576438482529280874497663493796100435802981966504413427482673448977806929833984724048502785732175961021170169546567891833593646664367802900274318671145342627002644271606617004688835407145652810779097931461527030884347818163297109568776588218035369497837924668034755419824203123759492345386657494161992715596251147956070886713785693365117134699436355901732604967107763879832824858923299289676040281397169190975735504202894583073167209193470804524903737440314025754749780998355081804350555160754813239473518995180920467887573882846772666688037659703522037527046483257458380978899550442578224286321184949499753978162294882175386186317283970948243182964994999022173441043973132574385009232356559234871107719895044433494454864048430621345899981146902218030743515743862665365165383460103790032706240098106938788338047024646295760051831182430369711236036388752776662526575940446561817306834469866494435602470214633123598006414959182748780231106321912832584843422792258737458450289693588213128705414145466643666454382845768059030107204912903170493787831645715169145637366196515656051993267942053396321119980594143711074267690894723926140815039542779501707926142717755834170844457960388440638444756170579674338099527719732933233164189778470906599450591262604025257609252883517394204315684842746597342160970057385369951329731430196393256477865869480638464123299317021494644661037052494720651250498207228698978122027285209593731599160421061562883705310928335617603462690126077490494657169870096211080683542149469499047282413667655519133752510741317531398960405300217489183961133029283001514874269305371860286958896520927220709473668473973375095594314732667185590367161768713356917373232440796505457536781025019058589231443844824494042097230650647143692263846778834827917000254170594124087995945996546421033542061547759858823114521845673804360992635103904466163418643651757694400095049669865010942931084104840538662166887308920214657597835179490404003416502515039920182653982045824334025494158032084327184035470215003041965769802718164719536226254775913201801545598053224309140311875687869025420143345739659003737045857335026000823225161869648814210950938520392651300957725578259791392750801766351653163083123242997490874360672251114273197269918256137050735775138424936272815683348596394218993269701697606121420555241953117936877864183601520578969479078282482622246663910708566025536641661267234423610887955687535658276237096508176082827269800689564701020414835034440195833563268927793008530305684656762378732764603013095096497785691657491849138137526277694679356091092907357848868503031828572912230123183195683184797712389435963852127750379287963412280256996941377717654397557359445414941128179171482607705282944849489099923126984728176100150265121420810342111590114417412993649254734374208380055254039220132547773683712672585765354351683038568900736020625015611320890726962465319251911316923379390130390065545763013043511494906565087818905330143787329788796467676102330663154751757671346747867913074394899530339028240655943359009511639958362257036878721695516466259996954197820385160971859354228836774957703951518332570129744119439772408814305970056178466767217148594397082536171454122694746378775789346357118928674985332769808656574884862125724252750786943377887942609513253866122241982006613285161330307712698290806699800251660475846363217672735894021851684226825109114268570250990188181090403653562165725089694781883604353239868397489333001935620656870841051804551420936317106460525951076343905462835836368193638241651836988289827462512744210400744927970996117864713834930409511823826352235867916036037746561270783632628190750698541030080474724584141110090519178772109600925311340102774763414384035746730714625610969818858016781430103795299770493240021031835843600638100267628397060939395828700367047592607731488197064512453304465425466030178953844349053136017057582175276089273238434329241001200643598131122466260826708934876576084788592590987200808626490407864842478520519919902829972404536667766294479648328241679262424734280599168397266607543355870115486755460632480707723532259130690672214756602332322981181097633392095222953898799471276959525483556698975490591623094981609430005760063219951869213046648736754855014086862862817011935631213164597921081520397938223907773626525481387288646769409402893930034286422802151014809322255472995956274566477698525225137352277618532116102704419865511391176198127847724115635562939999216284386863447339166776660576026280441689914866717619478297520523190683335702002358485173395311114595558114613287898165698833573242799972594074246254130229650609432373054136660106251348876872760703365243778039416974400547606536225721367498544867794704708858486215546407802935838366061968306671099096716453037065830786397687525296057077600687549004398026075559115950993763124202994442644604359220596515567501453225573615236381330307023868019162969521981642998375003415336713951447214054557600305539887144746408422199220700927332526303459310919553395930797215761358497242068798237544406543080394990282081414061537751977427467688209852119118384777617451261130576847688345781993127633398680885745081153472118727132445470116806343987985223838856635541631665924842419574260945966828433200399280500477502470193917919650549407276432807112704817105547523584517589131304541305479565500380823641593874920761460575768098357503964108479236429799697493291391598126268223085963587865789229509388964526963354081656975254756421137088484540656551019319519318250192051405300871062442948038448996689182192032058526154429992320687854282247770122548644601266721483832674030219020389229458936801125160195713454370471025387186181396216035966616060979533177102144594308017751152456819780107106212562283223141526161095156116311383544463948492221996710762894922572648336574636153335324289888972255421456139009473148074463234736605043971153009828437933813385862467255154853707553945764813789531528663750697513296691782291769051514597034493129943746881864690370061826688068312239982404770547732211838559263723634542400089878662841281928817300843877662495031041866989138800833912736478601177038693185243589676370020866437851087331295091156021520527107212134743056485130543622046016495394365082885670902743555947404028565707777239765995196415708579480318192864887432628733121191538889900709767107978039261069509501953961208377043851191384516861607775952022310007125711205103437766735359498761332102970407742737187938260421597668229722941570865019092492757715726171343160862385458043890276504326081073006558627525223162771508640547750639708451310570194392542806519667731482855438876063255776808955297403514225111872523831981784458401011218151410762875608336876928585921947973281720686594589382903691881217483248806121979642033881999271070566438116752784653384085570591413430849746993796645526777594982446273347973952979641590872606237299924527295969645936981944303711822190041600416625307804167733101286928879178338231574808535297731154568136293859794918983107929717114882378248499514045682969858438705209626333346746084343222503408633882710550717436757556909159280091727909242549390197667168679509488466264843640653243462656897985903895018280386610643926549260650877453193873537906100570324397315753242406685599134762495461323949275068123192436070181016580640267478567437660011726413562250605033609087797069617333938261263378263185896160956066402997076762231023190630723620448574342832180859842113443891928192588410349729410955393183874891613131926057665482599752086819554025913049951900947194897891244292292127472308038960998528172953113710753568452896668535465948485491813712295341342770504287865925505064741389377305034668645340514198377614076687706371160224457650667636634481947997832563502164957880897211009314216337440859466753591288291855915153997612294962750424150775134375710376742474044059779127012055539480459634364722773457520157373889946794778468186010172700317977625033479777067357087356241032391395812874241934439223499020079194069372673582882395694102566940751310854285917663393724581830151718264230962595499215762129555918367288414877946225172347190810520911580550911043871394854948210508350614246465605606307519191899840019333554392763472941270816851956917459030933505545285515321635168196458708522901094565048937839091322370520146965115884700798482529632074553519491430668143074003392585526230011535596458900214198151184529479729757743768508633721580005541556435340193722898726423108302922926148753280621146837361283347350507418691575568861753177987011691793151817618824158015803049812824404410784928617159265871888274308568929028878083344406977719983601082665348444886925966655178414075452625522349618354094699260216880972673741117273494375212349010190352642451884274025739592135174195184477330180889745690827895948836310276879741529696264961502069204683387724984346401226620307443942069771540343011116178137356455636467061929502707080172237969258643658825194682379367777832538336325855732737962605904079173807664094568122979543445808395701696303196242910810877457638334711960165798727504266507828407516964403942867871467654970046939221447181872123779097766703380343073282886565475669372600073372538199065720820293419543612425283597079839632739562763259977182977902998332778107868341824286785045460247626580132010439418102543031104934154053775193738969390229701024484167017872248451813056626649067009075968865653702705348733582352350280989216814448721838924468487947215305893889773064987076708595313996582150485119347001056170433066381336452565279590742053265369915824102580690317005102938426769111825055326371178181140442383242898220110967460446457669930356478675805803724381577472340997236044547351653659701240166453092034975307422547131071379438166314568179889091315047416229733579243605576031522337293697327676569351184265475595846359172265754000912130156402184915200398452171557644500069559552161892665610909537662850760646133729945682589033585877713840025726070155227126654767999541499064237569621612929969742895729690347195652200784353896307327293996314213072451607137173350621027301077256928287182291822473470788850907318683621805167600915943467082487104217632179919618315254406485385227227957020388510850889444621291825503495027489192421738524404745643345218466412874677108378836706075690655848233412485998568318563465679493416006904657068705414643952805914943539933305300835464979237620365387225576509764616193529756338428927984717429953205795060720279673820117558547690553979368326933288285874184853613068051863079473831947376370064629412505714718763880879337634748166788517329949055744221178140812159423588216269385423099639431149305823074982299112567513157707622259312627217737499352964148520755080265995122192634985738889999177881661510282206536673263663622035602155272727320573822099685386923347738753039497597716153955806743968326740356551350077363670645665163353454624389912479161954826649073968432573016761646073852885844059575121714141061683898340313243091734094797055502105041247679783079036630565671889699382380502274430345839242424650388739037257176321924706916554388484086626574690224907181007381264519663856356241205655622581502195265314179852799526673506197616888292522136515577948440892358652243965438026163049416899985096940796597189941374525056020992194667585137810621556577279643084604542512292970177010971783717131825957843156368069299113046347980366487289403967622972126638999330855223743004620992432335276092401175278711420159859402008261258833745218191207901454547508985400001456398463741420595280077910531501858701739749599660478846600057501614762161726612147122603436024677869600051383074177846931815269110017939150126516052933487632195532355234686695241196117377415670512664594749970618782033768553549627540391683343643077203802708650147333932948063359969043060428489180467546964447703241222180692127474127272556630678463832770061876801323941808919550867706879441924650884041661386411389843327511243841308439111868631136260800468185252661944628950431135611964788996745937255975097590279599346955678752213577214579641934413627270042107321451392080118279787619254536991868515039273709974964795936154434621481931324004568821099669169180646103389633250958966666878088685076876739057748604493696274357590913429390841470676931333954001223645732908195751692754818118531275425225849082240950673880611390257713391558403908683110102384182858435711510781660392513284811214655218073760307923957315939906840594848650805395194843981285070179019508282484035229556199847518045218407880023731889795242015896029242020910586680937320443123304969904615984433116959703037410442970264736560392649159568686212928078951227652570756334309118095700287051762811096712662514655777223358000881063523135869071524468393338551969132420916220636001123452736542272148137151140471116335678169046626858509033965507970775602853393536842789637453338312091355703612709995693963283660676495572598796480569563739765470904854255395127235471784289531123893031652104268359548834242935381158895162790098796392692919055437644372323747169648744186012986730651830234671137740360977923852452125318640967830657178545046903236940334922646084772879065354018164766175701161994639592908624585153873424366847610002293110295682439828921836470694133427141843294580585139736727861073524089232380233886948075083076633606506807284269981665470719798178903307750404955264563446192669262136850797510176737201092679809320398436337255815699626627019700448834016494946444844150217727801462317482530245831788284153355363269217860371237820134483153764678280068073283927559243044128763155897604438973487317780186900638812009794168956508774641227663649476362203889046916181990293777104016555610785245144105484220753730018263447579875356546031501413801724126434350442609873451902185784249757565121067528301074350484687266397290482070629298918781832805253716260545554205698710784893649711453217661627033042526260937130036768465746244333277561237739824781402284141850761067818752185224925449897465104868575992259239053977266360861706320849415674569702251981586473379901992957145383393288262684874598523876701848378928520281103407819725380422596962835973844376029749255205009738803497269223723002136264986086714051559152367198156689809883378099066196088052505468952595977507634920040998472717275361969910370688100273140178716985566415593607839474936992484227249567917830382889242906966954805572280501108775822458900257970057254761895756342921625324570047931027323062662312910754450849489596180785215398059692775683670285830183513267083661415757937452998906612385504357860250146657270799624210391317577340745714915748452943180442574718227000183107970812852111542431568945507252740448248156639284878217536227082323113744638114361232125652100587223364828900297856951433022760543505978899215210428585802883958397240846428033309312670497435943810444918399903247126676994464181442209783668307718203289763425290662902638842570840652794735883195265935443501426996874414413281424476203384654157721299564120825841220720290998597292537746736568217322177603458106353259068463243407953693222731482543592394589526905995696031924696104324562908583441678029696145693482424864233663502978714083012299355775417111846853285943812326762266780742552044057232701173011711961171663828154540111636244981394491423163783739020286902832283865189051919429859852783986103490083995714629110104735596525323026506108007893745309526795431719340666527405785393147741003247507623669737417756953064404174595210546676614872319116562839480590578191676561578867755527924961773401263145111567197732699977703895644217541060344316753354177781689644403183855901711720615411996051945228073632290294428629945278125734390311451812818058180028115136657092328581330712836524603292038162004266087704236458344737303713652644946397616305429376636329638677740142310358447898816398154293170830373337779010449895827887261844803001760900483516160824831468040343435221315312222808996448242588327417859398708206744689968613134329859369711418234244007524427673754190274937269307122535963898007044796699136433904793843674532872780469524428931376010844671972936442576154830268197980870402291613742377073421425112957731722466166069239943454078809759827843765564708150868639261405585513373483909115963043984627403083852318099058695390839723575114863458914330378750332291396960054739585633830041450830256824307150683656618657716028781240787392583452357849177177015752024558940937595364825267155551782634143286346812935659768177955629510130500464710343032324792776887550357655888963371503545230858444930779111735494462614897746415375196409523793307569577836372308711333978329939994373386296196379808571095530434522997782293989284663665181493739418526796358629608667982181492274791622824038252327557946267672491196617670706238762986414245179807609522932244319790138183179938951938266590094388230338989901235248819533512841398420644688740414374275689391345209951948255057365895306420351150530773016698199651417796097827857921068175546617002085517696417742269702914426014919307173927801670039250132880607880655614087543989488159450320888327737021194300976907756419597687820410290773814633743416250765907965695407702285809611049605553075158900689957035708793336540845412471536206145341923294748568466133513213802436770614884864570175421831076064230706052624286092273360488991004787787900673709638494588828819027552222986671291442450022853633335203909210082109773791388154791988191296403984811747763223350055323621461907578938805616275103116368259903841581930937607545513824103615260177445313209046113828978623522961890972384002826568774842747477513108590123694856980468064916270256327554051404599867341406247589831823861196576262484943028364088194284702831494766558815935412644107368150041979693590454649984270860745684251524364658031239779576466131808038490620730068114040159241698815565521886354284947156867239459701509064695224436509644002458869728230846996090581853163013251147876243790162069916990233062698031842397170598092643284050834540842405071918416788268521228940531923911565908933710988151678930177006456065874412623796809069931200126473418234863463204608085841277791006459343435833842007077082345051139991670840190489991839210338182779883640087413816994246322529390426641033542605412710175880088973175330878354396072205217567482491003100429922794466339978837157888754744534592294701898525672614532133540897191709297120037841554012620683942147825927339695579700465269652134585360719660547027340778813410555679884666554618385846023853049192373926565886009365618000836690415227155679918612415483503766453157021061592120679002533017231004267105438783489306999793856252105242642700208065689399646296060700234513955858865390424568897372181438295174867940745165503251029396788243270561220541847743437530862578662183626720346326267298026373347118580752102266661075216336721434008994154741060645406236540434060413344546479222633543092988399103503383879120383511250608206223406909874240194131345084378479841309029352413461188835337483819352160147731273874523286102469403135496493325212102601723573922602843266878622708530882234447515932721979143221708907872767409933603285073435615603456081870384029505583235236147354409481501304048851853324507978368510587696144611925765625878112615033096640488448468009182420572862792424048520894359754753678687570885778643286860856209931672236440550666823218628803275795274030100085370552240607533469831932914765071931327183355845773686554672483842522201413916139394461842190011373600932974865848017661409829376007640443061133214887124738310855154061717491146698039126379833695595129505746099921421593312118035251595522610293224066576250184849068853717015505298334441879882900383019429718418913545648739679546131983386619141565513717370287071656130951870160775581999159347174023392953511468600933906213434145023230865322234869879848907619530701188510146055293006656663551620635479368699466431904471194607901286212420044118576029531208745247061230569812443481657161455818582113812756301041341457426220575620097135969869684584072607843583081338175756901490793820259391753977192970963529276687227255629435260244819723755585247873076786053602547077092719555930187660895011561825437559849492207554967016025881228941714537616666150677718108382085480350695805890753952944077962785048984399460642397615565750091011390930606192590537708020335782022739908558323980771353309765539311057516240473522549398729688436618259047901542221827798362140971691381563479581465811324929748009282726543761297507856306403120462740101916976581985035469581103679788637794491558657282883622266726869004601220749492506288509718440931275985957503648661796059190313245040588512827466729043928291699427520854716901797677725498954514246459728446136201598472079341313461777994866868737427538814763119088421551191650397958729086843789108352514788211809035216181996875325810885656508151369085334434468217667178108579758158287183632314951353661058606769879071841635343949802142165519531939041264285565566793407890227260286552072371799688192385544289870702960618884764640756814347902119267796838509602835743188170912638475589681910220995909347197625616679239361284666590681303548090990090866394029801622995663351116216753442188270221117932752240796358462610937318275288172249573262173479493491745742880560160383487949902792570991946360126890955638529341354484551549247705281698972472346118635390771175839330458560204530875399852861464735272826622796886676878989126866112204490144882582507543262308642378937603897197362550379834943130651756015010026511188681148699752318543673461720393786816629319556749992588645479484137607262425140907952897221856616727014578351267827971575612000768310842792946871732046724843386645250617606580688372102320947564894077412831636208703217985518028804698372830440266678641949693125126061518877838622049179677112436432092005476747443760408403831673590671149205709887032980044977634056487578760315042664110939105552157600637884644665521740751888972767211606418905904181157036377816420804382758328138196990511583897568971077581808613202832786380826842710897715493613457201119434185320660278782298413803853761821871754779934992231106935783212524664111496743686914998151384931740572212501819574003090579932052621938706090886431238770815991179496425548124918318558338039750342758690407184103050894518297776820340363160532376509491322432866190952662940811391874744189049444890161531999254841104180044517858141362540678023174231160103047013182049314092093125665911540877312852383112407623504304826560136965142307914544944132260151099099534709464661026536460079711183409555965405421076538344867434360740198980631091633023617031345083829821152836734174997484661553939847092118713915874504570071079549933448885973199236365775395133848326840624699044943976673803475715229646098406842680740239780644483701306676138947022685540415195753233266053696106635929533683144476315222894247217400580271810307731940358574283402523767036457660024570075638443812644382909216258287203625614483155494788747661584901160827311121999054444308207142302760384311865265966370207946751015759262828626366445315777508587243719614030277242695232146047507335509862027416492980220488044849004371106849020613496407930335511471989258382377872783413745789882632214269815397932370182701595183471687203859368988463911399151716489217813300833014009447100193034218055720450862300356703360730110170100147668870498972878035466792235458499114365387672379001338143900822041187909389716428738629273716244279621879775038433474247648919521179898108770536696373445276440714793392869019352407187647728255040298578564885262208966469784691857377190128082767499966901640282427654591910603329384072167114098992689633687481351997755254788625932696059970955533679103457354177903297005013459860656552788720445874210031490182239805440573982001493435155297663703603673944708341515248280034303940878869089301935990442029757040797363780168949551531174967761690587412785788777238789472449669242451511387833378172645103631131878314301358849250339550666423501000452310945145515976908253669827299757755388479044068455390267508365687491708938650916002762579414701078051774642127230369063983284437692157099295015552504914955102568624264997115107863747942940435555665706706641127887399233663208430548126365542565016639034337640858158550768882918870041404820303860429346028033321013639459848461684861858353000359791980056069831158314683678367040426598383141927171349068317689067025223583222191244125668552356350881470023328247482683135662353594739538102208938626067437664917965637696364945588442282256824702249455106668392746735949933004164181584375643734696489910788894120725353505317468113160798660011141140903319806564119046617366902560248481413581081549066279569267696797859244437642549735290256666266138867520857863460139821820090095800669738983938450445244760384322472651857964181949134843811474462843125491199325290434323782495720713835525954869687798745737595689536363983541739165064174220983709554926762090035256324057118864912326724974375774668489194899334881884959273942406573333188056257781413699950652288816263044004010193714894938919909020497046395461849594688893646669209773596290038074036394187169177441523508774732724354367492743862742738609082649020494752577531373104271476740555031183571416556871448005616632159229465516151493816486472167753199262146478054757210294168685546443896283655496123179304573724953179245947403545927934489663995709228475704330378336705481258282511046593475750558191556068117150876117110607046904672582470102500956677637628506771059264220959749174740145421438173390675128517564211891291572124440252165097268603179408979796042789876326072229384639216957188135477061649688364892589744062176600484333887173218932705851350024919654558074064027712398872909369213467461421494882558895286937831473427108369573387327493276027311561913753703739255152817292019360533278647687135975825225750274511011098980974266463609034076025659382981785112951902577615614279086453391132336168398166664677692645089921835077805006988928423789316303182539672893807106649880355809498083723508910553867279665097372144235203230517146460337833553643990122808532086270842788606739002545896960438718774724809488260293724308941878952059705650010559806615285779852680794310402306841248217686621652447564211173880645103077160434023174094933364552139260524706798417463157623640498863612116643306985233793671580200960738122267748876097330566718229816802590276914995256128962802480506643652393861337365559068666586860781572648299434186528840939603349914852737919323885410814841312143350340892940484291427663611871701436692835547790252572789794661134750115723434533032690864246590958978929630307048685313096458296660441347651767358516017446197177192188668447965491610979570441832085693094647430455405216608253326285140067008727020653971534909800303658203556691080791933128418722783607845906368033522368293657745436782534954879583586495200784421316402621385193908492864061088158345196564494308131203936110920580720024350182378735112324102609582654014016157334518345912534515377693159235524209770642987181976102603460985946700523913739534144134060964328174828380652792771181810023891697716057817493821568982945941443118759316778879500809056621907254484498220482450178324115390635595437519979637720131814006845497021443703227956394610957186813958471887750865233927335157939840724438545101041990030988693204315481365285104183550632326745569746599051385789116964185622053224851240718194574339482222953673706110689118338131507384649686647451981192842273634316103599416429242354961725687820746501020220704553617132790065969198651621998068214928523048979546379107122931758622101687150989533960814862734541619997917450766306363304468754020774896675814202862317706156329489729427818950645731957871667349789445001356571974476741679786716315912074331117654896365131514547785641386658932035390643442234862618967484745150583324247565255805943207164769114379602463304088180448863647184108880612233196754848530707085723778918278999585674339576013218971301304898341982915226869351508488936246203114134984307669341094451241946943217285098660559223336970638507770384212686392978478208359422699392542606288021306730620918900757491409486169562153003055744545410305916623358653944014103213443536686672716800071479713001487894353812573189526499537251014723961941702488068303613000892442369856433308219115792293274406882708095853149125952415866914397583471978960234680625509948132365053704459195584621420902972261074112133492988348720504016206049703458537782654863302196633212386363534891296908426479664344466113024739400855111538190133132314419613500528472880028755070262702794678344649279943047048434366419597316140853575948423590162539788553946106542852714174656871661733007053343647102440107279091451593860012590907803866194234581812521247236641432491794528189688537844253080048826051445275820167522749324284680994747321513900460304923530697777821284757709809786740196057459024596841225368019071963494712658344365728261580642540392233138195624393079847399606840033982711912440413397354851392071103648146231651202972966865360667801761540828297739195362783419488418363213038393053965406628954507563951219547102919024978609268666828612022795940173035100177038470656426290403621470814671167833948974841764539162992848235533588261128265781870059050478655951714781358860401122631829198175210752398075281014907419642343775682831055016422607331472966301630089496585644004333042792109101942458020825929025165999868005428493480853622289877525291208288502430581946244872333548275980178330509304752609097329238282881461112131704827116019477088990746328861683051326696436570735702958522120993602045472323232462517200647244279986682311437103271069975664314161317069639185116346198437851497547428131026025896691598236096996831331799046855287905589011634152234946302578560838923887073516807189652125111765288623181061342460489353062636049555776934082293258883583384260205996998416256172028393436518866415376414790180669528536503351316462324448517524363774738314355640247285628646282087434585085602788387602475266942151481255233218615911138449679889149116175538329800855167391950120368296655432239433654238833504732164500264720698856539307545173191722748913625265460888773098118448999383870263395051316019892864869886045756736691394661337390895766015687736004846631055237551322383882470143714627994431385661675765357023003373753365468498877222877593032624424570376638887647261841837806613847993471697065701572692829244468830229583886831257135320530851815063227179397695978787262357304241555796096191804560466998272736856221240647540715691115647117541132774916067503423540274909798463731524290333795059495353676257420850313323227585432018101429625673781001194723777302999653028788367699712139323161943910956170723448725657495195905249099069444385700380905370375048442177355444144891276811724930305128345737270283986554799793712152515314171087489164717685698584949218308001811182633513407969971433227775631005585720729162342136113299915680241457862242181246935219406444613264852605192716270130602662962136597707946757248919296298012542193550576165715148564275541208379909211867181822326551107702359193192199853993837805741365910506431807045455572891010259404867922085944354581614876745235686641803125189513781710383046522363928267746224610014768414108944071301616241368826938642905222049482839470165024919070545965460243718157718275044606928609367819064966275979138460423729350248072447963396672059742161344090537460008453383616966012009954794161021718526128741238547976123108210048932540093311149328884128147517451963561801469037963388243166399975352235708532818083738011349449362395604787099496837140406079843083069432364785599292679252061798677780533010317457764897936038701321643310286384624047026611677010142051464118407879906643055540557342954073521915648855288337568598888116284647820440901329838579897601167899516763184274009397212166298384130734849547754902306956945873793460586412152485566410237349992301563299743376752754065925468070510647071202949731862968452064339009994271971367544344327768409986064984069732372834449468056010861998490120915067092395418567595249803190437569180810331037132531617918807953377468577822232553116060377820992380988856184546342827223076671318633427650484042829769386270680525978892209368494945599761736142996814186558445931120634733145211720770383196044452609594270050407831770735609002417498830949065499342691656282690020182502681257548698962358655746457293946876490334220687960457649810913594429100541185107737947825684771609686806657421892298106661077657102010306881311131199189330082389725947763939407321324619053770902860786222816342996104871196567924938051454540382552519673170285796167213127870823997920185847183907974542828058280410918770562497626141490910124829576542404291934275398846632027286359173134919640266747646048464909959376121362644668890474473875576525168248912915577258879394106687806174038951221863361027320618804867793408000025294628367795374885776406314728286515544326059968172129884575433823216256185715567110453854212424502613557786947404138710501260279580457010041087564174810718746559301470693985448258532761054172740719603794999448561278883835859517977219728119110297383331268564084380751448796598263492581401406032528841960603186903329725031421637619888410620933045110633631873771778467192590767810707325511203406970536462350543198093261064792683151995741812384629650659026339635362487512394540718032656297513446091220315659417087489433205446266537086792573613754789869953032601204120398709150414405568042779548825010188345258704896040269455988204584969831458666911059718466490088581115216632537455119482067671255883264813096388783765910998109680725934082370558800903185547704546169006819617719727782139382903937569942321621203107641195098573694399847310443747459431464535761190891887344171200464928380376838378481583802315472444871660705450492306549331455864502749991373978549150630002618293537084630760524770390679564401726410236356910875113604942452797091699777131126188884083015250752513784280147085360002552421983530746895860385257807096567094280543341461803613184916009010753548612615874750862924691139375063749839949045180713898073022582084969484782283664662340676512909054942115340971307029143433268895328904172664100149053280270098446804964949664831845248127458871225318634508788844375674668295459103580133327798898953243517628175940128513487590426204114535354779742610537631949137692927246201918356830091186826776816733269693598865222669808418130610620055961739296411857433842862803555064768378071376398467406279114502578548759035740610047295588039574100816686969481717014162588648898103092729083350871084354618041867438953249050209103656315640362662963196212744473959290389354814617188730354622120427465082453828225761596780548041142417044405173512262153532739471642592655635098412023272234748011854545857166487768263772166709361562408138281499348723381839858637028231575814085111458199329422008794519501886108140183295448931891833597389058505266233639852933226382167332690843906894913339694820305173004306194562699702310757844276362652708855657350555465698240143488920816358321950982665063112967189735702083686786600637242268556102939441869111722261408141580456914360306959609493250149701122071588827447071993829392482801740893831751823653888101122607187518640454448691096681565851137154292670940176778609442878494487013789833821713125003592372350970556341958792496800316508135140155588432724698479624902050372380168793074191878942311976274390414880215459946501369204497308985509959146432510751617596297949414707478415322080378404214599587977100380825340163933547348920290465836602796809376235835559018569079355753506022922931840666431025395408409424487831182979418805805382472632981908888391969364745729839761944581437929468853717534266271902917505674256199473859544109213041671373716756753265763091552482698772145637313299245898611281512730154159283851627686269195744485055390729457140969278442571859570411255940794260821864158726221693379915994533474040138885925331102855892801133611865370027901568773608879134544783494337162385158975437677269836732811137212923714757786739282006012878436325547157379641436874639413101880371633084399046494528220977699272339945900013240788265168344376804761269522204432162115648867401252639353801214444285886966115677520030487440412788510964543010947628042982043457577281592961024569455933799891302961899216761746843441152885430234446404189698127643474670934957614447710226513971716316571415077613787634145963758938697039386447340506117818819737704625379555093444288091112013945533692455288763666109728626774050626542963026310620382621608870635301859162201637223007485013197881624684529716094975502773036001844858296731041005565979382468774653077213508664554845808023682371773646298201874087830361791548997433430916976894967550437492287164307548308506690148228020676603303857284899782680054297864714924121546784183098411851028216082596040931567062511644425012371728972177421526789987213127188942605241760345904665081646376189561824317297875706156531688677162021407160408810162882701691086275352261980146850334882791909578396623256490642868692563802749015945594099336507911522619751221829757285068708048212650779463027052279708271390162773122907735100874008488695062672903759418187268779541182768797925262459834904661082307916072708003039555023046189696507307472924965714407831369859351704537329479401226089155839136652609217355124028846719529679547568885290940416650133216227371113640305105921132380188461058704216442537321068409105643550625616234065119496023654704484521442906597537037204620943586137356042838195513009481268177557057841437634696244907030815463769761589361256842346068727958190621559021466230469215601839682941647463948520967598792192666926890519752022561411884681843326281360278399467208030684196053964383607421914258834717948959087914341502857489009878319837338797967235047365794109683340837281009262661684396344993829620855094016957999948157026270772090728511409359513033252648606449937256646210404260561879617051422441121500215751441133243794308900867685223971651328176630667836068538962072626839125688483047971701141993252392632744938569020360866484599071041831700201389125443512886341906774421283917081824086624611169271924557075049341476405413923554479688125812177098463490905101891800036783682366070625769295684087216308956996970642588593826844824473166148854668330879861636314726302926708285259941906255307461135755156060781920778039031340213072678399839480453212270651994330003429372552556148153849402403447320195228446134932754415545294064112066345047570286987789144411139817464352656819874616730114905325145546842189517428439516181667069526120232950369476049075665722724457662573714605048996009369832989500266207773254074992786828165635371451029490205374701525178493153657513997608542234322518897202452245581483571966384676930821285269923846984993792777493010468138461421154362488530402194314767987716927288429205433082302410779077992504697692664175127411901100678896978260347041904424826082082212949947211094650345672591658579578048877882586268291394979669178930905136291212183104237233132030081805794451049867026812782850525919757784458034536477306106896531233301244668525409577487154211003342378568641084711906640670363934722567045335472926744152144984264194205730249691822573352889686653150344352831644642616844559549396403136082900272514057712764130408355659363968179810645814908393214288652518770960388903308628473554777946421276267720911090330277224114379381493767609922419710799964636580498358225924904057605520892083428874793983686835186642111324843560176942925995354602898354290987851190107023941098293997629628767015870771259419977292857936950011964514222424311873815829807463009378399749096004457477868545806509817994272409363973551869912819966642007627841700520943430508089213612695867862410696040379695121797028968051738255501435086345090716801710911345895118118221355070539256558517638320877111547113159112905069993186842007562411116340091448444505489309065706868287628255174880237142288683959055850506852180071837176499414974925814913536367020237666462966150491524600377156773244542584797648923791858986606657200527258380944688682769606430924512244640041620922525823605859227296013536414957427889933852955745706177533788919551139919099705049632250740424616197730206974659269243074386457447703301811424259935632799135945921840173506886846109889585331489339322247244481767899641546475021902661728708951404639304348941928079423659807333202380842328065579872166517241019016837787650978747687045891350321675278750536454364771804338755448336698088666517224391400632460031666692982559146859362194632392192670645526588838695981198277330790492438894084317012437754853186798700550145856130084707841767558459749196511476247784029535366620297451814022879380852330879479406106815513973429395572375718231472799973697580240709102184772569352268740243021426238807049993677988780582258191331510379813388630236693592203108426692479954753876752885430564920593673329633090078764916629102834377229275990877216278768373249988232524070143705092192706719205086623824233546612026575880607082460206114538914369188539510046111044848839963190937694255156627563908921556304971797321438747841094277144788625603502492152750111044384192460231516305103748809803869342974942052515724604497537077396896468868413417449406220629640362608221407690759362661996300802561913551907626037053904585598159757574150552666910335294224397665233794522628765284967377990271460035689589903054397971417469157529059898637416620862360645024770422971721500852959326879764508062021091840301745047683585508955341686468356372474947032150060118864566897829165345625325602413646567383959658398339806333921136586938586752051150668021730867454479887922554782295875168984103774255691460103929023551338719120172333336315188094302846524997589680163580578808474009954835576786189394525475324310840117187069488664778442478811160610040430261118507030418651964927239472161128262022212945838568659979557504699340493321944413936506709115436706217704043548646992756105018508088583587724587805541700185377810117443008516073422568601531323388872871361767921757120367711231631227322705796948705072155496919707487798134929991073928397511847400506029594324688875955180390941163471790329446708211721195203527223718853123193586838374508996801843622503482524554790982137990754514579359890590977004312081617682242215087981441687892221323746584262461369767770175603843176944649731265893056923226016100210136311448387034755733974234339704707433717746814311925400551318707780249628590593709771263128513954484666256107490506170613320154645234460362780247446308565382875963519931082673375265159232531213384067099207886673208757734143865935038686753988935131864050516209587085613075601976072762983996251442956667459990211723300082879678195634801567967286994919507767408192741703702126503954628867811147021811787745847563732216278970854403414676019770297586760700841522930758057252886007354130936728784520490442453522198526292002238991853246616343104830940005393149560149430352906384184302790676123588833510509351969745239921912030310728439513675361935748534743006862905011403766702501981816221404408357211184655379851329841257849289010267551080655817374927011166731143586886790541426524825912846684802328782520711898090758317553294749916733401318380501049046553155946016957366990383464193778152011243802139020644133988578400600127421727153974787917619119292721769912075982982483525844318013709028563095433966841323759044841852306729459399735272607610622740917010032407824570845684066536703714560992835987519785679484118292321396698614668302062379393068212213669355762116561874803443821102221465598695852121149493359831696387171867803736342274199225769100367306053792263772662074673601114187415064011350396834807590083951948424011321865977691664992646045610422326497736681259595427472813246208990735885493946951116290504906894613359305689986110619833011964162527279354147751416000167649265877384206299935581063986803396173031500558184046414833858635829439672323597797705365687531407683400774141932831560767174060515026808607086340230431254925827308823390938345650581038491941782088090661575461442471304750175080423800356302176248597986521229717896132881627141989859725860376126210673030780519147122288983829994004148837690828214746676322527303961147908131626632872127334676572514656150883852123239674376361595371748273215725188526991955465206639610663359081207639226099760005241842743634366818272701884903831633460121162132824749289264418719337274490213829168986594672312612591355539567214379751260047941818463565559981428594614862881907459354209915621096609822705024733169110838749407289006170483500121332599883122628571288278718132889600819554312937457359055223635513559144309653938595492559898607526670673830732519270804840151110099188040512263314466680740415268015454023891996488674042204527244555207029197195912573651788200963628316886698410310819538653321640422387797104982852388914952963786213167721348460262849193029383557882944732786211700830961545748301554941530457210594718827564686282653830300500041345748131510664022631046686631515863077513000284575138383107074128607084422726551480152778774690069601242587061023874195483350759605955900403011610512523665453679575116943452240864247880853434019104140568334119580054137660335302032859127183524390971366949990541909190478967966906212985006466642244652322680387140359424262443690545048709852378225114064341610214032173297620656214988997709153417350111185960756658135162173388724916220038078489714881066535654917895642284342212528204400950298776927644005823958068276281079877029884079032334482887049311488138773731742363754292435264866118698492013483045313443781360423527144332651445782114963059936546821203755704411161166236907812574181558933982808092113080633090545239780797626613497885509742754081203671803675123107230015314132747128145525653812613828385074370030193140095676122927521730189440631755008646000721313420622169452708756424480995427853377757760101155945381503285641620335963406139371982444524001369472777293318674107787934103194296371971489140653958547409666123088400462435967421544145140558661243219717459525830819402656306170200491230559728654498895286932855793754463318539464349385029297055143086639515989843821962191066150383779555968656150187209333817839939121372306830525844677624926943410841392950142650225715090593254040633092477083451888362707184138132527449193547152950827612972437529692949229891844999470937064886876743066875798409543300619001855865759583625297135175928047515915752048306943733629227771033300393973769166707742719829344766421801646934881609841611866470765434026501901370604801370785724592480686791743268478085680902414436689108271809406265578803308677308663023508917379333737581583575206971964912056938707716437839294591126606491385418276751777500814522675588695570457526974512300255866125960720988615808936996335622692437452963145875476536431662099933085661067800769105588273634367525690668434204148684571716853237587136927034942001265739417302014942819516073672929939829957602488197587174939523279835048045868541964820811229144502222871590228721559485537199117855921855802746256794757018701905780958088617990484533972317854581030971982956256197365721483768944664000465108282798601225614671922226625241879368398847394504571624787324045275181413218192133388832122694576555854621611391917793033245552114645438662914194040377625445510582183872696291004311651452514515096931974004909532921643187764106114353340253649428803680320897103278300688892805790817919340983103891938544090481101308778176015977523701571323286014994832106160690312464072962865984583656538509832368087227291092518648346620450117040140810403133309841282598229648131492946553203912892967055644226138566154547833018031299571112666206998149725770136581873155136661861799497976204085529600767058483238791280910569105488131947415953915343806303859117986776430052801910791413432506735349630780929447517001674192172755534997175344931653579376655069518692969475870265289249015028296402341140725541472060831332879040250630936577496269449954488666224907828980585603944535842508962770814775171205275696424203618821263157879077780420287302731737843046825587694620713689069799902134049058105841432099140334147822761733761226932513709207772083109176043900710370886514144918410212727310254114367295951966073341292215766800257257784521067957580842401634432721653775925617772582730418657859928381972822707221485157290473944884055179557765622438906709463888299729306886824424443761011773957374899469712770738868124837760807393927144544511767182971463340215926628523935527605774208134749826483388743901175135110519303117474992810519339806396365903008180751642008451497730671781867683854403051124203233281233777184391531095095258213934242790660703647117916531790650661548385735613472928541765570836785513321320190482839973074340928981962013952102969627000954259066197953919120490450960465469921218010021626018959710449149189533948837982878939780029178597481712167748350517730086974069128762569426206171251509301990580726677930994239518260541971648508577740883309306653292989676208203193025834350678115488732416049116232229929325365501042788673809813527405437876094400468342533721494159575747686726549377655278104291966970763733732173779166246899494038628024850687539085918859085082842575689135269434632898001721802375953298913148724429756604857476038043513924048022726179742149873489183463482580665611667642742318161599901585175325359169608443196923361270632529620458482267642639294233342957175395468743187723621048014536996154299298938032621457718321595371727712355867600400568695088022434132092779286703597698907245950611716080914303021227169194737218988116938190049475635618142475244608654388669336216281203624434178755880320192279649770433196047876187316527440218359120382399424324355213219002925870944966859859109636713006740433481333080834616145417639261048245053243972967343777599350924112979413713822165650029063651049869338061712471068918985193979135242325954003930718578466239116147393629836076397441890834097231895499608767858384369878026165258085328786265220940378076091116508883751201350156916663462275462146421036935095950068915279487621923774253114855650890939750394033848461330936101803395330879967489033206128849019034916079494446928819118054697009990510962475048314900274119686367454891167699966422486854368220197925295328151679324449282145789335462008620244414315757720506508489684581183767897992422676373966903966107223748552172420075141849185596335494951373932544255020567054092389035937106456922149118483565190786883396629909579747219089342286870124638537572955220566762425687008352620374512416511730754576795883271005171672909822613825023813209334240191446572413584192789699197953396292995613389224244976914045242533860096336607890398677298344323461537797470956697578313928231939294885030353642812249133228615758782368008359784508320514194901872968052819690809555660511841603601470743499107586112836523337027455344577068732971128725584538416014682149952682737183967061044687036993556404588782089641309707072667982777775599189249726934747559835638503601404744258116213475450932124780898515294167542271197345652536478178426469979718393588702168877783264707633302755787937036951401843800509262974866699019627018647464103193077528195831506028155043304736415118812425409602284075725104496668575335479341727349073449246472870366039419673386143416777729406208092875539848213064975189340759117046259059584866629716173078455781753451678120199237959571797694055524144137565058751425720842441702795859674391095827001323931560241506416141590361880633331806798803199610941907641619999336220657032454547113060452592590723099314043111455771023372183366814791922365778526285103245182255071338251564945952500346405283329618498038536533421411625353388845933065593954798914015981101792572567865615921582763596706730994637880109577719236226048793157327475443554904812586901577774494059790362631425967359937443330606935581868018643750210959860365380888890810445926488959114448599472794511061709110565339572356309921357312234970839516676705287094394330931119072498630590207057415446050872853800763359645042343023841833577374294023897619020137654816046104980804579521473506904072150397428096815074268483354802834197954265664892364267432276059964324571924268275348754851702814626439015396989808532076204201187351385738691949701073179528523325824512363678887649130055656653241552789087901502255482931328292731124874016888863568076458801609699960001471538722808923762229154334592971523877915958691023436192073140794358433616342310218197356040971102413144417240193809604168021295907164150562343257993849400978847726267471917046982582721952451418322653390877500863383121458695159977593785077267166767116169831743512360655567398501347385448087268582568049012556766135570030264993760967592854200650138013829496912304318801865423518381056030499941483477354220759185315481784284413106726192124723657885570012538216975715451976701578203059496053042194536567994500744911769826957395914972303649609558122032599879878305277476054807352377865999214318987552054778556669807485337288847585310548289364520964660704879811089374236792999585877239005524043797212306233107327578919317201910595537393061443560155425048561202159311013895073733655618485151489380712080725491932836615140589168735654207879330164771017229736829624240980731128735654976781098854729848207339132597032710612431912580842242931366705203960837067434570355234388017709644262247206437074408124483251006207737133119339209431482603303586950107925373554259895900516150507852380320981811733135431076506538177148657006739637222345142230456377377268321453798477628031021175680102638219568719141151063734946709034462772279146022973060252290988602007629899856285723219126374820787879881438397305518297097822034524703277220594063755636779065472536373101259901430018025113683744883872501879899488207625313711213791543665118541541815429148873017320023293811571229035339746521842756750657539457008183532407557731029411634750836906097544971027415522446046385252522005229357866649952818808729323960215392060628931654850250675529642855843756860192735896427440194213676225172245672938751922619522658406180613661242699575467635045321651845065150269925097092631452423071153604276824191440436581288018285583986839571804050242225695783898388394949742299616436036674987641473916225608881961649244984231533650510325832153303076674296991643926590654233282756689820120531331280315811783854891944740139600546449949386864179730954994049675897388241712451708559267837140800455975383792310793013947277720166054593745336418497922269775463564443856825759056403978375739621344505892492680851326007578697982022884160589275744378288295201306005606688262747629659396394054740490030582757279119406187940252470377333824629905054613773268153602652739751504369498814812018533283124264200335598056846987503223785144746181419715732559985420912997267878428802189961993624164569717951620372794238195624232066018051173961632479960585258633971956256693285782367821695246069553812883268595533568365754504387508382919286576359339192513238670609663059782546055795295741101790401066377985539996896588400108300888006205298186450232824569513715123105215323061083352937088955173759385832122698773834318531299416344179332466980537661721044873064360581259729581472360644684425144353706470732261879181642802714010378800939978943787728328800308349553155854472167111292705357369701088678711562138306176611550106518668697339838358560808768323298779061032740676069294076280678646829684392800112541142456425318813295847027860596316018767744725054090115374160787788361899889024756514703246376521560198202661531732399861494694734009302702279817816615845065620702578828125086358752485531949547735154221276588284581687335046878776275547128479657754269967095277043901412668376476934366753917220997058062255773638998633581458288136123174438495343161307414936293157404930922000939282151404656524857483923621263680960770467486729573025242482550692096830171709906342744040615710027028295880348725806711844005024676996342194071737222733318788404931527003598824861564108182669576130868117598029425240291407963092243101451992130909703445218127461549673798909027631602686482608716109752990688953685822834100362738605451432005951059712590766436303361665075480925939635665747241326224801907916088858577062410212981474704589392750917071215251200801918266799336822535600033481678360848527226231106625243402369212775655605547036182556102761393549333479158997812703734741111192504565504564382494711984352045289983477409699970204515890575620569357847120460189988865234797149687574200142699308266292698681509374279351836689094108630925341239672513290212604641227768144942635132735703520890223745141090261009651166487089404480654121899594493889825158050780197673901631323000819178638457277539705294873246142058382379532731066880865918649681837016302743484323681224395175913952451055581157746485067830779380892394319505125424688107711460581169232625392040570528545051521476636567647270774003247558529418558313252575535976507750255846078675876600345938589370942094028839437438382162652098968554528329850121506054535474689636804826675484362311657493633990957776714422509455733537662963343758517195422086635584662653655052768687978475554749379527758837324714354714311729836383469226545740121259501644902908218425682165121770768469645644807890992557670904619438439141645462752970734849046802391102917680534664043849558219045834933123195372815883864387474742654811292984105543234957495039531624495504781153559041377681954150564405684721164426842645811106834196460713882795556120049162171505868526350939924274110147958783922464052674992177845146086585879204712949694619568351509558162116158632379655639299237149973708570275181326045576297145694020362376385983349246488067334827310679932708625196544958506781027828957801331234969368324580848370261718600753575903726254462865872328445564084920826299334464812387247370494166091597378835112756183466854133375709098093024245687371766364790139562570819355579838087374303792130209589947271102749258201721446538600172709124048655715051846789899943990918966702190606380030270610913188412407097865233238204652033471268887193684801671563863530409095749709404804940434941944342678469114701006808552591103652967979437601625568811812043439125404547002322205896769552969973369014918429492462607821566298667657269989690051242405793191694616462424728188502454214601161783119676043001832785315843660760196712839586461883076081753083708771812978664057112098582537455545271340482183253449921725555834902450578236057600824245452226824685515169595753639485082053241565517221345443461969397160895652409722150448411590459865662326344657308812383318187658743228297905291260090124629746340899244168682383700727139645616790347147531663032804410708912278824308399092856261273820083783379335447840097535352893155888542778609113833611687676563862509758195208076624385986149342369011697164097954961214737646374110522295309389371570095653778539518031708408762004767675424056673072509217485637563451604145004420308219083712132138580078825903556765357154301808238391187690458125661309551874779864276846610855184283988300349655328475767301879498704163298195404290590550782330222969081882515984637147286598329269255375192158820966413513318272041931228609151944085195082992468148596324150360427522382654318852888021944366225692074001628294546851786495723485855275788840098079741479871255083205292990060208565291658881218642436563505168980077349534346084300976327012165962102332478798804512212800678081052952250806875062071299617353829956737683604100203404446544995292375335305660996076689808930170353513749605434072527037399226600472570970454120204382413078412983144570735241733835805745580703479872947645444897313670663720216613111384585541117774193699806570736562822644383504301367382676110136556292346994632652831407450183946120029868894470350409133052604562601202808707257254615563120394307571452582666359261420091787980587947455665370450961287181039658312507383272492933871820916270880490847302198054956653376684022012061249778821470505978527540318640286582301975361318980435885720271836070830169875736462880755237984422420015073586381863015883698259182397772005051726106620512994611269019445276949354499870069253600679706900626824245244216031310355592149910306041948387767549038312276094882143365369106916932784590247808508813846496696541054796369129083093915073816187419072043738768753761960915484536182460453063452872211443458208509985507919064186101532880027926598830964794977148517829276556909311024496672892530007554976750771822347613009689469777690641845902237137750492586214761249817228152190470296308841453642887499261657946920662057460932808999384985959363158864957464533914768373720874012269270122781376924962423667073965169944568897496883030852196420390357779296026039294942354286813063778777310819204229969162473305782712888058339839734253513709073395399083242214741242752307500348184496857927482512375346444454433002050574764205202573007760696605729309673598283122692886292398903370742899221679970498614653634154036584786474290224845229846424598038835248724857305681026102383384676471369899506460076837463458248729414457140060730905689516775008283141485980124820855883390370868789450258865341291643139343937581718078574307765793340682336295087817818959004537551054157762293773246768713231374795732673373821495255374895265196544683699006951418521852951281683201627473796010254766964998740213838700160323806544194792750239104430506743960488779178963620252364418568669125507769956448367466712845817241578255861089844370438442218763256548984787090543539135824302722872231538420316431520037626230695979768782644521208863660338974645930357184739681196146988977782373115990814805494924993095042061351583541810570726743511846971499451303841711884316551942778534435068168931822778055096753360598051567863402620018581176196542567008175693214266045026571096174368933896027725903345417343898995385101419260982230137437829605133937748894462021979742764958919755992203165221476966260215956380370140390500531961074380440439276534550784823284485563378715801505594615142493225850218016401072285628322627812449817434154934255143094150596530294271794384339799565518976150795827116655171815889072068235986392048495430545837066880235943602408368086937290162469806834497825931706782149500939322368363219620348275060994166601205925946632562635343632275644214536385256781403607024332151494398682048327718451446924510169454995309820909699401522837497117591962712569024774002488915193018135598040725963667529390228276001302813766214854278284055528455238693587146946070264720832594768487477679019656367506476871084181853282578289516965841444825989330871736460161563305638892096515724516177378077836596871183808258556628923276089664596298943211576129870591188880137771296241305946829477755266433050999279329502247981880216435186461025335897725942230952628832915006811295320292363583129238294292491749441947704384180432738197310633606420620906492902554076255193170413990894040704912068682612386703944611083146793236555995830167709999749439798772755254276304966665460660409059707539899814416954249184087809722343090566606618187312278581589712708009378824095782098662091252811682705203103841930855467262740282984781760993244170134273413206870087772303506783618715569815458242998114909245649150762172244907842419506078736156385227217760000576258641665650930807623579080820460675827534130107250595211893666850799959220024052619788838540822696554462501305891741880965959692324226325744006880653434004004375878231812287452768992642001643925169992198021459579620493647322363579315583051934963447400462604625327549076097996222429139273172260915455237035837336325652352162493379059322701414946069629049266753935858812568396741612962636538254286349849100713182461905045931492964579549752620121155514151168087269057156774524234974396990061710845887715321349053513842501837313554717108623548964471174737573818231381591233269919470710853816673567109194715770534901714157820930819439178644369591624214238368995019744579595744213301929751837284519547696684340623469124734112605092430443004261771830878288351319876362868413258331187769098307295431556072910979479873279257139898104885402300232913754097537932534682640391674535250143308452370124949579288909705595843329217112020257880940237729709229366676737295154798673094090476125546148418799388686682855086851641473907913517241472713125050802272746932183712586753793985776796864941401417255375038541596112415186587058088746492551606096505848182806543695166104691265130558393744242178369584655722221983989091069051045056387770121804912788927514403652070787726054478816453454118184718263068035937783418512599866590086469008693569216712571476683928251664895299998812457895015858948491469968935603891924447595070324257257915504947171428073221704331962824230398514500637353966493117774212150922241912681529727642676989349390657974639257118332040790857418718011115536170522597837130198122360209505276412596076540889215506592287370211634034175293434702192404163446586260390786234413661249641038702103400250541683499045448526842700272273971861023305333452393129201769011490278478989246705897895652325498096622443086625615407850377475104062539772164847130887302225122319765531971486256533064041868842373349769613570077552103042578730375377469981959369786343856375559129515078263200853931078935445386937858822621913549325298553110260264853351928858273980994429850813704821265135224884765284274693711786273397263268642152544497842366777146099531961823177249971613948398190947146393726868304727149784552347821843385507822869914542538577999790082220965118020575489002562872591364460833504103357632238023964139653137908851863541407737449377155725645086597647916150926426478368655386297105077779965791437078520757825820678312829237125461127504689785964469731549462498659339732031801310629533738429138333851698213159878359624007318552399028496048882466880268231876385938977279689926515779135433561407072835320157018210440962070974822930621180096863458306504062669460166801946747017448975163350927758378930355075090146094653803704677611445000718579979803618126912382596723414151040492002374265611786703485517772728499338614443833364751719554248283622745342601463955354763843297456158370416960741439986937012200788075173275291292030283392336219741465162418470799221733667066855964151360376917357357449534580055939337771705278163824100745822932346016841892530037577870289482496465755246089963459755735059198603428820891684768643645420345789089856677016503709598302244330740556000880062966401796970216359841557209497005493289700487616704568210530962645744230337921889031866329622571670512068122128144691764185037826065686823095835444347769971959080973431683283418828380971822584386970814764516628271859112273462835896779409738823092252131141015451497996807108671201478341867594742891844358591489212129181682014305739692621235409224503668094982822916213859390588632934016909867795770012168343420462813326339819329794176536976200516847444261735224247184038762468122636271293443593751346548996064411307311979947171307843490319098410910320021746318731448328855597042498197860800181770321155371582453245062304523342493895667903041125830258580663496864162693088220970003563300865533998023716021069083929524571968910269509659635664194796178827080262711215797866981113500957680877859973692667975355318333784779769864059926967808839058158629793051763298968966800739677821513882410756931278049960437551234777220663712030767709915584734377251977752112524080582127932333950239123814674372250800216086315050438286542258170932687645655246703639577616457465585301197499352057852196691508965196684702441793273876732223752907978581267008733942818371531169775653970168111401039110517809752000523837078378891024373062219494582103649758387505001280710343256259604400660899744455342568185003055538506429024820014868272336890157008258591420174453380091194499000425877774102799578200111710279515304060603833206524418868847636038374087128993705179828130252216061109044904437944667072325675384859165007485773171161315839586710480513957129609380922633287078649018075871989072893332120225111320435312552940363814306264976516566392703184618175861763277375296820877643098382725102693247896728885688846448629920554911912657263218550531935217875953755317028780881841718101806996353620529524712369798849023284920021432585686791277599326973181058824692791374887621715238965364387833862950876660431526514542876991998348673320727672820186111293948741314945482149796463664557116910500242369195735000728009836980211394706539759480309299311848721128600367149323311606311718412241110444506868289662385030537602870407867974301462309241560550853657566467549692296661778596615972109771243719270765982797314497848045715119822918947586661941744675988296956088856973571930872588437448493989130475312934390852042621360115931468651627226604688295556439702215460624409331985922664800666468787747998397229698299670608328858624055287364605458579505933820293946736499527888331632311495012893563666590509555078550522398373645752866986058966180830626408494914179988991867017330132811576974542779325911607552175261836832697059272366101110563470425255421559395850701070968381607716609295572880096450858956246185403210114754150726159918931348192357342231282899866203252227850577460272953615772981843166208930063480015896149525728049823660874652379703275491046186948645105539674007075488995985368317441426565900720936378071732201704073507044222688893281103417640085685694261078681181281347527594390976198169847350827385177708931119577663875361927563318253721377604474895335857351308100909926703707844339547434306887116753268887522793759187636865499402916382445688277491109351690207838120132136685680560909040717376100395648544887393142430456348320655234878732601089515241898663251510201968833714656993581066775736790897058573504065893627044859876954989653033361782217462288959611244888263333838397029396354717980839664393361195097584036064477993912575221468083500143302320626481416815872170848266922648456375691576662922492108476818252613548090349455702767903066700390977988813776677006619816913688414251075313379479541016909138684446875041929250979232752237391901619753227089774877432233212397721591103906535734858080248465201139490757305115164480058409071470951190177864562281985247301240462402626416673322691511294575329793377431439058418097016422310512401466037005756301200508444713387739584036666785924203619345526794761762907109373205359159784481650891933895610738448478009893124318936379103257508703080791370700150053356727314390453088634430888142313656151784488416200080224949974960930591545810188009746025068314595696296330973544272420520147345823458170708739107397258048948801827647663240231215740619436800946464397158628681897286669864200962784624197680272495659027466384169394384010517521104082371423894184906824217019534296562345795658768283150562645331646419325520982245415979057823947405407582365426957068310080600089488740212966838336652811352914174017590291129372335433742583381643053783622829639023697124963827631436373303778454837853513930583672836725844224742706518114090312095273821764216000772812818662861331930600771403878685147713269886822387373312248961122176292549367877399234795922653382140174702746709006435201384033654525340362477742899805110646311456888449535619409713994457156372039593739688466091487265025788300353910621381162920743241805913712678920175471353182992517231186803810280520871956812460415515390854483637275129875412477790737459686406859859451810201934156472083754468184810792873662331190845458651321936641505748968922570165667381088134086691011491376056077912223228014389175231768847167796553163808389194299096708851703914909608587354659365137709305836683286078352052888264163800304005130443537817295024967762823747487379428175900150792715297238817653122979015406849435306030178664943240295622494917385485730050038862953416528666773208200294206044822259780487014820814063527302580171670544321748906107527909160303365021216915246660050151441071739939501399124594916367792793496614883970959857401256169894223980408023425496106891785416843546093445108438458367862933254976454427811298989414837525400539363643928634894864993623852493444829149171824003273666528953386596447378525340362530130921221040899845265989479888977407223904968181581798081808463766519646885759491811341545983499500154112209212591923377077259594475943459918330854369976752760202238074879285103485069097192290359866046456728836857956065184991632622889385433462285214950190646710797748135996483278686559830665860271617197957683610648594868458970699194663803990622277998152145912024123216600033549236642692519210186387578554827323735044181865661158799274671881772133921346952813955180874184113935131855737869116636658092739422684692903864483838007094704019532842041696284881350844590518089011029263982293107658501402134145079203694508903428450389793216185220077056925589682151948010475335953167524704647490088285845427790198750934032006123254634447297956751886127773156816918053562690680694532083884635763004566277643937614665150911152297632511314660539788111905533581045034339544557293318071120117292403818151211049131096129037310341382964112646745807316270430460573240898325297532318347939020773913117842841766341376339766246242853801482449337224547804291286361488075849963365581359146908161573023721697187138274843802351397797548479063606840394247477627350098688748386199910873003883624605521348755083749571324364405092175992978833353557186791702256140120004296442015907562024407101559450643477371103312691689587186449081761133581055223933117622609802980091231346526195227450110662832078646722614420823571497520947963412854810878152754555246042465347201785843014982594374906548013612952298116529660054427526317115406706940129195457545114069286378741631507010993430012624949945420393497221760879551039312490598824059711570481329369083371642611342744213434920561349082714480858597854899565371926820473922574584475535421224450989847958103781884913324152718132984617888655287550391129839754396562638538478084308150202954882855982401211804444527178566874062145579671236228523726878231051941144727608707196146587238225297013053618234914172716614745968960654527538292807652558239565310622715616261433070735666588474634717540557530214340112714326554176335129944299388843039628295875476869645065990915038116806032912331763513437325389411142114097630381144103880630290675833340122187981104774344467811937201944554929400705198050530283692682179905393952660204463559896192921090116816100210083815791540300519986723669523937617469876401198319860325523462427286029586076602885163470684259923777569039133526597774350502617209768603349076462506454031026539316785019368870817428862618846993496622275367864041040189168947179387839491871072287138268443104390256403727300985400669782466804587667814211969876105685172860876184158631989012332640646986704808133945397617737355642790809056798435264817639367170712890137285175322065578312011709477808896210846787263366105826246167460358534186733753122232886035422013155145120701816977568173717841242401399127460408352907306875452497804881776583574117496389991059340125639264475579813411064830006331576312980220066360389665811947452909933244748448848190902913947731620579360760355426653781495630118919244917792713515924080444739277337400340643422619600561238128890059179838461163307262364641414930719546317526870642487022627357767189510214166286023076902553589635832477635512244668930011536805439700047135683576358971805782969255805360194643779549461295063686437934085853873062750235903943153174790101419201015211268152029386464943800228456866738045576201252884049262511698956010396148688930601579649659319158937322446152969997521667495867659367489827655389868359030282575489482865420166554588782806948191142999857764728364565331456224042646128627676650620383818955626736857880630173052198067828332752033930227705389967854459018018742623199982128943112802513993150718916097102735779542686588023361958821252734712623529357434485068597971240102607633167129901343795403256655406974603687843740692434301622133199900472033574919354925941401498558378880475406420302060941046451077680030812165527955859855800859957402354435987763862212989954997378039884424405738273972956008074757927574185873184792759820032370079458009052202377332639403938392427868307386799317935290599357813073478345335657307918911331227823474880091444962670312317184517725157636775124972544411269448859009384938303728733739011456462118566232447388818266401459234688509194842309299389744916635181939130261909747148109942080847741870787868105886577003480602162596990766816826775738866052724543310700523159326362834275435591142119466766433650877224747958058992183946026754536960279338341633535898756870574798858073625997208145462480074464349807759293728689431109013789031534881952442549423227242952686334019198970475740537374456854570554467251153297110533833263730157146984620165542641330799480994855959772261561451755707238900475423232713986434882156204795099738939669389137194826370309491260699457033428067145166654289538760989368119965152840305896993541322242973936831058435501035255052524662636370962767535130892071655840892483237269147929634492500149967212038486060467371281045141319206926218488762688371171392787883589636857246927059313608945327903201545021791189667837446343160625574423045584784637221664262544306623066466665516310504667898511857888230984746804908952587883235055547753043047233756056985736596804430120885087919934413907555878067889079862466979334045694755716726831911734112098777894210080498803682463308320736493051116549285487343298817479839298283974062821167161131170315345170915875564320177023324539357491487080542417091035925153207599278895334389427398298259566205561001528544803966192164228904422338028347519482100384197644811181641186071927883608703275939431699198526465583591207613073006816680608134537500145057909043424988419335439661988835749765238292972124580455182231726626226115308469763946302925924914363352428075100578484624217148600559673978322421013122928825848554833158983702430519835852975875280351197759154912201047676402079205186303404345737220106953464309873962281976510618449368310709752765830684685380129828323104364006358723759425702252383859327383054065042788769086427745995757488337772233740636646457705871175991965277147858262927757456717148164863062124320507951271354926026259969305257569730356823447379331463285186070389318747703201658213268746128449341612245214696613332689802663580711102834832139681896223201630627033610138433332089809932992682194974342903598465730394066238898690298687205072698597290738874166095378785450062396133476026169127399905555699784836416523519204835402700028766772837094289331796330596873833611623028564953589899501770923695286574004514892107323752863205253121295243953008461197289931670154932466645710191125343320103036489840476382570363353662902487675661581671563656745300163677074742086044208824289806274897538435645556703735142926475790344206793867457002666650358744513093028620216359851180887072769362567378647545470671189121069037493748437384263051886348737997396880972902668156643060588450629070555961341091481517391693563344981756194128370715925752940679356107989171937638380791318898447427940118392002506971700069422946283066347913044836763457236256131968214585366188116535619665797886123537257689888909900703202319647560572327978341126853014266732718645517716895899410100982601676404700690042411977415476360532512884025829559577190606491434742863680802785693113063761899911692720953347149975174238225776472732697578542523420491615489835959529362691687389905719871901916819765615564375734007577795412299537888704625053815224920272323467650276889630717554789392869239999476920128870792738955467611713817318009354904899813468830132848972168746881707661662740320082832751439590582395692422715194833919908000243599423310500271344344680777052722395921499026149988852405262510252818650799987501281607572173924175983414807139743190552269680421885256987313915971498872375343244542101836148952394638836787920926270563805378683118845345883601164304812456812685025771902220961456742359783192365519638464481988693037629183610716860915071661683590224385198636198253830868357089069397119345233005547683379506018608548218560604886993908583099140248305186613028412395580618428684778277879052343804634671265870463858938904649470777338276977506349481321935399454085742617852619163558942018216118442313305880570480301157104688807202094861457410434039488149600967489168321468723352708690323892775857043412293894936911140661243599399880463703225847457886654128210097968455013533495536370750813682863295284693434554814848822940840833148646268744795536549850727484410269804050060561564464157947566867668688511527245181247666573621030433836008055220950312810173826000096746175836883557531844062159783590143037030535684452860881581590050332584904958876333370692294214302157174358075315093895138487101645249982091065515161049529765217646302904191516396614550230874201340619176577348004397791003138856193827427464036507067461428150058165088360055813967757293946687668496680152956742654724132776886110604149858155550987712609241314110303232104793009147645875124525274625371741974897563465804632412250609209317329679845000411606340448371008756734157451840793270479692611511484611583676136464560143265267650136398407020389228162798329617516713763049028161577947715318453293439650310701427187288201821468131342935860769736593323106098084514950449297988733132671386078439299771934548126173405090561970320554940252094455943719450015056459970518702307911119538950993252828745319611778683073416390382551899870586962259227002960800917752823216209605730211115690652849866230728403307226306081964095177889785564186373821620376958103259400804059599742634448898629730905562303171053275516455560591225996199015178303696478891663999430264447969850968522824616374991351974027745783702278307013738302322264615369787840573432102481227606066112738107544894095810998589143958132141163357974570335954399160435069595635152085358534538456181938608154502346542705985232863674746039370078921992465983870762955656968175612393461854280701968306014066038073545241495774772936647828532448831788670818313492325517275794665720545145027148137580730813113001465557443697788333836011564625598711995615487131937733740998445846600898860631435238390928305767272104203590670092706809157606349035535097639163367096463050976469139917443878122336388338360647058492027336908949577501869122315007603275662452508640942504701422433797623772487442675441081593867859255417115786205554279993423591858140999664329649953992508163687708901466721920051464101524003225463728941629896449718019427887444595407375461047404040719067100797675989295090865708764417736674888448661648507432116932453951877867354077351641973008729159594343367260282429007387557159252215840938217578788233806209806006793775560704165574222871033925906847915522425936290829715863379342399283828025451588947357231617854177704638858625023178178452084521808645886546177230783851995278855552495198754006510819262910713835824259089118918787381343949628278575679614882565117778367778819959235715581196766817239030578327213793980027778002520509202485714931344431413737069814589876098994119253107493805659932491027222799839831873105460231647692853225755247739121385907720889634085108598651119539346676445375568839250778051353968092246500732347379234202542900422098492035550252177464423580599645825248980928184081059488247238029989977321970103779905964370257281769096920683503466455159921339953495755357220664525878391877264002681569564151671774926083289618140700927477697074398256361384639928712298921153052551514383767054590668831294152633499585157349675787205262362895998477970619074728640647067868658180343488448123738993663443387417199322627821561079597335853209125788584081492043049236622095072084838401298671328774988082775848766100611894347201616469611980658185027993757507158175953266880710234830121353132673451031817794680080054975541693499098495061491708597243742695605974305557555061956939919041813818601578144204563272934864547992471154364351053611541621762210468960443482625631406892670620203943205382479529013036010056240851900239240770468292754230139681275666431229650498884743646326390057382199059746402860480894575421691199653884011196127411466586984882989665054980238386609188108807394366188103302090050266298528680710484165160176593346974024615060518540240684910873052801423032532328926848744959633861256978311673612342449264653934079742271468569249496444118817618395483925177513131449089509745561081229462705060890563403480111714653429162879511147375652231476644324138206193479430619563223335115923822363597215832142326359933214671632324899202317447926846937627803427814589555787190623330041101850142146020552946752875766648728642169601956025229955284264740000820331446729419809627560752036411598559815609004209464550387561584007999880825118855580856653965439291517921065067442548610693957827519437316365687318928155468032697003375224318779857461407709489874335669032054098218765025086541030630757266971636966408291491113031725853805785763730794774399354759957122734634697502820805794138748402998829004981988726963913701127733854592574023733052237438206810938005797381501259024738727104444126766870487266583375569561218729165014451886849272435038987897319200819029938534504300558728191013915586677609774673699670436033927550783585959910839655344296822434956582308098346912212894441383146311042992929130879574676941775769378514217811173885394469341427230733354585925620194921656754108110777527048471438222127280633672213663543228902472083986307090971505441166650337399525605019567160364018990297299022914321208752562135111473090858529742095064941519025084478429367922893375824181385731110143213112763877623577524744010386421317526681857727662309570591083145673350374181716106777744112818994086147708867813223270797186202727375724150860403656252439807588579320649274987488581911822976672791647401420588187236260218714472694608584460711651057560968905268204884381341374247145095556721734522429504772488908264485025373348835885084188761825322987938820646514036913053050564005975073866793199449370213519708776830532314166309196797557328956577662443560332815760291136199821533837201661467064454870706452843707764589825668378146569083248339208081422345085372988136901718830194668980187432998342337084955931918274492711260013530915085778284634770161420047348150532529103987168343471020204104847302918723555711807302585013900538233345112914785856789836366865568844648955137790498258679976305446165229275466045001088387796571486813355458979320557795892305405598990338400617849767147278359920582949319688108793165746686708756177851667174776332523572793118036795977880610921121225103617751351891849331408391041130343492775978838068303583313333695078570426824277029147768689399752673712443127893107376014919537052868108516031720872704979611408687488430982469246832793494215048901079940156455032732893057036061061933163405881378670455764492430684169243500343624902173081158366754023358628113237604383477953659540942717547851478323398828458580757777310226994400274181676256413378360112946757313870329616481732303726653774169309972881093141920482646587732264771627036584035357160083153525553846152783182623685031001014450787674487729199838768657835975069118803669039118610824162085442536525436482813924070210654860236626376362603212491989239472626803015192689467436163383565491980904370711095854998045572487242093784586383441606780765986964001009896040626729439719112806545995759295950624856849080668908807376911970886149326778666341001379846376199487909555431516098854501867873892602265968427259778914110756347715825652005936600063712662976382992947998831389101014879602799476819906746250980224624641051104140701766317286716826907455842536087767865405501211507875149589535435068872753267546762893303445175967324964523512530846235018464698158395849579508200321600434797095785829003367288162353899291531784347729648688339937978831596866978618883874031414017313476277221734705109201153257728661109241231945658340468366356848200105203185667805380396346571983719042086993731151895860370532467530936367153773946443869929522987847454257025193467225184991143925720602987367489985414898204291027978985900233004827914924251381680346236244743037910584623670603946128668131762233411840488213513608038270018203863492078660301747504218114651876911067289952838183739741166837977440702438315460753010519585281695593084051595564836149717700119174408181819456823781723443732573335575956088341707691717728601940371397166276973132415445261154727519797799304375180484759312425631527780416563596793156122249769703931148098751372161190651693503264289574757768795357881229252945802828038945761813154078295644819347337474732632192362276193541060196804479411565590252013708299056343776616061777431343171220096703748648996035725405370861749095255578896097290473677496536361900328565953991042829279481381626075450355992270720032259371264203336867935583020333768534912002543756730013184053106880353382803468841219864651598641469351796740378846585860404884225343222275488555957004204259995809983516391173566345307394119009848562560110789332867637100269674997794408810720508342005720153824595798781014414390176818337198341307130833007117179733254297269319835541029944177777824897617042760259036959341591853362620804789489068920521049366124798201022943872575807394920258356154849025352546297162497663523365650593909436405022879992778311492685107125149218636455958220412772416761552574425223782761478049302615044698353237642170367550544278933995694848150071306105487770084812272603219475803553027597993291048435504637281698183738751595875068679444294273376579765435937170943947701044916325005803455844162304553594270897725758791291470232630377160687623218043606091377028669196479022348125571554556089984134091215368095612039297332814675064181914610554698217350902466708776952010958543780146772694403857482815797700151970026543760924623061533514070896665825703443198125198144478373383678768871249893813089179589245904610814587018863030447697488223017750985655192400278933100232877815673892192575073019902404968615330378920405034921760444552439149307379800909491293109239330352236897195497051971546499797296466663168953619891941813027373984749037426542185414757614981711247318558984586135336435845495892598411012536285686856486580471041231491139986148122126011240071192878798425389591179974412965285221768181239804815458404233209895213861812108573311026539653996756831125897537641442948722120161319518245425756133005394821470306079986985368210549171401972118765184069048267759061505729581263417859924724591128141510770961653910431761938278202887131563896013981559442388525551697932568872238311682273190937896919926516997853304030729215948821763198443174092274800355382574687733809210700417520756643800075549125543290939684864156143979738074138279305958951645644171781871506289561635541543941328932287706001495876366143678782048569972055645058365217441030949966233520657526898465366476510208075746413234925740889293363494391823477048618019380100731690384880678613352003849068161177502128883025358710424294948929518468571165585294365912279950499126015893495431366641399177611990395777781110743865900850100828432206215135420536091668221842248599953687488470193491324094929484401094609231501770393844891953192757538074795569269961647190594173948553365924749904550004829946938445205415740869209797973726803761803561929634935499134733928318577731378066271060109346668572384473726929903898774479264490912842892538327148250094736307090721796060043776508316550470963052799489466400495621019426446063874771117874928899071552499442906802483304199329077779914020469640728197501794157859648328683146195411789229355336901994290477640613399718284792303686485888679920425910783402887380785582858230425349063767450082040216056657051161909699155630961531001661375150876730507554418570550063005247374589558290884752083889553321035810340645834655383402679354174815792660612888897259082614200943619496982875460996648816997037849734724653439028649229477853084644311605141287117077678982731904384035984495299987374485048635120915006761942026034652298730819229417400499502000278429227973265869005216244925242582158626219913712159144870406146539853687139643454333036316279437865293941936643423008697231912976651794424390764623636340675605080435782706911343280614047193232399641095891235486970118301538191580561183664281535688591050859305726772881060851145070515900440049212926049435313701565537042738507314439742798515284972128703865373627708039554296797967054993954223147558643117832813890390876963094872047274191532798783745870548311398164812340490907852208692752980929865290359671473330946214227197979805548510473592184924202655413772117781843781674083817541672776670243462766524700695550675412771697824658013427365002746791820480367776121334598373657155437189795397178970043327863081060082369963035263814663244111393593598279668781044803611180428192264945800942560031445912187344665292137393061931680211116550177298863678928453306053209777080807313301463851366982705250310265015720848390311009904874027326401886796094577809773502647424566361725138984268881988162750476844548502799304918161650991381906164889176143485990973675005596993594866972166524157023085871303456497269759368687501341118630150467845042768395798589038840888829247249956888085703869762535677782050396236777664770850832599972427365813127333166007267079561635519484924659696865523096470411327836445070169718729038350175814539627817956341386287539670482196947308907443773920531146127428360560251132606761974944832402538078586063650145790925221221054363734794599810960274030999336022381661747218674884465417818249526660926064074175283763242717438271934964974059354234599482122484743999036089273457180412713537518290986248089054576706362527552971350871167964531669177767127538602663895095892726856689848312947845528536042173288634506342473884061400841779188957835944300263099429054066722086933492391708965896629341846476860500051783086536108596000036686299245089946766459452677018254883746910734239407389659694841808776564557353563815764174804375570612002423905843362768628512402827732963691957784589164005710107864804673561581240661370770376699476220754962377534494674674353952039898257986093985502725208792138126765333902741102956235038639018285550740827815648919104653545954257555062475924339980403755400141958093995118473658115664019551544150674358249374360239433939796637331868151391306374256679133272077855111950702547842431569009960785806984181502516226691088735592513457370781841317989503189292815489584274291323302095997753844563807387365361848300595162086471101324625355820241328910661478801114970449822545644109701299742757534693165488615605376846195782872069303712571934756749431958981779270819551822043509397094418368529409811358609214408059745641072349010516092995482910113789876598656649442041964950619777280900805314621212731829938292662200868769712823839186892151202597943696293131483231204248973310853532634655997112295276814676609813099558905146809981157397301841342621165925551269032291081228718091556516557118653747307803474935029879781936414459729667579218665085741295022825873391179343421327547570893414630937953729168281268668826250194709296782590546420214329581773216370886801161125767611034014400375694047512440860145087992794545132913146924507923530636786869640093727647747489228302747081254086849555101670294776867415554951027454499097722522739482163139406679951330996047373099846273145099631026294870031455911130925850905758584757449374209622176755205038977256319236648430588626603936466233587267145023239148897169766159092737259994494964747147453384084691053563889990753996636173601105792022788673973210002403167874377752256739153766011529565430603898577060717040384710901560328244796860862054291669249120650593162957801820622201599797862354071613887058822783192682275819032403777361501597968415758070843051865421306749031304917170317562617538092354233984791204315059713863153748422101650823878720740997162845518383775339222436883263660276955178309806683638110279959208222484568401422600603833383454539700551434931762779955259440609970592501879066417487047352290390498873358575434488384729630692555948770998313806718732743345126926438765751949561658673787291999094730478088781933700041068887262669292764785390909219304924028438812551602755114160049726282323719055969952827010465706164271714173759696213263633721759928671381403011412937827879287624704256972632345410778052624925894164665671073428597526350342922827762237943067800729600063095202898031802766171260807176948487696830093417548288491015613580133666880689270710296651404780724388655938031278254976878976250055491686523304074976469420620554420576742032004471548243649987564773270107571536381285304341555284573146949926480646050077590246010222421212603876368328346620998700991506713819558873238585515009373247384210146685934134766904512462190454316399799455773994229652553795143978609067286963210106337522909669697244747991938481211082725184659496288032972558178610570059506451537056343160785655617118861304011309900972088842125594808750871837460079683764024645163660613152229789188795615320278736110436735410609686679023727780509833534856877925828870698810750875566454260022051876172453967030977211226229115372722677206696164676561201527746293249523513668720236345309476412932761208174508834661237821972597493542432924570225223462011097785368420348890877624043820647441180915671380515556609370754909411693528210181145838166518007339111162204450035222060806762083049362947228945306201550385406705916064835509097182969513572079336903970109407899438252806117712064609005083697147287306565893655370557389449638635002553037361320311503125359852622449201054486280165913661442010705808384809124034674083294693211167632311473737452582772095230251691108179871878051868717804791645171635665441621153432871562925473560884526432902932170659599940183063976123972625430986976073451020809784381442945552862159732517096664104737621545011772014648523854475071827142534278192530544405677849215567197501893151591793342680161854971499488122369507360761124238850236919951400881849944337319433740972301279465909687267147351759967814920050759808535392482232680672949932597681373005934034712928524771667396134247222283735715524346383473702263606679132498464309744623951330027744476365128448602953501840964787529978098523841315277987987527497595437549275681515917622897893257163644364216416843888565567172237482816506992176783848551464413109760996977827890340574025224917251678749621996379786176054753914425184493097883477001053284213628405112434680563997461464684204842905620143864746003824075637000404442942679997451347630258620749409794295616781669313957973064913553783504362976301415768588608999427473205503100269537945363440515580877153494578723255826877619529319084963631106834235534804896243240970091706066634181629938527551835003887886001953802541788547737624781637294108462063352727503686636727721226587887530467127449285247586131697459578405205669935846737841171357079178275663070682692513787253901253460128301172857990470853300084644704370704001399431740847579200986720596399335214881576966173640080046806054369815196477966867363745316645491582127073550962834304172486954490213348479026626302457162006968837246086937744058466748325913788483307533160989900804390649726445261577806285406960213135599578151088649868085199776314068694498011904288141136772975530691925312902996394981050658817264712771247585474283072004564858672126624698867888602657517116668595066684159838020785739115900243346867395568577785654427561215491378212986753657698943636132101530011259782325750467057906193352196354349478192439337659869283173624859516786282173181734842882019663998482468575418771680943867888759128521457814487649570084900662826908604476272729875312482967808897817097774164209913237061853856225860273564351971759199229189462459960592293579040768258484040474480860740150866446554648610648780111238304254857627512482927202648592507255424768498963593405947932937754692146332490664292867860866809363070535201601419024006838333892286380434245043244382005206289324540944295506412770147907925534384509703701833241185781241249392467106181535216099029682539273609462482157962737380412014495299824826597715916128502112252486874597365433950033493261331466057666047634348128778196398068937534326037234651268781667847077709308908596916092084246874322544983649978217062394580371906803474762378468393470106196096169604229663976195904514732496537655544817453229829464354126006241334612095974783069686562788981104239940042271153626229333024768631316863493309437575151313193928522511159016455805394933451661725499712835542473610147308256643190787094218660068715583189796137395097305354281015447191184667019552452866676945540063694599913412319153110553541799174632255186764301891615780299267471410335217321304812965986543674963367742465694849199957595406071523892311344284368689428884189094205211897101572597356150286074757587880260580108215767966674646451654208857937871524070214299038668273115254941183596445156783154389106141834110019156568571671837609075008354383825824261282398092494940287731412434875680820442766238733108719881404162707236565799671337762552430940970294706264918879482199471014842205977969238956452542378625223937900450333161972263299276821643275987900733903364000481490070186256131687458189610761131600363688756579906675951123000650037571034292565986385162699687707188028208779564368771970291604126166370704585772067882764520642858695441907725020557865024489177416702368643106190709698025126127583767623061523493814361641107059906524582525848341934831524977087104573545587504703787695955255785272059545827510079628813327705047956576061664211606734861513674899295050173873114705322408653297249522198010878905658617844464935682750526490498760187753756357679224440160064667307987912796085436367159615240824206062586798727511798118481117545392434515246902398330133653017062742405175867030263650806180176664533296416233370708058894118612818922419672864794486434733113053534034194390402756369463070462118676139644838683246710242313872552556373223382113397898523862814955222572668722698590438185970111386723889322950378206541731984786972689385906706817029181214885135608837442659774903968300541577458485607230844695528962111974923196764656513954719099664684853963789860878069824501723102575809637380400374755032633424468799342519825050356688055975770703433458712292327056094579434394419491289867291647074236458433326800311136977918969719785548472206009704356937122151074041973160574371818537595211979730297488504247466255505247440567698556997602623750222364808003412754824216144143184394997054449992533436336407124815422680682148237867022625318733631226279668227793821636781111478573573985478866853147144192903025622631757259696801806655741852171843481241125888423127954805294103624046794238747860078561531158421320901431394011886963169469934429211415679427774722467515531664411719346587885682516282130703907427388352862153663026632251287779765919382267441315339582556355790667396632702383840099809994238336462203491743672029240392091537163765660866224336075988803481224380448383796508819605016376449304807901907788730983413695660431781102344022218643079865345082052364479808220959152724437047147011856823167604539278404049037422721465807985246357979960448337870870996572338573059913292681434004527542926880394602093918914361255817808887459423717266067964124906701762168049411992777413079658367051232152383233242894343671631758076929097760456156587753133300846585784114668513842349677625946054569575638987354658633017516774560824893196067716185293058608635772587074329747311713559475183419543233386440469413678607206558800297123135396598671486999757376098780558880580695850851547581679740163035675571623801625215167811585944157211037476087761940346452497342590981502400382672600949343033276783218194108892553748912391888427042399987436826807745214102555677125790954948161802668613598200618717794641895954635313469764159372189735005107945370148171716615629960811278278951371190640042127947680252510363462381160900917193978639487584831682736431449312405011889100784814483983645585060573984742941342852401663084292644483204944927319996386476962738147736031451042910041850214408654272522541619480880214273237863502543389136499762830912693999966319933244489036301431658220525021452267710515745138340329813934107457519522144306883164532017802215606611229312200194955841080640516850526923717405325582602528293737103457426511757126267628305235630346113225858184068480144300327125077445852378341748162170654297854656776232436917155384747981973895682305117367376234686836204312550115679110967082557386741328405431062693465149740471805349285154942160988979352745537230479885869129274440679028972784395934915241375633592928743808418119069362241719130754028950519826314043480516838435550120672639505667629411611863012930491041670032275038654901789328337177623701237135996374150666630245500858546667896993898791785628392865628620811347526886718137763599225851913958683335966164164007558663163451914848669238502160318883083617754876077950994052206324021579620254108710997619744966683597603968599222015051124057003676987440964895246930477113564158631608310460206067446707694354525305964191435011776553342151410229939583966947303397230588056319738161938563799750594740443818768881985414371354288478052615532316781386232524371357476683015292502126064017833016274559412102830791452258412038304458477584508703577412625450766990248711503150758578340918765346996751568486950067675487021914009401538898110180274103434816261716885435333920277515217401145068080186875318695045670460628304408350223778674135131318043532708473617053292832901729340004554801948958048488363400723353639481074129007958520957579780086412754244731539168721938964420197082495309256942715487860663563821777730886450168820320530915039021330649520191818497163603247019773618330655126119986412158478876288120612261150234216500641151442012502884389974373117518399704806811137338184952873407746108545072231109853685433146869164021157741284953132785310428417038877353060553740469552071567311849881300802639263232125622292929953467400574075567582247237837654018770073681113106344383695828260202006167212834514213539316779393498053639588219963905314910777432375412992194395023529862874482965558597646239510837430364699737453854677522699932400289747113603416809113941831249408678198910603459376406145300244920963898825254209352438266013594757074836636609584998297275504901622660936857039081350814851810000274616982183372772163421143122893178310236314560002459098512990207392567164866677095516793805367313159627523221075145508978091436604881671189922007356565207420500956915492867825513997441499332575687149831966224412029624244067975642819347699999785851466341339338730016381888110588127050030641587922271152935408481651217072969011177974945572309705023891717340862204875609847705268060008637848809621352253706684581366160883917031723861933723402614752281407733199832429143669592488001494365745414062000559834790294849539012909557121690788457039340491795849630255179575243086285346776360008111998091534238401582116396762031187607168883971685757920845462081452581561119108919809203503343646785980211602715814211390775695096242533227269469222506142475749811941713444972973420704033699383220343268971422088940506144479471213985208956721740604121302137407976969127508009777572390827315444992518034561035125378396034930839249146136487822417875338163297154773922925521390880320659429500475713647931711928851390585998998332028869631242448254010444033647597770387552866777121015555156757529161680104421163887980411468837506640180960978171495260055984935337435747105815531476188512674102302050361884300391531163261945623544641530505041586711390999978347707229776191836585030419407274408289645865318180129557506470388964712874512327895670434731769185211507956385944098161646834475122584563884787932650181250505839126235436203584548180972485682613062796334769308978727458695290247071032137008395556213512960104051875129076393569453562746791811494863295746511943501592783478098463572811956023803830369150381088297281971455457542920289399752549890020872788969309358825095782827494129070690382448087845430544964527520987628175697466381709020809140944203969905977409664415182023248426015741831340319493554921095794760073416624488918549245975149603099886416382765487060012192536425240424132696116203866360778021007837083037800051093668135869093575811709359692182944739972955837147511204007523452870985947731470542480041513878031575612185724043454860884587691611301349195306065730471386636933565498408221413819781964489708838051972051991111144727249697124958322962240218332995344160247635159345836289110723628943666809841004146112398910895477109461464083915933986804867596506407180659643727411669437878101060486938396416401615129507456087358559596445311895935768263929968262222569114441690288452262052935122818046113667768306433681950828477490865880180429737575948944560321266396642344248861424637134606443840471466830487147313065154175243181791559981844510127328614030211437888236242797048058179800707458902818384319859456293411009496763222655771615157557402504517827508884167027876426034932105358893766526997929395411394560757809378505614245371499535519077555100766895554577141159376628127962502705672235317090493607554619580509290250255280389934001024962812421242303994007878120495544630549201583206469503220594447020181448328976140650420005586083347448512079425597549525141559396024259843430289848416335865616188690878275972590150642311975711167725600878285987472307721751934818498722441122872192068577718685065922159862591410195560423677171110530603347292627672527748902901341493910299045234734541464577569352926764552791736394988070578697303051779574193326263162436862061837966176942111551222790842814166664256086139406557709007388412753828429914849223966504678455767917234672343444574782187848336485358808033742624107383566775376333626539348466654979588039063679264059745475530461856372403790248556721281777994943469552937953858765268913290827572749569006312780732172707515499947673134163199301178927574558570389500640237562481425362201522511193944533327806845027241266353857220046579411712004607522800036581155329385459694518646464970569619965093910081012037652665900218271631034018487624797454722398022617797541044191927033309231493180744821749715724151661262319576686831158829008193636016092612463123338042815105469455818264058484172903651426997500290224286903107031603595779740873703307709079765630196478432605213984318856114291258586198306483236365169360607615539576604945241135027880984774878614206655762422086138612224445166671040175516737772696771476123443730408988083561066570355187186282953377542886147050758617777583561695740485402966893743055367628613064162314898081711916080022797303134871998146741090184512804272082300136458764209594307130074812174832541546952999985803102478571995536847954291939354945429496078614922592622207619326615672101457736731765810505013581740676931065197943246806789013572714413464209460243283438741207078920737246935015192148252269891789702353762725515471213078903128033426124631634095950879260247898136689163091650145170222341490924706384677447961005607606907707728844255062999530681599891476816999093627311716292200789137811088798355431938470533035992493708258957250320218089807802719296682504193841474539380303775448194508768393411109291907318675332656934438915735488296614145080013808189077858079813451424235678225210028876698842990626645254274726971626397184927838225819581071864584733492031272562290837112753752944806473346719966997251656599347003296836776041026528252770299401369907536813382296945909208318245074832284606860277322361181587877375155354281724931031881243057182152151617188855000730389675118036733234983298162049139371263600012310892487350805447988976614313301396575067612333666274815434357571443595957809948351641434709676672366635707652163913987960543748197967695087089140247305735844004250570244994373619666935274169465106507899699484694411206634172172329511108734785418053232834097272216950667512977776013214680890240392322141871714858913710714019841435067251148458084468615751513282187280282968369976591863199794356814904362652436604913321993862934629314301115566174688111753227283661773624668440889932854234594131786980369855812846540907045810475933277164917979271232821744525375855199613358248207943590724587761456465631384654256760232113920024657963647194586393976367898720617814126471164309925386264033400247206403767641559901958045166115070589700260503912114619374429356965866968347719934759640772940991342062294717729215498283726464955787310497476316203124278209473232007891694367017266403254360820317253045720503691962426047919539919392130944902460195167112795663964429546868363991230939752435179098174385251199699973032070386521977882405600716348846580701493707303912965997023059988855535985514724721895062200135807568351150129231044538185727418247638837671336013025650093308209452353559103428800447013602830684804124543446163824862420937222110143142125412798008477257245516623826969150030107230779962245143451234192428931222473806604037638746277335740382909542205977418933220794535927493044844281492805179559984592532815256236664542877732425411448275347127854548852896676374901285066164199776832351491882711294749575758767506549052595910198471283411088592390448018431250397454155052300733250004787335987351284365232745225858081762167447034014388312986336519780541149771643941964078861037112765830493896401865772120869338084753102614697114564826689002438214197893177263591286051768121339289980136901518973677025163063929362819845492023987168338840037847014177035154688905579258746174529560436968002870140494539907045484492291224645310202471089472739821109605653459210348486530753467135332975163194450382192632995684118437174276729361036007373484783975231632859041260989648926869537068899502826377029721712322679909721396959527454359371656464391971761599891729505036972075383934983988281215758376846119551049659071083494260806004249389298609557702252799412007384265382238041018727911573843611344915301525663907553513311631879828266774237985989871055743746418709291066914269986822851048483874664347522371866099085477049677739387396021084567666837727880395685615057698620544506088741497263715462922226142635294963059117584456732977294659536823765420701838758387227954888661926089543238243392614045108052216911603852944964402072194650014312390760843128569868790518295949939809919392447596001387681209144753678324199204662843303202747203810846433145038839767158138531151300476344725776307319368212150551916887677682539635736132313228076564299864309762670253853875602634655529128291895988536476683712890671915144690668999150855107355899135417392757022877520621274805495556370186641941108601042477174619054177235494820975136548989737796000922558251032839287824907408033561744004432069021870614590601289586243193787888350183582393283940991575346754584281045363743074156169387033652536205523520924590510057348822236954415627781999754553111867390736210398250630279866274735059822524179989656769866846167353919295680123044003736943337619158593361321699023720090210758978751743405768275811331611288944483597431670726542762019943816470799548795816122381445001511970880381086008799786642018502745562040733332376680320788741763957137843749604540710521774339039707035701246759111738390648553805588565789378576210482853524480537520316108954830362416227484274598953498370747931213645958895133536808198508263492477046219311057094617688182701062981799266032336812006970118480401644640301222405464591161355180444964697193791710793269545715034473710999210294768449270050155259779609054004588404715257477826552648467323945000173420879106755289384574343907522907409283836616336310470965248046264526268664548065046623453168779829246310567716309516715826196415695953616509983077680110887008224875975511279116334935941861100301800058662115495337421149713264836103040476963090762542973038012701560789417688192947855153528310305849523099902121021007190853731277922316089517421423721573163418695259576572163593732134129838057949211556055191238672604668528567634436861382231093540071145396679884070215364980850133136854825193992763764654060951822930358475898620411792697237446323372339413783316430248148773785462992631952873664189728668397629449894487422659031974805260430450181464150910746429877164923019130487638958921595502079175391543678956348383678245940020493608273120120586118501193554287921049960453360238418366669047204391325430788477311182183730742335678852799644312619603794819500151960169829521232645511182679264584392442214281425640025020487738375390868383232637352633285381117768151164749499997707504102130816384232248064198547221253532742150331479716621747354131788525396664364845346505246870177273630339250292697945780748098806864604468719738087440095288628085933331934040736557039651652054050015481345802155003414405103820828762064679166876371006272373333471586237395173831312318956457579856934790133159920953070104407654557230624118334625287460469550651046030477636473912312360793868275887194772624055018576771997273184832387681430010984417678937594690598933623881747462369908895114522142693792143186153210376416250513071568679095800845567881684978160320550285707474629131098762576452582449825452594645077012654449566698169583981323379727920914146309013879987226175721504957881268677172321015057151734484564789810611638947430032324174562066738146398724494506140168736683781823421215185027894066466217659865599575689094247727616137126235824023244347954938627917806871715018070642082397902915724019997042215916730093772944588065475714141329911245987545057017998585452915170928001144125851933335637469498602632008511644886997998731949464581949515940960451163328065373140541048613677239678341617348490501509134452320579114728112365871681582584990921020029409057502366336515362032124625555460535783798755893981514518949313171216094501714577507575009837344768606184730533078492791248538117799253120876073333478576431713488408236337992088198980188375729994409482761164776254973958293426855456434729791280630887481828223996763283997359067741837754124441216987023597618147394328285493101135956287671918018701204643253826484221281527331204208847309391899323065479191254081428603396162870203515842836472178717826001160397192690676201954085479885164128357375448669912614593833298861235865764472304761164191241839154703730407478660010608675014679826755789019541113605107302808552417835940081294197670020328625412106562435158497666872633150301952543629171252272946885299294233771299526035320799415307226118742065292354639671348759111833126689574539572746930693445858177918655610652547654441754442469489808939110255047856382506849478743240028667032083116589369943994558998360238523365433718465577704287756423523779325525849562865919977704717182591469625219839496497249661586102511645557558585500792037917375168823642585020150889604629762602459131585229738611226544987024954643655525911833259259690969818229229858715319247028331131431332853157633702548553885770735903220089857118378120782848239492844403571519813024904493277912266623628982232229858811171714817372098846230144776692371938701771214988865426915840480837954514107343087551285093466428546475693286832398809011822809948669198453586005133056761603239561619020430933429925258618546652907088988544455627643995751897787452410812635351965835725511568158875300928184349118560734639312664411655418879987450117014273169520562826643023671200622760104671449526084008718298413580114257197233049015405852558070991468186599619410241536763994108265438502558635719859941089924900401150166923703435633521424638032379903005443192270905701493258132420690580040139463851003723196713280054081359661115055007039298015004023822459992233622630234606386615955849263250769162223915576339618206204395029737951772861600342854185702387449422072925128903931004790436385906708995894292766577477281331827827383015583595669382129459368282470472774414639252352115174387040346209107849714073668965883881208298231909903872551373667912881590694947359152353869861477117541543473986254228860837975359109642120358615801077759340303221527143933015885492573770190999723316161125899573962096952109661710772974784805803399089596145449520588065422511051196752190595778073518207431751726981166866735553529175023409587294459595709527607991945333990510102904439584948244280407259112112313559368981657827227229410408719892630017461824765924139123444727613791220794191256821225331745817171101106248893739880396756752617747811197044149902219083554775896317961318472029196250703640324879221311927162651754431801686791079620759886340015464671342399769831962631128537662972243306559793754182417469659172395730174589229888408730544765077466728980939692936061536439027354214069242729881815598595943004281068746110684744919558733620618865684091153485368647832916818966730335965948499176693024297287851883135847772691488252328693071536109849516597537005654411489056142915874838087034429097329620016394186366681997411388743928859796096480043284999454864231723443645295394333664166585152718140893321783981334007123550148602265463000347720393372311922822914481549626081607432627122227690566133259875232897370287750576078586277135545768612089254161680609879575199099363737117544934293097132769081023807435212337337523936260041190293105607155458140612013330531904610978723060671189923007984482296037634344292223792661874755343805441919939184581623000900628519944004216361943489996290941883536529503549686510371964760851852761737402746905547674019010408828644636448136310123423200863132112988750662391387873064663277572058825512415121536116204260661330305244770492443514266163487782002210730791521078914301558162860547550468557542245726754301085865690884076317316234533584743122310151808789890399069490924243507727470932169408264343011083445197546667079999901652660684361170260624784959055087867048639645262980902740216991326011588484601451773175205306057140517103821116530485406013549910066841391611740493415987627956112739157720902162456471240957472359835573296491230620659236892057997881091532274218496614574040166590470718928258417849160857647416372196258069606665127401328726587131523885697671095211367429784315016263120568869718920460639789167791265703714458782287030947948545806159333539850832290626327881648268263089309373096943984372630615808829308902450756510903205950367139317373713787464390696339351447781867980315680704884820366588922338602020323160955175619957874326743519352919319257463722909084633451296658538111342643415372887914489654498548234115332869094399694154064828096788253823590023724922204043156687813382204471900230223459857019732619785556270304541096295054145237972101899678242505526676607234727203581243597276842708420305447832093407111234663502172461973186236639079613162101374988356193349115860677962823025872110845317498203539491555006420300118860491588103757332197350223766432969491364852428336138650636504043946348927609500888442889002659277211899063458113327157209085460774977546114563419672461910216854069158994043119994335523634663928025480758162969068458464356499303251716427953760367711184108011385132260299749974491363573749103729660776498738187302560879878574827655455776580961129995417268255868949906822508989166108585373279593089975497169988836642210770137423414110753544649751598000301306866175334550259031816277303149449648220446864082614396057257281854984163042276856087678872274804987763797290718700585196018742073109883845899295859722633425401775198397808340289093831618561610389247618313116364010591539357408981352456073292901581354883896530906828138497338246848545653930878289425096121039973279994173354963012557727821612905498522571342629675044405585579950872748031451671875545200867570496156309070906902487753723684950922609267567624673058470871809429229792081523714957859293079924677399301923712987280180190283615911771206831041505579962823947402069159806127897104477385163267210742387184711583123410169709962726561537414715905459116332769172150008550482490796728167441381814173131954172040947199797857017569847400234107701587761672896457180731162194170513764039068111956320756109925751543418809751762761777812059880185427208546065896567606634617903491962807577460958528349819912756436124077974882500619920998979634825505685482505748894255827982334573415303542635534569735971718802220076724974202195140341636032824836211774544179514596469148651416634529044974981636669892895691026256142280387983423521495904122847956710763175815907300433816437047879621729424583716073288573083025383370982970192046972922891538669503221676551834642063764366904735227995247897609441902372872455759768899444236595356883058233624147335538092739898837880214712422877865266356507585552679898496540591478407056578358420141467168665814260824069129839316494913285167975734849371775848662300076928560402795811276142498349158100311503892073010500048841976993894297831618416376055234251449178797957143077434629861147659900523318299505380974188601698717061320188666631233452205749624857874268100985370189305127787617025722204391381445171618752857464840659260398738850031900933334138905890691539760710876272818657150158008481154443079948747530316953217866896661195732552904474341110374457939890458725547233824497220669765597048605215456658889543534573406711759391176423720898696151500890369405587227185231708461966554955107924717792996840146311448366794665402011516605365072567801856204882682647684853454645129239850180140981480093575600951901426010411228051594263790589279403723682723840298290357475213539144092014139549315650029973721571183644894806077409705246381545746651490015964032509757241606196009385903268865312718474087565489231811651973364594767300052703258901368094572739490567963136663476339343527769693932024616344157797324745144972735669084561138184641510947416717669020177856082176521811533663387482159367848670042756923931133547743120290478694048121331702481998950389279958605715486666320768173515811733215015712734551183546288246516294864962266768371113994355566524395793586347256694462164054595385783080009662619697192627901362908797737864467560554564724715285474049286588466663982432585946552138482383078687857030370177015631016493818079076525398339842803269520859045914162192457135912470485894674835696569545868003464328988862907309613508187497009402107381487831749794181356921037450708465678886702268264529854565731171192974658566893008949839530854064502086944053943937170022968949338742829540597729774350920525264440830766111473537973987573498458243038642981633956728109926555008258971499393702142762939579369946774749787509780641323349385271901940866178665670455978436959897555104322420134964700910483625278085186145563208429567949585238390960053944434753082355805896836791064004909470907236635163272860690105107906852895198214681421685982394226483655795912693856953920557557152259541940688270949319615958328482274038284141075664835045890654831044562691453032247630670939496955789467249241874598002362662986346144337774262478457091436846008789294353270134706104681940447720434856575223298209334467204380748684334812042478893606277740433676583995095452232403963965133112972355834268502198689426235009920032056484283340007952849486718766443324547090134871606394918517295069502446228916188955784252531626850641149547419504220987015651408495701960205300514679392235039253565522204552256906520343721570668287830274112750575486773932933030047420908737650525798778227489123271771146356698083819734139024696647179640306012459883011309171858504895814471543875742492305727258384748290374800446875901882443082250763592034583809081776721775984432528563049995031600982751300909944676259306999718576607083317985129766109082389774810148776679015642224194624826796220422391661539612783167063247263900887658973377922168566569553141100140683385381959316562023235724514692908693303175274458981124293519291395553526711501269136881105393464501070856023507146026018532500511453783513642798784203288699337324533785665318134411141182745543695631088428593572761186955721204751398705565214313375541421537931255266109536976482461567604815659509236135118246969947418513780211047960876153218148987541410046787537386649319934900452174499433441173104302472378945078702891961996270678229846880206064236838356002502678997640849494816296658369462217252306295839483180156995681515906421357512076410385355661195622213234607317174305754242023873785913856563459485383620098765399223179796065800807994008679760249440246143197344115257261371564311691846274831829805500612162196635595202338657175750549682627554468610789622056325061132855397240190397898451972598569196070691874797249415407464644797916916738403386538932429469940046087199139005915521010498694436801470060559095600570112411640057938640221949943468828085460858518894655088746034220693987645726698263012865457263787671998698712015909753885101301185206643640639750113940985840920644795343059483126214077047774774591838397582681638956668967987048979942286312763791340493239921498208187773327093687551338119926440063981626716861266873665489953881024724599938112435291408110394299643360777135590670439154124261901050879657000717158211925181884288770397312499943694130036171252328412190097074296178367029869473775191577336832105027119836010176708843252876387261747255636201360077054054941357996361828017414436549899682711774685900432498164992943249413281214608265044883579251258550408025733502360409403793978500992599844091375567457102614666264240662430725661816559473322802876903027976025827683942240746397286358325418512141225537854976212806646952999556502076046127213612473927438689577337536840806000450442355065597467342364129451566512254109953483766876516411146832330796144095151327846075569157968833200730850729130802827916110092103547662502828484084499854403453478376526622336181522028416407571034372217496444998604534383894407074861431956256180583870468362218093452367524155396368912145756838337292747127618994078703047612484698143085365213526913031506565255439505781913377269894213480236824798212031994835500637482526396260597617510354400247060323660327069846877141560850235390306642591694225549540276855911010000284991065595101562392010134398745175436107442386757246442794340130248419760692298727417766347331898872294638311544696392754435750296821620565542665353230289349288394855917748346088373932203849801988817024304311097471316738303434456336048368072237258272020828206953105048311302502917138587097325149757955749703770953261981292657335132602744598528237648709044128369831564423190228221633488932493369546652413316640963590669379525270777383190969724900790906122636330848199132213030624317538358091280658884260705648804672069656405126145385928800812610247077163812415492036709660547379904198639947033136133893443709632662337899393773117670155395606422532545488204824541674860628536399301700735143223257999873294547755684007491149075969107880208728674447887716733565772289839100544177893770766313450866968446172302246945803486441858609171662534593037489598978219384065221204587502563799826726148835096338928541642896623156282370412168114130537757666715998939770825575847115317761586841452745776111031554719253075307987864043225679006841350840640925366218677775709508854627535659045345354681318933007085852429119477191069874628387138732290062098417242789885733332031197421048829306890349359399201283074975257847868970715891937146145690602941216617466309082800532732203555473850936690300769943164260224408947796978471207371001898173448342703765750505543391475946923777596050054089710465750722266758014039396196322207468114359232529052244610002115396686552961308288091073848784729863169651111131396759339004400175476302099566167546655214149353530342462674394796410663226558396093763774414639946885027023752158977655303969004938051051452635764579778631047520307835031389464700832797214664315431732571502136248326628442236561441548994534685424653339642970480081866274406627823105841272872218504445991562468587565755903106477109659590517164112946609376143652206818836941352027645412000038952618654934503596956307522286512506234043694901323335660910193985626249109374948683572068371016815284441333668379232575377352877153367205117288111793639404850321540119059449509880252364234709792462059978105666283858393430983398484761194932592677226568062294219663398957054064325979248476795686987038852190799755791828521976630886189757157214897633402718474169774734702248676796238736857824568586455774465121241219027448157152498048660211366214289922120288911718395390594116278047223375905247862983312151572942194096055306167677375515232708509194696162220924863956822982947300412868599930167191377103428320222606480274195041688379236753792257594275360662612075742249961529538689153415148424441518839995619854278441885737745183227024833370534097209922175244705384044074452685604226626861637664838775989676970822447967183522299530776261766703374597422787308455625454921675275275725857243151536473831395766995187692746477978969185220472443193915859951952351272567431515812693006275573802102190596204945397544737994370515507174549363491348089805048448394646419834623475243693494254229071688633588302054207888993651688057978443607907025248578882188069772756136925203651349345947134637714522506535541721128462921982196122500431092290830665355184660755646583389047230823373497878986150238419917080621731557244612540431781830352306118345817126642226108537198166358442490202969189571843554205969916134952683088658544873487871257108356595749307991076143692425134081948573533680291384651503946459244678429142149103761802459237733337553036690293497111288544756075672414207281792283824484376643311508613787903013321308488945820187849814423512531262165070383714436454386207047061556319756054955761792201666657383344060066509162512080085935670821457719036749961091809237023527832270521693363103503240107389335396088698264166062252813614594311548456789194287955793256226526028011117144544853362164420847377271046458425828468913640119572727143961576328446288567868792083845394620828610831917027230734777230864001505069398528632991291392227169611650134805238609014689324569438711762886869153415742549845689901864982712961387581653951210105091359924620585230616542921948309041107379147054609920670766328425725694997440689915202810052228002985860594218389795237045495433220819633165914196660990858430698442420459798243635521841273758522978468001910542807117796265091019070766503207186739102366704112505140277028070869755657291415639691290205829554932213811402688970643124567869333106873771546056992186467192553862292817242826058131290353300399369274937912824205553175997590125759721949432682281504821494415216211913300513554718633616167864860914775542352455150998326736946769350154717528075141443217799847825865179617034015021080128229123910982053199179071332669585913028942322573176560190602586770383160528596932008368728917244421248136213178071516038517239148888452527129179990415182561854328499190290323962953574098716912320345279390592158131913665546211864714056988131661804366381840562272155630718744313131408184703325520328456749856657888396830533286836522743623811533408978009544727742794411972070922928222804707170432264351698721208781214592250067022395448980874630627362356061191850438047675586058091584325910177425920555270150269737653036595206050987750937513355324637651287891346527884609847591508518725688867675395604791322199632280639254019299262014890983003502566269886565665886184381269074010510950575909489629190355529365471302780788846089634712621105964750426307502784535839853730555478841037021672193619466319047739089429099641611993344595146630499923384557964841903090930827346618006855734510042604365156293739652206276583706810054095082086553331175136591837951163703759224900092107809100173844896654954973665808958995288093862406946342024406446616900807876559970159855672511628109491072997700584908582024409819028808195183878305845909750010834159690800503245244568778929596615347633665162120994850404564036833689040404152744137297652706593404043012681303666326640791790397552271582080768102156576044612375374503841873128089020309615491275653613835027209368162887819996671209699240664575329536355537419295668596188938007782200545854572772791250285329181935642038935952711199870769178259526546348922860743565149283467460703932905518690750561215972674536889003665927163406006461885189987225429096808184507938735354719864970454861857407544314286614968244923101983636906402013494821241780203253717696271820766215312894668064899476131569956714502418772484767987198597964272008068068075763240252432949021015331917593202370710949833973090352582007108522313109293602904553862413365755455939852561527162206586366065849330780219897803817806366787311620011178927684851867068172462182042454762214149923246132820389454558996219298288145440909417992071468692478349231977580392994166502039890547354017552491749716219390224560320553189162437647603018113554235315151590713023476141127573132467446798519142155514357377668524374059458800445693094867727358223908779127513319083774980638915899467138224548944618905503356375767856663798431440060872986983610964444870542340181692588309719810020732572247490472481152712540968309548526068479691670906056073411150059698214569609587150774663354954502340400606652634263843104835811272417001983847578661454675529482408977950742762588945578420016549927801197485271882152993419742309948542056989129186695456351557933222495905834754751121416311280367614138183138130209940107346399238487341537498028519855609514406126720953584033339853007444887905287595058015275248484409681312998772315175785774016455758859791257456714063342060723789611046904234567668625588012522223876606330380618560997543704314151177064693042213077869779876131674532158106270598904615071401160170565148619961511761497023632843341915244373219219846521490580226282777720058151719661409014985596970857524070188963770128612803062839261222008055245818221808763123219142859661932507971639708139399788605416836540063284970596166613341383363415787799302289409052469674256998549686042926208585005265890999080928224360968006840787902729833654778393161050020240535229802883792739159619617854423912693236445545134509192358120698914606744697661319886338141298581516977013219926276633988430309267568751975685973304707884124537050310742759877262889635633484298158631327836503839833827935288314025689765126222974298062638799183293084599460998344052631303919448000693602571585776236579091411375063949781488178730349651047279129861220466089809705387064080185912772462289716811428685572135178336370514211720985159110442601252947911282266608689997587377503481325720258158403042424842983043298221791245343774070021852508599370811952352753872864395377438135593760528158615514321293219751133945214473221375444696589841734028070245420322788077743323832402847174869304262966562068053034780906941930568128146020445938950261590964747994195131278577809996138360289816918835464000030572286289123822609678059433558817942185385070718906915387854976907490045077267565020097122597854970993685159877702470960203178510729076985547839615399828450432831174689552332146050765793572714520642633416581271931734830823408923630991021168672249454073397525472630405057013546875936004533109593352208472232494001756276154753169333764731657821351636583175624030183756028988984649838195283232322763196824971598777341544018636244036658408142431119665799224287285419467276290299132246572675398353305150174660384295394294161383823054698690748713382079961973646771998729013660916676836248352127329196438121066972050104893171189459797074772465119281779888592707118076085111022687353270831333600065907918947479581918928864965022977119674461353391262173805225654869761688825189112872966889489438540421216036127825105389296176615296620762862072312321180480157698202850632969907548523938405236382207799758121589430853875619460225235729186163174302920101556966710637911870978495214598479344504814230110255435774313126687089471805943394057808728547705279594842104807805914741218964867497119686381072670114762096379107202779827894478506617990054562036175468716924183477152464091934381611286879359381458993297992818157511968062056468690757411882993818107867499773245191089968497706799911605511473046335161771689811888595540457996016445058288540066333668804740888017580349304241050014116745773572684410714557567938784372074070587274441045606773433082488625583693285708395676983856653407905687885025064731410135562843974355122083026781455616154904032106152986929042933327758699864905741395696228690931112223662131547625735248019362974301436591025653244822826605713248921182568650123612576237767991070229606964372651548972840126495465067688497157591716050814283793209978098255103837304941273052177600936028422579976195755994021602515710955123446109122819578694025044608661296277125362226766747704219147269369194825180753916052786558572877741221924126727381401622283057572669001749271765801942603535790027929700594643437909517617968714491289411989584905778366202776645018164807578107972969501583597729321469487315660961227159320902908723322756761387466621117048030809700940218654260151217144871674268017622694935152468194245399662802709142342803076797408084217335432339730183322945413688410793693287899845264150540498934169566548703997642923176968874247337150437026491778881655677825657559976368170287680536580808899822500499017373553984540678229942289632008646524262068542968601404146195439122617480396900667429111129383666691285956777130200216806218185533824603324202969652772134860575684898167810166597869476936118692539263894830325593227757854649458588525312597790717693138818523275924814511167541339155390539694940350678289386749349011698546483768504070255581939080821611804566847963758320513520644974479463467914317216956709959587190488301791290760581566544150290204540164816275314770808656589776931177736328581675294470762593229000882912360329503529888775102320210355334700091692845705670938903526835529287097991994844940014213770331996709267084773227469160351109452324649258790442177286147521132133482123911502095502199429132368983013762760394112645896843224763785381650759478303010894690442304981381544868201025393921796910858046871412372199385320078736431693921090024016916824244375060058253428567644321585706995221484202601067058429142172220882371880868018081000003825245127570811200460042778182152404096616173544251906700797453233639180371409919927907702302092829780401889333926108513606925967996596498128648840852498897018754610820883647385505753135916024448139005814536462062650892266239823629215852457042135113673632039437239777529307797568098274418387756811753878925823081411893826740873983876720593362676164996935204432317152762133409283420423074272233405771709346771736266143924788688889200707139702853600379650900035593523557909056361545951318431925026802061281234640033265704552215802147584257781821444502621845141981498760040720386660877002638938438595231882086215161160481379494173824810537634060783356009022611754277674994693320500115165651942657302808333590053727902243028521357469431064263927194689959214877209579712390034786285655339595656340044224466617827292788611607062252995705784599812448324446455924489352187922323010751968721298142062685198089272195508638523019064355440836351593794571722972400923229304078136858635694608042157738396521159991339709847832770445330872936424364529171111173289830652061668889875772299575191854601555727486725935487107762736401061462479013888880076335385331581571050004008197621668236152138454244784767544867921077370899635809452053915590583032419898696905241805010682938293045630533475336715098174334563855665464324333268637344138869422285565298924420224751848775232721849782973253725681874802062119596796637619569620460094368674638931884134873695693845324974042703046951389370606900847189203874546740313172806946145619915215472690382080392418917452975235639219799882595504093166286156382774742060669535672892557619023642382106717521980517243822060062894463344293574269406324347085073959590605615236894405589259097836784142525825173556540866117485402131185455717617454153628576397224167077198467856574108081420485611278403162596578647351854688616584970959372644505845024431084229068169535272684485919983471572072121708448551696733554780007517780575529800118249597750376299994837013882444868000664726513582036315269969264249131357950611145014468663652992291128840435410410924672386475486902972326331910580002119601036752956300377260666037976377862817972648254202349204876420835480392182930266131355627066779555267426745119672443104876316932184960628600058248646600698776321357211161474950585098050371874766205344908392939899853606636297379076143300306601336357444591732436073761329181079571881805411810251387674976977508426157132302543667608720687761463095579036612796879862417205559367914712878451709911848204419384606948334316473502834518137011900274914432776358543817604199876428426036321129927964760216262284364937150408830488476518709791166889083575335049757190569803430427840425519238383152113670720531656834926137181483515218520940863610811527110567945053852667878282627175871674605351783622442557079957861875810551709375569097096039341919364418970601063597736165305858392122175845028490985286127622646180697506196194736926513469821880043382373221164020780490887458719985270700820568583013395606766444721139483635174404656825840398717222975383858949189404204871223493915435671002613579471854651741320798788687400857845086050756721415014771240920656416482223016350094535518437292358083885994747606821440632541023350579331811982204127608339616139718826013496189784315521894684999135818045384441109682454795607313976286373470803615604833167357507471373594921073074397326966013627832128369726853988038499506163022773496985900400405519030624738406053357015716211052382355354344287002466077140246234074891718426764555703109466113653797254095688761863272207183494007740195362330231287507314115906090446029911578551477222402999434929781689462798150791140537351457536595526009120138974768430608954817000393508489655270939843456327521461972956086015359017704819373404011588723582980751798052437807058632370243963048648309394734020644780535378994959785506549249412477226837913882059398205564660398865616383282828704050023658376815526954724769499368064399179101614910038240646957114184165916904947886363105584153033987886610284276528580276007934095157787910355297167764440157700617863667200541624369904257489298732534963022978969278569488601454004030081295667581348213869504592765270503810727999677764734548508507208293349755501886346508656451874765079667191415539256547801005977190968491254176243971915962813390651924877582779543827544453311752515544146973795371212225467499634804202579490179078408436808511920621866397117655633675994063235906503868407804810013010298934077462589977872518187583795125511923205607999560787575764023825522194582324662788689450019284732203659478109689631669420258488751722738055429076726435876526232636729367806213893967340789397207393156712342629312278415153891293392076306001071276815115233179031208461331821587131773933919787572694685237858964720226372548746814680864106175607750873151818474931552352703261211476694024034651251563132353169110866843382100810041541594717854385106737819634276308419252661012317139908323046431780059211252102222739198888923234741381609424702136522075228885212418959765674784698610189152597577963531489015964399612810566939962254821823108476983435553764461365241089991946256883530848134607461782283156699108410026833836977780008212400185300290679601026098720161653954227098043595251245759347949401904403761307510796559580050903469420489007715563623258754711041815592024440219254593759841857650411332195986271705411222332949088351458435552861090958759583260292454611544372020428761574460295279637674720409838357643289857868315429978697845268326513541206317642607885304162230544015290646761810718166967389679835620262531177599483010112440255182300589290625507495225575787020913077409803513979237699477662557764624740799961906096929549383198929042045940169649696717071247899647068880372180180441934977805635930644861941023223063931061747148278968770088874123996905973465255769991746239489559915645751492487177342954892839803514248308972386008536345340843582025075134338498358647773154723121950947083107665951459855183735987010686267447124103922849269172617831325877675227202141640107899286299407844721774784989547354181652399073510920926153079873419992820393098946534884413554508530142472890000752415443719658392133452244003389817797242389754683945267158362475726482111181133623123153861205390987326293337025475591016145100828333001975010339255045380383487607645408459360671426329100500251608893876812686253408038536630019417902917158149444444154833320255610672760136453011047712323109496298635870210245239177197559654601542099094190858121991345112619340230902633824834020926858175959797294331554107197927815062524305880915537318553474298302022615012721908986290807648342917223994258984959655153487908890528960912849033125169277118193037345963560146700531989139973119326335646737001950277564708972093810635255120136100141396626780791937401969863041278607492693154568260213103309850636214636902769284105009370387936559171996468764157813334284041939308565448159206811937452031827891378208783819103792561010420863597826671601478267082689143692969994489671693120367724867894339828735344674291115385161230423594117623058444353679921273849138976008492702304888121657405053841090532996692588815242778637524587432581909072515981672796260635196588719644355443317206314071465518763998302853167922862547496264433809122158670346275122339014092402752403591939639748635556739299300330576103206740912045989848955492973950024925542005210853541378354935426087656980498321211462794738016107135024014711309278204711912862610376158646527313335227414930401729295650451938884108451881102923655750406566731683599120685723997944927713081035147767916763972453693409579005359118495724652295966532822102045108374670367904199369742787728277721155228320284516601857249113134259134094477024941881100230115763307856174544593731609323023656217880942459412481924058462653175696467621103831402625494580626067947176069963151909663612720400638463434626651498316763057679137616559591185606815774470855876067356163735455249089434376248744800660996828220889030324793646136886147966048890103891859186646945543461063766213145393678542488793903556028971485038422414034382049451894753430444607457158315540438524628124413299335964124382843433049610591916686168532269524778569845106152692650158817558287857557181598117428564579511535859263613758648831955916687294325158516518211703296945615392131501442155001798964929801256062106825225243662605782154354950852334602903742518622632616831869907291459155595270687151272441611938551392030301747243451326338291117898136318501853165072766202563661453800087356393762043089455638405640473424282171798770491460654727550347560586168460771413021922131781306365800045011428403623306859131864829600457745318602491202946633356291979465698247489740439155177968207765966313690753604859347117981731723200147186175013005845005841560268358862091673022813152924149357063743142642648373194313473840637614513333992170154562102186537914098547450284591642338619261913953234859004224588304807093075555406322276410481027816103104496719723016675979242633249286407843499278669035910193261339896338512562931296204584557915542177624716594252193312653236302154728311659104718639260633670438029413655608515863678458069998067119908383309141561454164091527300518548899983662554613416511056975835123864866615050590212151424723408654669425788631826215064239742679047873773626677696291177786828694331249865250296508258643180596814313990849868518555395902795814328061435378921731721938754484400911775015120772699028870110292215621645762244031721989894062099806007636424699259390225879772814879390615757864079864838286184127678555102236515325339601577275144850507500288018586427318644632331842422240685660209778017120512235978338437790576112353151968689523649935604193642108568705445238406977882491374635985423184630126700912736429434863999970857869755523498384113539620613677959404078168726454606961993449539175164351641195714385527836551324145175437871117141971119113466457762437058410181650060750301048086208265862195813863851811408503287846314012724389153000482478351484485968402295347968710489461523925981457851863326727335078266178462160877020662199360993586269714741992462460091928987388954824608003586322829928864698756495847157685778605468994548231280719457833266891889770415826309061266625128693146084106045452084990103762573996365662306300073586194155276979158210549054741501785552744339360168054832223849680293171596235917843248332665276579389168894128279603417875529917300460008935804226930545034164600785363770607791402877504949356384644812660794888092079188967981125314591898138065620107215933538996851917149979370173139593164989959209059476912067909068880369167794969599300540313015491008017146349882311110677461081917814005772802231301908499278769578773752907945559738388515419913356030615942119857402072889155927502581235877891047238048169622810844240806046373241728080676332338555479318310498621552801259751088130641147990607541641059539267926049745223174209357862655522986457691124587140033845964819076419158547060520505781239012439429171388828841952225402401157762094677904173184194582663730958219856795482610759318002828211876458979718238865775195638912382109971716984888166607273819601816976782558050545948328274404069491966746085185756722655505687405224033484749094081715479621997837800993714391865437021233262880807488326249056570625242023194498965578071173411668955885054000715125023702301258004600479469586591466834036376306875283456071015935628184453707338429353158897037884357995106285208095548880997588873848467092539116067054507070648395843024205714343355393348536961056480671774890953409473035134699249562103241818390239520847538081599475052346452904649768810048012069542665676584882141211468113081605967338903112385421469020771938914764471912830826500238948597444948628254275491771805182885196775393114625970930205425110551626250476174691677097660164777326999911323351510431027516100492023966503114539778601036304488930393470799990254205379488855797057088347735930228099052793874179453270530128302038144062385248135785837821889266051768508781505328623553369010972557487945019938521224025153158320897795636253704913220195411398488713383920158529996817941626100555947213673973373969689415775520141045732558942671198528806329485793440278853338195328278172974129533333779279547126307584214600171248194249160178950884814268627262929309644553678222536689361368345450979472107768571600682304305967315267890441513576750827539671663150557325148449115022272564225912275121859340435021996278120756287276318501730515447858539597083907494424255756192878835840912236780857062798790188736742263373315681207337983104267504593341059995211333153526985075209351062179086322910068968078698841244200327421786672504729780908503735681961670249112383737739951152973948762771666185874420945844630820380433215052007896811791749841772030928609816614341467068090394943035756462581252458885386755769293403639209860898602177555823374278478695448183387667176431029760492851460567785705885617939786702772729706605377994064018870254164486462248090067972326161480537301975479286620701017287713819642903278522490684291811011647376795703276926498762465758289570062605310471580582502333944487286187098163756141769247630672330588544324084587184228087691089288370402993251330102878790680457910867361685591951376294347100891038052273486391080823330395007758547791158245286474191382133750777065357107473424251251471331444570502438281583536745347009406156375503886684034477627022224537608581709297809392145871015102353113604263626947013807710613985627946013392509754866006352790409653821959941272741637094796674616724224155583274017498386632276080086380379125687483662237749212059165188250887509228552155099389965695310347319040823117036640252171167851259844806726074525067181526740217991845153494473629195790333663782918684852589500730325770295587612213928263859751780727620089835317168467356482017827430274362127487880037179247692074690847769691670270351088787417310765852025912643418872738321026393001892010171242763110354509001197304190404504927362942887543800174661757555709599488383280511544905560388974517826070074222801115228058381976912688195930174475207393412183636643252619346486500167387736234023632461076045887070857035810887440841901366855165512348370156498916219849536806854711796741708877451011855869236918272773371503748352048205604865906757209072924166174553058384171302367887618782842217939502893082763342700026526621078524358198379280985719453196364382844176674466902882104418541543936056501289205898302673372478964546446511746600555247524698203688240294808827322724428604209722346643145562708252811125934012102544573937110314652866838174561664822760695290829618572258963587217451977378081966147141247617913104099781871358518264821211657555261593073826827640180556543231753127581683204143567427468684785278215054499254748355929426968095972014348944049889259181010782603772192583349102594118672647191855121179122359536206715366898691855835200390959221090730336503736920791827797132575048618829829519163298364030381006232580610540616968228474909963298234284977278723467209409937759211617556556453376340794541172386283810324243996724477708951102617892796779608539031239263983364366493984293590739491219426927567256075405198391372594227918566645074041669058516082673170606986808747814310610388924693402732206176731919564348170999250807009519150944619971773758435870734804455543418866987956687333999904047844299097902662428125124837595556739891081741102796652707495180048140139907076059508041699489370737421933840658250995876052401677810743305425574127411535134654237054170096520202620333827839108601768211689297068318567939286536437234420954404671322740161354077697097435904073940301869511562873887038888541997994903341644918222408652814783905323093736045663250143058658587395748302335467894821096036686512321178123095457153733219271944154503785778845807335179689494221543706185201822489756134619255289932630111319654467660436899688934397918124056463777958308702924025853187490198258738455836241580160091126096936946865160934872924876676002560449383037403139271963430926279976587717887626260228138211274956741753900693648339617256209142815952412838987367599640653300691540904739242239216120298628817668659848049552735385635155680768271171212762027469340191004279965186061124040285511186297466478004711551934020052216141837284342255922281704153153506943644952790404006174812367280119694416364709286072711751302379333950210311161233844252693835045379771742358227993615975045942184021980144756108559187643058939161107580008452012550369638136354517460263818363083350701404794544608878628578495200780575690174257721865483319167901127304860592496340173238791737790618630763075505322736077644966099623720353871033612859712695238237458915971046641931899981772141035215359184612966147644695250075855773504871510069029061860225235417599904008462229976121944403129142741918292994860036936260901804864139593718782114544946141483875528417762332098627260628329672070818906716359147804583671019924185250350652978413454682893843797842595039072431986604866095821534535646519408666576776888880305017256303142733249013212655647699800761986549174216432853950808526629940904221823016191505691022908554701935366546840573423222159988800664425390645971123437688877540887267977031104029592245648018800442937517760845478107747475674483973147534669754407718177420685101342767283812504373344436641747108051264761788106259109731287690596344128299466120901103027623793612601349969854513699515034837263284234904170997109131652721657859350730890270468920566387318985416623190735049904552250510504219411086718728222796463137438790909187747437682396252413801499029512722683686688347324047727122656524930442431344248470742623597572848261969905276372191750684616174342338124479107994929213278743344436189687306990164571393476593923608121063946434902219759109021731504451219470700252867659150240775715412975924373461160983698874162115773751554232832540825213600063242892986739977604072578873097734780989100157266055117183967887638262188830555215084176426278714233239292895755977418616373434905554196817503542166407744418332677227597661885344295961752193901894608050564789635353247229768144548493267616570253522656304828610993964472191428098950008155435809759269661334617177823600831452610721689320716455645581025000503542498581824335404762652694420223530329321158954783964684729089399563049537673076017957167107793135214606876483726696841845579475060555194922199506480885693754754765226332811093845311131968146201415930196829170357652568665641864665191290441656284697711147084870603750890103787838318898561959684100342188907846700772621366456198042988679072533323932180016243333115920442901202111094880579695158478285515626837647978984827446025374616281123399520866633194821988929733092624026827709279412488249251425066967071343804858909631054595681748716465052634286265555560103994594801753853657035786670565456303324491963011756437031610870180699205120663155632773446417347904439251456016750355437243456520895563278259114316462494805225049912607153084650330195613452355350414570684293087263841794575546888053737741623601688978441688175270579299674721454203468077532591846839631729325310003780665131176663711754811568071576691552895315637977887939903306396024872419237274549381595743823794916138118131545803791792739731934578871455442988595008208729742347390349779701791768395273569981263170815472882343814296632446806970298441922005603463547500882753017704873667674237986218313974571956573911382350504762535944701755288065790515697560462191534381110351269882408411038887628888318798468104612531598387803761178454679441755678217493897339410703366532958858867380085599568705659595363538363983448057204875064073102614855606088606698814169815614744377897183989974932517757370186341140307093263722114307637545056240183402840272476416806909297815675605384996839538380781162396366880005632008126931238731155155561044681880359393482748648825528263028682327042396382758941066030599937291129815648994877678394614731048359905842213136797390982437116099616832418077801809777259393689187868539217012695050140491052510786246733285441260474129641618953365727460396779997350992618588294225717587556475379321796269102810026329879590558108438147133726230961384434988574961498609276061866998634327383041078603843561744044043802811850507394701678343181514694494981044189780736236205437760777841466534205367485418155925775267698626895682886539708748791422390787754120113987426046046560660651458133780092708770196595835523547872679038873354790252702883536792241676547715846525749602669947544054364347164638924553196027840182471140174113560410261947808754021924319260923590636510740690687007382183323118670713314419499604845703196303010511328252340150032796753104547658092535977549292887401436182537853723026941561946401382758996775101642214288196933129656161131856580409762690719608718660944760774419016543059870947869406823031482766876207632004083955645454441339977631397685016453983001287525027666972321414064138061984130026325344414192054126887967569328417208728185728963983399535119421916255131177854086728814520954966365300004443249275966304697287905051711313282037473886202451653420906097725308246628760042453673462807230870852762707309654125062659058731377901664275034915573064386809038134974117821910138044511870882926585482774951659940633740002052917627622696618294980234920939019410828927287192308659512759848595694336443176223870736354426526270172259941301660991729973715611880761291195689703649013989947353465245534550725191584236601452535545643128472145297375892500698945383370992460153540523059540549745075726591009352905083632374221141859451333220901487675935159675984728417327292801350856931533853873158034069788138427785677221963678645309002261140745929428258661793705180659394268186281386490266052133993849914627233820556485511969187636896156646446514347296432368665250688680767259430579440695526138481615718867560834380497393824486922110766107157893735559917384164744009400676007440574722287673567464992300224088216624583304007745745307999981145263272254078532003188493237792505978502766673393762088383602294804745700380537366101795762417688583760525109838766930556161048938014891021528273712494230660621317427169274172807010705951819663589430208139898332837139240201827219759263971564649344531467181249825459701532346399644268900597547099929225596918193488393505806386149996873448027185562228202265351984444276869709967320717648527128758206480925600096580159742400412228491689153674926948497369184238000386380896721374722871547308483495801731054657335456335299482400654087432808653161392040277272058976978985876218926668736646380398045706630340572545235593174089711261261295747884297493922802596562864205922117652203871100366575583627944557362735617818497733460773975788579055443789174158030638684865120473875067428875706790587656871144214347489086574779259190371513837503257775898810652570027263682900899006639738698285571130450102154013733610516774967850631558861707969190308139723948078186608342558270564359740821407171017526859735709300521610957311807747729075735386897243025320050720334396391144045790658521589602200579157967525556949389769331195197280483956509556185608234688397178337026162766968621688072495376688483592452861778023393584008792770076798056416823621307381816443644536013862592306526973236223121376509451082917507708543144353248613844439136732583091639883067223487431985312741581234738809915372469685145444511273024015645975377680939631839452604957186157781045708886468117708731372643467174832281492156204790322738677004507026240158005888514359881498410413670181395792427299626423647687387044260712115388776449874903080191900341685619403623101735908023058786040461472189015338621723074349411023188402435718841165828851053494889014297880141276349788103191992468554379494593419513293781111264817130313100768157902493149656700081294376392878212241451495771536233490594377707331178259236435807515859849289466941264540184583808029496175854096876385332466149419791200322536405232307675162613429734917925787164206006975880410977848164260940134988971695962327377375337447408195218871159914213927214777500123644097047853534960863026008322349133722835518371383542577726025134424948986369375108938752390187947446676577865192030624182315102373660957944133206262644817168034149338212825372954780734159985311868073242988776370349313848174003803358859247964709196701250252367707810177916025380356653800846845140289150546115459024559304481854528817350827296538248550337180280375029263431401601159996140281107354704424432333932342444712221188610617304090123461419762439798740136932822862966964317431388253319559714097927101319373765503039593158498493790678855740728579559957542870165569535221912308440344210381959384802539135372498437544231579947693154792032852087731953772143932027263351519327660944893265455595251145905818393155034553104107721924524050262081223751829976747605248019254264011458878537452445424664809137319531163220920811951256985522842249710239564800228704607906883874900338079517568660846708339667974393602708585277647051883507434935586854292209873056212550716320323218761322073389041426325284623706129550830253375119733148169471968021237393319060442080138294146722139211330536746322218628375720414287786801002356128627968596295603845562413000264326425205504587834007509467474305937964558697696608828152407589068435002901962190039333834702374048818461189772654851564522841853084265348800327208132173238645211426698357520757945607293855559445847886041391888261516980919839755896299608288566249144628264456647879862569134268993974950291395621947605619287557990498009683890616696966653429965204087139879730848250780867073493143600910123093181387422236123702457192638704136754096924860842347956716982104065848782467393959754947904009072207807934266187250162396140394828648957831567940814099023937179889581968950094824446471451788242009814974848886792855279699042466396294808802987237829468690617309154829552234359841749813460282332301182435495626136901607375270572297955766796285330344208668939334958368392147635562240306117905038823429650007392104068907895272791922849943533757291705844243195729695865533621057847878839813016679689427963113936812474657268609275764212994699667327300229365540792711967924212645452257910190001532070154125815794189273064654485647769026552627652148011781383217151133787186490485298622984407279004273366634082108507207389789281041944537296723329636278863876925384074527581197244431180587448806157213743853614638154612166023715680001711790090925154135067237680806105722545701805801029560083718217882679207634524624696939328274914975694824104172639722737109611162853794709370846701015850426053152422706089430647274909740495272958806012486096381622089949415076072662338640120792157952538245248492132914210783933234230570767763120403046396765185151523176670515519692536751171356286395477454843662460802644997608475931508932015128115754714550153133465505248318527101920011897852974693121678089445651168461386823835192129437128799337451230918846563734326851800875327898366866765727062035153919749514839241995853854289333472597145790706336929202798695184421097146693530811549843928132472896006753929085571779045720935812876150708501669801332829234601546559118870515598060252875694579511902846255270592120704476672314749091378345824659305155820682158166666152332967204768172660140836861915969193186622436031773776810879781096585847425143985078112322803458085912075553072862952617141681743399275733551848444070816668312732966238865648649805446144644843156623216312175373443584633191466829439824178323832514131009482700649502701850326480671249830357589109948415734625291362456915398984984350973047160958543005333252065942872658150776659558041399926163097617529148195785317774882267323986580005521320991809551102228198512949393597005023670927021401866576636218669411545267604456227566759403846392151026086972496694114043381181716737616954387238275493074954815594442164194138664726998451256999547457187139125294161369432985630323765842622370693270388427434047472165287383760832582683886751050569105284115565177843149592410517455326589248114532931081940487828399975766848986241905082038072750483733838990964990410163190518188530371612365761674521754010467914024435041329604080108767371719908846549328250293710927259008796709567950479431053752045188423109550935117233086904467730426993317534042160743536930527032088230602154981605006925034125669222139233466609043724940576372527510253766889494985332835856159601341852035534844254985439721236911463201406366062379621668743069448625573610810232892651880838667759662201105334043055962780783109474044277517214559551445184526977595530074882813884755116648654239145497071377755837800105091559754248281857960678341022953102278184079855564673496316873684341828524715322679689262317309233129243657909560740352106714459347314701482244929352490635571924455056628854320425398087359317815540941271280702031183173306245368084808357388974350591073697528276450691533256454926459516874870115465828209049413825530020605813312884480118462536971990821888747999341029836184741759664541908985359343565308582093851094747078757859193118340012261172762412464367333522370690894882963282764036209081515003576077167271610903653435935928245002887463891783566323790868494403944550295229921248533719758981472598506918638015747996846955281382424290561249885797328428165449711001924458996497687568959560863246051239553395323816667507284675165818652626640083479014708377616222538220303072368568432055394022130054060078567819984020305348684526667899620952566284196514329058624845624543013476866962558964653794627538735219161864471464817066834885310263095760327074428489472143278011907369345760085953317773269220426184245597089186424326515443038130972864302090031804950772765232978217592327931349383251465518732596818285797357152319784470994673230908192281359421706432084315159264165235556523372357414338213887674031031208666008195603882817846327082300820975584675211028992304256752138228694386208362468360029814159610549567759525596594847017321333632795325761692507834444250700185433530281785429089581928206322849544750351862903859406733330649659091573655434210673431751462190502027680652947912032193704332950536478167315829362819063604614261819602051214918041591779730405080619946787906682056599353240550142253031685324014497226271321751193922620502897200540487244490658080289484244658588732506034789636260585979204037601294467202166976341068066488429288499196965029126435526556738707000640335803118949030418870802990045241903069133189950537948184324597572288742784322498660910678142151325861317499650356302119039910739373723353226690941459205157384601857934719496758701102621904118723243298157853909091056870021750486878181886380599661510543098720451044205411517824156673777741830542824696756591150955913185192884430821864576685512300288091193496026078471576802656669838880527371669524113162819130822071937336831685878829797450233158224729814417083225898660473904722927591088766506942120432608059128302131797942796869849337853591578970142256111197157214821788466963917052287140259193173439987478885063062401017935460471206750711240814890322375529225377708298030235820219444601161569316361796685471244452052742217601235129363788441036908520427248900214519183370007296179650026356900370801547970359397740960646216543387761785809281367370070352921591382907488144345523861601074333137071128294563810980471620401216802463382925617073437519426592506983464876312174281608347780039600208573398990443196478347044965942090527614392548572158108536918504520310390790331575342491012811746207854934666796094815536327273859688810752175393800335774423882690459260828197384839094001068138584122506961210864168558841672672630588103145076537674754020909325062813886928419843541084967414239901085011420640082635947673410238121094795418398548270129117434423526326141432637423284336249018098935468704897116932700507305608917424535985938100191528226784993023065627630320808237851174073226983570260587383919786803312643035524602503766705536620245520717319986676145876706949349114979265632871796537089186995043170964454618145707383492407417136563733531937147768477344355199222140770612495034651630952845688017705795980681016604060724381650039756989837853147485255565711545816709764518270365818111939319275482508769782806964834346463945780281132552328698311576899792784667448730031789058427224586364844568437517410646932546353125148150314522508649864669478409926762152851180722891359930336525648724071366188304934857160860290344654503714323715657872418381501391734005117468248255038006671033392085058702641033454668975741509359911041673057932369019423735450304032741915983237899353765431875962159412712403765869401713487312645559778681510605373966106813521522890007636562721142665902518829121442693955273370092995024183287374892520474528691585357218522286420233994024463592628409357870785134199456634564038922269575174554095009559959367250937892165711617126758102407249715183486906462085447453728857632397947479391611462009013940681587816189879278076326962273218413125023800870409293184849827737610367558921358280817480142276128574519174789226387801820511687711179785276910529202933551487231787743217921288349157068990012520508199495762071365604834780735462324241032365156028918311533366386273882221499501020747576117571232057848245361882610131826207026199962824358769969761408152634918492120483855214556037645390713477622859664995997163129715628183641576773039890415550291559166294990334172870520493054168650508263446490777577093532932685110514703964499376160799831622973763117117362135932281346224958075949037275034703065453824717141161843347432766149513138309751156496811520351587353860964532050217816288106673259409869031283960877487347891992444583737352156032342901571144140703861839151703489403615497411191406986975179414939802509259616866965192678303675733552452654028347753865889590518340622944498436410378294588770275530373451447857864544136276683290237782307421244572689396756074738115557210135767453542412364571609096617142823156555294813082861652726649423047060746283322225919504919951146359611040713723572779007864662710826240391183911257564167845214578200795999025424975258701833771067297548359022981061154246172891098732385959285600939377367276764350459968327205328954795610978653980516686047937095093356265140393063180088748971982482054228735057415504639240934147817086745273955000154668746987754467627653706171622743986491702912496370623141466942359287721162638836719547088803555043959030981284636802362973698655942279788575198711725449181317404630464214638037255447172721465381490787891965896626412743643681914781394494330469830583527819774920669560368569975184439727068332550605383693764269100380825816540865172299910111201945478060408467263545085116581887212788546331672357264247837970345659286630259031596043424547341828600229548130693964583517735145078178796162437675083722174239136006514736119593895829339183015882022899513745708987971609242556647183885979364140968741411587709937530982768887653091826829490763756074343071578955634643240090210297507863653667672019955695869318331152677389482364496483760233529353787807900028563985920117894155919841935635782802913274220972397418217864211679693543626540411054223478858507418822868849832046063427020919026066038760038297549454698757796945257421378052952699031385402303902510020669285779883445607509410504230872862908740830085026144018228129510687615607360368063522644947932621855677627892629772055463634449318482322007642629944186291831425181060185825993413487567916870060396426766705350110443017799506900203393372737899315275701060757242051799071184429776542403700221827124585381569871114231600891481941631942381559761749590860088101374742858276172162511982465564255907912299610581725408894961964643620082099900261978634166543168921561381300597887715680664835019129944979784369935209733618839495676692553323587415198713097980175454127776138778038730543492254787146326883667332205890882573286881389851160549963278237823499219624904966700632277794937527644406329284555375290084485858277099571400862755134052186635008113373789272295227487960743223672083280056055322413642940621358253056398197387573223263136988126774474650593450454361626985880990304263794388407185139722244639592865585219939422689487548930137432204285059144629610244297504550489039588468225661538349043446804980867774204873401537337209384733030053057428977016215203709355570789179885698522350411444306725762269227409830273398744233874953796232678727309323316980632136236862911196644139664841493850838725266508307521858167032645498891401367528976309865195226369028810951170565870271149328634978848147583849957911558381927129041949297598401785227116007525877425438414360973930424906712615560041901411867075944563332397419613547957790799531560236492355546766887027826390291127942484756750646453334279452460756390585063700566631867538558488200739277237060822288530914787215751020462426549197055588886661551764315630057098085704181219834870650894593535030046917773509601712097009434556797275422990136438461333450040203181657581362582368250928829727003041614980913135943881479289715589893099981925061112675103283830767440047831570265244647316388886238377037237940834845360212221013369650746652967934141737578666341768915852545957182506223648387982645868837593681030311962333718905935882933335398858654137686156136914118661468256437119876760136128298215713984034499049261933406212835658685968252414332915619785803684004016685989366887731774809607940615598243341984536005328892371498619501516584414042078023016085117679144545763955034080193728993693765495242965452819633126250029558771217386428876898422456321249591992797464404886592460290482194517228998687223199254929610617271598159799319121915663635571065714817610114528694286579660850765526768683312316027402853472057555069499764395537257311327110762236057167576313970610736112432078757489129933014063631335510910493646143264742424360686312864183251013237150449462289039212758733283201313712175931637582657559978962880601101177250752013737386854918552630857422107111508630172297327056064544177055207830134343529874860448693370591008546578503542439505442330286171457425404412844427350684896879210979144598398482682992067543621696356927123981142244131011999105967365493727939783354072391342916816218378653000739350254011003783364460133161759324917760500128262645996897781695587306417685198451483942388220354838969557976607640827485555771549250973098815174607355776456554496209479314227490280976857950487265037846494655006741471799630659248964779951475362264446400885145466624243016137926416025281742190917348119053662773094128564147987721467222092122275319313804995582172082134743729342989683820695690642032902389183242962305517161270224481256477958300533559870508455439441456644067773123570505449925255217633356070802035344241068934411380963964946386630186012472067190784251660675126301542430880653258564215100493112666519399694661175340496725341994955285809549710975427708019444640315663869914723158534565826302757104140622779759928931297195789824892279296373446354289833531942370656856684369293362338883905479273750737988965776352300882509895412858038884847530388177489660786068204638224079646020164584699466840865430974836899751367430228368971447154036969397632463921209590919143699272065600661472780810324740028283323652499661380340416904482277723243290418944630876364825531391579359045545467869888317477863614061792654245586893961680634178459548713656874003017981711164342357751285237339028451481137492689891151310527368830913100803585028935474043267968631606812185368168967826683481816726385924788009932175792068305526503210277155090992039972654513035735158578439871931739351080070984928596340377336257440823951993817778276394019555317803871735312889223411179272922107919194869906749852987008755565438499612973660786913275593231912587265636945427790210532655582816001448190455726409403303298000803208184134740288617989553767586856781612199316546138717938249860189251824557816956575606471173597673092338861211662093687571536015858567376023177090520842257256748555793913592530899129615276767745702225735120404670849999951275964574703854986778598002815844614189159058996781282603483053588026229436918058342641627255544994094506745313293328615634588311379712677983965555176800430547178162741447920202055971550203053731267751542748971282825359623294698353280394664195636162833874379165126165290131982228336275103606436863949987851439720008134424858959213441324782111190304660271371645111949372995027122096656819989968056027708483627985649967573413646097732115195125586463465232431351360953321012587145321968095377060059657781599470909734486510651778878196516064055136499645172678999927865994688358299318925757225284907433116367093237983792957296579507988344458950970310819361422242560506022211296126688223372892415334359464246862932752787580143381920119997332073126240179875064508753194223580099668943218187838565817852948642774281447639537252460115576363886398430991437557491486198640672738253157781964440758026709885164510079046934051878149869171363778061660039631580352898088573293225196380589464885603914710130459035113512016417808174749744940782749766491003521979023625729444787483370757906143219282450803828963647461688894075760324275701940038948819551709442540604994324735196828520042687193581628585128621047025440704501107666717819115367210250232002264848850005903569343968953986118777282697736306336191458804098620727381391903623837305906744317264853254145575437677078594192657514982883323423695985082311111554083255020516501770912674742330755655557792464375379696408041481903434797026833724456660218599942954598764424961311529340256616067139802863798823572623604646015894001699618180851213140777323695097625996442668590683366073773112472114403627471976003605368650252888207376281715089979748582728974935412143284565699276373764901498248574397712743569024557843933775777880433449471232668985105117861859774872603924351518081728900592181746238585910595520784444233041239270177913801080501801331617388431738161088129752379018831454792205607408338696473114898483846600233506935063763350274080080757673115951382979613077767550243327708904721941573889385954437750788414356067568844757383874449831434180189439365378811843383454911779989024817158962484582785521033786177022680364723260558562394332072398602415710704951024144349975431545508215863715070774002174157782679445657208710902108698494851231484524660301685886440809711432238499996040668294184451811615831473545469075737704317966747570709329280094138520605911377797464907817804584175687598824854402214216380175657907387031140890757373463752607592569693885549201919109988792561610540806480831521496035646064227064461317792290349708613334364201132932606906096022136892648396826919247531170961833196935356134383458658754364789571861402661418470026539555948075033741772531394789725803625387642348215110645758755707129046018814298929933750790873099881072021581367833425106126717746928184426888273041230945673117389675495264914574282757670553648155607464388867291027592410775966790591169795607473079945461429838605719032860526944475005266656740837597646263582466525317219552076175496806863205470457013421654488542981527275462107160484582106073799290381022576010459837951538029907593716355066553747908296502819207882785064259300474531134276876010000009794210653882321552596529412549664749563496307697030782425305450747366463707402878217568710659562013108842573663635357606821215194413242496981642300621433376196052949441300989522528988949120647471493040614093696263926963414798065255266353953510001872958461780024029675809835067049528713347883361526020774611832364796814989184893601252311716301199428294307259497655570384471588707288831682364126297401116806260692577321185436588545079537196587800331558358519638523240317055885852404044152143694792304552312162234439492889573796631488387967673783998738665846185048776289789647314184794540603433187152899014582376515156222549389531785312075632201119282135308228697593630665216439177464477009585002727313499712995732309282168315177050200806119626876534777731536506743552798035387194007603017340279481587819543041309738280781572250199280215609187302096273879454976763884330444260284723068011756185477048205544337967988810359932909214862727885393028917362013143488420176663555564345773297220005204486239248528485546109943380103114346673075817923601737717924510092430185288894165244083283004234898918309895476238749682379850248814593257288506228248960651048502278258124640687394319041274108967402180453566459872328391954817978748044779975898597492122067798995871468606741399128634167061983694833408976497340361542409656104344304364409760151568850019812927884736583966489796670522321105402279660447462903685876525697679037558212087544821848361700767986961049221261737629320630942087189626338100888582911915134577757984776775460521263809962754692810509140804421586205215409213910365437056230487781608215604694136682465698272633690534082087725615121634986770254365491292500991200680311974810070862195998973048317444179622737136970768019549953471788422874244668737939653758309543905262845899415724910654367387293891780970507911624134717115828294956293977210821176650233378046277498726688253019277580074943650310105410499112178988797804868931497312887689416832077126290092312219191107055462716943442778362862982019728420635852241895644203180331376472384651894345593403125857913456373830847869965505219550775309306994238027936275010966304688703842377451821140014927451958489039094026826021905084484441078030048057188968888448530791307048372710561273111531835428160629326719372172171145104365085122751708125331274413106777425361662370226300430130798777262682823179577681731493084697734623663335847503930195719120200321692755716414815905939631547171041829287842910193917753894967212698918134730839695917027620809111845473680320124861575546713304282894548318941654736886846682300943583573197253084841297625941898613641527769077475917700962783964366847089911845585602194842515250943343107449169328496543531513911054217566298389933813461516001127074194584706968485382804210353555765054189953148557814827163207234053879161131621961571179319962926284872614453523311936518817912018637423240284386174878502256599711394247251047307536846355048010270907953282009258340529217946923386903843338892910725490441792120559699846691291956610772032666944865354746515085309818392246462341479702351071152261128408533447912985915353659505288241992867921592592807831677042798305201254531248185043057840583219024627540940685870396747180420246988028090151703738673463542209121524496645598209413306914167145013697838427086320525326636841542078989675151567964692233955687188238081859131572484640076425529751648864435462934397438941672087225058844096941932604153351101529988196109865145204484114537741153115006550026302307177460578488861824568871221773579181035175262895768806942880005172674613396169083477132312887067753196033743642487159009277838064342878457269414166388226450026516793610450566581443749501553095070261119353494651194757632944340945029868095133413045768358730926510876144288572713736407339796237079120967705166827288536613015747425765580148220557659753775746514311430595380419807336439637907960112801606359840200937569831579853503672993127270656403194745190466849890120390650859730500831406282845836496750304310945475999902104515901148710824946290741704116175330310228745963469935087572665695809791550628764537162263902644680981434971130577915417070888942492971535730782697014672210728721838147166418579099666275118282408597954513162506821224957467267919989235919019833733511174034872040653918939418941032201193318702092133730626465677778817007470401639154841412074404322355025697391692824646876061742194319320183808814341395447623969058799969581626939343922640946929226196015657051332634405427782939800038718403475583751969608669113172642206203922796638314864474743118423806162933353808991010997294055429922219175606575961782045740347549160445958063671853353837142260182534400804976417934233527965035424835500707214517454237221977515100787799629514182548125497521137872523023645878270683482682098687307952863071960885339094661956113093430358446361168006626753715963686734353104119294493485613638516321999685345740420500140905099724065807283534546582765662170376280133266510712049897932013164948910441211267683401454031595256766695348861079556084432226692270640041766965823452403360064128586447546033742319238712052200457213693661112958366599425580525688384859507123306023749927835878710464871541436640543708071988766194938930095845458964529657880596351683915215252740960635605250875029233859414322051096302823196992717189354651307993432183828888362620382502404664422890219667603057396705589529959154391631092090793457274637514455794283720290324887467767651875289269005325568433194217286714519514104341369604744356759000341805692844784049060947458916555183358178617510098270642571837968125512432451951626453748164813035600305914087807356198855851903613861576250544290338085759994420647529731994206754637264728180212688522319100081876713267277451614478566861704002065867892878917822721588041587536872715910573792525539414587751122588112838016973292408021581306000851544213724474441769548368130686080739333084610631828541339389115384955739478551708563032772956466003574446791226384865074429019068852289701022031025928433862719079279908528113738277998264823580055479022479162471524460178686419696573764729260743076884406698810447563584102163420139239585006636742598180956138249890972220148010879521939083903490970979313516544410407182416506176950243826226406407398931398209180386393310107873881905868975291340337399386184327603100740584193303016670919771900418287255544793018339300972091519403044584164387956591368493060200242257783822530577474068448008393591362857950012918874351617905495269930537195178618712916493823689617993860494800528449413868327170861892569747929810522122752264580223344124181790497673148349684160998995238309545155698339915142054934174685814479011856332422156056731585666787026598370757400859377053057875422829133453378892782726376111198785259676703026916511241985075884999998520072543743628776772458700916758090204428838758918764978936147388210024958870616823866267204314303962180913441692388147386835595351912265602948411353714675925448480409702038525788887089200810058013420061961268723120683720943910769122802565569542062459413836465599131378507393215917882750178534666760032966550581882731133610283953073446550394953220031511201459439049574954785736127753394592076009532532144169799880795334663728943855855820875453011954846661681789420218454439243198272397472796269711954671713891561398572451144089578415031498016472458261690128991282169580717747090324605394564660522974882178270340826667681844650123278570809890295710889223114381634949207167960169140955342194826067586139253709636305737617484889462980418599821197455747888786050191308683618817367111516597291503738267185824523691456330806788653495581828000697056251735420514052911747104052192642560574122280273494486582490258570383617471633995733464233010628170648546616639397387335467742378443643713584804294089320974663909384623081823378924826987833526210166135737656529639934457910644927915155676390656863668344039256995335725074688862037058995264653215940178626323871426921663646311042177239593605162224990598993478989426615248010760353765024473560257379701258357480339929749582445592120460270650104212151478985364129236960021934065074578174729831472127512351228238528861168145926260250026647790622925011009197778316519037413724523088050134822577729483333141949282925989056878299977753960801969622006725823096203661669928268510211089171870051096781183864803185213411849330535213367678066712271975108061547138753289231787957325716868618096606052932645208476137124680945987160314890802000680655788209445429208710544437090655760352673264209142358421820718250981865915654243233166524292347438767730645150407463815240324264511130109298247372758694400655906238506977160081132848683357828599106030035712706711793561556286457736541389672861653467368212229735360022072831829909797816962514197338991287077695708777997166408178293149711489870507059411769164095415505339614475818924903580420127524576323727092301090090099237327151913201970716407754652797930083352117094802897662358373307907399803932112956150503163186241381838548180099226963782616339487527381819207380084090548172039645527894615951521758844903366795160306872899539612297563268073693590736332000719273658064877628808690391075657597755646930324932694412246338752475342205481316164257752381515498041298016804912093241495561599733475737303120625703058457883098141213377507112545859297917094019833259528704372568758613688267961154120328376478558330648519543844383713400958204019194177848136105204812650612207884244881059091730435514910171654932693851994407733991031251259682303534810335403016290920102232740998196738899923212716569578531556366176553810319556150943007873948697427118974040033474126222388499328608134380901497243805362637883585502649923552240787382245827556933571446950233302451059966766290616608403974646032317427498563070293307830457786716824527679020538055255834352260629651291383830990478453764682972174741719722967571686906463362828166079921010471816038550262672692408976898170853922537269107556116038265682954992210281877275923870649716583385278598041688471775121773299405698491973128269790528673363301567375414644783474292015446087692933594244528356749553639490377938338001211148103973415346160636212383204854471214206483002201779666311573411452964627041864381475897509623406534065665793333993016429169329555266146427658745003205772776389531295229554885592304083784923017823959959739693208781888530144948379472926470290046057595750483894777273828484781917957105953047780617884296534066576192588247381276126343479175806440091319471945059415380384407344360970726444889835164481006529644797482347124327021441590080962453015474954036313483618419111237578312965585387022265339131605239565829422815796668763744400208547155635416973895812877088461657699578110692939317883907909799602920353870041672842679688328766297799447482019715568561277966204304794917184818512531700415377569808711579935600073166095607308000734855117036594165830506672726955128660586584785858703337413409026047920248182858843569481781759044224499518581286207457042595046162436006100823756725871295389919546675868329448020309734898871772536752120886203777192000717288727798433117539310289757528620165513138328340619176107279059176538858574095807883644495890712407752542859008578075318350805682199265689221738810837257888168689311734840953178595564053018860998195066381684020120453785795196892124379485160543399214890895133345016992903442091738210191052528623302030476791863774594308812728762707856647705558671988751155423781611647244142370676926152690510971048626942022976723469812705041924873440457978210383124799904868769757975808968064024632347180013808671889281881523715868181441533297504070656306663976736037604149909509589863432565197789064321052161262917568389749963826092160579110904936462261332925753385706460308704237482409192469236202353982949528981024857356020238904476099310718916800347832569329838877957710433852841886000360756963395284420664931824746794246821051372757790691147192885729466614383686654548245827263909927417944181149938202092702213244434827008972257282792922750977849323917370814824473371546139779991567732231808810430956266312262423033488711754229177460192137275532093303786023866590712255669081278438183779730889647977644499865420430401277578550002972952361497136408226013631651904628771755006015734613663131709589526420062577907204686834826999715007650427812480665558422742630379201239859476287159045433888094728626178876259836933329632668192363251638521444028325272714978124848175082216672185323229661408189591595568826993928513430723438373713041889119074537743769984439010213438651089719548135879990348553630245817441779882586266504601282539440068242985481512738462696710116234905545531674110814996773260476405217621047373120985926020435173422676988394844530167191343455770252273220544203056348496897477856322033509814070973739029084522205160800553592822902612545334731044781193778490401517498552626938380599048191124385909209829116101218702220353507622274784118877746370911964231307288351917504555120795952843756870818289622357365731760987670003775949801732472434520653894315047095111077864897268631823896862384398960468117498908267463126643341999370303164019430389832896504050561611884639437123657724159962705524505620984441489360405407067458276813327473360230557338557438120228054601778438277791562898293660893516389669397778577011266608646747658734552521607230024197747574967861675292807868863162471704663587648676224154134724481557892907168113430823061114224814886960840270534031136783232050785904477975456419622798434212386287400487122988999932370368548152459910019668852192391835681504508334128294610935900417552044712635874195859108353482456258973737877159135335059852459702204276365515388465614110015169393313212953978377380368417132321027645616658718955979339112177724538704781713137143992127361333017980776507981163299117152983634760329907535767116915939799212086810637311035591785696342957251194788333251716905172317250737864134006081834640318764611698408622290379956054310165212507677270677115825225982340366153647108213501007691391050252351377145555871443606969424416991786461186992058544336181155099918381371623203787350972511620656087537819941129992041076331682172798873801034594377179656863580971452825822599133049836408867185657579461696753243231937642048100816903861732794957843138484099501657198039479203191453678955318690547797428513114983389241381788073092817884655515251534648468212538313508896173546541694655752435429787036307681661065863578566234903225529417517531984900267422511653907472143181145059754323272723387389217732820283716342375233115708642033656443579968486831465743717609096496177986451760179089635473850770612297831113099731649645091077901547151448021238615652343719697712092838578524522854702221181696570266839908920851790850016827246639306770387942947593240132883909596268309016334410162915285063367987755794299167318417979960447296693909715536514304836634225157204714144622116136084481410515704067241516836542309244308808395365786005531915083740393269957621633092200746431293982230551607166983149698392507113644400884742191115619326858081469291825971319835615852015456261498319187215812843630071842125771834192103986548737163320067193811366575943736794599611408832887858114204713274166406703439065218589355846368937089048081730337612698090434245930466896571721967401181083896847188413180620865076115976105784560997444451647389424031989677632888966792656853745503201743230115541021791640173572201249517104966910996338185647263401786310242083575664873898508609172719923798667462914318636651648526241239890555434458008792712855833620113031464892997673665828035029697110648735755933524467678064416501533933446943172796395118384227494480790089016559080678098083928059719307456840217096139868549965567988648511009025424641845263533449378050752663922301087624160988517785308835719592847477480666097082358171921540406233791578567231579105523737614150462667510447933859376921521356485299786342691107092353880797979531851212844129769059136678504954726030218216112149974135505129657774851704250371604050693781477402755243940115854435189753896287504467157284300775788598328284349573592937293169719096522307145147180623853678990787686672099351933314058156472259271086357677722863511281179560442091309065207882166660669874326862523705057891306466380074047591258201255748522366276334802866300552434343210009952599165369196760257961343186231336510319103918739063938690963520246848959802848439596979086682524076483953841480420785207445135696695031013799348620584815854376216340134609390087630395777088986260144931119386854404964233448085078757850785168380458409956093950863436394122343045061010315422419952693736416515223049388835015851533020696895934422477787495648664653461955372863788027252410036075521584965916239940236422157593331364892471577771586692564038087767885196676959684276342453469147253322777906149896094762814317129955649313671515138311530309476799187833498874469603454598200318257174529540712461746446040197252938471697999301896878294898176877553643115215875719732098802839595660739924957675411163106050866409968941938692837141009453736543183033672301752113174754823247812962165755519356753067517824130118426124737387518140180706186018386911138930066117554332743300299489601795198710784494495103667253693752182193502015061224628895368149229165118965430032243557997915944950884534543955816765979075262219446685090158235983742742135038222060302735152423599545945417314004100414962423825174273554491267631367342868546124854778970156581847693783827690776992185972167364706274178130483741271109601570092908183043332892199302904471372159655614239702234661056485612460386176537081478569566224692334933380500279700609154143973229967494466177892707069674587865817356329946737341312251661936012255910020491423670196682941868789223607081315760203185036288523648159652095795217914396931883813554729047406959832488185106366660538449889040591320051400786934012825714344053238779654319298221509124140035439823591605811095360524112490219832203288340506248687925882571050549938763949470989249184402067808310223728643304346985195729153664831512348272289429053536862089363381455991123839808911739189221744560334632613527517230962717169377380267822982916430901626087532014179128388665342857401983247198308769305744650539176792269434977400913667468868195978971753778336258368920096783621714352009901072477911489944546180449882251300854591526856267887459793972528579217541959950553439411304268866080466984202341046537865025514150800824021031834919342217344789622043277876728509327014732146229984125372393917059409198090052597487770869858560680554762442065530372990409278459183729807297492742447877068276919263740093246061484537735457830164601979367712031697778607720784876788381552972242392880972729551388635210468190339915272703803651694340397649264781252523039588800515127089532427932195015025724112669666584960979742915359828035886184392736476339575960747644108097087979024181170111797547115696749151938000328513027848441802242573659849104808060867404722780148523772363458602909474829497133891070704140551502505454564445397150282000037770916125094604336635958625308323416340114537830918291949230285801191474505009794206360237478913582494157640215443074280937554118304701654836286349772861917171037126853876612218080377287120249280781612383733072725177190526954314143654736017132397465616422174576722047039446734145532165968071761546732234703191186064722041553816373846959186703367116863712511089113204316189490839262413395065935404358954532026472002893874998334664619687817704813847155152521409316661480035887829862485420086023705380077164365220641159419402952933675441737489013229525070333573687142016918860384731059520575809288050472259823233100396710589068098968635379939761073863137960069355075184449331227453300969808236063808659187328920769173884279536288851199702188498279557727348942318352620183770645640115304171700455164831180864160307172835368692803858266914815740970827023655499512300507286547831376254101872185616604041755517182610405918052681060554858521816943878684103979550353438647484550507793643305666449585264469289065302308396756103202571188063207394301496788198190480950766306031413081760123276715206496960453116386458875245839737708863454208861519022641346359498298439399423563445189571641587545282731431328544766895890005438530573547509552246180722279174322444658955288331161846558148733504010649494780939156325834330993427455365564530881785035285735664092104514404195377193065824806212574397557533116568249676748488708393692065568981552006844412090822949998833047264823835756887882456204457496969337431361468360213603028233382220834478541693714611274874376408731324960007213680234726597563538837065400024266270020414667495268178442128808133710637010030273585881991220096064662811646315158451466001343962572113289962267951597392569497978833890946866277868424703864923926888605742328371354505400207279075853130522863020001806467812178471678327280221062854546535951646099944423422431439802910712959408133400096928935331894983679137355754031890510438015909470471938076685758678524875044233047847060117532341305266484429889390845308758902291961821028579471558343154305336846564463574244427913858787583679091178369855107958150390599292209597261050233367306625277532316895038351338335339908081040598274156092064063493984987741104533406613139337360756282938537134946731269629710973975868352460323808242832956465482697412314256664210135638406582199124532724732926481091525374049653439724964192172781835901690562185099307681665150050833129740737550178908384338381344935382399623401255152438557735736210139416511088615502372416907600499960000666558136425225652807954805264352193433212529985080580574247607362979118934872763927166472527393671073623372478237322358414467351482231065237396654484285162578041220032848576318817295032860799109994265347953640022333473161860823937274353911349676828879688026180742533161289080564255656472711174176348049297993035060666675810988506507944771250806168512252927458136340402890150564290201698660358763795177685032547638000889892217396661905851555451598415593813371210996842321054815875870384591307690729657576400443278648994589212245898842454803863113047211655450029438229739031661522786646783187884794265233758408831555046376594568565536496193140070851095858031442173374899898764136290020206440401903810671231223385775749409686030731516609123223641972686478481825164212059665220276212111845897455577670219152438371037135964477254267891640145339318842300905732177598924413096178524765506843618423118144112793353286967916540917665384946781085353983034862546289684123094509462409820533180231572165026829819263476133548633221475841183076182758123178230737160285709252237002967040987630898901526053150375607401118836562607472032852152842210787983682626471359449400015304673210992406639576856421718604521721854252085226018747700765100718337843534826693930224578950422563733125002897849659740785948364660319477202197738107256191981577758338192153605859472639789849805735628904337268269690280113939816020652082796012127913566474290972773023710971472346991280765042948374684901461932767592801918721739105488191579120123068189539677154661480661527501138162855329295335419489224973747127958062040630131001199567312608665298278384373601883336244410720599579018569024737988422732876595415728502197609131656766962164413715263431144654713857753490907589134138085446603057322048459771881713108064628158479443788191992820283232589890500908345537225040433904367904841788788401052177718701838803024532443987341228357976530393671690951595931533815409902559711646541488507797541573063045994586762632282222834012359805691166098214377097058070683541072141695861983772225195816457688118510334411487236819406092812378775361648588334684675699734965530195330740111372414440289127300424892646904691730687130910949145066454908172408128338036257190969283650829110537688050907943874498645765483748571942198970674319317303101295634987816281791535573839180710260329522988013735738778909819043141010671629848569532060006878736185816886986818737723857967001352654090120895856449353185622659471200469236145609781557358351513788838201419260994752584593863965428918932271957653713702160270602774402164271719009936641180193937308384709605615385666712560600921166356085673349174412957567135090625482832819815088958856213269143921892319304045832166619905313747692682701243308146882119241101796286149921606584249572981023701490503489403460662124471432456458985291395224705533894439416110874091944594357049481949076012015759779378084356950261781742821448765650053701368252744986998453140899161883624647808046328887577862747371643508991431833722873218127165683268141879749871039323156590892063540150985862440571940523603996959203751888577975007694236232389862914704828105920676295537255197037284009153772063997012394560796462909006157671813371486240940970883349241915585492798000565161971823616768840743697708664587353798623195009498126418945564806793230783313895913517937225149320204079096160608427218964125720776430927211025476304871477804865843859169873468500967693609403744973242481509421899159827725957275815641687172647770651372286893838537610891912700572384369007682082758291565955409284623410069489393522886616690954130203623486459378672613199054197756706066466897634725008041963435999638706428970519430808141530629200458229558812637355077391855358233292774289268808737874462408179830094809767287133245984295938766592244484649569407636077296005406057552144052437913521375251957275328108017433471139107017336974680755149190562909710135299385885281676759007072730017245290595698410622708564005438873164633949387640184545861859749016921374030410727922001500931648656489290592055235339896198337760991147519299871924475145292639669789495098722070066990280722423271920381008606440150103017759399935424152515133116813273999296602881645519529003380506864351531531280004105663393588681106867353334951188199378775396272944793813990242764691633834430485590933279561334173095724254445336406785677121149983463861482984306497411964951281947458740335143849873897628429998526404570310594147531430400838322339630470350383267994293110973155613425778913176045775150401081779969879875766832763534127517193289362165524719227795750595890582014384946471500299941355860848214582304387941185999762657917537364076212346161702151438330543741088229192237786112668489490504128107124937434435194430932340946639630218137105105043836418319295819631305129872189842940580978455860653810173091788389939674238117949265652228024935784191719099115029200966052195555313539621499018862352387075430981919656053321423370021781823686950218989786428597217707771025275192021498204647960045072948586030689910542056765740612953019696701666587406756374968779283393831495259340978127732024304025394829529945677262020979204699967872031551976479311592539417503172979394259715238517483122448219218892247780194334678947437273822349910594080074448561862641828771304176977934542248944323644044619493659492380854871127305254163129739604040703283862101774711174422082209619876670798376736222999792427003771974182558655023999198052757454632430630923306418386491885895838371984433395999087722663148172413902969880847692913162836150799573968574068712125266034405265887744560401149941906885560336124555970186419736187744166109572275257288295148654852408912179624942890977513924352013728674256269424168056788475510497722382231207382291315706052037807839792075808686940120522385916736714685499672670457547212134907725439348013776580044827879955332721458352546135160742448927297064594611636319287587609591089811174143100576566143669568273336328506066744861770543684930318799993639015045648998556079804766401486020974210262462043738379166401148669034653196540521050595985999473355247406214320456479179396030849519446290156489988057393075966843482137923571556048547250690705629177744508174523564729575235396716246229996747566771674589670988888470963578558998580211357506082984931312421964479624532111764420700368125721255317280756935817269151408634339235237130250385078335337985081731980660279303311914451923947178123089042496382077685507496463935472399490274729687532446459337573686760229955048525058464904335131187885036325288476378144178487911979009830022081844676887707912236548054007630079792887302899629825423378102205819693452713477791483021687797524333715183565596156303229363023092006227208798868147048163784542438161946232065133898343573430550167350937674111410419057002947353557555839125525680780494967955924252794468564681218970147028270717786569054457455376248680848544649843663065528199480292974391511582389015329031298077556367341518755256582594210489885450799765571743898005095530859569820473320595019515272729885250645388351571500805547691794713955220853464355372814403494345783265361542060035299246424700554697436384980642071277681259838965967261178797058200608850208639744340263719681151905530151564325669819589339368392000602471580595091227088445476991779653303705735325743932416491074440608420763257748636786040028118738963513168845405334795842679266569289417492624495651729244352358942970763449807909461076186651061979356464005784636170729522416602977077479543975728766174361381382467810076299359688696777096462578856422122435394953024072923971716124628503099180031024013940283645150480260603630901684945380313071583542001441459087255670415896373472097816600085882952685753106606515435693723637270634111543737626928921378675122855345765179886434696167843190179416375359793073812801290715947857559153343966893629346337385487584896213247385646407299628895484695255327822215097691001977490990568633631465319033666937781754737299151880772354974187952353445330555674850040335233136052386016310872254517613335744728105503043904107156266815652337938048059745058702103519102600397148555029657346075109946943394006337649851601318259135940521398991143988035755478177036831086598001409469787494878257282161346440167201095914877372448481096551004968925697199751489459273046783555265310948544995254645045427391417390048471348803890632297239655237771542641894889070147253727932987323753375701976937432862045601202569178934376130566948524571638297677099974404254304979826379149314626599332132973422262470891618464435608917558201492251454034956366794182786593730605384242206033821892797185957687148948272234279838708234597574320556198735861103879631611145577484415970797214373775416274774883670753875798377067416548436752481904258359296193956388051292234493596852934749911987321678854385699365464618287629194711144369021584840131309792867520602296582469235814500325358907145244396268447606135731150380209985832270180769221761502042021874630867175620065956824746121924584856126414950738531374105582694048422481259542172273019727657330938617306784087318715117190115860657873381931618340844159196230700345774604148698545237064969834910503188062333529913989765319622464870775860570103873589092016370404346441658501696909124515188532959061739056431073431121175955127124895967861171664858217405434930305091035468042523275296296499078692659326234577193208999464730676602130081093656559593161453644838828308022248888575399132511938271679701572460248798608938664604110589376740416107477832684958520263018067251333538401166381079537519149629385634089560906843208139395431658108441851510085520702112190392177522773953608329035925861796845449707309520917674793024909585041673133675552210816976742929496944250863794920412961253186860065861663351845360752170795980798820335215651595595366363957714892552452913148471811928000495531328066996207550654011748568366346330559455833820464116046355132883066361449702695753436701022323251682697187352211454398336201734757387641912423078267170293281433514460918859622645221658027358300421707311184008311493807038984714719610736642174739597520369910371640517601731010844730485294032154343324619840448241033667653063542629983751550342595325405479796940442591301004285549196011371715747616442392862034964230407365742538310848391655856097433216232775864674516344127296386745884205312522171225390395497627005612321253365102510208146584222411091488534907380847581076330710886624227111281912512346387476736596609938075225378169325803900464994250157889677660822061526652486291985040759260920983030263129990533510789222872416378120330172201593364252542538863560630487999340131337676468059130625774196762398036782615401811951891921146007545902210787759644480963613720570748041757706864987635748173457305827964089777534428487139148155125175793746449786908268738790085455179356459722313944489391934581200513313105777976605301940283422700064969029820537192789266447083497439379016296949997686795124430317261489893078614302228980145219381363921095517270506910519746881959056877066821321387301527530399180043485848107065354910834229647429028773534001532935004929885397198359843524503972050909574424227338317848258965532128287095771710960403571093686811549030602039381227762052227229169899777151641673851961183577171182500395764821649258784278802056651608865001803647822621594790260225812874888870705715433035675890694950100968884510583427349798833091345725692762375300415629569216722616298949088498723497023675170585610284339946394278053990574371514437890860726600932100530872468039647072787072145417439643552337399559302384966956902824584602306676311592110029517602637932985933990323096914663312481028122008701979800195255823913975081791419231630378425599473933399440488932740749634243512705203756938731430213576788117630897742937668891061823896994332170655901258961227200284962265315691990358544521080820024638043545398424608006490542112745968412737975487378758883596589801848705489848726443412179744740827962651989429583631426006271197334344478617375020345346493933929839766724379219726715243048437821342281126684563526484071814562095858940780969276029981194105398722421761123577770634248920588677261924981906739399251948241223598680194343691418763150294494517935267743935501575235602654746326673841692568794098947937372034427007321518517563756903292696636338441110551819237906133795668554986915840873257549078149722693136735907336535949997148356294633217964799792862183653722620506354130820144752241916583245814984274576102062942260852065619310187167175003377822875975769250106088886084408583254855191397359517185149399188019543875669196037409174954537140687732034944937662304724668902001063006836897858276573160703876641518382511040782976834229974691536507847209632400640594364870641693522035894719097980071063406900917796470984885358571193529403623090683345174403088317199461155836217745491902939539248910514500043045531344090527543559549507776998987714493680258827575506883797749938782813398199910196100049906568528246434645789890713085634396834278694615854944179760404280930028250823713498838800860737616168827340531256224953356322555619211375001838901601085132482665949825304481696441950849487269662661358321505842297778033058035025420476595525674598184885341189196736487964241354714969946246853364754850795415866948782453578393857407279464095001574924472795613056693866281100724295369021047904910511312477711769173830057322327338001319365352710582822388324406837404438088792246524382936751878535623549975298635039535573394634595118093942100172646541404342017285463598419431782645626578876626351262354333724805435780914766514897316658242698294957505409105402183532612392584653129249052605410429469559760535375725474542023300579178303422985586628273919685723644638568853820864984488766167966680382292173829012922419023595850830183723292719958964910328876742109979207233545924870940162119478093393070356529247155047690329163315252699556131457232109620073427302247633785890414391300852901740118411211417960754676754214089582136693688154193438268184144667920679590206329415154984625519913921684001040806758475889320703118532338037049955528846343379596129014600579264677342710037599718598612404061708664733145538412557660425455331128255378565162719812526112377803526405367032466381642221507534350758237969687753213457343178752249683647053869989486439700111975003688347446548242362836821906272582152145002215165022680056969446498407035813024268348028697089954339458073924703862290233583356846458177281948549706877328065087099897785347701897425869872094427553024138208134889268861039514466089766930589382323329230996423579065183609465982354789363505329872009034203716315265682893130334403998733787803414136117998887973161510687237968877554423785447223071951873050324557999912495409183840573687235989493105262403577301914316934296494292866311977519744013952496659983108591030196589189094999596300709211130412286422386775010790792158341322829990819026814244472076536004205466787766265139572910446489794288484616350844161752745520716867417842236193231303689333894181266521188133816635848164563649210708589349019659244512087842464701449583382592159851181670900701223618844206676824717065497301837811849172020902625434402776118307799434822970257084487512923983256578342529549695116381804178332291948528173946204473819661556659329320190238962829631282087858639532050431868231997429869658104647295122160017238109036545823102180076219779645345851607544532334493563588764302097279296092673586972811614799488597400716306168682547992951577657892949795352562053713005806970759265813082292027269765713465555210426364458209670101866143003083272059790970248171634866585400002813358012707272127855476092531715565876739183764612218162381487708804668553706400295280048752253724383685065371603458041430361894491454106379627846035300841697907906638911025758957627830101143624769109193516744461735269162814333758584844142756899375388395540885873624837693126034014301965516398674003531598179155947793984627427140778039149135956255715177424347620750062160869344845806299248850108721103752117741579491808415663312688934143848850085035063612350990000468389939163709581079127079729476906056970406378698624508983968923935632380624582073649620625104502267936860631595718111463073616582886079671570855272745504406099871998812736111231313343847920261683450168113272554395995209196918357799566042429147961722169488031283352275249210165791237633045271200527192556864227725789127447064565162688718519841271983787720848687861354688369231775701842729831780363061880819633296563487563886773667865696026927957585743663650499951652341295980747735019011455989660715080971112479498343103388115461708581580901469303205151184643570131093149997311735978425316804960816489080541636744096791843787978314034627925575604418563478429356537379185619823763353026217625336929349483233927294487023885021860252279914674415716997311351017098687813938628729635157595425116291762425610109546608204930957325398828395936415263884464212800013512911498787338201349305131229717484728237271652490357186124487213783167099654195229749284203286275486105290472012345353896361770126789895602496216365575926302339748730328168837907507561138569414336812496377644941597423795473634490257806489906105349208177299696357590788822906069227270103505566031185436000704008924553588575660130504348789086748318233038859141624965009861494642060775776165954819631409056309002278273202498597806969339631481219539280842219371567177279589373178060002766477769446969841275921053595132102965357128095815336441994898921611644882158289061959866240183534121155863746665537277678819992461446636895548059580665805790040390654654707229187753866320897907907876676245645793308231408075972872092584317223430631625460928417986304267193971714345284525419375637106495448337158882340132442974882383891192926234714125515476865088308685276724413487540290588803459313126734840354593003614672339496790268238311490618961345036423413113517608803838985305163690750074936820521936895885034603658951818994731963847806597331678362835789375368177350709756491092330096622417208987935080300890210443540587244040236638297962830002527181950950877683034010791885668577926186279723278451047266596097114397017741159793678920193099419962635142697022978462220194545635390255312828607277773888761510770829388158633897999472665209215077772486918357613177896624010616224574132222780547114569749952860909976427800563142475138179520687145891827055328649244614649885820416549871240976340774577433065996685798666101546235871682347158547776190424398390750822966595127378829543496830834857845876084322628312576312361156816921895955763618155102813646975975607245341573148303427583839339086917177681630251481331961749674380133383592116013496524473952568745328189234880039845303892591221513288326567233668693575198663462096749717755270644200859607554240217481850681036431401747476643364255780446291394342164934340926839072193814595887392354480693835571553408661002819699474712408224236868798195642936569815154337791992643144127545536011721644922218269806791996540773832903386122078983545386988105724356016261971947289204212024767588538065737785929643936084421131227387117915104310050949817941956099401908848744334412303394068324685361645013593191479821728474495361540587331140914162625481913084278873945070299714092877202959702463259642939649945587970186587690973921271663960003706040743473312700322918104201804748915634590746754320474981665139983595371387843765821667325111985763414759520646828140039037480043325135403298899347628738891224764510684864132462456684579968317025888142059895380983074281095020405887234092378205555388664854906826785270820048740325468159219309278013507826127013725401399610206962480301724418058422399267386165962393903246161271820978340214141503133212581651099561047194082414943414584495529250446284741466275434243318939392652568128212078014082557793854198663029993256997346092002306669987734061556933628240895043163097486032174708983292077688023917591084679159493410708769872615589258865595023678856481345830858335424423758573083150699124684689448295330796179124084104111586542000984122849649703990918130152392412453295307808851056964428249215050192520072703947594590731915037797572940041483740800282435168494671185199101951060669090075386013623977275209922091816787888937198085515584136465546411194155425679336058393014326257720279973059107120605884081353951669603019442495140384647281612202739308142121470812032351988218984232511879830700031222136268211509865829239580751069371561890516512483055678205854806766556773404128926951651091069929475838835658052509172387678438597098640594202883509961646163931334737701533559006472035442497387015398322620038767570116604614708509090853138653546355520412439803307766843719877510782058359924179781604250058186786511001057870561802242513929785660632419089172256057936072635159103489279637201705012270969502835065450233189690228817619647903797373121491435346978735191154253695244514174166110203277603171406374646875762751373515173565972240266748466488922535054398400957819863520868793762515810919010296764736591996334333363384510992671661620016234382580957947891697673517595547983686371797678020017031774141408082129734115763717880624853283647821192666788364441816711588068331279529482939984053595159293382799414517513248460241259770400889866453911584891004129856396097415334571162845089201695229218994093025419401489549493438171683214623388713954113917778196717251714229548161527774779720820367226080753404148193072623006231283861621157714882472554369307487603031862247774617982916375595318652268443831730122745906184291994033416338213282129200730682051915856908451951655721101320515987414221219743019111321224831379084328278003806849678548397701659375104509690735646875523316203485409119130435989849374067773684663112051752200935514151146096826050593631096698545781940647544981840306200589679348777374432721517724263811792062533755512421694539688370413496996550497745466220446578968757077588588290506194993271706939764731312995846681259347253178810451991751808528060516535284084245248972673166205812857667783331613851176429707350533319138063254901475427088776292061718302717386832195944984313603887162386575570644247254728201515401720797000147274147846536280341923129627020873285098204796825530388546784465769717390951650017017256417650890215399452955937917321790956958683187843697202264380340849770503845342836280346953381955422806065585232188582980574631648374803440484533088663523200918081078576399592311031318901896230238356143345892990195300544639977964004421293706949572910064128388260677182352113635060311530219995994068277309329050542215740684991361654889386316359597268928713105117563921977225312853455139095873781925689908155571951404806710795509339862354402798890638718195769683806387867541749604564003727192759693204092146115978585092990156560824561211014041362712089950115613969561075477287427270824680815954894305856824576688089418658954418249636698603405300455901222924494995918560979557975531032325938055012635450768737753169502873228293584180431684015478340309003602288325222301186564302258002034363550936714148509005173800686674245003649264267562481504019998080303061320092398975296366462308740235585638456502832773684637139692126194873991128968195984860090511268384337596159483870254599982630325914069360530429565655813550597784021926446215354509514393059501788060426210420818747661376448833594662394765856265721103114956481346999178514372279596347317615175947084283556446907491575688723558488684975884918424900253313952196043208551415397495976448390234776137285517064526741963203743377468167385533428999840911906524863662506977784141108575831493974923362819354605939374864779135956959786937864474760161009822441865906212687096802467702593714915856835627173170471288137780628243297003303697268567718855620285205401836008050600366556835345071753093540827168059572733369840907178614522245133848970930092488586998818559538818144559929951042594467298284797231689201872537394388871895262674850921155846809066404208796469769091453503130724369461312210894714472540894759695004455386012564304695004137293348198293131821572138621874730772241873470162572837071542192357815754450376543524061318327526542644252450722354766405456863244893907162302660086294810518914568990891482885870860767966978562306959244346342809036547170279563536838224396736332825053035406774782274327209542244799737477269956489083523306260378173155570044838747650539282077857501158934624237041327916357682129888925271132570527510661373850477027152927282959701290360991214997211237301854917605828915655583644805248622835887422849971997086849964034216516650028766161960921440817671609548229322019775242877928700732750820771082164386516280762659437975145464124141553971073964095051617028872328598991913905779450427301343040261003947516069919491761118549918093900147594813560652633393542572668482300778189203940403763242601620154782893741882808839455046466352343141018539261891089398733252666087826557065687130433121940052973513195553579339037217662564925940794478834142188139076737161692297073508997908655751331436583738612236712838094270804152851761974588226616413378212926717947923090740562158200404037610626451519443183573864097915366370709511094175157468477571568184562831998381091308521299956251961115809131183893807940068531392681830081241869010697103704854610776757879722475688416566421018849801639011215016202285247325942475512029395773066901832845078860654285872159754027704050651581181667841139229211368128776194259104827808937325406635615794122890355899714244858120456872943324552259229702415652162361177031513780191079344524676087333337603747666825082758380480071986164488576104241063846449495583460903576897582368424253868968038656282052719567100324388884821629833952250431489556320415091061892813350965573484393634341980747633260683945807904607373622596287904495437930334183458646503115626052315944589623270954831930757951576889414757313902104957246100964766228183367360420586941320424441342299135872568512511102359482248913814590727657098004181595520378439323901999750554149683449880815044253579453507655480086937019627778937303463188983268245909449252815471351129836581306400242048722046087677140086020392233029798025236119282059627339454628722785359303215296744307891359591344171809544218324768560926332464122119494247050170919876671904823349810823964163665737342871276432222617563716530434648493194616097205546953090414676471441438540099937577475366230735394228211851554962771611355583495607596301850924278922549226048442500243382640415186571919555416261087112571286085645330529981575620710835747324868478722434832553045777410765958173950011722286457509148516332635276228018991262456380790727998385421227226110584036926888284782170187573580655104811706909156745416736312712532811578180595533944932119500274274436198880837771693535944277623620732254344322564772490030503230034260392963455147885240813320132128049560508433549673783942404513172213712917826221426449670611449747159655175495872066796315778512399796092812331808865452709874216754688437600546589593474500006243856115930402401223790443282928909324143741897651806980637354070014177836326614919930119945399012932468275443486376143387297606802825953019326950019995874475307829112077711337138283569672730304555294286702147267699606955370145827590928894318672371925384092297219945059308316127124498868518968969232460925208822073538526664542497673176282688817226143310033284306010374407672239401497952337664922012586538726664495694004599702506227596683111425471004049603698865138146148180820474517350856517547153077491465405372184576709158836838230351808030188818471749011558595791846708796345145201718413937878054971589402325745603836321517489832511597085179804049817752189392580578135777009575539513848794979555360391286226851635676292609697403103013700986709724629227649069270187515652179382285065468697870935504007815171953222156779468272575961050198374775465737083142832520023104924081837514589556536571514706238527740669841339015516065357207323224235654686353996162544181217817186572068654335919054977154073991413972061793912421440058166235396171306838278580599639620321667897730034381518317453134379973521381506626731090674472847784772230814452514023645272499287901165634883526815445851641743761812645931652024286695355212571554816058290557486341799041319023824620515615458894221641914373127317529755512339559682644565551612143656026813086255301879418437906219989581224814917214707105828106952025189998651895431110607252291118826907259166930826568246573489347291530506454522116935841100971610934725168735954923931931369272594914785578029775093899999423506193770644190144863464447051407216623272569926769973689469503425735160067989837305947482400839814956225446536766677346163578240138123893925658534116178022030660533809370093113055809808377849894043629132871225744464360978579205184390439112220710250703339958076645229619222679756587837896472601110500261023356215526698871092679533698589779799562886066870625806631116123273108850737612422563377292227862865059455045342019750685617858092472741461787437201499110264597631259070676151602073849831856134460140350037804750585192334315721016045539581804867603693932515802705349245383979550144333581676127786493520960868073674645335886433600474387461230327611454654268325830366828303386400235989097953193982313533951454983233408067374828942170231036730670144560509373193677554043092250159984558062485914369401809811113854261857819248337515954028299317288544232580967057866888309586693975694670476059991815273751129199396618787010082127586093646050856947632645763094624216906001212838653975482395355540730552408026454838923027196790508616008622161204537999947717590235643264989564242038696733523568870784873061093592106995561217837783982906806753356069868198465801780034431301499320341354652404147489952970465030368959172129399797810168101240596749407290274487723125001347280057283259264403377205345215613633888598214509437807280374266746891426808154973177917685935936860502868585067552479409984494891001838848781668542206149040919110555592647140493752091429047843902219146056888067914610147671575501211049615522112558869921831414359702249644506125068666700476650686861579493328857081128840763140123103857592379249046675863850004216353727882477677621849004732528039642564600385006786588805832210718891805789764889440198022459868809355606217690355194515437899904925582294319964173503849306664302914079336268638941276286660220598690476416717170353062261724113857415777230541220280297417116846065374706098345733075017529111839120475383579041544583421371321800059321511157739330701333758733840575635102384113123972560346792613080840390452363102952429801012559594149127842294135807108799176956412697271077649997414269177325967835216477949597888558346535002491634423178779891225472672765439778319737113529366804545474854282721663767722621479923506306461529628120574035019566330533851167328534294683174986186508258012750785800151749396283268689884165168568746026327810173423611221625113639326489147223787724459275839959738123441987666285524814701146727680285648857308294913511234972034786730044330136115888196582903885563022069068174641696819656476329598570893877021123085726676407295203719819769010144359684838991919979807251159027834712833453193850410687931636063532981142807856656893738910452012935693229534829856356724808826565473535039765358849612562405187805777448028722723360788748010348746720765011632979061390554811343788611074789960908298678709424449195388221671826774906395630292158558780287519320863676693445428123044677478434195388184861930071421063836037482175671190879413750338163631444200626874445730922906310348888542527959067260287756487989828569581569594861358546234089696119300422407411062165910888733364285648065525601607172225100627709558941916239638443121391730594529468068453739959125399721215268353466435345827820182471156911313163547636352888311030341505054963356234777056083030275741829456366643568694148577988864791600453592307251931534116554995182388257192357770151287641884695640953077558233358852688297372543269641371266502595020784063595108534398736154817185308494197859073675948536224352367767825985759405494938912115626877981728444246545604347643032793665602203811145357096688284082203611048307173682333911971996685132991955530846059939643539297603523668521306629240323949007127701463325797894900913570458328712356262823237380349176401290790514029798406209362829830619147338555903798808078229157953173526522702692572913757729065326824817812608024385939991865262688893755742657295961458542327771119417909410330477660467118364197353308457180845494867505658578171301348568007229234409878964200463436554597192169817655217760388676030697877127083116929155476766541058467346740096944147789895789965542609537964947618057273083072728815396217968921306530086842072766813078528569207808674136084401956723894881326767139957918347603860366025953006962059907164433936614173009412914912739357783356065594783603044231074310279316003755790961673081424291871780237171139366220758841494548824134126440610574419249656388980474043902426878579251980704081359762590237475862865502610290712349608813443183068065720810321385550614642485128306681334791203473488970148163770281843626218937301441020609689050819456040724505990449966795974813194420648600928661613364915584768766113929493194878219287883915408002577100181518916993054463557352012465031766422892118257388206397311537481180905486205880172455194133562184276997342602374011345543617892984362889031958363882714024314885097062634593232012045163252770663763553756480261665831559619740200033213325787801042872013369473899569279200829191160822185720813147121482904735940321918029578813384058473902170637559883463106646956789586641264189419744361396645074911489522566411704326235584682741906018175518741554322580308451007300793828274309519640966378847129610493850046505910118830037447086146050544571885671739132429892500597994073796251215664067361794454970078635362927286089974400334999917306932113347301134496812255282425348856193491395868528009333154158374329892871164052798495493379468580786535286927605231864416862714103257289613611400472400736241056696394238376809613453505244477870148740251893635883549629769039221444337915314080576840933726567541724188435696040908434408331657955396015362837901190468132630972519006240165748401146326997586998309383308139788756894574772771377464100585982800874974746202996310008077593826997774848152720034942555043265509365980483004184758419911185692896784074415855880882949156182027424896564235185352274695199607387062599219364195322998957066018001672778498669456857932738172237370775694115861475852278701488836370110170979707267803783456553386892717766823318765256745670517847069642847658504193015346365482522298123260024788062428406807891902219396608609011493157519612439269568382642911401634161637803769276215265137436277936047564325589423703033982101815420303012889133649150007360216298529626417068786350541376712502587313650600454947568750691035538416856035808273228402477345245165823240396234508141283944233501025665301823259925229448589193313992760632665934042828034197916650413808424155050285533372481809510299154508504605253260489184271845564891900320297020796406003752401936136660246049152641319044325611862152806787759763267209333698533624039914943333033901594362227539328321435384554930380445149399114745760042496158538525565635189782204302481498989529304687391261899757076343611012461992474836137193992859736169547547913922059036617675076719036832423136677615983070142415900357071407355466341134743598467598463342590481831223673428774292435893953406587532707420724342935147705587829440982381468029859137376238587849563989283525760431684551796760191515606714287592283077653826694433154288520654937067606283881992775659957321101750558180577812292381308057519408837182743535179766349537648058534426210889339326931351386253722453686675689039356330072811412830627129529402238983987327397824281342618874937179654564859441176540057031590619864160495491219375505064478772893566662193659446984046429978233972532114889507451253111029255059755043095523820402273449292202319673034828139582207345810066375668277598600421533447314167871323317372650711831046433559167578731215110780016116115592949850452913890593862448895045494513166608769296344591506940740495669769057577622020791473944588828906074566155764429857831441755405291696506087565436443579252770901616197294424158526165296573353334181941664079899926938539848371414590757202231370808617488442925261742122414549973893349115606461540390408811859853088495023121893903281070509456853828751087497608583688115306594819926051413113122149763782406167929079249569054692831456405025300614705712580180777881570785095018038463097962209805533646514135837384873083426680030932114480876524091819968953531882311771193155745376686413049972666597893865298490164613429884679763644094361071949485563877738722191797616856985528968535799276325320801636718461493484689980397998844405113087158320993516163598953331812063732768887333614509563010683556463329751809097606031917117404902807728914334547053329732747243663324942473804533169000415514196441825773162328956600145946021581702812541901582909500892018258105891253892154217808892196687426139853908569565073036662412027613903940841475249130735400222967627281590937645153443542923346229463242232814527408257016925384619142736392326174005446182019512417195543634143831089400047772276348559671841921357660923722079211486965986930245518625919445556607180031075833179216226203523187360884578668964626951485632776670069616127122741393088167212229543449174579490249254094554958109870017960517885871662009854352024033968166379130253910024691427675169347000784856589678673773681317729037221141602744272054042060478679473730906381933505837929579497728325207320465769864178297669359145531206083096322460555380469325367349988898416687582392395713228937110632530700570503112358237829470551450738052644486494759807454911806891025832522774406635203222372758092534217625243313074119648390042975377096262998262165894072800864210750180529006106658407877894513244864199354527607914863197557815584181241487392022564062893536682174295560064023290868189288376790861997661952345378781363482493707216562099227528911001243863250862862914532781062647278237838813340147307148307843554654102624031800751476910524182991434318541332967359890937812516190612335590061897625661118462144740312879221089371609165966679017535467337535472628505920178331564628046205835581621931579962003240272652038247184853412668486349771543284234971500690612588814800044820689965520377003934024507155927504255621453835698690304691264604257934210359003754723729035392028095265930659146834514466940271378855658453998200823010486704054953034476969135807971592809559976371390206921409767587364520555652852915740103957953296061319204032050655900437420452411688559877861205094456758772686042277912669368691958915204985232707019251162342615816034490723802226988090631127166243476444045537883920684514882475106371263792701894534073857468444244547027736844098110352350108175097368490716842179544167259135874258852496088774105427495254811640372193569010945750421621723808529071421974785205211306808838810760503383724455867876743223097030793633066429740886830059392654058389433627601664914030296835344489654106913414709901786161349451192316311683828990043293672998063026921138286458975469030082054884388269160237805223329972028298685500305822382526939303280563317558791622002275347594292084347712863179680573884553908208322863253954165845750105403116682507961254235378398855301208351860149338210473279465999282663612682141341227137765466940002216836341287725956091752931501907827996553538577778456430816419783164477097612326113771630131829193509283779549846729193389375622467887579125515859001458635091765906336195246003391652787109081319976675099346963341908547538095657420612002898299462387316887951306364660641295954394385994959571975618569568709453608825217024308417657695397935659210945017654920303099874207925146459295313437677468592625788926542392972400982165335368463903994236169876653089230776031066305220440243643891262870335931725446164727167009648514643235640273449898804907070851014871821472133521141491378357997280473340073114471385590353821022754909499626748993682516093303897182247024960262155512496097333150404590014732277687385346059911741874313245090610030317748071249960812371730448180785579578581862878618842815919278743281531430738947814233319544588138571869789670280041267173457578662262289749956177238711364319671353773646386939216214249567778131955310430992604857193114083111219150671380665527066416075296658170968531602701363774041570559846672160970271114377631646209244035257936785493084220361671459077810011938785077003291938587241618002765671375201575584042872335132748713438080299732882684407467561778152803417872248532401842697181850487116583112918715738422675480697931502417397995956022632841065574458612203759932389263583165884839777472998229612552464477586907487809975427368813208598107314554016733388014355801318477207921727177121934153941123347666968392937819615528151245422813439050377182635198334882683832887588873326529153763981775969590393943989233650730138695167629547840229370339863588361712110568594196985314910187311479197588710973645362177248266020398436535134894111450302526655763427206540063155425789958959101782672192532447070513232671261720559646534272068942603934588992049910563121624359407742804844920068282369915307318413250082557374340486520870331661246582680353623729467302389139838879791889261203347285247975528581165811606419386989901581172359685408001364453195101095280163244406356567025728597151363769304733648991461514908832297777714749134306428198690214861168494377556983974122993068431342996168138512550028563859595696146613729335002881509593176339265332162028309862493072579157949231469178525446500342216916486949422063069471900643644040881684338181212978896175883483671891636495242861103697305197817066253938719177641128164920162205973975556562538320556616745442773032720801409823309304688438639716985650716392385157266815947482372704381850666081133640788371646471214123036988862165719486533050568557603966887435624175895890909547373235336483247357984589361348926440686225369647001226254307156816890811470127319720691812259465625916224735188060963420270219679706002180991129440881401609951101973964404563921593973296855764428622751039158340589990117044081201879938367654071472892862733296740140298932763260053726048878427757128020084243764093772728103514957200333336056006053726682688659430069516401318124438355606949901230790156517839976362951661047469348558425144013054483267454724627716446276064716401990229067108271320697371761735380636094789761329724720070213939265528382157056816909806296190633592972511859412351612553106535177265507447212242114566565559338562687787330775914048251708569629877688255150239508482611176101492869194571356255085954337757272682375742284508784650953401605155511789022003915254038384724984349627361646798388109872169461646402815250133820880156041924348877077927343199362585834894830847001527481703068475338395843528673787704936804442009100774180880515326763942710739221518682001522240422122594440072259242247757227999866008904668611704486979162831866067184617448850820828569948287587344641938369059245886031588725474883044676099294659265659697928988998036170916234259133966790990954062347075505992562498848728750628681785664599053082800688787530215870183621885686548783004858250853847293918718904384363812101711960721705132684136205666731449004999500089833850727555464317434144580849470127426432707474444493458639745170069072090624282115702383762157357578622991959451504990535979307978349644321415134724490957457212042917557856783359315400812856838571514939262039839705852542736216259795848367967718821812625619798409894191122360015731884740986573787236573565412232784407348675693565066216967360060001893339026077019535406493307971700695052223559393290398509314645068219278049248872278069396539609637174231530204181138115123515234830508417049057135252243699649603577412356083852121549638322600389414535101471179927557768239632520010882061255511429469224587655890693477793260703313520057263813741540766670323278023627466454344760868995683311520907735846520166114275195351605061739882853687342006321324825253204010453166334300138850522056789865890011250208110196577855502256922706134538761996651151826306244734116884182427201020965161658016600549823205734146725872239267255594880415268793347233754141961129011350879376485690233489159162516987616201811140811110194566680504977181359193222584223205578126944673815338412741437006825784647425533756178567462206103631615509879730365203535841649533190702496080134980420100172037259648235223473183066988232641830909787272496482625367048593367167041033095687482042688401059113658991132378234400869756673020094710259686628205480457426424399243655168081814965244539366609368225992644750190910669076889982822353253847266574419807007002411870786318885669084531000570686174963690165392394112851723991120602294072569669734678421063101726256516637663834323556242247579001635396994645476804716322279777707071346411988686006219062597900844954325626952366486962543003710916999084356215369869834894535309789104331610510211439141205959131583462253301628798490363465286875454943154874118919341666439394264150006892283725859941150129418307546425764771206408308729609593120166759152456374018324161528463432758649041614527675600040710309462803898030253246200590081341680961308086108402573269714003825533843503786330251811945801615072258568685569440377696762956529888044408926473619519089807473960295938739303074017430726068287597756297640762047570196052873659393829825737763413521292366163655035516348852992027320606699936386830990120390298215359163017645663829834517871460544352241778979586155600372348058054360624762213344106984680625504712369148248390663390724524461064305057787513229846160928452895586269230212798911356647185126130459483449892314030627417862960273606218623383722262261943430264349220273236612113873421134782310331018505938737417379885382404990528407365120781580475476538959427040580981318081990790936728981620740445002045406551841409793672801826626084132312634858573341872995156140204648356417857486327206627097753779383986393451342810008800433783865193649028935498030525266415792317702670364431754788636093916483458342643370404802951656452220895806676837511730374671268206120858104878355148151793559032333425813799356845422588354625516301262428418456414044307898742067460326551837571191479820065678536581091052459987857103759568023106738267666867295770666731986979714260857943508297007881177289205194493673339488008542740265063515634682300636316165924659401756566116962603634051313915857758254730333324694208964991019978136657811513541139715835324368242852003697802977962288587531384190850236948077743635099695572129779290764209044795466273952974939494364749239816451697248182983296271248947993609971713761457182222727846519911707921349871298389536600501926908165604614739148259230788832355379322696539049384955089287393041952940986234554840575627513903897961197392333218303496259745105690736070002928510681982099741705580032475901894598418423510230575783599357822877111994555607958708183220225253789741223221660965256870913444241330018997130947507753364763706358955702236726331940386063399448245035424985753766022788535920616080120904592817870185060679547332688768163618046401631863997679132844650422428575258755024358099123504813030054772092410723451600141081279073811940637488777111992990062262850687826803840036948614613745364208529672369286598672559185204848651919603186724080050474575666766938769992947242851113569959973245659489831933095011845305296158953718095871847353366935134882505864136949947728729109721264145281445700054994530392998393200388620292437098908643833812520615290356202256851596764403703187138428222283766113176272379034836860508672294932203080905024384503289462172254042039720522166805560250155253542223380043229736154079134875260293165696931466961435404245507896808726166374090942958368478439248936239765089401480649771224011579906044835938517559425894574343188069276753122915272370291976249419836847212383195627617808656671589904747428745122096973510219189944580361743021956742962288557012191557743129388218240333192407510267411786689749315923680469833210294550593063143827347350947073345347594079502995889831924266354448732087990012715708927066973867867289160261442593977230873506778358929636382474993789552517797731961790946031544861355393385942731558760344346834733404672026966942909595481771576046895613271311354271962599187803733838482828691545960341266499060331910929530773336241340426695974554789334386326501608823349978719935643097616098295668229822574246335158398136586807616778684879897774102579705998603191596176336064383844278850859802858341164121882456324513496866463074663388534016609688859168413444991881395970649606563964765706302134313734506198131674395751716739077333600631335990980847579803621512488087253655867615622867816783496188323667649362275561340664540645704031058076925817309349842764513397193789996517074913990629991281648710855210470615188597685740831192388391693203186853209108536701453329823437424267210377034822033755451841047779709315453064054418915095614937770392263964186102567208337097173804569878460317827448403372948898574610391371261898373726556292823332180864345019086236519184954194091592442489667679630737252092884717994984021064646660192754971452034601074155151690944777359804005735995835307327436847023844765756670522171558411612371688686466262565596054094621994616352551764051977957299505892819634626423493706717551772924476771255118097023036811669571016964151136188266525652648038944335728327403287371047421547879264423989584823793936433772977173802275332787992797027525236464212360883287097132251275824185138191494423581695989867768051304197600779351914404340734080925814926285135216942489337586380599053477543005502378968563154696862459788549203700388369972410965184745898342563775953724420983531739788704082705596188944387623276942969287826535226342639861310439685232987206671194335807404587158048803092522905415595579345923277587926588627335429057069066647717599143728822787910790265956351526266252795253356813171981968189848391324087876023692004910752272962164790145598560584283538957857401766959547978947361199883378403636447951721179458106497058904906726089812802459952000461735611981719936026220566603709836175110832721468140133010537585817185868308494023292145090431525066701592534216061690410664997597354331270123753557898070844027804411082649767510509227909301931949331512691881042598950534143453376307378294936142665769569050983494466006200321367365632910687724803862604053877971144640816396337427934518345242472183725849605850346185734972469124126120343296653190271695942500533018103301759657060935615128413893632212980891845252915140339848570119362686741532106419690389448714209960138318864539811965105280273895354255759706740873283071275950531281865661409042140005290999485749579795073083543902775913289178207098129073953082018151707752650083023982836217508814952589636460988166919145506024619050656405465744378646623429116303883771679927216516326456014398828683500289658461638802470518338074777507874168644403252760300713380368065698192667310414066445727422472244838922807322964722930833017027366935584075535795678434467558234458370942530174566325554805846799976432570603564365847337126509717168621624488787631295101861862101980568402084225600851407840247574070095942656199708106709126699286777630867217947344996986227212796789652329832937956901687356979628463388090796689099373145128030414530762156177265352080793590009960518307601826017757188606020162070730643672861270072423467687479348609595825262099036785466275239191207520014317035100155375773078246720224790878833500967362715358783549557603275063675438958009647600619903956394282404625832693797380443047960210397717120220811948598198841615265695290513526660893767543819509540615671295931727304193819428178445669447624042197112134016865283568973224658975387319358938298284328154006396710814589699848358236564136588771518058021923226310831771192831882795335036400828993766104491947240460784568571959164552070907359148261090951882871480518004318056301553277577810851831125648654174394959431286786376534444276265485726061550183210570439442778862482449992750250175419767644257369417325692795493813800979327521777331876300893317871696580693285538133387199981039732654046934070747265797191409461823135506938593867422703454293296462615466272147914054172045369405188637689447647884935941324920887538804311771040132561360360846334962709461610525276050954657170831317136559740388721977119460227696693092139585221550769345380245933839509024088059709049595420390530818708519941616826456552231476415146187592251934529235889651344587355626324505139089551803434027586085837409406958616262008641101770685348763313698352984681695094925478118745207659345777058968793061690953443345860129961812782396555932467387131936826170465852676832854340036421048494682195033570921491529115991159693973066762973629953133570019943700459168066877613244765010331912788854595144843743451902184910430449558239801062252774491193775939565803917608796016416246243629433009570864218158613845518036642249682227298714232312840491396983093132944225348815433044066437454827793249451111322482212150884161920385257075072946492910878643401910792807308019466470839989616380894882761232081281922300386987685420708395596372969569856917510271706329076084667301007202869358229838497890984119336040070250966818738249662727925127080409630392176913710504951960180765316612846467832346761488930491964019569673734865346393425658692363239361748812682655387144651523682723720687255304504434020228182520904144023954921079428701027185144253357280871996322194944546647940413964656819919508377699897716116058795832184615002703087078508324841026693156324213725985993688421557301845702185674275478811649746957425584202887085881516524629292483390972901959522912287471246550546239251336263125326240163077611900077687352278130341604333530928910737410236922718065126856375391614099608562082443799674285520036663624512278129673272937076118709676438139248948131966159684091060079480951408164498427186305322956358773954979213071742501158011205980835044746936887771817429656082545827275921187995519615454717185947483236652138964693810870787885278074905886075143906535347971047053352384385920039620871795697796549086884920121395760398254443462484172503109718971750540908656035960639921153732400283726073057170916205210683335689576491078676505162809763811031098703684529160335136633456025260107034843123166841415393721382498150355917381157648984216398083999096188305829485349335368167225478527546246359185730404077534531371340719718768103947072146105580576994325153222071216540807088329252038004991280511353037734084418571365099076559653446949283747721498978689698685350194811931494588183689123969044473272480138823202120396211944594315296689355883844150931422042799718750998060663042168723079820935364575590759831928315924605319236575151683417199043255043163175249400934718360742629791390150081269488853901080639944415796553005458549788765072665543485377971956337427211875439104953229880123990592353396638947141983156645402937516576268631011392076549734657632241923588298146684031251380327752353276206195170400692082997254171075999226228295677766847923209976188270924566065161893150339700227987040201701652942871657466671544364087658765934915990901141622019600356843426698293063521352428210385420162837701936519899097971126596277849682599753635058454501011360533175947697567138564635842270654780953204245714866386676122366118018045377774887984787808632343222081479045072000303312267243912787315806095586658531067217661095696909428078715586384374779871385267174140360337278950268531741487341216705384155840557679805275592731369539837428317719505963622367682143158400812371514501726561368202569430221566873791091919162447494217447851342989000947829486849511656129259379367149753362048571781069311601534199993717701841246887807163263566809728723116545101314919977790968169838085240857797459520066327776888091243941582337427625303496624397773135280155551148526637883924510643518543908208955439795050938550809961140999606890820376467862714742521645293387566317130319823626698907020475393248337435858940477021738082336733129933403552950508399752457660818083476667326927410667035834030130655780906132767395727239368261937472817282129990166910089886068115369486247892267546640007803312429043947199853366033051964561401790372073716568615691913116240895232162607906288274826369122264397608246174730034923235523377678166348660628712661022959075131342004539956442284706229756423372321221645679448216383000389520972710951760959052620815224868554450657235485906725570835085274856618601656680069108204688404914813920632032322620359005260620491839974097771640811113589133518170485082504825781891878744118426337658394922059643697428246755544919638901322811338893267279420759443258766061612196672595518093350276746376687301568379012069671459823478743039566994648788411044662634127556722172230161887744555312622178913448605247912071825203352806343039433838052115768076401931411546950659168451170891703135957320905394963316207735337100246698915669091319796885783219337105478948460414950976118776961743023969376979830384266033633368593986403360037832435035812068199976527719667208619092800572545031859895988034396460820888142577666520422545684739502339030175863027471625834296948010240696503865425420985692571262075612596074320681856560342182357428642488587244755080630222329634171346916294761286877655376107173513687628810726767393603299212802497653805007233128485710321627275744363582633709648243878270576359402754782393406456305454369117514397912471570788514085336844005425816922055975599737636496392824246872028477711761131580153033386235717821826141934262120829531817336912069615492519219738347336775639158299640223118531056363214161586066265879906644583056163834381533930037332425354262628875263527779496685884964828302002413208951787310230405609522630658402148263670328618342041460705674987111831500166227520319198297591044152952283210423143658265053454038818514969744305517739926191620602207441679837899647568727567969131397734146370985507300148808881492443690201437986329499871640514605135746874486570486123943105113910735895166297226555184534621444885735625659428647729844341105766101547829700621744011859282071906968809307552388123648044460997388774593868257342024764630585144637013694082025911288798367555592849667642623627844275379358648826359757875392128949577463955869663317213101376469177286070262720121042511881669472634336234808111055707582091276139294942760817222030171934108864543880302644871248040454406052357299755980907687530899893343725210732504372708944633001220455470191207245613194670339925567222556020335694332547040192805382684279119126979008176643329026364385322478241893251925680974677538324750032102134935330195037268886496153135850757894110444420078260948432138299431780682584555263132570679440695918160018594122568845530999902800298249746516420133612714014077961604473787263461568004678114504232834222697934214604641852958946485179745797467044096306089108470283890984509633924782011776275114924312850417978563713539820373836027946146189011992383117007687837079057141919832784672043310586459521021954948129024860730398271992750675445569766489233898882229836405427710242993913338830455220770148520738668813052279563777324415987131131524716967200557595197772777853622733326145173504198226961916485183530092305453825985003615378308308804988798462128859866416705322780025822666864035281553319778731172146328531048380399631586211562343424127876509924445043270539076467900552056460782102695086886862989258840898867554264760953412995950970583563796686540201236603762480578569763271063378050074880216466486224214285325478982703265305042528686046129036999452943612614277147015617933029063237679191242675938657631983750835419754730931472246602508080777606747989037958886722114914580870365788279653860838126393024774181545075358144234327825651309244382491477550753021928706214570642306783584831225680197031742940081678097944982491427164124016541341376070431312785721132848357015030062253014982468689586444399136665632546083898559237244082866832859456435935729371489352679189309144855313873317937802401987501760117040874377805394544443559125606689630220086058148161291786481165982419786850146479576338659120939186160933084844708716431925001117822548583091490977866553860251778904685864712963474733163328139968598503386462192592996278480942973229439857600858196016223354830538089004581167524218696613985671613788857271020918050268433861170697071200869389929426924639049647217370302962038794348607871478451337914612571277820180044186010794995406105477833621815741656638639701316367291758547582453181341472363630048156749149510591680528114175055034848302986614864658784807058902758056376738435827623950719643419680808334409876983921069118107984334680592876305872673069161712781802474329722689777102349610237890739497188951437140796067746446951686568634867648393508681088339181353003409866212160392539309108733217009413304395273624499111557455280591864498701597763433135208560041001439787975547337917379668827095328868232355039341595993688903548820151979009257678830281353652534185697256053509797739656822865764541473638089711724730488327478218994136198625102318284489057946446961678621174054496434247766765035045532787530062159021476460792522827308610721354613263199428510247469847772653966819754887690442796935176957559276997544853054568002780545248818076736215677974678663007297405200753437296919654622971226560083810997778828844481118784193814739430632477786239961519174097263029352171467533610479085374113358329920883390178827162068961246154672993992568317289695830361887405710715557974126783484420516210672654546158550898199830612472637328947933467645690152664248129123152466252436255399078548301933900754874174140395856364099904114117447557442800096595094941288859109710741692842177541923900115607898447338787033034520156175309053321311963808885369579552322744650092949466525218101324886119811701681786949601899340101536915769586318864571963840068521106221046154917501570651059716225530449028458771178041532226120835778715779277936856075461573233900321005290197069367237306281786172322671426258024772659186929369486468958350307182258031627574417655063914049825344298985842038034090055833513495591345374938099194132114801523218203583950743066142254595557571639891385206667838795068178287470096965944187098582601691417383183235321277534775452219626189723331091242071532903080812095620198153669734462066997013274164206224387086943590758005033018770979062658011807023748242075033630561455633651287980217803319431904364074134169048766166673275403233820867579597364631136874566638242431946744219303643134324348427954330066500185302738792545418108851734179004598989154272104263991362119239338193143355444957971713763963917430483837283744625529569555331349243788571280309632773337949828346859997644057978058752056011612041484209122908917226909702762293994426203317030056324315643526984952228460094267966631805848099391930270260741531506203877712332742016713753033488299793241214827481170475417442954994098774422990868091375842037852435029775017514867389529040715889676478833726185036467628551132189047353306002444877421538046637883561195321200014806271551465921720032989135738033593713372842012494680056338356956752041609727856789643991442086566045473601910653761881270802541224599849400568730358648702061301212021961406866257950836981781047617550383671531960437094712360199414563002654940982779999655706251260164452311989230648192366186757702535579927577996289349755828098147914897290706479999624452312219954641994420669229609478540829583981454103895623166578204517975265599694833022321358781668640803469039220813467321020363628877525189540379317339315471206204761432911371111043197540173443702081213703190727145818082987879919207395989097849393342646493116533259390771510966203970348467607089368972695127402380267034138295113204252770996220349272527040743594625502606968436104554845496787076538948391082386397360076533066444937456902629160074663165894590708235726130114831117167941025921011970915285465991719616364029680507951719102757505116713334929361879647836822642806244153809033589294292819227355305839248333090181728204013873189097777438398856897441611594451693805930652877604628929519369207936457564230832862571191773398978101517119736641179580748139930175556413415135153357022585974106685010928514421515719252499109501245274872027162926316907028343259252297714997991436413434760965555056962142864025521601756390319457839479610177411242508781117986177795171144514160702280950435078272016421025363863724129720274148946260481883569497157115710324193772544881100215465393215750201388639305357907545598707538104222647667899525102235228716550081123702408415734422135899393486587075849838340797565367871211963397227160604282158389717224259532693118300366563953418753560449142704479497907031391513748927117655438523866727433447919992816475180494099591250987095632252081773378142414264031516522516427852874805229771122989798411510873109879109644711911915141513180126304269464752647590473912667653318002586730410405911666719394714242350511045909283346839028270960653190436234067373145192337802977220078732962555464635368973373597059829806622325736582018416359195163334498838470318511993052043511144648049196174328906781851062254576046583331292241318294665348363812171890856970001273693565047955990018889290038034068870573473969496187275404721811777919201834751603148931497630809219989307832563758112312788199310285768778465957133863497797205868071081523162625959248405086201105633971778174676337621673069958386525675506649097510835036693233841965137858053456456268625855609652152261912144083245054452606103589039756848225560351099369796879636591840408541373504229922667650873224793322293121863554853272336110589351946552834496911901707147848119754709501913113812450423036297191520447806359455947454578688005302614716395122700757299993620540586528384053029260334879632521036005219636015319978714624448050727862197962546159611650853242807918050998116882337653414732912158711123806445682942807979947955432942797361858922662142506244023209399135307091956463216622777100908401977496452052957363318944637262685264147200653357704090746931436015076535527072094373759970881346014743690566168366593183614627457434882673945105459243456358409776793089821116513973829703967268122489941957764865352757990567516627630852565569072680911762502008949743260765931649858624977673038446958717833990903143396553749606938979920855765176838352549978940283809079297301761926129849751645833022917473287691026069490921371672493042764253187883045917896449916670567707807801784450954364740371884235268452252285279195999901963427168727780078661936414073375210626036673467985973646574843560578685471143296526708656644498624706615863277506242638036072767171997627951921499208705323632856168109993359527472617530115343894459190683175212903654402856513434922682385058431608766826678249952905364934620838687918356881658110409055131025140577347838919483267057755335420118831835275644963145904525978043468131813482153745599913139987630910585718726213041895152419625374037406365584776723934426720196486837732515832186545785526945338768479791612783790920845762809324102887444490147544682547570664809927524136199758424963840621738159925988048022836905106667656563466957552997092174474316674138782409625796154288857847079108128356728464677557644464784126161834361684074822422082136605273700831265629481238074745145025547378733144969855054028501376480048358118393955289735066680289779147782853491744821078109794855131497403894353685616325181722852204222555768967890289160131617936732455645700748241921101109186979889383578537930511500192781375966317439800444974079980287274797684360743105646906075065239933504210708654619880142137432513290308184802809906013131616135628065257681736372963138337297943220167115463490357083294298064054873131307408861607352406624153603392363552883057159000277857156487799000514100228578320579526768891571948947129403132449245661679148898058470527479399875316522288242986326656617271326638568104805271720258398818757925493502451200368961614252098374705600412136055390759686892779161371135306312305915390951446731207703957575587785618903255279653172239265782983942979358281194760098714681982666919355450795766864333648852172610703272044646777216417604693126318073915435394071098860746306972325327402707379914839789846216865083352726237909308325333428349536352779377728934556220741419714159665757569520140081051491950453741214489539230884541019438395789269614949968765601215419288035737911802617884702399575700450670263573916603102563977759370977869330676255368453763820637168007175768349630776579901230646477872721269751616417990308069653250791275412797804120791767914234427456597363556598180862529346447923192254179678135440883538132994812740623452016441268441603100950678010008059799935246829629481812551015314272536851717715041539583241702232095381047701886756125370331935199805807685451794553786621851971399348482874316076060244993964577039607938824989963988361250973042720269487885860636189376249185646502084468567919754265070174348349059748214879444161209354951950063041133651846697326862849597315547283433176948413140633459026603102554046308133780637681327713776635912135719566530581412431472296199746411465915527204917678274711410101938682773315820119425978578424867966470875829876756064298343269709130297383796609596919470379022411956546290972999593465315892824690477583382494190066603982880793301073882301733229310905570829307326994500130771917860928940581024972671382540238596601236678436523627749640834888894395632080349266829872828764193663965601034583136115013700295702956842700462203760629966120137191533788007642160723518945074188555996036636177806609938594309655663983084844957392765145837480389433194506392030406711679551717394632817156631167686852997891727447495277945584746813137022817901601507687273325503158972257574513057079020588237910192221633976622310239529826720716319665263627225561134147696807233795104029804261842795388726614059997423230097000931195883711152547803315220233110627967247261867310839194873346046546567743728468564002501026668962688892037493631262619695166890945373333335077394066219709856568799985209620048272929557536745962302060052447042187443933970325447498620497986446010673033825492886018298249047494519907566646636085346992487306881760307678850316742129616748407402883597999659018502779691489019886110516739759087210450555187969532879047925237523588938628306637835391178853512504117463079650695149589929854211568583024314526479518887565313261362653438139866212006330040258010605797614508972445082632786106575728152364279327370325404659394503153799518746426574399722232446179602190522899443401746444344572264515185882613657182788213831800174546323375518610756147188983561522822626789741925642080160880638354155980730085882874147304799892117214415833797529881035277057617906804776566968140829327839931880597243143711117086112837833079719321724887818364078287804453014288044069542472199135114543075398709333953337734519483115002302116718829967274818341598600484218306455618902068505147823185749509426600038895365604391984303348597307069061916503086760593067499722090031011072767065585734560601815401476087266792447976161864380487139156314655475695883639694977045889802683960236364197353896413258676613641395894230639540904976097264205062793424985442057946477338838671262043195426276217488072341888675239203279835450813674934389035220967025180673337383558106373036737931567146782376350869032932088313203594325737545003680882919419570997274425627700461476305292813698755637571509518660807718552648255209598981034156407355579986920944437689324625510712284497359488921391511308909711488513155036153291873480976100714537317631055806736319372470618499112560822889581760255660747824597841283575654869815497726569830954426574184530622630626201621003771453038469738911209836349745992347719173551426092229431622455618108641055797056538871469233843892488621092300812414975050456021434991343802582927525099018117473379473362565862989514696249065830034092538388724201275051632611088964259249443122194508577349811095881156003200706116044255707844297776745015776421980448045958508979002074084670909081245430797627869814238457632217131970890797797010748459171520393002837404468673119881191693448780613784909752509758826106261320174635857316631805285518504500263486599297711389814714323717320213381720239073981040769418632287598942687286837156122541243019929050904404154310937736096504974173856523490034879111909276677579182539571895618127230945333401899703618666864649330639691107684139485259498320726898654472410013675775102569465196859392794454327739903019058335047357966250260392089368205885812226848440870258583077058585505704276294150895020485493192101034322235925745173294366528901634308481643986058165325829583531889455201981857943169163110857576182700939638886223224849117158288933161276130307400497514149111550789211988195833173199513064272637119840034539278816750062201274240499888979420373230218759709324468545844429753006049880344885369834519040199063171130927906769251972117999174791703247863370426835405739566881581744143616190796867768487346374123234784361334521841116359980045680082703961666908754365663033325932627277980110890390292171260493774552573726790370221834797467712690828450177071110386859256498410364483252363030289541151744049651896579630692366581842809551222427344962186807211647340280817996106031108461132627369688435149800399046808333379287497995559053606224611143581214276750534994061992098224757209780392483221907357305469126344628413620686162824953174145802233802908825549416234179799933868030968120052313888671314333648618106167289036944352283168040923354609951807240024373205144481241851294871717905819272489835424261450283735644468758983801779092447332708882423878709635070816947668666705185276476074816149612626051632302389851807729767316071588987464620424412828761414522475593356575119319733322367385198795864553910947411391799157764875867567112235377734649408917628228881196388213114468403428134773255339734686623314362582266525860830095557923507174068305328489817610119678493511610711376955697930165026259022821900078536786115922275796566079070981548210392494842257169250361922008410077775651216128367826769088789709592412247978219651426895462015376757450829108354366450447942402475780704095667304438510930201015214808337066305023901333672930504236128460671006796230676426846324900608323983923086830292278438465796054916722173675180486434904679721123124402715022334401659363984494310180349830978351894439369679574012707189466311937997600735774905715429658669915703271366514414484535080549671595232923834387041628007499088435592492313290235591138005111951710653302138076196338544079604677105317736579502937980075777021372040139683185445070010355114753090849226875930504326402848451566416895776695454800339280244090395304334760353624743810584160669514225642425150665921939621796447018033111965460695441742466679816969241221420457517598056343176475725143251825297718260580976436589069666145904054177558125497150278937936441505716490268045069554755081339241198612794388970941926603270494029664153812466075841563042349913392311305234438692886965809088828462186079453628843710099081558225785775142267565926177896228287560727336171137704928560559265135576829386036418140651779434388170031709202343127580781857888935965149633596339962465047953664511971244101517460412971922845907575984426964967881854430906670302149530784570417970306958409914287540425887817683396780917950977531592957782493583635502626576944054490895970885981550919393727375232312298227496366054209541846742875445455364515630952595992310860924043464704890089295662830413834376618354650080195164439999710302387715696590114481464515806767955147436535446077165032659355676776793071492815675340353354741688880060430604496827244060664504601091908874676844464408065238834876434897487600079354276829981506564764634353406961568680015888362493074966876066699511799958073509342545297475402461297147755843102811783414202559830560472984835918893606859284356376600429237971762707184884719239237836326658606648671394525059613804551609292033508671091343902350639623810199154055012153171999540898482623668618797057750441763143779613814533613140004369223549728763285898351557917006639959498926910245124641614312182712777034908028180496107683748324272736043970115445803177377921584094350603504856019510087721045978468848989436642499508486874859755545916214665051690459850444450688738432282361947793396334804606910708579472941939171026533477267618335086395351873122531904127620270567443836869992850699857717068101577163743581845974414869703859843975062978583679264925219106770833514469335991189591267229386180455136456390705133551578266818036249115873285060015695262065109601714547198627189712728638577745115145702724752004491534281049454669392178447190886010924034837103097247389300825457588732233586292387331275559470723154832328786697152523792272419002949988297891232520048585773598565639586635329611356321615465463687755288820911585554831254247193190134395694378606170652545134133928201711165251811647138611248159464216355695617323526270445878954151853772518846763027806484884327418388589357406136770806278726107954469978431699048504338551896857811480695314969631089567814295164581278716024563023509791774334759464560369987627027202969068242396472771341469829749341811231600809975044087189079815807765170646883490530985387871342002088719112044540022506380653093271359958325430480794541549827113465833573536298313443943683173881613378525643394779189903855890565755713302348047773393146844932160562639909023056786410475408122721349422054421043526043290720422154892066333291291736169188335283433130494617807284974701354083915853302061252997904285260431999169974232888470811801392151821532384252596787980002641549415444100024945940606152871001898003452851482762620172943388479685027181936721272883429059897461860378130489806560206573305593347835293538983578518407006843063335997687358418820856796759560527838080308516535595928760245421182047685290600136244382800207552412864847118375581691181491219350207917548879653299242726055332507366787490203432719715917167218867829732466336520691392029306904303503442026886886295986794569068604810747019428996891711471284391291064898083424784791733849852822882437501940731367532129432602448509286566557359905663586571065702671183583149163868358561944617387691984781639041966374408933701079753315876436258621779153844519268931965255586431499593959948550437156708521817145748545607800333608300886908032996854334443173311414398085327418854411127460943755783197518047397543367205131470429136625705030787244393947233797093788785033027739365631198744884599917148373372752724256855802912255976957251069822371052921852122046524575256326411773430551415199376996645549676507895613054870129517774002174879178364775375238821524443264522714411324953449525791039153016358410205944522486470338977960977856569592582599796682045187549508065705755478398552267288269448908846112950699681329221773324954684017516547444728102446348295005405348447218880060392356605380315772186007915557184176438581383732920326564734850015975180215408012537814036762436870807753228399247014561435368921823649583765148852775759087671568864765124007662282902933960049631761922856205222922046425425558643756045664824900838061052955369091380926906586967627859568381305134887867480198568751342603937650429919172586898668520729940361173523527360994291480894950499453740856352461283867080352095210563032092763925670891051869654593755624137313183889765044961669854414203068055111625749982742911766484657714373872443520822285130223475667317279867703442993068843902668515540736056419564223236219561149412807639946493151551032546328529622344525262955880964206035996798753979744365059400538543693282957285808258482837274038564300287774244515862934098964581783543871969963615954658965827866617918132869648650927972612040925052736424234878239044128373884502119591004066995656260710995176904623538961927012948823060349197189783176002672325148099521511918597278998183456317632748731813476520594309162909045950874832166782016080230807458484742650549339288613439821771339174909406746149904518621316729482419397300519326032418885328651306418866112846333885997517842948518027800501380799279165173858165579448176597386319407954881905049827183098807602751661682572400983303007414621458590835516031428220154082303709936568498794373856656644215515835229625965161598244095500348790286819411522914774302565925612282651390494485918349799407218504602352218492752618032076983121763296275911237119352354883259470006903273296028445594513932122426620830632787200178358327144881993992764411205463573025804198667342152438610307555449055406062918578093405805609224875075973488106679167240132441911143196582170714588757106773395836999977738243141901676775267015359638876177893638169261154330524537980628438893587689190427627301599993669270611341900811727064864528231782407984207375344337832483045153262417219369892102396219209794166271424720184308770958654120221141985887107361531198240820869941440457536059182704646886701225387227404505959916555536364719456309133731770750042529963760948630496966712668848920386774188408026673268288438549452711887707656176140942000785615707170214233111197240379979370170606723997658497540985094307287130072760403293025036879180614499296288642301441775766500018280383866627189356619407959699361617038614422662453483688510487426818672600884890920552425098139802866639316471953607082607224289475015767723043818177088945104107200513746611577808807419166493575006458297753527626697671386943592721121796780984356746574703120438750130512645979113270714401997948225031083995086494128188850007678126450507928408034253015267401140676878370786512524962254177631522550708150314726459898873168559311467527908782578431507479727653788453951490751021707650797319492619620040507916221810577280739993614785799942818387577383931464544208305921717811466947946005669337267044077384172059047538717684272607837383036477274917289919966832700084865088896867203379482503950937881712703161651929786023782181424824397321510142614868738459691291549237555353897505646743974329413648584491718965546211539236597645472112288112717786706038656251184968212293000165554953160660140097873217304207702126146167941625261931339843467564020507792944423261683786433789773696177382559717241808154730162022156359240958020719030296737329575829870831872202486030435651169357202948866523902761863050408623367649277070396894664983610580507157503718086823197701397032100386923883134612257548880776288786950335119468120226250085903526908432417373020813279620285076112735616712769282423083467281074294374994650049278309600533417685476112447277942130292027957157568288724470063597786805251975525167266379880633095309413698634910552945033834932931285219104845299428477471196965873766431094256452567038115669580999397338761408367384179398664286401773160892441614850361145857429014721109445002040611093146523252909695780181635880043872869739566170811095829749748758799856777122912644289514249530460117873426632086714850239440905441678198429627664201594033253120308274543893623167652603080113225529944305868142357718531864031958810596557020528335034887811643011855012885749759695879594919723749935109753211832583565630047633717865657081054236489664284773924587906930017716810452841234637610575849979936917209440863206865990264130229403237922216644580873613884750271318880066294725211452969536947807880301334557541773345879815039710391540516252027284591579328247677859696764134017081328907106981001957614964549939805760491890201017039221853906008537351965064831985517122005371563495702244653460353896857365886709329313653244028136601709811349429363652239480561232479434775185590007108972736905760959949024341238936351596495255043126863529455736731542012729924805136904045415779808315759199011822093054590834767192209526765526243079788393588093984243127599857513971655248142603938197239292701400801925124841889612144603690631236101252082981340133150368655297497957667735096620756105142217645690258392432507959718641403562870804015591400685843619565605637109573279491204322871361408468180084924670910744732849536010513010187754849514009902002161231743458842303920174767219708791285928923807141470511016840115061636986651529138253955998852372009699839661789231339727017155729971578005095661835931445036345021057779831429662049810391114608818376425620875122036838036382736769960501618236883180316740174391326176543766280054822738064243065168446489741081646068931050915616386687396294738475112975662741954813799475376376877102921402494371987146175323810746016027514307142202548249038304564850594948820385953833270663548973520722766794749122305484967651631401410764163349885669121722171948865715541844359153592590802286556322910921789600773419584510872014024078105293361484330580202982978869350538363550512704611473859058714211161898189448704344817691732400239244393299245895994128385264355209270641968922381126263899306460115780164037385782391851406331017724018461219335272037158945712708147336457176221414139179002072585339098530804997180457927920718646435606189967674974683437882276008774408630547429029600013015531987451047131341695665717582678974348401260893140731196517054165276101082229331907177211420686757961186061012508732668845907913491324909755474131125832987466132199032228645825624253748888038306722844256437643228676095829303831856786713762226876694281493467071143455314190811488590905066885757583745048506678176460675922159694359352110697372174793899539298440727634575118894427711279590222188616571533248685257026902631454754797905596979643345495578529465509890245303803373517614512759410493801253167513087696859688996873660575821241033594048918952685838719190468850966088241496758502413944485235562626531070604273624275215741016283825358546943469591756417452304216920399584393397531334146385492372111246909516435867624949391561565641543271636470219326039689856021995032726864143492585010227883493022120636375903223123275811535121666170062219807578066510296521743964328887792047983553653896862355395727485691743707585134628802580013931596857333440658148655490724986283132861850227380714844306354685177092099860770099135347054476387545416300776537959820246610053860637065431468515526507522070150503195716835097487593945704588138115830143889194866504958251530635078919388355137882957706854859240899507028864489208633171704711356633226983073874901823225019811064030730030470737511553457376869973511590857188701879423975328145796806284647517843399666628653215535431449458813221378690571782283034526293507298989835458603619990426674851760623529433649235466392111815075115052214636868480449210989179825793399175553476647491395919209747297565767650012057702156622106659579863796937146543633766822339117298759033800344794574379829108166930956508672287963907792937016727808315703107358879931166404609192261364466229784593991382296315069964611112930520872495049423665566345411883671794959580984602850754716519026363909786436643554886616424376589624020493582187750441881634911551050969349784721431536415726237183641866059248544332152527153243251749531017942504450624019349188721119287006550107485245991891842162707378507636650076207351113912700082903632396488070488255166287935422277303495940757843449772099696319408587527495271593490498536975774708871790302992788035851970677607122687610608471040061348975609816800308165312361832222618445735573038096928192283411931615201746229287773438415245847805281395125082843849530777822369752185325927118889698990609053936773905971480892594005597751663668070467805871248576290283400917064191985988347597828547441064788568913849499945350056991963250301504878822898199917183704631606413304741486835053375855167222593073085323976798786856282459391417107571598205948767623622494369976516054718345599078943469860295360966999984920463079684579539195350654508071531392264758358824634827561542380166345647793196990566335589589372522055412803081160710944945730679706876765725043326347230089235552637776522467648097757404045983983282656030735215909166333761784223352540289199603316969966187574482802633699608402812602891395331722015588329547106862981056646016910764266817961366665513046666321012296406338024004784912917343110214182221412352396162427542834919821397739556186476220833260213779168271742178975859603264870706183093521154695501599498128898130742874114603385151394465445579002057332000762119396799887818268278500040515218034893948700336454455393945769123769261434982152237852566524720259327031027175881576036348396205182271215590335169455581426860613128282503370488475646603810112747795143362646994534419196131265194307429373953035830344314258267992921717278843896500925123416829826762763619606163150635768622772054920534405229283874554111778775466904273126759886887619169899971910958349068790220717222412309316673648072728508352655883077368772980095049316019217003010121257757151228678038295699608977272437663328531605282478252416921760952266821375321737303847650286647439283231460443643441876927968021158083796362702612773120583738526017012806299297586063177508502332630532288595045283431918214021004112909756430860738880201017271576510561912949338140409017907410080004189617264966883305345638313126371936001514056577321198806130144244771172482196433600029443270724586939056830895065012437056707832960401604418019901664908068421167464141406130744819110084266573868234630466805166252622916862054956158402717452321200218495623374687379723428294101812090523967548187602270616338552977054353982225575625394586076273685362361637395716653068783953277920700853330117758886944299258559635759595262645619497190414011714868355371373629809350019355916882309982806623613349167400084731045899984871349899892465213167592166230700203538060948262436966375291184527438873100740103029830909133835926307445766903025179837188170373293454976258751250143836201746175417666694196470836939563359707558470630268317806704525566969653633727306404637467697438785815787751826105757951805526309971490292759468394696112164512436495272726401848784711319810558723849419508635933263382358971412199474891903573290346225791219721378057253930848878068597515636351728722697520354797360569418506329519328900801873512608720513817594662836630837808709913249052546014723418337375108033896756782314551555244865586895291550709544556311873347867087108281860246891739470586843757798077574803107195443336298765891250093759041025577043328969367562166150329203478005262988625369272549757956041503393685404422869100343219616529777304495571365954822216348599373771076128766196226257385334830704322816933897096371703612178464790819951860449506758794101757820421110284016738859352727239609207975743073514296906052513114957503589766485170576583380806710112812904727174153960699423788113138536635758013314572871402202215887904364004222356853870582105048230277571978111372499378565801147145050354519520780579041589968785025814221980771205408589869402470068020554444402664678357579185760730550403382691249519958911717480412673256028276912744219839177079430817875851214255828884731586393718467616959773013811828209893385935228187918797779071954542423756652591666718750807941531740723995912581121317953320889887431714220562696694908744507864174397556449603687898845057247250142017275652656260381625226251476181600003350508866872558596724412823357578226927655867157435129064240587000789141579504883227710303260172588223007571030101484331308193251637702892403570269098210946278629189971201772561182321563227960937723163458823273135706310699563195522644542131483678562217571816711408704686287111711115149093650865496569035487890578350541096470491907529857407026527334469199073060014905248011365354104896951055628717585876148369196427792537634003317455084508832102882124092976875208230184023166836841042464551375193467500649405064497327480945816343799497695350884401340814631758200263539206301492869273349500730222583783770274688651765251757828946369427699814882981991056894891543385449085023842952099218521659427304713769694130553547915515496668196102189503338591662321791675614071180192903231897198717174784083633031432246978326678175583341096076542084541896532609131074563370938077487639217724482677701227978135948914536841997008799097709306041982523784406308881150090157821832147894457683833885867954922783587695948257848798802133339960001859416163588151898565633705261918370174056865458657358433925227395996659057154709558704764622802359485719550638590514751543206925924483479663960920486807253902574095183807148301894096854865007583018438413913133896907518223745269048400000625207460169438344637368896573159382429527603167662308637230399856928790754117514500705134104507577141464536283792788388336003745543620150411934020232110873316023325654300185143619865212813930287703174337142259117119578910070126658574410275019981202508144130412192438725387164141506170906101582876493403098224949760843612547904189474215687905531498594714986399541851981641131036006812760731896235702031203487965186126153644382343711775016108624310609303279721807693415195723406185714466685571246686559098913675705105485600407543039846114269304299559890573812733597631762261628451029042186106729991412342199580323510749332112271985586901944202674876211655478969409085242731685607688164530468274066280375835956747474143964777978786835459991234325257207034798975372178110615052851296408549413520411195180339033284337586222426114328562166346045825073728554445149648954955464434285878935147336786676195167065996774293296005574759583769107308126260800579526549923141390216641843852317472453938229050284751938891510341842662649261011719181926846896049290666682079473173875966859493407462359406197324779856942677554797796627864011169042613728165007174542023328649247146152749582529211713309945664630973304963608945977289668054330438569985044900625150328478550161048361902078010241758904612727673664901916317607569346053621844765255993966361983294403221576852009237504765326415608082565875384184688614294849421759067328402669667971601253310701234234689284089725034794994446031319513836945025285567731596970862696610844783783085487980131067189674153493400198315934624519187291455659221258560138030499526634320938049121933023821546979131598216497277510470953684856477034742491073872264194462450416145086630893991327565995283114833770298280292880652400642409512632099109957344949529619566199644189909763783611927436053244097023418381048563444284464301415577672159937037857618904431003941046550036798054694864035077771937278033886678599337677275524585726829078401382661228578739947884380603626984456140481786791436888375092572034234965904393090654644523122336023964888917642478500782613299949406547083907625873224411108704184307550738450467365341162152526827956940597178467924394103646504364054628381440531095782328175899898275274786539314656591047576498902272643168041934255457688445714249423880965905488195801964558631234817517039159406672427082907704607089044938160682688818999407779309087359596345855110391755378681019692677257882467034770033804397149778301836352653264138533041650574904572456371801277170862011759091761231827626041707203264204438032655475693413553931223726208771181587940746193032906847831875070061109875688332998469239116342505870110557539450235639557545591828859044344705581963133070099039286091163847421312614501802817199367298911126296445832717994287093018289004824208109955542701962989150446841580543794874696479957257230622301544142712061437195542918260116118366767698617323916923089073407533482960492943905688684471591063139242382649359685922198816302555143480338096540588478394929988772655291091569791330491778907290059025357154236549570356052897140417883219145905031859494774473780325211974721319996921945030997157913958739040090160475263850341813241994444434694244772556992748497207204267009772221508442166516767095954980522607100863228645904480577488057135268257534470773377727371561874876597211314310310187255200690546352290489086372160728946477025050340021076339668487586837974158229646823093627360074120196899078504968984879122556260539625552438586517507949713129473018717865390384506998518027155061292842389414872332851702842518711223805947199203781468961379500767046178575110236952345952755459352098166647097500625223562677866477372183219779046013185668613565960902135420231815346734783353583872191478313486469807112624799859705940590513130153322764599025556965085758663737668982003009096946919182710805557199412677357253813689503681460071844248679989868241161399281600598652995784758163244544754965391895870946874157279366827102654264518145601544581142684954298261967441839623540088085194057462652278796808331105329218724786609657023721153533254363533089588333936133305359595507752497881861093440544978319342770542065363258728555343140772909366867004567106654713985952704523820182395666705206106931900650634275412163127515351682038624149267431008264724844600070838652878209309016275055669334768973264381226933955082861868969786006613057683422684148458893479248138794719816212058601096777074225651607220626967075682422364639738926185245688680504583118497705866971336525236617865107125936544616438553390523337649992880919939762462070300316243364965940012750579056383407902937507034008502886797705579627445820539309314612861069153501399951195078019814199628123366837261502865650225516694643738776207182824915267872687335634860498007612307109707353288642025323901753978116406045605126531756429422690023214838624502125558337468167345836348213304571309322458760842163005559371686433649856099800355677053889863845249114032411543184496725371036670688303925404874729176772422530865464339346210567065332446972359666790276373550739954245886119785256421358015754690587878710899705753375482940744040052920553745961539136293237960892303852774925198739586634325606067991960739103570614879441790286575307976403637985167887296779771368909698278105912421886720039376365311573242853247732663110330831817112480514908806173561279219844918484180144537295825041482258965338450020499405512447423334610581014950119731686522670370247863104642076144248201707940067928101155299517614527468205563125521824451664208804118571257218923190142971210852374373775920991566205140641286432814425747970679725599397200547884243435293836468806978173420820991675302941257028031482553980291279361150888411615335739843367268107452376601153575750971987575640914343531832639894532160336458001847172689138970855248640178004012229855521939376353569633033855543510881150334407823183270022411765774427538193779432637693464042525918547878355701195087128639260089505006914641901056363587000398923891867229217330247099405341871747778873370137791735393869646340071148527046259911542278354347090554243690592739107302441818595986970087181051835288024093586497673800408476176712480557495791286167114956322021926052246792161790889751176613803599461580489825437897833466293297870564249249552843288531862573122020201309433847406212019136341254631422970006397985297598175134840505050146990616535471156099605868208388807604679337534510213551667138418906303059076424878527257587419717859044386869383227404029341039470950518783141466530692732806156305445201059013780930707962898701042162538334659171085223396712876619420871711546623950968310931088571508446247484670251538184448874124546299125292734578431916379401094931206422810224067168779738615289638830585933993814570082125302279813818850955070112225269269014625250494734135686570831041906521878979255604708838075295955464221063408851800516629049042591683573462145811756501311463724933417549474329096598406406375420090514978072357953278816227193156466249450061565108610512628823308070476718586069535801734842545408242714397277754196307628817069438682368776486625606264327052602260068178443319645891879899955278550501788876892540387312361586693633703634952493570677751089777210390952512939163663672078800333773863941306073001782860500276887268767934406912727770820093943676336657260188126681821961761302213221965969345642740477445588515718309156564096794748271500878249279755583365180620585817606657278896453382233704756491060423520835927469217232163765702832751644154835706365111984173013261840851177895110605593889606464218329745447584114276952510208704102987591352420107211701462798840180711800564675442982725799695419389484459666587885669888297461068417110224288293672490393993438285798955510194475510529112618727136419140012151171195879323053672251489575700811615296104368750188222717172402761079463092596239797752873044260556704006723141877313336295898779127848534054732023497220890505530022500180538615876905132745514256448916712454037487773171278029544756243411693429080129859462719304089834272949704933882079434439587422207971256011686450282817528512768320135450594538767789318764767150827873198605803142140510485304937193010867483725559350989972735652169728819827895155772777676028960579781411625802715639457330422105846644164757817463274031192853030799840936753448088308507224103747273865350500959400929404301980036627345410775228822586345905865883036157569137984303139680483633002481723716777736942598172101856858242159317256238063288650816648813242234320392124017903118470726128405340219321245264245814783573080841909384123610487022014906461799413398377649411663181087039958462918430502756074522423564983612765619161130483104616194331999207939723486658351039109942098484178951964732333146046151748924945245835053087697604124157678424694356204490038597392000645502171946132485796962967411283367048173293019713017075690930569839259243968802469758259751575859666875053034632823304886362498302344450769749575377047310045351037382768229150698041096890292651391045547107801148220861057092390073271443898074151020844225093015886571720632796102012242895351620579446057068556351186849126966621196316575126529329721021095115360255498979112973267628815644580127163107476420713804530293171386511199019526813579507550810013752180482104049652254001636288118103147646860932103913544888233528225665122767358110801511241719360292816028532529347435862506092818649450888802456807418671082735904981760213885493461579877659908536568385409573610325640130512555544709533053901288149037775750871707603351193336999054079284551810116498529552070271766724410988582637731230294288016343256554698640291970738121807955706684800016140586717868931577686879192433529805903546758539481268759945742736933058196497086807208810073115447253399136764102135692247116517010366816473969764747196975021658853820976371663394211370862046694182114172748935153516372449776763965586331796596103118026555634915525432888891389126667633663032293313065698646708923384550495016307671429587402480664957391691118974815006877991530944340666103120570296510025479754928964915403139802151722880849448609559367466353066081574950953790289500885061221442221656564537320137637331380021753136143599987728730181890062387180447209819111432444276168847247446752719894714703320969847591794138427668861407684938659648964800629303987319365197833731561715161343012646065347711455066410532615570605933162448730982645363093390521813197757459236862843706169891393697270031762054617461964761317642369727565763617869903995669291355327502930986641814058214696969855195369649135043315523858846633183554086864730716650128251887019757413710087954826938250341013504423011394268450174538323935698480577714481957374442255215093869409167509081810492846020517855744935735151801553558903527153456991038196454504361803475906113949845608220130218332249680839232465937721981758611350228816836231462590075176930667757594285758293765708593707762614727556394370059885163900181312591594740207946669940193058773216805618143870978326761892675839390476768556108586416815689016707223735171969626954330158881249844611098146202215807723546626198362204367173789800807705752631260338382349758322367459164220993673427174920490926768336967281574850801775540337278901887526286687766596689729076321120010222203958624461899695628198262050947507837423944246703527276273361873253959594383855565022270005673116780089847474187551409030569653989022615269334633359921081477354272500423531741673539244746774862681767499624259652452604255848050432018871024297512640084349317614280971173712666806743938740775138831373900400994615035845337985533373387004242597299910523088363056814194123285711727033819947475173326548476243566247896680938854193026161020676924481794731167852125235565050856662036028319252479764010716316834653462971175948556088076579495477155122474642447737582586194216262091426326932366140476536052357305448084295883068389418392304307737587470201603757532360568067381795647353297024824637476575611536559367092127944752011342331662999520781410391794851332234349209732675970768915168251191454200519053291988264225328983248468784018376143369312153698111743126161934615288002691542359130681411849835800418668717726679313229611724581939701230849994442997313302666286387142087909941796911696830008922295011412939868785393334615324980459766847921766735444926447170846057413021237908004224667834186933217340470664108213866931849864407499201193013481844011499840315361549990176226333347587457965681782106003743427231929486585834072676323984926831982436121833964906001986954801280680841609827401927329801788278548897194479134737304573622837727621723857857241024046736297711151165014520259644520272666839881717768029594361934073049497819938819161100495984554982882582944272093941936168014146172289282579832157816543861494988459207100947218401461166449089097813796368785931853123854661687955075216568771615544097114311509001163521007057921706057001527453069270356984772335349037830843171677550537067797804764474187802676655316142812733397721019093218834872071882503927846692423457455295402705064714083788666294577385502579827526367098019573320427716757336683805751239818008095757257049619039593329714025065286366880794374241454670965701858289723932312455685340769015419580227434096346932293835947256170370429830030827193544875762094564475989689840965947648946444428602494085043718858116874035294927285793507479613313310142714766626208246480206654245610802628862458481456427134594154707982358382201782685930911904197797551107490319375701837295659981101917083224870437311108640857736824520307281102348401784768417837801032031878981376199385830450127065382148917986966050566255925400255792923371042457863460329590864298520302920817805862424514054229594654635215515173461525671376752683298532376669026556941566072496069819788136716112125576454641398677805465344274975009980425685254122086394457041223171363751902214620493314368086492977282487139704585607017972222284461140767302654025087460886982076955246716832851625312580359092114055688338676105316709063476679798345081041078841532389774563298530414784124495260495939556793907420414492372403802996605746277554263237541920756683379036120139514733612417105301868104692199605790682229668686588553106419405857316052231505307710543801194466143836395546311973889538758025744866573439967875500232827107541255063063134184171889251752726404176382333752008659941190035876533300961887303802288701324659273199371623235403807094584447187463460472370694496272292090401401667262061503971819864647461172751900832871336905085958789107803971574175057167230807055448652528962501709003840776586332819542847781471404323875353619382195051961778979869250037397678933243564107945367720111950892350532855725223194386438088515040495784697528508016266981857639605390570501856574712916873104419067482280410041185413677421990526461251655839734100502410890924928601317658192426532802393432239863885206854028428591053672124197500379493973760280648426123665266454777638955852300495734828552306318935845429088835175693375055731794333267750135921387348817995811890931110005663085345353823892627670132532773367309370529742054222313104077409106204086662657711958809722859450240554389453813567377031236501725826693258373193347301335444486738579249439039627107638508776389207208739051242753148306883696465473954056599746733712719799532445747917776497719960813490751403436474654089703108284440913896186714997192195930619279289638341225833022039097854728605633246872266812955892382116437891863060094847825432061897074378752787729583861631194642001397633923990551764959158586183697312846980695993221479676048500939940126904303098570413816327043092570582602300666054644368713274998919797251903411441471545814321931150577004607417582451050189125134684258492236425298717116635645879185471911818740554960177508373326116628663064677861445798145640584495228367219441840783616011263478357768048503997072242376802314078738035327908990088673143526496799056085757385470158367094244869959031394727945429639761215298705126814898404838293268435240113700770870984050970833981487025971325539520953066157603349893238109466640151454169405678000715246829183106009313327612482956306567368147807134496990411034669362435269875686803932913521343303252114196560995133448349662384764083065179714030124224068474669589983559995032521006207250181498829808377664797999851717013353206701679126851849707575383206935244725120188195512891278727024256846204173051660526892700522620699124150869667873614010786328921831481801696955568723605836529355969229052724098800905585935672462412654890175450649171809536675736584705423570264459130470849090921928817672966313901411304411817699934291719555350321934921302299469861370946404996956252609627762883682267723887616327574185693834059983104680580602792518372240620220788494761759879796058530659837911978190114400613603402096364574801894540642200087781745046826581502740575102585644847319053175680935906240642082505864480314280219792342407690540677628906495087177612936840943131253333579892801540546429149876657077773937944386430837745342107668970355524772635828153839480641841572723220308952034921865292862012984963323257211010799829849754891441330074855187301677802617500809906781724737188841978831953240289041618603835231409487069821086928175240202295476368522506918735461937306830665014804307508919022862216696526940789868068301812620034575578531179721718180311934139271579565184316891830564631487078400140976693381523036962153211032452833264238646295060634921525069097095110699418554784034006923025729527422981198811214173702467364665739140255116132861164523614852924959020563569941211112258122826385338867720803556098817064703637353797698852220545191905913825491591423257524084064393863385490729049522969020869734859521084677168196823862548245496997151720947730489663314681495237148327444766644659088032019388044709174455866609323111437640459120827979017948091194867465962405665915778509738441875861408858135457574132836351609946825741938565413390874582394004455688355445380315243246993893052820920915060406946393827780652665512681340381428883145755134476397272285702439478405002008127882477737561701269046088110081347981747422168334659536378189368924001110958325134369223335546597948588607359535423774186646885694407236174464453169171361455652759845660491705728809759450405519502112050323081031965404867796159373366523406515242603364174532711948779660917802531291699600613363911581274572229083548366819995284743733434663122927724921231901908878371779464570464331433150339657923796259424161296596616857514109381094445716567192908242983610146790967504462115273166790320402215447935405749482047681079131756907999283688928689768794479221287787512149995205370960139645862250352340162660921358514814757013688744673044656138871191865089217878872154037058016433036678698441794472084509171654587392676739896907629623813173532291177170307789425038229497131813867601825831663199107032844320249136839555303469523863293517464660680329725795385731890431560195524801936097101051722325408339107729048896623090327805841170606170045798067360638672515893952428779071896903167825489468805395053819443920599136801196048512914002300094165911825123708899924932175894795201329248177843196800951473524419399289635045743195299033874123623832596959330665997793226346198731123161185023824284441481290414114772502843340987435243083350715441154179388836515173349280302437298863750475195139223613755973419158455950716593833876272376078864590569742487197012864122406019215434755461455042311155254030932139108184930370997641046393619593689222212033116558193397869910060456984380303751850500621261317060750983232840962351247352497674942750025332926078708444545974190893308514841309290520735319520438244476195236658438701696640663010519135246901867620607591612809557219787938551049888607771419273339693481639981224049865524679135246738639358273888042536331957901255945608667557948970223103304931884990338393382909769316580221598058443826493362903111133247779946874646834242056813377737352999958204774635044319278596015601900538329451540460704547997357081367650076109744973197248042291821349853529943747203038476553401080227225531757574755423579416727216483825865786131217280677457709892320663697909572269376783758454144508163355590125225643401955462787180716097744290760240810218730453950118371604559501476562249789933892789005485467216499848753683971326881889438297243628425871559459742535552987333079744030022322174572226985932925503243051232247802756639075742083046556637441412213764025096785143369950419527335280642686979540589999788234822340913669137379565583723559064881373422566536923438218221716557198034815943697774267235234753021463355180038385635031925501059737211716360421767681315119253075959738136062178682452611603278954073402577533803954833790975514454699764048428798046207090548743796438627835754887513671550633585139077487493570287975028724725203609990644342938483251561900918895353861690094207985181558175672597359746206132753259339002770588334154826391014707410051663801394498813076359662662461242544597598365058929480005250827289202627789248567632217873295454519601830180827614466580828155793817904931999878001983649524286921196232414006292051549622242354220356651659253719670665977293701261190842978651202285750352489731612078043354289164438920619281986119930336228153998310323355112793874285447545097886576309909115312754434705689602231191351183483771784595175833555313921028996126969799062454471754532584015692468452715871563070116605122932700457509247232634930207106225933591173570794416189035194453827985488599300151649144412587300265625647414676940927693140759527737414427038331776735832928483046828766696252579412738972109027132294553030312351995027108244862358874238192151693960091207991194299775453373860310611671076990668312558138128116808179331000020723704665846818624797272166139034037411789405567126363172547506593644924443908844700175654895952160628390726267760057352105348551783911352933813776137585684444066182100556053315951505193650092468762962792031154068141608390379230898012038610323146377931602845858460674949094450931114460666444013342067769799150896210687570096741814535869922025862575694599810700578392533170230984032194197292109834306874246127551501602525967342365807835683082776019600535197032276858040252302512366150564475647123647301770785030368698745690266199990234070473319249028906806243291148624280416774335213699441712648194780455100751250160438285299267632063155787582927750466714327516312894168321347177321311958878134167801521986068108990249136465659823084460149357212847721406466009925111815769900237216807377341499162836768381844845666629983394957556812727981613627881109490293894160397995110244273652056417779884304621037061318107935783335263349427517582123485134444656189092410925428681060920555165153890172533732231801359530036431681267657623221941900447383579965492238154848917711076170711965360737453212078593842660249038466455932175493990634208340981913121353365812891681882081105119922010799972966664329076542614604588184967483397905488490118500172555107675272800932405080234681568905035858215587921775789884201097438086047483242736037076957125801868246625033262470467441970941763806215966303804100875410309555609484091084225317171320936856734579693093758325699770046317267398677897375696391337072828023366331482980319133419182249825589151228311902834122120324942307278778928902740505362584122778051774559412551975598080695645222799008082018365708108532251413037404553391227248461332283708091189070094783976601891035398394117232118060879675417486200413975767906902626640014566352371351534964491413384497782324854143211502976187035894851850528209285550461054717513640646401945682239709231136251594133356143734737195614466811790691268062752817657089007529576498665078585704615676955240046835255340209493881704296660805132084032808994949695931386674179416421821963690479531299669289832212548928282206633208352277833378656896849081038742751867883263736517181063951611795271053694578453962166907284523159300739841481305402782501811221710051531472700368548461648642355069011240922428882579599096977924920163186496492080432711026877148320810332817579566169095275165471560909817648203511023786074333153592576843054224753727157613320235225011233176200969724748214511739023910619005663809155750437539707984673743592371551441868003877513167360349099532222179341309437938009847620583839043421563461448082706367886375568583818698648500938951724421643291735675755347921209087305376289707368141397107399148299474372698195876422826107384467605305166693883703419685271276950381904452869988754760467371433081947871124261243098923930246869903135240048505591987285766350650245049059214612017446153511157236730267915516490115951570197240573361711201535800876699094300164193477550293145567571644356687298371136979672470886204155402594018858567413998511386273436004969698346000095221335344699493260503357282142746622704330708824864798599051393230889599658780839758965428126196347447728065873623108500573514211890775263916966016719978155703144169493978035527151577726044643300817396468618720882462353045037646349263881058188327601854707286949912403838016554741593529679545129624835323924625080764794215664101542861210888584688527667369384038812618299696612604115531063393139315952970577587847940359984944149290567304439599278320493498821928700525070900844993262522893784234036265499313173545958309120064276076543995974923881400906681565828464169874990897102145522527536471239491697908194566904282716246946365973986371269807327837374422273173412730678025809614884439102018609227362580316136496777196339456646210414683754788751538427312987844342953806787591631322410382450831012716633521623537934339814421421837846021385413699934976766896334624867969385306160256300418669153416117616364157333590573525512017711269584377083110199964771244589477597833747088523779878918837402378596884247501522772775882294309177919026759980030595396673994978097588736567188331849198052434121813137791205478039784417494709682898789656684494152072914310629248722873340864045163212734586336002059408798186440164137752473520964988623611423534144910919605181179982596064050511883797343517199691736717219680161850313692803019952503959882903070047004755596725984895957907409529376939286418511707664827467517609522422267237538859355182082786357551565389699586240523038434271037793954521783814045534011425927731666531689641331358004848198223819462035470830315309563655320645761901356053774320896504055518077362927962146337319155050793456260290272896877249663605776730102484777263263748059086033588939934134026638315030309669544349337461546428290702029339912409245115192134879622613767519857292914665644406396207719879372960272031982803942313161240620981928150699967968389627973658871549791198781031698364450529389626750565623273728170345485159827905854936166552799286055888418604952000274938152173041506970510081948257440521715434198350394029644051178014880747774214956928616537565212500408696960132478096541915544983276345924417752610795360261291515797180041977212051914264253674960585551705411054896063098429480320271894496340467315977933045806532143588523319452096678524446329815867947736983463416252537397997608376664794579592983042020116354952500940756751674164921321506912450982236007203490587756494805594441371733998194885463444778372653256692624955661450969084471882975488667183474435410423008874225754350701510470616595207295729507140525107859762718667082472603900919425549938421183103679019155753500342647266336601512585916521445731194879488788421224446492417873958474437115439114785185195779110783852184249319814945935749832910001480165954303041210196905551361816122508349760938216521109650455544596527376557855319229875433568567425326837152663280924689797383491643430623253546580551781430067707450321217462282015107425843880072953069554637498726950287920210717456258749483520409766337599706709297695172266804678809827767222560199071229889525263337086062757211696843935522780409979606212899642939760505576770916740746003732885756184918208797496091640707897260451796557587215267545956881859011366325220548844723224132786520484514510952682164888022785020327180212273651391209870610858079502603253669020558694377519683922575497482479030756195813059445142438411084755363241489906139111056007201952824217482896659671466813850138002059795628888458374558678187800348005134591055788820433502096739145680690014805551403191637633717189902057446857807479792992785897703877410450667953951073337950885120189195009507616018726002429602284308503606434557176702130665611654177058538858432643387796464915720793750075882675245151920736820073199248690445649641311384601203586664837401880305531011859141162537717135466477910363649754180685355222298096491276536185557212989679360321351705942114470044499121385673844866341201636899570474812019674599999274264186870332632473690375855420432282195161884400334291243555227169577316884528321648288153128455630265916040991847463564090277076235227040375494981025321760940716214791554687019312276639139511536934515528259165722230150027749863025265993136964829707921818179420453518654113018075629210145413339408360187843227134681044063125943531901346708319582286093066376558729731355109791675211950621436522302912525596301095598103749954823404125807677914832930835980734393504459573669164432034745003254382736036859605962625408829121561130915721388714025113184467307721408560212851133097025149924032024535524834440253901414066926293874788410774152738991684202885744866946656433032496893986434000871558173363553516457318497274483363757853958192945927695741061174330020133089460612299423419934469104384608618101635080783798821772562262516402032315699239360802129675886975230781423607561016376940976860041846067337119519093983250510758387992422838534092763875888652650105098374265989321791800058347033027223097311188184185784873569540756546460924021041744986750940298359922559583757950885386656385751107608617037331955238908572691108187215591290389166964432316298661949130399376169725389498122654565792148816514067292108782175534012213724592410657300631947135726617932084918085894374777768431462966309336559510167286617008584532248186506471075849536058975507363515650513941764397881771133141843993270709239908676388869049941834751744496265218028877694727011116036970748907461872153044325985979564639209915661257418493634749153793461799300233339852524436376940385784072251683121517996196974993147118317779965267160397175363610009376739096872155168918155196001805937199268708077414621157994716134495420921382383922715338846052965540878913101877065744922279396054294377690714107064968019444568932334190770780965562540604553594996759858865417246236999004177555276011141658541599266189118322753667241431335745062218720142781378409648315683024474194219386011170337849626549783243405521801437138389457014086262604163015167603434377824110500824984707274406525102751711410792035417961716617704422887856507974904767171278960371913090443377883147878066423657789027480826753246560449509662106126154094387197507705706982830830052999837505771536962444477885152111748802997437995519284295782600052313875448376030829051771094318566372779909483123766719825379871557488515389329972722597108261091638134193030477676025647150784434236177530810836673215235131673492685202473636530286804627556844299034703353343134363046621528967121219948848929063111045729862693333456963154820282919160938219937356202157409704786618745643973578611794369672814461470930951000522322094915045977474125586345715057379775346957597976436144216970642881872185235459247810733477512060638641710754258371508586343695480375658404320031574952824350117703346761039449676426244298597451484318000237839057879509064664278187173258312457274096159107686746326409018642643446787474049403758135987531034223556634119196154664470001302306726145348678978684822758059185165475007285812580322180866373218029260406945885405744651696313965280328329298118579092967841925201560035082212759131597157300356386573756221943832804821839781065667326228892383960457320980210579653007753694553103268270800617249279293519280823641436569004034356516417455867711403546130024385204308013437395962906745837983523257689179790127399400784476661667071241009251639494140408572905670338328143062647323348207072292733419819480784482422895026799834599496727238767428400809177738906166480954629757638599722498146755993887807924253204930708035077573465049811853833550962498751397114151572990842270947160283325920069374892724621799483409425574766718201824317534434366934164775539206443147653900568575511542632578543348016171296722815859939597283996367781551052022740135378606270229458577512771292563184780927268331053931870970905189368044167024931912017918872061174040419474983323626772898286374849286609411259916627766039695153721349148415073237744398814349385571625998805569014589594930469342325927947714922769092337584828262696933442078050577434853303500935215263619368344149353100258220172673669915078608175034715889146131911646364137560449059680713075463345987823636150675460834468665442581663771257066079608241346893306500919225068611008978478696275672861365551831646104731143317046522361568616697975665999438606996713431171716278927686121621889612037009789317558219599673425985173077785147584509294573895929394367207582117358814196591222703660687699903856544533540673008732910736990211999576208843878235807958831488459501027143915239155294700996354401398930307982957984405222137791733787475151035684357374598479134685102016982702997063239784789459333234050745807540399287401257950609047756583648640291884229772395753260061903826233204205435408950037754160248523291870387860152427688067703004439205485819630067568246571471688312729998098574004287380231697469967077803005485921179804650547264478379776141155634600018800055495191566809174579206581817374682685418714423392612602177425835266858102430979219114138514657062211291442058598734881261954281452521914677397741576731040217655642207093285173365370836281550178704546701974828892991720367731840087013569950472646070432772514208495224518828610719143227297114092220241899529398527771522794642501540703525635664898977523198534522329724498589572865923598875260802830221028597296063953138172655481054915340864840041360949767678058744850409944969443285028238529741038727986793125321911175598298781533358245832426458476517205555015237690600483376860709138443092453302763131508112423432494931887295576523600188007479170852065839656739817377484264161476943897346529420719501138615990593184089813628347199705713360774306431736014603238343385336455386350657607743535126127409347925504502065415648691135380106774080493420539905125637251891343325390775138879867752808815923181088326182209860164815054736325711834561591141007879693738303215365958507917499399508413908275358698005447217827421400449274155501084229675836336326665259436832707769347571398925658131689432770477721083333474124270141268565682719351516295631763310837203610035211452849676542577306658418697685422702359445530417087211540884056918072720063245133490461948570374449611325050465493940521688935078873744905670084608640204292658481001313521384057124769553930890463532219468711518631730833965845553958510647482378453137752185808991363633007527397379228858905134285451532584410943165791168984514163180620718962452201954458050660982560731724598985961285321727181856744142924047443808398319742807736860343624480574592766941412811499689197932053901601651042843917244674274514218873489631883423018450912962937168857782283784958983386421285480300933472987562962306135039224988420996501763454468970094193111060528575943056227666482563283375172937460051631907629970921970855814589334109717102774327656390459617218535484521365267546757175201401222911053282947596159871032009906650242991870376783994317820126306710217096485193476667800121793115365627748112725155313145181723530452301474614053975166914686052088884692058469348462766921676529160353972440646310691262528811417005229937906867639078019534172902542082969125340462219140661313863310023589838947516858185575325610574777352151505948669681389637488047214404515029459845886117669933997516653578749274335917772327769153652431111698595674795743040824224647524576077956678806972599169362486215804600916558274363515163416968015873034326466470631588604686713403368411315550250863191202460505352292809109485087814379989271966363980299751263177563280732123524527404226869915010811835303131734300887802350089995522951085431891174902822527807560182595342648878559093025527967823931772733680614013768397893997814181176258989089989611273925766616188891965611656629329722186556261559101767797250286580070513608968339132064335134552367940203506828144644300456691333317411776716727890858377957057144083144740763096870877980788709688540414788594926638389866635568558250660316229842190024598421009774757330591476197979006511389767572705440320478878185681946119931905159967566439329608635561910465726295487484994978993789434919072345779155238477788416939628700727746611534039214528705154708044711020870586801676726411101914856124453042101681306769885989740697945987505791954529941749332467887654836568888646687724477529852332606496201857516343220861232380962041391527934517749068668560485890712317380677445885604127962820037645868780656625407653390502100753385298712721460435345256668874826611949547432200249839204242032909449994749162042510695303396897549068648063295764245569058603424421387661291311388193801954318180843170609142553376101531534598617526710630357985944272421736054347978187852688266668460050896329185470668785873469209271283109741303922371486694132991472319320788684752734247425814608099412444349957479087382018793066274469573523329210498736781022828754718591666984860062321405518770827496628282529075306949020201046202194624207207091840937467971809995713920799731146927874428873738283949762481960256676832916561438673877681586256802823435433812210991534478841778453176661907160861790768882089386757327084383804009096902395254026299054032609962183685579243855971216702133885551985695848880491575007155907041703469303177969552437322750395722391650714431542924715162557257281026889230779598864332624392450814308940626589125067525415795329815810910759590805704606836496147200524628409220445918688914550997701291715445974487370709282219311882323549967603560813229204136776390800376086986668007993892489508325600538635027956194067841336716427384523632440383905110917197217347467163508100542852986861781116838504669570449267456641600893058944977129418986535688665363825049357141478889889908875301672814048875576193329980765047773282439062671690456214206911599567827064821057288860613888889444876122731515104642589936890209892186232018167160329625498330673114375591787351545123045037560499637066923186797636318084350876611703021603008013360546371078376370457945872601351697016349249289959729943492409387813690902746595285247965672146420814575952356662414618973751114836991264717229160849905871770665899973614810638823294981488194436531075814023353941588123167314206532460823493642487120229359730657331123393195376464355408046480057178118682679401166283650266152591395599133775907075614082988522529114980735941350424512651063505955641834672084286015328623230654288767186430277683389292369114183675692128384407189269654709208300183813697289916702827567052770633696439421243859380562260500644851683703836815920236841358465149974513102572942243015394923076076567240907508131982272210088091434254121133010091430572051623602789228961015707867301843965499235764599480327799479673590173785638675963026856850847958901639985092733751088245283987130020246105978347366034993296512457962440298626335585127787143822950959900045006402707974135872451854811566162684405960801313022512187244037546834468710670887389133125816531555124602660473861706576161222306055286374298473956650471452405348221540345244609703175557092266142368693708079260725940079153340020370061171358223110783007859211095188620997092622476136128680156458141373284671249421136331756973476322629448950839501093719054658975543149989957991571261366634997860134800322465813587271659888854816650529826346545142257749941232925090006749412738722020533979935380919776984923864304830247112549243629748238048436279361539974375233232548707282437754882989704366184947094382579482800523839072674578748183575750225432186149580639218527350482705372406137195464633723142309192438390334346893739588599428568411943309791173855460794838030218326525908468393096150140165422553763481736596394106435303277838756049874775513736966013894950132894280797453603719210128978402092852615865741900741068901786210354849055807333921455094341046935630043723377690789404208467349843897356584867289167162052279464900546444463714198975559761823442932376627671331941365257301746557746005350503216524151981391605411331685135137772803397370227262796255844362950756674726669683899642657115251805905923142207334552632512164083414492141175181934221132278973208985709095861883758691779857678918839998807446616470315394417270059995912077992051386786987835796121645223892310150254380061451810013532413054178343037369837328822126093074837786524140462140228427845628498269764520170228986011575425930161279601455380854538882068849578628767037718031699574982486214439955479854934316332637223118293863841302512314778092977698782952777889040620801854257350768695261526936465726191452307081338590375095804995327073570530550031560105214455881458726128759124328045602297675849957671542938719735058265636962084741886864882315619087061273831332499717290574330261643669349295681814258982867320439830948905319683011804799599013481770287862418584871002519423518477046828342986123528370219769833677679641892066995166336874092712669263809403645034608762133803727190172247601485791916254986824912322443447251681349246387725962955680904780091352228309303655114180033054734037323290784059996176375976278440677401586349112588395692111271296353037114669302926542290885995975323702997958464156049776141144101079495204742883740126659201176066707938067969725229339191365751348463038203252824804300390444910233278050980546168062752726585316116185222994265711932870623844568366465693960805301428150409371526683097752396398631854181568418487947688931661575219318896129790326803407037440184985712603697591239744060960275673829173905325075588240560260316855265440246520441129932193458867518854129961954713554515581047597474824098760190789471730275741310849804948687207461724362228163456155145822172013706333195771488655821819668759451524036119643707050258601845948136533159063958536447305326115640411088477342959109473233636106474422585478258003984606681802791849020176503709161316182855675654300943835958042802505890375845358550247850241898244631131932569754470839922740212220167372324533500411567174633371347522999912076500838874888490261031922815221112442632108404711935423782181982976334292478794662929832271368513521469240576858323256940727666330710375302149967542892946468068409515901622996401757673357846627185855786842235822194295316063102156143619360603270964761642298589549425458582718591751871893128210340999419706377552512360258742556195831598472860566062854650701491403672996820602217130345112439179319131987479096339143009518100209255959888989832875833271970951392440305271466899543933043758680367881113325435404494949499639490912242820858242457873805397744779802588968862792878899842455473327635870759281411791290167340162001649130504623077362904415633886074027120385024362382672537225980105360738706327794990860478243752462854860449840150930157708225742715136524636674708925582431582330457780978677176139974050039301515038073768899344820786729629306244027184446507907619013734098322671533600255972676392601822581295944094745771759332779007487470954008593611909286533525937484640457546219359137788247274418480849859658914940025622832302070772396026344730699158462739466463279062851204329901123066951638862365655254155011225210348914910259181542816710395455635766965134226475416150614921465567873078805817145678568885854593749473644100799418979893966214176932574778837115725098204907878223348347281962489579670906361758183851951716896119154118742742188607421389403275810921158431332450052485540238419392774111035499341751971936392491379536992718981425242771681317918522025435228620353961762176266965422590704887173796865703006347172335316100867863826816951983745153800856318017292898558639997740676896815936366604014057564688607556877393991941585321422047781724417765125900121438670475836793926335519222205137757675832782885666731298260662530726458316099060981816850219158968948971297151871680756487554613380115310368470371682200893206651937122683155342016083045267199148376662337707906483828940060550856114554152192675308735767555372033525945746422721046468322397307450261772506439247253789007539336826067130390587044942523675257723817823499853651695411383142411743962564449170248445570195751256732829160498361042270853594843980534382572910009590712200659372796765932543152114636391453903244511291712166418661462540070862946668396379943644985439936034340761058407514249019431322607352604701319818398840938399045203274304222420706093651233299935184796301101882053099019298189872932027683071888587501618894755880548279087157565718698910031984080668227063692609423921126853242396600848926837465545015851682113603145518283729463469469787505835299244076773734308104185560605657004256354923165119678750413373059240191334316033059172778401738860820774446254951951358239818540454670609700385721768564485329424160229052634200069543431619705823833546319194985802164548413353452938746125443608690593200386453888129908522023204015185197022423976210128897942816393663395413769737612660185457155823269161238535120027069264907081082325970478196796720550983996476142079848323208103122585288926217418155167905903836213669949463654105779184250419400172882745115808371387929772839250957259743022940640266650471628924945251657631378499869761735090384455747185464560243327938641548263871579547879283598893940624178933271632812419780283079744521834450910777547890257000731968274644295616040830441563719207124493721705108080734666259114538867393718351762898420949503698024258801812410880814792144128942853686458949708726813640670490519455860800006668643723640880188959814786523745667601591971576037518945395829149337285936435849795434346321609209082768050433253708352254524590618673920283441455082658032577434967517377279214004867085370848713013268605568034192807285747854920510785902726537979758442375189096503173063027591676311727623863937413409786174222534208360245963702275878607363470443196938234121724889551878268434786516484744753345188612145442842347777432081418596301892222161291116202297211293206950478121906722048629046931896841166510040716991619943527721959412505170670869744579087089114341160263979541353940870187115709665312313407914293337734487655031294456804853863049051941713956437114647753749693815855700041097110990216633730053955297000367324574208031350631055876843374343804596273578906229474695160851641229534100596993277182751832612475290104440806652041697719480003161788941972039320457085513240748299193279197113340601478797812733586773661096302673679648958302336749652297121719792985650660631029844834019226329585752167048396893560870684280893897453626765948751477612344581171880623694394012656732128769329085121438373529234617196129794004182188399347983371889129826959925317005197885885306018204268390553912666163412904486694661188600262561036964988492265777224307320081318859459053434392750873005407204541525865639430220367882702309242862542273428103179743588853138883141142345111517426566797462768726385496807643603197702812138086521779660064972103099329388822047098267408106896934204463345898070891331020780983211288726123690984612805958715630432685882448959395492032798352117798445827298161978579654510423936562326921039964785441115032588445590807855458865493975366143971134772961588314150809128438354616744049761409524810066629854963408737424468806089058961225372284905593807849764103141293504262726325357128149579877009942212317121858521611150024799414699792375911809580513479105179763892936225007318664065990197402999221812358575731639363853124888989711035417482437048152709938624464806272030572466297686829904981484802508739917395117758162374854203904155322263521993963363033482508347239031326302256170020499551494378177442221136017096080786874291935748741367617080410735606257106166441777874337201168470091273713306195827799937011547964344646971201038775853890818562692598807199642595797800003110875178454401952709461050401315596530706689284877504799488234914137843328763222540054523194579794111516559662768264280604530536729027116647786433660457390871629469990925598419476131061812561217062337287573847052294236473814770787059359719459785384453123209760808949873070249126912191950893982783375899001930129436330709877022244116815468752183569998008111337429839840086252639957328416197337998648594126313343956879298482623089515352894896880248923286227842475468373505914220740430622913905913666367706193437042641625668730921318062312998591672243495029857731232487589598602091727063629955040073272746135156792443497192694302428092552232579600834044565382974027766262734009018973913320163459444479941982104697636655883777456069299552902828740134397822042325701118998327136148974358358862394334994176584357630627839981928129629341944531721451491391351275761730671467114460189384373537251972751305918486751634956371637850766775053792860729517963791218888758996198812254719006814506753593990684117882835915826378492112492301461559237809308233007574930634942026666126140671510357892280827202572704176872582277199638811742235926363216353116773293294895364691068561989252330292091614113509769729108450837740082735536574346908158689987002109364990225114501460715420022703862512464662947340107215646246657352155340328834272223224003792042429458777088710738586093325872380019510696731277885686981587017819542705961529475613160039113534062151583317072466829521830956180800633640021153858023059273399483846135494951045941204195838813557354228770071417702387342415143375275532576713044957995782945337885734824405489341354799720938629995340423174637860699471259816185502185527420753039716795928525030085444792023972597210875151944577153309483809289566327882773262774332712746277435735927759721531732155358896928541767420753432336119784084723628096244176527980018242193812014342005076294595597356899631069213279057070967775657890828395586950317572305416451259022668315839755145371105032139576563809093922518697170874453828620119608129063368971893898067789506538910707460736921789057000079978302637548024118046097422635840659614428515933552128309279931124474330759273058811127637933884209640286013133611862287591124101809628647950984278951504424510365592502245250129091782357249281554363634078085451650727121266357693716138640716441815494706036884414806323144833920759874040486494268964018456509691809477547889228686906056594903238673382653775302209649591630578065166984322589770245680998096261993506629984523974564031567416733312027122759454841873094573088384875828705564537477999038301145868235347764329658586844052103066551907168416558402196855473279384644438658855257274328691969856519972122271570424919343066599295533098622878515735896490272357416105193035729694302598109671840353649770681858856297823398244893505678585153811413758422309323172176723510394452479155989291258498458573485263049803791664759322504354840689524717228179203297081327961979265624724916991013100351413805503348045137534858907000626592489812558722940683934753257615269526204536870588453094021655573834498954251813474459447067704439121826051185382510697248969417396242927673123652439192691031075459318361542738146152524128912894258835624051431848194422402780673677175801688657308985705981152719572845700084865813269895497980279264852705335656991454487133093216380914458439613707810939544849045978223190517448326154514162885663900706135821113290738187195962928821592367459286800542361453347633300501259888089490703383824285019106233117764285617285543096246200354997530657653530655909701119601764284952710577005725970448212405860465045656110534316104429203611371487533259539630334757353300163868851443653183341758426565275640541758390307755839302020436060872082198773557413084262419246216425900599298005367124058663871441975384381136345125431284383535077721637911419377621819594370772250721006790417995407032719959168060924062610857222516856771172818828609233719977711726732547630067726057766111763590671177918939942810186724028344649997735890480331296111269895900521007366310854813201271731857085897022996482490836907277362756058077734853023916830674186166264664975947798987414480990422040099150725429960968415807504155999152891439665479300928291144135794367544800638924591960292761826663090760734458111281851378793629211496824334620621296177973295803549961518708851983402720110647620135160166000571532806143299773353508358784724530041664075584872798816808063990414785792409849702846098311907998927509504724689003713614448042152369453907317564727195696772282663446778577603787078829098541394092712773909547529601978490220673313784737147650744665531607765117828044696727024998307917451357132164796217335942029886179362408473756363588875546610202899572376365366028771921606772251393618213329790590181612603293700772021023798251991327943353369865767172974627610933399745912359229311007342289274820396729139636604064716390851034142402149482127638902257324231633814939316177791733124748983546716922637762178578056344739168954470852104333902264551743676239601380165311397654611535893507517581144531523734863314566432955011598315226797254195579885641377775367384495263497654335178670439862045918367154451974057616598325636706182582013054625937830457626239477742650636729196622452582064289347229636844860295177079063578669894326003078915193231941296814343283375513835453617968523122146410124570597948775874814442590795668375819097243834764443886612412263889265593985190410533166031027674972061913440140862521938047924929930400185672380290067833045039917494241278577225872215480138942979966776512895383644130846819198475784005133316810087638157373411620404605795674918062032521474643201521985243842956832404330259958296889568635656345413148790511905469268884005207194820576599052941508027432571756654216228185284240188101573647258608215368817376577323884410128318965386823725510041583177473197748944115835930076274572262949612710934078219184386559593863556039421175266327202755151978418796898721951625817226297884730961398031961508223445272018753278426679153637269232547030583014364059593195607416217544480225730206358440854023975523853614594049271627857549055866795250388371229187780511245721734527329356810280723226289495579275259320786809707731437767280937698272945314584962539263282674794971994295690083021485820681186812109507096643033763010706860386803354102078159940024359679205848273562646772295227755164026737444812159638887524909941395480780762011719617572944756963918705621804904821260481338840527557081717558966199108859976898027093304986372267300504837386778066512506216022402887754613835703829221145267937625514805010192298023256457140462687173876742830548612266089338310513079996364141788382186770533152304458450748352307889737787960297021454606978089814521354581924531308433324786833292800117916463820219670091158635223938096923901758050768340160106523820450736265701829516175494881203925628668797040958068889150875802394194203377740222794555027441128481096877900963473131425251235156628846725880128069598781014156475759406461984433370564128373434249145492622011175345103102417372018371165638655322145510408760977806677795590660927559056068591871635861869950676353628273248595661509848576858592344776032782573540259444318172844982178741707004331218494438923972147341692066078105275488433628778061375878366219307018954711367866355442184270300151876034551894451807295299862958774367494536633105261241504246286677481057432355210404042137623684986229552342186471540450692654827166185696441330174295083393210734407943432181376818755020587696988181392824009117108117707447831339314365162232538082612418455667784125843927333607142207126328772221776584711900493068118171159251597637079112183657704991154768886812500002736290540432845114208570237765727304893268567062185541899572657551266475463544938528927825712560810851252330150572762843494914990373854246129315397673474983883941842876484567498299741953814866024670231159924447934773007767800485623533779254103462910372342512648180130741511178147365389305003363662204937932796254313851254322547057302741213036016592718423668873384397460453090390240566715745578696757939822710368881806239629255835277164679987268986963300263722563362862219371056607952903899265519500974573148385260762155988154438206500696593253671824202702991430639080477180932952704594683082800197068010706711426430812153300191988786268903165559544050379400431809446761524202473346660630831522360042924732903568624037783954753434666236312125609266777726720473305231474862981469194934784918782335322957811519640711589575999958414376206845804409977607151947672558200453501068392008696846276570505975162090473521084358408673820760882173345034207108872611284680570502934596044110193633647190578447698751812634971327562461928448336830254097487592849890267721995682351809278054046533734202430336652563551027856945107892175014114577232358724258732223309995914921028293600100523108616234547313423056106664546981643964648299457505756966547283184211302572177226985310122659062579219547225910540010510803866320969114273061828666759135705240052405906563054155081914527040842468106590336041083866556695100290340764563382598577463893807563902073669261861648968739956666574380927187306376690402301728046025675048658881726030324663974131038741463830520761273689567244964513158320434092282156296593589211316723485619473613123937127656380605042748049180826548621458488346610109711723081801936787855763159838680062048194419528398608203076398836831090307441213255361795113634484781146021076963086114271169585307572211788586149459810664837723382484419576205342086268774732141702110202765851955873753604352617514600181167030414777573224840670419238123639562390001452336867459123608169281058732961801063626667495228518826106030004310228190721622803763865411128852381208963724924290953995194818138821637225181920882723397766622281719174095492853373063649000525022901237054763599303538220876078289164991267857484508873432890207056815884251160800351417730607604687612800674442143556864146574465356877454833839187146996640738546329418964541169007271274055167928039569027459917879470563775931651101136992804742158691488068142959346090809243715725316549425393697120885677370112261454373700967100582119489493255727160929529871211521138053795524042373941632552377952790998001313096141095487427607892952728278867235009260784351273695748207315451394608211688006965647785931130226505829089791031282158178499419635220677567217879633719435052143114569231292406015062764393284511015627304492937261955099174103339812352069886105074788630128786232765871380503118057986515824552065247151662251212649646743092721961011863821056426915519749358526571459578415669214502388284213991377475860243348176465043560608481505378831673723421756677522200925759467141898863738209316478112068817246603454263423012018696294871078039281470402333230409535085389793602101691146130525789141502500815523242361681046326878565572759756540105308034047147506625263888433234103859130123863495012280920509421158192372539851284224094296014601925195675730680649471081277534071188171370420439965845914469660924491060992388344535283444119737314925259325232632348949793841470858659256831615639886319494792949034909204508630554468620050665156920793273836826784048539871170306549314468077350224591465791221624634654511298247631105164640263422785912332797029057625818017461593903637035018600733470816943801193152557014864460961332134948696834260777962832930375339376466170740994088184499621192365430110688661039000271640667802934886669688954084231295754745690245194657393416903593641022106718184855401843608730871882373017884397619093915109197436614160344926454117007769518043208421260131586009125959828125493117610806412987334178280834067195008613103956498225701485441203907813207628371031052129149284810186405435265160608412373188210401267488763354462859873608100588634856036729070304759206576277134169943151323310808025010021334354209379783852354492266567956188450613541633633845020318098448442312271121603122559164179533878993360834710346242944674543702127492013730184556199889479445707529063525835295299774456790531598619851292012007137495122967932041717317633861366095069738305373738354563569622589137349119360733697031845752843475138999379826315879675600873572762970838465756881849265732991272475766045624199089660726993751800840081626405643513883543817421005098878171101107890960153300023444956479300058920253472075979983134609175936561463829747466155590136307685231306392327057399414496633524422349378918863001241007305502411288575042317799013273093586291153381022095665870436716330751126856609549680796228507611281439588649359387054814699735810238464168954611836310477520235421673602670981153980396240929371714845449705039578823293666546857001085479896241467336778414701868657829243205135247373474683520070767376136450469874494787724864390603149114453073605706626906249308098015986049645763530323809595887454118728999596247974527029974966340651887238419870031228185189365215950752771772913166083762421967106996508355121678061673612063354667160562348080049033708502924510253170665700486755889803310897675073936302739002952680693647406798171362109166701251819749765179865886179512538256157974512435526256260363122446644804485714349157655505349524712921992547662757573004814717970902634021679413656153610563204608332133021648992793969233400164792513379917070537821302815383816537158350210470538068953015479642278467965891592064336125106656994318214240361598551382619553256145383487205354052222405687952155835700302763719306052661468087987003948320813268472057998633111312411562583827413008649112324227676306785651111809346385445577754787806104035077005694673577989487193222634089622648853087328013650040725680398793495335059001859325251268148217791512406598820942414141593410914176142340858699296434187573744864319458497237553966971960893906797489343512670886821467802485084243781241947914724851945953123765817231066048331730353005377866329562831938553548632644011988961879300715432064080858737182606916763393994340372328194383844338347894001040705548294487442467179550293964371606584802612983795465864627435878056707892536643331604620951619195882626360635288687406729503776592070961606601544624124923265684097458518785908222430039119722315124118891102869059533820088517018792469771938498024829544449730671257600467530786298221145655857865576200692688343421173836051002090450666166738289519758133700511196210978359420792015432449516311848151383371726211170490585917446628615061213857395092886593582354486122204077761291774581093152703877674146237520355479626349692772987912800632701033648847967030301417480877543649990390297402109193830333993163700369118670042326087578863415676593127747496797871155014830640284135460222947120297928713927150647737400913082059233048249457437790495934158615948428721538051832648219268513511837304577039686335204095907290445636681890818230104802980710221693403518396106962368090468833916765688619231533240130850471894419662872769184902535254604322084096408772181227870897162980446395703807161929720062072831373428297767910755623619597787953935300212303906775684500560008239087202556467958878265792718809230512023622347911503988501124272461911249980157261504589175630819972503233411862860529668057191169976303486704098481441595342411193874487120421672225866639142579809621202717686311410996560891859186543950807708194639795148066185677584230143466710614875172366910104766484324665049230764912375518738963589424944309084083948137206870406324045387678784129897546659199916843501119511130192558299140067079162713942443485782992150706248090341291148533229793606571614085710466943742567693580094454465787670734207679749521135180645135851190989433987915090520678494785350764721218272979271118478839305894322104627788080820724097217899207498366177515786859272409576417913574905458712737849528105703461988732424923416794052525118854740029069105080369411669343009764046411732454664490337461551390458386482036846373239303497329709993623851173438249348798715463513013144299721905991148815416242010218436156049517526786595145025398880648989563838945735348708989431907107106542969005631385110706131577438236620999986736989118329720560110495368100612053897333176057881244275818221122991727810395628182736491983094867692576823592138740431821012616661195953721589291111091022718144267790312975898410250482362433828600682014826243355429569614546906679174616717081718224575709733833688824172372218750014040372357799936533134759530228704280968303660323017362287655393422112136142541962922169775174411616844130413488106137403863030226460965728806337755560244635793748096890459519607176709387851402337556391892219175613482746535889914094462557258767634840894153503796438983061505801656965345740450962624669776155895647702411344588734130419627424228796779242159333703385998438548716666253788148935592205256871755311619575450017498285503321357682183272783113825342612017224320225762852231377322489463857867245507626281902225095245860039734682304319876479450001554525957788593680432501886783807570294735123845122010563336878273219035692343439933042134741269991252657559710560490481482686475137627944114804498664981848891700604827508749855565739922577623232636867935210121905356341602208277078829116515995978657508848232848497829881863073263761133129129682599204129421763974847560315545533030628533784912502302885922162163806600153402934705935638748239656723894128782691533220689391438539513663837770634710572435897191224498166831107185431752924937814046383190711818426776828982366805541545400054033151237079125011697234860673554864278300410815112628853918051920547433151871987560227051248001044883029479027868635622573248577540805897079016960522303361503150208898866957801655769190038019184949384891389693420575909978599900275369690615801765043557934109202264577658073007193525395486954113164071711753657933828571358071965746211977661866325464331709480663835990940973143272027597634548106731702804321284206937392064300946205823149277240148392516642758725991167961889002284394791910047865840657737757786035067408410908757084123849737022744872981547978352198134651050683731742834454306849124802010582840458412969604188363970360222988519468621065038338082657269914191142905635461299402176245995844988896445399448420258915209105636114856047803422995898818412618934946957235081915074874471220771678456312535520659999722521372432260792012354020715259036298417778426255282947988831663096341563062587356094717365773044758026265675752526482827715362848553577200943405510268574246311735200953941862457566670767442156541440644759893265298898348094098116080668839016041968741111396030661843762192911447175285869018239982225555182669525562497952137085879194826635824958633004191038679527548884562514454412363027385936225830411214496127100834654682919979627985006518100442171598844726908751215393466058517538887396069690316817538002316474840222832683416911430822483007094947352872054501506185593624405487723578552913670916117783248195467992449867620221189911232748226395034188076459140800085766692013740560003903284767474882709314926652813295113755426081330514732488283302756848104506902605468774080162214070331840516049683472837208982704619119978798421035535717965528291416191644183472239912062403112772730051697395039756819321165347378332869179307535833328606911671315948812038041283293702733910043674332984022857825214127137135657120006396967228354212184119662968767838637948303867504320924931632281480599469414899284473596990060858810540203529245078301381359083590147097869112100148042884637656330315223367933241993902010935925303437273160528386492212639805240148574213764158976013577237087094207855763435295827323840149970500801652686422209152194632742148457756626468869863511143167248773229910417467705898270663287123990920272734422058274614971287850230871537355991292231769671248663831592384937972165035182431822623052134481951115296035081741115362131819392727552258486109104634390620422148567097409958569556684598361219078223455465909929470912758806754123817025216992230323038729493793243352668447163724997494494468831198895769597399698857552829044643605594923323365039926695299500087231099327305026869856162878866965929061319234442910427104662157650556334361335779605873922852392196126610006337154087182223046232686265475775240358862800225700153426315703895631137271438319099342149875279085164996290768473610883243564294670841346763027905672539166978664763799517578161030594239238888791838937797886323217948518635472825489825504287426454159803207094210392395077531718717453945464143823991833835429221196585491726425399489392865816933123016430038492685461205225817784287703203590705177411666707473114095286348112204781384931745987637454854795715267651235807480978481045374042682582497967349318011116436903865479413813145850908497157814718287006865571729219037419806986428631953636960003133103888845911835561020289163869893201065089795463607827983721019981612317321081177040436476896806747878760164217528920824488710005687837310963215809942221619755419474933645230321247728469059961091734047309941970085138076739756595063282132534276319885769792242796269753541776470982587359465600165943561023367140516596358708815488755439425581590698003785156088057248205968209888980286100202021748972278367910835411663234558828966145089358761532814466211248723703147933751056512042971429741040527634072254354960579435188056811612631734866450036232975829991144565072511146687801665904143615487050163548989397503903564760219168172422713587304441112994300979720676544733727802486307947336191063098680175457728597898562427268797064663416091399132950408014587214605251814540115018684798839595948141432995399134422688382795851172283321684363966302908926787344808026058825365341097343361662997744947149810460373780353741449832054252815850822866042986449959057360433006348169385391397804661982926056945367435358736937567058104803276246773164554932511550207883971829323941095365294844490818597206249927613782578154663337652027279095965188029472384019561905960242659469223492893296875701043297319020277397685183013211501979845747127984913184792984901605901584820431170991101108587125026410260621054187765007290595315101313663984707286100322382510602745590089280152874598354794962493243966177602387329420488970103773071890093503254145791237370549440289519755834026432725815244514009971807055497133911032941352086299510965677767613769557797449664182963474109774254051849837783703505298212096105825186390443970961219847977031231165943392818672757626601666040049546518579759043757741719496784633587825192633900765481980129609449967336934690315368703003483336373991439263737158978417936945436914722381636545947010155604428450659306375913095454011312375325576804603408486265762709477157225649468823134366872731881045270797137758920511400923981874184761814766499001742731297161939205221393077017573404773776138743811665802654880147039211650015377700596679455046621551714153384239165024579968704411984765599756185100788706903261852183700251636648748362358901344617487338277126997109560374473126143501985376987837209162142618171892611190288063515013689264029432899133740753266196335998282995272636668025462149885144213637189272119085471314873254392632839317564631446861505238511004729170874047496464863926385727387473842100782101098130581618908139394581814631663050716396002855465731765397380715230896910126679137121123201490306420278211304680793126317384978066171920957333467788735844829405198238797470427620311346136795146432220453324699757902266823671499912419915526237451255244001711048593637561515335886933047507057512650697820125178296888172574295418853055463823136068016477769162787855577290885241126288792170318484361960146241290771271813536160439540225556094466039930385386045056229941514210954431798127773701592147056349540482496641983989180974918988322749623286719334304196781429659626490275948957352447144652711003340818940059109121569404554913444775190397312360965034775188466582567601384812161746436305941788993981158252730457682949449374330538523211713911213404825590236710087963819269135765589552137165527908811590014329837116365528622614555850513785595446659335439942734085338070171021247305147893795801435279327337342239852698670157389855115050284321335899664254821853273793185286824581363042194357131129214311572923037972677270715974639550202670686838822911785359893806263876171940647850371650412697753766700027152600984371279876285466319327843832589521583678703288954626917100444877689604879477986670731616656292612056136203348449725190964057539580992957741731529184878030169445702649642073978360289423859300333959366823434607641423236491279838809296418454273293830893126012193632920134661058081645944873183343703123399843883817796876358540702768270759111077976091385759796885598466099955612923101791160608865481938830085191245883030854974730550355404912510237490199477971788881207091385548594639458808223194783795851773695668512201428792390984340189790899243676007909211177265074285042775325052827055956683792726540104498289044203337379256545086330469166488442465014963359376988764184905369707530957255379042525884780184323744865420770322321161241901723577789464941995585048566499489908837781252333534567526922998334831723037496085958623529031928381489614669497222389805013366813803769823811619317011758427834366146874400036001095065064647569683305075774837470155596090406612913213812973149185658292392490097365987788882455766921541185252066429133973819128531756683488992886204154735127609084992634917986245806247713656216517807688844803914438519696243446983937525879112589650923439146527029522918651882758536666259972342999701948220776357125869832925305545517443804860725019713356254950856690212702824742841322688595647692517212969100942505677216120361891934401251053271867107658422849156124195965640626048413515206343672366657429362793330134060390604185220122022388476463067103373737860527269603917568873580500422353706220370327386239039702927699075038687118848990007536963544019511867135866772231089772001879387770068710893933071232206686192018413741940201671682371601911318200486032426632456651695656513495569657221825117489266080057531138576362848310345821685255667349547619363883994676711394130250677870125103466070787104395409948297154331944468886798715315981926880193692760289152269791472601978364366149827345308021146368153791445722325399811581545255167635501570608578094091952750857497973300072705367520524115769646543973568154732554569165373002150409392192636586101896543651076837482564937989733763417117077870018109976835024826560718241763012209188425967888957889498876685873337827548534793023597271067060510112946509369656449003300300743611892589130092125395379993897095025053694156405460311940521087597027824641969846368565090792156984431985300193385873636433278641606943770823783981558370830215710196379937156951461460676619317377308500183764652756590575295136211126231808906122877416854966029044371875347439192791432197334525906447646075844496266965775725497142976956521983038554253193262096985400785905451860049974197185629126004488152382645450197917647944542373792962176293294082456904175518831155014593802206098573889795756859201975720699894337017448623500321628229213271037468075757069039016129095939404072127329070502387836504997188692430845766304599135755293678221333464941345104930012561079183841400658873837031517411499732517738311849132876233699999203768021529672090858657644686085339786310451486306704393922584131390654532299517019243901393652527949121644267794266326541021066524021160028338768784110659679350620295747038140233927793612148014498380580105620940324035198454100525786265143559163193215576237219824210532578346759259249152620053533519220707908370067194163075815515597837995352008967821574647305044454271043090875352077867052396365711825461789012794733171678827277553919540540180418125264789725184555665585405172720234553929058439514214763680536234884387881106435416880215433460947709648280793112621899817030101118461684732808710473944688126807685390118171819620935225073408472198979473960945785736860621292242345923603733690455054841328956352190164800889063062561338629148416217435742757654769540789278841394352558088860302260130190782462115320473954632384691496616803317763719623426845027054662153337846412753454345119002415687701032993460393015158363054737168370884509636166091362428387690947649404732712343851366626383963601555783740128869766677794896759170285123387809952784152625546817962598614617698455798207481668545581715571197814825135345850584856874071759541158912187445152622834071538757493259839275847309852378847145195699559178167965552031092770301564697015051588032262016120667912987747307691109851639638538007422752531646329421260947509043622051355371961718171720519516640046747916451181697876389110345546266659847026261023342102062221321788378418803375353184708747098978529257738754774474118938676229137736120524546499797787175980406789081783667478332572882751376383176965145490856345927220239043053252818548912326764465728721990016447948692061931707744078626132901088376685497713790956083564401305778547512149923993736377270383684756631074398337947195152183480307595319178101600475488448927355572615532635221933073687037578369297744816267581711569342130563628302612506139241025890107594956727877211540798795379421477178600811442415730671755149654977311733861645988345460869972808321463104718819492030845028083787948589660037029534132169661020050095714575504722531061489995668230997887037038690296903828564401459249943799062221525264688102410027005343748073579623957863880453076423460490615125051919538452074084930219973220311010190910260270596816197296895661382392537757644404884452478777305794845743053243735356142339275318283028990372642059208971038943665807680891595573872996801804884494912652095208481088948091112345483841525653939075110390928171465733795787941280791909741828367160210116453477843272720916429567551890994978877827869596953271853056803663029400497296758533477284436005293483852310927865846256095763718067970946894663890545520556111324283010278283572539674679282589252075610404169867375185476669118376787510405265894308252638196843849045724233702332952409838773194445603254851858999595666132575228034657939688377739872250511227277174968606988281542016892708793611076437100872482910010975881050284224131359678712445592430361207933954871246322511583626591255994569230131014597318592389013652208521085976413190493217812731111595770251641073611012598582964692484223957591105472458194298883335162332539172700760668313781831044773072756290408679151748311680328208818713134550049020763438897705849393550819656202032643810751182496777185832258298906854396457724691750285063953495820404528518951081734629684522122582270860327135659491022618112390443164825510628268710757392044095833620294060532424332408992165336693697043179526330510309029191040923698448083198610632545134811044564492541638023054996742143737151974960664814501675079300855137639252122056022027327282062648720604632495332860226529934569358725161023915226653280105189854813613133183893115333441741945892102689736120387476659404932501749935201059304197242251648056731935630957351147759967321211277893389596997282186382846873516757105876789409459099898322582578116930303351545354044240957823994951020806183969267963346793938067572631558455059312108781368320893548151177452000768966817693730969446751275593775799096812346682932687492650566609333931798059147813852299697664771860600039220434930681939361013282755246850179794458994637593430976367243871892135654408729351262562408650442399467711066533998485038910612757505663014734265430594105846727549040341070624905288664463330213854937009950790485449204127088234943208270897733289316172802365718874570834946759880597945941644727550812904657860085363320771802587344397943200336252864907868034803077707839445483175218596702729443036831565452197918123776432747602724479731838858315554001337736921408905222321566346379232707658161760335052174331813198843274276870676951090923282656948239059084581992154397580009588882910873040751747077822906199079185871370218765416611531325975317674753792979906347889892184134746396908642255307540880336774294755893549200308819877815916577748561010528362856763798627986862349677368539719611069913635164193359144656422693759300028407979546877191476729020968353162854667000798371902395610600764214683240261479370423692170568977323646736700942661425997239541975668329029939294075796697567803275225102962403536905607400419493125159293142277775801625717477794356563697352121791003495504126401037508154202836433249322559481475028492469954019468175659283281093761045074070268181955507502099350542146250401626964302903578645318581359116076313854070272770007255256671937799570574617221722084896802828604485434327173921147492056063751515920815111075939585540223107781528550914336588277845528867011837538469402443280223266762408740670849994037731178477806612169694744526745537992953856042896214674325352186656838502699844669404384337234298441171240991291787092508443471799990244777403096121533900067056489260422176209538417584534152987093924661577802801865993706085897679863373616020720316177608923676434757906695883645080434463737237538119566206030382944837021058233391283817501669529435798548679849493969584922294224842337650820793653678828144471395633556639790170560103925196638135489691233537702446402173162261882029569040005283577924617221603141340394968955406168006124661854034244986684280021814061447876521694415547127760175844439161380909203543935840568164057751571691888798668291985315267891749311759407772713918070028208966911649292691204757572749567194599599653632889649869311757653543662042424034402769342330601077579948687691346158638871257630581007003506353970947613836055622917798614586650238797731821136812347658760857009975551968391064279791014149712977765918585047326666773603106676819619146406373613742712706433941087437617069053923824451509919403403774492216464346240132531928959396926633667522727470382524126271650974085218173368535870961872176557607326039473018589911177623043724566487134958386447486227362112504372280058139260446249789972078916514989922236374952674850672945399132348447191556070129893335093108439090256606060752973617353987803067228223828961480996489854954642406841423964268570590989508523809550764764820316167656056774368540832609744351654309055025292173931158056057861236860289719447098824591614560594631208940845556207890439598358522544052884304917381636443595931597543679283763596250029555659163374723706260645094524947084668857951196812725097767974200555389569386677297370983026332899531780950062049040410563171312743739859558485066451531532741793003138275551761027479803452123282376191486978734908047251906510756419966677220347530241537837523521986438687220002834857557296354226532247283560009257008340567225586742654052666521063070720569193989772789595879136270095383871123169635045638284595282257230307325079713442789501097990660684687749893314635675133444438515434004931107641207933845897068828280475390470028220278067233223878466524179910871351873846936930291910172727242224242534747311265199480920698552558780569204460500423929203979605061350561783776191445942025754514268996215371405975727002797484883062181301063941914479732149954693877447332003604170489947215187363896344763351059836583929610051637464513739285222469845468818853535230885629627003895051482702087692171415115183778721521013350731654814605594021088788840057887532437303902894469665722995480808326990647727679851796670294106580753825835722858420998308687540623913110410426238741400082327697387922069417892334699808150929445038245703582260567162851830585205785168556639632911154171279228467984470762119992166623478496165986597613848549215811792250052727310679366113372753743799813017012063337540225574557502682483664880395416736019144262180698372599828539706351522655732020561134254802278316329791596481426592667883086687408275160438106957667941481901673525745469280846640637642522804017164444630486218124262155945184694792640980121282952503726191156512831803452445913533606788717682879669142040337689124955895003850103633406944366597171099889969905034662985770650541574006741142431953143652772763057475750678663215906587608943766104427495479674084189832369452989898427611921709310719277195758828624971669597903294231586645404239771767060600176849168434493447904400193044487856255269173467506607413876190341411334832939828094573170215180813828561075630918059591934523995400429894992406597457190207040390562078589994534904478157574424173125823006586164198538733271355228986980975350696923048191987550683440737124998574322089616566663885662129884303697000818284538915193649106139398922377980476996542415128857270963844014736214872570961755647656150174883134409056455423296907036970650527491137705154417576089293808361697433640240950237824473171502428554746340098574321225708466287729831090226395809619440447911516205921328973333719846679775123822971328262820716874046195321710350003806158511143627347717365817238989388477110344853596125935592843396125907881660747465525535314313432129386639896726219805587352077844208070151057707103371873791237443381630327762712065566346847436641101727269767849735755731385793040494208636162912320075838065258882979029117273331553926231586881011959044344490274385833224818738717659121963709987484619952265691974188835895508949048359581952122672699907214998983371146960393978249167964279810472993813695215310724777869327929618583782703414665148790425789094046980392465937520218932761757041544937019609818716753618177831302284987472663363960708937894577671117451701415552290081425477418353889446974172347140608610087026539807878429594787364160949180823837622886211435284977159905770758563255609630044692590922434235010993063676881347869663561292515935144928884396097288123935961344512587707167946407536517825400616494849836598843867478354439120006358108533509269153164311449551651346414536111035182262015596512302384921105711370034117398906117895358299387692410041020206371176207481190455457392224215417535298911369274672493097474775062110481759311438950257471739843868829866881593170617528347724758838299866586589824758256989292911707242475455506784053658870750199619107210968266216463138412648151330233879839211068290367415504335485421761119175150025283190854463867428064630119237111237879156536282322928080919351519177557837536101338888509176401673954056014394516174047753259189792221204630371047352633290556989555599510254871524229560850379123450219356337332060821112644635145941980652042448182415495176590874344547831990107831688970099727323173809820269830450078483877351526870776732822956480438631438588983664058819728477811887946574232034719856243154919911553124712750379076417013137549245650530194216139043606208205783052590508860050127926848878441259651259212854629627957081540964474638365425289551315153178890519871952143510724241950771031370174708724428164393969917138374216407665703925683859748038692843527357435096667327851644896344843671096143121807685875219810475065300080423877624846168254338465847120894068685528313394809756408141099793996098314684220818567764036950030250299240066668153109202617831654130161165310548052159507137927250522516321186898798237770038610660649794511442357109134956488964322535341081603410427393791509968942227274560260816915353928849461401271711221535223403700474947928534739365980242763493899682230229148653476157956564935162565330916965864729177962003003464544946824587954081746271891295562384261363819602291899928275336782539165218759603719362020349157567603380472851225169032418293796639725741759297915531577919896743759247776478205144901263169306517864201894639123415006973855111297958908242445588029346074042461382905674270444235008657777948660623072518901521217390302785587322385735531552853792387136969891793465571610182689820415301643293746012433166621197916032849678086401262422344096872519327494875650050811616575436346117157515432431046542590726263738679307022551399732545869274910301422265197558345155928457061083722239505257664876622091155417698737897566695372970159001914972813217520953057826482137263130060677926171353827304465237460559967625058045325512127330219467957857654785378239489685029179303012542763846167414622059922432279716484902336770619614163409322842504520201236739903595459403469241472491457970320293541897528185399823834301309305070781899264065980797693813734596747428588038628900684449027190523742765496780165698463967867013245378437276160799697902306468435812072275030455520109198252571617412739901099847612395645877883862971173286881842667127447525369601699100349689148512474956675199870524670564442838715088409867419861562002999359643053065429827443639106997997260450736333625594610383851446033381677528244895299487605193916875926496476565029965137989753062327263474777378913017207868884615626391824707453748559187585563609638198113474448755967059866018505519134147062318744594233504611961337055728799187820084821332637502260574893153633846357174871576938940426245649665023369881208865780491365961046078875369409296829438275030675107900186602051068035163233131107393283902044364083201515993580197302178885880282056320392516533183408664131928658462621255828877643483592402195860270391225489372099289360982927617655800236307811856812577862372759201902859960338480182200547277681520388627246467706693070860111291512717772956278533227389001047014871139472260322828370470148448472333158325341555585184753573751607349257781049147803124113264481049488909838209386290289232477344852399596107174263698454937240937214207057906759709267773022341675583747948874187651613830904815456816827781430130999274434409044113129398643861836583368741921297712063133770921615001459267393325228804317301283886423437788169508432398351050161202964192123042795104634085203398067547942360944436165641377332100108902746831477926018188055427799584728865018601285641029768227885249250232148704783346128109886966145146994813688964591002972120335477176381810957503687961718639821247067776133641795349215153517999591706966802727629788912300357826254856268345306655321855984736690805016918046689133255361171177716943505625796947594731251204476518589710006681094952697090046578121379260119112645597615089227071354382834375554336417260704999395875507445542763213165135546868561176244523855220716959258857940772268246914454025441925747678812697094879772117590275179615125068567900810791690793605501298410376224851454040297017309226803230086283645156065620580105668391275456044769498157906158953071819474063095672308554060508127407034516653706624748656232613653268000128140512172720773891869819725407515660145805156324608148683242238855359357585084359899536349316997829311558968553408867705082626966977888276858959136447270348367869107352006452035987836373970057086224095688245296984479367436932111205580358075999196506385880831318234790770601450715742023559682756619989848726161662901571539177986547920762964602941837868095631617981463838499299727548277875490677179421414312535590367438894380857037523096805847497724105898816282164457931693042325662489877178729990137175174301722084001844188645392348509309922923801078661415794524275848674234758831957720495118413199951104827859936118825612715061199816361289509025044359842623174588797775096200793286244528209831437727421663968701200685181050044438801233722181102772446306593432606314494562575922820537578681596259393716175826040836391389536808252221241783797233064936285164463638714890717222854899916851170020672427123501374098848590532558103417894164158808113428394650615651927944280675132648010998788616019944403291165690445417556900208458077624465338897894959094825508991599513835260275843540626389238441148100270844993622648205096749262364969752362641339628799927365044823430137153797053086332458016117405905074167804018299864391190529611654643388355485805671793547568708108883563329072460122407809752237850316328674855794614551377639128707774704951930369758815278832166963373354098362047237754659902162826617156631655603502826514818625532868485883813201155012583760311273400489058218331914789040257571994995322287509468700625892679130533888492963210150059444376672348110435094079949946034458359541493400065690200967262228029344359952302237720364260748188198067150034181809449057240762859193120430064925862211399158123726415519720410700128185936779920838131570403611712927746096049476223958206680836478303948390227387770098067521588310357825571809460847089381219826942993468467913810741830323208497135839518621795742149581505084391753939490151904908535958429620580478841672308488993446577343609776956930575961037201804874135345007607914211026453165893591444321554446250113303767449188862493654209008374768491059936085644828578782542695516264889091667525524908561583478426767424381072372962211502575896474713749092178743401372779819137114029368874253273141630628191872192396736549294395566071228833416875880874593611302744260243996243457971359994675967711712510015492113867591331720769176121211646727256231844701244891394470851021974817907159477696128835798435726140961816218947031914761422680351016445136475897002957540311795965717676790331946089903318519768264247313718557511240280007572609981300130984328369470314261250836584212870983709739199465499406684280364261993035970208819736432472188280215178086507878560502198631192356725515141265680688663457375704434108270012878028449760341971265939901652059846373150387699822969396523584032211212379426809431593595521404712166101866117688356657897532599873413028160371807639817065699262939944433641693796667188646855669455454921958858483313675069533319474889169454756425852238117833874394055983488395594177812732318507725596473779790268468315529260648285718876325692202982506498463701728405158411821230402864228374530027437118388300520886701717287156829473871815114963668548974486630472118027002109160338306737142028083411053745854786217213206557319617480648007658472792186924981577902637638515949637738259294552894775856458016115039233467898762508352048624787210762195370966334275414197405440961611108659410523388504876358995537784598799634765755259441805831387436278416238734407310085000431379310933768762542423974562022296943847019952514190234882709207852893686620021474285201476504276310992186492869007778170230482544069799892815598823947256379086251481943156063007313802824039737761246943694695651551697302502071690049285851649711074672677475780549549169378251196855876449393704297751739556602440174810447860367042433305205252584734998166320767170136818664577807663305071121147000628961356154547157028809716414003046746590614614653697730655170667873362047293169096007932261888647736903515784261570760816637900959299911546618735764495625252515377744911090985661115879440204887354402553115063990120044814809311819234511417474474901797542790979552033984012517561378874610537956141770997117514636627542661991264583859576044579311708684078182768551294655218401901407123180596373302344372953104647605254248980820817759746841955277557602024898715547157910044434181439175439662300452379214425399711103385675873973632793181659927172475969041587790863817474640605085950999528523773751242250974129176868692593393410049158417434562905813679475731427383915815700981176207037884311488624545085216471401009117787951302962533825970464433246217296225606138159568320539374358153805381988312278060727586561489461955806579307659688824084344128817908166067859252352828714334647848460005248427436090200624523930376370710020554893110635537415085958901145806094597072840418780501314770006152865598981135608029716449613723809619875264823752864072682792365735925063710106843804910653041212856444392543414744911980989132369024061235965947365830526096183675436232390178051064642451531773928134542821788489697116644817166303815737793549198857878191964069448653167086990925958689156032447517993585947150370379763595520426530851042144974144972277218846500777021476384280493378321719943814267774170001064473206217170154481348118156199029872760517033281915112251476264871863631086952533685992599021670429044028802350930816713916890536792045363011480451255167842207193101156782517333611597571512853655540835072942270531852318503526424244101269324140706033371807626697776807727778293994824563295901629058497725588144536228193516420356075384864137046778091158289793295103012773777494205235880941694357826941250930454256867745969113484676158958181988753208515856391941263306759982159589442618607468299253238587258446320873524802223831989433417400798479452373435842640901696366102463290200410828849317093607913717607857392260862960228972364899422531955869209601605727479300407065579692378999420424136658519230394765032564800859755005867112965486563292067072915897055731221285053352074755412747850875630558595293228182443797335329406683728823199036465700231721902697301179643764827094544211789922189858733841814263415630312066500755592775326186355417548463394950032999905175134857612818295105141149699765376980533018419724331832505050695590060942271525527134700750831361260904166502280265656003717485957156007462257649287593184468258550556821923180613551886832433729981209930444020400224574170516550268298924252088192784220976293527157645708919132088985082844757513686027285601581529899930736632757989189905737107379357487865874107956543491969374093529837386747122864006059135243706828932087431209516624217092546839133531264333220914262645719575076872004951207695595559985372791988305161456010203772529103860611981201675860512081015091239942504629675075674964148044608939597496334015315508775407815654215983279932820717777075734745863049012509623141305716967141260539836048205014017934753372027627818710832960364841191580012730553095691418225908669899341864978210963751593870949917949096994528622810263729147277867678641777711424963932597811111080396849391638251079635507357695891760585646522204453916135769188986570850806368711155165825065839249252782399166756588376464190711383486757534829907840601765704009591646735287084083247104858985244170046289118509172340710320603644984292256591127160182015739079851939756192816994520623146909713543539859327123809775475522269958062013324107976819558525640279325483542799739263893369165074808798731347796079038377384309922558557019774597081069129276743897078020856582688727792298116548575197063361319335487570728870885614894212496392454627320745471880875550256779450221458018879792122833526882174365680166375410838517538181604800305227749763027580524376643201559955992653023894277407554334605320724784050272290493256652387427316456358298922147265686280003745277366611898512732092305745191628867071887474837245635857274417276369601662382552975299694689488562805534997085081487286820381385820520415790736047171036978387936278653285072861692642504527814029219111980854499352439970493094178531369423920662206125341003171165965624162835608366812495890983671075001721391109870339877136228982184523698909279857631732332779137229833468615950623539302960571911310703489338638354792342015195930369591676762412419857296237599472122849411319100456451140483443439266351905532490995130999568544972900651991857729332950696910863957096795131135354083594131615917788263483490420856070367723533524923935986277836268724778845185552012439249849226210788091601229399939190460222649218800285046251625909820092242348212267097234824855484893423986702207230708716346694120973752560617570928573944820663246537410960088403685184541285941805049618809736571422305604711128199775519897260602262489393153537738495131256343235285970212827665500821729273967077258045815455754444603096650641578344410475018890531012745455377077296203195428608119521539448181791644439200042451420493386262904283268416869269032388888547379614171818713311141537813452745773533982844904224573508373628581468075483785863433485132398547990167668010320261292698920588073385695485650970051416960697439985857331044463719916885541429570168270790306962236770652910406844375772188435424635431502632237324253562730441512592835092647717150364154896423338532132460111358995486570976761372401429417432884590228783164139442160653018051638977606438700290492142477873255654147950994252168209371941471317566763657384418266701807675337450349521549891021967214946349346050176121421727333806852023053270496758132515771896366420000314206599055803526077168607158955463543764738435208130712628362532124672327568071623435842057684794296008746131823367756498604602235613086388058706780960698000242810877507161764084211282096666738201131060562992960795730985568963799116943820270861231657684295803105734216439566324984603883986050299498005089863158177512818739949647342635354592777139688536585531770352738734058297453359230346532706404897057452377301944039990494515448041835558559065660311092196660682637439570132435330970538307364958725926401392348896173128584486139566178042683071282768542650168810461962790378765753867022001424401538900008312131946107970757852998924012604181859188953107932614362920605734771765441615458803572634408081472006433385238715307349918212601647240021134151173031428400863321310702021050210702107191939022029845934608252262830681971880502500525751013452920647471145939448193948921130070184129326304238022928380396092976291451854981723885660137702966291491442150141076967415858939778646944453022664683353289352662640401281676043239841446164530331951774778414122214976099342213727099514870866156351942079219302056707319419499168018101721127866813875521093892020938929110110534464337843577895112810194568680074453214069553717596461240192188343559270639935893626089528367261374854370795848192837874083725505071507569470156549791469512354024425150652853125265438596360119062890815899736393593635819013011955951991744735157382959676777466925530608534512553911111463573053611475029253073669689601251730612015605990958972485644484833065740355450442870698105320635369228050101608859919006513876905336475574725727621284137709895625447445368312251887463415862007055244970991277086761978348968076433143286477423055407716611894666970179497873132250278184999664229033666077360241497243683964356434991792888937581275279542582121578452743085159176611149561112282539872612891188948499090084478041930171430025851656886279379228520106246175104776774288848824136104228962388813077845423883879224563406656929001190927161196940021764677585689923450759055290992727887363895764600573939905008987737519863583013770068668113872678146697438718093394673237586124495766538918866299993024090292439712988381885987144971026419317777764030645666850009599208513447682271392688143113398712485354243328234201775969808964444169614482467078524478885248849400251749138596927724898991509293499503311807132211328029598552922165066208904659530642755667336050980320745803083759662146887661734510416562979474451262767374368352902637056275707033071282148953962010481235893413419718214206845021843589965716969411211187646570982285796449448765927022328994686839022606327980058126484850100029062127728467627522978809714929479677908816837345167308288287246268942572078163089326160945061329945156025195557767299791804402576424273254221651646471252472527486657351516236237832865685297439456687033544435182270558132740740634968468398394646716949430965838461472564136867290136822870803240240064374948761160201408034938627673095157971516213020846614161992605228084652641998098215039106728429039480083988280569180563773857081841090752619221457060784810954155849398383105642677324901101342979996666950080665057081638570790359371146063573552824400059392183790404191049826897780253431359475252041034915214357525261048035394465129561421406847038817494528398662788484040184606149990126906088706243615350546904805879506793042133746304680841005784176329186140810064305123493212283943094970971505359196725993433056691815048074686487073038895175299005719139293188383524810754293877055281411030573449373837608159840086669078593089922218019063709087890761911400376942199556590673061370210825273438202011787211512645284840827862631508857764465163320232916033806450412596945637054131006871973581028684954140618167497320004491446486763152675815404513758689047931003449661920099352962729073953710240955072780117205697792512760841826697954176158384452946575618637270466198065513407859525340766866283647202686459101118036058724397277090201150022059677396131355378310188776061299551580526956822559828347191283297080534006372822090040942458729663767771015736109623338894456107532993488186774502278945790602434705398520619664890829093928855680463103569595880454713132340447954418677842077356232907002069996074903871190400151252867458173572292672793120097608327475906451941856085009265042714489512082761095929064584027145215962446319352368121182216222324749223105666051096505784684592038562094812734501710993843293192203633371434381335478665980473267236907906619269095903084485889205967447216056316344916340588633425433049334879180565007241676793407396651312716952627731573463199088393338086639310727177010289131410286095892030947763678858079946127053409391632346413130194558425245644938802097339523753813454660522642730672946883550644694802981498285349637332525392706493299685995273343933824540246101074272832969879235826517444499211354465636585570073760310373706750020185296493523045633313616866504058147814831441721939282915300854406442892597381717508580262459386272090939583296050955728538124913396902549194421909732645875631230467653738960401193606706679089270531875858883171357815535888547833484786056419480808912004651092811544384900283646769368541515435090568207988681092300317684691747870374147919028312293817554019966329807288469698193190853479416243464579168408964313165298528645405329333142329477830693920209898135943384789809499431008364986902142168172533158362669587786574672804853484769040392311212041004223162305387363070497897742717916172159753466069437561858643923359999790075305452114350689239816730065264918506359906591331215787699445811559277452651629633773484520982774825530599242419453091284065046334565522438697666750394740386173153565381273190565736974692852935529543839711147323628582494427276746385955712522973470773472669851030397665769295991612182336264513129541625877858048052845098814238879780778190951141430177093737792917057638789221092096941533348973872275247775571885779745095457344802493589876996713502716883225961201583425477132275213083964314239804606075614763438979726305370374629755683753944216195815027163381143358411795693828850863343484056948193752136749872697418251142334659081215396902945002085023706999462508515658335322943542746617567018803617599345354017393231877688165594831458790019950132170486893609294332276904730098935529975186772927475623153637364093632415526732744428174629568279666126788297897500072107613409758239548484851533849498944913225966731498386215016430594596887850122947315730566579600775411870014381543953029105417990246009595311054800421619397063152779840357965165387961887961118521070107609690363950363847168345426394289152880933148777042402845568746458221202314954729531058218037023040201188740717281508028334197700401080977666202058256697417145535277302761389986672634475909588002426754748708660926905735354769490924139270016615707090495130639217247875950759192017256335674304475847352173217527814734743984358890209908052972206263818245875694212127078485141813688265173780704808162747007345723073775038301039269184560736885581602934595779581821766482196873981992767185474207682450950090683141649974369869790854188147368612964148173621572121340218389088441587708267328557268521658473945820624753481883204240034446904362561298198925299292959002728786449196912073579659183205777036168401632968965060875332261833102902484470649497810065432997446718335437361516461826480794669926620453521092993986975755421213575521326886860392234573372447844673753208975229061513586645110845058301739890284294841647741110459688662107159022217327624195381471770607278829075493470023840967387119607850313018956365267692280279858039993208590316679821754982424175252387469476618191812401218827191205117968048012851194203832619316757875420577682555871488398966872873717571492157324976615764674269139067028004049395536757246649206250373113745604106950623820234454959693423539077383285435899186579046698951232445510791499705390071651743328459413234606457342591399965584356594580146308797841220023565163480922571829541704934788703786125256829910178400053870413614339298589925618298995663888724221143668805412361078062493289325272854163895554048447697064156553685597291839682298437340029355628500185300271596522011755189599758451863609330068310430776635043038923052045483205154837985432060031571393285409540991213286248474861884480097506521734403720395921771603003824426143200795126866561251941692195917009189907894982805054098125488632384342628210957003299597097565740791145324438065393841982434348051029226628418460128796270149974585036714966574324914194139864802374737788116414238884320154075014254145853922247073270105375751137425451332596643095475381093775214770197850378613139040915775281745125027625905688792022591674186713859160140978317378804138991536336944189586036081823506972768679713896914979951228653762163900890102291850703663260143199032934668848845569063712079890779154249999065814612662117200547416690827967057946512246638048111503218921721304066446392024632990864519101135447851074688464512152270337020317333027850159538774462245118049725392737287856587671640932209188389146767868839095006698168929450548514757430370068789945596977122307238762775757132265347239277003096401895954900772259721929085076903232248841663218398735829934764134726427002038254126754039180148123649331331226327510326391867568693280044501632337873156154054150284143112320506523749691794713598897639878550034927749662101192879600857015530448463408094563131620385423549157720347232425029841026804473335543130681792161859541097109272540312817243975011862678665098778416947698487159429068248690306422127253137907532903635477293920742141211388951357097999927808918621013829080529878706880891324006426942322656113349266503423228934924646895303274267542707284456373752118269474551145856239313974651285334098098652268686603495599894416060721227589703911406242647765515573260969062374874117281757260194869774030062599132556138005539277373372611908176515400513286506461301771299254086017941601554344273052358560702709642315849780650963763368064508726858573750171915031654003045450659311327534763223696421715932138709399651983913962749825279521082267824336634792503534574069812726259443421613222597077710302169708208105895003502279633628851563702834395965687675962626526129295227724235945101452712834050620032511285619096987668041918882110963957876051064092067674028298015893732089079787680187970247980606789978247907992431456109313334172607735049707950755847344260704166504701617945704195483733969890875236505327727590233782413895010824126585544263842017559253402362210502473774395476431231277040110213188434264449761950250473788516528856740610451924499359250784243096103305420161401506659167831166894135557057941712508906871320449934002970797488751039422921048864315114018823015735343303664493391689553331495444429755911632463639418163522198716759854669295105440125077782324579986186319741209848054902484503189909696326019761578076200117856040075153439588044967674006604708947218565343078637805294090535069206500556772922509709095575644213772586142021338303424362937760488076475307623600255549988398075097353098878693684270760993444145501783209787659306067419761219200510419901089058956711821209629396161578225640431664173380244566034345866428170269679466989269932090160288367075031216337999875078521955623734645464375224554257306309498082626834029002770283371539223466738096815258618269222014743159745642424906902592510777241282803788199754145003964967659504348362781715544626119041691429009807206792453262559545085322962442879845369978778258587808180983687688503066744281973548840106085210971229086085240143037699640384083590181110355222964964464953001847933081558612399321815037348674755109913281777770867268823412078074692945955319380315532741493907000977815828179267507755607298519915704685767471255404387508246967666896304375907425646333632388825431743338835972725459947852972736355831797459412093625273240554891067588861523852252839095714027161568804472486058388848984755830114271814769310457161842894889042566239155137460261615265175912025893644482517658462667686541694071131112050488562006828622123697518055647580894320506486582197830518497522633928384594746720438617308669010087917740903030555459611107333097670948696007878322671174386480100837166850772158397012199494710020386341138159719528745961943796534429062487972597162116202314139048604829684699627752012659515462028649338192326211020671397194158374196322028752010237047045418164114545305912823540096549677204011723308417298573817451759346676289233134853243492888494377648357627022465762450327772227391764194801179509698742602977412078203948772500382666830423326852048828293271321080884245543537641087988798233401954324939154499057894712200476122138751454773019887700589521991800913290598170853644654736128158714035908680709159563818191944520983416800581730672290837431376086504002585875827853326548083455353218308554019919760128220726709462885742464604807330315513835345223462196012209096224692215977840307080043134639196806055254589232401915631115545215864290274750947315858402766245387757250307936632455707725369726573665848498805959411738923114221563810904150634013898816462538294664429769404512739379172677864562796483705176580695795943045818950382245564608714321787935137361055254497213140482312770230939699374913765375361810144479996719749083398927723642544955979896220742783742833431550984007030736503156817890787104242012033338331841231839663521257779677034848730025592508509565361918112613148719693031803971269855896895861135779963529655274974502271237892851515592529258378269786381293053989473842127794070815214500367633050944943532290056324122314609265424176058235100697484766251209142536239267826059261658496646992928502668540123095449026996620214759495631288836471665541296240111463005808134274415597120306646374026986727969789727123934287325729018581557836682594646303657433634293125674153222209049089340463001703923351997223147373933887939540972679745231480447881548287090478276458552194246493192657885079108641623101113182266160859215493588670983324199803197826486330557631207439537123015349011951414060838468109492582543993392817955093186210278839804767088651479791678199462371353153443745144059360759734620051243067309376512881925417366090876206116895467218221268802057140030522697506507005867264018878617756694685329491525153745683731310149536870991557402750816379811983495175576937990609343139254180301356844050142051287454336426365665925160017724997300630341041967796777617267439726406042632479510660481599266453218137595571665521825606547337250244211208870416747797505174242587424976933132900497979180225826439006998987220756816487921340665959621663018685986981438524111607552926342658606701631794684470907801999963482328854322783937884445400757493976481077963630384596565663043162937358962175649114923194089532220991067767898183036540540773093576296777994066420838195916945268411130968853312427888995621283317556268985340825017313023463906914645785186662933791945317196780164428267650305319031475147938070766812830982012960763597473524586811266492545094904709976264001550758559745225346314714816836997596170918703883226093919170444135005177591041267736394191799270063988610797148959360839292476060271748517054231664075966958120270773722292807911237685521706078113717385702674632214825616380767230037221441817608002606292335619797347663399884703024825847757031748296416453407799494204722042605656112981189141395888957417932191227412484354319041471836598535068657350288728496602465667858293562928547240564910401403072948002433848555401618123361187036751835981837866012545977610207525417915859747228112615154342605128271878849406773014331522342093983490367081679013362637418933773084834852752105571232779836339941847279588873000807546025177322957714832302570616973361396483862207927851593890239500804168725872136273795615717089727017903067788320509168729627684190091360466357854236176063274533656994562906926697993097963026970925298012140684125345211574658741907179858493274902124854422909675322064492972167017813930909847171084057719039733541735851967857482867523019892537075802128717378720066961643295136435333500710773983658942069018511917166511650840172304390298294588996899722816842020439093119419155425086625960197665354148701227826798069512773495126373063084806301096115870466470428746530416138115906915856586659351772060290205253852616145499642991894690757902614048439028158187304347297276595719839032042913692141868938838521000845295542405539627140455965248682381999853188433321533625175500632570816489651617736092808170594329615156311829322169809352922640380057989025363759494906643201467004295800834923229747123607673733624831725856713878182837687234500419048691180088059150328830754898262563529345151112350332669541078068342089594011408977249666578239902808261064432737132509189341706946044629291527899659311543911822098673119974696867836911703615582701795886049996642119937594000490150629817778476068496207025782542474566149681095565948387044646406816848195269090180785693888790938458284451497734337059782400644407945097100966719584441574148457248599797630354163348173990353835704490181918410053448237815337520485149300962926561970865020739385698048881636348949707243966344426115607659138375495545344485298705212443584420586086422764217189042058289326663075816861555676771059640838688642943275348473794588068769149567969796154609913433710077963075446944895041889912324832334255951032590911708330389672046684406756086445240027850256365818558203517475467390395787199096234380059229197544836989860058143411770243193457114185883799291671349224642382662779835044784790703724635973985564891359721255225912986856549853451215774869130277383514444404413351734188246569719862609376092286257351782870631810635887879232532379697099961611657010788381762838315896735018632971352543557833209622018090294377380513197269768809696495220574178248672171258859548749875525119831567425469611719113829700690633517844885572955242433134096122129125776006550920749581992042808474595195234189573145039225354845804047700172643915441624714859889607047991516718206299746418386971758755476684474147292201382686481343206215561884002460616959707583492229881667814246135626398353813313165857835865301552169515134710389115785527865300806731681602387395480352783631142284670689099890804399993328440129941996216444968191246478507518421689020873322700214714043064565771730902852395321518856910195090559310690082596626841345994431659418859184197099532577298307504793141162091465100166653343190104547922878769146227753408520506621940395901288631175914458603547906649325592126197772740610364676657380088656405062194491182687171110834514760532273063161979504555546807112248479824789804402574613644438744224197875440348254117635679689263046759473688136095849824711586468271760338608999197067893096983388105071777774004552180471911089192124092372190490908615987360281771575277477210928946198434076136837085000437361869575518587484170923531860479527938196138050516071496707394865693343183066926227167098074469183136462658032512005839027765605947995375730067510581606513233478163197560423751514629035551184394497403659763135920406287258328962889038533533873085155244451772089250660362822315672189962622033732439573628067822315534377103046774741439486475315990590804593863427874493840692456880996378331233132242318369026032496077587281289925110832279334959745246135582549322012891588690514285290976645975239239518314437298363341121532839308562789292990565021988118849972457001102664573569049406243333740770512423198915248150957252409299729000894348512258121172851178239782607492812298872308092044990287384068227614110582568835058948965051137250280836194779181471794933340515656852966130451370844046627532773671627491564560153341500407832358434861220903060423993903688081664612513757383290501564277091598068330778987802469597439700276770831428299938164314245240890173778172334280202747461766623197869316999507597344755318320374706203727772935797263220119743878682617090818515494131956810117523270007251759449621148326997096615309120338172609614134784061201884784186181095584339334646422734131200866669174990254777501389800347878367588001661154988615382357920720290893226747542568941757578757813690181926425955940058902864270425527336917914317668944899177049088406060558771555938298485656928604814147232777429131109060845968109302714020021700797916076249322376366286988278109911143820215386664191746855976956321003931744165538912464825987544848991878229721738435010960147216823562333170904205375583752338719299774296280113972537921906520268150793448395437294797489447945125087731047867330291573201053121405446662089965761465540625658345384209204547716780738500975282802837009917913028160308737857517822842246432688354471020708197040225213620019049872290882937646064092336545741089328787523391642720731449649106748078335138611936536643526316876348952916392926940062653277542746749188977698067234037318418348038522784609899426564298993161731911497570004860683882486073192481310782810378554781860665985989431586262139225711432912892952575960220951106720838837652583408737231656216329510915644976228992863085673049166314702315487501557595701729547760712761085522573496490070931313488156347700620724834967460263134912226499779194317070223904487438995631113262139586690869073278664208005111235591840636504191235486125973577924729907051703759381383165051149217672738256076648585756481582655154750704591411891107139378759275760805689289061939209183933433192633789995205244654776514954598727647251839253261307593336472944864641866847555305568695017872888270987154679897639494312187408405884936884805372102184826606185785499056242392934710058300941231457187805420359639058509057251096939767658603555835755083937369300673283927241864396502993773151759392563549491044042528944803189942689976548121804432907819536227448439499192141760032680474019743743526333961050164891877627359298359191457074433244244469624488666050288619965200271441381763937427551760106795295344829573353309271783607786990470221986413176927929229549896487701301554605881971509128963437752746027751675995112010298669204273086435776443128025251470207176985332872240944387749450113572086072325792721945880943428499822428119220528333326879767085536472401863777483156816136882695991880531110313348238609236762775041441886573701096054692506923962172936501866610850740664193399210822245873950584479457704776847943068468599532468839203136473463807898463220016812297348730548739681579802436880739442841843713174817034963237626644765835251055731783760333624582868195580374276770696550719780528462275597710122364191521845381788230555285770361093732725333901754583995422508060086255296984228812898936271614715252667371848301340855304626872219441705556685176128953820924968590096479735535086177621563474997214440788803921725418187292006010640339070521733848573047162992876709816368666569166286350376682807676287833542974811016592762331324215256210591560680294435283416894159818225301466685540104198286243951458974878768478346567474177562097517433710626943092093811273142018303298906968030399036861787480779681201331147838923975761891729375305565903868852320003632996135581271353992584062142304557238653153595272767465001381025621705053474356779590862828722351122528361385945417553658917399162660528152066166174788869497766863806169560777677707566083145061374672243625352345463154397311942120660887960813837916146758719947779588625786640604958679734244033774853566838719752950154541254431454480222989860514511428518496937772340488481976016964020850071992868822283391668052534216224125359768177150349412327970319246672774647945260301178810410417798831150096482401098276975405136527106577952781832633712554759510205597559015570314891672942625200290614741095726141282090346030827696668848962450765044232748209083287797780324482817248478593811475517971652625073429297310433324926825171454741080004316183579654358383638205800590786222260606555581615941293900484246612512677089919542915362424084030023856720995698696184453408636732497631912004740614485805113621770351260130691135695450626715986979647695256299975524197536338164322947173761066731744705681068919808729905249084505722452996987017882663606871433883515818370360317631073869356158940776818694122178147320059787985891211195885004313763594126143935456577496579424609580814573525993904232352988095099592017594883935145666110164750465820145330952721464166480244816961981179079982122709595158672251943528173359135410977875028377760882327331032311737629538953968470631404635622634367108969661252726968627070611156375111342001023573353766164290668905179024371402171818595116994469367318215224456459665805480066353904995135785640963228919120570067934147616567992810280689408734041820087023118770117745191774450307556172721271806112362863616879138179811549234355885362434300711296243060396036998894862663511621763739424941790914023164283153442801142157874594652146733047251453882764229909802192312942449005004742584443808063213594211575096602633200568522059246246437318908643870975762250104391733217301555394980978322863535769254897247270424490363572553114038564291972532740641174439651659663627676849703583283223537542943784669722093167785172773514269563577930142179074535817708970408889069598207344483518711780187693495345614091368285261747576457263182629492850838388115170048209498325135882445474260441591757630770493851901847704425618709742877472481528284272948054193796016923494444344384344847476538337958281625209440330865957919648377673727476825371246281088026151026971299228912518792948028688450918022771553235788315154149622369596329513092517971631525594884955315625623707991841151959011333908529189929242469167008151479743817882060692434032455372412010712654059100190172258764432081005696941986948531573106549176624627773046162310032472174013850330305416328801135088065643466084899432216892038642712649439038462379227958834623581057334103934512156626980698644357796314631068400135462669071237333282131613949337341679855373289485617584397448262161752174464348478547537114965477900869587740743282391025056122315086206375818288413144339157365099784061741670690941937235133984362050562347579796075393950636217203175514228583386239496983060042840073159186701564829179746319582484364186346316633879309617316167941246835894303853055890986100239976953839952501490131511312449655339509962891925962355433103819291607384078154416616727222298163408048468477114112901523351990260336369456594465604394072140958978881986420029705885482967179471462041031835968998317252052817346325540540933847697269693168898168253194191706935472582570921330100560303127809552033683819208589402527213258968991906544212860654937753191608100229660762643085441159010225221105259784937082082068386804811209649628935473235155706982003168139556477833461671199991949181442520256579592307600931451507468914589319790921349263695907219419471145986029421787821351518629535507336755085882665828063126143397842382577987688627603920239291595650691732970823452632932333738644933881669980334767094695874609461546209361457769029204045004808875685563231306936633974519526112094778441309520742690368645766945715876403370094596324629969414158356781223906496774920495665330150659833884632849523924335635063721469065450050278469828598904410652194724395439859863959336792843657208724231893957904748426179008623074883858558694734153017956716633788919660897464968285740455247296124916499207073002694372594645642378134697702596613567141625314199621766649298413192071534842613386390265966953182873850620437803979527280252400955158239380893237941114398179719478307125936337015521624784512770202514562151699437196454799084164099162867083511138506166042240536038144199744082079311727243399418987755900826811533651461625728598801722618862597737589898305075944966084362260341648374590448927244976511416897283899838896139874621891384339185654492648854185146786834708291417398114458609567520379625691626611347770281712016970718530850004523416055762548963461463994610565347919696905258697374890379864742399644374762089982363548290678535962798133691306152335742395262472922071541267812045812181580579232689656594290041000016709359188250707139148576902478537195727383721920223192491014864989980881933773334250861059761697804800965243936573376046418981594505125691151821930627844653257606737485081923898265793764096310981896707943014083907118024849056106664106099733245953544872736488017497317747259777993818172373863338544721742841142445338181371327391272640054422399012885690488933536922590188443760932234293462809664733046938929158486034660590249207960838979885683087473274827393564618675871197360020804223656934410964232073894689807968529016215524299883000971274801574804086784300641684897911377610558728245543079461267527957899085873337540944344494049592884349027516659771790116632529106844733049842481130425657467255250879820513520876481952947026656734525059432182100895300172888695405654207380641758993087938109011119275851222286536440287479527388789132193622909403670601657873048215534615597320290392599714392204890203656231559716310750618601197143346911066294011788714572591526175643104180152770716502103223526992108604664650324633364807541593565975380132027993611689535790866857536726017388962304307432923990345705339341673573779575932056382408299822004893806428763566959265914985248758393703972761203942892231533143599902363956780179607958957133596177209618890708648957003531495842731092732468886329150435491230393214611039425058544425425901881020788678590200587015244637176954779443590423381421059271315160922487596947957597315803911254722657937796651488346558724037200335279059022687903872226700538320719353873660187292171637892907553808909756352556645977982670381719968012100727958969005500875014408172796495618597671865966645241402862758922305093619794577618194432832715678720486587924519919623614570853361571726275557944401430807510219036565106789364729495460952557841572920635778163150274373480030321772854128633687988404380520651425624505392798294549775229735060535474401019331961289836423696725079033478017318061694320078212027449934953565337522650544348066040030338861654139922895037153276155054074159448035841982418356558701139526719448569504561434734503136799840129979670158892358424478837084269916225098955945328661388159744035224036735518587909999008280426896870478199776274791522785017254360961445974758566086601414635269603738795053364730163359304072780904315914827566705772677882257606891087948760619101114286248632261319306252881162986820954681846124938503007852520374093303365977999163996129352975049553706088176425466440654025707863143806219779768637933894627110233397716358077827786146024486768406280597933091110054006959489158366069353340476075877156705260620671764500127452006713559705352687455042896479324932684560305017758361656202419256038253840117904970009456263652230363328928574338181912502978291656518936135637275484203265739199439204518191259933529236490062819610737907710941853842517976332340213279403635272360182340561151610052746064466903577483437767793537021788363879154159204387124495853759484772087274788395810652773284261906171842399338690005912111382354943135780070851093666976726165584272279732533723583345529161990574986407804539416780531415767310366348024139863291704708695614788469486409182723372621790455701346907472350513994250540826434442645032218243750252781885534237945997952920955402074900299276716510677438992882106783445470252382521881560316655717520556880000522385388789406470087883468360259285763062919640738373778533019432436527609023349657478260320954670053855939746280906585426018877888594405400394425375017936120785472318595235138933647706216726578909320628949086343410312545965563535082369581504568919301048399672721135824679542571723451243947050641805187744203045684623902667632620839959984594261184683545051602568522502804506377980346278727963656614107459701624243161541043971108825267211293571902738469539450801334828504698621166300839195964882572179059174066098148089456412737035303326071633065616210648670951693935288711596434588738010136361596727485032255391964641564289943412763259851338642517918214194288822020976330162930204132112998508991159258003384359137558149647554471012508787762471968890469911522204672041807666472228556804995332195655870081324272698367354217678760893060431790042571280362982489642707516517583169990941593412450099374065557640749248402093393051477730496696604434219593965320205494538901059827134505471512813842446601912036135029266699247553431200134315287832607059041505125350420544599648410754763530839845573759185894020388780477759454562521513588418777409583146988136525165922401192166065854678838966937885605994691181822438333575453577155027808698949024095117103518630490562242902708016072501240339458044641594357717494487560566769023002583209356673672878239558119881439832452661727224400541510831371690223333803114604668600062259199669697816079924003682103008711810035380413495185326067615127579945367457030222712963608711864227079469756339925214889813662478098960336123874370910366522395073306044645982795938850749740799893902517800987614095373930427360551132327462537892546658852393245469715989645699613119389485179077400344335691024502486233652214786054248539401738635405311005074648797935651455447498931595627518819094069068616739067257383235288180865958768001650053381142281525090421155920329269422481907894148643277022278980807093109262029747241392685538817676772257983075389044409167845392596134531008386979206172835084175977419248152539198292867780709670332429409352707044926290951662577236264855780074571657758161101454147600658208600423170162760169123763003163140046826528306912089159283459820953168141512972243600455533894474089342641770621207378883736176080548263826030244731333198173606490608954297553171515483423129691144605572217826011442930955785869307187898225907166635381594216543260269544274877818769747475691363137551255735217481823134037528658854357675597987883918910980432426647772211687777749205721059020539440104730755731996475925759553541042980908478436204723127049833522445582013548974062034481206819495972549741896935362823735682374529635585175008872960318184925568057853962049743008511683844730713081090174173183552675784370477519401279762088118608180791974360210047968960137252544518354888783075757315866884628027376168058136825209695126044485673298549450378751867652523147407582332872529757360817890695040036545504066927222340142381988889335544168086853139191896879526601871817662911499408655337955563574905915291624682958851085425479642061764627301048797875332267712057374298890311192877393883667637772339281386576162607318707478081787045945132869967437626763097849231227251437028616809726735666909852254662646888982062175590231089768508993850550832457563079802606413426231377286385092412729255046033731480750809651395692584738408206829232324231745836936117541615775057353529829544565644887500421693878005258869509698873464881486024979591609063199764531644808633231934493972164313813289449938616879800398289912262855573451487677704560226888658988535757217296841308005900608246490667013919894987393142084309301475981236281401391848939815098142832527148075950188406474472291289324505812397978320823979082876986698113260221138666507786659117963676292555310554495465278574790969938745621121048082867971078432855873773356904703834708831818444433930552942469908606120484276846377510051838128611773881067378504961472371491317989675676223510700860346263698939697578385297652905985753379250144327112811099714655185975498301441868041371195320609253527926261835132112138907746589051965506573046909157917336351583954775712749573934720242934854809124010841974737566690908793763431180967428312426203203033989071699644307175245810164490991054992875808370529060600009875518932092175258859467910025799671802472170846159421448321354654724874795894424430082862855713078926917559240378298679660333153070900188727397171594362780020124945630170424218623168634407963170401670249115213627513731620980951827263500243519572083093284685088198160419721956733750873288079962410795401730675327336178854434831464396775870057627431971685113217287995064227003651198095655946861754417583754332907322689944055266524575884599874773050421871880847773371217339645215019327218427971406592047521323547136576644991180545521002427392963472337894687934646872886706725892632498747841130968609975746601298652469870942182982772036840697826015333285812020912983668059439201744285784061867854541043570360269353424638284769243444756719222529157548836276231302552611758724272321341647710636121703361444119671319232044513210136204558729224448002693806080947999959144347798024358553448615799060952644746945460994925704104077747553114070959715334851182569527181032375517544527506508494388856728132255649675484325775859973805086644209267876244665418659201427883472412850455905118540294396325250176713494744836852664653520234849370083297295292561376486985344227873842568131862153299916519175294016968502824360274277555515031542580242446486145910932006193426001854027463268301615998626163978506755001401205221139534175132100134512841529945266755703275366301152014107142050110899834778109236688152935245078011179845989135769805459967704123720183479853443477982901590453732196465293668281528821829143545781927156544693900789487760988545322857387451518346579832674866578056155568507150970860695549111376958906663303413554768075516995561088238127566744385510611610382043826846622450210481784796501781510644675847421225827472246366648180303867553504460043493088005546454383346379057804099243205197272482951919420801129419541190686366489092764886938382682786406066990270977657132492253359332397233064134073169499193703734819546424927216944790152374828891745078589183459259123976209758687201486961820102192187424811335437048004580984100857601327408090036707332256141648842218168971641562768903509120257909207361476134122348049799878792128047257814584141849730190310328316329547905231919191628952942648488991216879178393563251466728904196952867945420536117443280953276085089909272401923359504046554680356203669261191277989236014835520562813998775053889657957471954595038879487442008051163440466674974420771243318405077865597378530554600860184578802072221655796995582302331622783484485058320622235828310073031133900346244717629683274910638914657921024973239090178542278201412826743150372670602533591308071566137618916808431588465216209933595408073108763546395469361052645171595784210968307732885399510506666104416028954508330186465735081285499881718585873611774442149707775768259323613473369365569914188066230398672877917571927522202874888088462674797529307506026288444768304425831602373619516364132479235010404675212255621333355404005763807977689503455049612839629628242475970252663194806221789244338903808862372379363734225960767976899861584902070349203093077436433319381587165376606451119408829987760343077595540771609292111634739663157786898456406993816719597367979763444350372454904920694096140954624616781732108883551272339233468936650988489841599703269251248101070623991351499959683426623318867186534067519721737393699020659439206796092776276426780385968129878397649880502391659006479194509127605542942180057049000655103227195009650789817968061591657529704651273793950544473099025514265239255132296176891503099559737608872485080554738688638525000763113841558891679331514590041111559824571625934647391002427972814836012197424089536287452588570929562933840763554745934443140922165922415424405938781763352552709154005088545804228195410038452320345991147152817104287603872043617537388871442996375393128940751535730290042036813734251805810871752416773551265227108125535830907981283028416612499808055296556689826721902614442662319202302518204981253131239189004475966218473128633904844093482067772954702688215817360648522576084627954698762226516464756775271173081125937220848106682118017595682321917145126698375984460734242755088652233241343867812079000502712602788663820589412145949993671793697335928451429553863818767422591389799949002371761161903330046261742528694683466680553045738266362054182741448408627887719017293952928077057495561436703716327307740577565702610937521025419098900826183571074964693842092538351205893119875599750871934978129548465995619350090385839197562327117666259129206591566748457465824980966328237437674648407659940116170887532794319956809635791880782670408347533506689281500398350963700558414376224934066385939158436577621695136832380326878250638802832370848974022797137793452847293099476046315828893405478685945589003613505319821467186018199819567357082832654661354217849822420840428842419836228895682720515599653243639795184065334253794534902897279247475994335071517376596772382405648985341922141046414669907025805714981486303848514322266523482659994256779458685264354144580163765261563055321060275476940076639234015626787220388518013759472506342043501553883193834245596226020194436278505989105160778892760240927469920858773367370504015797393001475793554197361250255046663949298751503332356601753961183766694105287754371835638554957471757230565059050565907913208557388629086104216188796887918992435998781888893894376316826465478072984537987186653646694137014682605870923946098892424181134282078279991674713521831309362266953671015174783692087092364026995122739056540258220987711902820747496712649360626664265989861672709042748577442306282262331339241782251079808974169092576003298436546186130346501148656973021469735264999638565776369065197118641486144395942785128214323019076523219354396121758278017978062985570132271825605037680656485822731466372501777293215973154652129759359439156508352777276219032033327790620390345028732037851705265609610890500277640332005143733524083679044621937565460340631515345211363174805481092105177152072212386547215143013135142718176832783926480109146640485843861233970402099143927064561431930368506095756889649685405572720138560403563670549490049384484671406988953981882701657146707369197660471250318888416491250415339298287744127228661720920640392670326174296263922630950060121225182739396670552562444175921927809489968773598387637662518515550434718322410705526086067864106260423673681959083598322435492034332240200869397333976678561964947359308433152984625219294230856816485467457322593721806334607539571274697550057332351566634694611156545722202917595283845815191118959379514533753223122193503742614770053857427343593635226727150114010991209059103251084472269215027101241420408730455687921721848020124611249305845277922437753890064938192884998997838498909027526522074704283806146749883798162936973677407733724496855063818134277716870799576245594340204771568318365703323857884460343839381905614385243064417263071866570043858169701771281041202225106347351248785614619164386592634796372470891533029007275913518121928886468536981919014305067799197944583499266004852839845569226562148552926650186169304984282109283447293783665830284313216766742515618235045747888703990462861517221589068828297764470528922517323500896984328686525985756268006038300032115042174138310327564500161198680992294205866323357306550900079706474976355682634238401931060327937659603801531189992655280136871526031933508395464295543282909678729044622474119257415745466005405796691483717711668131073703909211651706070540443775678692803927551305841208386710684922426037853180488190198289575330101298541652315115920973770121107480803678339591969427882076168386246408722695126791420003096726911437624413224018221000406584799538984397681203002579168238067376324817215435995200357396587731837732684785470690692143077138236327427056486038663808368280356038682899902566127642334514002489739281328408122818108996453241293575632991723356503598527772319970582738237751107700225890137518668526929557493844113684886206110443443952344534032416264507190132251264167978556193593718027987101231525368468028272174030933338260721292771044374879824223848040516383935707413205432497183915228312609785763534614860068131792912269043679578688545611747316600663444827292453787234851992780898439171067583994939905782272359263808017405866322290442442613326826074517342493738143921533176619163538045179246928318609801173606414532371807355946108483050573349563158699257514254892794181535064971257479049507953173621653740701664634195925396334736112288896516692665155150496842520684906692903121823517514378238278908896765031397407248675905994508707480035115573889625934631105492566758469874451164983298421426093930108140945010451423713301097933844567093792352839010221017289771696120120223040787821841700150591523520810388965948295609554504098425384464566581092170546861831711464706193190656599525356520508250367480554747912077548281368175792967213639281366446923929683504794167086702223682535297913127611033287640701884327486431270599596452096915187581030353736491561481443679287515741052132771256184650828319847082073757457277971238083272080459298752331925626862643498521067887586132203890264813317326573118950132397433050050705215127973509987965332011652303293517366034034699946005310454872654224756999106301151028033635861153664394247781622576950668819265785121712959602573030712311720169936780798810523201242846544005757987128390699782888759632461857977774734582717150602758690723542187651260408173785689989258236100618415796079585724996505651228156163816439037995379836396342948976228486819815293791234461517210212214752463810570503978798469338660578852490703123720935374244547692807876130773754734975282649101391810792941574547259967069991954657772490207178109398166650284752144790169781880059524448039066167299183584764724371138330249549455069459641018141901348196577058131160547309626358113850070414245747683039525776892780133263392335894785760714860519358988438032388554303548692623726108539538992387121413016005026197162702692591557611693841049066481105968967879778067623781252447773224186439348477487953030788794035921128670679918613798591857632197427149459589631052849156416050348945597207454913590769345520781928667031557931282753272176807672658248589449009001239190016486696657660596884826918191462649238422920825892115461287014647135302725115109548432921065612431708440336533055269613170641910801000296129132872510527961044171134748794876638713785949647114341305854306931206172978469252658194871772314245680409106115466826245035830114217282334264557372358634119837164769949075704675159591937537031446501553389235163450215740122117328214235579734514292920513491474063573528070032721473296285187533920577893398919079740186392409732716719381913845458895985102242092903572523308896792544829947086396473171477607574052601272708491052557667707278828465991279320045512853117442763589632107138038790492747516180675537939633422021561984205791344705135397934044204655239703304036401446431301840813464756504661730483030892034749063226911055618294370375079376023150049636188863842669629060287473083267967117380007573413501701386438212498844742912676476480617147533360652130036422568254690818618007058552432464574319889191709899058399580542430528435046311419661449556174107893749825056097059802858108635476228007201315146681308142234526669259813758966895035915264825576398734768028531960610134813653790253350295100868742863226511947158970154585896889585838191306492020660216978297612336376898798968016645707540201135175282114477398083081128962358299827175355021877864393593728059794788360817925959575358941899051593039755198745186881712077204641908781446340952359242501644502036913194571425884328872537906107204390405959101427756756039409340472519608881082469562060867357287613702009461919063524774957305227229860280591471440405011908876850831167319845961169620839837437001569630036018456719695155349060996096212357391975241311558544539441520944385279950401284878258280200794776554519128528926851700959691619151475565144500377244153353307944567307160232893346837956043629663119330471459656813188100693584481289151713000961751873958533038355375823954420204157242453466087506624332855504442383199172062583680981510389075637313552747782811966551681229456890412762217239648169175221303779533878960307832560614656772140049497524144370425477871748722135180118310035388446475849718873125773819730180125721250136942573950853456803751037210576155736291657626483386016470158843186217129179471271035417148868434916114188936826202045951201943215837723947368192782799668392284726741195215154013807447796657994214400341921547528033514435479216701280042136284785481718915125756430897853417627005178971526402630975494120207289947283169264253916983606292432971307319120290108174127178119480168038040568765828117025329634249795919780186608569052567489896791888930724239456479746616328871689489038269481183959506503628593136086017748446697532014463611717532244873099462585635138257274233817242685751848916447034858805047418266539649832027356723130696981624142820438891576664313458439087391488594023101528283877798293324851038643842560565992279247106302767032179699718325795811788530449250384763322833211936924910518711639651422524007615890330369576709605922095676968023309729963730029568572959610615556278982970042591439638581003352471107481509363126952388472437621942633192444919767647514351518430854503808232456512672245132375167889312375107618571917248680411382085392488644135182373132273392964102806738183238618632356142923600026367611988472418722784088972978935125703647795611417072153383669374270402227860750985414499084735163402301771897401989865251607855270390761592550435655608129648358486178797730125421460193331140604714515660002756875310626415014993791156001852186283872300488912285386003030457199070830562803060330476376521268436997297946510048114261680809654030122697836912817079465275779132228384638355774748911362138170984597093324106236959668331728365114687658874985165988035368342868223037680224989660721877091822388082897938011457166309919249291048247113797372896320926244328424741645389992527320660089759272095540758131162976228223891734237473008157999223876513263783307033556091340684964109877681184514186841378369400490671905259298117340618958307177963069219485001022090270332437672607402321057308540639798794276165696458078840466368437183739972637173940235024909288758495901570262538738149512589104259926158402280961637454472692637851533911204084749769417936315645585786507601362222998771511514204114762665929927140875891559781280629031337191645326975529830576718766162408433450396365852828777721610787664503835407386999560061651861755025325552388651537365783380999298539255371202800081075125700071502051775465678488187194566615911467280607252640068926817650665888349208762109317865647258566955913064753660713696179287261635639586833876032064810355332350067267981674118071566303770514876009993928529691262902098117859972522857736478571891359273644472268286662653471785022784890426379712780298795995020305734275676547924051117561201799935061421635935684264247181557457767114930654943053928295967231745460136850535745376934262401502224170556693094716975223178108214921859210310398207570110240206043644644946758196219583827274971381427343681607776348192513007718544827037397411323370987239609042456501148580838189872918127039517850351673528251418326256448648032057403005280764082586629620122778951939748749947039077664521951097791242900339600629084465897870400851230917574297786384943573061550898053276997653790969852756905366091151142286562313166008186236331697042084618192107175627335903436503455073647085498724610627953982873544963265847950036140016538206761032601849078840442552291134095554774494847787220212901901453836543677119977431338156511382153546422590694033059455050902220712655176686409872296538992908349074289776972406918546986420795112474034259040218544710037983452631557272029258295783193346468149309004725965841067312779055141856133700734045788630148407224863146534694279512718647232775111175903617922016602949432375580113999477808443654818002675981518980969180206921872371438877383790811166764275424935374564074113813478230603613942575234603099267507713572268317689441175194529957620661209861795732654979509964544490166967270255731106327482657334948385164823864065702467299002856418591955340140541897277364761241255414529786303208148471681783761719076811822812694375759004130920193540106914402307973506829622520098175684556440578894467058113871655127443217243518273068064903762320109200056208867057485024602343030924899299139452005276566210766236242806861160323072806432420724398612011756991088856932308369021747359129717855133263322424003630380891408819871260780499182397290359153980517253532271265538386899015443022364713548617381049954184664930870271474878747401491100030272494457260975303148026262180950410632950047560953012181857836028501704189355949613887872722524036476805434144715708073803876526557525608609908213300395132031340503281883869471742652252081141870712167362486427136705997258073290717793695548972290457266236492801235100811719617558006984374805971374317808712827978928601158584182886154175873828086679577024936228420526669484179055651941609816499188631046574095477605288023015814163584422021542934472385277026444380284210190017492019738113632918022206687232384834106804167797212758260386118935608045269133708658934500205929225733368874260563825580131379649167212414340893457307347861274817244345048583402176847691327808271563799583188002612314935883273412185532481830704915387969135071683123066014091776244710680094524864367444125218822108551062284160403729820803413908365933382716119926156656403617049720845957263429681294686217556829886233128504438731685246638076293213307535477549683269095410184240197923765893403074672494547990797058496670604648995462817845442199629446891749344403985488469462295093247125640773146278009694205691596494100789402437924827181845843450190868899572433800605239106594306235614216280195301375857471078221330429790530409188908427221133550878529921983340499808336622891306517085914195075450729365656130486695712184330001046964808514118953051686307798797129102809516477281229917429587951116045720861731559152965181560043409884185857495184733120098333210145773248743308205346566012038512799594978480053062002023465206844338719394227083654149263630586499514378414364855370132927818230909785644449427855738118909469926788938955798164920491769309432223792454397971742312916653009366358488136566302188853324736349857665651750802515573056156648659546581818341155719145766839625861991144180571741511775977542523909479310559018007307416633217279059314211190416321904789761537311360339153609794872343330969790970645080219995759237130745350300278200871094477190599702472217255088413716234206232265667612463653099490014238211946136757059859022075066430098338737898517337986983532275211862931060473740814683398368428304022014343481734458975920218422698026083441087477492216390641493435732745381171298564281082444736361716310938227159524916942872976783659645316328635729510369135054278094682129342697032985420167024520694455998742914836116252653520047803779995105769747280335836809088487307884979910705713349905593439071731888377375240803356709648235676504056179516346444889647297284858891886020812031067915633220740048955466501225571107379871425678574411551828141470579068249282623225699140715708448252879263644443731317130371161552170666765846443642244902050709365374427997772463033564776807029885089815034351709068337868069559360966001732318642273709415932054764452927878718121559005256176224662887971660698656524211670138063519754928649437414448263201402235851504582933917345881429130874482725504721217809275512199939516353999435574762415826330128111590380483553459591717113943574802071040113104689237500139198202217700626953371264703163212668643422802740479071364457223077388230042883373797115317455699663423878802959072985725620375703649661240833892736169898785204911989614677543376628751058324433127176420029814804497402549112525371771110289334236423202650363135257640739340449688999393723002199745322077927250528955016417137515792443256848129343240889740153904521132369041343679823695769088491169093478790796753693422481998095459690023974240995547333564736911570123581845624846412323028657211505798810356825669431817812533914823247223132186163327451919548669198011693043275696096728870700786366984209648672802848772073630568261972051171954607236297971209351163281008405979084341567082140934962064474762660826103348029337659312854650961157441654909109679952682518816586654091867410729769792345528111963380084219363521709374125081050592659283640702697173381613839859903039873253558493835346484838518990932987104669679137109633103073103861872505640891804368589260122254422709511508826768689917066776947634459819420513534641509071585435263583151551577846859890453346293543452983722545341293630494884752849921503535794595743036482766249892279423782161127167261126723699521176250601366194589555004281002906110602436426043268195842949982675709724594661703555606774521536771251986497499205615481620106218502397875958340420177889675593164791325384094870500314071821596166272332191845129235907020533311314271045947497305020458781404373376483938476301459323964699315489146136636083473410446561856185064944934103682081795781497655388199076447079625126116446559962971287090630962885583990874746830403230027214696218250037774401624376364902937282088248667145229195892118532240390798430523522059197632422399302452949224601719267168901445979411721530847423536921505183496815764330818681425469370539089669184318287338400378668023923193304927447264003542059382847909601929098242046373256387584170722594324301687906246431075214611181136031571815052177115795662436688536582818207425746144526806054944017686383411580164804534000429984260269566628010632535246509217230193898498549734266439030045773489958226664491907417407208121197059891204598239807763417337005368688163990447284199038846617804033343399805404812670483141947529158023004571058015630621201704439088689216851015535673021250685127654210003368925805546551661362308658603318332980215483452239867761898590022634789063209293012304727522519213754094107501489805950165641200485035683177566633399203432733359033952869711694032640459587373473277558118817530318138736609682814216960436003104998774314275037480278045114156423850489191683074363332560947378462387897184971307313997499731200669206011730931701453134837552093963078793161846195068105664351986183133016592125889636345689592301548929732840161094276664666461700328392946822524881635322548713056455561769641857645412523078915496495169947815176223685614423740512182090303665664534925066445407236541765657649324280134258572656597094375016013672686921474922663413794526302937212993145192922250205737226505362840164205757348378279903925694203776086009823985828058831379964029286814087764175026022815124736446948312747668185347587576568518575354264765372458853714149284478224043164247986840197400933912169026452603018556205691200688922178427036053538839653344262254160342535350364699018242361707246507361796321421749060688634427813401317132754906347067695093574158838987694934032890568724342473923009404179580567415177730279034240066902101518683157904257554589038444581338487747746777568261048825331635868708418046316569682927941930275927267405587858224980042420379240508424049281059060951862337856069493880101361135975924029685227688482777556878019488982468010156058913343968344653490629816882057433822518818409020157342464041509219327514458384480817365029221785710535278616820781596615396768548795870376055377121461059231762783550182424546078436530475936852351895217286733852385552340779546183726471756550465281856063574970381165545862912191851026358330799269357527261783318310773514909532925384228771375032437223477867757276780415506556203034528637203609450598932327740012883401493710791693748909518208358986873624547011277477876592918954456610197035907259558976501653280532817232268973361271882453307161724010190685741828028687087920044360944253353543282499681594608477979200519672828856668778201475584359186529990721968104369725761938451525154076338879820450521075259971632835107331348609949349748530686659281179377176283706199923820356396349505902855042652410336281082537096184317842406008374964127923137417029692513209337962077774040221124989886235139910298092386915359616028494417958520088492482582150389310254758529324074946443277998395263967103701114473511918238696834184443184259479499647266434328566176383220652199324729427527131465391979192325766832308615748239200436704348429701815697348883402256570100494127446707054987621687148458331419423239590894017711715664849190432538868522522810293808678810572844825726222864554378126073911275140257299257877027483051117584880762883277421101507041809243541511618409338339144793534931300009705825534894635285132143076505638316803978766874433621938286875082536595973344020564594068383880751256230389109606255687454094450078283291223380036326442298040027986359439450046516776711157856922664171958897809528961028183072176588073591842097484115312033027742674424343096411924832783121262824952502526249267100987182030132317393601804409010386411083674395463426889097848631317789333599734339245589837029764915350507364104052035580231452852855953517353824617730836106773074658996561434270315230028721272479110687931242024725665264547771769478508478639464872643731901326027258375571013639995723386276901005536845081014954359745647348725048873168475800969932163814760365843706707214816518838482441546409420813343057936317225799071397638306966380093397620657414104817072692605504736258923222286668534164761501535410519776498398045638643556302195318388433338610043219036494449678472250766721673485429665598012565307569496086524125374996519890272668606201346683995124995753637421633417236430173443909293318732499905758585176295150314280720532757794017551875309686012601831484824645131135163431233295988334531536472126763361365276569157472282719154839685257361572691472585657548774189237746637804281637454878895687786779243589626610795016846966639283951081878881393646143504201658039185534224955685036724413191732007422068236754941086171363724294758798755191481227771719291487185514871705235855857879608479453884694877258913235294650819824162824477455939747292006561842999803805002859615961895587190848499036173438238815927400028597563394385232269910859684014723255873472850490536224251782579376846077456268095173696913099740062909561946358450918878037884378338245306943684541060411240377587790366908703059882349761544028313607242776283077980822637864485169962559107604451512532196605335617648663783032319769821789380597299952369111505784643648882699061841073562591074649474514927935087502735940518300475519220503949088178014226190819885271358227775006695495616671183269843288205207685961088847133663526212719152020807580501086315378133780335242987572415458484149060799669832535519769813755797261026390214254832409970750449080351282888273979841390995232986936133942723864692753734633789797123171344575996900080858129170102149396377834277940255738769946575980186265135982611771873848216908541597984344687020258641500122239459415058609457130293348585313314311443439320804051178537639487012180488822027677480570185622284895831691309965618350705099530181405295576418062655265761183941417830477185302505844865619818678668081917527172591525377023481223445662820035847522903403920654716817929350423157950224757587724254741760381459698030318927752163581000865997362542808341783333559365782701427626859741709672344724291859997775416107794713824434483551807867708089720800695789033778936810561574831418300508377579245034752111602348489516980525008108158236425109353033389257170068299672897195379873061707286509314842129040591808528540387082624221242544245152319694859194178984557998904755728683653047932575173563573204397756407070692614006037145567852576424974767766098493238320069910226216084513265113383575017390332463362205923197077768464581800824247070399324151017144287259888388420141662125811261612184235223305339335158468900878965695505248417972755634081627110020108153254423433254083110518175145012227152006661468315640456539364104768781886659931420867858431390060224519840181238067257423059470516528079208271240117129857815107937923456474364524829593551821351341698402068933514493059494046067748581618547718429996958031992701620458126220564352973273145844122707453930841982014233469921685144782949796262723990910086498630754756672416168571660062951991631662112749195673529406939425469334786150230609113306269479530019988486469229306904007430436494082351364710751866611887145640325591422629462549859294533274070038848198731944430010200736331281964378569405199297534821310940540588575387151145963318990042476737151348919260335346399352200280824306794904618450962521793938521623555104887637308531832118043312160357589808687123228567047693350040249330027611963746887863108558319823284679815521780112663124435618200627337693409158753003995719475085502800202392205658615779788690759177518289597412454389957386187062846571274994928615154136041657723909308288214152330510920964376099350150200226094814581760195662267971189156222005666488245047568540245217468232484257683619769889153320104345707942055513605950933290845107445007277926028393026340396665259004545677483232656200952304991378419272679484216323711287670064540609777722154231888669107799828580122670782657668702850663833210361570752045865242851725870311691364043365381585235862669121185678936150768049399130110985642346461301646826639097226278698183118143208777977094697328288029454217757127745918583281417068706732756614065269199945475783931197736548492190286582977931201040716018110865626813015020107065837162394304032336487789629901226944051615952064737915229418615929527683356667988363898184661390793737830934053715522829661368887643290107828371732578513058882643014716315497039389385490488030331871564136476515749275742880911769549999490589505806501708149410742957182153200017192607364621037210438421926423841060720285783870751356052019346789470827302520387691785623976125094393212104963265656566824413231385220045777886001563750766275961006623998039907570262988274904995596030881169033830322906326717992135248046642353293445444255344066565772295657819763133191602254251331785565657061954492350776708453813089189801568486797687980824972323010296576983505578957285456633894732893612873455756209208659308614171910794708715851045452035711429178517886767731523819662474680035165548931787460724704570193353825345326283297775425671571305693923413339978347731429104079864761417388608810227030737385681737297735401964718325012070522266024432365240643204721748948409533316364520215582144369490222326729728313446538638224747718834620702161429595593326562021997469018870415771991593965481225807860151460791732988520485098323451985979418153339997007880323165355504853603636589593946242144154851184938770832478421649634831840373135602751806861309670647850855922551591646128195522561592219831865869486380095585899204883776854937482220278882929015599541384287651396638042179945967686692789500867800027801232984235863169718443758291481384312678976795798278822187422001376163147564603440482591784072201815233131067060301847584344314214352093757077319022324230517123211020599907360971719216543581428846480124480575127104688932547571528824095784978784147241283988942697101883834753421166172167427269876037348280163392129936830059576024079749501330320464722463360202002905166554100867304161300437844798229946243872441763704255460890610517558599311332398552304541575927086476194965961228776703857301976256639158055483438965467774339591254412903151745293656806695877588653587791970837472211830357161416328522491953828643097393917362732804156793001705472050611187401134808796541722000991417300141099432450463741442809638735390399920936011522494254331436623993486185600916219472982985148416326774388983111358833067804268080406665934576864899627912627551401619426998546422879885055025617450115775689995798477050956830431140943346885845917166538686701986386792971023966092310211961774409486861268804879321641740353627787924232733839891549080391908513323986159829017307253984133896599426291036799912423422003520386555729343556966814231440965005968606817834613922719857202128732356851757689718599555173045650497021470102592641547017048231836279497729130584501375331651795934899831834885536476974302195415590423097882505017651586704153432966114565531878591286761681144351221467800267865426298229050535516078074049488948355750264712850338329365101558514835667760504979755687269989687769908814421596089505906755743093438028719836679706008159668348949383784519692637029988118710561859242022905886981501493529709233839741242431670129746199436263985878159596985187359977513088655650502294707284252447725660392065816194052872019616925259577335022456592631406946137078191005782413757492653303846915826984295612254377204229136154089209528954515173398340613115406765437524674235492377923944397957375171121035526024632255229701244279860625279731770204817323098512177714083639184447214195938286656128673065388452376817622005564560236825494296181355895785854769633561966677117572063529251677431847885594785522520692146866219408050353736142210273244992242032309384303884848936377310773089339347810432244100084309245074726123630267326308870792138115887687463677718816520291794857715254437741901825080447313620001012283854568994656914377421797490620270294232636597511256235251982511853846310088080024012894805541756974100226138336332002787969599207577121767894373981636696868446289187360336598346369581476059285530804648132768763636377222657353521491998269527031085666036098944963132991676081535531302302990679228050594801748253578967862317757161865528430859458339306483880840679233078841767968784675047608927810535276049791072317339177298065471031245847564316050886822063609688356895082188383518512656623295561842830799621863130415979527304469657355090720315171916599547635592889316329770845731141005948905945625381022997248391915391969873279540493036138969977059410760097813749136237232178227193883273512426400794464350406179113817471772403019090093825869020463976783080794015889074420073064448606796802135901239108917286438713708704307129171440751524116530231894917601986899304267870311342495326318623262710118654066750442759987745772209942452828226197858009110415664668903986502048666630178696326458167670835826304221596438937601950473023320093652885132516002688158263040724167654481711630134998857251887988081415658380935190009589955710366234608107430926484263657919267111788942751241146335488513076843080190054941899866635825000337012160795702579200000072141324841132925034923238267480363732795749123971010362089738356199221900422783604825866526233955669711266702324287287511192674378512857945453407678269108552217808944914020894322410492071086582279199955005066946925207152190782871127791284408830745562175534621382756093311014884843115735270841961275951899636353922327240368614703172382651449874574107420439315878069381565824077589972298988802196774393547667749413082490142242764943969606696023684754531535714598786003967936850428307501453890434922393537098504138494543702103691665742728827168992284294123779733279736672383524757274488182761090695511551211317659277797527034563370106377131811586316817923904216735921586747159370594900549507691373495964799846674282044156618217919570629657050320160649137399115257990785679214721105020926565590672660405339360392978122675751280634321144923213126590601790577891322090825105349969937717137882395768175432584688252845972844305225556829479088604960891364585689864701436415027901685685266872176495701716985259434448288457657632786696329899888997919608451884695604687388386419134237331263177394289387917202534031145906095088255612626699898021978845167371589000434192427685715833247795601642431107820514866464921745953903755713138912478920051481872959365322369662237942180016026511546570292587495550546086488424484359112215881416331789240875194130432873308481700344610076002998179696750929538322480704212730052934040556972021276258687691638577450826640797704987311125368358711813129376326206042812696067132162900929851992055767331905916123592819916329387833622994991751996357923253737562930527096347172449853370014354838330245225874979461374624227615541767054310118565702059159445677699975375606160142686756597835258191602211502135541148573182428684463527862825641318672751935546108554752788678469736172465007846118543475278553819315191267458193052960882026514353413603434022757654594085364898040275226610157705131190399941239270760448203228423779651128280421428521991088743448808322034924898622389240999472367188306083507414576218094375475769328020819374301210506674101739511807675865314953516291319833986046261700988560735315354192725632559828973385624973433372960052489021804459443921282261783026862347602170487392914770780012454895610950346581528928739263011596865397926614544104320485700072136158922644013488007738933756221392806067997247216291935904015093334998537321936429801037149874492860057417882581055392857597050027619828632136878948399451977204612529956215464770133287454892192620616228044189279604632271996820759346515143848846311242176258866646594541792953191248828134104829544534535409823443115380021469131790741375340043296450252513102753080731438179349542832341268219472970411258654762786511151357225611413041780934641621088504145747153548328112527036878221280812412339582374380747455312666531495794804898063172599747818800128550656382668916947019700939585051164777794129495791282843581076757240928655071257026464632805726644560551649805978696367413163947436631693340679443185002982018368466905644405883621842089314533087215875170603634912889543344983394831209048967392737885766168984295401509572427542673080966297833392200311717208065550862533126443075324072279651390012443609068341013487333296361440221305925605471548591489105631035085402789405158153364984273856130556709486910394310784105134447932168783129089468887075293828158394031255681950497064709784783229191839391210674260499305486064240363032346317619982015305671106231559536499781988829983687141134773302139965264832011410993742076286136854804392502101534694009626968116957119874863589204026307324491512513218481651098478003906760290797082168405451790017945921712016440421648780304661029816244379770181971765757360039900477563417765282733583374532356310252406710126630008643904810872186194321624668358809148339146580732510290255205834724623320215227796647641371651948977829290601424500061437809619921712371301498595309687563788151404467356518797149258833864626244057760075408545254787629301762338147645499644101461409566415496674087941328575756320309269890017133750152154509349187681525836820516338792963438860185456437361310633721566178161268243318593998195582574413439944102615286796546358848828492816259365880277678676148681263857987968637084581263000561058493500118233178592528830582558089911804501647869458677163316004506525805289399560649737934427740534334454386921086420500856392708949686037702468322491185147334360856568949688050205212588207395909814280964243397640957185338153767728411697824519346270640478977577459421514927302161258497913077141658705305870079802488586799792995545375742555475834445161211703988104839900172479759132151802464489389612671683716330842377235470873592023761909444080395086175285907816664207520527170712557307543501400879661399239403660035555572542568053383361023613503549729483616992313001156264564888558480250398539525256462843964260338155513171229134008186631721019167391092051599942310368429297560174142432682540255768541805339886937516343908748989933781701858432622322742807971281800602138866715814286891800593414891971850346297566193321373799656024070033132778077856313848394097675234089156089752603328020178744992887091305870968837801492993045169793174797631067532297172380549185259471459428800723910033095064037725688419535013162736440473024665287135893392401004560258093110102600214100845202336744712661223536125696214156354527839955083614863712122766480234529163330739710508005641367818220924483480852320530173176961227007093364881112564321157877911324633875486812555760425190578069536792137874726076209499731891297303507752448156732437082680796855167290901481011480868276152815737480713469252682641052605774316424951020019279136789188386939868552375539308324660103608433689119245533453324639737757131821336321268303608078280936618135913621910699326818077880313864579419930411226903775013779470794442725849530454920965079801478709500305505217809404265006996628905521934985062749303556101729714212696237152144724052099432556363874935341000250487288168960348913379247285081263933883520806459537883506233053798299956389791885041703446913836965298274131770676711475857347877976049789994145886745175021404091518309678084600913523749745513705179202423067699545615803754250827497349161815336936109866201730417038778555472673087680858280571300261503161783757297088285860526352825745745869287120020192203350562816886504600061454603988353097114340680455800791749544501915933069298894474324991026118241212280729982555282672328103945331649408594530587289183660113285403273825251897019596651398512324562548302512205343148412023882650016608814122846781667513047477004005555578607746495831599412475376212307013594709961508404912026444929950493848638378256688810824560189440961020651861383958323071147378725109555765317633288835479898292169286399112981647859566064803926262369493441662934125184999888796538656014074592530382395047849800124504192151093500782686682962820089078659659987202910858159660970329512944232537657574568782813510089766235716369282447489263659624899008991272030580541691338984182655214812838403360957077026485818400823419321919503300556563770690479221752502821179678852571682261711544595381826301991684153820852509862619471247207522490397335785200429283543887833243244857362494138047137051763511672857381352920812972636587984508248380882113198516577133188432103343120852247648263378284041401515764414959086038465447830984572689219802861306480211460458551022947427578804335200663642042354264270950492830697191119781598703502356357633661911203349096951719803430029759009524291325496039019275527633953585315479174818584166575751197767670854725843009469653480069265289024467986308466569482434366982263908529314992827298680032812345504471152095601518786877157532645890865319859468079926238610451674206467379736254716718811554070504520959635643635888341162349593013100085586076955487173367830098109812726529353700597554382717420291697485023675354214817630516529847647512015951942707089511778904891316672601067791171700856085275359548281066605607555491479526922681448006724090486430799313757226720516823046964040551849081417074899407202398083638745220324698068695204530808365609600353095943450335499304581530057915305373000572937834449158415973274593397558930204384431017450378465181564706728653407477710251639658581619300275069674867639519267670465036883890533150153441947590550791079902395532959086899086931016626222283084419770930197335988985497903877998601559329882237588792865884348593963620278477887076405317391043349810899381105593745146480483982526250891713770210669120922192662561043872815076758156067250739574124799446786302097250238142575168943512984206999136864673292720743970273184260095387364842581742258970000648359835870885155262717202868038376667904253210668300961158455853896881117857429485947592697316177312810700013123604284704893080548711737169676448860966326070151687756383913858841054718895761912755270911508983342038468988429199912636655866766919071453549149406863069417947946341549409342232336259927229601605081079698626315017158916854395473916681362118285516132932447617203977022321414199205830016014814314850349215324949060321708889533034041926456242994917170300211694573152799145521947196104255127427122340378147467282339054140565832861840322613571018655044384411013224094024881827080576210934296179374324307501181128891720931295767582752406553629174269348976645161255295153825468907462925115334265351563365316778881653137694708255845890543015361330685429091916148334426716699981286173397606416292774599993681014549332326406134068437009515967588116358539039867758222057572088945185937048209121832432965676537116274409061080761280559075523114492465799987893975657680727596973011193924023032122976876392886936095087516449845912103212209155170720840766182062871234784692005043147354055444432166387605325803965213261980328612389464724164692713652889292295949439401948619217441731759516595956045026869515942435751147166796811568796713887891442043773346079384536086837771756101920620469284901467107426309053021418036044122361838347937107522270580694806631253409196017461289842725071659446713269444466343961437715011204464907176891307304709620838192148921904886872087551659578567667280282244944895942742123536826590429065544587689008960938216471697212109068403334066745200525580980090811068568991709701846949547593030134557819014632662003770335310122499696342892504929605616111842220035533215223815379807628123137456066956507053148842651841425063571921513422582000436054284897092985761866109722411828472233288264499786440449614891719719025209087685055359516858236931931613095692758336119322049653574699279334496503291458071163383363012708158956348827604993490754086989230526311182258886638250948340415403975069370453456044945140705157136567876431304016665662619479488310106861514014066737262070650661149855119862000114736595274070407825381153626121018071249723145502512160022495983010768834284100799169987407979481656924305080108081860059710942117959030422571009440121536105142430246591153317003258868446414419962932785049278279818689854095041977231183989318040168215549950946065396269247699337488761474627235386748304744798379646336722444960230078546848459994868790085900315329308806516922506151128519932862984322428190544593602481554068189985409582505967253765667255684873137001800489570195918305896165504727533518718570244407316320342206156516617494361863805839854552224190976957992819489303381384371872518604059728998251387615535090016884474595906008048489012012198678158147872746888519023297071293999100595830539959920820940510137938489497671273140963967869659527598403181763882641627848031844681598007562074296404120277453379823003572084198695754012656508996227986035567232290825177341021677744100366778279578759432496048188491771064737971484419184697406745624353644976428305775396163200062034025772440202488518520809436709585836702949965797492604535811268714342232447525531791117113210778297500835252030041032971730127315677051956131789520504520299747964199370417990651463441699735975037919179437787590516336546753750303553970752175240405883135374829939188290980919320628274248968062794156271740417555548882450944673918319008158040564947709451232075947455012983895588308726525445569513181199017997504212230833959701640613975217791558758397110676552530676515250068875112762420057775229389578714196725266653655852785258136609556105356011102457466141004510951185116600212318721030400788070784248829609885471841371981314296884901765768441144948669101662176777120816701393094216155296295050496470816331123436351543007244865967578389236037898196635472434598987569459292459904447325013687016280858609838038894330862080778821923994479722150148966836770500677513976597071032041701397872444292978323657437889691093051029812869911201323387336774104336070439049197367797835251055480204296290765280457291303396984539447239012686538607761640373452111963696590895168605868585258369390903087289593811071925165352405003768268824185041720969430910138989462149389794099825477462716478398184368870082770672207607099684564439856254640392548108276330135894997886109881259873982674309769281919257314374377852836257473171286340640833217550197278850701119666330145525647398900141988117293799235972542473472700071673463176211062282150903564054959539237835420679563745938322983818400338785539846839629138841862559564291109397642937701486710260428419277025446703211128550811556951250644546204451639929950579243839443881485897663143301775574173412466039148447073939331357081012717478101513935137710818765066015845748469140818260395943274071063770944592694474315419868467175848406099084318080267527965833572399958278239907878708197401713626666312260334454243522682199871602361794310860281405248366753942312198701981306150195421057676074149938147982185433752378649011332450439341743433996107595485833319918490637883733179388316552917132944599001372676786532035580466348297376709975045707792335949289482646040590192147819875627657073713144551949662055618406036223485968045143529954875535616163027292489054079100888900787043817067661937341525946757597470693629535151062333097934312581454191594023705035731717270720477294499564650835310561170869815200497482750576709380549778350587732337686789158875173269434277289602576958094183954162292038327194296570518429822309571618229502538626107186347391671255076162017023502808266921450603582322219824424139024484300207454393193083339375411998097221079191540322528334006641705115965831565459690270334484304326418046394073110060068161331437598425234113078371589030188483907334835452026123694836300261160834798817823806371346741055254116758665515194998910006951650190904602712074687003942409439513862761201119791561918337176337654410368647074045617443187379382475429222332945857995121512260660852179869958784694540136060698576824053365345404818589954147205961104736604907975263820837599343412000552323002310560413453283938771758080293607019565975139222119479878137300168350980243719741692297426879390921186707916469650771248310398069273623168915466863676663935370892178741417273189014632017290014158070210596558866236065796141142296355935509440332036933838240205522515175733219951077488215817512179786478313542321380706470648719562121336258465908453511947046851751720398846343299355206026435553049758826588253945525379081398226656993648556924757387806958699679199530032507062467191068703671928204629195754962699985588419045957167738461297372452652631621147013865980415683453524986476571483702212650685520375417284983602149667556969890424262007283295926365391665668671238646899072232264824695410206784476034430357517584336384081334696558749433819396636243191398046350063608889275097097979584424611201359482111616490544633088870734391372637361115580358738623065006429217955548219011930472630517779480693112180582586964978409008496280034847323145351075182772426681803517973228017548509833579547845630335557205825775776146293877463987918842982488451463160802057350948762135881660077329059797036516761298014288768975075264798091273397799059084679509660946655373026777512138886973939047126877589741429361351251785354710220053649798749116585741658607358920677266559972082931889249105761090555765325121292757342627045276557657760288210323817378379893998653068668454211601276431828411357659115242151492469424421780521573930379993055885873701120218390757131755967143047034768362239232161847393045928811337040992624484963634705588132024291132287312332171938686551739724241927970202692507716536742036055582334765672705774978011281173952483871269642887835709397758532674105520384495418419469226050916143951244456471841638096047560205603159343710704329322524135272645890334173348676300066815979421854104957817290597197887919928374831799453038011865823905169262733732914223746470488726626111065566622077943193428878701723307428625737882454891735810863363052198001840931892989510712290468954108131420767247928869263220954966733545693714834443310657906539971982345671212663840124610631411348779381429238303810442213000108598222715440126112653367035503599045306141336412224290768104109263494897974485444613002485359650606149100629193170632744669018294875807364625564898663034942961354640943766884760375250805648619680492750387557250049983105172380583003742269735563447568094655057108229702051293425372714899046982973952256903836256427967282083948352023137688738209928188065243466870562205089822599935913444773378743787578156667595439424757963772167591827668010915596920945982475524485564942409489742391186308831765058015395542852861063789369718853414871677450603558384020136324698457814082853983679276874387627571585879724019531477984322795057352275844126800989310897072776668702057260870537815209233413506663392375865409114427740756695988280637764234510382257629332150864592357130741356650260973145623803682155307234886748876810361549135033114481712990154084609107339959431755298546412477663956607749541540334050245065971875588092465729135355178022722292379655296072402418637509692204867478593921277332216270957106189988297306302057478680829084564858169722855264243184327563737070162870581358632924600401070481916099198506681553874962840245001716740810969297478902414891846453331962004102876418594631202115905048018267143073058793327848349261369403327238504681803078866948298705146275549535459228734752645492631391648231870615370709817906337942228594913297021794320820597092761783924822067844362945710246367694182174417268821224033846955086834534470890064462159804310703659836972985745238770648136341651727537837411077141155356648130480913264321631449725865440596322365134780682867051855619702387085809601778106753436526008811089688044828351714218550732353144605735988981169379378526017641555053924346868954321944302756871168591572017890532896976599337608809615412994371511165564007386843781999535923792281894589226170196046125448577290250666458657057274727230236115957071072366079610021471197982018979707347431085968992875598924652099966030638948612699474160491337439993368594693151237338383727658910873520566136338434134795524542009571225398860508610953607795820724644969708810140443583764603731967118002806755035232337021130442877315004512888175141675790277910284417854816523744686204154064293974222817595732590724959080978981197871312074951409957437791499707768402827133918835218535762488328434270643985742308957323295289637478127850224425568116037659819254627383283047972978859442215529401579347385096694165960352353465939997902055513237654300629352510739615561133350408665741359896760344969164845930851690062244817362442926547125581966907079971367272383500612169135500840776499558913304334157754283925467243841901650551582816319620557518565156825476612133104857610935566150265322168973806561167891373738146595874373214617910834885621497862782853360510964764173668169791954513444537093431009659580627097054630450551818570683476885972121058984570494434232061773306299516932302981105167716249452341521828970041863077465632414245875756638595653907407709023161031558506028455585051907430583360157102025517659758484914451316280439253820007927050642218227129509404417110123183883207900926152676865768936594629689666351061383025900715597609252826843890069667967132767314934432340565091963912436589392398640670446852301926853630533298860891766290244383987190944799538395822558520192902619079780351339450858164299770852756895594041394288030821711192437076788075845069796854536397723668334108497168704479280998948223273578524552828050668666172683977527687785416006075570413809362929773838239527551680329530245222128497776267316672923880160477677101494192748414083020364437138633138629078328043520963829061506510087808895305301957341383884061907695507517058900787028763783951665735653200599306597065262843872008986032955173925289880893761680197354744061756463107568417080545818764411452872439926048812177223083435938655095926151852677180496108195935298905256481579578198404841120842156851446236148552085507426046279260259040669323017546059643751301911757776757142219873533204799091067322324849473886209216174640098414474164643251698075329052228585543270513698649117352613196465881126945299956932955757890589654347374860298977723801640878646709907377430392544751823752103120272645912067885795242296544756797627986164261473002039658760842531877510244195977990838954952511540921463838450958599006063096634537362862279544645071855573468227877956223605796275201016664741082423463459086362511125618576578126246489574536913628373166587841873842299565824504311491289942733876056138310739792051428693927844714148952292639349883651319334962567903984496857074902484413358348798206614905301436198093164345877158970380343318123353655298183976650802585946314761321200580692779192503722559777336951887408275047975783525913458253487312144397775710263880736815955032904363174900364224897390676709391409296021089948565038800884571887371226337657645728600035532340370531464867906740001002124790584605009976519390502026179697826051445522946557183595433850451301685256640734076499175320753759862134172281693566404234797507243867432648340525543321130377323463629568226718813736591616390149426807684080817215451589975332781262438095487597824188853929126126939836593314407640883859690985051054530486072953254955493316674447221731472479958771001017885950602546914680575793635986707661686518443519666776157525258911033767449122635648328771904876473718019568983320350874182639353104310974453356541017905931865315822237440803079115036363131467758423100156845340254475567151252954295215180155819299734917911703355854955905541088119037781535466917429295303322554387343465384968534949960169142386820860277822486684268725256042988820253753109775633996689682355319763240756260407680898865196161939741607573356883177146526947310376855607760252222096542683944660015025494429897673723253927893887807502575631444416142816097363552962008199704747553814428316033008911635936430180117449572212567209919504366196623829641279803493483871160745633366357663494696574917514327370989520844628639579890543377180080313558776393232170951189580826572697920960698913880476144040504029872868417274598008759618266124280392691197921001697525704080152954442056956205726002588698568418540304045655284613392176403974965112223084299718101866113699775745585793263078527703927867201089363715404693181310446306905372658985648652889794482800465024534075528615676850626869647988075907925269647984676423552002806374567332085007399576296157308431360317007046232040889282403166780533775914002651535677508873743735321254750541349757616881330513180280232193928549936365497138593272214236022456428178995820210208947586938196914724443901032822825542306259374544863778100871709207842683063063363862175755369383975360457929722595947989467720982094661421400621712244411775007973335503110716985379033049886059132922151260622943552509310477789913354735836711670884569061137046873836984643473784033679395123892491950379734710342557243207436375158800637494584292657025291665371924222795936581836018572346720705664523776592763955523388702182242637977962641454733859636083388799210939256919499776080380412481864278978964783504443377571324723169811743834465338804644205228814364905819881546160428970860496514972065906922545341503881913533330469254070398098797658139330906257463984605264634984284635177730570890610130703006034434659459570276719633630086163952812674241240201160796803544866514050078707990968995158140799918471175220429003596755417249412132150457359691756979294853415058837264617249354090305771203519292547499919621326714236166657966604467611484881095191649020503633938200596583711084744397107502688075563772941047253214413866628988029492856546115263393104913843626517996004073451718001130806158460383022179467949417540505427740128378168752072641963300968016229347418141206024815005846084400757026197821806870712352973830597612702489252988670774718535555661064803395505203979325058273058170916712337699093788363582523121091832925995652253064303337514586866750221788309832822776815785136058947636242805783326678213837048886885647749172992935883859060746107984898923567093702427950568304347795623297871311724632727875484674475553602277877798362918612089369237787121763987420068648547829094677234620829434109268509512468823224729806138300930389236850535819489675015807474260044569482040595699010890087212791966921676537945720725434985890566342886603704841650882110504300830933958693089883283472059566282361200319588924333379968798520982438238583227215028147371849295921174908005270845105548383764327650241988802167933788075816200273808733343837955456144077641177798791367373168076020536433356924697507146053531325368999964053420998568918000279399227647914267852398902189450310117726766176257531550912289800364679962238006734858054570574959142378562514403186432166327640091672762559473152362309262080988449620917657297474889264973133152995771576894026133883566433129917548082936981553178460347784611223179192840663579692906805260982379967630445148610799262702412213567677281223486765638986455372848753562297601463207735027140831611791439714781339456372054129206095696932135805184027828392515223719391394169850800064807125205496239128321250177009239453277735688645840367573833109456158951961397215948085397652761265663441595372518916767969765709262818155298344564058236535630853529985967651970163895292788566834490398967953926924031919727355331863772328000295800985321757713785187476459929706014820132298905744604333118429283014408771072516742171003067617830139979356464129390829852135114221866072685815275421638808102496640394165326133298570798159585622908850834395417771342078320016515653224149757770789895041907786430124582933734578706022706345854684005938677023506123235217577892077929134421095439331288919447796220613323281674469464435736129353456374580556604547398594983617114382245419851539805203359340892974135724059599886935763810497943094936891429561810841506273084904551960128534121767107088052419876730384260336303074280915797546182784308798691216485280386152613971372392596820084826696581132702966245738413533959274009560301524838369941830910041141742457036713604475718614744925717358489448067475177004064994446561994536340725195081736570219106012730021461527766812193505155306298654311701474910366842644630096520398042081009798606890060017643686711360140055412056533152672925764593356374761902159223812836851271763372336511406000593313535627626282132543679511025857348221009793426479082598751558995279598710946224258061554077368683571768325313339982163176722803228663655696734813540178219984214408538775844867044528760672696235136078470639973836231918774446930671859532800391158603310172639236116084212911645316793061551992080135837310248049499654039990632494835562968706995799294698195635770056624803641175175503637799814206508383523245294961798491763797522896595081521473858072625324290503743831322755292453421280398439148831269541970789707983089537416374778758275051481334072745552249449403106254696697056478832794883328633278990771714880244494461507292402111559170259475250566738643113584219023567499488609529442781577959022299812043797935285030844824942811911773390163408513066513051766616875364792380517607687680374345406254221185012951390613846119883294716179689276199334362378684921217226842589958786363332447162850195116985379574943597338322718967618386911865682728961146404613736822806283650698983527163742451418463868482249928225899401095172105230434687564982336274586078701567640764662746573047042815135004478270282360972262349780700710545384150017761375669195828316962566912863695052351073822103957975757528760518591595085884585401041925437600029690782978819870333023660713130855019587397508622271663877356471909300097900101598958410410734713502210786300061362768741577719792925959977769386872454810397136655054380424218518139749658955142287035666096425499805561645961875032467456984117789004996263252155494829502176970235990311078662336868364110966967937642113750560953932115177667292454851586754679140265330656015261301517583300612946095601119612682207887589453526926633084608701269247811326916862082007811019072465817353188441482204437515459921970844054607457593749114872695682923738458305888302623108410897791267525841107342534155492210904554446780267255530521963454409653786662339695947179273028138311285924319250643231661064736317544550237342047779871212082145720056496672155537496074315952721781971540957856416249455219881195559939009253529777939151657949756110866433016190344312221198970951542271348393181153551920264922425714771861774466287666001360453452982455439857327109150122286508112225967105257136784981823398667370647020772992346214864976497302783221662648306618257448391548080154765228311335025796048289904391608301500293456042313248018829550532989759404634047233428301866964317764301615343435014816257804720813300527298387603039278428889889660449233985326542710313100299792396960441009780944355081005271548997579730846379236147354607708884334461774427888038934199444080208336140976289907490648793048253796128070420227656049436966996188615758288311472326573851853582054081301702133737871289911964874779612381835786808477422685601803358351828108716744035849155846187257620929562465621947384139856167392348672086292381196210553766556015295363964034531629477411309058887933082517167135189339959702151816416709916142345980612787460328162023347974208222571571303683656494983939496709422780595357808051264050495262074627587660306482390336458781689191791698009864205342339421666028958631854848093616931122235593936482991137430809007023436117031641213227634477520238009703680617079826341639721931290542457379231542025836970073985122195457792988262107350483390783428762771655215851148485054323955936074138517518121229218727302748127073279347688999883524072424279987743597899369625249817865846159675965284630531911891076549678755769553050246393977096684131384372014341605565193250080457940057868847945540133985696641061635375127234413051347766566183949874454556924064884672224020632928003306622124902842200532244496410486318554359370277868779880966847817822762094720538026278616464449745899457525585206895205326437273365885519505242335704061443075874505084136398676821953049596930728287280799180784171202195139534310201639192207500066158758726281132332633840988789638619660234533985969544495282349491184494444770054222838037873001429071142441176769398032484927554553875384315330514127205217756391842959101068510903910023907452142425076060616597556433535689518665004660552402117822807117471426964175771350924542941561613995561357596817505649947827096848433661519808095991145005391814623092831664000245730384315298636559422975588477931125264775680826876264384414540609449150205429473398848883992692288056059832653422413927073294100186466143099763590430960414965795151322405214949654138404269604442787927843479646082928789524648983678782473450043595151502202614886872382497335333436878932254638429520214976426841036768697699077451876932665463499532108697121850660941791806165714164501131750378672958796653452340536833931304074931895863586366472328512025438758416851907107202943348799068575180642628933969765858971835902855077092499812144927825519376692224554370746700611476121589438991384232710400364614891904744440196852847752161175369293856836279753919427966870249397298207574008600270339015248702478747734101616841694161482835285245654520861479838518818580754311651466844789211999043344879332292644578387218403353024750218601376214810145920743867218874245641501761035545219695658722191793095771321947000863456734251732329765118636354099067342407409454465989414262355604885733689840786693301333733639386844365095588731423987254170450763320166261217234722117449345206648350645120883057367392977855165790569678382190253491091814771876369319207496500063274543423923908544238081121978627178531889744557050146365533441442398011332008958751278515214994913520567586180887990935282376651032727485162098199436735550617896052669823348648300966092052664471233200974682991534178346786926997889893493347767232316422948041070685370886320752648085980884133136135802704805294593992563685566264653796251099033792022640527180077520213833009665752251768625412819625779079900328756922682916129514337856661805289434606639957378553180481877565601726175442757542364056201292955900408913214028904391718842831122928278240857150698548151037186132017790508979484627270699065778518881936885650545444473049143066035786793254261591242914303185187971482059057108681395134111642907997631872545845792868514646758232903526368271582495100576245789846249056598714767525679031887487300660987832811478578377519030310087041496839657756142424679813167148225742443318795479722732066476342859482489096076089639272396122109730222665925111019104979874618877118611661936160696212582004574961348517769966970853985515767413072320345643311970828115311511582568059228042730310277581923431104860516926496236900406097719518111266737869304391669367177758394996709024944173793696678548753384108125739232338533749702591194526555567218618233011518931277873505902878732708319343717656404254326291551991775785440646043541759478781954348593372143790504262431510761546637192924811513201785643491436951791950668538868074154814984262544511726092918750113547630255381832878761107288334107357983856403033081666195004048367045708660147896308275967462764139724285057002057670336891687385510067778859601818715399943918251343100329867812244993614831001590625854391284499409789955311200969318932380624831306406344205498154288367485821764052600534878410361114679711231539688334062944401212191893705691906684011778135102718955026246710636362138494324339773245568511505851344052805316598704292423944003711545216901480936467279994243566482121002096459637455637281857272689422927751583140576326499825338375306910397291968469334387809261101605294171174788114039470898083416988991386489362470499599786542663485852197094837343269812384106600244130808916977546772430667590670474774669287679537307368789061034536785631501934048422334642290463100526359987497213267211244847537303485995072292814274191871147085622556128048575483805446166217874422451668866460096243830440741230532189347818046410697645441427774808566032519576641598182255759623194327653361403908096233163326065707325198631618233442254478559031966729032099228977549224655360578679791437100295611611577916280686519478987656754336748642687510942523388940688793409572266937526733620135380469596550841436605328639475061944238354563068508322153853193837961896857304483750759501629391331105360421425379598109472023196122255146433317451090147624957288351692478753928039468018873800097124355487670152366039377568586770600283310328952694529302599691523091631209605148990720824431941332648882121651426976631564865332708453264018854624330377831475630826122130919148196523509457342631560782367436981773853070774568366183894089071732228759354492545599960803907250946222866570515943802452266943851957626310909732176141438564019045506371278313808398909933481345370291690420998840150509150893968021834172654555275498939322351110541716172423497801675633923978790396906758954129828668792025783147001715703083739579137564635056269824703307347221467890680644426785436168663309094004480831488027234994352297216271979480654235955148384867772460107346138607554079965352824494956463468891283681868665071621496740447816046827963866348683002277902860812176355352401450690156643513911922753546806213489785013528764793499187711576154779362881891874179505166511266874155365394759322516030534219061315406969756445108155977030720014220165598695314828356916537986629900336276542235457815186674102752101079949617463810391931120188478329872357632471657284040064921171235731874626218229051741532617104687161387167903348081336579767474856188634162326758483930942518055557503626298340695130967692490514387399875378200744313080818016241617860790302215373353189422829771797430391341960093753397462121427977024915723481829098449004009152954801760681606809967822557397797052559459797598960778412792489661755805486362004392248810121742880914507716688824449925703230729160032366255016644661675377713928662317524249904553585996263823085222699322435370906450356010216207429687625539935019635555001661268071437980182301901918229109888022415663690369524142090472736858989441341794947117492584920006527160512830205128689316931187976460331503531718768258472157062689174595340977444472748166923288985750309602285173022226522813492470343847361657422259642750510363840746985279238641542050095251955666413092313171084849207626039322303138734735832675533084961441038374148891699874895206897220154420705804461059155500080391125633360576839466881443542228771092886083879751363299196795531427430713066948176075567791007273291672400764963432785056828777452077032545170233122882579610124376614923021773887428401049788118903007754089837048187551974102001406143236294531592673793555080949062599801233944732632197866353925721101640258802678953731882391254974036230714550467596519670079659245718962043834722218993620090426138653099329111362096293819694473987467107005129376478426325555082781772076335340555956543913302121234277527841583385480531295655422784340848683731757267050662423493470487912997275264951308934663323442324038019342292425621133078306918022970208859175209089753009540507716763796092152897153952493422819680805308315327687129980738764107821256763610999885595457944983808447214586128424616104803347140208579129901528312095775422805749745128632352290120661896132767325151481784176328268075937742891180655446045005677537268156094665822981660232351342068336571623990928104657757474165046357588236672194077172968871080247449291558079144059507317389779091191721765053726650967436562029012786494699918132192042936688095718414076802369995865221357644369707206857139427039604927254259408871585693642628490165515928969072485800002044308609677230354666022072229769254914634916443664144159367936155675310218555446881021780202340521349607531051312654199109796126787279216316453275527267012749316233504299138430964448763945152155496927739965797128528670709003776809287330409450471339623889264977347571425444620930845417356786555262004072013071244206805152344513782123545859278957839524869362132636396211066846054527874100662307445981970569304551398770718834055606824109217730057069857864898954733732417509988948039928799484376634492347575139788958067397591098648403162263571440900395010288209113701537804749451021790921927663915065305495952072898653960171347646228058248409739738320336852178494627216910466392540312153375631232330008020959349759094960824016169229469901733128872873455364806099425087111376270205297653852132087737760663064053142989443357259279054927771601825154164348707767139342218790013644514640628904030311927537677124109759687374878581395063085111453041946477640924765661787890952541233933109945419427035427617010593563129001217861501005296097398482696882834790533783525975833796261022721616628526976553521628301711507256087392034168906114037122865889259892243098380073638613789464643073168414737054949888987874421514057407075169798350029752318319940972399672775692499450239272006052230214479603649412046988661896080244439914962539083201309602266021089495666093932747185282008356408000721447872117748271510343830712964388174521733456718568921186144719217190975961065731525335638361784231279451802701992338026696005936132284969935654587326812600793743373818410767699359609486530856077831016923258928851132963949747648215435644095915054214328701791873853549304975854479082396783578394560662779588512065659558798064778107273034963253171687546113712694181657151230127734429253312668569533726578974463757386223959152452790757805726208530484447857550455506135124429791026913546732873910127359787662486091887204968926232671214106855989873093867293029073121602187736985800695716435060253894679758567240010337075314356367340810253320042945666462252044882140159253302804621377084999261880954845680218425734800511672478949081159893541350986417262812442528910719791847078190258714758970025882246532880034652484688094838202480299795466301546476071524260554379556165782093421639126153725096667176790755857235417139227631781844120745902794017542329823754178374880719386899451869197715681903274928585406038814534638758337308438856871696682257070600498144733555583985142445813595391360620045249651952425522042154316925373977996288466780515966897331114195771317921749592552784790706452549591686683056075964534468982958074104969649859221478745009949778142700522733141734242526223261002228334189955218658510916075346004271455411041540569771984920580180509485097097378491214902833971020866479702530186980796923049652226327433344714658811322751638425611453505563537069647984357844338471623279148781483967041596799892967292068410133779105692027048891785359494139337512136019525402114647492377519178122840917815342420328597603742694715787695161853209434631252831252301738194941666966930097941641640118673496408582647541991825574337202594427260116136312806393602906663063727301026952655819814818450200074776141824873168139253365499680973510122026629184854053926928962763888155325337850046201073070428557693432421912828962061021965146354902200242830538432447024981107099726811119037346016304434903029145324684845524340978884194528552778582303306720368287634223307955518214717226004484749770281791897874313130419579463307124965113211762378861886834190962536692524696100658773854136303180655138572141451732265796327868302027334719398652612405595456485292251741708716914703583971721757184770034766428586635928448039527892853364287576827354393619938365857973004782733895911684954215195989590402199471907897685347352612537211744382837934455340236398353017880752057320105794852275292705488990703686609670781695165607667710356333528111405845649566663240884598829258313765934509096318684729517212581399526407334404424743342412996786279130023213567074774485122686374458283425288273378872119003829429340210453965042086743512326508143471709479629786357432783413794479570077862792965509192188646825828505634151519921928633693427377396089581393889727871386637771048797244566446173025361556721921422467139559376117128804979408634137640815389679251696953345029719914774012384445165081431008227079933504089710385553573725823796581154006805772917374192428200544633168673773284229278849420868595270389267395770152657439089933183108515458670796348877850252236783798594020623614341652131372102047886099254340138049549650456555460556341382403131182445573082103611653821390628793320084052870027850700997305688142639961594096434361247586736651699177715426989883247708780315478812782113445399414093647023099927519061811288881771062460194913605016108307180750707064570664491807873029903518825916276259662777397910442726868142950941463201333917423573429569560533488382939593934437108444633867592620166123538755812527900191137847828488497746040413621694904384034736094887133085103342207725633494555512397021753863986534053210374618273282427816122598301996364973190967379382606115449181319159760252028990380149642741841369936543516032492248233546691746280350305100575858339726719669588150547990793145554711351770782381474278043947618698202291752629584801428627156514862865296237095685437672870288990465827262295605328566819302940318280371608789856502334221065520760800919284073613893087137480183790833779745153662910117181688130966829848462208876276491193666647020459447028477288615799558871577763276730979015677088192379321789719834826566672839153377465716049352567964263776460798444725444205411333945578468665841032597931578848742500455550910007170222173892507839818215683288814485514310900057294885366482559589893113823019424564130669785828720413834374708691273434091173804683161219688654086699588636187201768087941966928086557874350241879890237913640185516642732344313415286191383191146539870646333036270290852941061072706777104022780015444182142383335651157596865979839243349430206465814929642925561525211382758288864700701436148213425409836676320088743502464927014826980611458320967438065374339515705124441618008635287867102349273496842913536351524841777755218957738616550071053809913748929889404846117025304663906745174736242643334649240855235511950931137019878248931082844737086013415314999389947818043783036835785914766749164075991597201119081674750077513951325832802751501596406659304426930729369028291461998414252819844035883856616169687054356560992896691853409064279721071267714157417917084217193784692489628211119468326751903152741922241708232253991473658807674566040483561975752868519385297362525383324450573206212128366696153865474527855342867569629182590414352173286601393225029186862505957207794282631752151410338304196526696872375597864104000281665012609080772057144214031202640939202415837205862011554696364017008214969360056609699388924479323379392864842441515419913532135090711956482378791299599034182810616917006451824180252961341575776252492936705914375370522931959371916116267527764277072723969966473762320247641825532878979803840303856542985422327218698480654815859720106592489854601479917014741404829685239989774731981202260449191082489075199979939566105735688748643462850351306356840610184466745402806689544381123023792629904744957697474466428861894277591073850407793933020749731210903752778294221038582436242699113254361682721183691188601817657427537951059022203865351237380976694624307034313047193489303512452279502957309809797228090977739202372205752707855327499909734054130141064834428348103408291021524787804270173457365224759608659990783024811233769133510571755205569869495063793232055959272351006696337275063049640993780887412939378606141019320758056791507662709250769771480753516074944394245505364196943461961649616716807164866484173341134797442226217545413371126391696815260683290041794022160239574557467694209873813270738518891443359861604006503894221143970616846980513254045424813274870959462695175886545613512854119900077314858906356079150434346376451068429730764103455281917307169013833010637339643970906781618020384495217879068191906231624291864524014880830735107087262213269959182521788560175418507941807130483447797583919322636000746974003366974722035749293941156410872383721104379881442669893760786540515666304867402942017708911630399495436298306388622168704491801997714892366049092871111411240524962204600429038884115442327339164588205477217217310974071739011420447586647435270806479655406860907321916853628327035486625532888998136640639745829287821902951242262726919890471931336349558139523981744870074616136070457426104188669264977286801177931733020180028727997145499525205046143982095431157024090564070525561106265831402337691770253051147137227453998435737817040092140850699288786680854881025751926651716864753209873539923981848083529164146368980065437891678812285524612244032262366566207380454689304629720459468263964606698940679897462856517156849592211029957182102602388946231088795836451474895889243570472562216077742444914872676349346180704036671433722884373003758866896303357788202156507938756130594280914539320943747494609678418407580397566946601244368769439563588689251471413400861944404415806003901235811391096100285854712329070318580004754227277370974706220799077560734254248946562795987705482476077451491676084605087858232841255757699347214222749654952483718690478567490362480484648980697827390979997129345195151523549737695701597115497798848404233559967354759897407524530576130714357388015195795205314943411133032917691804514741609545632523348085758683512697819962495566743534664169648729705936521676779367449677069924480554475545726229617904336456013593075025208285623085881715664194953130633856224116824863850630982664597308050751392432551574077434339680780758342481866624319364513154571605424484027520878943567414623528706693129788733967503092850720034084921520751107386880506022900812128329718931999266534629533593536115627242317814221818809236437629713355604389434851726414369866519027538611852772795455815555395108402262674092656727746413983486565731097919911859589150195688021292264175931539352394424506205514799892881903482837530421638211189756282272518896468997359795403881005687760675933012279075842443423020160564125179329865597796206650824011197811981810810355506773623583689283642968127407383405452989749753129072090186136874230021130721367328192810645052062173587378463654211771163198563426750965209598326351011680537646015134286590630548815679976374135997092120105338305382929328034932863054480748022999808719625922768265359780093197133448745887059196333191046544951414469450490653027631226008613019072853824393083430426189848596112747746286759929709676970946926071791134737877047029130968727468248165600898505724090115251731526224457166904099873747084925220232475753483254643137154168603355664551386719917042796181142698522757505482483113886712134632136350942904558968869252529523184082646723610427590335873921269225729833845920972274671541435784369476919937779358614533904119239053170707007410077697596850417526156131464811105572139048533179534845074247752960946379615205283344841132527528798709914175472715732784979386664693355400223232956367477857087148769345495245084863187825854404035804782951422276587980237351336813416535630629413734177722605293155945106055945106312360315669050515075534246375801575984554303979157720547927972059137538242138028589911997765005591877237439342595410313012720874733184506422691716280799848449153021930272046805221334345822232137806880141875107391047542407785669358018361321391396161980884680713757709535656044976898758934001096673587920076957331106164088187908970861987124083387928306142144720658204506269874439385449762437004096730424768824989354872865425291478635937422681083881326442295308765804197068642586388466400589457193893496543196194114343021877594013609503108642127196411797697279503528399156728253540128840000631807783624301381659927895507626538737809110955171989659049031653668764774272900487570072856764950286953949138356632582396284767113777438993176972838878698030172587377162659404587823431034008953135247216710642803720560903982121907452553315844453182192643371606528712661770756785961943255544564977722742952786305676571861885756118996884957712387347529499163799800056935748144664019316016862879746110581380000927028880407065837455669845502341467606608259404935737855495759029399139150100951682926554860203062772790619629226559137462054234692461718213423753549824871490566558516470570304691638791028285496926169389000079691344552000470152180602292215764949238179660811739885816253238880694193796752203190215548193355869289327519880078687948197844751994899663691457002524768471116454149977361205738191907141750425425532958934523437377013363932220407012832198843224577538650731351678334025176161359958102269052429707857174323591689502514892576783980773544885709962259696167364257856012434843393150335152746948388268824990852794951889728826583883274219537620313356806974877993753240879066391763289150597783209911599214566690484996441745428251025326433553510967395848011325801524091727790723142068220870033837486667368948144176439140096337199716962611099291249619356818794141510478464719909035896940934087801596452253610445946594406080526423603907324589682400961834601322240887435973510026906955206337586704330560517871933882008353954612116690281293333617077072013745796907407669978645097112666054858925939599849802281339845268296239973912106511327488295653444455745140284214949691402189748847845280069791990455965190457088360041007356558908911696143829892589603347779669387627121535731382699205687664326280569959907359925671042514709052777192678612036407115445843850506385114413512020692386230796434618768545856931726066534210382256672758141516469357835921411438019286971348864416419743726500132341330191060761200162459427693475981597672598358921274266075440472989606116772439713888064735212449089421438720400444419286151553338919024812879124784535403094477247435952764843495100016414973100342091401201709595261845046038320730264101115851460124412438078082953021593140358931449805579176562934897882325815599547540068663472885324608921211669490670072532583318126982921528472163274046100136259414268207714180977543858620435205989234585574496942209393877940539870289045040504686554739089439991308080234751932740224982324664364923819730780593084418226100472461975995507703896411964984387965799264272407666325967331008852940235230367286280602840216635674135899868564090809122915653181957976033537794155987648630369911095384159640847241930572198221189173664577491472137864163542424069584725692898698884764241627131335661273747845330417743991755099596169425799195066079067758251371993297403917938774320418473885955669717947152595644500177885962369128021812878460063736187581160790874853548007625760249578722045437516268922429184965394536715338191321644435114413331231922495576731705483442377173802545961745273601650055887636115477103198169620935251333856330653490282537205955474949784255760957429941798740159858226421483794394258193187723866867962542815564851594032662749889451821688654922688272844939749134284422851689050357068896469701891667594809066861521111459015007983151244210381586841452222159239728730116878847375982463176952724240385358659460243737383028890389140975826206385713953606202115580154643670581616213121763904085273147866982261797145429335555499345843828671862572911039259090253449808086897716691948779045622976727565444477381330926254159469217338697502290955906197720787556269700622205109428667985063709555625656181313157357501537991559621082831411919560685410520704605083642041201461468707630596811258329784830257075123137758076581528173035674835653521594923264369436442568870119095910577366849961133167962736505727083591150852548433652463164604301563202706526880914704222004576733217117791451029599383058931691508874100865418629040348643495234864351793140541373628692010794189416086297581251809626304719199237387520940841269991564608754984299418844406492850963784649682109281327242284689980081968226335194233597869388018974994228235696589225644903409029810243046298306181286468412693267693387558870689409281182546832312465956883727825574729175311263991723294180812085093563413839816917713926497833351968169503651643422421557064958400436212988061706184843954736379784412903529977509094420895997256315260661201482956253674607598996121901737806607512243925093547971700299203311743797045303074574356023777401477767550969099498975592786145463276948519779753117866664211903647290086795055907687359422869003828116134019050552887571828711099814670418676690269794729912776006784642912676306258054812068639276315097694621032024292630727106895834202950299761122043132015644176831550872976281429997789608631128669985452908482071571431760106874710176325178732588039259187952840792344879854577827232093451569677505334058273716513723150306410423174007393780768861282698051965686834274588052938025201425864096770760592133130700199310311706730396895560665826154275780991430360507435899748528923691434427170797627322008302405136756938961285359196846702090789934006396098651104868440296218302440608752623907743045132059230728974891541509911373166409351056518491515259938347529963054628900063588526621753653698513153763110190692051942548927419895610996355754850634203683031241009228871917229887053799209387356786717135489788471977449736606295088728646724555891494468573686073525829522806492040954165502138538843943665214866105959966425994183239490337635596194915919739616523293565680594305696682373840658364572366052786100528186966258074456457793632738503302575947559919499303051898789246860166343487091492546831294937746813432300641951698971460064263236066298491400438974808476138096326040863237470608551220463133084872437096255095600748709572583185346406616180329006923836501804250814039964957288730474362330599538882864407542758608069887538565520433964662004574218144200404711610488826753422529829044983873029055888535103798832861111182610199596247872753682499614718521210203952900663787648644814749215780355237039173712964509230233322011422559420925560163552204796476449312819611665763876400996960622962517977369688072880169416619155902022489007225584989818669196307085626420775636731246279247380398049253976200345774954916721419102672287470744023928137808360654833889633589060731053395014837456951508039027443957385367314764189791494457382344287555737183254209497494183151738677593467550091218375238707573544911895249688670923395930202246620682049295170591989993056216002199711542158438096981089467208601140858644694875070541599573724583130011085729703655344252717693537542703865538102372136494888480611520776020753672488918232846811262385336670727834083111046573193145027159663294321172430961847499271395894402976388911355299397835184368533881989677290618639155702194836382241871361786270977362852917724764341336447959736767912739296815181530338191054578362017592739245040872023244467125348182475535518289423991878678315951989809450620868500616336547620855236849615432598467795919763155017886374863142096651382886121143243829050717078240282779707257260372077181164984465623563938618090290695622308225217994482931922945044221909214615528831498997605214994467091772558953218748524126039501436722831116767207475977494716604750032046857201243256116046491014183435964099799822761946082238165984794899489265182392536716616747771162758745206999915532731717436320486512237047865257071299984275282553531245193835631202362083488190068604076685433857845169632163709568289215043072394475562311207754873895139943143516975532358907283285773952977081368270308608837673902450008783060856001402210191634565841090161362375927034768522739542891861114903806886453276145716756918895799533133867326036651077178354027296887224357314711895207885008019996330318332720677738131014746144780763634915398962916218785964679029536516446904308513261081799817101802645408040154471546497028905261083902765907238935131653642903590754800199124767986621292029338559779645760162720776864291670525980952342359791635435590692123077457030428970293852732697715440371910273468510660642063603665464229581192820157347653090215583787738337684556691914273860913001715380648901821453318901099184010287739399204009280219231127435953531308998713621514969956443019450698284326436944704214294532979490150494575348557066672911348845576688203869755326406366302409733512189536512526289181595804901762806156195122781807983259242388040659694099002077133644278851075295015998210633733042215368553549210905088042809894026211347306483573206704330495680352886670667433082709173713498016370961157856764550252319782815541088117362876466020355352907186075529163660609264938311751809446725897435083423902902535306439747744844145368708563758528398616415655125244891298892665748365857613597850231710545071551842581203437381921071577522601057199716125135424634959131274577926599934864712339473274700936865255757650933442572510648260042132243581976293882442199662929600614852314002891136336343270763056729661331380666371368717237203810660599098710838240667526071249217609081411275016185541904526217907301845562758250389258359694275775722986761305499147260339870683422285395962169920658490387219525162915865726417698862540296496844854897438597979581264403981310410004219371601407514747419555562060641235314016371628711538440820981429907847111068209521343565584592923514245319806990158776920390844624659488122867384730249079993178370211450403511389225357587860816443927677125596626178289563812464518827168873660133231743315178715477566241373527044302616379280644598176496728172399209260530054450624177461746382270212304549291308832158894647443963170749266481569225865007509860052628896156559581486465427851440616353246024262036814314762388003535643318409483611399509794546829509221235848671373753576576852998103023571552032039732175626788640431163186749887075878742201697377536903894496790991067308100097687857615408393469333880566233563934448577227495310584469677258314170853003191381115300054865750009994060222539756844498644328499689505522836678167304663332408329336582843570583549349100695138684491860348407277569583743207396372490412643875699560555679507132567208631296253999886744957297570691278621705703705397207592197325643511377847180975437588636779429887783638303810608267845365617387406781233652907518594811136849277424204232665849050183967641609530187172966303854099563373888406765975804163397630953176557841663476600216682792568038731076767594706087848562123989062244245599789061589169086236428709198622170779533529695137600670031114376331451481365904063430873763282541643971427638932174609060497389017317781633195369255196290519859155426678501792067819710733038966530235701688025887336206946117878716285647137757853006812788674756668284237875474385048545124013956292220535730223745358909176036995702417659933529509597225510015487401539568661296240291053995607456306618577469365826145897193675854041452973561407547331551825929406823761938177833310182366740916045823066917966203750672550140388671579749296238577786776713706033367867798145831561308258979530696479500823276276833734343040154530707581337709773469973641859392253134501362946335884544649846520961132296159596332835027196263138494275735605534733585039951378828089035943323989020607767698386038109055337363836302099566022524094025095078266216097647848678860736497306119404434062940051067201274011675379252783902643677069218167993681357760874564707233676582456107821221116286777765915564942459377191039955309424690912588959601404753651178251798489260949074000922929643174011914774238406036252222301602350777099599243571233499599003244682712774361612214069544953702797406058669650121787740143351606864797133517827913037581644491045629675320146612911215819251062525254133867878232784220890613308405165720546438362302759415020476894367435767681940526848486254443849587174995998833419321697471937929751517262547351053166694883652287975685378191197652548249446579150464579077853393857763846161720928279806247548110450793067165616697298436767168591351182067744512625215384411587142220169599947089218273693716335190205467594768727599103831295407458863176456928968504959651921248138460771164070301321671031739362405670201359733522312328483999330556366941274328046692756345288733783417384211685276331048531987400421758446122109784548377434937902557829393321701846511702205431458578237125296146961481158946186785295600475912152637180104432179972733568508388304563492107760094260376519575670114776700131717217931562508536603762676686144330497509431332863378607159448382103990502813326529999872735970195162718644329862633268955188505176660480061171615458391341825986966979276196020203200817237688512106185599141767652241559357154467817661805004362804721147506683113008041766351622882439640136595142421597461369152788385108949742135424974069304283785975781405386137609567496723539911108200903767971406961341059989017885703674923030259358419349280675286016380879869865233130749262152316220632192191164831079300295994889350827839749498194684922181992218757566443573846718633482472287717346387046182253626680896870809169322513946673775970035503141545480440362496485650326948825008233951194138144169838829582506366428748535292238229719749964395081784947951447610757387578216566423733393548246295479298730212710127288205263167017117490631416890046330100025447411072184292241728999190000166177481371154470738142001570994432646337093039787901770685578772733867615996324143904548059930114618022703167941817258505671901403611995163038928008417285452865429647748896420165254667929958612258598883572473879619695508520978154055203298868039146281662061381026446882671872779091496641977870008683541774032718464935733542360531575782520399736009511202125705896829662748012343843760381381920900829580586704222693138040282049186371914555859627097726210180517499982909379926941660623118733590709011023783680771519944622030463069896962601568113630639643979926953822546611308892242684147098794920949744085238931967585437105996499446843037099895741182540925592911824029599878639788598211851462587545217251905066881925007840350630746303958317448942555989146578686322835570275465982153566501078987231028897510944105155953717707991438276198186832702852656804537548438790739896357010145943479592591627020433850844075146772920618175511155709057813969941102208290080815980774352547176442235093082940946449670644690687556509448135779735154263591779877890977286268680181538804042185227377462223595438646923782797706012750555074723743420739835090421497172719555934718054659446475877252764711612509278100694479753894125537707335246295168690670059205499095026674262547293106898784144043674022051668541718052486539690670208165938747018707997113717995394141671780900337652394494329036109089795529199508992878699293725354694155372316145281409683313671542725816739216623031248361628525284469135302255460932963168893478435838183587352574764987438625999133785974811739019589113734996423659766708343045121263001182463291699699478641835922729240878423404269821998320295721640789375603388460383865757627013349969481293045611730793114289445764187722241360608126503928399308047852011458426631059127580949131978611975870832516883749577319047032158941027529665465750997504894561861302872087292984523547545390853666784196964632790219553916494324939804021393972410572897894413606659284642671522256928226626373662413221126074071009887247553482026567392505627656530591707533916758118240558324779816843838480773255898205357527515326431235347921478537503130487583134072882712316764617791595027913266288520026238852722892304767052674986539180476778265078616096300413937564032030376183107907254932683489047779226998793513162992754359085622644711439359610275663133579511083138925517685941991666661662411349422475216291996943237647926907801816699696428109171059080634324739301083089100013933430017702522091708352484954857456067524964096364005568435708828077656375884301689288435139136443508619114139158988361121400701437500498088408879439049647929517194649610021252672542613727725669684566879439593089074566935205996112886424964090377539482113948004099453205682708792009461059591615567178735070614027043899357966587196387701078562034686550214540726648927796990698129035720287987892490033612858211633364066915738741008295492773613757968266407160006170928165266369268050670892617180655973940490889658020259431103240231248250463696144057696567589087840672801957692401620435866227752544722628710615693684545857721402153343011985550186617950135074809411896209958187389420813102341186950535538851694043248497909911228584377066666549107635724767153040808455880006592571907383244483101299674958927642040169009814220953611994512987023705997523475016485057615452141537895856078028438397808804676419271264024985389500607014194103027135695686611797845529570823794112358403914617170030366436233687090493191115070142693535598851876327101262645706748982222153932665828693166089435740192053233241349701464300627565720349824753364755704501231598911243872561797228242475573493922103295751367857451592957529592779472772325358008586062470382546660992328251858252160402496294766569203501092587620887138312221246995636310663847121437551220250127871547060682706773780029640342805214573832100343353201947474066278983083550558631500117184707716796490027098385884713474805452932174706925726277112712979282195003788607644300641550416702280669816164072831661657645582272205879682343123578811162553562762108112820896562804612431758124715471218285842125515919355772880625157009745411761386102856245489406748676997335227170194919004739820206627834534386806572655831574827314629384181316473118450188606612693655494714129071827279987528161240072687158444401607272754153912118688474425867900971173062742819700596966017757143621968896539767081992148492574590283891684808033775134440546012107539280906406648664871290913020629872640128400344881170536464741657757791194933571336613660788913647505206951923005516532543584317716164358601361802069208138092616472195657436564832028089858206684446254277214453222911639173418363603674189104883840424641932131391400308840980134175843981449885373685042107265253574741176671184613981662326818515045424404971101777105953236390057580247985189856073715559274196170636580163176489483353662082298873195369891998116002136819851197808204254003428906290151226545302405193378061419656103484271612204018445587795227428403096313477974650049070657955489995294022713185591484851560629067655005695878172042840875312857715583929418586465666114295009263892459477603741331616089350131140765456393797511766834786099674467307356170730457946529970112256810555762858295134490578029296285984091590784263725754394209840408092941460522421959794895227866279172483745100640952273133569880753041365494928616810650188164505125549307815828650733591634563467306328228256981845474322415966225978790279532918018999472226003921552097308767595688945803233908125723116995136229073280926559945074354290708228216183112985886594101536007171922215586725317530963553009641657172329260395507073412529347582339307793224225901468840773663658169043263437022083410138082180889290713409808074489737442453932340681983786275969769106733163373231033590032978464569254143695470595344823364516972247807516843164354431793864870776249454500649562268472107639296690403679809050170393120408543568347861637873398607485106796630188111068017031578517528971380324389286688525628378357697401496649107237675871382950480911999905122738734746194564544940056656742210204687976188281461918498050503745466520843530138297089053095869264861402634071665985278866462142159119827685681665752498315485657274219610125115896674788150152891791346018862447077817274694840631588092123322049188385830137912326649803809473921313583964734046399855323771249795673362323980792998401452153169323810575259318659890817838291521742921376764454306028072626429614257209381525458068176096082944994883019915680213958855662791950545675001212640637114917841017001979446480855049174230624961227225958738361141590666930704171810423754739088358497256924038105685044286109513881187862935036625496398017255853648551143198704854188747353185810492472835078185830465539182977376237566330515440761480979925176550770747910409179003300202139532221840910420981992360817727643622301511492851492044906058009225953174336469492243416424578361722079067697047402320639850497922325140865680066419432180715257941408754602044004560504766931871131970796097551759175800206520593717128813376545441783749474484391195768394895499278078279781599144881868339929067952387960229273784266111645456901067017438628095038358781412625518131484900379778937207793050287176208807259342921102444825157187091605568104347989399575116955225885958319760203653863594481325700286954939622295087001459438768384890214722311371008881702731135578236269073259552034058647956965235845069900487848103696606104047799897110668923480072217689583486611679374615310009682924132309697937568331544522605262851833973534877006311941009201550806183622339434458470038061306796285667963926361529891545309198520654285610936525769736668369318700273548060610056803999909214245266337671006917438056474857245561445926086902748287280255098553208041701910743096627460351781208290042577407511179413963537783323949821077249710041534822911912488294859369810245827454681925969517386376125657999501174418447702540201298070061381807536701765495354069793125947081043874826375050412558675067765362466914238896327983308356028188502679557240334012762022877820771657768593572588287435191693356011472918720418005650313423814766953939742053800353404948494354732073882959133283986307973061608176259880466255485692260681298401947129405329827305091722349717778286215595218476888226558310654821780835492228491735585279059664041866411605373606854916598011227170070139827590445116869792957682797972807532437892613084121361989276326617636090762646911548079535174987579366485541878027135316123107337656347591125934844485880913700535006786115898142790157623573044617831274147811003837129955898485388911820088726121658922704220138451721952901288852773050055969448610669255184295535690816026442111993735495528917522931007260407287480636772050590041062986106594642962760900593047448116501535013552993033747362485922732180444635352271747776540332257200730431516396326325072292148670298412341651748945041374318950851082758185515903372627330190322535832014398048705542155244793939802516040554779428790360530891080564161182414207257737203418096116907362142428969252613069994213300327720970897711922723891039347658910175489189470040136550673957381057865052796898046963920474356208375484507350437774941944244170539825684334451940706471619539720245068277475029452337649774250782156017930803569398505851205159718686962764497100136759754251697350942358237657651640985758775798324250231911435092005586215113686449512301608752495315297810632449034762729391378564977269966199608803431935893310066265770746162592673138922045616884195369734259813918111654085018664516424173973335093535446934713292356481535323613730582232253291577327659136102033885587930594180945440914766656409096282357377673807839068594449058191911344690128631298185370123312880926967645552509176669829088124122164451388313366911477440789384684753595501064810958328302035934503271270231146724685238033894360562533212985184857717652682443537551578885482380359947869166332702672937874458761966506592504014545128043974000540035540095487516316240395629357610293420256777411986309524376078783515900779274764271398150047335189728086310329629768847408098465407137649067410025237399753100118468904143767392556843842402598858648388625501944117847404613340688054173208198441043379995348644213582680814454065617144192933830960659081680347132635565520441280862472333873281541446317736191988814949471717776865554879263297282596545415159426567889218555065643499613005085713203657476380961167161760273553808065534950668385874740568178414322227968086798655779214527062191022140814978895881349980721234924009616304289493982619809447194449348923810474227377384799985142932028224633006654836961832147802581240925558882574357542159173994841257159949921721164988960811256398929584211568141654438842561454342159381713473816342968747993296156827663735765508589880042993422767594553064027282291077649745936965429689926247316452381947517038085230020302054404107778699421222025785441830526739095069510455415466580554747502846392496727675185093549877305720022098239604914121568788113215836123416773837531914422632745068543275158960928194797367869234248010093778954818316881992568625396870577227092876716484725253441028309418805047521490773322699239050925320988751800077912869834930308872071919803997387651810078824783982522278616174119105989149807487602545085251890859727467568121245344134245702571317582849192908417344453504182707971094505890876353786634648203242804294499622053738111129335696554323820860791866718694471715612235757232430895025637644975866812855753682743155443024945150760986572050124084190503424758230163712960555694521065549350306750332636615785595231033838311503653363726223317924400059402579961892576480394052863953789989641328654502600042309660066708671203340244334013447837057665790493292376251660531449974886618909966521034083013542912191244300160731868896973267166959572991898239034086585089074200704849015019290231596953358601043366586288140119715860311603917628690081783841394771666282312384477540293767527331479233371164060537740528682160020276137492030409054167016879175066543591774527122623910714097840789409502305256277579142299980010834925085437757497850187246460932006229218580076552262653887371623975664443292622364572695638355300995918571981715650204707256007121826968954112479930238072725417400013993825068665964473904182856218852785066955387326969481629960780889984989153301837274568834953069250707628236680710519352937392459326173610889258832799227567870819216542463194632815418153690800154385922347672717532661723748527973306638797678427312518029436590497414197987983991025256612515418271284162761908612664756892888898488886343331268536536900914284327618571820888763272883925049867048968867733354634264567753083159313030294271841948335274932282498350524378592706641744913726742094582847291573124823888826573377643185644912288094051087907767796589448497315442167056432176141908862062065381240682191374803531647721661957320587126399946836536373216952441595618952367528222476947587633477112245152026675845768407249321657627190252521083944952062378653755003027512453480842880052733777767194151518797054633473076340563242329708164052260871223927880540556014536463679496578574300346430556086072627208066754732808067166816714762956335840085576213964780992262321603916132389228130965358914020833341948829362265759909043845000060112293193735864993539758010097157907057080144741490578447332465022894209321889041741727803131900410024434079616632604717218965110253848234221934269375449027502382944884015993560876716483888321161540436883180609130686500648600802590155161830172611468137730837782100116109062503019064762969844911625913451857883511809528936468002734423903190378994389495539197453320555872154994767816781286395355648751009143880531662692416091828937232033122990658097570153160965580672700620474585145605815249675269522128207651384995285079979773161114828158436657548052476152675586960465078819791021394102931301521368359359365707888709259252070828247067212688041375925133312503314503784808647473195627592815111163060573445275736944769843133223061509042932894507492186498690578049407977555866683445845692722595808465829804358950998826627302087114211823451250207151711872285429432638811154999885157041717858780917259755509433978467282157925574657357418047536413686264559953775894931431072861410929228716815742499124625711581697667684152704198142419377394655218523168486977492427093998103912798720219676568897123286556765195665122498149726077707546610781060078374985165902145905065794591664648404168587827489470862001058181373447594909243123314322354010081058924170256110775688174533384584040694447640996857558484017270418898569549426687974930830023126364732126978176207147351371553271797745772348844806003823561112334807412698130402403999453151530115740887432098358873676457066730005747564190031084959617863634251941481469801613532598829050069440957897052659920779093040607332518254212406752284214849464343034845522367795648335503679033440478654172799217898683311377410164653245473535538388961067257838024767224668815399298266244855338228544486158265594136651013168506188016238085722563225781480161552280755787612887614511749972230380867395384224921757743697069837537614057238168599233938993441576014439849338929345721755084323561065520814175574676834252943141236434120633840652201355888874458737097076242305591419258144486147121436380285537904897143147542128253637751641910410701776713826883153298080579222217467700402563968167083177650663074821757883110262132463487521815475913162451520166172588869203743497117428379038116671259507864602282182341325736527709317582471114671119814785254747239308773532984699379760114810603884205732238970656304815056768596195760489801274297008128696737347044004600689129143288745103569758344306661642329017180540871431965973763421558279528783756019222080120422230320692310976771639231444010900738998600145148898171261237585149311836072820469629093978712134518245417584237013177192810960747488730825690185598043280227714159955486057086815913037634364006237947277408663791787501769245277263717103327267895438164587355498065599928880176245338286631054334858049750481301665998061450607580834157849912961851013605413546682065322218957576844009563602402616583117715232938784940152504115308161653302034960653474156874289565757345652920993081051355268421770903068293262969591224172770454417188197412803933832827463494723195498258150014336528218589240531384985203666708030300072485351805357317537481518676673928251637297839078590879861570262903063949854972032278356288899255938033141393357258710908717676413664446460205652151756566771739870138215590348849948875284382393961942639044828429408497505796191568861153843040511630895835163686896367802569964910357306334821831956077152496828774854358263875484522561686774738602332101835441191969311150302733912702311849982759499458957688988061619740491472357516160189617918775562680615742588497312250491720990897791288108283757456585828721421093533656218937510774636261713483268476877709944019826600514522834974008059886510886543538917005724634243445054014862749537050327333875627863384169808341812585736750563509537268506240886537780899062746899542884941454553414247190610320039780881409724414225225333350819802553570765475917173809394117862695936251112463814887946995339732326377103145460481421968319253551994789106535431042169161157584350337034753019481972507830593932205785640642982339921596594288345110466011174151036137498830849867291928759848234833664721734372665652429951519609785385477267536439764763155438971280671667722501189263147837841396452091233642640193344547743059490322808689034989414707888442531336542549349075114770578532164718044583446871057381825229940676776836507286500045294390317057101918039918574283743097802979252311258503461799469274917361844488668795267485162641634049354972933581959088500688965539063295353238964942904668654253289764584083760663536567973360749907282950752797883277340387315640645149285943319893409220718636046032075095420100859734994394473931225648796209755542978659978335955950300344931574088776102738412942446690731820934603186034464071206361955812141325773414750402359553953212785552438043560018826123590715821275984473293212136615724255045549969486571368600470704483746865792186729405904748920751540027711764586356530925626122270957341834082497620752058164920599220147080674625089126161575364839734639581647553271348790339325912968868245345204450418123607818704068702135337731846721952101006471768807805125337196286515122240492795546086012659361048295991895433722636317561980137600996064679544526267605204103585338673531372108017938422874261020536518969632497227457707196926984504362728022886415343719481496171303470903749034925389853456842878676993624006095647811172343268954446726940988085812770957580096622955123857258361881909226120427934544583687441375839364438483303524146265154898281259836957485823424859179372330005855686186095003553308125133844834473968459263303694492610088730434459038452811099305328463861496015559875591711587602007492697430021973530763535028449090577302757888225082318490503105882999729917598990976178754679491764170034300243147781863459323972572283920289270008352527278594604800729205218796778632854963813291868932069592669113243024686186709927880295403034653965176438207159363895842051844427493949418382704104728180193804212330886729132862632569081771651748966492027378888638007267540908763929586815759686515295602254991682868480933847625046827886840874801624789458515913461400179458748260247260526895244804688326702343984987497982106689576092710278106384525100978309393944936254927878533901471277037503788727817867936753900592249393221886048435113999465587621667269713068316149135007401354474799686403598121707914219955741359221008061312007127061371375689435406493472515104223329247038298038832455821417506519243797989303432160703894565899058031457683797309263394034549430997268886045933539054135366355892601541173561960016806216744400202972411282327120603805488680670776597182456238265277048606754698404903462922008848198320435368256906424984012249032247986836328059455305246670732363365829947780861901348647080310465437945439383266985636757696014395821815660631705905572196849903617286116478052938486792298977853824850960952200431150522820748835994131233587384792057090392360246364661559198874367816001827195388893047825638159819782147730358375461165123678674276300091398660288149827140334771380394911866436670450761889135533111750675278287733203103266312347062898919674799747083210442965037170009498815544923256969290811957522123542902616377457445801891931993810806127765545873298873289198918475325411725193716850698934757362866623241352732310099635388726569564138920166287986477715775325509203644056492841126845138381964698718620423722714145481216617945066581815252694065211365778782698904728428641149162309015982731396823130104960447867810216911592700000482802695631176407705461945148179461628910926132584333202768151893299830604198827631151047263467393335725726606089533547006847581519869882899111435519897958664344948071929797044969123674092193152074265261599482500412966612252834655896721983904585324114226305562443888005479666343249147316971576349429576016493923547255999680143949833328742049711027199223764833604607590822574024854948933842511291183833886010395972652566046883461529574628618205757686800480084407771377620403588708083165697947774172383309741857281112156037381671351069809084542834170518484372807663073098300691615633137487710260831899491547099626165502028863658383950895344159628179908898007747329441431732315140602587092542528716402570484551773429163898905719420014877045559400933803779001036678485595963647240848349133713724242598711112042173241383136671154700118053196340588203386496548070085106856728701871118495533844763255335280873200532296832955355632334877902877541189885757903961888527759581158362198372263723520761119335108640581719031996633217436324462716204559860295464632683348637096332691110386098056949013564282323560521070510888734696162617399566324427976741600444280542260495229675238972400549281258799738562562673334080886019433481214679851815394654228426096091963365742063063340514140786460411832300975484034497717060107711760355880205904724807723044467122128087763513833546870953247877370021038385189448393642987667482685449949694720900470669482142367997328964480514266844739268450617069360074718406526147356906816607178740695166540073699857028941768958456375764370439894806470647103500568561781807966847090733877373456193419387525106093602364180008601272352218088364971712574868994758803340976287508685686175195325097497539655228712931724964107027089921852487731323456883200262438689024542713577098564534374841126783653084718623994782057596631284562201034760619694802327983540922153295203425472066980417732728487797585034777984895603187197027247242128815028541213049734935628579306951688174249188542159817426044204228276595230981501918027977871045677360060698131659052123283534828053628544807285627493895697525242065803974481401154032163841669949700065484379274427448449327356715330323519674646475506113221375981343737138760033797741187448666713262716115118861201910977482710983832585050743210835488498457246893017716049213680167432778459977348770646286264173744777386279118672893436318277096286306991987517785881216061955227646598269077768575700647035194540078823029701890045370426207747479546616944298648896173195622682310205002844724898058517465049660940524681156544692223287024839380018371601804630445375171856708992154347837620258696017436667924327819708061018738592635947104695454605438152386821858236939508027878515724277797224626941150154886040057739500987434800191823589150498510950993904289930585859220118659829393529803305584010459374470215486531048989132594238415870343027214053290147402623665945900745718274459847179637852901518033564544864596394995926475943498020519554195855726232275085125846226297303120947033103052443726282729609494699533950030526258948690038656667409529790782376703872827214461453427314856279231246353555641094897855943339425883586023186534580559087722602383198876079959338850144112434092540461384115673837361426660056767498666750789264535890730683054435284110151150037328627568805738143097966228689869155751999516422713353208626803789723863409162568374540709445830690518303110503609346165896896216603179485224336230925724044152136157661628192495675736081771676851701666758130550047885652844782754293213593976199470712819119067034644824627211696385273561905643535482966368203188914625776304096754394862140387337551489070477093192771159869182590961105427045415066587126070119406628226926697877762763951462755263231293040425990754175841901842252922096728314088879142684019087631046938283704264449149990643735849828762383301793507915296284333808505029325569565134919749317041512883328245396235977435682283156041777824356290998723379236351669970429652768199258800735537857379175312053884983557100556441906789747890179190433870436799046904261744474832246018136607103318818542272512173997930926898185009548676029527853571209526128392739709745897831007902305745601893359098158121986418280411316788664363881591344862562328135943452984928263623149733533249025585311196306150456515222154214272724962000831343887412126354331735125101453015180158112514796914450630639257482231442872760235765439172546311977074539492487342751232675350374593481288495382247294495128234532390156616075775026259431794007253402060474037739123005550620334701293658100310040937358245119984196073984671655556754812278878502380024513064376411489975625555605002961937794936671682149555882749459956746931394265240677393534226805180761172939904341637063736107743061409531134625108719420940119540836708837626085452770122412244873681819517990721586176758912781402766643709881259087554689358539080610057241809682794762017986095918179895275609494735649776296369062322989995138628063835610695447277970990723953072912512089565982806010665959556020436991723380834617880026334727283439049592952212107125668488039378400995472934523308937354821313079511534071936210026301856182503471267055694489831540031741598753204339338660781264971868576997935023809918463255917928945812037688150464031498407074458333478273218951656292733516912581082216645480893034258347259659920497686703802890951737549038687796578917846878758818007956084319987448460157530811400187892671358866413386076334388927077755810502244982382815086064479673763979490815505527755489988676473805575615677089305688183894846900665355997914496276814415720678643575779320237037178251817129797522656578958893621214086218231349206856320800225184958943250166926339767920508742243740947894861401132613049773735014189008689956374962713556125574454532597233033964700771982164634771951663609507487337527203260658031800983670045769000176512368000782999197800853052481354333923457169495177732267260368922394207450609080090797877803940891751769207650380687615278609731881664317275615960794846756751479472113758870100927872479367765952291096133927789673761134543026270293040596608744265557351967603180896458461449964864382681387128473795459010569617379464053047056552023696204647301244553584609218108549759155396968743294909993669894030831494771298029638343934857804612060295205214497967406922885925723747145865961546959513974730444150032335378263339374437576413066081903532175681767721005437550234590527728281578064039762267811969314148186145498606188301023313418514519446618446613933060569889831926718964795642384176229945560174496270757871456721405137259516126483267627709858228748844034406997640075265146269150067607429501748979090041831897974629649497965704809791289594561888661555808152218852260756816459335432740342670961724348564486895163160279997791395825421393084128024286980193618356078939415953777662176648158947125929326951041370141387318202637827162941196895629234233708557196349319965577547900790997408140403954204942469643204697376227467620285960852187640806882545189399621353575939601724853770446800564519011566402744600749907902213873781685713860671968051365943533921223555437425458172657949500302157051011883004326519753609749833461980800764169076549371085337728120862437325819660189653689163009983787611267527978843265379405596739543912114900773874855287820018355228346419366393993195886869131435039406388684221934194527780536037903403789431936621698748203343207301095524796397903269917771550044469056350993220672438680201395857754264255795531817055089741737142336351985213675742498662734109228642045259373143678179557406088073359524386279032479442348815998367296032433202910455690884064123941810152754473520744619846039991793315836464661797901449656302724285995940358938142603550512542885900023657408123638654083438031700159066361497471308548644542178232088603712873798736041706843007992340527385865431107808244643592561291027196765230438650883230003059526702141196618230039252192063979285683002311286662262258502285242818380852134209686315513266559235001416206984500230659660791665153456671556655302072222605133660163900351117135471158902808397587545396705185529754075664974287850837728796438954632383972667583034738029773043381492445318387691746919271977183507496396648188395975088082345245181176842971656910796088155362004546674814080251124247450647930766550308065630054075624538647833175147190728073435634261855402950092274698027560270174216172373437124844441980495268538890588942446670692175833410788640443139855863299877559416313846183406719538984052664559786292139604336154942989083851918858396227054204342753892882375934351749786203144152961445516885902924056885164108948593949320404468007719553936852885323211202713705541281597449341273557793621215197742521960509774296155441268135890124418228132099001165743399927650403858369301919202451865708028987361368072897531386946686793004319497123557745305498946200124197793307500048248481850643812175369616313000137030086356535967124099400188848082361484290965196846526307897035629024876153959364807025891509203921516781969254014457433242433325281432838323454921701165955404444637198617465655579433045562316387446410804614989076896509399775208047620544452352315563351126693179750981908964043944783838735034364338550535899659250060276990915836003660262893731707424911764891733350192377491235756862387092242144730073618517333353733910113158596717398462830587266668727722076550807530404655255390519535340256205929480795585291351978633718547917391021368858848205707571942466237926245730969060355070890208780071786319928729906631709275437755822627804063402315475598017765487706008587790300801657944772894378915885867509283472798412315642827925706218821679692184956517277013793381628614092487199401387618158676719295237090648874267416647519068870593904660305900883611913380518889326281938439029195245889866808523155293324142412364251872747353727043662378577493034667353615146545505249233052292976972858886440869460192916059344106945489662078216619817305271570182562885828649845772824868799705320648353646012700172641955608931429586251262434730362802925242611945561777778958155876742239728507291276432556469322153167644355025578148214051930595084844610639018603696176679967422569567113492957562433806899789752921346608754596002966700656961589364000903109797647192455637887057693872791330045003550608433098443048890872280435620409361250270648732847247893666043795727258727695664041527537840127161288105940015138538801461176263835522574441588031619940130813196094750622021172099322604610114985396338525615233205830056317029463051767854493932259740724718614070888627485236539540471631603547116827578995818399815817215827227874805699688459151625227874080916442520572062675028724766368867756822338941370633716290339620348717403381158750883540989864403593299063375534343983034446894932082270496352998944317225992030172054488857172727065216070586580635399250664563988712773767675228560428483025429802996463656809109360576380720409847739156340529290088876942496010874561657091443836177692491599945846930019191085474640816461060227240443114927245836873117998833677961218793377302347062645407422739886521291688018379357655999546858085037397039543162610755429880715225504627324978334253419577135507685886946826798680608586159294735151292145158204157350105248457631073819446055078204598975504864792033307205916224032147834463624122104727708292782932582823896984200405985505672536987148551062200500393471950786493416570520991614976737960101703676668533573039087559006726451169191150227626327367361249272061607813786073913583556283112310264930915301694746645598751261915088771134299694177886763663138771269554645077279727609051600541468208876485244050561089820830546879302823595905827189415568876958285466102821161724987891878867953232093509739390907416523557929886997639390646210749493947556893386746718173336778067827935989587318028320727562082630083449405257612835201741180053740953487173710016880645841608638170402863117722877194517099219078804663178116759474410899867287474621525413466960806649091709045893498133562864247704337281516532542926860108789252258973363719301262486438762369101608708522390738061054710490422945286981853283967006233631962184577302898480943737756694808637538039371006998514880577195497062128615516450264784492050923627444122689216948833010333962119752088305462169900882746717714120982079184814696492062038742963140223934953074077788210475792075493770824468745130305992489102251794279408343815801356764008649659751371382831438373795960346063466620490965345663363919312654657048532183503312891175554245166141844707641138722111345569427699620885513780825227043293563487170234573600259554716071172577943163736977771039526572557863733614486648558130140320351594629873413860983439564268958000144294580382152362066806227842906544328527772843603908092281541445575821033542521049168778795368856004218657265498499873369734550117393195106704592593571520848163910218965014952345941637726708697726975811390371929871155808839929895201658815856455862455637544898952855820586735985160250606203470396432490222567947764059535263102935124883932423113802891978886153352633145387834884370435460801222961854964436058048912551619847625486094796073131837221377853819674931184598159001226006005205901031309310342682737672302846364687749877478231165694103954738667942045384057135876527820339801441625669740328041413206511575471120435818973527183461120138975130965286516952572127072636997248919884569127121996427371911521191289101676929565151592067502441110253010862260305028211638348269673911858658520710245492818775945619832288693570610879490574218152304582831969765670476354870803616427192086094704635715449694211415392950933704517079664592876626483780587006682225408421860733379585117217293394631434595716356330928241395784365657260659817729311819667245922006473340565439832617833956774618524155362769274885310304346755678268212056614545173945413156232191307899261820921178021310258586388241550652605878700282254114720544753595101664524017400537523575663303308657058314807053741841853654614159529260317428061977776338098010678810553208806726548945656687751535367502365863422281853158906062607954931076389562002466746495561207423336323370892811749704037528620920467138813291047447295992202518277510098268728557879982412018759586537065116409568290014821420674130917679376175900501612806175388924596015692491522647355499086855149014261459850833409188869465879075642110162642295430997824861634881770516973905874341340240200007622067547194974742709485957958441727213128256195616048625954065610016289533669958387159611144202129479680341997678645965629412497117840845931689837484404183708712466787125873934357880619324092996950706850587641612808487616619356897508046170866927291937188880635196468465837272025008804608759845749261503347560984973413045709678386913978915599288461235628349358300541741328282008858753297739084253378011031356977893331682453350183869165123110506327899940814613227062046169733318737755852378980121472413696992654220977760533680948060285839900679989651318164024048068995928903617352448232233743462278415849107735899207157812790819977918025449862679034158495405790276589752498756430677467838654563032377282055114603885855777481931971935762507183252052089275717649798178296554045624196667750756077024728443559055951570100425681711422207696037748793756701646870903982286298335265675267581232952712701942179354821286295617972542068759906723752188582171110245969227701599798082623095448077142768316865020282130453795448994738067314908395526524027055417668888880850861801355393291796019374819438421465909167221680913974560200516383124828940628087074134826102246804338240324842228972104435977791556283689827031529460763656458342562079693756673817889658222550906972327118067408983419540343639321757690804864149241919233329233219224074980825091637744266979045561523987986717760723714709877428520889998941901374365054752115800915412395047807239824449003919566031281206467849709253643023913411939385566893230376292848184026749452386208771990274486799991922573293254458905452507272887346374424825052895026140116129300937381024241370306056586130789850969481346692624775139505361254076021740063458837493064553623022970428288407994551175147505535011858888220122879908416710392663841607885288499688649068906547469728169516969808367655423909291871804723265254973204709750577046103615632226200123020925781542247899814116386791924644483708324439808772014436550584756394140743315570700598878688951469872286819197902121836697149589146380865878116024622855472874354785178742158478531510153563159802420674291947757553595600889889751845171608869567533103703048888679583143408254085116652874760352638235286311313143719347636328862543457510587092767842098393134618096764176890295922533102664692992995772177255742486613153581638774225428477282642306729434046681164233364173627582707901310744608163557480587773618936469055303304049781723182923774870528850699502847696433553984516446250680095252764203979288405206440873197255803754578705771188763116713374637860615140167596882734481315429033060508477684328739397312950301027533306221397555919270322590818545998040314653883925769232737828037069797423066500901526474408250270388375204365752901017813409606221367280682043688083988080916052784669456026811658229774164613380685160379979923227394949464332030163587728556738178033649755463161593567543405440560373526207520166539130515374877562607173843522741494201973742717833792704835445071581513311243114783974191520924675371953269953658310528963521713480868705505716245027248705838044024651159912313475523198143020546197533599515380539448542910488445486717539837949444397901782004774265468116443400009041753005410573853191766327638470299319371945706773632857070009474410158302519060201808096615107355696905673079759269422947772905699202544647207928275285823799593773592025981981076137638014370131080993130418752289030098216394087719004739926414670363110279324610347081110138304695799422455911464055935462381297787272026988802892453890636017489957571357119187778362068946636264225569857090234867339341117419576639274011525015451224674873377470815149686139308260087592041956857484496428585890354383925268732565090020981979655264029876719740522642296014811014606606209938033943796266437197981811779955092032228001635425269854253939643980780335211420180586604934101997871214264532829239547147316039459028648266029790260834150462758307990607405505489262907957332634305704185352071000269354533943948979570143407170615592153816718001564252820184556271624024073493871246830170581650349497089139041281010972790651522978972628224612381534864313376961347476793678920649057446177875595018518521344532731938477414008655004042869773257081214055334106317794694524222270806606005298955655302781708780265398002940548510889356440931432500444613779754987242374667471700501164258355905379973735917393435457361055489929460210334392490281413955569400112609650994500945279754589147630951839353460636072633335583642709323926774996890829488117069073314273098105238511220446754872934319876853128769615082631346711909380994598167065397481499088200116356495644384060398894380008711242605376547186822941496360517408110271986091190176021085077546022997236433108878057850325445097601360796211193095090046759112806596008811437338837709168708241589923358708245592070503241466264286580635179612183725093062928734702069248196142182023659721151132642910359609440660907923259358589273257174486590618763244702386125263383131935891814058414916851049895307585056024798393224516243875394576624246850758163775840342160509317869543623269125488773373730881147486673955463165262186686377374667902412753964318365147506342778657287316407376416288653239919760891614353530669830226566583782345929909230048310752157183553978184630325485331448883940758547086198235204347010306521134309917251966894697628638733623091167730090408565923162773746657469775983523464252718623444494167256918112104840589479968786498140406685138652659430295265809622860704428867884348906005631709929783287786710172107210768372562784027052447139792381779129679022958953221860440298872991004980048936298979066649593886468096105482530552259063304416032927363609056781332890809685475361901218115821248858349944943225059416610173891824517755744737089558076739622009018970848507134157309521900397513077884713213868337836042982547945769626936603528079463428165685276363455136259471343438295877297456484479561423237729719949516962649497724068033639619528166368985044383725756356913937296797408278921691800155804758194427334571011289271077202427379690817129741831681333523414181761384514332773180780381025691159702619921114670374960425701179460626769121952942844298596788129686468170104123140933806509468712342161501126195202621998108012712055680642721347176757527732273227424997813053725280806410938343055954378137097381624724429227376626945240587872644690441481531057951175173938287413872709072160119312543515557899406330826152042842377299978960422571188860478738337758683256453393559670085088190180426121941770964664226339224789608565086309547067166274889728899369251332971337456243933320927601696072985915485778561379496744343896216215520064802062544765946351696519117759955074594043794518094853073972401566517110053224591461085057489523938247958444801597310758099120434500234232688558949030971182112490460380722198654495471965345248480079131932943108193954956684749264372032559041610677776730158220755411463115384783145528306437943853709162533202737874799493134879008930853941914194758494027187295762532012602571720032832236537814498506019371757714840143365729930217271098163558983082983059661563388247774686083343964391112144282016994956157250701856696519613323156929730719740630864358344403597786605760307902154150013963051114713591207537788705021153940126776416176635190587483326880405222350154474178705660320937431798774810573070207661641126881208104089452044636472194554581577260866634060326434547240749511989313976196764700337864529221591857571405424052751386202714521022681454019923866216967582733462059710764943988433996733357719413090719650909603640436211970924984624472551298555756191960714962776820326550901974396540315368312881342777655143675700358070623524833859958600580144999737146337590213624869221851202871402127925401826059828010287375027041536779725401715798681019895767567014184718738253282707269145383095406454448827540231127832318997140027009965570717126662409655790261436781213711494836999442969545313516296359034722969959916928091618455678007589084365518421616755373058811572038681449715847467054347437223000471322967808341461397271689360270325807260410060354115286957041294324623038031983568932886366842605051651573536939208616194465771913556977162243322411735815371250612441378872761472527362869985436002193556047590464271426235938122806476012029316876845569278137082390765818467093236919070712713836820529592278101343976921944055980657381561688136381022205399662207295554088104429816557888942963968025463067455377001013926581017740005337030197777038824204348316386904621401410513552335916162398638271150255753227315220767579282585576436594958142899021388777590357719387370778777236006158901037394165867121985872916289544489533285802555476313891010699267943713561754007150040920008077803598219785674079595647134374695272852841461078138351031933401603322302395615673772293534820790801971728547142840423495179117020280611400962163833598935579438541610450806993708098975530276908783476012258783239110964589530350209648101218203450006296969226071655371020885738312324472329680109389815108276756634440026954215243520919967358889648281779248564089604439532381785677075538783499218621221654409655955530306919839810661249564018152199220294171872076267924644828292976456870751619419955087049980252989720244975799398038204432976767550301048139039743686972912526462057857681775929846066325764351303594158623593167882156750954643040641286354956840105875263904064951901069424420218097780092113127809524791330742411767268888935387099322520742565590049219750280457801345224037813551228177493688953707462008622605579020617554615979537313589809970230555182802812845287152808056566163759090167075922906766816249307668357310949985332875573565239186899436612608858708701403154221713111354614182347125659425176487796458044495264792539826215753558366914829437350740988473657505791026538445137926480492589745381351482530344411984304597369453283580354228103522743635396783175372748750675801382776643267091289065993172896679902896023286551951254050033925052264211622227080974351321724498667988016661550133511967195489568000656827349392805337922734754824480245078897972503151390604941268311679985685896201266143330294329090700536178709028320614307938704622356696018354682466467780262568522539531162875081344794418450451164928176697995227817530004736767790389644596080787495290282056851097167846556586960656418152563876478314999258516107711629307180656756144782231443679294130289938300409968092476116576460065578885731648194245060723438250163996708934404875709747237456618837359740112545274226012633846829027038787156423223001970340913281875940026679593972584572795436162566707184046473679552536796992212749879010785234147884558364581824665566407476369866931933772123120149338553122824809835878388619870932651956519769379870707661652090075362192479985681473566112758480579963546431764375125050186584630141473002524427875683697565773815996772515255222301988355638347781950042180935823718891954178730258557966134807399285833870438086951713973537949412633672242864584117788440674043354491194945873546154711659506860389095722650188401437061551693501127949959892341336042649553855521125684379902634995526828605136660702777093902637010407077091471411483966022913295449650822770666193384318168304991560732058393283632078080912249126106973964526094971434436614606031440777868662237450538128256460214893752419098959284527228349202733353930986156284499799276685558966057788696726106420025797867450013473742024431278059200908962345489925610806711070018461249170921398150043674809024688771758656783293612855126116686350786943545185937829056071866663472135727080458648532629905958878427807707513940530884696583553541773366070727211767903444786783582354880804036446325633760450937375392632654522003555658258521068444623398620606080811681994768837285673475166058725175051972965454048011163183731682875445027742463655622410556976387309322489211391016550631541176899019163693651014286935647069128743066416350594344447855578161824479168734237282905360152862262185646295178596612710543193244485335896911838296442463862388486674407553374894547831927471673089494263596135110484242714900761469489556265032730923344225008226093779661901297414742102486508920930770398461189971815752941001007517644664456331635421474132947852693419776017985692585886575678577417241453365098859834337306846434249479753444573938086610917874904761665679860338836814732173500203973093193296053494858627753043325430301427159626758315003559893035530346206805208544200922466153992712154907559086219491814679207915411204398420905126098432950750187380300176843465453530343101760655996236392915915794152487695198201435006878699808610104816302477824806003406594731576265122803339848463476669751251867499587740069230426578800599571023761827871997564586378341674411130577299969380406235876203940903330476094439276812332046266070310823871757862918944711506495924929354961085746498094388245792557295710589305630153787120728534805571512047686195603957176180186735676831878150805387578553280993928417802044404438622791401599587188551817117222476721046366857957240201980959684028137157498476973287174513125134550924013464685822280749031767687117306943232272218746346646712851559674563164243766237091836211380639261185407014280458996346701217485555222003237814770697880649258170000285401717915488440628830519647046028058626129538509716866370409393135170277146921627395042487224795656895078822295405331332245993626412642352867414460249153741281288209454772793236779282997469014225112625223673458259549888718266089050321389282318848604608733963445933465081004509762673334766000493799297615070404459630915394969857081024337695781926907685039685039153636324406643893284090827696422808128735050241674304943946110170963840602814098056196749011983232780309217269895587896994597414673555971475376841446535487230434133711306639614945846760014328713261902515145655175042089498680289301089916075390098840496671134515883407935288481895667635175833936666384702522940579841522341134547483522843146314059950603033429484385118570800151673887649376769777812963696925147919172791077546052183352980691675369505693913017766575213109249072919588531079533361614481965375846990637899235262057456079489203023653690191415478715584431184134064194754585625357928472854449483977365792112268056215569017954845290944757480719708287896514162381922187328254510769274217222104141518614810521469033693592873497783362903187348908230392997053439815576115635414748435100465863288250511858167495304099540428574098443093457961588553806393874064241590408936603522663175488444847370097490584950537395530997193885792184812179764632805660811552121033265357576258508084770775016559325450826161957143690846487228134509165889804169151865570585340310521985894999859617762999025303636213615438016297370414521698601236129842379853328789167341691433220425298479433014146051285342661971571757983873177231038262138481415632391109860671233742218034932325470093832410302495688522924203033781762593566584384913580901670056250123150361939661422690781072600922939776664947778726204653089823959692271472252653681630235318710861491192067291134892606470186892950328559916471926796414043770757629446664129551642650160706043963848005672291509248603391512624860010088047741865498551887061745828418960440182966344740152167474164479290726461949564318476624785302519987013951122487118729591288926145984109421954416210491738257359132711758902194053288088279207602498522464531143885534092186076524617446435279142106407825601729489176274824995431749838130610920295659638410637320705340455666728537191383421806610194298041166254802142730066347957695761553549493339177815488610549603026226711274948574859432949354041055926305445271665980754020710498490854734492490644175112124722197696941064326260162626041251395981375990647758903081579739565921712935466062344130903055807086426494554827066472387850062087904839527120496957147808565986407049669243359603963267369258947529825938253928494308976908015943635376078979649810811031691185117989200065825416466504721365689756018550628314864037538321177193540633246045512503333962963234460502211157996133499271801298523667753668704748669449915088592170791718828424642689006189809195648079690442615971565959855988477148965539364845145275772799868663810374782390541723701834381601495956933876865612462690279380474329834113056615717347103884747344324754772792807201869171252363248826824812995327285774176423593593427936937340735087707283247551644159582855243373420494374562581427066047900672875907615142150131317609506019350009914687086754056322190290231563637579166758897894768021789685542780768182640209046996928073375407496009244583424850762557373150111053151941001022628214829034820506539362154318138151954780715739057602553554037103366120357747856354436617205173366828727827883545540619860507550562078394172581492694416751750941140398520710105404085493698834250025868724824759726673259288397640980289334099961151625639876297874603832407875685715148073613406717502872292449457642858058308740479667934064467040442652755041952301655492647376288527849176844846139229962179740449211905202689807432239663695891847604917979842920376374516563581603085918481116170169739180310047253955826671600260506824231552202561070702777346568388369554090353319436883836026115881574480737063013234351688511738920598761281725589517780275762436157618842645607517462332306918001878172095330914475862687770576434340527311870092184830474759678678922159839515664831396559779864562424447005153154703442294160223145047031371905575295184080100116835870422244349570376346561376630064947581791865964084210847947105422433836459054877558791356608441715896472764160131835332063111243665403957008539434826235156940385586230002422716324790239399920789779577638067347395690265097751348287585126768627093407379481902075181749820931998365866695944047842938709970918810805917515509690358252363141534330805741347528380997248492756199397636118825292655316929565594858700312372159668097545896468728273812879029570410557262691543868075670982715039856140268902076618017370401265164301193156034454604115456741003903985611956517036876382043506081148685256927443111203543619116921713081386509048105510161409966866278842435162535959655101591097535911671851921228939202289378895814636590436554003326147821412456772340652556275236339314648145499035636391095748417840544360846051771705809372420917785839551820001899141864211973828698076042667294884589964433460551045118938451454290535128206915487148518289605268019382017680642413610063167617155798011236278136206343848591526192449217353800413531032349826864869750296144037576626232957571379622898220092663756563509534970466735989943931240107233762074281499779058690652110904710188749717624658719539994564497554984474360074950849774361113936367320629490021314421058035974892467462790932488094838512765778691832131452543765711125049129759610271768860146012533308345897496578449426507099917141567783797404536141714146140127110507222940967047703713285431074042151816239510282486216113957343184471633770776351044098107927110230046361005652067704744138647280698228089120972294018993657084847839534466912050846779300053433980682543356180794754201111824857477262532781701274290384454059115654696267342272500501648470380283061474221957923337413789796087868909986825665068117978378634759006424871649149382608392422529294480775982110288166297248388762975573324530890257005149452111619920478065177833605180854649863643983813085086654871228005560527157615170274526451428984123059503298224164532972075859055166506703483371015934921920174312497145370386012341875002763316337501566930997070935585181037260605147074630018963880261466391541868321056232528811316418229208041472391772782273564901134493150624397212116868506225992001118560229694825042179670503139225093934862388667054844350562935423307335242724950307863381585043530993265886623714205000054671384747767986550886492602245709852926886534660810302469338621028854391610501580292373402118010508428031320659191415006593728185359505538770387961853877972282196594854507534185511814456998169769875566979308671969718155514723642375397814444828200771924809651954143509434242679754942198357430602124695538729050100464865926249650512815228059760450443348740687183156330335088153547975490391515095364450784567452058464161345909471167581071701951832110717621812189659547610858964443959426360810128114627166021859253859186137192413662269825548088241641266923936605560703863564465454317630905961535742651914751695251832655631715841489816045893509724088875997638990549061801485042985477130194880749160163250408565985449318205680441261276827488291351132738833111828765036126877807223511001636258431255097690556515678448669570508220011826445505120601535378524140117801058903599871902263113146077506886316993028838555244812287520482828641166821526113571167643013310153239273385837898737728881315971483266262964291949365434981351907859791631887907787040570839208312536077854074119623294876757289169926126932246533437192621858801028510273584483792182772569718420194259905998799839150283971993202971846623858332889157440559787347993101017217803363740459610333745239244197514248847583457907581170068413175207996255132613537850466811472485546512911949598292962390686393830996826618593090101248949842751128397693851578247656236981350456821522449362767969271760619566224186775946805273281668967638908750040447376627506103659467877649534201288129254396962727599333288995103150774465634308723323901241694436682746863321158011150060283335431932569311225859436307039890851742613979014106815890784753913385830970354499269314823584059194409161477125210474820161568115749847393757721758692754942014895732143161739430746981009851709940092102400548361483065963445324774802983252928741799831664952116719581481552807095020767142613382303736614666244708054552649370064867339960067614144080080125572858330969583599630808758738279865980205112734899528675498807371795668845496243025720285370602953039241397108684742718291742484861892050979309053293389690354335358594790084463518006441074856065103573155768516288889952768389449302938656037735705962893374339040791846732474396351785040943957070523687894945178738592547593946470403551831927505927414872157675129304154737096432016251905446563018374904782163097493990171313865619748412149419943252279387600231288879598313660465223463710597455864627206958052284095928288982095110600840512010016223393339504145208450324887174252815052876323923391660711645638104827182654686881013965180870106017607112621540482063729879588942680118163501693157243114845522434117844501330221329765533374366088178429403623753414343541960249220781834513206456253551288824833499848787579831024428300021083795292629372984299192415889974228087956620109549335805872815962409817317403725673676745535903433742068188172653554058611129189295344791853676260653685912396588235622525992233880038774805608798911384852497770529794984161367467217176875847661020663581921900107862432095566332327095078539607736064108602759501745352689536778608002118286735147666152989504908401875020179047714228905514351073296127623293587290712647119534180256207913576588734816623108709587452944828835380875312216383488774827300266399988046634676879677052860838570285824668339251426341808874447985925682189718442584325595099688079155816818928964562806476851308033589723601886972246035464965326375919042294345667847738376407891842408990501763204010725337841023818847571331767949561313228097339758048722168631720851307156842717304963456530717731653834496027483127048906620569479635656211351881208914561205710992371303268448182009675165377701152216180351351616256687974548533746074626631464642283894695922441319057296052713633952547368405924589917464376486707594380844013499271666894256676851695081442673086049474763140014279505298278837271262861616013637315160704892694944377227923932988069599640384687138614833026361918408299536507468744310181266030257333137733872403648633279981528060084105824643044822517418862759212108996992202181078611096796749597510766087412437360365658640957261526977797039419006924258706629093649717251781777945090706525252052438026988926006824703757905828200671435691981745698002801159484639804336893432342694775134116520808903347496789075287586810844129610145036183741923391582020426903033334296668751636825447774320145140975520211126550057829213795813482351587978785814464237179229449590145720859345284519194547402253500441810030137478718843505363998561543140876971246346514327252705979507964689776452907790383744623157218818537742722943804791875786331144111482511170564230678057870436468528604104834709074212216367487972407234547122060904754152374518992241973358722970216855926959280052779179132052678069981720359444841481383076250235914274107623085786291693070911039979476169445949261367978279762137726970055164171313467232417144925674589338101442661143897430863943263445255117319088452428697074476839116179437080587644974449332300224538260042739871811206133148205729721303591145670869238731259070514934400361438660306066816341650176925519364092538734865449264585957585978071862068918264265063101127132189794106017281187030834698196803917014337649241468209822519510128927197581710317909449207547241238782867930241668590469959009793394225274183582411541041503977899625843457279929042884931499622078114900667999799665044781204874243389014617555085661801340946223665459766734557452338133126505697121790778869852889000455271779311826236005773156199931511044107725613115727052541429299533961750855187800473599448411553722399866061127044324580898237617053951833869101818409197100900388549203743172891100677050108658909551804149854243287247099350502257407147256038496593682948719637227911311275937554947730827596139994095076797898882668804739969611282679207116979926932823514432768571071798080767397835966279442118141994167616255821812929483450551975038320209610624577455236861829989870579543450342142601927212582597620055901322285266773957248551329897943399922953427931820795614326885488391167174770901068602823927443287882401871013337532822353863033343029024112062906716919067675843763832179351483741999792273071851130258876270045261781338520805686073534812682650038921703490456013671283325968690610465212637887169901798071912914143505304808344165205022031858097012130685409259985126197616701595039563851727346752751419376968456548198568697027347574197753458290688620445768780187012957930960794108757240119264413806162612645559607246508607735588141963465659019330072358017622833387842297320680146430854382715260791648190048724596665276979677615643744839758446770557632296826823241881555607217268771949132410849385148190038393291779207123709728023971012778000241194616651354792516527808439320194364665660803693983312878037267075602557938827562132400029553192929987551784147617547046530725284550150193447531967536297141122536479363522597563803575076663328930304281152284067816324982254722762292789383972534914409776747799480450291944390873264797529024894805833916935736849213317173572289455947555949259948597025408508550864377330909700454173283827250378307986688529846529836443766428918565506296594761364802365776492524021448062648318357293711631457287378865250682394902121800031626037927526972161281041712043424236656920342656373332122982223001941751596724718453320855311854366092787757269953860462289518481715784983233095934616549536810754929189116245992566479514808028958257019105303003080506740148270200376600667985883221029871694281926348144338556136036244532408432412942521627697428994201790250352166499056511518463175448236311341901391358856613725503325920381004485229772419259068949302287527830731284550559162253810200351920994777452748777684297055330984755413717522176931893006232492706708303547437166910528780039297709911224148592465687870657320495008835499262094351448499399406941655489548071375829838241100334950580905811216999673148283142158285220929714428441579938930961700303912739411137738437850274551090592537645862772022018452914642823721072109136661088920273340840693856156369467417233452296421807372984158105208869392852632055904542984125469395793236406633918634808590027066518374648154898384602926299871092338104417053439052445501133318749612968205517599233185509347952443081701167080529193963426509214926479467364695334817818922102325806959918350604324413698405819488637845283353321586387928282443522747071083510761294332823272941207682487759086587922541859359394339386132651763404923574833544148109387033068193587341508822152977305005528392226585652942951963118105534721730189660733516874657802256755309949706676338952918865425467345464431882465409325364135976832951088771190576208137948063355559057718929259321283489098323432508361992922878238129455962200149510253290673088690776947584285670934602004575811122915955369346225156627971411613800857140961888761306083048092817298192795061187533780952115026641679164594985490033949881285198606777990018793485972934713786582763921701915730694972166299122593282978365873923015772424678580387204564441790310240354390842987437540894384410928178307516071542350907304058104573807449349794619513046125220558792165823770723315706505595828267042648118525422898436008499362526692179762979959580872027959343823919177027475131534869406872040314975099274329896201821536778613031582674925406896780964316989831723908235220328374308096332926891355709488477326093003588019930049439612077111704958225203463081680557068331664907687503319908137492104512651322901556205846363377564333971722804022713467994560698471299423550011484528611706687913713004635057953686447943844372633726363945026084155216562334665565856714372911179033076949961699613811887026211969119346340769114064514767175199193640260083782602288499736525763628710976008050259887065935353370488481861838154710227559456062988966883589217875198652205255683851697969842071520644513679639578798061871391212460720365705177146902138720394684221525623681714397287863111720347480925183379900131417566516727090991904929786991715069988028471411413259039566379195046840445795460728034048455645542716642143936767916265499628031869272891518597549154202369277271032033447422343836937883746499529095127634495653751382655880289855774207398496007117010312039210420261818330342855595649682708669554151521681079072526940543859172111296001291027908290137467703910672742613892957390069130766229921416056601461970489857729635715199860648182116134201586052571155202807531124153507423008666113812432587492710964663750894074685565353633118131771443332771839484258600315990440703168746501428344821518430621997970833340144684808810592517874483329323695339441460281643980405429916407881025534375421048898540319291373001220273664459691117400084988125002015657947518270199022523129544844949453222381607211588832230546376532035677061832180468560644515586793599429052143980630733559226299604491834558172644810854443491110501959188289940559418375642726467922065136179434668052826086390064626535291667854635796825126495342461325276671925647949514663325398187159494576138224475254387632890625736431486054324659577038283646807926853417572400492143063260799398475960736678263335802164602296809719487584741545410019556856667190561661522754865394232310118723899803712620314994334768541862178289875571243841755462542401232253228746378050478143971648929604199827385319562730023716975673977026719704564250057383045123670253517136836016882345440126116492616469872748787915819501667011076557421492316630275279422416392743183543290474774491624097178136688606994964396443314486469354206583190465722939107091086374639755560232740912144161724671154762328118593190196052596088540790805925901627804341522708954024840083365052445832428283564382117391458012785454442503793580731649298254539153598822301820082446009720453914315671532801331295447230830734986259645877003835908041578064126718482569577090389849523845998251936730144292241644474704372142473694819467736557921510671765738026940791575179035083873237521392520447206401429096116935717296054138237783417825347166535096968397628416878454925568289859224027698365633217775269554617284739526013784827599644046966804284706956272226269854818563898439199547562495325199107416472073353615506341108897819363705051131398351540826110397354939313937074403001979313975052776651958854184949218471937309958445642624413234017424278213027651715430227164999172942352652761976939852193737522546860007272711578594056943666212746887802015948738674735708370054781623978563806203741090704133043295304142860824601970624948599434874020925502589236207246969027920599711850592094654860024640474080287753719903523606231868024965245668513839281511501461532298552506549308395321074086728542191894560176237012018838287804532665101899295262390027280593499426513957714983205862498731806395400216370258754009156841627670217442375084893854462058244569303041304668914306108416138343760233819941079806720322595881550905655352342408276857665707449079979013137263829663781485738757351759692645748439135519782863330440474066386659951256599218220479675520529995544827624059764227450034228037350253862900664656795539833131374951819886441500265527663955130563586281524652707105601221493293470447465691145011465502826672276766937470802468090851306368997450573539861114321504242740731315799092256874209886990521833823413560975510450107421379297845064998044822508264159000113635905315911658323557763168061899932346674690114176641024673348785143474744588267647841730786192646983007576328334292873993790247427549031586356266264315294361514242252458789840884516752669415619966017042412873592968647037573732805649208695689241594226505981382102713151933234884367720882910106864894318364553376087120395093618120095073533720182783049689090429597576375261538365922648715674891731574897431004658960863087894890889598438075330087792948374923492113531668944742996617688830936801904883779986130426638074524377570085047178395993598257929073019972287150948838013033854989695644891178428175341904703676658153834535030151939469233667222811440108053503968784368453171655080149519939571241467214163750564106440017644898187009255031603218545468318007729665192135422873798799745907501257207046065498575817283993803865560030273278470373973995694697655120114940870858254987140219757932682214288938775450800238701921581437662471112027516609923283028151440803728826873052673036839832108006602746791169826896337406288581610700888927849223318614066969375868346254120848951148230006690845284263336616877169984694059926982391060051308637787386123491470109261999445988493407959337499356397064653207543237821760828763950344030138439555966689625149210739767271462086247725832450373480558490186243364079230304484418433220877360757400320714400638726252757580791228715280690558605702064700453183332585411971005344961882308241054484993989278013757588901226930394709553941345998797435476226735705582764197921085653587846517054282614792679788887263774286904432856812068850922255598345817545719569297811296713804632874004734911266883193367112019486131877825238645639722420970184325316083502003399855820028364805872100001887665428541929955753016593070223423727457910688292073059679726898845246775335780289761911743827432670154971227648938044758723906355280476996103863999345948258336351009576004383745987888580665478742856394307580250679482198008229006314685515698448643546612788953898737086647206900264811036345125558667216613892214899470511003862746880000844266665592763114133695573719209531477772666030964145781132664192285104879800189268537761106654724745256594510799348874570464622286307140669404358663898269914023526663532055274516151551998216614064546550316409325684207174932216556075600154119985285983450958893249334374293172096676043525464174959742776472882695186958510899468517127354285607493343109720352851225308004219064415894337380183378483828917749904820183812253203669928621120749430821084785959463781997175326671803866772993485099050526142468489485415446834419044539470193253827437679730757868339074448606455252420479024151555427032432468439089574063798168145872528302421530623169569537949416929391995381941148703094060459406417852669973875636710420555681582592346267204784261413079647115439892112304269916299796752704513644989990218213599183970559803829404648318684114163126410935828626642423542639515287207730157520958449179642375318981288893605963672695706443899080596015789488708771860210019701271655081004356428853851661113921450646173936957752196906085705787595914522514604561845523205414147221232690520442062921393039186032486763137943465895579109151453232234333866531449760584249979125656668661764150761895483679199282175581809879761766898561436701553437331124390713534976541845450698980677456928446275743579642115977810106250053381351470175081494095649273162055358630202993694515335764007228738429033344826869003888790625976819607310531183078804101078431196264428314741831325117466918928225265823607852818244205285580136564853442607625938010293619534316801157733939000711090630891510153607849032936861795189378107108224048962480358390200820011882110589360231477283810914129907226226356008340217582304424665755548071290923881924958742242853864601172361178814184664922589282596307925714202605941081260683257332684463784687441185198880200107154987846639676742130427725360516314029491939958680056307695184837498585433630311016362100981376428183483923607787375649576409177619223771715625675258633904446452372854356626974057708075239205087493083632931815713758592083698289786475934339512204255855710810681055523226905401613566457999590578476792605405839013642108697652587710231441669783598278663367125083051124605383016504880961267258745855469282727264456507097381853782940726908971326753259679629910359563589733613697086884476931483255645307449733743423430583600192696211526804197656343633617497178224797505552661384201908782517448039301630803084502417914445345885661830888865498220262211466908173690506845921049256762802917932324621746949796995368064904451963972597251284454062418608046309299636455953492341498135791761476123453537511272734703742009566949261034140904190699995481754264229630112900893713500186203720146283602718648797780112277784314213658201215786752655755180387288659231577657104168149067849537837178808853521242462261400429798380849269527739942300323271957401000344780358781573646923613299747403001749208657771345013065195236235728699965171820802757242605021549497584852596927519999544924479335296195459432537538942090330079900722506617605613713291584981698757794664490141631970015569043114323836925391249937654060503936073217135196856476935270394272697352904228071458655369631786183859429344444636482597190057724100663980114346219518936034594952987831627806523975898726107952267824742650029250272421840709423757535085976392601589574192067923643774841957897766463261714162617493509666250008677793010329194296637891406954099718603675282414383152639969971615394508928974072696553725218354726593299602976552719718122398013601188020314888038809791719818153803552700930390776604330028693057451193430794943278624302123021797851740508563873206807679380626638656718784283584625083922567682007250472604232859572477464529552315685366074362279274272633596930515272547732436960559362641842261555227947660606315246695708999550482760667710340217995900488956426741288695895220495057177307104656809979536913122356001983652019743565811654367586545900918181958390191529857984433765378013899238461095979762549200395913172129147868079527825088667154195910661410833747538013187331604859167033443812700041756144242441594128495061190069868152147722376519730612116536041166905090295561637289056938802772121634667362608026396206247544270881740789536528053482790309846157719088731760589735038064188438817388753694610280780530469446812798997561662116235821628419822706898661850290844271277294988683962390168214335243720770451208183871906072422669909676432437272254534853328455879950107825023904485765655166481856892556728277320010434247649585194160396111148966791837366037091104387605532385468314328890385680407328591593678777279181417111954509551431837860109426861356005658045494166302122592637526013369184231566083723778543987125377064079773554201184595107641338948780449326072168903102677557514378234261184029976429092670452771816844687693971340393476167257291795700313935825503337645962312678779412957233558028108645265996914398365780783013395937519370612152090578960503242522645770051156497129842567040028801635036402128642651842241672809511427417686932141682419991611330792725204636986808022028256203270653641837660594654930958216931330248801619090774468719277349647695952338251231757446937771101943738192968783103707841861539849879678501961324146474208728423578828945578123243184427978945778280184918005560895610842908489588054608035119019252189193685010933760844527812801850900756382858739635046727069436785190770280106411038642533417688397467804607918419307078469304799841627812412045040803492958214799807592053031443155872370379392675010142688267265107579335081281208241047573860786002454277737119149900340152407986253299288922146636461126203423846992302206622444982451156906979211289894103314680133632154125299152883398754731966238882602091679615119900325487541916134555246267785427687069792884225377360408702283913995266562932273163309669480503819326725493532472379496462315828144838035484122727925604853849357197749609206505834316182563016508140437481236601796221443861919626971872192059050532689086433218977149108024680924328545122347633041856421139332558147390368755082340540693196042108932661876237533141264367963715386682700054603392610513056480586488720474358526477718429586162021989173445734555488378154443317473954447632363686382203693172729424162253746070716701179457964604061495590523803590671905214753612419161443505402414413599868913787159786796820380208434107882384322080290171205661120177567149632825374507936420947591543175345277535002647154290413216164134301447105664920549819593147685454729842666278993086657457162065875296489618649960825990228815970919490744215798156204655350924579235453494510383235935053536626566589492399656752651582583876527964970253045894089640580781802720286950810911915449382511578576423212115757765746111385759095632423419188277824312468960752202729847327880567990136229505999844074793196775958102318142940980120449898386709745835635853462079653075925270921153992164321860952143408270780557376029268016618841292156447820380294213815652031198190492346794176643527816474682779871952970133124859381971568195437878027398779624438133283123166518167197052163518620138312435656626786600232536710289213636812684521081337440355231291033103063692718069545779007194242726210034536385828030755144437397865379170594537755469810725329780359863270247281262265161068243667807894237343935564434555477618318853676231617699405688727214603391545629757006636382059933293166078919862794448109054869292541681433267542545223417437406230503074328571504737670621289382797135029435248563453402155059198478963295911554346824675210618327098752650826931427377402960575140450865864307018544445746781724252815037602580459489231617428439897984627872220560217796046227060699088430740160481468601022448880033858965380902559551119520055989896240590700672235093676778557700835761686491073083352310267439549170613780427511654646215048858642209705576609643875231751832900644558067406105277691002380046317484630609919766983161381367140425461794629824023932908494587741159033672568456592476047261312797216169103816153593740958777678303911257520471048348363632699669743799345677966189588214546784750160866252991352814878269409510397628575771642086315104513490377363918294712984268031901468026472984537594714489689004948181029799580098340126917301721444155747883403217530076294209652999515301473646562026954857347704275736256922990021942692089235917965343442212290785859908280919187188280585606304629667002814449741972033227402474064981231762110378730285641603988913864567325450808412448783769918251764272217645094625138107209086306381556530152568774035045839511837841995059137834017924544618785234075890127588171937322185330852707316408556184961495260040264751771948986618043351184939813965744717468005247708067283537695077734143510695263244409807336954195752381123878122173595138189088157216970020098070539645303392107793805232057917923789323783159320009160958164442090496801748073188022021637275825091417287773660451384616243392649545542584837108151653728439880971870982600574178656088316430135994664400371925056418081081649082005017297000922102909988637036581875910853508811941910968903662807790945255778260062777287148114624871684753911904250453752605210357194395963033187546557952650030262404271548745813814128055830445783144797630505478406882207480606181535893583033379674169436035189858233614293378582461687952381133970453628254400243565792001294483483083435418016470122930482205534588868524691160357033341426700181094113457120148712741426115736041655170793008902595460799688439205268077143830056293720553291410219430959852705016397997346145344768249982759977165880187985300599206658381482144374867887707409766524740226056331303756951520300690636080421154895700291614576691902721218899381897873109786073893347174617624881421022919466849544293136819132153169460770190418973014967272465988606019339336813023606053880087261756633451916747714795507675051953044245625629995983821804800821143493398049681679662385341822578704176949027719624425398412730739800800094866697117957664880412350310313187252583134459884040091560630899971345698798385839504380769493828463350235143734224545582791437469687149005063713516784857803802607060060716657112286148087152448651550343962384277825731822730334904945872937643194154933060146584377807679186292964601770748619095484631632124287941292941986272554580523616049644043952707793117829367980027187366403231364116296366101635354223017191282509511430713520745740457227122220608944317700624218778527051427679217565740618078843905041105945013782654070462127884501605358394297372078492818829427548338692712389061377014180405147836625974594092913347295427735780417435248317437697993754277457789758789434194795104976256560748722332766173053323550845181628700716810501815996696413221912855834664415844193972596965298364222610109359427451570580017429256099439446654209547638732032397746650375300751658922453392787897556016330119146971937423505283298575634237645306528645430891623399187911169196302346525355981496858212622095990760845496182034178584407936867496976822655883858786101535013214479845697327793473575818636573634751135592273285067426528077448792285139174308949998354643466771795574023579592331420090705481892913006378649007976766464392810778799408154105930092589009877749993706307023048613612724334284582051792317316576034286632436933915381818304039085220231515257440975242151937202822147310352829323603081627952050686078150739066932808091077086958921497406239419977529988279569391118085503459123920914890989978486302354861810924039765494391298137050062291472369988222904391503076197466133059648410346261270496015974296664552905119265538842789251003442674962242331381524800363798521390644211284684471600603254228930932534113740212853677413918066284343283802130852855916854412521591888323852221354507525447790378958147006271149835807816327635049883203598235165998402752033339233710130170256059906387416729661377881528777698449175580265948624432774537278512199017993534906444859442216877210459809607692084059591281125780829631448663188744673070863551403696139534884993542515296022581414027888697164753524842383297428431540696061776192023379532991504548225050447732619001635130196534357537257082195076864305369582500220331338694429487496096601266084789310561200211338901518455015747739730927561000182330616561266555071117553919718023802760812944166350441158746848475179054331131094990632718027526775951420798062550328124431074621739194543001834245591338733469810658521427913406044231604470427029499943875343350796206947125040009913472653777071124791643533269383299499366638243494562658345021322269449023438614175517505461143770928978266559041114318003413079194641307240398291692687854056004937739661074640589134926371896192177856417291534182977324280284941823930052480352762935690438322523001857000929677537567255587683253844323791173368440438831648800642537480742558441242581805492837681483519998453203628683571203851190168085842849244660395013430115957718390215671510808140373258538202577690538660457851717315901138343417221638627284976869978377393469928988840749636614809748887698407614416408486965189430182135068072161535597870354693242285235670807674804129692076618844378760571262340401827868161045762290617043424419167049990284250467758590632316265968937668820856196886814134650796273535872702460199219235606582551360003077811600508384826737908421072400570223948211898237163308704861583371473186018231428767810876285285872109338561667148780479212938010228873557366861758674735458398609141103285402851719657777557390449474356687920616731865736174145339794607633129743979381322322043552770657905230837100895321327801212562122549439989910300222244147063357231413713550015962477611126148223172304154533093918893203985651529871578041595669259626405521200173008928456385867575417467416005714203650480944065902534800846411328073420306865865995374239170023719259064177500237070028609003256714269571308436145872073432299927963996850813175586661441941572011406333557024913733374796557712740534765038175041796601960183576238452407777780266322281117081707840138869617618703602192959016386807112933201403458401846029500162663533483466758086001391319856760115474195113281798824933436412006896555442856893706068256724555541308650825645728967078945990362503437746343735620017241086489115068627904512015128137468385074531468488176578695918218136735778063895796348988452458667440197926325276057534347554470684665442973915775509007984607274228360604402509348871622109209885486602134624116886929947806750675849381105175976151292081120994985642939047250351077600078160493503768155437760437157687513260798682056434647044878194966667289653402621761041290103506738314623109331398809900112503935788198849920558386620669420484695983402730313037524207173461293365445795996639187390123572295023967042825587842459987592282895386050235301959395370778705572722029089145136827838079357950521258303815282815693551702960708377786774444532615594460782317816175280804069088426908821644072016649978697789971644836711186126445083036450035977690604866612784732598068366600287885844083822000572749110572350270928043750258833996632085725147038770963126312388703633239013372366578751610915435367050738771124360162269919025167219907809720342416136348143083809843715692365844754845930675791904456847070457191006745897981868063226666175162817166973565087002052457715546264563413361927058264956504102213015108817723397497152019630250417666336611723583264932976737192977251607565173754825432334966913717788384605495004260090374653173267653203021556610072768301059546399690793971126786337456253568481481278309724183635444699656664554405254361070375658301332121796152719866593870159214380299332723123325615899035845587909209357409558552612833067199533104151064473478860336266924067253066922277797602013830384489424289392229176133953498252182485839305525171146317318279320289032730134203240752794893780042229674565748121162833821186642162816405410200091341774823422092540941975643519487591251183115385367947537747211779585683073677907696178254328320169943475975442032081315758377481634836296249698606133782016586376968593182041101425553951676081615888065633350890729494338753289566531367038681223740130954275552853859577175702439112199734175999879250356371040305077128357152682186241645425519951626383537135970545724839510746976968139271793318517468332818598009982670306958699319443233012522970293211551806995496554199495347989799322335815146050865819460991054805538975668119869008013060306134728226098106610112199377050413784859669193281108390655274414224826402469299021125367140210532032970637308297945243386916293639081419958926901373141612481880538469995255386377407459711415671773043297640902080418618829887561215537478848059341593120397828038999219084508355327589589465218507260936231872349424270566344827812273991208547510518142682440584542772173129315922102689965446246374613391897354870074690622773372049850532895017575844712749682533882296561764189029947397890029176585326128673609540967033508817055917636453372434815978717050568675799621362021492860129613616010325387806433534602076433597675009541384559902292246252164362017659521370563108818602902621199951038606748431182865998128458107695621334856238952548659911721734403227286639462022829368926492235727346600772778367665448816598271825797226627539839161673148354684596288136532729591422185145568667251396411633536039574856326806204982497412502962899556900819534035975688949021885374529315224517020166451958060600220956526557967850345024926591383341928951968168461687757386962479945728372109157147820894824497380491865031543055447861988273219294923996751729885864900128288062932882581935647014510092682601931995894985485753938493783454774018008111063088555823375631004211785044770033906560706191145593836074758691514594617853044558812491912357430353125651869238619166624849575231987014793709439624957840446917601829742888343343610161673643580271178507464062608720124354756234925808659767791126039252659301184516547113510828876973530293254381362316717372069756319522993767905456256951348710027611474818581017852760077143091545923334340246501321363394221196727897926335972578785279983850590873169375731835831009418334290398915884436970451605125751891955446206731565496197327787010810127793546568671020666175640916646650930095599092568671418057893188699848270832502170424746502398474842321837955372375667989819210847246183918480980747415428951026736073524303496077687155437830344760304994477024529489002205144252716514230905530910368196839738334210388918671242386723560071333481321688288221620841848547827218644328100377117341381301410302696641060695540051363344310438215694182624959304399299711790875806774341155147644132193310332504944703995412187184816333042835681371652172136191142281580615517499052580729799192103839604421076954302332643891919188722106270895228369373895205285556315654598352618514696070127232257138265334846088151845566636845705966350064127839497089303950765379333087092621320534232520248612688834018865706199712563480800991141698862610752550736141591575321134054418635822471451892684837227103564137191484709945323333333818231650807030336872803768652560112951732377521597439402670704824866913271213084617499993612818584107664125869077378718475879016360790808299791636682652836420711408737596434460207566848748266694640555805488412628374653909496108823697209100239808235364840691547891291814057367128590233486817393692407871424994319848251682469629227851296092655412377763697400775408359282162562358744425686130181836958933546644097284876330741803735359897201864877750080419376688444629924277499773452296636395045291618109908218225666943346418542874569089088574109187209516703411332649835359319038188364571301035421980276618540382994404572232238023684176376581055806351851758510557473303145150841894615716602458896481646227732477289165930266968872832593816952521759298133725885291460586056064476843045973108256898857101442203030742531418109097783337057863777184156119580197785005465019267187287684886618398121800027880139268771059603709474436783233172024562216035202290628551795178092323980455599737229348888798156083816091940007566990793178247513018659678041717658551451304553138082168807157073642067747732528816069337449206037952744479844361777946940988886462213063695143550318579898886554987128350827343828106330828508606676901800247520012190393991653271594871443898610331807867907124773597480952734414926558868434138609904372532218800493397175900246134929207585813670348895257639431724244860956378352967315128894609445340464207848342416437637244353125748535484034933728879325842286805613322990414718902786552237185740935181203662101165153840747609947612574587012420733444475900914228464264470701585791424016101534646459010056863489929257744695386731057661757685221226812486189960437379919358579149892707199445369994874873192484363366198681226892226159625751551221819256897747562753601796682377121933111535074810538596796043454143734053741741710435070137391769937210396864969121272597554336499187386065762688724796506971083189232932993977741959462787208553497298166835298311069970030779925708194222852790919761604711476492410872879895028314552218168716884165614058757459302602566414356372833787549119287334372603334608908823957814213281090738173220739531237844656167743100337408205192105391657783799296935388155092830261616190480078081377353601200737583065851534223696328098998857330334361129319983241401312413291235700787133914984973696733208823029926217010623177172096450006699109603642535045295979622317403280728631988531775518581537472974132266019320164792020707114888788063943279524535652120124351233234869363993423581228392594236735692045967090664608290414360149161642624719204568058369333209772312702075286230579329474709194773382451918018912310856259781375443436024645417117403805134431367874074136390381581404855304809983009172049351884901020149534043936553718728629768939459465492028288061829635364751986949146937353010698260241612826127681658473234296747274104765803819233536934400177432109552662373147363259948755437792369042434178218492838524306612890427072993942788038403635739747889259768051913633949554528719140317522688235124101360640328651084052927246445239096030281617066606570935920643629143749368170274555447674237629208321402025046720174697571618292964909643501504294919796075910998976471282508491924098672402875306594790316978966632378228539736475494335857746168618174014829217728234800690171533508627617030043644657904980352391096665812373369729808343030174530642617401670107474894667578803432015365550948360312905910428995553119451399931629398476851377305549650672761908788454459814055707191244887397707071691840848082796343484425855882993142703369350073934637677949606465976540312685133122265633722589527094668699522054409118105755762278370808836350629355750431457307373337360016894083716602508986751373086812311935039146264721084649083587490671266892237383735181730950885399633956340025519883621651985817049012875405093488437816474479607625824845537749817090511134311555715481369765317508790299915564227803474027691516397643227000528290403794857029311850738927350439855790945216999930623634878217745890214254003083468544444142751541476106940176564727998466927153824486807914592694320346657889080313374898310337146921912820706995419371462895902441359404833673058254360944650160258731435871509755294022268496802649263840301579770036962708591324908362356839854391120559219862681319033606917865204571220080238341893605008152049532482728504461930905638622061062309391990629498689225001315497033645587675080304778893195884203122814276647675434426203034621098449989610817292371140261990181637914899330080296823727792500427447516384988797944094018743415996294469735345868373587737897957261387162051332968474188896768951118877856182331281842122445462558048156782876098258721348166810904729039684807684105345822195975503088858073734245913432066284658681717111053811551498264485581720827457730051349950721197453718187503111711688211133120371911788800655505335228817330409116425252740427791995002979972256058781910214182860824544963995377640524494056414482954460084598328550788707450461987971230359158862344808985933744275472651457271802314756413190505155879985697103308141236603609954241836896255807628009140687670762190311901314508439784931888090049733631235618835150082012366288754974751176904320181625431230305028245024816885959030267216342349668350564787934929788971135422715360251836053963407424402567795047630128323151785349278395052610589177541747695020943300002604162812283421985915129870367983009000722083628063104460803898280291826882978566593451074718645340951691208489624150963837949766295623293175550913531698539004108590375981156488028345585811537562162912223265286248055399934722709470990936486426187931483326664911776502044530800888634548842949216885648936944656253133504343880752355599812335770848919530969306457094057529797502356853053308663461827786653732111432373099085633336031517859839341772000534380978900884195954574700628253147676812775608302561060888564363581569693198991263953327407639429528677227564162138619266746213336711104561651079750127889620097974102792621584588447713580070889896799234605146410903352997063063176658377420084366355463147059995275098696871943661884027297865064358186858064067307352908758560964470579171414335149017373096395753991982600925810950133934887675263810050641779870618485366162353817357696685801609964723335190565875082775210137354780325749794299763045686051261402657789205004490189563477821678719666797018243608888262870792674223388297891889616227023356300839541076321074153602688231161896054033562855617697306139525438542462879549483746292647258359935961825353658012742273325007804463130225850798459806882628726070008465052478097249322924504021651960319887843384874892742855907123724298231887012050532359327009547264309340759559021398838452540328145973711239601237500534319599962000559628524946313215802021200352642874180137602886777287690331435582802647783022357157306493824830517572956230190639571811419509866637871538018098089191980965680598405449416051722419820591121800060956965867600104833690875864806028884775431359098023657826073694523568585719326587782448264374205918477597622688626385524806361967086443859072949594610199478442080410831955109284041458401868604591819810911557528223770485701562015479927980400806402427109028407128592737978961757761109672163751174234824294309631023106227701360052301592059848203106709436106570907398686025920704612443347937004277132275434576041281352642334036452573626963131696454243746996212078690059598846489122675668247765522009507147269971007692756895212328198668652098921841640239271631237886670047444275594603891156587763849518291868539800483772040056540649320738299285989104805011268132459259736608881596954247268783923028571793363432024256783559798580587012380625085862632679563905219005630721420643668977455894364529000168807185537214827110546440384941826797448339810535363305954390700811137056782722364247486319633766216532872758900564706493149019888217296476770304560445079340487535842407753657230486802172037225822011000550462923019841724515931296262102611994601435279766988083008732497194662194322942841319172787934775777742865109848342562086067172585424698601568284936962422267569881264282800567254254353004225438524378479196528721588230821716014430306715194112202174668876825837264093128896579451645315365359575843589115832468687529433839215394324989779421242753913606630964926466384231585603194552584832322685306011230881315352101696441054608880562539242955842239120501323726560479025879292805241732243660685179848196590022394071748003699428560017847134992962537124560927727781734767685791700370039163175171945887675612869640698266812474028311155851185789243398239751225699482851373694169291577104702551243361139561938413378760621929667807106568040645162771514674351874588467965025983440475180360242867575152365364807000388338854434003010393818830556328113226319917611187751412354376755347649024670886545790849994480204884074872775444250100747118349932076921087126677534273119466922542527501057705719165250831627732380322648158313565679262522803661437969233597673068740504718711508813784435396233055067719219674355357641147561450431500591725916437944660886475539531818286542957500736555347902812642132858672803777885798399367191803303196404807299831896456198103949772708643558068991317668087470495211319799485002668439095160609051251286891462932017529752675698227820331667596239457214728698238751996908059653470827206071196370533362505718088286623894205594449357796093464090143346720655215532586855589595341198568794100295965352862036185300007487246787750786022350814444493470452832930286548868623156089468149116294326689925161874379105527211412516622425724405968442347432447840299694864611983580044226821168579391524156745288503091438172516372921717192538602566628705758149193895088209548019642624537216650780368895440926220181271639943136469042490245975370561050696668001806152579084676379689618432611734837863819238183344268913922340701547657883620679184657609850730496135902674250759539906562655126535486072693480692327807844464440351707993581017968191235524938118339247468506212533120116299924698840655084405590439538716456244825449795037364008962241523644725474509280559614391226590354306676634901622784676840580032197644736980387409199592568015560453163378528343163161748307921049971523078620393014078786272888010787398694555183222302601956100548286418249673585764156386501711143288192400449279291382377546482300559951488796435075672641913536465867479363354364403326444676441470415570480625890647940890291833782367593825120105649426525370655634044407348385204451198019849819624882771002831048253257736239522540926448473540005622725344590450107353480893450063160798391858217080179227828278205688173320169106795378480939863796036841362019546083418160374291288744454278952527733456506832777905704853438350905584833447700028577892810828985166152442073218015329051863870637700270727398497147136371415234003713855426687559306724398553579390039033175044896327609465140809006262755312286561951835723871441169507670556075475568012252950126930837706738365680368392424992179359265162597676751169348331700906294075207787953547602285537939277388208776745085512839251539636355982879829190609141164349956251112346545473594745594906118990231703968728463266990606606038400216394123947187186771511696761951610774772662393667982477242391906208481114898950044457545806031407432004954010563208907134744412996190768241134885737760149509644918029825106218550672674729491935269262186092129501474512582368940038527699293713868440503454693405524946364864531258273338023644093556046620580332475055504391576457647830471665326531717813190806212439897911988752674074045454939559122941682908686327440738913849473760811139040143611265749101489156538937723053043133585841924376396482189270538463824003994868718766955671167351133981226170617053862477969365929115792586822165970704037211555278490537889129840738392741267692938059283443154595100188609000400099922728013337429789405084909088171961389328187556788659620766047606036284343819477464334617287790407003852495591563681786740774228152195525377247997269183914278095216637616215757354391322219614422385453437593345556670095053575800603665259490063258850309064105147218057579013585387554305180669347418602023170101611844323872089650666112391902931550076001477485971688571861053093921101042472160705635551443472775861895322599034945072707682976325935148443960788946431757711016536487395201732109675877351810501924885033568740876304050111728769082780299491183990498248082255774809799618732478719063717841426319214864419858983161946213250562919670890719422128331384758720436518810138522801801879548494384406266032775692083521563920140986016337228635606711781440193610763580740782527837975980757262998139796186233320982342467576996677884642197092355508584352739237517519209998244387979692799999154670815036815274328843688936499260999333668556141349347693349497846276640065164488459318784057936305610050771416028707754020728931053074475605941749877154307124124394207797120885718756134683821313838049163373012077274869290062600485017326551185926815672212513424752088189235682439222212025597534270775877038348896745025891980129076737462003796049546641979432060431205198648615161633048705288150220142947133591367726746210975821005820555289105348194447282005303096514142278174676780055878381848388955869841652282380822435924586918526890790424507107629310465023809252863396938463475486038401196942051050711890761007951810736278150992790478668015925736170338573155045656143985336809664530741904907333149597873385246094923311202792670928918754832074834387804466311834883004292114028334887940798038504125216675151369228957264161668548767974672804915774614185728520681842981914461877856732819573214973671109112622265909336124322923726262470936100614400716643898302446763575243452235559655530997029387461105987039029052605978794455652478997850281048862333677442884996376005576722655638483743713847822007747695194477621669999295507626859193757686818453925343183788794696785362951861622777290788034807335552497761004888632813869006550867074973813597706817976152234558108114926239756678732310309366293306145939748366602226440318885025754444286444377879221892253264414615150538443419908884988971556554387099203008430955532463265729655145075356845970574201433671261726342611370352000679216861073399244777368733304060349014440000086747333540024271883061828172181367624149120280144782508222860410243076766454208946482639393864116765537211527141303103892960479873276590084254711854126077073984160959064097482337200253878662017354279599131453574619273554720500192187551628805738468172291306405488606343874852449198195455910381127452159945543631672598303962171810301685766561075031394041555116116248697709400963372880381042982090816853947851530290781010584951516750926102820945087986608821337334576728767429177808166645927525454215276651911506502432193561213651281878942990459454416435923352759752127168090756523801750779090413432394447794745878119007795305280266648109787187594451587885348827419026235428038604729515287604170332947285061387913023154016531100863864944568392881361215880571114877597236764469089418500396809605332990834937321921585702790550143138846808275581812383875758813427886705737073429671204732617151347966324389275854146568558266709032529378466321888278956743808600672135394356099069864896283077643392006488044702761273220787130050019011132193172327824790822611427152009239984901179723003890115097576937074691796822641622200396629523331158717242732118854467029447510983470599664992474849386738847648180193962009947967049992271685465601621081281993908057969260754554896953525893328669190085681862951435542932071494005605429960085342018110390987264737639510317441951734816132028260493583115997895799858217500288417661113012008170590655401805522509538969356935698768490292953813894701020168916877482379311949892156129260968056257054517864164915723287887407204326021833398369147435821468527251966595706590487170017228901070904626377697831619874985664020066284045452902538208717159789005212345824928497936583609116500588944481587288769312812105695410400105029153989188525481215104171632811684266873502061743694005762955484057454032087540779226997859442757234805363351930612587052876778517476357217458608973565450930835010569470880661918745186347672087536234981724563623787789309761356341378927092702673516375245068651801828294663938513527616480140452171684369060571025469813500305982141593534735608673175509907648864373258655271355377271307292704382092562123133305134333181459310952816975258017216056336403382567099238251834919365086113705028480677018585022074406674763854652583845559602235658984101225829915300151926849098174155924187079950225521250744555178058323657722337988562398179648809650383737173668174710848386668326780143416820679919658285850806938186300967075697126795112929062819445575670612171540387660357523617145811746940315403551025846494760753303746196715947692676977028663438933332489403421202641245631760966291636173909667191644154569142597037331790432497433240026928217811342199627479419138012328193117998605409568021196609575056838095238920601338294497465805805829639821186065924061168910918317810489565943330052782961587100274357370584719738134625805445241304231195012445297638866630732408436919287898976315970908377023516075994955144849579388227631922150430007472655694810046961995797897827296169800566709217818248385847544053443014858816418593031442116980352629814053573751274238941372506788080479740463624034012792276948127686916857408468960624917594509271740387742443777682904666183904792954945799381771758010967010845916059086904715504059598386997413735295023985249789890422314986500285464046645456587929190037477370481821028230707534071466364994479304495744854646905272682273392533879265219780702578388117853138188593217393168471473474811666262693159315922045308775141420661691109422299159537553924969485573540728109236191882534349810365089703992260807648182914691421169998520164911181377305564416789267061341852696584170363753874471047197426080568634994710689629388044837800586230945148599291690186760659294951230220518319870738133288540214269105213721930559965451750653539579905304720748628279933524803433652095839870519426327996688026768753134791962725924219751472133779373141475936967001350926785945257994233996056990472351408198768603908209577247346595340761513210798780272531734339505364198995181281553613847519276077428764650146946294797394705299360095786925512175478723886944848320117575339044524172629631537862597018113993886872466072877309889834340071334820107238003818902927020575453693559183525418522048286295529132867904338814193654450530208860501449787313060271947528343729827330148201088477763111702940741947084087140588937387556436206791040266347139287949452706353019942487056935982480709284093581793943347615765217111532797134648725480017166362687818564821538283055290139457031240360726664011620143775963323540256334900984384014824563801973544296454881069309307114916749230528019432076254556868734966181555766566464947950775775828603707235805917799498767657828868409207524907755135124626044459298915452074596632913742075109972461734659615350440679176495626924533615670619371700188731262054197771145803550223868875165747149569888923507326272322639673530629642650341979627928033202850410126421477667552167083964147749039737739280312487611961884445981596771469813385954124845344547933452891073682341402949107522110004107080861860938353059281922128263942966692593411564021421057693991143847570925742485575914624416667526605388978427686688511463054012939219990827887086894819444250725504737429099811809736348339239575037037198477145426663948951776479843155926232831427158716238123917577026104950468598064616246838356616058736269778970812155810288983523988716183071550239370905604825253849407188897441759728437576265687380706298162991077594301594211817038228873490212301853285217882273625734227739614181709097005142903286320961013947899850820986391001152262145702747151480902875502274866373842540807230713794985677099073957997841581325594622732385177918281167865214773414664502896799298017490094215982525893869514550362586920780865279286868039792390043992335909191399830628876679079177662969284744529569763998787817115329163153651516266671106650382753259664798796337054826091239005692897824270531353300622441032322364329499671763751943776826675949780382746762142703878479374744383812447169803473517935056566856777711500611159350802537531871322135933081313237032778671137023939693095618793772744715405095312889375798269768185718297390329349322939758908421782741224144752094315242258130655277568324922347066298208559161330879780630115182324132644923703063267682081342697420296187379936687463568742115476805525176812685711416211791483397914604009456605240322761190196514421183437662607924196116215764356826311999384683089475658308066001736226258960741616663869158838034222381488284509007731832744243983140283416442425229489322160634506449429178399544187839325814717570267653077467997932114678109588354803291990308251340385890729139914923801834250791649596536025764573980474685196072926587273723536413219484662881161922505227148072752864103739462933099464790304774218171962268274219541428696489300776318443578483380490316282093037612464078197654260519933293337039648106367898430481595559706708159432097449961128282741559349050767684091764766849862227485390987092801886493751033244117868222440940516589605565270218229903433779701659519556883165102447856222545874218693326375070521585505679084218092005683501071380075027119811028525867773578644922816972812696221037013665734836768487760851707645473539388358849324086349975623133217271575850195386949331034364939172744549633663031718380329841497517179422391212945350295898844633389141723355438469049771052999052304097159237118619455448996861329202045689909847898121463601431907125657488930149218366159723221406934660201364642277289781530390491863658761150534803928447070787982315736479541331785056614721850530644743127390703261937001079744171024041802589234043723803979669489691713406699070066546729327273363334358117324290072000863474098866458635541380441188510758435986052351445265261443841670819842389140629508589579774885696736331406261370460309831649830178318469269869593310331364149202114793978449033460978113723159353800280350782950122718746704187102844905260319826668050428520096056269875773345106194242042401245918785261236094423925687451045674598833246444263542049373515517222677061098754647519043715459403554160838259819312065464322788910604758635748726811658539624216093091605850229716567928483754905148793733913422854429303689794080858975359306361744932398387544419655885956663029279587855068542961038985831423244281247859339272128439677217363048933823103014468413483416943925278968387082845023419693969492318764821955844791976342689264344304995048894807812317924913442897199009688642752848268654884063860642386683451524790377253930353385109125240348364080852470195759358401445631640183728896557926573500095589100273918958188821315392951241520340408451160358540152300020114513530416152203144714634150497333166831371183543658569036371743372951199769853573984424784878773238964876820164749554426359679442713847604713096605072749270805728340274991589901189683955178276877283639285893754800770888306712915940073984325771467562136471135819283169766427378418017239314214958740896281622844048046251324049281109586005538920479820689610335433153361497316898154132110607783518459784145612138955255949548630148323424679666468880536465095918834107655921626006071005874827639154860003473032907704646706077604928214109049155362635075302915132719759671413557940754403857206181989675980414760904335068201366219357000697643302660985949446635965461555213153511536909369807269805247088763819174737943852385279201165079669851178954620107282783796202795652217064291999714501362912046999966630478046484149839075768004966642862922466539924676241154575303216928483357678260490309120508657862998578088078435503986988079584598262128613924834448784415108092106512791104445495918994686448247189089785632608208257322696774929912834637210144371199446275883872436045505188335715052542299982431463286254624930414669340399487640486821371397493466673446663863177737848850004733916846187900282136989931639552843452470537508857233830410884587996937238488502804240082191563400143294051891081214053618237895496152548046394057401839902665289135886352034429449794063526326142370634288648030161307619638913208170701867407136417155858216025562083975296620266102101224614096999240051871581199638502976928135257973769819259287116004624874082864917895903775533969692731002845606799714138820649106810464166014332146488644888142095723176636152864342887076926844331021779366320398612142866092036355337355318539595359831484951754971091046082500329209124970129393896878138346254407822773995128027920134026664779216349468340842555854334753518444184185824513850133195653799478631772555783473598352680521623873174276128087986423713710976956904657339691498178088106997396383708731018479898488991684801092928536308061139438073713625287307897327293724494732160816588597274180456650011605449525349449770662140326675444663418660150481908529571293309065374080247455287346470741298104623761635410114691820942171890118314490530991839949869694968913765298675475688475633191546172532234602092778677277913856131402622066956641135591448100342471173551481088348424114314507037317255458840745247029543559513437354767184155234528318437746973481959560537525754706599982302062001345866272057678162969081208153857142391946564351864244442313886791486233967656478426507134587578573826823498346315486906470323054415565881677494718467661782047912210052151157635706164370239560891172071286336507989971300229084962857332143943162951014512310475629067582257382102675774208241407417934249851629038668192476458562695819881941034940667818389548663788730762057455044440857556824558334831985100333433958109679868521353838169662259976640800757717256246831090595840847905948337122902460065423685315294306977636992425548382830276210137941831886892751905560379140932716639076246659949287597297596831280522606174878550579645548326187336489103647226246921722564981119933551470299038669747942140058594715987719849807894632053465362443974154158869162430657640507980884565778272968359617324330621749396586659989821110791800258180527805377693961008997082280990003746575295232195441322368595134148885130276177912354164952806226154048801789030101742082068746642552669748310151276492775076312915173900500809466459862458979283127823736432108020968465814994928585778056002683880786990378242516888370292951722873862237705332546997049464570760816753310533222853901948924531118929546675923617097585526030413128618418040112577906290621451144958828320971713228633816085286383441195214851720429878191305177444273599945051042170036863981214355041425707616128714280444833494906556592336488555531498431525018323226631592408118573418731163191095948299036297389432440726405992583603315943001871237653369950618476677266849408961087650808588515389748187905389160255630055982545427173508831520051339037956953440823730935097120035820343843985007705697689563167381621145532777421354673653515714226660619120017257456635969868662802203345210120688855435475816057406128675981760995133728108522300678740758728847815194778295423722311779408254552898744825335594440394720617134970138411594436358634556915700369196696980600133558487127343616309760815085338956789724505969731648531208893781820969881569425124373549079531912961452742239155750751383268165753512292958198422781943177484945664972770237399797281523735513562956829783466074893801672907894927944559141142582238587063233166110669536706893734125876971255648758822202566228059714868150670283183434571766825815053325152076874082834532186135275650974485834959222984636381930137705917872568398760170290327314350416643001554795305738870325169811387038825373898976664765891729654715801679129020805344816860350662733608092160082752103962150780788824727454579959601085727009252568903954710178008337813274967058622676347226026811219627502388522740926104839602716403204305862243690587027098510624354357841404956267008177522861944476926515029134851635486591110440410285376056864352515019320206235159645266946381281959384577901854435666462271407196713796663710696223893216299167335981148294038711453766327849550209778933003801438056847259718758955653174844927425233174676096077594335643264910636635090497074569425816675231189240757322401714156329826334283968273839178774697364281749608169679765596060648590288437663444523475278156168613064491910550519670300150996509286328857687509452228157641129624051786688847163857562513143231457804707409294003478069781309335172243230956426192725669610098805569491764248085423739321753435719718927070810283177791375072665364835653900015614059680288046483656383516965871831352248753403273038126176978146138642026838990454467763339486320589720913015744642326856128094993483816703577832879585446271020608296724925129812626951564546643152397537625857527580659751589693849488400459747111708023907370401562008857867384432361796083316562378666384693301182598183719319920486481944608965555301520560561432040976569514491553994427705885833414262648657971992700955271661785504782423196753297626698297711891961380860532197505036448568660261628276653498909516322146141877752796229565465882913132983233323170719781404512046832182990267366688542097714213336496521800424299964774160502024428074607247690486510814553192998305434276980777208287917328227863812439779306473659670682676240805642631819070484804300316466801896620014081436440071390299247577395618063716044536567660642959321164286107832842338665073952110378455385925242242122974242735975000721876289982875588958937580446150993604015433118032397983500096470450926891666786433139530129985495543769690221139027749403256024692478643460792980272734311751142275607709194024004001763779497601073957720486585274351740971277661209854958748071092858443894490268187419360151620598179869777435370237668114204626991740751129678273759816643699375213768539557782737240376910818528859400044309714935168320842480995445748189499275541069636239001969737729626889906357625872299711278769841153436459382946220425883744649369393373358371538953073770275101906682400471585177305192873655358562088015964600657594406902520948012655207639693738797335996008817857267980657240570704068552707281281282364383527151331476250194651778572190048525236955677809061322883603403682566964117699031569817740861640747517579400613052121897252386752729865128161331745453236738966020431845863048557951412075054224418400880077411060046988518494543293055386381087746268434699723981471457277548609541273476992373749358013309198183628836184229780456044977562537518568767623347099522831719948373959199817957554341267804066182213743267989901875792676271631480141668993069330099677415778085028270370754222543652208390696218695677467664449738398734236913576238492237936906714342745238097865537403592557565493697359645293616073372498074276471687358291822226520444867841841056311271015171790844782428216086212249380718435812051083574755914553730852913025548943458775628514170069825389297338348330935128076882878652493533307671172915315962200579550627644293429517869013132891201253558287093261211374725280281174030196263872884670139769008004471629224798968744401786576875543819664778362905764098222431546655257044934347781003295315204952754267731120529119538444677414462244853684818373008601364946025726608695632572178872232907695340085170866661610010667762855737260269936221793683465663222303354613567771708905110306189509771615363383298651110056777512483009262578043064951333554791624247778071585325621123138703223994392118013821739633894803786567337025145717047180091790106839917715403321142037417592194557600784254876054617304029794704538945570860153872574321813900769337334686874724565847370402689660397102651667096425100340690190043885075902539552040858466286750724154465487760418110087957123642266579263204329410522261174961873684467146477655579640502327002876140266552700291527364814840501417856832482395090110949880788868814687864800581533599432596383490780694122220903715586300611065122137112028542689277233540805400042793687351657454936097989508608056074652570479588823409586261396753540932133478998749671380115536451645099053587504942403529921138792421710833187422990179755365164764161397802577218606564003010690006077078678160345104842262156131137548833222155442238435615117142265185390735036131521695671073429537826221522366056826834846623235344372035299046427764821000809218046412327913776590557153594256382922366641060398054739374448513198290849275173893357962377983626839477970855779730627490845045245498159039782149695722426110736627966452203142772950351374137845891553260722075397816656800643042721072301575203970015388237597951236867059333261427025613473440809339403080703612324013184238612974998202326135714169107584884370325980735566720300431099306019004487766619160366213838323930245754609335072277343947080720189924186854188862143831248389571729375243957058949397501494277739240822675724175872696107357955909115332159913997616292246026356289634285504006918400053205248623410225945127765095798033503458176538854339518238547777825797060975546130086323718462527304905421919024559651529088532827815424718508618775118688920651118567682762436000045203469694550337582981584737570563247121138920677978725004956409879799830325139404056025352834323119460541188495722605767362033711538721407785793644715709366624511610710454384716938861962620834136298589101903612684884521012730593241718618495570204676144998514533693119227445190347465678905330224677990984631809155842657418284589873849311916264477318001265542971211026215989937759433518978422563439837912362054057662202642470727206032323868056792412767071045463444383599551744256833499629414628965382425360456323992988157759604270102929616125444235231018341559904925674520005827356981807299959801186962213489898567457018287518209585070798670748693463444102788004192214578655180713363864363425689312039572328642145907454146482791175110658009772989939989698207302022283899722196707741952513903720423118565588608501251529305276063583102148303501436790844201671136351416385150928803828761058572171552002818259417742138842046579344151997464458222172778077470863654963581821938493596420063519170092260827933275928136840375472299599668163366074564681697675493324499979383587693407120821952835010004848055366526675791546423566361099789279982562292001603749283620149215214937375913340522076211932021977931212648117934773456156998167387630901038817157863246192601555213917265740150649320585255330316582294293323817105209032355526732435705816919314055440415247813404640608103245142101325661488915821188268096855723928707737331956878158684230352189344968668583489789740425373977076873478975719369954056612874949136673895047725938383740433102821360431661661678024480514905782601037063685807437523304906875276712610619650576096885529313172650589787518434228438393496233540848201184239269898460668319719823730619458772096541422852769181030131565471379894298809222996272944553688169665394482761797372816515059421361223608133980392505975102952410236763823970981426958392124976061190133332383173596500371834218769132654126102509365725246621321900568361494020831204061325927531534872220464815696137756525563149129436272739949168115090153689078264980570823579369320155215099350839153464741008493492305877957081373246824057143433471707358347015093243482218964036251327516509037521478610759252502604963376904670274173453919056526162031943275453567338766875487728704052092860901137993802870318161744065935898087488967143933737307638506408173537505304084419251116876695335032068164885578161680803366216580498723645973044828242203540584260483547752783849214237323523676521061938548427619870857964563703190618655373351424381176828524446836981783421908903032806515094480611318141837148936081714199521224430091055808450948009003172011435460611168189168878856404929797225623606716250331771063411683152994260797703218961860623485341580649467465313563096879151234173160394163070221446974789366057854207397841553003065934274144984021052647705622678775335102860437970727248234093585701000202017070980033516661560847791671740775562746853722144055440460347943181250180528307547538902125451808159833763195495312647829439345252889810225433173556283120446970611088063770229955761923810267227950769543005457636075711439940638912618064900768131556933204452805445937214797754620603831315144591356949208629143162926702380811312216782263068327658756403487691264687386474524084604157467972117876271754865008734501612600935014254929984892431692234712494714716174801361917399055474941929110720698158556275704396517544515290796845666181701506872655398226967473941151838009778794254091574501434359496860399467001908451331740982205380748379417045658971958873468955295083427577672102572403731315543638913564241662205854441518561270916911381893611522823853387320508178708845793152115001701838343307144066255153867404157160826075029045239728858480115569218444037399478068741623626486295641747674583724303069580744455819462257005016501177551917955830848107096813975335514298628867347219851069250209685725122481370655987808095935471677598630707808363270038303360480099349118969437154765397887168877681772551685062569823907516645316369318018064730560289481694319812817915088092992683593096587011410883542378091841044560367036554249494274039292991103931067882465441663685059574884468066976955284000161242076557799489275465259604340559515476774851275928760740676208115878816161129393440573853824031216257797630870865257971528999644457031822853873674428059003537192356822227886600666056325965207026612711047181050198837672764194107029213376937959906303891100866820396805920857184744152804959948283447844850695163239214345146902106209155902635064049476869498342579762384837394804382830734347156925003763112625576087865819963295588559177342544267393590500530160223123578593221070374124285806242205470869147237294958342842663387663091038071092042104056464210003251028200504584474783278993185312318917573383212727132615462033669941705753579497833840816043330206893484614370666430779720667841142898889147383267948479915179756564836659989718936945010925468587323522930220523616847888191715076432147946613964599789765421382379600426354321321574717800695620791251216587070488682586951662456509193003251723446324729252026994916324827406480707635806283002975607256934785254572425556128535140541217382198862911748175155988550902439899415982566740706208486254770992135862875344981706563812347967211977352907408068382129205348166367619019683192714419247370613756686934875624689754383951466965014664379434986213249503821827174415132597692449465519733779975864877864285636399715788637000593833130655454984807097388144395321277723163165165168633375993730095257158853858019944646784171344785520836286086509867117536751031048961338009487164955644662004957375383093785799613030985223312302430594954653050490366322350934047149089694991223006743640817000758066311959449130504983554306005838305065199595784392325836021932733126817667786866096401484527089556547172215364845190252897511517899069362195113004090335014055441019623431863952222457561053498916550852416056031740852941383635593025020133812946693743691914038492015068021490803782049689461514105441553490538939639539295744061725694201552309717158123065971687601310972287546018368838265255912493108345792597715202397625949286756725287482910183274712883348399759462397369754451129811973963788041338027492358514235607147998215815891292016841654890928604632018185703894356987957944455949766922815983254413237912521050371088876508887115880881371656629563759381496294785536619789348127817099449756951375543150331287638034697477258308877597328425363889750863232262688846942470739552684139721568999666634270117959341770290369890625188286641151929194838947859556886359699737425146964025360815840456938852186510921782025152428831239700571856023071515743917522729750144637924222187350258808619640191668117588378137489404795611010246486036008961419222549270022575774271219965331792410193493222833645496286006618017198894620515399641066563466477949161945455045160945572616705972832599001020266630010339383991385949284393096594475236224960672428460124570564828444430612511300148985116909545047228739271517355912209892027446344271093348210581631777301066218680350237066034696381032100908039534001397353259076229759385683958698167466969500946134518250733966935002959486980247202839550276120853236703622787861539080096462092169894679747361781016343503129783666204425110253881704794330111422155308510958205692479930257341942240898758096525612889520544538323837871538472685208158996616066587803325465128283009604410774863982551357630952955579213253496686448768401999757518968256119686723167080599624815482709559464329144222948469386711389205680150912833037390279254576161732912709319498066003123636699152237635788218870623889039410666829059775557911436804447341774191929122362786356066251256899070319933068306786538641357729927916313019003237605454756316755187872908655111545826367940543457256412347789855342251254476142613161838212286327832331339071244192434436695270938133361998655510563161802090679910853089820059190353662488636297243931911511681253839054025109835707631411051682552722667812713024324947571343267874251361231213742771384436521573156340033614691139132076543276243899496749637659384280913035860545422353443555713351773566855365942178782195408917098845694872486360345508959454083246897855753856471395583778985542304135583739474108733701124296046492839456744064744793325451274910472507408696457390335962493057279850869397972257862232717054577963869243087365517462363297219243822422635049168730983960948762934047372025453535037565897719485362037716750435317379735868003119548097890808061476329305824166166721858173541284490594110390550144152618658183792724421091895140073135542659365112839674017810326546150934357778887433741041566167874194871982011763543286012019594589130389715947397354001846930756811268813369064453641282150951823561429395942087338859419836265933654205896502560985684113493677975675096592742580277206479340597484308670857245286701918421697952612228758537727569182421167836227763062538790120644146874956872711539253853198838565930294305135401168962539712352548471196248276835740806713961522328540693705799208164319029867003411710908543880732197793024469105561574555633215495617120473919964700189898639602631699535841913249622097815488044318230815028639331131455069454751050151081512189039128037312777442227174319020384254085337199825514487003689426385286256604695073678752749283901084287705353556892702724893478536386821539229109433894053516091424359752844197135279873234163211618417117340387421784187201442946964493788264943184509790840776501528989796507536318287556491135482785988039698628352631445539911676375283969059310247196621914258195175506476961969564593373127484125842942058425276630266788176522864947099521931765518075775900129130387461782977617980094993712755317451123897654392684880984403888147342175902810137259197419597191052535420181245025396583460586313059074485619111788058420831997594724571374551741625898924472812858571246185854682159601151307290237884314967348504914591954382127526639658402325749659619109949874912724795026736153234797857025393254085709622905529305043621771257251143933232814512748539592181109271047324401331912565848571355086247763182422635720045180798782002332448349313146539797839850386627525531000785415578353055847921778413121236546930534407735408480814458202897985636101774937226946611178512658843715636351439885757980914122984927638776130162398795419613103953206377710161514783591429718308101076160027824331295936517938591680949984992427214327590958770350125119690149733254624473323535519334896617007125106630808663072681012534992828898933182545044998317057617177275715124499993931908975397594425689182627289613237817162985735649398719812724814944704157371636764648698686208432195279279304786886602882394751581239862387951090544804745798060872873921869610362047660767496651732949788024344070839796653537993398071099624119190470499129260391947591909907855501503452084187374046078984107038950219578994096498067674935054461323551589758569376380738337275930456159055957988633207815870210196361899545036598037852503554119089526399096499891551988080933795152866133208237149361973750739619917847671060740040221534003106651595819436836858392778695444261950139371286858399115492199395268550260575897323182704653278932379969358547870607899443271172568617285207485606712684698072763608353962495497349858017940839837256726014124292701217388019060678996904929100010666397977058509890159072222053203520603642315275509138497742928606831072290573996614414282188835872617959122390939391285389986779176867985840182405834808298928400808301575830372595962983900004999932851893894974745403764385022593301209399012230328077762618863574545722488598364509825246210629560311308778349020370715147306605935338476657993705395425449206458517299650480711675298219316000868613120198151928621820240939606488952664637698169399079306317363271927203850926228942191910293325320457770712933403672014183544967858397322696934587855630371159016973195249905800525718992550240247357781498242094411822152980493742980265137517325469859148041382134309782291281308299725982121697337451292815323268016666373467887733003570516235514446124199805262439931321811017151098030255954269181722045249204009921020968955717785062063353795179721989843173113614242047468377856572034824160697887898392032882287358383683942935887434737025072120160454503111949938208696249272236767729030220146538285660348108363179571505208106577157887675137927696486370084040635281948181408167402910610864912398592870682161775898999587758884127530648610108598325987990841302243380942432498525787112071510667827831968892550498572894265999422055934399547271375237356259861612798444801733245085368020385324268598720342863047443862578487977169216460667991080701940860906285727004076372240788251542270773368127139212196556895098334842018416270814400166093149691280041132964086439392738738682055337393245331361880604115154600716746145753821342663967719103017793989415920885636753638494377608426591326945555775370748158973051167455198556318750996935654775338682504518775766683465338499475322967162318886662958943210094550771575046575787211004080734819333384517318132029994957144059955699210630332850601271864106702787224652348342945404141953427343445064863500909252163761464161155095214749313066612128428578176019567215328428379542065636721826677584901284770143872377505315891040305563436264518112280669584279208837260155298363141392055024129318612152437367899368616712772478078235476725303384278041900939664058564372674371242464315385401706509381852919744513846163211837559898184296314044010416361867175852820177415194453292030742657186821299755867196058800696832326493154080623431207974561741498752454653821410063185700149342589223185675108931204094579143813408452117856530471937406318093469330765521122090565854553812498911161572320052759609672689836131873907607638348035493685254287730511186730943973145044295142044387807388500435975979760578732100259521838504270859339213989435404339227146797915308213967824074030025630914187267262414860099770061445766448287781342538444887038450628453356591610665349365823409008859227370309670988598800843934676608734634841474207342291653749299839979115242703309932906341249053037911749459114606854576711615528836369962999480865775512177671181026287678939889658832741116667621769136255371028243029103824775059812864499755105517322646748766447067954403819315293290726991394994736422285472336654633230113975881535962719110399600944967988915834667128492671432164573150334723203689006439710210077983568800340587457542359752787102329869511042185418865196923557045253683998931656575452189021016797734798920948088317972107670262389856374460241577222791388577282694305984089577500672206750089732107376651260505936931227881853883622657036416669724786016941432634300343850147495336873191739969487162631495008706295027922405580265915147927410305973910694394007515743072722633857445576543132869781244288227236340074651887379402881569010891199124621856320717004858642051721345341963051141311094749914454659811406476261381942510975855856291387189146702043533171958404095772045762952021654664446808375527780131977229615584545875974125951462710932055818424840955821566444598546633841313389836750983430477769132825458241064210860822105994096775281441584371017721391545553766373274821202838749104726229150707175952350491121561773923659092846461799982513104353987890126126397805318433755577148735926031666301721618465833833405892728489554483145280084641624646705728804595830578554644894818539478676470483131033388683761759717740106551937037381237670938826514447447596769035948851139238918425440714511498956893038867583596406527259494797653378392557095226705589707532703602642589815908474268566255159323473974600483442135931519286058178839147377930812593547791150988417393057377769653184989652309569393554614779786054506250152182858377114377420264285827597875063776961995939942731418786548871923560675612659380556166646060440124909059338759896747482440658819378405311969583909775379441351747619747850883895401546570651611131620396756895634797353558125436410211640700556603682425216158713029713361069183252836514855793588549333726561698999855579350604890852338734890774736219570306032077236182610880321638842590939882861363808150850571670347258221715182107465407164351712049413809378256774185351653076069053417590192918008111117567641115730184133464087210649968375109131822004670920842579536061375283383080748734936935976090996044359349499312619670097373957113600215336232793039284064194227682818304273630991136823511580051102767149298493359574048278735974450415487597849550413378425781383157299031360807767950197594596140302798666259999465078538257904685096317789027110628230384918580570137900858926884387399668092684219780927078357396246170713099385533811851678339033974352884486852930431964289646485107765668881221878717109972209205480599119321017932780746996258153006219162399213165769122524476745340578216621339116060354364231022205629033935475280336026931858235594140778600682504059322721963324141146325774304380681951332885570598169414620721201357952856605583715988559370898248680200563516014161720261570073214452730426240107825888403585006525104596028807051643686731815205416734673958915863291912087069203813740974470468605670867393985743275242794467682560387387761240673715977531754353062137934753443322460983203255007154731097012443929959904643221910560910928548339670610408222614065053436596461544986930727980340821019455885918251524010546019880099774873433190011862751983014864466738568457830590713736152366401190038491859739763745656042431430729742189236592257525264174297830062330155675922057135054611119220163150170931730877296742108080583985936842746001432765975059806664881211973840916086964732961165892370951430409800074859982776671199481684662256408402635111544883543565275811952836840922911155969493852464757860604543505467202428294807630716769076603175864535666120279523592931185953975129054522601150531873052994673015181934384971197149120469870712214485979497116885627919848678215677183681440937602648980959690012071387555209437900376638704706119771289667642076609900123122474900472924333728019135528833539486348936738739406008973940935152597880141910985882997069022566615457562436801295586683651283150717237074023816782235639066236768134347779859281953248556117608194357851832221117900721452710426021015794069616761860410518286503390104009742485424226158002728026957156691385886803820673563285329369605215426617865244293094626503315617517064708686226669784945720017977464823465860925567205234813818040962209691367539633770028172454365118032215289022297055790310156685748539628709709768189371944857899375847534403102168036651152617084633302098155744403824014693572974510114570781552376930569664944318233562971137970679318874647941920841944787496327402627634264938922626073931071135186718119114521841279487610870501875154484806057474854998717961361265819996679005797147842865480682873769292369503625256197089153125743530650794917988106440331968757068515712105315507484401526126538669449143494245447485412197222321843165042008586253305563706512941253362699600872642576444696747207455262293878693764292260909483044415938741354443070659598997017220893465390229388705070519300458003632252868922587088058876282848046726335488095649310957781303874088346078565826463561632170850448113628781084020886019117064884393128997309325368843019485965336035114540518137311631274361824493725260537274773742244466518402440453575200662121629438380900363652109133156411606808758620023292484128186729093557898509277448481387176641114590862482219964264914152925936019741860950997596825264858263815713918539039290703108695883855490429088575059601518496569341144469573533605517314001196437202782880538813920128616844606887298123193458284536059831275913653797126272524853440616963249570490457927190070265945640045164058943977060079548457428046794897291703042708037749361343798564928086284770651921082777655007978903416463459410925448426820640589580130320082087266904198961720291352117511374483780441555158806004058237223060946731109439589503536729669521165960644201982756175832520100252253806066648851876089149149706987374639449007782018964593886442868729563588209940149251224750220484948054616737277998546266407361394952478980756148465554994585226864645491172345546021701404492314184145014172487626062484684851911447890560722774683135201411395533667247187278416144616243775604082669695462574798079853898552304152615411157228475745939756329210184197773159011556086278409472214778225908901415734320812569587033024869641668967836642401632391328962110943084933731963651401123345402545408915588145346802818379471849662831233481663562821058441997744429942187418103655390614840866505155227480382264959360491350862559559955082922023568764590515888768368823977718313916601732156416258195306693158991520454441651179929392395474140141115806368658056284506435262957267593296960842974117276231982555699320211619427334465744199830025167857638632358325945228813155060226924471821147742206321154538605226680578174687862161725730639436255883075297964908143680272446668731976104286833443685880211706441015330319067801200851964689255750261379022770705025533702916683298454444184765755722518861829884879321473077306347464990199646892602339121584954936073116406569310765817053475319079270931486190595744280087658108397787545959661345057076848468672923001415759067607112520162516225339740158607124401510094973422343692488023664268918666817304706239180194447028109589514030103336209060462677588997977554335979990850877186638756681531918296230479818945401453499079561207996783531758982981841696663630711884169913836159546166675634644800828121505321755377143594579400426111274124740909262533868974159068644681337819533907455965841695118833815666133320651255267982878607860373452425176374535407983083997808110508417762978492026234926093640573855918320557981039754437993800330748501348991954474811379133181788085896579239456042951866745464095121308231612408065805436601065418712739746909583026026595487755527781993277275613650240516806411625647452221284660856386881267686826232901327033435787431406235400667674016964751696569267880340536396773193891565527333452974782593024619411534390555082834379273832820791325038818072133130192703277324138202613976192446908273201665942256978556174331571013370665135071486844544221914638306526797122934290022734500117567114178239615926397352564419729951817428388814462611879413357912812283649260758869048452795565438006280621515996904831610539608752028107117494947639586308127368855889847913106425921976763639768651709625968589647462868799940500766243414652292705998659535291165214564405587865446533524339660338817162671929491070353739492580991020249224383629143076997621089789398833008352110488669471212231043683070143755475237611281360615191936908471588857865820961229151780357686000636203934729278032387664461881410001241353205818854673820221057840233790979438068907200772806245358639931490945981725569323605942241270096263048766332158836826699745227154113872861263928773816217079832812638930342843828975018719342520294263893271993337329242806140839507315824804145861096122916364177748032261057631306968467599606612836431766214948939781124601580605227878911033092164147307084535575280638283163389908649869603246454959920991592531466770646317436972290756529263243876462672413527518525520215658095603140413616374434805553249857917641916845017861097428116600020806261040841147973561926092815028088233416817468512004598927923163503684286222841804910048839691557082934116084159273696881400812529029529927884365532506213780152619089459295369377869101916946019988880813436315109767532893521725999503966980554481103641440297199975419744147235002005182775876611614134650418175560679450821914058468956141135115009546023882792870598865834424967064050672001169462045104686876645746417975200922522048100523250914137433753536630402372831161981315384063653259028937509135892401487063169226790501716005810339980801613491221042526961312073225192803309901870466858759624240185699423401110072357360101014049137968591458390345423440657642647999696405009499752912067801203322068393267627693310000973363848708691943361836422370118350541661907423854894903366820426370868944033283708151789282902218343252302565584372620267544981357551411494292869382955212338713672507844282256017525911968317073841511662500436531756312703996750989317756107512477440249658467354051918532846438208920069940975948452505899785746988767444008717958297540413108614970130509078665920996507172580370701469208031472789159972850793921850666203659105422715319171897149323224218220498810482861541986050864694360857331415385467258527051148517989547627474429318717037621088055134623835240480295751689370142026452682438519353833212548340344741398290268139481221144423931114768315610312822200213319862965871463355936272130243341571815334125609311728450296820325361260463316248781510336262606269736653654964718883821899242984903893052872924485135505791266524669631862137523699995144507687355023743997147798894648395629070160398020653569594768839562381802723171618282411156567654080230605882677212602283899014759499582496768290206329000389580404628800443198456819846672624757082310311205876792883168898540828867460938602233521892905889373870569619921462903384540851570112588749683256354544816491219324533139340469097824612740370480046477111823292754113214199745577975960997398960383941327357283459730673348753822264467557602114084034696072847831266559129755493635785876594352327871703097069637964628655221960287283300855143060768445428378944960991611700709581302006678755789353423774477443585013869580033136782578550542971910005666527867252568985746554721361792423293272728361186285516242690243845647136240876171080685820057925683450733785675537740967455811756006154238831365685504637363183738559097076047139110172654968759828940995807395504547276619434750252297763907604234209236482334856264306341361965758752994511378485716203562224969242716455157337289065049286623150754342634380123736035126087552179238473169426439573465383724936229249495211937504507329031477235672651722904290093987936881175249783319539424798807374065719320929241264825043228809335833506272218630282465052301623999153432870358470474834418215385176245112795636019270075672395185081652298718011055067700959096153717293088675584700128239409837910450803309463614674795982465112684666772784184892129528810972867826865096731132823237621489134094352340807674586889783424066619616005144420352477520853914585622948220947460674812540925030572323515916717692340308634167271281565889565365342359474231023844270226479244669363175606173185854360663102335642648308692913991543746845651443966395024164931746823799666473243755737711735028218293856035965396710438679899517927153719196575429038758622042583273088844870348056844192036587937490732178651595497688511751590301155152091281461967062109133344246397996858916325177474341853405539306698256644269491064679431813928634744034101303860224850261160266611831871201849458950111361246283506848036898697456055793150115344982746887830752070446523982320395720918459474459675970309428118312113390549589188231323616277107429529742858238736897578783820175947129312530411684076183470932706544722407687760759660821864315914601000201358663839681174815420237767344092345093442702318400485384474489882419100663661196421819513136108403870683736660761585522562421925689443360824181267205956536824470458974956811694275803803513326936554253687212988202564871033139870015893844092520408949358314396209164955733456552397154261182912321827131702601433387965196081790759530782132542359753231432945440013519088225604765955967625496589789089460969357233126445053093490657752337964925948157844974213907386361517411632312449451035068880509085592082235016373208617569915357160202836175120852178284663703438361331351392868854537480989058136065691293633890643643998925216996047773266963919779366902396603840027675129639205239169486882568414647874174890372783048401949236310028045457898567140389209923401375690159783540169315345891410728956150943129435490641708794772660737027680756772891578261970791965666895496039318096062728736652368318811570604991650424442759268703589847202439550892712871533071476903613441531335789234820087471389977144949934153446035118223555013686408384484242627037887465407576333136803943123027204366896882999846790621845139611809847862687775704591203443505740863117711531415067638695970157821580141435317004124843161855316590925786492041295441620059131834018197927300769721094949580301234443940320974055482830652152752381396020335678340948447710722196839284225323283208353383100323703625726604269707739271976822511595817130635178998786404597681715274919803624609941507818584148808200270214127487084441555919680198539107777966145645697409339726127725040746822392144494877671104263428160066433949530436084110943907264175592078262497805679198036777865520409027845879963111503782524773086540891256982178543219287928108004319022531718197163846309955197571606512357456459987674807498831365566560285356762343086081067247655479216776972405035571835884930682246901420587897632493804437459345285246450732233978227308040750413961978744736338500112880914959340335006395550631840284975725711541721488345043312519999699254848057298097624787206576126087967364247815645207318949098397841189322999620285035594638910555648743994011856805146386590771591555848263801924750080885140028959289476632570614893681191424353644929190118538202443846620313312652453140603551681827737867494295559413409706142468659306844961666120625945722012569119566211230516880603030745377118531202444098467992861722193258201296790035035470670745328806342933688490002282390708300504569715570025257979726417381691738378335289388360596865419029991161138568324188128624347336740647759130294092474648663940542383375623208740251940608509003172622739870641149174404770010263318799582129194860883626357206518765043748913909186061922601812758962773775471318333620783990891900933565365456921535432408644087769790756717451254938901925132156829659255097706524286390743070705267401149541044472316257836340849653481674539874192859135348297997213635904464849724407253839652245187639632400988227301705319344328032163213890807769033777371803637187264446956445016030807923539870753797861309329353355991153319789455445915158525939112347175327125046616240572023465890115356663610024840988870929017606497595401794552676433999594481583825241832735130211067075117330979550935312377828488787369598258439189849961426436971037763745817229999432208346191830083705999921282916487588023135114387335963242330148246502425858192215553477626538150269541071266206834810194577468794701054664849930934106769479505920120410056500862946596242181511877516624716143145128019452862391671689927112419306240993250818760157490131153775785978033245593100352077101865571085867270789265264905254766720228900486525857208213961776061134830785102779317885897298248957584573864728382930146358326331693357456231969670138358581913085072002023429486430726602510694629351534893460141395031748330210328127907248804694599559473564500044958815660501338028349425701191882278413736253168271836444318448248304699354237290406439409424283549080145590484996598692320433809960708879346519276449545151992096666121218459341464984702309686480779056542939391509593126543987513642333456828137837786667559636035529443059451299461174991811089019624611729567581479448742426645031329992649041427244588038562137560493634979427250045279944327879534575739085520112699320142986933026346323653801440368402557534889031716689243444463779024386254230243880214235936246324935163984549167444330619014997124387542795487459358582563970180638220586840285692733030248056765692643144639424643965815697955444161088624874448827218487849657828150247174358418511836049967610675527158673884613249858925441152375183966291343393078629098889625357876501368280955912593247456708880777549914245431947883440317800772106102874836291063379256326400743826699283791576045739148893951213895618975999093502487961887409402724457437880936844712344804037536725905774080550806099649703773536415684723873094726300611259299354754847095572940473454208318709879379287706566992685810130744882560211643282836616034783688674601551785312180449407228597183618076834341244594952011123639396319074160855008818966316335798834238317126002126974351399721880325257471136741348291496179422129795495212006081401869655160168903087380988319654997397527100560966471706367453903118759124684943203331251877017519954356016860334083750354108966814392294967127540085760658357473014909017837375803826537544554402928872813031248518632412164084718463995782184999989047145678695814171584205206102998501600505888054435371446753584046225441423883957653134030440031858685060967064522112723966725427210593044313103942030541821766272343625083707273439109748343726624135354971228246113200146576977188271501429130446248000093115729264353770919859939835910354485064160942551922019173654909827356928396390530075596557064292443630425861525305749430355638441550847490464082671041531314516430302883188998562503464503721571722584660966938647645982277124509782692652840029771351128635419595339207266406414135195236079900851591844176690301820857668583995488311393622201053099492765969526380772270816015786996861759425697096866728916893417974526646515003580628910164269515421539727606549384493106313477437582699376106768665102480935454258809113320192554200644488633112533752904276286472404081231223519620570881970013469330990585012935443213822426637328187781143097630364348781396735148590155026128656664255062582263530251877483810433166334272188902899133368082078881522846837834683497376186740420925854755948979244648822531847556937251195624438847737633464185170808307985223654041843439384610704156852478813516395013991513136982499079684630521346310310328423255194015621705769995567319023917234074985155871908448963882548435046222427514081964955300968903220938325529186860061173944460886260242759918938710422825745425053404116921772609664483778752667287716880843506221300448181296118267418383840319466440449571779019709104488183988794046154432686535721050658779398934502048479817413477605803030382776087118826932773163258202246039009228242596408963257889429322490258011719170090758847245096308651361185895219322949472926396291936877387426491262013814839516506097441896928233093001737655613800461853650099311525250714603652594967050079030350315521128129608835424002824870740808893143359870616651970617049642113465244187294980717143929943010528797926296779881178180717896165236587325154904617151831137489270584585271913287963645463169765437410684226710281426923146656881506843905924063376752095057376021983724278734393645977331338710882373819886172486754758648423007078788957277265434818373285895267426639778459731036464798136153879764239844439677031770825206304582967322154237612237575129244322925890373892591739756584526965048703148845883295445650758369680538568112802609714788875648232899523549582523758592482656823722963328568748205550361549374955835897811256553662772278215711039315526621327750197456256064023809869128779495224853100184892469273983379158381867797031814622499545244699452270289655775411723445720028040308241606848803514261777694210577642715930781007346099499240897768417124693420321871889787560900712860629977772662604766566197372258552824480128255758903205168677905073077235928542975229995422596115739093534048386869792427127947323697150397868138224784995419725193356194168668018825816286897932082906438119415815630916643055477070954797162040700657094045300617862929037862033613475672848839802795321649335699098892823295649645423541780617038819010132648778580339288378055409141710178291980449901945781407504953157410969831591838345896316462636786772743697571962380781596412584766573707204343159745541761472020533569861281740257966526278137532433755786072535683903504516362702482624038226112125138049393407425324983204321004561903165580202630644057259532790432904846025216068543480211964205699634688679924433091215281593312389827443665888543899355822809739038936483091835821925222055703548756264459883978858871968292843657938268960624668644375446299459509213744075303129045645149307504677407257684264063600855898881778094648738050640505092551414831758686797308405485037434506181746628862147212423156267257141840719385308505436147744328404785755833855700177782071683964094058530185618989966521078553931860143705881463291871784339256384489731809370095314682612970575945417678690907093993179668645596880947353209008139350311680599328122510714429173389933036646468497336442632495098802453603583742057879646973818679848912855852184247160468956478075610112178561804441904238373731225235935313606652171146593542471589376682542835272378837864900870073284746916834775780758223520719604408999824745332089666070975637233677569432517626192440775026960092371745014929828229595560936180675307674205839632723675091597539478772124691458544914472003916432007683992345936038993043069352775137542387323007545196780500631925661193541611058705256739270363853619032903741488020865211390241359647085267181511820630322056762861678262636934521953296003971290611020564758112388689817004465064706502258789859889336118386492629683317590483834000118225697800266961891384904235532790439035836924789440596200403737028126119650553813633640067358234000908678648156330345050518101496311515324671532023961508553909231737808693796615397603721773853628281263734687499161074294455593975370808586908691400274519129278614909708165003678513633605253789782776412006122706197830224827331014801816676468893609780797342405661780920515358027010509777796616854950369913363614418170051438749548331652663833958881029762362239668154778384398128958784777980781038044464439311277855744745686185679865594159547751849180329074113842843723100152249632434765644939294248573406061603703772113689963695840419067375194014132340386797470379833248635937807689203091084175880627151771212770461535522933351314091097936170649159255930034899539144019204634048822850246714104747599710562197557457056261333275922653058545613465579785134525619359768175997047690883877214646108643702630071066805950993290244227369636093059938919637889693422062735226912632265835372276778849889712996682879843055289498079528985414658269195188776905038736843941920059185656286068805243800733069285735346434094544537897893254940765233842322925385692009364840721645861172321991890430846670941906379580435759089191418875005514786415085504641725060684562914348841381177592932487189231432636614831831672428896392516960381203378744795411745246043464862240506396540256957039745019799656707401986521596581369105619120198562976805094098675950402168768056987542706269964119004162604028404802119903374666928172064403470305099436982128443584111091770460829326732721025382151265097968244948649968888017107886477405617987054160338297563919585147394390125197358533184719489864678027426860879026910266057456079363940325051690602370304060375925146491396136919934245208052895450289581866202174224494707335764988440950727373478363004894662724383829889223795984578210258956693935114264462855368404506270902338142661181889188384480291283190662109120195436403354063443459524415975852124326607450427178104655438655853810877865292482387474322358939213573580919875456630061979745865058507678866197699254908506365663848925934956027857165949869949556542694153330669315265515367587231081592982244043774895468061801996619651907690381490967987830540253382019359904698169353212003175882555519330386235133996605423255917825307182543151358499621722951924156944513432284755659591524494127394005641976054185774275001164961038191068141386030795894725653164706419174301443056764220615641546150867224776318245839354352867478234804596890567129915901352315496571782777175963037302666229284333361044048765428462218516166007626532858252660227520713156590451770292716983719711337578296581503856993523532804355027132371672044769280096463982056680708810370546588098127883932328663378634466268917428158156830045147377578383393402471287760053029788498446852178279762083258551396261830799462684974162217729003813470971972857999489604766377269290021971617104639093413762019133621061868815960553222016052246234256532080357924674209275780578611071979780383794403114545681272129899970966177044639343209892539311506532385803989527808561649405649776661651722140878394304120777742271672068696202123140856943906518595359985776141706826063013145050639323517745890437024294422438216254343018922845796484422796324323818790406531689644263650779886227840094571812347191101332078697939247028583454101335273282039282498290820390386022896715715982641223484820865847778801454219960100904062652214603353174695088096713545680680302355668894740446147063596367988704544783323483390670006317579331148462391518851434906037346376536658262185279126264760989560457471230945235128009971463547241156955625328189079008598371764429988887575389109439517505856529114619782470876459003395872575654127455147837326734002293280455866040230077660898903385834206519144897138996386431108657444492560914686299589752001117258838079166162973733835725969542605613575307355470587627530425254023778130985075545470685817310394418043696610968905747329200493198538205161213242158735324509333038636527410979269368775669414458575006895759428363144323021566092158499001795226484801390651536928398357640256603490893450671094225671881683123064484117889376113255912866319553230541900455975392234562873364982887512402630255200847373083858036078932873878805142889761646184339930224371116500683450435972598293364024463204052409043203512860677351949678083901417686902964207437756485055376103214880224828359190835030659949070254347057396992155014421275675788679462366993036749069635706118216722969539017123276270012424221418959707580185352551601654321014945070956036416218212549129636715860875903466296426109300141006915610116624087481300751230839798487148301760008094645950408580525365907862874771321588595703738040114791782782374072120197639586279272192677261714180375183345530985878098471469121965998482671660987240195726870737651403867592899307988693170221809410024115637326527439646716356388276220685613322178615262266843049161740000259607637625700353113798957403796888721155443139235477872065262036836589420281279432243598174636486038941225748111662388333335242835952826854408023671673194874347666872068074620637690774060519085018759438696276057800945330381100947930679494960530847303695894598542824122460550023478266474130642931872675967508207533586578041771866641282227139206273194776888130439265725690951337688488970307187772132195956109551848821707923385392440598875661122215635794525459037199457041431821621723662371712785005632460356761675736722399126928447170613006663722298123311003051189155241113910445624493264219673220988483424673940574724724965844411565183166117228783329173516009081660005485405512532374482907024946293151817395075073430785519476763286593581793442617368626933085774695680813593677464106334789783356827818955939769180627762696424681394105182001600551793312913464670485208912679841224326623008519663287383430032340070743031782696163392994745375214128556148280457408038064124011296832341283498744785800840554760845040068952383260739526780545785729114620678004970703233511214153386237881021340527647799886238726624756594242051547658642457419932305300026532220388938772717393698416350187329847645810860932798657721426062265928763446464908978612590062875612102056028011045208809072632647312715643675531821723855598875316053283335998135470244686004873207533588557462452955120454317920782409012718363522651786062970387350580846210234841788714273534663204993097564600566101423519878553348707702921303608517394946582989765750216416505719127502862036520435188861394568988846733531774319924285459521941887733672299304119581596835196168855476213861991615361083044355259425614748918914122217056364590591927596190775519138824167101274170091401174765592718276227743866900638163796977869550806510027146370000011685367979401438785728555443466383405283097055543679947365009652176502566758323453754215167017866799101051563847753667496704552623923385787384619325749828482980918505353614116766260357868386492851955751156330027958074585567995843331894702542269221610324210468043353460710660544283709287268315501896830184993791570906660540530642890960310325144366097484339045637527053636229514790521951852950640703671043602679275627177440210810845400495835128667899335182575830024300743007135577091655960871942464472586454681738508611146100244832027908239383426311065187561184925871056368088324184492698701244649570398576317153738357906893914490899918824994905000894818559788322996440939386972003983140748138131203710629534787086014216511047915739711383667935319033284516586227418768242450662729230945956266961167286913567994975420162971189018990024849278484815377294748101313037696225604783929532476867436737118595736628345568543847186892070639689817311247577682139012646497651027520308526654617161182106031712235869317256089259616366731033146619644514758034964743160061285520885639779704847043223057430917553484006341789938440241273740667936934705092926375737778663012109088013399136898583340132847717081161115816284482728013445762000959200017508386907481778842584332259909127872937254736618481261872001429138986246092875523357563881715990171320711058321923550029235983671010980929779828212617705029792318906159906384844407812664440727289951575538510782293282275509466926658239460086655167169500565545860061333198171147483097851124242203697988277294204846722972072898508208439225771121719453173455477342895101771989564708263500030676683400154230011395549526622320595103421404681168480971552493544004662122849859895073500439891764827111473130177735970590365569542262534979235645855440958520868192703723936474187148863042475666451301828140415852936864458590276006956019951015222138301183732666376336039354991187562707667619145194533521888365630348468591012070782038788201588810996481639218488750226487474153091542107327953603515714502888455692489270415003778450855155783540971680239127487874338381314340977113207492305592027067382707882763316831995275777996023729292262089600216034980880352031214169756777949982193799248274389840854064747281115482773929044045290327905112269424168541729518595857087227078800424333745115357579770708988061134637509089543056546250750828812948701604502483456640632660348048998347078868400880259182727549395095708929924321566409681746892281151485668643790654598070844544340063082263397974118690412269159619847562383402324807326457938594702323714984567990775277997884447643229604699684976108637816383039101882152900657062880630512874809017935716319416058731416330256407023546155786886091047171238154526221345068453847663117114877167145026159807939046613020410421114049971566042546225625139480873372092267169361300163181288977782520418521420025613209952256565633644544684110303793313230758906143029917768050601701641904070564301206655148266772579509582528909605340485641201324320076736123454065100101075768511637253440653227888255107641587141361839159398780109898751631752733780143412645817740890811561544449917628878349543490740984319215529723300109704596952728709735897831068376555939914286191102950415227326365581659387531981269697511340655490718179627335602529792066097944231519764443400705471470154293263707676352030041480890764587572937466358979715429935029796329504968748865604801224988372740134531554177446254342036367475434767727879938838954010458410601100609228784308298975170918711438605813594117947410078323146751511881771621841363284153308154660977622585516001874616414089055554481807039053003753772129618873304063332521893650165454215010266477566620806750060349065098878620267224343745795528065127337224271331209387453954969884024452725416501795760061454832831825683316564261620190959401818231126887333170098825877438207819875022960834784105627125605903059784925958969100849245382040358100975450508383941484998034523188429103605379489370691743846077409544068702314834254988972349771252943305725946700829068582228160793195265760558805395895156367451642031736636133771028869349259881587225014076935347100817786558795315862669495875636993818214835852273544786128329014812669798991724466500584550245555574401046430796392451965125676780424887935578165037854696110123900548056384079341340714159824549564953102795924659723922663715560296216505235243051208628886799889571967124919359831140144380041250258168890561864910906892582122756777251037479819931448000030052144111100136761785258243544613382956806917613365584841742441065424075315690772807279454686398265426683887643487421086019209409648025781208669654077025191270486656520691892715822870303733467094562631772244177627572258625076622994714455339278987993110906353309003932238399922362581770857773744005532083115660038649361646704377135143042432129895994543682302705191193349362411590643580171928820410445923300804286327123182810926361613543608482461005506350828160890204805392719229760239838373792287992337698069774187773665404449595706421338993766559699676957291175658575335678897259550300648707529495640027254961381505637149153174613110123653937341900896558536899926349640684915538530752511535294105371676987532914348015210766492481090619564560951084339806179149517160498510902920646620206855175189438067749006259308258384976479112108206135601832997526550505259628680955544709881662238548918744757899139523742688375263167469808645972835323195457557864963416679688853784419858782635286973913574835216057513545004453302607895553164863936927697211181706765363258891055184504233618862499409898301714073798278542241932046301355575861325368710677127699630627221731842070480992028235591366128367717608143101799496002737922310710842903265547022300885242532541781193858004211251938840667143233045925897230697628869448014049773454725236210404520412773253102595345725644284129155641834808353218035780819927855984285402478246025555637925811164598429055080989524501051669124711507238780281606486893850413363095083025106687917411320840198485339705034911105450003045585833405935688327302460120851141077551221402268743142555671999217171568398929471974991009154851227302949432496363380631994238121575361861215981781795542309619747170581304440235117041402595512083221985314744245103235001177003039167864827230363123106100741990660689678922449827371699877206458187113638196398096293617652443565083395655944429957844532251452731617193063203171376329964289201931779806442712959058568629699349194693232876116570819797550173447031220357699383454456188265433639645192883118789418710035703657601829302362681999209025130077366607820327334906278248646822014326957680450646039296677830337456646805714658810798406656389833533040005825483319090420931955655213933294855402728654415973135765892254290774519222566746354320548857826151209884423942956706199613259962249306004980890749414437276545667388788189276193626050615354345184592604023541575637988575412354063400066255808418625451325716196186043662466777849473537279129482082088371257702957111153703469239332522148274424880855556491766249807764623192680666032115755360711250286402846101503319485891231844903083509426757036468331404894108031687849299852553203228052416131697822069875644995390568263778841420198164073056370213998011133410926188252819430497955976047359924960279851723149462562344240808477076602604118552122576139165456305174967875152446638351416002934442516193612240036146699395913615981382771721173543771918161880715733689965247258113407527250526166733322626371452943568815923197223158546075384469629922692567740503255233432392556534658890052123574374072938464948052315043244224859122597817186696488128228745648589528322482220009790765065931159308385288671374527243927765106880764564987311846311186079919675555709157977442937914557723873421668127142254508228384345369676376316080394703844485071182841908797108116235447321163969012994484364901627953630053952555205679559545695457147312679239926930119244956416324136326319387004162776173083345055844671797719530784436501753575906964227013776233118992263596223193681029979138972827712307455927436231450740495350987509011537177853061637518547138676391202403332306852399053488134708688125370864077141398585436689984936265946854805219197766761941611774532114157626664538433220702830318601148403536836642251571122228603624473431278674396103002906351270584319676012440622361985772226826577327987522421787896005129083119879180700462159752168278233037569384027005762471499067431539280230036639620420151939539595195726536214234774272389583401635380101303935863034290909830388949458055225464448865563725383146646947427399295567581519297957747752199926713435449297172730045304042662511025537975041370038931372327062926141814996116577237218392851310950138248876035766428824459402003769296957944858328278804483034519247204309185825531650476316389839618437311024069880227974806523213795238028933061027188256770279468506867993494599082282684392083601963165679331819676252538039599321096188175322337213931711325482140767179401623081050017158759596381158861672722774129107552032242827439729366530363589901173681706319220508400459986015393582871342446697118797054570419612932823300798528118835833091971544113311760624640901439359399013741331137938325856660928781510651602499303629022108010445829804829379443984299772474344005581022850209051988040992474323404561880375743575760229845690760094751257057777891306767417363970091217161977952502549125310362798183117840172846012423643589603087843663785034375994384483722277238630435823444056414292371696737078536162545749398107058300723399554873625925690295584683648841819696870253513183053462293680730807835124388611211972203324007514421334750483995788499030996801034901812781068943887652171200970226242092248117897142884419242634278369665615072324278380998537551622568319268877967533550555087017061199474656634645010131095313631654368209197805637949113710206068166081588841508792863108719013011380383025889749228809691858110396943626109996015705748811220814323413142878826146429406515296637045097793828891910514531302063633294108615166184661912762891169860876795627210366359836897227234129683158952645637837435130657689244934195647234254841201884355025728874728892574346931395753540276680112427324787734142442045637205675899982902204881833384973179970208201430257841003121330081370285035462614562541284726743404757971436248612485247990630316161223658453856292996460310747914199816043581144946243743884799661091216199700546600969572851682495382112699711480668090785230057097189937191488176426096979184877699966268571082352771874347646322762833995207675997387774472291700002616118452888353249021095387786148667258384080990436590441418800931607259639134979735177238451399562977058426152875759987831612191474642019237403834028905311846679481294713053661976409306391206131872583744158403671063001158417258859961395238777405158920546992706552097629434181143327264800151001810597011118175951020054001220796355522765016752476329936882523159992984402390580649010105205961210963409422590553848954467300336932981476349786995607038239124791106582929289934294987414948918276274306468424446311915146355276163772321298131799312157659072797628645063787729320326295745718941385496235351443200434204642543334318313499257412203586251321348068408237180929250586699652488385044706834108099770081234931935199321961331069407585735222876853038697881768492989138875065633305570031542757576098032794740970423616630534074231330450357938193864407866743818338567162715946448858795969937605465491729525275504656680394362233603513625936584181939566789767804375619178474135139654496299739522663619296356660917049202008162348411977115377400084512775889339931505666427044490612124083179891092581560479588655439821664539012796751803970978196565458205289334431482704719869569325477984972958495788714998368938656189143590559181584040722940359132531433860564381405923042527480258452372645050019285947120489539371735013069143399706361514657401550370102012177295771261976864321682102570548858935602192521352047508031619030323393812837518191971399593661619437501656075102835881036760659163259200490315114322670551730512867470482679635936779011936343739426513829029982235156849691605691822911524038920842435452572682671172112831137506655700837668488775793210928125003515842135826294884110679789132215212755597494671260452066458320240605584211552486710913871567437029692400806665342036325610592087854785287737471413169316732493370459068243842141736998924254975389698760520990732088190707689781364099946795674887221398628413793206257844732609270605814058914684128861127199932373019213002829455381480214590909814950527988152049824587067222249510248698311320685080321362688545401489889657021363502971789169109800134469077128343462060819239381463714523181390564435775350417165102865687120642294737360573353424572619005236706554346944292026061742593038168904810437581704116990075531671688459450031079587148406587401945466969499269431233416057656140558137061359595032758954785876586345934827772009436150078449549474912238172916641649757010411994657349627014673946762899102527158699901957712787751088402459776731849385575901652270414165287026075419469079887431607209110530081237315573858136567024957657933092705536529302920285381259791650751099023789762390530864060843926545841556818573289181485677083769980455818515740704497877144509176040685982042178183990802174831585958638834413060925775201830923396615332120199907758003873236132657978429125782719369347027502545364493860502051183656599432791573441480686728590150555599701636195560426115012139865336660132113868275993415039704818184670249274050404396180791580100427752439792105346584584120169102856112121419855527289756880785656098246665109756291521546740715260271967136274945633575485295114261313639833353911014781455831466061147621219279994870725266841720523233224130555885978905417776900954624718616530157885731576554302652416907245802578642126893963575995504217854873526709578192745350280361555674722749081572430912388557400926837567894651618383994841929985330410338153698872897865556270701497935401035951733516028449795804946757247727549922631762183418588817504119741933301640453439986968951625189509937383219236125159262454043916797159777745665143668453232683271879564329251439982684057521409948613207782353574737001216667525935234966946512333445895178341919281799622787636875752168139194693908015228190231588559713508374054470337246703261207141878658730474194739185890476316704661336015255439381720001264020947409043161814784945832497518531315563864361902459075643213698290082275359904186526436689870772675061042483103477845892202565412088611057817906853860530706362284198278636174361929484023031407739274101545607744928219836379381030690342503591921462336943165263527627807761990732020786597818114832828831084664940631023021755015799953467652525462037033090864588280376648158236250965314100946116303085861585642781557821824726123817573864146224210436338952687372566246131505688157601708642014995571176517863012702048069868515380399960256339326923804711973449627323653156669729087426792576286267149838747177680791717628299990124891612635264054310483209244159922213893708734309949375815923167767826620079961648319797015089722142963690687132302432258193746241678291557940392771155268148288211693387343129594414081832310089442228890660112905840460905315936685334880388474864932413785525817341873649469342680136083562318560690527988356497707408009002761969869639242652128032013116070359075848036662897656346883068886029096906494944356265935014777200808682183567689462221590393757231321281405728614359761817841060130764831891891491390757338386337654015644954857629215727507290401314496051759106995652501946235999099403838947879743359507877475523987496210720875638877311862071135288958108483719020221862002197952815780004065410273138203039585046978215902799543585158845918450616208160003119046457553751543324575491013606585947587016541232169655649236004937480220388230374310248880455818881937022834402966693288814992726841733750872099799404498008513095107809107851598816483417212308615004892844022105656568799217042246497600251957108339402509634789772920440478673898523840617823215620262800288320826643328203685662650672140576669470226944784313317300595975118091581172138999926758605914467913442133118962683904078572199030260522316916961675546653782111861182859800104073186065440126293513688004393310527262271341994139251218073982616477037288360338160329092639865071787828633675319437194687943645170151388122720054841518779805609308319647817781974706406128245536408067416900457892914964565666745033299761516521333718657994419339373916526575099163287937479501770397277928860524559632736745777835451747828628169865330125633298442923084983941544325990655076079200534192021586210362956670639378507448887329981514250566746204250719121227573544279040395594965577938480439751496126152411070988238973343195888670749775127650442031726333613829373546806868367800635779698213539699853699205432365317433579782336499561675881140499158993589412949907636418502292035279876613171781359301334019414444233230523161760189644646757205591516523339216981349446810887052893411968116474760050567137154069041907879436380979349631468913399340636286945015703796698178359873302774927378255821061058294756018341180099734876885943551209016095418271636328743173688138730769607129505997047166042132432787825572996115912156098203277046390212274764876555109369627201993393704489545225260015720213859867390875935226496641328121549608798889706718792659151623848889106770560395771779324366318922508603471502192334028145582403334997884462500582475568250179739031004791746702335569245408395340532223780758948456763117266400086175189201175347622966627319027032991869425731666328463030084537816191144286696460873072593857634769326459742789995437806548300092876908926727939169544439451689094522142073420348914639016467594077074753863272188525397224802953232534585551705193045202611539689421434986411594146100633337205198153044817992007777712346026212434520322172621018076781930985779659885458973761793670748220918017378475300231780676746749871167696079285073533846600481696612661837898071540434465971319830707255816647959234288200792822764499786914710790195194557110836883879855972491010339965406087603803606511926588357619891688420701642664368301102973814755777307491908195546137585637629322282334460641914549689959943495449671037102185723531915759460397081799789835787646225736550663985243270219946608793506445813166893349046656346746268261144103647231904611115790538610774837678970373042736574032358037058486212122995404453699733486044867594424703879464968404347420168456530672309506678022080822006916080651280641036660752195439221997004334307182768893084739591485378375410877363816753379119164705039783155561495686459541167821118692647966535685868435172082005844470930660556099102134750993340931810425520509015535311699495501833235767944858819968176942416590792434849550534350794778212893449971208307830591823804251367083535667695697112596933379200019036783199202090341718709684957534762426256283927246065360555594335418828256275271133097605678882037531784653871390855694514160225148020975939814360633567937898392859434360037111177246369027628657440118838569769073012008048924551182356674044531499931391701492394293667563598446620216068504854143783256937887371687196398382141266645621559835970109677788858467728234427652578063507557846257331551546987641840713696756861869644625368727618374730349018713153372520331973917749459806385673867991673250334254084771090485791108072967488607501988287612542201873076071555013399819912751739331099564496259646709372871380791599781359377443118295920221530809364169181596086209270366359916948868360956732178769503026227642972537948246673886100618037375660197713501543585606995961208241184215459513780290870692936234536926819108648497621505783065631590095806937016952253317090868741256708809447952864186410876359592257836842799537107375359543735281558030508799905092527785105441853344517525362792313101477046985138860280077691284349059180682509730030523522214435213300314903770451919263911080493161351486812755747682874827561439733726392707074256699643839495722723574586682228271583897205677132690554066573576911769273929831479364089062373188675494310006196399610942211127236940063264539396255088362657894111985770380146179428326987898035495081222870379966015603188594950144647953386935300778174483453786093704305793893343883119567972458984815483601429635687629920564133174542084626079653945074783741354907027941198079259678371477603143979049239953128701023295654445110523795701140498596354977318832448261866705824392413408991956281313237345995872962668406107628669713771113337030995944680555830744681668892452327036934165404554849202316182028446772395166334987641885212777808680643047540172578414039977293872681372448454507808726904377968113374141718910282076969923459998318266961785329132757059323438068366145186083548942739571133296707276669692432358480214282687586505872608121725747858893168700172959589641050553286843119914433046847070472121873451572675416444845420414804577775627224059238696456596045233334827737939278107400000456082749697422227277195980753103359201163012126421320420001090804104791547158152811889273874654966275983949632306176351021149403237668698111949063280478648031308897434751038366226007249331597647400331485746028347107291102175508853001606571581849141555527878511928918806709924735388477389474586967389436672537150535712594052085293668617417300930235361985144309139937884093233156295965450326983278989411781148762379429665876960743424928615824406887309833065156101217464408453494141804323816464281424796527523350754419874370875682772145480630230471840802150336901175754243488581089839087490905844794508886133991483063922237124949860451461522245540041589655951705576469223129945060869530315833183829834182880013384308333525164126747030665587789700159957432969364474065069967202480836993255727162151783436560723610179512482561837814276692407912474573374191699223062607462998149243266639261229266668329517507909095245272232057325445434586684179435764176410159298197234657789758552703927112448485488415501737109373847632229253203076027928313621520377581264606464370105565538856143373570078699967093840597210151922763338950849705716792087075766299357055395414088608695965587742703706817712259271737126634807044565589335784676208534213054913147604830555389074891824311330092427019888042269406408042200683946100073614359577789788254958267292509539631618857285239501616903162610466689254517327189094269679600878034787531943077011076429937060520809116817672567439188874111868877151271894341052415643335661102965854667607055998819542324750676882982417714690343902212484972730807267551673435581402592161545391224177478854513249624899502429185084839263559734071619411857385785521851981854668841654408405670407248999871025949447794140797003451555456031405996483469426858142499476616766893486182569279418927392697802274442919634113582486552450525529212663910301497222416936481607867667769999967785956790320765490689161030104363269658894736750423624137119470540947335653460474261509671225837528711505167734690726069558581009562035350732989900467408146969990101828170397541330227346158461851738398285077679249625903630445709284455444949965878090229284513616914626524605487440019227323330550184085882734917752324099478155335611029719463910327095714617585583562998795796364047504401024520803999674500888325109039274778888574080038662523702265757842475288612528018255850692763665289446315448758087694191247660146591864525238284286101341468175956896742746317734854036345610716689506955086946787954589126540091069337671293010006421050838320152560305350670435287770923150130616441531731971939303435287509215122646279589815842197000336691215105642558794746328518462544191473079687915636357977639004284809023930482323062130332153166928241869191999213567676279760273718353125333835340085411877658941922408534796276298201582383588063876523476628105383075066551259934790440442982192617054115946743700493124760446271680085296971779336565263762024527618510213536059045115353950913776529009251255087610461329557192111459074174467539250103677378056342688824854452751467720191067366753725149075040856836664533162378395061271454817746558353342961559323983828576185461790047262710385398893369370836057546825327864218522783240884303539666070338059687173163078428347467363177664513300244346494923487286995409393830140074025899070446151969333398897904814460538932932699599841215838815023241958674663298832984611303558807931316653070374836677690996498892598309168395519616741906131279123940024351783734199356465941204579658107371065407486229692618517539497200803341415087143878806896297469786944427084755028478080527279948697380873177210984489846767674736511340699631479585029826365286378770216439095176614021753992980418179663799481839220209804105056550653790684986962715982443103676070822166451672315796544203344372004571741705964351948499893790897278964242132785644527536006766381354401223005018242050085034895992214256700604771858806904573981529947339620288681490685653717708374361478026500357668163316796732279605484298247832579103642927135315715441437026098446489334584857735993554200159937363448985101861663900792244800216362714057045284871045883581779700827612826598326036207791178699232552090065059152329338836451558989405430607720795925958225506845191149064365917077059538722494533621202500928925143252399552431590392179025804330243153365165893896606583840583753353145227213427130941745097378324373908699867124985896029530564297669746879371216138709594938402935891347456913774572075120473402662224557126397554308701575147229414645565793817182943582284097356787701644906565038543385696655158372934985691764585280664359418950688557313202685683243661977707763732284652586351568365782976775861483390157528025993160120582034460567973311002671032753093543066526751960342172352117504455885669978550046449882756942253304514711591470344694375805827802078364225108318627359150889985789890635406542223831106109999607997226430947577567122753896442283129520996221270558990990879441318297201376963890868014167747034409726598539033836040027519332510016512669689104686706257753150416135956320982376950763663065047634280099800042862177516245718903926730486119136139872601264470387913616143523102119860172296443520979295141088996908137464927471670432919140593879435156331284494619644167061937149687458815774419001866134126714950566459023723560735999505073932802422296692244313125131951663613451456130708247748169733375980344933936795513673113181044859521052210282440950064781147986169192355945450334256012569780878170706841783253738321312755605247791529485175237327492687068815886433003972691719614378358574222993559327343261387606471025358481811785529965645157299617048749878700059725234843890273248271087573832663483882197269830057772052193634368686188058455396816923373417878838253314798711700429973719249785673257703392087577218722732644005603809031778338628510999581945050813765581116683262262128527177303799493746533026960433854483339008864742258003369917786215329549189103101212706417284828876156444004304907641845706196218556765442839299146951870517114632935383543228733078333705789530330528782413470554032535284519940521469581594224927748303129591102076924119543382595686556790142435206629381512125090280489952902912802080108400703695505601262789641381515781207207810700192665036822104898355785628141747085860792407591059420235307710830675967001627540259674250785959006368722881316044306282753341779205518150505633090741443196813214410399387999365260904304193630002980335213775191562960421160656320990198890781627468484231687612134119376287423881737663474827553122558274838175070395622667988620009550020949854912862782875202326094833426358809210813059056432817181728783478392196870014930313845387130994899543368803666822520190478727459713683419371484463388945293580559325933895034931862882552153025403732452563555466043032543477975610553566447935276141708214853788374441356578040776682787306965516888671428488906444311456611549918065744799609413088171971793190042467966861624774276720597428156984223829994043592165749456719200164284553991182288625380263998060635839720402553584017258551556484299896659165106267538276396922825702575140954230320895722231181750290350188326546665003115162817841163857504736650788411551977911822930057220566822502377597996125029114113800952729686964784146404560034126943599536312452540710920310438111149795622695048324666625589245261891290042521712149908198676236028877612684353803923537869145969681733142162494143190180477126917788703867951239917303587672762165071175602656535927772448073678995217070949255400325776599476726167263969080244792100729719255017093330222915471367754275318844124093561902529929528451692513724632456881542742862422927921815977955003031773343130845400122134057870878900051870825952531050446692751752594636239983004498865612829461893274053932706914655838915076808516082338789681123000134334200153580424855543584566010021790545279024504769669345485399345436868230431938867472659916058229609484940958257937666884347935434927107126762838665734031029391043531252039316656961181819880046727701283774394193686717906959265782682996270350750820902592749178162369323161791378890394523060663181549733724958947848771700778052283456940727797266722450532996562138072253285081421024592595968898408828622879232595549504871430892702758624302722588887163963972491059818803946975576360540488768049438880462287755413903930720925590228244519606013835795424987777409812011963887046595668101646516840607356970667377566246620416346107584731466535476380915215226424000379521884175754569272403391511508992073583508664243053724705143733345873786184512448811632929052610946213921185722064970856756943932700456261069232495342433194424778417286867084230672048240407987954732844605934947338202216992717773026177581078241595939334186001072325367291760572749061147803957102586787261441512219671499376037994004932261275447823766451738835903865477315000516491938914874153326455976776017901930362130544157476428428021973512622589408996919994013468485148125773001711327891767700342922939021155562567000271327038314234355050142054232836638031153238795987338770705959684393988351767163873301819138118457267948403452182738447991237187732906229053207646530164231606124722501565615024863018260249955148459642096695253286424434573608838365181383229044259909251477246635613709003082491438789816968221403333841014696037426666539826107854785677038947788220407219849001390470524698801612829916172005783538303047997512354183878252690523088597544387721936029701989908495428249596470939794223239262142264705752531530642297743080422068943847185937705129071838948881194004901836102128560079688006876775241372292768570222930449619955029726733119674391137198787984113418027512349298418412396962632745797682236817869043383565961696981954982687025704950413036996698052261126812345374434679414720378772491433178235337925845982727428673921050591711799474139108606784217371927543538920540893197952462462190865284251417348026731005759701848748026172395053703963841509982295490845476197912422684034335431342655142158717969484242574854272579238328481403440402743413371301660518431391293375147856195242115888288552681682660886950432127043161979268367529482020315524497625729429533780445923433067672210026765637781254875830318153094606662251983801335019455021263839365940358836891111383115026324241357979975377643465930885126465776443263230483773842322392494901377999032183549223512391166901164958078019763208569397426805125303988517400641106739939896924824381640751544048824997542801048079459366059852695126689344907640976170127574108520043162594589545991245977150983914422992821159792527820589309694453236480661878166710690307865094253505091399235147983829226917942613538139152479305395080935895834287142461348258970553364448747066874560103099356744920113315514907345311006109560747494205447403047954313753360416226575029174971315374627135927430811480867107229200873801785618915269154961320720925944661811092762919708348664823534140834878108092361452381621554175693015082155601220952669549077198222361917046933667943658578204086297774820243254596930922095297849206364177771303649435724675219108170846247977762935380565397391399112307168907987238888209694512653749293150318081752959344956139094651677449831185204546384786847954532262439383581113536632220973201431457010548292537489504854988852422177092090972168765747508215714098969733586662979072601492097646217601557496021098081673483892541793575360365995049862608547127145988703682918860411734561715135830494030853503430720730379155834737508374716187015442381563793973371719755705754125964540561957868897974303062468938545684068256313774087620241540392311519325919370914581415190308488158439098892444253794325285972630469624147532221187583535960288209462732435077391980757772901697619926700419103231035749413689642835521908272136553619300580771330326813169396768672889257272805015074288756440990346757270732202801689695101159025153587378872600475766480619897182238918840050735251614880431293293215341908512092600753463913473322976079895732189079390267953139116561710170808012694766725166383528905495214451109432598855664342851849354170102381056091660222780956719278527804141576272275633980684120901754277564419134762245532702291909192752551147684176322088599994509517263720580099026260563726157094510546499215090745682992738983449455693405818230184109391900465043562639961482171717497453586757097129954541349510962036601659178878857029639686166037698279027449040803299869681924737565972781311143243127746171139554629342830890296520153154904852387636664770305599216244276060449430287822253784188579927145522417650752125382401028290098509474055877650130931004344097476726838611951217981867579038856736841879280203390127327660574583168285530700532373277166910546845967573191590382900347885644902085176783442090255736177204224895652115062097618227673799500807638216287853574852659339542890354674660668271714985236737905902810521985794654478642327605840763217620130578652091800686946411724309769761598767470589494601149409958392641964962021820335723051504902493590088155849222786848440531231608694883024381226304702959078442456325305954574258909498853080289466875232661242834663921053273052772419580883965002108644093645233185971894754211077946134465015643703130911657074174917010774723066348251928752337536689636181799384960980160775635375775523155847439763973356798476096333559646009149195556362806689399969050647661565470335760672572272636516694620657159461355694806014120486049950256413114244034660087888824032933519142238856344789485003136915184785844235243383225935142340459928770058045805665112035802688062217064390428431503936118783041786257077753480390009265627656446944001061371833473419823056934077434743048128421096744320180800445782279282231846106563659522056045165081427148088260093924020142548936067664656414843107413093383640968899293094225974764445480569490767024196243660525224279822939998091479539050318494059363480613595295406171960942221778134792216149287291632380560656655715607080373620543025987728528187741318018304279029436764232151240822567150953734012823350336671704544234876702687938322938331227608372048809243230570323218705551035452919382932632076507176458861307498772640976607933569709589825520867846788399986888800835542858902934785539726992442666404136170344404637793817905480813302421311760207469308729945058371341373299484518761157451026177549107476252576757297695627553433013757697208951318371743853746925373825394974808402966571518484548535348169695173756220338090062679097861755174210493157185072389197310257287610530115320888283391172984383267380799555495731732018201079374704421529891559305256892662961031453039051789894572616821148356304013687191220626688543712221062009218137282159108070750366628676077546937085468163562582621133230753122607277531060870423926298340274288140602827761624229510986833212368980453689673970794904188950856367516207784448267013465689273071525876938965360942363549128231522754583790017356559613736965098647496698495848944157830355687940156194815695490216320275874133432554730553749222560196799488135003422484515587396751093340924964527030955131197189987855634889405243019490935278639617672019590096294579146461733265371864955469733201634993323851259603610857265155627956452433779698598528724712998835178883686513428923027182692969492469556961665665963301013171173403392116451871211939295836096891760353303053144921171825796051050784910670020524896209053154109108749271198977912400007959046720882200702762863878859472532776694681988517555515741024918688261799012395873497990385056163152661976148651649177467237179282014702500037946278418560547142107466287410703203472953171513428193181364293942885444865071348862273154539185181902472862423484031747572795187358451229515196299628953668219786993767229130902976171660812634309047772739751779675900953776266673875707824947452894169423321332039187767095615073798696722604820141681603535659308037581748914519098403194185708013377760265876453268453508173847141754114556764428654789448629638878164629977176056813746453626489596865189775888161257852040492868731289835102387850036854286788283296173865495159458672608551785791695831196411798186211225182978072832254915595781788888129669832497891210310101385803640584232328243002975063963122723213617452165207434707426073633133794570332581018145279061356833336253795746187145225757645760548931650952980350009912723364771212099919222070488469073694620179290573617690867970157086486814871548850167620073278133666095017748941206196529839568086072049203004554935138425984889660403377533077924554228740963411721169832550657830157835048270232959412606563788236851587040122986578744991529929576587033992166066123880147908744036643073280368279105474878993006262715059241586921077174818835975338299465476643518111495865702964859356450375341062922817678494738141796765691231543896832115243607996782920663581298129616217171422177851181878435425717700889733290933963384491094903125232150992075895267315871421677531246300095675725210876610375880346894405454694809918708672071752775513581131085831055322869714690846032082641288814799093584656047138885169017879975412397052482784328582447534380351769531583863173049913633314080587632938402791934839323155800650526558773061281191377117778806233578016339892362612176017831846863008036583089453460798234649829282310184568230089121990831950281682775697591121508071686087374677959122757781163790394473557939237277465614927810374037620727307715717223457504007812938489292994814184625218641354448075078914035831468617819379391571378530239130928647258812954596153656420758665106815582833892954944087995407328914232377962197009587756867334601516742253308998863189693062231355884428703020164061651439622297520517561846404305232477431276688620120984065263878877526049854002962867741746774244406405170471399389810556308452564451568338652307906420805595908483251215251500626744198245447589786202902064396089946090852974325905911522943660796083814187297686318923830970836769451473015333542836709037319682767433319737495599606605296527139501810928335570085254875133355876784591785382529084560642339460415470149749355426067529260411929188038570293072707506782533002004590801789066701855829719589033526293048672383044160970173856866294371383603092838411862043152582050762866979377460854575148019928248520922046973497561524828513810145947334620287278626071891568171417486659553326951980293226137416995333314007166522721776671416430569313304393687666133390227781106281685670674113824266385376589650427424545198434108275858007695380203003715332273370496303581084071078898549531197239080874727096942912154153939886707369658916241026641970424135891682126677926246029517819209566787041153235798991632288191229306321950842000328955763955579891160471650650067481162501395216548288670883823650535653264380905494972721780977588519819552653704038421290605153836287893411662836965020444740171081990065680896519973351073315790788647692874020423113346817439155786710775731887336219614237512972895067250658238584367499353677428784693871494119686048803710646339355488645462194768830914486374390366698450456622101831235101859117118607562126564315595953502967063693763834630408965924588676643229587273838996727490583656671017205127709647234299982477108427441644108569387792181671336114478201284628069259125847108363063830340670276451492203401702693033287919760162955477791550874451137517789633621786621508186957809758396483881962629505971851723209292969564203015910577514946312910215184987865379235563674215258432237527903382325727200902175608534434628474817215361196854931975384121587884661675541158030168490831795797514954959033509478705926791697131530858297306090063541331895426899540548252624514579187256702173649851304302463701975785126059449437703652716299108158591662620681813107825196169492072015912930049213013195546147684196739184419488182610194757814403803432448417953588261447852610082364885325589962804601319199167813319187849642943530396832918170231526257743348365036235803484063117179312703199539480981754374606217246607301872316692868268248460711364464207324109709000169416968457011830453514217981289117953923817731382341553453358951440712384686390523679648441658034422368891450040255906923884995734081293972165700572808884405569269954002518376065374018121307383012982104145751253963634299377546502763051103165756267613739145462904288018304369343749351261505626815193637779149866218177481449881371948617297529523323215808692258440670413172553092030735487167030855072975322087549152835709705226807775932314137474342734585430499687231107580506868257684393283833638629310698092423745946273982074715338513743158662643707104061923639741337622290837218291677201407603517498909980217049770721964511770798469652834440352054144582979925361081991380485124198523091178121409078300863078313381947237700575925283878226695943493409370044666598024351508220193660751239914392937913679450155431391868520935284184232293444956655235392586995166487635981839210467463685717730583075646984362248922158486896924199607318378640205998884829809012177837806597352676439391343735091249328698884451915513789808465122120886759915914981934034171335283085982097968406943161867609732942440868331409718486539460996819063515994432092269183027157089730436056367816745634225831490900769394242797758695980392308953203335131847430817754598668282444748229762157824591157667768379126730434235848578547096308577724919732024031087804597853525948080153984608858991431203292261622524666736198760550254930693840005951907137097819091033198096794442839133095873233422221314791437073406882386342876117322418196509848612947059708215257585112607738914321799749867615419726232591182226080605065901532611333168689862616032692626388420580535348460868953581015982741544971656063787551221545997519561363762059323542286968641446240529540905065325381334611791226853142397589421490905007357552555293207727400199712266212959839232264954240026433887740811213667097887339706141728478946533285878603778848729781860930184668327537022430085908778780777227155603602535794228785712299541224835482356946747741406220292543475705512198186557296292897911020678480925978382408937541584663266578524107278945986099080911403519808978425376952943610193244062117225071548815662368786698701815486116600677880078771831403289650598466987644269454950041837738621392832933368379962968457927306175536081931285962132889030668950748934284458588886230406959830136236020250180017441233751600561216612898851301658680906254807095660832024052153233916361829370330285085603326012925317109580254870121814410382269417278990186597579261092657642265287326135676464586177431666929898081924696708586966345313339406630815969038713819993825091390863911625586627187812260058909300123529993864809983863774085058463861107792356257123413197380627093132048907241632029204245588641788526996565405553778065655023828661130616697892277823094489080392907069766386786706223481981156683041726542861305796209842081188915671590587119084285509125620912347218109308438876335026905374676832106164512237726918593740964102734211568162375119870588018248889068722610845075130438764041079594759836280574849307384387265282333524935316509522597324998157389998901495752085724254783426443740094150581670920347553441465854538525867508248903413344394718606644718366726714918092327160981865506762330690757584329724350657674269339763759929291515040354072854988876083131834917163582734495009424581168527001501934086375305186961075160741531925525524415153289117655416197364688337577962106298884123432938088273691290791950431562751353463686485422849375526724260429586720267121589228108940192518435590984710464066119824382226431811204733787093551632494155769546310680035893348712522773504727251022463811575175334140135599354309264002946429068687462542892041460338319478513119299163815935858057202801427119203586164788830188375957726348900678631952708602899370563993020529643561306775669128153749314094996729230571759750476356510907378012017475179095381485947795134595751206235287674705790053912053266259787994915440024917415587021086997304933251131087152400273177520438726887851246786193213950183266539051408860271312773298697882186905118946982383846436365711827431909037320680788960033585963678315728598912558998717213534888108610670886456177499678253168888124577673985578203198822670083951729341005668783648407201852750495684525093432410001126167551567373158339478937950164536178815072383329017329304257261576263065524643643642001241109890039511865828874418818148510741604945193809944729651952623181460556742335349195917878259380991609050783675667527584296290653204531688737867401641561833061348417578713954032783050450430145275951770651554909380110792006625741966113316660341613462343231962161028492172089927671882613426064844173184651988377190917019729877545297836964670928579358128697683203534137192142485436755190218303146102008404369936279642144879251699014276285017523270839751562892065353378767288670800346966490002788514260017829291149613853251146192971751825574684145189062704235682178297840410488123264776033005296253542824539437192855735953051007020186089635195417978668317578239563032626298988881800816176621506599476606558089335422652246906568860444007816099339769405860885876721491418746334103429108135327808298950761694583094843054759719551883134870061663935985385481079099819157515640398902392822873150404249733883908544686385782271046150673884497188406406198840282590392540106980904883104357481229384341887157504379883331759032793654251974679886077060802405771647433152850097586291360987369584606788185431781727698666969547254128467986882200923434728771145820681752797780654069644062824021642068014841009925089490483244911820467332357302152663788901437655051401734093595948054228032484939316685920988337155292782351400157072673686168307715070793218465334473075402067064321052503678670974595987006983402431418371378784894492726393287513179014844558541794758707043704120575626864079744168404414536149071728544442419936588200081611825882523669625167905158683268944589892891474395762592484197413447305469990307061772772983285489637025236908309071008872880423879224051535787854697459024564454866316254849719685702224312110502560341608685679320345393349602386962231126615559548114970317322637506736726043770163484704333798853064319419046898705785838764166303910494815750038954004976164159791469162940578644598755054672130516968105222248220197680321323545292795378256264931608299689046735121008597051879753925491461831573429506002371542864323335222267951305505830536089139281721670404137139027268416817058893666540293107695039006214004064948102980843515826601949257060140045901824606602992808732206294983176750892096285644926563361026541015014673311466728052560906077117498936226587545198390102262414016648428930757405162323487272348500635934633841063335770000264631360040056244291122792269644667245529416065899875584980374964151365883998332776150469551932049764246033638902530950903935231236167765739908215124891418309342572125288745812635850936638378626710685134429168218879876809867967934351557273924405565521241390151899484586844783810225199754471564137211814006720517503553746482861053829879600246101822341230028873990538430914488156107580756831057170077448550259567791710756428049966062223841688893699387602141605429324410061676171941135812218808264155364973080137411442451271787207892760384076266234384239922181063221123335599352537885181688871816883082923276009684679613666820700556407530224554922883860876676030648060699353872313113433822128659013339145180839259583500561387667955375649661698808946349127321668358787229531201138627115909114894519136507557883870465834747782344250154022863867703412107111144469477992579001959286901201138102724777326932254339521268150061619166182969598030843385024042847514510749519326226704066097860410914143012760161503857248606849562103588807601442369508718295724093501344928053635355477864482489952488853302144917869711221064866606171111868973879428163781225682625033592003653296902735401725521365765690543022577780829970256371426483726803271859423298453193775101850169530309562049217094096862055398734818676836937530154661536078072613994865237645309695545902229817585250203782199270262416078054734779296777196312909867040752835923480169428909190452997784011592635929664302874793121786787368122056949813322979486661954143095359703673089797923694770356681008198799265445837308305144719261251512137210842438964129856904533885613002595791224033874655234253269147576126424342228622290627858520221062148681464273039088298454374578082698484654014158470720976994916787476578382180745798190176006872249248053163044117524333889880693397165892114387024913379766704955072734632717501909208308622774155734195861134290971192251322362604863968860952211049552218157944621907661218497061807634480886154036754278136121639987851429788358283194146982447558819345712620843101762345116581585908579345221045226137839280564042249564578517326693796509241958442615144467811340030161897778974954969921945891518280464550892084778885259746130547379522347824226020944181620237957091036334585109026951525843554253261791955427802978364289238111085032892159110753618885546092989024373250352285728735478460309598799588325929453848685479155160772726555065605350007406908378315069635220361355878382883494361528817413811359019389808978317380634321502938576113172027772852052863475902736742062667403855925953299781775899328681202847057148514279473218627260138448387015517885578619712618740422522448217320372281074691737184283730384466307039326673539973427658257968147415976731826349221631418874293514369517618330312122324537033731116059713886007798075163748870861416938393404943265106656183296822339222745787346929367588525786672677851428008591786243471388321747516989094845731403021824683254644937112962148478096027542655461594980640500536343157607669715995217525048603843475202995842643620497850948454435824411008764510490068892739519458617553528060083573597134452421941533832115166412563130625110035894365203091545849733634585445330207827671293134268508468582213405820856628297155850340429127764801964500692453328498652995154650366570991177264134990350012895555340397493084837158646705737958298602078182719598796123306047687763880728319065414782237870076480094282520856291040324039782820039346198798104325870987784672048231640347572399068178580292587752877018420203299150356751004279304482564046820393847269548090686351761819516916257870093848840952854680778953958394009447266060041833458773039873185006113978542171317974672948017416341195663593387007080885328933929016893864359507659510854198982795879953069737444966407126700270132123131483403365385211010544842050156830528173992164014481533111581147861490326650410600513266916187359890443612476921320184910096063975405904613072239686420490445301157189641950172739373010791541813107118360477153877118199972353222435270103880441181310670737806529984380748872852265520974084362689800221974768913569706001882851131752638328610774862859876418647034454443026611635147233861098754808552983546046027411173906431093972400937109117063154616764700024044017401745470353713825168292253468061184616980985700790431758694672891578989837661460571970399952585835016477654260577264755504040768435958330242948278953121359182287450281544795932353346632494176408333656068727207702212731003783753613244451931558111592891351658049557965362800337997872185495505344118911768688382946391239795455141543960894105306609525896958038351551495085173166380921253925917029839387095136267942872111277722488753271477861665841784723288041641661786290666743007952032211586374561782919829955674299144670496636164839841150553685951021620160615044344064542036769598695337605092686101035990277992736629813667345738570279713129619041482911233441699856260535235644334032051698231646929281106660255293915613575489916051779166026179531994960932580887490607321062634993629888100612851569057941218760680126087762264777089638426777541211947852126381463306631816152406617446568630103361409841093369019019421902304884075918925239024470534107706263905498521689919691307116628351467095933520821060388890058920698933619727368678531304222051353571115604531908774668386446570795195280298423535472601248186723737586758756462742503513559681036258922047683792807455272648798456568446093135238238146355929291214195225903945710959418694779421135758022982846268356151843890261838515833747865809246760370445131948781201998173725222280609409019881836338502262760311514996780947004798900626926111670060130267141383544307733958148614294261519418525050756778556317986296987383460270499151911206962351165595893026938727212534673405178939687110010179715824015226100356958498202542084167145126450643495436889847177329304288997705639843506491871657992498667674606499703220088622685327188568565005281034061209851963592581245786041566135829411459322139654476438168412445623324620346185888345087231777978792249565277855601188382322278990524286013380207166092929282976222729893048672767486498369530013167057988500609401959685959264499048851669305258492411602618664127716109856240710336389325581322236124709519141716486549979805091602840503588761559293585315918448638854225946795406234390264775207997487122340658079698513340979547771331646263704708115445267704002042251299706657388946208775408302405389772575406142292050545257466164914637733506406120188894306707045228388518102035277073966576588907489874696926175058923754286410178171665208121482269006510738501498885203385195304666429043063756532577625416700709647015461269485467934836232249239979137810050122792995006768535287287023112092439829936595853668614832578601249504318309971778962536401335670740292959421899474117932833585326824336111351619414100104027139144006926794719606832509131445581883878807428103316313356158126592330283876893961745586620438602204892778837310926983634234110901371688760659237285148614168005236197621197385057359121316959801637766248782306289360938848032514536434143079075990337692285717980301162562238496069653610438364357513284369129363771854436819974512375484847702028438629993260703610379284071018004181264203733166594575968223096009123234220457631325847316260342781300723791394859770877811671102674334256114774912385209248679858948547037106569493407939881192764269021049984648894260320262400155656427879098451648990261635155505652809248261674664982598018680130117828362242149891264998096102062725721923744196783393638631109267565748625918111927146049862118153109709513475729687658213190481836304001395603566461278413992905510210032353535690836958717786279271330753685562009688768223244011036073846121438675846480270384829019629224394062444876002002607227573957638523632558358453786172414432230454518118461207537554851263748388815809399769349727359928599813657749301207472080113288438102170310021099921926504432667341322389311055769489865788241219249914388587686822092897427668048002769694890710853848740216772618230217904129122032525488387930920261381508405351018470531126582843056305795402387939742098646790510915102359485379851843725285852500208946707026953265476609960671755909162751530636366226994703946469831116966363859280308474904204889362899320705631819253887562947634891495794234925614319061638681022912229304537083916206304053618503709949839390252770821749429130832581066821278058805239677950791122961062127502459540718224370630823601981269504958713743916533692252532989679515214213614731627595743540783432309493302159223317241242519641045003390329473314879664714429205659677440789157773464257106230737059256706487739545698748604757769225477183567612523779763491265341455440616054009273138721172997338214006938524931473034982752182027880235349794517681947155439394325213540072103991800368553152315058470230861704189146750795664489167552374127361933926144736086229884354510329239399886106230889351875125237990549980622806968866229468370637911032595140861327883487447382544222735924829332026609529916558611001789394438288857401591273494090462416155097068704251773074754702645680090641820197505601412528245608281092777938726466097027306561269056869489764777972099209032922120789128382853041092141745065465942437481729413798568337999401953865084374832913131077709968629827028682462203749930426914482952503746036768721331319551011318642797086280502069413960514238100448559200021076169348500539279180496088746136689463099874475958787028575797631931729912485588677115268328168481614515360692351790950251382502374940720237525219950268916868880607008880439045400337705527839830461079502157918924250386370871452358887394970469446831181105870083412630914699953909788835304344887487081335756590578021667992303167408676347221740121458699457709198231166756799676877571593093567566650009573651236416391457916316940845870746982711778601822634282239760864274573706989306318626167983920118322111105169312193917826526418173562715031958202096808393549199719653453300660457438350991059174031366427542115882666579029543036391009019175546629752286181930166120659276768416028976814824761498205160907037132056242979989569535156498130060198067561489293191683501093816229149831311469179346162438039045273027219683417101660207441679464239104787188534906147097950907768337282786173119487073045801276931514996775839106190905753279099389879006284523326929713874706399284777945630407731845609615658234668020919701600635425167780561690856277675781976555760198084635253876811430131248428485309654495512351939415754861813513168482019297467646652462965682066101035316911906869889838993540700733265591764053849609771391934345023158632847990096690761679989911494953544020868577904696096161313729620488490217151058628662517483931092091143680446720292848754291288712881500827301675427509289553384432074416626243676304745102823796581153916122922791534950777604754655921060576542782259317155325734702764929370805662303096329256972236106910624144637674710934806682828386932012343926850101585494946096498869148264432485581503505688376870036183997088793723029538294622894831239797589396390553405796792314715924351293670892148413986922671444404442307199849516988553664431551885994843614399379958934637090696691457761970870791550080513694569067033424399580277541475285342158184046067845242752815987243058331359212539967481276906629113442620812976773490671223313923903759287245368127596575502978150977952674028540849362359153321327711173413544118809742635011073076481545566789338319216835261612837698932122263132220366739622172438157902880514923393018899828277208070587339637093128090617883283724272709774688440289354987712835739526158987416848196136253824158351364088861425997738082602210743361358227750133237127485931933655172730489339053104239219121211206422259201523493782404662917331992692468462138836211337462174465124817138336356437744774612567180850756523922804476958643997046516366872401134228965521924444218729768074535309607748934149788817869601235813809636555989707098198719911160322004377485466763098068646864186230900478680777672488926600589142966711863527698833934242370617099178446129392421132826881654603050983985848111735585177535002061335285847944859545580618830763170334237609251908654310096276081334265249050248241796269761720953430409839925933727066164819716171336700271522413097760299969266237865718935444325552229146893116711507682414434995888997230708575721017227141537743994198612617829323190254862693862277499433799738952529596095336694494893672601700722771532676046059089572059667095951566325099843022543084984433889475174928357031628737870547816593130348129303995316523350528007513255303342449191073703394697702580584225598819156540421544065838257568634381689336924955469021336517029428417703430995760368961959294073757491120519263623316880861240178206067973351802055296775704635827011761691522886701089791915076295669721373309137695909899958660814790247364596924090018333865583664746344322270313525717864175301038802810137126939049258733694917563932135043846795928864300367217601975601638559443513412363794151708997040963756567392262683237102081207568794332053230447013838577696381384682061555489355774177971056364079875512670670039721339272659917416749895913077790887993212203642607675971211648882012386467222875003025181163544335146337494020098109288042897541845305450433844764896045787121166697560394116483069108233778999145666746941566431276223918446123827488080612284262707418532551270278893694914330742449448836352272212589449052878862597414842781768303529158471888388300689151598857876188395914807944105186939942763336800010803849438941647855674047907076002257054859673573189484588471789037432287230325585173422430187817140762280483140812738810454104438002719898972256204958364386867973951491786359266209080245230057436462148085201718270485580696155531784816624255344951867453134844112068974286956930109950204122679533859669680070791930700536996844049627122191706949438232292610375998085495146449616797721294117734292002748632349835524361923236067804224292963681458234443967800694960812562749916650817552393340642647685414490762432870131226752771229733554051526777599792024382379597314625506629437633558109425913116568537704431078280042388694981594210075865933899180183895678597002940201560139578049500716524601722864753419697090225142797053816287259678672121524248890748362459521616397181904435895940481773333297061893005826522216760338554810232776503063780212237091843906243916036083414395512034018668983763855073453199215629075816331949767958906781660204985730627736215100831644021601885770810675748858672711702212293583469380157085165841512813207209774057582955311818774425272076339243793230342433107015662694024926895045163618681031055165342400439262047802194218359541348517526900251724287794745100391078127284012265998604155154292287534318343162344597980308979887715686710182532097997143218227210527521755241096088277912013351977366913438467244972874536978188703655159525131581300552277453542190372438396703793119627960379409659765220605276108721724108732021789367089931970624487379021701307966368525781361015460669912058804188855067779226654286857883929346121700576014071966526427229726881036235078538202774574768177802522622807374038336879864639173789537991654224042146834593654517760925488844305705822949287916357111908246714451130686284874091192283440952017839081521670955726089876856668898833963143609449445201343803835847643012104991324627849392340957936256887892879923188745810334165186666859197287564631017027204181344887001712105881657583353147695808779728334366468361018713032866340796125153143868588534188110660472247115844503551699920448122088166803091651803817749242531000969788787444437824755396491953076957286487409244814916861071896496269894464094066150664958760286627788222624500806363445564526635453688012379497124145426172154421857653113114896152350489679000578995743621204122186846905388445433280267277596093688854413202549631251359250369798179355382221893089792615133861068100311923377557066985027690894753012746544975924412417349792931214261902269038107439402723835670090657726146979455229929701801762525595740682340924691457716878017787779058642447367413024813118813216288899536916410691349418634354393650475405136248218475180606894915162817563563517016305571188660137045799822824864015856070467463817313450310710564752123529599531978528416008558775096439212440096708606881427395435117564658979817429275951838713084094778724188958664633979262002268306837284347802801483947853398009938798498115717658748656974389412603077881766765202730287947549898920446377119281150513697957970131973810584995414228199528602024324921364130096288000503785387349517532724354423103721037720560861055753141733528334909765286297345054200355605085503203175214083563622190654388443733786903906051051925074865226477098749564047635680132230408626137723090498518657454482111250845266841462495645885708199061433557041345759443640164763448877503886894372457926964448860069423015973622444162246632815148435576109917630306098871478006035248838063840291732525485813755004818377822757257935534727768335011539444605332618286846712992137058985622016270925514743554374864471374352766986307965963760139918637518849583478088776871188922057817771854345195184487949765706019760298016554990645905299784450355540616219192025230642930788669461263449123417509970727691518235360488215871601272531201707066996474105541241982284872293259518028420327482695023218390407522674972878211247931453826537506617950644666601137183276038472053211924931122002173443828246131911714513276033711114983290078744676608967807761637226176787687987860335770714423141794873864130158247524796972979720606639148649764322654454029813772172437177264540700483197084834390720167658515405187779579965367757498848698633015041272487453897478337611084857012367872950720421983099971437247250490614450645256860588131476392265940938704342504711160387950930299518274600383224644411221052580805085598358717325714022143440292308271232195784496449480441471144593230598320772075232845727813127281160421194149222595747695886329530600269012160796379657603885773749713262821096751738284829356429683001097876845955165765304107136450769084639140142725875385073924909541450277016650589059435941138720200240606119059995866552058174490104536395922933533772252564369592176248144168937900932603978476072536309954510200648141243386154607571623375023210160810264171571081285809310401710186807151861439430026991344017008833008885041458033627740289496039722710309720453783496447634067867628558105896190746464629473571061986489950110183429524284491402004133651865883971819036854251710773410976821223365324868662091672217792843320010008589404739018116418745397916351466571935273066692244311837586760506126297593546681562512850653423066545175987627237555349756328956576473288354687988352445231673369447409672097393980705478758974041017968623185289191754822086959598884108393541016359124500298788114846424196962835253388272133729530549294462368050551076939725969910286994621560502109862325508541789980399771551572841924384465662809529315889798336447527370757587067835507028094084506467194835392134732671027892118797785778690140106772009484506313686962583985458176557290775967635864015926621335424984885373006520853240168918638805638566413459185892210890982762342042695474066412225760602846404737566890295376121256786788321123311510839760965269395039001702201538134226674264676995955682103690490978821260225563555902251462028511484719073739686496629788224520187777145656317479235400507534295524999637317179465269596874185667989951602189454618936380792945461055608111315856138001887554152132127151190909174696356677937263595294603761425556024169487171080907224550395394697234066631072029621574065570273264853573376520993720496032624643921859388639073791567663081589142718784804647384494411193885827608081550947169046609453543356025840822018219256228207275850211342134328029795023194066636009736244358079830510123566555207683439841104314592486981958424728919727198645144207795329388079008670491444279813513565839671801222584619399209761959285018603222369584828823253814171593773986923895212613082290153298563502845886764520314236550488148312463114121497240738202247533973028566099713746649082023132199194412066400054645848665533195015088960399241733974495854235172624131826946751836995764744280335566794991190913932503583612884864097101887900772339334008282044305595696875936169197184011875870066249700533131775922337676575896527349628948059991698463450069217711827153605106530797164055742176158635327439168466745515873902689202624482766848192754386660205491664257083509777784453135894507755907606549096252588244042374908655833794724323901044137969869416371233045966022969573324087023208645451920015292943901238276520213620564639901552520964460361025726121736268400823545540648135827552402793866226147316173333677660566510784585883518069928565469153274568953720228417679628050026465538053936530820386699462422320538340692055023530751932353994276569015295554160656566945116722469917485672784870612358651871825596307856537157296041668679807538959849370461475933419234597900423732795775968967232290727451615810938845667163544935298774144467793645710346778846554250786169184305315830521205436572334606452239928812908079493370231875106874751290248622261340903161575178718759369785781406854415518525830788742677398521010078320434624425318029503994073348239321729916033103519449308656763796480363167106434575612784070540090887421264927187793071724741829236437906760107825469974181925963894910019038268658031358899706642723871147626572592493284838373112015729690977015742944132974289340407636205331293020755064512723356598517829264591020810912564216747626721200855860078820018663746137897456285576383537940906918299211610226572203622179194085176139808745576761916441679477348402047438625185608441747067712546404221619369391468101076677231609648746584700162682818852696819249997012808770918761007151559312170692877730221599898555849731498052692663433202528003133446593220191909556927773789572172784192704583967101081241976093389780757916316244254008743637682512660201611384848421044671212079735827199459656533268279893721081758879354980597401265449317620151318123570829382162959772835020896461200448974256117443953399331591439765891386540845305924652102148453515270921088744753821699393545636614696547523889562060611170482596351787630766014270504079659209640530433451575475393339303485815393462668470015761458337246955709982575589945706707502662195896767540163435405178378409999531940375990950686485464845302207376887284167440382728724031066290891529693738249626545482194260275829474754093476647974122420206678277243537730081338378715612042160956539385946166112007057076998547383289491828665133740823335381346096975343285415307485809414467679556081511924270071200440719957476790254946421535667557337542532134037866137282691339078760139273918501827534393238282471382148075347452606414231751776646840412369388919960367951976396426691143008752256272344782698478264541588192955208213386010596700327560689669541357113945562636774107896407794511480649258145155672373326593429308330244828857410277238852992341033925097622448067360964880360450405162948052976433689574702559027845554169263355664058636137360182346646264489409628083238862309357863922908128312100867872456408597012511663928067847529594081780969324734408004211155599318581997444992675875867147882904934153160863959715338721173628132372351971452370785742534259871586523273877348254208336550960108777051855362228489223236302099230184652531401980697874531020324669422775916497712351210977595140895109542492425443760372920252876377421062771704352423944435901145638291564638154978888492143535303532099158538582079935563455267743803975757710043492620460769877319632851490921782749560034145735605543105634265205628381467177224095845246826842494387863833506376181056604864589884457640759098689085348143190184187707230643169011400385632427694322727087898829788249816228270389760609656292186495110712049595579806574306926178032004682517872981670008705060981923064056643982742637473408464759852076866355257540756026339483607489168587976299293536216240401688906326515665466181918761396224328812697819817257430067877720486066468334966952622402202870747182428825675455199885837502194114891617140596217754183981978976838933098213701287942665999445489023727885855150701451509271691755934879227907278906037303345365057630837217196359624431461647471791336171166700419288444966099481507784698504831430949832298720334680362162943825926348640836837424930501504461988358009019506148417749983457102255215360025956396298753214987305982126636558334270876015009819924094980519205698888461709568385951620609328392719334360122354169997749475409578477953704391769159757432084614923749556293883947421272296592295101935541244612280454525156708226926551629385592224665200241537249230139105617465168052851813571480114281685705125124583513457705405311283054540481006592104070728373165069708218035492249652404341924695808643137639042543689575127079892429949632074636363939884987598737579695766998174993722771849061803960513668324991210293050207602377353149539621569495639391267428894381943787707974651449791264822073140101013221403463084879547182808745096295326300879798409773102198163074246459933325255890515123363756183869481340952184484269047048187537033206762858628806506398812611217035360310813502452566955971858712074122092747792769295128944582299569728708464446521186310172821556430874246287343332256214168153639587463842745417914253007084238443680026045401259862537487025104148431629302077467475149366719635236735686812316608503483490773846676568636627009183421505173251249138792227965699992115583070049221566017220733455563985821625898551262740638044073658936025846348515791713590231746377029561534915238083665508742206254897196315461026988157270166693137320212704094908398763712407850399194294167469699745036852899266927625857174089132950846722649516875642671862811379737120665050154008102063006883321424431288477450739128669192482169225542975211682035967268000635430908215146247414302146029616614252813162876930905496413287023559932006910358662503805193593885184247441956669382528889871469111804371824399236740624246749445264773123609808243668140518658567580790904625221244294888154514838614878186017892993343636842745665111689686442034326446269291354338591548221080470849936397337342066270477332946756195348825477631730921470699946392501543961796271883502445996600002076347360438310780820528314675681499268835900619106367165433655482667546734062694197834355454598600823012481689899934524031702682402404898920165042108157211564348666404773208069348123119867088713457054414013499963676762741254212014471822973520760102140108478052924910507050163353467770363532653213253426756091767812767245448297980520816628625183057126599732075866901437705324326532079806266079296486696012734554155748138437144799149824738333219185281708167346780546163231132296755574969705410375391150515059687580285271897150737448283627690397071071223131016882131705786092304223490708873018453894370103218509974820438863570490223635830902947030616702902981311313211965532634066903043633674593062072806869971709278214394103708884074855406137109094716024268234708537065708951660893398418076692269234784637665031978561159544596665403214503650366913543689429509449143770256899147629565501495085948577276608375723741724211130777790206394664770158266602016901731524839591590087491086873286409839697349121925042188115970621462618170120587990764235444676399091307804118614754785507537557623002520326652865414668246935207448888345137154207526531243874447534978799621254237782331432381847763482450087254650818666360160850240213236160911651451557219820841933946705291643226877236186981861268506758815660503378161603346141144235638893322625420547048253507807232089581961627466118566032039315029756237491104610156140985284421943561467446237859222260686621584536413923068565929818401187684022157667264084361359744897573443326439079126715945127628969210891583326217335633938769128284705946350644161492516721455997207573105481828021498604715052243618492851204759045281387052744575341665765841332120483346469792116454342327847439111380766590247874686548843701275585076434319113097486061565282265722198488175172159580113431864089493035074690763142405759296294525301972329746455916356920107475712138056184265980879177589708640347065317001733698704984097144756903283908863139599980944711010351497987125477182438366774464029793884428872386806459003778619042430345479764306145338312811320863791050021641689679690009818077738972691079389614629382805174128041900575802793939422505821323312053872618205681758096149384579310129196908079399333858305766623715306407420323400377197262456795844706851213872790782343543717953600840655677984720413440838371927568776427876857687485465872457919130887223868988863321440957093364642760888825249177750346361027441342478276769758271846787738847521189438389153418196817248608821205108417740181434419971161901518935454351875817756113558780595920084421381330045528107058670901381368595630242407755747868312057199934615486370213834497351327253881256307241714991987295455358456963226088555515334394599296113365129902232206882298468653798202618334439041323553379921350820595656486107235751180082788033653728451497086565721194908637972641710776607123500444757423200827691799633831224637969861283627217273793609866721143704666893485539455488110394174311532220385582975313689467340380647659179763292573264038960858025875259916693576744765878424676832705937003106533288574011106101637873708355026738773702147688471054735134221522715918906364333286327902132669659533953900679379912594126866883988338733908534078324710802438693962581410464630395788767898175624034333683472304272124740876197020635211066708746673717699588679283273241956138278780890957748869267539152169449841043491813377247379260637414624747632841855532703068191332691332233693196018032070581173496986255165113523231193975180613761440251164227134669170713274820259990388351301814115790007456490898913159275045114555738388310606846737480517989568711955573693823955594247538088981424766370348235306522938032601244027511152243939995572064262460480440846391915245367351262710079267357702220841424108655549047033592880054405319493092654799235347075819959139671451667017972932099283897261040206773649293140515779936536339810321082520915505801659027709866732795741092150093290832320593777442354998611770862726171718646324765104911579563598257106463485414179053277019882130404598393813445074875531998521459626514549997173062002342168008519180790253619008735982185314718258131603556504040032421762096029560599613974389976954571358433981041107509250970072348067562166511804799765134640123135118537541206363593545982319290659322251935914609410990537229818202847059291729425180845556833598850702047941263979798191704513234020826936374962270829118181783840228279241997614497049864880955623868028560573434928505189963005699624932293575391742754723248214557850033821363827374107310859169869771794134850282629963788602482405102547867534183255191474941493655098909113448714042185519669450686686310791193803214251353423540244926917123227324603548423776651934195978085228648296403450453029704921629045362458785428833718407560818661999881278648486461186852553162407546244545643900849630211723143654914858684593033182833202010177553154663410133716651986283170366806141487601239924541188129568609006324734119459627644359967005523932327956993196635866786834808284191515971440933030605944987497861126590230312445578657693447187940425114758202647343248654009024194124809993291488106010112370813345398053904134172637807445832046239407363572464318791179670940496109109421839901178486326646377610753121626736694567837298535898618000282183540768758042433386798693967236760259652728372374747429525228880366435339516279891550596940310100543192188042423750807346575829492984577328106465671733041506421092001766448701328570049072444650911547415164599258121905021399032853798069898155407323821085694265083695055837816193265220370837604283112883479890531890795892853910679800610088633369652393495662344493066871276788953693060625560570961860103289924517904417094204149574591742713698688710118404234467860421177198078956648701095671694763005685695129452776792279726888440228859380946275058370894934182598374576114316219361861665674208884430076311407596218074524924373925144413799301265013939459135170008895560579102895645157489555052423454780020411544394011567408477274287742826421239197929542551873244692709495387264448194240904803717302203121209101371937022036023138141271616491660497390313024056737040442521654421867557673223846174513845689786451915651708844489263910792033319009288626022604578368388753128765205079069320707772829809952479307832784920642233909475449935165819246706913168370695657532953279342933615349888962176142893456505376295968556607786825076003944031680993141746979709041713027358940243962665788702279618789616966323081978082132316428537928786462643752715342636264467962406042372716913877104310857352458646856380703203488426416650175610728304294334043915856234213354795961787682015475524589222020501286203616311547384311176273406700151169509941298865440350887620125891768345636774819254505773354090986356393499617760176288281157530146641396768426771924214078333613615310826845491832294155956848842738102111008551495229078672692400695364152409037101675195750588439246144553491271263170062497844649456420884288204008081488698304366447649888116761830294389367975510421424134066434761498334041512810411446765304627095018222165724644350778950099614458908902335882456533438330580574270790485213630537201487343920978369022845175710101974703396620582815137015745616153916229132427793530509916384732702179762038313286569638431026104934102753645554487511715468454212734895370266102386282587026390299411886798773281522152895392129590834868454760532868832376881490763988126383960203546307597653097796461670016599734013105313179032290572381247389179005806189685878910064540619317010595129557544472450703951582290149868362904254538377094716203611683623772377776987819838888687811885031959751957429202894957811703303784923510444970134404738614501614424506492304854133670143638051856874408698638145210471622481025875618304222238597360356279947044709441190682296394150017516472088313562042334530739193315992072321997762553806269993083861593653243770128223689019158650780492888106567297849606641636155958341128888058174142140379570154306566493927493564725985301148070865146060845552310534583184417821822930916144984534142264867660404269742995251506901357295732109424398732107211620321538493000519639006458642575988660975670253649173767469229542104041016756582132347610937551493270071975183935593214223354276924038044590870231827351613772609812804213586409675327683500678843585154555077331799657133117701396757897056996374066659309136166224807726405526155028053404087308035791157866968087303148359105081483455470962480744871543975698404404503458492402764758646842016756915156194007671737638387680226192619133775365790517406388944519895144047562981728969982638763691487067612438014456634615404095526953276718894480053248610412133692961746033946318817067295072398565105705069538525572385048451356648685477598756046653282240326808079693320871269505631293156403931414548385631255548870591379864951801115714804254703557803148760363511975850883895211737060875397217944988890528746298733399448023583249270603948448070212939878254192321846050530650675452352521605773693972588963244703629745657453118825251833117829170950780753151218140801075190542334099548451987644611322454399855083564851964192846076558371471329693127988013739631323521298270491561475025956936753784993360572688021748805691849848743978902166565042977761759749426903485805707675263331469430383386498466431092442822832409627191796344223319424818500407650654091530813256346758596587157548548494149244985575909853459563088398789281324030015957414273936110403318299669218877369119608627891306171814433239122571308600637083525406810253545812659125483774843268268377894039404219839759449033007601035698749991094148571236897596322319328853324221682099026476830898782035276211920839999661153647293005952920394749328634430325698080838056466507378899838771604017716167073788236717390159569494548887639456985646228484836276053596863789933806290724096860051584070247482265550243494096161625062261009304182254679812224056472944243966494137987242450301749886159607315009889135922491407925014387683034607601066482018977788650205304225020336025764498771008986023245166202028923803261236464386868408209341246598283651980938634907206142857085577012982940885675628390459553105432301914282508583570308892980656614720451766184407145492497151293495870267801586536580229975632158983604162610942529614843176513830756951598732395055870071766346173113607613399783144752587060198734191230256487780609720929662714444032814018471247944453936345467839451466797719511589571191977403923009901833230042550506666841908791507810070661585237248458235535210034643005335407467982452403727019857766451407561810872260448940659279747047312683051277816476354740326969543691397491559832070936816570110043953427765547331928470469250495979332927959834762314342368329842502644825690688048047825222113821846977064574540393500076285023552072087616880436386670426600410125700198902742756295464587749991713981272422445989844536428756548508050524339846415121457907730155604214825719705687743599570895238755865591562643968805397219646649013845203192172638391722012058654412190781464185480899236225117794149453727818884360739453295548388844366359964501700114180858012837916840336248855927675731723946141377340411508127489785000791158485338416723961648110209483034542264518103681399871678953839977603849941368615853852505869115931267267158714928323354949392409670256837107451576506543504798280516383812418748701045252109065601779595082721702970229649957862358770380475999529349956783252603539354217097287131561752347453306778698628639873994524570311073870027773106918872809763892783081060262786798781442252213296259969440020915913996747019395926402931751770429564604528708788963661507296746908071725712272353666838755383681439243581338308437422762334787161582308116639929305154438830977883265864699017234132385017386628645252219347530322322041774487904188978982070479215520413603412484586987566685052473205771794900125921117059383902610918414956250417246201047762163828677988683829917495825248568176479489735013639579964702861270552572757236745093822496240333456631101438312148175685973010125104194589611254534485182864217683256926044685276280581969495875168542542782083493551950591206022518668276416411743074444966392445147536079593294531304273849225001508239749832971761649064151909030834733428022481543640778064770694336116425877797531357060910011944442272697772495344555233713979410341399666038271226076875034338022578278670693672512472367906335668248623920331307824014864082229960787258194152108359696042459452751383113122128316641070843572715412032185231583786488482277392161048681903521723080963410515238284644968222604233145561761305400559018682643826332649305557725380183460935561883231516299187938817968443262228567360329118350776675587229380162889924049035372930271555494542880708707443675048775249105100459100484852927959139043247865616747195604653398868870585382524229133016298681371420882152387245637110231581485804114611904116872878031222096075767533152058664496712781891017497502855623294253418505215879943073227437290997814211922865823747719413495899478929029423532685062041465525445710618896779915469033635906125345574956272529049323818434733416780425319034371806808445450861620827204809339919800796149595021742060686430845008365406797598400948307124578794066492230659980329838319808245462318303613513437831163953892100320657899579082290181007458400197341775176731632662901072853358252329292552484485047208833518557180114370878845943812533024099127123956404087066980949058610114457708429507976321604838743304521631095678419865366339927536365761877694614318613311378176233668067691503855369599577128645647038638452841704452689361087311311533557421167422588492903734565959284177137387480730782722745777616227469595337977546831763088651785656810231657551592348930201218077974356680119326737098118536456486176884626890246846742092192317225684573245179508356011616748383326006247018583399761128913393018172334608056644443569264982141921619236892057723528413187967282047115843723101197279790293640006191603882935730586364456747337766040533674753990961230453347677338077162347826971408407967209922956067678961660728535579284155088357053114775907999602692203218849100710292350904793574745381481057089766158108656541660798406457725278817647122308693996301086470613614810077722674051396829859152899224227045171615709091710192551044782548955375559762250694428093687685768121652004309621148582383110457124998204418869020519456436334311359161125709612386361576216316546049735287976614640462621745340674534733259782751605166111134859695082939282218831820149244232605004358889527551541164757201532418480350567679649417319344283970446227883326174038297223453235015563653096404319082772815887991344364009361839031666393918781568322197309113690576447372260021989470044213187115159102110485225949943614052945175804860338737009246298213230122998628164004589121837468390767912332854558208646918104134718811278756651496971819716887216736927880759409827853209926299464544380544255366702661366833673657961847413285427977304123330682038250261901283794462939960150811267604540303508096073040118674753722256840532898061260391588970078849408861588739665954238319907850125412752275230191289712174415743223778193734978699410323559340958241409915044145868968818864485952732511226735657178489777908623885492537589362049931741161312800428438984976394664145018629981656846453532896718013982592100812747363585151274682629253261488529675753639927792295386619523791383562516398380025808058024169607695841036325115045090079776288576528304856061163699710012523364365237713210932758895950185134981905252780656652538814080978639851282550419978576303133307651647128564821916526508618881748033208936522902396532624620078491520234578995030932513690368420766641161746122797962860157270211307076620844981371261409976965558942643143954414299545440459694698488874948482797430020262006250024356838543479063275472999250727004278502954588280024735732080063403067722053546769319568097219117377503649677009469141172277703104225493553281592619217968413588067408389430270274025712415712452579364127977104967834251377652926397798949867969261015308396349588748190304641079679456607017069613306673540197218543236436562201390798868317818020042650509544157819798637160807379865028022041889383969945814047816610189088921423173428315888328432311911041203648888799139740125979434809227876574376217879217428495819901089931432297619079395359819831499351157179859321990908367114074523725317370373077551657283657399732851365310897214453115428242497075896276072737844559283645770377030371491039187517799410774384271608052148549820119005445097891426026077734761507149976113148516842580118139211984529201220393897209575607307128964610848904519230075981810804900160616020865766460021935150575567991917555460947946656539136415472814717056677044904432890949482269698535575934743742015241599582705117854353614825568592563949707917785497265939830301297419782837329425696232674694027216203291230937653209021817607047355169583363171277366754011335715696849648215332775586202270889517586393306700613391174446961437071672632958229101411750538269356998577369384037013568582816279880706768571311964890722139751661235818306689811183036087330145748604531151927886911705767284766749208659951478818753255817437791789126000655143545220264519104195559935605724659457426502493788262041053863993215080748583206506750823010403761404430658539068021504769947593253867127813474638693098624340537325759185210009345189271549153235145837994899365422719266084405317543747606672509761171123071230222731225385052080211903227684950078376688036545785369684963661347283444605938882066233729804358776675905560255724603739134484224762184561935514377756147675174200133222541884351061556860479566045778676601692960837908318708796707489756170755554907652825736507884751120442997285637648396809882448303964934254954328952560042558981366776270151849326938171797918081564869242031097289403780429250419939022786920536605553974742501301378520861325939711537649597382266521222493717424788447458788804278377045313083698728616235442945391356885740007510497711148587714047863432162216578287312923886631167061655105734283476858233869353806930716113127327231545465184839815991138952915931722034004042388114253653324058788579921600626682458508134664728171632599323138406716407801535351529770924060483082087723718514711288798607259817129822295134104274203792602607574827610098781457881872466303729576174942541240552323479621671987708189035730421474015751905267377996797497388178797686378220205944869818102317472969809017002599966474928013814179036785675482988453579111193302935173866083284766547328422829279172425312830283031252987061624048840512191651300579063487266649962357392059692943526771630743386389929610017083863675895356397582953784930743147159014352675134357978078987763732543239772051102598364828373985183819591573032115734659980017968133961067139070002805681861934271416310728877072706809155397028181378168052908382751629429898137798495506547862753643944805279711908111261019048726734785104139336066779498899706709880361295302366904120280710317182307204631856831275555204499156767549488434512953046621815524446301957546830394705436714970049204373326544008608828559483918611482207395730104195690119148326457134588077146929174325831943982757140377734805552249678978049353907287750909729385562840579272116853800649570315858741328184627420822743770012572732308492011604463632472238083069665863972107693122840750049531667848863086826135546225631473657888021043638789433778148739884720181345621724391459868901528541060116756264087812182208329837964017809401815859324389090488034849623189454778385710725251230241025542720409554106991295249203281704637422782397380141209050939474221287903702484291006392254646775020152377226237506417429023304296084894373804609100547345189557850479893684218068488200157932604265542952613791823391783068285986699992126702277847615997590196333194164070185724107397407730927465389112792962060483990992842430133868811134319808987832701527592519168696088819064678738633485805433187173660280361161591332217085366428877728880831760807769009345950235384820072750086155450533325541164742418569869239569791431091010422254183006648655703252485591126475095015429137852266207543326077691360444731665006717542341419543123805605453723757387941339753494871411556379504293672153118309541791416230103736854282522108139770960693120561719789791953642705338829249368641961967182316054705698479289156840457224576847815180661351255297653537891988590464391479934100909815295897941746821596327660531501186165286661166458853601928938225232944633411317384586551117021719383742309679227328613780141240098404948064485652562719852083775627966682071447879090174207514729352383307924496086354301779839129581182890739711616511514620496120609556141155333766775131838112636317532442182873971666687026858463386879069906907113476998084854946191278513651167468786762031167207717691227139862657183817502013632625392409650686145932527928561828748735085383571167781465020527036822916996021249216743241727820265508290517231013272966060055313306467456539988617030238951608937458623658464627211242663800873024509989589946647140659402190811487955197673744443796118776340297994587492015150571080329845790540738304971757465654685962488063794667273061386765909532520590962441168250191649982404096358825824601209345918258130856362011364109159309122897476347287164776213185983840889240844399756802668024671566686333034495853550619501776014064806898613882405367390601837307617424054176492376929400377120899680389890327933138052959505047721981629805920226504723093223568914190628554833845700365890328247322142918174546255789327797451269242174720257364091848631121085030071835528211473449554067996263447841992996988150349647210049614118375752302061582247607030220640292712984455875927678529416914662188395557992277341857347768344432358353696831381474264893636736527594773287917099450300374235879045190098865190410746519771522917912440319123473439922735741764246192132882653227668378666478434182637799049320774955439442815516411724798881458712929480209459592619242766408274544311541728311163271412730253192651815945741260890327180462499941230963975753788710824581331144628659061457197587815346805181018596452197195999954428426221981642685972106471246032678535427185658525208258875228370714420996256641530791805543930991713110595360170102551154426752956487509042921955239792317168737081543929873210459325843763392292063431470468826377399374884334077090582469088712026122176090848115979563188201242614028798509909820330876082469058083130023165558005491226189919570112398349220039033447370875560581709208980762589593041554352895199149118167791836913077058435465154795027388463542605521748215972062653191182555110774772970598895436274606519970468363929580860855188346957908916927546032788262913835213642137664663172935638377299275895908005461754772202974111891659151561125571144644691100096896051473738719229707238448357406592676628236835029125594260007508795071279102536063784508880351096067700929856340921071079066227231683506090827841804169145415234741206156415370502673181576353787456390441158530765134355553623756758222732122939865614592094417220476853258444192128746868178058698050948714175582467923802843706514629935565850252818657718641786028012169638397226811572711791971287731213388835230453539140973315087333452590959363041247259562298603225450867346429347576677039761087605426467516509546731592142386751827825371281676846648086787320729541131263316230399979460789045544647021508978094755545121944363881889482725844272049677462916341076592559598119563981861354869347223629851555405532090501044952179213843304231952564973135793166929737885757592037796040943525930805712680697680379589112750173504769051520727308146162595029318721988788754299811339991921757989228190830206883320743193465721521249874849144829405171138030760144875454445445029958265514829378922222823916961887922449447652315130192656239425165680553353783976543408092978009212427957343125446197994570541539037178617228766686640137165980950412796022041062349038437857807971033218389253756251240699547423682129995458655273891152896888969284165950186262696660098598476788442238094652352352588317269630015404800582816765788476082058059165124983058667620420365051275881149640847676229974781857040824329020928545219579738579657358199272035155379909273500581026971907242129815187688360818829530540260931720321547499402767021371648784729808277347507337861040678231666660525532149424837066559261414097061602824353511633815789900570572432840468323501233743680926136866955053791497926685107757784751049074673263098894814223638809029111253144999222295311370897000781485429420282360058071822015087215593974513427991713025059958462985565614003782065601175260666749563891334447703924077427137868434963185323640447591941441214863469634676081609597439652222925084645186593057032609895394129727905110421433219725410995806235007210388835648850845217483512168939054940354713419201977300796474861546472855839368636915663759319969796052212601707684534076683255873184811972335227440555094270296049733783440913477762164378417172655977748814786656764645659955175766424390928499526204154884444229828690044353612169730673847243067757712308100085962693419383683590052818591920393665243811783157724999869010274960616371938047192576903510125729045997178654846919801587310509047195116732603239492863314215173302162002407502755473202104556913246836295288816652006825327962444654137124487147374330254298323010858524813238813242316855307620339402798968329302864726313110424740129450707488876013635017391025714743729059398122554659811327487472182826300229501546388939543177697878523457686499030327606863749427928808528548391032107519574676293016083063168515553470739088322926806673721938933708408504079779341891790663390427199019552779489310100066053551575060430377861384097274261718994768203576648638340919832673431305621006278125300447168853642070274438070259784071337248394163529933732139440179688625475926812284402937364645026026826272864088716859103375111151927869801753698161192570621735055040826937841918991213933415013897456292345346916205209910173344753650457808503739908057709673886272199938602697327330218033497869234897967135067826521802505958603058438540199332492405790046481155976213028824474365420369257162834132055339311777255077120321434578543274104634305451175457118180974489274359477759966491409739601977810202197196172258136564084630203996941903955786392371935863766578374737107878074380014988604988461386485351000310769416062293883896590527051024825387537147556009799050502285713979972952505425005780527732417552792215473379608302573759547498429846061204570663407410492250255322845253497651191824854904638521433072564308676782012112208652486942512948910954693629158568058181802142829524729832412713414207209828863228812901113792915961207527819560002819262441738651570008622913583191299834617089835597928485600371912820837878728633878562721052380120375516045041241787972639067008199837200725312770151718096542493816996378283899273305416230632397723782342643645329776858927446338187694897118032727628986383511519999084216294690636845073105417590841512500034809501082533729954959262463678774054277301015835180979623765013884054556065324517516406302637018735443485299605078433219132689428806864816207034211392090895773882383302033469139917086568326012912782568790353986995310543614176412193322257450313934726909151528529808484873867053472356417992940855230816907673302368971362305331943425686018320557664330127657039272722172605638430011903946017068657185587328022023209879788835896358501347671754937820278170073253806818701905292145666292743758496244758880105793485415967760541521235262504744765934133362726914199830253646694504223047753130680486181514171387242009760146630005350764399319677051113446756985068936518618040579477896781857322788592750221009975127008511446051438126787450524589257911143727063240000480477936303242282172224752654542899322086060701928743931057315855329413352164698418688939787359792315233205315382080533750265422696658604650846619977356686935532299230539315749776609230977179516756989574690723202766559542540827357045471955698402526993872941748269716977179798666343210165457137358705020544181862079379307117105531952228775768177686994374729716808471599211554894171787516020828353098993185692304660442516848925266653746125931675823637148989172476006146427408805538082415956923807935521057391740805812611323837819817158468765438778565013755573187590075501995691928175092725858504947953527659507434461181372269659771040356290200739422569200569893176323269688644961608602862297845984215011993776939934463690776793517280157089223095228539574537481078530686728722650300055332293104439366746066277246015524785044124274982935855281626053532303418924785965998454286653957285040927766771664168252976153503449296041353096758509008765844514189328270472422711261078615079682655343781932098249662080545172852829083917650614680228926591322174985085082170052493222047242586438400235591053855756134501200237879692135047641196711530861323003361395283726149825666367934464682964785274333849308970167067604678187393649307292665925206078638236745785635118046733909203276003125147241385779257593468381238750846839857169164918022946181442807473344708252303580422222007398750836713593084184170450044143385732832044093124487827153211108149193624583263410325517358997919785434817359414532653419819190939426600892967672801865155683567225804720290191620904656674987980245749211793779829057413986643665133553457872752187857616147629675843334102767659127063565573145141192541598571341943151883779776942660458966161705391382979805995906238677864747534672259882255047430138677111668071852636967696721270260587674904762768170962569104469661696749687265533628263145365997405049986423006451870412842946362020169173802941661435999099916512661308816907786542818988470127725258010178642670751738824258220689054349257619970982593063035201443330021332433100928954760744181412245478821031319210008914665508978243286788192704943900135196141424475316838430310688772602664093766193884838134547099501708181368820770117558788001915201615643387386283520334818126332654697984428402829098148222439857174229159537273671583898490267388464633458474219637208714626947164334348531666335237922705732348287480423310798249290322698019572253658929226125761244891298644326977860358404701160719871200538540148293033811575407411178282396715547573680893609464167243861448113934439885731534250023939027599227239348328327936348561910903515439672058263980605652602995128109487524641125221876121082177197324777543072635831068711106533879293906486565210969920878209835296726562291691727680843210447451917308312104076968889674267503817529885078226051301559093256122842032112658899529795554581978631747485501701136366428168011401897127215853211458819283888635968034204071569119195185950591642968140412732517865768701303276115632828820828833656696088196520795650574285799394509175047047813026288735752181607974137726114736654224135849742757910810610921679197705255518181275424646848866491418254488809012178559929721477885317826667470580740836724007969161546868878324662840740459848357150601280993493894985245424547163898853026957482177673370848942490251449759505531279847425092308666480668206492892910617106972562171765378428979335615215548913183191799356049349729383433370191270285610159120680910143667674682258578240483104854672879515378490137692869518247555297991180829246525618575436896900971353200778188693520437942007342131289886499774957262521719695424993767085073338943141630777383624820982907692449543798236406122999705282620618892035202463342680880483597025095932638538404247995546798664899571670343663943260580703645427255029897837526813872374750910106442561051152489157447800082947440605839839250869061018554651194138034886819657693768118954218085986688943087786831804498163358398689335374350848991736623395380803234812167210960213839923674943149043629811864199325705326514736318045708072793955945980679039796715161286183618771086452483843241727610095536126652548184111970744165537612838101962276891267599939872882920655775241813588632615912558127431369837576310127351419419885522555858955798010273011041611615669660770769426951765577259991850281829421537685997555573632265310471930972430803912802523453908405918799891591449043025015309108278805031594359973042483762465719378898275192944674794744869226861276538437727430597009262422677172231009769408159181787350258253239262821489152177099027635116213945967464926158691496915576002466538008064576936141206285109710843845950615864715619167863620735442341995685398038334656502451192024278376891763723063870586211877285626916469950795030168692943050845175588887268316928385451976434036910793116737249161623778687402432852859689157159407458330089456093554415351952481902894351892572035260027704042917366789869578353379250761797503367957539937869137415617413860965011699539414668367863101079760489610333809579935007287931958528815212710160438322545019148931334122345837764062185102325194761278696276568206742611094487804370691902919787306982813137000589276203605253287330353646928692317415340816818217658108589326645339585298797103816530662975558734816342560575244469716674984879949727209457165308416974994095687339186046284561108431724533752883443486990693746518444022654932399060112057881306808296756912296122743024439874036387958253214511758765837326870190870825450713479225032226150240299624636128631400887167886937643359630394892163481299501460322478333350941022126292075199343276274206692974358791434056191354308296453935010540586195667173197427552250325812232517807749513082570325153363587029208610532336378617734180455753924342949272203208390260325259246914815826791201347260383463582837803864482089632463168039332783180202996134796742490241976459221606921424337733299324043669990943224348799541413636469170609456780038605580222374509833358661301829210074017218948015153311212520890769744330796737129606532932298024320035231488376245141040366050214844704073105822095112641254929567239922447658693865396687877222915784103002149012229245971018838081939515090076567244109300619772620329263051672783327415441955616254078975614419374487800226113109649713046341669647189858911774797836390029198989955125928517858932173326781709602410316741369999288099287766823821692809919226385062286280264727076396498495791269479401896685054269152741668470518085371576942849987354130975484172869117857576593266356016431491692567491273412891967279829080697192792970325886747805695083016160177154528368064785612784451276389763068530057392144224341728115322949497055282636982178512731843370581163675730189943516254522265816375014574948449201692090862234451950016352394435377181004940994540435894670133659196253232244909704143556347044541405191552632394522266043655425264937499375291292904232775201473979487026816862364874179781347669598836257830844077974467362231008037940129724080112738992474873296335981734906637359525190559734455796185793676987527306690024632940224037451269475922833759011269786775783394016379261954927355864761569954882616640741010216710158597000823813801173647711438945128118886427221537325794691407541767732285050456681544550328301681357553366785173721056586093464272419843796566315162474526950626814291665574043356436500399854596973978424514973274856433720477720244997426031982299863206570631260605314096340618560784771311706792616693544761145178739082111335167879227837720757280409343185281432288600976211941288924873333717342719250262555012927033667940516229641242857547754149328240327939233232263710273767393076727502619413815395656597773445758477751637135696362274981647487316903488747764676246502827692616750176823021628742104858682558469324605131120728794991678168130283623323149225411213692441496404800961134075194073334588184912993583244675865460805685968724669724386181275265364784022953508423512589803437983011610297204121656837055286078220134782703316778003583828940258860423987461621228408336149679249752445145898407396232303514549473161085331110604476020669162854761084692171567891857263065685958262267418863774922063970105341493632797215384403399315173769758830780656574671031838542764973876936813719124364228985412579791121442361100294706749578097303234152336114698101779823319414354288976209933766474892052573819751349732858164617462564940782595063637608176887388649707496931685827988995011004306432113247742303944570161363840980827788538737592630452043259355906476393721505042880321484425581281333380187602912424667130795129749120353978809275356344043310281946438362435209338819109841738120037774463518663652491893081481382578973192049611161770407995486296475942141501862424305563918734455147891045281538229881094021511515274393280012781863604682140428703440153809122985950709841278952277372152534240310624572753983815241877978754068737315610614882672013681739898835002209782211106678582014597687547333380648791378071982946801974777618118135238613289965485779619778649425378262271463038939630708836132382358250976513451279661918903820574234273310599634473542258535183549923821440817671839226108082708239478028980140996909917546771635883982096848587424820789415879959173605470686892003280865173012591803173606515770533590455528632279310799044637844300615126357162617367165941644958445042116653808233987595815791823922956977284374529821157365573625991758634406701525557185598443896948445011254414989297573303158904050418349298889105594232438918763483185098705959574524338293944440167559025574969754315010730895479251808466024473127331216441890583201121091635539885849169971132431374296204897278311925766317794716229659617704035112457701657065890832028330855093240001970313275775658696096475834701911323655895941036537498404961745493687727056977738751257343507854793705710374011357497697599889350992684507685216784272034227454357464062499139331699212659370396514984078362452448147900681825618802923807438074090139051290727504635045846573828444808347009640675869622133746236968335231142333212146945789619601908119118103548529603815674324539587933197074621826248748125543812870047364303053009146244386292408557496236122598338202205277255200287870871338617667984619351012142447898512219642669435841001500408721092998305624146169498939988319732131326983342947966569845291511684748503665857924563946413495556241960182901643615711543061751558037962204596679686904945054624040295359833255213500070033845121537721048489624646238344419837465443819302002419723381385732643637769424525111164198642734056232398979073403884499347206657179500873236748783790188166319970288649359084149528798432936345235647892071401159659247082788536175106492642876582475234656720864792232180347782150330296417390433369850596862254223817855646438242487752374229643129742890994173822079673789115023507448076060160003715675118326645825378079299792497941710034271042843995500910851813192188568872923827771810905149877797167515354082921661010320418322217652674281370097555356541564831937347228749283888776804755035088158024690988520246165664453988738243965512080912386176203141410983090402806855693276782871766524114133820489915783012120598172110880817098617587623547411309011372266508383929817889286697616602300087759315768610934935179700105265783173583016937156305180325489485420496776342624622867782249636987155344099166968528071230576891843268193139655912158129319670006243936139597178225861151067316583343317998146049522024058019277050746938414365685247894406330624005652957100417136001303587059162574597008413219123361627363501854423224286652753535562405056676998227133264399805780398364750890940980217599352495198128073566513954195249350860942064586518659658971952582205958057231263707637935392428991386669878283662452743751019459856128428908511739753258174432399354498600681380725730144191998929418403378140954962394203794615752059462031636966205191104180781910867515974711040687525443877023193524789091712592549897624007713412406126312261036540517115293495039835918278502881642905523765366718002140027463540084750086212805214069093208732350952972595254164153589007772870645225644890487783899133342142358299896020317208296185594862661420160086885815415761533246560904035141416787198562567583953818692220645493804060200277664450059605325528550551232382012725562853066916582937929327911465774253885454466100126447066187823666738512602104786745911455533543129175802297247158098558953592076902002742255770373450617762889693808748517028202500223276929065993529216330963052639613368556644013390362726446420557783847959664712901705109944758642817758317724335993702446514290269715385075576530799958836980727727249447812656573099992193684962939209001751542874513364278211883353211337124490027609883298413027605483165266318391801581455074690403942237262160613880586980870486030291421907990910857553774008134246565766060701041572820622968963147003647584600505631698120132068943509885487816800241545277794474014635679701263150911545353066971653683151656401047823706446483483794729029720857317154906638500686409798896504458543924723143044825915604215537813566095889378245226954456969639954326669483384113671557647898951760974156079710091322958520425151003982606954822791345031546204703721034180421861919446527047600055668710972546034729608944451352742781493788969391434596845992451358578347171831369287826794159352856653346321226040797405841807653772270431414759456937622122300995827410489873333883425869257919221368485401271318752525633072082759896240420483128733258535087368326187131535353669600563253716414587996566267862933176725488522223629846046348280107425232305450818883702976265846294341613190392075030730296731887650083229588249795643622037132119680975443540980270624775384638237549765080995270605851866872744177608366920899979603958449990875971553669947396863595192927075956019286807605605031845553081772589363785440967861810591160281672648096240506899179052477010091763138660217674127373079407379684733851262948786819925720887120673676678982201739496469184043665191408977010790324850944411289761365769856086847494828043451692706821559476791789144416777473848981761772086883427761912629374762127627016164507040235411482746932197199842878194467867711386459560931221263104377196588587290883524184117899753463945746500544903778758511265310361109776971939660608429685603767231352191572702229040276251754795348251245465281854622355378596892664270057953742874440078123331852359827231532966501031351746681373276909442880195846869901299587432787105203849064474106306183277415485857667595818507004023958257036534284063984875136892364121312333153467302202081888903884456479541985056942804903261223934880405081944174539874404816445019502899861259213889048570730647213946657437382424409216845539352674256145423590857023590997613739508166064598198685134090173700955389562056209243352927152689071541093131423363725447776129246169166911909714733138914260573808785066551924270644668566900177565701222016980489549493907688887155004210235260705079814230257372712614459599985933324127893401553678390666513990685204863131814565410524013180599389910142217934807646483363462308382698311232588544014842739813198798063696905605395776676324584591156169227509773778337550168731390241431044665265520168496580112281931371440983120617184585926081108246329838339656744812586249023923447477915632622064841006997125780973907252446793617828026614990563981158961616502809717790056125535249302780982113862379271963449587615241321588021739149425530578775863816158371617127535726348538586483823009499547633953869921679340699438913878858896848152914609795107813864037919278609861256438545880614725164332610244074478747532892029270351184917578107262829344481233638503540318198800874431611483804828289955134967803143099762027813680135565065545574609179674937480373441054153775189384424837923037909659293953141654219965179551369027252156083110380169126511122447333371875741843957898069583072553752542994915606078121948759398426394863988050781119640974035834919614936728764384935937802262550942079270397633094697510137229401935193263150018586106224468690836121450795498194021080891645163105794238102488172234939085655716300552766174469008921294540021267272649793850393096081560058419718607878015165395949755411960556954843983074293546893301520487568784933223918361713292560033223150354394272069484927015235457229323586795002172886354799315591972020411721664017140585226457933069476526130414953464680275098610276504779801970242875190630676005733354221068258897269553553155452068394773800920869676704575431335185050551716736829267352388046563571893251739539471148636752887517979280696635888828642379455841044623070604581172685736821830744843119060579977820803544757677385890003465517550241575038941485772711053217107169521908971401855498666293152464124012230295303545680830528756316432954940276587642028918418719076904220561864426411905417316624866634629105828148431506809566469743168085754061310927028353146424462194531377350265144651155568267900827574665202844593752105295630449457202540866568535243257886156196748798380659866418000282653101620470184343698851291606048255637036715577004556420476407188290935868466135350464194350651090478881031877456917319309619044693555730180082445012042164990223513958375597646461182519472142921956714694976675941281754846681645809160231771609954885533661142431777205484452095728834438894264853210662243875343473203123670522924837065594124584510501285080254504926906104169293519898942504645627999226938859741022900937994578598210455003411679579838306037802065846137866880924650174679388467878589048630649643866893511420987248363428262704858229991602783927228799361620828473485552885465590811465893307311083977721097264687543854138608830166178467118219403058552613781165651276691977659346456968217641941488371913602301741447991130583213308788782142733232899735401472193454203318521116840768057420327987158679696564975952303380736955692167902819622773648729154945537472722178217664399327769391933586197681240916799715843577073310229046013797294190458936396679734303611417247352570388788418944595948887523841394604743066691143945563191587240989895460558409103289614386998959609113275478136062924156882395351387951057871485667889962702094783981797972654535465087223216403531033588295327068601095545876301285444796668433491176039597758714096650539016935429697485611736107044765479875511203713991805863452183479274893429827214565492639177745656010248978767099792568720097926312666432937506291467719927884918075132876417614367900211980975371639585531523677037042820457703753133315705640444501524875949456592348585406006073291595345544128474001616154768463509499935623203008127022031447465548979462843281034687146082937731762229214970305907336950146941698785230736133115536705332169832262056742615080621946910862071407543264035648393033828808439896164813991926515471340551880493415055872171796745917741933929245318609214132993533189317174155657514205270172231959051746096144227240461942284214829339519830504914221352852863258095602192266957585510563092126282962146547774571909325231408234060126024147184421242605347501416025444932061350252799182659705797237297271135782231954377082475968355781849176893743250732782611228892794652274586446110135200600994581907579864822621304030911093566058809840024939872669067240327825085756494756484208140737536959205763937812440596245268289885448724564580761351893949295652243154828569343624615382020020201532792351071931129334250132083678962561431668078917251429070877179733993284333029234344558109081573503644805016467677394411616552866108589069034336535356576975132787609497205139458280410104563965607788291163826462456040580263214576532499138627895000937825592111454101687990845110900649003543120982985225903953264659454578770091575996790080973749777180401571609510312069654163845745511230586844842800340109894875762099337107380831419965393052909767694289246472416795731537007028175083175553113057010182160125766454789251458316094069198130230431661316017657935698146610345878426118103670137707560425918180336074690309670940690755613094709411485241741495820814291815047907766770729030835942152925124938563573152559005484458301933652446106747838835341070792338776805229658854023898187640833291111252164901209160863595409528734172015391057046110005404446020763946075319494839330439493350425219057909611811481156351088948133447505822899738027682903608077675871977219924745621760978290719442752663945930921332703155894742299855838479542124185361472701688365897150315661450396135487986975949579964490401493485080053155702493957789301725405161415716089868873426280195870946442976587505319959984985222184027452873014766652092308866781220579828267047666706086778247126794913803152329558214556930634989667433067294012860809296154768585416846677196324208984979072703571709493717167229169921391885579796972415161340183252529655473960226052671467203178764222059319057574330004477945912373142653879910454735499899757123396532555702006952612062472733576991252087289714992294474206072712274614544263674983119052761104038060996444336393183946786119152240075315731961176662538705774886959103837951863220097886627603249995808550837049562246863354350715406561440820976599513098062163881915437496273772960679555387936214474477016200348524772905671208697687672755327310511839164710400701460533002492076997193313828911053563018987345017476991466223795511561128962251682578506290171821796164767468829798958896978971500739848928026557052944396770319655292185740241825335173657292728456121847248384266312972924828494564111693548372162414035022971406520814518048510496918592798153379858277791071702411086314987745166100119539302570751801713645425328710912382687386165970026479559699778154546263438795407413566131312874030521922426116612372855797085968688631233009796537092370891621759455221773673469741385544528014632339619488533633050102055509199186514559950557406118463748420150866265786280771098772897397246140920042092309322352155103145898178376958520154909068742528201683933054945275102269344483402083062167872708571474321178172271135272980967756198953593449555112843333276233909934476799419832361841540819812034373979057822779881490490218633294851841160902728354883790325159826866156253217630080646860655911535704399084854567467824283162668007284093480304126533486657796695191587729030985509783871473507734092870871125804083649367797181425150295158820270121760630120575517002904021196254443946432689576364568418600772513921091762746618364112799503483451367388904459087163865458637033899714416239768318235208808185206798048618965428113423593853554137471653781659127458535975644407061155814629785488748288823638009126567024910177945114980888985263621229352734949570448202983823193229318674194873687004307317066417692019407652383540738128786773509996470097205465919474637866938221298390438775611426316264259879453103643753793504042764712690658931893023110422584018080339751852530045950427060833198030580280068796235279199369082791172660183656566886529769030864940083413782901437452342566946321289382114778476260513223482065308939522093630732860216199452494881656111725253050642562825448000414782861612531777901183169685865926749722798889127032115975232688270953464253386467937309507728355255381617077321058734405969585312562938908952603815588419318053761416793689080938380251571485427789795441768987244726641926462976124441869200939211719308305722886554813395521295033288494112201863003246951974717771166253651422510094867271606251179123822322071153645032460488930189489347754955068285333849814527046830235995827952632944751665754631584974448514733674868035495195510324097711029463290416312008707023759178999131537068927799623935653260990421047149299406861773914797056610610045914182567912927994527077005159015852646167005188606520227706652162355782646535617851299053291355943305345749560224917760564094942735669302035930078118789530729265741007252938985824891791446269226495762592579135376584746930771254543556129463908583493704058877526704417234491777882642232503684524833113265815334010946473885609810810483164341153021689559369496452160317873278307125277990818934621010731227526093168071919379766604230853398952236759981251303147922412911783920630142170583151429288836437843626070061606882924448712614565340109922972037153851231806471235121849977832955282682031864901594077072627701242318843064726798291108351275615919828435935733290980180807696872610578045446214326756703419499455847932690360118162196019451779071321095278155004035812507961189607598188063891621005906170551105799714375174127484050476616008475636313665761886877595621503703255715183476347143008706449332001506641298523398631124934477588366214631665458588711836697934822270427740147346240912473116755770212850869112193921385060686498452345212734306129782092676096456004782588876001962792956071554124107852473179519735342193516620264702355305656465023949508301137229380981505712171069939802309649291400108139481400316327076897110672960638888717818766596811095636680310272195234051219814564318191890797350789242156617962049741182785654183320742077409203157190008913600538205012388547851915198670717242615963709438153073440250083153814362485538286954330741848951699225882808654011052742925414802494929382731485891496130694544443340570266440275066901954875163311938032505178538769811139708127653285325015159656008344780103738011937012194883808106690511354321195877113702639097162187981539364072081362907584864398353306044594087353077735322964965302676394128743209667816796820770237125950058624591732510041682116671249413821262700300355931243911579911747428191699735218609196242044028139980001687009012100518217671768229936566358118084304903545815652999249574382179795297825899314224114287943965612018420031070330872411240350392636385980554004200122654600842901233604642053193000467441776905555463741354101448341865015749573776521332765826905046758376184565859478415063758236189951769225717566728402724666151403137588878876334453933379349744405213614416500972617378708944473768015869954988996931386226082618486147602838784369539913977038798218957415738180720364161767159349491772609538767556418585283273266437475157272835380327270649786577191908451357526103122094363597099453897701262365151036418821673369854666290857730188613687638697646344113198261759355953366244155504837106606294289444427675393302038708491955372853681516515622424191282716277856786905941342009053020068665871034881112221904153083448282513838114318888862205469526562954662291819415950227914914695205846706037970279815081175008104646309475304626703332853290534879704887048490965859916217528749441004624419877359815093742773958777681865157603384941004273784145716113131335049404803753664813840674222717341681126753539049548158077867885710852166237524792845013046928110926714473987594492959369415576315736889091734516288321369724783243398441071788820734567021340744880797906733362091350696328258537663535435796238085163650991232500581394158478126246677415578682960176305392778739494609597219336424752292830186923497577730086291832477712861108390429124617287053144675807708403968456862564181768699448441630193540742508415558783639107814826616274640604984973224534175740272705647137289144632089733086403446230132681481430781101094388173647586077417700276769622817723402658883592710746222683711935235508114742062259867985130347164453617420983359590035592377370617212669976805654471929363085903673535061527612634665553819059390826429902373447966152296217461882647748225126301893948914626007611995167596730277446500539095076281474477436250167090008805444419904536095282132719183146560440699666001983674631283025104792739242170234896890354266738089975170923818536070580363416275372941458129367660720255504433175360156470756685304203480129369164376661382724248991812052178357091857702137823825977957115441428636181418349977971247632698072454414205759639256818405762371927545127716026923556886044408541372094370092642355051213421610427042045017391776075539940721476338778785301333120051757243369933321866446611371575831030542577847930225044299891394955161826943196143246605363642376932245111387238039415692977906714936803350818392892543924671704527279458023851949577492814740769502195330199783788910768689026505062627687349293478772994816329670794588119554278399286343656166556226811619523531814373060873182301710847021281983909459623112837937974074022749617888549515087934191529911749962701918281999101037702106884243440868429553944027982757913566626947805512786558708038372009323737353706757737693278153989831835942551023825070546323783533956557564340477383592355312127905529562844843211110928457292778237953265040884580886184883921562049992026152209054995300820840140859732078811340767020157212777444266595054594912435478935790352307921767356193522551089619332165189978426247734364648000162810214394930891885164993032741732016420585041831587919594238647566026648685561824334967803117026412010637108793933839447163731427755163009389256672218664164985279896932286860005739244478925572369209707048673850678585091730291588356690501930609554059473001153608302260153067694005888358206884855667172630817584341351866075142581651446194276286991755402312045005974423204862795173857387657336114550417624865541771669553450583062692618843934582572119698999744844273559556183922477667156951744616901307315007596907347763953053440776406138455220731809755724074097685933707122141861244512655003559380913777558452524090974048279690453116850361493645080182359729788232057649367081756688952646008825606439680681368855377123775286860935691525056447049244322629105325906350709355106252981684685260060290569065095112907349886482287095813731458824770809688607373397125011342882464276660080164825622201483948039393507377848464946630064239111815190464745049455478870996912806556132740356462771530331982273662343082014661113357838783529381710188650495829048953953846202757399547081144431526091365068066659666260783559141085170192911186347011590758256828438994912954643066563934477197529565395493789337679896857822280202322295331729218188093559542630351924116252327237287483761708909935431715532215421375094939534660629359246941950614012376345201427606871707647267516018457805493860856836864558297793257386548579726695197723630551572221271516220956937256744758910641878682738007903636322793954364871444671128360957641349566574116317499717926157475337838081455373918459419306131178707258528348907683853559546118482086302468954245323799750250738324713985295912244780568453736859726423524114531643068085999476771844994075206870726938322498859560444294689601977949704469792835408932168597750469595791162988837234953521339735514687233918799660953060954605139590495345564344424661848272494597462101857235188466034058090058296827772974836601561327597666004244982343732971906405750946289528918767276455133479153210218957953553939153042994453318924289886527451057519396114590931239510779841927169355533639178983245988482025334207691881969175964937323554726752972928866942789256873965799512135328668931971858809907985406303447207577929463097562834842306053934083065887943163980338704013336123422250888467677388601138943897230170588211201189895888299327686738891426234316475826111746004069766781529731849101051474283078512233789643152298513499836105489012236780345268357666535324648776954508693497613245274160430458885459704925295177688085810214508949533227189809896919298065381077566224226238545381727495408028251134531711486687531682874049529142454018507526181588504556766087407082348446121151674832634421159961798280963400992173604594712557721981560091499713469443036471817172077118874255613004503810006789107024434365443277451723037789437985744750384377199794603557275286585687090960369601226715729606917602078135979108856749260915631162101958043311722021480472445731167041845488213622005493402882495746589432746568406205800269919836097623262215677749651057138040241528274466422265232711911260672144636934896567066198319357151416138858828683388326681068542403108088368868110481212273970788056842874500992153237479418870898461517862755003057223187098802660236990678928922169285895683517518734779630648062527559375577333558927433001134098652599079747260012393025355008706497875879347073744828326967621794336933142485667690009968679700536507723458119798790180520040334550001031990109508741171863233498318992262302118751886077309815315006981928602983303695407144027631632344933687951038319383994618677065203165185820875325816176232555136553486999831273100669515062420683868308191975319389151647511919388335150774754037641642160257374407971201277384345823668410011455513095200678826143039444313630316274882110622819906951342370387320032455232096651498024047346267958995327731845921773585604360133439367794310554452764295651906099640436305278245067686581968248154348267177025218483449098275547302956912648101155382459932013594769936122482863448390718176669199270123860894165985396100769627891757179519945077384623882388349253371890643944486891879306333837363267936294482060598595699047161271454170460136442403938925507865009223851655779996933128702281715070291969900885905191745534865320840799726276394232308383097935886321600870775075117181965433713999952444228064326338274188040566352452520028749041710897741077097584153184063804892489975554454780467087834303683451228404134708819400205967976932575904907024530867347653219183334316123137827371056854862707731064707258000953518876829234897386377401206498109856833547979869570050794255235111617522276120047732635106715581643804127490527679611231306406582655138651436152288928571678970283279011550641680248449958797085784114547514602018909635442526852166699731579777722552637337390780490757059667527186041952123100839088916288606357038748722787822769794723767404148926398159195761302687084703927722748879629556200208660472151265710201048838294504171564001673835281668727323356060438218872090926237840829966563743906086427984818775796310142826594288656864712218410626029619183147612423028427778786870449921837017874124714913583053672755192911736759713475885063118721810485434183067724341395759847006263642255895863924777480930305646770112968067720524180165917525652380779260264021608171194012157403382161939439247245480102780031402614264885124773314480504322768872868370153474157687752414421031392630734545972270690810811833468827200781503114616187387566648291499941591710946542490476772131149795618986530740908999949597916714079944782956065406327343662763583922196035982000360528834588483289474304096542731398104572575165209599625631660104913372621138756903697103673245856018052113657154329601769557797017626319435374699616498478050149774685954907412599808084025051684598533533862914001511721487636283796179061216624119178845830744869878650106226730059312662502846918009290201801895549440517014381672761535932574013859960250969743158119687898379328433629963706197595582181114515971882125386115526985704675121011071393218037168354937537821829952776282927289317258156378925417028922781305374806668878376107579358024261326423217937383002908719605836415651131803062786644676958214748498721312977984915462209259179560295389159715783235202578902605182335485139254814296019086591391788803428523483067695588142732721607198127224213814710898495835998726879214955782025639052529823699814015925483302739136927999172782967546766543049449447593550037209073708530133343716060365858414343006226604896303053534962579015154415774756836527734520227283188940558517028678550046957069787191854789189875400632087553770556764518584029829499326685459284163496597493569315556097584863121847486890592501833561330179610439732475129166401614580088718644561331172713728759844531273323167260294363582167830723875691601485906045682384486404954184219402953801846295459100886125337007049022298324840686623617930757495964916152155775744128356316771190156733575730461411610170245726923003955316268987949514557778970988580217760366743229571714992296780662478253059334719865619958344811266768112385200705435672712972563436168203708687329436534350676681636150180411110853839752969755731624631499750515282763684459239606559106294966998522134143359334197281623957800675820843165668408130691159730141334076352551461795671251933886470893712888844007957910367219648790151582199369365917889086652415228476373671293774057820405617393097962551636949998352388176844735502267624247067958655932629709518243675862150455606268188968716194562486016004372424853507366802031090477841337362867847223333976544864750235973133247323793512073191832111283804905619077601831549538185360557655470858664778032866104470133498044495448269039610095157709976299249617782651083738374689371090954321228774248868262863447480050164386479018406283700003331986353722983517780842812329900590777053999563813914727224895331184354947176357347009683419359967384352911898242244847432711424596295448397422357525080087713435706167917215937087917365046231019904427142761373935093707979271850397582768025281950119872151793500071804406240222529762616849972875156394204761906180049377253902348464687297504405074429992478303906788474346833340189194109064255598723789442470277356035482256043582739429631574294294706566483610447573131587914030953441515587215200771331948925516773621766951991378248509584429402345822969806448119567052903505064229669245864565507096139953578634297119306607473020629891908831639899073790911246307452073799382822193701355824739062649926043245644271162810197090452122146027065191582351571413117199821172135434645438490510421945345212557508326295700511098691844336878610663521037370253873972934201395016562847817356510224705840704531397819202054726693414514732667143100732372138830267552153691770742504727271617269859675663627421564642378078729847924030350149363122784000285781880373392780725640675202684283406581877056658597363077819120566432028381886446812254256436938499652401012952670119059387719414040085120837347773376525631572293357125980635247399279913249155477051654361935172912272172056800981145883942344840184303847237874233749185968464067499958987608456381973445646746033038340857196949613120478871064019759777620264325169817788506830170366307322375474221971727019212459676543718294795396405646041578086315294606251812621449013272949397144548567259135390465457276756131038530272873941679158770997443411879530547665859976938099260055117909337880976777942822602091427983068729391048612714186730736228275346437847098747044421377701053454127682220740511584272830334842644809315772723641014510767408131347160472425531395684053616966034868211098093128059292771074739216380181980995120098995678174282987744865641589957372837189926134573853080647306843516349691418328658185235107318924408845784884651529924528061924816639387117869311752090460692671143546709363684865072991357846770886915586165734899347883242037057791290200471115447553718505694972276674712742557157831361727581762860272805233239902137514239995485954681255167125246022014882329468768039183036886456854490715524773242351353627866376115677125387270316435223809946652950391693157356624332521834081478082599717532646459770348356237290921793523869433855197915455365893866584404466906775677995669251455926256478022761799028737776961608455026002774311106410754209727074643883942406255934551613300704046173913732236891369839814949667453294974311770613674315586732188924655331066416876109202299228404943056831294376900103740153431671865326307862451385379399028271251982547212462259094690183706406300229269587068261665769588003179026562010647450850343641171295791105690216478209265260927613623180766946274310360093277921616713279095469604436702860855619339949388937668821815783355259224869647417244172536025360148389352411693114258420622383508459122268520565620027331997839996700253280757421723717557927576288180424756450511932304783393883951365161611922829667592725981720568344000993244993427815667396456966531196487477165065004626425677189285089119908128198769046678955970291624680074091316632866708989326806896384297179711154721644157785056579445962145795512230966552392211082072200753345172976482256968865939079310665304629530048047909638479740826087712398947062942505192687309249652647363432386446219359240252941045957797781040687201979866849258673401762770824137152248504070085906579646049200536168248149578176207377998644963799218066057859370361600953800682363677170105703328632425261115544808963082394141436829882848311948295200659563594616055107390461928848245819726160397906629066499846379956367217940857834884703695338722803844498018131999540359150243328811902360288328374574396213759544030391035042365811278363591283718517093090181198143466051281536469495618642640015431415300001742424555175695551874230944710712986076101957648698444548559705371673199176088055719340441081778228373793857743379533996455159396332097728873541589234676384639204588437761846990199775636390534181565538873371328236650979986044774795988479918578584048799926946785661137280916738023001283616202424645496697107673076049359022133652682704674897954798847601313584124535746395510777195949147646923799032022427774442524927714387447482648099518661549956114532814332224162576995384681626102375420669998674631292494455485790319556959848956099310031510386771924994842599067495646884431872107672290711939793534979186378303896235660766372394842933641773785461147782482015400026284260882636389761853462152813719269333688066693402578728779606173758961314765998898396597062572903141467581536537233037090563110732303592979269938642370728927884510602806926069629918484033295316946135042377843832103979515118687553746424958924909261624529606551152830003919931906267058224162226857205080008992031362306871873188210279094760249933057356201221660602650126765732368073739848866820626929031448393744433629915939910247615499347785317848920385772201095803959961307948873653286945539368015691698871209092359917499591913869191837812814749392320657895468021680558378867285640880534310367253507523316056250934665485318089744250370907577966348554348448092167327482817349954289916365754635269175397664924887707595473383094909939671341016746164020349975359455245882918658672682952066007770758948428829124234177182570807733698636876236785442689945846472159760807272320976173592010244939877325797529200888178142393272552580630796451028057023357623319764103688334301870097473871249060392347387030163366531699038224531851286896018125507286066200338216082511765702198173381735905712802168960062494205420067175297455355316172767632778293717625740576642509239985682110568379117500441854172983634708372468301970790275183509016361882951652138912551853940490207706751621138119456630344784590527095325050495771586307299837212510434048724774986425218624445725881195171955286255619295159455591044664927884627407999551243499662599488822609831044825189250026259542303844618274368598863920110331959839531366205127594334911589362028777370981270991548227695422315718188233185208750165353331790453611075356852380406358968096419238555591099212918583837860324733322232736794653974376559505506393232614003142959979578167959460310980349443679665610286795858045920795012746552928823201756165443395404209281408954025120068635779597937445371012019785659948989408052635612459556326129748408430524922770750526970633529230785532321327491465125184417401246056980938919093700054095086028937942107661554898647409686235945165582866754444854735124553069545048979717102669787475620130839626474132032657597774903503458222364363402798817098890902546429812348994243635141560146443080785602901817559594865731922049757144099057451585046201086085047883667548347704490166864300859493823054183167303744595233790724981299961122969600101625293219451683322265869210257376286235378246512273194406238907758230083221903174480839150951495326360048014339418726851498588591221356254787631190932622425303257231790271419707674077245202267434304568210511351579890239479709064175591647616309901630525329241978296354550956808839963969317214699403915159005355206354693954850109715824625788330809555587076669354885574203639710782503429134001020515638798103549588483989212007452496198785271982510124101152754246307764961576061046905633303374685046794532229216358743711224558750754297521787500261305686384854895284751814435484894141466341828619616589153983184626654332883248475199667827653042627409378566516076573997514944774418584670796465018503137570875605244626513787785307477321409658493041030556266761811752152870626312978140832117555232252893501975180467349186100102740290071512804056912259319427858189634224268084093900758123587853558778875529331292093480767448327563404226375085274649298228174530103042138160447613605895421675020285347804784640328331503216857128930677985302818607331149921761788812787742905905375328588609573166674979731930800309303930817709436578995672495229124496813784407510893489065408546430930509182176409139520046728972803182161187974340392210696246954399174495375638476875800192559235600604898437231264920615777368775040730543037989781979901928639184937365211449446979977166309930559048024270462582988377603675182202133607817784230964824227053511061365958400238763671700355731690866676302025480740102052557012149721416582309849297498082979592108967261431900891982903492589591046018212906685494447350095614037152131570634412349161963144369728383545407919797815978922622197895674043207841036976748394140882405064853535456656003781878386497462898310273960480188812335677266782314732775959036779332692817875190780549599540603370026767240728915932157853625692430157817961173477702967377894586323940887528551265565261479779765177834695946867445733454379902501130179741290446757169161539997830139333323084821028574482356209368538676805165037369640909576876186779978048282746873536664075774165581306360690503607163567898543059812999956078108681438129153113230364958199973757863818984639237448675597576731839791150368034130791641795286281242267655641215341961203361667205082081630105803793834498215746276369714189545208576685025561143846405896761936501421697410029247749229674575297519397596919680223400231712359994934454452930513559391010217585934517187889970112167666062895229214148676643405434328523553782401933494099816440213948725858169162039454796834436629550033349784474302522954495309280402023469605527320685617904234677543807169023796662079971961904850590620087551341894613041237000515772777068929806722196482119649581731445706299835182821725256099585418121226989007654327320493143840209557747590268545339674459164061435520937710533200419895245525740696896854697892188873216348873134254658142724147421089988999831568092674800752241028837784295729488348028986624842168942029974148277926713156425276718806489733307898724536746598982710955791958044247462560589983450156266401169158650453450288020943596642049491757026719829509530750956177075470521500370176026979357635483396172862471517967305135928155446946138467613560424757569538281113740847950086453456867841642594497340125850236035654658011251918366576170178331663612925422309156064491789278799288889804373921812539226387833547404500706428824567022319732971845979578496195403804673649377678392961527414182809038976366894377312577698859564817873383515399134908911000537935800325493450712847809675499416685055477620876212144662669611179906417192028950812037028558839327997294554799989928571952553962438427938864430313030127265536504877410731163462316520033667843288270381857564936680944630115520240902040777358999711107339343547593407179395759820855215700975080417956180909881796117123095279204436298328537459460682074082436790427057281426163929890036246335318865208532083537153760322508268919782396297868890460325530524367983196721007321785617299836626521481940824298185272785784645215583035475068369155264038868676526202578191553712360106954718853895555017097048397420910420482853145054958174886484848982390332835986107108787458828100277071883289644383528334433211026505402318977698045848033356377735490037936638580771641050226260022433572488339203791722208619936259479266105223052428220369151247427057173591105626709839862314567913158774878375856298401560672244235064584887463260141314956501884136365826768293981600775151998419093951591035480726819419981144005752454142347071777086211574413644801349620253398516523543532246956552732028411050258919143717252763654393323410871886589441836961569234884886091281666494975709335738999759802666282093732236164514320069665090367018520965608601223233751507209556481809226803207559889039500127546807347013013005234113697698325424648039468355519577044846319993243407227665070690989892586193095861607101393194895283957326762982846056579547112333872852579537456707840340452317461216817350923697744603691801320029435804660096600145076202014775442689643478771724519151143333085315281378708605313423628129835743003748308605448282742790644137700940822385525721966308239121688907067878350381964635216562081766310582789021875449584623619281145767373445046444218767195617087940478655463128909045345601464047017381444718780775864343471478336000028749658122077809165146304798610904964579978689835909855548537662339977649106484433304182836749258238597328100224019635683846938374323457423964569934401891103480160903757243357399385793123785125187668628955565373691260571949819331787542941882057770741966377908652051289239633595908339252334557469126755556922893756095903684781610803258506243561217352161267763753412806918528259092263062022173913528738220916692036622310264398684564041469006024467904971255110887495151127920974617710085923719881579128900630240925436407980639375001681375836850250355384474534234591374464359376066109771914917469384143397431723543311075295892801775881679402457539850176807999282803124077457546952912479303777161028941692930988555463820334029780749194307879616165498562039839213558552269216411880985504360639154240456205418493578597084004296830271281330485202574205684297584827644149852607271740568942151388684087092307399840961465163059980335318458807465254159960528423875567409444549533741258163150211334301771994434494546961940956769019368868675158443298966702616138693363506675510276510894385032081609241932587130362351989397352324827894640889378523627741213183373169854534895878283978946425373053537977827599739294075920400616927967002530833039089334389248908066855101889307474390120029389575480819521132153865420037980942313251451111716195524566437308037040684804559269653892471216616022408115880553848450319784226976214431015631782794934571474155754214374964555407786735413218948001271471032692338071654209164123084113135688595361381139447926472301139864720285875899249392203574466377550546613756414230371603245266469920159262043826120726545353319392654507102680918548307819977178008030754910537098995724421269315822089355947183281310706801987841748336834302732057740570585273659935135760642656456914691950958417260586908655798695504915618076324510867516768571839841684719017544820066908709604152020148472283757171940225133065545458773437264448583353026737949881466864103336558458539613066152599397419453936578389077008616894277150818417682272487701552146099402838663005924154187685896225421791706252007261950444241601992725800278576274266224820298083392726680843919399814736165473778231107194477102717843103535114793773955714845461009086055967003894853427657611309664912230603533358794046242675566182489402170672061549524770143634414481444786712917475019365648785986449745490533201618552233536233852429122668890816581252271140448291588733665619409123614360359396618806469017988238764425246706012523413326848928846886996139291231097707499789304086436434096726113496186876043925020030759107490659877888971115590460053902221441098165904288156188103194756369596458532476591640242014010514812748218200536114012562240671516174365593200467452302661124450122518838603595582966417154148642769438963604129312801945457620050565993191222102184481654430543542494681314082858401180197498286423785801210633081316752198605454459338218330329969939301779381284575548673425371144596710642078328839204713201060776963523038364151810538130193579001656438719558370829579554691730231991197147063413812599375081488622976990356075193176239977738846556832685992065203653488215282473468033520832245015526672188632273444049200703287061602761053110700264631042552134485595376834668338878945467745060265722437239504013925657962081880514489580759628038729537296166980674386612961113481824568767853087225816563757785227699911188684908754817287057505202294753241961199773952343866870053117642853021906730433392570698826138051203110395392092958959272638660600384468703811186723379209852881415979806803828822787440951092159199697486432513931465254323683081097473802281828497831356455809019899970353288782382078436762068870559436825172751865822022565234525224704724107788008202723723530241740678062508968672634876189921388677243522937748624381918811060095934474871724845095130583672400677529338821206324368096856922531129514523580694665955967433657674458484358877996815966111753582718352521998941625310305153371397583668211128073671628542389281955033761882348850967876710853591616114590627794245771268224557604114638824010652433451035620618945620718700414524675051379307867590168244902900554437019311412592443357422123777021391416378393586241591165228229862780870904617772988904168253953641957545241742023710104440113407000734968097281958195508387355648308724815858130090754006935926270018901524014924948130818410130046918207283608385766941450624452346851669955000984558143581085434359345965228675613683270110161232876421257068164586156621704759746211228603548365220704475180408766996373235082426203649087287068462139957313315774226900816612106584438374674026865346780107542919577295380073198417761548551176767425162005627688992247070053382320026070751116419664673499654282065449303672914977852188020692318585602421111641827762184759904001371325836237123824849283351942768038503704984048069849441542042700115697634465020472047382828492958119329678781550927043128793330137109982081741283154262648749331768579750943422980997119216660543698833974814843316103730819996243474162374947114113518751941512328577927896538500306902102737721026220019703423943175303694587008471575050034968652316230841684893503603187641781898026356085632371952569692704759015994886691241964844260314559242164118527852060762410197572362537664625132504885556528767636199251422577484919376305912188938907635407861918873374899058737478355504474992595409217493477632439285419958447667414415596628738432183496573304953854447060762092631117667707751497673898283633320423291967531447599865916277758645989895002988894325955531895670208740005862586409985925146478270159910606183698141748388176528619627029859082134724840091385962408900899570913615022574121957535995230919995598589399473655800910301911563370407527950057226686299521789757581613660345583294311204243823665209694516474332465821461091527258551192746763387102160607870235511992777520073442701072662570362108298259031264690018120186194013146362925158686141314113036108544701400732012120100818054691723315990593001065965331123930921859666654463959368981171404545655990001670494322403506144188373065249442119130273646537446744712353983388561501567726706764315569933107505908944596790196073368398172408426197622430780849773257359875162768326019357533528407349151417817379909958064619330851012148251565114368217578943447926343853280618104627314945681755451947349681184498697031645647169800683072312475273599562687616438100764373314725721918471374219090281196121928606932845661612945248856909871852185063832687502569535450117443687475886364299670547361738913616836580565956763274161125844753720205081495473809890761864210449721694955940541692733510015072060931518985846772488727602088980407241780585796072306512702992693852231295778614631469621987525276600940838303892422093985449032784961412341194410611621041180676174282048264498779925659667181715041646059958118964606960984885351168010346715177850394086432557068823655668562731225977024157580950576438736571232008824705151979264198316181001679710687667702966169081206131612794663858875584648212146513541229918928513388009996269340548093926169570431989235726532923205843344950588361435812300146555500829036387486010757948561062312101954736597278624917985746624065015133827605944842707035700056938893790273566678839338074606869520968049873464089427349334460533082152368529706393367926489338092723816935104057196356133957552134422740542092025810259168431695875878291921630996673566494620881848576527631038241681978720323051005254046099154348828762792526394746429217402776888612650478146586055779415588633646706768600912500611255175909136990256503902728389543172637760184302054110232639559150259125425589301935903626071601715326836494959211251705653838589117993578543236001983485658660039497929851342109274228487965248520334086874946894036824568660612622713891826343605850227355369262410017236073045289541088194241385003735690085151425694917399337830311622659520669782172669345204330642454516703782732032337767998757517529836441302790711582547641848860833968526386661454741408091567691999620364324229851584027890191994971176286212724471260469800556716506365360811599470513646432843740148987557294797871382141561394652601600872785517282441468486751481259405194557024784797687287567614337827934072540737302853298013901544977220867872360830464233910104498540743824809718224372892476611645289874126152093191529779217512596035332896554719650113147354227865698682140044233408596940894846959382709887508212806220118176444298597870019912204304084270506987811317655533542946700642939034816559228564894794737701705197777090534976827068385732766268185531540439315275942423062570275435147291477476462172957054786038859112680720655232991422854378769401372290563503820938989071797671484912756754517668843378785698050514710165929290205732432705405583401394228223664843245884779159702578712983449557499252294714490841894870419249098706787110038254561546152869516628980882600242117315215877016728953625095329417631051658116234299168585293492514604607979565660127903103628288219918302410516490737824063133657358787780363499956924457017849941536124042306318468023321124040776616018944461817650294309889164246707987068644237987070112906124138293850318892733304541576536000425875645021147377364018048033308276527956747785293006187501791972176787322458022654272483553542122025948022414298592979883234806627059728189841568904604681311797808419634126002311476372424106989934191885678075288186647652759726931472147859158980274768199675601574587734007567815324651221026044782543566045585859944643882330674904077831665378178940104911656532662242340603653255281087538643629990653082875463645872745718730089764040785931992139540017363278776986909085934421267301774421000153704049942686361672621955433556729285416655900426973148167204847634096924039713523826080529773788031699043708237081696421505738483615543168226945374624269400658031493483636066868085627938942518280631669498024200326189298110622356702825473092642227816105319697320345532837857532075925956325361538604670158348078527325095951142171212779569327305098955045226100421317965294365463217458261266176921825698528173191051805574518316435855517301622713235588128933816309223656756165981091156978338905655418552540141832498802986416902171633462282455027300114882893436517137436040993666032180573627904250493423476937626169480294681066261311900986746130945736453688582218362609438316397056496685839484538850371683285277814644785785683985392074553318099827433889569125277888767354297037358640662338918730587305274221570176903303501584901862690129575057390422685787275604493191257436992875427524817429973667764719068163721054534226942281401430479322042409038622097897817544925166194946953973541986638922620553792875396589046024922450823684173490501611405083547115436717020955654921785854983010436678295029405051690107722237114358651908414120753183312999138915291874920509511391376585646038127313292150375037174699279140136508273317554302350542315712200914843379318956703015892708446076328857319261207185465104031392460599962660605067200613754196827792945426258792346798143054664380046883125324246932572252784520233535672732430690753182802858673981887507746787920484114433412589053187651306662210673969728256635144124005491012900800009518970148318292839840645480231087022339653013110459401310879553570302163137589155425025656815158126584185147273074211627158708848572858025574724254071301994680683260510167358007710353837614498980110973724194847710898968952695895601957415849795029645137670406527744874532962741159137426636384900099684810048827379111887537305856064091055726780449625371742997846897830032711643157046109211569486245762060333630336358089412205572229640132751852927392841530952863360788830713303336309650170344339485123238536802910704569179833570785864816101773677481964655321890063383010059799481113943334482273918910515994254058809121506558756593891174204458567269138071026839881370046208785189915807595774575913900585823633864856354896343059058971449181016990039466919263235503144059141183376506447163218056809271238539029223775370202001490134359290190157229956430494495600079582076756291972391429392249549216687904734159761520958310838310344709828129211835891620125905461025445772607624248705659941690406053325459006837101299081950975358767002012198326060513380457625832378786546455420646188049448138335547768136478407105463337505759842362407875408476124521438830067652240929485663556881448836926845178143584435403545229172360773899090199462438289446872105099436593568369840337409052249600229994019799286829975518674448118027552729812644459165513938298919143923320648518056256856897602809132106393226428924792001439825914583036491249735933677909486150638173403749065624256602989761815871039683519457994963818415490691303988901451417640482379719746940522501640686768700793162266062561812284291566362779787323413251174221894662745034615683347093672860875878033033129764835518109898567069371797058398553124357480172191862023035701565222671070888971826448479063315201165539151378156946199949906510425878751141322987294376911088578021581376576828111456974108642416690388755325647162342823477099482559756073787344795347673429383466274824866695339597396892493430434560573863152441250545714877412419612592661147615865483491993539992535011358310339707683361579329635900106847025399734565884583529450667536982793453201430757545174467851214375033748945205182572606817155850905317755350325264488147898320904043222617335589819682417393279784601292100926328506995306764409658712313098417378542266697526254629949733708893958509363584947065593966904237769792982285178134550024754574953467134878779853516748390847714954828202445992114020510790409818091549758255064866746828059117229715356089375461850090833060146125911722370656612641668348710347927299231575694696132173292960426704159243610979184390114107449155299389824486036972017566813183924860854727225468958640997814771513443941710519624759448989296359216571038893759802080136651168515455471778237444288529891269914487244664737026181026602854044631187927054626988068020944550153904528103593385255688916887619021606636063102378528466540077188611228546761609789929101317256375587639175795686170508866349807919041558486694570161352802525117668335465966441827159721901019540270636818505148197911969326137806365612844322928771180969346340537843231751621546482057367366716312774781478936510461699781156661073792880507360346783590698199768118327179986113924387525317676138253767970639020662613048527774620269657999196364962821564549741734570674259857586484735010228835846581711544897125210615922960892060540608505385938128432266476300909823326470640867207664279464472719767784391224053666740450655503684852182058122586527069768531647020261021277367311938001792404926557472781889724744175131678703155637921865085582286083697710811825336648863555303264199943484604746411322519049885712586746252408488017566893832477513940564110385258894773266731498679998025714031932858523842342317634289495225825798519815189925897453535527481821634999049737247333007012168618573942650593127306175692913786243480530583225412349853868359614308916325576033130794480381020861268409095679592389249266838029599613875434865567927850368855922265291076462443993832944576264917376380168570584821771021685829637404776180359080527681278055063524930778035179720223462496008276352242635494595555696395389953779803424776738437431833553511949151688615512231063592736308626853876987043641702229608196404440520582448958303755963048298845966298110066828041696143757782069860324300659168938725067342556886414732659063607352686793528552533622268871786667142535819436332298024443429733373200394515725435036316570437567964698052156593335821889272248050039909344997432732226544435619486256661203171340055611850750845565346844595981766948374753736975154725947979718323430625259824808939463987111986477963193801873996136820625946883889320500411859597088831871862876550882295081661130522337462240047565859695211643972936771478172709367324647892262554813996639591752537942419465820787665651513800159166787538158984968321133677366267679951278522368164285746997878845901472512255303323535920460549887622068115047197868579860284314756138389664069021202815096107935306505157345393816611393018841006939843290309448374427964310767982224166513510627443386348299470712331769414752392301945390220582757070644712313328150753755500557025416088378761725166743257269352395287243690807123734492370510167436787189737246672224936970775103656885385488223491583064851061885829063491198909354766690798936180047940112676766269007220052001547372303300708838342544261113981585156752820059238281261133189443043862935291054180385468589348023325470237291007851534113168335590309116739616079649129908795364909593465987377952951218845963692856355246246946455335938873304065141520349150989847008438057196642286263110501803163583303821926795283775119019543275705497493302235061870404626062372045309060973256519965638466185165356305268306369480335982186795488523484623719202307525956477745928925754653680487490552227494384672928041801200073634486274435917028253715513050693022260120104003283471168544392522843585519777395627228793783363656594230345737159445155269942756922539312903655614529917210624028924600995062207342069195337493800011323517454353839087879655620428248481434147778062070226527798198963064513539634116345281384539609385136971399207007142658599592181152793974842399280898514582881697055140627965255143166290746554700209259937228024363823912285375864822469250923221134611887916507854060363444079608418826699138836383755195806114352382081603473620826231791081436434890411560240282739432675131467013109349816312622913552016068292820894184079747974480536268101099143750905643407039344995750073564835508276616374277356421272456280041252251229881937760925485035022142973403152129275493497054968350609274222858994078962058591470802301905587127141564357381643337427866825228317966133742920113347896118052551095426411380311385448831375479611751038747655274630761261944925956699576432681153215870158255452593785425803320058170429961279676659517958562721679512622070807106345016692382932406231283870050930880371388944821950091280162948034462579995348890673321217679504773722294903505298722580438858280038325338797677037706687409815908871757802098049472445966424161560157324471863526207927313347608274335898253267369285266006455878612844015562891777030280502095191540080219963493609752000516626098588941085589215319768306181430760443650496795773036715833973632207233863335593211558327488920909466600753937395956385043505123769969998678863165589822005792820960801045525860353782213949870340891468915754275549692403910000236409336102236048435163902196519284982299430545336910598091378782810573358596515965973894181579904924840740263366346700481680814835667065865011935732081387563273924259798685046871001107569314727138808935168431878750240115323983795839966978212832459181765054647335991664460632167040052338301893033716511796457885258959118215012745708540371947446152963160155225972264467716506064779412700307114494841077820996658145989223300990290253028229580174578018116732489687238787132971600511891314286758138456407012149686012130928498984062429186651212402545909855897648176805103591311588452603813885489006376654153309361220173562570078270990628166653854339861071368812969800183006140525588223651503630242253956759902345952395960694126629541608284804122323079732129514626785099727443791849823092285279307757953196873091287271035686135214841780950375621885860356230069717490126954873636209133900963782242867008130571989525963826833138874998528740736455241791312351814438001551249211323626738539448001682575607196084487858982597071154999885197496219916221316144491931797432167266320345082385105293060850802574281745081567747986352847896005914178710071114873854216820433121369598650578248161933025504468932683083948483876427601799092256052898048233432443754449582239095261892324186761186263216034839074583166549543648100602326362056811128953803719928733873385973105526076350002490523803425980228040212260822051328918448026064756542029709912144214346574839894803450441318313032790393029030052832769503272579621797585171598327948513529537162992098965262622391178171793812822744546545248533395388860819681651675470845097546112655772962637884085494362874277561296476355639093776819036565083957855395969860123665951886441464973107313250731985306108921115850732632614326441778968198837728071072939986097065106614340436946342201670086777295940623249833559498764308839613083887851282411458296556895599450415853575376363294694601159534679157878577351266765181071016138522934811350058576762679342516345782759360673664242795616575132012093872269829094366824918346420358550990520662350264721873565455886372391338373968913693689488154157105887118756982519452009508658761988842736976985300022631498147344915119022858254220640959648057836881422015452025585809986011256129121067657917134921438204979441981272880960483780051721761884837362049563941898676253130519027816032723314317936591658119371897263586115965593791084091826947670755667238492410882502057176092499832484873669097610042411852468732391697621246399736942515425097130611338564010421360886018194867397022644727803649303165216305428471165755219378031198529873042991897407873044014828500479316641504336148983253556503699507545057319455380506588139910257949957022216026666746260586105012422629234024395948219756522737711442612859596581934531919861261797495089039492271191513787773998464293071837975587675330143156904000953890710578433450269738425860062928485012959978317449908162574674472041585248504135062360488568115099729261189028868755052700158153428023952372304242474795293735508680874820504301237090112325538787929428515780122355053981820204831807741466946044917564534858670162527242256503566426299036959619764193212043672868070068845276332688870724740611212226455807209340252204192589025536089339514814357602090652060719337722667188181172101027188309410882140970542210304045197321467879825064166409806191701684818441354473294910233244996487827268881647746868036547340928594104399664244685525220332751370439402450321639963830574507171875415152965826843254171851395084485597445717334447925195653317301204291932248561382014301785483017343096856514701354927260302503017782126372040999323871909387172305518829345811321673204035052497477191490168663058784518636733759619581044205757969147400477962078363510287334515954566596764272665063626334348721033103790643702836297377554329786945420199763102739139150496792257681551250622899595411255118480366561450964660985534687728594068897448702871556500593920264024366261331043700411007840443035244254689596141009383710754867836502923677795298510311690214454166840681544124592528889600200452499573599062829551475853341751968253634814194412099752102412310393888961806120735951306206131384783244017256552660022143312362804945743723063624326631073021623711027930567754882237474168268351578708757786598344778807000112093449360020611101802929356264632030658826622657198230320061433130658735720534833645275677442349557179349720377831009388023976390411739101359333610124514677061218991600203285238803803142673200724731353875755185845400000517527939609463918022498992512426380323709431247959178133358019970394170866270314192306209781579858879242766686719333863802429336742476138936762991278079623768272156642402124048953921897733354575960991089612839877198332287500031647990430485696811015162930366270348441085729217743654646292831762667115207763904183359924542496204525720205879580193892375146842606003154136427014668966262909651205873632209414852930798528724900661291070197967784082882690635767061408698125499291821910930514060704253935651268791820279276482788417645009753358850262284234828838074653813242981363979497999330089655673752907767093797519225971798957412262556116359799358036553789040206650744312115283125662486535258819602397401172015489462642597422502653545981354379765566004534913991615771509223311275411084533313805132189779820496428318827666526481582752440218464333425472392121363760586666946735577312377541570774667195091573096442740023161129538063851646424939428839609893163904423610436767679435852506708752224974921714141020837140267865121879251112978004006176241884577425202972441625298194699426318404612868235536614329795771486043855104929361893040615442984710774276563236377043417721523530688555305575268398442824326585278622927571085734480470512589587435091924062888616150803150714950743934959980771392405699514515850275387104933218881034159067885310809055124569091788427245750706333090521761317150812066208948426562290029729698569783973039515491700819307185926842427540629138105785622710069796125238243035274506141214551620334265252935878268406167244421317745613748720078307814088276990281320866248163272848746231148684013676138235990519250656582128941142296328495391596951457794257673967027862068971808676882538814765747718802354624570912095229878337396913441188256047004424789508405764549482253461240572536097174592103438447133554240059725502751646140263825805941566201554136543109687103071557288521071257793059552522414428387696544253783190552298486860710781730105665996335076096121139365748042358276874400855310064266174599666984481126872419212490895871534882762066593869361814288939234249183711322487411542676275038058053653607451137963727440198170697615531267748368377106396334562357081009278787129285360809925176263033776086080040115232793200595538471375313857286767257551447514811017944911542872351190095748276467697307912586815106241580689649190657927746015075263738122940913740804180730711882860060222396470493979825303760803414720378889813514242318686601797965986556531959925487305446954134320502998419005682471135711299928654005250250092698965497742088706599504550115217243805513109506689642450277097620209758429190605223778857631083366985654923256833516622322069939530917826483481955411061281044422877489792029275993167162377397630025119457301441459389162514532527104109568890047250594737313075099572137497983920148075793382629634758171626839185557805059382921116480913143116985018633904399833896104397649394708266829127158330045414950791317054902818001155679592170652017787594802940278165485537390022758746078299623208648737282915654021929095052709555182551877671705233163427673537134329593014311657461634624607657793434215560593860268842250874627491178398614859649224173276639449065297320821541405220866379171461020209172501662875821699285972738301573578246539427677095517559165657088043617892839937661989442802700392030773732818235041468615888465128165406772249551347496821461840888230272819082562955912937674206143367827989006173966340911020694039221195173530947582908197165729274869577669144828415923161792533567811208600846391895045138621425702388969799881287535766461207934247514204483741025558843664308368288304883316019348630827591188574686371813144467621643432106458143000102386949754620030783399762787060117753848463754616732222227962798864062590478330850126964833037081007607852759986091270273100881961278417084268799255713123502555160460840267037956953502473236577620058805855210599934512764003494548845890470688568236813711331458621323115766695077722511084301502928617636941084829963024303464312085035993718931903360803783589575417872388996810549928912280968671628034418774887036625624324553469351464767743868475648555725885832794932298621938388775489417469711490121348714581119585911607096507230964014435355391404842230977925137254793550446867144672037444882538135260310145032242758611825716449317086925223984300875189987771053212156737080331724526968603028817074678653474687460794503652507113751163713370017298438606580868111465677443478748257701191114613669210546304681358211981159173059344429159405397511253773795346290416255616933088425350425093164436829347555570368691416579087333456228113262873905098338695054667345693577940766882866670931649698079745394657304694533723975883621958235858599456692174433189234136099106578649795140454103666230411148962221495881000051277367054019586264132983937708192664728248433282292242151203888137793390164398009338269728872878955882396219552529515731040996506841283199792520374321807079916740983927374228621205904658319752555062886050415386963424035413136523361435718229594700708949808087007539479012314758306573370098717396532668496628119100982450273926356065046944499705776299132070103058903251591762013875586989189389717459576423713854320087799399118302114286604788004804471793252074039487344470592210935406690694116013416788454447451874118153090120096009906750551018818417967181597978480965892906894683545510601791878890230437605164895899760636445898316999777009311244527551875971009418357829834827828659213822525096798540258629346533722181536227507508522580623994959710267421648684782908123027296409125251932103375405268060300132092695823471368505554236182857814584124314007457362720590413086296256829643197962283141624820713004440751690940430546221865264171527127354691412975566721434387624873479332605906154015194451054699718297930136149587156795642968355297392823173961333845232618811025184768111756918857649199173803965089335594085717017728883969760443895693118714579949876023143591622513638105356235833383475351996557397654136904748645737196626943886010581640587639431743838141449387352353350908698978074819676178971606736041707011095408619141320738148428254145652028360522216499905071337758731013718145470788214989106612111488927021592313442493306106541019255864477293511899684163472061434659097354356126197954634057778367530783669501194216944568647970479973820473979805929742973425287919378255181233777392555920392739686808915453258650247587779927595285818332973848312373370197519144007854602614808886034582749964490962622214866709789438911435738041231336332357213670556441743052477752685978854038778242517801270520636065355373562100676112010690704916186834773914766676630360513469942972210914285319696348950780487878324104711690593743945060931107536973031134463314542557351377113217785275592013544838738631044510044028287954528841775609178553996298158804604314195044924402253150833170836273151913870270656483758193757275401807387668846835833765548164775024350179196561481243993375269587166775281420010447143007143296828978310679379807415041074991404964663435806337083119949064127569141387771332161389823680897767742177684437965199610450287386191616767173277012467114099743420267455714474829322154741270310540465282261257524968094985149919344710675026200655612523447404090220133243023280686480550159253999532430758156178382743460585762895866651143013407698008222180297275995300839760098615982794080318261889793471445521038414037869822998820211441442733085769097504382011300104741172957226671028456339886914490412848787539077067153532545825810883121644824277925432227917860102713666776523949114583167815982620374832163135589968869194293582168614587803102942351914054694530606707295687378379395069670742957270715838929170632560509509506102102796448165047923443168631782361910344417379819009635714232001992482608776417956836648688561679855510107075433229751699400097229242180471232418944926312795727780829871347682310354830662347203037831303256182840112673204156609639669961823985627587538306268671437656230062722979150404535058767716984868617361667043414053641687421889334112695507726730672655366170671104422910999129511391277088019644952137300982500498937881069894030528602293322550500238320315259897182407213519990376627564944394920865419951846545154119166197574021737688270323960935167099164373783711180546227454109349849075952975935243403340661859062618258463627101859123830578875931298149118667776438253153925363140604065236201592642411515254092224266349625305135953486035446508466942462572423868704561408650008152382808499561114694733406806878059277892505281848928641749050085742057902774441245896936969069436405902894520080087763298380850132029798861935797287238995701328547500065651912092084485893310946913800140068483923003957886964939180908187703607888231165064413760517731674551687953988133728259853145147276295438046954534316938418161253032081540627086793717795024327082420125870524115680324511025766361564486504641028172895221720937719472955986963430392582850952668771417032266385460985755189045327349344206303974304975937682778486739323205297599321879289174421272014324778063893296866470346510022675300964641896429512039942570712816727752845103411556226463039083141717496332410480804936918754496574462051834887312007015081404488973287388349303793674371595761375234312548614295147794503780215581363266825358256394309915020029812213268644159601409942394559652430387924519282987539433787461361405935580324360968097509646373914255464691681212393842219542335238359691499532840684277931779192522060877869757748749887801943223044460279166069008180242961182421655429882132112215480985642334428433480396555916040515844420238942169716109629527183140153126468216681300281691500240145172231995963665453688686580116825849875733005085557121435209942600302598865207396115454032857707653897788745476745612335758848930652057955530965237369576158836861558267803053015203470489352189024371278439865570462020700242672274044141798880784356835332076321174809461601447153390269556430052346018031600092904169846915869792689861652045458737762615394245096544007687499687518512239018185078523940829006322628295273307016695512649218427161479631070728973377615967943747597454696180097927588403967874874773714433194086862191863228493620376357148762393998348075845582421923753554259605023823006152239358867578537038574104399954429247544957173488914717893832356090929465823595715356890161764320981799250229233403149685987390676154424089036326832127147043023313720591766719947931497426382923454904488831167449628947651617524268344323533421940378229391284290692742101761008943222204540130597907836078201603894999298308734197860356849086129198990551537154998091693579847664929416332518378931406291949742877723514860717483192651981473484652460584803077766454786158315051179193230372508106382462432655692237650441039738152662450494659089687208232619246019919082648511188576763935204742534536362430172324884544146848646574714922416310695936300227574434116058610146119039146573647251229298107910828526769648538379606744151060247242661979225000357792255108543264895926678423814395666494384327795407895337463342317141012946242689263218658283402202724886087180850291182137503440541322724272213582036857777100717281979651817812440195885776878897292152862909547367487608925869317626418801355225213300799044517336218025335255745570278288427340074594540934248654026391360649128207520491687162500852135222003611379191739539548055097864372580715801210234062419504863711939207095087063910339831715913058749550837072397999058996867477564662131594832185300454609728700311371482265507405038190057878050463323446423812150137827281374194751352682238002406020291542012336838897089396469550041400049190048157636628905626446175672806757703706956181677723122758097230841334543956855698761923870365741597798179745478311410719074041160513154600555651486759147434570345190707206796794116936764079646181839801319775680872557480262244847007505941299860633291307487153881169394859409132535412126302595049322449869832802709374341040723821766570073182013099708100806991099652148232733344645171332778586367604868429706653210630917045456813456108900651014871213811892320242151857433408415906670482694808456689929794620873337787876978999401967977776104129955852259083709152017391621762515519724727711944401515128688747875856665729156031914461435180409439757925744234471862629442513670138925460621944138881227935491988364643798192655712417254413145086041883897242688824162417400273248584537960443562077892770315761293362682474065395770018041656492204012041252831180122169645390581493727372156141875332097747433710468118758781234505774836817713643821288209475107173786927712219339544602373278116753035142782723979327608081202635924893755471365573563085565375905375784570252810936799105697565295434645836589922556664497740700950636801494361310579354970017434736129522500034132747345884143930309613977257853718769963401247910924022597586335400303975679764833114580863485749420858172031704860387260505131271913472739986230307686807828803644875646195489448479138621296101428617128680159455698238484295422974224482768777255942448278159399571461558026124304095727650949406803410441593952479479930468232721492505489232259894430540324390792467243326874947655461418943626130880189530593176097228866133417660736771531773721093011065194503746810362174356176621428795352532325788533760615939405437941387403486032732024156362945313265651279474830350152771745151466974499213925206567779847994316607196167204997664159980183146738790353877665220951715034412537789166827591050070736712351149129382864084963834545328164902520312401651349633947717356309256354339174096727896441906405115535970237175004980085525934348444485169319238609160766470410739845090512962802120289793386198150119538938207696532859388209162288078379299117185595890643516356106131720779390137173799373153880877924063420768606937173993161040480057320577960506928232315870028717488706112115152752864296645931019464941764122504710018169043735266678604641520550640371113479595976518748502598961166529404676662724182582945085108036201371997543352287401037225461623380595445209028933563076156191919572983648438817576485306836573610886728566709400012487794862722379816737562225053899433096097976872647779876912075792696728972816802984571931334556377127607457457593585118974032667329409552283908086167877634237044763504742543297349944589917914784931501011317646577736358067909935886987808507173090268518196551268834694447386657455737980074942901534329191105588202493610875828060032995197472105457823284977709997488795050812669165198001193011612615784177836126878065457008587740658967472751617866446919057377033570011250133993314534296169164712787649481991510736987736064637195521741536935373761280105959282914120815178091146566746836256974035229753821880767633936219961692494700814313561021268365058715806568146245779603973533621201325128320715487104663259037743697006154350991338999673024202200229697334641726504585041669056006054357470413732196421307972710009718425795306253684462400629585380118988318682964034508709110303576916639085941049779316950084998221437829020975769820907746682730078802327035714350435369135115268588045782964336931516770513855822217716546943755155411052688396637823228528405323857563741427551492326605458426360132240916153312384232964391941028717844771666366946855472248754424915010684996486477306392062396596672786177250981574846960177217560905102255097226268693896120624883416957538863610190283129408425806354591971587797529911620086251026802752830259285150868888919049092557520300983169763304724974562004959504543047470354865166468282128110378044365939957526294346350454365898899287224751393047026353421497759535367433332002550337134608237605656998576861741277324888740148300189805711220018387472507200160020310751859236241298129764437916887372660455647651310096778518351698323258796312948139677812141319538055812497931545114967924903476430021007252038880402868117412791260370734193905430716102457003226992088399167883486077483762660182047715567861076244356790210906071624152401860038100948094334873802565565318715476851134797477794198132362163200890504386590945583983598449989137898353816333178010171113671922966530611757449717557450536591716403645702248831768099165613230034135583179329965039212450627161670073666888030537541024247718654299981084781777458145804760986855974108956041277760527284853349011671544248008772795825410873781024710496729574087570949941562827511707068722137301047585119915870469854625852736374817722922981691430136492368920246027531165234818581687120798677999004512984794439683326098611405630968692137912997182301447373022656499204994300219031368485800648657073959848890416355514187569218532536698523839201125977221492852689303720879598351683405773849613352078016909520061693488766962768372930429783632466729416007828278479690843886369657749617556143235853464204864271901205891499484760599635000386144669584122171569594879558599559966954550157761681897540204739837004612998691011363490753373681253964960213057894369188669130850724230008664696656403627899343081173228570218086126040101754653738264790689943532446295925372391076174715454142589110955504475065344849323495796802101501731321974337716885029144944948644737127407268276655005718490278556561952343471272155413686554687270832692991153579697937398034941664975975384455002537788986373723526667703422854647529676979450255269204627581270660133148941297623118149930806224779263361947099625011765537688475561903163706585221241577500014239294849271100907531578469445551334480482780295396760325104970600507642238619715375517353538415942473328013017793622539251990200152183890282645691460190269889161452476909824226746077478068868953878962591837754459428209163524940824621207492470588713261395681832785574916669961140422926995989202561485073579793175200474555456863380703952847738531847893714640353647913186091223746224433177724005157765783691240999308427824452880651343570730565073575937728572441651771489423939393704695463868447014253788112542659951918346437418604511830951945386574086582957036885060131345537356483266238813771924907654939728342074063353065878702017706973672574500408859667825327169029678345794808576286170446813997782671543440987941019314167383134682160602396777033989061058981432155542652218535094993580594563223738924889940969927286306897003044746848583555920903019222485488838781531039443348157285407413671560856946264502807472770813206878332751319144788851760166071915567890992213612189792242728437582869677817591104703191894299343731375676481548663725251998175004027096996708240948205839992430791415527223665631003579802347249924814153478619849244524133594864061992241881114950258051888911988055524777444364352127582046157682983121415253252092772977415085081612727412696463983650320110735550459212071905772499154392793414118224041438639228880669858641392757982372426412589075041144436933605913701002422932741601105788247680049691756644388690901153349587610813793195002175536196505294089423640876416073808149161338495083230748375964095080879328330544072103480029278628870220814828948502572433990978564436143405711618084867206399255932686448225473054986291195125936909667966733944423555391045691462695684371607392801614078426873036990876142572112391454753103970851367431272993773973212492402428487732216991900813946502755513113571672453902574112814265350855810069881717650388176669139207234258272285975818931910475834184233501800668705901531917615728675701883771050229201319565228585484533942985294726527109500015589280825831184834471790450351991311455990792657882345155793180093378447838553642470220755230049117230293146183173352001814656962593946409636245090225702494265446786633258176807721480173053722275906890477020928965871365525783257697547349614792627222518751531896100780277311429241529281824734926848905799755912304105744989357880522805905060345234034590103981908956873448045145964984645170186762054775408235547899062489532519379969360203437280003337958112488952656275058817341790637731274435904263402047469844760759130662642214222141444950203491772849684538786573073573301574085851631971374741057101622322607629870131838507423300704708598833433426253074350178424270137738697170276146683870927124859518808888795430685083824274942014701819387715769707506477697841158831783946345989537808683970642925863713278181481517315202607141320153729460944096098741956606810806509952492443210889714863108970671363770653561248206084836194444756947433232612287469062248295638201163008337956731636673765331129706824724676487016472664965099117120379144106346925200616255969859163337803432889799090920195567431619286465811530007017985726401942623760199127205009885066409448529520521984191190686441080970210779695326519692061990385023988910469275868640314279393044662601977359882599531820712594751769405345746168278960726000593859927052285157119561527251081729529470070751175073587211864275880865123057797605889099858338108850204063115073094609549610014800629446511247252431903157829819833649410462822490710887722243290479494238243174842480093363119098019622529079793025715568396189374145864528337504448316954715139517822885244529820038184644020687963383585203059310709401665504444669437290500313843457865460846364447768972369584499771852198363376215632553455031258167414059604286447033091092317422451749817871447919466730381584634292406870402902219076131564433382733472446161375901698246962603100537078399720467386677331522889408338153284591591220868028971543723945910415956364527915021863114469450247509529516459869354457944417710974150320750414774106587286903961798294773709841273056907944821418294622532072589111864698132960898844732577794557490993884500027468889147146349379153281961565172797828177389250387283119501946073999186309141643278333343869713663551683559797197959451769087806280142310386296494716222491890875636500556263657724784571769054936663404061961144368250170446065806751276087277290459886532140100658602094479585398412231014205721403441942479607871415043010939153921392919454437296716494549086371940296582204040346603003594237081954284659431246326453043547969858629896793684291551092849360010514089146615127329270165205102210282996285225050897399417187826872000432608908598450545834127234959442418542441176276397768711118138491903038830607117765087315491874923614098468894049761748749271858083462550906514967067477244137128312731073806739282756556190118030244160823253190437059656888736767585261070494011640685942036543136550571932945156463834595359628962794858708198237605401828817442721686005275657797618346699131865559659646585700218875483358986206058486212998204250574013164528320088982833581265871025668506404216951313565335702103404053279821756099503323294359342244873491144172590831795597806633652482833688706452215730711557166764775333892796413305798661082352549730785050356055958269421042747658753008416324817978681070804874458149458305378434258068657581092063549456859446024092971101430600767915552380381939400122132489906107237218041313515966484314361858722303054044229304564413613725683683572339673366219012655613209082583885055763207796826424114754369987869754336139919444655180424633138456148718760188761521589927253002069173267540551406423895047469650779268560022771895867344207860882825949798563875232406664668555611026399456153760524639090493809498432752149021288013442493408263798431524028128251373970545881161663587966593197105165911362629000651688618924396109430713536096405964267391896655505496054568622734612412202148688974589280512106324121969379601984453529015747571327059021828248396637056828022263346289664092857045493388362732290501990366002702158603080344962184070942384496352943466427787400878432382416882684613047622569409805990033320537180612239637622366858964574682188369377213914925995051272291856434642289140342469921369872439261597522749503937859249523399689906815806574469962721640935403350868510226136616934038307538427210005760245062382170224975305984970095102744025051936969759996710055357645890709817268078347963320241859984990260532161686110808001718064354159452337547325318581585208942442519683701721281735254596449351721317892638180400227092003289753540364809122665925563094987276618568648890249692742890207312175749516885012918060891860075577371543741013825213094544929781287508710753496748735199327076507878827588743980418945346210747442395151436770682741711146979222215549558580461191943345456444258550177366697804960051713821500391886542854013184614309758864129500224668894990278899692474241268594355030628290750913494583832185293506691928287779215815986115447521853869798713858261019511273916773371299498408205776961108978157779316051280511604664537678049491260615972933612663513441190663987307012892749016096117939190592209539527284183793410693215975303638727031694491178781677558626983707984603419426859914889403431962998960521310141283272462296513626969382715909821173383142928604713677219925872029268034188665048183404184992893390053340880701110862940292458007343384284732374844316916726929706669616959164384248500036971916075903880475964330782848365252984905867879856037474326882400147412763450607255935083829354583200010024346871635771283610424321436659053813662617716463692390113210538037333381338009574698724416940370202117828020287854443094648801318507620090157749446765171117904980017279118692348375260100737802611215206700554929624390050315982282321418163645089757535321490314958669874049959161341722884062377153305742941216545204495210304686552709540351589523248116755043352390498896143240678609397071050771113220723720313673457321866721026071837238217063257566144658784096639318697996515870128927436274014238810879992002457628419938408735366709213862451685371799421901346412137524850200758663168193372012130388707818242630282336733567077870950794862928779876959939390374991509479658534848725510535558727634341007656965048305978089655985773128524417369262293935169578401597023102943999935309963002681370591769611996661759297814531535050558760415072123238370425190565809235952692646690733472228607667102500869218013459304107768424849931132358938330637576077996583390140023064895029481757114205875760107754943211624515185745326997327157657637115152322679719268859887478629092459478105791717094819246464594838136128362252312837362897379166059709900292743390388203449891585280051949398106806863534890294756105976571702264874633802925115692327523887088798515270262115182195150434157276421513015664348976809965532970182648099415198522325732377667445771938228658829164986950999794842994430910055394811842158464547518281847640785621222472817253746684884617846095131909553297653326249977423284142285870401196644967780192890432813176257410378774342444821326871467032453479675559940957872584118836437283779353520872908626566728922125303579412396692546679943486892075304189810658939106592947712640639130454294963781099467470663402929413160414170158684890767879729927866393806579444898245102880547608209352594420973099099547885711485237474325692575989510990758340589485086325684964579298444526833647904790656128665459703234181155964574264640918979316462253354527883276040040653628044534695445846217435079932550307800914520565391037742794662425196669480442543987962926865091681457387361572389895671138942344583987114274068633021024187370816023310984275553683631335094879415549529022683253390932095708782507435046213305060616198242859187995287229248644804393348005425422982063445358050283291191511089526904941850147437245602189798777500279763065070451210145579539762927354145357391289872755018065487590566902086896403102305465932192321161384553531387858465533808146407301785013722261227133562756260470043707379728284566714352711911201288882039633212298981781388373144476949294417431234859223482128868042826613096794449902660144798742430855271931453280197645350504857047104122217259959325699572221834157301999105531154326563551664004476776527456198762319690392919820472699445824791977364712130456589673235179727982085825251987946623556874814965967044994670950119081523063068765615091218787696757724351312747451890340054360017638208057945568689072775701574344812122796101527380494445309727198505822667863092829321214797908086844583858107118609209428262633698171480210824120390685115604683076880733271134528997621712371676685763966702800355289921869187502335229729736775882164040184551709109042962681910152199527973270539585873066936070889899824546026867545853256389990111433084880062422022805208071153378447668665818088439560617883597769295536820623952225335084906477985927953334915332908064439263006723229242934531135731796810214790310435370710052440088133942157595953350604199862084924207829087522604108891370070617977253956594569037321252114065662425155355951263647754847773931627429884301234673696148321841420185780692533162377108929960134580878411021727181898088042407868585344774873203628850376267320681981401657588746428203225780413187641944350381177513551314992947327725943568798822234198076440291033702180150187435492186893662084305702935760004980900477458194800244046541413928197989708567085996846382797396478313068380398641029495191785505932006170626921988685829341058603694374418947343747147802478819066965044212732185062619103762917016524625552212774232945015663019873611367397002652645897362062280895765117232135334618749529518319504536741551848865742991464051796964265015053978319108208071542175547718776584277819565662659868014525254682756217105012618710412526489632194774451229290749646242103905715047455451570897936998146150562010624350294659034534043603196730081086459960180314274043511349839391529942719999664963947227476289161559315650142220525122193867099881805069219941307273319977367836967830387462356838966006452381011109793317323266216871149452133750755263299152519451916224338614797292251105317825892818873443062375021232086884995498947463741381037371202726671905870752102268003135561151014510024484426703686816615979692690823962459078862678013785176480536764651362212861606967185499694082712204923047600399718630507561702868421802825622180692636321707970357431526291441166837429020849989195233731676443170946379075490641233960703340456012151378303756414932839936424488786408952067312058919808881674853041949330539193215061792008101948961862196801793562991683785284534597655226885365183649983876969516194966406076875928966403109897190989790145153554405404222317705066945531090995918551064517299132701218224939860502351785787514128637733634140426092037641617785418816491810752646096886946683350000388513608543857393091218494350998509792587376304330470704164661955767536902867900512390990466940071959837240447879513116128672351371543643570991100293736993078393629688841673030710262967869198184453415009045911742289818243850187590790628209020440094029921594683474550679191328057871960531812994955961780938615200613500093310820636872949345313569016385288051534599671413288655021062674617817983616525570832374515643653540261792717598567681608078880695568341710846005806728613659652337389746663408104913023375228551716458841765942620709253322188864800439547936120187849592733911069811199035921324836271951942059140043095838648099160313777098360277239022492766210748583941974152620160874398754621277207277504306336194362026708283773748582292470959290190827846522835604748091821522923469648608267643479788285653336106260725888221313413413641120868477164511233411160552857604131182346760621566873206070298490472412831440189412440896112381986447754426440124447241838803001374023430860807302063824128201567622500536798025370627643462701881708023508315052363101421425305130803317958855750990423784374183784185365453333279322670143998528455091318790305817264786613265375550364165933270576290008122581143088990826200081696290403602614297016810954586601526367256194346035860053796888715156868566241924052871965793018904991823135139314334227666831657185515492155363989813451891066646349929605487856936857709861567675682841255462017526514280673001237778798868357351160535273071333150663302809079276492192976676485616701117358781845805839567803150777163360946392766194214742330162980889978067932740857448217169792992779976293223604098280254582107610430557683161661179926803321679747981747844532861131268210341855818093456732165383673245802623216329073880689449974470544847673450003330184700650471813004735532907481289752720000154153329279032983599806486186895018235679508237845457931069695651031836445588375845062359103742565340073792980701848992705916132786193453492446339755596079607703836906328553988005439444530193887251285522030843377250429677132952444879290486688503556369155468015360842265706848558944015302328489564146406452959988199647040439569910596545625189208917236963522907875753061800804640046655017029416959917698898505618638659944119304927025459594889051209772679023028488390427834670920537884381973877579164072560546108525860073188114242488045143605187248500759273389844902339742051584220393602502467060979658480963347467301476044923771274731173813448490579036081990838037806765031778111736509051115848134809336658975085012594405790630712519695963992539503665775847650893060521885293897865173423635662421628093792206009931246148143109036639719699627816654928193773834423299904266089746330735286057585393695052913049405385755849790375741207401678349059932824445343406545950965563662681105099006672733439208357357825512797671032087194805346229433676371742650899189632620663142696220024311748444429949235029855192309992966018512424175457109949902707030263988089892358721766178159765177498167668080467528814823159782563941683485337214450735543690703952376273794360807322057324930434716387842288735560734112336959230594632105312717994183690210252705467869202421451456361256627252401551798583820115010602101818591044802215366653436420641669844109995716199522914862549121112520878084570513412307965222885296594514796248368194245187419547292991206004853280645915826826479380345776834830254415691038843917131183220489212292484749299342381848533458866778573621294815850989081353084296332190775355640441629360139857125582094015502066314812965965835400919849618543371917639640440417425850684495039215062027393025884051140793070817093802262372322442905283672814252657324375113687007867978056408129340520142597727408000031907209535789602619472098306974933214397357902779195368670720489042988808412750489950072640129728564973780187664169297489578531278031823067343225922398110069607834110594011529768285989761501124400724433167418648996219998833432935077545203364496363857187402519002479300267609744110568498874008521336439431252790720124708941864215220321809571198002866945880712774804467880994879486978674037104382173282357542114454128092450967783701184961517398648535624973559743705206242361241287573084422577803254747008228598382736399358714325496986362261154467790821122363195489282822688298049144293798710980134152734016616241473837201493363579137037499918303179863769734622934358771516523517348213833537635902267675417096932434086568365148035865669449660815965794909305381372788291302075920713374823133138977939245538830308073662663877907471954018862838400498820189715209176381802476454727106693216999440795320276047215636577769092338826227304925678586229622711264851112780367314662735638754554191447582185481031791902193445549442116196999762049317632999031688698712785991521952785211494808996024370394077082355537196434685303277871347345051924287667706777543373545017193564989186660754301484332923363455454961229019446031520285922463845128181509469421400450763906046603855356393400377085351463668135892319146431531967940621005971413549756070380474484353413077208349548902235128814556717985951312532079664581970767548434419756545751596477130092111687543220070874867782029702025481929063588285059000060891908762337439965718656565358986131042106291104681999752083856221585452684509992773210425667655279209003848140185739306572336638248680671075164314050742632615572649601887339944964686434471175626400137547055896622375187998426724253281200452293649259386482375266119632740876243483648111784969327293967809777938749700534009280746214350391480691093632425155359598898513075421604191835340041700098671054950549769293442613996608273012903464183236159852630493590870996489731518039735309587257497111263332725307627091136827471767049815884109671293608390191562664600167369376021974648079987982178266552777148961994209824871720682955500002577060166288158298774445936640244723250044517177277257096460406357939608734226221258513815700140641989653068250080403828275154335922343507045047435941449778302096022028582836520382808299118932159021065221745508321573301791957338610412309223089207987727263892999513258025926807370834865242887744170438758073969510666137660425327385301116344570850094340078589181739411488636039503628492761817254117681095153653286228025654515378854117233676131608259373350263230202092951462228113927912610877211132920708804554919568771935364023811465099149450949938628048026463687732797128044750941053720408694298458255567340911148954229174686137568423258674704371088277063534029624469037093256745779609705463445078992348428921417858478671742076269426940961828385571414045525131469807605512855760866186288818109119541322532337191082858099190266255661283029002123523821465255882457977265730171889976753909311816424061907319128712645993382726598311207753623746334283707331033180030434219756125825556490653191240173329842213350422082255062244423670328665702869457904492155414851525699103239044580894257112085539216127286209865547330532570794771479545522503957640582206301194970021998166576865599777640184337891921398055921831003545671080753325397523549786194851467837155608907142490892740052518249297333366147996706317650730088448301689535548664524191660157410562466328145484290402972269709899502115257412338012893338329439059106779628745027875211579040820119723983575440133190735616217774191520207137762092327009649326871203359884624600658175898747418448786202323650435595520354401262764461326160399844891316597300944048870878289955512887487103687835104191386855065832668212263727009714259215897831161918679749398244685749774267511953755143952134657876558459759626064918110939959489986555269349231463723398725515249208772985614291647967336051981106151425031934093318400131671240872762822053775480843949433569822861290757803080520539866182357782632199517911811826222773146381585575184619891386563054336615266016476641753917432670072968583792530745635435220913725152668597615016992683607635294972956442307540113869232281810478575672976051261477781138948813573786917657397084160561733675213544987524445140057093036359171933941074181549084103721722185337945318484769602085842363191531911068400965794062384933053036648502476661851937124919549188340010244329692561134419593425873183318014514358656817649390338488432152629421099111717400847319728045983346333942758532103533993402775028533362602875951993874068598089794264299570938520527504160393969291133692815936248741450558223239926981773320803122812418219688284095384868169186022759791559948234105750658438165193707328808554655452271168717241631845644775435339527323189332630831072017384246470409906686656559692245793973567912724853275581424806884155576670585428948090606579999246808172370898096223629964291640142511047890395538978573201070724939838776232549542169421254009230206935401862442330370808440040475347193866219485480645404246261461023365054037910263461877569916479935746812198560690051539856486237625757252788538751963267893765365680382036905865031907190393191198054312985173131881208218783550618163954734666141288167900135546387186259765228065530234232304625734126879493674987358399617296406597720893949201073792087880041296027159481160160593294505199746831474970618545580973166740052842142641394856746818984862010647516934690238283152569163079165656665612644284406046478944917036148202567504820463000503789430626350742082403090286279322563166037275139727606553054819378905720291918715884361532409947142845690974133951039119010601949162101022833991550186271539540306608127099297184752981450290876021677016734476706326660945948535189559891130604289557378415004544263037630840801107646409274160266651216549704613714084029164487302903259280608290977133298955748499361778441534648385836259194450579265695028031840331243755561802383361142785242104053522762484886583063517950613833430035750363767395533796570245230053254728460378893144993592160071404697528133190484420023459136078852120531400859660927283872941045719727101994459906312197040217800501737452744158431875977043220663980588389398702503927198687458527327838601011604225074509543137021517176133612064181208635284324032955413494459118608514580219375504785140569432766918541611797698567913017760898846025456984796118602385233583124363708129708346076085811799765433407718171660681357955229239037136965957161662440083330299175655413997468616567398476197524464239201662133243689777197688072326907472781040308818240003809959739577360068705787920342507072492892709833369274833686027428474868981819810743833024819482286344156005909629440823963426767965242630577858943318981345589411283981347530044997444327683362925197470525232160610352585692186064353356568529896825192545867467977944991564598926918441078377448795408818406554636759704781426185019804822265897891221124484443919114382328271256463441183382990862591001669742517292874106596034483344841466362587225265931512708507261023622864464115388180908266956211209969091983159373868692129279346824113019538857626297066710662718742651045321603751348031046475486685794672934175107377627881952777347756815974422854424227225084340145450431499753643368877225894124533987340714772213681502240589134670009673614738266044143978719958243064474739593678682416672596716987784312767984032505862071855537382073116162382843306318235416496008970310448351211213276488610539465098187971428295500614810141497546357918850518758017761608267752874409459076674998828285868540862960254741767358123680404551077016964483101142437810829356943201947045055443424412450168867846339330825166738142990673416389740472942537479224209860102991963486282726408778628741776868728340375607455295027980719622895017847891114068404321775282834886502045801841924236321176518131690912494442572838931372632889849956406121584612417406132401607074296284696803136573061133101497617923231827864530650150837985062051297779093952013921282261248745243557016928280246319280580222783229711679452888466995021489357025300507334250554248581263466783011145775177184595251070450501758407658675474581855894021916722263946399308918727965956314536572678574461673744415846155155186187082794877187550326180580672633679624859223116788574511260087785031632471745073295640890092119048330629113155798679261147678791826234048961947001264324742376246020903169847507629522849056105021959955580971010518447755925930455953492194852203253669369490899540258471180256425348511164827911197316131293145242182823750835559241173375027883842185122247701269007625618243488896132254769057018692630357013470903400970919000365814374731773161246690025934598493630034932623628034135665262895651632697201834551070767273267730910770668526241418808768171234336812984027612688675408067819954350469208266890151848764173079690750517390187680623133050277863754864057018658969935198779699630523690433186574478357884591316405549952614991177257736417721234159845683274562442093965983295599933036770312559234759622269792947870253084621178664381344114052528424833650281515560847653481554124811893231251404363708458101759807339670655885013025014902418464286581432698624315894576597825613964310589417720943009126154105925929321429989847637153530928352334071786667767506308028832776421287220222523946104524636230948785068653881199790733387795307830730615488638018235339374489111289678022830501632180589951306451931247625288060366561118477629152311043133604279482686789372892969388993758476667871510614959837501487840270522853238538800645996238745499571556987859621281452726594723291838878115652418130820991095422810043230296324778834835927853050702848391474249690576361576798532157873243139193549356699035474278244744918425260421089814093200642533200892254751442508552085129573910243167283998560632771067219172585970000754676799535611148893235657173081981625799265414742189284580400560672411594900193523513080258429276461207991902772383616454259766294989190604804881578060159947732820160620791111248308281110158307998584692151112323541752045824601383913280450491524386491070763564960816483206133693582330247651353123745859105711089019896571906632227799394643127002851473782549092482484358399525962913363201072284227450419845008915768007773969631406985650706533417021503155969649424792988133320142398677044599933927806557023338338856478027470302186966580144520057392100454694397196932148970529776845107282033722060973516488330510324413054600851380746467957260387221899482417830301404698761441808842563751141233593438072491533001253077278670902265246408189926677616401090227387109764003439337381937617826814456051220357413230898988939108025305649203791038056903741851079379113921499801428044840130037880947290613509382695263115377965480773704315880497152656171359516185268491294293426585485986589607137584443306550004188096144529665296684132720224363465172651474691373567986493285172208551641651414060438743145306294719365830949415690186945194869975469935434747409018029973961372781945446432953969832890538643885528694776314755075661893232465985139575482041474979838582823461756510442537981779065291131679501423630817253629399367500479770375738052532014016947703679396788733648482969711272575703513263589971030146159468283115914561916344451022954440404958778806748078095123655958826607396875015308583131732931413533923490068485516946461061708079687886611459246226428065049501719240016892198729456483126940720268895002114047841475363474606361998733887520907681802567786241300293896018270616628258630401029332575790880390010403633410983964221901910023522584389305443141333316674319321171343954585691381793308569277891085666330239667881394451506304161833821623507945775359684412677791174037966404343143317939983207163744329113983888539710190359921855905184785179566338393903326820087185437179481111349540460539899813203979877958144101127843487453913543228319574919819869138065573442460675228078731911287880947717282616301026453071327858179668592126210187863072770896364009262115382435021181000113210277776986094411965405538287221208987982227256854088900349890833438810625077631711316808603389584799398332451504389943593119399221017170447714959409139626311330975603222590409916117697893648625864392798650715550011728676829913371180361028597985516721957711636359893123298890639991224694925351115514329211123375915983219377087161695204498685711160278744678701200851140033634290641109612037850351424334339867230863165316617234588072098972266731809119428440578086982325861934453305580867471300595753820074565075872979540512948473254402272118733652780644627197270865690215207877957893336153000090787286268515105091270542832084450497122351356112536371571729640249481622505602785160072416125392718905317113294010206066165854179650189742145407568200447043548631785804226315193159733602436097668521589025191845600501218574935877011895042316495933576639290396571982729277481387869649825116605112640891895342086672478726872005400826771731030028574905241594644975842425656152278014850175040952542837952829951104142590186762956214319758071799844285721982727779995474232124321672456551391178821929785724626723836417912001105167330170124229765780739766267390035460452625957251644641844758994566163970381564443616374580358852174375056921661084306241693129179494043953568867165053691871284546771921113528329851027644552353245844554483615741160881439886229888345329374112426816749298004633458013057485220267010727965880758442460165721302363327924021529588647372868543020414929152755463349577894505106498579461966214636380816618146726614554203882606017384984447174268645410128689979234190472819285684303536594792248540513350227016085609422191067372578162554750324626924505232906546657360468392199754918474234877019569117016209249775967701484227230113640965616214486875369193801980136972337955309824359818426788148203887228240270806629739739307201439287037202011718322006624949954504944486586158272197982934234838593517913246621819276527376800811875924875021681924512689085326041491804532152816107917000791631713954968690065177012121007333450211996140320231838293802646923505050417259454538502607756605170572911668768432004708504568993818140220369155839312582548508104587100840194231417657236489245845237170299181869461413899991925240033842208872717963450188569493103449200888068598807487500420491766068704266336078222341981515161134687260649555580746341978961636202714755594724086931004531444107294023179143070460395664827481397087816351223568961191263568600059513204720644358843555934216475498858484313077468475346746594019161433534505327691016874288861950301564924099270739305809716832328360937834906028701948718799231364985694207694801971820813739675130380369814684588974957141724328007369540692628525164057498481889122799700717172633900524029998241610375041265827795235655010393396701174683308624489224004899672109258585801800225805227840814144692600610314919904529049706038336662326028199046226480346980649298216613491388246800996171781804798564041042124462157126621392968961399229042299125621929286781698373082324854221093427279832755490910481310741925379533554342529565380308635573604436038077211151828359169727700649590212877082926072108541226787732947390193480519809039064506442956340362156899266999764938350559121503576887096360878179811302035594747136404617910173512326873042740506197138747419932504490133483089688450951635764611538957772843410225182785945727830450660559588135426484248637919581312482977139789156859336964881726356866756021508617478020761270615371775115144436230582583017342128698326988573473832026388102203249331552818085276812711434107076782294733812504997816956529356942302396167762590624695979131392602452653458477195748177055994413118581344657268688321697011504639377739102480886708236109094707231589958526362473163849784992570361728953512813954818300505037017725911904355955564500688153152262176460003685031669288270870422449595465349179585123751984385340953863698608709469716631526097180344090990246499058347170381197113775075047067260268323680271094367084504931509568601580801567480102910279299883250019585116784101660795460985806450667872738251747494396746236400697789415827532638032065203070023793392573503903385072351570768988417732736029788759201987135370256314917683762476197283046872550227723761600513846882343750379902376683807593841101420974366231900271291238803028271043836366409095287848264935905188725851079068788610977876034841562076844194008919233925734729503107990141114805729073435141345869297750480590350195855084753933434278994961669581742552185446599161528143311047649226886518208720043432919664059062296858206204912176113397564997130494202081232259463927236721962323370976550066296401076153389536118376327547691756398262259797503093311836262606448303477993071833962226360039629853655077528557285313209779998948200090318346139246686666781469504496704916508395506301968874929188282422750161706661456442969301849632795243954710140926790330844933897600402563299382902546216533931991438003520944882636773300777689532807814347126340698419060156085193011079711820085367215131873777370967503240114192559285916853472418846339157489906370333118965081997737591496744343570840007203238085997891042267383190132992979141169442204658676314012852084076484079942906062806684324913660298426019680946952263666155969653586266078806022881131053166244939878406837472767989310257087236121609157442319472287261902451529718895810837050387493417688245191263853648136067340356834594811073958232959764743890476641892850038535029181770068427652612050240752245893244811704389721951741039744327749593282321287340688751866260063067826909899069089087000436352085162872141064788790733838561525551375939183870201825733968639364962762066344224952479738562422545624907347776227720472977655365280200841455290459345527807124765767588287788756753158794301195806900254512463632542889768236481375233700414809340475171046523988102129888730048962585238459387897670709573320389060099949016141287266041470343378861101738655428592741585506731342698664455035143323822938846446862358973671798942166235754361540913348586956556715915819497796917538844268137257429830149014202161009515624259327733792508430360030040596918064186206647696970828125022052465859247260067408861719315453593283309738801341593548578394534577544241041619206829351476195486670232664841296314187696157427036350203449095963331731153730629876991161643720829975873269730200878512919879484628791972712762810957862195299269262636228691859904247935967722942321316410149987767110898607239126778563538682623783060295354794147522333142182236258212347606224152951407297725872350672874179070432566331467403606347296020286257686212207501706734923788881931202290743459096842666566493958192636645177263585816256008114116535540674037278937691283692416085259817538915937134583907381814626256515966130622966347653894361697018500403139728955473143081144487576075896246051646793247599157321475473333683977215493199178292112740747897452277131101472838458000468210838401514334624841890124279779211909620605298000671040770343426440182269698323721982256954648902507824430617693567107554864711887000334868984485749828065903520008456988113333759235335835918545207647038522222230850088335270004725726862749909340376155165751292487957969432372204470378709180040207549639962546926277461777357855312468626501479887984789776589418811840253375013732666753725085050173649503964728383855150647580388444255147780698346273906792718440666843047336194936339434875110947047485623737717904557447072451679123224178733787321106373612968075259616491037552720940936658807485976434888985347593851887760452852770382496402200792503351174749222809871493939739985741697254155978495984529389444225771312996088510051268328789099403516581040483336255731776706274947810848950333405805878110440089879860960708613380308158631173704150555653720573855925012420137576883790611856020480119406034780018864173506915806645072663251495731675546261398670968445561752740594385603411431085793790577673180284732493020504710910907242830519772625363061476100327410811903506924439485968415678790454327531227328975986208693710104447605016289569010783268466713895360111067483589617967735492181873141238954684071519865361800285104192567870665213365462921855567158774311194252754202282861309638142043326138192509640620328485358046510101007860049341045975153934955291659266621990349892546027361129880838840240175325755455411901025842975241532036832827599865245016284477218524727011789169533252482110532039578480774576790861005552763441458410089495881292905203201635568584710188961889087942004804751122169655134903786624067286988600103458129709702398073546019039273644956808975374734883032580843448190814463660518302110706472024745528130437597064055029996784245927761316884928858908087759281627377893596222901122384154924605106868981267609983585496530931384875560881128787346619719016712229064333691780850525599573005202153175340613643387728154696588719997345332930407546090925629124769283268809029475876732094614463007851038324621579757159374598182881511043410485991849682536256979899163345109586135318022015904490195431556643099131616858034114111656469335772178705570042918534431874062107413479839684859229111629579717113319012615068280986047202252674437644197166093034404932502640809699682143566429090178117644378549910015165677497335188052928484143037215833535903746744023383302732251094813710602154669237600955968767569618427524156571645658751711786858209944962360855610129796758219243945072790602967014178071064993796545383066634620010638059792300752969253545952452524536099984974225952998674897018273301503833621309362369442032487391837084886911862505132775197480597042660805561373127266320452807525086354909955806817993545337615654229676910522353087448213985090893243434373768526960151653875965281184052504636495916437822372520617021601684309827988140116965334916914635778066022238410590895045829394170750521709049037898768753548776155277542014638619838515660232956784899315588212347492968500752236204899144486868830457943561664435577872625600094223791437972814437523025434204295460118922273081097141030169187829800759097883033013019479320716676330378107214759923117960766549470339757612986005459691722704496361420343443095842064524031628267081427507887532552713910867893924174631591879465645197297094724767756286858094552988487778985312647629269679211612816887669413251364948134231348479794576413526502131458642917066434050946799265611440816723989249086640364275774314801478821145161042699613439390988399315585457347367868890408082741549018994322274569785515152248196773751979079182665600989632283083179451782331299923150353225695156745353493927362259483589424494639434864586731603757110624068877335400642214215227090102142147386641732298624051393669867453218230798144240716853585329829317557893120671181797333067398975905287772904155432415043722181719212962367320957369417751509954038557558782931680131061832307234119115443404008731117661686379035698631179800314370384583752891370342221705557646337808297832712519930685448255355972781144151728730906493510367319352420213344312946107295642900187212228220355388038502266584709626347556924694613327550368066047360563119194493447533715018943063176440435645995297318864666259022798090564919278784387313729900902271753862514418171599285847333127936482244320863030937196116451452966050608237769315201249288772034285799897140157872559224392606720297816463096387787545547217738187135999246626451491289096807945990240763656838840565482027618546150776252192972563456887109934263445769440496981939995890795104200810768848907905673265131903238407041591832774352963377787712214047761283864292153945450051635083083717284612494828865015141813427631232017610959193932684766224519709594958132713330447624670486152448254439791714486697646574728460641492501073142580574612444456541333749686106606147275428975265897693557107292589272647024881960202409704691205452337384990711585785888283196082380193610218475611024249759080165785463214443790960821783133829089314071007610918295621627567206504197293273322921758128696919647904520283597330901472289977790902076879310839293817489175632228473399490868093351351737785947732582392702256170228842396200230060659966070227488522222648427573959804478784413103344986567051773673653862465760224950381298783049137797016049270048408933689170829106385170792521514756337878482747672773574613390616957794188833793631331509128915925046978754068188476019530229057525460048787240370256401162432898869377908855642434011576355317524014785319003007954961571669616062186853489446959822008377762510778296965159684334173479487163872406195739420068194256871190778115470554549322371939050340037768505837859144205535828788742064699481270761063506167887961465588246089709797593205666856824302291573111957582465278400235444514901427045357393562003400574705643566321569613497618987687127217396175007225259174769879075321631224373105463149360832767047076357765068938429555806012165089302668117683957567513827760941662748053293111627735471503298125153387344523752110642798747799985775057684589930868842338276218478725318833555864611417346574980374215384817772072870134831924786005679900647469541372002630001137094669196953080637205671355456109613610385289166265845308529364125916300518711502045343084443808486864103789781515539328903118205169091906006172987735045729353605538926706958186400003771958797415743066696917829756697378166950114609728598795506267580098349460736518849801078655496122327701392725989764262510667523927359420480331350658073169008536274727518185571390183121118418795356592391730020580301273413912409298115070196752162517232621805753420202441753648050531105114363734682264133689463579817021187661614983570736106536054633458299840699629532334727131727424887417320835389559839336005466091127679332028909597949686494833599092814976784724912448337226477582464805338829339811768793630849959831891259178297062868551948305398570445847290799245549789192734270870594459576561921095396885221778543093997567485437416089696538463941568399283063306004115206955792043834795835906830721619280589315924602981104809092360489834293097231211722463356898924904207121780491531009082353644413113348166061425747720577494872042402027169521598100773230003727934556874410098548569865924844373853202592560869816072685581550905456211221962771131624743593774092175072218004645796775785239791820868948198243472231546509874025448321772342536182232884440497037661870490345605039173323061359760470087945100483238306131813537999091724393234170087775450437541358733054747771689131917314327179201377981106995825340485324108787199860576693371230827431975573157623152191117023761898478436724070860705242537192201193831349490709261850310486547375483380278916825663995027467633857109906199037614750642008318418082641442457485279070455921987807576578837805783987925890060752492914341757358600429955659688055925168045757517497482196285318421300242564460037255312621007694873020391269036178032695596393702299000682117377957678404256843809883047417751870616161446117642638933046783535121884562647905956732739622493442321666765003863654509555224906674995050975937326672233472309775839657970489498926786499232945629048044150514656234510233540599944630178884261489119677118722735807073505954065598742223049953543166818821996515656989412492367556982468305774923662213482512538860776507710590012021137814667511060510210586489476124671639735793256333780557778084396093018505227140228597355835090208638506682762292409212893685793540929739513106768373110067086260254285299866317311682464674077124635101385263207970966115222220802560980588887993914469989075907624366970924364023095805294225656189605138520073267466098608171170410938836173187628943900244186565812513844450511316771776968756141273830962316895432406835552686055198284917186408009636173121590287867956610429884212960517398165581481452229370446446532660080803355858920359641847544022736654655065521364362175238247453155813408358059505894596460328498251239964169338447242288037720308514524820208393432249528474558010586913343909011024598653784457040271100044407185732543312841323354663065716474931261332463368950186292546411229455840996214571401307389127738072949557531938530494185001309984094537908354652255428468564183345136146734439344279027237100350332419807463946377003580518909724202891884423404600954161926490637357482738707417868306515114049059328974577865465037636772947152742663228308060642438542841805204087343126307363693988712486575544421959294964112836652366123625703136764208435324837244972605656052596054662665989237878704211112331414736423706843268121182263708255108211210215082778532151449888951259868280815954617104698401604517183018600430506508185154923691818609919887086400144639424786539370801411626455025899147296364317887123041951450909895151370313232284585017879859698738282943418837104536194519587991208642801426618642934406609868557128288963022055402517887097148829954886832915879896361687678158311379469726009067884743910049180752717879022533496812232175101889970615236805315357734282623467384699004756974220803815783219963063690411245104763815350512117879076067466875417879295905337918567855618107628250193124617889888436684338388004072391711237301468361980584687232811993364843462276856319621262226773400429441532165710144057906740686485217620206157255764676754699786859922137923128307278467542343859492517020062256937891675036442989766448541986414526980383905250541394152539827968621174559977202208662772792137805712237778874915581106962553951646165930378240064057041250292167039523209519201004725907848144148602212430881304036270820027401636698129891165597281080557235446778014722724469090747594143700694831833581568096984528757357857861820817528362421437102249236670995438870874094173784311257918370615581894234091830176727520498633578379467701944392506592083953628855289659441158439888338916134276470039553544359632613413832571943422187872508284119697645777808819667740415907469568725173235098054526991229832885535711135549076719959047231309630790124236943845130476303554377799569026690480304910448057012519037425565810552289122310903256961775949752407931167170891347060350020892899589706098600764489756057865561333941725978078549601596504354243830279008175667546144187693257992507012889420394102635169343194554809048251939194765972337743539804162973867850405613097538312637181373449048392847810133175979571324514393360966179722786694674309389413390846095883993041858854378838803724097830453260279142049221838938408957552802976344974409449198534667542094571130236224644547660329374453962811346869224229984216813544436190040493153943416390751081874809503626701678932828608780526205160160512089224116802183775721640238265592917997128759648918817658099708632987113801555442149174957397447880624876693213172839188877371442591265760614691688924545236901876918207059563253313663069049871838387603450298724020686672546783895378644951789802303601572426575203182914724202233698566732606653988795187547499524829881290054316718552997633921080149575288892488930728141219476298982109288719449809023011951255185638667810083553257191441495435714881543422770768482922013113051450759698213932190118521934439603348646965158876873076004679035905161199086473108161690721416322026903737025408996311029167020396191809078873221747203227253236540602308440652588464092084011278013312357328352501998076873910742593988327189314761838883141771794613271722953745826068424546216344997632496619136327746491797668718139945005510799824167918740282471322623602810646440163643032150909736200909835617913913712012562736165124790739919427762279878607831818661563080862518497994639345336422061314981651067374831619838004177750195766250827742808423112809713176897333236723946816632791477937814976457352916574760089515586856325016987740827634041684515419933892507201154647285769149294633176603229686179243786147880127274400152160804900002272441752778387333114892180949497987604383292532230133726375956442340001602331015858153456004057975928173384216484061561655066110641814669818013321026492209834718437293071768253500937547569413080758598146399020555427335068775208943853103146598610905936713785764172233867041835627401060119895082551437394107903781306427292657060670030794290327320081776412972154571532491927564710450274229875353353328374661863104160843759561256989080276354103798961970807997411856175735506867690424359635501955211458564005369406815569998035411682330101803584460938660515637143733517383951115670114623358011275545351672132772884864444590331953757562944238804768249270162725119899497355541021436814177248906952905162666908480451724916168025461403693231075201959958351696037542952158284200944771988803930913321811151845989416961318159270077588808930077368066957686263928736418661920579989633983330206275333757653822708326009305723451661566889222393666406787567411749339590477143957770917722152250577336567431646346101706205979693731914442535983028111344558959582410271620314605625929410354638311678593419702334582750804915322205316162587107308866849972368760443471120951282806453668837732500100307713740538541708461201444774288569270782809160363635655245896754840410560294861334908096701037857734671700152519566937305026724154788849807740057531897123466606131780218819419035162350010315518078695334460227349599085524353892393774452268641131586245084743920703325304669980762210613514099516853556950330697940699982966365172469978015588288603623541546515709637528756922674195394764233155938214833228550883280302810249555971137761602905174845998740122998243438287540348352209402420437856618929896832910146299396910916343233917112715973936959202357315953771605177810431957583629878455187403669888262814500206573186044548278081551457567886222964973120573171498832745444482118024021679823736856811509797752767217037993655329443195592644859866160321416405665697896904396895767063615086169635533381074073688889535765664612039303707294979232306023576272520305854904267060593505721948864737704554897623264747358517595610145268728393214048759948187686456803589137039138563637487190602701035659328946329025282035936114656010389636925803327598329854234790312697475631660623610445345930410564825018103313139206281945861016365411058121904387195693391333090272107135528137912339109846788049489339791936723194584038790761250654027543735581959702998465158785143902535386128714853316580846695652584869253120452200184739163528679523610627079656677102348793210520431754420298036831920945002649825460633996971039809710637948416314987240389660446287937412831116592761526086024956677215214790452784292387501730318938714160304289975803610190358003567273892181776238561235783876628255841287144085609943082214076929719661445475642592394124688705264108650908864194488644339962096521799273204987915424236438903349454062838489462564108184201912628645322378857450094085279744307319379745707558832435469941099582849566479698885085953685066907886519637017491777304457341217651346779773821201961980545623919271511645814707534509308727462201858567427791901981034289989438844124949360730657032497289551480993676630832126944395507136938671287042811126629629352303763558712299452273538285726352675332331369751271830521179818112007331093490063005223222142476281715254567103522380631601645639300910050984666972492562791894882068632091092995384400843728840403465279875992279299474302831251603269454582986910698783658736423414508833297052680513046030427905713985531889233619649285603635540744036101431045062056874377885559140030299336576741336403668240924538873703437726233791328578880200163789367945246360405103782579453481282816144409428199550987257007788162462724185912373068945769352855211371670076217842949154782387429911641971859850303996263393349771061122906694438280726394339167010461375474755752671242594294552240664572930668872251391539782823867223889644229865856883134366152271534761518054796399530333146731224905128735195616426957780337406498009356502191624181488827494707050419195824575900074441290231934892821412057507622566509461928863718448456044765394738187249029065778243825267448312355569523461098319088882370952647521439047786259405930304473300252891033810447940192201961417995660326131246327397150428482603586871707568525140451359292505721004827166459078021552238741852449011300139004278721265316846994706495073651254710744530395720054659728215302079120986483377216227855939418443816564790559410282146161237650909374261907286259222950536574569075470045954986445490635809616501565123637942022503699662436086749935231714815342877537574607387602475882502484627889543501833701112162377196225620017786138503045355442015950120806693549000089483576383807676583126019404723066119195607702059877597601940866177854795749905372579837962192324464187130673123655226211877413761776834644709859930565153107781527218970000749456417510329690268408372752769206717019764112442844842264907450167372446994688591457651462597635994536018894560860591099720120542343422424943597834936002325660803962414955023162456411418226176453522925951545791957197777414188197971923679790583356449513405576862984324343705750767449224281336439699510051481442025984879249302376481971277373775926725582055479447409298756373870967320046531417767452998095587165226388938753467254127875346013831783848758361870622429095036609308135797366483594108720726420639878364151857625083115864842597500539653527626657184736858216773106053694758652326709241935148044798444862799029493125954784573725283215673386878703362013768671271859114186342089034343990846798598760287643034173677287852286233216627636223887158614657634501052685993038387631205220887894242255829777696358847672107820099346217232628400100881381807884280585912556120561759806128080049590509736025075431371236203067872395908504369394089257521568001717797029040884054777509774448862187318692860974668243179629377725375035261605065933574672196936590661030735032095674034663377411794086929717389599423285995370521802677714738901544007532648906837811850862769534214202464482308449600612892139350456818970615826463978066051393188372104119290870482536561383278760489976143238458470249798061440453490047807682922546167051816560598978867371895084963712609455384216721368091279817908719657463922079270304244178878376906902496797521888545145832438945242544500845255558901652306464788548833631615158264750670114143988129797914392022132940235017923216636483970600186755824249066188559103411645152494175943895801617319980618470390928341241376077159534833830910257256729692435979647725978294200328458692342836750762293331823465796799277597831253355563466270616603329947350716756846734435074767775033033405867726263152294383810447200105618752118531281214461881368912030579332835307320772614848431352052385413365021862750137846593090689533124888578884298495558798869707594285623640547703144232351006390799601625471408490910230771599429285662378143190560339152471129374981180298148307359963488734050214012928655322667491106554936047303319162025802053530278112057117922824227511881798142678339609586872570063992251724502611157793219248232969424757478461003125670715821967634260939512020468893553903229996481416291644093052085426064569244702082911221052692437486151519825047411259992731656145436727266227976794703090762635226871515096665114883894429185502959080922550628810422200440454188079019235980592472710010045537602632016318597616796706101053523969454887170288010253020621074737793313040379527801093688684827482837904598019377568300161468440242269229690782589541262956841187927499528006473072653323433687738688248564255457855650210343678362863433435937960592509682285711225278665590123285683675886003341142038968101303341708574212843392583654714290113032700984848712797142644723778931206563142394694381443473995506232990597385484731795582313951098204519424258327290952294224664363666401927256477787523979770971709543812215455010869375617270812045954183942294985740661059769946730141290978422202381012303401782855533196624285263830752191321162000751005257624235604337789501292099691313409812733171760628373980219316260838315847888903381283386922818307472657414828507254955368531985475044239636862916691319006404712798278771837354602387148091915771401911436168628368840259047484916380647345371437402265662233570976069546933833431762227918693155735206899604301261479150988870279000202487576413859456991636755699344531935516624721518239552400530927291644359515307961610562541354488758994631056192282830016117293179274441692313533258214730649130431297815020815923268459475564610930185920778383548540143536324096722829221361390846706059322612538900829618958309963028183668154682503888090796457648883360253574155949007303481359003041886513371779163486187386313291984187558819970837756895099520770861100910802252251019959942876036134575122037058965925140818584309691651125224956751530877717287185676581906729840491396093592080500652793483122733935135176300882959727561668966898232788600051699237375083725913277948698797099891015757552713354969061021155322770526478901428961124726522915248711564588914873772709821305851718868608258470283483956962162782563179530021230301907784126483274128626833700159020083551047986513596619784486620194095556946560557056901538290593465384122037008171226643349080539182860400121449707668849480099500800139433400274490669357647872501759487692988229298581416986499551427747259490736151826450796783690023876672879105832067679438991737689183234882749970728011729928934700230788903994426936456072694515366840005840051080615257738923419663646182893683856356372466469925036775760631043898174895081193833425739288797104625523104882957901600254582802106730350542469529985876146857448901511026595261473116244527878306411859425067603215979693116292642412204070098557372070988401222600437835055914060243198901854675160368071285355500348154262552975173935220282011899043737810335251188107167099604871769500946473662806838967622669296076968997839426571542443182821853983510556248686699452342236632745565588882674428926437875334874903290924850162949901020705888469204681884817875539373043595651388178799112705503112923274251979882538532868050290472109675422995905612479874840943574877988334487982473297042642851313260912675692651038247797271533359914186593699966764172396173939136178125222968266718942965457843512170183347580359439053670716715797513112729597433750397361321817520366535868901199159610409389239071454436382264070863951354044494976185762251310415752331446455280048292607722397356139989722258149469583771478251584464068738113085365669080024023606918019969994325750437320108764908653003057202956849802371321730436953549616768812785153361419142296506615786523756639492488084569922940883283096386692607081721300763469176699921563844652648714855156791625377733939139906141579932764244144305771130477587611258330718425408621346168321299965428685699165345169890394234632628401835492443276499171405086340148280987693815252032418112212853422826727308090239095569734832049146451203989186699072472801363693728391546133468462271177560988949546741233515895923197763093328672599628095242648687147226244078287519715286380166639378377092197925087308084454215223822955939660774410181642888701948771482017920062761211014090846195716584906956691063748196543180715856464474590344043777470338035947248207527687579219842174863558443716960086104191308069467336898658037083988400542272892824684313796535694083844800892763007979003224499823679479248995888991522831802150547985049216317598126535341732872110083557272038541082670397866022503126424178565250497319095028776406302419619209865162396406405474421027062720233807689458531697156537485225590760675796712773369391783901531200084026011325479521217740624698576478981158710871177944756096881981423171131585556269712801877562276055784783965181219197727419229105001028863206661977189380827550929990931483573209419170967839530365596814917708962150242392407520326492668082379335623458615763830517871821663180788643187561986412795397510126725401016413124082147363927064957517931397855953886721402753942834599855719815794876479017803725124678192636078444910219070256337246986438436701361530394026230707125190904030306421866482694411304430652756977528952760515080368103299316147768811101652352115482479765678827449831059346576289001034338122919326256864480246510085108734494752943313340372600033740276321635231625209789370104011965050530620665135108986355349933804872091854912002090894294582990986281382351227199916627839766426010042687783081041907520721408041918377570749541451792354978031965780560881900381157691241970030958582678815047754568864614691791969086104916166420024092283808074343601939899863414320957898868998170721109162278576399332680220789949957806813539039551336857560854898253079496169018527650774161315585229170013059527807769557016321505629180202451467298854696529803104886184548267601919227450106951670095503745773319100212784628700003698174547309744227607585052577577977907950863090913298014417245582456956430128986621033753602240974012291102472909000967439666670916930028391643009533452704926762295868971484275697697486142654835997054104504651778712463045294929621773228983946134126459083532570016318589108914700795319196411765825029544455753751480401220682108336118502239469915113911422591557843134961892589294130250152066094690074299674031058551593330867582994224059205982084073638415828234180610254222335258769643685121792098308392309985229929365105728674083706964800369090081738671499069946655542296459457040009562253137747241559224958685472976900946444755879989099277563623235491687537993940119627839640164584342593800251799502301070436090631930709794516692556040057473325601296964234666667193072687741223657348732470869793504430621658343389506450982918448454835475667946337475191913771674415204090638582967065100835043776133771162176134909619692094543237030279663399326729459357466486437662181840907845244202133860073761653418718323255792197949874392052922197335960452519344243946134642109021048499402460777685453690408141199126393337315802391582134556596455922380437417452968801218157854181858938461155285574844414008321426248568412625199936756867093398383133345920765705387889067656951904475005849401516644158934041546241598649417393215302736273953819594785007340057365828376728736551105444896158204488309849368640432209986405096678799093526854925968787617031001225742904978908238971584841198859756377475919736682330302174383950936498890803764091398637515552364824529805849557475698330253677694915580192855611307220742277986950981546107003954207635270847319100267721679242886858431982973680286947735579065608616226535864048973730626273725780658804026452342867718059283480304414813979610282685555013788358382798593050022512601015788415210390039900746505847957282094481881759469664508889887564478296119934746556223888447549905469302334831199929965752296192227368917433158191208730380817366678167022296460515130551898977003907360963578583279146137257856342167831177408156087570860243982420348242432743661658517019155110249188292374209039804663653581711429947984385186943749510064318580968318571135662601205266933638212905850997487285645657799420332090910206632898322137991351938844066800938981458451615694814472381879993722682762442887753520888660804506386117579243715684005709920195334585242905494282718858180888192218382779699324873468204597679775238539575082138729171579172804022018916240327102169968585859707428971854217823486425963581034527928081113087072952135547135800060935229845024051298218690852316092311676005463365722031680820201949250485164768359724716352121018618215369185976345907827258757452676487282435752390485612329463139740174258283164317906561610299698756074819577455359259252306748441295847924527729354899117013975722544143103116201870106944039236493491794401836999637528458494543026470983777440148297034885414972856844936486714503053985716853967377389245628841433080575074450192323264834992716043731210325706891744286813575458766507471664185078157041431492669769658762187995791386453049827490624677969304453254286666756532024656614294752509634293709311620569563002884863231802427514119620406928443710966665759087975365576620065264585783632826376480290014639637796100933215058593440525279959660270244160922628994128449958924349516886658015171413683236265188053499621610428569961382656404267411471794567737453897400162003406272317349059590424133840430448577907289151562853378974378730276141217762686297018895157325924257017898490616453537050837763371685154297392096275440794255928949154386400934683115304698826006044675125959727522496934798031497339116717056360333135680832194100134647581140389162870483467475797660892777743954476786739828085166274390519362364254395069313537670752451567634507924430974985210995991631027192532255116107568652382560471889234107750328696064267059183304720833440131974922150111116110723399159252211878081460890177191912761985655439195733574866532296676405609926085061173936409688535774963033591361490702410997964137090394583216784504079462151879391115568550350589590029400364195663730921169663471604012333660318161865810001783126691378620434373912338478055401181437329043111020494087396606777631646958558807832737423895918435343616999451510944720069635279592542566297288312963366537973611013182355420063987189318832525502198792134256621036679094253220346376653380539180777334456037433382495988503439406184772825039035319588914366379120432812729163062640225093477126654005981718143557321609090605670730241052381954474345691046034791564543471742654451648514660293803405630833743234097745156031145935004647482985488252370992014598174581424972930502244284715896894424687106743298471665284541669184205468377468657844427966393097992622880020476354179928632087215240873200179945662494676808404482992396078363447109755105470955185809853532719429427167936182406983321344824257375293977012722054318141797253182428149259451922490065712387895112170685830990905448352381425580490692006235731315706429241417378196280541453927858127138363899814819319843134314236012094917708718409768190769272565167254474942736294542933284804815155494162473885321733607094851703951013652280337075936271591229780941541986951580673864386357026878036765871932871240446706696625697084617580092663324450043598033378527835219810102599061791584489891393276437185932743643625842070890880439321655958336431310852477591913714767307319678353112688367655763162376290027157849113295516719673212651184250354839805678252451169984441770881076729930554206474021728462304373245758946241129137422008365957848642317055857724320890646505252511124749806211134917260686584094987703177648818904077711945481584021110604486055958737009746797510992354812415506561932037526828855692101561200521470176487589499953933675935602206481332333163422917954365127924835485234837933627304078598894929035055160461994782106381096724773026024596379408558045507075491325739545772155162142772089076879968058793197767695852707807319695361200514325417330889024629439867880182974546294760249084796946973905790764999613825330872366896216740615477977817910570507742862101915389559723995103187413068830018901293829386440782280338877436109865298398410465151599376560039887646984785890137062760215847981115109576715567134149434404360089451524329706598226531809168220760700784715726919729773508045080845876394114880352043063070997799935791877022767694768850840501864599158345805953221681935888762825657822288437794982186840617901122921362894571794277742629203723429503586621115629714737987460842171312744772615760771662593782688543965085670955144309279305379909745809061177771177341164864267542141336327830964172620438372278159951018142013702420965239640354277518754729721467646733007395135623079720635679038877634128391348172991542080642732153667607967311349514061706677440876528261305790624363012462877986534276332512750023902973856555806807778224383216818067687968332561212469771898852147436193524008425462021491401485066249245469107997470187912188825119554520085766438197285102748438311483836483603337766311472927500078718492625056065626755397772287631303856763360498608778472194737046027779172433953065624447038620936961436349766245579873449163078674064468138169010447845431326680572759596099483574879588990130688890843529795509778266623148345751743718615946886459127539083484021110199086457638176031886972478614477913633742392921842675888355755480351354908719751186743007450133970519044035540835486301774547619923799191288827881912328039685657988089417993345108461436072241627200610369161899049155689123229968677756687638428188681929962932409349371983356204545119818576571164418223428073336605887994562881181742606105034733693124930903545244941879172082241935606094655087762385715789295661821367491952238529017039662904144394870718486936643790269933045008072346736447210691873892330681287215467386930071654527164593699588037870904447419620145795551737298029498365207959370912482427681361232538380311647909119523058095485693494160574832996455266620752309791618237630755535465538002751823285312922006484237735924053234395788465600566601268596222546460770356361405401743123104305764055610092041346918544332432162243378249710768634767415354549319526158573144787753304137343251766959156723938232397989461312606802510384030430455804947255361964410802651203126407113391731712316068183943401532089413363933762583182032313879790501265003222786579466707624775128897757731940742829522441991251062721095680482410523577075664516362961200891401518868413192010673045772447061658257058091178978074955212988033347978267475074727354928224362387314137265058533680244164332676144735579508090010772483888787979343268926503962576025747037537293934018524582208455899181741970346425610624745144896585182773305217662213243120608647860491418413210610900118036651190444172623224646643224681243212085551971274531281828654984978460563522279105440028830754399306264595171072104406638933347041489439746607208819162233038746140824387627836900381970771256876979170446706580535741165132969551800776111156054118268202763254836868686874961790341154311933122234788994805417422725895829593761802734925121901739679008802532855700637116446800111569501076789853559050402083013921539381066358245937847029292003826552096388227876907776606337256727578148389984552050323395136695967103105193346593672446989439892118663166328500111701498740262474956592570987733457823733563189272204944786576678020544625019919912959102584304739221623319624210751910250841370582054286892127244052936378871915939965927282926593566959479208941416305192831241685059202675235388372150901277746267558529529295782364290969094177027099214052581660568002820416835465692931973105173803174838927631568479828332033895574355032850133490455516494811691911553657932199197722921594586578880738548763389351093287618191524595100184674210468069065717279499257206968869840367544360839361853458769781932544632729717789456545175049973115454665220682147984086010326143864080934096286005109064475009463944211835279272052795274268726264524836051034007692251759002058232339670604388004835677686254137049968255874409598099990360140767006176836232000333855756806736692691379664326913881245703601051655564162597283705849800632077804123186697619014306563707545701602726322261721689702220007862751504293652480588062365403340131019313698709338241620413271000592244192629488610447169550559991353469628029881949795954103831163528119688142438648557619194075728161982508037988263681488624731082367338915592328049545773347032678001159169114318649213656011282791435837251163917330714009909003742518528124167383246201698784973408824026847561648542769487278694180022259442725838116302204810903140851889063343014996124440817787149817477123535942245130770699880286975464768716111788940230297540022745186305150552935052676816492912915598715006058194970284881870654535689416678369471203580224025793287679860181474685274689911924100235001378251815394793794123612797892078589876698561210424105379224344927665062430605506641476959937361707895185865984467485185096279452342857409360486428759286146509344819918674033719881484573614289493206472591544390065646845293204524524209979838628663261874115548452079345636660440924053714436109426606534694838807798307899301168478747102440496073639267263996936090001982606617772881840526783854152425821294759315935872053317548786709277578688972471300606290027870161082318964111423404669263031579288147156417141281258595529432650329254088816156231800722979093261846659568960807512520254311889037207435455596236539879600795965884761648668571421413321598612641222712748668206315010240652143139850906801422449949781672975218631428363619668529185057588119664456016873119036008514156326505402135154079614124301826348001629260958496127777208167502246490580594969062350394442909120414607197108277678504722371459031040661065205077913346419267019769651994589591064631830921339500173531283098648925264250964382589518381102244979651418956206898619896181049290310047735010100043631359217347013427438128581311423251377748291769405471505815187849883230332354073854283587533866159569377540374240585712262033440876837475797727690621854165585729133178866330573022085046801420475278470064056476998238392138557403651715089429369028472411045272348750048808079019458518215689437023004782322768410432883902069295762431547402958996094278947283427013443977162319330149956021844634262758516637988142986124323750704684421245645040056591339880588102613627886672628068832010711566888002893529113766180908197767731727850052069794229258523148441911390603579763393796339356205583257170164372676121959738006505205027462753373441166024247717207656124945960130427864264825498146594777502785800330747964459839098760858031382939112755547859915812340408018103116497432374696964286654678452993853126873665205573735317843524391966460206902300375936456326074593758631233422896078793690320100696100322932585703235311929912415235220289003224459777102852415165864691111628780663259740006330570644100945710950901139051268820516622408831770748548512033687959893448073103396474724125252606658656672391546683206460157514896193958396395015362900733197042079422009885277686081176558729966502078252030258818217857212225549787738635036760667124992232197958975715431738745649515781910871259785809216804186858516827814153145950032886325321196034230861402093211758675303362360106211404104723338649101051043196754960867684505800114293791298114009163365218037474011109393945510774253344112143312259593900030426961319716116467411092498881759412049627615812811922050496288964558830204754499936686924091854167123844713282924522246982270151514297488774634603991702416278022898326809144654667622601241862935819807446895838714188854273383394332031238538049362185831873383997177184954496819508240417097166766022025803572891011707404616309815469081455780494879798200524932660947200839856238633917982502604779325419183918558937947212706686979531063746479642543904995456553595924357905828140956198850719266655442816183235421723538910687556666621399074581372477076328246940471185758856706469565459198997281815561535669138922779434712502135115296105181387567342933682982737859143549585980684577821316183382383945554816398615188660378773447718460778663625653385703928594512200576136739306938647202741588588773648144509216267382110836197872010922175335167370170985795981563801455183025712966584385374250219491935661587593640818855735819212479440084406008388241540356334200322825071047680997802597849055560073859898198370400657212252767819163593283646479091290031859277783377932373334989253005111155736062475658718660206132288248493566418216404945990009591136916593947608596161772443790433795023796578925795086311826583412164425062208677867323209571071481980889771927725253847925978145366023080361070556985230174949856207515615460846182654186627123007164341099648533707746566463020485452869587385465411330502589863965057725183384688276871035008527102800057849349529960979486658803177517220342504444669792061289814474707584591288070663970375137238498277111588609358598024032165681695609015397183164751570400694341391547009412701187599472797521110144524666441572840167835662374935395741653920032255462616433900934892295700820828952593198566569589382637626052028602136630431613759214761847506828619463085128741628013886773860732903418456022814794015986732057980373273066312647508386979714589091040294874284255911529150485711546729726494320450863418568914882667894851143563436336706791329825029015357653947374502502968164255762150197288662734385911778404397058188168626412929478146209209343626299217822915816220640972208230271424372498817989819241786604743856412489183274378670080572007771588346747216591869304952604807675234405433419177725181428095672439098256389291342353769984940537924900283826766023555850581886196441686001044581051076839776263537977902605672850303291057264102278209247984013560575153225909504511927384002534443414300211023519634106773673148485415926475833604482219196831825625566990285589212095719979739175071621735140059148614867272560107638994704150082243201349996889886491332156630259563226700938462689877675476026245592901893159289065490186437096477413331637130853403273701332062176874321227390416685241054391569359750819633412393251336419755378393283617640177694212438334995201630141504139477672411653212132821205258702475141005777924801263435188267717808416019275548944870677942340716804660935342012846314061730939315350905345954750120041178025602972582244692194631542698865196403730511890712587501631815442339737948491687049826491901134592896718717162498154835863057159431767069117823420310352564824774479483748480991088704576354254822278833930236948274146177839450663819062830439854900336930620578642651292926395606410452664186890281452902210328862674924984079537152219942686593270096440415601828762773529956705363293596022519494471819162967026667162584337411065934956867041918234132633519233329193289146526421667226726794754906395624464971269652687768045243370648636136549229961592083277964549815170887482433929231456817972766214342647360371792253671082882158702495249510735163890518803114854739654833514135592587010431279643791600490467408870374172744599701896347585980781534354172511333938093013838098972189946491263197062941311610907487865793847429356833811280115292750638009581293233407583061335083421369750056040526634424681565287017300726736148580369331856356012037431317195971327213710499686112075162840522493655452278579249369003661974317669377980870775489561129343689995995811125162353395720025255341254845536191402854303248077005744048139188367573189886910204026398050753747905755663782399582314198490012422329850917254688009295250217778179350786426929280909646408583335013534894166269454466017626841105055783077944177153249883587300899633419830762602972868016681664925261496378643688822169781845293502211807923991066404588867992585278491369941656383222320014015195363732204015249609158424280122933353663900377091631458767112502275991160530998716867343243907850788016382405434920379386003945410916819798834064355895019658074682236518211418393481167332684377499809724690038536675623845517276933441647889585775897158150581627473878085976561809863727732831001781912106786666306710894475284169716151201960389303317833051135972041503399378277359654659849844438630748648761763165247103536401194880178194733220459131406639338844699942024358601094544632969647571740258173616874771161575838472076088342307833614496803868933572848831386714136784478016438087482816456678650761839049207849639676756358520371562180769744431068407948332528426640109452975774279056186631469731740801960436903972684767829972575963636489773916485851060183718826459151411431892519394799187832988010299083106838647844243197405334785819701406351787653260764486380194670587303487378460474092132682041251458416943138042543579813268453807389339075219708753197010104981002416531860487968379211448611757724682953878579369183675022772555136883591063224118378890482765856324385772401224413650309067693846214232348752616311182107888691798030187884040026393284608320225297023579063820159341446191947301743773874134979705187223640662234184703098679741107824421034784152819065251604124944929544462912242467253416803792780656223534282900560124400682787992869228175126412163525911891914435544811733719824433257266841270108108528564803972985171410088246239592350496223069191107004823771085671844713434933845291118516726746500628700756919632007124100102667485129490969472734381383964354441392677599816855614684345744203735302894763823452192541625602082690075486085773781766127193528163327971576532993937512061085828555542171434144819023269997203689209499796514988345293689310708145392395242381533808211493073881798914703089243213130318450945382315007763833142184596046274074068741717418019921965520836296768327743539212888497086104708230806654005234728078357417090663458080475874029018965830405244008718292659465547920688718936563134089655943856976165409465601187053069413185553717693676943004838005263562242236733141775316219763826965346233602917487100157244608658955011021987367575983547390247580640758577470055742981646884148758542575840719971650354821654971176859757257144588202925760360970051730005026889007730574140094362645817954814856558038705545982030959174688830542335324439248825197596398477904981090138333917116713519624620514571755518016392656552951516933255669642303045867713505082025897024217239749675692023436553802173638649698590234691766960267779179781262641258007746712337357898694462189970544847404616047642169888837762882855591791714645469928896361054067939028437163730129127297450855288135522067509830526687044101192984703992889770438331444228530044325550791673849102772613110410124964818933759933574257541585384508770901787828810631065663761935301511967455364165664547503038708883082061844773226539093970965378525274634381646448669482617144429075475296134728431672348611372152843341373723382767630341195820585093793207705669209413861747437987006162362788768020392739542937194300706787587258282148583614411351027283892735085161752058032098618144183530993996317878588955579897038160112423189444073780899637770996298453269995917119867886513949625810976417212889095279836656377397885667345075776524113557513187447136592318619037683589716613100659314918440195561916877712023838908767467246017106002726397169170593322937342984566405883653385646817705097341188054966953885541261777094260307836158344730209289985417641838751762411153526131635397413804608554294584370293103633695560425228266615246183342237838283669985843489596372984683209120350758541662021709277566557014140735056768588878909014183453598759764080561505729102812017443357939701585060067398464461950802327108602425007126023291047684477615381998366129447438617018492662280174829107460953027478384516238155169525483071660600428752640740058105444463153060844315100304626095474929147630133636697230919618662722921221704861718819834107322312865145429681053544625168022732468713177872148176653255533101313146648730074146242373537039801180625704363687110262149112845665398822212568019437692770378940441614620124336109806019033275664083181852172927130991613834351206242023292304791971686914037134394457394408112975774083583820916233310795626967436473411683031082838850746652430821733220355998062819917038938754117880100957952156863413462380760611332916406928708903440200168410019266059057250499525423577562251326479379816564509759023779970968816462508965898644466409705020090844225145440121223806781736046731795637392796621541947761440632165726276721791294991514216353007700782235392149223539283908342262056425225369014107200911804718878985941154258176770471301231960641967905646972833562034074469190305458494178364600241764704910506494766516087201249956051174319523734050676481128248883656529850228348661374708425396607426674174072484750723288612891214199329619738560655780585751666710877196613109852523522200776795724168570744642255438749780061443613479630283466829467729134536995152943063847624302958320143628127541379333911420097580570058713052180167946887449522695804182607529500366194323307182000679382076708929084272230494977058407439664260925882671851725981450711360483196521978323478641528445131441169405780071024154432042852634967003864007999956229478110757023209085434054740810480802046279745817425566934160248736429635176218102322893949272031516007452468168682832948960285680838995927642338669386941820227575081968793706436512146916422492479960371753787233765953045376905442540911436048247996757503108950617413870576562615081419666457153283176370374074542919398380533456017757437064572222769033562497909247935145093319635029598934310866531910805166129787478071429322898688683996547460557714194801573692695775553084901265906108201676229302039717333073458443991632061078823991401976521729675023029810397682244302215920865569596896388793319511271568230682459332280599995856406519132129747525053636783079196390086926657063287620914327580485934280270108543385405999169617785592502999423507203784753804808738442024679574498498607911858445405084246707284573951383097259108460165771361306975409997037561139397541236547791526994725690365594612313526601298731502583219197405251104775694438087363950864217840007616302821361377430420711216567328753605228043436809589128991434318780746215487267866302647534351731318980513049494066288879529663968917578692229073154552749575738328941676031584866975336519858179811534687629113733526670251517141517487258224119534074703014026186513125389773490256612351254662685793622387124665323883392450835336461153035900457322069073186939838205215908990115585373341076798550120300696368804579329636343349647170676951497288513423310734468531482615994023812168215764586827029524073207825103106879400735986745669143231189395738671260023218862215117430336292987982469054976652037237177262167671420390942028786669445850548430326832728668332491574356440266532499593602942459819847941424200498794111021792232853605446348192927747445154218615997113797233935192639783612637428988643894097272621035827149570980444580324271609209427604253547153223378526666734562941444833496416595998417234359873236822218754779803964846693096065792137920368830845588576890351213928396217037405222379243844673417784849005814836681516327080947298608133655989853173730497765138917583422469060518253420150808816273999816618467227965075882454472093510746108425935256370210083894266017953513863823897005124435747632923137095103988957225003250521308092620855906927938231081586677533355752338216442024178839661649299213656027603399788609877080538639028909320818426809292700528723847482116055456082015406639407859816803388090298857067335857446441190318606824182305396610849550234755560721360558788300354238728904251109187931133793398360349158386015830056078814181078779508668310257324762451040599883335374257129882158358390992530976711825776697389310071707784183891741288589850049664631175448715898127774512975030264904078515459455936868370064590939967629683703596256043286763804240901970930488100018735467744247961146099498064172616249637201675814290818948512395782079674043148016416042217481581476906437139241678217661866931353994973188615449075432833003150182620951459393784152105155614446004834783764416939015505799482443578164322211486223275849559175379586234829160405972333511967134759399582276077914192855549327169220676339946676458402688106313233806896741834177946963189758019787904097765017590225797424119210232095194247008973372175456792580171871625518152165686536695800472083899611679947959057892258242292595253592350486176524787225968483569470381516668550118732207087717655798319163965478490291977967716103109663468623592590511983048864052919034826903027097981258505053734981915303122225946283483030471662880836268798175092687338767606768787212381477927089633745956001406715455028931544680358726584468819461722580475989880266972627217320893253435386670781462175627404976076708518801104421662081605797069865155537492385565392638416312513845779281150121664091556059664594583033366301484423464084548750138181262996575948497336663854586548588043727684382889727444201931769209930702232408946050914586695891073435470534166941659775760535884154902977268134438354719250384622625527897636494414384489783336625408287730335047499450750446047589197133672641152735392642571919149228899622817640385027353761525336646012356555823087512490239364859374716126252809587627825234844615186882314605599040803114185350782372960408323656565264650480577460911717930727744844398666679207798897185858259589000164115904732899414264582764332972566271658856225126341227802486504905522158708974052733953460936025702655716554903521054602096456059548103048239475150468026940699331312717970042431672942182097426711246358842417527914893109492392884995488308860322579059701130265080619093928408829161467490608288297246498017739198792303130762796292462306179365339075476539373874271373533935673612992216049511725382263515603631086466057446810238537483312506468345858658310364339542222240383613551223192111353597999653856258956420931637766490797416968193488310351807748578962403363446071021570670375727262287460515574698655188827096702129922115438061008967444673190405442009426953602421185561850484084293819739052749488152015149258267952815809412219308657675618487771146113570884403582867357788234998144108856935806922060824378110741764210329013021251400368503025602544857267623877962193024952821455732825402883284205464658150129538591469928848189068986584819817732707260541238771734756511169988618767253458800640277428086633025128903648056511329468352069200805423491235614235765500012146544597991818418412027683960620479734446953360698570905275876664322160467920965844030251818993070814536636717062193327458503844009013592091936239008692224481445586343646156908000447390083746155764092073396851946873872190076240790920185355093485357596445927310634344057767486632841650446791008921386788959191775994350273732986809802766991222745061669661197884216673672149996382870146842417878090633207323035520554625614253992288053015502368970458983868498342812308508247797697263950862536542238600357651619976331667115606605262223525061630677143640268666204913371222506755967908872190248416849751779720766279012760215976463102986395460397202926858469020610947613825912564871136779229172565856812305404908875498719556675577103246826307615371684372851712903692614840332007592267619854676628025765185954467162967390319129842982227216834418451734647075513313847937908091149189396457547221293212780835574568247310193408791236542970326407638006416441694284194930161958130232537509723103599850866085357983938147926531828526227777875004165981694274931698846138035546974506680436075575768194550448610939668724187216705879498794679914306272356651525368005634602957048361766004718397435504082528834135576875315022975941991962688727514704152505477932447265667567824117696148906536988177888475028145851136318756540261487738510208796156146958360352866620605804099585409794966089828215091032649061725824308695496712396122225064297214871971283587679531496348794155862703449497538630325710780907472927717341505433727681148795695190134317324366574755642474945268569725289226625707468055189658058811841614780468442153442220647491278253691298103767676547570216081624546592243522556452647394054151046538278073087711389857758095133609342598701620303760255392026218771566787190444946554213484003505108806054172671527019576847988476394732907851327663918288149765609897851415079100098835441913216392176392952440926246090897794554831799130555366400137957717117832732839666885622486463622034577112990714530808644054353839575998016328859951959005076107703900039566865824912505247906338554132908587496441495544465118411313109477434384291421867819956511781923729090085437085850291815950709742067905294377519393879076380159252358168059493009988021618353482405938801428980662123914656184032929958299179242792083255784322389072498126793908854056102802292046032079270108251903690526127930886229992298766225677129001483704690432293156178907350523586430508291508621845187573571138502955257964000089363803322776751733296371270451010500293375060694309363389540937070851258723926095148025089655519434179591538823060952575506916924298568859178636444918727836443733100828384098917479502882825820915629009069106814051742775337984321830336688883935327375015719475931860280566140893453525260082644159695503774437827571060622193219613105933828672295618807787417102127197364334655547073121242286350045284075073688691268831936851995944725010506125254447485875985467637243487365821752000277503160934242727475428590943935042576465811795404461310180657672942498325426638012555867492282272788590222273085071031802546609080583851348820665413265224394030373712258109634959760829755199619268312978880421462431518096790779486146393000757670341854682220179388469405080837176371492600053914196472366275799006170820443350232989090524195616058454268569577673418942134515119986411082522214622233491591205517503198538154032583338139935242121590928370571404313887892863485382269839721652147373117503929337950110545623219857863342436489313253458951087449625763576361158128303082739249730804246805697245428951972798256338661906202134067105484044586986586756710934510350546348355168545042712971811533765796588201297582849070744804482674174609389885138514944876858356743399065224436189610286349644852815600270183628066875801401839125820180778515701234974750505412284712598709537553438564118993408207882294491301114013567497696379109778819916292368371839622986149274554002601170879440302159852240533769274131896505256264025974990813065232991472135683307876907953520187590501486776342558907260250835058847868197712270024954563449473683890130236524608191441055852162746495164841434430845316757727470701083537175781724845745838752631019718982942837936439110370069696672319742297205646919963383933213007992344498889563748085464133728221094701414577238610889531518346728590717794473879009995976357686712925692486971994598844350337316647376585492278007760321828142261840137347531784986005537937999524383594523423373887682801941189750029052952125553714988755822732814691228234747820007846759527251044631288384288050262352099948349437665343856535834529749862473258897045605327689274001829174036809818362360086131687226667438997328553358485225940230434265578428589935079436916701771898298734847268287744482033115581056908503527202896115615479120337150728135559925099398621633315078838046142368542132379206339387914703327493936872310074756783098625129613142331874541929715060741719000851857661837789455559750293952423255513987222232006788306988004382876576878560415452155049615276189683499191168391938282957185817090796402999984159823041036244124551014398756199243587370871220712930742378080518148352265315804966750479167158173498929654273377786637167953604159676963931742853003230055176483807795834726028118915954326790493475018692779231302366607613384196237260780559110151966636881255944399239512911502165232604925535423182438225386667244163044135773046112243423582342621816655190839903040367865666910909433202687503144005915280064817553753702224192160531110639019011375644938408991257759839590460463226323539705703551218287398439017126743266330436361461880602526637078942849260368301328716674624778733288580772007744200409160394738735272698871048386300329586049608173785350640252421763989893672759689247843170407525595689922143897503740324272250367350636084449128484282575438484492293103013121180741857322602101993815896537089851271219889011877801360865738862472605912894476791072023825222220299661774909352299169158329506714860002429696234869378021123368556802182089218691674270145832068440654500403390430330421392412216694292848407587181485984842259383303358563160878643002748823193167738202741507937439552084295282034306852262177490410811438570753251065991808865465881003220422704123607545043135218866634442746316437860391582489625527199521133518119091533287458958365295609925339895202630616737189901263496250691947351901053600194619364245342194963272161233788145213027654224852028379920247814175389758510572932803695377861022155571272558764848842393555858550359785972509036302777056677172660251518349879801525848884683120265371513454143233939809452247694263505843932225655660765836890792750512588155311051423667917507964217213020815787084815766684958859837066038715802362584696316387752172911464375519314726479735491678473588514692472700094911001442449835930645173340049521641884447720079386830773623348382846743859853501119745420446815411035349661900216714636712019965363225442218043277225886937068678379415933295483839042433969030848931887558324309950569665615396063408487587027880714447799329784804632161509988452139782350943296780104637326412618363401298011504201322188594232199087467514955793595328495808416002635518180405149865446395711545031171289949987855437774930241992694827051062680339796062607207491092449759803050305219040453927901796741993178067077149179607279849676243936923751544015642263255305131622836596668905663136467808878073918952757216249404683792668025444183501231863552433841397196984821077636380201017992860621263355317905261817219908764939647249280686697603062321040455579611491691273611469211544385939880523640182149509740920558867967453008009725079898014521782627329915505603848585792884894899516501257279058940787247776609607143496458426236646912909327589377432481568189903592581506869096237778849775212325813183541722457389701500680789315773856936546908748401082682906370743386593458179037082806172788242395809713186556273790903743789180780593815297929217824227556849924922524370125953399089968590357812949904374968373626963024214226465334503822912440242637287467524915075382395075450013972300026102893374844391318583606280224077504273397171397870415902996840173508167149047909151106726364649941872151315923366810487610011163739644206730162670010982824858829089410592341857360228054700682942304245850286555122250236957293331988215813393980677292773480800588015447751591456812035431601279642518442393542847522368683470315025508873702968888757082677506640027148578616779699288841317705798986622069739322137338832627006292413482029594866318585213978071190129780447251591815281498154852794378544657997172374253132424560245327296805156152359346760899689128632128113371895223500977573636849447428170705397926738001414722746465414983301729971984158471321612789737593199680115950362929260677260599350568111592855097830341440743685882383943120501297385109040795102351196234354142947786076915154513416901854171522463933496478525858536528063057976471627584801572401755547247852511148323599430107601602573005157413395568670893034664252006080532274487732088067872611668908919261774180381604976681131498247359723924925056940624836548684624787216247223868779466721057635097272090067637699477415834733313238684138945660537531160824562799143823313739034719176508803843115131136582977612768729684262846614472883193587429150725652263574872218970453683436003433317228137752754868056807787595758539188885541850986331566166850840925920029263304012411304834095837361289059997594310442339957982306206649975579598819369334802413435501974085006515123798431013007183942819995400769655569485805848524469286562442040193427151652918051639098127513489024694157426724150235490928628950943272748403011866687069928404834428230594992141250352177831674536596860278328804051161738549543429452981034311298764419637888432627495801026597104342108908873864598317115499602074648797698536678238275816351372200135780115512954386879639360440389219169755120061897982005915441067784717380453244914727758244227882848679431648559732156954270143872129679840911031991221221954009743091837962703754773067157707510737862890168049974309735093957943620921353637587397636573663548918207887784377786402826819078035681755126154010698921256042329391669622570355362737970789778190739795459296562053046280923319318984911354684523592961268246545001395034593452778341487738103265298501232747327676952019785783557032755154490263231719813844789756157420174307675063776281752122575160275687535482497324102066588952952073288530426044281108807277076732998051209756101808173045744298383427210325428126934661336450271010685091285758890500702890934309383870595953587254572620995503185239094985940417583260549360086422152254065772432760662237063946036079873190664338617008992640270155377425137342569476378859121556476236255107054135417108836811664280282478840512695768217652201528302664181756802730329942466407498115611449753652681598372456152493019307637163575089869530594388489681798276023910200302000736442008615335445049521415100900351853615562271565070651978144009269987981392163544820785993100990086660021838350580126571578158543796145672035578452287181459887138912330723150650271949157949866446319819947371405004717039718331709767802738614235944809625788712004685503616286005772691088924646021715725583107588618382320382605871457258185363063661234844244557972128748721772855695077263138709038902993581532429698147454767962781293130057301916382478948745163134765840148856766803908849782989121629635484544831884313472445319092068415468326064540709108550902317336102295505938559006515475384883489581391366698127724664708785316082574420617695005652784737308256826278452025929733902691314725606179838794925958044102010190741744394199089356175078842357397539378917229710792983659202007238267255160733922329068427375259774624863429788717834531982550717953498270511171665239228095111180449507578487245453219420384446137022855553235406987706841633603738329073097898193247255876492120598642584765348401253252095058929689906152386876033368532084846559989718532302385507577736752457082406852681692115374233346493130323167908134780361941787351588757297727049668557850151974403360915447283360923824356590236547304016854887421289103702730313975046519425733590269110789856712540230200920204152618013154083212175993403176340862681946146320842299030233076245662607915316333726806756811091309593227303873888681030841786358120603129011585209714468747632023935125933846682368180641832815156584681516796273840072179795104255763595542201881377996008112377778926618364419035979572442379876407429013854448309171051489461571319483601461140488728245734558275206844255990550082358137433501356891851582661093220473731404739255732791446581605245153955523258560347316793603064852660196680610433835922796649071479039504370129925723524698232290706919498429171622025687952532227532293828338089418180798047575111841566971390853202028821866155215116754442908822673689499931146410128022202348788304093560197211450455473869601055405279852554974555741110867663929441135641593538927811820927858416864537055205516454444085264010775711242193263955103824999980868612726546534742541506688151734642242520784859510085124712203997509047476852752336584436678311270537664340943391783724744045983302563486864433090668778861166606728100673192270042128067464380578888667207254652549023689764483878183653602152309541100759876084716407736330086586370722331169684455414388713095857923720082751270359098454297155994523706077019881324259963164067635074855290661812649959278346946076154517781857242998541540909971730549434894617408647583395598338046090307584668626730957310435440966082490336571938339870744339231865438567817564875485153631124876294849175521338370626311169344620290995886141828434368287349844752679771703345732427682466087980662620651255171474618647894184559782765925264952269590742175448391466020440972853961876763002479074237133900923093617308008361817681074959836600874905062830855565196001011187121709426119995204635623884265552327436454833684776201935152368626045520793030976438792322138391585206620522762705713024160191138889499055970185753582496917966912731348568772740727413276125428564765389846515430042623679665991059212839322644135487946772628764922758273789920051946725586790513559303037645302481125425537334196685379965719844685466154982652439905779491725112708749432493247508037987180455915630444947816609265675325822330064938296188291652886381540448430842449001762763485953556507627075970550080245727260441790140677356047729547246233663651105857274701666769765924434391767851544032791564681780420080799895647573460321255287915361470301386713048164822735440933156256043529374589162210340998953282244675993376927223553264569196705549606380805089764960029194468798143047075261641699223421063074881717833279532978941746120307826131093471203217972199194578906543400410642390466348520654202291103756354053751190206275958394644475047539272129239027645970650510949121168069314183434625107466758820260179556522825465301983203501096929735677506640977737537968191510576475703275786633229806841982744628481489058413952068877949436531185326038206221730674528227308021321545844289373283118142440047610488152097175121939285253502819861383782689960956314901566461833315045313797404566962678827679740201600632975045155175711109260337661159709744422132105177841741555027367671194172407882713150067381645909762032466845473790202593520340152199400205741186254695307525963497770022673453690718366841126677906789801381459350916014787653273409751370506890352494596831179818450313974623544123052560970723839954455874176096494684367986506931487206050779814972850926716180943085454757933072846265744348052772385190091250441175408127098407766943583720527400922745093878566172455440599264398849771440068641735072437939068848760825815528482351617041310285608190595120412173970085847129265335055469268184142837093481516367644020826568944168610213627673481969820101527816571159332882280601954888721566005367543892505518497527476120788727543222187199004138049626666858212267210390362324896500576043966217726866830943412678789719588089927191632346388429984648632675397299150598642606958320359101661478447928907761248140047399571740544321120999080410074154273165321999214507785709945141145118648630824056520438122882586788471708702521821567485577303462508741295950710145072040423275121415320150153074932149009644361123828487704311032705390854878181785093329016624225037808080913504381972516537450443001338364149999071511206336628967021911053905520786084940814815722961288863767143009406028710559450275603117039853846304337425264505856234921195508720514015361683375470900900552311510484698622190158012720451856594021073536382464951220854571750975725534952850952562103675521294966805353515576101376060605225179547240391741902187807791037651636766700006289782847685744434169403264141865926174554510006611549166799126983159809383877929556070427541243954515107069233775863071143582456292255731957153500239835973917476759127579813444237130847362394996749408150617803741751640384546482324811275571218982506298824158251435784926267955776637320164074120151147273685611281900028904429752894496815123777772527530277582601429338748460504222052801175427444979607958767000939963598256707264863136838238821787345825650289989168278072353829580468635863509664928961933095724691608435309661008897790880586470968441187627725288331284861978153024673179969026900574278503739980648181985478884518011913196616266931283882430541666399865792153328336995767692454889738001644786402666245187184319832884400467841920495489293844914372856558833638736303766206903615903779438601718257185168315196313347024623547875099572650215776257420629124221483621004640480440984986693280076445662099130285561490260939711044134985797568586091456388201145228047774286520665860559783277161723745836716506825439426940924627953231966339118822289271603048600088116726036467681185688572679632810293501844652324877532367267376568765123196061433730088590609766607827720383965919011534091265079694487031369187895041935653093167692691807124767293055526943204130147273222092643913562595346745607534455084639966957562771958804901776968426943570415810392136949546069686119710612397181479259605623728999970541830927387593754372794912348876213856892619044580656161730873783544845669197469858072193731029662431665310365994036662194353125150183670802686248957982467316113531034052534978381342846882634368185491719226564084929050291418735860251532097398526005480138441520879214785182256361642552071757304302316975057289293661313936481744148686892953406200069960054383213132940898917542449803284940322168339599391449448591808275616799878786270104408979698788522958664872517530913802988526916755903626196606949659685058045844634577961422962086766955851956849456855643207457161026334969440044409896206334647582089049036098750075664998790933858486814547174361611927091429455050947885583757723298348219703324660201791897744435746280158500821452764368858855224547574237326848240754254166130217459894192249597767223018793503776308806515699589022331805527683913930969974274214849665351505977487721501042372428243392071917523465810104543015957767906718329766026250834610026098821570802504935007013636580718929650852298254772461738023314685851478179401412080814176672465797590593513422778713799745556632497852035521565987866510995400681485553838026749600430362238433530591329856956700220897552376884831546489842696462624001579631463663818945203787759803424328786720884661322169010818827931501860147406550895140191349334511437484486425032068262873856180036077367954600784467232034275599034608173790718511900741823172045160436779196058780988047109060804975734287921956315007567251498900047292513448032327339284189129983334347439003512854687184044559784818335706811952021548070792973070345719554501270985133557687286586874087457418864118596630089971869010990680602854069900406878730180394831363980843905875887693388910971662559026642714310458037596817424580736764037452879010305885727412983680021372572482029875905461217857667226559992788988088399992661564216809625376241423201564517293306075823949065459001668193063910439811396668886718335268309774190985874103818468885791266853569434350278899913460454325914320941959549170493564545784466531237471721880478058395388094591927527210431806906024869230962910165642264997411107116491243369472651675848743573387183512551766812771952407357441805443047861958150367888928142691134042358343274105687218657999157940788566217867903577755081615911644796464656670343187728203440322501311063306871111503580242827836893405937839612943360258859464770090123637502041949227816707905569944594617164122266751552950852452413489070643684112325860575974484104404292469772649857235277577508279856636368519040149428371794603499500061466488501632094168137223903560014454066725389883735152161370500707597097517556809007048036817869272003670545248901112287834219885599714437050015726318826779829032842452235393299161717128033419478683869853459583284083050020637066674143690134397332622328929727929753469628816722412047975985991550151063333060292722498610321218985597201900571814767753468095896340156265287271180718669548718108006417616699827333519826031883867887661061051607075727623669756168205742362654536258964846513669204398186218838663220403812163483560943215890614693432887520047166914312060861904697087314972273357212517336919755344812716937207824570086566540466848466473043251805955729905986119499783785569757441527671276797304269993671458907205449289209661429383984657582454867063365855452806958922929865518236134044430814845333526620366813650904383067938604068879362748768591848816904382077796065718413085212198649666825397390825640049468740082644819925774184998759281077989124784399081728975162248536997951432062563107781434010830005702613511294108053904879205457286045484901979252866764893286069567243026961177959608312659655306502314041780550513791283960554074717453942210239421343615799420703953331893032283784662412100164061376111436018119604554901877674849148146226918396165517295529467054272253404769962305361548506354478231051628944566966751598341174684678878767309318590035946746302660749753501852321047726359640154657656063900106687234989003350984849546981163485909681229772015170099299274695817845366501441650501026254103913978826899361042761958050752756880748172607682579985942829497296919447325919277622922936166336377251374627209704542438747262881974309523648615971244488144423338298605232431110383828943582876689667481231603220082656142219275265934203009464531882293942398227235419638099950007887290868405897239058115614568601732757923778717714055826500767960382854821392287802905098744067599153100405242762264306998554708606940956391829130101691341073782780281268820485531779390958222387586540487853838200144497365982690105293147434694433371207906914592557658354894161959329278700361811017503551966704118249933545656103213071914455071982335601525736444156451165930296839329078183371547669737003129034485929331436053088564073830662551290511455734490205140774262963487207620324006220916342587466411188024907913709682157481147369448279385449383908556183670823819327024253808432026136324068439174929314716678884017769928520074839988271854079761983088724898943897345534108736125432700789568391671302704338637573039912679454343608189674778688454834726378694142665697276194865767030197649275159603058452089726502605676214457662631070081606174175642753542188599553293781730939210865412624071872125179037839933227105333383873492068404952726841236613164570055000033920167016131180501246725225970683338979134982000156592743201578373656280932384611297191361254520622456590062598854812283576919496872025566934396539251953300982390899002859377826551633603116491577374246409407113008493091166551218322687726245811519619567010319701339341418375432184075607392917710664455407037955173218343256417550601608189967509814635171814755612869197492509217819273182176177635519792246776686956943109624457954906062445691076562377234728866608874606944147875868533447871841540744337678758413765794532913952837933690927844356935563174156276456410651877927494079885024780343587533563131571688376887929301605724226554936907574144890107062478073187792031471623451931099435545484753991876175449772424230198669412729687342369421894172961171782686858391935619642182342397879124659680077040029220805079454112762485580898150116818359435008407321198834575569435127784500679820308018443018479111288783999108392959691923322158984943811293885754017597938282149991731636986807823087261115966010705088186081871206456554109879783040111535886674355068612884814650433341966350471968807907233048228380694048603835033609211312348330983930514230791865635027967505049701731642114890041035323262764185984645339549421004747126892744882955450443528591455397241211973978478136082806779720155051112444693835001888785243650603595879387441712563008494249352443879598019244833124780321787406592348134982211904098137972759295206360758261904994821324788639523010852937167888215579332911335782726147267919583849779085509721480757874477781763023998223971126502883947956756745415922227044486872325672579186350675204039489444695297339256166086123647862802599236435310682331575262316587215888473277291539031461831442034719939958952609268896616596250637981564411902801570647608128383942118466318461081369499985810032337280853369919704427797607271438548627027377027918576452677384279149854621446715617393667373694221668588262342015942494382928934443196056457136373708796846789732636517706960578630582238071391568114484122339889839567452501802141531788256856037819128665165655366564612359500322262876399835132569916152504502917761631202182590400341086258820447883503531869996216354851418852025926883383945613405458499788453126906069590449164627171565262945997789366845213158148200966269093284029822841060698251439543307793117291892429869889515720956512450757074897770543013641636501371550976120758910382962457419506869173663879783353662781481631009113079421498845423447921853094959836249719448291585664019127254375152637632562904726247712305111220184609587800404730672038486599479666574751076023576766675405173688342372234097248851657649126768513700432852809309002672496454916713244772440066092300612465479903430178702598274247952780453299068557764776594903534063769871714295028150814433571906285569385643417905593379104799613016592427824824755290253804034698339099778281209655494740495045533005717602527547942560959120084693640320392042180470059621095588181872235180110756882732599238571424253942768240794578999582539492514930029851907339102489739274906411257985774658134625533120396553957261725153570093234902550445692816385120595289223721072008102278035664560532287241744719422523416827039238247354570055915455378123018727533457748235942787843857323329646708251669038354049204334873208862354997315817898146337329722198507498420778688042851775126336112047038454775269643299582562416266810711845441609408946091502248739989319381855742503556422764500786417612086361635010687343659092462921694571925712303542058479304817005154624432402859016976218912410840941918801065599570204762215786315661699269588228705239279110788351839915058878852280487500569391094571043197463028659723080167081792275814866904136927150418115602183310260631080007828791949591684625186899422120248410836492080413346926332709885862990375944580942055624425135813921599807338901303254848967953756642275388894847027718202915588958593791635558090477530298312610763146518439562961276577232032827123360323000856538175496499056881185212400009668904258108045675726093309128920824436793416131432174837902171983710207268101845176442761769529270029521036943120341037360125130017960230078231908749755537812275318867293683360315092639816828616818370033283148269529468790595999974191097834201112004224176240644843109247713211076940344485909096169702938572365814750153651775634419917274430139360748349176451868438128475774457091486276217176076097164014671620986527061325871975298093405860816922253729042808396564817069049755147888443084232555855031304441126806096189954814660309686266354106568056052406536683783047598779632641691774838522749700872007584631727301937734053065617524031007798605120691237114168531089541796435161926521320878530634590529817918328786664033408495587789927563707294503577512102293474804163557057520468245252040640346652369043895517575020908867466342302258388164978386486453232972885286760176385274294077210707568046722389352968195992606987747920308463560773048964642464523830678669338995901099123702092981155315251277083524441362495118444418119945179601797188400644356483486901674199701759210528730699941025933547467714064461498631925857724371387476407744685251797394528425984393873769782929375829636947009785086747515000845617748884951463007581082629118452206165486546618215391380396888869775243874765205124227134129912659125343411005325726536814600192982149611363264749058247130977926854607918686301487422940964495474877603237822211171903129936966099734858295701042758346342543032496868648129315935668477788503132255940628083958124404661968304571448863290227646423718170621754288690844876785296808955459724564438341393344731069737509555046197566049212678614193503269482671056609801231507127045872394873361519835092434191239152456940513506628993555787416743916178979676777744740493529650246621930800715634016243073930066322317740211461569288461745904347096327022874269805820451040535242694402651255942063331524964825653275421531327621746264596158937342866155573410375964316868562055914062774249906035077161539530763729696514674589666657729225887764209152908585539595240068629552790988708206717970184971156821986509300835894563706087747970768237721705681435585554518839374651900461891549003877771336570652486172057191660631449970158237297896325602275365458118980100931126786569671497575874296071516363479849727878237828170734367428962799139246434390340792242058714025421668565090429169071929924973897151913465227192485331951917303332892051969302730793035290167782600801655160363796219804782778410107673806795283425840549466300735629457074705941950344439374185457847995693744280221347744075979241788941558691849602028950978251974466025075799537674709013406456055564116455238613085140613144620057820800191424790192446760566180578780990832251623652179052662572000604217107203300611449474934337226980466793527967890506923880000225961283611262851197520575484060942810334093821511583629076881150306183622192102040415270823086464047917154164056471992397673325314785660452331149602268946574255813703127031845722337389609845188674506531350116154637605089924816523155093413232817235691473575361266493187535793204829841358325487229427999679613999128341292481234583556625560030039074569772273707064504710242656105787667706584407064784767388844631007344647192248492673722360007282824161920869844871270472758438775115131750381056723232042683117516091928621376202977123118282895969278796038593385481529711124419688344747515954380461263197933866088961677978514280777412252129036263184863043701120401277076814592766791550897791193546445173571167061098056407989630989219991108146723485371657947928005673520478616629478495040806633008647622226153414799171891218594886812235213225666770989941099502905599273370743209633973599456300069151826685800982911717407563668187269220818605681022566490697796533694389789458316312863909390846607556391276316713104499829693630738013113227246674061695408737189832826481854362186174530698593300927985628747399377151926457928224694956111596282584480696186009469729073896990564704938098458136632327266684987141588237244364294563644520662136193082995429286323077133849630280638896401957021625284751560601612274010932722943122619987803509096075598818680422034941843651980487721400690704084129930668251549896845053113895134514102852380977160834882426110322367566656119465953305530803621388722283867456017404074182964757877163131444002992735751286404201263890482983354640262082015072644129080386413501407983109625270590582930456753662599154138795033521518833202927880111489239886743250157320544036284170693463667290294351179843812034279641817773705494235067841802274945593367966913537909084678728028328065218166431539422657898426113731668638796576260696119816601117495996360502335252013014274793706503384306884615954032813088126433416716063637203216001034958704567977234491980719277041380634001595389384924227170477206191758460235501497434505960831676827278653630864511824621919337930862108971601862126060571101577752212151486484050613750519714433410111443441930197018221662285984829924368813349978990762636510033220319756663629984516851134311007696610041396724515157404163150304911013922641445622275110258915070685074320338513541281852001377325661598824167065105136429963419265067983860219314769119345958225233171673266376272851641177264838417828038389671878920839152140843755574241369805370127251313558919497043531340744829895216839517258128010914856282055627910360813639777530868972758809553429785556933496587428118870328865093521486452622964102712910402115996485139125535279260842453149865114608650225085233243238640893529701037701046187931411082505268565319516734368487217506703290254414763448168951200786627311244419902696359186561749735357123724091973091238785583694641129545297052197755969331671457306091574297156307670107908888847391722000967751338499135636682132700320764176649738737328278265704378095566877629298161488069111728045861722140144873826753761946169094541190847645507697084442173425758630718166103021507299785037007090144844117273148380989731653727982546595934321242972779039031652827418055338284730222001497176346554659722143880513658489910317593857345033883802063224564137295789615791562102555369423011120114632014100549744765436173091085326139986733873100712651686974735037969129897235073672085819341699685901242767648344968017790994385479752633332614483397931554259624643919513254554139120766816144170530072392885416288859378924938308240205674002269783337808402930392594139470420373477851333307036224971880271317612490471705879213116529510149723016721076262432065744361251487753127726487564496039274807685912838972006336916361651089638593242990807105997835306282193876928960054197781140099319764080859789003478295265255681923818854017638173630608827761008904427702083556588270597805256288779055534247716702960749246457004559070672598776349315154582069816436024318043955902161380866813161054180744673798961544316837447695853438526215313868389686625115682495068443755889287249980349035298091494591855241815849001895038091253412487519609753002538494702961784668622731230014649250973406861281667702262339904018327456175240824274321749988225982342959488451859436348617215698246153263457493680547208285375004187419001066676023813183299994153727209478341298422684447706113032986980536778049585950483681475285592936532922684449955573768281907536124630176229590958286281630938377356371951107866889811842071674499604761103561931211004697098934664299805683974821119323504927357440237451419403419151797173052976624455737742589094025052128288917324343935333816117716467959396314235361823019552812724362750182574983810908971226539150642880055181411286809516714305606803932017997921208273128334355926422960091351811434885827021980815599940419115536595365646683456814838089959963538645140744161497666401931374528112538647301102788079815340641629281103061268265226305974296242216737140157123040800452728826527756051783623884039312329447209683856932259655742468164961115020475286060563520578624614614199002704453453314685498404908232336340996514041108805816312842879056458334065704420530607588702066549470320734628019463399036509518517219836594823350617229335648216797138826175052881559742486592068510205790971927428957046068761370140998031559233404585953641786570523462895594245919356309129506516283611597824984914946636417428035417303274286127156490700064050531889675391977184127954972389039071795245175118222199399232544421955887484670148744571481368208554773107099878660244643185568777297510716267663790824636288995914872797282464765746295813697692660354626996569795485907114833023404634069667967927251081904494082022929348148893382179487174078993185323846403885443161509343468065935924102751644339533531329742152290155224159693119778917520126188414233830048792962394078942234336400843508958934430452202808145073712213250791860033768243023333084429630550905949422728536864256997719492386802529038106746463666167190902222561707013172002387999443307180906408513206018891893251370265183061820769979153199583583298884576184494161737438994743035293930801785687382489377395306152467598451622261937525870229604906175360517141147192750625067172161530859793336814501044210690771843826521160838125111924349772685944297776029330118348813686781738497956045390992471287418613886665504884291016513400249918986436940683329213502675381196914176115346402170423963987905422496411006979110176168050362037848443105502670682043381263593482665242218648216137821814207238473200374928913282990277469907576303169412485368521951746140545474289158731577058225382776963603519360227074579593657395661452554022769364342334238667231628914542541851585086588496528721727813652064381390412127549282567747000410799995389164393267156965643133923610858536413367649120934255503954486871646490769460164063020659389989895713129475557079100540865097444905833801933419440372854423646956648258168282422748332147838860624227706127406916460063397463776939766957857162084278248895378094590509880365341119329667573828963571466017197182923476544861698511405389918353876744780177509519864405351948433773046926616957111935603151160351434843736760572041313393302515009788829995324604065036073278483525671072215560543954066025505306639860962559662474899399780440999299402787614736304240942906392970246545532660519610280727777630487459226925355463727143929509006989907899431257402037643626517318051696193979126913545819259828828006693570295471057949220768890242154132211965886833670926667073435491478923639034081133355424841888310459370047498970537202388686121264099501773015708319202139742504962882214806694966312896216138907522124178362213033179600385392136960836888982201406966242586947144397588557994358740058273344063409213665323403657065962791177790013289358538385857179414587001236271091644045731107588729421150503861891444304334915481913604940484635458379867551771591213246069981835271791232933016123803760543295368273977908376410303373592605469731111327537627056269726206464913895757191566726178175732391958214736849965088360606944085184570152670345813529401597462198316576488488765584083550427746015629236946733600898020212114175852615512196194054192933804633432178682839986716719335147711127398241350815486964601986728184788151240061312069740987546875368762796697715421872984333223932700553989809800825107626836426868389650673033598458284529312947965121647457828046347464676252664852972631514073821715495511448004277884182978202229937145104464311144706116976522708455861186830179187213902560439259379207562435127111132461813763535373052279837962853486477084909242993900184416182162283553816892630948733856301279847477359437977886971257080108097093082198616138583204985115280255010115576237219611297442775625732614059001443707924652037280217615034263030227948194198460334924136568416700915761514765323757316099942384211534697719794198500838019551114935653597675119938275262793820968853078498466945417482268477517084327577443988896955914018471343392627572079948593023985418164969103064245237969374798255011279121925227376702451435434450706665100523438281906793149983468692650800532586428708434249913809535984829694274921743132272815907668132844284949278967646944379222990566183716298925975443481639932434592478231314637143590334781710063035387312309836258461150229563729437553899874959660048462306994275935091624822235842516085990697215601965477955394946943987133435419473228281021962964002151808993470682970194091360377623774491199424340881589079092851313000530657324981339120395272658508277176837625839485818896770418530694061762535861296550356741785974334327961103067775273420479795875496769485117645554043569093085178461634348132954260517095559843238108670557344754773525601745098364599415432949712495719754817744773776807606228504777797757775330721310631460576152639875264256598832784914106384256971558016002443960556852320554243631774134818045051198390636954180672537797721969506472699909374083494429618184889013622874252757283490104196066690540523607012338379143655873861831876170032251391454440793759632287313640950154857498503037345774882422550000328911701539819327222821199448839320516049082503314463240482787139052835577570072569905895347327591243925816575555982159897094613981692379691137634846782166589527626854868824961479770211140641968072574580753322685920010989853215362670090566362255874138691032102887137516390516185421044480996653340292673755305099175893262953402214558545946183603794402038221984926763220697917713162176369515453692807240155668860036220516253999168060386848063912579189830731085060926613161258415462897373352445899045913185868883956902297811214601204467177284461579950522360044793157872734401749190291092694861003073619447751848020823388509320461302538295536903097840786887087220304857232506796832699682959320161016790114730032471073460951447099364128781304413564772016554519557757159458327434585963562066921316687608644888755177636450809357835318142907778007720031659480922526041078712061619036104379791329503255771341412044034975787413332709385572037113388158221139338468037703484013523670730265320499162646962288542369027509135365005790302092629543775899960412468444478570265474251315131394261046908668140824113605913048908319795904532314485714107745749599384529348126247830327549534740414331073393438352168926380028084105289311312114759549599341411071235854272793468900584715806356420490292238527040261486369801935091031147794655734452226426573077790753495914098192015526664398926116166543150925115660146934871514291895113341817919456697296691523278349777357471085680448035146092333152034988482896708532365027756452483543380204667682585839490776738228591531630750956339849193996764046917262407053943459200108489108435210406266842120677584132189348572733076306948362930487741158335608217213354190451820327372607291582088647966442726961093857686661455873783451689344193431863559143714121601412264133355643194149515919643796992702759319140711892471315815078565356742978240569791820967374344051989582954368281916158476961779813203047877929232155868985775940960421779136420988118378148360617283678467183768740461464690302367065959074339884065974088826963690608898920191391505573858288696927212137060452146795151885090739973222572789561818373768926854038099715983628941514600695962932221457115197590700125441210295398235811204472921831234852706204791379049692911121029963851018929435768826224551611400579448989071834595462138161953421921252549397968244014641306297406341004593153897261034108530322288970671275555405021044889355820463757141300321057737667961104918142972493590193971485786254849504232437132391780273218069127626275467164108497458897648496597102227691741196313862671339040935504966235239127772684566335546839310339298935586901575078601076464729135968300910843742159928615430696024655047399748273729029901236100328464769269733052774237079437172273308821602404742617543913754577642562944467479446178126316504273130973838121970405476264764351689177975004635390661782375125876763451004719968700989439797243949727018774915618317470893363943609753400364476294018073825767647997509152722928905437252324967999440968475221116661724265548105052758964489953410348631262182093388992273899184208175529590049369786618030479565391527718136672186820445998583575640729110338903266096460228257064400437446115502395814571985149766388257998667529074213551490483181473226254168484268805603533184667076556764335985266687470306088793678003583248615183349599106312060573606509381139852487370192561703512288117038501949634699222071817093407883486961562229404553479670110088107541946999674880431451380860518238421942264010222296090052198803429361938149825148667688098025394670577261619740907180541308263437698941728447766676871190514573456197437478098359469177433886090899987788751635901833497146235720418399396308517714181901606497520518767361042624742855661843326321436083704407930896867299876900268785772942967731336625676182613392853757846225306441078800945489432108310598158301429725285907686042851381173156524253409463989179241016570118230694471772297635871384985790344939044732815550737092203030014819320197160857485414495685286916308773639305633520592920772895517675979835229249419795832680573723354676191273068160955800482012988668604149313698230712313802044182985345636212740107575357356361530900808287046187253833214494714463942007703711826924602698375480879821507500598237534710773804165195962085880018026139841283015849341702487868810434007809837611026299953370532151500331705682428694039364144374233853747736081998869645787367346531607530834305652803391055143622238530536989210355147190766644355403660673031091248958760796163261641808808481786997167144410432375134528560030572386071209488357801013979425744855308088601154578048288088248298961798323106304135462588966020980138638348872988192971981392589710640878204476576903809570087647965948350132433631531044683345635066456461520481317636367763970177092500222173800759709989184460382449028844984134694236523184606209933728269888184671056584157392123400353705922045325714203960488943717295835578163798375731406555056645245964888228906428497070153026452142841100344392507879646655599837060362687579435860903387124913987535709766147126884198764296165950965823237325130192324508929376964683086091220757441442936025360425131815863877507519617491982212296957669617152642416826827251655027369378767426057598097520116256990007260585215170944697596083126485715577209846692107340883529623500149620577783502774826690386901399688158208286866211700116574871945022933660881277816426085676497418476795565659588509978661840024192446860696658373659569051333709975441076679846889655262726636669835273637695265215863113898872399261973955683001033002774032745190067716714861708327714289137441080062375528829508698972617890522039542635589906097556511650087508727929546850963561561777433596003333043786028178918934249100454743940798002335086676085971479727897410737933208758515510697359502368536349977916084022722467810477159082955897068580454477692035897875736148389003860272200290799227509474062982929883695491424377013268681994078101437629886935780643293907466060587986307536051094692611466723990970925493977142898421536215761489195590025081496721099797280783839669030795163413489059871201554625380898242077648277552120054314496455467881286774059418409021486459519016740625841457692578819359646903954045011620819201287003576185381293750806060917994812164987849026706539708370478142896086668791173957241039904982539472921161851200402806355135342502875174949167321498956247387322088540924384188874812969602948269190409778626155627995811911034084780029553619927420343166473625022699683431264133955809658453002299964440239449608406610461481096717069166674686951273053846206501261689101549778140718679007131260899800447144455677758430229640393037571156040555262818711565974714399028442368217006284216846491656667493193531573755108402881845569759587296719639741898518953680384841453894894183799613074233881083318219028456662299719856802322586333904713771173723281474812379511658134132697768744055907138853031477544554002221229004290066213469638487332170792118246857469308654768016342260187707408253565770275109119144661252376576938711404191180204363042852519701830832442924895751180108299083463828021866667493199699701173749175758241957964652785297791694608194338712517376378434224768485534028074082525602369367923330537759798445635099599466502032177589218127047367043353595868482147633757326928981725852246129463464500818968848760701522164916164550595734165604448901305462534854797947469671376765492590373674931985039651912768903628767075495811119838889148963648750829436623938714914155642902504008864233618711848118006216241523304069941641522231156308243931262207729889142686937803774393051227566636668460838834314551822607327879010720661275025822214298306334142887137991504894364154027550937995147548013768291958651871004561214114095710345495066271575760974016180864599287675841803128675860076420546811505186758026128769501286073721076087284112170171978452995109583416180187195701879717599640950971668125230217574371758753627729701894830649377344499629447806610170496505755335976215914245289432231520990243639516971497529414953084366996538896021950197189357588750350132405783006859376298260263909954590251809876861274698946201007294329451356249490411423452789198952052266947794485317716879844169378711761492518335492189276768706950700804417328764292183953114476231272541424663411951652727937944700474823351382878434355391584227007870343839367216422839254594708169300171701394726668490183545347999206536196545100905592062877332862024187241967555403705506556901385026649987782874507001469224535059501586556971506009263207332134153316726554547304371290656633540185665967334155274915633587075327254355214333811916028827813622163102821045905029744748551843835906042710484520676530771202817312964839867318158169393418458958519853651789444926611464815155477777650106958855790263383438177800635305729961734037250159356218966783985599913765068202223352055890734722699510771654272912539577706263721999045833804607487607244772635202300700621515382208162477785311577898319662794320540564597231652735312178713252327644520890120873236471641293201130228694634938805515954232035479982941992391515078749299807932414370011337882507942420158363706655092094697495925982939581870139220437278320154081877774920008112283825999949036055883002147015532166131946346563823909290626085175953261478241331445047690687377115636551677949284314937440969101872865663177917698204178600832498518222814182100903702296072865396614673947450589203889750997852412093888598540826193485965598866422491178774461064940892535131437354196565748356956942389370502621392258315114524140854131900302157275923641108630417799419481404886334679521130887197650217653125783743747249223315081435625378701287795287491527854863171874396036188528840124685413564161852962360539203581288938450273894930889531510494733887062172394138321628883943972801105351143439286490708591640844520356118392222260612188468403062867753367607346523489883856898438411205528277070473743717529997537362013226309145681238152863330627766494269991967272576336169066432829724380244265399492370369111702922129986403014040824275701696949135797778933947500556875501839251551757988393578778814609269280348874963760616783318928666457321990310930930291576886048465813446776304473424497564867750326657465386337280307953991642454735303768411631440845854962446786864552930664901203907874285170736943363678075574797362272609761298889566970528476815773408158489531895813706375520019301086121505062768793375425503466496883495030430316944768117568950350913975563602530261534142206101031434068093565660364398391532703254854533883371263065626948002715791045035379556093116062393754502449907736673834335305733090969860135536501703590685729175110137848246352049151666075261212198594996415737753400751727585950849559177703680647141645205045895662729839841361080532855453823300235651782631422146139288249699112834689822687003201218691230601462307137354368524029331378734295855501101027765869425905672874599977756259096139026719795563094838972137833539628788521306177329146480995931105021656285218562026007010808155013638259387169512358624031331255544089038523393954170871756022713275713271315664609397642681943612065579064554934356779083310966719306880084037503736465231945763799504920959453696467486810641114552462848277190943380699897534503313649041752292872616071976585422527946077212810210206823669817659063255853247632764244027675241832489515507884774135205325219870719128142200387929893190927223826351818920645311859042019949113405479006253445909706794793046894343648102168464488862846746807794179873298428273485371519542011901949213332313395250711183509143710407276135405854315936536011795766094902447047242080454961884321103197092793838098732037992716471837437462986903054757403523437965037344916847687963205191668118717480824558796318148752840115236267835067833131121481134744877991040377846127999669998246096226665940812369591400961143635626363238767420912102578227174160064649366085138833792412444209178907338163614192390851592784530780559806828024144397138348039640509702579335580920831418557772119425236897758683195770601953339982648061665584683615944727500291139472107138284046845663587319650015311873935344708757472097517287260621578554947410294708218484098447064863379743556127483287521612129675130716412316093164009029594988906527750333348955322246231786662063443940770798425753692560157249192564656759089848619998062939851686397536818179317075189485208735715906661834306838242162151738326473527322743008356316503383633713502033887862804500744618054190030597844029611338280930843361535504371756322797587601975916520810114985865611001128487740990141181763455043074705381213926941653125627256317932271660826549895307204813535644895076629866211005696992529531357400855651786088805629796159789881759539320416540244451220591870289186980620206585361735617204887845479698215751623637717200623000817341747080568594902385779447041164636932913544773331906608442905673035849897017250078564396679695357088013462537472371665334035029076629685807104653543590923612165268568533381085948477891603605182240667697774563283691347339670567460488259253175960789381871739306161969682530964500092194681089977773027148093703528378525719040247774174223473384514777613877448285658003488854741237841130126190270000278289004034456869584391851058584045783590035871092143595876165728232152516531012393730535582170609201802244229589541755576673702336541396833367411025319253814030473646617139591096796301309070775862264076049157528454312488512928565877581454434034399718435878868479101061507620553259222203777964866541562929443989764432394703072604882052370882687887487385420097991121784060234107716578079799658881754832680290384050091973022190763933795219527845732132716242504734869580944943274578770421715768835599579457155298589616480679001161545551564886450632711801126452437052561351191694696919745029405028060154502412494408349238441464904989194591636741565429952528826866962679299152754071280806270530305572134133545846146910427685141655327063395398107642387963338091640068818142372058582546854798660006952764164460197181584657790696254592837832410849228431753403883527997245684920412321846295047786348018684469740966864704995411188669701795279419010097115975625369138109463357421169016209395443162508835757848115054858139304797355676735355032155662403045025301293115705133980745633446640309679489334862574211079062231493807897521673226288740799590796599831260444932810131591052809750950211073640814388870883449841404092479852109007875537604657355545677082280513257577674432856721848937081257901493396142297815612552898016216905017592090405973615461779307688042879316383163348367470565842154453958923674814126454377203600986928491198124213528944199723086525687508687642015451257313640886713825908985761384932236070072504368599226603556823400197504657574175402799391583523601452520209949946566126855102097800524912635968219770707953399336767733522846742296385580335985447777728276677209723268181379908030263261188859522411907522818926333803842401445241499196899740447298712177869860134510409932735476684648447048421937040997887342314649512441640674528721308217313319697423636304457952767755875069579513635027540771518773975072834951751821208844884855663909000613633268474590689585725456382070450194305576441294666265608173117060215875106453134636753116045133999768164739421660441186421043127189937896229561660737864934678038384569350008182909855434499866783779529576970356669334586337252120343355162635296618896382895742139642140759705502279706378351280097097211519131117489979356345362334985027957104910420001590422690481409837654089287981172015769387449607065421938401302500467353077656416952253636380933922018877349779532645138175845017129590332268605354303632236963430926025990520471438613297760786867232148954023074031299875010613081275755488500660256484267791882982998645110679212695240762310418875662903821424008682655714498757875296191780623904534151494630208526508045190807494063649648828546540953625843924938314100257376518214133649418152508302586840408166492032390016479304051330065946561132261249359576353297642799160984008680977123246513806506239147805194248794092719597868480059831115329264130454064104432753114791212261704172968393125487680359211921676811401974696676512136170334385408162896161746521311426342533075751495876783818726185925722638122118512078532473498969746881617998073020280207106514864468329790922095395925204597179196838490708393110059382732916252265573614264955202961761197904027391050077127882316913735343600853548567411577879580204550428776235867632329514899757793937725235204640543423920722842696240034972805664503486428177912425347318807360690212757505246643361233631588833530670265258725924774301375488172079796340739699499133538097819939934258108188922236771049540840023649714754935302685913848356020292082487988084483345305755185203086479183327813647763616341519083478879314060633988063759102712409717552036810652696601495198031932552654896510256648122232783644191774571662771178133572228316384728310857823149846711847653519951951909255408595675976203369635819216925215285058708394322491307819816302152467735756912278887309589996537333785506582212442445921530093396116897837784494895773002582915045938871700554946742891901720381091037887917362162273477940185592012716159040370804127112660971406919382972897522468663908963109044344038777481743845119373935360179065288484197855930584444802525056693516665711899984793694733494181142619127678986946821948984368370900823480014728231136931143774301234515540616322018472698502379665706193587870840246338937415044450236828064278716898797574379988060381554434691509320471818442030414281027943744307152207434509227702574569690244931101901023392976942775670318726760209965207015838627722946614170877173511688684845238221773650784753235691473876189229681126470670631734275388899114520051621067899114421179379285024027677314093432603123867128638458251981143458007710109462760006714933824398879192175625994426198728260360188021294296131333250259540772729734712334818091581235889987838729772408453669431780514628677724071557415426840411624316431886920136913351107426788296158393826296727058593333997719599297765145046187497353246912268146022560841371228227270890751894378086525539270489664010680560121921168894342104221937314683301253635929919210348050604304865797572816436446288845946870444642039305326094120587712540691301791874639196614017591608834399656228267143400139025783370098883482107516955125958706017999319560983420432303377940953080705949659766076641640030506835185910319480260664767378717488513901307267330901070875209429957166263245060544511454776249103373503709612477135723147877324173466825588316346659544325681349865164548485559429879276671450244573406052648686447679503272524513296013978030730297373758053010282175173000026298093818112435407086530059595056200277711127897575426541440034926074522178348047554204084493660321027905124947655612372292027508251593590080033914125443513708605742510949200872189056904059744489659230983403683733322832878726645079210717647179286452174832535150707640918504240019981274943091064635957766950645409813193956284778731842983891747669396197232994818151836560320022274903295205230192841103362348861263278768572895517591830729373784731783413834631424039084282610678618295366958915632629699962155126038325203323206052927741596387909100085625878606818459550702277408999797509621269662503558233583818905559397612209289164817047112834900690533597026279016750633958397266267802803162136606856428770114280760754022342806901086982430539515629957151913020482880541337022246320250739503574491179338185951716260159616928355813223756127362519709757515683038723367334911297514770267605489526648339396378240783210930833004125533143238127902210382108218678709647040351629389192960983615935729732156632801819030179828441118310829447668058547747948761241777224270459627279144625309763489451345942252599101862502547254549798176286934243600832203965809980378402078305592164838944850700080812101874368463879760958131072263983154814389133253638545916168504765767284476532005935836573333957424690364851892187998656879972968155019896511005686905742432199113696410581887224439148331523505147607196303991740841754528822524844096865139017247709695992143153101261353227301418780204993749278089561016785716026551546151182814674622992916350276425970400885836554711814327080202792260552475503427560185093955001216048220521299058943713304064566695184429916820417950375035027968949979514194237295807019035559435682702440553927618324850471409796622102767352674285377914806876376376352667556950297340452834528572716654653353278228551880213582024290602851231297587279358192728538860134409067867802193393695274180138363766454078754044325117659316288517466620683678501252006916282142926066036792852888360749378918320504842751611256794442366120636996585501418194978922978249244159603484010742406934475143177108797982996541865528681186129303794893930769517927432137043747855378775822244794066987085914726070233029948431110921227688596471600044080964689577110905189260016642538984636428167220975993140930272623664942058275510118555545960835017064485656957062286207533171290372596486672984822254605948726619307070067106055920936681350685299355123503789246628433777275293185335032625279513950325615787981159779114106699234616296987148619965877825829519558407546245990565724455928959920002023832830330238376924425304008456858662666991053092539267482795329890981133950223815648197145080192026317399758190186131334499006078665132904501967716918826336156694014963530454125770557907289738895835316595411925270786611526422764872716327346882139233728406776538599775072080128764013931728126672468952879846198290311925828168834339292685576959948623145570066001140853496408071985500236226715377916686077060829899285898360149280412734756791015891976068006315880590238167438630249183456417942830681428852542547124659094969063626402141996496321375949095947157368548844301938100838299808995300735198812903897440601314134674152537038537394496727295982823908633231530002254998739869418957217589096644610765337019648514122288050038963836675955634795807355064072855020276735252185313266028640551775361632864245993354616353076233569746429198878008003070426551261195851737916963492965128409527553002765947872590421759935680656841785941853234033141395907207265582512979504734273511275121711731138609271795950196371887561841181547500165910372021217794726808945185703600376706588785721864470093022390248473453250895982815004308796876743312735735277358959830278584199973591388075757558862180897416161438774156179436808336110292926798481553510081031166313173198336475459992131445867590414218159908773787817236319304553480136518253427288009118602715790965450793970082342598051983304566264793146181423600427253949920418786888026863648220066456668983354821699118644691557940416058559792357612405066050754699870125331877748511004770990454350194757344267665352873692580654177376186292169010968952826999097995407913032231396462935760030744268142188706693828144285896508990636044030451941602040822591265853878735322959117213878116860383294996473357714855826527722182874767061763379484721801745197487839420367103377343014406606793291994344546428353210277622445633593159670987045987565538161503160953928766612055924405263273355086935514705974725647583401229155851399056501239662283530796474649799739213241456831380425218243862192473166159976316915845031402675013115749779278188068829812591915463287409083438835271015046004884151365650289642410648808702785604033236505165587776574024490768231966599720152817418462679859734345513695394163083874223086221000696355003638054412614676340015437650149012640129929266033879261836813822488371727368042605452870304331839043511909339314267341183692616309816190027166378858074950904692697177781473832477565566761563156978956261304552660773426801183845766274712206110432630719419464226288310571615778099761376113775879261706617321494189312063586572904510359093343796441106122312644380476554641991187267685006976296815657585891579770656614030795750289654516436937417949919664757111417776456704148500817932263378307490573785304027414212280038441075679897108252358589303197246403097952017054944864179726551446800493463444119764129860840234783931047385272290311534066817009613178424317680206429640612282179404383008093687616667025346181542586511046405792673351441448096076587653131527479261499886123953411013294426768878926564664478442554890513114806825249798182077719117311366050391126591420818275209049812069735993754920791920399222035168315467413688271338038631395255080014990934108063315561793864994330079320228966010198918286037480774455731060145091710123578517852044425522496253673952201178953393131325919690329858036340011293789345169158348769934962761237592438920439333701517193607298717321671438805212641734457649519992171483106753942112988983679658510134833003415526549987883489073414299027127507300705173231789858542080469510184571216709008461023915722123183527067914276470004518593293800720894060516482803145107240188441929534091860160520531631168191781220597992733630550479863742320987755553290327279822120255651809589148510363298586760044472024408143109639892056700235246623284031811275286637153692585007736760990999181033778903715514435634479554519463658843792818826664624789919462277985198020107598833948933695026035620450989847603043952724371382469590678774874459636407447527110260954590806389723278134861347210600315443116880357028766574855776167345844916412172486617023446696745540391273029566793493462447239562839405249916682381688465705026035848398415492502518816156108569269550401364221727354289506666911976771791669559600686467617599246028937345741420211767253270138880812288446335205044726007507177495596700937527755122823487798489527626456087281692317925720094888383714190428118147026354813421460873469184059152396258389812112186739315753657132091049501625148196726296958218904446973347044521377259518581487886102901639988036958750664468350637993705878653418388198338533066558043176650621290100674187312700508186126279380431286296963253964360237577055095027498151869334973313805753262090828765926453362250593523367627664164501261724061125363635553213982599588383557696233851685638835273172188553726025395796660044476764702756160053105766799376656708992697740024637084649553656904083695832690517687113303155699115326109673073469979717989042397289715555582641288601291884871794165360179203259750322674636328524230241670483247892377228701777494749913317169579452009039608253667659712620649437215659519529927584211981171847400953034845377258611502731927695979937828733906634726127439822263922915268960155868405176282306940904320107275188690907045921935913527388782691526168708899430309150924578986128564049103065915994567769938395501228191273049807779638520865960389310523812321901471282945111304572516298353532441242013147157127176751491514261576777777888352213495832490161084910294825126856338728207524224463057929012643073377576044421776415182283578785337227165952698364507070595885536209283969113108083457014088080598248372427896392711064906524016470471741596609498724112142857020137953048929079151979565774651696945802170426348723575122194446370335638311100796118883969713484949835876534737439952811152513450956428806503534414276670478917679743729064664039385438082877801909953494915943571100109362148883507707343910944091854053816925810591298551648495820694171613434802039474546895205621944898828929905362733640492437611208389725623689315356819975101750210756572544337844395951485241538116640194560708920051686608808394821239586837543512857465073019204891028683088356299918055132566509841106347644267895006201861439451581964135235552556465609654081167441621138358080131340252756359549810566528997516281974811457662647060790040458353941832336332974918915789035096094286104296597951908065847742007542875874568532713599108909332397856007699666837014575456488225710219922963403775848690704456632286149431240691794102147821354339974234157220990599567559804580765861003369387997800576929970204274197820357964768167964541989669914356781079899542007853539439690701031682268861758195726461649147044374033805149839215692187194506020165562157822348488396136659236062824729503281849494432396731144708339222022955757961811397870832294833975834520975764779203345000323169204229251179149703253479090325743791582729171960679931621924733728591416918834649850091677207870323277824931150201916502060828389042531300116533105889564876094299879638917781959283466055106733529262525089422119535886594963547696304295459014723644304933841980058998028061475962436694981266620130665857018010642977677182520812519346764855060627920047047966271434381678660743690051393808370090063413123028447414733689129705515556410563748679152800457371595140438454316245484984398892073081135745880138659150200891696318047812511726894661406397017692867554912778903531470517535006711026591439173151758318286908627459906194174946203030617590522461562802874547756250747019775794625713597629868606196142149472228208228377995753592571606217476673143499440862805801511296873962812842144874268271865154152038676156726791921028667559724909517063603840070762357442198835183633664450120857956062170047913806753886996741699490606979305777788541799491997461125585747286546336498251516206110713020585885333454073113020251200542331318652342781220409955913745107831261456110438040862353504371505568667310455515066174301570823317098732366221359773018618113510677796724147917528824065377566176211628263641488751492006445479114632719115738858779761474827517639306997451638627219616480098804971466269708700572776274173772563341960340656574022993799153921616144722203939723267301510911282464057659994213690897172506776898647117924595479789666398138233073475111305469589147872792429849790744741789945943885741743119846844789575393962922612135584150150717825950043538169800676479081591591792125206749478446533468371129435001493384621849581287772145584083209500577987734812206163746091371113176211183862568809013608438820279065121690342221603342491709135321220401448105155786776187234075764290352673187673287539436375105555545955533833661327504339094487340012838681768250632472032239042960431646502738413692735531770566310391046797741510856898430188290139727918656709435769770829077629629809232569940325238427193927586020044938961811745225875558058954600402474231508381180161719264563557335484745512731486105941455680871622455601361430269375115301700405705480813040985424388629680329562884195962060706882711452968468029728197373430335973025740037624148274844100932811071367559172755632291514770156234415262335422253318650327493624886433956497483492986234635521209626802216229912334833250670743925769392924367873415895079668176931895817578123148230139349582969600938987719846007065049452550694592714544699346636302502114324360465051046566805535071589098906499519639927547794626884569969050098785777115232846862331559845177048081770688563850761209738233643020495843254635966381832624931098335702203220057890091578563957812377923099632331384904963046544078912781360769799165818774351177198934534520558117827059498542121124545579638219023161908021930238119107899749389243125885417575953995378936493263349910316252350299803109243955694314666345174107265915460249069920663784657344913888252907171783434763979043322162736574627563776833453713380435139745875994539842573383117714916046266083087373115599313207831546878389905688909843092494507360323895569488343774940726731044658227903037099119567418677267825803747103273552997071700960158339266062371365571141398395065835285546494760373575629651416745584208304607498715732164952935653173795786041996119595543689429245208616742348530742420229957949668383985380911234729840189755329497102127458353216116704540998856108950447575929641941672009970215472580925143375907912157704117017722566168887509803456351084209251748365355374262981360441429138648790992723014944414656992333350527430592953061434771865796527139877316396351762386563743886703618986442943838968348803615363583338573874716077082184423432723605911090208486202853721420908107753310492374722080374979683459215353903027468987843616556346785090290013641949687705207585499816238960506284480941284080748103451483148482238043793750017787238995964043212164099530134606447343036387578315951292448839823153642993036057924584666093433589507051444003753921606020451503551493806334079402189392987556712502915843368630886761612097197646470122361895263656346770418180459383946085217156842904795259055826150068683024475416679302618285531681288038956761196753309799424026070381021248638371875367510326333339995979386321465136805452062552245339424407456924611580256529476867744936098778911434057256629902295046421881266829471535526370612133744545567775918897912351366610622086742483698239974102296526454450670484869908651024058137045720558219328760409104606133265162228642827292585746784681922030146806966496263869760802661803231877854616354039525341143647828186439602623967597945934096608287129074582178167170178366775387082566812006250007665508218595314280640480158338396947276894387224355326966865905605021071318684149926802140329196533068107496124211957088361993971026755833391408771259384528536597925276961449346790302884031645006384594992852393257649921640131763998009308175734426746994587217671663571882821197228450595759063251635251979091811594138207745831905263969848177934541462830749836508815851881096123388690022944811474218829252043162410585637078779835830206891351468312782955074787459443989932859405806852733199096256726813061198621260695420452158791613395289371432748564723788342734128663003012300991849215760972245244010146440915929399997773630876355197918574222551796479208629628129834752442343308342172257341325338719405724986818172825208260296720944931429686709065974181448720589067925084563089648927254001765543012044719549040283653667838544055990075541763906559826485126400977909311091701952270318710786228605554835207535124676545230197582560357695898814486194372567366193522719586019470083249353622292235021802453201096851215749585760054111325040278749377335432903731475941669849129075077303421355382221287867598947116558523037414635645526525961587509667224580909329249844762819144751223422700942460154249672440771650414912209069123009363154573847404622851817900011220203967812401143910980009293772406902682910755526846951249188515397503766290527090093774280835189480978043872285298182745362807495824102443855853601438888927061385920734949752575493400681718443664354273104440713264646252118913210540803481214150656597450887025253536147308900846622629360258231910369223748682903886588094604280318049282819850925178747410880503485515607654864968679220343880629473324451990021578351706636026505282177268695110304353213551915150951846809799499386460439317814294105762412964178218180863564447825922134910333316813661261271978828151682589027790325687310050839796495989003310292859235785539572274566416781407911430233614382577794133975789071833648069795868553872699944842641983877939524124309942751429136364299203883861451649346620567377038785969104402390070613244873538767991611474826212014539620694149147323527245898750951943390194222291576138852139939291981391025288296785161104783872829574336243053478271967058474595903715056129475810101626891841445060835715066472211245713166836658524090781525656470017679391666968838395834700462062603211571691836603244993554479903239847820978884147258856410340332424154543493873527224967591478284475373872865159865524401162859193688361040425116639214404958296670764359510723635827401717739314801294194166667401418726500849239663088414213546114007621390388713210449040643683254334340886118175313775972382970890430124328958534724530566955142403288304050039221507109242685965893772014585040856529222851570477475466357326946543315112495929037537986511109245001550673166975043576890792964455242561312502599010539398890406540835960711665207284076724926277612280939699304428151232196746540687199805080958047971240687748283014398002750960647644278523172335117302006412451982739201531325485648120002635847210365467882774206466042261122147623062952368113009893117078160720875975723850994414254995222286639001992286116894444955872190952061195043346291646304979896159091713482401809701444404978322756092348104683733063100337298635535011748986475169515903613661535169992143294969958848751105695368061261384972668375239384512810448736019421847875684583764632490543964278365308542909905152806189608065977696419186736291559379358750593376244594959501975811176091117396508282703363646434357065416840705439828091227078374489254212331464335622852292761881277090217104617192151209101680700852048374628843069808853168717998665349614377326899763604892070265443535560447919870133056806085228935940788729154905091191702519836973795703372473128379316658358900969740241439719836875541381042312328796241373930079264566673693318337341902371067230864176492570652205955522354101553212354732233695840764028551050734607681395829536362862726881491452965695420216733815715561485775072723195542933934340728473385413382639550458045171637249111572417476308466192910583383756777717095662157734034339637133515979302849383624544312010917690659890670099603132158773082908436905356863051610593941314102202350668389427976733816795086277229472957669808439225331126786401917746089145983197704719939530759861095396919935759726915278013387764630926825319429921411263327295622884436918201698637644614160206035726973773730275831824966200837008654893535927320337452996593668607639960186580535628349062907721007598448757255640895725462923550635310321864150292805485563672024306996475920045925120359871342120451668610085458549491520344067319890690528609099451440589278512787629675970143433862615347532990690544925239892648149050030162092175876957957687462073342158014867497294619506799266657321625377993424556665181898393590060084936133375171701321899537902092611586044566625262418665218444815655156719873335948792938487881242252975228492621583228254702417173509786667645715504807609738859931154349048582879660112613886874046614536389318773381201781423136860019709107113240100898612964616639940884322584149789187489432417896476289332099294656051824535683047778412160766969407398924076388091100342052220554427799295605352154095787714380121046733670611659306130920451764167476233667694595924938459051080669140044123874354083214236297433037714849273766150033233224163873450639905900176227993735453499126330981875970020804030068349102412806816796280415466863589511015185592036662431360615691293628201612198422752094004349559508831349949601862962047683902514797170874574673645606727033065131154837815927426625696009867344918059692059968710301167321758640656911014865456817709037823678047747370923678447539390728915237987943689087996974255053852004235658601389675698018534732536213944877466552037689905279176901260273904081187256774481359801854332639571226366417996071554990969170134250231757697022354625959930485661984454130775696259633431097073316489738193786078401288336971537482482514084122862793752131120576682834230951601473473233669803700099222745772708861115778337818892227639699643565906143622478012665234127666980212228884195112065831275629334821912212408466513377793139972515705370409696391868395763979782256810123050407140329431567740764490217403121328256502542722513355089047667831784239576862932785960864175992816914920833870469013766595222431164391670909249435256972991256666229328959714241949611204800380454864056147139832336019109979930766368908682708276811171684986260080004220330141002151659882421465963089166812071040860116237510942014990922112801657261201054985018023822912118199194856098204907469870301880203714672601449195645654312793618004299434648675285386129104954301091608979072300410890336136605792854176857882646839690459772493088459858309582723825756802114820040462777648347028282464578285907455433607944627538332915084705737218992355817845997651540334149589771072430383099009494011689059177359874230210272209306296421256964299969301265802862956900409333330780197065869323646845544185898855845226904994793453561966408285863944448917293786911637481437586484848282025954647543538618624478048985036893792262926710157505102732510177584497413747773830015278567023293579095640692353489273000924854169965330234293340738737995496360399466870936990656884780567422032599389499527889369306291635881331091031747687202775642042838944130225415429643892825517992514153542474183843741298159240510000227347124215201042850145886371234349516833087733842349733860169666093422176035864554270373774071673447503898098131109794917535554751838636460198112301636686367336972910875842320932527469314935344729350278999486337059039431223883718301173057143691529916537239840272154817023171472131415307997555755259365648629537396213881792815765628597629360212000467186580960483678274524970961308420470726058081396259458182015165067889307815480372736250068043640433838021696704773884847709647946726266709698077203108972529733041193557786074121578523021984006439199051102811831071897103539951482199674361632729562365052482514005514309781944713965198747896597442950961647503592401823965404473994459933446353425039107093456092064531102133731127009080466070878321748299976263561645926933053091622264208697701738619402561198425264641623837726644166754743735494147979764260643592166424712599812372393086362932847120596712509740900231117117119262166494860920988544439498453016185102991165517559002128019610915934985803166461674234901799613243980897751429179277974466486531180025845815541629691959282677139174031849078379729284402346065348257706062248724071694948374155289436306316620704567309473313573373174814417992036080081152859829578273167479265944975714296547846701022979787539126009014394748541168542881744467874478922867930049211663165887619657819185414464209113866349208101555154183924677994695406045323919800924502208483466898353048814573343427335989049705284698557689621558660578224437231852096083647964359698285011529772798111139685995773147559337419339158015682095015800040072222325885035894796277367237723563298946759123804783912535711013058535668998662697804060658841936731574933829127982814830785290889358824958210878194832298864536811547270831265182201802863722367337963303720705377342170423195972682648653447953790712665201652063804342840294692653048715502757114489784992307094064570021965127278308720299229410459933931630952030077725651614054447548225340643080047161461332574072732559981731411035263787925648449674778299447311107200854481823564176837781506294448830365062640663779124646456500714270651663725475331316501372552703453843077614922954305578653648861795060338067037746116656685165523098733213344124637736044372975130724132536623746984166687804225491346908213692203568278727607908851306447356932948835312531146165924040393102274730128708618130735283537683576969789559610090907951968814581384170919730721576388144826837662997928052902481331004854338215932743414819379635737755733966812435124485057930873015668627628528925976181871969722076133764685706062220831657795179521261248585151017249417326849523649069309418415381978977870442767975731116656118414776466345137302883097327838788318822026443501555886913872261144008647875939432759323541476540839753959845610145835148709576528567209382087254511007398696402875035534513569479905411258624165407390616252737650604232483369570284564981326197852571837419216328811962184382989286223939378306296072973546384028255603414970262141735190814396233733770527059914254512323806790076349371390253055631046401511179532207506136796768785083393655424861417916604026961902013890739554145923637051720325518341603216616731550189204183654355642981202770207354581053410995335875331193051286708221792079896012217868320510892797285597163378870967934238615943219422101404578328710533395351238073954005924341906715605573025285845578236084361510889315265465441372805394919180227904880338399749223735166350890733942726108594678582134491265952589516765442974743208263178288464650896373893331711311605364389466716214570946420619002417225988505535345358683563512142012402305793676385944479957919024694333540773766868024384330171536874399266300799211437395852582169785894280039847793248900289073028711168652390831390156416531810394306834600727555593590379422887603758371769750109971549024863843947042151794031896213631937755202813339149706545371650483126208885092883234539528037175212718396932612876248837177936308959716793430827757522230432237337144952462746945375846334960398331441953314860127650443933733272550103305744595525548751427843720673393356240116228585717086048379135051742986951972182083368857115679500757315864554541841549102423093365859252807779200606492084949678568399818819454690423866654900324115342582207398583281695754057419940213604316891898973098607878602262400469678147874765216168605533471066197572096986210771022942026463324319926890149780113595298003364539642591127775564302007132563548166208261720366247216808956214741122489588951211120114565291057002836812495076223559993030251090704014579914620761029037125154856356780180140085907951729929017509514431193157345421612828827870725402503605560965499501630794548298143098558260437014692563409301108190763488269466346763688772343606126317150272954622837724767793100637390986161572175017841844871870082605369064513727155118502659302591317773901939444400897010223658218359673469803838095370965700451268972850664728674620782665893798809711487727144558628061105749379742103052874634201208774204823067508345008978289261435671476141908161240311220606446312928641325251135692066302641542996600414603219903860064585823692815495669532472244041442189961624712924513771489957902064699661950582461555917621036676629713377487255391203594940000553208120806385474886667067303719549927984298015450838192648903442096270548989401241065925570434251541715778201393310927059301160230852319969121923254463092849322106216914367290439110971281491509429593263410465721426656573542724255799570246254679307411913932015025091382853228354798778721709145059349603872669956351987688759374523793390776848286535563839047982041098098562482258942347564847997869686682573499769617181334217410264411481687168916499916109176661580037193368069924028569535492410446448533067022418930803136268465339666584576043962579288560140089342130298798763081680986294239424055555472701266042402950837381624704190018850710018949084771751408733230154955833495959239775227438625666245746006058200888522904291989558170864271289279562244834739481674667186405897411696218385758137521882618344223049136665069220027252683467025820955767710782979425965649425380978489951320092159368666759563329302626563937565580746157975826392421142725494092914481100472914686727450735300321287225792137598465508099321144656970823359066430351961424203011667871379424907328717127706518762997679885640727672068038620254162929082224317744115787062033930243399329832679478589107654132761126294926437223056523948481666124266329565268742662983699427390241850062840509843154382416970934811360811601975633887317365572417348683564245279184531227223570751537454575450011659413084645589866301511718763297893602846043210886688960677151265495292145403032490966593170712612620002425073438423201175742360039157847984770167619899729499125195630407618988599978031146775756034125632135369584341852470375679208185519757459001707366508055087203493463266533752911230349804867915002844502714330046801437073330079881918520385911988136356660294998962398062682873003531831258890710216398599359709752935264032107103433868186334546984447700273473509158394263466547356884999106020329495800162778399208483056326480265680041299951293641631115227990087969531381840882850492400437463983360133801854040703538583282843743678842712273903456876141701563269507831591528757493235452815803115570885342312591484840084183435486898047739857809186351080696330983155639913673723171247505827240368126609266597639069228089344941801454149604688517090835657958582251866377873408278393768849235700184766020046590821512010304912138062902381602351483619157512344547947364301697769314126421138255003128739356393504986611087686753194039585493134531664908411072723984261213294653771673395254228144091591265108399487506746838218419466588130810293001472780314727021222627168182802350503023972531863723438227686551143344985497826268646158624520899183257768142724707913227623202353443135754262543171705746036359906814917791630826276185720099762116603294663272451421225823894868083755593132639276764225088486114328220658800609149176780661986504816164503599161796939983688472591973597472189323849641248446606228760882925681843713699562434269269849067939571854923368896791651505659340385172650710048127613081489465928985997644580111390358367042551088454384964071372863860191315966967130533202697127534209800446584599963770807556448464863863864689271158322115577603539444189514658005925601984844500144887013181453192465736676093007425833233148430575303661297535879835469376706497564055579854280776668147245508227026747875863253345517691193158300117524868079814313771433831521422131400980522483088885017705531089427133089625964305221905879838531248038907154615723959190464267468654180066009951497867200478588683034649431310406621431991792721381901745346234036622435520593798674855577232591351351165367201859954537056712567320691362968625071774382916574325793772013944478712464613335627816444581475564550911302709371320139844703598908389010778582454986639230543903231547118221420531594127498964135176590028346764874477569452821331541674500354569760739935710265811106636677855190316912775107680796580132165723099222799067150765149732423204294387204969903765427782044385421590266990343198366633969689138547402603130808469058958442826795309154401640122132375468404313260043746856085434246279050363103337354154512089121060663718199019238822591222708466560193410978615284404414188743991137160595190887685410772185443781334668075500229385393201596748609730271092831905347945085549703466676314136817336695149614196911918405165811347709054744919359658254306469645724180441317459387616898410698403439523920247763360053161021622977848405052992757488777670849918201514860000392553081271909263978878719461604665303056775198075390358651125647061849001315833986031467012085304750928481022620187310672447968614897002870041551844078176821752659429284866463667593537516628820799952130508578312555143026687014772776479027213043976655157315043159028997138887972687509889315609710036815488643573312031477952133223992409558651117905937391673694358154894832821314532822738215808165461591971028847956385771861135300458373183439186296586584152621548429897423920864370794432171362155999458372533879673691079832952993458117197368629579454107029928307134822681502055334140323214068232044051382730941597080949052635801040934637017337320784003607660375847207471130688710275581860341705875969673070064445628016590413591888685999502803606983805370264218909450415145195619577924587702464864821543618232582200679310404768726641807054026444041260068560738993271319628031569991783125811643289454426237713118066718898805909900382253810263084989762132230061606198808634735314826780066500301703242742566056617199581772682038418885005186423312153176996454288211751926320214372963651338720580843776664427682262165716306999747895855823221977164964199897072091052288701746792192470350251131008008716717127696780240693855469955786343383060639725211879143448808650552359884737550513720781066779295585347697352095491353242661178901573979490923380482142855349592181970184360082985911467027510493670742758595809714143818878530512103722738774708653688954671945041899098595625091867633573973468512167651059132126052165922462121530638597768640509579677831302705878962400896343723493183211895020873541932850218932047493776118895573790614637945296876964079812838496960402579474600008389744677455382549846579164015726855386144368678039842548532209567566196917276432454762808645694855647737487084669416640585377798680726168007113213624552259780090811223208371083994263545231461874328844350448031071700284307538616743996521743370507302618316946530881821980802918384284656317129285973434345900988918027238804641805974229452849451232998915957934969362721219320520786109787082867162673266560800145265916879470143909865848180832293758986727367884200609248852887694034014829891917638763112890617973090611523870915930926410823271097058908630119512816156790605653957153871479403375746538547899609998854429791066164427377530056815565669579262947634065253601806572902570237636835836874009449809338963914469477844618042390177551202934937097837398665314930520499529207136341684991454528749952400147996451049759156119722863865760539666924690253203580771729890199791272056602234039077925681230794084474646704700708553152855377139007630767340359304141430821145050915666944272607889151219478860905357304984496237682558737928007985043315344821372014378986755481280931282750122918194565613132072055492617631002904056666306320595492445556487782411032402685801513214686042225246485990874715276781812503704653015302225540194159360333518257887522622085247854539387455201341262787278490636311942911046692824662653072916563233795654431347893461372619862419411428549323318501247402084737201597637645317249493049784056730849683521779260351276811465094699147207683947762078190698199316520393643887135111450877374301756658777092067264518412067358465796868755604730423319218472680116039017931710103970334100258692604666270877472539118400019815003878807537045572369009402208567137547797219776505408227423951498410800555674357730221498644574898233303692453491132400038180263664065821688525838877181776482194073826634750502566111145478393949383933214824748170162488481391311694319603863277674387557675265296008594608543821372612914640404760883190361295188012520126803481426863155074715595350116838659394254685599777327586025336147177565881051719939414915763879299324393046412052660739892046585808507936824917314665941516165297064184944528150958403752038081252279141823080446006918361025172106040702341334313814948031899875701590886034803595073964494008706793134045315741655850010642777565873077756855254047107790315606083339290777763986229303289005960233144306430324672893994292025384990084702766144586470560199385019960295549288115273800968651945398924518022169825554107374553776684074595195074239794648493834395964925388185144368366367712498650901300609946532042157336047149491919358277776685441072468340377981376267680290405092158645049679059167905429842843864831714907784880791610806606463082562907641813371685949162901776639298588252481944396031555688503642424933269558525821638319875053423130392667468860328231965491993922570456942064401906106337517944531339588033117523249808341330512319770701120645132851352744021862165379196062495453633418828912320418781232316075578763272512502147045029287699114839993008651082397437438618796238768959376990239387222929968433643708585361409058567582037395467460787599700185539760148598137118415108826352816110328273573581310118435186340401979877585082473940542543192456531939325771858463441796667150606694443709261910283566983960989989246459773145091746831467914990094690196424008509449999049477072228788313836263264403791907219292393034939900044047959572714205797355161508419926682929758270077923930333618387817035052107972590737807193368751713762299327024737659199223247030981011765405444021459072632892739140805550752462579372353262665257650446576064079511099673156192460307337944107811330280440502698034500610366025599525193560532712294264349069023264641613453290490314172838654725811406149177435316218051363725655584290525451209536866045715296881956269263737996604092260173565145886677867742425012069146286291159506964540978226290439436696483564034022979010504668898255177541606060419601260478079109276501511742658168674381303735320973894089014784583826974624339000309326515817350116983089223516109876502547957456406979064148896279095577840144416636352861168421352418041632418684331885431262843961636919112757458188473243011942664327463483602280029254998602038734576572631338489738116070833888164052671414906584418298303036956240874582774843088957744764014607905068513139907523582123836367392864948079960935567530373874069542962136523749458913673769673620709190860466722352145899580873658960760019452113986096348227834338829653081257644136469726010296567630438255805207331283312418339889248888933215095729639202733741582958793571095967243656833906123689628926570378764226043591402269261433856352212074981119037360990913279579774002034300780624025038197377193880201652956403879532386168358412076915953432241532642092296499114522287195948210925411262252039109521157126529231194338866077161191976161934005021938655321777817669774584662451453950401224120457664647248780158396253138130563703056942747964884673771348536398123823184648557726048901959982753542820240420675415430007422490405198731933132177658007230023521976554564934398434266300169222479234182384373765554646165691175766024673857790197206063776950857001227097757803390832768980134871181738017491130397414343659025221288416650427557765804500582326223517925080215770385657857877876721157864184684590503900071746090215940992793202914543941936902000023041653495163121807795523905206410760470417422153872608095619680681792133840356090086985007488510704004210832614352205684937757729683659261772731508279502796125164184534488865672450452795093804047667708310730107167605706027897973921199654601491029513725836311636004666983012988734696972141612840733413109715916929835006761448414096469028404743417875671040574537278236346375491700603531397302451347253926419152609926596552394113572763891965032394399578808910770012867204786671988948188348676495349206011654328199427628553470402979759212705252752571759492567546020639594626014195459734248011199186693174792611383833628702161216135213820005360637762396117730058370116778055644344732108845026844779064739240061173147725190643686673594799272808649508784354202417116004552244276157420315620977842617937257090817655964127214277779428119985932193150408474178402533738911866974916313138704594366837686605127610214918844845418758513835390467106058320236061760451659675744437837801098930748432358098059329669836042446544776418934478850068735279303452422775662306149499161911180700929974979714640693481014407894438793932551307470792869682960961891155002970270119136854640352279716636868326962172127960040634432038528284835334477347987759302629145762797297756275922291602902334953027394399530094908001032789568702919689122348645917354389586243962242299569342911081726859870284000740322371887163843430349271734615276167916858787771213306595439652871890408509206089503748497357380265601796001581781891706822063309867650274815319584426606519291191733828103258147538465576695572407965945318407063818667121193338794180567307121673594353116798839720860899886278234968684415028373658444094683460251151732233910007252097802601695398260523251927522349311129992484621948561468170996743784211229294194210271654273293171660727356443170487132148116090949400477840279449226086919429462974221513196106600178996544564033674495876379564417525620321128070337817963881930794868934089089681472814503740432221540937924303850702578697877895383343944714571367570049064159903434507012797878683326650453445182764383956049383718142389147575950011752470307561996041708307348056827410248830554470115953450303232892888747991357351752040822390516459207212353144138357697940946395441179357929668366810341382108923607422984144346610287521254883573519619094033622213164762144511450104625189986597903041226102228144445469817718264244010115287008464853781793892091643077596621245381638745096951493599113517410416376522912064227647491159341290335408223284538237457152070422154127618102140809753425658145478021054841315055356534717173710318716983548835164550410977768615218997642581586589941887898447686143821179993822908002672276623025036389218529267060399037762913637349687536409559882622707267795544255441850959096340336740899266430011832668568160376670865872052295587872099787267090195076581619879273325433450431345807278696283881327364419169095764807953981316494640595001914735203931445479030424446356418958272029274608907673375725273440990365194811800759381696987668347739688073274443683409981638544035218111487485218517697749775242153086433750922556144711362248245060498321663108638781274418766400780986718494906925839808801266405188737511580062486853961811002773644479061782890017838253000007045997008444889289038732776268211996505670712371890894132723278823051117165510011390671098546702131971874102889831555651712299530379128303676337079760639404864241175069247875213255741254193283592543248843911310927238476761923114748191073098253690451298899582999706464153050384156101227065486173792208020626942160294488739521518370490002377429901673044965244115733859177832660379107108725937482151402492474583544388627246464430322880667876024557370231168542668889055582192888091683219294067202919807251976178229869658821245547179524071747934604988850788934876424726611948908316428737311809047395282483180164694082249302935526065215712043849799619296696226338590077104272549932972094711834114553265172494532079458270598539166819321727964185864521119509675955283165877818068941487618643901439118822962026177524322396053128369906222428264486524794164773606792899684967053547454322911635742727210607458315386184483907670663004602494993183999876823937609911167303416486040986986766592073504200255626791037758545839258556736469367076938176119083075341824080723626132300610158031055950325660956812792190640954153211241809968071240263373440386623180991260675281737935749829008108369095033626607902189589258319275164916501906309836097600826553838171726946215914573939227401380370277793193213847410397072214029104030852179009584538655005635031461361113440250462883590807087254953891855298612604140419678477267679611337190436989699697725941630660307589412808567730933304187058336226934873485904006249145184646047072814355925239289901664508661110880127282735774447063844126202930511815995442367482544357923705668015497482299558922923077723667261513100839177811258093883223667391980388609785014795254466786375227116591706939355310092745737407876632224402649169356849532756864351737998676938272006078382711506205994611178730857882867574629908831371559350843671202531154802212125235513410941165507028259714956946732897500600116333849239077254752119519818509238971770857172673766976244595505977053402365440870742560254983643661429268150782750303100837004429059017790242832696411696253029013518174175197927459060564877275716644391353100683056405318216700373746216593270790839607787787572472977545288388299866033169068181139180477801472266230882055582912820698419348754988569210894257776323975567703535264346373522123624218885025542694071078846102519186210919062392279309160713717431112168175501373225527336764528270190624644110833532308735684657524523209389931970032948045112090770024780359271660900931530081925739403699473512843058830652094388538685746441336202220426870479163560026103851436209765977658370937593107598276716069963902768322283636574256924230579772612321804392783434444573748671201845604789929268298733007124047148503430324216062722888270717137731669373621525032246996752754777658567093886942501173175840829999027077623267230368637014269254648920516978825330915978961813811998405069514525191887752933062122881350862685022727726050888972872534188948941175762861305102180521949999395538933596252518292463914084852830640416275682433787862661647877490223057605379622922198797502279569686706072445649897840160417305939483340837403477009457770434778768562545036518953192007714053374636548898491442396971829421578923181793161801911712135411767977473974656909330581727525111127666771628090887229017777349309588518712211280903654091170315671866292502861417801035109841742198211846906882909305131938552517855278151968068387728594921604335760684387564279388830936411588926856181672135159853758728195673431713695081526270673795456640378118144242043787647936573659570142207664697334710702694181423343309426575493364138931644006802637642078596830775762792113579462535838767954655655030843533512780562565397682378358063457074496738185754812651947806753532321438716951234060976283139582934142990010677642238076219941566561938900810175714487234376895585312297471482199608403252075655437341442307956098108470831131418162016500164483445444898485482868062542658848233329975300712251214058779706748831700320876887263260985548375049300880147515562475427433725129878854880329097035117381244127353957547951215213598077479343262822734125748368549630782951154333861866544342284436897987712555724532799733717593424288303571701606757669665547013011913808217843528908566327462962927501847210096998228582613358177733678800400083500972158629633453221424617228149965116726730069149331420791132241773447101662793177153197256967663557582896866716571284159405199513858375607077504263548152417426915141437463133946380614385990345388221490233662879159285518755622590067975897859180296640112466596233224120660740862232227024028967935844247897345541276948228098671137438746882667326542653149014544057307902132291416091718774210538803219902770077792391083437924678574474724043081456384397569930840732133604145050112718867278164868361096980356035790600776345855790752430518426985375703479766235409876139745929246832830899974082948202303358058706432394185810136662952283780577351653402788665070945301340742528433534746479750067907647057898764192586262757060352082210814489763595487895495732638925863975478432707780060409718874518148173310726000999018779207582065122743560435922297388003760658496180392335489447844788029796180192453227983200321247107422618978896748424006643413425800162266357614962027835208702395523733257424749063512732066533598644569122267019138181200867896388706871420468222847507854034139366776665145755289891240264171689832898350091508310577303200528383588375395344838103809873314004187249240696665807614053176751137642667910048562254016137259978769281420300171355704903684021172161942583925648024151260802756271762194159067961699155076598442371350909802161668218967340298904467864176054806082479748549973558662324808353906636836756631952501519371905793429315402136923438185364246360711013143941655991553836238548297916315627740185421394478300278631524685650438299730984901067437519295626969020324281997361416452340718990421172646196999992747472215210194449150903738336258963622396355800401881807018141829041950499817975057456718898650146548005783972329142425407381749683907448238151686733409588423478993973184682816510244012141078535892557295499104598611389037394408190395352827454090151978039406456749146379414727377996741031015770504233462597968847069446071582053210577675824698996287315049575364831554124670132372247836969639610815766157045971491909257680836395612529312987195017912210720704776387740235100087018573248430560505163516194704514643885903634216666366011694807217193635227137111806723878607449406188532156009637123220434020765788297502350047270533756724658405378272790531064282666622100660393887682722116344109666786219015045562150482363681900561981862270744739298528451526504825857050605922410391121496213458052754560998693292583171144902893143035873057120624378044866936325513032067839144107946723983818642958193151944453658499418075990925305239191672065552401556088033624098014592239191265331241942264445005443276063108080427842371900823387849224830826245559331720873478633208941832230150027567575618820689897776685158210248493713023551471487558462141975395850896177971177039071094105833764570360239066747063735056508816763949248012055179473647115766529866517163944243762408904840682920269054338633412746236883804428281366544695227891967466196425690781355723937311431857538682540932779931339137973439707990809083400396495656666867093205084097681851353813141424020477657458232013047441802555427591255919483910835245069096783101817291811508097180147647167146823318935598063668051835776606010168404496222034809954204619961537265636293167463505544458686496585288456749421631240834698787660527941164009823104144606171651227044399063037363199914037467440178630514893093671642017824282697652000568697152720776037815652109774210231346133159816543969152853516665583726667287274190924313992172744322388285069765571105123181680107678805051881361890771097855818809635182334138547665106199605919146621164202558630884071432985159116480070756726513742834083360775801552417271595649503525442732657238602423635187231286481738040660430516312336889595517648207469722842946029606015604326251628974094815617525967518296876728661484029727028667961866080618712387173249135443212143223392768351033065912239432751900501959665604321961676350551985084956143798442993016635742818255693371566723479334578014878871130032992308965360393001486937066087036715916199853471458565106313079774612406591373735312411700192843070102469765504004678266090013916534385624903506649355678045504609457731004037020788816578158291259710235206057053530154053864704128254058553899499216945172657481820683599297243135833770835952872168014573379036913259378444097712368682667779517792635334123088624088529971213104450591357110544792753463035349595382107946022187796606854922823006203008476390235082910619660361683758452535539127549121556431838677832122020169647080643438293340343454220486873485886694435713297407796577350549050647509036461445947613092193069413672225570381242980641304595702132324286312431000176497461554396591947197636531239860797183360574986421662828813765583945297250989064778457420405352999430955081511550170332886105064166177134277536734732752003591973533379880705456598669584080384879956029225347361959927756285278524807409256676777655203855392905176515111593818055554838681906872453144942221659072745006259784645524364580176218737275005134060400853491572772027531660884779374157753855691003496945900119949602231087230577556284336483022109382405236007825963392442779749449735601423414729049217633954026765604707730346412798773779187637375416471035067855226528850346974357721599769028658945038098091504175628946311427474667717700176324240839445962735433182187066975104795110708269023196937266321307171540673823504004255241674351486952240528737687725678882923666677950768969029301578524675105329421165751094180175846339432492622947721226344659534312764810230942201944058429467240117037884462890890964971443002312145401023767413440354661254372157062892675542054399970361707309465963335299126718036376685805531507703703429038076661573791567255302581779812844170977387746721926660558721058007696619370967186744521891981263544584463904716277401909977669625736358767241045840569373148406493171421347608160283402602182985498253099506746528568253045452489888937475430296295826894970999075105805494729840666636601225243854776832576769112135652701670762406096582862478097609263942133152201152961534450724394106598669958578377293493036772792451094734522429775004215691091217056748205293406044435424423555540736953300982303229774010734415525610843833306210326255056644787868128534796528170973689320704204707893214008974114089033779727444236127056051108013767113109281215038842505148792337538041659038671561352619524336432987576554249787240191553560291291809694019751918122616013656212383544542096013775857758123327257949707266551492417324172540805662305394455599378988759971670841941170078331092720485896677991899105175341461327915824981319223332371953240167287076958476685074942364122408494469531057091449577530465856379757800788571796480390403404091855303231052300685145206406204818050619119417757071345950658461978713952384372721445517275559188576397068093654122059937413901644599465387727001629009145414012781613021284889886807501412703102906033338507301994450659464178563621546013868825889860583831090084570118274427765106983202305663496660745272314730866887330256174386704800946162051079469647244696969313578771373133689901950969709893869682146586637155293167511345227842106799064231814901658315955097588385922807543223551914599364455263896040264320971464930488503853012766179392108652200679660859191862476472008176678880886919684389912358866114537729730144099275786029533568245826181814330832692553791795962440702400427527593668630529652641889345533379638162964434787133660953545863790515874398702302238200576704983061397421967763498239951525060919585363079922426678755558656144475858215033561372432235710079442481855607837793193122857514382455652037269734582108025469089842308965218268526743348619201395314406185201964313157268831374123599722380946751023925310709526070078302373914566955152773670932886758441787014801381487418557014988738474671742840116111468807522611063156330648728009359946757248182075985467574129445488609661321997177583586045766559431831250319849905513004644907739537708532906132575614439966325145170414213755343705514315944431387172861355141905977319735580899451474822887116892602379053098833505745983413586710060541404579657124002542327495289871179913966130571969419693734755038853010424338625533880444792500639902088583341353323346033002775255293662689216990902247934331692392770776095826713442175410094826401586811409703842775939420933053877957770754569910662360445182515968076950037509931356949277992618738433866562885017311875557062387288072965298662701541345171120054133095408585006541281136628771123497049051867050412313695056185247078764742223331873681819846587503014800903707690846624184182208400023316374162295629588100439548186309948783582058445506211733845699414060764225306164750284145848010483026624072331633996641395995632711381179171642484954115805808534214786072578176937957802659201299538917143623711662482258078850879570069765898619910467802651507386468914582823108567956199466623486553636493563834970779700105983369817283250075219683383191596617592253360742783544407666447123231971857266477046052742651571090291367892439568828844765971669941950050951529108257819640248811636837167921350506662513755093198614561627976924269787031793932772743470232341306760858396451828624483630146157211857765815892477226031560397509943803560614801799773879904613705367054877013207400906162281332419470536343839596754713831159988418034501072717328286536764651831792110209278429208300804176090034938918172114688307289606048295105757194261146910376782568706783186358433131639028139042190328158385717385188191639084308817442903217761439639481750242889123146902561488657905248981718472290740480186185301484284654859735641684723716311244932777690116696455684261050784321544131771504876337098138905360864055242197432455041243185367159770391233952040949304681597660350911139766529407778922495866468340554421019639401845616685314430854598987261884923669422718657843822372678096295466764448329669659602112906783292463746209684403337225564525573897391363508828948860087962040323234982256741052605559271720966830425731588759672669619764954813952587553817370273477544584899431557497397320246127129776616200838511616268966137891149437089517068271805049197147281719368310715435353218858555287352270481847601746961999596731400199174848444096842671983412633782241360155420623123210648744612374660025441280024146045959185438772482267273148993795719296544750080373887280430213910943858695224193443491322680987445609116559812259718055587600653814571199200182243254663394383554467511119602932693231267948975949271612530700203955262909841432670085674897750312354202171160916068241096040877624020556777531616127788038680633203849667490727675765849947661135163169069395021512174816975767237834492177006958334837165741774144791602485659416356066959775779239061978620216548026530744382379955017407971937952041453036374907643510935408961504814248786435118491921075149828012331844061365957531778586275555990721451841210431420310186140728650186155482720912801075481678668701434562299877908036423661581364876864660600026118290068531491309113920431787690035033434027000242971498453781267743576386651039413408003344843171177390487495919545357940696028637077647317739691302203747483696446953938079989635332254114368148462068373769680324973086213736350318416323296476416148856055384931463790901977839925221229032732646990487418104928330868001104501844421363852807124907095574509577905472465259838087255592788085187727581994220938956076327230959565887216668743708903414780166315978332409046097939166775404917057962429822667248687694912994101659581419276181782420211133463788974117504746068580382536557207284675823736160382485111911416971431193111620083853178142717679807459760922190882979402672933249316372746283936610585112195919245419979871252700094665151860341943773463167893220401994649315910843881296249124597606164042897647963000696360629068461621828794896217882430969812288797051025212161079491724309657103386124562483706564587942705655960881788809647108295305037221075094907079518548031819345057884679799898986078175987526240451799212992484677597781321867041390083241722609655634132957642018685222820838168255268572533435457408744097177102132181995768737837874863620973406583602112805891637566294156642875999620170970978283208392736077925721531945494024058417515748894605813241648486906859533168263743656970547149873128072662604619721002040754407130827922811255485050639371153882749191518831400607983407843697415168037024121380397610586548960507082841794176921380573302970888218987072624744474580588198982804982686969015227042484697927012111194362573430508723532242546477493026040851052321199452333080001517379662096193251420095441980652493630554686929583368410975223693509128803678725226972446833852031653557812228819974692225882175032760258939253438055935965373821519466563272996432997626572315449591479387528878401787711886965170685533555918259552974726600690955592004893164389430376114491723277959238208095917425583441852164483029611699112689654306514697570655940776261807959762954950130298392124119921932037576150346812742493893449617616292382593488202247872742355318692932988568750346903003796511183958084603250789917415859045510719795802539456819194309494199366982150094775666288851738418970164292683212894055580769320035982110775968568246408462802925443616088316585925064438394497329959028650408734029086349460711451812417735648772049227650961894319511068416162372519317631757688665826955610917716230849353696645967121668839159078065935430431438531876338709415511234377890503847353147857399248196880670665342082487279542275249426162508477465684024141040078904636531389941738012850119041391287453410831696305863740443087495291260770990796027711066231288245663079601667458018322393818069684918736288123340335859656705509189841552250998059091715610510429277517987378550251596052157695484991597780814705761535545894441343058366964471153793233028033922881700590054764780277289179076842123952310777720497755392869665625269836310172773176552881723986822028707370893260944837093961419414860667358848754111580026145951001691443558674688196344368052661659532130509288835859654361679221061420051207301335521804228555393622562817259088206812681602151505186961962016592842608590762549009590620362621263640317109755331037661120736702756122295440446390357746570084703651929021504750882795343604794941566662474201439279689740814850350308862443590645713307262372082226648158513655876895239591301223744690273199580419249897670484349473660957748345492485979722908656519369627167991700773423809334302249466826632332684702953901604589982426777430424283689216964466138752075804761382520301793850243711787726109848744148026358344298231436170082729085160639288753864053605727031801223263662380503141598108280999350007710687333340590101989242342727793356289490264015339326388542723211804383363389940917228388521282327843258268110833193228238920437219176522798080284378565288999485106689329256411495821308159910548164936048218801621300536393472972849314754504843109526763762331665625203486456436738975444438816831205260175575716894763173076286625540732673431616848201603711308917956000372456092785590371641872314899511210414773005278017267022768625350467681568121593626152543128728364399648417313149924009834757709137215699224556015397239853197348907506822677031243704746257882823896279288125415285834783523494429266429633446694366120419439673662837741725074032817672308095370456185468654024642300713227788456798225418968571403386148505918013973430993554122765747277977572290613152820393855799947363758578551514611800882353849796313772429201060481523074944902589267580338866295909133732968320869489869766306385183892334618072797860091201694172747078373699729113459503253437855151167546952091234465077285228577957132382670235998291444749549198446323203983173102097447273094257875874890974625440674058522474189930632165638546239458851243711203330920041573760527112060579351412056968102264010097631174028088447129542361737889887534583102307147439696216138622058109073624907556385199521672572111890199252403903795524143071202332157191992372794081516170867102134569809751812290821776642547048504117676352691333761853996384446976918874734669023646989638867916370803040017440777784208992139386091017336544802634762346265057369830282480993918244179681963928445016686903487947582409729821007557229503090692270611415525024544405779060112200716826537680268758829213545403960489628138931838496189571184090152678103383794477390313826610474787193610411812578209215995808011981455246347581665856314420545389844162237790270527312486342286937288419446666431573242615936474522619683019097678611074460187344271845391630604088534230377875814915183090694878725361506410229159724890543302875505793969547297782162802897711350720557121443026898706345999652642878932807761411252767268653409383736841092387448788810854804112148051673882197449033469892557846767257216303834510064906859181236812877637111652814630275752852181354235975582981054080997457536139095256833944586906770796309403855441605056182731286736536454917555196037697745803610596289277720487817573433557328635742577755461672656665356226769191486002705611909184723157268962369063045702077320286022280083734629890552947269612195277911826944835839039582993056670599791865581247574433411443755059316331819611356521526591337844952734806303014687521788654709414872388806904373918488334122483443462073613615050690688766457791510986075218908555072833867523183185059435145467686766839856697980186424928930093550160894026030540943931127511450678125905845533947834546787075662490256015581999749207030965574448334286293518763072054125594591298035567940960664637679985012725566363553219753257262883363538644778499300236067152469500011167002964879586643177876382919868272056709887452073563675472093130558554098391619961023700426318181694237455841738122325588322090267770259825917249663650845651340560978899722172002407463483948445788672203447835061274310669088804083618791496316542745206930642435904711315842721452262586229796760534545307802996064628335334448940796562884033990341095159319569350601704815664008214886191020155014596467301684456862295526885133894859717613362292173559201902594125152237670307311322731337652841312073641998927179137274596337862140855965075787248534530499731448452120019850203903661336191208227808882456572381480775283817730124855036723691365141064263481792725733300585518446660703848187128181874809008702242584998522171572923995859590620990815795648864421681260587782007958407424753115329058823225621033460041693391383837628095838521536216889477015427491955570125272723104561882727400696012422088833631129965227782954238676068976448797414927080706833652508501070633194996317170176168496525454085530360609125807077345869564879843111362683549329096192990672131997872818855534779577721337915148522412667193333591223606552161215057644303233659237964399785222978492881307111439511197268185663895350742533389838867739473295999337784557837331325121739655381523345051771954220694347248329645292192658912394602559049559370593359775884058199896648945377053412721878065084488532229452333760442803106853953198868186499705770735301992220710748865313469496549073044807435756064232454763510440543727771750123498956662756486490157383943936930249276108016687791367144123273266526875795198205744142909101208722924243518295116331956353202526570738380738462568137913431963025402489779627850463003097510390128577971588238578616353263149973555381623596785374722973608769130570802735901514564673181175863035574105257019930303398631627569190050046243673250050050888773239107199404659673269544813356411383863992388056949604424791699285917628010648865421103300089152624971888712109959851322937248954269819045129078476854420337594095115205733374547800037517395815169556967672862451908073007493022623368400928793770537471106844340565012145621555045726962576746458504396600808242890067436884153190502835914892853202389865547640024086551079101975909178482053777248508671376860637660078909308441568179945214391851481662008028098139524708194036846048571008786424416944420152431381516211332511673463771715732080883200339986240171689891691196136339323496769386459176915120814895741426244906277466159455296021450800567094725797635098483586329815360623891862870284761316858846593463968560354490394243413400366474812914048001944457537725969977324239020758831148327040616671076717132894145279748418958256967496109795900202497059531236426400691718259932259266933656208132892600225302578377404896003169924903691976441807298482866259163363397989834714000560687636867627167082107664410923758864847950930547774242505261482732326748606649055686031629977229747420131191273872801285082464579815190873873556102345912677218208919672941595288341369455047817292412368520974025351911647351079198147832072245984083336773988324176756234061227207402150395831163727488938770731206196028153408245391400247103314542059647957899465592382709186727378142406748030052345994390003197537343711015282732443448158954919440189230033364388621297046882003650137192451542084909311270361478416766560890615389296745662193978426384780410867010417742115161176261524584204392661709043375644377055149338232163228294361200662418594317554066699383407597098590680533775398729132198950444085312797364069311023193102405686134573951060396670430908636904667246254587665451821212007442272691288102971092422581725790725703568620114861512291224610776075747448117049748868976990961935000366285631413385399288536553059740475202534896798708586968639704460108982965107960526633686095975805999515608962682036764433860476887036066532489947447925251857746145117365437855735299301643786102224665897805764568971459174231553030263817423555780643627905187456756934229498984325155726234236317468586565608767652914066412693697790767080431824173071434833584049775280557553642827435901389690245045333751665999417973582960457345132679616112910325706615727819361757391247265443837874403924382531880986294215304203287106239889880116251206915445511049739710052943295541741198773065247111770401518918014596891234767600949670587773281219001735395327727672745059014474153648888355378393047716245296854106385118816821952352224873100397344920322532039411346722246291877516959911108369220442496846429792413942041013182623282257947588984969358908871687087496888384119391037352660370844430031460158125489413006411907515409860872294213697167124629935825435036497763503787525721074722788426151934357024647742677355535325797232183357141628203408627986395550919014982154244011940443011208848012220758259186469211105132239366798709306756589176553993126194766166474280089521288055658308803827991357890204182852006127284810586088043109550775608531048115280160757158708275297087709587192161820408913830872547277319316184741898272318165473861123169910124069512772559030428104794735593797632585038769726966164672951904872846862178136215066855904976126534040238345114335537419008398090757355561503894217569697587528309345245177591609608347616413170489625600272260034318418730400704893951128280207366846067664390271982092196801464770729926064933920169268732024564612661748710237225265578688884917171682949338350558044221169431446265147408678136355296007837839963160683073471526121224432044104030899479290721923842509634155485571581456684926372933274342610747783425143658744929055744332194634581916590759373402300083346842870566191367867728736771625220446055519740633911715712776203469191207573478462288457118930012295532198294442078858507311287526058982475090673715336556221819111558496446520289723740429425353539194815496125403196984299104742511212564769101106388698373729273251001855784733949578748603895950911920457847689982460375130565682605770975295247641631834727159773882604694339677247822276197783843484735418065530252756680804952823905116904773288704263285194337109286248717336973145829131736019022214407536683540596787283633270618759859834244940142459388946053442584533193015706141649509176119621368954155126509413780440279531161616358631105700140983733622854719960917915002337645359962158870365539458848086377339516847685584643652897507643726586068097710006798659640672391482828526181541252360570211023617238894194037208990801395754609185619222577176194533650504819118870900435789951030523397549261597890577447514459858207248372671528545877348099829574427399478758053054151869337420229257431164574108945768601396333850587135782905182596464560991431280362909268087533651346826557296665046196103291187844528532828385147423270015690619067444449620059757464179468006701368532053753363053047178471154308694908684438341348202784742768915530863448809841382915128153872540599108520383824363939246332128815437430916292569876171098462355481363301852312765483066203708668348602042576648272692749686639104503483538512154478501559327769693897426568438916306859448169545551002093721567481846591773775509995939720022543459543621428811676403196409961239212567556017381292648251145554897269354805273176538557576495036128291188298913600021231369576266464548096137095264435940302997019760848706290346051654740048242382278248963746313182924637304372879497898018635699310756516935573710467086825579663516906170528594741506322974487815140463418733171418473015074954687741906130362100161407763944644263068893207709629993163602034006157672498867637858351565971613317824732555986311426016622303185718367650150501428237681777825423968442892444499145335096382969182964634782707723444926885803289846121503335903309044409178629264363510066894407974699804326878350870713543832755679553362086006194256820720324620616246069902885035619308907224422349489010007069351816349190024619017091003590909581711976281875505972299440908100060249493579002145759191134820420486389393027126321351459511577480172362582420745927324894464826724458961693531097891649243908278180029294787073943122622542233483840775242409263928094245636223302260719248334206529024428671495535473969870263878853585421217191646176621870304483127332823106526749160854408453225874933673864233159574975705299621728806774132787680015936781605209069654460560380987278220353795321931645823817748108325909621909928694426714063049574914466967188943032352283080744814567588523637059775363303158167300722044649856821550309392300561444329595807882242684091099332211937813698852927141359036287735317665908172091098714017307911835885273568786711807259894834948637872632737212439994816686531036290758349596661440669385594841622854619697953918454338767468718264696234711796965415775510491338054654694388147228131783440560437270544085710221623249812165625982274081756287899011870619945880583647115756767722886720434727489036305635279720240524702305268935063061971496220887884976016817881146888624415526083896694927915903823616834075335996850762089380252481524647613748578816187962092700799636426474520589921295026394948055242839740128722117773065688519797995378615119321583603213108009754777309014654707243993892061589765605342574099815105381487149701508814169995830075960238879140034317088721541434786184349388614495945919776720579878310508917626355045312400476964289857181662144510675544062978684234064973181218189278477770133039642691483400489258448705709160417772895785710365379186812838485945939954034602050563526635587790242758769731804324187539422475325065746338378839371028133133852284475158398698194094534988819563231845319280000875097627273153899417895517835113926448118819093210818897409127082223374808488214279970940720171995064332752675485717674134563111338178619382341883728162188213396541188605448720802794057347688076521939552357456957539649206332546913659063441534038747826067565049323810323508909651205692447497861492526868644900094065631056448781500235561412753089074064647741316706533857862015608131011385244602791754169607294146465376700683317243043252607352906818611035196810855763639687307667115607581350556218611922283859701321719709102315520737053819611575717607734525591081801036211242015272916592654486400539507612999274530492512528451422041215449145359382081692455574302117996180352121202487706140045106471168196971270626865906710764295950067121717737781217796554810408665502665249681186709274602531560863752322337421089016459097482994006638389124524692651274792909731447983448973515657666258760839017441181260005234242304136760092804851883477178501787184065489560206971938654961730772268339327108117469890136734501512452254655044868043782590287232160769302004607985497146702188690458862225820050629539197041650525738162837821149463878073537772091987533455050473525297808013264418370155102389940508924060923953630922753290080075989269936605658629378078904616726792238401233636362485492839288224626204152956906377423604417991490421676473287941076365922438813624857256545413964739768162401990893088755570390858422679831907688020480584716899013465599843415665363375252107111745191117823701113791772988026430898116670681775854344735460389549890070216027985027812956367114193623562191066190836685469448144111652102520258907460046255886567277464999978173380843693009618310756590038976083845309078793339219390412136490048295279781334943807200913094726043493962194724356089201418773039585953614268497314883624938654165912061930010167187277055721167244796867910320163904271380449282305823362390144214466429708471772049905180798262204757640015178136222545782147440058489792730252873889758890973474799649553042601070940187716772783037011973060921875385686109046583576468502040319379129924719322721728803937181323709959806345935257958922038131829827041594644120705710644316870900418301938706599885411390088295360194351947416423146405295612679993005078289598543504750897548423430437375193876159830797779762890224556510906347375602234486516757361674255985817565297826181697772917031516395263908272248939525709346151402318906543546443257718977137098701889976747324979788463915600205276996588176265540128696930478673015760653386205449794241576849150974567992216821664623614060162564641377623546267650650795532054299530391164564580364905420256188100137423932641086097630742249445702460250443171381126298239303616413010842688678997485797104952018152147347723894201312131269571254973727216153529257906494242004625013964933325777298436000031024089900559224330750769321426739399636030067781708836878649563374969615191545921326386500826133923069689279805208676118380479349053845471142145545610553059895189961694363368416150393630837767305148691280729426375020997389766885633971049384401572201419590459796738665456294152711757069496386392618970168002997507897571189306678496659111149212263298429012917265231151482782026420435164464518031002310984851413141610598891631843007484792433802564612528202007387724468644998644776189611554446179255812674471364732678437688649231298289430786275559712780030614467655377346996136044451005418404678489038566765561544025996316262363379126766939297667876774087662258789886755770492680584372865382030320550148893651430427038811741399081807118390088605595952742246546443528767733471257093808452589412047897607111425980136246817245881143574392419441618703803464180178583407135998938108331665349845714250975256092266682869949048968520899893228120431545602152033260678759937029294822551420610887759980896423130929947189852554102417099584675178580743845370228097948450665981783621860375202050700752065391919183849898283203882473111436621124429675037542584592016166358299218323051858609747115725462743674165593503904281060094710468205622709927101549878148668950168744100272844651894065910328489569524500593526194382614580355109330777936754025975411950038846815037263456441272896131145157228679781894548762291836860527282509831046473487209924348878648400959645531446130589895263649271475746517042393780005374824962817183470348640957974283388492405685175405143863599990397603505715089970207499599327019054312046838611212760635407083354436153939871558367365608487891928288388532119933607652112877328794209179304981504324231154387814336139097634395811099859878476657888028256306022390800268326836123180271848843925570938165474060858655439012612375637246077182751581095604043063981307171982732529053357815672943133453030378578854796822249682362459414426680390319919409322574613591007749876098312347815706856765100311523318106799512440539123603942419830872356401320460682796697993830371140322210402975044064098359745282539778260248817485927699507228897078215921834281951876971133550137607797050021261619426776683028848610718123689737689453863428797089689379430217119050738249940415207259327484495428562346790848757562317108029586150314593447797080513843153540112367864352194026156235319806554190796475698966625889537180426415995436793573119873481701192797132398854969025186967418358346974191840858561846237286065932703691630449172527752744094177410882894691290065259070613320473517701455231699367949169461560421394014578228309267580667948707108128538412207857710510857221405630423212300454876523983652512298311469727578949039636961167888175390794092596223343503257055733715924121633060973801028865904387644307175937762352250782495977749702683491766794320443857795406985110828922973072996653318786869941215803906483410048894102198049332333118575096482294228064344423654960729948855112701391852389223066379877063440750563031906072011827093567397837039745596318522115475732094356011999601187447869158254099834900199208205238112715005396810603556985316246301417467815694107768339193820828844727622430005664171566625403951122955943487179750818094531094272339175923270510627126974195519585346753893862302224283358176524955212328677823282493000552890340233952768403188201405127207955166363141639383170868693639882690822364128803469344229033785971934103055691939729783802496962232067515488328821166931797326372112358732173894273830243865773018230122669507714692906667826459649766352939605302400376139750059456620127791708570912575710614979623254711817734171537486952234480335481247039911705099278452847858552725026305191642352647852975019333753634090889840500605138075640659036643660012124512328240426552601275918760417624808927350102895827906799659014773958241520898659914178611700220304020592658348678550217556250799211028093204786921570609116029623190004288584863945934754626715413120921251951310790560675424705134526659890035617484838978938518175273831868726059964232605167168214632828280462977543197702941554037797786280544771895347867703495732145882332186923369772156498559077582449522744068057651710438625628867190009785737758608152256094707357570251894368622989736063025599155817160392117680240015247287168877390540122115808524095142559822208952083848884275102942047274253672611645042599446933600249591571649395728226064816473937515409181561346079205444651998710397655910853770972577524869258693233250171259061974103180920277766331175665320932211781138990009558107116409030006699343556644821245501172323831926752319321067854675939231792917815295202064110279379225234842144790818235592373204062385131998070599694934270980665273612569352643478341979114421298852778631811817716839882746769204214694574590220285132887461324084208819493450696015061486629710752715313841265513290856360845678573774572343066704109217735353056115037062159424676428196418408610706384520589021800129252890550884039295025475634828132249914178518520354448709825076178154355164924361300649234766490857110513884611409440809229218223470689593807594131971860013466974719493883613205916428441945288716854302856925461557187432419959691696825367141792718054911452484173807119379397039538125869454569964339121747745051954369167557302683668528345026068518495833056793737658494733791161743129898197391511227673378982257274621519831921796426629665005395607329993063915856528637205322044346968441035980173090653033045715407267759285502160720629602900468001398954177095931968178463395179044203714402089292822489008715418440856824605300994234903609014272589471561371516402713503798124450582327665946899970777584552712315687273255581812155046718328000217256763367844263708754441127667309398956170672351781710493253951713131753992001137528081617561364611603516014241647500181512457750679384042898654514527072745744638544735379733472963754211848512964289066779515420761490542292453119112103515979920457747386467864039134733769540002014683302906764246829940137506642175958994661480758618535952714331371675196683370238090417866952565844065952217978483283039533467067452870670006653811392902606406803213675328815861046687941214219286284906054336235402800746043850971761198932958621529828634199018122264130515040913372661618615240941658044628316068661272163622285998615719932507919382733679215805426833846453053868060610607469706437603282114148062459475690922444299777391264145825166178642956962156777558524246006495378631797445772793782032336471860743648918742833156466604780075193721492345968146194563841987063591002044620059641265313529072362781815648364522723066253585695756312767547861541100098571516100285970385196738155352153419992381384109724907939035676402791068567269173877575942848480776963656948615877830152513585078020255345170120464659251465395448095434504613815864833570731079292614571119608198740342056679718684490008234589788063978459615314857158452133981026851249754962073732803352188504310558817900277220560484243786638381529751592371997384403604075591459344176650531652205132505331449754103919755125219065684085874490715913299275938051546486916684420323601984246380531290759711022240898974218867373857996696104435217908018880887694976674765155150756789207667965974484382649377713339104807826632737895251710244214917067514020783861410019639051731786164868963999758002212369849801113965042434893785026142127934907532926945508581835184933532871965755416827369118915616113693756781942680143757139514574363380328816178712202662430937876275708694876774965489914395627630441670108098292344340083533685072691781151316146894108799251324045917168824512110009425759378345831422335829627948685391310194108717122586369728868643652319908382698762677301975638738736867487893990043228075760758484080882264807804737654425769228252781685100779468967105882886182118086893333567665025833785324280676941954163416067527538911163348554964115376164047263033424271134015334006679074526366570726748837107470145672912034252442422727000113238509383899753986194593563869331048525711448939090868581118649615001291019403853963986196327310226043997515026069626524759708417337728191796465852332303201664995606051686399681110773543112399108777393643401882239231443734439558082968506280064968325995570341826360489931644561587603824241541279090618188627324731899351036532461627050249140692539077075411590775368122837996390183755576713075716721551983767266418807011810424600741390626451784234215307722555310115149032874851078035605477096724212026610607330643828971564993195756309818753283465980097376874039770683034111070303130649362187938367943644988783986777941744318262525654446143800682800291590254912805124102655979470874421794375168867306511570230220415712379011164340769940044679861034605683216527785294122305821486902121700202355970599175262016067777875381511377862154662712001165794019294716889107706827303316902185851289138097981374474381935628532436627935961019436810600289093491663030727290462322247114218553432782481502733285025742811773225107127822981000064305902013285043771937362715318210185527045768486174599296982928387419669648833681300592796691633717973641822069853773440054901739877512616321887529051461416450769361229091150300823652277628166374619531957815784345434818813892903501206381442342743845990802064365172783739863629187494819584969041397313241168580349839181839827707570145409495484465462704248211321714638893212050514538288563640478160954047202336947823780646063806617188362574699506877600068412640288478893861782514136391373726663964307503225984099245266418433193347610774342283129614397858500383026898142725499663197669006786360138303195949126246394342492269097786748208843924271640373054709989934473943356345296493496232296878622777589820847062730952281191205710123721260410123318378927482188418467827671036407127759992740323480932660755475674305114952020850906409160506616163852949510719813410676011325400988436513622109733726430242542799379421118766318935485296030676861305073665912764291664090149923054873023884351734734282535066145550382086685904947755195026455491087141324738345527212846914720277251552857036458060823923874384431543883302347536178401513800654716963005660360563122710337444244431085009686897633142389345544334249926343791381555130833511027156924178486946712971931907313881044559791185915648577042020511622600595787799733935366091650296148427112657712982700370531894323746972121920194800839175552643648539381074431712776782581681458270771548700152538099015131047404462071434607923069645344293285454086370602179367938670426043698172304148316962911016768185756900779797693309080911014489263245106069431005737175777914133619472070811052103060393925367749900944561525090576727298128426689034037018457403312966548455127526674368566344705006150100529523750071563131237927441993727164309174369926743364135716233903840784508587068467305238237870291507664850433980650129352794686237498688901414071663924438675992436449296360480016060582006284204843812631727329445165863259436540036642049574068064760883390586436134953991222153261167289767032749736366947904016606694449567229688360678510425607492401843974154891799478325292251180168407923106475289493378928188721370309369398409496058223752713745564204172214161560411167444804888850615836083007455085280353177663279746301341575884326959579985036558144708078928572542649185734958579361879713555486374202999601009927857177855359297566356868347002808739992268571197726016373904405568432495520555012080315882567354506977173643724623257416867756007255430643164016217843591651929021233399220069816028075039515558561154827678908161936728878812126075219916539809730718058977779376059359053645092733840497901688943357671162033761726393981239204944682248872096138324672899148663038164707406844662707304773561158104124750899734612084474449498933396587164821647679955546537612551624176461371267113775924447987386040890379053378076588593205765245944559472684579370007095871707261937898815437198481385751524442075645747904584664555663991526437904424485187474131544941978952511951441946377582887184509562001358698059743872468760524365957103149802882797379501549361624580695790897947020112648834046811423356125837965938731016687135225460302352892962418910006402841830171137728707514040476927677527767396949150310771443026575062918097845770369845752056735466686177585920618301363914024578300200321645835624038058638255896610248899920643997473769257144501539298122333539544022529768265558747343314808086984021630357546957428110026067809782225403543562996604754720927367760216022283705054724039278476276002791589666106907524092238515968326564755629595848781816412101960764837568925128895206082103676305015297512433224145402997442612020454972523059890888423750793206591974959222143936947902464913551791817358145426950807229751615847146776880442801596907621083208496630436112644929797941545605369021911730095109960806452767980366272314478188586085962382104631498939580108196385082657602684318712754704977613969597656551826167705855034503998603548310164997784934522832569179119387711012653724737973266069712252008814740381538926626901861191732836489532052854262642522235720781432903233091031303295914011696282276640323985863264871272035578481291175946402251696773804008570818783150678422780000211461085149951609718792655700677568591443756924939792571116131815080279201986492994871013029951599253420941354568135871794884032853175021451684073962299523260897651846552189267296230528051641897009715495490716180830562295514913538233333349935091949667637429501012765447953424046177799494607317243913272376846754239897436788300476853097974131551615400435528843669057040686971773959479940417910594636949196603355795268639364956758690871124141545213169566885295375846722706304497878109922272589221385309401403217395159291559272964004489118073700483899206972083059562376909018264856859063271144861583721523957861099827891604039122355842881477797022372091273862035653489585964342791711362616191206761999376519647884375749436456996219300933860063560023360284728376341526705300470478684099960303259024006936900733092314946896928975773221610411546654008534772179752841558641628457612965772441788176250413081784322270090735322435469478412977968535486876648220839930461430570314849220183880669422048888821422732250873398259374180357543720844518041015097575964559532954380145111430050463155674409452735376936164248954265836727384088693508297182714565386480621178789344373350903175109328543428886840888961401210796367879787287699080208318747499131939402441912764371063423917592531321703049433083086966316136724079885631730228123280434194205835222553073510126984218646261052659057708689789123415029752162892656916661563268326340952850897809232713433632435179454331128981110537900094617804578370759562992368299705460520809306768545372726597359726900859223702866920428409882232373790923671668637337891307140869509429520814814172485853141684111806798083872099665310658686621065509984028974748869376240389790230833810801272799149690502298992785734093038812655353691241630846995048233535659842666331689061961381578590950218461388186551363744403261061969075047015611838654044273704383912253915473298849794426423881647229965593760740544462192590818871324546664337922302464359026790741786930798065211714315862308989212024849352727623925640981532907373728341980290827506285125837970584038016437328800601835114286321999626009411003659593646637988003507248513836884965634869847867404896781000984799794101411364895475719114225787234997165618970946763025603057868506943026111284143524620413176997816447479621970561969061571063009769220863795198142945748595106860956861150286644522953961562618217843091974932831673808934573171461807459313222166039044080869690097955379828390070187384436759533433779529742455046442806641310563919030044008055235691775681434569210020284180107811330026257760012700997502967910925119875262404692072311101879873159690231471032713006772027636857622918015140566436329280852983700435511370703573347262843384355643537130022257406199988822157694700781337779011985191526233168907145144772983775292261221651177479534724312901809522395730204240559238385963107293155458572430421133354206325373509065422851106094053902407213928439312025286903907342536499129166804295663178496441276535256401947627289100625997820392351434680266149404423573972239207388642916689868666236441429504333383010333679170187738102799430266007767870566537246873633477950045944168266805540143819122397617387270851951262961389179794961827871396933906016184487460304674554853498874212102613070652619558430482762370980905568123943590064465249850194998834766993603515199106155170186069564044168441441992181214567774340941393258463169851869205942196041081860217751525445201254292293486453866297688267998355055208924018558848131908781888070418953535693632137773069228326608546855064974385656773157465475206812253885174366821940185352812940704266830716688243463262609052186747367216707338487713867848556545464691617453898036241013163497124436469738176756198596156331787059342093178097462719824095765515889415569366065862341358898750982903000101794575105299772651702281317418452100732587117938872485442871053827190591486053473095780188257221553663707719509607460952816087962273586852710690482899819825080877386023143241036014554176022104962838760546232123115105409162843532025438395246050229088202361514968200912288512039583395073042596266747169728498154521151772242900961094284910710320941928490382473813679379314448210642029448539755144741947258678634973641034431489038800842511006046336332123759865266472292052057650604067256192771646014679204382078111902871992514284904224056191860225165797260662803691500199608799527490291323394938576533561949597842243880299964018047041322421424345099872527789946577807464191449205333621658230865085912722258530201737480802197707694603438247255893697681813003824623217760333304244548359171092001744707421817321315346099188064486188238316100133698760560297111106719075736100811141061714239780887736535657283710266176896504793449980521240979215209131291814465747282474284719952511895067885241460377769030031874455961585499726619516317117356501983854549892355662818733286823340154868301763107800083929301177325138522120078051738019287987869653954877257678435686606669967221732625965794534717300409925785639896895552798791261046304680428057225822762717447868831914876323440598449077426673903991752557136598560858608908743613762826580404371238150147192666263298135545560710488744498524492450901391500503337146383989199121534382700467629281604682411029941767418643474037025960466035526681187099787215912824560369031149813225061171417239184902580205162653968594193433413254490272202108814697340558020200439693439085058640279943583652075849280658477457698242075005617769040042368305038832487510235795181662722886631944984072014233608172188789012701261374486621325168171589533422298067358245908415280872228722192446461695998439230586082814104462844960096274768385596693824766192409118516472934004684989421014191558447066911659577926609204513162420401312492897768506646822099943418560866321808908428679749486070431221065145374961203526894168767872681859321423027053748176898903307809442338411346290960159426127808025546121093149708135998453587012711374316835615139819266719354576884908808572299958191104729005747156688372828071466876723737182322819692412733815832034930477308501617494943829469841140233647121600647803341002291340581797093989048060262093446510076248580064364825736952570031360548232602862033256473278833707245701148958388929096320889647643161883550479162270392886714414376115873325470997249123479458023786881177999578013013146898017409315596864194880526926435250152882485953719405305365628822274756280372268859039645816581860469701938481290808908567815590192338990375272567889884768268442639743742461173274695158928682624527885814271063996543770584933380600353783468348517020666662266588504157547411308827972462256274991104510685347664289286506811824721681240718385152330375200726213967803513888221304077517699794426278735071328609972539991371900239809888745241003117704510101287390312330639740106135604597115729450714719203897500019926992013293052146966384279674987245671227065345190701056414122033868544141098744974076688212602705661259838661845521080262923143952792552852774959278667387410455513684299037675702143368340007826030878402498320591439932671331676390729193486801435497139556903747911225806652963460471584139144530069107440026348649151119464970866074151586207464059364104027381977507771367021959668048711613824428010358487514933611277804334140889414220709902498351027811113586709192133343582484354933651877118155593774894679719472734828335686061094803481232943182170077276068278587639823754314365474062655166511706978664520058455127551789750771609614258563096955875432256049150120525277657852722757605612036948929922427562038244047468409087365512082217726969211376130126852166697049527575320208772481687400912579583640729236736186205335267010957295728308501786912099440244426599676557665115439798857464032822653895286776923264162087629798399539001186960176302972126258845839739945530159693643626883158885955623477853866947811999560026507987922631425189209545844509470065571330994364354195717661655479794013784020319855022175397429174200185089055831856062223041413055494210833607828319424434856343497273068547669709668253894423080007706664376623908391596436949297966936358357635855663648837106456319786971147069937682997248786164558372219829435203995100441165560865181476976301537286038637810327060133523310700408761660478613666691854200863021864750857318770838064962649961960173081745504110671155456770833631902431730196333748343165419058754989390098435289277218002484018315518295908402729913677758285682609878584607054595190213941330220467551611517291395915668647170135998859272396302489044844520760961852500745757656267319394651262860163258622837891596985392259205471764804589572430582265813703196628365183835276324779577590490974669083515843469474463436281526138721878945131432282269146531203925860207141125450933522541053591704490307600402478950515931651740647382506652731753634104726902859524773800826918013629987575045259217603307823917010519379520691658232224894117174390268433427282077563095426249070370128294761385828984481469516003484181346898743373242922755589338780529687442762304046163689681173228935355752769060499693789120328497513779508688059912448747369543965997994337228055339169956609046530698295445984928696966111221389974315025764512119264879894219438364717473472488519983433969727928891874875850106659180727167123797298728524164053250723611606643768090846544918984837575374385942148260463822340955948822828782103845307987253489433166823562476072859151069097459529649045882088421645202044753557807709348740698817967073024613402839008284735747035433569087069075203995538658708663482268611472528822196043107932864338392929092643808075648929968741996759596617743078732938957099935055905829064576955485729706968381606145383744861189269945428645363610401964930397718702506986841771044409555189793424524512136984653676222079756738547802915246651905800486383953838639580031151633104881203206788116847223721185104718183474660393226615127006106238721730496462163396703305320146702086358148022832093696417731152656661213128546359116492114982121605965558957095767877450315332060471263069483313129784868454928981949927538635417422079266905060785042242542878894579717568470968236605848436932586352198059023397716046816722267713640427380482194841825248578958609016989422830224776642296027391982195708998256125828099920594353872209223587388993430098807349673390806135493944190921309765717702318852587050351801758518516710671290802924834999844721206142187646434625214531808924093906669024076937506465093977406509871577670117313234418122534587047172342550174934094292453654846927145668950770236033397027289649475557680004786920270103589839903543153662650648945942079746316777642224041180310398504471548740458989728541642722930385964498058328216598537608438326246732847588353505618184666786823735488606031654460596440259389142355694253296145357085360096877671633829051553459172088224764206545923074654577999217757249772827293961991397395398491785403431407939038825918799576639843172174102252020578231294617680716843328939238461112682267006582720750577227543969127206839303331447855228830162490799532300278040524778075698657930497115688812078471898458193091457803750380383294470246313183618966121662611935379348523973903063713929890584491051426462885696642249849846160434840440544829139878765998594477914388388315618469283183074797396600762660151236261354289509055023735286198630797516652684401142781741213528148605149925768387289318862601232540802649097299289312456116085810423614083532248122895630181265688015134495840708433523387690812636125785324177465708145907078660225049085575259153297153948256113248970545878869213163780811494061903399184722226781587108945001771408569148934052148712657328465921945673091532138653481397471587123366637727547393554066480946150961466112746230075466518304890214154000877133791128457959513914549010039635872285462785725584416365894095280772486561313342612934853214397221004189377107402389686434653104295131597881128321287959340366794989336055462538826077717663078045074677470201929545488562699164766995956676083003253972332495966332752482033264617634426424965284669680141360735761707471249370153661163129379855433053897512998537309373540187423864118715985698993346008357312521223623549329755354466625079676350063065908668337669945805814959647973823937963262415822711035352209714718553295655615894008128732434832144253280504393227781361028141075120868990288212579226208004801169340141618618897384536179800158087587699248367271191050441385131002231256507914453057430481626416869807749749239287454228266486899985031222095947385108243570064649975046474755977785098405810958149615366420003395937901330006305848388623438990673605452610202518043293411887236661549254429569504997329663965568206290603363762606684046504236365991961915460643734822965586263925695567219126175192946391140079060058450300397110705430116123915012433998927806392229878087688743986311370202780160363040741372777969624902226246651224657937544843255797409816882384452831746455749638218231774527473408670854297130709694211697048044837661030464484141704181479920600833190286395036025057071324527054723369028426027155081009008958190923711938676856568550837691129764942514174604495875071224337926063195897243242444294857030796505208966898847852757284206177172068393634620467977665531982015159698939570256165103719460052642443696252703913477823759153854927520301034067310071196091575952717978046961654812616571282833138913958610882841123431571479228743336651972727509218754671800911678519877171978278943958368274548375519127989965273329789727542858473167582391004782152417441638815104886304084600606606576187236948823893180220762140818032236459012661555606575766616314037839780319667502030866327348173850513326423994549927832378104613540553121067909894033286209983333056018317638678681707191517927910045788517308531348498901420955041216569095504034742213431944630946354941510385043254305298643427742641304290373068318959392769819675948134249242425353769177096307415523424042321865025806347506767526667478592360764719114734639471645118002512005629691861421410471328159622485800944072695383321763694918854027031771802178357165137810887003586012386558159179292797235963470553178892954033020250951674449159758669053395470253311199132615395170518650081249852196981674301615675547641748774256128391983530592244167700187609901559396752102294153547634940112490460531853230505776293286171194553993005110648832582659804918183406249766971436864944702348344101764290330406534998673336459753991784955704574503207060623641764398567684500124089245382278941167662858274334299263246521587373160030622771690281964608779247230044147953595823006115452573693712388934158106490777346116888993556271283668826551041574608445662209101657972201480872527504738782269227736136837956585622299338885865864771656682869787082308427013143988771891072832756863435370943965959487005523381336770714018715019983851747470794756031772994724018356518103555267272749049973879731785696177969913922459112173286561254238138823394474419151464444938073784927356839154858286821687559988570139511167103875591274442671501457993933449862762205352623955771227019556212278993588365865000384368325142535569913815737037501163678815710624389450048403743980554664139658370626848907362151507221481854180764555646184967544148657385456991342973357338488955573397943516265482615986939255468932007685166562054686867641246133765477380987417206999166756311772635141756266779470605175948827676238235758007014737344099763386863820509137840539434134276308628361395362268249753518082588599788046481566988855302701423206462934310922564711508340568778680991751072487085768879067914502894689858725137823076925302520169028350788752132254599831296810559946566167518822550295627243979127013866710667644847890796596769354746948822513319807086673734285715101777940229725071234592147611919796118208538756616004191679049793240390971015365481356934559564699396823321918394574244565104232528620765000263176011918504488945805949107941310943240870768835453095057507165776310587721894720341115323094438605979887432424949064185258469749393836492998887425179154212393000790745154330633119203960129462457149301433583743960449391984719614446976372819303564650418182434825407728090147168955876005983451919976921448220107387643525208531431466101015702581628460204594472024105086678987552938705641910698606667093896572816096018353049719511449425053723939180049025940660867663826537772490935717135661806220291891522220078024304032274906292547857857977927194462603874520359175365219423331414907006115030584075738242377495237518230613632169700683353454693753308023424247603016858604594467271745780944831724049899338796987020133712025142027333792688676829759432185640113111630896325126845250028350265783762171875487052921229627824028461420977448337692001674552449646198411274196431114910890009915801823887626685094952553184844774683138036017582485810780351499180505407141371153316821389481710497339480902347623368366079208346446184406393249140933799024150467901969658556610123181295845380286177476385480529769657235028424257189857967891344870802661061161351357978832906217785231245105459352282002937365819945113317514884401492395453435324925896409268409437009754034213661341223300118262625763996512111842246215069682464685100660123693674216961835632246358753895270920010978456507248943785982980621612101303374501823439088603744450442450865464355356839953340560194416139730628717045575418808816156938701047811630045342529486244610479745332177289043665925754241568698245683060615893497972258010685967206932743011547079397088229094053626648448440049114199730606284920220554375840869800364214333680171936098062037037352345842283442984171369283473935998823471809046664389406836926944904991280793035176376867660871923324534144971692582527291968263666887383218552608571022367923519965903570585670463269360908999177740681325063048618431358850717424305272823108075053006746634947396877519876398823363072440372416908001528644002905916258725860957924917249146972363534066950604398715373212904511483326892311345598171411960070378313118176801449600497563391742660734344798474837337461734270470287933237099514159335923720152525062733700380068568275714133227685481444907015740323699375353448054344018897921359074659892078681099420650130835816807305169772443824835634176417049852472929176507472390894878864595624593929304551560020254669601725965897223050532032350110134493195481882890681658508934026360688229348091010576005608146689482791779151165074815827354595259283869647007860068591205317617204389498691557529375288772330709849579975796392627068913065882252194492931484318317209322825117898706219024173845309285418972355547448929461373504993359737174825532418435135906115877640326675884650642684868433036716092189922433312852783852808970251199346446026080135413113699482122014144105899013757397286918511970131698474376025017797387787889345731988806198069358248736700497924367419795464747657701251152554857931210172300782170015237363540087888059970636446229317233769333974741502740399492665240381842005970963764954282559799723323227593103276342271202048904803236640165259165071962329124981000092300908380419782838844809952156887760683332860604231778382094786770214512954494705676923146033378105601413865364839577830031923686568161026290687130422276278720635305052961844168176193543493949052189191112446346992780093403735150442561922883751680691891323701083559357540919939125036495865928966231393490693647718034287187667394401603847923116032477039969655682727263434989437190452025923220353696264477479125362587421257900124256040276095955974984714674037264553017808679742186399254290478676538534420983945377507380500991947030600580658300056040958690362929617476361015212240861374645431135863210917471334060670271858639080518577755566507140175550807472426083427933766033666516777916431312862064201005874419782904113858391982487306930155460944956088940631706166899192578083483683689542594841628207999706884604046115520241277393200496111682092848377163920808325935419294407844119031905242082643650660041886884305631294055847132768260808051598788485661159719465956167179412026414685204560027554134513815173265677046840341064922281246736226233034827570799390123421583520052599934730550901645420127417113853854609696359267949191983894757723345790129323948030910614741199752864847301466988815729673211367800677704391505195842631607633643909353995953208660116288701946112525142086045601204224592351243079568953494944603219180814336041705360687132227660449150392847623295251283209012527945258777757258044845192392133105908342337425106389775764464556788829149929995060855155255026591996983166068457015437761382986921644693344741944206598169876441307096874076889370957163741902086942426109310664286399365166529144914229525387484950439840229279250190428204716204178766824797884586073831287297504779942680825362572593489967964039281717879072892722651759360227117785469410489288366913486562466939388533611366205411601283597394247964283023975500969918916826507477684783498672331890840265513963231903703569081863876863666455837477031211833227087845704484518090371351626957928226320633537944076517833396325836247901017420386894978098647007524096971753938610660852908428124964486285518404732211937620614410277825029350893531332523493096546078394489156651672724308816617809025771156715919071525391043209473044276695856176016646056663054232892241431533673277102820129127144659893643575001229568459011446953573414457763074907252752199155381649711909298808845071600040453349720464696087189584464780822910654014656764168663465321902578566646918836765401884804334933195419350560274506557025173571848915161719851052497762206880217717836557840344482320447974980676195508108141557055326997344202936665172136666766217728626604111108973579228342203393491434015261630965558946512032634062909031543221538661857408174616412167522820159387300500475729735702357613441368265744972679744283439552727356726331880236540344257875645712883016570824865318580884619644898507032344067179049459646555749971543129598690239572581013223767469982318071827269746807922454916296385754952088117192531713317720995700462101170206778136075671541952606722671422693565121776269905781910058905610970687234577181088242202494532158279605810496425618973472291541457935441069303362279703222605108150372424070595716699423750758734940713475074938365164667574259293712483036893406499658718004388426458904415810060303880036850635216866620363919890921964271162591741724370491737203824496682322332803286845772600249117849553873207372833847760344853147995953171336985732731796847794276661266811060350101489654870989478051516021725813791127237281029790836999057659645894562607144781035558233543435553632665396281225159209320309972517101219123083839021145505541668814651264821276207555437126309882786585227241744904356531574882085905991453251927380120374594453792194934738196985827338837680836787026159700695236400521283777599742715645099170806928979092453757445987809306718243765250070173546256992113122355005797171310776082141733915941213154072599487792180530641004900326760926775922671485045105948603928697356955870364781141332515996138827321348090615968385581200458996864907807042978065311140765250293494124435135070088576902738812469924123630470754846753030337700728096407639876772698302822661870179745169648024171490402777643142782304377842709487747651087354304310624911922368666354485626373209769198285092719427274667160071282646525720965120411961378589953467659084158722806106405185519092940322249546128969921358009389587443298998949412115315146988120066009876489678208016165761432077298792812343939577193926454214306611757176239801029357600358567212582346620868636006999808629699754678295229285854686267994495295243307004777427030298431282088172630219882252006279886476222455309120931864773617566691927754318887762534468424527927396340026726740399655004760706220750167800912901203589445211857862758412367617461078587207083358933900082277730915995925538285015863923355229032649919003390461205860333744466188556046424950604360575729538406183455573667065735806716721809713118134230752796166976895333127972757787127394689333781154887947869064115231734980352230334944875194560511968950014742172176896213586001854141265216681246474242477144549478725088160730796513004029505275636558034231841376394231433740563022339735641756431613626697879973584915230908186700501775985386771912302690031388098809637259082400434772124007884236431370127806822469628264266412573578695034034319359165128362381031409074855748478242698595065665238366744894130290426965476853478965748762467592348980023480027260941640933560147259031878587700482970296356008830035614884218253804879872658233280262264774433242011275711170083128960662316723750105525400876741910769680040320855232125644244586992623038902927510193093499256413766972710993976922541349318930279890530936571111043080223636609726061218232382873739026143237834027452483816250860476014347809928672381124540492181016485921105015391825053207179370316639204412926765839237654628503524347741310381257102777419021118708893700668988498295075246402130938299935699057950499283229663489311933528474662074291170676997519008574742561263535629245969772891852378300343339595825418634828499511171459570029963082995237180967591248621962559085398625764045531935932414984794899503322627850210583546602364866655486820845423132765472579727728246538210227742654739276816018298157797149750983497702422662966047187535433377038425424638464069658178161496335496266199913096737534762958129950605233119920681637978029205736242427098720032273070973064435212310649747597960078574731112136916889943476117321526203826105808619605370426144896403869268990046323728920998275835296412907644223377726275232114103588601622518074581669264287607215543578576055752170525253974048375875572080724531225222464846141628198889641085304345620725047189456159524704387218137597587448077156787060592007757913078888534777511104410347528236469074817176379060828331088957763612475259313879217518179096462687605248837975712047333839739690543122711470773372612514316398694534796659042004005289963874102425935998031707085472272805328437566640397577629754128440087013684722652273543746535991503323962852151697066609010059509337544761827301443766490889088787188697749378544736138094542262361806624186677308129207060967117789849674094978265057915391438827808925644099222948462843094117623399284389151607171217366129735341246245650938430823263281770854973174264125331123012568012123230956309030313049958702683356657574361825896495968965768565061252093763492681701305024830902766219932384958309743381512561322255223733351502743228630767627463263672401833970769923317367258119145446305597320614295945819237397901707965039909789072666067134328095490242839607844911139185309294227826041503249652655998589637116779962583435905299535519352063864244059107201516352054949881582823880616723867655185325077347396286020501643981303382444269800112775642501755887045315187348913036038036879037032209912428758126427294216500815490777375510103385865861002280197650849606188538885154774731958454783342563051720097928869196485200190874667947759806120467964341423763975579333340085595136728970108958993424725840771228632908984482218098980545476206626497666301880246376536689050018536765889341470858177638641104404878172856595069311314606301368675293884355670600146384957636407242623676762690384738238391688284569937692029467501650178684772485832863240710890522796705337406694356727087965616406100938506659828852368735136778631310113698511730731463540096254945445331911421972231074202791641985381933632235197710396935894648516053330038872125378083836181143943232908588491705009957547309822225164803815446474848779755463468713625488972472847209719574561496145534597613091685415807752346844671239658308084543614371998751193717199903402906071502751783102356766327734437708238646910655630194631765150346277425948388477142290954768073849636540939342588662129155664792505246540327518899472695712657471535189107800739826704174969542731574475608049642729306878749078952425466056208509969799481258617510179757325065783924795826368095088863460866740773328486670845637440145764290011496750930313010389870239342756483577998443159068984204131459615547728974868177631984417602270823780946310389869157372940592374536604570223277591157606303849013128165162347933920007855728761173252977995055126300945584966921563810674752307462903422420862833295761221245305921722965495267033478496739326320000889893927048642162590942654958452076915557013196603103381423511671556877486807951203742857105060062422795302901030319709256736401435603370294588214003300070695084355241209335020435964818313264915615212128389298606204745374435204885573069336827410381037078746670588114025348711943448387140212626630695912350212945974500264483720098602676481286284962054405958038764418493035233905357245478411548797135573468279712913853318375405698762754776502197206651022777199453275878597941496800185304540401309743209555884163279134460753517447517425228630873844112930047075063380672334637875869164602788280398675804836506641066835915217063892256033639722702823270948983189916213354850871566171068353599630567828941644836522851117186099463882500450371099260110637102695925728095267942894631674120031780357993589373358558973538162932214716624787559757694285337612741260659640163343909642901384312690743220367880954877546622935350163358306364073946060508878499389271663282989962831716880553727764920829811707269659055362458724200517261021498326922916575641793002401011242110193433632846903109793114334691183965757536361570347405505551374400155782863718640369186828230972141761780047642448961912953477777475090685448793693382799834893481324604769899327468858892942578195413647526587800856006323306304189089996144485491071748269787415268182583945457100553559570356330275723750238192030676524438783412344570385807093128874695026126823561780642631938042182137470693441817027449877132556637635026253689367106705949486024356559971555573572070693525432375014657268664832661501538418211736297649072577487701991855607627604042903921244977144416121751733276143184873398443862510934477383635525305800237694124632867080538435185378403341670395558549600508652364389115783549298513789766561078201272188624532534870926481246621062269497331959315050271300500975239438034171957320568596632846821943545113743035089236579209104965406502391240726465421072704762839355026030725349536483412489661866086935781387008084644933330446559022913084038861643410038355607243662740147967438140396799513815319846908959868551822935377276939285077271607397256252296332373695920697598888990890623288375365810919531838430246189138185498163209278645372512470719603474200142708676484533179678006069404029145259769648879009210108794218491711390561398198134015484722489940477997583880756305175936601485802122220980995437484572060832760196387011523140759268915054527422695277067187875037828681196905183065351139587475621551350440076784896927520580184983251970069393694150435396785377094203071343665374247902778521464927010377920163327021500325075666222470320295615932711933797138125464927636098014571694633455200808127879079399938819529126964437559113633932446426581158250625436988400193250133191291966412421271312793588310269699554651251648865539369160693994227286106293972869744359055279867983483470669922670764804069929039085539523280896102130108205429221298026338442719429825482034502950200035546807939368668825249758618073432181409640088314212699883698399871035689211986131261769868775576299597261663046410327698648454942752496019918348417030348346454945887880269914773958544723014170588757503576193540343724938859267339063579729837721259547690114557840545379224203078988025632315353085045099453697535213530096667431415670974790918679069637261689500995656544024435576049677688279156990733768591105156979903705501802461456594018047819750187899276247406086665324879504006859136149733426571018828601977564798546505894949611167160058479473196312246866207915264822061906406755892488512886600823075960968895753149498948697403263861413567933343285439776460446600374941033646413907227300496507281982157365319922384679142594415145887492910711021354829096193618277422668296603574189907308711871406187457930387795974540029672308181629584020754587247617470860315005396252870372444477757476648597110806592777718069147416356926729691878929588884157706330310105019182495938244702319605321918370440822662969253920870002782030727653304416407768894475908731025349491632657495231219984295812065832502187833442046760203233206522397664620294429496398675230227904061887925681000357585970168567588594985989023087511425554430562381193608303811323311879054096441119029659379350933586117905595713612099103852215711312961620050132625736618302477244421199524110323356001426905035957077662912146418499728226374679867430692606064161909778856804969045069517859028172477097913600693246151110184939973286363371100030384113485362361531468329649517072119128207424136555049406467862021146400824661517322204886033052293874666879610616612789023474274639930926594113780704724197590324898474273742061755341575381429761400338271372811202936768187228647156672833007197113757032908083281323477274295121532306202585653154117710352351092136715308732557532703694742310434136091773728500254305852897309367759250414755680608538720803567272043415786774345236623060173485630439952223271014900590669575882301462896709201143848148916456807619474216118538902543453286103649488120311990255384267525915676530408398098313908492442740176021276237945707501353312811246286563771091623112400528229455955822743331349381072430296499230848403907045485359350134670563310945650800088208389686142782734243680039381189333517905372720519725794856927819940512431833925698594291869369568457640769498282808906598654205335390514947670566153289059572959754591630643979288286705049986461336311978242002260742390968531317846211119321296224103982278536268906598724922038238288808870068429101373615088160591546968932267076585929687843704856795216219952991122194781805391031043302134127735142375762431852520895388127047083404598884520633934937943394562935680732845974580034892037319611671112220593143394147425973820703362284699697016809420075334048189677669898431464434353810407611583929405233930389161867763122079846818677233325484673642208870391593605196697492669980840661260123112505306590002937893875648688763001293808400361400227664850185672146318440074326577478294958753685440948066314007665701064254499730454798218570541446956930852850193406510202120676465859744225211839651552931193229118782955609365606849784233944512567732736127090605269378175512523850114660128413845147928762067825816815536955930063136561870163308030475593746660128230666937100325887463333295073569802825389638079307231880017815426248813234394944813722178063600791510600112891447660279154031487192193922649866577971630348940303040135833955012760062130510153750896780496542129663964853342450820288475746691947398360181479718644314885564000143964968855244258241786347299146593033994273790960702611783533356251735843041498701051532734186036834373098097555647408110196380613974443958878591207261127402842498884396769529589112555866361464679033203432645930527576176560249541543331586055171152260814334536935700082501506560250850474723687169298586081198758172744984754724176894619940448869361909530726754342101720767767998987563969691594896882820738935159148379684001456490902479794053561472409334847120028126043131933752053609025730062846687415522304421353299488973427151765458745259546309417348324800790688380212094055031278416512806634589488618793371920186944277444969795585914709047660978697886204649599970357203308379655632794550726631787649859753701339676035759359902125414159370928787506547242431611894576261513854426530765511980338546794418777776714252738527326729546695546054639616549439249030892756015426374795431449234367558318453294844249232434458011058043750171607732852081370049750296746653489579446872676805856923125587758965970008804215780879521024310344888771340812940400137349457881370800538782381506870363274819593042609153995078809786158066334953106744804576713615015682915798962313973815113685834032266908536415958653508643424721984386629932030027779664937052586143805413973970367122898870186420844769597613806688720183999692468245889713721779909933975408446802391989644956225129821252827178309821528300336921886147862160917264869492237336765354094856522109308736657208604936822682222141406120266763243997397793549346441539108055624134567084821577318674826045695691032092983020731735124503891658512108954458104648451562832632282978098663220326993174006187586978004335016433425558477516624022695388469800739456916418395485488744705069488193610066430448885947545501179084609099348529455614607304599677969725902457126749068088607964297910898187383509047428399173459193326324369684111193257326068193316132728929990930620135149751471646230862000785220529144573681748041440698094871055087776340657378272609665676941866220822433770999138941885449715245656314509596273050182920378555945549754501767147559478874806997292842222879133697606220422819925233912669654347157511604628847975501657769522235637217818652773647510994910566566100320148327228274050769605308814267305611801702830602937843916406823701197405608360102854222324125389318026883685408446935811827553878387902401580993032321118150776700713351217505511142046694725223316155022819106197760341339351896823112434615088788833251027655116104088909293327179795542018362970886670953393195547972170319348709179366136665105674279626459915158660479661788743575919383541345657957511175813420865176510378292819457343165673913066381493847971958592983844675862315880221693664560188090052620282310224066164179699420735049616268386454334742698206318001684657864520492442909697228219981863678304235232895954426923958790891391269042965328142116492992059919203832215503982104096887892349872661086836658742768569644387581546616660142426241491540317004086808066632302830173910173622012845591733432336957769707222415025047086989146820124121542460421848808709296526286729168373915049101679990001034637904703438944980204046095443425184527796991669029356501506060119465158036079963197272359249571129030124696794181771182997588434526888206507437514215377530250384248416537375953079432593931154398077841757726818580077848448483353396973436550131447138062363718214513889299977797224810856801437447649188571504432660824931302782294189267793863020620321973011795798643094341412281807171794564324600638593485650400571029951867058959866968358154040147783626122620719279981981969324226784475563834246808230699784770955195654902879001436757227576664995693541215805692840815159973531739449516548330919511587905662521766555449771988426178061377291010688254988131446236957741210001555405641468002362278896031618818526068006119753090103544597971859187461602676242668510879224716465136716196017354415310533691121763412802875537511723955389731502125222849470358697423275064140657140425914268857833996842106208152763652072550721156653873554669858918766979377244455926614674195013019059968806357884772811984294766654947348510143299769635937125763846247265803358547641125643278387599651392763352276457293958970150353513103370465595232408921826006144757864050739868213580273744157571039565415109929731641365254375311277225987898972338779954252605837768721613455535635942887826305688558270220574232830696970680545774462369290497581304878936937602026198668895649359933538423530843901614874414713345258345917020520383871168916300091127703073159135058816846858075125643296766547632202174381769514514247205366237855300574075874660494204010778830484241706136152553695699499526212654661654081881424425977432986409128463947981135085110742595990506779152557426030599614018314719624322582941615454754241117454896671648087351167595473644773435995463399129867426525187960361369433227083455133501602430329335838053048104534863759729457003831600131137407772655060993034133062930616861832776346356114242594038463626518988505639343582944193421604279766249640158733681739474045253270727987038058644888883137534108069116281800683423413042362830462601229393156891949475780924315661470741459351538647926448350126923551732747121684160869305769838789316915169914690497343768051322170449740025688713202690557762361989927932943392287528359412850656548250759237417461961893683699458285284736275877570492045034226695038937684144155329169077945005788907754900152423443134069210923028688259008868565057178437635141440138441288022134585691916110271628732388237359050563633847025987400191515050602584780448501181517910430649203778974289477614286572941016192000457743475861692055724651242145430559226548241090558912512538478963347388237894440171409289281608708929924634350310531401440772009328094915152662780717563697874016070586710789389161398858605521479448535895652076472100386499347972054881524595506653477134744282745415644330639213624140272838815138750576074069555260931556347713493854027569062942225343242818543572853837958897321986188666376633614161885427159575705340667516006708290542250196952882860104868908131866933891185943165097061645400747662286256914931991426138098005155026711617525899656098523899526413851127395931392031749396932862505014999828892198210001005088876110379865717641737876441576746612596701622433256259171809124792629541408181310416341158763679785758790085927905661748060550471838510749882016533926925106160160659322769221102792720790676648044811819137698484234303234403040752792370524039385159918444112578414601697882695600164213863816693896481960931034749965624401710713682727001581649404085493246847007409008625272782463284822904817749357264169533671519774161013670330642457681035582175665697685248472436921955745369226582284088575401672058433868075411585385166978937079617078144472983353549935684544178414850580362165453577923448174212327140041246501307915356108138403367604277168893119020961388588806683304192044537838104404856495067771479838594430928802790414460592699618825668090060459345354977007500708431379143056360137000689598825891475996198979254772268784568903389163579604696973335247053588346785776783621899818654086580145821766768905920357377828773252209140064086396731525066569902308907018639568287834627988806945125888604351935749291959271891472702151158492362472194076201611864736719735128369056090851310066011178506126760685597095676131214838653909062722626442487833940026441067058322639626021854451201854483849455911715426692860343761599280777336480591567701959865523363050469010957694207047487437224383633682011711702717652936648380594639251273329617192231213112747169091465633194032500142430189325215485415078805504156683020229655732270214289453073493074056756412479439612119510637680584963733328810924236330656785770984730163493092619654051846965330216506796134108486342176002421813502229261676313713271452687072165752522706601782841599530066017774101897265961291455833425796567237590599597149050981811224152903588759127445934858313318761646003446534813790048725292731343962778885383356420673631151989212033186240849962774462621778787199200775600692015424793816436502035954085329639620134362153446047491744302038033656313353822520347622609444123569553932089164044535689152344126695010337858156999347210277790401357619398954278131643413219946498232029245891060957942502583870695114149198246038028507035886684156332010887662370717472413819609892100483120113881489140880604636981117813524380289629063198866460977225039026607836485551538144697429838202568864796967008699683440622565560666054348396138349780665690120568240102660176236947028693803596271511718550928101505562622122670678581297880515503255606774645083092669626127754248932359771331646544217836593826079587250684840391459241938164728480338796555610885893023195540956552143237649190381613880943474955093497466809341385074270719384336541786658971769523331619367572230767605073898558017491890402924140269054660155794090532524675834384749237815553217746969461820518859877640922608719882004811596521827044693989958122528724726383542618059588526467177297211633095789505784290028871084795283265300633630765476634893992522840846687447157095452569804518750505010964356207380914189478224794110064821980491107050174083300718450100646443632125699530939671417309744878876548850106847693232219151705597564102324401979786994682964614237975249926086425055713108969146085664979924843233463232068934674310357891009741554717748637313549971664246608252693275128460261289372404487358874643982432936515873547159159323043387971932074580419451302639176955092749636035253840750314301974934717885086633636360218200357505099404161554568010171414755438396367765929240151000396829079730623974092220558523830812754782772373381458697588763678481663818608508347821823630370134507765831907207303377980129366758749194387345089414672541257948527586958376376064748903274658539676977652858236183029255465230097862055913621323311903131245962980305873639695465663153834935962507401881891424450812514701884338675261253052753961797781297061465376351166406061832275485550405184335866191967003177567987190873453397993669396528229021542283659309467721200342114737790699542687385732428799680727976837533657391324962337594474274131249329253972840791941162411392592873961804955652111916078601491776179026867073055968328836387519262363454835086852253459163237539734942948644444724857854830139835188031986401994197548756555895059498712567234394991346337621919243240470811976794642193470341740333568910342604641683111560014493783229088811992565868459606945975451557582217132134228260597676445362634515840981243235917827340560239095558995441977009361497497704766981811662692899045977042487008888310802403300946760913804793093786614795236814143026862274732865569009165398795704899783959148010776862772744893666918087006494340455224461689368566529756791270387260409261978217955053708685789083195658932279751976105454371056303547585055911304609902011499811783573886125672434722478434849648110248525186350114636053793985004905043378166716549173238202864000028894693489969221488679305237493795485553804859185963829768403335254448990931423527235545571382882405079913878533877973279615182196973068652604076567912245269966210111520374314893886528232594957528452539963181556756461268631516953450486315640340010807094175727666447761372312639437749115756704900329614919143394950199600224059899835747555249479699313741012724355593810572388283082048659447679735410397788553986319531042953620520011413502750535998819795633219165038990470783136119608187674936786440725317926867617058850712551532966201163875604428743442374183781034894292545914599491892198055981641673386976573968913404286368642141047435376408062443684306914724311203023613561626682334109515043438111885204972674106008414444473958951655769351872091458403794950043697882306445790316605844497948749060268661042764144940799426078884944942606457620195701605870684415328550926738196609453611801839740776914547466743391716908972548026489824688078140985325421959554069397609850183526276011190661154450276178321509770824810395227469297812258026818352128729312093881225200762753803079644953814779580793848425746261889417922372783619325513935694508592187427819095327620585895897241473741053502076216895935638370588140223908630258903703556684329083166487912127114428145024863884607680678728506060984019801397625042168686205426218663530661970246953314486552654459290684144918989506017764367078941190405273789057017016139061153475026488683891858591741964782843307456294918509446932174163629595262029550603331512051423900493185041868929972305649094898901359675851305129210754844015232052187013662228197526849178621905965518979938187994715014723246990596056653159904661840736468778027558623442355732551375957552974588253381939970439780139001877594741545454638357780659889604391002223918200812197060781860551918607836238569278003308887617229156078132304127428767290830514396121982264990384211356781197085332862597506934359052545133235299763714580448438938546660449213747881106405612542734415288306101750203346335312109557281778159563740994379993730213091149850409929120048643167172275935144279744713457202381238176003765387203995519259578279102540808292603492421406141997643953864934547178941598680171135396042986660017177853653987408946394540662119557361448759860646869406695723787181961623115961395316698808351734740316467655313251231941186503266013725829849970252697668967704876713221424354205130936696666011121384961676954426416045655668164218542043790471844498888362689551160009145171789647555446155099837308235061457277686034501828165427125249256515636947771948307360947976111147809331518879328888904785834867718977899622304887480907001919896846733733424234118757889350937295308794556746999314485437380858945122366185612026804464731160407710583789640960788539917458475474910108963113837252519551571106646194735357199375430799518488030906499782261015886025562599811428903971494882292011114396823243553298041584892912918446454766126844279524432379507728750300977640981113291843678099875256473967347625272276863439563594743201920193395385657932827600570360930898790052573819758970903270595270473574714784731513904050013865297937860990903991285676331479086437614669675365457583370353855563960002234062750534681436935440293325943529230095322415165047866791264309478310905417909988305009288219366446082815833838692499996549947652601674743583246507471061694204604439957472645150832502034920307998096814256916260508250808449799616503124592497816350641040690601857659346289059421880697236345825885596720279682478275641705578575872231041771833931921265411765669091514981793068774027537779490032261233276458903896730763215132700498479679291451853642284892451206403540812827436280766639936911906711571490184873215605303451648486315810428605978281175176796240848739847107611931179799300177184320639380120262187266081065449283372779903715954706051539662652778918224237744249299220502947774115478807331365701774779971826744807901140795604601306625834578444854155293720502693337043526347120663911435157177975104919465067963090943052290808728470233873834371869084954406960011510542054377374227566639929816196880156664699108845512332990337172239863401557208060937793341841032867298472961767242129095816307093256492924164965532876835294588554462323763360077343826723483832424095351811027396718351437661115712739922860135616713442255897510466163868862400101541762645916073686999367480155008102527516539544778976881553881960780350230028617278337350221619094269455036540984387580789662397929322463719467123898733528704729334118965378650538863127513062404309087904234812475170993836874030691772322112220211391417563996132924590805801257861296407723728176436159712971218045753132819291970533935497329188976195834930431698367104269214483578483587284950162590573355607475738868261291318871283781665013223757975535447598091738126243220069224333749638395953612437929802444866869814472832842794380231104955266916743044300407785983808242506298259285701742142021766028337487421735569409486994567451827014989769385911047401648296812587815929888529445615242258459163979565214909395781424912471992908870430675978718554875179315142622685096250969635969079684340329686470840569668917136137799463120638628522584545067976189037172252110025808486659953783929051590145377586538586521802650521235217375834409192291174691935346140846939866539278515527163580163194787235290574936083465173288904009952653609492132669748548646240085583825701076944999550706737640262650009468683806995941818198301942631801080102914937434264157039310683599234977887904169352938850594891385523912931445070781750066055708832997238979890908281178921246956437699655035085548487389516999384429315273950512059890243412908755481956554479714473218040023666128669052224803749017035583105782694243155060088422553654796135219941791877974178633146602119712601152035910870570520649958668610152318689745912020018547641679053229166669478062919085279069913480329595687490216799593573827202163446279855689771492200955723034977450216613910533781838549701723091166731312451267108666694274941910300538075811686090538715690806662250793925671264610334078653783116003458650727080242770568243140545486444437901016098707051557852332282975269027645175744390478165107285656138317622355615332265685957132657679846423546264789807669294793714166887014325368627642614197261676847120110769300792287212498484416645698379964383622465813191468345667712294542980204967965163188221748805072643447157444576603663528155512798566686961286335156720165148603014756325105670492869661123675701278067497310176934131797753043092625538907407658876062164473916183470683161264326096910979714557477271897940566377475946811147304212892658214190672014459540832544377563882133325105342284028194020453628592644685228768846879971600954949474206726810685510411558729323236348489067014455483358174855717807341778772524881293042045214417958002785821499255979533381762085129085971344615196352043479848140534876924747955064491952575892735027649406029544926987394834263870507410719655004517151338523533557771612017624125186029606079090324706239989222719498357531756893221350866966076283536048524875023903597632364012861921167990512497323200492062031583391466103506940459059147370991399693919020380161844575758057206647717126208005478547033976619058690936734022335814915959167013815526614225676989904770927954662796148701660688097018447795622499583721750494954747651508000179240547943013806332248236446906355357288241478820155320482487395323603200581126828127298616923523500493371844101957347809224325895794514911024397006746047225342333241943554901897825870125066459857636545312487458478039820660945507300008997337166994489547500338683180964244173575916408626970770411275130303677569990656026040719443975612581528417562287279025051851872594889392982911950692592429150005408996747969047422070313740356144957978044856554420210983275081140519874878847682234817284027966299965762229176883130337381706584345695044941093649792949399730216954104375418863665020847706162950899298941351772509320622730105224131519498333570051506965274892205677451213365769110810501365576012225452547355629785273760749182133956748246639185261153863399089836712523055263390572656197902679902087247916360607553133184625263411892378454454290715990550165035944363348978223703397314721236195390667860037732365072117016759473568793096795406093996600023571117757412810587052324972043381434441169773804270827980008287438642276901820968247593190986260576859777632391179671749044001981389237942897024670342528321521617758599183051313213674996450859866049657151335487259499874389909274006769334170324019467157855602151726923587340172766105204026438644804541261833799896977590419923077026491552500222886328130898579126926813408661040631811888834506352466523743217277651113787811309758400051643345659595395758545248105757010896333759408624904456243806297715552461713736035570012160492615776858219626802741611228898593311607323877420996598545217361610890229595648024878714372027069723006389418276575643432807080747161772745947823656448146573582698372034984210478049702773861000560070590467782329595937907677079020132383390175455484388633602663179835742647217016428836234452251921807691584957525416328500071642787404642061336112439735658367730117726230375947417974303511072695302421038222414527778809540116738075171281566955532942703399135683497758566139576226693108413943703615201982097367487808455823227416027253960038099169620954673864400276075506241130434139229842321291046018024479631737103617421913405542539721704356773019716500714708307050992848255245011849875101261269676595680493761593188233240515364494519285235647067433839163268093555546706706994968690808090090141767579228095587879664958485650319831244107199897922139626469234506624055611216321921206638608217461021298255512571353119806423742025814524046224753445608000579815746439750552548720874102873580454357036093537166385514394136551740985454142408507720452080580687832453408558435443417973796907632452545313103575935470235266497792051582626335715106568263514174083901749876917581919971689993419031436317390666080689040227482581450441001124831515744703581464188866764139528673107546238913771882876865284142524682094572323699078151984271809682737183556811813059229157135338785189560774701746712801194980043927595733739091587602955154061282660701133272257362837609379131842351078412294127582390048477613191212887657998552721629117192134444956507663782272191084089315320349571816631883077504244632208381684804823130136197252437447328869822209892890756006302206111373439334895208152509750628973670898597643987659174634655804554248778537343582474962590494763097076243861249296155804527880597342263895288229839986930596540004195729300066306054930608597193017104639404832562811093629219558035621504508177800733036149292656201347146158020817358931404074967393302301379277422857765334980523184034985979980894138625553792406221656504494249735168852519625363691755471959075768781489364949132640189914181749890865461146184477483535757234012085315533552001721657087383991016253760674309750764034583722280947249132671326191845229966634850621786095732011295996702660189958649712496896863607454233892191740886854321627622404236341928240107946540837551334041228577311020015798495030817692276849411496171378612912463533302456687252066301281263600576787063052117633582534012430001462443626457026833006357625189604688655470087074392398102272909489630046950804972237461018673264430165074789876227306682299365762020207887818341187789369615428565247774608944729141963268110449693052636687840269604356998829922638019800938039997698589867359942977689502289616237972582952843237857806290588842649847644000890903400765831783731725661876744785598129628286494914680642694396093273879449698099883849877844091333423008738854393773589555415195876982860140379670185632017665062038463997378107990011099791794247230665333516926878120808738947743940068563095380381967772048139185089618218340398981069538113874850940405541517255872574250305457312595931709562390583070888412771046582773124962737266576745659971678829253710470810995007084924585938129448449183334792971960934815951490462099783218323608435079107310869483243457220220562871212225346639052542373199910886676780356174823669792198298671366274800650562909429647213413109395185226981479942790888612587244793585361286995748503248101048365835772242252299968538002021752998332466144306479023780713423214054232595312861549523405274200256480817586996843372298704764960886569160577932587055988356409517643794704791674386874625151290861971282059745168905228745673473834893257781261003424391147651813554836776810879016007800902917908029674043140280333804331094495557712106127743391418137252743072270866982642279889399102549215931136567532796423221718731940802028582956354911579188140801861276948944502915055272330709534953813388203279984316167313706311546348512535025205468396245008195109228845205659280043999064001803462543720488128336537528379662805844041585477912816405776622660189748799334220105753541218904131324419873502416223681271147423041523703109002377316718987517825339215471836676096680379501107144477837529961379788391826754668904333408406410565854374095336564926942041543284071059949940627413036028301422344091771064050510796183755270887268215181854973810411864261759799797951766380047992706171193818035961565946771117377343200042365621340467085277905187895683688694594636042681678707298922498876228665185416373513425384503030245694941319133479228807627771531055162782270908111301241588139182072976486320623457566273518351947832833374999073112422849587834007268289382918215816127734432147606159536558253319618794091836719453145254145283197761895143644970995976939350549648308575128488664154917702769500896982346826004637699478410991337463709775771854074914041049705812079578522869823761619675033717163444953647120275264984001315196850095794867887429488613534717064224773480772512366562605118480560086286397486594082015085243701444765866391317112101490775293242138866090902929363894841779746287925393129832250382898018967657578215837386077886782577251946597095393427672137155064557893072232097292468026846521935093575452271588192113342566514663767904557854804669579185619760986438108245515837411605579454982199780156451520722845872348380057993843206880447052345157726739518059335746744417775856355910387909149416712723633650463057402802200827822871685390875843418348426737003992792161421573242230459955749439974831690788087241742418497889114061752716397163319516570637856543351229550474513916185472815078878147075875008248928763713761630635509879988215327341767568415660060672653545889289744647500565599819394486100406535954987222489569032482835947575394862158429029216637108115047241070573564781989504627410859843951819607664814848067476505827817968238724338970094194379311254353799204169195486661982504438251720759829218728356724402442935143117426571402877258113697423357430842801359136522833883026125070617306702538260510055126157041445789659444560132578739936182110758124581970418772714501625205652427845424117885315431283809473038851648804859417337479094649500324671178292652892548381970560317975522661346934049351394423860693663165250916526799769593004361759328691332937611293454031346388721540988547550190667048549856845767505172817941330153959586553524862639357183526257893833730069046416173544914887379121081561879953040346041974514577429362626378518752482872023175520718878530359163364915092761666189137500441248201223970439818415663046475300259669673931231517740553233915780327166543567027469330685858496576916474368256583149683812572124663638424017518391349689065096900666263093598981144059936112174571571705189275202971904710348071739850912672667077414426663260631459489382002715403487090618152720876463460803200133643849396575288378729856525892884245749499831838217669456888817102720907431632587151441321296850937983377766738989091959989250494136881600202580746844585788281393182366444066716523890335962682520165752229261024965957050502382474882768811319638545008241155402718599809012777651395958615842637011250469527591883873537815191559562157634630692172215450217045682856293546909541366525087142124041713441458313595317472781026947032516424771206647972258449674487361749517973731746948201751510425575450224859848788616625865112312507450020023303141891597635021320467050903602372135022700465436249573009102867766042893281991225749677370313993935311022637463030647891087628405425785910545064421719195444476918551261666316365868804992536418786872908165370795764001400701172465774710066425374563774858849826171425112426924035617656953573288609430145869496800247817917562305345395265531056131217518843804237427876981446945884953048619843173183744918152008234110530429121740486944115350693868577972072479922175828724211261677078298176807934096564752607332727194674578615485090251790189723695560459062086785403082948310180290021808994352386192877223308153592999105240018283207483274788106761946134437669594199661461411048377410373405061017540111596637971111865947600552718313852118962605584167076877309291652922171508242700930495055115823899126026378587974453010035500367716929044030989118661049952403979010954920892728081677316732488535764779243773687158308540412782138026969147199682459521066611064874588710831514724113961325968464413891269841530112896920813956170619686071172336559363772942830470644303856467193289373552098574237668800684153650293691593338040367866785154762749337247036091376491758267991409768900912099452497232076789940667511356885683038757958988192372921080766680548350496911681237253411997743206549025107588821036888872092740910569237262664595384968269879088823131183348903390803247748020565514098202637421078543569851989921900891622730147775035897953223851034184513283024451319348716989413759037657071098440313384800079923748420748602113403865850278737592522996321631542995912672960925871929874147097845370429828802590976060634018892296451004467566402893820671151980026472735082482050922341412944038567624604423552966877788723414117803258737290690204190414164250562439700017978873193971568276570232730090833869513360624886623810445844659128270673963450552087608458492862015147003912278808455296255068184006757437747438552839520088083447488191250530741684025070135594384045290284514128783403114595838555418520273960876019484560608223571852501660709252649830697327530213029029948448423130246707728677888978582075605334918420405003797061197551312870829560830019963686828629793835425720666895854298572973289341131309843908354388883769674541225876943720217783030751822773261500952524608950979505605444147172686454924750937417507492318074846088553574781445578450111032069778926552311574216379956630331163718433421443915469881891565647723357716180482809455871396270926965374450087783906291989838138148734089855407327017771272353453514753727217105073282365776470839093686799279626418279768338500016204750501536909617820953943461085786415266616524369907338781888172413489920575479910586940333429066175317539806691178539554189576585604973776574104046278662680366666473067365211347594135568285554367635210522324639116253411473073720983954032984576418429928274990509813413803943989797278899706002550152953086629385409505937571185668283460142525813881837895042188450434400589169739081090496668389951271583796174729008813063106147600751119363226295984757783006962113721217879625798817491815340681456777707990736218357411212954813336825633662382997292735373925609782356264207064600660776488968161681365862779650680979172915601302085430949860642158228115858133873531012720564130234898975623142043305521958069067491209098370733082180341295565350792043189557259202449546894378185468268773517698365859709298100736943069326466486153021046378313263871121120054222931860722337651743382956376696724027664773408269361431966667091015191918829656898303687837602208111004863322515190203650519641627153944067114673667461727125463312266548118871448543631343860216835532774572443344016180866625183579127589563262428176265818852210786872313073653818818774933422579932293000465189451015465044642291940853953973321158210960630196774786471046390135502309315488241653229219425504995313660670299475041480389168121471942882041408580175864154965422683267628216047694741454767831860180909028568199527477501522334067131537640224422331405855658556779788778092421123582933854105426172201671062160423660077694188917694133902849793017515829739415424323668801963090290069973486573532452476143809999849450765317396770341599424217224511859744697623876568958358704755940555398384236188694786034803318537208856155053736481976202668275565704332359842884659074125498818067227543350759725063723972823869114618647810962061547831597406547518751417016568746503712502895676396473404626801922142710952208263996975704392406260125351078540343067814727327648093380699793737874059929572046071611520275872697281587239973667967149380869252011538385092260834790402997124661337960034297508215103952812115166567026805058116916548213280739916295473987200221959889512642781959356636369349959931874968392742628175981576606782741673641914723810035603550599133764205670231246773016175483972726428296847156391154713754759087606542940291928947930276938241527144457911693556581148989511344969184379182505354600191196544389741694466194704230920179974054535095751595252962276629355525915944405143225712329795796876535743815618736553336302083598161939402956823815312943514413369768362822615760693336032040320430445742449228799689795732685267976364582903837762757257410404244267471435810739447099575329500622912127103805185376449090185893245032106086646092903713165221544508950441903382121275957096816122711556800287939842704066501747308991185198687586441505607320322372934161500492178928608187341870363085019642704775846787527834460682251219526426501386291072888516294751306363965859742178914131951784433111487226406796745030066570626328911345343767553923517039660475070209763713977303908906258825593692441976403505228160278237395263822417227766628026685445457072887246754306123189011238572164012020088160848492041989055748942782068004797206039659539853409471675217963762476653379527130687691292979738779438003279023342577647918484145231317696465344812034922490721769317199602735883448646594624644470005679560058747129699494139373262661873223110422975044385708658986416265487744377524701118890173856090187788900255632238451643610715945431777275985472235851006810894494890505676049572637816782155989620847555516097577082749996952951595185891958058965916245696286739949107223284676859739549576329840017620108881155276943616821762191277712239177288142784390202163152569925142065158852957311935651797607162564039097333805441538952230180853111004578952843795935027032806907286625047537164143974055717028159612818559445839567443310886739508934579235565562077027555779404209658615068640619908583915254237192197270558118866148249124726553320862481378823335226855218187298656537796584896076950544255401437851292072543584214680434415415606484957240145092999938769132548145545331758972153916365409294013696264424917196594086763843778605326961357819314585125543982216568988498032622608315985652731344610051849211286997450446869907191958710738861208495670015476790716436585012526891639630653519405796937272339188564969350441341272312501752209420385739228884662547761809846353946643497301416452740705886927560632415930357268695053904938619552062002665088463344587615836998427633855646025578692931088134608523561167061272073512533534159462603079906405009209034835129174705189778445266565003626911345230775697835871699004290375232274690683672918995090834561809105748490118141093925031141996601954724285108855752859817981135811509020688641762229931764232476991425112980833387397878833234227925834854743710255991613915069642392602484060038855569452696656275373847824169531310821487872844033454431429462236430722710926739519317059328545778788575800842507502397697534736471649106727813786514034591416604086264556738433624459956226754807134182529018492125544596591936605063527859151161199878817500064588291803113088592639635449744768315689371863662594949744575297257747985810311276403517396532032359684433038005167145190109231014148542514583801502718473479336759173994101675855855071973133476567750399373246455663696938456100809564438443384965836952860278911045129015957404676047901644165414674585804056239588555483568752589669438982209194837816678505659565661598651129382913694870044977582849396993992573380026854231811694829438933469615155420719848575829658269273688934583330610781806542323963648465734775017954028728809071582041891206646275932179649833510347275768562471369102574746812455226977600645860764738707023869630864941137242223176989370400970984526955214113700400232833840391801961134058750503272517382787298344084643194376278811245775232514878933545004628526964383787700467991343843058141642753797870547212492572870823108571467075875636572725101742210892604305941253968342526092174355666156423564142121188608114785620079504077524406339873424298288556725676708331527376795050899375054020863697305083804883664643991595272552587482588441723095416049450687296967505035948563087313056865649511996801075814713425384592089673059632487070751948523579294697333555823130146286106054246995236442398232925195678064867848736091068674508080855396898207661400258503196338573158693462378424952728393325109194617565600095455239739760399457756022094259652290308625855281519727113586932895337246296569334673167323100747809570054146626216087858461884690289841225659863375511785217176966337647828087569652916665551570224832387897279152188324396273560619355880849798715286162367123741498856974910515754323170496996755846889020828579565461561376370679304732295476674291937713330189512276144823929748496962006678195299890554341364951965969020225800321456972210282988721206467259075262259255476029426820164044590617760359779109890999091042862447788815515155177667386111336004044719003202381591405971104667549607557664610375763081503561171487514843380556888096713569434652949054977303149181793429718329180223463087761128826452363120178527941375434329911662991123830645928003696314091290166529056029038603114517986021363013951415981909386742872329858533448843202936009561220490742310816863752849700546152762694243298794710713805053748568449776448221583694012661963274683523685879654773324713362444891313724873004480206181712205465688872758385399451616959944723996160897668487726619163628417245286352916892657341752458254426924706733664972339276447698769087408623517149814523548448476773194834986438400749847307594706553877018743063204402800744424706406983569788587268165951041027864572530483487711240467858462069924344180435444526547927769097334478675647921382327477660176674737415456038043493780360776578289663490613119211781475237403492935984479330464166995930407961931839711288187147415398504808268223281145106051440164457000810801981885781104958176968296110839938939235579203790461661829939159139768938737572200631832772976121272504392258134256701912817326062953770922970390709212990660904403298125802616960930712654185955986218557863416677108976694989380755975472184397013722888848649887421383200389502499640928458399382145740993663919102627761985922157178917462357570765780723230893141532729069501696700730139738524149601987280210539370144063917595815385444671238543393857635598893661982869126203807473357174856689687575007770196005538673838635670398034627426758132067190589486368111419244202465801992445080989699943184668847108597069085720682753767455472905893339453159351228516967682867404154210281394852281603785899561606499326273924681041520585005465850847355741338728028707949147067830766660062728395996625389001305959395045494034155443309862526347365459005845818302178362416292909090459205959933184897922102548583166987586048885165302430895240132178873517735430430657247169934283178272626432830716150118526408217600051874659348268932571644649579850731734788079520351650396337559874005778731497509098627526230279366077435644365508367152503867514660896114713484246363848697964296884641688544067515833744427173782845660595684416109469338846732234618033302532350816659719026091990362466765740498197203469760254050040533614760197011775627540247410472527114963432483260488813400751511860826935880008778804878783770824125073255645965382286208434403812453648937404580043244615420066008036292680436804901052201480522821755633022856792128537381516325290882728170021304670328488842378380368213950893926196737065086870642538191754483179527223390373847248467028289709015288351227184970068800286317288789745806672636885741499374414187430020409484150719373132885941926007059339159456969075314252798726940418659607124429155269621241768090214005395505337043117611600283120929829448867267761380637199456220930657696067360783737476388666897340972726218390414925745240663998260100081329355800533180377943808474966033589442137497228760924218778654965435626249088796598103570252059817553217022308538752112207232801837333842948810133525954575502457981687390086159811086663416247808075562154065765704255092094081555275076013802207011975630351759561723381624662782718646347898294716221029840874314108103662038520647470695431988242209607913486091512963695751496409572739269446386218430397839836315174490133816812183886888112336601001946939824717033381131651887068048250199346713481776830156015972209761410454670810929324614184081125855848210885687324180079259926638635798254529795463361913776058028407422588909262491576682609919335828826698537554411375954047410205698764976257752289230042820053707809673085830186837906021777303430685261479606540424408038838315581280535403744905889513406729701789643383643179394008497700466986073879420951054001601519407083464390444536059486482280551085770754759452537323844941409949637992705681773249286496903771342535855552219823722504742827539309263451861734656785845716757953448727226781147032581555105683723500589753817802705539437894208740884906516047310182953129449096899876822352975300089081636128457730418928957683172563735930168458988674710764570688907517869946916209871942874675367302300407985515421303428801352247987527716404606326229295959674726887348223962740695465054933743723092708216238562157985010875017242931496348073507090055133238937441400389251769278933274044748849275802622011453688177387812951554179005935364208327954507756186429293315127630247141074888622203197577687221231445873613788694580431448737090535428051361740367692496250388690671855584613364080005052330424835836792171631596456623575681088878003882968455032445762219099423639068634713063778367467389953846426920149859639145420445568884931314384352868672767261067224459759786550036811639755123955977851581508611631672617910474801201548946433878802175995696445019949316158032712224274067340251944872477449276540848832035337948258615369182087729863444497422239689498497343130048811404755916963998702467302090578822041796574623248291544569177685950895850000137778836573610925961330121244612985706168186549145947491052030912827920128924593647872400227109526445181003123927825448009862163069768600421577107777241322782000425701420605679151578702400328801350766340566938691082755903082836604207641012908425616971430573597439832765082900431241227836535980963666183719704909977486948627516969089819530486174949286883036671654378113489671373469123526322130902268126387838017108501719489883109093318768662189686709856934585528270182597861364657642847348525036797074406439030371375568859007481963187934587881854215081514846339922445279801530129869782096852843434532216804572353446047375082473590081381277460999965811824737425169691954812697377367679595761928235403115493272520124146180068342113177161606460876778088663422572929199306204485705750599956904155015034170835937277174428739594280158334300888577657279320158621663180237942006792471914025672037836467494737058092225791073740856311467307034731549121079168098769079822430989473653914567710568645101047375155946972488004326496425125572953935727097464095885355270867086738854980125905863131604721744923941053714796620572121555974529149949687872157696569077548920597472516278344816123440049599923131393338374844731270130014145614509232234778223190177596789764495568031886838580575027196157361232405227542490241063941881254416584882780395873791230021797030257560502651676554854277892179596381550233227670040755641606878242604629458419094550546502111834968299010836903296118791109730108362790664225251852454603606180590107790846673124164214972436415432651546526288114942799980116629867679995313430816976686180309651733637194196566192980303647966347757461232221416859524434065756199619486569628479479513707910597338285769744712213156967841787460466884818086850917751650151214902965142943454301490221771859905121528858510598880328362402132710888961455338720688294039199803289179755239992067390466771660685694827654904355718256330088597060511286035384802861481679440745169120513385882765545012747141330568710146982505639251146454084672145228923560304399441277969735995926337507023623169418234466767437972668901999165560833656971868111814571391987468064621374631625052874660741835477118225996866903421263232405116761030953445649832332523645128755766090277088754088347712126209334932656643917032224206399263706314636286008142985481425023603225385679994263273856507985199612904550649692803059842702224487248068344316077877709570272353908239642928410148702574334319434956379486188020543631884919794783095007393512356136417477404670457012171334385444814709283044600383632213877148357038475871572171164322454752165559822095300576636858356609132197527387894558390000776181359341710787958219605765782120734845116986410350864693357255380696871130754499268395162228603532783348959922230208604396285500295165130865019899626441609797784684918687200836549986192810559298586185500172610548442912204684225137719181643004851453918694887278859298057759176309410393215400226779519463048285167024585607706825979803645469896608472099696957170710883009967635540914436527773563048441526582616262059171927295666093529460748815048460590260307765754436897371732280783549031706622217685353484047172041778687567731880151243376194379752740173523724726751800748381252744372453368494811218655477501445229489960651231970047415895172789416575397820973471501574211354571586619368763449962361762111956965473766222131956238018781354785350479659804060555180275099428154957446615331770706624808462413277834931577413000735465918073120366458184789673882616111542240135001508554012951379753089832578361698151754167625286703004833680311037359595891867447321946987614987394747320222114590246417831827441186062860208592797479801971577630453184787718025530385252070435909614210317080752976418086074514243015328116729852016622594146921463557600277244809083012241249393868417663770051401311409788848326074489849251942331989965359255455207937954967343979576607703117982770722924191323513879351598676245158778379897180210596866508803238718942933262011083095181049233016658446165123568499124860484994804699805555019729366494528529818486861390793642635025843528029489151192131566911009565914526895879692182865815654464714563698164690576568228409456991393746884862926398028478273866488896651746545466320361766320171540930192688541903519578928608725612433045272411597383733121823670319365283570129876696615419789564657233865025499785906771634221253339197816883184340821887808044330974235968597254593488840701815071379013169613005521368882617449812225577539177952734739734054119461099066222847413186957686555649279543675887673319107192289960877696185265017889617859402092401913109469007126319973780188707564000730986494492907415626473543658304746282110645566823434038811625450925168659600008110119852138983726047002668894003714214687142570859525037675186066935673480560973824461947808357593763350318762340192395842294822438025230423613368110305946612376908276445377404684513412088748063130724064088913505157148694450206476880102112498568997576110025808615458545302427547973632392822786568856708574648407854932173494858262269535139328716639224856663465604530439935004236978025782691312831366868750271961857402465821147511851117205743962970081421331736321099820806072784790283873259980971378871472838846266860645578585176488001898619947896142770183073284172578434532007043035947271156531213020922568597783180605332838305825406254922805265237386666833470778771548430234774420899399142902684092188694081108646642434309236567452287423505775500402929529687969401608071674108223571955843350970437124961409268044482929694884893034011094860203892184369564922266553061741753810355869307125321778036532415070120692014498999940091561566156274747243968918701415636466275829073300316117080258692996667316218209378059941007668531328261836026820711586037784937772406520068988949392728684223344379957086453460573754555049517255999845076287230103203216236651290592454094712435225655286352785613798568400233827177367359638985825525464823734048300385258596533286961165427604144144274710062911964743464295021000845826757519868827951210285949485327134824239310457986164222208229379579017380895957110676281904236582996302311578760729583219564128524732153673744627183732715571012348944091286472784243418892466643168534179451555169385728734712313395845809789304608060615697150430769660841934118212648635004538997486285749986828802808907893460930621101866329754829325753101567794507087558331688354620266793805533278603326211240128992696572305897867272774035564094810560167065551910526749126619553762315795089638613939383075279241677323690180945919298890496440011166329289204770542482379258429065722446507494620767708181150241440223079846652487403092354989475283905618482773592943931602157344615192533822137699452643879726888336840851182801991108650168588200496620623281573710889924528689115381092771908942136573631842594664596647721445420413641936116168482225178948973532152334112382646102973636228545732828025496073236951266764458007200359503032370456510785331314422472176199630997584544175964033954401900716970582967864957558916698009981123113273711724980652944234318799049880280312162840716259926939572062585041889073835252151322418795826872129576618283166069574467358085711265610225139877137203528621700505353594705263595673149592054427819377486337927725648948053449033077783061992445080884054091338384185801680359927863953003565158803407992610587565949507746490590726967827015977662451511202736669848364564517451577548916377181783431546592571941448641027061334000289287768341285098536517570930226285484929484291335844964680015494877194487414635275621092025592239500975768532141917334420636676774053454199743169494383217397119857274614117061507094516397947520591057956460333674220679281066437960187746423965885460853742346058594791486133321822303422284394469692035277441329874486139602077248661711943025720964662877199352188471430412402925406250360689555695127320911434717821734217851204954010507933888561786206084002717909705673291018038510747778128647069107436683880234221547998502967670831509227358397110323557434702615085573803982547263602676903385517515661281734790147689346462901846947332495145854803178283082103373852500286392011277477740126158227386215266792799492726218061562806135719293402754537194846037211217581106840716951258181880626348244962029560768507619144515419040108326755414907323337164156135259049680480059415816411782601853023366357332519177585406390761528697127909636138400750220420756097234127423663052407348586481224977305079450998189715015506984310475926470625017526411818662322161283262450337654163743057480873002816554365589865983441084370718481947215739321654333208656232279158707088490833515102841552700469650089281455569168807241630394065535533310301782519861048741301908340312065893797930963947735422369463719724877236799079088971278589972338488127617508035820270272520046674821477530788351917967725002167733955634938056232112513411019195359147535768997169033256848933236898626005813169590464170284329060631656657850075065002361765109451210786634788834281092693718492988539924153993968669731820507383805790407426148492606312019783141445666361198997106846604676353864700030523904907788962063344417077714352507178416018300619361493384344683374716535597104170270110583968415941801674916040403081149425627548121357099418252672384245905985819084266623913634890662017402835597272059601962779173433222709400116688074542671170788781535525305015938792300174102819841859807600091732324388534017194361459484320843373086404305186313895153910382303752378855824462350336502434449396171864429977359201542943783216047163334761549548403947483901234055525574684481596646016748375832584628687406899141941233500221229527132453301874631949346084015964881793129411059933480457193061962051492181147896436012347002083756857789680059466027425131589065655890355133656550694765456523903788902348253080783403559466911384891645223028959035647648235744694048283019585978125295677694774924810225462867252469975164806632383630028968764161612351415520448177801190188497368935570149357870406054547940970468994730959919556382139539792222733797143351074843626621369938578292279020035989986163555978063097963074932599225710814681093388664532919112359498437314235688192143223608474437418688181533257039593220074212817783191035885135986759021681640792779076213330740124630318209716038439119014938456304259592409520423698355078271927437736153751930420123430541758761000609182077751120567685059986955668666232751659137789732098810453343520779310534079717729276596478792085670865628802360168394619935498301106624836982699271907701419455290563104462124613371397842487065061463700714312412925159976135418280501785593423089440263858387583764026233233671739595071346820774683164684762610321186054216872219177759324422780938327849001704070983063763056124252601995328027114987845536883836929849818119023286032202090720033761143571110268436510886452150403309317092473491517616682439207334185210012172709639678315808478382746528019434042717487722483965129241510396473069783531968367704112775322620274395628947188092403068855039704031122167479230503867505688846368847890925570890372440164669423082209555183893253376845044095252084156292323296458856300889667899302890577990897447800967019638794042035452788252954621876661127086273970887223770118283889607552606141690990081020244977591566702203876163298661766653383651888701267015205065408221509466110101255574831084535424333277647393736577994692673169358179949872724126887059571163627269572260106583403874172657125911065526976249831077967357940456384788790250001260567154473552329125280796972706779727212279101344924308622773656606898022132762775852610529499352470664955654860919135677593756935550174299826541109819259620462895695587372837064787944572064270056523481184432267679229449238064902751204926600101236886025471103586664150414561491375548252443415323202277659624948212977594434666890178577002153966792174761385862704148138015361198476976433207841037006030974780780892818145799618138313677108789034553233653303466258105608471711666513229163648723224335973591127682792518686997326207648183564623858351087445147785264257853893949048416798258525938568960817734292340164685241875314247298028087535619919608590260633429544300741289661672326102153448549482506959313756392683265736991519154548514933540904799338100257974438745725721941927004487748177268554759640431059760664309292416006936288697810295640430313702463638751521299990788570650142875574313722895777166903455155994824518238950332900698847785530289332377481675792786429004874139422095610291459927748605611444822556346090856906519768939521149532743539876669831144924630229822982125026668873695733969830639091539257937383939226933913513589401825992055338248545215797905820950736363067347158550004568588307815644645400461299606512039373783053684029217144186750544316807213867484879643678811154916807364032966643467296259239422279257582241716531311659072456217206008108664398781048742053688407118849135422487326868170690953124972791727212137229693052505892843082211442518095989114019274828570535484214390343875048667501617764751022776858379949621956534125127802697421932014920512378645445965996146106934079647930392132337924808488377665283056506096566498188959786598563760266398954921772698849236436201712289097567219333153931403913780850102917655896104604513601697854150732374998696140129852270993077030400330828610551350050834490906828880197165281965505147633439519903552645563947382700737856184204694799962193035571748933895585422433457991661401414493609914227887685177927645702691621110384226153429842518858593670187544692140376931888049295232114345137391013955053363998551906287588730245091647732398980697138270228471943683105031141571179916492561419068349953546102806228461725062539390591052874534866815011032519707113757229715462290549707383695242300067273837484570726668267960611326832562744803865112072322608574153726351409052112505097077494573036900122074830880163921577804031925764920901068740014492455411007696158740860323257151186361856308691012215492535327529959782356775562582700730003007857242986901447115155465790711507846289789910226622064957557776800046567793337516865680781407262803989578734526635020249415271737014943118987398495742934782308976044424405017277660535810511574679069228632105574473766727033250994171881429231181272194406872160955324207047788046123159376866468719294915427611747162384171577039718764564018991948646461599958045943534716795009193877701109119742022520437577293978207533139142737023298651360172457321210611434745416288550161086476419266560739165230472652354825415752148120684977577517184834258264903450563334710115464285087468563806533407035450187321175197885971036304240803268599309251524909127335879760135414944074469346890697329569257558512482730962462242567289722970069452665906111879544213619083539544247328599983531444192013356373327457005110908833697474107158609517444883429506277820885877677757194086911881115178517270333892266393210869381369618423918937997907590869289725410034958265489822476192667994442378644395615972548214550649152639573199948866805509816721830147368789136093850027291950763421244647619423272933761107754233348803470565325942718498101765584625985525976969553187491465963624115826463227048391493822121328828027213274074918151847159686538377360200006341194834222968507304532100395035489569986851361703364145856374783135929265090421430103632824301123427746650306086065412474335162113264729681688458943335822072983358056437209032953181155510011644716312690614490683487243245943152755313279156996765261040142176535298613402370533459895982796126278248415542299517140752059965120578657047370995486857104039152774238812696705126378596497813325205496918606347207406899607372471766084250624706354760952528274626475041466164069951381934206846472016440561988548495071639358803196251829153570367647535823820050904982032036153512026335476007173769245340527333307142153177112984372164801401030846069978759997450741128423176505255052350506461323948352630923588459597144710442310822545017083170703639770817906205989863042279706052028977779879154471277061632507865403841716221750935692449157345983232330081281589750397098387371509142882268548653464267949637781326071674856829339004643393563911105216931038043997532489649363739309852806561556439916177057884479041495809816504267580029986988381103503184489354045852121750417043834696926141918340547196335840469230518062668012004613053828627243353286924411425840639832756122155638620612140986468931330269852387343262990360530004932897442598765872686253870532441440601492647477947651982343154075681421972966204765105146128961383211860138691610604677381672324809584682951131163779414653544816203054058521551645670035264790298987532556963089685993740437755247197582503491035157851369578244170747080062633168278424245636095367065777557717012932171956359628242440645822379707692422445788727086422533292098186508703450669262765239616586349722958784081853903668002459667865643873739961154835607788685106165036903079844205635465769344737071978432973489433953968822933860722930076846893931318279187153756850398659730572327618575953632609057647607710348871667794484245699463351905242878783628773033565156168561918932741408780424037465668258838767274414550880145202426259321099982211785505817362830878308146441300711899516379374103028440616514500215892232789717122776101727390917241582048453797942707193948367120027374859505663937582454471802897465109907228398454538774863651994539596304849472638083950972597904217186563920296580147396571188051958508650868156877161348753845344207505084290498984122995228463997565510982096164270023249439247583327749108377158559318246154566619279218885217286073671662243850849453961887945252148754178707474674531524431380696833084669267338687102169776753155349810095483862313600680792776388673635832727476124204041475171087242045467181742379036601895244836397482037192456970205185158458349192741773915298496893258994094767299644905935760535056807194700481613693053104153446686817343001562798559316567672196481900409423962167871614678223144034078960230572721479141314825631992042819693179303336577947786648639145747601924563277893012540007205942294258435167231467229053588058801192656829653005666398092371478565688777346303250538306439076951324997424057347838902891045861950518259871714430812964490221601160269963742409215350928825575020963482060947706349060071121439502837006412628989365201313484151573056941731990917470875696138016711932897323589705679859996471351561565098338577423914283687210952123814372978420014228574825611873497486691497028551021268271881284525466592585186192927663645771198011804762569426204865324175533572541303411641898714860003004303885294046901692489964460048376015300976238034751059686553774393873830300897178417319521558621080628971834659927858429746000479664438351019957453768462138534499411220131617863919135105653780362785280133336655611233893811565448626567821838823816850843767465358336122262649811953723620558450812376216453711599313837583713861224388347733197920315625717000035038937933191234692764624563992034363653984780180523600722881682026059980022851756722670583262368463709430451430637704061300333989394055026561673466940555903280941219258713810905708780475712660978268822840994076789608350964076307237764545795359784435232728427878996768029845936737883695084606532066107603763765981471094373294496553684328327854654810959741937612793271805878733948942110387711068954748591423679736558545910647103788333392336145889153792098966667168034573459757680619035669650912375477055825411867134059643688143199523985247065691916096159760595916822109103343383167813114098025522141799085122900184850355554334179642582112880494503117996062444683171211263263345653061596690645322319398080659706726328342139488082714082489998951610811740756130432068675275300163397882574110462716990973632361195399493198269750100535278181259234508637891252224786504102099451900874920288605748708465843162920709897672333015361842935873985294936547862990898884107955013374544435167270660069312848774841687339022985723572818540562309431455301902515444486498745868220084026500469538530508191353251559966797655465344447619656062178316036289335383311941283075152838562656538465853821593167979563466815366287692185807550431423473316149466148446174685396387925993505200045538951377533590452231037693347908175398953987923363781029890418768300245265266923267681409411489833453260268173537228770563281159965963914654991779643587736512635180858968217600954263435854814016866759781021225804533805427979075717069684280313824746789040920341621144804878767510943624234254742547847046164413388737503692252353651027866917775138190496484220546254260596583440115112565642640289300012296887803944700333071844877062861727593209399419188417873668953396630274374793509261595846269882774793258935184953950879741889494511426369499910708798765978262395341322415923485781975276293438797793732676946604538595497998696761335094253309587401804236779867922571891983184104483814568153377659636941402298155930003722603659193704674052848125024984395039905053179093670514804241691165412204445876184703377202583003657652213867832938755537034724915453751736864332939779329324028791626618853973903314612078770852067778424410465546234368714897842758808912860120941003936373545735392006563536604044698117884226344663108627883199686735600379102445648430959528772354827272103662816760594257519603447129622575286123051969839693232130298175264575025103338832673894814565925863290580106170329544528501233067324216923205596892666608808089358742939799688661783005747734920306527030103700407627125981566669342757052811768808639788879821656606240991628511635492956845775765879728016279410077047616780254507634061313680336757460287898298562149440095877253320668742449139429777357822388350429277046086601900004335700742780993756481039923369090771673181606588893911754383448709143182209668698763847933724694144401342871470783328987678901636406830579636108390472861255149808633201817792908076856066263960045906250531226948804628343713504914374145075767216536342575854547069588965389701944357312783901575580300350279222952251375374788891733001832723926266561703230682423710077048449669288038265618044804806345360686179207454976338309367599755932919899263667081868983993959489461278423299423763262922779633022041741722010244810509090433616152113957871523975042560470403520063476526520730222452806198315873581568004934101856079735655253190072835626881250810306515782894075391378294889259877959428346976820251789946690562292539693452095159349865467983039240615195996790748469071245893660713126844585468758161152353722672985198837579335965745311108566986934423909584961185192224993547962350224594870635466031912679359540417015269681678010504370328174935990130269228982581451963996217539826622944985309057351526524770124190756256640490168517871155272126993727774168980840801590672850739434302769956619496680619865425638608119090557747368292634470843356682954928413307652545783974238426360873426410193522967573220089592722641094151537433036861349109731388620188565621453586652092827829353317368545335201862902940254384368128394743247661889684675675328382277650180248065126983573545714004319691518889425307750951892425961071913994976881876289588627860766384055636561234325817107330390401472519942197562376186970475280549969724439297647838077543294119642011929029575136363404387081720167832308564714664954211116294955596449689674462444726273277114636639794818216026722746023341285395057200525624310805149243637667921038971037893255323608490383133462397202077978935026965611281486326398487278828037443940320605168410392583531329736025384436539817093964887064485712729493741855506921387602503568819486206781345725196349143059162955242967084537814484950230415791654750508144061591594432708297725414148224495696025499442657363953014187201867314331173093464581402472380922757899941700280661301317297026258674145362420135958964864393634114953522973458903249123377085445636722613234055784943325396449407154311047879121902870839353249031202726310680690408174154059582187844804376763546408748160324397815158108606595099875832318478709933387494781070231431625046823302873019841665436211180315042479339638146040935018014662639736638971564233406650423243794506458854930794633080136123363613927797154587867928351864437492849613841418297301678231719759370860693115467887541704843074218933254573538066106035887683335550515829387228257887421987123171840129557536215820531598800594274445745247454493633785277861094482986359577965881135078286833475141305560289921928772125682635627532124086759407824615682219766640013342109167166740827300257068096570436228328478728276542386993196961832215618170171865844520882539284332273923915274933948289299862463327229488594147603588546312218085335389624449228339784553427746757324392818416162747524899763847664899658452316228888094632382126236817369689326950905418423947465953129401050369584739548174583668303467582738938229768836819251269114025393690060144749201527539951034003730327791279023742780643359407058794277761225056551141933637632851022279958811264625717605954474202067180099638923872249573809347765352345042180874574035289737834603288889104097082402371741895269990879818483603158255030404543363184381199618484426363095008856912152800822549793826149943488394935263639367238203944355663252521177321677011462180490755588487628601947120109799250350043583573370667917037313442605387678224271471809898227355104470940924277660681840685630462726363853950929225261675426122258587587763317432578304834397207625138899133908475451351519328600295439368931484848472193527348720617139643376197192212190978060257305412054939773543652727381803525193926806282650880961036257232114967657924389971028457093484206730380186129560653489836432229605170107787852955515981556781621828099876422278546742046289964318584357759031669632108099502344257255678249355213087086308080668705062315212902878700729470743541143136442232584615708019837088494130349016829125677176074274238837401339015375024408166027922879618511662369412001482953451263524910095458412340551120387542043720164728923336110662376874163652419548906046913224321693447434513794095363613103667329980786205961592105809784615472617071443420879771785738255865289344930698108043230116008505766964365116750229533843982292522126487509546814315110006932730153195431764622778539037799230440615460529934073849711743214150762133952089431651349383528931744941032287335520497152784587778906310259089266897969856868532563078537211971083693264850781995249139822718015404204643173105411231136499544980352545000172890980051757657360224956603218256706369953177044460235293320012888300300460036210272798312448005977176111388085713751246189669777295142411041002093992796437720900726065302518890558831507559961565927972356123422966493797394813894256542629868705062347563314914678896288362140278712438670534675064544087193245277938585937791050743135884032662119526391144046887813991314264800046864143612215917490142719636624249117826950135418217220086396978601435769656970879269619902009441790526826106951680586100301122702153898429860385288707210424760227260127238832334832234868469652926630800411444446540456691626669128131816428483035239162403254869890178346062089652823549417363297906972686599311710261720274121255587091376528941080986905166428583309004538160700891301072369606994739587627871307044032066293946599077129026210276839849322907944412196520362135132340128605193301525186591013333042170248043485331508057486934994806207135729203675180539886444808091410050110226468822075306139249668183196911656234825865131308814664658866528914626452172497673357167012410951295467274334135975076128051854394595476908429903783501664214201714465908935185854228010944718960829775817444025628492731377013981482960574051154143426306009660730402949157356692514710107476422225484780839669459911870527651855903694136217078562973550722211262368658512937235147387410883082316691892675798002173853266248812263721717972645689115362261402972308126370893689384153175617227562191655045824243889737304533467443383545603035473243106876426818323933334225017017249181737233817482040390837422362646202899328349228212907865836257492743344470493179386771741609881853588951215664286983945173051420253295805353762238670841028509625131192617143102275411467486214178304045556229753141779940577202078318776633560632561652203367375842795827657489024994598381381370735861969134910188470212252379282633817145220968911773796430722584143198307716306602063626617984650688666860296973049391829377495762350451313228408269675963856857392498099390053148043335470532765767747919816161844213175989135171105925979277953255018305586710862160303523753206217257974543464915600913643708970786850936517371318364073567493718018642374416305371163122863221917066870640644583996706770778237911533906924252072439355236006020124052487962374023835040228469192847943067340703467301165069729743666997022014710390403922612643643770365547769975209888020548055484454585510957957723402730245808456027185471310895215623726337374692515707818688269958229968183888479411973792818438397683070117121418222966896085576705926106602479721336950494984049475318793263428628797584955235017028391309795310699897468958471700829900646226164178008977050256905080201125766096523329999560184839500487350441907947542305360658880478699450086167631699805488370983187397351469264931667699677245728183679753460017367242642791367625594022168982239671272867867177725389984579189440369143371598514931485065048185261321491484711790959372023646233818683295327958471833384128080956366393265493052361965027003313388742357484704391551902752374887327143679974284817628882046328963320729202228641656958751649753105891361104062270593173880513894966859818741639430176515988799394100282739169981466302617977787429332162834171589368675557489008008551938060000982954657191499819583585053423243269696559959439572887330667889251262758453186816972362405164992527295351417614931258423737602427407525666266081967479394196557639277710616548492006992246944595552621774217507853121002684440819141957536350361599465360248794294723662134843469257444568984866710609246766050981748506712716838160053511858037954171594009891479812930581951866004465844364819040504349224686726293214835753024121005010626516861999966603567712392465766911722700455353040970440222541253360310072131672930138985970939549561267853174616068506531366078604021756391847330353858891890233887873060572622701809012228732438564647956203446300011588775576985712309131024711063051273805867288732539279464010161012860878502385609344215649280610330944757100873813699951398814921039412106205990627388799033873061085772006099217845829153863161402480483909067839566670409345819451359424458653736386476135848912159459234700343109528112937169828334919953495457101906061695120246184301237958246737527249963634585508016985838134400788330086296516638017599104880227939431958221422765910188233839958319839533537531176817561481852439410040986367304758224176840447949162481686610052658274176450015938317625950647967196732928130889118930520585310513568668636996861105126421847229289983817378522155723730396015879978783767953103471419744635742752086496090892264205590102305305265589025451070859901579092360238344740861367240436819355341465276009449972610011922717667256731444016520603278970443147822369721435418463922390317379707280826151962817265804075129288033984370025788369442955963981506934713338759483675993592575322828967681621285987268382619378286777905873132154935005625604556379062538529464785712008170486992549302063790110030604322465482647739059596940525118019639380090612058441795870626949045059587952817401486483882567132699110706569302324423941588962679636019455649107116961195846621360502147968273167525835169441316245772316288654922930856860223565733735288339135120428620360415227038801273068526381060781787043397398010785382129662553383204332309646808402348888098222009821016946604916590458746609810478196910241656854877273489386014547295719223800809598400349259195413146310059788938657145165205060737292845176346411205838194830598297752725338933171994284379505677996595865717989435485490878723972115942669921996165800895370396600896732760205826408608701909520196092820403348471150986206452997520038303510063163959462661617398639520070852227503113623062047538439148621336978924493934567953314418165513169126475145776871021959711271672168825613722797711455186962660314680757365990327564641587595161080776046650514535857672534408632246398340872947766729006549772779666674447759475765758879381908744417911099708107760379681418094717609967803049472583145106412561165207578043145138035838669954680823343318886630847996800702196374803749945613178214374269248594430271628840179268845753476795494915848168186953923963319753930521958804634770372613012321925839432275418643973672931944228505275536882033152870126069630350682288554973990691913137332314007251471872405870980124797205378377848084941154199060367367687714322272829278513036824903713283142259819915363093238714635752550583200458558618362031852768633542776808830990383383357099523591583305441854417747583001378684554252224057609804264806086139793663579417039515088565147451930467756766103584503000725605896530780335159488475061797580566885038105501201989997950388595881579959223802726037536523802430375631415987034778823922539842026946492083137762112238688831838191921349169634483305721096430342366954466701431497063477519193196373142317011181623538990748362442706181574643689166832908343146632367964019928368022743568960304795664068508705842633221000642364765044829034345925724737788853954219342646280664939161481984604045869202629388526400249066180427012362746458025885294771198164572461134198277567072984734727192124473796433677321410456523259035532806374167988370822741482445552646106313030223705322395853934038655489408126424036776716699705499410181368345663368521718310996072761810873220568249419521228429660076261477940963465173598351710394591831681013042088698930167529000668135350385107052937761614159658844647250796106902125674726830588174428221286787413524679156342827691477009943705575041752082561608405466993690847871945208919032058094040063660808136958062745772754574589638202555668943073916382290736526920339455236791843371519322366844175927375136624108915310068123329864361567766395428968433360104204102121983700493771381868859102727981405293950865412788966380734762728184907495873272853742853141054096314267431442645784696984923606939197835476868738768236584140563250787270192563354648805307273740809729394546309420547116807510466411623361796483313149895526818422661673545917663488713541202935343357145458354488278026002329693039656482436258115442896987834674155045792433474683615743183287767409451544181004729735102330880741701244508045612833439723844156195777428178675076010872118966019877506602658914866617023152229918437609774394724796452552464423209754817276105267381030787186274340695426192094657764336436604359482462233817939933371976932587487690844687169750984059143433700760158777595282178794506393082201374614280165483033426460526171393534222014978497756633328138796442989953373115752014766968445888363002142754617662292497728586189405672147908388311484741160143581635067655106680454217457281780306505215980931616348711069654094452601687350677152842155756290546629845021958453455218212923809284699176312005638427008976948109594540539326092089012824207081227889761239009636079640195868092917970709426435188776260361353312222412473797486201585154807807646045328391405890207395580316229531572680424263825066833604299672248521894648019420824772734918915091982873244150793424795411999495614394545423393660002358632632852335247054466240535665889334335632901358301116757119577080611766554547913030086077872388656763271430639326393286108723495249105484483450625733160527326930156475898983982372335556188855633733208887323120342406776720767404092641311518761506709583583163375620674273168532770843454618735801463970209894136890626765691490879725291728804336256205942870356016465105822009833563333608615288116150391818735364187656045979768996003843440762772984400967426598459521804003146582831308374009849708370863723105956455541356215443979293976092621197104823187917295178244857656467236147245543517772270524749797063195041016914130042280937861552489177582265783049488697439842451085268988604728356584701183305064588458837385673002906682174383789501397067079014088200680167345833173840624269910788151891892579775505570013191301757417242262387967564787412629049295463422404998961165922877003306298889449825174563522328138227726852499835866913828850326641278678252660020781938328667191147991487382035657934918521998387002314608182478571949394419999203202994260100166477494504911685317604449699373256745029286413268528656525296436818569028280416861883776847299472582415764574926036320573913333288440232539717464805829313064327860807067540939605827086918873809809488364268276911397776974633096072371367258858148203134377233660800857670227498637127954566305741000242170106854790063988824003721492181156838019708661193474372613403059845403535968643432973561810881471886304816000697696345265273725517041733212505798055791829147306564539174713772409180740580424667930481503142024445426848879941567053094574974089217728710176107302152069832646314853417910847673561095154134580309207409045966584704460685783072594870899212229734001864118467655702989987819837521963487282936043853206453320301015591199514560383167295578780194594183663162346574792319784345039875197342335369508471499813277590566623109479508106521583778871432737729222795339087215704016973454923314742232486962700219237424256031966418298213874494843567459513589911322179364878332153376304958856140253218132395399264302184896807463380626192036405903643898256019717873343249293754438315573771576036616398883984087219980694691829816958782575112503703409404388053076440063050986046251470100633689962201341453099541614998985086926683127323575507423435540219571650466902925054810362713593192356171649994743901991092977097697252008313794469360165880286746795039311372941497877142484603227294369021615814464409200719910424672663016735196474284507856409757276839568092926807322400872365631129512836266687790884870969749538241501789885234308573378629584920037799495330958673565340002588330458061615507099360210802073454224668177693711849830594802271749106696570993326097667185153853858995111093960122501066050276712664063742243877449876175040115020823853029279032891405571189962458516654586216469575351254270900325116953878573742583608285216118646370584873228716902198750180633989441860318028030513402056322433921786086420114352008907105925280165814693183541752409856725672903435358794986794241343369906840572675824751895688016506294875745699052819544027636277792255003550729325839343286096589093705224062621063938680093773120971930308994071808103742210055296216789458509911827072807371765332984177321795617360366396399004509780872320074378273856344667197633219604731606856922932183792437777264905516244179082250952964971401394095445927264018536931473929534387649183027976082416586414039623259220416395329683450701988222503491569942940089256759496988837307879622668902498042151590208608781344343988529008885234075603259636555773609626818975180226728155324688619869804346047763974026646615436888113642594137223865886917859065785916658931308790899959831847083833813823440606873703410733904970019512769857769474306715699135562751641027813005514166537499337848808856106675313629204172970890519594011773152934549631276767891901222682776267794627093179279919664151529153434662140241801861962713734029449290170482586023182399173248041554115678164967786528815584558025551236081056874799283481348202231454725899538115667838016542367345785813739669054121753569450056598575713966852229239582199611556310044311554550826082117004075172453567494769991938893527846048848888387640171096675191447337309083253397192468979028334927731666079525784331756805542324453331478291910091888434100480388952071396198723840939491268855225268900583412478042209903548314985168215307989697115954772052958203836577892402219717125899542510926991321218833040631841534292025945000756612625462832569977023364891337484674664098361718528301032638069573036716912048688446755021126780090243040252026147174570975331604661928671861130984927023144699765056527376584994309260582247717920705105066160061796890297039090295416174244737141672426363558435450555850142603767624057327661623849540839402694496290496907462974415111011315183297196583873552476444423899255055640071742020820862410116591166126534286720087395460906106260585395113309928008961103336035925773560970681721544408619088253418297391410950958070188079697148877460100336065491919886223647812392943114617180215124471840397490331974624575893296455131484592132875717261646914510072873949590900564565129022412956436663337333549133116169001696953175171089520659673050917099614698791310379483396499674827848885682245824129221794445357477510883227181370246689634271053452106910685788981084180789533828309406640697666401985977137144788947248441712185158679767569566094811498195686069173631342725378981936545528821296790259476958392320875775325183270612332096054687515044956353738923731375265645289405599342495786701035156459329316853353082960337430113170810543265657910793121744163431134022053039774776111405142477429856409110297802103766167211340765984037331824935137738418517863386561537679322396819112605349447171592361669487043020404615715730322526688042390924377470722814011320873698369582471781475486557376822719329309176877304000757299506865852686921179290640295598013604224922594160895290900584641706072513825772765857801760141848897635120692327915736619985282860087210110931282168717689457442623367198149422221888185025577139287288427357579613376423341072099351283282586906401924484104827370108178789889949849700111626743674784041955783453491861667114346972612207263041471722557620917958301862581091785626417034702031721921457011557487493932713734567787943954751778505693613464444587472828934669174755634182818658324700982259776513528320747662912677457971853098008314881119458256531406436526256573948456644666084231213791025680973255137424094442428756168153134868451365347673579206344990774373150354534906254868341775750355605384086928719099132220928686078180324233220825289300287739910153053449265076925910900881665131250664759733492346428640057874391477316197769617866036535498053260017808212372311935081877983821152727016224946632656899219702493695914632909650108251101560024605315178694231616143872892918507734589501748155204641209025406639870331264267927280492913535879142562754690940235463553195191741079122367276340044769724827799946091797794310941562453942638863265346144790626363039214388087194863125065046951944966923057482597826159775891967870181859927005915313994846705120226533710257180560660982814568186508336135537630005129295820717921453010887014139225920519340058608410297217418281828351236877560272256845074143656977627424669407055082218668981113656159807460066707546986626205875545432204259786136296276409976487605657122823235488794122255729659876405889379163228246139318989042590632920158407470489613760236953478875842451585827097470816313219725488597666045420863271979758507343723084642073277968212786436542517024016704292252516179961594040410259756973412008185404375417348413267222236342617125407420405580851051278462999140534745005846009498204727462436463643409445180669837441679021050287204971548871914637111357578031787914615099334753529219317524161095508156606694201234757311790615177077856270607497289190360545912770368555255042328681993824654599734055875547228474263856198865122212998435520408111129462816854330917945428427452603367292361879144449841331217549409298431526221994862050079975805338559119270630152188442555249573841938175373778681510312957766553775746036388389420319510416635403962717041368223940498537975731208856059701139480569485721540241338238148469814059515542941572847365323517287277869861387555023564615588033012276892153327921263838438184636092117598973128238499473641421899169739860519030402261035993822132901792754451773478797164890817499298431204449686610943107263776665891207006531094454411161996519147733975534142839338791484196651501934122104884169381843999653519010420522876018433400604192559409675299648698855491576278028280240911594321026023636268540208814511035804989961955518494764909803340385950677939059664516268916431406112989436538331912397485649479760617633104275423232047996967926734741513674409343724153137509785315108856616832178377361210690997555568104905246482330620247363716517670563095885959907625925024293630002298857325528533976317496656226633686981325683436012851809031986648210709119830644129232805179314826885264663902093423092766733483394523558062484018238875503774237875081715997308367589032506833297608646599924801670006219046267424086580697049237714059343572257842834161931763160191168849828164183062271688945469716183975035466182928715823560435591216314538255953135056764648770266633078830518040613059730871432932771321503211556849914229310211878527948368288465710150749350259680180404350397695992560938727057332747449332362102297264201476588713128065051300516149895099935466085441930582683831260781815610560917793012037419705826994661797006060099235055827143278897419755885775072939678387622035656209247527563441724454072512329955491528112998146332392047707936366551181855163191383158855515870532377712239432704845200598126206458661604551443700032518190324613651466331955991754396463471200605878318095217800842298985124107799027098727478019734008441433948310749586184091658031218459004927706277075903209000276941972032130219604552696880766428562030180587410081856852784188634586916135273470173489251042965924276737599657261001961875914121178415380093115643443118136665051868901987547976954283924624904954237270595203856420354242686768772911311660596252553672854474793563150131846591493652058407541628896544950104763914515297176787014454162320418914472424155814853330526249609077084805183995565701358711139286683262921567240592818369935459924024642825097262995537296216365643890215443446365380482655326254949061453660914505798879631329127879701381559706881220143118389974009702249855678603711182203013427936522935030479011675627631765598455138876323435628395929370943376703564768322023124036522505405967076362601247437321662742276806976823256006607018356237155903510477866495983589599872781552743951513994914957634960991078078577631368807826131853506429712946374806402737161163028962518467313833134186927552556326321595719406990828479213390996193140814606818588882725864774314959357083453129277988984316744668724828544516656699494744959855943410412582533145804180493198462810879635064747454332132726784983271586335034440779595412732990095656892897864958760463312463719163977078199607645283202021300053845939531528985434479811793163457398103118404867965922559224983030993431994040890641341103984009448207084710096244120329623857335382211134824966466042930424077676094559014778949457459827806416390506350291588099693298803672587300062218590023700339671951613292190152755897305438173460696370598102878748788282963938379873193215023543187328968297524614805917333897276308885948048866011916714220761088270783517465191644191086304419263162429725220190980952317695139948064744632997792510136814645212182814401809766462204581491310987910636866857448477046355504248400259053518030001361436142957265733175792797815993010503114365912415194880872576959339118033601706367716801080215189250922421948834538324230447737156358555903127280341240322282086747544987304376697142437355057208218871303307970842034735493900537837566182034493102767699173619523145586107816645865033599709520356518784144709738335793598669102264566583306722468485562199401210289622680549244763572046316451542680234453789375927548322398125667148760242142580167675314840158628990699019889830646481152947677948184380898111312561423358887536771391345853433002876595600601087661304526902526388488363108550871370199334625456900149523348748586883053332136216148549440678489687057952785152517522518756673925078917159096764602808010275295470136527852928511331052729395059638994758988136264089245391661577521326030804726224613873822453616385801750599586074080882587899882877361274104622775199839982359348030097357786879136888713536116640662636169577850651052013187276212564935011814835605377352370127472286422285269167456573487425049983866449756494422889204675676612286867626593206459635537030107581850728927039256696744641025163957473693070324222639958486890019866371892699136760721976614558890776035538286599537410574215610082527906648861952472635277556958658487618199643545584115329112973060202767291866870203771304879591003933332037949304589349532771572893692948534639488686879337656351111502311948029033846621803401156361531967177466626890112609807653107011176926348263785136106423706156561567636166679772359458932713764700685333541920985359737172192028028653418337783360429995921632433503450163126329162068308900893444052722003554294201331702526220777770536685898029142777642670292584764483635437095284146114599761903139945175840165044831690178313145868610461078250097832877702239693944566306513179276632033713309650628502676284707182196344606528298980816647870047646516036508048187786362431029605547622257573117604395121234768495395204978605873312518492031595922755226821900412384873649495089760140813862670459822315882895090102416897784113675298582057422944702758248322503249649826199458754549850032877972774590991821372783521225701459167982835510051626502835427330382429163895519875768217174896254355975336275207703627605646486055355359235429153716460234904790444538803526133346607962735153259438007576149064504876290978570884051589338493441716099185158622666781493318373375295711827698823199581548634665112781537434091717739808623059943983163118181928737494461146697828144449400595572609158806553456884376626398063824230650607732941253296230741925356885142750382811231980066898211147475904009548984857644397281465896724384228470113618537048159984101270007243125315305570257835679545926969328783916484073859157118328133079134351786041780914611112296040648866199303205286621864190039760118572627660823484125024897965593764231805722854895920772209327986758524532487447839551973027344423844039004880506088196746650296280048764479266156871145429550232115406992890442684285970750606279498024571093244500455384625555561180789552341080526359112778689793347199458345588356645324342696206866900804881001987205748291025682886297128448960404211081956394169228675203911583192738924138734357357910088842515262354886143587749313707233326853354188479211940079400583576051799773387559720580434547052740927627679654029029974304163374539359530313164599897684751290971431237941648978611713948666379977158532155812011456127162628128798955942082297458631276473385664804940498381981986162940838891596103215047670242051068731607168012281530609449112332338373288719854151146431160295569982954826356176996258049961786274511566403083958746178932421455959824265081942156880781473706293803665873770005793475205945877981362017248185185603272034261822163324677922259034749921357416900283905186828419908509717704732333730395532197125150660139172617239493322484924133941725234314930688101379167248631240248340795899900389432340600822491102497353262110868436155461204569296072087803081930445307374861488203674771139696451857973951127648333607204416053508014281966234907591715538705828388015183408329176087932892832690874580303265646917595759987477120878534928987079807124759357289736377749422850359982837054859498895744526145853666912966802769827882892585921637530849740473595041059041028191506320464072552067286271573679122607367763237562997463824750422160050118601201931599950898664392782935130676080608649189491553891866654047858538413376447406375055210023169888684902729437034612207799923119668865595503040639071277732743727694372877373847534766991099947398424077487730723345093237236761479485059842534203798088571947350296148057017251568514797119465414144920803654786817348559774415895273820970704257127532962900299892774267115888190968742963863431455076300962920344071889283249051434741713402562281794361460242962273961141099569936053384726099288004103301732117416382377078553776857195371338648394409699950969918413027341297286257474512574562887254730623336177622495757381341588594439832441229370178728760673931117477872626713845774897335507929257130034740173758877908169291693634573561460208284779285894436601262079002118381687033757963017517877462572274260118115176621931465270818221462927501535011475976718435109697921058332119323893227514616835643932274567854150363934696927458713526016338197940387594165423481842910616118005984115418954546355743460870493225505060870167262016379201024179940181289445584225998238062176387718707047081413278973408284470323799499094831669792770770287973120489526634016138992175839217966375391255761897136427955142653125981955287523664903238196774477640031752836167967077219766437547865417948281951233677813884933063139446219041402557733863116413876793600977767727639942496797105187756124585504596293681958120061447496753569305707945241030189335271055544606249360981613059178055002552327714557220406247840038508417001271591082957956089735457178627907776708213535341497144070798732726184726180228142641297075946350689823802002951929570133278070152718885704130974455483624760004306024244697571489611285330443213037802704141877334416456570667172748638191040651636118385540824061559049996651113624385522713842647991358261838802986068607514223566282395730291172827470958770210327027490813314387287283360349677975675963628050628747929262568331874350980871630714746614496248768070432479928594712714368907823778042531203949297771301301143262823987899451507333680248327792433884420781045484438635421987851426497535502916020305986170075495682047654298499422694432331621790365740215090777849096583764709634264476058227842105502071468341203404666088337588354599893943072372746415997609985419744484660663396676814216352505046992276625776550153906955971247953827059920707511934041832849698623310313935273239460260286712155049144833380451317584232632396318858411078995529659597870966681885547680060972674043970769951334098235061927394371183480288907929108189730183671382461673335800036743191265135736625953357270740659125035765198266330907983231414033539149165984993890086594578137898540222627377858323915819262600395885111590092013715464594316874861442897460873329340698749371275746628769239569432639493318387968377344035640496687881011568215912068629613467414793285341597207058730264956329017121632248314490992899596110029102910425477221932836318611335985563630395244560562444320408134503976173555133939190988360427170039044956516634880671234899554423150406436993948818965912630518208397766809518659343456736134403844462917565676272080970810485086088243579583850380362229811491518049342902236215507690542757217728452011629070813758196511282970040947804476158139912059834697667472263402363021897784444126447429823235611991494527763111450483128747773588961768229762565085780007015145301240423911762259073351358973610611776137074799871550260565211254294391218891431202439137717257202918634562857348162693621620523140369349159063529819227105367459890954814154759091838771554001416033767682183670372680423708460249419179544754304234360830491116536758592123331174640978239715977375316964570650912843527222974640624954156857440039984421303767411157924338640528109490358209555338498581696343348182604949055823515987384878521667758408637013893401760361511313000658199134333094335089182773891230150269596878087820010860031048057005713020155734200754659724682338826498477214028662605225280577429343256490896517357890474135052372756328679942543395715312999363273899506374057638170549119248346851426971080240407671066049480328040209041313457276390889799541994937508360427659666833165232311440902690909316367974992558062667398970368910078243017117777423556346131602848661717354365492834016218375964886368484573344468303950366247624610970789488276361550436016966467939324585281821474744816116661535385998188681035521473709135002361853413662492955346036442774695353844622384834831033586272602438772270639269073087572774036159221209943219274834289784869625382353536847536411399615887470533349355905133988849003752407227862863412942192677602170401053559361057164106984866565309153077018806200668734428661988091704026114994710779153850315673260928192263062021424198117249222013462688463843484708160679936934416275861754926072371764732582330773747696750785010574296107296821019996753920194675391878349169668377148706917789273673212762837239179638954420169487508097641100284496992993451938138808238496185758867695909543747752176051389045845086324639762158608578458881736922299394896679129325628841532228517992808466995209397306523313892398637203021577165798952282203610561379835607618169580777068920136940723997720780030195561316066938139017667876186766675261169584488820274311749841416898728332793147718374052859537054194607652621929124735017820939392653759480569355832298841444216602986948109092904599650653591253958241918234618981438760123029896030781680331098396932736794713146235310364743692973264134226972176355748400674509758234102618253472782880534517943766556477796162654068286169633008356776522760001138585104688492806926536563159442628811842342624939338548043432683959243013882281358313281973582555488408990958248814265889999181275457202479086071980886957550512287007346709221058248682405127624863811608988149261799959364441091865864905167523680352069381151514205758554397325826279387774727802842415334271021150309068305096902624428366486473394203541474402644549908558384582820448255981448689348562965504330719713449756508729253330506199565312642724060333425395577449460433323396446418757600006686261320751340834143573415858528784117398377283374356376587602469261707676180493654106425988791461827029871979711290119971863652471425599204309144386987168673825539788676413268755010877379470890694411198895108342742032685529017612097727379110730872205042901286639649840095179114323683219337720223599793038493355887691616301808756782768823747375130890538367551174152722120761933641981118114157119761623304953742595932673625143568545057684166433937564908708041977590735169426276102030506835104339182696771597810000629472389924274317176647081275501112371846055297211673040426957052305151913420948658704781496761202091016655131432564681489864390922209176113952122145584040564137981071527387187375174600822049816790335401468886649086236380436063005650759260010221859814557452617328838697996799487435092359298249257067748913733404886984282733426291363583824298701941415811292778002893802830338894185946183366576412155283644118718374207795474328653924306369040864167152393518286056030445697888333221558886204745973762545178921036182514383534464534833755085760397147643506759080005234503785943608017554799844078636112871176300570090231822919814843340214712969374228939363975360973843484974385521180849474575993052746270594043986517226553095084501454902408863061932170207581306110688492610841679220865185703181218957041724773392885955519730215957797370450549543881469786934347303402771944040672060917155822666129611719778559657767886032103893988292497545210431803425815778384779562147933328373179556812799222685887356595573953400164767505227491378050817253098800823783142959026314563322004658893505591636723313742707619068650965298646530597073293555807140424823796575079104886192745465893021495524486275804175981434796840081181146400943823905169366437754496338013407306934993866525878211382810842060557762745157452486507374856663172182013923478194678974928670218446623449866386882517824111602820913351828932167349880755083541786697072146346097065659372903115374587032269403994176822674854163862782122190571507838122527436538716498099190078310984485959274962921493334146133048272521772968915789370778021197101267193355962264653159235621394356300789495961909978025238324598405866868584635103061300281236744845820758810443697265706941100339289568024650077124802390087161119582280554699231767752949739429040861747018037338223057168890951621398339668480754261114255327943825153808463775546072552911938738567609017032928745611675471784986634945803819171849113697297687965265587621903314958684196117830698433994250226223988957237157520802011764316454713026328093535336653287225096833272032388397067616639195087403545661842198375973674917669605706444386744903163734057304215988663840271818363195353866114818681363677730065228322894638459173743995302632466245926314327933134367167526338337859557750812191865803544601048339091687655293327291756104499039206437001239064032717104400779337432002626327818295322321778465201253249136273708042219097633826487126579350019490387793395203322478986881435913965731599568366660265643679845430562400943419642973564699934277251550930537484913750547892907843188043891027934186381515294701869468629702299014960228858450548184464555437808511427451984252361481590937797680282141359799623125423858682806169248592563916964798969673989531035379613902404875563807904270836164802433465010131368212710407607560343009425483215085350122764865008326730429410911715298068378524640037224543792965287386026610309003207085189233416308537068873728510103645727673289839640330244198382013611854946478461627335924400459652387153589853935791103638079780065426458738058291604197197815385832937273667229505233906667621843242249119736192482453068904074470842651560066813123322959108492780726057183108202425510224494500992172837423867244158681778040374020576822718890928789505941097026739778460369421548255242501744853009552251764613039602423078093510990024933902086409166653580639599891636646485453682411709731379026898696268993114493108641055088825852107614872439795096642635736133400676274319085198644177412127479114616179001268427379270221275981704772660998951184338986852085046072152893072501409262808271069058954658120408223348897520004599262660950282889479741448480842300171160900526433414928433611141434099038849902254077556366965982056791538983434074345448917892658736742653132019187540253677554650746093352454077763726876546272172237218737230186349454556553576990469205952394835850555865692166343424383382548711573659363188418560728440787571029173218214953925717260206538864341467645059704931959797777250480150809930977801120072039165243010887642339754041303383552695149265542745942178746724924889479079324685366612625593929387142016697579128607591468587958794191399585732089317385675532278098468083635627517349827163771287758894243802551670757883359939470390181785728678401183933668310108156070580822183086957259204099228628969170956574207634112092332534115337136274070736156156120182880222349998448229393906715647910303108087138199247073538666312643878580089611799390733581152878529192476888038730033462659824222913307709224963298585519109503863481761553570150733243864927499564577834085561468031703455626799242217645532985490064025317792407250964606856298970351709912603044499456229755803287446149909387686712668891517183889588968486800481463212305893429709551799146517022708779248077495124572406298688122715371347496689844457283170926608517503177985247337592338256009022417798719159591313081521973291958789941775138513086223378504336549732566641552680139802780860660715351950849744150172448136816080413608970662293681103812213908810540761435463646213398428452497972450343796201934363283413649950133973627821769347766259735210807277161558628212104567088426940056220595804581601734215656622367713446138929595222820465417506165250563592826531258349956783355808694926903969599707618427625388390534746745828606227021221101885877431842833323421535122316278080823551762317309993090345845073172269697601302759448651534697842737355874244279074231568872346384994566147880934677968956544747555998278547065860415183520735991937791216085349283567102086906755906949150190082993731451628071121149266337581417984487806016167394127297520768633331764128825912723435724764777678782924210025337185825070676537441786900976124114256443093167332660916269043768349510107283518970380569709973554533421159160876973889962975408432998649173452908205501372787456818584483891202063872438195493688866568458446109111392025724624530811942835635503641991191235349875662782165759839966775666161261710674016372849961340836467908412727972555943897227122047500896238213636019050622806774615130761322717469582571361323189336628843784488303071214262179954491774242523101852130118246001324411905013397232260588802869943041969029405180968204861849475820801533109208882866419749225851928792967392141705180790900488957132898839627483021839613389409664922688022189535324202686690904244899322946682555642734492203831952426332016227341778399432952373840281252176899572822128930846206916201987569578413480057248063498947104637971016789916850401576206267361243529179062930904258326760034990813852043827396029068139431862828991973035142080684425721667256053323896801392027155279857086058348151064284238628842974465282452296802219247903520482453433741728450710499907291036964965826109197623976750102540663307671675905058979618264979068660538658937573996339427972188932742054434633157141652636412291023760211178535119470268852567489293570985200584299740813921300112138813200374561641869584883238965480339852095348618736936618698044848393489377479081527385382102391966459605060978560909226468281479047836071715516944681806136639334540115181360565944209862772749824755774911375332812218518967834258639935934208516961741870820945177611763797019713815121168637788639181447424995709971067815694705388524855930674544033485960933314351934138030851655437022190149147724295628069143789840459629562348895410694413235510174396909334224989278340209728397182128134990658334703910055673716465952309236947966160983581991074885982936052269488361050236850925234588628509554876978826623471543247399458394230144350738336762371943300323471930830862057320268553490871324360053173069261099009650567507226680252922926679745892559755785427745438968311169125987263008258918967486303909900918249686848065351230776874782360446064417998860071863214281229144163091581246845239108822299952047762534606509552141208183784148998766601805026499146359635720137644238946313477327012021669968219469856199220930705410490130612241503327342030247804097212360650782155512501613444365150524153839114778909202624074520258498220792506564274333015735606140957784856810950126506867005626471913046780678730254890521611723623953427996545533933263866770575476724160203805654202448185055912794024738815135132269822513008297588357944026894185266995961149392457678802538560201175103520885634587901210223164969800479088251788412935789549846238015056876938475943387505526193141015588411577484017835390969294383453307301834444591741716546208800147475245672709702317344986177973136960086034937541194368992782671576775299960104222251529827426499694341159994589774606004900997483536785902204166526919317710170804298062628864773571308867844164991725462593282063369477224943944050923749919935416598548521407551267379058332352851034839689112292509129195085894546709326105662163426603804227009801757934971864881075742858000555703915921151710469137493818890620427156137006351591297465568761143905371303477899412566699228589299365565635494616278874233279944930666792536592174697230248565842628766821894946040554084788150798222611091544206006351409256762532981085421020635354576016226072427765401900282501541353044640246032817630268745783638509101832546516323098806126791232495646651685950028328255936808826211710458973192449633265454897974541340517194473922058907943945639552096146263056682999565596755029112059588739574464034659271028775315961172096876555845928902380805038176122950961504979973508986687353067910444888736950930156413279059425089192449144604297918561545384232111414912997328235721981897369199553499469263471160669054338814419178155858402089612506441064034344280978080835105306417662022230938296475016219314865271077730651447857942543413070449601487842508833352498048574245936340167178418037402602846388099985649199448663459766229382001191676243196220462168172836358834393872259914579693111857911127330171041535546325083001551305430266247328168911855726074594502934247593872657000263508647456739937565051195671210223652948512351480838137779351414962134342206793041618633718281696059317964554206980177434916645889953885725119279010517500779642295423926291616377469294498454276013984725054832679262495765202512815144835705381146022697179211603114623418775493863114202854774711592349618217987815883110509424202354791835740079995333180043877732239149980629243183796555141132706387844431736653138869053399257196407690741993928480425048089605486640027529013037842235122378608991263172284700074168460748808482614869085126714198628074572585112022903274294688459965798164605661962234091732018183094857203894137643949714891261256742121466363555523629204520471917735219846926028736695429345104272260138726841282891081986698389814977424485075508512548918989585437823593576968825301144966864162084325630570444480986169175371139957965147555009524347111283764056642010114882921434421266634145854689329662051373456425460728447223787691659829620012355112739583613662621382388032105618266829726395764280478207126415109363045633807635309267437129949821382598072251276567427901826177633667236808141808603556257852848457140452455755881934093394671192793331068442759049809499997124131554282342212575774646917979177300849859053848962344942864228348300653922153618662599692752699802722368783930354711743722150849365691987746243479995853016238670576887351282817808450862634587150877657461664995489201839169061075578044071604606800639992823766917888271494670027814444025296459084085319667031415625531039706509810357663141679357231098851883288364038405428866686095921398040572440878012255402701024214885052166792177037561620535282274071854851366204041888127459871698393030716124265624313311498707945470785270884658405401285403827575914568800918714123237954321955239145505759662438223590714586899922625364224616295404163160041291765607285699698610619760832445519758179298349162757058021083316884529827872177398798802413915790631982985413683101559014699620910652492619500758549272887841426297323114393003223007585501444410917919415362113378882335313828311545099638779929039457061270802133625051774196955413875075248563649837032557733552796791180720460900087364234779149805054705257130315031168329600904702517024593966801830708568404708969359903101001702626182905304941659494150527680403529745179013838487962574743658576074919394088688759469936658315117345962532759151241092789453702081979075248349794782988939166399943284753537780808460719609042559198000847791275150412305452400942073710984089028643245652831894561356793570613526347611633359997948694046140236031862577064292782231175679232856916740504285703490653598901419240794410478669828746293310465312101585292992197654743078097501439070232953625326007833164224416804309931689737284301668593179492214178138418916116088953881288039173953148377642339701666554592960453298630721371886363303000583404869093163768369601229667974554020707008760992233245571354314907258507388451397308647027781525731534980356594348545320223819963812953738771093239985054113327929444368794362080950464331630731864019516132169245415453057942593491021921386439475847404155531492066886163026912237333650232383380384461904461225014343390203893630454497742804941491515900271214412411080024852643634986287681804082078352677978169953440310044621814597956242414607708033537994761119744343685414050053592680363955080709576706025519621223193323794786122656344638363824497230779737765657130118026202540355170373289069145235730905441648437827407556598628394839828853924977326889163469594134264678653197015875266970980646874825376279783221164221370884451365058499208397169958221708241731862701676018193205664709564179227556502434151728918786591070386468360361894979775006671779021357105391872963708223356396896834073919732984195227232775433206542751969817222510551644758504850892263882477346600333141240103869633427082410261753244092827788164542688978827143724628583867818300252699352464746882512889456445805594788011280933982579721899176145321850621273907428581894363803550276126532256581987259062927492711780803777633740819887000467041471800373046974896523858005942879630686080174664337501331922841025532191658100792500792829540409031934909944497284763180124209576796660054188282652079635751696586159411415032689655378367588253114476399451851925240864757268350589090482013386199618408218186172813466960213214899576976226738513231641818759210132732542987991197703696489991177119572758292436869429934223141576728891534524190156253475738343576184669445703202060008143293017657793434541410386855059010299026116714027095155995980439010981751206431087882272095357951007958289353379743277135719096706631596399669216795765815904894929577787381414707253941441843941300096833857468536092300622190198025646880564300154978272375539187132210720552527800897153003444077882136325074214584061139758792970149100268195065169601546014153070702459303278679470341045115840579955517216261046366376433698232731713892444120230196253764263001323701059840780929867393201621345910160082765338653870149172147913069286350707331321920145383146518424547418342248069366263135450807389610310967261390632225584003429636291046504143760525858684046365934435305805697984542777412950368800846602355545285329379800738594037916372771919045361546879479702266795101350373095217319610258849533621228013542790345460984722149635251299469071562764205690666493556771751567732576505724324292880117644328744233699681792718060818566075135166595662922631380761757144830513268042360610337433924459469282102645985619440417934789477562013642411574305088512704218638710472494256146609923318531215499491900519164356462003692243088936786389773336379108816664731053551288101925345932178842283693529406442246561827380523969450840998638111573257884397197108181907056969909875018049617392308503016281001621887517011290561838370764783711393429036639601023142681813580344857100559371605640838610632887707146811051885702885724544734474537752682826617188324610176534625360588901514504742276619330058704597861372419294907528970472104537590803741008126297065405625608579500063029456283643574670086289591060634726968700184836579998197549274511106495312689134399816636512353335053014267140453842339771171631525080644460586676934243249513651298494132322007836505902447621485993972115031177580310113083923871876550366474788786098541967216323186276329479853978269787052865059772963394696301208703947913664488286501740021862193322251050792439586474272594058472557852858419137686303120666247431469604859768057335422068764184996411646530907213184343431587891714459584935413459792391429110006349000589114693163934698149583916904828714193296542792347383484815689604482082034468794083337488762224742336356785565164252166249875052979659236118516264464660469815865061305646097775716923004858119129166705367226283454438308059233404670373046103357511207610497441125347130155544563541753668956851037177258741217381807184231326235751539116397049796280806901932108634914101385038704491947775250631793297273301375369075397948275886028137227647721478822355438144509640246378964072932967180844526623073730294685132306424281475977005196899043281154520220685319726798007632702321680623340855604313958622207436220987146334118167547890258806526978287626272404223908023650036130658885272098362269758758235112061250844128733034094386310410927331851607547703905928582067016923625557069667622691536660290036910733812645130096114676478121989968074989368643781830604762126759730337832716913475975657854665882341473374062633289558095359466605913533259849190508460610389356828787957609960813098910844860395682836190548632261205317610254463145734685923513059838641687964457823794525416528648114610308264593133304812442452802910328839671048379237625026632243449398209857284169025285431236451145983660234068130392101405139799530701443375303997641075968089918513933738766798363939776680319626080009477668249325731873072438520634256042795971376290336936330778631147900510658107729846359787770443961553008169524655544705104405115367339914383571115805230678593966900186780972433657994757517002270852323807727420896293325737093979326518947684417157935725917812510077265055692430936853617383335347767359697501558829292696885617146439036598807695441503009166692191350737675603835472400108333859072325706160530840885327626705279632705161454065530150844454566053694676864133217652344798489750766153098503128909603719984340090997429411476847224230545256391914755203330677424626895534427506877128934939229160273230813908311306588659016652395000756122741027913041449809255270556368767943561565773125226263212051459336299470430409731650906408091674769225159055017666876265737193967946620793352687831020951130872776860192507026809666087007228431176710071535309035542448760866057965988844324151801280005938624618505438556778085881593202640025183356761327300956289891324520221055392781738773486956465435833258313047314367596836947038156077330100389895579619738619626325739179612835379516764690807317456696578843101243443285672839160054747231635826834060103361271737559607937195478995279127702870720371817693763073502627162654487860431779510272448133688062153381996035754606926181407809074748474529644875436292515127209959031358804957277751511684590728252343058465063525148019928355751033998325036523703068534915478440057426692973906882654501320109162444376980375269437110512082592846622464101367906503281396850109452981419351273913245321986426219383712541843400358089559437851228086514575817977294449165929175837526939635248176422145784383855977767787915124141528503666942533896253697621261246950552391509239618126727022073568624528753785309364087387949244132959680748960578983806185295882168596710779252854127136811900521660032377280040889400317224879694729857739605164962783219197351530769398733272500938115556685628452881315852323507954941133640129125433174760967713142119042946264442591452001471264467360659863352384270915899998802782204135468554792274207895988216286958628251925176197909524446870538102671643215038539030552953062979983272199938456355866721678750244473826240897346363315339155509186527440251266377901802667252522252770174725918920766999224585592394709712170735623398581945687295744166965236517817381935541229478504141192819854860000871218476304340594604968028513928358600398327283501450257365497448628783681549134577029904339517624781219354166073235195520100352537140373613442256114336857264549552417656421665976851442844038005670700212851074145333533016414844678962791694302942267268642949960348358261465133108859066212845638084701895323423067846112871558864630184063211508026613866589284402185229034717651675404865454880779591490072571727725153539394049184436595646670674658876399302277708659791878716980210246153591301009089081685245270518858690932610769329035601311752689328620473146401973633410528860861666941577235858305126211437790925287669774733983248020522134926271006168464103712260432266938513994894684594467652866455823399673085648100754501072406767210805293930936692775700234391806605448490640716233772783962572034908752785145413673180842999886564941461966658879316488542625955073033244308101995963016824664935392840370639947772033399091666733627062521646078124731114416929673661436928215345921815800477507575740214805450936095808756334699736927079283502329577714489820143461809362085753697025410798118343742904093933232870906029861052637671911312284775001821316309839716467345487589578385379062758630726955599318142817401325916312567208274599048251256943898585895398860009555549277519984587451382927939423134939304150464049637048690351489655139085401621360603370228949190804617354648535075164112443779938990603715280742370675264624555424684718785864737866251634704293708973135102962262766243861516934443967870812033207275397595819629955872228450076086377701258810249003248032779068449845990500850052350827783271356919499831366814827930477636170399760471201462008065520283246153551389577049806795105443560127768312702178224364369377857077706238533218703786673085802926394410145006696475076803585645522663003723398986762420706755423073521632236995239234754780679168258660755992404922561908199397343677385001459847255205362094544671940465418817573481519149477993465939719159931957113614278911478015667039536655035560577771246889814057127433274249455392040738648065157073257682367734802779057276767056311211951647139070274090503826083636282569046279490883022737670117362930721221354875147582986860746038136930886122744860496814911475051944290613174431786424195163912677595312809383693304383209393480754842479153835925227606131697575301682521444803904227217392715172844870917029813763813803917555078887090202548544692277186884134040683271649552836646700841150438235351841795722720010813467998527048463093172110738223553619434909767166145142210054143582759709334529543246064767604562344439643648754241662849952276201562193510855826070369580213900807948009008827944930200367453926043909822887097704874346473836974350289932206057776089720115007602570476586343476065005782954304182665973780845685519470103679456414272019972600166689707327585980800279652349601289500317283246080111417211326491626022518419535724543814649340760207746170342264476172255956627601472270051862732767440301387152252054818505360002826995527984626195342731636389506750752328993225479798820152071035532083871297838534415898559995349485270113310012714796728320025698864007704498782730282068072010408848102178419808945660809257395710930727218681984407904578028708655341559324977277220846895887054129942803727158837960909230813587682522169855221840251231564055384247897702416559383709186461123422287697773346169845842340304306548317007956125656768872501052906867101150821928840029474130394576946884529333545912657592686786804083293116581687500509252856484993094305272162768977459630413282265361606303417072589863323937710274564399569413764714579851777528858257879124267477379928313702163817227777300277106745783142898414005832016343487033497140883093163112344151383968708466537584645024781171810354330784007293335423243553551804490081318930118068986749282794586518914023013772768566013766467664363878594134311606375474864146560956735492748651297306266094301741136762251764154015928385491190557112872804598137933134886791436296294986581657164900620648646130749463848035341375367772640392094716234307197095202929732442950487337841465048875186801581365557230013960897364226333189729909008932838038517923009675636588369479944394573357096194524508439592169951469895886541863152367914116861855569365999704209359908913988021153713664726894435395414197240598295913105047660183059364187418309105000521092056035873425411420033999089352193599572483864343149960575529164336315490863105554672458701414618074692272697637029493444056625694991576557630631203676789642526510629196598599620250746285271999198000740360737359381821399971418408129656504665363965652529301979606660719938178606320516268224997716897776438610595614757080902581790009354364401841118151146922826141093019909470043140827487399338180350783787366534659919359383938935532571562584166205303924958901140190720920559675896956308145611807297737559328510115061972249220345381705732198895925148118513417644060175480058585740306031515567108230197191519547595128527580794785269879732334582602641460871829695012774593371354721408174380353345825951697575619656227442833021796226606139328677547081693402650472555855173713616873393991922482799213758412504677205973504507828579211834234483513724522991297652291735826496726259311247114632662563399621672475349040655497511632485916601840634977035327387333329146953725225799182066916911462635779598044132370533777294603833302271039803132450312291359262340407422242229161352583862850067617070485366925453882328676878287906299143112814829533300889125439578591788918449790667298630342110352694649852117337119182268914542186036386199800228680490247594421778204837245473635930243158718563447272398995152754645269032042423281159587216828349894358007335664866345974073282481736618152929492274509737897011994038057535185085246122877331753117139106277397849354864593913456918420109789491326003948861251374802576138774896760355464527745273973733948450945549406989484346117980222788249442908419385056005545491286509251732629895287765278708177847214834327938402454681146799630586844466597603422088094535350327626095485930498757542989983615396657882804315783636612118971148993477358869169221605082446107934017838188664951851650755603112061970219733534017416255818735140990122029655504490542635072842723549403302963735693237050262409405548820962772489493762554290747890565777972737350483138312287206690648843150535387634512546077828419224329201412168549838715310393323768038711340308881378078135101148830721018560319841431263244893430940190714979819107319900286693407866511503228464322236356757106144031267675110148999829852848427222072767421307213689291476244123613879854388523508387526896299898193552258099134346274819015458265171624769248099964288160841823518748174668636101087817772069521187905697164013392585201144684756705415267831354246819750791907959612990679122705581672056924941160174887898792277280635883391091782235868814776929706978426429817308818330583981836225677718949629618870997836782922470252141423743298925273150654438691092952909386070851138823963108717360095157112102668384793474115059385889050932095976339379883420632632244517655632583631708417343680944812648183985468562236854579003060752685118308907604518862365588605450394621462878920240222580752897096239236083337488978144925304249227017310878405070178408853344220808494676449187995510340883968546459302223640650773011652232125984326504339794241597113750677137428352518275359193279509123959615716139601992393182729480120566143027064049893713428832098289249742144908598546259505554447077805749917549108603356133539510388602704500600412947018843524334294442530514209140716575631462518839502129961090293785164185416971836844827456120562599417518372859631340432176445469486641419954389462316024075255416723867169080925568607003347396258553545094571578964013292063429587189898141403693077819366803808767082791221631512468377544328055102185790182745388778604570358314026920780423183507803524158788050128412499353219223582423765069387149446922980042352539337706241069625777789473112903943724052585269311395670696741608515988845233123716950150915248236340978456191184348755485105669428235624070686911815096546439534270126576664653377063452122427082574566793848259759682053111381604298401153245360555888576435851493966232528010136812911150159224231049257106890275592505302417689059283801726780765664697289382469127369300264952003123551665036046519320171670551145001610354687931225308803693391168916649545001078240355401019888456366316122453162149411724626776490577293505674268937968948371718218848959426864443234566027378338073442669291562328371689374023257912346821696682943292915526565970488674938017954156824031557800932923689702799736485584190835623329784463078442781973399797335594815777308144328058863951692286831712111067623877808863213069501249561855374156117349477061489890655044721937118580225334420506751825755698799437215844052814411223327146951182709529403505381752775439143325167464269381548874187633817239451912310255318507084975585615866280106255410358935269772568390837158323090720502613645256741355813967686000500941525191437985182710475931781007134100382593218577707576150219296644970293307892733600751879808212585075164111330762666030360770654786817339900038733306339243374707602985397451877928421813288585313237321309262175774325132600498251631523104360126316757760190468591895010119824366250865951675039808909913455121623020312155211368042542977115945839006943369577124732802971147485696446714123771158889850969771200921198532276956581551232465677306106490104071182138831345140709703466136175610426109538163774543547451341488200293091689638826731011372185768794491451723709535991905829086511613778638670693422178120228987536301714435483786292631971647613825798599055628071280037891394226475893152309756691181587833785002362681645159901891329815731073044109102575448646776531261443033238827282092835011435019484245688103613693798328415706055193449101071026836664737786636271347743719822839285937292330838661737594401705899875368572678499435852451484790158045184454973299773504452417727833637552958918524336299242965830327611664740428446346134930403966964815007358515564758650059677169319770129283520381178051625289590082472787176173681757586027122571265245578493616840595856821677723953952084537536672016270526071290192055224118015015930278574727404372028936810499234261594972726465361218260098478448112576730696474128738150856965748201821178225914052008177143397055678955726858330833793587278743338018904323584400138555673813889904691112181917314849481147576230197064686585672633174298247945304693391351554496981572133423468148735424851862781699793484938026753109273726004710668188964227889759618590155111392502000742438412221060324807412043701753931835102703585508454637866234689748801042950268387838596130150753507331603154206216874765893058855753333893528533915510389786250303220742848623491400332424931948824913138887298375580274676737268054434727171956478923213000694252448185491386403465187148417014532177967086699262590628574344347863585314207266770404900865795870296573555217841796847143831188876695607494247439396301967114360712494281243102933070924140426093292493063716580629913676835663669911666476971143332679718916902130826144084510632292950658241714100617612254643944480927681493422853900895317029604365198378470146951292324675361338468397814718668075958362906382792736788421471576095364037710107142516294173005269734693848811763456702212963409756079154039627838337390031001943837067108589657116109273147921812483618781797459925827521630564150824882429065580931387933845848898378350779433511934057806534775384934673966677068268218560752839540132891854834530817561119609277496523508732959021929209362512459700616058147932299606750269696765858644322192542348207132829770980028249830197132264174762578007875284370749592953367853307269906588751341011015514677637980592627200168861942122403871535232225380758412092760291162905474911010929021070667157373566314106911019857084738458174118499827430388821964631479923710621998563742227296178241070903752876427161700842840297757721946719983743936130229606488224049542270147257268822276337873486603108917946926487931133024274962822373737574710191275165036643346464448524998591475585252237314958826132823330455809098286030122486279448566375317120437735158812486888224726618953726621017818798542329236354831840077463349494466297230005894667635660747195877939102894534161866828392608849603317102753109708029648028922880283301815348597245095413185152412437947227841754063878042787275949533890296609539038346932252858628029173692847180649527417258208338333062739141463943343450819535830010216677806895538082159388472293804143702170690696086282534236327461323491220104595291774066725276910594311251657953903373956437505138864571175529857586217030352587805090901808002331193624826614251212768877479770771310401275958837362017071007418264854624972040134707586054691022963268884491670814818945156117827580715438613111285655911127385288266635218456357981821977938334042310511234306320895613285818469204123276468577353169518759196373265655292449386056221502492253827954255030475410882519861565691725198673032637763268888432463436284720560976033416864984195702236181631601283353180608383051511897224291629016076803905371194742525295433910398530269283777282313461820835614649726531971842111200894237127060160190337012341695035683862632191047518105793199612152985961000149271424410830449501919939240974406504893923788443847148427059461997442495277577740644319171766883518653419288149393092249031368446548811089346114983308370626860641351043548554901228141240167025140828842021259139531792856978551620672263296292903405960324219109409252878598264639192508869937616314711656569979079542568755008459892310946411987245436753388303124891654155263517896088570929338198865323188344643540352357499362046910607714476039959524546090354899230002747522382549497108876194221215247881219549053108170965367969083343922049659526868109596799734643726034025134545637742713183512905051457667243557284873129695476319149566709892085676582009574043509482281911444445401828245899126731456737606507548436945800950219624222421290471352430875027278232181682129584866496537752955525256956808688092958923585704049358306665826768004467245960626570488549879195955494321164692383855159634195695820708279826314655402522435773756414452148999388819756331937479821658963078948100169156740017138810734805182066614357827236826953804454879225582366476759622451243181354590496141406056795176690145138175280410201845777032483299817947740906019375707906574416864755661189308470944020681637923451691782469435268956337692572069375145795669172750782047305750456053801020137980624640988448345797522198455697310962004878012137766883471934145493520065493951990114063915995292103773324769154017276867748608751642186486527230624943281899744575424502198118182149127231002548917468107761033260098746409071601300450696102272642411310203754494134647663069537940817993093357214344897937701795570126726032507553261394214577244410704241651705815271083347133041166415308417510069172632465313661338923186119807012379425002762522081910770025247820473188403932060225854934677260706172657532368798345168671418369120626912271724297373749768294761543107237010799767532038189011552813737627310661500073477320119046398244123297300845503123716619976560962141735209082880855437357066789139978843029585393214205206042016384146977097564750294401235565534705095427435910857648532134985788020464793507160829377599467637925300116399464097845443004971862461182239013297020600231170554209434882925920872021555653928495447008848047685096413648265127922369585460632297633542810423736880293680419813237526753193383419923532463998526530999874144045588119837681554242019258806508881811131166434431337351730824223207091768541882613694040211104956000871360532474892849175885255829270271572213052183842612424254273911966099696626388451205249246278626050472309369437265901736795479074746369674910796737910822477986613314264421385091294561155706368016304739628262866094695351274571992500620637866918987080280523799657768856379660179980429633642989468455395913017515953684898335575324759125994918299282401076045462272879747205774741758913232347343064654713721092084038849071925802247838489650681392727433627218849761235697870422986824458690807945473060572402093125850459423734630590486065209225169193002548315811763487205742460236769848595177446183656863357483734500072338970310259383744136864579988403157588005559122181861765424065226796029069043137123978505908744980705679531516070097602106785290640465853700565370232643159436534941138658383931513891310844988492629526085911817379394988880566025286289499173625826602853128881818458290638101459865651201316811849036429261397665984473394539805939493351137473835260871698307902321354055251762020325950930622675423021104147002642013336220297460328802400254808222016584773935107431315986351905738377483147293453251016433785420372248297068204056034806733206672755218326039805841033439364158038927446971244423954139562707869900319642901154233792254365934329136193072563554141840835028324533245507879347518998510523846951828724371661041376456858416368266624817822034416292137585757575835947070589552471741472505534206420640991389056253107867033422292803367300475537960831030589421584244617447194616848791888886806783273694561056915400284292247581578574589316462322016419858033090028619402398927886608207893381962907548125737050021591040435811270588973268291030644813158951133785010947934092731488146589590728141472935977065322856194063276934768354429568058733927351252873571566451552153218043544662957423603254444635225922929316290470718263002564965259826501360877397083964948192629902589035840174668749753397651309073272340377382829799368470177220191514661632049849480721064968113127692946672937439691952093406143888165991499851535588218362591882350338744208630917271029498000814016291899196604741516699902314197467959444302716118898683400341357890463948379365414622464800712425541591285116257287023476679768910155561993327216180474468783843689962483109900369823228233701533683581292521563513347055725594203672258278980250967942620364833155047117098586867701857867668826632279334366167779152261174394360737389001256091133834611313521119524256165736196142652051581456013595233203497193995064032868300334555676086285158597017138347148431228195525364503550099197849136901059730239093161352235391739027158539928247961816755485399692855818838355780699208845860668774191484087487715899922347171348710411174228666544309009998033866545978141201101734283054658112595350424108863229587536945942305058429046002862081891209491247232815862867348125257025263390911030153744488235288486501444017369128456157600116046966008758907793636580752269444580330744309911619157796288472571447502500231318053425437440698808331728307908907177418975369327547582480312270027122617228109748495343805027726939382170323957218440160381612614441841759162649855928651389823789268663237797183250576086326343779941066676914156711922382563761531020660474340522704237948897598172655984273682274132318845503533883060768211543542379590542272297288504061515595686352374011847882549643295218201851157560914176930973389211251592908034785122494344077980253565371058401182178901088685788887964490615998124222168046266659916433714969314083433416100995303725879066982038415861060715586753043186487295465118932237785144398284671922991272161982921950686438399894451224513019899602825356890328875987332931303690346751623493122729184304934906067192778088407571623540057029596378274558147051004198933538258083330015826122850020740286399739725385173222178982978611750283327709981812408011349116133960492308548819328016741715996705720188620235737451075621911132347680757551060775442425819874550232379400739123550307488199979286734583550259564697507060545098532601913184379932820631896976510107419800568378406318526362908089448000204940834781429137195320844689047947140358429525686895234329231851495999075998005457263233037191752065096832758221507572290183872266927318928590232456581823515488982215713243550633596382217377983335527985335027111144882085872506078372438380371213721226969996109129548753530389288128476655832621388848250350951930227714957342418976569582820609728039600166437847379382702287023698803577066822188240218080188647392873035681917948843339383710312313719792206055986091953750957765475913206905094716772336804214703306542691996618495845186122411796216126694754897373635947830616607707820470854036680479647645728049974567718860386336234641096464865957257521984703333255399934255808093904300385397820023261918942042198063675806093887581051024603069786386487755750091881075216980158890191199155128676603332803882689900785709642683979040572424389476136539113617745867884210549510981059120870711453097717154755875388046954876613029032524635835308695975631210721066577558831750059004138297364992088660263405294133356453646886134291123139087900487250483432644035556793993849827861603402768197151146430074843253543217853168874150702480962895696167007051312358012575362141122955080690576708586593938590136367380836501009114418447398390475072789319419449802237820170612126284443316162237085638056882857465952459842302712228780974019086254229328720319215739884194721795570490581878765835665336209104545487888477530790815731278286935267974167378673920282165447595909888505938734393232733887163902940926384308461616712372146431433030702783571412971850725038505178372246042378097123597137858863908686859975203587504692147864653682688471142851106453529257483679809623275956773896725605108964117263456106997045605545519377528090764647625235845451688738736551370866885607193047762147828054004407300913106772838525014456963121858854028395152087939011307302996707919528928145849504663912957141188132434107885591836936420054949389979060089996609296038275491853677790675859645305470268901960539307008815863339614698293508616835643553380829242049244371349681459205588334996436006673749100883378956876343432774809257258825710038158499475576122906146231221636999386546824475184314680705112152334772143421675873005251237681734421436479666209191144760109808252694620432379113231017036522286400540325878678216805616845673746076862874057980701800603688699475236924344680096261064147683464128286931314311520374929252236592280729624862953929891925116417932458237060780354242685963741190207078651926690462998747771522744415612638999825153648716731186683928088706071673839512330439069546103455792444086875494488541315318555619697296629734800490053248552921519999438879814467930650861035519413853991643306047729993491697625783229040815310186348685533143735683057724415266579805246683913915523457437255038601355347647678179780845196438688130336974074748075573616359395392742891880785259396362781906430125495228231536867233375275669780956778595745896282971581061276247605422520752808192397633599308684736902386414925197084624582781865488163983989473040633628355571867030341103256949886679927153843243494037550165555510923387943230831117854263917309875859192388203322806861510182373845337738104236140257146249807134060457957872909779348026293782655009485108707749423975325743112787219771340394364190333390551470516139625343831310296046698174744733808825012025818423133929437464440530268399777950914167271653236760576343718248164817402606481877176731716822408282830999607032570295164744080288624500461912601423128605861259388864718832671414561793431817698672640935011871377330589101009185442114870677239224090989507775387795618249545536483045763435457792998033031715203243092903177273884107340045056929236581195171967429142001407407420602468322677076054392345252750337097831470891197353509265563880054429667758938501593181288083597033940161852040928341703617680138558027398941403939229262649443962928440763913673457986412756597419962597060193981797308419102389694977224292618509622370289076496231342874655410943092141554002723739986686161866729052355132506138019562979431887375948182317194859047573584581106556885746357091770189973217866392623781311286205587856437525553759436305612504637150354134445373841481375489396789248277373660936850256362206413825326896208742399787828572267410865598878540293791037534170770907726013138966847054938603978295867004520025832603934579179574786354777134079103883047871956147431407052424789885449770840832684072713427703187177859575416891770366746363943571409246681466705837732325731622238311650293501983361566064750216450436336342608228944313808349193094937065278169559799899676554037501426987209403844035835447800277290163573819811492659779325114682131630973489035226444795379130744610637225809435276326701350386611712172527016801966666994040006768744983531517116254328461658185994588783587564675543150584016733203656424605022894330104177726230088872785504647301688380576419497828368743566819500733674310027250468974494595883107100423919901175457018995178667863520919423567707476055840960981520145930982357563295738606194103751556421349466349701654402601278168868150767174693952285853947779892672345227234337743126913434810116805624697134145544511977553414572905590957412126071813583274265000454304934995631263381234081459384912307863541917201230276897068345692309188501475916318463469429686623307391426147631050615078172109003748955017002764095961020923949543234606878781951825682651820199021463957456266958313633216548551375621139799836129811392390320578246082261503414807619249229510014332076790886935342201755319327448044820903982719454245652398438594726567206692781481604567819413647918344501020559370308346396698017957701532698473336855107259929750488052003366418268419464505903887931209069769638582556413670625861824726652535092442085238412207910754690993312187531683730803899236997182850985031642186906289342962062543709880972386653070201335604862839905292744159838491219780101096705582924683692891790975574604038727421363572587041545546464306493581172159857186545667438728654169812517229555850068689532679685641554979490979460652896175537515204810411456457680993638018793897003475513288641271989727979352564716531421817485424297882004175513647270853115448498438045278628679088892425516926644548549121724772843123818093707831940436081823148547471726121731917332599059483478082508339482223058269171674910119598708524266146061965385269502914282049603730071482619625145960287732270720915765880421375932649286465815645075456059193912296834992964925697823975563168788689887889006253879503794939801399311345316371520135615453014874726984924760272318780141117006689429125007355642725114090270536866606723683326282429362656434271654377115794712029659454104259729822620814691165712517076427223677109147583417342013345831332227855795983111140731128868818434116477826118548320215535443908990296733492863167145691815175209894668176705644740217471776882415079389112290102983052331297158150334920474255316467153518332546550786584372834285477255371646329378218454822257265924722764126475356346040957661105975014882522654951065251418677186425862645087841645993619098940942644873288767153639602608923231818221856039574012792473301512418003073067964557542843031183567711996534527838356422937368573733208889183710237745553101513706349595141443486945784292345203029402428948901357308487644048169190342486827826712618272464316172862958054594464469194207332760785957457593246313321128487141891114939909163187961008504666731781627916172036146324311896052347534135034716498655123994158959030010629059735387740657370233437061424604293162652910488191110165237069957112575707729329950394057859666185340507008522155054839283316111344913256333085055465080571169131681765543231492834289840909763455536471858422840053281004459718471111659977751503519511425633514129786513058604122080471844732910804812359763463089725139138321345984721725321360964234419859444449163768999765890713412689353117918666100417170017957845733206724204581826373497361122155152911834776622106113305766805311867606750888050603558206761809724955978172777482016180651636416011124352061455682875058945073834808524137937913304121146797347648538611105164242510671499652698350193741235600209938834284097529098405101208132110611815872457650049548623991966705608285775232577165004320394408934452521992573328776129094736732871613024349104571853833626417432714246320141615987020981379384200488623421644422230862850643145284341560666249334066407913530361164545147375330705321565496590399611325207350666757895936846936656120567049619917735151313769677605088249173476862486216332804480236859584704934598209579397555913812778116569575116610906306660358156957080824608963986769308898672128046822535293273615228935916226273969610678570130308600214483719393181256765753312101664133118807567944544930871362685493672535523290025147578379683169568210781508196138092807002440462666189323185692725589853467321718993965639670319114172119371937674750505211996143000523957288031406499715961910109846631895270074846499563594071431818524409484068502010828948146100241021078581242912910977666294938469545220057579527789410478203918216031072460430984871349572264774178053603371208192952816055486111184667087731652463881537045213714131427389943432206315781684205094218074261209598568623279097502393053962674732544338235299374989623098223988524766187839882763510922224994378276018047009276178052718460624716086855592182830908819594820396510607830142672993158894711843618569503122911227374041993549540210703417942635005382161205545375475823687747132396155785084389978097555176979069329747727366536798674089251740969013300285554241030334318607701692661661527301185161959247340591775967090274923105513712162102333309705253983378382963972194796118475173226357257623296474595519077283940162093772422238777559168130323668035587740673727972472486554049056611292545228638181366368267154075641528465894778303806340851514736114148880522938760277361398516829973409140973765591583640344021071591881469498102501454721027391217250054004542110272807070603885709797731345783169292512697153921725655182983246406424627925845396188842143403132080767545095587227814015433555582623372957401171585180419806128890320478798591585199244315801291527910955551890009078928327615531832508789466488443243118826643355307849894468064106711757840613892838137045554874949513060217458705591191948755143758754632393107816039795554505506983805440660628880415790374025401858701531878337296646098100863015122785490098274201998343388899356945613457604425676963267380250550662640837472973067815400874550416151274386107056640356440547233131389104678267331360202484070089072709368620752825946566722986787806258337222350373777905707666178288615876582641518446260773002928235120973813859428165492883623161873609632745792820017821277314783878796346355855208400875814560724953201563716411968971238459476634237453367704713858435310201802916994391715596711822466410890459394411201547132986325900637547848070656053799506287601222753899788214815168832796086839792659340915090898874417464032113390319664179726270922463897349963353857169426004121874645918579635036717580798951449470085470419978264549707509783229838857197368099514702361145630013136892977346565805708823442720116954659578203804713037833597081348002480991117944325412689902143992890168649282831898695073614415106906011643773788820610518733034322842272328670506480040230337708028107918652508746163657335872477312388386440022265324735571190085471407644801129570621293230719023470436518458591654111648124084062727558300236431531431806787960997923408544511611246417706528787997078235706090875815561928848636321344501582308210251647032343316646083643819590190064568788971001907493322428058633094574829760408364058698849067695901023710725380920661841980867414801148458542214008185297305343004246759648767367326733298571473815199297575491958705952380995249768554894089660401406182176015276169053731626557386124283729099258610203174052792537855398375820536330397287942977559462848522670946883331724776078369942899960720643596904655126723650903777176272999898164941173796050117948906323937056910076984943683057222982750058098640075363256320687314212836789037096882307265649455346239451374278659541925294740719955418902393298346312661189804153684416741037320196325232779506103216276991378522077868081991377238789406464923633575530394864940255221092785460356043348894234004734640461615473971943674395406859821889665883408998375488764467451890739040186289494594188381996840596566950142892462217139505437407020595497222439569423435255398371486321325312742789037846610279968035496903507649085439491031306833106726563736220734367674380484131951470703541450434012658966635996160349294331050741733157579927528498026031110997208635215946951325212923303032285009053943829570391511173792861496085598147030732144455752318934030424692243107240240543580570564521286825312473766357844436201826796253994139171402819016228391420581929597533226708551161169508169723126539917704236199624460682338893099847882620581097595829891356145091867537508390484110487424036016096954798381677102218707040846188592856541705062624384198320266474957538969626614510976734960226753558434004689664279451654182827694925840302473064204626042352061358003646848405895807055355160734264236468271645204703502144031138226401754860215069635135725705968748271694021961478223818900111812853427635943893138951422542904131625704529530956391944785721651429714759711640211619335620019412254483781686345194471002749114349943344059805792537095764599889040584783579428730175597311186713221249627111095362872650558069591333951863438615010956521511282789136978202953941407906895076710444497063746144629302518234593849357432613334761374295608766830331803418453118596897612115157658365180794352624631416628907686087117376080885869825772183874565743765414413984604044009056910176821676105333628092072582543778973531323158973758164962814319555689094809812116957837660026928753549240156503297821430330190297981419795580993924801574468786863883415234618474496999736555427597608716208170181311485391903278134489749887230738981518365151655404350989149230525822999843188391826474733103688585616618269767256446776864976597928468815826584953415416830879540933560099885894265769923318666878853655121336931517383522799794593822148366897212143095551508695144756319274183714993106622218517382357856043370418245039223321472454874921063530179376850006585051171826974217724813403547117579631335792570413578996502217251045510386622708971494680080798412803876743507784878582390570389047550311551845953388591031598635834972307668011209362408123180239059358481018363624230218774501899161602197731419990800659067969678278650650163718062597738255597326992108012843565793758683018637581800905513351581609647841292931984537497374881022865055482748626558875525546553674836079356884397039620986124609867862670089898758368858999775115568873506593281967836056082926197329031496272991387259578192584474204468507456116329375505851591175941309116423781703988023999393056828785924428903226343967824874111500876879538677025789765434570317894276147681406893656863958185608121093666796721951395814241688020649410926840150618399378605643364052188011864892226922077582708620955950335727449488875894954785382484584938951765025712199229798019205299155978541678862635500400294808870403592473484628776711925479239570489646338525385394107931585035962955385175367425361312457594693508978816095033536131869176107442726282352842543165657869663926975840029102296017765241183521526891908892286505263930109546877152140077988000265628215845817481972798256609988115315571063585614029201752336892508541321806865333383287355229558614052211656796869962808801254033698779204520362434227063065310775065166860985859997333638408252546951097344783904621245129120891585699159623861617991430553463914061074076476422404467109848704077150837133420363678220787424866300465947848520804518399055213122722644994421080194045303273750869718868661407403916901224705302719745874206665611312436878474150196503013857517884945658647605993299901679807759941352452295481556556868729115660173230019195874531831466607650267356817232314245156919763193526092990531648568844613298112232421010145594495170051679473485526692983865596845438275073917348046017181762035088156418231429108823429825150806218676964622155232591397412112430164279898767873910790783677462427760494477147082090580994430295102618089131347081914033498929580416460161589267329015267363207906046184292416257758927122427726758405965929046287394213690268605250894432180405747709970894412138718106712272375463875431679123307832031332128471837119137187230326062120652203343770480117864769278134114883435239668130944955516566170236506659335793528541030782532209756384213389286015404761662557481059758037930158479207407207952072708559504042415278786238379346123751367246076061197975861737972694707168369979680490394299210211247174073473822142428550899164676737737264812975757724600238080878458503970307523107414137941720242365920405927060190298233798980939627313052315685808838291260202760132302328223340459362129984602341663095300429009678143092939923294379947327831903969503057939328665452825837846132567570019937432041813491758775152399373706972039590031082453956109010140213153194377389440183731613851381328367616436724868699050826277676823122174018461432687141128672872279297770422375949111269907400185573060419149502047554561224794911534885907718008547537289498004620285203584496436618469584636623080067277602369045502657552222203914650957372598422999526223715979729027381711703096854698012662649917863148894063570678324270239419159319818858647464002973464745030152005944988871008905708083697611012707069127683285647623289823667807637292864260952518888171087109757412916288620436742272589664127360311512830942461237348719085983565515545910953551126967303712562335218945079303489870822472416831404207203221092565277513152761046737524160520060479398544249879821770670724235382426338464754124253660625178850990487698086923067514516866985056798686809213366723757155741487581115521651807345132679301617600062306465429776105763544074936936295746925429138192334038876197797608175058716691502343513370415169310750550723249229787552813662116701215228719470547970903506877380129010239203329361799213985775667272858432333325306721665358148131858386793225575052243250794252790386082617811086503403027995883774459214326363348259946871167879699183829944163202095592898494588410996923767163129952951210592914220873000694110669508414727399207277687861154847575741646707466758823093083661526488681098321726636971283171654107627534068738875131406058947742663921539984940231876373946732986184867311603778770630725631323289200815626574961633516393667111257910293968081565766222095161355734087194550556292996931662902949201270754132166913968546043928382966882413991821971870498970503514392858433189434071540590189097186698222592314337182004476343951619771106048127755032895755171793733840453922332965590513345171082345941847127098012015098845414136990191072427139175428332869441390536823779631877167207938898320760118764768163379070464875454910043455161397840881857825332963624235028899187255869135918006827329968998999835650984584576252122912110819576348796268468164519798960877155640109402975454529036460599930661317176773375234877960507519423526546533443880097464213765242972740651365949071214774182950520437401566133655571034768120295854859649931049414921694054367834106788109305660974282501061613155328478144248974547074822316282777778143662210636248106419904412841600601048905918076430278145623991842725013968023846748510856782488921880484795525722329727514653249681568169359377108110249085384434155344199207038645899257734955252370761123843474082916008629397260081059129714418039358152135445762658990841307138287053447232785998770849336167450487576555590563959630224036119595647617285754591263009254305225964762072783674132520850400843878928671054617795828893808763990061643950559957455098144252129155583106081140212109665887525671540837260341986177163584194086724190107764362603226380034529395037195301957753135291246561098296804903517922959483650927568952086037410053130383197282577387819417482703673522061886952386989285356465127700491933593989368293718881116423263435121465889111545676037149318573880252159219675746502237310625489223183954885545581009804142517535990371899223874320415643516706877126771429532989848762358236324358490255502534704316805870796807303964579746377736819178783891038112291644556454028858152031610907982555323547548059579224005489302230944389911563368980670544965556483395817132417938352159454309703977252856962843898597165348448193798584378439407893147936022490411566869842220460140719016342456895936425114024304287618579753212550192825961017400340993039683036909657596284399285961768111339329751659511308855531330873556290745900622631776435317501409156551454615771262736982485690321610508240866666080057970994699482428572610358273524406967372308522023433006326024102704658323340850063820383157323061469418682685311035207477053296321039663486945189861262526773813199546640406351597293284841782569862237908813799557266793482596412228588938209755134243940404994340458229696469187583646440091704426511102046415197898703744867892381086806819543268550016919702600408846065080179910627881765932323375239301566596075457340902657656407839797860694543280477950727121943468502978690265309348538588674004506838709388262838173177481484708080754524620624048623269035946022859066063964774486272843712675519838605363322366015512184931666666375238707279236930358378634280755928168178750510944129406569189816264168598398954380381043094614741475662530497441693076421834518229231626975868606622120274733799599814247954579677959609039441844483398924193899449241203404253029610722964676141821685036828248353317415633454075505140100103236166073043619374786615208261570414633331202795841681069798555939803712564380032810485444534461692566535335533714806401864353022217635712325939738802042497768577441039612757317231384424580234499401614193915931576783706535621364075739146254962412023778304453655981354109171569742456818037290943008341005787691522992082902394728952730403915560889842474521035067610995568100355087294267639863787291228696167413161886697453673249826741438565076907738565599359948315911600970798732894166730840534216521881728820311444473999307587433121724842799708330338817094904134996101379769565055047191177853123124506955505959369106466627840359658675542120230456741947180689504653862802352142949172052880136333079092513257190475615389120183476572567542604226727173808970412417644380658685195906900571742365458305372533357118174600390910854457372147574185578904514412843007865676737362655258976390918415394209616346824838876736752459287550112571615513796640604384825500843316868694009021364402187080534101428613035841567561524200315005489836260916456325410616528556707434494118206198905566344353857877621623465318807769388829019395709648743857386576205332208138016315731034800829448864077098373876560752956831563845340513863964056360109150272036123683811361055254622096422468080980976374553500060600450329576039167766042246307893549764744098660483201639449211061669616139741882134263520936601186983836911713572878358166131051640597444954806154154325615490154390289000954855744826910574248108414834917568964295394993864533544531072188109860261439253254761830351422971743411229753098257643231639698881494115094044200942654961739863176951323114455141879164116456685315786555468938987086853810239329569077632244738301524646697876317143203282842582544522631434545948413134360438961915784484231704779521104511155080339712256202565769290093301695694155626589344663327547763475008701882962776455859784455085398831792492736187034285232172660904405798566557320816794118251868021447072429733734443877387868087836250173636482511340414014011584923621962630897803855529249121484341547984713003616183735226654582104849019327942365723493969894430688182786761843604760872252306055121745166069623172380217780662074393900818562735029000245779911215737149465213566633204786894340882802391253530096650417068740129485824302643459754770740288954568023531967968252364709856483483844739477736441913534916683251203010468025476026195218177390897364022570591066906562920831497304354303821683504722823905322907989110608696340764052733199789029722101197999166402277408410873058028819685609091566099329398918578756193491389231616297246397442384033643459581873687979135725800911775468869279642848995668939208957550598644337466741283203084357902184182201409068985770629526958395516385870875899924322443657699668903728600096075861536230915719325478006144208918369943943117018600404110009889930621820501995880358537650639917810729245836995110965708668528804632573607464922854456193770581666796343374615515591489966319679767814482752973672367216706681152820824928652553178851079030432494184774351378950235611626198638457650241093706608423024970247201034938247390078920481293568957322146292405461257246165601312839719417134741615224507935004902348966507429266586986978205534017790101824609826006419996627830201712279899257196815885622059872635860588612142312219380229674672709851590902786972494926284412283193169553302744579844907918601528390424351979971427885918403972154389592499605253318993416092126959274449325943664976343738840829265360741031173456729946889248383392469764242379198394703734920836790478947970184510405041330719002247987092739555802073207601017409308156044061165698520213790950226275219880723499109041896762976581957773511661734664755833193893780066190935309298410571994449032413120462320897837894227801836802046788143015717973338007708830504220047495480014861288601405272665413569673523739519843808656869907834998393927763132261287636908680449424382929129418390188821604712152224935459096217151780081520073888877097641968697410427051506664470694427936901807833584035041321594519043021307930307258763522550529161588810344500790539515590675303702404988887426772593619647886126790542331677829640970217695304710728921393659464188108990316120164823195472561995872835606719393586665340307193774759368522525589014080134113986871051520465471614729921264334689054482541767335730596773442755025709074552857851516565290765216719888255714349462067803936764239263800424216423965452491381635367607533080537366269877190946882184015204216437372367154809006941847688382953705808238336365291161786321507076388686512492276995890649623176365616936399252788877074738558860191518370016007772758048344720033902305973800402147526732892868546171144282852715363459842934305678926938471468386028974269361436982962175286854669307949919699084531156576099144478793035876440485427301279339730828369026172192347327403099873990661709734234989845795937240475788000221888264300353277350020193807505323903451096813413972373757567785324398649701255503965856774026065538602692745614095915157338825288253292269102260253899139360831441757801659929948789723326479092871698729505846454566692474042757330872118178975826442636009546596901276325799811987627824008097444813883980953271703551680378992536591608106513977188874163903730891191586614056496377006992032923951184066093747695719567995159384497106362301843063309261027248253215932446363880799930501764961018357570769173024878598129072087566476080183082882390396939776014531608151263328424290264495193555975439398316542812634613180580901887084007734773195848722711346012764114706734080763936903959054185669156052998681281777484054481009104802156503099727759580396005579649071224444835395705261587154376273157764624532652837610553591509826822380144677211882065415545198815051242234244155234038341811137518322655302305525306222325291250529833608510986428740974970283163531617168076287645992666490466573683136197694975822750267090078150710274161506900859352682325146465248056053432066277584182204529504519038089500565610054728472718993470505620554724687520604153134412851136806133399214043956950549163779891843507066644929031694203623886795739750932062297613995578500866498680243097083957363828326958319498331321346203276531425117525117738386717724791813480903056030896131993150529400320395578406177424515074150248768808229563432383259413397525125881434414963179583281397934789651532081423977178329743981939978135031653215997441413092975840811686536544555304643916931045989952330081285071116771909624591270494721389851844270804995963023785816382641376710031928921599165194918408250339919576335487760789643560351418727706180259504437432742030828552544410874282643398237574154730362959928409415687910866929743565709026218080985604664804647472795703436234114354110314967727502851378224467194640114554109544941844341182269878662490040399966304839773361067608492275132006620645929681970752551343608121758217771313256326333593643424024588330685348923377966608029954412881767030682945757360217407290659649003520016097049989911635560939871729775721563625641446531678278157938666824425179671575808628570468863770748529230379848188108843632421328412094396425730550880461252437576222821683208010436944549423653357160469448807993311126806764943492335638303778303553609665323154249223697185633056125051482048473655840738009808301971888637805112805418201712713681814497502433153877827323877949673070499161773261303286852819912183154036724697906596656629185282924686009917831139649553068485284058143641095134695319695464724972112729963102048543594998577597835868066128154912599286281182173258497163105705751677676040975267858408261209725949180691506555192020236007667391018763405393545451272759275236444246005134690470507943483134153485928320579271903900530091722615845919914942096567427946882682463706358633578308902571467575365776309343909476626358065870134155249728790331188567381986343994897130898060612061334415245425286479818797124065187529590212404292978260049779393774857510384451060751716218354668398895745494701576443130669132097480000686384423132025052718225698460269202429699767464289470435505678679353394896238280629024823309711796250025773727092900316154603934498578619375365475339765506502803811668467386432686258648924780776672053728173794151187242954485334619067952269844865748967632247495604418399508175111402018498375122860146676986848055738707497192593198906269724166190898455779169560779395959083465529345750911384844161759738646317208205922315470825401187963801922503088723286234247751151440436545766521185169341625469239818510442926138992235243764957046739706333457698943953869371772277190715814199994201148018889832791291827667248568774610889214225702152794060096146302085611700309674013276310939840901249434692463674234412134088966387910799087846240256028347111593249137651723594918508069300514927164952110178366845609563284780133110692141967686174721802029738294859760519665742283999390265421938339784017183836805308224471721361653948127333808155388746863592068181134399947978911873504419322192615993065518586897663803579262703295091902790973532844177524373558823409590624029753872152503104985927903650612281888928620640017987742320371471311237092957945078505756841023990247777789643145782961536978320507137473652028307769946826775711428410694878821564746261895831762657970422106307030902175824982495463107381570264656635746240790972999207254772838534953617219573631676249188795998212420315051047902791339950291954842440884334548696954218022865472341419905091777928217518452368806285851638299747012690313371016696614058116840216489627134150907063800574654594763909509348329668748683714128466166862208461432586074960081641358708275084273662010832930451627785506770683993067833454317767087254585966231178280282306542478913564444708731449211100093137690659377715229259164010535847345473179253581406244654912755960758967918301619836068193719757431012905808863419671155641462084826773611473058036421289142357399550600332404064116638700259707294160352237280318911401951552870182905942266406883765107792247725431104819320212859984808453702495743222782920916088700924861953275993056478423013065883857870669473139283495338755223352027401563550291277845924756423132635447234205153661578279892488920921814514386604118771620926772831736100223099712388200520506834093465001722684647512941398714333393711889665426726937267734620450780432621014472970110257273231499997073187455253492422047321631309528018083866897547551776158462826819357751716354113007988569437050019909165332642102279187359417553076614673049033387687312148399570886936363249002744571887303248944809183186601518595703532601468466308594142588567592955512362020140935791494931656575619249180203642616464190121136048417142701688374614332010970759920856901120371225120460620750853964158309633337496985335784341691847498891696345387099825566881786027190028324354276664407074125937700432208204130722026759660194634881777600515909234025037668014559924118034237670169528863965112682212691527189486494377020814149703713261000293435588937091514211103657198003210319847872680521813864749467877206697644747694012590325963570274754188591890715214016470710035193708815998770516963015721704181758780094255117790233162350620652562726471318800748771521823171463828996360859323605051720737315920176370719213997104553790982990322189922750977856628612511731599654850938701112131799574313839061707798761776796382073485448822397948649947219588571683712717439064925594665481579738079388287015404071763014581156374036078492186413174560822415778546170243906820796827116644447084148498666067219595095274446370674310225343884108692811419527150601530472309693398619099760450745514837216046748806323745513825161024482437949531119566834321005257851342943991595015715470362196049187753038455593174012105286891678726921464225716550187510711405013771830757791350008031540999813251088252374617544461517465026921320188508611382970090623943641874677794162042252742773792157589968203340967417677763277053734548712143350069984849245624442558126930250404879805459846273340110964248641291976747572497900101511763301788864797349012760451271796554358921154576781729232226588697020861932151069284106629891810044423381887542378512855029826466009518130350773164326277668019331685782787236258260713731428817440704389174095342667337972274338211645658658377008779516198286246524571059172857813754878657631821887928829120984204888210771148411125568886859422956768558191590398323077269938676343921949554373502589435818106636454735657960806201482043989101808395690250120354649843827015841879072420384984778640339829068834355854407411335091456370716399811412810559505568525253668196278573460954223873217861982877661843075324106529107510251423938012224614821715065778857648867298823673912467445879454908852370196250550798924261906097905391490633017902112030466408370065777763605049703583728784146846683391928890066512026368077269458880926592636474496836558799253260966852579567205848425799640333425636160664427937875163323673981891981340220644624450151456196152332889926509925988072539088310649813493586248698826548821511540933819311478364226718360970492032855901971988457112132182123563811881945882440110662899462707568567738558005527519213825685214077196646020589675033473185089308162147957241768198602953570606453458664106742069477928771432238164618957899247611476393455349696935915754204371275203446992352533291357708282627334808426771016623473565873697944344424964949034725932115561768890375714703713553568514063229372836175199148724755739516853393088029596491278820041695819103183140668785401840981034471745012421755010582013767430912155891222768787335984475418520250454140194714245280321918391088291674230456357933883358258707715449233095155714493571482297587662274283829118690047367829771723898997679765170550162613408739465044902304766120188134518443085450271144324094218872195037006779250557661766297960697345779476546118986614028705245546206010714768638792461353579845729491434998228781408608681030184022841670917082273316271312834489047980681707884043208717911730868978587938850561835256489998266149190988976821341959859043789671178988333261024751461458213284483568109067926794961603639905499886079539896748676579858382450399175129050781122859182469286435592196729880849899890279433489837064523571954370408057245594907982661708226525560981670379209987323011014355352411603978618040029223226621594247911887545788014448367480615985334957374560370522738930559825399282806208500905457516160429592283953951853343767214221846616364419871940730998048879785956714682046321078053276892926576973614311505881945132269975092408966989773828736682359861097739564878901772676155515294723318297462615834899299368366102011684161737739473834190360341386882641398511692413499308456674445502485253766663105252247526855328273307852208356260628676654015181098687387352673526663117519954154333460662078485395997180968209273097245558535596157679165679733020433920007995312285131225273680698737745110688303217291976648598029056755315265678384958544346578232081799547495853994630851943736424845275564325258620548090088910293055321601277697133834802456601402457489987953381811990213665404585151881555215730024371727635949660755037742269094501542282204182605195812450138720705886107465581616644942411938107220325639378133159264021409100156868487684371375180193901391356602888901083094262060178869245514512078362972790608678223373867990544674582630840844658460321966856532607154461680526656591239743292930336438913260256388037812869718566747982139293966075627570533844207594411217533478424779242943133587475683905817718209313851012961069002910022817496521504627838368565355130693884262204774261327498001918073257079581983170994212599377011810698891770281832915046945714575907529828739976078561823105657669674504384653474257935716783621526659962144714951184738250804470465596412688506889445514071214349441227337538479540239592491434104037006485088736157757753616596818612629086955734992896793865357029894926290145222541748524478830010661385184862190925474206597170311124425549256235943966619813639709385479633826741129506154228589269943833569368496329253163729499400604122440782141822792906533596715459501442706498677694218834029037986089579529364747786282898661167857477639155186632814570580468556856432707720180959153129910093555273021321870599092550625679471564582909813451029253320667111278794266726901416361489315222399744521003206872264700763158961699798723212772027387414444207088016568286954054020345362693339003070822897192047417460296946471862917721383028833857238334690903704111124076671502850779258114885176997641084601310296916955490931104424238315961128211357955444693366266820268151856253302737942880716162385882659366818325999963181863102323285023179796590774557052210567078069853298757491761375301906409040139840160394982356088653402449570517549712143511398573309058520444393698374832234812637150955743664530227670450094005700439208422436593545316118952955327934667049106629874858864220889173120108184607195128752606610636938593342739427576584807580387406253521351708418331060925065069270171433586236596565378662775326193235098427942542581270043039549216709484558361506700674043558193427298226013568767983389094936757688325285829948976676408289257623177023601949554258540101804672995406191601254210808503297953542809862636808928950526469256020683955674153982564051639468804015111308779071045286337181079943676012944680317897383020007010744464341507493967990622033545300381199230416643765064737085077502164430128924359616643188375589519690525399409776857558499967043471320019044111003317485268435269423574306195517813587213798229760294326176604943787713114234983669613128681069308740115953157117734280318654598296305661984118607690764384771788622995528922360705522581382412489780279836272457287965834817611536333126065254685566959457294872814059570679193517204865493141092800431866879078528536763316459714175697645707222971743793415840253564790338918081170001963813864319562060064880472313979487547556327596090458194416919940638483554992535829421507307741217353373618188319148085856991586960760276843845725942527940275105542913562874764900254092631461014132455276239139664549804475315470094750269193053374729126811896660205908661376977230828355058509790351928220312264291477699359473679314373172576086616014636192544759682743478224639274050640704505205264279822553078800077405328698847909858290989699462001174923567090741138549898850486679225249052032027793490992730487108766384981687473408769316795313682435896774407314822443136902199524099613506211800536554358503089647413039290038435541605436536128330653856028068541530134303464406185428676230785176829905436815212498617614428456925409654707159532965054366773824775792169814098357046746001633907742019180387943538719593058183034162229193377359673432986804963976295519169919648556986324142990208371382674770599646516233116242843440359136624188640566255646294580196069581527077044523489077078152121329759646427090280150332672879836258903487052944469368177192292682048630551128220930235917916249610062285734754817386346453218295327485303282708585445174567443615081881905558060405081976894638713049659005170308584971377844703671981314468546475596690939154396433409691487933201708645700560339135614454618535127809054722559986717027050382106450300431182523227903977745213795370673552960832170259339514451097176656610062076557286336499357654275130995897663670000312914940961506373726298230538394268028298102773900018989547076863117011077517324380536404150206651776392540052948886951788389535058082585405017091554611426176376880602698831629902754071102066462441294749489855351758127908233326607467804028325427679580373892869645032308741496970214673441813055314617819876475901300158754280319854642560159630255509719617023419086952077730185794801368418592888273445980251182134102351644548203000522396873771555565628059754605187275059404265196319884149375986743429981233775506024856601451056571862267088386468544641450967176106261663127098811587770525495331600341782172037066185748917049899052687895556443568069164644642234434082708254274459447916369447273712159376451508525985501219779836895525458731086047037970693960959022190865320342148948916762488589778248593345604537625271987715040191865690413595822833491268722879124786530878362928450974554860032092665662211852170530750108464154550592737186871656505912530488984486837937436413762654473278688075471015171370962573421311501579765838504130259206749474421455602643151286536197684934048707937638233866528874172598155142520927624459723178838634013286795746287181553600970486483723747365664782857505216759104173129472958481362854046774461131344743506186611994394668781741066458533533817308182954544178736627621159546556897632375492324159211919155721054934484767309003426306653155912088984456675160220343980057183399745658472069488699670960050272883802118388311200963384741515045647251173515499999005061438457395894027461794169830560126322959559453488777985102235984651382867501970287928544696931055765577055691696194784143034929115211210297588151729856732517032915487766986134398473436894835141826248456757996994402984988863994799436326582913334299743916349607675598867795772877973654542878589786580830280335832685495880363415741706636197975353841210896455039609146358465800633214935961191069125382171085172587103274939633770164864046208743717505384506583168188662196288446019239815963249003003087560721723222285660134175972170586054983312670312373087305466584014779883528344221178082543888331692389624281237655959046380186194687932742070523280122870953142102942333346918260607347474210302063366658911956079625275881007038577915581272226450644076654423435519912714779915822354675640997796024501844822921577010098395726443589243924242633280468459612310642659814457769385286599861248886358810295268772825763434688733278463735585405461063697016338129880930378587492510146647013369346367079226723587487531459722115845222744304168669709799468735471618411999116430269442972023186240416419591119748319216773940035922737089412766211983277902182914894049732906867875863897044040092175689456987278448122220774504411817036657109143693395582692599468382881367306060177607497261003703478284957090028827132400929330346366902123783741247099096218131406009614280194705518873919588630680555017422480129318844524218147778257628009285195035576782547004884070269349290419322486173763148014468185703829481088559041715722428522270175581868087991193924833988904106181860493742384280947410160758934373750309619853646519807777440358211094937127692502235137445481230269123841045342035370609356045350722705445942644915571315316746262382771547763261871252011850313371265088557661961703151926185407043680806105020226118938752116745506843100946226700682740918761686455407254204552421977034169463041459094000933379613672063922731760969427104168397001969282978751598187860556445601866680964110562053650034863357204634682883501044010025109379873946312044632532691651284062975049743384168862556247412195119869257093366032252016318493608897945521218691914630573322526604507839910393261518609191568822719067041658095673172633278690585942617530124136064563496371238077641309872787376439382632179474346875550265421791855302064128509275101977416353784790916372031676987007056461183667218533081306390431348435682001365156933728668763934472183280943418792557876335785866609197439358234113999617484406013542737269520343563585302650280810436900172219636130399341518663171437707275361820336448387632923635472041554187233400288244676700565388576854982734226829349342591130976024578533380316435442166704084004421225800104415487578078278403653504100155167780097965648942337357566333690843189862213223309052520376001846362262702079414479504472928063110952121564403436097959509380373755241526153099788482487184015587471268184838308369938639706779456287290672250155125807801106874258349514237666909741835063026964595322357090418843658241387507757169900138521665850544139752386983114252972825092073661440350987670910476987250231604384942702008480286874681505946167731453908213306005038308566510546905443358557069886748302181466167447709196839740007437066592247411621811606464082710261104495664812037863724682667552407310393916577792852851186007341837701157792760322440694974746400756365532388599837561522910187729997100859337639217387203241740168922473627484420291994719774532096789291290799572693979348644033696142408758123243427792120877566649550295382913049077857036396850837245676530232515147297770379415395873741932988590419061877839167337533667388812237003896464167549445958850335436929669116490729620695586273380871371531055037876614524065417833097799813718096419670359095898817031246838083188298140249001050375621774187035967753581233434499941989548860046056662954815607842952559508012500314531552796546642823797192762138337739983818922375759613644330968442007753334749311638632732487442752526530481305205241129748339909088743538447816836035616279832683147626173229959691500044132048316049088829866881027524089405411994130705907136839104991554490229026095229655168256021985332277119857418173681390022940024170251753321685070149090101847122933400077621612519222672604083964760337138401602229750497457439490009278232806251151953153974865058413168284170341435695966905316520552305998649716238088512547257574959813109970109242314558110845797047074353159190175574555866556528672745963471957917028340370877373191163386759200557641403979268482349668071606764890620664987251287792699804364007092195401936964075521833794496577120484403261408232648172228565562121256023421804683317467361078245267675310371358396732578031719260534145052039574731103770938521179039297879815287707545479852500081409653989486019820431351906406722535498893628500836491605908314290725980563934754777759291822281282481372257255255625672776254779295462861004032869849145539281593711996806496393994327157901274772786380220251231866709710854143611248455755041744649032605589213539121902401864580014420120966267007124967573102319796315550897028618551348951055906392182575908707961952617130912223033623964995860862632333543883910136487470946331743531836632923007619667041213787838143645235133945139335084008261462569594620543268361892395452150059551254995438840249353155905904470681189855500114538732027570716427028378217366310229957641821918446832892720536776726206697314136221710257210136358867703077237884130180153603296525123056789159066031501138494976892551103597487249453663690147009753375756690098042458268457523220175195730878602007780070027225324849901573801760357001849102953145378876705931279756005411922683220477751143708559542639493843558083761422288957883442197709922211138089800330807854309651090228567503572667591508963175775256684829177627664026789515217683249837537937326808059065306448748269863800515143702206441975235692946140031231797845957291677761766600536015949234789571616143448527808565877372083241626298827877209640223142007774818626547658386084494604810248767642667302748073242842777810734623072966222592163023226581585109550476700243704066717325899275453364033133757472865432062559184819870955595536835501509337501533778523229217420531241657220419787726901716953905610903785584637490420992370868136553024527691567231526722116756970079960040893782829718155265961988773847304108211707706469617122757163455140630650554986198334470063397473334134537511026625896322601103895663229936253496844187707939910650172749178141573552918688081602085630255876096850037704489868186534268145731597947502732342023712473576726225830790501633990177015903464064928258826075566337603392041312524088117673487037307276132667735490880840836608244979717609718442997952282587079159526031580913162982800959894470904138360902602078407110657171280727301330717185519180626099948786573632566125252937410727564373789392341756305210100067576303430844538414036729354512027939877421176834301815311292977255254636608155313706771548352014052916979497827528656614459436505527716923640549890292925451116777698063791194039150267340681509670049243509801453835734654110006699981489402944335138817214111164691030719895261504237059615618644340411016744407100123060136461792427952674863269505573736207758382321916863216356600097038122530345155616694682336074149107704973006288952641298433373734435195880779835895223288351641890131744785690863276406169654390640757773895217803719102072021548616466294238913883215857093310705937449525544714811253168448849622642737830457996971804808731724306105801374369459969668473284570346437418684525092231857742661013579016776956100510987431741313884477688361070658751375441164272214747976275611498848866073299611886953118766405426415734590544772066469440703109144640057678053184609815560870207285949887280469325078219779951953976140602277173051757074135194133257491207384170354395335486694615616448202327504418599441314164683126203269000909219183551681399592021569353705831519980868186248693279645685414072131156443379472774902982298341143978108043118818824859961421394280432304900609667185099308409381960718109127254463176287416169672545802019401377074265208701386772620289805582577891297415229552115373374851911617962779335853529783413035009123513527032884010581220506649647650191554574402096043640645417245114420685223212982792592568363303657544513757418141858306005224661118824238621125090274042752749590317071104378546538144100304862336413876662303018229429564330715950945081623511336663322658483146012014273719236304392931239339316513474848022078058503285344306471968479530294224089765254890504238641000787135510875074627756269144801483735920155761178195828063093256699032813465407706233850722960221878267338175275756646134548175424094416119018321746611226445176908012946629146966167214878683574586175041412946943687121390805847254821653334677216155272805124858158755133180569742262493498378087170253659231950047945562991200554241596152813771197208495850470560596616580346910580377920534837848461341835471047090906660858670022910520086207505005022424386926015666991696458052871391097574201016075405407257694723636887209553571568766448102599168342446261661089679074370195672213939372431116529580955207264685508058936848824816310703491101483935150010863104726054519037075184397735650968717468257166121905553072571181583568936595251284011055630072217246591841427163121411345386513679697787795191722131365371089451277993450797407688564788807683863722324470786105714781946844247966966340021282016754522802242972323232289138200311850786662915253502228490998248686123801626780270553420748174547295918579690412299259798009204897143212289400702874016907165315827883903797856929058623692537566575670208044976605431360012866843350115381432903149674514219235399819620020572767893235825781226700374295774942626523261041195491402595381814629908931081621138878101488514858471063551208470370882433028266131785519112635222365631969953526929486992600629492156835050045660735007693208980636507058337378448920160214434174325704018631343685919770231465392598229122221814769426039540359293029809780427869227250993584862612429935362357671101298046657605801065186307921436236977146130687226199836860206105508672388652835728990619976612733242122680097946031733852066578200565332057193843554059934574334679422736187123168129791904201269136327114056914763085749247815078762914108662728619518260453704770066187489095419073398362197825706035806351864073257461609137792688429951259165536676889615272389144853917572050825870792509321132061399434079515880746852001735147598277416802270955639011927259992861125531991936930147939310407912686925031934106927835275118010638455521216360413187759971738475697987037738921994617565138955993017331662128741621127933717637172030778540906969014973754670616550236395146873405213779539731625650168372485356461411088716032276355890084832411263480077723755780708819807985190686688438921911181188480668286500157148843014678972468238767931299610511190507828014334019605614529742560925976850380524078025356272264081116756535177492559036704232569070007507842639437735937034442986158454468371168402616199006659497547016674185020097581365085524096351467761443001957835029161436874539866100869754960583765075424254850017198907720204196356722834915370926732621484597299396481843157560764844474477035733755311601609924095105540269591263427501161894886951619975424198911940651414077840735060834051087689852002181312711478514546402136366109968853815991367137609944545330385130089878737807742041995925674266937192166226628239992459445781410493160872921984388576220433955252593262306457023455395095603853461517653455323763290965155039075150020282106899746332944567528162103399214978998885483208675659161078503362509473741014824186940988315422863623009162954133160804323605027375597558759096746967739111488850568786038750667254579954979579121639641810308667789421706533352851796936541374091454308063259672132071766732687892587565923491303241040754372231857392231299824840038640473795280657998170465753762310078804052513317375260665055960779243733953467874878092160345695849707841000472480695725892469277226053292962778930042220829641063497427008973290227708981981599722126262803414401239553585096592855865286462569086818235663874835849891578213847736084557711972581969978198559843184289864782396286915099532906916000171952618104390453363237136797200784062505450256772924485811493072825766580610899201883065909957803120750136081196807653221514757931189824759809511914964071240436677606104495523229197754179748547582594287608922829090757895048195297017391942629704006570778602416515968793472241042861762250099698242061691873764307825487807818766995127719737506262013766772524256213827639071539745033438478162370141717930183516922678472886861540190086184024956831592764659615851109277055016454472687719071237965346224119039501728871470818463940085630716499831504025486539922874231194052059400655674374497651537700167649571064915976708328460042234359200969196470738204509637563518862880381095847715214102163864644633960023827825499818405203392383835760621428844914555599845133845791159756421622292008121344562891686805572746542626121488083708965315883139109687149297231873647364495519118409660826731910104502721385056354440933945015932668787839230673302551475709078072014445631163024727743203848320449192749148154022540769149786739177322575857120000460541138630251231943683023790211325405447101504673869486231876435929329363310867799151749139249391473787500092404680113173170748319938229719068438015047258870054924409614002462648912707028702857608976261165839152617572226837129153498288281652505785381035688506346712328784227722338044571904790872761570779391377836429148887866825174236573083229171561414407983022318484676898364566174626233811194613691688155320648898185395691250904628283218445865019253672025546776087270745579570770257421062183863132108631040156422846136772262857206572972858444145976949649102396240040779960680343941879988373788460306546963542398026358433074908876499528934976949993580370819840472652702794547242053717746365968086434762861865388995053224762639158756483437194862622105403061833390024530567935887465415717491399954657744207151662285154674338457463165620064503831047614909402291502819420253920186587801210989024780246262705741927146189551531500919925301469624531847287174553080010734730922466189812097129636993751944606881653907169362679705666341359223494902830165959999772337853834846488602139435036164381428497591726872746421418867760796209650382366288200373877964755560833478452414782326635742012787178382300036174400510253935928201404086777744715049006623178949726971506201015539602748984361582255828258526190675687423540015887313311166719349602015129274729988678547121534944360720832715986124023751853693476651194708261011273433723062636011249883587725246136069749048890818109788859733467288281196071930300664301206486371082326139569596891917675800855825840964292461850259556404798493903036116073815992825951385228120256234307372346495469465206677649012944276171649881989295697641729264678457574116599344595932937478313066720477632361429431570411613455910355109285038128843412887962840810853533592709844211519784229562358539169036781359490429197133035151662977738113953621214141671770430334937819251607600375700423976419495557831297552800471411791890583791319940399763205980273655274853893834191601053429181858768864021069252035962440646915076748854009936571676907645550112833545161550767709500257618826787771951304185954136897325131624744056716391916941328757074159419800777665940150530647864294575933049586149416231658659326265990981609688559087433271892718813174817656318403305053473172748361131543490650354426783888654069660337124195700614575884607700803083717206392068698999128020492077721637423729529898398714643097476116033140145745829966186702599238080630417656235751445890432408413474699644388135753940029539993646835593458602131285107105020930931223824818767417165219857750736787835332940469211468986874482196617003753368322752433040551613908107140646843863529214602903837295220123068772617406155074031423049912472217013570495549436324611138049430709527559725426185604693607398775865087283836994599308001540840228330489794565564753905424697997393605818893113334766299576752904604016409172855276942084208938067802494292855165272174680354865613659428266179667411805602518358527029526613775067064835391677970169813447639002057379182519354049788479427770515982175533020703231147595328541415647605089936818853850307556807883081926496741460473063804974243743762146492576493396163555822762711886204646238962496891274105241054877677216402253057588582787314516992440802630009354424415245715535540182830341729184979386058728433516269766541712855490728994148940045024659005621867602449138012985923104350046040269791025997806382674843923869266639576336609943337421030769515403850498085750765814096880706083661303124939215097207438691978613717140206382397935587065043215202403686567137171228500286348792499954192303965115957554291540787279858335958400652571645205186557371584237450888778383346605390282030670041014709317119347795596149781422604413914311946914903828815677860688856447025425274105235076319502093714359198903367985730365442406804668866731162652002305521514971690460579211631968260074928545673985949964775375894595607956569712326557016061245796781495935019317166321986559012352018774673316395271932532870921453742656882949899204973911383420238732023527142668947685595010100538940098438864094595880329239480076142846892976036014452834537592766640861593012091996517259040669416246749796750790171886586161787184142873209977477074115803631886226678100147064986761781569034172460461368118914753578200049380295865641790360312733678842650944699387728060611315750327366950311819901203600407187267500218868739693736249595926281490698911555762748555464831951556609120542787057002271641238158672413629647657122651443032116328169630708307611158449553382129203784284823908270753474267667281127848734056869586182399037894681235447678124452198333655107703706851383234270991541623772328865713562537428203920285350912617499450989211346913448812940422183272460351498346632746827110526965473577778790439375391288111142322778379638060349523548286115496251902107188098708454288160906480678267892103208475740877450736151326145711398650687338267702737477781801628487929486286842025716673391087901089363816234074156535963155295907133266183539617107009614814516299879672783670435526628870500399105480239689280454281951261594014287432368498661877258147613802853406386358098102309956947213052068223160599453405792091192383515910530444055186837944257492661701380943419954079170667883004795651047980029694459755058559217859958321765909273373159407218022457944083357451783827996280714798716458663407175368518661931879040884603059278818953324820993169514918989924844869614724188319154986268073275766561608021790679365694514670016880763859224479986709265363795586089469219326292351109597023130575814657684976624293845872520201052661763781348163958437501797478494271095537836685837371669598687177685170812269578221688445709819324038894382248337589058880366733726742763397814368622266670162072184163401565250921576842638593034647119088430641452662556729196076813324991891173763035184560813640757639011870060653455440142693130922399021051728851858639403071119018322708846466093983350006603870077703791716504401977328736412085813532532912597400881006629166184624648584197508814083717566230683743246801448178316029298243486122403568711156214219950505907663908467176219889677594115436147748342631799905626315988118395287161585928150947229179845853183557786388954149074987894495419537671487309988676010825497375813225810845768118201626175277662826074343367801615656844794330913463224386163830286570531295638028008710867420109311699828313910626352046642441192745871831207997207902115423267492133879479300960975820347915101342012360294385807505587962431505880579194434301002490404817158397002611773510661582109949791452959052937499815022984212608356151110356394501941144808854568489438651146766783283469070053302632125583858158507837502688711926605182323585926191297018772137151677473272301437025551520466824274629452450866654037995644733392973421675854817392221134117970251417770641086434215510320789332806510585078368034165181728569839626147328028963593014068062535606306227617743202665221548299595015587460779004577161217828123393559281189675962173230333039153803842221573519727543692621329024050407286495349081717622026368424045112870865034522315641339388006054841896235731715566328964929660458654771442824237808084844460499756452697310670093370175789258438681584725963541900662067109482239594566805114394252673094132362141652428894631400116196195809123992451538356996932092541505623607110556206030163588221255286199253524902176953221651756937572346381363603385303311205510501055818833900768312591435807476838188587169490298987061012076288770508337897933309017005449878642273402166194820091410540789550168627487576280684611423129328073137219305239728829209856143685072989176379412252781065253733105924298321710231189718848050827947543233016597801793104067193156282869437213385506070065732437053023297750453777748595494892602434955967473185406890175241706240721715398651724112409653375441310874814458775147623713824998043975436714901646757051897284205917680239230869746119638913248392016632207496321006136985035951632487255492059032575421922663653803408576137803292276748332714807378665475734176193119035062029600716141340168270024113318033270276906058673671590112371082310053947434884841007199150656462041705400577975239658843011692756849418009073010431464466573264166836183809701728831092985899091298488878921606099652448648783799174505325342363598849457948170336931175958574958104807567217369751916456016189494157694690322750304454624021598524757407940147902430062776785556970394978870441173053713228726363145576312468862861117993307664560272954415507353919325566538435060224066574520412443152496147711946016550194581432643128591561153099980134651007473100161727955200973827615345087894952957144081320448753040467079844802871417969627815876597613855401695738236492146994470186427901701495490946876869825965340968393154864577650962231119449720583503211407273251356197862458565330415658584261435194990397496802322737857980683867832495013574429889474345300175549864474373361364345234246234338945003015471289354363657688004875720328976782056105445921433606415426187244200077136372601952115223721843701376951938900192079999877349269644296026747991582877400278544079094407082395743120154474133275103387763230564781997240137589612794603128936272580064788566357506727684775721697117937514973572817491893649969672968188738898838246779833111306145837112388597011011745723827524957993507306166317436467496334932946721321582321653801285073871705731902467174240892942603374727656430656409180266193056548896858257253608212510304014034750753017785637963695946245408786483382740168266018306841454350760891781459908935206946291025941176181301056578550344981195273406840711167897415740247947125663806787414026353490767721897514897167563912020843715143491926441567773859071162061103891941048236935430155005798930490677047348992069142793042841859504248724728747346788099140543841062082665597462858026580585475310461153397266386376447156161252480475967604716177370719443285477381654138708963456081677849802491451916900622222674825849834442778647472476826663109468644434221682530875418466428786358645447005722869127631787033544571835179904301746919717381097090748178689897714065208678950365368253449611944849881918136243778343090801842406176046192780570889567232290316176730745616261442684432954599030727315437018876897919469688688326333939782711494527088921785551439302887380079403219668779446568197048638574746821955836683875385527990403749646763680954241055062994188361579714919109389325746897879602157011103451161568699979331599826372626644156934191674067836284500804630048442448780206081358102203223217853603231641054500000355795977984760369127217983573082959332131497592464076351668108902040656135556033946591838427458184282728189113029301777748863559383269912705285181021881249375637640806187900162633347233779021489818717774862533968243789620682280886450101353299071836560400684622958023171163848237782192266560323510093879721203296217582704544906810155467077734726722265926641456980955575132799002644186497158191427212194989064595161682320321963882999574773537900271919010531919096258330735069819984299174388941435784534912729652753327325389842387331431473846172450707911140451684426073519193932929615030693229569576551529192104366133117330791112583807083025571192616195257596999686932043939892447844998193222168870014713123321375047490677516755017179336338150605616051161206328553719482560326650343470828162435603941856800090983579115497698503436328753004610851535161289738913285117686590431035689503982504837902261883219489768163819052900197575840002447523323665087153516861271693609202212749185898839054916101231910100356585178376696174061880796364073196598812004449655234459627871411411456665019942640795959408395167847993963693765843839519938357164995264863333448729480681083570924986594279164295648809460969915169955421820068984396476567813831219313853229036722399565129359318824463948796205945517947988391898493850823545596558787555547207430870455065381580519352384069652447592963235261408680396745548053236442470290506765405449576637536807948512760795590478385480593471026520651449382977186084043152047321277576369954309157839157964432647517557897532489835148477702972186753572058421313965620729605264733779966740520809962233764404897337688467267156028421621824877578316955422698404594197116369437916570303223283890549744529019732654651021965346775802967386878227094995430372216445578605625772761367772937222572385203845911949844788198835591459960486766691811334503711160764676291752919978037255898744323402016191571729184871621237393353150237212980775519620921005883795958844950393524773104935573140493921894758323064938642002608966001623832323883049167618108697642024734255991262102407489741869856211586542037637817379652659187831411940092587747581273750263379902186856134569486632743612996560971374316148811014796259369348287383311560257639540550620826223981387070758875615192167119024727062395522932475381197822980371598737924556557861891331424777516149083953150490875227495584138742920217610591985936091934997712100948347408467847309243833026824363390660387471272741527506708342009024498325932394944787248034709682474470821700201817837553643074539198918812837611655939094525227774714732011067482757862868953354235418783760620426835810802736076885223899101712174443270999961938343194998713318746896699868164679592681844790040669718207681473452882279294416481213393549649307167189478275198426774464661892415572155331744761397841884565916102346895307134030503730539993492844733194097918773805853099734917887486843020987653461109522069390732229557718036929008956881876850431536176986373150401523187540506640369006225604153976371578409661489319836620389382201505085402286000736567841467546227311724443885123720825728041779013551295233442987149929997622890650201888705138985684900311589766640985992933103718397081711287674503384792631619286533992051887639692948682795457125940549525550986403303367048016535119938748358543771084818049909489479873323563159154511645110029833619145264002321891523390473053430392410079730324433502248731280119588520233289699075995659710918497169443900613957596839841465191084459054726569811841890286834166440875721819987185627588378107968668293340835337302269659255907921511535984010028556103652528545109899675769568651800651034915933113352453827548095018358060481993875047495967972925900313343241762788187435251183943001948478459921187012180999378500326250686915686670021562141548462622760506918146966173794426043016190019313483364034466391179848775858996404851426982754086721441390566440515299069514809048204707445640159801724685066448772408871313213514769661123531922847803638003760910567583532665848392774994098655246186969768743087118694366671319517405789421581742867078643528592456375217463681597419542537600228068517174130188654196006305362942945307478081926856231870527626222282068208589183251486615744013452575407312868863868293088605417634570883942472600535633109629114377409046090989320724429704928016666734030112420225202515308068486949899649411079689554328474583322157522491225550300306314887760075534517986606173883070497691986102794816667775119220208997704681608596694101090435989809396428984435853470724131459911055714583376238049027343705329635146997376721209123754383638372240682377399331667370045080569543759662697155183637979655551410661532056725427037019182785628069805296732278746789417458140947187531203579456547558016516209003124083663886647569221565637266555830516217006395283482741078989481448441705287295900117990765000547228963760801789936426362084814411582247155770158597064855924210079081020228470691476248737529361608221209096479299305480743723530498594680654977578978773365967677780997185466033380592490074747207581405872587755580563631298820297779835180410276438217279399612930612159501341267586991857755488538623932975832665461899380471450503827796998537948195150795526506105473325352270999693215156202289013732190576807258706270674525397514036203312598886617689563426668286722395003136477472866640834707533247643180002697645787802255856268038774081835023464340168099240114637684868642362240490895371909171235667136420917524125232584811635197473393609867880127938665961340506514106686442751596640534086837572867296036874186107870355909066329545241303336186604121397122409809246735845590586405663152914938547617501890896554565799326120020555078353232071119895604049633893340741636286596183932588916997758430418893517916167013502470272539669086544376995222298957168561347397658384135639274517973305272041426182050789821523610417936696459444240843756013615681032304190383183535791921756196112972034814992153771771916705688579028514250607509866429114047010820530911333710428456311864566120146581872562754479710966642598892238944355393389411821663946708526632049020375017203232805242846414361435187282194810385809129224169658467390911669599937521741160287588178767042256605809481995394516866259975694637208559224799071719702912098153335080660678144646613194227768388915783474675640013919136533807338409255402264927326831310982225075637396623507928568477053060722408706076042953443405632673267569408995919950336142437994730662011979429201302931362484778412684157534531929533492886424542067036498927996166889000792595689608252148426159975859737798093245360200451064138244584757110604483835593549606763624770163020417728332233934350960196758649869987369069510677482228799223314066892351130904729126573585076568035974671041814810829939155357944388976238369514330619669403833103280249769927179175738802101605896047785420670414450035642919273961541950631968322442707247257850574081444559058237342470903717847362399223426292193550501920110166421662224606742130752905508186174542645409691249605996255422223735911636321615549404158533155440632423887175612686043181765708521010402894390363049015645675197857653435941427575958286752374651334296516086175074392419979385203137241923225296565422999185498465238539750122173215883405022916744761895670125970777150566338068675194837956529579808921490071882668653260626872627020025961119705330852836124193099779020096622898061176894436617688809838906546181356475114400046924294855114446596539433538657248238756608789281071413687504255179026330698459842180261699323987339768773170125532269118163580350678193686052136313552041991248123337579033291434726236069895090012977498632697630629878429252813258045445930619836363859836905054543728971872512562438165718984392412327144538413468897199822438299175990220796241194897236311543687562600803244027163847403317059871403354399544517729743399055690211831636849132226540232978286954315672297578764190456879263847017203567210743838092309492023340295751330237610863465022565548323859707773475237377535006358260371578697800335569439242449837593773439901750316670529591087882973568294007428902097257496501063091036027461691109197232435165624242910669999653417587898806070501253480410545847538771419289872783022350259646055667167477710767830206405759798374325957317218847903401845394364703245662940595714195100091836654291724316604671664419668811778944326733660459757493274657718460111876555437269813175077220292414287337865545062160803870380407008506416180917144576075239909640022304269816701889489096959673942257593680591029043491077265854307785128505589343403592132609408286171953537765898981897657731818764953556446955414885179107331165708618423951936015817969979160073440535572839443297805799421473520601449570269589938330852332150303259996195114896428560233761223446860673807337732575276550255882456136067388440232116532250043122523734614201549223561482476911912064701374066597368440331584513397906757021384864562905091335570703957129688981975062507734502265296841927310728734432990343563919682520134648891344436139951959583243038087713239638826596745660778085517682526009626556444054402821719271728868634109022567921414477164195487130261487010954069123457443404998330773485928440242432342765458888277072841899683659547902239446630541499745733226834604810867611930553443435247073369167282189632104076580262230043612652749788240478050435258970632834400379381800227721967962008949202470245942502517070159741122959582712539764981107643624009193121948085139793436998169455298726624263892074978875800948647386991143035071282539393851590262898334463970218741260185791854708974666334514022219925895620011771606947902683259856566467521030178518971428130647167209246642238277152685003552077053081868916227657268493884216726021333849995623409591104469874218466858194615481955520004225871824604719539931391655267276356949036814191138215761532010933913230863818153384726743369512287987974050138749929290809531696280313709129491653499879493064291793457951404557346788737211318220251447377891058338389737204126849910224007299060599091136172627567087886375294020520328880709533116970466174362631663372802308803738625303785185659507430457478804071357292066912464094048474861559342237142081718579255838854182664464725481245665859660896523474351068542721708358272659736018565049904988054141277001303162033117672265916718211115394417009823358892595156579645192755195132412066606904901997671912557656337375548640566060367891002676109652968841984092362196849269149311900737399962809498431352034516871362155736915678166534269802266595093261155797274531903936582580551123505083067054951197675239264296312684659902571940832654952022327035632467759769415461693225018749848126885643035616729064143097797576639640102801522137353933698741089920072261882393558612731553036883124560194581344277456249458281521065148989511079238608707864995455709624806606357944298079923315516066908076769442269553952425661632302060228388694216072845300609259709770064684584004966948283876266878191996417178164645544900258511651974192908705945944439653745282924640799197968661872597207999567126075567738259866777339860748722508558790976082041290142123584052080244297714494987172028963438074048147719413994937022227500243430993644521997888046314246371602127589543355256152765505463340061180490831786125064534120595802862784386804547744668428895455531981220134992523429744002500519857426594160022898553345990690609401631329265579267153839323685218681064496811435032108855228615804974481113810116987079473293406453537031129564862666050563415213719671163238762113293919851544121689034534532372456818666214752198671567822854324236643470488172587865321944056084460039726408585754824473426756207218427572261589239463943224458440325134059855215973499672998973988947646633850813398612497426961295400706878389725307688576446265005359716619268698492399279874566828409095304850934591505706360043143358364284541995776905948145215950903543840160515387727864514600440203945190551402686104630944062113258663503353979905144311229742431946934024548420203453090926919091477464787910378831105906487238539837612823192671051534251032706066983057149320967656726501853606178343122554317349672684372777587842421084825030643340429019812883078567198318667258218740742956221175088123874882227807643645711917557538119227076963623038969221253746523291390778793949861330364226154483445738414954482878300234654880195322302725873588472381737107815143715207627277779991502093477396545741625571234713737763101242875202577296950209201623003377132705954342289826384941984339012144170582111906368922973322504298726514221918251447636826503625736072145378903336076448283315853716016528451940128168413801518216865987843400761160418841620025576901750466871756029025550885997630612330227644894079590751402834852796266172397661192421313908178036497574734488153510960089062716556214020507387347211030805024165530534383684620454150435215056596625782465428275039590524125106083685851935331315105184371890407234917119407569232770836357682130966810891873695750731140988285570386613019400125373539059347541306471119353726340747375252735215718652636098009618591155469048644573852720447739104834203210715417022095004752406498727388185815346168909800472361015735244139419861082288283229188313717351559504973095287670431172118950629867878816155064895187224393712681611584871369311141949780540524135443754609185892943034984638175929281009669844747190174744616911351086995289189453809590342244697331739010782748228148020980582072709485202161509263928806809114662429813712053155306650124787087238258715340413900009938215934648377740449385175080237665363069124420333401628704216831904462772369197448076719840956928811966481451061134312315389871988861024552958245499803646055948948689081134760084150342374517391238816192540472026214012913902301213142705126934472169845125807115267787189706402245771370417346506288113808217100489234534657937822100334063606933279205992890226377783850244038135787591895413884343640500143950872373323831857662580374209418908339701415987501260480145187779209016248796879513566627895622601366093953888511467704489052210900560818313913382955094452721362076787679566106815992954034524320932614400249370874131121340959432681389699461611794518573421739290880173540992043097052164286939460319070021239474791508796021459969343407451115996815539498461126784537043197848494361874695728775720219104895633368033682362368998114669157537599779752695921311168910624712703284344223390238739317942395618229019187609345395793205623764054820936452499049133846783867581118473566023494240044765521795768087364044362490016212401594156486776938028824721309053437570340715809231290122772149442857076418886834204827950513662662527294404202765576498472877760280886990936134158925818020527898219371154885824169653444226884552605816189027906300810344802211939362831334589066610121476672810786229668846515813507591061508756296414455826010745116891043580226617458496471579177324541074844600930971070082119712085767881461821585515071647745196204740444458586218448505981436338378144468307335050853066103518982142816484328439132335754216457162072385680927452063779753778236212090653111877820422088353021746544487908599905483236809332433913708269288043767644897290525315216003909504093556050685139131822464346515139140239642315714162065437273449698687017170624888009954622188067314356333304230075564356573222206145574470406599751169771858634327044171564472692358323546773736927083588534406695471438895209121188688125462985796470408904573094888195826018422305322478255297786755709332160839294795350174266173603172341842570139992832227328634816079064990746635748117337451443052082604445575903345774058134213345025468037376025006530064330915584856213967602833449175344695408684850721252122424538960879143626994594639921470190510944574633357311583673765836821929557297978690248246876514987344239343834649089410949400675555575630347524358830035724134258779696938674618312807030583736971497129267353003473837169113819710818123841122729485378112327940657404939644313461638586125259132661936389408964665402846298864984585478989502280872296476188192620000036361019900125711834467661083135988486519298643919435897206244574951088670671742277638738191880662661131475221264672557293903105135534997255679792910195334367336921824896420604543034256657496506554821484582727606802888344941184763442708131513516908303732246888439569416595978231018890094647765306560106228475246563155369606127966401611279619661131701833217497384537718072641091210018719562051239988961310220369707009884532219967670624428819691744925751662543802143203723799843571040722095636462370039239091564504941479543635646497242719204180784673683552567174842411214444459165925076045959583941840272617683542492130214235906761855970595516526113306164686791103195102269527471692844250644870469208615067442429361031233141533058502915710345290941685042401293706477010296370276245942860456264233816220114007970008104706345308103447264552637592160275990675048774540911028989952773849805129032186711849526704005193989657235981684441954969849769202813805359394992176626265657704544003931848318562061711864570677209892753750809713191333842936790579951355684258137942518160171985857196270930094628129152879646315434369220251837689945335178546426665985903448416405160424435269015772933270915095399326643581656040309449692241666733573960968018201218929634966237912578677974709510494327886199915359440714801051062327802487761827683020967589386950313578913546103193211667601849810099205788928902870462372857953039901627497034558977659132303187698794278950138924886867251211625449134097132959529180760733024893156406192850785187596504633905237376426920587997039869025218329353807752644188489905829501508183546771531074327795893772546663294798395204704570123420079470288837857885978459176003272638437014701611361986368828592184225462760546244285777670045358102632947672008540606585838796844441527424738201453879337193557909206895782585470307006480944104651056010856954342596300557720885645766506332379526873653716982109848814172782487726235048268321688511291651451791331129255261690622842016018427128198225774414383671944201113222818749320419411011461131822454361650558560753776506482369301075240001910104604547289078851517961721922991052789773117642176379390663733973169109277183730473983119619418326600731348301529049507563171881163472181820426174445758194986981737200955657622172844139315650842305602817217079211783878929449847887074552076935992103229545335138359316695416377724350206127444354888203538312926997283241568554174511724677558692665660969049663784071872737229793061390247960296860697149081140002874013782776579133561994486521883912551522739811653822507216110055018709257672649385347009371029122379088227304154641477007819484227362097342020866035599131283518696721571622018418711234048562075739296232535066067782594802041695815024101763902026744308649444692798658059454573726153385518717469960268455625190516947064591983645038783141426090817072933308448286684824878396399158005413465822090463046048213268144863924175518094067353003172239500969327946412136760006943349289649127188664055528210105829862288244159273681240077307415965940247642159295786218018156157972912127319690019495726076317203324085253869774425572265832912210676129351986293166680938979417283924737497190849473331200557859030789935509510800371335149209402113972788440463606401858834740498618024943267084762415143658581266609386735923338557270286483467936805200232491875085552814609597354615058832153315230059878829811516037482404271888287499002033706360864576622276576015911883227032783500857743804240514457400640723412350015932248567140590625344207980015614687518750980201995882812204858722434073679781693915456662213374268441107212425332012303160314445507880358842721922639779339123604909698109245847763644898487651250312024771234020462722989588828711445407205998397072568569033252826602786804553876106057147893829577460922224564261318826476702254662100682461609870929612306474274519806866520097638987812071684170547305733930079147912548554572588387106951863937228809966923190058454509245384060361777127691993901135327351171967680534573886301264828720884510222651691424836058096038598313568887755768515539456326802536883664804578391645897852418412489059184051185379197858181541091305796673915895789874330254351140409011372041179094924016972671260258237236061750226582175879812970194008626910952627255019036176020310352341644821096282647127516342776989380634454603995403904307579458145271490524196571165680214269281461368486852989222986611205048299224535519907799730857508484641116331056657843159157432472524723627048844636306466761460082236355475896704379116203099392617669310342222199329641742168408313101238229287869488036258441638130981087840717820428633378556760113029514246361886623563815814721581246406935624251417250658407686545811727844531386177961023147121653079139796123658587914417406223491486226106406698609656496593627327348322574161398715825453818516011099481377917594422333402705006500382436037511580294296751179715284419748386847928982405577907368789730446839848047931492419985654754882966924063460350390492254605321331350355004359796162304393742120640278956317134362598783132727135179846545434730116515818473641085444240247815545234297876089703796916607505804839241347790683765898031871195994736776508831698268974500449302817609960561781520385104053102714492306124080736545607109028732484596435507657493205162236215155173031209594050268494218401887968548350964634424803308495929743491473970820680554270311179439110489293463539212279660058290032417337210187312892114143668215670369121031969786102290487001754520702137623678897855517713420034353641311801670703592781006713259726993236925030198336556360597660126683320553277907588279921012855845565542888341425232537683895858042223693096761748409167228098291797437320386424665509742565634837233878281788282502748547293074903102737203087012700261078804630780365737681657925502667999171951266029110183736969242428617850639153748199501967662262689733919022643065660549332187715396559948784623226894772526835619464218844091582506227810042068303035930434752474328061542447969550239988524236686441940212037580174070966054277069366117080736714439957032838871989681470887390041268556232656492901936561730652221172252352920746336796595891831881243845075277339280797744182706215945809410487224011563556414824976724930370275672554222350654120884864431781297756055530960794366193635183054605406784805185111568920128415401756920015817486741226487345248767192433093054556787830690747068330161982951515478747712812338358527950404444839288973674844898643984523445591075180844202468088616420541393263031372976327777173139712618451749092506960968352673098291566235965682543196173196693395513782482866970138574900459836830665764928339179301555169750422249812503745719613846346425398236025217336586440893722061675965865979391196839221924949664328182722490274034214945522809875227118144040331890920657989128924544161714214191972250901390025585555793685496684478024421276604169786552735150962334334986988871416892666630394201171459639710828065141043122249088171618757393535225478111153506470238527955639044878508447159874559589918695997511978217797290890617628108460887588748553625107372204557474804598471144600628255017601743391798837412783314335863965377628213117610588389499564131846017402897025364839841921355268839384431208319204992619511720787469593501869278156953854373477099382659794805416035240501561377393171602977437194233751755000835999167641582884434626500906017900676176038015821696850198828857622084476315960046988798862852754239861550159883522439260523972301543569813663421945086811463847920572945924298334455753771661502533901175207441370475161535063951474973099859009750640245824818178758709301826808721151275385878608478772844556357108541609204171910275220399018132546710784149621560953328730617499992232368465139587814555841449202691673539211123127152173793184675644156848130661015117177634014729407904059456432657962816876821128295286941659878031064361822331066020695637134211079748316807386815298668939264168629842567889451684791428398177096721340108207343680520790666079033785139818227129080016079646606134198352150145661740752671064392301227538214178843808101277362096149642284585775860048419159245884345866795989382442731878663461586297787834392864518568340426557077483392170084213423324612444583181115382534234203080955518577732391305611883834055770058144320898017306147154094640803645611138498428386203763439913107501421017038827436576488729818775519433057004852380479229932048011840065601122334060496634209901706678260179749261174272858947982302711846994293025388686003475443455347651643255866356474626550902512957060130475370363195477961254439480459275147376277385638137865280448658231144348218508109885996122576172786738984281344360066937419446844788132280461614134300584580545858369630701532687890927378325894958655214625826200324317711948292255608145294405591600320235448322100834944065098297780853800943115667572432260051156298465431835842464137088327689331375196155050713679775561076630167647058075480440107867473204001417815331832946542932935115376281142274334346520525033003509223969158282179133388633630337665937871565240584182767533826611704573480322293515396870709461295553009834727192125598711675196112314492535693590808663611043364567993784624060975501881473958138148489333958264946625856287034535410967598907815695494498969080687979573701297401666498098351054392837943324157455886157911444481751791248119536367081256497896949206282002672134161787418265038504395843739604996336925749151374663830939841156598557953925339002246176794067319611137334460415396501692418094052073500870335577499989337317846814107251779493297576801538318787664037374376768738973279212536559099914983837163917588329229290070658700473611381226248856342861467824718002016816037125209487425472110017890710169944202386375843019752179999537813711352714521638163673556896374689046292010702459630229292944980771254219019229073686457041866561039249827672829041001356328749700597661643860224558638304526248794484441770450147285152248682887616630958502713583703292046816265232836433526069964102148139756687362031119228015599827714386421200813896265783637544796263175072523714123257554891446834335434520291903745354020942486829524679339344093970461228316137217657878744269521398350405345443988958310643805585297665931145775548993944844191140733789741137184185534020357627514135431697590529491177809097460396795382914693989698046865565400006684082999863991440388895442216145049734559193259239134368567787274978050484112164339199747532888210554767118411125417235180045987666243094562436328035162880582991566197985980096226628372790790326413615214169984617230143886434926405751415458091148225375045335739009943941669815931367268161304879552514956219111217330726735941166203646555536800157855720400161667508228949174540366333228730713643772175339931286393508538101145775981410666285751100228997530798226896407443123865508286561918925636651449043990628601809145241234108982585978625290294732923778934650960396961787309997910203801779888624882294625423848944307827242711760363459016034517847930721021251226556421947785686155962634876190559744978450847899435968461628762470411739566203279947101413445407405104398807865424958231968132008571579637044616755551135042498573735066740394272303052344055476113219582639101710889419365990646512101615945573699964143441900768108834581886809059227147255595468941222992014543001392326305378804467143528925630549828310905682913123318130621905053539334300471234128193315963614585447428776025042415244637361251704701035476959685064808843894167799793403676780948182887116001034377487702736954134940186052521421873995680469929278884030251202203380642663333236476296063384925090809583745542905652028998869877183310557199630368351161907259994087286602950218304091287620018730783179327491531814640958107242247843078549948143687089079436786514210372980173201889120450334742466639632910228927760788256009693791743764489617290973517799706650390020845454158165459100993130605869402861503388410595033916960095006072655138554242170657560587850376072750643389832611559740715413630052852287450008523610222406609656828598417087791327932885471073667480894556875211261522496599298977965585668414628966296954591146175515524510207443606709309094284336391654303865585087049153797742359634693916001363904686701978263160915684430544781892187551844453994677606403866182744943898872331402377966076775244596772357549008583271890325175059493807078424255345471337485638038242761692207264187953392615115897055168770795655326867987213901606480210686609624194120671244140108209245773577225455514203239620092619246625207966514043678130100087149101668274943994894227967863125245414595560036233521398087314972405406669000883450567022073875314348135553037630122837813690742797779888088835570611776522209240360729236945900150022349213840353974480587478271677286588282901404741548857267215331872612305572415165548100092976586271997058395401943835654278013064712327519243878875089881883852722152901602817309926388284639330331400567450589647299726428871872933470073316322276632621876255746768285665011146862316538968834227078424961858222395766131955933839939264509369200194994931171790882659457683223634457420128001338372279252255715979949110874981854479278627033105577340722866297535834676107112149910363187331477283314545628185233501108872925102445795124120056917709131195067930788475463442945881192002301333934042059707805027083822938423045335676631033805393844821310965283155169941673308749998878858692658524127761129933056339818068449942844866198478417919046885421671436048565031387634584791600956930208134282688015350293405090237681359852733275886577147061581741927410777246297469248041338505735743685626026543539181669827558933665835016454250383147951562452114256682977873811064788293431185062927912901767352485794831184297512775737595848194595317344723416881101633342274383715412705478938857860398943463982011788327581698184370551780463193784574081824495052499638561197273768859224035502937830418061035763727367948550746502578815912617997663227846821790335278381901899408675200265437643394501697573146683362592005368189656664694495837499861430424660853013774202548767839740381745130058150656086864245333761597767984397205553753722800667579041469032693839565063130240242705920712587500589778685982251579133798509812398272650543570987225828161742156437822618034625485480600037196568822728299707907115804925400293569996421987054019414090243180445542522993169180603360645776113621683794963916781486566254664812150714258027584108502604556970956491040130031641770020513357968742328889478005581519931331470430253181105209087676937379592872291234302441851340796107618727252739968972339489424451359266037730081806947428496698856124016379669834493095838810479156139676612472775164320799563226763877679956953085556578297089086885468202515888719112678736867167429894890927290080916888429368595076391125576531458449162320718409259312642709942975022236731026770101578601968723044943183982404544447849553008653464788273497371604579115370866937625785470719036273419074419753534856129431021735218924733954421689095058397105206945397495068017610081863041997283758411420443385057624549351219794693140580473559519634032093400137916465195856709459123429132999343384534708180156309097459512738931353250637977691227295844274787112222693672480267530137240858501034029936547247874171747091878362782112921264949932859894000659749420307076710218897072357704434108964045125278920266016107701092811344523307130606425726836324272667402196418418943199174098128883508530916182029068466840519433645546273528416953751293725152915143079486973025251933511034403891965274834622024035541404494091783480329338675732716693803109696267032771989068719370050228065636489361307473695157352512571431568006298701416727850901726451712760986342193801656892039664793870080667820244924350872345352815458070954905330602155922468994348855049737610602307088199975577868385942162472279642554051034314870999031152026709836031027576390657713115505174401643548697868153338545504713856682491941864346499166531059612713296736177328806731004009583739698429493716757981633222078024041075139259337256325398658951828467399815514645276980094229571452240132613487022693343837616426975494055336223778270741336347833165700384168203585269908249946815328468278749843991981281460832036833073284182047531812885738400735588834577872986493895847369622385198614021456198163875775651037511435279054780163009615439746309823740728955117655138267309131600947298519988489903517876237759622267832939597005305928279048281942300822597387818377863241534872551188456636595252240727357261485442520029194618421339318747324655173712933871233719025348809145646992804960243087656641394319332560829185871092628667040173122046233915601870952148196863103549124164667127477894898733438362652599523247629692771253466913813721802024654816454183941232988415476171518506818001782246241393971885851724909235782630241869886811927360975930007951831675779816276314772785472755564823374707944748714627128223497994216523337457484965809263496034397669378068790790143965119400763314522917733142138714568884624975422153675874325041767178113315103239475213691351294180781757613841089462453725942835200069119013804582615984376280215981362448772774936943557391308763644990338489077868574691493354568496648833870866613462809642660925314244625167559026730769738028463812184874568085659891529061348803597791807035527215549184156038981941433567139343066745706046435094161294750508363226704591113077762008687313723907003644009449737442448648890293265344263514053436687934326827827705371657983421349235962288124348613504205685423603902869240865263972067558722565716523483518270382103945748342467585307759362886063813708618205335419985561421595966983323296283473308791145019546615286674132256711597651693460577176093912466415612024997397769766108888086239136057022178255655956682297666286837246347084860981721379125457262022342688630827067135229542658185951045536725395918698393417631639455946058410634879973114026871705015995990299032635245895616787673065469856813320150873171420687159842222763408256087649533214977314950640048638527825869352685488204106402809393828623034785667008832411575159529703997137181479180469307828739595180335184688846806274111482536336191402255522102533492099861115496905894604000011754271483005972559330332576358857594657674224197629784885556620642504984194672544941423684918958249408393589393451697295712264379061106056190104605321994035941672012324690675579110226417848990058909447687130062708495980921373225665502080355040104252846140877673002031914991412243167724300506581544691105319404470797019642365263133635197897266321001049012769639109399456614989366572601520606350711450929219174145602263711989640919372610049390090669535713238741317272812136718326615033655677844727681299552358186580188361888957481087698780359622171105057293343049831431831893911128710655229924305343389519140210965777645714536744304709151844265389803839418917204978084072665546815768901965865306709186766176348041604202859883434322254030075870114090031713525129155953531393312159507605176814887027371447707871772963555737198758057828446431194788071295849620738190283195299248265798194063901980519296081648962495364285506361063201862813859994172473077381228406836691092446491365280588972243969879701211043241169075941364265785728134441402355577549209399858534739334192374732230661354283670057144182417121195915562316272900051759206266099895045949762615634028368794574798512812354387625014002617267053685494607712596701046734850860260901005982689188477037273609114692419958880665420358484320114144022098541091542952244410354094517088350146845922598766074861809836853910481327945427369561703023397094158038523944170783912897010987362482187452539859269288857807067281383506899404440878204107857345131160874093429297891649793942294253975570538823094829116501166588201021970847836632599484868774492421893825365146817307890167711690067857407724143818567719713657709864263261908923930825989543204031533522728671119222269960198541353348780173128470412360053416241455450908272450853081245963843305895796906457053899828738231203096416708089185630073155765180380547534527849310736515690172778966589501966104700812582950188388394260060454869716623689174453779585909501337716608755537696339386269493755206288671008324065348563036548441054023279864777741459881208566010743460052966638390511117964425904266807116945254533274565600401073176052597505886219491222070647607310393636284986375097315247667982365535768117236370818396177282519957405880759691165367417269488888798604325270507501466387498620278957557246368530418876741324869816136079473647550251307161747579548925922205099114679358341838124237127593131514948032800177111972300069710171392489658608733479701683530211965692582987395200494353316294302748744219356035584716030297866515272037997702379868344524809934077655877376255805214730869990110219152859458820091040360779700201785554987571224889956998917045308217659879603857540289102080380703116422982212725530085218699910815835989289918069727371574875263195260656326742105554261439559944424249877266232742732911754862488837782193602699049011721353890443920549138088489581024836492758902179077955452690612026078112846218103814035651875848569577780175587985067164344888543940838932503516452207187431535455173937290288246727590640002336575027232055746246213081439770988080900050231794919649985723789372007499786304967153561190800832046874222119199647539469110414453709105756548835889535671634609129045232786491256365132046159891095230506622739946745543828962336077175972533358843138426394041616374444016571050684388793677570500685497614913787464289763218976693926484099390193556424273193030899880631696219504852208192977094501892693403966708793291417652936654056559001665686933503735058448446865905030128764125645051644853221659546108493709221076789222050359270576098418838196142505004068818798394218995420555529993810337828020470327015433081865734107398776959963483442955235298239913878887684859994284200913484136576096834928179306834639703396375992295380698912693044041448904404510776078868107350576480094139913741917168492352498764775344215971049328732851153665207581375452393270401607734782092065867974495915103898018044650171635153542296707262165010676874477329138113195336144752686616444430465611962006870018903962617417485179852961933026972339775082022644404922019084600971467389571695359348468556020293731494768730607716789076244355082735359412891903187217411280815820626623229884151603404121791016671464234818371778075192567997949224694521705919946695203334438925031504569962077668757908699332795051696533833144011649965739730137372027370524099942751250517642075640898884948471058028767094926375423151405708134814067676254441407143461852336042749380894031415391300195719210186604358340944428274584439304886141801068543244065926098247036761979709603161360847881920081564034810480314233679614525343319946235074203331971844187235778235564857551892252321480304518937579019530740989203913347163181491948359083374046325532936128437471532644542911135430778014750353921005699786503715455144048298676621271624016165504790038891551010612352432616477841134609116942795774272417654370887217812666324672363088768536511108885722649349529600019162455337383236318177395911724354321329774997689750741370496587132589811250965099839734884166114774972911369776803838278929106377875107256612517203901687933267339172925328433566845540070659155485380628433734933933992541524495081600430221633059596072828023754581091636070648367485826160071374904725130168127446844500969912091265180266607744437069457304054272620139276122667089435330066456326748342969095140438393625207689449721364499885891882315586588007011587404210935188422904497126625668740525573369632060815774433892202811771638269000708239725966643346058397593876017077114650493937496361275044310491539761712182520817455210741370816009924274187002034116923382730824783174069829972838211932162370127917894852687648226173250650347017628781816358149945860347719861532562333403736418101969287875951825142130648213701966431835737769955056523776223294940570796016454175109673615022640074600526335994479836945848579587858175800648470846941358337811564655615583462462950661798802758841928410361665360290710017047352707470487884934388140779410597748037407956256501207942687689344690222034310836208082713045986399543364981279212397586908324022070250395183530007082827320891233018831512451820419842246313024503872958913975944321731778405804668839965691112002340880748035685758256541581123829094740132210786024879309363475638769451834702182633409996949752886109684472531191836883635993360556388803522052249370177727083519288174140288814135905267384987604142944816283242723039150910259763690327288675793184451019146816917546881942312722646467855363790314906033205956800894573295833368132516190307872853005155245495559864280131259155097757924892626011348754360373134276225387347405746213676298115436146962601451959081600287481206675728002742752092742449595194194241348697781315034912189430636409434886738990680598284535071455629740579859844914327721216835828710019543936980884550599362314185872451070441139822411611160655869854052628032722595556129151436914872274484372604497961824536946524014148142672412583091476074076691910869159110422660975999444509131994340884868652709342763851378146374237603490340821985262352107799239555608904956147515563811172159081102003964019942615676883658789620194834709795535588181900072316473143340959784072134432848858388300749416930560754298927866525021381906402183894091086188031580428707382938291047497640604677496619033281879026739889449497498622393847914884302403519789813069655629912469772644322827347511109985795402279124142647529072110297445855247970112389509600699159376506757822297868694409673034107698801495695501447285914407522578189440476553200107660790261735396140286690881993109974858507982620642023884505089778011689347957372410414982602448881980487990257626378639526908244477720626786437445208875923435494037240480362389748182396271852147488671997209381331301593883127245267418579116395855239274585777343973163121282430824558435744746695935140220534217556213456513803083664421214829126807568125733985893855940121032542005289292842431872340863781434961844488456193272627384122416291628646849168579838798339946053714753468872020694040986549735006242457882510059452435459939817775963819775707845922355838069304722264188930287542908730352854811565376984248853177750013142121895523845106251792731625297131948766197142812401818410215917318902221748905631731358001471551389522107157766224478357753954550481455215458389943403189896412315369498009390581684058414557912791638319770807805373017789589137901859485107837023027139010180547357373320657247040465222112469628696046804255497300214946892438665833360227012391047054659959078872332620570891594021188890054248976529794174676945854032069206228560328315139212370955244143226943841897581381263799715029079700721274942967528829983693114553514283483374559967733994853840375506118576016402478960374683684882312883886500598669420500776236228839233098147735761225329498115978122375858940686847454294774995510403929831143420863596662758411560664530291262130706488502414647598085711869956865952955186354643845464281412686972885835396825958518333154192212758030131137124037102119696395664009995052956492718810177185012156753675339909033422051897770733908168033368590639419952165026888748185095429170601379833651498728137564866532376486565540486193944480272457749935932386960546260852913627910657991824915322805139112020453271613834836634046760495690369486572957387125635644420896657291902651021496797972163170708541472266505701146456950665168936254940613436273258171788341979347892989241872418279869231865771734704751739897191855986724951960079311951930082942271672854926567085641327039877399485118219296442878708365718094029467442631855637110802320306594647083907578157551360960405668812740093795037444323416225101150860068939037881495381012132318515823348761000584973354333587543192343839700693849045485427312912462413220254738626549624707708817607321875133218547612777222127091715285611603074072203693036405084937889827288855562961465562283410648077689515965950038073188962941704033369618166602870022805662316828687313141802252721274835130802337270997611288766332458573931471346943943781140345543614194177463123033101741828744469573669571359689528262012170161644033589432876823713620269752500394287082022093196404168397242621114630382178898408752848183094354779868807903098555373674389399819585595568075687216941338979486747655457511309754860287006028125790558030592348432807323868934117794708695198079830514983739406994440170683625089925865718605415791362576203006453714849530569772407886019544011698497956010072369128514516582463938003246771415336609220106971446248547988809676534874956822668018809034008465044113522006576357417869470714850902724673989746905786305007980895117877643385359990137331521902996884418317837224430536419965906755228886014356084393544839626957962942419812451334566739795331832398667905912921552929262778854782039061761646375274017121861170635414653153833114371597417737183858354005516628733169889847600770599143803649204542953970989378330469068287335143738537439697220677655990220759095548110545519957119617628146396929500715858530454185478309384274077878162409225459692293242853532868040759477688596225777559684066106975581215599665245047467130739833406093600979395014210460376750357773248988816171573355508550949749904822996550546339217490614399538087497154609033780788177515805994172438543522635219011593867949953212928541178225049882334314481895386227739440648330939056938693358609204376324488983678684464900766675858121818755726811584566148531429686760043906499162312406200754369893311166262069860034368843291363052770345206919307659333621882569604867130787298282387748273133889489934874893160790507666722201329838727856493580995034330279464496653458170141691464799655015320642430797440059374021574875408865926262352735426842237625789892877459049859302210266484481986121400577244510871559067257788392411695354883308079318910673572914049220335278261554186234092060893774058697468769143624449104528268309231326715992142387433682666557829782274890415815304585934943589469675885765380575805609038043870557659797928542702111861000460901654188118210186259021162077835895580598112888304952614884196241914455838835097694142998501463291412641121190620646170509334436964483278863534855231352946454293629377826224990112616110763894524637121067225087057044558880784462805982195689337473527772089776778280321146814674166990726006962881863853767614065743577605495986661405836066447916137800837664915859748411238442265737334046926936252828915348655830111181315300912428818783655068738118747972789035492237435596040396586349328674459816832998440277702345470369902706960291380179144868885802204649582264505236404524329163242264180945000556523051674845535737975939972017557210816807873121927027986206213431124254557485260076495433265472598605011809986131130726626118067361646746658096537909178668717855720836902836535979837000064811436728022982385227500539840409573031318270192043126718682857161329341219471948944736844250119960171834203732829182914756998324758746829291385444273901097004071516974069952946800989980999403628850077150990944277988520969142641116623438054056667545124096476435258306619733244887392329695762278219160626627334003655158505811723637076880401034079264085198834152027412448106643191794711914475715198960271785877082874336228410721588861623893220426288334627713956040017264200478066833482928908253508887460985975376539126764722275616395002191386149757108067127067437518556026722796510033641963416510216871019927928647190883110690503204553234567368262297585876601282758613261135299369372711657587519112753846077065849506539428629015785669571986919383506608084738717193068942270097366190793473582557646376624746798713849285382104235618380232269715441938223532878819617241631563638539956499283613050244560640855662715570458921793519219326596003190553384631819931565603755355247829046259694703840283246184884491780979145779819334219530119952934274719748617770525256085774077144667527189842783666768391007657053416853420768406602906534059495899145530556994433574113350061923910403993845751839228859241770860128471338989744392457042990969222812883389112577575823454485526458827875301080988560384534725594434230295231092616191943475921632311233513898037025387345651214245273950399401026317648187523460398875157508832767458521958852681858496413642099599126702666469874951576172627330397727808022969232631923526973119181748029977202889080972349817787787498862359974571020391378353935202674265759563812664162499793843387732658215679484844944892132995217688919846757773260364791377979643813097136024622623917888248435774399068592609034967881320971093988747561078609973239251249617009746501853415605649504373950061242986480985098113333100944307704998225944640046791775000913451543652311177419182092341816996084205668268126586476548874167728675713438929985099204791655705262067546992982044050567907600594170028650216968182809425412581443534632534518652980290908305843056769376936218784542295999027332934611443112604298571601134999379654693849937495524468244339990036511443573270423083191900922980976206043586391216011030371930197018752203430544676630861079101358342175566657511206192786561535937635951084950522717140609825827491085359476530875136464692025462693075420302476999489195411834796719071119956757556076789432951447314136057032120398410859276214529596894328240498427888392139643716272191104313703015906264701381129350427729012780395021814333440705616873149060597795733808887224578610204261989982462260015889100609203533655308229956400023090547363312942050927900973974851722205610568134885115482755391297480148843747724601262803326363998842313276209309543265683156931410340585740789660033283778952470885806649116701488036439772817007414516328099625712935241398207546086885573993490719841082692802315984045012953694613072870710692831119029952630795018706542988805397061673162898357650015761748555273853556040008905001340145182583402314203592748556261130210432414543336828033295003273327559574446680156009475677245042812774310103312108339114059502460337467287810205870224369194346870572497572976665719217655685571579327082228019810295112544316719799261060380087219459439476369413354651749789417551026924165588003136303152051682801621356005759793935547878179934873236668243943375735475850263718978232029681170900784250599359756698172815890173284679213956721335247497110546340341029139764446211360496309364743661856026131229108316187860236229698917563818606588905571259434789385495067071428291908230878075817201432875725756699085159287042517675196096361674860328199869240101936494611704853443747207689572368846709404157967741280661028769951127330075016022869723108732904823679918474237709999158562515021670969493641287913372756300652954803733329300129617762885582211935333429774877983545011553727874728896361041954089445039929692520267883355527877365264568723935852716518224875209576935225616168465844543998165455703955433189956225217769109940510891360083431155418216726006717878306438571163536504084911244896140551242773880130320984020898909335097174136401380986990896376184317623265169319932448270990502199774317859541732339841560010150204434737843430275820749703483999802226546399898232337028301449779887016833262237594159141155944279739313760201107874806101018099844694765009050985052944148616483676177165042202943092160113706192923031187916547632250177546400319171990652702457208084982615811533203105287242376861362398082105052650950874986567256892389194809382044431042351530511557944005682902782367698299532146450441784824777997674915480942399443218908051597381484280156928105860472024897321030982547705735942697877407872148129009753323302053041391074765785329818809323445895608519449595225734200534294307358376099790960758297138985623095135381276526910182912047840832583372847953472746818559239697109989645892828440150652627863774433560260806078404650774724206760514668648644431446645699222050405635330300212270594811262278014564592485040462478374034170077838527440236956373330220032641365409217567007996964189247573233792584106591165071372338028794104059598569588490142862550470234170315440234078439146436687582197082126772224361777375767966530979844609698413439896285397004496877333341621420354429410282331212489510074194786867981970489106852281244569316765862841563696840196933263484509225845418324785535402362412319344922030849593603273697058244983038490053554243844988513170844120094459323998358332348853981605163064250208907594691614319711992343204022657459295780045875363265446819997315551155867357566267967354342809567699950956511620150544291523536409538181210275405145207680432857332175571635176082608543144976382737220804744479230448152099514177307458236196622225288501485709068857275046653449987043529838781193752553515482836053859899473738420939266218366203147340713905494100476230536455546028909044143537713950696346279563047078126378908630570016899328472116966905227879377028077377487717213679580449772218024628097746887648544848096546128009218863103783764594891722260382921096953090914802897316549302392606494452446215218296934393665999061830057345444025258918595836494793522574233905151167054407944384670741855601848531186746985677346316107000804701059647868287110064866022810100591619082611699822255112365517112732810940999643156554110913039300559081391654967651700381423880342427206686171649941904910967391312357925662269527624661225726265740559045067496836316824011438084585058764694930957073849130060839051078702661858810900350141455657334711556731624181758240410051732558482446501674058675679343249060697319245033165825626153427532454390643963762158391917719335107739237248790604031778454198588198156532260340586303346491901857694856088072788009006693889588541804186353952901431952133488255062003889108103981956347108564185296167722189487173363914417111182765588225192852177609646924802742876800596211157840358127678748876521637714400023079518054472334180306793198391527232080142621777328559893970531653460279438140625643009222085105381761535359413107332030001729034104016102583983568962644084668881021117934877176474782041349697085491252423272168085959209536741839001229495322518892004655269487384841607285496184053068774206317446593138823537393753790483521930083285141054116088897978629652274723933867332531562185686131134916926591792365553362440041365020208430066693899662859940250595377751441150227759895991426526733789183916847734281335562328157514558681965618585229248055533727526518273551416140949605567880793403329690172244796721062842976456253085188289909489114427998969605102492060547279360356805692167335862670527231555004173483536969794479199750283338668675970768193437706454817255881390939515743544326763847712775541370596280614107238832579314839628419816461006627575487786864855702498334731833905311918843930902376632925916039767665118260122462532041560305037566646295736877659295834594466583588370761286985191920667639724717008574710302439499980967813769428893463621365258344999848710457155754888590274354797555639673053756301277542853524646511884305812858066764618539758339179686549720160094657117193109394994866314861480682207170007371711917435051637663426984548168707064611791858555176501037868317678376046520890477367450983091813074427332219416011750511197992281493978193790897102451392438698685936665196335549870902647651419905209987278919500696284797124805233456951343734497336923830950126385036685887538076568972277710521261656481930655824770176626838420192428597247660356106312199311036159671459735256914370303632012455267439839687407203177577191861099738122326274887936967553355731164499922491382439852815511659107188130520891738349093653072145246878420751053459410110370807738142905919652599934530348405554742592656129343084277284128241001694627258586089483685910586337214443127713837102405604894921608685272591831063557771268625340058710277566093177098608631625123562199526618714562390362152393144192538207801860310337307435140130592806130228232699353744322836073772003034294599980803955592896505891131209768939275424409056376801040178010219736498035246209170493397265280249039167610400678531508742309981001810876427760226870929648722060121774782917875460235947872881126843424901848232005806080396501508702372694637903076079962289582369288682914266311526195225670393915386231486880129053355996621117317674361620243853079919842350528046775126412820839669900069577592766414892318436721965022476699571905082503428558509735895816410049712083173561547996438907521929242883031136528199995088651764080462898146737106707345087885465687018340013605747955282375978293573538753048423671483334655362266489952810927309034222733047983902617028109268840281591822825556233319806233265431330175367366567723934212438680616665748375859448837043296420056877669381328005120088488420725388110000216905066399817732436868878451470583432177411539197546135702935379133807563129970319277741229050014274253787270865319962555809433440441748900972764566390841792046881336915802202279398825133299030915852776293412464268852929924222889152175075102184285947778932431166816005953377586110156014538979409294382919757791913204784609609458449292833261154421212356004258168207782534695767459205402705741390498382587884591613734389660277818825320291994294366444961600817836039984910155702330840490069321158133198800556201830616197750312159967368286333817863371047080167584060974835531234856076618242765733362339159917490542272938361427496769029489865934413195031851101200400036819834211421345829071372360759585675121686115964002762258223285964953874926315202854751538508772211461704310175237818808059298410416934727583383356093563367916355088832889489645621958354981741922192094513225647151348246532150838928109027649898103751903615568872022071420359056141665350267620834176122212686465124991987713604150358963907767488567707164904635000858316946693887439017859834130732171780003962257926754379967089467054781145517339225284843473517453873452954904636020097046649996042382557238776414634933606706830364125263007159594224468352866204166745628138930219947798865389055867586509665036611990716428543467533715123726214458469165753634901184869349445033337475903290176679128371688966192438849656533938171629893909819673788292867451266751418690556317157046347199362599090705576089838253732907780347161248655196100509909665617322495320383349875881853667883478639407358592639960418063725584633194404848901073068610216724789640824425376388201837254878821740856036589761026013293304983063754120344701865286680534297015238355688981914159061326590570866353842009507811589106438902129062150087158345218786595927021862355313671349693747396778056338780486437976849732370626643621452206019550342891720485415533505538297034910007184790446172522637231578915943955070837345117276010391052576307429250230444542882832552905733463389003850333114459041883145742330588918510399525970384709918991439821215341127087101992351185924430514880032595086365779515498283430447936090004788671005265982730595274583521299324353043214649555302497565618017041877101520020940650475110479375136242156416427815300732824058338629722620950745288379196914735560634011381481417228839517303715046173732733391351425947154001537899884482873806979030573143055040224102269631678677349648107967464583386666436826701129199731099010810336793913324047352629916963970264284694139745391381669800876274756036893148672452819107410784367048819616163525604367375552682213257305436906484140188042911124613826488585489338011613437722230363033288811843354386846209522112510538504132614525739448368429547691323325950524291246158091605253264919152690035084392367692388006793351004876849574699144574806433950292600321436338749937728033568498329455710623100228122239080411398719692155541865028750067713452042067088631891717664748680156267006806908750939337103363098601778094441865784790219765739284549736623799497908766401292639347418931244691078197255969469683309657630343324867261067661081613442016855825645008539294880424921261116037394638948683042769008990466030029766321472494694400652925015682067023937224418001201242847680466529004237018338072975089483090116782920408887155011344906921663330697807165761833339239129493993848336481913896673756967871566179015456430393027402315734398017589092438952898479064972922855263164743094587424605032130126904043045716320912488440548410616755212022983597230816273066492044637100699296216730061208126618055968939534876930242149288104619408868136062948883657934454560233141176413998671659333189944527744639621359824023028801601648997484143552797370117550703816282221767504995562074741556037305863329946545981762903609198915641168789577276457647395466099794756848554022789601279588237291937106778632732507476201440120261819050452460198107442852138959872858610007885076331400947589099773975282838165740692616693451493542335552531324007523444759817679407438503696508772690625589297092235390156402231613289289710080293717045815044445819612381458942150099679191902256750459110896426652052369934684782069816499550957503001711770310125275019834431847622929734596576307884350344947596496584279690148009778714064802348162169004462101318550087675100758605543131685848467900213437218294508214103174932346037280905396957150376234965621723284070489890629283440388578569587252582055336432463168256808475142513542360922922990012587979820601288365347970168634830427012778570742511232431997540078796970828401881968375790190491117748058409782349736964427490514049577006644286614267323474016219551221961038386628684972918913940783601008437113233186619494490294746446267051482555198742041447446956463728596748875526628891424298486610747731010720855820958697140309325972477935226570700955725127397329367913751614821743037060352950482775605040749722940330934738175360244314272274010834519820898617754829699249622712097906080652734092830194229404264938389203428740758414379894406584444976299192876399256008644785266194743958253835436167780971952006515705843432276579619407526873144721274750984136671849832034564572037517732265709886023181973411235596958016779745068896517355563864070348607775341026884787631572422918653076672096216758630330339483143304554330894609365294944483858092231448466039483783032289603104368791464018852703034445511883134788935232985927821195496981734527452239115113980535048110565094342690963250224379577273679723782677415994369213718637735553076947577590962451468092496711383763273092274657678916784099265061710082922455185066380335054495374548593787440994606326321664334650278627056599714245493186180621277281779953720638509824541944940049381950806244290677365888183843532007746994314661257271809399133485673575788908386115095405536502027528036722410636320078571685427221402628935791657436935164283041997530578129528911277623924560812019142577298965024756061073674303390144675984910192717505226261432175022554901350485019909752260768531535004664007409061649328723109886888469749010656845971859934602054837328007249446414191090856538691139220195438656710142215948148660315349825424084175560118415725535078531875058503333923303186906555493963515717266773154871232788563885105785284978687534414880371143612079952592805471793124428195542253517569209025562164186285570876595353060387773272496540063484042425399707125118643255187339547155634709029273562590586445620905243542142518489642040804984872390513758919504107713558567070240632806421120565588904362076241971464461227103742023455194324469835336384505107390894840020084335194336935560799657218574675362968736767087834516832800665945801950705547040772208963291639621683279404481950945973676559510282176328158428135977270574072999477514498140436291648899075850173058609390738649337437530445367749234291451396136263845237489552784581911958286041826994582962109446914296963857513135733163748124333312141239624535800767639419948386412550974162038756978033870530222493299430778080749527519413785573099148736765868638760664744448525694468825784139786631159100103506253743929345243573385039775103623189103550802594058369716221147014961079463837295341849933389110965629339669572222305012907967304317057107561310866109589542229277001221438482887930003515181771944642811448415041832991359826816202212611119286506893178088361219550348457139593838970921838982379316500058559417678611180166814584889856765113277014422930331745123696866027667322246885541701495467202031677019570505237630903967458645953958716207315728481172580412650997858505517351163283962189805915154587846320613529430655967162616564983504004363117080252015560503089122529792424551101686787651656156694040001160188411698398446437989991888708934681291582988414524938330588250505263727218214046888754698581441861799344410522911118180569928990076609163387901805119748810151957773345372236758840102723441749166823981757683694205869367716801236026902086825881222649088403778565328993458021036202598577942973827633953371815119178491716310352522813503787850093012232022784315623502223678247357987429714104658841279484161055493302042843645831898634629692783246525636712853777195405313732055097596846374244074175980280664623088478697579455321015272882906393751212060157764885655267020616773187151071210795380125099564677229600103344394721453517362985048937659244226581647573402247317807199070312308009403113653363443384578209993901249629687357979450436761001911371149139899828258513356410084163827138304381511096054103033398487755068169040646061518143477154639352624221283912205012668417793487767216776834761379007714088103096614484767921463201792923810986352017799931339854585881927356202168274522701784809749533180612294513798031764459600839289654521503532613123176897601146994251692159330681576418367774736435784385424087232735846022287122481052057637123719192748491355679042123472768622197184078160912826261482439630933936337497204740205052765879233369683891197681669876191226663681313445047599480390896010680633269863867368547181736592412869349872960248266730806947485885435255961216845660658738984244244559461864116729239564831246119111622483210656845951348616147018716161577482020978001800347333867228118799296917453533129646483359520290457963955877744228583058176609821089154915879909080672773501913777512083841870291321047652855535120423857907260843608121530168160010584197873517069051943986326283493392663165783003633874961828702362826100932466560690091296423587152759739515239803922827006780461414026814700147031980346122287276399902330309074689806213823316793753724060010803220898277729967219432800573093188962250224928790355608543264317094879038628870818748714935023984101360342138666655382245789606186668894386589704400360355310109313313599924996312318609939619152427303420454535720110139631029915213045220525958756533594447285796106806161077786297741490223466988392716904204308132645305728464964834970851553630245115798890153365088149803663670568121891590172253600386065975561966083391539236785210983287642793331434456391046474756026968310714811775883873080969811296084418534364185129418990989670391693780480638089136826444475142793043103263539807313961651021474092582248696366481859056974061735742020343126531873849476950527969610171837480057952469761708197439802802265477147571062330626118618093427028771538140344112003286006894860269679550477454909408477177350700950309148269313986276632840202176122978460285297014221772500557855075902197949535470825560582766105071405096116793658182407394502556893312223271189532026786746376217787303217078484676116419449991871282546741277029902028350763757578960671443122776870686201742266666397845705817795675926359481446529875861439260461153149035816155121609416731618786430036874575460735831890287425122006223941216779780080698120828998717717385445229555501913229740276881562076512725397073269754587999493464098157581739529280993844359103726782759132608518179396327352676929409072800325670504833653745057060204122881293968432380922006217860531840008408923369595138528790839782179167479387256994073214351334157046390148786730281684632174054687557521080993157825070070742285645301770456262628775069127600233739116235488989803527279974335031251543007959868066732701803874677062794600399092472327559547183014332737742164789233121012863455562712757238267473785957270378969947537740321177423683578942126107125326977937927848920178514981940949109504960373899736243751354108892487071895298121552985274139292024107526924889620819654651476137975445358762809605168842086941055701258966597066267626436571654901812148827945308861829619033250225330025684065751399383067573653300971746673376968499361413792307823979767474048325883299541468395961517219550375986995291732003548698343934089711597551327124615314653403176781481426330196177041447024506455206468926184989848819069305749191662799759934051613052190566346679799648920130317465638641673410619930852068746907208909538755123756688115034035653851814583873719846434718229564091770595707085262141425309242899988599887592880985433869119317251388341982901835212284165876092175230448249407572911584878429234715460880707358702174818314531719953159031559082974556365899381804098892838790427188657755716514878359445726377260513704818065329252651299922107053446941696610477925310354518923461104058379403300418194724782464394052345663766711286732526280779181693129508844531007595342717056497742440196726089052613166368738538413620196597455923502254113353180310546361288845916472797680573548581803288097667628088856208006785725203649890926304076029568423783438185228127541611716422227042934674331642574193714782689358000378652669768264396546254221167774039661105062629415886701408793562222822586169851162242547291570584011279315679228710861230616134178318510294181097107375509758952983445551057145968433707251892047110140682860469689362482035620458238946063154133600143848397914558180457373602178066905878311194336607247642058963101231880071575624998768061387810807743886614785792883649357577498150910550371695922114466948717952477496171636976966410365257350610202132304595729929217381916902773955403880668052140639087695683366091244423585327084049586770443921876738606473909611459762420584003192916565702181265559434258145552833080408960899482014164770789745253311078904771596765382907515690978455429827686378663977884031704911853243118070836958799426853765158930827975990342947879665344635198668454443964961747527898476538529527563297947879389740310323711472569350825195943402244569107839070567049074798820257901745720104005976898380827810903494571938062818072022916576155308553422856322347710815495760572933797631308459881628642986789971700157739811761004459326226599536217223553239589209180701944634384413913076479626034194471670412385088968981495848993979859065205425966491891720433287811685969379923932817857516991801041789886472370095659103889751915260885499779727763550649521902512877209186506379263895955709129437940664000485087293430187153749086417001050762851646171637917111306021471232197303457873340610352838359725588138226725485943156516296584439758572044364618817165882522661277633124463892936538730859798661275214236994904719621696235191024788917803398748352457278386554958697193724372481871671817274181906239149967693015006559146181423733512743372796372828272043257569576453010419193418319891384129634418156927427128878215194107080360698748943196428089441782715696498456710669326754424361233245315514644953231849371735435870597058773825605839568326096815751354310793278081244913240132026267314914803657660532980611652066257596355418347058547631220098896541417860686289269175550937335542592921541441387469838953898300099466152728378994716691621308816674919196631791211918348922450037581839102426082359452176038037456311007744344822791084151225964476135455125221977740608301742381165965532978173924771576050125182155991033000682407111671653646730805089866632705966595715596291935451059480232948591916265519457548491245153178728966284550293655874438666435622964837337406764828317444345858709567574563884275129062512561940572397425862194164782054536272130139200833573937895422639924722132489327599567982349516338349410052689269623103782541698251537858777534190318136711281280114849162275822383700473465197874459726072084208381758094088861060075074357092872143120955096549062761926995723823196221294426102222278611105863218533582662188188867423937823577064719589913828108462511339568308885695416936899278949347089498828910485255014550066624369825753464904162942711956065477852504535008094980922698185307309728189830499962140562153855657722253469645094016171094677582332953629848408530328795758807321410249188705917285470211247661781935810476060778448967321904144651566138890286011991258230309086848159567852715782595612170291087819264941016206144799916073451327049836314898099397452603233827742527196728690143758658216128088938193607302044562723525215314297794796962106250959027453984664950262488516258077294887692448587420627214380755373539114723260558734170849488647016423145878373777064314451729498073952635607802229265012818241187634201040717066477011153080955767614214278523235005705660051478467862988517740578007479797087945440743399780751428774633043666717029706126770661548575458743902687931380972639438486334309766089051806131519763964639288311735776761944606165145593799612382425916615425869280191443961954793362503632237431349391545307802101140203747864655016233310879804174337180600608884896715630820304364441413361814113538767637244722643332595606330852248538982790960748253600312909859350341149200360399335541224720516848575581011303283080810785966981354400681857977473685367963927189300869794660318008580866640304408772566264041137236463699130337699358932821696212195561209953303810686867938802332361358097774518436042289004982484641545865809824522869013972336713079224603499064831206434444670708936908006769309041704621267490131605698778617321948867565554677696689461630752095305059621049175493379577904047463048971881143488215093302426027668396521383199493380129392681421098762579115233057196916516894626182010019962612271409415563933168033508014596399828546472008876283200663682341431567264757789191300111368076065800667046377480750997414150775117964533438112355425514066742755442635922455786386630774969439613795357299989785595195676356311719793288822754397896354559940056614695308584367274532183506843619993814741859195886141979033582923496564921842275596374535004098643744664560130374326636192303304523234170512071869011726515503091376519624652845864389973278088224352897684090839845649118471152325924167279723599219705195132765379245779937479206142459151177697105403499522226139566779083823923206077351311471022921853501459219099285441711766281299191949939006770205774743441140320127589189411288391940326145161408642830141322146266586063609843806620896144765376999211884510689403098241801006413929730490404872573103451984058105694039792595323694544666738322950711740841370684298260432615997492106352517297871798538537260595049625811863056304396820667423086680824847473123971522884333981369871776849408929824293376200000416789032210204613256524215867674505884528693421595701129101390172168196036979203017513713430926708032403651623114573667321629773083320620258340379086602077876405897999416973719015301030203372981850211434043107737089347364588496450628661287915398707675654778061742322489433440040135972386888068850663633631180471079733353448144708342228899725670295883400673516865586485322615820419382262380526334332595406406625498520097355418483495632750255345448024141002233251041731696595793154360994836243209152191225313043211005388518321740680251307990918733159460927356194294118376965617388555654336111105666135651886629717948118132385220773194952281792944569957541133086052267667883321935926896729981814538189414231069531156813274587884734359291179965266023052260285457978803863875784310735993704596280134504995495513263307215508596934083858798020840246957731599726438925299632700292254183832014164050213727598979419349932059255351511615968857428734098369348117850057454668452466754830355424053599623404302229785635345409178558126205069127887197290519474714275231222848598162982641500092050684179645906564923628265452201833818661184753300070259575392783586494657663197640000546247937204183632437754695041127018658034261808830542401264197807830397553062456877102361339891700186251949435420053398119604597884437153959291503829598783156931951477146321734077719597521441392139604100510327398269374322655665650654221705990982622182445454709842172024663583982388634531964283728052913305147844429810663024284088358095547563196100491378015312732164958072427107472746733870401049963870748230281371845542572072913616600079974135688979801156002863546908574237826356219932398836393575729170765962907003467139444550880857974706120531951814963619664400338693573672446099011229976550572551710593041552142071155937914180884756253986954560056863419769214570184406711484197983955761984089379602734054141159945139053805017019670758835488814149777925091048897656174570761185955339647959679459844417158924468080010981863867201379471069674891896664948986026192081041985679991945037763654032481108002722982137129900949640979033171907318613726789448495999764284369336442218852482109846651608009939056323743350033163979758929971417195978890631471021939814725052404480109033523876454572256571848383663179523246700445779926844336658284630193111705116596313120611729126124706955983000702683842475825738671279144999568463371793900383396863594743304447449753462204360196165487332701282129391133607124723957535564118230250880411345153821913867937855273055995573738243099293674233115492672475284885516959579730031132499440437166700707628606868080544378390696143366800097483141906613771408394482110112652091903241007718273957316158887182044923726959211574695458484858797773608262723495578567775578097788618282366130985146709800958089766914058560081660579799726200263680409460835023400833303551584662125186911861232720956583986397433734523219182911924392234412572527026335293372515491068210029383099523441140287435919637741741739513581293254420355167326144194028189733217801799302495515649253579991056550696745808711291946229464341253075022723857282514440360254693806979031216200485163816372408120210658256675173078712661356874972023457029833966582151216308655336581169057885007491237318262435927871625009402453387705037831200301678014449456598252131171431736234238562748480666837779298763604378449334717806628011286107958113931269087185595467194087201296444105114851778719539953976192025571031056394152743468477101604283301807111191779469891814453507188671840945797982744432638986369260812756497431478502032705857561048328482860474440283238755404892700614121939860463731992433054332093825030651906789310597587764433971095490269144310948682320295323436904184172735960585671397549089484626169244233881683005187270123988239036917752379049094135963958406907069824292750208406968646285468160292133129907312918549937383266771541477669956887304129453160420159712786840698368829516944250985779506235822553495787897800890763216697240128854404840463554372537884499307203534358682653415739325144982685343523910324102845958710559285794765659880884934950592699474187056105352785347294751047482367632533154823324566637912756687461450961360759370693767072505644473656282666047411704006765454958411323845140861004520824232373355464963669183288639820024455321334353331164213274056225084172754403802407730630113575482345492724888958001245410787058495045828920309158853997241572355686318965080313464782994729126995039567552893279472958133894992131442960941841235201585756242401040852648171527698838366367867601050414179286169849854806129043533970661666609462982556099950190549953029306471488007000766857279407300706063210926445706949760282204377012609198564274689398919277507925659392004846577648067597203764289713475576484796423444234377048429325752172344489791286958459801308529941341963682844793830033310212670827612911286120520916444298804215449778162019878309031798101646108684203797660312054495492622301296474989833411446995835148427435866536044156449207879463689215225254397074208406392974186416872741758067510773817279888613765355036644509826455173372927796928741681053654356797754845232733377953487691647424367923008847927311264592818093046094242753304722861585803121978836814836178517607797567235646969979992751784581321729639702045017727134076410097824923745060357789242970556180899107152744050524183861675329355801545141133567765230703829920020975063308735168529067547102480758782703147069831493875684158404728973789890083536437484208984738975036502500680234807588015994683484092233442207005939601858200611481840978790795042938133651411969753731022591779441302679353133985623087216043900399788678076118566496810112269621490391163565463748564949771864105224179276860546177004588942575417263066192842817954772494585513376462621941620505143216802939820724388643322085825290974097434202948296789024860680319096930662480609412663906577753443279738168115571883937146233860396892709900659201923993530065258865100663093556093762131182524452052757721863259586315816748682031899348368778449996881119790501415838016339180129724448345302408476188776353666561259741424893425420775007099567226911696018782776324584244352824420805152225579017415340809754849185007098126375013246062682715011699422461653960434418889510381677335812693708973402601606077938233222898054622645164050271049507177030647409392122375173651611393969067526340195415084089697614838531605271271704119147578299687029695032600851483431857150534783272687005151467994386650462015565813265238898970314069223738164509201844327010246912922926407833445775861652612325050984460121269169437801893159077033263655279840552046113329749387157435659886131474542689914545900147916746739443034202638890723605302837749585915471703510597334024125930189691275082200254047173754564148654443622304133651676146078158224681123131101794640587640580213519935268397854038421643465742383907024066248567482154734391234382038637569326591015323900909129962294913592510714841289123904828333333239999091546147545740212620525182414873368505274635712598742690438980608868413906483955859633806854740717663333847683729394974190609200784746890158164699698538637808413841489082588654438875283326001488916106170723532913955222179451423449108358870785577612387129949104853375896300393228745746267008022102435052642742921054462839902603893344627572509703624040924544415570683468536058063088901137427497060514025729345230124688384547118083506541605056716274560652879522670343631949598452279758432713404782860152214542773217319416256122758118412141915027729454269576199903146484679121236916933858509877996601217298442254896576503521887393226013757645917970983344503391737290504557921612166265496393191427919228529739044117065708014183161551800749233000374805285003183050238785740754281302922059314907309666727748918164053952776616259629205770367611730961951308851885516026896499315264008640549562483403513048710623071472435654680227253390491737457225339989192140559703213235303025336790185817970141284491299944033904085962834631183833963502408961697015243503648233736819974032701853056926248831067559533497514036317216418095088940640017971816723035516409393494596457853505603243520900412389588743763811111783119635712399099091892918147374683342215081127706976231718105488198282967526771411676330798382140131931531727317571501918761772963201405694154048378585559902360769278903102427269077457722121404629590182600599417201344737506013346277975993579674349761920314626110701795117101992115184042573093858769923796545743439855234506477796889009212162219096734218651707741145527012055832416406524620319037319282480029382204932246360977274308806674660072608423176234646382785268247675755483866975994815298363578198160783219341630692635701426394886229137094106949972815519393873089490401520111321497742514192562908653371334019189121605911504596640513084799994441591365331461462017123786065243248363390844539090395709022226798569593108138733916129033295970261207077330078045615276769201152477825859138312563089706498762318097082815600718477386396672831659720678700215823553166649532549942401518398593781189602930114840164154001876852373082840627683877707805069583120314140000780024041362847320370656602358973204596390169744791669192906291972940723344550478204404460718296965505474958630011639918733305779137169983584977384750177240428710581307614539947148595846825436205142191407868018936045675964056203996923749635772204151858242244008998436349815554261093871168611459424047476616083281275719058342994247034836446501945710622737011107007937986751809392963084527006730053629905394155269801823705088462456241646470234865589711456677526905409890680992744154542854618483044299763964774405552474126617960353719495308322232037628610079166553874327033752895027738175695354347062138759679820561994734422126840497020690559922870852368805606119636433590815880181982707517481987450247281910998130190823944120613707044899011300162891272780146247961379311929391311484369432254044444137966461838940844963675080679843332059932285685825136386646842476002134145484624331783528431380883536753229068864083254662056493955153975836534242698272078681057153766314159417318070337864191844444707137512866017921502805442085156588665201420796690694065224203310408366875448155010583774620100479553908842534659273504735691621560700614423529740595902440163358851041677468322883675308772811327045045254338630424906945638182520875987657536671263410925239815080950838763713365485884665168079566902276886557708296604225187397357241659237926984925430382326512115592093290201978769307543117465928613681866720576345251586006035959575846661615580105198754862897715409325861745898725096400911478297818348158948025301265794374575523433122045452714834851781738226346361908630862706377610384512975277787986008642737374018984064225585883155196981430551478915852042426256447255240334519899467280650538329300841233898601444122964006758431813324276929741947350259544746438956156898737376994530908651303128708231604169903248429360221017215204846604054275589108319334824252076929784132809514989187661720007769267001349152292406690308967519069473179563666197802131920967944942960110603732456973876858565994993796998273099924357919694356400370269449447921785988155490605164920225006467123234813517799627375828885071537504075637711928125127275014276599487347019179081062118519693084159763296998846959575469744400614530275809635032339132197803672681574566081956789487510443012335614829069387270639838740378962585045518695147167445268891692882443019334838547970274319760859190455837323649365839924804163009281787774663661397219449109346462511907943813654671204939458931717771515549166110605256955402570291000616258121213715251372019176574128535235606836684550868985092141836952595689676362469897834693488644424343845247731521100637215713376619289025425418343150657057722603843508920512560473229768927868748644623025535733429699704261752212997532947979303106426948133440875404909495244809007318966598263228251505594951907642797832657164183681361796450755044951559544885943051296027297658742504202669516480785322472424862028022320989667388011730096834244694507504841036094729360524279501081102099389740465846983021231068251147897917141296711851648217530062281987685899519239654974358803379398457635055913081115431814549577426602403177411746781549639976910212035476822048085476034851005343713040958029700127510839007773906230468250585467607896389058185654326483354635928165923615867427526238913459867089720810242519581925362914467617428840071315193110015671250535477702914234846028629981181339762621821898533986892061352804688840312688994771787050927044015090015286932164529961428863673618139308228322443863257750988885381110675187502046058937523022756444645605331117842247196412510704511438832116584462436121243407771977827670134849649319359040605111139276934881275131600619311707685742492437388284453500755047347697496598223080610881862119003527844741390039031074175837181432010894023263071180322931012552546583634643235797967788918790873989860499291324062531052496047570227154572143842964904732010464151855583874212874881916199732071561276868277009213820935726284208089973826846843666965746402887822905121215507049956895212886062946092431923819497572096484146428664486059551707309513422323579180878944141660296783004202250212955701990294498583041183899279154596727884453234107823248438420156088253556775800776874723278031850473342808738681576514571694540285229538601034229982819947175451085094159653058540671382199537824127679258418501094938193845439705876257259152063429572869616978266084831447355470857226657391650160495404505013765617561431300551128534884730710069571437577620420562617853678586080509227015546511195183453358841323181076814314763534734601017580386922414107658368952225958678831083221470265942195455739028457645801975048258109860802911154447961288778969353160965721442051310485138803669171232975714702264557336525807866056277217076439527172411807103349388735778853554350727132313132985448801096980364646114733220008721912348494663370932552441483552638366369079009106649566868280673937867032781937697952435891394539691076674384917775659259377263326344886931414745748583880669475526312913814030839674462205078254410947040297398873440857949771314905829139772899974180143548043656788169537149931199550976575496898005799276345706117176020951764835436545846580738455582139791830187040080503592422351951455823283700349072000513815369889697334918410301716187765944755725756631537135316971122883527989668097625194344136303853638285390837885525872731867320729968048517302936603529035354568984992199011877115001527619687547752781437932955813714585815961837698266225787490355053446706852469204253009761145437043528592900476366484254970912840125649720470138494329497196342984686933943724572631684299102744314109964758513045715239516744050887992772666517238956286787595024264145330046047534737135569552214939267874276163194931543138971894327634838501462123753838842411036992348058662794275184245521069073394328052629964194752868521114872134359367240748845088120537355436142812145496565781881300952458758604139896308741483518457644520615188155452090610225045899878269043681428763510971592274296323582063126375101060889823723856060799672497382572102706811972407695902633052218542875387515700162685627695210629057959029939348104257764228029534438488727797850446306704516275506564519273508449382437554698353538263484710473878949540094903612772754292989233175527431068999064130602113845569008833492153274374730211948728380111906928491996819800154844888086583890356889267308808953026100056575068308800509669435472995931622623463561811795410723180411257994211856022969401095641285416761901371188374412515880287468390510314934422706617079208986800097817725790992705863019330688268019875460149390961567436042377076748605172632545560392436716244402291360773185553115023734960123567961721504169542706626260186942327641097037750928403222824660475860489818059560888800939591742540246421833059923283235880698142741677347187971558413012863140876132447692780240550210878054532464290341608081497613296425696001676003979732814041256256146732915063250274446156820427513702256138797667705135095590664464702001041765614166658717007870194159231128849434855227393949287020444577254161862183513567661809836655067983054980410643858379272681535542104444926606614623233082323668956943788207385914149867498452113970514657759577582791507145429388466471542953968306836030912802683096145519457308884192493446181961513716380644673383916291352837444193064810412400079618701299691829862740599493564137801859444535538925134773393953352654734492358001341282000894070056088385129975065678304293326314008502091355001935155501685275259223334310822753401175373738024573546965793835017755738237650796496272191403137390032162373489076247956736068696346519759141884386968873703919254654086043433528243378791214386338794178705134131176852696115829551027625421554694246235396288327432746934399645991696693979149162977453866722626493424884662901787674829806218582499262026900456767750352348735654965961827355217794987807398571064383985524839258716250675343315399271544060313481135703016382910456032310489082100573365327697177447085155414977641015172424558908746742924009545540813418068033048980943099200204058253119580845433503159958321152089668737221841572719554657040153240191063139816672433589468159754024910453017416998516417435017482091302599028067397680561475852738204656351294362607618275831771275657905971474481154915912308214949715456326904392766412887704025878295553678835426180868608037776227707329225277718027002819187868262816496139309717560009653359077112834244077572717473705357718843603851235264147664073850169892762802366627251514798483145764344912080174128265979314969147776945762351514037926763425074228454881696073979182426058845261307746666448380282425111868277805439782080872786096725423492968116535585878131616982669994956705211185456837886634776310739820788516026930297760677267728998679875606919669303149361753873818185481456770164099323235447903802975925191312013111133200495529864668338213869272885162352992089418373020223425285318186925714861694671597564075033288117028113268741780082642800554665693244940833490688060906863988606709440492843184021711749021807262765203803645241779271652449425078312279444595941360545684406645510567780347556096243859957968328036196325034322034643893966047809816042698580484192194542263179594991897252234941674955178002356148717779867879715664723539713850112845640069549342225134757620709444096194521352273760061098551163982152197513677124604603321529954117209423554521211027702051086699289560382496720489884877089444557489904716767269963410957755095886549108595937822194103005361994099734419395463055482042767157806244290053728631457302167376481085813125656995235286226173808661570383428226875099151430422866801511757151438049959469792075508555074297012645100726030749993506222280771266296576448861002700391831025936072963742177545102796680270756873284735821230591456482894021625534855044333774994684808518293093799924917065429486644964247758885262035792887009430899627519284632242524809175705587094138628631868269747828570356553162614839820279317900567521734874344405010141085288682501362657252672642505153239295908243587831793799952468050268519601562697745984182270300596539560569233022226109682108350597087436131229002469872757863266757279858894022065404431800563645497157098877035769721223039961758845191971067700686264649978756566791611475361337816108577698096641023326783993444516664281034736869861238402567074252450601183198955956811864514261420367394798428009956012650801896126622316916135019274553407784443328778232246534452726762886721669451876139249431493389962372618383690736396051713562482979204662582317557917305596382588277647439664048826524048191798587236664879942093409124196078581975272725164211006082315662855955809137620305795342337623401366318535380722671901448678432299285605327713631331857565988817946426713471404886303863587127957241444662533288816564118048036264669520063867410908490448777575639555958222830316334412301622755768269210860087098324690811059087865051809509603237837183112161535503441391457687145743066307966319904564519401784765430381510457509140665107007670347310026321694910875698659259282863344768379523945388272589488538663752244381048088207684487947513947209508848052454442989712476963168441448532468794568188478596606123504541197096021721868195345487401523022798642820085181996676584932447063821377848193041814718289433755065978554294982448915463528081450857673868526470823619727759836897868777055596620631691549183700082900970080958764031517790180519962600121543895937580063741970518824445663841906469798089493158442962045470630614075348665698779053617322212969375466094376593700023088164807310848597118274020882140936467459629377271256126409852872905389853005298737910808620154737124529789800082174967005488218764315203554153448577300964583680696720713275754355282291742880312897661684431799590982539780279509537409613576078932490929885874127631185166410345957486904814173326345198476188039440556792996170874878327922791285735081053813212330778291863618613281017305014413542400641936997341956762587039408856724002768928920515799724762931413700259040768115335590068309917883545446767302724248281768480890228959146017503607085269978794888885419160050061009318470001222900183552073299809506067913334556466852686341770681032414678630141440084028639778491083435192217133537981928630965014162136399638783612810474790627713446267401173934018669101676291385794512083995215207366727310149445917090643448860650952169110061880778108284451679442264423141826612841410004669138505832310909418553262871426349773958305266941615819237776116991916801291987293442274768011671294678830602997764746746397368855660484216357198605857245666793760998091890486317277246370716417997938067781443142322294297354443679546835878728398929307410261293476555854356924303417678189812882569611843131713759007507371406747456271565517608746588025641073526466037160897259069588684287805899510495819485589858965127968409344964857504863390103617655812734453965071976349476621310626535571971984337169557888421428135421917610079839168981902872862077709655744362336475650438012404010132627303445047824990133949676395357888315987193656230172233459949596189155169536090577522413239006124407703174632014512470436723720256399314110980746493256622538029835508938092767371937916589008612389611753960167409467846640765521224471278030216406316650196252729684881875011668880105214041746030037468302932406580802584794365539717353876373176081167224191210666786673221450178935599130221534847537700987891490960861513161546218683532610749953686853274181552897603537488163429923587919516202404140706828914680716263667570772082982042697176449961039856911951935401795403957969082201094715619181644665896185700276395523710761607745225878756891404120260027581443161374208244289820977773633551574898387231972930720021304430566486084479829923277453854773394368750158094623959894986212578905200184292581224023617964121793460575039567905638290038029871973593258473876459296287215302551314236461108443878472873373095939964814814970845383435247004345748791975091233897045857197941993723717050392742156300298268190680849897755062304709895257242574068918681530692289123167055057834681185623110347777065927926213961089019882961520981127476794257512719534087539968451276021622171890865669507205262592233410943907574659165158040953885094199314205382379082763803548005603807292767146814264292395152352096774389423541948192824774945794605737971923515107482287539565700094591637712304180319914676297015999388806152739536151182870747885000685113769624338608205510416700786364698237057533916102510352024757541895207906337469590070816384191672866426816891584841732765637924837368238906207272099861062701518186613789624609310598115096255628879933053956331987056888053624546916393838010032418863007057716108761162097183462700079304832271992069639449830191606399830785184582921610473457964179732741754746239123658215705010839904256815440045946024181138795864413897772385416382162110549267579416094764574164624465059207405057419093708988194928110149760006399035889607164589471330559441271486323571871868141083206976197405337895425057970597185879101605623377611166426089701524458428227485850713495409648506371134757253523748055914398993558023719907164549538750132691458655324721083170085062560109115162003459738975611430739965447895292190763852078046400605903886762893336586096940631738872462270018734130343253917982058277296797919158881383988332700725300931684179730430647000348650646097668291224095499510927524011235163813271274127052157538764541587440508548783826885477012669346778239530576045785130058359602546865307865136833209975888254429063716170946877543549001125968390424872794245302075129664804007303231321389852746522375016988815946040970054116943456441102906618950128341673823933609708644979510356216135955087805935541215679447595523981927349036041499243987640465356972305302309487968860447336158615734851455057614919959920442609318709352698051430675435491853895539660299469341746180816080942182910652393854444840573133538031263505313964867155120920222584731754775403684954269849162070583407093465670053470816603299665245959791881444313290231660852705625210303568498229800570524323975854671180611772675748165465160902520614629134118662485850697887106004908990781457960535969413486026246764545209303415995079588989655945384211541665004688591360805075899923922572822107662202620256667012925524651856203339272809549055077956158897548119156296722507909386994161547045771625563124784964721946992692040645164264668499026600068352066826800390783044232975265253906435066946594306916791033043905378846491535334479564722891048165961273840910346923082267363032018823296379626691471103530880189700244558411969121413517023877454530280328721615614712815988963230183279785308002681360709674379790603903912694417567660724233492074201344969650281644841120997490069825302936012697646482051255249312278123090554352761796229285946182415820029090186454409072093313951184639900271733707161310111349612089813526637394563501794665743150218136491355449780943972381136954121296896050566634228059720326712348410181739547118500161117545275102923934936418154554451630168572857524028107290324862025921855863566243971338506541603756158536925987932109645053701722906268931555479774185733612505963694258207237454103583007868748479008066913053691868251597003643135067618294333100854573695524153258752972683529584727240776424146697452201784803360872029501946149203554499678841162176705598302347697994767967433509079291727027749516385314508437988219650530185890548556881847722916269000275521505255045663804520093368381735079922529181839187721873125778503929363315298466835802606017303217358643952427232600069728293854223561386776398907524506089038005046643969787269758930629388090795265624979926447257654557824922326457924895944778845597387335303757357280243870025682245987220079628080072773682775774392200296906002887453017394099200417508450509265622726727797235407613801940271737016538582120370335671650050998383269409278607841193086345700563497938298299249929487077330842105758467464440134599907676224928316706963802481923896102415340868673405150478830656375945354100212148089770090880941189837724477805206727515898063216177965210271628345552781445431702508339273670890112433437183691336314917517503332199608665194640797823584102834514073007840527347141421818604461556891045481139237376229887575082317477317946338024169196054191711799967652069739470689974757157305438446582995231291664163760854779513410536387204381305936532669413047964654413608125890440635811063184764754266868908053870049904081414821347968036869922597484445030780287028192573084015305481332822181326344706006013600437053654675961382652253566860099688205193890520199378278920066306930905142322130356087344986154593783578955176261600313389844601519705336637427617612884587428126578979360426132997859897751770315217862214025132095802819585907076619994448236900283889199585178577511460555100471163306912919024905872106301619754526159401172205652495817535115156181594304417964955720192372176182718142842143808498432679338129430986214885560908922065287314659786195511047633542505232461281580747369358780302057577556562565838133090789702833115535678107868450782671413626090444736940059218589823011845617930297425307466003655538384082169704344212857160259884447450835303532881298345701187168461500519256167042024514731681090188539167214592463023203686213162123503179367066932839854215275908883724380705044562734460303476605609456248217881923383798013145396764715982185232344802120519865251746058947776801756639461487462616741206845404051768969970184218553018732727563212702637512599944117642397392345817781744558880417987388519647497384109775912934316422178162274999386127059452472580778500777005019281769226006706655288815793664011025755084156462498624645379845876426891204752365180846077153038838603537211493889829712978430097200409428427125300854604838484985476400865560672351328764078924007129405627706725910196353782694211840547077523843384963642990558159614593030549361879883501246218723149502836049778424739580647216460984006148537122360082942534556029108457678400708475562855811551196657974075451069005921547006279333923338622249296172892031854509119692996403362838720949491052918827148465707170589250902636270371858440509722511268218523898672931440328032910534770217922441619943536009816878086336843754291184609260301868273594051638325025998247085863665668537554826484233703737799896449150588975899918747137278536265308923711885262600580179089251815234896147431412166514159016444955469365518474561899123406316365018647785900092931672871589347336467290282703123813376200244027623002512337138879986762640306126456680757706035206341857466816763593558610366104018927007727197562102102714483329097262027413583020252510714530745013351140892504989974473064069322940022981176652336861914349191258521494907606791799441274018434040252683203732773195355551568254396075533284448166758989888368068576624859639196019046038516565461705976573374521694137618726869722965155607926783087663437690616156604665808465094741465424527767955383569679593550683053889946201729605567344157622117105335264576180848684134249953760075623602574336455801890336089376062108089047385239815202557935798308474585530697380009101556298285081016148598237559836321589668966505164746696244787226970004271078227492130308970782548844831157722345013522674438183931676552637334546292207995610692380926697212465054325832854535651847209020815646698369602507038664312104237124981675975999848673530880027824160518213008893819288512583796784605425645630438528646399983008979929379009092096834488175730966493544778557747038403973893167376204499279549110900984586781512253830751497824995019417218193467075453966395144849534213850476041752623503465660863159817469560601694196861392668781377440829460585576152595916220621942023850995039697719334382480571157859402070721799780825008274200839331245777760985861063416661819533040067929460818324459841514225566448610200088263728533267574880577739323399549502533134541902108186865314963340977428627613433833893927953227986727589249445047141447831430559141091041665594483452322013583492231455966956817217585804580570779452690711499521786892608439597535656156934998553209822428723216726295151755318888955811681789019269321283161063923675220134010933070694411859441542001244816387980003263226194425528989473180824369506983644276064043079925465139596406128595394252903218735030458887444815952417165229459027217814147617087612217013461392981538222922311675263222722977048067480939410272084575948669197191182461767663059554869146071200796493784447552870693094583544876432554878051637364609823843685108030046127696523942551023363939571887788600585468048264011952399327871778723580849141196600355959164654209288705650075214429921122222086622862559621096683638838979986536218797213417879298031490054711087500113849309559640498534207678019138389686073775759359642775675437272535940178853569851263421117582992481045629274530629156157776177917314376501167577528153535247374965235689742464349474864799144300493808073217350790567370035459058316120045674701394732802099110526567436058646264538186354986352187561951128287601354030995767386911022854365240839653033660155357603082513223207374560790296153265014422163150124369819375392759186011497849412617851446548771648811920274408226574119949162701240279423089018368534562787151931490981297590813514976320385121713000237836453967528005167283480978562226584157279053292547534108377218505421290265090610863115601437581982088912494591169607576856401092164978496310200147372363128382799047417871748305329720818414020062217293903348128263517299388609206168546207113636322718210459834443854336116725693404848772665165429416287997170572233787308065196402007953023567722229332514226760376289100085660642206584979940641055939379916568236250178250821220595929328448857129551149941975097441676452741132282923518030750747940753471660401115749685650020459920225896989868800872522624888108781123348880550866181400143727387011931691528410482298438975786703509118059575980819460037351001168468277773785645895044804277286766382837229819010298069939399144372638181069849922163911411324704324329004972739088045055129660731261258884324109971922390364958704883998194326536562216049176368240001467087787339965758336012078416658136374378491023825511086343275629690402795319618778156769385605295585390733891819051265167963975576616356664627915956801348098634299701867506263818724974677575176044725594418149233029084460288845111161179924970548856637618688071772760682762276137582024025648986618255868033449706506596001971029082046629846323147635101424070148826830406398544065098699084242944235630288130685097996103650014175506754238460071970906899322158602017481343319955230645464084173189887547082660467646318925859748161198470929700299637583057040143880961954339703617155098661200018337274340603150128456491163567284286798726846452084373835525011468750883636661174583375995166704845098502613304486571342832563023997793746437597699446764582916903772944277980400836747275167283635790546374219317106892554143043595837438553096929972658607640237806612125136374312758934160831241245788617083917485567129587922849284260769556852138571723822817255227064836557075907168145106750133955858208314453835977954825700346464861030501964463860173330931118834636312778424362325513409678992472431593426072247479859083858630808951939274378122729360874890826633625474322670927251092128311364982830084209605874831048578920608446408162283604547491023365356733871691867821456657834115934839422718471520857880661496112287973206916340292963734459821548824132061894360833756871915270736155895614985215141429143598000791585272336257901101695721447858745618656125059868754950578801064103401057841570172188844572082770032704193802825276765588794639327919697007496835941434779103040544938615835119919788659740054514670641842760021991995367245101316206906886447153103174631712959515024110321128775389831100772273924003933627828737515428618730624508947768690215968161810226863229336317966270037047146440667174003487780483230393339336466008719198187360588689110414600902657558654738313117114085130380990487680958976793770100317216087250143781303445905588331482098965026427242491594661040317007589648198109955469478056298909872294158547139302965320790957544972719279096672029117882980816852634922625352581801070084325938837802445977946848491846946954400820832034184074007284055611510977150233148959562038616210771628820504243760586570568639040123795124457637042369722439716684105796749176712857581130813521535296350160879637903923989637848420587087619303533169948200204971179813737256547168451127071440182342766573539653528146069969229638848439335295005957714836965479612584901562286653280289878558698746644606885147837653075967946407398224537707226288224858926271587968692132705156021602749937932686938698946042275024494054127648170673954196762618509503964845284160761309400852954608960964743076594650789031950129568469695409292687145028685217795905887715375100594092989136727704833152104873741971337383007066982742215593610159623036091921726307008051529897068780269711286252837805187294045543697681102894995954444032400557227002241955738368644208238738337790483870143745482243301889306180035006929840783855915314019397233730911035709321355269968137334264617971306640333320403903534075500239137715422062792027035559087431141995439725624087254233954824902963531387026859565226758327382171522731019914015942396468957996772294691268539898457888353075451675682162364419831322109641039259265955186123916316380044962274534940197214469143110799395126859873618338932434643859898791225714802693920733927904085624490717273457312713721943572367319162291717307400455770005241513731077444090467457841349753035946050924947102862449279631915759937305624150792288877430346003674780414291848043355447136612775412397862263571451964255253701212219206397403429757102462489460633791898949599301720045601507387087390667460519277665475987960109577967881758171038408463210466517581827216999827872193661386593193524608811909059350059629297949412624219562704633383175121850069557599649114231970394895563137364455879959202763523476045787331439002268444998752729306669629376064873743726025625891427729142451612499179407588018373339282686569608551028124568741732845620827517654831372219932796920427221786971785830093291431442674337529217064679696028432943205429094006108389234259054840743326784664071000155904313934429614032388814393178750054589348633122791825787899379845085236224492724341528524677127301748232914545315376496867256012795888452586709568211292555316695948357866180571457844264658702614492149005231285493996627434404087059623243715300686631925632593542381898373812844777037621676216041164732438673765254742209717368140525226772735254580063612953929517037180356814237249876858958196473165923951495613473994087205196594310577618558804167424395150113711580623182401440748702169808388310146065289183152961503021190064444287658146417152534505182759996369544215528573712429606601774176977763490042736277350860332601987694611288735920846730990779460122438365282535343879488220149466697639886545671432448988992962190471734499060253011708362773714537497750515130483237827836244710832017120204598123902286725976985238370685339562682343342417640924793597159522444180096394880565100943501480972674940453098809905073483647746561933603436549988643032362229743012337664258864727447918903568014981504496167013838432713993067255419638281140777020473280126045743667356142878161561611900562090378518239010598269284775805497767923445213350664760852319786861101083644043676598659595833101450661767782105959360481317794669418036570876273802122449265201855769802235102356986492044041161385289958526274247210076295376242791746280158358479070884838945641332792383972993263111634114428633409312272370842753246518552693299754440562649609140249252275289538379019633944981343255291166344663520910584987633852846499788263037731039912840399917084999559678151122947243889528400432792311534940663277690029476490126470268189406843182964159610344684198981492463968140521009239009001381423806059848514697102951156009920954531988739104414364204456638357001456146209486121516467060658072492514607906448106234720735321647622909779974989039743288584579375262363897698921510181778454501503733239989907485381337640051079080524978769792404167117646549202623783812060594589042841794876159219942091324481977673056444227190977460211681688262523019614254976864457365985885791855056764385527329748533304534543216593754642950260009270794582731862458875484699669247425495325433415347962032917306354213015809822236321238987019242754399355957911611139979299192420811787443792749304287383738204712973503566263057826842846601197364068646821692258338437221350470713024763099059011773413622555262855583849075872059388051565901226533711605252331503242907633665790651954695920230509002329280766914586022725159127354202563079786048925235339042188550331914034150264892453917279612849219726203873613450220049404817728438985076281916384312876550815242498735357843076453237540109154295288254216611367539342109837878307450030298600385170661779724225841165841925906450414046572364517164795450014695507094976162216075348113587096595606879827712902398893451466311368168973743191392341234979596187280501901370050387169612559679350222513593480019124288268273507646524170813947658271787141100283888832849056848647747325771071187338095809178293083196747751178244314132624932379047605441275432605679954672029928387764032558301831794308265481016822244604783910882496451026829353102194575850578632614061128463203471386860320765034687569776598977904655429476706114707575522653724195182888364960385421888995090482266381313968353547108786835439671784113392058772199309033035182433850526449322269543109839892589623430455425155230905303073948999419382909344881621065640040517874052162912219795638628979638454830861190254851285512131647153082072896562067803383353134584586076173105901691210050744785153857431474586927724570902072589557995267985249929698627089339689707053483100258401510018597318269597129778521872661111264594562120450275588677538131057230956982888063057365468113191805185117702426841487469201449004743318238858649442066520849344999506060427836157532185857756890294282456960247466803294298347602252355410557919163878133966419091307038928239236806551874322690320080601565497290318124626532592445155601969727088788297767688401042629503251349876307389373007009858282807075258546778992357021461990606791536200885345013979738862629900460145213969855875344215385649522694384664785359009529655663191355007341664844736151643030401917007166267617684620594776575396595594213933229435475249962814281997294574157427121504274120798764001143637106752364564063429583118284344884800657703707591025435985794372591900903422180110382710115557982438697633899439809039537707847855839155955721591241240261992244263783781012148630922253764996564638669282058452760247598013304451672891010774205428459569527410893592124708486122598914381620545187158054779285224261641973590783293964058880998632888909477662712654440686509132915086195503528870660232501497025174567902967442342423375296192725441311316902320469766954242574534047350388452929102684984417355844836974566931425226479493495925340920057609688643945321876778342049964250132349776490741986172577496603507355732961906009161204280112267570644045167770093278075410839381950908488532745645025226532316327249050945642741193238487978251249337564498532175446372644876131430982391610588486037658231956155865948600039452669685027337174720751261945828578933423106694408046289298426116998701063952676033028315318889639354887919196037230738505394534316765709547809407898601349994462917700936511565388219624628400062571227868843725878128102734802250984302879828615391585783759578918079489273227571710970179746967737133232252615563517204982909946209851366370562777450041206962643227275170001923630207016469681587590496665044314559627899274709093097615762919649596269803480202737138839216716463100341433579105575877802290588265822229454204454787381693394675225418265056515256635002214135802926957510585609556942790332406068179033835518352326256910342309748756434903327583446513686714805049333999433679840304819979065529195773224589924944149945264262439502860261225975302672810658294177378497879265353562581905212349847020348582579776042640919316511763656477470863121580399666132975265633998960875781481665492123519367534609270184908478692445525910669614636154791342321158460324376673675938870288531307728859429986971013537832619714438369658535742817081579836021320640730103026589647331207857787535786345407696645628677614461546781448848571910193635508596905210057435144048721144218156498863207608530406053256607299584618955265894371396981772004163078777558961850872722799381053004426834788849522925579937066546770960155294563797732990383921607917633287065984150127953207874285259556855718522554206258350188395225078900179961030819433504121277568338965777963093655149197409391466152068874117709834520503121882890847842393163239822211246063059570764542954572564052263258785191094566683756470838441851992437754013053404102584560358236904045952790370655411290618534497823292969774465669030218591664385138862009254414087091565819680926714660536549902969202183180485625008762594090034076951907122864853444498220899286153005163707523117296945895061885405448982830165176496773319399238443703137517583845329834333894008410123671609658991578033757906624828898083848506637695019929976096488322913732892372619530010784680927540148746712496374717616974189366344962091226971292161194816790061627571268546669000730598983393989381084587876307113972146615128237851294717342078580961299855056287150953475053461177260338987951649627928887098307109151700644612052408140548923774386179325282917444071911029986740801474189746966377560955302626477879600138915701646084129560808727820735996925364526009623425070444596633337676238050878823988801550279973316663161382810538856146755993384106358996387923532945132208337988249418640459112221878106079287075769757076510595727312879598039929709801292230261315902909917853096518693860738868299079302755022471537592433899923226088162991727272532845103516515579364935141675194278422288628290995734648203076633667954948139905831470326612762208248501470420730744964468736968293227183591432618222276103297354069017087593335376169285164001716790530199043427918772143514446602265676941667747848776421123719956570009987896739205189858909742372105263946583282410720385927913363518666262556483860675674547058012470182010668496644391333923611157055472553216998126569503663806834411031642209930104427906504799865071026399037630903385436049509443669530312771018352392617867378369977035810508699823479456929574895792031230458979793659005707964983806488565957612249627973789905352452079901104050250508049527357453037658903935285895156377786156087864914713687175329255063504686039620206800733519731099911566978821218227563059879442586584625224210797701092326355440877864402138403541998054723371484006752591688483705123237533692916777411738357994222558386741649704082527541942202603456418250018685767708015250344074829717399455725154266731666374071941256527766720589171641876121299783994429933135834860944521886567414803901824354463811587645937901996086042701313375409201972444425969898414330385757501042252771401903843363803245471053960251807393863717188551472710857602756970200062796786875940798686426457844667498502491883678396830719208063171345548683259512328844024838814256718003583439380950351112307458786186591127331567034217324881285356792168188290654039902129817720008558902849744823958458807666552237245841048736315072028693252017453683234401886389175254921623746445585928549758365538413089097052365280826583804515965397920536309646036691729086567824785823138228595599697191490427580291510209987674695860659726434416708924693634599448108077115909396746246383874245952611234382457763042750334585980455460728082285027936929412563691435610882924534617037327607268562380462496208358922784578906311720555588961632739862586641085037415275276627681311076505499858361388662905799533677334291235536089978468975100325846369568975609424519728756668854040230121405166735251677449905870133668527452680259516857016757904610373055187300542729863024479887339069406051260351392408151629055584131484182287354137178780000961081159821829781109146528313050832753016807157293135015596902422922986143273132068899536185403503266264174366133236013461759985138053012320850399743629639856859349058165556989124729736120157484887737753040146338156514448590244717529018336367059406577187468081985938533977619473904769723457128397508275517633536798065038360133101758151532133695443937271300351042125979155133638900537078500921234720679369098672887276102132816765060606928718598671199717556563786311980618479652216539524588045431715810936501652172514329860405487987273858995391956704298274146644602646456811059783058559637362253814723847988188043307601663265878770430772266406313304328239346152565415694147604070270912406440636088586230180577642177717492800545041630512219776682306825566445073947534696386638347934023026020942171450000365559691740139815597047546462449585607845310062581179593983299058438109912793344936187721605431092162897442659909635295067840173631025987791976671949553237204842727904834230417882134530661057338248220307485341137208985692163390840589955102074347881907744887722356184776290684401876609200418285397623255812161430964746354173597927582993689623102853936356797345030172911529726676778029632763639645039477465211456617873037746048901166478718995533302785218671100867770515489480237513560389498620676425784477637292829669495527594916823156874452183901516229236425735156241178080378390328209442404046763569714563596787367541483409974075028965938494785706685808093228012494177689958182455436669921910595185783620191318486100963789792288146457675061998862343913983163906381272660459071380606228191478743895346836274510164777992036258857141669323180258102652556873541581077194237811531384733488978545259937092743949810583114821576293067504327107789989652089805490781731255375224852147353529382670888641791111719445715289780499392728760334860148457690127262553106960749044678705611448103754090895292208700761726209787997566116606490906811581909782030521977172859123595698542218582447811215354248570868336040048594793582114995110465337943012320209248751038938134639518532924195569873561473045192967865671469370495728990981671041076533853945753312353712941400241542006896518622073019191217614789630354163703509594048340835545702829464511991619278094757907792919769739671766359101946925020810923054741526454350342612495673090186364097049227240095129893706573696633336681722886486288829251493607287465356545254798127013232306178948837908688251982421866433871340706869245567711709831214983559500817183053944025681953850575363029032505958501591991568875752295668508766137586539845542303734919130195465322613487491183111152240562940525335602432710746674996266314374375448599649161430777759375110049083244676508277030930996159580492814070985425385942762262130070228172027833313295534443729296033340290880439266313468487057024475011700440893359292747401451598430059610097170260908878757266407422914467525934895364601289407690949940030371290081019061222478366210893783512904225235033456519338510724240991745428619183548497255666354507192513136868260815407544952651610371733133503699731372260472756791334286054076663843345090642540553527906147009671737269359995538711593221077252503959301575207536719221135319724450359518046102069691037831328620323288049097670029728128217844605532942014127439341906096355808622746087900698157232823137818793680561108452383610293778493871777037452299735507159425826043859828072498202454308073762488526167025238219648005297278693441190151388802258616627787084182625803922832108430058814046713694662220440560867002170377382512075974954801260944154910905387340438763660464749697126339170697737427067837398525363623785883635839119139927467001708644731718894933659219052302293954693314172300083302407920498149759983333268749688204411189385574463895594251893518030866939091469168896988999113221591218967898233597028716764643776369078849850713508336355872345654129553020503149536576482688469514408866533038009975183948960548104599622312580288187997567209346223549448367173914383450013357469005796877920135822416093168978822290571298982661266556647316023220720699294777928075077891788926535597145398604000535728904042235356772135609992103931795914661359091936428961753558406536530952008511293574000752876192204789595973660176283689551108180904080837354935205785227359010863966884589041913752543745039968704369498273197166860355065663973530731247197907434842095948138946997842544106590973700964383423460480889111618042627721196263362611399663334626966633189460885758406587913090830303558267373333496249124268251384135986745257326580545615373865945967326057061092027908553067884602171879571184170411064200307724632466733508177170713052118225067015005252788206865626289886117479986204585165599896244239884877080225004597626147065301947762998724151631661564059838245736058166131368696570320833827172401848159743347025246757414812998372657870347812540858499442708614150342785710203833727902428338535712667376015012674953844813164727373532970036621215533200162679799027208225438468995010763323508637763307607755385675141007429826418616752306894980181435569602532878394475338006856245956062213541893464137507948185769510607334837531640528611759580955295311867996341165458986914786129233136347151209346479021966237329980615416847182878088965347948978701525559473719624320336900269877433131664773851444528490844668946720200960215581722266959437564290653492009138745103875104384307918697814744448239773815700889813332515841393119640579761956125141215481051225523244152754466185258511443850467825969336209808655362241683679854153760700134222411690639767851200619566978839443418611387805804641437254592216521598969327220291344234120552394618524504727811135408081793994643540551914586316489445238008976666332895663926585953023862308863175016965919537658895277050233322559008284308885834924676750266356074535572425506832052641411671336386569557990632769102048993800842503680097863007674301253957465877249830489062404196909981232018844764049211212038743049664086254958892067670996362254671980944477305942836852722102923432699437462934482030446331712537765942901033247774246785589929476797143241301037222843026302227913533695346556777780044534459080231623125522273568570282711076231466357878403675346707336212662697408836503176034802886964451074171446373571506431808867199847058160783569207998304224531895685001273280353909170744068880862984631012915529295287972334295047776690069340767712538581241360822421115167410281544876990338170087893445481299921171153147991713606978026635485064881467823889470515095725620333634878397824103746943792506327755406113424975922655111715165548937906326056087393653498320199866474990355315076375369823790799691738071680168073893166274520776093543841019817857311660708809534394394736811069871495362444120302964137739080487686382240076538338930726012991864714480906633434953708448001883710369039843969303412776585241512191072401913207923599659423600837239732612800033265885261053150091543610449380701481856823932088787972706310054361521654607551117605190988894746633141010585460695407225969276327368483113097358796679112869582743525223508145889825151963696231249089445063315877706058860117877083790433898837881493285206985472557409170367413106174548279032553665843135687060481290293086271598235649313348137959111779824904622884399507055881546178455939811345000760103864381818513033548890408601822099014156799831696166497267739600550447774015103286185004254963535446654230204688232633826571115501501157282732827739058746257678815839205595874677797592317855308483657178098183838950510170181357559105067910976234829893869400864510255285098179681235803155758960167894869059638728969980046368207658765568271151782526671511695056438838387702645105251390877237913491695683755570036739024585756289772503439399570596011449351463695796736465164311413326093182281738590715024256141957901838291981051729867211877919840990664602547262030808839763909536171921410217831158592430813307544415945701142533460644792147553472105315799355623565324545101840450442474287359075500566119188785724459012949898514653890288519048056395402342943013842590074098801395129161944054079457080321040717970384120765246935393921410077481790590368054555456341623471653155855900272429992464647526144090275968402284395660792023348500527535419788244728508320868203932460093607686504519221759061527958162552200209728398446046938776978860839069006145266426945485078292890989041659171492917791795438101364760775655867833403565368913381164506745165446784821939175616455661814343625315340751000194118124323930153787388710355436436211338473920057835274828671518932943482426549292108587073012224931802496066123838011788556197763917779169776054553617054415923696725743031555049386291456815161412594584068960619300227305159367538764323233580882723787293548263695787798838174577858986183729707370506784944622731279303531863106845454558161032517981041511243894677933472404654238032128221114864649965581898976661384609744489555812614350452535807346486783693651011205846657911454248105015082251994393976962652686847733697865068402098680200435577199940035217759673051782424716696971755735220352839004284562765281267089467030164198139446198210137968581996761123420042865931561231147830727999764270015570843453967323751161838763461753934364049274349345569299866629947431777502854006455021892655866690861134005974960465320242732244305601948423607333167297742593591421774528062297713227756391377700710270824994418115888007399674774474352722975044347371877420818742365413358767948879677736513986244371805583149145252020686428607850391636882182710019943219877857936759552868725671203776713918446486143925263320255428526164446630299862060324076540807323832021323519961556517162912835700171582505880525722044739700427835411225787478246394772938522303534147467178309616969131076615567737837804537811135551796919944049806104773318805946827938972514982611455616729324878172732371910995428065037105343917792164404522253472901416840976220084521369322644430800367353573468362683096895873486789794685727433941927477826035681310069011999993701292697005482773473283610938026179868079457545644791201750984727709247790906968526070077833111674104883658722448748092882811259824907061764369312914875956310000296462738019896280632842893965188354796734663689986741237754127183823518721918465851110885560573147114313338903228724473188596176193774779510296025015840406685720567382707483874917696062815870742479261501199880877879168567448155373433099198451074547409621259933896781529026016466193904723462251935113472092271575357538243331543173352055594916241086034589950547950082428553249115964596782127831445871758576725187073236749508350464129799374555948250671619092960120013141377980245636868886949278841942384864079479889489467098320127215020066315159455001721966017635201920247881982465540555131122995860478888310318733697599806260549211089764737145268934139828747000535902452293771672803895570737145167232337502715190169821309497523386867673851379367639920710354983469156011996584479279271821436575881473996342332777870693480245746904766081920113132205438600386795294346560216734064666366930280288827320828788656103995222502588535068719698607570907553662975921141756097606654892674467091062518126174024771956988352476432515770674514853222818952393255602798024352228536396334444795254737283896454299043638867449967142407296999965576995114903318585436178999958908993892202073076377467791551077506608058568107166832069680778873095732547027722310122526451651334487636694590568977682653264914742373152889585454680233700850284937476016425566940068589359749842972803721706734564285690237015332832480683552507878704007199762283690915304121077370714281130438542939962327266361799890252120772132047335617763776342153304793010917579203069509575053113334656230766913895301056738343713836655024716199988491736626082347429223479843341490503938193446213766254772317901355924002685083648422611929437701394056848723006187842893318806093071851804504992792887211720055118914085616353055443763998149235548143280051375623402166258532734886437284642650052010450944526772900615277416282135821389584031704752669197587191959620615093484107294373314981655280852935072591089978913945844986302286890071290934409311084469310313235072429178038725992734211792588094050577792061139647082763121571608524815988536559311073575649669765071909191218319278692703490559132291968654789659280176418922701409017280561237853210462357672355170891786917867396711694105934929985663729690888169405720864487145126705040558202990826041980748031703511834271462779261690650665380295383679001746749830637079953987600327446878472735260433880968107093165134318765409161713711505036687680856299594133714912606640406062192660414322502002735024775679407344420941382699072994905262279686478871898533248209018459336469030456203906474378678511179895646173282862928372741617661033665975530008163073331234344337731559261061037191466058113545283233001176182891547414765298844394541309602840907321867585751437929718093579364779377161164992947942761547838155596411841815345481188647944684181483242983338818550843452025299828619326243075329419285131821652597881272279657425896883861983130632015401528690046387886073821746318764504058117011377183702782380637971510697464743352014555480199198596218248537492112444049848378844811372500262335942996271837850638271727655556589293498111786685546257855203823146814042152132476124649731904191274341035851910734584570998991203126489406221932800666510760491467161599639687409257001972023121002156346914826927031728809666636094638972020751622728629306461381396579823460641021554915656399010114699208859435471921107240350609196774521062418865524571252487009688191733627499594220158115809890213398188558574924918659138739249657314311200157179603619460361581073323139509296844045089373549930197285539053626353006198813010818683905653898982034456871614078068804533121848600091375715984929524392701522829472877285904971243733906461160485105046648816827429587470398069153136313489101278532442651915701465994012499329850802782745936073638305233736602331444940893446971059644584535324289831434179421076938665754192228809364860428853714569376715234810118101742652401296190799643510949420983787776039514028970659139914399439343764557969942410506328293475885493032005066251245023406909846520045095284811171125280412195397986570479093788889598069526858871310058003747586904443125972470209261887586604307906078796935100252652983440553965644585862355955185184669964512527427925814988087948352124730876898961301420181118382033598526487214917518730247096349819604740405632152337529521099619003200572776097817718499518881334820511263712354304171576216679932651933516639249556063175577495169965016845079666629042464146006342549537605112901156297718794200746330773091996252612914573320754438418729162725342589019472008933767660107215802229491039510659393533590663073426689852417450448136564082223018050095981151009875711743226717858760083167404150384473476474089165853448750772617777729027382654381126375752180152529372540443445221139382139012752682724120366395754407876102385093407682991157893675186681172779009143015536053519275275359834605271322815221305960094030271086485634749412254634342624286381367967493437231434842999374110071529472613647364450944654822956810229489135376706036769643832673356005790553838395766811390860582701734157917046746607272834436995966859574648874019681879449519838346306143229945198152062073038158176770453912230272941866349449712695412050443508623554974461178656594125857982256182195853098765016227262178281859101158071041774450898930553428625379540941249774199367578385711690333703120820214128136469165421870818909206621471537376863002872934009807078868240183072711859325392404163325806237535080612114385634841381519254330264170848373331529234676915675688608821071663512949211372277942765453614595020087784647975512490836372529166419762476490980327410461685429912984272146219200828613078984449918208753030188826858735745485735810838166180171742263519863088697566794325258486363529531916470048556463725568026335331426907471179815282263142136263588020605678709258127611957458215557995126842040495424382390086584713927722233609953852662769377524303109818312620195097398209719711803769688132227049889781224421810117133591404806545542718923738934052480918810015768032417058059853035309040169928235802103525427282490032284444463524493732438915411695674113469894422656871548169151219025453766986730098079464177896628316229413575279541258331695823546532712675598499598874060929247818118860074083940788055070483771210995050382112037848913990336522662373455935550040288270792305886626520123074305508986958982879502301538306909159894414040342204781066937618703527550209209599367269375126144430424019241966730651058671181507846366102875537898302082338327808194615250454181959795587816208504735377083824051378710037342170177248816286070870155296257647446023357757411815027933464995316265798767349183888188851662634222142254565574119079974599634123971994494764458160148748081211599851420610302758328599930683801250376847290658904720321442640818930850982965299717197546498401013492873549260443583091153915899410495818031954757245270502423012100850646945333274174734776430461817200934635643058521561513410210078029985043986973236372145605181842559926017749294026732990620886392842840152604487281941582258355951236729025851066048972506273366838967976959993202771444193935043024572581949078477224573392099720060886869785615392838166785704091494854919037257480280038779011950274599924243109860213070568928709480965740429687745911761967508007946376267565851441269685730140071048613847256250001630920562693838680356733574675088322070991804716040615968952448607128734890666742720703569418681828239140356634706171326213143254559186614796269729090319954126596003583154024456713966539213994973145346839080189341807828503895970073499386350328609187344463894354109697332126989150861803156200126196935593770892234546618117247715357940838657232237835992804076279685541661496246083021593018587536994706035596753113093938259569952257743963917686452085537178667750428857313861143263217390072296863644907178662148133110232734048800303003164011404798090212456158708252503933651769384232479395240679774597758442508243982678189018314746893901245126793953442397933743638159667238539039697552921666714733741467251184742851692612520224844151692445224440007679041556247896710032991262962731909132362255283062584816434432421163639417253297833094414917949329435641097528635992721257916268435711752717775200674903105805627394391020284402201519569350284961009180553763019977114547968917013003595343226942494939567498507602707120976140409478447963485459539363564549428755619970403913879563209281517930671015083441701307754970726476060927564935255955883502144856099927865055592381984710714750502782739799365725838639847087160611076317715134812548253457640927517076027551340410862271933366952105745083550476790894298756898759000391819905619192548127461975407064363483500386253148948301788511819511394017230771965960184001330285768605524568506397535077419210979546190505589350135716985387130744132442874845073050767806430574157157346126829835361898624822668183597525718222672057716075616595107003070451997055793149916067709020230345808458447309630080773443730719415173485234248140731187039477295387896628605892613408827593816820216346725634066139128125515046377291147005576436663867347408176255673078676304337829043745582168754535730217187501980886062119881532874529127594929980806696125452526650509846984301048636733655723675360187289450988405521335445595100314296478674157442740371954345317434486490453636331332718027567449888552580182000801517902008063358335117151532675254526594552204290369805976845754758588578543013735345577529406484942917568826710181722393752694853695233510163475190468571005342971394382253350591077433275468427436544670839572378570441540406180076820348491485228387216498231430234453685863441906406264837428030007861578904104146046709735121833690678030199694651453607160658800024634236271128209963940862886008002976345922713275671568720576541367709224257477688638361908650059614258069706380209934465795670391767055057905800068434870661111226838426358583430516341241161190904569526543395116097893016509414875961942538265165954153578738309123147661482388325542145559025889600067016441221274954382410521277103677960082232097948322573046359615643335694623968819944754798818316306757698678153169927951295282874817921907818934810161723286989228448334761566237038761242933049336152715575782048521910765742265314411765969193090144230720387430357006634610296526183688816454272805040215498996120044683960504748953152243866036121426709278699037907872236398298897267931651260899256814279718093653408718476515508347907129228259543748070616619215498445450080807025468069691702050201342506701610345285123796658921964539435367888168684758849366841637980081601062972008003559247612363552999570963393263294827391527892601380029600691412511048031921658082650601194431013979020489469244683869887092218595275651998770778757389820361154758696245220696625911635027737318344345978643071397276792314724722762610779707189959969373855627468711233283725593369757670665720374555246273627941549484015145107516704961301430673742225517114232115374876265895163569746519818711541180295542743513522963542225616416123417903344097060692180318503433466533560572568651841940873255839255831546472693344489150123429020092873923398462359366384179297624830800721069864266493862374956216571648310970872544583621660467242613254350182561394318766843154891068493606490482490197696342270705973381073859393928661479945774580876213882100801806485374193502808712735808135883347489363099639039749238781534655700158821375901126883770842546710973522510931454971011439846385684956725446866113795295621329674186380433083765627579124253438015949876890407479535484601702118819575790522732344403571549493292922318395187394095449927938019678082309686743142477023828804533000448874344176789270936201584557350234292029527122385099427255155670632873472758117468034063611991213282218866759899155365252887204754358262335314556472917490826993105319265283869675255759181237343758547454951741516925826207956181087125617863350938974585169610713471731370307176489649434223406703980008287418280922821215323923857310807148390462646246434708290594574491570958980189632291966073270532126814719260937403988385012508576715786165266839143847507175728006351674013351084357730902778711421099635081134291941756330651197970071643101136537823891375906171334328133297086904806866937418491515947248468270180460398593121421059474743255077193055372339606294896343823503164513149018703343140373284979382984908890851435491188400287171354264932422741199096614503569118005061617797845480096939175132163319452267254583739097788863660394252975095895783103093908404364301443736178655767208062125869497665853814737393352516170636405300184647674213853886541715257304838703256725791405647816277274385767778527411982680666652643320471855093737416460585270592057488708042245986377433514474143775267687619598952198188477240465744207557701328096175013602611380736525929221528178578195912465234538342109545969150787732670598305273311904406934648499217678690706641832338231043966319545985672366634983386494979278687340308424832750532127368947232156623766461619043600270337667680257565258576772633751388898119152990863015409973422829059834631730187870812086755247194211998129641733593281615024193380226132085740755577445080641728146005950181775709556831979121215209379395310821034471714047964240369354027898732745318081975757531687118430120983044349291783437190272469031549918519970736079554038929595422030260697696669048903023251004782414598875170845289806552715317686291212609507281097914987068891878968788359755273002402106336938337446059066493766218946206861319703166258616390327927792571051051701986555949520818385079308402706036505652903253352817547562678034297398443616539093545250072956106018750930711144424753645634885919008816269467530010256348181322000560291044737804891336205595575339652656597020948519671082598068797160865276748925542906497946453930230730528621590363536640469539632073001169257188649974447992983888120346873844228187821477943901342021015735289393212664256628549163400390777354726771234234762261775131486512059580174738043978901879191955705519679799560430134783980883180716191265629105759824799432933405405606734655367700038715302758770781885807991247630544263459036273741686880325606111886461568427969884114923601048148682515897627698256330428665970952160791974720309960797686941090642439603716185187514092527411019503418631220404802420161370575383755935963747184173512661774324267088510318886080820422622338197933792727026556132490135505314320090207581862164969870186248930014780654805537868993890820459585654823842405421489672090640520973069620972291748544335519937978385605556120474808694033665470435368435984049381224042157885915221071776833328277466612542418571730040466705233591922318329881854460883498162709921300615489115303849212349640966193654180145910688061565371122044281009629803705618135514658677800561031444420522132933315883129360160286840468473533711864860472530182097134399322445836339672290381414792251379849200090713141213230629179276199054471024044290679909407089125641919740705397023162276312324761077817455005768253692507937012294321970447896227561276069287601229397423715795804901224769890705095244857722154305787528279805049498179712946585436397407133975522284462221404311405855503931134769635576026763658565258596476410055214530156672770004257635574315216753345045496402160071366573242789483402509195081616212372610413413360316111508211011959569927930045448719171232922888721101692613488000775498932416346751385532257014938858528355696584825466616244541433041469248429674446346651893386879684423304628365281617876398175143458454269568854572551799329543432567625889677476154556452456621069035166584698363203032910567076679192164924120412239154055712839773025380902214734139146535679501620330033584424358256349781020405856375480603853052275327499542760465438789281389698184261811780094756831241450247334253978027077091941720762481024460170668872130004387843019654956220715769148290151291961290797688926007754303133050052024441552031055694341726922960263124257687089868523883671202928469770387766872308947859345524016115088999163224591030840139178279072171657327821317533453102383654870654504138849248401575320420292486819198400298649212053648799843378701200519276617158156100629877044721817453624912256604062992266454361504696141837010578599606409736446849130549617431765358567144170518180226266018570862566291419446981875153138832949822446889959837625876687735818083304127658859524231342497046951740208853027071031484153079749224258627909565686117785290045806660467653908379211624686074265074829977168494630760339792008600080612601840828926451622212058054659688352957218121962181115532974547378760702413865635374840610065116195490838876677816025783938297831454525712039059042967191918143259904010524072374889029708529782362754655493503463617229223459279939135180922241985460364654700696129164779066299149485193509411417258421312578731063240534354907274610622752519403597337649836709214474417427091128093629442668938274503989006551712258522028044777884524714672418078698458288124433126229133218324164192436123589550235669040863454286334550055568742881929513272219084078460891239335483095581619339806442827758673274354521168515213384855513458885908053591762733785628642244061998945313601079737262784144299629709315315538847601358268649141234932391485223199994124206626361512177098379423028444704756335645959866087562618744609499057976039800083259157124636716449991840389825102565791981515927528182156644514140747607326298748153893815400241130621554994692977054547179231864342258473836215538432228898154470482122188596239862996393591685511149661456882276005988147427980440632682698413284915059539264073381690140398301266484312807239891582665955964817847645729776967949141749120905270093668232802587456648493448476907217451449242966600095347270632199016687927954155157394044567231367711029860527788703941956162490370984077929310151599181959198553106697034700447463683746252138068319127732320411034830181501415614846766365528602842720859586308796470856551116497825474572824009915944529055412998658939146513302665475499907870656296051701944174589050307660208579600292058743459817515969615250117300567094992181297806651574293827182680410586511977441402997691812311993316095197345444742634505221994738209752885950190171750924168424053858568973893221590813270585257587212689738171472514535028806721775172733207506510436366966915569146397807613608054733350098375291959659428884804990302766611858630611969807248422048465780511439421550547618196317204644546847144907748867927974775521293599365774750126036201793683925148468679376813787846527226219947052653486054986488340846854987092647737221455254444324899956771681394133415729777888228427625494730394483973125330592998019660151738410232252216089646758546555629087230317224263279024526095307903688249018500877894060655604620578982065187617345461329800192782915253199967886374739860821724560184284299703410566444967105754671670994209142106011225431673021637617954081600081188884833396240658845836105151084643095312173878576909617718372288413025248582361158429945436878274684759743797375221591739269425120362088146147936502086316975406451389288920326755358508459530437148293983280814522586369112632576214502729396436082835251038943953750944707751137590373771072084844900767210824059361425498207893550028565857810863716708415185217082863241950025378262137488950393388932491092404297561140411380495309875222564872154244833784227777784979676369041013665292309854023943724131437289019123215367427362793672352286804690898891673623288848990103314618301404543379001859314813829639863861441318776402719829852840408997108625303020827259954110269259771399423007152369745385777610286015136105352346059628232255307514565823589699980428606790671062970364013877274681052137911741204411003282244440437828594749571784035177837811618405862104343461571919776276406864065963682495902852050174187422102050248440988341686563710962915138086828274525714666810419643459150054880698715298516020087529545018682645963625476377944563847329567101173616223323250636431719382029867276644597793622487002453815975966256430312060747226154840306289330570704675482395616700670660687218951883766358406888378474838852325947484212929253350472036105369573769974159357424393763767534218140347168139541913970053528089422586036196757114858126453915303266226077817252105738069216355570338560631453176910353453136932146878764356851057488301846047808269469244566853992961393372564311998590913567030966938273251831934863362503002732673054442055915863758143818404723817644059349174891161895371198746626937812850617323633600376155275578531021507187781798210323199974507826869367197980196453559095130230864500459159195423837951565878882843398076654569925635249729179178494233827464304244692778969303639831385820793651242306721298263840093250852908853577643077039866743143216425722642682030975101764679166548794608069018247558191472001299903767175907054730822440584883857053203275086426861657839349106310863470479973704290347391518383655998360889304714624229903183302069009762467565700939072733777721750874230585219282399607603609806305408443213209464890265418398472456151404304133547690829548078434798360683812963898133691427575294225456324222108918629754984063861359427022560238912953035737918447954633100756776780668628035520721874289177423683869752797064113487656078080431767273854951186114935434642362801249096284926695058059881699709462307279975450920004568897027364107120248685303423934945087291989879137170544547210612195739590931399986618334223210149606152751970435587547794354166352982543037393344507900603327922716239779837854975243837070829359178627829525282772482005538512312201798081351583943897725688596787827325761250506376101930989801862125626971408927400430320193969885584817480033608925151431907180460894875050164185105521683599516416932016130801882850995668847016845704418784451228808611837373808258787855638204407291443595071290035590798112091334091344850243305752846939575635075835968679820011863776331942766064362304104323308828188372818955992070588979724585312377598853243494259636393425912339539262624546076632527401046902624930144981430358831266960683650778991221219887672684724931184257740427268867434230877736326232280556339882119987437362884880527729135198673021913536816709234471300657510296957954258114035741735050188518051637347232433768641859551732367485265679752691349184985114869213245875804468852279996329825172649471712419279162747313299557534092932243448030553391898783802775942161277979518944791806569916690791369593599131256114449220325200777915869425061988397332337084497185344130586115722940933442838511592864671040639138625547495295385109524701846872727236557956785689289475158601744090101771615800875581191007473868580581936423628596380935394096605785258554784190731075154428651671188266732645649076172954653179518443920658668073046408089432546460145764308086833793952638650538488615736573484033132629328043520128780913445730092755806617977722665534490290472605960675212808209630761057856566748817691784851268967894516454863653097571792093955730021046570733833462741576176404521726830577090516785563607520754771402597119213158707782208230879796334799363453533943665133622274498222315294131977505720264159903805370796823199534106275989264908992171854114400632998444047121166727513562574357446717414654978552204293865567987360557801027634218352487990538796245606578908460209110033384210810276467318903662895151756953151491438898041099755453880702018393986737349921201425293677546275251021499333085062627090683186962204345377377311199823916234893584531927172002566181758202188955037659254356386017632590357772625040685149389863032599197835367298229477689355926886367822276509136067116444938226876998925571301261147417172077930140730088572491296200397141864600029147317363957264726402103378653842186374118850164982870518664224054340981968999532417829261961403880103686568887645722773292580768419997257795042743579376344651037471354589708132413682053087351737801701838282075621509600860449713534577134900643399709048803074704038165232357504110021950499285464691981410476855957834492212193755117700512636752875590346915233466671552017787912247418751738789779137792954370091024976459391148175649101984436028304644085323916824343998016095770012692752424045380470430370891390309952293781088391048134410154106744268412879228852135580493432551769870513400098487334264626279061525269843819041227644110201240347097645209893429415314197652599563267568559530755135137994005371938734882734196496578507978792511283398531721232942034128605591990719598618248112323859568901677136688115375339772652608642531643458317039107598068886489221839353024902049194545531306439657008923175247061195350329378977057543236836232235085934232407354737450298873826472152222260819851234065728552633402453390374420272951069408694555108125165379345871812117610255493625195625853851702915832158198069080223156656657481978862025338255186991825869643852958791437003121224007569995860574664271265797978813895420597818622845717747772379740903285998367122721009447106051351669988710484017668664537070316928945504843626466056739080059130554546309265631781051881354402462096482577157205723096245668208540512316462330753006273755548580099015684697829084385419154904587488345562367159760283649826324140009980013593989708138989541232445296959048219869471078093995310327478238455843436387011280331516929211093877959636445033715031507257162180009051630366715941132945211343824937340647716364926721661765523836357008699470732896858839951918020540404944032318970185882471868005716064727757942415749743557234393025207387534737402763230074269681439912967674821928250674889408328693683459579054242036267571031815690393922526796602561045165390402008668416561487762966270769009468855429538510759228791793482622370590814876068321404392857841373661271796943287304794441760318538293527374511842518711802843441048676199655986936695765277167500977508700053000737728667988791136145431661021979453503544271919742117005817310647101311504695179310741863680581487404058059373460400274364890952473903377263574313442093578006429543252038518768502945402765424210357858469202028198142850225435545536011979569425539408378204810139681003320558722953168460663932658103723679531351882634734875131625302195532494282401163503742715731340867973071571710049047685418959872504437013305265146928464067207070484195067159009016237867519391034936509690308757546131193728353729638617174932925258039771826637489814293562848131536396177142768395154903495411384830907888191491467032235921357257296341312044992873924189823553925375210757036771014144015914199956750759147256320518947830888334865443976546457157674499552723169680707477848973570471525702196109648957480879403479315776450834099101315395567376622350424502606409950878463533586465406559416581516091223184564549624647927527688288808220825465184478622049970606808716274455226956866075484809771595902729681356016155022565976684698006955562221866127258863562713545796764116008098290989024441954488964738078438133483938987960587235779560128533737383076884491263730815994642164006385314843275710348347290258291141873287475359381328376588778368564833418070523733430312339355842831972532424520595169151245130186601870721084702365763126621802259619062756017109608063757722271158584794298345226065860284107902334660732978825890409607009276647089659701594244108022025865767829774956720813312659408017954771631155028951988746432019541657634974314915060467766453469549483114719875990557852799711443245290190556921615000880547224206811103983764179019323297008078093964166983368125519068400000163709372671958074191723817170066985014183449919458403234650781535452994408946961600191606199876509684229638838927891545808664836660473254974310742043401294926137386507518903625032503729046540082527466572116836436180512305452479483984482474277040960171348474952219636889569611369633649780369607562314573143373150137355512801670072559060179249765915610813465052478152671286135263509755494724448786876303010316001652429624812451680874717601901067599071435777600800731253807482070677640349220094283972895783069389253542851719541313634501874272974315541362441195443922444796838364295743189119459477467822638077988539625326001197780032139351142019459928257415649357911217308972492945263592679498927375596527280240196797144385990146911677163775552966280381905419323687551882023227909838478920304882682395892450281920544833980533560081497999714790558721685238686968119524182715131330333973802793669804379992834674286245267944938976698068524525894511713915815630672800561939089452710978037835255215594044009584973244632983247522042293671093537425873545260695979356056505716723445355632526524525700879271684343773658987124542441669407482905221073913035920769303564365935781358708547468986869635506792233624924162221289546032536248270352483748449351181064169649344396084923329360770850977171175488205199917588665617501952079665328774484674075266584564779661785869726149332306678069864548300606594977367306236291866463919029661674197005122345555247937499605092247424241565828699442084739642446800835577232192132719118867394720197082791649474381136614112657035363320548501130436517061728611974247296467172058703700092472920488876267513331443702419819528989625929686448968146890068509690962714029945517865829987966513394541360760653365451856452006165672871310190563533483246600669876370615228283599483556057173629493757255517583389871642805127377547517287250165179182478141640826788307715341961407325289260277729764614239990975146408121618552636781503950356997356405912576557727393300682831618253170663010453286760228904960739288285937768285779424305478661723645597044815430422152664414029426230556479806717377505036440523623414887095650970059185384353301392782459896416137737424253397998571921013584728357455211340502198278227428459166553510607932571225917884211503475093044240567516301862957855229411668113988634038913081422501613702963756474202464385740147013191774025610402016714957050564381722747671065419729582518324404809204409234965239435167627527970872823324687961357933048258631107618669356408961293948927816135482987661578864738527757921465330181757762692527736129320723954171792049791370252673090518689851795839610732571412858616842910776718696505739570965589008874654070497070485622879812172969849919732628830363909614145692166816596886329906134577803930422550434106942810221450103620852374557183630419786066101216323807363609437568124639252692283228277636104592693922881091688848601973293595183036492818101871640493817395785517428176012847685207931153876875997345892688342960733305209690090826788618529548977374748501837933047380639435299549864070023375467986991139441044806497397114179266302824132717518160645509579982512950998849093799149694629681185397543772963019226788401120780610199351469141310366566670728567590486671874940113001415904762165284448283207681388521201587675024259747770989025113008283611434853113780769183811437400755141695853200450755693290773221790183712236133535679407357889458158360050196846355460463002307571437750556598881998390453611870322861156293829063399651261772307376673064546964940016858348436414054516213876529772273281499068191402760570616077303715476394686143906548117137243097101248331180190396942702319161837476993159087384641373542639540073798397327219385216305126555457828797785862966062208948528157370163785850543535154305584315850429452076218651844474097408493627743527694345878922311437833181427632357391950806634630699375876729855154064142263279336665484961952014553185197148293625680452391783608048214958727210570242176219062101255098004965400299462214926276511714302718893346095998906604015126748006861646900098547328578359550154485752946782259729913043962251501184038761834957811645536244326852320048791273350135397759927907384366324860687908240055270296857792147653163256120803930073969272396196555482343473591329785598165080111126319014865473083561628782675767560249921801832456570639554645470861610809223087200934820110138709180292808936661015576109316381707385628840350309041574593340124726468163133243990106525434340969166549761401207225465432477794937646293351623727849789360735719717103140448270497682166542791006407713343534461593303288265245293492821480000392120471922943572928374222134588420577971748133553710559146320953977545177647253591583348276631233469185246053269563728557940997179873099661313011685686044250175194298972327105971901269533271694129736342678030367487554591489935665847616301484583493128703972301314475356675708003012947947793912966525717538783460989287475102058985404742419964238133788346735973811638328863830731771564592698966237246117144025351553434284496306903828881316735439483100415190282543549033667678006610368665842565133253537267960524879825067675962715867876411007196755594320708503642642286629798424172854739120336222533164592178208580185296628769922957443030305044548498506792642805049069823413521532026509443204596079220048925722753449004779064108056872475284577407284091329117354325297048834633003289527821543538302254373161531558446320461923337040731223560440215839009607442754279552865321691582925620544219208685469651757116698533532026337690487623816990551924811088783056361540682933272181812690192853841362306135013714859327052228654581353747647303446586380400562544636708341652178599692831426427057940521954539962508197952607023536628434476202450265573935521360491831657411131298711416310601737405372357528558041296449551955594607467893936244177485595576114162701709747316403587697892047162877908970858564862203880525338918488032700767964451619025990743751899483398607094573533387454502775923793756938142283694892381025515732520305068819242181630081714411169884200811832844045484075232964851083906618941494344055099089340887928327549818739501872639986088274704179184586441134133827057782559444828344692192268115918301049893533565122680632723763327148739605759389287544771803826484920188854273901968046124130774350776014399213495955822145658498190041424560542406212801845305299814321229214516578594601376422837961386472636088141677183794424131656125305284185307546179350890897790398916140291766950263527245279887514172461386177811865318121016681249447741871018165784596371845599982251419896280202715068240093788334857449684438766643802173620175516154270116678973380391089172024052540345280632008971691530653432370892892730776463275803231473280250852939536062298558936876461307797273579105720610754230014425074707817060133088565416048494307162461469625250051598387691996346013101226209828154365582032572201351528725149757940399334559449918446593248405821073181629658947444612696896902096109600373685378752088552794001729313865191244395329507550507506287786096011108338506372721595615325987391987503872517149062796765968150260897598338021140083319340155146575853914439743979171687708578339025120138351919208975054154380030399015556201206056924140393599510354676558700657125338733897175341357682772496618259263654014529105743165024746012724555445887668292028084812260294627518899578203018214333762951491736571827348191337485685453798879983784256249988043484303780420451426040918034568559903784621142598457608319978239383561506643173157064810341205050609593627657531598782268212952412827584561458097955688298636271631605656916936335239541900425761067553049359196581354997558003674207114699690194432229320003286626535075490641538933399867322611499584880898301115056657191141300889347270425910808008279687629548392558136305953330561676285490671828956720489497586712636838431665387651194875131884248569690087465533816895664623681781372832312006191602424004476385175933744849749447346309199541690735422720394529548335449180288882902342110281152617497132337149841983393570606589623116049420247989923221496936193853914514687807109450967443145106709202238949716131764604908317971801650958703394899779923382018239630953453232055366012658791308989280499300628591292565072764834408255718117479508821394879474466827672039124820614696648884963571590083394925772105184003553144777479133601008338784176823893589733871429506983830960236307604843780639991378763692353700761331965892712326555157325535600150998418655919445915687542840581985302864692213085255573953260479064606358368694644468840806319363656228292156968089363397577114289730102529323992914802328048979644644753376068064971436152888779385477185357288309671183888473987635605579962740407986312240948451875229954276523365016928198545515424307454643715918016715967631855176763463284894625900515791941354590143098181002304216578474434596847280770773436879038515454342242861738726724304849581826351578915624595798327927825225595715514146066361043930069423147423813337143900838518308738661157896112322655308853130970807512158614133015824911040815603788240770805328117360766315590553857717301248426808601328064843218634685113688256491896338754005875979598841683761291805698913780862585138610481843818684209463861186232632312170792952975074754927938830831000280944603621123165672502313069739075675873381756972148271409121375390735009047948534478155243970389793454793051296116930868691804532120414207932673906096296904437174117480911475726607946946815082051418189892568437787664850864849159346402739483260028014494209961828650855768147931200274078536262935678584951341101837113128082844065160082385281179313954984133539973431127558852860999453482634115226007468367502496442248527668087320497980130404546638875203422950568707811736187408432570753916844261670406910298623909739056570629017457646763764024551553904242995196841689711008410708038723206909804092746041071541903221497531727211821771451245073691970268608534238729690360163921816865964263745322596605202120668931804731125617587342394666277738901606410200440527624090295688528638438522781131712097190231713439313134783611462312939956133005507528584646986597775919300225323230381917508426511390081009757548837678875036403471692635817688552682223880908003069920541168852654639228840518575646237897936492088620178350970550268725868137983949815302098487752246055463725425560864958303478907624933118171681717597816107876186053763950272591487023900713160579050165845528186058002496361872955174793981620062015597401958163267093216551318040493266466418571417361979438030358630561254756134016365418321850438950009366345890108871436131424038119920728595255021447832248042994473198638007833017864150776746513136191493245053563788924772812158549838542065463325027129165429697654815414417708962841565017033460867548540460130703522674903243242726480374419933008326670348979727388723446925334734793697744331781983398855137895850706590027737417497205269922800297222789095676009085426351049815015524877953844147512761391263942418340650483094914271867351599393373033334063560336736001909081625833015525020519894175729794410406213249812972823713837365202761848045007983341502206670747781527892958190241505888703574088218707343647751806113414685404788886589907414414357032718428147983999989250963839524111579331586126181148268161813424844264008149998865134574861611554936480197497643511416243979657185748307129033193991477484870721707506897527483569336501795511665685716781045894819131459568053730671746441586178691035098016305316692849648618788134373196718058516272079499448397129838675348719226446328309356132989622944815671799553678438456409358832487785690195600490016111820503153858609701754662326728801175054448880030946680899907504892603127359730343846154245690840147443538393760836825400990171245811536558195584690576186407387304927268394013039159047582659136311022113452046464352142595984864895985494712267239095330827196490199600696100110258629570548604694670559593628504622545142980238345399431292303222688393173513975705838001631761802013630660962986012026528487410190098763046483651940777581314703415589253653325438462522691676545486102139044172339307703857314733987780220334047442737239253781417993818412060079684818535962133723414592737167121411745691795063079751179046323203529158741292755909762488904648574613605766824209504438195063907909153990440501547971625349622589872281240900260485606496237169160034085919015824935562398667105973316722313638545137846388882800405248089956840548246277553607936989416246414376019634783408289714764867788113180674810786726718167758159218446750401867981874529154292806818709612683224623992916417526809046104719674683737175816782858033856395911030862588608058515750549130361845481138173704844954224190289611327245803686132073904512403584246349226982400096792012401463837470622797489270666458718828810490809537279406289278132996297184775689517062011337327874851007052032716111498202503815263951042023775936260929280403216221679106472098275503076061348285986934879760295798028775995314000806104654121491348430512806231823149807931789646054412154090616766455686541533580809902116795049158652854906572427763306807456874433586497119883058355071175044701310953392580549832041249710952557407658856900087962880594313524053057139936625756226064929824328662099334290326345541033887364067555931003753990692228846577780030183788738753440934731462700151588799951641940899590238149010893353756101772392267440493051716334262919693348638300633487801258567746386478107107526922355027516317559058685851129250399969809175329399138647232309157492708253183407249997826817237056201419605857786168620932634729610496759647660700860166983994675805492353116983786040489849035575739709401410678478536524511967105652770329783609170837675962454341050087742942243542967926577675100969919196276831386421129044405969275133958698011782808992574974625506858373928829193109253713963384292943664268217542328856193514694092842288338913790888123371503880500414470808853796797102730255092162063735882745443326733452563753333705472189641398299762512127753581762255774056064307381248848866085925864795370106978801798557365846688531023089425573089476204495716437753030265400859104922948671949674658940198282274502204700265872003673100916071574409305395217024491885100995884655646755019473952002492460866566095533477343840933688158597486114883898613380398033667837601980687838947042156244660709405802385824094667922502681780164719383863509050850419243242189835392367266904988450114269462004889521139128397567016673200863642742466987850703224794323510978532467166519497310386081558614045166166315163734354633475759217597062461828718880386385785295568498724000940108028934582578777869825812663135986475421061241162087291508348747074419447162047222589038015155343643774164684079156139876972163245999401233979841084235225151193704259359116409714805909926515305639417172373742248656649184864740098062465408725699471416566022248496097923810599796225154974736817664823115385259783638460968289749292969099533964479782413729907744835281540755979588476032448891893206731146375232223586530032478198960333948658177639371506850949238786778241286352727952015473433386913130628628675865594500428298467849745742116072489599895747917777714041532138831403632203446526279731929314235278990578453785807655208819286635684021919606136307703246704185563244529995353352824915300861821383862311666775620871072511799827641701221057536224480925606284406827612874599599241879021448308440708789561199420039261709162137273673370338311415692246720054789486728884768061458261201859720345147399757556050398436673170349865755696306567100761627381540261079180312553356412634069831303080922646440693658637654312362600455076274102497630830331726421312294797208854400251646559565730919687955297822946625742246539908984074317105928402120766102069618125350944303235100731160517428361561845453508679533954639966507182272462024474237208744930768709015004630270229697422803038381808173419396150116525955514376078679759634094781657264744747529577580887629260075716714422680037499222280681714484589244579917682991385323801780024266347742910506365980707054923504912834707462653951581074766846735763550141256318658118761880769931147147240438029113669730496184898305350947659104357085399520024385742477767353371209142008880508955141674278715119368160509402970606606756548218733107282306775087433002597306669775035050181600194242819571435884983649025862225133797446843808131134995534556885829200176030880981800283832310680518441265875303798986689184099312036932000420580756931520531068875107070746149495517830049544582888224162786748618059716378927122615793549944078580015695111235650760878492588482357589316973453670326217528235753950506234804968164362410533944927094034675366868398016274121923231502367361695096339966818116954700417875259570001905789305990345969833898322772194617721181897164050029494428193416290654993385223398897918222561505060935962970595198553614216085122763494141848336519324541964312759603980939340784310681103966107410197541507602483049272310895954672338161251648344509860450819760391920291009034158216773481995540775669033736653269276068735751792520468415853163888276178136899312172842987726294318688302365320462476374633341653133419439359566390755344325382036672212075429171563662486803787249035079270421890680752382416182433519947510501673748752573237663623973153031535105238245609463623993904812447842225499322205870978195928994425066478456459018338272349317602216692934038244687366839749666039304514620779645796640765117640031147724501030298613770356191499537963489405441346148799653237510920611234825357425386816053805067701324197020783633527541907238903287191536803373081485581642006268362156571626613334394214751625457501214653764719629035692895760262171467265787643325414922415806966895435483667361175554807948676030463078185096431476479382619727457973253058877310433002244852809418791021015557876496422799806862329612594635245915958066137149185744234653534358832216549923589010971233651914855215538474201075718861221383514519685521007970555026413629208409703944760799055912021727049197091955220988348464447974989719833257805004256733373411175902496242943805899591507774598796259018031321567236547926316800283389300794744322665806830713278462319641707079063663036592349507616831727077856087988295997258029078742903117325923720885979204233233295498940850854664325524731982287337355700779406843653914965741482893182002676068229689057994166457340541994201539523977018596130186915967534927911710636100435902990473520741381037553306954184677142443085816686498642267277689043429050257845026384699469653916079519549176856274300553209258229151999219476339483627437042914860779310756465857709822144395756032097060912246076402285004468455374961153621777016388224924013123608614260125040418667304958439663652480455458607481046786684127188458995519379677976335904047845015231388985413373445407830130252909213478679192248181873617699512676867876458498217734407464039915508496086520317467109350315628509528413936984662486651037977846878673303698946166989146004014111682985076109079724200477203158553254806451902135318055357319025045216090082140632943689061231993803024331373389041093772224694372960896518211895774998269207988393118220290805365294304676221087068938079856201232922880189543619920076292174499462620042179615349476809291707621986207534233525733831970949639211384741116946362783426800704947442127167916704567977549367044026894869290431086386627042923546372266674018268477250317685706447638759174417371445892057601314310993731203084501591944208015569676569278193239039089088455150025086899143957674009841993623410837500193269691016414498549634392271985898800338936499981910814012698160291401042656992647414237394747102700744249732585879881792247179906547710834826582892412805330270400526188875240573258266111853083652453368511159587716092137277801588184969600892057310554679398639378235044197148861415331304220332670241713060941163944900187575938096830257085408098888456379688658011288388134219816825191224293179167120251213953578406779365363757904698217646228817229312680751925812962827195063881899460552557102268847272392291664228787328441716497473005361763485287443983258230936392644705589708724167215669005169231827739717848721434138609029639168774353229087230235568287132380545466246075079121909753104379666186419639583822560031244522613764086778591246286104838827604980582006402080038455324529938817665678524171493601894433549750672913626669498073348593493327781033377728754631583763276701820824886044226931484778441694739235052919589563978833760955166007289631690907264567023076253567665748374100906713625227395498692254956544337978452947365240892980459226095544006624363418387138172833803092385591711734254734692424757705606580415073952127122781250357025528491107338758990292742081498028833440295158453809707018199344002090844069248279040785461255045484816300473528888826495570718967119509759677546690043484257696533656453249860595445054085673813530271535729817066275769550546312746369339398496739689499781135666859718991843125745821312602573452508416507484281440603533669927847106561598696066728156551120195668907271208561600875757342604566679964332191381103913224393242659614900096296451236137830006551128356347886371001225275035820805453207127792306268928903568585614823209603400886921616628500862494043863203137063514124391854439246906435306609651715119090373028266936178229104240233014856999186934565131061806120964397538120565980363523885333468665717138648864631792355785571808981325402966738628477262199204978151219702570259913403197614424696114773671599062571845416109732287373267334669391323121585563457260850329508484968116612755798160330975595344308784996939101387498595612667615454721905673592868609703349200588335783025429101275052835623806571054953855238592326585958325678412852705745727408683114807848273613145773956551134581270500016439285017811001698342195966439226294157803233214057310274656289173662497607409392066235268220507125558276634868604171602073203316798262136786865154684641735442044104691252611931856156475605275250513179132417228535162963352925607052414260778608719127401146487628626278193060234272783747619677747661367320919756512609333204617859533318334736347109114697154886145820134337338058573005926972152185175880315065710462313675362916710572304879231571417698265069625313170821677754835171549175149080342514160782052154277863681041727670398200511949217070635012675202767105329360696502469361032733036988953596140366327798332604149380639409256759384578549692304437981985099796336316441644531048802820855497866804242064624968813199373448332580902394583963595753240054007709598903260336165887076880256324286136133868008158666728276055569451929324169368135407998846791003643756227458986416618735172726251414701692313400590981304186582503605405830918819168767283343461166572913611794286338204715871984163752031399712611709343633491649369466010802818367423268672999307152593835892461010556140372489384044959679427100079511685048457072166177246989939965422603989817428501798436380370882329974626846808489684811134168526862238323078724045272730185785607775138558347253102971300653524438122921040963638048759968650083576698434406496016260276696508496515368841735857547910268591725142128511951529575170607694630057606079634470101369324475058896825179413823900871178977420416192889491718176256533620731805903980261272277236834459960049652477117761979378684545432966810840585813082506736841501289210561499747725289565210972433377383127648370981602452799524533567225090664921754091785418963081021016437103793466412947343854558494752878764069087528658473040356141611602021190203874835421216064179173464907470091190124176261999530236851754036981791312659172869521031196264351164845918013275098370280821218732931121259350538249007472889821137847576729556639407423487022235064125913963030609801932928985377204071688862618261766476728040920576911727950410796306226560207268996675835609931906642589570855059046356996061759919180806956616563755942328900810425092602950879843845883046569945723475648247953179278349619105925253071516466404134317044027331094087424358459089574415091508402156239238398581844794454431855452862862109440273614087367443312878687447703250596565116635826719475823324750348237024455980875193680283872701815787407511271745085163467565475971203231911849622776972109060287326043087012673468574240600924748254175868870130853165265776948880170025159438460806872229171295818079308492833359627297282317381922413389858409178331967150878787468155963362470832336369641590936341410691260054246146863326387577151789470549984072870869762612069507723149324161512036287655612108705069753045440530976553778957636369429583920875054939194310101236052659721660500787313201786080308204698800054930784004601719952572383938564379839377891385474353620870413492163923703345609288199218034546100414193583800197612535548457803263963435700365651712767126992734392010107846732420053208192636435891868921304760352179906865060469857002238457305864186926233735218359318122308304254450103348348224181664239298007798345002366042695773237890144920993378598637783380573573196554110372628863231601909186895005605669023752683386135047329624426999523105569199965965442276274941352868547312838616608610875241437777309044810202126118040546973646956460186432662971660582352107659098638612417438415965716651808047264573020643796994314878861582401123209426414455322486127855202412003117690558475536063266186667901646539023300531917446291710648692299585656888284650041072437737126242957139724964711415552763138607214629858525505368521499615223410652959607260645438506852754846421533906449343375720471960490079684892795172908185455994450744482601585058757129603100986774367658320545415260629472368338116948811366973920910288538782557980820166831025545320705831409086867026517596553357633076608529658242134054007382948886487736971606048231381563649434156815253564630156977192018997914171756821275687886285463511623759282693765011149800089844434912874999191270411160117432193650762953433980198831770282328973277407890453276558476899845411770079014475312738130981907750061792933484445797842155558596185690616765743204925964121714293331399748502303265268170753548606932002657031697610291967557446323873753343241002527975355184874053564976415698172092476726100414298806198713097008282680197230873555933497910164472243652491152545155387817671693200508485959775539222964682360384548586592964247874726235874302281557282933765576380516697485055364907978944688065463214960538176919999678720099122230607494299648396572283122545431453089782597923030639868067078554360006905035229972200466899329302345398399891699250477207427299759880057304525628263737185388560373877244102604710685469319521922013221697923750372376522268079881266519967091585562237710669181482900008869365673107942254919068559532326984842185563195274727617145256086482674655239179420433408700829900313995575264762213269922102570793917969891083882937332046650599222866158549664907375760155632867904184441670685229345757798983641526323521837908754664159172104833131494658567729481875241518525014151947031931301097006341844211615947322146459733362014626253744238726739390990981142413334820948644783651701694856208557917375838620916397033953892573328747541138244965597732224869573255501895598487192576706717842237353673956630426094341668054923169127118734173847331230413076328108404894620150058861658901357953196238829936516621215244595706822765778782056713875985114235256838731486903140128285735711682296369958320887789162511288976239241288691470500427360729570571481457196492157550018565473988183790365456134676899437426225477712698309506886322262274588423794930045949798721664968594048587665744341885034727414336812409769441007560852032406528663015954229594357663507208017175949223000059635273603282052040077830080249628493838000818157424586692793382152212352658692383312298069603933643833734234148532990132707589653323762705070277029488267898262576602964318063368182762985714914866865395074513593726626916391145183354960281248868159396286019257716130817303670889525767335069669638576701427354075519703467224121792524910207304919046060193281698657409488592671525065200791437067218145437504702881742747181355670783392825007391011986834811535181180145552346125588115313210579120986381970591785949141912615819121055130634619608275793377790983656326810800827170939996882254419953168391063840113926421632932722311340507854814168087028142786528550285014775793627149125192355411554329434478321738231866160678945621885706586532906927591577640578030333833994020314027540528364685765498053171210604709002165848001538603200792497502049494345556568536508206118322400776922009598702458559894442627517078845259516983395389435180586991451189813236351141444077690595359510008760330696494601828559932786041787250238205126269469388897795500390303892971612020228411070297638048065321331925594517322946164905972677371887808969600556873452331417705410581040876701611361316614235734771640194686093674260465584918867749653718135548861453488424154070512272531014641323214654569125948203869320237898001582704550120483413988880229807684203967396435736540539219404142837911274172124233029314586871498095564889026173028012487751830158285994663730236255161428965495925289468119928305590616264200253275208803999743455398581003827727646687353198043203423829093451479931499740060984106465659338831168483968729234361072579066784125104931231541831092639569798748892838851629308823777578797646238239342690063863872362205005353215121229360540044348022691909098610367837774011361024334706460439850418216768299364215225261689746870080202674530703382259373302007722802650043837927638932313186677410386481818672463788589565618937704611658572489153237009075073541066615363580619351021929257129700230463418712336194832512180139481731767475067429511220760848432341265570368643462835871290865006434799081204694716890522265507365841741312532736815760749262374593956973382930664392890274658563358313923328194345415784241317278775621438593954626736736831443373576677611519103397551029637568308601280503476764458538790098520293251963472180091358210296674821213163872076142350674696417858203053961052387912121597265746647848981533936969261615674797280673504084973377602566127988701636911223869674667906507503596918187030782058394014436341096704176171997356316409486033380584201214453979953379040892115428846018767208754650664054751233653008611389260781421227695403894080493314239173576522874391052017682284815158479359367053041647351583553567619813440817606652785411210752595848365406361940370586358009831706871517365079451270451883979056513743623175645455119200526426174206750308991963136366196248374386501460491824192046524805653922148244403422184092745899434749795827959658435831566938789879998282467459021442667063027661801919088497071914944260160769250241469968028065314051631203966256553607038987602031332114194559889676613893758509013329547717796732046027503840664067846061936435803383054604618448126740853281861832675828919676043952417338504619981242217448502152197296299826871924617885807242734110925443580814127043002905443245082688317127802941884588685903171872323981589427680647796299199507121000091353251918346496232364201669025605406328725418647874080406558963140398077085340298964828036433245839130576952657609056265069944552905748652073060607979504032467710978124395707488135386081721274941242973101612483688512715225243016712405343804870683229660990291392000971733232492324320076944424447115899196507912840299141206895567398411383035347611039899537525726341258258027130436105134916802020452388313486112932255485216709366258807150040917133965966083598125958072738881276231901064565994921290229497044520034418094938585243101864750740021917848774320245300738136198683522433512527249352909556491430778632618972663392875087130376225404509335422247886234829437828287291059631659805428489922778131390120331865666796962793287504923880319352750034028213423074936371627710438097167961876274783389375011304601512778988328448392302179670048145362018830302409623164889958854962958513718764152151758866577641654158052192449439010636668137118982923673137750767674206718103635677142154182763855555969966370147638254348749629372317457429374314194068408863799849907068497385689155659435639595341961219090211254345308418308649843958536797408825437427778779013494773511699717230327474906869435207133469713744481519441718704755181270663919633728141666857397067652712930034237501573206928435794905646507154748362096389131686855775641263309787396879422566806127878723130871786502165529662833751078108836708540568235027042818123616723729495510913533314636309893751838623474917654824143030785198101378482758207981655212403785865926289826056340950549385146206718071800823732297527887066882379231401168322778860635873807396749147855609800438683052831288334512176219002737839616825453215022738160880921921530535398260008317924787615482784498713215231334037676338457407820275050084865583353166023416907149234992119699224601290709710594937195868713066392859594895300333513725809295659612037325992580476278999708901441724451230515672881894111702729548957113475488045149291708558215804446261739318594167293431620891549993617307298043133060960265302281268782935179334996793694984709869808383214685243482822411565858972054113201165039642342689297964400738707954633652010233498860013878578287409245349239639291043482271779590162806743558724504485975359758673307109132718642370693904760224882889964797352118077254732702777493059199369291972071743523144289011871002061360223871006555138525608801243018805340158878700677365940284207744333803250138692170251146301235473817446160083956057390209800792022293249780358140533717681734775631392681769336007971177083777610661058429529153707344420941579633441942303411319255787782809421167474074477856335680419353371679727476975611499677252396074449219619198957629352162087847339306486792099690910172078780967138765530045178875958594306610489866352396836468106588075016110450020588651473557447865702888551810427830733163057592636339516709562871802368827764249922942334517401107142835559659670040676522681538304899046712845011230912953841823893444370907396800542955404317143460629251024405522897538298611498087088136919366061061113863589166571938069649475098165269755974655412266750808218169318541547936179752681390064922574005102440426263813526754461701152820796684773435387855522149241149751408301388937239116639822749626434882597006460405856637240140462929980465732494598131343447501586436057815666020428072454175103223880363807594029959880625563119390810322465089232558791537846140920235938322679113667535665916343606972678494686025627985791449633266849902590753269494862426850203371239220549459046257096080407392161343178274170055313802182474774498140230435644535515101691073833721889850403026321530144860427030455248863749905096908598191730282341321717587929992594677200621354988266477371065438315494932922866310506588919887517140768545427984833345885778280268459831874305055366707508451898499357510726716977306178167603650790199859836337808337377250936508691040203731524806018613598660165707831321683400018591749212781268654335252295007325184294309614058796258184644552210443743474773864177232454046613643904537951361880722259203841948691976892185572202768932937700719329048493203270503561513139952235063974877253413732866033595591846625642801459354423949306258841781575363465087042352040217446970817782968277242908251760544827829315798836400587729473083347688041478645752734278878718368386446119270039329377342727029421183020482541594679488368373419749954197081177358323056785021867337774325153008364004088231051938189711444159404219755433105093995256450581430434971430597017803186316992315763903065701211154466765623094666384348192533012835074162200649745388183495886280140482769694157002483757330074215999189630755409324061359661785342819291778167704423376550816439180421290873058030147081180608698953935945603630623679710507445436881416922175572175532843143540989131299749023277863593375111661054579281830750642480694090946345029721367692822648839323522553237547159311563231666768159006522626388522313137018991426601360982886821536394352839445669943611089562118050922936595234976573010731815713406959191744885895342627702861172274582352428341147710623024402975578118383701078478011253173881312190780945925091457503098474276407765887212476796285089583082500731765472995776024306317507226448397175673844992085019362247265901036087390502581018493614172745175846929278979644840416419820667145134492176849120523223659749114901054563822147564332506961368805067962480847084893268363060197616366574312646901020764095774536421825327481073199066263961486557101717443579880511562610386225426347148821653151669604129540740658943780459833242983299065306892834688643022337821923558939079435332046952735969905711152351438459799975462565312674315107222397104412114348560799049331152297198751306408765650383904557592047968629249406001833969183092461961748653333054424855530651018288305911917117003744542959542630818653279073210668339287803080495645100261738259123883439938975919558362748781935936037952997477239284854965588821372523814462698040363673399240931789919253722358904820549552393840045704973235739846381593972927494844272811743393804562798185081650787866247118449094726703964287426176635637873302499865841173232059674020106072984996665963433129117976234532195682402770122232668147434807573577602022674155457296758193054741114017662577276792515054725520740597551470508522245326405504776498533068041921285599371418771618074000215008172579546691303302815277811654133407317543552077225796234442748546879178531482829785733989249675041083218842709599827805052914729371467475850332903802088390783282118912216865932872763787284641247182604331746126996115947863338579250668758663669607600137742164181376796161343786228285873864492741428505374573733416291978505535987883458505304883870865819868932853813396288622253812114941161229781168278630501152853139442092520384321338302057048624229946623106966813785697760907026733279730157020191628457155501747234171376103564011290570775471689917512395683879376190829004737766684840779812125096194882099940390658597519761750032176252258649378412697471113215804242695060342037193349290260288444387177894469037570650382941717638734088901691862044152019290362967286384553120888416897946303557234478096617501886187913221388271720521423581058031085128031078781425477648039464204492258719437692329535454134563108097941040121452769238035473115427098107729506846655088524730378466160146828803040500539336826264500856794607671435622951677965177639637113139776816839255523622992102204101796725914332395061633379442409152671609135253505963476867173935947282719780491247966501950083383984956590440265037796590911772957503572525782030229852518298098990083741332589338416264398719272322839932538708338349874480451841499896467913851448365689852258451019773659798623756142127114024039380606463409578897830129075757481366575103000988898766324981182894937414274977351352540429882813481877105936887014402318774596873639238286130519381413346775403922544814678160601943149132652286761835602949442095357806129245384607543576727515348352083398094683178467779390879108612621290684827966957751159878626427086643399012112413041250823778631501646887093400969453735716188346294189820802134327851731298340310129454221375386924679730482921176081487854512137563560357306409217889214656732706321176519998878658978852371764178517860875359754194340055884188888741155614821068294897741182692690369269084582802468581428967660074809183103570420194085574376780764822680993875056812845234532744150152708787402921202284261486454687901924856589215847877457506193988125320020049643058869442976974519167918676549364011703536084065384155294965231192488584481322844387830032473494743910083612082620355415777657472702307029351890050325802073767040213885744284718503703098766113805178931928002079742659461192829737682532200285707541087023775400029077980917764404060674961880478345099747693038221829907420852098586666051492604055090683577048996100640931320605566392316293249990274299453432981310476620685370575297278177425915265647267446602383760682008241375417863831246662698727468229588858068273217642411343528457361050994373165512736260800416297529936403959739411760008054205683173040656928795715603956169535560372381531243779263664953572074336193864238522624033067978976577902882519980186566399395962082668601508750636634504103231605347879961589235665300204581484554124080382514213717430491527134460498575195677769492620615140189231949716565022832949149165878321528647456744215221836531710998210087980767010565490100124403303004114991800741592675197827834535567383448400894701797337971230294937565059885220688405465692196354970332570205016815093646252263813894614353010433558591745274260381345124593179938287882395682485050965340460208528359075202269735064190680624377744529489849407420378981118184691920288680179314325248796356535250397987046724263274510308338804068012887349365867677946869786894292998926466239225033521546212234778630143483277179525946327971629170640555617139287014215930611665728469385539126954707163304339085365734219606742495773323799948791375943784244889167761961270329065204004466493442436218601261041159880757395701368026328868317025437804594455551578289513603440939320301099268120044075083680258092405743379149826791158319028771685569331580648077628904511302138459387059582812274318676902292482742592984288995070242901968128013828169320500016920864503416353293612331316361642686461906137311530643299221610570216828178763365460317596171247684408883967103856945306739483916510711900084763108271934992054661759433487223108567992329900967586828062136059457192958207607166219287768399005026792234879568741724367541264540041194154659788493410492336188686483729414294706369218866672723506563035174369956915975484019916003191534050560521539620348567190595911852928251988581741375960550892762418239955505430974375023595681870301174466469384997009582866994656976298075278985539266008592007738296325826301327417532655010107993525478643450191678688275248552200497169703431416376852112330538695765313994961833954093736840021634670900234843102379849778280088875650723718069403683964501519452080497033684006966706702132011333998156694745514164533317512707349900055356368711568706459316017695735391131765533346353109509923547179059805059165260062044391955817680799851261420009032357504643491074761347332148496838404386891076879368565462244610916799846880031531042751566333712103429486155294289260797014964737628880830007593230107473057725858083384461240164252972209089307995965811703361923856741594195491149535763345895652957884847742158501235365966747172763904732683656081003493472342695306725607398654921165487388263774851751540040031232359655307894986118981095206449003046492666463881481268765173842034984067514178400429218188659906313238590373152568957298918811002967325260617465856368706834598108890726767546574402715661437260367957721568607030908397555137754286332725772299743061871792333981967081996075709021312575193982150622426275954429179096733178531827688974672294944764762518192130935170315935185713444325569975673667997890474669680014544887093403774049826752123505165803706014221813982879459461417274481452290673460529619278835405100000278477106507672063259927850117177538259954853993845337656131638635054492623155299317184179113909934603028359926174920613235972952369590985835963456899784001821361570993038475986333561024657005634178035133436493197008971606044653590840728507139112825532983864496021872445786614612627405544809503212889474929682046977213976525739892153449448557389869107778676743833544831251253352091247573102132895483991094966249270697044898089380611674626241893094015344458636856782944587899087216211905435266841177693928170372111619893014787471688722007424802529579022473764553314737270271766006032361135459472535755082856392680181158392113392171549408183324047162013701902195961447478654193881795652079923549083266683884871010206688248715820298528710047321040986488732494923224646898846782824636064426200146127858541554986159871638984405214204087032425971292451626911098665406346161140940641255389775862814466169532618344096698185875300283123865966921000772798276014220456284048599092442434338574665964598756162374001084660420423311055493903410223454964747416988631541753156477313781480155193910419069491518679745500596165980747392703609814278194161224707995822191042626117404382523970884488150461995678355209289814094685102298262365253589470615382688676171902728539459112900221557368255924095010713800502209369331491801708910642404882021313690361948673778616805232267931962274770252032013848919137860086064099676526976072503582385821298537165319774317514709060704330244704365803604463732299834735853827511858477425016785719210502296870002918227245196974271518596361705616424738443710919294894612050302434184680719669105535582222577502784904957547476001366273956152636468699499863956661994253979902992928483900118924666132067678490479813260851348324809030690659978250021773496849527253792539046256496328256381943791052722641631313016044754794259481538754760976150678120768366558056759332774641210710614447262586387852199286348759079821277892058187369917080926145578400310050469350409700825180819847934775768253206684041049489600370322956284727868303759916973475113219927412807195800072198382529562592180196293028331293966223552104935438503089438071816825549428058710754575893947296391465404357858722109154306497513247032329804267342365434576970969680835321526289791848037086238127212621415238586141839740213957103322166848179802352173632120623794012502816064481264303972629362821247629804240043641917482218673825238940456183186496653396437843280376418137112611216714532330056770214914479654028198157986408714963798638561541687067461578499492678724380793210649470999483232210916174113246456223387254731479238646799041890443832515612354669583468310225275394765289868794293690518351585285776212299353150796806190106268719557602444399760624176889531723242935245263481625459408101434145502179425342328104397571697669525947740059262611591903994884422741676355206536782276203399728918526696194584535860755217515274402018338201130370830451062066247374474333382651636871327069000098471800339961198023301159327999959081299506449433871404925270499002107776495531049949822721173841613899395585592053278979995847893503509939456466156006909543234612932327827117576627041656408385006484762293787263014901707655496425832044389861912597073615928911925312756491480439175557212573825754925293480217192673439770108027668485121502693403649928045061817235461130673924003094831953146152802727972952088738161405054871069618033894901590470196556870932005121800236456957661882998693008724855288796285388227928139510689070280005079831727657754863503133206835416152373116767703565802944429276827677454513566251752378557109524879419738470920331346914448292317221456422745486898830939147596970213547803797221996434211941949488013110067768529338902626964534324320940002539340675965202924889876136861113544906682614408326259194844810940417271995084755831279743615958762854778810538948968170262904044981671390481262516482883602384190912517965717076716507279752662751819080915722283490366409168107480891107704069718144463640573276897175636901541164901616563006077387296597478842668485045622448490056316389514421965450092772791864706369375300846436439582631331309869155206354363012053572538142815604670996455828577523266339379334432704942953954773567587240981210579993379556847930406834905779111020508006607373010080260263416334077497928085720592074896703602307278021967463445561980982733889801691014219425295428098537802823447813722739167174680573458726878699469646994103113170287373381682871543059850189127578252022392765469280259833038151183832885373419034851356970552051721664745817667394506313623947649295746096461585281043459340050658419157280726675863949259614870351559863198433903319121832409432485386592803526625334665573354913876152268213230717730954990992915040924037794385055409452729246517570809919963957575888512470818658138399968883495381941244950096634221117484389758394137596734818183340517755441523555434904983826243264187791972645597835113097427620513546425055336416157334253905841805927949766979589963760783447912338028383744614894945754546183478163950568012416848980893820059294717438092872925571837679735946713106970878623602306165470426370478518030079814246137433606315777814463303278230443441223888878864559762589492690723340589642197570187550365938168390573818882363962069859219966955223772014848131035468230385778415599917965307873854321242426684065758465294183844062672962791711151243427412568430008982582555196930412213481273339006445096403657213686547305632250515085635314152711386714395895126082725122203405061962904061628394168997378390688978758451810633537246545386472602744723994869966696198241165906659319282752436901226230320928252838753846354554093186643885252186673521009964752073907259025693185086431389655559658038469696018186190768685416786746708508491307193521960501121284235186396590311494822888770165953790608545332603579126645591565376270737462639422120500254741181325250547777722368524720055990193974240732740782346792861511137717238253753557599455208652537318402892290597431708411555359967019198543512729961228727255238898642677312276857816372640734115660910945643961159780850704694823035670508424056954736266345834919185053442542021636541887445186371484517412097212797867405626252234888520810199718586936248768850513027989793521625012885689205613724759586533335827786325139515412816283889678176206896682026005443286600479153362490809289936473092468427627911742573483399250795278246943561223797115513198155002264280047287284141005568774069025472179451957414003092544286756585484591543315967998765142743539284081059923716678145933735761824164546934024438925179587377364295130967469248175232709519500363807652271051530971640735149945417415206940318326215026726502461336411600590827658339750981009510061466697509628264446664399691417771082544350958372664957064454571716267279633482530129485402954865248736992559308701122083480249405712391936688529775209995679590847691076821968662310711165823462407713010163683090853016709863484462837139869470730554116847698695175811209713382567470472351525692520137287211919123891824940171619263773829339547259304531384945880008157473179649364336905688378839644555913328932317611842216349121222229029334448359226934983629629999609699664891967163862031640449236399827527475724025015878498198706281149304852343650835773365297517137508446959403370858483994900049810886167596000581344487566979274945257627712107273580136556535251762076630445873780252622552031333358827464272363445830151004725734261926674124936933560811480225520191439174247116615103026602625529498932378217056869521567255386067590559726954957312408829923423969701674061285842019827202495474344917869701640718227712592815175659695996650375395810289243171359179326840883125550270559816610778835268895099298180851297564563741756411337518608324820553048996661999226181861738132223450760946008307096623478430376363565516652265128893355621611184589770888282230774392367539107598584606890452030847909746120352657404780797081130793013884226989041187676714955448909473173123839233885419864134455865818490872279089407599455961527016425378570131475742051277194010105425112133494921636547418233657509324836742082660591720564975203685066753295985172405980153510303834544845656356564132744073986566530029731313551965956002796574422254920431282435466747697267271798674136969021845075677811215495250863856251846646383027491222842799364144667537516625391525044822587655881734698509972794001315424037921489977993714700846114175583959618848434205115337179094514557450603284709163789515530487107162200539655416046455563972772997996684590444155426026733013085043873153931972228584938505947969101214654795446582245209270015278947410031781710292792633802845521810819606867306885205906954680064733963711010267713309527792644559795967536657523956424478654461780094471173477170482161675154998111845459940546648278509716454001323921587506633396510908641094066351552790314392819989321083822365058088575981212457066357152060191625679548921955115237806971227326593932988878641082785099401416380304328882769550451508146338377329936001784325890952855945682191552573058950754681349682613714775523300574707321281891740275640087068191207419212053033748641037976692590760744855867465070606678050627714290133246981923975832682380072551922535561328173599450750848256084130978887265355349329352068024238371931100836204268572934246752189196744909177520333002359824881275887602504637587713953150357427593477343301042887743833880790186889943967624221294478405919603176146697528999897403218802949264217525969928691004845726664659975542049313304125416856086421084953308774125298100626560650827523472599974150741718456413962619610365333882878953753276878697970848651223358077829945246094239118419693944923306285808247049795563192401369787186748306116620079875921293845386805904796624544723332207541683963015577194239564970169240807804676685226957557322793181796591132996049103338632558500609184956294207488423708180102104543669513809527904208797643750000587060189160984629159592383880598958079767646719971134295933880816416876174009325061105928557802358887785575184963196367946755774767874415310630816522572059070817974552098267052694953178108970444164955685412277187773549779364297342903299210561417883251575414560565913179232090473236774031637613524902035830195557824741462245806193021637566160354794035755531731191121085501677891929134135961215300111361895913179727904258241204453481213023736546676440766296734437799234810281823737288065238813824909440952971916624562931150884487608476669224954531777763566365813436851577764196069839630074012929796166161549736868928673581919481353431517066289633926924926466804599821343391619988962791378328558443611738171116965519535032405129179092490435797487709875698244492655773120505771016380081299487492862515127644538564775958164385277074645552121742131451879519085973196401403515990464176232021715880041296596929995644985468643958076875781430573479919340309644432648072291008356147725035170658648532299480034377390685559255457844108697880420724588128583590754968470381840863617373442692298353292111361386864230695266985900157983016907718083587833347504406836784850099944960945187649390192202232433119892000606128972927633118726291339233865167136641667764759584820899763983979341352286863680893446777585640770379642929301894228720277209269705182041912029687570575025398066434023333806985743923376314879432173958909926291290714535005159395012190333267627450558235002637019007505424343694101298918764708623428303913212865541632478778201138342069174673050501973095064380595688077322863358658808679920166736278240884301547852142467355623277547486711234891004269518702766661462756137148435710113778135285976990776342399713944786647945596350551211374028638020605389412551057384608922114970018789232315488206065657712035762428505585159140894719468657036169511541900484757398453497276359019529015867406677734769326230872021335688385416358837303749506920511483724586179936220005491298890632898231270888351239336038686939339390509736591669216239633453203476676705816245789866543930549432094871410976252211531223576066305149077581586665309025849677425074338964367126357463118685542644664822002282430878142703143724233013663969896401167811519727906991313629402068653409283185434498275178015588682308659570914416506443523333753017723433861647511759132468853488498293293903755516504109592368694524183919504452044811190552001061206956703533614837556883578353864889499745477492972980779939048337341141344243738137221128460037569487842983400705161142159707998159486652351473882965204939368186174844376951623508354577851990315583147533190199412055711241075127818882325974621588023682666627547191818820255789902402350023485516320159272572184196182359380606444971422141797790035853074234604786333550306440866092283257210498747198002505727574763316068123547318424599751508280750552471121435467762427755198529743270292800973965226435236288015023215172986103291375438087132549626006307522482395349815621937493193989187013480965566953598281754294069790164213550422111604249187876410934206647280057612830006598906943210726462962275477878431030069883964781009423264098078311332525481797508341016323350084398023441439820987294603928486252298939958926991319147531161364424568933441073373208742015256514552558243212053049347615363992332327135642418035400865557563136088699949324610953028043515700026055026302345844892031848798956053831195237888193279802234373075384906170872833103637898452320731902982449590702453036943565608712358014192611902787233330977150139350800657584724602370248862010581020872646797009048588686803229988232691200150761411701326426862190590897121323870788339009713134050856960637682710524644102038882092356890513787588443579556026706125683288121045578683166879099209474334638224749800780142161435045295606355313370314749254878830142882112465460605391680820384331528090347287941955859012777844205400182782494995397411603206253105618188420383341506893930886470883701038836303263657528088846464161436653905939026327493232268345779528097083885479069458517134489221887490549851806618514488105181745283341584878138806374017992552454434187130459002046573661427636346563376112860488787923194403936018581851619523099409473743797648692284529409025914274811056724663885720076859388493336329127908627381142859432825452655848675534374415603032683995625851447912181909519796925807734136659077088096469639597694088413205680716476060848253887862623564826233665649097498348498494173050816282718297017452365747075349594258040137180808667363474323761522852888456381311663743663673916492068379339050501532865012804374990495287418029690266110632653452252032225030312484291211555216546658751492446978694171420705222997331541976335970743983087414375707725474002133939217353455285771287353364456284512983405276630161602235285906991780105432645721605229590280020438591035155566194240585733970053817237720455791372238857016056411072649802567451107503707225688338852352183149848733965387761070351683026785736966253832959409300324022512294402639517182346340602170751832704285909290237561793274451649864018203395531206855293204331343124526433031482963769338618694974047262022705979722075626495924674329342366725270668566573020913686992302884200003534850849569172083692587749992076913109330347046393428526681658956725842553309774757864304149580514861631312933563198462523079447323427486850050868934234551359802478908352638181726099163601987217131158433517425254045749251799327258165892460131545029055119864296279694298210813353283787585749776363217253201723108170336820213538099298612831872035268171606563155931908330924054977098011316160761465514884329238085843163092967707755096017089407391131362380730477731156060391907551576078632256902792744808843010871286218880647911409127795962866871931506094515984874550081151341480140590923736939039335039707840390945532111765159049053223652620326366059489098658294611882304703038491219813098173364558690597323309800959756356966638664683908518388168735418065762588130231582071575989344137409048374792572794149407711674686115821043178933097697606589860693519194744196378992792077835361976735359486249154214444104153922008031207686084718247621677562116787309369737840296054746655488599510656789535143854316438674343231172982770512779005304049863049689013788570619326440053766668863052522211785851782103136822640846554712933107750903186997836838692980495077673463232609420193225802283019146183117056963951428628749389493193088561798766843045644025117940417252725359349167063642224832179646502166328431659196208539751425236716839251092507534086554818526318490746995312200559241181116073167272653887249021796482072752851111792516686867770550690741877417662851814097798338660037190574683839861586850276306944946084135828974132514882105978536465931188257995206773003986644980529520046344260939398414856421314541244158559149803736152763766097304636099311423960491161770918789466009768446145064923286125582704888759147061062975138646027535188197083881531152049235446920766327050325798168247874691337964874754117170104096869414414625942092191021247200512760434200100000735771695206737671501564898243608315504575519795673184727858077056221809811868545709515457017533537920250304473289952898349809708947123637475292283100233837047554728808152681450704532912190877185377169783395632383795010513536088467976899011324266605725737185847854870646555436320894909577455310015879926235754855630124469687031041244368202421144974239107283069454583011010166299910716470936974737009737354011764205607359344368978610134977295807598632333273822808240922328050755584845898375201077725156129027378753207235568147480647427053005302511996809564992803526494429180041397720125573767215215335279617148623329378404118776303669261433357788929655576896596332732588936144680588606039499374717867789632149128231941725271221358129535840018296644953023056311322135287668179929589407831213158215069959163971931849028116965085423009063416177278267456989421751444140937297849808995138114498822601907693491011990497847157553530214094270190728804863704155177058505934704951119646857409508872178243936164863876686539892533817028173959080375251809068473485675784760975291596614652281926899504167952331033149181614380990491589111236878972960687045061233932856945470401729581780122273877451068877596121120400614001476529963005082463610239125561573383572984197428802957563437790547541631108778008918927934984640989335830217558918222136168488809965893029293596809837335084178639910444627942719888137417191537534495146781801166015466739743562969250269566086186475484312435184619837788366278030530434713414622478298333630698987096715784826079915025160538047497099898127869638245266588197942155178761268589011224638609225574074826283533816764953350849214832043606852908595902734697895232575517776257658713344096481991669118919565386608572024375190494710930040499349124013315913736360432968473141950374570020088825797126020281990387822214059746943296885937501534571854012829507501737558043671261421144243508282113133615968866742592915599160958436914348743440535879504909636322997528740631800397671858590957920187563223073109777338886770749282203219732149786776480755405463736394604501068668183336670004821212407015763686132274700901374836943646082346679239211150280148407981996359930034507535322867028823837755016802315524217284013975495406057980692165683827992203163914553355049055035244395297072879065003639138042786004745750456474344528900028778410203355477783714435028416434334018326544301707338991336358381294358891441197826434235476355385921184977818150628866113863744297727077364831846684927628871300611320412585977568600484371284416387213706613191179015421501903796835889402232794478313948671911123877417238394475358273853770248719635394954784680125328600368767521040515652519148650391919087961743425443492207282017427273093648079090935797705599673689467212824876515215137898359924044947409454337118511168087704820684093391941997710363921662192559494167742410861820996572734044923847716906387833177730891174553687677910721146315141074308434457416336202352653824960128658634221061624512253694158503855445851111112317385435067493129601234674763174896253855852147777904436505183666187741822476033532417357821374379563524692755868986723894124278721677132663475479187628466434649153017207487365282916228588703013169894684796706348511029966677363651588189087270553611892398942819450725074770846780389977815030729640936963274024491849603194193120702391222084371307790524253870553012719589799401367003682925975171648737153973849252288975232403706790351776489460192653417018591130586420814722586002414108613003667549730973887126424649164553270569561090324675373055069855024981860532054226534406878145147883823797244511578773885250501145782443802009690448166446401296706523702644705980940766938596604556979405679179981087514806603876603220656434110905601664257096682953895799032038625309195827189404341224872788167745880084471873413695259266758934428187044936822900164400729769862053156542810383350704602063208081231394739032066795503542803065524085394985213495304948313340741197595459142775522752346087997605252768838426639454168110551002137935893019248704512035336672051192215315995341112716789206752658707190334592531576927141775150818334689491791662959507631427939913237467708034184094765334484214696388472099109906733656046318435524771593212924674902025245175574019473702392317840672980126493919559737260468844961091519789518495077597046782125343703662161157995431415697991766389069558328360052452000885836584871734198664159650386081980208835795250829490829194833350228897327592740778061013729825818986705545628043041140707256930785664644187731383083915301286761804869728529217554706382962505982353369569842745384730097715104943295825939226093136177043618539256993902881220144305348029678369400408683119932023905397361208028438387707335878363269999455691117396873171725859609746107954250344449905148255300593595347101071838946757118036864709351147021982261196608667535141357746499726067621276318307242451909136121374451293926438791473021893948185070214796943710999583602018422990073184428342866551176282239737148865827465409293412043298187372993655735665072244811727053595445629723037575293075017066685446556079119917228436069921860444126951080145198187115541573841510090588587702834889125771103827549455862715890738358237134824468519546413925763075438190828264385600098942722660379228831754603942662999165646143517377425923481677981371853491437310872833270128347946868173892080380926846563056619533799290226674404517579508062993924826676097427562648696261203639898002418297118235395319920869083487396941881898708610726321462182198200434838350307583505371612126272522458790391400348752802654215287712956256382171543362477774445794249817126351844058087781894280292099258040090918038343108248140609959953209094848388469773269331600665786019394662926826355931766936985416666058641567357036846843111667945497982606352236384176110332665329842495488830525855914651948018404221646243117433332736938928609421546436267250689477481532695161782277423058427327298817221335553746109840267412332891020416075981537874682465251811167487993676965772908623308451546644585156627528736211758791035019209960238307066155882035697092039249475332367380565693889837870104066101074665780401894911401276579356436070147874815162597614667658288436816955360554206801188855415165928087853640839939088922481791884686468209105427436310487394941184409946808427418959735659441233556877668843715522830130078687458666526784050499019187262158148886723801286015076060252967635716364968113923341180537238117655714161650571367810012320388045108150367427512650790782718192826634030750416072702396549185427306204415942393492310284832948500510255456851354211504481693970326444034747290337445740303121701507715104600688666919645536472930663768852180059078945024226701702083722273297646599083317885450101561237911634925886879885828499850097644684489676937920031350507786866952039667965137974609004744846338846309042488435091344492383433478013354496811962460312825606444784312811834388134353096488339270454609294795289228321788515814452954832859797814781166376630551509536303031484336828491978189019669919620198257593253036457668533452303546198252082508930084230847134055535702637867572941941229931085082774663670806023374507247964434033234389479910816877411735642796634836540751476654418724798721836332630323969628793486632371874274676322677974327283614894902451189923068693568658618906141669362374842798779528428287244703156215558249018228699145561602452371783310902815131836346406372263786380344839483313634175633660234687786486161564008890347703997483074966320433040795561676394983592388348824871163530310220317897881907000186325983627398954118066579442671654982444455105970488490391108011248512005642443555099287821897616066598998041210331457663815725979863893946280956399181253231787587358718591044497677145980027541837682589736094150853146499169298399470887701589643661015761970857124131338373997900237891901561504594633295979387879363696307897036319231318446379920614237229564466865589894355492344322269093818693165850002619192334050986906527228261696860803191949171106057312107664848489749305380944069778236239806915335127510662797145317360205207668408268801071607251167290875597105985097163316353742058988994979806028684062160705185356226857522690763104948684074870898491383891741559057043751513479390901911299999857687928083483670923752933275423311166175476999760327000688310133807076327230887147945675307127668522110006455028188802897866517424856792262474747889593209829725986116124296337981718325563766278195820989973376020109228356384999228718323715278086245249846997423334381401345840220251237387106106551202680990011599991904176395148768486634702027031872222524194477979625769073393222121702725728929187067480624429420292646900355848650530676269774492290972489837991495939618933090634025871818349770266279526023489829212710508707612088662868056952525159205786231685678438099098522166181105663769020204285603918538636264266369678936344273103195706149944067406075450093063209195070743474928728638800042012181732708822445192940589400308947735523803198862959854617068366420879116687778865565833195018755679603661884076077362054893841001567856062202697589535663352825314407221449306547217843204548844187814111545302574931450064876547079833994814566937600505423689136211240040810601614413897264802746494379667409512520308843308644892998725464794324908368703353254401734598644988861587622179883292320750216321098387374048308028653462069866560610092805498377539420896572529131012555256627597831329386467593202625478432231985923729043260152921380887237093811513079337713746422536200881081847624431199452564109772984632550372010370858193556007436288300569195168786824372392217319331074690075235108688837781563487809507518652702137928306865355871025360292441893947037185624913151768473578263121249395348616551760961874095543019322876831653563941142982279918187021623734622178979470919011210301601708039947339417352867834957149568949678984211193471136344452189068613418506243126795261582886312589797502171336575374927879139731876581407326935200936780784311952748511647741235779629834176749243399619196883187569659673401466750733523694140604312859542840870369173333207835098328685950390341977607694828173751567407339641441806939674199337478152975075020954906529150799059017557784794983115376913634705505986058463240775024136665560950513497082492023437728795858333274180932957710420057831802057623414362244146106281128488767591560965735928448445648454884712864855006116906783865489569377451015280363008748387537995560528743319486640673903447597803501994106028044654562941604337064814438203720201608817733975397179243878341076521494201517798126857567973960416439813750481750320864418971704794889407126487747307884122951950673265839522331238984682991555917451503985979607238814235260082717019479235490900322033712252074482151120464987544658581552027517878927436516199187781574538894615658255873685624705548170943768789953830607860425331387598984482671065193771052778950973263347817845938571623459035240329359325315017609346404569931192074817146811896191024075624290080876807197824461895968444690896582590689255217529235015344627455546490013015496433357655370412409811749992064913219560907137595103929085132346977974477866429676349827620789554260476242882755347120114315449102624850599938040986709118287536148968171613013740498402502494029513285681328932282738758053820076034510685136696359606465330553491581038849112315661217829969235942076384817423494668662447271009623187082936088131623958079792243282983035244483294333549992134912567539879281819132927246498077745143267415249949781386498924269717943969904410008031961346621365903484138687093890016243369940172798349759727384507799351576882715119435875433622710965448622815641513785854456271387773318822428307759502285674638705070085012412232269161051253757752887434072080046178184351351510283162862191546945889328606831992635260870859605704710613248762230584980656026107007562801550542701076839553226512140843620508914000256431960347561243288877332283008444870722052942956161336130429419085592973902373985742988450502552744625113566410587874308925502101629000952314743154069585569360832317935379713838791454021171118184585590539528098230990100081446337138549519256125026985520188814626863107440110707949221058672144272900262655224187332878482171886288781910937223162136723018169066089612631640807225147653470789878191084903759166496006652956619413978685296020717568921147834399941956573328601261153791646221865935934630623737516519872830776267596229093778941500091798460092319455834954309865575575584513042674918527998561983754304256770586349711093883669590189420871099659129951214630174191628958042405288432498127546199672382382705766767437685594724966255465153780486603291957341520402022254498244721355490199425170888206447649672539945602572682513879563993100688379429439876410878832332055293747615164210164466399081504256610125765368527531331099141466457124808686685821815248251087072537885204891404394906019226063597751877857268872789667669162967511096120796424544194624948996027615913436165797446151145500523251353972521510632148219900519417492233545588047238175764931839220255879621554363452433644995775982061312374352379291769803764802544862642176493541683311237621976255546017491356724417108898582925884450606488880058507898439580067539928729119768317619149805403899402323052239660757639989739361321548422486397759974653376210988392641343275441735874316643946713610784732100935037069449624204573847267078887282699700688085496343281233318191383234694128057180815982767498497776953325844025296737984842582629233251500207151738705986303820332341007196139864361953479784604153430285382319466886440725660838292715865232525696100456974633308877057748292224805105511679050886570780645049062413996181196074025607557009768788987657228658454147974933117088608955119759837232268121274069049358794307221487604207217676312710587159215093166724481490936225783067774328300414104790250126740331238876931005721481994185878489851358623956299547089507766361906588558919208825554027247499234045904061518966023207433852247184704988779745453362403439863449951451441759593972938310533659782724238540986948442213178644057068096093717826105402059676363040689015432340714308387980382080513281022378582541990064568915425437352054448200975972482558085943135135545576513687872803243612253426452960779274359612762461135032430973250846223526786615956795191760584162877078244501640265503403322092881668374386563868079064546992485656323570367739382250533930783420293202298046569311436661071036740775773729964997806185290366338228127959468745039487795248348521191583153904557382638043780505585305118647246662332271000010439660776586563386266807988412072988209161116981374844379848732619362031576229556977752211108280753867445153037587501001194355066631136719154079178824579797707302800263553035548128892311693137573794668603424651791142880028257094090681899544223192697585011211256826040567434065796246260648969819457980784317779227781931955696369014968892861371301768804491578167545810923959452927255401699959824491850537567989021787568884240913241292184044918830771937936952366257438899285697090293029328487263697862704651565385371460508008350596464080032058674240290937057918610133704548074447261860158974192379286080262882887613769117761316897773046039390842595530703125936708407311175671469755317976175347771739184751277629053230477533275713136558181360334896070430012923041696717233246308361564924884241631317052693429107943646504058977489470294646463267191538174742317299057420312583185546569050112479839629700543341297095344942194165085146772746783322022163967759378548236852935081294334144683782967859511450697063379687524479287806658891600057063682133855391456419268161050650104092167411560235370226964145518078130046684155939434352601823345982953630007956618377511214798600693381626839805661922820499576860309951784316161568914865832324982408449423673137276589775335930659953775098294870229232123056464189409419189259496638084676015481549895752184968291263452848840253025152593831082002447759433861343874600900118515639986096794169568034869224212368347130073998781391883935665169001406721115886327151303236501488597616344309795335208191553002140262177698011182045520156570407830234302723557208392222286685630859550728870742930818382001648035613302919021435360849738068695044166669677383859784133192133238208115742252508817962219416073687404681523427211360905457422082980177118577276769993721047483267788947197355584898806809354289274123211509316505910529802068584077936448469798746737631451404526933159461525075224154098827530896577645931121278130294212127322338567612255880890770273553420430803152481398117002512167606288323839762902032970957867211738732576815145217345813073898255119303769933529151799757706876084307771558734259634631019802538577791762252942737030533746008819907571146561896295448418400519952873454127048555175337825181807777162396606874297496385963933534175360596392641428710593594404596443933586216728249186775789903885436965182958424419408402203095676275826662772260311696595850817087964152052678034862710701348943935227384285425386211192966817708674148544106820590746037868450151115228968613658213411457086409444170805691785187362511877899566119848382269018042120857082348688568149881154958909488515737208625017828009746594025720554354598724655612953837666217185912589080219638380501694504623832092349452456893723130763098460216965237190331684809394065135696288634188652368073987355772716766365765483467852234429298673221483929855519010673258808055869751896128609672831941331368594573635103849651811820466367696107532686318278215321040375985630264594380762617353402665392939198899628817529055984280846970911160961429269533899842495291879117728194062428399911990251819237813138251500177484017925848064147007902213455915887423688366182135373239971707919340662038794004763745473817311365866666721118750410008756876476259512067161551002513642254217546541846431390513879716026467045862797436642680956764189922240769290357793204896028061321594559015041890266958749752410187042876055642098650180733547163812439775605154538609006561691966487329044027946823706420088044365343587895994850029594688443652658612427461514947284590039609029934196934317254457578426224353747529473416749455250517317913178064954521725260402094948631359197819828581922742546421521959916726063401114117626763558371126052493317154404607912144104017100016168917809975097416797674094527027013835830174616334406141881247281397931493455418638868617007068053120644530905197853729404302366909451934014895091181165692767619048126309107762884207735566911525211848214210154045178087273885574876436415298584581929824866496332882494533185122697339932608534498154021033061296342338537587930424383922694524848535072509658646064615303922427500146822947011430588008327176940453758872897522692919965048534483133216351745834891659290097699778804232218217125604510907652938263112780132322317693693357710712996002548485718029186470708511881266111338465938605689526645161805136916324600352551868405959295477561226121199376946591605435554522765089234202930318048838640571683539525213923452087173364205620547005301437353896926965002010991508658970563558894389818526136854027660790981536516107645535076288197191156154761887264345087846450706448468112068997947616459322776709792210505715150730064346027990931914047929183870376667159587934689039094068020990388715627020119642712448646279783800896274660617237364965936236614525530462328960214002035970261829114347026062624805996608412805415748651712340247540802948761138239336112370258521497892090975783883580918629813094848591326714088918528189546374992200188011580527550263761485745547886877188083666604767654737697826941212817894296089009932385891899238845506761619671271761507865927082263705511528095937412785503711738518387990976108296835826880170293234755014895471989161769482474796136464140825056809677838125392309633574767624558406635964748715791774834645855096430489129961217468743816780464536727041025996967042674464510227047250557373758425046686073727923491943766794122533144978383630454209016990950977315255468012553209659272161942043370200333241839497147852802187546524723602233529615872836721378461614950138029689902689100960253484432546774600294453840849754474443592233233661674376956835120882796156768507041207918482987978304283113025939202015591519081978763864247007604053297122775969034505353342858363439388119798732400623491068489332557227580407798513625320389297232425089517802182291356674457886916974695442607250266307808154040010912287472384852956181838166706691315909381736670370363986922976967810149289359273279460087802214437964015474529750870459506551348242130053709501658396104543870309920377741088528453420098933316651806373795869129705198837024307271835983979703354309659747528031643083340306290718313229207390932241537733512304703051091709062543672037852215366119434497007586158063375706933959942385497187353494177663125416473883815001484741830320556674814778404466141191596339380466498902834159438820932493138077614504847074693002952253687765318062755312620732885701071538407693269105255746473570168860071392666367138466677825217503186069189812177242931957704966292327629830865507086506000691888563201756065088110640456149620414730311928408021550212949020252339036043608595167080720372427443367685151705524297689853786261778766208002399080082552867277726031334400935245048984964903825549617519865115121576009932772863354225878235765922264811475682924970609434376348471381114872644913874027572287165360195108494084888855348648608062248263282369844983506236045815516029428798255564491925257958659638644543485510138924948257009589784461742534497259682324594163258312386862868543218257771225042807166534760786166588926773954442067507893916409525194432206680197044618841515897003317646185346318706885186618244505859314209879201455385796238483109023054154559551793892683817250126497726527817028766703434816211119547668619610084593139465695089238004236149710426848919551403176802163240848118479136031277609340595189604654534552542536159460564160298133466658735309192717712971882521288258829385055993710554317634096463285027325572684999626849741545855304588414488356984485526199293597186702056519407333177111424595173417707000522050646537936602481747921066227669415155707665281156758681935509026013713996308822281717834603011039780826276962560402608283746932962463240329288724729092149368270621586148230989390796059360926464636083630029849164209802795526547238144209610166077260759076242233200127483312649350862055855681444309407031580664764725296552231614813403845766565412065267372684993649523910772624640892645725526675077114899569312991105310041487201038179130740903910984991650958979283892282129588085640723425534898945279859889718766612453131769834091051283667756598133749113347207817319871721209179859880860422429634452058299155227071255495081354569132845991944507590391973929741556550169874756655660038372724450593993971840631962329131491638884744791128752479948504193744994119332318662852879408002005757300131572311288021433991184014456255314308589874719674333114405069303251174600266378591094368498219243239042184817627791917612017321880703636162381707236093495540707637387519654135130275279082450655650510254728902451942678636316541786279629536000726712172264614464266754083069187021087606196053173864644763051756705086204091451175449536306668004031867455265055268942337229819064359461546710325756185141713620988269698974823395116082700114727861126804786507592948400771820001186946374509897860928392287502385412916544089378901555483288575698206929586975149793755963519507128729448180635401222985422206107713100260408208721101167779003512764793894557803628848203451522935432382196732877333284835076413378125977160537903139530558094732610188445716185875582471829091571637707090277771830950904394165932307829479059901077067240948503976620855831851079917953966837857249780460076485874492394579264902597717609011204961222436374084536548420317651910528804163048479014928272444974656621630288073203510401639730455957163699710800332099676861679013935764310262930120812793824029270595283687578354424521646079120964770595186219040273753752272689830059719914161673049396127525534957085157323727209971473344632614950200217180846852217615415930739770978124084792379395292532211484938752190110249651196808995439407155120392915654511542511733522283067789565711942601454482860429015594198926671593915672516390611038048784793599040915602315911052244970893358969867033830546777308105983818774770013920665652449146888850034497631016277512917438744810090038197322652160106243468192213849940506166705263382482043790633365735690290902416926563511284438936539558378107150371309160802097190896624938301893636675069262268069030012753749759047947641805619296975122321478613965134435023631898920143267762180514986804626960293564468783874440873960533478018243881368369499655294374359847476553612030989398876647766964917657978440543124826006981685030935262059226405354079484759018442629762346248108887691752062240088305516905292969215239521442638563014203146126483966857835553185421367483625309720088889037520794215737693184865308036141580759535529688651855410204793013519784025845415202392505939303755979146480918133442166418887293969086169756139037937146632769843357161355091317381079445704022279592398469428491493512221075992058389490124429358734561808763988982064276215762996719468611436718316083119329181971647771455999959340683576952315129149772566927592000973122604119153997901834220766314421991324152988665190172607948365565393214971274008919795113136871458495455033174362418310472269565002655496702958200283601989039024193051032836105415431148884798518370724438769711388301527215985957588098600093885611185698664985572063010171900954137953584340580303449447664796889585593195032453596402106977739116965441368584817109648092994152983595508221776845496346227478496217968661960309750708328691826475033757113869268315939771184651259850251217185167488818962096782733169059409009743769515176491843791011400279037837490037096892568543293132567674747439059133376143000368890643241194992890773913047562879187237927245427858032085539007655549378571436415495963452455597960099162593739321474496323390833859476444519854034351344585169821030720161000988424810093563415852049376522789884141845046716392857968875698285970988995918782188909348598166339107811746571600758103859652203605205299787106649572011344900648722911887775490100055189531793472377061780919527238223465260117676285143454448824335773112677249196144239795719588860853190817820294905231276544192895150412680179942527405353113827873691573453161842743637415513543451127853863541322729524223937507106519181371848507422891702088137068061906166855869552566932222626608901155692386435253119699240993816944168199302753781615418997425872156573060804341889700395240481134004593450388011779037165266043363798879185692123643149842916287578615438106024655438435053559430920726712431649666288409691260262922705185118835184082111480781398349106838619463268615910369792539848447665080049799080981205011069005662568145235025396703120564925623283183480954574016361927384805263701281667251021148963204593519371443756531162156721559809238491243877928247045418837339307400397527500072521978554169744214206277795635976971151134731215791924230411175920951102423895970687991020274054838455111109252444035815796790865322674654576731808610352434698223898908478360760101326430794578579291447737672179758767968621790419540321528669629256711945150769331787689008134269740693651412659895943815967538438005815493071953519598216512122743098182047048939931066145468422035079342493673851379627491632844026866071239666212866746449228779323006858412624936069039230864135324985879843556826685162973267871730235197607232845416406362293982997083714829406038648596764887554878266661140529627750794519484057579424079570815879489812200571703241351044295734924981910796997058040462613941757761727416839384375130107614059380792788579901101058325257853433577865599485099320328870813279806247023452100802878184620826059609912891011317337096153572702599679485502153379742056403876477845787075807263826745990483613309080890446640910550998060113348785996673736632705742016082782992474612280968200354656355927248132176530552586091102804621201706871688997138022435102123417573745180333419168098231126495036384597980489498589161009939154685758124910089296107360608030564912518251414938360712176710036163823152600092866215704540636080231037861483494580576977228473741248750753636842911069733525570358694377376456261460615432692765364862168694199929988192410939658622752054208102472670234138159841927148797074214393671189989154823432053832041180767341126802990503888081260541406460532125429243420969929195715635064490369294332266010859440754279620449306749390640752980462454319477120704263010819889946907171744835949165110862555206558729765764141719496280324359670793900629163276875162745653009891049105162478796569840201457239319391077929510612264441415230165127131325316296841382349048037562088829148957872402113984457967144214429638743595885112475222996478774689187045382009426527382824233792934819212967292985199695534893071795500379017065402834912439777989497883684170757709012504948745670852691692463089404228730973262323879541575179577343609796824982885631065494329085423037809475250393166348599872253120023485016387571847183451242946967295770946011837289245450209560101144892206882418021792848154864360527038890149099726656740637821063360575798500089399776544437967618510440427338358198715592614769674355892345851908325733402336607898034965856708086883413491851928619913786425668149894701805523598737337691439801253027475540813676494168480974370051430081240456158090200905464343440620233616872475901406585908915354027822456049880071215170235526527392697463363896189310528484593574823788712514259041678143161425283206343258790124924605981975357340953603789072999870181589645327019775100603344169795309126198300690087799426941884584255140929833134122503556122759230956052145734595635956765503604806733091582240275924193060829117871001342211892027827527622736758591249244833838742557204068988181048183658855466865987011813948788379121703750206239244188595622471401553528367550486557991161312110629543907381872308468693085100028960631559617832013989802174185062503997544753192479720734271739051401033066082697508718703575532305214043928149089257453981232042209108755094922941821793514229610364303990165844018904495845493585061767759129995332254444507786940403515384064117749094899947935742858185582253033450362312306135952269355350990648235570077794298887272826370478926223360021954624916488928215781598938486015227310728163389078582147247554024067786751699638999424030333117237567910492076292534567134063368165509138714022452280508652154087309918838336074807528415298815355279489240069605475552295006947206540284083249777918529539285687349023132998766732324822847518245246595417023548130879545086089873008324339880954719591009371127408677244790084407944294306049744909227018171866756830667236535275807170799346512959726488878476792682969357685874034757684085780337478478926428419617138980710074140604178037531236503508489688176457785271562744433726325989859007637420890779600874316386734681403680517169829931658910344638437682639779215331493977414910309916960272926942867701630389375461948777966288959668234548922920041007431956984128212011719126682899444731046010916775759477384238435791719435695139656499613541998164856819195763408463340779986506919149494698566632436778156394764566160164837396772481787256370896541357700540670953467845673338946384033355891024389102864920489796440077282399689610582471479822962961777258632777638149009917717569542323967923351731368211863215424023989458302923893388960766338052096386776783605381653840638511354755342445636295754283232370083943758144851788206807009060682228710535342095734765609854709742722423545098382236081783305393886615407692129431911754126315098258436305223292589894813827683950802926629734346444080272278643147766589393312128865521584476677378190039946236772523778049768678122737258073949073608427292098142460616425911839714806381161330837581683665058184309672544979534087119722018202516977794584114536996631144732384578219463056884845438993804992657252697516143308695478711402918970564212641174405454191550616000444682773387967815341420233115759089025825206049954977816735162999592831493344989730832809134508366544319532019781016271840973223872303573277366691211845216480403422523271745737428645935600549466898603831777973738436023335244864249490209056607338005267571187561664987008316654978402153472343139867893920969035815412093760221636654140775051192398265456141220880387050925518159206370800477755844995166677314790202192684213728712339700313965781686474658324566017525448029029049067406805060127043555139866761909241113346450111092618463793154821566646053750366296113387047084727056812898323752454514728649811460442870881390555722169582793436401371637649910063944514810451965117178272101827092963502805417186222106559096051161170824513365925408782088538117994725458962508817994071432667065288942285802037967245821073780416054374511985791415464572319847772555889648348885741359751986619445385717778714003646326302870487393184150237419325710303103291912058987155908721288385097722971922089748486568983616024161838290615662995235547111611955471473583543069957886345665079566417439995940746444875677628306581613907160788273267997137478917668816331628073717737567217353638192457099498498293339553120578385208112224850061495699702246918484380298824845836024702485574443749637639404394960809091736221593770486067029725183885638607096613319907632138053339084638370951023283686867961030056364943484926937050502866264290443155261336299306883187705900259349420559640871314618408441922807785088640586124951788389642667676205652844655083530292805945421203710237033350785687736672398825998402846003708727741331538612086996063425581077364033684761978145343097608071999832717670901977463263818582778350335227535972916920948296708790168911852146036464794853505529638886358209933746103830930655626099231352779056207086666333714645123635147510548916389507978273297771007754729255688613015626170614947237253419769863282797603813159559618901517214051560956296803830140984219537870808551030389896733092016393079490744536343108552776494368675772020344831687924160739487341053524097748810215524189600305370655773044073641461917551010138417524981221381501630288026707730337499257636216975981788654415432934893294130541718835435004445294890227382636518220514049026999401536162061470798999499114257252366122983791128766655401243200118787302850102415933590899386605764253437578085789282888540096498230220098681503331383319544510436297903905777150436878769276284649445868199451843027350501334658525842002188739973381329846656331634152569745721474338068561348907718867593406681988113321916149269642270688070914313927929383698857021193309896045787643028945691912604622881805768838392233770643181624463957042577777004408274747356651937325474871373915852386712361756533940107106748319307830949442273069712038767784130657446456053599519059474153562530745965304947084033736234420907410671408345891533775258749320215375725513197446705359323579352907589670309940189946539837910997066749018055951367742345514042462747932987106059956249249512195685286907681608844638847942338587029437707171866323850874331127936527472959655151802771726564224560840430267211426732169952621881399465217918783293760120587758664522991196271740191505211548082912757036447290749909407944375571465921776694499423783847887648153495094164068657027692738365753951632592584082968992423862427489494281647434420247327900231773661370364015745861234800738195255886855630832593627945423393306882042623231244842066267183722200118735474341954987915745666828835130833676054293447762433899036996690863765646957473329907868494331765784323770088528144256923961547864112835273458685767728862961495117326798816896026358415109235351878665557518310613233277219868073470578805683274107307671318844262966302878636841474817671298283202822511608875269703376529932947688297243825011823113435353385247317277368756086809061383510767174718919032978397726516807434987768860398873509379980911998443451350619829826183794223012114549573966734680198331346383510392967515820948531678112111698131911608380149477753400511844981335081465184791471907083708431386933244056833794851616455032552068481479611257916703085567364206579213509580942779566189446130930558106247046928524131712373894736624216698273852323729373772088817597320040076868363558002433373462323680597434584305638114760125992751325508047857707691775898268686621671629149000044932544533550707001428339102552814769669231250142646783860791946897021723163636721600650034744040442961344820939339522948107924334167568769202010827042458036195931947848482984875407938187628258355428939625634625822006533809435622669891920084876105048448205727173504405948484550414881046085732924075827098281772901029773956278347774381878448335902403154266259656691264982127276194192462898981665177025190631999279550131136293942909192894464194153136635816973114440206485517815695490378838565639952440734109782860534736958183769556556044731117338993622218182858167223004757503235143487322868432453509834478148485161974830930767638120190746204812648865866589308642624703319849610612136494098632346724628724673841981368563944606297633195202496508029105814404577338192117030511766007728049235913500753681745809657124518815042000649878919138323028847816921499974271282074488422845012074199876861075596396930949815681837805972082555617140936531822689149567792029524585768655379569604952352723921022718988483298812079225429574187022261689360244477395717431062703879208089646214310586051613509270486157191525228693260924390317096649997049647325151063941369782989966174546720084488163051459652669725953092995421130352412719122593022662033485068151987169249922473766349156764445496238316624278233661619991828117811953370264066739404541696597791090556654157976115668328864878795996371020053785120211467962457733086890497702298484780357517714301721474021875626710102346984999033464252460994465534261168183823448600435212457425218660951925403590624284766935952188476937404536970737121751376359343795028180307279443792746533426034023769736380982334640837403670316166229044325743438587171689564050562313081463004833421112960464761282288163979957582785590761231954806148686785363591759572249040883502362959525548595375045652991399357883617428555576541948825180450854368181522496275430917581387188785851882401672559354037686390434058381385024284354596278735215978354035803900240057677884896800505579915530197179300748156704292518177860627198529120084908477774854479297663994694171801939778494922854997606760109227928942203555531650841309984136866425504162664595084311999357639248473511959833898363007499824443813013697016919532991637476239511511052243373602451051089967706251771618196657323508904911684489779333830013007916763440703299009154323263311900292115980680398996370727917730028070546936883521728280035986746039190514132250597023516157523339483676326942555288315735289712700915200686190742705846710791210821235046838287390691239968078519310496558707078942776343014106452414070269730679534591534701823695727091253479001121289983791693344139370494940447886856932656042257117886171597691764944793906093544368536967715390897626332906280728775590966734223250080583683264968636205867980315287128983500803185425103817045485088647052163667435913174775809446650127279017612478943768692610398595167009661087784170110730403550729396888787588908208049768638038642222003193198887319183966480314654253676937659623318705138544689290182480942890256103240103034071400617717852514491509377239316887554723392321585410319757645269712481690103031670612295002955275073063603827044385961253047842928891344149275762787687343431661921624619799677277189653584303174651880918274272762681530308807054448564984648475599355062087913576420603535957409061889516364235577675405685509852915627247552157865716691194831678662194864930999454503497768211496031139388754028070666860797986054157685596473099450868759279033671390005759489479376253016662781678627228249914893456700961761993866024319063986765407984782285181374430647425538009159195145917618645273380845165066180971599653063479795591479630506750813423159229800877461184753179694402099520166852267438043067102273678276446013733536952673807267000087021997045956118958462544950280774527814315042773956958978045027401403810585028849365458914982069421563822060084357129325594945967359285941088753086833701132528787751298273570882482675816439963781405956392148011828589993821936735434208595021415190638460641756674758767942489133849204830905632072982085162553207082897226555075808236308188659658060534725912166756848219693377820394881662220210473214059755694875113845334855895474695973232881554063271996596494677306668618869446875179562205291444464860811917546865105970283966568677742710572894352670988224496074142686495615465238878061544408874262602685410503821488411732185131059612235657874020425647041087984674510653808658759427869938824923034188931073729765283640665434527425066631731176216522473378172397654628956115396816099878672653273346849470453696132712923643700070328274138019620122293775691528779717805826149006211456226488057514746983477361516943077639210259197446352082929010838551895680163157963359819620497844763833571793268741551733148200715027571727416248900375951094681092740840956088752435440110223053724028106810620073278463439050658600280321701894438631221395888700351075762875265911290582487921454381075477115614269551815456295145118689178085287624403538179567473972801304331631785551601681730316451164826444268003448046402394808041552654680232172119315775212937466848914346404943210264533363184838874248291888941612087767569647543588548203491738539795801289429688315568264621371119427731835265384838182228428466946229275457669025487522048821538288726034717418648139674351714515963754262892864054687167639294739838054321247448903091586010524316760780133887326764804036129684686647266533673252560449538301659647274214185536508687419256235381768608726158565132794903642095403790183949606845832426967881658809159016199826948294495146422129102205578528758396258452977477546660095515110511681798980369386367312839793314232649104286944048470101943633931934719496248101989866238706257412745759716230288541495405247136797580958801677622310791324586262404593968278754398502314163306050973279130816164371301167568002880906648407916755564589800196856856670325043102662664447855681463104794704301331092109153998673008704770131806302171628474986866069539531253550313405100102755442143545388974710503763917659747578509090992190728330992692278000711594035485291721646736346634045749246864212209929858494033270522365821650091399816242459492228571791643014526802520788920392962107152272342313781671132672156983720892677726448270037794835596805043573447351450800303068822804495340339178228132441963236273969994692573746257802999797532257032988549262558359714936094636028245434588165309171972722491884023651844211115895014611891379418273540009168343627276476533119424626304252974345854625273531296207942433917385602886413818582609432788300465198288497371349405350987918586986400721206229416419854787197856128390909905960102403579069847520883533642977148789133108131558768057035238292861470779583917501542482667693420296988261802206747401593380034811974431448490036790334178598364796589840609012564426918030029901472932674921453588576523142046616079842496533086485549499825395138953311536252654162571959777655322878940752164183529568724526967530678746211386201591075551274928366313950647279230745677658946003301975376804137465683111309278495657618330378208557184898601046755752201348683937174623809877948564359471538912283267462554091635595965773560856681027278613902144841268368225284790874481643349834166193322328469415540315890899794312166536381858339850806397103571184530318956123028830276586476374445729896175308550737964227394871684095736000408219420881049621142053103500680225569739763599118629301653139637691969992140237388144427122575132129307894408501726602768777183025293108952740543753674137573025988510940929647356247148207301197775752702142424118788731527304566560741035193965364643936958919255744142572355185065268172471057478073706894453287013305457052521358600764402170748783375226410381963879971817690069309815557930827499548909299662962956805660874185702953366007182707554628201197970674761455537350790681962533037249485611185822037223877159168452836687467195530578237913913275831050314705499637524265547089511197497936714432142307433295865325746062531817582955649682615702294854049611090155928775128820586826909755653613023399057363587055144580880300098464523967451280633448527215828215878279105060800774863171591497699536690144383159035491305265890416000552005774678989670251472188752985663367126997029411968315525101475322240496905736104217108421010110659710394055307835942616263570459335428020772079519234251487935608021756131015514241447264046136160839750873963121517525245951176708621680253817651961000500051079937456540466378198824357375086849254563048248493803409633504385138500418170757509105732983885391281996012160542943116508388812305742185611270466386065513499098080974494002644730906702038707511290701274360070847061044095372648460834039153975364974041795381775051483476624512907066319785519779503350318810583555824444885216425393112241891247227535629213047366393846278575852749849493090076299893756164425434407600186766342661928253788305093294489342802676554611969325426335389849186433195818739892504589670816515424709706140651895396833227742722091727606977771875072262812473237567113341294632400236154390573581764761986966791335712375544131875765157282469035425762815354001450388278675372118707350318207126888204685073820334933785498831111748421957513753419766177399725527552579232153287905289443158967765859689127139381903476027634461679046458149127905011858268791636453989122876668573273708769844149014815879376354177573916106353839767205822092143985176273095008401615898839439454957439043717142473607060982288309911620962662901029056741436008766070407092104191851765707459652206545602246986118818245877537459179708490135771112929085245002856814594144184903205431442218420454371919881177006773743267630397854526356208541247619687310270599859069124601336771195918975451100236243369368149851430480492622277827800386010044090569411356929460673892068007435891798209458433410115436451295206555100810558783279105153596336333287925439306914560073313193130312169716933022217428340190482661582881493082843749898262105160311510310081299369078259096775946850003372882789505040287986969199234202098863492937178900027433408231526792248231668338182634473477430378592428639151435522303208741348157703496139248403755003666517094266656986109336501250567175410960432299954277337814680565268543916851306849463001055889525300517387821199253669955410411150901700753850885973367638417198513067812611421040506065761076965080602874240535787944501591718946959296657142914543273575300047491288482453178655399271847571611256802851127270403397049346728598433882578940969678986855013925502659172052700295913872244522356089322299189364518742360976559055046718557318791366738595714556794852202385618385256381304653089333345691025389375225959838595570556024413122740775478950192395846493149039395272039152394268078785929487612454566641057668619181641124540418524316383746377952638166061973942254229321569257794890617103977007053417895803058753716466755279630804369204337257543571442821813441399007711998756227911255455644494295101930066214135343346635068433349692309817950615773602119811444956416683252705029182331936494180283041539979771940094882036294444785470160555249700233256025468798694040890403204703396826321338528464341794612808384089541390915615829076919690278420910957358395583535696836152890419899350449801632144714999805584385434188659766668304928819307400529151286256288531085589133899137708810679818948954467432824934075867415790882744617032554315564198067896018802563922320902750936869006581647360703648905530483427754609443596972310915650207223894975499985214218467530347904111505209016623837525388356605843516844562865832185659733093310838265885555036500536742279757342896028769212268291280311624959139372556449352104393242526944863627853793185567485080240525428281299199508406990982005127889509427705697086503068333650108997976534005346631357502677291318956442092353573972310196854707717313094608376122057085241295560612606743045847775625279396229516643086426431788872435665923634452494246496715188106410394058714824180595993110759708722248543715749888123944927715864755282837672529306014674695779468203352620018476945334975243435200145418388851157393356875908298346463574763392442590771031199273001394583250252671311632167288559554033477660963699429903532271424438771085474431862522672221048235196685130033819456769221886839122962831620857749447196702956878638421562481129856958904333128553017420163367142011206351722479342031053088555834321638959701323303390976503071193451268748358751861552235248820825779157992010626216984378397429459755644707914533790962577365527408961109275956289291871644310433914520893601871738081369231822832722865002502801279195608431725964962550200447317741664970415767481135917794225670622076119191825287618310055942719968903871928383587616243287272663632164890124790007613330309612996319826527260120520718162489650724985316054563423586835333843725873633431215458987084677280224600132860086217046549140418853627683214063024213302650668959401788409619021224999306559109507000589807086148301772638680882989790065594247268006501108444916584588668966394743761041110440106239103256821070099787219328402090564659123160116713712385716245039282067378797923620649050819300348289052794640637739712186616098370655054801382038819969586045172094192856256683569544170827451432202770855472867498443379795390831464622662888960450095601265413616572151960421701006199185189822512593370727250183857498839429108858471236243854643039415185771960304169711970085203274554313391170681021909957330601849903733089043710942527297613775392617010954684151217274367332223589764501465979867385896628811463896694207019875382792169921795986769037683181076851792355067546712125144791470979779424581464199794167252950832079131166755831742712810444735276262896481133018542694121290160064476369475523863759231649862502230667671449738102594817368208999965716924807869400826433037393888513570848686213521005333686116976353222755273350322319003528291237662637372617562942645850426097124371092607439850457840796407621078390752917028162893002490346560863326537826793107656323445136337619057011156142423150138334195286895213699862166618726743155930865117164551372798887790443126218439776924931472022872524261978860785591319673929336790601295664121492925463824060229088257305386722049160279517988592148089149358019336504786692944800216884959418600509444458524575509376671720285587975976389059037854132633433520486185719668467748828785810658964585879478455990833191408326010009575668838680500655584642278466323443359672590443855040617826474554627644214056689838364708208637032237579008819122991915664509673583168887252908189446223547457628119388796424131889224181329892842575497890642944096716493298303296409963353774028376055606865770617742685208709859429868346545403710906458294593188086006139863741406904085797906290684257246283861651138864106675089316987286195603289379966878749102743399565884798003977540758263635178555218124191661536265765735073401913725852766997958254174462779136867608586572594988664826632489737817139165142353699002113619838326030825357462314418229238582986764558029081445885305911842948058156651116991753674191859858579366070658471006101346125392309694696743905004012483504558331079799598832076533450363656148900155418321372836144594927238976347912809872966542286370854729000777646953560347792720718792374834353517848440273297148204437007955428730384264451623491633230248898017436852365153263893385389352003267975984279575008496929070065357125045756528653365737605854378711981950414109719603679767419268740044688499677602483672817271480532089378916348328905617275600249660910570074444408428526236382020785411704958613548437411076823770026152955989153697796002459712651037091300132526349361062989185341762106739970393459292398447446105906914785487062833046830691672326884633646849629408153841557397772713527507521604972371704196076172721775736263965083567201016118374881304234477699360117299999466857780534823973193441166675025692602543870339199730687116759500581240627168124676915407575411395800486208066641970356427577334012578686211047882039736146484341416582295501356997928393682788200568020031883981211924596331291902245890485041945208999718837564773784260203248222473393159527831354374372863766681781127438332639924257730146079550428967650191582432008509689288365689821833261116310167448500879137407518662255101725019551195694460866432847656185906933756279193442173408673626981514561762319621185365644251516140910344430618602359139697674082445312979959065743796144179070306087776170633547627947341212597663918628957414563989320555003784316346329513439683454540879571588284999825221305215236127215491669222761046986703436297338559417530184403828749053345575714229106585988717382841460296200069721790472000317055265909196336260057356282479955092885090390676199994150915435030924785287563062252479344945618757617746773603356850941416242547159712422366523332544568539057992684637039927810967311626758318629760516589991887257936465059228805022836095860229702074885753568506253501110902890964640540597260668624505061516568717706342949420804531666375882019559640593546282481052750357404333845222131904971548814613403470163528334799923574939536591565037292776395916125899829549407325695283820659248700954530289309853401487288037679803496813211746279803389736817533999014791761060255113205628170215865866889691950291112354074728618443485107968735122135631633667039648562127473771597910677366532421731050212584615146593571144764175200060755675598586894994350421850363401995244734148763291839465371990349539912358565700600648233653531728009052797827906680801959986015249801199137405241938667992362911507294920492093095737215114664827498758136034750119799587803330537591001123892631752624562025960002678941424572649277020100470306108811108825732131269538604179422858801850307995105806533064355067948869760670900117501837229454735532710467723891028340345880423821679610453366704155472238986906339173674417631247637020917797420243035083632603475091350575626820596638510149478185717509174487235173586349568858472597763526584932911798356849358515564975690278851698844470778398345065835526444082206941705750437743835711637406189792529994401113922590898613353229291753478702750015582971880148837309946987035007407071375113240643711798975094146459220966835468839873988360797377320257365812436064333507174533572036077169207259083517591267021799626498901136124870636824597433089314765730494325886679490213926519741654049625595462880223026883347867596467534599213589630406680625767523466094092414241586983113479501622608060965545543505515819757486766123180273421270970374404664266391127581290823400005751899089871945389331516685005734737367990468550812687393994764036170994487282017794892893415343133151817594558097097529306384961967537944227670793888131516389732581041033789701479088322426965432212923839831399322479122451097635140906424022898490930240242506540185017246282911230200788846869344916209507803700266367022292581168352217551233549283503930695772696778771831918105972997892179280101194158057267492895359774335602521184735962165657014529395088921243788273615608785716000987521539696331242152927223893012532681449979366970457286523466477951293225561121064059082076299927161379794300193998016108083189527569733080568578777282850224908030869700200618410595915425799908097928930202644672182396727798155720824275147606109871661513649403118509529053860977731073343465431166747351640124018424919238699788444765236240566335104579556707831274609692563028932891143492292923944506898411490659362192067027502576342267723076639092729167185807399188965301154918895399098858103150642950140927595990152746032944431578624097118117182188918122623188490213977819704596658168054482186078510607356685472005621295987446031339200898604407827043201830444163803044784953334973458052417499343846729877519196520527751243359317699531383018731595901045999197921906420556281005054990486565146999363722139921277890502300182641824465566110993005638875773846388509143059858516663972419592150877311119349402254484426948183375582243062770718143153788335544307094892681165317002796159670366392530987732630827033571362184460023753118727204362598795551025857490204957460511193177442366387075507613734072295882410699362977335147025381372003248965395843437487592999687650814455543393937345428773171437217442407454368184619826487789901985019881942273084077450001619877886955862771066344550885094429831306154772726158152302694453303547707236572500759083468078748561559306336372133235381107998293454201014951210709000316382289037565281871383670107433923233527840830946474133476967625424037356639476398998982605535033079336880689244239334698241124490785009072167510507871836890993219640907188030284099417876934288629862252281038086241120296841708377784710627775259334609311016016156950521446037107490553043082453679479288661785959288443827169419901030650259347463766929500931404512585078402833161346536007630033692137885979917785046774659606029317522934263775311532174742671949584288844034120234631765486308272177777412465340805829324413906215588458926643521761728853817727585900578393892955774327664963240580665162535290000260160687358358304056944836151547031842514812352097968107607209667139127733461708774912626615956084879484703099476486496144940052938041379812166993846389996326571665967038708579522179200727456996443716934865526218891987454685033811257778350509324135550121765477971850655688020333509383177747153203042383819394080022618110750734889456043989113474970079064250824516594308128161561393213249808448919236923004209947070435220630995301684440242931306485439816744425403056336694831548366713490616424538295160007864189034025337371566550978488125525350068016493115763954241728896951346479199699116201278654326323103868136444869359708941925082126551285575256713354863274776015513036876471891372332769310876985484768306397427404778897939203580448192330561251678513526285399609723586463024710121832052704165978714936920668178640144048009686556058107048783546386015789299926163455830202111158149190864278326495144145069869646453480801258004434961199071251114830255036266095994122152165828308841445060379011511329409845115358620665829621943444204481835849779027854390754330545469001718416549807694682524679892994190616795605712303661445787040769768703853298320355024089213553852172441224530369177157893495373275344269198572384844530429918196876818587099710742713542862289303112478846198121444098808342573682419291815070213658825193133233512739249215655552950869075448126346935956822817712815887227608534461870157918069661386622967845044408296129811958213864459422202396316700818917219805613674163544490893110947304610665671007294647941678086109716842838080088719972572696346174688175334950397437368642746957981696936410486363287442620676147325142203291186403403004252424058548143821053197536897741288027970205078194827292607257517283184134367093893055352864056490730004736848463724245716922755564931879754241328956381494987749166287626781825531183570256934612544767128193329296656447173779191234726713498778786078706835547075507508492299405654574239955873951315197440340529506448706233014604819365515804174797376055786744790388630621008382808271507096671517735975971801669973821854147605966653734694849641806181120628249704452312564582752517173260633614620896851589412810566292761696469420798465443453365181687375837255341803019681497440013095913624456478779764332673812016942473403617091542353246933269278739285574302994711958020027826576359170563736227294150906763812948044152169079813251760163283976734541931067054085161791154496812053571766237707658824663689567858634688747902965237693503286169276616742315232046955204499219225170413406241795794800948752878558649836996904492254724717518777503705639449171228589522864504743453258672912889390562076907191356004696888524723246396970608909021558111632356241449776785743678225797533979897640196156879678505912284288167626134644718987780990149043953269054514659099602743450449927767021676657442718757184170014522906205148897024220247617358177224148467065432425850538040718014670156773678660721712489392815402224808444674632182224339611206729517508552731600135402747068970497286479230912175159591787563079709161382080265067948379693388667603916983284096587765229370208006702349620048650790217250712136201910943615294723770235048033381434491125954995949564051082333770431836137819107629444795135502487184526745608658854152934481129170102264231120049825185359514353263840519275108740106545173467574400591987488806111047915604245559552438057802398211768702350249013920055289584970938334762149542686320163697047840536118841648657766309183194930956891824174971838001379856209881590911157023781133059574578841084660341996276826929232044364443463442102068917597580744007795580109427090904045822283303300199171955124942958817005337073039572095273571758036252781670423334037482539786950246107811760634709038525308536032986154589126261036921180426442520589042114994795845867707147309535289909588374561412021745945250735848185784708883246176553278791310156492189368731656877304928264757910381974606437100386029300489780612711270995174588498757695603573478463863476100324811433257201302629418806271154916474471872821422613824171315719578197075160833547079761903657014464652100441130733979827805059446631471305184840576720586483433792659715675928132868490126126201914145007641702463936508326210105429711422663259689746500550735894301050247023092094416891300929121367839562866586884529027247764204105038196398158654211408163494246820659931588435220138703844543287257379013445569822746694577357319644016184149417944085638706039825809782128171472500410603188450359322410254734403274143524186947793818806537779355967245943695249143442480077011665283497539235549167787863358928193042852168782605209508421651660133326910506871437944736745625351677075002122255814451949330236205951030346917804026104303444735200550979041588551100760488846359284988458676215748872608660828392796245318975645480570211177807930032861276337253132099528651635651293527095023449636283858680547331829022841048396832211612570163331587190740346398090041679436046887022768420281489651630498200801727083048705820180616225927882900050591216635223572746700950575067331644822838098690311927855019688330447833911448336978916428625855594892268850812932718709360641657748271919431787696023407498359033331561133465488193188593190092899055148599020071916286381908088418030933704249245533562715242706491464023461113206264998265438199345649433539373012444427178868216219487686332375742854774362947112506764167078509839954555070399255626809664644188428078478811101255383312663633038999928630612388520191048401895906864367469042969738982072479635226791633348662350367939485869560662501143865102695834057371982234533034369794362256518249357141387707172756215285317497280217502018579923456453156356270652916426546337705524643083090152071598961663513026273951905356214166623733564378757792862837498253125146345747100776139954410492876922810685433809387980812627291445342898327847152817226454208266891617960736254342931420950097536845971527889225414033792472948390345644982545795016389044673143439691144377070416447101190725195343433915489482756121689544647150746860910589324518037685830956959571359116551704798900536573799484546451819372501570334338521967125156257302121414529154151184979735395932244927328613338309403566833779556572200088155357124607583758433002722432100868000098802610084864487523649746742674150172876857757010946682395726977594421281443172871378047036599894221830476862909145587958467045444620279098188860195299454900746579644946176711529298176498593239983802163884765163438443014047551317390528543740574654998256064173752153100759934886443212961271083323686932384039700660494489747961199943223887221606110200957449144850967666283865910774248372002322806720910623430995090827903344322092128156306350438123052365552518751396713415042248992067205017508770764145448674282855429174867827275612288710566077944602520758733274854789216348782778397586855725788872185233675703629529881310252647496478453173198098830643200486139224448152919516629679529037709295532951857579211510845597275706103237876245390565337805802212533240451062659455550826055607075085116418806169026729651330596214771862667042722509538450074409392335814365601076744912536704145777863409467977450332794416399661446873568066224899412515636247612560298567521594075348706750671374430768696362268373792033174783332354512411940562279488529721743910164539678266838157710722478557887244625541218567620187616638150068127419128089230717981254280123184032433543517508257857025363902659218542456071905249439640504354456106155441861365040268162741333066880333830856446074944514046878490195721505624037289559775613001079489657688129578210517542291865181016918625304418280041278696154482285880565878042042930777425169470757046305075358592008560252337535343008321881037813284342045253261475737530340880213950710420506175446619109199838970742110648712285026590791483178368477332221233996565445895334261755314121049415411130227583080872178355886545660467050989674062203217086432269357237448808868729620668475971819116901594466265234760314375657038662381657627182547554170147691124812720975621077314201091999617619126418590113993388091488281159101264131129504519416403317753538700339029792796977699343854796247503628956860305106673082972550695333193305718441894797826890095143461566231189697643067763104122090318903107583482420205169045019248593638434048669671545835893666538648404343862833500335382972519767338891429305413480746524131239529588196166254776918838091577137724788069063571355397150916005140546390848514360427669786897485156381380209493601240593492340922874832871930367391213108066591279337367129967304926813364410615122304894590008497587723660654579122619543516514609485960084980820415985513318630716530150242929467211042479015165464354402402493458334826610350615883480690888388981986344666613608409115711963697000298020558272401978339135251233842364064068220526475674259621153998820610828224029315905803394287420451172542876919445856611279675165272031323305816586465047288977030341121507796253850043577502995037293573424832159733158592537594131636128869581711361301694950137761054965013246454307653736762582970707108718739167725967011838288846995767491007315329593698453550708231722966309244667242528731971101938973495955027753289956436685509702572948056293180211619502094995934958373910364425058331531501737531158169827369135742229334332738891018634134832640412314152860838315355903081551638614948507725070559504837660479478099899136794091256069094136125456421845839458524101056340355937002989374953974672763824489964678409785546144246290302944402123760312964074730613196801816741491272517401473676787133792937449952229623407756067279599441810869800911284506432886713220360695929432789131117872474078681529780256531935279891253046515481379499830884378577948147109812860791141140996462968570826025119561957650457100956705606468123091455822437674236615990563968090796117507782693647977368403624819122651813765458191962359946059290908300417597709465077014666477293409779210748267925576175946034097461972356733540534094203161884745740239116534098958598038229798510782141827803875448407892544257093346793551912967832080667963528274943774863682112178132212517896812605561807947299294935626525614596953320759384415143557948737841530372895886980023100478896051064929870948079940716073820688428706464618705696412336320448206542666699675886607719681747557464147156590778855559274694125887361672346690134367125340554597491193391768721224699952730719479838168817074105328685480410657202022626777272018829231148421866368953114203818783050932429592282804544644561190022943743959999680427327912421644501356134809145509764716356514781689885412793974604940160407929754692429074324658740445879427733522335806878019948004267822727275454718351909869082404185832386041456775485570669979129622422695401447891205645902964184536029992022231143478200083262625036054134348486505349948652896231504749938367327486699136851215204733845830147319897981830232311452813183446875773824661729176152123999271557440051469179104907107742636677323300194980708839005982624680313044874857966887195505487493981902287777283011510798643430514758544669635969433775467031845191637421009171837346759081100099368216744981818897375070044256097702567681260267647261815355845388979822018730840923148312735962083371740379828136219341372030990127312039539538818554190947161634571821911611246700373364449872938035603865748508979861989676970382475952239601145667475462696636037949088992207400879399617503790794991038156333763552231963296261670300045618783092480741146079680552570026507737145424886248568659238997675913744415440476042451728611916753155736600620941432207454698937459584700743932837493148604932752539569431852992948737146658898922596138414312363394307517534515147171252862961639567393427774736662884666441136981841846843673583006974078119283486294931149029286956202827775318645896689294235229974712933108192144433813263166405052665485546682599641833964829907828997261977212023341987249384245692862175703362625965985669230155159969605040286842434068163687253098343789779491450991559805902520760516453888078837917426267606483928984731535669203234693125571199644496258398119014004262948941745932267014309844181331694709622706577115446783257736758544209911622447143579537152676931089147909889165090269546109276946697531987467512390420318066535475793922644327322665964409176896576927798007891203927133714252428435350661785583044012287616768292834846730797946776214051164145134021929074149276149238968481138579082504882583439121775501076480085406177031935258725621713170680806485318529462208678868276766140218100141534777204481350387807236480768488308096863322169774797310269182806181295891966994614297410067641768435094843312937198378229178379233116979526691006212105169529919273078019098153582805482707518287713092372676622427298686947802642974735003265459364515960188892858502583870586792233518269396563684503807245632467106647660573665198564422529002818347939036458683572725646271808435155182341381028402820083270901066015484216018931098462729678685302725316574615830473753287482078265106060354944837062426777394743443818231758177617760657407440190650185049014046759395087040742461296719520858929816431249152365029378859010499595733550883296423589312283469346166735005550674508457138742125689887296345843250361648194030127881942009409486296895766427857571126969096032732421027761615209595377884720040104132930043385341622165168299716617673343297504235868876012508170997012093068942301393768583374006799888603583081673189239341678943863161689919524779306820552146230883865256135625031080844769743303370574598418602841257697977022086383483614701964233324351249309746548950735941402521418568586646699740101059376773753445283922699357388691594107606306359002972005707941276334767612744531388736519033863416785327901549596086593647038110381439489479319607186693109471056093604624252715303213438060990227439412218300799360820948170416062778699434601187731766785895629727767182329228246369341810083639131560022341469803056405609181301736167914403851335165533869795752260591029464347919730870906286050239114056272213761314079475217806359402374884003784981313024993450710665518503379518294039127776084981332579588725616213836558703407260671401049406809115225691964177272671929728019440690679411654464521077881977351876011327848484915956269512793885388796026480913636688236603124565807981690739673467162165333778697739656027476437534047203349329248652745655688550444076570759836673275779024660838704475148956418678653035722418998269827844112290561861852381336971920370307856390452494059235760331985609365231692428151468607516288186848331760523752414348485313270946212733851954934661208090663595337739047199893874941067061179538464671368946648379857854935871698246154110499337636618199960325852193204764023012596744982263593122798667049884382292614345517006059184573171152391019876555994632223095545515549492666208477010403422599810128731694961849024643055430403587017279307332215927394579378118045767676487092637499373430198335305191883076541637202326665979700627101939820862441534163687847525624329791583448735165561410822695672132387301354685422870218967759468327007422806489949695489032050138636945595163393115517432862893903853176326613408882800375632028603661680282994330643763256683189396632416653316003025280668999028014007958832826451476872339747001646837977545020163870301164000110079877829584771608643390020632439771376323145573969110264060926074986295923291823112198153456288747884288654246307099283007656978036064245384576884829542908128537197497728215601961996448055486038371910044683227058403279449423359091690689557486394564454268952706413192295277915261996413853642903792908520925475976058950407315282533302285763335324691772498958544591379734238782223463645512719496834077351434146827755493635493508903885469959968252899705580747913117121463752777592108431718566776056564568929549122642101045072193025337992464055618928666964747516808117569632317406194127865575832197895279339803883124361898506433031025947573636878139053218301697886203237121337987644711464093190355578118667604312747036383178436170125795530307387590012239009094267791817336036736680240765246833478452566243125857019564775792841114459117664325263294164792317171884100453791206755718480460910171503353324403160632859809693376259579185595781106660455288348711692974507980166809514951323805192131169955788957484197874224359090784509879705432740811277273426819785140334026283986905102102551098148823900059087260268395595968750987267111742098246607239978078691141608461416099550407009595273219229387700961127931488736266401345416534391807267172772975220597512812875306548303942499751125719515059774107333455404473880923387575821443491773604895348195870492792113831388367210960621133669708920296797952849486788852142165652112031203989814319254060590982798313875451601935109319596347263999219781428552157245104908578461895138342631107352415714492500772230570330709371913108785323118894824561587867887852924067671139959401999467373044143419375524940466778806353397738058887230835950313299716516807467294726801071252598596104284891992143325199486897030414202067264168682465662954424208988609830216177267397116313808070449851173383614705309601115652467014728862178430137914626698768176727443935629139925032747834317956050482303307811723356311788417074380739187785406855392768293224540562949048921838144017190327899606329967839942733623273677994276567664152569860896972042114545083177127231273113012993001406300058521548526311337867564403769108797803161747921129233864892462005780641888886083547697991073030794758670222148894722987639580529253597627885420524610754636061586122624582649361455774740960855010899530546742749262273804992787517918383554863848595971961906203818000044951837571202450706295088967352096373440738886358268854637577936297332252560862210806926019455960862555506241730934074022496198432333344144204425548538346566784475803749717172286120158470012743931730124839306877442759561418669088249413959504402615019057027831191628658206673580155785483237042507680676629100472103457107576176031652943777813342644123791597196859933525111420250221720826863024351297363351667134323429708668696742396981760946698829105454530652398995666146671298817929315366988438669164667672418102384417498757188142370133880641493102799136541352762258512334982616436844838345156674193339762053575297589054575388862039617558154090907416601777568511215471473081303356449022296034339020740119301251786655132979785877500192177966430941173308526342599987897294601514224835639897848604126261771103659996569010955002138680708778332421684177667139507903194215698171355322732294170916589393461351128471091644837547186501176082888693925198925906976242212473027705497816280893214347070238119285875461677990928429895051151210407021034439503099100180315128301594602506575666175814992797671384740537367232083025008071668521809924507780155221093543249292988175784842003518114617581178875602356520538689505186029011574181538313319648804725750894927992290595619188611651752175514878675797875139757906811988585857556377080412999341801535543182109753487433424353987990815515013029729358545145600824903720013737890937969657683134175369999969870034755082047453171503557536268666401816981129541402796516316391938766696410112596310457028097190703749259641830433663913735371901177062958372516607062753114808133061795767096456674365598883304200705572705539524485560034268441088608046482524525758010873902127278635094998302426562648267782240044133664148567539352409542397310006424509646749278765907219261681642449709667547525455400039031791316295531702788277964609007921363767510805364519668188188002753736489828093088100763591006163695372425437247012531982371228791311132858046959336114776254925869765776526327273626308406577503279713964818674643954523248469820261453224217524944244497868775308639031840240876490405147375574343986344578648125118343160173932272561437123966688731361476699324339033358419896756291286226599448018413662198835334414086996697191516025684304662042356950218607786565949634355186791331865451853254774478920332604615553400860818831940442288775782293106380117609471526660136255699572391609325189481415916110054694170129721888305346458259791852775484705665637661497884138384060339017645993997376246208114541649647687470729406265526685988451386474706872355746125537819927040031700378868334091344431805380707669781315605854833437002484119388833757630306698763053639488737206113117778410958172370743715878333337183192159883394544212582834350615400977184470630629589199185628362719831718737823761491030833253400359270629735710410527006436987697045015297894145268264383874545618154914872642259830481341672096691392299821719345534205269907669203471000682174497998607599929486173311047853846157427152099461602487942515240399971796540809101647614422900483546352153083218749854248761619392685477687872597779625024216521798894141553744145960448438687747515703595552171249694439190819387269274980588596443941075055556409667465665750087134533822299874189270965014694217001880108345854718165098817882270633567655501387572619950779029462775746149655183774605472004983670248746632799318264312210422617592484328651349239751048428068752074946824600987795775990924637788997707904010168962782269626319367730042846508690632455744814215755921829578926206801322275248063348509455968674221430546992431420986054899543606697045297049312980000806589492411699405328903462432375163766552236651325512504611753634141987672484433453336954062966172136579750064761255523068790347547251718099724763856509997523427932956997647761942998644953614786445455673317615585553204970210126937540617095238498641794303371894676320859768298424084079973820867984701542028342757548549027140278044475500538640423026218733008489830664376074469007638351904205125149168192709880768115742729710849334078634898316198582528943792145284872381936054669014662214787279377912885944482545163371976738620914821208948527375089174104406816073434884159884461754901414270295072640930601344515428061752503378465723726660488684311387321220873271952810833150892519596047734193784050679734105996847851534639839877957699236398024910724979361013625093047672269999288431437672436906458720039374158991970819912441460005512148443039206992170066512339341591566777869665396853208909079548183867206925789249677553234897583796866757339936291316174295632488226986101482101649365144493850086380605631969647229649872554876390605151544067127539512137879995729442708056984034271162463475322329720592368421768709061798710716594123340899489278199726105999174737935973349377810263080760006541903661939469293876013002478992071043614658231270314936210758332840147489241954318085077780326188969643836020151280357571413827271382765269819887892936090420195876312773310564557631637110908400169518856393637138250886208894009733078434709805657812699853804213735093581974227707515767824639848903456608860284246602739034147556375887341536012276165265874803097563218943699577984699753875508934659157230672565415754780205427850148612493599702888068512786745903325784995900764728919831550139020636126215597515788313497940389567932164686763980985137341308417961550899555469766913134893126065970740775813185984305265612909662606010844738392184889611966539519318494337480914462418713929617733257842550907824300062892857181010964121042188883880217720131033006368227106379605195810478397945275358883723705469402515497459005669429239577445257078686568980196709270772963316797672779486322708970404905246770528164288400570081749356917180650523304791049176562958037092524617927679172365217467539525869562626452830897650384124429677849764027384160905446282764950638784944283799307889158880072580908469843714941636378975048171355261572641297694053821179451148720393764058341131161271650025781523919770686065594654421156620524140397526584609567747110709113524966436089504077381613060534950347564806268695267955295615571421763081620789958360917840145221205497160716088169945910601761080263538043532211047399773359471436346968717918623922116095588419340413235028911030283690500984988586661121267567637381300045865315424416635805248258525073786297132513685986032981040416752064087782216505056558737345699822155817069189621910896664528566772707802523803103939388544495096885675984307773320513595957037660981045398390060689945109096770511495789769508039253431097218440327129921868613379270091735674661115755587394536886230596603434751681762501399059954687743168844688936304711196071798843825054489694135011715632367429328520069883779002474790996324895473911007445202557710244563882958345471481668193301782408369851518050704410019287585960929663727570928821497592105283835754056554875200343153748542330637359103944826870944868248671387152199249862564341776769763330677509010767944815089463162352575988458742640189236652706071402769565244673123856292104119175459578418075600835616149900676469809810289187993770512664922768900045278951262923793105652496956414653362430218625656854422863408682861473406110811135823009523040090413169796561399018169907157993787069814779004222287583479183784190392828036288312885201557257569988645464547434200032333222687507304589209024449288833336391897794270438616940999733367999510566123886121545546621547176351132059260607747548006453180752230845746152431422468072693737238908793258874511499369208758366123334875048021760754854642961443458196945529382310273856171019100568098946740268661086293555225292865516900205647393498847871928547951368850852335863703073366147660475518903662595140859329336322673877411849809066097115931817183205196336581929544607476648582947013394439160099327323323454176739394696253702726994440873642363296920794300306962879080238881581436297535236149723954855182197736131369491355050789891989837196411156214586917715457283123060039195305046144310221512658324217237473403921111458065404398399496052797797063074421815600805148827313601911522825879626954545944165956044088424158702000922701328042717144986852060457784758695994417868668169522704605093852146267453969134840093114621994746505682762215681695003361762189351712356044660860557093274743963491015844070561286091798070596052236841695952264843839399472766886127277763661238495650152957963966861900964104893703863381699948638885600659978933855571270563341063758773458865597076815446930611110126699020024354574246708558043735320618683207048062827146160081366621903756383633172900830410967608928859247012540414166282956068881283454579583188500775572113529099342369758395807963105610868373145689350552595335452058961557280022265140918063823558644418182781153499613273469652789218430878410762343356071087267582344006905881268148789628014732381768376704097546998141782802748821541809106799033094896850377956615292874051071027355587385964183818599236418203509210556683553706829976555396963259553691940428669478521438249116507379935101224253161317607321467795932936376169492774667669502393024676388735780399414632977543626015420290836511559843643834493992468829922700888814116640178481366256983018910601875179437981722922231909229092733943473911704474523939242196057688190102112585502144477528662543365629499782107932432344658135960895115674652897163176929996280921125955346774201898269785026671309246609589616093192087430876223676810710733206523642450048543280735329383229642452938732195901457650159201475013743453133484045547616221538897000338270062562847114383336262913395323034712836812076149259191552506997697348417956760900809154864449490961613772137941308641654283547882662687340638281922336079622783936069213360999995575451811128111257705953352548608551927866775050791238621932743573638959002068068082347586362744479604844487762021579871591951866272935982610122563276707602781127179769303148674159926889151141314087162687960251019279828134452072233669038288497501730185003104477283153832036372806250799729766517906324880466514256684547202400581161620507519031815842857994141265629481447901839651702709525828726578096973157061457736446064929324371923322399937809941101615659134384475659144133987740796276079228092150683781129325708652257270227700875665684553893384487235058850280109689804248194615221206012603276615222387120712162332911728405900887815795444035606420115704806124975506749670107786736845962256511439239801423493839231522362771196538585531899029703534565591409482137232585085059065035772836059232741533343058755246547427107246656004472375685552383023743512417589533663279046994517582995080971240488183772877961037469199834724692368877555849981113086861974957317941829102272795093014173116500814034762343892890287020699055391612584801952100958232399041319589367949900529142829113870389987623276899700937763299602790474605639437135802391583065854820454570974002113247267546142202534462871052815834478692145783773906074694460256044809984834081689719069301532579109383300618010717090496724090572534904436545729511833853364063807297353288023069987092156544694544541633398343395975611692218023122841898976414874539967712848536716602578762336401481663882881513161236013913166822488757323488222550166944412774333221241463666669203086215177526421702287725760080763043680862163708441729190700862401793829364862299801717756746659283581003166614925882158943621476484822182012068892547526199749747642720752761392262959688896395227524689523025430745462960016802162069328894487278103465930152831711356633751554306221635482200370677876074295047980168379412647804583167921066820871716947692132328944328762718161018473560256277398735748840769723288765562912714686990005322172230016560785066131679036455274822376284101807169907551347946020124474984925435682891603040786537464596604757199764919957486923882934801886793971427131982325603568874764469547965960663257269400109868232040313653974387893521041146504870066704547369169089629479038103562299109406530560777360521864603339885587092866870756968595833417797158547201154585300730404364975577071493383608028109675730486438732782687109923361968601362011662575364805428101786159085153981449251593039642343047788833382047637975618484273947527136548176809253129259991058375746824323488851972443591714808540338947483248145443898370819337132468906472782674618265003785397010252511748536751049283795212724757378517384329269210826573725247364269372281559742942853367369813070289074495880063254057915345100043862612593749356045106543774834533628805276719662935506151057062470449354708592242275220893144885796931841673157203969801061449322877141337243438813161561752527731604779800332064449128190411336879479428164276290011837275840222358883121033729163745025516466365188904317822773004985216365751388822316548900536921731931907106345626548638728363142197227750445159612326292481152882433901192093281807132096867879521361007498397585616175787549415357549536885211487465415792025710487090560985678875397204010508476489401107113381679509249997157226653569195959425718083239521510956963244818729974767779824064564927686686711831378970840289823970363773569033855188707845299660502939771606006611769264355602634499033434541677453428294110583069787974686484400268636592553221502741829921977283563879109907997644742083956842629096716633567206206111414435063915120938664754791540103348116343129565077433765094339095575812877316487478033044184029778243512641597868806563136287094603581339009614869631550628391927131094519439935434332201429916425727968141686341739348725558068885750935597499699180173988630416509129791178148970320312940745255520089042979601207918165676296766850966744735114920571929425506666640764143000268109117212753792830331731762492270439351109960708595935729689251463287487887035047214189544612694786035283727663794237270512427494739249390774791799183975451516525365997673106332767769075293504730582253650227179533130355719725340067364518585756299951392225733021949817766683719337176342106180085961028884213627574423413713187170490856963669136974977034920857686439061164833905668897052570983222835878372969442659336268694424083226260451879453705242744336778515908643980495449514087214188013586848386711929929641411332423394269607130664604762042394098939558710746943594846187021326349446947032291629643627710366481185067110310510254315267878671429921189289620099145679754861314149980661646851933172775030106957883190224825775577869205956886484274557608747588019153072397600608606928675507823103541627455528477827509937241908984141852882651675182839134813575728069431815805253426754860868529801024154319779538735084389216853311908720799937163364365924870470464150162866086684103710298275287890081127579219220961212320003807583623801001054864706803112634744847797250610282838853962666355979957936868858236246211065552642486031171730735937794654002880879594073282424560700847489477028062065499463039472630824072273313359803262624219528627615461677082246496273796286212558436321290974838926586845197661606725092041922198233027064549848979161531333125039106253330207043868034017616032750625269242912221300695670577893852795993530747060388965025086268036372280886282146676712030335741600164459150267500485154621266522901882585390006333564748639132040931756772939798367816779995695596817472877463108307041309729665497788983575861705864216266300077151088973610307813487160369242325730590402253230191026140207611826878901564994783258463397122104069913094675616037165291907285237117336526011624305843906960631361770758667415896817874416561547359394090000213082374615303271447311901001785166391756673393161880151160964126540807621176581755937455521861498488574301377797767407103279195912062757579825006055248986451382690175163215017020358175030047879027692938297084492763018405988343768158455757617380436103583890618718781024433544916072205612996758960316658460455603213410820461700960922926812672698845557905436952230881695162469775649156263371840462571535847591338812051583635954790483541612494036014101994267608641497514573779546571638029206402566508223815012134710857287805709755124351582312689969340473148043520831157666094169262849268949596732140588933243769052417922818720404371642205307319015018461086950228567699225261798475448562065557637726901459363796667939705726319368269517159650959316813879820437424439354965149030919828059007923237404810783723513971655869815036545938141654934913471076022547000649787890894889129210243640231172241658223827026225168664221107910590706809176796927175342311636736858037923957662909334275205538770456307655401553077496938100675299023467641330644897677938000994161011561503908786434079050238323105814165539892292379218117319093548674191195784642439774349076746361475369234335752269973381791665756604141654498737885511213471252158400521883485558063252201077697734932850517289626341336930656517633109738974844153068837436147638961133429717907094503196133037119676793600853577107632515530356002412063459441663049786183768026927519840300111098193088120308093860829991227838578940632900592083122960235509631385699545372194685357599797648495537054412366904852871758364027690272473332383947124864330343208678629859145691464201101475027977123802884480240995973964763028559507619087985543463525986490831076825306785013610203490399085979092663203923868722425866538478153107704427525372160989028422911646507089809780824456302202427898917991224197145531165660815050659125757260155598189958872387068282257177923504599874054890733996500428194550334442638232698281096804749898902608813731837737464456031566685098927345296008253504889085697550580086291269350362901415644534178851946869072456712759061728618974927550467838807625469305794196105368704213155624067864193544692184788130912133138976387609804298309968196381896293794558379534875817832468357002453113340381255101031831265605951959589756433145645900085538676950198179660353451085092465520183416882881466069817501906894828848446745397685542038666722522858749094030838446577385054625295050314452474803996447746633276232651091030744533336963736198125368844123888894963670225074576158888633484016221684234386329671070028900201233901083912594048470822168481930707032937500221292944796332160849959261786498942325538938745104244471980118729386201285438505888077491511819215896667398571195864635865850081294418902101730546304056038623801908365706212756875940277527495716522200545428241238548010414558837931000848587052991062982738371673370162156755337049798402588728571041785015653349802984610462478124903373673325497890256081462626953076792992103131051716373840695773481278539425946201412738345616108544407260594558635955339525860923808518240460564722221261133242284749567143971520928862123456868999807457554186538382020549293734973574159359811254767536374830371336150459406493645868371501628520328348296748271257467589720256952637963942904486880710689948897487749101055288473485131858636370266995323656590421351444154237696028823269560527852585816247226014161659198691574961316671661894741017686386394019670100076514353680184894027999558699690971759801535745725772213651209708870756029237264646537888184305241525164420677322696782049560794576176020440424031239080144215014505674607326241764648438464151247081196603621244909784034225123441305550488122562305777383225339727849610853433461187903354182029366049299387247167718138427509497656908831384139245902448458322945052647746813463228744148795310410931811808647842692850482995199214333720777751674625144009632794002983753783995741210706664359551038852676177841188148947335244709998704595639650339477917238016794870887272455228029934950941799851900173394096016487793401198334550648609195362409096224130132619570518399917934604919723874063219458126556910716989219287378315674130606619405205646942978810640567416933315884926069325141859177218163215794877854169986286393076434343079182940640356918203902859195417178870650188392370154079462815252428774662892711360593098158424569279275470434740739558589235376970658113726980065779835804668693306193420884095451199285114442770607524736202799829461092141293374775108096889040536556095817379260746799474635997820160482690323077715831100770219607202998055095640126388739780643728125521069261821613510126297077098494731377927511752479263175543752396475323096036029284810664074213755878669923933608382444463245694171322520281485611171455956564665581936404129482064463776610014859150311054365826570297209052737312375431873550697300058948624510289653478988488372523081250924063006507810258557393537813979355332631996012624807338957144369228689847936052475948262015818889875380149031223944671912008604366194692961864396699303635260013473256409550153217150834950701114210444432363312782422383775896025354149563758294333573732968923662863958396960340566603071016406788715670777344929942864040782933604650394192308912987955834685635379951081402846679809915031593818116481872457278813018284406957793203531526634095242313591099438268286121745981691734214785239454135249485596734776802595617798161781231327851401152620699331140157300098369957308441596921466116629250136960077664722481247608414209147912639414747830023049541737756101798598414592292444185934833128455221617049760828870077657571879684332093228417081072545395961293874239489082951789561430390920169165972308937587019771407178665856948029986627022400486079643182676717874597183926366486082099410273243975039330960858569994037951500730620073673450077526717218776519821358719477372988895989886532026252647272442341874603148894519026996345935489928036146770274360802621182782969678819670555818675652952264305575803370212413562687952228797633102382031601997701937517241188984735113211918554270933139683374804729051270710282453742057096684147232272696763829050852693564966216227663949887419529460049880666372006113782405295020833220590877617305787984594904757443167400801191002208270920626629605275952731225435354669140309171188458786112283355012620953957432654270200344375504699785167020692903236899875042801670376294107278177369483324239837171206093414838862122542361494875079096949187814373427191353400976498354278689010363976922821946986345198297523761125352225408181812778524428850945048221779066247047710984650195429957713869748209746815607164784082861915301330252496527224149861187398284678946158795988120340583067899006829852537952748884204944884884753334152480449949948788122054489650311366508518569709569224741624946398592765664468817938941884684630830164259135220906680903436775859834859879349019960491784199909398821000792792237043394461570406630409854571078284228593847018203608982102652091704834104372782275325259252840549977499637889692985368832646532573182823283637453255890783638974401060020650070356256529718837975015827556001642927843308039350848126863409209848332499218264452625760436918508467137065589496896135706095850302392231329692780213624512123516065684365034951588560613550491919153352770122903116263646513875648802555835133210823654216557160866516674458221395258095781756279004768075687185354345073344833443314149580676065988097373951123370235269894833599747377526496199374685954439840468836774220194113847973646167118687364496180104319307923624470942090528643162187772520410471988976555389411234385408634964817041261567696608326078673855799646811216831284566558972429889471181410335327028783013437590607939436116516489969840134281649568759419544889015244496425312407406551112197515202580807077673208355083704769540467865028307512459188147312418779825930559100637466150367032419711519710621018081196551148153141903113117603245482807652440419371813914021434831170153291166719425062398935066599559238050672475877038553692003042122777007225896822978387594707528069117383516618368901733320438966598272238000877589283713108792287132158687225770883191476721868456893145115338400730174071262846093224638160042096270637246603819053619801692950392400415607917495890017183793597809506382529922972971930711296446306635055208168885941970965676903060786994784754920998309464021407300583973158669172873383883306353659877612967324395906192570982391661268566518618570781093107446506026689195861599237606221302829580215273468227611838393725389112860396049231855749340028353085200559655652102147196118344405929308709830338467728916052362208707412784049858974434872506067289040916905353801156205502885220684865352232394445234474197009390080770965229465267328235346264199122534778394854837545460063452798544870261979127894461063960313065700397698624912757180791212745180193760940419082061179425720957504034362307504961759692944029400512649942428715860814236167942737305933295325605515902421785998391709030268047197419968404958145684414450600856272932520768250071793850724503344009873286556264892838852252913695473967879481469152423335042081627031289619775003209114761088091727590977382509736647856221287753757498077306859713037239389979926705296010497089469908386363438086528657254876640733314252659056754801247618525969214606254244622399368845850258449473637960593268668477910498847744144633217030616195027638935719674690918672545797630015922200132347011432960117391182554509923250690461348909684965450321949749714104428470398485702917836551694111577321048449913135917666437916552212994428213540145341757044447992506938533878098370066546865380580264070940364980578456805090234703013335053257112482006070252101450971621067377908345176448387294756784394407327129716587353623354404434256699116706806240608880531557611393773962393635461964763154277432028656045033988322786997155727569284925254738839581912402875493196831037827890019963223689819219787589715943180040847262738086423909750370727230314485817983003378570656135602618861098312178383625882474262430681873585712375586705449714976693236952188421937646303556672457124753499784495265307938397726093843302422029166195276920989958908862469159138340509207896258445280420368412149964541155742066890221902871660378811666503467158789943432320558254536359065642264903363400439434573171372156013451279680432673944197028301300003683236465089075719886464565941160505817010302069093014153114595193360918063501089663499259956744867391929089917467898116662708661877463719465652835544243720655163236263347105050380935608624534430074323078736301071593684827059605236869507744218934875726304756319191700737822389970102856467852179046926207235405673630548088359471102742713660203693861826624992214896197427983366896762527480590194260359981388565153402030162900338423703339718784403502668280547194037996824890680368612649595575308734483302289766568827437166214288847795911803118116297183241688504680359672546336435592641990589632519842802136961179249263660598156202254504996093170652510531327997407586880745535647394447759488331521035889500618233179827763183329339639876892158946071499082089463843840577981827755645344593497466270128911068609591447657345606480791511643806217117517541405845733313936048881641879546982845748594853647360105653385830461082730619971981820488002672810043974359814033501629886839515360338362466410573926001204765229228026283963151757370544256650474346458964884037382704737789410949137963512789501454374984568193761366112204269462896020521639724803357540396791135706042537124095126465633921551025620942619799769732412931427386506918667301206989845921145172587037066232338116114472267943998332996204428805080533435322485232939843879806786958383457389895594020151785185086223612376959219121752061569220032888301478663678194782338418449530052320047798957718615455529027856317438432815247132679673935780480273964361026029702522740328102215476538602711751996865641526190802782806655590674949618717238857781733513307347424943947387762906264987064662975968894093366797761992802187893478308805898806285878737445320573813930704455756572613193327606562000738810089938819197311859278209817741033494041237897269982210506361765482343447381177197463568877795827248067574518765860329928032281167123596739864735361954988070919421477494266858169663997576128384212082474519032598356531942898365102407956747607747708910125875619909211942009030460151939594160940121744885939207514395781643028737672232431603499312638204160345104327866249225160020537702407367248224360702634002153264501185388137388540960728825035474443034633508052686285544057322623921769198083141254176989467177676867470680286992907649691627364588743674446026473510294183597862721071350846592622495615404622291624669928156053630721253890299997890858698185735803212168707094403331975049896256168407568850816444814089844916677757511582853819432018744365458484822281147551857390806311694806367434464450662154156585926451789031379950666908194216742118381196822491563004832415654993121333310921523601216792920464345401112718237626235882370591934459124080987839060258574133426720794737061041583570152351858406569163212947289688916951082483263039155699310833614277771444370649863064869685029960264552340757448697705147548462593556864156312635697492929229200239605138716389461671432772567588245516126460876178826564155528189580177622252516420359948397390462497169144094682028797049321813013544467575741095563075787013529564357298926860094417698041173650025359996385909174270482642653981672952044948827990611604013153699128899387819659212215101006785176099419236195863916487999681363115983141052069371513465134477894943525075179245321124022589071506887035905136638529073432731343174798146925227675867736403612406541017431433607880693235050609558478181445569777960239280865008180727490492346374050718652107786267715946433589536071020635937966672588066678142297385674389349218147356991779970727451865443343749081485248874331672922592587164569266979498646723927276072034269886447823338068237122889358423701592860203199817825179363484445120921886961651715382795207343851235999298691416397448750782588460829765688590556495666000089692726442005558440035027734423601839217971768223261803409832855818784782793425515468204758015857757010022742194079807187814465510090476678025396542542144292383441017535070287637376536562511596190431736310463463099352774921114562073588380013465464849504547504815684386828298729951840717761467236788068162641632282990019189245174243783419543520117715309759662974057214697874073552240520140808084209432639624021270566483232231771920349128723187406723354779134136554839096443184275951389553738847925390704899837574363383267062386197152520582077977653942077656404554688184499586505467881219111453861633690232579219803177982411143742052171411736639601352832967560837647748579352862760178985969960429152700948127959709492552827886758119420022150902201930201254781019370866767414887158959616026123790017767679802155947563357614771281587685658316422409207313700435789079767012607565137654948402434087232309787269124893654235838650479250677974554595911710410851397616634637019387229311913681950826052082780654191630111017135941685426116951952012173165319857560207195095766970780950374292268723573819126457717999401523685077827368674685381181406466658265251237129867783322269061729023225615806357729481990290807349078449585109556988543266455687316209903564648210100617949406695704370472178465931728402005203982645555441669880953990010936368194702848318001930604208481311862836268624223373211434818965914258440046831522902571933714330119167022965300630131134234510619233126086521099446350072691210955254674126812794558936409758573647996395620093607573247351601878678323270490945301201536644531486519378348766857357161243322390641802735793359894246956052809723787758800386595324894805240638171131065098115328513489748359293474839004039819472174692430379994404381985058317603354437481313853536478268325633002461129911606517632928601376942328779499919975294636021211362175298911534033603682008888929883552949092155368498552888818562162842508423015491704753478387125145896368287782121970081188786269789619022228448883960147079694978322441523772478564261594143122428953357085256361515704433466123886902851594210165800708101862328742999660016038382509738169116176831810016479935687362200509453973390251022728740728286594993643999492974152057169585890932906372616181202352577039978583173965615078416357749121268460871467373316881137729234060292671460875001912284408304762418172683536355455152664785973856739004704393911272059395866961193503977045407195464422536873220168099636308898785018212581727429831325196999018344954305296638360388740015787872966382302943905691285114473605854588593254835371849882459987523051124886848776055564889091953308863913998717347525745381572675234342943562022022336301085470283721120174984878352137268975980832884468996422093305935978550616949282668363168199373782595906861406015272697586971727978572781180993506404416982899260072853078895923774694757162866308286685513906267903436849436463963051763722359026564948702956458720133115062226747248116735347902284443196885010678136729750672291753684451068123371473212522213870045413986446264374280314554364733855365518945850836573778574750738332367628113880682098690210774395854396434883824094928460230281258452593740595484463504307658889748127139389767499524240139378541084094860631866123158119612330049396213953485347722984626568947245439288436814378539191386600899436087952198272297218220002925521044181901412418999075517572069307006236670112841599930474155061131858342717029340203111335884303389280015337110230792072777282381940073312703506612386589887993053681077340771558088116082804907531579206451080927325357735257838304331203012761817558519415411706436986459363173447435447715956173709087980962869750284067270844021522806468145852971774041111500897293975514862902258269861493079145870832632825048527879770331770351011879794038720486329900156974255788340205490245016955401905497241497714801039044313798266893124896332255556465190770813002183033509490749751169235703800335038011058527318578905727799817599590690325421360940234998654323350683559090115573950090199434590771260740573316670407403257495487044284970029839803770811279961031365097350324783226495294766617005205708414159709210770083585141230727196981922089962323736241322429758957428610626725446340767234267908265380049436889241777718850214855366733083137057706878966322614668287765313350410307464753926576363174340076838265510931171507617161548593341717053094934398717831116313731224665102941640030129298750756637602903587587297166952517109138679244378176182238427134023094279263031701574337109420105732193788429068878166258610212289949375202421403777019557064912610840108568113830944830444598123079811217552277180112364891228297526889958128583522646770615696140414761497838622920149456516746113485471642001687477272584497083639187696720236116979841681342035230873110161398362111827101850286469135921426063474146644917327858082607295320328484932515713890327450030485555729797252704065270612952298868232458822718840813780887671029413306806551875303130909992098299341682170157303674027708821379776908343704633683120080334422894298235238322767865613209997571845972905954606644977654374878105570410681071088077263568928554656155155011588020173534605756514994018466516183915918932302349939494624461857161908175277864465176508436805063279364003672463001762850212742949342095330339784532640481536268389329901093574984327307908387486239093501950151849741539855832539010640332242796313444684339552299901198643974348592506192155628795456839288653803914497762414070096124926967072429020428670080402166651348155024524865434721793804604786626307632432423320570312562713026108359531956721176705928647945699206100696419138508148416053997556247141968899287124453828439305963169794103104287659643235072837928496530841831024839300714617236849885194068712903437887860488336650241252232126643684475478176414642734246143550649069548502410934191593291270770764954968121768498614944225803994621693327523817725914030789596238332059285251763072405241329941499556472348856764982156409370378725592647059218178970153850114327373935287938213241855203335018975269302740370439346709199010445915473806110571195691953633512891981236177398994480587726060799319807915786431381367307070852098386174060527694471668158024602623369535734524575097225873616148954739772918818192130148774036436487170742307895194517335541124097711448191789909985097770642722204135188222843690918226733004893527869296270056802264476720779625203733206239846037953025941484493963365189090561034852083240774919963160364194109114250464184935652609824124545513432331697536389111530801612676015797723921334016154964702568526153541756893784872891697790419702190586259447174821726278008679696119186261602237308371013935322525075026206210470263686536558880845432588450076488912266590397241310460597907052752979856093163311229570605566845798500846745179867081177830384932489501041972365948931166848707429359041008041829868049663739525714670108713876059888291458367537984135378020924945197948673970086476332253578459648517281133079512257245201345656513724456953806314825836843509358831367620563520797542865384748422531132703051565926058047934073937242481593653833899062229267831252310078153751224255538561768316917748998393127376309997218245811987898586865141494971900513753848483480707559069848880963583724556044133594235590188052014525204242746335463765583591758292544751821683318050689869971585811070101442972333094229248008700777735934975061640454334930907167164541242294824139939907943935019742150781068298897396741882317625090731405831266927855127137303514567788944285858104912342398812807403301335220531807927464796386703262474639591249154524353652788834637369770434691848922328194420368300207207214672203632086488828571671593007888185953446979664500022802400100291933406310774048976849173418433082892422047734519840814306699690148277638107229372755752013615090870379832694074614821619880429392861114527615205355771775827257978116118234816618034478522402542136349350071094996147290999015105547510970661101749484016838592383585898382402522614500347064452835355368640429068065207918397525598825783419947267848783069425415724268833699121772332654723773659154450344658733604678503592591657413222064608062186725637453906367933296311078028827000509224377709180980238991409401886040294789577555952365367070971068950687013230078218614677985349335136904105653085006332536811423224811107257874375299563670757814869681768095455386321154586649927969428254184008213239105426370375403711331236769612064175155158022544916207498057130744915522892473500852742945165782800821333652609518504562067413641406462074620625780186382658240236567758711108993181396469177329140649343723374042077948692865084630694083651228092161232842544919751007026044658884821326249432556631670816954288357994449762662032969069415904596791098560954533422073155551655929624774638267326147885347805994361557395086213381419481646921101595525251375076096428453160670898532288381663373031616322187629351807800657704624051653199420464174542191384213616601688925041564669339481640481755638156748037528320703857096050606420075427351319734361922570191426316414427176608436677315901128688447744836774431250835700523098955039590479417399587966502949177065517261505717130740055178325729949898696899723953880973098100827446732375171932951252837773965009396516028561221974527756114705009513810935266350344589480681397465558707165666169360688569625044837115456722748620545080702312298346978655233095212975693555836723742334984613082224087023634913534993077283149099711516216676425102407952425593959958654439006380206766301195288935117526019350739941552704181624024867830947765194531839667540755576148697330477820998482084702253503212535884935095395801243982062093699516331623519312052749229285974120121472712666273784692793001998754072810560188794053661681065392562233450334276287480521409022073140507052394975875319185545909607384570559514115053183006342594440667065411582112081158452764708218930553021631756913811612828769026174273894035045808455082648469217380308836847706823822840802058802467922947831801032214220177996077176021756674733928209550413573486212478537463762547271989458545478621898657532289015136565714809363943222660275765834491253636550164591685761384488781084503188166607902800825223498173494834724315479123112479285659846667271530945177778704803122193746727961406857481050840113492993157028152333001006301708182876008927949449069026420851358516003364206947520574516500067713443767303101340297770672350304300383843635579418249960987811231329420263899224356562479908332498167262477134644818499185648988802530057124529475479720939005852898004599069282345083859990257393825360325993962903395115481242095491956492720382245746358352443767990442144339590682077006619395825627602098380612331561932740386487779113084161981539803649494938704595353910463553479557890048252701318195455923356884832471073753033906782610224997718105853872921877020918204110047461358055607843877577657673488653164120994892810521346713269663302766533664829340848924700295703830055341943898978061364611807852603889019964379231617732478943595174530299484543649058378797607034515739377342568791054051885645155577099869439941207133735020189621517501856677629637086748797592973056983198731288041061932656266146348027854364212072247491940012906498237211882455816590083028217548601326528362626479174803250726825695237505811824420640991781077590190055241813154048149507934336286787536371737357310150654330690206203298362311874199600409981772274577439048283331293885817958366652677348169817806736862225849339045045358479778944937765010784577174370358648586094971450340711910462826878518037097145883883825240362249466309868230925156304334482937886082881839029805182681721525221665812295315116723341830876049222980833327219593954342924237036604093703565166217929625674189212768724791437110753605285584665284186038999925418526678009825627434164664030723599091723781458971335653452600023952989606114089218825464637277058681041974136508253529450678086544193788776846812456462113456044369250548257776878241925639095369690319444555907379093569163471965798723339103924300909217404525791915119350991724084262408843827363991588546574034951756811999291327945061238948263869320820793156206764037326648239403469251326759725565104813820793118726687409329038251155296305457830996645147328950213496787260829364315506508670183019632718639282166634658812016403886526758557054946376408902845682817794675818082915306372481569740587487638097979619190990167773723835029939196516607212037048363448436733842552698721518785975749512434581084811800685627618921536235335838729296023479417853657158216740321098073051663854112414762120115360667714352790384764706282061474359074419022059955666352404492628784763730092408909337953107922515381057600475300801399122064303096800255425601656825705065321069329262065600838403183690066818342209452477209540861718622643888942964168681684322705432656736906952176344946308282832310561227720334972520040958983480896254440085282994474444944510764658811361971462518686710809484900713338803054906018519729213372414155817658039081385898866050440059411214284092708453204984221388901616142240250606637014233158325323618712275389410852035832826528266102033554429998163925804371882531750506767319212396885807169159441015636419758213624998278701708248166037238524538738966286753755262033410532345773062315321103751016994902942557197569450194136479797861708383229431190442082240634886064006368304265311698551033545543377107082575901856075901288537172745595905743254785283877647259243416570515002436069215687690209366928784169005026527724370025803743997947494390287298318645878132976070174901494294338961841546625070687911241753936655071039372080005713326829423335021612963382897439083352843748991415694568569554851672114765037275985167949395489486710027243530445146527460744616742717080934448588670941268179490000041432619443347293845962886194726431882507129327569347314840626742070721427401935742421336512802495512806159566975954226489308409353199783153940269162229651246088364106520544320567570762854759697769173940907575852877489083815968369793953739628921714838645944687884606180335835418658611026507575716450741122233199566346702210059282691823741135816475089031901191773442970460053620438716469782895959466436891213941151780170219141450467698739393559449643248485268119746662498770183215450126214103549864384882963062151569522010383046463016922249919043088718046455508957443969452688734494432795925434043335235472003932912265075707387697759853045094469801258644471448594935890783832422291904006825283235429079140941347102438534798338045148909108015797850763771255474809929972403654530336072147870651339662585541108716714855784257761676448183440657662346543888189408236149832975967000457390952359394139241231398822308627582090419602793011383622060098387158764187104838903130547183717749964363609736494106575951169211726727669271885262246312934313515366329339956555888131884891016971022734773397540572621655988332557170407559003275489452345881248434696943729145436228116426350370608434244348173184493365900463936130308465601222163212330503914578103181675314714002382257806406788973587258452190266820034447369027899730176532893899270915814863265471030700479550788205433931329721107846004937584373285968886533414184000421318176720465377901428965862177299019347807278957518682477556077428557351436967838110381558171581643596393607162311108873878651108651616180550738880249488066921466718288770332020263105832538323403998618167024838889733874623023316773989913740173535004376662495805577542618825924873175940929968906488477009060643913219501470069809174816441602171512808339655487256170605221555021903457862216061254028835405341231924087465099818639949085740514600581532882376427101085042619576413029350266584368336198894158499777613901708258679042088015087849816819457205890596523091804449725847394876910576495332228315945099846576447181889916573860832032121218385528916801600664020444421315362615053685707736626053304769668104665901447291843483482029807695459499692410598081687770401826087954368111224024232276549927417705950275259923840881451967930931520903044875956087110646520540652962154510640398304455620275315404591592204640959453940546874020282527656390292665874572649526715704600261186672061126290062176808506459287632401237849879230560669764488648324575030884786394119490824074795804190866052270401100330042985182321779262569610720038350301681885665200137469212885446640847358715577529154586719784297593976804656319353597389733633406096980936838919546037539635504588193144282132416294768264598239747238038264084310805891550095982660996601352122839837644307112312028406723578803480665386754051100509859669545290353061757157721165031606448692117132174911735318960280257321818554271340626212819318476910964237535608228151549761394275740110136435324800164039300317461734361653823925304376927894282158236914752076664524724712633743164454467121382072562864965300473735282588578520356793613120266453241482660878619012285576295233263181342409620566334324425264095700201718809037861893397341875990670393217761977583601836766219651975800491487543927071571179332358325408123060180881741361511431873096163058447919685581835576436468796613398292978214233228418699584731075679847450575810530812934048533529154158041561364011658502824868173351934698406812305538491277803381311534890819713843446273277872987655028184729985658925341349564159325999667104449274100695970836331327141178743936185362043150998944440852484800183938039644553969750386403633705820651786825264600612455696032688853607310212744900651375409101654107286341733165345020324802145579814732989645194006978221146692268329049728296704152271770764576625632258107379816439554691258775022572020005696634351338664144389178508233052852891349775013130702006232043065042838954882032872460901663521506415339038021541253001833595203448389288271668011490570663091278809322662072333439823193820422741861646121608630057595492018700460018870889992285565663149491587132592351772949331552380335527456274995015297372682990756618618516194093320826971477049164828711265036558134684626619766230315826779088407253823086313776890930329258632821584270101739263641444181815868105718534547428095593413368727553180862550174616311027108476532926517105595488431260743851757315476328590497679797257078120578648679298708226665566530597839117391996896559120014400830373267790483380409545969350465953232926991318741224918506927233473720097668714283133938918842490194692823721213218557844068160912194637296825802750625099476090083465973748227413344618996113170563097740120349554983776281662031366927511855527579713353860171513113581062774349563219797395051003390259383624191204377437345600044812125770127934488555750954456564853283872951975207386980704532148586489003416685463277732938702409490857771613911522929796764001589063642493000000773485361542502533595331769623833807979675594248036232611813560939469708049338262654613843324018643949095924706339614140240197789345952039627985404819626786623040763341800823508219166602684646306872518082495062183783291913674699683643946595569265368199857068423028890564844654394099404021267079835920115236678530311012203105621519018793925972922924197235754140352625142200109939508213432924119630975186252592138684119767678270702888219353359966017464369280223807309050200727542543834938764340115422847280644640829453412333607478109181918808315183071495624734975968035327581528021706262215442933934340947837827032928590118600552609379467756147867610806283917171727591307469692049528824508794262838768051374006375758666564316266563648061240654499474687674442008460895005898721473370570837472461998515535354059872421454026098930610603929723909578464437336891087562191445758679551867646078743849940783557154901100214540608174787001299518617393426610596303134765391050179380973314278246145253432661998759500763113084907526985099900354059484354391552370478192046799069985462078286780085363341409569808761030431813713894617894922570002171244701444012457376083691766868621119446835949098771057143705749450232372355400256091997337747697537234259065032898345743132632574231456976700620465058131079332723445797692504550339554472300921020134792505129756476764225606594186822668363021283941359652812822621137871049837511957120106986551970530881217483144367400054781774094591574655893324160424212204966742237794232834630750049027668482339514075695321652634392704647343648416536888221418778665201575684483828326185006756403790090349753529674813499585096057637253807664762159631140534907115480988363060715207894825753980113442613297103219620099581568195286028335070601639633378147507263457603572363407513349424554259133061532904954057661490418982536782763301756202077993299832892845692703879766473770965732322788618810548266696681544985028273198734553072142967898841256603639352880382857829861739422835062487239225082195993464229986268390810018361392002110509027033652074581169524331282353852010371672979185160952901759814780719065574442724596087118202616997597595654930328089483896937777098588687167098291738559116402124827246270287950612883596927971136291088832898989707113996479355833378340465961181198932743594210543849267755718288386118764882372981082342021205600412986405132772964069010170935727470644778607278382721120275942074340924554259171374616749690045472302475720284620458388519553611077714326464036710800544546495961061518922027236837619046453961954686329173825411083434688676623091072608714721606283513721664450825105801924158907069579224779600054545465692655844691454273250593605395224663033002625251865141189114521214940479895904580871093844150627406387327269726489145707287535368234627229715694970515545963908088971961337476947057418009032316328638474079505834476344464227425710802367970867951697116648601403103505198237596998219008619376621058355291219272949408345357979808538513632330541575394539582536815915425128273527929285473175856849996090817501247091956094441793677407314384587531153304004092060525938805796370584241943826845501691065041448561435438946989950087272720653695897023233451177520435577002410594372188129707068261730186332794253044725895137590550410940580576107177582557141187447879438032824004615807791221182558477338561499762178802485235904353583859754647697828224076206233468836984751552617340369910804041013965631762268282171169100335263070278642188059997173528333958991250885218323613113715628028319253401784322757420991963764770915675621766120226536194515812823279822578934227916477294983806485491210290810965935724695343096562822481297612832258851650685498121005315603853153870388284566376186843706094519541157676695783193321490000043924866977597573640407218147300065132629203720356468003168248869741964648307209196625390085205829103140634060549148959180167144117541482470320700413067551371320086594458307944604549567199323507999344837942766659267740004718367527545637959950445969090538639526195132240837405306220536154790321467716346927152075142920088791736351584613931297203525780670338407137022273465356515581794994127474864078724593153177406098395524328777786387640070616160495387541911598943434766732185889389951172451290179773399614087675581255186409517229873548185283909584812707390507451238862644580140097751217868758435297893410330458188634847285641137888878132534069324197315638234250867007262839085058304953040860936564092305058017385555335741277198736566214824629569194578773337094663532169856327962100935071189076893206077290568541179904696011307853188883976896621602194506535067831323772197667769004351352901507900042287074726963845385639628097436778495316647202311920269148362134266554700533596512812579362329943321383474369369175054572743575405829414299263596282174982350389856061347084135631967286070469866824616172713519563719653643596686704403893376051891202962992454753268710998953365192874234075162677354222060140999255865264108148248752949935785220988343084417949067812517878646230749745665906100342519892986118644670789082453341706651721907882093434311410078820078099377674206016508260001320741896862597290296716923069332660596697720857019918705052158814132537086147993501972469790333743564158301036153439830739184747711624777714268777354859750234654873884005182977962540699829583937955987335686627325292609384153964239982250570705035226862832521083685794220663424803584729200095363746484767885523299388946104372994646488605727411065676705727467107588570634683393008720762255815326112982012472740590215896740604870602944068602405106584235673090244384088346892350769106058148846159824299096098257157450816812078285245554378114413869492167454699206287590716862406458636051438347210951186287303918574091050266813877273377652002472276379499767707828274741440086815484114652170080323256566879115298426077193993578275412299145933110441262259120848962025522593165855785947868693510595244862262042930449425306759051035865827835774362504259048327840590000240731383361607370384136203511065650510755887622228346250779403280418145252555256815585966543377467295036759199007544116660060263209843953177317517597812332366588829999339027671266756169240513282482668223219340443843067211026348973820699045120962631447260225843018146026746815444277328751098401549778546572584812593492353978622191319262812165825614046997081976363629752278021068379495957331343409901754087733435144698899327986507838907536332074592879203639383586327418826954324971853074368479341074800540228104037538359965510317581784985100308559205020538999927629054444021087561339647217344776809955045962068326137368634451349188756031529879365536805412583485439087892417052893732511593101780143900345789271768024256763093557704662442722645551275570772137594226535233301512918917913152958309977216307395669814805491613431172760400204257338874983428845163422749771000333687447402517792410723875714086885680524394333449517039229456167352989159607343647578114700167574494648815659965121510876659589341100618427420286920822994919677820876089041506775391250966518719646897691696595928730821205782570921234621843832365834859699517580793546529712837844469894191134469195154354332302333497943824732096880530830793402618830936230799546288425488878802696233938894823883289720526790077358874632505491045233851138714612775302307890777898104074108813677232041354455045725783954129908712169148422232794650529384825241015456728216758679590612022994449917987777846112017255331315574739156816693343664022102105586358435953891912549798480926033176151404668309095048555899884514680170269213319961241427823603205643147807632431638649411180986763905813671144090967420829683031572738219953829083773969651631886141513070176720492300838419941597616559540574452615256509078664386794446362794333346102729489294452750842557496920140554164197407791499956284698186166298879155807373054693959516119403764568716310389881524633861333091185537209605637394267761526845139241642507676503715759132927195761456161232118785061709304753301506626292145999936225722003359190833348330838384241392540146684538652913986210341179889614700498065763658540412144452315458984326801135664605125190099002914716870644191983340977414681903379481260875445357993195193337831888141864284800344514346551800431760677219619153749709902343387183374826366705839652271902051228478415121951610848143031200234849639003885809984640062765914384665131545731572485595387339998178671562411156845250799905266773666326492190070771266012251656310656642979721028969128842499766612175207759438316903443835673074187912337961796774190362569287091802081312799774364487694544470876767491932160356669629450013564675958436497354130198717819274226652541843921187252268327249374885406280570025319202991202120731864624262794352692341201804694606910196368772427159841685553210325568218721069165850638563015360094271873158849754689189894308910094940854273986338877756861618860086315422805091833406530000823296742001968839488137699626349138103593456987627612675261524628606155863932321466440324573298098747637322028819584097801469683913413672868353820924135004564607488496840893805496726303079550997107665274752237209924541964629341967155982592858296311801636123092983961920635475189144707473764993749961571502214033771333735548915332123211835470717431397195189688974585069326568812430773864663805744690617586726897414653594921661533216818493700876639889069264021281622953832002661778665979072082117419816435204667271795543210691938264480239810750163379549564416877202747108812529344006437014850022915585372868313931927140253371953271728959781023609710215060293754308964599173148524725016124838477404500034351781880303364650705506447730392547412715844125207307385747471879689036855581272041001790016229177430400451056213415243310691214556982852641318290581745050085881632052370359522419228501103428664547057265018918882805870895668638471898016365762255887002404378907637684043228745477411178252177392480793870143898548592727882996744198892459402050502262280506233085133127561223713708667031503223203890859685908083038781507193258672985745745065059802470835317094576575267983149759646429916237898168561689253283956443059926772975849187848108728631234099005142658854131689746294614513745665079678418706105855062131799440648578806295291695178504974390117170595944210501907850176988644220811300299291421231608843641676078513380789089261571042428775241131262652544983426332605955824727537724205970373011641694212624072488459666310127124190722788169987810732083256978948145007728899171122655630915874012565535852740859103600284212598402890821381803224378068273525007085061815817966741536813424054294657981900877959824578061086345222632234200564594046821423799277701284395379758879629823681740255188030179539946910270102738359361078529425476402047814764922935120982860481809679735471757571485623115429733096790249379803330090282746685118166110752385338871027977165625627317395615908793244383138671598397321794549710792551086700714061563967507265244753640586761561514595525574180020634089547500002914243670901206286316695640917596429218428079033758419980036803378865236087406817028279061222533386251136611357201408361573175400501244865679621314263390713773011535554356144287561443915092037203802150921257327781562517982619222258980465262174423269842059392407201280550554359146598227285719045530495749398664561698704051282162298185948447803392909705910568504413299979472661428748527526160869071472334208564256101481337472569090648986828741038058812297046690677945670283712636372347902974971370371553702505375045143952079813372251320503000655194749391305356608151416504137309488990644865944977628014595297916561956201607732698279513039310138099444992902261998939198129904839441224395920342821098590238455058975808856867644622378495519583702280893760104151160305867371476982578672635272580804124408484357133560468449322438682975246543007740130052750494400297409400832530059780855238561335291510576659478581947880287938661381306614137724227322699666150801099836415923626151535705001124367812615187274707625238089099210040854905498422017106313155964197358419746781800646337383079961609799498046522253357610434821657451713564838949121549739612068189889403805041175109109346763318116673965039449090808125400973757000429785433337027192276977244729904365578333894258747499055077087480601033194049224801846150481108240822417806940772160402969731905429502197300639719962193602035276647973332764868802979633114254623806460719579317036850521871684653846883008002363714395439297314821394017277806696025970557444666678160305463489896655621101856943764231572383760462798755663001471937316116901076387482460379854147277323339652325010462460017986647315404811094713403121998659600719405724524907256649493256439659570744154260759019052691295383039183751313670597861122479498478059036941290521838808346166395563579609261800053403126042524674874598284225081255333162930355465470913626070937875134825465583603848282794372641202517528885517278151864990398084069399174974108685059549775304712404415503201500007087074290416919243316831223232076699066914941882050806563230166629430362876850276457522107392144329004306472295235273259839537733201989183801462000991397233835643561867780747450509698534374166515398650644689998033886103905965000365166864050482172217538470947525858769502716724178937208842207195044883207215067329957155957379941805430167426631279798859428012569843392773205796873968625215515573811572847151845401341675233759672755651367786707720228246058581781863563264018590241375949408412372556127248478799746903969387579008840501378695930409233931625232830881880314539669012469592891383748196411851047377348185066751627037159118500023090155877520182396802453257503371281853350029210409660457558669384645560770278125415986724606580678376455294196348139835571846184699331589146092890174532798845789356203147430646715619794753215272185865989860181135962208849062276968154165056639065836593308709058840341167395785132040948427105580713915925184542126875716986875920909362415393690940751175098374949480624401745301926163405898300232294554112990929938337353907132890301828139629827137122855416373452256999453379367595886389123643550061578642208396873235312776540420676114050889688193662331668918040420447373696644135580857216196590013755798818771835576551739045533352367853763184251068791949325634967454812752849410264169197052567324510910290445726571865709286014091618480049607489744029805030493794306502033604011803993025794141803155472754763582859336611403663123018355876848020662851770512964845878711400235300287130040232398633965221872089614034182239063789363420493730821867719629373621569932167311076110589950014040697501066674397102168680704872914189183880498232103739399789663579488945816215739547770216379957454693712659283168797539259290828420872999323523568851336948765793895760728630591716570574574941690864354732713147209418677519318393380625335384943621688183885646197905737064063452477215825054502413667496987412761798824545175772868297313490289194760302770624277160356434251018885643781642553552029102667079298141954446453022656290994625243719661320686972611330092753980405821671478403879120666096875706962237481042998475747656835279785330232979952393986251233798378932840412316962664550533508243199907552624870120028792145698707052793940595626936104482287164096892809101109093396679235807034814347376130248529591018478245253721178073253635305846063895328689044499073364231346861836188919379888084659059704752175461341399042068704688565169845634785916573836991503671822703764642245787511070742085426111775410337438257772630352250734694511726416880611505687225664639589133550004645070170623736299314958890888731533762724455338241075417309314269270887841470520750587350031132648923868299011324471341684527422319018045102856751687967955690413506552790875120048872190298349796242818945361066189172969020866369438196961967875514576326975651803093063257821431689087471137568104605878596316340784937203183899625073441176123301300553363431135564310038906434578336127127269266722115615353321991320720663593406457141733396046147133374269100270997950051824694269183490282901523575787261473683045043949275016987224303946255358889488511478157560585206692506773324041517775969937198590791372198269346382804298319317380311471760658178237543518254056487789023869543084312099870988843097587882807615537409933721623255690454720312684747263087810660026311697427510710528695811278590432933693540699291665185143585837543802553221693613277958102354980975005949709425112999847732407209416094407718516524261468371514091756502702113508389257504800551579282771655532393232871482050594826035312147649718551522884725265122858362133672251673302472852771822408833752036934681517883687498436238486567067382820634501180632946355901973938094738663394070851377129827848616388667930798828005814698244663254845198304387523152628731400382230927076008413400884225407040408609574463455853081818124966647695564654540112261560783932192722802340856060391821036697304922718558018804876275609515819277021529023445655924114957731254590028801455907005573695582735380836175119267768636067489352000456515805117352956011626997205313387289778218689190356353380298178100137794466332311508301440550085181468941714963350656884367694993120419394711242896235060034878942886736690781023157895885836976863223426413775557057962412335007699928468895836120109448012931622281982663454874202745169931919442798651324068658793365459567256527733791287976546773088528649951075165445876632399886590143798461577523457817874009327690098092679742238813374808201071474495919109297331152610953239423417105392877083591322310915559181285488381778933281125590815500116556020951323874455281207262980746600370451680888434860933092711729804861847766653462120614057748042496322066760629560922599800310135974695688624186056112881856941653472467346326799629050649722085133295858338748532368352511062874851751013922296774701023892957107128059349914728081008674854163349891907320197668437634119585042483396412111181197696283060383258236283328870506394810208393301875917122830000963618107301262256991040922409863698865965797783726596626341671117027637292879228042699481591489876098489569787487252879587001269060531273198349888735916717777307843556373323446501046316991265895767070333075618355986889117645236947699382710838978851524153247889238292120325289071120906804296298814273922353305175529608639897317018249652930464916399938006853734935943848381296360334890827519737035710794779880078493942582598459324394007850560317709293893760331573751923567736711586923307227687679340384121256398484911504638963925737452660980428331308652114190245771304686050380350707583618965869769432748581700999483423219632684406578920560983088480309222861643803246954148537429296300499409933097483764667515477103737620170472788332637291525460920755873169119800034654845283291473890996168792636937105889193910157657292672457312545169613997661774441047625143917202238295624279766246667463718703582478047121835871939310146193873818288746436630697913360634327641512965728731560941641577043472408329629130056269898925713782255995912697256353859400622510810520084254553260237768839130534487390884694257312807605008840207992211286179899624146338435375731456497096513095544878027883308827748552774039708081901335151480972411216107062766637808941416873386973994631995392935335461908398281941370834886172629995645106390532316252374513037333372635923129961095061829689173243426757408702527502189928788868395330084175038617161936046325727002881204174703413486816874714678625153982068130911969714455733844815350973915660203797197803525471032713223025263385899089366382943623942518878148584939554633862776609300364705582596606377966140668303805193397980696780549462617131289279105035141774565788138351207382462577110357192035328865014636714594673624687298043480215526830524377157040366960641332330747673388278571552142389015665309558638480375260592902537000684024474619741920225229213312111843892456455747490577986613579853148248247987984060515815914017550614415216597656341376767296781565323002729902980500530355068004283140088138745962938897959455362924027781218207060564702253796190743134648867223626449324752048922073478682631626442282591311548340819094076861667471223408629140131908549833537911874505698422815133049003318191443894012976820971746462300945714742541801095150596072765709531396625881542290388076039646420302737896416753334844073763683322529302782287990232479921278796577385935835536494249870545117356334453589912774537657554174386057302187082635415482213443010220922492670180268209164918189004258980370784477532992039696533979522502497110913925488779926256870164380785410223235250156732739670027534650785710170108137578693838947302142855125132402483493830428024228706830313184292258713717508171078820553161109609301274244810095661300045418275787403215316590218838232621669515371416438611522118084200987644754024766045400893220705508447781477383233968043196539399715446105959505606296117315784851211264341199967167338446841860554824071179031750246680139398227003250425060448640926203917370017230797829527111084107507146750052277287417317921507003716651313279481605212606630775144701608887678407083258398637727674655447429951163866019324455806903716138441565667014718450951840655935974388471824209270538928776585610973753514265046551666983997035509348592348349277422460877898138559780225860831072235307890298879512535820028484818224570576364319083701345227118021208477322677805630690908557198253712455976938591983016009232656370243648115144901715635473986014687938454561845839200641230634812448483537770281751885687596387902016113797255942874028278181087797118871814182800456193085035829148874731808890679181022465372703915084053947724541094911388380525405990321316547699338103972875087314417544148566269212203691075970350157577666347172953183484372905383428726376016161310975089283570436841701717418439373596193936122061397333757012205322176351666717880223403589206900301311741718808515473703134265080502984255252647980642808741129590083663843195994825545606042456032879908204740978570571478676750303000987668519669133898548095470419659844278550068326370153016566638756683266159716482570744251430964814253834095524113126793339969713755246855990249072990392952343404530836393429815292706381089602967851874896509735679424311360762070312499469414152899178575334066688486601024693151891823789150004164123005880993494886129344201563578207671847984496773448778511910085669130718224870456213623825228140156075186038488364340111669431302522694781591582073458369413779275241829067499763456910331930464394460682007123720523470320166099707136954772361114093251129623524633541934232465426386572986668567682819434533716515807175491140587005461493910768259872998433455710353847751626832183001959610245291100799837423574600237832625140548304838550040721789994415421874411212859514155524964314707271729611493265122829774590070296866163609745096938088769256747349298939871155920438059655537155052588483594245155467917074805587207463222891737738362434204343300685550039640277822291872352631343095154166809636290953455551670919695642328917253425700671751246915071126429433182228221881489545102502850132738719597886226804380120159944077559914280061776347224278378815568027735770771284967482270351433700254967059717825711447732043520943639933545848990285865268252085444218041917634499840498254265762773216449640734705479468002069027793228375375003831905884141814373839434172058027315606509525924540439736003333245222469466848350587207375465815112832206336791981427241721860211852396188987856787256272857768112864207499022789187401470521805910128336501817248174238307408511872203904380038956679366770128241620454636058053051126351424656242610920064535929989012389300684932143030840177217814693043407740589885061456968780470556989883604848537943745793830898381289197130625188018469169643515068290285656076866331345658957794088284375132286605429110742927732711461436022570843953046155708955478386683670160593539194291256198032250527751890973710076380971966523708246860287923356993444257794232858479716564738069820130943626593930661729138377118671776338240822214965860283992293821270647797749842022108215082283845922307383965529985860184477082950095435729768643692036704815008824745160020214549778847801359609250198226292868905875476358229166256264976872612086348535222951734515471167642776029331697519334268164394882020638941233991151505770102357528892078260595376011413855304332007867257709013033986034221370020535641927429899793052731742162973505780021440571648808759394770562830993210397785276844947952141733123982004884170510175443230127681310176313543861303282853374411949006725389710847027213212261970993442153953545857281505712261353914308502082260781328095000200799954063829934808231977196703911408955146233359462096303014132526510852031258868756579061493084491340428151429699254638568059725425340382690717974055078305600601847786676251950757497228543445826067870644163314309088136204769004505834303859605446497201728401538017139628902779290231476272674841503617810334414404480892700864709966253068494689020319667723041190617712959966176669272033685535287585936114218684313859301501443121321183609235920993852565577379462444765320667258994151884923148602893598728744411975977088485038118949235574461303766499752171382447418343527891889114221900850548587637328905143316452278349195990495957024669501382557014184512551459611304883484045203308178946372155296941918661107202871601230381693207561074453542838974162047773403496589538406162425549781847308857242993526053876001085697742847907046801969463533233211187249362631611350824883005342325453133460301870672436048730122841537976364390330346899932580639214239557685861457358514001860415887020329768611210873069569975238234635942199971374532010806455616999041112530322113391568926814033221140517746815319311716311371721089184432551346283721126183004239442945429528034996073127450265441597792995485313728626174941084728740198632499285227547677177844919628158788602606982773857842645116376338313176586357413757621886882927280644320144362253699103997492132071465758210755126946872587282725817836378394248990705629984274774376184533915921723628224118031795966200138319844889774543464645158138568863771959013408810071101340639097111068895794279976818860796410448778654658219941916933060278908286782411920760294724241271998743628573107373547839143018313873724173238789777292260956425953148690792091669925241825481821100643057223760114431084331421839882698055215679174214465869050384719384157615215135238179613769561841245004224851976503148130440561376384890681732359593656438704112303559786062685197092986393886521255314121617190482684408977821925147269705358242886100641060033926381465651766606906931331289841398311597808522491644665196529637823942348576572143934132428448248694273977158799933263359068625214876047020867214044712843643916788875168097460222760406771288276282349473756590032139841196231704278934626227555141313527828673720257581585402905461018376378974663015411317233609204004511262650180223177102306084838260639756818301559091883072577516663901516377065997342315812600065965833154931102777690605155877050699294469805481598571947404787864129929976504037623490285832322230934504271407068413738281552476663206110909453527960014031024614001399634169463624844911675109903398081727442905284763321208311282856871914092544800495267875552008003822050549014451990482446437106295927550033485997175336235079537541953845519934650003463849935000559645547564521521921959300742510495782738457671539701630877932808636856000819186634883190654430009067341198598723425945665495426800415844044929019146119837101580939086302276286347420309638372072131378573104405221282169763373225470864236405407139265216667116366402670600230228778074578700909027307092222827629247784135092392257265771449082422441714113676767735890008583119855747692310669122138897724609671294350704758168848159133888660678391223682687868784378085961617523425021789806107125443170009828378267880967726356885534433806587857665720613730213497230110444989457025216724642770917074379664576806429128866189780561400366888816360602370210314850398003207446399439933876311974374579196513487776804937113775928809133145493685259958315109900129335968601117642569460909443751827862203152606684591150071681419561708354050642906296124577200100814026654998714626830158597810270601244943937881626957367651468208052693869188835834534804348750931753402139833361308194591351042976731811010591795319928699477101280845654280319478940717434294305097478970944096478330930528477731589244535762785365099519046557195177451384634264861904190450392725049783510758332532241576848315947720646596188841254627511191323745495698403253607861046147776011961146161804027710441925290948044975391572093643362842122641313535210422238292469098077015409864750522290354196425119804033828908094676492618879564943634198223504606633785913072370799200271112147251426158197785295821753417520692944125081057388392745530904179590156374110120772817988776443509892828410121964619844703847935304207542549317220513584215375730040230362162619739574588894245486059307537494832974642121941317701450440877753660234015582658699327539317912851162333223974161271381998128791564874473120878585446510172074896892894084947654907606782134577714182174453708770417987097290170925826817029281499473651679765893309534997284566651339912505749373663685161958017672752996695079242359111322156595809559487173282456484243324792949178728276603441838473238807616232311427261599074710754204649967799918880078161425762683029136119328881921522521845473249578604828479111764536811759901146673987270547866848363809593645993432218915207160836360569517044388922341746965840049311466516198999633117688716218563770589122063607663283316496402421854810559419647226680816100013643544957574454627518402695265806802048680372056813206698837079276483225288880485491550269351168859083184012333976505617040884774783106177890366569747169123231931620355365997710839728255033727444384341754007211327291219873735782707925024265025598411631536254632109556161598771354880374041062610253735509999417340032964888081494468647893880178243633750529831866946050723150900602658091977998745753206933821219539441734515434007254338377906135101365469472125584504309403403391668035919298044376345900274794872175694734701574116804453870994366723809885896848389285231252464866731526151857947785588936579194956913554422299072605381145694112241450944231556324272650976739810609749300478384535102345432234692614573239654236216067805692861590468030981683722032402690409740783756018227168677247871651081412441034052843848659550085166485156986718752940459969820128182716577744093551812842438521865718378688866200290343680481078382544324544752484566299950550793369717722766078368178469333368835140891768975178194899808840603931991820147882195613305045094087333102631422110682479456462989890934335927420129234323235460334948648724912577138709532433417713121145107669850748422373212333635806564934438127478249568903696841993077749713457939290427885621561702013034262184908497032400842772936710515312434326466193481492286611240086985682469702727605549125649434727616027976688936743970434311112638212782934122768731412432962025211011299504271022555008466158661541813204190708415768442531165989891573080812637577688029487634822633559505919137091146964568977398183173274633661767650784761272760217924094031520340091727016709583564996996815186380728537021367496903517660347555530887456009099191779819449838265393757741268191678581142588097209468013377119023085704790790222075749254448636016533617894994888371508013446455093296580400241466581667210049513459245462705487147991542096962964639514438530588624087070243852803550264220828561495170927814394257127819540891829075734032985737974105580545670638830166181081001681903627193414298176755654664840039628143053248151503900135584727284245378539956671805056608254220258226599840581778055957953004113649706451656567879004470794061566840073412738324631948918457395475194162955599666988957301127006432537129764516894588644278261128539356690167998747707404975050870900736724583599146639013402211853181947648812153150979264818124565865250205645881385322126425767038015693217342305604689016542862880623854989344552654524594963315200388043239977505226391508067634884337101370529410720768820478172883631865409229308979585111658856584679527133527890330235488116069955554827546849176543929276248389200553253328917430289025417220951821063499511810200626519958760782431159636234845374498629757223651417011393795394191583465091712934051571339446960107558416051681402017235135459853576299824186059670822020354239386818513390732625340758299294348029848822017245279208330692157297172238952422156227514475864718935009332484428257779204632702006430888699720527448195975912781967192885391343000785823423104897003964458564076118069872047512994080625768701979529593318692958238136477474022682267342082899757337102751667586531717101076798889248320469324081473319108238416901262361169825176079628055244202446915229103940152071616341641606152104909031419449087128787473424779106417241174977381408322717438199899003219775452936872844524050468072098904379168926340752042522177613186157815321590398768500580041256072803692437017645346456382642351549245032894018350875715741021929299677351999393485069921781138626755251620113306700912234942329132901438304193910896471033506198293677086938417862352745347479235803272273340634497782478129030772574792526311625402694408269697579988177231791702734569590931317640368995605707301898533995528346657001819831710972167742147469164971426070318756105974313811043646188539239450113612240213157109573009399259415589958898301148157139569593076603819391747454854196721512931816286745677587208919818011861682877406998452511513992223913331691437677107051506138760828540478836616858079954257184859652955744297050440243085591071494044427654854455085583078430782726095365944979619261870125038547889152190433869569497527939327592649396482674065024211687920775252814443045371359834632230615769720652361363659765250465843506134396871570878155640327656064490590810362524911877846729729716183719312301782616040439622559162794784772805402950449630561251965871632550473340774608516368320878716552647862508980578611133972806574893668188187961482516717114073215539069795458555495281797771598334979797897574295045326021614270719042531497538776292347138561439038235637296004514874694974196983474834807699891560210647784069672059841589713254030913912179420242920685657492834502829927690096549815371005474134151973195377709471820846371727746982792773273339955991686438304983561789234160806397180600473119236642296244956453577960610810614090546345689644729947403860090618163788501992831423990913669113352169915690757144094429792617933843519866389884979032745480976201679453799782538835129525235686631277032726646523217820353486533862787954906687797329980150927644247680491504389849582453534115774203918557868572458869192037177279949621807472626679634677171607891066168474268844278552497711049176867980543754291873899544236928984439898667807004610654248128879379898697186738406138873929903815905252560597843835604098824964470748350042742418555929493339660785455007466361509600350880798096957309008582041702396851753401835297085912337375506361033446979826222666799874872426221614188190742802390230883539300932941127075423363703206594958642222305996396644399030730714797275247493128083769663828870119530095609912769496028047150721639886479091786975925571138496059796746710809754626004850184565804861501229460622061300253425290266270721622942557940446559581588459205175345063209585429581253326336241228434554842147156968828408161154959317838843838245778952618682249053530527335266669363025107182216088399971757690406233728962199393094066454057576346688184304334235420890792331657195111077208479065628268169627874072327403685210019514123250159126617610439323943941140905732297884023804493130346664034551426696866097645688601062805915835209265590191115529615531841580418917267759473664161267885925580074519038853733024769471500568598489798799049520342254047476609258912161214960142126924481883739520600899659278079607638422143799319957644751315135770931832860363548357905648178914068090791387307058262076934219263545139179111161483079765644564945352271716425396084938297115166672191402029966116737105278821301859107995869749735962636293687058730873919805533348156001891618217614042784316770320349088482287166856678933669213536152164053728912849944647220504490280734312643729731997224477868598026779399571727503411656461727413803053429629055274386220122881894717601165011229436091280062326172026951469077131001966448486892277086047660817076288072644343640916255592576390136465588145750978954944232568179270395879314137693463278700213696371849638029304987156551918235645948435653659196442102964911039522288198992461109111263311121820919553523262409085524532622220542082305711071289302037501728605953840193185853782310040804015918318423943223737518350799774875316126373430498443668378901959331842900681598804986544457132214786361922925358982162670493246993925834145099679131540878646099814034028224070903046649279417874583775927069072874121612081366037004556234720158894727688188360279061157559333575180432922752163086144296405952525690900642006956470793551453888850399929622647824218421960555150823265155657100774174973033971871412551290341885945095421131528715387532519158596433555131581417750449063139539874647988173054526012378103517429550879985281514707105335617261759569454679756331396864317732530103331073081673564694598223772712498894611857475617062755204238916609255539636629607338110451946990156930652043298336415772599764884559232772513979086653103986947405866399997585054617961598059914062952393584881188581626463515046706734222295443772849242503023449549867242755547191404608217116003358592386102949236832155031408216790787821468830188754006570974647409945380841218657934997598067088736286761639451457635145092140445383141075190728741664585100731035941308195710016621583842601592575205335804070296382020658386875695486215784152512543300336558406027725277599279675527899779369255735752964780989513775284362677189479554950987402787740384724522146299271806500933607856801317687735856455739929308814395190594199980441083920799072072343189824265416408987268426958774782446138022546554748190117903942240904750922056549746506335960894569477802259783370717269577052926916692686985176446600302869180270350500660089465654180615170469845028879926488942638798399911574946876473895593611618584716938355202144713300714247712728651118054348565806698828508872241464504100979018658460072720258411737576817186977168769258308496146038596965709799576906734846697549477256161055698538078656741859372359456929971475285596543778845400168544231170523869580402395590979028678015517363484932817600894523026870945410633400031581105915389175790236189176371391462393429812392179493694559330337234751517558209277263283920678453742392611948090235350753051843173918664839301700579506360927900026843952687087634258723591778045573849090851416421997000158002325745731296224151808373363556325326157143595531419325749332915297214943192932158953152387388569753739458559291946334218021283934241383928534879150346547538543743022061289227142462810113012617939304147819868357569929091500824273620394101620814526593804633922287621747313284027829316708722178830882793320573951856627539392611778756670412996230672214201657806034054773676209212094211036449423788088630005012979416340157207807925304293458408684218980448194177336631716329403822150595035396613144238048027821155007767812958981950761891983080893334266403617124600949894385638546688906740660947201016399846469836352443673414315218746161505147717344674512239212435796630156830562450872152280443877001613229094127673182802773674420108923931878811059331193194777090614022618498955050658768554456392030852837793800445457029849674188383943167980287622417306659622337786473986340544421851947990598679176456708052441026941294641343560575290943635852743631475577994882047389548062748285621105373426393267425838069699140228997155116173256794623244238196794509922665220075047309928584172353977661073760346699283121079245733515408069347729995015088006327139496124075362014621223689404365496057923427669355831938239890934329701805498526237531420271256699440601053904318275339694025946937479454656758172508760564814644841969170510657665873446489992824080233176215524211630970211617533700865379277125743673735031683606040826581176188264420734302468352250915428277511675623917843175705077214286022437345507967621198762546428605823061367350486796454265370742474310819621717032209701821231207618463755038744546325264624935173906537298391824928935253144162036024524881817692805661080649053562680878729881513914055005526235711785656635971442600158756616537048131435525290941174506750414362642742632167657209673186113431164854985219493643436511519764514995876430524854005304873296277646583885609957490254507429776108893030161217690795937100495707353566531236443107012211278209139365371418471164118657640673118753030841547725924491388380737541943569560030453102685322398358749280438161218405665371756074272109274041180196164979165552728896715946687819110385987533672398957293048189153937648372679180096272451524967968982402307708665472994988946796692586144035137070742209290777027630603081120803779691784637299630336206589973076319594774024139910032352825027916593719964810757604831891009105670547724896814863138444254312264146983240085303095657310078779909080877212187435798187282067686357588089331376937247387834111294709996082397108256974595504860910556939796543596726330536675875910347478736435204138693452547385711779202767816715091398946651751181346280793458522545323310659789280452662332647967569405482970651648709426392239368032152698826671415228371643910769783649720371315876739180423333813460412388217006007029639057507846713534316859197592074242616013737576560256784904676532822082150327955860820388275287715167449110750868484204190066096565287392461292274715554893729031689276145671244370854093923914158457349942851319511973386289975277797661003495043419049160490877235765333284331432600864576334628351384026646936403610718087356404304843518646984972689298119478078569127406765039775164551290345356726364696383734780436365418404342790166259179439437816346739581472788180575571579279768945310822235613851050419113051080159608125516290397317215129671959893552934054504092076516474032662621152480326814303482473322223120207378325944435548665378427641992032352056631480577552910777171314677475150607980587872738142085328318975976262021496946191384548140597659120096716656377753235471938712260004797591315453763578772199724185313298518686120797798528389610361603926008029762053997176127893606133368159912022497061233298805972105886896832387540294939411072165303752504456395641814054969300914563815908214864177017688092529774314231179012986118808579959915038490246451719564835532586064249186138428787576130752347824439675232964230144076155849024423024958276404527436827324545467174840865352490552806963613365579878154081376886142571856333160310491880235375499020943188073736036934953990427828146663451751748440922815557075670939380150437470495862229223151009139874670633638945770540753063307999009790507326590522525528709762279984141709029881602165123941018752297116969669511589651276480412510241004151107377039135939534974067216782644021212346718749425300327012575636669429338859330078727021780903644412599855042928406102204497710485346349711400989889565453081613141387425093869541244979366150553379509651201461195168127843499817030112990764354183399622363820244926276121109512322040832952163127467043607536634655292131113341687206448649865587094279325456871673926487010680230855776816567752885944503695782827295021328426836344171227142622148999907959438421970709005410432755650036593769184137123963946190577820865987541203601854718226790331017476243918737910257347378008962016001403691542892809957916101382727750950452180461202086432099467083362078653837547897716664594694506503418664379376181212139942877154617206438276857448651254514320779211582167053529269407203612462498624706181270737407221312054724938741541995741492852361870303654947993778761944150453572263063984231198895170445834179992941682763852139916267168516211224687305804522523534907284368893489727367515292875211501155459581896868070187210564066952432842083881427963282157952392202433102312776344620338011904164145900543193306946205456145402462691205153121700654266128093580353624295039643102999475606092430436396745812849502932416374869052548932504230947203137254708742042278075618020089995834713576270580014251064985060696247550695161640636364780421419538888930111714422501058198039914439242502177406147048529783487910315694833397736204397036760591331432356148571581177410651592529473138759880412546610336381201216434865374521606100330023513742235426582736351050209322964819608808002878537444219378189194788301335245597420727667614142471845282776767486210500809129246706990753369546203497320511033309981554152172777940294182242809797351000017899259103813715457734995332489044183705207088309672573298039247118651121310846596787529439613837828197766242064084328096273760216468410819825148929995027937831653140332488746469881646811209355840486791188300920011275234511651913059583605253510464545887277433962963267967015262741683183363187693806566047882033948390217535245028320774320801080045863994347916217169676013571429783256835803082171437718115612392538901104509011267203179985017628746577325030437352643334714696789977802042863635823314011935176867930687595201951164722826703830217523960976952240947459897264125644251148511197115294504542800569540507000245905410557575446964774224355647488895543251281918694015521453460784093984657478778021712567696188106673418676100924022188090734608296036080498104507324329593671253242318005084960088689554993166474972323920359617006189866839483167950905440321703963938308447404271164967766140865531080173362913058088279547730440480205903699458032647835336992181686060259114458865768335915046097129640397730776641841155203312508665898576841576136755069861042142312950504088317900940656678883323134376699161009606559752334611688136429846430885349227023726584585572213730619541462846979958795770567528548956117165687074979281822972854721552170672687035213432568366427965474842915291688688406133357874203242986026128029724639961064334840928352024744046602138568892818843241714943772053707129032881116923732384735673410635798765953995515008795052603301721073675382614617324031183594641177503184393889185388477529827144965823710571017297587540095285754675443518624369803890750333351192710957496017672757652894048184601505385213409352644384730754246040681051120348121831843829511632625219938514597542426228496526989403073918519269910022862958157631718048314778974407445080754695639721379700307525331250048383077460451124887312350676221655838932843766213723012337950554931367296151622847878181885269133613021015161276923264669561866945226518033277189265290837768396251474691332743501072666375258682180242366674492789633710425601910573226015863060447006556679540634061134537112407776423215359542448381210450234227997805950588306085539494363355398816595086153867299626465269213702260401983348293247471216972467023454763664833763805627674569808778184094614922520629236019140257878268253466068968064693468071968300150546109341212742962230114965163992354105006312478333304158220627410295425462453252396174736708130711720416197259872439109356537793599742219181377665463860500151899040482527567464382324788634558882075994107748532850347739865655597699062037421519070511028666745407227934166336521026618500454629663488551929496481681970837828185705218363784553951196058917581119556065474883327303234808178328099159572965326716291319046030064994225893791212272909012342959480180587921303108261128869577175650009264277674174566865391419840266146114109091700012241527136511247710949104862727776440959505082047410280704477004049801319437260841784113233853459380799659501827256786039350917441727702230365586242535147678416773092651665942242476846813238805798150625132701786075553735190407812613189921932812141027210840066840551415687849176453491430899494989669536668380221608090766168316071585003071494183030232982925539932825295344526640007030039410448020174109817210511879176542979653691355232546945607107446888623187518864879300217267310414153171352420969656218495938179339811553672448783233481817901587919473490187404849760615839244379085986677389459471262955119538125992692381660472329217025906064786501248411962556837931478941140928442258612747842467229186336346176597115205527599293313197647356727416167758450898890296510747524032177194319734431390560070333124658070353864329999105247323791986177792833092625720174216254139239321287596814474097395456955492545995403113509660554017577449867574085383284649846552301980045992704169671999787471584348880723300129390219916256336805461529519963155140890039637786225404129622359264032888317772419666665715003949780321291018678719595810137569845423575033631408289074484150885665361114681066420983641830363641829459500198773592863575578679002430563408132429684296461025358376436287402011420278604455825820729563490876329726211278561093898140718596976019218338891677714709538959184536164308546014975711040070338683243379594038592731350135979292684304395670795556650949375868394805633297322934975181926952678749621762196094564832228257210150052214985439585682079105528396891231491440334823804161668078782142310405495331876993126575275410547275176103659037303888421808710645070602731201878125011315323957364074891727980669765153123837765899612362601243929409379743039505850026630618270600523896439880638628068908547942569836095999267051671237538934097405241745279327205659477754628097544799578413467869700512716519032693384185517580636137486508295423295589009376002595506293957206471395682207998468180825685501458046080779742242437273782431319061509287135896783842430034916950723713757988776866306757899188817118576591429379126493812889722843669359715000163006477070905932384857239669902026367519269613376003221705874867714690465129089004421249860913408339901893441909941430113430913390526697442854102629633357984886563875603394084571679988496230623811927160532663197049394041180915008734068100483498091669886339751982204765997574630795157464360089073154782500531228777611886007950320233530676543803594418643215272042797542056690448403003681091152161342183645260649071697528804160903873095711368485277751615776733518056980766286268704355019155763612999917514626419561751590987352469701227909627564951486788923661537517948485493325237211632430653018716819019138310847319739261511579216498313999703932150677397942272969385242204302289058618947398097831365025151821266455815337599138882676442298042707395786952030786032876345861125757707864088313436073547465051041253766703880430324073968866262807909535690595396125958982097461845868386507976187001728877688284157657764622281096795026968427297789497450987820553101679017841402316663069173459649487017805638685768000172956196753564003058435314308825441438135638617142528366903191203581208842889562492164659770770069827799656785916683882551131040945570033674299839699466172133733270119821909429473751265816852381498167432066883391100827783507529749458630024872732138812946255309814309522841955387802015622809450742740578589327613759662397556676328841892408750196007152127903030538200043324207195652853954992993949969212325362398059826498910319597379168294967457339068192431724208369957573463432597602456685169032756396006491915771912550283643245358502105980591409819722793577999110230272476784417838106275065954296124402037951472568438841676334626335313063886065008789279732864565184728780489847197690403111363803343407711403936806032428029412902045838929705270594281673248523408293051767160708776292347718808017121001386129179858602798002365248014156772164657642290389674373537673894156176503338993425470770344788956948016755131457406773643090266532222575152539534667299859317813912195095893998206603916350878626801461719388040081602079987371461723607593547930254703597538773953006476941817585180091038051250264461876691278923778866560619422210371695874991735943332304730248864264652997533332213266221748963349731149545094821282736030280265451270226975420654504101454664776515677505343951070726903607504595144071037975911187855970072273853887391430938712826727152989162264848684152593313979058658944574019577635553652484679960431784669354690060290460206775643933551522031101693219961473072089918027693389545823056128894317063278276995185284507459802687946531329983419709896365366117383780180098983377453600994872576002144846421981471488563227663661915217256992844709367689375964036471178272962308987273814130474935729130035853931098097179786906562746472149181685311227604902411689908148251103345638792946901739568432484004305517897417061413611034708780427215575999045091355428004393730988660121561272899019830392657964815711653937522659078636396969262526261061676196553799612190501905082860511638077169400662314586021426758885018679021080638214816158545436360207403147906706108297808506176790994803864886927234215286711579683178172145471702219176292532291691483679456269687222254471390841079276333441700955930973805878582162098561391029987484813589438018858782530704528308875563643561443114391595044381127449024735803225075365001091833796520679263143009735437630323853272132418241884002315802192049442361230301350911252389595857286726406736235655720057999051812111797804312169592304131272713390105768115508228169714639076363434890694802710391227935515357082809286464481804428377710982176230559168354265296175878151251104006127217787229781334580751545703512672956136360594654765132240583609394584499268380877834131044558803286276783860476504251846548787137592589892330477587338110651653784963311202961908496924871158527179804968622611773513794614423679950630415171875894141577070115712942928620164488552257730721822396242123504762486489879881340095521389104353805896260692040151702884177139322822126324008514161143552754998233802474448676876625045301002439759440430848195219663325513012688687976079898159392656799682806254719315270040534625625533267113038982675993044650989397499613344326434102946433120803114331712651968037743236439437150943270625423565193589581983437551261507040913301657856335147591298200372278273793399538285015485926316666984781486200151311509182719016956864415893083891848237312845435037769081443932127167697202679672765373451586551172258973097455936531783896797745627482373684467633957109252826493277931180621160161868491079923833968393948692161858681774796761748802783939040677676865691112294619439145344197993691251440846534047534115707311359450935577298477390372144312781828483188108259628347366479532659309802805741250276652183451104295645532548832874830909761842092402798980749601353580989324152280061839997612523480554979934838766353056765725388906315740581154843352961390969979422839400915944724393809722936279207457673897945072540399855719736350465654367771976408829581311950268765097742045432034861121047118703438188148308844955361685074563736341181111884954200834730664723507076250492323402366588584745714138739667074642620969874802600250591327037982925110744104384695291089340742071901113092878441716367680393882182854009118859289822648263355449446108889494791944684185463129673669096409350917983040282562259945289895468661905815508910757954418343858177844623522100822007059802678008719155265536576808967027133900878733685271055556762506740435901560574723284848158272962742433283558861716483588943529319398133165557683923712427033285301364166561386112023557438590247792121446449996559615001447009350661364821515316593618416556865319889002545331380362879144250237044565260423235825818090817965250728426960074151264564040806131412555651342223539630889600009251601785648838663121735997555263199852302744101087679279708558513663793984368786035216003341332582314542559193949042917087069530694980223148367253483836267145980482688632620193561910987396599532810434422891356867531209800839461403363912582191790233585270534002492189754775224349801750942625868870009022637023403278218397419863653134676316720716021582817331557048668576834330374579189628477620782659507927792525030391753134476103366756468902144377340383038482502265031691135758994825138426802897083907331115925497869380671651463181542088896489691238745719892710411622380832940938169652386700333991453580153992785238409323024555418880708118409127364729821531157615769148730963083677904307232562383051972889133379945362556234617727984649816370189559186965357319437010601927788740784854617646383699918188322619939835552070915386813582725488892135612943023494258361353833402995696446197651348641390327712239378814152528422490564279606805725158678336419415012830905974395212556702611424299185444527776309016195447238743330482447932661579624877858449291026238734500410032620778761229831212280343842746539758428315407889077202917383359257736285770188399445037840028321338833063059866556946336370706452500680987413364733652715388757650516321947851871013991944315153694262954115304355151906145509387380712197306819484353482991055868009565154426263678879648377617905857775396114214424722288311738508397141549046769216210910872756831555832403089154050074176863455707575623080906131600369673230840439887433436582544819813490066270680756954542219881997785305191932712170604490205551743743728524655496144974524377629574939586526697603835976320880832554331547826569209434704132689642975714982510837666068305596842507790392235364424016815038312180578942963981023234503482633077237467544550133325997568313304430059270748404138596716694839230479337273031859295120021795310607651088121313871049204383263344385659247306226435919278297664154177536301465515569261545961851429600645550199893513364786841223660772728801089633329086269718289278326169236802138978368451187049154397186586318249200095222968987635555424721181862373832465091736057854425374178472887712973584131126131326902118163388565098153748223593402018578811472347494302584937482745508212300983263883073866310008101485236610418397386920409698815026973755698601088649724144956299369570591481996914312985319672542747494649714372257527243041010708898781159519686712412773266670777511208297207656606146495593842325921301250246417689539376684377581511767539963394107843088945531257270255937597803679655936291510148814207560937144813870514237240766178156452809070616547424012493120015980559653544191024173314507206479677247163195509352649795017834971686390488073366044587416884432218986291010564878934609114615931160595071327368520684357120136446134539393102591672265581539144029357402449292055885309292270438679199292929226001484443468869804597816115268191595392674057352547074041609232410096618279487584753419300832748199347857109478620566168129825528127758749028662701297973864071718856552276045208771421926448677688616884857193979647810069782876068374774712475134181822603461104066107252861103791573917894500679328587355063881163634430187101193210896628946288986219677706590736753790251030164813496743946154340872954071719050874723313717378776620369396908833074042112859706419774343734220025291709115932935486714646908274962089961090384555203398240295582060752666144910117074142613220251871424274977446745432225567419318755956187477203229831999022868878234251096285202896739524237404009539583738368612287325774669394104098476465183198186468462246320489171149069588829098628905979304402330620218288709353887406990210804854372267376746158979457615751133914527089234503611085495714321681558544140044906890084023984170480373636272375120193639907934249096156438516723784325509701019950580738951939204982544760714466031220720750644705834983829386547025801202414949118070427539422859157672225224641375617987163673948419264779253626767312889544872333197058333106420950746327632791272860045504477507957329278742192067293247296381438838203322895998951171762667894064145250802892954285415516344849253353644508404819421183340348574326379188756182670422069651087063818772136066958338332453602053267414562087813711718225163872007070109373350311815562010535182739466023396766857017277734051827885433077477853881803744568654566915932719267198738949395247501098589505607521191781530724021900249430684182185597998653356469647336874616471683639724805459025309630928840367219386527664001320545913286137173516982636902548705548099773341598210851723520747865256607987473865997210897178869677433966124016377266934560124918596738630080084584434583118330152474074298886084074324898028675226730676347704196042087777747497673650315907531671898413061471747877538966606822447605564931453343121487017590992749879307956631087468254368489845041695533562313749040838646503913526488622230979052920875058270042509288053402542453072168049527267745731017681250530611609889728278776767781278654062709166508396071677647978954128857525651868582188558989372764457943303886738010846042656507190989744508364802326149777689856817767637526141121137295330073298780626800894359697666586776669847253813136029939220543279177176656457386576348280663093502278574450808988183777661356074763322149716498318091750316861332959378157879147989837017623048922741829552432689960508548627257166256016605256764419579207591900650002144666617020482138810882607254182113103717961248465396072772418074389734400230746087539209925363081637405617958627625582780425689349577360933091246914662953366037554668818494662045995891711352843196825602219566631896037826050253096898064436711422951265120267283004616642008387935810903820043792996037783937761228944032374023555976103860085660163640246884571016069630192615444793980200646976979360709196726515821208781589992471193661357643538918792622695575693972873362662385870654162451309703277032758289286980728138353884476645468098082617388210561679614949734623444603993630395320314803122173946950702324427568139785944574069827773317877620196314559713440196270589156683684309916067013160795455279117553749276643386428408409075476587650315223939582413661859608711300358742058255587605027465090573008269860103241987009131559699922265825418683535594299959264240800127752933016537973230115763038810013133468850697958106239975174220623680785508201034446589346846295101464907796015721992654857905340667300647487807612780928651317237728401412200690265813198761956745879026288205475631265350276274858285280575911288425480721383053287474166910437564691570293572471263213547957838013560809310539261981159684686852148310807888693789759613830991869969698596146964145085674291433744154594883683916878237486566161915189623797374923721045873270225220719888191509308081257613895039363863949846643017443628628161630094849931092530551271879463544837999756026017196890578354417050818500577525527592591795383186013511536832518063460990203581557798318387721191330078147340085151352113159564215564089106174312475986408306377391986010492407899561195637036222527061968455013249108126972739631847731768761951046523389749265398219050727246741142621430286440352602692994490050050007125569031910198337713494266493781040125604761362802645176451513229851238664400606445156818302961273211157081080041110506225071141809807775790447976747068805189067618126564786822100325438988404657394835675081142158431456108453045264830008958439605999576289165858354801436535976339570538543014176072999864250483698340218476316353053411517721886842608579499225378245833570772058778784507481638230004505486110018771958256018968691035157446924555695227069273600231948770269857131288013244872605562284268402092779548269848689824262197271265345809272792669544202534594607733249868460573895145897166889940095579273068125000680168311531293755542007769838412458086280395659988255846797810473669500828034527291495130416766150904599438501036633540257207090075091613293064115755422571225532716388995094423847388294738323213219956895790908306316882342934723800619236747721708724281855066317168300096813795406737993321795714807050853893658695206247430781654763620088778613922194845964507382025125211707970155710042645352601691647361845160466739702955021262110907086061657417489819164352635858389958103280626197246361714603616898132627615731728104949278908946870508270339194253671235747809503377004580597650960331454966354734696914917340575871787714258481545116280350480336105887280453008832533913789535767904925197193086126421822786970676977516027289945198156996840500571190107186515773008529749837939557952846474132887944364908442948419846991063118420204672823948223240016321369421153077154432652691681439853686294777937223254793263328326244222219560741045903268521302492163782176373678180385968495611306559760557449148333112000864639329490577575173981989538083434327731759266021769878830435589251025620843214781194968407677674181461363766385299180683193144826826318587355313916814834521048540595667905268008091501070244165595421260260908535948746828985414379441575898796385997569693195336692250648965657867264080770042522752055054652571704928408465337102561456913412574536500919493598948409783107449372109158039145497379299876387781661358519537951855453072786371684039435700082871834714072374351239420398341428568895195720902465446585172556124161850163030077821417696730972727773128940137752567578277307963484274503705922849362658372537427374417877492559729747588517441639039242797389400705357800076723967293436998140176133601864546230981326957878832738083067008628528568207876806348397085827033250593909651465168399382963032595916829132557288925752321101651780196336959098268312708483343512999506302191178277424611686047068301175408925240995825693982496855422958143031555167648756765567769129437243069635445349300209171552078711205750508098142656967343480156464310622749383671646529098206191941878572282741647314398747663413377127633127093903604373443434022894716844560239307362312341836020972550071783939759743346812045890629613883975084822639800867983353072227641651066335224899534560225274115550373990052894408936920690157945919923035957158222097047762024016209555188146436296688836471033776049308212272514092322723537397318215111104364343089703471199363809886045391128889522393858344550068300318760629279113735815264867239015684025041014503235697862037641318538074919381796943311538426516610514037023743856897631637346775265768776534708060859243856441973452452967054706979800165688648010330357964713568128717572272024480063731649955649807923625766656612169244279726822731514952759762489214955923404512744035637633457705988758949305983278535143901351800186773082919743038432086473756201943044963957134714209272388572009964221101261587337840299215385261526613916336124843415707707717975572626518825764591585019645954061147639569427894341880707425200324520094025331870298991192604062442822200590257407447515458547547624758513369826060293050005116504512846266787267822362732402875186226404622327248634244091410186930060097033233080984850693257523525546879307613630633584654826272347578120330080265574982722699641295491615889699866445833805778213147894860827231779508542816657872086331970210745005932536572535455067331759801870928266632707521851631476282322590099669022067454659202224731859521510350779722627719888751811479146164839735701086501439355228720958342470217911544726494078303206199913986825743453134100975036197122983392345019455114716186567126401656098987864657279116459688950588403714307222229496626778728799861684697489622302403473089642672876935993790178237141757447428916265884212459687214105958238891769202421146434700459075971669771522937056346798838240840976236043352096933386608867398634658094823200822822080151073640345923154514035022022806489192113312064844942677345306125394557272210367235279764420901173291736839195018128510563675840002446973110265172246325655562399898664254480384147871209119024683128949439098218696912816896819548170818999183673236986031091666003499914778972097782304022756447111000905451225329483010910962525789505437727334963520325625025944298728282414432753823686628777390136484245205316926186447631234100037971067252052835140206651080005292468962473790545276248858320206587876948756588207951270479040180818599968452329523779838407378600137596965769831481238555542115057882816016118427783520480666302204329034609756307966174228827373262908999735026278696188561429258699503235094324356850183271777067679018338081169173424666198549252303668319857717818623942393878976379408827035645974966025112497968275111586407962059510595153146790217577080643863171263945583146752449154689049660140015102658872391540331095485535859711053873327974402993946658462717472711448483107454415744228479597810076890310154981852018421936793433847310885196199043606733305165226689813270020030119021305214449267285149488568436299959322263311137228744748186979289181619101226053833539482626378437640425486717345291858411361159455633815317977922290998880022220842160801522730772567273491311810947055650854523992995489418723437960617558539618940664403765590198189035530424269315219362801431891406768664191222443900041360133190754875509643202324767808131285632550884360327292102379502049648559763084627241153701031265953659984371095662977583643538094944605001860353509030491626452584123264768495018922082500136109374140454004750874747314941781346161111770621380126195388218536979728580349172919313542991285904259425884553166226448230353662466814412391896972894883634747045947925083392232880979795271456025648889846839426803295982363140627498315732273820101514665614965895313881007208820396018690907680507111676117128801818914370289736621697342598255708760138797029777368355099515067141524824465731207838115378798434838947484019096565817702900171885198893447956273110239922809417522405435560475005521059055246495878835655528787667274528884761576592344904523275962206550580462922907689116038691797485707144852185798033610547535165664124578387368915712728202793900557750263591843389815004346746726373940063543211807372876656219066590468885917049080245706688289122240861939512893428158207598173513022897043006473222368094356076392200303844376154193663188787324360023503440020054109985584346675962149219845119406768813312625982564408221663178351233944074318990844849423112604019826702976590342627472497715834026014258754645154167519403627348547459509472444847744470321517052451172371507038487973184826790414030558282243352944409294008423358409764876252877192781885170656399381026595283535933853254304043579903520100454142532167094246014798922722401452956988426823517708824146556312921752283716485124754801398653534778167912705119762486926309968969925516619552647277759299139973362292529920289686580225402349451497819856016488111811299684592037277016686605084988988959049811998378011461306799529180884160269439842988765979130318049020116131813395495154541534990562116891387371735951360709547271779249825529731247287976128761975559306885153925150496263705650342368164903449863058719097018513511384968978594215829714986857572386430463995746610578309503381336831962393517360636461729828609935171930736629977163964316974648598293579183102973563841221871950062569677153935768275329216707122668248027524862470410056029922581885195824139238613554394027731027151300356736252564733537274625752456694176622648977476782133239429464705490949320366175532380304730116530114979715671267436969283010160000041619928079589602500396173182175550391214077410030484492917218349749315145429490589939657496642105428644338544580667679055921003375436561675238948786484660650280999636808377604369859826818967275465800482937381318958115806792809025254704662022102757959738434977949417084826552506909943220099820053125168029853184863426131326077871871234824758298675626190213816732685458625485117193233420834060608260829382486653183654389773952250876148645742854006179006839001935646439743321011736839427725742312940472932504237478748918591754429157693093779543692757505133494008361521367437827740970277740416676175934652560638763260319778294666654927731273967833473015089012977785499546925422982287239081812398001940059099413744585889278131699697921713256526235678150564466865903788460713174017309005614548424469552552705300508715218156022216069562642552366061090552755145276712644551421244848301050056692913146199472531325298054215390267280225349868866229256075575975572225775222895814088459062217390982388608460994418902399112935655462670508892376182595431478973736501727766510385149800533228094886007572279506327168981136924565786290309014425363078820582277051018054977235674077959646039814038565728127848941434297248604884435742159764731066776232054896106359092610835323837648785239575709162193911565760391417629319129686859836541558481970759897108619775805940809549324247342754705602159612740814146297233113024114614007122343277707529356186991888089874684798698837207117658849990676433533091389930673437771594466328781448675721884653010420558121523199363131494093481588543673969793518804637263868934007398939473747692504494752599307478112577749843784470772188664149640208967341792203578291970367359965609229261683380957410117156415875518344545927579732489637751103975037255388116262081854732954785026467071055105437651809077452987994548550798725068732337472483487576697662089740071828724655269037616716497006678010210122778026305629660410622940842619850762685636022192721090156631927769101339834422063182652672940577904561888155066381335599183839545535091535814394478556857972465510369429074162688921442682484553027744859590944198120507376799898850389385216459885871271597433462802039434965401980547886075777774461853567287285370230300220098860148686242224187024279055102619703119817200087543684156613951841988947873541546550457943127120524443462281293789954417433062096818867141627053261192799537970227449590269090522491756093937486940984122946404767629210020513478458194410709265392851039054588136184259841100040253727241884955286516164601957264529413018389941858497533558370807344927994571955237633992008736006382319343052254579694779759045689413235628260885719568631645121657166719268060297291080552030838470786281749987577910120458716479672657964424665242980194259698761460180851856023637901305971468704533044704712919717381729117107811025720008806509419455180774499635240602664713993983280224853509465497327427100685691081922778122560149561919966770767812875021867657197481210197974889806373300244174894213001459902476468280317016168537042690291777025981708072934756925802041666645381421133368057379550895272564065012134010087553715882705951227304277532665645535227561017112865920442631428613855106435098970995567304699321068125211184170000233050569182378232088869271498414499244451751520065531034303012937612738692845435108946871825206968805083324231749304495074914817417712881971190217191991837948544050805786595794594023067201522978857829951814525320839456919181190871466969690870869077557019084084791772179991327560412870140636757375442174368174244813366213558110015621903154794263907477952682514598045445954550300413001627993049242343963951517596451123122035913408048608420637282345719309436012053432682827687797048442023164334823342397708171787534675961147726392058783814396554297553301050214710112156554251314208529467324920074183261257328098290098119332709098830043855000486559109047151043441347730117209738661329595103817066445522052956355028882230996610680709110288195896163696169224281869463639066648203419483544217530230652442589763290725494131971392101674980135680854338719843832120790212409690317195805196430999794179558228813663304622830525666240324648034292640741897850575025423363158376705651312662144210861069102989175788252564517387578999577346919875082595611309908996519956130749180853890440862247834740173728614071451493551304398215931291636297071372949482746946699806522474704903319189530001151155406852738559865491863313499050263815849167140627368802466276028094517331841388932658952465706719982765854358517016719642384172592201540927492589008966289739768350088668093319607803650497105137221360971586832777652583318678074960443272956454720286183198811549047607894049269522277345085998366936054024804970075060423599904497559526141656081591686922805199101625751957041450316139225587936095811775098754769209701527616816035296145663583618824894302812745575165047972093175796105245933511032991259642583303888618963431288160169960232827374139327944220210184017377133974236421501278403384737219999505735632130180137558632181042579519798457170600199185855608709425214887695028364730389155047833939570570741440510754994216352843252844288413577070520979437246869382810330153147807181536561672488630510826265836035214133445534890230442773981863735687938665091794329609165247347650662838860765052001115482382660504945985833099572069749244778451169342161121888883454811137120100393725586295022798169283697322934575892045824747459605048245120934933823863384041180249006518462927693258405782095926915609748791069904978166689383924924922340876362090052744477129022020460771359124186973814259757031474619148471493904305458139617857057088857637435307468526918517179613911576237455765517263355843685321467469382119100529546973621157560315561685517276297696745578294645591655303032593221613748700617928726786032782658008443292138153224721113729503597238912811941898555880153594213894477375867772703275698533195977979422568945279287639716375640875634676113019837787104295640699470856109042423997416424453273337471595450743518796248171865830659885248509320571116636276478674667775959563256249624338619632663431053527671791083640234423456152076589208819989494938476804731591218227249111297398009684236944084495243961514202482613355327763548285857758716744450497229062589834272606407750405195028554381573808233177996395434309780323840821376347629008895118273532091053251114242617860670902007701189348405200548289420472843615915691736016439752315776300676484885236719839299142297800695547925862947940409219523690423259623999775591306559215942879386319408721592105930592596055258877799600899858039640620689808930631969131946223545341120277356558183596741693985285851937220125957014777204861573342279270836922946828851312851575646156484940196466519701199590965518159630673441072591999976583241060541068283212251664778130145068640506398605074455781455316199609126184635708310111064841187107608560156985658411022203619969986751549919455741877329708403693496812359658403182896477407895111134221154527124611337650963940834582237851443988564855278229049779749078040058664863999305513644420323788991033121721240931167242533276583442254629508241684764119200556721330731785036839325480986547387286354515935529089208926850636689259412176947304790904903407295833283338642294351980025007962075946716126194264287772145654200052426390480177515576141691430716789137167989049722720814327464021872837027126397670368901610693393525665243105384055587468100173097281063371021264198421566223908278866652036521050687814811016886372643066081410931443272451628051191736824405797449172015806507047453626527680327990605364927717956162545223459725234744511853254957638511396614359151897068358308504671336468021588462872771203084371028970168180103770831512467084998878269048452614761241117321532805208516459440322203434793598319867681223017651001000957217908510715693566411923692983800169197780297690963278581182331465941036465137010694620045317290369613291641612459069189081732604504248147247188846460125663420858071243168541282105799052055096095979123716247879892608531425606246490835514899946194931212881141010064061838799870999900408064454513393150200709757714197648274008791022970015932090599432037536334119563577700116966206542387697080044274668555159544233546042859896751197167143948477792481886238999973080020008347352988472850127478040598735934441861059968300677969695685260389785003775769111641269139998797622313762172839556674871609452262843440331503460417459033377231790059439320958769548944168482676674258061490893570637629689530776988651292501489771337474454084399009770855047775442533758741290329858599422169408949173046163378743778969468042776301524670470487789286105406572741140986082597809465860383988735487253624458625985099517126646838165537626315714225131010643375422175613029247702861906990495049764560753274932671924423940368360271823449184989720933668919428438931523668075257743894729729909017813126069890850703889819267737055637464647332908524464996823067852423257287019376994345280064541958673154385939784696329213811450514413433401613707024404190792896102295159687014488566813531184877485586976169039147057731599906163692062773232762557210470732566311432381004994634594475575840537352383663272785656216732493434233086967505915960257281617574160902924687144022363217572191884268562173736644497724362740374597678240448375426337416787388736257069964668397196511096275820915150636270382987736326980303634105139075491676390907867820363630015330090031874259796634444652294253514220555260219858843894834386480704826227873514850886209875849032696881035109508887957573061574861385354896637897081118655469553119342464329460225537454858294033163248713045970243638677627768104366746478037504530614922430561786524612524476222856330726759612248181749909724102442435950201152714168319752764010913085955781289520063022399177792376623486106667021365904676259366762090073349510513053840015739334898810937807500202640516938902945005911271612608662509272261420358000686373023214540215277758585039479983392041954065498499112227893078594583535023171483276024397394828258868414729543136714374977943335048920780859148649894096321376393110507901370554999227407521858048879125805732529951899017811561434317206448401229127879656791900951777542653851521327706550170384125404329598792504262918299315021271020823215315906019188222891048757232411344182152356043497904105787539092332892441549111579322838036877014540734363275615317146841685424215121316811370293907727630833674056746100156997598160484392673880659317215910877669606319777215937420882589754608763605830123182617264996706117152636681995855742667490803740423233637704937504305654475588818248238539734895862114546527775600543556553305313751723490618384435445996385383521539501130173333999938559819264777091055434092161291147286494493670997426067367400820256275032886381504998905985287081709185746270019571489703039397480207237785948913872100852429609215687777624345140764986290105420695344941766414988147348727495020586995216599067397582157326831751997282374010265453379108816887739978396097408088659475168238986430680646178127014894795557287510585543360311070271910006010349828538223819142834630275935666930344421748168058154895886177123892662349090661438003783131679641426391193976585725205275925882862057215105434344149374508380481426796219520201542377792233510867353943749974904975327573903353510453657269894312658169495457708919304759096252815879270684534072036194231435856054348549139695004081654723997724931076489754404138115902484478492506325370633384549200948041789337905938652500205633751576390760238309434240241261987765769627371470421990272391757873952980341663321373647924089974483609893383047425725153775129860720643472574399677291429527835578566712642785399465579313194615681089364994456219324753582347021206452889227973153505586460730494540640540141249901929109624975354536743513434415883164965346799366648512511058271243943790018460876099895629030639639219429357318787212291448261721758159640851398528969196452506696153299541112869403569176089402110859744648455685642144901460019016902316141235165461389446584381012324382833122405716304271289644761804381288285959744790850939929272038897982428695968575108804733751140552269370867618818641574610357544613649076527068997411936702629817370101403779923788904812767577729390044943427603508340461792477145603294496009450768788038773597702127570325141130243743245873568502881842768745964882501512124048805211831010195850342790917744727226888169862379649680325538770838364806582776850501215424741426540909971928157156749823235699529891890971370006935927197865067916454491855960823324488674733587138937738771687001907338142558318899212489088488963936276908773863183561934497257065687438947346296513397059547958825172575489032003219587024182825153581236364057420379739667892284620402148538244929523142889648193357402208436685464217499627297646568333650469147541836973475487498443192272589693666400159378426050662983472376033915852885640474660216620907655579345599118789192680204926115187358036223585511164299698512202563677069436017422800634673000728560742343818886027769466263011580614251613047793709121823617137812797976502755818071972319966011536016310209274947408949803874132357568931563697075140458177253271809140102516683166859017450227117228460174336911727112906748750779098360381172869688623155509198310406253871506549812305511475133779422226809392833709914179949045497794547761166210741717497753429500280592845538931174669515493288225911568631138125225727996103355376225627471193712381097293876034578451768077204341518783411347885579740341954431266385844157317312783331657267557526584807257004837112965837864885629177060329010039036209474512803766079700695310180066044304398382249309719050100656941589615863799745858590113608112938328511841011457304701031023570925492310377385803297647279395030220378801308757825309635410691318701371888971354370390165148396186788683749037154221979934908526249341223314928304454469161054424081611432346321524097217143564406800031641637310214127827351413177214411272821184240700446684238536424526319272399328346261292457681531207843824150443727754074804217189000315722258204268607397414022387324823471354552665191231074261771873467423671310008633683094258031865381984993760056281718877222017500119787832761732734520322076011367275449083707590725034502170146577802339231839320815772917179979633225573990363657261214297248657391426124620724654443288189854664194315459381607096831946535384265860571853379896969405999191780426241625959687630276919981512343053827575099004077517495704101697701755828302622554485367862690228352176059198749922469237332932260291122897976458265235938876318348503455158987256620631569496325613391324304289463173769521224819441652560833027828276178624806104733095906246592237078503634549700412622900487829849098777800045344976219886259941271038497026124978747168236195282280703454229081583575694684910672370419400537153183764635786198408713914869401027734595826973738444146076487994099581768808922870003555013984606990574822939967727598492482150859959779993210566633952448010284499531732536259200086403348178842582680838290156025440811489915404129495352772134858095679283393539535491725475054346353424616882863276541126113318053395477569066570112015600997604206378788986376727825932384337521747636053248823918394162689013269125055964844223507422633433935793844909723481930931791140667390567631609499844945638709231417513892229102760129041687595783203110213572686354346522190717903753044003046672221527998860688534871765234305144370267814985078923449363194086443675029953992507266157283429232650522698828013393515746243834498236639535700921621571182316892963410421488956576507507210956936066250906862941676995332119492103363084370173736429828156059328407950111211456581076036447491773980823502269594465750116932922997315117332415078767889907871068136162717513392439857235437569060507253250421754286775934544975646057949090729363184567522082399866028964855825938540338232433287840320993143886378578574961688404801270308089620535262063535850452542257014621182938643259714526861179602836231709856832573221707720484867834356205450233097311090168841826304693473328151044865616483127942124226970527796368779553592806983333747227960201210618019755745839610294848871792644299958732838245903962612708106555729885063298170771810917100818795367288276531810145526897829441317399208470379953754036778699151237988397197942139930356828320135245003039388885270148077634471522390009165757390826068954633830232513924847444521533323696051729207274319971156625592417049755941803981557402188949833460623379778330621425916784206359572500193517068409846525809448352341656737849446388283640030736870017252811185382972166750445380810530178571084438556291922372883904313586312181970754874046563415319021817615240518543891083448608945003702506396840484125017693095266987935419167740873866948169606629543730987775886905465761487545430773463805339571408534460219784435906510813512971412633421386483626285771184336512871371275257405368914457675824527130694421947922098395113096005373358309909111449486317471305533012156439043402772229813777381266623149750620318568988134914334188502700586047707243310460559934579951932547443613622434244206259523638981267101811153516235732025501216971642768958831197986239272050302344437139479781568633877912923331508860769434575955491496609361223449416864777064514130647815822641333104998620859745348935099971334705981584059395692395588332491282675379559339545719477999911529503281091112851021362966923863000885339746176884774342673615754154384629803772973866279882212197017963152965651795108292816625781040013408131421525286374625827417235039622142216957536779174029493946496191084965483738693748957511457470032578332693324354032483956546938126230615976559037433272267533461581665457551870179931573298112835841177443083965053339911455241558388544877541878268678042058920872886472201436540231395977104956681490564381864011349371247082457211981112214778099352074596557248271955324788373192861567484860925269766910851434195607640357628571149604834465200360926617726051674065161156087933873839268057035877961910961031459077959257207536339091353961565692249860814096931712447729720120446544926234335465406044229610765034868194612903933733517503151813417374776356077889376193659302675659927314782992351710168957480875146948125933216552288893749643948774152436898826310741742406540572779107452535223987915658444141301293377127723891964984560252245588875858475791642774848306120272585559112594465457249498438838012518528136933575075852918810686808127724072224747706696215473686215194943915917316042355460381632795380698153627197630712885329652814187363176473297238681312481897266299879216273787111421434505941969614802418549014936383652074157355019728799405338941123767415071990819426500917964705524887819506552250863328535928460426500399783125225947824887982369266032864845145964295919414155484254297763055455418783533522760459461078708938934069913966972179230232008068918369593924977784475238738280864090310973335520978392435477012090556559519854499475016592949921990227980673929723257703077298925736012084959046605330495006895785146508796836043807218738452699666639130904177594916625077250083781153075657217093398918917125099737556432838285095916132838948454614170388472551717121023242817471743223349562545020708619135117791923029491348698071789664460020391608590663001685606652308420625121448036968552583485280812386961447110682513521787101296503476032083794374015491888265320111462049348186845088038321480377651080157444965146536488306906247921279157456557640063206439881566862112492581059134832210072482132349859710340171376830434909649546372181599430858698417492520251985011322697673906149532569564970402126589079939802879099397097473540957161470411390174087319552861212910288490115709043048557620558699258453713125805695499683643995065649546113573023710928945493588991602524612623431921979348044429271458904179693936877719500613413788730161387076284147204516331530450174192703983560750552925000745354594149859635626342203866327753792282779116905164336698071249806045850459765289339173937780623756121723186231595389650796974768164186615602800616739482469946158237584664045003797548756809660827101638027443473238391155656043785419078233886254731842506041874133272412209533170767702352459566098750826355098402794608151111125256079841501999439413985087061250462492582484919657771552426532500847890563204355429411799860666612990442750460664442777989389808355048312682819836335640783067484604359249711579832274700066719374987274089980893647518026862275493623144421492437142704963532643573450431014159387970778830385625489760152183315475552454053969352791507783341975154216180425155760142034058199264509478152661585490311967301169241716476213368977262623956588109404288718981491213235136289020979352077720732362199336640446359767224545645446294004141317387333454339842902521108086965864369911295567546653291542248122786343292368580928741113435580365382674803435840592141539172031533713855757862725614770180658769263404884426187370637208968060344829162256197888916430278075200987493998607751325263861228891760023260513449194574274235994375391451728311417541491296216301910554828998341130493642331152388256113032202465615875134601694237476788092124998283518608239876447699282849039217569057141460482542095359015513812884728221467860638229152695453769846474580681509032973626305537188901534036981100464735531483698060503869314591248597609259166133667042296330990035823246620765368872403780204253119504261649844876265173306907932318535808415823400369417049734231495253722226684837214992184209292472516710591408394755573433595070472056761439753620552402005092994577681045125222302144634631608145765928447842374732134880985440786206285022483414259201767183347781535763155340167834149379803009739649571913659013544983610712058623114680751977750752529784286316084880463636301675817746735904374922157871656095693195002128532757610929313337630996186326421600863753570158046754301475513970256398940024094286635992253958100641658954497876493687632772079639208687058263027956617458696688968894137194803801510816737063058561584368446450502135448283777589879494317966145542834422371723021927273047012450659000246956017844099793930770462751378315808852347309455130571393785846512264771165557988772664165123150101286634152297255644227124698417857809025437833928595835963835832359905470377840926038373369310420354919736145938983960747573033602553487038553255898479724624723443073228503939660248538970293302639760330693232036629197955705896208746336029447807291230659472444973915175535895164430354043242046925858859138626020957567899921034204052272620233144134735134904679487612751000925156924201137980506366836552524144134565839062636946777012350511690259214944081278864307238677407367623975525605074717338395562695968281475684178816951604873763445272754942678104023175273033078807126997576109993364302044367924547281839153090985981347671562562805919868814495313599151772135312699285756618261032407012991339133942071171992752681137190090197152463613853480066228621635651642794062159345332649677411436072163130123719340025855988785074634587928113246302744706419671788364789525099561481687572286030646282316659800843390589785938940214831817902411773379979373744670383620568257297062518872167650706504284031252495725643715579379545974190718066910493704715731379905215113504834721999992119088882187937851456170400015642942411743249993732360370313554242822344965467817689207101388629717209537081290929209401566754310102901227762417748709360538508249407523441183114710926736704560989695480092976678844918482369094773164450774096827833222031410381788687892027610833509114772828762760218244516239259456982191150561905309365006527310513542301319112231811149643891986298504621790703076187084036049352366272642176341334193081148983667955585828747694144254706674740026463873371099216602843704017635082687322127416849322631475178776165279730975895699228799650478622836333839872729881325139901111456375716238074320392597606636527349626311815228731632937412901474201676882989141497722929241909428210231906446761996074309749418412670230639217945495820131079216932072902555369600913461404331900909502777004619516137847756628610754421849785338355738035543659750339587034630647600394211276379058278015959982945285787531538218314981589442520836315756243032033118072273098416887665258534143047499039885566934727951888330820540045481678018357830212295004606283635552655175701984883760410198996433150749594005827541636883269774414253162262351648421063921256911623369635411346631080745024053408299159420749157138206953710710088507073676427599661267385903033041402230500711288075714590503032745331078448313443518410634810044409278466314119425106123624126386782838621995770045976412207440907886165286853698777950048707966362264832734489381562297060248215761084608935601338372786689148207280370455767972973095699904747664295187456518893903529032318390223336643893116157183607206090087014160292197723498558224236498439281661388863649096611273162818611191212834412002188876881216784149093829739642434772281128528436425963519400004258158510634881268654291300267251208226581544220499994831553947667743467105760686840824255762629815735260569901715710564365169205468467744083602186456332503661334299411926580346887632588619565846797451647620455764865221685648173546510930358827688683197220190187207272001317993025325619563638983129694291081359869649766663033849114070197567250620917738804533210080620350384569578799812611805602774067735701031361624107881040177286962340301411972474769450428344030827734518376982805266145811325096525099317443271489099418612050488589446476452257666238544352874147160659943719060544364800819751589311221708796127146657398936420836505459164225122196388558413780714922758793094048568591342536871577551597145763148550618722084938682920031003228997240201272994455585045554528275625464076327922914655269336962190363755763693418431505930055533683911733753643926624553094339181794810390634240080251566206970218482934430272481655814579930834899270249644481051963766965730071078373799378236663553372026277849812462804092530319186266630626949162181297006495372527624741442771342024001684371071233871536557547276714937409631483794356932196064563569696170706477276430248460116306115494903950557289781284390439812484137667110907068855550170792003865904012986194480683897809378113881740744869853818742556307735066311097823837973848566740662522950765299568809550579731336239762731890187669515615650496587034043682582191588796155821315769811608175754501752814344451670421331583261488629576196639483777222310014459653614282435704685920755689832105044546841014108802292675951687242402099799536412775192856842249436608890337968488968348301742694649664145057167947316275857112612813740785968282186068075207476662878670394542189062544339656229830984807093683665240080437251218068362038740531987308491355415865294931606993083271069600365259580378934789269192170780134406700300933996385845579397987701232528821887843294465863671597838074386537438805249279525823071640892182058387956254130782040403810107496901373829607418633836697426660441887476411452986878252372151785598708103963953121232293661670716174966218997167407875904899685608963542959432891469320712996714342765190853828989354428316080367939269698544607031991417174173249448876561859361311125077005111049559236067080059510191083161888975035900249881104118768241912872279162804229859534448886249141074174102614191250409896114453017007777416466588954964558247326390341993716685167187258308298608519183805023244085358564385909811999166366101518808331184765190757587070475604640962058864799349480922170514089558598618037767023092508290768796793730202218361581072228962617462341135769678621208747872651104739908726780925224865927269061049022234447713566814308718872329416174299216658786845188431631487565812690661690265464850747439357127271035836306752584533615769857697735458124087516080913825783140538247639248201361491629082746194810650235949301451659871252332108786131208392542178034220132676326956353102650647097976498246148767994027821055894399877947861575409622956008675423117966812912520554150804033500528393070039381643990245880760115473897711291170908610159874633650735480870680149755244081326666116342100600661773950924288877450621960195665013172337141578618776809195795760136133364979576705763658590535253965743763254817229182595153950040549193972409284117791583026223869467125518514117614938547302491362125108733154224865104092523276647436900761336016710746726699593363099591971538189169233670946782136847034258163811348077708881598444839308465718202658402096131085869337445303140568494130401130839672154464781573782999596084405270463615156234887989134359514450260774645987520474189514743231870840044712068607764793647016736081549840862497491453951551552223472575568917653029892745234094360647249954707707292764731148128225740700932902455386199938844104178635094637828725168525319648560446309795456110491445147353289542375542475441311624514027102088993321264816196182297281593319169345970283767395139281828232018731556965489705596585719887607379337548818570484083459730315158168164897604482331255159655858789631820545805150662752421682004435522042005897224644182848115659040882386134284542690667541456141180169908510570731614013274133772239504063474346943588902552566812355865169845901045524038357759838257166344688891393070123253122025622076838301942985365752553260133685529125946438017336378058621749068506390081395706265644723902007714537647545290185893554566582561551647686144183942384750199685454609142318837138915265406318386707711598365368209639314018485077223008163794902856879317913169306958249207993747955568915233874909645020021847881490504178715740417251340805328165415659989051391882033161395532506948809154569842389512502510101032582579700490277636013739319965113394171129621432253506400596057688694332771472483232787444059345305533858793897210735735429891128590281150341118754840434579821115893655493203477470115704065155698291127652532589088265755073622570862162165334167145281417406765955957393374471610759803376448434972726782035459698770081617334378404114664249644091380321864693736117754412666160140694153482689138849446233884564225503885978577846570871277419192239692311099516327466815024258488879824640454454235975406235045928728512922577896830404407051544098785257307373102628546401033880629473515131903298399492396349962407276699473932742435333552623891374330974042133570587941887257681721910832215269907633893001740425883940035055002560022898464010572014623969374415192148351838717755410822250023969112562186623442362837803436415324404361314715672439041451353275220397947258908167575089601299703507192813718679039332565716143732926617534015113978881246285295306752175752505763595732139198346682236527107872198709930678159773850519269002672107368238462885407711178409981761272509034615371256477082933745092893040142613554971816561405023488208378495065745330339185747764793488101153602468788184635590093699953974121634965842765162643248906650977552528103559848951934055199999749894388946165872402258990241099492344023434344139442625100775388245648936231707297804400877401374950477913588850104984596764076497958391243538819501597966915816548869842199137583726992131180893260086849315179563352100229765463975579608227852183209434227946744524412304447757834855218669969407221231553610363077941451138431524121882097941494751039604740249250262540210870372219625625706254099990031680968699664847887468027461035572685264803721229475997991064431223024069899933009264781456568801989388098278312696429454444947629495621254375618114529595310714429102905476292826452811102544191341834051734395569193997241255266603449985931655242440732062020984711308661826301412929980175065279415266076283193532808492427126461260237885298458245069737915644395037252967901645882872608207878604138342224117892000432736982591963154277360104091252672301867553789189152531920393507922173881297333703801750214433121921168735183832906182792291405826554729600671629141867730824291824310067404841962166001720054950791113250684724501545917131988568263893214585846416154783989420876116109984322716316788336574050851962614016746761751642719038951781636232864642479502883898703218808231710344589490642780595559204136470757408936506693953582392246141867104902962576613823103841210285516148275310557953168392490285034134105144022338356183989602911890542847419506122963218111302912717419668875649550563599882102973860325405191149773859280326023615271588978608130794952933388101735497851253379920340088449116220752301587956209505130218983236395428278564112097312693843548652282397899796598061890729686660357911505734400740692822540397374141226342042639584827641412560059427205668530353226073090608787315026137047227280749689323454950405651436513313017977509823981251025108989682440488542977079825712408522885354812884554798082492224532701495915271801494276364595317817718083908515722626045941107063242342923521552516464077668172388374081180932651031829597907028955620937563716422155344203912186402889866772944912754592317075090495721016367428092923861642049696507613854961168422767428455904152392343817273732191468150656924544530074178263772078483016551158130780739511653040170706853835606632967944986936506678572356235794101468350587064117248503804088816373442434048388441565099264373666857465627252108098484706335153902824992390786511315841602387157037794816743380699105136164266407707096820729204614883182427497780243322908578307423738805453008057256370915485212540340100407526919466161975440591358997686802376317364065693508286438300817337468950899661363869161513121820625021973903333213379194824896604118132317968664414759746773301947737732938394153022423963027174784635432036299967333968483469219431810464094890930013296448925605868573825900532052201050257070646600362248397565885757546766069212622344836516970606664654958338212916861418733229459845677084432018597856805439638446051508222091038007357049348780902751224379957701467610533279402336336633133732283039049098251019604524885928960086143103989382376254890641291732479803352270764151977829570067294130759339527791333209570637426421777710503914022643920004356975825857527381352548543400371336779589656629598400944187256153174153146557857615506928652643427243433178405976099312849152843051683109281826318189857509737715741406837547312797620851618188682041154478981508142705529253187088277766884638210786855311780714458166376958471156307316255470208926272630542741524489811513017705565633501333555361778247646352800164472114868263672029458033208751002018850430316810509391556158461458860086768944606230257744760534490503494954419373729952654729471204928437177511172859158587305269892792341888463378035268459108612412438060569162861912126895961202322462883274520730211163504275242543881453957924042623186596256562977643106250061095440596868366805525253760953468068615472751460790011880360202778079351126642220518738288277988689090872453809422707521789175279120929210222130400196137017396068034561845195305519901446495878369001853912767566582362596779310321672246879756947128520791604318153472393411499555337935255907667944578466165747492472922970239135491360885354459260691610733779313416288388857374341002351330549221992162167453978181461685150269204135267855142785809066524645106485919012136157469655412544792695893359496131664651181544925343399220674431572426793038054249665425235740222418398600157409730017138624029891613648407675115300239622472365664352566005994186135255106665881185857716541268128911837334088079934669802486770661798603744472171876154553526816826444886066523047817875381196387734336109816358926918967039622185479249150797085395380543099766883476744161474640145137820300535306592592987285354548114671154045160667641649160379538556595101803862651772276780599173657280541856331012075296851021115059324028674165597645206848642191564770536774200958358298197132692944261318468132000279464447066785348249667279298817966599576481582078207206600924216603174171002225842796783848242905237264919488697434768901222073110615834954831320730678804662482137505262612298959043125343502176675272473968295056702448296183743194427584887081090775687648246869575167848341692140745601437635243364786150621123632069524818616651233223765984954617519465320156860249745533959270387540852660101314698820987023385514872324523434625758373997766773651934252466351885290771009602613280085491377900052838516611942150659431653685979396411716143957347930828447133855199149381995507351469125785322676705700001285487699462725303426035067472853973391041128517052744309539993337554712452854306078678430460618390901377985604559369184419591555801966561129851510337292922242785097267205138421655079785011764270171697429198684734766261512987511064149603116260783923193304031640192562601015898245871433140528492850423002494472990560273658914851803892296483487629387199772079022216068037514957553882088521075203014235712375900546240433017538715682810154361311581546787717349404753760274433259865648298701097590499270853500326934164172305472544557327519152747073379543355720904795832301660212508793040057273605033503824575818524155174808445717957967356130100942499439568526704734232189993931210317913386129316886576772846371687011330922608999605310805551623961181136985740686473581921089533702910489573642144937585671201373057302098558001870559728668781348880489362431336477414754264860039687085716178498871451056704398194325012062179195042234302870178846783761103275934066802780904764771853927075826648804977401941124039564257220995621608306664666083721330722891703827278346780314856382760230310754870717217209290116254105816630769847275851198991746794827109177219040688000075610277204133719204119616690539296379356747425556412847955974704100963839087080949664829172923875755090606503349171583368219485108944090990919750261733106741666442030096536802252386146754487049317895707830442828727822535384447669252417823951759768767572668641578328121826326079965944463937820868110952242527208929960479612636273240803955630913571053744055800943697156327562252842647941409367915310099497472312687862467248028087909544718503305478112534522677474766041790892217954515027825135634935935953939114555368190684361983316953105523418601827091088922314719245042948030356203164491535322038359497584299350473096247729180077467096582366518656967778097059891842457513731554674429591890159408099716968180603215167486804670793231503706534756762019413317425982460929341152509426701620969761873960655894972999223422135771218390816219236719316691281136229934826229826299796450371289076242278369154084211704433469021412130245605893738834538839960077034232566667260083114416663341275130860377609460467274500779406552729720052111476776105548708301519226866459179286817694656525795924287128168619601992065711459674490097246555880639849428279543701445561726243103851352714615992910709441026288533301202761765179139117727765637676524081052309150945366301912993650728233888455591609305733370715329319927993168800119959794143195714107987047332206702993135866905153845259558340827994557013431724665271572817281715547249567074126636705236549687679310923071680737878404071093690417089462340171949196838602527570324165867814304807118283031396057664120884464122446643248178789232098167188021748061429367606514293496937031313008305266521785517519584036099819026173173589830631630967448009457897354097456923502892307265063308442516923205277724394022554991317537231522215617170987585758983313971342256572670216618470042421073118211690460171033781613349455687352629615882101703346913715042887166940416178251956745491945697607751714996000509850458660195699044412094168988777314133902945598754231431907333452794817261894765574093595015617760075122452198642102259434653072254932440496526599210818620660595737083123154691958145281169924095431403297892894599562755362221091869466478343021771944401867398745281554786615670996344604075362720038616045103436614165778160751246007724437707877100536955522586065981392223303423660185045454966221200130311167586720295122468723041437821117011339138168991009251421014583830393538801647004962019195396060911076268907990949218429057016982134387189201700868106491463405422890002981120587949170636754728946046740560839600091103059708985412406355965698833705313417970498644894214273632963447712611556150592197017075309873641564974388974190054799660697216528933691439528948998912858989652786029277532967184641742198287250008221882076848923186476001197795588616439959516342592925020017998231487868607348076170445081110079032898816917961128823633035645608205697330020555503666141435286039414873375969736494658033082840096176996675814722493924936979922818945067133391421712218598433520172741132805338944690376078671284229434008446393887460044566176698143227878734871351899326229439246781856992993803014652242087202630201447292266280099881148183205023844181415806739826285122097306765408515028944586063883456408369750781927645856000142649965969222278816919452217074475878089329114437377084989927896017807930181413610233802016458836015140056749604174696151531717313903018487948454361180905613140459616182970932864704366936731686311811950733167070530146780720073865826534603488652062616557672885728609953209294403123706894560681958551383214967194085547776984403541112945921882737841970595056348899725872739838905134159296287434716765852150109202252535173122725999430671904704898322353771609891595015625905722569395122013648050815757542218858865542651582416724082214578660543181411733528046194708174485340368020710201209317576528820695809953802295123611105968969117665508815699086545154186509368745949985588319222324342922194110148079649050387328035186686205829824398969947865307800905376772260665889990705652532660950394532905976050366053413761428390996231485236475173112115232021491458266040428877384256700548628707748517730921168557195164330025555373255694353072293413305098518323106695943050904524001288218897627486283082390687822837149584724555660251796290028082543839789519365910807057514407537456535585124787981099351741228439164390262268201786392195730144226981214174573404649133026955540683665955100703022409301386639079964384213565702113813332309111956074866160977999219126170427580508616128147811368448917733454222058556362002789891440848565002851398536799661318923209690361051923695561247373507192540385452721340601017969625986727728950461114178507251014217972468115099234044267244749918121057974544215871226328903091297444300272940910955977291932173132249833940066703580530602256135021816311038665302085389909777209653523968997516884026306063231749548630934927677124774512842782397828007294565526939424643891966006629304998579612644964706262557454205942193756606879828707646249400622894491920146562548942739674348083709741837271538628936087251964830549527133084453676729314066519000962915639957238224291859650807019154717125830137466222812076632661157799416389173504884444302431670265051692133601471000679919926414612944938816963487865673349422844870291512775683945681614013333583509776295093363026378166381071989853010301635957680828807867207259149234479950132368017606667621497183586936595913885471801865601138146335797376436630934888577447543787566784430132553670238954388107318746748543229511133795544555191643539227229746627780807598003974004284087777990434494164031257420077178458187405910045084268059567748958181986558609625615756959114136172039411624391500316880568500307204982825101330540824675550083318928386178235287748578231043602159062374581261543800334886723825546178523453616801720917485468438843999539055737077399022840271627555547231082279500676466446018109968528971124701203533638840803824146116312937046752137173855864443933219426473355396779999296254827236258649485309133996984640317017109596078869952196526024516878314100824092611836572139650832232621422552575110722278721479987461506454125285775899907986886271318276065781768344890901416538973591214953457615902568752522578984311425244130244448758182234086403158466705693669044241866503194492418129004462367653590191001755325515318709846708790221393574700725229055181195618899471199354405187855762140069636344861128887493901099716024610522042975043435404720788498008402705395396944624881107771735865086279253879636439125782303914532952624335241027759634945142968133654316837857874869313535417865080686441202339792982594125878962664721778050324983097118625923377864564065768110991890594506267391264260966150548789245147052578453631760066227721672879661758409300442451892782623608232116129619583827897665530167408352627016995987705140937317571008297918833867562087395335561659105077357573315937077764712953219849279513355113896149343225138757645310760000296405153923331861719755867479813217650780671011398128781107111922331615807801488313320293026624209324335551262794059245542809669369986191589704238137633051728554309330797842369574875323588167274907597615647985026814746437738494295653015440589529714112074089799397098915793816260909627836269008144813766794266983709576744182166575142143623264714490869605148724191006166188210235600235520923303500947835703551503669242605013386289525769939256946757520119400024819292032986755446716233202900836714781011613099913280143817737128135975686531653104089951739560281939187270342517600439254793792320192094822296577433978948645229300888107924809965903872223056270843644857044723386498830579440388174588878645903043382130313166775919156607855948770987842218575555913455118337472952323427976004060358131777981574409423601701320058629433957640852668574880684732707883234252595316791792601252601942549494209709772715645398233968350199559900416001027193167160464332580666991041578593994011256057159471933735994446332849580145246406006672660866799887752230102403066715068239017509887343319783480244249756647685035677956207990067664689023997752703011814763223166781330320980537939852907426589552314350616194124123934398991764684795016841855980465657530186040770339886738349138232690409470092812114495228012615150411739950765593535281671350230812207744022495309277863713434698691728780020290268208789505689914161505836568459303220773903737967885646976081740036631642577500644576717163806709903582876439394925711587425898604664037435745681465610615602706943773696037319694190878399243791268142095146425228781875643934902004055494122769217882509336007743198159560265793847046197186053763346882452785295545434392716751248024606340352497235881402914916440299279631874123652300446094902831849818033436178984020298939179986239533595428388692418063297096625665012809623460448646946127476045856594445682902939615642480012070646841249031356213300728065451561030922474354810208165749785224239182465339652461803699163003926196393866515832633446787679134468824648849893274007348332302133794644848624376118590973317770930979107087188513059427174807922015913099232883791386072700174555421683829155673678935291155058334376959913730315957397773893028715220937423634032579863751796941614659404626900770721720929180283341145031532936796710120256810380039745091852538129949361960556631896604415006289844576758879763864340121853290211809588656702544115317403380702752436640839918175705457714768908686551674964606250430579537852462434210821666507935728386401199308030075454519889193398004406021217802913460315883967151305958214567414901865461557467436458311349856037757963988058634752692119523614719683027078391014276739147540007177628671778611013916181833101109914651154388549022037685342509238282344133522099072800962238665957282408574227961954741166128608841383325801739679607485289230523465095113914879938518142822097085025760942355576358599273927293994681388881353453688069366556423353770476720908534708432594791666901084872049240949627180284512905657614948321484926859277797961610525295311056997122223486408363155323305861354217830317489618875135892121518027404995137734932011374031485440393494560414909230080942584542405889849034593163277979204918798615062463263658401446274570488221517066078593141658739864240656486235399354627529397690050535222728815839944955582500044687214032919577693583752530371638239401996795762956859930929761415210149542563412983438505820561137011397706714656648251407888933664719618111988111249249273455274454585987996656003563718850500341223445911440460532999850038761611984273156406599858805251014007907178710101223266939924744922769840653613670119861607561318634907207203414566633777344658382340980808453898826670470848990571719118380195419393835328255175234447707680217166904043512285727020573692276547863101889816722073816389467953259265757827918974168988488133725721669487772082421585151413624577898350935496695101490507511683655495937891111046971654727444026416170924305498740332054435840271877952200382790869860465944743558655021151532960103914577227735194501546473454760752392967883513628193599891673191633739581245363043766788274930988602262767493002308641679474090837403652363032335029495885059934231959093912666281212902406933713944566571818377937047837263014014008764394445051191516950360497957479239892361405571881462609278999897192503459269465982862618789727325030145283892022187588801517628385552733124695633665625971107742880334861750814006629268999094117648177278990882666608214680387635624107170008424873782105680877579964068038481962451720591778131907287890682474126429555864099717964513298787657770953450521702448290665470440828255116206623337890801654997719495192952277381346253767168672415776388543032582597373914521859677954021044501242653209497439232459780793186651567275064951674194389858986606017741553665492210170444903377644733458718188780384412133294563731075101036123285086212301837412429574892386101888464298602045230705759679732608328050774238910463940372354510113138556293087629443033423554784851431811494532065287722404216554213487535582193178414508378474363967025041241077732173606367147335172644361989847534722676952193369303966160211891547632910114240859324785413637456465576648057845569470491533404741685735989267967744641835107874861148386072457340805614708180436574845025028531172196899710303419789752627778915697094478589838360218362872297269934004616339321781534120150025038372700996507559030745156983090460028420761740739241782902455270322842849603902190090912598112300740794642488848273862244266417190083156882377622465682420980764843644130159303570857695114868291071485376809529571504033320481601209513271359217169329488710360155078765130577938727511395769148645108920617266454019873117634455860406518462800771809212270561171125585371610584359518251654116725807902024505545703475850516551634484193054157247254149627606106454691974570011268819823927942788782055589984870583693777053157785929297662125298587350894683166870162486900662647895621383280627237356288274755169874615631908434562368053137441892504451546074725268371265577278270785096127883832544856488228650573884332275077302557370390342000032477926967827141383013528515761024076590322477526368555068158584725976487559122727456268785310945774620759951104431599674760907357098117544362866662940121469749393388122538567802938694654580220424647557938502494121517881668351831553663053518041124051981967527771128750072567233182729523390882335547355764686044291395029019112674334897459409094973642215778010122105808303308145595505520664846261114487855337723157165970496368076187638110644777291166009634098450500405324805524884856514376566608692095081522360757360355212613212134541288444757030521418402217100352227621988189537179870602643040620621941251539307195187102899349228104174668128413976344565238299996044005840020419022157553237163553298130541291171143337729263562443281486624227911661191312043500349833555017364951739907401075461781438640052914322641396418728628850847109977609605502134158490811200738335226142179814085441723185774038356288242341097258392302768576034057251447186098699698093563169801618209646268233770618463989122083633536432404377991593907422234490950016947490393738485908358278353657082268649935073863893702794047616827489978033815006680242625840393844041281443242509203155790507713283852840176934311380314780843520971921994579779872515660832653084549735382189377789666316764823569989855232270480846963154575412113711685742647963646884707772057369473473369412145145900674504814307621160028316256222499432213674749548762043972343189493702770554644116609926069762475257401067257438198730388276281611097168940453594260583115333597586681403878418427120914943693104734154742663291404520048927749741859103837897890898758847562067854163986815961761143570740096584963002761479693609093250580051950799173433721447544975800682291464682269582301800825562790499257782520715982276678320839728331491253191321701729022884727292003724436505715217041742671198938505090816223327801816249803741407188028158428232909843275227855491332736876223250229551575449262930065282210512141984657165535644193350885526351515409697028939194187994281523868920714446118754401547401225227178730093066508140720366565251207257905686088204773123847358550805067186912052179391022370608800593539424144419399440836381602844589833042600931421634139572137793319796095751222953575183062271622060109756589907630105661674113527644970103994073231233112828689596108183675926468720125941670471987173194755806689049205137418134786545011145544015744613952133512530409527682776507611733012968704287157582471832755672907762025429589632115576843037897262561965113603274562988714744261503997664007897202304865928371592361138487011534170697831351827840199772049501614484215440499602157621704860523216820125238311634626137690874000273523353772723750888779556092793132257736806077869787549843438215665117092348957684722060867466639949768100990459606425665339632012568456862498369880768528604748181416310334631567309094688386294628573919711365855799380801024535710195708906987847437762303865499886828882204566783160392022234165971351433525790740659408024258010197524370470698994409291701150276492393766071049976356622681947220296464629040295389728818498331204461525790757331572145017012742588537872997117669794657677480985636124705236288086795998694679208388125433131150043286479849024283702733012533775486535217920613958637360329966542257477451509815820978235335054487780270003899470049412485192061706359451580964539944171117148032685619954825823690102611151701658765369857624787202661538524131558965157570333063811643318143679872960465700512470024312293772492802546371038492341351232836229755503703056783292799912315908416723536480390650097015093953239108580451557386335085439003332667582748246609781672113713027429536876638259259168840137339984519551792306666070110549633753852688724954498114596054322329855649828384269482347105044539356464781428123253275021072289627694023576497874774715076986399638635751636317580592901640767513349514455704044714739662378123413304538475116330882363645552906847365745712548036487570009413088899542878808605377828449049753155594167964862277659298526422201368128054277689215574911903564343584057206677217131377301852544300357563034321982249311897777505490128689698014038292338416563139699276376440458547741379803792077340243413731858732744840812791615671903662762905780096052084018670271290136902698091108526313524247411677870128659326227269000121921515857357557483750483432820218531078356314669976204526990174979615244349691227098837062015730473860037187435334118619604915427889758064146675163931921248471999088452984862488165610925016759915123990543959255209989266792891084417129720221388531711065333815893555682455287106121810450508678830836391989646314856586539902025372964030873939095506113157020102255082565655860115600690245367810615141809394475716518053957642834688389261489784323206243483355665507962800250641509992835357726080164732805592212237915436538713087616829443356666572035025461678008187992988967311226378879026189301509139315552635017052413199283043157860483878421257807491249781261031493543577602446453369139579033281409939773508610195678273292760942462155271242183660598414739131224341747313008533186721417822322873021213049810590265391469634577074471677584952751117998585563277899728571241529440186702435611470039151662432183371862172758112565931517873998152436004160508889700698395314556393920304059527386774185960744491481813655431671366569618565748868783085466266240544536675169411017175166333917303944594025234521141641352755507814863894484489081175463699830313219223505164562758402780938819891764758971454379600769153958941047200294454051826706463081355044625351881190893983162037406284580974077211626811049092554139326733063548352638796785166667042415121390550198579239764896273216029866898072277120965590937668453590736825183744947486820573117904003255600509907376778748789731475569644142078573595863330539795050336206037696339482924370188636493159186342030747784767687500366932607667071808188991365165814285076522230761629874458782145451889003482062507808105394210189018233636442237142073043987788533521828784592796307874568538042604682355245690561362016245735368865988530080699131708495972556561139597554216370307925097791972589578747285306924924482849525841907048741133407790579588221742227285075995875602145105980257047902418435563830459890408506489070956750977121200284328055484263723638244246156946775458075515878266284121733044026970958398549351992168555809874598091311205986907118116228157921582246781000114370922851534159099943549334588421387792273039310618868173915940496807522602749601915631806630625666183094039329893051234530502947589304583434184371114890395197764364000691477596895660513276116857177385659417852303657445841519758317016992763814902611896852303939693358734856651904057970776661311282848903293012960497769301896805724222914540752614126606138484731601959496339651734252821571763371511886494792851814522004748445970821025736022705284418996990237391759279421417528456779545986623288206981362530803840231017354197261471752145134113266292963945522027201998164078043555308283007733593535968981453147001751725274681904703243851587293470967641704790721134993013602628656530747948074341316327933690169790833250063361016673649127880695876467901804814678407872220999129128705717397900829814031004595952061547783600883383640408229122672395055318096903006369463910523266615157728409063708232686020188732797583314746707793595800617291690535086796133774387795202776838362949927156352959663471888498680541148196257243366425687018960332890905303571978802287408624504423312731298334387657443424358708900263700516706449073952781414748201863987085280816156730557416870234944217429008796026828736522100432635266440232116871867325248387577397617664823187296390120395008175430538810436240597649581606629722076217303886561047759883031234296537622456854381381914700001252826524653961347047324489397017127415185466462121967819739055833680086227078006813862738697764981428755745641151194745387602590496842130983974308312485284038669415366160286424881358221760925886738251972278937521230952122758062787459833345358282310598181042313781465865913925644742201164255424366202384327381858038767181042503528539377025267857545019216451299162203729534253882088732655971089092914955709042689292060537211989919504425442289786188001076319215224210241880922301485675524838399348970158680759411464950522900711105844309689277130120338866677982900568014933283165607474551141763480124254553330161184834400905141846358702178306168425752418521103109345354401125927809865596625358898074127318544519577130678989851322934579914453832107783570973469546868940810700704307222085026428819790780730467673453963825379475412822107483639375632126535337128146750345808277892470604418193608558743865821438794522042080213631384472210672514204575632035421203926844041341320120916246143006943659483224472039897108286375893514996646196750393118992031766075514217970061770225710062337818178610318660905552571593765794264309596856600106425851114751263785425992620280696246453198663246654366218059294572953980859268462923188313416378557163425049268687121825383040384337142248706622220769247628441614326209970411532078409028553711386423807905555237843746534508796893549407806166765140649474017605614907727245182544093821452274892161211964133435097696610141003461785869104451562642897571025365218098442195155264642939457807400157312615947036095731248330592847974816873280493103009110352656628892593626898302934348415007468869672688760536397580576713220762487693085793587107883341660198794078334108023979972046707251471261706448730354786579211004776025541034009546489213384806685849278415969557724143921286089764097007061474924933854855289002777751669068874734129176638735805925778813424710095731815194546371962204312360897027335446801533419557593841773732684977579619440618669916546189405227797878758103843515350489680824542498318547218853144561490742532325978515920324407719021324626628846048444306197162767885518404523512578012478758141059984158961019259575812647103635390588908017892934482051002749487757825218239336686484138582690314902032441666395803047561585065819417020100008438898458253146661799870129973939433842940612283763916838314616289411217014843765407080894121301680022958777334426015854492509261256723268761783506564391240509917076538129886630312851623165603519008753909875315426648929361145590484020266013171253885496627314668009186486027982798405133866033887206620613915622762295768857788626313334436869736286097143050869403695485736043227575452837086112919051855147970702860301164896424091721566265703859192489957996636927483953028374786048921375945134630628253219279211424735141939949653453310384103075545870406596489248872405311980004314371391493289938817393949444051845520808700240922919756728083930311929673607763667116914038349594606301567516885584256442957288784140151278890241552359223116865251825525683428595248010882433742566422930329718757102620415429411407208546736747683007494727706672332779915119847582026701827059340219742794325909538079634046363973551482571640018432748170501243678268676419255232063253852412729688168693975426873663485661729107700659753536753065690912734848345605601188519824593237365524982615201445205934165264080226574557496358242706121781822367930815807962576793347100240702611063173807308278777788170030921902653160716253926783524857854026893268886284072882028929123840543781294158502891491247916495427702911714618597948065336995124224340858338339324273001070219012687023039674463945093836346533209752481068565009865352551749212700277778336139828107720996700107945466354871639316534526606364775434072009230826141537684977389298980118272512503183149336811747489180208649410825873576936502925158603175890956051083611738230176576968615924138036890391646094684352560334856541162926180073372532126448436225584608444578877921171567061860101196375298153089362506239586400710075132743593694102090352778714140847347972264621197300144880038765032834478590114125408950850868719749609981968437940580053356105145149710831077542562172038897460013286223815236239872156577789009713187657103999145376030310620572143865823520060652232591803332616356847946544626855698473778460167108567027718104855710421371267004173792999452380434694527597873189122770166507157349968527123087311603313261488027863251542689513017273148547706784451736492576703100675555162550801421920912761506444997655085088068897255051583295786114019866837746339417263108597798249331268722415499405814617778856105565645048795899493231938189249032862735533733555277022599426616383882345432662938317056146558627400062597808627619782108735834938284736786599459257615982964897427575400827748441649236281111660238023001115924947214264337487943999322008972523716254692490680013730469528359135156477377369017770407512839057511122210685521593309731976603700475094546316057519415505118398860621044686511251655802612608701599479895588953279138901628817442972035545658716409434274272410837117387311320220400909379848808810016193570410546997427158742888707761668833876037322487942058606450994039297664133711516918098178139527968346616240201986552504699431159856211312038965678605880041649100745294012644249442313617943438133039035961562262539772467312556137318927147250004532789859283664166666993263305631352091258987455445977474164293093916667527910002178979604207309375987838044888515537006784294842140240382508916806762118164366944579415102034025293093566834680364280352622719117401534053824366301615815182083845004841155322671255627346703218486019687500303270251836035480504371738159527498383672308503646295835398085749914909285949992247745575391958451900432857715342091487452525926827931623666643090640830107065703453704243325084968315938136437554165472476142946123739839405168996823707373581709668824284461423235242787216420844260131086841902327736326806657503808756450993700330736414994034722251387606035365241549204258573541308445213746149692907815384160468765374121827531013868008836138168326197666669348633957949405691804020647547656809660818018231602572171441509058853842582554089910988088312500265142829083068548844107155211061753524772630275882676920942838329941229791652510399165552268095988281765635201938244204678310691927060256224494829650154704468512210944554560325273002682144002931147453552429935972318535971242731435584575113259031425522857293821549349163226250586136731918136749762787505036663351999178457938372252709654823589399245999737135275243501474802473676945492949338131231589245203083505378918021831529742018694407598008857101139056402043936485963093750404792711451072795731571497069638395434466087181463568420708201302520287590212817800583535407962185517974980804058889892207393489553006418868549714405533001201793543194553389858440378055898202377610115075892026877039084135323159861548313041068991250484035315155766669115829515449557063345167757224133612502285737183169624614796011224314066332865972668647876822410388024960024735403612793931243003303411155989262989893271608772487657155024183277337964411895821227967134921367119089446014284488661008201025202832705728697001438188842403825125645680853870129230240187526519682686036715433595866937722106001721344739314597641259407254296168718712693736707427550735248204147604148122323280726623993424793943529104582473855175778176426924780570919814725419141730333269683409775293545569741981748058897957661645385952864720404274865830660061296903691317344656635377762942410653674344570748759505268266283690267127262368018388763506463171884759291043073026094051668997156652021718980660261858208515318700832656731941672023413785774114985398365974775294823623115741972993585370240426806094095590666124791053106013417111236390910285395670149459991962284548537438152452830874039989795391066042391809931436867117471047511347254186341734849014354639651976080063190375104397399756339707110964454325919061596253948067524358967600423640116935000827309306764806904959061450434969205228144165125957364825048199257341537518060465392914708733116750844687631925482627767411699494822290316011366133845261663940390821146459925906999959854433281393318172340138928864233895531533182295110259089026497668676793451600722114353191413691728211733751216340852206136244962112421853303543109768247745214597397696808570416190493245532617234965523718852872230052658180349116813189412876329756407565251186525774514775371179527563152481616444369469645736488374812214136872312161128985596617845457648282670224747964757633822065160614017482577186288385813767004925105686596370668663206541799356303564969806452270438333959625127846097553142412248838963414823005829705439999044362111135560713564004948141966161466202107126120919320793424933222183630336410277498333092276078419790145787183848262683357387842161437021651797758978391452144666641541177322019668844477835772123136987840113559583688075603121815035218369072407518930997685455932436930986480164039499657502890312864699530319626135192576971931365281407806168040360940146463128978048342416734003645985240984062478946152296516107787695326501494713100022820591519396287459924998342096313382892440469872864679776259252005382254808332898390094348010915800067726682047274389666779727795719617543195583237637469216060689197707094233123214204448639650108204691804679617491977628411444024788530546251487053558477486129657747136913865384246102813282492374178709162528674173978257291883875124953515926191730371725869465936750539991744168339192925290362508910877800601408228794709193496041791269211255598038850133614842265689146369380785818757545847271042318773236578021882891262233463935144952752168311760315765355104149150670462294758221343950337159156843859397504173893124171298168538737157382791069159009670077788601157047491863479110623815368516181629747275189134761528441053498835077307266408243084297539053024933851556484871916183505479961090887565235954257493795399283677979824142753674548932607895667880987183511385711642351294180282137273310694065321676617783498926438847111533755624525298118433838893890404818880701720510738797960670617672451135701307004482000801076471268137461671696188353388080279399630384563181160463161256886248230687213993670631704079796812142751923058930823027677145098719254708312265643240198504079963891481737721839697102023094099824871595870385204779777779488103010091472946345568116535272446612989262467707847074370440730847881374597968749780844446096728739715981600129930863726623280891464690654449300484289096501726992163977221465315397259562809478044122418838102359469940160125391697275653327674870015818925698574676865949589150653148835532440466544274254116475670447720081240424973881188853545965726863470085329227121473385968190451036200523171265248722914891160891371523640879941863348363346360430079777573591027027376918181956176039310367934918520119527649921074239439025414713542799906216441498955863474985881792757136653254264735108128213184512292498224844070368236970276975866229341007321577760981518194521488364175535829978581337229514821939079457271075516421508954653813825633717439738499827116433754222162026751342611378427922457226406613401794731841347661030702953131525077899377238606854533982266135683320630821337132469924431415320512079242700824566671006860445921548190912658757377689829547420734412926141679285114993164853905234047803469230766576724443853681474210082840281880070930080002404029280063049176728246368168457616147454110711574753667135770721008515144716327784364061945363305228123619009227673496956139207828477663674033470511534562173474993332895617304914614160231157675644523287451735595869356200680681633739057044413260569845762071905256105058423119087326620952503219713833133280250070530372047150459457126606585737780508788385628909479659252730071854267700104625740964624621970426226903547493169432586168266115284515734685912304650497530250403524775273954907736275680594159193929243059080317896554136571382382369310254677828078001232786508167389177448648653259806729449775432265133394225164929235835210119486302164403767332813714648034439636999015000021732134274233460336871063976733446501367117663090221971833588534437504543954026853608440917364820200397006508039774791760999875485073165125146413848532750736855474408332879100785220101432241861307254809122072680309268617741028924869562216606916764367843779874888782932540062465432538113460562760514861518808032991393545754966796115451821997364099901641290955343334995179314815448631140868073350833065551968400617945570657006278491263358309835021309945904363805100987683312510922240670987534389296443248626402751659688984965595804622271214413132746604270528133926496548234983798534312020580897407311854551368736168800573130833987189837449459479205899574491055986670686394329749910575764885440899415716686292552692946329692345771678134032072171093218824096886219461424828432607123004041549091777934715142045469185215139161667637507477993212471619888310020893099249376048764910626575328980259927424910542018698315812410824965409714844864397518062950391691485700404387482983070176731822328874613889541879271242022761860419123363943585512482465186036082489027424455063364077625611731789757181729595460579580781227078678955151992220690220243770978429338424741989605564346892123850878733628592496655522355921638987884454097677632658513338627873925754234540388049435636713311862533332176041844041215786803584640789401295980181332500989302858186802005180772970513191660051252962075185545270653542870916317520118175703024977932936589033508646096803681817356056515180554558721797864706339370949625727379998985670187435979604582986738015679400734014241065278528393118422243959152668735597803698259111235404570500913413884992783413037050540603736968031675431643330501051491471159943782347076584111039310760595444007120291590257088485201104832720137981809811318123471854070473935893585148731988232727195784825131649260781147714321847319987564534595872482584743532946247925137556001622721684017932966385233165841325257615424552636734446728103842631693525709816726661838158549238376483811774942176540770451832751587370737567212977718746121235899225953091809712626005704246972183187648826735448078980520619997577536122398003963259583928981154473157525761036679647126460618615615924062828723545330673564964882813220093597721454185253781093024325740147396194003832994466499341006428475825465314198582774841046311995408899091406781557655768782571445043510594037252088079527727197756928215645656399776053552050641788988681174199542499095889598515141991391062901380227233284056374708265043197744512300803647509297869107095068446304914777488027691477919461639480013179012671601693849490074229735533375350883608613295506667316153089340387810354109191307338532755232953066326205322335498738428065185313093506195519485678525362598050726545643498515383889544705445951077328943448076570891055048487030577278356836872216845678476445837756544623188399978152365914431590744498610004005556607140973277006041785665308237801645023841859682027524225953755963008409655615030773548374740438879828624948043652590997470379469382697282036084757922414372366336669585283106136044804650538895070358198593651506834372618013895938765161728938125556196975617967978599893021346678084257873627336799112858847216825891764411105390821549428502363312524239563360540068921333930506137771680303222037172079495806119326380052883721706832760400453257532006534074870027314321442394449002114982129159843456176199585796421232237060894914648552785170039151703888974257134653067392766261228705257548943354244347218410139039123570324774003912623317716435887092422236190401093641578696260899923750239530074025869758528926194901525485340314314398861783796036593784836660076426784517272823594896613161194773918666997279373097296203007271711559655059016899474011487390410992978139690594853574274670538135276146269675327745415315249368423014880446443133404539618852179878829430111486658513934179446852522974208001162645466700311268272176678049969681811027403599693021733251253982328501520919494487913739557693823379775157193456004664198949668050780624328685345768409733554225364001929127376339308350313647670571931481062306193918227797670160118153056425189983806227377485942937442669144539823449178575443801709306697632434760436216639806586815985103583860559406817797314437519198154918892027631401942187514928374224279717572225132552251132746262993236990511734998031729010915596521182955354310018964745625502010664126590154690274320384003895541799402186749093884001232164374472688024204848267841512935627084675136886616249099669469636815401326807266285439038853614586214245948286495108301435061897073008178675368556402864363423555689610798717234718020744951961362238101425306712972561678799796122092390583376866812433215467453359385998514217230504962603483711289606565400638434808310028708449118304039287421591633761923573071767296562969950683474707483739688510560261731713090538849622565158580545348507736356825920724554895523139591691715463503134658243565783374365063321076323777771328967677363275858007013598187383342841187960276373289986477974642172393508163019789930647008244018918660958051776394176860754033891284228015423233245547521437678987997418548603818124725084655405176832766981135168631920764733294795973594161313067823323127017982895255820611772781668683004706450865450176521577908972285431479922704526292464390403553898737338023403926301329735066509516938764182701535494983435515964770600090627382006373429873660371585141269937721825260456727963540429065070250720759502629382316846710061092322656941963155877392792594734197250296492228116487414988828121881782407294707606927240175775868061539583103986340033717667613067963737829443817607092324513832222473180289135179748068689040448829623043260759176782093100100733490009058947412268498059357381926937874010401117719184984438119073891812654018323743020439778232614053115565493682908398067641708226809625498204004399855966220514098359840843724874046096468351124570388965159846679111298329012501659668874274545444302632761372315614765768230826633331701215011920920874270102792651475160566011559695722227612388415475083264538146952359143364732811480244992948407859825339186834560539136909343074024777015664642980384806790668729898025842110388983097320821599865826687936454708287571948803469501445253812620084128943655984378504612629784754039249210825091465146674768391358613054330856599393442283374502756343834188325233369777091828830788890779348146512520737704548920779710261860392864696435299821152136988405809119850578180327073930911209951981480073043859551777712415628147262633725742216482689655959131868931552501558901752055164111722709391493324413188422529326037646058796476273571306589535892193162853022679267899155881675537177929540733898195101322864441142013312797761893674715829784891062547920083208821671041341639990850510202625293058120090064013582292651784051033313033551364886627406229539813942893432361642088155823254600157679822773381151590295668216959437385293919002096927290474264345591251998394328704558416850907432266766875660063703938730074540164878736620611520878349677253756171435955240482336574200566429069294998991757615089468665143449473078307516644000087973183176255697859973421456400460669850844338443205851387214542981341390471372767776600715538031429110419412404789180345176068756655797933174822299553547021368490480575157562984446569885206606550973176199148558705677883038478264745013026984871448603938188944714060436119261838665501482255955981631618572354428226823784107487985324928116301942125977228667393580063079560298563597254439608368444020778675495521747235488045537099963207870188697808648151779092783153361976651346562799790058632539977684963033703705527529637329635618775921587709118010798718663707866303258652024967976946456608705601835778925319354798413651736828901079118480967571396246934390794150398070561230958407863438985268967775898005079983562599410022032290611660460512535844493700660312164427622953061071040058391619312255297859229527870732503253043096598072604741848465937467129801421806926505109515791826862846073809184221416714974135718428623528514544877205499637833340757422543097193696660219104935109741219037079671209267713015805837303750594568681389573504339230551666196759382540967482194896171969251988460124541313858107917763013123797607949656337969150962831374976860863670698693194251375742291827796750143233041435667012466062448114817657095030069461068587805650335854189040126427182145192982240261693419427590742502070636365317061355450108886790750368370210301651637485384884719458058937888071496087107239819195641207787318865939144458360331101338937114089977990758398910377842527283587621822901828441990511638890701478258058292271271242642514002578273919716078224097360400666981934119193240806558469413031390832455713528287677959886062051354840299021961371587164094399784711807863170859296463248247866813320624806528993363430096750897212921182971443987451866144833842196539872046890272984908263945975342208671539243426996745126902207959144278214500207911347289684744225868798914009329556185325480982984772812012369569134935249607702417219929253871063653806708911705113440723399613214480126528864503898549645861711623560136796297932737065461366308747665491243373100441082730809946766212255863004787455253298099031086576546078320214574195994988842865196047566029304441048505680490303135942473331438304365431580446019440418021944678370904626489297167580006560570703361497787004900299128552087966444862011242971247037886187091561379605394642230679427466999729828742000524910048344499933453611564612901964189485674964588557151190958616248373064873087199620024398597526345625390482674451225826346710785296779482499062309421850210632389502207462784200495900746208082642793952171654004743415362417299103401247523455430527635481508263908825285281882791571300863564766158455302104008416593742777215368966982603940591452586883812780328569501219720054425522696783267774161734007888700397647887272883668667409750541590221400276053108460413142436939865626065363188895677598657206307761767991658551582577615873223590804064517438680948938817101506422461221401156465452103029812164699733922813178031245525786811444172687176350648345249746260462497962556390196823133550407588613869513885329965922835154122162680490118995481930367256967273250642649631309778222080549863169774201886379929015518182405630598801452174011887726806236402384551701244532308306509115404637805304741398387444622591896859708572152806940999477029677027828295288319855230020572349360759448023200112933348059661125078346077660845737642246981735793741389437014934694302277841128926215661701460772256765596500950357372554046058933028997955705690169624511544917170946676698616981004054517300497557523483517319117286857622463782369578171538853557749392444901713942928713300150615529003457059060500405259735172030912355830489606488466040928564077090100539086390740462637323229348059354485537175144686591665880481963215180243038854281288290811266237951414736898815783450606955196947546482233029369281677064311525434527951100607077066593732812126699977436269874963319084284954330032294765063250838151427316462368574804079117552925182969863037594345810018370989492756870470292852486111924941854070711008652761680424495983293325764122532925737057593804016180552122679054211273511029364977717359925738696405619622452370383237221580726551952281329270068940965826417793007157434944021025163950916560733967322324248224932799738987773760743340831897627905691902202121830891824310847290716993685021951777505945944795963069545730088001853260051791255195011597152722905706376997853915794234660879465066494303980492516336504768900249088274670425098645301503520575146279115412632187322271814910892990104532210907509724952866572236304107271299158118653151264247589907670333872313862837553980717050828582304743461048552304191254124400410581110441803725860139355609061643368844103358027341713852214932432995779066105066232731111142515550833820447908378380717180180252245218601729927298153858376274800970702801984901585792455213666813815952580301148473114000419887173486378043562999495722751453264301501121202728018907762539707189192486892822354894693276674856514385590780962349549539854682343271169715328472262610468551329231674862547085419160221397492716553211560953135063843299330238193057083597081546638555033803925217555080714425477934901285729358555199586707948823289229768345566200727059577407808203464382761703140140434000118875054323664793013121021033442635129169402899262243375567572751963074550284757886506641240009431320585481998557816312857601481735822649013468971943484421042358982306612191391057516742653004266380331530102054342691018457894700546494004103066702768985253355339688763684709468676144652021568573674382429227650439272930084166644888162472907651005941923104255496851233038734562047795020635587958116886774785115707310605053029883438348649370152447885041486880570482551759430946034039086027995174720389840644323726394451404349165127613339690986206778757247467408193465398402369997714598907934876285592018496528860697833432004726802821359905043938767095557065509954613384715430671342926098719355760139657709920686195791953341715010995455705942623879777694639599501697605315957544950877196214476646033488604497266442599182572908487422710190368673968299121901731187598787456669522145400374062344847785111535579951749808664681703193748865537532676780660997430610430600889478030130602479902868601027642618561019453517680783976209947873599771044033403623462312789909416468763986584407037596919921168990416499877547477740732754462005766528457414099938173499643653273682081531201892902511077280370434332053087511462521818263155800055803803396517653260893798812805934571632499396277143800199356174584407774618419023425439067338143078742770568382205723100929803086424484175028440555265831128104830825188438456537025331262188863820242249733984928740956685280299899068979079517719218553610453746923849603657304128403129301817553515577061946965401933901344894039608463530173412984409279218976820855376382756959656537847961661479486173503850696848684374555202542311431322233111321741194023525870925730774248106893791727643371615409279644996418231527317803426124908099117765586319803473903676996215959935542629216389183547723594765276382879116259193394890399520295097074655635397870765114510902358749364077871472237329924421899384016839078565996279732180116904544303447287768158323845744867912326166546901732655158575986385516968639420227351259563802424637491585578095394082156081355679649584964213576663918761351666361479881170991397125667246134373792009669036004154134260258390180555169254347422139809604248556340664943741369923103552201039188402438191804246093386473841545442257464480067642873978642711928251630194524483676017673741795387846409366668202847785328550823379138616561855851274559213804953267354303242751795320169260989574757390469928752961536789566145375510957667343122125945169985797802028858033460459770426616759416509741076792665374151349715064778751770406528158527470227266357535740442180291238983924500281726472857779478589580605066450911427818661177139798906720556989880102175136951869328320509916462042808422353736199864441772150467937751830754325374111889613334914833005170248397749591851014878174179547810289875309947445394956845141247681125308889556136124882412334839782623309187469535489577179257303526397903828627702971077541134038493617874980350972456521403749164274964980555667887467693481216563929152244486621766578515689680651793434681163287253976000376621481821770084924462148866582268666006362597010680931815962992682954118819104550093328358254897969771575503635034145328229868657966131862250427926681560591530923645764987941148257812043619772965301115351105407488681718255334904462912270851238332895060287623696957875694026267911784467736831844534246257316942569716552771550721693694034286551843504751151251366933222572861517056977899052109391717881557004063555397209792996520461303562679624372104979069941923833510910339635038251022489300913897210183486772781653109803034823809573543852801996065763442090019164935831777186382866425430815420572726252228582030736046632466738349525686523072205221502824361250746167413749579487207660198942890115862477752521083889257352470889152761454888218183723008743212134056807941258249897722872186382683176223627359488817128179185107434863162304198729021075807308647968059051653273508642469218836989771199247730736672019032300135774931708925438211199704902439641880771927970925830814593089932136473299901407342567502283809559265077041538408239284784937515951003579078887318822214781725927935601277477986749511923395596311164645296257321592605809632144777401103369087304167833419723650884233164126868634758584497193386783670004764776087114210184569189894898320412842186853452056446992459308245115050641740604025541971302890776212544626645224067223363053761216934318696109429381835398821742385172698237934468175790102967418463464395719041028427906922970224978323437983218800930497792236425575672546996963024967105108090741984873393886346734231605999641506581370144206062272669418078083851307682050659821168786757583940546276247444877332325054947350276491305863694561464185474345539945520420613812932521139732197232364933966089258722764399699594499759225594625721637564953974914273911228824846335685797904926649795515729052425851899046784289717529390154630598652992139700183386186701505946237900749039550730278055541421034269778731561113820328174440722536946171635745258674939023210555133111661406610747838434004388721096637109802327098619688269526288696768944423994119584774037579518303501192165839747642423027235863596884912808120509530732939014318416327565831879707160183591668799197235387598936981887906806701663385827343727593920328395285742036809020416140929800525817163484242217386836000782791609263872489903278041110701218791458253093747579477714827019058334937802420251263906599821994097078115447481599005854206688074370759479191892258468615088197985924374459895746393875101128743243900763757757470371872216390087777554580309604852305251717186521161055551359824580577252890055061720443532910926613953002059715506871969304328940501082227132558046075216464501163246540831959595638817762231061476760862653322182633287410530142486947296158783015547200472492016788169174622063151501175502923635113781975254351791437043502136205388372884981593059335411912804570482029530437731781512651030742009991852746082054013205266081155118936045187460059096778336107771200104510068102690241597403086838434927133345090863337394333902601849078963164276130052632124666817225059609111004667809592756771244313842444580117539167805629985409378924996419898210924124396340089949014162467730142216508327433651925590438138811477524899375254645907518350636575944854564110643785413041380814525849604275442585033284344688445048694413746960700652756382366292877484679341385642173107119968845919679078946359253598510082720312552772787629747550027320476052581530311394833610255158692388788938955145499087905527679926245643316425529967966793591519848826307073109271746513118380527130562747329293847914427883369577775427408349349913611629807350419155208951698073390518799054326022176038141515361999547198576543330445244365194599918173363037431436912685926000112059076468138881364321427903849198666299170488271452052338749333200026132304148094848178376224559673686836457099075063222400600834089098960195852013228858925141021938422693528204431440241504731890308774250015837952165777624880376925561778145159363013975404060892644990427556810698846491364741554627299471364122349817384200044490428205115614083538373411961830293127057519089140621242808726821513867119671101971133408188299768168575492054446480507106333322730710273094988705610569261167179155035898655262345189971276375563958695839498764377601392094669700644952700446783128269436573715211503886099876505530801613126311910162701642074340680031406363391313661267661339742395122047957800032137304714968520538023642485949101635142135380855792747067611879664451006188328409580529571225425970452060789385607004979514529560259956798332132407374506715675599627125625060348138656548184298919919041510440267115212040056701714422342892274056461173763662686969697774752822523057673349613831762952965983223143844437724118941600182416896969235897884400099793112418879678446517206937620234848849077914910363661228804508490529930480307095196862584802317200763500833368145026380612854703933027172281955994220156432678826471253270853431587352923999155566154237186460506171820188273673131974373424975069992257291410519094096677782433023714181483243148334388952500123964081537470889462138682637980009950216014992177324178580629373416980109419633321105576477659076595118159955612267573743722726641449395088739638327361951751079837796766229535783976689896806423440957730721007016868309684565028031602829194357499451594973998401399019125950393692043580981982814998699554018159966194771137205732031045237840964548986994858274052272367564468899028823370261636806325188338422575150225680164957832287757564834206666049304814988102602701905365120139565280173976611225162107848005717347540961020146543394424509054957213181859036997541699100114192226927971355100088343604863024762017046081887499330618871145382491453039934025803429913777152368941204503767197524400939229344165024390016318467284020209179559625068895966032240166267691479240176324166933218991549711739866519469968694603196661216314544012385814035163555364120038007022596702102682632150142791031463992164560106025392817614053955022059362727855901237232343427519160105886228858801250190066990849140653657676856924245627209507703486882730532759923997166665640598067158876205868536291312573086900808573590302400720193498121036292304905234751204362659660758274442471437989389015232377353321357731543248203363176245845731438720248128305975260557503001902971717059678398006268019041692004189359543243483840005445802844712132273408469554859709317278608905763906682057833065660151017932860615512422408797246304739583429951168412146536250444505840334407885897913682798471855476479944832148708990209793379993233003798403388253345413931126756780834955441047158691719395414036175994426375827906087615064894976378191381155981723005879801417187609018975350346480230591690095778838523160959776846376510643031481925363730529193659102593832387396906271656500530870540569303799795314477657186439129852051778546326727792782068712229121953479861703759875149251728850694478444053890007960234573531759745679527515129788349571558329792660610822425109165575603837106439753863804918948912922734060338336470529910338561011104610675426210770136072954360878209027307007915609215538603238684187792518822449666985877857674404282064809014661604619738501603724328176693469967531436926771986936789976961138694280587710869843816960285380240465355652506174263975879669435296854181125508174747971313345207338965979536742134602630613675198151202151361191846840115274733099765331355955741794695513740381993725953903530588163918163263433070017745911043429857609192464362596546633356181847253971399828392625981159668523613480764273155569862138018034420243190999078762424186995005745059720749793134495823340541143283660148222251256937979308938750115052150592751465782490038648200756989168178290651337995307215375826244870637921320515403771062542265911401642228216268077575324184745850268385457759164158452288772010646098308251893278227637920056107826200588716097045526619254616492228732336288304582273928892150327866359881024020701539379073321135398770139226106770686474509300296091121537363718491539416923962600784371127388758788310399204195445643308983690660725514507746546681824580276453211115017869225345669193374075856234860259965525173814669715298777574053928425224065669319796401387897943948570648324397428707717249092173505288684702409837828196478018777728308459854246971071483673602917290989417465796586092523364159226248686020741463055650843265186787583452440355925188089722244177649893435410525571584196546104532681300671308348504162106816045978696837422414305112659774733940912055958428385085370747336002246447147421934075824508952991542156262724081290907814819668845980398271946625480124196952635133729242704205713959306139270718006658532707380903084322588741535277138292866261172138957912328679694529438599695855505782945852046672658392008256113073290410868119413711670621740257270710017063992907150298754982940411172516136277007045870549759753962327110160958597616205943384330762522939205846119548938702867714709115725481831294469610331199507223284784049885996536883538071155665604757371022535170419903732150568410683855326482103608557137896960348438487753819327057482438175821008758006465798740705984687475951706465785176012182572113786419162290396734005138100074054842499093678162139245506474847112490864622746211524982064109165397396031007061893522260737766632418551118171003222106894853121556124927406881882267799753500875787400048084915849469514443655263308358194897270496227550978078935416501074354520107934266623561568537115625410436195781145691712233175988009378148513255197019385773041366392042902256859065039342990308065551856482999314067890692325808148770540755612191459316122683048897768771280504158029448390654568146443046048410782611319150083714155019475161497569143379647789295441701615267398375848882858384283203546133882552192360189140115791691463698594487352654373636876100065827117581268698473146006407651122586203469871276460581475959612350419069503310409685904618324284636143295232217780189884896853277351291518380026935809892552661298939602595415109281162458443001161488303539379453751117462816994976726816837468454000218523516467986417110607093884389886951159806358494803946488754320368439187868439308560930716613984162012696447881463499908671462506441212141049393941868405500075324562026406099117264558723474128013156962269971410967095743430292233276029787614981998331333387434558135787631403430580927942383085326879780205750317424058971308872411474528591938022128763877288233600498729112904960011369046185517938262923646786865668993694579890450779166157638307245413123164237332925485566781238920061186599365031117071931018926348984624857601295972974159766911442480667018969167948998273597065045644667646539787128170631184755020202501475303327708632750001010798237013943185866041820860193415125197237349169796206380872207894822747710134709319258151984402445397355434963814979501671376773209551931432071188928227532585859907092082636193998606930433024229329003798871975059434948683075205025351746353771930951087751366583683112305777749912248882521135395749476365183135261263428178878638802884764178145438521904567070743674765703426728556147976870581177375914702756792669364045273841389801209968372314649288800460795790783103106559174044267686989048063877077923561156346531653088240065231108079122289216784182145927694701768141444256661171791360205074036661418442140657765020760580791375059593955847089942198971757134612354438526056968285407292929526338996445013047978475675696248831980042670782822333251538112628336873815596471549069634791440459218423745352728077403321838482925943658571360885755288571832907992287072214292113008216147640516070972018244114287667579025225463327842691232763141527998388782979636611599205812163490368426102135008834983286236469491549526059835586301372339897194254427205802189602888912924764553636848647631959177806656812958155740941342695594561945004141591836179255033271893393709282038407693843354056981125445246216722760510324494586929289860057272765967788684225433411692700206207108920476152551872595726851711847180999560355211069875509446972986142113858858933391028643353271425519448626273151133191598080923635728490627409588009181685261930441308842271108722016854922993453637349325284823167744823910506795267833868239866316920555131797113307572808392713970584679850714555695397247096555475903465607658406208976606838288897144760353955180890013192955185768711123564882864781125642884255764439966868246428265148509553881706710493969195409598910227173230504634580136501534920041147253900659455156450277359051864063972777745251240136680510662025659349239129460215877868337397461892318715718739754771091476376142678813982321336876232930821723030843129832256962422494166281575914523753022244034136154083181751041573990147989696095424806038161877721211343257225319459361835133829044516371736678832542898848023898463987712284716808735569653580896397509229397960353211160370175480213843562760923832365620407192817754645353483376642696539332668892401537604628015026328383225898729027245238154773393304928300183218847540485275101172489493045560984692618677419277737608769548755381311204857893918363737439929284604021252259017374074972104436094612191247978698182064440109539739761411419167052695968456664048569302548567915789567857134958429376517351672530394315870187397533831084773838506595642330306780722794103631006478911942623278268246027817811547739065590732742106366993254956053282707041332500940887960690563315793799763793230968968207756621623645783171443196564565202535532151363125930283953800940682861520000880064210245264338486029636284794146648756867045760474384247509592928080997558897322704300182028840097631543711943221207907144445415201105458491679885513658983243995355633899313886735822188980965078640416042850786673230635566563665772460281838655472777983068453251824475133753890282945110076232202781047831887686631688671026484314747905670548892369987200675683828208638505012570667980399915110666873433722861198271522726422440870884726462741197687615242134612482184161656434666945379452100810615455473525894773250432529142481829576964502678712601705888683171760218675385620737536212275611682091808918743514115373564353089678141925357038611898823767865483418319760257600686648898614569717886505202117037918903216819322173742524735670031919440060594940507069749254682647661783489431867566756478904900862127470164679121531612405253893540462660539206232212559809415635542450526985438567988105732213546611390649672303092809083780625309893414416461659201221532673000148861249283948779707520385376616795491313247704512872037804863718896509248495280876371485745209787575638375672829436783528321328283360477155779141086782858243532760982210123770264117732452490706769566228838501863469883854916260253688246174432721502474973573577950980955504409281515399978694742794710392139388287255736453258417009711992581646966706661258595424563423790090694819483214606012307692299619234763342655096088665544928354322020338238771396159206166800107600173071802055094846750630162675149808230732551962594158426060924659520233151242374651923258054125056977757577373432057532341887248185689389407521973197361464707465026315260682484819854048818126480422824421368107056660991661725985449947484206445995577467616627015170446349391035406595775985225762654863137887358369900181832478379958826674101025366954982907997153736305598809875753608209830326518237488404174962767524902935178706648331491865693081361980209132284487978953907328818707632787149556379741695024021443308472857856490451167125297438886745952411680296770730607548980154121401076434376934490375756753263472088387314394075188016142051747647460505854619366315428655183162758988109875109829262571810748950311956167831541932503477789892746669468089184902606361675296380826563375556563726587239495399995145734843791910013903976085137191355910837873435928113450191075059421783927414901519317075453748778513464111561878190918827811398135797537385460133741084292933719602201245237392560275533758314838771986827269380739612491131347943264236947838173141450219992539467163714873143576081436218225345890521593518000877514962276361034049514515503834336722682469158510754644239612307757018654102491453853985068899172756471442785262729257198387318489494892324956573315888069286999081435753486698707039100371102660414708036378228407015662748087914797188608355153595243706455749901455586009839319411852872796208719456271265089882296456963470516656243235256905113597793324468215107038501709627005389028428430320062553095456779295057426247266849668143187280786500356644656413581643352250926854547030367799089621012503132452337039086464635550897965505496453106743381371736005212844190738314005393472970710466647190594702849336842555513629189626876857012042833069064231171589172813105537000786297884217119113702062778068134576740884348447985612084614709648583516121207482395210347021171222782385225617113134696590148141111931553852442112647186481009232099252386323144504311363908102056463115307192663584889200531794466212474362403326553883055520310082623268353897624157995218357693286490915973757074982525617563914136307050281411224074092810748826099867426187493196358650451686899691184702205117821809653127946240219557995948142949258192801734668251089046870253563514939236968220497092174853822501603022115036824906959615231902321368772145362269552787823013497765973174615413618938224897645447278000558000847189431631634822399591406267402353167489665473218718756295037089318059094928797256134761177956130119212614781372958615984403443307172367208686634774277507449454174532246936359213530471665736450185205635512682452980524912272136174867544095256847577570038524622881879721786833012727333978088666119790448528643385372084808259914823116488285523595104520352459209808510449812345528568398180653031804816048327936832473041150263762185999444112274612047994871861056086839413324097346069226096217612218979198094670619605710961181466793353867719724762684315762359425018810232471439116191457821722975801000550697154850992134337884826922804799379442327308182451107734956012620526865962170614602238161316940960457284686637913171867214721305152217700021049750274894975840766295561092411964354766633051869952332027259358069396344873998348740328745136107179948089225004126717411687858492739831144475946042997228100802667848540963360327540918477600145656295037266692311283658779965617080980865673028924326217861232692911187304377640803287982330646945300777394177484105341135367475177923463850724275071716493312936157873751498945752514183950006914682040504385367341846443292914299918783448682344107242700651916361919358018207403910112693350987199936706220299231932652543141074982940036319332339232530960300901623875132340842176939120625524746709719874591716026923874535440444446825525784373056057628992270804241117152144854811005910441141726172076903894116313902109022035622487067571670722299190855001794965941388959720763153161436177579108608703992947926480396274063323081258976205158588492244483822053208652896848479763170875999486240439167537727917949378072581056442722248417596342797674229614374394696161847350948387055627134435263055004939667731837933328284893288748861119731948754501015207697003041426891761616535051570610165226721200354843036559265870708048964364105606521969766826628480256620607529760580159129262055175440782846932158192877106103678317597289626167608359897820981609256941071592774851484358543515118824889158232736012929685285710941183739387439967862438408389326740838040330111112732105475284663115820593670341417398202196317689270763936897196957682805009135463634396788259973400119190800847114957764974392155851891131366670550784994294198390655818943825621462213718104371956784492261655081084361367625915588252730040748007873130224764804216265588588520132084763470542524921449413781879319887196368269975398351161192299809237847264939248316061474050456893440233869052108518956915522406564887512766713762640320856837339990508283034588682272420461244710740395240168971032029564347188057254181196677976663082089727380798581523095450364662047868813429254721014538844136926556516817130320814611101431625089439010993546083681562090168259391012156000039322737552574877030571429825506769634357655989425684243728180858629712096106827019818833858803505661083128857230359476188214880315707697084918073756696917849656736959517064661234225148125882594736601733106748081224356475471050167308942798228721107840339363096262246912027886151707183140741836978712188554004183136607951665484792051181897052727085550121643892144125560250956332064529479368616462418735024884428097282721636870787678752091453149086494720495827498584705778067865788802671836175027404280276588697618179794559068288517521508687712678336047027494521321192745075407787427681823810659227284659575889923891009537773928318936045992214181137436657283108335868790762858737534015058568495252459718582765760027807108785606295524116504990044067807359269783838615342104508998116763338058078481705037296933809044708398074795495274548355059500814909948825961144166068702855685657630312467308619103364463241037445980184665491317440801940144491629268487455354309818078661121601163122903620753285592995331442682437001851810820159287693464918628522787453007276767585763896896185164398150836599581726836978108748661107469765114453563942612867496026787570210644602370983337873266224766935463421524587522205163407434112699817256839747504244553829795304536535270726584840712104388100119971266690761259174522302615481207012090543041817581794186110043826236518239266341534496554625543112413486260994832828043064696657501633619055042131866936826551979784354583180468199720409149680306892127299663995788382909391093194496776099559263235635152421463695586897889823487989300733671216748688195249530677828661437821725324985940294252568822206030604527517283962481763163277235212726885089579051396239365800985769900309699061771723108586235792388777880259852882767385147234000254124116238376733702078384276865086257201767225275781683344298508764723615895367888749782298735244567349154196802221361919789478573106317631120149391465976951185817294652971391449489879607490679860060809789472745391013567139913148033063307266009432339525276317501578816170337055104957572017021288425981470365738549734481825200962740234963789300737278767958131956766620382129219247330876838310931741082438241511911512023392416934571299985567719979577402709456306286660845989518801089095397712695935664276328329121376856354782840426750587165153136000139082755366249165135842415593084301663363224814268725806940217806107062345390957756059304566062714426452999557837226410248656512126860964334443584094062270564456909718674159244232736756440351316989260666957600144112148517610122542690748944583786498242088646369528226846345306146417595705492129250408749771949748295799914864574314374621447321527256956439395332345004074134056773969219528809015329687698498522404077351365421469713408968344709662766750097105503151674758598976647451121067798411558307516275558535943345392606835800627778264003559830376473574514465035784839149638996402696986122550249678332533800306314599888078264080999571080394857448976787772141234316111423887298512235994213808873589413592215920689441961032903098038280854539901070722436326831859411294574585215871363219766657962045551205542755452826264877448866319680405528790444949362204256781068175665093705218734501616124861595189397334342215243782673854698425864915542956459446900954108959862701098407172271579070312146701120306683117887602404258738340185916926755645662093684445038846554809941314375471102280241233040016175012062339243866819586609085668366059212280788354031144741650270137486389229359229938495399838085752114579780924262190426090087664047820885315886752199152183532737321195854951287256462205065774713905697556790525854032062643228338365064024276750510087157657282602340653359857855682651470122914660122724106111846995794365654736327503909912111009735486172085999770228755187438756583474343011773178185028276511291564597684125601377918480840990908029928335662886101122504423561705152031575240603260404174188465389760403848223537305497134055304971565862717792095049793612591552207007641846074460598812371449761760081271089864115811332048616259244376317785731215832899907608812030914408599758521752043916765737941923442738337980489419915950323022984112192028865641086582132183516079589027536283119261538331974616704141096305205644207654558724511185393703414103755331016202365783867375803830483603077031966971365513615599049199783346726251643869307541242713247189392475288157459999040738047974686567556259541576079941268809835854532863571227479119683693083772679314361681173159305023851127957172637135411605712598576882322963476100683028835932241967880160880583458190716422071066595406641897352505102302655385763209385169085671589369559531348073651299773550741280967307318535876193838850178442372967752216834953952172807339579142081326233624317755953335217628990176461996325093386427591080830792197023780385203680241455948810863158700553726346516724644169234362031069578610933869127804363341670308196696476428850038424998227807050546516403365550429768947335248094836165359239921060659152088284692797082554177937050246787508409789956774542410259735992344341694218947392599461176898897652123803813954789833527310867822563225190756321507382476824683554057334145054695956359572635339819546715401270898373218448606241423646279632582813595393523447596584112261211827178016195908379970973130567724419719595742520669777955678982094695201378882145544112871373820612722265627488682961697776322692463595660629961182088710706983360898369075505553726667756824827799351886354178538698865949674819415026511809104257903774078971582734346574625026177187078405122149889472774140201762948983904658230543998035053150784034182203775821436364717163930532431811082845682307380612066754737634391363334296025779827875240026533434766546888622369334864994366248177289576282490047808406514767212373166949567714848727898342174850803037303395174735182543228056954712856965559576696605700352929877001125172014207704636782271571788272959475818617598952175017218581603759377505610782120705030538309142405080177977966080408406179702263307121545932942642298090859584884886851033010537427871991841698489797128731846627252324843589571011752437418182660324822619129490502988264594848948236427463541943399864848000696375899140147505378118049618881708015056014625378766690333933957899583975118807523616011048282822313518811434347588624359671561966410219464486437673505267801562205909365436317424537461935662860692482066893808984731055543799975197640763780178487500569975522299917789964783054488079204226543286692164665323389734780593667225168355990111015994527565277253369582660061130690330835889712216264255370959037100153386545551499362572956747961612260545350802796043744186156569041993759107052991205339049937294997779768140229362581720803399271163623152435047188623160279195209820129108161898767926397609316728145370828725855109212809616376081888932304417146843857199009476520864480156135968268936324151864722581291059437565193754955861028459526885419627359153907611275286474644093999050075969341902422813920788207437406949756573488903545323585552838099785189224646101478400309284990491194807676375877405195194741920219919357741768761244634814533703986571187750183678715193832431656559679902080522552166599479484000524515305633774251258673392260251404239252290731415731907558475007033537415470277073196360923681566532916393573940705175214786223776584941358792141824934222022507182099749562641635848326688795434549985975732292732724866183104906668243996165885703470182387765668676466319597752724500996964070823195110599617860285453374333642244917789658826307731935108062959380612377374582085424216170687022070991289401955352883388554898591813104469721494146353838207335813859364856002470290993561835004191171540617006727821531807038796552462632378430549444555047104094549701509678451610799596696197742350067754509239216134843304246482919309804411626498189532770176627878123973136561765201037782782816366661033278968389467741783982064443181492770721053951142195224177081098760855598154654844336273000562046814097263443015929614746329195239030536680865679221324656346221084988857993467216947720541159878798525579164910172522457439463841936501228105007720366337451226899206513544826322950765808266413552485102880741220240962770288475091227320817780410673147780284411107651006813576373705388338679491975961925539302554421523184225082710538599377406618714075247104723287688919865691221525858964113005103896761300246513441447420046863769558388500557787706830738484955550843320585903208026768992496942186233074079529832860160355491644288461777933046814853213237899275884941633063664601965002737993940670677131649818548128622706658167533748935219731695995329831748880728924636977006913194914082908265719068044213497001033373023339719997803411614084370785646813509556652150368288767398030521707701855557730302575815131858149279201661456075087102556367443131778429130928488444197693811416428878256184493787856152564209497099129943597247487218637018908694677722430422991885739760602667587223260997788542070768104073440252815400901102899030767149637809039763686209700781110840753940469314976299994758738903029661483496117694459444878779646609036797387086496047879687259764812550068923507528962561770371029650806420692519368060230287796781507099278834655898601271020331023543243671352178945456168814139893185724297053129883996935863537694978034647007423130894633356511677625330030814831214613250656778370667130745495870260173603692188432916008392439415412851516352868189846591570698504044257663438604526708270923349994971267490528385166770940269002229746685591210775850617033723794735070692830748201860410136275909339990467498012349467351669824666355454160072098508784667438842659699944356358130963062669599003216542820260171063963541854907223263294910586974429722286923754738255478681073630179616255757070358465929595934793767824103837253800937209840863990982801485699465249277722301603286325165863475783451121679395237721607876787003397932861014697423917059992920556796069619581944339811944039247045659212189572966577022863338902638872772389307990676363356998658230850846964265470631505357088078152563485955275516266075714034791923340737754557723397416415264737071617104220699072391767541315814047354322343352119334093289368286914130811315274914471525294243652320579399638954767854101284610725670288474091767244796640696818451466862080568783629492738016585706562930341422492784373149985418190334858031920468684859149077482315359233946331389640289015292745740304644772370446116673205722632537763415971276674824499653892281265685905648513966590876923966079740337431066657388907301912380008461029770084304797472745471569884457174187530067296083536362500927094522004346233230062179224817716474269708571929852135018930653211699298340448636985088951710469111664274971861638646276925455810396569312496321328449850037594118770449368697598503202241155392853477002624118353749283199511844313315891939880350957781194270028263944334594732593574728341716695836658859826917203044256299747730967390644388221113486991834790222129305315025193831339597514409659314369874689692487641667276798100426738126362359708144956441303090642297109284976876793576228320525702349018088539999937300194331780261000211446177064667887402529644514050906681551822249634792342692215571537057495846972180878392951338882589284388903732726701494573809716756833243929091231339198948933045391871196040716310183420805133476235109721627419491068029453720813528730755010589624200801027464046227808337618734445885101227547535515821518996109217280403000497904513495877426585234493604200192578102904085157353041916152195910514177520614758709771956581881786558085553962124243058314622520020138537682604308284462237069296209597557614712901662909069658095461460854178633557762391707600931260122863381628578179017502510489794173699718008853798063214376026791625574183234665741271832447924821866016164264186103287829501568021596675075588093552371051122944862406420615099389695357114027923142151052075296170822511621759532496533445811934143921581364097167815542392659795651842634323729903028165715553041616600882014691530559576969313428981503636420912377454257258987763200389039047138095774977100346623144833644985966822334937836894574865561989483094092062610806298338757269319432043584769667273118883595693485703944081803737975368849611297424265104352157337220337360445191853455624767158182792425194885629080870094087165168140606039909402145017505186436459151914910844852901957724506517642767901926959472524401450734520005895150180325844723946948126537400360469793691453434540110807886461818474394145159983623758121063275405217225050005460381740949746364170077823392734596905496295608687398130574563749425672682772540919722753753540499910433412138307817054928298005037361244722764336611641495599760577333964494423146192783050235397039096424118666441708717122330182608993248592903031373767910086334949051592368587192112832090244721868373864767274520726799539379273882436976025143114612866960102631270171884657350795013247914907187432133658012658496534050332292698665230054023874387802444480361049020941772818623158449390865910812832855531462451371353528950698815212005654935489264416410495532189606571008426258731243048045997611080725231147772026311584313140252134985017727781073442323063378596799911785945793838073207844744865746998678693677907769729324219607782846635411670265255630612504314982078580498899602904843517085718841019145444990045881606777001902941260382555202878562817126088269025633456892625832940521107227778094270573212504853488412003400008720287139528794631036710978776541421935255891533053531561731528025725083835264870800766042486812018546569152437047348972800305531429678132861293799432344023040256461270868890069724715385902704008688072692268872715005764347521478750472119852710742468351587134511278670687909585842623875492660619405978479711705319109208066509428223678998966850816852796810894107422066492411209883601141809263010631968477510131597220417999401839522083451698109944114225560627951394872950608608761637576931151002034463267078872473119665349483441941247662806802786685416338286296001304934972251266514861917836472732808209261154096523010860360299020730873148157084608908522720819169441341310393411642021396510461560167251993953542288047523512770896044648504639778838231896644433928054858603797397654136348884940354662194874029555222156199063711846541997938158059060974309411889395354275086228790580776801830444090143890701729636507632893346820837441174538086448544468982295070328491964558917926525178206816210846541031285562715588074290940765692942203211328740833200822325273656958602190235874898998061316017035768453587160792588654410882768722589895005780829799317861482450488890649553641595474247419643829231416889044918616423729019087481395747326530866273392898822578558958838292870592293125368100553311084456953466662525726327772608103293481504125431834279587379031645828642925264376872671716163787275108408963090475619223485418878077895375829545474660074346945663941210841484646680485249043671671925749888109360062754313332647059869378175296735054075548475595174453880985939085180209968266258728096603641451601781241912028982502045208119065964069464539538684484527612550502125189526531534884071868796876490860083785359994251652647634358459991001603806132382243144227044041867584527415167258442958568176889367980750058792254514557113431564537131300674876249290094906217962275947908901052228548084756109984080312030625309576220074384044288388844105402158256968734105384029406987804384095819003508788058270219184875374937270385711087593928984931074997134283919381105187338250612746647056766505851936515341624157216700541486320414656642782552917525594763155506866828924020144664789196389817592412811763676522676958774915126466298169402448657781617021948775333240803402093299775437512203926374653589721458261072806348820741357867593578949751366903147180721665551297510261886775832411705570558711884087821066220548685407488854464848587107107239267696476329408629652560634813246030704140362816537226547849706311017326216343692112029482955275643411777113898098889755226056969609977317873011886125660704061039389081284766741771761858015925601685152007368716374550777268860208691619671745043746513660105427567392717817217287431145088642685428487556716604469125433909764739780018397841882543736818220861621149132364668896403404403317393601674474333714389295340803412924692113988941940755503942977463141553153510093951524904535966270542195023517176411997226139712354521939777230830546256995826294186799544651787124020159769913886352449062969987474443031677414461948577591718476938369267893274729384500372431424505223392238215599538881191399314399840280690418121532224178678525444944370335173085771968987169396169069537971154529487999803791246870153247888704981637362570061333775453743590613464580669907260110170891931862940324622847526290765812145544147124120524872482195699295125025633085345413603909826182618211210176565510004646925856475792479753023223587135809055496276450534783300170285012194856822808975688805003541941526487565467876086000171865962848908624931745508455953776721936912564042927306938883572618088972767483671495443683457518114938598268634834955665116268997558043463521168319391529283483260122499860533422326138567745078245139047358597011788926477710489232347418207785648548408894776908764439450502638818600139328537964967413138083443861328178345247581859797270046804103398766922338466960573989519005067383647497177751711062415131992701183882174631353829355773203986308705033906602914426653786346549239695316690988918156044522892068863483752346687639470271632904289685961526203457795814077865340793622409287575541154710934165723655564189782031321540922202900995258919826229961438223480310808694782451056988789162974792942699690912921363871223616819487036924151053288907314974589850259456671632866822753031291819355753168619404427203978034744308059439991097242497893502252847577171404285252307282233344936405108116181969919847754482645038212080488890816575883647095489802651772544076534574766765539423400233229515110553693284094352309528395313143054157824576995912405500131160686044476479321573595699607769097617167924129264580394545378946013478458720436126185126786004149167094420531254010494388227799792727086692120125593149646334033797376845942062083885999959998045491895782499913718993210059910202156218282818103875249357146320019267004832754951488987583448845564313806334947851416005587820505295562264583695432282326736534882387791970606777834551299980083716777763904231643464981819898542666635247623456215595738144680265902466580213990134965103177259772323384210431009911344901098466148552641640748224443388777180252416839649828556265593124820955583444445464311120124662546119565511295334677550255135372696157596372581459010561057515766155173904542473930461340871804355152210253268314142698360600674438930936624556814931410603224574373398498779620068869228176130329697953598554431661795102258398612635695332543867395703401681234277136611033035800933609369300721336097245691934821837207920313186228642687006633845458463865836240476835660173486021056398959144355789330147128244160882887305516514623437279243462189588047600029923701584942267324114732820146722204975957616547364184292746491904257641297716045426266923235297531144063927015880734261925349727661363529539754461868589105011035548819086166053141018809118587970382823760010975824210210248436787067904508244367693202546651691417592888778633008774081500168072755898693174901959295905033426044962230882455055958554795670381231457124187849816076238773475538610324387529591868527156272375648464885772418622056336836091920793653795928554636034244483874800962127422822804621341284985039293160897251918897412783433900372331253345826975055923116726961272525319616918262285428872011099650630099564806855785077741052569313044914770042605375450562454787723617257153201631614848040955221828751554510769621293026385960726115120531250704727747589738622898050329114992079053758973753270452434115746512905735186547910147145357938804926292993913294082846109415031612186696835780129930250018415816994254888619665331143251436551352254500824164221860883352398779871945686518728550528216872395587494025954628865932019883635894931990359149462799623596789432215044725341613863277329711549070771574846572208123310115435306808299291745014707704735963031401404247591587882746559888257580764959819284395712718270153005145150372723413962693777509346943932123425787893371146133106074343202992240469060793853881963534328203060076733477861274707585575744188371639240952912782882514921971952304423831226340620774479007962745336828898207908397969144892168807398267113245345557692765935186107138952702759769347459024370310208008650652398535837971273882481687763854099964980944371047621469714483948261343784324714608273070527217071762599253812569496156974412018689432972439882345443198779545980113796466129829507003689358268311089443884489711227972027693354793257174238285714162668108909054519066272605836077527389132592216847131234573657109577303147229745064306339696907829587513745410291696903923720127095261564455495780468146226181415835020578061802009059107966785887765103443105563424438237486463213155749211914545816857079880666327504473364411563581662511139246270896270156520161342598308952231475517843202438018876502651685917691010628628426970220491629218330755254012162082105587254791585527742179503507352290834513599419086190685750734245969269095240373934255467792818358260790184341837870652966979141738086560675294551526957727868347892142319116135146339970858520953139573940722048802375070045685595344861004060900251752614988313550596732252728203396292092992256840022424032628689335955219415806241721123866340589878744732882652791499001279352931343955910896961667921960199478352921255930286095482692874959155207739922886912940585056869233979143267740391521787878489293978657869312440483247529001750137538760236248390524686065788123317287554088568167130113936078330285029315441373246555707328483182152643069164848721849273854652145750165041960749417259834080879160417215234919772555837880827138912258911321231276984616739485611973490677837487801318336692159529977202593092963096395273102243727253990982947854646809111658756499146432332665654263458977311455342306804127753721381422739497885421156113275212013085615349523270257484744843551535674019025099840941726749014646127471529333509958891149360622782989874531013228505106393564508115231775624065684594233931777719652151521908240891465693528510975007799189389987113666511480513675033086982410353775615086540717355624183451561368703063415287873511642233115534766390705929610523190305443445036795869393116777353480906627106044322379819710081158476332044943057368695743862755352334685908912431890998615915844982447883163165284480517603433102202753482161347037873114318174153253395759708739915553153355468062675763021536006096447933485376724179264494451639404540947281451578635806432424784791288808725395104022436180635525588618097976044183704452912881402387114932884765775079323186865937974166494732457115193570753207856851958778115192022238566893186449838219796668827462343874695139854011770790508196076397589715867071230102894942411321063576577992077526485635093972231512515725974259106425398801015990672325573631656488789412033175235509219712703993963618749677915309635573446662687068850455619755106357441450692990480097400247824708558510057545414430048291092562564739658467815347433644397625737638831835036371512478699174843764006274964739265014559537771787388847510970371770534514635331946450605651505043963650177064741319736330014416394881666752555585540714678009719184766773995594760510237807940885986625614121818003825356478536452649654517101384880844273105599917371385057989381385699578568987725179231974139846445782795831618560057615452266769583371646445193260640173819813612506957988733443943356008447936670333029260456811012191550718435604834444591726930275827739928100016312409231848575646763317371286559447843195622901160367721045973961609652846482724777088698728930078605912714913633116344870678032909348883096599746893833456767561245001161461716986943726273297530691655444872475302133751025504962930001552982593239343544797670065749777765370860663674750090450886637644969771566773406169734493952988363351974768146054145580033097461680295841774805555605823672128578327415693044041614086353130413240084969015849823247457799738861161208817556232260337582790868070918504013936123671050196737442913605072369524264050348837779128000617309423612120212199697010183989404327708639269595624005539458970876246024534114805298382609948869363233106408601458790669962293141292229971233861508750025105835623384435464827912047205072547227546536356599113430539624464087010029731901545443093203399945597290008058012101966059560492019187484710305576667248144728411312928934386619615780702833785105919865833350886553381131498042516557284733738215982129271018510014224395314496043241309338866789394191860020928054249230282034972762351290847690849958886642789058995973217378131641849083381058232074011767460019699693639991202433614615446686591719516630890925668152249525621903309097834426465992227326194147796989447265269716656417367376694860503118532214348682669386603848164842263225774847891387556909076559795922895180487185248997209925039582794093962099837138260976156874528242857016045703530779423045402273216622125999120871212220738373310236564667925674686493901737203375650899304888088384794208819302412666838348939457427832731515813015254845861161157584098560038721452652193525987072380701374781573591206923615340554389393138172907223972386363131071731803820161658297680896710381571367658821143696032626329729228210017312387645095269464939814606806012647851024348279676233981691172097578307697046420025319763872273772741308642576625715888786314546031604910318936097590304806696074436425001376842923851880615762622691212641994514435004886263447616518188685399072983062804699204730973166210906651654490485451926069729271371989444130054451294644446918885808958710594072096777927172252475153333785061161851776043956345601383361353416477435456004458225776732742551531028689229540999740495216437908489356264059777527950913435034232252600776127430554319131609945076705921131493559886625240007855259176621869891224731099709483626940537182069942361290105443544056687694049734130361860967646868106228962715928476150916771264252432014898510016259958119896598206135301183285386999353547230331226141967972230259379408163143876178968029534995954545248513532577496308268905245219859148273756721665884684832184022877116467239494434637756171332424238573225485727913300417222711539328803034393972338704396809280676468566354931675844205598069338533565405315050319320351924746412212469083912699574382136693574901091434871721995019383088915460741005775544289664706017550278658090635414959627272925408149096620378655370236575779266141858064762342685241630762082989030856477907426060283926617788725621446184656121073798570176446590344816211103669406699857887312444257815413402646342229233449087624514796401230409998499297815043060398212382343006822630348987104606011819411638965177735255056071999379204207853804621489503985557718421978233574147846213064187645824687263783965634363677844245741434483513490621752114952541665045098456908544909056553085103662055271938589410163491440974543252132486567970031358423097640207717418639898739742582248543645020960808224991785941407994621200905004516193581795948981496269518701372431122353186454579079670673617027277404273244310705988832731865310641278036750957870489212242606615478949279179085108149998201547082404391249518681930034620887277919209969294817816544340715286969347470848353086329354552923617004101561356854395582981503862604297417571267467230638715863678931722913043609367016190180014080856596085076219456757651555672220017534450858929985929524743004392179972685108712370546884880307430724151554163589187005394622725160904045584646300295962505978193044888013222663083044089555411265583223398315113648437254829217302608587888201850737667411655318757097021383737789523835119301546960248316106261120425950518280771576749198684703106133622825093172495135352691621202412290303325777614049557450917617841548503445601279712359752327946565813423925648558003178524581250901673482417175383977585877487491923738118740860406358828758217601907435929429368266206332161281916792026085087921047896754238087812383927664072448691390302692477015594575264925148346751458550634302312091670133169097064001830328788927418332542135865433468321659772864102561566846693134311454915549304950349332035866366217551833585599791295778414042572767318425646426244461084057681055282587805469818738340021614713308568413809174051710767507321404108540210627441006281367707378121488931820798698831849414403342951830335201949857152686658783676657729703241966584152239939683109226288157695910075056059412139759790198294864233743304050261361400093632662140129669176950795841877615461016291828506607638107804225833277212647285975266675672360924736125950737995681786477082019055067184306210259884173748988187215468362879677830541413830648066424386787656994473311942646192873401414396752824865460957794067302533628410176053009389954911389673322874622050083628776952912747075029874495416179503404569135713284451306714955753535064054323757680444632182815705094620478388165568306158887716531798474734086457296123962395173073895605375328538292191147106770427295779834809547539178887081859459526193213336070115656855617914089214139146014193862891755116928533261691238451206935551483653078578402949860030429499056109965304473357268795818019020623422033580222105610000828723965573460098350276870690687489482025863263946061304478461928872780701837174870757576312747205184727136645284216615213940639226084242782826387161675629377159409558860670852204671601376772954229836308550552498243290798203886435739682795190346615031961815138729546667719939968457788936660905829427016362067318845480602670872138052334724899691608413344031908683217805819115634268855637940657851544355182932893835472550022231178148670933154464148512519013989559757834664886978359917366632909123109433026692083514333783486054768152168504746592235969637192545965175488686058166185929886210541878147332168240174268144446842668000794194832661009899742424382860238442105856278977566853850005187394714749447311632425680800291683025222130866516950727662769323543024512178100514152550833961094052821099767981279591266858637110675176652123220406076195249374351738130929631358959183454843090016152776691187079111882167709571756902745953920827804654107951789311254986170733280711637315806522646128172618392624099671347194431098743520250217075043501134524558521171333204197777503711149116271730842378033843472998330990261050810093044634725944093838226067067243020077348086001638395173331292672788714085351777557978785012112161601719827508513712588615394628613936663020015713909126415241057066040840820244436240444006579603153114642079031737330755524631007926072852243583221502846692066821328960003701370085412304230494515097537816880921111742640153778693904264821339485009202698082640827811244095801681062714849276722018149972792063431817258400442109241149358305100546160042870270036758948740632393441171910508180748529850807127898938911203268097503171027984187992269893421415122601388908009308595628331161594683729762654436810001924936798200010348063932212632988060703080104188080134202618289100309038902516864376950993556183000546413740660680732154504402456324392094806132323208697157689162942099320644622422752596159875749602604000720376225171315637058219642579702859676385514291846820141220508063188807297600129578511659233799203221658542068037315952918557025154456727904153936328545678109740955793511867951992080592640898603025135412148617966644393790056073314411102214090964736801081886104105103009972525555488232836551290514095019570427118314307724535993018512306069511623242583900495818814540678454790002226544325714675971360784997201675245570842330875388095091373522191900016125075729928976072397374659760511963002014564437463124133721120836869449381465797893980206995369588814756777002784003593141864176550209893766185193422079772387284831019391947540651650276183853991215448973294650196484049168628187929725700864020385830848900550532892305290101544035410450934765415932303016119356432958588934881392665843564815482982045391356555417356979551085389547841259961433818209781342460404505986563614792211742912515311322225337864456678511102200474486850682693182665899950134658800897019687995302396333106042287378851697536314157928281661503913216636836730754029359243894461106697542123711029509861614739149899927251529324774067622420717207944345757374324493088229635303796496894037154929199585094120840367449785928327582620325535297253409410012785601306961586545079479222949609867601622516345269185501794465158167020332751194679350636240101464742422582763201015162329179749732308690757405100787646133935804252462669364538862233459175530299059133644663800544297152033090124476201192489114545829677230190967671245435197054404414774821803133197917228934748470869212958539481362764538080943913072865393946793347009886418830701226204529014316402246143611199657237956704435820358240876126759908571570045245291402598941470589940514741508819691100776231143343070574732226224673452126516000279926167925857777450249562207155202101870847284795469680074295666012782055772897968426089255307283098711601020165511736760967352720000643711160977918104441135131805523438092570835340324754365681828858705261042870157473482204735012217595695679667522677379229860352890797039531928222857506640657985571756367312016558595053822899059747049517574796832251120073412429143369342928235748508762844564005618342501314752369346153067297558341515212655586822918771889065401710213778798702594773989259426480905602044816510386675474614656504389181461608647556092868849976751601445074838350385060003187803664582086744639117768551846804627491614721834822396031109330409075696215595175699422071846673725797700579109669351374045714429195646836681542872873131110556215188475509624397974354021487827407053286138697378388433274834745007198633875531344464477221181505920831300786089760720384379051535741097469222843522789760780872887070198527480588017821748197609127334791668726619112751032426820437577018445066940084400427667785961503838922426807339239581151957813549070022835356375644298289821020311076526512283422478634750297064666706921054212795775149944836051402042737226935496118366924043801210597574507572835427391087347355032806123500509380354165154129918277043993150063001265396173425008921261600862823955815478378606668257078822107311491452910039827717231059295322507600787087911032239224792743967440024874522898896423186247525128725094435338517659588778830469956850075792850509440982556989343000267397615023809955938301331616320901115565272985505012910633806711812932427007954385498909225918759512027437674632158940053921727790902284562728604143651427181796322250720474267849233240716954595281257667806525833497895657758786856460788196033366434481638756560644505145624485442112694505592249658858739107420960423444747673432036852149444271335967275954199004281514946590731525361336872613612086157333191445451616348957989983442261683343139381272329812377312798277719848779315064743177031186450801898016232926427773588977193589145205282557395338550409864646269369048736122233522435681067790484682700302045612675534260492394169665574940705803979246672742726353796801810901687864275125833397273478449226973267189555526372411964026326616022453181937747031395903142235218759832907265184610680742402742772226202881456065239939038027866230899354605624469357665663158169752341422512986235814722779846132545118679194630953972154295719454625587374422668813709893318864758765171712202655137315772654907851562231495783749309855887914466474172326252345114591648106935923386048592628605086210759630276012440987949401072719234084106628078463452692282082174551515247354459338619370937883426489537547646942727271959807011702245002664803221431507557982839986301521099943861162386763797234555420463617349557364650385087673685212238720540215584752253107297930860181750497786699858999209483662960446006620039467177675917722781014644320047146737874775731204127359060021890448339555914526962433558484340991751729436610981687385062828288792793005149246878130782455228121793442426979371114907544633969102832187782801401677482721414189112462428556819909291055587042472135721839327583057287309083892533751626935485772144452839370516202398396208190417446938235985463157517010553454386791995514776973657603353813627513529096072004286028644404131215180727843970864972997137386899886593231547901357648648099005652809467946146865954639805315396810989394843225190528652456626900533544749244709786036563956262778589639280724375944256576233769038154604475447081736690564686922940166390761590668276908432474320092791129451383639679254545191358426046463957398824613483645106731875304871229876840327200784738246719670573817495237113965205160900719864023363601601868560813902081229814505644214129444717275346288158889203344437299564228357343903302991829738727617822130741220080655177652472610932165030467169113609618537231018198499957463071726953733274549632653792503211506016010187501230917731955976833512362244723935831701181370707092874381680763794703391381874162906011084888692249112218422146426586463124558453546437379294002212861479964128338836947116778646923160823608224288605770592758187341199048847380661081862259798821551298912511377610769945843557791009441602370978481077193389907152300508491885880098431166380087799540474846432071942298498945741890297970244324826430259246472338697234982547046788627725043313568417574362903982873788359990301524190805600682836953314541317583955502676257434747587311213073365746418480034220645291976990362679812628383234935202479657134586758279192941921661980379324067724864847033313817396301872182024923368452442350791584605082434373463157103214107629317708436829781944681818119429357814453377586924758751479643464749949546190582917499578126762218624564729190147893975919905394334455948744016643644430296670425073904395266967688788266197252752930609486934983324979063316855071649968727981443763172500648694127156469779891663936217488928564428662321692155439297341969959839851455676648654863904793649088133260371479383316083835183322389636128298754431456289326627258483562910515423639753833061783724243311971885427914128547597985677083080563716952414792015439193535371881720027380113678629541688998130103191818137600777517792953293792710917704647454655877954290711663665207938842270677530889722245691941158003721012340046022767628770271068394741663431935386524118015313812873345910171197106217154654893622458084812903552683045501120707436221631570615861588098758100449280120205437453683897577175201979122923387194719349693403585768909844011483544349456671339587363922394011972731246410094592728495112646404277926226733343494925621816563329406808862159203903506189324759766217752944747769407464664807198585874838579147499673908177160003895656496335686558925504098850683078851922024249666231791774313940039532677715119031370082229094151449818412930000723104352677473881574477541364653354649801046385174542453039527791127515366124692100128256322800661569678908740194885972642183104721484807947741986897129822291232959005605752951697967443470271754717970848003054644658393308891383662896738970001969629729853272996346016098908025497129834495254536463283521677370370392647952507553765980419272956901464283286352439129713149038392984943101448249566365452363520785103282029838186567657115261100562827882578210951134754818317631968714753180083987378663262021843671918335225714426378736569219645122940684016038326250094325622673231705145489252211867410613259343617978150205100996826433552799981179901964759030885191635352623704345414205080753810865345275707340479411807157398186337321093672816292721732129557947416636137523451655099095677718626155586383834221550382939373611569747256317609774579844106146461955311494069389662238754987885409460345269310739587843381704397542172929101900886195486966071243281166770788459433868428495471758485274188018770026845449196016431263268433518740289035407878909552244741145584227201219835200175357031108230557176954246664509117026685972451564344706643592547625575008560074992986910108400637014463961923856266741949048547308873076094279898442361000405559262565506281653742804277744267248396925922714086339156622271456139968440971226882215474803993562431921105709338023487046108264361592968935010456231783588735422784816736137438514491524015982647540735594840886333536026791101253661025920563036777195483240753426043655515534263626401036851637726194943034937411316913958926595447670017586435834958484725781004419810864056555691241405994801599679783455710843077783514724440761455301556998246928819749580348115715391457982181264532100102924748557052739140302532690629771436026354708349496970496581619657467080111083749014787637669851648206847577420606293467803749816585424404257523092421014834073564724172687865600478229531800857379749246042631135917061621131642754051226292381549531763569571203829714245037693742575443116801558121757318857148703985946709683293001565978171575837860852551503991163580145489562776111891835329702191011906688567794888895936028707965064133868114196835359033305143070904085682553167098956027939268044722859920560077710454351475616028640213731498485910832911110288784762296658885318327340922827236416153554153732530981675085344600640422947934148622590027500411046939993298349839838158623387811107587911110546247512046917015902524681573681898448786374361406357605463280226872720914520234628290922828678787099018926768776056536963845812071134059896126133554843218289793387377120517467874537790032741594957459749705566283230951772474409977541216540025003472744603386010867574591864046712734744588740587283196646803495748772993465551129710529937251877527857211686093778049318427016254858339754616614565379593041437742705892977110051727459218001624589538254740939921897541399583118874978179964412248954738480325246573412647465052549483053452811237010322336995507118124268531250520696001738441947637634469655783515047561781789062889138016766531669589449971165493164379510752748390914003342441932574161797869986558059487235559508077381621754339151180349836414934730010929667893285815002120710739683157334234867207962195753753463874945871152638601970517124899336456237889211359705883010718650577010226213684398293418747527706185214037803106757564682366351051489405089217393250986383965650354967538395620677694212069832975143807056414892078965628358107314360971334833686182367224675253676328303964961066420500244130111001539452179739321371176636865024832568972282327520748203726190635182892658593646947103701860303614855925004348205969585136157287032993341828811945870076109497337655909340716280889617022208429387426401705331257935194062195212369862204524098677802931202587862626188700473321797078021835816215712824368435565996986438321860059088807396113489415402560073766446194540177086861773722565612098706562231062424858827627284947709716400527531467781704406551914889664555066021360867458000257467116722679743329045257634886077828307959499386036306986586005167517132821747476387666707199472572840480178565022093569492076357641804276478734607658521216616157573811657676423520037898087743555649893196361202024972376337058952988597366556291866831811644135291248038892023853072293890838085941560475540768931970419857609680344924728065915747662248530244195699889404053380986114245250748514446116934288079397252677796113079633254008848798889822053751341458020752007867053936442396675125610821363468567478052382954821577411972231565162104451042061400179904290083914248727143332822820433726678619967069401237012622817622368102248573067185725217037564687087223404977425390822647492282835119266406969154737820937012583486850169888361168819794367299693958709512299499695160384514614254994867387085116842219398137794510059539345059353332937032343360587879917712727658413226393173200278987944940061863710001213944897187163761656421123239456697668009490130492063635513065509625987972503466207886082559147787810310229259160733160604307750392454405619361675306099220629103054216208145834746035803850366558126698362657095511111558084705856450377210403004025581604721861394143000526069501273438073043014318525802494843994546036434698267105813471817903066988228350931359158799489904796060853865226926495100328985915178708566887090640847175250477238308584257973039621521674133755446156831050416368850006182302039645584573039242296945310103888511909011788109836377293402098964427428205708758064883832140070037437301539192077938172877770573216635430188811630965748934573670603782246748442459558124754294347867455855893346524335048900223260560700978916734181293426349768837952383139725353309795973371449457266745772172040597428606487484040038834764625613071594140584656071908578860554027149053167265559020604852134371010726951210428663886156784244894719032531734111097422153666009139749677702056936738130204555100346661356692864341887895203598578337152172105938365632253129946121929911714658604854443314274501301955826486419123629253619957922552020888017441694327262901906889251302805232361008751028602333856556323903607584866014494391934652113166903939857679333266493563739317394896410320626143187506667929442612096052492463162625507122613506850759546586085396974081589288060661118303211275088072742160256063520139178456977901880780655130376900020652391018152337376474993839687913008680249573038578159047000696254564444605018873677604976559423910360449775896786648404246958658522204743034732676642778658204724949524823364671901271642334521460939488127722071740767677086169468235801040038332211922825655569989698363211430954471639103648762038249814285221544527854342162026870859991329217503906844324885176790108219693082893694930162904985973412197578847090805459052671678272894001578893748518737362018397645824439387049068953892937628072807238561966737498904257570587711400827275125322400573136457210026067276656249433885266445620089951600184803994091908994438583937618438785441528148762119375927179952932575289647897345048649151845549258712003411395917732274064822801471471034935366567814632193237657822904581494535457088439546863219534809259604108248376503873331073777260679335843349128052869246774756071401404389621882606902958660003929756734827978982578944095469918308023379155997200842187644778152938531145703956164450489750842235065460731456216580253221647391070532412775276860305854704153365128451553278594926411001717411522034084230534420472027979304889064412045210437763824553614295272842086697217142864709048709549957376049831002494620595696323697213598947069160625970744121177421305109622298115670229534600847499504567219982539494153071736712034410152009641672344630038337519851856843563222272348529979213890038675490304122348812651680644435781929503166621106281306497573863676147084695481916163591720258007486249357983974941014785558811343569982755783951826688437880516968199907907094212745632509478228708554739240931167971364453910275460669365344829669079407613785540836314674512981187712425184347063351595111858505757037805123941924912684171089243946296176177597196824709118580094461767454511667018393151754528043304670672935977080167783877369505521319868965844172617159727992183103201150117772856758976194283697126471274273644939308691625975926995488444804138360863181784327196160805913630318905093879905152362141962050252345382622871621974023183581264328507161879653191179567851500112191329109714626722690295501211396234299984659097243003338558766189103378689810700303135928233348313789756693443673864199158257772534527022527213317805210024692005002519995461954282987366347157380138677210721460325241069277041028238891782379592471283735065610956227801459189134097613502526647946209771344024233770219194137383457033005449979514400755488953918953988882370575516970293337041720185447040005062897738115818141979565576078874587761005816634517294707153538201750246392724952703565106394306017940455204049907414237563877242616757877760695763736598812548292884681695759410962422743509560802226785090512486058263387968803561543360606345568690874176684814477458914429503751501434605226107568979329035804402197959201337532846456507626804220778004138413567582717546175677858023824959078252797324643162634182414079333169549064999659391273694491252166752725652714390466695719420073383183765408285113540947816577086827626219558980969774769359163015201483774314884915222861579690209970287783100997057629503476564086737958557889256902555878864285482012300484985518954457118537629995328441128162762081445655783980747712730108359331416863706516226035206911156142280229182267155385893720506921474039419137190293878114219938864643200511233488408363573580505350739215896394419876613193850570945931105561572992059433474504926841341859205417900836819825418795735305063771725806292316282417666159465666942971871443478731868358929310506358709947466416612576497745527459684475437810608491061398046164083578802674484468300308478118747213548387203153399060132258920251755273401140786737856651982583484069591776172037891417177375885310834187301567097670316187552059601068123845593662558151484173782061129443324127187872362756121117776043113094587635136197280781876642870240967254205702184965740552406390530852671624040115872526423971793381112039089939594885202232806284065300238730904156695059609878421596966083890827219367795271958306262856161735444712367571043063724319491155432285976167814807939062002516193529147305107841250620327900236958342439447965218775350088006411715206310156042990855723419122814560420793244606943702080355219165590422751963168122646923156917541955514215882051727108313938119101539007086184145177452737750280387572841128042479429671961066525089445800503272438873594915470096257341907819152627401913322751535056966487621756658233431629067342927966357980795626891728189674914662045096150892237636208280125907383245167703107828469266289138197240439750606730242733267003644828032355141203321491255438348009628928865631687434912851358135231732511616751756410389722137901672400450755290674345194429347767972128154048325568936061278746083994871466729419949724060743504750386474925727387850584730332086926602678463076702704983159213359959432097594091500035624564743167775363068718272483866579603909143928536832035515532425944336645324793280528631455369385675476262638348141738957591304957147551071777556658405037477745669506395676457157105821244941066228102468625038558080976778842303204610672576971271324424993491265787835666129141029778080501401936367018088626197989968930881162788176581510123798493838833835792849781582032329005795431423346157249948131803046109968599474581350637275723922825849345052736483274582480369191270104987707311020364816462292915058930639533113860696416358366031467514479766732979975839341603060251783495446154414119610686109449015852457596780206736645947900368952615725899149459047292556067095908433339411740581388509908906171342196590572535196332619990751297422273743047948079055002102736785649939877993094090148367554885469885161230334820970696880340061224864562554583069303886088911777943096586001462250565314536607314772355412959703342824247567096019404615316029915206627176939519106068371322430275000769488237787371843105197787876494145341411013709849610778724120242272541361312352342606411199931219787199399617333298316026433379915858236479348193500229751765219894459701139913079074974411107854994037350302818841788548484860991426411592367220908952901318762394263481348856715909448616528663119472318159411330511619554570215888403468365641499863779399734972175750203476317825964373137116561191725096235181009480014748356125076750127880805938565934542182046550553904790833708625441392233561678570020963726983815129488915337989920492739542488638834300896738473127500415643650105502246324609636927241304897641436944541167210865100878212243418879781439614399125165080982692193544258586221175103155984730645422772065978492342863446722922923062828651146131103351763654151719364870016690748172050936935868192497437593153691302523930403414561976024419736060985719362403882204974094035103985464654145345606294121057670471638356935585597143277058352834739849572680185048570367515416906398221402443846806861271372382140359403715577995682255307375750681542220292520805378740337265284608066449340528243198451161525996966122720429225519386316658736478244492749005306069383600274275221851957757097038176963139551474531695880909286122669299404072040544302014002943371733038466551519662026366635455825699300987905582700482131368328478511409875749640005932946717320376092741665322904081565217680331897339542092339513521163139108769867432224114836436886608486810155274767952740348208258295142465354117972232039164222864863439313810255015503248450434184265190740227597860709642344124257816733303511235927937706345474570155039011013727662600860526403344969341298601869828827342159119929068492128265313653227251571823320108878880548550632103464269605837661444318614296359826635644175666898231193449550562248767073888287433987481173635523593555778683281035597934509870870948257975018758537725419832601771790177677209136660358371216300194548415157814587061618806458713145301411494956439376379460818440762680074855674774515517581033900413663495901156976543002762174621658374373884362871243673795470577404650696155268832681763154891047952315778321533195666627973508452221334223117615761855284421531065641360032046710809836222340950891960713708804835917762890373482437112198489960560527226810593386618601594647960174178722385293442517896177148476974404911900852181919880297933649112684319890968503780888743175854312295788426287907757715446326933644163988109716669147346047436784453347415121171687896313496084152619163925940028142446984978700665071349255127792314709304227188918737005043236494137469868968345058122839259263205632043083721253909946447973887971832667104734661762045186641675997618032840396157868685742275823049938628511251434963499013185253621331727627706563224866925305137345142170268923866840140432998463874612942836831840960477124852223996916391811939485784211997913253364899957811486367115286474015720320414434930533407499563716635088349674282392764214172461263726420537880063959727280040186081616799998866486171732054922773164128741978449528956407395538226130800885437621828574326637946100434878825303427764913442164117674191760415602209089317804266048649787394013952830387125035917691921193950581538828714571839079042219378465777630641693044683845616503170306205472478269564516012265639946459086688744044917352343716347056998048422481743083566978530126754669213920263468547403223652617407496244559103956717910019445202563982499358399961732951988538590377343673011196497053737227108132684179864855712839281955802991553318603465456398602774105059896998596749913294272947214137893299514414448019676674260078072475317578717496595520760546461218642125022683602061873236604224864845160521860137377151354442061206881887846393428014171711550567634499944409187077026779796012771182493677289636770470728141740027643805786350421863864892853708917581687324206299800904352435633513606427201924329162946035199671755081463304982489053993460530407562772306006972339436634018829746311118026789274518788835957003881331046980243716219842648530342434109806252164201805709047888130419075339463958575622341741781274694810714885743271763359933767834913193227941394017280888780793903059381089540465163725852620739731707112457646505528904640817405955574182386080654924614946530127454436109291846054926128750597627378248058550642695048482672289571736444411188990926164160116399240440055278948296330982169759498359785683512714364744449970290282128338456629363940813830883005635383165281282957545521501341118753339173895916075400042226410283227129362400767334046391371450955892233399063529500534266092769434883383766975922092896530052372083004790110457373343826236096289684498785323030917305541345802780755632559335448401532726587658866426687829218593341275454066670109016305989902227785204525589326834621626062677501955148113177642625475275423403539357000849167206223461009839330595872189959340340150504541305911470472487867901894220398776257878324942128720646998466134241112708237510513583577749622395668392444957235926234484650906846972334735983442387069382426545460413968641992757262604401199480115060445773564641835527399248662383417841483898740724074436557497609759942874423238876293422333098593965223187502109383117295799323980247564427191838976059455681851948480775802325863640228387633435529216370621849981417089907784603567972579871002980299788753519545807971795247482941675801946804425888296053329693645602183727780888838832871696017669296957201841309191306166716706668466199344610352868231921857727013106984594667402365651432740988598561442852401600680984244885635870639155009716284465285769091162371061976477954951656251806573057135028678229071265041544121606313312450715891158142175916141442466099183881551134180354954346676419879508560676722065532354488810101746367128530652507837773406193230815597048655074756548591343910658990022078864934386213746287541698002007257829498466325822244094016536333801619892151767691147394882332010637592786884881404904188916457518897622203632374601387675522462333952178517697728312891832349739000657380666742129337599505600277679802937363596963953993590983910776064781382328355239387263154272690137044274988049500487986311955253441725960939335667209490230620159846345672423058299454775356710901890570159938553567011339071691654003612927917235825638020652440849661498475834129936873786278451609295645798285706421959866121373790261780106674792859400337178652774881752550366637815880316421601863257833411123818449591070566759391057796891858557934740110901366070375434242931825935266318980023957409450785335328558933550238925875024678172361921616961486245232451687325012927979709188885757995545126664181094250178321171980039585569558246630277740967684623755298912218056884826304374863499973561115785632262614856391023678193965033735381199452396283977619384524282623694840276913114073520799288835587467386776084590458410475120731781963837237994616133805901702037722970075998083598367705237355490720860231800512011821434042544689420209104356554901333746509243463420600846855228626816827129811393453328759709162827808314920281177481527365200596361728452513855703065219099492041768443589510391079219601934250982625547200582000284445159999772522974449221901469086664165814498381410510546584906883298895258467211783579764412604222322431903743605013545861458894573394823315201884654726477773091236332655641225742669783169604391920704461143461103054461868811847042303784728968838547455776468183372572689154180193523211442702642839883261447302105002451447193208599103171078013849592309633075791273731118989651091746750896126717270053218490382961571244695422139227929325218408864440202008390036009060012133668630797324097965532981838839026867872151201580228718116481787538797764690906793941205432817708196191033909281340176605489442090232085461866832033832695787129121289712839265855331502180466621362916144652818407200511954258553895272976758076579527677181792052925009855245898028565120806177420608342141443749145106547216851101195074889185216907186752890854779965489929453882931617603956801011951831523089066401146100070928598615894749707374887073178418329802958024160409903791022945801227793135730681799848004314392930328586601731817588571082605560737421214578489212143768437511554310233126131612298446489220978552531870092946775205528227751859586596949523701947330704743656996661224093668431754901399475587505366159606412898570267304548171063731963941998202145616497085025958320943395778621469270387363146357579097069450351326006225915344452205658281755159363545079472705560884342977664128163120509772428900046392129771138929927538631296120074764236355968730473290036204762181780664613864741538698639547183146320127134504605781548156618918911445338919639254193862738809158757729200568968868139865108243463039730452068813518849025161982778562439557020158186562263668875576936900971842607610495978998883639884964146045467055851379785779103613615472513485937097060823868973174515853256974270000417315513587169496107735166327584711504780110093610815149085760162496568190457364961539045046641282989350744020438249848892267647611695186818376871603460420578574519421071664259523479466161769064041022218458969835941057276687390291731006084825801057592880430687768884098105689185007658764012303147943663034974255628176793453640733061163169817188592672624455050245096204485925734395221722785703637456570617001958614895796067954886858051882643536211576851500839686621699468435928153915884539670001539655745278348831110541044972133363656010087120646425168027913565005268725273062747674738134786983028115801666726158526330285085244871174560436835974337563592902633407065155665603759313767341107768809232141977876348377319763143283228125868724084666595036100292666771355237772254469963484553835018283970789197291743954489511816957566890558099601874664923750667061843879172407683589131860631591482007545942037780269650962309171092602960037118652319124821526721618906463491648083943326864122647294212957391018002727798364580638747087253688993820503966656218105958711990176411760035486843415606458859878372646869884989314729140820945362843659577198506318883672490959879116159621466278893380600415402532389377463994985142030970442087636493967627456794887880473642301020149222759355446178199072118823198149385790309639244250514089530860037212252286329578281952162407685937055828407926180736706009706775354388041704939088941927594477450788519876723154885712302533047993509575894722050268635161442368011807295328516959786538379281238873670133392080834017349901631821487882437384688183858374391718566084069133605558666829724717466406412757923645681507393345844600904725400587755924730134391073494543705308953656372406744597965537976418688786538526305345663938155283867767799183249202083359353042534584564793612044472713008964026707663740416882285004338219096869173001786474969689403297612201132496609475667059515986567321677291314040481070092784109034047127285187847212586470501397004150221100249616824854586116170503003969878113155180583490845188923784668707696879830941777984465360937254586699101217090659483587222946147737630446527127773464767587721231108160621994004398466341458138119202558061963157805487842902563123557045495511266356721884024436907825741619163855867073166497451934867049919056207755427963377595654562029285579465847914595468988394561659940516627854337468211279825889002646386454846841957209286353892704207040072316433980477736422828137108215224463962881213973676855845551901894502533208380278706254163937463678984914594010725110563208484316839291948053381772591572093514171752348799073820430870507345489405369356068195819688114831346817868599080025046527570795697314856929900546645911117422809383959723790822663169096696115538841126106929737504740291646363305908128523706445971029037017530990460156823011818180754448722452407434987459676754439732798358597016038493569598300508459211976478367585751207835422883431086076400158833392920691684562513393203020383969971099498584263002334191219585439863896315612879644886171774741033454655075266974584270193335888107142717824122588639494648550276090845373705931807195419725628277010679031163302370971260279761596990369828035869744737799104970397990819026083086328292128035898325580225957365116336685286644874363318792443654344506679173610265562468760790570287831687012287157136917644514109632459365545517117151922299699625668249462365588576324064038227978628496955183522984049399641166659031736908509496451341959851585831856809165549981574482202787365039263900445600438262731242862788634266742495221558325103019776661585384247956799976237032779409644517589694597040721562971559185771691438210538101438051823107758144313371416447290133406586537358671989574221834632870466189665566740131733086366408102767823088433699781972290587566289065490773135752509569472486844163602070174334730864518415516598598871559559714910428211200942460903809316538875007678773617797882710962382412684209857243842446075789188369880152026910456169320243468276953763813840293716109196041752514503405042019211645605575889679845721721406251662317424868399679499837911469023746575320725607313612246915786459681297610198562241051593513240215366385237263928126246811386654599660259942407410261312277412676163381978321505303237194124605004058281242203411197882032339798756176033168613709978707087494985488122755030156661590753763809465479322766396710607343563039301179664759821663441716572999451425845560465868643865472748655618198941622467222436593665350314167294886044081073316365340714153109356143114922281138832642179405425850570512105573166330213356065521064887329122852370241932283774407993846688612070696814221842470493741174908703336577424947434982394899821324199193127427053116760286340969377036254918582581755449679126948832559836375228988948758569432638225522448353885759473036854027408366588338189552078972778071347856519283068957801736891443597073809940714373586492029684972063515698727606790777757253302055013557445143085730800285907160992748634598642106223651177173376763273059094129397347657127298252762515508045722476896042561064047095960155581961545606905136582692195130830171590391618259768019467342714962231459284117637394116443457243777412742980511871668803165765221455850750693666257133426859174654611744636465940224631713606896769991251535731169602408965673783556529956314128232267308579224284270403872720786137005391828033368484411630758646092391814223420600746116603087286478245270920510861806814762369244411084464334314341960943409503712748421725821376651724470103646603927384736601243531966284817750535119216208757831679796693081070117562234949726048208041489683468395412468896248615786223075412648733708377249551307015259090937729749526515423695556174589503382474630919854840261063408758434879642865344249198765257485856114865952872930026744746621666152659719195868752696533734191880398637067504089309919651121726721323575615056491718218362359798117462612365050201095746065788695146063208008471997884596748795043689952551468499151406824697947393455230931339081667543615646745256809463932736769125536627684528480526519240764979235982182579093783761409431470392891467244383427396677839366849231538009488779722253427784376693516613390772165520150065070527958211928942063995702150552782071955467058535620653427951074467864435928047149032345426844831577462370540411079837365405935864358104315918297819002164094550393544489970359810192620418680082345783049307075988530495270803323514638149627099419072815448939146915120415523689103365538173741061765982051489542884801084498775301551585625315769631397596308898909568148027346440814813296935348601375890761231239867321901597649948626313244250751403038031929022732331505157832315816410983754710572136117051849830169064710588668713656524583901283318985797530703946798869669408874868255099471528652155975347413668896219138532576269726268788996425686783895441848906818832163290127751076240949213578807836042663099451074394504851939146089032640640191238134632913909883465299471549683498024361587228234062463345965723867774385172242263060609633006739096069236256977893924880777192266537432657443772744174223032017031299088918854044415453226423184460277302333004737763853384092928392929959263485172557625748554066040335045256591985979279884698751562876864689710893387340738607930941241000892480849217827588000511403181028220146574180626423255706988560142694021306782620844640914402603615832970981788274344139520227380909576207572849337023897314761583536779354073099746124008322083253103449338606192733730647148774584169861953936729681919802642008566879743608287827377307922626771635717119685802377434691180793162441152030725712660121701183716531360133130944192849700317800460639982837627181114399626342697049736239063140751278020657686373728990862213844649582769779377562784319106720644066839176162629935927990727600339518197025803417232330320730690935143004347161175891786685186146127828782420455193992710807328260455091884775630820894885878667663186154062175637074098692327113703796244509236102775911641805058995648029363115350767000757535844406548099707416552311633838772900180023504024416345556742054065119838993096775994315262352179557907483063495577658371992491494600651009132340706223689947817520398794584158283023729388222711230530317235543291866501609721828821111857583014927106686308741538199753949238221926169605265674073764448454584513725331778969649586144291446477639020911416932580217383087887390591098275044565700325293289604951377636754184239152653560520291400831951216405654426368366572447284341536384854241027737051779968277654628843212217981304839465729190209473892697916404520204307518735230944512911252809199153940219750560432097829741309032115373061035813132633517813806485505425610215790666111642302777834160024239981970968940031050278928137649172473574772290424654683805547036295910041854166648949507061106116783365535244141728235055500927665304211093842855573554605365895587204991807542239061727458491442998291015875367624640598175539061420108324014917182187749792727437064575039163453103044832507937583942015796261537917864206999555858243393956028849923828863418605438938567560966937918296109347798420829273453267211253253373080213675464752232688237894754525885848417705946633710828676219404748942018049676478392197771364341072074075542608011069415454362986732501735822733727673100234046045445251896950321080740071495634297889242388300863055416270858605784346054143065650991746403920040258835622083713167333810527126952988497160513148627895539300140690511292485478582074182420357488849360067513815394633712800853147316852045892960039209073671016324986561464467390890713708001213996000606964165889903829468837090512902783414333422216424092275349115081492234876950536116992226644025544398105547646267077164275379553843045996588833615653526841392700655522397818825475641581491394754920824164967046749878925777290603406332344601218646882296523576079389615890551810730583070902590246378558894955355040803350159435201548601999027751872672605169684704339385774441717298673784772333930413470069707204445338968550747184084399187963179212914486474050767581789414108583026410175087625053831990093591539773840395048311107599116548891706768696700360479579227877837382578856330547735553443009801093163260238184556402462540564075226452506458063218886048403605882850954762025313104061118203419407475586458273479027487656775676869539138220993502054230369089165490059607141090961045337894633241611123192421763089750014677444241684868510390217593995509718802652983769573638429577893753558073668654282636723020102744872347698469149724850479369259319410533478452492306989046872052879508129859901925548367246071100160541548459276561538574324740487592976205741723666215318731759588876407916228349150936789398864796953390093834713869890725507488198114356303543739562340120187040675800717610643723703040118555118436924020483087352434671096127146293271991670052564739994954332074256027637166224253164435450779771207971641831119195975194062912041175948587705967474451163902407047383819006153637356029166319730155277808746987476161956766277227478604392589408703074511591382111918717097593831073145858982886416826246826519695123330064264208914012159637542446118191906309081896287318932488219388491313430063902448186840953374306273055274389421337516771810725961747466700149409002394143421020769152741850616105461722701273114254811054206166826864299805356776988366308845769258722799069539651893485434132365879949904558972193142275182920700477744582614653810548963455795946223225877929832923213848286170316111823588185733904985372477043360292405213610718373347694704943530621547321445621157205550021417174405457096926956872945630617588792709744384912303893747881552940563452635559641947938534564039630461541181123769528178424595854032589847881169280122830563691680380468127382494564920424261955345856829922957946659743257972025792087315050430297627189784120778873939670136680323504937639574207279375475147052936601016839120523795316851804816917818362917097651606934072595335985899395935088022629457248961641176140850467693527325854960576536550610573695705614648399453793664105717089790161086001070251761888662145604584557361165037797224367193336034548448953915111413197224044599789086098998636106379691823182396952950508523800171394455806324977697290814296301434972254681208757987552019433023995449858303307336836631985303646212386700381523784259960622444471116696176674709822871438540363315437848551448095279588141610374879716292478512978356980922139897398397466664450167824611647560749987446002132147945033903969975893610291043477021395590558869590609226700478265022253363344180095516406101546348812920633612605246244281584383441580853070133515343150217519156734415839402771053393609601994800935895600702697992577898877412258861799572490087005956434853016455699110067178932886144666494279149181967403192831416542112363992275709065721037326695874045454162179297146576374233608312517409018824039779173550863668063056982809308666616303034451962621351330451160793782500434640167936871280294269413965815577189653373741577558569126891472929121970450233970502320939160476213045637911850899545405670337741113374903237365422756058938248982199360754965392558332669363630755408652537178260997748400689520035801165724241800377690993672206613557883823283478675242815671073243422207576525534241001641497155785973386072971949407677751943393385920678519006173568758960351982639916879584354191964502525692193103441046433685301658946800649294833116143490444100881965741433805270780107704000194224184976676690162438104209576240887020230210299882148953083668126722286562190037335699946274150172276028156681833857025144554915026713344889891039341770296383783167235296840500989451748886598951130023182544758953267637200204551282566030586124154302185425080621949566911845715962249939185886179524653462692404572498318400802016469608983772832359222388440262136076449587596512168015297638194864367522188844724306368904186911142306459940288280155553746406068049730995679621955064241838605823058847040981181805279391805545391503467830864294991912302230544643872990950890444985930206520775118865492542438366704019692040763648391098219371300238091649651602232130061773641797595935958862259337128008009970736272744340863663291827400680661768048718668926301564885058366737264775523755259483875647192030997719120586288485973157259339666704824375197349548090907470208752522816632310501366934960208557055191308280651964948590778341172463614615925082907377724956024999890843774878094568963140895246690013325767915427355004422592359027265463994276369389038076160418942910369518110863882956698124572157459311575320304168302653344890059044339671992399619472770611029115868708007413758492275855804121624601295513978728865036463053271314047510593596934572538446728683639949405749183607512921959272015685290134446701613275712027326612032001521289802620982964749506875119425284090862875659948515358329271277215390111580525110056883331382615782446512670246656648087464279425880975565764643079785073125993061504916074885974249941606811163420704353682576274511810246126071456365056060093781583774878413412021526386626787719424524611255314996210042613725941880758180699095122939608370301700451034837832334734968671756777319718045093754692955705346550936493864080805701489404009908708667763084401627574263851656946211694773195523342797653877494301288734500911294154659240935362798392801252622964928934948312409522628732145371622047233540172963840060655259177518345972623251046844687041306137142684170361236010405032566533187548102850131097542696498919097297003023365857137581651377179716862401728465930581879258162761564052883498178339265428568514702330885734238089564051039406808029149826354120218367756081767044729821258632807151068937361622423979562207956747467423732303265687152622427446451087218922378566419964805896515814322046849130678606705952903534318202903889547836969373714033310029709987346809786863827657199515336434774117193407868065659357405530873204942936789042406663806729091020507159711611088569935184102072656570711510965083871415767370172211031610427680588536303444848611318506635526405771825271570675102295614544771325261485300499171823783631244536227025349237749657640312199166745402692064978704868319970535589879491225413667724571025307291578523591333831688258360398786537839158379682833247080532471634559096627995741359122742502622539153210128678803400848282742105795509691797573726838422168994881983392166790896699754839425023915690672692810797891505924730421439613661955183727061145612812306924404699407956548376093056656977374858296767931523970566469783943411189549431594495311433220888503650929487642036136182311299712617941966392941793796307980004552459819807351678668919208634456926276552498658473427288001918256758644457907082624125850981008439919828595711290886176898336721979792036614371828910823287922340853195678293485360392193292942982528623503801839908459065077136696158656908860092221162329497677697821928031934207791221971169032882311789804215378193775779720419023172751809864759042424540140446465348348791860626709103828857730873746436748376195385132023479634689038753512729854366995474371522115670015749097645897886856281662360658357143289255181859287975690922798312164691185962356960150646766468892048680741600001456951253159457637952508951807180630198777427147459344806935413458994691482249221118442354153602952510236424142997484416075233036319574504331373424105237915183031690359262379853528923331005723778332605312631152963481130032034171902411608034290616292991630876292510300229910437481132711879617373418594483869092483288507973267522835182748017366466688594189208771710697612441250891633785842389325814275597216072455056538524694309515058671642566643679066022211531017259888581921099011250690462971259542044667325376793859841757331158262375215089221006882990704683192562457173837562739355416352841071954615619916889844728868493824777740660700530126855838889615324784967321918531678553254956472387327082923397477653835124545386202071895891878604766217770886176084625651440322320083333707391170033643747349613028922812313773823619296284864084569796029297275295534565658399738192018603556546200941819641032226744765328549838897298268775011302482931267337373818364559250338217089089476998606936468806539173523907041227069045027952166276115501208110475896348464021180831399964884100556943335684202151354439599119081908506042405265776698764521243581595949673532461087062570378121184448677096896956094275901293633395255311857793823378183359358568872566969727310092356034588389989431962590934322742987086180232950646750663049953197118587802236449349387371450608457011117878583167079262315610268820544799922374243613763611375178952300047598394487917824373291622059675713947150246437064075447080967152337082414820532320833961696960535337716254278991270489920923688569860655894149150000923588412015764387088999362462241091299212363730039220256587716687513847942769601121382731506068499136244142801406731374038083152938500523998466937817280418097253518921701709827679512814908724104798676856068242346379058460101566521151066162978779169441449703584599197870565664794844103965111623755057238373590486785550585799585573783525394538231604907615748470707818351410329375931238248042390695124596133405551624765480259552832749434068399714159356742547322612806348051181845559811403480929821166909850087338230189951650500954928451718425176385931625511774919117056114563543289719078270035570187046393229361674063831538669815189998723777316412193503855823528885399186139187015391266744081191231494884808581335279361679026994128114326156383480493355042945368229136955515236088498647275249265208956881446956348596952815592174939513844077993270814567308784327900767406738323137161748538114703348167017507843540402112736457445581173584683797671381379753302220466834868444598568622459067070704246427803568499121803761731024754602673412228531347837538158384815439561787078420907947542337237180497058052222131192778863952090842029234043884945790856320405717506249152000039607353285807694267486326407985230644850891041624175877250032676032241541586314271196086099614410213331300457583398909636291458080657136983616154387277111919528086631097378359699290017803039137138927136175018324437804962701651269948387286456315608794629461185001277236046063900206657867914810800357923729197723747954703630119743346714852265500232001815169810740316388420920094068097990085038663460544003908706277252639189350105357585773386226336795832946239536524930738393235979794431423324853111674897029534253897682680835764753546309184974500914800395332542760677667571947109836709189924730177267707723026864719045480045189908157032848733708834418865793726007112370073045667583870945097792772642502333161492922283892337246114622820494873701463496585680999839851797187047125993991989441184645678217715336058864979756403955064031922683970527640813305985288547785829954603918459552806698042397988023716235448742212333398899490500023786489161724653827666931788720195426715488037426931797887315091125930709645872979897404319844310309375541014134900207739152354695409172122561015396193076227895400539491531872441838720889150157771502610742811091690616876524701624342846719890530831279342998322410595276821383474045719245368082230860199443728293862980047892870066068504664239838703825462992222308708569474932167016708436899957835268194576453908222299629092431953021792280391960415253652071297613095742091374638541852020148700890522024826988258613361508436582703443198616088958149323391256388497758376497101591225951844259122590720796787489970784147188993067215086980436961371990894905703432967066646265725160329739649991103434552094785041546713976394397737583509984608861778705193283875070641716178540278625046227459444557337278569890978149874406339459148976222613369592143655793412814428607358955299272939874255179674987312212840063391284335940612790812110336637433921957783254480411498804789383040084328707485367915794177173851189209530891103351892949496209067563852918500148934514206652172507985292905184219411009829655392644353823653371774896287830608557294803090946661420513518065119419250149982369049176703601119920895693480752158202386643862896830109795916026817594170151246985231668594594337963479154725460845351514359151302138767067440942351660122967161020424697286398912506658982443460961555719226595858412946042046266950280014815851859130069843877749298003809199465063776213218242710111632767285046100040736448890379501949898822790148341418927490519526082492961581277076781533855283135729285683551242321367775563397764021517189490202235758981096608492238108080678188536939846107211172744009932432346477984626493112264336986524092340552634671070019785500336430755422897646631852382015116797340419552142470488809535129475338993391570980136063277204016448284502082149304810273230404976924770161963990961423662537928277159699906465692912954456474727201198819284012313687185977521050231666267511744346864301135770797214568838749141104389291608048978208622446681114817334021242807540932928295001511949922542383363815827446236030515129154024170386721966750399736597631644346181774806954494953730959264756523329205605208337184868769802477291870353306300189981404004835955004869747629294820400255481323097510454089352802479866808899117939528527940131294269401880073796189658497317681646233117715579345200800148939421802488279970319624820423947130899526423082008091585587820506699239493454938473663028700347780466765761822025087788719482927742862227406471174729472358340780543545032970585144334608495356176553867839319873794568163776984036883866749568868120724923380512992557270918384099610302816604729463631286108997654715173586309215243860383657181916638099813066125167690378938665199469541182220862124307411745233930225724747185051960135197765079133617691119505501151233681415394718759196029096217379268363445730184169221103497377931994805860482521573454192671811651938990989594759044458144132115677138195286400329157543811786167266693358881649698743886737033403394742128165679126101098081315576444744321124756102596784132411188862898961680981473290899923902588771838783610563447911898779683353855844048778802931650641304546402216117387785987838137382283261972573367871703311495368916163139282359069595257819013854738240194844925363114120111692925662350653495619216086490646954390280645539903096040192130409659755018920069866192487206086174185899560291449365317469614106327692008635884517718007199834949489387247915234433625653573604056342141695255861762400972025222033663862174632385656619507033394454097318142851711815073257774327131785989272677405691361619614217993617563692970077877611799766217123546955543591735437696895424818322466985159764242204274828482196921795478472966456894995474569994595269711730646606449897215369302636708229784432851941082125471654782564434758794863171304222586766116326326010137521187748517953672941643054306822651113578962881628399048486863544118505600590707215348543368143098579277316973564424328827437695155759064078390376150872389290609244828879235170181815895220310788354560535978212146483816339683741664790585148247008276320320178732413104680115491606228275609354597146100492342700467147871026790506675730213793771434634674969875068921301979163574903051310057124916290395188426859777494493392950086556059438680066944641715384486565433483030263157187030834766958930862986976156940337351246263833144882899268467293677306030559027724621164735906765048800866998703397032569037489260752423973611075299067865785918866075272700131911444339203379716637922385040699827185119427068967769084860075480892036514826851821140322089986104750555081910677484956389382635609525064728302207833922714271545883974684369839090057678482648984407786295224091384726866144632558820857950955639080865677077354277406390621561738068391881734405873137171818120464740331568341930803791616781204099894189328637315104535756940291497760928924149011811877404663181930165542567787871473723724272783977642779874373283614013157362863033838090641035786114905312363262987286662476279585104549042255195152642033142004255158222239317060199056442167429579532722393425336298008614569385771000758434799021835237975957479867062277846435089409614765205292125449528913951434003756099957428735458033977639267058729752966364859515393957733288441195738315709294143442727367716024794565871132821139658922405106628001895858989681706817898121260685019981933448861781413030144764080013367933733177542567170458828145290830527780197370515806380634710906664345316167317322284947553373062036369062626576293912695000116947100192829802977955463545339163057863815004770912602884916393097507096591170099347408667977677215381295149917379199079534144348249462121662698083293547245858360921643731566722036782637290993175902680285821304037985648719434386639637989016175343680078824893142214920714688159892310214623014382231562467336538759268763817835162279365790490080385822699307303151383736046843128504044566850762992733367439271614219097186562113565851179316314924467630086260731709015469265846608255932527015799162150151702036384409181797728839966889247092546963558535451899734592729001071648809174107579579481276749941257358996012464406292235034795024396281792529793307094799107665658384828489278621513149586928759584092168021855076720308629490554660870130220701728265507068372256664942500815579752830016248103026167021165134720073590332172905203544806232472081879298395778358762138436639866361117793218583942355097093407699836203419439053403259653796825812209926664227100187205387416156639656828742907960866558112187817357907251062729529139902118576608831747953569396324974755952759837078357315029753615458567566166953716862343168254560686437920581400138840478889210044709428656470030268133345435934363734915227696646676037448842692072449880386267859449753136672114356069379335877036936092005981724575823615884723193208597306930199298729405652925463644592328295171077973201043334696616337044320000302267032804837996349583595422410116477968364840547210073861033921261307686095633904552004096310661506822177297887955722939873705736272529229448578960667610851776549067530814602825982908822430252639392207991484038147752195153658318321805151620562465501760667136190191892145008978300076059399280918659128294198877176475475215515224683613861238641153369384294332124243696843307297443996116394893560950116458925249494258013404937955708740444239791010114888620800664849723708090775001747003511300206641879463394832678973765623396397168038817534201996742510673123426184383406784389129747478737711171518595586094378128698984653715214553974431548057622190521988277576618237551754586794148962285360004209830608800822426483145177038807994126894985322888016071067080024100734662545274859498019725330147334354456743627655434856666551254522953590240515986843897357492345398954147629655605809484811749182621146646019701518855788124659456474925069330985491564216899302380852947020213350438059072665950831874232812263048138362361021366036205790299011708159736308171028937725269204669446333912913160701680157008609476307255468777888140620353302603044255890650263008332534879822515307334240547931834554482093184302663929220573418274841185567452061498634243859273261631348993204845239276761665933141982501868007460529784488010485381007285125533739905062629436382117948438494533958424654903911627290564808531334262165609555072740359721855437713249810845897768368543005935956058397427173696636886703431400340912468459949071781075790267708107781312398991865108584549008130502664770194594562848011354891917787452212072993745077407812300671704668561945101436801842168898237178482804639393398719563961906508508720889717258042376725140090410860923762048312001052035235994588465638864914874797202972639678096855981261343582256713006741437843181628039120128120120562281602001045786990699724539685442464674781871698887347677982843130978535629100756155475865245223924021398967737844354814106643519775375014878681141635236622013550756431005930382317638138237817954818828044539958240320688178670009484586086076572190997678119625690959079308862195358293486528340070431272683425774493990450047838621069091309585107618519099271071209374672051166140933786071273144461880855592217920875832709413675348233936457523886179477041192639647750306952620389069261583841229126822496313955994349851593759066985696393970720556691650181884193774289305072040164322232191429637224504565196267711577393913194684890042463737585579203676961342996878611242015784489194858196144684285254751147768214504966587221951029923062115669415942606382826160663506277748667567247058993526438436006454960524904035996722413004539885154418960903967914863425442741989521953609127283992548187918776959799574966592656329028885473117686426339002686086288805444078039506387474429984553780205152512504507505269733006653713642721097981995685339990374118371509315082206083616489091145773105502571468503006172231853581028329386268532713939839948954793789668071097964866039009618426663894224982423072260833811341180360124679512767272914340433154295327547621078142456348312673524194298264250449181618335157463933041066658630643598205956519523694553607926458609046736977265447627627567782826707015980153706539452551641214101872662444797461632515045720394390706066607742882426219481126684520919891708068030994792158566349338642561043703832120739484757830384864933656624430758105051495118508933337272422044870846298689449588025044399885284675051268637944408025263316751688514680865872575544040963759771041149272733216160517959739601799910420947852063500718435832934277555632348819222598500505499054329149584622401803641278430062812067846829258569707640584705640890892647953571928293062000117788021880579071265354384207833170749139147167475098004526570195379801754589195502622646083351201177349815000324397975715078529766281565141782379973504726123187868765882520933719002609621982567447351144509234577815507371413494762266942408196728292546711274359487948910693519088924914533460861595002969541484016670486140064609383326612103255057322279690021758119631775883537056016051447166333027524753841528983867284220693352730975283502861476981818835144596356629464745632059467714658000881052362114176804337713342462727190351007347402713296860900655380108481694189489375452490733553031369465709369878372078607242313775875216444755798535640126916620948036576103240536644524378550898306352640482023003873325824906419574886329183930776122542685676712559270726878618478620539994032241418377198901652527765432882544501273708370760365193943713324010046257806930595654146865804519993871217965943142077549134520217231574350651216846133430355228675315976448350372974537223327559255606149778131412750077372380449450750057549468143367202239931226903106926791576820365916370634722952767258447027369737989598807034989421858952605287523770346829852847942836075016137671988693738048201405509271527997254464638811556124826061923402503144541911619153924841424416050291838969912888443282738280230276198701927196030928502718096147088546904177310368317954491600414403842469115953651930295672115891648680849842304230301066541364945163701819100064751281242205051346579766308744639669200231043033646275560487260345612143497804189675480596269656660768023737377346293499128475346366794740366468769395925798814597789010717941189995114887769451411355529116012132786284938013767635825963513782460127417675862515082404703489418468971761719160878645226382079730374330471967753402217459808241953573046336185395584741247396903982620519829458704024241895388941233320197889967709375414150987817103725316795557881444355188447392115010499274022001023093686573060159848457660217880304086402206238814573853878492683626802623485047986207089458992439058235180422352425458086499545225140006295675235577556469715072943997695355880947687458021834409748392202581536696297035187269344135947938133978698909194488585329449352684505449036071204739854004729144277578635196514940266401417878088610642096341252848391629394580965255132400535385402910797541047179607635596359187717759689117540578540788947116535957787558830492956658503744451924891379634517162277782839270902307715995333436004988652841058007955164219327901115626277813813487026577110310601722372891449100661055196805489956855296327212960860932027625512471243815468726213226145239768459326897903107509064357036234870805322018263030557865972571657506294278554225097226416914874620491965868231881243773932023437157804999728087658204920602335268489855552499491011721348343435387811279041008768198086733306152467379128178255750137255442838529949421317886869452597823171431853935478931821609543091889142099242102145593187152711046795378230733702386241418821888003913388525692353753557163166487059087111004705071856148781434531152052111213690730996528744397289727226791245644260382192125003479613694700128621520925610360863468186176879344800472021450768649644598915554271701538614476230432306071369733628130199032100038094054996788241477616703726594693823081044087541141085178682746743876646179477008809084647041059986230155204477743277449293130209164770517216965027715622080289261135835522812022116669861018735494624073067394001888560489029185456013130672571269617217439108676809379654112991943966622143933287310511446592156487784163950868963719320784401565935541768667893450301240590951520906667442374798394701861298146156792475367013967008674069925047533121231745282650434871610458273634530343974694446236995127586398780895318006333747847555257894514956159596495333188917912075989386820734135727867274036857913237758666037041763538008963751396545240971916581609206541441202677652779275603443994675192853135629712166572186983419509398224927427670504808357838376605522909717385663643796527850313187446520023534574378598786477801274394889757527298578445901078949006647577391591745208984491065551483469408898924419367562633846898890890517774914736087614858539586918455291939117127738243908592087732111408857042472011097003766979274946739973485172781866647621141757254982709216944816571225386693306004258306305027733297985834735421917862487949901334149810262437304171285863113746388669661968742516443478034733187774955568798255144298478851433185644248720185731656177532735181711124255778892492674241352806411313372772832337141011396276832985853584127916465160617034443849682241239882852608840393688582595666560885772088121039141917840066487775287932090582982575124251380369544209056980164266077286726940029454672343393562970544787357600709085006601145665068907020146507743810706946368311702892215756484701619771782543452649185595031707567631335784033015529136345238481649111699608277556334603328928082814513781254869765322278007434260288759552438418621495832559326106382784606689559490733742034683081731322399064589836271117982215765067961101950538343036451186661998991981902396035055710608122699407973921477373055425757957506685655259748768653066840095494159606236667880631515832310038556044280854551097685731264341250043291264983905682709629671616592480737102850721275195723231623732456477154743443545673185873307182405883002342966737415531709779389479470777855904945177550531285311518231965930936914660834058994791643806103024056465352736155405722633999671464336681709745933686382464259526466928578141830112374052313540250346461360634502581469650987222884554664812738521237937758776185713056152727052707762993297787407023308660474874757538113310692265086337876831287413669972285505364605669890701586616968405646579561888906749784574516895755283799180714665531423863709832703557118427699086760333638376644106108661065169161042670718270759018666048343984639406666722844924397766599033379011114410414204600911280307972016988258946630478194189853419280450152855850585748688689143389569291105548931423270823456820129894214468905676519910107546974425822199829299366266549013897436024709185769671987852564071168317802599533693222116203120442648064686939730446176106134760419375920549525361469143015516283062862424191628522341317346799514098440791456923707300834180308007950156817759119174918416365053374223764791408196024926072407967315888816587250138111198605130192896978977506425221980163083910093617671262370627201128298271898196870662935794627326599791930829917293869035839009822112118788498868425042352805811371772383622842729151007168641386843091582256925140661076824851780126190099087391738116866795185542192336855152120116842088609615458502306656813048972283851077040188524150233272312388379794555773478327858498362335419978826426273364257892449190307982061512914626424418671786447454494925490251906505106209887734566329746153388543224858387074193896838268271695181016068982189412895059707155981240096986591046354926319365310814315311550124973833892119245960770224754223001290887310699690445009423026122192444082532464967993509930122078176889321792436326899021603523957546142195385800369880655206164514490096445393295356607401368504576941952494571007218659328523646009045328688815336433661988983992806845404649550852456586264127924848374319754272848132277950469499702114242500125109195300904121420884563649104943937456723669134726722975050740841151576335613077385015807032428123237190475166826602180528419350043661381700843365809892043159959232874240675786809334568568176705669726147660712945537441886721008604938681801212140887018229281178237381581734437906251753196291248551372653826066560911904072306102278798846984284438662563506127183934962028802920923763107728658423698173428267568387247761650909418896575095221059789528248770664306800712548676632456753235521238759287223130309214459113286255979377364348823053831893819578693045589238294332929224950329849628311691621040826870982201072520162919433132644250433657934752563680047042263168282550044249152043718026017308795344643676464691438719954471022493366523737027765216663460171633433742723658038410527570556172798589233194485957741388404842097964366671500997095123371713009387998043916200861872967135732385954224033432371283809804844739377866481910433004599037470280669809665178270931225554149599853202580722707732045771579028545042034452429464940243177643173320671076080365863954357646863074977503205736266348078441448309276771073463552192450602966834686277047833943737636195791989538484232974090604908261367182610146465298767403455049438589184783373037218819357309415387184625489953793254504682558434397578684308775140881548303493066800457290465705784661209370714387855069933376620209001955070378327683942169877702775972074794837613415890138610418656170104720252159617945281135861589955676985314295861024005258636648033839812319986749948841604493836301879227146774483108997425415397353110423750977699003595096111695926205648436044976331382075187860087706392496177276683723235176329132007785335243410895333296140789467472784599105691771001747793774981928970951735095624315443463518206344517464259501173741476609254098857427739099459819794480844509496693840986406986805422698358787947294299002263150348743381038657683091772190057656480206939812998252115817109101689120391057081053381528639450584691496322716581700485804411686210668221284410069662212731837652104090706974473637625709681508278360176427938707300901195965885819176386447622516530734615548394898238565533374020182720648600718758942669794943577425131321938447507033523338610474560359109980307760841463482407631854969039265956739098139908690501523230239939293556625513869342928974641974905682615665326554325332249761219661929494575107208684613025810645395915860285849365454741136967258833141453645304377302932636306048080620494294502040038231196544978078971424019464901157287274016976888803615228960420921044665302449721385185896238334992851443441846473784918122495030098338192250777058045007391776901280876836071712679310207034463819529744751405504671794817284447664287465232711127798041313219456073703195999774441599079342092721796564383112196360459939262401535224522984799137379265599826383113615779177933083439413939911913373786781425675356713695041199164262703206617726780808415569383133661615463245472308660669256051422901666478203878846667252597309033255749247450805668077662527706057601478827598719064531625042798340229007121061021703382988104592439507419343038483924040305326034217360973289017886963718985660437095847174552527397290068157523707111520987595409027976989874213274307881189817133690127935436687702293655572048903134229248108183723592335843422235765085178152233280767228623913293913916459589925413641202807301603041444019019436291172969700421130089173383676184667589694056976738613369153524366591549439937164993633043239425614974267292080371044561243198938373720504560632611978511312690858235763206579650747293427740588669997408780009246440060431079647210648678195720170355899222146265544866026038299643346205099348131021991171628506574246093742256648962239739566821310808760579729074787888882705858277895752891988335446235252224739708106230985221996367270583772088766795181501582088835571869187164905459589644686638905421712703095875591704338679234925828531944509356609372389393986843173495513755477944273292924344847502280989044496250740998460869114615000493338737789284123036629067676779481635838948408402484288670954762717408717532415197078111764268037653685148856361086851813532698737403144504014376477461786929090684595755760960596274888789746770425824381065272299004150365815505618519649216792674965460607258031840353180587589057664236406058498997781144849222096160912602984077872448859724744912723829977670101103909717710055147988611322343974744326019094703012748694212438464495101472216250296523479158993456664454952161545367116411787036000201493650865818872317814622961470042157712347264487067277892329844062124584120427617536713835287306466703247203569012136702288360825805395031815135716950418818563682913818288535101976335648730200567949536067037462959506627250983513963773789081118427297050647599957735501021625912662006523405259770070425664961583272114188111578433835909513835527598620065853431380517578842714487107737488150556424943174795267519889835045989282658704509110282709190835209233034596894683693572458562682795847709103118178177112252493157700989549808854774112528220722596238300147534205442128802006268683779186269507676657320203669332073254295404846394361200545631170125754842272690855400115888231133562114916027522847950465566538237939456084499404834347244453614826442576339538423155157260866729025932575487232415153985450911309395514548041083751231482651468799802825769931798128893262366448811380980282854561928792928909082579327278414854759755004110456987001004593300239416820246734727677712468934214505348483795334698500711461466497549571133151299163792789824161620981318418790679637628232995468034108113667633960803159468734535652891376503484749660389619551013785416064173180089053019531192829411561317925648356392372900273730325980915771978330554058232818507781728603702139554853637709980914482671321693166428242618789009567971454388986436948363328344387357206143794121707986976483265613018735964698861012908405716461927802701789813861532544590848714824547905963607887192107738134535396941919529010140419316699644771069989174657047691990317325186203765997948565635949161723185635164513847630518414283271487624495176099660380265457548848732783080064653440928323195969651081826917092376977773514474847867742117415753144900874636790100813439138492340826233321019346164476219611842184975101336925789109881496102941867519328593889658769958433790410713605105962948014404660053955925487481119990624308028112503598552197217755855421846871893935786838551263267549983962081864186623582028918474286848173512232692051636812691709654787546965149459418465999754991061937634533825939703248472388303608330483543740146199334086958141416472991115837109812057577771296008027503358688952022653520794027589736736208257238565294189366916077534877540658803524952739833291920992604764452609447845912271472087852736138519985671376553686982082753226540378821000795592798443483594999810050009832235947627326795844300768264200461590103188470048189570476943727559020906399798004271571149540107987077880689881971665317339243105827734983417546768440341573896006551458815613512145757441775119608144346977606874153541731040635349995157411272486950346162739025363474442457219083746707983963783636008877703750496287120401617875378814679535894742387270207570547382299619674552642747362812856217870032605447040461482782452123507392972254442108003141425918571494079510911981867053364590873064443847573940810244361978409462226829250505399798683184489042798576373105789615941780139122213729317012046945667110365537321198896790043673399732938423958669081273009529037936083233639935791254009720989839354655802880792746631517725087632176345759745557315271704379768553244386553372107009893065273130674715829232163972159504717445765547212965014687558327188640895781947526347544558886489788976239446658370354699327959653732641644569749822772499122969464325780745442251734806016314820203440508186687128245907508683167369096988107499271103111285369488961708161415972340740317181419031846671697655339472694049611305570611608400950120299440991524065736590984632044773666733470184355583122017655693711729164785917981584481527672064402586054947419625519653116044648033994166760672725994280602085972950881618164465344162062076244402677662272561416400678873603128242099409115980306293960120775425460316539702727548565968684179660845648957494767429726267135455332077656479351443161344718317303572445035240125129079103312601734246971323479949606880764468005914385487472634827898119385815686131259913269751919158764582445892635756019803592079285821033402481069843715107492915383229388623235000287128898232470438489435302553356793976502483167076569823476280673931555932043066065276601226464636318451480077424719655355953119584874544336610610102281214224519298506236120363379201893774763811666427736243103857830526008752481556825262348943483114200762376330243001059127255679886070090006757585405445324035220249788830823430916598475880492696407477533129696235386004622996825547180111555885314046574208557421759693546337277894250820503896285325774659430391512645560436649026217599301896107675248385534201170087152512418227801492448572307461017329309595143993950775910992056862714546721962998533145062122462041844812801849930783590954396815788339565168698399808129835064242902387945458636306408893797513453314558992487621300709938245287069125546791372670844285603504244400390738160768172556649018228923771443926850838737328292086543588443830809218980205960262498110132555677468147357775083494109014050635064206070207459995597324951575086016886985465857018103170865276464185215646824872187411602892330415489106289126330181024582581607601616618529178952623689023515331365457769564043481429703619363617005295042997400883092509014677602641140114430185460905155549065309959378464629364920685768947652068212833719050828371594501615582733588311246224268606211241079395780999367156273576312035007948063139096457314898985442454577997838152181013941865074091822304008278457005980569501282488182344600841619118114416303949557727286788923096757523875317900779771986732857494965127218849840369720371464107720088493633501978562348639436492731863565004304500872776662295505709603244602482700917458364293401547777566524690117499349507799613521154542662126268355480348720332253943910146187839324892082671345812776002962785365420364140287110009258371558636893062778106679389135333335732996106060534762246928035063182602184051454063005313184222073398476702905493141070675844015509654968419454693698843017936078155091232621209599703799380353714933680459753190540475156922804790281449396731178305759942423251529330793358950734996092312522613845460117711483945161719501281915231902807746004920151771062223115930195680356077303925706203855613375160070130135589579846675561806014008661918712423548467726871332812377592303798594277544339758342631636908215362919233654691924523133192424409238211956109506151433436806830273559227117841478093095996737998198742810275232019563618828220003587663726805659868023585223523552338318415205912499440866223325652111309997799752208060402821057819297372801583656935156875639831881860603266414886163174599770442760210471955159914918565010326451968198615250791068445159336065281787423311424312979298916395289064910855983331092771216269394391582404538974449571945421228685517918750728574651795463392414310888402651242422174837901774559553508875286921717526083499000180534296766291465648703014770480841718813089311824849326347226115892300092754519359493331532981570253036281409474556004313339255100424460917789324611416587706234475934421628702087143533760140471374735704720898925328138557678494424445749186094151026523846231145933102946444560647611004358201354937001837562683340268481405573640991371466268962003967360066377765242732346668209919720948143323254319157618985976099686677736251248596582594990585950679973674304778951049498617408532702219481497440873994617763769738547741999886234814599411685289120520606160094715914040195149131785872983908282358354868985147507749668719675098402970738953728625149834576071083359978192733979715522752223582288116329231908697140845218570400057540009451936753066292019365529452770976126877766753213068998571952942350217951517791078964815515715931766301727294839682805818864927288959947771138330793638026685492526288612608069115105067675897396892380437662323476591863504568484316421265026592268883712769789265920003815520848409135511388911108808564020710103092646628030890620189631507103025074846124053525314206788122173870217537100554019733213830586183302318350518078785061169798552168988569095696966761692328610669220127259852288729023510145263650679296432122976447083570477048051946362217245485042167752535530518682948511982259926366665470912079632513795215411553271343151399474973801029247007309498687166331972211977405510372914997973954583167304562282472503379128547030463650943157812723683251038318303705640893118487496201913017709339536546892678359285014628631398258737747015840210194388226207473771536384147241548073658150209763306230730728245871745894027986441260951391563701018773545893688914026531700267406267371724529308100415529420011888568577628860638973639708271567905156827238167511578113150160841531486593018501866695259697172052939975126830278248361190289504499228721958400120535629367003150347194387919925603046312057404380668012751650937459725047308631295577331377784211448987038826209078660824755494587868738525081322233969692758171502474608866003799807057481772443065746454852675815101614810865809367410776761801649494458429675974298700452060981202557040233245894980235986775650209999037675550971244820068045637143238396967841987464535379854353105141424632836105535745183078030840441073173750218599230330338815546124048187126191830136057504561864044414379245830895686578471183397756700798480537745083969153014192620269618108507959945653818702654155436709594306361256098811125883228216935168286125767037034201712380452626700209611000819863125786611400338043160650770485401992677283334188287180530071099907223380672335554177390144198055063244138565077448144806180291378840370523254705894585603035611725849331776700399505269713517446225725386109642976748099646835656458669017427153988226668449193482525879375971195860055568829017314548887713963552397846082435768067575965662612055144328804670573790602998025544101488009284290882650502073798515580176617203983150638306828181226776109251063928307586504302202868587765244847366600932888950920028917297496044049140471060365328402535812940706820513738574559663730379826603156980848523083542282247422381759665932173012009731048610076721543818377856305181510920332105853422652997217737664208732186136376402378297207760517435148837401971554830369876522559891967198320495263764654691905251911645139855426575289652517727525139034596874938376782808833580111411555410000190302938980011773986288631755791001160562202210467742963218572141235045515648905355979781395203346850931632597188524573383155089220102304252692986645114971577235682637008300103429286849435254071187001362998677687674198931676518746379189872021459310376945274376802588018473131886298057992396995979927361961193877919506040020980120733156524276924380261153004808849020391288761309536546555512763952332851205030054416174340308745648503005035567278837133769477809825854405503850786040862061283094169709507340900595673337010716517142959837389770772317982150217812181347418536857929964835560481765532015981963993900576978676266818902861711980274229021692933640028788608445347092649489211110673834974658457273996437193746002617050486467317220678074659820546236645555805548483004462469256289529044891522522914028006980565304317413595357179187072750679997479242443453210125955230617840511011954106059948711012551977401945118315574702795905112744367669751183372320448223734454494189867812663545376752629618464033254964706546980906965379015025002378925072961874318272736265633534271453258321876668510329136934808868559946386041929009377047347799690692186578592863021720234855878181067662129879545633722590588485315184398122473552861883938261312236587428027340240704234571962924584111588727249235495236633663536644827619351391821377157077525258469952760444936121719542774162655523425427973984118606236731515827483507932519263884018119382296295845961503424847969462796304306090702438018231507377578673116304480058941450670305610698024873653248392006461572917340328119782088242497144969163826015808735468484100924505899913533914921055824224259234032296341499998535814645745108578745326749866945860927603048754661237264660578088440890853257272708706744618031345676363699324289898157371508081995918921520600257079440109752715341383594259153830926522648205891661433065612615699432722446544164558282779231626200785197892780144218396752396353617475869080768751785646062900987245998404914734042975782222239724674252899113464453410187806046111752566454155198595944614915810619309152605917535613666048440148378424698907322234582621048675343418596808274093958519918756623574911414767107623295111907530537003673642312615146519945631240094754635735110382547492146438332329955171768021044775907380063508426911231659073131262183039025887686983259237788160377836549855734728643845561209697341838946908982600789716400207291444496571714324213795235797355909745911777558931477202263863860295000230262883641700700937524559975618698796053910789431243542395557137208734140791988695414478300535152428061267488390122572747010414630269354721855914243133025448532825104478082263444123099518723807836618646202981641734430769983688340219922200017925770261185323852688276015817257701995207226278465508513941829519774166186364769627260058610838979371395312555454966977375121165577710130105498106244109041783270216014614308015633726366719304830704216324065789041375844910385849337709973140322208759320603581450178161018271958536379367862274160496562308580883678783378455915556724261266626413157204422048300682165955700858065668945608922965040000675666669810547134978272822653571879294970435923011453808668198251082755713006154331756873159745494223197151848604668081589868477866706641222947115221343600110578109092062586315396440597376368543564770257136800868407129423249480974078001275281834099593933338114125337174310301680236947677073012381915362246911020261570049965076979487898074153636864863039586424522112040796855674825191215395170949066628975208001715223214108842106988716368295703285228016614023957661236569238163867375465382446340147639183886794739591537149374564969105021797697687731932704366618237011874663341941314988654696106975361142233248669104075713333180882584523615468699300037745320134912230820013771771715693975223562848332035554167923413121770809301088203035788780756942256550911991156663441449954876648514998879917370576696257836419918482607834849212251316428347478506830798668764233545746762330934092557286849465384307250449800847989027605884756121690762792307308399889308068284852468518671343649706415931695439086869766772283982192071963567026325204270834548646808342041889852731005848730111639451258303884004087213226981726473088035207194146701801580078632496891008392728274871887907452124140551716005052558218818995520645335884871631486370086455372673105062225253402535360798872458923265746531141284487196259091636760191071119737195525625435506287401181954892575070228074314689234990955375705658184336455246379160567406496376154062900651175595637098234084643247937360924294220301847731677439117733657818471574874970533304226917690215016738445477490162693767987856799348331156163054143110414912550924210961202726702858633047687121156314248473156417216329038152113897630538862631368931848673076482358057479398511129559866047619456195714776482989991784642966717382477762618015482966019699867143912434749518322984176504823981043359937339650984585207635017339069276638319364746709217118593524826707216591760912604122524411480593134165699638895087923217728467907595000903363054439229209098115973563433820765288119834168291568600847036980556570179898190579651837896515235720633554239815983561448788427792828711654975037272355922713584948206647034237862845185283620837221855737630150997469558437345784144002120312896413530674946623153926972816953478890644059657447328668171593111614645853013154008268465688054576945632540947668838775123823849131099795483108015868907710100645695264643675044832011124822892103591417687141708579812937446070759049972001803508256329207519903874440693870183059383207508009964829533522707697501573478716510182785614308168396656890694439645890761976217716118814759229670846212954366249625565092850710986386946253191856468643921747456386073435203088205919783520407583510578123127473026861826248598578621427323108033201162642504564694211918305203653927832037188871433105599703397501935778199421518726108579492284620277979513627013335059517955282063134871800587297539904270093488378710438660137520489344409883760022634540399166980981675357220483299260060009400405161629062564300063476209739699346536779292165343247009800575377803387556625279523747966193140994957076129164806452810520476008735807206982894524660367274562892658260369529673341269595424388589515534588730199828578010984883175950296437044734189471239304633020144474373290664053931792211082682641637066566473192432619078757563531404464654711972862630293758954273312366774925127024540795425157069316264775577085340026004361456564319847062340003505054375381012002878308772143793448207891653388607451627137151559721645851608619684225679063403375367045559684529088276850370743812371068988897112240560185939465966461624216820163473670213914416942555643267675604336241256369510011918823844515754219622852671831766107831568313148593952170638734146391260112437271171782692848202570464091648618864211136688074114979659105006303889324464797798223372935814868142822897354269389769017022243612135054929833829966063146512830974740060199291030655715891027635548203866872580837268639735231542297269419573139392659732187096836874634430367255688842805962533947548510070297542866017552595413626326291725412755775719316680686599302908773776261874554958404987937946447628851151997018316266306350182514961848840143932221819416768599569124510085609195574777276776710806844191944327189892426615275188513711601412092079417294250883481630391894248150478162930732862304879391623506718435958288346409914330852928648607577521116787448467792012939069865877914136184772790492519971489636754484669509690874707932294200506228614103094030457050182441262383525135688673098118342612455254872167381750926016282983173233817091685315932983610434118016003289807012921353292712809997895176336082449589908618601598958432354093761120994615521198992090958754670987290821179598349939441375331120216522941779046802433300946642934746927835349096499493804670965157893464488734601149860954292097913599769944940802674120355148888298657020622277499299689385593792072172076826235984573919775504284511079725276628499047448067751531216055374259809175822861681344738703996721635859770943402015986950438012569122983265928909774345049766764846601411420590607493290560092273425946121105398287202065661271092098688412149367339300842077975599781514496354494479711084419397855120939089688761125102636672846810953111888314378331211697984877199758641931104772123780652691680008153173417023820935781861139917087948360795998831172731054673579391916640669064431638579791314044074013233634379691283362052178395793972293760821124275886235252080131617726989275675138011191127124096652829440141135353091008663253822233783684850976057846707215136623349579119947383532483382472962027223110565398580235340892382549831126558290231725629319610618538147160827259437566183764851639873417668039983217482182685964498594123069442257442641109557514260251666825606333327638289310145743608910823521755180630540882413574880512204359099839972578920969179654745373938897744469123830405886266782541137284720448769463812450096121155341896940682375437670216499848800152136273422161328860688447050753366081878026037537086337111121182316259256481702325729257362742692484704818809671941844581765382359250576717082016769279886876843745238696927419125113687521973137283719372983808762831337206926615941994363855938194587795006934728095097979945234304614832140226905420118866412022960685891745891516981475488320397249676931768218552335847728410719598002355254263321836414856474989223633353617368802579492142371683871099841224810893655306862794073190437233681570884195262162926741209436909357950290956727330446057514301635682756417434109791884788629402808503814939615413474131940986286835004994978556879942940769335418191346440610751782239294879387748404320371150154197573311444242055138596561728859988019249165501869806313246239726024144225293250303901244803009526069011008725442462977314548798823833496998961649607428319735665199155362758589300381093262346626717564259598502680879943584054194646508609824424987837483820630566158234076991895386334250331861635765845370613822580925742249195118928795572687722772873804106547263571524097136549691523948188995876301224925271234043304255235510891337760978368096654143873504260514021524137011636408068341754640563722617919872167642322251141165581304768332197523165877540923427074181721948978522422975333213122511259223630047700227787212311988373474166417397333534352049618370431996624117797778737461616814428047628002350843309158766698875185032481114118897998411866776420577783893509972993409739719018467480844995617516745348456979109790496915808716614896510039035916544088350218405038778134011132023214398426741291900245284075439131554177160727927402096910795858680029040179261510237864503265754666907507548033657824244328321171485945379450789306783738861495311451002031159414072518302368756827479316125790063921316913864505908915021862668714586164415629211929722212736189728392368047247754985507524608055554560764644805888893232423109172178695487756051885019210950039851129229089284994886762221557901722116384220765155472341808682899286215651305360276859049591753827600369242150995780242991043313211588087613073126056072961758637057343964157573978256576074679150904259141139901150602036210769479258597933630834987388010151523884807703881034492432106540140034009633360846943462892727853142410502681601806413443484190257936032535105793806955435545020121635429451320273425250981208156213558426732630752189586512708843615988944767101281839962774973482884594112423132569623173354145541150496406895813075719192131013505086050057500800169277120245262538525158203575961654042145325919468100910701929438671632078051689330621087059467759638823137353620835844772662076865488000340039718201546496408053049856199514442604021741456664673208380644040947183604252142586964314509887225123074680758213112351791481965588133846730257422954362168565087359982163706344631951388927202122384072401719662064487572065592402487305566167086071059050807617594604946996252053895572294131025328244076070159398997105728803511219604944045445891802577625456953635220448624449856333600325429633801184852444993512907686694603808793383684290878079717828626433378836465317008115688489535499584772888377047868412072278786320569797863321504545358408882572077736700890157206204183197226270518628384438399815365602116122231397431137239680833160814252291089342878784646573942350428817530063055402891581244413657377843318283013276583388257608268253208838042701085108264821104843850072045988648049285111886302496863655056297284600100927940361656710927165812373176656024216713182498801620393005251067843856696701852833566031905491161407297443677490837671898213202549981066186427221207983047692655674755593320497081408922804138774438093188735874518967350200521650226671305978519887910747673112847930157206299675006851968184440186308853823861326264549009300478366254305517761404773149544431384680628053456629569899379627025636866308470731891455688843876246902949597456268306994809698914768691489141929947904699132654528609777058684623957502869194831573330975533935481288730169911621175319335314459968122726266086370838319883095279432384215978946686579659314278928083759023157689567069946406311255055738387687087691786740556453219548381709383059444483447803870057805965962020987661733836790163821965219712301454346508180214299589931856239631703598638938629577823065877197521841018424363460123120509938674501872536607614772596561375608290482504198715648101459061750376944023353512852292792068671091348817983991405055705628720141569436680005263766310226873900732484383972501264955792350102911829216526015634723477043629034074686732401911664079260544347386314979831063797717460837403216073806130781562952879442183061093322259591110304133099118679723779780988544076829316310490406281455468135661836752626853091907222835168804882507930563793006955532834169268087334350003627980998982979645442145015020893866486335028615005081359809188559810615863135222644840528945365353269645493849174785508756106523646584214062889609744708321706072703847541274842524607686029900506092156789923837288096070092510352500519041273385796690742575290465312995827190263548610372498574706722691644568161662632828848806631920072411888400390454637692168371748178695589215009773040174570800721601839444555271777602893921519651925513190647753511905149662740811749838413349346252453833070042167042393864073995962848951174328048291626306792019717313066187369955295651821036526928736012088677916829421768711861277585169324371496921926444310330625783858756286018933199205893309441652933876719142468110657153882933578750782588865115390157309790694229391506860712996767711806944469143989818473259429903037855295236605788829378679923536361854649892211456925338510977859712196722985940478484878349275529439507440187550329404646775578842486066511232352212287590228478834219560303796003047706933917904735558682593772181974256302292797224364276432522711363258862735842165893559329713657449108021000070086027316749876712262050971414925082159958533235902603151679455093051456752813696617944984563752660585285361547859188800949075656928785523581208549040788112981755305516776178706225358406493860176312472112918509173155060807006142001165340954735067964436808823828014257082507453936588196337667157387943785856282868560537021078427687355003882935057650640780040037864980163917027612148390704231378961115907350441670952270722962918298723245198045671162311203552288687543350929853541532356857892692102459083517504190213814580128832575883553482143660815294590313140533897290615448961658198431957397448266856088942560666756586282858295383287238664509961315403713078401401377368842443563673262894250442399025095491178983350666049895377713177262197319198904339636110621265108647653275429587386861099959159649314427392387303552630019826343665372169926326870514571931932883165438742090208798883006891097197782351186524239113175687453969315834974378949229925557973979591030262024856557386537741811357900484411456120388743548620664002697313276619931850260813793458032709040640952913845652966741336845882027703469620068689900501021181087109548164790337832975508621442477291232712492335868468627297820448886835448822053654511073665936960918501800082929319332691936370006037786360664533094281077304681618817151898784050680335423037527867066452107896133834747585999855986540572344052798902988086889712999150829989316532114347783668607498085901211011192749003053354733586061780934991968529250966334571983635281024414198257157294166632346103649493189546221488222315018685780474009975367641870871766728602413202399396660645961356288748311326452846010550869390019950273935624366595869010953050998857210943524407895854054022650725986522623728215195017450794479460689352325877779947648226345702705820219098175956710833095166927919400789285623029684853497154163531968745384587910145157964262576794261787584717616719750450303359340778003524091947769867972154485926150336879512138486268707702123100181771806216578311435447349133641007533591159970602466903646275907978988811187603503565283477520770412043811803962311660391180066853563675914168150222075212690597388879372961751773981151898534731886297729755879438749144750924830117550212474804109513949437082983278012998722034027381955937105991770696084814442463735179974018360423408537112289045357864913776932714293297663577743404831890218364825955188829583311424463776415523669488364845432455049479283825449055530747083839296240257035671875634916800083042811459038357340115420291750978639165267571965588901240380436270788135043273792539928094626205779908538224300833635627150932459688460701342650264240790703882370552023839808584126062795671258076355005879119334145273572514231799487356679043659114904108867660014911494525555438557803009678568235720953842495358734379818193038475565767217958507112297930610778462720581354229503681546581318021634457064906860796361629328354336810365108925116837815764122888322489446889971893822727176166884190592274505541559154085105975313234177577813191998828760025968257598100490800999105745007368782470458339398811932321587717520100277777830228634266216676104303387982706152376189698263870443521093410707756104465314970744564414123689281723701802630164756134835401577367214766327248033314616896869692772531505734064272897524640653530882244267614628147617338794558094804061054758560566203383015394628263194654131469303016009452870081081998467389491971012484394008924526645634576315755698564490493688770610086321560769212251048227515387045083458661162161200275212102911531758435734894815944951066531793168927138351746661638617525383998564553238070610475150798837049178039305767620581430370365136419987110232965172538963287495013437923992814200499430546227187032749276319380554852976839851282732094925578421188167495482704497552593362722339591903369702236807577007261204895983596964683000961020839250896388588889191111548040614029373174852891972715833573371140103285758281351153410605446428950360817732425617786818657807441884640505356199790972694859694803098061839901176224023641674267831762980210098548102070971898322597866145481106233434004110374347188227322016064543414706050482163093906085091283971676394494854872444801322953432927125130977346496346441323848294583666463300512598648690259659306436967083624787166193659296798314087309983356539520310387144979700460500942114793480215259238515255301047069701289434493417377312629160658357381920374107520817031291169117012776490624165190921952960564929331131973980082887099421021002331580080796988656368140692707677211571170510742383761808808551256191253292505617159990196997505973590493839785762286550373178032122934811305263000143931536209262705866576263977034156201834329818900500507137406152489901906767725666662164952924908456662897097891076885105290819370127560631230769996010828300897172993558737653982504947265248399251876503005560095987072700151021037965901797545959822452391033323519772571465718928362215757514164373207493476168867719391337252574225662187533464099892346410393229079713999344880782361865467705679607082659013161096684897359957539244612467730370973250534770512138610848361037787537401963355081867858166985007628203894732820861092126632131416722304941114212389601309078154796831116165068816652541251805606858361357376888329607202785321289559699638057099937477938615813872304211421091171544433114855949992967819187259352416456131192000353811334228618246069006781531415125317195946453709018542681129098127705021285945774982506679557918312207018035334331700329862257262763080658097040259087830327038741566449385426671030724438455066295220050538076323679133973205492865484556279005357467284584170875277326004899477220725785975188543058175982818844711218554200378656764707822332466906455384592109803832471864252975743576524614489070202086982785453765769386035939581625105442149335759580334294301395610076302299252465165175624524689755818642196129070361382979204990115203557774584245676357054025626239875793024936570626293163797065579422857502109478541553630789551585567838212261362820144488232288873434410137422510403555213236591744844132218351690017965213418229158675986868178372233172423870355150180744444002865425162131882828580670571230561122426573630277033610580789278764049277477279806952611621314086847242115517429535821808768650129538143657051057069967315106132784449323556019389446952219284877021511016304287173111021625309771754222642269467677847088278901534864562922597540980703325752886368776271819550928583225613258327793585775644972945187882772183137752370165218088043866722671706864504703227315265461376007966426185156683221024913940873193335424181515606111381249468030860818521007704171806114414271585845797710102759800520977294077952325748311408442663359497300239910422366694600411397025961929513097084744780561707726371533530647773464482541655797064368298728238112206383155332616642026342675056155845224513096750480636860268047223261257725785919263618006922179040171912602759804051317599264091569434824465513385328783081810326811632420298223647922545403072613724188941533702793649316387411826464505726818149889019817992224096058184473340990423153731912660173177075207787326696288837564079474210359952684361124592326170571266603912676220272884972772125740265925480539111584387351155925660155669535902194286651091349742820441554730543239324164047611975126180759670947906490405622752762827749678963154692911463512623230090080688685823755518351151482416892386493754004428630502669731367639916300607766053695443602358516035135053953631946298539031589906498637701898949018677633822766401544050661989574492447791370003274575533781027990591426775002474922885031601648754107425727571505878866811583233088283428953285637756767709216173190872643963582612796774323806075112813902863708189848630924705860254597201687223255651959148648006087099658377979345800210153645911430917236509529983123325930644967235069374150786526193267505944429432559725052599605539089262567068096765084227757446422191747123534290610902267802726588502628244097834784874773478901666600677885398546563535923785356245795667226831149380715801559669423385282832303105260078404899902047546796403782686431255097786271368756613728620239194030816045840214738473264366497505710335161292351481888509669716710889472368308700528663842828754854791193152336041273545332115209935283484840325657450335539445818470469450941330804809604665890012152179444099173072054153324103684335429596013110387598550764291053803306570525660142478770136953207652982656443787350574656612072948370446385469379391787376841702769459065352489015716625755313933486653145781823626027531192139434809507983346410759472708858101918975653479147316258331740190077384918278261457105824727482489689550517911218312399106860749234398971798053783710119104141289481343147795143973183969477525647818076828435741483636150898478473557423020641158602390529192536192369815495441001340126063894653321848591674570214714271022046365136115049351952685341541017470034326246660385693050525964415644134819576307768377711175957729784005735513498520282993469183418830291995101542689440707331698559564553866668761120780119321186250226463861690306820213597213064563048467926532278752078009443159483068075449373094818463062906986908226578408362376700918689793665526776836936937128333417516824156074760216797602248212021405608352435192359462525334501565990811274460775322613490779610175669495351739774631433235087476746860675018728493781692213335790571370054403219574104748239980687764189743176264097104075751301183355135692146851480102454733651795154258815521144077414871124305602124181675727219129804261629431329459611475921877675529865853190961870521207358277020650179099131002470116772656771435192591549723094099648062033465955362280378250288439277842752568186984646895269143370545551817699632053345538932072581447087891990361133386250639117795950258550642828495554109701256777682369855174323607637781735047851662136994829580022032316860134969201492250249184550580463518869484259238304877745699584562095459192560441592038469238230981000192236500981523622743615160207266740298726834138003806860453692793577961578944757792480826452205978613412766739465952465615979880714102343277007603759025938323836970439064832575910317494226031945666273344079758542351313943155246390139955629623707659385444483101842603211794728532599275654559282049516285855962789711912830040467704002381485671552877939069293833726558207719527486967246770968281793176311537479220910796905755097930691555203142990924291928525426271226030994929692803637977768704341278386341921509425050157061963648016316088109027365307642650309757528999335520149212335428604957539419817064888915239677712564755305095069446952419155143502499557994052634334239358250754839868870845772800000730967742156729892817533387534567286040051778465543852566648161756251162598684609026310990175817432520470062155439294812005906620827489660471632787561046875458228079778444626081992142239977693952144691160252592288491719457001367875149435492211016951086001081427219726764130539661895039515856309516474774185702179929399910516411139420110191810280015483572876056238787136526160012359362745815060262074712509905049002873859006442441390590554006660242372135933899228851493047314599942791179103817396904518719110671001593274346643904060845769143239229132249056166260984117024390099018207463211671541046547111755890245915843061393248032272983518710744285288686847368340015474155739365287599983279838152891229856244239409585200110410881053787360265146319201110212908486156190487072006939497928761021577490772095185501947118964887864936594259439294730988297062432935598941640345744483718264199963962933255066466774115610344439843798334695633189289403833684083727801645127123151851878243990113463795058087780803536885306026703195562181082908428119193176535229234783078979349727784697659467050052212268736508115129945129582966798594808768201565072865800728822783098038751839642885586283754258831500976515477146420685210586213462072193420923284449615973485665225924707882457014113600024133108457171263182787010092097821546633095834165233697486061432904635802872867269556403257070019153130548502128702109257727469870592671200262479674234003419288947960143383685129262802390157616230320941138835726983069109419678382946160276027517350133105483706371177189585908686270629518189139351737664922249062304312144882092206586339006806203050829720559220544203475883587217667941218716668435466109698862416114725001755848528174361660603292161135789655973474287994653427517902371440865600563782835417544800998984430124082446893967744287906484671312771351259708858498401522152980653678555994093987164259056934193872821734951442697853429450018941260917742815693501556263842866524954017483516134067622386993163465474431663360554415034141562433182247956542503450305263275535573879177712428424974425905632653194551587203324788277877877644475075167602146388109367996817052496603270774812938807470375461324041314941590074403343850921178295641458374256730163384086435954853209254183238278147662261309116613085939844822980741196904589520892103911289781544398567494816940898211106484934556656135140499339209662474269035911278113515350499831190796380472118027584825034106626072563591521897623293587140220290921278461350535796898070616632952996837480887901988490242246792657359222078431650716423743972103091462615444386791153111336334086803211484983352541083867034671179490631572455586578853075837553254943876908327660401306366198275226631720365872039543251258954531003803504123942344543987355774140934933927682374008679964398536031020057829809284192402766366910691691492460865783722596643834271034015094408994501100917743312252347600837728129275331944306114333793749703541556408717989508504224968161275014731682245701585438865311503880589078845567254171013966514528292697760932338986897508064599583738061858942367125784756035727529277035872213787051951657260695451961102065573204892349882749387594719032578298227532238934678240226974227551738548727661144530783436702614497368459457586666027282278301175621512587827539589827689228315004500191192796535753025902493849368625661722676607968808186305610601826977329170077777977567636463125840588312972581998600348468937096872713223607369963065838998810301242023831138316895140543290885358513971292896732841966425951691747973310771267938891914278293863206627429997916579770177946957685930219787469956528414378475017411678064315277711068680996422177514880388783017093879531754186548942875841644101379729255845852116521447985430201746599223910135138215577074376006344176214660539240105871699609645833008192873667520188565163352247204779404275563404555723447232931745584828516610490256845956088776424159321151788011714576374920662497892360463065889593595411565246474587190616332687704737089794678159985398403243436466589621785590092644536349213756469342160121038518914408638758859929347766769960626613624045802751583129091486304612174054856705733032835909848857418327300063018523199698511558732414333394973135405059062157333707617871532541014001153760845768068509901328243890126022858568375504329016283690260076230560708444364919803724081840712550358805900618442323894338983665267050436959918051248962945459424052537114091117337061389793797493909468686873332361190024873383214558807211887575730502629231337710654907508381097803084862970819658415400363264705263718482263571158022582571764586706012705278493279919765599041131054142517681544637972446910909282478061159839147240203624100051569391614569072587832167586462365809298852078085857406311006670087584682422347325157974820360777937689351795830461098267614446546740098957737476506052116660330062385259730112859185245212903440887460340311592545423716149328030155533666012656385648799829404913696345645214072380240006809850430044097539012477832664028077150056149959403182492180757744714894276831267354043352659777186525260428723366563334110748953281315467171681379673669057384191763605871156453591793037108709537596338539642352773780631728996399435930909823655398560088878019210611734694340510774074422198629852659559501863894570889966978607558814982434544133979855219039196063253430446563750223172650834304303085364794441429364915969544493678355544511786250473533575691662206287526031306899827318552937809601541868847127483197538451110148261140821493520797075595246818362986970839649874312147242622644151982760335037323530615768753157811993183233079884326304339799385250181920910886130145418207409560727148479945695783168723498213033452213501500466665126193417237592684056293058513798560367660577271644122696856615951868288233942873648267639753389409226616192659649586228394831464840159576412661547942891010243355367928862327767633109474071428060679723790511489246097508070083565048395912999212282568817142316537695168543141350350761076384571956763492562569307593325608526610503752268346323336551690132552485695509253829205366640027962170459933732785018168660408268172017741829785636288984613376208143532879099462352080405027014195054315677483383662546805593443693324960900372011667803461564694965385428340921049607342287830975156943978331172342972807781457476519693394856880750366501229450284021843068627290553192007958240137105198991299861967349385354719231362175763995978586381969877117750614037275591453786038127177056859009039185009615695289003308798971377314043487221947124581452822569028792062715439119939427834774256994967015586821690991457501680947495131052871073179430564748177388287832181277728250809566360573149213443068828161050935132408421255070450239081645225130722004643483902686998818138690132514617606779567758136521457092540918958787178190579116035650733259449559327281571867306488187524490147079962665348975979956156267420155367437471065646665200296804819042700994393311474968230564647740018050455482810688524569802266527306746815201089693650563161260474503826925006409552567299579863714222000757684293637265830708367279020672710030361596395699952325531007621480578723805907990654230147131960885872084752852580604384128948153319288862737245690589762609314133068639289091095176519815463581182662428930840025978690096556566500894356707368328926497434722856589811743177838865693148683873080903184169312378875359681060938529013470597923174326642389972694881146890020787844472116261669709936742668833587794456312955316165270812582101749754245059516954335333807415141330591380363280584362105709709160659265809325710197603434260768889819038292176525852993941714964377698363144201076998411270069769110873272070580917647986066463330049920216673016320920293035395681029500204147336295040152641487907307559124048677622687365377222380799144872324428100290217553184864834469089904446168836544833056455174813022116394102788867479534129697690180477825520412322434796169803670818283708532718980378612911415261574035292809405319828779821121267606979960518752360362618146984119612556979658191114524029435271104691178749486478788587532072394439392271457012378585763736903684522724323803978379266772799332966687913648252774848330426527805420556560823750860398134370033208571386926497163378014130624000500200301866383344947339024472593046190951088328088161682181712147096603503516379074508840801142407857019413809677253497783578475136547805095308924718805705887578423357507507124802473732469822672709640362629830406317154777452701739776636466027391311903072244629859304809284946647808309304184734586966719869711658901619617219680854922983510749310456535804003769617281973704736227879260829424657311503771573016124009181717391047675052901076305474337286550346918273510655808549824110477083477811801584667429305944298183694451063024272880396283518000470996029666368566365005853308845588086770975782622842168686885187852439678076190989207160688979495842697602177235786364861791458000257125047262770526909437858376453291547167306579690324587607859450484746260775262278579126235412550948098666420638743056234006516801116844361778478823947295448742217372223105647327172919451128295811009669684741084634513725611797157733805017004440803810050966318002582998966405514970091751162513121836711177553057987605792051454130822865464312718024205291586159135766409174667807200048039526786798934767612869433184391356626843398186207120308523848073695046233812909626310950624196397858544304839004122062115554625921618641734973669749829626636553225641883383293119873488580039751606128543641322542309091604316055999839668169234565365167506694778179224113013688835891565497573650602110145760157212265583405124832499536418621408640109315097217084769340510635038320696428857706738379413179830052074996611730407060557928253539813986876719052181132656344596622954402705080172549111349243795018457283001033478588622459630504419327024479099677819606021551561801919828579176429384375882513528379649551407945983907299007558841822380653300962851297562423384993742499389167245235316923147979543214753538159647444260686384422467076298920295042971875830180263808612458282616238120553711286044605775182373938579265963683076375439742882889213229812188261655061283591516723258001752535887069899798063765984958505003563477450937268086162756908923979708433152212518529968561206839272448752046737310740363531348376360999096070668965897631655975277358061612171020033144814388789008003028601526140139695533987767101301736938721917190907665134334607254930553133088595463643305716191823550568251836649124139435218764874089511408710167233719736869292972897541917921833851525683773047698938960998400854178882894541030842425786961713047839193868988921823977932377309807680924138763460005361630014592290117751909774824865256976984975728380946207471277640568028672109769120615908543848066788422656949369924498649110136278252090037573497980075853613210759481216106366130543473502054148626017049877626416354826512348547027519622005673772447998827060420661609987771609445269721965879752440260563702805643902865608299019878632020408476455535159802789151870134304020986108946602153006736927958090990747260947965134709933684639678609882915548709756746795140086480352962850489948279062769147142019365121445000752031107185714324882516900202483453279829921778470349955170104225279169583537135318675785599226859755997998418900244517531142315379696197772132161645028540029198958118983292044077768244422876422412955049977628838376960993957952209379839549753215347048044847406278193964956784714988193714263620951911245595986925376321419955506192500771350054675844031008823756525112615685048434222196382087363768079397384849441954831182787982956555959788933252838225193692373302298596227109395453387090625836660323516789095278362211522711256645130567844438405375094938450341190981579962318884976478991562143068094699424808066319433344715647264448858870427523872626732280283780588041129397773379836018612129569330444604452908816909667932400309162289307722009948441713928167588998361008825315176109509018200684074536800910533885185312455553980808891708627846792418423876373401054992024859235804322168029814380347348992958963922617672850546583541791213062605402745882130017114182589188163372688894581061463957895734142745675064712344222732828963735533625078201225786638528276128672528698922081715462624138783486781495149838490459618529231146202577348347510240865474083713579362223182758837848007819437071089767406862615330405976171377606701364109250607497703477519061351434233406790553069653170978886567041476805729696499262686871409115837445202887248302181195135176025364441617119246040168017485748592592272835481733249453051559018200977856104198827329692002894040100839097372167548703126789583453267255693781853418738303918192360274370451817564100167050787714125892479251851683296422909870489144092107769875419834702125804086329627454813269114085601018833775039932397932018341831642152450318913672330985244986739657490400981611055427972174823793347325187800465042460241642028303404472247586083918533227956626541035884341409489494774357177730530809382473877152423623015741260763573226931235557635555828464955098822000367377215685089020660394654714899054586997127982223383595548360046992406560817441145321980726384324055289345625160818081490496248837382095073051922598279203878125208914207354198721190178801688703453109010729417535819605111206940276486551513170515625090861173614340824791303063207935966833262641335500269900807871104680573480762442236436749205309268500012621553757229423887422703120408437825333127459476886220813266087490097043594275788744303803564078556258989193234805807730737605284222499318465927686644145084914771277347646063281507449189313667072945676356438281069941220914827072383598813745322995794640430769769178331654069502813573105914018617920227646369302655338533576460407566181470615944760225703227044520329824366525835762858984549833535691979947909087073883479709588483255103301098955198603474699425188951856374238748084732485715418168193216012607157472218205748225438556010298093738861795098811128773212907612081125724981497377362919778981223960283021782304637447193439333252184984929594277615879512980025856190666308193759010306549502952149535028185042005228294890002937733264588697023652009983772930352319863477737859334130070268651670038687075165234256253812196008210538784795871266545185197877255110088469393162995947654462367560321708354171136796194320252080618805163300479317245646694078898501855693597838510331983856449377200377930266661375625683280193479283334721692820173335218560995802683885366612246271814381826232154653761760115720988799673509640811175598542764532151728163009950981471130271240367698196804326972547634857094378783575108241577075546052886503084821282453126762997940762781875343003799991876869735326551151532534515007063655784062918449346226610905818548380791529680580938193806449060708798737861771551283587680070946071328057108216790376171740645706368373746822288380435150318590827535276454409918611289186803680535718536680332180282962517976400273987553230995967259563763358955848108683965359808132196574503041857269786929557088553150605906014157451113845922549805518966853100719609201509995163243382346546513998104373952345233179767808231136176330966382312034540585154621401363363424190595010533325954972015436409114472370549657706014950696757644000698296127265568917412082910852149845352816386562385388895492705906249993264629760753811170968510081144729181924456886888384616118959457316554134889371634292164770339637079343237577905969266918582073564238525077366432580637485354318132747361516202384714605082202953137348105959855062281070029783509976583008297048928457077200046977993689368809153605076802773605525375941539973632970389620291645845473059625153711022308894560941908936418929872131311941156735682784670875680538222502088887707858279594615925021329439186227426440286345753873739292912168145341647246175445063990318015414505875063763050105092148035441179806285213643902389385183802613501732284802078874542711371240037626191052308720907855730339553991202569803043805264866426873767584563752715181742572123478080754115749791451182561303343653599993617804452523338480475728999052404158557561741282718423753799560222000340584988204501632384286743508653573130600118316265352222640957288015465104795014541806275185615856352673526370421537899176188775433570967846445773010469137069573577079429534096619562601645675897392145257783962979319342596312933523179251219860542271955671125807282412995666184375574883949231094409874844177550909965378269632110769828624753242205433012881612008761144267962075706895344014453184562948859673772279351246515882114693007538469961951230879318570100058352385106327463574765628656891481355554927969225453348540446121207180557873189675599734926977324458984436793006906419592774382295349875969025774436943220515868515262510245422850307046962811718879167921555543311245656361917245512757524803525201651108148341822999867491511266569879116555090515479319604685203979362026547992191298918993227365718895199545540474705880544207432326607061780347008951823313344660829214641047518434194977538356016697964727087965768011101687836629588628906491149889443525807163633583970473746168187016385120608965658076360171213579934920585130942376346554161945076559817909199471791862217890780685812885025681775194398417013545326629133714365715689503999600544468845083780817227834256083618826689314174237610800384586651976815018300596669424272004123794866577962126788191131069907897658890373987077074869878541497569746714293036739238245640043460586062972757088105447098543900755164988568999217975731387988303808707968611173389718424706733984707494655001163351507257973648401860415557503902676300788992090530703807480536951663006975147269693098365288189227089968821858678899344566999085884094601297839383256751716096829470947331973136095974344503983329125452111419946806085212795574637443210889355194381505531741555685433161412376163334899092069953814116893801589362430968190016366338290692264536518903683810727149308776780706793540267618134809338234444944552589505174252832150129758542322561246235529052456569597956181143672164903576961332820288361811992550764866045271917821496816765309830524321986775527315536211873135296733583626232940519686562055094162265753716627317278755492310000466133494559119737632368415515884436267474875511524237261082465619796548241872906704847663389037505575966275834470755679355678126303806420017192602472314060732267738460999861397968797654256160503383884048588057572680963143925131185368863820274694911162522942159852378386499860681594417731690557765564634757394021433472571025582610439558543251858887991589671498023747332282843036429314761481632879557348213815374459031705851613690375932293917906242975182023813344833914516484069836330129203079223946649825146826609513147142887491388606783962697025244458464769837957884291685867052256074436847026663485142817486795796592232251452844795492321900368528281578567789127931191333812390839357192590744152169337214728899822789188602178318495891586886485010297267530855386526033929940378506129490429247944004143141766426944650113462418836041144892474638108558962342462918619327782405823703441077952475829096936144724933770132767725581255793505499923489148792150508022223035928581359809255074549998278257859353062088199351078057700228381332424405653651045549801039210454892388378929186456375761954511802199244814860155654774882327725451222230679171857564398371001749368624921775791179696963026717438382372571861564799649847262493099609787771443618730163422260915654917165257935922627785517035009338474442466599086565661966345689534313002477347739559072947962530881645845355946739554379987810193727692590977081183239918147485957596805880664147278626184808064768039553089722967008081854121746994086290172476329233181948075837230785275472453078762582083081788876103103485266294966822334772754536552188680387729844686502497538770070411975159787469206588416125370074415451411339616556804526630509326804920818694921506129420302566244749261852899475648362934289524019077889766145085734751442608381885738950059767983324290539074541188257841355696963990396912190771436206898435393911638083630146723710885097706533936848848558065287951234472822666326427018617035706558007333143672200803509100813527804531529823245908062914063771013461717523863337732806307864612508124689339116395978395809299995833239974647507451644437833798668573637438177190239676123831287373780604314462335442475170559589468030982830637779743596657493418667300202065472026171015876427703211652268329455520285233013451126677669794394649507412893306344779577904106703110982493547482449218381092152196422838914439364215873322177370422527593129031543724580892963720885370707562869131252394466480256389505147905450279500782582526409084218902044084103135406631256303489836880590016381183065815141103842873543430421110356321254095912085643848119396591227927536537973486768184969025067435505909138544976217797554212835330081978616211540532394253685167637446402716258977791285625704190282492096089059346059638855889948943723348050630158799072568123608413934481480425644001442534519299373475540875825786572013491197295447013816697465340742791732085456239139235727925057675885065819205154021218769216361990285534409052327041004033283515102239430480480737485940314072694902900013373630638376861428753178083288821138630418854946028030495163484409109734188932460298063382720973327730075365739467408970046274210277754478160021469339154107881019737605958276003045558999212355217391081896462779164536502244203780316265259920728276258864931076029523664275022482670348678488410971477867618327196178706535352752796024631421804070110832492503286990861638571978498603164851611716646574660716770772079737934442014035191123542048882232874721305192449415050081502100947501142302714660471600189455336201459695240629856002207677557761862650179260441177437910062390642282389537304424370205704955021667133003662680426200594843979193090271244410099296840767790708438046498331768633724924844988149786482643571354538333169826532542144604818617024610389219849120757837910566796940206753976852468164171278183815231867597956430182709819420488819585294004261813013892969302917264006613997294876716595245689964192437830038335788295744733773044076050590972886080201995058278244662902184450045713162801341581920455232325787489088721982262315716809499777761493680188467891813583284371740649907002630909946370246349057754789109768749279209091988835610865563548808247864537077666891920796918479678374995172877621817141766910939944916374709611725045938270879609590736330062567327393371692818663143785520179289590631500637941566570455688003025877462123790766274807052606908443875933314756094281172912367746342617306837068722971794486393784147553117760159000353321973068671710494491373782916412458011216705324075834630695926179235969001891506021149563027404192280251528764603681211034153014592393792191321943123942266520728662024164944724503277885802405704187515537736117790952921382502605845300072240132285288154353155527938542981567171004540570298142163208868517751053733058557056243644743658461027700239345463403604850198806600494435057771540454867494677620642000106790799134939125096327433708413447019937062119807558771531978439459385485494388335732755536713908228754270073444248569704383700024583770868353818216805758139808108533401745930711020671357216812093267366513504549858644035606906682989474037343093468711654981268139630884726947791857838446462973815755946460557490554383138920669106457645960048941914117630082041686977329625433036977289817022791456520615125739239084148367522885329563297839276619305132420376783414685838128899944335529211874752779077213298273451274186304519442788518224130062415767837304757824817638032751007382258872620761237086191713687330436346272735886169558681033094182209388201336641414273056647812067128906967275778553362025407757818925302195126824611378623897518773570333473929518484321218905485131001019150921482583098187556654834272267549537988580775975924816637142489259340444709166156030988666674247677165075579394868215787567096955632559253699372451708865553314522433738584987254217876626018371667920457407165776105590968105589220408690818161496128537815498469618691571677127379209066757451324868078241627170699935984393214485756938654644444509438203779402703680719740407423215185753230995627079019499971898356135355535586430271499262545194649019731707637586214509645610953344374657063993650103558988923803258416660279848896968257721138287975712587998589065493432297847895547270855777350526271951620052157964557858638952479175629499820439203802537933735194887781395533848549448733947683956950901500234248727797328372267589510147380696300437818896071984209311107388261919598592412226242601844024633194562127783418527588855651916949355803327641169688538784719703859785842345110853059712868530981197187072242070024223009180538742959544542654854129073629620181353875180630400351557491942196881023548120195886083874313508143096542373209547335557080148603931750229387402443030296772679865945010250958646483039413114572736951531731128230452549366631597599988588983338145374799493126935390820608850242810178758260198097079010267233311554602211163168595905028188282776335953990338421214783354129629344732054869414696533456687892028413561370351809272001816428520970050704871824087045337424352311501735757186235028461935004030234646645083483925144599754614192522603885748600879959185577283783431000638800871238000839413399028108570557027636867301739417357588292354476703088986278261418169660771234153068791403763268909523630059542693715990988376304430106354583866526178396520680052743084330986105078025703419555134972299735806234534784066968777913189542783005565638832347607253741551137330358377970230319194931823889755169236660122178720038587894125240513703280822465104069988523965323707023020926441756857189226821583336830192743956771580098813185253415104138660040380878244830801057825787286682814253761938252276026397291168765128939010483542196409127261762187850662378590824623474094713181807828281530317480324192166292356176525730123152249299578158254051801788554133201856219178937571026197003041714699754532209441455192080181405057261876694033233827077260148849012038479958253964842840842101711616464100000045955284276099011967588928064148447363961634303128183946850103566356594882488165343610396076759486585485248569354669701686932140836478478750588482168093882841172854613834263598190065878854580670704459909574545603086769895744228477495886772571457136717801461214798640528337497565350577603377875010722286450503970084556028242733529829945715538367340438171023848837152167248590447999515856179617148628228976178872047700764210233116434584046997938094231788257989883953624199171825038944254938066679004710808534667087488405211753441253348829662978976270800213780198025795882991013820989969915602918690403619682897835993326114335593344204407304913701588151223684996602630288687854902759139438510348069690797796452203531331623817791287119389344401393547337585902542486346871900532454571108677868369332402912029770788346382263431835086951775717539756523846926103453973675852067034279404031557062057510148018100469388778765042986411705246744927308321574988296436592542801320079091055668062859293385416928095173892954192712316927995365673539292626455119571810964755201329531151339988848352220918349016438577419223818944668888257680425612302157734539469299661270878033059547102269949817086424235235358776779222957886293176339639679284436467647262837415118558640971739780153060245906545069657173458629860468300075350818370718759919742921069993057855634459161149520417850223365137341377336729625420714139811990766328147675146373558232855741958821422555570194444528033165497957801845575327440588120070950075147977406348566676925439087751792138968183847467628404796597664887776065271153261707856943671012226701482452581644238483371449945745548942863192285847248096310457989592264165386073723336143026453947405842883937410451524525793190197270780483443253640100302265972437155422290668563730948813048990519671231581481392360010901325259656629669381253352759201678316937455321117141377636516423532096971372153557121693498077948288453085974459941809767615901157086860006073034626450793419068683831852578972547775547517711474833614777326767613687100393795007604930774372602846558172032020242023790765709284823423662163141285269049032945439235024114732958827746636413000220492678834166315886977175090485258257930794276633771797033438671500778445557070812569639285588533079356946422564440701959280620968762696513405897617716995173848114552357975919087186682403284082985470794307228757379414616306801887742695349766029423169325196905953813680963771776741024450435208389215437498367297889120843279762984655878420657519842884859052931676090717605112409903861143251660860407511906581884988377880177784383182997714487833055644599404092039620377668809734439964014507737377855906412827323857263352435373652482662043298468082323512465471720380056131133016127991545368833943615644486411932302479207378007175862921452417627651708826631615322109239232611610907544876717715625935673921795743743108002942272677056669528811542825933772866726530170764309805400657189893878426660402230500876372278840746995873638705619598161736720862797899408765788949802057318628029027436408509694104019295985197508015828944321763086656022457027674235709813282282825256964289033661030896010533732803783724731440274087962343064631301790300548987803711566270380732359743081586925567275796088143221032813426914087574407040978060258738817244252951208394851967723404675194633335126525972587820833525003740132254318258844092946779077649531840670299370603962721496621530786410057405249290780890462357306107699432255430161212226786792003869450677378861618438774851566260832504077515980155533778103833197713530504804519557890751661842154098124997961280699449159940634526817117776676892028744374320797094504480769020286229506404827247850878383610717703538259616000009332672983717233566786648424403178731814012218973404861954177841347281447711536739239961248927556935546450438563488742515230384188232923102766418253766824595440737815340262357488837713192536252155694773332945200698571682138072363391469715307422009024150220181281720045985629153900755044485205927658128898495203121662839551937201305092523402427387281576601782652331152164090176999533307094755023521946648622199296296525500142432609528823870395040698148543766729640889546509275727411677148239387023969325314848300145351073512092798890084784575815318850975848772531757289779836609939598553065362914422869919240819233998536382302792909019664336198631320906251779297931432300792663163812659496649828473313107090328793496217380076096680154216552817674904928928286441528912272611674825687589762213209689114388970303393904258986668340219388671268596761172168323679931553612466403200247711527274415331651968036931914289108554984407523605507828731879948916418635296651629382657244184470445597376732892408099745617867985596763307307164452452909861203890735112872475369627033254188202471433826853741654918444093926787599901401003691904429179520221283210046860568161259544245497266824370101613891294972945665569668938952648614692098986155033518466303305125859797147094196093790960692499074613638018935156875447635706019131784322988690426401101228479473824050448311166244179371758853116040182203982875095303999472727144407262593525270562495779358136864646136955211679964685199703570009273420631534723204936644062799072074048546388627779917828471694385677729569097554829825197929515254403611627342534857863474858156171011640298853800188158589863758209106476587205260574570188230672455677708717274610945329122344077064398474947879458038858653797515779124829387525988637841301184025192443373331474916335533614236057365268337073604215249773864277952538047364150705826585234545679508111756599457614713640167910579579448080104666923495630632659376944214261641488347883792992760110957143284926924203186286958698867069320501872643356589883838362376539896860601823318228716031781352732284327554548756090394776012994761855104667661087014853287424581152126951641471234796125347279543101936141516077317110799674705439737132172764832542011489653118198080521124423265532336071419512668927882062332047036178261089056297856915682267429037526923301947677316949672812147720388107185902946001666219208226929627049423921642151727349337958135860916846871797726382234612190697139453681262457536071476974711524058137311414133130847922671362670483658341833678044684237379618287673585781756417593278502027565271219688794554452692923235242840894946036437565130566060736076763475548588390364615953190191068849618068659671112077807332182260717335042092362843414277938135079700365369087164077157038009881307093883591897682252273126465277050293826902676193846616432235790791650186690191764867264331316615705213286048896854947017564990333036679295081690233618370831907939757316188993323018436851873297732875252506093894008655018422157372364315990113676043324826082334037009750022270855897526977880381412379273216490251423302596100598443851701557682384363153339973295581417729850701577870747873014923899501776078384130570654586047326092980466683564074763731878084119022267070605986581875244590487948166220788583520198590070915005278492962466211060511511963882039328036253061484007524314588822216003679250728328168805598202101638002062509546212136215488235837644629939523882983392467486727258366545103695111639994053335970655077494678688556862698852207017563504742193273682746931908482264308661469596396030650148937546846878364310838912132632389494759271837824228344968332785034785290831776383877392039894282789472627849033374849096852438747414318131128952140118662889701610691752151916453102531344019133589354673638851251957648051904026503883817651423260894958575616073502338368668947318537256862952008070938941806828973307608467854257760245301319816307163912690516429107457354246851307634923403012805449058886187872563147299416062784494211780975252075952636439672527604858372993833555211594135441209494406756353816139315711238801672869712009522632909298939651150573083352170882966516661479747198247039656847324879071454545034714207577155995964103300251430415724991438961988951113775009268765227775605933848056938806480277670105584598487319978231969835185937416725275388127904148657653115654309898151305286390652816987698055130036586630776003882752250315716980981286495904774749238557423898869648060150406847231756044990951799736478790432696640825001451472062078209624156676442110171362359128857425758578141157922797418520880871150382394493674619431349797780816668915497290347931801441358635917716556475210930432245062404654032190685865216691860865322568706530990379892496299212772647815993525647761990117543272818733927387859828945162862869111474603415953045782898781913307261404901816811372995607545616973488383987538294270314615282820832431723802331149928605205784542210155808980351839825174999409002550911231887747776240447689964391897483290788441028968160128471836095962212382280798960167415729357692068964167805828230773094414400672253155270894637745852515969372543311742018764088294868706578265500795136205264922794263243068097534664370895846325366708261314809726515961435416934272225593626122886182868764095546953242715744875422566963861137274954158676627626050617601682269377126728282730201980933463268168686200558692129819525160342619261383680501768905772903859483431161635666998923892997753168079544123707425847120566310210895823256088477739328546230124397776180523917547086384662714374596293271663998153636564427282610623719226282325985204587466550428857168416871087672251242860840641932786936032026969775772202895166861105490372014190482473818628472237539953667859166764553120211096211505074831477955260572289204325475816637554481161529115618371818705715634681924986325735470563095135929932110110801126390466598359884948297380718663520038468330230335339477196916185172416611204700007168858711546272545424128378993436524624600358553027062099320121600895987470723890438561939202994531287613495202037800173795658467147965237553782399987420317062855966949774115605702429873573065177433119263317942743199228390133973578389941700127372749407654583166211466881332456109277044343844478640183576158698947913572105252950370661587832446366612008221610470035818587047527504524283923366892252661700759875011845695217898383328029011075187987894329897975244040361064309098819901445713967985554750564492180725606635683194187426001968769587355666213186053575330040573206105001112909670077941688397202258816682546547886931562780317266470023319325317593388825388222775797573939526789335061020779314756843269552986135366383031071517762392480526760207902856889477381992046824420568156609837581963384319453831063683422025135288516415101737750808836733015696826077021099665244250292652488669182895720368179486074952086833175438189588647140014143087087913644089109822223259015648772034889563270237350006087253923625735883172149714394801299650188412516934965613414008676372918043385473287763997536445373539977719628783491737988039363462531740643139100485127206205583404262903031736179029383808745834109945270870693248843793615006708656550035074516827698244806489278122019013277276554515074865583403037413986882576064555248706420836524140270735812177373355186442792680760556134892321492697678241063992626248295189952351004733603689673822486817943321494047126292533380987001768636120625543367154770521679520794749235521988518347270384012540137044657649666439391882969388328509487055039729683125652292565435908973891438166951186435895982588226331296250945496760338378550530322700649122414090050527944179266400411408167585197540349533561954105251900387241946816830324855362211707974941686053992096100381485215810442598196186754188157115584885641054876529729755974308377720192884641665991786582216183165429416891757542477845329255015186335149837050914549427669346624746984129911869918238317276478368891806313868216844321371748984425595696596792379561718688508879783283378117445798643077538045673168780364640180464391582633068515709114556039607448830465970734684566368323988796348830048628502643845877314783634764578673149182419445641075668855073900873961324027707458827360732161609828001560125527342414972722756534632310588210003431878407451667271071842147414207376865451380008254575697767969676530456980452928933961740794685586146866733060493596454908115864448182944234192830220271077905386437367119961398784280140480502781930407120195869762425359431453308557202261219798697188464583672811915293596204372251686921956990675458840669143182567606327381131859785654252312030705473756802186292639869094753038347836229092041059672858518864219463379939271951680509512436481031537607853537694382823811864802026216746071718300105672686598605843315297783228167460630702315931885015504343449662916710791166900839979389358785549814669186692766129721859218467947043480341629180545680390761517126802492981702291559783407621555191615722799799236771914303674025614317789137383355314115997843413405296178237538131623821412195945594021275845536084765398422900546050283769489643411946478787716206251678575072153600408487711393724116922273021321668205506877799477768000701415093364770653232172219502065067346030187663079757504165205969278362267811681824478531126336396391390365911430557130066202679616304837128294084442948929466849472170886109180164504307228931485812977285280665756660013667251779407691576550824273705124646391818355898693932399973589152161542932771282800779892593909562736682802014095599618248232203407022017340677254197727286426486495429228999171274027648734864242313980321468193811487234546566061185561673770642324144044925237224992898400869408769727970680428107480018479081727905662675848322627388609088306447101462191015918530905671555634775701332053596829088417858840903569558030072629239817198178897738601368857352970474560604570018175313243953034217306598576949730103896845341019220628356924558196832971200881047072209907667928570748373679434265144552640243509778727647068868348863354086468889036975489686973407476131720223194149758952419250283161967600207482373092501242634156082602377041278494459463943264978463687132662399684386693743476985757496476591503895446457337815790833320855637408666829748838573896142823986055632549761665242235401823281145635753808346774969529080362425937236731767479723846391345717684717033063662117163761538247234226334792834265411326426915006977126544369802421987814150273480988785642183254006729161173506770370029350484636846616246829220033248680988703026476716212807464773828757052383779991877757312848266548174857905437646442681457201666268406895823021616092653230384079495355277784136433543267979547975539980925104150777237471302707735366310202616065551675964913077229896044338499414413147903794908359807074600671543878730759467961286414985912601028690197424781887988641846463374545375085978611260985398755148927396345103770913936717302205618439671353801470829816402106888033017807228197433873359877852898023996426530437094493763667435977450015490951968489277184765961025396153577411741270298795017800532400387596485097709349353551887723288905983629161176169097144741534237080779233117239996125836069955011072008934594630701480688405984824211674619331970662102398659185391017481267976695125974798353141309147065308167947925050127980640275860235380300609202448431150865929279765956034621185420902768418658974779805812168498375198102206519068040306723255700853504895145531757255683245626063775433223488647860336560211891797266864438034692866016651557061906213138152639946015726084549168088650348793516556200664525752970717206253086946905151590878445804435423612734837080024812762850175985039914045876926406204136931703900812703306606725015219038721771616351727708001271156365753225094711984205920014261111196600616130046175079768471869831420985127003983524570079832951202460339321968220618687002286466339082605416286551992432284864303568391623017810976152542245773530288834075010829838492254984077183697169832622860069733560711339615382615016722243431453980082097953239591265284241281318705710232273033226112452789844695097193680673896902375858632026144172659694499642925152708665659954215954002646205344728312678856435307721055191587803987301533872724691332202648707645255037020598263878855777515965196319236324785185365736723289695088805303448632209721170644993316082477440805859319999889840671288582515738472588759445115801874457932757070666279024976741303412001543522547826053545892897382003966742798954526790971115131888079336817738457366796489832362776135090034653599521566442023925060654071071543044284467398199336262544707174751944107265640405938596115689538743674948920859385163756681959197048429689434164484870774313861351156994622996748373084905872653344862147147230931694157929017620308666764713120210889411009128343547006448560564326067705509466518243564090035147995378691633015099690345730855422025437216393912543128204829595581127393260334759449050930083524097513799547901946034825139191039208342348157961639482449825279819107816111611845851886335184079101454592705116783394933919540300604360115194108728579860045558789734917587831578790387119404912551648976242742030298308716498020716480602331043857460908988032924697582572571888679560042636681823632767491384632344443407079191058267482026593848095498254423345352898472789502186232732520621659959939550005511926640819412211319666058304717957697801786475982828539306590602623034424443162454409196672492737654478517278663393014610608204131721624089896635761256498514702658182894876523280640509224298991867331953883774769921787657384969989687843532546122061301292931995667899024781396511606348385351763413883713336067047320914065995968119430610230506463873088397934560096624330101480677991639170089076217002232003942419555109684583692927345037160545807058901754579001464641176489351804688408969969692725643581620486057807132643672421897549479129484258820872535338399729845468847581745523620355164467205996335470902394280642909405815349206011458131374785073727594471171934048250274541867431643365903323680322280545605783502914058605563518226209647752670273882209370682991851893892810800753434254109253515298943529720985340281453142447582383439095894682651203761478983733077330689466690408519412951810242814958353067949096377196760174745026590635230503671971561656822275618420550778992175009538392397156490996761398155355639015985117746396459409872691303872866929511356441977671762122894128695437908022878732707993140689574774287292871004190556354044922468459777953862519450883275283750019711054907110374392195988368422285965199770486315658171900338655724626226169188766381336049383658989164705382569285331325067390140168528828950286773859089291216657253501825203119276543241310365332870305867135568422072099485114443121219197634005030731189513976616813182745549765731316064007584748679417797718107969860090895430226209053644734781289531956331353855314264540056976090444093182167599318364061988825343307827959937692763515911665528081883160483946685436260228078649890755360897087682318312919212878195322678820410104518567315697975266048566934388760875789010737871154539803782441792380852694070090321712507268899307331634797872349466085636575400693658695602424264876160272094110456309062437851166417622523706273762199901011009614546612681826365377397249281919808867309854994948441854694423377412098956025973102501885335995005041210058709133806951487714058968594982864769170354961654367744160824780199606906268034732901316194967529863320940428078936133946351672418249328201752482968871306132118027935696984669851405786366709847098963790653274842307464169272651630999542483870080002568912687232343530008865286650187748860159167557042485322198250124388363429693094501632080638232410133030968602727355659649070084886385001649350795432229587678829758745253031086272521737651956137487265322910369761825959033474662612297682090603960098182216441901672050706827096763817258608889877641505055160960817907627816968151554381669713784460378231597255205732308702926389803405176540505160038915376716100441468035596380459946246137750523449530201105676689109751806781980580424314082940021105925795016415892437928464974205514219080808809962069600059044867261109814329567886483735237519384059358501621152925689238401709450766428971409819482496784570463366061653829166607495576061553226188246357123614179296866929029682175495765993065806733310311265221087209661455858949664312271249953144683319380445381097806348262184183361086494436881573990578153428946277656542042845878898261192733479033816042302668835767311640960384477753250567278960822155407768338535111002729144945420080879152884428284672231194540388744162643855383205689755418410573275445670574629776278762648798080080581883964856777956009539718969853877183424922357741320189054598268868886255752646418608634916495809803113198473212303073252739883505447637708496029429561379610777589023789457565249117984902098182429256161583949781571398446846572990248590275103013119358320091399343616845632949512811073856092140022727194493378858311083597223768954743622511513651962286448388745137426087253035552828816994896597343608723312954145341371391369514509938755393229842483579151699471013053843887627902985613756963893310788215590679637502563770237676713275415024010195088498633255825449540401818993164569544777950829581134380023478724513496228136098264139639980195721064472065761528346663194013247542981553333162162789295511605397061533198002481782243060173374779946966658076482094045339735220484965830101773760141306097227786029676231642645126527012226428076952536011000561460816686793044131026930778686768187347337935764186203987474486009702487375331055789373410947826712192164887045305024171079508826231377386997622203541426180937810595492252796270647548532268907018168425191828801229712810727363875345023404749195031128210116875401982377235415181149465797540544479390729285781143881997023811184489679046701075471711910759494416260479005671639129852597779953188379144894836952983054378919932436032136112429235041208337597507325740097376919207758514007170818434636985782562172788798092192231585970700509522513432786944241709600489606538132300852730065834049558553625946883584606597579146301717742191026264115634843646019396119117896150600764958068017425446356854558256421645338634879017439790930182814062148884733430749939811090166780495302767232887081506868126127524538772617231678395970186508161032132852688913471072264003854821089720731089305500722545889802991930443580838385187899593776020841713460360504209054007024768041263036438271469547394804545950118511113384796523062418604062365887448977710398647882761220234346811186448801265009241402357385999590186052245767656901704973434140555274349461059239300359627986388615906841220513716228918843040708595024743577876503693561238858320718596346806503352169392629944247948247099643511448807076652019937414317131111289841375261294781747463613380576797927586836417183647500572795558308797896018004664690255037491127737636428902543312872902395816142964857955806923219123144655843337103705248293855572498271291752790572978801777362251087626052416443984532571511585960058446747369031917869097123459099998193248241349945979867208815143730841765554755572787872925726923997141585038518810708829419210020978343875365666782274986232727057755624783595031749831857694788338393614651252487984888010234197486166055531062623418852554226593013052422355615218747105801630966850008618366198665452658830678240625871358289181125737333923616591609633004784181238898243722962136162344671287202888153740747026426354227392746156064804658430452030767625325390939867382869918164231293167305243157028955434031235668598203042527052363008215606139420049396414796695094647330883760884512462719992179761087952645116338149602528848334249878819524535432734481552449833074968784799180382401259905921688689286060040498020552849438411430258002891115548284286770838344581115707166576658444806620928730396685796266796185108401685305106852754444448565450594455730315991601739182964228880874312657906035186909335807475648210686682411777666965150379781552348507882511586227748808108072610946745595204473423542134993192803546861084217993372803660478702732511573887093457258465692712816852273968305637155888856281934352399974174250449810366189762888248689851870076860467386757653559217730646257022643179019641986993077914051302828730262798978064375643560969526868787963075409435089942511088687587462242186499798516661225014544488336440164377166497785223637662091804063266135204050508588499078854693692704344150005321747970229745198932062723593078178323791307566481280354334939369050334612682246568610369145433792181435692655645796418513123178834844589785616432240688284202891145815364199477995105575208819790987496904389101420960824191691623637865686234932143404519308130065101280203446161374309722281875659568443047055909160310841049938724091556651249970618068673027281988749020353984150735370765667823507626713616826002912680900004040414042269636402604908877418689675531191409329462968431432851585228729856111946322528117057793752437570875074428684881357707008861246719078035950285199183391460588396036215174414990450650019709310587852341793411774371126654146830554322192373320532596377188319217996904919826397211972261069195576849753074323060129373314836865169312028462513777644887616297181945330708547778206399824914461828010010237491798281839801649119822140654169870974085054219126108664238820763538511600356671084605827545184181465506076937624193093684778911751604796732659017793172144284405066595008311634311097297846966046778369383290012953425400164416176770122642848621886249248960535690241484885218382385744178676683841686484320778490596937637568762553273394254432240972003251733037078122261889836118599145712609604383021491662896523164886952604606015060112862348474217932797884467593675476882700368944698224968500489749490322743522468763406289283595221189980735895782318751263024935499918442136914785668784375882846640554109363982522523876973012024341961490744823913192765752375893943382190062354040004798568036224305887814597006065058534132847566583810950783886300193418867755789600456962375086271059189501069614993327614074846001955919851721194096775588790894845015077699044966360387030608161361120987554714973940960542418904033343101500849226228959079798848243698565152955607316241901162875555766244094204921745007056256843344430540714008891458348805946162753338224843456577745278567880164245017671497264812724713469163831901564254025624772327076430157560923153495103178477101431680125995686088233931890277620428217938885234446385611344605384385408105641180717640342118708408833994261609782210490540751898736228932869290707776398868832617375524333300167357185079940075536355530878005918018951080077371464076301285469639033285317076465794398912897950991200068672787585112650796419056462243092495997468542610667570369034936915520172304034368621100495880529216474782394236148631328933934970614818560351755343015298267604120001208587166885278545874686912690330406226767447616210087737897422335055781532773963919895693459935954695277694421948949488973996128895262683326378303954179268850553849214681821909032331443171250177031071033831575275682144675733001697486101311633554728886914266404322904693216829729900887360621620488464032549666184692114513547117646107827018791741526791030184441385870148768188609124433437834043848918138365541081882803974612954348063863767905653111020361691623727559621504433247603486374280121418955671788230973922480966936413844884681717522789887335664712919029751500494072308028170077146121837363410706349683055171940017613855647795051974937141566044672768131595196664654080427717824515574039490252705494607962611418179087751476335910776353486408506555761374164024180925464348460359559493459896012407465796567858812117773865474232335442036157954139069703406452978222037625966653421968025899925705996191576018803254139243979189359870321688881461257500019451966825802670494185973042939956534134337671909075730281449830546329324108970703287858877996578682961717212504211382337289816669273888440418563803898846566009484517090551191290388912774054985141099257656198411478355874651906536542854503487265379629885765788945404596564998310060183047812710214069788630864364097535575106668508567773695636812033752710997490713295942635135921540406815996726828322306801061713640700872255030597386352892441521622121840047466195887086563631640064142588053145347536096594122085369594628797254496172561556637707645549680681658094555854269878229633995377683540148761600154474113816790859540958146565530670124771438602070453601504556895456049332240506614626841125126558176621351716098486351209802372802322728585115379340394796130759421589306053338983084326143400737261101894805744232512331812352111637614411180405164741706649991557504805885139816038040477181886725438370120100897382075622923399715856148699819069086371228879181301919093536202041150791897151244107824052467190252699457778100529490235487999345526475731601609772037784120574999738128326803714761798694817820936320219209804192648672086950339203085345261046663825284290885889902510451563503858518248470746955541284882578933248196358198087744340195397270435636236280032913135998711121236824906370854763428951116513671217892728971315371411777201793045529010966395569744109302306054804274287729125813790415783893599009142079989023367221530032151842879374489502555987295694514082230323481269709795420075502334112803800234189318131344191904130898063043196142728061374185330010968980349135523682103319407094920160575772838793420295170918788899932756139142331840814753913415955781483175006408698244155657119304710250759560238085926321815398624596061100452288712036308636093306251883320345266487866667090816015561885299149767631091670249095563912664123892731512686962518305484018949411817838880603915921483480478586010557460956646643238700945383424348135862647056121544329215818267940639283431031441122544422848452002072577679032011691974739730798839289016366792798685644016907100224800968428406587176143548744415307219105001666416539921841613369205852198776750259045255705692448020256694614224883849990059931390746349117155637390913249597194786436217751320342899808216761018850519650787597055499076296693712126537992159653399885409622156514144490917939639628134005702804178930902192832011071826086933702648681567102474124078322820115316818602446399249073271075541246991768535025553986784892963867224175925450590472283171059572310608188020723510621132278065317875345346754901643924961639884958947895804091538253828283045765963049452308806198088702568911143541960705324423725935945248593836449222753136491465881907412829138377829417877480681394463806601758160227357513909621861878357251866889540472875970490248008443703177833752401022338035054929074358249768936522386539771861970201095798040682732828402854789818160655756687441675311752469496666292423830227767509676200150573192765529505416997029039183146070864370700781001175198626360736816011495379804816703413010397095657565257720084129487612318945859340985399658199050095005467021181794362053525539584133306417619616379714151062414873657294354450387472654702176102982691854793475754673268971803353266490194018507501227409603729084365673250532785935843664791678265116427554915667889321013763727566567947026600862024191162635014667244611642423874201963911750200501440767540876874901765607013313723319598538522849108638584211345604644410533883549754707160201134922371539437573006419150431410337321934857869974190415610680156160177245536715430187349600389890888031238898690432794431935641839235505530886240474572379364900957502500339996254968197926991799140983194591194418775795261062826916840085871016813987408761623095000323051815296017089575885467968081412034312145617632052172787292943248835472284598035076121504898378186009792576980830173790675868187782496125062535655130110342238377689074767930210187212500345393551727886259101319243907811468723521633974158387638684174120171998037584037970680423027121508752141179576293463427105478699200968068828857697655373485599182997371038880446198365202534999049150719094877759624570986557814608948254206873366432528211955494017570741721826750401542981570138927894962460527806803800203886459951021480653536376941237152392504671206379729552537540891652392462663331879241534704410817727351960123804495816169096490188563747221673887967688212673395855629015980852915528460817809409808015684665843423412960183152269018751430424530811068544802442363632118077455592035374974021639816939744198004790746953519238281390328360468337964324759599055302042781412789170070991955888515775115433067252182644042426725392302933271475108398854190347449341509091862770892723117004112934537060595720722716105352077924158619226970127130945870950742116174294584993445924229020393275612159312240936811415995066351006570593896966999118400652576523968798250569054128953940690039446034936196741564157653239790670787180308191942597654304226698868456341051981556199876792145576586761706219054596161515093704216262834626912294144660622930513100437803337252773575560932439045355650100575986867510824973298719295053446672768823430169265947282674614195632659818471350455395080037633511826070845876854182985056127990526380126402061491532175470836224048230120418068598413186573509004646617353709120766322531037229275454239896966366961733025204316409636809045492731321439662248924684997637285317667632655529043826644208251206547649884271314106887992667591595970615413314024288379758856511080848941822563939296180444262595755725164322841491045533828760160534545668517748065271962335401572983796024116055681083484601925116582009375396371544333687456468002655087358827065661830574929789300458391292262587572396389050813389974244060832632876345645068311496250552380896659910368665331298757160731042263928702319731146757828758885687023283926135162200310121876017821577110339476302377174591733553868105138357374754614955866923922077603551540531820664835525462972644813971102753306253309015805269887255096895653527517487476707320898120811471328039916007055772374855029611171929785603846031186316922584370048612385041757429532305307735958523791992508141970417600280760219936802938999577913215533409109229802678477169575651213861012074863915884890603958688946647840616946223959883986157233103264398944686145955351577534928648843158993452607934657727703760508746154443516013797905377404828120620777899636674809874812213545681272424241558744595170963203844895324484012622231292816489874707461905484390238695379885151263757774746751423158015884518261962054660771103715809164764809851522227587405776284537271304143866749040528753292118076226871076901209701825229636010531449853414216972014787743461343227580762551803234119887476507371576956256551162186494403582289593997524566351629192259944551584071667726576538388587590043862442243680827331738743863465970670635780133811440896219814504934888939450573757942177922905481348412550030779942970157344813595489916466360200904392468810330873574546739047489882236821104296545719753024765741418494659888923754917166827577678319325796706325078392321692198470874646717104561768998490261875074619679884914235667889805165748654104349191756249258292312584939027638902848238956322582853667753289713645717190477404756958760994195420888985116304169977702471845729742434465390175284274748047579360475316272101696602697786453294241807257906188590735959670726917050735551792520732097799834585966320515824736466580361871185884633405270677948675270673232365072066628587947161110562767699177949189307387535969551663775278170334725379695287752222141826624524322128154251534031070333311402969841178164336046135879220388878747359054138769542840408776240436657850025299422660859648771542314282060420770972604551059421299840782693171031181521196495995316973682426050510505372403617977147936138587649322638194874976465590129089837165481742894446743789484475794554537686531224020214105594391919933244915596438817522820731297662236433464833529315706572613697490857864147548343866336986021383756692530238060287744209236831872762264671304607854022186084443044706552759439576427443572154377922807022495340343233411254161669509684613785888246029658067286682830242675458930622971195118338805020782099258745513098577905339437438003324282945095141682856153060747912615714319873954970372557188995330811055356460019789684045982879884249747633247265860015130248526087905020060060222090079899096809474102610591052643419407684506729819337984355919837881870811077130204750726656174188638641184185498527985950842311352061939982559416900078169410975840229874326196883396697939427830700714220273040809878298475821468668762396472971540628928384303647628944910694962060535025767706317561266815829830610031934812751761700149506459433604376675406240060924966706471196338230354540689779051645737515903967710056938543358707404182586930043669287890570956451071419200169312093365347230474457804462537275705176932301581587092159018182766910044570787139833927743281861728760717750614600727725641677730971790829447069821852150357328273828463696195351700148936893088078012428520546074089590797198027576622790226853883674759148008034357357088085496494699062749977251766165207210152030887230281616015432456455902494245150250659053837127390986128911739631580011415686499899734645716825366906131417781612326414832869563415253509242246191616962007373086566005210251013510884862599275192760240135523390899411238989237400091817355489515133613602276393779103881910804028731217485778900482181577837078792699201567113523807994700748892709140043876941606276094433814104283747639884641631355368473502500392241072727090373105033167349333624327266173973528104120341052906632040268432042720466605255632519235232955134907039964416756870250437957330051549483248334411128243441078480982118483110346350493838122527447714431920840058916699698668738191209014515242425117752421731469588388390218165764647370152502385791910630413293646376218788076473793174916587397082090204894415768825661364101751143900342766308486175361163199577116610648133140791649990014467807477577305184103414099206052609500458822539815215704839730104441946576351519240495592636348279896458395885562134508725579032105413445232116030355167601252100996604016227965656226853067359102754411489268683018121418235822655566922941029225421818439959021110138992674292964773135126331556420107926014162722261255260708768304604442357245358565132964046107382601767561740926728922899676286117709036700428099829194768556285511575276219811806665177269868680992327328041961374800815570463297517819761816357891506562150032238597956270899971288095991776871670984845282635647065731613573763226511125315149037714545229916061826412830271254221632332854315376675779781960507213899550651741755324496245336430990498973852158772952725729579295681516629097499036808922897530283871371166081707500450337437156402271654722110318748666492429465218674432766725757981692330371084167384227882565566447481259862259628868103025313828706327836119578651196179610082596431248139873292050953700533930717264490350780431294086632694990466492598459942201470058034501990416752806527977716586815272622872024197015050645618343103753202390976913109230966934546654877248139408907359357781381747867295106853648253493664747009374963716757211229297175877431015833706259200614106269102722078475804300782436620471398256133173947480016792674044027146561586037404157595944294799384216784684819239900449834108205215120225969970966725081653822635415993240317984756503785259065805609392824215497947528461952301208301033202058418592534399590778430323155267170884000170199017106609738377287196869903649567395816094721388274740654833325690199393196566074237342778367674625160096446528654717241005183804460499961710716283850700283443046745215668401705307439891452082702464295897440837658971517208198850049175682470138296581607041401244529066984437739898374960693015645507298126313817073291582644427378804435400823999978351674554427839442310227252389122124680214045754877742101677527902074163800261909552515435058498744231150463593464002746916452921910131471335747268147591003665307000241425089488327491437307260960148778398783420421722152343189230887395987805225812999556077558126047084610199400186516184899454790032026827765069150284341389289911691725038042997900252940392592776231870141612723558664934067189742654102748663950495894000639641466829162216878873209781064991517481416155839949610479160904294334096369665211361255221522564636694357330650173031476028302879843775445028675761919629242779575709008881319574063126109541176317160820302059010625169036499568818299790471668101756492358892064239767907452845182243677114166453769200504971957722490150996516906670070810241708750878135533927090636512921492474151579897306846813217898373573160222787224167544829189078419183213992742646658996020971590267963700162231533747708793696398390692741446283859576033130897940958017190906876408003477191747252575999700330534959864233455506287206553458701070806240693301424128690438774470682202968463474835841003707201347514487789406323303609637203145718421116609367918117525688666261866497713314109918410821157845892177546507590455004391806628712842458384232955430540116178423992510624158166621188340463292540321416183088375163824926530173521438785885886498474766775016307206919070053038322681540799236659109276945513547979391365278492284983569142140624244927240362994406896604833917723668983911751267253125547920189905248190720658873559277262851205548684005974674485448570188376432506722083850324373303538733560859558738081812251185981713695330144675322788867369563708231460288973622385890574526022678871764691456075610703700623211393930985762914260050022467802477166753584165431486377817982025162445334594370305184492631079063349683004478142059818044542641349809558289915788873969123128874141567196754410046722176285382295697200450529670170995807711996178343542096843988490600932470400083641384465245831576207054696480693762816349512406280254024906417019401069425232504982357216304083699220964508427802960358418530237803540312562468550820160169869627468998367978032038941978038470601515012857024763099314364160794589863245100671675219931111179648713325012197632175125427591899152858415005468546816964254837360590221470431254323743195129599460487980378965829760548072359400562870306438195206628502531509832573530607919102908218662128229531049158774936986092086831206704005608863351320861797596652153050785648419187740928008695812010344982081798942146610789742469122830618047393700705611625682510841074700661538030482282192992144173214459906321305861340648593077004001387987493572076157675392292298860500011453699635451796501727415572761740744204893677823559897604911420140184267668891709105057055317966914932175410415403548964587083852962163873836042551972991636993737700735621418271943698642498111082596395070279929167563024687514827080215702602850228166649625183409690465743158121476451175486289117977776187305825474828204157293616091620308192042194672795047749839727497082287909949260055081640368644255871070894201107110475878999746318589297044498509166816650815119709213324283827321231795587579246807240427478183552253714854133553712682624336872193510397902833930150797763731691074633370890263032359041132854929366543796919831132744314621183882973769317642127949767325097327390391509766564451469119098498138738311038828154148725084528809367967770693066720881572263792235019775775786044652590223431159572178373188673939021368661283793653541971402747482863257420750199771037992337236389982001419148679871181251789284482863158219196700369622171283408629655006745575562159760122309780754131846663629102749802709091496827973014376406442911672942050463584807195581241033312705868528881689537280139429849433577961664720242694965852214008684895057865350232173808063810766198312731253229554903839204150056608227780562074392240014785740471883382980240071654011818669791391608980603593218076918280384985336580706338771268951988873669537736372578297632012669167265586561434268021992693552091659850260948924793749741827483155695066680294677334632165333565774393829801052102452717574470962824526933818513313608982537351753818018133504491439499745035784720026238479535510346258038915220387988964053327338948736094232834593286032499599877909619399129508024042136694418355576818949417699735647245805844581131945491372924409266295365024043064658877439022347823874257972490533177745079668347378810008115824375152993291576594322873711258046925340155443017517193604946812291240048638078604002640536145788645347090993050270400800073011952229947098102100151571205960849350770109160276522802461084019589403171174748737780515857411411534209348287746951149353786462841648510024210262419115847149979336236149322378435367881987839195528727347976749969273258869831775527674291747895912943535223413766316959062792990672541524114718035705372504153899298878151409821643246637233927436026858524813473552923169854504462931018746703500351853374109366192645997421060847938280299331562915965455257320170479197047406068520348916752882148723297400635392676787126288660998087711572155339172232094802698424630647663551727849524508830661914864666989949312343588448893375058083731594383439467841113396131316638372502372185157198282173867966181239438333392751780213362040339439059830110977677537011471292318795318293415323223421931545993837481136033353907308652722177068618193546562743980270073371540642638092851715476167378485476007729968740920429179557623473980994520516094601104385213684500648892638945913091160765868228623303831771935240190700608462246668426751736596214399869051804477674634758078952546442374315766172111186696680436196565652470722807273786039942104390629963635615826352570697665854096282575488179049674065370226379504821566031106671297715922372375721260263866355727926680701750435453893177329585325058683081931347152956530638313942240032479593780190404723395195582798972400867766683679226448400436283305092189035730749748154865828106733880184275536642485005765182094830561129507093065319285045328036303187214599126571733538529866221498210389200316481615910578342871586800334997254018385112696299788580518815468669271597114278834816364051683259516610625158463715650741556160643988003681043555038874430719782855291414393421212768734325706086415635178530275223554450689105662334612650331455946071854351500458717810102662104206262846751810221195755026787511940428624971276563609007551558114338808831341465365590476290205208997675932289075941407057486608733157796186357273575076636755986762451507479572069707535499604421288653985212501874216451290403180375074657989868125647517341936767057143736380948756834577699202347709605444627124677088364779723140229397569209782193829376081429588985490752251456671799434080758793188342262664977865785323906209583465075392852545059050838785480115962432185931673031757346646644426485651871168865716747744227200067772717905645080737556619888043178728056272061032094556085852691838180293561948935690790633232674668631914997899715731930704201212762640281717194435044044019968357589907398091778541829653427829334557262337953538731092288432416096256189023571846493417998183053660176228722047411325615688229857655436641220320290229368337948499549644527941047339428566856512161875880039677992963500568189054932938317220858626001077038085135653626794583513448702763486060420414592615880963183537410167101097491954183385191015746256661058527720122648210186848571862921259894786991985805392238786116499137350118529068486175030157517836685182858911062311154253730749025854801226213298787713013332022528716436155905115829988662395476558955760824281555048459843404385529696261645724321704047067573595809751425913512001380212874094332645229203862036445507959313248566241987626405938500511331627173168983951703227640477600694516556265672454553820959512877991166226367560812659646418868755034288467795259625472264097069406304957310124925565521063225361698857219228060085942773001125141820168190900961666950874318024951378637071822342701031434853600011352157619898176325774202981084507437283256150695825359003754981732087428326340825912957563387395965206551853516417932250023954321644995237468530783340928902218024282559452033678450478020700409457198839039437816708334089088208278366454510177316162588434422932920199121773107168492690607603819634575357433706191482176003772699954308915537488706725144394256670459955443697209895831562409211162493052827120552956807256954793655418052998418355884024817649062338500524898400665154935701870652475203262624194242887837533922836778464540927475813151642204478484648841001367724446621733736355171568142170570499438179030744128567793168506961886171274782136444746548088162202512127874650102844093176730955700480079223818151782465507083609983250721975287921767193010948680824986703375162050792920648606479269173040609435409523347182091262563957667102161326541206786281588809177826351217485728726953231508457347584464443806054850191672107895328811925225738168285114714956720866545691950385143145115380144237099414564303156368023095542751225231418324866051654313423884357940227438334986193202224540249191612588672267853693554974820855451565476441334119292017809990730067183801376748460586814314254325487967347626732506417236307503589051964229474990716880877924521996231806973404716309126999902657989861458415802519620070153082695818575743754703185505367687647779285738455313391537223320078722375548242686646827204184046546172989757991966686121275180831035972748897808083418866694756882298930639371120487834930199615314739669314786801305485269805534501263673757947232039566086493371814673850923594572497946984993009308237138547349030869776254345186582181464767975654201789405427993972133486982552089775857867738026871936912286290326120219360020309824914802244226796524114323952352021451948055619383638801519717706195936933277233378862358163178322212843061846363174866748206328961325596846056525033511870275328412766095803287398820841072514316583225177995694144752821839328265464405121953585520761627934808616339025765822364732459711494396663048227146016161839151957502840839837207473977750445885921047946123485767103140192077874226151699023864555122443180990696867283070482460644943869341630559156689859727090438415634872548023743101153297768013956162280477402714239050507350801488092604467850682741275057296346912047749333250887326789186960926626302197561065450839363962045265105636594208762958393062439183197247263174393512507354646796831024001823218647141640202979242902710306177065813626690939371873595204133300973110896882023595221288268451118196327468766594513411307465474642223236686646679953436133372854747901703598464850253805039320666592345819456838781255468419073965149495295448018231155193150679363338600625891934537757769003646317603120193385542737586428978901001287456922562032237750441740834184954470340603906907522428211902928900942727714350295939524784822213881850607902768950971998649280869300829738656828968946873746851063860479854067100720171732877058699199001689873429538428825350957737754217491815756674984512354511909976748091379306943347543696350622388984273075000702048941451770208099647844418882757189507037947242678201548981415381771130801876640748526391338776579398689971614633879484909732095194945126876268116717706731738683029925073631590675698402961757583835703801944445122070369840881349947445464723824258709688668241311438203786700433085136601536074488189562359541427776244454999650790238035978908353901504064379290407081755212714607126636311367875481437473371556997946475979458140103751921469776309753196322428294652308141875658510014251023332071760699168724837621147476682493551783217804655592164363831100878630178796338998975712442579208292875842567006320351180002329098192142699848085285359498047237170089679542799196467881915876739992635966980142988829092211593610031625293118604473195280247636232688552878893382973165604809445939529188953297440411035061016201817947499384583204330042127309266750735981609375329567398705490322086737276204236138256245226502576647510957442034528857022522598192324096112508267060835465152224628133164672715569531038374881504732907542477458467471989766332637340389003938516002115639439134242736229687802895749242693963316440141761596534131493579262534487013409769885751776857200796643522886657630611431169220255720102892122837730582575171553463196730960586858292192863864872554550231300436007775001218093282545467609950785319255399646246739380428844484655252632561797284944494646750516437873046524375306336883961216305895855047490373463385568081820692557603502970165015870449425875532148438054954167673308316778479071415374478764174357425131339853826881307499390133218634658372457564719074972048754897706943360562996767931483554932983286781969971329223588074383286870695115227458573378696778657316652202539455604093862751542033763801922808672013479011673604569641167213496321543841134837903521063191154096374956366087288819983860143269599711358159133195530673052574928295308133582854774174157919327130637348174783370204072888225435660631556939229646879226184187365807589329268254344936954445117815500155406033690223099459627881906303941429363792696806666062096240258665171735642470188283283741038845834880560040026611993056444777065962139481688812421097241308165538282780939312572164200694892490825139842839084103379856148132491238004195771184660450051750375055064544718547311749346601455868973478569554964159126744416128275240756809719557077552299692201611148539551104010578214786002456708705071587654276886040416068007499379368960158745263068514477512622877580740122966536937848269496275017253220447371039223298565274792678429167370084154747779427855706158458468818364326400194750598043318048296723108228479919127839284900801274435092375719510158851813643183305118618778176267427836074919130736823851845841776011210798667145480759020002620538488029414266622484132342975680715917869224351353365943989811983556645380750168619145857700183495986615765021044284866049529477018222924738058364183298022877409270327787658391389792541121566486727600977359914946869607450375260266597739631418903163227242900394776753759774723322188133322871451858973771607544998399908324293942177365173333084303140725324976931207241391358727165455103067877388743873708088907580339037927400639246730231413612937996799291126818594728371871781766164967772167618149293377043797034396683608255443974295255263953400834254499149144562360165675972055094916957556316748592004162476959318792183071164770522993759966764886846431904848447716573942968708371963576322371667614725898028644564954244446843050433888701343457322072001192761870244928108896282007307459731697594717614547597063777151351107037282048009864912138723285217504584762069493444860866719070863517880815314657406249443491356907399927804125575073076885141572714921748718017564088417671526486346054861307244897378193072158315032719191536963280186250234603897478692111894874045888896853988782034054049012250294896916276957722886811031183048976894203795228776698168848185701898136850803292565721722671586638285762766247819762636603643239369780923651606457149102430262259276582727719766263000084200211597242554144124418167580250139553966722017528307429602616067880497846415189171592817803040312756146802749302267541058161577131789469457882795337544356137153027178751049526127791513582095576907302326457085658079738502666038850924893925347918149770851564541240976174196774640840782043558742043182205205167459245047476114742642247763715370899562108192473910477826785523347057138156089958281594807943225275336731282886202224623669710550977506486731007098311675452248427887313541532186501641073140694083653619866898134428950151109539706363878060840262047996055741027226293072233421951904311993506881130000451880376923306216850501666545117380165880051166885450176607667878218879392552616258882622618779536464272931359306372820488380337006721893730091548844235020079036832725739033724071874629215713018981523146268173608555501030780983350662086988719370116900429296246678705103790491013155577601800699769252715882981725610996854288248077369341378515586049396817082284747995630146657448460315801781388363576843570704369514081843853538117487892861726865777378255736282007803697124726381152412400510573104836261023150389503181532448958085041128493174105980073061324173928275323848722877233088582619795926668763030301166939639279367981870088449944949940822623953456059721525721555035331719838609710527276053227744916635925927626818901249250249154267803380660876356601856289219996624318152629296796556551381993290059844752160494849012255183725484137129299626456121382420626216852711068646790945051532937183163067449175374544862852468566283633168922695349568541252825968370823177317499465949584678276049393641162729339835626265170083341788596001259107722587242658652227013379013216003238740087126865799611925635003136899039498769526211730543771544906697725295937060940707651504114697509177205127422909526193893786460400326397148950687339663456275680033237178959619901488842071248191941673846874537465271022601209122065628611070574908528797780942607235860343275556704598930099328637542164409178451374213546252817112180780861680130747438955932153651889026185006367263133475525077178744865316019554797333320917956789030446674065688589153742242220026478424643668007956158333184652469243252362280618769513080038265266661434744031917434581113048610630484017994721786412546388977191503525756106794504809460322138654016588355502141625229859197130059142363490208898898877087232566757607356082634603462015170489814949654662380308802784859179764295922192882463047704817153496683664710974796761900292058380970329399715148730393600567911411922691348028696273648843879325730946955644646654945666418987768595658184257607270696463506084625635483233339864106960697721584303786296738330959872956301607135224118558636289594394649230495267059147742369353693793156607038433230684979065233174014289333984155788684531351695944264995733967722155395410481547139981991444959515777634088442357969345577215182544981227012540132455740441592319115936453731371979870885222597112999762664378078223607706943574197004140518200354493546008273113031057134301898766016809359615738814332249139659063575699644856329079213530442271144500893968634575227559981765992099040908139388806868206401187485629347333969650119328640294084436392196453760563944397225229705020306488365723593446033113952107193378303893831028339065442766021025682659564549756335623258953137571339162512895933857978838359553732322506701971721816034249404241009126023445299453712247077302862296186013565300130143429354052175585114980422897182654874067051096601475755407486739654655152183743455372918609508191402398806385410920931569181027983237754875776307555441265252604183807707629755460015302680793659513028353004321096854021216992841703538895736288377292212414587230390489842484865505999342578414835701717938973404609525736059542952675690931026484735737706184121709541168222215687581162973135856233536076912796111042911969474032473255000152396624286550118623558858759344094340128713007449424711328220017375109057196609110330846450814248329101976967299558977250917754808700629355728600146249121926997344007371478766964139620803562332363551136702807838523819532597428605776733732796066911971501495890651915261380229165362746745570735709865006356063172406267224489623045342755187296165151294323943978060126834760614165894672466363635706716197103026112572477527818194565489688041252803535676707358741073122342567844488704286434370723508102415745636311909212604211860055265970053700477450248265165296354075741580368463636510161439291442124248478820535535428058669948149148207237232747701473130864848746204813827573475387560803267218055076499040222458949722662819819220806791083858472193579193166114166242271772294399549160095304803954533338691195121559463161862405353625001420480771237269041087564698361278005220421366109367896607334254787586866100052443659210588281163740505825483553475284604915290783434457046299861990035355429592460735108792951898309582252291400740389555199359338726000510093700540493914587614856673401457109792993400805534232149696692071402638786215448749285545606272343063720705278504735569934378691693365407240809125707735145199704170275706427177615997841014470064869721021885900271833352116271862365282801508524355155419955252646512050960757985407651938053556848161959683517174169598944542468421369576800898176686609370906937550660295343521993120855791006028008182563462445787941580558615352752415602332632945523936428581755339164565142709448483232468135929907071695471119781658656542944830174580423004189123697076646208939441632787472535032725707697462857870551928629321881992957849190489458057715100194445987617543370715766324921958514699846300140917751387143642101612965114622115755869037490763309018438445151476218487021264620319993775557977977385415758781966812819948202232311918052587465927111246541030720417378554003622121911217197559612837652917748538204499245764908699647438709489859607446057847614038019914808206503773668135365563697293685305798123707153050053384654565508539795954615781841145403077218714544761371565079210257689793481512852850422796550815093361877287925456619584132234922489576443180258734203319536904757815039330051975263060756482274305627319738151595899152669722589108453972452683626877222939587088863273720369243217083860510393607006787858957845465607442049459525899381589992390676168632966109271182052197094048031854632157237625036946593222395100347028922782527610354945580251499651871789791740986199275117317736458987319843296708900365885648904082378262437799487633919383908558534845091244855048665276386014649277627513887937328302371000297016944964767762682992570210311136902167882058753155351242709712781590457365119381706436692686427950518903787151440381467015439882792103537455936389127563230636913697488665062899350106525750846808442096485270169247407447477075160032503701139337660645794044669641432918152464729425027545892973116336227781799591616821757367006361717196637012381876005082982677029131114241943199071821706131186319014828831056944537587021149198583745245207171874179662852577183585713423735346514302581313932900443962959965313450991903119662823285088696603433412481918217505460086569291886214598151539845725824533527309659431015564909081011499909532989128883943415037581035051399583687368491670272475673616703668743548444703101377733278603399529071614808037789468112155717149274049303677304737387578087807416192877376573615911276317957972384254971201226693695877376402353073042938528123002648948660529596196353032153324027231859159665698149024776675683152155273966426103220016494514718326534297732597803385725692222797807934445291454667826196678931560883878270782342879542782271364836485257064904711630711459957160934345308374377130642596916699773735201280052617480570427079399175247541208661194203576690094867018845646428830988625590902174077979737097277046692038125851849746793600625794928262074947208072635637216409479207523383005562095969520146908970166396775445471917709575313929495666982710048521462372212248687599550965960359562637477218840500746133112328960917530738706114644395700016385976875109883087040205277509428713569490794196215913496393320309224130718159216588348210310018804120822479133633482041465270934006167564182702677417003765187643369800123081198430864232329670334870420759371442905329152182249507634659139557969713971843177219158283497676135027806279754234398913589801043431805631159479953600764779113487692499712771904666415245921331033700981458869873469916527952217007914013272292266562874861950183669082489068727062251046288157118727512730915951325664838747014632187054014197170851818283150846331546079627385057760241421813695524068855359496959211987110490401333794891371583656099561969211757864172578964822571962724099158113764272620383480144023521455606289954774521898190038011793623792038690111801361790445513333134747705911431672876693294524517469225416331948360245224416104544011858714460282844424078697167481605464278400116194312666499120173191499294379256154971467883150762140387662868068151333150903092633076541211304186095685338048119217220486411830847532514773542346417887907471745679836343912413414850398430059097757731464977589010574139154100273620294264387736446347033761053451567431388981209556017797723337860523090240430485071587079887821223064126631042349808488670431993654391521057838522097130108626487590768089179923526623372529483496673105470341192312089052374315657255312761822677651737009761686594150150103955810501189889954153891464927764942676750784640245071873585359132882253404157278212743248266655179890851911653242163236741844640854547829414158446490954795871025265921707665967206047810673989161524041623874847264151321002498265612040716711470417039591417551034958835434586828057555763168781780418149133520415905967320176826291976746208655849836465313559634290533380869864816151327899009001405104460907086394141368520952813718888178296740008651005845914464933815731690109033024315890112625652617615214729288707858939112667464771284931525986383017735439470791835977116767565388469283479160929167813720731691340703077989836569783721844022853510446715928304912805084433774138283571000219263543408910383325195306375614983195981384401167550133008731032615408804528176692367619125411171973358113286513257318943040585840159573049300895448624603969168519077079470259911194601559455363208224166972575215040986417744859583161728831095600348149171796714379229062386544718869884286305575553385808560095711865277027696929441332744623197575646360617414720249572107391113989048627099161056723975749069042423554252738814297607705645147130196713416428257971834101282367452107284871531812101290029501480450963602960680671082468132082868055239661407250149979446974051974391422316839658610689843484361658767031069110408499718371213980367224159794266339924460020428433914711256142423058401456516654172969673472908240102415760142439885965866989394225083021081826962859450074830398476001691154878441027248032550751857748586804896333823716774761485841701104690615909474951630448754330073787260098509735946633576773440665197671105437261987179409582838708735615636825136131993504633058681119025028468282681899297161155494309361038091370517982711613861130561383178975820949238044776435953076433015194498144234673619706664368120329742057301026805940943370534854453852198868316500771273401959428610610847203592129078590884502492522501385526373354989073462669271807050502358978529629920635130687478835322329634792531151620680547452400634026647481291067129607032544380521346632653698930497107795233409952381529664556935156007715066387480977052153136004156518673856636369689515872787566547350867297286861566692014787570801524562551442506600291220239093355441478206026818587978146604315380323386044792003640245501441480146573727462449185093086282082963866107629360370997853761134274225598022027317670711816392931867881549605452784779214303099008960233481637458870293678069200594305586351539259653312585660280979341798852721058732946184264593642572387610278034654515737432047043850449781345531161968694766151302179302846222180440202636099155756530614166163206299386748541034492069584978351277195891566611056527412551153823318952472303459328036991435377802976205945219347250065508833169557088264638307969027645534787785159956443278699883916251909901682744607234137969682392501512205338229683937481334346235054499107917101806881121658089492171603158886592914398480013238317223929561223612004803547090774406765635060651626520211788791724521828002866320867475153505658333406283918761548715262253412499165441095512315105112324174981372642161945891990673183583168161496578276193451444558278894975659248876897263566730190965063435926001501527611428766904162303173551650436335512088797980672556277649378067405648262858771184419307270698312082360204305819419481001949779355726305881110865139991462970990934942297831857426060904498940045721975666917135660184275544957794071732650192570679314855523226487782586528875628265939819264543899001336217314906916885291708497555353975943909342174664582113624006496095546399864104052278915353671270147475536387349348342189163532714627327654720616391909323563699661302637390574214500480883577268747741583563166946799103725627427174623001733736095471808611350413254895029642447071989658882324295427811048151796442691219603281572047662592354909770796455415720535880797489364593155075122664796255198332052975401467895005044798763410614289794024444363533010420559706013267643500283933863353697110524611300519450330079081929937939236465654946760654760678234657106840992516664477527974074348588318891730267519708978114969022547794169506221019218693568448960205909545161636609590142561484087010142001131459391167075992664150795528100573468659694101226943213272967379264057221703748544388168589040430810988564498827954202607572003028010074175805489902235040203273885877592011912524145376059546542141782148680312830334572882619383789670040444815907532053110574994336451511367135586778701026539748881445386813337218481553451244546241171456328585025834523382950582742457992489170553684968353848684906541761921889236327585094512421040795067870755063400117705617098251471352010030741126973071086763561172792101890590192860984205240906261915328585827781958658911905050138156994026217004947908453529619190214044280734432753390851171062239004617734923338451876414667818674788700241643767172265923238345281062852158863679902761021728518450744081848542271130362806995157980229011771088148199687229947952145964023165819354272301125637995773936133995510855150638814489126606577627036607409421096706436776785953297742908627004623294608701679805148512825852043641461656760238583702985892873651233521352713130124537064729331784505039920025262494847713152356894671593679796637669605214920977354932870973457682145660825510382599517635611303924009427210183808889751858656566026034378637084848860585051479575273217924811803534497513129244455070221473483366388819071185175995643075945246144212193740189271866286975304031557690072403713171229048003513876783782845280812998081426316769137465860559226760392271113743293598950131666449187089625906902521003297647767350939977252820900012311611002071971463964112549844114116647087889669385636490578968959870157490120107880828220307996299463721262797897248049286685960610224675458253158045773962546400414748298390841914103467268841411934714358908707948989844428700519325247668394923387540569765154808148104255578298389071150789621157632240365362065044086695480460922075405083644712634827883175595933845159133264617917026096078655153250112698447806682497541165455534368880247264867669769954353573195490174754241440522265795681476518831957743369633564901385106319557902557797670917771941566728527360792734105336281097620310202316199337684075550592421196443721129912332142723902339473022203433557196672153611975138810129423686889273740033212971023943960311186409422580855809126425700661192614553530395289407597214848413510549907974749464851462290384013627577372802918334243765894821247848987675291241949545750554873668521778200220393907809848678558196278104905556358103031245435007395556038015605632710168464906767358988847949136083756632044981251100935018065966305075785450916630247164705871804133026990989448450595614565951878679447462904631986927608759580779580822599650359562382808737603261096034529311645681257407494224445872712175245865423899090446660730615178644304522631225932241073628549393489364501615477199946913961747923493735600682316259344747705223173944472819883480982605910467959041066744535524661853944715606046459551030432908029860781814622237072216329333922229319115781158803048054984847262620485781376113245676934046872869457234718804062404485485147424786988852783851003754893681000440434346632517662694996826932955797331609930968407323845866984026237872918314047703358757615440050155302342245704613306552203473099177599617961087982051113318666429461693180385798640292520244314951519758510174320815417003111587349529778622257518908116208205860862222487200131866552110632164897950127971805196373455609558385086280447318776258340507404966573533757425945615731918020165938285123443210897851695854507655446561424487553061566541297238521043445405044662661344450120388574617073117888102300689733025165333479701124421773128295341606438373766993589125285311614399587571908126146279338610575354801016367947561160066082542520591345149028690592418599530616393238009553789867766412539254648557340474424464828352009674216251275760685747675629275650486530410151140180749277247988591011121933969474572104246764643724956069203251307479682894887799851904377762046437058265276783796229983725301356355875579052794471886838851601492898509147191848019102678511603730883334418078170504758530415047830720519706543836263551438795069846003071714991749566702947265955030351029070788552054988666320998610699565161783943446359560879535254867176830880649827455259595856372083175081100984965370253684861002249325496045901126854761096193235478975902216243041487548140718768920202804377468704289922095211244895632731978646672557078355135558634487980782662215863106913265111444638059453099428158845207472234081455965522652820457958538332433441666587988639626524900036790890514493189637835199708420920522083299524578759530090742201037017954273685555823967269118271502325015669191858245276982639195712824485304568158479695724524000207073323422644828602038935911265009449730391819292811188768184350045476443841479307353804739908704784130281765494271888779294077161342134889466233235677377637947568935205998096862369452526707255157945005355613182946448404781802441252132912133841519825185690011235070979539226103406440748785225048702631905840989660364651444164816431849341106052370642683964746598134401090363538145883491162281074702511569360442892769118521998962126696399910191908527637019646339261568776784925991531429283144648983962741522377938185815992953081584568853714896474795591769191786786945758130492131009165860324921911197279444458639151854086785686752540228912158857618503950664971221299966910339416308287041453671186299868770179967909451184025910538606687285177008664648080256387204896411460633732822645004903416947578888515979872158562316969635588335689097927874896240280335706294386487017518336826828747984732115862101275433731874615751954826987851055657383423376238913198252749366859275849125035843323275656244296912217510326238920684032025276466416706809754441727214313368945625646398292950657742653314479713498696490766371784601613390428988901945528822983289223414707580601572694085072665094702769900041936095581496009287357512438770663265914086745827784723032604331041836875391095290543609784613403011427732012514636490938170027411904893003803069675622543757023720233103702910443707644758871036235660065857395221906231688592905260924599697480566295825790611057170243355400095398407675349557032584535245880047274383893100402141689846169741412668088630063759897857241686005723402379002919698592697692316910159862596170804859350306502531616607312749342038429593448688924275853036830746852173722276767925182600491361322887981049914752533815838696102365706046576670586308467698751818299104683200639960928809511976946558684765862446690631276491730203119087719634499025858350199317117556826769770256377883591333334504891615098966463038316664282261792297644078406105184054191902303855477666393462579841941135234272840319926078792922661159953871472999440654695905988881611576223152884330559884761412683484357388862537684019656884475409454045639464656269182281614401707843568088529995051851543055134850915876962539798505239535486355555521215273442002168811376971499983685151004006302430786393669755505495726815771259140272272808074545432803442111116258916661658736122926814119369893969720662627586410715482462615945072655875862964822411647889807184075439002688164781404226517285266815139161790783279681951760496882808833986235661741656449609021186567345993012220524284030623732649679946362432165758933469495314570943288939706559881938623265488610125979717187049631264499646081491008991001636051428217031112898228844472501292518561897034227262833656799549643465165663083064046951288161577314051122834221551887924680109518858056733633202719151412377179155816617422780370997836680605709208603173069825999529840488362292410204453446164239151995152958423367080059493207570072232316439955178850391100712904574723948970251929637128916315296544721758814631824443041884696649805372426924393527600330522097646396331748102633721449281595166957505326226213731076785124852135293377867934359031038644058597147128672641404496676609967681496782264047241173595460208104075509377260079635800481880440550716197579130218277376707988343049725857395997820342252319582507347521659455904661152287628749583792107422620407468643578430343188470305903685912131633587291356639142968797640188866668282709857903092666646124901487952384795463039374105052685961058160191234750260945158484977295021051518551682925019752031952812609123945295763810219159680223917568094819341511027639425303721880988351835823774829825203935773855854622889023382130844852802371781042395393382830660334451487948410845050739012546094147261856092178714341926344219673412361529333652042228379668096239016345766421549141704770301954663886498199412638514444360651027407183496306230231440373426391545709960396923207353991079084826098633310615471378072190993856855160004256359804288396000722197050043704177079335134086662645169667391910777664935857233749334316829847154125594185989036503117750392228528951559759941092235813057871680062620099375381702251405613335144449190884870934783638599353107213062253537516457829292550331877531452358102992517466190553988817379705954174047059868347142389408239671737352955736557565655601233622261539976161202693229516853038197288482447384676798958927439116859834882601668243962128210672590433116582649760776582094726601023232767252848921300469908887258730302652598761338332572470781781751097905092930745509789165020974614786652748012702995461568559281904250984277960286227584897725629921550155851483359942123470282436805245278574649878432787850968674821805845219171099559696281829394308042524301154332645935319039353870709783434435078696484172863766619258072093642716074339451717435504658473007687858361744835047818550007910051731578391772190960525532658557542881025348804857833361551739200333574880644815990475044014363389376573374717183304321104344574713652311926542298140520887279375136953009914610434337036174328050828689594885179623420427310847317347595163573324437103461500867816553859722424918212122833387108891710825965712432142010744349799159445662097589652652240114026589866118962980936176707311678850207324449646247754874214294020615366522515123416940463131091238996619477850315168599252817877890277867723948239690226863780192800067750426082974628410770398419150170398647701270856561403135087080909600871787920234798066273098990444281661221118218201118886587275798864452788266005094834030078823209138119901883460011738346040929860640190714997874738808980304088355643035474737606533878966395227116412004785860618282640991773587088499566799951231359354948243289987782478311170031574251495502884140839462142812595319962930440226569622392585486623504989790321589890854709862612627706181726967048240491641991161210280721631324663015400740230449940572798449151798758043789445967124709402547458158697887995049689779110757585091152635311619257127467137136874980024167080979348676984701619407264173183641446854945322204611762588041478953246535723742661590397212055973197091812446271626336816038684872216716707069660120036421569716943151138827086314432118295602930468870963046137992288745782016408540231048700906746205898693512372637526695430473664775802353285068662549081777672731066367389360738315320072609193946093078126215487324249899330184279052591603084962268343691568476115225657395775098046568706564679006013373997076763365138809828917331677356928811507162037421479666437858459799931896699311366709388886179672772104397840014302913279492241679957029799860588457156628014043819247105273206555080027290938807055911146741564100429063559075746631870278764250656701985101523870501780930904042036936004844015523577006446952132791583469066994103522120355387594268383138822548858049078570255212911555302264788210169181259712866479239086812307510836883261920779008623668895129496264646248731772018968191734202814191725288788072087098580695667741077773876990226207887898379785842241965667598434829730030726601759361150527109427355869904029604237430841062328133891045681989879781244879379985297045665187316656711985069590553931589467668258364882092590442873702490138783224651331475572244384804506428774423564553875745678766484825345906091273255737599189343078982955328174456165273924713979051919610995647140110809998451175287571376641540006810332418182047450551682370971214499783014612596404478075740383547888327450846470327563106249400527767709600641246433157292611430946820736498262329733823759420080807263218570133722705000261908622278468337640198889857108771279658236053997999920208009509618525932084129981299057323300093683163061571645299547402926675253690112104611477195605859533199931812886075592047516480161261865037277630216009588037783118843178991036888851953161832511012856831614740875450074512292801965646744115672163870910667937111920543292587381055764360355843187056866297113406138932564018789151071191796453515782243091545786391897542776701701380873182947472442477054318400588256615778025694444385436199168642158636942646633313648888821672170248255370261695269199090087541682631222652299825833013007046725997843699474768760000716542686882198805584035362412481536065547690659240786489756270427125099753077304114925458143637567114526292758560604455812247675451742992605206892073786151086890021232483880540892179821023134533451723825142994699365037651013579951106735950390716480216907817919031221963795022679145280928829671700050219698226926349100217572397269515359468156848460398649180254784110833019016716653934039108645917511043469847324797027658355906028933214780853320236339458056815787095720379534198480278349892064738495546552822702726778690745030181455143620097536187465021679430759262972152177309711667088035307876388966348067850192943870819512042421105382380998624659477956372471440315064070419942452425699953124971619140387214028461285291323124196590696533202179116040411506628224389915831669490568841149367984224700267500768686224505123326819958941646550700356991148837272089781640830065928864674810181256049194913516118442839229470146458913125853195039634968103021334863061276968717228102704158563854454111598244595888788220099230837001109382850207300075904635232979814682884064387362101335538606745681303698194325049033137018523031495430270398742089413213951186202036977054527567938791691544521721899421991411085316467691432552745971118637365145291306517015980471225143574787934327836324000672096949196067463893163925533942487969818132865789621863482507819686036075536979594523442687582428859120901830085913901804507226560025648711700677244244245587868470137596893018863225955837945288858565126997919435756224852196859403957277123394440580468785355181618681231551230049007981873702470642596953037034611160407726827372804937418243020082385589132774293198828789580152034761726610119282660445739203282010431752491654699859632733523282145487661684437980708176124396399066532353272452619410085816103148353835389751665029884620063523124057827696266382802899769095986218174393639401730048776518968957721036771921495557644859761074861050235565067120419100525448698347296350135545265254028879452534493780521381285281891567557160461965462667834379237914205024610020127662802144851780776962795998148690867911482263626461154047262303130290134966901536610219036095702331719918865467182420145651502687725065854645589561637873720558614641979276748267583600096776627896232386722514267827352457710566453556094226265991615123217934530106927646528004828462227208014546751205643262403004027961222130300120384658710911156221046097508725580159214930645586144161772971254074066081324450409055707171407088231168653887218212137011933781447960852796359699008617452576133213819184026300371890421070357924994123187163306975971319209118978672407541150099336392761580842359610849223377133230429631089731285151705035324046999917291623989934415751998699111993306538832548677030619181573981235917991058867452837994084613497412551017233913022107154879580470643857241813567345167305637569338860478696725031878949709153188695776934175205358403036536792941734514155771449295075839109309575022882962976603479040023572522353111926289503997637325641858679032100722246135958401031866151799928684767801116362366486735953179343249670356946542742556486772227963666169490000157755887720066426773099880226051992423089158888539099244289899141873574652821133368031920909112495741752353656434565579537372611533613072462507268232168129866789695044852683419608646074717425024632914268727038480052348880359563248020610341181589006711488826462440429799122155376505870635782751860616787872301237223348288323460621601862028574609542260908443177082031290323023690642548673111061616540320222072083149888129455617068558719719840793851952210487052076376887747964755567024994794738177340136859881879795881335184431666433469991021835207724815916057008017379727030791793645151273881688698004039297389835597154517676916707081206484615602497667047146293697506675096332258915232810797474812239019494697068975297937361295535296194858523244028742491234577975713415774281132135110040800442126630122155251795391588997328457481544681519338136469749904699152312908160861573509759592473707920696431294066852114421795226632149380504976959645656603028972974778599852239790552788885095816746019593167054707616101340344267140148444776278359344067839840235119711544393905220186897466830288497377535458408112844008001424527485072723328248805839700399854540986643226844341307389713941892025408301118005995965831313896259212255064950635896115664696255171852434797429201358870005285351182605173770746372853584153046711526629926122476992542539277977865662291699226616699996884358122879560433136985262291036721639947538278422614113035900600007367515513554778655507638843453588470122148415029729777860101494738351669118494350794699757812321091444628479066829401042171047882289382452557591377721804090814868151705572090944245238523193038416582493441917132814282527096587354675273187962534479313049915280114583795716692303015139431840735132017366453938851772583741038621477116564464982336298647033687537078546874237910236504489439231569939479357000991316979498722056503277250798761623235256984232351103075688125236883716693037635183119512083735788763466169565788328296740529615430577730252370904240065370689111040402763058933602056316630331321515578835524211643151984232930061491369236631587557222421034143307868933984317364314656559292249698124730474112888642667773586881586028099339796135056375529114177997348871064496776893623860109743450523480767935223390017785472943918452116062956414220459251122605604635113153603614281385260799237376118506902614538369355775196464921850144131281186201664990086854887728413849878297746709526220526307143653431314971029952780615675083081984793013931578104651991997471956364389153284377118438095707763593028556547242922221978530101675371743451635333639920681483864189102865791568541685980486778179344955553958640515238705500318968389488668632181591322764551805341902490827464310276261490199983064524559497093252607633528733188377322345175588560751689230012090280547519879168323331349369685783687120126283136093153747090254091186042553097820289075162558249425014473707420918251106443516099708060730796569555420593602826317050429240044334975988415550441999721420948716661489895681824063115116074099448889760787009643722812955114662028602723674568147805640605201038105810292003542489902678735715216049134518693093237020505788363467900262011811276465336158302498348899000644053179072113924206059202964666666534715170756478455312776789992260462501092831779264713104799141611668601752452145785663961881238773541079000556631242120977411461338571891891216155815727310421886355371679266142069883345653798669299068793530904271039535067975419644202181881013544799554062438280384937806586810407935559780270416081159326822148348285521480582178642604583847524700885380091834483991907732146554649546120110141567259643016819847286807677633533645570668241329037379713962300351659006179194205747851969864244226250074086111469966145505767811494049459771709802743920747847490373798263946359148532386296802498219361200456688774906237189314958207847437269334298509119012180343036716067017611124714000939761760402450142086547138027723673544961358472872377630806060891473026701674547007094863428013667482958089268836700729656196239504312056102849368413414580356922169896271732925698312769475483954942715573023280863839485874789738471511743166530082722858469221645053639353207252684451300195302474367776737042073400550942311224213391448651044966123742354639514042131409138425347310185931237015971660491187394385010903788233883252019194972545081381244372606054681907486569482760206045312273534537701996038448657361373866094824989763363834214719495280209734263649016185893114467849778737129540132074251458276040652103514976132413873847658039290296642065119583267657384260751409429489767596124956351713212536177415273483288140543854919115096932597911230709158791293360730711667057031077992623310631016815492703290510739052554033869016063515680523344424272452305627804743267805564861598813083664558954877192420552865336725832105713301424350576193327430534084073416195119377362190480471775785819623556283151437909097427495075437056444468921905323647147894316732655803251249228310317572180192196693958797518889218314602099067735073300008127997218615389153848457382983988558630946933088183993732353254741534556044266983039102744009533873932497845495651815364555998896883077139597711567513998906495103513460999189780399743246662128002464906891731101606183329921222859462098505267396071627490846677385234419093818016990761109942747614747378325744270075104930683201724525298910539714844679125260317375022501125764252082277359473867121083666936654223880159603553466105974398123718377643349294934026995130633631052334323101856871065610887713920710602373143944979815932731416047303017818425460579707678582390776450262000311158143198043701867010806966816092477415426437460175754102101968638003094618001972981868985425034078371454988380936239899734020904340451975370552394173663141347935785972502602350671618677778281806832183456843638890668842401638307871916770687281310381414544634961177067669003031508940035375459730810485481727245964130599814384323364516172027074506302499830579398167734178500606512171094848337257227198493551046596352963546574415465201680657795267374163281402724036782029793167840418165116888015065473609732122244005067493104467485496170643178576761963124302621108145831854837103182559638030932914424528968686429890108911619799614203791947892651896546100495776309988009051806166003999580300080996394491916390899172973381705597000653676977944798383863735970448579027292556432040809343812643596203610194839445497805201919596440263551612091627913035555095122997592076612197523042741897128879945339594257992940938876479648088928953360455294539306625105165809094225351281497625699404521552746887313066978126595042657229082696214510092767429197055948996246766764290453392315083568502656885421457476069944518119267716113042723753015681442514899149026442160744151163800324584185254260180106505382019497956320539343637394003157048296825960799602423644443351947689278936420820716878508425703430897739641232120342112132271744109911247920157477170204167424950959469121154927222080176892331858772249072125972499521749685242331716944040505133977788833974040922678673538470630014496704370401062015213388085523445090165989318345860677717867678116037022463771086835573656337321464052676735185270939874548111467671002274778885247395022804830007086495735763718151605078410785895870097719446506836187253605848495050941793623053882735460360325969729528006134383909736041709909356611008810715386831115824004045565485574585435724028665391536221477141760438846530827698066727632272494469731372264658818722826939572613901993122127824557617202639735543345110773832974571503375337215253473638298638292317262818027671688993264426042430175765516809070634336756140378893061425267247259229353245885841355431189927306649003247146370075032020969754153138917218510519311471132604913117009563027731576510084645914082083016930674192673236874714544879595692264421512708869496766772707386630249746124241480325526329247485954613805064134689298661663958808722780075216272901985553471417376391813197803735006570927264206479244166423439736409770589203648162279556705164580430242141914918387308341117845226386412070343281918838263197961331242697073212300586550915756007288609519801728070938565727459422594647346462788682277859689976432806788722110276726352295833944650929378096017821867876468758542436385745391815450786116956712003622314465314513810081919314757587130703327496597700987876961878478546532540912404994278911065585574507665151957991928739397912658191636008241697929430849674768531925002508776552851267274790445998356832387347961091705729435420971724030458965549606469253291108865067024806532125362496009511275620659840743649211312317813146402319145250091863559541447627187108567016392699134156271666744245685670749924276574037035257542885963432652685157960556347235879265345711886799689973208893175108561418701904644153699309419461008513269853994588670312511457977074288008651128416725461341819646988252827219130212663504481820413380654282922776009053982694412413876507205407519471365373437902673133087715920158327140987213406994567237826723320605542735138415114086256847173225095435217070947621293809362853466259117981876573318676159218719610015817659653738376719483013247870863826410230109418510518194160382509720634090869243490115551624769024305368833264010816165056383504597682500730449396603405728167687240423063378643734572854458636271901608775523127467937247391333222496992629153627363401093055108517353821517268721763407680927312536095709222904528550834764514872554479532692607088427150364309910842477606345221071293079571261618914506955809579275134446443965898830587746801513304131508127593973332738116204347812950189898788505495840564036390066530822688808066063277589264436662143442309915241686726176609031377813999284127450715576968709319674710248126046675150222120381636512927390012034820494495390146970060484485801144579347824491188522934650131959863595160379223073853578546296793521353786978703437979463921661321033815925949900857571726315193419353905502675463557867322128146161979567917638890607911306043250528965080382555436009872987095417952558518044583180854731130445409670213055592356713675544019864091496132949630696099448268254007542168850301118619103883423350497187870103105121353739941342479682657390192241894109538465185091338679329734852303397985998871871019996395640148666804456530904449082389637103533386445035003729933403065726579765487442310808134526440900171097216678139211552558370947441279785485016811673240645282846816121149802588802711955608160405520904439477909497897497907960356543183290577747657036517273931561302542770213391090203151075845587478242419960357628166574792889990300429373201534988140979318918615323762147716784822888616108692677751723327006639647757903006819258729197537276954196119276983729741758136286260496493382415523188700209631148439096978100155846603484402377892073264417497225329517715630933367027414615596517025672344498319676898633502020084478886252715148370528718139756928708362279242153342678255366770432991293996646369228093678915196292656345383766834859608321509571032319582019747266917368472136594751055783337478234583910874660100125881740599176276809128981830182155766126551296095929673129438561062292795481669103961822162851219258731563169871802244964771335292546386008453761825274053580391673888663494525386465033573259921451205954072515169773159047416382620734261187400312447963258233439831055926793184470747497769394110824703959963938377137385518332451969853556419887597043231954163025218347980871942367702755212432569096095432962054248708078090700630626450619795117452858774914796457227914339308001593418666065052913429565814842292065575129369864421250204972135739811999337495438428159043711142198033560495843936278254231795968166606082112033746692956314901091151277247666392775776867824582561620089791173748268785813081943299138672062681279868810200876983558044106711408559871980917173390390216139814556456882626400411155903946938842537543427529630601513857594844844621383167770550226302273848661303263698955102619647668390830514716118835649192841720248659984085676235459529624355132012009827486800763423622548707193057175027642421393172920409086947405077847244407675522592592646453913959268785477695917165813587798721615038234067746973191236572772490170734064998656041738617023684723681309519321598106334812940022445371220144929095088759099849012376268571991608045094852151168278323485243245344090372173262866352206549165452392839360366872346850410099075300623621305920783657027399694073966419471777940986579336577475741223559368718607581946521400692862651469323138601174804616775239642775557005332747670911135093538376389391708052820527308118588057399285417220247827047982051804185754305917092206454907559216736567909516308780970053593762626786063819946965608483338252943770310333950834380791807127464150592486933061353151960186776430042891025705001746417789655255751163565651198714078272944085946390287557100061506426432301432186574108367091983718307590855416792575452147431417183502281401264659072616805517115250824681212188953105248194509407868559815735157836231368997062253337810117527805772121740441618385220081866791545002257932375104367824254756166716109252714484879130166665054535511404435438997840618451533031449607691765706713620073541566624600418212930719979736118142438616024705278347929610749853022563287690328921101362089136268249773706800349017920252896769792315504829297355024058372424905117838240350292456783230800973068356601372629522899768943433477904511104518221573075732960162524147784463549799738199934411910198543762444190840548232519676768587150483769029323358780415682282339125631290118912558493733955260614251912613013958608147621974838850697461680560473703685737835108596289766829463359745169321138631728887868062884812313089742171876136638413013082443920302344111109064734176211278981576793308148251590282241602216232013696063429832734559823446921439439979199702523525699533107668939149621415321176357445508214717485837290786885740873910356827554489680408289945610679872300560338901899798344876208140959411600018437747288370880006782849086764320896568104648255006342149397291097815073942706057828175349843342376233363728733017891340321978966872680665576021374091876536384035002208909414765410277424542342512068546877934975174727010413705157905598756239061947819290737207126944896838727374062018918250826929286330054531329546564509158477464821674023907342674013616512693347095096371656119050631069756900053441827369374452605225332342581400755198698923798191725835669853212691509541973358029208214122397964345804037790538967895312569088603008216230406012456563376877341037236193124573922455166717159992322551832091965730350155281257267100491472414906287857515394611231929138657150358531858822933007231304879831658940624269612748532037492620400881652021808688522951359020956401208090471694110215726822594885440183585357995185396409159052279122100364827894352980239199772782433475656585082799931366153642422709277293354397023277384623943883868359890401191255253976354421691895574088665249642469686602234997127755739621824935429705712912242463871128954727748138393755351283923420805067103340572280458689805710736636970621017973771357817156635761882443526286602735911854884753767328253928729452795113792488156965279001958223119523764579227763896715320543146193363641319292310725813870003578880755462053608298594745754154177343874782136140728905327098404666417088546631670328843290633776952645870162527000416682685817653278246151524961715863733693126576303866594424830115419626455135155450446918881153481687693564204392873998321678970353645669679375891119548556315875948790411280342976369667950338211413474019733872464108481562486034449147935083371575000606993109270622880259474420959769773972670816768223777804322012494940315089354772882260387340585021987475516428871041788196373977599418533219829278695791499727591782188328627476358367366056390783100239039265052230915631882868500113508365613663726211647780956997601426561346883928856176992108763829755152977575931202247856923532319610335788487557419551888750267601562431705404182938493511765053133314828755731564807649057183514553336627602838261884888432567458379586170954753352534336181157497543556539523631028785163000206058556598987584261281944219523893610721396332289122336113162343088075359154429174789193491778876885107067861853143835390198120466028529572015766625076492477378637163193426485522271671922333883332646628249327689181416551330632728783171003259616359470389634137399263063092810464098778330632738729374162537327544300331562317210793053872015864680391944461660855587504377185771719248247664882635032903112194787667174211318211774864498052955796867979934762880263151092075511696083914804120810987413147877015935503990936261961880958887924884641001890368418289639177245490132767375412867115028778522906685214988337973307228920952917053167726928946356410406387372872132114210227031156966742690509039786384631006407583398204387363927320984507878066229224641542810817435670536344109508081760149903494532218275315778927950573825877256050145052751485424389778486522142886885882997450922014032291821694874520523844590435241116103333267282121533323167685050728145160075734074191638548177044749377086187086602275787219106035559955099680757900174773055641305333757420234651117179161342360018818615363892887229064721210580377391199171437139347295362010256983420985605813823118878405950444198296314489124681713577387493829645030156650272525369754483208767479356019740076763551945107025254858880344706273913781990219336756381731951059295034904358307209913848058266985493845026152489711482584080860687625403131017463806424640567572461753300795980214075312852192284096758224769982887523499722714534689022622068792459414761363010949651918753669489574375374629513002842466330830422323872000273230657464418036646626031776177030859149324918200265336169366412493745327804650449715534888968903405560019727401201324483726581789292593936984526041596152849822051190541265253196485171912900994115652497893066303512756154413065682528613324955159298828511622780150616725438779719550506254221752708393988983971572196122796178536624752359453076607855579467703273393742680776665061800459739009545342596657624920714028888907285504610799352051176942680385875515302058473872032038692197385650086249977645466133381383319012677490702393829944727928011602935118476209866227483803694127822971077924568858928486450722960963755949191144820913170241694683973286021274836300641545345234429827991995360381255595196513988580099697230190792078946007750854293826048951456877879939143854592589114958234869116326341567888055652860900605982171222101572145671214284950663553872047868884962763332059679838710884584253297761324224503893976584205131720612649513295979463839785348523720734555787549792276471705757780099801758515522966651561720978011679182984526155666259861972686712802805876155807700311852757576490581560895578283544697259507981682882138347321324308436609685870592433532417331646283467869521458415228827492363812923381414916574361889623049792211624796134121867478834022377381448337400640443391846060598256142105150382291379332710008834373160741930407072921671564382162953414867436873115741246775483811225603749107570928511002572957347165465103386556049564537083881024347986870494906816035351781184829570102642484415784401986316275419751810417570237400133874635662571560892774077016334468234516374838348323631443452530924953331848234913980478541267090596806388133105469204801939215687836108979635102485984983601419667878951128697434147648864461767388619301659999547636931724660500171315157934617113156732062691364700601576345625495411755202076178705823036992361470690598440372694641258580774194719892897360773843896304062030812032799322897139263585480722618360979424675824744038136478084650614222228502522132678235535504419020989021491635657529382957904683078416077862107149648969588362188483504818385804953501588582631282435046277737398540383320970962779935997624906403215571746852329078859637553187515258474577413585682045053895204743206850808646201835532080106823139806501487864180492437720284323847063068275960415856645082393869068485019290976115002033242672816471402213730181944721971658609121825614028502614214950720059833770099407079561002422976519090142915635364812974180881124652161979432998304734099924740256541872398339870075177483927050904905642307498551670492075992003382360474031535150507859644213862944511200109497787492856521676263993046341703428142591924170697630982970185582990669856894880558588509292946768228899323267198648060112247293807835763333255586287273606212353901284075404691934064730768345886103357163342721404466686827966358575885435820441370061543507291511440211989930431414230550385877395297549351977807643881942682260827817933031600585413053043770245312520187134563171660330964253975698254502419423155138248031898478559779343363204969261394119612892528056783440992177077495542448401594838314798580344154931949821309997326919335495190391956766403211805871259520621639603103446739289612958840763851707583196987911943666988315962308183142817509798170836958208237847389988624577351141058488457889187107684879457607525949991735950603478114098630046536152402640742416484421003183219683284001821202742576478646584275307153524925374620466228082709961411900645462009602785235496292228334830308069015102903878081937446705364879268899422053080897228669299000819556409390399098342545569250353552537845219682871657201988655265696221696719579366836380080093102059772482576574891367255089922362279527441999222954289273844673909592197150506233524773639533743221433710773934953844957722876942624848465043444502301223411011299524894623367568837764814761111565897131188984092699427851149144624965175118041472979233706139211887351666878446568569841507610060870005370707253077391977200996879459847591155426487764909621069660541179512459884450906858212644045137113397130938513235985553690918701186025272934803854621865926727552280352533240509583924221848389465329004057576342606503723478316526905624856282892288845397964895038660151519417425301053956832077762024062821821541432417324570246313123067498232790375365414927731621530313039474080730661124615560364773756185635999428183575608068040043013403573458893267790211937354783579686655958034067385611177981522228573229653423529033452640797214001456225573875956920272087937204652974871210553695552632279924928805174284572398241388874084787415336859359243113509327562156144756018589722935405188346211107087512241734440278489067209120365931309374248764632256461693215344545928725974429316247200648430513799304397987022395426847489181296729031153465165637047564516732200298608417785465148303347940490482450199480243481476663215442652661010962639097954550503093107405764616648356018202587479941105079158102376966377192800316620315286943888935516686490486633917668924006618051248644688141759056005206962703814612435818823667761100735150160933387237356258803812166880687351243403826028993749102442553571025121584438910585945860791171696492471197779961719680232175980648206669624742795377995756652010438253731256507231441515386732770743580394913770063066854992484188276115262014420320246621046838408466371947734864900640971921906661072915487762006642665692373142166117524493420920071323054198093732408801020921950474814250403249873124408952417027658172715980937978543240267872977125243999094023211897863525550560414457651587775005847500013836843247889791394794282421081297459243150530707014737148438099001604149176383116262864494440746299476830665891294061705366562582838396273831108103581203048146377151289484794459471672811837245863382071895152935991151433115125682127246954143756540596685929456663710700960347357453270037664696925824830429450286243862099374645510188352726618582876133742096008537125728139856898907375593106187772366337162330270632138398825309163901894777117760605673682148189682589932595938418603141019575882348002375456573942626045712265387207178050068810574881922063149834548386847926129945395549466763997316741998069176793650596851760312784886857559124292819146655173120949890957446397530619412341532668069379541107446530266842204867375970282107119167106542858206064075017524360180578452982535138017154361904946796815769265530320555473239576372094653423603286822255814734837430385821245406224042807844921402529030234270375022787110643446040606042502325052964996212968939645240841993861721567105147973233233291616371200679418166368151663688926432651815163376668296360113145400051902296975468188756722927792392629593044211222973597472048204340613299466507511579427113794296274349947056376608944359118725184111871950171508682091185176541258024222376801990511642936100951330833124609064259931859466325888189445768952748503357548961471631829096189370186673150249953336404619787433783456118453839487909662036681563735538868507224293707737494115068532528116777450868897022534006300227404518244212567922309086436472573761527023583468563948442800715635827601328698109482349792605763871114274528518511983009158922687989604761282624740049473872529811006138463668743612514449491579783082158036507438041026594994393435392159479295538302703270868973415197401691148085809255784258923891377251925601358889012433217669532763239263345382216897248408463548166592913524293139014863810983080442636165654955481384353220100713583009178787617406487656714227307494335870000866905819301068212484985912776612398088665887182612398826054122307976471343131951550192055857137395297306086605545709525764638180446557126276892171901711359047156701736954065019196489997620985363260971542336180126241111840448821195288718321115733580104754437293369118660378903620367677332038188599187673777914968107109993163067014921133136972931273031323843300571154523437540162301065089936095175385135787928188238200766582639561118355939060190964626390921530513208200227341267292698880465093901487928224339455204089147387270448275357604900562736668543919320852525185682503753303376813507573949526014142005518979801433692366955689970288713729236620586111124721502564365853999432941271802410176115302485596000766249158993129783657438800824979515481541147641836744348494034029194146151980788669761595406094949713326723690090001610026205027455533994211300792639792823396409327650202860380180667668706830207905137817565142946533904484681991876267002709993389206223455964268549318061561941036907806872936356715912051739033888537434925397101166000856592370652460460162620160331962605723924537561842023928791349463447495872479265698883148551689414410816219816837943475885074888803828107218195507080063922866724971825405244352876334378866366523563313394913895168816881462957246109196218022891910169329307185208905148682559419654436836834327053905368340092665250431863401562616406009674786117721575272281628335369276922571530912005302915923052415161070019836613392745213525189216765773074867547494571659129650137722141723859633485377629242601936765188032783272681708490489187162591965002805348486141411539592736092032455795774577729098910929176409058903246460487913073111612682372244586702452470007162672898307842283881764662539075551399184003863840481375554538097692788369290874522804035296276610288736776318969333375051864010211247706067785248651040982665512500981137733768977425685702790175499546611657614756861119889741145686591330340566013016864369579159189516892063436263189738750876678037433992340932140002994402008161090014907462351269551037366885037809632296379429340563340478989099463009856169370391355013304094208555974540063632330675793892531069830620273362128796251325190043200440416377856008828752303534323890900356303183030139877332616257634203677264060722456509116655067329021301596388473259344123757892763691474667134001719007008400058738660311286072301788572950890704477131402241934132350269715644935189917189416690482762747907908077157092097697690864609138572281387462603928603196657456644352230473700587635220963429729394938614486869816711701007789545946310014808898695567776067444667372030449044780137893408431081182285099129073766878788708180996723218955334595946135158622433227626742320310466792566152979457286776070078868283209136727476559669802229062837989941991364125212593255279996065142878593125847673027589965589131836654166896956352446137261513282501880102203588267792741733403996124510194298276644502652523845932353835687471669314848080474242096428028064471081189678165987612750597429721404846574608125889424160364160749210009403299480633646998894156296642757626442799534676028314956840083252329800927948226648471782631416613071940721942191716872624588252312196339982372833967880278254497039655946544762381159105408938317208931984305378048776177730497868882186727180633647422005399812174988645795614109201326995606619993561959043830888664997183489606663338169813949834276896958307694063424153345906804582786828907192856994767251183197531235634991977292043630734046811642951648290164403039632618014862001400310054598206267214814620228664990493371837161341774887356097564006993722415321180596767248803960399679068075448532796620548406096396871570520206975590943742681008220681249767583978318165316736875951685384298243051226924762656413837734967989761194509713750622657533190412431246118949950276344814218992706613114095096393023142269392384262593171536737029261658230722891870501096928568262653847026823016901320115644156702132391995636785364226769862975511184253688299546447919075265716964831624853811327618867141414709077000643182249912128503534704120634054664610373868220509071551858222739499945126746986341470550610946950321053711846101493986589958452131637128114143273931459606728252939052041761993944158143780362647813874593190810526904826880076624430617938849509074456310124332429224452515717209088027705969864179192382053292600821656919312704295227634854222878938247148912843191884610073435323202036483891544067777708826517443844897966302583249577060914607066862511456532191313019083614214638560609789321215676301872072167678779690275157906316325173256431913218422841806256035837068459243355058586283023584165058044709168973336476128235318027753809526430797360403607086667785554830039540598340741966041996639458199232994347164970592216388643087630354898056701374052873586001543312201843749145530656552401771180019411138382564716854272762515716247031770001500215842153222406951392826353792407781482991374544201547190532637580010915444575049168494953922872575846686255451457654592820553759665261945988327082628096652427306052018972365454901869596492227227740471916300377135124885749208609600661089419992338016742791089127949753158118108025697173200482805038282408887347278341363606151092678848198419449981394745242525293833978791395585190571914679243049108369475171766952318091052802293338597445940662681051187032830635738220265238121941274448708413980306233225168948371213511794601316098193951617521159260604018299977941507462031685294205818712112031180581554470336552862777651302285908267019928003777796510073936958191757106889013034877735499010020969582852248459600278784520936266613603686838857798698620262907586433244250798724618998918674031001546450237877566932911685414052097011013294963646988126957493027211054739112485472098448685218345762972434680134741961777983858203915930512124558682612682284125605998675678417323424381771761078354864331600575817958950982354935162841008352879640012658148297574765545616790772748355723911636857066965316445437048594729660839050395310936569849228960209019646636816339735730305022375856938745353130293930736596496289738160056189030191263130373056555934934072837038743314017878486045868826339029920146592737085333035134553386145499215307094049453179195522451214097489562949779804904130110859332322763458611480873210906585728292747113882753227589820028107217395839725502956742032956149172334608593988021873204682965573873894147082245190102114001790663478080331719822261419291210829594849474038418732436760621559671766466291125563403085157212734035453049142269243198560343366747122148594283465446457633322613111125127138424978974204031588801723353677817376316455669396605981873505185187183333002299880694172684216936944414634919254645380361989227862581247229948019427681591904115326804276957574567806837598008858913607949189493444829796539537921600937888155207746346196309423502954434372047001569405299129055032394571835991761483823102532799259306318840250367453700663841037834470903192582658718022699715680096215787897138409597905027916500212410534557732560835545256705149536675952477898802163888730284416977739530927805082366399730818175109697927904703538105677230625881419333352326673145179840496697101725444075992521529347534082951431620222847721167036946832618225691476789262850739898210002185169107371489414486014530508345658821429770959873187753767894023749309769466121414743178490340408883366410359146245242871330875647489210957385752221179675134913267331857644750991267753915162486439147360055979360629553490192822161977832282647250694085366712639788530843486412555252974681758446822694017210707051033212181211507851941444965271060669752332548477684203845861142892610219873712659707457840417094647288522652340927764462711098884938421814510863428283392203734138587472443121690112983720035639659485449791440231504767544760871005012832305632025800833283866023548002647944764850937092537412304375063772922837585341617459713813801169162931546953259766366034360064459196328805541181799755493176884155113601653289874452579124403430030705896020826615622909111891736254090348611690934756790413117599511198771756352520673563257705017687760243024553153625138129970220073309383319847119389797450460201254683326881533917129823489434982035330012935862686338793365808340502237764648518161510857328497222227791130902999384960053634997596749017373347338776967645043762273863272503287259753177445937185488567163203815956453390095366940311868591160990003522633778972054611806723423791237304565238300528776815225561112171874883056125600439403030982341112645552968775190990417956913892200827418707857922641159326058775937074799837099523234623685650846078697628640667456634189223021797029371868803043245962611914424799599315830663095201137329064982953151655722886045811679267565737072393292059871719530695038403428988207658397466977560533014478223925654096698867997201511875739449334650093657909791574432497597374948582188580913707320191671012935888263105071051324391428854330850494978893000082618588330705125040121221320002142908804713129385303330318364147000472993862060582261266461747014760236839363010340565543993602565873818430613870962713556541831377836328086495827804503966636575376031818366321369287407527011241576614853102302904290528654978662419584891761932813696512242457652566884065750222883177084668599905800846688964637811875522155000358107012276415172887894569111764685545494165865202374968521540328589790731077766499832845579442166973566269301971937635419783175953122625167619246577032768764888576852612329596433104667266861037939013046633566065815153999484192456861955274808743803095848607809449553190585736404467934256001869168328295803534094074680351202743654119332775687784935357938660749156894462158262505071933625841337443751137675300410038264915777962442638417595184419259494380413535269525553855461057861718176789860094083759375833874962663831584326101596648282849858695074425303158016779824136909880648947924240521868558882640933192016946034831189399853666530379746192149917198663205429571672355525707809692479145661018422430218411603886176966508705380009646152995975102986470083478472611722394791260458629078876962142184698756926287786475379303327299914188152843903637068409220528373574712619881354723587705065843626648435182334230886903374547613918144020424552791415053366937810376355458618401767054716986188387232513303870888233510932204963170472404623434425468553951169369178918705666385682003170637571066714896366138649912540678601691657931151416405419756475989678464816442079292134078321066570003496945918684051434725239249070837945210440293224304058485367142566653432612381862695708857481202638598841340179135527194233948887612432570826796071577308450530232554932934599015987350344468268312172224199807937954577925702262314608806864752528561178246741137926840027203119895768592222999930060241013616508205341768053201443421122523426958303996162283642485570054656242689413328089004938235884122831803518470031187888056393023343158939619418145685389518550367887429558595652618240809632552911131160020520055392841455059916589152776234590275001470111313602536330312479969553498829097183213327414963045461142778547623481623556015906552881167280388232727370719747093657018997055776502081608388124575169068261220248342358265663278663759905554395022840170706699815219292900867406323681324356985211140365566443394784874943459233709579943264315222042000513069535178200512026083275116519733533812748467050376670517458377275099345913844126191629461564290683572246863860409636268504934598311428679504132838136177073837170424019660663381894023427308238575920981049569628329781756306916193565884433579336641340812766223754652930635828936247499235596289180869384499258487526158274796181414705050065965347069068364107839152677083184878787451536940593884372864697080883341993932995097369325877356089255853639407839766610951375652918783367627656421666755702631798201919650213603844035663216219324734770917164636930671098550637655056429675818344283652704648841006330781984016579527524317104049326254986229056766213074616252194002985193320445896228050819822187040969073110100007892734204431893412276496774203788334223190798160069795693493852364213504581652591469731013552209862028507823154520850195334198142496858711769444138203522695522340819310444791563417243545949755667674719986739249163614259634537000245901627664050970497331979674120841914062983614259009063354985792996376223064224895785870357749788434475297697430754818904112290270101162451943569873477055060202803471926193466847322323107996650247874721381646018895887954143024486457007224917771994264713394061139254024284518463517257562521556793627631820276175171800005054136373022457322752854816530327212547090516886428524332888869495495138272040545571273157810426843805706013729113341511199171175186474172188898765652741948117422985918079160300265173158072021155029977906289913823649326036728278484535749265577384304699090874693914819727124246180835312393240631131253352671996096443987636637087697359127000288437169782104546810397588948194255854436701702984645362080480807253136776819473330337127443742413416455262706695348419125761150248810994846225880957738973848568242989700615441913317961015547698095212965987374177063241838257078816564894755748394815391800162478839669696145190249521207100542857183381477435016227140711987990815572759622529768158321300835420721882802795658673191550413552631369085639902851772606852233336614944098580507058197291975009752114194628354068804465334616538782691494708646258583602137179871009505040089324968725725605891680090330123592427882671178321169698355063491698339261201931346211855226064405502961612980735186918149173932211298599857560847826238644185814425417319245155256782087472633834610766161838402398779988498391803729574745669261781407235334382036845895019580107298019502602134492894853689095202104448423218905314542243684536584280691920308080434426658045645503578613628138958246383856878306654826962915235802285220135302357055034200644499753569359319762519377322464074850461472280910366912672732339607969409443062458453260978572504763307603290454910506793790328217022094380992427637353088418896418100381864381231648795747607735377850555631113389417871200658203877310081476571905164132904678246733779989075732937611478856318666251176522856749595353623740875508878450852571850952014969424893513424418630231989788558789280498286342338748396206131696070605275168597971712898284195757683959757019773882665791060653652582831545241289019854901527194243805065395294561547530808211810450481238084190385926043447151299280069286955477746619491449110352109767191280788329976873730597390601068610516778340371860924356273425678775136201351066885309991633754198613056351553118533042354794091987033425766672689105496958476103921179264396174502279087768749681147952904789396392958518493246419659788588536243835840886195057702442399796186416445618000781968475743856699014706053303704226091180823575178686036840999525732306435403592578948570403470477629065523516701750555706595467251874794283251579171611049767917794911972816099357637275831378816390710416945465678366449386635839317250350944982028321877562725774727695883013463014483109504217456487655572225357002612950785402414528026744284239217327176607474987024873958193734192165549969527642617212608503399567094647305591340251838057828082091325342969136704812783836496345493693797090020944269310224325832554571362491119258950065985050512126451144057064703078813287033653454432767036157244196920515478632946626690581679548154128020977891257688097026778473458564234711882322815623274162326008954497333665503317195205711740478467959300005915350686945199697723485652106717394169136574556760574090489603516805129096101640551907637782865699982387305811315235751706484432475361131886799865605137239979067697649575535595517390642427349930913171053548076145941541663325711538558086005647375727874309131021016714648191335562869981874198338720759441641348063498350841999231695284661083156939950575894349015535029190998859417558190785037859394396214417837237141749165751098154784980330404859875886865366592039822197486800110424514309480945557740821185856652987347396336175536414536914296174545645669519530085058827816844918129286609110548005319913038320480035254721353195345947346833581406760272354761413461753102694262015424772256734745243693172366482437292969329753130666482654356342481299305240431719565322780526730877850198216733148902534083093159183973727634922406802310905726278599662989091412468662631689193453425918118095136333517118152131144979191570992273515332719548768833526151635813837991515745104523281939053398595396970485806052013649857791043911510471325128374226896037731191821348187123715937232269527851672419369519799874915425893294300183304069631489477448300320785805083737430696672518186443033216649923079385495423243560832491544879635476442409471421376133457623339001445173969732064628631833338291176420793879988756871972325677847462658700638695062538490261829008406480881749469132363845756719293120876493430724668153069976186358958016863759117220278953855552357276801559992682054166111103302513490145844929640122170653898842083724495311742076090867694932228351830445160419721295932503820661508769566376961294043386981837981728631103332399013559940436041264903024983499504361282161012159875741491939066636307373360995819928279994379956848163165882620988613728797122631884094485002022767320796020363786615356845898298937635886428358616770051795403121890776015504348944266959367217695804254610151753701796512912795518902406299555192676249847837343383761881985251618550124058428666725005006701851410559349177942748009897641793940085297943924915075495887811726288137506430699474281142603943748034374301680249813692500059502892497053150374590549754306056382397920508135491675893415166980826767478510868881493400662099412952937834790798744238545334596310531540521852385749553006115679000083931996904577282400859050327906993768381823096545872709066339000083729696078632216207899806514177947959280014558626393769572437055935191190308520358958991693394871057490506598786528818614292590827847129071790762697632048174355543567388514463368931635576964863640456464093611214353056490321031694983231092125803602686100020534218912187733229676937214236918235592419560268882457036722468415333070221069943216595752979459487343612717729390296759167325429986110075760810926250355202363792667708621043851722906028876977835423792643428516303365616961792345603347686941770112353017914020155753382919959075676887451912822602963152296124159040172832089257272849447113597680686259767980423042512693852842879222341053862910474308514591917585973819651675426806203303907992060809580085671395103700034919884653610423457854059076794216862793671644813116622434375960441869708211019606251249638000533192023094855904687422957558680447335020799873712827556563276582263280233559308095813660000313229034518897422652990486747943693953633476090776764801690226803164158196029950146228057248792330186144257645305824197983567586217007919849724547767462200541947134066181490617497734897468625979365819044466783032543174823253678134987918784980485462369801021930969608821286150227596160407942338954250954679751401624536408059346796322991187137178591191224060508219705572237590605051452915930944724689059861893490631356377351207001736409946186125416858033034497534020022944853316407672541357698279445655272645819314240100303526095980876784071911140128972582045983900643597686910315866904740616617559331896137529650554329929827019272012331637899596090679982726267198541697222071427618164798080896316994505381246969505459754582389962508498859682410504123718708455379850977094177006565068373173086129489900894442220278194776702318817363153983898884911973980814611442890715093420840476504828844204254113787986977531438938987130493042334874453893471194503154572570021523495259956412452576548338981221207133677810085956561878733893792844883379264956526695107089914022011658270516533585213971568805653039618854656105401933992112721836546676338158314273347384212604319627717405264350954421600257509736653462083564145257469229931789804792424381892828283425599756357530179471781224369743283579888529191979705490873894528776199197266258417222158189430184921131564917249717269025834460014748503399485049921412450349953594170889042009909809894657942628451643157913900913868403239414160453439585090953784478375017673722423834902637747304929436685874854726557808331597747442664505020589885310622973716035672626977358673881496364338152210766048663748571224642047061127638132529810316512965624576031825233704763000720169870867331343139125735461996407425076502916609516218073166822093720225473294205454468814904634956575224914760323945425695791225477235670456226904152752706273186255037421610004868908056583174439312038622008009895355954001453779817260491847567390206504769055087778429199681232976842575655702866232246385042515222394283309422692210916336945757270431464552245204955297684313569028396807357793850915146355410473092608668805280579953194694604024751271925215835549523865433654695171532437267170274354203744334663949234002260680859129214409193731109538318932645510426898845894230417070943618031984559818739623065602101923381631988447182418063799791991729540367446759437628360336859284929369680599644853102168812689637836521796422294054762497490348036556215474187516470748558068540568584051047586323887768594218537100199369840087343786266370404850632332121992941154461985463414860179818203822872210516789960136993300354274255418586565337674803287066472734942592553119542828495840387015037428448743188720726176300319692939533967304668575520968429870005964851383296930776943160724422340764782287496195777517822777076725767813499684038819135111300399680362481792532535190433642317791119673877847328184069527212346797402148088267636730235973531875329400671676544131330852471332374607005438572210951096370423319144741490953209001224490726591484953408182794479444949372188674979852995413925164531084287852499561407375206606590962191875631546307923841994402371798347913099398375719324244897229811843076572198718946258395077208623682408707252964150457258484057101907395399832109783700454581967762590206337690109886313478327947476080333365830630786115719074337602595354237905242416145703036521649813464654811730699140716372332856889108591154236382044154951460221096526608360526671158581164482927319979339415557577494567376036817645871055497153580682872565009996260800211611059393269619098664289561941359974059399522139850273563389383780270680938955654555342854558101227251094879005662435574374117795688714930075574144728653692811960215479698289853077621920146541323274721673073405222334287843968225724381528486061476446065742366634799726766499503230981243399096583751156485636388555312146389266098963797998242726243000938431139254528908511002620790638424320550203398358791750839861886903435393706626683874646637757657730965464333659158459347600931633890369787910888590071605415825081363475134973430774108846411991337566108345143219554555781568985402325942296973267181497625517123930612956281932304413378618373205637320512293859360850310815510574755280198780342125951934502298354587367271282195982277055850866837606719012607286074401267190146143224005601468950206147721247971635128041022966808723770167877840554988992790265259168621940961441423930224448363549634783590876856217354618306036746333334152540202581764155212065837476291129268440492782764596696386740149969515365067914854486563380385007798488798433566874051354301795514564718136472194487685487198785897233701299690301233529262010556558342488607714208229116156721827951511435741699607810953959179984021489606697256053067938785319958666062393303163733547772978538801043834795655901172083356823027564683072986205960899353259307013019722505642876269786136442347881829687269547239260521970857955286750535945523753192353434020294576863280182783946136871324338626183027657712191417870352368585376401124444815005540866462794600398958871738277836527115690117731830312880353746286056992065715173085588260458059387487960463395695941243840677514934261872854657778899703669087708051645747811153885576223985060052829270361434112866099936675818412382260927173324648722838193446364538299648254362804066472465761216563909864699721816912252581946240300301672770758603203518673886350351189895756159818777784992332634660212414392858385724589822772067632685855861835418822744771487881019280674011127271738806712508561431099500316061632610120379219818661553444595384476149834795886375782555697502964126265798763654962692599828673443655431826219021410653106179206203475643202638140746362957445151476383596314200890881367427082267404698687981928908687636407141515759141068053518669381484122763543697470644359777493268864133722206110036516840297126382013739882378572434102534762855345411694253576664738309539880213794691422769208050448368241662977068058679746416246325295822492858866411671415811840085016700804645888079675455052315060342014757528213788600852727920031987715966742450222228136741766587625954545125858409872676942114034275472853715039595377816975651703415302565781905949521771670440756817683821353259257858832211030169380782869016163326120599150172270872088952571142136466373232944448735796098101537444496694778156134391521296930659678431437063751813840132505879719482541816209282524371313756508147101392435253631261884406809634976780510971898752598971029706703992570972972248367184837838316235653702620821056136629973736589458570322475482366443056867897438393539089965075646117776522232673156678873868640717144643912310781702572889430993190728435215304059848468014893798498843513355292512831513299002599087915493820951064442553765877781974717911280385551599584825468060086659112027596386100872732874652844821595449619956649564605070452161262405639045427613489722306708210299259101818355812236911633806142340289698751755066251281671003492201877819520664421356070296111073112965593025221151338658686252800229297061930456220557444934950785062497925237344307799359250800827603807132152591779719029398459985595238510016379632879660039318133101560829464297572758523784795353227138506125406272187931226745169793139204819522190854716208785046899882876613864680517786328188830400709222305645550047276174197627438013801583150375289058941336303895111399885569995796952978421014393166488097406738292443253623748397113163777363539924773918652114121227852757482812634344571944947233039096401403156454402969182125605066929329478571680537583004121115948799068779115925996509838632516973165081737245587364430241936242067383986043912560130399571960778764334979672287949077795593168504455698684530196374413616717171238965402291459028265173799379571070980113188755809785644330612065113081823708733362025926012787540119755589293789840397144198704612931603943080168811210997588780221400309617626711447201553881426129358412161383888948734812087730566805906357145453866725407542583042328150391690238309202270192319263132778128540510998759506507008472468929676176251336909492428270720850209315651789268981153379156762599512919949904512223137751907509665756965076645535926647123631377577855163089163329100722193268979251341220973234595218825939227489445798687803807142714351124331195762238733034657566825761680953228143240526161109347072308161587047491732287766890596783821757256042590272698071791556464884617548153592131010279632758707811668588760362258173057494692499527021850369222422627978259775220034497820976279227288408981370990155742426787879813174043966515537584423252902967368854453678720480862478170566994971113542455555242433507446978419966182010396045524467975668747224314938845113864359474191376471350370007186886982135150155106917072016702601185567287401125231610479172989535160365998291127376515871272832988620921100427330683948193192770134014383398115799908837100026667327867876507717299842742454167532190522623288470255919249874054799860236244566730610817941439225216467621465723172962755790459730701421052930323532927576832515947051961259082427655375696311488063379175083930684645243359806982058825111837828386816689645536709635722684781824238024363790833756059313410239358073399187493646317894114606124457575282977351866837431749985156050038725055843391674155082713559629584161389147871076466452706770313625118984507045596016665432472806470362002193101961760207988766268414994968022718630269754747324897197002491738285400463981752029786583831964202884181959026570430855044968084679082386997678815815124789676199565913505659591085384926523141607949914622484909093542014553350470112642982563054516016693984229329228469907576546683661571184182913405257138766522363594689268754019348789908781847617944740696742581619643250893145558996988861737078882055644608600810648436100280978639799623059755546548842525808000234476672996455573926887451693811721585081837203610080513091629925253024521120087531132252676269702359424498458842756924678251331580054650776430776056616671272236381725127024849353334975851001046770727652194099227856994073369959830109254616766861447942901875958404740095768970755090248145774585196870909052289339963337660257070441917431247610799645657971588580957764102495359599391117347855029098357022960662458197427311059439463076909934961484791284973469133609435752521240805576190643158303234453620692464104896376171208349955432957902063075721763874253480924374573950937042615048522664492438998109452037536771689193119863571963368048229716883562187671405719699318299722621077686950941786681960954189066769979002269033071908737489954977362266234003712061892889738619020067614395611405152053619361999129876933024812074312473424642074877312103103466152137237741001522043697448695763309973348514345418627765737751585918783913871847101709018625867123845889618918569048813332711463823768062240095511801743032239930466477584564292892470259346866490050023299050610569324052075382915506992137469239675562738170626288000255603948001125516150114162110219516464763239954175470241825847512059808365009843197540830614074302154162154886693309514050342630991905691934809230861660528581203206906252554800686581073602749636209753959084453193719953082177817996369441772927846434363257174677207638324525741315395802540821558435700792313578428373887669363181252630025859240783028447234562997367120622922323421118971456431110351089067084319676159245453629055556043697460891378215934426957210139524615938712549759580341004151658930080355089512540684227235882280141549120435194408038013768868785233951594285915258109402014657023587883917011172095152688759265457545028299976719113143052649319346315147154924168964789587257627456795294243185961317364526257253552827345476361373585202526058824845894453363161217886712707206630306999911478035766638950875507892567010174323682017188342219449792336831777032540461064884878354609879700225215514085568508136225048968386677935363370722549766640651806017811747533827055014478942212376975197806047895204297268201890896341733902504407058119856571217790910020593579426676797402860931138117540872129441058827810325318697241411512808125636636704082523857243424400271181212189964190137227051023355183404748224593709710320936816467747133022179309658378184628044017017359162466414041875344714561002933728846982306929822737597021824814586924292997600601084008963507537848892990678004803668578414803365217742855171738245336695766483615214490349566519988139162949829762972868512168304429639323396825288548409179341224437238377525952599664161959028532885037121379985587376742769452591275310409254624261211239739949722811400853156406719553572140298988776250301395696966020889447737959513999304402378258466103013688735759172647145804774379124573585087336385896029179513218005352150170931282637141515887075747157751770358007176117494394228572302702830180815596496457087465194899117554303486429459108229908716183370658179835592605890092063164641542336039660921598540649022858071183077999270995668822950838329681791215977343470785676716520635076198161455301761036358161974154924222406878939834445038166574830667499311590729739347800591918449568055250923482909437893561551836450078451445376167098607893794731177529722145826353559619922472436186161258755424212802869606367506352873174534110693402890906511555615077248397051177254038883618138949024195170713965301728440431278204674976984587028708014953437390749546071557942364684662662798438240901299354407365084107050285419538724764227814005865295819291880819437844967146389215170406597487049576239460149820036440014209982614003241659748656087386127159146846743908866382021881583587211904097283749020544563583350383785959895640725953900624607592900561040822425774474068224888591570404115780601320275374103384974982131622526142985203159396023808941847418533949429982523058660180124865382558628768397016469927022098114467833089745691951704469289485030517085812288218700507801098560827090825703658678061947343049234482175656259231807575925436668215224859168945552464851295054233018345058124726994799836286482740031912994850384039927057930697771466097280932555720112265847191232167683414893539765069373649535438949388285899347228597882270778130240037116403183253957529034132898084049859617171189968065796837667491373992999971923348689077339806534389697611989129978027876757747528826342882551872366178267064570788411133921005072306438884578323491981037111629590024925138346784782830398227465772927928201201385449302372047330801817507578846301246093610600697903738150972867823613657538349311577269066944192310129924281466452637130894811335795742698046417885564069179650422200287029800358872793244653012786762415530980324095511080539036099729899281048726407065669516931451708154810487632071082436229209317890628214026589565271581167806370690342357836534785304240732601448773470643404608820847745265366182905490297924093033743966550880402879358202691083133508756592947749922256744260707638897921365512749219526831521820157855214355099675603384175499473071612238139585351531526687405354106582158644272184676713557515529311082336432493982563867520868797806374022391486688187762528097959628276628815132736101996353637616562794579673365948941500192202415832345268482119191097704158835748380487384835043755674779491582443553588631500954714253928368491073364822100989287543796577817578386481760891755354250482090655967586604395471713703215642514875449485561129102292764764551847830987617906438533670455756631951932564811509892212283728418435643545203292260341511085645592167313191364617184855374503246119608892322634974922056510436893096335756425444887902388111514969622270257136201667856990526822854350533127766819002443742878869147788241488359261209476453853889737985588294115075901496995624132672746909237198346561137776213360029435279110531414242484718926755293148955868227833360153365399788994417614822250364046570623864457554453825299687818090194728886033074114831943712012952271808696700157135643192082678684563301046152967087796122409320127105230950723346225432572371010646907389782932985672868579745858425045136716071982515183919178670340844095901676780924881287515181263337488400559403475508129181301119310489451612050545293956472900585720600835790618181388834107270717996755431637355218915743533062482785682489437959501999207953320047436922626892346977879344904001539050123360288495348048869503670886863356250746580454142239498721630774100006004227301148274596223863364456152719131781747488717196738971539577307839771434981513753171719034498420038652117416141655928243513683307470629488587579324879819171686834229064475544103653885870332279317720691209161194624315060675577444285413330521523985793940165776907128600787916435799689095958202470902067044483134951707502829813417427179567640906425570961767799959137108809382070809161463544242290279560630825800062039073846787180983500165300990754316776546502308482190070923082605918767017385210139936503305856871081571249961423720089738031067867604484456754869276046950725147246345747959842067690187517281273804051583473338095524259145564493236469472294788077131139757225162981291065868304324697356949050339525844635577120595150322996219359909120775484504221779554513870427390459258825960769869789038969200817361234265781321875494573446985174592895427040720550422888816375580447483158386444243533259145564606170648377912976359616944959036148237312139800502611040256921024541503926679761303037982373073682363085691037719457737450652442610115937077877757406533913113513839656196871150393172788108729422355164396786556106390306804381198110901887277627504728502723637252925754929677780278401661508570304322033893871137206365163751189834740534589350504716289787661864808211331227560813474483308366166494347807727540229979676254641843798608534527533454045234102974980785391831343426568212916485761237234436017208805778428905343800010632189006667311409072244404440716799753530622208751262999564980041704536206743155404524699835972405097715322274123770804210925514081628814047016532650695320013527048826710231377673205539347674190382522719447653649551698394127319865762575545505371751262126646487947308386924045780495289978340957720454447990456162670890364819307448940099203987073092454744879849904110625108847989945303378352105671377762787409172950335231106063734237018675034456076507199335762801969240168012354243297261009326760583709612015903483377347459460366492755161334989646108846658869379461726839907929497448706546035127493675651756077118323861823124652511312071487734524358346442506595586293602449548117916825973946873845756650447825199492977868269551302521510170622152115050745264209137321208277540687789343749280370363979861302731325752725649569769840456506966448354666759023191667141928675094111033460489429076664208072285622561178862710598941618160131649732505938012607259828701559988417894890636396186434342278832375398493977988897578116300300576053207725635426509077004590959307170718937373327731796321837196489009409427225754852299577201952391487692730189740065903842873517056459446213164524112295795071068933394681335179401980246064436117518355429563843751196964282814646200651288361445417698594676292195612011335595433500829125116332492954001011578966482886867722251024429501063070363078713409852777656657463131564026670339039562505871241841719120275741861963300833921171678570066515476705445819052297628166420177763018682214666308455783084965855509142291376164356331231642398824082435214887930893524697364613720781032221285947676554182736855906775258615321404232343783176403837392269192242405912065132570741190233974376431342831863434557516175468253264239623116386119145351922317398261504346278446695538913480054798066223191135591641478889355228185976207700219837447271898151521241124065250943692491376050215919168981513234340475032941927628047006305462863719729292893835522382921705246803725016345267199966138590849883705949519503284091678301318862412708815080775239313162948617189979260345259864657474796621240685432290939671862367211861571149130447545829611934782587133098767040378610038990464248445657526712795863841898356274952321367190192545993649073358161943721178267302198978739619481167862884842165896683510292122011495314335184809995834251986696267514278617654010499170569603421435559972845907176975898698568217075944151428886731548435575283802779806805659481161746633447282633018286785533879950503163184705583293913284582624456069330085849712794753585375863976014215093552789399398168654117507230833383424684911814376136005698312333857475026646548737937108165084547815235976961742884064747968317247263078368214908216503394150402924220793448552758063061537202189861849487465822407368335173744919790747603943564038375260336097103475825128791459851432727480679451149580218574280433632742570860718093966387455780095332765752410837640113212620181642238410609045186640327955128367418448844321257786063015285527633955036175910274259218225110521861412011046587636800667673856847466488251902658762987830926475019324345461799799960691392608913704708465323588389642217775204994488310631908235897287861286883423731379596826137679833829205176740352833176054828852617119594477276462625670473249547962341238493925159572139179359323318576102882103961789272396133572776989548134756324897039663327030240719878849739109394078471041911955566495981953393223836545136813617628585904478136334528786627935832750735121519287981760438605171862548911306865167057631233517805979875654493554157878493082468682081049518693544837673196911123983206959022355151607504258850016341691772803818492360419165653041138493076595217521657577843147531361530172087121921524215558991855205234466539140804975931283303430134428929591736866725336621808898623448147082823020766502797009620917815753847282214334036997627646230284613073690144446153598510518007146033364223029959926384880546944279486625193902915111137383819899934731052172392910675820125064202836279382365278047455619310073115907883788912888761465818118223299869080760917932935140273361974064629178785121602080178593795745550266634299624159190692214759103479217430350962668597621958760601075667012928287856980497377139517955754694055148833327523416119199087267431407086555780091052963497312955807442205054932446323237141374268669046717394977995919848355874014222488571129416103752950620700552099047598123462175956624654999499893345331438827270345330169884132038723748674126301043484108830243130708947737670683616929126658625210144534466806517463193855349345324765998827806267950499848739147865049224121262229333761973029579898173604820414432771418327791755971063362583655817827435299724047860825912978590233201562350213691223027392995284154725860543942457742046247825129491979916749414651884112918263160748319138055808311591909589439141494178568808902367924350249158456520602920951771818759405659964273323608638852178435797985393684396963013983862788240045473713921136027868079752977235613475963890745216100759964074312843302506677145740224062851456919839628821336005139636868484350551231366174430572667930333209808278343755410416321982457209614407261456416456682076196421133274254478503954930950643096599174408046830397856997446942626341632331874349020335680780220877403425418226190561022830224960063673446322183395681977303138553547246515429695897765753056695738819319629429695452363077796585635904772024631755779216706346263557317904896220689997597289159406335100265031369466336537302062495793845421820409669071128446932941345876944697360325565567339253399425555759434236599120108383465619468869017585191403356462549754195116784931278884133021395801381334987809976996555926444580998107731331888678966670928850030257859423875404404396377220572978775782052163770418825220124101084599198690932812896999492704256266088230423995529504618858255624697293247849615862592589980229884566470218699379778534483024640423656340104971102572194290574140051117992540770126182078987027148024740017114895882629363490483094598961804540586892964966456877319460611869830128318798111815770906381976203633889325284760631614163650474570111687421765679288092599274669109814012154480567727932458765853278774115687058138789877274496178918012637873946676570221836795484516383876601030921040610801176088773781849928173536679676785291480283679265780254820098699058854832500321477834804289727864595694401500809064628237360601781843727535520274705948116762683995906554120339833909657407234392362597370982487513462547873519931215575565074089912753568105801258350899659352672503691636472653848275338601251173617851542946724018288107945184229093176366520139695833013163071867436163959498285663293373961474532360567323446472327318025512906405164201881359559672763322146744037676179498927847998385887416295670983896821279540093906916239551831203567094604255910619192206318883566932479128375041102895636401596850747164943934334703410268802413474801315611896193543189571267164936291152007803178997509062974126745115896355780947307329138296511036989622447631708321850303849490021264677565339493472625141330405677206789274988369250948499044173493582834935687116450031896289461201943716820923827685412518955199162511915842539693215934490923996775868288396376427790343920838550747486930387391935611856836455372685672173482965005727531670644715319736143277414490487758555385785448237739018416299156709711566176484084939545320406411290396355348280530944567694323318167099298022644152164038253700922256128074675358740218074615389332162325747532343992835107158597818075482762557863579957607102691783349331167284171729387173432718950171464181473649440941020877521479007175885012028591748560781912851849693534099623655847631375545422984403803539932081864321255520515811340335719079011554729861564523014358908454830486878171462091633570043325628467527342184725912607844230897886638632075544256881639786525721651793445141322998787298598837033204587943614288603236194350362238723502814746101892435153180368232971723074992538778934919899443890839316750044045620973063451002715852989228126468524249872670458272039404269555085251693381927517432976587902782000529690032030502485607146159359323490368206259813503082369227068432856133251075592925599611221469126715715744659100041386440955553313886603329307741445621727763038518436962060943968802568459672402402291399409249633929400155009826726176573591628346871452021205274864686441444486556555479984508530872213326811460109683542783406423773178724949655130614579869988250327873229239127613176135817284376659372076885781327634468743716556908529898943606370958121234625094171561289955037486691546899909604414493154323024180131279507244475365335326678690513290220815553195165355614232775568023969086846747111015600995536657021224426055032224497092533965535248765973123853331262331019484411615007658018942282966284913405530026317651957493670880094929524503061250757882701200163679371087329606020878026109642172531551171828765805192052753129620656783045227886653855732464671266311081899600779789637495076058038981237375055754877389135899389675469112237591662589227442856269194148982700736297800701141134490636951143098675322485690666428222080025809753550154772422720793366150914695675192724216841075443987870709347813055005959122604484272367177685288673789539694451181451460692992464476259740240301865960356994587927071284985109502797494328213116378334247230221134485889628935556750587492525763651283012376825858578410765263798448248720894821398325119303484907147938008652826862617831318084167917494287586266169300532621298647940658547283048563371076241545030513669463533567213173886474275957728276029875199509019802916521363135824860031686988897043463939246233207757336708384136225442030960399384333027140020189732689193399108888682854789005213317424297036107130277244343519501103679065021917383779143694233783289281868499788577983644613145916451415557829695489685487703698441580055614282666754754041258761037890920435406787829777437794261169422380569449746221268159590416269339377223464425916817611254607809640788682228632303754420215303150930512326669797859019336631395558867055863729132122299819333283405034082643140320856483235427410978963468479044007307878775680004861614117707670166730784448359031221905817282791234257759567343943546560432167639234816077326232030391395628528116339172611078368054690556036636675710127719215490172816221969940886483192171505419834679686862682909939243850500845921024966080187029794044444546797014781003705619605131896427050461634283280817576562480213429440504868238391220708235029291152355719078121386043825979820365841782931547665050187897902890327839382175132475275885882561828192381854491140219994470053391956436063344451082001038906873851198469270680730809470919976164196402604226323684771346018157881871035786485822374594431230875962406904670676231491439075008797935556428737396373110545879350343012908396108961803625030508817598872636108584470446129571029666112438957466810804533544954328988078167994323512895088972811451891923098060179652688037209181687061605000654986303192169403258632397711660014814944692794699401953643440672722583870704735429446971908711993335801103540475831656672870501868053939026270071779334208523041372124687644578100265029300765649591489816594897676153787793663049967225402633292969110727322467684070496960188753556511611920487114846857071239581489500766577235014377521011575347203966029919988529555127379707233476853290390603076153682622100198547504511755674102518599175504593741607282962795128431306556902302440562359609369017200251190184520595014896053109288373319043355167687485249654757563822030555269344740763888860723829454860336698831857302893987144788559990605482210726435624992618340025440866109726967893493471888064116303901888347758519515425542380024713395254153941132325602232841154540225158822990448750800792167177242402051184969366781284502788221460084697452773939926128570318683507798370774395460852801844400957397731692452614569073245812800861669334114227217084632020814661620761192325907652948632497383549678146086311379462304502753807799134560026082874444511268891786547387776367946706822764570411112160872756901274219572860575614783303568425425232098081615709286458582003151806603522252327693814125076777782321928503920015586267642703233805031514786119327466202079292017709411268590904017287159075552754864929756994946569133552548322812222067160705814988445344267645698848726655007085225215749712078432975021220564780628702374964246984888975548542484662253985834704145031748264970667959877088312934051326673961417141801033003901001537447665871534528012112776325628369473269575059753058193482910287950173237132540462635867469962588165608823753096970330501087868911414457486797502306281047026427742170260860049395242777671263787551692671101757625594534472678394332640490301483455311540827336374569271168389190007955416947789755483648559609508458638378653192262743565259351913914250775465991687574653791832173745575100196787512772543710922893410207875763697987185968651652034134904742659459306834255204462840785693008261685122285208210733993928320584104096526706195653885192228314796881202762180752571385330693374283063471311390100211673099951608442894010647605284164841858057842437748238173912999050042035136927035182914021554741382561266274617606206637105565871841490186493790702181089656006616185168028840298528304466750858304214863404281129198166684457962622633519009613058605819403919840513779150450348462884173372367507169162762909775241349973845880917344017757824850314911173766011730644839033055186376349390489989482642025552701036060003448737058765072244999355839153977705111120723236494351233354618171432023936390321987980113426593678147786313414437467064864099853739181563258482421744204007173623779912233421327209340525492570486603752422424289017380423685825554096267120371197239364446766312823235380495283057474407974350665647802776490107148510205313614122584555631142755918704338361769826343338703667909183624323237840860892742429660102028919526354077457850582951672854659958960619054997231158113966200362961197044664660200885790613361355377628563856070822809465477810539654141133185022706854031607167097250398562248734435017649976763699145576693851059131750674724857457449532232320428221448569359749806938727185293247148375411880618665909083605922657103887533613448387196287976108469581537341980441587662139782375443604618530100454387532148344138022779535242637222325586018221699681020298863391221468170980489507007838769679469118369681368673833594455574866673171667302868989591220014477381407057142408244278869846578846515010123499578252218364046334176205797730014026199588992980952899951304917044655276915376749938407003956906087771568137242898546313414908003656080579672922566867899505121122513565111572045802145243972966416681287869642117822864145224548035706425673912774787675296347574619840844077858928598895729470757349835285966731625908059728862136678613605907241564314933629724425607910794580838300887199671910583826995007684964982768733480059011217807350835898418840789016725698699723700263562308103924817484050534509390562943398937010377637694653624018027037659592614912858821956640668152537288256591707641789187229370708525813237654385146394790478828633513337190780537359259816226045952687638317953761670038560608837664452912182351590054566966296524657794599099935973763954738261479483208995792526487563403354271816747274079336292165087922461155534181334871064607670091546066681153912867268829709923834047394733022858087329342002560902752549909197059140308243954484589738604846652980023843581101742187191424259384173385542935385462670038078285400862304381653319727504322214278322994341927744421694367104623237421438824599442165217026740904969619090258079731036385673845163911164002022764341187230344426107658418605095175667395684906652827316471632374684567531973866523072513728997811044618731330415920022223141805280685716175581435302442349819575759658463233602604970846180906624572496933615868082648853391188752799810009727250945850081683492522492154922653698757507242494084678923636081712023960922339742713993526975196943950725911734063783341989178384405915124017426767504413847185360543709034542092188029736214507358773313309048801513128670800567792880408695169321933943352069204521142046830644358070094617946586514452336620744760815341823343743672709397554562253793535168542992191928155657684128182987361960197825183375600804742256866824306496744875758233047331788276940022444434459062409913726880611303076328802821019822714197375152469672976147335494344330013006978452442434071226301445764894282154206460358810929424101843335376449438118586912461237255400725939257849165150927814212511644294175403385227566221881548334218928250021655023371129010426270459666545798159563770529923417813812871120327988725439418202547660234040891084469382267676802521914645248702120709657098761002602399059559805674965979912625914259100168839765685096850906791270209836983907156261154325604160247345848218262544128608557256858446349558249426212263102611853662374846261122353333036390178698833109243137542759648159833897709703561112894558656992716941180601967093312329541630268806865670751988699568244373068916344894624441215381122608385587832734108722108370109723366077921839133747937552173085944396840073452271041803318018564667980318697094196402399696087919899571055049329855742475804717923529714161204673254908336206469063189596055139706835718648340304677202828785198671504547484468012532665872035397057517176521981075998555408716256326483783390315145588851436348075086162625766914563896109181972659847668231867953419255301129808439336791885696622218219406720462904657601178222158406525089090498394271969547146723265547747712110798536299490682180906660481140944218213001776550906011822036480215499782299620588535964700613248430397196394738515768629182643744901331534474659071059448530601608400605669441186799081771066670137722414783192692482549957810950797832598635603151807371028701267913670363772918705165760318226860278587333792604444010169208591200922193843247525192262064477935109191755257064238905845747833796427310647376166785311091380945570800936749165811020505210726432673385155170704460281816686406061999360169762731747263229650632628553659108831580816089143866126506779802052913758076627237551929936599956983707034377897058447961675716972882315458831644889151023883206451694847298170497746208733598787531828347888730168905708983280651018125543247586367137732804112624654025414801552836474636937018466324695612212266038069338946438064004082205458302687995819606495495470535142077931800883818414041296304626956183213339191677152975016923761891144437775769308754691144741508357557266418135812575853063471534135476097398059343413259233596312886154230500831836675138917853517820145482981574347370602190095482063819778030110566697563800989288251119363158505037755697280261549161795804833091100626713426101537419809307345763036474092871662900566631200419657006603605711707858336008946846580762149889632239522590955073544187831892958237352114154060768931038908282200594310199053264819593519871261216510800034410805580732647234882493941105036089127648586490758058569068729894513320049435443497591246720985513928060398053458403470618440808017770789582480779630037778622921545927076309918143449745594899114099458904841511150086271995113678740664678421339454236036062248134799354811807390484805513363658445952100464682655518702965963286133740480928665993522655321249660121726402180723458941381997101229842153932309806039971237279190286029537182981470390183661189427257690645326013556363147728992470940814621245615740395195424724811420117583362807350229744303373443419920785417192149941879132532405596491662294190736553687489440899279825049181785969083991831625162092292750828212605779301995636850622864219895153612245860985699426090257500378305551076095109865879765062910396044108541519393758559343386182510871249955319578054048607741896988350963174876177302624969134154392747043926656340534738657131339673135235429186707395625989696500324181653863731719885832262155918539793304904487852307065585410033932051933092334946243209270738552782471940539913102194383942382965415877440362526850977119266764344270139302942276369178822827358502866692768974223623173346260925030558113720753096357653697891707983212859852045777935928193277426581788837205607688125109494367141050872677830971059212197133291592565016860875072977421636947669622135320410051966782080977167951882660251759640150143026982302245422499732507869613000085737822518431742215073433241574957764299509164094166406213741311517978343220979151364003685406428446213235575359455176066645102514824627815553166045306090145310127982050353907312163122186249698896427376297181925545741619059898945228127051798766931217312599049622690076194280249323174422335602726484222332585142370323738609626868975113774399633415757923365622779363045043772952996273054050125613614208380759846543714170011553847885930856045549435381641125392153816871751754263617729556229661757813995359543334796424058425687840178068661222627687708532219633939430591860876583356297483824433974052802470146806089995919927743895128986362804417607019018785209512796405743591156973121998912443431689209155025437365118076351424158987031484055624788411628658500333861929310061691827316215864013275190148220877606387100749547518525611246706602254936032630818514272439510544470206595350422230124889204076248424899251781108679624213793182336620159715984857827934547399523494414101341171174258560848185268248695772320643455217570778437478960142388107159524956495652942014926638428433216440350353516440207406938631107283714728360276437283259321475290277517930971836808012492569646725258038842475466315293037771263010475599949600998967054902878738844555969311198843028476711146152879812208182713813063621256285789170127599895432152201548852684894483057450911326129212729131688432528691649776257975137744628695915036733412897909279578686217993293410822489303716319456521113128231289600940703866058355400341054543804313445449592520663995226116886958343253445019455052536777538374526061682919758115234586297112865462223945821373678467928358347986267700513578620040542118417415464906494032558472953597660409059817861724116937028323900575068313043187790846835545002065712705396161836875750750921845968408883057813651481281765948266180940554457407211672937249977900660466637717733592335521197780665934032448632386206503753283507257006764202857828344571297015354723420900829802856712050739146697589324555986859523481808136747497335378690538091072462994535267806812785417001665896596253191384970812900693013863723110275417466666928803437013848988324998875182963869960731326708793059348714252551405610833905566361345543125333072698403165754312530487839093535768055797553991154808734609967045680883927962701005353797986188444738495849178597730688671682754123465234287656557962208773432925119251558958364305595869967391789011879504895257111190228144749444334228145448824932981873300667319017591321853973285392063899778577090494430455900304459682624478830778335070794985341784120757546771049624885822185272422111475765900026627635607043896499774114215570552073256841279237710840433627588568562300334231716050461073044158060119355919774283960656785184533534101807571893434605225324186290295433485289360225070623772104212481225424009082824778198754257390106180204316637957865444960026573565205778946530031303314777696217675729761951399514868692740023934218509792769917258104422653215292241781044544502275555408747560584941241981274227964176296915847894677361708426611667843581961774977736599901024315925994552348887173722523783776791699317953855475172275048374259755548808076815546616294946269451040312373328375545139454561896745399379004102411394480147210110053807502724887076348835082773038907905453909517522281224152093717746982086855394580832699856878440456158173636938358364988416957285129668145285280502693200602381527399012091242446864408242821534628949830921753522492606727749071254634250756490909746138474523986274963314827399714121464596555410562994177287094433531870946036651050686688104791543656405312939065777250095746039550251719817875392061832150710601434223600083910318568580965305207099006902392116013379891409296289134923268094798315868805842043577759969366326883335069165349261992302076128689929809092767173128303751943909729282728449005760244901764590656598121156753927498863567062372083869602958689298130359475221585019939826479490624749836517153519265595279819834776809557090130446837567559379076079797678361263696742196280722550909227556904044866868228389366225708575914744523777773297466580646451758539104061893827574718000433074639657578826866329151273465944611083863189761596568156817686063825068333273945844432112942078784728733699823632273962109558618206352779556614942417085912333276220572144490882761062325240887323388691943275728767343586340870835588645334063209909226043335509829478617094483692786965689032289354387305589869082781869670607561487726343154859891060789369666912994901226875057382216754452414991573889170925814133740380540453531781511518871997001605938712565185494159524540156711921157615141417401021000455535591433020460187554708779715882508865931469576974736369794581257097640339464955729571548038362760218403114801551126986511488391701115112989043707588647488217681835340637512602119822836121397215572928873880020986633284925248193146661368947628623964003093838390881494888709086143617129297300876879645317347458179338067984747294360434926494671455084149147148751952823887639882160872988270863349917351812861139745648122527063002501396668443193202125634337349561311745134009341994507755435989149196459776941020435627694724260487220597632519419493053241736785617069113841560867729129354316714032549924402426699587882142458226212146039964801541604902489859644360092824654547248942390952601170228664081958431998245381012091607177856335566283934783373394645169862606212720647057298878051795959319846787502740533478496690477386488653326569564990436200152874729922347883374377319623092984423212989789716712339633827952791407140583801733485097755359731218301648680113086137933258073759489799214876602506912022361929362200507288903835462311478967083984789506305968679974458059346037295109025959894842975520494867354911810143794459905536793777292285224666337050026608910140590681187583641905366214008303152892976196153779163489200865099962486262622282623186612098656139714691182435648885485613366402954821545126112217745496425914891934420640708146096112975096667021290985273789289903614835097121213374960909471648885607311895392132693831532551373534712947146566594694947428842500340809320952187266948161678134187413639572064388433898052564212967624675293472640970866221514900450438227072075869361086369433404197428043686252761638371504842374338007267642166634093950024341599534870189147457450186937752026178505649954976006634474506479171159428425523102231216719905484862778499907117965361245727500106184828970601676143464577371865512413938497666335012929358235117137708139293024557062617641871075762243547563433980307688575799537102708076887843416427575207556122738526578963080647207664468741876751064516900483010561213249533141228959236684005401166796792364272835582638330781047891174788879404958480030235786917227237646546667226001857588715382251339518296302794570325745092514321536610871425408679878599665461822903257274029459314759619429943703989032908824771518308484068058880635486921469238803315373052097293244874754195811713784562383979041847495468313291583755495809398663168206945058078834897689116517807735113236458163925679510818227847689983973983726299742596859182799397146265284236084680516408107555113514817325810006092087993313268979298548832164260589152819073458696299826950651781062665524217569992503671011815219559358928606860580104929707218698941940706393088000335383769629859655512089641290414501246921521790074477837219832542888198111558087805695139001648922001594935335913876079749819018967263592415322696834780195530468936148037015961423852845327698579586282617753047124488189356064765169080601180191721598602817145020028725881421560852695992723591836349621780639171817347992869968377361488295124139884387885225650145009411361456772921873487428127761359768954440466808784421640850593480440979490029846739659906831327964064788823553027206100993064516962040212637261670745315622389877378081534953335865799627568630865952349716486521293552975871759881699201432553802530313693117558627274268783674690207518478124600657994358455883454724408989443950881716538014109263779121718943764680581217357769835747180697854029300629425869523923905618609642985598971849108066783998687968386366146774538080456265042653064752610613786496438494289974736943432400302659846878781277420645097793872092615403254698605709802082568751941612026320783292258900337560396563703796278973874154371543882112004810540979021291508026129632673328847886624364395235238291364099373762804766992359690491791295876929916606831244247399290579580457170294817787778581867357084297306131667341795198572452803358231603922881216679424086588372347193381187995313277765996701508569417973940586184368796283429103728006330034251543062751125135916282138206026025265815611260568352499573259488047428358714936827945194232269972611677237728984747595416825011874931932037437387798388668785702969190557636438227414549312774409654813878360655745102447795760008332155278174487291948622975206933440167090287329219006239954935597362853581612452107922801225251923559832035008172339188789095420148448109233375707068224021965382892970428863067535006865530137176448998719852981668120774639339742367603830458768488295666866522741718593217742521943873368079932240245818610093729892421684023462034741607195995728587250632909151508630667477123618973605157139065182707874837364211864336235942084461324310846889143784041286013427733218746568857719034864004647777048892734881340214880609506522811826302486979974718938068833870921856481575635827309735714956669576020485043023329142728739662271338308260605830876102150792891853585663917169240194642805388759188473342656117167499914199171645834977299825865788900199804960032755807273041560414920316377314033761611564461853687870552037788825789392941311726935795235272856509381281168614963090331813985980364924883988375403538209695123438392150638798379779544673588322210214700222302685279929866091674231642659450070992010196992499425749545976297008227396060822549900508479940259965794735960397517953840857455249845288271116051359128170135992977366675889920696222996173339644559077728183439888260866055292270065264275116520267756512687595020064105622658655906006646409337440110950862088789610363876650567900879719887597400830088434561610532184236513804990306847792111239285083483178519659422699598151387552152883516600975879537986027477561853123237295962116940087666970609050338593669611942492357050205915556905640486110100555812627090555997777963047844936626560019692349996896612660192325592159138225610056543645700099097360915922136312780387014124497356762054760410528877791012640630309782743491852028929842926219183145334678438704831268748955012018106045698505732782495124367188868929843185013807360380604438825285830255110885163865453239410614664704964343876616658432613030983344295496050016075125774149559401546642007290340384356716048463291502702310384867819249524888638958672690565500854268096609412687324713358423377766010607109661587293890902388960015757610318229041730249571595631404214614046063223317485474837586912030291805682239945702130617461571318508261299296778685843720646790153277441944617593807054982318685549838006990866823383868996708023153684654568830173881064508201182618398172601507694189491193963286853464290543202230682922175576869834550765346273359098926878238855401633725953405878569950932752607236407069024022148757640481325870213451754885990489399243693232621933369648243946468200107749365188352129455254309577434096315151868808794346971977729338530933907904154839776539052746520973015827183192586689713293612983877954930942121170216731453889499651876578554208463460782963657617962272013151431699758958306909760740072680267491460335137847318304233017528186746114298422030538313618655608997140476196471803910457553002152102639039834873880956020608679485888244208065345568277873826930079582798809995600173384916869554934311841458321570198394915484916446340859114586646983369265615174901309820099423924122377163092434302356969087153130669046070510501693416821008243485578825101456981700295973073926811449754252579931052547826786447288104225415081477036509963113226701098473576095487982049398901282779530373556627278384151600359147857922452199951880861139925929945928129943053392332678181997368008249454609471515154751860230742299267470349516735443714666681897642294639951962191266067225064246681197002732553319618914190945217931510927516440075580424679402381444426544587659625061486379807001292080783103501128597148135265693943020447849853430580448563796588561757297389694246026683741339549946895425302768830396146261765779983729587297094741739210993793408624046428316466221739182789814513981866439820144288681398402970610463912762764960833153446904428829617171279744533442015507219383236112004633413359558799603055244636177409758205477763985170521817190563751962477759505770604544976708716337863336459499879514423730020125774242335112186597438948952789831875077490544420277663414464170835127324946801912495010293720236040646501296236537468846399851162879079548929453118346878947864829632944113620184435465357959887946237365241980369506073265106424502462826931667811768770977945946493147699322395189552873228670875217360860688994046468296828990531587763426309410897001997514523089824740869801898497654570415455817930165211786523062071137500811718128704755439188006722115227620655678035798962272313450229713749346671132724509669689222858635619310949460347343383981563774198058518909249109182170950545361447457653171356050393423680513244351411590227306855966035832143693089150644042466011477778767470788327316652212968473831437648119384205984021269668163929694487786188931026460283912765307377822565518842340230286837656931023136323228918647473795885820606096901110755697849734933277374372807986699735630504553004686369356456719428610275327085145677700327926788223960779562259554199053631335992819655120845693992762635626819858366588361091909080987978505057975264425850835541921170275140139910453740005725645614719081842708049232868415193335965922329797013040515678058080463079963024331092629041534925530904555804152854191645892151445684795396555016550538543761726796754093165255228781309984130235985647463300432073618078614861344961011452694634791223353267213475176212930943134190479051349916571297400127574579131049235268862550769078951663092665799580884092870777189709168666001199161346635148242563838488405647394131837898744888546501121792109944038013847182663760559791240142870154602594693578722080256587041258249973838601814763292552453895432809122254502426248581421906434460723161566173395962743848933541743082132493213427228555044465159958979767488445729265783030857019561716233350671553393644225484222563012403775679368763287454451056068511827566313216831199295465879244283997557112168543103994411915941840067362276786290083176355522891628143891890675881932657756762728061118911659180363986521626485676095406708804193627955334021607820662803550323298026245382721782648608934602590529472284005463774011649032517889003660847712785441288241670157824528785176897461551195446835894266610615169264493068056994550800936077847264501730944372581856845544501805741067901180544082500274664803196228449627222224690982910856035882757655917351120397117547769931855801686307158874397097688547961412319360280350791611482868799113614706217609030052414026918510723128042780786518997014613635905133032695610792908732059698892674406954669033541545536549815499734096112665230512022740016577557367414851618248466935775574321350599766217904527432873579491011895294492097137164772280861791638862434882669700484556836384089719574682748167855416161675222514915649185568332081274226173313338509699956583698336988136805252738365832804680749609888011597453808484299301631753171119913352785879661884845119258120282775841228315529050076902043892853445736632142462396023019554145156844650473667994170220684137542249834673008884686878205059994715555438983417185693444837725535481914121596277308128695916328258765221836563629667942652940603504704781261432700558760036046733108161512763553663717310206167085135891355002158435567996487531539921423975690497451446302220306337019154888721328182064044894729050614426313807334933586336607960772646134963131697505351757574906031910927070385732567907557958971850944874932758270177195310091818644094847506254636218161706676373091171843687996144147255217031908515378310987593813404348534967860039590757964973210385593142006456960175577602663935356065102395829278299767696874668114363200885903532015000829089273136766940244802803217618924154727868699785511825337755533685354585748725102829229981908319678161765933081893855619456148574589952284404120155403920594299588050641557839786483022512340375450172233753939801065675802106651071757892198052409456758319624859817056131914084352870488516452638132974913623674613610684786804235275936624797550900485914799659097535506558475092964264984811433761350524462654749554633897293339019928945437829531397182669812089015410558846414735486871397392903989024194315729161253135832483373233308235673483139645681628572879487225296984859516697153514874749519478906848859377200766337923158266022197713569151051174406148930565706530113054488118634461912299650690702099241242961129149270763413290312535726835981622470665319485735661875684042829347059920461613426997019125424899442360721561765206081321891106699446377375746309702957991675163612219420012530227294859884848777183710046519559948218467811701581337821776917226715187658085727040138106131819074594211809881172602851857683115984553025487528942318844079564817834474043341408336241792097176952173272748845529221151404781093813832384163660218031315562240464178472642685398092026988410171545219327984930862415930250533076584593536049887560508259355708299938133927821918658153266150559166008182736423935880487412612737801271191231092785669775664428470384304617063081110882882435050188352090277167097677808103167434834415300525680165972850357740510353723607337383037833625958843487151570353688098179231825614717864018850361018919217389619529273465134815055744151270248416825756678075032257647775102754137162555578465889557279386360436100772418248286201608464714645655335511828216332659939559280749250155104465003625699112988033607480325451041230560145915690038721182706205052311315629337802301835866062444116389060219725007469394124085159625202281857944560101227309207155285218062902123027994104760614583677897003669125095686800404899167314319697541502478149180255315343278695720460339657195131393733732859326252943127879561543639562183339045655138296237755273713758054265968551182074233851330266586130496701086995402235040808711827849645305619460533577783157953548090639925841566383032760994192936281678221847076517061859572990972524391748241388926206062060314828902344967256226492719249385938305407223720937233678637346306273530977401806290189020052126858645501301177392184843971258483333821360124611740596364381568041683789702456533790882633696338780202817123305104816582669126127910328242794024611188332489094327349042772047079391647576108346674829701246479207807148274400157775640422081271620379296832171308987363297538741108356112644179868373564442075945951717155380806920408626284532114419888012900286891220874453012546835320675778605524601181861072140258759173777378562481977847080962293608652168011970180910732841369873566858140047913472796646986198307453923452169589119949098537688996870497482095191485876856109311822001878816776085916513364774759087929723214679635980280762779959580873783660617906516704449566981018524103609154637167159852593105778490220149653790394523142145752908252207614240255175000018937295738698489601689538841863010824049240828016421378884488700434240947282383200661633424467640192230971087933501688200764917267801346670442698212981228386179053208799065013848156585889400368995077990007167864044808170526799966216146961950252311751269151600246381897237447239121463735772023116172317611323759533948937739870750517639380189069307430500460249785029705952830190001306243249177666775694253686424158951490402968201088563112840024341600356628317285327498829469343971743148991622162949813616382397080234611712919960164345809263321568198881537377611694368793591982919009290255859650501903200265820434857335212200880949690986278941303933462226947586897727222521864098036331593129232091826190789321320000340719466866242354652194991085201957635294310400258864900055556303644340913865258995462645461606029604748267764001717036280994621205290980006878855771795971257462459363274625201964120014906272681683348962308189195954707952368715155280185668134698303000666442888984965524689138606049103092896073038203475169562341355285948028039442524313109712776884986078265699676909868466299403611630404689222408216103437630767396980639985773449521235243380067086663059405996828447150092405327778688864455053942133522524262724455273694128281625898637248430766895388525415188412701815640257049402738844701766292770810189838551525115028438368522892831669488139408881417007113624232841009410601058588000369684094831713527176483307389428126901156709510220707188248168344879921232588745204011057960360510624122969365772639944501722031738623938664886863714444282762335927777757774594848239253458164515139129189798238760016371335574153427293935726055570853002914191864817334491056161726520372507736253931015707632554991436587337635467513003751444068314395325520536400158696395049924018211463290360732548973324805088531623887330900932915366039217940014230520778585069480391137328598325758882477354268547183977126202337922606991151343221023943094673263085963366154692410231849778787699845305734391447810832361723974318882543481909508592746325411795940778171634585346108988836932665829593377536267326859624546531436366630258039002722962883289589709693925700914073544453557986274623391027710569670570073435652354035304072688722917821857791374123308211969522955055492713141820550178493647622968503124818944878310240505344879750212699125353428862641390236703675043910977876136512459367984709244986141882909757105928676304482752219897444749472269670367283006094850294609310091780601701682478969865168379688968785509016816197343361768446249121176270904849514277355696706582350885183185165396390654222861093865911492644655540912500662839117009887935810133240711384626823472410784635569982991280565521065648764927021142422618743329786234742022737642060369678676603845324913999136054281411882942153404672259447404981626712548514870253876249046508434684191497221054920194178541655414239405143868333022292522366651235366581962026128097746252323256432421114796130919554355432903061951221287292225332764880947515876858155870938609371025948345412259427455064068998715002031084677865422218914697236610788068416654466131836444048543624294223771638640262716005541709139234446694217593503550647577521075279050524863243466575819202579617134750106309785202614265166451753829718691992450435152520232109233292090589056634093275642543135066711783553969792519339571871591982497622575926267780036206070723365529927124194896841884426318522858665652720367891153882972345305656852776970164347044499288711412726850028259364332747179579096501021238799420945210785872959501659565398389179292221983664013256157156820646197416391451983033374294747174141341816462768350231710000917973957899756285611684807896787097378571146333636443500478801015707202327598635906356460486312242731463498810375187547265752650526069152544132925857532058011179264509600328706196423209210656595617648585062416983598299529708811363094496382043604787449727994924485368145295718966748054961516199261562784211451213014194184241374500310038916512108426363249242396856618519681849627483018617917860457619283229255336754452242613042264399106979698374517443226217339611661501661839734521137443217835868698776050509258400615050378302200602169323996115380186488289554669198764565033106618500840842581348189403137087040862716419757977927474356615397478220549984455831660679963223747780530535922043366611475247843098393567377317920044110567273866380604679590116458396117983202038268795276285829212000978491779914956662044747546646214159557934141069879709357787271734497635127387759791082849202931137707520165806699318419310900360410681462178771997062573348909013617241346732187498063395438605321617298154908156475432284728163404390794558361663869913224742474540184544745415113704662074428598187793383816168265004676928553271496487298495817180925278479234275092468446481942832278067852604171459943999837506939625436905019219037817115090898238612923667541211885562606453291039610796719785402325337262427909056802351085613127333591883298732997356841377371236654982652163790210022597141160354991862149062845059680992544790336590071815372366457231630370684504783094269801580275223320371829602338607477146929198421505320642100426988112360644887587736267221072908520982022834998950643795023323873758747773004741521573644920414861157847667988533054972618598072938404204328330202340303361167459576061722720132717092863126142064167571858191326215559521804535458802367612745561338350952311686649542758830863129670611113813388531956872251877670827860249518513109914228566754916909714360090725838648299120771805468053063070671804896645082303072910625751951463013134669763005621307133660921634743046999449304745836904162516547354418350864801185487610102379273481541993810349420485765763483193651265645719750109694583005405985119611456309443446618701626095819828188284493911482606975853407409886055227523744831457926441575293398773114895932493068535468237479953828814935036169287605957007021278344184332049984663342070688780732528789717906644301027440785985836568001513854542480444431706271088810165000970329299063202720486984870888747709960430052616593393685762142951478260707724700342147064008464055484111660610605216006733032434281300981690392966363499526017101949059724890399558290813803488260516394535814827595673565968450919965547302933904995112814802095584957805626763425264090689733678841419526007059607117769042282153265209955866794847546106762425688843921872037252302737652910532098876671090699126388810719949821716564795546340299313879453125874792738137179748229577486933057272395961528346841027557592380988574850636927471073356575175105274001630772750819565102461854990977965041047010718520980178940294404034244306939875940749854793826956995687285426774994540742642743030072462808999148288341768691670772440203486738403656321673856766493658270360054121366961969086505475096578002245150873056378101831828966854093691400867948201487931248003002521555658678088065748287016250346127578654648453594353986768278654966611614075356606032530740822439958981485388681151907521667023368589325331879369576573922172183789267539670810882739640148002286787076661399036319946827040889393916326909408629007157925672396050680109674960468948926631320130123730466983347285646613197751938104182709459700585318020980808005418178538130235517720449268216996837517208642754214261674719160326065163014593949723970309289547243491328131816104853117205805210193732156495200509290666653922766162326465386346813421941427281252301206581480271979084840903782732118568968601729480349108300381152608717228441072256855949615871931418569959140798624944710314540375104146075791107419911870620519891359830778938881549085724623836622371747607826711810727056371798340216663278399872979345157823587128047630181282259106016228648622948229042563369349255021980910224305776708694989380022662177887331056589951140906658513842659997659607931580347473718958741159691451086928462051767558063765629713044603549714577091265343277569528966909739525571999331740485194168040474708872964795012777004291319589905404164777758263809489492832673714965976169901862288082385776770712928550701197757902754651655817786047247962639901538543024447503536062571494995391491366208228363958644786913666197319631964746365875392350190027417173950459383847730917133639952413484877721337647673909847339731254319585800592672153768763657767480538499705769352946879430219932992158882043804389058595515127877144907221469299458941573168359430186837216066731107053895724787891264599501870663151452867700343940516689487837704764904306218179784562387083032343535238551542726020019608798531091439951263954818754546971400102930233995605350011878441589870916014443596099517018855454645858726335836692157458889246959719237842389710998753061479720503643661504193145150584241806465403721985928472786477490327612627270515081160082830474937967487645579613418894352076388584055991667797827788736204882986494939875071482939192709426652657640987169458941934552213223987307861905218989877035499667273684168030760167612081918965765058530512349356429971702250381515097000132118655897122004090116299321649124163650698796167480552899910023997314345502264455025894080874286997311204294681707172744541915631272551131466989063595172256910213885320349908148132734009224564759685281761742912620990895744645074372182164921328536935817978324218549668824812098696550411280967737292853863556319998983381949362775809919271187081529337635228486621606664875563353130355027061809681396102570510713488830504021213490992074068962550232614676862625277870391204816930311174737614724142861490334111078313686529084920449060978154170581980411872754723536731285023859550296881634400609121043676987583833363569421366533894598843539028406903077077735000412676032360932307760894873111619331152756008663284767987428913451143892846944441960328271070989868163699903475425852631644977479034503581923856689452180371283985310065864189969055403823273496700206766729930060089211839513336253408640016534678189851041339822720353164839767056040682549126404563859799959455384514545015759724116471931091572923068616200338015414133297592245098186838029022654517484157111182360062530297793091011092413008034607281292390128559434937907455319710370092264445716817308790108257813420699625399013789945457462086194328952756005621802856320523163378612482615055545925031560643087692219289737143425540193111600097742801368043932817763339214893297959244566024573250168360069946671171586101803009857841641334599358774122786044110312247283368025575289029468958248900558522291203869547158915903102528766856550879442997208714914396477591852357554123761699753068526530453196526758851268096828744287588980081957738333291162727363448331472114696844680409041845739371672088283864065510486576460597062044807542444802558799779454958127202777341026999418566901927060049685663196950956348254494932704392212032208603531532245352637032154204342484820799723623934304051399015432333091940321380950240737388921795469499238025579418030990777476129315357402624205738647502781813709152141919765757931843907404859289916636464588144051491604176724893901511038984547354453711787599079146927884883242061889284890259207176166301383796073642933895664410519412445420344576243664253848219017019645630633557705951519229312519543447042888843229099330103177083642745323171548340876554306382550348874216983605328156523440298360469934732914399608128703343927948264992794738861986742192090398491709815344428999361796896733670494888205686152388947843382903876497252699010937875320596776320758727260588995027085185948221698092776000207609634483024435334837452314796013527883321112620276475318880467266276493485934589274408344959656299483618514520123205360919661119846377351658801306683818363774999018670965442466560311250890444394371438630362288497400115313213611083266541551242809593967584644657128600490535557629369708837080643102917110350118573375110449491427458014529296843201109548109217402805515239656515257514388551505694987501277937316207522884947235110078975582883834255034603607741119921759531311241778712484375603664434363439680335987229575133941269282213667700070878605958357868837497795832705505855711703802990117744300678783673718970350472737470648736189444183053861735278762408348989160819326307117630355945725826765115945282482921077003849598039549921336761063065767786047251887985410133880077876248209881790078333745010810184401005875633449321208480313132174138608047454417011458738548422734174356589256859532021315192161870101722160456935367296889168527073266229744492710756712204389318937785240694708405309377187816877666640675806240699488175024299861429185581887742579270786406766405781718922887004039676842796838395073078190563209577676530824868171789883130045286799925219000897855835379542415305040899896948377150780651474866678144501014135764429841860902733664561906112789433762063326676940140697660839910550353841213473227331543819834567980993345352768087448531645135041577686788679372661513471396338243575687681626371372906458638059394939565812562421289266280580509347789326584745063626531940704162393996607674935139308968670753359229700154419124946154968582372130008372566327840890099292428569255661359735469912107619184208684700842486154107938421196991216100449374080663817698125692696790199254170423967800332053899576282540749837741740712039981731516568458586103134991577616151898839997458260728970283729693768218648270631921442443289403533727066991465999623827061877136831898082926122526072985771198591916021827572013675858415097566770738311830331762251923629118706975148081585107347080117132996612077755112224918980438409189123832301755375232721331677712607599199006719755705340869488874451223424834523515450082406499271640943995825237758871702449226402684196927488161741417119346747750547909224580857048817949473791706246334719921156233982842926991843557664946424060135059731566422689481524758435545302355811185515974483155565020672360302610046472861582399840195601211215932261242206309227292183834190720681692852463515479875183560970245719922419679101796375498163100091280892216729111757220923961850509553290409706153080915698745023675027546386890668700968358285980228423589835996960657905132989799929913227519346127386287515576942821849676651665812196316713168579375576895794882686356751633309035347129953110331476199341866310396846138828577333641427505890563319006126366912396859109355446464886876579033592874349633982672767049910036594746458431304177705690831866331794266101419179651569755495380515909541042665232315738454699466263128264023085602394114661663904965766161379363962455890152862487199029049874855493039481430874601222651838955044415169814021863311605981188408011464238014106127695841181482689873217801277010531717071394434776986487837402033973460142688026706955509796643536342337312064983285890485051071551505532094099734131741423730801464487898732048511031281586455462207100589001951327700856044729701755999036243980107576205675965823197113122715156882215350731536345087612204354296243214886843357070979260298963812508601692376214883177495176751305169254498505805258104506322108229748211688167913063903831380866471522896176569826242790374731096685998324653457497050893519467474587690140120168826034189901338323890385790692075147615719462680278574742065514635884116112524200279898100989314441406408939074704686311034509468156092450604927605127063524942651207488847476803208797273797500301238712388837924528621935334623516521128812110105249187352920663427422662801437990904338153377464784568699882558177413272250837489603884285215756426686543354684507264382506602119057705699443396994594480630571560309344142951077281514877114745764725842654690710518842580238886243865544099035704076319430296882324388015708965489389231937182794725066914710953201865103467573021071019363047879961845779154170350126127423812786784847390234832467560070385562776413067469347976457433793866035621010921591386779202394108857559003001889305464579626413515252795760324130359322119828376993772478236934138469465091581347007151976577027805459950893034791337513953652754030817422710934461492961304827881987815541414747536106035945603521528362615771734595187845360804176167465178028340925844440626032090961862208856566222383749891609704058327092823371840331563794929493830081275855756477029186262773795639543715750423856407619074290133848838900344810942648683667532014389623958148468453314568895010144551130981695256985127525430828960733513244179732177243912237661012603865005472256991388896442930559223809346086789009154217431418165547560317866349028192365858928974260944469395694203151351065550797179985362019535466335965934614371824709224097510757453029315485782763670888246014191469795288783212351696960618512109923662371796406165481920657159825314900177268233158866837646438837810957671453806147854549963873891237825936788565918653159989314462934985647948795996334263401745880985646552846240760002503077630043192162004671278767497927521676748239982562784894800650443269335587239808563138378478657063141997233165218004975862766824346985514606783888753161850545721141140887794534598391275163702279691517178964521647548867976857416591483422554102759096080165274842560152488285004842054886585219680594107395876499687416456998116662222493855599961587582490501626654092923670471830121188381382803091174128661616976893529650155842889032470017153972071372147509755970281747773445055682578272162819825199180896101158552078001794160194443412710747705431534809304078260402108288647785874864736928742730687215420155745702045033796957338886898839445164609333765705526129846133186624033525053714546079012704569656117873943951462562932163547889032822693522295708980604019128979342765545256950051548541040075947266260344278269645476404407286265677414103207499389568636597400069472540105157071447353886957147697941145131842546995925199885734171297598167885158258643105995164142234185464397368229781489546883930578553511054575104139276737372342103285274354426425961960831253411834512104962250384817415136461602244528403620897996194497891003616507161243532653495025487645405418118309751918757158523831647015665735229700053756695016761032409574018509785582514754392205331156693613457386336824484819156582636043172039419546340193873054088230226307462426743308254023759795682081448880861445429704887448173686735992490886547821255168524048653334417712539088102683183129526711907245495761012238013180476431955742738042547208113839623827809636072595107635214752126079814025620183769673555201030325739695158571826028844765274135560340563176265101626211788101898301419327847535528474811815118408583760088800073966714916373563650213305423403978450430090785107790347976184594763650160952458397386205219889381020945067094709729378972232636577749290848065084191868049432832624855488092977855229882556528312315388491268396273844991152936553349881315799750333707814000356235264249019842511472686553521622546919022659696193179539866111823234710560012031045634034573058179724216502250921256908993477892304602465664811808577207700505659798450165180480556782755708660267563465348394671152509744852566718533684713818205520483769374659776558793444326516080069238016967472773465603417738149734058229245724800382346334540819293746110168038479865305785019151667217610010117549957784207408617106425712678839501157094978650948286136212965224138744527180077870764076266772093921379239640293504253595316283895618670660096921794871650531346316985843636545204701684690716235331427508872558735040804922875662091511486635182285622661212729242846495119296276181673321559715095977557499945590204362077418996038531416019618883633849489601183659080721397489787807138175156156439961199160861170999659641061931140800793757788007745992610942859056078889318142454395045828222511162494551342374414550295158556818989648565869354455195794570845401826227548122136998102848964081315302390572578125262438252225785507331020324695229929475688899337069389951955152263748852981764333628230793214558179805196709540003703047582104657804844237078803269372155780829861561097374285973196805837972368844218608624049220467243902636953260824376413235942859377309632439234935733511814994719232107011521839184894295906425923244040468694660236906145468324483234541668788655578078886114734514675842147202593971074968559564936485660407643646769135687159994328649131233418159601444969289670620671106204229783892769362380359581339746139289924056722729216977173272903672176055315956943979231116486459281261562974974768499785010197791136164614737840970829002724492858673419285779118266178432858811842257806630164209752944664157859624828581622623110336013774543728598937136350282482634316562943960970232951326349434793584602319607080486338929327061681903449189084221582284200682552902204197736338847502982400701832091334894595928051672545876884137647710507776426894757919107179799630972502542944134823854964210250858445622972826580823767869617893807022927807328534635686825909011501725185646996832810363487091178925649916643477661195811844591097674234012957831273823239438035257666386636128375499033435372405922014079606776138221286589134372822057335614955919634466003352464588577014663804247278475600850036077522671461007759403454275065732536333850807857478933036636573931610892281249136166133437300026916404710776545651528629637339958716238065760044632797938873662806456873560735021227198126114290643627703044978966760245965719123317564473273147575130760158861171161703296575954655017706077316089078412731870415253205765366397684711529799693854595673421175978917394511033193584885623994141819041492773477065707965389268982551414316971408082559165978483651695517540485372918975134948368836233874096595589212196843705343764479013273850443112113738944101329794925874923118049941259993642947962342757468127673607072938912730277829326916866039880454828013301614854464370876974266487104250789377368603236808178503610660449999258983454344142002377288847851547956073227387673087169652640555427580647887557229653868883442025469835601530274908366712874494865914309331415398131039279500093803804061633007364827070200242209041433798393954236776992180988054715628014912188232680477298572141968010253231369474060263814717512984116825877806586204490932044293650606030572260311852340238796282398835076628672237458180794708010164930552357668741140010601093578364370931938265445114532792932650259446817862335471080317671974444356709057251148033121805267980562220555271950453972235322732091899181273000798773257098877579290468971238560685510886811785149832610268423872710256710189642767608172448520247993509314247236419624369917527741759490381266770318502672507632742368130569397025169468003102350418600292904959809843179073244931776887654228927966414700254187648018803066799184833552926343324908668825852665643349620806846107295858555745338906447599375106919960465261380928263386591894956533766282752424431985609141506015467162952307962397968032789168689647088497010141658149175690122140401293688886660183403293193480040056998671599034013084469352001676110933395482300065222577698375418176563052739940177992458453406069832028071663899638977274960875894078941208863796115279881628484110698541702938973738033197772175048580967824124057009707743556127217783612533545151462130742920026330597353521178781920134542913642579072096392572078308777775270959927788755474578954951745465093748896898880069332088567418736414549960872148817343706858597488661676461210130045262883269132414029843739455202075217387477291999191457694559039189625432823346998047225429454147179585986078433566466607920157976763117485963641254432971033769182212837422362042454218060065115328851697338660957653646669817294427004797103378540663427285302552208356686525417499122823444361938501955035846973548930185723673707946405304966039686577884981394986954426476200032705652661791390600847034714974342717093854401057380207418574287015400960153387945320385752652407902076257955568413067471907624356770107072956251591095165179478457683374711740905286659590480872467214476292359700589573664574757470670575636911345388975768235323750252757539845028013088155627803451148228756673846882912271341771957820542097981978283133939944121460279305910448248513949708396920969498983320394792734563280503982782582087380594993078906497053577415747714411136311933536535529624481978351420955271450838247163157293273230941050441540742157232459680420849717961091351518803506411511128397231353179727074524083119011425705969619801208866546059524606159448142125605465183910986487242947431693084744171001441497076498657199783191215599334408362777949607236608249697966905615635465748642008166861603122224378774413075910089616777963236961626811225849537167014677834878537403247487970991850201342199238288723413561164628489881589992186668109664124371279179752604513731762819320226221075916425068584555921711278402122213668438605383524588260461917593039574328800445097610947061568518847901418336351770697939984068452839138959552519910633927366252195431379311267907557425360640319268972981911997028737366043687442929282417916211181201215144979461605138449649734952899810833171084368514381419460755088498958792950560791593288807248523616943187827007961664466771282829841259128890211484833178186197407156711599486096172031894012750671957723768948154966948306282721417221860443896266924741161360845025512948901241523641673866713856338347740458689144294048431815313139378130060332178987059830015424108022926073571936500418353457781392810696531993906055921479416209918857869872268700170572371690893847073668227972132293814916256336640202503301762917779727511314941153999054763011322542754706445471630392683003531776014394603485126240073295775937284306825552147393865357033562306031662698915494508403153310941058027590162131735717380163658495565664403553072799197307855056041686082149685582626444005340679783652132159378632039917032305956512450910927948745954041178897704683407366863133315150787717750774114483855607233249885697168934310101522889054861999145038320294290157553149548894951930416697773020645012747015835213519379045150530529096892906334691951882891574454423155663153292580945485677415668353450736554755931543677208347755455736234490459777273050974238546711142251956804017932995990426997873088438783688330939096736324355002784994435809296779557456904153865927127904621125475272819813215238427989086032634859355258430106116429114326246028380329043308387147273240689127746636612257951947883031449302268508682076638152921611364046753666489424609757154319554572468163610096658372821955107770019295193302585032019663273979374265036656681041155186153009092143116026293454469374221014552673893244967711756527815258362896083354465197458839591211676106658779625997337545697682640424609223818613488773078202540247446451503076653368333599321186632146742009722786565097479319926426280345083219720464360579480483370147085630426789636878501296748485865445771635123041706346331248016481717573074950502362287489467712126192883634591400684682950147356646901118411548680460977791516668304441197400001522818868221028894867796083416522118881329083557633986344978809167446729377760447950880766193087743785405997868838718514574999474303578247752489116121745759727755903885112254463084722705898702412037134896271661172096026284553580957002959579646922752273962302529732158067591021855948799774125414106533635074498327709484279590956764889552788271089479348662670737989572733617550464970253714710924005928810130038928882504658202781255642498249452638535534362154956629636213520907698028641900866348714260386761897268567243256058535727027506443724852949954894916119619844550656820719126241957762927034169034860237527937391385381338032075852620109454271146865713375479979037224557807384680189117459703949686202547464386911639022804397296959718428732830214387410384921621310596395142772906515090200780652824312005704360781591332874116410699906172165059537051619859215192592934441299203311608715377830871402367067680195161794534485463728244190501670691908087524686934803190752783331752432560745292490046876878170985679037053117236466230781134599729603253756627070272220362374367541137634217737127172575163112558492774197960762632190931803126064311312399943323451507717225605602218415410062610619186708477307365506626359075159367733319937937977525753338297550150022983571943891417995651607548072451253078258979295324416764085195737931475896661346925604368886394891891270099323191955135074834505788489039383776734757621965862507010974167953102497666827739905662970548965055425512336442101025502519939480460509485368401881088667513160092136946261446131893244669150221182909529175029737797838391399268498211638111689695171662010521873323610600731456399242188015096800158923148177260827220549757151431653642055695117954837352736195351111397875635818491861181906357726449694187271169945889430012237854186347222470677026716204269389981262201158605467846423638069983540647613836045033458027136657473225457505844940722300016424989305201540017582678450514313991226523862198915142810907806306423189364896418011532832853845036869376708352628929510602912383236345401355260223068032772097813058625693644993439434680130441207563961795095769774754981562686698142932467115117927579459541835425020996184531180026407688578427137980492350670820346635624802367770716823088642057729171172603610604260759491516992996035744167043693864717649954053227883473848897715818681708192106936868036175084217160898720119036464246131770197477055856440630406256636252826393151671243381447683126246059135985939089436221546845996780787185270450491792756074563887589986261879998134433600147457531641184343628734094599124497796373039392216874016241640588408582887051669512539181766647550958008462717186884320706443562349339178987943985423956691815310045190711183678026573880911710555081165654231096917601364045389962620158324391347518340882954784787622939532877372685949825163378440717558415110356078520495088062275401683743618638537331601132388659470102057890042302184859365435013875633969800037466589602529381776559317793562048507026842198376605934195515602264670210470166494236200941427233890810265736586812233087581841636688319094007020458897965292404320775171668772748453126200174869443227856102896145735343615303370627977788357557491971121505393604643076320095639128680234155199311605032553328549859911083837263762058716374547665711442390168037065981932880755732447554388520480424440621911790659339504818107287112585378095554732032907168998367982022553941649006755474398038991486188713766753550041946643067846510373693569384836992667608804886632617969879447429416109442412817877438720680314536425446313148301227262098443564699953754555511700680122802281997818648395887781146995545349550085846630634320251874522560890962871099479704638141643922134845358764442700780198916816796332809913488649378857236865174072485599092706683053087596313625811735951616887000660089413361285890500397952303499769834846613119878382830674686030311502904104767432911287632780992327823478389266414299461456186872823867444948897126445610057079361078631123003914860264225843022260866918938642546735667545433358783188194968430173112687464613279818403916268793897874602893444094516139341880019508284663246261923103847758638495458816564777255509685204830987839025346389766965855363904817628884290388689034997002349154843248320754559773644173980090587987439386728580310721985689062711265225015071002924034554068233224739161885929560155182930602866693797674852589022461032765258940996592682289160842866942296433866413558686491414622937765894343935853198939091322739344903981671523885236516214005429234233896983192747490264634498857585666127294600832277157934919696935718519141683172935985774531631029044907580382915120261167418958286571955494801608295992216604831509829169093218519998342807313530243349695481517593680436075951037502768843527749181708573608533390806380291456775090485824434197717403600095288302355573303052677527641951074173687990475496946051506051614460232565708676633329587862243690036705459847280787167410825547579480310052778095113505050939007076872510757774182460502038980923362112074616455538839911061368214384565157726718421590128424497223704802343029992268923728954867875200521249405622606370907607128062025960578951903043298278016147478258248216756613704868404243472640332179541052512164091160609289739140377577135595665465644987137277086061510364544925914821672258786358447558343991413709236396285708655309979448719760757668788803484103460521939848330471610715330700542622588359300684299438285394027814107762794826006542978373692353480745833096031770220986409723609578085916671090170911292313567656831703247249072842423620508267037226849073456239024564629997855791367729153660499097630147494346459316289016602111905613404553113265968762655838287645654592468626494132363579649132545786064734435786907439587928224765284430270867738977541533690352011941292309499501110859849211034922456658663593839713692994826213447288664109416631114963637655694705096256979484746422489636843843902291454218058590068704969638070926792435064130441766335473400056033605423843838506942139130738366444726365811521906343790546539190969304295768613629330159082928550407861424878727168845088419226525454272831641959117402389567352310524968864628064443682981878997379737029922864222623692816423135818457486951133699396295770830006941491496976507213325725230851420157337536391057596990024810289579203089920334632695971695049737755478989828570944234518153811224194125029245887257552828456537545807290395623735598882014686800178360961363890978294206433887973899733848462840384768051391889120037836682994123446125890826902698679970983265154610404087523248626594674633998011887400638828625672526674056501205058174948356975976060901889298734709584526919944537216012807765503943451707540812632681788007529512795512815868100880400999980324477067116795080266593776517789076074150616443389938207004867409098475286542064499274410938359719397958570963710263374103751528040871199013659769892596609785032573967935503173362753604542744631954535105913523585240131713733726483697786787131017746795113312878272868314133417691955424384295241301693430372223768484807886602153747402474799790422411276850045338062947320684936864858935876339149536040544879810249878039221715070868186768104435729921305765546889542948529612240404856318768138773336007164344831434930955570600552009900032750698438278202353236067839710256339250704220946953912320648478787544865729751540894894184059922702003213361388618764690722875254087799405192884549541772877591030263082876978785069694357606565259018753206831893621675134919282201665196880141921988706144502978131149511004242611118866290001348738095928403047539107053157758357037348122735705298786900322168310914695956105935019445354579596881924752138869978842238826452547546021614819684189943432933010709422646550303031318454969273007006590047439127794027847154304714273375224775663677044425932435979252214210687402634886931169180126153684303379476332684056578698857681425212671900294019728913027979384327347884766675638453561830110243291415821178458844213394097081332212129474662429832231814281097873722935621664430496693335019027555379523835748045339973926519892908191101642106058686996818161732853060398668095002758425390908923406791737034405221364618875654293448835686847130063884524061879805393167388874730371715853874866405394259283040034477664873268808509327730547297694693663575643085400650601193613578409211611763429117275723496575436488388401738438687652948786012145422554490198267211795160541152501203877381134341414724015489494090125787087943486666916003672379167788523462776942854329007473506201873807458202395212914218438650849794581897152031510193323292795118019497147865346736661088950144241712753853526741586544949139780671182052595086344154870339636788378260022653984000077621313518581278185397376056124338692666833590202632230542221154670779107269108932733373128776108010199867354556961655132283166145591519636960051526322305542797002064901877135155241018692667256824856976212476240058299406337147644316316526618344930935645198259538882806060270770480142953473511407752409854658154648552865828898425040625642067608159639702489889820143911086802568474729635305434244206916932552199351766466906887937717551908098709344124897569980918650414678545395617604697538575806210643748195541104058391507481377275367763567181947950912998796135505923209992927177649882575502460576286977057128667569508847932846147956497909064346058040721933444043398228792191631884943335539582969919885766824643361988296564620262037766041920668803668259569815171407856021898016005112856636182644856123515697580827101930397818828793642185874993248401574019377807590778269497845425612485694188460687566466321855775563266019809145795559464361226940378553401900941835302772818443718032294329080745784699834655706989143704541882647705074893399902054226337598514856398018926071082621841201076674892986435465027934523668865149385287234358733039668450406439946221950362326279956985493811551106641750916429243572880417690053551890464780099401146064460065799085332536953633955673338653044136286063965221123834442919438777780876324000048628170634343347565660217513094237363048544626524183590274390019014282235046865499486905390713661111628053930705252252494732792526336291973811715834926532255270766755234890318811757412112285411750296298793150920371614565841488505600898819802599252230085743219520624806721796042285503325712546204892872002643784079711705611953090774672447047962114164631567751897067016742274260047605710638090270035115393273078014246870151478775419641795057026287487192383570689285726606137663040548453564908200173322946817110983866339310237962526558338676250974238325470838186186934525404062227525580122206688730741619860289662140389069587408571386021379434351564451327834395027642604177524010439453102173868674935082977733673334370790936635939600697971051623029211788917920414688299917674035846676708842693916454037266786365866975939368603767516447746927967336641144009909900353358641997974177374063998422940216718761359831778404663943015012362399848014568235142676774750384919918559129239005225311926459033008841703470496185877673933670947407306978315796804232576901963012566872274854151305873082014472977947585745915447101431108931189148864927760078055780447428985197047315175825472592287487337184895228736086388768240414092660914418838611903784751345510298252190306623385082855246054521044822444252219061934996834247266295458693032681091920988537975795514890881630333531910662128483416997675259455219946383268216996062753316172421804208025824157811435204501451131050297975192150962889183451236147194386327032992929119675460432736310736298407430288557489880180895380390202480042480074663699118990475708676969925731676852481925786709016562819841947137438221526268592392705846642688674710389491058696123024782113369231261318545938983524342768292149206913442014488380497862301127465665765090655209198161982919230425842411595481839056050740632929802368937569390912324726838457652387301859640727449696617920899201287740825908214880669573905050353077823857076716446748741059429214984533599126566148192058930116749075562062430700303020397040728308618371595700127846359430070020951388823804788060716389207671678445444526596059551968100810488570284127842272815013181141071060098142148383891605942246522185685489465981668039058027375843757556672458647330650223791764786621333882657148331580763250227896146165553565989535679251137421733293929006340376947665699998108356369565947902050134083872712289132399395308316692756767540672334954288349926934522083700939438465148811022719470101716273871512692880099864709646325791591151273148740377065843941837042675471820912844982655054041464177416434417009126768520744529977326586259723413215062444827915196252696984655872204667085795896927796500402521370796760226505619798462625697884771867517284974749322882559843845729361975323562550722679973387761380119969377471088455272798676653403035220507210062483532707349480152912528225066902295524481475238821527392554051634675149407643492451996114461985709532643785722641987627493664322325898299401773247856884658089136562410566353365450887254236394817494921843121324325081643029363988590529108921773279835460108474455906679074597541283833055424335813121818017508046905576684613501954133837598770701872507553958691357950830123808307783103874048260486022741262711842815857695674599831468169692417580156508206653272112221683575657182137775187221491441260575331279714286429666003717075928604133231096528767863325997243496654289111799225053459172956140042749872727240900846669100347298419903204961265828618888087340517120684432293389318553903431038313913920297103059837977596860149176287320130479457506952264385677589038725185282569757612325651004314507517934690053152559060100050204726237135070957895448335143231024447307674044009846347585358347034634561896487543826857371749389148171759118081413122334551926649471717217703932910749501370023225293824896552474395308843166197479317852289589222664549824573443346170245808019525388483695821154066839649748580688204526486049732948384339215503123994760232755797669575917410669667510723963606859579184065677046501580497071684065941523290890073172561256670334631584465511850361483733977127344400083609530270811690883968802274449385423141277979861017656673440688206659961528120861660779333706685519827187974131027115368679953765556324802998062004407335370849901708486343870394874576118433255740583647379376243287996864787540231275139175847260908784691084026784748365371871779440023856182152479357238806619996823584334680089132631709208113544274316059054263688406585601748991567501499604275792632841859355298913652699571902454513117372414541291650105777693674767513662364879710562487892110947191036901685602805118917642582742821981320835691511147134197847913632015479241012748068968766832890893454071579358315299772984402950985158541245547273768637698620652315372590247680984656576732908929117174972149212701255624839155456325623486433676751126953244111128627370105696688766826355937605761607544957619186361199776817088309662517913435898408469949380419419698933175212498409290500833870247930621958763264452229392372423945248831181199132488970563202085264683147797331948066393213057599786530792219584278428621244339078035211825695264766477895724042743647189295892883338782363447237420829878648860761154048034854098434507262750722981498187676578857566169591545407176875444094182613402531350048746904889009908778000658043669217690061334036818676848900717933120680902101075043989791202354462572170213620361705845175994151712975087142304190924578380790154770914208881167996487064347994037650233280229413979302769442427136791790299567495314665707914835054505934859248948936730808949367870944336912462163076861694530879533316199274295134840198831074340320331235505374580158351611319898475528383308585616542533788023761945898177811525864748656848825651915146875032010855390952799791844712760464237006787167101815401594117317227514340961262014810166177919524130297781452984194120724351098422055554421920378245529375520432806827465900979662310914402595295143382708747178255870154807914182761873880336163201395198230367693304619327109858511766498665339440284775805956381618147522645409028543333968885308050459512354193769450292346654596532438968357379194069552597029208024399484858423428719057457104211100983400878419383331259060483789532695072147537849308624898841495160626272255143007683073107569902073643509969250870764632173404183711431391826282808375945126477624161265116958093888021061442794340612904851559015264964026253418521896677671265311452219541318067602851690518369618605988281246853205796444200940628138429007867504018126545601649711480998306934521134135408609773733807328518532480223515786959640126375997798093852978040133903133824183829477707700460611741502456224767366604191905490171384551109248545220031429176023073065515270119266102496793708312204412924740547371191621021021111769387987715250089277629771686004832930863877133680472609754410084002671816911984438770320229175664836561869684255738563389780087483824125425581696899909596889887247453008146691541999672966706257426633633594197667457717829040918316437646461119981499230887595811715406311084649077871182319319915189463939124369262727230097988325616722864432639628038009850912399453282458450057565904623088566292089842250739026466225394227353999064087595933376586051205989670708231272416091414933675555901423645519736892933633603542865069476323275513254267009578376354688993269378866756538227170934727787392813551720989518922400164805670221111353634545786109924750731980893405814493658604377373522266445982763620120752115055512283132446695999467993174918034007618764132424623843324699201993998835925124465194677398261337359054890177269189151928864784099809852586538636435224809870134913935063182928343615089608979671196856505923260079703221603065975487213132692725050548866549772830297463995773384545624134366923686575468575449261733923502156546863779802998495545993308463068332857911401322080071710846169408073718745038140772427818758721667916593812128016546770896749165392307439505950612171901961943771095917081146175504598993330334846288010698575939789830618028250658790756224848766338525080602549358307494686674987125633634435936823127848269270872899076586780529891954195566270101091341188746925330331740678211058276883092266121269640267760439579577742715094520957387729715784711703394919807884452318418588384084684350654603937431278091509431428716638997051816107062715416273508298098804099850716741909188476229035451689412472574958067228876936381054307144495881188419337206684184296509169561252392877394296400521980770582225949614921827220220532164208839973645188310493090427383306155728306905065316510291071078092404489274013465367384353421444436194977972930736674079874021222897172241960524079241690292416707647798447754013654712145289863834157575430120738857250378248681058789857977505840211412817739204808135058357694069119036013970783302195650317498211059709760915143822353307718738976452354277419491497038228804591796934696227604556978591987648634300045368953681038274208226856164225382297349385698327042383202842895857391546431108641793994735010122487512388766869841557128084887935256649108734065497314140318306032392051047381076803017397519302936151843881428901376995269853324277952550338310729656598260176696186954801937653379283105274447217472852793208202428123241274691078996399548978050885738898723401327433519786804116324447061257995556373998643462023244563090421015315346563673995417847477737836537860722494200962310760181713356887685922492546848304414388156509784831033468444657960701695021890084941925460791805879379156897405361378658326248607204788630970449729863490821900883526785495225836774912746391612016627177287171718522332658435183856460031588096106714327537943045158432153686124635874208081238863237038578305756858150643602354441814325329434279718305612775680523267969805709833304048052981115685148762843996934013991485384652532871830893905002265137794036736273098045243001324535758666182067421992416075052064890016078263084199367235694699422093819041825374521119796415454608559263425139143469576515761966055674682968370425639237793839900042272972374557264290248979120365302977654746322342531178647772561237054898232810579878010269178763202185311075368789046375250162699719875430914244596293188968504744592310649106375915064223764456019774168595919765384175544379331553421704546153108708399001000823727841642616807711726598687356510160723798907490427103951260554022715105751979049403893981467468388350947190217796352912584641358668141277426630758047764473324117307147007399094306725311230199342879034692877819859925652458335344443051307475057080406102820722226417267455126829785613019652542192138138081036261674244762025535812576882547268354394184385455494678153158058690944109724830810600230381678060564899439914640684501181255030459259011012726226710942662357858462175430945693336738126587901616592751422703157506639213615483616840938848504378420671869982113022344780323535425189096933520416710459692226743619734356988840704064671742541304151238165352484573824174147672674262238486361121246518439128599234237082047798276300453340492140983692394184340380728712812473454271901458915420402184728456847947517161990590317118890139894923791609789047903142314491572092958228957212130263629708822413120979238754253648899984881598232612965090386042860245518059691519253043384398928380278787083145247907533168863066228104837460671867726493637267104652620228661955938244919022303145950943690402248974341791238421995223752866760231645993368321791829888757461898425042022430299863740139078108814193822595369776762699010707110846235686942356007149570946331568087774166301207526615439531560665086099290679440316162847683003993313176166883506611376654671400735419879292391979945634074012197799355507951327090060443226226428650915162895712878087217653426663516260383230320194514647295558574095315609622797146047615157188313710460768157851560140951107441573119930898564785678157744487496309427629827587847159866478175708496260622332339796081309613128257905800482312187083320795376072183089945750443988764594565512815253908903044280242680010559443602206574439922288351560867717384289452047667011854081702397241418527938523293497738526551062956230573225813217897814749203530017890368217960725362176800951345553690270383600751381914365922480921526716148980313942301793562573847482321532569157811328778984248832827695046372979297290508331382194629642742746849378363358670498633761721854751338578389467679491029767055571575882237509410436749690446066502074458858614993438958235751826884910932864577269735105942380537390964844972262906185584280877039938411001753060086756363417733283093396659800193975056914191286963057262179503296626098268880229592735255122143161709590170363901260833642967967792245678237715320635148120156409596651897690630693535024668905344809373580040963039275330029435661520127911432714903245234346388756305689919977517325575772679162215412850067731524043361850745457559165412468456284066371021109239004110749166489939119753544735471874019123620126161800498213209463146486865649212864928296486636851881821689143862126092848793078556042203043761516125979098365323988606231312575434788744685844795115747718433463843473466040459176170964598799287342284285827551479963252256205150202123109154907994560551154839328708065083254905251202458406529661397570770897077011418283318875674785937016499000947491884738155226419633135494365628114876366088024999111760381653479319701336443969741945466170415375717485547054552047129329757192438338738051197242599325082000375529677492982508262821453590208065361885974815336802156109996496839140488913937959687451764048786065347169368801988563631238498585425820761460453270878610547001613022075283572311742384759234689321328777834974626485132112813527395526132518888596920026882418336295724880980034642329723120492949611495315273085961461593748366440516370508135589862642332096599365915704914826001368693275282676973811593901647708906602117388864733065306251843272246234575684078379565605149551517114064529373173070345773222289054839994248307057981391320362820319120772883459588470361450410876150785855709658420450403436466666771413794219082886634483367912575495962523381332884896046260797867432448336563693626111354645720603136027803801162267887256475624507787035759085374906765199600908898981852318712290791560867419703658632213730041429330817151239330182033660956044331603101309535942033853356227111749690180117562466074771389599755229607398688776878152423864226211676468200804108832469132699374903531272781630614446134663809663765406928423663525226079087002208576125844663019172572020179093156524628011430766618753327980183390247836256688643442215074485271836681172550525613648343993227569174082629610748047334475439786948606067622210851779674476905154354855598510287067130888782722094211924202777713166771006167737622122745643091693748535326187761140922425123721306248963883043287804591878267367104388334185719814365280192744411805200390493758619074587466124312202985487643884609084140376883996227334657075020475513413462328415950599635552267831216384888627303256902658431826831038238356038851564764361398981934008021567069061278338705423055463431475002351522454990007421583956135005590215378760682693961085773659226649894776663434370789564629021576068072979736985928453780055233526372970506720103110463975628116262124930993709510569585873756464193175987653235288067286073336513517159899023505015013734512829801534473062819295900743277400580574364259679357038016241442919922639835455276360397078789508870050880948251341654770803299735478053160262859888048146103835919848826181079039515751255908616389469401656059032111900294512187516818670066787610143331009604402322310087227840621530492059239136322586620676717726129433493375589472426636153777558652192114548775181355702488341102997606892430362590631311208197715935675553092071141091013235609759227406576485120736859081557699596461588490599478293402053542205010512777636959560771828060417637704912141779663880145552567953738094532367445238750643402174329975209640333978436734037516711866322349219957081385825288570030103638682682309543969394832690808329994391889461484476669893298695661296254669137789323142888959761907906349077679020226791988201875945431865125816010261878507764912491347968907355002131119100675154716462492471940955548620694702990480047375173570907696024793792045562340140108821762099747414613187641156750273707158501153872377114657704766013296534743904410780226219077787411609421777240233487949153411778369319704813286297600540355629722523734836464677271769252253266611043039970640746266578342001139029963833694454839565029732115529253503159150105716716195824397969878730685307674356083517666687575619675960854235041432006246940195272701872459738719862025771838605745315501617641000538224383119885246522982432038312786256155861457436296543712287612677101477441252531446871363813866680366523828436535759509900097099095801232728401026269216489329677697050970793026796072072238259055253171865951558937068809462616480191329766493139289032911892065744196940784084434270057156438602649553525682606243096449671092248565417275368619548736591594011284715325451984655159428763827904323614104906467842860326422587220109181910004233615552297644501269654795452962316519902036112711740084836341828363370787091260101951418687078997982426891136076730247226412376953130959149116378133632978099414961172144652747855666568594914780259356442997431837999155553438257189394295164869564811544610477726969483349453829942222846567942955812922909843029081704285617063225708707298204535578121958563459494599169887460631435974239909017104293129298364776703816630466639647082850444265073355530750317803022634576854196793380457201196644619778196584595509493351183523996147212145616162530576122302473699370861141676325315940665888347076459561643444624496908168708040748002772134574826268509294135579339403342589402736104141364356121845459086874383273351239991238591305125053722761707453994924242052038533283345584859116833955863017724938464081772962632346539876556297676496984343849184495001954768857462597976206731368322953863577737268074964474174515570220382458053691350340488585424347253334384567734273358848978411355690813039657710725383818475161286289962493042493239523280708779986033774392829329295231457960437526121418808361245830209301540686114640553800968884732816689669208622285565937957430438734767204209273141788924728995106525891755193251082528940970800019450286272901075779561374108123554329111452154810716263832142697296437956632085370587174227306802847204350817091740004342896440771935427151253281455777621196181434915256598278576705238709193031870028805567347780182886657903826714807239336715572466534898074433312461643817759609051502645108333356233567385699016557760761330416688464683943992475344145997908231404305858229175159071193652804970977404865028012493299376368669010560958042718696196170311732925283088995590213981637669705552152070474625893251599463583041356715060383341629605238911599201482142538253025813874878047426440685059445585045054969381418553049940232339830176913586732672015286901720694323639461518998226668630423320469105113132414005848473206101745790298396650881702006423724917171179708055924105444122613072705030597672711483268977735785099459847899521068349898527562411662597760426979355548415432993995653757040963302117559327606358257688016967406878069272223952771122036708687460228031817084694820828424271613828098807666371231782092654616468020063339775463211268195892280310599067803807741173842162620732619533054301203933063349308087522468255334474833808154764493099698550776138140980084128766610612074183001269699221968728685369980287303818717188907574107055875723555094129024104540377492959432376414877036155742581992122930464036238388385165756260417678433923637342862131219588049905374861219514776291822959265052596272428157882846613041460044920477406738477077107185557187078881125134352001465946436325435866183580952629999736053602802548931093754362537700883006355180174937324791034532676551822367914619499801235478074879100508366782898672535022045733268099602183377142872279522209648474163137577003982297752661635752690233827182525367535704952900970802008499329246816656872515589666815489672345027330375689580121317104608396895818376960303379839767257006253667031164734388087335941452989595176801164697264059516675832506842939001767972168211240182469191790685031166424653606941358870695121821055964945331804595816171688719817635136670672226412982397901908513508897957055170628152094829519692495873359872570290566465466932797636782450283055699107835555082168065691466998986292825048156602959346347721685869910746097686222130237430694695242475045358843264270457265652566259756127783156715804129244283355481800110013396022708324121761123701005307291274177317981936614222496796404918103246229862303668777711594469467481528404810403212447721998105898055871605715243514080208437775833626729939863138039088527626339152601830700724929699439495401430462190814445095151970990091720423979870868914807279081071389430527711722986180654059520137588580103148496590422292271355911153951751585221422411199419379518383795998785411305681960999672164730900605722377675292011722590945496294613997396363861237550552392960473998207747225369781782501463381867206819692570265983894709489561049515722949567499731534056763134524790888754145073003899889734210327883546189213341724081024557816790135443461428035619917991816854454558629340523840397125235005017031395450951487246102508816648142900694166672320858963041349884140716343999611229465648879776355633014810327484701248212621900159412767348628138998233945461409939848603155619386157127885916695076259184254645592549279357337008639372096443179516598252379229487520292455279790865901940746192195849500104477228066049134088902616808906172539566136449269600578836965125967026991023554541466365757586217519785973083522479432506044947388344421540019935013443418031618992035716353763843681388680158451629068600648534286887774782317396124641723966431874103735175534347095505113324654920830808875546734387247528214896750731570541763378389980092592403383298469790844229576445708904635065351905108932921508339276141819102191848797943071156723956152617234580747689487487605684543932218730623704365858707780408735657923816900893404218304996621079529321509505011566759032742110917559525557484385992600938666190715850951875154794824307547629577947638506732548404499491631959858993797497427670848642300025228342787398542958934181269249236873115003742835227134577023984370662185737935177123033571426196372907300239571766657873866232980746544130592919159923942672888197817603392124325937349668519067906310930009250181687229403459274733923217511319456467771291128576043478311819001178012023125400448780283471302746114630094453166333116700321504724875070505896434688150060376146003526694119649192144539480108298913468733637012774126213524745290416609189813014148799515807811247575880689976559179585156825306591679845805801735559863138015100983170621617562677928058805939822507700371206126381755998857998665390359046524104649008684627168851048856123755704646302076697973651970548547983738284472716784833946370361013959731043549140192472894801240709496449811004174660261083405598146734765697751821230254957220480595633224961231756429373173778036310210032054206884441759547137355228631348925589176560035382375664006743270352558504054120614509351443329616313323532359646912643592711091884437757515849019084166601116070416584378056705334438788248404405504176598511480632912301634347786267268688578555110884327803104374532707896245612261423348698575879029482456678944497195658799038184135418377423165977348190427121561334899126674265713532207833446056875260785317106294885599488169979360500998068847266925288725507685241075310884718891094635042956649486341404725500547692429907763487250603135986353815979317251567323304062768704703005020784487122892752134092504776727864553700797183063491274154045747969910807431993439585936177480685462570426407674449761901660362568696653273599107239428056855819380116022083398951717568512413285490557507761559324744576155243357292571078337233715822342304361359736860316467670069082146805453162261052532956679294816521543674801273098216926592611610509585314931713334442688315773108823515802765757635487167159775109383947699689960353040567338882462469159316079990031969941566466158643907688376325115432028991835402023218596472243966876122549053632115910476180910157318843041470527268365070130006578998014267869394543125303816619862207359751944985428791541260646433850434631306025997458144195778499430522570706765355129698454447597487584175835993989113166892392450805947502563806844406835489268298646923009735934876505901888537222504846514672341135739062908174886809815272412825513012854810884267773502181557178174197346003615498577813665042310435151243489820097102734632352576079720642859386906178452548470067436029747285478548882864788320776364566863564096770594692319418930323503804538656136283532926547110680911425186805657795797288836655643707803592118212270361249956007504277162779987464129667864803773665155400888372010389572468047063053251977415813321520679073675958888356353096093081520848170359166020808227405154403161679043656575830999281377394511919893640295326062972687929124242490582725801461106022438765160712296695569670017263996173992940172373016890690423336742256345452293843204508556215225519674176891489201925374160779248838550112561574510884537814330543888000791750519626148802633084202482398881275753128222055724801681182261554824254963317183337897052483636830606912569957530128437889030550611352187216188068762819664287184461168996883883269507149041901295386690883568050277062260451536614822155354436796103956162174415048123805598198238469326413685786816435001525850886012428053920732460582987731018649602961207871616463843530378003171022066398362079932099665479754719761392089047113345559778943921957323326266131248944536545234227818742619174042982942073124124314542937537062422721176454486886798389726938850433842503273590098432388480363228026682606987484502646186530656053734714410963345038895342537958384028216418888765170835586781682526230091732844334674397707745834600498115457797597910506321137989229913898054096240200166964263781445390354005620033901634776535848014741682114019352968744304434892065574949752359928376413589170442597984463372550608468756912874717572028398862572386844097944477171700715524820745598589731891981730989223665276488398572894985369179180022893238270995197373700446741061643310011670194272013646458422746801360885969004242252985535276133273969517554654617719634106374528301169523664562863069603530737257280284406098612547660442428715912158640006478110312129025899554315411415245435373764073904418503307136150327372516092302785873378492025775345458093234245358302891574716600326788981358064678825639359415242994922409547735836433922773154923552054399795401177725816649933610950755294784220018345632944221061647833371911476585729690118929990910004815376170972337214687638383908542035404636307110954684110100579626385163679878100724282449082169741839473410905713275744280286501854968443924090391473633558310803794038559034375044524627536052444390432306207329421514205904570625410110127049622602392616050751994540356479419167194544363364271186329355171428662231477859744546539151189989609440733542380100129359704230551713167619560959674849045989527158774573868427394386525514809701980437937079315670822010904850373647471060947785601731793067063056807633971579521022474125927109123267777831771411551499511060478760271639609913813807718119652929097387049095843996524849105468041761905902327233398651613533333264513025353929292590507785386082026883307085594621438623991176471700298022333660560269931327386634778042055503857033117757564219984053102228012069414561764208104451695504889679855843404617149057557679036895663943824204018241590195383276716506575228122835788808279031170089075766531852061172497403502096237638339851968962022679327581194025218898695417356603709544485773555348330264691731072753105030025919580849280946236983390964053411244270609130890897819845148855838632805813436180370993299152829333101877123215911253622819027470101728515935422004062432624071392756304085281666047530066584496677342333179253507433081682197844848758565097271623786820021659880130479453950291017290154950841857278520053824472164368380950681630965974706142970104301040524998084086296622186038676332380819613836397832398878534211716172102610878700651343133884607397601204061398288651155138687454714447033974725424874796976519193217087836547628972377073038971781870927493092312529083368993595816678564875053898010388978421277261015393330874491526380275622804922497080358823866678121228620909409492546379421772409258148600385982014430520082285543711022754576103397916172334422133167051497588183963699213365360604565839060554484952510797036618587166153199308146363956113909683659788538202862930688001114799572153163619398747750447089547265916585293568485856222869507470450040732369407963718422046121400341387719932591785318980118873315942436601374793499581478261141540206882326302419790350491506523883476842775547728927947420246111182124121908611818722301241931573043691421118022623422067030374349373861957737025543694533688327223663810673621484022612465479649888332970208494270066868399038873959374681286605173776693092353704693206628698965561916646794454919581138226519412953284978493860948908471667114593460136283513849636836780449654684001768502363258429583205420208762792438595853204256824357747783802170393540045611505739512878839759185133023982569409597712075295468674101454998302065082988896427881896724151210345486520849631925345499943992031329419450800275638842942574480334769816134854521847046435338235596851088464858921408275185577500041294184028584087531394583828341752055005795262191819326444624521579172480644096881570343172904804472388255368561336839413998193859628621811292910765175405578252817611040191651919761930842978330949841933380272718504910915031717707464427772756466281209644090909365346726701298436313883763196893619338486608429560938217542996720343254153438879512252238730008518393588878796689972362092622733275963431284495889720561758205134769622803481035841999213304453495536159493037169336348397920053965661212623528389716297364206650128580468643706614503112582266716684857649950957568215632046847979322809926749868923634174346853989255992921950136749251889074267599508887591726798927330425255941692571943547660912433682354198208421211288048151332113583939218837589729218440607273106239932662000903284294274659702453159047831409470211117145206687172777276891638460741980286640306749256620687135558171592323721056471599253929392075419615721075623883767301115001119683751976805490608997013434540574566091247492737359079736665153076827855315262828883871520710956609557042086211179424196827470461174433314684666285078459368765624218010880658648173577873516103565636695254860112615246526644813992591845820036913251786553632496319697309507500080927079793807986684383763542093745031871697034693632808710883223924995216704429891568214800574275836337019502552300498025035694916677030216787567552484776929402618834978883397384498806450155801132734507603182001184479589700028623494594576242601160029840804703769114471159434916497533726365244946757610776945746848169453965096305502244334863822692128509145247789253311522788437513749081516552948966949014588135649399144875761938346176454749176641391769765006635445172510043596737271315243644669055676700015764515802671873487817012196491205040468520861843936702276420626417153790396090493381578258584779512193734413351986872612961845066732595402529638422018097877016048377471197835359495784612152880830624906085291210695371009104945908232738491735528091730646825950272572771813223337669881309676303701699529123257951896809224676862826258183659274386174906760824735994222053109645107795806332240831834691730671754076256907686578304520471943867977847852918161890671740793871853327501861287650830202786232989193437192403810045678156011814057635363771985506654489007019246796196322939364797260199783454560968870298735526530608690654577029558548871299346965062546907311565789024369736579848078289649822061368148827792393944027102561206887503626079190092190715650548338164828911786243418956180600325294936507878016214016771747922271883276824545983304572565620936081504122712770712650935812181301708715725058316267830425077487787300644481779878270069981808428197534542440969289773307604631281686764586352431564241361087229260188234227402429013347887578338289844033324162072549832997135109340928369654524199343967982649293105740059720721755667653327002070191528882905315460465804645962958166139156156332682496177437289547607879427073068032986525623953628146342943007006882378211626660635939350649883604764848133013109522828410721331787664550536822051737488960707963613017464467940732716157902094599738716264653065453834919746638444732054016785743634789994374513981945926755609026564201762797133705897027243751250985881198187869018254087516084376440384173755769666951664556249241308160342407875061429181137708889767023655577772871200930551491928157426604509310703847912962980947936522764132725101597857466766461589427930380718744665176100916421596807503813486693710591104005892175221131022057341778439350397416913548875114122967311089386223171058512339163710645627703804025589507876747950651231220299636689443426381091719564989730356190023926276907982720016530106584890632348897253716962332008578391175844896306412984718038956536698882779216487598936928077834456345909173114554318563452981306066686487320095371077829545490236410101075796117806719764575414296092626771948710188370307486235381962964279329963279759314414817668753294947519983029624904228592577019298009010921220870753098154558521256358600901406743627072855020274832153399761315761110557714696713882785221212874053258465555548813269276496748908933390955287518103077698674424705281844627257847082674303209168807064565776794308054770295762234796574769519222437303937352570835244175471122295492704293494248241568870190160300009882146303236691358866112408585995697326632143611727974104576155332104024368905049598136249317982554553351695879141550288694643275827018399009455722710194887999476439620942819571677443733471674739460776319211335731509054952868228296757112782405108699366555910187361933116221466159591435006305519375024550007031566365026262804596009450093666733742367942622557143469962403859705813544601252190181069179139354392506203224866788956720788876537217881566489139653335466660119324958961766165971142945083434484498721628585678549740635769080702344605847744471296428771357834039162788447249642180166060009087127933869960787117166471479320424762782651205914892560387034305062029583417349157988758237951402211858762413902209125263216322119745961487435418537381305948560693778455441886740222171648532854069576595040000113048252869781640877688073432901269075847343047673677983778524222953972751322562253884412413636911407852972729310548889036306075588104523975039982076046760826945849223588678345369298714698148294458817113689961334210138101471294077507101096493038663877574214744371407833138720039981990579347978231539485904496222804997711443919733507596111498166036153356412346615227714400592679802712652263877654660541375580193211687221785485038965498898270111258096493326777260023754229515244654553761187655328681299751789448464282709761200519585129190087176959192561911878358299786019004850042964829640268436550763606499890977918624599770871803701260603579671300733958196198279727955784338834667902760631236265710905524629013191979947443069267880204000639539858043607992324115746733820438267944210081725525243925439034939891377144596176670124972198497518187071578735589489780633458934225345220600197312283049116839889681670694976458950428392536652814253465126709126350907439669936387945906045632916269095078114739440262378067478101422014427887330580311657363035492139280389492197561436797261607738023808489258605087529232514448163045124308420017375384168210457716490929946897003700134703246705233681564474100945907946868281068220077418027109870095948610292376469797679369115056067968484968063333299632637687975438611237211773283797061305352821815665047364541114688515343913922030081720143441436286723414297704925226232424545975489148555168485743531913305085477888584852718640744283799764857647917349849806707259992804494429218787192368939048830360561593271936537426513230587372431142941262790867327350188049147827597556426360389923835395763298409537156843789756636537870629964854030492955667289988645034662082291382972019726458969446102360469499314708019025584439604368493385071818919273368018553196472771972172447200509661685507268046078540552651340968885448488505366902572045387964691322232553159142854991072337346864144864867790504080210014391445811277216184322790563614398343625055418903562633133767164836342631110487219800184969257014683298434742181132688984654772814607772893373577899358225172471746305068224815598734965544356618011245992264930788531772066427836118260137201537785189795606915003279995122155697252540858269215134381682585816709470121779089423938412230526928102211423208148312209835658926249344487001733987744923549532849475144749861987579795199511852339699101410014247399741733110795604652869345497677800202932053331367428802941301113156825485244053482978643607952108677433702795169678557882786080051155262577036647763555983186974455128867988731906831977282846185223127760465330754946226413861418810345027198638651265706360013229592289880912464115327936766071077918698962619027199226013555269340199348181965817746598097600169074073388287795023460423784496769017353648294694672588688667679039609942187283537292909503611601701038846870236112326048506269906741790888391244900826411174391441509752867075830499696888772853947867689880985693384831744926873133545923489392084871667330484641137448493214233124658995035258447814810034959418488132794489310888354766182453755937494298563663580049243460074904042248889507087096791367035532218860723092244141188975206421169931617052115243351522959810119289726825064072135012944876494580066023632066012129607896490653369216953432040134286240922674618306695568169801846652677315505463340380363047197217988631476721420145184179815793588883269750378887100965484528301436697248991147895206532293084402031192192744097476550228668128676184514073476977124991449899978127424446306726674493833243308958074466524461005168544996726501443504791606605324996872154806691794880128851102610379927138132410610110246373126206484711777107391307809471690616112616808838665199770198849437740499884283122694040430418796890600722121489631243217330059358649076273228581789340547556250701569740208852831068389425311706943959468672013152490486612590101146802526441619737197722908513447278203281455379285234454590973605607498130727013574876203681946951931622052720310182321459925781080147238072262108184746058756957271194216884574307343110484183402338778568546783639857194282060220680696253246171695907831892637871890724958336138815318061976933527564730826422775374179779076035689038233492599111945095546294153392664818670550417719276080789489407079424227744172437396912970252260038656428710587783289184058026375874147236942030917549942127669543312941412020597402888571499199736707147165513597236286799450893516212357852259083089628341000854347469327544479978387707011800970349978761935023922066730770839688068545843507527514629505415817648082906342627785695714065100143912945175757551943794542450279156538775956931850000149649914930645948125527049363771690765222675374100151688471143357396098294289475183757086390818953919749768629457646398598418838534644633642996285249656214173647845450377347681812879083763583663983725000284062628928360924351495233412212866879330685067839202065188123686595000501756002202571057173159174244531586778024622434184979628194006270010046088247575452203782252045460619627146972447561143517605488813534865002827133338269436706151458323884867204755453515247282589950275050928013858891747266914986294126948628585885461666711122380841493865602894137816348657571058293729827635913909986008990891778668568041363897130800203233557167229302895594382545682133885714808593670686108145250839915455406703507767848906682197633483730095754273528087769483769074309505995414014451055711385613988500880003705194161951575804444868979649647657201252696084136371481794404312949923368459530556891238229752387886269872936527668632380704881269501838759717764751428304485119410108574539980722253741435083151783397011095927035645872497448273024960448096463942590581928105498958754216060136634003688791544811102077189955628335878679647660273451235104593768560279782926913261014878417789442687173773340334551253565066428631992098925031238827091886925026266017026241771975911547074567301763907610636392795608503943521678643247151873656406817635039820828065704523610356946219364897404717291645862021274048147099600579869409727131035928855837236308292786490006195075753645918079715318236217715193487826675705194221114947472328316434554819156958135595653930672621076912038460920173659164757239703056111817826095153048508523277440277544670158040859323509581289379920869571122777084507535705987998199385433532432766407198149182493508913961117347488313771620631967283467859470605933338867830382979248238026942625433531308149545354196747363248120709890006625018499563737795782632905703920631399800594732852557966402245223259078818709242606689999579326725975245898413355978147383399236189307007447470099068259991894083435855566329658306549053364024987797427917094326405264939103434464503564397004735044254728025447736645108000272840243066072103328288093220098614357389074411022297656181592591271287491211361237740122267966555516304768038067052452535150473255290990571350058221239220027159554255549546582030806309933888760920870771955108448734115357375586013566048251346910358687770366294807730373922996980675500378995834772748845062789493701831647932268804840174430096796705462248993772404224681224280912582077624534403421736748771543935433931035735745189305796477484803293707728594599415996889619932987484298404251273431116549816171116227526717171328171503293273088746718128387813926735784982757044941494006022907588944101148622633253076530782838143973337575337076266986798021519661580982981931719716246711854247993905637441326905034737377672716806691004544862855401448638147221291264923563765171060512835695575425923656104199248531938427932698853152222377220887706773204741867691076562167284580870338804146249954532079095179126350169548223985468443627357424655862520075015100086632484358228566645787128788209586785002579165554327004834858138990211150133284665236847028235884925981246697437682614315654470543054479191596472884624246890878831154139054362181598114643197921135788730176708409318383858214953676995050145923274166375897025389589143684511965341560380527217580648126763503852473667981560812455018795045208468292960450765783161789738227743917647895230198389680716998155887021449210329961291407486101246970586597364013051572970489333808257310524310438013452001795637786875361144391653361309596126396732919317618030220292645461445330866834031630148027120109321640507198909589938505203153573963736370380753978051108115764597721446715250639538593729041147141239895244607886010995429722626105006656741447529632193857918991135625866190879433760903087768273558193431956129508791658489537140890526401774134540868692035259035633323884892768517654972035493275561146640493773432806872704201219924277858461821861356478156863734650613927037292809555834040255850728580625512306309140672901422306705384409974683212143294438558700049051863450751205030628929764914954301008841516988528672844638583004584104505635667037634691004778781498705609230476553470953514939389896654224885153280250989558054651002894640040581367409988624361861297142939659886499272435380632716430015525083479843662020760170059627663900319412305014147092064299880564866022226821584883614372866590820165373234380639582386370527090682274428601257867103106791903041661651828119839531680977714785661591315839948126364421551522285618477926766097159007331118373563093951598356582006767484348871186055912514521776025429574988142656365095150071636232451235448332643846965206671560845473033467902349727144852232376493880856954757100751386199228713862496794107420831255506716942207265483224300986867378698657246666954348961183245274711176875826304280009346245824997816161790749253741449657520150581069168473793472417019845400305276889036360335165885577787552013830621373620036604065761174255897822107170970688627323271924950875191633318682759383173877915956224923490994807741914522472713684334730770412244625006401319671608824682758007218436270548839093725471052980640996209126037513221168883714291413102577862129318474758593209544948015931003208280501176545763236040536061761244534349179042192450959187531289369161525542346986269082511803034807909519828997107560074140775626549110116513957362373934646238121084167067652383350606766157821631173998721795251798942341217858508042371652035299805972292305552453201297442386192812039423676443444341118694106452906955079519539512771651765511142384406216176866020216257663527541955955013079168697485342058679918267640431596639743165375140283761185075682486327241637498208550351843808832000590691424364181820346200696926552385133147610686183694763052629411712746782576067480958362510879675583046549336095721276281857901223760306912588158391183452389293159206926128469237574210774755677696055332786944249805477818887807361910230208703441256466487945528120187312705404720197316826290604750916563722643491648012502971466777395384001335169801239577653578180785803757638154175785102912250339580991502307121515529103295226403197826270700501929738309734844420054030020257454134873266528951376251062977345365184952718472327834211193641734873747596202257731025743802095192591232136077163633907635009401454197653244482352586277107953614972691307543582193908804198242837002279019443657952372158915486229267949680139777121195685079275300746892533106160451259200451070905457486734937922632988118894652450158359672594633076777028946625573665803187107801420170194151028262812181245826195332751100767117934086390329356358020305681999856139748137193098004139582893396358195899227299308319991007923315113735599842890205186380677116768931018607370969743628435750617260031199262044814935662284398428151510344791674754071708817564178505558808052750435262882686243452693987881416009419088135826696297062898056669783664706112133118868265816850158394809374942485971387064228598988963174494225440815630656489325712400222996457894920786670680150780431340830548183840325053427623806801990251707317223846242080582608816261850690412444671072120640639954162502322304866189239074000472824996791010873416435954331519459678785801481820805466751376747902024496170612365449512227192463466412349723631211830121505572852013121453150907765236938846089319510957604684002399259900603366561770312588170406953153304711012456688490420020681879893692518047634548448731302360840840078199424514353135456156075510102506091119963707892769488466661197460298779112976918175981363414612291316239812303915292386080792506423396768780543768933429586547371707576609006287762279716358861068731890577723473963703333168016187503023788683920188356162270656314125377111760943499768145356538134773606117925853505148844998775670500833238904795946597261404757392514285863035887135005347691103694475334576148325905647466170504360678049548415789362692485470198522619824966304414270820842335416176232133256066968383260112753276581229168476763526934763135160450766742475352484311322082815894161104381067831598672329420440950964566875543401652060914667897578557298040694170453299577758787657318844525851835636135532302296407846798395633448154385524685226370373597324270489524978822178476758615593912939415144786524039404623195115063354947156495899237126819281861879188948968039203890563748682249134010227541756881589364172297267659917589698317412061006487739231314640381265385172874895270190253237684502882065012622995632290364931551223738619178907645821341565254392415967809662758805302094620431453380055827693748920677628985777657103065902814412100450918618558612141017949859237921589575517603076630326399613108471192328371425821244798435757911545883306127749466233851315259710869481215521645298023790397392756154722192771119091414360795674888024180431572937095970946631657563751790569383547867326105192920206733546302341653248683194560779439356122040886461120117023820944075249837121600241036777401358665743504866251777060613371455535964172032277688293746929489437854821409541547598972961058757214678394353818412330725540897079327219237759289649683506396402953034307219924683000573894153359198598458099604490106906290651743374394218233356186721212829816072287526356475629998014325063082043718790135404315739846730961385374364247694785957121578138153692206024274812444035264308381419309460429617653249302729771841002784852244206344895124540686942713588842934922249838370972187321552927963027945122123374536086799607015001027204926990616729604881984786388783188718268497959148532302081386496005764823796462481464667650891612251004124935322121786157178499668405758349350594254662224037285477944727041904256970583327490923030380966259258763870100767955608776332500742618410183714757902318162516800968925900450724949077363636892838616868564479658660944245209860548090006658112596522354135841746355507892434755374207501677457901308611309668396130677062274886641315385943112739576576126418166792794024316800360410751041212888365472993220496442801491850527129662828381515797928170153237208081568807769988953468947604877828358220890498923982496096718069271772871690697426305761133534843887270298269235352205646661037269574644535126751998587913277245030315190432859958716162825663778969663847403262789478010796510840887581783546474892953896954788544646215998717454688700554945261414588387472789301445812862230131949317121719393390130873119163731571930524190915476091032006233115643238754241064246937551989875327641357390091741811024601178901052715875894147285500544303094971569172065663908456263159346778915389805371772535076751081433725250513091423152296550797662290905390830607428348230514998951635790462721891191834261395595600442204862625276850689802363586761637633372604331759698848468746758033832529642209656224652170886544158445772996881084123559201352968415598052384321455154000487055828908843675068401592189792168113188341577084435330399223038006751017027249218856999525692284932439025199046794278823972703583696079604028894074305821244775330535460209832619510258235618348545646303774865534519769765149018094691273000904445314305936950984400171998061200282566487518194005333938150427563468492977413071150831907282065989190564583684471630377619877899907739192276432168777169457742933846447735128039973855255563158386862384146860913749548750153731710958860032443385792572421989756417328528336343971834463032156907106737713996141552612162085734652325236914789432050655805624306512724458876661691383287551713826274604678436356251484019838059762002714360066020957496769112475034789288798804658421125900268104708208213426666898160509365043161769913900259340369932002057101253026037793405523765561787239102129080028106322687362979695914501578781285583709961070889801490551373367771091401663920337670435237886836053230876899842949668904203183445269582137086780424474735423928649958861593792106132321917730868647525876114756543768670673584444944574550916041706214197759039851313308615249592348562291938880721959525209074460056514521617179385919019209460174177267379464515641546005528873416973095416557777346875599171893708998641859344605104468421480653577557470712919086532835844227760773560858153043304927783502332707505962354965364891063101953506979062756655963026674758893230611577427628516824945193982692225283068836366147032121450676424747181631467779129350508443382689966958350810603791054738117565561213959560259501605978255383367166645949815330914838009639212826766522474532353498532082111109961988651795622494905914461916930270851426024912841722767714661786503996545293503819887457927767183889364054099449289458279662939643176508459232763622184297060054911801451265262922153841121172446759689936316467069370878785671369558850888864079519265097508928427145075101254389165210950111009891101792729229646118026714773787780076055485487032177684764828619168930261390463644691478853579637244265170522267850872957577795057714852851015240858566960884875667674994328320393417173541692859209488717834707298665110739681089739087410086072647480918792675584972112128321962242389628700000390187405027101152301291076096328779718071678379844228352856749432083150600468717257380604139697312294189670107674908017520906579705608222650108627686628362427018666872528206556174768096500834548520065095921059237952131914121740956179066014132609110087417046090528808903371420397591770414045967744981089821664130594326728614773343690982172939632004343501620045385625543941538174770758715335430759166296992498788419521164047088816465420313635673978931397722487769843077404889103452416981841700956474737350392097671074698939579950136379725284027716515971546654211331493267864823805489652434764132168386301024167081051179431442650159033146290649835618100697526266490627994787918425702923079135696444803143294343998264952709050189302118103886827314638641665039871149945721600908073245901790482899278658946850148381082382339444639557865937605926999497463277511834899736794265379141847536004809786304924572919613712022208768945660198426353091300680923834869697817062680826071575459911964493713155591993348370805121596410671556053596992179367985506631469747079564589222229757309032536482762783744301647340806812621665062824758426837734725880683697285699259970841340855532381416478836220471451749120531804107728372408938478914077865879323588837808703745466985601674355763364898124404317772927557226762561469248331210657069126177717519505877943342111373191188870509999103936575749545210741051387032468413453047401180225001964838731664427342879361983709556172357521596215466418651361918358021566562613047488788342409214264360277136913868859856209875270400353556742563678617065963090260754212280850282986022651139816931812438637484726206180999814945815342154383369140584201883231675954088393788812027388453744967920901831238304584899826163139386497170486834880567610125508660378298223224501722356416234974175399275660886033135373797266498925489991522064459302968663879844464406597610518556888085372979171720720102861140275868823773396725800681495524448376524764740113248931954957103033182452608432423295979735211468285340479400113684026752638739126962727576205832347896015375721570416575020201434409716601302156819686264416164770404798006411734223274925061082211325095896839300068969970956493749283136610734198405154371836701341169451246700724071373413841249210116258820972342098892929319378033204398467996187429537056809637683118083673598262115320839370193027655330743117376982651726678593520934478152136128138237150211029240100561506404413393697329262995805655429495586265197908359626395406474664631790624767751206895910811802154114698602366803214130110954755521356966731722056821607572588683343040659955083288878673021881583604752900630625916869143481711054936076028411293523038608908223113870014325368015877087346687758888590511921337367534264494099870095989395158636206391848336423487736229518182260260913478861973851078475488133072027663588086222890872701416504288541850895612107695818436880604938408823547794975830871873833117963051590389523047800271995638277522115542153690774313511520276265458211831531630946875401459867805285050022017394465187108909816357138843045201822512068417477477473773643785695482331940838697341325010743879190267034525837989445201660256276683506260385547120897662275158963531176711628868997732387735800372974107645540766987284059197101400190187141714149639300646501965422246780871743856270160390009136531265571552470381794846618535154845230691199964327706143253951549153248046003588007582775665918197101138938346831571231305174077111075371941792318042389705391496725857649679457973521685667830959111453411061983909743385240387123557562793065373321718167861445685523598333670571636720716223251280346786791801085828918130118244615549303060943664117564506742055097594381798465208426156298878369278987346171938527077925188749487814002575423240918925361642735082658772208918871713282502240056013301395239865983082272052282446206668794527115796875094017846253916812187214913216713567949384187363366472969633820083413137894718555735042436458478653564488602711325559435003704534074748341761651452981837016525706430874061658634172750587308391928034348112219343591450280991574591477849399824682851147944589250118968237031954721971040504276549439329715026718954100718478821915578372694386090320114359084003467765405112856626832386446907516218925218041670110424103925855734997657675992452352810269877821544715644890032127389416214295771389390164003723410107908234195043876730541586328286990780809493124976554668979511253088076408397044611867159623079002537915713060556604357997662664384768955034525923942877442670245262218442155993254301226045293653965610361572032484551590513483795530787741850831637217368774185318416528538084076325072360553679479726316742777501561309743999723235007691955579530364098032023172828925071231191900107320534649669197912706836715126167335170048283996945260846714113158881787261503488165284059255915456070520537232001183864852349699490510956706950645732185072468395304281552663316340853071989590614431435184246482359924243379450561269292430280047708869462476012886618232496855934065344035585551697712659806659117362396920452493858393569102204676247303522978874782088331705123127975462408975900671964472380571233016017172591407437661344760473319811262108114186193187558745178159773793103460079399043067731214808103686143271582466229617454956213981759461825161504744738912593082994463983737736167321983891413585232467740658153792211386259048627587535915629076053686832553465992710008913682809010492759834233527975004471674386211309512576230669165807331374407276889997551310881612136625274983260026535211853089340374890007994183626339662818953161297809978820321066519848790564434513576145818309122265913743250918282533127006321020062370860438029906625735558639753560239629447873149451159746606693360995905573171895338115807255458684097694916684273165585556489130629040462050396792519995858137662265878050073771393380423181238631550260533173881023964983879060316974950136121302243227380339349780372498065130328685075737411485749541486838600931777640137086554256838763579862407072760166960926059439751169294782917458314502011355550373954888955003778492444065593050414794064049945096542871701539628996900013696519389133981628652630439743325192113527280033066448727912444216609638486873801209060005985670264132891927588880002751171624344032209524757182086093641851307736909893477822724110566740914839215638851057722317481500275924880877382791673589574242731951310094753715283376904766245355737206515565948637540136265874133251988949456279527502226672363956924880640074563553685902020745289413940660859139247148568429599959593753640499749099967610020448057752479887816301375921620869480998825330998461827563805403957881754215271655041114372855569250867844382606932403265494502243869203783006142477943962363421827137251120215855238614468009295183173132953252136068129400300575896382011047816019413675285454077983890526349820031174508386193009134557018192385654015608505916680384939276764007280165778055278125382973673345826786350759683831282047710693622068089491437205607468196813417155042342862795954252590332540805124717554012026891967895727898266943771246697720950762758212775109178050459519766189279665252104076560765366828400327188813215243953706519359292158499563586589997366316026413296235384847273950119424650292603452367873070482260987314093820495671748342967793852290851642640425944020237678829642424762294566703547031734429697272216520958065867571168050156480410347927765664510961943793553705242087382468217461000890860555761262845974408447454489447367201342131237655187105656633311865270589677524998974290234004173064594955358232437481359516218940972385238289494426102936995825118699791127264293687645539453063676508018252191969552384307961586501637321212807656696627044151799139785898699381335854079581517271539921350696195528789794053381902598532202615917227756762540254906981640895882434777430753207630689730292049641472246252253015064734823966559656049879766721714981410599037800945575500795446239936574191053777674975711832900140860002484991971726405169318546301970463528075381916142417299874134399275201271230824783309611067578478852704134241377539275791538703467263840894601945133069589737052527389014119429445671753409764618316991439835766237432523385362944349022171722553597663698357508105652217413044371142649478960539862204089451732120754845601172065489504332103151428309720564060891333416549661824151833790674595762286518293793069218494521396282129278127599892963995383591803705056116927386660878455211991349610699410998378354910917971432119308122892035727043605747951290454810071521421564860629331853541726337787636488259860091737520874878303213637233090375142403304507655941633947401086264970963993871195170212597689067831049522424059075815743745869576469744191065385385310198172169548154206329372986328475934274821354703936201923093217533426761405890741037843019112103947915646007190799952787622878275255221961863360463703375690314713302693194641367850308080702738577920820442483289461644517138655009306874211484307610003670463829304992576225417045400714408751181265129427478403970854559077133997033721458318261182279829248232483074366222122697100301605686297172487495534592458322774732144850629265021095761001599292876428794520720008316626431284187951251457978788662790862873631013595262604175934802157630228973191479507672055541303926597503203705697039746734148724479714307660156663075392476125548990407347294735935490277520563694237809178399343648272716545573392428556824106529501115187635971664553435660590290435357778669690207997902665119281090426633536177906900497713293999967549396049121622247062270256161998303707928198985410423684425269742455825474646929634876532969240313517024313355135503571339825341530060463342115741753076002310965642463121826368972660147538851259923827564635754016494780030119671636631682557167361974855078516002644610290576187102460433311502111209074355331083013000198390007621245573777060553200037225831914020250280955461583193170986793925407764829413198450639636032683271854535516014801134105907955105684936213277375601277840564688335978861791746456956020401022654002986280943458575762386443308495764493594091894792006366962944383354158958256973646663551438081991785194223748235958619536228197525255341180161565519844213502981593936360469411319541633020772141654495008126185810867390840944445454050181530888321662789806051579860748049565489115707061928547058209567478626245072750927394640604758988590480476892175912509355466985131652982358907721982980698878779991549206467597982283517500280866954556729806603442588667883734449561862316155628824962014821308435196929994234819157539974371396128074984820184004575367517327213761302251403314239622555630836527872745793131896278486705670389509731184490294076324955490727003337366755463499841183839940695025472109096217306267308158767386562330505078983842176600605271630318580538635004184618777843512741563693805564628513193361995482391608369384785515882545713530732905901367226206316079369768260290106060307628108761797213762032349421988632852339143373600537177709080571456499457968063783981581847129548122191403491312346413827797934448304347551946377047894638476925645482690673621085219846140504649581485027024001515388176107264283641328425534237726321449726695297581566248616380374516589282146516280736910877013615204340364197142182507547583110864592575443025903121675926646430592141892696636769118736766336264080329691779303040022843490900248752334025317489695640548422606788636344946950412898413639131445437919854507990127229238771855987744479372824560144077232006852685524392966077164038707352342701434848835178059992883838459851704106619303790776217317799680769491279036424402719194602177625008699281264423935629699014349530957830775171703422881981930750496904326357016993621845580489412031375685229531878036443437779489091701206495197021449871242225507923864807904098216543588882629864093944151158831320802347227035279040722440268606481853404700905107609701746562778479622153052937239510294965336423691335108668949646956310118926827530891134759015718142433892347142981702917693124978410561017509807173112450229708758278619872323388793534916625753211981891375489376388492958967526349291941581835231817605401718388773184491374822581259974116533659162146124106671893401133607885482947769075896801347921759871034045270887912277278149205910141355754245521469719356320579906330485406929312459254237385397551296807306687594522226782332388947079275410844729966617751875606887709468294028729012390526555407153590441403577141781343974013384170544765027031022419942746954327698435111561813294593746572783482279547012914710339463001476607549270661002739803683433552331019675240594404742434572371078160707407969856469548783087326103953680555364549966038036841539171687636871524441345771341841010172327493984875621144270999472726450645651842540345090387382543522220986993296784951334866984394043141262948814183739939118658972490773598698055036463457157078079511932481063023393635086045043970768362777830305887493773649192763967655589048673446759516411277346536388246420503787590008791746917907447292871721409346652974705007579226168723441222902839680790482260390128783531909159729838687931548972120108220709523450176611409925191691410015483520297300861095630012996177797484888678950793078234018244991022871881531697928252465731803870063872097933256558133592576251018990737772584963371149383133080949989887023209862462629083895847188586054436765220692646175526657602173645902693057488207315959452028406386064999122628213875992163289930439504215559605563925124767980913570262199863568879442392700746309662889355805110771010494004908142617405249535308788162309750736030489969441598810138050105302831676646843093489050659327933329369352650525736185593116047215478431149181777324982425798636102572166638644445044188095517013451919111196508773107225128879815189061458059525666902045261078007635369209118745806522071346931747015412733305116813552591021244491155649497658594426518964711261387829735264369480595291290239183329747611884469459656942984616738810567634775247631621840911336095115227320821289162371370302335276098546164579577223080114762591307623860107814186302205429456475401567795651107267827086600981103118373136204272686781369024107334829832689762802187766381047370280360088761457316763310733208232276475254001511162759973887166633682590994131371992885180231673914835650068597126983168659207124907462035837370128118683269511726549349568631104242819123199631959081797744480263003326302872017999433012390821682409782329112061205935617967448614884059154610979344842737795582672811123426577947540802599360767929680075951621001377226003805688179065733770125121972936498659200903633843053544855357268301590664763336436343718962563800514416615646342238529784859358692514248284316096859783623922107066943302235323342429828597967006505224148669476000546643591544217016294859131584852844354776545100283715609386149506041768666388810451172897771972537055824523298285425051464202001444293533957866785120376300091641031803773672452012206649785767689977854941877886759884811425560897196029510156771224599361244580183272967873779581245703356204728441140085929150653514256160883801860046942923674105499721857348529120532063764484362317625498154139920022585719510483312990298696419770129576510911918654836670968413728287863158676886383395801713659425614222294468445064419387796566777191139088068565077085680662943292079629580488870043643591196977642598090686024043080791568784714268172480131415375382035493202513443178297832424762260437523825964473242180630976955697001854514866944759829347187509360774721382146498198063763670503425220019535847699093936008717984704620658500955949181543704873387068535107469632151675855059524879248679196907100530452425777800206333746212725175273985853685380003024700898225136228951071716747145885690856180912333826359024648541795547105737708572638507885218252775676167327999732755089326534229600992947778361280967470785619724892581775573200957547007361886830578883925863037097331835850232738267918938509882365563347152414190518565888516456767722781166179367693438426425290339145854614987401479753598622609943874366631200210505979384473111790911912076329969912123400474635598314777896359932562222988067212203119378647508303533719741257672829244115486258085904982497928686118907658004035588760510750206872858163148295752604059367016704508582620120789494554019635946441018723297689502325902330227867945104366641726209751478373591586544837022322182574778929674184314615154849219291358143023936790255287211463791859566134187357757195002074282875565496293169891057413058618286282462337683527022801234266723179180650254637786683379833568517143674581672418448998095123905834837244567662870863333878604040233018016203390707280806934131592775293840607039309993233898901541944632851595509475834001990563030547615121787658991886630253009283418645794346690267389692896883202203101245457657821672734768135711888021654148715551507463325648400166451634344169276196612577023702977252078471620259409347948393112475725101193410814051051606033368005530616833869223922304268278089913246624518145857360813558383358597289032409906831427574578202176579899805770338859374273827679435321583710243437664676367433088037805661452641495121893302490659580051187487499898333687168511997171012242603770114455399826631187709807347503687996824325597425934304800603243844044684512414810351102412048670259959564680449367040068710469695648885076294572780517909495557989622540874278661509706158406509458874368031317572158624646598251300537179489355925262880381379338250289822141856054504380065691712461037551179529491557001449213399615337381101578732866764758699468550240723756076367933917932338550363857345499400264634458804863950319026210997338914766359410346431185399207894296672533828052620938974867214329034677045217287065397888711589399492218010024773037903246603854507272255391373836497754434958008124671882443074697816976234589577531220642118145618670489808195875132680846873623161869779101299860156661206873215527689358862118225293934296809834768185581275644330856337398234717933308425694372020178406922694111017951566156834864334588298953492104623897782388346686832101901489046849405234691033854944041007676463446670402437605149434558477189537631687404542365747594984006904952826978746965127494783269162254397267129929033088145410667918173268315139919198201180216726781812910795768891483812579694840443274333946251485014589077640694213046569254821751056926100419078547614718416235649975691827838940422953224632023392731628227042175552956886009219070878027916941711012765776015836886265825413812411033043987669946984757918281639448973623546486375893391280819129736519009129916761906067706556898691872550367308832740843856517004060999747561822368749803454302056008362916951346594080935320449247856303874569337988666338626112119587731999466046301862427567712060510790005985690465918476488158111274471359900658292526829262673665457855544058472944237565884808793646316897574030409646577117150075637227689786381730645321990639923558038255662754102472825359624744065622598852716706476952849300527118848949988849587938727526309021957064351975466288742686535196691277243136317339131736409175777376470098350989125635653953971194879025739750285093535688518763069948445042319389055803854391810779536624641997346312376715602867769249890527332517151995526106765549240590204958113935830739611038191254592084769785198476889050751073419478868591862792615974163240489619527939760553375325050514892272487711003315831572828066424098008737913237737255251120863630088039282980475486188749679803760670708081307719015789127385639059096276442038773370372300036886385531295556837163463913580740903611765022265814349038689129054389267811749937390202432731762591760931383997256824865063745703439956982362410655143790172268039200451330123239600478085291897493123114563885594215166450971342824013095606486039219690859051641122694594925755380747308191569994923819170099219130110611029309507810392747128232409629321484680363368946322437913640905500457030835615045434106063728367143423614515748336450147269954338751375690427062002625711550816477349706606140663119404506489047569284299977300841878748631041540669474682546109936769370609137485288262050143101528344463194077448062184583178803843996254702424089609985555678328813903851819492664770843486119834813194607404732599642323078873204217098809865536713933763949107051780803648709705511010458679313706853162529678909276191415059577171409030121899672131806233707898494598674164661501728449031663717607215083454099242886986528690315975238533935458661353905705096142073724804122082394264327021506301092961642249121196912714627332597250707774693115842450101026968921601537560886139446736836724718183633787467118364888238649694365399635046196664891107289874800679699051744919725044358551130590644479547423504436176207844424234103548561928882374843028227480981863798012851076825135475099726204388222727269211151769600545748011496233096124327025543792011606222527202812228804282570225222997530375756809760704354303371935182403423270932011204687897098985727427497059911962940972686593781659628402390076679337179789813273428037703172110509400606777164597379017179664313880751051127773889467400248945734738458873100269365171443916681989134657477191203139414213400172523428068588873372271779110947202619911316315131220209512667679406776869783367374932852121284477021801631181126501652901577499800270476724898997212322192484537550746371140259957946577234159581298747065236795873350465740016369984462056758246996720249301751350449653611169926751981617674560348488637116506873463515903905501778779503187958315313219226335955538601662030296122413314861271941443148257473192022511696315655098163513055422461326292374816944381081599690033466996108088790547866455680239994910466873129355197886245744463085964925410008442890687680925319973021333668098981606381042498380084200410311411565545684691480361794943268853938985854673036131870525052683035188602956376576483398220455067558991517190692542822535280591281365292075882867422551817811694460455256469481613083246471055654428420386591308102427178492403101379574709967674071492771940653929564975295321618336706694578238425143974149806542103893776332153301339113578707147498932101284141437562447130279097575553243936800556321447197789090899998164441916255341296809168047383554379534301447801688361937516315572367503319699746552801755321484296530443464829558773854295329404978526070169492611662570806454130277835507760659254784165981366233268781444025438478934895983337025905111023895017385459503309794021439009555116652008604499642960097246738336665548545220254340882848121667387400550973892260703389721201800777024906504892196748322657874511656314084785661956000038636745615371579731648110871389836283083772323287197294514033527084295914375008952942988988557768180885751247779797406060118341123467386762313490854110333715715459770819930740131784621094422231910999647281747571290533055554845378944421973575821848948518965285480287374009429371424164533055031944719302333317581181626600505507782626024686297704628442787993123028855917466744113524590220194205824680540703836994716165721178086209624908368663782333617639341276140376186357751104247211191773859231067499944736387243198159020339342868986326984848822347016473608604291628352670821890230883555083311678597407025961273444401582053507352080941893387159102411052857797042807868778313145313079423038016395540454970978557225712934430062291995005207377657929450312771852493528034584379066951681878116805758804829954481705937043058320850362042283983658585280591312985813176526262118665697278560172225468424722600292147742182793025937121538292616310565010509846435928551662178827994442751339148889826978559473398555570370457482175768228970297449879297011932634459230466537628334209597002934411674321014559359489501998938558349517190026475833219239985678934391710037161416274269704679487017401961136024786777518364179300966585941578519909647773200091855367607414775811499974213791988591366279707518088576114719371878608128026168315527125081503364302064804548177456615742874129231419658041647797919531576106230614165993643097709177842470836124261911089959708513748838313756541599796724139266284494551837075500691082579242195393826064039111064197057186516327177747416621481575343797733604763744044571685838816416202927143811205353606506073853046928753155953919615122634680070929541026164995420725608557761548085401048611645888054334044181516026204726227582795161032831441909309341426170880828954733638163924898001449237510396756611804331339673555574166536780872299407096515253678382444599732950720813001521491095953725572031381684544687293483240861428409544617037073124606590789736493627930790812377909943874143512432217438192420522094339424326530283535822545954166370235354404127503844543338991534913845819845321202448421498255865802551399675427293900592141068863665452690306364417143891490319562443039819090904710144635084267483862871678265165224795969905302474145782129674400526951925726748953286125699407227880578402634673693168329155808101017129194976352096390740089596036043679806128859421099269901345720620553063849520861171170080172778992891127159946623811383978803349840566441757005683373596464938810335913852237077458731451446363486196425735452103411964984455142955452043020616759485905914690213524375253206167487344901631354279451742106795938726330795972551428870046995480395536575955901640965334478989669211865116813581931209091227419670991206651772201013637038937044352105236910393378708632491364109914444762979581270490654723767894074462258584521835852944024782367725188634832660467971140582612139688968373497806741508747319124890574466718860129241299401508340523110937914068065828541727138053902156278427963959548565874661968284654938811835212647755001893997884711962160216000262276561269696392396380006531177974345816937762874305577468884211481453257274190021688314475248238926114831792481892966632769451097286706459713803742517736345100387265912295368580064744954999178920632262293213051689958550241256339503886296733689012098729882481344260615204380188089325515563988769568544989318348745891068043319433845646814198104961870821959447837044276851653981754440828257126565067920007655080456673292006565176378301866429876910242069488197549029894514191501887374832102564812005093176688596610047452743687768351264537350585079322704357845459268307199618196853455362664936141071229589737579116694867538860330354616235203472090861576660968385708898267870175125583399035796998999182044673895770363902663025230893376887497879092101371358274926282376686169225805063730252455556375473136384977530182463815267772384582205028260028968643094576602462208076467885017309498548053672877022361186460863873975347593104854792490587007055438250167645570176593145419659119153144085762749840058007809599542947095098515966457112999889426906563744061720378337062771547042225859269806031425233645955797607176182298787105817097658261199505988366994004621200419499507752701769541345063387625329153551255346750926219773173490552358093785793632690768149818791613701466937799588581714609721602862925208482471607838620957445643191187830287961534552765452531700026226602195736835010039018228942088124922538800836658368747978429560506761181888088566574464229914215236350796783399007259653706398692372110325784567876376863948017149167272515860288280577157694204203816206575523137730367454439779846833339074890025372861953937222463814633314319653778917289660882294445187174008537862172453402758355394975177923686379443511846876627102779626110410840558328795622346688793437821529740719574010488463497292598083341961088494782505444871539780431689790978803019123054628455661782470824545891027049238522942272189593543676929023483605886035969766132726252997788513636167574627960378024632874456745381295346595348152368487989281481330352818230009881086954062829410479728317153957018610010878119029637869924041463185145454834025816351211756369184279071791678297570210607622125435702149818896587722871540540012828339347169558423392905011919335980814508939554916519921348953572766462983403529465135853924496284583380806121759748575778641923418221175939823115628231792356014056035625477373162616996453185700173729112116935844735355917022624582524970474430748518766099392716414403571156170069296108323601713651342343924788319096153995871655490196452950298836923783978607153073234122618467150096276548298432027062227492102026579987719902442978101885110297324586962457416736777295331680083892939344659969231342953158760246987073287494794274560937200470519651111694329745503250637530200137583488454515313315115979382988136712278243526485325092608571968939860699505081091759438551783453034956517983279351583103239955226545382144296195634278859626590647175754231900537208831045187078105592920328704783521385656287393336496360700451811474422303932098726426452307392993847743862047964929968625178718830902719214410396081454855853628556755300077804416571658626880849345127281318415654128744000605082282670479542037202367073643466652864657892406374809820157318378502558855600875625420536263301361496698036886319195086977682642834332167424652473772128192592480239994701000571284795922761479415508877206777316264401164695076627902482080229917822826789337877351109294394339660536105923843802517733402724591558076672161660803718934358253720116018061171704435825156578092439210253246290965404090981889705870794455518574272382357700132409968917022689228749026277400670110821088024985522229394707749807369958329396811156067281683236484597480983312473118328331767279024853198381383918381303391006663886187436344407383466772418445486658928883828497378701558752760035891572576202899359728247880351116887727466175404049263977165751528415525194887183294453090578231513941491354543543931939821985336614683957254194742526804912473757093384885554218547325184163629922922463192401493718744776286405460301281988821495001060180513054649246651015879032105601952097192857992282066157749655424646287638937140669575631177571986794192696717683063630972464046137201802867215822751782560647941491198847092302729001908378213710243335819861451081118751030095606795270316161884991446202142948219063945905324618351670866404911490720504061713873795888531121113822366127674448997947992934286789749096448587922168488253133411747838716251968954738513359653809791734452021765364716845263527028271867097061822109141955936402120663923439647806064997131391052340455931579871896045341601028058573363645236586510568700880586084682346173427776880872611080242498035985442053562992773296768835157026731240638429032092163109831576601581454091967563818808542352199579684977798937333419411258863686507182242425993050229240038730864689969654848728898213182162885220169071348835278796773002089845448971387218418208244146914463743002699224936451955374746799441946802426656186653022795579739842893096844357725956032260774973578262136752282221624216184879976261048827707842664571448465052870069258344050523254248978393850438478299079316773038985378820713686557911008477261687191228644380658496835020295166312955637366307021247823386149404691446577918738044345249804279744828617096131781738929980564870482255147392340008266078576788090911275006590328297352297235804999013060255776725055626467470336561892150529823520589675276177630475265764050312550605257727658414212768647905059117270024480238768382585625214446253004736032659833736468692125573690567779039799856129410932444610780388454260872958765519858069205401959950028033677680722790368717800269725267326156411911051943498535352925209975904833080455777096297666593329590689273792538791123014447973608384699776152109381670959677367641169925737789353383740032974525245105191457982878190045428272560165817411604100144060535243533425641459472122326416995660905570843350012188911432219181568755301357900916052895101029346954757693294159940434980177346581866846308448536413188510404773892702466964634763120453288932822936716308556447388347431165888331279619661313243266568515243777781530949378019550181503638004908451139840729009802056075619936926884263062323118306917193904102454510608875730661802191304979609381932513101369064167750366216178519056094098686954718066598312129457156364840357517524688135902794808978277145161860050154459232462120555114759779480565214969242456155148721772945986363562143366775387567319608967658078187821115088968637162435397776075595470224734470703562984656992518674853177666906971199784294311610904732678500541562877466592095058084905721133035021434624484698781980964136207267312109641790828567880652139467195773260537170405408286780439945844342916290283402225641112156585367860013405777032548578459213219837989862927451610829106229763508827441010406870058025047798213644620619606966757142649785755349316320941925174020192701078585085358886406859787313111247308147817564453764855660058908511701564906338763291739626101467224440091530667669906167432605051197300113905965566245069572066488289785938975823226215541886527397764692151638700746281578861798971137612157085535038633051235845956382223769824959689537649854292776617169318275637341767135488593276738861294617860453173718078193434072822430775100027847634589502516993562971714278150674648471460382094551144441593886452370649385484926781784040300533054588007094954007570909644965077228736676653764023299115909379077704636517778215248857572837289755266726512608613745129402872690364699145172302783992190690483752960524391409238798688886437695549866806465212759739832663978840076625386626164288219914502819806392570996636940039498525140163776042781446921051251258152060797026439134798619905996452535334960342502283746695318985048759102840898511069371546785019829095857564815676834393411797708198580938760784143318106085088277309443930420212610238252207021618899544484399416174047802372948760856729209652332931714033229446782251578593379238505711554219722492247033466039305977482488141301841159460434832502717627587198236374467830004543962637718324110128926102757336854850084479770339191931116829944014513159705170530514577777853058485806709633693977991241216482133363532397489972866416416371455384300824581180802666915510613814706852507972191825958302281342493962955837581401370712060885364330985464139676611070444659613860973770761963072454589020073871748555200333799809919077032135190455713038470554096218562448227113271172236508592130403265447560026701906284735674835836186948079330217713085093237519937180241079578364600832361309664160869022447229207974458839549516102686095577232504543642717756201355399426597053463944590379825182077799596601801790606289914390776465898356662060387069201819951102834764890763625579000435276426541651490271774398508014305707385730207721646492468245928517620099044712588597893488864669573178011134287168153732659362602890658668624178729412852575785435973094962416886919972890918684322050661820261780888279767821188214710109014956702933494870040398934497234228557007487121942644752866795304324652872897747678085460450284023883021345612742017289213497802013757599392862879790048938091390510377952808851446566404252382246602949390780646405356030781541312339155222528129635261800439558086831273361223484879598223160970276002354679762070572312757727761298288558448801787248784213202845654997583833417278842932843577038627293804797697994440629105980658956180766014549854872551523330807204304830748489458235627441890319652674834152360650876035463980616215025600051018358168808194499557792167967674521314597328260794313389708282960216337087629554093839902297794913378200972404698714178971048479254217858325138089324205852598509600530775730228760462293206388548889387948457645904428703713481080901218523072997453666684207584264600247623505414638436749164153744366895791264579970610771425699485325951034874567481276528432381057232563383704377040311160857596572702917692213677478308065928715404438789907945808378514860177989264982828609761014849727338889922981256694662919952969592288690168643467979374989971678921747538615509943330761262724433360164052533958327014863227382131892378645382403544742102825938293577306369851148536214067608752670110952883145511736954036132235921549717699094659520103447063719664054112926743512037864853479704885524054241120273440681898014526334000763471934393987949434770262738553219835445636110547533838945493037237653646337980686479426900638318069673522406061710062570945775452389060651739702101937779675215766960449025401198679543112916039265743485467178952448088970832804116673157752764818991346079482351270340391378404583412523977238613967107105832280154687486093852058026319759200580934531419847403439751888764882453000085885973074193462372019039485982484966967840344941804418620529252926214154461897671633480371205808663324229598200612433742188276242036387834964244131471741614263041273317550991288270120252770083054781850564396479773047750194852038200030461398350796762150761280438165989563668531226604423887955620796839907373031846155605462037502496023660677735126949969890821738563277446920617973961652692996741708576006971724869002031512340624846071875870763828132894775916327401497200102861576264183191218263733624805791219632351057888570079846947401879957144271108507936080008111896385336444208551038795334302337079598066341389849067636388652925218474840537308571260400558316371575739874943445636815687690177867754206440331141079150187649444769651944934127164749710381940120720117440326946310813280986794733167269694081949098104844001509534020209404047195382219111239873317983441193803350404490376375767499746000726631641099442987630472328907680256790161614887777116678666203832418821457649741361527229005584042190033486040257365896377771565874345902670252744314646662926839586666575531382689328653444704413039741456863259446023597123954629277626241170312648109942276422491839492212163657959440628110617247504136191820698832414440676390436227924156048345511389026611798519952280306715061639830640188644503072539181631315729293327546081184970439844131291407895745939002041620248670324175931882132877266501482269163225899015502232850385095653662281902046989363947639990961108890937828883836082816657040280370963396564338633236588468752036402266481383558821952432220154177877567987613535603941094278260409575684166738532973754208499464686566017824519984347469775620861395651414797629292676298092852249509120729618477606758782518180266225945454070669496496429302553041042652103036459151099412938231981912137432698414170326951353698233927864932659401991613853993390904334287810648303581240560042336801784487568436964777759738475193433873272986966790886240564848712118925348156846590919826490110670995990975766420988391603862724226744964796692828560531589833995864765086382556664664861447660561306609790370646616646466753439582969765587851654394228150030586115401192746970658342765861123448273768279277100083719285880997533685005582664604759059857080274133302363967753186744807966606282659853811548495377230323578119650639337344099488234412950900412144301194594369114368953588830771413682896759862211688002902560202586413509057934645757511521320560253719929078185163755096179106490848988902823522876270669493385291555017542384412603579280246585858136831033692472253429137245450720852446769073446546639285413120909843761619767304145456613559560570763656653538887529522274233404870353035488017595247589406392487829807858910606183257665857818421896798677633192052207703481475082380088499597485891764228522049497930923498433847033640046505629861459159739113420376949026582703209446208007122433096868338612575513879634664378118758533264337295103615466339832103031955857436534668155448010495360578212303658732234099530283880939386137880283155754135525702471178642550106110265682961304613298170091203725609072085385115299940418658452824294685283764524525555748921251423332805239853281453919959795770412809354900571838432945567712685724102440620922071378642893782456150167318761060466744599137406912659682575987971436638913643942439298657735501449492258966665853653655851407382246457943645031953848312500427186157793626919561004479922992246709027163756082551857016261722912934477621025532570834629797259632288144992518489112066746885504724577545995548913328498761182683143466959531350294784667313252100991903620417816702215065077739056369773350819133357147370413699686564290069071657572056599962760111397901345628217149870387014532660488643711254021788663250475513669908841928374660293344407306933206924369037147322076065256082934354308429029279933611396634863079447316544871400275911067453663790241101718434810791914492142005693283671697457613972568106155074876776124528965456367832697301223505926818967194542287623212553317198810634165061532037895380023066718598671621563659681268589762627726970651050518076593961048409620988768244714866531329507681972187260005485385203137822145065267632352000644978774604865945462088431778390883944683298899191224104042975740041468381478424920396611743971925622754736448429125343901690285209252521219720476253912093910449225933844399552894045261803989249698341288153851778913352457825993510585097158074098237834811711956633067038915928138356937199485687795471749791094771390039392294852081683717133221659860632840435609895517888116543763153330157285267030946964161807438803383384709714492865986568144289711793331948586774845734964692474938378107098842753833528910487038227147779630654545414427697504727618476475592990520639492569457443909560180367604418665079262212935854291680127418122853460813508739002492119998027668767481148844479050731134639334697009899103568672812319201447024945433167292791383647458001271156120963768369375822719242977470599944728182966349649927603030850654362657134885406260144319774530220187676755273701985406415618414772420561518591717585683569902153005575487311738698030895170888116342688455682967941773402825073249968602294588007258449589544844357306087303534694469592243080108368683592127932089552597885993137071031443418725794340402057198602237896994574166812003132933604700553202302933904789063617750647261710590593151361581961635232393854342978096347863011661065297723559380974177516912317930411939893249879429349919713096720817342500557541303939887605965822418151281664739087054829257159698715462323398236586413539036172494475859228476864741849604799647098087813043004669619808060467004581180256503241538958660652238526648150927431646057614291048459259952341638591480059370269264145164668472716081672754561814189683559152871927747265901980693920537652060674665410621945004791750652799927388866026084301199388252436055992742550707829923835241173501645592577136233525364372885655523234888932781265510876998494267797906612410439498083092368406873277232855247118073858557968917185000115916216650011892974701008546620257970482697739458139388587788623593267776438474716278223460326836656252754832457737690438694121182497703806431968959568716645287151970725980107333972941351013446273681467672873089212851403458897930217479278422409229463050433578420642648250970443234706381569609160677691868371902765766317888392501827979757214983625870203908336734274847958143218254404470635856835125406918161922591070884460848337427614691459496636989505341842773477112423788732808424475079876907123002959753998139815081651514503676713592808066854861010310601450121564882559678090565630914163813146129737222760361168807812498251669594765768754418905783468619226552603983046484817874013164164645059375230701353031676190731043430997341692106184998904494855626039018167541688410043959910514276840788558649417396277995071277291292112196087059703256472108283225448062986114668888268359060181966469954197681394117760175163319493758633343804695077905404972935344019301977678513952834783665830558599500001970196948823940804514095814746018980965772734479376397333256246419270572712647895144769961946590729731833171951649734524449714526200899928210972974513271243283403829790062159793333618018339993385828959485815884783457416288722573057045315105349979916945976922390354421955981690646065167204419201351020967745146023757297601598163839831196152388955042559939034846432219762811965197361506728730494886979896883022912986590321848629837205019622263749568907544303050566621498331246673156315673743349234902701172411696656577801627412660773690726157642627742502321875130465737046146015941062787282048689122380472236581968019832370603347662224670113179133918570079471809506277409692651430047343293080700119537489637567132762108411445142620723928977090224759871477987734196788024537059639874057030913985391584232135519382394471585599306400430021560191787183353939608846103382496871496225798467185142624218371295741542781881300487371454520502647959374509656215624860005477313447522253714169287707890418443924933389920683163607921129660342215505958801202914023597638735762086799895047368678053877161158025436951230642439980400503469763589096708329977341802574749132471529626956995534986666188965863996197571470319723453136637761421338635055743042648076766102564485925303353709276902230598611083126016798742541074488405929211249125214261257642508448186040745413331460400745483505554376425002316335592311194832997899766729067835338186191963737401259822132760382416607749754705998702305664073234929067109950128212599161521282142905409128244322269165302679124766802434951793933178809268031336281519582418077177936684583047963244610811975255826402670093959699173966852505076903639377623420320750063343691500142489021960142122367247217970223399735313198855800608160333214461057145161906296057528549276459551063649477189196680661567742881677088286100311176548209976522009820500086218628062303335283749431347314502208073601385440171407261632999512480918687639122586385216547440985703825571686819660711873972120520857466782592982206995066711329808765938538551583188621661308126536081918107033234183084498987226584123646096963616706667205890108449512087469462851890708407132863694998381120765431092212233974045444638750820981352806630447740249544178443429523538884787000848347291959223779964836030116218722104761063129755664014421552192569836618418661679187418889246411869186819449300234880919928519320460476916913583433433850895974787990081231570372429961968514078341293687518440183166709430063660967545661878139119038337725433760146049981848226832799624039484871331263909320004717016061276663024140884487249959989722069680694479386881775285856456992649032036045661919946319012034335871069382920554644325145356834849473768251046344225386021886440163135267963081136109266833819157875245200418490030794882674578777346614226261263746202670478453571390428997126297939917045036252186192701517410306228126436298063905594853784382429838490711297990041502929964476862005332644319511899583149238112283276677847776085615500777040898576867797391296662184973356274564549890010144150188961788124337380061818613430146545596622717985851414260096676968641259571995367442933523147954870999102865958263782190271908855805787142043971773533073620734394526373908693168300326323009230244116730210829913614936235571785000677754901127973730962378129200450750209031429342374221857287688364259191837031291713452500276083593341519224236829996819484165196376121428200410299208748699289860627186745597699557274618676151902104622268562133691540916652752311921487432871733641800541638347929837425067494102964836571657248161990328733163749842010632124783330769912858016179927707633849620333396886424173508933946009197337201897865625431246407899688675920264130698195507476996827287919812840676515961336274535452071257998456760426385755358605118642949360794581189921416512830374737418301176759639506831592521310414822524440457162700237729758420202507990860362643496007722878716041346779816736273287615761115904397960201431856569750243552793759687432731233188733914934262977353535444232538390125120527501195563658819500599272847161725536987103152146735652609015077029820461172440625418616180764242411649859108046933945033504882799229357790391823793048086987874584014661638486900275319703591922973236090784901020420957539254086132906815934661510513430816295188368817154753777332538841732737564472718625775977181711790538703426418722626528499641020332308219737942195063229232389998429368543331615012071302367267206780116995592826715465002634432353355080298997794162257512555808465682340440517761775821220356822075478768491417628897885011811963217035974984572907801540899181872430713180810904749132223675702448626046697530842684096121521073635682956696843801814922761900798129355884489913807114518146037076600018867880149570895321140320493112038457896881514646934690067678421640115766292929437441439669269623440996826413514080590958346238663776402246387588240395362718818206153521314095092780841854080385916118784651908109466611516394466550162860136880253785926556129041892913208966705844794257918608994272525658176854939449853983973875034118212312337951988462688451700125272464593539391211595402904354014764440275200683955035394140681852258692016984153954693713446324868484975128843620925165964022073893999608658807754808860405247881985402913922190299311628734480422238290574047291138745108052683116395607057220410795684595259215918202746285414408336750140457895772992260892721534351487485969908587089982233525472664282695113845589921938856041180157545103760861964046789118674394202976709687646800695104840894438003926004635579802062307745864121637158918956726763094000111887616743505401563375500699136899906951917637021456585017388415369256429816620854620348968612361012179474529882882672572289901631443723661103979713481715936235964460414254938944491366426100795096208710766089020615547717352844747602113991598897468659273822666489530328698387151441013567150856493045430855237725854142571141058954563153770396179809889924087890465737229254383072900722174671731028723191266666448475742731187931504494643849375325618357042774937546331096299363936447486013185969067452613358936002881498633694963863582016217872409815443794521828367905904385385377154794018076856160700481716996115455007126569843064697482139348478874219894004034364836817160870910646986508503096734607102088977667788975565853263233284236455757673748921362715332123207577338522305022601334434428715975815439344691741997045746492371417205749229291817018164661647169187545391110099272773021339862057632959937817216553033660840881154224286319443994512710578069076573055626861828222373315244814047055879324453783144895726141858375760809427078756129346027669753343282622071197884182292589474484283431460482882754965161969902847268376767940496750298871302951988157213401065846523452788781736728816016835085215424196323469149502427087326632164834007629392760931117455337632019919291250247684993768656799674547234170556137627039978179506959966620380683412638220175698302950703116744155205068885360288179600113011950123425354344673845576161895008810916983378239829834516517478121147045801210461938818004305977669481917503179078817051979974528595305858734178916420555005155348975521918846398084875676009736410112408844491308057316339939862803582106859392433340279370192275168730365596920730809266055430796712490749212290356649871231476735065187556917691496663841944452962391657894501667751499022423731452042580615927211358287994726375194406969455272193925250801067907717822241102864693581606615650043015830467150274970280123394550259882720439903244504033474305149799081104415457863040738442544877218675565149165083394412458207139084766838955033096046450574371648978846823190224022282755474958856058726096229586905856867502211779364217954287402703234258080779423595704317261769704208977387474331907608088253071191299950694662446401580698721089143067723723671376412668351943871567918572695352252730341962462537484938273348905081538576071788695881362499503264633421173877896794998794341695044989089779185652123476386747703428480046183852632582267768141755374498308255400206127643188951851984863229279471092126282399768358666074420922166578485709083603362205705065503547808267923702883885528211921080381019583415580712997216189904094930376155695079375436115447523562366078116794553728138351244971504395476389906012762862932701226231247644657616497173391851510768459196059481169927872975124735296575648123989999435417694968044117866716116293712397679561404870247250610612596790517540775353690281708917606412339922507948278411883526527684601918250763947964321629237640657964779727856872187899862307976575088408859140544033622713224271578189519441773457763288593225455636846557576945975536697089709872072630520212867737800646208526831467312706381508155456210635399724074465300368451883202507104156169699662396646305354886539284696539249527586838619295965279235111275686692275128323993008262791823607791587408730948381374862629634953134832193822798685455727417120018296065157580749018090474092235208077286015987581839962926542818729033532465751073973107490788595377593492547121707114208720800830980489625358848525961151162643114687587430430397249848058138064896272254126861010780819719178913671389741459633148627807897696963307165587345775943100705293033394105121182786011377500222145124819093685924486733251657489084370071706638733088476431987087395746875296502308200193044999193941845904394594250961297866479426332924073610306352823400181867453406349947036785180443894681046072388207494172152823861238767604985191683245720609755656513787526170652147158852820996164047373501730652178135939305873584569433291405654197609754830022112455424832155920061919141843589349599640555102962592096728503739000549345106822120457851346373400790174488434052578187765267335791184129594119670576351929579419863284509121907373129015537232717416973208886045726145977824352390685864566955530908653110415852305528637571817584810189214281641376364495413669159912219464757900072604521059499641454772294503642473275347549403576082293586074551516662250967485722390262959002382084966590795218129424944950375561083617946318661518448467155821711799279478622155397307038387522443372564320016926385571517051856548809272507170491554030978225091366267528223139687604412842384971050670630769814853960757572293703590008553731789079794292637003883063177624940018081902569835298376599568941531609523529072714442906327133064903860335150498433985128667991966236384128925019809159402076972112102027248247124539906564342137215209220651453023881428244008456615402222073366589284622843237733129187758619780990011333671450352794359613748641708896604952499366403138029481592418408978644529134413701384151698198884554520906528771433168986719046624985760934187277021650415665807438995678696256611513976574800580127018989544506534673816621697285710381517806126816419589338267585840623009428147360848221231879421443141917132093923401146144937173690191331882329033853957680410850837677533117675213443942363045345750200137750118511185404150091996338197889905327190330340545052158183791082712694412620650980504200587991193128567470001819787387335108969213393229553602447956752095567111523624843274304174745458046033186720692757761445433233155377992174569443396720170029889273041507715394664835789927269626921932524420811129341616534106924546811033971035649256190443281390680178368936504738782384018373221703053951820744854992126734550585201663748330933670442153665498637530902461642206372053684105867181427965043722645393199589913914168708890600454596535731361002628620080868461628318176526377261033609461482985763468497934069491922598162795580580632670668969251487978205355060263564088573203985836512235474849256400618962231300063467927833850832934196980118116203067296196856969335105571475281546091587629008060122791203564668691346203178995755644230304051014433855646247243552762357509532865822647692784886729909875315140852978038219279038472372514172862455673430916850534487681603078309650755839240755669051477556009704626060147014186557733629306270528029195859568184685240756429062464758837030173176315526184983902286555058199841914194719307315097701485393102558443881545597818822165927313222155878382885575766764707717088974341533761378785970996231347966371728906709969744564122296693259238570239610732359397521083396477227073441460885657650027032693086918095115302105951916358907354981017188367145372327120119755258457534849232462788870086124087104022046579574489210907161024650781143380111364658342794319570914791480660582182611385175566316362465988882651101861994386844827662758965416846068903874372869910717946629841766128448525342331286081241545992757822791408480906077290638518828059935935982066220610921182433511222429963973913777633771076213968102370400517323838704476162544790788984783226655733023673629444511822667731640895014056396981857708691489816133634181129998775868064046528278490250927918693404053735436826755089856434887713508195419023420041322713824798021778079240292101851455649564356674859803726495817241635458115947464767171212308752959384551771306796236391160428117704890258860815860881273902020896357441768242652315151578057878583673541238075259755156929861863796831639783392744144447018978495725127394256192383317668621727232488880993523460728042387551279555265131970026956908943489454038719412864974879986901580447135304600987320947979952422197420487187723030645263687800590278045397816890486425857277400331670198060294173944638717685907205057337396377728219922555986000816286796657135005839174727764981593661367145175507641398414864953209997494784369591794134227243292149144487173077437529945183013991844658552792974134392061003912716731327639437389620179540002515381882819895015811764437997878507286886921215979129034736064847393787307788174637406865355299220424255880758072325891481634738794174619170925147569866070205064747326929114742746592475812384366681181811555738919839287884854426408139627409712709633119746325398608565510539579332337902134157648003396111852125835472359898822796650819223826294495546411832665605845536265418516132041304402547323033306806371074234147579422703169627992397960552959976640228796625314316824760019263444993541537266416893844132881970192846568837489964935846207330507616092754479557382174191030610462037909224261770292131109040377753524876650959757841809501539898145715914846066208927026420687322332436027891669516677815312082537229997637614296617471996164821049548553568287717149307774633353449740262341609567905570109471307041814129991026990377565570680892815836424119982889063319259426247942621428011018244727570287648823864490431451721798413033143013026508030844319002041293138154117509243388988029588839822356900499963198491785912087735519257737367207274352315271782104679439593979463310585680069140466895981995768088128250861067831074929192077693173388855796650998991251121574395511632905347739248922417739055462538163154413324301512881455225418622874401142962204059935304477651802723668114859494764661610286401313367006360013548299319569039179043685639539382716901437193019854805170362240954853886694937065126368574699160617344341625860291676493955134695670804511518697511056793977577559089734960681990807307250278048869767321644694391827212672198125726577641993302661147202355642999029978620357237200371422871929914225699980126200805166548647193833638151857652717006884904865864473710881641000475925141333042302867237313559351575648870229103016512635737032019389656843659890622691642994326182132811604751121622689856948943654664889432415077040184975953660066374874038031512400656624500494240690018725855329383358448702870745984837819362071839317071213545385232928013302980302067999292058593177141654896101403950805591605173757676473702310005949432143271605100960150573875230081447301620456231326875517961132487405407227241503938970303401253053504943109555230654708465254557115130531348810629058594277630638485846588847991101318195044462272511846840026744029696069899444375616356418704818584473683121821813280472432590636744430928051364040247873288639309859419960054903614307088645884876905243442445500572576964453857432876369142020588796466918378858432129317609298341620279658904626597216274605236995337495424186252956001171318898328308404083159307669784310425632191587667054993666831687708155211794093184185101366993317828383046659935282048491212604607154345619226469283235750749252891581926848992879675603555439593272931313727810327167187339445784635618969663028769024353280063886073455146889025243512482775712070490802782885478428339957096917636083628136015784437520495269199307564451916447805684201446848805426453149678056023995205303134851390803559512064023460434753497855708564485988916322457696083539956768069937961097201015261462744521738238889661373933463701397709274195324177996124117403391540153319052087968718906735543465937401848369880608191548434671013701514617291150873105165015213049516616368977407541952957078022957804537956813760397074078720774393215248085229443524262032744749113381099947320905482800048392450201103826992893209141837778860287664858810012351678736853863237185326781565349489688906790485945699388345261564028196228054418545540146303886016750504906407242805141399526129227980556649990540760504908170756249399246518339779683472505808529438773697034300584849412699615996160512356123927600279687703241348830815661605575360827380687715291184487029267619731079895825781867323295195454115825235998763226462703673840991712090868674531724864297233718468778308538318281627345674251112379751182564167659289562883057247969454944412664116583856725423352615103320600385214505915298426796812923351016292190298364008326601948944267695599319249022745538714793931460858950415935223164019889700409579203184797990055107159845673891442446356121884597798135909296150116243693715132270882299545334751036858942900503068435509288570747503209612725723340268981572411635131454658109697949525157427386728832720366335137993767041224541727530636277692306869956569049884517919510066200886590676717382335082513405970662272935332598553889030961121244195747158403626088463359638350678493017580455423674492204193992696529244000899836519709037899477236661396551589075981305757314138295733443786663427179555391544667027548099436348363867567336613894469288737278213083643867163744878262086625724945827695946528980007436755681425078073371170163121851664230969736682508566808886761867869678470736709800553647712379805692500646161276087602260833092559792953462811007733239183460663813150999329469003185862035157689672789694273537339948505807853866507840552593307447032925203417993117908552447616914613023988673293877996564943287159945839784975580429734905285595809572047983156875703556091103862153212321264622212087639677472216467264712183883765521430745424927277473777505445361307627853029069562185674151127077411148196583835397492095831126379149232156009695489575522484836761650437813057459772646568807610472646832498804055101249351567440441143854417757104618210299809490519616270197024107872350962824850406749183924387571814563652344959579396587067325758376871385525667106001809611330897242185284386056661359031181488591195690708437499984252813904977968427359892411327604049033434909649337603222701618610134125592775218261622045661747060938726774352089065124076682169533750407884864373679256438662455495663059109330995799800438421938546989176321313983431839445917957249547830478070064448511555000012717415922689126639747959988286481869593538304542352281204354070435635006376240615729675990513205757042070185356434202180256691988733484890811878239796131332631016217803375902084532179990962822548608196770893285962902532273661488486925587571760243207438222101936251051966375406058882041206516006458721859891127242485946795786010215498918317085396315646022155641072182822989429833903465206718582928530401700932858695603258968802074798139125747960354186922340217860628911707817910205485405256758205124834244596294967685121702627229105624654947094816629641053500613264620094153826149960543422505667162796992395642906616545117839362994761374100089457646295896485374730123359875405026738225470466755587137174305914859926499094021249580379903512010594839191965699937389994999574338466529481652956670955109534370303439691804626026194044156692861451389729903375792594065294037288229863259748743991486449652790562374611669150107977842607922564737960291717936527577815778588939614967988605742423486675047734005852830552729542023106348614886003937461888152674193755536266014262507409269338014489421757272963948682937953828961771418084319829132728238984948958105761266724570366124376454593691814058493588423847768323205519306886499643183016302568314548810464951498405339032487129430905572786555660206418124040159130732673504057313514181128740753933336704980947522839251299849163716897097054105810589217759324963055344129404755316957620381048986236739476210449408351764412245105417389544251932799912956611851986535421718760292767863476505840890708687977939882249445206103612485171753716832976799681103529693815917700232698248512928710433937938403907035238909640791889955317442690860763851231148575374814683108137171727154066663808036337298122055608137143467453555453006801206777552200420244902690149891712339032452193205041845200549154651286871106540424235148073016561191085434742683732031927889340070113101225129613236524729900286262586845658546145567614300114107839742125057226580287729635640815198134453523835439794351471296524003674732708383519988877214864252881406055767255339100278136325586623797772066348989240558740262442061438541726632562423475376083378216688467588613200440584931700471651605994427847880448215317238460298747297420645505591696495767663403446430721457727277627375963654366931063311741582203127253600179505404129865970021867741563414825666196602711911652204346783513087078061217323122302964484260185898254657988742417796880453682673877157315972690137535777251861135087015712483971902507277972761391475791583832228525349347281719028634915990302488047815534506150871497294337325189369235054496774884930570557932277079972475167900994581429490754161896877228026076855220299915740203893977608482932931693736385790030463175610114173132258925848593839239889841220724695596972812694170175644042425758255047141764965466570792915532969834646427821583193005812910376977070292635390425685119998256280422081340671578160179094201645273871390886500130015527959486926652778093962063556602138652307802075423040828808720097825407232341432976967838377176815652306102726523624083854147741776722040357699252522428297281791145068744888146115112275738887220315336042885451941274983135012809403059667897388843229384462950169550967033886658122007894835331710921182554633202078009917637259959445617471695350845989093037256659658162541975205390924048069583719571706478403275525892780024711848034175284936578174789957543785753855201043892688509845757125777702389532676221102708733752235616396409021026299648475451519587616986928503283325198251635579227558481716008491908112854822032677389545876533854794068172296028090968503904148467319812284763877658845545594689075878128061080557206521799291678222586228741480681963606500007649935417765171125708906148991267436099123016080170423150625014387126760706629882487701639898417356611962994924630570053323910210764685054631919920413562413384677082144264050399767453754015769601706805671080867166209416105391548898924350773648170816086262190297117736808576509800323470505631659167636511519881409712815876282364433236566128050994332494427741628295004447584650078504301172809939766721692923926856936992110201674448449713437559706105210623778804904605288078374946415470506046800723846355162973309447860710082989658945782324105980511084117889422888978290687810265649179203628900602690512658876328771218473113036080359323042727378934392038938824597536108407488731903730114053777013819802746277087597823949649979108803894458536926724516356212943193605143017938893000248427372136402475311596564169498616988551168853594436703175980804503016596340491946345740721163760908955693494905057460451422341065898265945658431772466659252346319639982372701890962461866826793711242745586284157934774312609384433075357798798590957693248933688467920536395995559371786019906202087813712610425648295044768265702513290997806629510341728389855468544801470696305004933600137941130433748449520836961771436290498809443999964326224561351220529710754571317663345736699954904363884329490055898661020037706713389980476706091208189955532728165183713764184325116392983978817805903793174001399188795529058866170204900614895262416967866781062482062122405862517514514112068553877280252143139340344448918710080816176197017291223879518325579823205617987024196948143097343295797263938381662117726123862588094577282708834014077585769759005113777730571630718533520259151916150288278180669609633617495367502870384680913397584631153584696745214124792771827727179155314883115884158853944647942118660963646431114009574732055968306499430703527231155347851748408396963753696449007884941855965553671984673925062135981581959614240678287527903546826663942626716001151777699665528603250924775284410657319638582912502256602169156082496620482528246668740668932063579605222536751379265174065500759864436292107880329215318028982178739830036326871564586423295311499017805741511957261721907865826008181636437742481478822743835186204838539344953223051447280651155307832312859732681720722513852416460022583513325402505389811312202657251652038707395155195303350750362761336570570193901235574553863415431767867106139718615568832219093891653278212548541704063749665863616599917449729142886849779390089162035699885787854209017668401222039060760748608520769164206285698429103458845750990466352446998009653377454966289804349462831744494845095077856895552840943797615393983703225873649246245901321118543116042061126658384939724825212765108599261167310376714769129479257184554376579781687164698222849600452879621836671249505042656335616352172318673432442967836824311212840083120897420234012642769781488326664932558416750492797000334441684268033371141277902559807427955553789323928183826832171564869597259342756035026917032085913916600181788308304783256433092860924193658740311388926292325088776366732246628958446111060663342835268912696638815801033475742336701273712829085844110314883354126665657107565507956592293156277612657596148804983731896760882657934562893344155528735060549268605525651171983667947067611463617378136410972074703808312096676405856475973085215473623378148394072167297029237219690044686616114429442222229554665465742136568757709553077535907384522890481837567054013817627297773709292964715141439193644935852935999597981974455001925830071763674015094993072697325112936500734188101304561863988581456645079144520538444074361266743475736217114241591276417073350671955287166776035359879648406251068383016971924459084672542777729166140918940458948539262851633376883775360986201827686404719160353227619053639451970883080814925808216204301502864289024329084070521427240509986546715967229616723951506110909951084326786104227918650053760519095555451311506966308728224838973940527932152160225690785073383999925727498864005029327783342053683965273265170233611648782756695874148941803781327861768090415505847008964710158853832469561934672026462464904465250755232459566053054175062901953196028459188533923214396686720006219253964644632105724668163381883804756332633286464872347323177860772911729104036960058617503096222096503206458965049412540497705278042968600592790240637520453295273220451366728601597533061151546040072373439244188087885656611528502046270531956571949227870053297759739912220760629081654004114701478852723131692303454853361406082364338236851678488100624262766655074398970916700711020815395003228423650022020694235163423183865004032266166655949397464084029581748274350386649754646204264297023081843910764249132548592856973008462931209092561171458810826701970851609680269786781563729256850050362190260097355085034400585865345623988175930823915246068375967056075890953180647989332780568483939233585850205222650753335476555338835474085376084911300598281294105038598307952620036333397564811532154893996835890609835179107297659552655395352588723027479702437552792056132146802213643775886241915172517035192190094774716430057384016656985961367046203667144197355323688824278836001439043789271830895561756604463908314224413803967340759571095470369358265079888523360026365580957687250595381254648361604100503851535234652795211271618860120752614413095003813344950637979698638669429649172187430239338662600323007678704574912505682914627930738832835249616210849737127463573206644612434801815408577342725333889931241085707103261896859110511541425179921191518296274945409889837190505905378755674966684105564581605767127543764971729910662048376188247856162548152097741089480575079414279296466109464377471013524512961821727423077651401870671613761243960440348340614731191268849522915308656943248957172015339588219145272356858475709380384474725968127262441965634422199713119295451673515358708989641514170917186850871576435441586989511677594324239021357047807852717231590934643594439981331595318075954299918402436285858109902421364053242352476457951896999532180786412310311980907622595466128339905209821660946126774712457503101618212108042461869430197444517084031667163412723420633501692711526657153755789883179489701292866108836649321996181049164454862236656702349852334138795590289116493087386430432484162260321858226068903471175347870253479121229345848491688939754084740907400766239615597619250075799755692294587863361120743222131987046380705209585727720631391519662573589302156866218903873899921089876172164379383848096382902691794332717444312254945512177022010303774471295027006272944020698112899948939721081847047039707060520680434905326129650062840773983393420033704013426093550816355402575903777862696934722607439885926815401763578277083744929132559046509967292995750216102945080064337479809295668875352695381711066573185954441578777591262617117886557423653746862365469654142506233017533775026731336796039378207776854892746566680874545805390185006864382499018050360559257585590483627913421637588325244701522766267255577134467208568257788887880299847107624479685729979198836103585311848418475124995964852826977982144434009940976671636467236546121835647052886710419602648610810938832600044119590249540184865498092424574846767953993001069401986952715335413337217116934794168394379926159469735190816969235955678578293574900700762406705027706685084793617490214066110587390133541960750544098118320229303031048250793880354248467983723934566710917525074801262601191101709759710953743785562246814984361198146957636994714485146331564550006556353194265042757126616208373648988119832328425157263643891751759638202662476632961711944125843317797806386428269719155334689319654721801098177461428006658452543726082247185605537686702026158163894017993130544716294705532732045238699436909319465851607525279114475938779205941731533799661781069044026142860518543473564545455791829306149802528041724415806716913244805210468776039463881704588351916963677837862292680411252879251846786642925095961274997514386486277390663615491193071148447932437285265200980666905177144587734496619776778315253161874299437605441914195061682880388173437938842643637862143140339704856788096123426602905476997614823358962308287080400514899382196874701592265562797690855448717250193872580860432139016528108470440437212745912427301432094583151123576310960397092062641447368723254624156439437084690665535747278836554127102888474566737193685213211952234884907832265641071066450710764644226077770677172886051875852364132638348704484379979405827884533609222096114600885721337022933460264814033973135965398657171419420474900138071207425025096745713220296172108865184861633908211025801714669644003018043613836763218918207744026755812449702371868535847637805930955882691112241679988001612192372820258057443032657072581185712777151096634694212063893880867068658581039239824690139585796358679597707053790694828269814262698074235688160171505115932502987746651001829561672755790374491638436971229089906923379430644088877967935079826565810633530232042615100479032339401240623964425272119794756959393478144320701642680087280931740801819476385897098989876496042472865447024220262321006776088266253154425151722203623762606023213874292181642561987907474907882445144264864407066309397212548875718295283918613637225031755503840844148353803142905998947427160474270278373963814782743803187597376960748963912965426683258475189558704875998180517323296541869932483174798536958652815054204593434108597470751130916105611987954851503281358932540773010621030231641445048791375101771508681406269805934145991128107887139165475335772187702845874637737757987894788652851836209847999094896801980005495227226624527885239918705788665547569570164338238173740012923420871916266977920315325635778444673280277710090644786551200338419062920244131034591403763182708347837105451754322473586822336857000706983126195178115945387790306782300436981175035388496694614738353153875351356747420026606297976002242841195326203522830477662856102558496650999174192886959808131001816837697729079430717927497693397040945928113444977834873095026194484606853677004519659103233662056092382659383218239282206008036631114136124664979871410287789570561566774798047904438806768611454048676829496734542543131444485224897964064926043911789988591250167017687078285740536703277256333495859158019977242876677983351343123681671905210772324679136722592667962994956899948697328881088478609743929368258616061456962940227917794027341291717905098491668783125309528963513010708665258628616991807593487598834161922744874998976681051267856373232107468738162065568313434653111280027928807594210523587248220503234604718455934278210509715725069340325045614939780944907403416670150266645564069457864523982750446132235654434443371479391097158703309254280160043986691568927915975276426508316152175416470051658361342058880324767368557046569830219071125818337471474145144357125013852975609675606922641760023900522648855283931014933583678815059771690891474643017673190466676148111439596472865643915945874411132871092732028757892780418585247171506302081592737770231200595168305517174938502511459919226998702853976005873383100282656780882648595734560951983696797516649068125851592723526893602175799391073101570061983523854141366067550291184994220676168262070797260833816340504886547504518914010321517022098897167973260260650970283271863537849753538527876008369717105321725252684135627690535174429597047283729172344024176474812219546545664262208029763657937747805229950038091463393000995785087337601698795465243625923586182059958913675024521441175829246378743785401069770923434450822267445422552893729720880120782582548626215843677037911458739596785542761155817586381389751646429338023158463547192586045023703115154791049013472581841304988225301463295708797501955052332218036477112821420963444959452155884234028957768552497521420506435951515730467207874859564475618913717382247015459497385595593347296666145443868139298570200024412211416530885111565964395390337192200813088963288598261057492947466595206667360551641695783316150570030143791318747063985942608497983723819457454193214477666294837484921477541935577026512733445896876451834961524934990676852534912588607818402382962009945065917370237743874937657412309793544434963392074752176035749231123498713680621293241752446695044066017931615051464956375522263983727585536182116521477587570749009231542474638096887402734691446772912230109799160499367198236325734118287310879711477253721638149748515210956920156667026626099881974457870878872716212567669203034624910086340400799037266892863698600868931401616050168090510179086293572129669695663071197703802048923668131233787493145861499331576294487712470629976032405062588169668147100230568791741704602702669361220530033222715471770425083858408090770723865823756218833680338162932409377084797692677219849115835639208920828487440993124403939749532945818692882759838757412127411908404305193862621964533328440991712933144764843527968743456915786193621604852020082025936805878259686036140285918940870220214332046394888640693510115082460014487804916437042908697106004229448002512053309306416225145505164917025528757130132632943948479291523249612985931287996171335970318209958725696258594230351596286193606322872519353243563460987805872904842484724841153738497221236123138706789412667261431053720108472413915502353704699401117728143415179883658460794622554653158948852132004180128384873956072153293286738450706633561753111635292305851684887099521552775192963321802633689238808631875505014603112963974535872273773130696148651901810313456974839107810849372127120405193263408322045065866986979966610334462705975336630113437118607343638515462848164324792523967353198516368379529652587789243133916904856679356107171004474740524183693467578392052986025170967700746378511536176465014369790212998631624918659683047870022818135944272792965418352911463597078882053605190061233566327681603220143236061981592842017787168403875376647831665115821560037966256137551489617263881577021046785265711278520796671897445500126667386654921028448777263995124687323600941736156411600627131675388453992820184195094859315795726954093320919235613420931504236955248112061179608869719044504000571997476208334063826555220537287319757034154134169076630565260167058559441807082443600800752231677658476040174219461559857875050160157900318211737842517027208818029218831329268334838459340186258301010385277640185250696871776310388983928769676748166004243960487304273706723746420466514855952112668139312389589801777854884891061315060794083331588054207002286227197827934414470159753776756344480485560235938716600110949330688856321205578821059420872216885044325910535000057972241834928512969063484495970786423435316671078495597747776495562740570587830779752075144659197279795006936465437184082825404284581154041447389347952097391181938617001420221440890881525249446641102708137274268730779383467322206211525244469169024156625886534835471458576728688506036193788868775876514473542144670546640542919483511636018181910321794702126724511559463368628528041882165458342298452824492911325511177281790749694638657585087967735481476445904732919713567945118146931628050012713606705664802369652802444204178974852746569646148392534609660055293661308018570861066842151682111357726300457474263421567045204810874392378630246895536893538417479783030328491153479495081083644527783215626188995278516331212925679507732001179870219030217918592637348396364197336794376598981147773928910656984621142997710067898097188155495229445101360645254294821834426544711408176955883653641964486514396620948651904590173198067669075304553693971829483681143703008180224795618615676522470179878272650859149977999028966478913422141212005896022268706713604822425223861407373073705910823640884197815916142137479803900703787147852898954775245485045180580966078232491958920587756059727516148838324678972003822176428357321271369485667394810412959186030345635103356781134470605794435694381257679440081516138861840459547844508821572859583453992000999382615060341083354204694674418845228111150781552827643159724464879058054927638056862178434068219526171694842218315695866702481380902072504470593393963561729419016356701040149526015113268936370803381626053897142293867084248033454481264087667144796963659838824962371923952713411235094643304651560309610607101521982221700604123493369171426855389113299347951107335219557056583502390965593149599524105881544792456445162359438321877603950230597581334454549695281840735492714435598418677016235358108685768232895455541792539176657843611436163569867154968270622458868058655104819820800146908521279483116899095485835616650613548464247672089124674988606646283344903573608081948593091987467281655227955303539430169230599552878200428192376824154485101997020131050282234739029415611194964062153783018662972150202129234878030660975501604816173097904296687008111655964596309704267887443768355009952733079747923838582357306659371016119221967212248291110012918768913481750574289663531206774866817823228666337070254306469250377280580295926721201744587982582844999104088640082867502667170626225326781605047428039924970472893433240405901418629525101225762781826236436233563770603552948116883106370831863092537330053664689353198254959165110611855698707584485309275537239472325213728936900669089674040674002611437764779134263214268570866888731206306473319046384941974450650669177628970337808060273695728328857129181401294196445020791563232600488427118648262984140058837273551888119223969408550691315998114424936053164577462526005572116587803778691873803253807044828844329414741981197213586450054667339979111475693305220306485246667995007677142390231644951336215242861324429587836450706894088678195487963472691201507991462198558506498767728296865077529754260422503983268819538815083877671516718443128323931280659468502069745575746886647003610411888064157509669197614995788135398434809877795276813374712117478859269001263981281569682438021094733857667555035878461263403179779991092020834720272627702724787002742026924120181585995936721889929927755818926517247243092830441195698900597924070683029051017159194150217337335087445397704794751791502887191522962861993353579874917009730430316979712882061541366284981891547756911779785716618413526976994398243442285287194805268136453318222189296416830167222618685784740864114251160942572742868282091107044903711957929922759644651834145595633041678744215926639956344799687471810860894708390454536745032721696501009985230495606467980457854743569105834752628993437757236800929355275637360221079750233275524979814206984300286116492199490714405198273735165321713594499454941701083598722054724339652727925747091083896831331415005668112344639422398556170717156172263718381223568752043970805241927200826368003609504146524876880449133935978877097160726258187460338976399070817982324287589439418710693916654750434719367160349550262299612913955936020139435726503783951463942162177549872811548381386315169012347160867766032704832357287923354962230982961247021905521836316004187652036511790245878932176680902692383550272911399665257669416687531487818830690799077139007716478289179475964555781783416367244028113068097172226528088923715101076169795443621558929367276926046718850330210477952367468545860958952813468763690469134287483514577688442018208383708705018184101954954602734248329383353409017211815197707638390109727088522590202648023916728651142309449333326198138818244962726301976764045970535305621724969746768697721585738370872926079413329952485761135210972596560078372148034238255633510268916852772216634340317952782042508108263114318326473801262509359276687458982980342117555584656592349943851687740752717361472146155048862582928553032158210072764127074980351707144624969957987536636564245845122476332845755247846474853633878723889840517483267896199125615173544281503222994933796146408496399763304394479727337393956980487229642576004478576567610562941975275642548711283723466533405330085444780754341795677094242246200271155494517079858419891885216193361295195300834300063323530212816903503352619835640041289682222891270185266007246531259530620633001368182974106408232785287959323442621530186711764122708572006833016758985113135140060291564142615839687225578230852899281696008304483213788817756885827031261420235651211246889257951887490706441212389199218607993825410372621883392442383238883414777572282312687152160663293016344575751912598971905559928021494231385006536034547019723216628774379518023312435916632564555374172586569148772021021779761174352938574997580844079235471725516422807624399112803951384524265556896721494136935750274604704513722565814077555662882866458464328445845825062038978588481974681063653495598919395046211031472809874392909558071905981309551451880673273931165398240189638893878947934504557752244785860749916507002924575195066606650353330277272471040184292916251896638671228959203512905424153101788248737227071910644707327014309570972771983762994942064138314007832568740702115605005409068743979805332430845970537229847019741042981520753673404421425273704974453053133080214887674914480650851938805997984219966794092135186053182167863675370423240755045473835428287062174209896292674083486997368334802258033686647755178781018302368021931013270993323907510229078117725650369642443547088626406304753970929359518170218738907588970258964264352880730284357205114002009614430169986410228015864108228160501469390525580642640573838678117354972811426355184899194939949649433696988000086855788182505268991348321652283606796510678269481294448600459870154526480063243813766392106753293407887202229926500203929999406247178691050629160799244880313650259226205716000764393422632105576846418909464362417241250216193233376433114440979648359054007597231192686906697422661278182935803823331155768832430008967830261319799163736418500621951305473562767597976132707787888260244517442700830525244381904020068543308673575335288258166246584698412816386103800004423824690448120462414566735982373277315997552320470482174982187240016802636785753222840076752851234789626881288693555256176559503729165200036290363908067933344866483385518859076179806291847769179366440148670388118204231083432255625587851502583090535735332349027453572880204737245901259666739460946354755356951905112311159397659531508556975867153113245831293708921846283474030262523992399497042425454077537296242043402435028007012704853745460408259765538309322471295297580659262040921957328297224006998244720712816431793219785811336844216199965642978655156989320684332554727744125895880550366112773558094433460177927452748368631128659466648556670520695910554980050822317549931738408571597308288707895492236759603330770655370310858539252237162287450699152138061383184959293931908934952768727282438627055946168149860241195948630848216969130464471223802002353779321336695515930916805894220537283694712398225612200943320871725903277538915569080579415561838834122828291158714169631438269255201582318944870648206793721869337083760865580162800527734615779753596926356792401320165055715380825896071294189512311784358999564075734622196428340454960917924744456500492464966996889538164407427083164512645018008396294482350311691777161433955174950947727449757063832809736010005918305061077246535812621433286176217410723706484647235289683773122941034209183719737413665963670063877055694019070579383167776963403051057046458582122046936885657267116029803721950312033135113354667568287642645974367580519762974934835122770513332297238192842609603512391735939231593127360801599059968831165931543259423103528886694917136194778432718321464754167256436906604629288008174457296020642195647399033334373046873654224829143676218391183003104214299070875605298952577458995666696954027680365513830843910449954637369798559851019270324982618591341072563479702278342067441716780294356727114411929893806671442109769089962161975323324590735487642032418230652861108700096695200514870052083397142431634279163148735634137236545347621565357901321545343054243140641380891193308819485578850274742342908298517419625005182493125323342765987502458167431282847433272005414452536395498219612919777853179923849254444214395670588925314080618183464562224610689188692536279906760314269964111842751445969367284905272149838120564727315863816586990317731355968285107845718533511011530075624185572735287183490370786561177227675060314745493593273998987973309658547192697400697773099227814054135987473852207582402290189266444109007350660138000158744242768193460173836597657262160740327077889155348700514775050148008358151362752984007186882997040352289771758665451984302226923574006426826937720988443317388980384088119956105062029064736192373664014632409330565353536159873557970965340116289656267112147270911332549870626522748683515537431941187096489617158201146714007709358044819626728706378176928389736729883628084907083230793586372356225469223445692235523081089170792921368694200947022524872194388947798800882433125424822036906109641273777947426981786690630962317595564366652587568444989258960528311841504299690727744976191372871822266588471971025787425965929387583827042332495459581410250163638221876760537137195862307756214523289304823618578196851422048076975829690995756262119094089446526600593364333797570993801916178995422152635026467846821477010268445238086050396099110037389993062792268805178934403070524663607722139282831641031844185302704596698943263643440467209128893515311536820075067695121782673798611648467824483194978969948636144709738779802954361685546699750497843577339559310487645358630030805609860442430271500240153867687523435462040089496819138497786155424280583725625655892996328935715970343808814564063471033508913679993704809328837416173416903455877657070729522385884928130593488699478658669719504544318034205240229616273488844500392237635171501227967011751992670245096209405198558723774620260236220021094753106024028736580449084510725762650166500768554556697491815859140823962598137005746634695784208597934875083525062754624811250291745261046829756028679679320957932254971538705351038249232511649052724532687826060608486600317232268958647256123759865631684243907153406508634262565323645961760648198721954116384937311548454346163279810957685289548654714505113558356923487922588577012681290645514113442355084383166966401514212144401384460579783405196582528731744493051318750296411183144678818356631951438210213782504231588809484274790022330409782813623394085986248103351614199525994899347543392052662120862198961738794285781916141109088221914696028762354126280781824414822256908798991082600971340290844426736903924822058528550964485376164005265546811602902378273122936841617061798301472184702518717404999833704561090760646058165780883932607694716462537438858229331786503998855511718128166637073678197118648623865508822845977654213854972160118851199880305802812962805566048227807917618592100671273373699169018033325514148869708971117018105199201337658238064050970248939412835266672618078660319462667595539342433290048532211535369609393087246522528166799612086995553149190139655812549590501004180627594306709281535228062333568789406558190253074016408164771025719393079412171985060491966691695915846585903242928671316688640757884908661171082315038778641312443236685510752088571469384704881762392855955167656344475497296732207843109647984042772378707954207128698047601975849088249798377522575665038390374094608605251943305993262614187116596551686467972208797802313852336895746857029911765241804189809114073849841797187437972341049104883072438934366451336430157936892054937981514209462126716923125139205103572231499807667829827645094563786276046717905448337324580633312828270285930254044991935837183805738877565483888757670408039181093261287644001611048872581197874598265285679212274369939129285135094822442693239747380067011071134212847392385007251126726815332961025054555414882530548673989560688465576750248540906685995805109628711771958593752426894963641020523513361616176766691799186566647941095392995246842435505435480614813305554126064386269398411827685592212746582668325573225669996784430349987324994002621491111931122046229922139931114474698440729839245427458898187661778857566489751457064201289520669797299462440232730740767155986342182934506308541608172857580090921231612773755773527787403989489973438140476252405073232710764633255869710693961881154242928226602946703415436063708904028775717677939003995828197359171392906882751777057069526337545924933221338186847976974181429007785621963425916890724183003396386205454378726051979966623632378062580757520862296370475498110326774442748500910676832215487131626903271726418586612795944109498842511096863084035948727712016765018347048066338599975531841781890398405347403799704323627467202780534713100623939523039566122335612658053710629812880293046477283317064830876152608715800846178750138820486998665269005539345726802689594732685155545619323898145137241008015989568256476283414516355751008752052759575068584746177809577379747429394155326979755555419950478640422799004767121687930464450992467174605410876915596117043878941072696692421458236486544841019322809857045463848953800233416865840232276455955920472839050165682099370455783520634162542041498821004086197716719308358292566377269832812445828209714231871563416450378778834599555891923674480060027122007670389863007733954540410179012867894492724664740615699236102690857720160090444596853957263853130815342332107357288200613839883239450105472912881473535795214888531217232715751661626725816832642870204575411547341473671493020666294383221575325061338637795449645878970340116715242239845752551699840211520849879700632231585651002063426117760771213535858365792033634292983150949531150798227513030447767967031512944010741885199275529926350268409815263171895272033185847900275648777632765803502676095822993799050209048517938503331210610640001265624114243217813489465610391920619975695320180292280966879391186837009134183530490497142363284269990522413308120659831731795670581834919671854211644958173698884888939548123616690930313746501587105743065229350763731694642665046074753294073485226453383562320560245663250815242249162106429934678029965267369730823311036162446914658636880097826345682602234064742276769632368419777020706651240891976226243029607805282421752314104929950282448039427852760697643553897175914463132205960344768461939978838378533088001524381858544214319038149217766066925192071944022700704174219649189417292222381878096127654128038481013346646026852825485100578202756433260481906450546041133212332987302498369977212668425066230508102142598098859687582140934898204656827305245652467634283417992971536377365903284891664918557298291796502109564630868913230200485803885657460303187593309013452847479915214000714216938433736905568281106141826794962719768578119166164298491658896027047689224150303007826407510453990529766593070725571663784654416477066838028174783401483018748439711741518549725577581332590025153503647506309280854461447465864467474599573530751484910955210066626266239622006939833436662880321852784452175938443591045784413223490137659197276170863715852311174624128409449111423184289462660173591371705792561084582175114815169362578238572391086789203193734265421214990783636800556613698657421672046266900217236232649276431926052471782637802360193360889764585255802543491709446274462410175235253197451029624562644623656336260428933872392387064907616198468188904487366207564716877892523397489580166862057936943096085870331452214714903472738928168587785151423043809583546296562209162709263912527715769495883942530516295431443303152778120785614584986253446797243200605186610609858873469287635530624657917334672981167401168221387569892805005662609749640525818270888272520463403057512429834284903376403224138241191970396736026730675967358583305045370330823703175302140257979180011259881067846946158899414210437659994069910411057608870289848414423914652699461228069426943011700818582812403084115108062769030290724761318129539912413192555949895977652089082109119486974305692552480979277949199069556680942991261201299407188870329410778604438687083152516896549660013029743794354996576643540769221764180096118633065469441405574227946709031560764369153854244357610834555488709303734184365762890666086280302506094944753828734964716511113065834445660034899705347982137618407829670238082913407756356359972326605441140742354551495659719085161471120191173553145765209312856834652528697414327903890718006347091143983282513332548540064251796632346878784665296944270442448792608932911157287947449571244573210089728031955057662917698544876789648560040999956193279270269870494124415325717401401820041365613859141453495537042170587146071717049694620583597269092095720994598887981575857771365491461101081606906452575770067587761406809569294960525872778363873669972884578963168596715331265650358813612858782346243070016289297243100336826708019444946654320398210719418778385272616740064365022966812858160684720099997320640677574391221854281555864435774815114374549734162765868283088368265865928730383676555810259536456883661204181612740821237692500365282061156584748043399568491903721820840414801977943290065884910402272706288073924028747269409120667256325374381156354963844446428694879491728591987418602487491992563826605933946890287332724622943897064357709703306108969149475815644835069375194896040675402069618000480464705822334113950678666507240702911676874600037858551134089853001652170031007139499558972159148087050203427672917845676041129349584874487167077636775226429861445046507978440403302597264613496585363007635050874971039966709265674639999163578197212381737639936613191424032056798566123102290860199382363587579553720895538132716355046025682942233792949242189257251379074206365480015943750815198570462617545739338733995994304982232012069465001852866343394479347064082653116580563786909229513465641352116627624099165238975128049438945105621876337663878517447050525173279011903470717589779736546540855160962861093606456400558154449569094236727762953252350264230719212270559157658257358913088067791852156848677468844552878874990600868000592859111510156674326217990131183581602536509868329202221280009766548729022591754182082982766733611660572195998672770772432190680771972133539290680037445237009540300209739817726250651513889828935043432239892586207319833969342966733047836093495854253728751421730195079025767292664766309223842573275800169577883683577901607289108870518738016049372005094728580811459267213691064771084889805800207813187499521968190375232912900751522560497951594834183408523139493411676392735462411698168840983275818480002785809305396356088230862397706178164974221682782532033421376424366418394566136425862107732563067643062274026475868826996480829047101211497148113762673016844082564476714461643992350435088570658381788155286138054096998535026232485965563802789358429365732496442029281618182912454449640203716856170059008153341417158617773837851779501690451322295099035088799707570154446402398510721764797538371614719708195377244597420938025693443450062546541939626135696982503499728370509646509653377233255867231267641569519462030212088147110330786496142709368332873705087737348898080908021751759115650375149459426794624933281667067338092899225848505199302442082951284498531711335536414904852274738356272050585423503557456865239814734793727386442075645790295283593443941488497479640641567976331959309823706491084909959053612792963540124978094684291276107783575516508313171267097576529032670480271944082248371090705434593162521700354357965048066199462497422163641255309726534030781027594053144028058111096010153560340261822970789747847498080890324811729971998704935569688682399988643599485883650576008574166506524779471365564139289720368138202076917479958378823400310484749324281106550474373144530754114254683567113332683622118090968247617007293687455683587864140348524961848738202616431408236079633756111543883616845692118953086580748166179010256063093539610238692933589061909305623697644739545807672558095610755283197104510032376983624692421944585970848116213215003340626885537902006879396741078268590010982115890622728045494230788463469657729134358715856255987688095276724264021864448120828128696833919452934868014098960443202915823207704980626135771082335192395080250073689934611943870984888867125499667158395511546952159243012671974502187534158710049545720438546916516523921655134675563102316524125503159940048447730874727545072675048717914842846533286605924883377930464467156418223829872086518304194575313411241789671412407996044073794743089559485065141823208609888376508216938057678125935200439539660277820323616292286186674462566006627858789837307723695714955878789586359300560178762177992807950459521681762908523494879676476146665581616255046233644157273328598744533737531128195556536053777243468420027028943435977876659254039941228515215285909901749223150905825863210644212614263976410660070349940814718247377864066225899963223126737831022025446224029170250071643380354028123083915104674340474617141162951727505459354442676777172603770404186968971997367318086431873689132187195468352112606801149572924221999605811717282672296522189014179566119193206022576769985332802423225212507758767845303330264822903236910373556072826869336187218090319879724909450948326996874970738603683428488678511047230139434558659192308109106269364955310345068219230217888857547865218937128242148028598289656063992951193167888190661765737881837955125360827514284154657440611957687295569768160984593800571010235815199031656562784283626285671551805780402526528936000994010081498660101968276619748290093373404602456310695835223753607712294905329549982731677767802518640151976439566397555561948283354136364710856967741471498200569743325838582447744322985192726975300270199979976399327496138467102735496850502412417952251900141427747796183471909886393954485282382406376191130160754295432388858014913196199590050257049715292684177484808720753304718452156443600886671213941335725989514887147238973635138384246281852325143360919314898687619487374111801391390537219412379689035614958532034071136242350133111870805091086819218234264865916339091246572104153535165602928667623375291411390100742072889645308628481871197889420902041933402336239672938770719003446287233450724296691220616818049034612654758537947088774467673515710675711748177019354088992088164664136598175823593564326202593058643294725055139025801450654782955632732825115408788418985269806073351052244304711474191272669276412059367742203353812933851551137136321341545610454363413624898615074213003676153968616075791161287134655601500597073707968955123054459023938681649898105821123535188447026312834422185102742606888848782553402367582548161638358061786444952000739311685787499770301553103379303160027432486404887662307440876938153805359449943738372524838603202959737022481725722377924586315273234607557309176815107377867081523440547495072946451684020655364457673823033938740216412560663140530906740775244459019038603770582159757043866058577458478647376094748389333961489589754370665340340997946113187229388254179816281575171252964128207616120105221616810878104678786684970999069113557223224452980486728142247919310473941544914203379370848074360926635398652416859712747529143404824173247987811261596030071426013206897106535579092783872302681329894257883957482713517799575830096261267038806080320494219436488084170683941031975134488048300958925814002042915649126874478775405954682130759138243788490894122148401407670759541301402634642494871364972254676026991004911265482809867564708665284212478527669905208650919319615552641073357920499034607925673809440110367958260179881196870406988736734107834650986799142343961987811691936326958711815882311477171815403123128952503440442311809106555616089717735565494785821292045079523699475981422163121221689737917426724732062753058584180560713017870236572938684202397159728455849786252345578150053599779201901283163391154547489016624776371056889297517489991398815774595207195877546996885163656746222710759879798980373270578518121982569227723819515569763159416311099068610562152085311683165351439295214545816252974013608754942256362514803451993697799091082218187284015632856544531095073416385891048619586003630293239875138536405880367638199625593165599655038764706989670252751911888524864645381153021798531979089324282904280027919831390388078438406214389625787911522940184933195912212225914959390769481907642851724692944053416014882059955059274912711945446699409063913521222953616844235752845667598617000724157418657691482269373587862849492923794297899243170561752311224537114914414013818570273918266700974069847608838854601581283256810159626448767936201855494845522425079307295679897564836447239624382684798848862263531238561451740478432822411922139371685267793646301187854637941660984194746082633231403483051941380662268156174831441967588455325652259814588226783019497869145096416034431639395433467979188747222741024061518634494859915213119656299643044708500976490478904586416668732609718752421838065689654311323941342380041865221296325969562293151940088411613318618938386353050954044289179970591762137034362358861381049896648250981621585542645153905205210224449682755308939886491873786517665537270485118954662441239425480036730623127047275634125694193104839013078807096903882654645415002280810950459772659452259886747892498532050170982273339035865322409762072367925871392687118540055157987717969883270068339961827919658971995685480124628599349762765193743244001517112526679031101155629788949766009371097358514644361534717701728163886638800917048317760439562135262795224982729867256392420451116733395822175559347415122293137046162245748142339096666084653372726955987574204699729868211391209779252557795307689057751509173716306506534034081164682997075171997832581870819547548237414467859348786982715274335567870829694737049409690469469341955030374826229471323935663542845266836230902972361200086522317531573657023471014308509904804598846527615157636774229151686929833459818060658569953639883456966105608292541287817916777992392106407914011242953329018320615904577226074615026956853336687886313373024283919963398586980660905308135481879445297590999338125389939496236184626226695340765905957480674439030423756151082259251716848758907819291777993200733304942898886732955611001247666007258475396033110689847816958736325012498601553381591576092866239416084466319855492690438672551637981372180186766575451078842695614713470751394567650046580676017871322977596661823936130866109185206237756458107332238626384082745868516900996435157914756476001690953228571308525455721540501220295963992246989625632658311986732707550381026479044748460301559333829243735279757449430073840698027386492549664417644292801065484146737727216761038550889634450855985620270066776230454384391371859404613312806284520003010853243984979828683133490981575695987264438507239161524979547324479812259204999940255905010287639571102129099293550690834869657639614006172426476058382028069253561999952728335963882627725185650792156829170707675651530304889030305389715642815530087468445228596798361588880241813107709199856337451135535682039831855293586219780681762055123085826960755959373618132614970098532295947432226592840551553083973827322507290451697299934722121499185605675076138057439371058845555189271745379860043791724658275580368911074253137927609820044535282885065357760336003921177360714855697918487819765490837919682061149851822682502456770437787362057998444699211735495393735655665146333517139074560618232741095569306350904634006231416369517849086749252119260009197377370036930820951856329610359399142002629967507925722306123540961021715834661149486275845397291873159521427770730720923593353872800149529245643923369315596828827454449268439693627135997298281659570350063332999748362403499147809147875061006877284077711838837619796546596814334594052345698122953592820004491239365459450470131297536297071897925163410153675563652685752326393804209445660214976653041536779713381801270907742282895757804393106716305333885493192865673313207227583514981363753417618571229146810258998753765603161979159147675164710450593345166061309920155979334878167679607720227114070713937036178195805034576545790264956214873369080994382460971435111660114777117809039815449997696302321061417710494621382382057893166338603236930868498739479808627402783251990913798620765520595771993142372589460920830743298461513994132134931024654095356171531966023885140337473209057288775565417212717584799766751469440431618718994079897672026220630258529342819572987712976595677405535188484479523468465693264104910212689726465414193963241383161527167054227200745081545893774547622822750831496433757506198527006638938009839246211236573310871378184446403984817625571781088227454201223143354860264288864526635835177100919664083384465362333742092786912444470985313853072145291624943836549487669559789651957635367189160356902284263295910713369392519782065241084284602760968863447380429655008952998862449917050173232527758576934087855937335124577424566159207163274583594810572229106550281496299731113585300746072936416544868002437965922142332825807304095338912789884095046323907359001257396480337664318901198515472839926874200232646826559809889664133853940875435198268781120151898283918242592474237771831515241093064842815106810811998288840259370532560462991757289831081879516081009529320541560179368822781115255940045030247811523625337795868891017402376228174930590448718434239740833835165464265992113279935937470368440148595188919017440207696825529157831790685349187871528692391162919127903201131248588553646640465101523080729010867697297022786889859366789879572986153009571021572470853768154989915418549296624584861676253814300335876432674551618380701341306991375852122923606502519512657974442795986691520909982716660311378287679167471337915685824450010632778727477682505700014509248485179326305654758067740881372464296062184400117396819820990761351220108343272848745236873726095182961750817399918729482037962572758211542060380984649858320065025509169741980685296053059484454054079232568530295565517055294858524768469978961806325339417254594841465034070396606619363792670767103821489283427053927538413234455386215728474140653145680355277801502344973434323708696822013565844954953862637818515478995667471556226575520610352276179924276684547366080623381123490708380625186872523533141886288591322073560135697952396375747917005357455017718228142656579922539126924684888933267503991596430277455481856332898493313932805274545663668613379344830928923241935229650809000518522568348577881824092390265896392997635212189667012646261768981344465119227898723982612245019434654509798998005158572877103608346106599146685280981641048890872032792146865027602031567648101565327416892428131469148800831536411814928942597316115945434413299609342930371833664846687615900503212478874772696868450180129997024097477355301192013546355526536683883281068465676259410441226146291276349602584683007816163741943316143449538713710300754660048601703618474492831761657993138187539328704841777028532194393091739551414549434358886527832642141918163854706528289033110659981706599945693335989643231559102694598685198213827343366126569323509285316498254228524708303844058827823853822296552518016826002443592960475032196870652326604048070074944495144895270966287572739788259378336798375713220544844339651225509893022809133201338212654136247234366249198441215413954518012278642047191047080232314917353445942799758042816587798592169410827567352925980443259799420088637639513597669048473591162518155092043263303495904129823092795308852078345156972161881984862527750625390456641894062876679014970996589662128208138320838787484476452238261321040456321547818726094929712437670792908207070121277893513733992251184126162144540743072564282155239325452885430946162111190301071259269017928377698740541301659383173194265649044728305828993559861877795319702162130978932337823689744963776003312575947884469983237188131032203843416707402932316552107251073735441587560145775687776744108740616492516254798787247367856477644164502753489167227927777425229713649451804429628857407445633791276329578507123911888952366234044221396609152242747521928227832835565344759454952534148686740722284585260950009630573930730479087323579621436350857491645739593300859485559540099892926657192901349404137904677572114372646904128190960972665768864375783920450121580523763651296831835105985968577921580653675817852843263911918839099472495067081857859947511530420582914666581258684606787092151102864297208834460443187941970521270116757403213694831117328032686746425555064973517565734804166925069540589307078262880197292847759608013463511740034643876368413915615471181020109940608398704974972841098629022397739253857130848149569112959250817833024638774612726407336892715498146651167268070924808993810709907104809535191913146824376100273701673801025032770897283493005022017870502539326785187427932937651325414880085973514994813374739052966163293449097728757364103741533350004100327387863743674817137318326994833960633384524882110416299591211662875296730367828129044478754138873484214956206773892075304022482662960790958755880963351674396418469252199219630033502179572360238888725329565473393449763072248329480905583619946055774362776367853897298980610033773677319298537529127482479068719517179565827947465072096579434955435286056952098686657493570058880894326115034828652844399886984899466315264917570086178736401034466323053418197626218965505688696975251214644893503533642455313913197889163337395310245102718674627744520637971935245734928263815098630420558977938469406012148393450323883214164995607197395095526200494902442809962809599782011148339593818644416472628193155081275234162600797106632922761769373438807206819130791168670061141270015581342574988830047867532146992046624534761014613891530619391236553794903141217062674458447333577999935868944915858938781191563486911212995275307862454713087050028898937016537033107397718552648943233403316940274366786803307514101614518509656127601577114966278705258061859588945253714375728436238095624801122159128100997968234817860058929350476539465816522080181779132892632736493550283743206685860211439746282006015481690260715097727961879341333567963537641100109892292812443881610228885701185422426060356328815438659659957213978555008247202547275660494007165607362339809011809659135194594028807309468612631048630775664532968172628311207539589996329724287228791018398755707296804210548900436761317344632573741882001884349299077909497189959127862654644157942267105089492472771587517856351788636612866026823995679215957920359702533716250662047696376573063233027014278659139055450881121875689262621610001067657102664670485224715747236134940810830616878779883166317725304825193873615934327391260448418083020857474946586252884975104502570447057437455734019191972495490005373974326819700540420903421387986272486949309586524157210659580089851687005317058524267386669312397131645540919205399156781488326107714650262839875057788011562383482558859677731129145968306900335873117565183200731168807445754460837438140273698692344617076582888763165537667558262414311007806596436427194525832219945580794509701738856811761698307579280380638640963715836647972595285278246517136051535161397601803179820567185693401564320409914642826252532380914710680699679166334573164240867879510150283136788630940376211450753285460986314632400078864528116667959514596335928866497328431076421538259555401311208369813651277057084194303884372397613281012764812865763927588966083668615924848200394416911775275350556208507148136671606620798321751882301359118746803274663115385516321819079988220047046571538615994809901196914784988682083287316783965093020935565266226591283170712920820182438210851931717865566099118226019277576893899302658324999158703709217272073698223893944002293412002172867601614650643959488867716264211082016563693902337461176625182662086744887076538114189766013557014886460956171754488761606725574376287428391232256022901218802615630961945176641962242928421568188896174404610625312791375330352587486182326701375426858769801304328108169870333626888463202770641242546918562921239098842113848340772289967238383186839012922296070364710995667002406904913004359565003506091809881216031283389910511769967984897518464510541441684621159506219612178819550957469333333603637208581837866316504562532801008754245817041910863374779315187037886074484871805405800413480361551540753864246647548601986938250544166506594768797570022669797686437620418800798196397006031987227250484832226513177986164184780427665877160815845738783248157224568392301041319304068048916417524561648274412204837929413917122150574497648509255610093438894435974094823858272250113862252180698923746680256779203089105228023188360240470706797640281970336927244101606081063363837942350262820123053673116275944738222313137924806735256472427448515358370115578853784685866640968048252799192037751840376201396301939962778825217888952470834027694463916375904883745982358925592101629234544985838116895288266931205739747244323967897482744458793727530633924592173287401388695398474107871315999596441246795183434736570983926523094207012255552791614081686580520663971426473350306428938041339813962805761228232723366503328615207000284029070412515182774435900935488902860707062358382910256751150943206509767277604866660994880263437091927791949421368406760602892518769903335004204558849084609213846548975780469153803779513553467784581101035059045883675756072866942605286030890428162381199476174373532121432291037339635307416182090249002626218467133573276445680687771961931370982497554208745184636452724529887206574241670114277388485315346537876955500805908759789168092417646622114889149235404297920246950247283531548962333536073957760454331789512976539479655488474421303493914867944107832750321998714686774413701004445753458053851516515551004030594431138550661732250331747256471059277744859800683387441499702064118298508312912341897068940799365874894947746900496195195021731650340994637321587295891542966538078257143372844884927730475594511198683405608630554971629503582006248648016461630507927641651614034982010245455642108352209010436923033978500445143079167068905997646813435783907302842023942673936496691120907976362477246426261804963603946111321273251237262953261853585174993686750925781910950585028244994153873980378434051738931900375517376885328298581865187451005385262091339439251880107225498983908519877849537135119454884486208927199553040451132124115647846572806807484707121085353092513353132672207278357355150027560862297530589519339969313037335505832283037306988918855716452216412740547062445077842757793092049868043145136169316767769799235749784869011349406713821774185645768235897277849549241150238904895116692370597512142703433954270638627025232717297389118306464201949848629137609976409930078668848212328462022465541258625745953683185099558131797180402946902622009678839767664145972747004516172083911007669259764435908310282758566354871890499909203605608239384311650606952339652831434819551581572639973293466413395169747331123947702033466109198851413370902237257699341902954348666901397219142840761328376568059241220785528605988065409849306082476490951235412634443493590672331141129416170932090489819055940343781343533717999095185336565490442605369065139598658398753810487079579059954960860858040533266830396802370797605361866332174077421599118470597914300122829218470186604215294324148071103972833890433045647672267264651242469318863712035773359076888511726008339018508688647834182058216401593565164813986576346106529842995924326915624157490366758209974123996670147975046558829928913058759043686273376565566278984131824684891307393590418168865625717103230290759351416203813915703614054943647518073354833977803862498920934090377740316059579978455293380242810679100084970266295838836412069394918897263530795425158036999140249598479581146791009115994210832875765343770692533945934342570490489643488766715288756609182168568438376643932508474751072889515056405885116395204022704432921159881433338991955302489949610341419276137003771887355975697095460043095780426361748630898882346805696744822500854244856322594718630223593948693636368572138985595018144495600744306469518673930260094871194642729744179446687880049324055254953199494505325844742185357042795444031992444520479963660934695229028412064885626017366570215649799780889394152700151091959723166448041874457332828344813931333539840640477831978718363358645956880205909761120867400642337501482204458688978145415407301030885814329744854276589784834284118691119025355860411493661302564961473609015666301363582120249855656195250630101420049754143214020726666483018826618677553641103138767835420618885273949435215930280629710459150437187391721601516885295036458357383756184404050954178244172731044896282943404873375106463458006361160479338184331522577783760526992126029909779802043244277293518371509640061542981306875032618724662379965820462731438438024036217308113402486813602314458049987628730811731480421632343080861967791475640089444718957268820440732652001957164232907007839806759489502588806011425403931284866406474102830738233491343507008339268519452115553910384834006800856452731352988621931124490492529638244509932998181966466076585937487846334373944529174773921051669118964990126033160269169526143493828960680050725062916599295539741345293922211328319357455168208906421947460412261166324812471514880882121418995296987666527471131706200452370478046903721386240903100181002514222000193889843004204845350604829108599990197147380842194095385579907047884920165133804347023660703171115197869560049544910303861296525189066222621272080714644409426165348559943200568555272799623389577236210161293455242477001597085586273007739787843378222830792018776641740134740191485938613529224515007486638712514508795200001447666639426122524337133979878277477725594273466645063959657626945913789426815530108702142412145177264180968236117504713504116989750592738489960914787781224339915173672615995252815675589898966894394039510216741463285098746556795361436927953147712329434605106736267158872870187813349081786702913807105849242554695760998088734300362510350063110983308849824571270193647772079017482946687150650525661846761798136142421343069797980733591444936853552042342825623459535682953656157872986795612541280649877776601953933054586838082202773741723282157316718354731472710212933261217338856731316142724867351617085100198753798788892792418486245889474444485350656644192482093470866644496112127744366476666142343419063460512905775027350260603447432619194024916172959220984787641523371385941247938195151445544234862121867392079336734267590792981437378069765911533028277752286942465001157742718327990714448600288846733262967849408969320581063094326860123496750082868357804127331354316315918952252938601400215121752023592444971585790039193212054865613084312028452915695470635776533968715595208558927804591944470397006609719860994295155884575942531227547932447355428570513577205548681296021605059883631513555376599004766294385471574901458051799301240033121085919417195257093985338203995993216960378036887216600462979888718116154185112530175963802024638812008784767781363198274442036232932165467450313492660736626185848716199968154447011639345220897794773534448909993935138672473751515764368706796925095161494459592774041393663330530441303012015881396938798136393538965971685717566687665184426011733407746301266842195486947393774627767995959606306264880969293825410599177776022010932786106640498957813651617260177789307753595162734942029504023187690731159720907595733785712014243617947217820348999753723698349887757611725314981511959696783509898199413821787902296662219455475297566520322544692258047619590564141558212964051622656413812127317525074995407204286396456500574470487352087139344031721510700468239799499732151547692821120463280951258029652870274622281180107962137871953135686084835968603854029601661230941541435384799367981713474892218600109887256446281712804654341658849170245618634519237226609256834597758108674775708793798368073400324818944249204596761692747663278070762661948026559350086769222791737302616770896110516696019882920916530495220368704698145106609991998446320722024199791685106509257886250300009046897698750547725587628937023299642908090037791777229615772170599123498784288296081653314693022486214593403203605216962221181801293204549958206065497782583638307702093115025137311629714714723473944678509975533685990331104466135911780440308067324111211348192410318769472310909497025507056351265912116819083641043409102621054239247148107314843033995001806338318951417155234863913532715163910014404325886508813443165910511356113777877647374091895750004861217284696958661059739468384045286621387789207873543889824051629583342582410371548131728477505086930340117994620082855008861350718956423373195027217515440696017256633354736201197067791825045864541777267038094942725011237025714483769909748409600720811898918168405465846519407599324038631594054876202565112445070710544097841886158071049565322360458088880970368963309469536003619068172529017405800060707670179777567829876811530888058619373769577970417257486256692096257153421375926084722790713664002011706957512343692207729493139441359013229783317506944232986445230320592033960012996038938551222595392119317872579649370863992269225805613139430054720999908431714705971442608402223575609241779331221578183656071082780725102590540685990901519956778272770538874516430919392017338621255935858069735358411417135712512770006283865467992881618480617724298596369245384584303245289298053110325252664829353232072279186774269484178186555871664075574018411583220143551926379921217527895114520054697767103364969165820653216011256061573680660188353328232421732682472991389534568820998280700812375885511380234311897347158041619496085193673107865788386939638800153976366747548426276426420255059945877018416373368051134671219714100871909720725889860832722713432976137732168296150484181519237109800432642867181975495627359480696417271400739391978787571894885934464204184465475011288154276962192943582416542830084584032854434428453712434413780319287390018875759291417140090346157539385343886770403687447343046729014063571221687972204405277779747780459458253338909561292973597306040445895951157199676079140612892505085722299311582085584042118995423835240433234657187363749321862451038512565117540077801931446486000471088606162200564697965862138039920842645938353445028400156091461972203580468445372839761313245693985265774889836191207149394060714122622954496049667944719608375560931751525216603277619582267394485872679370673673116305359710237769229462544165531030597645098963931070291222327241585165536451552145832522697036698064640345013257938818377073876713526878752339489399859714045051573181675315324990162261540526396049677189474586161310509642486232871173954430780413527832123905483157912460076393386550423583092586994179742551602904996732234052867843682551574710144503111941682030538490384715266203072009264994650832925946884868857394285160284457217462454928853854480681981588751118201006674807149234831537605047868661500801957758637659241788788877145006874384024046017853280070869837347259028842710798843926637528979433612508018554630668687877012604654084294470697299130072589392057021553728615602202647748374226046364092257036684181527505299706368616202148730833073883453877254347628395831474285872224086437671955730551369436568352953410632645485829617890584629950751584913266157527088794381192226588094521284508456377688499529240606518447633922137270226031455456549861498789493162837005884548710802920506608159525566885934840532369996547186606474285167661984046717415625412254375228294517181959775086463451741400422744080987216828230574537485378105304272366952528771106914715331961056424727201001202983789137201581044676482337186491171626031110818594770415496172935141542700758557887300386085765032809734797070273624228486932154606809366916087878238175604527620873556022620081900910569940812581343471295560759444338523849966046801145885606587222771152352321877359381757874358407642222405113544711862283219953568967797426181596961711450194123395769147392875785962729538282064010742142041022518817325907744369512264260910789652134495599956718350373553464634556196373908265083106194525001058668045521347866777242168088669758232374352495093435414670788900452979840125066281803975235670727497425730304524165535534670808828017964915320537374859053301121244842092994936182920451628660970377211629460669789143022665433818402913659518908028325715876073897557752225313358297216732449664658973997692819410300197179918827954050772726024135474674131893571965171894393965695943733394072934704441638565584143155909903511907517014842219365234591825680854636408259945093465393468007175225182434304194124963498797056578711959872678114803347004133858563134432161131660350912823455355333551551348620129364159937896701069936324251591989180272408624087407130176763971937839505654978824569176106699353830180714154676085720518837931362322986644138401196438633311642601547079356838067020740420513650674240136963922863935866517700307155273096351140345784361305891027455084879768977041276752073995614730033673393837569000842141548857255672199117347782187793251395784922563315275401411995449917960100731430096542446367441251979579725085812556738126713664200447898066633832291258444114136258939251749077185195392493146650361213009008863609522666603320107447822826018679554983680150072578468397818551118520278540976964082187253471392252298089859257677119209297410461547114281505392861354550006483941661517094010294991299014643410566624433742456968315042112089560833645446213489688781844635989938656587459867435476241950088983593503799435003017500662141424893931239045797502583104868253507951323766354741068845115151088762209213543605446603189722280002514200244808651813048026875831986685745609322845033008607973493148749226869112987249904949017250714938194947267298179710793096316826632785444352172156950814285993377815236094645202324995092108361126794521632750230201674358451744364570567260408957575870421457467794265705620256682206737527788853990682735232226836104632613243538002158613303421385535449723539477636021010843601624711980760302599801178582175054613818405447132003950782151687491384655123814213475178208870276413187909195442749518074828785938358171596100156599534434498581937757296488517600700133052278141761672965710096806616862002143777916128926129766409759433104820888385046110243007021062467680843097280844596105262122293498023432958268817614549023786023692130589721866768039387150472243086698933419342728028934889050134332133107932227066275395388656873852311471959510126412087430062480143734185451267221176141346876247732592470897656217862273849077304748419002472686130226780202257164677511252422740654224232418686430820797781346432252403131715648767095203228058095015973701954099932245917391424848351555979108115560733645249700942018198434778877335414214177348816844142728648776704876590083926529140238246551468068580007504955193014560729603962637211275191142833190697301133280247380620607502026622679439554150652920592200185388655234663062270547057151195841155726547910083937938645962999717766503797241412034022728121247156303788851180669036697961708401919362970542549567134612319153445874872507251597835420123296930128721532491099270746221927912210590659902235984284547330934583629808762089488935611696507584471884290322646398138080931022116680062083832041578524913723162138283121244142490551466105857169521704282272779831799680693614697746534582467589164132299921740582475860541455683578522499288346643382460937554339706106169522953013050386341327930364212107615416635859861067124783410936711180575538177095423470004982194993877050100102140565207625141866955553603870689586234925273858616875921265987824615763148069659068337067071427124688824160156907352263543213621865134428464307375835693590836996562496396506196411093798840359304176253349708685820257940278018232891697238120188098645354051369628434785737144752936423449000426199975132085812774819192832848148638099531253111224191208658727254717311831036708276582764173096888444188286410547014830041883245194985274740915479962398267006537309549191747361669929034764730847621798730930494154502115667525672236713482254460439069242188540345746754320473002061692292229036486289063099510012651875117794447832826188048476146976178515398533632737344056186834522683475585633926975122746738598878351569141817080900018233037861416646904488933272573279369202385365507697227257036602678351620089727203115006078981633664688000074439218163343175270270883923289023884262025991105948962306903464754781354555160610426811995773313953781662335778698130532690734874562313883792256165108064580206946794531478114028979082141083528669304126334836436486697110440674554784681803618713966719307609162214294964226812873362486754093628875820211936813379659830338649883112921783867737784361406386902421439888174379252627638307938099146031749455636801345746801537865626815146501769725068923022502250742191678933519119749335252724397416163935534115963798129565924089806741839163421845543028595734326995910180676613898374323169975493284223158023782558836576062704929408306217357159358026301886112172129357056657308976593598297451288064590723005935861859135914255636786868841142124051372177857401173299039323714237735758128285531345920980660560334149638844974397208112552420246945945983996137179402981779547592337829177911805777878433209609864783977038360275171541704870384719529513076117689935154936544330601254039210377214195949269406816371033984144679852767058649297288492932251188718436222297936212328150031029728137072298663261646231684585418272592610294251426858860733741758706705457571935397233780126838815892802723007243910528629410507840769531646171247798677367159236676349685492499595444551807987511393574663171260145003188475451786050624348988624397162675684183813316892774996098186795341442969966515379800017716899124467328411380235953075699270970417387986045751703317857085027806649116500977072134575946275411849647021589848232616052831130372585303421871480860601981457798936732500079934271587607287521948635361769202959461119038675779385509531287414290940846086041774288038315829716365338272232786204013915744873616462174404898054115478793939569090377003441312085220132287480110812545605458426644309221578365636293042485993727105292998740065620766321706987719362701964777996271536166975970767823647486503354371053658522837688959128196602708601847280142832853070700184652232906790925023486795324013283736092737863692026712882924977829710066418278938535899154238919720041628349292354405501180318837614977748781814986263893249430129380679964401976491897621657692357699024001477785050075640952097573347044070773240782828816730567078683663289552930165642607663147015541233274243768687733519403955475318441306340514139491008910042410833446629803676884335342090846364787505031080160741737300536637506233876771853722570329207619243397055417610609297693115456634916513673547433583077875982533607473561719714715236908253629655031209665902723344196965672437873774740107079577786187038866382412994486111776695869352891714732503448820349082079721864598372232657664718336830833563697013703630405663784217830036935713007228251839256987718412580304975180961524517786066256855090327770793985019859078949477592645953847633439943105470530135846478691986555387365829040041841098285304997762058304832394685084780685115253515434247274130631804029601253124260802205479127160400045590114392391970143492394395689413875161934784441540103433185518121938323392935472953712815508564847163091484780567534765754508537654519508505992138961062975285278165343798478340095705923874079898940732194463647019087770072611765462006370896083488058872950584008999127439105673535226780583436815763341153499565206264292570123376982414684347109410941532998277377599443516269425533063743642760390483197121832664479131551591573633890178644289344841529577925970503076719879069922669838832111907365805387709457125412837685652828024687420233551059309695921625264262908683489204721135803061928121784880497591836544066104814297691562404375827223374070729387046381198277659232305040652475894260320348392998364727256234859855265919262335605359704046698298534208928057118344074891909678862289145356937661279169021199856784949920200577012171735797768462878550192292566490561265367873746902627670418248497801131643102820187469487911117193318366606321197603935623205553079817104024657440758453097486275177065566381512870484380292572038471645522566225572059496296951461141422359107407042428075659776661548674644835267704094915777891372127129372941610421442906694211369104157161722310353298211437945547742027476237443099462864303612949769266633256252195447032283338100152879141567617640109726956510318931911025818521615317027745021226943858136359171043469029751730777262090184907822266120916153706037014736357014978258553237358381775774249065256156448558584185924766000819647982096134615982635427016467519674419215150386400507773691413533465571747892569046274641291816060131285106029305926997447175655692133545571300529643374022990805723289223081980695055559672262971367341765040329464513186964413409027869036465425335468466543646897268612493984628670255641998723948310405267080178533575900267286489981729679533921660785608858092536546154444198917967329552639645678055565021008508283784680742388718015771558951501767827767429254922393681857015406232668869604900550743272956505720577975925913437692121151278561727687286737012270333051971392114759329778705390906973146564587219621715188642296528518892659860292343536492677165904121665498843148859384780641132596995012241544386954652797047778034748073423458612619450842119516023016086987659461215719542019251792912615694563247780061185968638466909836998472941350599552856784501490672657149807389107168333578257613225073277324570792091933211233516429172309437635560644988606944254432349028068651646739461111394701541405986131699634689232277027674882544370163813605866503416843742754475283124144923133822031226060257964563208568168567929554057400423352403337249342671222002164712735714982156125061056936340662082820611555204125226322406328452885343610495173068213452520539431231240417843023430904535066641051378310390482893680372714425368041374918082669224531390719811619096968802207871077776082384943841550985612161155489291890816825270219660755087766055653870813171937522066608688895052303667238691039556427081947279108897730572986487538682602726930236635968808494234731626469951719029037045138604700972646817942518793312648226172233721327167554494527229799013937437024065703967537321630102058520246277479004830746672897006010522392803157476923893377675678560854307232591123267256651940913024333752923171041059437705446210516867723419084590258856085895459004776342691620500922400558465736802207062649504121678931008954398354716121191327966354440488944860100309994538616114615339062419578736649582415774056069299649671036841441718028204865477789657596466786437424036106544778668292937529837054489280655726924701814326182114946666869501598989190930074521390270382654487172166616357963703264925113035532132946393316838860998897950965741327357582690683843627391526992075183393116838274819239130900821866349543785911290133709644144057548264635399238382594233023144918111069188860628250181122569502395993698722823410412515575137519528918336007566635140348389102595161364760085097996539179913106430934011867220285112531256306896961050070755167921364319432356147414894457538896842068999782410940331724965425929877470891744875888569842919121782878858472076908031262155388580314466855190114735256936680490083068886901854881761362295804717439050700206569100462874630025907615759463206625158917900514514869986952035324602619434937911273425160801292663063803203703999583902224527443555522312069429299609892493538890928915526735703049252651736607800810456311886341931836672303585521269557492068258213410324481280415415232468971354889369291347712140305251042394444076448205622626220765788091605309125837250338025118800919715260889642784315559377840841857841362759975686941775619090779690330706171850234761232460015239238983266756775271046923072322076350785293203911586383150265705456269050460289753959811124725803998720453769257725738439259502578137357409986198506234147396570683560212110702107180342054971749110926170969129523372625376388981188597950072393020081781120350016324578708854039530668509522540294682059283086630587315701394795312968835929429539575654251975220832695238749922051451538256773602031368543780796124685956208207613732097494689038141959264244569317898146441080216970154888071382330088955876899048801955539848496408805615514669135550623293475911233531648481433813858232285613050206447389307169849040972183291049772948809875933038245183715371969281563672708409906079225905039998949087640559992668027702365844998562572014499762807844813712983916914922101308258380696701521726275233451555658983025050793457803071583028171667100821279624154523368193145540876827854700210706117364403122332472116694419944685683206159439264369724875452334680356599890796213934946702049879458082232554055949068339991223731266748022814456263822163544091531296359326626028237252414410027443312730665242694390342923525942467185979459437817121329140916139207533803368515256032679353233251751941967011965843952126432532997606926198509843008198080211712985748662780813392318390605285385551403194848853969476699575725808184506387302696297859996651500177389333440593579091745191444676179350929894999072192198617240285770009646461281805001057218962911897962606462868915202963841070757227589464485681757806248109374551566335120390276654096608231342892162411790506717341980986602661777545110718921092644716251245729549560263695773753912278686401727993991517483743906056852182741030099242705776585229732172854848902389833501309692719705724126691444025941041653793656148435043044464453877657261969794037583685341446710358150895120519418611557225304586749716142646970750524586851283231977237911940344728652389325303205324454217334480297683419075358274460918935844676699863379754004369254498334542494698032644425158681498505548965262579770819663719064238730042559457019539421794443507670430737976364504576031345875329729428958071203251050899340586768938739684897815842817547726164852230507597201578240823369854865066974321643575877700724764242932838621710694176835141935474891914036482191889643688832695729210607375358864323441504038538973662905527183616966664201384691059540277934597696030569446074825534328710315410223768153291410203387215848630802713155590067612379338379451939512753213028920585333037299417623041411217912852961176775834523215120635848405609876798586179757718283692156099419330814783245677995129603523233948265893478646688963348175097398013989390803035743195508304375314330964531410041762967584840073088206601444942990127981984035553308525423541799417407992911123451689946348265889725239658460644321445365258746493773428168743200052499190109026118422177049101997261580634914810595326689295829575243528297246225628803003371769514210799497568885211285194544010476268302523281578510011045533477302338616672977923483128720992846083041074991729958804764429097589799684984830820109921576489312759796532032557914460460819142630830024451710331718832345691472584221584054261183428137840041347967659828745487601412974164940436665291667894384984478409413568195436161684246957194269888771161714764475840094154546000278014109240500502509483317651279803971736311215960404211482760223432971534664131026866028353674582222747335793845875270779074425918605958492791169939648664755150197663631999897811322648991106620775296629103079652606332300988471514582550870428678797668367437881430829907933643883923510013760168340174174856208358317521369978461310235754091438873123977285351705392322922762181231566200386050140711891274825090266128845920110904625518397704680041019541741575681071265753685818813515448985283043049851622479576504309818411532385233243529186463621984594300322065962348485269538454762452466487495231682173456116658823137644722016442780737610820632930381796622490079584472458191899874263318181771540683465682518121623356113445434257321192337431478283745660434602037397126129402653703892266049236092153068705177872651561420478816364833708662214857893351864513953988661563088951364228238183593717049228202885382712043733874276069450616853573160013582863406008715842668494001812582354815146199606881406614077394190946780275656645823849447290406230673057113981482124196785358238428061226017003489047905019994880323644320733917715634965905888572225016116955720471089962709444871625646271348507880879438127259973062602609997248514616048367957637065141924972414702310528055763789490778814246639072850562666038353033302707617521323268583079690156017153221020603603342186681149605962902272169402870557363687573147628291623780097207766696176875520858593314163868142567197814776895930413240339836676982376854921196577325400810996242248450682842621587547068342094697690108179138125960999096901410219480569937414835969063085438413147339009826750998026562886606468875955102236582147714601423201195488968794689219752681217186020611354069087088792106931891302137234095139492994996887359271167376031378983572148254693586881086839740416982628680860520374516292081936449106584887439032161854445326610726932424198734105482475501907425198273737185350892601385155700245124695676206395427518100043460576500449635739323714518061873727109566729200982018540771685388353355132125525888139726680282738721873617597617044097149808019335163533550788909120967257085569926324104675615679592781705111651080751109330536061876398019063949191099446974419958346124273806357225717822069083178487790099848446089585599092624295631092371076475512629692322135314825387330019628839560175937456261233630094135201760480828676683210893269541745120769659996172541123462630459085066087255133707229576609115937946084814687833520163757736979453416931427258301753254441006707363205790431207396108362011801561311502238688005386549666145762222062609146764438627723653586420460045994570996664799490817541631647203669965174274308886252084185097393679684651742895076674741038816177183708575433012059008196745584935355523886865493531922780762413813617891810712331091131137591790142437465988741083460603182980401774735062058059382230575469657760588244344616663341332764035935587224615240368187214929157234986674045147160018913274913532829013851596432188422011686134642774545270608962775620708548697737517456474835430071899240533295604964956720627424562127892732654830988216000684254669697930738127137094302007234691368068762630208580006052856065692422036741847761333009392674034566873248839619372358670582396139480770509506345336107656273032681289068132635417931062399108709720699099672994741226201630278500307440148037091296715947913868739102401496232789115852140860727890017175971812739058754172637360444433669440409518816627013188574452566866887393738404879378146612280599120778928136474292671260847984423586078824883624364084249570636657125076503349504566308434212981859638830668737228175331752975562221453338559993886190621698209912730123517449899835255047339068874371777737984564921871299756616366925232522965022738215944737205417442961680996479838649312961501669100072305091615424111306211364342156653601811827962196583901031292988444981383110292332926198979360765616817440260431741429338642750105343662816745535437862859646212408769193793079415630952620645775739285033309205695225316799454481251005023690317349980050748365337481827105453429237627767436203387638858022818390476919351353516931445421904431045967901856618550440814497291648198509882866684609878512843885436623943087032306034144299285361760796806195523900267669368929583840591869522982908890918166011899712938331951613500151515949284645593853936639596868048568034051256844343708860491129760061371092280526738708020767507585154847413361656665614671979709754584913150716154627878640212716293497675974974315674812824057751857490888515201334279996754760237817738679573181056045374985935949228134046747773621595269193408073725110972628191954439416661506378368339272735158356810244450381434082884477158971240589638649087393920287263337765174856294100519106611728681514383430000923075178494131835653417984231362600129686943842867850711957245474796590777348090749756741834531285950664125938879800956231056912357928242588510385863657860105043051830036780934023757530511196784067205328177359358066554101662412490839137616951353084723178494290083239036423164214456773477032525908961493571071070468532022594956490579246457868560638573197730639927665752715760738785974975861247551280531090707471296256363462738654159699057987422651648273650537105945527993134231905465590211070712177583394994850403443973541592537505992233499077234981209128653225199357940597039709758591220189052552623967847831317492253076380577988047237953078740374411914453337784077308031654609697250409871324544401058628009751301042408860881166491729138754472045136050656949906845080329278778479672595384127400761487340438162946697918604531724821684728575779205706089043259167451887179749489803192881486921804278423501650746563795082022694897752885223402349037733168668750596989913606373686650568847945866329609004788558385689969675702603243236944719089270159809223308579821930867329514006093313553128966220711818915755868094607926215485529797435439887947747861624701509312540004002025171902210237681036809063509294607935439237832400011545043361435781449293727230820897260274163345242479033800827193579256448157672159534618242025503829306236935037453191025955172424232920626802297880560668540979053473562362764336418090325489323893468736847039140018592501997490856836525638592566594630773982357977603950122736602772891241354418181920924187295843620372994381121130295817998069449343514179919076487850377518541266277382590767835337339614260177983012334753565872392460252953164227434582835906671146452853964014338450002509680708697585685016672310925800427974628884292984963693199353570794037048490285313764283018021010141433152860981861907842921135725492879349149975599819914663403236602633329484072279893248440396055984074569747732137128653028114191300948419126084583575265225760149479819284951335201121181290133995533782813065244292493603056828109706694206068880370306581782672406638717986325096316645413821150974400094726081736701556940606759138765179510960866309857630219517470444620086775521476376457466334524249309328809743957727630488417132848986031247104093088749942746545311001007883899147677320269215147265716716117150163840317545404769200260501058987694604644639516540720526170922306900420097792655717230758487146884185421658405502811331985960209308879875349364119354837710516212063058867798499593714926718736933301343361067556210528820049818193624846099752774347335039980728873433034208612120091320610737237115733942015725534862142697044349781881451709020105858999666487408867068922473219682962029081740538203667927021644066908781947725784008297537568560074561269429585848294205027881009625102734249187233232208937715006576337859783600270245341095634239857794452257429749167362290345199106369971991750942332918565296090097360850603037096713091157158296968310704917040204604895975762332743991795087550920251938740116553018641520832762638877688547479217099559475431417600333449929523096904502641383303968158770628344430939026147154898938882510661586770264722950759522691432031957939528373306694778044607112365487684693215714189863368841458552176033037248481774160923527088962620397163075856165175923458142810348693706494326562852877684934127453080531295968910315962835611456047174084442474797336081058486232017552184286070724796691394121084796881048037690038093398248404126855159484856090643951160829672079864572494398936324915549752831465842363968443090724304502814078372268572583240693728806336675059179006594807658714958667774561195369044663412714116818402935711391187001448968841663622478163434298554307836527869663004841073502318067186694578731457597484309243829246480648324615633611920663463097023093150553698087963280867755881424177488859141997582469085507744884325542523265952214210545961773893784016711826456561064200893065625948253925139189537660973764400817033202303424199170792277651168531485417915842673038773422029559883784848079922545370335410148050215336791561004196618111416729237991913198392924563906919102987927241229836135434153000292822876183948852310568087853093851903305628175028030384588347716682301580203775872921117395299369674404448219507071905518741150991781139846454001797227053270437198258838494711139511055128217924192963728647502622271172448257183926576608008633693271989581212483357539668991627287378189808783318889712228091165133563380677157261562950197297257432968746715432324804877903199630898116124899245287651428637086467954944351301650314708291422280273719078576249324970447372601924932388135156675542586886523681961678118398481100824317837070530849509979786169872153294004275573203017982810368527882770149635398355758945633513009360033797422036430984124828120374549361076033790813479141857448193619527612295995955069844104653116451848325528398823550108306210814173315930283770469458223706888386260693824311984936063042105626739171063975087025903929576658185543897126679745468592117821958506238100293957420913184530841610447250870116416881408019260819220065522828532862676724097629814694343088654299442659651185617587651530996697291678955372048184155428195072637818043035898066493027010019741292472340732813304828459076354360522981081230808014962157522642083057211781934566485893505540841669975485334104899756324209105406773447071507979061819600024128015674005922594201900438921241619591531982238647618201936904867341566568639027382061990873166871529146339184527430389317445152521090874101619919610403451395244676929631252627590200682281790869677752092913048640515220207354690378310353104413892137030409458816457532975753757766474908745732575416896951850776303176994012037243889689918196325802519143558468731239007670051286073856700048006031929892877976288743627373323940992215573071125381807056059393378519188334043355979422707691900063411959317258497058193096755507408166561172879466740364950942877101227792833815360783905556343375531477673391278794272602859707719649858395297320512625691754997039659211128703350208327714923610896918614247125784366884306396876640399223280204909288693466321628487585985226487162601767666260775391571305022669843880105886782319526981182817039353776688215761302464728405007310070757868580271882316868072912688522762558373129262937313061527677058627009291910099145608240882278824434598887974485584906174193019872968125482374923286841148049472026645158193656866378469139024532734497262917525708193278648741245136277694674914061960684602775731580823165137689437127367581826439528175823809731326705979410057709507777785997250582631173293647128942808335230725420321913570511432232026332188425066451294734034169562628626388592665380279529683008246616724363167368788531900828193429238616403731601466650332163387732154564924373374872775911833979912481079363082004882846763005501515551119111521570335612930421264520739876202930072129183903222401524020544640882536783787471612978526024221110730360825960019927426258548184197973540244547242377241199182952084621634741503158360502817191577078400226752792984072643021109611470596821872605247405209530607483019651490216511367775200261217847662471365350093081836881329387583743492194010118152437546924676230481195620410393019696544142702066050370098520344292881500937092262325189635169979637168771069045594945971683172161565232188815199506334063381173309079137595814016170783939332397178013220651797134107874037628801028358542960117695850572185323051974426852944488595256850234342579534285733933252086572556208446543285798233991777180564829414105962103969742460382866976752609554608766443643858394837135498453543243771556718766708672903725568328248124812333169164124047684794403821473419213706671115782985390329217018999830984324070003126113641434877425664024319628833775110530556206514725438841824866722651508030802400462532754831451712997904217688812391383042258620253114724270296297786693130369201605485885921698944124140307535607805085245646092535906651536487804294954739939229848626232087831828665311261242239768232082653938646591757793619887237728390418804184106371318084756845780578603753449575370352214602781671666161055160353850560360034167984957094698903761149736945028219352997401375235676533181522421935893590991482233776573825157997964483547532237663243286261334796523410799787150759215793308081037636873909484175685322435778073664013907566297726071123565844147988359915720541737533121127947822667689504522497077640561569001917587680905316293486682420510695232384588722527688397658118024226446186851035514546175098359091270120470979004383700998702464124099532971076572084284339156201122587358035820466178926912053564969191827481784698986303589203672579864089667040729611837360461151794031757702194295213327648995634822804105591142573193882968123725937561929755965037807614417507042642362203676420447490689623912925878152047749240045644659370014404820993382140862750236509624839700229257762812007206358493406686322941272133096288672720522402686876266687568968615558791821246328900634384854168872234444045941547575618346443828652661563071187805552654696062401745443027787809643338171455126845604862613207175646207264857190224810629088657017188452555339964785785270197389647372317606213475392702022629563424055977267740292446123900957627342908222556569842795803059138247065503480837907496122837972968477025369649300392503235200483520279373959230442687048721395729338708104076146752289546265381791163208166822280523855254812406159109607256423309373265059446350800143012473295587806344786452518258842026911875429824848690589795432830166355043970875122624092393903094461287885124074557830178758012400583545842864980814013676644439117732563566911658436285712710727772517997009831810862712673025574122394761372290545771964181372858169412163037384092287291004829191472312935396716454932451813835274996912417010897481312793844460955151767757671446615721816421415906303034656375316382078256088308545266489425223658570083846388442297307249604637362551680752116967423703231663350233409235018419451284949878716831887882120917623300138904001083106664356218998868728913945213423285608269285289894779750555881106125568722485270531666855877692011559525479709553875626634260907319906624668212989342797034366650741202091175184859658379979568760242912220166380324159161397890910525940731440072631659116906869484890907636221714251545972180576526787451287464388903950459165624043504345964382842462576932373722954024874145625020495580285886822994869586518135009689096990061069915962156992636539368813444381604814318665191162071911413944146772531835402384816791741723888884998985577787223786559367916050534331133293560917733284235452717772877039422915599786673352493967957542132583763639547761867851456055972470341740786347980096544742398064367940689083429910031651265066483297836809450252215933303699370510915544121264825913432152357841813881288393900490178422586471181453281267477289503484650908570149796451111733720654054621984708888431878035587310767938523325748885534504375042434877940703050130333847653976953208367445298000321563947458885180696555329912228632379031959307129446766387625011343501664666080378484582244966109814609383047932601570996833311466213002563863319317484554081601374721709976974027745324092317371749999288635008945436135819328990091161960611520121027267159161588108494089417670144179181975439897823467475435789561427870441983209489313360798806095053564472053971319263385918163894362080258723137727590640079266895251696895522395332300387162009702500699980317967012824766073916089158163793010882412663805509987300018458567729898719345768737238600342698392997736949424146673081918882853536494968906857406454644698991641951048110248290149876785061085935879999492132533128616500249082312711204983643119406026514997770243072031838607253520715591370806134592421204497784511439162191642311142219668360893296822176685426344840081516148757620268827451035227766953189050846135612744371461875442885232143538360506958353402653920566594674864082447284325076395938041142597358780066824269835637743761262247222592167486931409297338575383041538478220622129055397958189994310634497427655929035093326568078692449593877873541097328528054254844473557612476553529871367560986858100063563486292929958873693252974489213967038401121010094551825359100749967320269602022915422523560070668813927749502384589446735548761225367227189604814894867534578129508375757634553924826007529319359597642016605332630409302678549500449784855856379063318118446647278847811482373116826045402414796395431228172915353582427578851594462321908139796905949064200206170384855821861308767086978207214765881196907560762940502018261202753478541864045126448818003682940490570530025872757407775977653953101190215640562403650161362391046732869472707318765362274624278524396647061936828694130633150328323211642749644273839594931779946175444583015945872735750462779572311390515006196163326271785748998852120883345797277916137867863763247549112802018680930821253454242510330543842188310139683067510774185165579552727929469314604952703608037443198925750103080344261189389957837264322404551364457392711385296061623161675104598478440457457938161999031867514837056805105766248575523622271365636812171572816173817062571232093546603774719821435929881232927548876226410253449193913456123613767810888363093074920501820559836130882072920702340765840149199034066151259906190778880468304913373969261120966021569923350902374719173471622950883124335821537210539321167645744911759328423206756682871636106100984737372362876233262405806396088502773134053452554718201547776539274435437022573883303485749721712308587662672512688711688181690272158471719632936640788554324331786886424345905239502681047516333868517519596235242009244707993084219323780950787204524068873001182720266853802398766479890396674927655421116782730230482638145024964947809564763480977482416563342119406542263563300075640600152639729158074489188016766428718828448637915484985655730871453763938248868326383316115598648798971647009376393624897250028312026892182603274668020162146661045090994159011728235341516917001553119447678038023681438478294368642804591217878426832672157120950907831032927236481203318611255764173906962306116415787211281379618700365838679607625892322406624278679703542044716224947793400640322575287127211433173309463863521611287069224968872901597002704871028391772684774484632691267142150144324847952346000186230118905786241114013580442697995406945949680910951277513078430876950383757495089858034538132748625192610623661684818292817076899791406138623003615189555413833516107984643820773988295209297988811836214681381077871790803498350732166598505245328356339847733009872148791457742246259751360601980140801293242791659814209726009764288221547631512806747792720832395653436899762338249224209864512036261792221835434255576071402281353127478794956400736600201411584796171981437520420254480146999287724832993263441519408065661559974037683671957604778433720986030755360203479211924244225933127461777849481336380782805393442144632209202900383691634719874971064196107309637890672423002629135629590419142641217740959818912104673706994393126638550196749891826668454355568159437405374130683706408960100079945762852480937298623028543094230679986893538192622424465120099215438233320731622555595301240621447260090623966733896063213714573373950131419120017951604180976240292625813513825234193587086213090453822644359074633169459771944722062027935519654891283917485645677251853028019668093348937744085052689369450440623550322122222089722357288010241078634934312522944741582571906328936034331153592599547000349524498645570643451362237064658816414042773811832144433313574519404508463238259413704206611026690844984688575436985491212643557074595781623162652445600334290330609674521297419645242375276034217233449952805565781597326375053714127681665294583032678180911647471739151892571933124417484429748155581451551481285391975140164122679168643823780104067806238887014256606080222434528064257115257626103837036557768548282337655571858492224630658861642527719669211678582042209597302316212965285081065039472179788894693297430476840545231068756909402667812242696582045349292716638310201265314456543041989962579269803482866306750822525592881446209524951164656393303606736126194980485794492561233237987857616471677624335173170742382264899011093971131869977163358421288523047954211425383087768465254730745060181764094746921911283372892052945942825107329545324551396454510799264293037626586585880850327943781826316109290683179808598793330986759754062615772740304508627902320917410177866968591929773394538072684269700024053129847744805712576139025143191744260363723589528292587953841768761245926669286691249821172320811282467755383321311609040843830142362703592328840260661968351801082707136764028197297211830117948746607417356380566908993035011096995648697137304648070366441665160257524665622429881093818027081846515027797863747051022753061506115418696762045950760141650494942728269964921405249006976699233899181252551072619459905097119330861916548003727074607498893066673183254115509907199145222087263529517418474392779000370096717396455880970113526331941080556913296224862574931937842682524886757415385878114227008957292862356018056895340884932996066374318182552294345677074530069420266201820956286771990658657286238354758748292726338405352449798243399383360671865105438377954160178756891149511410167780151410624997571833927673565861277559728171885624872699475179392647845181536427713465900167238258826163354607824427249963874678321401726771089219494448788151500897365588373039745954465016953303254128087162295449137565748259486842666171102619962268798789308956238853463304419642096688737081176038750315969200236512823859045081038365259595979409763808293427783749178245814676099082563458727100040680709831484173811717339365348700473741953268065832639378269068848843755737601423936931877020860968165009140922978127589381428215134046678831222161248487970037882876732308848765498377327863890117593812363742284976736837071821220565420752751013127430820805909246386847952083500391697696914696215385481985100520185799267495597928502095639200313092588289232114631865825942055013123280430849129088281967944028121338298410688643505300041856263283850827058024739027652157203115197032872956804290310099580508458926099270361249764323450492098840023065190361921011479911434948372497033493195853697742212436233858035738028728463496849684649517056092331619436425625602120500864259124023598939556380771912143700715344584369015655977097432302215217807037687052011165802582787215441333549649962491355161580605049362345228994216023378855236796466263890238198793245356784417402920147864471291155640181849360078537200149042269866191143114767998990477978892073105063518725000032218664284549160169364409782537273174036782885015666668250474574715453665239420245624967184122186327248216409411909334653535038679855209262940493546082041929752068522641946513148322741073570003037065056101536089743829497149322368099008700671082524306636293788297866064283846255722312821197153758569274336991676277258171407724251722381189773173520905419181273874493315455214479377564137627777860252550020973276270430557900999806594389631321212537142389743370309950608725057194959133227950363854791768364285199968156176393015695963087862560440224559781715239765817036143724140449851489882783379590247202193158283785507022477384010763034541563375924566842440839875098918969963659444869627632967138789422111714575211022867516852888585996922130080217509697589398658902098249025656356539402728982998823497790961923838957822325844335484483691883420680627737753739530117105265712209466658076174814871838917725667931111991322979037895525947030867730973729786476383304094113369065068694157987818739631715430134315748391322089625661450594889446434569382780199114003930350497307877768941727113243032569844970482427592924448416574300684892298577769804615881294612827799168797887070914422884169000819097495667198729911053891223877337754156014395761376602826601683091189528474174761640886858697146551525327940966842788284491554697979769174725050773750305056593517263064272487267288532601690814546282919039470955434209822093697395545943331887852026904536054087823137415004586950541429993320874151318824602195673052425526175848266255896854978137778970209973679150791653053364910495139047080349663797095882510195183127946903521028926220162548765851841872579138142910740445788321136112864092193971404200127359277055805806761287625809008737366419085625001946722451337656961206720077087993784587882296626539004455014655788896964045693432391499687279972801093963861924580220654976429958349847314908320250676180197691080830013425566000303439540368588031071237689755317094812172208810365812542622040687663498678465368696639796936838062926811810386276782364943318897170348705336480760757107605840962300038826347225306089713508573359579025424251479724800898045045538496060321820619687676199300670307668265231967640391088389460552523134621353073527501656777087319486477428913255488834510223329792006008657049851630311612803466324415095301443151073382165424103292488340249196227034090791556521620849319006936677756175977361157389221012521999694320611694206850397938215861329849595337806688255673119207630680918350477870493168007620006800558384201669066603023226170487961279948507489458162149180495515633515455515384275246163068886482160883002161235987990413253079006915688930820872441832207420768993648310200377722882003891414293829465624644281886464921667510005476574746572699908628581750442207014086079293790698850592543126272013036926990796774954063898738719560957796265926532353772532849007103927351899743683525080754004270560451228219948032703045823376939984669023095368915302767827594538184052394355273153264502013718546099085413996017981380234604477261732510619853182982256747645793528496548085383729158327163808888819707252690405607109121781883650548511077639437550762221316721600806841787185321065541301069175121973877932923996874431303520002288327114595278595074276356990756455421889435026749835850496116311467218491975836197026605105126409100219359397947272489949259774337433544455220784839396005609969600459520794519676248252190839729626406690336905191967527958759110584610781899949897844088426716564891487172004918623946304654864666177669078614815873941647068864916075516481729551830488567803965454594674458305330261875161649184162502149237927573641210204219337651647536257168559853503922359769951345776688833241184355114221787588718714304599700243054034468103367509686491401289991302144396580823825598198480556741194725271170789703565084125025218014083144029451227026011286548803740935444534152426952646448997012603856316261034910395749934761026109637549448354414857721146667711425859906959042057599885100536226246791111774732422782428629500177858774389341357368999074163411573042106939405913527161094174580090629182193127603064944805325936106315584114481199189279530846792706747422644757714965179527705238028932540867092904473521489453199954768155384818335966448965843269396044223270748532022068621270787206325319483890621649867207759404474302504143768515730017873093347390191217010530360637501551106984402764631027037285845310171990316586055652546824849124885852531820887667791394891701818594126145536826013734566184609037830532145875635860444210358798104249319345880640994511245888388907782618770915842772711325972444344378476922811489048253673460756113445584713628672722255862468588481352391545491023457475745109545680838296099235388595622617811789908198200437685814923906115264571326650678164717323200660514760010112112988732186433251743661070447211953825367708534246197651631752274996122792652387882457141498652230549061073952934577899262394776992883487646446715700765119229876767521464593979875888665135258259098492948302120684501935171658171310017210211250076540037867988252648917539343033387962491761371439618153393944598072293840575470188469132212595522764226777843099632780018155982379872153265028581471183417434932967009131791538051466407441210522218199646440475884952599292435430603422409772246549875053832794887218408464177134989235949800487609238005200804498859168788751909398648246590461604965719142533560624614640551006345116654472679430772929613103955761053155335449761079583000206806997552640213840590074445062033949179409706696758533033889673205502373883478354298260440263856727928838028468185443165309900620228813065852139919803123920090017529941948341531399629155440364246137991940912627650885312742958505200852586467835872653738257944972215160761635787121890841945221531867495230558503815012214809027286591971065446277185868337153555385681299016201897769629060287645375209778826065265611937748302424430338306088250172190450751160805796252693818914899798931940441059786290474080883883317866970757266109021624180118313479484502266709058569826235916061908321254463627099623667886408915310743984081317654988450909259156591354399717754906169352031771406063499222515925538019618219904804331897657415295918306566117630698428751446436003978861367800208403424665278068913761046115364197556871229169010869235306472869364870311344462149633649312740899113423639933084705950618078372843803359087171714981744728898390217540248923825865561360639511565351071755300604452620618998710877866613294659822816902487760937373237787747604442870656325425035972714751951842033983540002251680000513263508563982889401709526474578471649309856353133277897485986480208248414521747181520638798847176745136970897055020332598993376763651012847015865708069202708323335076920762195894276603084747908576093738762731196533156610114659853381280501045704786451161402589056597384693868115310518922271275343585149208842195708679537844889290626690880404311543753872070100996323132130807910913226495910634561589050788081316460531087960153548725111789680376496409656425431810702091798008704683031448426522738698221017504477606787699831500223090067073364586312932288768450879254993062218950479907678714413249112577125519238973899266552770161763031451758851247446790951133053476098441326019106935911756778229114890768210429649181528376609941959062524091796690361333544495326263408987360057286688227795720045509294003637999279995245524604499686581309632578891073401527928939000790653460974451741161063929230397722837185435092379237554755634441663266647536120016993065990118711906099900039347157025762155859316321268882184416751625633900470720289719917344101712415480855051814863546009244805220205445958380932615116037616268724693782665867132539027679748717466527118583359845101384622393694510771652312626457500107498613962541282072453196402992037917772540542567054222528241875975554581880153607689403339761494416330030583710648130558220653458067744562501626630961785100373368323587700864921056766942427090978958533972006145411400543631763404418915564392457187824856187929897699826551704862725319795580393024730323388911981385341914388083983380988340725548133048823488274257758360950031546186072145456870615606424031055379164830335640366085475718487239597944492221221987759015924713056285280194578335106372618895078257694845376282797637304632801145449536372837892792256381705359887887658357169046763853283186899188275549302284824979775045589198062901294023981134162843185761377845870113605350151650692941827628496952108519773661150144890236387615746006631343826609126692833970632698094953865233118797347972760298972239473762014358673601926068694344784961155754600744466863126682814554838481020089614207830181044330409408930615439498681928063846418991731659453767698963112598189058783897823822287879681531401621695747008906991014595869584720632809258562626168987694220102045604487537202175110753504507077196954349198706120167116952794905812164788785807860070960681416814709646534517465831719915041928919493338816079688842853624968453788560897212743449282800960511542626651157329652544857527832165953478150302443864475665157417346515699600597881732791455360841945113777306658475961753374315050268918072440047422018374463994649809365170158988144806467422445787368648456980573455181752385603429618240659824351412133075301589329012579624288052062890066743152887723644996095358773680555113621430748478079684205721805911062439310157566922178723855567526479021687300436578063099243046998463072847875851926672845892173201454709178176917188130843314857776206010744582459815721346357559352461014791872334602940565539932996807656939269369275976940370038593994084630888677550218110961418089798456586149890412372291132567804903225337392933538378877092112816961871487372625720248998906313592397710504739903605414055319245437280397979360155059030980625437681414015927435207979121692135096521206089492122066879718736858636542825219147587926446577883160529194348486412293115348044890681530736420783966850397024372053060335443102192206377081262447774004224027466234399236179674310222923507066159997679159941364005649314923068435336485740528910716450092047213047308304461070371754243348604710361207844407625853320002307633399054348021779271008903741677196622762133045090260914607585205547791658865161974374150350514421461505885338391858620172144996587632540040009941532261949102319617034012530359586338462573914165662707624123781348737665781933921659552572110996984199481326533615848598676255290523022589895218668389959804423284044187349702977473442083059620723760906123955742503948275765077439633639121236638266692035135506973560168332687097108242407314665169879883841939734593126630301092889814995236522404536712638821508588671989503952164723641057634896753950830990146524691136893385098482157204612211385858932860509389025171138517253194151878465994338508005718048288711410248747690121693319557310623536374913928209849425571824803969774990693108032283848860067360633316825849854968026750113403698003552000637430383940733299644949649905390698301964504309530829400731290565829700662349101891460761862179791972720590849435551250533668154896821490355406603094271905477246311201019825800629764942185946447534640394660933436068845597978297736984878259045510113179826636091053854867823969992091268072186997918299794293867483747321685199310509623128985027406004459426535777959284868849670009815379371606078455732916524906241621951866830038969110213648964981020552360455616492838990274940420994159150235843296330627093343465637814616569501072968665654612417184302406698580436363198341785460937089687310588208288828636185247638835650417316065586471164957063146828013338345859067446877748167957248720178744588246271042626733930647150544215215566961800923909067640317476637410486591644988424972224024703109584632070723393119203863689058783378826644031590355039304574010833987477933298254396201141937571521798847407040804142244406557251611340941211666785199938890666197621239064892644294196010836683504146499989820607374005348163488576834215977892751842006830583883775618351826780743015695906073792348896913239895611503884680972321453722583614081072644365830364049234056087434609774030242518414161730771923846294057591889763669328834624716847399305460850945793926264327579305252451962940051871152282201054756639993313674369419916545667816580425315709490766247313854381674727976169375877711454344822642219365909801475481113316971035826284761551141369892696300722497978630030758763843840668039066060756603538197482720959726458944894150502568108572343250300702492851640298729873160099276463630193170960032021604650150675757609429232798551157138547603483951783904957864375110609972602950796334311545743320999930010943721533472236940757428316990301542938556827178040427107801492180925562806547560444712382602582420994806188755720114956063310802210552436953920969037953158510286596737624018237910501397524162185740735581512195441657304412718775214519472578191610510509619869625546399128100491678816356848216293997491273500489882067377048306645924397694476835635612045438602988290700884687170360207336168201909160819841779363320743421102386357405839657204345232980890654057982981196806264181154867734968511936913885715324588400824635812690135726012320606797931134514224684550730929972398505445206600106712459123237279227397547110853135828150101187706405200179201318001688675816326915249203051990989636668655802402652363762049257023869041174917656820424660626395825915982760725043187846632206544661620600017141200183113627624939472545282778507291913619499789762895942035781048257080881698169974082535864494165179108947852766327617584647438726451676661898544288515338523600996135193700079952856542351754828974174159084395698587747283091013763054820897889922281849207932001288862041918623390968814812927648432497767400553474758161584077941161272319318963531869748976343063321353633192615800240901687444313122519218203266251186728693755060809023683684720925950260999971305814247812707524401330040302615176704761093954970891260841187193542086378968318546441834147496910949495075805238772513987318071407504451951847411753534192757648851328417075137963830894725455786174359484588333590485212884990008574712402318104582686909440219442348643210144513624115212821534465084380439090196158461913838541973592558675454639275666906606170640979734433882809477616997288733424946153582762359468025557745547527811936396910831517352510591609101099584061424545945808066279240494058126636492904952235681459889317359585703822615848435309351458747170220506020202960233495787969949634132327963921879553977310962442172428474549123075423421204837024666724501691855121694266586483593876693563335681402785244572098200397794737754616379296125924238415197295198612284034945319170292381259801739199866553020297546983727357198039405686493957439854350598231401504185756947883770585428933529632908701895139866793605842071636218098286148882724439349838590565636414674402213776091585899444601527622194072532905074483952270098811816179947873402892056241898108834048719088291688924292409756793526692744554589328339386632021393585953369814588305773501625695626857030885861390376723611319973836280817145509048433167003276204455692570225064686091285751797674246630928338914667451391917674582489441115957817754317354640032835602265076772721290966940144167567259950419602329626789074726016199837705728701294341392706151651844231446250177338908228817336656505653965717063907231852853000003574232211524915963914856495376139407003597378600333215263982103719615634136003191352490483896495476307065311487512900512293364276976043483999979227970292978658791596148634521303666951792421848810991173110730677368259658803193987738951361074167754549542616375663895307805148817397808611989285173608752320444451829231027625521265630801156151682471748031360754421359799472320984744512825344896047544952832486959161978350722507576020443981708996764719490308524368221560990413544087070241971359555384100276320813774017001681154383998122885903369614901615057086856936147032036421256254344037261577028067774584660799278531797370389266574177199371895615565196185967157539647220051175799987319619924634483672499135869567067120422347021662437775870939005012097287533506228974052409701778641916926201676932518784362526614266180618112594469981159202042174607550497424141455665143972080301144356748056341476694163477632021773532735157706998445870871370423924149126796344409286227884306083028481266964247844554491465539848271676812818450876174879054166349423233739816714892234686797706393739593459599177471328611909054879214938378491303410953694986724425141690028056662590702646171836751225695173818567419890807397374893428684121934664198380473432348293694007060076720552794747220401750237985144514527232948631895382554103765861319387314972348174332253446596123281347865757409734285221542441416201588803832682859303186931870621224197693171084239790810626913003443241619188668509470275915880508657930957731035354324551805039630129744988216327048656403206960710105084797079032984327090680584819500954055012454567517359341601319990560304504683687034156184207587821963455439164001096272953776008757567365594739508493815070749643383585562975252800265963541674367382968473492534165737932477784962769137523768076241016225503900904886754421267480414895400704825444227466368305683134515900105879832147939302823345087391807305267282151752523931245686152776203906647738960947740464297635397521271819863597876726562850723259338057392856515596583664168707579868561595283180579134022178341762898497375350417166040936810228175023706453188265556828866185238952766316410687433184436532398711317632594122933240517679393339905277400527211086611241928886289604862210022658921344264272485389548412658679039514717319360700109456983705436561171973170743575720450581198487468899045029998553370376654812682520323860792115043536946990126758930027118797685167179866345608338645743800977060348825221937629918935765967550230255645685393812398834132349513292253613723994854200783898643600119179379077094639779720315212876549591804290370112287567754940339666555174341096871793790996192956806886034116852594408551818475646902127706383807117970214933335280562925054433060379239087703948795060059405158290171209013224065456237639810942438709964201690952977138690952973117343239202667751655509600726888542449916192138501447530332070314970224463861958931270860895103545810078512120205821835217602564672997028114105775672987835588974427528561239720038424744101551623635575304555775282662488723460763934046870784839188031916438396658431482753292076863108671692170945035841920325014637117500390679884871498546383620839707400454228659023926363356390670205320707511074113452593396020908972955088794844706942499785586529477881435708024542645619697525073554324028648441239577775857405179893583058607526215864566724381468218064191578719718249034408808375925336966867235683408434427372363217116246121739530472596554346368817472999483308412197672392323659823819669041801309725334114631066728195374020391827194587750965697576031587060911609888459292651274085270916335326857339635381106324453467339710108249383131034457269382596924628909408592364632729841277547828243292469848863370616791581238458667246469399472168478191002239881272840340230997197020359504822737359131034819178713258015470206493436543752511235393728783442129464542403112554746972539713012947658517519921231625780427317163897762231337251815083219459299074722521384561318424051294915166814931840706624774480609106483238924641664460651637028895073345861782733794114087980196502101408547972932832772665576424930504089534037951178677878575737560572059961238098910280549108769015305803339821550155918746183694738161450129819093621672080346630853800595292962265219288295934010639588191376459373110785574423325352799921449771655757704675465898629828637917053334429244604082515696465029696223280235101513253560805045582876790348478579984471734586905529722266521049162857320500048012358506439803041776517295613202049478354796839997190271131757853749324864970911271518268132382633039763811927436186725634010261892077017280970118654548594740171179162541445896534936466454529233178449711660320616349384709709246403011317055172189450582447974450087859567476894970818181794709583976532538320870494127943444196207900062122320215155670241705858598157996842046338609644216297812222458718925420135651381236131531156149570667422226905372216798471272094600385788744072082165427319220989432897192828638870838535852952015496670606875074302257631574326690043743135887639706599394407839440876995769007350236004563477031628985311494816689428171840472264746445425688613433679973836738206132245927023380595213063778100898252814887831293640896721802970955668759096762149987646074901993303790996088897421700019138392600450565938290016578441271890759219711830592157730822120371834298113224704119573933728673497186431825742226440824939693435295337077291947807548835458778797462995807564731639170198545481808152337255615315333954139042947935804821931424837326835841921786129503317575335097531308053497694646980015061496328762140463581725784332859709984906396838130311049424298818211252248625734618116934258178067101226360035164339363422495329848637888657288154200226593579507787717062644209540426358291868742397368348851875076851528415915853520703273756273593016842596651236771322633233389072821863832919286759349339020811404602273264406035302950391270985310764925265740955504289312104360360779013867679923632216522465702619939974594990323063830022681563077436767982188481421591605200204151369201264570547797227472376925647151372304386745516382066961514369839543254420288749352989859385457186324564785662497090300634821812515618167860697519685254547699499833195426334426449752347556972602514142353519519363448697488214391916550147299617163827441980139179166336913896735142514673757415814083299262641215135661655234167712077952560316973431311934740523816104931762744663143826690631563880718852533846542576692270109375710531975795516258676923953131069835381190605966993590043497901871045790475508663073713357127994089469121201582114068555952552186981716775117902398762324565512751893405652549333507771640138981476084532322925527979180405825504182754226389243929412318707819615875485824299773731786750902854426988953163550784244048412337833789148550810093845589713393594032589870920891392271147177076363933203229721767686384212753220875801864514228858136165832739409455255412025481887977192790726466524976141774550739069044981779341100046728852886634704760714346235325513278119524818084938545503779175096365860089120225925305784931644930795845933016096261956297083073089432403803702703110216132740700259416738003268072769840936866217015135431063170980364507940829476787171432196573252329369773900457430273926576790410607585992406131681801043923033965914509115984541148958013926727092517433300619223796449690994441632431136264540586146067725455733140389206287727713174728575003064311492601115231731449188097416705615672145419387727361307702849716012683641715549634471559396826433726184666110722204242697860108646885300898903121466231747270731989197640790139546013894137740261088706608209693467233219297832620184202386594548469168048875890402899016092779755019213507093275591027559930128720386176695624217385075510804920059579371385750171661124699601663305610991963012793639067297613051802455480021158391059308369314309409722066754804199126486536709252481723300035712649500990935876792482223988730111489468556315775055175821417296250013685820272447807918015773481511361838935336591048956152114095441103430139100430626848740142117732244519023399965998204406738186598601717733702979389182673215199346184107337755186038707607411248098517293376879322024636588197978561523461656240470678619136373200871229202483712273144686496323198736940126141876637155005110180917368825905673725359052773873164347645015562511445387679204030004960731759709053699940313894779773522305215736287380872115953187781978604874872526488930778662275110362983503056622037817603594696559126336974263444072221133375993385577644127634822058204330067297327833353056429671103977167100116177346340453769149583726108383307068322917938203451777439237397279362476113335789435154395518389222000316898606394789439894725341107302122893329030454087893883795470024167190546166426542611180137409308238263262760279487815258364082450897748527776911611864880475976255504508270126866322441618001101266864535765378744641557936347282329067264741799456734681139737881983450610875909145783275518808379418280329901749628797292365699012585564055882642769297063941073842561340548123464550558949663454782245727024183236067187745601719893751148881965732786176903273658810963200246432770778887645769752219129277773916060776978840424172267061521883062618692054162409051032993332680279821938868305922496366012663925192226365627622852123438381255742767969541619566461790179547007814953245443292345575350978409622874449263804765734153946339495949026854090918092604948532940664358955090751115816185711108107375561923245222981516798949212530443064070781831550114415028544744177004540228188354467235143794830465602191921312842725002338268135431941507825513140616098683695387027333095729986911544081533490168189062777477742492177580156344777420699879563573942079471013252621054359859588250390453245359781254132289122230603076353516389700552621497701541440648986233801594731009890040837838541575141169517352020296490504555342958066337514938100140357857347230377764616858015809619164603290746171597824076396965908802218939846555185619667641795687985172685004969107294118608788563751235738024103104650395610891908268498713607424722292126754915688960522529191222966786107247032166890654308902349804380368271044617661294084739047199976418488268412813384870785753648311099708582885850054769845000955487030308759792419377678516581587213126408224975352136767112542558705756217261751374941198166855595241308639318755313563045611051287898125256478879279084753944425559970703720981522601720385956473474220228973311747073531887596629447828091986203337333680417410243119265048574325350933172225944987899269955597516860225782691627553845002599641804129554504885099898385232254870240638391071997678720742001206841263786463142057705927683942244499570280440166199579223231980001762528251960023386595889666199400191655288576445748557452935060034499817685069024525394006536724078008016886285793440783490148056691905565945663974815775519548325720769465027373666771103109022092313463064078539943037357292032422301234317616401419178742047420497149503524047244554884051325487784193491177771182917607251019650840806878909542314000830461647256766765832994935429897973512791222894984308084329293557246256044166412731542095435872904091886682634259159220381543852189611905023485695324742025258873927402311512659809362162859536212387680626866620204189539109031695746575575811960843498083996469579375945906831090431517619733309466177576569483095160091595989914775578061906838144966981151008473330911555330838608387177155576514697974206896601877111220191808806990482490857872693899103857390373350702027752293628177398074453508577031680939185278587975470081776413256207720473534027685015262563485644525019475076954688362397112313864162455858911069182618583835977839111361884696670976607463931246813139727883339382282965150736459756267120498089723318292697882990333411899582210232388086435743623062437323774266538706062983267366292458200481911211188559485217788925055597781161778570342692824761011530185402194767059466792052620941410702470402086376691579024022834752147887648090247620310402408315515060722002584369988809387739447353582930445281050086814080288323116491071096754621099675687493998763952497239514464828137177062681510813074411025155861079037394563135189674045691843853164644103511424512563221971741657099566800078561760494536890236456728274464897871637756198355963305320938007828467946568615444503742716688706676175104561568591174125400315252899824906458757556050853793411261143718885411907890214748733200139511227631756462853207542252500399346575550108796233531506646938224475287641505533841568863366895213313962415864361078401731020965381198412098057479624508832061024771259629985500580441411273668018586752596008401294802147626731909365817337429911304372340231528880524655123216942817308738285897762430577082777987695748206699196346945770158363558457526802046824800421797814727600284688194530821938688142147039409417108216320055410158185010197741372495731247759079412276388785528198041469116864091362067798212144725773361541776414339724194788037924815961848149163457357548547999801229587457979777401578402955677424870479703897653620967061619094744136742731423642997079655207253345333571857298899382773676547276219240134383715733936860853767175917228721183769548206480448317802223114970986594545189418617980131763252365427776935340975258229772762645407459225712991760316789456474869422640539073143553389717981379777245925727261223599552722112228994941769425879599706101894053722066962662407682356410951682817376609799998596982698390618705893063571128626796978914580737642807519321848437533076720956882353260243940582189764284922091670655154500999080923840920827975969355257389448826581913834755203650798636709011145495689229475520101946064686851860961010953397174995208047619853293817614728079124487334244071791972106630501015953821084368682801998235108333322438503122636149365103932811319079062405587617900782566327932150978866376251398803188313425511841762998473921667526357318429023903438018550558640336273109869454092080377847034414672875605056311455549173823451610550283490678855674972693797349129043870446085236511994240225846525258473878920971679041696253212200002788844291089684745887858434753340892710578502426605732578784413400809329492463172688432485317243068128907579144823538926599277141004647054735412956372199138418917601793836786596516116476694553168021604658933585143086254067078848500223112476196278906536674753417638185937681471126220547143119605471295723973062273716924989638898504621125694963235731076237321698027408902193770974309315158960706848054802834470764184454171608600957712450893733535850493951711637152165981778314009306029156702750196369779357752262337635980292631455792840389442485378510728859774338203085933733089201698366698586363334795747893562590729531638578493217164273718284812109092438850810761007672508345258245402242477906410643875699903303380534545144895746222586246307841953775063883107030072395828436017277739627002820755577648232330369039000706522214856253020635501093147761075526346367231768926972198669686480709373403235587961822596655994392057478779087997428094686035891240016010681902959375895290382881459436857711657614162875730361298631008773937521623301182535244888187856933658659810936278471576126976708914068187525284850321373104370143127946452763455286481039954016848933227956946329326808312256754001633218558284886747556394969252730581407137933345061429082577436639543208235804557418854628161027752554976946499039135188057599997526778440620768557354782000660208106871325183690512058386612171901177600923959799519646287888352632370380171966364958732551521460639994035733871516975458866716716586870695417069825233939562752532802658029238652788542577231271848639125420207923140634600588302877438412895948697747936188169493333949388242210712343946002190538893086857178875026505673963848250600613264810633939165876912127672783450060995408838507981164328111573111809016902483584966233079342349289253441285929496852765153036945576605118309872970236043263375873261763767035360610698106411007715758096945517566051937134286896410859567248086596765313183529366944947263048911256352122715406185347390133909671664982491581104502628066769106222435831564493306530684741914334406460219875221086525560261464473206428056846418904095011452011457168797974779802746293958965606338996160204466463822725942449887747019170490879882501424042575194257934761224535649962787313365178358823385012162038005554586329417220305175942841418188331741318750052485533196444642763306352426557018762954180634984562997828130832771720958083211226757302752027301684710203531651048909963541398165465211930826003634136570996910552572255197706097571427040502121962311674995201265422675720594334006051056117503014696124259521567301508143750275775505255592251444712033973939546356311701741404161019633340956916222381767933367120153912090282894428358896036947664432466769119641161437072621866204269190156098812712704161994620846141357474364034803445206107500873694112655023584791886615213801544834589099947457842229315558250586925159464430267070649165714428226915566034145444267898178652639662725945644633321001952362347223409757703540734562503363070887230984239215592162385745682759857999827253783532998762099684865067407785784670835300185961347101767122574012217196422736853079534602214527866775105851826400839042586135130785003559066825095408236170914875098437220609424741774563961025087381534491770662563441378139957387297486214285819494278326395616747586250662227530544416948001553879126858821075647444567476606062047073557153752284048727723227320817771630593752645573256149293418108834770563177101406956565484128379004521105535268460270443686134960552409127440807832002578189469800669263320962010439045979489901207765273977684290037501717704633601523746878519815844344771175891987286175945478893221565688638126369316080944136804279529065998807188338219148195536450050827071383023609288467193460386618928614136204954418870730006537048776890157475349148316401378576674576453776037611940451300713445537515698644765659066816770794837504403411783451207316227295175398016859275108185070792078304136434950159446656817600000774800951112103595564534573377952872784118683258352982163318221686813712743151539130762396389495985657577079462390243492052161127050041305737561593322510032646607744950669844651765734239958794673358794135128687741615456310891212650427664799727511079694897560779754854265825345512836711216235639196596164454500652263621376383583055827823817737067375389141387260517921411210956760208021543376165246200991039690970216756807721113950694799273086246173200931079040793588765725160888435799140805926762559315079611037682924669307107108729275854201771589507134092534275938645801962971519096705248063098699977838853294408441040200253865439433730824426949381794597871751305857132367441176920789442915691882104664937546363299637623284102878308759600942552901129168721752432388794636432337216463025428388971315414822868293032860824236918286462607812606854942273774142534352299919383924595150159560051955730777478715537180595824861469866085910388830207481992836146939810627715701038639548276920580064582097347072093437796312810808116261331088024323780397359899435760726233717375128597138553083915413777825934933700405807141642460851457161910082988731194771127885010650639434023429577725303255864881305151243853867456374199595542091665085039842369280983561537767035896431062142826747408203556426416653374327396601657614169322482703443537148873078160246482205986911571763806420835044070722549323677647178255973907984246040124588626835966152501948371101834406959153211023996489379534645312464739519153310201932227199536411091106426816951996973065692851287134527452940231950745954288263496312075731318231428963108432225426494465726292175856950154736203807031086761303651756694762782853942949366231514207626886155279691290158638058072614103813534360780512054077519695754901442147572039298154259907149496975523597473480176269002358969588605398981120428317832197726868989606720905351923758812218119724566665069377426508896274094769518225460434407187135373694768162603221824599618737019199590263049868568762486137256223106046321308177560622751685910084933609278846074157296694538719546311134289867018653729645180122192300942367856911301917146004151468931829415169882725303607765297169258047296231950822344995998374202621061535627154253244496480473805675166628147269332343780700356300553653926968668422403314657255520500823879141875291966189166037183292929322506077264926151668001838169266661738481958252649103022333513626545098359518699140056221599867658707256020182060641549595239259370285576899922365513878904599965977890308418816698207842304853699451702937812415910545012339716145169887293551281594981082925485990508047923379190029487808878272636176374673649815532283458895543359900525195954237256414472466104424576398088178287675206421186631342158083426480122491925542798701744143202208785682145545142257657156328392043201898999021833541958082050401277780863432990233258831083187465684337041335979819591181613684608364508787945895226064577477025129394667838339565377626973570268936967934477775413283444863019149687531815166416960268625179656358108432241366342481643927919578239292224034545145222866399341465998042995906609292413114838721076809767058239919324672693305843319695141661652371570403379102660704173646382536335105690826893068476968245863199957012544596992709180721598759735269544148845643914716652384438772177230062305672721333684434175352471703465384026234293778063186971125079821558319142849719875087044146236952615415022593418342022189135338033589412781509715345912286341837590480237376436042304111870348392684929803485420538875719718063986427056081701518611962852883352900244779441852865016749933561045163072503888249479127610688446039748420366840224321384373346555156390846174934281132438942725434079267403337233036708771396473989258040055888727265574049442455291096380167587636039501847994766162007364434211613640819120470749519750563896181851346335934811520651063919658558135841088337431249910047336164007401909395786626896237656906792598711180734718616241186175975250784252692725355993798363960202957754346509881385330002519545769685443875516331345387132816806922766585229338896845324052082511048973341933395093790211372382338275890135727400868491680428798158547056962424180386009226922395055617160067309367933069509766730685174309835569552449657210096634213910347208179439832774473199382877926968586019314350695072656430313177387775069657610494832634852411519522689505566891664251046879629295623314210614728360932538201884670033383538517901645609344817612949852896362139017551995260031363952280471343254291463498193336952066358516080076588377055885856455181985681478344467487766326000929770859874296270166084616007458684440336101052241116305245519145005569936485236643986405827511137539990872148505709718155534146807835695095379895498756322245392369181399374699764553729647527350833337197497235122074354413906933696872353631517727597441311604736757578217359076763049695241659009295429664228540502208476684773969126616677472634980314479292610641728045502106576551526021632715857223105202206591696948133992855845326800706964440583525072439059823197049792115562865320133263065309377889743892355208276597883743395665807265830673841734171171427781983192147999131233241294133716310015314999765563864044134865419036671507151513130457455631536791227202808666267459179348612012094210635745052771059574289432300763141074176057374600288370656090405524834043556765910388958518551771416510985312832406338315676902279603324960955318200836085024545486481324478514358775101243417729679425901174084747963176758695772255947677570641915193723125840465434090444022353294207598649003966826797414082130754663312439966751904982410287141881523586570478494969489251014238241250521441803314282842051964764867020594809630482202219400276561888975050039185138718124838364920519913496503218789957200769428999999212038577263371799041938759711343401796294843339438050756608733689034498469895190715214832218705986532330757642807388951917615454991209508717074007266826041696684656667682532969934796796694505552485428471844430256337670184868996259640326198894243763940567590938743378352662666889679603150824133546042999232116283227471274833858066061895337623683675143595289854567563222246887227277202795168481334510774359182189612290248512674499322544203591923088649552965472007740822490822828462556700656197929315376700430331426044414006116271429245299321084272219290782191165667289994125416408539837354370885884089582190591918748763919939482704403519563524861661114118481141389565536217893362814432369885776450642945437561521893315097491772715004222652279491504056521933433375117730699462822410536677899200113398037128746762588734032745016038350486667511255742137564833604555509481735337997144342201121911197571500965339411335739284340018388812679104954560646247195598784369271343697432895946108706980937059989728587236156339399625221741565576674731300800019210239067694275942114522482555128567216264141555419280556955366413380677270243857004279925459508743163392461586076836162017498266882008482129142297116299571421834190288712495190105316449520846466578169177094833526580076557920524538631116717436628279584604698362542737738974297476985468383613322712232245908880279765010468550855731281609831217419596679517484453248337210344646388747887112115063031774675815409493380835353706583697342870032066602669467533830104720462417355269933267843835533776828905756641958727024788053759859857776015523545553271656197427044516781799938431501265226900417709947776358427429081980914203011982855860310781760283351649672689294269048502934117527550811993818039213342010057330791438646179799903891761021461832570674646934268897193646288450818989316534711544972271588304036622245901070158187997046043253829542099591745218409000250061401002385754255984770213279525083131933502491908213917263287039616332751841643925963315138441318492987847368507542500845079066622206154093633735638121436831339341156352020165204602234627757175132042638836024662047101218976911483756180315737566288464783375934369656815867403959839366293239409773508595198313123415043121726016092071846463456007819946684713638077065530754340423050148222183297710457788492550093267406221163264729618801277643765856263880049663796302370428916415229923995424268672831782673383480709998451704090161897062982595421096900151039967979995448784145233201742023286689288868346653574937990608151065386185555198883046525474752460374570667884249810447316365349874012939399336411118566729992304992573247367393366879489904223113787026407199080730664812099839382186343674640387012686910735507309581969630419218947883085282844681403477633897128670995834432203225611118493806656575924045072746505918717519024925240175012325100380885711429222497052388234957137387964926539503668624084270846892931084520721495837848149059486904347944389702537107565431453058823286418417709520193845403791371787310025903580559540368129143528980457095421727414966206445858020261503563296188657440112202386155299009964512207351377726252863657063851499867087091423099350972628797806809374058554595756019955456113986130051688157283018067740823462035860146039550115245245517021924412445440653612555921343955478077842220873753084568543785848425464290677294211000350540643978075243817131285399148791389519545921468155594905305893588889343382095556321449837076979609124299343590135193637170413850725620707080937198481262006769441313966586686487896345723929850201205338611836062192994887605972717101277840467590374319862397346925685235799726467783672712570958430531006448231836304093917449080088178484142256642979476634994936868434935066854401785177436767985195867702775348213506544756323504508772638275663857207871343834414973545086336876905025839179777177567959919482393833211723891632577776308191364472519059446861895332376023337818531725761033876668700887068580554316647742457524240205231262204180420079259083856465029252428478166179094373605177086482760561723263434707645316251141965469815880988489449184412194358626123983784472289161934826061876554312444679592868209281065273932918400427454924539091608985296824663012382043981716514913227785956026785737157975950446328891578478633730494449428686154476452243908114355217588476762821329377287970533650068527508627653361699129537305451228855653142549847221839375344270518058993919029038551154670971918898724643516325149029564172361703836224036922956048141422882157046832518840803051691333624349991617744782328033089557750673615528449525018943964704900205769770777413004116195603773472450618804526923704541442081071035601612895248836464454742457845468265377137889447378792479195635632289703747935086505820711351606992310391057179973889972716819511868136995497379145561340756659503163866497414656732034527027691671247566490789231445653270035836021114467452914433014587153966579731487986947964476459776750923708819901178867692112739729169619188428054969213380882820995574264792494966618712201594666439777781635575858874966631565446918312047912876601095486518260252579885377386263674967786694480595549021662790174254570642134746624149925125380709365695119463224146237653251214830760770789411107747308669375996416446987311065521803764546595479836371803222337217753938867809634977430679440891919401444875902650184554056076281974157535044262866903526714631104572758789712166646736126036229048572037861022087817178521387238140685297205159893903338745355767426741491658966257259306047750024173760597616309574724511637844792957753112071046701362626327215343476351578579438423062298223848667444698950252993278631891282136728438656470813924288003594916766651016524595161785248893459624605842556911986800681431824498451470734711855231639622154370911513389563224417514020363524640261541888527840738799952614163306907537122685512310555084714634882605348795265703591117541788063825389986448313229766262425568883909286006721325975059426331043044445323143327347190594648520082859216046729551499213408388127045082849892276388137781338376218557884545991891737411485549237935927216531168620986242210162790830646783756791475370678877305499754252125838920987228777299399987926192322907436232410012849534700252872799024040222604178018059326952308694055795352784088497460050481542082469603206838656436985145034011544280968454045293972596365232000691472904896523118988979115944962424310581256194494133574677765630388834671911526609260873429943565647576001990678260911634115885904745533806149355859705266395950808802288516330626726869554610517293739504674606794707974718174256126605767179703429517726152178346884013357859224081149005352394688958168581397109682814507118529028139333866391800596583568809516479961318882453030341466839274910992638363160078332800387539374528457293974656193432306634429501294571743982819402673309740158399830306214159402401608924913772104507538020455049717101835993830874101991680228086452081703186977503072617970257370965758337917026837142059175055862005071360262007947575931227233581251251658247868267294843439367652447580754116739173553839591384326350057697433485215187713251110683350404587885406040196673926148198642796883423980365212112180210313529594617590712802277525929702961567892366880139232777466418368824878990158668159904008783961012473369439129422836338632759815420845601081005520499428435884738066780220331562044067104097330929766479057253786658793044358276349564684062990264398470181338847467525745391186599861374610411943249989196568236449302580526796506759335645940618784588812605742642085605056448125074918086205944699063758520463128006521914361920937351452257782132881095646225807692552906083786762550108058535475457806883422614790859768749769723596178365594759964791979609092115465622571863910600470825194878143342136230046441783951331273259421100761319294693949179361962836916767891133815833841868677004949670892680889354450296375809797003555812857355335869251499358110614291804600915283349840273856674157542039273914261318055593008145232020211678442576642636614544988232715940949352346565728104645294299216138689199030406962724691136889371494467795174598805617082045736554422252238341824852783877215264124297648324097977646222682111147372205622525610676714246856570463159724694877599261225857313273943396813509777694474550778048164846967123784495900815606848777355007182193763658619417407805766668017213106267182311379905610571562869573448746562609734051551627512965987654594786852032982297565645159762584116347659734232606390108314171187787395117069425870912476133027000646286741222044174286256989034909124339753777009646944604806774828874031100348512566522146545581823889708334572125776343024491414757207340429294630373033073789695875831794450105237894454600494096780023452087257794708763808800641812653128578523985859484765050414664038846604391310892940853668304700776741553198718474188962894026583865465264885310957089877907210809967827231243613757582543381786525541602090268404876981094391646331059827408235159271086070171986417539514531262186369972473158448815807588866516054118228737829249315318507857211806402268393907316293814338121848976998389080466320055426658434645287851925813025530212462493163323464524671849370011891311534812622180431503799631480053943863181770206858505049770539738439714767195291701168149449000963834379471370113741859696671789676149523496195487663245377480777687761809022607019689772008122142104203577225375606292727272909119764439376298577590557623855255701282374196565953318277435321605433233192410634149455461163010447996665540321275338349947725766790811891544086132123257805173516916607839661141291926977603395692202352088634967782276257107841258171749673202102021816600998422965510964461132313221633616367700141766367104078665179802100406796465362168499489890775850039971590483096646014202297360715029853508570113493400563061266932082276157376783720437900574677759891845253147664995547817917889922462040815709497112868979569224030708439981168641012390068523752457518664916265613069690928896835044531757632633601393806642948946297558742873268232657060400944074890700136697403363401319564956352125104313466779822303856759867906596495339015221445472496887988332175441527896659470529902977334663161119275564313559600589769359445200122592976920520836739679640287547663090905599096942457634499588594016531778720324520538167110462393967150484032941506549888232179651444648352424096759585580460377572767942342325838677269227265772455347298063242522561166555148475297279078352439725261090802842505734673374777490644536697791117214137306610349289334579244617938528976701050605662361194656088531102172815903068724653249037810409257054671522698704221883321255219745463781786968161368278232358387124130861959672924047048161827607258693197002410237375624784121452684862697267889610835375162769260194206216771208615977181493578677222315790686491312311304142142257880229618170198054582208972086820910163566462645155246169519053849532196653295494574201400463521716845401317227638215290585766307789081042190633435890986287078157187066143177138901156779347391072181458128347201109008761136911382971869222405168079552345946596017204891962304656861429010906920175760380320771772118492703914284368744345134571891583570849350510295760333135027152051044484325224426346152367107001513380635047457455827814602278783019175827650937537979563455663878666970787704971981917502821619702780418999032818458894641574560306114744956295865881985225458991076451220101465032176955199854843163394663419534389310892277038193774849830018287894669756374174199792866191845533651637789821651277835756302432878143159617418990085142268082801932324515254110687139664513540640161509788795325671482841365787220760374823017926790376895186021494074747661887084161451553502143895740263751885869854326619785865520585941261593636462091571861723066405226690630237223478662373351497968342186550198979972332392998076153287018010877497956370021318307677960945997318307372428403408146964415111154186751433405160478354683041793284150655951246101629265138931680859165076948170075455592507396999930838958378044099805902720187160806021095687022007211942906657499795734402358291985180257078993121977372744499551405620209804530492441012883852185345684296147536451651597050704049231016311369965119844795428668819716836761318463930301255928708317522175630512900530489943193020762399254571171425603352997480041454935793121496819363880988299355653731571136166309322638029689841942858517227785084638894355881218853689922944158996769924304849849828288396186618346632593001806264888595574687826030607082672546021214658178641902844567001041576984676731319127054483840304586249609205368609954316664651593295095308153422983482333753994054469515293319393157534747608378455912195630135953454755106791238145795109548437703496079983136084414935229862441599740018324066239679539523644288751822784923425751280270992283779703309352610403614799050141620724393206478497676599725235394510074602182740993563953162779889917497735560240853087185041222958686223967584508626208727404002369324417562398389851712257325286526587385627160193816325378113001928674169288768085220018789010149786482237806115917415343326466198040052757858258929137347284783414072191027516269921416770925771700401654001931735807568691973169226580251172254018284177704657313771147344868644829335707017740347125030173689283493968243237938606026435002566069637559531632178689230966317180761100520979627456038334355272720974226333574368933496911586506562643823328754592337440983842207626380505673331510814310815346348267808090288903084590898725942863997753655508495861391849682074221859469233745320604627640769475392102889446321287130242634705894515732674201271167751962649620882386561661004546653818865282928843276698806190194276024386335623540815848681924450975955079041973164257951575046771191795100977261654444357683380551895105600445163775119565910591316346162952621977298349511316582786586406571759195100064166618179697534371328032599753147524749988304737141611748945714043685902880956265316444690917854070415739638492302601072422988539735417747712452711984539596656238196667448970911991371210430450565928647499969941594823650607132813908852719497578573912531345314506188980056959258492276117234014885226308795161637049278860990319405196709098891822793614835059663627116855552924197720468022511098456825861303499804991334825541434625727957280804367309606643400787789828432060399774525387952501751707815029078979038539711138325939058639017574719557923898964585295099720549835452525425815826641760736780582517842907663466755568364531376267731531237207732144461386304789071118102084547784684933009383680013934466774549554945179691502313419167769556772885318979425405309904640429530869339402596573555942153638008999186398885462270021782326888910709817642800745674319470157617262786810767011170863308889902301337837150312141564418091871029227626704526485922943494524057883461179093434045675484865465512979536396228110227954233236414031008441833625922246376874429595457863765418541876072541410801915620845693493610881529387512634248025950425005993518208865823152314805650972827947832748570179498865371564767136058287048127524963408984766712403206272076265094107666799495823557124102941062439980577682363433370772711152804366093363586424412464679422215972777462129208121499745715596952152804166154196671675104604491584704861314464686029992514311198146782297791047984737461534200290612857509338330511546454275249699786569612688772513571259073034072288564249801090003763893873333053368069160156647327805849811356427581823023816998912456026356548637942924359605320252228112254452360978443421891089198787561744890945981695727398310647482610333401063877541786207320690638676705672603581371987874655339787791787546342773984622830684406744021460268804276410791092630432092526565598475021659161868985573412998541970809941520081734031212669636860513477109108868556764881910213958865675180111537609988421327173319222146128633226941385436235214276810270791949662306129782944471789308450339258723233785987993383908303316466760247810398820422570474923323055145947009826556257525945911191755046892831060462877149543569965976534367189273117751335452971400293187695917497464922223337879671631426203084059139799219097745994074500007073290468507553232877738460006227708008088749731390689015135372243525252314860629327119089549353970980885883589283412904332377623108192185265350020036224894244574875201681954133239712888951966688534656817952126050167825750617181542096845483862745625012934807534655658341226765229599449774969286147764966242624095736790501248837841009167621770174497135504760734339978589186414605224479364787686829510303778722750796216813563885843014576867473780149843379340982460462565712037028043363439661678379815704918438874876092687661903408453524258809820815855264282379837811834736059995051888550207469849862164834659475066366876877984572880606408945684992024236007592605753084368513591636501565390144862124127619647022654673163447553623238654008227499111936475640777720064383456835595779271832586693632869333795348894759333788885032482667366435489499860021362697975827728263696927436351953317769040712669917792043212902131867963838425114998394049751892267655309200694836840553251256633905475546804667015075652089509295633642555660809070510489880015604279058051595445485331365740274542358033864254785398026300347549857826223916929800927860667414007281212553897647969618638204808772127177312664800812656462399021641030013574923757326362509352388230260764305330359213260034547772684094467769152262707445451259521946844477914244818500577464843080721402844419257849496239292792216224677885182540973310640313280900238528784074874977331299260843325314384392095502589276760776121815780836175451646299719782034974666666570010717806462082138993884089321214126024577333240041721112811078794920497980730043876472902809504537187377291358593815710007090801691731939671486516421330107299566319808403370014036652444035985713622325054532678120885639647402399263451828457972184915173456417598370844494557735592597523320516244428900782645249184496865896674933780741888504473354323192577056126611183608537310219955250372660686227244653770269725936702570169328627417929620846398577312418223005904505074937059316271500743779951331279474684222502864199660831542335802601815062187608188812924295750612145217902460763010351404304653316910291833817201504514284589574264040887196899681749278528591605788670083206897379372388256948255605464051317589657702046953701993525929893323815416985420205275493259553532605807635400830884762230124130244404330053887579473837082033593579098289475816625049712372955613652237688396058442952351725720207131932197751724499894875049004292884852640083294333614148026960637698487170455929873317442786198012993736704467696362466133135985353072734804688431762737427036771325743742357658851986419128596895742271123594436532573696865060151688762453192473908212540581307124849441862382101726982412990329074836716732149877665603116847933264964734515134303000192041435726454590521125455876767040381075658830866294518088536972487687825985721881188938551596321146134332383904859926293501555286595391030858714807377640103280110196297357660354859196650921961209323403394206971406280965455861005939030775279461670357446785261654191327100219460994948030508846134137535914224301163612307039049627717186739532120601396205436445971148194210098642320110181614491663074598644529727144567484997544496911463366017699539857817436910416611480521134577988362145499043368685984987090155455792521434164981132084113080814327307995089618406202659088607472182077252756728341625976025269745434459336957403645211257568505356787248726467551407866251961804254256777939595569266246208045176208962531918795236423048346638312351130869785543608760826107308934119071661733140297564204226761362245538939556727298576121872204124099814291192148768438957400186230207978674054683765721163035900183541871553363231463545296769044708992245475456399065835937593594886610771816126218214232340812638917297717148175377437959329886567939210472367943982583160760225716494509385358485413158457491920961456483950197190062326679168338148567185342256483344838385550585100511821888041940684222004113630342191976492653709106081136556324953549854722449478764527557772375350434755563745882956239548590519061173257312414591041918541221443041737922274496471812938516796004767804760283385115294909508188779757809873363501368955899375429627647692247363665721144301142447794021940105293223003811983016059450255648925430000711487230644808333824499606089664532465582698456323885238016387243457830400648634882897915146236120693447749763922280247083928533659955923121199445461225486505498706759661694635810176776268142037682642723253331655661956500517667163140955596681839848178136281244336127699623623118234830375286496748106382686993274461146642746778669803688293438548520262446380848332423003809301615370247894275532594437925908519720969580132934924510474086120591783359086432873460883981379940927768646054919148990096420865893563112887381296365079310761906275558467344355286383513328568059439600694943652733042619270736496624763346879463639783089063953952680525698951071931437928025214839338278825210884882724678317694080810510408608635416137513616976164584405580463607900601534814496860994747987012066998120197069085719701219322542333964769407973585233666638356164079552379352504967784178972993929581656636139628042208759867428966867974145920334964608288208905107041051516859780345823066482692744554346092965525654827131206902158166970310677463572946366728924979230379628137218180528886365541865169129955718609397895897343763170095118942978000570275318138488552926396529795661688996346020574547386554551476532999546558412056005256243145627214081861600301626992211509692286067646877771187461426884233942578390798113726428735354950167431990236135703828469679208114919534412304058779828421307412149381415545827865472572470930835954897813121466373322095896955116911452093844279548086191402651324973451012369890104356574971716518598295693406205671569465778191569613377952351844917065470911260164919894199272187592053451268176419568617043128686503622527415561742799342346135584547966532703092784947091473858833932764442461505826582129108069255630311275063709619438587351952599256489165182503005764732042193052909366338677100759967549272073693078980294003431809363818397661753699393858340504395971194358126298912380447402488732436614103827659487332851740046800839243610728937043691713249604476899274304070025526645116036742580496913988486595755574292705222516532754742277207081557603457368695615794600748769071929156244764938289153186765050517954624800927419569029389252956565832351461849958638021368739714891267770900144099715674358647128585740044258714630131375276856659456329157765785376322928475014800564689039013679936120647588934426445204995813379461077712105037464524304394886034620297253257320407437741486259991380184249339354587789703983019076583040364179640912297399393593325301002279007641342299701071145675386200231805036891361495084990366131461879083776032137235783491830100312156343910696696555153898623050759923216489669455879553146805935487396315931865257452863180484661610450791584714440579368205183848949815460158506765286828071038489506782031851346918613080122276011848508102129067373732182838223438602451758266540029023578973684440005902636931502081868392927239299897951672871312443888584729537477611443071122330966067829465407256333778973033561966329939025924748572724756529661326697827003651113014002282320701282817818000939669847951099430332577423208787869329608623627553677069125603532586918233692533477200324312777699101573399531117079633381019764010473404101443477611926411055994514134337533866196276136173493908899913321370448765847972819429727349607484234538532203351590452053346601606459940960614173055547578638737964054129207034306120531166664219559635690089882814687939651467051063104656822010996550701627015061220835380648978792091205601641532710797547084583337135033614563105479186735547680876242989030132733751624557193349906542953359551819346403737594426513373936372755419609273806377536792926156533239559840813798160412197268816069066855078000425526598735235422336765793681441602723881426096464235514375163118046271615084492200185466233378799638557845222263104475558161605521185972987775041039702432235278405441846540432332616966807946011362024566079714963748756692365091528144709569927416657873093937860735519628274453479468575590094029524233950688702445008990554949338604263813769073342283601626120459636809134868063337963029263714979538590417417430442067516976023829369488403246332245894343371737543071905466364646164012070360226864278621784442068252856561824217652116946497822440056931902721354863084993294985211210758850044337659511419676812033849107417890393411943805615059728642997477216849180927905910345536217241924262360693017136777234084943401092348435710542275670665104192265064778222078578741381757616052364699253260211070250589423892880535058254736770095601886644099166291666941696178759653563257739619419115557478127806389454112855662215713070294132677457052951770649231457693190298881230328033329347963523291150361581843714409484218386169751309298600451350695390650844552856032574709339503486169786682043518988064425894304475218406883923255093478648639843142514516608788980231464012631191359538595141376599381527447120094173170394948091161291053430298644228825851402517215214824036920328102220251117407445630519461751180314409627069107328061789430735401033363589032968851180003252655334414974768532429072280338386350085878665805343430752958191270586744446566993846390397654612755668928709167581650922450539894781725728787356230019794318309778335641542588308427089561853652492623531270869553085098311248205365873835686025955810212251819040721453537460154228959190007264227792691230946359191470290504872807649168970556210254724874826442371578455762142297739217460668572045789729131665784109250351176528267624765198384918265173547944206702877376550411529205949393310821757226227121507683303529486170069645437625135480660108295039001551266924415618761446861369294724033165735845131069959941924226546756866134194014106981157972015683071093392749482776363690784618491058985640594182803020319371068610428034146384862202392338715638525306991086645434699735500762356853106444188071746900576247427256968947337409491308456938993629628136811377567648040153214796916213149382601850458185691045661823551668245505331418894013101002087498910800747453269332280319256988547220748630860199406953609022451664820510752991325533783251270748446809367533698130735462132786670792219311168781332904383814683526448417971620790691908266566495848097688730218057378118416153250021072032671205013209441568389303404152432809515809560793988340438141334788934445850001068493756904055060891131808840625486926985796792318915446517030504238660730215401365979948143379785079155445512372537383713095342774765183043455034108940741663493235177151992632283088664373424151107990982038409068112890762373513840788825051475549065899137993321224007182572862318569499068837706863541201908725132422725532964448584320137375670655474815598382617482410557825559458694379778866735183622890351855685758998774493308130141463674945095241622773011605353959203385259857434369294181184760624866405175427784112813034994020634820606875630163107937199323327479779944536204371457778115919765570031790359706949336469447502329400669923654664215424551604893118816574754261350529520721115568540893493836759421690780666108397071666074704788112588676879310088425558819168034603473689687321173967597927489028518795589424774955903036678815357252976386398110609668011423061054512396423690884976422960228541663671702058501355227051551717853595168041403609273320129731958094057086203737549394988151591397638292260584462230579019908446730025733622814594241910902449073551942249188707298396738825207000535453001339929106407070715840517842137556883965776630779673541923691202609864417295868715857674105600606887894007392497282885730772067560491763768162115256255872475783208986454041228136729504982433589682902091857274928821866455622464674137950494375295202069840573252661938441887192173765485171141223628990317716310938405556133128392007359293933941167563891748014177956149377544097399952168058879426188262183167403354090136928472131871098337929057579379330601137284903897852952927145964199504534510220763797563373455502227394915766763640499206659896829912597468548960938728156555216271717424156597798488721753001847961717545780989486402619467041651331452431236804341776595835408910178869293597637602102791903268431929756904986986500893781035931529196525464084237210768751326522171248504773349216526626608515376619685898927705782359723951395473811831701109316832563978486759865007186288144571534424761857065305830671321856081782595364580990402601516426343856371894446856846223959410534498855899383274313306161610241116476218731008120328145942936937545785753605256912544859832610951030720440320471558808784785693347431472298543660274843411896821080585380773819356583080553068696729499780539337843386020461811958894491198914840996368827163446112014027964289103245451301088071229728470192620700900259888621244795761052180213690280748638586117165494002600628398492457791824136071528767894318916991163327295274765586674120297349375084279319214589513739029966658990796956101555655828828290773311721359150147906613025270979410245507716325032907541384358794544388719938229523584005818529561513813767752654379822185598929420128312179554670131242811080893926430476434305578204367791396532823865885728924561863843057366540009894148991575790644819015629873203396741077133976377358467460112674047108344185604190112719897876799537903853474930321100135572465116676352328776346774365945264471167305662781356413437673370908545399074863779235187230134403948966532443340216325470678366140598528611409928966426413707248688318969280021195537452646366470876786154616078350128419627716180901208072372587857153709761548017131783922058404525715188828795001733169750569575131352136616529788431691727422738762695316251003885178016796879647496739101035840077102024564171284417408029393861343427963738031960023869387890879031452329342242117665059444108453168805307370282372523508843149760964402029106056127605747103301332234241549057080529426877581765186343702789304786385983935151080114207019407598041168550791515120377397894803785240595278476272322019217599130085115759384814579232870012404323181203308217100381662936863658224568467869420720676816264253072509359733682791685953094490736028960845240392914530002347053131516490112477079853049024032233902902068729468086143380495142535845071918478782667194760039000628443919429149159303860014154899765487825840207129149281269813375865464437993950400831798924864839537880533281469927995050874848555299751533486197543432934743890451681114962761095604984050406481058327215929375391926468584260571143343892826556049196196910132073241634351554019500710585806567403400230012170188852896022700211679203283788648718784642675992964182247896175205900679610628419766467780570061330394352484736966762105673941440487337138439840180928899099686561074859167016932247375697231899105591105754214676545277529521297762781705152071984898723797456183500162496620706223624860054677491624622265270503160586823203661818555022090566729296770696617039694769111002167357147825428818657329041114594670383190941636233573154871999735962081050129347510483989034077665177345681497146994052543103235177780962072737149786806501536685978941214025928643510747663387678963197949881823770936681498446589351697482666761764263754297927906695568979690872812982676277412427754547270865827187278637958173174665952189494355011293847964762847849860859847055862420397198778237762220271149363094363838562007934079383714216402902906292745229675999675490367756191398635490877751720490351406517887910069945455610107929675364344205078713577748967827884419052692415862870624415625124330899012146585235423636275807311839775851296587641824183758116757686090864070795373726378665846734702358587665633840737621872983230563118735094032440778672726537637239522441502769062253611277021162508107794914032817333251982642174685830945581763655558532369222971291780424114823897903113848297979051902977077626891818725969536381971470641894842556596503718955163121527830994153573533453550681636808442349828035866283842516301495942565085846809711247087161916549589949033580205032524607115917112339419704497670619699006390970081423845824028127832456992049306062573652484937721623415339746850646020884826061727371935160928783964197479522645497222218836080768311028528479095006146190238412509498173225714635861714011902611742626797631376137063861264685665892921905129415035844396297505154188257341082578844505656353304182852666731744786689081781969126378731557032442141786848750698829749096367370895208333870916862086240833447749480568289297319982959789784230688447726626027158464692246579220899180496718536651554591308798557553057714692239028375942945406693998826282605408422334076093360369619297817263948501815763651309882370531803120130657642141587483584668307736095216961891038133412225701854128210738133717412999288955661469289244908419684497498712470093849006588307227538369619468870963286752863176431043251604629816192479994979214684441287112007203232764626384131871192250007140267262338557239584033780847918155443720190213710112262108950892720710810760761603358358174300038735895131795711873221563821395550507843144429354531999930791541089368634064614037220573642650680377816937363229081328814582100566905757482733035349115116228325689157916965534077089739283424921824583591685803979114985393868627514451648778917758664193029298423852929649940629698627076575201596668856432364431878866547868740389798141307090833557260360295216389930047015459627137197559415255042301548203496392904583737468010945601018295023071805663411962286419414378481555466918995279531737670263370576041202773950952390305730174071751040591825853846625163779406071295724556034969841236566946148244961762058050720300708778151621644549924421372423896464244214604328305463196413590539324152888284252673009095667451729813011733133887381610609482109549818380089730841132134855069483919909975238445413034142215421646680391605582978336783807625935520652767811011046739962902804005322426500980405091287254234605632143174711055946178436967682172658643409989832687984355534570372318175502220216368116918662423418061251496495890400569159617901693877343438758902305403627696100815278170065050323726471161004975789915951990117149645044285287932964216746923410336411008889853088871640596308839191304641918460399917342720208777069836893903358176949440519890680237091723398095714186714306952275954406881680662958317192045005730687089771234643868348731794607241663736454722656688371622175092649356488625689607389017338655936953020182376124706430138259156508480788182160353512782649248942802343937377222659407559309087518137379048120910412221508571733806965449438624731491218805479002643048278824211369195064766747265274322332861373640944967547017864793183403093647717191854265397810281208127822352120019898694956896756969145072250869153511680655772943349224321516736285481157486776673853796338527758859110838775135273197854964248939680198742095569170804445194507453898885732179740748324010194988845955343471742399303558412918482431685062143175084902223099102215749147123982560802256165100276790754758061715918042909706604250235826985279551380286549592331747620211063449996608425913689816681550950175968961182845582008160472219978053055690119794258412278181878909181740402419904164323806405923334424376084083102689820559693035097274936397176877040222353618148047672100375116835470464422732788437947890635942467282277356862591956971353880372144020366074635143328461983569967051122384699913259227076193724020133076292200235875711505123226130675833251056063634447929704256489868472734399090607751762784945993983618382832040649014664589861752678930256167659467404809900548393141548646353890066168942178680820988209154653153089058876589453036916141136571771019103705063344891480940010493116479160349588153920789569786066269994407961739782509384801033196507093943394692835224136438522123434197506277441149621028410197729592279314052729305274095649027126227269707570339015968048541247323453881467743770692955982372138021094574481094792588584236797140298568995252092789957695643822866694308549184546855472646275115908995645555567868133010329585530543547207644529372576106626747455589324116003831860844566068104006422266820941625161415282984997383505898346951083010031585309797614934232956704791260475449456164514880539754173886779316692158829305363024287322977141225521090769486340341111984557756742310454666804249386021989262724089625849782747361621936184258253506888287072255840405757425838251007496047169659400865492104541741001602146002439665948454741272971692612472329471776197536717711867439709855750734766873591235951801405565371670484178134170165571465865404975667746906452465235101535088665598111593680648676594516335117725678759920135263442080768814370657576023095424286849377762258958788919275745027511870881863215808769232873680374673926708936263635118052074585002063380015680837221107716912689141633804050353697538631789201961320999212942622016149521770547924997975525851706635738178384508302215077880026050724356185418350890774440169639286544658908129357088695343007747556934137952952949173899271933656562572539067829481655601988767547099766710445281261033473549330744809605218723365610282185526958664363073021700253841244974178705868343877307177967573318694514128177116157501985397319388358045370299086446656253071394249679489926815868644579669052658056420682252494542489835927111305094272403873924257182520534529533646758838929465410783211110555150466916165451681160817967741096183471623347684560264558155257131099490080683111537804060617636503175825846616284320090220294646051965504677036292558301308771659549348929075858424591160675291449399003221024301478761156369603730256443433352294320451505735871760723338067984377406257597926214462610072406358645904287527694348327366590957666638934465152516299076077138856164049322744911679965682440042088169684191278837257966571265008588512354931344055519842177676680368871902398672385683023187379869648062792189221744845375335888725548885486251970467361587157472536849323894410465983376220269599249867879469152016339842149426786976079452050759928786529458910493816936414672203547201864126767065310505104782305651736913132007695052431237949675521732903684489364589567943373792106581152728839270194920397156209493104105426557157600845042666888713356130055912200888108322811483589630220093510268101900174142611143820153724787910328172640780335580835894940470029720267986520405774058910950406224630968435273228601168215652365284683789402015781732436835130390113678470374890847338834554045013926422901242803928953673855531612182266641125484872367572917990225383021611145791077082617472851901282875873097308717123767330148380977757969857718639170908577237544404421226222045079001855740732481689629121650810825943863277937658298061734311057187086374854988598946335818267208673606512689321379800521447117985271915968398288026306290496995197528966412238577029337232746215657537967588009941536308336929701484720394821727978264505466267063037837130355420629957426719609119656580433574893900931411610927272647672154490882350297100298001639175483696808936073528123419131704326605073658408086318253594909149135281699371713012680113758744899328120054882752541852130467411223216004039563882053803338505246825579404301406694755252361538656488490478904039980020798019111657211637609888887837872110387214522747923400482496194230889265916842977680241886399025555108545001270867369376379393891338485660366544359980680263736588770175633318601314411449335752447124002197708914074867285364723798574933755304577744855626993306084745114715635356367846716289731058297811304647161324807676568324453246293397163801623174200080100983481817999184545938045530105867347318530665992534143943827920717724049285612682762343410928568496679461938295336001245752881927366638601905892917104871723468267478852207829008348487513149976741403552309201243931724493473417685672583935643001951415871598039600287954043507019848679973748621259369630202671798483470636642195102222315360221784285537006692662577531781119636982528529680239663442927382617293239203134237618915754178401700748947587610007765931913763505257607842046313391081264306782231223061701882876486973563381901796899067501408957895136565937527794148035335535829161725396315072724909477549493553716473782430784544746543209984739367212465667974854411117894282580931624904163805790946666739735236181885656834657068614143327464062032834581039137936489198126831428709131111035962477376047176330244796541234091330990687836225400109515676556466912318144698340053198897841724052374806114871808571678935184232124383561890930059264060939897197834542714370754983970580001988612650296408535396050108763049131404561306320090818185334349707801821859749043494656089463547705802148564643100882523159531463077124570223555344249383379495989153242397295393439391055663932221623358789225894050538208343038694224415404292192709430528184330722780509806867883199112968523832682578000489823526491195141939634033756104612768595441267212852731920788588085773290341240474395098120556227964232447663275840100848350059225156817667764559651639650788844171665531303560688398738165875552835981045299419022021309947129747326569274347735118968715180950442352869072311248411114084088921721721778407052449269212853589045700380586819847720704220706223784902515751926244006251462535535026459968105204280401374988022197632164390209127907820013957296671224042327649499610119620189947753915836028729107676782140796473829276957437909448199988817503043617182509836443390329969871696892619243344302452326541714795651821605982669279731221174379893477189040075651270823061150691915279655322130349939834592852998534545788028357734971987772618544556914387211289307982381114314770144589076682200556315871575500201703209230452324920922771720630370198934456216221972652060534940860842216821545808497957414647444285155448354192273890561502426167795901790442371977646868984823819350312663990813080800974542404888646119832066989773087833578906944314588244283413096439440189492885299538798189328799529393485129615628378783301050863687375943127196983645253948611009015866514367735895642756436775231786147596453503216845119023553625815001862959512562225722124809684857199374069172327147272633846981745487513956126281357764592119141137563043509544732062877770802303877558119276344494451762334237350428844681221281599243704581458347048635321275616291165527140606443460918380218597066801302254262238612288854124088186456708159164409568103727409854022303416566799341518166054881144450878111326584866341774982476461333420049363395117320670769942737437115518801916229508255565809319094123321038905709072212451952223499407463488870218275481519221738958125195817012769211618846921227963227755423238811753768941078524950269737272458017817142042073420173330346438808218762212896513465848780116191927888878868920471037368436967093270916092637411986136511235035469326009671820942893481495239338010464857423789161141731096311940701159624557164219561725938469617583148640232854315123553397236840757699369862019969705333715308916111571397938395557581861435055458666835305162674648815588174697516227126850634376361816744754565017711354005989889000748400789557021520301933744556007088457529649773157361461765691717602863267178569260437556974780335941047515079706738854822450087874347980511860972217309292700778093920854649510329423187016370539751829009811507829124497634964245646389578768910627503286883949006589754709104089109329710548661755193927301334147529269850684401190201984083877619089639346512880085317086664724415094697003168328030773882895409753732755792909648862440799164366279069213477553882610817683090853086947443410149953789642493079296277871636217402208534864501602050148361282482818311628544299392403555129997658452316427163454338340156031302213968124505367102814239465464269269589406157948113739340823573960845827914004615672772195989466286658337302600627488840098659370399481826108323427657850860069144453398530480089169357422018485708113446574148650711887903729907133107928391924464822008444526314111396742787588831316895635849996411380235357609214842150448027327232132310314210157963801365033322490633588154760560004379791319343596481885861890647497253843987049381996380216245971966250407070013586326253479228374607166990543317552142748459876039418659885343260498323174403425846343482164826662106095110256511791204776674791684356012068721673734851231190185605772505410300850705159505185378452025185811596218305615676779164702635474451044372043685785253625502260033503505263026712873813278781780524993145994273395845719309508818362811949487810331196475416848335629218596270817152087028774706595394873366695094582749124275228013743323947161278125176108591520156654507667389942671352726763351106773458267896919961836828603532372283441874754818222181435319795563064018640954329885522078314482349065141679651059763862029371303172838582862366584232434224001164545275862929267771476424721468525508496347309511447367767717485787775540290220868899385152893896468749036652126772471780165792798900961900642397766943911571136138346973568441078153347781763334619459746709258509441936098993796934542280124078306841958749499205345800801143692329316820560157294630110239425673261790225150298609894268704613798929316881689380322983396804554266701880695276589124803492625482957921146821207679013650548229035260085504129533530150516690388174074305278225158218411573326688736739323187666064469525034396197940404096358116807688881259422891960508336700268612932167061454894484438523729231228743442662869536180959837880151061178209559609527234871028831651910117836509069940294967231092383649711706542286737992364119888681780582131956521745098442249678557778178909673450006094987189861199256263410440420515034500229812084639000290369307313276239350294761488043339001711773312070269226793665193354242666572878750703051481581790577946546125655873215954687320839767100745761884028733991939008865625749834589029671275474920326106122338733917907287615227350385482832707253524859969782331100095041055247287445941280413918675090184475788362916314606295077272945653958234568894746373454123695468076883913731499426441827485769586414133837843277519816836570352712855813204872950900619507009779276333470156919859443531519801662264388657440788283196982037546270412314077671681117082843293360035292944976746272168005725016467681281506889507419253218002766289423682299205206917870747753228751205962294562072407653460498633458157953617524917442311760038156116177972892803217043755493217422273186516345170954970829554326198390003260853518311439955839183620997443912512492461255154311592571294474965469816249496317764454371546183271183546023596598045097395041215001543291101641725745730727456061075923972378014272815079136028847652348198479357039530980252620918871271580280375187762940599435648444405256034716419758205981876647498749767089090207290423420425716567623468754310200410564606327352139552236324259376751993004970482822836925570441820663716387239363349676436686688307862741994903363945229768456758311697220154276684793354011947477308751382401584528768376828822649296270019552572055598381877858995174720981314506382522704686237783425779434061503224769899676459572284108951900524295657878917486424763707615190614468411459808545914673523894043813772493674331394530646525157915766788142204210283734633679229459364764205745665268157407134681893060896352027725590961596614818704431357339282319308949703182425513811060501900485259496378869275016110570143565458392050018676129955379711879927812231878029531618724912691825651972413737202176818042616704334955108196299879154844037629507830774638224246566122487546758346767951723021038150323837956820315625947479528998569063517306663746342032877169247635780602222566285111576277281496286173409815219429813556736214444031789066383190536145911600236975847624983745513129436759187674551173795235501440569329916201967623151032894510325718155885375812884235754269518326642437119573463214473602274049548053743953177951026133066959567967347555079028431606218182727765419100746535836192073167614894602059354073400351923885433520097743599516752003245768732253737602464520286965974221695443521949562916518981472341094266969441377876401093087024478050915167229968793920844679528701082075100861266783422708653271916353514180167103285144957611081851928617317981739732058027425154149457248456565063011953877456413876760826287749277464696879268765994427165251217223693516253351565318311334526125409833369992801546995127201884254497572565148756246883114662048119373535620678274759742190928306756301045272907336013849142937922834512379993430901775054899554409642709526756395156320791103231344695385764449806546068475957740708947668491702659931994778052212315184966721759970971226363068343930034048100680884571817416439535430276832376899770195546543897237774608782141101253790412125502834402919232926685837402688548544233639305542557402791403820737442850734797348884372555639159877976636746407162967230163077697524001565718509479235299243187833413188519035738041804817489465494421469223424513492800047044683464100573403077739268369710519048148498704884333314251439782307705256916032665166882085335175910936702218419845850832418507542751624109491978671269070968820421561233737606803618346644210690102568035495576357492120103023992940116580745271156929876247451961967749387808921417490587274168109777796855701351147251182097878426379330099569596140283050434601538532162058293326063272818266476584387839632882099727576415617601886275721910483322231233214719667206033340482321786307220771995978056757062825896548907150173117794854638261680379810404789110144449940355750821323275865195219212800643948157760027735883372670959754389959135538823949912357092299871004540251960434912625562016694027534532825332673546750178089639516139962052350647265381538515595187576064287526495784641584546786513358327639920988611470361703057657603006261753038147168154221109864282133478098116633087556350238808023811144929586588931046019079009002324528897861472982337205457263150280700625699682866378882218238794421062335776856373292231249431528951435222889349268985610154290423512672749376915554001040608862701835585244197926351054398164785726220599702695588518031000795945051375763820698947875443580342838159439942683738131640733372417084007720000995678889360765732406999758945634236608648344618827367724910202706348220828342121206732506382540882319369587991211016196511166898825512974002774919547123365603520802809884616280317313384845078424636273654206326745541582936376513465123831684625099033419773134337242223371105021416995119953275843988966479715886347232797529212053013231233936550541189376144642550481010684661062298432847519117086277914248123242341415668942117066568813473284295794533525303116013406306928692966784444280886796737631871415013536160013200971690326155651644126770858191754411606753609111703005216466609147990679438766354076918005499529219816615215313603930052407042431149119072410207027297142673223933687626175300301659845440432317945746766564203508721194341707513275323654231695189182203005038624615447259281457865242585727789841930887302913639925714024760331796277659115641648292135455966621730496437716051837237976535539997138044169601798371220145412595571783062153967818144160563070790982036492578783903627066988955021148528261444618093326924927179314933043799068433601186390713296837600933459110708696098614111026065140331270857629439245339213238229494779600168980501663406883580575251222297863291057264797023467435422483754087259104276514654702231783215240358761036987047953434435641402679428830979538342459467404951631165648923441800014177448849329886835314280068730281666857487663791621717777177746375872055721354831568760822583449658532237088397780604555547896403071885863770498634252430536493136451124961212572733035388884792962674842994349967629978678719436373243187055792386728661463042137523630562136989799307167352513819566237217036699610946566403078551494452381570466191289440729280294477549589961706354154855434025640344866860065948944545780134294835851736837684394571032787996217294806225248735464037678583059919877340324721970981663803797078122701604278464110536224845876850550985145215369908355353801440113604215198536506810362716159655151734424493998884330935373037075634805466731318682482938873725318399989833884678917162531690182269024817182316797895435815432717198175392399472772737164355023853031800803163679304535481727332817649282897200121546123742184420212870465640783432394290176530331207237671872540108300539916151959123061892088489199157142540981015541211202915457254819398183443982511445488997603478746102443936888954091808311378224025166256922298609833592874749431363008583909188675858684857614674852743227846239777929863291058000801906375572397171915993119496191890165444849211143323465489002033831712485737337503000724616791112161328107161982760722278147663499111965790126571251778148849084566362746319320793920722980086286765339823650577116047687409504662674032537905029327318931192177658414915626729565803772079233993762799260039734505432646128145780875449766062151677636381282211663651115574111146619026671935570777367442618044051153076573499869454119580054296461144542310209162947548553769649132234255074405587439177066473655954878116663021719449191903563074928025544644098067944354450734989765607884691814412853858584313568742349546515370458594722856165374515451621619247669838555697548197408529729073237029182316189089210639887688594245167194187083248757720125338134762071503651582913332650397290116594322699050926920604835377872005812775706603461970315545103913523179454919278512967313877734410672658548221300734471696608809762811506696102795913024019183899312603231079324483423708890879486864249316956964507614859661319581821746037450511573517482649404788804754868921070828004357299752604565169610219654804570823704720231527292071910839884492851920815611221750353238207231663600551509520998563584340762878626115373211108035136830943566714711800348188224103347208772637957344209496609645015677476497040022428810812184584756899895821701132962413118922505513958070506362071045026544514476709416857332782612104652420863933884817802043699819132084481127293918456744709772652171368738262611451726872338605621398785402190693995951857261765795751469163068362513284185823125707221782648976805377827340033860349202784841822516630219628176797631557101847667343114940528864524971712768211934529650566501699214514186029687248522724859321595274034635758003802635429059309787495211439931091337831080079547654948327879594994867810492844512852824884121770375605884112114615734824673191518784311421353420509646608840959648651204423499983632566759025213654175431193199458771291760742136168951129469131965910000404568683158117429855050958749122850597748415820889087870662179233528968641512693377503335443078260389959047034893528581069011042026131756694735670824268902321120558740759729016364992478679293277056975228509392265190224244179256880629677913036845005353710211003627329099335671943479019856599664717605643461294236369086344388416810845433587421150156919260412564294247879156221246578924274417010645173743292739324946826534442572187013949710053271536546385508282005559281845537076793492203541383579769802028411620888216826032480944357249566394577811166453019893284015382288555669194039143801322799225095410187332121073511873587915465182346738046286602381397667983535236731197169153463122929293051822538049455607925434540906625999599516684761444545251707771229781055693870611025915979484997299151035861385316787818530668211152316894182788730939428130885633100369951291388599880345435506172372651017997705569900755814075911107753235722116864958570661012705246085640929368075595983710122193790583514103947848614211312618991713512553635932007658419374677193982054086261364076420868345660814499858999648475814039355811214853793324464686728234284229815004026944607566697580781797673913897386665969064606229656740839667098767619531951994283726559193620417609023749672896836407485010826987692395208116835832921473817516951787204327198706200302521001099516441261594336555022889221843367840810734975782318311498130880919041708005372077011485601914448145411202336346289974204299679439753995873459940128954352616912360409135566659715724964165604083175566870657093259780187210185886163422045042448325392064630358737383284269828237499604010867251453499024178883937340425634019532676557965899288146956678667383301245282648605019109236414637272009859974004576709068974909608703739044809853827007360068448447276242693421180985696157296539102642613193108566583802413782699238299641583554894623584046814414139390927214663067397215866413610716175789217346454611469308003928558952914443609925729173614140930321888393449050519019222527802921082339297591375816166679923800314816210608157293832620909609715402542739165873832020782149039929536838276313281570162493809862889317088651272576459763910908815429302461755329428880979108803546122172250042114122132551864791532780645096613340259556332312717482099815840154752531753979804532959987452978744904038791769863751357454042068325290476224785194947219464479389670873389385332991918807619301336959071832655432542660333771143662260610283599525405966012474638984832323299897959507333276882195154923125459703380305525662352400173367088127269055329912830071732405425776801068014055047318941219939706383294914703292313381319299492601939644348557459980075549162185623573252696775002735522723979672897127851954294306209704435218877342850049961882129857338358879979422634170638576867212563617007182929681714001754523850132000895171324658956734786405502341822189695123635167439947669921576159457756251643086024386351368804021926497941618922699377556482351796856455036153896945487236653013143415743025598199736309110672094654207224700964331293916139006161660442415958250386380917132211178464567811603782728113443566275795561847004412685717571920427945140258609354569210730254179948915478642507701177927630624755586275699128528309561080885185871098481965884489347636432208434059745596050644250332015073248214447624058371497645002219682387822359167342306949661447293501365221979126505494266530982019268673044979312956392646971268340906934133350640307252370463452563287653319615199890137868259029657024824009864188846791485911254782024914113496493973025634128084138111828061308434249805422636869114475383104394780942918467702698362449564427786022659090200646024721940956383767916760402928588095602999836527723254315938785231386382450366210021390411048695981856931419302562157214623564540026480879900475020109491346425462833711138470421190159175795247720381443193167381976771984538982297304919946219254513327357946390534392056436096804260709612064079961445995558182652026768923502559362677443765183119380692744258056584952067531587638204930718775856251868358162161344253165256819442086593251863496208348858818853417539637585020157102216136641669612628832608694829863331243611409914790636901991342400943293682822250159012130757138707412925479235802201903345611876287191899209427521854667684207663568888742929969304929790754013794033745755013809646546234535991800153682744767902104224152823266667565956103236435957434831930940982481753888920555613867254272742111229533680493458807842562907742341882467064450651475836635684135314111034848527139387175026293518719681992771107952084364264963868706823070476430473345526806445177215587998452318957840654386792335034243556954633136466335637821719242595521823085977634060165699533051763516802172987012257846081185956252107304430792307442934520655528394955434092284211217405266536965809774295189030706672302160021262385691928367072715771295495732110513682378859198150156605359067901873542128292627524120283382544873610715210267185160636227627205559551402905706031905245284776653424753908145249038992232791066198906211134159003193030608917745089005632392176238289793502016867450282227280052062023273551793829254398394921342683449219013146623488771130964624412036238469255958218005655830419168731402953716803328965939838344187323535049439339713848488772822645891409449337094258536097060919226700623711820982967425356122898066981366965052976929844026688425102939707572187552575086518455548471856681943358252887417514213004137266000936591018472404425599619654200241974643221985809278567144669690860998002483089454785680229978420146347799271231303335507252998515640299694505537981113898402997771769712249376797741600229162185799137337942179785795174555897828643061753920549466898321329544948605420648503108113005323761858466143425687252071213357113780491054797432610292408476256567258118255869668678460271551381681473429679884261544513318934604249426422853005112568023238409600550223097156610959831881862467790292632430284587210892645233347837256908066298819062081383400244984588225805406567209877071980192312335116464911220069450396384901258289133880769700129099701255095391614306444386399087087011679907707414999384981287791245755161059733543892942166529321614020558220261157420667133106434682257926813492695794109502858220026047093251277878301392095075289586400167436960472029723966837095811412475335395528611220798322896159512909764002255120694044006377536233794807755641245004578867914202776876917487867317082700926858490098898547650280882744957788125794946376666015501654505313876472758701361684345095898980449765280466446257237077826866748211653983547995718021278181952954827459632825127433512228532378538835979439284349394035478410513942305844952671956002481860689553120798443201507155071976564427205961256808767651763141300838596003452262166285637317039416212466450194021574771812866306451854244395495434980809041154393660320801948506804886535889905375592379476789427824451923249339240973813389817667438932859179848009460077670617489447822964028008583361161110828070670511068912927233876720440420953830943048984851100832206751208047953200476050834325515527204969175594218870796274469754792534800464242634403740553668025743875510902115100528132552960431764539261669425432776183755019814582398353195633840498346350579459208375924780499194743925862677724867351467067461552606369944590541241423654335737507171343763608242528910334473030682948512776489821257575908043178869865620564047104492746068110278703604436116425666648887544714233207314944720284071927276569876604686953889798413024802912875358076437877006685235641260819697418523619237623938953182288941195594968548866868416560658040155824134675301959147984016251017807827792296709380074179682288675563669991221584398056127945027403847931092292121371173309249103284969010971090910190451179474950448502329609271154605246493379440092692418188216250920472066253840124316710866196815978092918037523896735047500046024024905269151086066485307009950616596292915843413185775342227103355277870622546053037291185739184282642689918720666291124184553686653333010691491937382824944234146724822999617768706743504014604586752057743665798823977086489288628511678851769409272324737608732698697565142050561492065054499177666785561915867504538638175572281915543608815155718233099114145571525905112075453324088052318868321398073219109331142344158462233759014112253296391739948091995722261317526502747404837885848975055581983414173635164749295025227922853072368377774520310289711063802504116614961504703207094904199023406687212995840262046085609995299172676536129101076035236467447591535852361158143899635669385083507721205780159913814102372021320866385526698744775079375480699124739786987505349967332777274144168618429189551573488327086967835479877237941822621835523862278345658801488814948500086411320307709764127819461863852038946349799236215672470527270645371293935965674607299785957531020472131821304510006575113534011013259234459961623577653299995388928507139931698347597048647141534634791856056891422845329962522633607363603180005789886204450286408467619375234771273955504400206955246368200072024427500934482476237999461853028189512928144480846181463703244862948956503428092901768075467608600424806277489899557674047304506395899381405629138673275795857564586979377724677763688282248115936868511536055754403457455961105332998381507975631235503709030526569491099949526033571228983032051317458060523780488794693659639097574538419183809098861472529125214179046823862311058376015528545609346996459081005293579560823088381187813975591058908467651986990647419961594372632676668970782323376638075147290216949462978833604638940404936766385113175939415802930880077406160232816424417101338304165957260124188050458313833801604103263262850070886751578683265846025171042618819013760867077964127204122700213107366856055985809465957969528906391312939100699416709125282277183986127823620485402393855528277196543806370683369908250484387431702058171247086587831703047231934945984595273096107711711972667451888865023284653567042084225351981212887847704836356548400456903008073861539398947432488345857513819321910972540014736921757428718191029334109896168138063528876765962760510372623458882203636167354666019215995719578054635355233957644689211930448291142890117003021151107216751717532830463900266592503101814080829093497067638021758421157531972847731134260376380058541490222323730393325411821831245520196423500663184354708723569866602439008951696847477322303017248083790800396065266761900082277873291240305272558468447191500631138851771097604806495465654442147999992841116066484914266604429469717577208769781314218141184652371121257936072459443961297616282343585349196164081858382745947908245077471141709786496071352132732244979308899000428570813597343396238608427270790388340731198124686283713258691798506313324945798085920253612867368961320262867951519777742039747320012478182296801528833144653275290008555717859562950057386350314141956116560592102826158448118930685784779165773174041412803483353927161179925166472232243039382042814029151541995008473043496014526774267690284481548214608319191894349477282878961779431964560344102212653681970645309389597586779790299081473409193714564048478146094998431293116855933271132193679073143309307191993177662490349412756933501242945471201101804209402191876115177072148248121810526614033168747006015915729732635717023674779743503634748552141520685222185959565283886211806766445114140762040018348746628021635240768944716025642850457832588631525610690473065915855306309662692841724906980411261177049686190639478193882622368436761145240285911688809869180025300267547348553067177191834785879620640308468379435973854440950374906989544478209045908078852134775653530914160334971321648879323682387853868409521877183330443906116679079162622456056324987789828068372970590158247733176577131646936676387645675592003206202632118746657507932969681232179678652151505520712033154666510637097310701839111920524032430894385618525793031023020872779420666500110254149192160681532875351218557295085874007342307655706012225322745199592444980587529541314483160486223722493856844227410901712645458830284775664644534421508608782672082083063420613541192972484638563603215402460097450887573975983285395577362529719290997842792324157197943816960442090493667526750084603698433869369630482197264180275361128436240848292464770640912640727448418086198854878228751844365325056741388832215220733605224692667323981521747784024314011004981132091199823754678713727257251100485523134393114414196920257186703523508851091776695569307209538683223807214510676285598952201784146108495999698285650071085576957840102861580042203355522048673058479780098958468771111676787705124822797879276712706792515250287102064517210424471379912685737877743537992820843723639034798671118297643916588381464089664714089155604462251514034216295545471806255653187043035851420605216716100617565441930479974898270446429833573240418614925575672627576392191628831112021247417452558427533040853610071654624411311944310334910983417694452318604539901384394709363495449397094689119576826625339478655080289409623411168102193711687339113517000778720898576470794274125808781191335480767688216408087460946948083806777908746219365527776899611210070888039789240938632387627063306176481477331620410143712703502176734556704015877216542267319055410789849383377745559109738273442431685146376951207526643044498917689772021534456920278213059843884364235355846078234008382949453815284920312999535058402804194122772184525068279211995503225002333331464956336855101680823315996844512121362181202834879997535023644481881819123515511083603859744704976446291155491993767291059770587530002415608914071236468441148036321397571785371784334210806425187941409348545034514763464838417405219538180055724448132996020215616906351100854964553590057434715795564571332416249889006105599574994112061662107513730364200715513987619082560527093988330585796839402190891108299384366143115402247491369426092051096095275089248254528420584311391972540428599041470657535228266590702936485704356074586169475984546414486046087061737918373710621065339753404688807335880963604514664462813004182154940006084861167863561765467901241322695354010141967519674284334016461431791278129263719624150680561361497486237613513662994389392591773446551875119074805416430822049272107535434209138591737312912697330681233172455394300173081744802691567115100949094778906682339859059920140174045595919358932891625204583421276427104946546926797925333988999849146053652885555458925435433990400177306604964685682722371354720861815703903994292470013320231374655684508564761917590985136197069490366729955162496418734307118574382784553644774081273535377084893743178640946469663972057787702230739101947223140341864769501288692911430300602469862528603166604598040139457341668565264053447385908468734124935081494540200318654596411501542364724918307826484363465194523018513953506922250549609728095806458438996289939081365421715568528410456482948022343948639445447255404046584349446193712023135659087242271144642553204066936404393368301967697351049755041999084413951412103452020927968244863213871792207043033632313548084439235832481681702111490097683821509041949374004018715755807551062188518017120807234137992819793329301858760567643759906267121483366823439981414669042036002223956724794271977459580316086185921843354513982184875760537802522243985479254246780123560451818139404728126469775267062008553028726930966359509477694192326830979446948997004000650001712394581772304973351961751490838246912184749997334083554774708919664867892976305036597936976124111641394878915663240298442469522949310988234744209135222023137004191251887332953208254940057405117717970084220236543317168658005376779929847350110743965835862010651164011935141498616325692227430111724059686822760935055486796217661736596030435542047025784378261036893802773506940658199179791764170540405322712667604525189910897108270992360278935706351242761267150798367979116254910465634924255102491024286090103098685235603139547964206640910928547197379221644638913760880722003515266839274506716783771397631131533007779447036475979724637407076945125967373728536170685363525398011536942958488988774386836175019938928108225248623495109380062884888110647281908676231191185599150051822663139712448934775419923222957049182506409154593613281356048463297524889525139251508101619272505659597243496663569309494619881241155925397178012409487937429364661300810815312688520763586275931185899116920897404572908575248605928022414050312292891982917001995821467612426327850802712776309178132420000362973603376495794667966825192613173731531472132349558449245778241303068137964491490747403494539577724945686445746810278744873100217607684108513715508367925566852803460515442186912136925413918841192784411797993161739823139602325949559660584805226615687413267688442809387233742082191977929013115550172711869714768735315984766414778475715695683509736648232932430908876802687078062759217459337476128253303517776464678351777329297828291265712452628648543892436080216855956049882895598199757910464127819099522684387327137570740807032122666204245201352586544257061550502933260404041442083256989573359406963384061116421693954834900346184333680666227808384634323196756170393407897998119421908723150451150049447489053137515093294369763871443533176150132729038294281040236577804040260519947528487448914098612350272873422790642906788900043559533789399263993262067541959246805025947463087365745725659470925253315197111776952795143201313013671007295558904190151187906105282014237305789254221297558177589766689450334902093141200453904240988006305617634420041055162973477931375014392956681048030170258985787572635922724445276744994308098884943869418787129693742238890180618407581224988332617657383856339995890368264725594051519874769699870900832705820313894744730934439430968202315283459290654538432070354253049829019628176459445474982089174501429538688876970914641161962511045922074683175399244047344277017537990147113872439032706541090109552445775299930287343981300473263881291402904068865119115078219853578600533568606166712911384180529891009017240678657961404083958561296994138310116269361456203843492557078405579230869847532256834206153971435925796557531216795765455664102129165328394702315469036399180030031336528807539554788140267194822663654553323642793566280840301833614200417996435424140505071197391979914854812002848885702714110694001193261972309576523415470716699408168278100509922845484440688557812013968549051708924928685124459840561815046441220692797502218640978419308342367107346249532178767913929334651278961153094271165292779576613147800182390852583651445618222944674887379030658001661648564104606220114498844050825246135956333982933743520591649596386816847387430398618019336612387423180273994913493124331560647528912105874977148044471980677058109016039037927180008108822584676197454030587802579871275822475546149953359781331073693231252826547859696909782502574212314685317927832457017194186699091474515241680496009502615772324385034045088951135731792529459863345013803891368638266418648068575021188430123614444932638295815158808750228245589922133011306849550194200481188429331400124607024987550966676683754704109363274730000412150784256396976912704920506046493800550571628845641548623770636799139739018903136139565399184791087135144175933065501063748143851427300927888563410026243185265832427993550327802436263039275532896775722844328870743603671990607957752702939912308419847023499245011547096774790623292353634761653682642881085092659885487445725663631268742592283482482161517229418317671048223454697535717756989281760581197749190249955616010231532726665211836516144984846992547182661839983091153147029198570877474090827820678921414633212907287430146831074634512553145947513056624837156761896414730295232072784274245611475550072393430003296328481965400429874921329194864125662999071369250618478138272512860830710649884042861035728182221219249440448711157541899698642673596886796168154456368171095073633539239153881435821362649439763910719531366984144254701643896251866224625562971819110195337958748063712154072185905765612164471732871541891976543930350635388335948344342160909992018925906438328493993921740851618049995897486299746389718391394580767053730168055437954557588746693716767524683174174657399211382971899478954380967805362652127205480687523554527225492467478436232724275146736096742203560458849415215420487055897423231279595940159003984150591134489927972819534094141946000776320706433847845976512240022103642191740434516451115417150829349190648027110501084170398258236323182731160171643374308564611902788425724235111188358786040965678630800163794106419001144877279745248431720383520516382792873051928325633578870848315340016242586567754495441529705138584765827364468410748852085822445311653534157156131778013386747629969287210704395376371898045813006838663690048131211467012039384410370714641537819918089788648672891984633948012963338779553776472408220352377474676572353979766835108892316301145630330341486322268520051365416772911303772535700469714218388739384258536986797087914603744432555024886244682066144610845161283557451425831540685190974499659666533199485046466056114297818252054499858040705550520640857543284247908547533887635159913878851376366754798975704523708354721063488437457319510746319225926806533247863829139620989267498565676223341804748647070970501486004287021549144278275333141695332793014472836242546081862825875785058284887673418849245670967643526598640076523267986238551677053077957050265503062582053011377376478628549176194820740018025413043393759597873354753773886767030120643345472061894935463704736422777812547942134823159975723391964196170603751249189347663580851307605924686833520356640284335552819995868458858224557817155302202880504291608134449378222571663299028814060608101230115102628737793501314770504774187329804385091241190370000740026873768674504214529660984320495421477726295630882871738895624252481390715187696146229081677331960005803504842449430351260008324674380175408355679723127970357453360112903297119007909617023927284963347970971690341268295351121602460213411135086183193491243024293614114551848883855874868940855175304266371996021211554921182637806853071856700010822293232062967049960032163555096489331161954831720010864133251784270601775296279114582277502467193512476063013027160763558290742528376429930919934059131333833099391025348947626908142390468242551366108947472066501511896873476702872483908806528027854756558782226016778200814685714636553448963808893102154795094820490308982763008660634598552751257053657966838590174006833133695599992197155366344224577615188220261718934684493586383076169046242551350066658111133433904322879763721917464423778021430437662141565935264664383457372823511051169778663365562958829677583083107383403159717016102235376682284499047107952203739514532603478730594879922670684715852018243996442987353163605695153542902705042026464719924800238425339326454197062274521295194655964779925026460847201326237647072550489918969991771612687303639621654489514949237741415687159569087896175489764473655745682973011414383043252740253808506127528231214587165267925893974615773796320859975334166578152704562636414817404303556741889664667262883153150777534884080375793606237508742241710637957148919086034547439310386365881339524819030972397053443047588154402190080638359348604422702618336724141346741125102139094066207893784526670507059198837540243541320225797619327358066196633729444605042202004693164670690448278917837001058112514711973482599359519766059485116734566159606448441125078861079678594486359618509790683705921543082424069363407252994314637931723056091908760674365987348369120736764644191712689708155326801984086915646154493899376039810399393869507332726519943907788953512928032232134775535492877529443430554174289128647128412360999590973965438553196751287325736587396157682161306327647739068359419283817360149343941052590144357178648993946835848227003320431634044748837880532520326671849289139443664147244389725240484187532912025500022947258818275378568574762401829167777159322957868676052157451312986603799964205497193605758215662229506768840992202584130296714923409525519187797235538899452430243454778835277746465158854739561221851510534925860125250571409477541883927282439993139183211973042897851476757831571510157085930622607638547946051874720233784127881738514097388823074701445061631577000126901759956389216718352418705766376072375727707545053572994744826657030974929888965777863869417310461350077560848777321299137182371364813408635928890820950442819372343946528521427707961385420898332987458089977198657462315247560414341048003888400062139745582130370774775754217163602916384548296967922477333432088191762002962863096325413242849779401422211394674808960628065880013779527290729093688286808527124057341218575409540856628069336460288164394703441344636859481464201682759157636044624456871611198952754058412006269230672507166155151240608362205426584057355070415299173430032528907645333105353811554723788951087420866940405172384862244731506950012936275339864118145287246142616050304306566931301911594600375183120301325652355513334803787913421032295573423357177014636323749319863547553885934020874315079126063499822186455877708358929349847781402971099963249643644293056451985788398080726861476281342176383739294780982938963170814376175273287450140463723713083494666201597038930622873196134404102872353244767187416586905342213434709703172667994539868420487999545043327172474677940454577188712928558006450982420160182660103107533080567685345710433677483657964957623710200590396310810179441201471901857445897571177659608502816123871871832472987403027990158137022481277016733822648786995319358291363100347092945836107779138084716719316345053970449027431034214538300528965636112255017965483887458362616200457621838454341086400802814018334188451933326708785527607735657448779930409358772954795993612492112043186778743607915048134630490212042065116682521901174267063940227132777456559969983044971676910772679086356936537553925822675905056616201460831378133472776949565630443197212273556139122484001697712980249196008648838098076602450275694454551619720284532862872447557050306942727761577225158266510444607942590710408786288942208048227894645393657719001042754261545439157765601300347197995588478394248848540188816642754614948665241838249163219664117951602372513565367984893274211834695745445354499091997934800656215896134023207572028357538947637503256966661754427492024917189769170171187700070560175933621964376601662659637146079475371448329933430039557188879296356774407516326461589618290686680730407931821336070890966744723933106315325600646345811697822868575653550951067754079643940311485632784947266828903336481443588386270477187099613766180034940544161869758181204486583834533894425715116891440257458949874181427214639876712812208236152160894820865269173223822549378217258294713790406851186733989028494127504732072892239045019025504865674356277758284085088804113052752748066142646837355695422478835200874777081301774848149846909609708229049315431335505382793381846349281900969315799112219335632182935295284956007054852698844630814589515523923273833995343446424574628025774308054435493885755098758033550252963820543331668818772073901522599696057583966506111095827184130345782636613707641337432884924356670365761773774539933014309714209405135696522702528572902327785245332184248395122014073662032707018993330606238131946775625106382480269380954200836932038915423713006867864944390850160566812106421146269334831789155598686939340479324889817074523057791548323223561223639906216172431744705702671270752889614188886764151400917411394847372292705732773220949948897214747866091277419889980490656564289100903640258439996289319252826995532762236382311336503671518879694661786751522637722354534540194275788050198138189335011254307371126175554220174058699578270067595417366611625330186348303452687189910329690198294420737475698882653241764207782244270889039387064399697346583722750431428255497498172607317908299496913084827160669711055591912189355833550612222145731185162854579753428389166929407776636870960676748310099349160901920481772085186738237417714289913847051965614442161689018538021786424439485697337505588752860587689540570286230018413004101742596680889299527177282599397438656105871732695009659179837818276924381921412690830473484975937714088679879945886100408132197878441213494487462779285665345069441717863589102518820330970216762975087616529805044091628830285517299909524779459718396602427198397373888931990304787748464233123813806335330712466001729728412263418215808739680258364751549740991779890876229566653794305773945302227782798520177352459679291092611503566545722697462753373506617302654087613247355339806372305973833779295497042324130693130691676466991735680534051158139235936724172359661377372553124260102445842965948805564524744814127434152328062995010927172380892975429596824474405196772142251822515487831570484296825045783808848979067068897408949075002429588897922428383321481617555781751244232415573449393881897901107233682094193787033320089093209533257243605413085243007639830806500188651992456621237068505487834889166867017874766548032773332199821779988513569480435951348287488031369963153400944218322973329917281088177745722541478870494245212684901080734829142033659169062296152023305663349740535041349827109013377189872427529635646580382103615173172215924335293939073998651592405572449729661951739819557520723557386869427047575295197483977310195298379638475007142358535820104089573029524857331530053712016711935090715795576032900635997692292337639887679215787818922646060547568157753881855668657900354776765376446836670204754927821905121242712158741174136128303907512472928551202330205626705992847548626604398229321940737411160341639620815450864531432255055468128871953967125321629681795693972521154974557104146697812647691695282426955064770196955510783469535278468021249680782086769318741549973750618455270140306127187637734474708967853724896218716072077643588365438896981518396212099654551042055904415803567788146535429662791270000315083670244844210154033580277598755902510541115071762808729322390568266442680208904323777575604056549634398242270763318896499595851969307710047571870717344483062645716626867278659652558793992054054752352311551204284647180420080346529587165978357503872276432519759297624738250100042589687506029911215851402428696411715290795290111927770555698578400700005498731075981717516326730303488334283349985729602078863514093919041646791036305597937699800310025907806459891049707285472652467236750485772322639086047019284473856093694487957687289633052635868787380740850419170648872104561180761568679460197088340104104597561682152166954625225409290781152966703139178117729227307285768615755308778523723716706622366294593229301380421103251638725430847761445281580448543255685603153085739031373670350383193052295180228990625207450994166449801073269516000431799998074054106808853872440512369116231420063427004189791551322765217032121299287152565171500795474373436598173697992116028438305681923409128238540305618244025656973649949087653077007024946296052011350499745942695503122012806487070133501864453169833907230352281928788695330083994575733021036099281704519136445949236716012787377617119460531148801321988405250321057521074664194008247944370983342725390898152014118912967067557678196922955635139282362270716116489401824552830268733709643933476346550599410574814815394840846728478059048453661800158202103302305177438431255496767377007396874111752525581301408317772797570664473466319416883234641098901243493704169029752906700699514552959899279864432552839809948043602598718388450412240140487872669388320875091936354646925202701800503121120010489563796457328063686139111340150206745923245214304342669252430175160393724645343752039156705838688326988204514133158031714336878125256364963194149318133649669600044336402274540553004264237165958737739217016668880411425348469314778827409355129226395827810106700709476745527532205903915223555466203732901174896710473344218702685449979320208625657170963722566243154886883349684989896599356180261328315883167475505636670094678108921117943422329206626633540472413658816921454838098289944347093603224980755118361792442369783950489631229826639620720907680163837291371567388087933552054615465894230374696811969588891590442727092920926442164036946575523929183732152247577149022203433455113814682911556452519574155202798774272597826410771898220137270549072775109063277479700687015570697076670231011971502414023574907339394516917251500724800303381906673878472536668731943046377174826369039106679196332400108335119316587370568948406379928061262147368820299325156102795186376999493595129389893981500632069675609369130682398371010713300490887445176012766500352827316893363051630394772524222400802271873608510156359301925323903344167733138921137859876490729647731963749026923673671381031987846336856842773596890388203928826958582209837444364029993811179763200966458270489306017860140480732163149224559572111279406949718364923652685905448683068708488846081996673910402820489955972227386760735196947782992510375203480555598785163072602783242803989631187752506050317481694340086684566656184986767132946515221241162812554133745044985173985723554747067264216522809365713958785847066753947657302662152953743117963313144717620038914387335559415127960440490402700478478346066433446746275685572309687047568095972027825641830473019772532934455551004368601237618350181195805617938806324575473378249456291697032328565976842512222558738283441112276156672287426542704625660386076201956739573707695463477688717672377844079941628619065050810124541202640850880474025546054129369502779211480554300781958617865861906998527881992300729572694641492339178675578843258923295000713812546015320761563056351434762350973052397997352930311040489164466205161358429224742663201573855685867417273599761546771719982382328408675844340115864551295877936438562391754573777990431065138385676611084771837575489041014390305546863583334527490226853375926203714510440051813693688602086173062334613615668995029325022735896471234252671821856002927923695697587116282269643383048023346898401323357284707610980597059598538354223761137609488174097506818304645962962603444304178484838141609517715027557301094525978414672650510060577370002877766276336205352561639726320068480360533167969663063137669804151774578491907202822225522424394955020217419026651695520278045306728258153160197090882040307731231211083686908753781920586376070399294636561637444677462304126980733799804018898920425306495168895327034008056061775157307829232877536911184330348419486349207486023550391721761337358545361678443518460402054274564916537068419827061684919542896255210966984552144680631715802269834797732387921409678643099532938972990154369445483504172970171397444061240291740792867839121709426438905512005192000272172954632063783344718502642750274142787799365546720837158708905776439115277498935375219372282567608545866133354918180453508445120325608307161170451240264367890779135439877833332301936320056049099802083228436552356418893301027153886456419320211016321331253622542247520022275314405522910727353367087697378355704046151345812119670696811457480203874268871058426957589347674412404076687220554428758474797654680367067484189780699260202004990071935938860114382915943416773910730630266379207463724769187945021634416830919289742503047201997174020173745599132309559263656716468941153220232374921107147869448606999965685323298515150213370795307251016734531161090049665838702073566175579954049059981870404360825876706749698414309564201671711675905983711850440439493182392148387065579134011857562342571938765463990682757842344669852113666647049203579111013635740681703334048903746838660467411959140772711946127238600966625454881513928840262328704119425831719833991435906707955662712434061145220987069013607737342211778441282616062763915260931928447488295892373298055730288081954080939034501086882091068788305995264882551987586666705868720997750869686385227141140814589017348792447673139731500513847030887967984290973247455226781904643560570534077952178577788637359884002864220271019230294966811356608595567797577992803818974186089860501614742030745365980931666449271596748912914164368182471727197045995034528427599656594495087964999731082303618124424729498992732129908693977552073252759022799501904136079663311327788716804302307272066032782223136419440756065216425494675974098695198422560980195378218153179101277188117840349151644953681152597397527537534145064720229837237274454303647710988583583466418954744818839577816283549984305699387419738803129026077739445540676712744491813996415468668453760212889353303243791306261367451117122116644639831690880143481086108163458593546857925359802230638319950375123203148729983230300689937724571738814501151635988650991893891078269464943584601925985664408838953296972406639515184324332607799888134657048747714074472031581113475812733925283017598292527733547078999632800271941179127137660069759195039009101365870235704817164498225712764907675237281084159145820285580003027726547100872516996636911156067381535039487637095847918184300449557308856468931202615644234508217374960498733245529152694268452647525275217990143611524761919363991406606771577299119512620291191625399630532813209538118463480127570821020219025501688053051523174022144779198365686554286288978167650559136161382223995505666849126841620718393754899115521862908465010287694198506231695460601137068106726326100321630372680669905435033384261199866679473896174589741584321708473532789725589124545234473687634898783897314857638371316215664513330126216771739690801439157638934142630849998147260868794547373924099297963508373259919426710609793415361259462194304104964084060831610987008085165678030861179776804192065448666471952577335608083990420759728638876045207260054035963317487592041413142235851046920306824474052693379281749001206507474796584465324228924615294990930317082844215750394516348930238473158041820194872151862380593586784467714789154841575071538699594639582384019740962053893187947871467735821313714685759345182627097583108492776309801086715998384161971141167147726886367291106873700090760418375863596958318578640446918263033802468626027039010071660543596883991875112055851503408618658930696653117019151829753117819825656216477279795626083522302855535322709173951205259584546338013624383296004016721045286190559639626352330811466686630109971895390464929352460630118781856145517143795136189329572767238924142426341037055652911922393899378458045226002444486482315923498182010088837642389512628095718656697282764112797330881817676387111312270947712052391085472560176002989327961734719161845882592625069706327237794727175147124555907316949037844705189075696621207675820838774084709293144352558216840228856045249030695941090761005111754876015715087930804100231648577312979016260583448186832341879673352834841398748627078414594113388681189705344947429590034495313583518700226305780966394310056797874650043399566792973113283246335049010240896268732517018635097144728379567011748038742373707595314800162721465370172191315905416803575550229222413643335544497708017673425028251394288851659552175601652790769433981832924351793732376613009647519866138701778673591673441114725178788359709993482900075008106935999842942846085413658224520953580086358889107842926738538977870519233278934644749643220694697097280515362472362104465936464763247976721597532953281925261293187455514713410692132849044755814245176650786030793020818031690395004268020655366768222847896068373743365424561873983247752466130304240353344006192082484040850728214053868958059454429649975695433646164400390270856159858531907674847309562494994101496975617364442962501863577250408509394564999523815441503590174933450404948080408039579024157526225695247082887594360519582226365967066840270153729219881231139306109349828612415094395456288678633233844105130608974687160249006745306217670601852051691341420115022806810818535687696306909359326185139807454592749950386988103842795850662359086115736414513122684337564387281041123640404042892388454675076927431592835473431112424918083379810298197349408819901307464875355823865975761875142725703673687182490153599810035968657287386707386702754248871103471964125503567598908448350080620571098509555279603211577876804576458383862355471734620368579633875734131318754550277122350199757015642859417095985872199126311543257310578001188136185961873109118535930847559521750655037401620792720092630462479305187568671802918080645336718944022647150405318361077636174383592305495135111632548405614395577468542139859689970113326377107509137298645922580122663102874060370177572067071426567754937230232363317646700429721207979484326475456664613858143641757454769539017217077344596231540606957507784298096867770570038972065117326620469963727780138433431159724116970620748054392228040777566191537346099177898973980360115050760269619256145837851648889689781435117296691297227891963640393054387226542356589640190978506909818247701173382144370070475385503117311950429208917058494382346738164344471967169947590321572865746237783863159573334012911917683930554685648194067938883602119043435300611320739380327685370900932639013061087721911327238877475403756407089063423337768872386576881338064746834664713872444051404109434151925977389261549012669976709438084583346413123622287081045206233665143907863866768718369356032149039411783613778928496581282469594570006853569026289180494608865449550700747243337325204820490088110073359477331322258912116978322868032224255669883812158217936370322115655354379383105120594678855608180363908355929580834061416430357329267070055289708107495855930639845579647344518113604562265516515149729819275295815111593272600790447157740367146611509776527194173698222515888707773969773306251795727576821799593257205892172637846539678801794572758819615602619668125172922291965309979084831611294681117972943050296028548889879631366698914563958346269780625063676749127156536765680018319517260684564463501890943836892705846339276329045257278117926332898015656462410625768975541470742288878794959059641989572343136859396172407317402071406154187130837775537573698685634441501754494455630192871541375190190735645119901421658208487281871087325617196201778696139683959447950456686244974630076348892172342790714165664196252470684398483989046310457138006362480721876654323163156339381661969769024282637738947480869545266958203884915087267648482014389006105859140708667492387070985341413264261669005228516244073087983855943081684801441710349770320438731310181524091172320301719515534224046814026966967995494990431369990113741338135703516250810419702414906566969947705452708029821386424114973462132956260634308648595897216643365908635769849206158716955427425593649794875963692013787153949046305706572196021065146436353023681610389172276739684683018182328163468579333716216441732003472713676990423896042750225367546538526688115835641815027465045792155060975130559683653937917412085627632806585169678446160817367659569164339209887349098050815197933971745299018401606289705147581220862456630183035711080884313619802583041861842761219004532548407186538873023566498261970854062136791724798016652046343791445191793543874315898129376982205778147330054922732775998524217658303147136954600382383164711214774717955565012886254110042836221702228320157984774438451490983980931701855475868985048377263199633874814117937570184971612797428802230159665419378938334642978808149219305198392155334704654527027554674878816322638021835354477517385974490701088606430243810685330631048979108353528609991018311856517399280655888678207834808514359067863353638549926671753415262734453626644662520247919386904118367248412870919771753013121404394142698258810233417052155787332164189985892922555440944261063421680519952084574870126345173883778061876857355134919692710220164887376717025729700427300951570246296310160116628812818250433657860036691885001133321017054441642736307009142556643448924848696242612863758352101184171713151334604035476973476401028655868455309717052283396478848274726830742303973615430429150082852228611032822568755333440056546639853161307218703886149396397770422987122099780939647156545675948103907742424084682621673092948611569311779344228079074215583152224553519860095500572371883416686708122047770314483664589538178030282474449141463254690862176685478078607456083698074027565875370931370814777282340071876286938655065814738102775283097090215238715711485138950123475394234532043514482199642003850051443867046949868619165014407551712816405673635026854744227371988255429780060566368396044379357141988156286732427069941336401526904788793332922331238749885686908682423157052641817927898824225766251204170001981346302181809358855523275543205867789408332921637755073499950454223315689995815826108869154203447233148931143683098695971863396365376169230134790366643194408882238222043678306084225679533285840472433288502991011846131858314234826526615746716189520877061073471966504873506243511329695241919077544826928825387557419142105713699091582366667820596807665536849262703124119478936290520448547103105840903992829012543932031267798801875861704725546105376721363219585016276575040168982603936233288837542862101893770386177079764898759187880633885891400994481093742931331306291353175262363593415925044831568829498969732875754814743259374333575294779415199973802095244700421024937397302814002069608243526233610213848177338849541797377905664017564481788653048384932282235294904463127039981438608151987700294580009463323727703504455113181068596633814725037945004901829312173273046247654583236960871471767955599762946281198540472332282958660932797723668590298273009607503034151395710770633888500544489978468430758663723526838576995877245225633830692844302679709744060336980587361959986688561900434538377202343158606677478531335314367050733312690008302190420174542463365557935034699801697083387368426118967781993168823267692556443833350891549815273370495190033098070028261911105879242354661321707189784662986375151071994545551100012456085565019900056804100816260972059477004041503731196493239090745048106998777734808632114364882222248851566575298466694136876364635546595398125810791389013968356359576293751659684935249317110191578881908890771459943476888216887639163423954836745354914921731743332087888795052399172951047326634911171934941636396547703043457148737586404850359825200206860082497010175658367837797442311062086531882696401484505959690140458208931677937229936640052893315216609959754080328225095754172619893410877082486784005714643466880549417904011620252703093822808035878968401532732460659567413584654215135211092631748712922319885664307042124917217604894799430987769188443200556289028456418498339449080164177053667973125743553284173763905623772440717278671017840792221601515007384975694264746026299882540845736266510316892479388562996105727899824475831946270645599955560811262257030494137589456200538828291521346547663947824852697265275600396183359784303374781857694754315203152211831126587260034770867143100621062892260227894736761654119184835457488109663948404686709594033272232569588946308954147260304052968615346929361798252737480794574649504473308968177717325683682144592922296436123582880411343753082533849276249716646441269380808075616122589864229345591758998759863583669361426642803728399763986118900302165262754503274724544677641028096162385127244219818117084713932807327705284976876815072254063483912963499592658584900618852380580824646557593945611872412228395950890941630980488307786233222602496721061355902683593939729848755553577620828073599743241808299301922366346788114467583587214151808310230821368222277876060739156700047060330786093707893629385753525784530424296146059548734876627395846366082145860790275959839387248081476480941829049389697860422947020595494156382762833093928586686409971474193524063474121992026637278532407266049120598771463336443082397811339599401433386969217130402776061696333178161797402398883793863696065128054415880332379399223974468748036360776145133679198674784355752683886987732152826053422515952928458517905103545695562572892561021503868534663690907229488865670289187959645334299671288417751555238362338131279981498061155962674608022782814736814148114764650433193985006165090789961335988729337499665866680569579197261444473571794308624460452420925284423751662788691971352012452791529492583130240163641971668765140500578959057537593039274025918266681816257060425509660932968096824595335701302776296078802980497614583733798967995116389037014855610116907372711857740458127160604855799736834316694565258976993396604299059495284827603147434502366450806068400612481872243019238509099218532690647548390175464152120348991992224253215814687065128457556622872693084161975582817840686710444555227815237513998694701914110916953407451677007928629044573702893105991228665966000002237824770374554515042407068623966674700800361008174304370647238897090642373265480730464789394319220794454668166977039133908271235629570016804304552726031351083361499727315394138483569658505223919626872388388030951119339938785086032409528848388756405627204586875909513707675951070500948723316442923142234645560797771059239511344414989487735313340835869581858771290987553789308411722384583778533923608150807125910953308575511103701578612810483105681841419361584201455229482135838262197762572009764169724834852685560643237118906349339221280487693046156021520595701805352988694440827928866675449134119058166509221188724971297081565589611561868612984430460822161524625221557012740884926776620758954134279292281196653532195189115197145371568977087728066693241452625033370539135350819115576337596144377923560605770331867494505840523270162681982207170959978364073158731697844959157489687824380508872692395201625589575410327027188040906768884564723161261702396548728334238918038942617498598027136081132049058252325808729533538526131597541711326932707965200808508426388190714468939286471713030815275964363382977752443454185956256871336048699989769826870426967720108009034283580592490088106176508298904294913534131243225783144754980695181728719511849633384392733966562016502385708824613346768398515933670816122203742034850919748631745392032514720607833812482054313004013125108239826483564169429228472035109597000621281008502018209279500083054029087848074357649187707281250845481485501453678528426906990872057811724389668621535095633734054315500467991656631294325631483471520347674529445303391379414897679127524336777515202118923859542814587433343617396485673237103898343921334631803220304655807735123153568514657354033258834609070801452463945704217895108584856220195638322460101037528316733646206774422394130635631770847418540470424948727099875662718822193384411355299917276230581256061035174079234384338495485652525017109017809415404694408329983662148716306015471005766500495577724237545463636147386708730596568896904638037219199917821379775063987658819382756555007974308595497189252047965719951450691680352378063536192353959992975819407813235613587567890464167399577912288213113170278976498194884189867922475229267013218456642462451027941725529269768403025413568440331941829774770314453793202253670829486154384586903495987692318905289179547438783080900214944707512037546237994589930018374378143763449410729874387392611894310824833250090304068788420994827302553304726716079181750144699300746856723013790511068795674915956331323568434973171018516198099292437494196767091986567157195152461086725969509622455244247060290751944609892996229567957250965016870248586061063391984561828557807759360906004331761141457929301056179980585100871704171123582857426702633206805703281406817830701309043678211546271641885829175226681244801898347179647029033270174800591122714129856788838508541555420453460719822050942779890997833384298982162272114988971361046596521853563853553516346035635949644633549519189652752206831964530874730156027844836464280960367132941213495541395211769223049535150660966247409874441666165701448128859877123982113983242142390931936660851308968437790773700550675229042627505964505059079742709004734030095038944290756980987520766021383790782979740353740854126325425322025804405297196715344924916434951808263472569020196357529647176107670533063049338922147321619258661517155155454039436381059362329467410144047171863081275377730580706766145192773753353589177068818332471389563246253636472203389478502950191434836464716206821644891924254913051929478414093459390718607653481910606694351922054003515257421248751876069272533431398877689377690077219240485923748995666972355027400961547400581945639298402395951185894442380482355981063462980772893335757564492137500162478791200932513749237430466040129163697451418484943155614807759710776076101698152691919621292476733201612162702666274051535001269676875864851728487785141972884981265117161030160952946871931741273817627009557754033791821649299279069774623364250012326904765970187854818244585493952410329603448661143675946507247552411714978809164066856104633574137471468384771936114100976985334688024396517456176038162693182298764391854244991533513814481996047969929263302259240788120372981917671831735431730635647777511596858181164682662492122033954955174369183184136487203586804322034112644201382285439918312988256906427177068659299293347561734381964279319583730217135474792487647513951672383184865463608088774220269697988748429504938241174995557078307741738096364272759486517951132101190885769826627889354552666987484873518588980096454708981097429272238417973000434547002977196911404031897031925505718583310849556903132065380276288135647263076487323321698992087743666493271863028807353084559354770949822524932413129459616016255131853616628196194574452270688004156132727331761527724332890133025435625297221519276547071972309518859083061189670933427497573321527145116140299632142834937657790217121440021597757488010220283561141333989638322877251614788920813097270988605893123162218981254710136672572877357113264904727147644672250881024990492736181280415585105212937981290113733150659511370031606240629618079340654342611059447982474781629374339915170077914248718099633689777145994588569980654283959336796716150608128763272211955901461955776697870599795170215525927582987614938763576832351752581270692656225763038994356425323805247455460339390151843369646218187441250750674568318593435226760662143282560360885576511831447047160869440240930464826325937241021211806968799592028964209030790641284012578646951663885514586674314614654350219684262149775458816648863822452168075606913913345809808675890055476720095495807382085370717416035672884142763959153782695603172656223195779867631696880910337839092437307301470097722683485040861900222758750085204600814001812872809326674747292576117033363371802011080890445877025824025609016854120673042979606073489648864237582123025058450772264374581851708542751126396499184982129024610650739830453928036992420001639979733668639766316050459242417805630192891369174030321491743079775633689132373796414024995587365053935941618893319718902988178753061077314912696537936641444771432870846692198532210685127830652041760960512872514288849659684057294456516266058191730069617834426676337770062181335988625486319578551198990670985545146056718772423816579229819785184897812403575996998016334081580012562961890227296499704983650656296860743305413015673846040146267941152620799006118864538207244109176941830379864955756768627472262365367586863213978026802650937600254328816738504027682162353385309392609732149041304419488365528500054530340914399807054484056022710204733979583240647159788179012057349015572504497383122378565368967252647757805962858350698134214462142744965298294611348893640200146309488064854637516959507799108476912906564251701649735797104845560791857359731879463332061784152666369018715285149225221602957125776944816922524915234524927725964287930588098807176015072258690657421629695954890190989027264324131611882242877740295134702415030568204376328511628122370141610424590998207735164404803002414001039450075053069084073248645554994851589137937848759863125856726852486138328705548832988949534339060895367730743539404755249726245426719083059899434353923172540237302515244739821662494276252866487965302430063310222930400875517392249636883670390487649958841016825377904178866984588512467180187880243762738843666344959482724084719087572269056633432233020072000330420579659963484026441320739013568661152158129485185488303324310384415112990004797080954263629080181484805127533547746484793810517644581118049498353903364938893455219976070288715707742842913591975803099538928277242385112853049961779164215083325545423226483478171126803858986878974900907687728181791730105679714532815598754049629934996065335260555644739688846583739184216099163500379239309857154640572863114829265253653653922302706651009055828561372841014603557526997031400313867233084050983902684285388128416553039927445815037196684848731237565483854864995149887155621071352505772116083329278725120546429349330006837905503084609831961402004079973060788517617451895158803121886096413476248343018596830169139957350895771353287221027081811711214597741155282086469857326129658961531300270749131552829106148746229239162316952942738382393647405204851303429004919018069720378702571736175441146240563651430489307438630383405472743915463838580815202423467774833458560658313994643358361908192510067934980415699525446595188314378760127595975070852499635298729426255345832353970667845155496347855246629397848502237462984585597677000345901201018266224800308312970003291713791505882448020912902351551034592693831916442707925059035688068231462619653038502609508903183133654549635843823308934739986509381283377258215117418272072448211375173097290163683212890049570377441815330620535381496861704102911020428083231234152556086614384855605468519293771485873852890248056164883128533381111339994480610177544606289329218124892699600653972961511604840678617656151052012898945716971013615061164880831717763302420309362862165058075811024437482241939943259608716988837824524713348674673398640289475030897772106496573769239657329081272433903166942734621777224789342669799729736356269296135705559844142245044570979764689000050289924126503355358797502590972806922432479952126452780571297063365177975122751451120452792988415861004316445079693995898779007952888585040802833417795307942052785578723890211915663141075580860818451850485584278715277879932975061562576426975797523278367231257258325754207181735756313930057787948147211287039632287878799111016465910968778116630988734488817207355798976686517217021618540480857107621901877103604618543283154675237307639942870673511711027153098883199072490210388325322680842541113803379413884503845168547979824185175946804065120357804343571067861136736394332571822498240147854966776310461945141137490602066821856763494109244228082613005503462195279258881448424342158000630685021080686857698275320301829716057713701673160621395582563186688995396925513512469049598619478091275596798573037140523412167778261407465280284260251554047333058782402223921676421248798183277305532031554569546131358263743391892541547596676688281996404341851035020369836989615772750932390680967231068111243992221165571086181209075064295631790395467150310342911212278880226330586989389099780304857247616312285812303603427652735232355155523722687788673213718686358173545775710598951042098686239679881279833908013471161288588216489635728941133453369801499115608862045145788603440772339486122673741871601563764264564820445180538572969948296330636024249690076346636702882607608265916045047041865268184635519804475109201472552951033406805432924095728962444690263911540250042552236946399691546661317859773852675377477609854600034173986497335147144583209683020205641943147087666226183410435578141112829770756760481115852689265570564516766932710960812527562131175665759005432566328561656090847143348069579278354694418339454557105296992797140226223093299831773634944159096915778931923448701460705155508603271058617095004219234093999776123588318364522527634160880756315179984729779651348212601950322219211068161836946789617236093289749052859953874549339300614164578315249328906112690398968728778489638561072084672334953797935776471574970947160644167764732885442981260441701041250918819320999994443278528492565047579646629907166675604943942024514537380964970464696992842333297023444847154190613792590552232610969747954524394005538223898448590650621881507884872961475894225209191565095003164208901604526909852407215650676706858169682514380960179086413850499135244906545222614436013777498451838244514786802588255112268864551059753596015643315556837829135820388310501979703703035937927071829452259692879437169038366741795437726948727995355325214336039393101440620242468628038934821154031057286607672449641938017596937169197446492763545235441084989639753656008285040872746499969252337822847089245473993490378766280703550948425355684899359461728105398738467142140575661803482932805484935283625879437922761755769665593222413432019635109782787780392995657472223943872043231805981722245416729256519943782621824490790452468877414162565674144040473348252212349000477833974748818641805488027847913311439462012457498442522275057136011981043806006917459289160845395769351076570988613345798651196116856635691564064811885343019695026579981490843676049375691942099327528684110618522777462029852500318175320825173889232457730261242880680059849420494122946823443441282612007461078843010593866261987986595956141895626513108944844479336571477909275681168228957391652443709392849184965288018518682013681715874146813440850803962464377294657715689313516587236000736565557256255155790512039878673891619062189892672300230650381450028183158059755073419446508910751077712791553179778572727246383531327963492082672618596939241300758035934203117282005501170199450981829671929527958033505085143700207034084940408298860484712645304459205576673594285443065589856051723166539398207946012860529616592770486577474643563931518197656308600901486280563609324452201438105467884960469308205448608550336800630861144081874798591388591335239886146065100433097384915100719392036418593154084703437964937967581584134759572967884916578238902647817682863763900915333400082990246066282789010271921695084586878422557933833639277064062498412036977664247988989342660957818502721408002772843303522745356744870556074453518792433619425271462848789493128605472686670744998893547431207449671780454387043357959643923269478852883077550627533001668398554868051383538597461856563828193157638767961964855200664188155724241359014229352139511268907128422442580656059220466301067532312700555038522603159479976972868871563545384562328093940726115543414707002800637207575271067905496089061290734190033207870677024323478178688255605774947125811416011562120184317768147330730555671057144965548008486467090642096273921126721033935740952438695498743559035712525144988693596504623752072646603780466075547771762120229395046622411830872552412436831042145217357905054851801384167222723046047552702353763518200483103897726684361837492864560259637346964427704553632967346350313499049071912491378526782054268451742529236835650897286324819082401261431445224033907558569670380438313258466031822802625051301677055645027556815418238411428582908263824450955697501927223874344790608954949756490584077867075979562600711975095072859920822845331285120766831223408945713669860062423800017970639097470249408627644193001762760888139649028362083081764615690745960158970028037302019629691738180604676118551085556861388042262428739575076723218300414043439400470743411567993996333355876923555240299192829154430278803882778820049722130293355696156409940629102459067133985023930693354987507115974863797277075265335646232264378088040754520504976917791102760438529850001081983229684610700439810883280369618628730506223567070988787523336166973334667667856356714761547391387533332706051804741765273174783581374732348076654988858873025881878278947998614068825575102802047557034561116086126705424022657409706901666349024077181500112024140211571957517511903483716329376971579791146695327622519716715250169014430371652214744152302158280050041015364025766226488183946317426177758484787854461297101173527126244665736237943921285463947237825458828304134371654368172360823200348858030739082889055105278662930144622355698783026919064628120462885575821259637159450443968759829113212490413681560690690680551572264606745067899039373689241723397242128299069863222837519458099684822671849229551830846573582555010491450666384965364061716699212049094395466612347231497287860733015282231837363898122811160393490550614490372669179897128900585751543178567350420954077751724335746590976152511875262157282609343383738464662021898832502021141994345516976082964239892942161195436462493772039388268489054471919233135749082118367542564581458320942213240097850520037507952704550705492426470856217524820043709247523130732345084401545838332348077137935328603052454632223247594457580630924057098611382017038580911721252917742824165650098083104841061633522611789176945032355250477470382204760411749005330428844187844287709778385070960026896419253348378120371475096750061315794021885399380613711645552812067238135372276013785527546793531750706473772204703185863801426431444253437634852729640142383245097985355747310111504688064940850868075358078544831123233531352920901867144802012869600672689149517934508521820218463487161439071460099651479964422892423404615433586485316511185650695168082502959910121360760720373250350319394530477274413723578536539053459424958620312215579587824931035545511872702068085991371165203138968906402773088618344246901415704107926028669439524926749159903837036176721912616515856117726334103747084589182398334847654365591097356603185216247404567774090995345574329487658954796774163487849178252742187851495530901107014178463181623323135737118812112184711151633698531511644354276438157974572773877832248165298570311479864259325080818157647833479767495195800575614695668384031835891801038790708491084958280564708972614706207809321405386746929973707766716591542675042859029117421850467410015346809755210354068137439383581880092605693076547497452404179773604100584914247496612927022007458398523044606623148226639536833803573222181622846512940311760999641470400277451489530518760477740950346968221454539396194878213656585120976801530217522958669630437677828815560752055889074224264190394801901269470320490775226654853136447497674459884308634684077691112323138086502358497010877282905995654250599910767281105604473316881996207995563828329195910956313148774642716691971333993712468052613383119427534444928941528631485469685534778797012278592318749347513919359813843172742485572274843995812208164927923820251918506547301374190367208945391558773239540276552314751593362538849252022372162856556377134858939108049751389168504717607445336921163996256691323164473399265387687295799085763473376222110751213684769695094169371035610508146864692117555895129159206056975003608131387414368616946309542043470618481365797432597932491762508366738477859073607823985724925502333817169606928210538392784674065426256588071392256483244750793105221863974904243871936589525246136570327269352668736339835141129280666507609112029767370498712486461885121038124690316468501743976442243723454083769445550095471381884208395558197455287784166575485906870661388658388011785118742087993988265497693526257049145666253313791637438770634793889124872136862817565586232462606428846039570120080167012248032108197875881814203296305907305115498781593894662004422132093867570277684005170088666166234260907045378792240212862875982935107644801745825433466654789610351955872200092721219056192310304478541014895160549950675343095886051217742217596619814509665146997604646179040670073789625151944462105755984718924131355094672965341077252801652012858748430451957711629379753255893344185734727851530617384788309668569949344142011192560289949938835187062670881998017830800470703090108025962152794265909936945463733757766668804646966131718901291117436218012690664451522016173800331567866579798357432188169038802444582342945798445411109586061352211162203967650657755805948438060372318402968565346872134095768535306503454348929528449062864787019905988684959072792771868418275184591493231170979587635049638452614318551016038141659134981055888021847338425954823651832885702232914060510328896836018222322153007915993197847696635796718541754970460648719191543089825526438872821946736218316954084066997458616852297574874318296845741402407191429670206993718175685136618332119815147878702688948961912880372982535236603507634877009898199947617843655225092350325912446122314104578275781002761143320629652717284329522928356975658947925027135145076598646871714526115034446457275516160134456798381470216060602476833723238319453208576647540257044254676211189926603754973147665356510451005630310148128262944014395632740078918858488834534293367555144528180990339200588535462927321082584865753356753799095437696416773649045525628392675273865146950942187892682314918537753354842364919386693052808384047800861695110948953296989183998076949698466786527761208230371417127308304068889332022745078711602938972222431566602574091238600149609881915158986315169693011529161913572913468074967915703192661311128155899867408731953433470699412121531130828641135969182516657822405672692877778935412488347991683057825531747758377533573032550820019441704051193187239606502017863496629644983056164077346876758952433492276875506458682514504533369330139852529807510373375166151841836046245589079853252522557374847298205031408791456074223153893665606301805407777584354687198574631651062026442648825173447462108248766705429979286017057996921881786292798345799370306461627856575909442076855508731337941372052583327662428285291432900755811397865835527522862531773820548966877029819702320046669299909922130263072638010784903080540083167778534619240020552735108471525126880820536181685676618747116357406584358470419922436679756177004770137647978148180412558463812703551081682300902089851445810742484124072575722290573794686235294840842136842033358281599844533549848925516778248850311433416125850193321381439207989989450997197186677383179335243856501463080796302758617807681782840539336030197235233713774895663273321426727411839430760921172768237050280133316677841903415292162971524693383662708807107910940240734461199120203170382470681794903807772715877271530656164850237024874237830091398714600379992694003380957088405996676963538111364294073531024663501484820657535417322868105744358321745286190680837054141059780608631466030437132667000624955291711898853402718759510325779399265297787023573670917542352708426579308698811085576822062811340897038701034633352589952171091912331112950228319844503747137869808257497098382750289946836903385130519349380924601692328022067911109392019618736546522106778870058973920056424268669986345348790397668919573184369107181860145378438541984591382631306956341508028959757369728139044449351696183191761953615133921434543468120641202877640069113639990904198562175750915964567106217492986937493450192675406230085218456451942905907700736692362465511293801798170713905982310798380854683086352940998588222304682146536251330245375833515335892761387353565990015863127175315696547262442093267172091307035528060687285533834211792023564321713470307252027903925943963191845954679910597283949137145932565927886695174195152616775810967134026899783643164362222055236801227349191011529149238985945251670662550119759132902363736417020754562337613643765092612867890248330300454548263707947796946543758212345599301739791943869203608291418252226444005653343552693369579530558049458617598065195161011718682578970328015482322386619525426306506909765019082964214938448316463117882802226810546387519601297823739516942616846416886083332808880164834561186978087558095635978551855115760317500513098258234335926931790484161220779909930835271128056406659259289744417473702776425170407820823993116111789388987263781956653311954121224408246579269156121775019248568232034984274602093565641348949164755366277306057476177923232641186256205386239596763072515434377769007975677651984993636153987449564313315961205932281845337871860409344964402142798688427913900625017476358899598978003125617125115715314824883285354267156132155251098211060336190087549617353981480124726883833943314813204304375154740629208318955412801581860343936846227641465025644176162059537599942359428002259751743423559334840085041543863372856929679360237951921744705386193874155812407581792099540988879214749506543030910935683561620444439918045501854366866405525491047161857773532717237817190449489442297466507320027574047620694503334016454096565458047935832483206968683678251460926194059530335966119861401067036582117629664814272796010027901833914402355978414327825911003894390267390093666886962973584809843038877288161386126100972605541973529867377982599165779994379609933320379874518574733294008312615337053950086498747120407441160717738339334348159821488599588881892600808888954540032383612202780068263374625688100177096437559384702823044328282940035493748260789246859386668076526717838598538820471287946573395506939687239811588004611894629488985716392346398289436412803093421459500430381859133517084451240151865780787688614590985865593341841479560775906206470479367489241556003847495150293966509553837634809896199056714728917218675685203796532801471265163321755312728940687638458082509379465490643455090727090274367504106773057230792011360882409741733987477642620554122813696248321707813872851455895448962089866454812009195589121168306984565468250014487267627426779803918570049686702036104333189119965042923843311727705896996780089462192133225298022300347906556195616367103156062664693810620744713299247039012559434979178138578966053775910151487888060056459183807518611924207901527103591087575560144084070582056284648513579780191911708706898372769920333826951806596124682672752650098512725676217692433543603968727579891504111916240095482586902891380408818131719090663330708614845388108076272311307129044037279670151525649769451000874061911739612427938468499846356331385618023741068340406051572637782833073171549826763465775970295864349075689657390567932744954593347051478264892211035404167388499317508718910300803901819786582856995501239116666015408189567970772298842131522210808715871776133298790940363740978907010817849934230889607275454890435667421324427115637373851757576348766021230665449512553258010606521833894631570804099754759631344761709484181975148443949883180725564070888593865421874026168427970613218304995348714977419912586655921344496514907675808284842602880259238873700822575629380936322620234238262166543696687179841678815101180239625347759346022121506376797663667377464015819784496343772726158139177256469407700208092660638101703762961055668942164349865729169307848239661748172257309905047638474947994982167427888670974799248834365134498072633758103943280628088975432073187736524382772825547019199091779880518221572763307895451232542741228724803794550216809170121692515901237495763311724747101630792433261345313664175007008111167934580353645216149340314993716164970001713808425093887995729184466769703151230832106868733296991687199402891259712870931475005283907046446949248353203615817577133498674987346708537557583380548030416310635814520587187812245860863122284312123868954970811517051281318163126117450920672470911190793118982770629327191221221269583083753239002467605473139196672648101481735938170899654747386269240797980378937456393296387727541665304586655591213747481212202783443234811337898570885452465994262285458876282299215776319928067571577797667339249662356546564807760311397978067155720886465791071293211881359081265507897764572227199327192758539037228607791376860396346340680566216695314093371524216358028723740213059351258159922166507616308242606358028368003141747348799912317500461544446378861833551741613835702135453125770054061208565148007529978342545160109564336605596600798704514524312038427422763333893346401603396817749848807909213850594187591587571482847723877221905767111240040158158976771968175846994628408066653327420012807411473144945352661801834744313886079742090414825300164876390237410716935061254120534909401301689814945917026250102603179669296274261584706223155268389445648598272060806038439404237735787439004799391881922857825634476655470440967480712141266930419160178249365989300651132414802832377666275286514830264954684961131119383853992332116872956316819924412582652968959111700252927078849358059614050178825418387545046264360753571767430172687748269969309075157687900742239519005792699841920907034447404374484224115593922111004410219715342769935256167445474326088483224038815527852731022377805246637654074068060295443327893891123451392785471924166269586768630192460245323146307751975599986759099381851508357858146996680232156030717945165385085316467360593565584266034394059500969341620805715898206362005278632928409447109782975904293878189705930720894857119343369240047759811581560775290610938601716662425120699892573718685419582363985818129809118842643692447614137495738995793393840896105653820335081721941700693050602390881590903947177700135763691335411510158230639516597244001352204215727512835724976470724087755528962345075422662750041600234140120612185708595030582085923291598324692817794168078979618071672387793432687255255053366712799508988071489308338234884976860295582887334672794333481112937625698920762887419826249618413171185603887668268995708804220869382958629686073608139406981812084478876012317014961282266030703129774913442508791092105999406681889158304743298852607104907837981142159265058773904953190455081902397176032698174920289603700567683196559407640093694332996848843926860260567199575476347348030097980429937549476003745955612803613343343535219270469998418358328308573576470813049557723161921799623806586775753974087507427524912896515258423299333419456250838094939632793274106196165507465576388517902242383250004877849696160606459676199716964261446811877582145172979424641506319127558301939569417996047783975844074037544708570459334863420399104863836382544934758518456137262653442896802348019235191243669271014264169031683652257198754122319569003737392993692472633433726694499199599734696107561262082412061286977390044597981416374283853301199857492099234967201718711977856310158330661159028578288811165011633106950857830815028670211138299957749190167741070769848849715016084780959422354637277845934993538818994202779802973976563646288863878332362269198077855513262168196922963029269162722986396932608819902139907285270276220321489932600744564331569201604509871854316111722676300673612362584936824064121493662098970738577379543183865740117679646952740158894818757404115696742168385353205390277606196571759693211378285776614868160137324349093022063462561364398315457352441081388543347076627078532933248933792396932239166331639649097397609046119521135562755208550719267374754026285620716808938186524503829482453644682405824974188130612778661874243476303000278675808370439833183579447923241290175341727831091816518819982503236527350077437444790249140091134771940035170170249587803344953947669625214100040270134446015208125264699196873330056631496676886902446357874371955583133133293943373704108425546748766742622480765580160185015564101622490620416738657399380620402340543882292111997594328830098878940991209997730067834058924479466101171377976647411819289432449527864671769076936484057456926548730856775887318889647301054370177745192469897545066095390773457383930371857486761170887463561964123442158411048877077669980336375144296089974053415410831733772035840529159942730399961394606742617052542935163355819096870674691563151755109137544884352716894259707197260980960346279203309191192635256092575162933191111621224614705025486400085283398500003776839211875748127926327991501975447473674757944216555995534848508137156524057725895213034438309432662005831449164641065360617018915053521929350635269142519619757806626585666673958129909715895228827786039319566552388415987444153119763814492321383931653494972129855123867878852780883895951988995718555164976176229623387572944988842047513627513566308256215598443865486642960638584900974048727988963581083929579752978034320981960022491896854810038194749870138521464375122484175486638777855905030643993195801419015001646406153918863095569243381752310440093184885375132560449717441661231086504637579939789879953191677084003350551984750101677272802728301279879698369015784680097995421789415111349608700216434635215826359159895228500897015958273405496900078198829710516222227548163980361754349071720360611337630522502209486984930858331518903319595018897851887641859488867534628142030505156849311275151610570490678963637999450721595054477017942371331521329720130208041801584855981487452956249078986142166374178636197751759281183238614748083574686952567905116689024486707274543380469322625993365928502269545096379697120532144980929303323531816794372976861439827143964577244177323725613813846847912342022294756187963353806318746501174052251031134773634789526903269708075972491954866021403880396538581109507354703719646836710365605820750223643153514194838863970549683799354512326023671510632869623994895586700401850232492256752239207508960423628216627152856608421707493434276304069621163581235197217130490279961414695434090775865827085434171410386678183843119825033565187423052341410538861561517322114678131081820913911695630779860303682370301580075081741531871426330256570497886808909911496493793201594991153209088696402661679604963457974449166122457000489271380463727697087192678889890188290341114472550125559602009494757712163391646397112624194263281864346683960505025509232419625135191172040731298774052646908200455831565784659792937804090712574492443946375183260827227621139774818693814882269401386758355113614917176059958182600908182991113959309499063305424487725145383206717729344688188908235773232544174758981821481992518810729927363381865393101995583383230895424707980583063502519441115647848375795606649029546832919493966332004026685856189585838521476983451011474568352153830897521094006822641964775847982250561707390243745798764088985108058774227797306873483520669710811395766570654152012586761876670400967910272375529305585196445420539056569368791631017771219740077457638560682783689965833247564777108671160761619352541180331379478003080843868214840983588146754743546824179746200463455509809534182050843281667315402016027351945730860621843925281553969457589928471493070113874398272098021017259852157972690183628872829125063935901656829125437603036842000312332471943742161740689950393351114318842571048570975022986055858240996822864928264951601302680997767081011783539840740180606400763195168998215532830509790636211276613025433802947817584770663795361601792811611562758605234493330823421496121876571916136453870908056986664515130948666129948645065999507393480282751002437817600644884797949813475185597937259057348307375620988351834395736435910204929835510098207930038172766619835572608836690713404463476173714438431713939852764218972052313776728791456999172997176459208968847623969869949416706636059666979603274180701975430428411387723572379326159985324148477668548461408096393147679064907671955208211086932334569891468159502810069916084278400030112437723362066342216199539108086939470181053833322974145594633358886728406395136897337850121695589864040605981711216208314033295513888612718565867002387813628049816279979102934409194453505555949329948742369142983458599449700400194149689665046357194996412835404130265911272623122190740388342722263890523838168840721609397606987310419533365994253530173946462907219583184857381208721197328778140963430924961412145353614659513017111833972845739480168182447703119475325833334053379276759991266860076739251892398517234709987029198608990631441745368634822775704012696616558885499602940046321613528391366307777017177476205161674837513365463500776477851109418900737201856010558943562467731151188297656129841100043570668847335144088742270424250047299138464995293419656876841720672813217863114422652300321086542389639912574302989957420043212042346391095662830331958947688093886667001287110463187067001193365584346685728512307426245488067339877459885099059939975944822340137796854100348823409210004135166278923591438691448338586357283273241081106939183723054292813787927823500768428571362269167938101777960618799084952222064557474713520791426791390197967701887977132500460368562997405376048891196285168177358374974881888634768921815416027030484337110522570473534866453058650198378563040613055910566660411412865657850144761507092208739095917127176331258635681637324584589478730486064237605487432185261942526867391968861669006899621152907808377620286624687799924351548947659352229009683672345922225766019754817143851832035243810770338112743065202795447371956000566937705991691133076986548573813551801667059688113268657225729563575356052113683288100601577105776723551776274712114195265821597412779600383260549969604665595803921070387838515426664106416871203429575754876732282791620270727648213382310559450971060710196338495499212595600522249273534861025009106603736999732995288719773719883324121594848535521185946306344969559224505159436358755351110548033310492118721111007806496057204791211662731152136368827255458899455822151783538847273530542896266036263637622403201953842210252271713578835970793421957332636187907724048539107849109077756687192691289912702320813813108524140481358562553325267800718504008338234169398223029117656003114495795270166093561211089614057926629357850178671947621402467571834930796274746520665148914657447103928360172305765378396334981872325389663524113613200223479189463440808183604965215603645591071169593885885268716021245781192454171927115088157482312552962763092843973375176440152441661332946782341576006283433758273311719942019207663164220024977100193803688088783446321429398833968830549596688017200975829977156518745739156804112557279770694881728859346985144991166688217383439944002970001336780880458337007073173216055140788101384876782147473414356182976808673610192951557177863108181637849407735114205236980105797951566061439660330252767407414338776591862889146928089614039795465302544936397500379428989381324870225090138577602560415535459565371243933264807358045342858322147500008997836280712041753367991914561079244116141269879702654887248315679382537496919549215571717030589769958499134643784891797768985892501381217908270082159605433105277329222351511435115910062125551805713639498918885514179748565745148999135958999663103760999687992964290742886015799032894759691732079457270673434238434829653581502791730356894043784598186714601694457695166150012871821647510283400184783773538611481267431065490140380705678050256538978995940551405138512516515699957139556422686402072865782459187865956023803612429054664748267027491026203895401699041879897736922772949462819801504626089214999517050814991247827499421256185895018579808995775161395365591684715053793092452788464536252010214040702690545871792335247524455848198574408780978514223925778970807290874372564846728416639512748120504278755187403125935578940379710876540831976172606039488829747200755802936708483464240330600302758184792311651406134635129153055802784875892219269163683776706183272443602038129052463120382155699367456151128548727790596238188607295734699330932911602295485663431633430279764339982578943597338912972624908780977949829993149321833606242419672722157278892174219629616754577186449183123255245914639799889912537735170364076699520699240406046259352962136932224687662392383423318518431700138341131665489782209159360665248567830024981600223620033736230810337289870554460947934865112647034608363988741061283510765775431766294788056549774872838951960988263490798926164066753818843986237223069980410159797241882955683591929131680352978992190083014342135755541454068590108493893005767430233953761829839624370067013251018281070280045801153266985950462583403574684884076752394943334130915320967886674367353570234158798389046683975778249293009806436231465026619444559045209034708919724989301588729060739281267501356949960026273289296597276857770209510025546706583200927247503754283894046931854873324156459660625632917776808587991945201944574305455660969027220971616021458764986730767800575492598028086268291927645308335468114810762192194557147597001436659922400125760790665409529966653168851245872788786811289180005987995589596381214707844929313348192961825897769015034689593218907915103222462262102976482734288816392495553274670804503072320031273404480530488669527867464156456519832504275713453674920961285571334161922375628800252732091697050526566615290184365847786836002662606068781320842695553381587787029485048682067821515085907576241735997374652433954260465699827696980558183631539197281035711233670168351960895776137483866195222574710540229254685435218404294352998188099274232953321254095440776815645903146738605656993885036696727087738927818678431161807797069787625413305768424497133543726141908255573382148271150860267598534957716095060971722404485207991628242818159175141120743912051497917819136001024292577991092534822757323365684177292309653137880199328330500307192845550999636516698871123561667347927858931045406335377369557018341460933930545000880237983202618618842317555002694421394037510417954065625579954051260470749564860581010627690746982924383067769532828320600320883418806069033588290373324679190857886806053543838453991573961230806687100733696249479274536679789821646353813755622988165740052127866720973133491347177500163915168421163562692375548348101765854462292020023951275482536214718141654515823183657172989528838630115671790811407423740950483026899122385122974836146934466603916105478515313680223171891718756149181027009500604635261364391865290316299580684812485829345379883479099971117262337511524243612688555534920750342973676239776290788206154312592741029458938617826590703802129519185788746754587678758664707605448680577120183783890627879287775359172253688295407544477241185772344201963812757143151038958712808832469777655303504385332653975229897636378541485298502826618649479195545509027254304396111014436551135566492037458301213926582081516630056548659282448611263989815460505208770163480288933106851757969662739977410226894755505652733678759041738758331121044916550072477322809636911293367853088492627140164112830102449962814411376011642035908120442971356898895382970286467013481668340663688965921633371577015784158177148115434327351809500900196294614579700002811136633030246926209858896211701370759584868720145743881354764939741173965030754768088253047268568887129451345276120777945007626824326390635691193571255634569190063263998399613824274361085473528967087853586429660403021994472012560930794432197038854642640964760855356885617105968586889364032962305541483225056708908551747379243273875765510822829975451778254041638045068505649629443066535347339794326649078384444675523700073159954884289002572068953745973608339177532543435309118129127073120491209810635209221348960986495503256772608233448604055394746799955817038795184191664048459056197594707160796296861520692124008759651175122010570884945260138162262331534767210191403734326772802664010472383699103541998922185514566630137022263242309367404304209028735137970294519979162598107607204459564407521931347856711722962627708639442996692671228741879442546483610751109856704866311179658681994816259153271935507922413124942215145901242802173106126937805463611883361304827721055904099157580044569687413481866329960180473242898269702186158540642636699381353400168554971981517501118749190107420687166914528509654554680802132569916309181593755065904788611137313274512361112127520356780327797159154071913311730579857286970721705361799188285143690083588339217040808098566872180275905909486942069757809385623430053261091643028949325520369672907903332423097938053046930908366379894163316847666169655953886376195877426646346053292410038206770818877704276473522183773155242595286096954996017815236478729617779867817409177357919287138455642658652313885891844302693588442187305875185146529367777637070008354403285483349150260332208889410083194393504300191026969224183974554002844285989397054336688445047902685169650627331070638131281013258079186400538885779787764484000391989487134662820385455262463650950654916149309552227767563478703097994612548880649741691417077096705917680916864026586267628027586589910247669927714132047269542717359391149710391564750214506625245387892844430280980676876404050442328512536043394173706621161604005385129855651459843764465528049209731366478542157112328979072075015991695858261506890861490436872588400399859801365853384892524527682683724767645183587875903710686298680160006621320200228364152304258096165783723926835583311319214804021730684897908793984537228703580489335424749197103901205645242751271330421166158291124221880473299127059986116382145884491392701040341092815872419889654013945934192485739188861474725455276631795757076955814561003533023952000880923491322318202803756960523071115429452638120401861568444394472812609733746935936215486930933099365450741328637350805843587498991635911942194982153433073641111535235076778126187212480432052010013189255419137682928030810230330531492324559140171155034475245195671516270993552286066060474332902733297092875760467394690688058121990172516658586840330602017999888505308843906425821264869840595849598961000019290490986488006156255893002424582038300276507212969984431257833715265275922835297276117689804353612040420058003106350424861040043810008029698473699587801354514451465727823066750531672285375208734700246812136340897705067505944090893592485433196149559321287909688316129670262607509950158249577991961381435749960686739426075035330079125207533314667582702779989794054789513253790928107922323366646748894605061969646661806893563937151550638124506903797006434151643855646132642259500701317649110680643900157358125942543265943920865218838374276979067455293497041123680275923858738100762707492366787890721129129723860475095472618354519126315902313532368020732232861778314241713913319679557997902568831485853133948986845286204801240733164872415999449774924178654605798513162154757637043270999884690227083779362570527344336794615468836482258820180940573366149785121387447093694129446793583008028246392200254175162288341445465111809255481457192930293403001863387758308057053121030984381608203279390022308978526511250241479195739827170150654460383607867998526691814545792058095679502895468983418714935260476111723354281506126481727168978074044020116637082666151215299497718576467714654708684942675177936876021907977869650867851686280229660243570094653857613864144005521000132177490534592313810783765120038250999319323799668597037134488196635978113567877311955905457515780946524057338930290249765154624440009427368688691640731349822087460796227327991407940716861641959656963341817031145900086311423001816175109237018821838248505790042556422536026429996701950419030417374313217207299440114509992871028544176831777819063822619179467101146081438777668658225637843903410031579386584117236301997531811088441971570978078789487382844264715221628263368973078436920890926307099188295006535402627917495285904130271093170574940678187148814987327237411781586842750929884102429931387771359700057870187389747195856734434957867794622537193811279472273380087304890990387008989519597138712155485334240958691458154887871569731921132058404069737486751330526401938529718677389557141860452005793666663117354838969206764056581681175816523336211815479698221902256249230065386364171314192103907246926249117144652327391028289709179072071132273375898925320352187964821455053356936156519046469749197975267871169808393673553378277749642404471879972424784135048863697836512882141534577254817722011354752981585814912507055012153464331569893361000371120115038289744823602335235656827625852958397813458847668317824148017320471480816299185945767143788887173926405292310036246438445890334553560720205717830293648905714108978035848538499280239905345887009841897932405412668490635352473446380866112350676336450759488919741112498918162979189831189775823656332921895353291376799152057791371421072919781335250729260211621404258017257535517895094763552284335128548074854863192941689705105995540363794232476964226522911248651315923046969490174276772998727620326986120955693719164977217213209572474160556549976813654754782134572894266342272249668876074245955429219899264421308654005538091603890248482829952239445461037844965227625636357383141614717151666365961688453138923780759481845977638608526400846897854990367018495708937482882333098800673629875817557117276098712422621605859860920586440581301328916422737241249348700148529164311355356291640985348326913412054722424209080059808504308594777913890643162915303372868361719092593599294937445296837622160655584754528152489638418726622732076502810686655941176469381488867612818772960744870710978546160456432407587110190058056646883068750925651661430715881395821483214767740303023264437504326689151156559565718627236738495083529326276145010720918378900822784007881253647673583125136933980416231691158103501524493937528991914566262532360049095007553017090617167050383423523785673613945793740213553983853684352431551553530610789214520415239771479675022183172522652110263441990234234090818287966509650564455166828518680090661220644844155176877858697563640465312451676747283783558155962827240467202441699190464639090733579647285222090761573473216824918803262371769729311229620467552954097548995308689712726710233789149630295198125983563213297697804004625990658067518520919549454122462581738773687239914090417472986117493951554812166933855854307156163336783258019803641655870027109969747566150372587948072709801071048015965741863800990895253289901811922937059143672831546855563243590336788352793564461891832602184601742850849529390761120329659175269050229840899448154775696357800799214189091612285132173059222861689274267709623461824029921386721780954583802316049181724808046713117535606339536695836686564771547236874805544561131231945268940754760362176691029175934467715857354233412050964019314670740816381914642830148424056582548073507888732356665629809360162537452852376377257456840363744656923540538327573420079455543848057958290430971903591978648041962428215978320183706945744810937132894940632924541866851564218277060319069096336486922826086017266613547067406065251803762675435063428999262542880007008608696205191483187482616139036306513110052655206943414862459168428476020987456618819263277558598146393204242529370957299541374856323090352344088686692586476482178497069420725667241008015287986032881811356255622021244379783084436478397236413834481491613345159087231341830403689299325094025911424254496166468056265649062506644029262514716338656430748884898680684533922251442966172589915759679815406470161650113799512441531187091865066772207215415683741249226113079899121307526430430628528525340731337904119097954114665381475655566911568050419788837319391796215944741994374766373554131262030452920510407252494120100356791296240314297157947941666361539487404192183333043854368027551760478324579722477628889266562943207786662994659717050564927326292984378641019982922295333255786314397521263603746531858537783893388380256723682427706187727902171428969735391924510825148943310424107644400814603207656689064805044309946789306448147256813443307707821308374203608007687041298583888084002380999645857341952635922001244112026401659545804428230894118504153483920340298602310007617335686324240354417906844978245403004575029609182139989170060169575261331668822482966411065584110777277501192195085762432366017900576807145988764444654882219199319357206416187744247696305434622037625604074203067172801491714567547813564674570466411621226685309854293904696109263596587475502725895889368979939407328456630804959467711411320529480923613752178142283997845582928668525538038592735703625034606991284996618715896180794915814480009770586899191071664863356214853834910779393646878851041454386605737337425341866572874284618159302376912733046945638842271355028227597107039836607942805356542165200602925957918438761124341413109605772019219107952456154036907079888841865891878912664468079542771210981467788094629203676204906015319073606331743581231731430717036368445127458359455147937881881596670522051248246910606698571229541337070864826797394076639822847074563549758983656628522118404375982346980035947467289754291030821826664528247761305476916944054942125807878997473320449417692437858477505412370743455872254400677502815086572170628116391954959092830754824311957075514649083275840283232059667268188864783845189713417173404308398324991601167475140446195946110716295286508415306340893256192185328499729666004039297460153796761883556449944820935515536887790183172300103580696028747228839475985631964503338397586792156866249066399576551299475213928554076337015164486925779369746540443108944834626897692477605858489638906437660232815790442728646356924751200284202481096534276539510683220805768701155109891789991100533158169501651741471838655838807384558501425627211651955564542823609014990163630080592856545450054368055874349285307352470853956503134443317139359847887707128635521944570183123516761773796545558372649091589311892712367767913168858903835524408538229859930052652309211048533054005955494520458673460394405721013498953095510810712518335917742128652427286774397740376492937447773349886721229877379084534315340835174403565886684124688288556925717616852485515834249009943665830049874928518395167756527323222554615831484117080652297141716180181058634197157120148454973935589472790833923708306856483642765025394858714075669529965731461056105487449877701979742089464948624981212698551769684249494880547892425244285253500004444409409047366957470752544791694783175392148669673087820718106654470810694299214597961857554040727540683047635523485909690603133682375521321628011472261411715800498836309038448426822694941105206452765142399339868871526859546091108421582741518140195428812959367974339952689110089527544947841369906209826156003327792717328748587601621057112952316694201938020480629561846454540348996902711068910042719353501118621587119149807871650532165537512525192518942785296290008113173977918387309800842130144920373653777671985663414306817061645556971137516986414584200007576635227482771099292864612799517336227542498624560640065603978148573783147722098331616188224989995285187943454577981797460477759822279684401969262532336459726511489927796654536186487816856183573010984330709022232269050965917976167615159587937199638154727956491448032093053734418649957490386020776060001351770928303724236610091144528119720099101529104692585568151150841078498333898165144297608184439084409358926391119863880474022814615568215338224252285483797723187761844261026466065448305495444776739777958260804564011958896579286953566189044539664862025194411044147515926146359818942948767326562351822271137797517876851527636669264443032944014956082070870092873357082112788586492085927581566944453743894410958516565347715140360702446087081968730993231402759506684911138178354704842112586758505510237922046847454190081810637266009125413716223006896462420366127200270210137246284629946030818818368230237695921863844689013224407312552878895614301126834171116104904217788525428280718325048693073797438334420778544992667334989941973411547687141090314045233725199231859217012283684185502585183871123625147763328645197574568641209192842253997554174007957290679030343733589060432898937774158246276019474231443715964688751868527666822045388807701167282640854238650314065870031824981399952564241488564452174988541029538038658975080314731304101285579449896504057371087610748389889597517289670807286375733556320722135437963201853208658609118617406619003468312305772519434222932042258096781244918660622855000965952457738777090371281402409684444205975452971662465013844030696236147381308908574669504980119596410864619862366328816024290744003731379193372490856529438570232424583630390001657886961471624319601808334973228753898381608559995932226412437560255610869098502990343121620223384061458495279192738926387452781659508161387737027468752667652833419929762156786781053416247675505515609953491234889607662835617324680527751985469107685523997062890707255939012964250658343856191919608256290168464065299127807891610503268126039760041756300120413415402586996826488524326514633398602383888337041805341651134661902113968530161119262357649914983589714760129712143871393335111553675676797996064962065245612013759530001118349873805951197170343219305836843853719950988785866566688947044946030110734424655863926806137104431409688719014177875061127768284178985654892596541699268968468812616358142304240907764948952969771485703071582260388431247625956607991054348799402258805027721974573188419360079045319120394697197361996625571186322982356257119972518813236041038940159048273571208745997619723903386718821992321764762509655649569223007159990135729171693920040910507171937558613885125939358914537362695447368702737726394101153288296037086217749530582624908055135638254610399413167725977268635049221876544462412920522217524037356601823229283302241101566194641183323101660773190932251053579608969640821055064205153200143422064407076568193316652376104469466224173812737779325405496390949331481111814431920564225400789580488504156431503163781001255740751577931695658098947238493781478190853879381617826320038874785330428254167505734242241186642573133072235287839618652357502068980162858576012118155389489468854326539047857072362714254092618838642596479114995330133712724868518913758987222551622171981837708823466623497504453612570009920410985683046514997214948129956670469744487345255058603994263370505389219383684941211189206947962880983532983399736617626928891331527056027366193141141279236571714325068539356207518190569368804434573799634545869800386316449700757715657570935992371139052065043881768074096631683389374960038350299885288536500877296644729248918820871838267959121323577118604689985468124661094898175749526767134252462420241344527691116436600309353257067546727460234997119001296430056981453966360722678478664085352459236655450318449389987636870650132041867535968765376132233979757558435393397837066477945715768694844583236454756025575144630643588971502943487749571763709951395594675020791523782433360073342376772184795476430883728597174119586050878046638701515535706239029882866105821463376742450832590275860965278807370636885195460387670890615115689602548136581131029395883466944679234607697537003601701780086570420905682035399667431419332797852171734740723689585644669168753811252127055495317507098928362248805410587401534012320470472073837734598419131727238450070428737634772641349488639353369652598620926963264598329916565364217478383008107632131862996526734456365233738848995912556908993959134492949312259344461764453841486477127065879873540076146785856839743615889572454819345850159270250848149059925324395678809236186173008946655313090686849914580027257355864176218810509685914169584248066934622705347289103232912850147249659087170714984138518508059901782267973526961111760515384595469961595972302954567093537939594244792749859996121071672314766739088580779835415190237437880747249487289606813797435515599685784165263156146287716235700913790088477612503997753975409491940911988866659538082679232013727731733900408492088297253511188455078466402598816416817262119689154871181160374006617908885204692109826046700393404643559021612377333827075857257651479213201496680372048711583136104940107202770564840152740444879903682426610007728498666416982622351390412096350716068560949945031269212897618819028321937412420461389602286580696595514448427952737410100649907776495496594120885758685752085808220092043608550390563371867166885385659402033732430432442620733442866783947100943912548979906156882744210943653949121271250972975751076105300417867579741676604888398051349458782546468577523229512229447014518827227945807936811911444052011759597518001832733763412460051507639679396885953869121801159924260857883684788624379493589264293871391696599616824553238913072550109818001936618440513150771057214492994288799045288269679375849627659737446415877491299014077243634854256146119101587242143191944035896937979144221385109714657269604883972244252155759796844644155922356333953980551793766727129059505165875180275047412873640755703444452637518844146305989061097223185321159670051778318812259551954437024787466139312811251026962187717815116571821584778524586439962621005518636901156668086569269407560666320250828193985113347438095761259249131656469360227104928906038739628643930721562011362104614321262345541564335005530466444504294989863607241805273470779288037903881254400249270245097651762100229907806793969886171777107251249264394924760090067722265589830693968462258112157915165516513722632976145176032953567309132074874480929240621137568057628793833199480634710058478195587634961040462748038379933615498817395809341931670633072486158212099601562254959976443959850116236855897692904072354619025484056189481174743162195057915704276950341006064247796042771735219033442440200362428697301632970566305727748314331480518869978332687854226059783084278746642201065772002600111078352822956820963513936158933843339231137379528150736759605646456706205733359474617285138488168067108370442182609392387571639450326796736167848708234322903832641301850355358929914674458513099164642499062736904699454246196558792681912372489568509346480734821655565066704600122078311534425526158752148918369504273229634731427010292384673694642670410202349117782185643430421841511991776305643520014485800774998179286340729068841245267564595571723930599016199462229834251950734320841482113227354118071125244468102343964565532074417402935049912708121919213789345017202345104967077609420250512414333834318376788273593525030951143102311216278080098092346125331666199354345215634864749021780308277063811607708210551161664043525313728078441534871393897502581705086464131790975176162673189491413000891896447580454473378093680358986229364197830257432940592005853777720331624708705686710002923422270850639215341585964367402584162025097120605334958847633807711563034428126547915168608972686422191522477857861508901313974041553432732407298838982784977109455324623784539434517028234717664274470088228667290421936290027791985196690271880950493110359140786610979807199087503448205782206483091590324731615162084508317398715289405031585178829295443542388929185366510997114833710705515259959128468721441939412969680538909436692652053709210010351348833806160920079260347546781934656312618236104036147096378136068408054291564367339313186574288632902305005661779933611691458683781159030789015349651502748948715291217057902586420871156392634979533531793164638784708039037549862637501391233682599541449905941339057535529262248697410695646023734855374875623958793048054685583728249321729166197504459384464153705279329037331722452043592843345955107635033396646893732829544641721330220878575022046842999570113012813401637444272296927876484598391967767233128902449612140227079467293219616915950138334161511711373550432539838386025460124712909476921312431664244270519810825722710240245644694597586542834881638278497669909269079392847165978577122161335649269939652641892236966226833151230108075094904114553045101662614091882494952325202743720631882978152291443700276020510387461409207383408163741869523052426974002141035231306174164519750115842388900969773230729547250265955665670013591761202410043282032045930156174630229575336046084552273061354909868253745776370950563973288360963210157356285408276286446411904550366104793399239106676917835714381739469405517353951386443568499955204135611593905137942775697164374127834990424829592680090008675587512692906513172540034981513757556008996638525135843081155652845194300991427033503402243097785486620249994722329649542904319674152830199757471211729820116249186198764751260353946367211400658418648522907969116798318926701499271905870716566838756775569890250483277211010785648395791131141654080814766071678928660803194831858472876275498745230943799797516047796284120778708214446136676961843214503819620403300375014955221642948487542689812173441967334656375575683068793553382153912232699466166267789568511677383386791918025377676859878846691710901222191432917184013317467020940212112023338730990041519580647280938656809481269869952137422849358038588599082254543120977733176291628707230730014656907427737411752359131280406286386541474230334453780306322692106225051579168745403517247979248877515224175845718050605838686056042145885437662950907529092330218125256433538555321866870318806777571012674464748872753286187550888936153397732123096949240686452646092362274146795157842035636101757434924802838268684647201235058351379094018545286423358908090199165503245265008636559877609128174885133011408157801044056663849985495577242013668942292896071561971952017529058256665551592290443681239013014268427966640370005697374006561223170005907625353254609275476600084433606109051081898836228382316673256573864741864490030405971741239198480418877769739669716054003280672919424158986645443660116695081650058280612757184676685919725029165509899148775286516428261536652898818224775049130792964385646817329089607489373571157733036127318991310577376063884048877756298445589627590293921092688541845810593884158565631226472799440468372007601989807355408989737135899520916701671246524573285592198754790830494364672854716819218393653701661919871590319224472074835693406838537888582970926554005500970482943004832451371112772774294975661750588321612564435928460356422172700764602309042908636507621779190873460099908327092081355225860710964414083350255372569387625679772227606497702057931828262664031489880658782941738648553067246609620630888097290024224177113145754995046856159228843118304778547999573591854987035662601718020324557199532080093051619706680706387310728864595003996533969246643363408379640657709913211481393295936395043943304255743274091171146123277304660437897800517078138184400092127952678047315950383181578946784829690020267930211514111997246009932255176964400549584295209470980541358885018690239435593420715182643390594721363011475696620766401967718721005342575176672586392544881315647392929809206235131364038875250368443528429311977330728898689185072191540756602425332621285480438236511375119004325324972296917368849303347333247873616507199014630674503490116297856349004051723825298964186550336674075675792367526319006994492293401691059218705906183557573366652456499466548248978360807521825199052120966696356281998208241917197682162818455661793146222052488263756133681410098331227890453486837761517149386493662124224890763590115698930255642751066423481846928740669531069423104777195880594194860634016826051767814450378950503205676383772535170253592998821988964531572639802859947479150707522867384011389443263767315621162933466139283381137879995729201977865544758922431065299574484555785054678079954743503840517941409386098899856427789056133658519320063076333580620997689910351474455617692095492063503420366940274855352865852749698098341439947451955240621945325121551274246584258021378284191448494785040399954896199564281305883063327116149171814753788636030401694559708114307856099491546844158721012189026310197500067015002192821339775478361147847308848740731088934507090172794978691944482083234250841385108386165403646267924238539843055066712095786322965769644118712406933519983448015792036163006919904248454658651447481869732991072159308161329864993025868733887559298379370053701614954362090088723597240431146966814172467030996806398101059880468840254522910118167253047807093587873601899421883763467405293467382123809900469372736417790648939106043999955004734481779566995614556954484861263250134945288647282874178701542688756428914573226649552447755239527602092405235677773743310218338975525972962219459623909415177204074773266995507301576200575385380817248743263041261586480077229246332175227213156158939456306655548830533266387225747813347057069882261677726469747084010718751276393068607428534402607576355724129753747926580834696475386338959403193738006367424296861336066812346788873398086761790760414476160477196694629700251622456755178129250947018168767859529711494446942706613772754096943245892234704313806367085768979616378639732377614384556188775818168439415795992388023332817341103291418450902161545348756655469795755186854984378412154255588465377484366083070226986715010540502295536908609343449925791734443811962317982146385630274946924517219304831352531338386649574734011098370192821208561064894102576138526962638160749556433083279379583227361636779316202697457083528882225445668064065876873728351879502526190391795916702411793644858635293459488952021329719955001643813325220268184346806085851808595088977001399302439548077489607305085565756184588828821387171751251320288990470635417396330389143979140491713633039570271477502250077381095097364027747434155604401937682308540010152034949001001565422849140955673006137757576853094776025764728627793806281341082779356085542247682172829090469339962562230459762874346949697835622916972948231959909600102672872439867354106378923566400637704830680898922674169292977576022594105545062566212729176305044158464100145815187299062190981536103222051663327558048513965783692650708506005537041384549119161184119430876070069293754318517179983000618469452886554699765900117250364178630369123272059268965264607007850274756681522567742242659062899179993394546404743228315728811769083482369435689604924079860662930267902877442313962404415081257805932076850264085050126999488146504943310161685665882601893589752524026239933765211302245205629407456976730229651612976982440981974348238558434994243591299756330574207493701420583612381794740091658024913377877980933897819960540425893903405590866274942512546652071967593547588855991159949429340062293484258370001701606358794320591037806037210075144731350561193829763982754390656838969046710037235922891182047304855001686948513967121143521812684090773644289770289373093350163291652118774098617241337628869799644989260655938718165133013245841988139386286959796039117332211322095711505976587018636287977884037025030494847388091980002526683395462232998836590858703105778233322147540196838360700767808506400925421138758558533540512598177550977160303211284665501144537643126483094978533816987264265618101148225540605298365348091219114229599743232072615826529696325409905650419788665574832351216913536741694454456476012747369703684670485424548870574706147841209347028545705060919347158342401048299036599169900412427616262137290845988034715930703423046071175084046775971722610835378378489044560712723333237103896144994820255045292627674574519861735767069230120924587223942365433600973916348601038521017759645339491721133924898227114675259493975266367376969789935843299315545709657722160342542184726581247748628199678066939570408192646646601329836886496405181364886928101643501527012453059559697606283172385298697815300954292683421495021289959661103551197549111878012531512223370242755560487589900485054091100629832934697319747871884318357112479160374908438345052856538623577690660870812361052907151544858175087474501348020168082430297412937863745032323197861311501116122392770564549144364020411729997051999415915142603379885418682288775705384213910239398774674481930224202102183853356245733116545439840400625631036703376081236511134363033639498526614782291642989458183452326215814903841698397556212018195038757983943749661669701504434996095581119833790995292032600971233425615589585081910559202421581744893519038075690796160477695865530911889840799112138893044206723405480544400676792721764365627079431293441735796615999126306916919063042067699061860665905930204329932263490447505451187156978897168583045678034304664257793741912983132992042151353190171384839435801131769181855547316630063641781272767599643813745331838026745816170429332011587214754812357725440801750948201779127487021185204198861816418490695087160697698266162692645477966340441600281149540589676612197769162158152757009319532935564886584313190875648736832161288271333259910229431488273750678826538460178926973987604904665238924083583141325717904866916756997020243793259783663331314160355991764504055064965015709021817518987311233967085232374659224068203152592204346935754318984198093328868374173594804420226424516796655165459216067831206966333390479237942842254453807623259838979978993645613140819380935328111952526779510488865024719462107500508383081005303410749319577011359458237631664000955003009984718469025970863515543977096424103174014393072283197180142221571382308293213684087315535829824427286591287858860685392358284887401592538284884354927417179865159911858375363343741961593925872789402711820282058687435885543506311295504481202837249503092261219964561815521357208438359166433613494055867046152364505976289684247308972825966894382582058154206561806911469787019943484462547844111862987714046844488598306639856836946174612646034534860563041529674326009396122010144293145454693559186341663732077237722478063416434105317423209905187506396408872373073979302474803037441282261645046657978099919085432659802798779203421382557594360374630341389778409258053658463353802103908272402005021966670199668908708359221843898896686840312017670428276435785836813734571403184194236773070543027682670450299193763406749880158974433681903556375317554563261326751363831861991493005718870877159523073091293399026053203819877811206066981458199392871493145492007995313066361358576631914189954549408361801713331414539688823575743681702139538976336485080696266153533000141057285400713157606353424418409439991833851148976895465118227670466378404109414272992422445425563284146190928363194613345742110079181170804138494287022450937011015548233045794872948646831742487344828416172526077412661521591968028207344514190194570378466824137047336974512464221825775612609618485549061897215090490026469433937620001634705148936418833229087042975609393739496579031310423297775916319617278562842575811556889584737829334345422459401081195753678469474176195423362806709433853389304748164707310568738379959295041516470316026427563794718733138166726512670962166755762270028034615711949779529092935869880435357536476033545951929568425911947843132630135723900299554678059386020163292762120294037917057628385602614710883019433235363281593879127128745787718049394585807009588456300798880684933644533184529808261718867075367223695428512992904634997926249911951221458445443050213605712752666309730389617383598652222359733470912237464522822660578416932764301297819524328912488121478935757881249422541465047853826712773516390387338900554261300204484840422089443304458305271013923384581348806637973271931829387588886219094098567455696459788265165012703258461832667004938765951155682249006711529459513899586483123886163997533657503717384493750871417086799769577460071515458420044755791765597443419240552242306197224728572096959239828322729902488447126781495867274902274263054336291886046747066336054806558153455956730047210374738115353860622113298669051993606922490354716803563135036243838128388046147910965122901618422259977787729047102639777948201402444109625091746494192569696763715396972209866972588766924995836922138916070060581423882472953210817774278637102738905289580600371420557458764239931585393355915557134080016694008538721330409038290472215514080056353547611140588010229686285662034970040978485416025649641210089330806040350536816924036979898312279859901570106093003506450926893457958407972826681861904084618722471951542976852879401521640142265477585329548420436290122987866918318655653354234628559868596913689835249606907470318458135674336271664959141006805157757992335155097819030298358869073010931278910392291233584056672912191150836658408130218981229146901659321293378467256446820046592203223096580169620017785206579335910791363602223040920596759061886254636316565966911931128269689933306606053752853717334058249663110815055657148584351091384157939228354125506287535118851164083264827063362884221512125463918589202094626340770321718592957839532604777803837342069073105433212132312009754386045741160836113968556942534581620333145581816045385087817373769830407362326180872655016278836422643606790214056591072739693273379993089817668236061471331714338003837793364389741140575266702172665673562565796383915570635145374327741667677763612565572106810821453770117680670840175857258266592632292958476568191960187381385164152199297811506022498810998466215824274032136111146002260521015485693751055742467389124354878696656832169508053855041982490063055479296721828357138697534971651612112829513878975718410069423166016834341165877666672796605892289422908954081516879626710838300059655083303645506024296854588224506382965034634240282820422016261268228632974597419680667323216090291298984669142404778557162959019577732503298509942114151881663904039871752420664014320929304841560028427927495880585808080026420573216227562394631728421549765224685614370088560890435372768686032475982862240148340312735444851764225563436185319154805287606674929573279706000083177486266314518150686165293797451405351884289659285355804069483756895529310618566672672657472286628093063038546444749243178372112157992556384095763728267333150517353518967131060173321598785328896497848973012723694085563275103029349130137602844699329223651543154253146792528245252898936952417337928427281823627565749086375909330736239951103621862980858955217119262525926979638649132765891632414161660133373150380755676664201937955913538334761079292068402293767019717748041074105417645060855195541553994249275461089579067507061954981494882710553923604644447244522997074015680566258106804367280206240902273103374510496550982167194993966620217102123071491091560854133913930449587909913113443705242086304173193990206657975482625134461030952258287863941760155443311324582018009785876841442718034457129875492346427431275693012480560561260242771301411256589636831119746101134034181341920731850053501199995794196853460089393489192678710145085766361123226701349375468390181463291027216896351342371158303825051799850100426214286371460883069022630899481909432152917433275216085349268905927997392577396052278662448457993595483095849430643740456739589304747926138174338126628090888060313032112044223225699504820031300566721236481634923199682876047492196797948905645835205354166172994895533403223025188899286173328711281232680048317309086580019758742477115816409021709778479176928194380232200140127331345740983791190542786526028008818588707422654084009839552732668351957969703762441186341364243024301531301460536110100262477672273735079393077320537640824830543950743004045634865149655683424945192192874232299593878425106360050967657496082116049110541772057044298281551933552375088541385244041819640951581809313333553667161909982856827180130086829867541789360091018238678838940283317546418561259346313221901005020257313070848113637050804369552482017788142901211946537354495826962752426974747687392073402922362768639625270082685762719593513248137030376750255637563783559463036512734908213827102165207434428959383127039554872667237131931964231699014991971905254292963999665951670497063968735063529318069763884008018139892008159571189618791739800215058560679366162671648051827190858041321594273640725989878173544985642733016044428636266555144377933292650747547020505720520361697704961973103079826444045153944293980549445181233732927684255078979373277652100649466513500587576086442025656811643690005385399710068370897712200402171537182069415487006084043477463200484122500338190263033861406347011375833471629740455889667986134917353052957972037548616011784348198475559491928844279246730180602921389411760349513837734112205791664898795756730610750223246570546225426741945131570098203834672096127810742896967035617888095461490390956035255940606052558037414990215307518124542153157538392582395573043759750785377144149063083746046642228984583167932617008693044386558168912247966879503675226598946740542574585514212922259272454333509376070908971553259837080300491387943264138393981241187084745983872266926235111398513668898316135711075717270779313507594909403829237603038045128250568149574452865746303948092888682918264709565795442364838247339869867620899115745963044407910497498363002310279273406915577906470686543193353089295099968900035835802527288278775584062843672466305825934189664822079876857690391601518137218511885460071498509737116283515834542764821223693111713210181923305939983436093366103481517271475799939875205113718845837973124306289373506859807077377633690167973259497068882841780548204469039893625248345496012688861974319517989478659382831027999070654908589639560456198237854235728518317777134383167173571375644106106159418567826793961228679079675771144027829033417552473200356871039781662768427507913105591665969206401622342318715800155705060262903385771669556912797417793229308948602553147599623791984418566298044518867423833241444740725580443222323634533866650594647587011025592379297539977163371684214641676243962145084848043233857621518702215701574013575830143903053444975352619524455628005033027415234630295334625861119963215541489195755200759848810267799553998923125789722922655018420316653089400772509307372035102594345059834426709262187438603677981286418039237720465603561481898928891537127546747491091353830537446040708370932976119611383143971536397328368835637005939659271679481277303377571072951105582052984178727754209672166963568818215109477580911261154922937597775455718813785352167827511925949300446963302832638541396462492923084621099872146720013395000300847347473860756045374642925242945100372743668297868734081248747731549186369654943059653822520555106931187077999512283695977903250029864815355182198653794292700876324721001518389691074326907265116227984271117395140980278560141230985135414440753381836788203910675624817763854779852932109185607844662697877744339438022265288747446815729241552956665846164995592370098731608267928775046905103229549312092507515988566034047079574828108724882488852823960171941525433029328469130759765737534953874903932424911984080368909500527821742703403308085291523639421516774681482022307908924634585936015515548375455310951680725665797353508356472479809466582077129820857099312249268140394440427947063216986971393289321056719989132623310838851515713616475673122843278318700185276361804989627546722225937368410102044212051478565435003644604041206685042935082363493009019292478430871450095173545673021766579096660564394489892831632830124834246957533509808589574601861936663864477821210977578760550553231812132249156503963786412418484969674181496045541933426500533358362130504772464828805708100769605854859618955217106893397261656154084535080857444816475826674966721241975572449838215336241046813932235640751409949452820649042779190962136682872381026459503496355437531255839263213284733356037760200470700817334571399599215672687835593775634846902206697682836747097989015758195072350355113158494762374729019753331332993437900741323202975023332920763905797684584750636361229341404963548815002351192258029478787818419537214597605736971107470934915254210517914040222066813811165548918423700262833846028967830079992260203282836494309637702606018627236829354086677771815378448228269360375761034275463819484928000360226750229089156010947984102303670074089953307321545517109032706295583620366519209061254282094798065893848563798186286739910375868727587944259911965027306139819324775382731027372372422850751086287340591521634099617352848671427002644534979231880900681393445643355456619546097505396060110385160201965197435921281624788178463715177083350433490172419254406320133437763314450413239056649008723075213678415161969177869918711794828418238891475265977261173808916135002721659096656718667460150184409121194319970438352333275283906503696689141881746392516666376116184420920335479121726834013844316292831709235477638510361887860006079900554140000998329588394529890182165381272421517448520893931454615842274968612543981807518725325357000875038948794304654433018528652559303420977510897601110170233385941669341011879746804949810658429768154649747098467960329780882700750420444732900363807694987868239330390405673337223906933822085877757444052678557675234721729130282894761227961406533829725809213613534075682423614607162192162558567744057128078836483590898990440438550416363572126051621703464228552916130468898966244814030185233537311723510817681067026492190512899747417055868116671660801655427271241543633476216191699481194673322914084897608645358626342980279439525217163601550639019985611392639502277104482664105962450999262919405045155520206080132894871685574067783808902786326975927740257273044078121455675136335458859976272335808402131433713729733907525358914223884952284957750225021224607044010541371675218477477214706872053595999582157161913266882920779921899046202898665197961146414422255978482781533347775072027986985617482893195032028360477283151692790632679785949404420865886513787615169795439257100033020363355510148499862196827436536240707711706934034400374252494709113435471157687462829323965128173625935449660121533652136827339203680272971407861876546547202330295127466906807847673050825196074422682168246301123191858892495997129436874923821987685802021676322757600330579753809488899385876958487351593997410814198500586863185318712629132194329073630415860901276119330882892182481912739474998842536057689236169525564128623465198933450435811741939875232811380263525454649869221609588150846501628496399894253274733170424980008645758760042664993630976755043785010822316998087658380875568928571307403357108546448775004840030857016798437462847791161476185871885745961743569954579926617716721926659013866722253958651587903321538603857797810822095896037919284152105002969269747760340938047558911260957381945705224532453468552069705096354346090592779099347593041921923634506188771731621524284437172152797195965613092328943021910808747629534230675706429482551174010179637257100337416443785021828158024447647967675714201608576731893376497993448136570660005271518985351897846157999105764021333045878769244132001116800076137487417128091685809311715190256136840145252433803628343595921024114206762893355201456969014714965284797776689184501318345480735434982581914945668634416885997446820173316992482147224491366661178705171799104327715121614941753125663374019966507397371968150483883236665764472676447066061229584739156275713656687939602679608605995350300856485843599051002030976802954727029947646016907428361467081720272676311338543556400678170163768013571070179651685058698208627912945294785308051086616505110187795060160481132142960602020373446727386230733804197332591585703603390248280883879518020092913929784438132119849951923759482541654342815966180073277954002708869746989316957402866780176579978209376895103549840817886073680133454544054360589871496344672235774994016505666636206994370550710019424278295127532669907204734565114225139321257553407636270518708527960308005139907850129472921699845534188045731747506826971303150701774065337712871401508857052123275215971637250658950726957995036400612070712182446487328775507667883947010631881622733897391659746853982023617221354328720167798102535439335006442496243601095351773871285542356557077030158565926475753368265327391917564806686534085399595688957806127102095653279705650947136640917610123196410622772064732302416332871517523210276990088600049582341339590656448673807075884670636048997898241567932280026748957903306642320802068104444426043957334585738483809027630292911303905147118859787607179888744655252840953869211437252969905428586824416423051748840511016382756963392695486304303315851189854548147575588852260033440406711036484115179524856048042523830329888076660573357183217246606130099963765088103177354151182805878958657471401687266750543665642450580189063837268251776630324832743929890193354330987218829716295308112856824689356956665029985310928136490809579103126079634480269217657792580737957584153321715236137382841199076634740792826061649931574162922804579362221897230810537585517774062589016410183212220729188308213033183066133514891845498798202935994721592965101482606994408977904858732948233438036165306648433841587866952630493075924383174141356175186351931333088148917162085807149123496356303171246523709059795392408711375796574572022344375386466560130467149607019659510347199224222044015355166029351488522913072260556947595962942385016350741486918238396546423583014791722709384813094280291687464115682150835261055887887311868859602514493231633698139952660894407028367460781275178089358365173188111680272109945466450641584883137938502254327092426830273069089840805780279553101726525761736243021042632608912778759798891526076825161928913999413835380925650157596110421533369171543570443016457667482523590513833593763816878532198850896922719077614148669712558213122593904843882978738623306440767956938971096516311745007753845616351952082011331859413860803201130881030143763109568508880430840885063193259211603747967737880713463251560350266517136668005889885490549831077092664169979526550968790433549003490943722762046643039263010265386813709266408794689725963134420531061712492699931033424727154212653972617617301125012165751446710218473823660634133545766871894581553657368493456978297079625807815086343342720304753416967778919372247844858316984226159936193238213696797857796388973350291870356124076571911103127100116139274276855992963548216525438861521469813566982330537337813949316238783219436140875588825109116200004608724901332479891130805553778865232448766775104815122429375412378542873711781774020530073267916623753551852108294662575356088314528527121750495856713195919295621945245057775023384976160124523621433900959314409365463852164525060032311100541977830997322102010871053767706270154601367336404437977491719505876011022061992597678657652855981022006622719130835619890809003666469021610141903055622228526215013699907774667855802715768520800049072513439714603901284750580621644617279567282106985911870931273347207333522440985275432936567125384249932787251977569867646377253224747093046128568691184719273348474782289196519279123801563563346467535941192770521252387975259192147842346250885040975555243381343422379907168765568783113028953061490344630100763836605453397571586564781861104855235879663308019245835274194475463859656403499695711897168949346608563751725527489231508222064446928388892512050754933425476512387281599744071284124168875366405726850181342514915128007647616539544361045786310357648755855534470885879581763997292577261398140667915883449689850240506042900790726669611183606532104816527099799120483416714507140554243623095660990908505725160075053085365266334226584931920782968235956444130170885579610964839842740924847149714797810237870300212345538651469668970990149081721441405102285988877071790144618296105716901058670968550845975048115709266402747004250402106584488337427477717944526417012655240904127996633343402072740727934379928102354458880446749537780375533555822106869047051838349249945416397720167922549373868666465219098280537130350439055700502879841476681354356777901356013331232366295815039344488504344763957902200819548811859724927174319512624850848990665795504991194177771603849199885326636306285167798723686922033167977220591593601019324218703707583364553105581160547221936278288536850623733134702604385042428912080397033125002543489874219759247706706069660579806553802754901047317607213757332496067776549306141340580892708951230240821581707310805854099122762192372174965170360636677038349766898358607112681716887518890391068036050970040483323770160778756213750459920222077616143669244653203034805233349168024161263483875110396843183949985958487398241878254179262453939195265349212309591396172231466820124204726274582253458713493882269518595390331790215710850470956913433333210839586797638293459007063647075194575666375214001832430325679848113700345722751468647620434090561239985781676840648989594799997899470643283135965679921636949915068886238488423631628222117611390950154179353873378894904051968589393188085482138800931028020149998845700376421377675895131736943619951709541930108379371285547415041394846441687392918767269601054548784039912491180147074553294106173296040570171934746624291054480684579937393489562614377726545154645317858373057032254492497032477563548574949573881476340552341177185089682899126352408752318297385528625069291437985848065262968740721870566376460241052948227216432422427701078669802078410274064150036031336664769951085430205660532089984844732516935408038222314402070907421864030224104145488424326898510934269598124401444179470430775566438798034404230120343528145240489281801962433873692603981353838704471049892905167603650564851401237205655091703668984318443195041392141243416656888105054404218515117998304502740433124721144413894490520658917918357381187042207748440283811285627267558945922948754340129750917117208077206556307757480741348887268326912195438209633815769098418967639810703742744273679108163245645011508050465520764605410361119151628467555246086496384616508625882314594698570238674464720025197698963555238562415810072623065907265734865349336536869321571303306093997316189518272034278079501787805639851452787910595082869737092770664726559551855576200636768365173019346409297249266013486078966545223420715715264051137227350506271870336655749414754447054200055996376731164096846132207522957077649306467929195463101532599346573544923012085393052897824477037758922146554585568453698457853067197515799770244970093374517548788964572271732703485027822782157562589952292326411829123412978166590083235875911376876915468234777358699693289754828195557541998156243140917445241396005527277018336314591960805836632062066693988118314212843333008223857188195425388858448365570141436637476837939520404349771005162756052395494678861852722940631425047688336863237911630596468870167761876241515176248317185730758596948272167295714471523787244141059920838298179805430240538624812106206572739384432554722942070143836522734614579739194510036386168403029318723345356145412234574338274305655855647087966000046647938253303684808028411875816730715378638731322912430512609036609701921405948241927436663720783429642828749649562138319994675360293654253945070776750173313292270264480027969195820396623776009946302745087654688359117537649942265857210544585729521787996859284083832205479652028874267699165004272939533058594748036564607109614557947955898873053510624832007603825820631352288820176689290539463087710002206663108910123440975902783838260585916093765536129161316449736000524471408139616827852842274630052809031211907269129555993830874483210338105649762041842328570279489992809313933338486761867234966822075832664670967357265844885430382823228023554449660743348896363839216988678029525394213258258732819507994478183306123715594812382204880765725883114726355318293128354735253839464193127921507424945328713474290346079297125399436476510235354533203857539863645263652605077302291435787745053164256618377886418392703783977596539782486856146050465152752902330328806652299622007248374364351197214344865637369936498460992034441039314146157745568758696035888106517723495515128677374313581593178862885782631257448942322059283455771087865332753983116714442534860287029829109020050629073712680205847535795581139975610991373597916680508223007856634358112157667563185726550894631344872105245732914215888537295744094598219784975716901083101808676266536057667541266457238732258830859442019288072792541750296096136728181332946386911919649075476774634892405310743757295352869600735699684014199918124124861740320494889381044200009511748020841014600299616970485918941637172968403839062509429990106385942642835874521171386519888304457257627794831194036766613824217999996424985792972549888078184832738023527199962861489657530718029578976521791461133240418638541128897679406765320585626586973208511889735630380458782720377588820488003435332943287810144253917033836600267859403655934177619962401667297762290340130963900510181403234760480618738758039959357324012254278751100964810559246022018233453945834214732506435289349395985344561541906394304069541509261213860042899889622956571648851668440134977254468590335753405028008043349499998983837714469253269321726114061707582207368664871213296448456123652585853954489518809338744298295739328033794153140858084908564894098349461510588963168507142671217458537235845501080338372828744283019710972907750082430210054908530776178209913470916770174602964096146261141567975805912842615546126994995870385171050869698147912597712775459703610719910103076283124324373174001291176690971378249565143113755982348411234926983280281715573036807836640879566603961249619027372357889927024060834084732860331383049447632394152696947805750523889835591267476273500537949436893154753759357012018207790678401561147812309738520523479219945913329616994579329059892520112273168386920413934896249174147684708020746648796842829285251404434819965034855799991439975707365116099233095814236027415427266395005900843863550748241015651573907763466831935378812858550500032704968691249784320981013507601622235838679945573591472317736895416818086568605284358229559502359421575294609172374558612926264670387698500729424708596873726379702893579295213667010462388525667846236682575788208524543490286035437538423359236535759152503032129965013343733737166048104924223655732674594704563334198290339128405399651703756682888061226556867762890900602724982533768071534435658785858697666460383653009024391543609757545584327322318776754356002765481962480992447724368631909488923747378445244942483274569755227556514419431430559956275379415005574100892525913173489394863190742124518293591170991568596171076405026624377563264727089241230890283337584946487078405176477699542697270890174433537945340047059549487481217448229078780923900329059816788895461142712551169741152983759088297640130343681759814234032891679807018415577127225574700377421847996798856705790040287534973179214663570509229584627651282583938024245710151866951120577750694707748774430822731132039378835298918027992463312776240909505718375378450793703674940206995242409250326033887527965369545456856396406337461725188437048650014573149876735444305431162525585718149909666079662333968046693217522966207550339095185926837970981039136655383725933046264522969714221078292190349629789217770112341351351559824986950270763751134252020881264241211557989107884870924512969417186586300691965125467410926339312979344495207120320404229617412855359471593655726824800051640831045199515916718366199130953215326560876918357739335541425812269686182944389918974037166513861092215554376236910235825114103106663411375892851596709507290016409455874756553507673733761393480527053914379617992350196345845474114741332183803596643903865034241800801032991923258110678397559120585461072260742647022230251797062750572666620687363344918283581587195834725466285444163399593905606525621915838482761958645227515175212198529403318186367701267283197785119754667447234040665585774584326499572801144705385039686122040633454648944833543532533412620728767990471232036213542519958223914812590327736451283572761309183246762494401424433477632290786124912238269185971759995877832383556953469239660019331721468966090397354879900083309180962947101130494541266258823223923072147927772267330442243399661197278077506025991016227977788157347740442783217649202478171435596499520953906149159997344848012011105243001035401067276997386227410791231095548243359121883824931507463306455901330961153492918297857309980518826909930649274255085572495216156804126776376871030150764172102829375546510404229398220210527371677511202642461782713755024499582699860464678178600992735579555816248226016328002246175765330040702597043974515734728447961717773121181656944582691438621650537516052319710893923204197660658919422041965782364169430855502351862011443223853552058752520514697087334019432279667422145367532790583385772070731945025272971186999527040027485305085988523524901853477801368874008770993267982558982600697445742037423576678144615069826551234191314483027014298253910470525004507984118683975250557380380955186382669796575279377457629283619510981083859248729664220533272070640144856298136758427909749300905910228851756353086212417285218813271138317862837388298252991068972315055257918523702828498189955545978872783786159798425527911407158236306807176398447797816408256176725143518205303763954566945798504066719760743914307609361800457292739683367279770939066978743006042867693128309155240744492381826182180378569722830080509976555678356308272317395725029132060150721552434489371423801937780628829657262116814863906530391201409462648019552209622475952453084174225349815311440803341853634231240818978170874768212736833850417707831013764687569682465052090725133942328696246812940628204447668759219364981405869019825676341598640875213645597479562292968111845516926086436744096371591190249450635909648728759485012976462301497462432886370482090811506485044867036166764273451516116628212299905347727963518847747001006364056056030415499186780832530265571895432911939766001519170012970459085311368751191951776414729711275239977795467757424334199081288215732501065011146857622075535605652387897451966104907884980467454332086052059600564558691462581447829188440192626853376398050757013742573823884132249986860678657214453419953790247715641914100696588349026455821704347336116467870052095217095287839918640717582510924687534892467875873217832337289522711480220784767605036992951554620971545541743119135504771692233389577897182630161773891070851774291492421128597111298502774258640609908003660785041962229056319514499286325671567900822663515134880028132605140334000028348725716949973194633101089769057542238140234209180047003688132939837548160590888859039959593582416015122364002096402522484098065214763110767829879980376435799793493844168664114350523923779002410262605049610820719377356836952652892805969978530334252103140833114218732018276714624696859239870835483867709234112033029432406112799559998730246103843359554401501390805585086417199329406264338936522962384942694260670300748927199673009065760680562079608329039784906547259559433564793361705986382241226948529352323586191864199446258967957304913994294964678481663372093698442782082086659924012877489844934337371778296722480015749108749616132232323246563047600485056902006425063784914588943619890215870948285581277873635375403587173192651960688502701277355163637528166856017500141993323047652416329687726371522956670312037127285977974484185936388942172800656911490336006807941319295894372134307272899532267515946046169221983427052402328380374377405702115718744987993773984894090241074781861046136170369134306038128700311305611774359394493817497749407721484856728986045186118295827810529322382915648385329721858060583320513659853787900492459988747841668538181379323583330191034582125863488526140119178001666097206407768933153789882630410788610954388950603951881964513397126566812168725484420404530521496116708846930532344520714567802785666834585126553187339964723746756905895985325380062054548913678104367721327035717745516490221783602229282066125130993304672084545955154405779490566916826026566271985856216729010285499124224399242218267575792353507799959133027650676926001571628918900597462793772092987074933675672864038068581375351334851743397645999079796918544288781267430838905043391853089770189071694781786904094235570911025234801534435787669456260850703603455468352977520198382896293552701551704786577670503451449326591387080848671989848283608942305526868324232131837337957185848242475876139631199228772806660318977764128398009353551305986248599586522247504262471685353763225292073770617961842009062964346338670244449847812232214494093365720901414911026755770438559277314859850750637977518895533706649245190794725341431626793124197603903189778669670433872331925709556327905099780022863530007132474492887357090599241006612248911896194804478578020175077725241738957196542082694925102880218541439837306984885597322974664264777114604895348000910503300273513552651567982286520326556759165579579628772388849074152324476998615347255354363641074788324836860117381072773765616672614849464458328630877750893023521313027370511702699112338967595080334626579210480964049969687322145748216318540927038783682265024701378581385151926380507536790902322764336563400649045797195680857012051558018046925233009211294158850483901884956669521310795471525964442304203806653373377527378678097144898346349127442186079219993192086194003976069315281047235401435997851313315868642279273370989282517054102441790942854362457774383276483330659944484734052382622088202801008883829506693070074776420146222337022358023966456535251223168628757184559211755972973330937670043006961908998314629731536226099599838829880556368735279550807654818678942243421308752356288548108051700099948739160460768348043088246541491849880500143596985057100538647907238368657788292682295762003615978290361249367754526844998675631037493458618416879286845195278391866027336396364266093956116454776270172407248637284441996252013104006163497349032662674058734314215121716122719275220412915897176704134961790509004870528156999661009878863864791433462075229116003802659688481530402237770157012728650115917227747129878924286843633215347076058906348876182745625388965485077416578058058024082304141244943922125557749059885400611318824842639843665718441973675855773861041825723131500868341480431139688080436109238007688582549209154609885687454646957683602505711304361805138561112566570883428631516240593469780477346705342184138023494067643184343891339569477883016692894382874732793133806074615478986751262155377651676527948220922345722046949967266023862474067553952774640339829328675988397018280163597910694965569631999688204771827861357763570406820830176895953938644721968969750329615144727617993826052667849215811106050003935322156430352069729564404033016091976362198228215686179106914903489864787950412654393059070662352285367188193529633030064224569562503472088076587935286565897075378754089269757479865535672675640136258974464975332638936472396478201213780965750824149097418218463195884708786886666337002531113576238403250220801441200393938199650947566198876832724582694501293499664879154397280757890029685716331537982340118621713046029928000845600022185327335455078624134808421221478181956494322441306279191266122811148015471414847181302732471221114695043023264924575004851628117771047366990527904458728163775324487306318522268681122622745793970551954643239945309612500926348584910621470209826449778672334567343605988189236578674927692369975857279615408267922419844759733790845328863640387831048167593167535000831544443789436059599793384571616503395063308251933612919686978868225980131250233053129730078235934200519783027410984246704282196377518986872802720204268079244607509409470385402976571409319632426069824847635145061865127700589309438801002307610249719480615724495271239449862025708548935692940567974478428706751158257604280010295787741270696653395092899622272966093389589648308235662043759164612266177423841800525807993325238676098036243193178128063481774134546942449076117769745931211114502085330305153277343244068643183944089671033070682846249497798217326769847187213516489051005625816617602325409556211795456173194551949995878579933576334581566209792820429962582957270190390212363504055377361455417884769869374692079780915457871900949370459932121107918913586822478981528030097117268464532226680336812102178834961260294613439652444314306839948058217259602206955888164872439305149719776664210151359270859280085970819367379872813357361432359078159884727700621012622987563303951068412997010139853041098538048856018907527568489275905560969803999930666975029054891323525009696136959934199024268514589180551952640987817169086759759236952627291922544871147790315555874622638498718950931914760268746401019533440795032622507037716771761828019513432990289215407609895132641907175294374483088182875390271888011312880953859271854963932824954801822736954767718643982920626440583092751394629838733851122174043246932708673433958772974337042429537135363106133681435118779102342525971885248422581588823768265079272759446729477055029893330762798588139605500598848642096686193987137227020404506296664297120777418504507870536013182637369532214648355674721021469875435715509977386098182173226152747688218438302527613105435700439474121988306823471935286914529112423123193471657977353246866283573164303170154918110067085548731799600834646132068973424003081193217484253498824557064148286030768162594488430820668591869839317867643007887736105996105393047143590541691902466163055269864355148033814004774362593207945926470111142048067020718111494386161854505226445390294564452032100663300017295206306659542234749137240262860530939102653133231010063777121654675548613567692318777483213666471370738510875795728053132771559042011759780453731306958325315925709878481689947981814750213211769334290203646900348127728871576652122114311261232589100192211643485227790282072590422452918521029179764528386784908818704870982116474249657790098722592369013513397531867953095451038351713021307021159248857488239474254635012778502476015686483368117233276723256476948281910077374567217101377816522863526609152051992470033833884319968911802455109732378589481253196846537021293915439597673905991233524626902435379265789317159011114764667048679534772144384699102040108678652342788998556122691449785572000326349835172222284986422446283157161022611837966868423116073613662213222392890981859864165541752192018077450103211122135362976685013216622034841027847473767937468466247606696236546071290461676023888326964237116418513732605329956689860378104739550277703187302953847359774137813209360543527558225820882063371049407976911413941675130175329854095311938645463210436978207115016967917066551783402185737610411286125802800376208296876066583106436164194525578511152086738911007425512766293407757231205188860658685951325193149746190683012757041531072648392684373915811062720159982658573708684260535495926120849168553172084564898499881506809757188020797276409963602058146849209169260327693122913755059398428964849877590951644825362230656814777777342625520252329950040184061211075516506829243767594106863524874326667619172369815209737201782500487949663940810995283140251381096026537919709423744846921108583280607738218974607404098763958529821627828096040583919309668839198825319792625679986066753350168597425265365106719137495101742896415300841902472530557462037744398960030839315029449493614830696489000433377921378041949607155371224187022831744590063871275200848558311890399988754724351934774412614867024355833107151806661592760061014239928088711176879504186816271996178225717082589340190446138811658007816382065798975628177555442263555943412882026001399275376752257575636308752267890988016745565510333056435951262690431425168094293054356494913984721690487999213115023500199095352586895180222170099064074155661271483701833432480081202682798394897823981171705418314883866850326636151025868276465137810999922634160711036706237574106398095448130059884392941906723788031863196382549376860771868582311390099855372989392149137991650300754373740472022403833928955293531662479844817230637846223903269293383364522482231912298345108912303006274597407709577657443206700515749548872719250703523800379164838935764615676279860793585578567681927357045798459104714719761441931483243470194124927127671028265351676642636561029102264234348280465994117573487982651984172898506823129313434307805554431396025964895557160628271502518375951162229700603734495152902229432648726773156790822759302589043867634894522817141648795710934735047731230953119803988006550702335667060858547910616498422352440539918152898180463167158668807610800845046510442028255295856866474981835477537974194180263379888111654968045745295697626230276544506553630866782795315347516193936184526055510129301065162952373202804188189221273227971030463754973092557068246410814137031416813609200785884414604344134382530181399911817535173621999219075837783993609529706606924708845902713721937029802858931603325208282746674958100841679541745184795765822785343101218832667151464620099087311009225485768650994484681044609917107222990952798193097203698584237235476247382763010608867500339263012371797268269674672372108733200082835467973397123698904468959013492835945330008189737124583624892760122051874740985588142903857362231639659326611858981751434098518566038543710145403124404209557042560079735848746692566461164252717931148974198482972203154345909522796611417120411153028447042434149301392411841886811417400216280653598526595014271211078870183143782989097262945633027805383532471423061213106137656739209773772314538027194543172678976804126341248834396413695128168456348149073250814089260492093763093992957959996203761212384611114841411785832113447590893152275348944637484760445798403628151621944450478355732236495718653715123253299803408347439386872178118169559762008094804017590605596479043850095773701295479989170851854060604578281688632560493962294145272226873033327120901346165156600146971048498650337073920888352297833334556783757839026930879736466949797041545490592153657728807659950303777885478055169410052122440802081224635104846431265978511126010554655546421421811967112365810492433339736615432206134127413671601376073198426294677500247963190390915254251565259995516722894012779255185687361611097632731186346038479430815299134837661441767296977204149791951242981903661540095096517554449408095122453195738617863440233503439013759768783054063787421482972337676430684752745103842903715760429512792118489711108558549490591443857536987945689369250285422990105215917429257870762084784283987503378479513586459372565292054789750930016881899538684765872391051197920371772347769924549806855390846675989156788246314372896526562170710598511329321171950234026290753817472227781860564171632548249160609802869134426331979676636829367322456489019008404108320935999008642440737808351593230897214414355075285388780750831160561095979453799834136531434267385065525490391538896087581008682046720364895323217792655654000270983847786234058492161089167041166026911984315445918523667368864718961916438427341903996995106923278746786748912667288987698614459980920442016277989971190069044237185838351082492334363482294658855301185712008174961266154957218999573565085765903092037970605900684899975076277848303700223049379428427395065653507199890557976510008278254614812120587333791032021600619399808783702543613026921838850769667428102127577254445347076013127672165658815350149176606435431968855538278908805335038029602426456039489277231938489739279391845907856443576341102880336109181996484712836967057865280210141612776270256339345808780836238334953145509274386412178948888069425814599031604203050371575525141204589874888088987050723432109603170730071860602340010493631775780173428655985594120585419996436720064154949001829760520228822865143233296736608448896550322259878076850358860101995992132320129082107760725933045120175354757023351744878635738246037912945885659261217359538971856890889116772213205005410617023245655636915602532661952648984992982197905277088396493513311735392943374008209476411066980378785036917435463828023840034238021213981403872419509003533094464429284049509832728890309141315899617319497419792995602340438816787196331632802061262379102446891470004772331450759901756282628871313339932337348840601059326399277322175975870551506146309902015394734239957354564983837623741375564817591360727727073960138408099553603962101165732786584661978872338081916773786576225325310709245215388673697035960886250616836866948414816693753634970143930189439646453811762670804777983718592108408086642857133225945954895951471282100385866318252541664715610779657613141463847882979857045067825587040248638761205363901324412182632915844588951976821936696743208419156631084690914477471506213721303920709058051186738090052537323232584329730722570572599327174438029776713482035029029475585062346008302569251989674675874772515601024492111486075130670996618015246461667169266002007817548042106984327124013641113222870500411222846951020464713423048355485742359119646624932441724262586470264509469249250517513639220508306944994621614697794023530278798204576909587746598162336676363628358640961875706964841029533889121504686336723800687178738665198860113272736591593161945872183346204090985378014253344236224174576417916994306564138578962485883500764604717126026425456442719445648939295803767425898886845240785512127344761991295766327956974824843269067137115781924967089910295633246423912510369703242148007813214859658880341404314373048132933231954692675106834137251624849792685798804265610580694310321291162271440247820978260948052667827796228335271437987799074370184866618946845047708675468610844307520605085756498374479622064754457446650726740247240352376926995409245401296492746742676016760009132905854459503070117029767515729599003162944674501845485645253216618809887150369090726119535206762791599124998333059133421094081749604825030437233811641678290271731133143326182005769998390625667254418232889517892924472090354124857064166513159991461665993282179065149064094706727315338834815010708327837742503197831266780181943870052536646623095227587758994160266650926552896495558203832876707220027681833528972908115975825695702715680139056377355629503335986771835514072484771186993475711399561435742813541492774538640817835867886840800830253663862392623283497476824865372184409003177818176712262416862118021850918581102866329955736488252467600188439673665428138518013517341918766891463481519125090749029118994307211017470748622284302490693681363169175889900031200392495769670331520778529157405871073932367769661673571236661420905027198387339880198806234639883296610959900402388913469150380780788302322988491240636060627255204303129656651314829629173360637428083824418894577927007297955395654617557269262058052348804359442091415001103812088796707711222400066505491888709762786668721714250054455767278915354750956448861129880786143737383852452918626481979512101735896469942904654697274155145515077192069811015487514674029994858188300742033392137976715550361110317543422091678993619169535536763932898366813756340393740346958051539757433616841863154317792475546111934980825823977899637576633684627727882677922998009672071297115936249315816615343493143289636498927994189400290876933062462866166717285712492101362071671181727441113147472986598932775440339495042448149987057322688896321522537838226115849404493440880513700146247697578320181669264221808615039757030868490323490111605617414875697498061137861981001809588592049348609253208844789539683191117285032442045636266398115466359605293601534614147620434319307864408068599265434226028816776749820186465881750131708921803403431046682280609745162588029413955811894880542353162000589466019504134979842369623256466667411043198846326056147613303776015228821766793907904671851981076589972698234349509442213738032475047928317768849323984193334627324374624516719533790593537358514696472012478845744074852624830872227911188048534828637640584095067480250459455713106153874282258042624796292270294560021296584106667235764539631508372650035029840844279214132622838436721789189816060131926870721457500523604598562122414738141761187584725193375521947977234933602758372869992333479721325122320524616982765951704996375951077196716499707101233520037010159199240250473517921658076818138520985602438281113670549907404227617970157664021930745255550109921778438680050459126776535333769856907683397965317368719610625090144090229104641101134658039831432505646981567477458771257688380975489780210952195141526433499893655229686287369057290815778750627464392619592928523176720194378177879387875595444791135790404237909614955015631462265756815180730017398132231874479261653344080752348986855914881648693993758259962867928601261109968319466126824538260134956491549528044661352447171208025270632551430914691328894494346537052337654297017719243165047393153317719273312973751140825855984249114830180962889224437813560259691127227124009250396319797710857500832954788622392724211063418568071444615068619424470059577084727157518928934872094777571927250764232470647484193653078920004714165727021860108469630307568165201132116908962386819857366241531721815316207008866702276740256656001460067783769349805069201485917074426565699274892926231912726022732799144360990477939443524675177367874252063020144396372468402030395324008805606020317766505937246657169513051653112826558001671206383045374082326961045320013742481238638312820200030023362582985672065637989509322085426633142310340068361684115648925848810869687414872718791409979069649352905520875488573574656711371753712045210505423486277467040872691029152167984411618787469091159222267419843754547756463341364357150909514884371282541838330135990245871818528499427903685426672634257590759595680987545287808765409991930751107976069983633981881934801548002958346816185196447385537215018464058888596908033320040370472199560713747700526126260238932296538071334003241798898039871399272318222420539091637394228545597373119592106240365404647333166927511553412376725537283680375310927598565571741108174573350485306844818528662575991801418713373339420563081897118960891725255858655562385372821659063316071206805324348410213937492433452531941636519224512407227436069866030157015188008341791584468447496587269315669862483541135930923911388170106662357197933124628308400170934111442873197521507218089284247220872602683374365311358944432027188337802067904335629935410347281926187926568659667307406407673398808632949253240342254258890545865694544817536827126760459273360428935275660392553231143399102112640692911821726209012407547817004043764075219690239355823251247664985097329286053175090740320174930851047733662365238612044117734733925935653032241056360847894165488094428958619541037887785451204873878686815436221010135093511168893095070923415188386912805963327867190507802749351318693696245721562181118693837602638489318968535877743486117424743645400564801247842977229441536364839728728088110445307129074597150339120482786512982933305948590043550409605297636258474445907348197879165090127545514108678800374102928575190561067898645702495373087773276752724687428676450275875362156245624286832589092059083373749218344195181069900454956948813432748963330389313369530283685401448247443117352400589496590773824351939153138868019928606629472130591385562424006460566019353739736249123910349846495085878081531978678200428683831535251705140031443020443445411581128082442482362134492645225029356304526323207804692592419742078563320211824884116477725607314333569283502199941967198562915608273958226095731831056854518498633738995305245074907690416126458749555291845965537308500192111986718070276747406089546923209203392822417945182775265642610947705702408514849335099657668533186649582128242652339836998471821767148174111551127703324543005665021291488486672312570691841406652556358247920012855963909184156657220712917354352227322739002132109765432049162402099673706911970818748388164364554012163701784650987637680909518887984522710281809044793296381357053879428017919257113686962418210777050925249396353080629721777608477234065987476504721640773975325939040376908366103129136256499090379384330736393961402714661393929638470396905674295821796726172073279687930060805646273808669410493028213669501588405588315725802954352887574721053670071524179665512142327097813505404293275691801903668379522353966720391524616289836556977503539117263228228243075626182831255653774500503232958287644271300433267924464681678426427066666580366215329367938548528892997864827928664644994043334526462291756448424252593385952087282025742356080059223112326038963885068919645259085938366603608706061879875193905062561373442231427799597048565432087437872193784871244656886636905868518054618943969587560581926622774144552899437137266515652542217203542134292506952466385703792761399784901219719116139117770235544938102033563390944087955687936510799025555914324362114169755414686459736270464100886019823017623857272578559277143012619577037190007471659473874417398975241526810874362593447158845925007620319868794895274847737200939636031289747886154990473552100200479101533762631732640805999429785198371998880300677910542143203741507793970758188396330261092834340142429614789426569453589700489438830341078832196438234189909884557322975219589224449976560545480466854756328134555899839179218305338906605928050707885234942134000500278166335446428551929346876531540459055452185453472422024905959525930563223916973097396975609360269063230355798320123481406752488786195897257196267602372500161305060268638056517796025010899554155944537046369161293220960681141187698912007606334971831439902259367355428661386534340044750207587826814634974873569430342017477666326171699227183584650949709737726028234753580444883834230900229242680166680969653087992115219330221645745056833691215621698654166703750299672849240996551221292765142995068806004435223134408150592566736203738466314740162331677648671261203611783485505479336121708967579410524685695684249284658547381632006312108336080500460311677926009944997733219160529313192209948225479473343939350307594011710986923487419908308332785456607514074390498174079290717797406151994991777348283134240411960105500076383491159307687242750144450693825218710744135868466398480967870247081838109119590825092906087722302675544371787494135668021574163937253849517255777955461279670550091793048520684616577985140045270638846682052785465030894931402376470561037186337763357168977327474036890424610225146283461093189189952792759782889897579229976147387565068200009245618243932661370251833459228360693833476234295702477270280332319342510721190754199872699633513863540877830150755258703554429778830012262741524803770476658344957897478058460349808617844583453493672800830762890785253840882144486490962477164673946675094723865419216161055870741946747939581755296716162080049772362501058921670579028840328342020735324310252681196637223700846369672170836025051322191541301440803835638608053911824879304854603628442685716592024007011451346346499575340782226520958189174288780582086998292387842872140802719580765733660187600528851459292529008053865968780425542605162366784964524095766271442224944957886055801550928946813629724153041950668785753955636391795362116561254018650560228757760122475434005487707073076295688610993612198739439134383174924713215592476162189713637182663127227864696495690030268905108869681175611615675321837346159056123572396015829362768639290301702280863059933283996807057618845536074834798036836811258254583400587915728524928305147884788480751059955977192739828740532885848700280187433923910978938280894004669794898077149225572406010590272571951342359741360533055136805133306854154020546520498958513257877193222172101029357364894071611580010881586957502437423205808586369219692160023965986761897158696222218568630081080727640878100760288903868322101631049838897787363309458927095690801043356479806110287342046654049189674541895631619905705666024091662089880266752852321388094779503063587508195847522438268294644671841457996662403487206009835912773884123706429384153622097144190831838629353152927062096538970705424499778438278971853273670069704941096487066959765980051883447053470199371287877702297990735677889001867768448689465604576702559071764479765120071738640772863900736557255850294317112612695267311456559506420858435568601789316115413892850821209597329316958349673364471448734255758310249056506050436289927903476798416651154589653746879661863554541593049583161876534264069833731463450439281732982495439100793540184292269645983794848130664681503623061748368138380363326246260844704829260363983127681644069549967955478324535687844502016285381468566573716532937330298774141533834649716597899497918037647870706108586799363093051670848535662112144637419511041782137139964985210042012548705605722489207520601622308787551895310338336412050725512969916081961754304853931063930192245114521674298079106161849501504873021302563073348288282677738182512627729308393785566105460008464662284665409722271286580746643393202994101543450062460707329438999602616473773964975199527839049681557126905509262845792439220351328152701645578673263368465487533935165943111829067168288746561562742169646524887928588113989165285863970011839763708755732363514744058480709489717313832073584409895873522612965008726093390681661074199773529035429228706102541527968147124144414595546511593767431210065630383007219724089224134379165302019511128987922824152073715861926151612509541825313658991435035674942838912039265055949637442335701931351587363023657595204512685613372134185842201290694691494678089256465145901282710408534271484492095546379596688690411816344593815577198948431593892321087562251567674817472859920653489640055269774956257935872800887504836923905701013414231262933608878642584484570857296058947747714483294162381456498544022458454634909506692223366856204579910423204674996731135372861720489504350228418893784973025684822607776696808259116297421697062769849273440467109388143982963019070271343179295331868844636627480160627136537303118550799476318415066984227978052199552008881084584754612327716076255455447182425476395091950632339011933081927881336361776429611780250162710263606224315966674485911425235773348708921505847635826486735722353438440524411583840422429637821193194989109371098834675792518952285204989710388258127811856680051749006871323585265931584358691301419003113709640525484806334423207778771218174574844625364991477710761232504174166982160743431478051523708808829869153439592053753837350726840815274866889594300240975020219281259791053234772956504801949130862337944942686844488063639368724318753745869838198104293687903634649873861499292574155590019302709338906209701798808519107595730775340033713364875723544080155002873365853459535649281872143626765580926169679246043204796221673547863487383298128613551772166058713038057468719089919516391555769714001443372701320287214383511411292137571341491415459149114364211218852748591605720454768195433186968872810557539327378696181717603425140086396393309198284701620434069513090316388726614036185345895883692009828790766521001115110877360681277112533931986092071387105442107670779305820002668486639988210132212777796181514581674234245266160301061806716557174168926793442581512017719235861582107225413491070929475839762048559633659408426691129066742408793881383198260948255132235409249115531517011076940458187569919695141578887725189413795278072982344252699016223955796857612737076495483007517467553436018900393692755534218248807369392963773738203033107310306884614883796834131753951250083753621023536952865853990715758022856386660226989817955011246168758843271869716201762840875900754407273477515185263846539399063255144568533708127341410998725201905281162439536339688384713834740100385937153235198888466922426289267981715009261394438701780766922861018942595240473485034762896877826944616990210138611727703379805802601837391093191021772657802126511473024384084976155260182688847195440696282032394556187906427802335530008860672693618259394186298263080537856431917743672492919267535945330630132779462544468172103197856393701922361668223612973408774462371821704112494417723847283553089105292767095300206500208865652368268174296426331448676410785988130918588982035293485624989460917191893731051616262663648195032115747504746714417663505729059784014028515596730915512894856718871706764906148864594956738563676147440696401303906883677794419271910369479002619189963009864685815309019626851025370705202715812166717261126553308706203238110486412004672774641152952658840348651084300566632647686797734953165546451554580290783979324013694341790074894546280904604433285828793261708172138293255971507151280226914303930246560683636754597444473145104200109021175099932574162526198751401419884354148823862560957349912595233402628267980524410736537909179411877994991512610922535300418510498691478469831271836115835825820540045684620701692820260546835312792451590773967394371968099736259499608723842540893199854182016027270725195268281933966671209603840653882146867175536599286950152685907538672774985754994934909228479282600848422664612817366282036868019323923085811274435871929850312497354208583383097126989200079383694535776707774818634851782924981932978870456503114210928121453670411070114841114575400746139806489957110931420024487021412303570386465391575772571779561939108582871461585762280383980057726046755841200633600423015146105685876161819503627463608930524981299268801945272908003743433079669041188790846345877698254367631249978370180436450598605749487195475799801829528871121833761381433278376172292221089190262884178407842768334301972108162045334791828755131148314943273850228317072209598835770538205955954077050004348639154589713951141876202972531675351838390914031123342799348102695094072103120786857843763971515292855045848761513429098057436939459045000499114862025941009390991451543344085572883341783197652366459494323546050771509472427920538483920809637637226314679901606585747130404346305235611396432882975623693294407290203394502035700131108890281529735435395484938221736907531483606252378688727206638925945045417277678913628680906973078318626787271541144836675705185406941993491387235185609389515871391806510976838763666532720517843334478502055001168381696394600112986958387156321584311537496226577929873562276829211624622537027206548056786620531189827421820105242580409382507940172371565042550709975904392606972149835125569434800929477619999935525328931078954271932483400589764276576242478042200267452261040907950002941260849790421421469588718997861566563399562171943017464024813290347698697980897679887467086093570740443669027585911768011497495952910545786162846153761032794367451573178549149072698686338597663957691157050889074922149224349208005275326262137053503687727614642356388556688157083525883644280200550247836310704759028185389448698965434232309804838390854983971506787509221876793446770355832978854144379400033233839393095434830508608625743113269076515176934101470650529328118083935813030125030810748981159443854975414661789345201957109940041641664966145492506133812693672871301997595178188899762096826200186955021233385620563761352570580068265474182708636415237246525047190839192749254279382467130857474785348824743200096860521853249046863102344720391896001166968439127174431686524636970791549252025289819790623325494199859879725933542123332139179627698036411993265597430247151836236083129848675412947403945312444199088527130371449576847383038761992642453214863702779904692482543885143758738183599687629632090254868058860445322014560749596843724562328955177775125787752013065432176925071688291532276436483101723775711972606134699640005546424491644986232903682198045400244344274197149293828889889856996196872283190527120634705981436551099778826407396980383639264098630954037982394302908818210338703758449506971066847394405653826765270432858031047871071620006936303123880602387237768184647031727793824925628288392388144487557527027707094343630303522645769744690090511317977240406549432603331803359955597902391728892281849601258856017506762567877956042171528293007521546927762460532907589016306788689500748598488514177957049210305892843085982593163858254503376539188625158413037888475208236714276573259700286392970734276985023159935223831616703789854122588401234830680575917253017665729124537437003671702129346278908398110098622674253849522116767431474510903343971395425708934793625375413630598477502476301834168138654179050370523891159296052502109209921019169259224753779603316135983901248093894046173910142985558153701854321249198068560216070181719033337094532793051306326583097381192911019012537243843552297185704753631062491486768787421563866080290698917171781945048666321801829599301984641503111932351890475419036055693167599468500104318724613700843702623377733056755640530311792406525385625871947750563022301445177145228702039977314351133083582320361100221136388861796977343600051266573825836459733996290599860883730262123552517792090209669564458795963298225794019969180879096081336582440339749382927161067908798259415017392036104857160345748056445787069271780573277156506581661608893220703728297472937626858867283485332832587741571953606143735270384768388157497609412824563729766357240879152066884292453798205502317134130626193233925237944917656559469058172790394634089907511365796606941225317244976028111570168198428272812543656564904940753620532901106841431556515753535668714081848282795850807626229139563219846524019959186898544598225200634989222905173227421566373953801296150991317483413818488343347205056771918784142731032842385052310468734950144692818765217101198542197768543211738060929833233826798394392032889136837158150758251807059796070317908381601573570149621276053894597613277242510376666905245220385283462141859163788387852023559013757040267487034365334977400813984385904741316710902777314894390424800560550006467041709172793551791067486137838112198647335205644348881560717638707257636459570412673678056356355794068567957880119692034287722303010114598441957495850023376222201519279387513993264299123112064229042676484954816995870441304773261664732805880755487802995623872362328026654088198268575920052319979326775218060169583201437272915789097671564159147855084422943177631554204288785940963162901778783035008903359547160497631352347021829646816431612540757312396638810843712382076186508359829265404825664583177842026895552515176632648415570733544099613905975448447101744534504199253482169517134625322255798302176578157020415324222397768650967007470434457903509383190575786620998201680347359551087763993773573032557879339862260421110385347976174061902493995859807517638750442969921286434169434419894602591778303041280121259283378950411812840102155127374020708982118165232919829370753985645083624839616785074373442144897865204699575214286822772971010934730494707276955422857092689988004200627950645315816027034177435047874495021018073938447049166748812015306492434792911294141131605977090956063227487482043393116282729161436587215146925963808772055134342333081888573161984002249542278746664778852258443658131136168509460502883770529593998991919671814798121229145139274789212513872117337975079752117383584949128118409216854824999238480777758227782016935154472272554392407620311345718098805374261340369276836920469186665462527258861099595433243223698435434146416673980617254943803755227155190183378072358080982481742833208410313805908896159934307128613516708524707292019219708940255974445409868426659073223769963028270933219193966332241873316246828476816783350389031045019825814859401241455573534794536824454447863590729044276968449882305191811062974945877888970891576623762292023366381415436094101560606709996054563282838332269426739542531124768576428662228603277197250160826263597013148681182974538211822045527969830427689239854872583086779834269530238346666398443261733528757028389732883059927884303380347047539578811569430901962046952036069422431485659876732353460083626214572235783954582651629493306749379843304951716446785464722962385279585680627826920057333911099497379511302228330020048817203182139801519305314867099036670474336569505867985473816409196918647196548206441673343335133903497716517426553531090045614362669628281761861994838403295000995848056964176422358427351624665812957638433945296993366000876332822947501707774995806838189028706888918298888763485513212619461558343937068680640600831009994891627384865130893650500012247260746720656362067802330532272208488147921827844197146784469141798887109182315419730667002800073663361646948488315663857172098144605278000913936322288533981600904959849649392473976710530451523232838738595395569357468115358546491030433036579107568245451818104914445081396984135021316338121405648587919137788806483214956628439532050669312715407512214603529614937659422483772600831540760251408290427641503013507824943597651975790756236253351153838110470073125630382140676781664242574219762493188655267755653152100949348832697554934866954226175376035644511408955772944150634768600578186257242479214552224148658943364847027174791130078463709887133666898034006207378046324475062090116220798485364502047102313064465725948192653309021428030867215053912104512870124092834882209903289513838234265026073221145497258407246540826619945065519240438984959319159123886238817459865815630284048953634235649013257463902753494331894047439451218284286104038550074088667797259228246352363237851291564469057627362240428415397204674857649785484712640743137489740478424802683324587779004101573297987541665972636534499548853162930436338828953780651425383235230435467443004444012128710933807535087646475810142862915316807759916955872966459932891960486774363217525625269379391934151201058076509047950501067528956045887448223055235576935438911929468207710566968238827436841308128489608112241550526350295245871158099541437507629817101157790138244443096646010732347038451380957755635760348730358385002038571797112558115564597762973252038140324227558788253876003479919112053561989595953881406885808864157816521291296732020571188674903446500574718302501306341477026576263758097069456948294514166673390891609771966431552757231981599750253226218433473616100049911210205401312405189947357968779056428028482630386501169941076105543276195212936899819061994568148933830736892287288083908758094323793539782238070502969049896686553168113104464785729545867761629488109794240670605137517419200255380760416100440491011443628633402689010730954624836938305684921372964098077676388110926038556974607682186840868166047351417723930302633380314994716143377040585357351221989489824389048575734164295590108047515289990732844023915022124587666024753227930151250996692038699451216030346022339522137118224361264058678310623448284573475833678004492901514816011976862776068535160791318425646135664505032149454112019377843145848905596055364058123213729932026801284280895361607592823417568322189425358432742156217952826007083232899978762946239393684885827985159221821264657281836201977736259482075034462877863503805887405341218302124898384625040482936493539060226298485802658201357807555781033495550997800402280245895283291296632376355145077501298770085057181848565026283642932990628927966232725678763624340265358072008203866644576842311125644402520597280800828773744336105946703752448626860999987433797668521666410745435300246116631705624179233221787816552210953288499499758327442286467279858303095030977365299214710473793537442694427346340547317708098664017976682929568826274472835262998578773905218585797583496433821534785185952956282079279092655782368577911907448149162140301022424976720498605758012032567151507863097451384622461057792013935921661833475902033577966653187541050263816034812745724422326700928708717769745394481729196403942260934538535836891161143368331640948209458769153754636585070257234772933495625658343227021408630032231181029067563810390262441416488385696500493769638116780235441417732440905977317635905672550546435697730849998895497287321275104153195079256707776317704883218525637121283011396393657270180492898979756968184420826278550223034088835074401682153558656457694769136588222834271379986087925121317714626253507307460145099606325757509271522382967504387819365281169475692324354891414685122130692251558287757881049331542670576871922234623741617992908563921524226187949547670731115176110793864913638691683800836069231938839390121866072122720268860739559278651246302240572211471391018262687857002397729511753894193771091901831834501698785708241243592300965109731337855412997774206373578794730280770407247920380966999648996807501971909936924364636747408289960886160706905063194007280825601638424358084568818636481814426385537473347794073142017898046308943584372917616621125149736045305332525310357674584665456291428785296277821451855681346460699328725726377202006121057420253222633050094940792190460339222713294736899574889915172041153247543811031390637413320597452487748297296633308631959414994461281734146965759945699016229426286265131877576744560556164439417999752695364630349329485209719604669719807668994360323699329562390550076851287825449763746109374192778723939615128962233740062559028777452204038202874480374962211095099741284629127229107171300000677386514034881084778002014627012534789978678415223159924444172308720379777773005660253054118975726522092805266162411679073468257120130104935784310649716639277777147687151859406166383047786596836466764399811616414891970778565143274957555244248953333701148185385138241962510350873402254423898574820126816195173895929730332375410019735529622887922520235974317661743529423338952079880719441156316751388666974741424056556451015549532119698482599997190968010040861182808784049959688770555512523241794232257375337370897209409908946072475379797177339529924628723758724906423546511694453943535604324698482142552731168410261066648963792914093570476117505999215961780336870112781161630496851241975865573905882131734480546110996594172788694115440860679914426983745377016535796037643712602641758258635597096992019656661447049404855520243559304596174450875724471386192499573853825385996025649295928339410194030577127381252457807806101436246832111684475396497636482439358497315848701820080498850799382399699559419079391286808641699264540640013702757573037618894279476890502816241994658610653131030087743981346535610281856879542750790125216931086953965646723208450632957449651424691734067578047230579017855353444621607858652380084775943844068003221321202667343447466848122433188539472551931606732628298463952255689422829478354031617758231163760767955039998503117334654118850563370418057277742208325239644111049356991793976575460262189957452262794487381949814223185931542609653576512315794794902336071649316398830412383800379807665680383032627152456439020318690389367278062613008677626746355436965216207714465333948530584933693638691806816650421390761333193320887209273147157210659118195488129166372637601657071723778746723420048039934318923236817903997647959150061434784232295775818545408976621303888583486547091613799220255995309674803230203110403123938653815469589026259311708799546808105430635731356282330552156331305369338103923329488382720399347126801008551196804849344739163256666127975056408517110326230468730069701983654571408474134257649315375105692853698358764876147251955154514074509036284450736320467629738596777524158054144047517788295137810396442691638228529023074421120761078693778440499247786586988446701388701213719109717096953940650779453961578609282249535149619805507259006501091494948429295943190733643184946716910621152042177105860114937725417215949233562272430431911994110953232521083399016589142694463644255112152728168849842048098023153448021662782231036949066133918619708301343670319353291558297152370650804523069301234990436506901564268726709607159019511988021571659127981553984044880110504857208271713585004306127507923618090959612584678071740047290569293141040538452936738227792368872229070851900615708876773517574968916910458803679091999550745119708175735478479457853011200516770183105935358402441070899068693152655475602837556916857286164784830489286464734709934157622071354019557530574637353022550350171791613246610499684287514569638230396659298963478961382097234031561859117589143051407533308503015566911062356994152193400591041242766374499773497743684722449849006926855221682016636476128146050724686104297462441288270406061548288017560893381843655754423023361213927352149175128618512282701934034245969242766429084546234989368336047543212336286526476578271698944277299907299492065467494879506827809148398050580236640318520390634022367800450426329172933133763584920908762802995898016428438588014566772581404948072650868620472255008741470040755151074579687369455267245959704399157479945601767076004170373888934856725904827188846836351074526216366241712734604737746210203081577727738245585640791254370482365904832432339208174107005375265989517783851921858589922182724423459941780968778238815013006375207919978110317088756529623527020012946465269814515322384748985253784069663297643839543243720687120986173176820430740369973729967740105794381243738794813575352895267993005336807718914069814733273525958033141334298136624310240079657304633079016343734505778674429752099890600660739725831689861322248760760490033415998156018843835960839881133399369557291137428901968872391308286145195423018189691783740609407018328869417308735270689594984194839863137210543151571134118893614022890162120891946505767638698265934766714808101943426153687012912738121246920435964074853178844732576194116587715927840139359227278000241096614424889615383774302623446739549624801902424051573175787540101553949862401034645009815014158567381374048838319478079836168225063480532266258357321515164162111811124558226678371859092323484596622627242215619845427346272560843767222097233109850448590079948137275401460112188646302400959315106865028074435837459196523313857343541915056501120728469044963575727503917457890201546230851821371030392762819188661011290842505140441072744918613825045526259304629484219802645937345078896018878051720611875448103004453188475248400872316647295523542535241126721698587495439879143476826737466587332446916095990978101039759311842734918637030966994423102421838194529318905878418432889589320196563638356709424262259066321487611938940575204644858273018137944118019240783383758136360673856885114435433250374593136226562889002159158301060797245194668537663362869560709924694247936750159946833263833323824388997841726756747789395116505751525484578744159407566551744209141025489451554521227144025250756685900341246781103571672679327550889654585139431986898860643621496828614234979875268621622509463114106481557460551376437902827878379080054771749182591530262283136871450328972031537734687577832181817558458018030107880603203426421186497022135415205937588375557020165812884998756103920241046891154814591754205543767129436063399748019946102023790450479084848047967825769213763946371716643909788883924527371899813043493975165292342873640869292701858365088367044291932351237339564248608512644406610781627823525583023463351965674749457949142722006577557456993521197343998487012133522970441722471869492128117695730094554413529822266935500011237111783458901595086898701966370974099077025156342002923915797283615785477660163668733765986529729871163728956817094382507379111486553616947756917322735512265890868492732900425828109436303943336781623254785386630096273816209133905042245552025848311512014365813930546231900611224483305678477394049042094886949116524898790686485558659068722616307161614217826425825342780766440071718639439337734259726090993987930824468140499531148537283480079220880426499490644997008947939231114906971925429490059507187946447407490785685993920690315334328269787945752552726904905471987133567686052068771393671204079942919501832992977385183716591057128626232059227535722909475911766974115693533338076164200335281195190619637686602614993825160469840866809786793664079547331923271881040667961992259934390853271551476608312370126408374364713595510127226002153316820268653457641558557446410161917230538620752566188713703422890333794128972227892172031009599065215813049695883301512488039535654528736675968440182745625369128247569045072244329791776534956293711278018167191697371190884251016355163092871723969747006604965116496868489364024524903311365118850860661624363843834806188037692757923672162153172837469042530240538177193286559112959837450882836199073053449447159750102767331231375148984998728128044052826791862614461217171962197417891110973210785049321290866633912533754449861995663022668572078098370525948529410355448052667703038068831481072828564427626320718422892642606536491628173823437756492368773557203094849771059245836171243816366532116116496423874241274545047831233157635438952071205116892301038694603630239626291283985760443365632150826651229606957131796139961753003335479452378304017017386624271469420956285173886850501196244752012242762537956694294359749001029763694441821307020654795688231727876576252407356073519415781634037710743450347645884251732902728710063317875068935792384466047676647672696413306024900689970093879545187972255638222441313794830901883588964736407829972726799116594243479678046446462471520567402863186384168781904446177781099872453820364352464874036433862575931141549368898892097587512394912031600413213560310850696505319539263595167155597401279958165894540252230730939784704364398982593920077029595719653697124401454722581315327152420677075723050476719334733070054871963635232865653316877498728022893850910674925694939692737909600364658357068873055152823369105224548417968868271716460700008972435692460192929639104349201092379418170510064621154437532214097016810067852763926574302403088569572429204955056912931273488326822674980937015859667529569570552380440893319337870912492498303161014227174014322280009444619317967494437627378628347767264213437104466859332248940452869604418707891389302425606622799263611442339160316731453392818607417511719987995720291452073507862916927638533462414424566487647083868406484781879737198809924309149560700330952373404129555738985094588187623444163632658880921012346381467067862914861697218176947943787771100388643005550541845461278405013310836547711039025821326468621812610274581121216707068180116280741498460852108023423606402830914400885221090172508733709154989695813678169867360225506288773780335730861113692341677792479217599995458122850412919496365801742362071811356452897404305189681261155976658467400969740655209373086524501111740136318493076951836302381590317022997196148348437236352512452164860902611277249037948485043140018565599211549377885933039287877827887659083970204615770866946835158092614991301867335008328957863338280749242009271353329766749370538815860926871901734948403507746856504106787040159239315202093750071007221150668525311900083859660559570232757534943750380745643368204504855830890987211088548885143851675949009946032566322102935854587899585269829871919039794400226843741581458408441865471841764350610610186510015923406313274515584461782328847805380720973970878942423939912270240834167991947850537249702716919074609540377891013948639437106815005974428628996330411607032249409143869618779327735361655941306511266580346302698433370855585469724365475156613682425978486134461827073805895114904056181278406563645134200092229006031483581517483831794196342469489209722853517859462081267429609758511226182160559104727614075808843272327870569450465864792918360214239929281782085870445039181688494496765228309838331702959757897489928383674807991698070033029327569022718252604900645121083217650244752875280929457882285538204312195930549362485538288076299961758505636333140788502327974391223652401531605467616141050283795806775647789110441617555106920065320124863656102825005162042827311524851201255946407602405103631415551916886670325805977439238545227380616133225961044515224994117034683304074050651824838186336768147928391751597017722148719207729264972850156445732032341171557740949982136955474868444614925072101685866460638874562275488899575749601044630979241484064785908640923017990271919119436097105955218619902189605578073382595143634165323648212822772614218654751321016695774038605118025840795203353466955184451917402634352670568672050775914914724095735431983706127343161984826120615635949548763338659297568580223975221895028419341040196464913776090719087868254969677951282483817901200031609783494664130404781344186453992635900252862491062655938048030617241899199577013982853039711697318802778693364991727592512050359044948306210701579535588412178438657354330894654380559418739828789130667941779725184485932902370796700316756030402356340887206934181816657114255172520356975439955704742314233939508971622174283422260880364018919386138281309970477568092215924912942545317411926065497378213526086134567359872709304409961071393225192289227656788763716141480453261730978450714227132036166595783929368859246213507369651150136675659626337609017980854632948939144660531115699886116931380350253376688933380511614531543056345650886939587669550191192727702350860905194868254986453851170308991772471152069568566303353012830035859938294730526472155049475283443802545949045987189765575847139612613599427293612563547611397740159456757767248121645545961040849033461458428692173412441549086934318443938633409158104751104240933223044466101525654182020042848391016146980334027340876007518927313954280615960969644306899585406772358843277620518330053525284944997725942816723014242947903497324530038402795347673628714236067411013992631068473590775595064183693965545453671778726044378536382640836252569381574154138510960449058373433158634499648233432307119855195379498309866983410285478739312753483670441620106063173654547471237599544349329319645650737422771160791361212772721664362097416569128362159310252234446741917649588050404192876028277094514774157042825492600732019962299544992061812866415850543911553865738166013050007671193954297853534456999121493993511026745153887301094731690682070384391076488993749562019853105114492315880490575349441980720423375894022180322426539221277693416470575723164943483107321433409582947638933734216615816095864178184546499228174421497176233865166650269428625384776261383834708545594749812811571821739696497823780542618316232792812476178284135961361882732303004840173173429913327156693014488143382833224072258908709789628580723249101375933720784843950497425716170355204767626266219470943505003579532027166134133375319967594009175556752317639084505116210509486196601760001604831948507882957859474960501955924870212508163435624607789985057250333364831480659178900770534158616395128532591023332626213287981598926720195435796041553324206601889776879944196988083375126700272547065889217212088788836386024851027046764768563570956947458997234676643033027379953471656789632640763684789034489368310861004062769328996470096437060348222078131705568531878946439982008315460237286459665405205264939405000486891219134978492113518158953189070337715431914763654930316916860449052857715068714261933614663179931842768824758284591625654876404952492546202767164086184447219204990456556551851734997099444754634914062848125919899318315054143834211581468966971513292294089170522703331729119983799724960494889066692795357187172618901569091274381083503844124007154223195123305436595136809517352761260609568511452632434670783668434918650160761497167022310878330613287369812679542884627405687709466224471306891227362733033996819806007408963048266960632728474465924940912776898330673331086157367343086283129862178883750456228567779503896754623808155118984704802923660991729757919139520311168374053738625528116539705840279390386544199018218154124551638384021647294731542459797001408591126775286373510682002166690639494787364871886346826853904873297361048924205150400975708177886940628488979119543371990510429736253361686220639073729322009828084633534179719428517254942612901136342581560070399004865014877043440098584615821120628512584040509837416618969890770526019824432157477641378973216467876101809888640633777499212434417054423685171925875572305047088611202754722960648468393497111346365495946770932257946138454119543948599498618125758929285530095460108928903993237490963171235286108078670865842074903254676573769197317917230605522403081041822911893409910107577752883172528679073122603217784731631135823933943512681158535522210977638013786545157667653310311228448254048057132580656098536658584989846986000453138223481861519774397555896021331590092998243875381356534882326786958155893722881644707629654554384839193287188865437278224241796853865450376830551586030329648536093735910077063701680585924302243460613918181122426329805450070361660276126844017679113077316924645347363600101854995594607745973305861919620412771894296022050761751327400936518181632107064439555269743142416250254757573705868559649094827325170406468021903093077016387969942788028683845227802968559260514501523563915171870443374867520644458456095939702025748963000239989517528069833462697900200063260101767677035344495372817670233502440536581941528197125136952267076724011970425302509292849415759840431943424159094382549979619155701530095721683040589012534806438081011593926177867033058776467760728509250967866423101851081663093956249036877443891618441309491295399323106737676501267199953864656548864678073989211460805993399443180412135836882937676476860040050012269106027205260718395997171291901405930979476661683552849534760279505800348000260796013596875942190762576944990468236521041523526753350761180150330846137272392367217278545739996988079389519809531908128081053907346938651370546920425270978247306130982175215147596692167465462775824504523099604007981443257346880899014113351774784584852787702276791817674911402207791651527961945494412990000232836707611601724545324825609887447926485227151692217631659660704058254102460073829124388604890256435323471587981698528894710719188901251083407769395452300962549464046430708715390200551878991865220286626494856708359796629660817406044134567863994319949533419051929065979997351938411494619979013646157656786140725797835846513830405636378427625036563606860670370518886842847859080051622784239412354353939461698611979082592347966334063313413188165209278076266521670449665653128377662370485288711493707092919361251501202571920452437218706179286123749684936471785489403158646078144914359712100064626264312318715290233816583527128730420576264899745234081807810320559685297838305206454925504896588750185619251743743300093057834298541101450122379616052781797736374116076048024966390895133731405805724229763213064877592937886257364896942299850161167729737543990390170107018694876312950044017898907421020660049069052242814323703298712060837631620430519901564751001996800453133700028763407851358502419647171441791592178226383948913891925614511898078532737469906800997916159258438240970613178766603847247078581817819675738567339742722460153852053006577958016052164472224409838131447138019656041327942800436290427097734674301171802476042535494238052350058125100374401462130234789823703154971292644947872322366955654371225696229598392377863442330268597420579565384031335846955128712776634773516423694950066801624121911416170281958921863492132825223760685926017075289443980351189336589558741452464442550975087926019546438385930257163613943161347470593055906881447798973435784485678331720377658736803310136842001821806957150798690030594125453102599277283311098637226013490870967738587433320492347855076709845083563254020725765475841681669548653208325666850813845671751431469424209741309886813137423590295615601031668521858126627015040081970402740413275756406308901167305385574874610258464954572193413409856845787607796610137526329818600460273275053837944018734320265061632672132985877633142648469865367566350708537275892795532544958169059133380233738917201859084499811392168618010398669923030493609437008923480295299817873210115826884878206237588154156237206089463687300347895931227429851647609952177319559298575844289093388346057193841644752696913533761500024197098810585834662934829165960771369816254431522689868969292342623966879442462273211365875659675883393773584596893552689370542115089642260186489581485881971189784099411388326840393220848187984565653736817991421094514430216978164710372142208325548532546278189099566570431969989389129194524443419985930021731582884882390337243183361009557490663738063320935116190730943754079113725221270498467120187343974896432816362042230270202107181761988613251926406924756039829516806924147506413925659643651668836133191377333164198357665431107993082669046838627986961995857609545361484682039314818805855951457831944629470659934032937885311510667278713394792337344858151128901426627390226419993385886896768670713260942139224216337836498642029902556032618318813969530379073394225163202191961955065930863509479016018511868226750839039585063460274305108122736979728286815914473431409290343480867651651614668495920176264723136156000401600116074968354669813458011033163702840000620905035977503779178073717227973000219750214516004487315264039235160176439510692101314081217949323632174996237733648501346204047826449412809754830173394793534268190076017156745099187589570228502792098003822109409327453297184871572678689980172824761445376112826736056353620259124954601270129119701388054241077011904735386080341124890738232405126624002734775347123222803698182503467889190447117627837892538906531295316244540847352603061640777851660749568604826185704736603463569126685706410465616480713498298695774568531455879440519651596496257767672716431464904554766042891640024309457402510424000852778958133272093285947463946500950707473109213534066329855798898165090295964477364507642718620189196279205836728978707033096106079957225368921810631957440560281004630867009981939691268294362209039066443506027578769913772769297126618401684304397748946516927430035423478469601453307364263821071714206778918008639424112349509355327724780081654295626753991639901768472655235795499537407863308685720991574275491805206734147521820460138483507139749009270692282503022394546714046856870343158207869088118279643212326600405593592547948389986195383594717928553944785529405333224473905065269135790308418987170612351395736381817675542139793923152180792494925180046465612171678103158435448801158585283190086270586641451228501568208159768884235018847930195930363144564897022960446706624277387546563465467659337055261222240924844067947385954451958885247502661815881566577885581407022842992902868029955095903842973613872211079154758890132321664404454500790638869518973516159793594892348144694946036106561620090317691338248473676504606248195642984049332643052297477251377369158300256272253081828019596844640120432633977431359987862188014891078011428969065278095514339130502161419188683792624296943002374052366527598053067034029169180225572166466858119855479882153536892426880178356660444210558617382249070099596401576742848238170548840390576071278448689562183968913441973975476185147927427603718836367118395585983356563148802280167586273364330581236816545450954600303109652606517898009964101030649722767392532385127623167447188833053972578430191809621189512868263331056167535724941398219249421098911875391055369017556460467188350123767776344112200115059990126313928840589587057449166205113829141860759270270914078892910790671251388965968055881023023739264629665837894399348296458448086090666610665777099989479502631880430455352282920950388747698545389840828221113604047043993567089757495182312712555120381865930162028736415905510965965205902965242877987162468282452793290556892426076091380451022256379907719319353317311035646808826666480872075113600629515036077614944246913076492118987959744916866156673124768853988598392588186159781718868795616332917007587157480424082795228154855667856849128208552456367764800161189793162013835043753397392643340449363648980822174923127640299857940488889106414710489334429994144154515845766943866828571280951752722781384335920506178130278525484054320249837654641100513204245426093512577493805090864246109862926705136616213316485184668304941030310929275934442464746595918124282887145998535583586812400403133495055967067877336498395992456222689780623867901513171926048390178201627173270337358999440519184835233231240542530524488614824227537429950593316973846247847519611065125533148531237581153834717691314605245199150490816841654878652596485211459120078190692670974553548803784504248964147498223479293633207106920970751649904272213599435376360270233938613233876604491545493961844158708015766126654105455571433807585722409657148531983948515579167517331398712367483201054424278873850073867584254169426701493258407345351314527427130429039741163843784217832760657433192567316803363229726570003069020684680233951633043817556010563669257922915712874243156640168258213304088610863775591953822911053955103026544093241137467107149156576975690568791507897531227355757852422239058905840622602079645903734178232030265249090944594088463764975144003649184899313505239152260133479876537204637536818394081258540924189096261841673800982690166556275919638463516655049292716530583960319491489465521605626318399931470823609248146189791273784168095824662253007708034448620969549091494456604330748004257669545246001699103586259671623507154621342562131351984928561542849381431515783045969880555421449348313373140924329273747718356258093688531275053869387825101984218042796602667217677691416850533182682620584360020325596960908853825956174386981072362131596116561051299323756314527790800587179562250231813807586850464756298473807762748290341972946612115522873817791923643399652182444111761901868504175234845334215276141503377015409390795823207851414364302557174530999718923380532132774305408442796483678551910698513010563358728211849960519909339339945487845037715604258286908695878663567454780712507547450865567931117125529756236796713952882905948483394827233676800845658622022047051148983849908557230757636527865844539911910390583891879315737266111044025895064447088498954242379921681624674122406654828917702800074672202316674910483129338600509081246951878750394969742600383072272317887921813912457809155467817791557054096747229501182564785889533122120664926114478839482504323804471141635831859877558218356460658735692408683510521810198348567661313119874395408189129042775521537927414417309527052504456884157290895992648151762576884920097968868361127361099435358309223785515650810777728247864325612544374973985231243923321990674162051528254220375191056219101858530712450474252559261117105900140416868948421628916289888401595644306039472184995971851111028568998899771150402258171687443592066600638635280013463552384819446468495582541118508305542796043933715347965818526420989657610898247199171207238727627801708492269528732881718797376433911697328395451215014524663505612024633185705925348761655385662086379243523107738608862615431883360425252005255618945123055659167083880519185222610511166467637224189238416785583789055430374080449994328088555656490976205339434637508760694943639715177091193697404787837423063860182874041216421566326267479763836203019693771609645256700403118166621449380711370025027304341856405493199104257265080820958925945030096823419617673423531874515348331787887774948465484592538045500856335372486268953983322865386665296452647137180387369806327061096301686989076161427173512846116727917837484397002849292844760494478143559286807452860197879489867607701814502962973934119236049491762164456497153430289095422549250168456522809202118122872990847600833659610795501056122116847395580195313001661718851119123263599600815443864571220473209492239422496618124133279386768787423176551356855808544459585220377036504510564464054461048480504006993178278433361775063837012099789744693427094033261354302172713615320509912486581476025868064368759966756292133435084920543942605108471104034355807528291865849004372893764576541293979811290096615582555902785601435443250444755027198673327511193480295992123914609115982038123251720641148124532583824019505937986806951195299767696108028954400214213303480534826850854373032933964219511738676239940990043745253052993423141266950253740638668259449463615322034443924841148990939446330035895447021205979616662353355615274197796011974974610022885718987212715049798779722184731177683876581568938161690636567078465405837090814542473283755496105714234888282569844497418135423497566806949676448107029200299877526015165443635138574240029593479442988733638577351192314326623616856430309537721590378907913926718123479332742962042253507413589652643470173491133690205589254672932158858344615841968014322913155191197183106185181027327031380489157612539168929130033162183150906318203360172676227898434455480151648150907501942471711666394923434763676686108333764900908408434255196528918367641985203741799954789639886180303594638332403073647904485213185801554880997490023475004320297973970755947370779890647763196229158195818248129715569106729826401514078231632532778726738318445911467772800067009822058746901863931582576795362625472091518933237689202755275419674596205262504725369673932922980243799795699903842156376846092665980634393648321439237540036590925273798575201684830328136703704545518100347282492589099439429693232612207043594914285029049541819419588675994405985482990308006568521592699754609981898168443107321612794321005415353561628017960013749705325154014884905746233282858201594314213149609199538503193704938332696141754202149810866716381515474895329905099849578786618274840643732155283058964286390161303193464422749239382905680315838899402959550527715002868935328335584241386056080841209882522123455705845310924819233851504506323745921757711386012911237232467002399253487107846823195439373314173054568122402405606844304501084888260307815066228440137953384172545752265838409249692172559845592924502969584143979040415608822166597137680761642283704425939919317851935856921787935165349690259814878713816204043700628025456313929746047475831136602692230586927232202704288824258485191119154772389437754953745067152265737339255124054902923116731225437948641646092231205200427534375997814185509308574682568183212034997936064918355183519442825736916525043613198818111655252601207624567154980962518336039105110080653713277498596035883643097884695458692094049743352099630002986861658892524588179799580045963720049805852543252823911869450045387449147338109594334501381828188580229156547475562136990924041304400779952966133771595888590902384158690709548260100314740788876062997372234456502140387616202113618629853379998198191760661162041525302120627597287404275712516441527690698281240231691842368627038861673582980564577667236915907240096775250249042752347624558058359829063236609116279098945521539180546286497759873813687568747826948480792482390947318762038828144329470278285815159247309314659772855108241447074243815555254481327025301488040675740022785094650008686614880045963261432015668418218078214029236348586112288129581710798608053648032967137398113938936014552527291056631325064739056600834835442176109587263757788719082745006836937057384323630724482187935750181903505174986533638721441037775649550004867759364215116743402916421115658279065166560250690875637459337099917261352633997938351664169092142263221128092966064802595998592142100949810387508875231315511951566332700321088662299241393399324853943007330908548091195367361432293581521721475895348814617286360111533302756988617654555667976644318550237295652833043800307681358507912578500720845110366299788481832802232465819794941741389818591643557206694288023894741526641523713542889882262296009101134967419336816413361120737867410546510107307978993776406271823670070894560366807920875522665936304351967349453893367939992402305953594404011592594679338045042328813942382302845637028915538602994765825394230247367528786153523869909460172600688832982729823803230518157929363219072575968566196989514079757139679561911632710210260885451277905504663569358007132617826881295942465840256524834843063180434003645215329584698762552132242720188972472753075023170512394843800632959470093655752623016353845037228394804906776295469018899658673050317816461533714570277137799942089284135375366687591443411752071730859944124495856261831018413852230047014239881760492164846068377556586597255416081951979649587500289799308208915782970774212557783333942424500637931436525269895645271556681414270956796540161800319447987552007674411361715603878571690912956894615901629487319683066345357171417474242442952740026145684767454198815938242198497626354870619927987985565818713151611712575541554710767238767561259919631005964264407957239450192267927081356346509551024422456574259150037191139167726821477899052449348530206542058620860439261539152464713758870239481658805646814761689046372572109906733048542908544930872600134855069202216283353468955188705126556500769243741914058739639330482388108055482639594980049564071306194782163032597233171002816420674601976732256770594799970227801915317114957888845893390517782741085046624320221477503057300922501175362311870055019353021530399576106737054569538856800229663368938165213929972414633877450987958380935562370275125388452515424700742808247314206437546430916409593836880849439311804821903242662018236868947716843385780329636470783631893936617127893406515274181272620981559565326042108082892766772878223916979306403147368740515117939574402308566870728686753314033245947835820601296499798733137852837320344513592092812031283585144632231709965144147369013527132359478503326857911856242118427579412125196281540850968831031937194359027938985615888791584066748013156969334056674603246001757388586969618220564167119191645637379371152149619824177676989467490578522553443947835908737185625750659963295866124794389058419084589260740284538620014873801393734151912839741002047849312045739641098526974780072378975921812738002996676376459711113865768151896168729290883309298190631886472917304120546272157041850929480493953478883216488943313146864377119591061869140900999563778830686752333987161194121459598033435912772775858624468846979672428595478518066830292551989465492884080668760400935605745819037652449565684967205013766951276396628213376135235646082382866540333413638758984149266828671717156170465589076929254679792594946070986136906032201131214027250950988726846536792629700104033379877497977048189230546367653701701402561886243988368525591202275155077845421748075120823604326670866230746377988887505647352055189126962012573926499168635976440163938485291091106940206849619319562059592611018797862543658391136467603533940421665966279868606766830647117937690661633476097996757816672852295459674994079219850910520157347143965943644139355298740849692834153513062929214475048163052858881269390816744481344655840784707888539902498298052320584478039378635107857123390360167302178643734611908805032054971371636470796551863207510977590205816297891732028569866533436952240175226186053593642551998056459312010247047692876838167986934900397208973985202562183481198790041759730306621771458823818071091954964689770691206931350162903043232730467896362932800564614679990002400125363579261046446741431234532092822067565482204474272633251893756317330636065669889288330744512834877500116517186089742575849021764746093104190306047799415956367887268294261014257615955710278045083058255669668290819520520511956122364702702966103109443070763742409432427385864939032108648178450276212619434792682883771159644695044864426804698681293953645278643490132353022678784185094259981707115577904870080333087019207626192121059447598084818132610901668582987679409829006058705615157104566312090510165182770291774719509584766529570269439657738419233577397709754131769117946181757049183942628554836011187452978364933309588267276921058130331237206816646251267937196959885371552007802675201638048557220779604898717798686510081930020605960109451678276344840503343749171914410781381557421290086445540052363030650885926481082786842536647387817725275874036846783300081416306640117904368460164234424506290245366711933161412176408053445708978641144106610398289091827029703077075044695805212880245330379276116835247842543949588184212199436945524189625932282669005532155099808348223089114769462997192477596364835089297696516631972573256549226764967024074149465824761731442925698677410211476885998258305916772026050541554840185175315820430229228623362189851868162413220717467727871639872007351374384585369692291872843330350602141133833265191396635811263921304760990940174504141503192682086468914487526792064280144822654407963320332759837759866224805562675064725641470348698101615540282111161588863919819418506290096425371841419795054902767034910248431829159502312403773602262478655994833315446708292587888310267298127020759826658251387702842670284054927165108268864885674941303768150794733178558539641383405977166239590683689423975647920230224588315403000806953293832194479787574130485732938455328177087084228056598342264463089862795690127668859358686138086819825201561781126509729273999232615364875779821717596074292987426505326267725907456003302147357183383997083702044263785814914649436939918749817645495559284742554765785954034035955729337764035768147752608207092631491465002922880804582902860498316718858643943519351601887797049258177698067254330807505686025894867787438760728197107426382084196086973706518631854788608682909252135306561929531657227296419539614368745038759581512542859059264564610656923278084187967577717988170108747611386475367116318880927518662795961724743726673843185258230459978292913506511163156074367479438111886561159306778108713691021055057814196867401574237371568791928510668729613386459599388650264910568247032540883394836850704690111049578617051140394464596835069598611687610203265978568055926848855080815649255373458692208766250169056268110609292511833509393835972981172404311122379550777120336772456560647894801630154308734893548303206168657575634492315817881736819530484907824419321536929458517486698847032635513110594358371941376564863846318619172962701225000850177678678684607216007437272788431991789436308772163387772771364685721679754276992671179392762441243061413600070874760765735542652046721752603623395737317017770356073490005908504872449054448515296298278661883920132668562617355644589133303951805003022732286351629048161791066447553489929350661812441917946502059380954222017965598023187472983867281969874419648443901169549980504055597277470515134733110479331658772372526473500896623381926204994253484656016815550842024609694310162654687626700849970017729099911067086083169625170996311891334920312834246510799790003682343208124592746216584366083834216174275104277252507861328850860271277898410786415504900392107891187187899302381772960130478711023463746375490446956707894854406785274571240264429267061200819774951010632174709809587312899443480367839303310862668741316015374194311712721419346227612338303120342437487050958123478717488526727723053019796173491681111746630067083842699548340776149764882925416592786297361268298336499591646030887509091364673334720255093321860318653090953351148867828349306334029504456623646329211615240405572930443482721398228607587261812543260034252174697580938586507493732411342372379019069677516253693607996289720998643122423514896404317791096834521621896648794209311696259775356124438530360538713456354951142909419783295635092529083568673084834390116420068600286143194065103739106684284537053959112705285861466306226576065398528889520834093157775903680030589813923128333475174031828755008184912577841466191636880705577898440941128401835135290125667867751695438843901369944213191540428189893570699570042430423674196103876391940460799430819150847501532112026139399789790014349184051053276939232239851224504607669882827335175377244058545236755869851118334181736100826455431512775682210709359799260326238041263523193991969394111621677257505251097565767086777940942921046317154147642587817243301372389935610931416175307076664266334830681388233164415063321456337486384420231939668716680823055807356107676551533947473212285158928661879075647434806918791455079723148023235603811237571205122335543627049908772042981815408707938241705629792317178304779594611613804268424549108961464711215073298625408153984703614465020729306701474597508236307804007528528305385066265454461086677231972359068308873772343641819627141342058864298550054894065735478956557154876257391171051336054691713068391822718505637550355546222563378244688963310438362816965039383436787855790361868414096893458104597686023333290241904388316357380350104579039907414064965540514158199522157560362162378391802803375530237732587906840171886273219770218450777194923320403567034024490363496862448616682842941021298090376368056447153649784883178707841868164657895853778980219254641325251503619337382211399356863900838874086761251135704372863459884773759876792831080940995146700419370933069611875505911924203783416333399499451889415247540709157518027081670963791365898919559582695147309817015687665678177775715698379409088409992458461156969227135148139364053537197542967394054768688074952699103484297467024194224844214983621610037339930806991424043271205037896117308222644766991244275505296772266560252724172405327738673588858592466321195267347422345225363491090553300729574801042310221973972482011407263665761184225648250083444183236878790222273478121867118218631552478921000348837258776126481382098644614795362178355667678116073718979082523376921917177932993871514090218933351658056060929732333479075824672337500599352592889473700653170586836707935473229304542392152551266503196771851264511617012873424668814715280020699555609105725134650517024671457786673583050964721259563108415274275021214405426559739524719606105130830642651881445670237680222769820669072841079502835176058140915875956242927548879869977804425915312588283317598290095358102527942936513334557732543226973355759114490771257360408383714652010296718046277771078285005747039052586196554505301973876023828316724510543192439477775325538519148623426807270005114808213131794383408156742563447142822588471131289430000680799711007250371005191806757852983857767211417016867094403703455240517245017412112879643703985782557395748833004488138228810087556531175783478344155465617007925930027222250377793226259659987019493298263387011854574367465418492167582656092178153583203985775170851353348781484504624396520250635844907525011679211113247340732357547895010780860146918113787671609394241483531792713748135654859962053057051102372606268732406996280813708096214684353840055606316577032867077462743581278933097102197601370458666115394367347133342888225204334727225721865205672700082266844474068965898739238738716619370777399954936354608105618086434372736904937913406373565456590453326911226045237139100652117118245028888137032076469123767421031523800078578594646857673073819601504289441081532732863831185359901287746171845623330644158283421683997790216525978909036119449650665873965557085357126319923316274790943556941806751570221493637654390134214735890713970099418868543540182435599524085223384512763825423330164331429221253398203839426113753994745756911774537286306212972249352645007530631857041424022779379875794350474113489626743138957273525440245934022313038193539712555067333506151988807692791250083325609002581011710651728092197874995738546647149055499247705431639123642554012443357716804278074902364094389525714285764162573256039550673655801908795462766370740653412057338302156304789740604394785874373290932989913007248369470129837385216763805405386056337189417665548323317986403721058193303106919875796258676889806799271693550393966116632786373436672062984467524211806646373148318392777659947315471717113186570639119396231159316189815731423824682631917143945745430238598670257668602634550960892706978470413683311928339427481043476369139815838205709822286634112255849739283381107318579397682494506034364767634092912507226696173725643957813015195146256635036501380540610863967230134731783533679817071221093846520217847280567517281794566733001355450592935144931258665743712512336001272316080471635143579480781945812564419962198665322372151026064100645613830226872793803117597687861555060342149897728698904295241000574286990048713590780287899009951864681847194608901064232535538775193725619119542310194299604918404742072484485132666008959030167741211357679265980845708975222815427004846261224008825962520844688666833980511781475599132661371185446177286585349789062276703477423375567766848227351595680438786981384872748613041200550857479346719218098381879046360275814656745278506497586534029741919435320493558022346756928788933665062994121584094657217399721947261232048229868106147236591647661589672766679362485780510848275527119443686919346221628161378470104012815384837430639522207077465062743533946242535006954011107247051916344968442960122808621076156615466628258627221188353899188474220864856241444750101558830196143287868108504174828912905068040740459429994595691201301415031120550533077981638712427215417741561623425703605343292455262630206324179421393782445458573178808893965688978336430904499239461626432954911744304422532833986144661395703535728271820023516216993235980695727651932206023680209327582056173905052973395976152827440617720259270257405993920734388330972990536909832218082838567646134276803686682685089982387247597387788071898355233871436284244060753653021257290675686363207716441646935717247399851331602918191812992011621592917410144442547909484397909388981911867469980880458392356433330769454143385728216852876359831973977283932060805849712452333891440905074637569682292349815395963769031050094608719297046144849912751723247866404006761997310488544891896591882769903527853467049230284370395354187297212573428909046511682810044020723283367646449493420427259956231223160286150091586705875571759034841716653128664098171714584288459140906682708649655312809754360314878428415677425951393861864121122995828953439714432257370278759951094775023037184570964204825211914039943662937494971829705414353003302220196387043307193789563323450322685877897365728368418470443464238118171605253900482365366619539474939001858050607496014051372087910391534376097349432981478723352330292579902002360919469936700419911629007746758025264319716497989440405894218259673460865529179841141424434524399922659543322920039229087536175450575697268385388797550205400362864222153315397099050400195038213618671483078656465112939731799316806682754772460305234833956838620277729392618506179207110182578422384553948928443801475833229181273299405797987120582555434514361498251612250531809499013147326729988343236870513863477084953588095003299009028952034564596096793793765752153356878643045772002066249235140831272786512606628089254970547736805735669670882880248089935080256109533636954615692963509702524009530613910953501896692604235642191436383800369008575034667870766825163517026342219468724607270624639265578738139119992373690082514514904640098713290047747985281507409687868939636826332806474019887752082153174190632990162666809389581608659524525358123751829534514385064122797952776917226456004741453791217228093658340863706655427811070740981543350361771161503943747361211976409145696652080568743432671421818992809762711730063589246293778534525695815307271223417235185661514743694453497622216590647022487604210769972238424685688367198720447808012153239534200130750365594850384400858538467753906988348885400425141169621060752733387516378320584704639965008763416648931070382850374340158549611490553928595044460931942667230290673394436758108159734385474882834035152684813935828565105620183511617152512915970778681171552390202999025060912918290882436920711309785973475912262950181909450964210747144932032892408082914735667754439035013687171849487635486216639041554711348808053678648308210976574446199961874262119348480734981454782283330740316566685572972208492622551124128495547262072900940947507650916038474368531058086582640645734218642193627027751455624649658231022670638218793860651899716029380340027204618569227309667616369590016314673388179569402789362148930058221999668190515743175292095678099173365792527029007349217370746803159599531352106729032026220467476739830407505117300560379710425029911620305935221044752604324040551813232665745844734545748584829474130189993662829801777570470199115780926160997192466957116769740294305421838517518016491826896403601310402346852740804234130812697225138342997206160508928738740579845879485130736564172870295338780229418684920739209452818360230422376977663053524892632441221686390929946175588081264435887162538485631149978066036161226801389143718775092695630131122228740582289857020645886237847402270526315201303327634518262278953979770329759998004044937242807527274419347873436526143997735570668075208361628607945842813199691140031326543301153884876177356204036291786564595246278352126795051877947586531742199606552241620565050135537940005081710793890810822458262730024628818571083933235428964619348268939514058682189519949723343152741857298477530525034373869058014590769826294152640884619759272889177492914217070684288678779976019543337106929604770211655902124450274683382977102754411510183293936461954197134483077555213716332698042322948980707517561875431327045885581739555742280334775628760811534082739883940644802347699531214999756100399373612781894631317611723514990605322323499987649618792646412227226205284322135098827721227102354619874337575341429989392079164561665424239244826876597998887042205896925048460782322355389213528513069098273734847351510244359673463797424963661669099033156327193598923347287104711881004306934720275343804472158260833532782317341256134243035697870879556787985086895160216603036268889664394103351300164151638626399393039187829667981100237146360237079317956610218091178430493835089918692067057008266577165448860203677273861925308161189539440105502995276476896618717040254709789120635563071010053103893966320385303057057563778275088554371975014414615728654333310547374266417077618088460869511905708202044911478419616295630945421297345260379407150312934588235736071562624472726162717157235685525091729945486788203451749163263107139506484201940910689373002905948958535505757865621922593116295199338280414278436056003842227339320429173131987264057678394873888877979074991062407182215195028314293210635552630270229388574121476593538807104124158562817279701270349165761701536337962005334178480809711054570061603343234368285455677727311833113579640340257076230136038708506401293570342653105907088686484751004151647618322732879812093231750983825068879768175020080545959932992254652515058865811183110428419262241783280280290350767275543484594263332378210112349840251081449564134807705226013290286612013307091021695705023636090747329979879674149542014738056293375098405735198527659122042467593850175927017083719796811364039704410569232448756504347580550941815806971184318426344528482868758739552582997596092165922217490715085919753937704298319360035954102778496259499291625915411338011358083940206430293737208709685689711550765930631825223439857121961308048397378821824791848245426253362700578254507898211798390244247668318618135172915968906573159923986238528269410769086320265540517885538856865297160186076064703085118354687747197036135331689264941843136529670336694613272400262694870436916289462939104560764725552354194092629937808408923241129379629368332429688618501080903789326783422219984148279143377288576041383604994156745186762770731825297480614037019886147419445864787569510797033914143680929628051781967773039216296650987956401329437797334938705325401750954399309053729805690924695640074176546623258130009080219624057652809755049311344179328899541349878997213987039091655452272534870117474009136339956655575546107142116887410039028463630256194810350463970228448411361892517466403474269394956334061390975139365834629412779736932543462097368024147368118112384699721506332269878362878704841653036907940398615041188904745926937174977392281758021824216153292817772446666688175790787931670784171015221653854440173479916641426288729779649201810749307854997634390851051144126744734624915989237160515557393287082876765654520534539031537031300290778869344236878468767121072418899465346827017560994638370914803741013803129029211434492238605123656034684481860131039934257129911044446418170969164335944103238450577461260873448695321640524668637618654403858800052912470521211428521587929219112908795701083342110628050833298054866996648580602184840288271383524567692706231993558156512181001936165770456483299390436132831450628638753530828404738339825743537564017500904678626464649361612971555969975697927329092689108204659533682540588394021775944830125305344865650657203586303422836347994770072206110995552035235842128683222738039761198073640225540294647394253138563812884246147685345449702599181642161720115902856179328474022754999187874007440385415915021929414358167997538415645823801613899976408767707845271081351135000281751054342715964081348955895738815344769447368729811467413988236104549725445465783777783265336378086046761279469769618619167060118037485777146068689671581413651601990093788210795174977615934029666442166935122401309932638084552197161509455971260625499930533554556984008721658973655448076427374266887816494025170018289793019453913229388595792746349737685057556583592362704826718862996588743606482714202049572214127161936280894080117565791516602692546093587215336157387846198055773161339719578912487583562776123890673534538376477171115876957478768161315703479962591077427788881010558166694592150857361231163101210281321319570537340009575248280928089904602210810957617947256971165737430386179776884946797500749139431965521088654159561899218089809871364639754098580946798431203284491230467897318461495208809210649607283226040706594099427557459117640061690163879469288510982573013710531991687316595603425535652350867451758726370591963176874999404875216439621580217547750575111062176028676301729093611321513650159075844116294261162556492884454247220410192233734133301791999228082129813191892231006052336001751782892955965966688347309108415433903939342048212348254139531681818326726072927822269328164597550365447380303092251723017815875056131931622304786181838924041174987235983269907323640243136414643868571318990345355982601220471672006654646781955080042365493109993840514099833862613992877019608299504326974243034056721800837152900972895358839501501620746758430299606467890422113082237465847860686120067519697575171430336179430134789336091027898974668755824323288075991754840414603243358976528133873770914047770987212315689955880728526584534398893756104777142894683394935868685780804882944287846461412613890510841706435765399142626746296289257889998541671518407633969212712697961692792417029263997341848421740242801330030173874280769379108700418684735370031344907438558568486573913619251287243206444577275067229501384143929821163228611575110276812308114023435183091263483612996987696736430916898255111008524045792038111769061656264685365457873681649455787786440852010440988591224179848254560092797567300339752455293708642154826945921749691969864116832628400522885377689155926806384646459224947085030556753809167922400361434196429210359975269754451747999708656853172877458583234001719054725205921423816652074729966658248984514160549870724485967048634518665563479165997645951342428216270640738652458326657659670156757059704528736742058602045522212674596792260105691070757434321898352462752964436651248477392218937120750772618318160411356972756650055253922470140969724876944091461161222508738616121375013881197960327162831851261178030539025406481440319470379248315714815810242625466898345638678744786032855452644768739410448303382252069470786203795078200481287209525409445374663271467381767948135813344896958238691464751177081853706184053180272224145684066827642468118815607640382584969430087003888123830029177376602483887395125038390990885030894767812005059929266902030587644669248454396975914057795574354028472149334987878101602478686160736866232060069886467751538550337516642733617093265586598383728247962098234624973615040772536996814735555992864133520040872716439541285907287694186484922036774332158618108085779045025661557183509021704818633886543567425319814570159926849482335248471811965863132290014914568038714225136087817738533250754865230164419546016768160134516289510127084852891213912036464314714571282057064231619925510938383102636089374048764826361232051267609111033680189583328881077492888716117244913579723746000774982308403033089108460188551917194475313038326859385622813823827373228231200720732118365665461748324395913632725672192569260310897881732285691763610019133913808839523562735537888932420849635250352680686866532342592568887839626912007454567468396672784969536305147289054406818538450262631913117468782132599499178747543363894908133799416063194536187374087791683677120290670738379556641753213221606213792185119455230356233974225518211681666570352636003873030324275699921673055155728660408452519649564807958715810994174749466115392295572529135894257545033829099300983709514878582946810955055459397862572772625581428339786607474881434134091967608591577498634384234450524033043964305281816084269409849687259211404704558250275627597406290528924769899481981121295634893235603459897987502961864077221853079779552326106730616068096920685956338285087229551453276025752501222210110155630295959464393542081526888662206713651484434685569275498372913782230990348579756803922187898350845580958231563156601206606915779317246615706077166927256428977916574614210208360056114354252211425521559228359250735061469332856457903761842680871932031447073221829967314037565577128076932117880473386503222366675651400998731107846459210229087214142258971179781583925017694262668958855279191454157025879126208523419527364466266176688247421867726947037398110145860686850401291311950122686592674311861356229039971456803389654096262390016023319678187826525427670981027074297739886118552834318622438206984852938379516295067705843118985122310524677420231283904934021075673998053813344190846952148144189017262173300902797379995523748526605486614379865254804205481156162797283514489683005645678723222126176788581310705838056839765108058115874440681955262570659977713030369532748792892960069524348871650827146462913964969769325605793272663405035564429218487275701247966612867997898608095462651793702268231871459976927000417126552501462698231660540894520042415389707978701145185274018653251805842906264289957487947892951964231713833627835813255143883213778913928449168084327919535575291180867899628607569126632634229215565364002575731857794516840629446828700480465706478527284780169945477982058863946464691009234516627325502419011157586098574387320398699958316480315470026810661935814396091359848024866698289692892348600417323450452231200407997494135533813937017836494111791524402285139270382715868991880625900089713839441663084198644461468183817512830678855353071324480659441385693810717657693400613658998616838243170438366425017412626667234173334635129208671305608063406726505187643899605806463708288597554115127260077616691182657227361235648885818266255071517434105848301271403729500994783431879741945351945222260389941380966970044361430701319048249206832169384420136403397645451181425339824333787332228998491938529688083779097633565664670724345309545897396827931835100610540496609934273752642997930089156648106714286403791966785437743787148144928373344803875261192754159654993479157501760873823575574104476481548069450397870016957406554505740700680336386502394911733838991543187968436853232883841396904839247825302245965847815713416659220699310629735870274629522928081940022792513355242089622220693365531997382221473418185888741474596598385907045498534913286162450865225769550221338551905159391344406817821115659377558031884979105021416803270692124868343415013075061322509897191123736303751682609117596631777673128081187407078183213870219900893127427161150680541569784451233188813072374048704934917883202695109389471594281416690964726899918744786786559076078628692207069166816599436536352319950025522504816869380004915311861439556117598742256650414422027595494020448337843698420711823314518671669659972790443508464789020835988311950360760294513871851520951364134399452804692717541964411533902214738260102096193726589320985778480086797762885652407118154041395840650075106773074983190533127372830589663307600509108671631379133900775245737662349229236073836034976699679157232360595441835941822650693893414082764620985484259599297473518295506543979509666214359319515905490627581292798945095582793583166614107096943706330194756894453864350872597617597793291973919401097312383708050751822091881943442416963529792806207826327043607542126746884019098994875189626767600198366074104467509079238576860345872944748213672714120360901866328489518388006978276863027343869298272269945493405176672674446042113216388951070367454962137011902612084099589885059412759639409176735558315906276081550870615759585805467956486168876669115866173283839000159138568639004866191722990573801682415164572920828636768406462535073900819829217017899928374889093369770492548250052371813696664464102864419637938256385643573087878901354121198574228276215699814657475943182368417864121161917712978938257407780213699465489257696991167151173935410257802179639225426820379603576041004637619752852378722526747629785733556179249359178844623926419668198775977596439651347046480809605965190040060907630608694874848803482525101807951035181748883377831375958347850898890471488231812537720030983137629697578816444537324657446256773522202990021756316302704687677642376114500360414180313442213957436704626468552272816413737578736636402811565991874068016649304986473830460381028820074008535331646772111444757795018392978126967267547288930724736663529941359630796599386889117650629581709442217326108720983477861704106521022240925018257419329518635951331725973275564383212004429782528684557904849791230912849253430894541717286540723953333092934343776073623666914337278351007511136602292846569388874034595026633718347691032138762312854156953959984136433631352990460163344672235092614219775238417164854564389170071551277790665923249327599848438542568095841245675078610288924414638229922706022367936555811974600087565056018118514364934788949757799309107006731436123462427855329043638189957732766827433856804329155217933574918349113777807278707263956185400824071705351672760703070562825025828635196558951092978367085833870354511951471267729500903198921648919488127083166561320815296589269160226830317278017116495457113882425951050421958360164110445463637803390438725754595398712026572248419312636933510904910494092388832669333349553423339257246267581421908665177666330605449682663203728820905861905676219312116526269489455644540777885955292163661745069146571595179162307191624881406713956966646552809854533661199490911491159154298856942570935454148609397377087818884186742570801777774225064347834756954060661717564185904096356916573052476440630262129442347091567307486796529386910782914615557196063891076029281717557227577250780786313099745042741684355077348776923527524946459363711634057521063183015744591468679983495149973348883071529458209413246449591604064442798619708015892763648146762023016430116963825965629147940533131341560310402235552153106407536911280204664402275305250819607999506739154227076361194994126623427854135884686312678686697546550285527032092147804050394907866195674938187465830209893527876634690119298110989727435788562358437371200757329845488284765505955456440217824058529715683630009085241636130517512992192596492018604317767624688463482930567562763647053963098788188607695509698628211254936727187060376410670512479290570136735896560877023518097792558687880824002775904082508278625858532703324610870675689456438996551844998218591896975094678259435722869564263063927071922734554622999781984420334856646218447631875872738783276589988800803161857678577765305180073546669745925287150720321002088729475206201340672608320583038902308245085939611226272700103385930986546442222489848244367112829650682845341331612452419782715046246577959570135631369783539941119228093257962893612957923689537214618469913362983167219456457214168889638613276900045614886594273618797471898367783147205465509110484395122631406216571054055728074779888129654048082469793170793117354345910540165704344548193243152852054926291033256343316293553757691963437495614184831893608515325084156164236280079450435171252427635617839635945775677278415873124086348890932874149321214489248095402216046046467079279841319820722529384933876325067732951298857127272015710435580021301729420713857148167879695695918168052081439476868555995691879597762912281603149627664725265770424982705145688271624035462961073051676625957956094586192974418187044799584978103305543159822883235202117363848362674375095642472283539640396915700730933160839700267770758393892263011602131250763241472638754358297963447024866754131220984989330603096523485925684369528133273439360575254860407655659007308228387562816252663154907574758234933789529785684470857819339311777952344360943504407268486379206321926669616860402044433554387001351702405612393493203684804923899623946198327556372694112354444025587528642064721375671711779492147292719989649450916544158043314247661491876611559988572543693112305071904911968416014164374512489926122653098054420140301701945179517101760061861590957896366576874522532757534794051195472425679483354963216607268374810557842607329668512937540082682209036994517299593603359137006442841937000239610427072598161916992568528527445749480957375138239904478344532245896014140976860521905230427955035012837917877311810086668419830324042899984794666698134695786919888140114341112162237686725697988065655518761132614648543037158718796053441739310943540364402695859626079748505567535245410610905540122327072991229572646708995308829127521107520363681421242684554383196010830868466389782114866377464318893660193849974418475814241297139630520473104173210388594986130696356523571922785446943712620974215121526313058518527669266182772115059203542620058751426533994323809092812288231869235311041720252194635460189175082033781440603522525085299170223120293415243040929875430700068760185589280510391658254165237433176685303639648821084487956718332389774423430855484058480441653602482697639489641216722798772990878774217526426817180614966207724770142287221554151970261464320062830757874446229015053547330687736431962090588962933767120920169356556253373494830563250000000962375125282312721979115244305485715063021299226105008735377817261585414704473275508755653678991669492265686805178649019902253247749249928944023835251290796613820297160427188500558799079418498525356622492903968447391251162105474834571718684909545573761605579071919734786276089902930622915573945701668076185567874156172519588846191519357466686682014958485699638124957976150393895662676370033747618870539574726552127592286194210889051021322621295935385526057153467424358687044666653972398701162080898587108408280372453011762873679940465050895998129092646821878266156455138167602718886761206780940613493430634294735824042231919070562051892784156914025172784126808121252237992360170710502944115513037135540297709901745173531701952017335791562876931454111567342107543348186074912619209866759252929069889663244401566284261555006569180106329727494731151726792820625567096058318518545761166279806766946219317508029601924889879406168171234614794709233940190538924254285572095254823966045130028095337459546679659647819812471028132949152008155921779135366236124239987876119402660169610401797749784468931833556788397082289862996720951125981569991319115878843342052510070334406129539879926081839604663332784386877866132131766364101724445414278070466837061291719679913767379800784023112026908659317124732940488012154674881939281125206905828272315148426079594278878498081559171688777568519281829563597814424462879149984521866706214226625388384522734406328986216553241649838607215749820232935172603372289723660782165813441279520322250891482383247018249043652171104471472489260434490178044065875538758530315735806652046092834861598957511401956599064905084837464269348973090712945443277020418806927151640776721099343800469725860125621902475599122443050593578166525502002149522367164705959754312871663052002802416279193600362238235917572133740160687925086629166657089445386855116718649459806490478970090334261908208651956726129459653975659346047879827383048565823932882761488272064652026036180082872895885848143410483162848698910364490795416655557377492928477373061843629102421309041635003695820730242687317148534312851200119441733270557797837720164037076152476433944778303804474269017327278792986092766445214096417364387916222596953700209799548757717206199911152959010570852841347609105529279888517347720241065671048685678381070366375510003317168787308957434979889914119288298338347699466242923234700873137431549078101140153888223054942028795749094038354648134322396035277643441639408097971336917325881921280518278762310400144795945549307515466325073603500836183637662408958699076717478698151113169833288695655239607916307724001601929626025955262830663670316204481765329199053130108257176580803165569117773559815575346756323734016746179144031317045886998195174428550981224034263749456651976637278149821188362998404248310290058557018670328206391120907434112544377854380808699088171565193970420369733759653742539392399290383046334505505566752332690731819804074618530077859839060688684351274694911554181868565490883369158934932897207461133915194807749034702313285048725928095995568420497609488983234398281025749215789535181112902936579948129888518761639338504545701082811772238809665019756649026138964979840057398973868423867298941564858823821882426359657424084819429580433783949086063644619936785176264094782862129181537870156622689965953435982596925670701046786576509988528366063223984209632574209724287748013075142164435655973699878731550359035353721042888460458806822402645815415580116928089695654831779937268063607330926087223219675631275137840024137525086174747234311316519315429209149855046788516134959756454936166679383168288778303563522408387123024677795942272316930435416450092055190665692835277638682802038216777260270226743214682623850186529317317715888660301404944241711962469348756740957066608807553666818242133094814772721197290053114279187772427642841719391403656563512497131670826221364263112764016767237153511249362071797230558943148719821897243183760695366189209231296262023470671593397415908084067800336157656962554199225706228930140355545544945553075203919390115319455039327531659897225357059909953306196197386522831700912236317254646469946654277817392151151291167169594431272913430398560141938353651999600054674893586619275980145414245528953747724680674331642728762961304023164219824631915673572189945030911950817386072802294541069306521538698528026409727245992434954713899049900436573380237342929710784932244867428897630683221196555781683077045805681867708832171362204898070843179686900437143790048166540440215055716175135435766941637999328554982074550638307303503966894687688360050579862828174026342598597431800581335236511714894886765447382968525889016808408038188853317973666941238055007322471833196691481126642924720763375990980989814478010939067066192226718706782214327461566075955827248098920817670292556580630984591687328508851263587470909336720565848034164080170910038908222387593494816747668005010434986572226588130597215527497897796838326941891119342873065299998874878359984256572748793972298264136141253009233992090637613483305143157742280392735045739791645170250847765238120012344135979589118498268440234306197693640793414160824830361707524980095094738083507169852285592426919732820792655263103299929593231317137387622172874666658422057082605845723553382630260994292279874349041029517269263522821890165058320822497564978607559520655669365354102819913706534151373696105699727422922691210211366574022189056503472021896824590951323387495686768890143342179065281294440401163890998247151387349771458539466425594570900077622440776570254849990745709845373557409170178533637076820078903742848714881426054920276355800182113156668808735367493161616871438638281423783483449712784997757349058904179315561235734130818936401536729073168583776176342670618979107437263899053889477523308753381248190727442425101774530644628861717822444660360138123086219070016573061308673021104846914262786018933142958736914418311125608403004385019816110260135815828503471399713079147439443038498880475662714383021894854830335522044587297094622874372109693110793348186056518577744166354267902322252501614797879364190100462530609619190667853332284294170755529313914196463689399628199115208090733455389753601952123414119459105280683819896538757944705557587355785287492409951579210546983416528934919655194783524436770143016892674655736044477625377121940827383664704851516729459341862431487337084498371082425896391618675856213897613883713066134438813804457482621358643329786932249311688446306376111780516429933467282099623691284864770270050020340757177839574416181158711111659009603587166040622184824759937306302998213967907848907458929735267858477216100587774416857258631062922752337228194133884346368533150037027455247655901011725801537940230689811811131901020247701410123410063304831792925191076467831163264138801890487713386577032209490344153526455251219683469307096962008070151689917803481183981400848941658713792981526751814789000746669825846030186224697102787744618259640177064350603353627035799641556751179513699182574379401798445195719088015858796019135502864047342805286145364059333981770815444069169248854172836998277562802254080927582032669350229802902897310340240462268686642315316067728198742043327763756009096526611278960538757698320347343506559365694496764148317768099724831996607394978293365899032631513362586726267082085784222510725552009507049762263357797529809426281793693275388673837517615256061946033890664946225995205668774031076133596633289357900568500670591142313489882806115392974261456593955525580262666834936548935014749171535339089005056362804667142466030473699172179284358967792762932865347225795742913337884519932341995383603587300981063143762863414847495137066306133532805329140548858210208153410356514211965485961353904835712296187323374255832297704888044112944399220511278811080935797905394546655706799169619519120117296099567715505674908055522459669273121580797208015888208666367042197284647992688514372106386911702596122477399334489345307844644405019090815943696859201048306811261187478188919895369844851898937041030275085048958566013817188466586780928033092235210225544900685405096443765531031594697521886501078700085778761300819425043943628963910579618031933693328346265503393947015430041020467502521647483554770556182310938905168089377504025653820062233036628394003024771032155473138419971061039607171345270105080882311160493078036231943823578265726495227774249858968465700573095153022852475709838002826275748492512085402864955115719241487543916490106021509809467330032045574737566265064856570897353516403836919021968349304636469397156649973013249361865575167561178128920762130523201185184784294095222514648446184485174395301050463601861662146742922122177160148075899171341659626632036725340910021541629849539719897324984276523319514431444913861157064538630517442795324605950798755650472186803885782667559300291833083032533685557967039245416673422363837927622623051049404938493170529673219141588085468427658887188269555255285117321379880895842538208996242170909130922723828527864761909886841702070628240231476981152741368495623308920997610154118685792478602744748033523588082255468283412116032828675391014271897511247204661335768885351141055288227644901744942064941739661254768325880399047973477670012076830336234358720609655228389602744696037394503518186212037417700968811487439379566790257825814433090882547704838019835006937339938776100864096709127729543538091407471144583544526588220154150263497627083844211788240706239701768371060627055978690909305969770283617962905452346900616986950557088973080810814768432637404442123955495672783009844345138037662691607036197806564269240985350634906943305115073490109866263595300876450156054147665031629331674265621609144368387705614347424044093428206961082172068302105649863058676251386177596142310239740319210575658148844625728707281628982703760307281977425616772773483976726927784532224441487278428309843649560080384795459630352273655614213786315114129865083116771121396590518867944823725531927974365596642064697937509712737292205612310909588316116633875318120315551687589901989530926200606417806389401485088131058464555955859541749641806880173998023916301733855781571468058641002700197952904599821333909116387181305481867952271652998470645003892872607800500820827132782107900247150642713411681279060819149778245042283611819323484580302981207975060555121617510792580729677397061515106738068307112258937440300834210222524780563980667133289801353466551362337442382317751421445214133529018430503383771784025717026292949384383724008187605394375177609031691384168385783213167391016540570941013969245045609137194589524821351378080399811799407774052720350056168189310639393855909067877127782541414487617178903230064784499326152181438053111299902438155986827822697179399901639291745677447005689303721995286135158998648182507150410278884168012922029181013614955184957952651389788274610970032595370924652115485901115227435804824850211576977016096446776908354972395136139744089868967598385845086644204996059157255711095730443080941361975215771837834526901438401425350547879648825512090018923375934834435526233179452163480486864122748776341370768853252260299636549820846775074056454911129348940167039260546784517937325214870845959300915404770213384766452079809479613630080969290675758684771069981949202106822267437510562844012900065830278059472146346671139561016260909649194537237515417073518969717911387081526306871353380912873845786980126422509751895882237532736526005306787628259317903318759217241258624834598176924296573430305527229019712802066797082790759550655274842897452333145710166386979872855718015521799145757954174180015891832999064846900751838049313376576450705703131239989343418235248664959533031110160424059841142830690109884223678930172707930489657156869378866505744122264272829789557455870880023766743023148102052346056926202924475190569374840607517769338352684691035658365596597100668791201411518046811859123139751029255365707666147225781652735807130891058002129482657196005376121528066132483499371094253327808204151498280604647181622091362972578187985105218337068613541657794535281906944897442847967050875293801489976699703006276589728352435892768653464902905469904245783088341694020359078494529631573423559228552898926382792867778465732547915668770423023225252159262043357655965438916550401021035244811695337738695104107947279539696390879280129963559752065312297123584801700592316590157170525628279303202209785695211019434337571827457672424877909202616737381937127142495611272993887718564678061618590242076688927195651064567487436013358745405530341408922856143499683370135649291618218884062296384245618273343714164169570048584797612738613077711899411543503817410984375086197332220098305794430141800444362528610924847406202995542755126556050096958746088558611611964407781615196561643772903576699838118557356114071863302037111180581636688900379914933888938610593848489300668482239395706133103722964155842193827665020227420801239836418922065892440520375905757096490989095675290739072035467645636978576922948410706510105004866466086511085754154409457650533174149248389547885618979805983507365381352371432626885856840864168479114648400946105010189372375773306960197382902227500907344838394483980713961558194059681117051549967988053030258013294104375846582959045848949764514795292465054316954619463550915372741622783039185468812082457652149403145538771800644466509256044059329184761896399540481010769865691746674896737193275150876888009819473284924084825435965292511596057689367596848977559472753994014107730657509961391845729428984104938170009127137055835395292961387242799497244547393781569803893225785493155012293908354776812663830420869345053891276431756733016408955071122151676081874080126703388965204155224340582938016002027455190393027479054203566049031701809802282199466520071893135313148160900495301632476394651673553376412045369853121524199318076194700662758663363764113321239467969137469678617320295600524751155109568989533116270165000976342559035304064994411656576611556954358619155326392164320020793281815434219671108280245813946156552260675588973745181433159452130437261676403951257074393032813149710825806427215387612876292734889402057097382868720446318257893566638249616385643477651159506653798455874729862525053347454263017221610912062402461896449714912572219799699402224971804923422922321120179625161724428814509555718731711463749745831407188341318514371163200178800111864373564548768540233418545290859693540945900753539723949581526652433589809424825830441875031936618810423736096884677593387661903670789610598593932738668293830177828782816116753672926973500022279803002550173861484712216155727657488003681626266168330297410262428359074636554139002766843015802482160226355406455756011048284014932042522535463142599285487590899611432297552116561348893721464035668571554753553512016558650558896000769045219119643561111708482205313289845991538613751469805978873252447099693895956399613186616424442398814154400807232993278597509836997161540018151531937762962092170839517035497766881259856841689851380524754771549440947818772429759396083927761127187368716700712842312340497294819711991751876248591391447102933925533382427441941333386330019877903878859101525356108539266664151174078217055309148973846887009792448144197639489238223432395685098488894771086884465179702883637424189143802572076517531175179147301342304859004074749395467499958092979051900569282814778035184180580415289583406511601127878580738042442924589602968923779646442555434441388741957627604226668436282263725393826914410763772251390490231894025897170326332809905912597979432949471064208222509866557807957325971543681045158392489915066526049878537843453133860235397625709444595233901835364741896996091136856956094480200873404904879335889738468957942281457960534712152131017382628196331386520350240561026611667427308849184786149372068759734159683412064484995249126209295785259196477572523501115174058255156518014248417744656412928492698113229074380611107674320778111520606725634114007012682798146185672710968179842066813222660943084023052951007857166534311241536100076759525982878577335184935239493720544699670804641015295465278062640266253808726109339068748214045578714068379638660245410035687192162233274386997437646621275626132391711824697614706832672968487147889914777516417376933055596876487351864310362352963146989304176673290239441957406355980934283927931948035127289722419139337335722850864627887175049405665173769722538054056477368647279563010834958325704353999697596627419765903571875720233642615858516004454740205738669091392078840798897224632653440807063890998651992384458817889034097856106838719335840402400120526837299503937671371442146406186310146929268203646652530083111486360973948370321609412251430935913465281124235935035813248990460965082870132500014467797018500900742699622753892248307639928785034936906369884461968189089828582428966744515207180200952303332462498633183727272045838625341218172467476533536110359620536589731658331265942237960876339135180223123575546087519123410297499813331023988141570096395170725284410149686365396995770998893874652048139192951348830548916936217077950874218148915731939929822763086893943664914751466227457647548983552125630502448428873626444060438876269965638265719099169742842239656431097449934558024068535847317838469286693890898483247324940251836989157431952294297413769364386314243433138612534759781667788306421202856586126229109605501197026287243832278998900507029758307350235454672367556183325671581076010047373213062125323659396142737464941898754782424959431940135130907056654027599997105860411395489147932339771203178289151171096249976597651877833864709079188070267896745845145361450255575148131986135207743123922526155654128770195642844657662453969711257965716627529176505931161032438347733273153555380457271781230282254821540252905515101437796008587092513819490423375013511573043491706498769630169406704409778092647595917644030287877862027896290841157483770866407580463630194285386297042523793549018777216547763936585968810207516471611995629637319338528551553207189706008945701415623195271883998190638787411673330835595208830751163762943436225522596997539535251173043099351245660816595297091205509154145901521101046631581718907481584658117727806388008513013054966567447291031113189127234431619770835149338091150676306793997507932411737716266277033483562019701241165470380203983077273100074840653500726412078913716363635179663432270141690026163151934287785149031862656887278205426262415325135987291545761995761289044204374004942582123911992809223775015198805680245640115391816074520912598293379889712933055884833112684150488100378990982345629217003852668859546897824473202454247489938139179396506652411909785885688226558627534783056511592178806421126794406732078551060619809388669025681925879419465640611466699959053104742010641781005757100903955591454912478837878413410839686199661858957047189149004842111255179766027587927615631477958884459101992603917226116231133091865946628505246314967601809555739524162974590043764085422425043155723722696091514126062279979968534447402517214383606514311660902029160752387449261073076385765555608089629466919016063889971426286955564318203831120863029168765465983640997777665492005365365443558019993878992723377298880497290720667238361776124171131437057167693095179762372733946626200297704824033108640364523890705791769055316112961676613672043304708945692576247223567875732493895171802102608704452587811630437301929038934439394105023210845012472090163417848681784426893989579304509294197934678725111587465060197014596182290847019289116470811309575910693257316719935235427881432305751851972554701170665117218832405883371669429819853068689042999632564192305639343340782220953062035784361791095690538220319234979071071925980587526711633192308273993842976559184763069663839004646684206668377344849859859280701965643073814885510011933485378566472279554779727914599381712371287285069822386386657996748250534362042840359491980606658376838875365726187791888237638927208172558943774148672340169132928900153055980815453482572648846068158288090521005573125473462096901405028271308029252034117082951962783039836857857130927345534357428745266591236546472446332878714445924076526174621722202416516485980276355949969472639324337527118032190328152646810017570296682734903330598004690920427983457878064332387341430614793208926803897834590685899599306527645776089910440201660022861831752130056950045736819663944357753515959816882537732257710590039915479854839042785121424088515124380375587136199878833138185655805917422177511710048552623389516486429141435693361675847396099223540366223078499301222188069487860122632983045151677788241013767152395620995226793574140909016537518759761096817201759126797603141944693264326369236479947504526717863247128893906887660447053065868081239699025115184407478278592936078899708075238851340332965635677805574092799277190754194920666761394874753510104576478794197511578436568421932145303330844017900088251512415330016017684734822697214646776776281089055040350451597731139962511041599706083662079169001085590499267278143537550841999023110866272622291131973628882287203853560385928731531166218746844981626593372104456693527432943060468303949196105058616695239202429917812311918234573819625057631937337958201157920532023691102774402062170152293708117076750051364756630278375362088753768433838889295881104392252899191976235256838694394735450066456959687653219624298613885251067774883089761005660823712434493911596751152175259970637292890877895276408689932430504209373900940040070043039103239588362403883657139666704929788284498768539215346837332736127376809515252428836966396338777508363611037872040969765004134184696012285055621930712664200869332840425114302883182412414989273291456175657309873911643357062179027395621829199681176583089017656999531071237449418161980945131466098437451369293502106699360117921848894856355109764588354508969397300136167030628995441749887351368300932511509280476306977663398478672285071722627115609408737390893153139759780114814499591777742686735262986940007196775659684935526061785068096590649686493341844092496135744308800361400098251244136674771122554204725976062153496657806987455495887418567016667021663388004611878964610734924389794210986192871573152542235800612469843105589693245778105254356457371113554171316111169158422074114451511985253526200737062051406395045584127844853789250447050464683858254794282991666907483427805108823045030534651078933404626982996959060243013181470833649248958589961061516714169182660968247508618437160833529246076970444351642962950798429054049128541168314669395616215885419866029252588639171956427339370517808252974932472641098652560436771848668953466473134639447493538427952628587776849391945524297841388305756020663349155732169664595050717579197189597557939303193134503112928308109902126945939419596764452747642574093447528681879132987821240520043610838428027799459647169393678476704170135792229351028052629928983995553763565426624992461624140964478747340550828738368752422797196931235033474006280355037796189276011557826618071708423513780976905634200226926685822439752772521621928713049616228935446826079528341282888339927565336657607277042395023445078644180059871183358443678603964447540626935409914667283354352618791463472705647395704312038827578682075954046910817786840659321725051749032424306805164270272018313336723176230522944658278907237638449676420126496029281093529021450387418446460264443629053196767204982293600278510025012971862019818105425624777316486212722455239552069324601692417811079491132845509330148320094506881567723441494825962680787833629025448301296375952259072450529127886523605386813246761109409100328502608909234959014504911367980905421902945016253413875773991274693704340990756560344879463316019555465951685340537105335292273222662490511177317218143383967533132672331483779932622554521303577003935832206117508529691337269507676962373327139112136101427113102350053910469761347224336994340610675470017950895044375905694644539420786056806197596933846045659488929073224662506709101626107541060253607607931316074970576253195676627951327641171758362158361581493805648970100670859919784172600558696185928212899824708212195883059442087000000346880951115439975797006670399315276310166552269523239202919616268869184515989218006522272815426810981593060910594995768022615967599296372636526588796902138178842965379888170475979028354738144183526516460361526688664559415035167551526261189501055408379364674545306458380154962195195394328534305524570136065643586122913618946233244141748290792068793725994549100904819797545827947639689931764960003980389407279192557032210340693973355837071234008200864890562841318668441488992420716451269600084541890097072964560768367300365844243889530058313248311178920003856621559362969479967423949544172309629712343869978181893935535379430370468555303569555278146606887430477499524103403165913839004345376775191666301167847270103120518838021115404225314698228448577701286755075576101351648364386658136603548112722102141131045500940797201786112098155370598840610184453507471571022502911052851869778198011873331658128774357437263272151508987518483881595224904647039088129558159446375145488415741589097647205997448687953367407749416857343223326454319798354251883219462491294551774131858546556549610654245461533011674766207496293586974279120708421428389444085270199481345844883300380375969443598033714723659248891713965367558451433226158504259651565687799608370466546039687164871379983197338085662841084220821097829113457970914683113491653992639970883679633383317313818145190681619526497210362721718569180418122863080849370303318619228055857930708839722333586679747192183584884200481625907186561245670117679609269786803725542048908579827678882424585974756482126382253735463250705555143386104275377630729063872461084265449309390420925354660131915240099276713660047501650832320015363802129183834910421266674178504820078702205394288478716284576023780502076874527755693224009446617131710753113893410666438540670010794550380168736483048446826973361899112587001791531837599459808958617707028046171165217357155615634195329530526903389359746202597612143551681767108757177183415975549308921905409927957884463662483860168538652592605568471342369031041523974066773781567263461061368218114414238074586917659359527838036694107192162059126955189066672555524981769290115537851065809337956519387086013009414225677815550589561360819897026400310633370800740039029121183752436102152269194788880819747989199596149358583976083332022802336164046363029015764247158384393261286514328897345212868773884086164437475466319965338791576553839062517005978130633365823605523020525515296966131506855740119133771832088591463194340842704053018916400750105367119485548330982905061891650524711788414006086014496005354189661649918027251624146943499228604505925007566858373888409987243010726371674658724336133092002313915697492265002808134221324407253804871170492724150170695473953179978144318303647016839233971239172761275141239432488881362551321049788199994214193181906264391564034192073218441372799645685762890069944354825559152703041742266095263957289286991993769339539214743770221756470829800964617157301319401482980008440038763055309759068365319540201094284664451410675301672759420775681100031885086555662091536433340711039423752403748933153502723172024270904165815600079904659219570908132019165882647466352298912903471121148827596393029516777821742177173613532191246608447505987958746472550239104548115068422810407901777896871110082433107445002005034932390824709714475955497889321741996751530374987588973036712435536275284719354431900329903803416897542866483426103468035127954381168147502778779490953673543800312069171684862891886654228675347973445802864064920484350934948926234413985791780901553679028852423302968323751538264432111636095855518329296206690642001009139469197311408988719563968964455485964172544286402629306631573258468390182082598642990330500645620476523471192696182650721904970937590225959761349594372168159605710092630691981804406308346812010638412026129280844831090104206885537024327402740485549739621287551206175234792253202954970103161349377023517093504265856496859879359249687550506022177848489795139278805020520693541238149729022324644976385219774619029593143106671648243850303877096800583531883615468570769861866691975342355800101000672435861874741362382691642137246390703896579956493163146832809868397521466422108770690244694994709168081120511008993828241702023428420198755970020489932371305047467668436613696216066790815672699453421484902241451944390958372654019272670486497400287376115677643825491182769748034241024080006215760035803983873398864228995262790789749228546524242851791888801782742135933528969898123155493336599576940348533321348789098603479796721178877636860464972219275786617036691466890920861151443810513756538802694472422708552978689970587303620071354748571459832790137395723208988365580326009563934158916419669852067356049196215532642935175265481525938216975849790969233594453584280180995230661531161431809652873545486893827931814653909156051725088555451592959251751289118912363406876021926679976932006842260142861139949860265404000558807076867894241213677602407043743209452039677830691227216520497254801875864811000386078684323218482962929422820919927487640231293428660571253683960214271400148708402741961909128837936771108433371014430807026964276755104815411657216547455447110471167440483454405049901880198863523702620387450520138682199591978896227500021602341757214248586141741208237538291593077556992293272804363659179338681730252039152610721329272202023251598362719609697768508388979397872778775792570661236460900477334693946375417644262514134552767190524835853238472725394220867474531975763035800208857127757982898465704900168297992331592508399891647440445001047162548031029712650494661924193306236083002988557298315031305391129350876963538779097041415117009900314372763021164376968702279042196955429229350045594928382018075481950613243419849402568855868480508272841167907225764908809170797572752211660660851009543226616935946086163007069261949456564314171318002630045022799572162565184234994930151257097130124652495373016691781283658079320573526821339453716104208620139809523094173651719306668208698877431922889683534632126174686709519925203680221644569255923228328158821319554467287182379439568878174873933119735460445200421863743854339295372020605115590150760959387801141938174784803664969547924312624129155609388643599748470564360638106236509985740160393393137877108086250548300558055873582047136365677083668022476123109130840679410544674599217176131923593138413020333897510165025089680026039050125097461351588088754328871043898636744233613826914062817818936601112672765345784028333288384065352040560654981261481125149126937938415584200786862047420264710297763996264087181946295327708457016230740076948647193838831606869878128530461757592508200057364838384534905220867580036824215369833274474741658124874800442743815416868373259709780083957042561283225582805092901616575280971002282723165695593783357016146460745254111891583241573413023321429664716404252940253815080401366039894273435706139281378480778238063788550752380112307762445975460861404255355804958218267911465400752905477046150048590634661249078249360664785105572237145089440765748713768779264386670159134118640981640071225140328168496792424224677156786344551607199193142877227400771426840094592215513358917999616885880087803708434475739612215193939719289837188615310195206373110005387616299719491073112295004677920732819889616705853710559378765053968942292604581725546835398084073827158208847476614004274797369403120250120100275218214622030585439092950099676087827809070450747104439428681129465813190008353321957660559377857401958897428719744220326880821001473053805116941788075741886988082891095377389428134517374876697563120507097922987010579416718351782377829563163118078267177871027718939452708467131432596489824424977538328026406049386784376338371867190835663789520814358314163396140139724402512891327536349836791320869963623419009927011606500574195453236747901225845816496627104801013725532048269337261298384638129929221849316192472797783866916638133682752516038018452000213765139663938804593362399362280020225292517792512498891640767064012397709753959112363316033514644405313277272382285006390059900184124266737413246266530931494976879272625035878864733438856857251687054107740772321488968929150023852532202404562590324408762116483147184974687109653811218637316531686279189729030190116795291144135632935972579528628390252357461404288795686804219504608958457584310290304475858212693247438009887092765549256362410559923579469481028145306445981829120028520383176607583947004699158325874441857444970271379393785497094264197772478185319278804142476562839205408031416638739635954636733887563356684511633833854565058147568561701758027306182283436290368805676230022430435030218799710999697008678341808823925630948316931522594020426651522508029323362074895571435106819413916559149672378326825260812195614841347080220587044754654802707315888037560877273229451432723696769919754716669209202314689552003470682664328045583616006324851665232721765460520168010029903234447886364713825264094071958510377217084244782376683466649108737519121437770825949716209100487512189859597069261241159597963753264994309476179574658864920010963328166530680365968541166789585361184048941112902397272026282627468849402978337481144742537619702318996176705962060210733630490289840616905573389423006506766907469496973300559733388298996779732131781617194262525109765149989783677188861428246109885574060501795664784238243035637550679354835936205130078612693494896703675597406345074884672595787718508401398797397647731749247540393075235693198577162475686832655968061220329080606936597225402827164350987014012295597545585826370481898209790339513784964696582209583014910817437515283951522927058683912464921574875928114696974130833648822388961313798507400182314828237945386260682841081125277017066158972683678265991830731123359101084630103834580828337040106737651577186600225802979916575082233244518412638503694445206779130716834818325767117944304499292143323552977146916895193302113690664557270786805910069058321420722021414671912828432573653517092082674390873174493204016966197128896870711454227549183168488770980857703580591791278164608707990779988388628002440400052887570665745430986213688224429732319786627144028744257349875741450977383767384151340535988404823170489189746111384549564178669886265712150265261511165913443386461622625143962082537945522389587701244218393344708364071347688280997987251979224307197173608387967230368837057937938442269394809894965748415532424129257223319694613303055738079079357871749739309026497867900739311222042073761524717588920443648404133588228334818827985745534612512731057420951616184949267313524512072590571964208743081967531733844040754807172267938328265460303472097629092601862800480207558660207768147976553020646847033302472139717434012041159631106713433026012231314197588924861167674979772132366565488321481677608559996613795108128687785941127227442184154189256066355658671624375223103228425788244966991491735499959382878681217162573615894416310503803572679594438466339439536076943017379578101032563927480330462610688067347822591394796075447654674166039365092237970180276133867864457064591159168325996978043007276567964707586772855161252744392092207705070575118856287233056323548922406637210522855258592895591997687349658359898004403521481010755072577010135279240210817812749860244666518415403215301796193542709980481641318521710695636559526620397593581413627083234631838794533410654150288094281249840401310628030523939811283320139527483538050321904662373371306111573663551021860075911398439753986276498294200728009104703053118575038891550969903458110975629151035043150593371120949859651360226172906704791098146920445546980231303531720807348682359008655122097656113385459404196720089686154710097034931280041650410191297870868079656749137828069113760256994441872830702959015071725186939063008426618756434675809012513449526542431266819842213699558779433589324689273895949671589734679957872364170549686131107286331282725976309034520135388935945745105141189999508043268640843969650117097968401699011051993174283923726921500807003501068815448138167641913710053807814646514002836691874171394429884669422377464120912707482705627674635593719810987159089463558737351542616566016184926264850931462806204592013397677667327835881812009631821846215738636666837831718625443200886066630756503195401902229293863414452867262275974682211696109411479809664283769199561438329732089560246645591270741887264431816285299693507700801018467116365354130932225561767052505570277856051686684886286261680617475404989112433541217346584977820391497198672900057222440512388048117496620102459552192430815830533340938691340969632949728108785938265790404794897554750540502187993361471617302956239741154659979120377973608666689286042658624817417275774729729189814735067456853163423733342170272858229965264998908158974346663506088664813670952331136510126912230461137199115704296992784368856527178105420418671679520828896773513261841086357556378604951130901338101187337137648221448263581183496925029201841759578937604526362394971755995620615542263258507986816584103794977704353084928834229182650596861445740413697841019582223112362733516484058414449646958903731264270818615545322252032112493597375813546877837241966422380340748299768622670652987116624963431495256019459115515027877026133070924186828954325675905686954866211949949161636972419565841149080281268525248506370909015592172391661657002890336247623546803190821680376001875428405445256661437499536111187942060147208719079593452526863230047245187204863670881876676852487694716521845717036239853653738178072918712432935083427815837371384469750142948565218628054092200883900012419457518632264329434693702529211920964426807702222039002085474889016985642257990582312386232163365091058191459618250235242884858999612333913520960039856255867920317447650126200955270555347761026564463557598046429636469972725041086857038858304337414959414229812060685449817988548052604822853003629346456277644100951517528023121566299867888901384913400918326821751050947935587628043540616868329642368887141174840116018128677408933075722799643796346219945490103996394193443359931308658852620637501636082956164736843977091018029542958262575701805322728593244952538962712342900979893794940668613508493221236992891570263586034358565613241461031137671216382143750629579061291614108507827643399609097392272821348310498018340547615604979760205892794427512940243112224805597078740842937586501013746162951419337095238659437381188384638209801578458482534504574055905329411877593853160675163165596029923474207722739367947356202112726757931397857291898192984889643968938495039156324531366667640888208514032198581419943453423285800916599633253135459719821935574594072364519038843019703050840535421917429629472081058433317765738300854725516996334914177108896209914959342565904401122128354376475199571477294315033765857518802411162512431838291915385291830888281201917418079658393232470465747894813145134644699711887117704873473675466151271663282049234946196488477275733384913328511715934898891116311672396306488159133821447620926306389888279589262546889099152149272756782856274779007198626589458950565131926837627067995413292896367757650215414510394162041029149596835844109152543544846608758156479624477898491561411997479129123472600212498816989704165401113886701739321728624595471237125234436385407525698708107733931237826531368179392827638630678883537533380212502310269500760726192651876747368593477020948570057012166522982397525764465411199538702824996417983715211372404494332580290541477013542698779984849613490775749207971743915221998673917385222021160031663566673334168247365778725675860001324892328978653972085777386228374791736377669966629746844301629352295001556020299731385735736362986487503705313961493455473603735059497207382039771168031279300877104080631993978461971261680548824770755913577547103785378423077898241915208308729211675122149725629450114904293590803556108124870209075156088056840062916802623238295684909900812198210304136003623886497691767959732352466711559264329751842902677501344112284280251638714623836885119335709909879220802700000110142979434698832234851640130095555422933721317594586647138485701010449975739989319150385678793403646297030840855583770912325824550210731531040207775885472190796125972762500800032723824477545952691802677082432054608434505829870376153134596479381684872247942425184433758132687094504818736978020430935221524116559539076411612402788056330256787178365905025730381047909468532706202938682689596622802805474399847061292028907080910163107671290057001600284552267371642312690181402857173281057347333132780784520779982622808240006821669587683992172451119412795879853510068917309704076145398571463853177152380880173672768272334051189084720027164339837259934190380432013824718670146253050607285746019207906581369836976037688614938115601789160035273776549727689909529905209604463489923678105173092229262442199538629562249977165084642296489211833416836767392876726752326295832484802934580956716739897470436941599494367322757258285576946753716581406995763594610439386377706013584802716494641801452509649753073881599375438648490176283773490685456359549379001534870219672159581295426915265220843957486402341476260266680873010999015603539702719732271960476389150110543605798288107650859154200830790864440006485185877725467745186020474265725463289436201137636405785705155314001124001245682960359229423447619453598834495311746847562897962366610216979415622562016890016149281124677434715548124603617020119771665626932862849133375237972311522761349269974782906907835874800389370319086102976372912145407496655442426958321748248007226219279354453351681572069561640298381066417796041842096748060638718410414588739338678619420125864192106070056108214642043993974679314627939956011782382340955684893056685829029786631044067364076692470996457790387966496118856858777472665181124059235227276767369920934126868439353895246012500149204174239171508831264115401181852620288675344869707110791171846901742273682766977855661490427275057178594060059672166194426761148917877720326175030777250372424327907599778260393232038213626743447298315967520559880896543324289817601091319581536446313039122002718342732194653722232448452755436188767717234773087870296311533328468980226688755568461919530136927846131913461691202004079087911923417571623657231239514468545815267192069124914263869224611217757666228435786437090181160090239464585643313679126510194361097417807055231560683782300687138979673425279716609182225945948991847703070160953920440412115701726134542578252579340971417776788951663180369578927563742675891856997080014234431866517821980052736633390722086975725632026722810952159734919343382249743694117955500851420091965887025121248617472792136640247424934759484862148584786816877095110065365388490742596759336224388988113405144971649933300390357980796977640613909117441937827408431765815039117819884388188573874637636801354712901271173160758797100270038541268552430356741988328101003173986004306718892102074062990900596298330077615472016848861310220506974306518679933144961709209230860273456223407380965533276045479736367019224521449530661122065259711901657091222072140999421925930684227105110274901473043757848418255869877414567935293919162341430445214486080520820105951721021418962376223176046004916368568810989659194225362672044145086728821319198711892739381148840317327839769983653348075289812446970529981974549137506751611481560757323482516202915223295096752002580539269934283522101304219432016855613539435131753953409505289845698935032579586573960975560565689398383916178911854792066928033414758995525032364465741621246401853516942839788921048744609958338410509518113941453775296286082561662960437921286516444482845044444216581357836377649084610139162559634705892485262479956776353278347007952590443806987499690990000842010734683756686173262598286229965664490653481113391076432286265736909652506723159008456949568260839460861487152636134718333201681998898441887645955048572056019122644043378107761782214594348834657628034935135538839950796747137688224808301369281515525094306023168775399063349302252308539869483902430501916732395643413176990572425305131351540465206549517100801725017086979688417880772512123424258194811813051036001994118126899491613066693981490995814235680275570595645332262780107132836362701413512759626711482572067290043200430621383148497783550724222072998936153165027444444036218911222929474046460277424343042405361545993111603372268632649876110393858727007518478459650765833552339072317046315644815083192256453940871746788367021529358484869049245996877258452321664664576261682306211166776334103883624663419705484735352744305138455104181521973060248191991760653680996150214390123195667426116074701350365289515798102705414790034945660390202423431553995469937839663385848174431023782425739733935431408259695604946244799183377311647060712829565764817764208488349812923180256068768419243434234366014922258373654614295552557257366984458581463569732266831536175697935980707201276830819052648532419946844717658435429190608077113072425132287979505973652279981497653313789307460775242203599412792147461824580293793865832441190653690269436782802148429745753897383101012524636009881706152069039968984263116475227338303079254637427578966192018548350873477258946860526134994480070663492206623087853693990609618255848695444079772352404870428412439260632262839967684954505007312764955904805000414374348175959040774902064306777582126162051563287339425069541053888432184605199521761043328921462410120447303241121361832566604245354103761973721874994728399056359477688526392573450400509954649876031765864771274409353367885324623315488582438115684127435600472127559542806827454131422469839554549994969003981416747172776779810250166194551515492083790338133299500829063618399820299166645566542571560491877138146123891604828606665713874165306850001706453377170334386885869906538096040166453634784377090896785423172286975451279015988875941109559463426861866610451183308963924119571466750000091634141842221683386492413153012069920335291481023442708830655234205927709614797393151367183018526102132639719337131909469082751284429288684051807647041648026336417640974723604861740760433841151210474433417479664892110423840228065505553396651019814300060423123785658202030668875452500032322252093463432603283531931101212372693512992360449979205422518536400970489160098680243391827715171057176856280299229437414604810213564560838446363160922873185491749562127392818248083031810571633725046625792507253413544188821756484508719519659819787246241833711299626920164466002185491276531101923188698101051824576472453312452278422921776813978351436751271727293259091462996072546035343879506294072853004821564640959439847924622404333760350016648202424952662498731510444630172180999358556047608528776673224738959280446073535639265216399891241597306401342566617625708426303413571088297036739997612005079588079509306933617711943574107032361584193519262016582770806710028162995614525038870224471380002702050723563031027656024429281749911550897576341065784908939359807700270802252105528759308494013978683778109977012006329151838448376728233963542415646057594025821821530071153840214827353661377383584143648835309771679986997486850664471188850650512541467428151506098592395199772578954771237201783952830556629184802340489338815900144268596609390238889342769083298005397545451676114792616927163180589751351633246079420929649942974649807270013181758025592407122215869638841040139073128516186729600261573025222787393367127047774677481218587578825087944424847031017550902639698398252515132727902669044830584073600870273027465521621854164556292685867234592744743251500686281649046530312063910931098654702230943336102974976341919088757228977364478022662253782683935506083232978054894536329777233532918426456769085364766487509537905860540892079744940291768010922722436170871389014576189222196087841438721151579821366359497911327312287871085193833080853094575511778271726353494574572816031877975788770626523830723761202144315076529921597195930450410856771209662409687842188022001164818507903530797368719600471962287582004649024599560589283386408050773436828920275048473004133957915958093792638670342874286191776396134762032211714437144558161471666564023047095225505086159313653094544016533166670602952413527784494434394194395223851951929914569565184915466113730826967242888384798655263176647862842564664871774292775027792373370482974567698426835180347036178917894398891743266879621343604920955043579792627689991444361885093204978061065496596187341975226591579731926792897571959145837549065270788004272218313631327181395711100223144690141573054634844956069977505503532135943486651064645951320701503982932448203980090086226274688692199652626305436392096384428369120067119303533051441662571583654685159144181149106163074926289899820350005173449389162402774261618045552338971251985390035375300850995775261809722444103820976426579942624054428048660580806696882265010133355726014054331332931565401644752495291950802837034451259373538082526119374953208230946408574211274986810800878816686161880770978038518429008388457996458652477492420626598761541746149549691557178701359976480475098770408395901443152913550989787432686901254120986144062348275193012132932173129956364483554007477174679353531615759345634914606581441851397179235724097865550356768770944741377088780331816687671274119629054625658968587780989239281373819085980313772782729667075225462169795766968677961753231891748741070624689884133938869484331355106730591992369388271359275280167646864783986215391681063873674983621731790591235534174874526124797317163190154701790740130558002930377843725707553111487529422254115300856423295351725972501409978389330079238302064783971181534926054031618441034747269087943240712844658595494880512809262619678026293065922338131260041563588105268904069615799283066438299276504071401181403909798648272931585396559390093444157250224549030341585303227606087836610213941222281426632280241124256429267925171294224009306560733745565557195856167063969365590648697333457645157553639048438349359930058321855239287750498703162626503855009061709235157014155095223022015231133755307049765823779061845171715796112171978546657748846925410008672856630813361208018647214502944955313126561729392193853023675814104780893829914616832078333938115996821751851274481717839363642190949768182095732401681491623781701752654502993717126271289250629016079743194840995907381744040720502016821218230571431585054358300769913150912118789634390270659633263961981828245615002170455413555870470117343759832788259605499851166428823077905587553683664987709130832573122404558666724165317621953747415269796602722055219548047408680754477634344215363298737987679982078284951365168711970961474416369836905338498094748252398567982137315291758465803269481661911122931893386153876008875123883606711551958797849275572563420454880071833745772398909889971655784023529540977864198130286947973056410250618999213809337868422647277926894673589468895593276332521100232343234424963963510087565625194313402007595034071916501206557561403745992867937627764381722665662287621499416693232946439420761528091581016743387832583782423640948854411633188260578751608671261412440421722621019932451025377702053255853594571973613649223739695616927329321042912368860389199143998152118550330371733247424169598236614585685025560192272467888963338280944565693273198554738702795750748797760268711723326337286780840194023793948875807805427588362060537981071603978278450405051875087490273669930119666301020500163752835875949083209167383024953772543817452771325209861755788551706632736013315956467025615840349848075711936047317239161018714477349274765567309126719523132899346233646159570210615670313214164694212700290953515938879154201089642078226780724536390113683544735142030704866480610796403835766510544659841758703073558392303099834431630458554941300277432930339472996812377347396475654491238572723592181486047939814187174007132176293537733187327838906427051921863694868507452757339424665543638996750242494686355760233267774957499860430443134290401257769976183054634669514873257441969487984356640494751511833469854613712834889629997028169516792858703558050146402101424033753402763933922347905722838931629016020257799161952617665179683839190122196339880760305676934090227638788915248738988244560274755402146733336183263766583184830530806743182717020874691617790055757322723145708122639578932232325301749630821921207994513826937686098373793492698734164389565084922842126973493336440440335801124336683417540482535018957378204357057623744227389508461654888969600390759234592196934493806274236086532468263247025911561197141602368764075966308873810038348094109103680532702233995288337957670606135855940960647614075766138813685577860706988073747708130647929126909455946986701823799535013097331879533356498546964957017053467380477066336655203722063884423791179688938548206521546079726955566958217423059376232634548525873430039037596281696769487843996858547902850222219338565107445043217584441467716277241168110716317115782816880866078473678478901225941788127050662857909420763696296541532563532938428680160036652458194742796983287453378320268046533351650918437221814326719549398647490375653802716583808311100508659915594751568157420858104465260185975280376054843868862058307171093102980001215086788797864222042477426883850688197007176939805522843085522556527063771162957020730023794301576943114331174657141715386529198678019311243182583641449573196073026793333169479789536551876490433316177988603421794002479021714928980611364344825156615170021523980023318867516322899014232828044515318216277362764033221209976037915806754046589235098607459449588317147064806022624764310914760956824589490803782771978554764502871797096598681773123862125830341773509025602535007195700091918274900856957580224619281018891565640390062444690606325527862225703578374209332752987369868114660576677385572376033286772115104005073857311469988184491337393694270472201665624292334648989110213022903800342109962446274321956117018530764779231423509921634517894844907746602993977603603861853379792901566195800617447317197482240785050063746541781245899232207697538167272636000752100720746285735575629526307479812654566613747632064837277472918480841876232487535534760509384249397453006541395370612681388224441233219229569858276031813990162859533596231459230637807939306321693547980662853753273365771475441665179710947568745500858964628263648488511461145377124767180497416291286853044443952247725608263503279944709307474297649014795297376634461097040885014269840620755847806441612470427284692293953278134306408940338882533565500600321684273146173317694128627082932793658225130973534483444797435782506328209535843705721277943801900340962996886796834636073205965061308134861044860845469614018034519873708965120504668121464953286418444106231807736109654234134573117039500804134953918816979889086205349080760242467067216787739384749561589437553011422321680150138751353237878502463071764409832893355223748217649838913326036743850031746952619684487567280811072047321440667290209139525014298783683400198058082584370818132135441096283942068138124644325745346101408021148763090320184244894964289624246637470542170173620325262019835063508951908335018186707932902808811957802861015073063187710223456404033972874713468843606531374795398314194178752435603419742885688694066085108459334327724928269164340672548880775907947870752398007914530273247621953672094822809969645166034676088662592742831313914614785768519044057462966159016757277785358231199511318097182121709970607000739305727657445842129119681862267603031898648468066868379510203645465873948570665657427468948347631391927017570843861565347780951796846764925479223515313463400941452389133518798483408516097460732409750200969538655202744433889708920236925702811650966472302695340445759770538100811708062153476142118338034373814795432428320784684922089624033918300148092023058196537771641324092797596043799184780450530248247181579641782395780104366343119698538038848941927727920180276451125280743443426592057891742655823198793404968566724824140101506555317217350418132032487566554979019945584432632771310452579597604996195679025344447612588709485444329356702473130239854700819132946844529657045083325257951753113110034291952609040303967169501386445978989913314785305474254556663929518693377757240905834380809918332732939669684696099439645250125735885154965111477313378801587234330078639779761728110951391239093821957459356881614122719829241757741939975725225185582001448275819253562426117465328906099273703437035923128745624185053261451885657745868476589687900325935597902268255840225492208123375879327171975760921480577995732190249508522771848313619605479192055363643956922640816650335156506288372242886509626055306727614039655732811227148719156760807659038693691344175103639820612499966339140012916935988184887696138201590654690866148648918382743597094803695093049847730621316763436773834695466166706721118547519538600299270884196564911486945887955073679401587218862289600461852688758361122767995644192725918305601431307286390351816312619466134499673571305278674195332128747879186892276834976613292166608022102499461691137249637572328456936468519333710829038044973167293600552009839026629643044876693171720534295280685349364969241419252395726950690093235526759324153612720774401373778795687334570210813516416785616254025311450013123615227360596358200810229187464058651849649432448132031601429156376502426547132462565007790880277346676097256596277275170925182182769994447025115178210995236393427743876677339114188791029539624257985435473414462619287182615187426026388871084089663443487863073766661142711133380122380018193506711213102575926941274772933688938016490339932449597343850902405992962076901379669826862445557562803774664304755537691827036532163973247074835845787855393575344362360929020962938677078103570458368733737980899934036847489783097890374776474851230202405196145782936372052814704687163798663958867326128704571217519107131679986287020629723472120602528555404290068544697589706130134770207603845744493528211339945531046979241006758361925836690609611409088604262216821361923234185249348022407857240804377558572864165253718024173402202701833642965666669181855646995833676542230275109633656435083503803145832233369963095520119592487992586322976032193215474216874131415083527668811066278890954568018721670571593116364153156085562890026286928068593324337968087455202081104325173773937031233825294120213694374484512928003312306205951742430381237105091062876965119711951905133533831600022171449386180263790185117997409899407844131812347752422226622352060327469266182891508276490444401388470323846838296798156284317811827442431759463781529987700488812988096784470360096565079476933405199496248143196565488467964011562734099912128310131900459903445774410905047676589587057584511017130069353849661922630490371409519903007469492899018120817876603687089415187196456642636365098121807272115244166605884557973278623024115767659753652680834032275903103668674393420351778402437936287981615761613802681345231699011755835264251702208380662704769865280212631205636688210276701553994982488007997360980153653486978935307132580006288545056798809303779932493579992825643623040784397464095802661017165162297644072047247302512382943789736730306835605741656156428234910264597349887321229660489414708052476056165230834953440890843573024540622980598102222087583501095471183940717373558430556442568877139546233085998782805038952872619404356004173318373933857414814366980997056835844012208013460363320723201299190398830258508087995435810149690336874117215424368364530229144224383560672338589961328383679725255628186757546683405884606712328808650263606829073423516514270587253831093232528121156280052793810090565136267625224697468924033591809059476933158473200711517069397153200234160617505320317217126351311668921115971411363627299371166230521618150506216914154288000193686762803251966924283065212326985830256493980116801856782717676292069529222959564004812848868933626581058147916346923165410610402771702254817018085557081122262423145238657666497218659984197681243620385759259638535664376880461496774661075124628741200523247506444833844444111413238214449512710994993756254799524411204457336460752262360429898564695418287764962475647958717626258135465819801336131142141580067162511072844017802384814416854349152318790162797587031838317011537412824109792118589631328645426605885829093205802505753943073593081931298982508874589884588792292447430904286831854479294636585194052087843504813865052082607702454064502231592071828425381991942856595075305299946623846129721662678210372660406191783372061626415187617690103521956989841901205056995965316116123986288550721107915121240811671978778246167739050104583016818362054414262313737974145006213209654292612616816438707380033382433593100957769377930347746768780696021755512222181269000896976298590170475100482319603024325235539192453753568315820451057395204037562279170421663083551771023899019087511066572738741732009135053591135848509098171468995530810169325233563618086563763029345229358076988693806939451238988774818363880797234925475165580872192006620606689048729842189386135513315800567235278422733196657586921038565138497892908447504685047903546542448652118096445181390774127999135011582913749125133177233311984877603940744910505713037453443306767557254985403375553353150956402874329748096326665113147504405753742036762323690349759958831474582560360778301921747686732933133912871766426338680728117546381531294298467232703430869136466237032105450651103475097238192719672812135950463279072428186332932185532645851991917220382728173377869580240140321874609593238472867375065223896479159767911097251395119196167177190700814168253207540596527531652229588779567013082002684612649062782926461313581986621224393721641667996443718011417930173685596849377206140878159188784847356515794969470993230338968244044540813183024479684622292148857625491532558155035901726247420471942974486927232114916622066621576737275236377429111267659307576086883980658245615699710669340127590995655201271297780924784980776722100399885954211440811092945929350181560172130620179324637422054854227838409718942967458157918918757384485972394541307284647448223269154934242565547217596611228523105264648800801098957818877097121907285038668990600125083891035438396928730855182844740691942248764799998762462381047555328428473560845273922065844323807458860431930131294659372252539073598290630044449571046901352094900375439830280898197538349866403137946380576311757005730480388546313171049218659776540977612203128545895810946350271312259941163374907467817003077449850887892663741553051850898890381251596422963973608385729185130663306349619953636627524895540626542943459438420678841219625962623215925454762875687805567179291629718711680185660241680750765890824039375906402843636083142688753667828165206551649273976554824936356393221394048829222342999418142467420884227887033248017185297592984542712812875810766290352828345522884671739134680337281088785919473871631272154648083412437665551666406394757161396697594943022371484749820626759103542722666122404312718478811577968954595868832567884651795578806092221419168843690488076671283958985694777111683720851237302558276563556144205261284982929005760182197484214758812477761729312969211876376110420739632564563929625944105662332215675823251061472532159188157690584950265831737264145892932718770930831382741246290932033799202396172361060386004199855357889688253192146240676270491683931589633552656864267801973248107559736748517862711627861468677193048782829015517809609118935908332647323235096323067273131922878873890935085517440688894125833670044787296813980309389471330718088605284530147486091414263430435034523917717009268049659898791297440561247156101856740967194689794844261766637262244649521445847528321871409567417428828271337420679868663734092195386638791415590379430744067429906034657142442497825562506348836478325481045498374903924962862028653110707367549557035167615038216021281878631731630003712412697258958500303899585367935142801173808879368531353319013292930988724607112431649799106182881048363267497764197624831844111869872269203313821726977918871452405851882075346634855429072268867717378513140013008755678065265649252546202554800384780908629233364241938046643426547162963672290556180878227253888575942453308729513433932545866771766433916203811669516270460389333013722127326239574086205237147043112946929904240995991750839663843975962033155496449299140584978332938817365826698109990209272364315243477949312204059955276193301163826560138601357393983201569584321688195440395033955539785075965529845941076016763281825071905675705658206455654977037292388442085341379739214948679074984215083813278260177580789131794447530223221060058127335812584062533920564722747939866660007608677554684540459249102537071135043807291891526557153520007507669823901365524730025261179559793095460529744255781899951218970404784545995024759956530104211188794347529465466492954041454587117716208466708537735511886531593358281292449672653644913192227300991762018235981535159610431364290643192866298698323358109850771603789534644229518599500629709190357828695962203006571071189433355804928597752514286671616737555459618325575938374388954700081446104569363701803864147710218414575618012106555641895547387774885151019510136128263454780352195760925667022140149986797651931872338046563031150408897446523771921569336452631461893358664182787898599032600326283991165885936160184244933525940164830733712358896505810563144741782739260951147617957530695395607063788647070810366773513921829424335027806322768758028647968792334881159705536078321398999509514742024818351691638226380689312954225221913114229344486161402706315352982623505425462583174518590500857441257643707641068128057299912234663487333263771959063474283041437280899961370417952414664857127859459519101032862930860634772059512762306332712424855586100756100346086484113134036237214095308422077245590816384443927943669749421232219449201061684566907585648631345698218192771105824353605991250686938807128367676897278933391858841797069577747630327624804398344893927662560144597413145937471443502881818544339781757346614546493869658259395443065820993857296404566906577584844920289171276602703265814590975109502854625473213418107854947769322009696273428184663295049602026503215226292526164303756970913027762384922436653763330846217645652594613322180164507258264444305030279207277736246075779119705099224433811980009718466521686235045281805100279084547548636534103047382536610725905107682142985441833408272429139837812088160338678955320749248131213289671413180326693689088677276644434384772410046812035317253806707220395927303587458546196099161890037289943178865367174550271782641892610755299868563625446975141456137072866280266668038160763295446979646078568590360943088855477116657248782420737662566297597029548029020558832915515902794388194119675767233514774200436994996554996546034695195797058680843774377170610476271344739860127917549415024871595178208059552773887898691465953077060648522599781291406798288057891533064469856989750444346137592501754201140989927231661473174065474740636143615508038976528566320815214991223797009632192144802880700094236421132591074429258759813772499541408336505176116092957927373070373722687563833594789515082610511579535876349943168331435451408162042840998838263224171832567213990641584147003235961343129184592319438990241260198725828219320599897285487721324731444568134981414676696988936167572626889067300768751596680974851640982867989317196712001888248662119347618792722052136348123257613164910477541653927913072167273733282901431313036557130328994650210661819341529475829984015992832191342076734735734556298840033076002095259219686227828999926147845285325528556844938558524442887242925800867227738563058770487551165973728896058651504356716852637325371759222949975298365910759609713736938158020949505270016327228227185307162099041100650649030390884877638763252425225108842261268405955171685329818364544282977319249371203387549793744679488738306233557577339831425524580113892511223389023210712352988818044056633069115143420773232639836407281228159878925531410705233153428961585492510664518897034960373373465345747897962529485330070357662481373162526742524540460521554741286250451112265111081879222162305649414390902719925133619204054730000436124763053107934102358729935595601690334627275406533013045408519737894834747762728750012508379278833497302539816013288129399686992793109375930629806581930293661475213911869058175742128251954935752358564758553251092764946529746069301493723455981166273909754583628329988977573254072621393137221113830283892586253640937777814159091961918218404530057318542355597998089860905400385387122400577860105952981930618693075250248894121293108292475274648823217099297335898337797302897146077521594798242554070435616727454508934879342357476391169245549911900737776646003867025099155542813893238083731253616924426625063232120738726655105502846888342378368846954193142371388276047149909254822168560562118622479987737863034959058366845258895675644755095278624290907701371447772474465483960775678965446526444086132778581217664001116463488254355849438661834184431529260464260041255937194117757916234582913419509920533366600104801125277873092442831325547771524955795074137907849988637891343184499164344939628325449794696546962833342613686909884264009510200274303306087887521739219932154322997986106672042477785743918568391868152351500214857715508731210698725813402927163265583147640214514758659422497234961462725064910043068784962422855183581389476050845644218907708344083511836472859825832601891174908020249997030703615051654646353032544554410554039884486279892276694077406943479019650842918904580267316220393079133782571198020288405224552465485306925480008667422749204994043346981299048917199503296254811409636091958448493799513893128305994782020379096388501691084372693480683788563854917955939599578619226551948106459814454500433167180941925500002707063247244769451345791074439230181342653399695522526214988117597081503280739022225058922058869236315444312230297548991967868870152604018503431516974443391617497859500985244055272909638845065327676496547988348534052886754630441675723156744595073680051209275085415274510253617527150227860375772680546434162434976464923154499390229400593491320240998391699679028920174692317281504075260962716643926533792949185495606151661144128281239212435512830994209595175668815400534297749991218445210911020391373815468473319376023899620774683963333883364491606260936051478417282210440002754614757312438789879131931744838215883585624462132439459759240622485805618214664510943859137846407577561796242547119778061474298504317664226796244856485401229160515606740203779072727261452703962889708741269935525508312658969554670321734021387791074635036149567461265015395336975365245397810935395958033330675053675916387302880573607925121644076706980895569136856829129796458630726058398625402831601912402698400449464827898180828848970882622083033127788096441699409948270369197029552124863107562745604699288827894065149816024750461642864244234436460299547828709850487469620780402628199234295748741703825288965519298371416954533366063664743067541384419168125692188231440153768831987105775294295924617428846612353558301351650253857737233597687358061915060232769973394658631663794621106163207891427653025654082354421013778072092217775292916470618246344592673706912856632716987360193157772258069910667830309006999146013321024022950300961920234750709649422369807500699022492946968053573430727929888154270439105663042466695796188800548116004574262679026893886687443790452814360921171592029667756580449746687714849959440264548097106136405211156639357688694891477444944410538626168585657172284871123104906397771966406971202483720099842046387317617874618386680781539995662398404791117423907471868963639418145042240103001169625998132610599788615056576459628665539602560879997568151063478866978734928773319336079574742629274253038043760397240684124633381734172908302687058171453798784408688660363962501736124506599759718845125350392544742625099575016523088633983612773906953794333761138543307668418075771208927324722542707687613302085375924366032585183983330933590822257184621213262502229270593835897597791449014039623972913658279235322021165015566357499192280454255235451829084773125918410443272106108787674511705311485159075600716739877396568367063973574298527191786793604389090925379182361626102994949692676946610333463625047591665670116717190198507374728690471887252740869439818117281713539788643938346444431735394736414315221869049791395800324474612727150062154294220704482388772146776018989752068890963666203614863913185944657919398109767316859481925849050298843502316540495739796273866187680030534627756990507994230929872676737438867404882668577329061210499590829106432081417412398661181878404488405525542178139535234618493438885819663051477821960849241416293187006536036895199835276542310825952320934825739866152620709278146834829793942175300217260672447503382638845363169840947815419068508495127623670252829115008329898151315014486190594237173823824093871531419452269836950037772096645978173607404574631911865288818003983083392788485109608205589122331639343865169057910534656197551830891112749452749553706825025072979225392300556415841411956066845107144987100723246553947186233393617690002525095821680639378598165391415096822600639854499460469405767909581336973757231394182260946582454902366624515915209723409282621770672598676521463873315908560693680403981220894084213463274130603418253970863741620483132612128681462765927320007077734173769975424108360006431108504574119187304771208404860601765839790330699238168598407611275320646587217528207662898763652358880957265693255819030925820121571593872468080365061254523729991634553434645168652892612030303528132928293072577032549627617582903054694258199398475740442312414228138835844786514324727264059853837978320946644130899658432303966354646033684165118672374987183401469577137060211241485231485846191609744916919863247435409562896251553617489403184051775760800637335810222644689750981265632279510581784073715075556623407211858613403970355698305597920899999989044543397230160021104572560437015734493597484975628645721789391394229591118655008311973460837699128182495344625914480393872251810230415521714619062192016913319920631329650024315111298563098061587680111726520456570805294422006944243651688792069901438476161427414673865623326301183698713522576880537845758654472071340477058335428441075451718779526985883722729962805408665790421626213954991827558966114341509455231290811948113958900110979373237318623210415157374314291799164969445934054073928912478664283162642698955567044190831918218585524352659874089454383721749560821614594031886290778940680191132410951006634780864588681655697946136302272592724988483078366494501502398171131747211959567326014366280245698916348697659041397418936090835136798348878547145430717228877149345301558562187018001333217905230706825221113014775940623481584249138050773128873049722354311317248944991537384986409121280428727217364388485090577364454640385144015858158979680373137685193836746849220961702380767748858347357658335914017071061569664466568287420502012013990538968586714834324279689111017184031243056546724779535498965893991747741617744499789128984586079192735591052703645915047027122724072911929182044583754454719657749320036634067342631048325573062371523874216252624652796479135746653714505184246264556552205394187930160463492967990788784448260688809510071858767417334348096378400621644308880264522923396972569140405397943170861923581828380473419126552566981244071086160205728595765538088310567876940826436959530815807266460033533026711732190014884715543297716637070407177130016314079466021098388732570220331091998912719015817927244042699507308157288867101689023434896479688512974406555538055635320748132847470949928572783361460675738920162823837836573385802565717334949896544245288704281854632583778470582177915156539400421311424091671077013164649955854768974267114830371852586926336006505196970989670793177927851197082397916755106619352660052225635046531906228905120975917266398351150420152492625976516876507611142302799374032004020051198577493968673703374779625343008442491309712833915241212942722582369784551567841060005390879900518058555435681038954022858039747851977275736942173585605164286804816560396464912596396323861062602452433266249641016446823778206831762492349531230156538027971726352759052052350584462412972580767938441094082621545841421243693666504221008204594742848614352297468464231537991582769463275655347903665164077813242951649685971214788506394998908576437126913252644868364502860492047572632105039356507548763680061019727339606031677661780612903397688510455494421284294351940400587912477519363462319055392272144395835978590333697150104456611145396676455570846594469880660830881286733684319757596262861743236696552057418629646643607180186743689251478523853198235940560036756329294382185731170415176951127721367128522853585620560033844682709350574160116800634182568804219933725673040885997768574745913545035105000818201436035738183970650889585559525635149679352446901912263379379109878264382417463588766469564865997903537718314086211497242884480596934568195209837955754207761005902360209746797170658957356104808721107640106652573439758635909471673178357593076598160694345714513873606478844617745239757340733395472195871434790409612152881461231673264524550910463768823946380480153959765777809857170193388386669941633499583374619369283816013076765906323172005513647387862534440982010330325345588124929637399834760791359965110683002387320578798940980680349163141912222312796674740787172201091356260273537851180631807661228567629645274968490248400139990748227568701176597064872319213273749703808650013389774955791870389468165828685376029547466144546232421776861521466927063708737551842913668233247914241553137509125285436527612053024444099327697757813480030924436420813501652812815428473696904236657613400157933847350530093535146748124131582259704330249755554260574127271076672543790249381296660633803423223395515547447627737700246684228912513409193996957032075974718278324775696718205383395598851522785655289344512254803103824970866149741806449311345921280393872383989246210705314314265175671980974376228412017258760698862090789583343282345353495063719344100759348281069978095792345426014009629322827931167748894048870584972754783832544182322087269909005436404058383187753617033664539570076927420776272787422516997496128188022011266551478257703080150550397590320510824232184708134555346824223125930347190026824521864276493922787489503261338441824535977624904275690690525269168306302014054985721260211782092566299683795127009869434919018462631395646728467014705828285935693497252857220840596880306738924977509104312726490702551516251709182918979957070281119177641033665544745742606154010840759412211638520059980586247481283915979379920887708842498210189088950956525615802630220997238468564964492651498565340877265832953248841138199236809991731286532980136770892075986320144464694789780120534669074057523754620442366419408179872923197429194616733871728042455234122406413135896745753929491207457804347696071119734487830812730060922790088017406007514624837297213314034753690504904824686598393429689737382723841261263112224637495122478383391225226086674182520124401058090236165400175326323670270068073732264532875231395323589555967824653834057106062084335646376301092278116992247062378783275483904008671328118231079064937615842807921324160913288738242577997937842275636529150912088588999505402632644542350850966800284321623411141899987571141412832488143269829013871997348931859122961640997780310527058089812414304110533325967054144112209147744605185763555117066080197253199255648830997160106122492570066745070033825077141448338901509524912195723092768976128236160670385821695785301293708401983401360289735199317229896750441614890900755232399726275407318634214000293330697111497811719342175017400825797555537306598808067898190122437871405770058278120358453687206815620620995271233700118847079184309626878880487277150787678516688488531454517759734401401235718512123642081225287170949410851859488248032857743356427960211638558105382126866001674361871026178212603729257391143905900192497692589082906724573001415400001986466067263777133458486487078822018134591299075533989723625220899020648343587603568190753063078701728993957536298154499251527947452317754249859989510236452577029423902345547103806346251581730205531617856099353535260215425691178507478147846034064331190584375604474188716174597273957455282874911798256523773166905587220120162714760286694595928234347673319693831870683700601827689021342949911624418618779809543375472019536466839619959668786342007555597395359101838431995124673309624071815717661510905796993865211917293377065985601281349825920379433583603345951971784413613562689946320501728561634661942502023298118585363330962240420684833105326793904361993843713212566313668964896702458687057469821823777321542379315802617689999947973581719009160214698605138813408592824231376253478084188582697577848265267791810053204368115976962065242955347672004615096951703082734394709897291510009624310310222846343322833302969443886615078180859957005778211814584424454738603480818931429166654291980015762464693436783207371760740393207881682338293463583420439266758514586069124677660512418533056982079371342595176269961258112215823162580052071817991601233923218588539933206431722678117443516754055606035874797732451100359897250793198893675246350821479146480783207390654737210356132505736868135066911264447303888361125252252532746257998983878891191057695659988742449340507855704246803858964081115116407917726067255684730000243838829423171547218599273103635312356531631583115542176790978212335030677041739659495640100348669782616329120993348007747749897528522302208716330759845170635744367216710627842948262129303344683470363398341950733360609575903541557112610728360213018730989506190955206062193018097210082947439135873164152382755244911789292610558329640803780520391965210629505345083811084937094029317139130828556221675469337127865548163857741871146788364044086382361960912993125359680478897311965674432584372962241833385192390081065478536687988359273986961912007813077677227525183325092705575916131128993967226898226827367081984049531694769699665014804823620786063831391377610883934228188455544746952354883520404524854381406253830714645697162700140619231727259388312133876481899614318680448012035725608400409198903277287793718355242107496955348636986496888687360455052280378420425045830752269315201474133006640238518846972878193095069186566055456773104768754529116124950766715075102140559914469508644387937856763688799420916674309717811028397918674547570733032801052236551932975768951155409457290422326459396946802117992967549424040301097914091944481964567817286209862416377867221388550096570359175097527263308874631636802307432044168743944428527522072791541230172045986793876566345805523614031843339674733981112728539480074501032406587607651914233354093130490650486486205403997818946460319808361866154202681139484029399778587432423695615408805766960773142092954690896572304751862382673004576576461958239673432276230621843764270235609752500332639722312891008216929302190816869613385582257405232614175634100794784254213405946577091915575954955254832817426327926199276444523415058332186047767576401794824286723437618795032592358817714740966275868082086788368494271148957094891572192989967502811288900687531400211835707743384125825778046089964558381952057916275025425754608954127894376693206390404322942067096319457419363018502132591538235497240308442107190089112519082392082597526500583233854425233428511825833764282365922299825647096372663083428616573103525942135050907734067917172114901600969691600152013558967019215891833318825591958825406191974865139794480811601922945338469777164496371642091397992566868733207737246442418728514638999394167259856692213634061926971478579034092906842221722733866839731378108833990875184138284447733991102956365495971483395836785378550926715507758074324394531084251201620257846926567033356001901342455555795140236357730395011896975177338034818854985869942298676133423396126939737862399810442422377064956282049434505040611171702778428562897499730596143482676519532609981614894925615633293986901625139528884132137941490926022732957415201967738105589378258218721392527900761565453168664831111533583935313795819349025261591634518826660293963914332047513934932650957967532275123826961695728009102287687183032313644749886702563634114792765994643695367748237080644329611169805915705437962134289333983815218250912944685900110689874996721680364677397550357554463931530775196844699905170424781188231429599430274492417911162686588341155530178543820784383307480286001936234365393435994775262216166794918577414272660745516559109708422722126657263788523215694007471232831624336112157467197259969488266832726565354381047589413367716969652871514070784305647482144918718072979185217239136287243890159698486763109953813790689553733035105058656019767787619030472258664909119748096005902751908514101991034646506273703835160023929675314417814295613499458393316691308491937740808367838617249072806611153410097342698523981843849593517400022905469880600035758382230814043349808777943263476844433497431311379800302964918177504115898640818131685404414815670134735099987800040875705482186817392239994668854933131342231132702564179275828315953332744704181928593772314785965401343706342344837151691272617067269973852763439256453479230688523945606254183649524691525254997871412714969346728862565568019284916646169112991678285601852010275436739873948281420859836901271841432507722551606003536978927056936058168396371666154661084157077826600147481276676564391476347387047570540310977920172455659649575900503339844615323599147173890110900369879840723550779127754744209870320705170358790483200649453656018462615184775465974007944871297920828765072054017716419781406124859647236215067881586418922866173511655350877936742449581643710666960729645104735034170954407401449072324324083550477144739377322734721732139643023823351343340018092950752253819410586384174779686520067013027665342393591593799644356218834069449177231408798764421535510396122724011373871430657655540879968135930537372559084074448369032721487782335340504388266856043135611400285974042590871190249475511507257837816091637034160188006948827233329080005412164867065023286799130241336454144574064190153723759663322741281502884035714815357948534335898318232161030913105237268146639306046373262690019687142644309365130609977798705939790401736101735007370991467633104585115935914036538711240549354715966001498423644375857454055759949023293854971718369910630915907332423758253066490737523036380649617844090096449493708978215777488297923321540094097572426107235003664683194582998239375096204759966549835853731939786001375721039729475500248594912734111095123004422447600383000397423392601060795784555939831829473847133174279754871911959283021925571889214445062807331358022840061632457765371388068485867733571279301124646339865717862946352663918324616949636325134302076937811189991076962494861055514930904652191226119069645782662683532467749750288939401803375628943321277698976833892471068416876328042002174137127389811064699034711826509526520782171741760266146674521580618924993594160517500461241553543863309822011471799328614725141002514919815767172190721070251022740771881219029510902403967713015082158996832445986075745907669548169369450646910281436502432956692914802622554210827933260067029088241153652932270802459123566344966081607268899397019298987840747392300471812524347236212505809465773854728328555223871795609014830831872077028793785493747406500474935380929444852004018048493618156887105980544732733994001382254668843901463212086692617977268720370403125294455621147370564752898091290684089357861942343816737639152398072230227312135569142661735470256298725355152218958933851359963278641455308882390155275633796738405565242650191117838373568959330472045198749784096436908869168198641303292077312503115333667729391769075659642415839640081025076712426687660021389115890623791628415344130610354379818759289837305201308433592254632865479379303726480084488978520333696802286696172673424015995861838412256930364874918819818352174368520030856355633632792880099749940016499491909377523246165131985843954570696621485191475112565331943076785837221250167486923998767849065289891412235393514173876268772226509106143569586940204164491954943323193256993365225635321640748067662408887906704165687465055509053701152677759411334817380847233167317115593915219142567407822116609465983691579686112020563069161847901366925483591804161876745215911271562054609768870325536605774656174906557512994611998715477740960280564519096629845565226734692378956381116968363085651889299816740733043784776402477564860832704669633732169713483377228092396024128128544723608487072221723497234484826960880666143547341150062919007339755749281692952967304109891469411949076745404526263470139235019226017439867117430956257617371968547044070450189345347124460911649386156494375281795719284170371951120929694270296720743492194927661547499160619074455844340152451006437112276912017648282006456230166144925792645079279558327991418988200445269325773731011078610158449523551219028353779504587593348496813953979280846110753188102377950974928298962851894182544656463900706236992442445472314861905185319835526119655655606665599270001043676724701600456383122283280917084987943967585576887714034472501054286567754980951393961967220211028537458476365718477019918512972888695285750576019010465893468821536009314783260340179442870996921271954328783140840220893353752994325848988510429839449027816932253990271718915588559063942369940102155950326973766033037130797729124163125414632014060971407396376908161568997426580875644207102273243851890166099927284633379189631813813612798687562993875986011352923631753699758066294341030721282198328183310138493266319981869178019747598662990303766516889166091044785752505224241415831000628367823721468997839197738568512464934062610643381032739478034684056522024419548386168681899924209675008152302824691297769400352711893897956998322214217122032258673243008586416921973883991300947673785323323071470832315088243456811600420427539265310258697274593733701137791533173020667053069155079044256786017582621442532632180156790904028683848200383641365203847486682327146338248534198746983867387562034935724331159057127162290611898828953590954290466940201641161070227928477008514368781718617862393020605492208817507152267221181817804693533181314573016305946495312540535866711771768239263227616646362250933094978112554516904038787421324286183088562738386436806266305959031997009890601648062373524587761174527434686127260492815166343124168387342899390998857777823810240711618441115077985305544005149719408011995180042172728034211920165846639912978414412109953891752602726357250883328986233157663124618466460312887323382529316817773962755296439761699964594183645230817684476913032082217785538554637355526043295505385407698667067276477556543130451609459635333522871425517080427291578316060033019039858390253212484608630708772834791840448521895784500581979817038390039145986989749158792959813809515356823969904407859282201678732651587716358468329002609179831097305756132044690406195543398992318552980725856926373078108346052303069403329119915657644019995012931805311440787336298027853703857533432154936093101455278970009172308231836532021698563650220361048008551528016128929627495148267463226555359090602289420360727097946492511510894612973198772160841701426473390352344989582765362644220500254854609427012550567567544796822753678658228761749914170420099818373169874875307457408218335665481263898457953244530822698621338403385568629356532084230605887058207485804375235522641490828259324651761240891455422846896174473695530476925061208392973167029823261058714674300449518682310169235948967663590756040871872908386157292187935714731389324090417371368944945002735500132783467867386138003554593100490506026708395996920200862668645449514479057196388975892545811582606281614848726342957032837107973150012609579076147458470653899128750922440009899562355494719705161361978644957884417257697948017330602936256512361967384403472979048282914211936561020166586804632163373635580169368210489267696140638800404554833869616708304994879859023577613808564102758595619494778558794282771698517608797070114592538752248987767725150909573020029306862229307953124968271583348813254980790240800191293342815109152447107937196238255385777875858186430190191510753630821834777450782883377563208630232795038379266517315139575004708530745427736836535720760975486121684738788504958311277386879452073845932825012496470616544164934726311100225075551689010431115055616531484741791989301486744134295984679194708914408639245803504215041437201578229848469271405051529948921437249556159193375969299991372647385998133512863211744698576329347580266843848505727556947320296083596607842693159632629431009873600035149767074853484471669323510517982100214904331631341838782607611448805019793788972676098860720774127546953645721233782914652251751367853083323299901677693589366965392618448027945348223184772678168992689101762193655256201819379445863782761462540142588538741353534311879037204103847920466221400218036710252918301176916110759360625456647478959036673423989841068493877977292013205681341873070551076581201720208522507032243677429710399868455329898163029416319563916367251612396558293198204290125954500014302650343887962095262629070232451407345753506625684386277934918351737983127958358734498015541873822648595063975757007087813605923067189350218641536480772801411370079134612237245114498907037044070875143175174221045600501049777287738891985787344800654763719728473889553709628009441597104256079952304969875295484824681760674293771660749037432092355104104962731348397503487460322143601864137098481569416072849456876521255452483616719121142239519490757719516279582693522605450316335242799432078368274327868622018761755643326913015634321013751345082669068375687021385436792519366172337037053301415067624487497549140208047020583828660552543131918844211396102282430461627873802081657079030145454539230483916181221047565060243187141699458958448314011615186257359270791463380601427086444236662635490643210588788809716907203057324940244387501323797632705954875585533212992493948026559359256200586423391059971163704884111155969992042383354487718956643211140254137990139545824220912761063743054166766922647137241088415686553524123675774972564618765411159587560433814703711579530012180821844213929767172957304143273022610175284923237730947260130252462442521464917219889743305872898552727914879919196207273177673437093982149483271415801350824585437239539997370345024685526497339855565494999878522156452980151991895528596103533564813763639388418154670515161926424181339500179054060167811160341910414672638646580614732865255374508121016882620512777264637891080179263461235005637368519659926456736868808322142408959608365454570779392583562438359492884940269636913203088555961714622430238161563211895440207838777829313495216218594124392302214856325961500209590835563172287200806308277149728173242902493640620777311525884694643883068094278721368713284946601250622513757380808644332746177173660564123411381663318775063924978989668002116210349574168629186660806157556705427961480048743720578526049571612442184394059034661534820631424357730170865287258281897658527244264614754334754134390699786366160723399657725818351546195734999118276385868168921685713054821507855878663045351226223316523300952031999583253879295084816068984893826959668592835440832091245453246256916163969255037251375791405855768737698804157657324682375109502863458833387363903929300012307790579302860032291090497331100821591907843742606212122880803279207987771987054416269181795259517963418406658240220491035749896778709670482287577227066954252388043783892516240861277724176292146301493658992279990370448677213933551564459603126079973624488959645141656550777672648094159024634067519517288193794751993529689788218160441532205680298112295166078720954034756064687863847104463276519308663169350864253969661556532654329638151897136863734750446830226144484161968936949104408554257611199126949278179800268247284118586861930559870756672969428530672554582712975701944280495865724904359769681058244738435750024610906436709098630486293946457198919342924250855181455859311057659704067665484941627728625350240656204639599449466846915026854497099561115228001437275608413314273797733833150058182733290284160074654440913602393963778174651601462616434747871308182244214935638689133263021476227592216933370669053038720281859218217028255429389721155105091364835089330631448828123485122021283968572988506142503803970651391493147374115418332593868955934804315132448532566064289250927523997912198063135649103720396284403352037979173101325444868870001564076659217557226496156179819266502175554414304207010028540727129128605173070823778877189630422699163224648974003460589367643456576576185437280606314063835790457057428859206717015505621228520915520411621981544051733211108557447259949538474300432922026778364866385398545211006015144179225987845709805745383006494226457022082713878734315945403297738078247760148039358264237448116776376670923576280292141137590564944914536533092051387025114953547924601289929929218145466031841787390339690029625232592418756957966452101225997825668932532465643619286075725322727229013799239656143505216799370645672134488570701912539015333367131651121447228265857549808770095242655076964709432193670919907619959374989846176674801244826850974664162260783794185361478312492681265044984692420244049856489236767306573005868821677587121316493877198401170018947346635857607462531953079289995683318363046146541006961678868153850252593343651816070360015829702896604978691413070770388336426320300950753921574637152730277757711740610696413439386811081623707332189395099656677699430077911590998809793302028461161137548925583309951365559469879744718869396724204680791032656554904455052573772416118037624867648829150033204709550862772972718272200323227405277505605796622995680766101289204577714800165854414117886125682927429213386498983291305356994493877662289675381366963842163337517659780146728178937434405976187559206469104746454915412945758571406699748638957880209275622477354032707633751031399881214713214241244154383685113141766067181955207415022029662386330215175177617500905506624245313901637121811730308137338659307101796771283981675016721364678644427921864167515371132115055911042965875230157403486845224640074816767604712897577902672843832208068670420068075953677997651968230629150447808368781983214603424727829442921940018405788773897125135288029843870561444015995455599609474757898236768177629810363152273189933405632772341870947574028877388463294415295552262698234075306799702830643703723635443104792378461514982472210022469189845323635726244735420032207877967507386157564127525201204568714247021355958784010661224825744392840944139302982842222333948920006690609948128197318303044185029246724496485104055605837831662720041604033953065143044052237363312410012334837793467181844609033641849037461714530854699246266842907204331765757775862421777254941152983872554686452095101071855126021827017135918934866253585015483586627609981631451054872819466693937278948854158651637538746904793030671615089973265301546308804147905689245280073295460283941357023559291867341134900998117759830933629711565895128079572608437613131436786434605619414593744265591110226312366395181994901192599220156897736083521613597878565174960836375653503306820821183090118874110752942090730024352587738649650856857634715740841572232047624015286684529390829380385229154026182635437992292458539485656873237374345942772405501998145926267421982273624884454759093645372069381405138739799057995426613709252554987600028334449796856125142692370482717971436212212783504432145038625155302582729511806994928860500392546765464121095123828128843518164959074640833976270856403091007328354494236977929571488872040840187720794744285886962926326403635113629596213705631534081308141336111714272382913758815447589676974536271358619179385798092856704247457330652187733515567969050525807169518553577309290379266645659190127999451376839160232664609050850561634401404367085009172858703187071341381964703776647690505252639033163669325603767772827041742217095547100536949359551425835333468827363659971461039224236874712262805003740842930752309151715710768803841811022526052672871399277609834012783779782737429743923580186574955214236292537442909506419265341383231075261249206297256053836474365965202417566491453330420273402876687106286492804088258944976790868201873633308446388306265242088683028003152615196466862818926037860406710672792993515883594762985164893830777712923717695282054804335305100291071291047827374219426887839663721668040290537766827772366807109105013896574091428867332661374742839533122226310372295201482586242562284818464462371255739816813603123756100409825574896542864514026001712130100589157970601266782176028064866053279380415601724379317289011004496354563232854521094613778998962993200143581109819278782924354563720749355127577135924420761419886333698953145361353811818469402850572861085111474071383464007578005288359382882270128126836081133146167535724156775840788225240755795730667312128662221822732538895838561914506162357655959356477720162061231030341192053895211761728101879535266996440099162333580542557466719381775775082468704022757168499024779659320822777784960359388169726711722105475812438321517705080398281331437491351046936069072690992049394401362160627772867703768521969307027758769360088092802121035654314488124068322688005053021127881030213791281349678698110422679966369632738062680820211687701396865323790508701065667416734870904603267607115291159755838515326280005225751751966029143396099940055690025132622532700784115726648855538411804804584964901921147564304281594364758807846582073145105948163476706864601524123113634680540646366618334538212932844359780256029969201500022001930733966799619773230508532759003653586799796404138251204711753156983268182628361878104503152227945791651772170469820974779742015490397128998095527435993934304810325490528204590277484225194861010830033540408956858710401581793448139751525881554001090055088232328109520075224703084643001304814218722941448673501101248582962564346069065177335547896524915329967940683185955493420823570193956050685862681625459599236416804698337246811077136302962607945775999828601391353639784059109875215037163690483542920641719282777542862759124786193812472351494046375532213477581025624720919418770204332624038694372944363911389172884897237249603900246446102035785867698336698569451385494354999724525850233091531697419351590920042703878046291373330901504111813767627176318940076910261992130629729833661525177538470608955609472739459806261158560829444780386676333902841074539798801098786524306040515246800958339189431840759162627129696509032335786860524321414614572261493940376498321114643842507251930910971719663820331188003386440438035237385664300451149082876458669969627634780865009188449719664909627537785203852697739604379329245306770517680117384515889390051203209891317752549040138967682334196509968105270262431998177883052794379724945860285076194713003272742465641236435835617664276276582512730502444692473325752178044172689790131352590560755778990128046408477499836496478621316130361417331811665675397048015762784308573624734051958247021608344580863638504526485177745477993592284771279085451828032730889606537175143383565968890532865605157593884214820007817980094951853682148403478813209464878395913606699813277055868666209149744123611139702609797966707796506460864160064989030080310969415450821598816252246624740630234179747833762092443488127581378973578677786023124854949901372355394227289642475020860375141651591257942860040305266465142009578323979119728483549964978148697737594389359446551166144603537519088409468145562429201206079751419651816349452697633283839759110853188028921589729135419170411206853674992533346527028920507043850380687415900658028464627689836581872067936260494886443216827694468075239521705524017136080136295943219931567414610700786805206672588990359451104466176412577285764425466788979769502910425523936444953947777863292543848608824352997382232095207097988460970045728744615211340767969460426328982951777669531924522333071728017690491245109224385187709300374470527916841944965999424787208130429571085669425590186667399527438993767884248044523787474188698687506476676450371019668090508099924361252542177485466051889812162170867161222275782498628485980648379287240517997005136537901444217578512156908733731097253521595564857400771240815131139292780927755474855655104284322556654959835735046703958042281755024813107139794631475900412239809507200240573308578931919096237703998382579651973051947760426359911161976645684007977496536516221677243850904796322898773555729206868216667628748021604973529270697549496735070833058613947152083947902131328619879084710474239842450995192902047906779324726534228635122195226877739273410332800564659203991593632826229071687456360391727086471111502420486613726512366247443515894462078399911198539529412726374691507283561140789377508268872558443077029005648677235440362719451990518238072078098840505282550384829123267845721040425481634530751254360357211776642122846643952731605464764383243922017199173385445050859552341415673462747863141203322807311739824413578779138379424244556189559662374086309600714762750132696109389609768860066240801523145306847236590782987706707219635752349162066376921315886787029178929502775961511807365418558173386095420879777653298120185600359375735534038137163302303172394456970790802828922968327073486738256697194274689873482919640880072833438361901050315005109813613143551086268688815889407359801611592451177911612602930051853911200050344430524276760048882628664973567966014259111269953102360815218537137758862559580911086834395096641171833807485352332829689393489263602732791042831870701705807793084462825571301324897495001082133653459087435167179468916591016327493416948515551459737780298364072277168111547934458237857437405670217777513211938043748104061920984336290215207299015140729009265398835776909010490399343445122811020397024175716999474185504882831854138304078187471491061943485743933289092241049200462730178004799285312143788953663799637776783685025756504328462725809289540379222539605494929931897941531500629617995241959185121918238880680166890406105903374946789787810569812763363475448327386260745966144010660778754905249704184724146549665294908766753261675715595596182154294780209979248945092226591117488443442385409139172954593372201385884673602295083757041953019679175173640731289847021893337389941967643222721318417970027157669325237642109697985308758945047162577283201463145908131911660311946688462521865510591803597723294550139146820179180646458671991459230268430750769542846368216924701597181366139893466836642912265801866130379568228116576934572710988982896297980101461660238445875517763650309810158807977206683516015237121806853374725749439001976056412571861995088430711963127071917374674839944464322106972571440896759382188540154986630524194408650555689026297140863583607671875427286773318621505219723849789764285452480977202350917579384549762202063912909694990258154803554814316857415165998425088114447744282576404786193100805407346567339272967983123433184675063443004218353142881865147946742335153317400501906268820420728774043682576358486647238557897708672625241231546202036053639636317799721862412686648504992072412970495762450942056375865999428093636447170750316899723355667156991493076070743734927543831235881466342981309689672322922079116750534041460407290083601154052761398377844065647993740035352052263789274800438184649434064307340543373427487163434309763199059822069897245909221130732902019774548645899232725033130866239996654507207430858971335418288231954186289205796565170752108537634385241428895610127579089146077056137295143478248130946584916979212233046022937121849327175039378036525349566321128370565919051418938068628573359473772974254416934033400511716365165891938961081221350452281449875549493596427291252837884934526627307961500491325429224864690663745024953218587895747406157314830082893869535056622889928027752026057788550937096635299132000809987894837774535457745335548501121611615565996437380662194844519904446642515497421562992261360358596298387865548380858550815598856675843991486840750198859118911721341429774260647131798793790311721672717873336393416864045906627738819109524007521980807032186120259821594841278365903149659075034694997925777420986068893050945421094633722437682339050051830647891805932340548726679357352273282785557470125080576745123976790988859217161340137364848707821038442329719984617429244817453540908489673863724268258811402839453754380498361056722830043397367267259008279635723291373451198502803866831048708955965715459405953599940263557974113269349230544840678705167466837073585831079336356902546318040980350401444766551826140184314269445899790199889771507938416282458721950445036446287441621010736676734249407138724968794596096992971436571108119907069561517358137530539805461178090314614249637650326838549579420029443693349509328920827591671150980445998281238664035186411567346604549476989234567103752038268170591030776710126742700228204104469940444013951580251768288822639544674056622066837477472564994722351981502211983106173074664007085325857648009887996629393236216191100737081397402109780190770761620294227570482232984688833828333504239745228927027248161475069516269003364624282253708871819873665496878642055751210610852127406939167464719022405085217282864606390729514465742796130945990560129299693447693348846942799554191992256869626127037552474449927707101653135641280432062388901231788680615409337542480551172961977389578727146330977752108455126726612553799859772296391192518143687478601553999191104180261353551367226654217305475993455211878408392036284489073417278894162153177993272522818963656826140860096844516240762626630034565076987167023644391095648473513484656424995213688565434188621836940185130249894243210575944649788708217103390779452780535256116036898068576504487791502031560327482977564090262371236299821500628350698641493068092933350676949219962278405779457959152489796130457757779733658453920079478409102090037569164321999069234804268594538985273582899450307295314275089203653824319829495206577454228857420992715936238938986356923846025628913438541689676794451431774215678365844388860347872881148909136676605394114102280588795688235375843295033912030349338189204035252236434402045993912522943488566939951064310682353807302789861684873389501656585359294324119238520567137120678727327639194777341614612459304673927470202072107544967085968860336497607703158705809541512099906161920229362598138667092562349139908435645650014126588813904001466435521636388120665155490308089976926145583129089867143597299196542102285824469510014710211211448324134418016918093013077870316899023694332515957926574015372345988515228718255862627984625371758922745992454836936835424851264936568756628354088641131281319672008622876583677927454917042435276514119800353503145868352571324277728865854807215917119219672294011943917675070136323202910974983320284477287766476325534945992454535440513458761792650184543239389480421006398196815835921225351623450794960392520256109005716387640959691707431460409282302408976600775486657173290487547426034592916551344527098185202235577341700645821906014502558717404817763962367811481174527119593426287378032346535604842321844381487604110588751079358621483989479113279914806972884320785131315969679329260613870427288815281943473410851904457105476672099139206150024484527584800959022724041816698385988311102977696654327084663052413264558094536264508290673038315400839431873517478597261752120380782797606882900224110857960977729357954022311813545126417497778851497740611053178613339844228872804168010773090170475185940648864158220624059272587793773781272208001260385787470722074913588067713414841482452436768079162242831187932185382809244132245205918315097697358549249161508561901918523034772530590694906529494701291007149043913554820384347013622964926598083732893692516802014452102793901023341989548365175656371975540701381563731874140664201877625805092222461656689625573007225203930019737268294458169524840663917710349768088443075866082356983869663409331720725419056175157820263349627064032163557281714947560112265712506861709487120913352275600118511725531728480200557159992970621878471644123574182521148869823564770305468144758049937467806290855058241081563942967740938756044017042152110066095244026138230601361045789966290314621024205126870711468141807103573201559519039953808123232941601141687426731936214380739044112921858965741604174384314110932009433262361344296234504101028017261184660780393361205699250600589775134351133801193184353324942444215382322203816243584464759067239057741525938353534373602368306993016668218827816190517418052550140623922800808134731616223352850322839905983099727511954956439653121229100380866792370054836446588083830833560211678168496237046537843168196553761156980732698004165918198554621358519851057158079184260553593088559875463678345185968473964759334884111910151256924015736793630818769433942558045152928019056835952147522342651580895255624567574542272991758193529992827714409886784016677202687231079343173028792860592745697048386247189477205375242188293571126090920881209449635814403573734773323489640737408274636177045271171351636459234930859016501267426288298211251535400221874615983401600675222749898451307132889409380105225208771361272854946109389447638027790083802805105904898189540826149354339881869260675105157290006770343720645961759472291006517290627041849819800149289826549700739695526825277384016832556026671378535395807856169781712915535003626445384715678379639733240411631669635662100372028921594238097307960122106322090983533595102524785153554491544023566595178603553758521199791885947066148158258016626527249938721572172875001102280779285071029926465025455017309197811300024575047433379225867252649565366480811241587308692469870320058127744988422120333901100957429178615621794371813017116413374484420499239724558795641712386880747168015714500108517647073783332611490651669830304925565636761156853655077340167305293792922983372707491704760115118438203527198152636501010582492324637032648922050838596244304421988208031755806124820387792687153447058573489192281077911722511664511061382134719126544435654828180949714665126027432050872977003501731128041854742453998899148008686527681962475222633258112867602760711116039788170591791961793889769979465161213141917464400786611391443839566498939056567263653927813181522337919414054149766529637382495504737701445777141252571522015439880372123052669475736308350243475252954343028335217542254327721685404267087364453978054772511318717818229249737939495543227628663342943009381560959942424705902416846347180115747973633016369620334306460709339440909396809815174627156604753246236906858362791726412470279839576652256929291726902634395697031378951022711503448939595046207382269925387536905959354675108283380247992382606771572550353863980955320827776109410611461012428135438115825695698477903487171417042240816165945831863416294842550833431988627075588635525103572649184929439913098657473699797958552401873263968809037310694524580207605659091865242431425589505231695907471500982565425231379261984274615734951441325788857648321034350844068575385481923570177414562330626339739797759772015064101857427105505954894230881043399013966734904780175206268522810054294355900230330436768998829431068157821845750839353770340764707683429006595214699163881665463209257151720013054292533653875724909035383527756248132850661879030747746503819986666213679211781860901234670518002650778015937053949663363347005721500018890043175227432671111828856451731842602744412743314989902436085632187574982690505316573133342738617027307641398777860706140860912120681609055619075042052032779918199228764710711060508423191582701381623227413803116743325772465320745159063747804297627665354974204833860857161747100010451958367630656183927307730047421440962169608216756698869993242702841342002904416454463685146751708095413875628217009789023872815095646767121213247769405630798655586952540314179392558376600367904350392003784842535555849481219200946147756443251563006644150339374817209525085220511446952412202326740825942355060119180777149287259298655509213067926618741794192296042204625175855375997047894007336608764109403189345752407923624728032631670206439083620417572502195559200591573696698419400219560981319438585637263831321428603564054318324501772272369431939975705401398607902667120595245900907503446606641800881285823602600524736568217973656347594881898635675966944563269963536372845108858969423010934233434924768155928211618850594664666700656643399628535422519961353781692025602724905929426257777564227832025059110551731475318386427721942855492204935069241307649205857302603412706482246479123694567893928840088596310476064919380245473483363991400595693744408643313629313651246812368539073192236828544948597373012006217450250304892960454704686720421917633577036705952527236752219088278227511853783540268316127191486250607380182844061951322239409307047202885187481011546815557697048836627708060124792277895836796237539478544394884185476958969121367042925043789143538013599166308254410513351801278295387437588885737077287154591532218464045445500660620768127789991664890224992084105646377266617701408535985683505699442377407750195782057370710598644947267666560781947685809693767548060239437764302337001839764792202977233440746779058773645962714442809901225640994663727682740811567966596094465850852273808586191950768887142179155467140940767019254791726183431750730853816307185884692404598860101529387157484838346389465909682965353902530601700675705195366585934869335310017379984866395549315767563895833078202653910585960124571308410843576967343003511660008610958094275318335667231476272249075607701693823247631775480905798917348784289635130269188687401491027525808141543533263727449021563175814887792780445759169566380998495723589347119532123269394616982275649037976683998748529402515786400495995868822675655212423218565257535217117775443502475125851686571387424905179284610432293678356807737179039046983648239872531631255420499158575424399372704968639027186987307215838629663533756729972790567146169407145045674075775098596337407213444862789754733175344943505814809087114741618182940759970013184377188761059780655963667203819254321783304229761243464954894155209512140443940072499882444975040043557691152465834716242665164030421646897201109213009460391270200801808006449068797257979042235718976100612198318282269500495368049689814968912723480787252970791345327144874626782150071086897643729320292780570155707379051130144720947010463227869568991606570789098144742447492050126042537768413755557536407734802741470426967683490707065414481085933660480905750107555156225387137184369708375326296121283965467392162935095560980178774961256022672842248247632299463410323161268311260832345264187200877679546568430349558791934347439020153183157823448335309725733913214829052963627047735434814016129867746602806594848353811407815155176670307357356691929151657418345407809910872196879050318300570683159903639015284732438309525729473697021544422130641544813515031337124590353580906306979207018677517929912889028740546044197931699452625835914684060582387662217794698524954992143615640486854024133394613159954043529928371271479864113857136336025843252063922253981532619656353942766457407149771782216650459812813719722719166771463269924447900715812767404917205962633512230287691346273793661005867300880823659352933294080514259404902403365726783138583175988195529869241592283346872385201014191746788570924234667112250286967397631939615483263796590488716036206685702384240403917386636878152222273857008700592016809762707369301681317238528978796724948364448242659757323566525005613795956299959406133100049567687029260868061917667204890765414519675052854517303712308186457391684624712404902463672566517497278297875953861103210301489660345297904635624860571757902838976438338409735918788158328463007977038534017161370139459857766276848509868625505366240365793524404169792520825342572566764269500023885383958435833508133002827539522969778967628466889549788776394866908649421761338184035345096953952722293100921680271730727314384094938549770691133569775572921936369797408675392382365703730210088427316488000341403098262565635957500275033525404969731578832431295936206423107314798485753758357968198411323783662851826440984870373982768469263656418362210181531069604913031086687836392151650338874480270380891989863397508276221260300881306818640686362345827530353454529485264995245589061400933840328033263822203007130497974335218907646015753795019747656947664217685354293318816305599766531448218155382117031273174018495824694284919401279499581822869443331076370024106998399002557038500408973685717474886288107597206952460353671629378990505298296543994323215392635447176957095714817640914830745843535066913477541431527130089736903124939733279245957074410552112868395030928607245908775798963988858787348383309338692906122028335052334994768886813514478896237669185875284949801192855535287539923585774016463366164365206695397195912115930811966788876409418055770419570551529504337915144558210152836729040351671527606781804679104894461748234690928415511880876606808537167201539756542602060558187111391879336414689290650208087336085337775551102659033677092760663196639704440469521300561608069871072726985847745958856770033690654536285790192832783015153087058771384502692499413886829760015972525475062770908211899136558419173547388362030804370335325574348101376658014166535752097295765946235135788697880038240593698346108483635340517351341583568274002759906201380370559278153213824155725159303673231468162034488960282570004040646106727658218308334501508287970245254566764506198998235783440971566259563313575092160314294951167484742399863720171660238043956604675657960579628700974726087201544497752170090085915692699344305349772058975606818099409905309922966307044328343656218244306878837092543935422153428557400400113663712558662261875130978245776096881537479728615049134226856752452856088033480954052215807123681869869412651086148141001063019827880362683048556910860058037694932977628621646612258260488029468949472960891012319852977402171160175491699681305175457467874928863218253318539157036835551721565344350754330438862426698201197542945483970874268547051396470599152390663240726751227216743625098766949060223421973589226721376072113815680749215841163550817028844193317985411228758493113001898973342384728313529191943778603400547437215825209970775160979193982101277632517397255261268518962572336534427012421220327368995492596563811715822709062062239626008826965594007181760057350439195785739713962133501083378313820407022537426582909932601467210757545380024606360526641678381075948732168069284995214810123336712825915598584126290815110363531063294882334358295434411971775599401550757942080304831673387248490051055283422340327801012830709281400635294394313301154603767942970833682637694580328435145331204533602246574544621780246799303917265870542996151756011323052700296980958788849891100588036024587971389669082864820144288245558146551807288940878112673145927928486361010168282909335538678440462628443358212082820854894335001957232722970693121013287831276455826962878638531140180656414910321297537261322607932176483693595131329641166350426115484988314348945150134574527238288962532288815294611629721241074469079443743651957966406155254089144824476107682776723404686479593566714465819047040434153917794815848070782012125498558504418905029452027166888565912696060051481598250479777389221236554802392298694770124354597638083279266787320084883207414154531317927251164932424186664525057838614390473754334300956119540820684792160081440668380580781951252810419978095083274166523603528540005749493384082283056820714951012588130363144711909040914665827769636325931038823845445864524420090102458931045845661789922512375895335736490862978307767846612903160877748310858792874528080696432150152411339757149569919358126832060920297540899236328409265253024492128159150287110420922356815832343933107739077195708172699648928871418435452699094305850282591415424750614976127140665185127330165441996965095389929604711272984464706852431072501296520005487029097991556172953647912979137709696491186421882245410891054028217296279140320065599758720598533932116050918090375811255710260874338290625335499663766993442579719358368138399318135041982156143374627263098236289365575363256296360944318684890586535015394194371291981123606004565930951923329882479355922278485952326514939386737814167175165757582859069072341627033897563306380887382890125484605771072646066467510879507503512311842212454010804849827540570747119545782765768593128531566299823855264129402388786503914707958629826902299122521607924427251426030518806351482641016223644837581984428525325933855817271338341657783252073633927150289770763630567333757481772269759274850586750184877496879272556249667924857318395020859317426023296937745789045387520529767347970495635874099770295826007138226089117336767044290859469758490542957512782666832236411458812917581420305166448831468131574143817191096076732731115947057089618157438073028824293955505239156877216564728588221915147289720280072802442257623141867778008182010885019564722996875642337489335959703269644698600448621620498480693395311171440724295128630301284992416483819134327838665733890257765215077066511987582286213407590760514352277117904093429511529973089705730345204855863320739681728617491332338083868999887632435401510385169645117926064976432050118332295776537728659281153248950421101898682999131508792962523145956021835431609659464717836667797486328249787608498605996782253280743793375134895350179437308915670272232236000304908253362352603126718084889549729226859822347136570636272430587448711147922976170310323539062898997790743976308179216796898988313990731366568698667631527286721783677708569480667702827166150367356353735520573342132231106233936267554734802162059049122461262568387908169314592825523972195128638192786393476467212184461398495701273321657553134793893278116599567508068275929829988299127389073075536759178568621178378689656608905188003089306194911363218624906293431372624488988090862973484633602083093431889677808503212425675697813254809445462895801201103403742080736818035951866078040351500257445712821632373332176958238244285453576366754699074569100247084452092752685898817134975855875786977668380826100037250171049443845217456875008570170209206274030007125891731499500603993938931239684424708286745277056233338837868466547047192109252544575952244818647980310174174312410726331969796724044128612689259557062262624608753033257539259689960209047665256842745897488832568950423774969067360546657611492469816233017185905817231374198316074692718734766278353355826253641277336643697989639425549564205127594339011328476439262903742162968194827472386044851487247228763269441050754518338685028192600174377652748854696740368714078294893086168210218966127651349506472915364394895715443144937032077950237721156398221150016819264229189721426152410845582855947022339706343410404896846465878785495807591659652824394636654325285465150229901151117916617659014817871927981159060210387829778595469883533072286825424334471952966878991761009480444687051001186602138288035901120804026980488906143105704987277812718330896705271142469186702013021354743642614475955577523290953881715172377668113627292063562238315758145864487566440106540589974481465558592370693416982558808195507679022904713766232935841396916169905438290721077860566856803734008929127099255810391306374397997769195007143762878372999168174760149055971960970337465198230360640236380152203220595954967301027370689719674409100265693101251885769854548277952870392119490217134635892196160448519379728660997284768599841598595851510186294285945820153798054691873107012206266651072947026333962686400614066710979578054570992120554983691564900728049839772116456408550792027139839573390378649082659762040986630536202949846561582313916919066740271198637057643352995093898981492787860975845006252573823305643357972479903478206490701524391421241880142503447578124283770637369024637429717170320806904852718506618090215027549034028663101291420396934545675350997387058016016117751989691623635035020269701258523857332171983754034346697473677672169495166805070530621880210218189290382229518814290412860267906660354670094622714220333800927442118277594046307465577320288171021155463335828145632690642056780900944547095946957783721369935438104566194059183107709952505276983484648698486726377330045264309890448415326657349843510093291436163116557990616555519642694171828693690718428928283037486702466489627514587782408759466640204148724170299047540357335100967245309541512476614077467906913214320496266651324216787737973931587390700856558303221519815989266709608411717807031711251343016728798183609990647435192519999989358326003792396199240495804912446273596860328391122709075556091115847396888570520865018324535496451755395670784573620496629789183334218075995171162658830495054742934255195755879243431226224875919696911844333527030904836935689203885636483076403031208208729277664238537402395259260369791586922757802512448248638335256452603667035135067657722921993855519863722118860026671327035439588685060856217153411554812950433256926426215520340902403393662823131122123689687119373119139052228034220129768780840165704278967566479760210102095457233799199330421870659946233961062954048417011966315336131755598348157964424271197711003502410769125401548406110407729338406083586930949345802098128834926490437419162575618181233156139141993038970948343050625264959570361706981619519727725717628630248055410392445926057049707710749347072308611770562692247682572990906228434531799106274583842860604649278880415960421788255075160383484002055713130153625947140786191196154230774335572983937880069187672176120375727499603093100811538433254199698657353697572047122344784494050062357545459605757753447500037668456253269301918332049907935283880909308202611227137838915002082733772942804162052933296244940252333449932370624364214495319380914711782036527248709562545642040809272106479582364364771760388978852495232818841636147290232827168953255672489371598760100716223184505991606675213863279748278708407856890118666486672746347500298305308371093671264846889346010250701265209764458885163407055994480978463119391698147086810449937192084838883067303183849286334548815482026683916625039095951062732237447107165838361864077459744793460192907937169764897379810786519357267739194917311673489145518758471287601810234988036931180577368513834686510211105292590290394444619343909431014196642005061517240928019056795808391441534070833856761153262881405736021889466570713450971518754483358153206637314604442028500736103640201981716201513686119145308244344992745109333891474273788467864664023154926291745353466590972432149355219708393216193356282770920651502691384403485776193947195758639732070313213723276036626433865814191917281688599361767340841135836823707135450873772688463707071692512978726748297069173494636723931643029079020513575932378432580349638883830579490167719002214132625242136832094702010363877442731004935637471751957737778140467726358896152996428129379235638577271307631520621114730166815547597569143995550765587917373361386288804560265894072194273847576995216215610810823937225903621350153611626573223093131099460344459724813626363782971014155014292239846393329404083852542123429985751452896890603581340235016402744340817164286968194527837690810296374764118878196266087713289445776432088418344438067231300681266697927246913669281815320282508414432937849253939638775775557614429732273457426248565937522923928548458664816759000746718938594691986417426722289192352701352960172238820439108277077391760638849027457332845795180919258561396815420552696354653192064330313719822361665069563869322404996198863734151693704905317038354557597576130617168527949009847074894996294995185496359986702433735468055178482598865193616477934881547437774558820339630811380108747620287983744930658355722133498286908119613893401208299857673272712831013162387991610081965541284317199397841414355178169919093035837068678336081531617238877481385870083124312672698514691497245554609359835746868115104447789979364906459731618106181047221462593650421400534942322798436800705743200994513150362408731643782811873219299695262637954885416139859546696089454112043334748383642392402699549262247173337201882982088162961930383482758517049501784894717727360649092147203180691654651717293277481166827165928875176919591506986774942636150940294478625641894936341039153787742865228801769274883929394491428268675086938176875828267852026700626124437647456031724743355389959693130956334578155864718232898047335742754816621571325783956792637199865953137496359205520684521295644291467466718092984035278479120584193581668544170199624179043156669681005492943597736291937977556211374468637927808714058251138524472967941600153040603463570397918700683757057517270648874521001642851611501790936537748400507920801974396734178097926306404666435210638121311528963862943523625553064785061564973835330645488431427727742525141739322159179767242332958925376573567288167204956422665576110264856858131199914204209687409739707076219970490764721613980325832694111320287638176725826021698433850023115499781455811795966105481560977349052786482016688589488732701771245679586937519714819421044020413737133164414758176325777738478478853947869653613474371075516993522278559574975820723674781494106555993938856862784982933888588510282356209069317251298683238087193939566022369887533475660458086204576103373912977814139104559606208408778934674025166692243677429435220468852593454185852838086228808608080454438713105970623205111272504496022030680342852493571108609056597585151774121129783459200564251760221113398755484044602226227410922365036753906682317819320751981488063209419534531273162669658632704251928682632498798781058570719430639920919540762922219311989259929846616812380535651100456915344835695778168622795947442814696313355586445965171931263460407232466087805773693110800121457561629397540525334043544556315034931437998957072541186207252825214374969715170121435846516789991125895375415770832978749153901294443450804935763453516893331077168193217980590848767405445696984857883335663435232658592705112390642941475835082603856356949302332194873467820865808277969408857643441707773986435079564694119575229046529209090366821674241476296677450215680320735837914562510892359083971133491335811514050005536393964002159092788015033988096531790330538047531014876337949352649756538538882363907354393163948795640436602583825093392466288309478600656367400566438776006332959230216967364281949317407591257974518178767712290573910439553163431177148865280544434048438442259908699405321475853925844352649278047146216418352417304846383749126570074814850099853908567143404331346142135025174890714086430553591043804092389272365508113261817370367209968423090942827672187161152250838882124434339462708316089177861490524726124157300363935189926487164093305440037687010143736667848930067139891768285574675404463551243070089837188161551402416775204498734042160677979455278328362315993005813094417989662230609812715696769354578466644470469340827633192920049800505985488619447502519150677704049387012169923340181097716220357434844463847498377978608693632475688118645391446490675975350861969969887571958739217285899680504489236905495264510474557005907958522301842954864060915994376180423123491520533815252604629087957985376467196345947427589480333115089601444499311475077834011285912627659926881296576406666975837771749260593649487911333651666791635384709133876061722725974316732384773181232424971029522275751446148405078725788518705996134925174059983086937715527210167802980335908308145876268482447847019467159303666412249639887949189632950716572340979349731810664866487164517738452423137724025246715890219958635249258122081124628182641904719078049164460707456229248825838286236205903669222676313402938502010206257146217393554382104957166064351013651730100070069615669792212463836109659658256010285202551664642365070268579041538406287351639496262186534510356006860475158017349137929367978585819194353309356738575482866719409139185575262963234844763222971412371316266451032347042265144682394564994151418071304043469035448814572947903486841041998699271696457263545615738350880087883714923259870568790136748206706400207195894298816144531270554129702164345375527895865914534411906637134133457462821766257332069013285078728104116688808774604244702595012132054420890478408470734480635155718634297677098648779966648618883705550472548624416747145240753485214735648049591142150788331736618516293758157758952778687116018907188469531846793658098619839382611535039669688069158339064610434707033448877593335558416948643883873418981074245318879204845820908490200182344561886673364815557071878430013112655505229138273356697121399755809591517426737261143174119803981366820825536214894676906548211109138463042408604178375643022443032573776753210573208628654186108828819185229878973540731238695205544587858397703316543733019486369690166255187291260694560551983497909838027824035804348515616264533534045147121227921290586511623350019479228636993665725863964613827452334625779424047132374102893846861488105142027074418467373298732621795610122248434797335386005248745052538608173383940889034184828286845443137427720934727788847882814548410952953113183315230671749679783371070882567115760429077404708328090011314390529282191726461546708053885967138787291918723828636562663397890949793797666360511340385799190387020677791110258152152353400120028002470298342919817150136478571782053864763405006208656780001304787288923843603883522926992268293824299850024468956222189036532411898336085850427124528413275716442670065839490101622079210503875932789209915398863872839389953529748410356591977321751664279376230461918714186162044585305613030710933120789887267894052239750004678503455031549256036192695780643112496854286989510850257337202042520009166926800462674342412090021288245935788132034680165755245435848179991218891357794980917688706600802357195305382179900853880268924744522451966085273859545867821447085649410000829565611580439574752252364294561066343451481297057136908173930933123307592853367186538951388720252718769048749610998819955490772891116803279532479800279259999552994882348822027535509827297561746574872839117102547522685005393633608640945620162177020815866238881526961215457133866356778534333033910843632455189384949058678432490665557103264208824264749505653598653172377329823281838581434480885865589713885936215069317208080935146511938245846560363148996030422280737894633169624401849490626095570135023416189085066841770089262575053031023323611259673248643603500566392738041205903181471597243978156175612967213831308365113240194929956058732670040776782389479692748006967274987425814776040130269487977866280430598162478228445280135385970622092508883622323143177494211384882464434737866270413227714663344449925525967490397687319699743115811365826746127271574235234675101277466874031758072179723350443185509459959404310930829940037416551014707618666587576518566467026207848756261842374236878663392309760994322455034434727774489876937270457101707099197937570249303191014536462348531320915229969484997700138635678757152353096794945201615470978336919053216547424415854982141005233549114328499741798809165552039273077656984688978644609781160082287999878156746019026836117526853855872700262706073855669661561402568745758472847365815163390789764308826579590617215815388839739279912528420558230364477317609257922783133786440462156860344829976618355661940350218028552231383157066560314697735931707787958274621347369277576425399135013414236398062004476148041487236439336368026433301645153013695793538293157593273599118020876470929749563635388556168284302152411062478187673392834872981454033206419620245032367215293653331672847750819333230719198044144130610282326858398475388678080298112039347170077733435439672691978968378179315129731142485521903233159286379335235975223462692166192140825200320178317798896415692082813283619439912273263323006618921372650813927810790079131758178395781120724382822308321047478316317464595401972578701788865811988089425216581335874572124272813221842684591409033838602550126470761116329135598867287401663767954362285528380940324212960065415879544768736846190415476164442619080880969645393475633027416647851253965219166215049092636369526581395785662225178008970311735670595415520712164272370489744411853231825595010365275758235868041204397063495906629607983588243149729671731954979199370418997053646243139933137612090912304675916432971708064268021836992862806428761835337135190450049304602914784325733008013759663231011512629292312027014258340695840995852119435156008196088070256215515161112728514134127032159624024822529024828052291279977994135612426794136018599663804824583469356820149798784492920646192305358888061888327012132999237144633134636510939924545649092103279714651913358591664003204042374965769942066848630475671653695688616307641837559122871844626626929811869730531619194014425860093651669645846154770024024504395018506504133596518953957514760613788842843049059464208963027243460114898341700283271005286394608963270557982445124244492476527185746379226987855145759143248667841360006701720347879833202202694634577644622485960986058560142103428968235319605495384185000861920922480175502457708767309084758634831040415686142258953147292651962595027349436042081942959863965448496154412128713026866415390862552471426436109239359872401476286649091848188829296798311419712294426797134003866135061852507363755860224997836080210547675508754958182974423094995499252964798948005389093639827952653703989384806398377919998451571331222228110579537950617673842295411999841348045317227480859266607533200314324588558394967566515854766097477443008364642604865272273954118303146284458410020123369493925912575702689626438832129272864629828640238015167405898488770995303161955881559164770225256976319255377160233888382607339725213487360146425763372691001774598255369080483254194621562719551900513307600276416193096925149988151907121635011535480574768547059361702022191637204407699520044896915235203989889638118758485992045968372928593635664849172130077620675392932431919829145209905953403072808975977285482862777057172436159650637510145793719878728959727897756050005462477799661720066503316557577999587767950133704573566336691333681335123317356068582947348448605077362870478294849326107971267988146994005240258801013333045223344032973248966753014555807784453381188928455899144695304674976276656632961946373827347661919040533570868151408886874336948041991108404590535934794612112336217961471029511546960006932671886161525329227837499570775060944265420953627312774008703694957456113656423298555162517658460602147491522785676600518711871938357414594745335162752760643771048433212188313474516284537843023660752300021225933028220634644743047763307591761658645846146385885523558588323019109624225265717394496016262357792750544480593362626384153778163328521732792327036981661853773818967627242124436566978696763009754832415024946394483286490307744890859609426510688675230608371394158823210721399333422221665514181270331072998805999630444107058835002507515811602393107187681440177369522383709308367538334773613618108526958365093165826930085812679082397473156688989278698960067521766245197276892913518996777535085452950959141013280045853748677773643203925968694318031500411640221384984224374660304300758945714041126174074290586312689780075623186923214169262962002651375878574905815834273327453547602171242786787324329931851417266439659680269845194022276241188124205158448609541688690431680257746800491490571863146948353898940987776782631046969454234000633366993925276593318574061051613002782462080481981779593356883771829945641149639165240339749688806192785389996430946344610733806559914175514489214362183730482025776722649200385475719146869977912279812469512097467657792812371446479066486285312527913147492019624186407574610613200678100661219747180348943066619301281341285810838139277691647043980110281602112002290538155281703714873786666612545127766483529030078521778234910936546209716266935011509190777984280552822919824167013923246368496019699532504576167743157396346594208444381714389380748700758569952475277322567977111433476158181585467817843793477483039209394543496850405240335170734547816339511114312366618324394332432402964826985775933886312190583768518822161500872967104426776884679910369595006219575323102594010875458865028303926672329649952644461456961873080662738559505767181689337602884246908374179609461328400657755772754822415137997081126891792594988704837758460441946358414730580188887589642643380142698211078883493701815370199678924167587428747950871057881631131355134208068277961038410238055845163040238409838611704626596978841986005981567744582838142871307025312229102784097621555734079951211258935902134423612374432474008423447606453221134347960657826615981868034306294154435403266110169269241737191991739534232036966638290106318575151727585783826051071252537529590903775721723206271898205742608367290510766539856342142540992836935218440090951876990002440232179175440304308936870673879792675907618603952549658353090272496418256703054637127836702086430774597227834995764922835734018720899222191066215455436029362354897946563964869986134296579747606464589534700176488909390640789708752937924810556211554405164479570515877585067400433873278763856138692444411522224268770515493382559181189434899821170775033109204964135581861284134627240410311393004400684715091197327198438090490079667346230716058721688019825055479003643641160334273825317506667562505252457361846114788268948824009050535032070436111440757911354979825669776478990593114345263271213039656048395413687830594367869217974185571936526264801707258932339488118211211678775545805322013022025444639961371991266706979508952109796476401399077058339794447984401252096917368822898076005538933294493220408445981747891389740152646552615238227377954175221642232038835049116854443146327121178833265832128653490682864987640270761518102327259757911261191583773225278299567630533065901045158391069101741229542620525805972911785709382401414296492719281329465278735340295680322645822114776413256956245198956470583262764248918349030367499935893032485684196120801520110144892974368143388270463537684340148589584039285567440228539346808847906545514966307661449471554211718998485492742694411336552109818457563003224955244853187389142187065442209351791404673845179524597080864022472963836093071591269363768467380790635145137608861846242158883421272254925777694988895755231627504722518739694212103203658877824306949263623283686333298382409423640268027808215901232631746521931833881069367590377179235226609106684705606195278877314912227664048482460338824873113526076788005927117443675832029959389676220413586175300955320052687315556290334784049711136544156258211766994672057723264616107351920954208295292122268053472463462829692366232183316332653032149252981097522189088203655685153703719746964911507809682846110219934416876000005627184554340258244955317671163235582904212774803597549578999313098780200943688674242191112013354684271108634251032077631848939193090994025676225935238266451696983742706304306700307057073381562746205001243262662206962452636385973080347332730999279809873901108129574591140028092442846890223544760162022892120644278950138896206788615118626370000178568108213011291085549140925716680100534492717278914379285759138294747960719393159873530087823217241931709566056804690339089780612513263231399285964229275873925856378956667619891593018027749026369184663489758221909676463437050761967795938857652131714888785420577955784099407630767771938036383071695026898750773072055500003412584626180606860858951116581123230653874837522977474347334805073049791326010086416630414437208721972430733114786080867236440269294811230621274323385234127530337273555448651601008844360263449853474685283742035697655998502877181825054261442261982414488287685753091843992275567762582147332960125125146662483075064318014512589321663582249837721087608072792076845880913024400610686710929795686737233536905532056335477846383584362351289798141288914536359014428935736147781104454167428230768377500057875636965869976398684276980613833105150108572613718044526017275256063636331431165953727970617676909825125863399769874561576151172357193349795584427312010633645174725924191060401557284349984871873160336762221417772157820219292206470216805650147959294371905327345647380094122590126783281093321129186544633752042284582228867987745680683299620742153905392756806594942778282616587564854868399647612601924958904007453836893773241592671086730563738847434760751076597900917231990281776906038045243756941437849952077288724806039490695408154075836398178636557542298098598400782746398909881206852871925363620085077961624604009235141435503331567291232243928213417473245564587609494002307981716205978974351396207392478288598039592544851824005081949474207887030999503787033612900629206790778105513805709607119636311462900550006825544026508437499356626677967145554902099642827643609135016349436174610913607257417502525651903257162125481335110833176379587063354921108243447155572713618637577528920020195908135143612272241273130096780004299442924366938636904746623139883829415134555310216285658057930245387530254938000980674082395220706774376325502461955713735083964129243033987899519457108721414528774046488577019257419971406356773725803566892070143759512497756336260255579049971199372378571455085218417250791095221112347190029109870136205921482307843988439651471389175017894561355374681016438770439994862398121285500587101046593883554459875326542024371648267153862413475277481849730314549032241348442841535555610582677559289266218844197345808374123173489638652644526564484295498726824857757289020211022134325976055358719212947130396048328123353421864487428539782414202425973447027987254850530987001296748164289714861347430432832519322915094389886846079738941276161953390280900679604719621175316969518457257985956480769644397156782924378160780329049112346140385447693608616704491007745238085036605296762159881286143349393367645961969094925212220293497155257146725974228036517814931039391953437298105140829600016536772433879653509513745521303300177665747564538825965224795368626127384565820124423761687634193803134464439028490379692642439178570104168454984451542940740830176023823284704829584955945189640582170949625814403016041593985140222502451324048716402284232439673354813267123533948840768979511062430271727314010590643001555906540407696471551699087197972623216161608748657440947175329074960573993366173798246647512391256912643179615002359439380603977652753201654772762438004982543648545470040053215036090722504203964025466475870024937043197674611125346335796791460788069448399352140655807355073667919741537895931497568566800770394641869740822348119350003775231674957234183967847305302681960973543665539054286359937653047883428608585057412162855682688406818861282897744535583936966447943077033146066972028784443067921411485256078674962664352796660244631360479667414238130095536984909794898848855193407518745306787055584779959243956861289342094138252177508055883520269292761976973298722433141598594111154464670736937129835298976925536825565589765180676625360716949718073775840589548041200209212293230120366584122827251601317385243359916899952167377887450323924984054767501323239279020825509651755441673465859929243971616048357259360582066181137408609647190678690323302158912568734984896364217668990484450030191051664378784527164068858291457006778120674892208174151787680026897565986849694756488567664768670662046364975793055316851552780009849648108452773427991380797663414739683628439515655920966034025218920753051593764011589279421431696144170496559508994041089024749857414231509191667479669740422352924618226478980534711358975701416022629422880895239400368836571608698066856310066424427270843325219032681152380434896848266740434217705021569049878238453121123311963948687606937465900033177483776009233320726595668662674821168346145363468377276230924712942859133951980176935326253042888667050801248019441749202132243452394674113900614630367030414505743165587769420281018008752978657492422003247362250824293877422794148865249907056003283070962760555523718596159905636087501904289505665093662656000732083246762857325685011469970445496862541749673379730942081027298059476703299787867036528339687184354274124210046944160826506143384541345554624409672125476532653822891585946487996802518825889331534013165530278680494098944849823042493492820998038455293443413866250127416855258930203461889683150728374235415809175117043809368745906087739820896784880636811534349594743564154758439530732918327131677232100900264296052892906096123841678674905808112981263608950381350379083209878663682906191073636265213201066122597786808254904024793466875232885015076056049636602926872122116188342998615201247277866800361306944619955656897098357591685483715289114689893517754914103131741532303547608826096111038181812345463840764001203375488083891955816496792047390150923828760638014233389798951618089418331066007339672889170699050163746613816989972304629288444004749423436584137821501993490124409893339462723792816351264646739291423185391141728197148825114985453914295843532650629183805126778961330675251365334412945508815648864866842484461425654298352707960530126160091564945771442717725367620706905237001976558061501979445301432144759526254880482944311079136854164829402506076141406715026315670154885956233638668127622944033498232821935241119294546513236295599141699931040630014653110036349365765929192681990233298328528018591176739090723456146966910007712364690502646103766033052977716490997223410602528326151924403925733462500076515479975330377028849132268557717242033330106363012744912691304416464331058562937023361365248493387382946007410383788859164972619928982830361472510721455921395775807983063885977384727467114937703320011530392607949447881040230036469095382616209978999046353255658029569319322295276042242864566368239446952689643847354008955259058801634335763028158467070285047633929269326455622590324884598753551326727430971254185149811349733801313780576913599244922746854631878565637999235723490574219778163889804125771530140130325296054787665125582801675493183313444188367499725823311503847461271598858608055143269846174094133077175065296470930470535621749522047175160456734263598092375266731351146700990895768340683934180354470921236552821040282794921178263056183695874632148296232523696630730716492388139147563455324411893769458404201258871858659608582555423867660218686116366130364728918096654646312751695655075990669430415566550964173201567867655121432885274960215029412736212854870250320034554025173981479271510876842653779229961263112770302344814062350644554100386900571033402212385660053558407345996893527547142390486948007695656869056486786768501160584337038395918456778811494886387213541186050353169333987849867543693305543546572757376494259229065378263696427744076585487166968751820506489315773931581539747665943349881072707274337829015981378456825758499053249110836466910437491281697849608153666906343577980839942959524083060132457323589357742789079027972672049000315259973918838812643330825176958218399165025403836146826331127545687103673235602594805731693250946202765859201237602439128564410948057089237019357458896597719628115544573204061979841572546307504219604879127478539382571413191690629332632815245237865701935623051944299834844942859614473124727841250054458671468017119394304260192602805237131089468235232464011070446033375210611478855104698663628706685671549966762065682834525097386271586286001152361965876602593686568746369725572690121515724816302952173445474076971549723259521394633160618148306781269222083897219955232032357877386363573617330986660244023855634268709645463668858490554673143024917053772111476095368279614223001983527235596965371640755280959728470857378692300641290912268810152792436942082980840881710031409189377728766062370705550755166153901942289755563155171613712167249251096658498905725408596765743738479483053276104182557317466804700175296745512519525419934722442170222566365237782463371990019347666340601885604139285394833547953448164207709577895790115229392691161241284070404421413387654787327608207707644079775213248351778923008149861970131401153672095589067060631340632210298163739804719172203691081899384398754862066275639383515503478261905281446109736455565503003312162269893619425938519464050590029361308349360823560469586368451753040313080082942593570199202049497809567876576702351825081336058882950200251529134414449884393063773109791738039978629182166023324880576986430519994963658814799796447255638101289429046733780065485897962630431603278954163124246594309515084754639248498142591848939558899903529516379899327380880373846886531465515947105471225907552365323226458557898162001288170694498163551751197750579131014851891075259090717387163869027884487944372909912451762295607902740227684820253576340098205118059559674081659698319505266592962409598873985481303040449159549026684867388745641264707179778978887795746336554572593701048161930238788968604488503009764724451996095960805245398549968829304847379137727995071210794050547820166007371593861582034779644043083767317883306486449370235194284957378512251121940168603653912451858490586502031612641252744891935374176962532442260624829342100147571174706757367486957108870187670470942045040633747489893019120131467028929600110033122505051699966102960977151431117116602977589321420297852443623744035653598986341538916392972993172163862801947741392959597078048266920314883382199253265215819730830637174792550332419516770510535255368481860100023344753716941561332103892456882949677969124959656171826706098084770751001210408137947543398672934038677930724603657444375146095983741897082713503069007438390505895192918487310134700878834597015234709081231886659408633296646021044544920211114506778670249298366699563046867347169811866480378364861629075755096424300044541832823225056279378521713660659700258068836904922473963378512633301700281678615488212730970222847557631980691899975508097013540535260843633471348230390751008743268926874641501337067638322583733202794351979403550335293222840963945725055231223617299285736284729520544961095618521537409528815743039032540266975706521238373478394478522180244458975167454993145155844724742021792324339635799589074172640489955439862053574492367720253468304747615404290673416961049004092479939973263892884547644604634411189923451808794828961004864543246720614764764579585815949639346820208268760785713631258865898109220674397474613226288162783743635388779103627074057385907940368830474050398040451772740922286617299544368755421697001475463626263697156186813466127531215788802930412096590446545389215178801482193025192951557983422396978910394687287186712865040500254723811690165635316939917931083448635145310635225005198047580992632781062574695034966404684507497979875178457829816342021589617595603079640724579823352562908815348591147413277458471369390387129282449227880573594452318577960751739255137969195089097032787907011113954468809285958189967496231833263767770245656340049325140051590706385339796423908977023556162583750404708350105880719684521580889689703021621893696872115652671443820255940666905476864028221325554128503153337217799497482274599018567668304785670710408037495702707699522127519131537370663052472549740528587150080844099921653993940120198569462326775167421472041040412740529087231074157494182432615822496997700476355838387105179526891922999880460759547024044441368348176312428614866213896834526018242151298707798956445709835303743606661943192116764886403747428105857702938304680258404521227266472415432792223014494820976230198768420609295373760130348747893480227312933578906192044265525166337999700064462952726289248459631002725548893850213333158377779797872941660562284506378495093684130942914588663862122558960138332672879145213430283482814191225727719095057589910247525131427231761788629093722644748793609328803414803748030375981070756096151829612222713895524980752333186066295501536743450576110531390613640350385735203435849221827296046829738721784341783882207528477522993071633670633917849713751678986601009049617208929444060541844032289260591591958186089419632009376256026999852004942012148881607875663523866814848152802327230638288309090261706267404393024479116160783669046148468798187045086276471167362554439976698522042070249787413970995281056061855936051152501847451603169248063190734431109518479816060554404247738964411660841134351258393065975041334265077364960502707035262581346913388111493228568663003145368129048657359726769495865070717304600253843116858875939754520285396010759002011196206610578389378512224218486183096193356962679549144170671046275125382018096275552494432417814923043269115476278695358836645944717830238411917409199050772185154393509458392441747767559213116487794897676722306710368017924425716465228281344685706454343865123228057510399607793348109201459825636515038471261112206851286594448711914160268966004694037795997997200743399030230995816181682312615526014095246618798747250634274453676357213085904327710412356147322444218995670608322645805773467694331412050100091142336576396444455376792433884884727310712419906228292894728104054538875410655690850409675610502010625814195943049359430708181308838132093141320730066442842703181069168089075935201886469265988903976506693317620505739602300449768341017008028699665110114859531125955302961929777495947363290259158085174871057743538398781422429416924110520283108869150621815585155580357951197140076348783645155874473084568365145949563810245684753825130068132076322328307840309672981975059441123781226419635795345656239312929280130114744902828543469828374327463967517157593971191660393961132433911914476029933061511334209767643950297322666660953535505905530943799148695028294737287586482830753481348503724346606701707034061038648895214233015133527150439683575946411143002259623846772208506517774823125424599424921905976096404415917053105148144061905238945975772549727543631603492916418980386801182547192101020573751100419983202680540486281329595873648409314059544601373067803317182019854761456433358736152593680524213626909679060113099443561707248500486651455941553938908743525818106857393978046393822122971287793932855990360017826983183013094674360111957663505933563534434336803857133416346178470735563225802379400532588975045153530544963497595097858339427832548581669770385325706475888913427016294483428672108271773870172490634380501096254822103081740358732499817155227830799237179294966968703498654511836763520564823413464648256116252169241630808678084350755291816247942529144303852605993397323290751150554664165907436151835769550693611420155383424679621156255077506504240795702088437094770263136708026676483330548890350825855377156810270773854730125833529914397282636007581396547647283368897188378091342213881204788628744566979849263791271044911290687250278702817190908355151819607049275770083706584756094495938513252492921834164618432816461196181368752262289866579960378410445763072407147059780123639742382355620954980967270559108611082811022339753331140002235731852302513858285788675872028675641613193549675056199378690391293849476870925555642600309921189520223380197023537300538380935437825719892490218854092505466232016661816687872039659351554184840196234230073985565070157617222802657363651108083994266750504551676379127250952573383342867353553258509349079962462838672170325293819571953857581672676445717070612686416162837231831411691193117932449340607730995584712699511365487238702796993302416683985038514762498389005152016306007347824154577377509815702915246030043721192014920528115257719809864971479080410586805741676048477250420851910066774505581333772466147795839465278207580427452824549503680050944834608956218034910367719302540043557429428369011422627307198676714811464027595876159687847040040830936961576924950947184098917161744720757920489848097588398955981370864400922120107489576324088086215596630924953262180555255313033301636722604415431397913680143884493070394331094451127549217947638638297718546351022013277584167029348160837662023013073078053753508641530354293107358767222304875372805223298416136328054739133521804795722382639185215582190162348437874073133867057620759589536656171107369225867971967821373571060258018389662317288874230887992810913030529723799785280450210936045320712846721181127877515589521168711648677526036397371751762253715751882927577600748295317728038742755769026844487020620359705413173444321872363278132550140464509217606734311413186099429724893532107434298975932507847574810594202471128647968563292722158057346135967553674255247928530021830980781692418796192166135354101618146217057014113959473592667831633354650321545583387629793255455083824502815640789081191003872471346976852521204803205076933862339402127967503496594420673443907971809925349683498736186985609247300417626272211356987379281965688313616440283981524704766660919494469048346946693971063398531863207259012965800288608658945670765808365453966911813186876513694496381245168082150426137388982860467074603214916066326659519165055786900725805260362844201319072204177363000426779490768263809482748640739874559147211158372133983595709464575513765862598740223611071344622212256987294927953808201482968174172700972495267119865860015550409734384781288355788952413131003578499838414560286681701273086073401992220270160349198597096892907473926630763210538718063722935025516685750991676149482283725889283848840503465308501128450403889845351105677128021581209300334861012328002856140148193853299912339731661514099728508755098914918668184146295717019611402695103162919713337864829086067455824186176521519788956929370538721577014982242791230779830793111396545136899670927475409555139835347477318679990333340591346904336383743929973485399105567131164112408994781536711437214083066684067420566510279029271162360181452739359608064083521605116729560688523401605134523092150791535257275753558175218322809228549228636084387666108007943424070996039370322278063020325639738599354739039157645463885389913907943051538379908277964620014279476669194807748271075554982698886547282276408888104305672626844055145663958785008486756741070037010968894681667131895716020651709444640083212613072844707774985487780991518565872117384678628099123619310748817702684254197588080020906781739363123208184765637943528753582133980240498489097941510884991761551790160310856275122988180661604261716014969990062075986896292687980365843825277219134307946313356868754558409853853503688653996713377757565605969520500152530362523287879282093826908109406941082010344324611977856993941661249451907568801653700466661253171510802195199862372356344203528086504855372655909051147731792396661980885964626704673646827645208139502673972403517238879582283498912873721505083237545611176532024541971846218365496440402552711150261301934526603925437999039630631029800651034979142890117286712533870310280039408454042253578446015289495174961177081603366128573325119839764151436630382922750793417838396850781332483067738172892743544241911021047002000589823884432955744425794979239478218011663387531806856517382801031659201346903230300621982638912174613813924081090117014333196830690709011746588514375789718834263256622292917309211242474808634835910632965815976554205701740852872817821605116867782281008266519600817266655565581814988614437923450893804371877642403438975405338107657535880149122597451823345650825362117520291194376494602973868975182073786518044791113479248729504743125449042295488820449142102347060149491097274628572591493458781070748739857942015038717850191232488035659540561182442466126107790212794935777399081571972050256551265645044775385032655972552881600509906440753677262113880268740870131707013708210653546155557865235318226044276556338647570828930322789744262641387670989183349839589005242711038411164033986401079112596448789504141583714519012100340101334928463684182913835136166428558640687281086145783844013598645014764851324710240049947579171435440630947962509792545260216304206329970066157140961733902289097177603916598840411283904369413542449565355182317764247524854163147263933763002694695255732278602955516993006418485128454047284431177470946236698583320155664030131602789703608564089963422402355162951525899177939981271728363127182157207042411584534923673224904067002859654294308473262766661533941892774350075274045360237132404248467859056428001043239266825998945742977069958094198778499495363727596626222002115649708997744297030319571694521655968238260388405793287363898166464376823970707157840136012673801991291515329795358050406236034824919816620689483876430868463755886537846421521631657396136772521369306669587440821695383310493547882571693768622775439200973064870807964960482039207326379349581188612424999334945403185351553341537783715057871662294671745796032866290275371210939198361976620801271237182092364044159333342260055951982345878889192606440164741162574043457017513640398697050771451955420807093669080710723721744169948534952615709454234513165427362224163223801707877371254280399602972408699567662072905185732926652296973255948212911725970436797139033734460378428452366854991006206101100051575554605101578054611551385333900286844551716500912562346696652053219851677033468699519912623562935763676108996549571702063211875622840054185713838837318283138336416560268919318111818111798066657140027930816087347838921881348332140717657999205956250422918258070369723509111924488620694502380328253670471922814618660394855080910445885092470349498311769333449964409026446035752330333640222370684663512769760563215489649896416585065517709340684745178835008576136755259829436501585270580998317736163387724628019230465497769213344356897982564856070596376792787850143304353784936593529089889026917646901799261290021627407989860961455353817657739879013840753050834838779677309434803525904284647303181802854247608000098656267474734358928564111324605242095103630660771313309785976557895260478976887262188470287958411805870728166529654665085723857156831543850985585032350293317589689037434850786979692967130623930314872452980705856538208989278664273323836244075420546596225713092586220567393458712953806794155320599647875071721811926343736210442896327498997635810489836515094062245958109761340475739168310434497856347396248227821546118051351687785024673387369277648842528611531734479200858354234225416835792209961744445491663954956832622044916399871502537005623617569000302578796783548722179618182866863258624422689193875731279171686495008164753007528221180207100291886855392911956526959194014869305371476973507410106682978509738837097815579255611513768070568384369943661421576492671697010648588775936119625635369341565598974983706468566250307965612295409562988934786124994654441695584497432318542355166582590661870167570477632564246909333540991534547399239333470435074203669479905780517628571699147574024974172428613766532922197730481135056788749422510436967455716706084187139301184371007140947549874663031931417507241011209092176211911102873249262855385323283779315885907569494510330498212421694821574596992275786309074836026172585802994507831979513359172140260796940461257832888334261911598692039894579504845465833739425026297597314393003882531934637461931438919850528478289141432547094485058262726910207452338753406884660776805184072112498343747776353588092226860070167985673949637686409036502134288846182732534804909932545167679119691175657723222908282448650980580182697279430243166119306129040149689431034262208662835418950618272824729730955552274884453361905045312678296137591894975476255858992036318286216134728767723113962288562627792420311960810058936728369321811450461157273226926956473173544627691260885790955614639023346585842001855496141529429704877084900610568393651690178426920297171620812021361235542825714974567806036984845230437681174934292638928266243571792231622661864953702195766101486338505637795758303170945117368243388621090892127551782756982624528787959788669262903774251289964005567539000453530840808124334631190328215426950254383847296955347251180690305537848527072084896739801475161382495513894763507579767460927192028618058833671644711423285556855400871345986464855476562564942403355451688266217457206338621021054637111307524487231261063903224250978784498084783766631813693462079716683295906896995514550639139279974394358692025143776446681323504927840302826488453725061777540773292917836582650054443054838119791147741957146995864953415602922405040668697507607629225911401479364666989240864010521324383428160177296468783590467488959978171808544159385562081764442656434692149409766557857943231530630386609859448829767614696146266629323536046266155316249350470934922731068338786770706796110603924445496768291154024828541910229530007825327338101031499687858085671220349330053587047773934969540955072809670311040308422597728887085001976646639816585663202789430635110238702167799410097341377636991646970487058484083988796393932155526240459397871608726491079589570292391684416224725939563982015823283965142644130705189987504328531170651428753510419614023220399368132696801798447996443334097268792855776245475146753956589852302753606099455989351265931223966019299983991359645810961708398592917148777326488558690156101177387457577233633855510726766480373633384862504221816104835699778733204026598148371682945604693488458961077618244270785353078414882467883656120281293294355464945638173835959201191275390136584059037071009207758543913030040152939436456356712644585470999301486777137084334696740361263254816004557073625219245485574549450683778903573596113739816764016631925114965535083553722130372183076919815730141532366865471477824494813771262981352238244445736446851743520707826579392814722133967934424103807923381851781373007846279460666501673446911607255551623926236664757042703540176087618819778075540591109376363471484641643735705950931030757537353370593156806457484767992917010385148106256507005845968645902263524184589444174543510435878927282438122663657356966070870537308643019731179626800761131433899925463638479560584902833688857866944423657139580420894112412267297385813383896126459931098738828821238941661069815439541206298607453869307058314297768402894347574473788274532562564557027555053686018422068581880755580026307455270115867346218356019906864125030755372636566001362545082720015785559107486195743974997126268912566975559511255199707093449162649590200104653869608884810742595031740526127339258049249892953391652662011955427855376847593568400130622551399758576690357434135137418973335444401065722177465951193061664090580098633592437557623089775976388521601316719888137423494873906735884783756313356051500780125512761943155353238349975838243598585350759143105069123966187398357615902116882781815307737262914190914817558618110290378638301535855699605663507613037995128577543772224366228375726889088935721199538212188211516896327079319383494588245483747138805907467860486754888895279271454101476394030392404521771897694104173791211739341244927587448400247960575493609226134355849392286661913238746240079819570720441137862876283277335424581102071216725544890752180414212911290238399717127489978901855793894000456667976758923872289035340417552337533983219734908677404127704750740376712389799093071901781701015472649431384372985593309653536342176493802802921349236757243466500248636614590486472035679155437678827131698261181545417977467454909288972409011431062016123966297042402172177763409727648162353335887550604975429857565226607695346845692758674458144055139534621745845997459464064560114190309894468741682802254340448285582958162651713877861917644482576690128763590882417708466172855910350168064494839655773225880806198648331442413396717291387157153642191019801628740963273076270980978177524841285890606370960400727140099639347144540692534116355985533891595715739938112378749738314921243100066269729590622190719387893853274242743018551067759827246802872289770472575348903120148376808559301717989313831833385630318594865021773310680779917574056694877681239154218759496837384696228943814983964213008709132741981570081393277452570872739776635191396446918166729380004657530106049014263951972668124139862321786975696521348747215980219302099043771276976161870349240003156336046774308694948653599651589264022129365236995040859572510508158863068602797786060890576812893074101736835471057454709395923899767024293312508901192145306053033150642301992671911193085225848582160944084817213646465272822929151720258540273372692992453914877296314627141266652773095046600031399601995897494544326274582859371177257671242421124626567748426223702623159207186776392913095013027716771149622285929238494379871817095869402407021334391860700497810878188447058055743156345358061796572921530008875193101672591494598078077898824432449094716561110386101022570922713694280353056752802913172647554281917584122304795877170035213056132346749421280141941678283395742340830157001548543147874106313514898802343625228372260006300482366854622479041095518714203271403299198387084461641816887006970445547425577237144801524242985730565424452727672300210024603606525713180632917843498359250027944785046043421348782286394384491577997192093601414559820543442440858956537360696013109623353047097843390423135419980035046759275804901592131280498725026411164034686568919051550313465954990862740343878151731879527043121856354909658736144392539913153819679806733388577952145054433390828067091522791145569460030729137862855389844275660870441041585202208165594720636846524111565636400008991027828609293099404340103218834302567170363803947225958283226417470897288061848118822734613699489574725449455957777699104572715224224198840246674656143890734102930507622395608073385258334180879843814007603940142688094781392167544284025943751874493784602426522301686717098090262015270519815806956733764909136570669928913447509235641629251458472686043713794832297202744414799030439692388783511536929583864041728244489038025803517252752996533152854814551227923588908575772632496546066998179078060443061979226120777659190349784342046052286005247596030742520221736779898141201154488052385440729165045510054805393517133002608959853811678504356432276378873818632447370237480219620681285314202792402522966591596393031972325655515492394520094352446235953187478522034380922264385246631355003763481250970665712051294507554502216688455832560990586574854571691156521290107297684628858893555841676555371197281518861500418963199880524197609496343400743846944762133906355885694430684364933902676667060796381588079071593864434854375013320288560000712414925115687280060848465144675748605982322841615903850250515791723656988959322121718376390884637530989966771472905587735949843061780811285250301426776511868625187484839935048242005504282203597719666292002699297711617827467078129050990273930220145775632150989113987551550492967310803229328586537315247038533251940152534120570394494946589137458028920705541689578001761304655389259560105697518965595662322337704169713174810792882390890752492005332687337371317833106630103581559832721705621127210796109427461762479861291482509931957948183722234255731193841121939241819715261065418806349930574229460878616904347776852765475515135645550624850438686877973165561402154939655253688523944439528728739867732424077289872678600045367407638535247685494495585693404397047313199795328594819170778631531593587331342704289574124782699752223336479016644546226431092061296257698378349830431540136233427518295675106168415099201188258254460878278765446039374791416993137837048944789806638442467827146789109587384153863924253413401213192114933286411842333892907457258986475758173361618735643858449047106174334136864241031093801045208247824876601430339175561391392110051258897654469746137151332976390880725326093999847590983026310429145281967039690812829880973051824022884564782147832305400499700930434443505618916277770546636876331408570182068660612731849840362974700378181249692058240410085475357353230863590608256114639023769698784242026829628323138828693982290219123741303799046239832419900675776678764626722772734702582118564253183075333404757309498217503977852718051643163557026228650600062308266758898181614153545750046537969798903633356181810092395478975242194947784768087087281240170829931464671283006524991928477242441619625284861697376990068535138414587737510410731794036190782341566645731615176302516765791012924420943895171736026162371349839918395362947917647803987081836372430445104125836789999996895096638626974028545829488095865344458887665606001127931523219609539280407380663999716431638955046531444907665960153570793398706935078831568303634548487624229007371716610187399855585258264399540417002746050205051054524124951101514295757766781686788638865430722476237517480822336490283791935503566441318251419116130907140793716602007202143464440518289251444647686146187531454201133694414620513379186357468724702936745687180272170885115069121271240415954782482602140867787433363350283495743162689849764427327232616697695333951844644093847476604714179150013637674019009382058939245425606286481150081782704059637820314626903126450066379719396943562580587600331188505011377776460821126114010205963433545904351757315919342161017878363842981879897236066186044579050721784354699344435322081364921922689362803208812807399486626115430872590736841524145372039018051572248309211940532169382063844393518895517125906017720013967683744764107662115594089216831158070468338663975323529300558203255919332194171155016727425009841902372071118692122680589695713852272311545916904745678780434917761404800043423371137942989258371575725291872070126523251136483736433931633696454767163568689324916496876387585473446112277252006250021663974844172263581337735057286835094462590812367470884462453442750225403226817751526193055798799297577176456320150859332967957720291032415443053486061237412555692339297317969122029239147244302565128612707695911027268303003363895482287750858831720751399111026570791807987578313151118321274387909607860947337562124040796076764215420370312919887128836457525906730860073417595552020072989735127390010467183764077578249585739640426449410896995984118229466535011895596517763553454146464852493009153540908558238249254949729383411870793223669593509123880178760003068771084535847859857144999537489645405879205624663879461062726030062848104855854124124100696936113173724351518029431225122897882587524071864991274747661231122971506535426090028162842529976115702867480080150096583199853522506675029462052285683349424758218362855805184545514388213526682665528571769478141365923046198109160885088085475076975193759936618130144250958114624905164557659894131405528715945031497462408525461927926470842699871371261613104557899113735863132328073371807506022033551834768401948116305247425555929127343493721801483040958753423594431193091477368543573220251882063812650794974172760865512029775056938116834028558964224046220948631671675308070235206737769991037138864508292077694121101932492015887977465390245595304259991541560023328135460888656764357466912088018448900546022733402492559638846892576905967321653841600396847738020226782279561536257829616354600107083127546445102080458603200217240175071885912779750688099178686531375992288405110554054790431868097936511311249075186350389473160440049899029532839069002446865321108881932659234216047085465767393905534607724033403634437234919235994231059131972437672518015753905164990776359531762248238165421762319253001863620075368629490971884914866204962871848487941970574331854178575634063829205995200409292848232466449158230616100247599000774085666425650035137018075974772613049179102206723792865325668196209289982368811637219588765647961729063204809085996027331762383170701196667086875819332045988187924339980670991357872853717482591983984498818354862029410957808510803663879543571908597738190578891821819943771202148316809404458926587798316179336038567699204966114931355652138712080170637174769350959612067919265437239638695144195219651139732360153745344391434527647359411042770297801359631476194376565569180231286306251776357176930894096506497043997615506862555181047225718624403607890980733749049121903845550708655447680761998598816094320568494406867001653433038934527188239325267133337704818962383037864001045792726263065189168388305131147872455339352628171607924920830260777322463350874083199880034269790744614711586961688997851578088926488367280533776136144361047111661431415565635186608080142019868571589620610913347003594783555133692338314283473878868866307323242398667393411411241247177453467830670417993542531128619546604866063972740890187978596185580207016755712048942180458781856281945488050049716214563809294179106805667349679253406633450268683670128364753425912606458456932229343952783196841684888738464128108453679212397555099384895065205392503013486953855238225538225738214250620935524705275161715054737166799338897184237000011703060843038641342386095152574962560619964873319233199815593234784695074902232135667068001303048271202860156801942218810413789886890103406074242162052589856977380307924824407417717167828035311822234765703287506358756719568351989897536789910713248501140222690438953496395805257288248523320612619843793274914307178246112818459887712004407592558439630044486210158499501849355797013863757203433739673479317350490487877537004203364376168718470062752112511276680967105424830046483457116118606815632229221266963051683836803002097469106116947877110398830665873191862185312927572209115299771809825422585876512010831885792748988727985824921786932256578753850753031379202375274570200488163549136746088585443399488089901418614343381783823636395030278860680704718696602120444404250666102969973494686428200584788035493249353468197858076390658900688237911079350756791307672627925831260044261653652831379630018239533199469079846292680464306110260942538968741715530091750248793867074941739529448867748993255313018331032761982544752036037961634063140180872101113871104644944674337921138364322659551391961002115803106710303948542615851697185672915193243645446636234926005128797071612194716382302565400605611271598658997851886151127881415165306907486173727603705999196766003294969076132463368124529596891130849686090630043500296351868637537568626590640127978384966259305984337193362037261669849093260417717148516066889714529070655509852830804238375581489462795608602317773805612182876892671231863747311568791148906009749371197816642395810370779686328375368287022809123458520846823111430759432267708672356110355241034415446567108435930555456200611314739398764814712093359690852421134367398695835748743544617099435990023239530731690211707864663262829310423242552254707874573950791734736985148055862349807731633090384661384106017705051605738303843423003642037260771881980229680452578337229211817052899761590291997851509366636719259890220510085505112062316327393929268617030349833940805391265233487397535804137608994604398435019145428192005313517465593206618732777747490334895024033936673826513538307886773019998886489698781554391078043967987272659647232581276351512368145084513951911696054124881705083137331246282382904242774418618568632691573676026922735636542204925554823683692612681182011874315241077865927397097872394264392342486230503985224506772318875514341633166895886589061688316920943431183340781243112780016922459701779144178100406245524753190978132188892727117458306546168223390322772119237665558197914737080606442613381895893536312173546336720785897231302939157667981874012278051658452287512258333718083485781259185347165483035592283415869351392725205950826282439505637465965604613236672788350309331121194010628431118849302205952139782667845009369183889422724256158703526670660817845235540804127711040210597042916853778045428719908154108594135547068331346213668032695883306969525851359867848991012213664379009629847800664802658286397053749016377418603437990175705829739869876835468810602739300182187131099970822133238182810957034223253492830910871265692668807863030589245863314408444110962889850910840397789382367053833468156344764360119484938296875568296325345204606501538394668217681873538454556514705231733335632807369036765815693045296194872541044302880009698096259071633916410081732170102030318768797636966502743482769951902527030086330884796902714503840965149706734136196879358023760765694799294191551512309052418423565813281570057814305104152441778056981109540998121238541617308362189487664323212397886513080556441083620079855725014093405072987369989521333852025271731674966504706050191250284896131657218690052268431382846250251653099087361469866203105530426866461008701587580393407040376476849353120746019077611428004104983284456679624308815268024934158933464400978869517427710862883377143236321072508548524029228802775448729922322046096127792347028670611673336995541305924320725274622181679705878319745950545994380919360464470280630063877646124157625998483588927495900209550827833912608371248316677983167552364152936501495844976104485639541667116360502835939391102575681455889057023611216632235935538975247476826490515959786403639015499364277099713460906305415453958648695065167598030855406090938200603951861430906006152579323994934139469458939249573539779107762455672026457057461453524001113343956317731560691887793210136708838581816652010205969111323285799371695676853282361720394457189863410836539792493567416287626136161793025787848875229570929995905977003428458083312411241760029488315531388073274269717650949871259847478255944389695533982217555406106100543290403580256210433111980316977783382959189840385988488095372595152201735231730609870618857435583724162555341193696948537841922984573110019507443402452200168960702549940889732828393330594109359984998228759231196115257859533338941892556707491587593229404142846910421268554952234670178939259920817807259545099725285368292039793849330374719509813325011924029151829884053479292969927129603062361289839823974046520031491311151532082723216363197334445665582514885002740776983800770720400490031992322718599482431374610792860796172711255540706240976671688076588106923899540281795303432847872607010935479754893919067254895365994565598545997603896599558531661723878268092068700463552745320534626729968344357939833181544226567136771972803260811462130072519299426634220911528435674432828326812488102877114663641764930636287444845125907517564892670234798937856809056382281316651962625230566561129165390207781835385643595720588461061066803969465450320287527381435519123032387589343442421723729503274965969072399378701177350102656426208854651316135420309152863496947992605365978982725846936232012239845777166914386911532416568425561795777192321631385150444524669137544769040430733817776012415997648469188676936343237973293886850533803440714012802382495225138041418213402190254404128291978734981208459891603562823252429139207427501474946294534444954393901183103326960084303108171255127627127105870268786742932810166276214471267182248803373307230433377447706771112751335372535077729038721613839406873416665653969342450062730451598321260156430878566166677741894427554183497106406483377534945806650759811847078414197790309389716916295677169275703310550816500903009019505071257613559096557931078336991507197879126005866326321046075277234508782918403265046266578296008868996778357164441191165865507917435919687801304564039316627717448737285239118785925219000875392528779883583471319454893325618164984326579442713894387381877010792250412352542532807666729413425073749647672910038646668317806301565362635106918826346493439904544046819582893049166160388328240447051337519158625695983138294974957097605800502165738915448719400471198433889087500542624699841193461510067619679807386674819993455464040027378165895805887599231725131615502457135621782810272432909189515965522215962035370538245288608165008870657951450514979799649652470337444247539250901943038501527852060234229572949211896842044269820329191254443972140190698278487730565647645989968739923263560569533685727902643240589503613673263759282654273112044497864590925661027670242319052135859006176650053070919896681578647629240349481723553558073955717485527900829055980055237140862120170313321599186463936481797327353971210066572970112912225869325583772322385142683877325725914151142909220983391043001384098956679877682593878989739521556843268933963384142742954261108719825810915567647221997019855323345085631418608508098192411412237501970203470963809081487622852713005732126649776524773950846186474240770729756585900988126956073088723212295976967734595829930521331066493924321050531248879887595421496652333271411822587116060534477243894734066584607928383920081755953347195944592558581693049729251588700023821229452245620921602083573954272426074887685003844898302040653143821866634448452376040119675026132297415784350001218629722067643066930230363200902407541576122545161420407005191905307339706186748304252004254325377465555136497123949404272381116945094506063674431513920437719979999647584776467669516825311962370116688649834213183182363108188085195706327573026940333525595404423720486548737035477712046574019735614878464710460283347983437819825094417419484312383333361779324024377615333113089930365664971617675337182303393558189277983337630676832361872837828147812388252133144537566635683713468730689077185390346115940287006261697097482314466714008017346779091262366824608867148375405746842906992149679093515492213433258976889946703141577389497738404900547967457587533970391561086669633838000757396534375855562600897438555922252150014522782549266297981418338058270957120865799875922494790088402798954602144043824963175395265545651718923907555660383344321070826246629945802265115436592336069059812271436241816375539689642275715734956093398203020785778767039381792054851046918413554485849191472240445602361390908668616401829418916647378634364406034340272490920692021148696217762216874379383747948897747411163863045517631981931640582115387427823787685348729448670088525418246261405717891020814095275232172377684185146267321904099499896376033300725620743769350527920933616174807607388242414225582896037273659222528752010818766470546203581833453489723474719283378675671461587174594961340204675213009217470992186976070052078090491195591914361621751679685453264855976174345795026848360354487907850001466946019297659073237303149710273103584857366437737531833941944119412525354725870121397599263027338379060447760111626365072243461619344823539575102220356654714691997403472068918733119476218380140171998500442527220810160899649974587628817381549215906942240128129998883593492500588374116949708771591629355774323707847846573571404071029426035763229582986816994670609137116557297008782617742297826542269536611064849387927532954121672061743077440469214159956394470427972023305890898695767268559554344312258729231558376271942839919146737541496855879905498985352728962194946317927338769024071885966682906999089461941379407680896599948504400347508620404517450337949399271302365080117067909385895413518068117180354695862221839619900091372121165130274070438248744598289385412141477110649078467300519078108848611542405474447760224922900347459586205046947552440251515682108874627430034863072581533105095408073345809999532816498730263495499371050186758155958179200047077194547744254150010319264505327723938839970398801126580011606518869063539637047746658386976838048525051718217958812452468753487213164485739017951311740234598017806175244925450597437056100880672981253627718183551097388025107172069161895676171937046492823769555959194539116394289696966318683860711028367002364404130194814166118953912767189277995033035642002342078269459825096286533205253035663763395071645110380662887537920773600915809520633780536370018635688112748893673284633952549224951589451475761490213915856316031632310026184510377796086662357134702260493836394228281985733125590535670741717883822310644606257579097812051826464843183300170840112028813492345395745023553345048238659363023833955616611995207393946890209489344869926074435291230439564091698774223455863019922052663689890331393538598358697090704062624620651165192659591764051969782089014041454149075091299046425803415544345444077418415460153578033957513751315418359267793490484628897778837145382809228774455203438262341549219077932002276143356463031444871140734479911884613966601350384076444476815514557127780880692778204306627232966838833124764728506349518494531217297369276077166320130197218470526908991450935381115402960239682739695025627177207444772434031489609071147652784762954617068770479594800409201543985276894889584825281556118515750754114278847069792581977238349903867305000274267086919246793419575199569557346241278861829881271885967851879938735255742002176873769065724512037910979527815454257662609896008009096518901987507435545980315754875740472791938412361414230299899401858658591186681259793379873521292532980020570825424378951801257807274200416603410564932108299200422991764307129255172554427167326545530572710639645656992422206116590071328519908162798201426515459102970373218491311999021313235219953670549808210363424341158274165243894606413394390565959150912155084945191800110996542863800809019056306680852902573198749128243526167692004178427391220635540873009125844880181481515340020551077716113611713091056617850260804523110334075818513441492648312868788298109547540144847805169795153615014418720085604271851661353624113003886258207087569516467363797955779904610789956396508193807161039267927590386950440192113275928316660472698258071106781911615081775903886628330137921876590534603426749240383931938121040869585424653881113979054279230010930333390066279170287119214872501151682305710979972804665633259999378402993869742578970038161182647856051741167611406541019658246486431731922663749557279128880056345459899199530562623965344967684864381386379701711535632151493137452597388364068320011932175058774516768413057316746199768069545128491046492254315209712246701333119260960738832982635855214884524447337634502880469422059393785579735791022929219211078734801796555377839926913326076927221433937203656148778652751351511577611564569026721589040564930074325409601387339772837951605755006474704505864856297001147727366244463177118163934816522946140252011448148152832176739810810257424291998723976694609730542175148731719076849467654156580215853785457975820559558167297659766470444618441941769660925224471170414035962702190894770883348167841835561458189955704777438599940593160179863208258137771136971783311048350432063346065312761450634357560367734413263778081023947019086315401130074112063914372520001277437511770080925077110528018733489822819654839777384740615908805420660758651130211336632993403180503855697320750884601170496564674239011418134471365955805188929445747088627960364677288126861378796731915088096928685222234059411355851102583265542969768887895498483687722987063915017598748668825263078832233101652528880343785411696886340212088125576682438523438050910222867190925319179723413511250023523047532629261417794749087032944882190769311123800860188211691160898093451559789215579864244386990201493555819307027539326360477236508910935305017600889587257665486788111172848758283773351618018873512184026476093562818870347412281603013950538463101860104762754084479868848572275542629492443068845573226853132526660944575355341573644776109168736635418592355561463597526684351258879919484346533987103471243957215626391327458181455135488472726339472165792385082327595895921280001183599327801122665147874325254217862700088021424183471577086344557757652132324736373289268572715472933747024175851989171450947810313997739589006953467066313709328485668731171682860259635859408094843705461501031544468294520077327462030259557725546338696835861029089729798095050923299846419216329495405605839192420816006569907514484582081877604210233539199939561198690898263644197612666716348919000234750128081658643795549611836695419853496664584079060564169434885605949900790186164821250686273815526200764160605500807493084429361027839788463686932691939457202916720791651832596188191637497675341184857029579815156041270594647947832331174917341744561146792908927501826127553901970952032771485785281708657109535635342680551267407905181824237923705033330722363453149522661740795058229989818697502658691535023585461067658002918696621761604542923800062217348509419605497685477161244981006732685452432590109435934099126316192069148776612960549092252004267422639567887074037320047462248372303494165870092616285296028920357430748085266146393124977937756049099858259974029312890921390061414263843498375143629879781724231961456393973712309336085498043954688776408103168659280603423364059167970091867375876712215304381797188498395069786658377490056782591833325220969699080722462693827360129338968320033145089995936053952472857633085769249147532276117719126867821274993882220207179136954548988748602641562415536620284475686531812340824788228323575067183458352097480815454224777427191152176595925521296592686262236621824454220133392038684209007896965664936535811240924463496336321987986629267049975896465519529294141789004982080473861968019762779575745282852359390080384826971914706897060868169744929959247882226158600953980768494949512390133330240038210603343001350418358742904194040946212553460595563378270545683175451348636129368501805861244746589207634367352157965147217942419573273458735612984617163185471564313961410896378343454291275721348150601062093854187634268356937037341951858848479252734241704456862984453669031383906977655613542753782325791675820350039610195151558596354239874265126143206214944675376281506379841031932966888861295661988588181492139210509345280452637123604150758833810741753816058417363581072745751449891723948071810071489050588591689847638110780153068812946051162540758522274827534564023788306171747673052125440401274904045774630002465932262882921470090394542634377063439486401208718881031795625893275374615166827672591755847606038427764668692369923242428357980694319305845947211626898935446753032204562010163269222046636353789035786498439483455862190806783136405014353687831374573681887361642603800512258945057826543514644055524012773401769535557063251702631863573882757396063491441563698726535984238104125273960228695465606911723813434044504941370695919932776475073054758476821541135418713056797047865882611194183499006329646135232913061416146082925431671050326484125164461150629866766129656825761038987409195110223538215490778988451420895625587252670573305047738705046046944580485777650265034107768054717509189782800469893799758957058193435668476354248969846302764386622516802400833857850391400487199020908611737807548191964985698416192082536307200817436801144518382719830159195303191506031302599621621685860825123207012579291104100869423382169808555367625341678969937448034344529275072582511245590223376101016765948682900621262872187493444647949661999761742035373966582496437223077331043075640097327503200642409788898350995819976447139010147084625505744833581713217294276752993098324882082754198388073576446811574840069403445234822847107160185728603952249156620669015369424432499306611413756250628734173659231943585952332790164983963726694184625293879294178990986710790770314332103728028796273915445460740133993336243338316537868316438885739919789628824708215794045431767493185431680231323791498737828161117343301962612803033768987971737489442951990483133807315103380196111637422754147548285064538848933337070607850140445004719729168185908095231448608954909331621522291410885923895136748240453568902996963251892195352175318443454467816435395612932323942260353875544071458903209224402209213375255158966281703214180526798322011042056452444937566411279921730111525007188807049778615370248889119905443067171741243431024939742252222754950936440039302560152949560857127478348192764972729977117864795587758418181040269037930732045457689201854404587664582780205149245937453193968932139301087390415583567040309032363127070219334606294121256700321118961330597662362057356713893935422616852135484962634398412825381341690529117667655345094866140241790363665749158569840339324341508861055826988653597261843007326362127378093354201382507656348792989717260745518278130789259923063007173366472418574293671047455739068383272801354044259149920686077973537807100988507590740750330710638915026579204489400672248237954217807143649121484684818595612575593626466335546269217151596187755620347812683281485700115190913488570265108981004789051084555528741473120298401447896492666419424149240696820246376533783352026973814324010803594993528219601467639689962746264966248700586026622091386794135234082596334749905753811327050561017586124841183284833335030427792633393312881564836093969765549095459805923402915662177568857195463743894189956860856824797408711206217551869108590059006570750131699346096074127683350847746522475311283823443373218362190815944658900355859843893405860489391071270281262745261936628469212124316747055080194064832267659995743841140271713880895946555783165928049247338430331695576097845574096107521184485818942321450379885909965384573386486976596376107326608939543740931287473089965648244881089392563045878699825296681495900508729408105603866409127054936494530760634018606525722606709554434177956357381302603023238945809859169441947272955381010074526548555893033417742131480579169826682525657071824190518335205615386446524203503505442791903649539953405672843260012992656108440255748329473139456084624574545644286385714425117480445590182584448058849532208084097013749079360606434845376880617864180320395588038171807033081599285990046001976831725224273018370732609221143342423888920331459404607972639761921643259594657289475376740724051379295906089655854854189421422774255057832093872929856649860807672247207185038555194508061750648458114353411853971026596855328271206334650530628847991126630842151090681224778298276519101071981722199558420493260145314871811363279942814957444516956330421400065699768894278549595205971308874015844753457565957393321024246458720995790589071568463713084760320715120541656074711725696718469949904508776913559552237218828400374827135710702707374206769899001248608909638855948986934402034609556453099821879393232213164224697913294772482169167442178655327000015277495024010434459479836358432169199198911274194040021561469205254259649381859172547155581608198076659154542308551185107153254240266440141090154066131857186801373217656479750710037441165705279655055370068400595955612740102269670305367204822654646839859232368907272181967635984684600085701321934533927671546887157948361745623479789580784178322284109593429078092776166909437506655483875785137321761573688091089432734208070314468202810580016815533037667602826976430537411017722359707607756704019484071384534846277351733265201738554192224071431238740631361559292881573416143133268000126358781381696285998360737751545237344660936256012092934463153943270491859483868876544393534101262472050544810014016253333080861571365699345101198326574157193622534426080646702433623981559310543312118043362919618439737943278431684324618090181425671594595922633706338123792264777598235549729452829325803571928108729702983859342941212757199750535929403274594065034252209684846183680980348872516672147441144462282369109874862457174106685812003180460655437897670493038343859403256549907503322210004565674892441951674865702885992262430646179017770623509227197727683418357745683417443124916364927928889273702786584566311697697807894374896465417539227216586912233879304949777227220105373860765134602161553365417611582214957356699829287179436800792230837452232681255441388092075239408472107874015237313516907011357339933932602615377943309181642949706875225824820383020824935234471058764204601973914998773430470722963478271752023362923911063878951505067335779976700330605700305421303587347271755939826546447282490785736379764631188384594290331365337836541522536907222401096674890631649985380764278559940461107545347318347351005935696639927946683524238775436067380615701373272451179109946010504945452396661557864629589452364093686393185073619102099065675956735860976332870403416019481686167684150964500173038630070304933850839973191223259307735969214789670084791681249343175419949318278432264423121128004191955025281029395782070545926309872885632398086884255938481236446105775291941810177383199360367775949457945703061086380218342528282152781005881145913216197293501667069825997020243127036965961166834072703848260859433363920332232305136190790513006410926694155014106218906694527855707568290384572988499197325538018456819236895919201793367595116374765919904582286513850994905690422105940036831159993317835993946568632086106426763528263554322927554381420788913109575598789900965079446975919761880208845921553834424272437125490011220200118123240238293550311917969453279475957409072247370130548111186743133683133416865847831289388725308627186152802325311569274261171558164073028300406072198165782493309656585456556966274964173562490324834183675934063854895987912510281934948257982660309198155760601404398375692803577155311009186679563637661025493886355288545971021213807453304091427789479095778722384583685589308069762090017263539592251884500702114714179588215072306056848096440823280002603455907919352294276447956987232139662536446646516071184388394614308603165178914470411528805666583675646716428644520861315456256356566273676736924962715813908651729178754675555611877496689342874749763542636107946773235110911384730322826646984608146178144288867212168306786414268787694834942687093896928683485865241044525702834208693570887969843655131853471543340159267112715945180847125284016242259292041147410710128764047272955418575270484336697405738504004591392855836851868213424152914077430444408977636954899610372315744280434519235999245018985266557623560840404210865384107086440894831759013786065284582034821095722247990442420072314196535478746932231302826406544597555044587707195868282495591125452638382101577786298299210834251910667562004204882609326264367511615760735977922863487081463012689669972728341400093304102977137250747452503306420458215853515199514576978440608839717935663852855133874907394817529931396915941717165265805732071213549144129955111774967488426588819570146436652467403787524440525172403402202046547748095529102612287615446230017025638954530514826016056128554339253945034751391461314345428548254620329290055150906711591455301364613446592910617756636985101265770216369077949170800660099689571387080948537029698651208168717957090409920481319699270207487840945092763444885016408182305028979822180833056024944983043245984754444744841454406982350473190761649266756563103243861270073172702535528242049747272575817441554306952390774104806572644335037019144972068679795289393514251971432514218172248345424986704528255658696731440894992476397042676460554367225457759496500036607188373794286945265861121408498817431445074000130239832840519673270628182332594964198857126733697725223015188682730130276046555537928453761110873265600895919646140066817957007483269125145626853940085582342956275959606930868267775700265154902399095227486235247878416375853282270003873776477778466527808675552444202000141777716118369328963150438465743256502656370428022082610049448791462060385248031499041988531684600346837196123302790755244141255204594555151784405575126636125731883965165148553315912386529261578823780985282276130558110529465240451973922962479177573656257740188962044367427761577273765916102219380707823794599738723099680230721504500874422467663448153308094071595690591915280580829964256261209167009021218530364182156760556770012927974906286776244942448392597166211873541834904430431709243177265177041797052318812484131108933970827416842118149295081520533247405477078851512552755057894674003172481848383280394775645465422500560409566685141185861370211941060660929729142961378648300319229739609106116759637375998715795602847047100259853501241835533109969480365622411311850564893758998650141317893587011228489046194236312307181545130376058019004989194793914996287965660341552878417610505887723486320712198579708345661891292793298175788118173438633613183585468504914940394092370915667537369598684452553918289869028954684441500437168125610769069902205518965973120341022956478193005214253370673829227956494420382457532321970405755922007567090602854775466482741432626788850154993203279541466182338191165079747993666189843729768329273660506300343118379095411345167287903729138500146496763307282077703448961189465658876686744861180949817345527496363740122485437605150005269483611413520207503845819404575000492699645463553324936250496597172851305470830393040718839561982231816665200303864011812168764811503649197738065572736772549527800038505484078217732570403666439461652588287198403566535738785826859793027940752641809300533948828396816300076807469653269225558671086576260014885058427133307513218884540885619584856163433864153731639417391202797819882170366437101870129989985855300632402745565004777892171991690226793609755799353260170531105340160789008343104333736473803470504104333197344134828780791743378701067351404353395405933970253156714205610637020669306830702570110692901578984482105305517848447097482261346245180131195854881935317902926055717095852621564817467212491201649468947560508031490080654130462758565524225669550038588885405345901079181179728786473392562310257748174500613139083839493457603848412320993962307780750092767403411711898501630743032848838067262519683739442170787666236693843162947755239738264064511374502260920025422004606567679047889751553917697704186285996990505783019800147590018771587588111534368721276094178611567403826238358360728761879647675981357837374215329680226754416946351687871320977410079968305758864145333990176685195246313897526277883184003769224117560536721606275530634890877352895473908008238653704760514493321701626271702753420130108043449788876016730522818766839309358896742619802202726599380858341183739185485780512350666718668641917811695029484298894764355069764643597946764561107230785915390678154459605392543891946206948116615096364836531637102306559539254613076945537595521639092891068181724959083664522914048716532635058088511009731600966145943606826468390559581019229602908392780488089894554946907670683690262088047679204354564676768753801991796769299895597227373246189484187257829229957231342720045690854726692495637738980028044598669246848700309256616708208981936501506051386380460738661686663807043366247276364559767346826152872314836414399318698383136875672054450740616414073276407402664938187132825913829317105899781462196222959017813089128317554787619135792687397961485025036064367823523060036826823391085855484822391492942055851000717184764348286488815942540837552762945445269544411981569825245331474418110373767570151252077506285174931285710753778774857774570820498202130704379468319603729688211978342139045239393657323792994951032212909109559540570151727370235908623464169842737896829699632218647168703997955260210196551806221524292654904559191258282834301547756439767543660168969778322220482596284600564180331945353499927299374107540849145129284478486961137321748868167867732942894529620438922071158784445852946058937051181291667635222771565890960444700936565359116701952038771890107346141628996565810247742228284161897186801813065305060210296439884381577702200544239126757855261116309426242181677919683693854671098509918462792036835779708659330743369341129920121312446538483202060630886118050655660610329631914761933606655422937294283391665502153286793327543299436958202542020887730903339904646745754672361506111942994090228592333952624213819692524194252043477927312222844953254624581752610280007748828938862755568861653316998138082942310535433970070167059424486489364612308842272691652474317962336047739660656196423916583610904199213660072871413351362505994883379339009343722283087282892836958367955403708307181168534571400422076889270481184379324642328201063452739426633491193948078970906887779800296893698408542383323216495400904923428656394740612081160841216976709658949911349352242630012234519371407845648720317276961682003229027417657654439898347478277443082298929044319763086623839967150396502965405039334242900204452173407147813496411829324824909881643501304045004735563306445381381259107725617852582020213095480358035799013390867073820691540036781630747210251226961823552475867437765492328533735153954784958622964046456187460932413107987109547978227607172848373629666382849306059717237700635022499203388478185769561468611512817814668200960825734687608856190109763935209884891842421578061413287802461396520391224495630828416403190922713016737553164483774289241838723621742802241898494916811962951726860465660505786605049736140845388183851834924991427447658813276822272956078286380574871828428144353219294156208017039412625926575268274534473544407633188033697455273716860673948149802142149577783180943832273218037186110346820400874405457495109568311977509189308524428545326601257460854855225675824205634322733520932076544787182741671716815563240855205333323191267313031975625666977564395907181131234374711496125365642008441700021789833556137388336497531444898853675499221071831712104292276092279604342926720376895852766603069502702808243979268622553817655208919225055861675826636203819831538755515810931712552328553872874799262009634854137884478946132315154054707649424143646511542395731848122890597915617676308040677255467319777271487270704981399887789652170561104909844852826597945888603963205551744791496393002766757369284746494401676756289688982653885723907505974892009812675320930544571760811439867629367702281977465178031927798710769411525671785163811750260497887761478725578395601587952324602403392104315563519865805700313133801190209936054922833105412853102885464444721236884239031264311204484663530509364415527579068829630685600027113952086311210456586909169372160113743605564470261227062119403814406845236371658597321419593366039230333291247592500534965150949923672998766363063696258070860011529431155857640590016732262943716933505813696463486646816662957555317489429113371827788176821923525838838251102609573644865832235795637292274514996512460933963130202631001562174756114417989846167625180960328216378032863738738240018629025066646934260850351758812421766258766017306767392972813940860146591871873959174175434363106431297794078702921398607686376544567075707653537132344320360945129533496873177382080883889035353078273328874327104869425264219415863270983908370102705635293288795747613272636205726906352798684159455598742151131912965505777035575447146775898672131675306736506497378544818469894765459115131937906548061246496781694220552512131088836271008093122129193232579900232931007072363190479458422936378676688660843838415923705050514046349347138664281376739813190939011405824759704557296654884237587668533479305328789895168069015911159650075403697101477273000676614497308222162737100641530431296170046062002072613257880476017677675746548155104598298169673372570685323575703009799816299455785833589834214782977759392611509642075881069869129978127099696417953009310077366653288164194163367500964049066415411461452960941799003290572587607527833314124681907599974083446152686100649739315792257050395844702523029050083588208529567204580118759664843264675494377345890371019871828268252752984210045627037351813321834154099207540223704322276796827526173845311979807644282990031735692387526507284616124294617957629520473632780507765328485248579200661697360527781214520218767713852249789180750454099443114294027726427820934228890178331117615693394447493700221261800451543210226761497216097924914522248630681696808845314830859433382339325756425470615484721881853175588506574156845390967894298329448740962240658321837221229467169819384757457150509583728590415465093114242084826610743135549537389541296926791521320607985738012683049053599801910638042202852402847307685254488315613670351976577821651632070218572459483314462843254883977098755204888015278543369340928566721189640717838173318255730511689318046440747557840154200161616249036471384722247335615487858987633081879380465645912699697582538811617479386499066876836977214309328334489904296081751895140181414188341151233855684612555088949206540026493193071105856716330167356243987938649820589283227443647417789207635921458361483865883703516088772065827035701741244106687962613454640269952298604707035624177960603284274897777557924888424985572758503248451644358299797369577340217192142482406331855887703662155172434996279996579240412498697233293910933996543636414829129573155715043864014674977570406887973903804389156703806953456046876721264511568929234347914200410701403349302228623249588702239945321017267224290027182540357672978163372245271306398557122739323613318783491581328461526873159627865467978324371137864916467606206712079749911734752724433679266562759387414876657206803660702874302856488841834808564970135404142074836374427699417111380334111574966716462272549109907846557615647483494291762501498267194122401367621550078019301909808963691107197469778093632897032567850376260706850350345072968332375569082778036681597892949403126383204321817970529611083260912674776742561088159756209062388135252748911640100035149018421084649372504424844407056456407393656004169004743609225585412372373049127055798133635114241465514500296552761816027170871736757908524922895485531920076471814933823570060487809591287810808609564461527215693169788674429054073190754547518197632879375094048966088226778468937417989072870929960878644598369745420911043806575904558705392767658216588094013277692882160052484841382390786309234396175972831151507076198818952722030340015762094395485351689699633984648123293978759925256777083826587433010886701201479527838046499174714003038998960057881121710710668327743595515876849688668504732395361680409952338278699332272403538287189867099744961139881627309310196340010692458316695340551548376002539317608324355788386321472778381343372730583578143021668535911888257761679405162055142280772825163263655509492067495390060697005763132441238102702996672347237850343514331425604512688311097722879371981822731083567431603912122392493474474794945524131865162167401530046133236172523191462958689816748001442068733893474055109878378630897378566587276435770114952671536611320615860087772985585932364692249264331962572095167285115898095646771234238173079385090453769783947952091340225245888261260302076811158393923502586370283254613236863879466127058402362205265292368878623699194915616756854015846617805409111369125083439117028745428551313889990108348381136946999633111915240839055934480274250100475395521845332381117121961854517939117818923722534969825499583514098280169921007060882864632298353722407668743257946331396890291620703624017958573581861736281335640891421104642788830742346800123369903988768853364495564243280740578091406348057039033704678160620095505716273635826339951103868898726212370034782836555214575850314399799294522354439535218219464986731229613432700202262679067245377016191408276227493899157673869183167556157251795499450586094716908573903443171713770570090598216157030966563512783145686320603480884869301988477260354743648988006510167051496610335918831011862030762586880759376641789372915581268102610910426541133990569835488777515669713575601089355343547432467971519148325416346757231031769028430758521662535574270270641326533860380306269201885732073735281941664884302638356306509306094081271015032275536282016135377770884588440480837624348200658368212342859410607692866565572781965987413095901830876222008474892423780058659997499863817908738355843730975072007159771015539655253493051696161203062456596771988723110584076126305668972548053599686641405896353192546417400821891203075582217730524477183478956828713102020611824550715937990718841642273411820625024068087341835086972144502532797261898068477152386574822025686719857183812999579696741114884679547652963629371975112576116177881684214599330160404097900857576114675032793220683916444995958232020784064738358309682679637336991997078753746192613972626241765269195874101448030012361146550857942864116353684207199315848728164796088349723487751642445261771151002501900521024681283636709530274802927235784127197999982892801266552920997686333127554968240134802626162578133623670547630046999766993855437167011374536941011505668670529098646294384698901078387371904153682959821127351953254443563949211269944072033036102039368980979774418299514940433940290275075997183350146878939953793164545279028513434698560178544136502180887985411356819570136916646719661569152589985211192255568452590379351507163142559417998463172627043489512099062009246823890002579838897672453838779571241449467601276244447911574542033321454866428647933609904725003633900967352555733056916948218127106228815282488870765709531482454629911060581932925351146665850206868278100050353962679342765684143609670847527783111513234648265386166946192160172700864492598358952300280172561327577388526746206257497498605905403533036632775791146693374578928744719676979826168649903317354077870502336801133785197158670883627865991116976198708756262114493091635875366872939666386560208538515387018186141660691033534766729603839988011471992729405152000894519386632326438673417634726921531865244376481434893771235815441826903569073602189629848263594828017267095584596681262407068691101209305348839815242901136541802834275422727922420522819267974833183595494779713136187367535950696583616762081263259397744089529366770446472343032526234641700905661921327071246530945898098746504425276576722559384153633252539189164348425211013916912270341600970954121608912543092925590910470378596592070373761386367804294265834616059313592982580297324134752819461660429140335659505900109992925965859859711359553324295829477329156771148720082771647540941431217309217976120957785218525478866501351864282291701745277544369298307536168296438949091944955993343625426734833702042853109212636576413447389000464814820660271066164708183902055316980964928380755590103578277259920916102896094007598190405238922628673318079512683214441174066745282350063131297033531247192337330940500421336975501263314540666555434726968142634556923805010303037744052614450852142052700333491940465184264888368687545043139493342413150144385782067104532637793911372654972707812940535187421567548546272037426572987839027367476716700742099264817346084486229850038407312522544145154602814219821485077225968195940910648981129299247696877496472784463382589137086252256097236298507851570394160742547140502024286738191011419269236282356822158839757445069789703273550877905580128972754804731582994287119906069680866742185063791362635654678086121980509975747023761793022903210607643315630657502779168315612028864659883267985866215398537639552710693121412119560788734880071306387665708986301949286516851290187819748253708439798712963923946763810905245963027793273915332897436895395142306505338033062130340157172401903760553945604408312704273524966864209522184949240683132107476791508394458447532368507694302003409602996252579976273325305236092776358402034926914783170553303220015094482055162965405399731676261537494721763866962439973782144350014675185887788514806679838350940932974780159766531935479263917480572922531089227329715519923885511752027574000985635155131282382184133410452144383323530664232627619026614588427454622657613333780642830140322797082884402954613294090466572521484282776597257242226498711266872253892136767624236322125020275737359696496507008298056916018843399109065828482786154304379379084652968168766673124806376170371235380261812445098383878402192854224847782474602642548079232688035951539785912578109199011220680826948981718831897629306628037820644227270472554576585433706725060776614671936451290011237091062147999122281177411929543856097556725183073494548161874609091649536212286432219981665278923037266658847471416691602769832074315597401127180575355884796735448335709477269694751813644450971268005754701388948517294680879012117190096796227563326472825097663788006279589993912702264097280049416603006202902800502920403111764586398822261537510908895541747546573408687558507823958526305859676894890444551952856718725713185714249924096565770104227018371765474524804451737129725381947503380506077941223448628239429448262589705695887933419191443373176053500223619435688511872004818243120195899201186784654817547455286658835320199738233267390675340165209799935977778357447578390445014320933548367809583667668110476380041396770226342585257313202195101827771497272567714211195733630013161178247814465084771928532826992182030362009298824875228056346293217828230260549017119745388647858867082871768322260173321149309402362607200049005425249183175716106594753827502751948142324990224943143457250687880193125653291944230619820966710221670371896286237929824219094033828778500991189323764096168962008661984083442880523821045090999213397013127456409658085434569046454740057969878347804045400975913185644968627039093091891326851724969120376674560172492059186742077212799798053673397498312741551146723160183188455150665357538716425825421423683311791275144157830870082269830884783777010799433999075362039044352466391457104003172739164498513097282332386997397025208682593291648295205465512248555132559331331304541384556621136432827668089145828739265816925532319521383002481007520609882222562194934526583860029072120164508479406274737618760253616498826302044585943707715954216396460131307920990603054939191568028189208928803794205055284034966459772090096761063303639785347484548409553091381149259846819904338861707594370365507616893730828187929961844289627466737282386080559599492906971310654307459539017427442662900055501807011123733701437667950550179640823162825253503317338081988705867024676034347630480627845852985370047405089896153369109942261756470589061834039829698002056529060682495553130721501782172754298475284861433248581258135070144700913308042666688312716406522987469158909469070084225970588002218466413808490749941302680438709538477477411473265087487352120662914641790954762036965910883434985111664992105944769092815308109629816777884250200968368451273895018660463082562826300707873839750490838065536242842178721210485226732668376220637010692265422080726324218891413794596225056001785776279575515943981737951898498200480068963770497016105872659827489898245394319514311814922874665228399333794438215933035234314079234076109022787416757434827918908578483027556491879748322248656287210711311937226978015731373389289368151128422079552503645231570780122629528592172969559133063316117217711331140168567989130798771720657247708639135335672433742419531355422490354662113542559472510326327099616235268970730061183217463781528129727834064356855890043129031829721588903337191274370702768378453109405222960900211834191573932045863929947447167274172582295167137905905314413821061592680388688156932007045910440286642677062114978749857215715739773852208189204941220365295276513348247692224591934253517025235226470026371702280987323988033583032145073390732775083618076488621724949787309802398828142201887491926103600223720915751480768862790659128163547232209566403866125663921244117138868671315503005967664764840086754317142422487141645511472793022027291081311008694850940817004886366402635765216788617431383476248957217186980420864132275148722214185661717577591551080384334396586255759510517479145063335373553891174231986876810128599852983970533856094694293418959110196683756007395757052103325422700379196462913922610167503072611788575819600214587339540473306566431649126476182216776587607203720617335140930661294747771078617587915710499909362698111222693579293675564907934223619449027740595061661221911576792224734439507611227132893141737817266070268956593194132977843429299833690610584953720260085581446870608301635612203034449633098368330566300205178034069757058565894178891714083058097166724919968701470111372060720172984383294305953871592006095166754955729860078726287512910108127152882389695007837584022943425422529141841130859256611315091675914038353497835889444955808656519716549096385072759450779621147307142026966815303376333949403460423779737581902233337726194826675454581492291224927101357010719757196134682963396036006864291604291310160315898816394573111546328590161821610285040103423363086884562732798769910043752936215843264887981675195005103363464957973386213720188310242402692291868410208858820112991914516389223582477418043014238466459693657711123420609881006944392323318107987295393517760670683644827902339009734613143405499405230479112883353272297921720738703064211222236247005884374604802873253804320890484450526448255718064588251373224655219208962241413019668007271715447623055071056986560307878338019390797551857760076756649855009156998919666640402005286682256444661684272116977931545613369507591150341106863341362571319967665157436596825998347862039196227180777241281726943062219912509320218818729849833636386046327609904829227111041869037901478650661670022623307943372286926266851388941470286340666407952819269040028935604556171023238128621431291019419136323475867582152788097374410634069090227355905671027338329912109231810022799455212606967752788570242709727873913191161726464223454747045191553154690559131832086214420410218548252293900089878279571081275094163485928803811692222411902803333861560912759903714677153783971000606332586083746705580349493407054218866221578030723065115227087055267873774290321234990631236867698484150347028897049618451371757333551858936514327799067902973822808332981223608906793457938297757174309739888722196063829379824881289590829361820211191599629846983548285394316042708263173352998875130021283859607842495964338896849900984632854995728544189612619286351630011948103906750161260842443978759468702772253680424828774784189521333272169472582719478979210045422859315304573006848802843264593640759831421073531019216217322290023678243370305606954489534515322770451980337103530778062371134615730945776161112682999853361452675477680024314716669189416151259327231336146436956199244875703151038781520322894430306706866162382137122878276340775418371554768579742849228802474033305654915962149810430120513531216461946536759732745742673927780418456115468619582432075549262684829351748266528204125072503364337996588154875935312302649510991890271044823018625937317332397621661820429364006393650803637057432516922061487417667654690005529253076828144503766337450223491841087324857161091941618423571173196989520598195423787778112726787294267039177348789676484935850135856769572592483475578252385450083329944032167975636645584107231248317986819593149639035924888284188562478247671816828231124629549994704269951796778378659662146331839388717078947770842893601194566635387645964980373506327487534434303375893635216521702236514484196961797781768982984012614854666576578362790937960169885351542639491310009814793626963179659007758006967529989975094182880148580671347975718132735233956122079214589094381530269699561876794437858733567860487398152471630303660002346827475980709889383916926550484912514927770921704247750621855351319927959374511721675218080184071646990029660705994166794557412225233313421898720767230523332178562189465671122215593303900924954443721285527461833234687698303546623014882928265967322994094235812397105499285787243391128839985004958935596079286197663676680906755004456689662413340807342383207964843328507924451953805622938010366724673189463730720322190643359204650519828952878148383063729822492063840484571600291241522658643065629727026335613022366075996141959778397021183671430958089875473689103131081957189112612400428028751910027177447526886865494612210301589099143102054344756404642287889923507511006573564768143856582712025877373531641556457841996638959997992308674235060777676099951833139095850522744488140757269026806186812128184103788723198434279091337169508186436635601708831593298883517255461943555400931699660644225150761244868480237291031811634622009227558637019068483934510956123409027011447612535269448253730878985954607260508221011122007337919300389925313644942341134768448538243315787326824821114804793845382000041648401482989876203847649286158049483612998215215375091658897219419503491229859293201762356177436839537863441285540436342555879937962174038725401822316161764660764904264343811294580850901111192605400084255355421264612144114556861075110558016004038752367948002727229754215615111544137954648088693127008254477852001442061676700089729721551518389296129682307100259644699203424315442737607669898051168911958018788633490123714953088100186696177183161649745352525152595827881351673672370562246752072292157517741008612314575237099599278905986810263940350253618141126741299393151168514306654114082735837977128268239414590654862613164815232856778731007582851413252146297172577471932280755368643313887303073166010605943135639108606140254484759928572789837168250275347463796722657207245032832823716866927382946286064999683511913072180379573391222179502363675177295878228197997240369267295833294960080312008758521753829291887701448394987424267435898571894200486076354884418450672968104641370715761215016225750888602455845897684056813581416188551013498303606138862937676167701166303064435699782451511675223144970585911487611068756667169237148292219626292271760393913793787243559783327991177119758776101374572609624316360670467490457168617781033730320948097159047306044509423967964466685464885237791938009286392404207649695060269212782159728389694912380822830609730492448483351513508733364159630889776838728444833003723614342911720282124136313910691518387956728058037309873594498158110176140565989882891184722768915904233071666042194041182068359096324154703144860561259555611823305964532573650895503140185317894266603544217776533955715958386921781158129935668293805453561389901094055198389497804734220116416148312523098753205742759469847353860167503977338492809365365158800102200807609893374031797322791787704556219947004938611153397760800587128265769746864539376242432247467063112395897813198304405139776602799557423467754815952398524230035674689802823779970196769810916037382841316333702334080976912046999356540405835423733258933483460673914010460249967906379591444827729843113682400902054505073488861608341094140660278071326494486607308763400959795323220798390978915814803898577423806706409740776229348415432361024093345566014694264658500881326625576000206900348580840731895628614226953830639344955264095337467960170063021460411442505396955437402342540775722775339555586759016814891330083803751913540265662786306796736792095125257787162594159896653377815248112814159520084830853636922997800691276764998655298140439465197149932069377880966101003171403090598337162231359605929280553276051380274121026000491155970800195306440895677500657530306446956001703577532820185687046902393792137049071216735350090618336196508946202946217849884826411366857792936185751519300707177452614901637521460115441451465943029331014051890483318286384965075870060752674220239895807665340824504071234534126333580258731960394773903754661567672976662035903619472675871030900229698466814600837444605774485414110346525040338902753828705124488182565715439095168056075784476757638631898148937494700177048203972748771014859385327745939947383418933395608499303108905152792503593895875433107170881161304445861243700385835874065634988472156604809786803986758334581026679730050665685789721975290428249444943979171592822930605084024358447776904820361139935449504427995558578555983333655078458798532992076352803888310268847576326759083384228245476558778300996730605699446362617281818914903851371099155218103061741141050211794927248092661770722558586480794518188677919899732170620113850276713851503008495365857456621838284462597453984585087935086587641947439835282381659138511297079604531531479312088568812265676030638018395687653043234969823882114308459154531459715364059632337367451639782382907285721256389904593173588594583962748779962265324285659321052558205848194031904178792606359927917189078269083263837241674251710712281803078253524009795979873378283231993901797753345475766781977422975403343177406403268849963918632532023296190868572618467776483170967967435867122989289113534765034763542396727491719514379417794534634705944949159067723702910430069420084505034802596049240380203324373398401110264398218182325564423533652736420649186187816382198639473930748516562805163507110581368996201536281629517396554965027187998965648454590872710115268925283735042438640855505566890707124373575726240233451069868411366180128516033017609774732020061157389298983228130993534774528190381144947533399619672038544374016068641318574256120107418036241905256198637871993905041254617166720833118139444813411736366721549018128632241461508693637784011540448222970121996880984235551309767145442256859919949646900107660919270325003175320381367577459952144595407525243006891204824592849383231301471278368327727011415888558049812581027952736402514001962786573374144123207248008977995180904926813994061070000867366967593731915796376482913946752479526315160717943941467730020761129192214158949989267254861778303333683466789815937317683206009610452820928224861761262993027414437543075698847990938605861262586768355431701620122758793603922078754561051996128402739904071038516966282242116750945853495141080683248395386294728365125519250287395284812482687356846275764574060413823024628989492972937589779802584957161252440363126606426705540065048832803072873165644109917399597702769803698339759226432181428250833754863817392932949658457303005263573565576526465354069232551734668247661553214154311834276917062808998688920407084717782084321022494077927763977583417311023091091912124229346540827821960124332645666432358824926610692654721288573758895157692248598917805255503484576181697744225994189593084546889592135377071459674975337153391162563036202331900988005524854317006305739139029443906179157572416226309143774181959390615532825487750506491734909279437910621955851390346589508513468092837769200833768031683510475691261158450920764463095848622194243147041110672472147795703160770330442059820020231231648381582997401309041812796347157057837161026383818362110226932573633495134115474400587253092034234609684285986482786697298999421385419292988355331932676368888904513993134158382986956901268187527103149756013841453260279308614569988672839672092601512111638239396307157330233529489869354441724194166499416879549902196617203081715484140468618920174121157739131907922127976789002177702462110047693769027430452651405397250528771856445288400440698267978005840069880021123527635841013669114170417446536001337489841306563514077140628019135967760148856343104816075290743728295542116291068847774702492925789291702201062405485674149033405855169791778712635902324186899996144080481833720244379219170008769179678677633384892460014845365858745452803309518702524050579294629629968282915620681575338249613552372993287823150148059800911632331744118266108201436005633579793366617546002702028847314372495350720433876671659980249509834565748540862858748839542971100117331905768984211958848390892580760085092236289544258235100451150330709266037024029803163925911486922338035770950616195371649842749860908771667064627087065726315725947559146044048318737189159590198088263589925420485854538662155226860831666620285440452575790034357423563541997827908619351428909562754609018338025340952044165693126488971987511675110446682077806782033705144285155434528583439416015765021622135336557375231119378005446299730327131482991531171681446245042238661862914036349075667308619728226046049054104477732426354328508518217466695855266281221552914002945787403384162623761758315180173570178712061548757061818947716720305363185810571700960025057500657644062115889454138523486145793513424324925307893988142875267740946005939206558332069520190437624076182405852283916563156607284285567976099680552314259246888471899100031663873169526641996699277977628714649701808620690141286801996085716147698860284979854405689429768103899859771701650142624190854451730065756903167948047615648267701604620545570588394260103200363765296851089697524765964660859504318024098183902328598910781236836539310908047016103552833468109694509114738829728212679239299180662845795610261415612006059908681468213746794818553245749630604804799883477353750526772311711314532833514951708177121094989818480332230108702693804085211363241550129850884366922379204539837990147709017441263800307224049701356706934383115981857951248485677791799691608692743991450730618351086286459683268337248018698238577790064544671657534613236938955161799458156670172912430443361279602139227153343061975759991697306139490251923888605766162466445971616391992000752904147012479682420273630633189858300347373625187385095829961457138596928406356870885733238010912972420014780180121002729870441707969795463791379379093794661922178774545866623734028743331066141878661519280983071918377690389576640142130639801425428207801611221068072278532675118568011817053540583373002688214128572263056229762086347129942011010058579094474257552046459464565424810042868497195404100724832982986008044366953533499220510182370957527510820381391734643022889591698664725956870316682123601797410581143305273140476780573773345424831698300238114364448278953930826288420511941446103339757547805658456020268146751854911923036238702810414166980565112196729292378903515922173002837551783638904551147754359855611356183561280880367642273515064709033792211317747230430951805788816943225313015630506766225471565606728733782907267025359480997688989950967773263968687315389514104979791324922448207457010498104000429010764099266225431240275607982155629180416018302679773171381846624018704418271451761380467088998677979886119013255841983189659517286435004398157286934340741503410235880220820185191665057816864575395131311064340228447438795003668536125666583740140032379341040685823654365236375526509389429663067315203843997283131576678457200723983257741536142383552993490305428176535751058851394457836359182563887058989127079932973728748466730886060273092290796348150085913592693210196567767151893919692302956638587809503779236410628178843161505442868999005867293078338655892287882042588088431086291556770002240591834025021121561217828138825534238325046612334747708327907802849721386392486825752285952267726395848404056715542111308696621622196225278098775603499935374802106123103667149429112699338478790565885217381248117989818837468589967831817634965376575876739283810027932591747557664923765727597569346182363627683378829514864245989800156528023552386767494374027279202313696376707126542779704644467376188347152963890350835681183754739211623451053284661216352143872904206610860336023551521013794122180514102488968673305604380331669557229194835581914409743824429176154334252163337870408669636624311351828104780644307158124669810191706929590706546043920338471251080381399840934010357444598903101978270957500559531932064659243282939890287347517463952917902711916507385697602184675499858700038227063392868830488983751822269366552901134124445502219803835544401121678574585935493121315764435271357336545652838609169916755881565474034350454305941255948847261596178849888150386310474073317740140255336113891617234087726373828404411711515791695823194917929225535138293639030371993246975188797141845881864901049331947129704226470652683273585605950413246772858088562823000129704386449043993372302146306299810719300930470410936076000146384450436916639132972715138773552750010078100169835310802140923311438677368069750126850739098259137005008037319782224542609726299381648471289612718529134609938761686877124803989141754104187226700898511215410370027393062742204049749037545199455708668499588739692658226680167024636393183071105572574696605257799995477719896147271260894594048045590259876146622469179092440285264470534969158604575716424335165660571771063275789672451386658261273914430676032302185220735235760934550199659157163509831267361473799326186850745401486003151401094424165599089766488809175113390919376175232149023218778889344683708993882755143220080344018523033710097525728755398167375723832588831110425554827918770697027474967113146049911950475224232412614198957817561668074697643706200667802299043085021161073081798033085626247058789098464571454766539403335762785975037311433633745031908952298250583900863721133489718298302626898373342647229964415946700588744075741902352323076686535670374262005485389291647751327164292905795492497996218868255600991895204159396962516266020537495540195455297220426579368336271762196231790534578056458703234807527541132572461127211804754200207285396134566726505624672672951944619368175351683409053507593202049404644825725288478402401912166482452600491302894933605772189870576071041320958200207183030746335543316510185860405388278780814809721919330224336603599718112658844755839963166175022314794648695229399686534710158324248585126158234389492103451633694078553881996200873136018901443287986369152937525067168715552131791475328576069611587414624645442761494280035583117323395495608689233653057091307288093963158044792909805064192930329658495659792152728664826786030661344615884650846488465711157217345474194368261688651558849766539172364636323255717469622514194121911838040026025343726810639857449767819154125244593396973080505579286764368400501610666972351216825818974122557563586582567317089381628618418468573210705527084816529296306315909007698899794216757330496858546377063919612173962345334884361159840702494313972056406216073160049651963826236669563629697970791633417984835679584458974131684658836671327063717960939610082952768606747782361130626852771378476449605916515433257632011169189877778717665587637665411191537576788400362868784378391828025942463410452481731314003690287912730848597543306387831994764787765236491221754603168630523356676133218247981824270054410650956732727402383400215632788257074511681030478848246131782801432386610875107492667628463576840372756180311204002416826299401030095803030195963199871266479813029726687239651005314228064707738966849814043369328160858749950416198381514544448675369876997778674914141594625065384429443353461227327156378152634773772843490869107691923052916864129167211685031727985933369578329985619379619633555644270613625149901998123451010130717225371188678803519635565495142419141647170574992409473139661194546494986630005730484842486142584900057098732763899223374215316451767126596399211262546038259901899582122761750217468687762007550344685321522789910382666050559454731983175476428116674762261112158917567487800727404819549858011122941357799700492667721404112781264240998052997681562732957662514740065857917786719541765726041180051538842188129118352152960845504132736400153341633121059327368694147055583110593071000524723664522628861758557717123897554550383997426106059567434136598817792222410832969200522804062334015071626586637964210295448451962465091476118170246429733889338899831788529827232073649183503183789211844221708676537115425458355176339787213109335825690300425900567551859949924323335878925914659413349794439558422830789388160047697862337173260011445840662336707543021724354480076794380671754920893991832458277843690109281512796623016653101553885819035761396561384882561839708439733284935762585526338472024424714811282796820362128035516030141338322865287836491178295361591956891337588252267885476819449901564191975318304126113525707836893156011879782880457796317010221547072489763881065274477259465065889405070666427728153808742983065068466703749701597495214811377162053880977641827830256695874297493459646155024480167091742282563922180212026801370181392506772814541520471620699514920639911154454137921119700760265411856706382538909857207818078140224968532916968081609177094745524776747289522589788940649228902033044140581131958165034132542883943284847236024836137118601076001215113091662936793036925170016245128262425566258188041163011736226666223334241075094791077407816795836842886838181913585514994601390434481133434995814434031009326951635930473816320816799667031839774038683824628107767868123718063798631783539690558442973640900378851490665159032968237784037379981573303342912917763905779473487992684765304704753458912906921975469699365963061104960152347537646574364051644315402851531134147171146090629932659696263233513665284691161489444643920733909543527034189906105940149543815738865088867794307086454631169232856145841173142981661948538337587123322772450596034378522834639236189460903400999276268321079529223231158667124666642015129091500474349377998710701925414732700361439305705289572173294743190867918909807940268077721325812418090753773589161786543397080740004005668188533869515374186290917699400873516229434445688208861525002810069178506770896417851181670730571131419527342186183126600505228739524163268543446693240057130092069732183461462735794059248245609020147137465159753399945475387725038558725285280487398550555680673908295045934240325525168151542927828972484102755775171767513282706580789049536713750852751835652991469513760675030411877778591601634252160997741022176680504627961362850370630448788639904591396090062741701638895018193466947283455783026287809364789422714052657298652716277798101495783992451475199570452503068819366199379616938785884578273304934547909861543375812453229096608509900495847939560460244345183019903971272545817721702937148196843093998823750900353596434683245715608205429434760104466079715088864766624199575147161237231068429971254060810754392696113265636047787653538048683439822262374259864266199011827878498636170138218712025674744231264113658306281296277901857764185618771339252767711733566166972765148836049425237814352980840493564877265133008312067944753743113090836813311890662632120199090966735953698465715008789929264335052314623061843113689354727738727579766237070332183001207008290191613885207212797294718532677559975540035474147443905318527706205350371434431937700716312623697593153937042214577008835938303235628612593103916889253059932841771558432168836568000711249607473125507831402224222636653887589909951495073820493778866599576083206598598622330552207604215042329895237680253911477724936244767594488553503970582353686328772856097709024294324084982074671176726597035634796180216781059267985647710868354617824881404587150858452822709640037354415642193728016754660154260611797916309673975694465826844710399352525275315710602719806311722485006217093240913652698539456731550210132044958065349406373911982913569494494668295042679298513886099966826217717685303348831433517252894871847020207481190931004567082399850901858238244271765999187710652316392028757830409068920247328053579302716826583295742551514046068549789256700624666145322354441175573822694374511751575813246170036722412403216689193699292119339874107778914509756024611197269373607846685540482580234730336483198395499996142829475387932727199462295063022148228315993047855121372817000143203237489847342809239085529458233019376589869973844380698412114793035893553596198282955464787347989191666542985565719247378828049437509053801608070095414669113423685114888923384706227626121023303786556735593506235708943827791738851939679219398389255748610509237967736711892173100990030765497117202126919832076241561683277299193241917135311491924405373330327276974168129978399675137616112928617597137905011942482197858861346040077230070773367065797917555743482946248663272893281839330459128778681518507308779729490282964289639753465560689826841718230022416704057447058132892830161974350749479766810882260611298203833947439428598022788445866060963592727854011154511352970038306852257056932078521208696928993739801183189832880167324897307937031629974634852901962521732339907383385280004664017416131701213638734777901146802344792716364979704513643949827496964402798677147992937726489785919783482892997925296018701373008934149791044035929170034280176926218248275509248279307893152757735583090496880208207642383908708765909806676431847272052423155645406608450112642512409936761974834301347982274740500068702683900087471649580573180326626532959714107243762897388393876323181756384395187244371592339925653583199109563286747484268588266221259938467292197079273429063375473362701404177956379621056660766070277283459987453413197263834746452903391187722708515337059150369306766376698325514056255359271958400208985045520966802927574164480190723554544102506950748983623465406187043808702938348836048556994386302603136616945808157753193950695736581879135035641712068988911401007586236890133036416489142537248273311375612227848399609561736624319759718775270021526725027794166429852542057194463315692657015648148729269935702239182730002875205345867321070920374486033389692062627226794090201617647928509783418671140768603639748821685401186276147999622485714648719537655046646851650433999528613047014850124878100389677266677596897591689608488457778820765738420044295557460330638984782716500990675279348794619345984306400280293210728123064721891826554438606607752307634529010554039748451828556061421684898590206369496104911842515503475050039275569279977403720335894720454857774098845048710586318514282667079849556214126847109051026162777329882993059563387365057804146375215654834636811984767825444366407792755543322743333956364379639975294215780209711688935312718865010189488869063981545144551083396110688627592016912495857853937647145675825884883240816896427488455941171174489695856930832418354344852891926013316725308562276052340046114831246400737564454269958845212983692278402250328079806102301849617653325911983442711813851067285995866184366744118912292979008911219216013016542950922420967565155862264932720835437096475277833056632087152748049051438187461167497457124650325282030903674530708973495296187853225329732498938073572268312594994185647902034894931180399069982864104078988259748757323443041280888481994843034182754643075567986636745407793185174337757730596193013966016056882092203707863730308980800366713029613363371990164247420064979383573457427796338135628492624762060005750000709128792568763020763709059087027457949938331078200519482669337256457189611841845623175610227237536982064773143498352481394154947728076916889337419433665003846952336499107872058099734498806254361291616362920899115642722985353778822875826451595405019672836148335886954078639043244253286755453788270078195920141594825407663137713235784770671571467414083927135771988309152005147204987097246107880760007956358124358569942755850404656469784529393350706705158379711257787414207277624529842072115120951507063031227801980695355939344925254147077719014741776795862785263105539894100172028796692588389110402996676460362934867932137893976087086226124709163848200837790822030344883696522857335309862027937338290101740935293182249259884358916274072293931729254399158301131117681903041856767607153518674398308279139760426356218416010971197847713560803419491600932936192738357893969839926744679195200835802691021270379292281252193120811916041660353879334369385373898025053051653863531826102168528198625405644816514959089435464785948680209846965130471872570050904635624896844281722787001064561858568252751688915731470583516709961739746807854055522030074360391942553746884829083713950480458064735996249791330410779494424905345475617675652032928788237183281030229057507725560225668306261192935183754838972971636605457767365072644154041426951110544356630555825518625629732166522917239492035253795203814038882311596292129672275971077546522614241699129318098078205280280114134582721288080082299162743045320694984422776258058035810575055254605731255251052391713238580431813954115532996604975348207901272329132778639784704452868182111470417851881426842787025658700992435412620256973768034812036575562064001480127726625196964436613785309911414484609417151182201893361214557586763860801124027800303499701936690569070610976075804892838822950716688689226722878656316458010204596941567761876296096240606606910020043804542574205160027042497210922082982427917594533855364724261977000086972655550468112482601387485224717697341113877456099521737948273241043362189942404444920403586397768960158263203488974781159646147874891091964565095297083726886044687421770180455669747299487486275105752275306634890911531885534291558198945445706280797920383965608835075387056774197405919919519692794752507741843069990146747254195127687139323370202881431767323267952494788652572088445203347252890144239451856517410915296989034959099105080175010431379744238958449616790917039695308238938822361682128992868022256238946194176646171559093030460011455693952571265454589885699745854480026066415264375407444687722014444711760043821772922751991100890495930503237803014865107272727215830463476428003124284269575878799016249974966433158257039400138708115823165841021870701896532342967063431508708230113192549324354295540725859009226419680420638539545608187963262429480555026568741697285210162537903330784526253641369220492463444196786039821801107200628689155776776337935229885335363333610997462701400692302624759830856959790804716257550565501602923157246802514508224156808002534178645711196022192146671307503695884704816602987616155066220843091489614248097059634728280988344124715128507427074065506162452754471448229743936193303211434851969637313512058999738255449038275980681343502870595234955683421253291217622373933041062408785609561134790118559442317505177987531677607341022685317969768745848085562557429180856334926956939950435690050491601143339035638051641515259159799406957275208232324790136747764955793273551201374981238473780771978292624254931587053974905148362587084565625319522334238985163339448233176896918134804938646507105394314545113588917940300886383922026352958637794719678114085438895724700206302151583486280923706164955533231984299243267482345196616749220115984899292832625224611392927301064020828017937633320433181158306908925069105355723567353142022943416644919822804074574948877997551381924000928486430077158373672618645030899734592799940040355427454368728993234803058065571872115423092625922403462828053030775205458961763637897138645021605640230832997951916333923974327372616812773430714781065476490608844005880990003008001278445575825361950167768421935293156858860932777587756947980110226218398853716713814287903705983251081226131282386820468024137067918877227699134021946068234324615325879190958314047713135855320013044207510505249470943527170898817475377717881774826848197972669785941987631302884565826949997230982297585653591691946748182019492304003028500705068102735736343755755455733911114922652750226392976335661375000102634056019564750063934800005563758928395552856267257254644298866086453214081116877544377542311995539091251302405180942952254368947140304494147348244242148343013482319976441095471807676328304713976329868787921509935184725229802648580369065154229606832121892271641979130700005843414339687839796767178981485371084263435933121369833568786434975581998717609171787877690247670752589950096646275719549918876825424848026594333489142986448525386703390555776054690708612267248980017537593599315530358979994434952105888652086272704779335355400769829384856208582444700805446928615233978109806160323350689059479154035918380429657013400101343806852879892857825627805046923073353063569588551333358282372979387259014446853160249875896395841421039669534614647177061128492194543611259019047430202741507816626228683423683651928369835549422223492809845126052716821258815079669027465142442997698435364891229667708480711264018213260080650689759527347656976610055461255373029730319477641695999565877835595607515677865196872216903498072930595877956332457903405389724303912671605694525377365820573982587007131502424434165186007094061069330976432130680263134590895742650645673721966193255648914671142219945239840306786789360731650838656685691647219349208374256415819588663120971281396437513131610237525100707145796113393179961965240668889692253892829189444350750321165476256142367171224985009419094178678005846068487182486027776688934879929875637271080079497808412630441555605732240050555666766004994849072193224807530703648563259947723419225627611955682096798461583704314957761895511634035187992517402878808746724974192153304403238425516918299057209796369786588478777223175405813987433958004549210721065242082790862804158359030403681184123389601021375001873554904239116116737196951668148406657432102305062633213927853046970340442333999895485274125600893203033973681796372695378066185735641154100744308812780367157777131258240606873779781147258524245500947166002791529883895062795456671495644255288661216661906183043283321542608243061068211647375712297585690545129255271027461076806584177581720940025029236185923865474527740127603368157529164023999216027064501030435467981864143413175833768786421176384326894281018124819841693296705721495278734748187602789228019479515224895378871294259031070562317163228636390219454558641510195447050183021778701737638712094653089968375269822918541359294337883908424596019038110455461141847678452641393321092424286187540669733482797752479708815398038571609198801406287822033672335418762660322502947067670174844032813032637509311537071260016315943573958303945115711138768952134589583009679758347923595753760090783550233292457046559985794182068146333879759506690189410842072440097371253999790300344922214872990674159447698992336337581435885312815443806215316174137946405413286097784365567792856465535152126925365852337721923433638919716520353839766346735604398394182189394642275459765430223583645865634486788440934485192289536888550120986427138507355307713475247600924519256578335183018621527514302061873866126070711395309426348866643693116771861181200872010888864782991818378580524229324132268328353953725515031943923941191479309905054572010343524384707875566276886653776834139895688672972950323034154204665485433366316144173599996356166135941848675875154501221157551742255538978299665189803523382723621920545552671204415390274133780002333186980542803160326195138617456979836843721115693025613346557155010824660276835611579194825502889121619537050806673212496523022164652961475445326726855921492278206183756412688785566548976088184764598171370445976029606013660706442905356328994755343383492813969175696083532378945338928559579820524142221572463529050507632225428614799908965915190270111541238166696658242505535922105384132906343912911503737843325636288481514623012069787530075646481829873574358351447965703321935286965042154725235166498800713728881177293845699678457478661637014422316704453662656349568382917597746138146897602428860267682830280864782097532575672464944358011146950471059472371963534069118295376101722189134438425761095822608300064408257020772585184931852839168773079555087565068289923512578161943692289507228164378887197290188487282541929303791365476563692522421764489458230340789941064097071223588756457892634998607121914191677169455548084790986744758171558896716058153292943884708308208694737222557705208843063283588505364949703665196071726402129418257804882392508304545036797889748041404701739599752299635297150597066731016418856599512725985827853286015780400576341353280845126500109952586581861981110873774822705110586182595598638291358484959395477612160700649345840768578739195142738229940393885370913823208689824934335630239230941899747360103584091093806999665470746015410563740650527836276085751162549213203047614821644006818799513498649611221547015147785870920296519401952507138542874119225267453258043211423717266907141415617676001148081945901088977155310169315087233278914629595389977629023697935052664002389264791807458681717287196346853691164427660215208931222305465365734653779639967071492988915208989169031121362674221841724828209654013028909214082438487737332057477509329895266324893933975393805915273422518859078087749572974303121197540036059741557950855994258617049468633041068005207563305608417033178145628460008110567823409576565390243794493614697350674647771077663023649377537838536985241836776506864742398926827173880174280026425073947409321626068372375647388043362287556872259927311824176064569487526370783111490915953759470183937205564622945762324733911767787464380112688042643575141020195062179829686563271178815600921274265159275426118219025479066237954720779664085492156776118219044101467316511674581881020911014094323845718932841751354397334269153245522098035084020224606975809080922139664041091145501124833822150511943236704428233660525204695282613612009267757084832071966792277713734126328540042210508788871232551012580228052422742045100838093030272508779102655287781339815160084451226706001732274167665303796221219391576525608242837951615290367451236769291999878130818166895829957178653025429386900937497479869192386501252909555085107754229137047218719282015605940698958462357979991397346412139514645486404377664601513043511997391066243641776568414768445325744557856602811639684581460779216127126148275642480915890847655385223410946330446581227388686848725786551354491857543132369309202921607233066656643532705139634816195478109764736585805564365483642465345307076466454219078644440743651812086843685102835519064709205311109970452806507459006590354606907337383021185757436694153775744309345180138033990776459003685850969596417762583443056176314278883466285466323638758684861234005093717717759250613484539254216304632612094709545678566413349391090298488712842169348118673884340617427179512455585821712860415698176803620531590534091364730810850738165502394345536481213749619128010151676383472309699519790773366389415515608789979547106156352015808470847170637963228888787172951373276186540281838319611679470612178731394211430756269258365603164276145147916857764132429838065103589387971710819245836228223566550334944734005297733300401074866859786624423779995423670177402626987482797393373822792965406979062012969672928654629119441815749888209007342234874121706008161096679294907733759922174398164605411678357741570249820856551917519606094686520874706897857526903841231311420375925320960771183616262296055158969047056055575535058519207659481271595506909942329661864207642125549891225052354944003984936780695012312075287699637016127360081249532260313279066924756513385463639174522284650026941827739695843810525056882718472719376430077798038825700207047344268414303580440670990231622808402322832739900038929999113220975524541040426696305553062067270595366470619021503255140588283260929901234038499565868330734178320592637204689349379233460933957717614314767261588931263942182018709194090055573791233804332694882466546394416406463028905088316920615095210795482098771589163150836169779068199096166902264054114599615732911518681925922404912899841028639212074252803863065077940161288120978112075848410723177562280316911437482736528756783597632383307990310899394249933701943124703471552402699751560082672230776841850763344701822528446679125585037389378784563157466544946924486992537483972685086045970942810039941612090634091655074812144582528964604773734226739513782068987461531649293906557194319646025984392123047891243298811595862480342745340475345512056727383888141478787526668079816823337511748245219084628547626235148367129687826018288202240891537045404037574007634262030274233148715970042053013329149646447888079276230419293677991447492813498538595502322613147517402311651335564641358223556774558495537022772787086028356649765150395607412827389372510025331829519832604860955252262718518167019113300337276296302912615700065969476331999711491049387510183699487747539532254775621460997950830155443379569992488974269788210777566020895497631395634727520957993373534661739195204427428468327938731836733212625274235419619355966865402025510294089678589690582391225111832081611936463188487475199788884175467483541717566219756090719515395584030131909874516377534778772160372828626513533908094091962162116162249713391937622251312306632829344875177756039025769826904603179454524862410285991524846081030891291341581905480753835193203409203388055112169203547509608496941726436626722479304994018962705865790943045421949417223641068984559439647316586412057663177937027814220211345641579255794177125094795073246962107846667741470418649565136225930087775678038911703979100749837094599705101649991566350259195549308216804463570531753817247781572276917867869697286657839860848091164061994403710226672049879205140034698439513397076322662674668286551770011415675470553573260611081790325126987052588339053300999008132500508116480542454335743339219301846542714000131551917882710795854482836890990006785549917104643974330077894018865747005917462489759898980193642025062290030920524550432148991198891689437949783359708600444775528306434838387583092837489473472271076171846005883694761906427724510453928496584991817263715481513329322374551595973487527551653204741918793423419166635969756106933120634120539655769244288537370060090040957536715688116856330209141155514071908401824463751118063252247260080732394375696280536896034016264243975399898484234118829462506942251371177386126878904062373090827774206125444204655804759861878393935601622594703387992740598814163942672429082533722706437545596557059639449701013957639564610974215165624433277173383151299453683557949971328052821468360805696319082841990365095985648877214598240367655037551943613291769611429249836530677477844505205280239851978647924725148476405003689538238595522975155853325213694659609412775425788537847159319225443523628222350496764500106095553577952852428284717340356762838007840257696959973990215152462931413596039236383452111500700023348475841340487726641572079567220748437300133422347228585007696206097201511227547948088506295817248600594745805769837415089738276196096560481342237316073023620304328922599438196101327784611433233841642122086365051142696615249788930150722451971190285231775366087312953869549134762675088752939904425028320522361577084907444273794896006217396515553370826403535117713495715792452523187212994634458891517112183638229713141043537570622995984820936362632302598342401884343104115684526385005276794566552189742718885124295563393798169367874110960190415416926665374811047981516511285386686277546903619472085675293643090696246061203701183970882201710742091481190323560473441395823841838692135946533604858921350309851211961950019537288891142278620237156448211634693567784282901574171306563928033021582006156867006953916074216411834662979945320086325830728575593818476311682429189022358803849977308034254761050255334095992902616724193127674742145903701253855358331669490935587198121422103226117915065754244062753980570194056438406332057116235687281132399513990981253716537270509410060672183309201472111021832397324563543993797027974039989346474723334821257654274374232653708770164513514312714830440490911294014535091406215341688507756136413930593099993538188850245777193927705139362862071612984827767316813165499196635997703038566310457833448691233975016170796865060592673155523110442672145016803432097797132601742864042331783115406328278142586524882269475650565640566454025743792795984156885923929483281402485133751070694443316109600592615194257238771927665709635523397956020400410264885938116115220374879727836500716051822486945822869383157874305996084420373103391988440577442022027669003829398359183903516057882984484085240026308149455353874367056206527133589042302904277014171349170847364358769984638817977231298449607542724467984696270086507261000660751970817286091839211903063006438452604499340278063992562744866956863507932169160047157804553187155790883441256615935268703914855921315263791674332536180878384416995696678909952822971318044583461901352174167115884617556835617276410379681773543057460604160665718852813054980964881816500550425954821858949519104223261572977798234720509384087038397623435767288717777185412671605696154969024889683265490751814538063147443579693531703166094873922071523373844178615155048536550783589134482557418971001126861862599960533950632252700591725393713884099368033202220497019355871941601875484631778483299494882382646804251552917581102382928431674096579883111927367862471106904931809750658271031991220590669342160215971074881664026383595661903880304416837397619187235469556894160614085243516555034624061309863653829953142360525653365509471628504924200803175913786796726680983603387246945332641884063898343220805518928384899234842208045590333910728990986774140960803761848270822335000988350504808209410756493606947963516391704393868241135824275466488437350579032597945571897923036138561807252946483695676186255476201267939849809820517541539199740897894318871285619474896563695024956066580283643673336895243145939093877533826771774534145222215305661134867479936836338098234045617867188847232251715408762204252300596779735337747480417977628341914720837635006797712342522358495435529591595207695446718385952091174000817197574964985266416060864423087338954182679291769394672056539759795152838017688494957460512098340287036117713259755920032866119635746256183244623496544177690335273093102033340378455588028822632890350735075374713793040476660873606851985625888537202962520895938046857647881243680878413160057040550279425002333328901772095149589826735164809658297201816674863962424193896076051880089577726908357457743454868055245532119288816939932898825327270755590118595891186139658536819354998804510021613862798886702562676393473728224130571936425240910178220875519185538132239182658787725727242955432462453304399332211407621728530913045265496661215407752645458092603501382157434628189453586765761621139909195897462403130263725697724381850450773434403001100629696949304510878793381708970956980572233241540206590614099616390990935675269303473881948288759123486422017848622176573988569485807089928530729814127109795621199919254435309035521291794320652514540894216042799718373374098334961380443312503172290719992095213655213906436399220519589557179822185524562912144926344173688409167930032059839045700060154195010370459581389871247738760989883239244005972633156361498112386003079451885793717976120025084155128498582400225737745457663851374101501941478743941941727310980941781074472583161156859835835927504001680578067835112730790484583549256203775476304688828598811620343921972580270030537297964209739029231934653992569630395161583829373367701406367490243687909676148260654799171339864890756989492827631135136103804461410191172488092918425341219062403913883642529237330238619757000994516963251290617454940531890260574964300015118105931733896615753464857282596846712525191774607452527607978710471747692659912289030646042095995439949901997859729401562590815133400343768097991232529388975608671246941288491897663482883848064683666639678583354764144863955282879329073831667557418681354262835647245321825793409493794066813649225950025106404797451666945165075914683873567889013837844572572815776002532668958227612496765624799741319985744707208300564896641605203060645986913906022641679410499340884499073042912460985392180520253533917296645592256970457727389567479519994670385330734197217615498315046737533802431128213218621271341287905977316360681846997502585173494014820490573074683597292603895018653499471210826492416705386587576245223453798456076567178815685346560405843250127955845147693882961258769866579477994891116990984762434924411837260655962158959680240734380636650997832711606933341036425260464289908732803467451854155591662595925072543859309972915762682840850730290512997281603851205194552508377648347216003662063593338415853597928185875765621153566739370154246943141200221508156955404504709760440206680564458400144507140205750999963785664964369285032024385020767508739624867098976381347990285897489488196464776805126968283278529620693058685831176116254468917173274764100355269739375490788969927368178738024751521048364862067623373027491950044554059653818180090454532513991425339671089875051186613320098103382388881380180155951860503692467625673668780854210945691562488629303716219328569497656967729060399920627358187608583951432139431364846661841894255586093047987238269646623504469191973604769422473876751260580341640070508356124524273623756449768434413015148648028129271876470286052352122624448798666590422963459890368669482174675537671934232026253260470441007709549407530117836394384742470226027720061056418743856098355422060060458269270586978866057455536668239341402870642733114406430040252636918626682900940956168688547694885331115539263395419357517963142612049855337996295801266589886565182271666841216708857520955161791412338849594355916252009425431951911261845430918939269569718278899213610816386465710353242976518828811366578655733954863076050039244175001804573501549712936228855008308034415213400313120585440271945801703745424468618091701607802037223881974828103162190996988757428594796722339569484750795374944518879060931855855878495473462496212080231360558598502962393061955265249761436799405432774477659478127955335621429427341935333305053602835251748715992244706416603618295644013639247431753382094212405604298467450408871043930939871214309050373245538698721636604836511874495962722008036616243012584321965997450726981212109136532440783072174898793306748442881249368545371794045912716640996602028641030404300746630284636915678639335589287507797974429107146799110576689603794585222720268438517349622187379655603824249218656512304247901204783381817032401632431696081856513060628781068397441385904870066377724209868690095156535702664541958134534452576703688685723711959219539159209815027189150829902782597195985697152984420902801391721287929420001971614882793465242393493129894500120293497582226810826804281644075343394651402436413780850381833560477876893081071817474825271412131436971215700679630114796486961237139436394291612234381796670357707394550680979265875047823139096485367018636977441157918545284529276636908569507666437268732370065785861125118530010859792555036299358317346418083996292742553326965801722850479890535622876422477553948035985493456280460144910817488034436016425720150517238549990623956909149471017691023785425763752128511206853693147872669069765547848871788544895041323850452974101952895966720917202645431184374792121788341344760819400935572975253992941241310771591538068136593225064967215264163509078461535210193136459582539747417957196822711272891957854896271824800118471228336573258417962108949709927232624303131910107952217137978451468857029736661120164779546257416812763762127466002752031838732869875581098992870957238136877466535021199765197711017310532344738640097910148146432544929787073495470434813958030468519964896570707743348714404759002287788839554016747525377428026264944345698224706187553664424111303540002864743717494784902564723566681003212347309579648029864575284145638538157861991068046184555428669437774993201727209910976658598724817146860167974768620859018746722661011178832502592843142026702038041400625549006777800413509343445380064266266452152440723996105606453389315237862257519220554399167491187550096191540174054457042470661805438560386002931882919307999629492316291403957564398581075022034091703067070009164416618194566932992806208783146497611529536009594319115454462573607853285969519459928603897607535410259350652587028945531718700608547675273896532745299516869374424529105462819877126066358118386848354556109001633940637226754602446350334266216356950257886912404871892587983358859767921127916787302560918643258684874026451429029692232053485437118754216791341415624171972044117796839822662654917928553030242495793764628929254152033536309756065419879600323058365125991511710845772587770215843445654450068808745840157371813546497621436020907805365752772817059218873827422255353001910682359177838957247792095545533532618270964761308727112810209106167743481207755891637385451469221560337463822132919216173959917931746540943448506583191087533213952150993604585946497850336410189536716546639645674618532211913444135457324801559652847201360959184683763630342941825099568945016815542438510349847098022379074710238263162283869956967049832053915060923784322598895193123636591686604549288314640279204858002069255074150325517275730809832791681937124630922472749107849985481567368928285815254047755189142180854136904318626073100945051064298201424980035562897160943445477397916485740104460182843431178369453094070793364794986211408612612583192104801555858632820996814259879946533741686545247589278242918316377680197318763257279385314896435203862713776943217042880548934050302068983210757039906238313772270947219562355028822892641365590309768448042290892891364913725317498681087407283962231624617395298446623979235680962316093865559189097504482656877091993939998000195597483621145340177399948313544601687914596105793980144813621009808293752232720977474279748516405400317958710570077159342990137095578211608889692221623468831028312718075554082549551455158701324536955677448640996470136291461429822220016933739361691464839881673947342185753940739034841575328283139685996145618503157134108973653216610937190346200091673653206125625354669438015225749857441807599519242316758052703995200478001848830758473786311572916240011479471387970566327971837505049724121964348181897569987992182625506769663802943066876508048532143031977248061382709188938548718303174231331562466324733373076977059791315229932362400527814474682942048645405348720832200178067343556187449491462195059389786819034986737507384074117893121731345388659085678346068513586404748181354412404947780014067529765775245259824540021303636320368414604843795787641075367617871455843006804970950994244013561359223783732846151938518172380002670343912024575609776897971763194461278967916117022336929217340551559558538149446889659066350956874174970787463998901737363563429031519216837950704414923710439314107094642979255617661964977620888806581112922338851760025652270023186881132229714834737290788510276930278347671526826311661124422222380676941720082514007292510084711196400554135464136513579278936743472505167885532565237893284789181927206540092772843315099101056871733141268181687570960842242337252628576962699870230284633849324710576511384312268728530407685881743316655443509939604453880028192626774503124593235872700213429212189172267746132425573202889374113516743836539758792144491275671981590609033493080107177707403041313651778049546294621396901040633407450682978615995950295367957447098265044357400443027948518218033889459072510305556155599329233899027410861171700860833770530299837651277934837621999600641859466501996338707677151896927031755668333421538104584065730149463909328363129613383589002051523860451744856769948572018704682588146658759411594191679720921599736883975727840439158392468627637820733683274813874571198122229027875428985849957028852792058868270319400485020324162339870540089660409665983256079588628182145216609573253096054048630803491758840404432620360039845689036308182228873599924880673646991878418017662131854073304134682190605395589584442844728927765010072778717822476985608268143479745291090035478400227078811050208443441898445847024068417951930621202062452710187267665084194812310470727883002128369949033747357363945214367587349268837698126014006326746526681680420498036067246797887048611478638181403411009763433040367646173905780846672238765795038453880872093975684283092994004211127080105137380810456328666243106173998120420071704696696064448867715046038317082213838556886683211285121171878139977995215569843638608481347792829640403258879548348968309603757271269244730935313904768127121196730065179902102311981497717397715911027523433324652711899253837537376991672304521377091273151866243723477775189933214567983074957101087537821199263173947436139250614175540530409071567746223516027546590847755463774642016656274653606284737812762412027750001660748938877054344484682721926175290092277038768936343534033622021175051360074092933073808591795514343635941408558961023098532539838702339365540499950304948886424883025640653307473114565737237915674074356819870691246414958941471920240586162817380045972653150090210500763274333224372301313554714128445831424370338793386571503679070776585100838528058803441317169300029791821226761100224106660095926051587147719842598612657373807080466394328556123032476981034704813141663654481901317203053306943819167619154845948605240813451282573825507249961765535533478632255535715760647713438713781901422707538923129501069181247775389429285179226345134767282547999106683043830208358225740362056317024035445286323470613963811960022149017934819394489168120457420412940965109755932956547853226466855689584073262134056580365195001831337265864340806796083482981636220760489569351953512135807297536834920326123192481670379149146209179567914567753982372505702073528579681883439548799891088698217261464893580299493540058618029682712919068523465089820756317519714115227650431858349379057061363877934541985041566275681323041211772886592767398757892561176057297859231174378707307011261711891172635441737048481447378199904028360562551001110779785654058915858837828240848478230149188650252316162696474052731741925698056133542828158244103015692369343054412454180984797436054704021891295241922983124764658279876733750078196296554424649999763323774214927813322902435936608577497737670391608659804436286474343989749676618055014069530775257892344674560946362926774067347606423852988432698970431190089456928639331121601499508433839971293644703128528795974227091150529604769500577573289120360242772873979598470156998188169309873211411312692423705076477513060750097347145977937810781699978257974764261126382906568895725632623898205279628649821971048071377611094022810154756477933441478715141627228280965680114694217887953545410081287065990721993205098705211995717012445206285810792052783863462802515894058278025001892773414943306087607510068803947123105228078355031806606541366110240812679673168202102970719700369929953264492644947499550331865740196101241611475308469021344896624600092144675607843396414298612123531915359447306938014942381678779034485143792481883868693939959362149557387476479860850706669586844500356142433547552900948574086894217205513518467237421171242869573805957288883236255384472594008160263644285282756922485038991257123619178730248278418669529551275193122308171168663636328273488298983956838856979430522927408467688662162408027820934464913345011805641084976746723533346185175268400460672920847952999945241949109950350225814093470352743995023229491760301183449830834141481493221749302869727508287474385746988236059690637978243300518789376137927632709233197752816910320371024242552800719178677853787072944292051324258781550340148615412412915921298558791342632489158637333652338121301418545807643845045945863559986901397467239068258438145530176120258250925150748342966167312600607536536513814996185796018279811969699844715742834155918371869893916562053617379486547443521187537462885247726976377749820188233628923332017033143584280751366779340024482646511581241046460476302530580120543477548595068128734778004050002116070396790400215579935459260102907337022146460918486526502180018849763750178270912600288947745022439658688366724413659093798881581042046396562091410932747712028289596551688604720021136166960317743962885506175382391392508516624261655595129247306072892688742819654458469249328977266445303083526362595353106725091621325414265453140432209661399142797467750876445024521207623616470447504406218385649322563958533675211345008452854903814064385035973076585488847236924984680734363172598794303407915148881626043861354159941291565673522619981663115370865995205976137537499742547266304732968224728351211091229033119921806534636684972115390289559083436982033559921165645916111886802364225944060776548386455954985973862815984665071859317978884240008172107935028646893919896917271766089463842297742035955583599692020223159789753584605793340833007731290619618804088794485514988407085402508513214112243312112950187866106520783169947191086599522845744321607979476359954158391077671760697103273130518602141758508086216018450766246093558426592071352759974139568351174014346704913334336427203378875307574920782437179928046625777331864581411717958781223579386858520693465459842833079565197500694536077106929440451692174501690763104451710921099143749434168534657682966560346624476928543140923604369595852871944815023584862639714330429610536709754015389705037620577618203554673022321641418968384584322727023158021229226388825682208429967221591539777412629204491227616154085329100424338317351943679052793076146282299866011635640856325497209348362899238677994743311111833052651653180575369319300490653646017232062303644745943159519158893043290637184515468086593968669107884913273387020006105472473356593680227318311620977728046326867641822854799086533609850653793710701829546427391983236876835636001584014528847656220549319871732071161327156922073905832603535945042971399117548306856152560180545712483236417459362380091675002732410001908715158163510448301417923762576850406695971518783429001308594280793416789005526355611257549841238385028236953158602824746544204742165254232997903160728488866401248774077502100412558777584894621104155116149910703833858261726926718315027144265521495752648209720800493491775775284810980908949216072998768080530232375544182410866469370004029059106632510936960733138968041938131180735695155514941663466997504508258666628589978849999836785428090684612835956316895963460070661148289067542272322177131332047915084249204304048029871415472442570258669931534408913528526480576460299141731344179194991611827415416859458345819490719346912912689671672997805703968431954577066290502518446209121078740699006814854981588712414982453743169920930456355537234283846040900494405314340939394585844502160466025887302973477706680408160096975947691744887601753992700201780558851992209567483268556033007993302777634437661950353949696719689952423634076662149202424017955086767443038344006015654176313365007246042684074039807877092436156958896187252741627646562118350259703265135969235138292193735698844936114941584360419229319822816765876224807945375560654962192622764698724712598698811885157282400364194153540666303032740143168453063120235756310962486949166714317268311436474276463727012558967750709342760891651771009223071837103811517457727917793328281038675883771778775783780029464462227448593336328868835053323298057348273355206668573887474178857785267634870452748603493586786052203996078508133806494988941876115603894619504099951041730226110509930130735285062513642785402712225948675825430549552021535218785111798252242449925433500454446611211360221734009849253187938373449188831405658654082770626306097182434647374628466456384238136059831367757385889165297488429467405378753651035515612963016010560652845311596951979838090108812792271978368275047720681907776933096702384983228995140544147554238764847213535800097298436311530121881586740717697303952047351107091695262233696637241396799257823740834582315354350245107605401455465895923975578983916622910807569374272160011156488444424422782354125707885106180209100148838814237010812097143544912105256876405438047337524634833083229098481356236412419637595566435292189155746612557523002639129337740517939641549705300384162293349945084203376784916189872260244578125630294691475609746238268340346693003638176245924947794215087900806312803371534702448832222270918914327583873860369241992902358420671174028888615915845160264361419694732264156295082872774414202826428136025048721304655278204450073652976130595057011405694333528145052578936404477793701561642703377812101491616263739779429311307451959770713029407202921133212909528492225327009379599552826848669919254311504843262437641864140631141214260525412292255728793884743473740729829878535655512417575039068575057687637649487987009734214477235387501186087489021522090973078627737224980743319727568846467813156814459730553284811461423843665666805686395851477298234986458025068641528814136907575304865219646666209078615909771855537963322267457548998299104521205535320967777448754637514124971320811350697141081312981311050276623643092413089313596325934557451860256800783407348931554493321604815007690604444360496286104432082879729705819826490304473943208444036295424455158457132717826966406185490852155699418929871701315175221409951874897161449243267074754561119122356755153985995526865451708620024777381455309070648722321540927113915202188517003558278478195883803499757141113622500182562795694959758653453163426989944484834326671168947477812594701053861726367587191971892584704488663340737880528131451671197072120593398376534257972558452425171160497261690004301500884479908963750763074185209385384519248209802388382829075346182299931917341641245235750161788332634150894488479601904304453424901180786832842492174862512882076537473035127074563467796782814109763915069332226704247789394421582798680627314626071231301319701226894966023595902458288290648867317735560836954464869100213271533555345573359820132236577903677944120988221204450924707428074323521790076149549816005038095675364838000515584208483627506983464584504345854108944686645899698509905714685277621541008239281772140094505247231393807335285284090087567965938507008585429513430615159595721152866484488952658582940744626811033744226881971538600702775794497106504461396215499892884112589716913108749982669461730277239935904886572406668004126366935215859542982199457590931405285694593160165209244860299321223297914076400964613584936225637025461336620920500158105420377162141442299113627714831851271741574335369027269525016646431014691290346976863806839173955927686158296575493124456718260238126195845410040398546612942018105203302531554751609677211364636307720126167352248121780242960365044335276389513814194119250116450267674854782038344041917072280852102319837844030881515753988233665220704677137098627101232228428260584148390623068111370846399543791063100211085664511253205420099841657294898087513189989274646023556934079868939182622306462993319753342624355431860762729383705030397355599435797979952397084140745506762922896845213459344060921459322485785883820103958517134251973149681363125703237252208253935195653300864798425122743229342842242007802762006931654059485348468951292118460246578240079210892534318625621657408527149451201686716635184723477824670303978514843582805394851346409535261827960347385920002420872590664529288629756435409611743489131425260350897781303842013446839354832875546183877088785040528623501607042279883631393652505146004900310510415163610608892556312207896550741752410684236858833909128283987478137461705353477266510953327531964172514123715691936279864150751260051828455249878378551729918225577015560528485636797783436948497194247019256285605297133877623659294510595417550691709806762937261982925613251351561133865473491043800269239329475561997150844084964861025349770747035293319267480380370221242265631433314461084284669002235015114754216907440088648742414071354774781532207483193607975477915647991175210065775947667778330755647912287894039467667761311061934304442920073208438037576559837515310058369444349455364819648319222203271935364573922646989838877969053332190592404685653321393470338036086264634633368901655528875813116206773131443775118911655820156136432112738981711447316238229103562010187377250315869760563203357136220714406319728533760054607005692280586899884649167774861582151472707602282138631771007458606845641467351468589181178828120940224679908983814710587198340089546394307831928951412609004934025221840571318707632853230340324391841723521026263655969623112536457979353490129487695372862676766763860927344305699844504405472479656314290537314600233788834767533691069522046520597006319760010155128382106509212375192321235976439857026335849717623710980516763929731481555253423010422359933259620952860000797261092721120739381710005146216951563511805293515858884858812708645557003698813697324419500891870329880838765014304795206855323525081376241625829780299334883733210793135074646277381706258278005648383303248769943248372569661632882332336789852000295782169893059587588357530014612393235599780614825757568747540440856865344168976889045199896028991765979027588735476050188289093000898400150064126233639468335974870687578462150434440299920273804757432585350869026854915735150333136400889953074712376079006168547829251348898159010779609063331365218360577648218039888768536306668815666343802236933568929836647264659085543470835036400044951401002813836382039271008918997612195425487563789484497080633626603271137410639653876116775478209165010362587578223159291516724129233847556100752868922624437484731380991524907195494892175119239196039277899283243398271610832716223120622634413437989001767151326961589517555143250017153769933406298842348619815453554871199173350340358374677390517863231189540762999403676224229652546253145621011958014486182864720694302575899094957307961504445509509530362236636505983950482574349170483305877300489321921377672298896585866179900099131008787288092725308253827864254554252116995912368970414749778054978355585234926161800439008757210063095409774110586424397182568271813439289506070685323654769473757976565803216094475144235695793111543361782831523276050600368863037132964090306452508343993455958868908424313834688578933737495604421020732145681068245612671487587612875581118124806823575371260718695920715573457518806218103970392630422303173379713332413548604630337527935175649965067962012338913948898344567662338972320657556557254741583851904002827280596272057665238134222622170773596688967040172261830656685730319579903135658520669702156397622342624260123284312182296579260441565994864479986977998169543815166409744900695811754512230464028773624819069239752042456652511116281702342894223049890432651250402520437733653142167737744315713552434594334101387161386108448516478967332881214212616263179725575871842755982790413409182856306429320421021876518446448359083244298006807675700953613056436921141560933789119780350310537919166767368917766912040687573726894663079115540334003406213318063294280781036898181329255991313162172465702923615842346517997526184563884354818177032975283307625655525257211295515905693027856629494031711001739548266153938493756252009090012825164514506110443171914596712761600904829525055455646714760273463693116918307339506811081431320658665242106208864942916391708105693016101994602351480212657154242192568904667005549748711460960969707079917630500456210401924962222291590095603488724009191586823375227972069620432506702746455155910859131058986076451217375939972040586336373121068262573494238167511401101836509302723446852547376847351113207320462092016728151698366049035276064731642047368930840374140406070826923847106995704337264508384658801143868456498298482214606442703339600228287004331924754951532995839704770193969280570616675008631859797944893221698008278278666589941348141533605161002585469352012647626422231647410922861590252201035440924521469972709893159350741753790427635233729184927805891600321679415267082238617769385431727627174736556660536393776404211290397263255614133070353265793945130080782562968361329041859476588282219899370044923587300136995140797491067843570158021949583289992749402450891942483112410251133919124654983004776402204222578554821706393281921582469295027442125724728534253789858021232245987420954824342751318257458915502614772554250640929463460451331721237676249105173095914046217434970871186568032920485404334601586847019457611473566139279838619165180682508901268404930723756004801878516245640349882368072996896270266819125766959691214252081410981066053622566570396709020247118149413317709041142866976550759886420185198101882584640813034225515281679055570338138770449047282978843964578368114132491920794438881958818670570700810052817867762897508931463448512324874129960449113062122976418657260132017617593079733247032083501995927872653898592789087847801818211682395175109376430951869858516151195675092120675756206119308573008674794870834331163522740342812274777512201792260161724671520450077881818467068755624246092629954486017319776615936898454925064733669104972541107201073546513794655178364283536358336374119654004611681162249699989806934400654116776163616808261879718630005560831712216855442633908983949951438562081838357481012273518459291189595790705855559269740214887349614076999027051488756731846790288695620164148282283715557557181264503117916593600273404448006248705535719243846868885103531266785185926266848300821379259734629865099937613255065375136862904624977669786949314310991427697430920256008228359932862278918841479206596247651123504891052069266630453392096822270669835437715193837125902719920740428220886089069551920218124529509492568909220127683416733952563682797845521378592879758021697498162896556876603258212795716140228789583245680504988044259336956993063970364011420045289652085470906824368650219915667797523694434555083115437843819095875464466346041102938978203594640164746355325869881857614367760599043919361654594493563636846040466180349614910356984727170339649624451805423149560761375008559077242531804267536129839049885858951643533760799219572849856966543834407476253135142489779843429442459747294141482115636323751698709729593813179736118253812341054471177547199248533651084290792881250064603490879005508881836585319181649145493794158363961550240169333921109477944208803258154927111572082757981308790612850769086704916120586730925562966845761637535810750297041922461532352205273602564233735032870807060889651653434286788591409440163318497133979234899014701129641704112697154781519309571541815851021001816665926979221679331925319124517859910332372492965463499293568023204661463234051751128257029305925133389186019074217723449980740108337612386847886459824670808969349263723070209800959093872970622985341925934862038972895748121014133708846882921777507046933110663745742274990707313915351258645710198060440019241467936922454114336126345520349218571098560555945984936516113325166578610313165488310558918117194156294518957746527629942687555314489632174177328785709840862053403665201050703808509530918603622981406262034771452509662844473573438793041876070211827677138711146185486050238437262774090699996857161572701594631928708280107201506890324989596082857727034257930011990010268563226631110550865461892334447805867714133803951526531517013158896180789027624761201764356046490791911021961334973001692487719826167779854535809273437582930581228443414042395643878753140520429040302527541475750031514371322163216497160955443958003607428476115285745380267165475104006809831059431117214682010439793180871962085730428826961423073471567729663817227507434830837549743975844513878084321862922749374453215433994266580229365908826236745283357240643960991046998729255021372027691346279897600289770662769841842261349576519957293372820492977090222542991228145414233554459431544545624484350485507776816269701612436885406679122008872035761053702665054507323757178531337853868165452631145874736119798478997277129009021063890860524328679386089590370327097921749128602367537182844632655193516746964848474561779101465278686363631320259840152908431940073562092678486001907005027847225508785484406296863387028780534455353111621983754059483771062483904395322552945599907417811749588734534915178473782796443902915324586531338182987940631057534770507476732559551460772292304835077746379891423959756825700986604528184945821750999297759077204255912652279602791734777707921075170769226518554096056019249618913244161418279346925038263716643689077501943712427176821328871727737869799717713825174546674554950820831691754441925884221008402747248429371107303530875583007206992060333134930445256444640099674665797910432418612894666544501005181138380850079545668832297334781720564995416553988404762527591144021800323636633638325467334634207343200115677017358582910399460234354383289937147172934881940946952685033113545834660014545935410430802494741776158752580010953625054300244108917123939792797468730189397542452147471443944180016403848253305754454847246926337143666787655316385145194657774026061977873872573361856426680560262547791101505968681525728048447992224141446698756108515064064084507027611028213180795873458766935450384382280050309231472823904308394272693809783754386383225252674763906641748570269261212334526210100051835296871020968309934047344248508230945147319573649498038090589740884585171910205374644963127441383715885947773375011872734862702657417537012493238614555853693106213094372890258664859610102536119158205764322510376128373796603817608575680017053984290890643877671768194447920300368074473387839798418044163618985817728532950644617439769142961121659890978115709273723596520879122561632704703996207560498950357183605438485299501740603190225158293889095027437080994756393329931600120611392017977017978974739465006927408223482760109492391493880283813183185477875334765138113421100660053898143332926745675890338951694035722363207015491364049298794600494531755161308797260028482859724392332636197628217673935436180103907618524944379608032294547597651001070228124555278126734205592127957680434015456068325835001978554011053109517449508675471420526204270501880489105555813542775842217452196677243656793053432847060660624923935255239283685797311804781912304319078843932379824882320710760507288673477157676881866929231719904561336178360216624634245293766946460042097720698570833450856256356538789321048960398361736697494202503767400220171244702381290691487350757040856376902679163341478786409906886347654976829509079125502461245320657020943659957479778972508906372249066704189232660484970152515881352226795852728105448836111097380110713216551328791111245538445181597994989890507256758817671295615616278548124006616096461622442752745965806269853771734688950238467934760522039573449089938035086368537422416928042937255330823439191117334065757187474516700703905478923765796524596710847951302277055193041193232032080064714704430115611874870968427410440723780284972280068204472569156444812682827979713164644888779766114110872950903428898721340353909639046588007168060663114641493987738714609637326385635222236747462371470399411698312354249047056750804295909570595734129062181445482255865981619883950485374664317311355584705229533764297745118796511918261929553181406652916707844161256671901179221587811719730564979120749360446985478473995482427373051655164576855200082871875977724401039652473415015719331556701675609387808435950557333062856930682670589114244559039767627382964760992657818968021800821424024489428229113586495744308258077657945339436035896042565773396261834018026589111518368606000360951215077493489622660361243364553797631890091881906416488450324064986531800183389565855160511248907136243361866617666409203928550536402145774195395055622497378166931093204500628407047269741515519560081625602851318668232618602195861332175807593137668556099523265814604209804794057736117082677823792522734522372028466985034832499244216800028190563735295943107461113662550434852221529608203106238026004686724871113507790621264794418531916655665929382701687455654312561334037637289037801017800015527040567884170340965820122632205330009835347971124903300348237755750338627807726177992062638531892827023604368837109478079322892714227149552782203634440882855315863292647383209996102078909635370352602389646353666858113577957469678946464090934733460018145125354387945906969346930703857755480554529722605094613541826192686364381892292853345073426278500779044523820641518679475270285290422865936865977348683109887089741609205677897427369385738214188856119134442377689682982044513196439514079806567424134360282330811696452151707715085768963444897001460373017908842361321413078784613354460977641380871324727754428922422872886491719550115814703109586419113554839945374083679419716577152229987299994887613828207522875719117559940847699455268985358938673549853954847514939545420835696102888995340881289288139569664116129917154493550934695779144545900488076351057854306533815362825883421923527986260036645624357271317984294877533127883662423780781398004220315031224658197289665122296555432979231502245535333651476243345899115397234958798744836390830744779483922258101596268403901792784899694012477638010682332624706233797911215640006084028446289212016969317326220251405567401820057973254556356699868830267603824051749306528340296804443525046246929015986116852663847456590723866648728527066225089940284080716620028685561242362280764863720349074874500786442448441276334964581054048930823261159642311513811945156895267101835322853780067890561377514361667245188627704278539593395853438927871495154595076789589552592877453654355354391619064418214765841647041835487646665839575622503989213815543229995293978967139999091212393967114618217294190688458303844651636762051767082491562737766279924180587776188609970894866254750715172421079230130408773871507081565628848465775194789014865453101378787801026682519260133017123964369068249107446391640978273262769096456144903888928010904275987040467807160291550949197717401810662723434199455554918644176900439200384457098233186832579542711641121584766542839830219634090789742947959686063348152946150612910055509628710578918635199033189993699638546799203167544619834206807475888667226835635292989356015739340252435302499318825636877422795498026656103216460902514534626570279990061299147214117392607267173606592045924834422797149209475654793924790085946084181505626732335966785671010933124742806143447016848718118682479609321684832448033482029948447079824889564356326711101108341747315423939605848269124877229493536294856220357502335733758734548696800432349777380820819546050039496719020501880060575872964213205202648222386909476360613463034180094653415648004516612771816017862053106365155537228399161957534806980266046374789537571263757718207369150300530119424856644279303046411289984329483950612086169613790528485451946516970330945817451680597192609382609034777434412674338481487257680381691362717206681204490924631810122941585548843073811490551692613958381131414117061889569935889947778906476596631245809868811873723933145186112131453827616158938463687392558811620857713047111180316865518243559012911281698597514795743293660078428101268177230653437943711504735906503047802866281673803956575411375736226473424270413078113014959673794204209551134727213957773936217408150858893150507930810218481616558873934345884018022567799723316969665961943148714841986631769383197432828339803825666641844450304147103186303366006114151456227794776597965409257285323017243798870924213693696123769268116015291472887771987652338197241007208447172141971650996714170577120550924702901083076897125474007253393697230613571357590185950719863926645891757617428915926121960358462065520723061581855579291128337623114278423781278472295761903371536623398664184892472088966128056110211510264272190193899711203798579766742915209827028108782677676987414271425192989889886291320020315163904398361610980500874657914561807104649588645809635448454662677214762033604877797511624964329515710815492756735905946887844332294540674971924023743599836943784976536009238961304954665892158836241610592589337317201190669703189463336510181178412196688907625204277402455981143707573033095723297261977747093582434807358368465177826684483856261345885857415345850746506391054136037158064166789800231687636511949656881615432981301208407739149449318307432470752711853591181903928802392429325869478167020216040663932222983041186653260330250944918048556936495224345378636590544741816515280811355779500427570896789572478365854742987607453724886452260684685062299132553541246375037467567282934068371775836180485649554963766887339592649246744046716387054275005367554181875743863052904206545142554671110362954574017750791537576899261384850112320671789289033947444382378184040144712261947659153009138299939225599575385971736079616827602964147344632355961370287505313465761777202626577574091588729154756463288989629963174146675412665066411613709921324500020381602920473261897309192852441258349853476017652305534682882941925476848885460650012322566458828224260886363458265909688866696530600976079864144091871949537309556507124609972711724989982147300480204249705443677075750548175006359118341326840348947267947225667571232607814593418765841028887180678344961199590793431701734133099081795687056882502312475143080943590643278677827948357214156146114576258588542880912501770606043627006698011704280393404246997506567050208419976087047809753251559892969440534537808884250236028010216951791485924391760589975096215607786639598377689451933386233127676511896134991033783693674006946030310646986125292074182101908823614920818534528040178713616968762815941553800429328065713409946776517270314659327997994963990850236628245403704881890763419453101669071792958608337229559866423924283651796349327085296641408067733352033763560885893124434682407684951241208960200277615129799645084560453317231967394033832218887061453426094424628871356876959819554197074058739755516787264532754946979036416399144060765836921506480756885683780718937482989383423873270851491585928173701908426823680365354812607827431895110188040839936603201586506046011372774734308062854403225198208492274338031304979650712092631409754413574669458128990931377081693092729552249682180414396058320804950149132180735793907579054986365023715734363082592324763586907655207744359530909138624718176535747713344757980862205656392874551144217091383009322884368177980382973187594537332785733595429364703021422530627344044071340119590176092889122688196394231664451448901594558175050011387197914300016229925863037119096178563807022371563355171842188615228394629485164953807568795614762777673370547908826074912802072699049367960997101789758641066553370068901281003475091859968704855647422404578977914601376331302449646375412833816439326428622941955315510042143495672457000258597110530642927612218761850644375116906209446891536965380210535822083912056425136623662797563860692454223105179534987310415694701819070336655131762898830929628252782490770952293320405037014040247907118536635341921573368540555276055635012160049001370780556244615642632125674078878823004693308014798635880034643397613004496077805759400079393518437454620179314121417056242323470032719660536669984441563738760617824614603965724759167292730376661908030280256558631158791273691352128858472494699801959655826857824093445393752974759555556695564897793037753987347101179177956412412716330784156160743634682285297423597737227769187882812499865267534821527260947710106596654477344158093858740586660780723159693606021397576201770166078878427370416249995903569986990056429438786837592677098085181292506379069989664407043119759390705022917774111270222948507818332520148343694382865062227403786638276818286048591507652019384184813127858619324111976166837136316770539901484703013828647729370992088321508371289803798707687865584596794895313596053926837533690852624723946517517856999070800190049982894814370373642016023886374326006452496022125299396455914799936366258026901485502603415430555045407998952868396029178485523125899011626653510293807520892836812599252742956349093756144473222936878136207403192843952037517220576252055272173056467681145938753768369871111603848783670888291356174338501201667835427963015748434129134371156450176985713668931631585350738451467464188820274820871193664628758021097808048069985210154661303670578125521515965456128810298464711835317371997260375583665176193432829638590649578950403146343206354038927186023619510557129802534708875740344806150765145080608245415958974212314584213803040340663437261877470388318249942174736509506468636450980819480572664597873597734446677285599765520389143217339502419196779270154745720436463798704183308581485491216209904331767423636520266126996037657338648947732420776790798880866451780953036376841507452868291145553800620564182017994435220707060483254943350684785965614481412344074678413197012355830635020563184140408918559053612170406993072130215730601478573851099041132170954031679439790969793291819813285364782458091664519503105898698085682688405133914572483505075070029681444409319452974527724382098465099576203868017447494132664865561837461031921424626096742773691598553718348384232650135452426556985746731198553872150055774475627059323497019882848218738795193528692090791630927431954018613765759956759756532715982922933050381723969551129455272504027929882926110254508792038713067438628637703930908310845068574810101815927186146761013833026077561642558307879978200208649514282470882818449688106270357501109641870874366469929039568936655796086329025932068300363358833933596925364183306338514771119299965924417221434230742178580021612729562236137602702862456783624386360886206855381225637086885552141911093792030411555242230709477428971148662928345289922788299851996311779150104591646450630487683713148744238219392648627356352839636769719207548845200400131331137843418090082921920089679671903545542059964693991644135199973781662022020106586658976008434053433294315508674397971062391625054038299902154396094301821417461939921213473732561436634505828847676820433948200304476878346550947441577423338907181737170225083117914980587043648559812886211007718726013347236089470501077889227987403994293531293293496351310169140858464729491576591685998890304023914586255944240685914917178756190228637177621296932594543549864677525182351024110129257058627185270610110904069028721580908880503508938789342250051737301410235738708987612839983161721742289676455060565473891075798025092027357714479551687267501174962498477898592311129100370521646696266361057801441738608647370720620881627463907054448850008169646458827792649759765038294976360151226804036089115974117423091277538929302404931775690298967709980806379819282487830170662952241773533942247510310463021580896814618262278585620272568774767177736428096035280504006812234746432212984235832481679766717979566288088398235951748008590946989984740264383458009986154281349409464121479249601134685928646974359660297040267238609069356453750657898200200379232668762574494221854747127992081519570136996073185010037198475682295776374497967712323226785084693032297067487401497121349240088570006516856353166199345473717459816319219966780064834133761004791729143769584262435746319935040038483238170361361493724248937278622429700327806218236541730268229418548932238556544881328009870791411837121935773762390318397742928052341870765033393735880432973379382788597513044610267887115821549754880105471354836228998370886983367819857346839797013245415501936680866216729675704362532581431013020092082958724128373277010366934134032500346557412285271317477183558006651258154361605486027322038704027271327227488942066256712418034825141585581405060336993802765926357595958701123475557015064840962321095207029386712103931382149205924299535490999805899256269515150200759591288541609912120880165473957540038768033319455716412430215322109402279692770863371800312972812246195486395938868140975276807239534155534027722263991401069647626720009448165846095346135118757059653961717820574141578081289274439091397638174853192643900242500965263067943467352381432580352716649059515057856944232880179392507542183216720831873674591548426710999249111493038474652131514312597085888368102567505962639676909379800217198191290542543001676248196452486846339965332461710932317653819251247091295587290040699303326164652038385895940147018663302824084932292394216368333836774410252923439191735225435398004172792243656070595466318589226096326317848422418521071078112053931847918114304188966311713838676123927892096197436385151607488118341167125749161387952780419373761759201164103186874703675033811478807046113945920266930820345274111445899318503722329908168485410646563517729835990581657648973315907611526129792453879021703176445810929425573586486760729535977862919969314737862564800376546073871328377156235750065280889470011874847035347579517217108057077770473136681483083381006344576542596335551393825393434213816004275798618629695109917443324453569007426401347108366184564542145479335269975039182919500399530245943568508179683802751599888001412443893310521682933717793540821347891248537877095694724823044093059514837663300670406702070927759206045200288452743453685178674260095128578697552090196092101674696880330389360190106684585004300887112241697905379302472676392154649715372743334660017102929043495133837502261207599673265605708739846963212894622374537684391945924496762848496926205400243216475387234652441080498647423712935474779141231586588330004463068927010496538471576380558313947938678442876890951798345517563901414317617051604870964252926098115564103964319854434934186092419334393602404547120289533263500474289675015390864090596184148930859011169022835803938215047728724183938419794226281743047581155762756651604584384964085004291003586508974363143638951723991614472894731645498473128391599238194490333204878161499863312844976077229285590177749071174174807356229941347875284854478402434899130651451946246980642269845902812210912293490011686539594566583952586770619045857947235943476780844751064334890920204113390906261254671880509288467879808488307205569429235039133341765472943936476109741746210113411102348597040238512410821563655997821767227358304101489636371942845618422928232844400933627611883014685598156900408477864802685518632125145762310086394519674809615248434694328412181517484971654770427428173858179615118422335679721596147965304989628587488366610212823105713463042845578117282944926591009364988520708273743574090328549231354014710569870778251168620763459691558640507775473064620148950666513072041642265096047799418548003851445744445544826136366069641428346692837527987210791051555879612376483745887654675070215623629243344117129026700908936095547330778267746892053660773854082386764662340006798661277060103883235360944053817440420041558766157789925323836089500749176111306496631061371189134234723096021140946777720858075678766870970936814455028612288106034580542894471287266715788832152427020793052852138469828148379036642388188237487413920281185960125934214297973580926714093685756684732196612790573475998928663718791626304333654041938210433164695046435235779349592945520346804496532831029403152932531833012619161175413525159115474103600518698456067398220692499885224240787226002871120646938663194411433358934809566174762149813453466603651179978256479538397949314799749475569286732293161955052675171826427750878753531182072421343723460138795812521891560192912128310700013000201827328081115623430532167797991740033942279837261514610264701527595385995591756739333735962312568705747732962705030020719540300077964024207202212412196956916094973651478083047682141648784984916927057679981650262089114215083301710763378799415388783476944879361955662801459862759054275454968467742076096064792833174754341881425212173193430346968978280369898624181144391680218602375211938291600897819345838299851526598393387411671559552830783527351969338203018054164168162834535174111636952241250014561701980526023728259973403485910077292142355878554519097504446534277707796380135210800416853824888956673847844539040683169053899289909990915889066257633006808947648789118785398387434199633462978801412624468748521180251019608013883585482088873293847503400147520724820760868625207614455632469153669954627002696213128470075607498607264750242064049658481997892354192708576766694971547510538319955308031996700892741484467034672264097178779779607166917859435085315069026979842802012198500988298558885150286842458364893170670504714767638508745334277459125589855596286993024722580702649901287906983402444857543218610224852368968193440822545082342268944542088801196233747213454020349075910181370888845501321531019682157130084545717870568453212907237708026088311812392030791085257475914341135453011380336366240321244551527138887004816659693999385722151757486837598031734739143809328039964088224384068455457127981833273205393931783905113691939151973102188625278224313121621342888444279816468912521547234282933731979049176086278247669832463594104913909004275151619238263760057874992780198149789207796322491569114483383661599448188842260237309762050665720797633364843042440872709720606919300722939279854883754738100706237329594231515378146918260384827686675157804005399889127513344912773356250199620479828713805015448170184693135833723081259167485477958023765576360374704112355298954537327812998225912545797315484633113563642593547051866563924875451702575485001348643200153444975228430938862527196185190035371892665442141403583705870142320560404960480072718979069397401050839630238122957281260724989012322488793291666315410615105860720098874011439806534601149948581262710094057159257467305685364867236092260131152676908313612316173107352376927771437837525305165360672843505296742897909057208890198073123391465548951619918043631381760583293816547183750489487309946214675512935345665323409593614944810056343491366410843681057128405684178325068619397262211191880393096333286428588943138190038319568081268004003954019232741672234315919418242556681725165030853871178374257490045228002848750028345784921426742440899658098600444087371153734510942429281841852811259288637140874224583853531735808278625755427645202690752646039750655590577777053071749566672034583678425806257841037560462834457885351535787706409199720042914158729118537388584608906175375965752553924437289604172661671189743598513139557183183968068997574225502485037367191261285091505715635133052732244588190296918787192509859016527887219478213127531178288076794632321725757136087847151292622507921842333542980986280350709361471712836885419662867874872060446422964760697115417487130502030932309370047638388622946362488411656448751559734055487044717024979375812514643633737857764056703387158094274768206335826883856200282353648432355382496933722676386294218447006143359467978627051920131439277434756907780383401405216052955999519556257010635576227397182346079930426931940286665752094063143964565580980072717373943818079614744837421073764999635411423560651082206114142353646145677978062762966721912985092554979143826246394325539553115914414858695294407539272918322387595906084519558986506840938163015756319204512193700674167510214064470173694406760647534900601348439110522348320485252816531723730712853245320853403235479600730669262035744324312839468869677703010947226655047337629484086994824939892234230451673711682883804907281624079893405738043159713965756070722691421718223356424010006389392880200603777058405816273942104320688317264551916445867529050535324690728270441890668705958700917589032308357954569399480013611823867016369280894846034717240679685006471390905038482305119741045188304512604455294395736854311446141329248002712111300618536912188836029774194184920881372610185771843013764811652390708801269039123299633628794430708426740732569020326776184257112549140501320767557802974775763407169036306353599534056231706527619299345110790960563812156765480696906768084730630781714826741047044092117450357484365840653577433796405823760120269152540093711185901261376992263396390150779725350982111659075042509483609510517806624114470878259064674011464353264254573546473552908312276666305977247815143635094149778061225102480947060576585438611915565848442971147739368840729230232553954163205278799573972242906534332560198457870042561347816044660799457465291614074552102172497523817456484053182670192755939971090906657350454846623978919724212699319368092588199877224911690034295656026337591095251726195885433922455183655337727460625259515220980866833968320854480007613728493862817488942438488827764719555904299569157213140095686560970608549249764516022225469379551079106207139470665717067262574230713772415948387115606072658393028465742757669565767814861467547387328272586649563919947010827006198746994969844409667478842179512193455295650385903819660535996315012075224666298462276692874399314880879582887689271803342610748846780247668230216558820243683449636116755353925806311667672976560280856593942247158512178930552736102413239672624299391250630501709846710765361022217637147338179381196700635162337051829958792892245092023903551109111428634659823252245525307676126654585177883656996851957498748166419155399074180767609946086182365760655283257243017389957227367796990989476613810478151598482904625974161961490407795842982076905287991674930368429488434359819101979038506037922540068936426701453129055998215761814652455665100507986098826533788998237970279837853481569487051303075766825494704108474792488422225713433444733393899606635837335178117585531634940838577490907685679271015648317981513599153609202327523929073299258557664661994408004205829045130938506076273807259773483896433253740601211952133078054509987428563479280565389492076943974381099525125251457838003963229293888543182316240902586706199272631212739532919814012648998831258515262997764800059223443666788564616526372668659923680053107121885375679703295406204867418672904488118754496266555479295986402887013257032691339479624790086319468462458397040718866213432488319229140449827738081697903942024974815635822871444807985325756679544730557201016002936539055301178805406419196782428561072252479870016236298122213906682126455160249403071688504920619493449591079122506865305936863376931498800998439055047335527995719564913022636693595901880751167802577836500178244892508413003984273702404924211148661067105715878828140841739043054076133647662697925344584101398495796040254885021080645489639901909109034628707377111255613898185452948564821423007275222180702035462193419983844234143252626679058144417464927219197606650937578726651313265746391915834889063052266594486614890702226218961684174706332588808308540515725539371784056038890379939819752107478136487280672618905849591292013468685287522312040366231516041557192937962981749261599429210582293735638428114394717215980472672652751568358103998610356593421395193519665891919387134143343151039523271148859656808598039881289528930735579915929642526395683266023732425851443175725999088845789497767065021039036307263134738571837929683991118197858144647039450607793014454866471640999817332776220167782756699430968142343096366858858625920720925150100389908460231658737725501892224100568962399626322129023140921956663879576316896075930386718686969834062958325385888334976032538986780088792895970013186047831040552299695416060541363269495496071450842023682934896307454171316015635841016616430155860549998739588150618548892845933672837573370925510295219788201448470069644698537945903239163294388232397622456709946183768493575381815867613832494092579183642530993183131843067348669044073421119208207815528622587041915156997587222527120170807343693384244310535770951967760824501509446377450169117121436945813690162190599024865106566935143126270046741251598568738465131823472795997339319788646549050706210673778266669238793891161783286873937956797584622199106262399195694541778841556238822137040419918737757792388164334949870859733019132776677831600196517864342368282602098757567832106048603175391688371178525703289190808347824000285115250758306420135041397010584066636331477823706030000992724083212883667600621978105876060433448844482972876848812339835890725790420727732927355269302371051003102568046027584459707580407189547557000502068674651718770264846235055547337593278734488020064710803683257150753905879300372249159578501565738357550368668012848969257237463136572301726035302381950027740267174722705803210218929184066025987724918776985743166365801815473016520700817860705012724472672127059622042222337910989153989600606164855901589501257883226840453055819880172353365684152842941058424306527687248827115633130292799701188222409623079160709612841923056488497103628312562749622827629663643346563327139726553569764894336813459036486026328696106817481410620829938881300530433401293531991875209815081282350203853706476405666954859002497928956235061299301700730278658402854146856360381880079399986731771377839706950558073304064666583548408076247001035802914109189698286691929838767169313680126904349641505868945826404175273496044465916304710498861404144658450615846125254282510334018267606645033958528917241967365571246005035881131748515700409960427303936006795960094042054841961117843761006617382424918533261353596365377560324676160785912135368016228165008971286659352691207887273792486861334689745716370925490233351049000248461053699404389015114945044350455483945705368350668140814831831810741053506504481557128687044389206080197437723065821692419312287831301207585799796217223865099269913536283858064294772423165987128689228447921305278673142223003774221464013422791989686870877393501576569639370768090657000446261291059067032552492796447333156679878792206649785210108993904892750053488305126852488267488228447904279878375099871775487135911877331360069594297942395965831584386669067719501505849937080202764648680546429243516969558401274522553018831010322756462359412237393449290154526715870038095567089372308966915789819484186443529681569111583618170881030207100811944283055387000792286930074019023763083437773115082252039113821099991160383556338363712257123653841623259357262854833092598815192217659502766839632228451659611185591789059565870307482198652359264753067463777246009406446964416432397552353308685022312383235321767636877453366374705035425930408579476396959836304459712429652552292607059394730149604134582293337562653058720371141039008624876651279938399705290977399316237817760012584158197942457806595057763521877514557937532500938448663198609202438557154110523741166065549212198891857597850416261764887712838916891852299465112879715489433425942760041833670995525661164127648277098916144736962362562391959265829681571860738544742233518013155249263134251149649671617467275127129089108138034031611622875641358810123454576062858330060294897724936842851072001484913374956307611413078085352384857714452377823875908943222538552664908805081266757972867897425176949588919423744506583947710341673474787650830028329716723785334044546309009443225305695644952117454736277257673911939487414644276053660848328237474004267868464947511626647164668907148724820649248728798506052689272637688038587230007362716183150305068777084132526846674120883552333368717089884081932024373329017531963677994325695122059517324528171991263611876078046603352204471645787255671886733272427858470813005204322807247798501093817831481520079299461601992545360624915173507031506227392896446396283577600061317570175150550224989595151696186842187664258437259474234903037690334177402628190842651154897551316075042334588796644271590771839514052820909982530332668905222954906027621200445047917862982250965751665770929258202212961381511017283974333183082340072535567137172319664690814238614931565133928547835133926821547801185075638228165820298211920825749302665963538223096296120296275771717121905373034634204192959947473261352294528141961158601221086115409525501019990644092106744879627440259747105566090430026196875150654525577891516853693818850471837900113620160156067333552542187644914864383642627595164295741474922519242340906135207073373752231239458904332390283841050160581077893424738568611740795317747830497059133712016537986849484183066493493486832307501922082749919031029650956324265652701687696441873918773505874332764169532529648797763606286183619286933287227037747602988694006054929166923059948082119230020608199746716444692041676070128262753778703282285191053293414642877097636037481520683370448196353204593457419430223521975900427033837107744111539522966548122750619236868035633975092831678259158353940432500798146532912214062125363106051622565392462750368507008004158984537634514289822220684448231535969000355015905062773324513803143174651067583712072223384644046480271454064119915815458038367316745835716938774979868530191918130384851252286078858377258621567140984386729223854268287516462939694611655955383988848285231576793611361711265020775765235989607035218571676758912103069947029586506657907996388031098404123102264073007736996865616582285748390816953814278388699486579779071115338111008216618051309886745509055799295779751417775324930785016248313147089464137620889858256464364718618346264494718163141333300358342600093089958876207779242042478835698804274638921849487021643580863679624597956124117854700735939174439312826518981163340087488345373420200446034569248790153450545449691239785077118065145913608267034244528921688467591889672829061714004543660178434627942738910067693493231859278737336190791538739634077320239794052663893497644640063167039641234951871109328124971952111543473272093168888826156480979035525394847913581440024901676609940268660564188056133137496472472184996121863112582772352823837304652321453149506471156379861732080668682369140328494088550635665912468681141183023176524405677362883203336560779873121400665671459630374806514728015243022617988386286399243042673040554489847451432684068244904618707696165927210420520875401899341031505331934088366733051622063157422176670353168470614491728105436215507125011947105676507325959775958021647000498348276473979320450240197314202479818975812750712833014811589689604323439755514018536642332704187393392146782978669203852315800892179761759120173388466989925841846127425156190880843510568776198923999468647192034375821486456069532341862907539188962324378282804187489953219712264344220214590854373482128671783489622906083921096220044197255107660128919474985310575525225995601693181321505017296047366415445804000926628569019754597280861147819301560538047343842698902927966584121767260390670988556345607112880984239901236609713383530519187657836917960243603317678718934169097969306368210972331546346189353549137543884517305055964962871165201868539988074351217471502751065630258834964065782255707643957291854299845605731915242692236654801232683808594607899886290326132082885613879897366458612131999393496595126385672482828392375675796394519177667567641493519193739052892621282273992077612443895347926458337402843507888211624406338995473482839135314560149977522220870128412560474077670240276570941932047990323072669060906804045275262343081461489629253900512611328842226309299107493207147494708343558543666234035585141049418367120205977634294281051456283665401705363966265174223477565773988154393403424362696543450261793091356659028540971511775324358399987594309722077314223647401419240035043724452137111645022836119413637501663327544329864865183256201165765847086871534397695329795137828170243280278574034940285236871437064828178251483970963104528981514099075738530727456768041976729453825529170166236036779103257232283069249157417659030319846996734050929297425831850455968708829629116045704606295394127800802240477396892674268330966630587100705923026991807979609021146741664570172255919567030816111473783554949996487546216440613521376808004180489790379593108885798507302921308219110258281510010344356630063570916997081397445069072808591299555931124399026360335343357511824806304250674052047437013168451826587360626315966610263387774631365706336948018403951332134740167214175009798208104911622185178639350593812413150873427928480580539116768361720510182241933689501157598663442251847743140990779334081178581781077830677611965326236282954523343936328236427729364324149754147231902866039532268731751126513261013122129949588231786514722203533670945764988698904428173549019528613142155491051632516758657193081225232982401828347297817882002961956778308691932344929600068074464562746810022258385797381905966235228405651177784500979336359314210761237205689550633193126576880217256789042722675826996509146505183269190074344180962567054737929839867374695268625046687124880641967111071808567341939455311487858420789894001097375214863802779642527966749395485038458536411499323873101256904603437069419651074603081669671488688137820922051016085290354760574453795432127839241031388249806556029080092806958912785503113602389341976203521590474809036087568795536084085815127888700531527532948851476211595763331538141663756513631109207455102056803524404222611472864585691116030530211902015880806219834900345829237536642884826851399019283503384753451788151865146648440526106934621400511858153166427707576597183088081743775935235225344284669760310208341455694543912586288826584180584154563607786140017767743065129432735113878459259167210408734315551166524921982967482977206933302813601024606319584110884802277209465883863734592383191365917498546065109496816143880701385050525732273722799109956531719647939159674901220435707308102166959712719803155054581756279811097031992215877431048892877805143871420377116117981453756323087634276666391257813724782562141803791304671454953567158019408866958717746177374459220243579178845459657515174180072372233164482730890963860887037876909426687993814148133043212485988435679122030523885641892458465189245458369386098495126719389714128716322076474187287637160869214169944022242002308535167097879218334640978757757586054288440010748309023738305743484062604058813581199982537785562568802245043563632834099411297585775353209524505713854863182943644051912945050924063857905665967747059574661979705745902572804579148191175134706557486800928105511938211335803007028007551963341951533191398256029396830478864286151045608928074729313423433720657185578390372126028829118408903832569222930729129438049239821337906750034027874756707990451060895292089098917126651299139238833323434847752777962449926676393796957929366247892748910707364939693985292138871291887074978147073276043199668362408032462506691772076658563136051664752157920043755676112078716161245619184646699760292126915719273988797746112469681191653660142640975464098571509121587483310045032043243857823403618131310059935046263940874671726799647002747803843187896028449844767185730921530284126410300876928708539010703276866140946486985054165826561928569219121826655603877997373350242310783444008850414994876562039242880551395914576387501778320357643219069362248750065322918636863412993046474466550829593959978468532442053900572221985076291970635610715873855817306934236393376116329664309866422686384755541709283150038229544805283884720584799421239013632654654014074044109467876590863684013397557882235366027862139320254110056855099227832781594604907442024108433055230610940122886325349355465542518323188379929508567728489848918214130442637014944527750048900135959375292829381055062533678906571737808806038711769722116213572945237314807297011450137370923156914655342513523498624794223620195666448122515887272588250727048755304817237585220361221887170153833613132391723020780586669260221987919716086647881441638679215897230277850852580037841196170816138314425351743781467628030733144999334017005966231521922532465591363110908129015394138707702918469460516228877485132083591102240585050749435921178307771685286908619626156848806579712248210634404380001425141460623815823787379208394830105977492118160083405054999180415799126604488209332877190673892097482539975622559957757729154078628045527811249028233751820967659599957045906597946235590433210041574855970974105288091444231904020196104718487774711141991031486434348741928823124062838242171018758141369039568154330962417122318955872954671618694783716649244730594762563730966728149287498130108233324951687638227895369702722708325321444736761295439025577274353738499963348315358816290141427340201075360723998234769948021482897932285457059442343642619236372238607722502751924472405521062727578445622197780723314314036892543526680153538129116618190970684651270078828867019065145551567567812327022332287359572217249489584473617680533218763655065263181332066909253038737914839887950501184794544299719161479175985439290210601848159185120022073502328220533527913372427360366349753355072566547722452347045638842779542191373728525231793394364733933945630673937471542488709996790986106869583260696303013601527584949365945341563354241948670161332355043178525840398098911602279329828012690810947013858192576592432743290627498767004046481790327469266346123287596369885696895529805179533171907980150163044824103644189480442635608841094099858952716794831316771896820480215608348753229845936364750947663974275076021427659351367744677493572502012099190466835457747677482300027734485897425306309427517280709816274620607369533651747627023229016227515271511393157624536625909353926789446110891343922040835236459662538199835954436941511279243974253628075459082191731779181145658327575953439801410760465058449790238739768453334663410350879742715162212204426993878313854599243249271012760586870592700955385798908628940887308621075306767373852255790708570701898567496927300458806556661549542070259997092291958953567024594832786345207119164206252685452693443986245867029314711360630616449136478056730048253832091924672360787048299242837393306644907914079795027571337304614795801798427216119631969929395959220065868634766152729479211764904364813871449262357978042772982044551091764376349655661915644736111446788911548496785669688601559158120271396643884926366258404782997448534610154759063394118318056472395366130370677795869424451793309585227930978739387025782912517918637950594774818916649194953058432136030086515464432966414609045847843484311148524141924358972080777911035852415427069590712261646689133211680322394574529061604395978964899867878941733532830208410092699530964516429534127372444925482915597760463959995044001248633912524235225622781941044433483931925376537877895170257319082151958641722383917784269995254571222500363256258477927063703220086704048335373080919810865343588140273035923450174732157175763446142940416937337362071278444073117351782812207220065610855145772922090075749815307475554620084534379517631898681667411081128240094141377355153309669339177491150894618238890161453269561382722606217372433018483974172165556833282019932903084683393962444586007786617221734061540830376883382213280898104412711285099471292511371987976519063300311132957354052514096232708637998909286409624663675281749618174182359435417020303883983929904217515169767087190858739187902916214098569805662931650509768615035178814285261873932891349434077483134543524547130856015265062791284513360802614989799379882144837856501855159146063174611896667166884756813682217832184472362696174105067037369818457710158015881361709699822049030124787196880551026895769187784073447899751627250057430882397499214022264516682130103928753573572867356704865650688632361521790471526924884342444913168034409203556462774675078343307055700352782911407424868554700938287007195620726756136214065454640651333198780816872760980837928530901334795826885837669843439417246365401856966458151525731264151601420914386081001538859540077323124385123365962518176959955566284770546353241849333709443114448996059091727150079797037100995032279579615201948236733410388985083266643065466255656831552611509320870835203048559380138087048170761372428014180993679387516327258058425061465160575748429727078430195233963846713346698680532284920123113984219286159343888211444353318272732511560286289485263512289420369954340753122203270111809736649443712666107020732850942078966489485010842381531853768938948000046786063090331104257518822465011836192159515771746990017369351517939967051589856779543756856003716441589753594556474404198039020936550439641520528092181986055539107338696358320047113319928675580783655571793153040934783794085041742740958137402729346974253838925616064593300779550792263886521742167906677275690253594644127207875751167800179197509269483857249698703418658552897767527914371921161373583131322249852929062583913445928610844786575373564470813015678802767442635342514389733138623419175557066421317796914543963391869006345776798759828690376006528967029836862441106490836027120938220352496707435917507692073868001499677240366700327471251421513277598574850054265351663259877890607393121189836036644378849380994116474787909740881006939668317898768738019969598368748008981911051301309814049255775720429919501622776793308701419513024221933487679733976702808056517882834166492250498833555872890245889709148659898798538287507436085435810632096281768522938534950618344952030549768798429600348262224915434088803812920361992641738895285484997772639798448617986325873027269491936203845659514189086046840101803490034722367470161618234346590000238175648122808799856463232791346853936860472533989981497098755509980521758613725175187929469020420436468241659333136545975036321506593949543433122332602369963262391921267219835401118292720352060103369743047116375465590116360500566876538641518938994264137428230907217679482736074612955808214068046280773738423297805087347329564227564211928701762543449949959231984221790862758845534924534691367256069784457462493859762159099128039628354444730729844554922959740708243037952921409830415975271436146934179495991142327070223062197973058302275148934012306957649006708259026597602285232996759038029964070945381043771085803229605488825207999612235745802218616194964856311967244323302315384874065410894583236366481278178080835469840019314006355182896886254677823745172047896928546382042161115548025551730317585500759737103994003412220708174029652390031609187734629794121819346993974888014801457867218320235650290011167539116965061932478437102687254407304275908978612127398216577967807094273310589061191331769731511410404067576631136281029749018322866982568227242455068654025135400363991521354273419564974498276755725918604504927971605490393724275076653871442345767958883896985802979303140144521467745792008838006824410846274180859223941502403418415398532797541937223618461870784631757601598547727667679425635188332244783163422454676580843701638977471009343579667515409035847425321620626921399721761419039551034245338776982689687028630769483426916239084386463459981546285751383437012922967304415938440931627618316101400382682083833642915733095286069367553647705114800327153838985052685495016149729093524180143536372509789734564241738743333139106056232667049325761096295954957879637305626096594494313697645383620028796353926951409775468810319571259954649985869961307536353415861941989092195214182847662961736132410237074686331903973309446630119428508600062993025895602931958299989252878867235697772149850129593947842543545610337896015145973008553886675383644972017437479086252828103996286503452205103580804044694181687266196304669433880058196281144002661812892831489424481778129143601400876908011677359085515732633410468943520884986545737152265081979855651584943607322513958190661721180692725453927063334709303837642801338270682126968230678530634878155073615027676083035492613177493299119833512247858347654297394232727213635921585175935145655753863603017064405672258812193958545362852793999313501935157438750470590644139664468531883655869229518199455438051403572014410731302704728667217220536290119962482711527282103326753329948305427153393521393746916125941819459657441685274401218821125050572307544647112567007375855066184465425956563687624187469167373965896943372880986652355053427852187341452427288025023727192236871059722956378183986214460993955515848654376977296565520396604262091042652990404801016375842897606342837179665219399746265335899862029899328694699369676957086497080733975161856786718510698941106949852194852801930432033518040302938702908030480864677234831932710329612053394662531187358147776809189561217869470279195421020590334359797416113179390770836157236254137280985475376806410737179772701431978180788152313668965251504266905299950129254872008292478568566580083296350044683140944131278727961526809143394781148143861806569037894141106682905920119445476419501001657814292035112586981930946041837160922756323362515329651392249372234889874712000220087219198640714460333828746542556727356351788825852950642996114403765968874875138696219451806242067263078025289807075596368286936065940109001720579509750891015106972807711487371290624936268581694680126842708621656907896582405520700078203847281364247766172208701650603730006859286573744827507724735291910466432523850729139533717554482249846270137942351715930514985105925922278894552330508651159061105275113974737029398198469231921586435395080146694709890787152946709106404652374284215099301465370835094881824268405234148893454587787428110311045499211031814434385078375278819320793416414695698157922293159671285386444963325967769428607328900350329830969796592640789614377806397086590431828868037769612062733909076350423323916405228730502356397516905482645276789811850599277805585179934971570497361658684392020938080986344511723256753641231124185075192210479518329610433781351771808010765255666791513228878824260979592032368615834761412051110834605581037484054492552826483276172880860757581804445798780587897081037830483835027966612295651505493052983767940815547076485848176833311342243549857187428598577118075166686812105923110640453318530928155775908920335501874333843617049260659336334293069177695317309319351607964271803094074508341172974576711071428341438972048400997372542770803324638183904965493876496492370857865449372414419225727358807444157118424169114286868983662864060864591350209878514514348468436366254442097561643395690896289069583596600778448650049464798155513006712185949200062590136687140213926765680850958937632126993861448716758168331662770620669464426378431152581484176273585621437666362604377258560723881553030695696109858057556853334515326013692235700825965870059226187954327619837155234254163061933993717354936582669181554633060336436488064605344994956459805700929514756479635474816901081448137081218588170896899065368655219479782654188722000519287924865949816146013793103679573477818865209326029044368628424962853950412101248018482045961019434273564488997995077073538756470663395379819616196265811756215221132030731661425547646077122274432749400195736331945210764537910149761266814961511513288899385105690394476238298389857991234225223780086908705657854716518652519631589304602444794179777575619357726411930344120492932055913838304617425293574132062884334365283577058655272331291894138904758315359090668835578815304438793179544850050808710552765074605551857547311817984118328756894037225509359828394682329157259786285622684270110159715358792438959671298834256119166002483282455736522094348852143134731283712452105190616403974252665579236137174192217978508464710165308040086452628959333430599628442856049282699880823418530818723230387550441072757213688334225259009158263396765807586374600532908286300544800844356703576141833895739239812569338251168907213665413644158078475984049004892093536610632540747685274325546339881045886309745852743429546534211089039884105506209772896495034689660918030237668929681610583892564049045904841519496245402851892313288403204114531342287719152328558115078848893604394521166661037826945844804306094281931161286837105232370454422840169374654563559245676381842295910118124602801460956807151781712344497968474818750278127364368735899476771794065002432694501093929859311165767777468903310140181961586639152587280457432085293928186035827343873361709680545067102701505758980902208023249179783043988805595777458294391041498033845024790945180227981860361088410576046643269073096324466471951352767208857710836594771424834575208342931466103800733012705745678277446364287994721650760785427088714634919370177746937184535955443806360081034855937688902314353338958927229052050491913111542212133994492254729822596610957761926937090188723274222726261581166152186455498391648412874198466228806082924471977498703981847073971719637423013027670939246880694212684834225186951219352464202806452862588057704821330277183859118617611413834235131943444213096834389351189200506073727515541171542463680967370480846254959141445482160477127162924805429835959196849510457302701526371666094296986092341156737563300103998745793223550912224988483994637794594303992788596312568018693190171299604242139606659769386052115503780839583634124510211468459588344827243413266318403813895020455434375387005373626430517583658387698946430337125820802305872510521956271883586711744124157471165235984314705092326430875668954930166007329965204811907790630796642360867757053935842178007718083611374717944470219524067469707324212532090462322498785750046390832078600811035584895896791025541290178729229123740168599854515893766672280574405731033490018248966202758843783182726004975533257447157525772964407685229796180418393136277428166980841407252556381663940835927558725477132122890396356182346219717582788607718261262388613131491846238803949075545188468369782656107223714474652492895951644970033407821960272126363434257515747342174982312456050118790495756163973382873205330441899829219528872603339999952663519011604538419435150387376412125820384019562735820739105849204116926860927552604381759311722873055104192749922368615101029153241091743574430772447597491156264218558626321051365685610668298211853086943956718756684278162648283571002759940786825471989656887616397547558996027026074237972922592856804105641989987508028813212081880300587868983325850552484068899325417058603045305303739491873775814546340465999414659653342937900789477275049050358527861155138503951243571858250886679025725351572400502666175718204902946405321242921069480714807727374275057451219427785419395130794010236789256103232104338635611374079444935877419750827130235780777737642447004269508561043844532022553291097767757834672473043079272424265799411036564943638460516445434173123033877664622533508573857502647268942887960579850580228493465152750952866525114148104910323879600424085962798870268001185690562260830262251403631955540488106250485974147055732926682489143746402595030725649798895324758277258773888181207743424338170243596638744691572456957560011073933977466436377130273321655877993727864777861961086413163272617863432176106227180255432004830364494140841878494784885381954988494422801996121247502726136388606942046138662948281800894613502373821866271865656083691195920612929293124001410084981790564122591659635040265703153857921011026009511795602588669639110587613587340791100781957236022361740629119246654766543433775422955523436577299618337716617088502620897159705026532120771189676924345485557897934727957769563412385103377790931646347176501606634017062991295810809942834605595914330052724222839797579635542129005042948278552020883978476545495765234127478148580966220164449576766643267023901542358783951310070849748967554865363143121400182007195837866806556488051632501583737377114504150824777901184187239095883708677470158346967573878378010198710999480293225974625957279404572091737483585156664817589953753944028247511372482243911321914269469242024932614323697029445053113656177775274059932728134065956356679005971296379960375495459385536711874153360317606414839652310631516216855441559737386890356922713565876457868659834879665179560400793916966208464733740772102425920408238782941100227417393069672179846608753550390386053696379362509361074653754804511036080714654251142905757025972907108551952267193091978655244802606138285849701377609720050733402654216022548046768513247575619276857514182547050953959146378694479609553000932267924478478073432499968484002175523218138212237035647657219811374378540679561167438723997182359373717760781005775594489826221103155537878021649371477103374364638701451553364121819754059749144200136411085239252290449900167419330514951951521013033025325082280387500905133411044385769324387160858954187102776736133297888173691028686437283258038128139892625667054883245395468362527460351415920972059855259984296202320331651306763300714468900497586280568462041217085054391573456589716944468795411284258912059631186897285404401063694908159737720963437143001762136026743759716608184123839644553654620299410490707242478549958763178041684117893905045306743206814862286038697464465466403286373161756683709721046573063292664300987597500264239863181595667992905447212741395292533615927478985273618858579513606103547100655020180570899797659824804702157077703248563596403641219373352696210854741020209095131297550946067670610456802425413723344159091125314128265480868586200215366089686365652153913046085988197599383801124537074568409495139897776363282318369304382719816001070420104651115330806307115695577676676750713765638127831654471266712993439053576132927558106431100550406071440255603246111873406402285879217235031762214955628986140356430382930389134580137138104980415741604787407286880908250020911047972504858450974836896805773623866988619547538858137637531136659864791264711186200770884864471915577320140379732373409555478676744496418500319332656631616773489716072378781035863993941674299966680614364368720437598682734003373405286478445345284123552335557641365156195883195034738435636154365326710688496295350100716523374394737335969146614472205450790385933365203815175225307823506055692981816588134261287329385263116841754227063758084127423069752998456044882224217316394562316023466088228166475726060308288025588181480259218209085599963747424099272172646654589012092489832673663625840936985558336723769285466789846362344242934756469894641213948430533498696990974005302353447396674166023726813965733037630503204015952776375793698598087335212612529121110926117106538237504445595979102461419197876048489324531119038647294051042498496992719468637106879673614100116344018279635683265258874427728801390200902498251028999889105615891284746930433124158623550928216608567830318704785868764527885919379975007099198877118301369616840678995953904385782263911375466407596047012809872983736566365488004976780510549900856925198651819200635841800769452746179872074190216695684441990897623267443738886130083601798904984554927968164884969938924118480086325474685569614662426046021847708478792378827719915435340555742647023772213020510793163717808686830267145870467741114786350700495577325314157436237228864790577691910640256494062022513754878640066396754284863445887523794593002826213146272254039899286406121119993700970753359887814971899383581018681092131852582382480454421721446676050161922317955310664407784760577328507078829340159143253512714109636075581973245303494617134855707931138487395840739807501323356072755985934285555993424764710783140616374770646656615579424591962453497554902415251687939694048178919087493033038626574090310818238184083084064760776760734220452955582392281140053665937537546261017227485473698845406865976695687615013220747694417389450806861723373266218708303197554861705079844503911279983597133439858401917186414667735985359338797732478032560181485865783170658216979831770262543536983784629054839913343806891231546290594102112042976999312766578528418943621537974855630276220762044605677036439285883102376899678738014707070993576086006360395487259687057030407828662449617456079969089423848449174788295198167716386327023174386750323086543273646685835093133698634739011251894460527494806746369989810539084155009429090411057632511474128418486503212444847095757232202955579457677279677157517278797560621156968750076308786269666470591002959289946756196994609033185083199780176416805763065983281450837769836131798060191843401834644605520502863285275775161011658930569879863857146394135153414530648836204725497904027575794958396474210081151698012925988885868653468382434655974595702084538508826955024511645160966997698465132136216010999234615712794052149807080682070620212598461909365729768955186751412788760789247810028601792982038447640874239378224290394905616194059844816540670859197877982069480849528116713555382973980166692842312552148299769410917918960122688803128513473086574030458205725554497847645873715000237018753106471349655781427167307163431962434975215062471339908662212457033424463946491496827494010313961635803861171255092322834225766225504065091516318683554065306023038559097055024848972359222394971128590034440863565553255543396482174498675567635735531965403753030876209293142354828617624746209907363060586305140104578651798823054305398121900102528568564136728830963293778287335592115656584696887771520697293813053075149262599375491694381559723276427589466691489854932809955211851095613913639866683372825885179796173705416705349818269073586186046329685214259041347411070505741306620657364644174708515516980098907384639993182704140485968756448520223883675497864102315205756185414377113330465553688358267148136564294211832571061390066953453587655413791292548611914053882191596257222764515501153061305512976295956650975415108548608138644442306658043594294731213382781571551150344406011821462863895749220074882600287064411579002678308267223226471096983330151664473016276697559906547138549482646516192561908145773043392075262880477454324985929323208410799591233625059834008305727168751326217895890870154271982993337571011866443568025652734673773148241625786818209607440414813496483998157800005593099364939560097668674829677591799097288160551560847880756250667572606675431816792294722170838623418095803390158039481538542235198827511738217069368403306329809232526788321443480096580748013836377247136728092713279064725390496021973672364975924348808369199229397990413480305520408075982746375828535086014942196634900578964605084750899074078402777112766990725726283951021437808641346643535387085927004566019971236495852982713582602535996571838602854241477778375521423366219028904140733264614264455729000148662506912135500527129041245247774783497798352939955129461917715224306498359223026544348303516365712006282044260632570486571020383717957243123385559775926528886378979343031825864568165016070903842091429578125456753477357795287589856197250800855324540090177143592062509269205521543108043791960749587178615013762228190920033533870749704259918325634321471412253041674749378829967996866327715144715894889506296601766805707398712257124564724694636901303854612962220094131432563500202445159325197967248776814537628502738652295314847067534353550987451311632762283116830560302732219567799545982968825395996080937284592412798913092966250168208357408311283000938063955480420706419538692023310902982366062946851250073106908688430546473905771796057532438517866168769842762126414119090998636499768248972692924005672582355932661596690960424041126588985627964836815424135903369602217170217703166936851603799708399966100362312185927873394296310923858587586740007973432903947429378824234295667656389032982929602882214724575502723702901028767984480126199301986665300691153858354850340028547471148595910066434426044247808050473660941471088524212553618362198128769926091211734158986647729443608192890334258179889131974410013712145141457923833843167088915858944324346677437733399342583871372563261143006592443622118646480989203689037009931847953748405074942638186572798766688408599638876032450524163775707199895595961259582433483646418402515648198500708395523962938241054190018470149985980516491331332842086124680178090148126590787770631786899935843132465427173326948535307351063770439018777639378572940502619277314817339212203692810706496434868982841868630264543151199987854898985365615602499544684899860623948171980941640052772432795627782157085239981788082731137104894356430225615948013450835037829872269650153536084306254653407061170471208123659268660079278487377451684954972038889436813059174862688626214551388229446365444489637708780604699902817512508680209059843018585022207251519494632834049148133161005830870470421833104109344264032878374585711923553293057086297922682375807372279445790402889663382772241438545577318508386125032962471081202514633750012639738725582744041422805338282264470743889083713590964112011018864639053901089119990532209121213688500079674736382347286968960311133661542866901984147919878879670542465132255614126463028708865432130143307623030171609022496083992947271618680813601162838270167039482476045627765725300262919035603085808987166531869322684923951444138917985735189657917225728522020788635650973891741044918244747283532348617199065666452225372676713045553665588090322802709663707791203820960558362392820618749484605073391815987802819514910546561087286565705834313287606106649965192188144458338225510229018524882563246539740320626351646564603392550883003452391198680760442953569175115038042859647968391376846609096783025910213917960983792432555570096624123081854154901060955872640280957990914960157705834591000085808250714356590957625111095455224750382742484598806957893227044690051381990617447075335445257926453602183052726240471280264510923218971401726418773954161455563324491138174456714285855144577696769835497103224066695192847110598489465653792752998878935424908453459179670389081031431600803410727864513639993259367577329074064540393232358979404112750368457945667267486598883931243969444987647120381595462351642156107845250081258681539908030357726112953135477229942375089114786258829589794918168630166051942725095154220706961095718563528028190713997018899569109813525214077838848833253531947182058626556551433658916770854034250101317035254775623572585989067593696337148429410046866838981235828306789228179506982828493133530008230736904805028539245065905389415762793805812603141829612938323254446066660599060273354531667804840844416236685542985605457065886428643206097479624013731397923403484644631144888755342129298132313965529923521132129958679148386795581731809746251136752536514817665525259839188658523168403950781177380579522006800715453131035477452528783778083760667163511762724168484329035206954314647525903712697685266283316180455700685345726476585803966922498428940626912057382939013593181758542376838041075615016698346096433818107350812651519986440058091259245738499533578608382623520518019331946904035378565968681324527465564238892756470312465001016652400701304498050709478725447428526552433887420025966805738913318351690471531552186343135135944009505332969691955780721396363674139660608350054309888173330070095310510911317056689788008247147773440886350862186090227308106425923538259846583200875815637771560182976655662967950090776252422840065287955512509451881236165848756615053499516218880956046639705579427896397841089044227766920692709447668211108857358391433587426113464417233121674263719746539869811058349305748507610210570870651667227284944211582652307902455726717250628994178261982130858344028202487675940097679291724775802563353482924889822625832637182806717779162171132439262081197330074976956666384505711852143867070827761207930491634591154505754934318846644667830383882418675704524058368541817854474072246588604699851833422184539553660773358469678844309850617502823391787866324570799979839038926592117079673006249731509719256455999176493156296341978030567478362175668606702482752268500317046654228113650306653373346696202640118267145608974856109865379542522078262484389422695025373634948617282083153077487940968303442383579762891178503974605496518527041817323352930047323189431939516153614474973371734395027093441850753227254023480321064757651079664393002585865341917660370858426829655366839007717935653284832632276658981635663483219332363976807856503865171633493580408494801091919216335027905091175423786281210499059767779846516490861598898691536656016101263484664099859599696713203658160871991681396244243210239516158864334670276001369355173662356310534122158440169305423426583715421445056014319964579564005020321311010379203261556455903289152839313078770406078393856823132574471958534885357357962225640999457756890748819274392458665501308502830703802032084347704949990712660722150543231815214863764892065188006659268538637335482242107064159170342110086996567045280984903348912970548320771059802279694106313793293373098410864546039512086302237799982011712859318970233686816352613550949941609475119941664036836201208856561594459309960429404163831001222182173974348924281996435687311608244593409978637784720591831612500543038851564456591060004651222112060395369048025485386436430010726779417326723245916971827990190287867364319905196519507592750113649672676900429571332434439183831251175956176690560961266797324091461328792041682730435328607428761619189126052207767738473067701204123447313159028174203376357734828788828416730549665126325313179545108937409217225761258774771764728348650070183687051490787387852336163690997680496917224607737199441139237592300413899902396954049983910175980451757179559507967799621976464610248126489706501670630642644293605883346746218593736336432260392994938690023054982324467771224226051359921440523856959902422465311754233544667487998640607288692399267235229255498585247197086023260441496132624255628785298649268928034274060262366120275914093546414267685956570039246498321250276558758631844299507015058928359513407251321260312244694940646601754607885123025784215484514454877755320286365923047639944021890754046978763242757072355332040169387336616101221072643049226641115085537600256428642134614493119990165910277745162360804411134622046357208940544749731938614190520646329779234335852875998439830259238417834157275999601027477328979393532444724318316168681933132770694596873970445918939019713430917728532826141678193899350082832415492166167830092733442427369943367581607192250218364611873470664694713763173583661461243782614287152908026153519728430137091854636976073253924535638938551695316452239194845354762150538608265236159520703562696797869098248947002452772206230942562493046646555456720331896164113653164364368583830641246801087377272311630558652556347688425928900660569716219735028202002196044233293067149519410147357304466354935469350856594577307531114970543682772719945623550114529457330008937491557435330159354867225672573395563056015273420832768277810133482508492805571178179447924948874490720081120827512883835833347443701077983641262226901116715814702724429883059634860849174599263680541990835807448629856264966017501488092481210711138325697020708157121620372059804420813422281741925091834134146341143598966811815188524905386531509987034635959897949352955146594775075190720996939274867805465032337418566258947409466689259345277668353251901330517057781232743648157885826082734677580447026210880867627709659957508354223168616597837930623765880178773750663795677967851077483774419461046534031032872857698713124689828455430401290882587708530216944799699820392330894532012252595652948037384958414725442656132558223278162893481322148302206205679824121556589682400059638082703046929889424164734985764800805209559995792047288836280301375788274922832192413651689464443589515955063819923318514354822268903645376436295063745487593052139977175508179639764071684265530208737525667701870394813153214933883125937550311493757570773694474414238656905538907191189999846135239001421569046867760938362472822472006421834518949604746361821303530581301221894604952650574401792571679063947293958746356840602944733267600333795708732000099896796439440557869350625842742297815100751047207149500226631520959018863569004047701123705908360541360845288330554186690750365723189855273210788295446904987716372972547966035607822715234693232321161475835304383383948642542873683252850929300682103895742488763841704266104924269601015556962730721949549486603975439015557963487408339854252080791967009904222023064635565765912360227285271263913648953425045353900817223539396034479828406530879345423591159399665608140993343339521715303539315181661358173352922132831963270573621807805816041407373268032633349908351277164368227612981667946335576882183784602654699947258234450109898915114205585941153553473513645291590115812407764260024070104836671260323934850462700995519319934053148202126454534087942244666841989607127872488826018893881470611427334239278291399154517060631397891801334526946349838280058353319980498105105551886289731453278217656689966800578713674814703894473192399347808135167885553875038428092599041419646687580828219787369458151082086264353815784670953250543428021674885904560902197894331235350211706435765390113167735290941542067489431613681131008580260463446370163918288790015632061593624722696480535795671540861886962045454891226146472846211872922606787150197308711553571589928045533405278317191309840669289110174287610077096095887007322223552868644871374121514471859435767783009105974027389232308723864985211717226794715779876187700003738055127827658153007775703565197001078486304254369434932775221006074286317688266422112122062530615323134890439083888420562045926194377928133821857941100945516629215264474327303884460949399531915636055490634783211403934097048661596396658900760119574928817189673320158646289249976084632292088020433853425119507906087860034955711823788301000619238456017811802056735831234710552163389012423646051229217928277219407778203029377682964857201238229589309158832492742632632018380553611865359771211106463713719088672371203442058205785142034745411364030417955479976379924619763422431979561475273902301142456316134647155607781092326324682043769713569180569002849969527236640525568953361244138587226315299855868677889407232624872840255410664736645365028785217309017275004923926492829979563040914622533331654005486950778387389668822037524403032720327098165900658365185509209578767613022856325798224261058994362613122876972040287406252602844700656053108873585062919206604000187316459939463820126751763779001398404053021621386364913368497019319508435292646433766209109915517494815981324547907532244847060482521891182962080477585178970288490176267287071920072961617632232977516670244563096237524930892923867443624323612750340709605225373166701818866626413122261935801039653384086006656955091001798323546115651077522830763278868231395408570953928148977513551298598609774996382149780231294635479796552019899038383335048154616216574772303121956622520908452892379902231952414133456256484366052004370336984173772922476640534812165882420540256356886487590938057432312529898136981198847225191591327594419010876974116543368737596428940527393194765400786332795533130390869967048591131848314628862869756683471810143826676783745395887097472751452347118207949000371104051997595579312678610965965122511621995876692503277491575919331828602826906631827607730639595049155765227318353214722431018015311809659478294919796826745906375203816923520677229340384114703830014906854565962594405472978568990024910910935954817423236466281002789679741291872694500662322555512154337511333774219698637150002519478367597457022427069810199172619836520468809400882624912916629576977495993607849764317786684652311656431846934498112180918995655707543554470871271343742070085143710045718230456672967720245911778502541738034000826237274892884949950788681651199905079156526744450443017358054839928001843728164465275389082655058844026364528137005115166958430942720515838122132963934333056892262611496528734243512115759499448077894029097356560153345426364164832362181791524937178123362396593371535790655806782906189809009202358113670109544201391307807708830034792325243836523774661476004889451064676951996496116101761312178636008957336459116357356160095502439692609388384681602134523429645921975492053367440498332786168132354682767003153355273889465722957315149984861994280870437326909688083369937723218071561921833454687371318948496416016784267555203152525221194870024765475055473398341210783050828248542872720970274187413148790961366977866764352784352188865457819694592274108914785875390707601342011943877565061787216018671324683022942230687298134321381632117589104276456060742604379441560129066330223783244301130836924339046219950586745494609597749369997550987439485084567360419514225231910022563575054275472021831330780280825316986846724779417004066673366361214527159004495891327651301758624087650698006279667653105186187185865281314454644788214501381158756561276834298159920318135970793150855972005241333084068712007796619556481409308132903966305425808585518433136421142692709377275133422360142751052558621634433746570399552878195498153167008269365918247623526176863308969137964601622921500854191749772066239083674404712768948322764187035427221336994915704698399945213976190398658246686124846103853498808847960969180376247022552218828137349155061284624619511461457973874039052541509345069735163940740960661343850854615708695518065869543442969931820526542841476096128946105547487390721048171865662992694191472255384308346498673451487095680954038054132095159935705362551618139664663912952498095223831634489456439142129688853799330570915277446718758353668731963654121108925428693997702420539240215459831219832082306767511708081813116975875824372640435423587879524116172655699984710560769150698745954178538406004013109848743128669304217466644353327033584759167784171106237651682647424628622511899720102073591169089844764649288022719608241004869781327446195440345230242418847120069625655805831610480905440287080483285243207768316517916897578492388466636026526130915688234474139312074912184133405950556158866488242547944648831787479183646742971885740987266332048305842145536426891515523536622788792641794323428778882662625092902520999172986816116436460623465306869855748043751305974376290431402954782604148987583877842994237916860675642536390420115523977875551580066757771037738500336879215068376013083757718872708940126804186254351540464042063516927165448355987968324450585339690354641664988507146068120056202980427379760590308040738698269206478621049018208796976481977638452957164849115650094098701581266509975439256579145982170816288495538435598637366578381173535402005425030541164738282591744311530473057838126019198820873699564139748857588099186027769910401144337533463179638781453720923497657799568743641577267525258670607269766577214250865294338088380286130287442242221080824259346551103353335605797190840229437080038194682400663025029672429179257235156900536687154917356757264671427904499210551995309572255684235488422627477292143995139835686479197557938098169705525768153171641468522451239208108034647727756283585607912215521637233309763139460051334431974344088544676202886452047205953190857298667207046778394235861890896494776109021285254061434408684667037413286911879665564890418218158893647164656592345678869126242089701977109841873030085474686801387272143368481969634511769868720095481577729999873693716318119840653972091580874869521670027024051373161728810765795351135538332282663612100825145033792986640469012628945028300275591022349161318188118502363893839450894137627359864488652341529857931796962255299154254697535978403515119378682583146432782195759670121710624606700016763779144287373993590966314544921550321857998720452303301174195117327539704838831524568856730108362102129858804379064540832925939168881525576062979795835501281004367914451025234135061554269044433320030385987757309956766501630959413606354296757261075134335791075927736029501748872637213202392135574737117730814505469879142676367377083693725908339555747717948991398096933641734427078468741852034480033098469189683196864053585173152687811364191514369156487227999387262478860668191618788221923406880737425153256475225457241790018916745980041188558095944890219350384835034120674252279865468027309213190298814271582443196887286086763563685446695736990897801207817839383689206037120760754462426948685305022433712879973221376544170727279313366454961600291093402124837180344073278030246313457443022484803426285673982806901420776805866714949392005958580285131932202763771414210219716098225737204401983948273656544782722193950312802516699643961829063100702664530109669134783657748378269350400420856669679572803921580255416821684472600240956086398293743965533264959220940722511806149763405157015690062053285356908526809954733706075057150652248208947373637068957282011019683914155521247232880375012551118674285336726399511885956644486118310845149646638748959553444860893373227302301933873079057485514468622546160910206262353191056425542187054449479034108451714347795618134481149361086023174832424485049749427477183062566238158914565766360959790793686090075917329558562608612387460577393193770385494248316365595501681111768197973289512246876925923561252413172791711521689064957799066022800723237417288481568676546665822232181141206644697945080733632754582255073120999755664962954962117691857804948819158668415619442792280198625186175936961062076829904371340038961960034576363888552694068584966036252163904806065136708367675696884590589571166858107104305786737587486778682432730771334270950092490054184467744260570926330343648928327660968254944651872921775937878491065133465410178611169525243857320787314943840606662729539071236280711724250871875953230790595092503873176327916764683798200219048120974892646164858887650430288888594177905458192885812698698456135788685114300866810661464214316789265024315289164071029666864613322785395465703590800429358040944967005139391694873635889959419574715178254249015967765125425197633054654826529791852644347051026978602594170091991742313242515387339957108047174083402353412781266146166569257239302317954208333928200174972131886778537023439276920259972148368582514784845824933190076350711802594080925554171366921464726321954257444447334816644634549612127662831978008884807118302464347025466929398061171240481876066542160924243625070339195834317701912602212194810653292159587086133074626078292424325744237872668853149101942503458338980772289919482326536965352594446797964826604543790904838860831134856294285173052151745920515011728217459844737763924486397722621069035448368994204006709639657403091740050856387674725433741889493911187065818438712509341475698650085434719605449935875534733189050011127286240855858802781771547550257789910537427685162027099999613007319242023105808075972188908477435974157351775772644866393210238684268654685459731908634149246514011943138552026919402704170208514271572723701700817411595454765079812963886968038189326890173512823659951314941963182622285666839350704890408943333043398279639209889982731780440690750420547801825025930305795051267753298743303695726396012843206476316400613765489870363592498646919423737587233261233595551588152983138736975906241048014717082289626312106307720321880532913963200234563469633706251767854445420733380900737660964389750790156757951053165552540362078021745555804317462078760358600162172271295019505529827212626010317876216725329961908644604760411406057120478018402258313858525302571848620430681341134155265161246838393052151074985699219933432807761072083823334021412380896621738262477836308242750832921007031489220982725096075170156675915831806924931734056477680384053935523714480890436897890135550394721083907978139869376537720513437841360826578628694408764635099664740622977089816682173722681090897110668650804942841650596284489294537562077468380992816570358515037556539159334770301672793330065645967047907019253156012384288052836594429934220422033077749934295591227157803184438160658896439934992966022437244923576022602047368998117589707905335132809189166694542196677827165793901787804862109635880856432270442657400986334548098130860137791567613456794549621968518727239129318002107928619949873120101591453672204192290963121024052645628840484433020651974734540750904926673857811201806985566344143393909622437747462349329385009604740838869040152469867002731351110098711224476468342401685775163258960268455205714814988680137925300808055843240968502146377645863577877074307128359961839025073103794154650022986769756466397568704588360980515567734911858677128476289371940671143585841349580201362790394630059160194005533691428225933644616270635774241262998879318961450528642889281413705324450517036764469109530699705022022446831266413790259811859097926928035143461556572482103097262691616950281290878465471803805244003349070249710699532139813578211750523195280626973321643463144819059998336575312299068110364040941924417329673679327248975103914496689231428552674326186736465714380901017049719454711375547274919598588015829488651368413444236653296022930904766485479018627273480944065127896241854232604279982934960031313389579995871409896953631213266243582013908247915204671580583127030793638363080715528552152385451701748899056391474134523427213183042165061400618675548093837957175690815995375406421518183027467582384828526792323807874813873245752408102843713348884155791757964211535923342205537200637309974693973861088436590349310353198477581256689837788093689351818024052449627101010211086182426597587565498454849900265665390856070667634969390098298846190391508735244778865985495414546955404038471943861618994271221502775584547007036365732071332316062830149669274507558637095886629765865944658125129372211022734281919055896713292427988043253023333119616669682195533224765282073121156993175869023887009652205329297334778584163720059234413201097905568190674956257747638314538782973324527120643311879231519841791121220061294537313317592964141946570638210664255811532146366789016747549487870922681913912035375035055663627186064251541428649197066072072108586308770915881796049204372778510622245701035117593959525961039554163636001737150690799898976707021325826491178763446103371566157778908436806818151055508795766561477271753601730344526730620235074951003174737683017075958675358543252336840017953298620809235394418288946488862815754806908371157210739508030568481110593566433723618275210172912144547070291325879895485727726381891206674004571204322991802166639825516961065239028552988410835321992295225456500299390367833958678239440180520059541351308122272902748830289470731163720897233582325137155075401462556767844106349111779608133152677603863795295645168783876467176821786922398919216895701874355337334636227857206986656234713234265403774005168477423282594014745600702228590957807157440276451718569740487449472181342426373408037444670061864355497203788208626543783932073249014931280777640711513018102498349632886637943561522224238380321568678509041490564348893777922092356154301900914930823576933898975903267143688179129963220179865739002942195750418919127667686859121783935076084793493683613186033976212554427962436782196230539096584655323947684340129768768239515563063690272403002115376204384503642875363127024979799791658961389749514367385916644956614100400437140257641383782005752902925758589166859229074174497818408634247594100579052194466005258925881849335066588087905445142405243264939640081214874986107270143041594886452652777580417034948575359097497276039436743268811370238678462450694374938972905896371827309915846897877398395043393029992809153721984543593646445652344064818856741236495586327707630390210660191902286355257579777059121953428886527088386762131448906076008414289590791483108300311881045105336192690582418335530276066212690858021023265959122567857688494270610300955478627350342812542598797454693013368236111513435114449229768451739063276604728347496344884615958862375839603989357741843888453678357697860854243875548777198598782064353361658483479803360159690526417682306363816903423357043464637733304146880215174270569083972046723402880661487920968337064211417546897461072318983716149973080979015922722581479426522825396264388685703588225861524918724853221912494854987216782890524594512640635963349994346372480593047924491378384457801221723520186502851912021394534905661714854238015222573186868810142652615535701657945575245691516804521371216856972181986764373415113659837856072449935516103331904195353451101621605353164376393968105233405593568812812310766329492233239281919305155594586803014771526084781202739634206185987143668879629630114261715014618980618689063806589911223710117551896645156884862485604055563493977607086132182337572375496838916152216793790513820233873517280045936964440330130552997140363918663353888813319336811796056595681884014456892802284171776202288654660065398962043170495715477106796083801745461328785076040102089785486905583699638836157953377236614275014523287177961640930612045760185983104520592107424070612383848139689765258495628479201166809499467027900355971869262125991336063071485715049488765295812094023083655023146749661914238273706396010334880859303112092247681982988285299232667049292328509947721799257641141097777053182070801468856901416184485681099182031803156150098388321206887123094432031198486480649989760580954760181481998538175021230682524433538730899942628841191115626277887788239478135663424472336160414626527423450355473179328177948904221099948302374309839538431884218597949732853666520110381226243749029296546242477892416172352840596924963446522650603222445689695044993613575480197925395088175400857205789605838740316893683165824300295754589764174670460605374778773896534622658802535067782106663854757668369103778645428997111825431425471495377024637830119557530213479928986564696381486808544814579613202644814546799783209143799459194368684920231516493174733058268653743725455273166697117995406260994940197748693691758120227770191080358213513746941613186657174507144757367364828437768618713671547765279279988077563303765259359489580936512556872326679987080810713783480376452710272298400219962105220719915680424241072467200862555993543819199843252271065501142205172348653488492918377753430785207178839841107753317261520903136198936532297146645789477407004937786442227062128695422382045722064758614107586819930333556662246280124320759658687282690827590636450198531855051554966523121618155227574800144239172110809063861009432607781036528147942445679176461780542354504066784107748702068255452608397182607371375485725806204410704753540904272146692657079709654936724460514967406936285886186696360543579189222585921972591876120258618726978052968920829864775400349309104902075938321871424643474332559160421564066071490333637379698870670683551706375388532995580490581389060204983959597137295366094402117938470583108614778196137443344049001320855998968971919832332767122292484801040485493495525464050848997082916286053298350827623123226724360343808798014683075847177163928063167476711528690348422308195843732190899247890593682310130719857260432003966583777543167801199150561777301744378789723064001070484293185403824041675940086780314677427900736751609014898735359715012983813340479219235202541015437651347373162517873094299228251278609288801661725569287471293019294593212239033394061799994284950875788713476700468376158399732655893592922111151998762963176263627385173315146873114055393152320942482300427363552272646225542901029552504016623876894180964255635438175073532607301745922871411839702300566871653615262140531439984570633323470599160335600850716568775313998288015650554829857133500212685018441522135587854367538333158821754179626417375505751965902007448400727544075181068399916764232497226303400444377148257470109873637520419241919791371755881295468365072047915437978387596101301022289062662250622267100775549683190465278557922219126155332720866379571466912844609878844100764577902044453024718826482626818954276213453861885239168557067739548604832604273163277287925244035631286527957098459032583046449886284982365498706403166030212505138684291772594414006596546353141713167981956156906479926491310778158134097761287051890294718300196725899988696353612438520775773875944069708062790941999393430990117746108504575031877752749717334319204918140131831960428896269501534605880308364281073116295227828953151124755089704675568744888160005366686240322433539229416186640709572761161254799046409556732637308818869042812741939641461095780468974389376709304944442893718916950700319041342806264552439705551350518796837574155157496824529507687134359424039325290903320259169172383703971883260317493654074091831627161966962770101812468111166135783936114985357376569568221798098100721240366616891016501934814910871954961308758151803590006779523295032517501648748421245035316528856843255092052710227870203202661720935838776901560147065865853755838564580011008333076689148114822791277179609766908438085616871625925627692770433016536236347821072270101488230005795224604677539918599378355284170076173358543417063825967455104316313086807629807518635433703779300760777267806196893146341306645878886399404136557571302995810855415634028116321088442223758706079390169002556419825445402763812815325717941705478483348745906835815167481745082835405277834949687847025691633195507254160643782143011406693660593427553479700878633077507305144616591551160856181784702227680719668780846914393986049574781757791596602584910403356139917406328354697255199133676058168304258018706490463813708753177362069788285944180922870691960136398751571126101170635340060140277500984839269663154937198605581552082670561272473066711100903228669440659623078839140201535893560156837524432954007928145277456360732700185090666619076808757784864473900661132951297665023575076244816312237263005652107908984957377334926339480591161351644958826214764520040850441237375599086434268238625922485115938693444110174764548978315345889750665698716707604919789714684330854766514954866147738904389767571052668311178451344115442060930998021239141574510983973474128515981871999609116539806755553170543934626830094659390844501696319613026472509310751671222548141373033317437025681396614495299044405714302319043588512134339335222077398863485605398883816840534193480106047550225100772756328860080372651280719696692176383944270262552155429599024097016514056632938210659607000569410807185040631811015242219376748140539960985018067887884167273489258934096004440433399714203922523470200658911172403566562667011046353123310953807279797086503482734953342628512629969732594499113013445688382772731770313213975376683116909718736456975512444218850905989162736863964830866034301704920633244655372955040083538604013257630578018574455070684537971016216883569387086771588253541306733761724188626917057513398979759184607171008410085685914836424485102152814177429397983414048968735059103150507334880131135642927110674245017864791580264433333582314633765267870156101426316813294338516442050468722597820273367944120555234949434148276298126742657546740263652736089947113363478325164871947235126628673575594537198604828524329613809824006529691113681780787985056838143296387377412056603621422673384242739545062680656835879712768951629761136597235627592197421766568832555796537633003460923318333495135327548366807142157694918496067988743831054345525832912327121793559022069443782837874563598490651669292018712687024249182131295453608198474616746407804430170082273127627149899634826757834134651681230183827916305816166699935383159271878445545238130470138976212991727895696307651696606760560585734832113736343628243733711166080591098168699726723995594059169578118684712366373786881558966938076015237824517684332492627567968854356453156348554760035639132161306687400594588659810991308570491528433956046026151595287642312155632761225575491120762616003960873060011805815576470662471736062319941298016501509091273637207109092457697491440657930554158922896452262824360842079501539742612772222785155714962295522603747466966383680100126186149602086775234999247736729311384394611292050150486493906391572059330021163166661548251803798339061543591112121843495890342103134171856214786598776224089213354349074490642672002813501185327060114229874461332963626439975147012416137078631273260342476583431356515937178151649898652860755669916056835199710700260647036999928895655077726402158505132675730471170224584346232668692857002682285047884011758406379074083743622232420081283869368449678548526356629536388496390253644999054373068073581410403763162123556843646708598412563685565751976725909060956091387406970705731075775105882180853641265867120475586331381001266538132817356916794102433056956686949249410038485777154469367229414712077863027253033470874395938930347426141122224382311799906580998580002758611684816449489562155853144783389792054708812861483580883052760688028266818599680676673397573147935932848432203195097265140809253274535181750573721549550061712888434748653892297403906082103566719804403741175525179805834815195537795505662588405503974037579818088641773173145912174763599712864979890653445225561737408595713751628459380123752536403592207823788042251581006360292863819432931660958763912632349344934943919387872102245014560737704784075087816020520979454630930575929933324480142494823034546543203020294310432956548459672239730597451252242081092579597183932695913719165049068720314963209123549078963802274979062109621499952113250579831636492805812955535921868970915033490458622564891230556747511488576666027953472708543806790651063585089217781360371850017101818400809649600827418042119115411092658763302270663288104403437607612113064466665454808714311135930205007428022136760839801987819437875950623407479743275866323053856356576054119494238130841835929003533161045453556942832304522250693558848984575474776492820712770033086885749616165187305562468606064208884224437453115520128645574286078338965544947111902797181049985557742904898846108138326467441076465537441243888695233042469116644863375624717917126026461728088636084559247308047713246224220198217165120149221311783394992612196983261484291613233526887305730722554714893306208242523289707676124651458015090128633583067616329829935282509068964202087133815114590015093768614000568406498592824915425684055084900008157126875104145705341409781927237410978459157012976991874013616419309958838976132753446250037097782936396030875881617053621206138354833631266488537052668997062141341070981249799872956560259364860156819610993814493892640623338208874813214184584956958766242879905363517105464424212224812831205950943002029172182094871976905215093653475847383587456388231607645877558839148642759993116926389762336454534686999404223606611039915897135916134597201823691382350425684965421002695405316778400569692147679865750940961421492455501053154538675150747284859697860586253099041745454151648717133784363939655335101144694204909925762421983485276735850552710112350180711132555373449621468089285842621542173353780351257002881403323050757101157430278706753223970106194966924828940983752288617239919016932903906220686596162759691076692182336641218846487072104910151843991699693091971484616007030239441567349576978441066409509683406971714282427281263855335731132607567538172915451985710346151408061445196242434762519795945871737482534346590519110735744537054477340622013963237862087606378762520081962206198259636408258818298240820429314894503376649440628961021863228668416297837654647400996888848171956951234556413052951228209163254787917549006137882265988839981233966949459021888221484811286744774167270904898826178292754871724539223199083860962351451148735307030117024949313307592184132777396749711760480356927153049467352587480263437854721557698646561343224074335867625373944685120836893700320157857606256934952987078655911136966583501097067368078564962258267874534186261015873318975393756916490431041564580861180837946337165929073382232109131186794070995550431944185762172867155286331700294191109784149757199790481900959331489186345512406001038332042870080696459734607978767137898357199372128116288510648745522062973771340502738540369561412835087233120318989702129363487635415496220752226518796839086986854633440698650020065247120901283558171820105386531986536240427625882287796239611055045263519020587185538411076927978854361597946356172573791612546149616387075225846514273165432118714699359177214304978007529980575695919158114754460546518731248411421295376438993795745117642122423739099054247142333685313942453088779188627573842767377782561267808029522113464187571789662535923503167169445185204625425091467067098333425792193137742580678273147741175369420380128630683191010178220373160509371329216655112054631908888334514554426435265862004408621436412834530702585945031258612174301192359486570980068536291361332133075354194398557788267788927979329219585361988826439138603033119791666211191855963290275851603634171728063499949714866943033016338929488784170962590578516813053862051192057611275684559696922356085008160013137057876568887520720999423367988476208302437790761176609830992762801446916323085389418199059447425241487670784559193466557603451422499003878093787331460621555687427828927465361222566885668759545227437317785790974098486657319216193250651632763388351029487906368778885377449414369386746903726646003541993445333057106610542780198740223325572527438484113454302732795468856619474523388277432033554968506872870683150984943518527935556437127976138131269763225079773598377071816922202762989560635793927408124187859669839964155692825748081819615078164907835457421030932508000869369379502017714984508215021054513758165616952037351767677472619585082373701888187520327584326621437056898064202031616371667377975520889950284871713664796752931408409538888862621059944168607871438060819026707642243464032530704233467619514610924882050299771001917492808682448687880924221456028496573652418776750748405603194881447496947738952220246412496778248057062132410494616073191475480509502691708561301465640730307389130584882020066362434167977370536538039595335721061690040541498580792151276267834159125314255439961921322163749143665567392968286385813507907249640107572403153610099594888117751301733689970014138473418560121417507079984537318768316954105413676942063807325294131647347582321253829272939723593210723392782825331493598487661566982811732064268234919563651996060148749366222611562559503951092441735889306136082633928013669288526645496929680353667261591136247887386586806038643935355113361390244764012610063754512936674893551449926478178920075484538338842778802897535548650607453702211629053556613822222497028724287422357537047519188617328721673515224152874965835274754146422483542864706329683090185144105808157916715747379761635618192818706603335383064125631601269887036779986446755970446457980998138945060453853894576110723605863456348812901623334087971493676833176987334236154695004385966517781209018976347570553151563851431444271666627223629643082318017608770446335684684870713683364724316796247832898616175960331420590435211303933401561988745682461565061741361250740281406845423522408112164031856555839175352372969821429522062531813796195972314822709841310612955574149680748129072829570834100219058462370681258347631311532728017443162570900561122197406794306520922876602022050607662162828632614032300552965819647023521606212675296952575436174182867337809155074608980715975988786865394245203491974278677008262332321887973222364917028168446711936057161965341990523391718399914600474586461193891373440032708560094935822092773992709500742253109317728362364015401312541683424695837964278643231002038451859290282537702665191612260037834960533174619573815246214020799067952194435592539084068258837112029291236621959534645470454572648551379550517921877246395057497107407703997584974242375823266308848523699352724334107535190394885667057636729021331706546594840330595520613085338448989857447183248236254518980461656381903966043073613194304457574008304701766400537331148237462908932666556692023164590585504854996625834329782257909641744556475131309541450746616219540327613946283230049506683361926808764625818245190841171188441743316466367494871632133965071631559277387737121197040706195620407109799228848411212976293006222331183879378646553492211217415968889587154002637014319264919267380953737714986991810118148327463200658269141203110618046510238186065392544804363990100753480684228187533849247099628643210311064675704864833635467674452794474079187814367685492499571255761490063230811017018545892350779954504246533705435532274300647631851716760651575549350900044953836651080733141022932884257597055680554823088357018517340344377268935952457402126905539301991531733430497118641068381362173975132896415324612228522010863770031254249925505523146831188083221073174671206360886126518800913443843581407826666228445230859217248255710534960764043793002728964577743403006076758751941058714672723135890589474854427925523947273841045937104255953271403155281016630076420178205609402712511516083694787798340244502596415813899147370640488158969466786109593033629455897919638801172278811583406586366545096968266659339849615059887899078802055084575575323038537852129450464001120036550832626188230898811485960693687031377360005602933940458160353154278884650902447949614680685587463883894047963804879747977147557451693491493536676565721342153681484882291606329240558598725212086852604759537706300001101786393225421729468340347371613380393713934748712063263186247214602913783727941158899884654891813029288400083460588190686334525766990632625222476242004365651747954560674472070213377546742871803435344892848992501210301112142032094487430591191335845571594456691874757967652995964778084795542388497480850613485087518984968123414135222808726472847521367159220208518890690577585957928322204225089976127546938828648607894057282207340690203728466410664445350095638401703797210267321281445394074500129253890309355525849823258853832424107640021832751472195945702421302340146434337509205916217152114621133993888949084121987326269893982022204460607314629842723323552069734711869808588502665237930278381228205316292485517212160999476852081482315761276203492550245005320801679531138609219363736981380298847804214830035120944987637149242951410561638983433521753365061096647364641407753123224197343416530504948879401879424620687292392428887771798297001190962742798182036955750628609470294160202835611850719183822494605238535037484170496575339550676140537936192959179190994092328474172592631269461080954546532577066200036551635244249370678216554849674269077145084728854674231594890735315454724321265992233930626154934223932888649664329398215430476332063431769851274782976373037057555020830304867893231801740536295566509304490971962970165172845024039016555500841243058012050529549857724047833233039763225529965662425218950634511491678313172527973469768682526114249912588226341354896751290408543738176346229118935013823656513796879210670457280579792715160823342230255979632472409553405430761979645113380542479413889405806126768791977273044875081924627421265708379478287323773602776429263597177748526179618043096631394111106269793614934697059167488088225250356835314972340711179903482571028794182460965747539517285571623149431277342593019974816546517120709262329964199405339929709820289137856641836027382694013822537829527631217564686212450271487097119248982504376540606099525103167451711216414816708756103054790609490913197966222435497705152405352245155857888098340431594090119997496806264582158628591242251969064924268333151704418624293965094274239565353800724454941145526432874603473428075831079748946686017498128126089279687614494936918917219740813945949980143246741096309496854281831689842040420752931523541629378726336395282878471799005158373115860318971227655616698519473958185146716883755020761864538728295612256179115408656768225632136365640672314048540528196761675760379744960963726960381279099594022729153422969338476113445781758530072249716193758233628964928899816600672612942834768220193826927754997319903740229695540014388664549218143785459279862758348047644379843187724035309447670473146472207616268237151997417342296108147082775482057713296350973755435195033857980832017296341182560451684777764585343259482959809985022810333648829809649064377670441252791255225381064444398697715351445816978525469001170794699944209130583428883803097052416562688140982070078931598738768538913297004883054772229538021280700804358140156573950323192969384977544315163063845659398366325170622229355550788246043335486150069724348508342169982013999429757998742978939953729637417144313276066253263140574990684028293148987900412955873118268142555932133108705675616671864567770126680030092809191171530986097354652283295488830836397261142024187011933321375242076539894922570500025826241239077126053251491909462136375409763449514731618998927503452268999045257175616336130613481011756165228620444389811814512436376360427027268918573589361142587982704338696755354667561082062770178037903330819541359028999176541418639657223826268828819821862095733082741093195750181461872533153573186227171466663043629492307698198840258122244003910766788429374812010581012664834124387580312072521106006667618142451969272207657173391010449113103303462212856977611481963910894986215443900749665329369976626321275568496346872471683859715721340198714093130579674957445984893725157753665144065105389935300542586309879116929597504734386111610795137105182239785288393952978539967596817020968792843349959276387690402291197143606578456355201702696667247673387225647950158080620611273107944329863849970552181491300393526831949822771386813187555913878352625403311061871201698721380370885553719257635335716728899471717112435534376650874879315660214554466327635357741061924433012133636259644810417940296167154677486570554264796456715189417457894726618278655253914377524168092203139339051036496911855542969836387981698248504823907406327593634648044120615606312349197994847997788101680097349231365756703195412611519789617722986294925392540669340888938730101288697640655312702270609569708110387171308137681883090031908144896012858341632505682083173378663213734781962900967259076187796707176174060938697322723093121574234343811687287496474893131162357980685191927371105727335997175182686694772696770231454056177765070549202292554583019851060947306455453397213026986793482004786497046242780959916320540836759897001537882639812195800035736498289189611286416629267273147001597544439276401920423006348216381897293790072996991670479860193877752419723294363613673144551146580216357525195395134151581854126261729259493113279716384421331540622245719346343308546684789242090955954862783931381151132831324425485614848961728095874592906720473039493157265457137292470226814402287078315171154085335160098891801547878871827571969274698983467409315584030402881700134321404480601850930976304211136182200360549790559132284024189425571641772628021950760082193619053349799560197299110858929150442241935970412277967203732885367860202415003882147935669664096927877688917133703127800389113757736646822778321028313900333152307798015606551341934429165554399482855465693873579535240943769379344149273038434724844478102433060999422973232838648587845258699263477247879153062935749123777471705540027872533652561330056113715726862005545470250544308227997344090233668850440129146148435378808850306526276916085182976453964232651079233231789200972345342121156471172566351377066610492528750234815082112827255080322005819976507313461599247129682678251337854758657846770218410444588192729468671476594582074207767348911419093513749772808866501629662752317052930290660304480321353644542759174661879787855903060291872245810581949834944494831571712532496323286818337304223310001307369558319603167370237348155268256922398833248274082852699332142328099894880661531358445390803677851867256689197453215868909119322185247032300812219412131940522543973788862078670339648137413705991007783656800745366572413630655708513672478628686262574742653114988952630901035119080616064300971811947495317949933956869348144481971588829821060605707849483922701857413003923485086927524387334323565576334929066530420159575897735626325830798765959866862230044926979818045234546834851342658149110221466126353025885767499693307880671528427089021669113556810735572635984942327071966412515741048479546376514660184841679738562728863101741706606361998349335679529671398670527228852013129293156523096353712284617477012620300275091142560685745086165666329290187405045112363792211091979513012582307108704887748417583834704012332766093684289716071919199191596870860913256628147828994612219617214038803209798484560890922330222885486303618670949181752589996787246581449185614101057193546338931254140976368022237116128691375915453683543594854692316914958289678648465683511395146158268237227421108289851326728757693559297534131055734959488306994761539154946500187852540278482736558663440232735040148938798553749028406440946450765811412248439279963523000483641879102283803560603016923068973958737965939591965711986481377489690957698211134697127297318078337872529332183121492581850137715315829851621790596802627294389015283709654400130114721131107791542400868140158470725708158645341674258099787123062661656393615143300988466678879074282552593197824564083080743638358234828579613350183057132527193152204065038208872553110953815569130138167442584688133426671880647655874711466483833872083153799009763927045943158881962104670949626656075291435410817400247825267604090309525485056776071593757208133887959598305246918187478361455970026829171894491777908966627429657123977718722988313790293841071836118605828153629086717236369333750384856497037354138901944513681675540412995126510829591721792136021218149742486024388479872127075448835858680576121337113673301551616396362130649950993235813381641906128363561967583128387641591353308733107895186310054584393217045688550002532819960368802048160082122507276895189214687687039791132373606441138092245412170055146450045910151947673697053619525086138402574570249212672110464984563435617728857353971571252144512648726350576346798188748165511953122633571332830284117122910292844037336895642770215897615509452792750305827484273530427576072374266079670885136468902980252221514050122299954626406592773075969145960402256213496141434728283576610417041287546811078691472852721390422550544069278441582206717494521414232523552371643611997577881173191030843281231217139868655561932337872619131117895570020438661366885142092882186815802135700029933422608685701923265715420104796091941627396041377969620110713446198011101724335769437429613721261517029947776768371712796385000378130394036672600918878171797457404268051123528370129864497590666663825199036518377863190613529210645013884589608057383057469057926968396064697188237599519075751974384489618822965863857411810532818489170811668295890957641323387217186902650989870413820284219865868333351597652100633650316719901978112714275027630607921568824375856895663671219892638325959689368927288080909500222427185029271368385235026007653640942251436434008711213300167220791569400618634798936359757798092146863892503470267634157507408834847826679566707965866227844666270193462091080630461809964252584866239480386918355187973139447887972582259271948752360019136663997914737425370514264521296726791012923641507238002767283765271757835300222460498037294687132749101264723479299480545475330314642439318214491544945135147454386359970599262877169051859155222740050677888883250159699437630007374799434483324301337352500817202765219029057210478383087600334146964888637955267686092809277273309948005605315751293450406106700977448947734664193115115563896604282259542903513265292486166944079629195230573191544866418467488839799327654693769278980975907147422523918448182101655074514107145437632341243029405551074892112305194834422834219397574451997998658930447310078249911582053529426494195971242075413708731819319591524460933546072479322625925942180291963595110334705538731347102697246998616804369780280518193463812062465158513933209834715409165583435845069265736275072650915278410894414062448324052182046104891984344237380156214025801739502047093584105181921403866289153954431314958707089395578061514416892765537772528062648984297015541738219088817336077186241970948954148639581784498544626583785479566944717891525185877532583572012665187031805998210041259076422037280681029422037307912845926252746942797847562010266452390818338076314591136708812601183435706784812981952677515644784384672685640939448738058717400019868751529581926817470400111534888056708864960312762171291635543794981456456835391262921950956036520331030872262270441150723807895781066007814273774402246528912194121845422124672293757800561467081259936492176080392246068373278558027199489656546108954106343724969132972106706614245752908652844696945753989002600909167022455813262322508793913581802945690525552559230314105809759109914277956190858045975119207644145157748068810850852114596600583866443267627991779977694633118811995848768463919795621673324917207001384807429557136341484940872242299058837993706863118366436622088185667621897845690942430875916261339088887230563470023779836791204534201039680048050768792530531329161274499407483294506790576943425055708862080613059884149301979933586227312324606490376003024013887809797344685189476380281273511569775778601288920981631527205918263696759058474114127521087782817118058347177641350998708427519395727519406120100736305108034765148399012028198966961330558123695252430806361460200607387918566747786100027543611268043988617560430435992174573065924086525804615975176814844380210818984089222968397050464788647604967833276217982877196559899593145725179944800227991395862820501005069081121494896647339351506374768264153665181655157203895657707613667520159146031413167719528772587485796313838587715777631997566362183213003563844366453409590014319698091993310034152176257487153402154708182964647802811829777273670314123551699561214825611116629974186562030831684206061892583798456085042602897772158192523064436855932586641436663031467834099822555560589128407768047127331236358636995189139643237858515272955862268787825397335691580833542297397637836184168627907326842532721430522163347297668076285124270572730456080053119955125010225954971909114194430111902639428327602978749384191516428363610388819287336910688393827810101455456427631841109877854130843156800740491209255092674172396021702910769933351582013650707312751385582763922910262080320355685252143126320404287575103682265433673243680378747389460572778557621918012718330385302737652584956951911738191139944591760535677956846313545074671716160127972762687444876693169295437405892848096233879966485612278281645537109659529788289364676024167527871765634743030244686395945541057007954685925007631408104583022636898258140641700988920439756266886057520146668064442974185216170154438536150098905224274663473986878101107131295516120143967929884235771149311097561640017064682970578671400289039339563983843271115643596461735039808991672783999080487814099004825058394583019791352446395001707759139050117312434751092018281973457947797509211803156960523864262462473041340557644835177004779781063334883391845183213754880525518384982055044618995134986859351190668180823155659051167997891241843489993196970519048384767710416210207289588898811431441179197695383049238134186777256512904166403491247675695668425062245788591489214298986357474725395213441674178994797619422629495039154097203645885631970134088647404160007670749987938358747392862190263116012326496694444604648486311261895967729454900527911985543055173785111605329711028576529118826892999043429053343073088332666075451080483277455586203890960742438939204100016948385590614353585225239921762908665834972277494392043627076435428714099696210057876078185656516259491098679857726604749123326544945216048606870366245692196786448438973497823495549952067658228610367802783493059624170689649363987999063001009124153356369812418617260295654441772725042410785349498469072818316479085805960952798938184459552004257902809988861436417213169385567049262466059229579531792408250726626417674359421465291441344931833584354208979603605950312464610975694031216799740721720337232350504403262328221135804299293470456433247565806361676844147392068982707808143972878564882976150635218702590275320942348416765138070310459902319569294200770304433007588392883157138819146898496330439727037575111505485058117757394843341994878149538844119917527071691519602974490650751660236767665204865076539806602044496586186491308720522313401887990340606797849068675582027583684484465127373516082927227409650881554676466354790349770915034234638138252284167350470301069760353615155936658347761072963004328596565910697999524672252170504903911390255804998368610183310054755155580786254741850519089091049230535859894369442954748242238745487186518453410532249520455659172618212464772874659755245815675006990124839237020490225467664756050710110483330571498466671163676493568179680098321605676911728532275330695912823326602330401904695924196305866775756104104154734902297694386636022171027889251649012824191619996178806446847268175107886473731751844721162642633705513864486830389819998525310766053652380510584412596777852369958540017747658910159271178249761618493650786846990727172396584202769541784178058030685108325076536260368475474050351947474078979910631116889988503964980448815560591795861161762526810241355307377467737776764301561609206951787415134192076914818174271530263239384812807052795930958167956942612601325437096842386540599070749855089685958768754521375597166743727963428393023039921736447986650552521710327826548109122956261803248821713479421862631715125502472805354962054124190577265931380088637121260209508169370019008387099509582014453693654034786665195516315983995522794897017590508926236762669343674020698615398008076473009487174332061761516140424001401908150621798046911073373518085076491750922668588345501012898369194784299507056363080938582313078748453020032777677086120029015498741817805221417231812543496455418426048858896571538401612642320268485855661724424339355023992916215801932513668060436511999298374467740869778411542293279300701276568806896805547229923536479634956021190292330637625776029761926031506360420229457012929920267799469430133108560419263004131084687561905509336129610516066893164878099395739063159640153694913346739169789921927147085678072406301602949348062179950034446567497642717965112899113795720781645561554472968085756496628108157500583789259634193390694145906612686370538873207363704775465780651305405354815720842025288038343727751517481427031433515753575605369019438477305314420838724220978538766554969574173472800587722793665082244440709081843164265016929072892679828031136381938232084099125443040153240253429904088995886033104632905711834727273248106770719264151129512047814015062044895682636276084982046373502985292183831913126156744527526141366959568741346556229290385857936685250028250001383857879033432137441420634877593158540663061675259729853935491191705549474299150426604610558141044806231976941751445315801148032713205541089780222155957345184489092684846081649483375020028770919327225602259435341338538010038769012729210597728200380982410361140905151194849085178714723888665288678813699091528772381972603314569456522118384944381846643477374042107714691807363584472614225574782347006899508145401146192010932113867709043647358444094661591114961846200402051917892982027000602441512982693482655599586565419525493732904400409260142635978549589217711079759987740946040753487023872550478652933391779536005977345507910733582587699691113265331691686489658800152094137907587956881596839642551665105844206587878559625783277336779760991375937996423646751296827729118096343800702105920935679741070071576666029779168497150723226494208765828894748154353678738060267597901321358320757949481182598672607540665166329128089602625906315404556276377502654587880185883896424410787788272441837116969694323650011447724394612503622765908839961147392073364014248272763969505445742941396617127913547531749572282630920441649467831113814251050523948057420279643969901900395919556336774929806283030593225926296216136173903993060732833823203647399730604893806053799315079466966288679109708190436323357670952191924858140418538266972350836939995461790626875509926083018007799306136160495591464963215441794894354745383710301812666978294524043266003564032655964909737691379674594626738110665901582840155127899701711582959248133850736042562518780295502868711051082335668363349491926339907210286102570074054620392903303100214098357262773769293757381841279801268565334267753226599522833832581319061186365624796483120831457730561663827601023176598212788318123985937141922250110209282928650446565078400898255898930921093782973453430245713292740792102262503147917746433921474199740144385073585534465639717869874021157368641545684190967890935881067138845727182929097549308826702512779451950494573276096710686213393580343921427787862442293206238467683991586387819978473115908818912519063424839044303231728410691083117608298917591676114675905114395464697298001242367080087512502788461988465779414042541963884299980844756506925525231226223031729463994953106764532542073077446893797700576479066235704097339626402199564688036863835053110031798191325298608098558082300619379885948207342629309803138733849297877549704957827745072541107883675142302914888821603027663462390333102832658099068485402849588241884350590542316711889930871307723324909722403472641152949968741041516439854643487111876368253784304120754738814264229023328905676476466123671480394629883854342856265908416444715195990749062260195499197417155999073961366441115599932227449278114201424901457859012537481685238326340753667174261886059159776946223807199641829117902423224988730984064123294811171135091033015140785725729350472535211583428430040323100746535365652644917092163013519361148588911748013179192059853530499535377851235615760973019844252342641025102228904709139418433185250363653146851780012523591097025907209602445043385253366217374145028222216223171166352633177527411604042842714512595483998179831214745723612791834721225078078641112378449479107944069450799529937383146343245886941256014859398006844516899999812165845421330324412065753503100336837288789170552521854750894558658064564534040429469519847546220576277106490851936191047349561299876721536795105822714489165852342888965858424217145796846728325242714598230504073143807991991174085627110205091318429146026720992635504674369703516299604163698877391720072337007178268152783543999213682605418357618742950806881841378118358439153425768726697969676380640265709394424617497759656318869328274953524520436521032322656599443693987372442387207535749236541646116133564401442333922816412249443745999083423155740451134467702728590635771750120004176832201261652737936456062443078015769015367973285843662325708946411665477170239957400436013891579983727361213686590679087687805130440766577255531333304169041572752892403797581649964936182654983599512166750657804451965513500853504618468710086401824427000851085798681495182273526054374892619550184093912410713441225959508309797358110725451832967647662787494848914369728571295088524298791471305459954289958489735611909018196704652347171471904856024791568921942437198513714474068024180809267109923343049725872651353404548549136741125798407047579828587719211304535936630421183571923311378177124095098038904656435424045176447272711164403842649543668637467475614760858055863697551978036130255917829668547846888047515187694225054289391255463462964136658347955118463343870579265419337685973217207259701856411022211383398468568986044446634699088024622540091932407057588184355897916062694184278027309990519290526594081420234390837474395734248295672241469972878696602631879595460091880859984829761289550175560736716561981393461310448157924578371089594439756506458432157302337378972305207111928850141060103641813524622799365448044602961164414872921444578686412070293292523380833486575701436939270457751348757693371693866234545914763560832880515813505938840413816916227731943966359910942060101726241526199989631522682226338797628141508130813662067965186028566539493257464687153428230887018128067066468784639102861949762030097747436275134110380323272574270834728406652233292203661561028404403838129565240485564218254990058735274164464422686168259776629645109926721336261081207867023199998118274968486087456668542965578850607332462241379631381972113618674653226144910796465879616598987244524419469581450404276852073153008456801809550794450448342261420737576367082504222838864040789141634323966653015007202471310568746687378581081131011456665107578140501156100241161067826934134690479236838144293101021609688106273635732608810468214781460744593173912061092902174709370230584516522840653268281784072011435695655231073533569245835255847003994484641851581428938725591914154909336422475103420838741337725854375235358392608784300227859523031066575640208645291040316550741782599413509493230629937601998383279466973479670457305973735540309295828321183946019121594786694819214528122413243700428158090190142840040382032064709615979357272819207256652128643424393943706083218067851976228619348829461829004619084621645681597278973313778525747100131594534180685815067668583971340437581768845863826704335917507413438050701426885934241675093012986396711070832630543246655791298056353992594733868964725574741567347022395494968205932034873721400606052581009017942336329400007140339207716591236355402126615003299680936205162423218136952860722826192066042714228376674091022360790672370251679911008810117896793256224070037673250508730600147003521744684155596029667894550867737961690548077947676295217825417747195390019595370928733589134774415246326884675371889900620799916115948360634695442919958836351904437081626334115059221684009126372769145702704671665101177522440310489658132292408123007451464776840075022395084449131547889008829314062929036200619165816298327926954122563883228574238465422270538169031806763913158270839125843311820987354297413007730523275220669833564028033427291538621497442752491372071653978702297487003934020019464382197841490996692576665446094401473327536956477778667123204384658662027967753764989308289457138669481175669131256113648045598731980063455798508719876323883749860562655766268701807456941371619548701697725829093450800033544128598993346317744810984400251804532492992203533081916768437544985022522106130897548359509444594753737719260278419897390589075344579516122646738795911991651293627867500072076817261503310524349370726035482365330861252500416535015657400937868146230499151482945985718478515064096206900982119929743902021618623475140336252987685597402551577611368990304903518153378961870259628297067697499968895032763370745938664181660894521888920774832854102424745379337521279840695821151910859929745659828127132110788266847817118559281526618997209238642625917072770708181275385590614803464438402984192779371002892519362516757786484189546660828350182562960676140955629046247021146903115943746233246692860242573256669720264316528820268157925444902616673871215114758316798146138253200183779789923722001567122440803152818883628185454661036631422528403091182726707109660248941637965200885469473829772127434100909701575560036579788991456323606079574986837076812564421929297906132402986319103433181292741732391097903597305740868109850767376890888818237878744821241931844390026759465947590406469306777410897429379548249990506839872271858875012744252724795039145100760852214068835554908961776604064986707759848018777412881418842536702362520593944612842904330767066200343395299160063431063071610746934290092560957947083246346785333425148644520234826804159957292566378599060327996946721399248858743167793863728145198617326882917126013597168636745252778542575128231630765117236289554440155398621470555546558564205188982354527961366706762423469443658094581999405463373687866210569805251752097147769882011425423016569962864848268832852694417043952971605125873528496612264108289440930007610801052312493241654053063470400712103865706824591094027059947718610798607693068276889322702875294155985860442303988167681713099025339077837868949536707616610404926067933259069140806644612437195289543847919970101103589412626468501359424056055729112540387815204317092900647666158723915791928182656178572537802584980551269769267704350195180284504146625236652416318011463213782915020318701435694467330124288829297310746297876535420852115178267965033783803088618302388042508266854016655158318897518990394141566744731591244118445906237565058909902887119917490049942859064295373967006132325297601445712554808322374697573611914839290366095181978825402186761787733632294586768959610918987092941823906744027558261342907727919168600968667434148820300011462120416702345706574775366850800616967353291145051523862164201884654178689301974357975609676034803570751560040594705546298742313758767109758036550836307008922610375042901380069732499440681864305378533204604755986514547525530317842925059006149529130746011745214484953193784410073747470351373009582516609864957477605273293522713975049443668773913266978820557263392716009439633897803855567539018627025387874571337801605299666054707401170712929601015235418087085586953128795020439837003227174746251132310135776030695700926976853720664923473860072616799620231743025707752839011771702345374858000932048637116357728790940904142957092512905695909243372815819287058088328915388800107964163689097887491067625078790948165901811399395224778337230749186023788967196146624706736651568276612015075929696512447135879043812364682087523508198991287419501278680374495499570310896449192802783236990567621297277766374055681210898331894055270302915912635915253699192861228059877661683675054825858828252389034890319876571701354233300063335654764293977659152913518889104206796031575841525160683479232374377922569848295370237911916939231391398132932662872510321610736351049626005840901086529052725419871310168701796733637279525241659963987621139789029943185919002463987527198373289275220279100365271541539631288106121040720117810882213993027930368724427939252744659100218091128960516968083171429324067526865629306117450249172857945568705243806332187253402632460996379491872858086492975822561194016819309747529161448727073420744457880261006581695677157046850223992967066916189604562681542403887295284401582749007006150812605951288325900304249704955218969522311416415580032041474652469640886809682887114663213070962977064354130852772668392575506140530355832300336814424254856602585111766503328055232463042145341801502421211930358294733744509687682852279751855113748714730250514389642427517171394845701838485775391424486270831174902866664173240268571368824378349627197479251561714659606230678097517256385712060358309985057651301774854067437048794863805206472908757143914121184706624685112361412024603901808401813292955339928495228474790743663946952793532473568063957005344735563972840083202852915089229069674701219507654679339559864967577601609871170189741932950514936017425979472428481444110277391152871227236304158627975047385272074514916604537000885119111267711880765405569982270545952829946881739677999377527001544557039993998277880372967877759512839892266895898073887948040705264732290903414671237944813075979147231407259243422782951056095318741282851967445201250631016080057310813455679964182052840305148536147985786698369426637594379403464185519800741800912142103127590277911719915350902957083161266996045248888375554052509689565730532731869567605779446528486168897942855945037675787182581984649934963178627827800757464459938978009831798718165922212664201777729478172793865189648219913193044073464267629405275691293209798813873689752868180497482484622818691808326644732010755016702004470318421981336914820257696914927737869885361865351879486118595993033535787922317712261185756984211444150464145020228873138863971218647628425007785162014104370683252941755348084526717686229722286018529974951183217318402141990006534018222408400696454862654866149638729505294108218154500573668445511384784351760737735406324336236124832229606937672053687816240617330328463006952881494379597585628981577994963295240564327337571050631057139808921034525051303799244273752808847591977070955075847216557228319808870686519006824117904116684449829120578021004420618297655486375721749898898911047023888397801613840706369872456666531582961757275585314828806955682399705986497693719146504423374820030701178635300887724504463588274109259105124882343956464062357105481083223563251038271097071982627347074015937728427383770510256381652230532061568588065476020544808058650563566118597470719302942630486164947326864830664051467406173906743843111170213284517376107878367183383809501369118235753030268304373887579518202714779978644799791622744690529877826702154495007751133623433013109811735704580177282411209579166486373596839591807158142972949596041711721455870762183716489290586767695885327014513608619736932896237815942870516073046617311624060904619683936950407725705859398477691676344591874962793632688302817883296559047649393019837955776760232768947054204368497831887227895357622702555485270074791021821855472793165623530086361319343733743012136971095615956183555778840684658232507336448234646874459103646650103777409134172932339557839458533058637888828540536495622345161622813184227810248052483907840847275932990970227098138248840036604582422734277971408447891281567879753894549017351953111628170453399308972529246328068980469559487183490457238026627015873408326930662121147064316206930353089055639932922451078637796383788221103927548584286025066746056991554846021770684194444725212297565143997562190275983252329850445477032481661915917998790506845415140805137657903297014227389814878493748058534611633674512216312631510500822916084032902945168286340325644843606107598653724646343655311989203418055232089961541055341696849870527031116740698543860251856763770908688312696580405576953700286810683282342446842446668390685948629895086467179899696989221729433451648430737234998709359117978651454996365178177558830039402410744470356462188311665606530583165304031101217933425345812249075313276610671759245213814133088070446239261560920652200614059140320185562417730340311205587619085947008221758271715053864164307016209275257763984264970000843990057654748070201942962180392444775689256278041877760987404098715916539451811479334186846345433530734518503183164255090534821783579426453581242893591568959383535723357168610310372319354686594693537577512140192421211388558575252171309424364884308258284200925094311234059620553185083158786156002477940216696731022993707711383289069988417861531620936886460524746851136930553831307901672678908052593325203133530350809474994299532190346687771203183735015686790933433246501002536985754100851263643280309516101970707774028272704341751418659376827225191086087548554850939762044088373044278230202036132948780992047750921573632839417029294212130059691413935248094567955178004076819860100971018063729059581902321586119226580675653997135012531332653474541747799467179589939045168700329450705424120338777816530838517007472919468789699210427368784172889198705158515418218462671488248786043286381473039638433434616134121771191243241521350438699717210110100951029208189761183070805144721831976578388463394365095821582531719011580878996872467916267162173454979773448943855395369293114926306473894893230270244936690472145111768691076640774042706475262289027440112341672330334401223056599996088959823017647033198580137186702110362189602693559394690981326493998014883665441665098213249138979320474525421174766874516749301410180253847071444539853710580466188818277423938556463773935012620386608411626098958728750551168862671387928790688841027000258478789505015415198684540934750290579934496240629263156454339456164424316650869935594133264053150178353989441517720547011446163123852519537025927662784719881225987107039002086457002543786902524494553951955935291773358927422261747751301731214842615823406510804934022712018926085662542065463262009551387922292783208428956904556284144446919525266364468364534757109755372837796015289799051818282817739837228288166099760112962389849733035630316771013855996840246384041487879427280121835033512131314749116186056197831486181002303388903341463124287059016648842166961793439227842760403013656122568357936936051386683998441290599501725618804063157243067604874198447925252071899277621023675338075511431761426091085673558242355200353917602460228213920160270387145868755785937272042967679028248027007836456416228322875552263380009135303461360399324916649337382159543133707487257592236854378293376149145725166791269616216672735921304882020658891159325794059144509372531645293946924218579551561223427117487658074410245866476234168544141851079194078204731488429307938794406973394317567867278833954179562562966924553128312145378810241892050589706997472471767865070619206365487531580138836562941501620605968514651244922084278353899370902408387074084892533595966955335379324382693023122934642268801305856660612235647593855210221441364801980776175570685262902166857269854448510290585281061070617257120142605081171866780892038637878297950993992069889382460624100325199945719631039004088348310551259804914326628283724317406009855712120595802138547498450470243795645499654762266124494096874259757938792887505761947050289221560621186464596331750098944321932546021771237335322925473764202211115401906757070309718074945060138237833904956575894494002388422764648913696686186051427921448737674388396486835563359395797501880362145235721476851253667729042336084533743402775473633513880286910549728303183845910067390219697909071517395156240079414377757914006388853417770639300530984503104398016200689087756757634009337460212128650701124327885973143992379043511031647201099298845249801680597794437590870291152753319535892720000034892349280239749261547911412465769289402646174029367430552539516560214591774378603844151626081112280938413555147743065345866983168988699896354805258206268822691040223828099779055539209260024013644733734338308602520303927489313295875741808805239694998548618252010335487339054950127807773792283712786792131727580901477416847945304068435255409835915726535955539118344356859141625055467955974613903336185690000578178864796321924561431417500682762869129172592835721674814767547404265775711757880998940690242089307195190382232900312755979905403223142790758968264881700412955330119391206679658096961041340787159076491879745368710431068612492302447939579271794039144918486243804595594143067291420862005950372296300996728794931727906989948339613747930587217728179189328836906131123657565168392134696612323811052553723407352563036703534415535446862766476882079059594109479067314051524099877916119334282088827391224461347721120390721690119202257602548248294059934419893488623416772694846796016627566274830147202242495781227671810567133537641710325315055666901309008280902552178184809033089928152828157737538758459846099017321864779906314104197118267201853692847687756842583019176023615974023833130202932993239658977761849333002959525196163321533010767103765219862967537971073981350153243702318053265920827539224309198701834828854087115761651674942507781311456152557368043505540893175548520869677396989245873898941162319653455677260837687111773598353010887057057006990742436439527029436234991684239400982327338814285904244055271978512589611329070369120128355165424093238370367789945147547977811561724303768020763855216263606115521820576607376335462152026985052533591165017656522054533689540742207363126343079252520688756931289165731507146995094430231057087190882587092648572808602051853957639604635383088737380360430140454665289605405763184848806102140582827739672922712382425701028066236635018963441911731206535414993360714659170336284918461172632506402387513170039995322777913380332096875339445174506998718233562530333034558793627225239777818506170363832517209975649751585383553817018137421611629036088422563316628888160285898164168101037327526236220847460478188221477475071576630696260135959221287801096000851603079592650256021889201596235566284018102466561236539826135839654592277208700141005894349384765802567002774493812903400282574819022400068079783183524222721684432502640986910525364040770064531277846350460731380223351229119551740085515738865170855096653295236890904556774253876043109925817663259108901594148850551043291115739398818849816749342953852374385350037779804739289364775225757412637108121991597152364348127058991294726003737835336497551360800877645648834213837224077386939791538626454070112855447237902156970932331582211681437011368311972952506883958117904516250288549847546943306173320628732161584686949817021832005407662008865938882813511726312710839281873957108559038018624963529988743986899534468168133275585525175447861833728568652389157276510967136579888369105458673267083839445150434088696544137285702766964071254309430025900718118379433283466777352936345083940413383334926080637287996091680480787540745011021610821916116555763041564649615023052762202159217119357201214629886728413912415633038890595874047010194153157144312016715652319193508520573460135829004517284664857779883812248826202832725161360518049614130481870615531899786723915856381143699534014468952942074406409628032296542883091189416192004908541947818485221180050737263412916970078173725660514308609925587620271338100126048815258335505194047481640651177742389362416836800750691592478529160359744038473631395797303650328087784409191290252572174751607767227532580686547638057160547888874722728480974969670342866123331923128505937958028835285325866584009743650078625792792620578427922741688061733343850954046511385554757420616826511359672558631205247979414431425747913311967441463161591804692722903525842739156116949230226855449728001114613465421351229216887569851848070823527152665234282114398343665709214170399839935397504380431825071507541965273861865530924797019205879902438050221289177153715923586866281226712255289527444846101852120739219804527833589683187209304397965677452253831317531865902536678855430238909373380668345051539606789186320108474917260813875382217391995606143526455483461723315029375293443329155351844748996050456060281027479017130749393294591522703567571227464845182127259671911038805106496401345741093078836860070964957442707097781840545459096638254076722107764008933600332686819140583277110024608566490100796902025261053351708812021318372655991868948535042926846548877329526515162613692509275993725833922422849970500997956987579553511536530148170263110864892652551338620014866540557128073207193064322039494246519234524384319968712276492819593494868931639156840880964488283656758484639233364010268634292605396027170684235418293938072472035423829283463722031056575744543713254619848924341827742563786557363429689997825161936876082171785754757531180316040658580566166117441022267383523360877454771591037121183820549000667163223552161468500750615390796799113030281974373563760505248337098597344129735905673470755808177465287952099569737996156031103589294997864175200487229429656953770915092777392345383501925427943167742446108760945308588547199278761355617878138972469243095943692536242237790489024345428798738087386989429259342911248594791667708290622887602027682763929226084664420717486630887111635028522311792718308741167733166354184671178246428965268200610616266723234052625556428511284223861245698963547881393211177588314162226732225092286483283985268561956662136824123239824735470113383156967222399190565938105602541816497272081500606829456184710871318925635704766139449090104042448798897232573262209407913677264003185630853674896915359484786893241183926065746764457955919256623150686952536710609862741469765633655403908786671895706891349345970898209615714964292109532231856278569323537833201008732606097966416183072921006475831901842525474589642101310081794287937284489881831345282913661703000285864931680756453282835409903496773064024257548066877216213842566980661146042066158510509202935254893180547829618049864260930860921791795102770769354153881636704537397102786672968734971863405561956449884200196710923151394685989016454677261611169975184392341367376820838848881860019481262764788362927700109662429577949384160260544458624232741184365165841048038520886950986776716456521413390585720300381394518000056342671165539487891652909160442527533512796107831490672095195292919998885258484587677715784747015260726882466944806802753548272856434125721141028646833561709179884881136325538430220278332990005281830828897108298727029652885234383443284670218650314765246338174276855573309984516564086454250277657913017844067805254267233576453200337329038356406772998848955711615606657979321655761228917385212517251222125754319835373471380115824355402143382146397321850062233703013460977944361642001788460046248143792427183451329664182498180376172727224719065851271036808897416286796355437271248989920961903886394607016884812730808003582963424156451958636824992409471991475927932092226350097307692752216408215476372331996846163914770307667259106628696557099955110890561773137253610085002472395801467930560111968198618849008361156733190993856970789881213582000182679309469245483781759078380640961679872009105838413697052963720138257641137023699569299139814315061965180978408235055343238224713554517471458030844434174513198259154999485324156322845210660165534322502306003576337398727848694246232982437997554923334193184294133569019497330234434149611465618767065214550675223374232626185629398658361114107215854535466673380186554076705352532932165576345334189546489772923753307876580914206993760103344479515082994590153470732876829995056092333945776760292491227439756138085623548721770595114010278979324070786855623482846730992877840277703768170912877871687203010602015081092044592905053152348255187033835804686653055740796460886872915801315691518252956047549270029931768297422054372813290210938104527932464969695793834850493446772054026234727737466891420037853412916382188803234376732654008979367713112333005501857337342062787440615613886443734960820730789415831241645566221128917426242934869050117239939586973444607633631608716482060722544638489622822423830537383097720449733798155789746347722748306685571592848250183715433049576606886358171554785923352869417095660829618612075762932192120165128260564830304908102627581650238850654479871877268560950778942723027520637733499530565603925128688633362503984634680400304830281018655785671572105178406728410865748609145334619637448457085385984233768807842797372142408666058931726118154569873611761950201332308619857308570520079715922121385661808954015060839958584906190993795266111741557747976938984508171137926009596139598475261376349503226601810590846575087016733912255764231407884526284719742705745173923759346174381536413953407659438608591651210367437186065449088144813031230670420868269531337675156757706771914682067135073918946554871877042774311870997046941854073288994372667456058833894824417034644531234473562087942474210064770378905126254198811905433183127096446819971204197005130705447207486222926889690988856219213861655244640449990712075893602594656273590269671416927947052193366412438867524848325262553308108189029225047200723676558258380776686766870917667311280197642526537806373083863434149922295940695124051285634608907948524351007537236601954566490834162174339820793600277337156988088118586241843484936864074058028144469263945461016669629385097277047829938060354240432152697301100348382125523406876180137748667809541422588678688310071238326691110586806408467826658577954236774503983365620788897376546815307425918276922515385989907024274392960483030435025430535401102832860228201379186377100800643333118807475392820420100355084703559941775113211669722018017355321916649908772632970005898003119543602501599091711672260255710439830991538777014137738849330933904650698047084978364866162725161168065356485756738914054912074089703396598516257760431520654953109419050088091323353362469769233484549663895887667112287266699207706187644933136568103770588221909093271772862225340653245972022282166522066110179711718222595239009051431191344337317875103334727221901087989556476048287999936118828896631204313089445484738236721011405964240802334358309590250294316635397841292174425520729740895158852636569391382305072751598843085242864124940167209207711566717048029807816647128253242821702102108273271192298146369590682822769503876796789484418698450269854156703165487461835590959363930955521923982399688065643044316472531078291974434469103336717544206011089475184501086517745349851372699380185221139293736141661207326480736383302351127918590295775310503718185944137332797929280530750636779249927011282702872573058649077544467144187422415330066860510573275498758331417725017175482876981345919503561923038410078152310638915574608570409550065967780724216579059769633139458185252038468026684883158165315281599262959488919536500742801297912543060148473981314596152033842792453991839063792407991919570529711890559488285444112728000662135018569714233773659435476124396213940428920355518847285573458055611077980466594651113003826233781577841488287999924737225834807573190890445350876969490922869604387322120836234874130080497837892677705637772774989400248993522326926708070262274706821227252872492106703728583802364769161693632930054272858904988991785911193002610170868416892305485346756580958642152006363998380746844814478459142377317728187426902519884144068875674000769686391799621197479671417139111219141575051997091858353580131526908438242991101680551716048543081834392478286141058333577209303698872557501537482243170672098417463750565908299445494187259978537114838948852937843665569845941539097339971669130997285735413349715084568036606353587954378089933658985732194399716955671598620954480256366721559181900319732088827625451477408152378964390057522959775588957034776511304051390885868743732071181754452990204539545205352031063112503317533036762533558645417013791570239496326820710299106975608157451304475525029008341520224275173236351146228751385653506230718369953820856032972002291638840881049945118936838471221331413245458879738062704094835490704588375840675731567505370223983756163680773357425279009276223759686616345899032755490196115758897601966296366264547924334472858476819532052781995747638719923062759257211718573156001621062849884015145914446468772258291538604114658415230375355439304699191730939943244294125607168846484036931008279187987326429725483076966414725046634044168048455153494037887169228797336590659723694473126925840392589036000282519131911352018805164209433356289342816958319855873489985889353711837244870051640529901652564367564647845558794583378857783779143811097889858431180694898011502720482970863028622359412273519833034963885363969893793777287507939182135906845716239599139398647106970835383936987632464555414874946450971843173709015259743220641518900755071269602190033365309135209473351560179309906698761858758912849885541553149161203589592434555511878543865152159339436271723761722887397397782960704276011270217773795154639620559994620320805901588087407589658835396015244110292265855450418794467527197334946526857132088543283511932226158991939041420191741485727365952605441963879345856355094500273377824319932809957789832635557898503337430313758614987976830826270107800907665107171633039962915724491733980136534853132353786474791991295891876867841361825825696920390462313312045905499696290279849137288747686998697033151569963275686568930611257163423635964681016717599338806053951595232102106566746703936604631318896130578428042213438832305522728289639983941949460095240563185680425756578045180121284646760797142029274574732939228392888746605948616617075118054458557881639411746566046921364745449669021485946710851619888686486823279770234186538942966328580180218023589080478863885163065074368663351706921164211590368340766699617356432062974283276652599825987858397953046683739784432022849573984258956410189529546920705957354893975895944151137536189633513614848816101491879723646160899548405100574901762931864388183623926838606716565140437460543172406076364300649343492741646166859296687525547260183332892472673753746940300828757205647323903708803903022576907629668497050015741401018273709252795593379394858325670266034330567759310398440919719227180798276105217144298994492586031558349439415995137841903385171330991177716168223585538905214437974620053512610556172213632374122305024266156618666213997278469835575142288936868923062351409553017759654049989533394838349395350667198506673184593600777410242851388450497525921678401155271270315883906902364516840374652712491113406760529772484798676681928313883189699521208329446198178473125831097183216541021244973508853497544937106819920201200887364454408231586260830801343562944572337796185533444337677288424044284203088071965976692555156217137984466170862458059531115969907694631989621579952996372526595314258687687481276710576330294129528200527386396013034052044307999554561806338118765134007334075226751877462249303956685725832540396273628903937073509415502844297360320918968807639977179244375988018636585541806274673540755301221195083846307185180718486324914940359947436726215585983962221926243044523406747500119112948649048500388883636757814120383038134093871610869079752257797405622997840803562763732032274153398239409421472929267736307968177909528715129431266518826372354840411905408671663809826914627761740324411007153142627554681047458008354136419737890678791233563897135017631136028309539865884196437179745140970270228286013470295967280732639722078575107343952097908875285354722606782203466156204847802567756453907684607004719036222454109578029856831722652246986154128483113596515695321614433062551951862220564491418861505690514869825673336391302916551804023007713905804496382935124563130278131118627857157832433590122054007659145557783031765231058452958905294216135671343480815381704315344482211674755038500865135936504780028512904673351798925571666078551346300981840340683655069974588229793984404056785606666690626188777691743930231077647847673817153263181063689960101452889453395130046340201701976360524604618655920871642634309663454119559514337991287242084029026976163310596048206357202104482761814922224091985859646947025962991902367789488706151579530907061703386791615419449200669241277950014403196854357665976067878118654903080083355205472877198892263707548698142461557737035216179868524376292122194500253224402482132521107650605466865278363749168933700993988621940513136248999039761264223263306211463290925694079684668620348254844560713576841229563215357535970668743624518903520340137437641648077958459208586711295805758582380514997832321728449413266727027877368417892482135774319950679172502220945584260099280207499544974792792570774662920743308259071262811812840742407619764887332490598643659780537583228895403378613685366065972527935459735943803380442995438795461561779601062692046603873070596918024636703225255835684129031704749408495162328395404803877218193298521054329242463633015765502497027124404698377615656533719660032504200825318412163963009220856126305831426403608636087847504594423689537251273511064283154319157776118114879963856579794363097437619098884879921883234262263042064359552219863463220374210300599490989780018585304186557654571440895062190199339114928178858386391248453624198434960108257802883162328028775582977187538172998835352719172150945574143620300863339117035060855218259228983950414498163809010732927667927106786504171791329344973333804838094795408099184666073852520292893846861138299126420369070883822959813195837677744638349574028039474955731441360502690109915379362816785665135147956597591943125820705554647796821847029722671543017613681082754704564752488467659816261057906827100665062572297821297855194658273750227768810740159287570294344371644664355534006855712317660254075977327109652358088251609809566277119609240590784734266166506617328991840089291519402769124450481109079395379243983532108409625548409094788036427373908933411603142010122718566827079775391980006205718269342306708169775855471768360487911834734197150616044669828855311443828462356304786714519157416679907198947437669519239013683711397963525851823375124106909683194907312547945183596021691358931256798487616523012636251273536871474157714936801671119877590693616673448556708982386900555107728470945386398689544593098089665954795324230083341851519105561595455657354294785027780271505224382867612746615727998472222419610006926504126936483095417243602366278524895685608818723522754417723409421788850452490554180954526482762504518576478073810510672695439564866179456101270654998612587371821596892393691149788561017622412523556384608617944384563351481601446967745900097148657757572361911864137547094879373244780001312032352493242905563016375951682108716561440820333807936408521206868520212248428352720709372461272715686522900298726204328407377914945888386999680019454524254895425265361835546723423988958846517588230813187539221859101555761212263829009469316088708291487738010084288561669454180565467553748145732434264498462266669156639170794748047171491690120323035066425184204153559594384031268514771521053884688474524256348716694941066569125195809441338285111606551418762425392583060910480720980031208703951606365678421178075199673437531374876559472745213108518223708552001655182336283060579872249916475436150966847432559721573827381549374588326642323603217163556465909102920306601123501744399294814232228368501908465812582531118034783296149790016713373655547803204282048173272130153827324667401333306333062386424553993892745687707189512624965001073515000872523513284622595267056549712436191119840820189307419896123674128978332724995135581729811229080994232453975627866698184227800656120536752618001663448329661897073033804401816947630139362621109411260921940295605039293464987395669862085422400648685072188728545154143609484343159153962817745941243578880490895086008999186822322070803752284760519701961829300034761773938432113506707167585971005064002820960677149600607211551001237890013538476754048642836837112856869954143251961651162630096360462460847169920868883031540367402428887080317543266706705192778028961651274554665267691081046555493422222171191155864273614715865982073006201535734466136124481810801181463189174932051589726445448988573100633063257235814578397540006218966882061768228298538948531858162262190799905022497412150237021823110580858222354358182741906817154391831665717520950902866037342774468099352511194016195955150175849746416998912184266158581536895488568360263550033182451442735750617465794892619016574170965139523074052375645652065914302730045315706864079165295761567328066618217391105225374252812971829179688478747894646669530764234120058175744776221275106129219385765907535009748322924171794517717061330724863558374934627335946492009375158117462814125536311560111122578836976105753760844195575141001141405121640957977562609372203091423115042175098826367144547638677271002323736785172790629428101442925691520260493817391635092342795633697465663772605766532302369458580324439673407518576880153707756563263959919999523900720302948381203880641920213121059120153688839366459570394667464654126693425527461453359779098863793554512775049099090880243925947247311442960809497601402342473564354715188102484880791886017525265701023873819651137648022954824989400667018093741491986825585660291154291697886527847375074936495368460376249103822576263775253865865630388604141975247696908876383475526062245536719005344876493957847999205857319923546345315465933200452020222053136898541894034474715419669110749305073629702041376538772732468672493603750296302667378359958883270285345495580468034948882512992586952332224045735228644077268234630146469456287612276210970234575244301764739109344696812729910264654769055512322561263792283560143804375812382180003243316867238511513357918149487933289764424512651191776783066148254709876864326318973950685460968456090319851328358068903485260404178046626308001567628088232403400283064398969839624999241714554592798768695006333567435414775665429070853533458667747803493689867942140363356783301031894396568979711080373644789402776960447189391118113724100965898673523810114673066255198038352706378380097550852014231216599041612325513616957882489886167559316980500049525477728811181589519693759916066853596498786273214831763169394334381777624354392639523470386007815450311888205070920154017839147423228218085538630422661983024473115480744422179911942195794791312643815865010551300234820839566794261204224062770292052685400074268749018831208688206195315780713183741692237744495107553675523683122347371412934078017464700627655298206822502898506228987999126271074715913144426429124785418450305066284443084763737191158689367795529501544146144805018321915235633931423177141749039363675231896607488130688402001499943211920449534369312906964675624986307432924521134441468943830858109235029428712961900761309724701493914139975399930532075692700528789461037734484254854751453136931347684422926955791407736408690641177711719259964983472077270273936227011340828311666848191177540963844083357671827315309139979056504263302537596266602914803211233488529925935165445737885127097841663941793414823030025729876851796091778727606559461756493057617872538025716825880872960829936287884084057634597296733999130148195565402958983962904576747630044627591761905636808301986201921986998345553740059869325953543373502191525527882012734448659917849680121359892015013323526683585233425668603292227915029740144455430904029201651926939878090729882626690168319922326599142346943304302634736901800406439613051556318283883125471892401938774658077367586500671846591732389990504394601571792415230241672596353301675851166946884561792366536870028726196798283242724460404903620049237351014581379032457285460671238997297350833223358449499253204578174927832108248890643340156040186298255165810714674671510754542784097350166671343500640453774083337376519209179010930188074039649541754960937074302416073131483490405325405522204776673252600718414186856717113710456251127925208923720983335847404507914941715229006569418304276195630543839541669580598423820207586962568503332401045104167512192103686755179219459304732610770251472057991879030591494145583248500211091633871391522060191347007311692641975621257995289839545365964739380805490228311406896893911480623726057314986401419313367519981205123967588421217925320199662500325015100805881434284121594910386806935304484703667133028979167414369787442657659473179529180357944421846419355761874935791781813001094854856006082930083562053339006602364804457787454141222713956813679241057468683940670255842668508807445818034750156810485227828190989894234202873324857159085097231288359561266705279614750013930833569995155259941372596059575794769692998313018170744611570913589195831382001891012654299511011964525805191751052453147071206839996805656876214554099158937985241792192889781104957582477001518746945766743318557573425295399320051351400420065080439172869012111653723049970477893668653072776025470577946208223174684510996551019621747015562744749525468384991147431876684842144085470082121244524126370264631350217893444967754347757930165242050955881031223211514555812914507948307647230445736640879783796905484705522587750786481845293428154967620495472581962264958075007331716593201925256441084919510969244698216147187478867485907502281359975590237398053766799066459416635675822768618298234294763494867469390925019297197151126199580436124812502322193386476383372911415786706186157333742966459295613348987512461798484079896426791145781894696029939577806306087409827406400429932558484667301681143823342701461214898096038712037200900446510511641447193130666702802646316877245112650700639841403375439998330261807629424971043472511868668730226619430854853587964645436900203536219877869614160576869883418755756687048736171056544913894337426759398166228642028794693997770588229913126341578812438453053391949757235978529439097121579085092124828112388913066772376112820349641609096955422665824333613274942287371020342632418687188910592044036771153154771263678477205023776648590978380820254334259818846566195697291077984692338697107224608638599412465143878191501499617256906203346677565406193837105550413493588848576518992400734999527817007566951154536240916888586296452439900453516484443046999680026559864277360602664818506107991713037401845417866983028062477695306603480530778381707830993691391011165523969678379918441917926806352290525249734729471922202610241906422313513787975901772494696951700926710577492120429942061006600520551617996538675533181235819781083669327723933025660647490062414372132529908380896797636347075878658816167853794894292733981504127194133987734022238435626245670240607192667345045427317619171425647789098281310751356741641075441091482651360791178188237220652297026565586193693695651216694719082040901444997193413480936309902242924126473871001243944835347275688811985034850132699354755247479765152579261112508134034815158134043307854865518846748878362289067455572409179017788541040262244422113994501674238823325270057617626385672896053247671285004917982339517835929172482544807512862777855803866523441333354750295969051507790124655250434851813690121542153100997579019639555366380113359167487636290025799678005341001829793585667808758212991203050235905053965268458065682001370758098851646117886647154528968235996317276694110748550797989026053259473372162095021419559591141698833466555325394623084533410628821370895809739069856240974382436917301783780254129185986417416420306760089657490086965581412252984051619981271896922704888742554512822310264121337891779447863103670577070898897414946829950940018679762380664637804610786407107250838546068089123245027444368021062992759054452294179097468311471199893354123442646529929407621811766941161518323961251903505963025975198710294589798951864394131901285242839757946579512450601666076000417092883552730879853150842961867234817269144355399764924082456590919497319986053670869013544376123880876704504712628467326948481015192268693415068878854388522290099373426633100142353652925378001759268793357695369006850973828686510478876652160635700080801564745534909570070367481587416107240417852844808807052791544220712281547127522792216155781543346406343416665673990982364122856052000147071419825833760470020342141933663967630310753732627616729537249890207012468069709692156674943250765049298310466356159959514938185647994857955425433918090105516217166336603065643184794205124740957304917292451786560933070550611359878949642457391315990177474620860214547951347027103040579701124931126892929226835233435581484239444590327439666437783919643592996828465056206911893888765775346441478403942593411115980409506961978849444135664956887184553101895231121426771044870954618220694322739934025030881533667571605867774582997343093574594038974881716739387943184331508943260264047384797295842686462884590222056475046567174799297450929926536748895239147489569798322746680444292254464821176809228340369050113794223958271008427762938683310108072341595587618323593775082937478742211320181942204105197064531760312006155782161759622198347141344032129952727895706478843574401992972380746262672898528066742050956979813940946953163657654651081986992914780310677878882319765401729705256118205544593502040240289531550420748571333619664696835244850712237398837623782981207474306943559913496762989767636617453905047166337274629024097763577569508901395146711670152700213527172819697531063588989777223555222534662052435773298475190161434864345091777486869772292650260357091303197814954967766997639714174889555756835853792181382999671339705358651657444231509214326588598404675271428963985103681541283295196290954342561362654970262158845083875871521146348847258363596464570635333215720613446428350250882269541570322585482444347422262667660589450176999990783664391381707328694372241075335726011218894666589707177505454812668243595342305746198060126248854232525514567564648718319750524533849786167005791316992889637714595106828721744340623022271901012182825721364495043249378904927207520749747202122626473407555951913263525368209281949353767866417116631311709978192554223807064099324381325873749512139088288489544095645065900686053590063106101902323355358365983611493329622905058628070448151141344572245853673022722063292432064740391270802078542813645110246386784392304246229721642689605183526361649988510965573115436146308985339326667121978616465141540066946061523113556820357213137929626867304758788782545241244792571345224878872233483276986342274190589011141797760824146067003670190827855653129038263662210705947495995186797311537156330355088024781983319353634080316358542492604378735237744832857881947631772800803134987111519287530590568763335844083317351719298767171867776291169201511015135073810380210097108056539816124901884588408195407752875437362804100567165825426731863415034175300913948186195722453258399862550064714609762018567881612647314423049984440179538284737939840345153379567882251982281943934297220979751290850881621633996718752913642303252055066700707742088039845496218833276268711085490888663007808122896823378086206968636839332219684549226017908800405244200340777705738582691487711106119942873130565458494274696301650934821610934647329381371282280257421726362513493791330264125249060414162002129991203231540007810006095655176391387659790427806515850015827971342815511448793239485255744058126119380273657237508508510250708857126534466287803928871307521289600210149479351930319530896702073634564154097365352109075533902783882331513729582696542884023528759316656495411515700159569413503375788669225002277617264206433429448727893782365229358559729068076649901697139686106346485241335824028751582075888964575710414719015550763503307623492173039284207476380769007627843099837790020192184746601768512788113352755819073251492966702407766081458233402935231583043502540268361767604071808439845865889056581234909439317457055657669920174294203681008490648239666091799675389115543023845971442116308101172827370149293268048541984201931171941978610380303089515317526813714268560500667563393997377569415978366778569894653590980770168669570620980585082374656985237483432319232549221396529978746024283445149980178510574858142593256663857945720155949658816100481640045116406630300118131812855707318148356044253480773815342392207334528033019945000211802116981708669406742559607646305688668871623166877705150677908258142483693719049099067028254405032536323115545750114255249410241197090515995949457296644932625660223074538795803575274752178164984862928249147287241698894840388369440985026759739390499138250733392294686965621786790002039129782837233803648237434413166554641551322290892400098790745040661554000273967962755067511825706460049019401985551107815457045854686669231911038418477005274312114427932970350464131028822215106851975686124308956811285925207942299723675075558732833985347518744026596036471917577696874818548133841161903390151463020670721638156794480024049470622964992236960667561847940463385914289733149482320078750288193338109816793027814913046335594883421913179212513594402181342177109466706916699983436079118414497614168450777550851063248526902736223466016117152853855197982113133088901338096111326487204357186284271117614389503150824912694464982140190814568365116759394723715283877847209720505546845755258278689090666209457787236298579904684431835364971167503039699016036704458861754445346059262185341613401807407224818728166851939152619747628026100923825977692019181950231161052449618768258591049434673523266382258891948196790004917257617808398981522198497559796163132835589138802423079736765201128330566921736347513078282807574572735278008278897359407482221982552917846638297029920380981965062830696094386308525843149663145225056561257410896790885639815437520985007948181415560087188799165061203441555994202627891683081193828826122387650478019158348469584350097115730836899000440230464694700965727525162069803454078954822036256140158722244836174024729690299548196723099653135456707070094738854783801679140735043743168881774657805870090364493289303453856421456771891472637674778153477259288801190751866067096005314451183449404499784969974242810584222225250508796108721315086308377509088634378101123368807811231469489515586082146878826772470963317162005846423318089652291630944298593692191645834921395133311171308731940112446310342984466254095856474814707832235284975263943474673197795371598167181178008827476799614896008283673114766863424261987054645814561458114227067390980791611157169263767988991696171300486640399920827986900487729390452575692758734113591222102334856213296459922992255999588444068607934414337540560727120369252098056006199759571776000855237661575474243880952839176883127725162032265576804945203676659725701114442178321610967694972352287141778777643276438670914862395003548491138462882686688419648102667577308411665447926246536842844757322714807184124538585119055833769166473534854318023492490730300758605553715507315033315582714133093389820994762012196586099875324380859135786172219589081444941518070969253437818794999684715324676069033224983954627866070720711590583593509817102002831100214347899568940319553318502130565358567324828436437323585556482080070810546117864653316578039643891860064783739690978930795111991488526935815537924457266900547725346516440474340904032431683268075114030557816417031701105317312775166101555455628208244315852296377828104702601255900294005433383959405367837922836745848648028187388496088336846463895598017872818795474783802522963717292676304339090925491974964825766362966975079489347418668043992283790990388923999122913956155158588787522817636399946872722993476886305671901510376727877668999989900569283051217990493937171382189916364713594675885010439916508677627808484730689102320120964246463300881239997867349159587295946000536117830587226467267768222100222468745161460039385447886911001607339168845502664406269989528681192869275391410651185720483460641112238033808549553253473585028041507857245326819919561919208606540008723711083445992189935621419929889649054234891026533978398691147639025648011433548758367125478087213055328776330285531901675796822847527932417190699590202059928727651986775496841818545523682397873013177302177451785489395069032312220399971912475798572466473540207704408401667525619067490376531444819597293864384089628755141697955482998679880463825201501246815108084815296078329041366598457079005864488961258204392887813816365530673483970488594246233066590649202241425837038010953902866083572350731958166174108822950983914316125452482414895430252727086463200030460459339639661785998047879073643514923874322755147536764402701130129713100920852004948914775509362418722459634962311859444232371582607578380313056195699775035207336036796700770137611410503622980934526639942172547316519463468212474605650054556224163332754169604638693580478199322258319395272330875308196805463263697630562000053012270159761957914273542070072025121658213798094454473318937709014941276512363852035522634436194992580717591671177437422471412539854578123136646183678999503593933557040553842742324284564900152848195046419657681465302561915811829365782318256562367539359059244994216883029744875242232647747191450232865641843572070906953317178966228240708884749055508305204385151870225232679687399966842171988761793031854178098728396306980790134375119145880681378685719172036680147389364214127778772276897740049989198381051485331900071134272616172540452398279334348722161087742357250507771148525997463885789961383372371210347743366671581746157713503595641728824161634453244738975752196528818766657813896901993373114234691710765430957655331609822331225877804059050864579205895864530768800998377964754217701829071034800464844964655058144719131841917604893364208144642146244258044876190869829814539823083931336587130855243355132709932954731361801782282818893975694628323871237591832232539713011134447633280956594894102751330278369786837320052656124426012652610018451766883585162687262247116259461831401788369897081203804997569528953959444839389919971382659004460634457539219824742697335555781302146277412558817650879228435236209530473185316751947179082181353247799201053448138592346401995313177219451811745172712471362324493322696014099698447218653698478089481493444640824800412931998578486544002054770499541389359478610363316690088233148389239045837311485117180716985269607853712632266841135721335723683105327793797922171585792739824710463351658117320927664341402688584235997634566059281650170223273740575993149700296418516827102487650733473538337014715695616183818286732144721049093600697264069008747531423034786715748453717841027895382332390312792896919702371003054872412356607105887748848196885257158884508646342569569720204254224836591793243565876146437839446848977254331970055972169964495948438992090282971293429646882539899020991404715324279730371973853868184766865300562562636378733197129148777281210022736882734981986527171409402079392337985159630232644072373762197402368303020658385577963590799634455394205079377813813967077779651338863289491526634640944499664122591229284570434900152268171610422117560973359725206309619324726172993694023811416821296008755770153618619018029568494145113246241544682941459087261837259059087169318774871917661001101432382907965049965726657236297192043701491743173257189049080494966038066447221344247827661063548117766322768387712113854432712920942345932742073928034676448476562813270484209460566441130113855612478130173744225941194152117813171584358390105503473963283631101928822065323709570082582455854071490622580684705088346763882250591834962111112804456692547516457154416541336891919695772783386190555858595043546456742652742396674604597866545875595275778272280859549729335329367853851360770296222714003984229150473675615270537290783024476172306434307096944203677451191845572187172488600228117167935805784582635771373603506089435238844176730189605923294767729326031568123247023511790723299504624974263077138449365671809244006444145208219022257554834649497840624777447132962750106218606424626466851483181236372265697321710229979359057791389080842929961949102722165303417279160004053892484007566119549125367611630999361555864554242314131672346249467007086798010010877425828203756175816558216391146622900563633915623193102099432030393394530652937233789027482525925856606255219910167141568163790284853225631003672733041102745621973284697734293461098213124128859736695482799187228176341649030227792875681623092605961820007348259814294662372544008813868766633355656956584320925120486560994718378242908467459002601783681733580804158731532897432235858997341917260118324501815726264901551622806911912483609397166847400571493000253500126127842033682161032615349099687618297269386834685672440689246167186978259366027611481495129645224511785351790742797059134917659278307524428008069572396855274413427837986889069991958344952095347922110131701815337605010896470596121226422277526897420051279380204823258046668262334289417517406648198124696331047418518353963137968812046024092828391733664663146329603490436983003333981018460404791730094143602724208549145268061620012646231891478251565997216501554255915668886673028657445508663305084684331480903834307480004820540885558088343651649016312460076062061663371912280832170050231710377635225835189138975470782993063114018557786464350763965347418954120402610300506979309282697109018319537840320206061988484170933050908498450742724478823817124985302450708925348878738876211417765731079897868606876723129013211579028013980313018629869731287268169306012205258273726931138434151813150391963119160434531232288959670330102509766652523994632344711208209359037265188565765164591630145167394764520046202932931631897403297669004277943294877256682316962690170076231419823798645540429909296088392048552925173298742582309670535425549369620025559863690204774215583772959300362250487731696997556065868814547120499257791268732590088293586857409856406428225855186114237946028524649788524112282463015323999631648003452578746234762199230568809024380712540835015058830429088694115749497068677969602183541327938687394100752263560400465604654234953520645513356578318554342518349275100364073710163187170427915117281500920304711992545280060166538938909311744647229879891674430108529596793623784514045426664358886247967117001045379915528911096313644073529865512048231020084891836267264087406891005296107877498616075653700197881482667872560167362471275526732826023172773459374913510691779229671573132107539844307197709274412075927813211387836441303450530511192803481741736322502312265157777068811320566817299733038381259904135469617913305215978611834769070420438278703415514720036715088549048226644341049647055817180621429961900538907368857523125602116912015889008675757779422630087463126456323175122244974942454723280435871529747225409726683334536195332159614206920205473423649745197313015697612407078134090120177531313043148046859678173477939197200595157653292915162323841964425854949286703661173805173388760648291015689964428665054373680822251855115632070047547079477387555104986255649734116450937287615424490819289653084672379357805863956050219599150391496456312580516896587175897125260024917813996870995422243486135615335441560029333918014935455202319826673802377075540088661321446023263772906065162443362362950872360999837428845338489406364930073961517268585668841988423820939174042348313063544542772660258463808058762531980176366496125831638047106759424708488226331922829103083816781369682709309466126362379333334756242202827635244665157018655971603917464715002422564187209542607343027462120782156182533348525215996596602633174709718940012327523447371051988583216050397939313923068189576713941659435614792377684358679192020285503271086946620977393026001953070842251138370780399904188838606403060634811969818385641238545966128599188839315645410848987391967873753690201628522727842766055820035205736990690248932596812381394958929250016392399052539601225173575534320695376382804163289915287612613795640545454354071812037747597965194630920536473252648033615950479519955262507156425035631866326575641878890391821320327848218011107106085108561357956547927084855077247805570442514210468108067302290299943771003285668553950720534477958745556288736123069947451477998158134034193624072097699490064999657320290112763363171093404752979547997768169514874917559887904838571229240685702153448971606389659447861219684557256984803615060134634070074984071220172509395640018182305251987464511075919035683105708867851321261084868436025433711313868169713675708135206015392949940505654906761266784486824930997498996240329881684061333800227756335098230033477881583104770504986883910921046728743305791807553547566524514969759531337124571056582759014972889655514677734943731919862805566915978479064902731110527216137441971504020257572058142279209936095163332433971332383244098123643034943435970391397951019574962258270845710449723110348533133522001919656564642257701914723274804401328364020377830617818339912141247037041154687787203956044662245748322195282980441902231973845118550961725491921687731937606717428846792667995793198049401680402278924826783133606512633403159339209412609628260985207694128953450308582628961054732378457136956786686785061166562086381885117956566913245252167801997026663058218437504430863802292566782104526970596227281300842664956421665322861556571017658943939795329012243433178579824526416037570729811553852328229244674369103464490472734394445842537450999740230932019709138047798780948269628683519123338317825738411077701144391544301889091066090665836564314955728525894395189142382243771947958819196832485522456501734648991564616911190072449792914438298379025930764155531051982006018371035839149597606353988877615929675199246971389779808972481271070839835810651807546943061361702879812338493355095784244254094538440859785666362454997008480577214047568057089467619507089017862818960295440513842254295130712303537013129791177266780621668889518403656081322069597320386928613526661476816544033432053250506788707658674156468841192005579806368718695767052267160405626079500382615355999610430396922031752142362846308612167339170402772049753446601528547972595644691747424551242446393490753334278269459614164148558073853608627103595106757905560191628447513878135484033087675246824759095246934159808170553477386305872886432005248221479507788843836243569928930797332436570591034113101026547059020488749721958400973071645757061417206794466344686070739847948690259824417120363546633697772298455855196482278251666564493961420054383272071717944568255385515948395140677569780073658208188946552824395193442117734756526952687326128383255154116540110657509506809588579363677810807428166708990776558563284707089024971760490324817294484133768954039529580140416806097446803962348747313192249627363485691569364672537515467916247629135516273904810980301575657417468487651051418828445884128602273287271808488923943635245710524541884210625534790571417719896839628649961336401509079492936038093828940246798855897892884272371510555096516385485422056775280709419514413048191706694518594414121296342581401008410221465235979436203974136793496165691081607347999237717465703191938692382789981677429289735352564594127106412917642430736946174379716448443468562525593043104559673381648900803439034515503263547130984511493732496445163163726375648808886644172119377346583925570774176148979283255393772790567778476322129823019264302619151539299306164166023541420333201769280821187426055654103776814860155244593453406715103063229955384102476905334771666905848122626711041483687433875576277751071023459665826121310547094488287383676694301382312611656951852706962203420881536197302988128171984620690804809501449308879112331249257720523782641310774987174545349153978083523398792250572322346418282387899835970081958436283456696927650455058170676033125384708056751290489168587092353142920806599232571959444756646441633208613603861194140743785928559887384012581185477537995360447842717479329532857014404269258684784492077590653762960604582351488105229667873127131254041764155013373723329705791822820429099284148084985544205255508149563828396862595058326483690348367955446471549469975279704131785869166720742509896037292302425063975117422380058357175866189106414185259995198584062645317382253517572308342764261213325466211387915691068375312201102585889843057181111849450554537902112284156963442350989011251799837379314923205740586438833282380604376075733096134773446140517131192097912852801247501142167679386782885982728317113387854537213133284842006111967407890655906257306362841971209759796940802418013031408581511860809017220185973549005508956227340050073673389405946745879015953526109157497815890917281055244843856288618105298977875919665662186913333397035757439416965523408573003322442078482712851520659636037108019418177408004053128136622983019983660466499411714097292078787438952852468793744540161300836026059324065397612706765468027927154429232008570303277680655903403681561446658878985213528729181782995624004009336033368822070268753761427153311144768463607041149923676033946883539402806032096530738618155871900666154635250210553869123775590853892949887925959344459743860580102854771351255014872904968090659178394655945957774893867369533626223712663389320772917758332511144663676427271888287760140376885118302461358663981576689413281061726166218919267562489268090858110437203556787494457456464029551739622803514802495392972923852749520202875128104175959626531765995277408073064438431255097051197115709227385731387728755857388815250864068438664467719545129520840257696959122462607529374982868149638565406801650168313260907296588375879404277261529376295034305053314425971950608935289847579871927170968334575009821216173232117076970418576886466929647160427466938736199616401305160006518166637086876578501996140409110224201806472614105776479851751021357390349010522521006687411617025878060477670573969498528442868241775563466625433937738093564510700204685163618036920501120407228123803132081194812664047579994559432230462927051733062781728579871035685112249992132651766606052389041009505355174582179097686792885891264923348573841162447712794380747368037023506799789837208705204160801744393659883593396409299105599068800332031842272098226691073624811908959182593972729986338146875778032196919306103655696962164388461646471289490984997442285062151583679321965303834872595327697886160138386632001720205500902654712270699577261773286427297943108234308320180830914813364875556310087680013548506467513743235077690051036713089602810224001299238572096128515672738163264965304953857933728238809615816920890439809412145381346210701086644201193761793597611724405356466937889307872417307579476671322461070351146426016802849324775791334250162341381483115837322393961950865584193604552794231036999728992760804602863661810434888189983277882208772055182222676321037973962713198953270852582164446034880826829991770250256894109981744832630193173860519306871299594637823541109763167097965871909906070408019413850035523829215194269817344821571788518396584495476212832519110624352643843766791849757696314260805410415989631259532881975343254214444118373721942227506333383847762505895659270077265860081637499517025945341217649914641757169515935350441876985916398363341108101398327359462392992857570426051614923057746237247107368822229091613795548467807302881066723303949704557185074068935249256604880704101645577977200723848632659228513366524920157500289462686434368544092512080253422835412583695092593510098456947688685759264832589973680061579066546987389670702419263674184816637554370582384163023809575240746123941226390401307698605153327514264909561767675365203324928728655266105355859638318539711735982355631885359182265903465343863972413748567621521654318198032785242755563137822951115729430886341083665686435731973917769009903204682065735491839765803559025976846451503083917154772050941707815152562470757657593235966790835109804447624947202573656377544200220246451468817716926066407957003932137628151586535719382068723549319626270822461350580531008914492013774936225508944209182846673157824602988922404056367017430905090902380499446940482919486612591614379717926532982121254583557805908589247733067286110784273333517381483471652210672969665430272971380919493404562846043081699637477748283199566924334093838817560858672093013017899349250842421296822375486704535368704783889405570559519641604514814563244852884248124678021992285224324683607075659420224247614707359370290648031712046514073213247509477971961086625405369587959404868709230182381567127130007618542150727351356456836021284112544474428417049752465020222748873313254147637347183040614754949842873737368296806793180999573138003195287614251682932483752363573741676501288217201258393263905432776186913470676761610546235948871436564461866360089905173640199578658680025376823035095897941054446988445732472667706926331923275435327040761072069345498158679496976757830782232676315607177448472707286630750953431753668972393223613168462620558044783744797340398723184722975450871060261776286561066342793547499579771362813773648978702113973064990470432828437048812379811289548353443737998945439074409693013678225765009857800983624733645647249159354330273860796716038236601267816628765999620712068508189440025176622975862031006400053499463111732548232139566723281817602351951934667051644280336157468327398286943534330334317505302332660275416054319412810715075694184304938265641255272094678717960560058396834343344203333569233019821835358338752990896589213565101281012572905617791498347198539185037897688511411742105409406121963260810495362264920560248471481876097664001224407407819161910734878215596133100352131693789827929476268229779064830705233802163677092541909566102964260687175539642358678835331083076253564202280860140425574379123366993122556806332464789185208427490610775078162542828792506870744981323800321717866183689942835679556693630596585338422365556808822138366759777191082067495545743700487436535263521542289763290016975643774869646752485554874547126874281508442282348703979443487606769934371604924285439606574365898624940920648740809918292558301320814039479095411206078914325689607554034188885566450098003069064435822573740857872215000629020845478223750614786027196999788526749992574985456923429065831295725265032354673384899531790102660928629946970373061058724950316022429856699104158964248589442080608138185299743871122529450854348745339379184393941757024863636455007664087314899465549770815923017543097456017126903294458230310796433569193534082408071702962590972569265016527288578209002229992447873031258120957210804363469745314456671783693057517002348341304346271379787769619882607827131040112055764381045798744356721236684204251055964947077501646147988000590130325520987055227910761020591768902650830029793969931846942847853373231660293855833810519277266440138651635602577883217253733807951691485720748337905047260889302959110638502224722142342742792279324979156332185392384958602697703628925706408536592577730308396735892531966071518663052449858956527117896443320781498139344169865855962233643588594756374685757448873172886972482939720689939283024183417660601935217470343786676863831919633134492438145086566194063102185646975524344740223102545522986020550160851726404957958510078189600406735990678876630579128563355230993577326426660452556698643387614756715160778717699043280119300586744083962912388139447534917551838130876362775014171079611207024758532413289205592741515394614853076023619736474972329291527871678568542982858565905377642328164500430291880042447716201307957412199780256662618581033763660035628079956519461787840212174620754577098624039898493295378221738233099417570435606543700497271312479592388816161681829018967603802906658513510139512011249811017180953260943540650336855618162173986266251164138987257899844595996198206232769742411505811047148095119376982343077178982925297157932844509822162149575795175372605251612978990292870074829503171458999601084043573778717677287734652957569470189024860879177811041964901858039338713997404067754996177910347429542609680915011458426678587780707568191641430487104876487565865385875108280947220640379650268411443423243408849033122539113065675526299463723745309195876559655263420087365618748102353658002990820316730979497525844347580178723157816006631538907486140003123546092653975936737644893832126692545963879807161769142960417755050519140547268576577485154911930216925730977713768042491509708922198816479271623835327369052280986587748619045747686790987298503656890975954362586123893373639042471069698747466556927049767182582850410224565613327310842010302441145690217656570062286081386531934310972364812878443163025751359828921246051435636326042158820057355574959681595756924935428873629042256379298944959570019189696080966126822120073372711872839992616882183018575201988554602682960704935340251301927151782255828189839844709966371733092782247589305290721828007573689976617410998193649077001802094257224699896951897132203418888059078666688507699658797233393154777789146500306076981527773034838035602221272077380220749748501122841856263141137066536639305582618039963802075725225592504730765473560487026661352819670771313954667120685373921602026212255104178547595887125852392473198321064632559285675192866222607355349583371173225378027804900075918819087490806050150882863152928614528993921921815342093229833592114797187525717038136583202811940844140488893818862929807173437714478237946764025072277950348071027701967224702622093032888416085410064587242846915705345952776376482178397836019679327284291122318599423599220712918966633605966261071322609491832065426302660345953798569330426714209373793962855541284787131005136399478134838144582403996262603446846550427738791584797458317429397098741327395614743779614619428432258333600888176593704815357815661487732947281017807147789564155608491899722823821532956248028248745770526293945163795055479608629505295469748625544877669351593043712580092348387808817644272054396442625177020506502414829033607170345611704458193355103652529452686831073641329900249043713133036252662121582157821464212685587135214855646454484696850243195405093610351384622060966064533856249189006744611501998026957286766761515637420757377324645498860930260815870525355383526605542646646090953844467995773549629412598333108109664846220735922108384244615724623804482771676576618652812507501119886860879992762831403290053694784752305356843075562029073944479948604131711275049620779330974094283868000775572248617712103787273164699686562497112283861356321855241728250828753260885047582602849387864095230821017532996169913546917207421036908484524379860813786305343552653775752658336535178678361789704990314695739937019458775518349421898870101794829550201645369905093900826198901321282792944520653942070348960361332054631722126831238709346697538037721275926791553397846713804418382797870323431442464660470024624186789060404670130950856242844299579097116886349829835659277730251484829905479996133426708864707062642933370946616981433724072646899913037386633306556550553762566012219682231908575574054738154481126662449910608163158509735551988216764491981161810611565495655124650185461431546399262206022726024798757357018521156107919383552779277234302460064252485627474019336786869522709024451792721495233814554847118962472725360938965987602630498952532038037542505157440782056452524912829739754263129248533592488003352072394983466309265438811953221603707213611383850176766985419436541825768075785336650194060711118499917918454643318439260705298253321749816513330129825261233936065122826945657135823887488523457597623960593802313029806412728947145697605873308733859316076661455099191674259035830187781747310752228537450697523412272447287139787795539668422195317170645404044370036602276911215874440730694986474667006981845119690579548121076349339194169059358641734235380868315492466129775369142670544098076857406206016844508705795523329748373197295235477032436774068302542803704174472202610138024837397941086183169836435940353000693613070209922017553779237812738068091745518373727926702558807477855814455360775068621507090214315257068334378486125214510299474332894420553137002190429850750265278444690239559828347846148704872213490565897705293700967992925524542387210764306270001108165007968690797905171802712832346117516912747742261509733967496253028312364336387601202726965172065269770587643219745259577099783390006101561771119810927531834198962306512206649638701365288151933370555197321813326746176985960852173238461889881972477961750844257587851186208453756915647107398020159652682545605498503975436941574514838282603220563618075856446398189721135718987743278329938938507672481384996195174285349349438331222020033947693897595281431757268228179690892309838810599128703504251348200143405436922191614473490752359772122294755896234577125596052090680259688216006501489483511955019729326778754995988896012749201036269610111598006286899979732297998908110449643666736264338943920106345692285524607029298089222292817247139841564787774572455195992230681597722943577501653306219642384784003536196661467438931474837666838812730358628453486362778382050430297942546061341852481945013618783567211201882299549428029595923062851026412597567185457905328411702944647781816636450867018268107295362274949255980894796822580952335960898274334879779169084326745662775212365930188930352782004712169791148460359300526270097797092063935325859274478566842765274876157935636015910043089294563638540042746680162852447191197504469273926339557226913188707373566030397895639296024450923034495011930383357164356145803703666783923703509523228307686739670514334774279934165255041395536487392322369599193546122397571065782877082406240372068817741733239243468909001538098881718214766490690628406396424294776032700664899283612722873979961264994241321810647022778289313975875908009778974811091888998009932053335077960859420435366750640996840528062484338704892384914517874626928023970138407392832344010237880462804870343019115798047740005353179652834110828480058822181191389784830736313360505624611970566213820196189122104128811413353978381355915663191241940345422083430150455789354885930747488264330059107374270412307092743364006727111750028163699911524575480346237547772753285252711917110383028249064912586457504260152750746935756560276134926537516716421245611276231312055485769901864638623956350757354736955052187452367758736260654363619411478086856954767907161930756920201547383221641855262651601206444774300192478286379544781569113335440217685942562975293741350753334178838244412270540991539921650139770632244125081270329715437858354688148236657662818115152329033064188318731136695325092633564509262921906537682789171940811638548384298158728054851430073086558532009576586819707869861808754464938379811538296485270058390899264860796299431072093757582107819314691176573106020554902513888412938825462471132984721242765603295548199154266879135994269871366916863879326203380079054527336678910190685944685072942318164645127315098831683664240957917777594377805773916786603415075992850146341905437352716346810040510685509899756451193242473719477737972217976914625239103653017155632625044762516226753180237169950261611348160712371745208402533385553424775155553809676940447254532564415991139822955882774951174104150874440527652102745547488507283092126114832693502255633200776609898662880592764658719034472945926352881012551316510334503244822631876292443947977727524782768265782256284327608325230745930848935017946640761207816014508915905634760533695702349653928681836994099564102807065750285080206643908577224612988050450387721225287322984122818275950662636183898876117721340538205695502744526688612041143836687103307034870056125975159599494469183524993594826922161450128254758541358861201566178820231939692641075744598781025374501269077145589670606082717575113848232038185260360712630846849361077141275996423661703217089127035003697865933546512112232801512017290143096730465237584629407426863853938994829390438214420168481005861007905382093484983681955840578652315998622143507465100908455989902073682935945488694278382932419972970126710199698204550887636065373446006243098618974488603556652860752459325420132455817155741894155358731812547027943472616604333095015905200399809688213059385349785787552593901074079567623390920949461859055791532726338094498568277697662252101119309825582241061720107229175300635653525029995293980740091507497231922143489067154918381406238952076475992203682429803821967853638083040969434455233483311877528505188339084187612809601018108900156083352626569327424161655729470732232558524257143394995797179641119767335408069407857946129862100992384059065618846769109754686154732590402336228089188827849735453099896802474129151241548740137610457802447577417776233933653139650191046992981720839497768955193963273006643135866795537594626685967155612323143428784763432010801573911173928892522676335294582635142529033949052577314569694093440074679071410684444142899262867623576050554654914527917475248727877043636138746429012517177743409190013299431765949487747524276060053796016986379051101554934585702810177732488178952062898609233743888532367278994090554653628512201383860110940622396013690105183635418034179804447165199150589221266799890743006290605949627127650816690970498366218423548088024556039857544358803063160109704400403811103495339675367893332895658085913462654701171603072320031777911926240077274294759873441886439323383963981679941947409348916234054751377447624424738143985182937190016396857050182174751986646189883655664938961261990518520751652150911626399104243163714926210958536246752884683775822469113953426248798018245700898855978911943653463666853951831587127614187519951632644972702568290005975779226787944353820645623380838343079958998331536791130170525966401914777306886344030611735826045799443726466619875215399279103333547059506298270519691752024736769012863080212453024729967658567229761423892615332871426401464383910663612611726506333748510815023347593801364810788504789315856672541233986477762569796650145339851549055141219212489490096733083360354474721789373466173733722442177126444631012871087014825718060306094253675201421632842616122348219562184708479510975064971675635596435784813550396618382475227821235859101554569073948157468587400933852360228930487894245067409785428350232519129395204420215836330327139987664239287846944088599113081836390378682920695787997943059893574634030711429442437807845773839753510672338123009911229487437554663376756539900411436942480113900047379895641288738420254272160391915674046816069030878194763460273563462463982999102210593755471335035265694345737148794268327386612718093848402233841940708857193828522014679960024342770307679947228266751413582681996215186589098705990425808734063762839489886085692758170038604185110464554330530730246845017155737782874690626492860720533297940813552495081835258564649194763278258785833908103393740788347315869584155331308273639512609140180957506911097471452262031732036694773713903669627521526991262783483765967618459972328471665625830375395699527800823673479797452577779149095930533381508285314714538599840872461123734120557113931673484967165357096217983802887269271348671219272091372330071423029321422428511829460915309814139457318329099493533928655312140573986381748620235120843958996535362454118585355628246973946079676673633438823664069604810151028471074962129173872128991848553673469081283688849412276249680656569436155128619452346381271884231006323518689108692128659274735783524146442041479046697471049846832470600180775478887738488526018066477459701585318599585366016451140842562680320055093242626780952984714470113879874449062674215613932307488591093012838420449397574334983916754384727843409235503920613143586625788592321309476651012058532640562502779698877957720322623185475819312735168815841894602741208472079258601986253618754811807019674420162600851351828162434077729991535991433071829376219570498939122680517378149685260771955899629587964487780021093224668122205373235956104440503622051752099684482125579396065405304511409707780957559546226914104386992795204154371386829988752379106563755599096591151213292543781069139081574960369828003128541260015831400753106524354348160950536690705811811888294403525896016967634207228431331860079878530630234909172108947101006400974712851352336548533004846568951946044740957957387157680481789715295450129680479839865411356029464143584043873961681505069113593432894148596599067275020717473336000103479825534017937398270687250755052907085677209980101048927297135578192038728128770861129539756102457610509570011075883727650271769147515230876902330487360277408184290177929091318702549059529888779650900191471011245573235078003720499980491165498360497083378365469071764644787999217591024864969040479078822410138563102441247893916609584831763179932533284120581697972763400951681796241708123947705903603997595858486616068302292696124231197875370616091536615357591596305491017287482868784732736712531898098780336584083610676902363704931754485874501185845536348761538963408164980229753897953207077940204046363674624267049410316140978128728518928729898807085999719355597089640895851236587628463162477530732979555456882845689141786086663297806938245867582062837732238053040430529115850574191748293879189844807347160454065557616166225210249715956765855518381505637665087007425208515668732685960028173255590094759197026766456117859084952975810003231668230379315497729256788959886874880346439742811897108723985028806332276828722475514779238022370733014655360641614753459610268009550291305973513977445037887794999579474419646123435446453309481396036151349431246688684466232138909467865552774193483466561973134990472126180472270271861976732931338039327750986087925307775195459826666213563622618714885727009013525942960332175530033989029363695183213381821354185319013131220391163423274059524997840411013242902307887723376987039073494049574443576781816958450251630422034293563171825040887275353690330624112346705615299164837032904785389031159722559595427512044097790670783221298773723371846820048924553580772520933753044187264153287173931198559350835295351888734369447585476522831106545439487900845498971149376512735704224149750111184758826087134678921405346267984879335825095552982744000070956624302599675401344243788681057254473372209734539872415687450178883827929741690114213323833896580015686487437129837657248957601270795272314538225256975089389421803214965776469509322945374676859121098090429021902164275441265790731302856697616365363173555087837776761669976990062037936250297424872786407893859010174969934085564526296271237251950151221370851909785902207118179924176365479609834964547352951198599120211976530404437431252323575884512071119513255779294536192767454412666930985043341138990250362964682515155370213399685435658571290742453682263430666224108357609270387810765996029507798385496992599299609905809911659674227655309299668473407416083965257254385530135126190762111144305250240109439833089865099850644912514380000945443755456173383973669881190978958652839022326414706782886993569326047121434208495672889870619677756792294896058962180280881408248870064725783367195607657256157496932294800023389861944195367231573468483451684728308654405692830664518689136445640987300012883457921057032743200060523432751322020225839365316949493847246924454923623196966602482760331593169479067820233076706001048997551293155312844321241906050540653343888107166943423247151313988490695905346068330484025612199839180951601693859896162665014603422462650066971761162727290128899994508443202426896472534076581473416359104997215220108862113276463094391785935854233170610749130494338469621573310751999330145328306962306921612790780784891305111423019182312145249992549104787163686939323215584301551525923349860277474101433316486245791425848005074126762856695096613978987274423620728520235384322325446089692284454569063828833375875767542428906178014637626436836567709665932616320368727051270062073868595030913460714669509207638228553189852737426293477266522842048572699758954366379000958768206152648236955970293115620399876584636737831835592656694811151901442562495045640935791133239474632602026262075589741070390985531976629378489510718840317010548103915447001883645907751748619146827221427188550981658747804349480433652955443121928032831110969012413398675829037306204901839546253247680312533695595165669943834845249224590492274933973219740231971678412481953421892228091742554550785435808317505907320441125804650314759928491066732308338889297619915744063407572753786477699145956957136822010722458124025661474750380128171442804963077258961643542933728749975292404941527679226475401087604763309515731146497084049128427877946727349682155850512878304638934679401530409881289889809833653935138264372047214518423110015971819498418289725929242687035356346344898669714635423625305032567375266716628804223851113828906474186046018189543238435205923183229260168660267828573274568055485536307936354475546058839064053416714253631729200804889705315236202244141304087454740106993604493238824201903721796052395072299540591871406955537149964610544424932145081007693798733772755288553361322977263889544764165380688024621470844397196855418055871707448100176787914518178107718028227147909451553062050876642425968984458393994061303335404904493677772818082368091750875957047532238165141972310211662914728241245453137110871894100685827651703655888916589599395389944668863044235015196312881962752700635371140278716935276370931129811130698295114115384210233324600565201253175413770143596717592135439300920084779397544424403990589172733613399496083712955446602026157089931580166462245992820542404173089001000494183501087620404207332231881902564962576431399928034618173785932454234696966352879252719790226541957050966418280833562803033161516672349479075627084079982416915890745371134390961286674297002416154189626793949004500326146323706291695916264087603127536576291674948776492660457542229826631680292905623954645314296758014678048896797646628658953907078863422387127831343408578770032040424488951987458161249325314689906535899856491363446086261222366326891433237086342439558554475215267776395488686509355482787442785003975359578537406434498702161442095207521534681983844912974421286986496814398655468129410897728694535552236841758513258861489219135974378977478209308082187974220621487051343616475126485638977181099743697772268147687947898979598759441583461693128929387917331989268150217306080844058704750900326081864776415406372562566414833224497797071590482610923196929300785254975806142585810471913318178726925703862291107142002197637231558549767564107797585192420529798396707033173562776858553882895176697026140006491173011314604487598601636869111140390082119979463619000884365492567058602133838159252339907732176628786963253431920860780514278474689206884128818772684217918322945964000070024635217976031465494541430482828606371508258047474636509789034720152669047614868917917774345779443158061402644968988548038167937527603071345985325140429645629001124244341767574682540644527326753490133765743733282874730878748164053367536915519283884037436655254624030239581285685748144427859617428418928149599982890188483670076282522312699301431684024308669228280791846257100328202405285886422954261221742945559042260782346247674056973269875695795863935397524343745818680686672303593101906239994243699888992822943847471130198538475645229413883408866422705619761703249191809769284233757491262523942968094339165575253150646612322389511241685885405689517240838982041624088395933819992112736006013770039650435475811884979728198563224688722125529083146627007347598989954113070816337693962738380927729156118608342860399857598178325411735474105873279142653927802370351328498518339824361459648123489958282637504059478526596403554890173386581894512268599296744530057862796938425052684643132812629929074800586903003935968813033462268228778188936252628201459403805869639297195883967076239832104478822970492799229337873614920148830943973360855372007102309531091645817278075960428100277573211020636465784843916643021955496727251135437392937860560189494240900495273678157526276728384224954989748606934127948008933020321665725170147055707804714516361954787719428265220547803625286695413165614658786867787986345025103700620016478484806024386932455475326772844760087196498061586440031243720005893484174922186001766642501651339120256663768284056483892441246408094458437258845489475591615981792016453792698411713983127578081082115652947438377448411374297499132136539696915248047719539108612114303917988546691887607009623837504348349053547651191877381084326629690168860546570086831825767352822195821822312768250715786617063523759037211620972373774967692888483227769330525759953068378311204085703684287582255776644397264211704597797910857070661523439893798255193587408934360447471028961982014323597820609283582310997844921565138538093606862597062009989812980702963621246308155547518955483478827004672687450399806331056209096389793365786520679631148540962066202092460573326836775980739951451047211716883230701039507903790289844190338979891909399970761107511345555440089470634358806918023196044373997211733820089794701472263791785645431744719703514193843380414376612999921586505827288045017527730481476593603155102687161205244626806363833584254667427627056851702435580177845292137657606932858397892483495730545958943460369546472885027743343231799299375740754633253556182374595445271485875422060935405973489684452443821575549497580430265352701998943434328741862853923752347935050466383434381133109560806803755132589648552224232252903453479326442389910671317026631446455771599175689191041910112340611993336559406065266299880726899745087238118618399381020210070482646142873207706534809015661786788802808716607810750906158753266181534189931088149660523357869328072887501253318736890686749688162155228029210797730776473737578732057849108823225001828688288473058130467330157636690525175876222529435787030932996006030809771306071584288312467506952395208443326720696627998716852948490812067023648755978099301015729611515893851875407658303286862632163625246289431570319282565638725213041626061163443933211798409282918607152076780311496383661722447307327948928551150403253968487846772691132082616622497514944107865633089810748407142905147302033471639553688469358166765742003904598359097328647372029797342630116768376691880924832169278353585636572871951280901816282565900953160975718938080644821128524563303871922711106397440628988571059566847829345904283182967641361959829067730556468210904330964434653418542246907811387272090006178676694760056252914532914275228155085637642398363410275033322736904462144143733993989443485916888991704217469157766801444380319065803783567796237056924362552315355387734706177507592953094272510297292792402961940884627381649033573821363957925691718746416811170557121517422435208928813910132163293175531756091482242587104656649254755183989304863801188390990550199294276411054104938044151630042984169162426101010280813513039415861575998435202297393725032653408549482887184361808445200457116135913604608931195192525375377704754211746522900470222350914148321706019008904024436006192912385206140629565214313340096863921698967772254649613140688499358295523809289065050439849494595770901099881259676908990116932156186451988255352987539522649534443367638219328943575961860835425218132718439759947191832591098396304267478559841164529039785235923700702464795577296309428668556955766825131667192700372823592047702322838439098048004303002826596938030764249105438293505791776045549540021056035621597916534506600733404581371017244022023115576569343234674373936157857025607587905118680418419718899953240788108564880068635643552197016663072120680126618273064779065576733808975043402330463372908452888030835041855652708386253305112813837739013250258798642500205257840049714918709437651437252194075946505828043485413525086605242793289495821590975812282674179633985078677701812495744450383377514698694058044467719570527545468485952743128217475936698055146404695574218183577567612973223608766744225467047807729994478965726462142532359626665696381050776397693957571729355247762064900358644907052298445440460562225968123912784754578624445691158554204434517975205079496905529411957088827485623716172933274941623789068396993518695798177417246787587412980405800999244873660372786047731091740097473820941478402065151342670269627588630498207373060593697359732644025031760170572484342209346033035664277630496984439002721780016333831163616371898151940454802587625097090262756111171167874517409325774743632278771917841493350623454491374551377027584728837901309541927392955180805943255111561534945335661180386872264914070313713757295007770626653280077432242629748759772848313819697407826704073184331316742329829016019212629679976377966189571444570624756556109902334281246971304666375791290704410464256988651347344807178677808343915946747593183127825859646552135298338222762308237941846487600339522554498661399084311609614657550666596845910128244618915317106033387971524784393881350764103308468461121201213655884469523853102068313780916909267210318754635403953802627337189514300759360166345417853145204847401807117962752431280630584053506967181974648884028818600700313118742045351484721744214837507477095021170181501975816769995347046137232479815852875814074044139116014820019127761462240226501856782791145583821856124138403194136325815387442151035985094357993633540978128973608277234854289222523062630763570843972930993719249574142226576793831226660599058246965301732566814587696846692131151427082328417687626812525480687567875645965350112037890909947928223933868660846644835062791118274316765999014648098332131167629313085242314871783528053114331512050024461141483875812292611871601456063803057809612886834176083137724883415171600379201331205278987227645437924736190887132448693005406471897453515208064172604849602831654298211069711187468520896269792878143695634196155820138646629669570023067665752600611161629050565370150454416245090669738707134903864585561004938625369123596668859970100587463901737686216837221772522420915138237026179970935526960399669514027930040989831673975881050919637826196097573585423406144745123299229948646463428623474789260634594463294988193810711592790013964882166515990580416488379366730993293762676136080392231205664257449353463701376933218046010363699612409036837060165016925405230241648029167174647249625563313131960114924832705487995968299025608216495738876750070507778954801780181241516548987550954463180611947989636046901884399432257346483435914597849381966581553539033332302477162744542693703946071585724267565509664796845674423393063043888612295448016115205374896480065560021354309584080744727773689402851441286200501617168558195143576049058269597914218977101579971577036275237539535669765072876207437980620513294434865435192591128581272459118752284705784876063305355582937703428644218121282754987620342117031015624655136516188493391717473616353107250252793356846923309716743064407331303214910530193366317910163171763210564308473677298518084139246066376548371850715069963213363910309546915360804593767682752358380092472923721076580719723135944379411610557394240574935435148178816557493077915183871943958890731930645287112900561377665388671212207329035892133474520900774459986075410906482439611463249361247647766065783223490769875550207337216285118617887187378008078460238013861748143055840171643713107918701089710363002627668611371689211175788951552894935343056975994978593796666521340299135074254626751293427895032921032768945252309092685998477453405154158325322358744742561866505029991291856236551279245571521790234351726894289591832970826090194180861221987219831284593273472220685926951834450148484168982668583271770104578413368870416754683057179655379726427450814997802448730730021367247345474729382734816328369717353585843829297549191474949644137228053915870344926385674344851224495405347005818878406342001790037022451700060125296125682778513695701798033551463111132053544787379680135744632710118509555438898063730437717241891626093677924891846834833105169482127304446190952230659558008282640944136200181163753731750741927551402457041034098705896384893766967478246353753888995150111935938560333907713160493480517010274641169066687307719510065816376071162495498528989353100631740762341397834039959321414830535743922404769061710965932055228648632848751731441638690555123367997334059551418151722937527365463839901183368070376938793532689925340097171503079834768396696987538237696920026505817736603658066898226405749317370457113208676887215590595815477635623295988456092288897620752233485748416605703648099413114379002241394193713995018058455572599594072831021032805172491808928249816698208772625390503983475943052738801861611526392550295226866728256940898736783898242725664343362557330338496349406061827334486821081913140674870443801588065341485280301137452145669422110203096258738945048179497527921641892140875026890848988512591643636759654060042021524570585117315276227052108981737212987689487728321655658219830560136210778897349703149568170942399804382688827911190233213829404145118217477523996587352185014142701550504787385474733313922789038919805476454610538311467156155751146360701023636978180186865032019928017762668062383021287559840726962630326847541514305587653313157026727877852151390326928982087674042588801275763522101346680991708121380864083682213864366733431029217012675734234027050455534664688229468960145729937923449703805956038306136597080386380573615308157407185775891652064999518177673751437581931974525362569864739462068463780424104128088557864578952534421102655702277222672467856325845811716192944107483313571906634620999765986884259635911134390163051244345426946877107625552399103925097821623040627118368401536395127520715453299204024120901056182777390302442360254263645587195925651403449438421770384335063145860406538301064652923353539704487607344442911600551431282452704942607526127343277773107823000749636238649690033339683502206245132726861227080645484450115601091707010942490863102651876582958761349516671015168124888060927115698903810409123845273409109800179913450691600478489957668270043128218992683480534474330693511653825261906758665518668281450472614910012150910909224112991360101332554375561510031534044330880545546884867142581145803973449943375616413034358950927389587311751605165951553432563600606198355810036404878004995606542369676307166888337956832334396975431547539966830997842090559996245754993874242694397894846390916807813382037552449423716986073920530616463193518328580839003914985329949231924120280587560190321744133751505664702074002904148671945073827886090583335450949812813077283049217024620381444766702410950059689929624733602616601038734721197950602558663571443247983736429058225499122126424176053740913919899434906669604213572346420024188741759521842875142583873933667132013981817162895236259459658561334192540831020293238606056867844685508023769380319999064956435438856843393878738979896664273166541483424845035648932450020746787131671974678317669885857456610593609468181803119050789017818815562408021817982466356950922832809163038006430408809825562607333406610866352399563021690306969734216681940966392820408923430744945547183742740085727405533223938370986403985172712760198370844920160730680740067229924599868698086128895477164649457912626818941324037956163048774541107713409746881456105457010795395742349530478957970269141149854257686010019529643976582009104485884416421108807384406002023388353308976727244888307930295609685898530957990016722613131055151624868524733601389243610069248251137302932772374544233309166557669019231338967987571364188800715700607071061521370335520035409762066492890248126072007179005591646542391692758240360057221581750304669676965045887257790098658727590178980485827254363027394156335299448077491610384827009718274286979277837833969819110167260141694380526976405936799475871839300156453448560522780819513237887633242580419487869541711582981592035513102888327787686359522102683455282803526949993172055541461323037775327958879482362648632532259400667196625753486092426064293313844744718617615422933803666879528284947170619970035883794832007336132722412532942421670754185597648916404192315111608019102994016740143311419604963409670636755676031186979018499954690233603939012439036882131502434488938542828861475344533188724128622372456395505580236727741971792280038736431139107521511040970080025146094972224643257859811109099524021978624839943154000052981959107131043878523840627466256077629122956152762327303467398395637368523293702617672998025059880722702711839227178441777642982430220833421297808794194160886630885042925834289112795625942333734852001396148333900394612485566708423813432810036706564538190609527601587908512958319404807618554875452838777805109560065767857493959186676819730754097939089793723260795693659472368797681711977556174671865949484369668410367264684447680851832142958617418465859761903165653961017441809321925080813709512052380270242495552435332009407852417860078320878969405039477859798481988177641656870613762431700362212630495628385124335696095186607176024311045718817905982408584124991206909765335048158997808874924211555282669882460310859463555810204003305096462318871586545028473530679777971219923720701295121699639456162407387012011340054989783364996418615029465846129092045768103021753969982151130820054896868139560161951673571679369139538729591585123412682513000800171796952422043220613643016508208631253291270035107151956444038601614776554250429626188523313821471066173500226115631686697508500653821985286558097348231528725098048349291820297891524100312838541387106961686110551009963077564756705417072493579157909277636871948875559355856467321416919249825686090808072627369188911703541905032903685633688117697800399841927404769448837630973627427328410546365162215905566921789086616693502135287368530964513320077474617046435800038811196905136099287728765578424962415947989077569721488840161122567449512752511253520105597241095791831743754755836632074958954922280454656684330044202651365511417765212226855497577343129585664512858440677998847780215905094669393240912545698109093298500500631787346004101816616241000994195484184539686157603752424966595271189464021422893478716947937169927691555836674207126948211887460836085329638757615858805041062652896845136952669619880862059395170072556774253662718761158453265552604172391281178773653001809837375049480543447332612442981277170852386127440181358536132694239515108900673789578297097665489222091394924366318913602947342056159773727718644556264150327833442237948288745718543243602390655916189953615029654285637082001860190159147730064849982743513617782255713596548426298234764588109177633424391170442708793166299650202742047592196702297733801873383191500112340262417851696046341065627108847484040195584982942193636905620472810546536945529602309751560242086683123342232316717314495567595896859940791955945063604898287936701301143832743146900624843261238721613310452261050598349345404408142829982740372438165248885963516453377539277321843724398791453439061126852810211396431120034997734250409777233615573348002037375645343809722635079519973707995927597803704769062956609537334837120720050908747600533474522656074072416120189777436582408339360355080251670764440683074978428844558988667597006838809250400813515055632401507433350952936826707238159631233623619333757379340552512340685096448033637283231935357697368873287010405183414672416549786024628518603322224386004518473165664167178117420760263997654606066785110932719726333817567217851828391982039665297337490944607498511484548443358717034317577001907638296521253689491796716577094063227748435806528858129566244208669789720470619768630174689275101345952846999740942693898921549471572924413459450832682497326682861192797169578417976937088717610702676886182486960582252595548466022557525462497856061751515747251319488029649909587561900287121958681685630176899626592890150801334701820774915737266210374717688643284616115976837756574446049296084490119194945018921038380375498898580405120695405771262478140389332048085919053746818140514672366794244469004053428809165991387786131196540985101062548241322901216361363026239249437193817583868390860407994815442341833371756488146377635532816771999542580069742818307648693404626385460735629901175136169672453435899179900481243689264742157585717134690489318198339322239972305544183257659370014054975515401324632714763082399955314637382422392391241504621217777606996756742547059924452789771628733345244156202153274160155339505344474624529386510933139833160634266741131288518579311086020183514182673289170688027944553143761096644791058486168776697130659999012349939238451496984145926760356140390780423017555645236351132894863789631470872218217831000765251442948521409779432805953323770259190485810902250153954898210204549507041483398318029853658807215503809282833010084960526143594711364540651111157282686919539223378332504254975909297790360147442708553876351947243986177081194935284019734844298999972361285979673127694157009543367758951471468755967909511111926603375326134493363318733408765105738181509013747251759534096600053706241867021960077207439724388048452369802146865898087725130401693209147055297431930742144495876659937333194373823916572875514594804758413979843703736616173764986385989563683972199570626504281106360290319335951175926839704621929309186241814620925178111407082584532403681724938717088466044023989941194839074548908167596742918357542630705624017299041825600473422651964901297354522190126037512477375550249943147468883510284914540565439763298500768784128816634757899238191615058354102928569807504770191562088763281036248720706597450328033829183462052861936192852137825082492998892281654800243168818350791506850010924804432576884776837021441865938818625646198929587200615068653646629480529495698866756674066452933617539721527301410102210620915957220655530697654936654492560111036474035764852566258226624999721545620313269913750865055443230496163347314634946017682584402080540785630504164182293841139040734962719308772744447499246291719106889048665006088327158042176854157227165929530035134036424082474317183143876284803095722149056002739109730493629552461959031923238576732456766595114992993359976783304253965371914737819547343983152086901908992894021816663341484324563954241605548434573714447379240300512152570645836866156583236426906279822743753769645279385543738153311232792124435093645334079657141021098871872508502140034918749622759549329396716272050595837262430322574127838778825684462292525802790618681222169395544567017851569281005621156796996105766521978034441504349150005527377866909012504322878960882794594208929754748704803797716582737281417739139173069768111634083030756769946626491886486854562772237306776656472189047796185848491594623974330989826657379769853247793152087803522811122640510992710884058832042934545604000086471756721647350791646607558542975724981692500261357761591009695389437346680493794276822204454009590783776242196571396882625052787817372640874322166611902417323548909927866150904079436954622668827639957183365938848811989102005193284333384253848205077600514258357579188453442538158512454634950173758640836295531915698033328632114993347853978484830379470294582642167776164370112364594984585626831556899886772354988209544185583850432379680851924597060546896708140777526506217885904212211696444500048359725658876940348986382017471337045818938949407193005233994468648443908687727866263700157052824644359138639473139462297050374896040041754443344137193226877749431411721797845508634830230686666654351901500943875908175080116529576978436501419295642307826527452932666125213167725143299320209937904795421774479576686458667348129664679835125941911403891721856545403246120621662841968679987804866357897539084156515638260736077117431841037638565717023356205127242593882643073327795048179271403065031548268694136173492884450254568393833486882172057724638207304263763149113253107661691041694816456600823393891784010646252955172070209168347325403279477073178990216371936598049840257886881726071975509670202764374799706617723380554549452037748152859314389158280461533505656450714740401796313768156366739849058944629712368266730651643657736629066489825631171704868334890585084343324099607640466801792425200766440817730937169296930432151050306422823567561776155438090726688678978428168660225758680521213428767621754992431032871334425838701800107335791117966357149998632902518748549046417920792008273551123023810561775769568994836460330913416385384096941779522109668589686720341103529472142942067977209944967080448281715347516160458761604928552562265728025224101783095823678220363001701632885676158220183529438017986439216473361368974023830905665814477686471062027713039771321149876003297881425661529271523110169398231330933842010955769894100131341856470519958372804601224213172080382454369553147843499713957961344383784516332130822521435231032089982239490697327769493803550527685842114935896043231377797339571506016326495796407193086139270405883667738836735745759960013632642263040346383325323596071732745377502821449245550040435836647428532788414387194378817175355798715801775189746183700684275882916030389605903171111330496540529511647643954685492483867372553554202207975284098473756786063263912602661037416196241921727030383752745866394428546213380872119977147357185042855528479526662475829256099060653418770162887233869916571982708707192822532122661005694161865635339757506805864511634203126274407837227993104885227822680091954665403149213496810188167994348997054849120324678279328582088951064380873827375486742740315671347036576327607113087570779599336125917931523432302725513023437905056639744006704938370345812552593130573907996404709682949594077515624533335203845771710254146684443570194508463613738238396881158483740685336659261601910281932507143404470961373654189288331020823109361718679408605010395418455372552392706734440998596153915628135651494643807638590149463944000814395947616030253615862760885676782810349754326177854914260216363528890754677875066561491967266159753601004201987944414652517087541210731228460992276002813561550726571074152566538016362062953245365326306097679381719925355824014717874950693135911543891437816773731652722806898749684605252589535910711647452542329526323312361507770339616210076914726395843645360769119540759836359458156157580422878211230978978310417253458791716407677910419471270715524485461324776156282141175780241786578308318068906748017930521810464726521643624529038133707756417838918983768773406239866873275597120685383816723394598081279920893427638179117268161250200056334269284834138418889677139126204577388551476626311913539540174400417553666728335114497018697276739184959866802063435046453191364756875288460573170165627392483544930367276362410519366720273251214950002373504002705296283159013395921780166749999465271909928845135216247108792861925313116367818891445029722267080913909003323999009383653691070812210185196299705040411013175288231982765477946360069267949956292027451384345528676206627269607786356431626807102644135519845782650622447155530824431022915363264208012137308050133123637462671653392031148452251776785293349481636994703688121232837006823157503825815148396779707133533739051367423590899826211263949964631826035994434717505953780003268563540416410301124404354167354599805015396312469200206731217239565431161693837591594233646906610540549169324495601510972378091606858987739361427975349780479374435776665256365984147739312320919765191799141170161100520413337950592604111872024757229315948619435912153846904008394029507110083152008656960929855160836638585840864721291727760631488287035363751109620503412980246668555679846397681876565315702970498099690038889412289332897243550339885593593959242290180104633374835192233401251485558092424093187232536363502733877978036026409840215372984197271890095054030079632355428960847455112669542513781943846262885625694132537940270169364226709543132206466210471656519922691074818764547845405456660183034643290321986572975671550909098012850685871668105336920509571254474864258849205316054213054777229584778650201360064162249157343257304005828218600702071460432611185706242448589909364879736089172522722427278154440662660974856893191935359665619967483946740392224332423438647885543633538800636724536316932133930662053162587324518209412748104322339261064676517490229797338290844650014738686898818533250776030314290825828608921053267021845123030178395315707195233327671513385002817802278429875571727912290049395273124796295347921244523500952813174519327577092073404216652237613055869027100258959141295185183717288055760878003076849351098220355562496480658959468179447935186067588650340191583407681025911092519434799212369422109132323729951222782411369374035647408507940916503382717923737970995622088350456633876754831996623353509189464068520932154223346453965947954648286081861891398691668570137079206727721340258391846103752243623457611993140938270631915835203458097326966373152586968092527858334529672764126898690810951133938596774103543174229629195380135585562884489733493610605601659530056642813939847344770314788439701374956771320999262084744228911808565292069092403470576453248844722192479079149631381560366956564480068468535915738570984802277227191039300336273181455891905896901308229206962571372372210700290679343232949652875150096817813432791879038322892004382865200315598296184894649872779238426667105640547918765986009360825021514583721945915744418678267428928953184467653790297648432994641787775042782575625080534951641284785594128158318814141288260065487007888443118030984866244591193732601101224680167564017271666819818805778784248802134796555685757129902801449848210990880100902217673153779554479499434773619290801050753917307653481483561156297669548108212512428702268340339099286816730239417569182149955261475908980101846575076338050082604154496109851545588252695569672842966861485992549675233482577522843945310234278987837169763730594992538790741206778008620230351577575623275035258135513659196903785220095309761133769258509287844221551652066476910450519585382862550945312747673086183662325307577831336516697191749900889877010487597996122401634856691706689654327281686446739131551780274647872780987273874962473774051776844064024800743330211337578673369776724843925877811518264681411930879826063346033781035741122888519813001194131145509295255089078248152443759833107941762104918340691753813269623819495318369463199920577404100489960335678092038413583683707784657417180370998404319745282001452854824283790870619100306820998175252659721202918415379340343183849470344871617021858962984400452181272635579609211472817167335351732215360899996152209852351608121217661571040649145759293115836918249456325556154392904601452686046195091389292075125243660003393205487784832334215203216976767131950374952755994164984505636358456382351972306260225953535166356031010013777876542854496686694096790019819320061708695572804614384358729740800007019466293207886328138570203491685087652679093758000022447303814039019953161173218194874320580482166419803719578051316409377468039989599585935366507090993043375175332066332476801068884026654940568277180353363370275164782933825811817866788776176070001088506631498171108712333212352582435513309676836324390944806402500386482452236655912553589946422702668164945198003471850622005029128360963793595293308748084089472277131698598917239826819129774767956500566743907039450582898417303198156074813981089446523929481307056098858332473100028939318421766149066452410896222949341584977580254542179330351967970349388795476944425618327544018731231047557395022484276157086683687924154740684512693476185309344664181104385741244807189151468184464602951350474426116179212480277280327661010692497576600850805822001777535723013815948724217519362963229608138665067790300165545253723572221038484246237801102501650740974543838555983600432812968643736085379862644095191922707370219885378549391767354398755191900452223051015182916277168461421837330929835982592307964510913144633920416226350779314400068457703583818283119600730885054880844179979101547803603780775489569525632361607287056569674974872803574065200243677617832134563540332524521054023713156269578819061673157080750509219027998141022439060277037562572302607445418142775982349642483212242166858449804148395718260864597446604376652370615299856177372800974790210497990677159543478009639498366040359169082176532979318627522729302492582508855125211508127185144333147075892283295558467211714731134744095769938915898725668457901918540675447428598670179417107195684680711991039766688242347845690911010558105001705957087243211564889259387594033413061529523677378454771198345308057408821717042655832801708612134583867063771559747403963183095831469806363875617435936273388001479126928665975222023812777861117563931899941098964934398735088180267200413314621582134617759988124404918732594414334898273907991396161223359339219223991709730370422021340833209492236611842456682175015090822460847493767564776743518620212095929675814539732466129924859948253507032857793503208256503689240429672588104578426938256201910646381107970524012365795084817862021838504200714451997420482265188719759425264959502345678729936347179874637494673478272810529791722874292880320195088395102036857689072954521014027754703605923431513834031253238824302745567587586081769925600102975692631924441170507724679546671920055394073414597463599527889356615379603435251867942580725784390818255261948600429701949473939155963461751849926484282012121499846688306911854896569141325089342047019752461281907364779946872368313536646322986239104771633506570030660988195686567956697643801653553904705197738692460767625249825313377524977169352012206067840819906602311370835566999155784622987084034207013410577763441606400866985018066522648319262394093396181451980434295130947226387517088697291050873589910357056056187516123041391493648613417935220205028702177952021276046693751099029068502673934702639549533917958720072365791530901897683498014427447268647150839176391065034863309586385749055641322880444379244872813050453758719545386714607070587725639476695200304425520943785624537780584767920374962043620408970129924837606890979068242507307483851564805302626865169949255341274673269345314758787432722209255772956522488861051757540730705761079226986582562317154264690098077408530480978237607095019483971464667103792396258685097036567940122243204630920556452907024425039663013246329061374729456719401924846894384298196771395972858391123899317251660556807172072792646006905838685241498697320884518798016205221468599570447336559139027051186452828679544329218678447801016667539025933251117909859291987499863236886461863754034607661809414931844436844265386508990894774433962099109141263609265395501026130052558475323884586249760035162614363396879181407862865735407334912782492897118829981157019701878828039165054449274454859632112540050789815040736713734236939366286168099289930355755608789517505298078504463402579092781409214660795419188781947712824141361717698202154781312990325373659468682530016228835160413133318871744431642953271806891040604642242103831664860158882188036280527209440710708084448769687382850121899086025515857663537152905739971374694270225291059533435134137440685739014122210927950744653059301801808209271358200456353550180384118835288281167888558231865747841486969616230685200322027079329825595020796273499022640974125623644605120458874753116718351396604828832672543690569082369579010071556710861030099314391414271703388239441026501016801893785558907207499633644763078512444324429266778963721556670095604097454149583178412917761707699314467583862974010475777854118318880676808099612120177600344348730200881071953821646174839541206002492426612566565545712170800812881376414276685633606693366534617448258494747096166014911371410035587559911204704582273840101491411231283649111059509625152924083170448219633601988041757797167114979761223699018044429742504522867304961137646226385312353227771440283642520747274000509692871951799733020964167223218481205226434116501212414176957345647003625005959733613267784393467831425850238874842756338399061475329065809562186924079789515698003068924929507631569419147476780596480164173118913731030069079755684720977438027417876705142744298775007755807966304638442928844676695912121678432655717059331457683664466376445775450723865649431147859817781957536173688362001539116778394502855360519036623203937342225466513103413581430114839109917065739355933037245327268353186078418242810530960142301919496518061632571048899604608016391436848264137894911306151819995587435548534858655796164123872937938686204052917998856944010010227133163631295804547865587055145882806251612961710011907766156349325969398048526071433251285656565408767411399152357676643488856796507461223020246909727215057018933319857849997932527843780184332275945042357725025099173122759908578017572775930968439817803845413936258570492194519685299180147922661002160357367996942276997153064350740861901310845461883965147506097547220933027922195677109884594068637211042164844180325878230884862596291882660610505612293816825300160359647253179492522674066848927809800076442484025621753196755140165577524189300894530757754608129488916431907578230584913373051931372212742893424533638607495836598781563152266842879898316700462552714023241545001711107062224878142660263399755709616182808489606058413477700823624021157896826463396525594869844475591086835545061688482473788386740978169814014954339337405343516852275599313166368840239101328642391071120317572808540674251503994659713157872721885362580750061754266775733631977790237264262183380778532474485094565044584267395477724893627537957655707222222231025487380452122417046680150621946185774490265049467051411242407874779945830863735686484400506467356681768006097797832582609663183571781835887159729181007965430000342807033810546092753557898865755081902168172633348981558963159134776538749863516431647564871448703742715052498145374486187300570031259080079819532916562740106363257805125343369665543151512047400958376619152579158494258270983029055905250416186990038158091670155159192407328259294886008594765582499847951062424835751760909689977875509299552982077714711721754029832460641274060863399504922064524922122552250849451524789329164340654489238922512393099949574379815671355899930382858377999446346673838535727183306093680719338211226485053175379123476368551972080204649503395633845702138620738655654526900581809876404017383192023897757769583424649079746381232062294915099637157606330086810577631808437037214540732055147453545523981196243514880997850295596979042653437688125152283201036590150222211116761237967986783967554167961579581053668407199587931748607617178781384018229489647083700491656948888009871452945394014377174500708675018968718226075028296547366649588926749001969233664660323624806524823722446770333055683962727317007374074111132562568490811110817759331126428013625970199754884702819769124551813011314519849763816914338101676272925278229614099624997632014099518714464094557084510433381611762975450649298395527290954568233624081165622697145790382758022185630953030103264848359888356571584480924856292907437718632982873679682294418925791529486202536251988558237827366485434077213527424441708934385422162174045933614367865007311517164631891649165442900845958078966607526379338917197396523980831242535479987477038173300909184332224296759424515247442930993316527509720055481801972407138726142482373204513708092058348838477770459839637614908813647452166618242600533324709606137466336805150302930338763476023558712417155676658305407957196850919798160327625860855690606926303307232770071878281556718899434049101428067409596537788205585776045215706463903929431947285657306972140997447210467420378133348204657707696141775128147986056412497637459537741325631082470142068484390979133218507031048149027899421348441369963593947790311465617723265049258476899459325706716295995915970055299674508711685105089873220576694639788900083200538503898995639927624878678531682098824598206233228052193519468840071977111182621764429030831829077272463905733262522993432798013827619376386962537404666990903981772216754686175256476352033126809554709779399899450475423146725985013489534465942769328579275167923990396708216423402216448142300628353938023727650838371422354305403970199695573978267116655363768222339936633620344704855455515041511424384262451163217064745791467946406012113403874701237307329425297901060758273984511089956042614630416287222754617750443335589815909191710461949843034381978612567938786104202531555140840528725184653143895039254881605709753401670825802619278864435343057655156274543994293818424134184954490044863541589251958344910351706185121791306161102257644243706354784489092308264699626385749043774571533284805985985560240952989530035067895255188718621957701076390024369576395247181225741410811213783383553652481753912097847808305056613730586248970481396266454477695062067643510304121155726776684773217054009616074822619393660368295835438824967776883342883466751472846341371136075832300521691567002471804624496908230818177901212825841857742360846728890291760384783793641222969455699267887486511362592629781147536028892191960607864641268109992383555225809362632056807812459567193964102370142511604593315902276770467063309490439234323867548590804749998013319097080138139985497196132640218769167701115431579878573806824111877231577776080363069426121905508586588299167183755919357615576971534953078299712104877596913284838788085556335103769085764102390029341075343679621187248330052908960824856613519908451717064382243050056908334127317301654143692606740438057274108651872440952960348592895313842801421997239126822007608776120647768119229684913850071053146859729683380947548782680315696684240716529367981292534070462625138675803305879615457072380827874814799448029279119875156733081094071965728798876792542265639080944762407516456280956506610395584666329773433045435877262562350953878808558296297293183486408807579800462347665421470152537087860639370566083625297110786229344829579824296359554574153398792147618103603874795557840100536494169573996655586049004189282849975400038014535873855569447186175831703014051065560755249999962169366596043647082644083175929391211262972932046168441388808500483831634920698762532932947429634875563533204472610552673513540724729520402379219972247896749447523700182649613541486724533418835424025630910095695749233027558006354554032541266907508466915034989359606747063320222437902105454990962756280222468599120953014291919105301966129034900592356281854387440878327609508489039972889266467835315013948519048782638055470769947526674055024104584111003802798678289115112696578758490302783185931774707132264408651635782046823941977266569041221768832887091995654724132763391909418758312470415051187489863208169758162989384492734851989268372477540349372289942336767589971759901807281618017594375843026862738718052446877052984308066669569117814125034884920176109567295646894358620299835186796329602397572647601763667613697026682543812355725687346537150867090774150669223266241756758409754126204387897673393826829764883136855920925995542864252619985693213474407519317990656593078303164182779116409200527660195108752260665356565658980726926358292396356042613126434907638100000278189473939157215022452158784628722148634974866647510880313688598571978414422423812381653716875353491905992524659357817552387129005648308737521296891816709790879377700394982106488807276101658859768239812631522870291643686498842658378362033772548497322587756814240342697612046625191734943085702675899420181307784422760751577247323717304580269502566966755322722028385075280100457341326434004322892099053613088156677348165718135190913849053656780532705971792371974786250624961616712427300239613870714599427443112206253077980110795322526601092023091104337000042077392879316751083049509005674501717443461915149134005927550768258829607492490421324701701664265862699180491882159284325314917686804434990457729477578519555674612980003074836851001803587129562510545604231782887478544757293065860619107309106851549053923093725890971426047782854415726571553429369644280472437632748731331868755328216607709228625342395525858268536875707839039517632061182778795733156745030946327961739000465113233284798102928717816227313263333869365773672214932318820420749411134341256644510792472114362116986807628273642198518481135762067681297659600713574259977568216636126640699183034327872698248373035228585274467193106530223779819893222455755076453665514158312114761421814956938758098856241825162013599436670772195769242338499439801247234569923103563063761329130018797022348234085201348638521050510906961318614423925106986709539411122633752009991252167282719092799228402301066206904795308753634420260942565858675768207609653203875902894167906323835173389448660527996799954942665854661510844267184633503165816708696435353447688232916762943721784803220568886153394857650546805129944129291878333684032282400124005795003578814597701462341329020664783178518816650347441046325532951805883626780248660860184380615924999334941660461418710589332884428370122501765023102640904470922669231106509289852284002741597180937127964079478887663404949382384599068484480897831725520623095490292642365759382953827371040267570747199503755008115191312662634950688579444946634169720543470774972695396395214443023223502672786128549098389162497738383569994300184741920355842381459214256637745889426960923796824913755045870210499501318492601627343758558144776385171819727154281692102746385934797995947977892599055194467368184940214248075295666879680072075563669258640496808503785439350067822838093502611929770207853861366552539059795046083413638456342767645700446387332077333142781668725106777360649977889617712143972531828745947923033278519876299279976400865284421378016618733841198099200991721910757547316406073612032283111848080944192364185566585414640079098258721817497722938535739573666505411631496131144226642239989791512623138642690150501916494251754944721235634210658177089898144092940162105727848969778260315779859448816092166026464676079698807101535715659837129907186107980462331725287328535627060427821169064642194623465810539520152363735979102251130445046023139833413916669893883699304124675659831838479675323616618135184455745717714799203098667184731485121942011023738298166927097236508661197264118058221177450552886741124138902435560193300921499806363226416152160240305404698360002233261283801583131266798835463547578274713918648047103264513383937359345808989461830299202360396544502419286586798935978242119122084798899930167995423836695291687900235013161220640206072254824304130087309451994706730350926473601077239692651180199383994229299300249588172504506385558907742070999237902265748496793174061321206126205259366086562663148114593745816156396597489864595455212330134364481695481427977241720936174764014728764193588817325186478447478979638405917533695121741372379425432928835800652058039032387733306618895194791952368410647428033736897930080525371778190826937878556708601270828141198532477860604680566991824528225364387909364127796095044840037627188164050506473533375572484546659911411966328868112500490518087711438270919915698470357036950442561736883594153450950912806624712971854988905915599449132681303923572816564845045676896510710802118791383965032258757747304988294050068031220675861595343658601597059873943789534074854974750353557729726176947529012367057760252658007726341842679674280673907275309894899402109174879324673234746427597630177041601181957603618741477054012120187025737756136325332512864347116298269342694129609509362416001514607478776816354576189359311427641795908926155064067017911874750345156154737413089944630328347218420049045763452026814366554203738179022772341832846082637855886429423460556314037009814390746278479540243802086810557662473939849146985027223376473979721424715707703514799079015623218911060802679559052558210263006073359172845316310440883156587044694544259580012070609881550923550037665261422341622746764866280215966508189482785255348090818023798104307305498815979505858199943672471701999430708742609577646106216988365731392417249554724887959615943358045764969458056895795626563133583649271064342864234837178302423257139994214039334376036263173028688788507551020609778585879639575258116059666785431138757376557075618794891029357050618243780173290458198581712619975048825750555420338800623562147054974609228633015368915601451519266533744402826684777139283541321462930358196066798319719578131733799170163394767290908149840674646103593717252460299565998327624919896161330415518041946021983702695299775559631446043869251544753650709371696518362816424026485890089133065375324064414781673108526883470449641452250044764681449648413884022607090652885751161193179315738713647710277728867403178289079707964916919560831716655464653484945768987438310529065000590822979187837671769454883120070312034623057321118565805710892319255573874717462653484266142203079406143265970960627288345300447499537490537742989095004363395624462410001932560130578713733570492664062324881884708890389590057310758713697414170620008172954052727192192998739045453984114030779688753185353305032760966669190394103944747276737785606669819935590563167281819620802190901682742434976730228742850631381417219720686137978540248000134733405425438300217389288808486591889335888583887491863869364228123824721013540151051174358604296775055627414432934416756319130411663979074456456143556780127787024756398294157535928463305958260248259234184453278831292301035163519377304532479381004176169061198415993742988935075129235350329079729163847539167429358690487951085080694510440187653275777395291221686380076122408815393570856426789328775529325695286932523251892647522520746761288842281933008172445005912029772508628645369661804031767442179547848071064184067688259337715326591142273753871006321857122942958164206922038800788341958871977091340019075646898854622461023071870971176558091751553425662848950796405316759708966495701256625041094902071853604948767093181668591628395639319115914802770158678582705434163467120148065397886785532957775674022216744477922828459829386450891343570336881876517650830070644797509448574318752266106695097070584377318855067675597881293878992215068784376036803840436951506882435025517799820966843199224599614252483340718662308819035894873422823147018115914352384626335926266463538769032552920903074367755162048665186585580033011666638778804726325094525377185515195756614642944504788822860460937487664124903886932561280584080723462812728239876813096434473918136029841166789054448098325130052087781427864240192758992478759812056670209792935291849838568827139338070347943127583046194473557199802578237225792535372188028952613648367756883254490863144611353376934483757313701044646592398678079331475569839530755954271254813138222091056784557821854759932270898854610296204116755693519931639346939223624674673716707567156711452871850870505961505641222302891842858494144749004976824506963759672413790845305506859290213993301495618190060743095113081224028754378391531171134839439792996538925813455694480873023567181438103668945585778160234241315490774551458749634094441591302467736260241716308150738485548070983227561672406130345838686341343536151322291146299639574777045320568258437081640358113961348955467969833919329943267679460654037070697050333484816029891285982143221828844586612056912219104212258910417179656821964147819229801398971288476563313038624074590877646700949168695501440476731947401831567121376682202867302736572043433082713471969731282851568852842640386654691776563683262421759780079890738815980379850577125923467906379770552669396225558290383822732243253867237706307100399574495276782254398017214806678458101493015228525207136160938474562952502838953003607145942702568831618125359848281574902312556356240879451090945150768203889729515472760360818123622006043361094144521528121583194498366853877906251166846320194798111877521694161711446633932566293797242464052619733048741461509385181732618908897338219044306199340885989935123646311658625281407725122646701374009255033503093967869339451455394395017249640224479315326901100316216005170612033161272759291423053895015495373645294885216246307718449192736241247909225395675400512138472939099299495341667543455925862258162721889407538326016462088402716956471076052085290464788979148463134477508296466430659258261647140366678644301797914291886133328626535637535393114712928870699983330663414391480782444316385783692386597937394232718094616019713278688632384355582105351447679316110449168355240038997198536640816480142931933968985098675035466204898491968698654336318589050632126350747617562675586023385878234956466595208941508411588035212883439248870768581835666585034226710590224127663175735452609270293091489367322809859905883851448517499310094446324905656233245406470906698197097337372967232459310355585536646350959866600242702300390294153278889891413740277766403335936912904657674807168590195836629862414724252456211794785397046867666935354423171635791053683877501725203852126488314679130760205760273765428872273470240941488637433973215976440971583100985699101167008068279415879417238332651489687998554372423657321234973598073190056396738993837049914656269932471464433322526282084039039501741048472680868154529820492931718039256165870758684311464932508579686241049911914613176149522904420342406411485425568656430331697922701121202193514547886839957697819631887350675693500067506600462146136076661192114893955040375065864032011713851186535739319572285677938303609685562665073861704555731751161483837736789953356168711680997063985401894617167632495960792090290721285882909427497668010672041001497727021583007661536944216665343699206635123284167372545621969824903746156184039432109514898686342268574574690081349614445644131742303168264785703034656859127905133024158556540199273822515425277113615566785362346709331820650889101600232599545243990634788927579850568139558725674544705279869173517367819900420778134556340821705155482487402689365446938301362731686242407449817840334315508813501544951966471150556239131520988401079641877708599729491869556877343031724442249630359860499831308656531526578959813446713893868000291332815524716835359974382819496104765976226555232591742941558821352124524293560710529637153208876520427446465358649505507973395060676916705661167197554306641302456978592046721871273217995566778482877381796348596299661390364709755545708924476100978131347771867503475831269028900284297444453909181040642787285072141027897006424650949850105276179235304476524052981740889383273220810102502099412416947205602089710500540106516412537281172334718497173905461945376705317852864517301973034027753092924195239427109267538049769080643637748022186892471774242455587299706420224323981098651364002790506830992022465661508725321039584424954499418305027002815682619111797759343428669463331099997692816551398609901067437350419770918041569516920423530997746410187051174929118192090371986414940854239695260291307477874023729174817195724716172020310501699136214585744829018022473356425081801703019810851328600262643825491212916065029897909825168333858862346064268324449104281090665568528010047289157542159861808965889031468110899194100875881213572418238840729684267389116728396548524184934031324950804745532209349627585383324526796473553818488139627927389148388509179378308995134369454814881720770303550613985955871474184276978904754488059668283809772000075107961837577922262199756754037340422228556662244238077260447055263934948353935633372706744114290289802455397777939537485986105083412750647351367689071470112016703578656884604728439035343397240196967986748603362774214631270509958031068038958203391847625699102149752202682894499943835293461326367206860836997111063633008531023463146900995565162831713733873073330654767325747475921147899905628202264715431969508441812562717753792243466827398701611232830632279813834263088222116028497849815134818431422036912029044934126800947011056457266448405985844943077489181647342108954160569021524985709852290059292633652311007568206985538900483316123000426633053588505095030823237611386682580290264063632918027070687865537576351954765753077518694844782971604917404777563057857298962246878785176341483623761419467244137942806271643881896385530634537373475719630102686196115787949434045719424854959781090320252560296866443202718772808026558225551671382049114168942354433910038210937965830969988733887416168798157608311111837965355267036364779099481915870448998571153019075896825895270576769155247282098814985583580226264719425743700427014826674818105183674106805387938402549491026545518569225884802905434770929252212412174370999609162759896973978632499900881266806144436966649327403210599519876968759748172928722842854670121529981602105647459584906393171637292165429285748154735431726692169566876707556410876384019608691597505668092418712200086269305533662968616865122702741882616517622505974294643072272336457035442867505711944839275982329462656111787176653036519500459375919246564109330562399009238290952764257249375015301810893224323181495814350771874343216391458892997907928430061928552935963290368568574878803343703394220689208207640728086243953106472951113539432665436834715914460929102366254439159740124217709526436134149427468607517649745583588022320864439495715210757484858647508742387519925890820120922517910266710271044621238156708420604180031318640914978590415963068738730661895611081995407052651860494313184468477222043116655600824865756898418571022867165268693421714280455352641205927291400096871657562817021385182974175115755890855855312331631816864759157376216538326191087052875160369291444178304498618003055483921481787271951894125900778481585845502210120023713855331685147749097407557752976313929509733781677910596709300398193541478616572709115376571816854787443196284599495955839494769997577170598406621122976583353713733382401629607391604958539140968343980163596210189468297424226351436896566566759603795542026839253152561608323852699188705591016854613090198035670979104438233670178888849228453253402117146244358799120926141127329441774098609031478004151470579237335466059852177188304180936021669646152084028170839412293076344854490265638282597994047320826572946185437037206514146776015193757034974264838335230126119959284095838332755866234194933879837098623385218012365228828758439081629462606890213201531357559567943078479091271946500491232185835827591602889172682553413917546776824307323846058257730284579061208143079692518895027085616589783559258879081953295087757691689879679435443013872419392260565303703021101451880303158926064994985313728434713480449262587977342308194796430030527415103209469866081508187400537456075582116649884571679159408448228611044399310751118573696235794155087155010985049465991789741119984927605361497418634548565996425522680848753115178443006995394632829392422175057779027964999209519229766070962217164816315543004773514936527759917273751396761112591563350529983894400942673853172623065162655497420324722536256974444266619510651981630038194703585881170157133171135606521782979012186588474039497370833653293472171818428945128711322850511507870147132393827930624415581116650423440279712008979634197251178362734304679598095795125844134216729116852573890782047853864018937943331157366888217981772801485541943890427092081987462825996389036891030757972342718119996036069472645267162936635803225121978569918559360215356548345349393190471897227815138042419060720331744687524289145691349580860639508593126770775496553670987679801225512721841020777023685670127825247616298875888259458265640129678875806350596959208686106866331007816748170931231792072248197878569386759908853561144780326217321304055978839303254817957478386596697221694253065390971832859793157495586977243886563816357327129619694761698526232792930391812090279934878856819709936384858599714477291656546767772670953328030000527772622147975228826229519508203583882311054811362970356085773708199879442645474742914659632304221976525876038593139170434918502668464125678308262443509631994276781215574847768235563799460858222268737651157154418573580117954736636513995603216934243143857833632230636882617788591985229839720630192354887030844446855653507120427430650389411334640329643090264688339307351221304105246498077416895273571522658705890910055101314424486432581188184717857202155476883194125195810746719115287181125996844924602494440852220077337266145352702414021017922601290557354804102473994116216053160097946252491994929117573555676055595417082251259358903546317075625512816380793476388549773691780032013502919370450234061214460639372615809519135087654437991935963151518441668352734888236570486421615368179057517620731456029655086111580685032257862826052186334762936283001256719627219345932967055110332007710062679123657865486702057191204735547258954853024082113270589937258120177777324031430470360487058933292541597986987623967868097088422202091542752216262415155363463164989871640091420818519725721273151663322327101372370674668383991137388382614262583216619530229667365733514760598432225961354087563627485625945355129282336549345236120877342867640867176584487081589096443808261168122179463236414828142863220227575766886518968902232097738574347468685306016804899727408528383587201581159462157376694917081439857042464404332819047153021407209932164664423881137512478391928346288415297979286056170194864438633039693267096572140982513404294729393711428814886093844833547676616854636045240550881460361713946728591216392645554301648216427060391788080838431507199455295963302644663937829195439513095196903107538777264278360357247719371861731306971208731508196198176891892673195115284093484106989175332897667512604513908445775597914280204396970874092048096829262583402751963470545859886864666421505439104024685415177327818212204041416448974657162405193411655835136807386324577869461222102404106024216279525266369398565151158515104968243112331968611184339117197229565393125018332400229200889622172603610002695240589698526685692515052090711191032443869601878896690201500246822801925619892731283854262719403641601403097706131021854428466866229187167266301682840456162473870273138389630563350157019001968175807697403731300793943913728312642188740037633350415300472037396794920029765484572080936702925277105362838987799127895461058235809020431195786450263412919036350962247540076400852241740995796815425758177199778150861700755856702134200712183124759610154396595397413972674557334940702812868544166768710103506832847304315673313732582523335943248383075151012007396070157564422123037333301931891905528347230779596500583660906237960193943315675293926685278625742513595834020504113166560499160420013154460025094272684462463157500266286696152089624821084215054107122456665033276804870872667902536315219180716705076676483310649417570921238911678571919752897678236986857021930965893321413577880232633280431815684733490970404851480990492843766060099777356508391855987827832234926671864007165361020630415452238598893243509605142410346080931957904516092677354972128187239886081046480783201636898781262515231749814555371162513798364558572986073684714364270229657961393694737793416769750143448442419165611179415495757417535782196094042674686916816889953484350850526375218297482093909268868276088096459403992634076261972187132011547166182413053261349643078755659483860334567294653263005086480001046592731629369104368637463377506803765884717413483435774510577203676701332099398125468790895313984897008106333060749138433051498172275809572974223691692089077026811390138834677048378463146656122570624604286406528442153144589421554800029993329779098174258533393868655137879017390687548757484796885902946894597587662102347623818004277024989240252738970441725181009658799334997365275520870754465965938410153338776685160380385572789544603973509391799246481267041651345340777123530476058832012978941327432809698092973881799647043591768664858269318320168311369655615811047336311908020249330063612245755871161995655382660144607934619433635347880220411152425219326955097522231158372157573372838626797514495241272324959584778512141784866358283669770878501962476711565003682262279993132203204327828995571507973546404745993897924911404660936946586774526883931179947069616718404939044529560100897463280424093807789855483395873054197254642198997435916039461280410618277124595649626978109413473703576221238978093950664008278924857810263166870170970766829628427703483300778974990045790463752776129194959698656166722638491973757874090053245391559056423215905417800989092390586465810868883606052915014257379252098700610462694870500030703886292550646323927474287128497355799091052799749810606710154310684044784944871384774449210641672190982761883788246335827461605960256553971621219860125974165532741065141326291299874025120069805215624793071392931762438112205600563471816616190989421949995620096876792017323801624317734206506378079172688993970146000031936059002836130113899769735574277446575485862402773853979016303280810580662482621250981487433524394858803409858612330550789502377172284873396462785720718188430241410690494667319943348523425472573397276287692251513808684581261561949244455604097690574194538077671085087600946083022781895050484712978531749125437933703050327098807442631379498750232036491864359996069521500551385300721358200825556690602593551902140513012711571692220253508535145724704599901827953717058138048238913608979860842637320057277240738679247854671323512459289690572225205294937428946260321582426356446413768807010992019791664359748193334859036284781886818396664896902767157724319634169806443542961636518069391767847478686964166830128787404986780908703971563214766043900895200736833309920241298776387310286142402839409907058620929341864143592925516999840365745687400510174853136046386883816586461021691873026834966583387721511989649524982627605598464410716060943333063953055062248059827619803458175158066057895804583582069100067359738504386263620699689932984914039082606165661618567747916984569885761725319569108705931208467647053717804352256237224295442523627655063118211677987764281217238588522274115504820326809650369128602795609151325898336635618267863904568427587779523124710893533949698787339999604709988123691736317668353624982427752462447109438581054558394214757480632110124464624434687179143678665425454697778740703310184586117105868499253727981916941672997692375425301757743242366008527084491468735707420645427150957115454894520037652327002127079613136208350892381687804430866786187023853704282173894848256860315998769041545060336563269181773081082220790806553663711700380692249520586915286458892055690555253596561899889399007403682816343185512297988267670668792439657071348146263150187854707791797529873496768541368478341857239761483986869057634910385253445079129522517450719282141599024816042725973643327671947983094818755963320249842958783719275433595115154355501310372489293792497300590515267116812007395784685243523825220785239817429560858165110945923934349953840205505616356722528149130956970808421365307490433931477090753925775850347172047583863903799828506064490409303253610243277500049229032480995298304237682672944996290115728690762176397609759111873900298486617047903413616231664151098398393474579680161289656281249362077625274516809235901109581695366038796643049419151015989665370180292797873699392766886041724390935077108496429396535521165559767123331249419662369793485445212322365646154435276872530446582500720506697779372828130137728923885425069226664187824505873161329385402603317530328759605208698784680161061688633644904911461242532004746153982444141741002456086381833728966517202942621932993053041836576051402381257395863733946848607855028062765049360665575257461603220193735570737321455306371846507486889517894409684666004262160996844199703839612197498025725837588842095309057155249222530393143577374978464621842890154010352356513829900704334488925557646415628167186389139388940190441321382774186870140684119579426888038255558086480067141218310068738395982880243524046631209721617187507771678212215128647405431861837928227751130748071741744848641578027817563083879772507177364793202742990396393557012246854101159707487307740500751853608036274701848262772496752308103144028509343140812832373481897547622542911996839420735752894956627733585410338623412498633255463490743207011546965664081828724450659487890170427989795236554324188857437516506176899238394751828013863010947790084110406479022228836077374713527902654042846854685212310471433839425198232035477101183955076542891179835188863644518262263252252666802422283046976668484056539762262584858460482097521775264613854636368314017429441838472479864822803115711401045087318716761987810087369362968855187559924220686111991890734547411261488952199043949724956236679780559376721385973559961960746277095391804415815691131785028200032277642548934158679991949708067508139689075172971799309788850702628061792249481328817890567111396219308004992764454343741005068966419971499729365530843664863923217068638967212126399837254642182414560190996993590025112274967987990626843911885081497011191064299940474692426466164712221902627531259873812676445522279780478182351534325244143976713157834246325825218501886083225007064043924397463567458219804571486621176110097692717876016497229098860727477527082368912743854853049800100833739508119471297391101899113906178152358808871473450764990479294316308392778813689772167990803935609032698477592642898865707290854463628116579788757384927779276267577160450466138888573738939120336461706597422762570543056996421152951732626960535030282316483215457494084930430391195581180017661373955627204208464345307860119036250504717483777873008824056885472598215887423852957864178641165176229233834592581812924879184062065442371029578762968803996958933321984261066801763180949476683489465882044080110279067807527168873796226315933216038329028699151837798120632571083149048845330615177818475784560367132394541334905385358793607483010373512136474560005120216790850457298464895535515763917258679774794012543176533687139784463229424371763888041851555355394982918310360001186130388526458079476767939863128669888992701369313534099840549537771901504778310790988255624471136804387513767972392223930744189351159574571500006524534498331218124250360412466372391400418098287771840371308541784500474234039428570930879422489254086962654942438974620939921600971642904196273027046662941353391659587515915945345824888552780436863075207713773118675928659671653891617135173208504943886535004748475779218753517570443197678091204901322737416255013481623626238463717183846818289105096553704032220171739103824310934995655718460426440524949971263697262315439239831988910760577644612307622293011224197611146693111537958817063774742790955295481036005985899983191042712451666872610560761186494255170416873698419841554940217626590471423864262795672940976402633946203338626897561908957944544919506867197927920202760639323681445812816820300594659623889714068383609162525445666819737405833510985098322492277044722645668944864664886980640915647612629667618866976600652952847480364619522073373320341191956882202675986529464180381365701102161230676945273962061430574473925410268077184318007381377760647997497336678174508161965668445415121906618231179884756035881786482225920453935263510848195509209443848884350132927364482104544204920433378523154922831964134700245255546778773791717492518649427192765326703929577298366357279473832522419375160477069031853708934362533522336889487087830358532862596437802458100488034455541046416511733037316293265519656716083595602183133746628365273437161065480954072177973322442109480851503908555401611076757382701208517098621683761500997269553029969873369270108302127970646220631652358772018905742822096804859247566954341859209491494771430154367422097911822333684349790416767373901647798733992339643228585367866007496558732452050519668134113467198871211517465021190862369667620778142464799748564278885436759501673742307350575736708215038951420812808800343576776034728411903995075708557418068291923563394307097383437793512932809233279211777715127333726329567493590872894656482725688057636733268044797848701206559847130722989780872821197693652153097836553749046020034438521896928424254179511065332685420872201705102582598777937371279874910633912195981792643712684628772337730788771045982071119367520199311991660369337900963019387886094828067957793221570704618072670113838776608933106877317888444041740458454848695585290464289341045500443544314103449333224453901856199061914737286879438443223208876879128483689029308980111661389843929258626123456877807134023700067269412970418277831634289988607272485548006116782227053107599151642488635445682083734012252734843524002298473270705139195362991811277700645184309513464168772775159716041041279904752670772077115952695783583113905921751786523917933683066757154460311578014946369702969807096037110800104015897476588643409046526712320435075566525635826189993385682961802326127715503524330873610240822156350582541760491557307832990107261791138977001638509852750105514278038902619076841358772859148847955566144770178984503536641582128314374730920546714886668595455417918248634684665346664598267800025239768329181017862842892270022933974441304607196749010130758086209691662146133769029191040761071580661599468946367505521735876616638294721662298312623057215581347136448352899090415609040533838055416833359125751032659354127036289658623085744791112055080740794549151297266080001128569201913759270749852269449287990332371161965168552822656367117436750698414091376665362653935331086288632039416968881188098989158410580728269829805829867501753293528150724257594689619691024448304138152858646700512754399979467154612771830367078919139935068154056560708511870722607625150997567265706451212850728730736443387753762670859156360027571382798636251364990287218682374097340868798718891924206399307534688731279875503579523416643810236195448880006502518791227865911761873311339748509406514947505280082389330402663277928158894712155602991943745773877372701033964117815871183961309010692872672142347607371539380244143610279307342535428822216060637340585023047659974528384738988349006029054016695586588570527982791453229623713379272114680648024953331982539877781822305446936294136388744732664181617190223238666667098375805603221159961303529217399771781099269639657311069664718529748221389119283616375319158675318479285142132222496690409047285234002133459030188158513002070911011250434526209309115839039714416072021309739376473500055187218924329932871842077481625649686455430557035840337845596488502695701644290134035448806097951872186540789837541369420007173523983245066153037915347807049029179698741270637158937895239184387838915509549479780788477755248726100279149086131838388390924156137596053929500278106844011924376018854442489473503103014248431943065757595402152980588143933080478562499351429734676005366877711940001928113179769406570671085612758685477493722330389001830420920139794902950623193157349548040866054611487531542877845184923383822588298438221937848164049084671682736806558483070862864588890322743250905937270187011930107032179625611662596482805822023638074842565068700256952288948313490477243437741337943051673135269597068441176175638096782800434137055551061838821972279335210825805369706740101254976494269760406832763321212285575506747575339138131473391992522079531556278058389102604810273819745799187590312220940056395543399471737058756686600106415201189000179687588634574989458504227484776086782845515057029198862345321868753459483876950099767661978859014471264012808967950497471405770704607246755081377024532679591973159335671514633661079958114546541741128220305144501160650094577157846347173312533563412561319144593540090230870190198100405149895923184932122896424815973837157985783036924433340225598766594594015157855910646304642211480926951364607377345253684088211858261279206690493733146174507282993314593656353220375116341311653014428232566215366089601757620549288728477478678000424888969347436222856569395078572899614679392356822313198494302300454128200940520151481115565531914865559682914438711352848107150523242502594782775860307919130127303541718887734639008159394278219069180241451136221133182663447276623379632355233256561687922367096628033565960004425109577899759769784161295664902424661556408963424874721678311375009067373764517496594571289485219219792026849538939407416428034191227374636593170379049115676501353527455199180115266016643999756746189331503414238143626289328471257685729352375816127409202808974586704025262153398762387099260968965635690076186971075669135835631354574049039457428663703796440573840470576222775632645042146134602640914143352173667108182115185654012621626477012480510370726411660745975219296027645725762886959747897410434247550907980572985432419369534921735404963675207643541295629884348201097762017796214184966989835626471768978535840849155219539184577928860498260015853569614581315461902321120056401915902280977565513070923579464773052497780147643919708907762212928080996615412189654638558993564584942480462245042385672554147688946585637382941488248725621793157567014191594643177404618574549536397696294884910775831211382259579292414994483858229180417308974891636878782590611969516320684065623418132222522030864493558101166504034355624383862666432660185880488811306887843604750218737060118506586703232916313854927935551483276053402833644593882189563073624406920035019892716363924870203777618509182915442733126085029997182271922075668592844299558727311265283465890449639179760846935197797901962274650007056269562280671207489621609001473822444010489888850052928944473603738422129886250095824435622611961598741486208622596243818006906782529267610607252064232527146539801797934234794173653244397307729802852447684691496298647493733506696579473199276471607440146531312204393031195464271441494553963129347923950091680594900695863022712590365975452648659019698761420964540038360763939797262360138377097170809794536869127304080199302623130992404070399473763618229755710286835035263990006447421795750369326491268816956534533097138346148549516834957171966303787277613640156863821127472145391223525476007335385941244569557714053983652931920461926269163660984129831749030630957719180934761073058385322086433534371238465609054316101926350297492346645716284820846030855817266515925525293422913422143712806218820442008868778672917348073185407166650474219304580215608596369189180259751517191275471014425339561157590151494952017353900567808326961292354109467714786677682381072514490112698331533241313240260948827332520432183741397658994957163845888505361492169772247958164097474953693809888999527961361434858457305213590090926833543228619424358657981325230543698282718008990884472537766277749980390891907777332129237767756548328962091711787811328646499933412564894625954057806779117927029965204678983620481915465323707988294906169729845245362747839704898098940224596863461349395529107279473623229841939794755189106949538383112608698253559963549877058546637196914223092856499749392685352583652203515039607176374873523599544410559298209427566627991330523556186495041965433033039794635682532993717804008289034652408010438770823291921840376880620570938344337612071603690761598697508686179391005217830196999155630959787616975509966894539302552407677085059847798046717085340785670440509195202118667123008141403674607759696513688362586236701570746592207254152113880552072349834896847386489911194575298816892552762585790809400098462580434630132628784555503709860844106269710358688203628192850435803077884863552865444320339096180841163997110218268494165665502408983405969233048074212389226143163216327699788235692059706117639471608623996648435081556929572785444409036337588584449640228290099811808241774737206200425858777851156408314497078229775949989659713744852496207169087519978871428929430829681973025243489792728103227049733229580262757801857118102130649747466326080440440847525491573604606443078036475510725864917817158357564203245759690525647056751052637660124305202604261314714479113249995889917978924187861271265222667696907792762586779535347198372644107380490517993435878533713715241648484860781544700378061955816248063759921063880805397167021803439261278313179670200643305176591987691097885014185911775802824985522771936046843682616636711148881052058910759171522572239856979384767680929063697349542694584281717625020537191129738802787895391683442542520612416333595535091411728321424798031391915737028571090856110860001997613047633841550544708416863149931650262593562759048505664720238408556018919236520204632915674315833530374311524670171648727304630861697168035110597277353913442607998330569699887058149700734321031483812963555788382191376551818557270078395922335614661614853106560023236169455493087451244574501465631914029212804784267636499089650206982060135917094153741379826227706456796246996384550750665344843295351056080478244929842705820193251154447854687763778566069023977809787703163281326953718630510166620474338897141261553600084665844452285416302322529882769084347859158846017749193509598667538341953778585542939828362350412917630643401155541478058234378896034240732978647702642974830638539819800452867173917164121976532144704859710131388297964201451462363958067893377492717531747106123741680091922593617033655895464336124737556605114276103443282300467832304460171395849994736201377557806626236843039587605794703063500818333611603846599160298044966076422139211663700689989597157749269737411446125678774904435601292305305225592712601620128966753250325088505567619856986817493427684482774042033656721101974563219646278633870277868059345356051631618854033793108694650214568277693372683638120401395939570410248041539026103407568062970055198963297104206178119833480115422135027569094085924179022197197434442297404629702664025975026729209204725852637301333103801320378273021691135636766743644343733834553971449591274282149260475626720394539382621912052762609582042963150944709479412953452027444266817996037129410400028149092872364068018804500653829044319263275697913317134026370089570626568418640046637333699061468427725925924825330052887830485401772754619794612908347846143473952098199394159727891953916859684457053804764681695962405337305080197513400210792926180860611913809216996051346611641484882341647384438568039118857051525656138834955621189821400526454944645471292235257305500458463483195657145325221421267399765523698685924192010039248842193964486881033957012752509203830358535755360397051624248515769569125021954182548273669166850669621656717768114691840664257963652328483000481851535080908853413502047840316690476701829300974472178207507636913209753109415893807357013755734536002471571810113406827304413303187762054967305528751443490722838033401970098934408267430047622892042034506165709596573614799541410194738652900643404376711459330373754874748859267747938355439907626427057943991193372245271648324363824724718110201337535364880100285989608869010437744436188233124254060746844609003193882341569059815533816038176316279746154012207194922934045869230426068719741295746279413258217981864903649204133419632119897238888145813598591385753593768382164569574221711887353224035951495808225244016034450106291185998520644178986427943822053570000533599268351032111504166360450235451830862537806280369928110092225587821958977511997318503044217798288970635618671488506732845056717721097615592956644567916809634182607773451912208138223301444189621828490558069109301759824364301310396719375318120092309516138729105451195490876110514788559303036025248590748626167217618536783018551025016934665688269608520563172492152629318421504228785600541349116886120975992011384332220936919516841466879350578565558615936110656066999875305511536438336613207318335888000776066399267854635262847870534956318263394398759588147685540956895487845566438707924626662430086098581531798628612595330503843528231669257400100598755674181425503866273455270173948665104794461427142328597688824574746093954771847128242515138696691501819953494504164186393197749338616663503244563359505111939388605009742861372592138221248478929399157697756377258461643402160210783993625331229541605445344113060829762045629283603980107954191356250399077225794761838665986352774412124713488586113860798893206436358240581805359324235374146494810820560704639266497742061625810758459763637650968488738113398335495926229617122558986522480105201102161940171657451013863719458374127194862127746815890962379993467015279898641527850226160672534009869189043354109246206148951116910752255371435452560780292246360020088943616772588377904691956521446821427013365373230063101477754340298552920173343046133193996436134919506772612550865030655361231418707615064729682006163451142682182541648229029277735084332515529343107641224163075670457145110500416070576737397440326468194043914657542489968482790421535662912008140181244332274701329928912310900815946608478307034375000219169236641412665560156253888246788421429109409724743610179075678779910567521245612242090348139037066216610237976082683171715902463037155942163308319429544335765438258499940481861197968951768709605199210376406451861217830536463767738787223626321268646146656863610170316314477768060003234823035855568660634898842432371324978666453977838998553426852794155398759723347483767986352989247925888354095116627408121819175135030533066176215810746343979939987187594880920555711049046091070992431563306235193167035454133073585902840512711904143572628366863292663374605134906605731288401500279673763810752204507553296489025869081582656584976485722613673059895983307637888288284949073402924249091350189829662548108589248027285994063722141651092579338179136008918915653713488430082220075028424046678031612529547445391075720209400734511225820689870289927381325970246230025134220437787266326242322588306760471201293816277242435592052287147548836808558668277937783158345263883542264742792879016328694920359409141927707534391696804504643379742947810771488086743394458484612615398970623098280156478256194401712618778394410710007170895562456581241508071651668545914133310411769650038488712045110009649107332997968092251129088665356286099248257615528551356421213118761229268343542621790731923223876286635994174508431360748609770731314167390329960827390543662195933590808364798909933082880365514211554988090028963787485675353681186408461285101142048933274585467973741823369354241625418788909043643824961557262076914960101169776565618449752294469377468137383935418718876872737468425399397982625720963003751917626525305454035802710462033380170354069787011829077362392760456141936428678505275917173508209649402648386385974533424500509812197850050783961925581984715959292979893655665606052435318627843442573617764192954254476903488425060393518719888684972824698425383672558249988268083887825529948647846510724526959674542286879180331736878991979257108154656835442307909618476290120990559316689269627204686324666837228446287952911695387687542719561303956151317612512075818180394780849431579731887225942267171497323188392183833632156164412631820730527510904192216985094281890727006013949278592575912642410789083437684024252967707770448774074235273882788278508714772132329613820911527722181053764224319887323118684287494628643243819312478176559587803352781886859341005166651324301674107958511432284144105940071953306278833703361709250166353283266955797711885838771714439370817345664027059058828260004474006887241673827901558789606921469298421384354545739286585740168026739240370335279309053252871285946716124569500902820642994554659324799088949306261038473597560108503526465894559976509921226381774299584722873831141228415846047825367032789253968273644206981032793478131790220935258803404240268401681149477102574338625403418975232150887584344976939041711086267211264691402447227284977474672863385844485216461221619977928453599522703298804104412708199749602430825678485840656377564085107293738494281902595556899679394255903719468486232242017676679551027880735684962557502425871038698541301202777116773938181606288070990082075865653489472552698235096011187239973174675131311307442706230590146851878939806214859023488564153384840469671645733563913557298965720877036936056552954748903373739883149606067652600915170940454197596353720527735310649452620440984961593363002673751214428639024903603860936236861989011178147503931538738155737474246425935958683829394437843664708782927395774974919757591355830628220446321190075355983292894884679392938631548167563542413401631038501121972623192994425264610999425055171701564150467474742597966691043630820846117541072433160150690277478902562765383710243816521913773922326950983833470958648921547514136982116132919072871652701220114067059415148627251776499474710942266867952377382280053738185293541480869083159306711717849494528660301193139855575818346133845496050107644565947409423329639835319172255360708350972296090077600566716735280625690048516939682992462451801431315126959538279541546699615964158448483582502298536803937214170816167955286636325406114398812599790586378200582541668884706358050338916501837981441179403216705707294952780111082112240258873006877941438616818981343273134714630066509210478714217217097388225814153115135474134252224232576933956980051319295832407241025385513104686794747153828560431307066494833273863629174142372089725125751861116558753759467242562615933119761581287032310930679275998038994158423010460437759512797765809916623065331238948951374665708257686054140994612123084386527642322422745571639989099432040336899192583847037448344128660851705303300249504743743229925720319918063947303218418739152691877033335263501274484796595209936616589791818405019835990803962257036541843723619570597997163987018422379802788135466914772251488154712539401094098929132939566256759108181343115798397764971374262287074867478539889518861986183938390573890739280073310560230471666058993400674927770502665505497570755939683679206143863377961503939612312943907291328954176488581896097568428204517608331554605168604791643335878609358774080455707572050432662156318578674997217029310647514770217593720958691145302315056180949070702802652554463857556197230145713164392153618389655659075573825745024056542132363718674660904589149518199977938872664909029319052447119282637539548626614013252821258471529423959020097126710857056815053433871282019620075960172024699786321842400411057415451626047861325485213432769713846085079516571928151614428578252681858022950088662733387066302373728756256177847347937149190206703504277569424859687963217305213578772994035254988964047052976378963459207566780642596181571422114203196185955724642902022344706572566588865157641108032198529312148781986985200810526832682625460552058309441780123756206069643533626411818587541897433063552087104846736389841602424528131973298111387668949336585082908780125466215817407379058564357790125983486482449528795793577698478049415899692146030274315747461398772591547635138691772281708260185657251696461322269897679435659137679192560046257274914099965933610440708515437176786875043910332653313872707147935341001699705946983322051743229642708366971323175999454234439939421758512453829699511463243594189829168279217885586015640447250065463628656547781842197110767977783102700678260635399996781495956826046925243309471909289328875670163229251861712728702519819613611008067032323519333872204534600587412453315321712707902244060347260660774202953757243192452304920076711066964829845191243042069341792118629698496128732717882682685634025141041930543198970023341653965196440697090942034975503681496833021744724545546097784264700133065376495666362488013351887091901746893156105850988845886498348441546316730854284618818068775389078094926440808842033436093638218867355125376936827852420380814888254626964179247221439638513006404567320261624947583722058817303033013715066504377115989665297765264769860556090877954384663623735939165276560512601261024750847597115455195422254093095823053671453373097941503405664582548553815594702416244813158946020583083731151286102191936146220330890315747720313990388018288257718321556366385517073259172074973654602720767612796032256795095696886732982697262140227516861152369461407185146622569423928689573528878526962548870138949581094275273153651806284481337094254381877947743695742422050520892160228002938577849414639900403520820719604541572598476612584995872293170922865984174295314286185253926865125675716519275235941734774447955299033498800931244425536577456251719360714244722492093808276014924977224214806904973802135539786924938929221029735837657638359342462872105813837828967781435951317178032893917159582085903085571871115535085298004852672671142596621516261798505450206824642165484261524681471367893530161361082631210481893162608157155652867241504361019674904669781093283333142327631390573937684105909932797599897998860136734992345757778019829053186486955832608101434693351195510470707155937978327612386842514116312477308406354898569689467148734774745421059859236238340031738632211261107879713014653878676242607140596664827188444630135250209288314856388682758127972189266666144912306816599801481649786758829837731142577637176128040869362749693488814958844555159139947195619394352301647873683264247105929346596597693884715992094860705393327011043496060577446991127198043752498737730479238184450630791623106898679160827749246579846719874816516198396761593744590937494594236526346144027674304438056237969864744568847561877289930678290845913321837918016075969832497170773652476632390328031141090199385037388392910562532823420470352327687076274229575140394102748540396907842915154990254158931465519179076710074416181340633487855582978648304023347237050779116068530106027761799350583306619205437546180871323213342052491555537905418754423906153571868363055685846660077756478324249362633929266539498807382859178788059904468683534451215655122383122264877427793947168633482569899882907893337744718488358706073168039683957582480095766959016389366819862978054495550686699719418582820327352488706116390981204584252544382807900153225516800526553761729648162619919650520762704825889216901770630339811490201040115334791718823140362180574630505488700768526174458052489500440382392491644615732774252810653002168627029217005080010721776673672858219888362526836172578583923619779465785953924929759900248996833377222602095989133897593916855205431624722742687924787420543412357797802897589803612389487821169061783370873908825549165746158158278156402089929135320194711360718929943122203813132581441964326026099210690106482801894344912213369958875184080128824557046359064261225747487096486832959208777227782036299903494238335199694949421732772175193283277583524329737120716081290222606784651621145534759369758251443424958300938541440728483331615382927696130068202041609102096034699688100804663792223127976463294351773262621484623197923972503766618415530614517089629833809223359016752940411291134112914823856523574728963997068624794975373259699872155542516731388140220707040465508560309161787321200567331518495660371091055545891648259787417365647836060275519292259531043596700956648814880341565784406467657574390021493110901844648738753448784414632461009304431269650774328217818918618016606210904356837200040307572844588229872347978819238689518967710691085747696790675836887946924463839293721157563077220342005870430975275242298316763194676589588222589427156053798287312793167207173349969141059223488330097840215790920615301221070542813973041865261957696202792864257753538471102131523364215810923605800734702482534338483856726346644710038015136962465509658261700898180662484479345660318487958296755341959718228999435315551180792205458968401435081699471717237182738142490288261973782891735979833807353082980913917543128740524128816599328104395447892323560885410706450598516330733810993681002775629214265493286878023667624805226680433977390891764053553218944158228679889125406898741586986384609778704716512749999447747788645762645326049486549483563394818094812253721940351582213955220736955212364857130382702597768541492695204772652041481224769387329164841940797675368904340950356759463470941313019153236584399335391937702096024424069846112447356291125724109496697943868668522101069190198226654073818317989933809402873589369087242410679018878989598740276865341470605179019840168973401675964390888796314696402078295241491855394076413935221782914491725615864062541638099703132100331339412775332584431250810149500923630439303517613758573927376829509567633554482758997489874977529325259780854647229180512488179961115760549712453323630622720111511868234115292710114027607193136375495721581076542762785981780571340028602026822087854723025194221092244078366616474992900706295459448360118990915555751436458732125051154253721764239869775438779722703434044373675798482461743194075009114784336511604980787645094584282203430624388451335124901442062076204847069589782038890651878870313253751763023099567948680031337656822474122602898597357280308238703825939216575298840251418811930722972385399560651144185262045482060313707003655859531333139652337549327673271035990158433433792570002842561675573869697818505063522487694872057270654771448058058851634307680535272292041024380868480466308524752150133839202984701643968214050579188158043006480993311374485800182636571487336517353822669744819077606349981516312525215508265338148892192850681257895645222816113560395308953311023573358117539788892145036928222412756252908288737783730806834123269368459875643320163707628322973729667904274192691208034537344142412727936788135028414249480416930420415297622597895905826692403536451538798504393546339701623111307743905072470276162549578567596988720040434094679918889832446537817831875632685014657735275064993996862116646570798947878015569266913574652618356972199049404528675338279378671981737596910512194196901892519271412816021189138644654883816307861979615064511515054242870596095307702241618874830380416507349212722792332837760009508377100685043227692142322538474723259817663025536146829553887136075777637336355219390034841885222510464634842395128844247801501265257975941293182990174395970578803543444244128329890886795550073427269336089721555205211492074471352056871822034696127738940174939082331657951081028097964688977950452803211786465807322009500416053950423236861275093855647797690180029552618557999966404226394448204957653551026993541916122199806059370336477704099261930226413648161081609365586953771911411090885661735103667359520863219784683241779252860836010690419179432609770201236492531823967164018730528926695704905634537322336409488739626928284314903479875467460272526246148130239209142876673612450858602787117985795936678893078639663372584109605184833151746861869511432003209423700371703682660964786211344281210092292456024944804949782340923516265795907374636883602886932075930120004528679860488137388160230658832939076435208856452110150567541931916137443247013335770740654596609421196000489613998276670386678565597845165941689948568735786141376128621184820249845260349084822579513637075603553193771525026439611252209926130637011660226826279693982473857839843336100185431246610523599820787135525266806559862545088396627707658241389471927018616833777336112055544295426433206708891199576152095765147866512828235034065705250307794747294157941323904042200210027921644626439326991767807517608108757482502684267939436954636375297173186927749240562056095214443281281345452270806349397463110219050284125556767314811540242767564830779665049913665594865636066712044999286651594921979222394687227682949265786879047064805296388583743449452207148646541201325615477291343047603910912307142323097645533428520139570382938136750557347280924309550574641010269757409824064449925871770727231891857252236876394916674016605012680771656266185236893030758620511613156059251491751395599616584865480444407038791249927125826702750751751042428034822256489554601607772314145634738667563554554967120081970036849241931843086224928481121636999947573198485463454173002550220140336369702085719356645367021726013776576854550001415822101746871784880728010110981525300913812773641071448817951557461830433041987396292450586224741746289030136044624310660817493947795941960578316032510671351012792001374934738972450931640315134984455493122058109017347032651874770808577641567822685340187326378426429407616954208085265939018623759212512635393484465623588251034179897225613588842753872186682423787818020995269170478825532431433021002348246295922366459772363466062858538366085227476123000668872136118235389181568967770812062698108425074280620496692789232253157774761126203180092397601525378915225138394547881464761222913868718215259466369313340509067719821283084335043030648736432876429654140615062213288892676410081962082806617418726924642184855229128860602831326290269962355241754695703139345639212482314499781590342040569093085351529086564052240195574662388030369535583423572228864940006548880296231125837349621577691425052728750162228448622285150667006697943272069919361252866252340325470522423985514136628713751278792781030308918140533253862717684792363805002886366770162988659466514899596036793059660982831352553280836598305232222238947657885533206048411246348009354141743177929139105064739536983698424226018382180166527215987259464141033823970897285075631042853371972737795831501906697420611020375918230874988665663598783570206822633604035396289653884949933534770492615244581349507080482954561752300882569841952122218220144998725047442959939178990532863266807664899446761107086645913589391205552849303938458870348654778434776506250056086625776715949763718988883664783697885446659412872320508375106818679836804715008625058469794987390859259613435517797963951621850377355169524875536383018272295146699462786545460755041686559917162934184550221988731427886179584025329998490216968329223180520584189691698285674977454879790913382796165347894607354826140630481151323860098117203101776917219989863688894256791614935598927232466121276779792805901280097030528336917631272552069694792746448685194454651877486946322847938326284556603595054045340548257181593782700767903065452459766329131431271900983046808849564969066644192488680992716527976051714396859390396520947415404850992087894906917217035248025987845805686871500894039847062758069687532427154072529255569722712611675668896475185138135674529844848143030089688417280184170172184102931718491421779182482564239242515271698720827555613483058261336943205706940725127852366246047299522190681404037350293348538899304581827919211022048333096792023886371238991627206048593896882726272240046310927208433404588134395769003466970883018335285126326008857587670492757692237881020765537401065816137145372408620759220345645757010335361182384052334253693892864305716198268550509276658133871676079266241214665764859963703617382735524153816549551898065584564652877998741014151598963423871890774588106166937911877243886185710959501736627084917016374491018838964901594287308862998372900884452614794348566186158794443728340285132730288003969217336223440990118548476786781272137059963647897276496916844805209153967643565257333357506097689333445549083489034438710961436656819268170766267019661160339008958613817399458473002791530300663801632305066968977362120991049509189844293565717722069418390806308410223925058245259876865550129888349420021218525309935266856347829292693670446568662438698607052782011276173433262983648323353676287423473452585572181725437264242252621912187138002962945668828370078400070988646538343007760446432232221230213416861191820395554497496614045331218743801364721032464374160888368930789641712991272596004515163874987174400292665374857905981590952757078559439831637079293036933674717290087268305217260086226688063172762220211245722104546746716737905636755267968434801623693521058244643854060351865198439016368418400963063942259816108320695431797256819908759306460469867572108324915503976374130312798677825100549518531676685441358080005060824920722433966629849891734743355481909884222932109125641319796457837934679481382336976300734381967370124731280497379855625049526926679537469224913328700556413028523042091712437958020453887368745252209109045159782839138029329471941583203427441865631186763829067768715380828417362933667613635286169465479348761665774077814093297314055235255551881272019076748785415182542004524337981508182268585516375363946182092735171442454441103686354072655994276695439407415422010741694895819377951543017705833248806517940801956944342631266262220912797159202548679039134997861177171389923258092426718184639363114551243070474802968080530118952085491637129309985667659244566434848319285115695360705796135699203337229424928987647489257273996420933663470726011750965757338432983441417263398853115216249806023916971128476179059415191052085223327428712755547554254557151915407639142246742180316180622299631389488880284919970314679373841733151932064128497228721031993156580175018138065148714242214183925641247778587342199189201594445168998867792573809553268404506090101915566214540986386490214340432776492343186492198371446372087704701734348061115968368633037968760073076937631970917747255368981049048537789326907615379115209109046685437565558317620407654193602765461797818415550137198388579932605457336467416195665770451673877680780258197598827998618687155780341977577228522890677951698559306563638493182843624944993997881716587988228780095776541574337904098708553978881548129146642297365946293953005521429547067233698076017166389641857851189286590957403449313135961948997241746187748436504528425496543593885893766692383887708167013546755446531309681919687606908777216841612115108750422154189719571123142351530040244248858152247787044488822658531234816331961252684509493938802017477756502496194035151520291867440959392826012590247454854524141449608188726082816427869724360809602307110230792300247451919282302447768100194008211609916321633624193598161198126906731255279977234960729702690224042339299343183183018366224270869316843381858289515030442338251873387963315317791606038219351976959495750551266956080265691642774548805990279508530599750905573806041862473098980955790855978143952544276958278547675401460313734919536278550812009429402320933914706715173403246859022188497283231434581226864854287123284066799025862440002997868708111627909472209985061405332013693002972243535569877121510247494759663168742079915713851975621193409995618336571430789356798327173809197620362449236830507952118647994841720965163869257386658053206576222476424626111604636088467173814755969480618181836732448561917606421331476795599030024602192532916272531796159223104504921182561281716330218615322821222162729043482630751883761604782987458258425458873206570315284270284378845933577362514224894551231535204599810921742146431972217624546894095440362981932834307754486876895010623420832198426558517169611524229374936480811340854868974840253712456271170629181610728524718715386763851114648791937443788621149752529212598580865924865656704696513558259357608095823147406076349313678050060094789201625901858146771927758229058975011786334448842548091271396655088770820592913925020205029012379536102770052535396180195644603201374688256951384132593667889582081226920302488284121697543007880453734061383652734532484427522973565116746608137887060073039754963699031019142405524381531535287718730244121655914023793687505455540863331308997898905121372928277225389546015935649265443970560382735371167391387247098118224489017714060652809410709855004908101622956383015622281716638779536156505857938898510904179792608059311389554479714803433029119140972086924059781588184003995330551237878712090142054858096997686455737374106917559499490112507453202479109123744716051962575573545271390664514161105105922538999340633349973591090123170476244948048457906589899624055292436335924011239583853694334522378774336525394683096905121808714702824701704420099490599134442594424998929711866138238385804590446918753316422114194582024520366553601977343167560374587004796772345595575981900660568448774610887494016477743621160837517447799822407122267009239261173317151767757638106585190096708093575323737561142152522628393036986121959216964581507595365503518206667199400514653751233360426025109358313020338407673477539652705815422053787923978395252858285086094360039280201147045475085008369301149489794343420796816268453479005063174886187718499324749425206486794546093527784980619450113722605554496264144874300456186838003399188158958756385462796003805947868595850457286351859209002024984693628663753571680047420606561689925708886398795024336446409529746764093658403069497659252105310322551765023652071712771127704196695665207080045295326365867854002673960012769742405864553482255800229096241251826846469990921884406332338582453396797094492229468567103808025311995370382666532138124574988713460124912978479601273155501811255022262236201470512374120273863019612368338160309106394944373579281251474232653191524911672376027313191746290758048934498972132747342221238801781477660434938227899799638062875622494230486910919921340614639652087861126100886714207932394303497411465314139212544101166494477813541565201576337384018103009066727779405295933404781069589280615006316975258418878646862028724114242329014860350664818766436647627621868656794952113003972751383691647762015784092762495454207142142708606170356413875831894084060602408028148793483481798622500896960421013756873018330344375032966344066067684915506526944096108157784155322405611579724793842404200199354699969477229613187869724028405432822640412671915762535743175320499734802868385961958753452388134072239290552884103714669991732685207308996881619977918460284519384304070490899730558300383463797130198852001755426785832275822407954528269933603225364635420305106896182523339661611305267036057289074276214428729294390407867947752269891905843751942275136213985180144123035402240163598794971117952996310188406379129732207850218289093128722193459838240522169156538203946096628774766037667624754692142796222660376893504533231914269861275736886308723643242583173316306915064023643755278991056816607364857144674033554659919867418124768567640934719296101004303826838990303928659689953149330537738532505148357935015812468465465228740683449097198942860409977242269659069962515846005754481101227864028739822857357621015935516177954732487381445973794817209656971942436367730457744883218236384851790775110244964132624397626008833392888184889108438428094977407420600033578409373565726119702442476796320879065032282705394236606175445115500640344427762498240151054726539504135943370118447608301513531017300905702023227677901615634633783580640887603734268092004783859654387394808324433255178359465142812526715679953174070167487267087567795141224376855634236028453451964058471287461669659979089587669014241352738179894865940077345380338501094710243145038389228907234073461829680248751892797945889070408496605511403197318017349508489413226243541477502156236214447846596625856206193796504817395359610403090363640978770897215226119243755788875498620319668607428917225504591321481640190326434465470530694999235431987654026436052350846198080344384936175226450565966967350199293385502801238393742057301859932008290365118197565302003865901692694698106276986817655255705158442162230108992777595484624111128769908172769212374755852762037128591191071214057262616809567915764783185595571778392612118944385523474051629931814711150047620892998891653706231749784170909329799704792100242119283834547841113048425719554777977300573499037243529223754677628589954512376257543767855058278050547955187037896452877363017663478509677129776624870182355862220295805251211326482559047858318817349575103324016646056827772001981447122516486459226474464002336460661004463851186123985914103317661672446629803671903691595875514260690933710793953675319200828912733955938742695354769131048715037969235247893612466869210832573007623227825874782967968981791845132651715578758064747898782008354471442727505321257127986571413852815110053041099393595188039388175504211047391611577175000897787596611643055061944534195976133302425770569691213128006169224717134425226745523054008677504477258490278625205213890592714175071091275305294903051822166904318834964927636777332371815035430530891684080267069399415576046401623168254795459920881047939877281368028234801229930954908128447095440340184897721367692754963126517143305037348248244506246130633824478216175232942077168046266114920591967303830280421267120056141858837504778927927176435933789172319659841462335805546081851343746786999757351485535629246257804839352194996902733972906161893113662967452991252888491207533301731669756313927128028162198607142227832608465195070040830620367365806743413559054778384670541410437391855338812819500560302489731818313919167233190594983138219672715095837666087449623196876449733661911841004985285443468834641702806256547680580447343122305823053373906086660097624158248757597067632707037736927084247678874133574659809485248026972696840327586669046215042352703329420814636004641178888560919941056026305544511844378151044990038823495936337273817569903278982848562802582980782886289948801472024361607823893002803677547438126318511032920621372310801990445094299290517340208249879443628650695182788629210176411979348878157554934138750791584320516881628773434490386305247209220369451296906828186148424612699975177807295959120963252226605529740620467644829639645706343299586669906319354794820782292649700498306865320562448272215363810010876030687240290794503463472602376466167590913328441868578895133242842468491279981573939674999583006361121354647281234264035661529829453201653757919742875368124457170768483343545709999727394047117072919470845892166655375369320489470847570032012596205848636913071658232577661408167799999291664216969850729816576408303428912707493914163449842679985430903782317694784095935225486275988039152758077985530834901913753828792653064522608597324774654820937044282430118955078873276722022455947967590210052795705099533064106667506101607759617272708245679662020163676060861589470703114920244623702621706262997993007098493212794636930735477642518092559720455234405978614089008563325595564832259531072437071935972611260839645027315828988533260137023700039350565066154969955826635424336605406101852927512793145161403653534350003397774166077139681548376653942485914823378838280387407051863621493366081109433287954164959188911507187012462482859216413011516233279026227157644823032025619512359972877177860359603313485369915332772133158619392174333114958082220488224121753608133341297637723361966759699080798191921024110178972061870834271721367393795468719475157079173818961011895001743058691983819318352140064945582843763928600030331773871943854773896110242546964612661496325808534989931059761218684775246602743141276517655754442448205037842005320974052707239432314903741830321523142936680560312460973320550288022784736897604418754464234988941373803442157338559185626882698107196125500162474028829587244865852850874621521741462127155565186772727028210672240067715363663536129330497906060804464077677685206247762211802798975562048458764604514039834289379226515300650216896651853479814184543088211483736553585773975716752041199246999634841520615124913422138746664705371781011018232403467743481564163643932202419574151372836912940518521323554174201826473985525380056426180083465016019425006010926887255920774115953974802812975960585379995295059770978829189605408365331014909866231698393465206228590628755654651574728782744985342071252344384051260546380474364342347703987046980712169090834270274666649372664264059948394425784006114260599858178999669001174310670972717408323833002922515026216269187146404965635658635182256440318692743281406699596360734989581567932823037085542443832165882815013487300733140512105932177755551005300391104591910716608974274440121441317529135895600432803652233788127900875661776637860100014164222025456272273832275370709015374380722989344376368016155745023588841202441952329538263669949401332243968180301922836808411032322149819669758944096144805668339973813538968999179861312700492239188707642532800266196044645752874721563665112197457229092666757256336222895206645906679753961934630212854926097559605319908461656622650262413847732818235193468201933326855956831305131073444576821505165751532525367357784136011648867819402476430791693007641913981507553491700187451213231437684840372649071839483726571069432570687133358977612359886142813340915373639061830450578682779993461146746222569692265024086929981406845404556411105388124811360944003582491889408501169486937113249068688964414876527436438538960767267577725799939820133482535727585684010276174573272616757619445522320509508109178382063700486097500858982535635737869733183984761942846639094200999532863659725644717332669851687672183430729247101406150154409162556197210784126353626198585010771942095802089818206614907987830594302600229960730667491305449718026765604772822769402657238395475801475437147729400553254814940733337929149664012683180884828633982791020815160432153684333151044045864504755427878009030221383292605187914617428648823701074604864078186069539630902002204444939356454169026571488724775072925818730791921376080818214359727972466127455530712395791622021143727110755303274090658436672218825949560734615221983369253039503998083318303402303564738742933037743863344398265371713927460574882368748626996776610471555383580895127762547183553341177734346690562260241733859930789230624612469821825228249459994026823666572246232887939098530027111561504973912841830242001902180492247512654343427934257083917581056736000005541599616989774125531681728788962210083031242870078840186450495953050222231907187421481372014913809871877707264697383067322902261273956453102126478337136581134947138370684469566069553332696591154983050057340518503082882673857352416741103679462531455766848786680610057475010100359838547157819797739492141524740351714343990164792521866682204414157061807018399739344050204490314158759771059876678756655860892174410235037004076330955619777395246832104465368120229846546630704666689368075060572079526487717628053441344706924595760369120331569003046142507388860387595353996845228548796187204936935960463837902053117088003470595269143698188206335889908610873338453465800263996020639601785274463468247163288158965193065346040950479630991153419379292010311106673705483841572388263450016293237360931779798683250511549458390550009269791154690247495258925637212524103376420634557569034863697520597356806270025041848422487841880830420608714510832059266872320063258723107516875800371594601004513137907952336358895050711669434161412039404893507297830507772585171348226019721724558461670062151070942419297109248143568183172417900187012860524560683389233679092355617247948390719165239913145170927477196606772865915994357693664034166066431691559570157638252791409005401629830922610168777489136506467280938409277177263330801931270312469465175477358548694500129650812859803394195566801262118095418779024032881992111338553235768890442969677955802267106314422646677958089342583303974876008960087110629151491772560218879121784405735603794395509159216687206516778593654224592873262864413115867253451244719611484603885420410498788152289393544675139343389505908847507618838141955614101257990411199075841111309200889600552266924360461629220327971430661026159383623075664308965410169525190805414578354228770944459844339572008903444455446746507807963137389190624735937498067340487382226450212844119622234833723272492109251734832604503251351857939740642335199037357543096241375951559606797151039330622153487054329919789627704189759725503501676884742557771229277135964497946161558475111643118791690983516157952770687001914580198257144058881885826839944381268666058782656549010282428996739136034983094195853329625036910128801149511953204090561927884281551236671846079120267038984903681970106585881048285741994909804748286118922425133799245854255667565771669841204804770321651527457855539906929252094181239581207291973441305380163294119118146418448619121995970182907233372017980921957111041423116540459808788038078972328389070643014120251916852380180001384046065741342956850763373251190190672815701948379607299412814531502891742078032284078785778303672491480997004614317477065215065184311372929163078466581248256271863827065576584760295366651064311575194596602111781417275629877258349779025185806724136805191416365242023628997912825604321567703746731406699567610489978577200210184088001252262668671938067891985421075494537411035186098645929484091440971195089676209095226023850747482729687987159516703165790399339238368461419407375909997402383172404022168996296833528367541775365004196502398289719401518352033732088927446976887962953004531623855174290803064418448084776716409952636531854885766690035268374914153225023911059999021290940650474101452326492795159948766381709896062447448502097064807999933255898282884813519423027101870847529598190330500547882932229369668226692931206352821058307616139953283932819776300535991791928707985619157870828233485312719218556682477355764592536237395886414454072904914671378137826089831048177876150011968942720732167188435465882454925897576805684738262587057733959046615738278739964650467399173936908857708294951539500185874533474136345311780052152272796396628385657904346092672756182300338957092160369489351554908268726320314453383056314116883220152580007721423072606009029316027477697614878818933829162456553155364938376874440433643248033599294314436221886891948976608232394043626655359288305665721571157839329649505926618493804412452044493797983655809805292094583438178822567001960665399998239347839169780437294090037090998660436578925408453398203835393989208880179195820467563330329780377402170007690395265869905678175892765798056819478102275332131180466591669883086642449416982823137916755384668238003730946501752401664110985929129163770467338890092193606358295849693363691483780081431468730773217923943003922399494219032647796233768591362260947413645810713091288509500263011810307303053922361902743853047657005741555033659233148085527453146870656614107749201522662328879860096244685780658431293751699583929819747978459664811658967636313923401779001043607176454156855913336664453463750210714021160643480889598836421119903775991734623886219100759326275033614735341615688010666712235339279494765799274776457066169726942836230047494728205885989866538147471860397398834667898651401861273594133696055705436301948842857323908747559156990983089101223288753376435197878284990354469779103254817038650039416040066972395676056686515874112097035125560337611357509308882723474060298109214093724688338008033681679712267480535226276432924839196968810390876148599717579361973101543681502828923494442858412450804254565656858580092359713373115098534126044449426580783795561693720954439748391123646205613584178928066301916992051788243055305921393936388079627233148898190338851942946037477214560294752950044857362153025704658107069893655428364196445794197594599957158215452230567071148643765383387527211324467297103064207665193895145731659260553776055507299816665708471342665153659480281950587985268135744819392581550623049556805676832223322576495681072546762847743174724434296651551949970054957245747367372438425749221802985253622222719430256239016988495722030137805383927277170168625852378511554909957501333124310600984841151382579496367659937989184762149752693052326480774545623828732039299191546423039853967070421952796216775297514084653959306700292233695179328295732074643204533540480595175513442426751573018420881870978251277142550545689233495940394315482437462181340676548382472277534999978046149659677159680034457647013158690315402034945295847644945332488020557475375782028698546436250082149327337277227229273322059732095170535948184252735483470458322592991594805919483316597062998156920570529070434959316217035337447990953984136180318648621952773488248964648830582087291061181781562304463425569205629201834809828171833263097630377477966393529316711371643111499383629680465993871495131530289681793446907051188413195614580028496998994342064309683234526246294038578080043244318892748250009934598390750856380789511824885651434833288780527978157153043020824301191434700633233853444790629565437909477077023386585741945994944347199133591439381272825965119733879974773230717286932862439933719623056206537466726942537135985162497571394056222963089043395345841885019803349487637921508489352317923925519163546933860027727655616147297119275271493964476891804482771918398786303087965734772471929117680920876415453421401612301292505888939613152936893115471351133566951710751151774419001422083739359339311523530307066298605082283570929655433732889072781521543851043872743979400512166094730773937388199820019847614596281479455075124333772727000078140557498439499740838681785658895257101488465290117668009318673636835859396296912431919738624072464834706199529810010562429343423550295540263030452926552955892486898876612815203673335468436049031074546401246384432798136595337459157353992491577652884956209362877889706273860383061361191554848273138695851288045388717951994354860418172596001398560816276846458699097258056736269284644591942878740369328016616476305339947943978570931436930155934609269429061456730942463925510082817905144868557588751663949029726854717278165811397023816398143516377919276433506447785121809474421797800904669554005971097759641151498307500080279835377723148651355446387212888692669356191617006189264205704576222021455959886813344411988667566608004561692212210473820960969153100929746082110611601877158213497875278734233261234115976203703780345743444709430581043660031108127702253876084362193936225840557242552915660179986010512001969446267226205713729975926076613916052047959266703656970629831722253188111880194029236740284925489490217159462524741350569801941693650486964047517111533913884379739871717182606437218417127984787509730320981891055124223747527849971590022180281227226806629839066213615060037884646619109115791889783266395908391591140757764986215154405164544585122921676919617687443778402220587128407608427940513718232690692690810305336098871062161335678514022712566956629446972610056053209276683648410080563895533715193203921574297093209910290971838873901757108783180128028642089367348380261333036193981048263764424236533861402446589784293266498666830911158087894418680692711221375089367192729688674798548595443778726367224237849966504850086868269460492007312025454429847636592760540850993391832997455238806316134607802202717829869225572645865087301102147014611317867040894817202788489623484106496000535565413992359226315112482996641456461771940378102584500445197714115981207016816804506231046203858169602843989596766443832118746968448149969409994058619493522953879499937803524730550155560728797487066527721470433258608790004262333030516806821672926318858301136845680563897251226004379662085209273600434500547188948077132979140063181540323256952706541802892882698967233456851438353864127786005274677309628312028389693431952227619215319518513057062344814512704418335747967880674082335842945709676720718244122045887045998250045643522466954169792906715850831960098582299992061496365592587499360357927267563554674112870963161633514538118960806218303483264006877490719285176380816507754348886978201763854786563147998326482978870220845508144791796218068530563147428738917752448310440630176937241857722414482182623133531262749048885970243873514332360301152738968998397107006349106770031844546291512143284565511295470878080042975406708953600050407456668946413832504382483583677141038496329839289327917209847436339373265172023226435512178625231062166230765884141755049278822157190809923557992674599570592809217809024410687215222890228038456697827751172399010509778578722458654004014797429986574800195869932189325727172169877068900523174006308258376539770150388627075905557371262888128994805384730196877009733964745135073447347305914739123269966028623570482751910006772346536021405235563367924658214793493928307913457587532160954937228671593488420768165494778011048538457313177691894790836590742810893259514646181100866680808594268272891089975422632464815499968855035676396731234854118536343900864609070555698318479680213010513291609562595419606407171380917156895865871998972610865740047500511001586815329012955840138637229807876133144609422630872846811394016076804061306449079199633273453813885113956389025353947762236801541320792862271237741780384001641332984040747089269192418413766423071128116299541547275804180786629927970033598624586467705749248319409557736816300492749945701030417412774794512615057595461913977769248553590215512635301256579736218197414659260877756102481233014101874552493629796016882425304796495295520670263377816561143648381224604202463964289621672951725807681952969440130634444054348260733445731957226198221888995801628517403175121730762162019899392746763691837649157577430307384745679630734192144593716517637451333069174846510933543537044140287243411851524060364615984694913460453711899228995331562790523346573146467583225913790376288444611074109952031310059759819684548377285600781540674180327538095522524226870743107991852590411708503990753295280764198458590179228398685012912946286408300388078408221666869315662558258228405973147499490537112128602633308429485180091379468732660309140143303907735631591945372281777380089944429786610538485179478483237754971398799175305159105613610840999568569802382232729974376227412478582168824971513902232185348277700243680949420214300507653041377979321325943292530702308654503115557558094959291927637647994043740208186337477852866527233027882833693744418840088010733043379049665106830456376075284442008758888056228570276037376219735244510117999394220494595298861604557802015207140500588695949613399373705813522099031916962979967631187586309550079308023505400063705863142177255645708756674482122043095252126092570648940468160842907940140452653641275750620538460757208417646134182834357994639516441104505951997452512931870626122367394108236506500577018801275048615452041557048036305914949154871872257856950102179796448904013234065486675332447729337853800607943278103794476694978211438231982025217008015405239163926891614574761530258450349863595952288602303168590020116551480621740163179486073807093385356570583005568557771865420868172044212704993731721895887820078146126885780378568783833672139459082981829494818781249535016693309438880289646582093912640414982263422292344631720705978272199883276635292838065999538529028886946025508115489655430730627569360657209801824198038457765341733669508092318099450701098548333085893523817367102758566516257125776146283498483123586895364878092260989961769075329425652163178921663034972303896829813408415232440754088623813842374422324962810382356357913502535590564552040135837903865502751496851872713617171277977018671990425481195478181029617218603812574459648369894942039545211894997318720978323574710050423940785149666993000840915912351786209573563471521985362010202573176554701675265499587835769997778901146427487757399853559895320775035504614451114799486892677491201225026192115777599919706452389056800447547254183711562201938010127131130938467734203166218714828638243684617917066990901874892049337877914756988525062515320883972670167869369015183884266329366474336884736224127441398293108119147300036281055462935147797864066522063049156789000039895060770205582928537631233936842595803386935869524348703187775736495565872446750139184781823875753423806430001220827562590403037571960123011703866584611095084372450950509785997026508887803727821752093032694838677382157475293239040535520558629787293261654792499041042876944203845510601668030944130746360696178874726486003089482344926606253391887149405007251423591560344340173729916132373898094373592164846910227626095915572446539665073741090739640867277504583639684415555133270877729092156903017927427368965644156707869940514354221876678675035387691040301635266148652905167573205473292947843790346147630017259004495899873847148423875753053661605943665141521844978110299617677604981715615250764752370242770245149085471695447585580994552270873660342250889821157476305789284437348160290718531290672316370682995520736047280252367769110866510410941291544153906901044391234369101862400456460283335274995990899294725152512548570471305733141431594884015752602114233462468554507890964587206546662259797910554254055651556978261508002567886409678062659229648883823200980118397051753576924687323009626680626562385278883859071463826919003282160875757825933107184837891647597125604918838017042820363590700566004724635543778458336033187446212077213672018729816341736173573816267513437687576051550054381041585976466654454881694873943682336493889729026417436089878152052463896911488893200564364162111845153271878959866962386353384590225788123387777880369403677761628369609389453047513343929033656795028093299384813327510011350679742153952477181944447023202784295617929423743393470315879159622901227655798954668166490027629803974641368747878664030991421554578025640427116133888628558409336870820281961395368385738139816352446462610821501129374836124979634571113851151894234108892061319845455441298627495541174482793292254620563627126418838242591037370230353414498659497124692823110891939517267368661450465375211099711048577814989650600617271569733733339328437930286907212420403731100932109844108736816942771307883707567866120160672671851702502829126139203894518492948456343399018528530788112727662837958733993666489678025801038064135615654398535285346401232589804149381317484547973931282740473739459011820052179329613404677702925922075909692361029905677107119944543102164329283404787122085539790441791543206992610608845435399595314979245755831714944170909010595021323321320831607898715241976744095309427765927037948566186459969866787827773189277869556872133509648637002592689542663938942341142800943651579358287389412264937468830037149415459572206579332891613187539863744585967853099458153817735979242090434951962127137775525431594603596409640633097719623102897916752007097116465980072863826713605643697248097496827605412202099332404059505057095468809290433794630372132831271634840917442479248602405572250789986123285351832458133048956731533278424424546803637790833182161631897891601656462103090214282936534958464710013781029366695722721103444651822750267204606094088080409747832702910449480705548732877426302459875358956968109690037641307665025733452946284525869227603546093516135579328147576179481236140904971157396410699009372302227513418724665333197644442645417821623932572665822403459519564850224125168819088111862161554798588673604585328319324420927645309104093187808775512152721752956916314703596462300119245389184057248885080805954210584154089534552719301438855938146930071453049820162611904009307712147572956770594857035609632575570403539949719322538988586397111896288761029426060125010234890623237518383183180376905131474099896406957790821729247719063222538204937555825689404795893131091217879139898500560592219045864998684756695493970468615274737031068088709145861145833225002549838170837217938295181476526678143590734870495596268034500008828729481989876548972147696114981529839693100536242144179417004228356115267884810106498238218072429339787589959824916550959216628276344076983003456654488690217888519191458052823725591822570093355444832315439507262442883554598827356265382967075754506198730078592517938729995450066270515145405138630391407187040550055048674798582627667817232068399562377607243046377623744912148146359026848891556596456270888805270005202271530235120452276813947930414133432184302556319492356068391514641618737196125040145358386608346392652199054279924571278364550479822148992212804678747239395174003387663968545373330342450826753645605206656780216026929597043127391638758587409663542441586497492666908776293115062520641552639342603872188002209440024686496780543500089479232197205194961378044421174216762447745221305202389602717823649628378006941505105017225709788308266214142466283882631550006601570243476161220067253892986003282395244132015583468870679353373819604400566845938175482874786926352916352431374928770864925878875237908922976053704427009366280915355439933410775766346229562193072381372201827982698826998152081788075537911528349934306924624112974425361883499350140218113915419392933608986881942583534774013252143707319656767724434980597091551069101281672728501272506320272822139753946512637177940060975131102747979919637711285122869911807083456515299272433328331137060824856585395110390291727044219334725774005613192337645156364551503165173715069224414914223650469538052226138148411414709487177979492298536124646632518424710776645927047778934047572182990904292451018746564436309202614528007738326073066625376875040054495651425795124315422569659071771887857039039975476024858186049580772887494748851737960964708064615048088277494932754961986890427640578760925728539946932460000985069095109490878430860447856572610723942379890472705183269052813034136920378559742338830159594625568144772965527478028473145012258186889697867606524305519877258607206583903425916575004213073387369233647995512269531986242572406306896324046890414466690682367598610721201832464921041882533917941400783564126627591399697268171976067575980191625216549167710457437289434178287812667863778530161488205742424503802661769687215249711486398895442796237178194381990418938264972773539445227854384504047423129714480819717008079174003711912099901265695166267805962263085641872598733494832077280780976345272741942775496624196563501111325800113641151733474998815367321104225912185439348364395014921214703963729350936893682911257464641457295166457205645555860803212840615709031022600658853033649943045629294842283144922520387101235728234020919348993213857786622888711920678173301608685012149346263809525449899453702808741336914704487434890583412745164621614471999801627218893205094848730594521121188855695423907519408933127066886839525667515284523032328630947096487007910798438362587645060682152380863905201139826538324890762702999963830450436550947297420665310355766061397116416787057623470974818268949791550134563682319336645499456188320080805930314191849453769366575914608162363159295613451397842188249150459589181396043806519950581390846863620063766244274672814487806942364370026051077105052712893058303635661254157610181712872348447874242870589277316409266354584393063712138978378678152136984583149073961231620610695717057996193970767708841370156876633292784954886262141576461621431243952001187504208646352978914116650508855629474795646324039806218101931996533410614819783928847617865879110590178248965079765274785360269589932428717121281870108800392258464065423537272668923308842368808964853809569441590393257714865319946152876289290439341556364199327977705788392515801869344509527965901143095685068428044186014836194690352490777445674324059055175778509489204949838177961698742340606352415297622192382281802131907823168931625864116515426198420424294963042530301956296744681382522608498762798693547901493045848337686049272295719807033549003302454307212341434697268529736465155596749103307746391558086947494615352522650544302133197157760275916978016908639323836667584882069325373144461770924893939611297059159858532487507841045965699141954365566337570406183645441083722771533045935230491498990101138465938872955350285536291679884913022804245954672663078179369060556839634616614171927457280199456314071556044650856753552698020648802655464093287506411684520818820391610356749669821984200743331749927612095834006619686048615195774711015042068593709790168741550335725965065742800776281629359590248843046957868913019568520820857626198141534590405685966634387769403222440132124450720985838728856023887615622987281914976426283217973897352846837841055844801144023932376848635301709793451116498583886579754949444617721284031157304632442495135058472952635643015662915782614653327141441964183998412893017225532596336520150282184701213276048382963237732721324008075344017815717643806482290041623327414963581044678814382402382637682899798361120760271897042384829588142390402257756420363992676771928708661794030085023643285175217173887384982274218253462462152549793800546736359091989034445558531285846910610734318503672440529866196748059158019263968514623577520973883216513482838640766319495999788689419201943900720787553111780592647069859319612610207860527598387460103089689248248547001920728429898320170114942188571126676205936538798151490826315362644218800887433899736746150716374249327706645694062818080001689624902282903718070137571548870790448650119156724355309125019570911854508460758933633471579162946435240578372252157606613712492202930370650038947098017651905228112061931663183246656346994303172713078591944769146178370363386972732050047805624552510803553104587244674223178255450415496777357969917451806836285222611442643814735655112469490424020598690178408969670059284856626500293364249525210949544782016745888977941214004980965712949441965809031540603648181106883980140435927457217768982026486401141638041739411578962335175151407648417936276009281361329946366139601648155574070881284594719150321160393638185641571815371851847221933737855749050454954900116218248010480286434582853623776896285514784894708880815442924638993471076841737740699023340192317066207550707965156730488728438664506527352408370741961185746546049950159061046362576035080138142036342866654142515556782074899898830688230082808569491994529318526999932455748749512453216545768308296681423726556624315114605960345075459822819269655927241274269998724370828662524297633886857956307668829509354951300840057034495011621049537618087707440365796769810567557067314903619251858494774226674805880915365306811356549798382974800006281986013379927247585266149625253582200111820066244892821133762094258405800658362023426126576647055907478203473238105073387622181120957328527514796692517104229245536588397879184204330300146891403423956006519052816950127611515129013994850633702366854396467288118337396849344385620259017105782975461969332802179305537137224014662899509783113924469688159420841004339934937427753251254821732942189321144064239886691146559091706623192696011680670262944320601597281285151177669822678480047821417077079586828117228287584337832599888337460424214495574000910371633355624610689780368362831350881525641186846947779293507664100757648361908828128875839407574132311973048419188643877457317754292224474500509826723579926696130515607244032499800316922439319306867863851035670584117678358448462982241578628364407376256289639520339020774141800848349419346713643906289364221768405330330031901894783363992034856240135181589047921894601150870678398914086832511196063331028347219264606874811392922096164484573695063404815948338476203033140057078263936897371954736929844146638181381204322757718896807139250918573059563697045428005569632727621231578527470936600831808330130106633163675911110290133486353907705971939814865919338678617905597579009595478146748804986848283991723474362866372390947662954139368884217732674002865862623041575456495497791120888239182310949382780812581378579623952192909115590257985208259532509529614924611884464863475915531754436410791442713211467728163879188749917245627331699544457887930756502706144761608747724578938915915239780599579210034607651695720092724312862427710943828393297125994734194274580106137290536990487797625817560035081689653951708763438461518977827695068121585687362460328639035621655416540078973117406640784269472983258923103137654333081026108592152862707162914300431589777228102050239977174341912919241255120689512212150221088268705701778619150735224437823742374959368571416594171053220322111715375896306233816933112301884739161486133469764346981602814740024737393766168409699123320882010618806195184212028509433155404088765871498674790245926335446747586761008498313264497761371950403367550724557388484488181148568806883045724160965697415487169404342134868487281768116247667276533249093633397258752931037413698856870053856793318602059521792778894810012670807974138894799164803737456198066762881829920357036178426110686796912364891116485875597581389079783544738416489874351615507005674586474687538628464915985152535209316408365069222573271258041441963751890338801852252798847799855344061386583287097924563356001132708091027303494341744325081957647189318618736565443357134195775777308897622511939284986684374564669889447275211675457771418203302184066114113451457546957309431006908071569567344650558053589237183978108741161190792087326297628406171526403630919984523807269328853927458930104913929896570895489386951875936387703823110889529434567714965334170664145914010144446593514670417712624002641403346575358711916611798515771591832023632551667556132413236514922020679144712192410922752590137499074882887186160070895989359023456817682655040154351024681087322330008336270100999973809457196830233784106965932805980940933030495934217634053265665315996826531334433329084280632917390659614185036425681483796009019897236010466186586764848422998866006287774827922896744712881702650709202617337345034191111896189600470269296265307072004526256048408640453254491385639939883623184284025628566179882890614406382283122920742948398266427256191163612693678647619087973233630858859753756173144799595159468109710542165205510918481674115044103239318770134654218575584855053127068385513596502969311497868126672149547195183720081968424892814104519430318906228134476943405496476601485782245616532686291115768193260503396247143146419033146770797013318439759748411182209985394097842777549256984027079408494076103794958017238825643884506080956674298512033882554868455329624198013167504977647498364948082158731029739466936523087398222563188642853411245843583956232793168210850124038060506478316885278848433015357340031526061705576075300097705429754553290907979463218532998908100804812213546429117866205106290181007093592103360012546654340615141887884568171471311363923149035954435873164065544792725107807741744733106068450684541353359547353963937840168669259497966018108889378200220647846166668137204471976129776270827276840052795494027515591491980173702453435050065972143675565818894132916301660199973023113684664237045964103283615347009244144286790522459420762857326193179371053050934817163003551597834177780808639932339579221683425746550616339844279270111299244056977728683466524323392316085069119175888519075755721976090560406266559409713901667201277778210618579972649253476701271390874604078668366148353142977827741398309084162669344375580247688255785572042389947314915918649633460452693799176020848042127076230921738217333847994726864189798536113364302325492685318830096047816455544353248775875238449132119461495301954794617084696073833357009875020796445038156030530651633709973563160074671284257817025093515155128057208458087998310372822183924055576065438771835661803372950789573044424362135247994877223357649161389426774450039891347925365925450707757464444577091131692747875004244471378799886731246727983860247881668950535366101093481506586123408917115709689718513676668763764466909146455765537948563132516335825609663498764525236599797878114711519896621463569503306900999903228779840788673245474355887457641870626519478319733377303579401349014051802122087275650747243322421214953443538926917190500893123929069165688901341644860012824030522712462212827044965460138524853154962264342121594461244943685350930954990318807588221288322266508983149223736087325669103001584023343854752159623871620686576767419121185256507046557217164563105780498113925926194075154990150366492964502982286668973800137531912468053114077366215977157338612785998010627103071946141656907899312013282455352889899894921064944614814515449301354054750726008569197047964399232462109077416811568315706489133040255558912065936502636539708202835116385163566457831687694548340230920299415755471024747892392881073058311469296080648322249413407418372666519721969916958071765287277982912763796226428220873938301610870326545777403825800674361104688452773027995030605120579622721349258597775268154552987120471601548564669741163546920962244935759368434896877106942134500480672331380692969065425668596097442184460545782872366826737102199961173623572183294465978201867764512751029542337263064819284177916568239623152941864702795124447104947909099261186099265621463231184359891293692456429294881852034161021943226563717552607162501603693269701686042131939761339407987263759316727066590613020900318285270827884731178678420180289387066357006600358144475084710959031967898941886255035033551878373370749893509903750810520749714050236806152598850681523222366283675664378007889009177560834586154152179440999905300401204324424692553601051902628389278065449385906332362694029445221019686947241383793414497797964953935108412272015095005853552034288747323879506327595166417239055051331611252055038890991756585928274552983604429833731191631011069616154547864405136100773933366757870462016890783623668878166063830714058519201944165532100202316841957208662934555390998454581617887644209008749938380881888246309009255165520033755593585889854066235417893270585980650796763897295065433990652792036298379328794141884907883703327360314468234926616810958929680836554630996292848301782181359393475209799652467822980292944536244592963682670688019974182157511073622354093440587085488195284889080882408183286215666898875083412992678502256200694623841519064998467198282243100931094985162757479602262583463750005692965822277232490667033201471400725900677558989373980385465795537169464261250520106712641091576809575079272129034931005854825055967515261090923346703928018954852901584891249456290055295488201632339189392320128469605648135345874672127373223733874783108133336013313655359486763950226588479892579723257033188255307913612726603703408998906695167468902000663671771148155905537075172495291810001684282490043288320844384432598466299482680950589431127098188087538786392140343523743368812505637108916895788339787892624925709769711058397512509391705028957338489447820798966778976709827443772867284926345218261057179139669414945850421219443112190045752955047048541718584184572985457529216063691575618995916075203564597011741596972078653467956387654838931244304866562156311612330684013785405768661267743882176190387723335884229267983693669646759815264108620300400526796207826376885179788572205384851994394250715587179235771896758068972333677767145730782255696857533919799619276289072536004360155772164769180065975139288955644978848079247826349228440672050094055773853869988619744929487861271660339821538172876703494033974298366221566375607532322086183333894074976777523269196531331594071979074906778932490223686320109312176870043717922339196935325506014151022347362107673879391903834996151680193914268542687215000136302232957199494445651282555657570098019581160468479234397805158054957358026301510997807149794005639161681395115144326745372422905013784243374812161074219744787613924181443882120331667315891516576161418288288144478688303829910001685719683393439046077809042695127875345798313861357733450270649989651910395671559933598368780336552749152881844231854683984330781021558185819031753666363217564092557833242009166474853294200312612480308126197546856141786591272692020355462194993266590144352007693345101584166738049454960841563143260536889906271028455411951910681187964272706509472729095033345873206537498051355207936231785591555235204449906591269182331079910300715144453132366798280572995672696584537438197689890987886621179952948585155507968436563472111746798030548169821837269843322132213836573135038176109310924184867857540432560063905739349692950072791290127281956544985366233573382153843161416216243170253935019909501485849861400223433555789981493828417839959360632625443733515940380359927105747598149804770907869533309352370948851838346645868920590921679139826580294551056729081276378637960456664609603935288753609566919123595800567623402819742492880672890912621542013628800732920819886323725532840262876260749986778881631460577574893625193117578308171556708066938879789901012204097078081253209925705046901123827003455499150335955860657832181412480164401734284563212076952187964066152506229539266590180221087850172575578547277780409671546924496846044063724380909145047376897129414442479661382566421212427915476224770946256110747893263156247504102344511313285344766589372680255361479470746151348796461013311005557213549048378476705290826040437436148110791324790199749143547159321836224380319399103622748420445073420961127766809178432375895070721717970414199530205306425051026321875159900136845810043202192127246003440808181223823030283124028811715909120579707302915171695291960442952884634235871056549644772660341142329424380168988455523513135730754488829811864916717256123516945797079939923386458218254219035329120716693820636109558180010439301142545699078312835750476486285270909212007880120848387583730687035314651388543857044516041223469617101123774520991870331801108651340550507923007125386591920676403151253659222016197301388557084123157452856250521037550144749090847284369499961514967420389727918690834583900710344258937463417834836318522188140597904102109669307701582442494909069593034080502337285032699495168077918539875467644757153733478123138680338789606438891108933573495063352780429509424834271443273182194807743233016041989867979021622322200595487392527245081864526616570823988345173365649989825895887436671819412284168565654295562053731757620197257216344242272965413517902212408980991413601781786701528715044095892973531351710180722396547914867283808906190394381168523722917366593386041358770494671480346418482703494097664077525687420291711261829619295663639199382137411434888071009501179793971524016707421491761213794680631359750995035637847771474676095197344370437274858405948779597730103999861505742059450253807737655292538459464849524962263774227761205463573423581143315319040895030258438009667369983842374857144352185224106615840397432349863841348092601456963131967744950899165449122217342013708404233813385053084551531728291305108496079239103366251626208037240051782058415628792569300790194461175659872777670738447147660046384725053888653838421373559914441432941031324661126077078083796697799259874154115814680043526631182968332049637473711930112149613761957868152421998410350994291529733045561127432028974420475309197453567903395415925037196019692122146289185526455252543807618484904468780341178953746372381043127304357780260313871074727167308417591412521689580956081108545592988834295115958061844119374491991871834543682022449528346623991582437140270970819812946135163879024060541652826076190990217917871950846324771844811230644397411790766810790434814620895064342120683473900857998713780625468934726896519676040321600226218546517188772336187695987765027671748515318451046509714964828520683872971092438839366821390082952110581951315507437694923345597180356415555050167700962018935822551794557481574640540877908221124523252146861944326118243290216183004766241472049561461624902968889777910875734413061749255462050453115045976768477355728245941989969373238382638226925272242747425608289870054032449690812941678690722710519791413256229842487501065239302457820083462091052577876399912892005066220670198407052971046490653832689602496116764178196970790501725435999463295393317072300854663580960115871523741522573517889449649402413540899003000716342383519659785827994841621634759390910301063920170360231006921882935550034117664752048477423757791650641945598532488712240879712627717873508475150778407397382902736791656909136915435792273867214416881104646671397280795519243083894682438238840913771697500095114248653665643063999306001774784355824410689842428831632910171644513845377219519458612302020858317508245025848979019906902362501843088732353372897434468972780150870868023465080773683509459811966983594156479941852180488486728946019780908935862111210025751203778309843945724696461912307221654926527619486318547039864232359697853653080682641575140871430701338938181702781699099548255993334995052787974327020147128082833452391264341583588280456326647016207718697763177316816928612751059103030826816939887962052173546630255103122987801143205468746368376954020101378498259830395256125579026555577278813145699457472009406091090213299251060911805207559363138800376984888346885467433456747062102856062031344706237432407985267639873675834000556125557876978585511395691159054907531652858039283248741257374482009851702069555805776579677599640278957952429513318549307000329903898346379010983362522637101240423935515647765660820616538638822536459015453339440297889818625720404195803656037172709136494475518640924126230270012577768290320121214913664692642218083432879687091595956356002452129261849689779296155946122470763305602428574198564056025556394845290972519075958278994587670994331852623764586990374225981896912498498455576089411429107403135707843440170366088511491243861212525358352797648406790002112853555963210371990368018263514960089483908294127888521153212919467247940756235172080662305445119983614279052716654909318941183688945639642008895077834630724866281051857745269793401150663819127712918451186148963941130706178562861344796739166774973515287190505900300983013613476476786202277052707586993577622451324832090196244890059694454981965202238142313550351724170591147444436447888978289539994296092339687517460798915258577981266329131216374930345042029835242747532343013512923484728025797296660195656949101390208049321671996008744392321920105802788037056676423812232862597938732982149331591545849993274548244365773385891601324839252031957098299893127497516045539013409566902298391358264355763703732459830536072615169465623382196964569916831280632358248324689033423128785184416061164389081188013556544097214858190563814155319298765901351899470149890990005137756365947544082432779682976590687022652681421016683004692125633519959575304422257054719322048245148703296919679271274644769196957542189199072457685332068631624073702867156146310681081490090852351614244558962449820186791720174825822860101412281557179832201827068510743645474544035995251026704588501819294715287150865574726584342581348039250747186561793492371484411247381484656936029008474408356513292339304882681663350492810984156812429456068390993716482526432613965224067422609817873784688217254079260071254161772297523693792760370437150852395971586596864182907841162051614833585219145842522815263376976684227614047524331031024459084861497331382827212037168577641047139196743914515507838339556376948084406475691750040679117811077208811175643138957439028554735726969606531668361444934414348410472009074217842199262737619610350181062108977812906046316913528481751904775617916906960790634811777286510419422441300692885842935432475167770205426520814297145785330371517395950455422325000561039544050102433030190709225785253533428859750477104857738148132182877493294247090260373533066468638097056152977436185336733021834213470970207880370753796156905360614727977422521320403452493832395984726135305835845825128497215572732933207878854223738093357626548038737590318761971296570557761907528004699775783261993887555256603134686250122749232270607264994783533638288707520172006929254448473722028317369270765985085936807208611580289890492202885681309334098962064145303593124620902233813449730470991983597760625630566254102294273756209351643591720108273918419220937777099995613447203519992881094896089776465563970831682761382117771317810686471353098326612394790651837646498615095980020396632015531931514628778266813915463024957192512233407620888254636483588212811602391539846305845510350093823168596997091851607744757337298366452901364463948012991903470264125742461095159011182091505211386323404888071590645506999442564969030497004156514810383575146635582105540409379945562142967871516717735081868468799277205548660556384134455328015197075185647992022712928091180495034767221135903820885320609675713984920158196977506747707526827059595086816728353185172097550110927077958474925789959201049217671589996533131922430616502776683447693843603212829201208073106002638463676487952600963240552531689217464167633821926026701091623153343355017240650131842466668522294866745979572494038037340410651205679109301128495572174551438814394845284735881972689465305055135351298209736494408197137363066724168062559459772215347387259014973197700517524920694180392545727260649417207764824660887168216217155582482383363448445894605614938745580675476317318495049139509733760793074883968422536933108956880912711627960457166697862185428058505350893348533532503629856935759915164736400725397109300863207312221422853228069698337594792073516049920872767567496069278192035259007565199401218152910764133757455707520730648255136867069820107967871858714333261650590106035946278670569047507283431302769343273754252707167619950176070669668314073073684366776665163666861521022308921604699815248281518154940801754164781304316171562277124383511111040249811884480446219700796154587796417838983589439974908980479538491028389449003567618606848087943158314003634968691316603457631306372811430305703166278018270675881980313810836602338091605935245795986966076063323197059434991372653497350118275534088886692683147595478392499245529008065782719577864065536210022130168021653689975312279561689485602629051701330934293002617433103654725783496314782081938131635192912832835072838257966726299270096100786599022472382456223903650088611218402102828421830134036901299363494358708226048565414816262209091582578532496269774866325628537131576435963650520393881606865161342663408751383936486696519352762456996782751326555003245318353502317647461732123180645357690964957545932102703792422219262383207320987615587042029171349668832430685399199828443571258649967365864173511913244043244859833336701318222352171917389070373002112614546384237691181508544841837759700302092400676335646769669119005120965384102155793013789604880205880444456493844647815219432073861255148353823651019882621932007336726491221980365666779677752665047243434637688863721576560900657712715541746083385887996486686834589500649912651343887744653714723973531172228318748485912056239963223073623411696017133192778199032272009904540209126616080598194114426630989837550285842450737159707880879181327718984999386423675814181075288728748474556584445070140779282794391691578703367477383122221622331317633977565178485490970381825666281746950625464197955803170065237462285939041475593488339168275679387489480202782808560195602875646278605372620219443893864563830585493201869874610017935830037465629212635448419683135913858766773974918415476146953464343102494252452635309678041539824404913370119870830939947007326182517734382561791915221533014086588695745429421442473557401276827887937147813499767061685981132726646865845035653914012331799136402875565688650435865848689099552108259030963461265311026331386580343381085575492276294916371904927408242873745386816469729867838095385756512678828182865048270303666625489077555059590399895448718791616931104618802309212926518694636840380473194850573619169681225568473731733372825415312064106754395501828532833168974005358565945406063414333376648756509942190133547945291879977358681324820758392787686653352209831870427793495228614037275653082574320861453403738789387820485161191677417009609465695957149946465237435430224901324352757926016069247701909156277066210537074816633935985552476068399381272889087844593611565241868288038143827581004089845206063563859710008137265559852018535765194260585479206576293281484327368444406935093698139719694499903348652232817099328173027622994251349944877214237526208236489729671689261615386427946797474826752374335049273283040024090496806595401173888997039902057373586444114475894446849265714970125825874926046489586636110347344543296777815629487703668627507041296909908448653458466890569304599965500196153282468203933564550433265416150819006912515581460469448087873269654111275428180231809235659597057449061338706041641973203410199040323918333631879127360917954887516830451821473161523301593965302786114087506127622317229653393412237349662354169733934199875860455961837063003114026951474282338028433706054492257400497087006752065524493004665486867628594257767241475861435705078178691219300684873149751911230997255729759583514561553671845101345673116151722649352208090343659433625819703616522757384528279374555248255169074482870380569065650925472596474514472499214030483773259237515094837264786484100977619874061535810644570982613880413241577188980521554849718791294864598264297742505899542268294335238257183108115667164771201923682961502897696710118751986224678766782869164843307584860262218395264037902003611784376635100240083649139756371691988689112744197719968093922890741497441697602293631017049529771992702915392216733750048260728038276219737807606584365839332077863949189029569233667869688033209808712357560765273433713337443823271514509321132045708558566551017149629145200491540022291209474458164698522535576403324115378413821828006657247821958947013566657482225088702474083173993986944390371871498193923702058468205726051964499841309429870160050486535260477287283368379528314643134887249729122074458363451170985368466287703068583013024677122613081821799861452159705267066545316936494755124745237737930928519200208261489959748825501951169391648026646135236641321500026952566383063681254251230959169947794018194399173854382715683908504354359199520021649860606552636056515049493326316638716576746801282585027172736367275934243097408345605821037829603570734077192571296757045138439873802868551236701118439213402567765049465888365325134499389604079161263989025783487359506491339766908517076528473067698945289873614972333645497453544705268340491043703742115813373845515120824207244433469792970263243654111086599744310751683296388166642679943364841409897156022237744312526050434839557386908458411837581641143557247926808580464153934126594397279937560114600534951835400476779242228100609148699870563935760156591455512614240819917603954599587715594289633585473127847193093756105677129426028779516143663501312032150237666538007200651181398153547674413833216740013698665514871840687901859675390840166546025101198182010299109916232701756316289778814306487285809013738510501869649373739261990868975524543510819434162662676170945740124934357911575345480581293807445055012608110298169877639667869362571409113539655742522426588392137369244798571980038197254400780036327793164516994025931179355572410100570288485933524212057873280172296712204885752613859091501435959122856873854449853088217453557122206926984018405200360175331553957258716623648312576448133657450621678440413073971646251476745276689998577928021975027427270427700774684665771561017118329005735247933206980123981495639067507775598781727601721594009839595730789301375449459532746662289427200965945537856181130189435277782742996580942712072716049639840549632481176025983502562290980648422657625068663693473347261431312661136340803434741797270823763886013324530280983034174667611271976888242364403989011168514495452081968225426702976064399286438740039276653339162503989111497472100242347990159520300055387225075805746381427532130901225504990416279381216199592435740411183823025125998231125264178184858020777941852623701765104871022003046197091946083879667446214817617255107421367166385944829463175078115100006694873957382177849748449978426036520910666759335921646511898542991558361600615801179338831343023022990195543066152648579074626607587595475156589829552496997926354234697472175998286713962815474102830380321087902794191787986106467168981022237013742716129998614249217636631724752047794391598554278518820517123416304834321383707692783717373845333748754022714687374612683271707630046402054954614774406765997361256358264235282149036605941089253799291562962577827264312179137679095121151794255667234651489447127707478145337838904236631512211113716696495335115080888729764080190691666466835909298944485683669294624601655019083646769683935691079749879425368719126282015329309250795523211442585136415091873350249322025825803260377601027887336432561769755800211379507755989594677948723256420773582674286698776865325908144344410680155951113149903647334097918191513319848737821670789029356342781231842463137165918623515556011944498468896940422516907530904905364533087195525193450814539890594127206278639396460088964214103928460807380634076782675054042140569037432399704101653623747384255707442135061924265582139913437910243587672917416846835481890746280896095578225138956975788844989639739366081718942574905415707733413626378961595221156300891780499393763561462694708568826153334641885041966931752813242840042057153870040338129297734958522701172544475466423698231793409804003275503555572984797962996274749422779676030118010453222444536179949884859359804025739380919185564824208661895635946571808637939044554953702394340905552708666001965751284038410179893885475341188049719926128285355860083616237048901664776598007906639318848751405723025739338124724733013484254552317945396598091257805077389401663019347999614373944646138295713101410244070683347955884925491495931225217640414349956325681978554131193860182721854311667079556241721456082242498746250286822105253132362379129197894129617948462856655728814766815087180715125764430561339647809987974031444374596633191061946779080851511669182403427990384315330541645133344574814543683674668419895556526095681095865141767170174480061953074877682064963991816621695912832381731952939646158590345605344644845361586387859795676846345779414049388785385856179093388193110524975620577347640519804724816735911921348456786197968592214946178249792953583783437287307444412697493840796438886752047300085758844574785911041822484952996041725871944823951570726844423529744413247468361516233425851921548153812160642890219680691768992291830814744596958373042062430893880369359535810279136569218261881214372644934103177932258226022427350370168639289397927777584678354268825537715859197495879780569783158464605296679633396600055172624339929741951217392049418596369263240056624220856578383189760558723503792895826622364194170239962486601256277928606469076426102818087657874205306901670149265219865502944091206410043002307289956421750658053278168568807110657448959542020994495313733383132883231870115258369688720303886770008174581658314739891940834198022445211260347577638095104297506070603118353566106854588200787874451464897425171472780093534138864776729530846252904974383625676912626054814475682773177867821662335561639172980400667711898162564519055934734157057620044112093142132043460915839890267938150482200121246538570568747448647292552864645263715925230381613841542751468763103419324139644626268409692629410595545707843614416972102264268707343964358493502143224543934196502723980074987780126551777461416220446718409293623499681725794419779088055606999773906667264724423256270326368840095079524366594993741356438129545509741471308343088602678026927916758727765605134153924839412417709803943856955706169564482162072535235593282324741224896567338519845678593786619870842278745742735269439510152494775627362332948114169328391202757006883478773957698855674689331044746200127827873193894093226363297463295177652933793452256900449146600423928288864718324555222948718785932346208801079337764357068175769985767300367935288866443428500723711818613934453562803278300048139859931921009837008628511604142751163071411278213630931879398463942277744555794120384966172803578159717227635141181227555867842578863642067193145773704424885845046511144414471418213447480146227272918119345578039272913850460211656936342566752916738835324275849734876900690033235953276914546953236222569182332556030550429854353226073222261496784055644168978295758340192595457430793390056408021203553422891175826382542797685644043295115957627254588020651618701235264006374462808904597371260965775364977666245185911927830760848590157032516170345942011653333430377193801273947816393674308036199153940221255387061283210847767072242300053559464974194432448767766934511301144991629619059877552404707261712341224128809131815184861250596279698070438991352668659933461866105515934637871066056898723580175994988988558235343939762894516116596969105211041456526749968599957780849147315818089531964202456048414633214460481113676283906006551366897614418245554650719485197169145819544998987195723322531272689286999711393055986175167326187122170689354240773521680035853134490073513657344330431757005892769251033405549575439416098963121043480253259268388279556623825346005599137326301844537567458791998408762128178002367550320694665058358487965224415034166540071904557270579244423800532543338887828220864611536087856892442972839530192675193972096038316662487487806505878584099215807825670367193371702368317346008234207101938671123719812929854258611206452969140293114648481484370105491231423707579472841978271920191572128705857352230837063833266719307681107987632524498445620868880541110821293831967644179965726838400978519373356804165210302957580432053527076360544416093384267629932592684185402308043754633932358230193436762413603278133792955633094128798281509696558098794432665162912648411733281275926153483671946682492954870510326406723109548775020218196203126375213363096024319832641850666037816579351389254581196847100009069445353549747746614179991983838160336894292090501854707735514047586877781543667711698268752594319829188793187823570137519016892501606280427504307695961247549300196852976824188146734001516017426483477837711635992593684509031485320972037807739637476896724676856759331238423759593919341389096578246774009224927761033613144523189797968129952735715086182880896753484716113006457029705862200154698420051540280514518239349021414422099790005897652961493944855134611475826542609128785731719049731849205601810901829779515799001710394630446927082591564257303869227211478870638437001339849083285087657333962170108253850706543939917754584774947972490639175461118106875576052937698256296724809138436648153428597923259045019019804657362244321214532708457625683569175208091983667929482893442085569055966367857341678146465245309568020414493928997392408537873609804927974145084597023860017085882410271129168810155578277334285553702867939677498119028506828225474250437427710637664311631781399386711854352127318059315774976510781711134191617713306490625218773316677203129317378085142283748070981103269626308528071353631333759843613419138605636333713127008881941523302944370573894599403757592469200359851140012650599728530730735281678524213671667606911847022148775915522960464955880318913658538100098216087312554792140880016445015481991148160656735399882923891143526005175431476363151192196916975398793810631856313832965495014828081548031219413158351972793987357307434635574455000923631965817935973289565386154138532855200842538128626038035369775182381733689203997168287575161343248902388389446399070663010187460227645043029882664197682916660781577270728321831059063633413136813335568106233331531710440966628875034481917880776978251395641718540366867176049735376587506569287486549846962809114444599790131768863065968080617353399726719925205571284749161509642216066087610028869839764623612809997080260461688054824413000113198768858835921358975130088235513363557224434481756779300259235427902224318230591711189246217408231569011622108604959237986813629291010173694192412245609262567959337816115600501063701676498684523662547581394903927878727763828730079581969226067597848036733777285544554342434052800753172485979934577554763883954510527508042988326548418832047565636163438007305248944424904198476782711438934426129738862169310440309783118481671789635631123741730256025717088884276951238167037426589514383404856986769506967315693662499639768155508025934018398328545681338158036656831373920784795032461562887752308224157696159262269511972025416528306360434546475603151033453961037408403608856874034486699936332813481233079056309722990040647274878613658768802709589727428411006906330984618299665980778181268842389854712081967696234962235711082457000832805280697445227796549049951035191204709668360529382778941552957817601766921115842622598743717686644681518215100491174133428325589475309438353706657778365492907484653420699185308896702232424272539113026030457098781180092481081646228863548214081365042400225023770642903444869166974864809027706521373277036463462716733430452555188881472158956557743521300657463462834348342369430732850533851588211439836766394059463895412079346630049908143867290613175459846782871918033770817030093052047884888461376141868808274220134419433685645357498586370367017036979464533354002054190251744632566819221216531016987285700123527401199959179577100729532925745233372833325551809419427192277658289378117491105191673139038184148286638642188610528243206386548317465500246262296645211926105840235940724450548534923477658736188031311191471918752085139350424013704742026294030795095041429980100247862011550858831635565801590729860810037791689758896937453189697259746759567637690238282871539174757399675642981120783013287442714420219619270515146310245721288963808404689268078720288240767738160154124935853001831931819538656012835751449217795430342575038924256116421921213239228261650316888602821075511731883177334140117903889109715596896405967108021651893588805103937902535866127596505490178066691373191350311550700824060679143982561032971948980026168825058759218139760419290933518005966665671337355293471785978334026019194636725853779448396168412852687437955800472844272112270480880772616307055228226325575810583995071722847973939157012089279891331771239411844899109186748581545447587543223624834770015183982383919186355613194069091456666886399777811432521237818275205502050496329614740035159756409644970783195921099729020519466277654119062719758664275406658041916908937160214368771772760144547184649340424225722244891608502934320341333078589189182196413076916637628971272217009246889659726023615256985809673773550666939522508162726575712543310529379015534775462559185754846786196365550159140662401296711281625522937888118289475061226330429563021533581236986183167381846483121252247584739270851895853869407944486124763524314283073654303380702590255865558487424571955748218423857326947088614373533419674639755375283327440044553317962767069340770274865323087561129823013244158953572417147659341802873359237279851746939894136028738399089545062437257306931332928763417354220691136514037940072853389019471862151509243991937196122393140959239732424427872560396771604716432512813793038844375836674475048701310962634853450564176070579672524174095562733001644780399178670688258511004061828376092533389326646193507227428262260925422672278079521931804641470005228640131813906486113778145208508936141578381578734382488206831334690646773237254396398893523873076911473960431989710418950619857749504661152045194756534273161365458606111140229046463009309209878463283728772171962607845074742544496266191941122621434302727503910303784164176717230068590388170812417106243685488777233131055716032854555579191303225250300552839617404335233224981917404104995945192993822669037082638503187866588904487373553638388050947267119822710967372686229533220053024876253961585221931923179878137341907454950387479930096835153726851414500638683514121929197011433663453736429617349676942660757153418824448807537242737965260514739612556558088966940862790954318835958952482396715820319965886572097699475935236437519954327027612497520770320554155699739962474674586393509488329424914936874560230498216182667788137787947905584407854330166012319579730023408733860243405392873996166358295074658892629204803335328261011045538651992336809056940075869255422961638483341350619266124127292247165255087129940059241536989079524161885025348150895358420397737898760026138618786280504849555958107786170810016636440181590981550405652004254306039162709513252912865288114555985301861515432258073073057627033986477985952887839644139800337844675879809601023139533516547341877652554290012827508968087157435217052029399305486418784946677701195919185612533123451068754857833799692208942082682370407226354005981171516099257109938615392465521827263563561002555782526692851597187027936048236165769390298670735010596553115055408928958819599903610658467538434310308715485064211778159215115680366642841699986342740283186844265695445405269338229470737034565081827535048491435297344409407382632563919261258180683446742697590821900489219142581540786630678367792645465924623948326936984353714826175385020598594802380552062394948154534281449037780766551944507814564325189486648065996464160409550174378702331627639674359964129560607230222477395500162034640710736791429218192400118665127095358132809068486745455315916172537110582728650076470365302548510965472902991292425108830711688406592018315615692977465467497232819869542905339303156340860042252889220745044130713433179609946186998517912516441090159124902771313029274066369314141534611957157805590536821333269601146732592863448596912107564937833983497307965462968827369961145126309410725073189430479426040203119810525142157756758761945136179429875680979255291709834602122073630811652437745321229575481384841990012484568591422916685903128247334826227035607268539395125206244363660131770024090994628562666908564814551779599651496651034014741119087575361352695703967135958256894633272499997574358359820623700938776531380853806160993043814731094705712395365745258546058152845428416565236600070081216474933088620304634855949517384504072701375980485063323983132308773943798320734671128895552851094074573549996664694972430885332933549577245494352692924012056715315626250203261361799434488901436842335531958351190744650861625976540442706228270906355573658333490727906953609398020764463809641121111195964056436891835740023357580929398547826601882822559859728492398123971195436038610715206247876129008840101002865487648290815050410878646119451296823125929295890817292105917956964718583348083240976010691526752879660955805803383573762649341514171231057689001750455004097692974890468607811558856051185922886200415381944863533761785874395991742554153468464144207430399433114708274179339168356272946142137055809834806252629466246937384927084764867827139815255480196299718283644723271258684016548057757751849902918249010229834878011894323263635795881463583815669026785589622243937693342261284789915285819051512041695294671986672710691765119618834764399334398702560842357530921117552298465421727416967113815476069008406495252922161456521730022706880674316123290328550032594988721063856135281812862545965811713188193203935763676786368181867230952197922484666852361455852529569892536384582222403323207322278488352492762057720891448460027377685620420811220490255843227523145960052551061057084100959319067174751595899959370498376479568934232005689941155610656903736808766277808711160280309096296602101854238375106556099951423095553745173866691609242812295772766302065550108095590883421413766451619007324729824288672812470748620751939533664112387596280243949581073077079628429157051560804139229018992174540384874489743516688934402865057372798155953033015734414802996063397207225852239742157922809908386896585278905693552199844919280012932170526363430037775199614088048325629451578370651855571050780920781784028405393846098869474210026017877220015216405791916899388089469560565307524240856988483207858579875095015527635272118827927801615410144766098777342295806945954545618892007537108496162445316401047982657566229161009850223767148530750001060068121816269895556488395529851685987934772344300525866423649852589370034004943234420890144163641885646777141086069859779185946591603639361185051096694804511381287197989438156398661536630977841355759602712405665324925397564794003577830324016915414078635281771995311488323802900815440211943430746032538807139681125477605144564742906888871441971292764151325301215003242436227511624726996055890507348796304467831598376494369522768336719194308847344205926316787297834466699107173885083878159871000134698735146190661038398079394355775955733029236363730698417165115425124662739500813958800823895571032250672860506594687086064846461592903965769879138318960630536500973829649705216839740338450993808842694145294336094518369372689116691893659237871708827419453762880000707663347193366466664670783632319296660501970435854677817760464232954506345878311087987349816054215032407640386037351228554237384806658997029673920567849678390799206382371158394483593929390928176010345195578554527274111426734686982503266494679586030008683458555565119318872352596151869699061443256200479426423079344089632668159301057570767471622231317661624765608970674258778950547485662570757013120219283277371707277524021680755465158493121126894373585858345920049012041734710704225938726466242893217124421326819338434394342631830666134755494341888374587115011759121855121619608146141346395239698283806037150841294501504043921005505206341437046467331955983788835176433641013827520485246242836653045558017695453861100178771186428559400124214945714357380689860084521547621199673464719972486662824495084994378462499726059665287597981389230089813124601636267332362219103466504229674028222382125154449905471475690680636718790736119613009113360992208956751699306014572851913660123283319567610209388693632283727453485271403954189838310621801476644398614604261655249421695537895771731716922271318050753130039430805359990791771583682026887407460097035642477824836557671381027316124338983611789150262291557126232268993444661128035520918811993450140916888632280332100387687939177387007740292813501701949392061950303439130316148809526940889829326548444664535040364750438468500425656567277227132611943624915333212296869361670550959742586555741308320379760542365657516134984128599070593259929567358099604447999979989016247726821117073221611857353733306817250340618472763473822223672096544633344452627630929510545151849327335200226382342437710381223126543509321970861274259623885502409768424260991761774383470178125068286357196305088338168528319363981905974827498998801580844871688610650779435734571747909954130226173352814912004010092030339464699880980213519336103411006770862440715733852778601326405554558753162082480762230327128293444517802913104976274733423211154670852125905110953664520653180066877071631762145852789769326677887484518255638915688777632795956467306534781719441099110474989829090463959023059915634409533885592793046103751551364337333022571925568511073519475427818537138534865456309786716291587214807154990743944219303259615958580495132240282040852378642431927548340581686845497509079301590862206211788458269463547137739896153134735490097462121667447439929190406931357207886011182879003096942620431414833074972645150813427109519958234007529065887911674583527775956771358097887064495440122048346197456437907991850937491356111052876972179412091728573069598106225169770084122496171661611642015649425324240286627527893813430607234639305496466724433637680041703798665691550525321319235608629925169879096902048400196220352897180030479812684756056491293354563245284438769872826488097573055290633500735837631610282595871756302290613247845317536192156140311195190963050078106502347874040154688118347141926108615347550951427020109081434043260367351149972461853841434094376382180674987512648434265233539619245908134156153151480449436114161926983666498304433792918609377139870142760428487408826152676095309616903547457754625908364995288969716356618585149316485933218103072944240285413796712934879388762533479503495128164227280687543809923595384015928144745458539096228807041921353782027939472015448322706977781729824706262182759380195437985736359278769314180368280542101116990814861110101239529932951591784237426965182379284218216037773633258927947732315588774352502883110347842185429299283690776949605443902465915818194120139301165844575855816629519251329072161335155516481142311714869798822081672313730833815363854414249826477795115052180445287218327025271544338580819000033176741551725033003820327334801280260283104845354864774799054952238924634457209398230602949094215337905315369155304183058955176714786669745335730278896543072075643007384275731829210276921659864354354909297054726742337801185194678721005041245365959980528217187275622300944991578865874778537611197627981291697069255703166218374017056534869430200391167058288490514119373340910024394875233393223496903432737858342094332503879897137701787575981214277589875036713860175060590764783497762998110584005439006878261363444041582299196772518747397482566893879023631381650132891876514691561335194749299870967838477814265963321988871313903796448386608421773541297664879496899178654065285619371696441817719466580290071190405973926354403096031972577676978445801596360343471891297351174498703017305996682675999241816899223520488633794944712290247564345854511217111463698259504364163876911070006129028231844080918742278728892212300820921580466444742603430679021430616064399838800742221432659135601802964308474097711931936118347509333416567301703081197930780186697517222484808909922448143875207379155344313909512928275509504297137634298120666552749484502100073988747709781189506356157873618880665784982107231916909425229632936462750993237569650691368252649125663453041388524832580436424796211544677585636839252773689336766510266300725375180617160961732725299357736672253934730355518117292666656751437848821726313955777975153810193290172578252044500089458657126841754950879751842162452831528758641760785388569993904725543882580303257523903378973162064632364847035295772643254254676808181433528650255131701005164383392724911876629722065189895706967836405101341629434357788170110317670489270178630677710603964415117813836215880603785714496420912324157277857473814222432580074984541342597190397878100885750466852849339964446672295956807847335397702642538159375723366580358797292412250080033296555859612438430470683646702773726247675341354601591077564174046572166474483469953252258709393755064353759011599062612268054404748792475402601456538897951102523661666384227198704295044939623980915613784322359213922050069875188220078670403068473158515651214946860870822786286063024577361942698240784026828071310449005630166187501693736216928706183961079084724238369004741780668178490773799930537025983713211061204088890852208014427230594935215978252880920265838039036098796296825234917067904786146906461666070564611395853567317186364467768223149304788957190166185032599170446014361600249845558491566040573475525890685806009611544063537852188708736139141641505004393222853145364548220813765576013824623896153728521479235733098414472933510927555544649012923449456793392950839728881810032998700806726280779461207769174514587338782205210505590573731222131150948924125598449179883424331892877141219996487721811316310772862085267878263729981246524962466293538480331122091270697111775170176391994086047895812371159198591669982683976698781500174129790577363947965610001934484739305408734480834354194814808924742269231495991921516405506750556708593005895708246467755326207553070797191593001540965843783694697170540626560557673631539607105069982316913078596161724167514033840914941529767402355268990209132221306743375703163486556196852049781034989315147971264249841121499034106965268898025604871702018968575164931741635931737442516853560439890192871633767814026497511766422439170977996860362726356545141746457442927861057873694781634858077812778783674625302968679821530828606175058265682487000536062814651134253560183566666651243989808556893954898317764999715172594848887339238673197170747723153540870193867045765370899662933766623462642504660584304068657238481240813949916602639218953453361985152697776835562990059275488880270603110375556887320863237710185280078318104841777885924642653307398436663714317727332866648389481053533648220648798942413642430687644748213150300818103470407077069787626862912264134794924849136712933064597445223706351806990976883468390216961497459161708649757535048432864725622067455828486676674770889403663685327617716698952970677201309972794811650475151367101420723522994095836058806053459754940249497171919087881559095552285070573476600110198002112211422917179298024163470034269533301828260679648996779517486497336335813376798455882254321827158480251861642826398370544807373298626806461382952343435667356168433629724960843210536670473565435630209147296326871268408360587871327310186771977267688663486945889755231356876208182108170549386286795344500660656728949022963180560972070128885051851912378329445886518239160779429147311204928824603001357594849894976011577340535952416805489593280140891467550312637742090217445131066424589479372642936729912536540094806994035078394652857597276998818584433489154465693913650523538040496680980243491129574266387694988354966353205249641363342691981470662613379047066417739655365420192816281948738681635343991978244055490799798743820408279502434820995184492816563269902337284003817492770235418989539736901100498975399587271687999063228690317455630013655053430388683686224979621917420259187735353423341165711798350630779369069976990133523168560168882086129131629641354542639557443130567544427271359125930210597872727552604093905725579470091727743425579562145181559654797798946528951676381121989807630300321033809588909424774829714298282649054491871801734692099144919607379848623387025143960427470819829954666800409731333812360194163472652390304453463405240757571314813050948890494706262339921446466075191450326696371726704390165979869472609084137030657076564978635716212193389350218076930144580892438805011541194179937097689636065778144501279757131342625264397484965949589308872810829473034917544341890629026688654092309878450995018323797737568182797011017832892735025810965695221572151432477755506667511140227097273763613594067108183760476049946589715176764878638847840062385436566854348150003570114462724460683850494665212248067750384163611634583582291587260246584097600492906630190140288859707236597387979027116335581963472879667512717841261826716517635793703516103191686841533246037678763428442432657362576010321384293844976472522482758870396812408858240500757988757697047528687884861990858377695818509048280001066219472476887826405498198737237023066707737349771598783357781871099702485508547267867760852177367201398004357154114224150168643383071973395323351019985475158545116224776556011010785457514620767830850454728419226224153349887902590156567667549762331801278887293658934187224318622364488958873740494601251695316857837519938084493341600786443963822492936433458679973756331105600531217925497033664302240187915316304423424866033644804307098186431005261440792659831604858449617873970846839109808028154978539782905428495496347299542809917651538355425338236555437569503902543853120233402958632240976624731861389404903808938216848487171470468537836829102539901312595296317991553198932533692307079464694573532332780559486262830427180784836299132005435147632513777607380587964065397952922601232719877850552072797702493547579128238715801768475413347661226865827787882551940397581797858411568696311744467901968814260291997896737551238605202422666504064266812926874838124483158594194940993237881189149132478914375799148665222313964233086373167478165501350360723365420549313750011923653867907578021311998066677663880763772530352607244123839029449288039337078416840053826501812176092611631348168286403148470478593579623555136707915929751774986077183575941818307662947891948468257890238027072455442367627313366905622853491788208575350436609040977164013771804507320359036647081414263071964529121618841062149808428089504640897526949227669855765834746216368378761742393330245241240261517717796738533943279521217075268928008922321216868122498068426079913089184628658582959941176827965151489133495181488896031379881154369706649973417229571908358429370948447283435769045228243636657180439213167736399777849265047190542747006104014198133800880512196047132280767959943471005604968240627075932362810105106948017688805618504054577302474017490621370611347709262196760542995524387416850029513932005744868755012513837522736914715352315300845780804306306260972068051107805843336849568916721709051748037821669499604015351708179049226418555162480255432754386365796255518471667945717901304889372027846311681097847773757768234080334174768564941871997608012136788296886841646161843292306078046011731927423154355064438516709959996710793225235882143674590522889809455207443674293514546999950740119351783468955812904938811712627781681572322661907331287644193969186058796841161567813573316746531097104825151122929356873787217229401808116982742739790339313859161447701953894862204284134481683040255995561896039076857032090928279390704199434881821223706166898824473803605574180115756080438262563990080717221552219468374412578914747295985750835714115985299773242873168607636909729290882996925046285406372078074014570728157067444917297382665239601985020488831337954010960994681800862732973839467152220072521170419388986895644273857694555606466104363956422259768752987904652193300003789783522024302381886198095633908977933522621918369144649819464800949339944264419313137144605873098509024201078389564341538545767839012655237376134445099852107137389621804918407089416659693063087385397176228595311200740582801992172695729782464652462062014265343197168746256188015764794592465450301505253484784357187267889210727742041879850807774133893675139480434990300112556673441864730569911127384348273584847069392990964693758470609828962640344224815303572853466119869839066653052510518162870091230842587196551065707879579867517775073728940834360043874455830835893908338190345605799048117194609757327634514688936443494461934016955371448897380894310531241417785517665808215548154602478774187089437789151908972558625417976376798557307164435400058433665287490675004950204738559792350186847186391961506128098101984351044431588392936844308508776897041647268878510420300489146421016095621135006284100847148955244763411111212969653939444004330661582402791268047740713764034358790567171181227179207166707805325931849205502564143578162011934657865023852010755635604959174577728499296558299680024038478099409168430212157490141152499710991389349081951680443552949356500905847124812850739610613831092129957277810013647964201704991819196152103720902569171295663444321632936347683638579393237072715366411349353310889981562358073175154126662772233718615565231876604392338883528238611047707302790780848872088087934608923013981903747743332886196784368277581345540721106634143024893663184406432326617959549388690238648374016180395268405223755610690200811175639639831623515476651320203087788745762352859312398549017598621080054850612681143921677829935481060653181955871189126148442592507305834640241518930033871741389882105884549753026656489335364771642325432612954133806973174297457144396141203744091346202438522990676371840522300359060138844997967004183717652143165150589604357778786219973590761522123846684985707576901947574056157318295523129700199280485560204297453702428349800481431343753770601413171082036568331592665248448133571597154664813869305621745282539639069316971944177615560202932495931400562881311200402242403739589166891599148814187028471521283470011012957311023922876037220949787336488164252036195733044443884949862714489829772275179873793794229420557399602284706965441138919613723837646148503554517463156972828675183821756444351819620546206718731906660489095775337240784167875774227018196394380025714613647121407423361662132779133476518782079448879610468620324065676046464898487118032948044002414039198629397251335040175774687855163391522920854338926229617747422439699337494075042112632492995741272771551230235141473987331399438931583304379591671317238687701105604540638693918420514068967133354699245579489500724129035829856045584467658120736021237785847168236106160211846023794786374198681215504011952898305558738598622788291190832040184114446437645883853627850799419456728275684832085763750914831972307925175923990675868702866770443423242684650491756257372661555383598097380149897352357975314460166128475316183454446349822328179592991860113567227771801225763780263317132455601150212281869469454489185975220334442445450243197342276018928980647212520478627827087322213052731833143913124848563486209442538504823109364939472613775664271861263815214292067299920828747840832456487519942661652646447263789830219088658936937114784048841986641065320518999675737579921836246694694843061401343676753518833346795491385213466591884580232595151484981076676726112416904161518364824639450371842390335730079572693486972786326238889685214699380439884716304605995056680973939291101997352133395673461141670972007116080712796815922144728499210966763911747994354225009417258586571253387910887997894531653000615389982915808373806184587264912552861661539145485012240502004501133309252315800208634348722516350029925487262141275287831756744274448956398201843729940884216941332028050372917882347258493132025969552402166298366413312398990837928859541363248509930605986902060799070099826216108857173958255039786991429589718935447118098967201941098030804197820697656503247477798352004084619698526695578983286853277056648850988864607930810548126145499932055891078087141908632066551139300956016295825069039206247214965879764038184259976528859932295373989012502228415719242771490839645813717851568367119926718351781108303903912524047095531081034652013328359105664403940055874752122163636502256285250234190823571059791990009000251925610947144327395467680928930724715573876785426508690096998481612123981701442985936789534232801775308415983569644225703991367476342401465354457431828449405811372332543596826115942942254860902242858918737487183810994486927191825909062770616565045429872365035658676075769740607287697199856900438925348699681329548023470738153260575216705870472584149905937186687493916539433004437732840974898277126694207833529838616002940755196882321195874623751061576729785650565147118356615711861262413389667592694253306160571647535031227166830156870070113427074979163573543178223028303517639049289124682090118349874758961846663761047481280416206562761821462578354844784299088948882071548267963757176195467171789646196877531480953071135701073222869081336892643125117975470596153051955057838130816041239918039981689636420676710137873548273318288481435937168030608085059024035675125022482386206625569139628102384155476259801830757248331437337797844165265699848640465020918718424106494481138665223823594773276263378239898520423334624588351617714822138788471478820352541285357116624327530048952476264901988092050984873773033319197044673589478670703782175738808984779696839638274719703847822605007177022952127183920906338323942494161650768551730933695332069474292581143894060158777909858988052911756207155371591988370622799577847621421547828919893734783533062769502477824524401078606444499838593720084036183414110068287454373735458922930211904320968215578202978124774977359366676002045776636496892228448629536581773909273249831100575468918512592921125696348585678481965810547772333275963478138507857377340369713353096068680612757641878071228243420720548547211757782444730377502602253340566966806522868733701389099673464193372305203944406863694430329485033414987744270346902096367534821787574606001921645045277035109175449147834474912893602587800014840212149009475314136539895822606686739864259476625709211472062358369104791033621441235609708984200175127622988791116879413963761470214241401496198825454050731555592051298287205989142050924202746916419446780032133536609471884389573803137947170321522161518531505373489807569732171053608340596739594760432039284351835328436295914584115266255697310864087335876937175222832726647874649875882348017008726682562807616488419526388859799882427437844679960131285146036791610308824798170561504642091266658894106540403248122409648196852617442339363734226321103305231837065186882969615847092227493150540216616031733055530824208675272440287757423992391358348242887630536184263860954570845372482046068845367148168762164515262954107017489435741614053255974642526897958937753496827987532970820533622151404841759714448830764601532385833595221833718979811232169783466728366812173321497771877801659837904255176550083179487322883198075173369219054708488955954083581103906150655579405929049947637829977838752662087111514892126950863104931762756159947728424393500472386373856671456676957686992484955767469342976132805593974905633838837414806771071193223335974777579895331857442107508152853619903497299836702221533531185057144929634283056265273980206973888608722327253643933359576543278306690514812063322565783283198732452955393998671705928874441328601381232312416506362012696617662235579866040314878147806325430771882208155201723773940091597343861680855115236506223083248154991789632920200331486780637673314062220514834114503768318838821297727469878775886278940144715770625195811738227163062072864019039688252352926093884500318770665975570210413168937283182444147458528119016451850546713444648079705940481158462034215853005889771298425829005189380250091227049313277260978717458529863736590927285499787640245576038603234861391972135001268675385488499571786586712749137423153767547554276488258445879288626762826134215226328588235175640528589186738408157526035436154982536841784250681212739678836243368123353751060159897296321099395762340142764755445693555400200060552690584786486551262514028002897193279732666147010747681438583553429447915759996646919576538028243592393814762930935110100995668678436524863766998766843262773865747021952120765526286116355203794230228604172983224095078627407847690888003514278741339827313529891561248499694005948532221571564860677117342011708913078760062589630488233797213566462269447437656129411660544580156318904802331577975095800767070747391278995956831510541903039438237845142982016828390713672006720259120660448291666177126547863214803673464512000173766322136208268584060673696303789206595804014874849697088533138256612588009050262970656639716115719795778226164222827020357193873882159743992700136549031560184681553562782461537584268547199394466509356750778714114511935195847377055018895092161018066080823583153173571640981976057521613579574137038861046317284796850704816415641940542031914389310746876033529476821105448343379865912043111061878496267808624344190998667136491133918413959599749372730332051335259085728322076395266733386173850783783405550643010570731844730993156605405811881159239043600621405448062395845671143811840279445452148180614693676837664588634954584149619792144789991676780005679328069378578889427379156505538985190200494105513014142045885780090660639737812747567721260732444428811473639303216747862629773003333459066544319009769462033702260622323295473480078887661624386902043522225292848676930007840920784295779636145991894490611117659219936229361900826317173095726324568158540046357097470463283249597383182949624637853335070616601459684319242706747294272005354999376487374410243075150007963880309433579443095455563304745602382385649072517575815105408540860148463587079032828869416240599646847421847309386480374807995460279234284569398202937291661479569220787729742904961952079395408178985008680819542181022123860583436160784614215741392189866217507692150881229710264444434309151551409731224140134398610805549856108555882581010706782406340991066144628214094474467601420645200283423627644764003860324507705814650536210608052821476283858434570227957688506124392592124136147020560031222326144210460300208854059802472888504233523284496277385108416299453332806200949403661458682913142433399373903214950459144698348520436331651935897746043047648793106435851935155413712499576650888295414005313958855866179413627112087326883839530853918432507833288621898765879861451419245610992058663147037890765505958268881340045545500552612320497764581411311310957124840414764007951848529865037943953081820264115725186712873058653199943282414972145358824086950764451099628512968949682988865203921949370027284464874612345554681185589321376971716993568820564994314614374687618150056234413808595882311618959088867678158932422356174463221916319069435789998926449964365450025742457792789703868614898760166229059412741226376364989595070502793748556092574666697228289212784680054420709751015361304444096449753405575356287460583846595032658420636918130742169036429203187667599256498432938126462055820529215903893705898447466419147747808701119920549478954986685934221569317994897343324366305623354314976162756648670077630338323642776294251274689239189536527889842440887117192177267052396542312610596283415433401198546794169541122401718240893379811230725297431871672553183852596687526942927709893533286488504132898225232891343901303815141700761990628267519206161744104185419090991582615630025810850960520454394483914595264098170255000159730426926623241550790094740020354848741130520441121843836445366892307528678894438447615064651146951252335960981102369765322210026298511066450538153800684517026732707050743844355218084567589998450167254383052103542836191580633798573552650999717447427064238600230150233927906741964747871563511844717220045840534568890069484262005303669277596278236772445316044976651731535361619613450232635678208996598713827652664967837117517285196226005768191035507488653234677371795414882757101054446173236293642993104155268765326673608965429030622709475911198013549512678203625654589083578239017435777777435165453090773979979906806379446912147165029109920857672495872153272273065417579657623334507852159267553903735786394645568027346894838034576889871874926346507429590734221192467721908029474062180400814582853875302539757280121129030480791986550789081043806830738720775215835756469028875605693892181265894316098007455436904751769998728874088045437882532097082544305093129283688307114204861098045730875726719068494554152049849728247103535557831298790711619653732074633095463368305859373030330373453870219165420172119492518722603538562768885228992352909075366403098680322301237281800544168013708662638820901084313089891121736373644656918000917240218040215559869701681357837704026089976541900400552633494626562454816686180980522414928800793431494824572671145623592247320250454927118357493306122787911267101529730910992544929129924506848280270729428593738989657804857870056363121125807648243660984182861269323376675805777846614814321233624965503907668615751584896662116842344774382899426953289110858646097733190807621539401475423856242073242704745721833993199818366339564372149149036867173187566932100385371924359871519327651225717737342394861331574303917712090927753210430856248776647019831102079586359044004630314651183884568475284717282358473529112294607704317649028763683053179589858373235558532337551473393187122306595530043703317190419486851310046867293198773305194632626887931129493951497885055844451629577597828914153303711461602959917130285190499089790370168437033469546571231187964038436393207305799626189748965434645791577301758472531826506909649919657295112493186384207451326605302664516955448383475522429008174253645405352906480523485118640952983770561782957350194155019812524816988758390147959371969439095735945734862098291349728228953218651753128091638007363586139014409172953012861776995203892152501970277495487978613044834021309072394811536044936382862552167485193367516232953956987908760615916117732813384648623412247536765980435270348248658628545205292431780586939771316432961262707922496527588731684931851336184083408544114543648699527433283315248578363607333901673716056696981632844975785143853696955546273531748729131922747753226739583017534067616722053727282240775949337659831799059593740457650029307512832660806452280047403394917359457015913196956016568025681213091339004973820750209348614509008223011912968708020772975502977811086906437899417046270536828933196764241527374017415384975468214164208084320414864544144972066335983101763440070447932082354619271900611349557827756390548061179337447268339405970663372348352222027233579050146917439957844144517069970159417547671176262696082723364046613502273926902434930924881822029736980413873091026233451626260141767420360802276660912742206509248651509924260079900301677608979841664398424346581587585142301307628758762165208328040913373220703856096443467284664964809687560528348455557224723664467545372999205220876576607003796236055992357365140360168847903636518529858564924185691939423779436590275501881319819764526816354007368598251147406212851536916062900995679461173216899933611317077536302903457009234195165360623173935945930704637169167541655529148402858883564661689358320824804401227621973141003225263271833105732532757305910426986736554541881035409625162118353971386418995193549011899511063907494333061725397474868944002839307611928564133245088425601777784582379552897574051038441429199384756764214967829337728599217874880037048757508447453997401335064356500294653252749273217587415452580662482043690384218338175453645293468612835012110790666548784310412591569158705573935088654373319490992269860912341047372880601098986632025776643052689247253857649954021480812852897976201997051706786677227816608995541672413785362827582097677839852120711986610773112883479444823329775390827382657025404746358902424163587217225593178765389444096586313442055674638051091858069902742239585931826728584582217159359804040836543978787919827128606032355785602916587606214104623187617162676586266285558790426276925827590573953751700980562092699425997893787266198022558991192341682073313333833008486689270654741718062456300365555024356825825597198231166460496017575048323938909273409105514678263584360817152311670129075413904176874951900265037291928322782050085832105250669179919244860721745647726028743991239043400878477001790279075837417571466995752028839811774077243049525203979091289002462256423155745917652337595576415494647482387981506197297664029555140743513047753633911459261077444089983937649503510174042379171441743507748859590687569019137707443512740934952743514774784326490227756914590918903310168897230454988499043116411821831071374686064110711723621248432836969429573059602898254093748162972592591925053269137822328927926474940533551861676971801933561603889458837290080761077220067084814266627726228668588993265092669214539801901637328332970725305518117930633108596801782675985459975852648958616971579057345005706091601645499591203045507614611123856297317085128087808308702676943482867534594968343769985308038485568382820274471347582591541258000767010628268436459870425125158488593737530736431138346261768733929584703188934643275203245174077877070778675457956737692220120965063621892671307730655599962437758473049120804332581585841195690888231305414229781612160947733859715238913773323131329794761186783007714017533204033203232646407484578748711213594521106828145376544505214218456936291799036725282568640850809613147887718714771227356448565109082644634156256675454144645322847776518595642458499918590865235562862678066161896711420882534134112979304198004638611487689042233712225187948860283445506155514975660751959823924444664744517120088546289586378699704617058652060229597446317246020053893787473967119684424654658723590688511507050495826081382153630581478584282905009991529125490005465329532839811582678367355703735253361986362442140057717909347233821980299960936769564813477543689887869930106694166251654501708906490865462184843925172662519381880821314381305328052215874071551841440735940901436136483538027418182504792278060168081122475119082175995917191367317968688545656743703197649225357498020302630723746681494834970260307977813196586920849684706946217564634291906583864953158090763030002809397761320177045226378565808499175149568739298031271250001919175763042744727557104275472065447108172293334045106237822379646877001947053263453746753864466643634984790151252683134664178733313044637942774845451210525449066694011033625001592418000879518278008171262389887825536058636827322475775728547539027554416179237177079618089175275694426794038435284836215777559677089292046036104257434542747590055887092692647546084020878930472649355648643463134697575084497088446858326148188494584869684503124837752961635509336581695237447594388965962079345953947192973022868285947333839947306328282495113472867313886755324528042661634320182380970867548207424675904368574841925770620059308647540546489266611636593819681687166733626885489238033918446206046878518460024522498925634521696509978884518939117127468598163606078054027623487415708951133569864863052117389115589615340280194353282675412073473778503270228875754944651421680416402299779194420656411439790359352802664940001158410134470013143486298987576103644184373449953347042905588378401219544722204673224158508725072919261393931421558645227578459429797524002933181468532346343545443475830425544933982427905921352402423513758375129170719679196130504201706930036713392474700256151415264752971220838124618773219874002067249177132209397101283352176236539406410382633710281396519167615074960207239635229284711768813825623912137042604153269051786050021232418439392882136179829582169785100542896755072485166860457910858489275668078856647195070284965228128856798204403438525241499289102727058196002982323626399216352951675222094552030574191454746312419621060591441843476017685358547457944691569431792085291338073071050154933126224073553295175284536088300128680032954552939381865765143039922771470024584419428641757617545768124041396638638816975019447454934626084647127878113802449207741944690139611427649670344781823831142766375256576464128506498763888591380674704528889376423934436035494660160107399420453767027448113339188890457211749565279938889300227550421233722953091763139135794919877170838843513018613348450020923845339044049981761076359376823895589080525066995091345794783649772293681522211045877469474490186646812533272569120172559350881942500435276554179897449365938640947572378905195498783477597119293969310566147300623318394914742156374110393413127935139349297089796823199037049293190754539252966783362843399094436501365266405847527735636393270834185266733151361202643796493431254200975428380107993359200531104173025101621260973735888708112647552007419144576560344267574014103094881639501248146989778058494147146043955919429371496322915651179151640984856787801205642661843121512562593379566804997887719401015053186138841293023053755717211629102866618413219269564545444862953642882601222832172035392934182981298293697754977911100008849168829506838328092360001573740507278666729409143197072529810699410176021304438615705829664486600552605598132741438055424099987712851708199419571314764800919161203394937546535356358267332414801019319709940688414188202324111061936564380037218367707635094468789188201993114759963111569328339837603294452973174976848307476566247009107437370918127699013202591017268370444252276497492869236481680382200578861345351744192850260373757264827882435667495845571659077602262196043349574709873402723641176621547866031618796974038377054601377652006611329292947834850750856306198225424275836866518088750295149287976887678679216329978125698230107478607443517953104986508045752558500110314973756152015309681147453122433289693010956057825473316385504682104358884579015655091879226355132447615588174146926347127383876987925126447137931306168031237667614533867528764652113671037966842205492988132878836911855779263703829355039758676730614504203638239021362353053779803555961533728012415252003431793456180373805935039643668005359758132783484635519461066187930317907727178697142051647571369641643119310515747586400200301975196783443030084634130994954204104249364850613769300421792199419394780091563132745045759038767361051069461093054493307591668967709252614178630715362593210722268512656900519540590932716575355678620801158783958092378331150463161605314102897746114211955962446973950705706043528703473355680040603594513198764459967471996169829183828550695806679518170299101789333680621913373700382682626212812425561641177315933932753252502046916988174858107236982132566437903723418077890682238964320263399139886264655220632545857706680556545073096712834463885774058627472310053539160781364423291897664327438435918261694083169921702038960166964995625247021812658963535253478153961193018276366910029533875273096987565639240114941787675827386002664193184201862186343893950600082958164446763626458203052827401786741851862862566666903014924856565904808370946981491323833178012876210774665718291973515742960417431819868818581543898957052452969618189263421782358588012938605875252570273450962279444134548804025010577671003456289654029285358753254357516531337644622624844379748745611684870129537271225493143082751556852980380455030093674316381642107867223069495513774149717347865171447604177668232300255501079197082136667582450556040896171756550662630582291847966567811900075937615103165070779013978333883121377174251955345610499004235775923499895572227850482645005862254253606325659049414092763437630554119852719309607530491617466111911875284392710918799123257273816331962871905102385424966884210260146688757596480422790682541002795162273553887861162925904656011727082219870260315833501762967370179906091806481193263583238756858357352420818414043304112966073674514698268665511359924951009962863065354867052799775980792554396604991919687898743432403098058020793336010703026882048125615301732372300349175298663798631913949876695306320228544596330878637019655285044374396110216991449453532174267833387489667053759307899059674759556982470846022070500392042773275304655409539962777006135864073600336858622098034362046812689435539128396182967506394823706299010713506205346641206401944975826808361878715078617693984623744348185606686657944355481114632170464041551618630272421671971231625598237923848230864780136916956519088679206632019833129442989797013327718161352729826835312291071349276749129947391090701801697299935684287983637397980532649325000687714888841642164027131609732982265414875451053999644613187685613253900732236184302088013410576541535908909128265294779424924853638648234788602086217032536470320638332641158231509373069574298682889883415025603317066952342422717783613130463331961310524624611029626090315584560243379452861547406224612165021679695141959391279909144784329828175255729292921687983292567993094661521710681293607539244521681741832125796804760150079716656936448805577681201480604886402462373033724938372147193038539657419850028895921609639293664137294041052556625870287323004393799652965770883493993053870433758744112060704438481978770354011871554268187947841564843960833175564726262895068842706169943759165981192227054475607884664512145697971646814696920062937366453765834251161138303429409661776112458776347615065514261790345296979231672726148744325047876360371793593110299969668530239681334898622413991769679103361718687425904782086815655079412083744857876241700734070489120912303044920339463755825389853965976501262028119741719602411644684803419309588750113477865221505454071562818035533816772584098837515377778887448074999390558635836858232049658488796412929415407526952111213160174566342938967277323024747551138612365931391725400573237386934115436028083893160907848838303664870768064082038459380087045595933773336571340889363062575248144425778553875497419225537217845287301461539166934179151643001137150986262251651043371208962326898173266421603044457627643283171114146840580076665395428807942669952119703366719956126606644035718111402841368676882898031709334739014964883815462642645506071658807931254911556033390616198219420795748348866588176059398066150536887490049734090480311165358756294501355924716080923145727359174942670956236255990795811712734003043028846445420204507250592772594177859890988308019340102102621310202517821861754043025243627240268947339999698149482278926482372307426230971377828290797019832901299972282693984311857035739329919588536828555507835654761729035995256648889209327066984202459711500191172111143783908308659667478506053208442272391335010088500544433862234993802921888720685454733399280556526654886672761917537794890109586895984983902796987893203466098923113515605962812819858997779776962680900920464963865761580902062743009460225883690926120739900830929271327203367721680211752543276588332496377644389021662023717809821620810875430888269770093189237370286521744479127303860846419840427063372523723486478644429666082631429508000953876979863288825230592240868551237112453652947649908636811688536261952368878894800124668845309513082165118854550900572177127697275557028920421946887232042453760567685356904405413614792653990869590150471029904651805075041682714208986090944509300714559338406195186226789803276110863985761005329006735894315231010408480890474973621195110196504812719774780641519237441560512737559137913411978656805441322876285302862400402067125892881347556644574292837714575910893120969096618083575686736977784814027469068921682178700641135629366672087220586792582998737167607633360462057965547707088534328205315657365408889488911690534237079331978448564555181645288591148818632136791216081348491888863350272844952473356973118183286188322543003351203899784586884072116857074838529551276101598664833339461786748302729468330732576729782715239194296677624210258387414275571702621398243698350079579789333055296823051925668580847067213406242826106180838434853403719801645815867340369205512609341828389147916430411752798520139775161545620109591326823329980202358087814234474400592647401269276942102408767150673863648342764043911006135856666642045124639032160903332966514639926625346431930946596716210324520945840433865127063723422186595471039617029280162738712152445158996445310488406659122482845802282401145311015558365030168879733015843903108491580774908655588143082637382153952392316139496534877215841610312383219301630152428660779642570011914131393974846138095298012790085608597432859552044700221224688212062195264369418520251262102274586583564661694575590413516170761366256191532794112989818163664233316344298105506377432957532192680670649109896750298618450535972056229530237012531944365936229334876963331798219904971161639905277434376492071203673729025475462638190424377767511185291986355162967212437820170805430219289144998461200590684408707910806667318281650791496431557954823311920893933702382732058534153316910887822774486016723953602430359615368802527055606565830000184117158858729808025660415467401055287177662563515449730729547348438674579381076732362851066123039938754634478178829966300217029355071721286555215958955562668038146245176370251186435872019821500917332398531410762044630612170316780413988695060942385128399072655406193637640427354695778590556081576259749629162574466415517576493437255672238361159915690761472449890567663724956877156111595790193975484810588375159302631746976159360122856422703753837106687226690528145171904812998420702263735222680883580006195746271202199618796988346024155111634563657592851661009312395318588773181469482617937645996463461480061048723354363324874150085493506550518370728573712619705168566497371420018233244640899117723527296426533965576233591406090850858114277500374801926123669809074463995125180329716328605858894063283319785743963550907920560961389341191989577771692835629577351350246911954779046911135185405328889952269631260159496443137937714124329429964196994170328321026761629006864080895759201017674916629099443336809778447189438133378767367762490889582790240923971223038068712690770733425147414841636722406988146343997759358313108554479992654407380981440644288446099868179819114310710481500566407461533143258245788204763358293036269418944565558505573383816720939327245516838687779324082703270738581490162786906448176628798575287548833636084387436216221539664396796043642643795311704326845687573071897478935256223882883430446955453492087789585112950667910464523467451770389751443239206873961759131842616137884301056562244705972217095493305692052274269044385179276045501065594540093449444210587256817066754969461064645189272625877999337418250398739744776519656000728550326454558451892042969498591241528796765250057347456182744205376745143940144530498530967250461100688823241308968832534127949669923757055235789859731739101646984693104836504101517692365936078810062022786231839763833212535239821641688711656726164459133185026465750930484900030319359312877007403065081814195910125513111902774277068812216552898790218680295477246832129344461718908522255831563168558061514200268471517797085760392690890789622024950463326112904653272054981460625352766601066058141090990959630608043806067258993629011141979661864910297967407690279956792820212275366800391511048745058738564821272617004696352725868938013838815414165091025096878670625860077621357975216887839849379483303830870065553771293953097035435667220414627875215345056446430359420548425172067820209371110278067444992411467545433490369096455975027988236658948699866046610810332616597872239280516115169397316853844615572428224768696274233419319844991681250152077008830926708840589113793446743358424949122511519363679645296852488583317922279380492132251558771790378809407311689866061109364935878374811338359631981964089546150699825840647237475210931706383617207493276901933003816813391409771992339343956783131300325023214261849651008786247245282625341110108151543948568130805323335905145743302875782800783351019616912739026124385061689532400282390619717200268055053459048885550173970337857189107254481485114550428124219203228772646691735743924254025850398253399934754172482171681869258098394984526312497847091981054035959045487903734790069545340048246747426415735898493085808620491590114128161709416179878130791759267299724889733197204310801122680309468572848995149372615553942074536970413491933237057497659949547723700726872753933767173448029066343004349269127969478482802125915896004147164355766055285375749197191935239880255781903558253031318215218678718742444930036880945037573796158201546375111469818228942932433380772671941425450396140316080940963432756979274296337669068007744354870721809677516976079168118560548952843164089545196702404981341016593042555143419392494017085173228285853634875511702947565459461699766139795260355299584748045766435737867138898337238853342564951077457469572256109590236719473212842072093003889656808085959300036557476672685550626562872597934638580927220438325857424591674549508907328687914583805557307748749761486629920328235617766723393724507416069027790277927317233760037285572728983671761155080082158274071402355893098741958103846086795328619488586979254826891857099666878209710364216067190557430386951002890694885521296895046213990061256700222461168995220014807031489277039471056557972837975666734346205829194241763047711593262371436280570730109211054152957616890603846227915015641926206981178083882546688933271205182251505949278970246715866406646999036704975841316915049178916071825445077407521803201543697166953724776739229036423618894992912993624606486870944689477453676185539924432947756629089583460187989813211906237362197481788572062412168757729459678099634301854102099144064504625430231051885121741285474227855451720430077958008003897062944779375574355970864322199895082672411422006052376119552063191196869651122561888884166966550613585096826880193181494581132265163628416113896439287896303569145229259737063532615369886892439583552280373007329018014412493759116503889041625009752955318258734184236235940520399406413844920442062586229738389217996978882922300092343744497271186695283355697151378791573129260502844919662985842943989210981432926336905940431790809563506086278034329614639549508791322371943007962540691742505158851908203536055792538812552737954804625576793258529522593737958307676699257341527318477148295613160733990498004701554272689036709856533728622343209561803361077924529710127395220401732839380793520935598078205912389682563624110738668802960569772713050369443363176225797097420732534968974814319968008963092207884444280245750852661547852478921649317576691727867285155853127824724733190109074327067880143456682353069917035577295465847180125367062761946689616336911119204319961097265292111410779326089483236951278146047404030420392301373948685416975435850084149944162330850176252762929685408541570533308778822660669267141143203074900157669260770199796018352961101198507376222950068221638834209833933381256197449996490359920626626917279804623424459689825310589157053879674630324191238225586110350770323690040899314822879717413885336332548772556245557221412622692592513516906138614539486866500078930598846487637114778554875248744130107421756876652220565919169618228522220454021782801319716201522501501407849705358779707597863678378184400362117153728089665631124347563833904846895049984292473339565529649774438481505484834056136805523212471172329213828462765074109793946143727539946401812200769431438073635122391333384754168895153753131313170368392760760122473290540635487273790782070214393067681850823655441121857596573651816620320897644683901695928142486725222540205864218431953896872820607055642090728201573262316490583687571208843307855694013028900275087148830646851195498425262209865875479323738496968447626937932573521524554254008577363123188734614272238979334512578217642642976011163937714026630503152061233608569723782887958342086167313507216356793517061488888347680831640078780761475877140238365540495273894948937863317994799081757686187865590338958305381703872067797972318228719713496750504114275381985935511452390735681601041972318680112928624123432065866519294595121376722085959552685753264271708552130039146400467583103462318796117396164923455615582022996996031134280840458939973862965438494262572305327541540973764226292425163329047744902615239386799668128559459270959439504573915805149946826851673447580437946108748832131422943758840878906814728594068412903392333002127390512332170995875645569692055213450721654930542878333784756494294821532332385061380116356878736078501588188830244662632615875321452802373667659857569447684568543086762338121251461254344249037392944870610344692246409700868142666622291949329102308486494641874741027979646334784822837051597869337650168432644768599538824783702855910151124958683396377127113256472287172265628107693712147680753310281872218738677016118960860583483932005149668161048709381753644307783163794091799643443274139072521841036468093894134326341845571839912829126541612111034912329662342496716876554717842465280236831302703590293194176303188936659946334219953480416209811574347326787795690506045978497859567623735210332490777949937596916065981914322301710541771053867555398134540218531088323432680968997416077665904569755739002220272693423558215624361597513994762690372540954425003217213520054439396524676953242595927727164963357434550816295098068316124505037042966219620318425639020992858702611245471717504250972583958636006733315174437353464946651565388628496198543933021299711930796809751708242033411820537111734207901991467141156515877662932698559272684001220870602821926942382190401362751215523495933033399139727945801804799307135202122299905051315236601311870092700709897117882957614537342649858276684730196098084476181916565637704645540471024755073672898041711402716339825856173824332342964275521900048843868208220666077365231881572278529188091426024175353381112714391246217560445653815521540275428127316389356991933478261146606565969690455222757039047858617761746511882910540516597326309182539653846570954630275997196144894607260406332095254419651058247309916247911061113392954631607291922601526863196200259163430482288570690529155222127995332722747092338168260268026571276970483744483759922569767307737122663233691226426662409222888671205839854592469079415186355392775989775252564855586554837557386435822784684612772921674656477188463994039455422924154274453206716544627597384931690532512012741738116741384190010401079242553200642920042065261112806706081671232265305168621333814099582671390355755499873116393025434244206833174000033461709447105262778819617699900639852318890168502020153164951363403028269131890397748309198079398226855213400526134567220899255932004099825589449873107649985625003419645852184685954164497179916860330422762472081877610274021500428746759616429539785907130297365168358718062191609609012190889239175346905953736648803133921424806443798488252789383297918494784753229889249547220060962724129402202349837845596705114680760267995021249989906741740495048966541311354650091257204365382142438352117750698542545512987923725996049043148125746782101064180345453001329879033757935171953169615738463827511980955868858199910902478094055176683569835627020657662823248363522486356363718901686118504067773572640978856231899727313283641924437845250790078470906161187803601242945473701054085170177118416707420880377175998627498519218095994350101926026467287113052687948917901803877743064510997450537767694095873966012735105087565247804697553504362723427527410637913730263277793830368593922770721940598175685622496373734946920505887364037424692701689643300666380680845936071822960756270512390090595711006935286676585474993404621223010585391335356520583704993587800338453240911825601857610147325459872544939200401013079297423011039417940625675758753796722329532519751324498372202387322583291757523526541972222018840468857391479772402012859002466438483871320237239901996790298055490828772864798504274409670645035906096357217174414401913541280466998971787395868119264428546010422554005284031331708905585253600346308394439184457214704102217231006618452827377103663897419402711761964746518953202445965687603901411905273320643904887367199262539114455532410103106369206236246608590785342582761255680859050114718671607126302382146868727519520118762117347069909372787176108953181715681143220535657584304615478645555028206202619903584761534922600954249397235084191485086261581186810419431961582955106293037764279897962925585102421085376067324357091075767227832993120632722383328269583767855073396276559039778442341409579014501410286081771570567119189328500990038517433701960614034575632442164309025867891174092461298728061624994922748890280466089574785457092004731177957775013487375410271568324490961024702763833120111600765651176825028789680352588635398798762596729770890285966707182580522168254442841820211213319239773993842467577776761119981368118672942685409208216834268300684791887983717048199649673378553872094008112222141915791444547882083885805872352885037468408247774407474313529108202678080793577808992282654873130507883547110230387418039690257253742021570484722822324915563834748427272059410652849531637977922853826121313209903482937867146242972899782208844293365999353633350285285396973458035628400591851454313076864086211949944037773784229566002182237508883838530418370326817949890365170899446664506909677565071228724426079457715164695817817083683857568852517152479131300091765735339697820647940068959612885978710514689558450773526581407622212644284608378512590061024724618041481201585218164951818126194555313435037974910937983793643802147777458830134510637586936679244913990077993153964958915964125579565486254535242076079115796953076591850547604561141936825027925070996937653472731285048806291269666185001238084491055939711209029679684667642428446989399551336392966971388775979762083330530516559086692262724944596287081106668734071685397122302459728521688998979585293068061177029061815564208841176970894552054329847576365192906001955849813318343069407088439405405137883120218354848585787994465962866899922010242399333601583274136996856558214738243894497608438218983169368147465019991120122435161453788484091311279403057379625720226212147949587349745068798694591116243503533942709675941688939434989593659899838719409702769269339242085944565767680345991813240548121531054227282785875216585601320857739579619720677715412686510346017383835492499491692563668635519384690519065779273571413808884783187542416298898720242419673892222074270742762067110033059188690588217060523269299063709283445601667123869058656472048416299620835822865515444881916607608778150264225669025045488920621490582959325379886319304131820276056811149882763135059598568231464748496159169605156330369884055066192940524761674508751136592682477968021010890279078527740040638981566080616073185207640246988695999917815632920360803784364380103732810146451440427963773328165977030038756884798907187445688308881501910202328845162831654813370038725810192183981695821627358268476834947943739247992690746729860943370559638395043335539638238677459270810282999801024168474185995924296245677119907795350467611321510723071942218629031665635291802380769991548927481868521331750216777397528525335974009826812800949268402791195216592444429904102811059517788935181011334771303094201140114975244240779237735188270458186753193708255859274817865929927309320501744979811564849537395099429262831094921792981399328566719101579198264413605525406509544484083152902256010848456267657912548309221159281917519219889146075004791500307243771027437130656058957944563801677540891701703806292847870130949108333103618264031088360219272017010238597292083172212460192847141931937931118767781895160235565067189901265526198299368400386016665507924989441670148771136764852575220382831565931721344048621829452414390199712499877291477917154369530163903347351895178500584170134726461128646151919722717581691849927711519596207065625933678511452102872265843505907337418144189779105469715611523924531276753522980238230239416207655164960895477779012126757783538163069343324682516026046852087342860475292765068224334998042061373016209294538937488051899923591526016815230945018934416318581004433665427796211917685141551840059212849895915092799536176702521856227732410584061300966890778851479822268689437069016947719412851898210182264118542974451610128604647441380037844431536896297370236372158473488028688147364576771577884567469333981286898172219128455212148463541931024697950162282006505088232212795173255590764078159165172112508783255970040050963549157999797833715495720417099172041132026564161610969947616504315758698759084640488303396484005902572625892751722682002485233385067242957249549166127306899186661819651004202832384147213996710363673020793784357957525915863631353571113281125627967998481818193108916118782195702778200159356069400833772347496419911442677760375394639999530283060639849183151803689728437158280203890388411891524486353481067792883929440948387582064866084571718299556572629077856940340864477310244300290838108363185592833796645717315656512133102298789971479196970573322637003513488970794480252426938102768329876048492057066876083188689965551481563462276053935366456230116234531203758177879815596338694806541047259948840920922261164147271785095820435831206731603102716107899177144770408266626845990998201343904813511002164083896643848368786672825049737130457955839831451680287964756478124724152171059410021486930310601090132252919362657557464579995460667194273644071746585437914665284891733689527975025967512580633132968180913190386415166219396742634006533774322863570720781002252490172919893230581997435317272385594049740929542943579481350636576720422880530845569615143540079850016950215016120381313136772476393092535004965657880577334293084682514098500374202722895731006567256891292404538952181141313870679488833095896211146728603454592370447660738408559151987121286632503618380175747616108297801825442333084718767247393308696874815670545820615610196795646411017855431603718172420368768280703019661463798367123403792170963145455103638156821764440878755398311269860540413752707477392695881407420934088015295454538387182602924541830345993315175806557721785487744690829388659742680550193328927994258477858263501196511604631503751433430639974466016381183436132804280730862470888385414414141499839662392870558050245118481185199711462029660405337633177035467652248432905802354003728519578539741133703949980654635339784030852516801959107476812760895233068648367969676625935000105112225111612555235656180064247740635760507150970757165562505795574313561845179878385862314185116003035963275449555155132258197232647028561272313030778081670089835830523577503354548873753620808479176936190527624037530481090552260695089979022424935566672461121259725776805315128025400585532936038898043727273631188871148630262207018186692257494252494995180774432330263081360870622249659676660016987908205812599168000466492259720145766849172641614426446681653771704842371288639504899251802965137184679336842610381983581900366379436929343796245523632885571041793202269875717120600757308591616781914643730686958600188350678582451131161795124113545270337195519251804584648664274995181973822187698393246036797895193623757630933321286570953434741993331630731712083809089386670397943197527809181007721756275690115832189066516321048395778892011889373820149371720301521663199783436444990587784371771173533218149106669637693766649778349568929763506553562457913693097006475536737611074469701666348262041230610556628696762251577123647600301234207601782282159764846844086553486318015157376202545522138595132627984510458964238757963451289095159376436196028319833439071401267386702707062660982927491305023585874635111766973843983204399519540754484911149643126478394442054310074426936223170537136657806393276688781015398509045931689391299173080922160838656357460698975589028744551674021638322655301283635038275268048188579061199777295121737093451382803122635197354743121535925281319585169315703329116447354204862563777832839525088866245556913154845798928977628512560959063862019035548930307023269181768303266796502588525278209651783592542418491979174747340398686694429674886099246369502599697485020350520680746811764571262029348298280843319478567451635023291155469290855010734408063816600502022917460797404094808251107082373208780678614263298179719172869469227907109676567340467510414239792466831212617804772924223500907808312347268482199996853685587003174308897269923820926967254232620568448052278914654738774421432579250463359640271820019280694900641942675904309283526616171611912620363356636849821426954368096382773930252988239374131441939946367089246210389296890294543419765206938497636928400409491827321935549965110235922939148946161800475665917334293402064969700911845167345459538220663142668487438456064141060016012950160651652560167931237309086820565001596583560380717233518856898931099555005627260726782899085224064298873997218691063026361574439893455322035266648335740770083653624550456739540312739741946749455391791180423076687648192240286709045959392509730689647569443245767279315030262980243113065540023730107599815022183886710979863577393144382739652675139896501542687697382214135127277071304567220580726609722207864111439284261974674830998364623317426962288269484406181531470404362075091528150916869692866808255517365505654910500013127764616473580210310973969326097318693420439037937911797896359836363718749380679804782298744546436541065672121157581738783054027775438494432566687752057026331807550636376614932745415707750619805302156238017503999285208227438891931719837094668114626563337453329767701216131186674847343675728021841082193130817980013911075313054101117767130894241472205386986529594269428525213530212834835129867649518460302469606842241067356930185340759767961774901655551090715741557423155956328366521442909389800008661286307648277771185652723293812374828982281206823659882000912516751097370118664059494616666026580411965076382213116530614131361806363119228813429146405493770708657155802688011515586585030574387555875778293554462721165112680388658401271824616503651737775575542771367396123805444890298462685298958706162773527545977635617462568179712443606213425953193653254106381351654529897969431349556873425768492528016188660372731293057903973557156206865698691211217706712254914724591901826104339428804716617563112191139414187198358681156394026395908851350137327876585558685226971752134612148719567718121308417743085002954710235441257822523651964779813522332285894679613311990308175563122039461655803245457957526377635865327786854923700465689246151490754672134167327573888239973100090231825867521199055102018908913172475468809085211940558102394637100623119106529118801729071359315717755381881687137425800109064772870357501413493806610119367700499630713927093522536488736035230210596259343374900953613952941488347912091362188442775391440242135125777413246424360912562414158455559445644268186815913300844120671384974821350779129212905707868790107584503098577378145591570566415768487158987881011110813090289985379018438048605856002558927178727760049234971540393088786268144740770544096714093454306730049570899547466461390188209198047511699793447203226675210834506051810464548902527383621224236623223889579643583415181383930737506236711558140647851381898142656710707509728067234611937249476963763662548091976235097124021484340380967047168614175078021705679380539148200170509927936035482097188446832805822880305150936000128397980651607336695275227338155188162286637737944880987154981816967280344182800533043012051696748573807672689415146559994233350464552875188573915695376825773636766629476638158373271006605517211612527756134923486282850164144978971780091104498379500749530524522191986779862229217084548650992161296116661656923174924198441451590392614210897618490241059085114614142780729416219490329819035675093168534740124512541221355228349179590344136246972520467586450585435602630895219399023759881322785919869428727693695573146100223944789422535664535730865538595167891588494710010825994941273505104856150323570737106621038904699524464773561236535896129562178732484693625792851156476540568916481770800804588110471254884330127981106450517720403642470818103966553179205627260441457533007595321332447948969081964660962204673527487631808735876090822873896101966395147667854065426693650610754190862247126863760312991963607456533731705819992532822637709655060098858864101091128562214414350887364769386290557562780031719588512570629574220378372814640374735636703157348725613405435236725736698675622952456922962398519733567537022252201765783585972884747310753803294455261362220519257803527607810382352534601421629885028257308924917481242526020895854273720424371535915953332500473967302149057011298605373427609628344197459163894051420003470496061932200949314881264158415049307034353366148731504265529570726505937658543803962316517278385783200183466184713412735519876156363329851228606275777483666634330846754076784904092371153143244680924222587852299758567095367213483366904672152545190636007150336424103614876080083083353314313965971848559372398920372279263066969764243339039642407855410027242292034480059277555353164737581975118536133139742791627983124431719346450010769548186547187595806252094777644076445693710300513838113528047306633813940038675171063277129213892530477387347691456653547250210438538622592481761776692294173942439728176979085300810415271394163254388354047310991799589268617321636505442258029508025274964980316527681501465332332003745416479539228930873313733676839125454015201185848187856405561338813863620185675520297158157644808774780027911221971368150703122595135304847459677063813189397606081294909439803616749571312810630571387859364335036098623760099675773057865113521323593978302000592513659000981938058878506629944497959942017374226341803061133036636040122581082916947144749648654616351697650579331656369258577133278375677897760676636515689153441267881478566080310351059896964621728791718796468207683166260894868325467074951878137824499763034299702713194388130719309621778132177887970284082585053588237777835107316312018882182859894915355606806596799154483365903760154720294253856578061726423566935609604864007098960471447445183910372916778501951772827420669177960717106887559531808701499845495780692545078319978489043602557786562461443660851952110746729153503863095949286317937190965529420599108268046093712300335885364286820237917183852692991261044354029192087423624240479146863818507595782813300454788029811546133838734135353832077772242797072901743261174328801218217984000454470235316167947799813433761916471922985468126128136578303131625803925957562575224432423620619132292237701250919951719248475737427292782009609456414037061479401345566672640206263713280858924496770593186052109219434907406964213507909665419440244101268104650527646492616251140928097058333489530056882101977763547785433055268504534548137757523846670597155085893745683482870458842684386029752623854922228505310184094013053960982866813016140412629293981367491993277254621667209958389001951887152690627541732733863247639783543562053582697956076723009493561722376798892647801171783822559297543264667770011142888046807714910645750805882240148210306584930302625208045384063583513571168957870620598164535859963532061829113490947176022739677272037108618878361043443038186940152055138813815153704624331012162627087174045403856090870704817170416830910056247675266128452268399233229330359933211754785704772814738082865790138422232633612875922160159158951701140213561345804427452547480605138765109107278195644761860761566267572911363015432275915991740681153156051767591475493112221399343248874466441716671415829733259562113363147856325614989868639873904249829531244894577228462216745316781742626819494548544274437861347285153306213842915359176041524373087424257430227238687793132058087120539244106095508518205435909216476494144158755455724041082126239605518216536526122202922928533742389646560784535518671384926655374926939324225038891513531960161865665765525602562665127310565860883131891909276901210857009947321153476117254351461513787801399422482164053642770316655101287284036483867218629635782362817147140279716246408250774050254691028354057535364032854915178843235161046550966702431062457546898371219547791951934051766995878130946899225645716659226524950944686337342943770886686030097775810324512221569846719260734603667557519898520757896404557713176990969478786564001612599446232966767709287029669329179043416758039306017645750091748564379076890576758259847031292201596464005723121114531330492071353455539698534666376948822291672225671460245658648708173664783571210000501835743530984579331627743900570997651433124897267677831401125719338446212522781146581922060830425575789371259588612815823282634606936022180590952893302141015813460553669247845859332307117409866031417021360973882003532627723569276924919124621840958836486247462189996976959821005376223469698367389411434797175804427521228751562461289197780530604946312428711282460181019907942188956327030787487902565231339768474527045747238398407943245614697050635219741206221404798785290608875954717878928883627890614913840701283294013303238500739594105220679911041225233071088496207391569333123199200923278137944290120221507053415840405250886382897451723623550014067490927316933689981519276293262593774399073397723569300068571259257067099509721833051745866059099574057631557649124593911919713594530954750438751393778379740804382240540177864483127859342828618139162858404770306170865646448046376749133352596554310032780464074369135708003934767617087940021181166574155800165844689883753881045341248966548739173785645957310380910206368728390755678744035369125961486036173055473862180383714350954294778254702023235827526704561369668935725851514340612145749650890714978668513300857194331417145747031743808437578960572708385045445830598818621827353063843583840525615188401187087438528688023678542636250283578981368932026064400654538088474623737766766916595912020094177485280212494532498041747416267098752292765204363172537801322512646997861969463935999284091644976072436021595934966873738329780077814599673470097191173211400594841177902544721890571230856275766894098280107383004833901477922959909414153244304144018092824077764007263954294408913882831248754772358637427652651515931237528300660841165809363417173541550034606842831380157431553535130542373964103073052423222412670607024981394817393894247151729037284947776093950643890248043592983611364768899296168667063630078139770466136258533705752268906339488546535637704186724034020291296602540317971829829999641960697769151611014697080835587214087459879601603293776715662960407407012102389952462528538995861749547955632553729504376839139304228370269997866676334066427841483055807058900418826677481867663478685579628810466122980508499639315140649718548052890442948862714964294374502827246005641988789286625170710703299700863413263619045694074802619701850015200459362589845433918336629245667325671339752459225285727734799811668174015333583517639286243781352608413961088345378314316988764691347902154434373426462996261298320273521587005748272019069644526876497727021629427123876436593447600009125163331546893000595324191156498339986381823764345611300611771327404478657739103810083927571299045011657780058325800901776258738282891200481326881151855220168878365605141941093890201130828004645922966054328974836579381609441831117687645945109081727548328905920885824483633955136764554341056266936461067022973535958639863858827635082254439623824496750298716656508896892024632663738557359034068522076057710084667743817363055615999381954632758050760166208698630356221229724943929406676088127306411166884394467177670346007549203623456398326804435584877701113793897094473895525385393163490709109007222376640811389691911855096178092892050488193050154392468495173639889620882574480592626027793704099454236517729784011825187309413738000396228613859261226398072919313177270066067914831856702160620762711634342624477207896518200535556170891087157180383845081490421828774660653434573830364627973392603946203866918359324822288670186284916802512059117978352350974932228622712206507685894631188904232545006503416244550176254496789529387150972219313127995378747692599388278234003691797650864108967120753141543524198244626720183484684272760538946363735198338794958409362210327659997947030018114768194471453354439949730495213922710898881531960075219467582437454508035511468097525097894468070535257445958636954173649727117394458983923317965467031903452083106797154407373388843399871209600028469432338295535948390392881435904620344635355691765693475997589798916297357693559407472552996301051276810611358091139213382908337822410539969413911953566450086412681274335325877813266576156100224260689580935893427231255568495991507548579715751598561707754510258865536430114882554362176857849750091049670225986924364345615630804778074944929314442453239024782414205919063375173394300258248444396165580420886711483387721630003015156967881985315727400462152001105017138363318210643608782545407911148961360648613715834414530044124158547615162512063483910844719351057255474139619834185296556097330386892501645153375927193325695141446759219087539635183533493464096671566836872348193137059706888022617436317013480468033083923382945335160019871910150358604154430422537591801194742067218435304731255024840729158027331475811195765519599827861520666358456878768635384913308028913563393509143428311742607012897603986519607927569843042349105696550421986147990009034300387043878797192187010466849266827937356010233359044709010488410708672126057833061447139688894659567741258300344507928374382947744606175673888872412140806897526324401985110416909410100043561010727897642836962770762088584109888143829412162670296525304004834373962809580792247927509542730613520133803695197008248244695100974326500740922802838874804902733771197372530994189438857032207800363906490153417100455699618234600570019347169504666333764309444383002107660053692102716264481981056064918738288132565596710859822269095930857704394912960134974020807805368589468468810260339323537399399356304591371128869263300714990216929366517110997228027612818744511218890723488288878985159200493616926728829363905329347342729467287910864865864096120995281640949480293592552943910320344725243437177424489030217693066890629801552410396352958591102848868125964518798050267455270618070708562114424719691265834290452956014778754061976109890435685798301036986144375035132281355175916120272239729279281362776525291011892858538737722984469670808736854008089937783433394822983818214194859651500097000922321261478391425038421225804323778089872713169344363747431974976692292509233594813627605872235472169841059771360782405348329676385350145263746589215390537180084546710224039405425464653940297207989313575058490694955749563780001031924277181174438051398982148630459066079888036445669988845464559211062183097903222340421059036760810720537899765500540472064298103644280449193142879417611834006175366323042918866971383570718685866992358240607099830085993103630963310309824575430837943962540257950757016021308900804357881546659872440169424537114846332897344893547648182815181993074684402450023311556517230570697689248116594272274638649963352024185253615409901450733504227944575981945015725548758580681370530552329541859502777523363437447963114185727284447859421233627958556597362001033277155668452925091447778032736527207897752067576936833906854951826367436841873156230458210545164221430726162653231874782317689051680629709078837156895363470293244460744991839011018590581172888441083569834871611046216921729721585433895097448010738673447301563574512670450529240746312266687073544434734776141284319284691706980419064337476046925069059984230129911860795571364027749845790263289107170524293080999695234029827749269804662907006574821277577720822517307318359499609352523410078764109507427618666317403529727271723900208608031035881152244203502046311705598982784521272360052807871332112363161873751154510921546475070637148687766028684431017725181703563965143034766271070973532294314529699633975361833729829436982675649707658171217041593914280106587656982995768771622154167019255747410337383640270623586855611405461382509435951960885368179051185632672698559824461407745501885331881112563444076856938998618980305334603147094123271533467310548211068159002922957777145167053748765871122573541802780949878851704769497149684000680756068495653129766631515504939871038545604546516558400141356202814426910881998465091151800351653642255299404352209924977812302277871513223562022582404832199849059593010573505237946253978816722297122679144681892876476830006173173562087745244922715560850870819138394134977029144036985727976768616462172413332475535657537957507397820318429639321991306113136171871005596084817046074181681085337340003509153243510598693857369352333906703850940175355784325992687331731363338359775127262157516024226340102959026517421145056447137549473740762219894560916098899073837658550903983303472652122846780668056832617090626161421199862331811163527078737552942586764951730069715036983680521540437120248623797731258495090825727917514808534019724002153346340054452981332717191112128361786320864577833461748620141579867177099569077834762755415898388221355455422059452089393446889101813837845248607474024397943841219902477538407570508202738466266135899741953991512144184206582573089899367194898039074343937305073128508258882071603900425134121091327396152346948887948308302268082629745906152482990911895110389663396694128746896535069432778057874672239015782208406109323222140627017857568236343016872254209837268111411599172703334784276351999340938951897980948407109566727766053472937571768674813933828855099542728496934721591410331880498174894120771244300341594245462866338044276668151297203113168712604357037939883762213920283447636956873917924661197256103909557206081076576831358250301150300865424768722410203424169147132412567128324811097784507499740968372069927945967169810754183218782829008374079284963840519337544468517180548205539076871816834552302190261250374094470187861350091062198614443191872273938377052038735294893309369202694706033371279035219503732770218399977829035901363035274749992196500891900384337894308700135131169991473803739489837403697046477600098385241544560795525902722752946221132969574278626285315904190251982393453137043817909612825656213165222718794797087985999614340330317477611335400707387202973118437796379253583602299789486780826141383239157378700884569325795102991656050012333188358645142574396509766254173602574860563068785602022582929333668610726587209319103339439435816893543842916931827851164387106574568425331633183888535362735971907805218588097541050835625370696942554224161472686480686867828845070149456220996975963773131584312294821414147459857304809404787865669257822614908525897681646502705859861268704459231494948641256506312568681114796548446359748655284989787147655400421997383780918624067691348921445162949969866709500304586579014740322303497882018189265765174684102611595677930518254533596417129361292738907014285508849969726829260478913744249595867969078185678847076437506558488474413337106502242114681751621602360656958004930834203903498517963869330281926102649000947126685374872855071532003927095570232597220569027074664813624353163598277896490678044997769509804133093253661635246029814878926506965988058354857584057913886302044288284610678023947536731619426820791086030380904568626924266177825187726099822306886817733303949583546862405243514820897760416206868647431800249171523395588896603228074686293265641383299315669271668776306245128985635002163843521947327308124532734413718893420888279114912503433999266400157912770228005531669548507833126522631226373958333087032576715629081136496129025081830820090217862117774727151476365226551988603908154074838894302492442597017219559597098601751450460482625056080785031489772495633598428073654035978469666137300821146970338090554772074660727458046710488140201622552276054443661287351384725023991046377716423381201336505198155789209024590612480079815679682211031870853207152735808066181044635021868726544196775868523649797313169026010137468540382484006432544104271250165233578210742621085324947620424651607526722801345412228931675978167505513802442292710418251694924714337600875368576788963011267709862569906279401364048849253838299208746345830594379346321513931498271342646518857694087182562960927421947568091621884436432613074446492618121294597500923640424977145869728153473904293414831721924166997508437611699824626002158177756919269914501120691637664918846976146842314616076058388202117922455379342699837377507899294758001630017442267932726948129476582081405438755867583209064380553860949619127129498900182296564894951370031014580413255629823693144886521219102075142112223056514787512582416786851524225369749452669721179537902479238373184257070339995081519040757740734441544966085003481947904606526420190001681619195441326498447507496697217752433647929531765587570767745571956986291104196104057386470175832811548354013318985017077193662680608240342038208818853380677494484891519254031226454340294208394052872230737958468204106199359274777597112138740575907641875802949986423653589402045688543163380980548658226774795274013726876614562333416033817864495569613662740648183112580717915385909456840622981069787824348504093518154263870196860259502375833749631792364568299583191952788111890326017879245720896297233819263696951754097468463938298370442702194317795364014009256383612506713143626460294651542150429888668249831537995285623213866754583383643596197058066941711248882514898036521382293528101206659728978438268000110449837649109175463629705277501707079283832929736131701155915143372105573125448236690844785774839212650651294109828866383530275925277797469156773263152541955357550267889459177513589667717551946614930362261895470108339189585913311124012283948312372041869346600287997492718188034282882031942262566946264533435833635180607930351820533574802055488661762189330563649393425420661440088635371255425716257634144195555202145322828985393672997086165687986746553173382101682692628591848496229820140030035596606159421181789953373667311681662196574022158820153011420455767850666112110368242039052417884576415374115169045808045809061273390505364658041378016914488368534965636791106330033540664287021956560290895963288244014707632402367056638996392840567542334584581427768152245303348071986177456269132451630695486263193402548518339595312618247257396099611434484101980082698513687996146345956505013746036582592632233199366327674863893733550071067681677330733399132273832127452943511179660147725166581943498318026580463850516198640095013844757315140363691962026124386252918356751115055746717631046540278466424781105669652098755403518429099657557374743613582656692604776961218064127815338159033891117033404556526328152498962714011453633837587203119787792808957121886207636219052406381820308852722142669520018329696917985088033093317050355306085797427431717029442583813983252915565476294023386756095386065017355669789148276665388241367650359929153763471702781487117980336485773986555955619580926038796987410326484345262355721831704211764475252767299805889673976688392494330220407455583530342577680746370498754999341463970754056849739546869804934297843064327761833133850070227817302978595868246389503072862613852711338249786603086365678177339915032476883894072605842948364545619787713400484739995890400065355643336711738987405132783626953120977950053355115870279437785881249945259348126519492009549144132184980242779285601463580432374988469102839513975217690765523015008671759630524537341396101840396726974058999001226865858230139566710234203046716511736329538808035500676518695761917054882747691048623374238029678623458275450661865040265293946880302581344324191003657563480233550530302192990308508744941287827019668179934616846037726993178146209562050568395630111758725987654768621071009160021751674473773265276913325145103749992198452556937385998024853289110745197627163776959768791975676509969847794589196455147196918879230334272808951702530255685433523812573572395966960258620030177854869199353311725811778987432339705022399999078058961936168753994641757012927246772997463975266029488721554866224901135958412934719126862911336294368638922867180886524569816086601715501258508397970531401269776720680812007153470021024986526762629614961121147075497798728524362987420550734097692274609433583802539239778327477237038714061680800782616623520433986948511289244106152398097077423056927481944011596805947780754360436841170490079270719097275071904223859783596643063058447820023692351843491645341415702612561577345238870820124662065510088010790125996576409151033288004036889215529919678251499825444107926857771089177208643846587248163879065391171974248839290798953995530572757380828859002757076339293304785948865843302305948351362176168251764552747256669375665568846911993422264085299648720755370900189084230246046566695759305632969971415699298201108885176823130590420238437745186667021757680905483822732858169043744983455960103609332003037907345820331947984429191366611446350576867511601091417911066075652054974213613933887383238301697872035896953257780838676210122313318719252619772762279036407827085119976844974653886020321223003415739222255059968355422339205758091124004028588849433866028058369171442015137217923837169990555104155013752648747756192583168907520213593652877540514763498129772437377917668967880692563255629672350889307896392735802731537986079316351500579417009338173115341757832907190626456849277426631139829111782765917239021127346957036752604994250499714610953711525651158395893954243739773444812161944355946419004605218292315940361519829305345611933011865665904064629327023104570817772883004552131621320880466689088114534681790376275757459473898672776098356614275792702771083213009447297280495536709607790551273445244463330337021247546235814868950296658794658329775540815658006135843840848964168386871218316572348894814288372638233530826080937835728651543478864068887681748917098343372508721921941442408994054646521705669624671518318876064480346765294993587985523119120518271931500455044139320605097369913265094648786523243677549227249523126963735251772579765199263551742628393498292318864934326333189531679937702512458782275947133989868355766708593113520676972338361350436843883388642685626874329493600814653263604362370674165866464299799027386916677743697629098387884046157716995008649709250828581983765376433225953589200009593379837149338946156173308497160429302582745012335307766426299782426337686182889757280299627609844842607476639989842201318886790197519396298319628285654581308089829052244615906144358313746849401458862055123807060051656493102608243398372446548696860544512201368795746768042045411735728443461592215413193839631116391705964593235832640207372574285098764339430407150521540852052516674135516603092410152395258524000159862410971325496380290642818575782713804926276399306669070580489421595880580582837247112803801439890965720087464782904303265492559810375220806872910871669914771667930436850435913400734167227814799396734039965232393751580354096651653134494381439517793390435319545183046966718245718253588252254428232758305539684753343508340314423101322330454282433020637043535164966012485762308898104290572472257663226792679198449124805416453132478889980890136799329576180894410430793862177190663613457910924229500188013545402376377354451621836803444924561411833855163597988745304525002795948142390024596190179979414829490202857821414679528624989446985716277142550453940638992417847843634396523865395523292856680531533185369449374225319259935644294119469967674752842488266513431586690592716716805233408337481354461886331246361596795355899499429343331128289276308481268328741502270978898511090245360127337181383039542281118210428975960204297077840391947662890710216532712993831881873425420452248002535269701100862393376771145852382349620420440389762944948921585998940415556326666211870392149590042251007039576162388369359960104935858655378400112058982241596452284326380206711507715140637390757871477197467548501565498215239570295282404008100014808172799928167516999975671497661798136056524217634428556630746151732242470528435363072730490243416318771530624590009655250423508476572719947778045690291646112355554566527669258496135581479426260906643012758908740173500774482637656991261088630995628344301770088018180741303478155097724581692493232360663076796760164779819640599987798024085412495130472303820782161227108692596441955645847111095901801995699977033145375670257696539074336788698697660461989693104906866864339137066330663579768774647039580911243608302463715456150885766005868406993932432763790668411435628656823436399214881897659985181019338253578504985458686922521465646719550286840353823901309070498207196076411349517263307943424290129641459258902408604486796638451934977663228715457991385292997951652029489991356687090878663236337791138374095875163191916979915766412198177352311959081829019859932488458302205372382337407152123912990330608950237441244823256578172965756873551221559364241677605043066346691640721940150508827174059910186359325003687690720230655751674395742502750982038063730805311506913147480170018798060864605106966451717789330074631376726439237695352466020901444662370244619282554067164931917273342615720046117034490673922369334105362217364905527418240733739121525553846629933638123875637510204625311110224161556350966710088172117861910733301824568195233654949218504663822848604174500226570943962991084276932111992294182528592377612178380318334720343834837479037849780306546697884948807799747802932254643126143459636972246623650304677200765971585274774497398838788307468670883178437577216974066033462399023051358816064246428230339923470231392992763174046633045267231562413874386959891680279283885275567906578307919819241906859437435051221152162604510604268269778537821418344721636620735461822581212492112077962225852055017200161506138106376255532693936302262879483120895522796446098874832085961936531959810765946299635603288126022325539169793601254217769925886759481519268986797875214582411036161138195342727203860157899538165582099392353538419010979441872265644006110024781138469756435024255757437723412813578828358327963651565873147157247873502548421567383920560381160990191268242839291442812208276312771999492957915723916945515264285281458553549657862677547058691203497014283143904534364276084194047720636112079856936774602630649000080859557103269467454123538439448650967633457958142552994922377442612722582519952800948432760040096790721205869201036686819679288311218667695742657048554073051021480804007260253096485723970786899363158863766444536096710548715641232892542021401974736467883518319260299210912708728353129591792128705635581468157180469301593838128612379972628141999400710417905465806657556460615925047901132816928729766126003883215614716256079430554936284481939591919597588952134133134208609354876423893961228680457575947671703698059486736199593554773181536490292733349864916058079949592840102313115921862473730042984870774118656737160907857642788688536390891439639973736796483462218145170375999423351876036337885717427661964653462857879067185997636796165106908435207875851704683825197405476214577422944295473222633636800928787792163953033802532754573586373395528559081211076272951711687085107583935806102083105619045710529858136345148076057314148591129345639477233911843202264187113830038195696786009452343458605439098995728298253770111449040904652425695481309352214234070654114248546147000631510363572852266212711077270744440836855665079508789405499579724939872891965048007734244163566200915803600474412105709795203499013899067496286041386885781230357419070367901565208423889144518613303692871635618253292239328407145169068489078101148753379662338915864003359648878768221509991227537792366404141890797081240358405815423306588998077169827016187405257117205390266436903329924704371673254477515756730726989109323435310098857847476428416681591037923519066407143899847317998880124543214306636539709732447467838183985297053223844789480461363699714476403382828378061427610992887772583687735308483207514008718733160377596627087000448843349758583542086702790617777087434647159842209351256969416089249107859347451377779409329033878590650669788220613754099043246763476629196685229782412801141175500681834847953256185205565338403401398459249471901078423968790757151789711075366364232393657355598070745807400348307922209009320720998767121294604587543867239943089755036215998445304597999113354018050871379559353528485989556766513236276081044661137669217452849652701323242434039039159897270054130867613080297535588048818373892289395109707603492477520983128346201263592912876793729791205194728961872343648720417645128053258731350767786738917790359802102624691629931829947787679312209028836625343439367161395545290325954941943723421474631359218500466314180413193864015169105353981206446642433454491955713391894302293894172861104332610373505336493156207064470461449048872308648223115826367678606382240554952215895205477467913330266393123351025478569140718217948418629023694750167781278699824758329685109962153931565707482410097582200894131876437031099056182912546442259078053523174397727239258084177709272904751184872374447487306875192039679112981971912937881111159755827066018235100894092877459476018077315865267238259024618264860148487497539268442263436423057133383616159627123844584055517544655035000546472138293359931851217908827839492626663118639028319455960238239699058949566828018297674855618153867286539619630676274842443853219391678742581372454036962723810482823737902812809811188019237030718613598373669774976903053213462448911733253799926532348774535198723012482776212739659695542618297765511525937528369296284152663404761609790495806936692121931295539206248219979580357254985876974955166693714673921377019503708750691973876579429641762070735520379066310865212231720877114657949484542889124016387079564805492867025329174739510908152511522064419542406849938267496709010868999439978408389921641940979003833923031805335365078894378996706045340609378976679317519384730866383156933373315200214415478856732658544728828917795783121786926696792180965099904787254505968420257732483286204643396004626508097596849744926784774180785591508904897583860563492514018439248135587076065096790285926248349117261664767613326770135729150201368715073367336230142664555910563489454799138201976662365993643767987777204082155494420001300446111152640175217728284425605279558064864405483440630452095976455127958361927103745717108106903615637441625797707954787024988603637089909125258056353289592565063935128118989492819377309117288111335115729239237222261319923998112596853419371905197451158663022641554934998926213059290813335022548631010063894499431599333207869900719944317199773632216867777053031994461316867300275515625569317209652787264368474847129317193555260109537073149904000638407158085030300933600487293293237632181980836529696929792747869064048288290675242543610775061470443152264655686111234177382859519372580791891098253222332888161713278134140100372050242372577696781436893537297742210761994567117686532661169984652982545133673521380362512423087841022271846350179454239920928567389818385469482346901990423221707057946851878583388628919915771894519812508058520614501582729335048703257011629027599766676177168463205448649270376662537811370254933486330372970927637361570964822831481054395535450826013814259649193771088194859451291509526286535390738472436338571840262087002765895024057552850695148278455607574709058825719893628631803027259874409130864604321464728766995650387650371378793437250941796804626015818382308824717026372707516377282155586535542797659454300605413668577909556778942250969369070175085816238224092626427514823789581277696405735142837773571590853793618114049864082907654241601841261833051033307204549919780105876936673337314868381130045792337305464540253066677549555731083632427007148696652862684932194396490953555361067278794907592986262613517543818701215915403857952330097568309594481762380356787501985394285270809894998843255305855724868265351087362240341212338481146859492744570574126038282392640955249877300382188727438734585838704075747382202042185306004893032823088588945697414096893643995080834450615774404457279136296437946420808643136733927395038013178059231067724126209550793353186609696671051708599156322529637994398748824042587459252943431137795808043085665476543298387572853160687312350854914992459962469404754064188651989400640854899053728571965947119567136977134697131968597251729031755424164114021266437764626949244094646050823313450633347785153471135583160776384634882536773770500393709000873329131761456574169956286132857093042055091288906900749604271368757597190170865899242804162706575813093766857251427995925877110279139008780980552335803649525381658603116854099367145731139757026449683562403415157099679505242877264139123333044411020053407583953240247466000419863269512384147763637106704012365120347357746093918472333890079586078871025898944573659386324050871238947197980895480274013278374714209555083086226751400401550771734481029682397166720139707189186885458236195328223781979878281121420970310830383350418246006265133248006452141435354606652623122913632994152090584900776351129312733422077186915284064430525290753496891846757834351712196298819888390095061300825694589096681611670710864531864193285732058561268701576411033711438172862790507503130244500233180068655593236430126859243966908245500940208678362360350573814042202595077717657607416297002517300350930796248782812084276764579377933835983991952346818269108866103272166476526538575059005999429391883304059823344822069355690083222479334744755876447609077030060207701325277172265583732092335475677045096015311595847791279726048665014727153546385896517271646828824413656696755892217104917250240531265935873426143145011154413379290797593276734862894673166003307582803487114531736343948658068480098423331902053458089720993119045506212281592480389902463631501103600641046380603893773120169625369506787337450089350465305382996551689640524088602969232929462527171486848394127204815556909887567617222405898162376246989220224073741571395037805028510506160740841167229978693945050081906361624989537135227856907223421110177512423460190900721476831169868501833545121392884367095443681549302173964772113473345436992391268919355744658370668395474988307266050294238177669385223954901526651661477720039786510016558509186407916787502066719212340672289994429721805602611897731605694105255260359984221010756626166443476076748957747832542869284145355400463684675979739887361580112320962971699926967564265302100269208364027196392736372507351079466758712115178964930069601652999304073596441376967925784171043033448816161882833754882717728347889566935036948337935536773925101550280724614665289496776608686098464053067838928528261402339925249834427243336115735672014158694567745271148815848799210969605823548009917434749041974737348436707650903658953593224389413463330926232548957817863291422997428607759762018155275419514465024891840397722969900919100091050948002264524398968428251272087544591091497302120907132319934175967410790088780376065985154203299859934702252834055291806137878977093674556051974082393597724443148544969783901707066282047901031512258454737456553320469333398946043423910509588884765484917284914001514340741259977964310561339216185748454877515803343122607565313786793726360945534488256725446983989602204809068333100046218141897260136947351483721560731786944563448601331748124471420846605853529260938976798976907934525115399490906769335849926065265804615096311803579639830009408192213255523456493287289194132286184952968344082629987956760745018223869022442081812076623945933766777753744349204491940099285918875634611543433380658615710711791102422030292924535387411769916637938968437099093234670936792922580060386676772159211016324536482753252077857653322261390566590964184157332304543571175126929331118541640421182625782747152734099987335735253272392987970286903092237243909311701603366623915629332135551363902955758815888629941594047020131263205964168685415656820962162868132263310988548496783542594799500658133752537341971567966173440409006046130913470277605982297349114415427672533559422381837695215995611490549594427057994928935508727871810854279571450309118641878689939799448959647691896933827353682645693037308015435837776865180472322782569340239218172999191469290267310137788545361914584048013370868336283068573407370116550327156097935028736393813960098935758146936022457767109053594207530561527978429635129816739121831038959428843059015220441079583500235980169424914608538493564211914760005128514963442317318492231964059928256919758959923716439202269283450352280205865211826002595145865213258739814227250872216264503852249130722241755408152237105510873545903149139469563521147669994373632428172633267320726751389927940627307904198280486440844903260328252098551052196846893801692597678309622448709392590693148816213992737181797662275944925816022479534062025011449787082977790976401710411433698460402481176193450216972075013214012702802919573447037184108992816717891642605396167321179749095521003521889844813402024012590088413681676087324469853114867503183984976633314338589752996571805188408123164932487096668577491114073744575324504827118805933458460264010327462290871120066374875027724470121933024169423817992735569613913028469981938061233666881518514527180128040553976813455027197341477811065167968392201179643447106783981573914533926169470188132498694840460467340106983661641684515170340889742936097041044047361686835734906234553207704636580129996118507706605441758035366129083206208809843018638479293703240595548164187993842078114999265983784433630700433687730254835416473143205086007450637352228686386920675318239214734295743930251441911602647723594000742683839379573906767052011434825192554150547386558968622351640738052728125375360960869051854976803901999041181063433317244028479251706252887760608509673140525155072271192311549664348244938819029568684758150518423981892756505002868795919261082018273158286987775670773543839934678701172098549659643435776557181145224892415945322827365487269664783726061475285578644065877354758051177387977007661093338221783749848636442638201043344130078280924219974397278353034949902987925355530883376746202754344267359356435204745873704085895029518978871258262168936714364921368148814881481764864045729571001635061354010032429194156141758842990067212828216008045554055800051000045756373175383892498083383876152338546934035326465384112087225649481192690260169776730707468139167346737732955784249685059391959110943108181026022560283620540979007972119358172269453976707087254988065753329057456625900969943181913101906543159040700384220252222283640557818503964334651436035367959520452937145753260782221928193825414927977133038064824638567466151226136401057518134887742820574023516604568946050181366675818091256048866220287176666581133938237284918697314212762230742928228866591151357568134990160062881826995842087234232267506772797452141367640386997662752540860240382939664883758005707996635640431360956351042384621683772632441135787486161668795359952637072258165723675027473825650665246867613242502263992093739072917090084575824256588285789259026984225482076254498400776546784482588696429397402175629398397298810818794342168577250714306009403384602747352949507059933928202164606054376788666923539608287086456878390388246768899193480290856363465284857800196233170627730509188142482246271630179349105185262638779450212910486356272092380309190857378018464654461860075653352083962814181845846803534668995216097959353166028994813899147232881142236551314218623977077502237503879651288733319270570042713627546614799339285056891873759890823987740617717448948818476400354241948626646133140219618854640439402338479788741917728167671748932206268647585048563423925173926173204928045680419492028746045374310841653977854847224984418221242606743078550461409252678743934618914370453645393833964579211695047505941844518545265836449546792857150870768917926699843912189192729791765365383739602240981987975208944106003772991825067161738478820251336204354339089390835873672348117290498628145834631358882266785460637280950511198051828890901806929158610401843773234835092924292230689466245119339279437477022130272198460623920820587819098882937556174692558432164481725955877401969615505601655469062710310494522210539109254668982563198310842304245745840592608851155813139066370171911508067481046248664286008176940882959658938381873646095686704658572405972906561704332757421970888694302683136595627159480461613810715587846260419408648793383792727905316505927503371421669923368297389198275913524332421227173070912180807767376613572750341682708066811298447589223204149081197986364167335289810819192753155874551712507254592821455452859813715839685237797767819255395342971665185591154832104618826663148108925812232905129024136446688189020637925080696117816948221505332819215742421975807719415259475199109989605186571710485267079443245601399078628439603223412268282493968034377773854532703480554309211801906027714954087211152675379602182087297034673009306245882982505883108078986967840378095450803655718735943074372410234350723001759567778795663816424492774934594683631296476408358986391503945026056133992852300600422455233859471118911697219521366683975415267017968015828059007240194403406265071234377101682239279331681936997125113339335253070637624223899724126016326936122274614212978975026400331684595890439310679304023035267509734506643953631910930859498488447348527279804521786853142684322384083077402511879538863831934744897341261567163355559681463740943407781293251913325264021561675352075439241190534757698922497187250651643348670934116853746678839222522343551216692278044272090455886364069858370444285326990814312011571055240476130392159125416003921382354448488717122147328309037013052048023891254284509864243353132915241457706143500201642131836154800798324420272483366535252847222715080667480491258783690821580990274734367253633790485095438426856356761175257019361832208249620901519784441486071589484104790243827527776147604188385887178927178348203326887574768949564422529363141479222804626792447682482981768351154356932785154105952376097691826302818177781492191891040568287837281736783559515241857270651742186914211104559876922226332174450282602798372077719188454826018147313687004948780174212306116214063860320993342329506903271322947129060046835272106572092462472889681641430882332560453218214601043202217519068529410837836234816952621629724072275910676095923493029648306855335175852695614355107319064425914129057246052770737867083860133335422517372345743888811178428964037823763441179435807778845577575067431698927886938474348033950016723738109958156857976043186276107778019289366665681375706173648072181611251349410878270112989229555463087607362417645803544141571818569156423565004494315583089552535433053871465194423120375202476792699744901327801948852311465362290318813530491096291129849829452617413525873313945972966810062649664455308897639260999953973149942323865644749099534252558828297034061934269509073890897853695771693805394683604087701308356158914019861465642643414536257699733612178857734114704538468023941655253239982183257479519277505340618014882576737917446590898258720388367048796726883862479946935085488408821088982875189059847323364127571981085337794071984273599680671017204991982198249450562971943579652800728185382798302080375543091725317135374088488359046407301250159094201401101862273785687349197146022406632065478509183436035961865944028266387149532747776604760336760777153217049238904862658555036631827539178124709776683208508753910194116814507670289690296281369880202951596792510354361118505098708080912539841072423085853766219477814606804075230358799096975801391172955936733413998626757009368853427246480823929248844135284199365914378858628607592078614665705762954919571348052940846397974578871656533397385672745984929451509062977467573177659936896205468098867849051121477937519810582713454995621220833428105023715464687681025883737805706169557204406655930186711636091846452509205243547908083269832257921160788620197137422795379880635452826886969049793841227407732674056273157412359900224562152977279338795184935488030625258351391015596599061322788793873932420541713306877144150226089867854266217735055665920758213210730599867173693832801048465224074462823179816738866152881567583441865040185402880870768315556338683241342466041776178620072305512936721430064928858263772599442495000595686715685488659401356641161179783889198487790740035658436328755528372909052170774215467345194389837088092343367148879729796916964989602341422887830892817115685628421619880886606279476828008998243969618462584977460589316481044280294933198374841089454496092366763131031393519005018509985030500430065154431073778011172782699503099161454359656730718595285259111492933583910544851262934508574313072201404944446572819070609353156906274985030411854975214318202513463627117782588728337995701562503930095025869237167813473028287371785151234555202075196713688972918049274291713080970945148297988817887519497760976425713834885037566882766454021707834835748399409212798140713928333728956061420970919779135046645351442683445982752710587701128914194305008761320829096009017117191254052971637460397818090178005051251181059573511417939085568750229150615860004255044962812133019453718416229179872723383711367566815713788502779673570371589764086079952554801236385833606871024170174871720930406815243172262567915669007454024428814053278974029425792598814456966175548528768422311824591262456171543027371797675419361551485805216273993279748377344863853939222555834210234138073303391726572456082843049271930392238793746262705899323619597344451535216721049805338816497738843250242480165681199159495501712520938923308058731593777306098001910235882206077645807457442037830726145546742624890456618792662374160535467989557284373940088125184353490080639484190335142279679919471237098180748903923109438547658454174076947742263225573289479917133440943864534011420193552642726151809097416358919753347657149793002006394033647937946794473117453057590389106157129930853686188186466801611143095845215839849903345476278285324798900395913618708524673108394371919806265373772111092680117197398824238006139552574106597343152156636588174394595551146660480785459026861857906152612733819379323732071586457054630089425477405479071013114364279015642492626884945543858182767732681655843564284049887550659112305453777180026561182289619000997129900968511308665081534616558894156571012894306808446207149954777562575322000961580382585111217338588780639371150204857801235303056970299743523005242507607846061443533356791565019845065142271653351787225489357080473762223834224208997557877372553290447221030999240722612873979434954855446731215389660765125081622271746200110169433155674888104560889879743882531874623783411370146057585314909336699406865844390484668238055872995349629230740898527562722374898333329348028099453915011076088975756267837371377263981147985533754795757546159200158263472413805006639147585006066026595171575665194362766431135345572430933187587624205419985999594284059730850652256587744611004848175927829124191772027921982385665791932680731705139829132383420758903787266943611261701720618353395649484591902319376121591470216622475672894525086860664969349901529524989321716956493901501005158804064771534436863152807871407492584988895633142268161320988139510402327747510297623236855312385000953005814551234053550528216313007797688553893157007128656502374674226529227519905285767892389074495601561482896570406910762540538602650897546472561255002525658361380301205951139181085821791838233502107843524783225173475955718490517343330225645402155859702064239307683294708603586860649330615236677048172390024798094914645522351378181444792522289622908676819466596204705802915042455177437836215095832615800669115800592379985942438023719645418221723073785348291992749161946863153494794443040584979683505132621864877082513829587795546738960746431706586066704617286351653247881369748362379270596369891112927239030010296775926362145207929512579216233984679740200181401711315085801176796878887041349554280246360481608066844675382188674911414688598484676930198541740333999366350109253983360202399629397207168662701715493943793054034524752827403593858001254521205030964939776404214103315712293124505570657404976604636529745494874253607672747678267707576807417777812445607043836594236800784949632002112426607525164223455199137639160572667450473167799384678975672529242141416932025703359030963998383686038655869267765160631149712771035215314047220227777863341205774224872889024273181373116305211275547754043380532825038825094542868921158047391150923257151592380609636005010881764566773392745452101433409554065192412971423901969251689325074577540979842870136935323931467892835615087456913125484098870916073502677324800837401005878905766539664854108678574059129571903249033554420056719122080713908111011595565177653112543927087506823160846661713201567627069240004591803537213399422041261425663947727454674675420377917021572325847735434471445844627314151699007824401068212805675798359296014970874502971338312543913308171481798641180390830988019842700355567645538280254486241835315294211875723093956391002130433895424960300630803920070206050648702553381824750208280286519748271340500385978795170247282911951529515289938337615268167677176551749090519586479935637643036367918330081068727657980909998851428343274798170225422885500995111003156536983921304561885875267473150038000239034165533989403636226064976971434130875005245381145812731799259210644800284108454186291834998475664272762099937781638098012959000479573278437215635778452256512152010420612332288189516195050966167984365190015252446478299170239757319536856609270368907896215652341737236074990215966361744643608341778390209309754665097804967790790478921170259570515297609279965333000122119588737133156018888878125998646069315333036779391634547790292470491142107783245562624903725972157412397714915137341393195875525485455401835141411351721923866041099646958884960657701789432192929187912017846531157868687153391692594717144009826519508376238682827484750733691984556112205702996722684549389018795466787875414036034818388219337253540030578329106336488128908769694391168910120498332969432301338872460082020133048790276886552438322929329370493047390952106632754778899947619770517592844827659203368048986048373237720175371345367555364308935027199238243658188501908794755157272097189377027195173838079291981933792880072073918437549394378206262259249607108378783168878175567223626374107645118656407057545225867598993689399573564380989466409571349534657418275074135606539624468616596798583674786830300516917737842586816433820498216450421488600003534907643638774250764196056032899251091755527902112883226546670643896000371638843449843670901779643646238449799548631227754213754673192347225413796911975967780063985847651801961809967517341151622804639550233856954130635867159627546401432064277785119488106586039453511877231868822990309604514043094930848381638895595949007952856992887465056578751811904069380732241077989103134446205007261835645266816330243439371091788100032191633041821527518723730877107273567128305199526337687580616950965055642859452875635989270458706944596814801119112187006581858702693460576093013682901881254943193014767027552786397656508172598213636581649311594521808013277009862816669316740122978156334036483349247049515177398879471426275762183252256741120857990839705491703827434080853544994999106222041938285796608664540388203449663472964948646216634963194168307670369548802382654019658626051329421965201720432697523070426086835550829919304982866954850153852127991247518057023487830516290252728673467796058873522376723522281331537481129027084486148901518259180472925703819368494944808919720874712788814420420248742048656468157475413671599772761680654836090033281831013316761673322525556911998669672155019549147244501216403434398274991638797723133797163755399259813475961918422772414084782239110875808726378859987868492117532086665767271773720393319989836514754555697398311456621861463268535776171588710524499656371881312213946214206405020501186874716643708979822210629175117932230836213644149160224180674752100114492334734189762743221652783450690732884922325612786282607353045987926143982732005780418626029509432118813765467345809375552651156104209559358406880161946653553001009586745092106598908110272251834267357833169579270946508662766877885116387645198827611385816862148019951227667466784573919947390529060697581478738249183507997872159133030717233494816212261659943625811467538317566884290840731452834129278355462375415991192656679906922742794947790291170592813940157997946076955723168079208057052784210199944532165294489800745654510988797036235276430933132137228924015673679727069844164720064885801001500153901939036208855611788648264902490941915589327507102237153316009818549390516779437183602585352211851465242827559207917482590437995632511275867890742303782205626796934402119418591977767368506773705774127673094161707634273204317858696168682442143251176993818638313764987667458059559979793838213143888065715174220673801588685408919620586908203445506112306125763016432842912080680305539761153643008930540503684228039475442230238140182606170569006924009332666803484710174801560827960985852416516327441518829636735456677120656376540527237265862159433485670724747408910266590530623659431602033067285602130902391379862077934405728300421872187082253029692590906950545253667928100240697217688658917127573112360013217238106266159852478819715235717510828500059066890363802536071476303793956349064723778068444043411659326624094634380141263945562063884151091709499934931640396873490529384609367346537294833615325561632713811288651344801267379387415723063959914713831785356842159271721733501546579813295504234452696639984076721394153269496080753276498380640595121614953378612260094182589713944142167086915030147508988623418241048438506840655741584017076259138695470731393812976196170091808499481001526943960947489958591814601483693598141534431020683044743569557161706158711800577200460502388302356610147823931014800452482296122759894386881565407744013208325067470739934082440512166904891044073387792455527870321042706617134526750095181975923845086490859183573815382383134693423202949791977981865016583731203152093941453204579788869836572791193398991254826958942012831862878624663690204228002627025206985186144856702063643262930416187846653453457490046586681450448511020142575812541628046959081156820776166822130026252339946772043270971131934850393629444189986442917892720290982312426194727270199009448012150362319084593335648437573996320410918016205443617178059164477498112156761225582650379840447139518798480440728181068709241625152757597670417677495347763523860393857031699826944410749034112645972358547445059877169831162145251617467039389958572445872370975204204679623816284596185293070322439521339267245397545425224009530400531166445926369147203667242082122012449653951425029180250710891155200649084978155450522123658313596947572877889591405694408779612971264321735405352015359553105076768927463739410258438764307345510995260299099938319057846432815453055597306610061682712232041118309496441764090796271464425520169617514036434557574628007620718392953493917220928643197031799956686165365703068140434815009916502440592413214197784350901701661842511658512562491642389178648678521481151953168965065455332231520525536393453746827998163651328741080182377396461865446158481269584288697040965063126784807970370324457757544581314763924329141040138357567487921618246928653722101685158114890122742813748573322449008236247529229629580927823402611128646857775742027926983229450311452089017832250393844241182788985637129037572025473007390292478535637895574114962831616839323154992846173531405896664885752105517672028213398332469927008498082988808543511747777016167136501335454777954897648014033534319386482986599321787624075603020020926039916680279614305332646906328145264430293109319908224319040150819287336906278203321340721449986702969256425041734254014225403724356676016624134843327214530416607743325322016734677425715584657747473248453659054481187571607913887211714099517821462043266846252722198674003178220096038293990537315284544548373377374373948320862486015312148126977856244820876544527356181114730086476164086821097686842988289398141296173271219041290500043411963525795951980005117118778087208762906957760154974126295563043723935591261473171774559531533455020995760890409637262351379743490491330027920741484743771911681605429575149472168022429164790157665643959366565580733457243281566133316855482092683987728052252866897235363578371421318566059159584999648724158550813580389657629305795634906001347559572036504052279630477407446685618253499868879984164606544511136763504657178772061745108523706309516360212747591106693723597141926791357964886843187641255163348879894759483924429235842356058127577227868309999440005794403189109982436254781386781548706558507761137208842379511632822753691971911512775618814200672807838396985424929413062952986277718304328973343589611053190209903316383420575450957390527912094592188483039387652364869825965282499890012434793951910179126910738403312087800010918511362932254870031437635118721250614826604036213481126353990220376195472735160117644487637804852274177971138016641679793774213855633076821606069690570461631353683577824845139947147756297063039476639883323679036604760990914580198126038170765896162003955822735929661619270878230912518989108324104549140535278687036276581665891575686624054681296938604415811427523032045627174408207147305216349738144007229405162183219281660250705893151066154362357916584813391636526991713537828933551519082521410253802983332071317851471652265725444241652676405068053888323544511009374320932387398523579359171671385542926201393035242635772325387632223627785677368292416941331722084536813525127405194537536463340966093293311139231075045298194209119927829779625752661745603671958017301499785353278706175214107177975151943342594606459516167727412648846143068579796696578070481625132513090670045071102608475889235437445814994274210679354797163316829200085375888525203093343339321547316345937093376970259768289186308607005122321188550183568696113728678775105110261094152592131877572628427433776707317601320299931199776945937254208593058963339940820769458145984477903012007398673885425109829769774295949276853646539907956358588621120095694794868930876705039158656295437238514495793616776375065240214037289564843941887932257210081842214675007642971726355755536754370226571744593413320934922650838067381036953881702267005608700340372008610796280668200512378131357383540151874164580554330485535835444152722546520586668816026929693201603934521866158100355018992075193997442150457898041755137164535568989244148856833147249710658218741783262040097413385289994864327690611241894107200340063085320871104703438569778475415897203299067874975850439469001229633547335334489989045974193050280093177192357332937794867855678826577328903033249853894940899260263033126359266794083945576531013635651990702245070160390702603879134857786603990488997995085335132244286629719856238046788634272884939614477782024852945581610301697021613590429567639770683760687382434570499085240027074783951620452170930967614422297357090544734863297650299376342067769705709863795735705755345392446095630689628628261898015291474087985650683779444094334255435933085150819605069286558230561879570498821311683302430885228052123182197431628336853673409967433377061282581837495346277398586934292688214111313531743278147992896677393805830246314632617517213464397677443451478427010215338336015186857471393959097418008615324302944194795815713747014782829071805688808451444494612750216935347520001593581448454217929016115239134996327782101625490759770855194965194408440539603527606895728874197073802711981869837038455099237680302690420616784163283563517051591455849106087772801948920964649245714760334902842002895923925366001674524781227542438644868265308295963103878118515877298813878773054258804697487323875907544106307099211830469972305684170565512798615359042705694015106692117768680779203479278872097534842041248477774983998053781502392837039968282649284846643500395703216005171887843033650439525435996045524493917447228867909603479942063658814868067813811287734603350502826593715503344140406909481663692666641101505011714094795887268551266601322435693899136144890733412284288361243948363595301495531269704733962255944407771884846223494777194326748250426725805188154843261113466949885069542789329806325029392164641948189793369553433852705971253417264039900690054080273501875510631152583985151155581942159588461090737051853002764228618260096824325992232001363027745312806296139773119613944221842106298275592842515567296011307226530213258853031331042974081716160835134310621167832452853724692206614379970673664469796953823148701267077692747483050309465359795473103030648991618071464495879994432355243326977716657887267201776912219575775321381107429157951969342983780048893865859334835790332325212065888328699591802414447157477815922114312555160969042816376116574880096772256653628513524234198673122785190621981044270231963377699409433176768327485090622685036741846439522510986958608207953914986781710862571718707731561337911215043833820384155186428480109501763311486649999919861085279688436114355354337030079953964405020621306508784663112467596996207095554019703408153016712240554811959936651999464090595353645473837575495888599796683315490132307753305818738205852054893421854350156277130483010424108122875237663395747576436529727623019526792449090015206935838154548402073807008312866474060289678373575873114889875968437449730288585370801500883068566545437511195047984953504910262484430776958153952651543370499571069490924290204306278417118870175609713826732596841207084638041168426698184098228792046623082594801560255776924177502163318642703983028783290719698361229107508892364892754749327572355265800177596950362854291523056982017421864963279920487721806798825624986406692452242868290641882865611283771821748985996886538826836402757978906943740631410562605101902074372879803417832926281322139739408498770733194106279608344422631510771798042970447008000394613079233653543433448457406554526213570650704732171716343713067211430727075224843538051492865770529307106105279067220528464146497660944550065937324716019995302386933135716121049210784947983528640841711022708572471682406580534961153519331636032006123964246752008716798112398953088043159921787839451271787738431593248980886616141815405114512798285461759658052309841908858984186543638312656015523635883992838656921687584059452017308806335013414077824647551926925522143760691020021886931735652888151698060040706786377240517691428689476189996423721603214841253959405128984107681956875663423724070537260397371013658453163210050518497876807801578461991332089568818848846302851757108672085818847877096611961915632393572302740306204207756429485533246857910077286017669987356566764323079637932950440915068147053524108472664658344582367631267489373658325884067579776309003394646537749403793618165743105589184126105989904636970238309416101987268980684451568222473038349301316013455465145449446320667476823577972631053542391305370815711544401561986438485941620086376579109758141125795484658782058018573864531365786141413367532061831523871878240171230960966543909492902529669867070385236321880856074901209446300874609420226563917292039649449440105012929637737982049041489117242037052352767910636429010238235374093497336227027764592085796329787515142154124572652523790787589091679510958430608193836042058698468550351939193322064713807511644924791156629747129536199439209285110278455738700115311372580482041648940450717680809812007309824990693154979438546624808267055895945983332746322116487119263082323758704996804989373210070414027561191526145354523741522401667721102790961444004070809553811409934598271611585896380556665583110677589356055361703710399285638631007941640025162216185531771871090184492260509306531665668917589446206945898185674909170110844023852486962979124401327929826531461288253594725230521883341513135912355399882458415079843532203206050217787673213604374055730439186595841230808839800099942105349826696264096227874719989839018405205339556743704389166723541315580499396416539916051123463247261766261588507361508087354459931160061840414985023484264106888563280358912369216653090575906663457734070282394569204240123997526064159159447371878585899185418951752308734603897355167862205450992161393718641947760386616936588179814497568039964324479515529687461671400501604181163135728317057889175036445411841918164602250948768901783781762233058297704065849995758459796108050157894027608757791963750612227619459076047125594336695547257947847482444517264503045776489222756168909970383860608534989837029006817952656468397245017136957897283984527876731600436143512214253642580683861527481160706513846493209626461557290206188647289439797248911412156694143816702523806760428343255440573336947143075425539226984171094968633015355374494287718954517005706300503966265221084299251587466446703676076585429466063764076855328330983238410081709462655102680930412977528944075772382411561446892300338277626735493147069937935008642567829051895952569027443839757482245628501076404434327401251462110223472051640121564770988206945851592144069696747002887538438799974992079231802470402763491423895512434641206010103476012687432779850602634322511954633262302496096194568963305286303636130045927778521382112964303777843894153251532343182234098554059696171206870726474917351615516609897914483362473494991731598757270337670323739138024682058069889761208016902543744171149184412665910107638099969464710307433762205570470648342435855113186909555899945183545518138208032602103865959938923404571646089345727349665393255600854798872985955444554039688834732774063733270010210327762641568611005524970209985921448643483705359782923562566057892663752497438325974420862671243668849591682130879919975493076933650940072289883389626885902364246794645031198430752763906893406618916972851880262552830209175361929590992003962339498993865627283801363705175871193681755135633139408454400365201916619373457134754403487006321898136125503685590278369960829802399673913294133945802234085634061726212676601405868194858161200098303860463146302715947560967793996926505765633578290433349435514553432755611797285497613365631054330446129984385089281974847079935800212441743585078873649906185941036402121684597628991068280561283735805133963955988721666247672532952349443197916505129630130635102903890138024612834830419405753168881587338211250072107411164350828165407209221011838182246575815732194170738277638145177162383119393777156185006585898755463908015755511596892239058474553408662369135725096773342868219896105623157159395135794187112553082063514510280552230095716117465017578886185668859863484655514761953663465990216679960476254030188972698521772234020603741180370066632290669507735679093944408959300784392426428009897798298016893071370208504190029070915610372897310757366459288320045770006616990326769951041624868741012535780302685366576115420109742257589127871939384666032583423890476431298704038551056453664148206353927983196905410835716650578463151750370089160605137358403130114834217148273729899816767267100448040974010160308277999975538544837319399151269290544099942398613625409001922222052767446464968554262815041218768722219673506200630610146325682716142682792874035810027191078319381567030125524609464256862294331828017651462714903691926865008873013532266565377115549267895814954177046409099431862031269353749859364327041762986421501996150752864935211681070644590071117492264849204118928142698321511524936927619906034812501837160596970433073506767113707945468226379926536670810085541333125910356430056452230555422672295670343198353503561041738213053505254797969311801577242120729910158684608480628879566102797320515624526065560535178726198103678520987633057559655643681441082622149110549331969015602581077484277772381657537201871624726416661843276789081065157650195839356766379819819350933520702258768681610657242357514367817838476482281375447820475404417119584160373832939808029051114007860066582747751888636056779107632849700531399273846775622337499219615319296329567208137782341966260381271545550774886080068241292774067087355104594282321913091750993486680919446071219310809520824279340733368437933785049682286771677854924003642348341405695598536489606986419760273129647762641750329273915267533687220707147957849493405562028483662156944580686840455197054309433206858834079237431596271704470836229482408850884540105245406856024186660288181105051932559687994320458565784743977909563304163319230558579296507146558963882834164850015885163187775451654302193843388585706834232092356705444567512455393654712757783432018131124444031558876194156207997087120496590694000214669455510233694433074326274256943312281988958569717738711095804845800866974830287111358431741735859071616654857318967438863563751230929653535901363055066820194922914954844610278938672317957427504422444176481360217785516355310712893948196110665814134474715988685729880503140350904182095320490540654311220174732797200677008448376942591386645493329691018884565541680367736727455888230344971324103654668244621111967286763290245003498950624275845121173310118882031443922664874800567695467948378826966039552960412608797330613086528048923949379899258485064536811642525132827071874908375756679100621692910052787075547372382709697370722897145679104601168340161560193109134902984517037903396148752622882490755214565330130073749834565071550107969874286312632048106746549468892682126062818905186786810554367952047079736597904941159673081836800717859392804931280083111263608418658908816310569709826817480529682820015353648555647299904606311988557177997112801627548978646989559198085671893960346149108000980554123996622590328460760663125427731845168043056211082971724934811478555465452666944009258512140566666768378268060653371041648050008335530301468209510169537631394386841876355508562374294892014085297827648045535941229230333300130805544717958255084631120554231761100240704910076239821469475482449190200552829991986947298243943109880509729298828637857649317440348773212815362119039714218630544372594592271347337499694890103912729267999043079525397498725318357804517201741396744199174180330929176638850734720691066935997066858316021355242439281902807865334889793918953745993673223982642767582701214619378377850390769781851840679573396320538250337750746157102467081558560654193006642896851704667003078384581693380175098285787406557301050456447960103602482384862648297477480169793227302827677571454173038741779881504631274954287882375981077550816188389409807339621063684320287504029783011889478062437342091744062746538979514456898011952204952949213455674623727472528546530996685940992822153160454464577503265586928299319334418125221453760894147656888752839024378348766387942474115168168752353133773619492451921307533768441318323439634433725240153029227239124118167392098657796678303068057499251414645701495379261123414650402212975813561645548300074951905863315011821734181183924110581697745075924077180250256241272482306228389656059145231410654639889039890862939313778687403195494918970248512263595160921920128620467235343753967172356477609812506593678764856933579959502500727416925376517914871463740269728743205375233882947877048934506785071542340312614300214947007100630512136728532105268819123646644847484306290548791806309544430035688668449005552465047860343928455709135506440154185311495354043230644184963074018963814401900574728613545881946076243217364584004922963102396134183700422472677153306113435916937698674396165365480861848839517253615079139372273354623339421977713823485299198730697299129327807060953934415760838028216662467013967347817096572514648362335718034976103877873968434562714190363370573706431053685162302034044185325699636193573896919613192327825628777745978152102662529797318205581621421436357463344896113962784117305205404477549281505516423787869558036012503056515027375513651307388533603358141454543623423596516677779270828699346907544662991502957159235255215853279785439032335820927098272272161767731402616084628332271788764540378859769475254500266679134543081916595539763869595368438235325391870824011936343730387150502381357503754725004472999807289183341589313880185783016793815487450027673442636631586938800139119636816147320142361835108062986701028576058494089928443386588094004512185680676546479046396491978909714895470400371837483736648144767071466009913905798610267348688972681810110163551449467669684030778905421739211137896822689506289563017546365607636366193720494571232841561400195251677716970844948029914271211942757292964964359367689431733618630762504320011603318871071047118869805817691381633495672333592069892386138668200380144787292224449833651899749566733893660979126644799348849833623078113022579701046892965556411297653528024432632965270096212978290937063645563602034962402346529743427217012684390728824816606059930933394444822336329141808809608970097723255872854841775324683489323658763686687887434203496758636814682115939810051310817578304563117038956504015721013100893675112327072210609539419006267052498359995334707203709217973398408139698661516152851422210925436015071891532783732822329294547306155090970132215247900065470059843087611151665807864031582456777522431720918468289082839863377602828554247469512632999822020067682788140098607355367079218207570178455491719145931010597558347664931541923346801902381230244400338529709278767296713184455325030854313214593776205726358368121240005208470575732207145069724333524894249380222570072442931795128555583627611392155985311717588018300614190794892271568111014937826239128897535266075633156718518853366453294684404861491883516616017381437357889443024132127937745178890097754260667235682961783216334061819687486092981415822218855011920687334306898407051034279377093979344888020705791851035327286643232921079834053025117639143642342821931795591125370162425976501250471443076227751588679579029503894626749095035023297590260295022374799532936737030155944028549585335363982096937375402586419747174725458174538388840088996843885814281855877673850898924229003673229338905995443453188356932425177830165768994602933719671056611422403977440017906905424885854012242595676190094888475992690673115972824483794776907544758111396624295470916818437358912214198660782449950009679784662794197470990610476745184956348504103566798580911671776457853953288540056371387089545622971374500847307953448749689570380107428319279082960788524253786826513386145120064106626896602858605465549187998000450345253005773496475955559507491923120833669524147799510508466027609833308912521239493808964169332903023953444458274917960377906353772624693263578707213319232641917602911531856800450113917872987987241082880939071184053754694333836689300008766831196102606648742922347322736526074643971272129281967118426876292741346884162665517082942451018883389758992727639811917817188737693464205410686086622352804219487050918247271689120023149067366336951457958401199245898443166937164571247502372299031192885511974590356389777853822732754943530505456838280948581812484771821076784042623865386207649769425198732917722858600101689503280608087353276966360290281346632764781777832599119998071391673003448148310965091866947453655866444903049084358277669689311484089134675061648777854219182816019008334375391417276161431427988415093914254382665637724517202048965192883918586820026858244366769877772125001503439716346825213686527649160491111054775244251644770928419490354971818635037311768901042447486211707322073795460665545587888285477628186261454345017889517476509436410552258748303175751211956382552021628118676963341027612227050569530739473708380373325153920420595206879721761194553891653493988789699237249030250207013366090422014954475592382915032470351969238815324634560355930309157770385410642978841193006211691683050497457205531569896547581640299412837936699810000368988364260226058004524745471055183308635096131314630033907579580452195191646225400528336196774365819690191448239290491473485748342041659675766000457573000249229749245529931316424397740196899025306863558024716222667184292531491282756126553196951506257149571809428434569478270981636808465302906489585254067797539606011451390785493767077694086524346470133668032620913885250236147372164337301675516649480978988837289047519983910808390103359076804253896841731170782354247048937446248283665721000148413514051099800285765283600744912102616883466538103166854427978469301889340250418879119034464851793928075478009889108344722461782927644249233960497941401268626187746779976772293942023624364901469161745277018537817225805660550809246629122046264287742175695511432717116594494308158434539433345903462554213962073013988432034679636363538516612630110874561186676831449614775716823405269191581630990201262716950411532578239026440167868613639054681894147325549272602697700740317404375917749775822074380450805483095914711342787905659513560774654767885733503153805473133864276333980049221618935483829794143385797165244571067645120872974227632996239103133119769093236637692736551883297460518081970577322909550688533790194707580577278330065786601244312368254902975569762042590749612930178474958478704944395309269400270993510957334569261443303953466895538410906672159730838370578982925884492388259882049839217619690668835780790067910868456001164190671795033880604941415247666253328872790339831716586239116081821931092050261602204545434642349149934589589863974200259434901261203651763621168860622289928439623916671728748156066739682368323240322706652976917348431872878537417737025641157457928310530805099492489304804987072313067999926305588234983037849285560714549481970602832651823154460462605091636519454221891512392492738444917731192041068176688202802176057707626668744551835140938807379418361481897503133921366608504415784981236435007180207955112879122083206201361704555680515246583597176661944924240825928296051238909698658899689280141934594323733772986207081526110876481432248988254472656253271603174450007361180768990462148601234512345538695955283808887819890184759930840639151944412238738817797306580472244804019345235580078300543097240763312025947096482733488289349128130260372796303396146748804783900824395397766569215405958950058493086683637698435524139582445309485217866180630982040059488236449425832778663599968854248255805649827236065564493050464188710381490869942696027296421809152078796378300408811512462102222935907465722014534979669616007713182251526909734735279491536309380055488051952548016658628907118173296038663901611801929583532496558013042554971564304054687078399620977808297104303895969313590177964028034989204836637247912851907761900148391440709352547405890194965250655715219007335364996873572281731290482631396897208060698739155887117261593665173503560494941765053580944800575755720281077292453023806896021864808023301424324450191932718046011665219639915164484284637889764997321057642305724364140520507639395178737855499004010895118171426567322637847463585601344153580195352932604836502091410213063023874718682769953025394034533193436571380265417438910664896952047994373228171557728843674852851071803761874246137405877276449402303774701867568935084438788304054485960306280895435119158262134718136138356820717506568619622886580243050112256791938323337766361305842888792170955230995284093380060075012291084091639078178134163751187707958220685389744489491802766868520635067148610388556173603530691152250287051863893003894146643031506741277273938362235595432542407975786484830788649502040722366112267738145449447676356073427113319658736644344252184023628571269175501940771670831493028586919589253697943882471048996511952329520930569437276482477493446365278697906950564891736863211770773468051338760803248400624664417121064403094881166662747435561655273365530838159758311684383885220825255734510399800395152785176471803513264481525131733409795293410879842791563825535637777150139807058613975765786476604643832746762222790949865448806629017382235894588771005226848883735355081487766529042963734888659285341501042304103883485021689750085572825494708249413266453583690387856026611281968787245253961869180152846642154281718322613173346083331389234851831709774747133445800937245858509804745799274829146123545417464236150959512399465832319586310075211026046988269365589148841749346847406637761751354240161511965275780346941031273082939512283167475779869172264026060603044323630045233755199257800715522343037059824485765995439383955936530312338970080356890577685191145906021515149868215662896177296860000792889034697478675059071648019313100664790024870601997480573617708557557096291690458749949991801561925382321205394800531849367352232994588982108344503351969689294577854493785295376444675322471025135356922802155143681366233005157984015190385091041170186217310723617987433423457118061161224681673042433305237249141289305260618736610854392407421941841946685878861683591788147367968198548095910851059547292684663783723716313273689592320115944401331645764750148977884758909080942377510098583840319050003660784066436798781174163087373159405792824442791481173773142676232280397439639465176101537134039372681857507443703667528329118464531131287571993678374295905839955935267466402266791149330288850659728607214138177572874963593105724661238713560342608019377632643268356788618630210102069247629017994652161803284233283589130432983785271983811356744572769326265528943434559413319613636732200033649959892223978955330689517868508936047984610355674435208285097670318473486272121965779420359685092585613768794482912301808407004005071405321937881025773895357175005676635720312022974098997348343083104922621643951221959661896744680932326328492506592181314809143157995376477990202936201434689641563117229543748477350141734203748583274614664251428083785640204913295748545113931061365051867188426738410110058127141872507657710662003610981652810821704359560399269261346005947849035546066381043900023796813333127943974539666332040409026664999155527629823274102771269480414548194636697134441657804743866864728432337181621913255433059661583682255161022555015278828119050795739016074176899580655473240358727410916749187228764646844482730934865418919593358832658656492552222322151564862259531513797057687131724583751816458095259214856202887958742616841196183382748159002156832817325678183964095233393241397212052780654704258716341085641835661974097161999534583571800774055143593409812714271692476015229114665948073519552602749139777380884054076790537102105474255417680250095647208215628447988816760346562425592774801270656985237166715890931349281007531031544352416024819121641386241438482857133999072949461123402124783639534618464657168620919503205698202964836476664387133203593554226205345222944922058557964970422555506893653399833736079182912497783205761438159739154082698575206363989717027745835542564820822219726656216140058401567499636526770417580302770388560351968629147989978788563271809112576529696773843134751406880249297311690733629669044394178235342781210902454326870093699943474077289809163754448078255049187012647707482007477772187082051845103392618764046391116838800558230944875713057695336918420020375281353623489518876178191824518192340171294665528736242833397720450513828004716219486684122930144620202539355556819351977595592600897318991154722290754700409917155177399085113488498739414483262783668258667798552713584904824858247480716632151169021094070786802627019947758290473636918306077957586710272044225378905143504015212634747435673210729765505474467285589733303480217720826247623323348387696280084360264946954989223905490281902447617444140300177046796457585412769387644700539134107629531433333521451393061830905579712897761451103913816872950725238298785824292185197306430059065911068470873535986920629645340622255116817546051673587369616472423168545491223551218358831988916787595398811248646188078819405468403473726590808177555741369145977118610176239800223905465068047213134192889752850115794771946870675262027147506896699469712061068979520208774634364451458089258595702372682452298265221946300533031048778919791726975576662348241727129312650916827904377554114133766100205319287662928409553653031132684005544231635671711432577794059462937012759446532698738028619422009146943224301345406874317694212285921957083398844950052393311471555597084412030275529560984929343911921324083519640474128233375617301913382974172689771715897664570016001167826306454335778126481874836628775528014490168159182037785323862658340085602928883717565925987626908095836333814979450369895476964230200696088086524925772642365309232197597864294339262004309095218624983636947183585427644213879488919184132087780949867696461024061420543171162352630939976110533621137230110839017171595118852265282171924106309419636817740192910887058661794409876410942476280837987410354801565826781823931799498907302803065097827902568604170385388876520819599714799546902446207101577723585269172326148531742311731597339161346531112610886814385122380293670400563412310111836854277150612334798308515374436116549605065089007280749635959363022660984788803366589932802952673139805381059564163278008350603536961692462707104002644472330522126844574675744238263334575661244346935831912418485775041036532867072251485426305527128608864888796018415565495562105737738008514214063981851335607056447592861970663929690959876295209196495568966625529271381671946822509774081244659942796774618621187570903901713128694520359011544953220690642254780911257431571328926901667603654320720542748233928716332329144398225524275806801128604256067204775547880126345503125400069886470407880270947705303961018043606014427868134525527860670073911620241821587639246647725933152641426664782726472932645891507864197834363020462790956120566678369794482713447537903444663044043442566625119040430814925410749871305534490779001618400436823384914423623242855495727317827876974147098701322833933089475165365669638259324415627240566892721440180871153575842369752093544675358715060683512233873907109666959063602834515390749405823989221949273557690381928994833302026613389160602980163634589345833018339328741773150209041795644437926690472058635001803326844187233326521130934045853958436474510846293892883591700066281248080248173426702079378552322673272240412431909845357365768975037297354651119176370793916307621094729077518836470164358935192955717121234296065645688140528707626966830503895505084510763753664019244477918580621032210411862144035023627103482480302673165609585027737116398529710287501951037503910698697410501401624053442711851860115657560689909092900770298046940913334803669063920711373576590790196814328053455846725040465408053029957682600498210486030971070409769651539894344928942052419061449899603844637283410722228805892173056132085074798713259806485452781458698217046718513629475228515329455938556801083291221596311419717634847808252721509745877877573159316967551860702583385036486954298048692673525098661084682236919731597579513854138543860671205256935077325351707171680844116183154576404795084863998923692864081020603810046604947133923085488396865850494202540110546699444722338789024931123380342092370138227697298143267730557331975264453754109946948177030913183877508207971264404818937891175912409953087389457656894258328430889186687501740623463225847461035488604829530863015085693156474477670513073684433246951053870220549046676111710954098355462132239919286755173845153079635677039618080737847358462078133599871131487400380819863877822893424824331804025237870494493642256699925367232619325201252137031637690494327556874524799427181764101583951390050093028093780902259341679357033049811164582056059032773542428262318279759722175911148278859659361438541517503125920759609946019516382330369836975447654581186883766357399947426505801791212499215834479977757540688472876212255417007210060199523675761287458066629734258393363262428370823910495392826500218834268094684228162834880241753208163486551659412488430453799271855658628619956344642679015719899600199735571099988679185769918809713321926783817346297759911152034578993107550965805310917070650079519634569942123973048115159940884699651127868579663249556451746669683988400259904953669268933923924738103410145241675923609848944886772349853444005272473412253412501748402935215124300867939513829528994055565163086933964949942782859013668186151920402355352730137773158427992098078835869793475424914372914413211406557479358267105915847816549477662313290927376841335147539652537316225716137174456968887425435891542629777757272949356815050379321909827771512374685800312707123963906249624354158069375545923653262068370692282306139748693485814280048529485467722680331187144527946394800278695588926464239680264750858245377855464430050056246691652922384388066305683334556365631399213606869472563566566685035729275121705662027752693413252737926466990453654440804731910507475066784985413498568893687156236297244260199056553772739123179557348137305034575450969388616352259340345888454488961054775016833311587491410846617706707055567315392079508364589730591720549788650010182778290861720211100884095759844397286101364161673247078980600111293801684234730871172684902584040998376186925122905922923201648547499706831759975834699535110645269787935017118028211174998886004583337722476640983636881552198023594487481102593133516904561821485180660925033535987974499088032062810527072723659844933889679581146482732898115827177722948347703197468967776406199266843385115543196981815814587447549244807934502584881792657307007503390761334727529327920327711662118074475242786967983229303078305959309172915104644630866216204302290208983693888872093950292446596494120616739386743990151719802681031212386691525639765954271906574799259746397874426702855612257522008062268336019090589992053683097398665790250998366903401297760153195880045380029683565500101068942070120766088875991653261352474469763994920155194148392234374372251465683941913005960098020093624902677235459310781357662373723296059002061197265916220627841381105499380506338139879813509801260402503848972042560225831394392305898684983249927104515910977935291126722067420220501467603545156489864350207901209681549723751139830028794719190394555933614469765670616532249868270816447960588461102749916178838288008499146328447061060632834110597988659040805219804473838031809764564720312178128403401968947794005587667228750123408085642525753848036872970685921370947140779160464345456035530337996465939762713514914074383427477486059181167339271830045739560428908687731214481801182478970269883608989956811269539118187393322659133506368263141015021763751175716605639468707472344900640371552209495758674263972025049176728861876495637142050613785302055569971559488553702952415038745663489285581373292413527837213453050745470683423602928664717864741336248903948775039368392045717775895685519844184903073762647929108041238436547310785401071499459307033487116892705167600506568859576861701177973652120110574073948516275791665325526028774665197051440920583777240925331589242356705436183281159342762995469583090192162112464680148131540055602177108334775693867938835754854898766028696996377572651619404453684096354962483703905588843362203070777494344847012047134254201241041834123922317449358757950913472493729164079538751613346043634509178627756951190023510867581004346358803542732164772028280459000477045365608964719891963423424510041766012651619214306378007675996208740875959452600690898501781653674900207357551290350157851450222437431888635458501924926702348428433171173975199183192818349321847317245455902311589481424063115539145896061457131107148216192747177587629509968260903552852180055803101334332128431337528072667656144056668312438281036584958714844369548447502470637998977432414103527996232385765640561283062073797772827683422154401996447654808567174986342153755582224602716124849457514107190670549976998235516387628836200335923968189054862586441708673050123333319566493055002402375585628987723068410482012678813010990510237363334520816001245746176833606947743103676866540703172963619850347663573901781393660459801206569023637538393921672938471657072021608986756988555367416609345980649923681649281555883637236760673318606016768914083373042737321010671789935576908829045242021125031278275769798323209860360577362634147164619912927416289735198272665435805185248797534082985687343345697336411244164905151552947186183261425060318012844505881338532100843969197437743761991817737021401166301052268184979134750932822184536737597040623896563303852387486925161053339131534459533361136370263456558255796549014016902206855473853117216614578242344144500617371024932575933369387652396914757567007603405288316123118934596341294887663892499376749028338793075827424910599892332511269714799168729455247170086397383225447721686259527313422189540373970672046173042232048134339989925119762047936889566928128306749956572419055936221761489266790286955024460370932616149583807458147547915422733824102381242116885382505050638554710779519775246425491059018746029205339227556952724374417684135715820206327693096741464662501782980376647782441451469197512972123346843366474050107669262975244880900747743510263534725853129563741850532924091296335071705044416357644553434491102260534355841569151793041182895129698626427619519406204185266301134801126542146502439874325661576304240960642687459182681766040905331408583499223468618146228738805902116608550984182578124596812219333140866343926206177050564914251003450854834473961212346821780975888903090428856888607998865065817779824594561445744037857810532942707449647359921861293793197870212182086623877968235037659725023274343466172746083608695150369181991480190290773886904158964567242696323587103236877170491763984798677534964917995593258493351864609543554475800128987958472144363841910861484937193473769758933221367005895032891686823181358260831506200126202220389144682449724396150754322003101137751843525815857618501726864405901258407168578637589799245748198679128433137453672237545151751695418664965753402607955297105921795817016925438741366403821138238579983946059686433456235780552426095145367214875991100630830996600777945315429315342410113497916471235841459361457780476114808859850185719998487936791078128254016421397033584564869475263734109207979775665107801836407456890114718596342503863064456419542362051919763127587386516981866929268813448089189719429861064531316158370410467431739316658483469448035259550863624594629351390661305338750503528236110745572058689416904216802578617518915001769795160325959692367776955803866686836902056592430918063475712569938674474170642947042173220911289196628213920162618716876182264581016555831055062782664759981110315614993623566996780288133473392314545301625469317636989959691690462876231663193129090879286355114099237552114992809279046177336280002802610135019365401944745654319490237295569612888114217566458525058263704767993655974988359207104497768133898388516971621454144059920067490701003538612339034943645041682092616629987580134948329285181134539196811787461618117322823091001909705387750787633190532520894188931287036314891719813753657397352623007995811260166720900335033265390288407915444596869117999036900588606065751597393997589078297819831483062282492432953156574566079520705257633872364558537246027793770442551795268735243608372404606808541543296966545452086322666265710604258345271250477751503539856144420186095762023719474735863104212505746900163357558503851080902416507435624063186334026822347678485295040401166516164845459070402823814247686069233551020833151517731439134299964719893734180650673166922993304942676829216295615809314800813463422256276498698398055075097122178476997697349604691167559438383179863457260877696742608838422035910118302056570494653318814170409356139770734165758081782885591163193586195812029048127347804010680284118859571792897860051514409483406795711265858174256110055828680131492705473612669621037034492737675459053203333186585005335090277177899820674326931974304455862773618236317240043973750948119278697606253872538343744892848494824469523730926624545552540944066562348218438616260585519798088662495955643064480729003546400949543042563508189207777576392799843418388933462970095803366563435062205944105716247766048802204855282607926809694836435777650915041126897264135281617364652700479222674816130344173350583875783400495740687890669913924806876031102436148121774142072968878486377908361192470929544524073240150447915807656436292235383391961888618945158119847399522276872235659982394426411328671657823104828149204754818471366459223798666957776350052033401836770295184875014625052580730539148130453845999586673544890262843324682908344706999881861460812278498939421469815934683055045655031863753702639881044715339903677727475945009899305624633603588125413000391766668558393117548769957644156931079785300695610332773674217729951706350667276006896187753552215890948044738126578576959119998245728192728043187582052514311019165632886221302946959221680548229215861349350978325889466273755417923394759102223674730626825875055625549670765218374196731933105889506342186035353459719000800845199355499563523045806442731061837631708034215961985041036100129353410987579808216228325734829103948474081789654047297374958465382756976743471555569749649682705025444387618824537901415959067388977443708120873058514754645283687430323543253392839994814125072509214866986877508811081277943159505026899899211174958467460335446555719626669344695824022742450466652202262074049088016115811971328857766259704064412566380970165352434528686460101020198944440029696822559732114822169688604302867519767551514580832043947376339531657041714723597166395268259786518073105747437366489516564849829565472872225774007810757341110709121770358609296485999673065692980176030986226250651743974578247415828149435612990454237355552760822839666523538498234567585123225315158906673683936862554239436158474298223730271817930582019175152373275716153062738205919344402618440092245481446534505038696294379284644825070039590300647290391819684643832059319747147785063482282350975592312360330078259834795299449150352391154746004378919968619568621690825101095205185687252232108886027714422570545648710991913499298461476163551990141887633611196690427207422193327442151284589492265390025176570633201833019863203907793492003206219349170771151308213947659935812114572757035959616357575340405209763011097849718882314813927514458164267770692404749309669977070631639118335016910028650901380836623339605752541598443899188225905985529617689131784521613020133247092702073872090159179579951546437105505940029917665257684634389194054100604058340721897394239125326106271721503351469039884465868097289055311424578908650526771153941715438751788340746570777167431090286000025499035572126452464888964836523994272668918872751201487722639914535566970256268630635095774190854541046224598956699152450426954529253167875638116897033417224186350657150081505969193450832417946607380848040385332127427725547959733344899710777968268691155161533496254818425666041123090932686366549839652382879965867130624651392402354583520597040856939114197414345947745357048781801297726681494170303118029798943720960850997464943883219775383581072265977030803162930976501721827770258282931403179138591712667155506452969014408231461755521088687337677938436268585316748382780423306524606241741392562003397239567356273759844405236755911162776639395395291623724189293443113822668008978769299332568611103261374245741620562683913688866154465985445231091915294238639132688357346527984525429098890345986826840099373409782885972078391559767429599510357338363907318050376951857642807487396029504649418314484509419792814473079229528757504371038732806334803253777541004592968719622045550607235540097703556194505041523714438630453593767698227637376722017347904019277054644161113351109345020983310013936798482641120081111388538050020820853845805928666999516492660380867731933917647191419138737535308514707867689412257020601512388913807201695269119364158727822727472282543634127735199037509505974388751381539840271542500075247611872781679166478180104885021296905998428570841435282511293568856853579523153813286718205580099832513862539982200908583665212427552576052928295956112715011358011095118646425858138928474653092992486198083169888227376127608841698073032843750475324316740628555809544639869927276061085407651972928584542429337847529182563568320324259918304671773141254352702766010885298845248613590445483859257566955237013100969041277488702489924377780827171780517230922364587350169715489880059082089487421638013651098698724430273678321936141055230938744262455204906418755918780734205356262267907961214846425404108821188335828243833445028417433682968994278621692457480892498105078446978070051415455868717889175881288891604026551079696714914626568023063565537660604820482446286688011378259328513210772987155108690352223971833755261682613453683719078263696572584646552220860905993489190016894865251196728253468411921803392559812886558904774263801131125747312630181175551855275055969512938415100856593018975222232908320450318739325441702447765997465636612598067706433964833546716176724939219665972156883356730516315071711431653759252261144347495740469498468402708461571644184745467350547403226633023375168270781747173019020770685921714590909623639722522043752352967485877643573830636039888049740999698578203020166479465801568909493870969600340519628215664711718732609218383522875316549502118955486952079471587300880903552323304992989417099465685962558776572135684249878537502849362642057314453964551683151170651670988999293806227332221287828639949165364168849220394987565161987059746310437825256913088630345915317430178496452301445409609203837856339321769864731579338322370959606812407677635088945180791321129873247928111904619703446322147960786417440425787192750791164006870288970377893946352848361136963242373536131027435400107202678564189825325990923912340749469792211753526392154491425743889073822430249051209398238098921643647411999423876874819542325275611481897638203724481479508166374017361964831709296360533385305907028396845600167975906925373087272340053189826215391264642833057770158202651017914075840161567158040496682696987296623360911482885998283314204604178853007128756127662387896878015899619585469047016287229211045516811219250814074234443800451152636009196235234554921023673116692713892206971088319118108284968817240400409626946680443334722989144216134873062712676452733938064820261206826854590729678810873987023788447113735724079054133346301763009826646254309314286158164506837444987307610220842802835310046510790955552526893442083851743508777466849493199800145794256327964868657456549504634896062402855440868126789280366552168254329639362264002925951802695928599206072114855833783082656877177725092754233888722887513132277289444465420673774939024356439890539665656052860189081200315313248906700879116099220928408968986230197098105858748783548612148862146921648265986736978735435954442800322739585477361744052809014922721720546837795181753356700450291611966804108606406129897376495422085766009073787110267839782664155328861715232595477352804865167655383818355156169942158993827699258871136207679923677040954026237450101725404871442877088190412015872083930506719918335789942119160285978111483925198594521624965119359370139674820706404932604804489519614997679291178312771088504234573814051109130525495827060158033995973289897630530170590272923444385517038413980933397590139531403247843449850083729131633050217715701901679445888770645096078007002617278109517678514407675832825530913313897501474882778114617077981839611226367315574438842898111978859520370613244106193244226274514127522427460670577172142542850155362737736492805442658033787514497817346911544351907923019810518989047094705781354008231397452816555882445354519030132781976788941304687940142850001608090824998506565026024496400967481326819583514989729838919507940880740848642731664652653640707258957774947609915218695896336140858569451383560884800159617698513008656662403982017610805478751555727770326889758827483026801648133502985146491722252641710961950736671668940305413615073996350518616437928476108076672539973420113930433392842295653924168705898525231407910759415033759958285674152661894800293665064224579857607794376812485985194256268770493454271661181255809262848205548735170078832368621553166514404537090866471671495308904934941856151381637476089877757564594392563696319258984142898108676164572702878502587573120259362214543204816621043513627055354573816550844364455256870684192097220624115848237751071582973353087905644624207042415626991206741423830539282752566307109811203875254303743262401715218345771340739660952428588018504967705708058984773746052975242623082379701427436365112099322392122903204720668531720600422013000463294036694762245899655591875884675688815749489649932456182237024940188619838303877636451483837964252446786326220681644961581512841634418033125590910798190414870098449651362833995130419818314465262298412710729352317468423313844851405429842701458274967843819856762748745651879085004393980274261246494281832048840013317103745256406662286115098824795751667245984258535454559410455978596589256785474699060714685987531214609592555938072723889619477811952779561568432577508463384208895889740994939939870190657602685093009359306329174461825416239278134489624080394854485319424943566300811970912832823515475232624223127081822851156251222923831873398206705922796900787630720462421058913984865322827463051804735761106337825078861624386973594073100361375306199515437706362033343918998603603227165426213458353345809606442686726053286485459255321993948942806187682230554456970539573127405858491441966638339194141936625399778468581080059143470114173029873504526365156820321865185397870755541184101550061849352096252395994595704800046183400358298343490123852234547527004848150519811172615218300950672630705084867242660926634316131618844566543536664565095456359410196202401633180784551825177737953208860550866735664895911772973016353706263337451080957859177424294731246302713280788006757630491514789496622968529179019260482964735930688010434996227177389558802922967901008998010071245509224719383899109167290945204328333134037795105570415878993675347195281059090194210062804272442053062037638214345672939100496833349648327319856670551730673300539030858746842097526074363492466482015911294677767348864217142811371485831319334578123782613791980011280854587062211268543314506347958634587410011541543792400547383961159538012439437608283507995608838850645667005732325888133973140794189827610015632367304179568856826258168962104581466943779816535828408371794476071346309019181425785517346191993374055449415261164899643395394865771379059411125102996919001978082742291728466714429945687280819505628843764370252002264575675423636500626221976134793672991145238711619507901023790811394800470167373741419223519282328645583976261770277060073944807938170915728939542685335285530827621248215889378835522574282989589506922935432777071188969317402105940632934202667961186723840678934501574440083904950063499755948467478942696108557059630299897158515150542949305166310984827040668287521041156925359302437211205528120752696981410281815324448740467707931335237272708009010193899085999825270784493391480501525712295095010985545922745322254287105976138907097689077759270196436414077720328731715881383384113987398733970315368523322108979729853321737777350846986437967268275223618163900496607239921176129614146152244153670824752556034690961699092014655747325516703843661971144974819635286398024672384195365008895636398261162460219927069971128598766342775609428385225891764081817188044420059584942808504686764265296639901533292544827836661431572044692917526051214209216597709129604471721098745103400360388236271752742059749950947839304242916614204641229099650849463354085904519294895289427551963457195084469673491776650588021063544405722045088198394419624719948507525432912733888672259375225038900820523216703363180428738958063073022480569909431139527910613076082286315115420711934814946737306728057240560480764741847765700668447206178480259421416603011050795600369034057464536770086442416258815024818978761411556113907519788687773192274502674470587356305014931844813693853448087852957206235855677333550277260329743139718608575576411905524097607654848548514799871800897747804458799080876099877982089850929344624338509926938502735951397728211519230713782219243632865934451554969335122892081741989899537872731227263605650615462797841333643431313218207580429584332327131518143498340571591380485400512415558912734725606480629063126253626749416600821877443693994868640045182738428947050560385522997381040369433064366174621319589110980298344942629023784087070209860030397749238050106689942636475567468007305932350001506428679144562713090507324799046152425490675504991175935298145022785832941696899873906697663660981798955664641100670982323690402795392729343299878815469839409804864839753321322959120874053842134536005674018852544889821044670064591404015863298827795787594835119171730265297743121591277215343311987146620941511908794095251031564472195927196348488094847752856536555413603907909738856719453571818422649521344895986192035216579363213427783972747105943632584588067023314002511493621951650238496369435605236012213491619857685607077627988445342610758099945743941735420887254889639157099961106830147254661910475259032897327784674460149198755940842650694224387908442263427598567499391750605887777284471026382749148475612841659761321401251747331220378015553513019614321175545797535296090487906996829544328506778100522093925650112358477262528291927111469325301897155138219705085926067536534455252047332088348187669708707839157131186098041790358599167284485948955811451054254260151385834659897157380618584409288187750773287300030959282557945014209668434879541300729310942350461384802553216467353121443532254089068763970279708764305106592122438798143348797226192650978200038342658387547563571376843591753748711933944371461415865706913176531621031507889594301735569523024911832382785506785002824324494700871074139902755963790604663130111993188209091140328456633748743791868281195260132504185300892039527061297401726832080864022422378299783367371016913076907095655865908683064228969299452558920367081401470123768543633916896053834640276917023764615969608525354399144452568210082612371952482007928335288569496351636082225693133877768837980646040188791864849156186147174060165666576543990435836362593830906437475941127038500319503256795778067069689904104294749780327493361397938961196160294370893997700040640536402977943683068696374733894913111638616423117909163248525043342017340876924792413679196421688446630813146434638828075935258466774796611884409367616158647020822140507811007657264935551460790265449928388069903932616854107416445902722147510962244109303009921187262698803665443566453965736788918202050173142867013291936670380114158381456670294171683919202308875717401651588778510130877683841889552088396982163330456873756347468388799549112529117539464101215945835770593317619377138484200227877623386864479474505719544083884085584232843380727612093636031652468056508224572891290308957896817307139631936765569381711118869561432145531903237522224802050644979590605062409955818947354563218359753967381147914056736688854523532087695792540231021446401101129647348325720200600280334703853710860550147293148060973436422852297905775791520884804986827288412096435937257125378103954701235327946774889870134025119358310510925904222932959762868390335953142987551167702234806630888722458968932088725075874431653489073209985485680420691020762738795060016399496728172931583311944741317933428227320923305159161403364057778522820518261045377008937106162994008346773432069194486803496369853185169688914832223762508188721113751538433805032004051940767247276017397333592859020398719087570051209427848299785347598617539951594580125771115864708023417212806869661956409613803506947534604057194987746039587540422905989024213790232356480999730192829030315801738908442418675410799975289654644685463289081629890389750364424302486354289771962426686561473443598013018705680282779009705077824371355648335820595380361347460881242806115968629043499333890868040868222465180729206554983431625448005357074394092541861221892556528491968078129975860792225325771665583933200610967131129879317476075027053929292185279027636980303134009481125099937627269378599638142253158985510842006235025396327698196838969393352398392416776590890347179113875123933326350866187054843310728003986082998753760662620960804963445410432705212930033630832794866275210188710197493632592049140128571015540121217026227139847092348605739074823319624965341380993771949967919127596731544076616474615215082580906575280426822258631984896978059724458730353017967321758148872775406883192637616167968893577774795911214247746025983223332234395440644065671662568127546886107955321412564871768318445841395774735834898055888149521686986247604091688410232776706210717323008159924867548212420995873204564775842261406097897951936820278727142784628741260016057269705003720241727256064883680155273545411890284726452864639376032618467847242618037248877249647451857619119394550112617303955182131458157597074444438334013828452018494056431173461513830142147611315609748996986899754120003737667283254109203138526042009294446863073782440848571637387805084527245981589676396649506071305107798626023621046679057195352594537524335190928638193378380670510762758484855474538826792224037526948758016405741397765730743735971880935756675162509027067031060772957781841754891229546141580360704269158561095948447627129877178018577119079912135400126888284327556538585964893577505277346860874275238549631073105452432203866688947387690644336262277055430225874302742956109000565289534058085952227823986248431871509850862667967306277572211713925778393622788894881420203419441884257704962939906605854683343850382508267311014099572154013961747690262705546329807596424553463537127725029771219333455210721667214472967403811143920387128069058738858166650276467103203637542218957505126695047842218778622664097716787979789578978161423068777865801602132394764772227934819830780280022808909074056185412520411627707725073008562705927484668979034250009216131535041092102812464864043330300849289671053480280541396504190463540324038213001195720461641678481596619617135150031951771180289245752419878589556955598639264184499253988810896690881194315028321258493506174557708624060869970845253345786953483467597002860158753677244996077496502522876107610716294168824212631151362930996703281262539521209476039719463993392532372389652475559244712516809955510456775176298406082012911762454501738625314776819398487266855598579601681170106258345136626303360364529174975803534997712703508998441547198364362398913162800165206953218392455987894101153289049563854997572894271971060350495172389114924278989174337797840040375864547907462777503691275562347118210257588247447863063629048578372672784536103444007617688495073409435699467119556987723616249704202846456653256316742332697860126863741362984268875497047045078777158788562317347826811858696653812310541422893921285856420166450519848062891897991465996139140855526889266793161488646909156020304109383350215883538039258792929203541349371518472174561249040370720510787915842664541825961903947824271398266636394978854090619951815444759657332046627392394421886937577718466114209475864448954709490092130661786591497495317797394212212149757564953248243052587442876310039148778771146974598367994869376070218600892025585523467272825237321391789467668817640810922094703983608520246758015265263349593977490951114774972777206102077968055052132161182768807242233570248620790079336925271847737555732863944761203438600720940983928847469711046748754766036494780779805826698181588101913586313995553675641595043326566026165390597550167688101928577222472890691751657064330987185883276730786516843482254541880410813792259786578592572318337886813606091963537625709703327087743679080259764873054549816437791219093947488420253015717177018626693210823869828669555759668603794264585003146850003457900922211949329769845709362708501137340686108665433112006109210046958137103493102439335899209021429851345184992635261155889531163607316231733870091050563546790314114051441109308495143126976399411490288077352997089754843499088580976275317683390866219421936075802067782204791816775170691943537020263437581496281657151801548188945740918180587095573531701449564952646453923158685126935017861893101220878526402011745266923969562160777000462061960491964392573984930315754175147731535806732174207520705083269104290937481548337786535059149234552451951933528709888111043149248482654506061341657450376329963428972414840231555123694242095936126885570121495488949592198153728657352514309860197776576730979282723272792302437281038550665270470800076368826881377618097853814766134912096088306781054667567253475384511531417614933211798632756618111897413790110386424973507546367193680280204833125790968991830086054910839719612487388172242635857907337391270720999990752363200152262461275700635202478611130495526819134294739694142015154248689141708232554366869155691904902732551084934562073036074790559128093853751586179819339489764122159045210850361459368365989808003028618301648526987964366889127937824666360881377966869143944135768801948385305030766444357419132273968134719317702059799251248362988738090686741000709664291477312299658008424212322040842882397423751404004928720028827829974955993589527393794472701993082403332193518522205342404999328781022935484649582934289326965478813579668199832851187298002544962222357951408425303195350727681205047471214937519267961989489351137004242193733165369869631614976508488319214563490599311645160553149931242703292836732749789724981249997437190482652452033314042522852437881817578606356481989537455613798878957261422744000515767453464397229354895532461798741377563435995295655508143705467401460857844717121911446195103189562392036082384569655911474949604467231657944185407745938391296458216167579794992647830461957372801045203128663190669287693491422931708559530738710860955150708860404347864582213260389548282220803555276631978210608254623410946769136270647732619644315786162463741962149512356357168365424823515632653520722841831884292231318990920744980592088301701301835012960281433001420421298123593208028031691809245806411751337273076616113351990570409457370611672308307322822046656931415158945620661732607354561861443871428227939832786110337347900332404087115419473142754197045891558431108141199401069037328611337854032682917535341743336431667344031873011194616253548998655716660706308366038178640498279101926928182903356215327826304509255828528485421354672929097321426671919496552621126541843020206781261717661561262535575637714417701950835828811619864200616338324706843566652052156028985394979610289098451784779675260705055565066733494417685716814383001178250828886974640394388300194162237510333186169450738561260940773764105592857487613435629419448121594280831602821113541490402993398426266269667624672437723026501910288880110535369906805712332907891674085999635359034751893518334137510385666072745097772543780853544759676472477406412462514908591879757190303329285145883911215500235623914886830759998205286713830140702619581845190740150548656728395051101984931995901590099877457297929161982524326271367872343274193686828134963397935514277510744952069937761187343779450052532884081018044603439437804638932279377500351649946394880774938583508567619547990505013652512140579567544273275259140208059032646028910833746540528036023008646507097096814579918770525382958719713898861716094680084769719143821597845329944970752094045357700647626519055797494563723815814271099264635342550635721941008694908830928670538928500962426884271725760377046354852422444155063126103495984912238319823709521825292015514488649265663633804264712775423176548916374979260151932871208890901339479564335858413623273590413956666894839942064489235716927990446439756393407217696327592308640484145873651122285456020934896776676625840811140441300736435612923981922692689513912052463344825268510678290551186406941208192430365648946995834514960077974429921161494086194027061961439981526668263033948274690275451717232554560556310057490461348854553984070180815840286755421048071510755882628612282910798552670829309592028841292504180606932869221314263310831393388322388507528121633287054485544230818124322470583093378298575428540616158729463671360966551511376823308081229297760671433621775228832942883027910695062539112495578643261779861746068681720302171860458937104939470579272313631530968165719811026371236614622280225840345753513412629189398536864457910917838071977804430920196718297764519907872315810856741444864836835725199023393223897388562611720120497443898878975259756578322472407286825654747287317107609242873991882635919991656833744173047939159973976656405359279994064985325422416718948158551788889451439655985932601773815395409120675370913916687094306151943609893740331127998131362614152790812054276554499497901711494401898413351943366493705072877655501604695355379350418556369358616737575208246725900952253695991741495325001161834865130136678500429552184798665187578050756181582127640875359565287778706670362931069070234413576675547635820146948399360079862026318423197500467201467673637478386747595117105889945744289160394128868554910171981287612067340126847932757526536001112589011595916086982473211791917887791804044508335685916561544325052929255151371445299491843124167130480361735970079764910250740244527656451816293773009331543918508023067352781819910031872322753050667307144863457129973744287679528218304937307714597353507866596385918951129507987504067517471501644761277776147784966817246558891841460797718240911493360299360678697613704597365841669526472435144357997363036294722636219246635218520224613899233242455714152258471672146007820231145987877398546887377519561657160356811384882200562116607024456084892410693322940447416957118655707858334092869503558420375404989307124251028462073218540898451541435011289637766216249961370500512097342025111493533889407562008353347921712453566612312659043967047620973562536435919933113437416399747113066826117542894449104494302580341518872796283642814376095105289597377574870620656966640282610011688765477405863480508339188771017265131738497388377584014077175987025342082834325426374721380052257452438421082619406266506893284641052427671594463226936395195387202269863646798432750620566209869906253321842715604426333194538986217898279681039086242256385924116971675782443233272215024594789392955396170691105216078376419593850756771086244506018127667641258862951582386081070185651313016651802044462174977650835370847954266123012831328899912803959053125509529517502013759498152670754584976908203956490572026103412704078501888382878352073698710901518162944857201626379019040551120990957772777990595990503461848239422569450971857961601366389400490335659289840423043821022526323581403066315584365950527788832920885671259765198901957953281446692741785957414228455703379959894147968105911794163347451689474690325534455775082046532653236881047583158203768319822243198953359575308086174007825727330166074894781847151323781331132323829568270346187287582028197113780668701661548782078687792180472087179340568070067213055607571484742185568222900357164355027003697015806943235864219319985112533895187098194021672782338613980688520377939136315105468143157666380896095838917855817928868171718326807413980253711672041541343736800521699954961588431300786014981257503020897140579826035956418304925592296804752866032357519084500802196521128819171651161492136865322292286282261004998015393719394123576589345975841193304122208767118965324662972552215575596179589049409284929591541183098214918654579360256737529378264244151890155251124785052049805218937523136028422262907491550394807691496142878033642412655414562903012929758037978896957041534174514245903728955141566425057980586001415024143883915685204787058429303591072975598735818414017458688791594336288319409064691446829576485823819607345859766359233022839321992289542655555424933200908078895535603649047621611404641186891462160966918853140954412466384895840267034752440960248458474263782496662164651180533887852317495670762717043120616919210714674790409973106022211782550580724148264119727283045328219437783759321922055733872171613354537357450405752148132330931913372408432963792341941451808033728749647300616995599815341276199872190532600381645929153163072557445410214796284919941264553287987898851956555577313640129640935808545875484785527415580426919860597505045363686309980677781290415575011838941267774288004242302870474080311583588270041554332850597738067262666602383111750768489991620646289542029570615359490424483952580769817236373431169850878318565247041244472670489867580701945758128889464496368210446895564060005374170345575103800498075399897985578384234327202689336324765232570892870104442851794065127399010133462984124219374938853951550532505655486122982356639026133405885360886829220661623497587385593620752760639507383370842969504716865563495513169575682707647702865482396408495806377378000952251934590091252266597128896338527126847374330904916811921198570770964296915033428911899530840176186329118015404299975740579364034575581570578713453973861542587100937656774297004225739054952363637220672477864147913185239754775937399200480856066360565849754502694212904300589521570314539141551325859785978065356568771726409740922602641237640805103586240392575235821483922593609370806803865815909918007277620195556661269533271158053940696827273589558074501260810457404290485315225404880790141834920664955808653109387244682786378979352235668191445587074956257615710740094766823524550627027435051049917109504636610818868569393696542488519944455891262531363932107309094426398996138189525506427322755472826813338941846694120828397561862313943420682546144505093368530677968382347158486461596972595338540279832315078088149758625642439230136285842403936290709346553908514120861263118615660483815873025339022498675516150964477228316219881715746076374041982141640072690635473614635205535762556736086923754659466944876437735642304675273089114159192026950129346289476973599817051795827732679161436930688618786517761319382156824264028741032401718968447436825697330466645515077248091462283445108474613462052383791648549204195936715538159851679777935188752112450488948054347301024777656520201038777950901374639043242312255761472484337902154214949797143849001169929075600928492375669076026493752988747823793486370238746704990837629056128904016301322697478562679696170815457885177009778752451155746314257048989554149998517946806512771422944673398300026488101577755723733882196704696540106058290526087138936790415571843708729756917987268119602480292211445241697502648366135560491941729821096139957755968876081469539955232401631952648172340890021012294667859432959072944197714245801386779670427726120577424783713405815196915972103904282636047112841396511381695879792732609638870307230652000207331820282726321485463283771175073717144252062971670344817737579274122286073184499419757194687956080355171938175411150745725277926211090385816915601458088735877827760725555425138968628243529781167147076972352804713675821388649631726212194636057308631897708397091540093523305455549893393130240331990434101862956262336210996564553423233588905859230805251454303771794839388778867270466222008590106182887145893423401995381602312509569273986580156767442280928946258788948340032692943772243757083851936175280618542291421516798786124532122521863284018158516172596768969425789804313894352768743614794691690524503174789708176950530314124571183593845695947922208509426268745424067608023950597171338823877130793321594526997821334620100326896785423833476865301543807952501379988015839654465107742932518120086145393255210097307069656338572531763850253289129204491460863631562516786657893645341217649309217907853396406457888875374908334256252426730724133751896762970906872575546514656320793209834767438476234536773092146852933781310443032461762531742400758780822976877063980145698775915420533261235226955575761445700184643078717049935060970317113255832106013026073033282388078060733719131041357633626856546967096876913435959901031073946791062207756478235649476721435883586379375731803975359140265922318974350589252746058009231332806262784770726050017021948859201787100818156566660820308409943095139119597244391525887507014230058576051146524545849911688532523363652750679402475951417032397770210002346469566275911017933978624670241049785497070124767567384149646853984602105482303639681420693004646273259150621818192392329608389461061037158648757101312058420808458675546197451451929799694093772690169956466723110564088494481046438840792412948576073200664946709822240325449178356218344615537339255679133053997373301863229226072976811097858479267560971564779651534002719905366489238470608065799792000468605606955544053413333604762418539982859697619911495952684077331632323550039977230950402312323291130587732557092794121812341827757361348073793775020444047393070142195481767683469812873033437848907969139243943139386803953775944357843114140272552514736312050968820584279091066699186705960918993582625907746673671558476751452312708286904356917029644849674768136241550955230833130404895512958015363336241023580072465247458861920790922270732525048583997836400741471017413282564047642835160613906182698324211751621597811437712142832542879749966367677556593247393255967133327492280428797290086077847948369819575045380815337397447510643703486699199015227392404351877575189040542530088392990468094984521317752284661121398291239434139953396689997425188534129070193697450459144247232450387484676402898526861112751557858444310646337772657265160135738632579498203143889841656447330564215869312419201355294841993608428724573816032225647858725490033843240406099770604466919552071311969888335932610455495688952317385396218398685675072498426855433708800757858841728286329791086835874187243445251218659819600434785539215941061105259928825407112290156593270711926709279169304337506997681186427904587816077735961646056462129048096769686035258217181249971856298757412913568775853106823763100039575034778061649211670928133188547548046726332864803630370985364930732712689772693753885257484289096400398998275570556214750235438278099951497281661539929773861101128631977933556130848314926139817790009577926591271492166442964607358490308619939926815367724729751058083785204276612464561518019504199619113701430474032367519296727926178624278109402830508140419510366164503126230811477963563211974894445612458801870029035012581293549814370381069084367358711814291353910119976663766448792954621050778894610657983879387611435256431700039567181578596467404406288039003435111323162307508666276271583241729919070295404360587695558900369066407606672906085508564684548067702528592814002435960445072768586688153085042207509995105530905423379570717147250757890057925339799912366781957005656066224100196026530976689413489092834632182975082480376371462983457762260771164708739392644565395535520899111246758532684347345926955814157304041572898742023959811765172412556764786671776378847250767952500997325996934321706754124749512254278216149252362964387461654641718766762066236781099844112751160802659583206560661483317879729321180166833447351826656674284434675940406529051269550127985372499475461205551860657301039049561950000196611138592771493083714888154467969823904816700901768566943034626571832956406767980656158317448863909048326445835715101354335237576905174672741953953976876034495857167790930276311967102367341880219275532287690464380349163700901415476234943232878941696207842811730614431941292194510779916169110949232030274032680004390596214058317112222860432029811833659347313931121345542402862088506600237025639883482737048007409348007954026519004168896872797454759919745439108699468529130859299184909583266482212482866538628587246155872790030264281937307010419831889223673562796664054402388996248997952769571804661835902230127154968964740457355676375503564310818010771214061779341494621870762454499803928799898264338519824351170443041354151689978448948566767987306208740627678370393111304698506457767013082977166589487531277921933789806197338696434523600551490198482241071804567349124337915868980990535515395158576635182752795154051420083749574725748939393842942899538960951758109938315090071344309316354389893424803806367902772591422731692374823122475409849053394411559969514693496798212272261265292897171781004907204933200024989363404052273551258606153379752815929815635738385755149283530440703960326068975739533870419642506023052410623526537597383246145778009810192345432797367152538571177548203128604107591286144580196215645185976598913376626746941081623101489683003684800937297002482225412957055901352838849162419937756585918024298254245176016590974531696259605777810717749763274402774910723637529656859943589720756178466987473223718110192944085020294210085688326961110291819002167188890830548017181987068280343190545856119785678708779216365617042662080221357002362595918829490107184258462882069199820574383679535024560199664022692394423761171299892080237963829107049234930494757135777496214439118872484897141600666336935526608420242629123611081063466662955306148307124214157153241721902022786334279016104062923701200428370488011518455923061718505845699737287314956240601591417972039500415004281928149352950588910595483239643065731455324489342858852152609946077592000578726833046775047027842435401684188876790293330568676355758655182399012093271143091109453588882786287773257488748115108032533140636860624880660687111882424704229306845591866442161306764378205088970334500548147827180123796653167460904206494090518849966270695576147392242116192345546703633238955218299378140407148020389047088164752737894410758421996844633902699129150089121968027654133599533481083899585784712801186150478153327103802372676874084707270531065357191219390962659934099065094488541279444629272931103464495134097055822843914670635060690866463682926420232452872998916756793865069797920659248494864502927196365150973689776056086406436187926124267734710471238463775921241316804299055903874592715455572353121228469372311578781764284840263564434459141706551777459302908494659138816813258568825977301040946764764449744791282983263083297282149757350655215861779477928456059194268823114301621814801254489036047340900786933273225881082229416841696492047998316303929568975000190021350452763346663599446154657711495846325488896340462025990819719532714917341781233181483128766605578315197398685217962260821400900886654032925924873997515785436698340032436422868927749667683934138069588858548810926436270734776347194652024165118848581507466857438407981090430920555066879720079064674413651287923783942364674537001923849974712144791799833843072316869719768568771365660450571170186797417858213100685280907064961203066587886690288324836797219508670116585013863473828938670001730094762360379405104777742970792896595234098383550186179483508317755009813090880983368729367936069994229509653109128823014293663685831117854231024392464458700626844560028412560588085454567436786191390469184881646833996092306514071715074808633283293592397507507430661380276547449754229978351078546182512786573902321869996237791305304422423963402353670145551466554290129069571265282786525190523644395514582297783398459790250164234263346047545618309805763223955922984102190259876114307936667230980395882051202277701304769309384478925626594102088071844070779185368399530637962590294998614773065006090247517419701696821507083670379189540310505069537991089789589058717965286209901273629416577114823248295405920689782831682434659805498838228682947961342716444614397401249499026663903737229032549031298693315525336998661723179153115921985492007252333413217067966355312112800702267845904664391720923500394260913433975305342760002497980033354993103977811864487165372933896077927154137178180449441741412522887863641461569137357045176031551379738318555638656368255716055670924884012728705877466362956863260640532217747344015990419497474605223716233397273027946366270302173731299373088900857143361478553553156940327162458382531056684511967852954288228324715497588851997761390995614614674753853891793113018468039771713264271305632173479060956552361526977055862049014169117869106551429477387722969874666992593282663243422102180742504112142189706736905011126528401586403958354644472171090512031589631832904806838789562302780628357684504626325077587235694372582410713499923502049566896212177638122779900588088556530168227225750546043184764997931795125166447476220420611053097070183506156125143847048514890998317791730391945172982105034992799907522831394462393002139811670833305768004990777845344148693437186144008257407778426806141206760292244365208947974341566994773457962981104855446312319091848239591677638991791274040556782649740177275490842811813542909523904304502169188350488768977311996291081774589399475488118686405202193907907336960541991795115461209973355335313164179840135289147817407948518308268555045763098067003345110722402512691037108354150628656573300440588951225205340187549300809318954776849319426765083782306181932431642406275820087981673014124629410045486965496426870291061017926662519627335893337624293389286326663937339986151162859057299241820726086631278294094269385652377365210138350563056263634452390027744090782282571203825282435011145180502595002349837900511943424169614740909957128486527403518786562136725866340293438104474432722128781018186583563998161597153130952075117438499790962964508384667364868544728722859368933133300386661559258163807122120094078509170131459690791661549914478499906669757470296914720256529436449046755663086256480937870324286924317562264494989632704371105732095600694495505087167283942696371091047462259882053458464945040792014586333021975420707519350580861679873209633686167766108673741902972625367548613277047808681557377712577990678307996717830946863089394653690923397417829260622835288399160593006343341580373134857006455581557848239586746385644142774776036141132288342360009101592888248950844804137747373929779255769986082531414229013027984505973434759748827802389228295416820614733140793301971035750029001034475754104228447706442567606472319232576833640993768651871059380053670323756418884460679557401671320607830743278710253361086063104805590107777453905632255934288148569763746787278670259207399760711641258851035913426575022420651915715206540521100279221060407830069104457029525248934965975504058620819073843241152003970152338875285456279907930802365676211632074591053495920071671331821720556082614107131475977908365524859915833955058847045907609029803499683291883381385200049024313782539762891401480755938440121076860012631996774903979944025455152586143756426458535257474396290399885834731991129434523539451783730113193919934452946164324162012168238744300677059783092395931444368156379292113183113026093018814486473824430952808883144446724184907694554168379503451437014587742582994046446635969955786569826180099519940016649011146789039295347439031147421933883083060881778403567765101825051439205902103616328345819145992301766602898572775108655596120346389697677270299235273763421210877379088899965251547450606402413310850181080240823615344298701941103307495251554015373760673410625663599780588440532776946820943721906328051414822109821965079340753025913281700900275761708428004024710223998740425789584173978920063517690580742729760582647078802389846051416190733184800659006222834862039609106270738324608271948097003726967402945739776238185051900941019877313692740016726509180114718654037566629785144072623667334057890828565228465341788038327350125928901626520600276909423815444786216078417274508553669779724454829100886418818553852535339921693894558578724792806535968156630523703201293350957710183817873685214282685962485462132965712860313170273216883453183529578845602664788262755867970860937498535606257349451114898751886954285268348847949492666570870551219595547930095082372926519136904834082371033870785834826677867222388851122521281764053848394884760219672942792974909923300525724245429902158600671039856853493485894740858439548726828214040150844790600477520881698300731836297489271747636064330984636591822968576653225637072983888141825504822314914868638205192492226696196759018297014243219969500551897422520714786028460885619989019349739543483007273944160682543684595101166822983645352487874176818946195631314484642930334585770286378746718208921187872410310387874930740811572022465091173317326326212424413684642687023973581400479021746756529376547905002798037918808333265103404111394252681261695699093614301877326297914798866177926418702653204538824966360022279451886636558857671851738887219030113184531238488156292457800010303627132321326887247719705025196560865716886681397609355050395981549593704166960225429087674310022959742634688360414495645518811766965512503209917027717532897968566876666275672192647547154975220745581850631795949645837708978482186678733974923171119624325182352593538017811044057837280314472817373817421388976721763028579098400818747310864241063000045088543523038601801315538794107129587464638478936961547720278030301256989691029039002200758022986778763290477804636255977072703028865514863211797389970878097321078894677869678304415270403523444753378888408863610436236131555512452809330574165671643650486631565823928197770791309613319148436224339799936551309600981026667459674596494044855143370355514081563877214915248841725364098723729495686643786752351242772848952619301348036601538144793606608325474126204984377122464634587842881643398897510002315239857980368647393886800497295556903026719639479624439111973699099817816259588527123616949240011082341114844392258991188805484060885650898038883365021423223271318448745649968519124082189773779668791961892940387291693586310223372007374062525540645920168372716544039638765624868619165804601316598406401805310029765152160365997776996067543924646712905585332428423827710557854200331930704219526132594793906588380595258306414310397663033058330089162493234439107822763326458475542507092799201865480112305413735262604932391899559164777359274596268816081461625937809769946521241111210228230833489380358933661097782557691885691561284711900773318361113952865728841033992007217973579751538769263401700449982822965450217016287130947571833501997553421481169613640297157253141359187985670861911705025249735185095204148674633540407164248895488075555722038802204891341553065611792700312559345377689309176113952275730463731811303828715081437734547760817263034951244639642724023591851384100958690132570135108621710537041811291877994181044000235734585089091966268218843308572958740722442811750240780345248120682274220236128139633672176495622514221850299462255050377637633929954448250026869489141299918375542770660240741409595046195771471435582638406967489418283740840395753155215215003478348362663973546679598643426284153003689084526232713266902329616351887889931278556626161009301845952883167336935222160081567569945821481218769495078193156494912147052039484468986555492011733610594736789661463685322897321066805416956578299164321880758682360078876535974766738810875964093681910227921626887798347593992577440330940888407627929608396276714363625511389593041647637416244099394313892924401720799704983468689251132968317383883858232900020052036601014713851808222317471311902954350081403893176020077123392011880348642684433504385689923287275587254192765707332910203648854494820918112956720144174326688066233692831926906302468887212252723800695929325855956856673022276511118961446554076963603888595812826236868061402425160254417374453212754650620974045912844314370337940291930003966308052822050940627149374009808351402357176344733457612985018189535222442508079382671480782937364733455011905883614500095158509488193644465008075627907952643764563389304916365553458975346858184666588965356636617578559989978012515728157792012379662289652281162635294400706116853691578597973062486373748723136558167149132167673767394015951483719185829692819135890840921885057723343036890697866086711073544547501580305190180670869631787119613448588531586706792640173242170762745713357391304364388486380119454479864594300561450235672991589027874512816665600085925992472139289258663350313317866046166118361945273928373322170642018129509494562474706392159130421844965946884736997319924466375739531786279850777881722779555085721843457464954845505967421644077417827816541956401978402508205520884338171861000485689916371713641333007463637389319502148452846820733229835383060839940851565848130362462728327264446743420487372841366658863892373140120613775016947036800060419453613242165976263787656049917002327264414748035404594297306166220220241213997831949376209205630235690972229912100530101805491739160007663808368040486951105254024534126787532556674872977269511229367196247775810011229516893360277603864812944897641186163315093413151989502598583855913021036576566241764287100629759549783895469062178101395488850162385162942775056035196674201516535167417152282754715848415550584764600374168940725978927982705082600413980579313205356483419640107500616321675387135319327943324253379112398178112093643200289392324254610175544014226527003606852611749112517529018229184588430241483268488046176014499398558808442969181463076899732359372054455148792195922090203665914713525547749287770596247573280124951916979660743476549693397080449114057168484956550861512530985928982493071662584362371986439096444876717913730396200014214715806045241683634881296750407496878667291444589499865275462637670327884532934607592469720223505159396387526043241490995244484432438417338977219598182331505052363618286335893009595484287300704814084721342129056472273271291308516384194456555716779115253908931172256699350316013131783461645509661690046789693853191262468217356358715409049534194805617178698563339672485369591460967871037518038237093943520371163432386336401609394940732558314466901686996345031497902629961235661237080871531801822090045989610735907182188112591445730152583348445517694010581668529464226120399900267350885329542115902716475991023240200277027208281894955957041196737037599284528631619332940437517701519606603197592037418514165054683252775800131223395975236599455302657640165114725693933508480358561152061874627678791877097303310339163178236078618853663405738695768871594252955822998194945886213157884409895947992001479842364733186553798513318684157224189735780890695585699739967682602943784610909770609234148577960331353529183932454380501159668997258816462546869612940633763872104770014231883811090934173201661660553262270772186619943766572709644260987296894928288708619435408302592286359477492461317727293497956756140491467393153429211824870669396261234849174720119175672666202102139490296372308926402357446606919232444588174481685573138519118086255985234961772972382705107882196301796537205952089113653425911124908053120062157369600368829624648488282664579796435189822181767284256445712398461989304190522939648457823917255000149481850930862734334056137158462980861561176603616375725710843242565486930807393153433441876543485864804977644053352749466673337613986365219112199069411669599992099465336548235994469336088078066237955662083909897858050658462034980861744334117280878948059217900027579274179935392704058981608479357660219075419631336076256538608204817599961376518447197192344809617114638723898694641477593658020244510219578880724920277387246699335473816891060849331345429587044419572358035624388581716151995269679209139602205262028702063540797195403017461855292188385667079317624661487420613920404390681342311667183114477026666891322707166297296067890700258193276782234031560558615698988292071032124847407460327678239698136928432072867269883276197526281212122096952295488703813466587357859186520431668778969296415250282563839765154634083570133002522238315352440823977272123415028877581180565555733609024148081114425994137993206659005000815939829990830309579219153119289799886213442096856613075959150071954000734142491036305546332524585945107605348089234578036530611161980376784081688349563346361421995843800432722057957717894974772278897823950400566866514750508070540326470291327645466266981239500726983021615617459224834332824967906089557507198114526551070344685224633249509201339762249943737450378506547186274525889373005573890382193749016352907374739047646466951201030284562114094365946020974082639894284197823211473158907244109716331044827066480130409656068354478482055542384382286804150357289752538816155779784651722196197495391740228647305787943956501896475617717321847933221569508327986207909821655398730325161719967226319559525803638023185425995297223452216507307695462772286614730035443478320151369688457370731140241659077998055634987655572951340986963273516964733993572545755521068744796886001697948142072292147677765718165308071157142326712071085140773031984038684126174988420649644116298855025288662994751896394365169041262770076021136488335129897766017728664672395439358982021279929505937321791917101196012182456575641034574730671465927892226393219209931216516181889164129680462564260335018682667967722035001019827511431929076092445194204077573685169944758591432511162264119507115323077681075721537173647184755107902309005329583862770018094372719199556110894725747253197706150766026381460481398462155721729865618678663413574249214269733899555431254348686843780617151360642836323797913111502646089271234088089423742756108804555921782682268833664628903871315020661920484560564285522613761641781183189538955523551651705237527539838798103236535501068321692473779957139726406922746990265872723832381345492622409509626884116302326453983689221742509276587629941978981046950448807874849865391755565043742522889028864666482846225698092214940584337720639729695240744491629146829709105340585842310852664868048848418945391552200494625931133213660663864202934174325293582239429985766922834675950162835676888612780847356556827217362159892836429332410530846170104787104319254628663668350231217617241400852646213368478213787054747764631133848288038291404482148214304801346834221297279431067172856306832846555219604032485612684568773780731773047473454460538954812933454438134259187089084960205852178499280803873787817124912285752507472160814916905947226278860513167154219428777463341924900254761527391749898066426397413866523965997705983084688650980310438420189541426610167025114748201301603591762122063434136898621346658669027978002620117448316336007893392498660723454742306660055775715402671010615564149075008077245051854928197190738455756446744048379991942437713098615115707658776603020362483954053463141104822118175193216410014759965806752500025904073159331998980470313779359019025089910300747091286830237701217098226688966887770142069109282231991330616995793644512122357854752084797832915767261265847090883411712391211533588691946988820168924836573770200826865838522299028163947978813321979309338246895871303485932604762658047294206968884939115764526535152565384981322618939033613925679344827003569774212831408700881801290051902479081032428826043778318705695117490295121222564368868472634740134612264811394553598746647549598956972684815815190885543406360746917072011138986350997785545904453803337575946881756279582285739851290096099662156484937399748244135428078182186940047417322943788720535594344338616251124009946894482395831155947233223966725433987898901132221793941713510061875430094308258372874309064606685638833357675660686802215510230338607401709230635836626887091056759084873264013814259937871554781752907784618260207917195721930811306158076842756496314057928662037473547049774260857236369814733528226617674841262638050431692981650631128944983548211169647114826221336569734358059519995980704731135662514349485351007921834173656860238717695238722058876695297672733651276224713348224948671667452306641192563668491768564759368235903041443827093142614223462751167461240409235751167925371958219221070803961654136183973407581305498827652725139136527994971235235945871914004058157722081960590724232325225602496158908932235252670382527382765926183529181448528983823029465987298816228625474458524985207693547209851215132402505357822242077844898694518438693829132751049938947650343727201219089548198737147571790197065927337416563073156333791948003264058036507300608433827476236037979481561230811637879380699148247200564969581655187833690930171357360440336802558420480803095292574757628512823131510293390326776419674093932661822057382520511391020204474176499385707022309931620715996906247459905383270294131577721959320711644280689592475615774795962177414170387070099066034280941658680751905635398897473072506216129725126355178649137338197649835322837638926132349723943051572180285871898511423343446028819134520169863260580027825711111753996687313955157728869803697173495024239437670602647286453005775601982762557400424134669975319825521240703606209229166246077383064057298979602277674062176813956036591931042190288855958690175672584188257783284927038910050880134835995693644292802370597201855260453840638715655939354132272766474277234715142896735256006649923626658350626861977991392432296170487534479288583058804397521668171358324666201727723407344650699279802791495851821956577138424075496950715430454130257014916962423309094520600782237529663008285492794143288920354648944487918124508680556531904358151921122052010710187070724643051223891824971507151428996639687605673385783004155124683793797473077865145983930522858942080012874025367893932127463312100292997967022136150403093172809108055736445117175289473487601126323298961471855118839567408309021194338595974574582399638195244615290730046528063199315505461908983830413601338442929570689618854058667152246401047105353264498533078042261539415615596356164116244512819104055893827696020121946159003183934178020709078487327107705741570729935040289481584113255308358132342842695122615017467783439569903182835584468118503284342019216656612570989716613938594318082383140575977931694210848369333550207942481438241127616518113084135426147841512051129297059393187918960593663908003733937241007102428433491963366985414874913635001643525275673497988000673983026176122051980870611850814996602564183826069585128505329292573660428922483423020032705032359239828718586422480263435185191396686643260973058911365077025094379291889204980862633982614712479828801965099965166883474991773263285037033163764995078490945619643695527994924226395658136810012002830505986859796660542019498330168625801287060099748831723054157474158116310290685189073186269824592043419122288709837731058653116406504583854939863954638578939137940135787829449656314203642889823213520444393744206707494061577535714085518876128973143819375324751617608856281327692911119228234436363371817024025872700039639353630438802893876651793092794071215502284332085683951795328885458287043394724058637105364359606173209375953499470294973603006814768866868403241498011269517524091947513916505061924084196812237950682858883814535023898464378780062385642185997133539395935288805463233254567855446665554990578103168706339789584378441742439171311808513605871282626861055773995431258961638376952751794021779269616650461960657475466815755093114124240952766776950375651019565660845681076692147080258364485739827281664872818764516211643312661436600580371891830160559262227286788141549118964365214705808147993622066046711325488119307826860773238373838813510277832264584026936386853540961289776765205703824177462320077351684586357135119961923720915710323169452110555707675967628744147103297915223737936633774713998085635709566816890340124697592991944426327411651102022819812316500079290884791514993721144325338647749617745486506178992100234972845156702995163803648730029857618600773756976595483014344125092787516330383479851271247783395976786667118547246852127091158816276154768887949666146386819707603599955894425412617398821254322962941301750061591034993074324065871013238729651667845649537678547529104542534190735481235077169350177127629295129649342763155597849204156734491799895376252971750026217877476538395481026919973748590295932387142542093311321209636921481100965571540241346178316988558496847828369171185904599342073829793356858052290963206691043793482176169971802446587016760642774420676283814686674931460615966553928854091360438843255491566555966895555203834191776434670126024779988058062523309427169118519786230697104334423461073076639690814775767912895063236654836204793084531631098284482822010248513381407405641532830199154837351209618361411573538493449676462170526486946732655777276484621346450793091320356599799978221502634455267914644223189905698879901004522322344279032544465240366979745570593748150760604020845279116763133906155303773952153249442000323739616938762975781380148665018957000387867199920867014400460924765781806584149347000715044597119095892144865226841060336533144715371436263425080732085984941206279169113720761955700652693125622354977242507999082050737812143276594038539053659915611548656591807010728775913363546620416441881094920816258181809705725317266023396144604627224281101714508511502524698160925506347772606596160159546933712325236497546080958987087390737761477816097265569044732777305883546155787254337740416408256568215927988301781933543833903833749447638228228095710111826122823912420708067246943448986501199205893743515501864746386080491419375948495167750897703338710503894546509059395893356132131321718287772559874796010346023242284830078358903425524559472375611239172397602125518718023343341973198281883908617796771230872023703049804929817775681476550278660013222223324306575412427168179868884508211512222533856186108783288360310071549360167726944060884183328021260607560855139998509523987177141508214397192684915223178515598592414802578380552576458832686263314392276019756311674169969156177281216197342324696731945488926534269405703538307520217435751214271576407942826031844087327536077785318715580926780805822929416317949746375243969871416387722181700443647961074965949340120535000804541598093272624387289033375786614577812363324648727934539170378871779908639922511677373452744724177341805789780586066741388709559681467064121881345461344234977368549901117347262117578758722449253828878026330456563003154794836773294985076474716833915579648693182182688668491366987540202982732525291488030048496425489408368643550860469969057974831148020148251986699339118819174172500363449863831319726800433569550579920331825850368056559261357007646598470160425904162046169579195302795356667726492269024159167408622038698910589171062385934148451757067870597614386081983964807582762675845168610752209023432094208007808541966284920095095643993846875135742670025994074908167803938034141919730364508963410612744264233581207684784702335209503270477171636433903002820129686743034149412675340331107633609192958488271996647086999032096804606049415165244053444747628718316426844156636740986771691661011806194650151931376760502366533378646020001082141941939400990734732113089796856906631767344605633071533384308237480450222983693699290737375531589406897038074557282838648155018568772944824801385064876566779546851748848233760304618225722403847376119231864948278286338516794262417152170870236102576143582164509331884298124751551233099432578198176927233235157076447912794193391019701998159909310663129141811348511350821603465410777752861045419498248884627011376987830756339143832527108292170916241259331946420942673410847581834458605715813439902625875727739335027749778735659302097473270069864833008133814113356026795236762057646413463633868146396450159812680081094624282592374393344768207974254553287015591067398260014397256997907448416456758931299078268588400156063844699768675266631626599775971731949926076084454363685630571834649662364340353411877718527552404001268222059022408419515390995966762564748195800182784476616548098610124120820155653670463386454279403775818212157071036062362559971237261872791293123230149719352123602739706496573599885613184943216875279098212401521995926203463091067959140335450196257218026156819428280311811854789755823250597153782254985225969410400488639197425021373081052109889160417099915590106550742395994566014249557474843818285319378877708966960696253907910218165773035689244946733806961013764161579121066006247465477493805238183768167414591572711186300964410745757646306700956824643304400126917748354084350043356862856046649641465818913347420327310847934739452401942045916861599834689168827752727306540696067319955145663634255038473754571627794802091315075618598509974464771486334139263477965858757384195025148799689285110844663130431235457122488687837571602324027185392332197588662714773331521730797308607033468826451200196395846861159095105227911488620191552942923718657981206328271362435104451709627410355910691384507225320807447934887018458133502394283548324812125645895465514600000873934160434025067000635318056981982343267721993983067261981102876317296951209989074750089466427276774586997393308613263941676962612467016975843992343603227283476010192174058913438430667821928823299294721670371591357219251422556267580331331632782125066134748150568427709867078278247608455317877447184135403386075926373973783395631811480898694300875867512566692073090266309902205228656829352117545065297463142105260354355406932000098816341558685672015920155399092661183674869357160939664942670576831057605791967648733960284416094847140038450076959753596071788043444075757089456754884308734782943793263938549193105143078577022621500233193260869948432502463108758729638080626801611184482109531268207396651093831123757054809504267299971524078740940925394146764056612590461042552443352914953257649698448123744126758552967436624243292092395141642197073552727296568454841630060577373105030593303669859208259379226561032362323879489990771821382741778846029917964235306120719213059314631040650812013792897696199343492961699812622118420503994744105038057498920074673312679323188785438261428843204174439977334428135479109089460823714322175778573838781033957697742905276503482750618113694142874741264201284977258032291247163747315884480674934444226441000541872774329070366845185314576717516325069953156871065967984271691354607651469101479036385703997918182275592760966705581891351350721281719252890833315616599863821437803025644158301508350652743034216446653289866212666142797953519489383998645632304842733237582738816161325579287207655247627597657857678691483314572011390273396637624612393774414193150469035737856194802786527962356599731448200930786792400492389017301447014546866760147667298997249043167064568155954652479542429057669059560053235909755500124580163244283793798690885594742894134156180102082068263458846777576284844094855702761798605620075623623860456187105348680227614509362364975442022611583473585967056461184472645729486228924275209202975909869775150317700514764897599173865784691878114329305659647647618381651856175044731837938216577535543280317828123423547220555851671356203354095761889655213549110664097711238902570625423078985716225855021867551791227030310582294084228282355954035914427777705858481138059868364298546045869485068639258295301328592746557412591598941198270396423069727936232174943289726825681268937981946904018348287657627124491298905133243626610376269179500025926868570778419118695717125276233815563188536909547609761244893163384443605418106925624971902630545431556800407703776993557557009119475302492089567918321179897495013788439979540968063084753921074299795442814935131296705782655153071345961104269300868137066745194021013859339715118563149239928589950757862282525571297941310299011240255122864084283384010696857717087365780305922663712012980969273767148341474344886149749086238879210874133710041377708506159899976677957467408143330585697813546324160508709120569192918022301439212814579352687240574415065740802514106280585121110375952948780578298681283599768759836114814700565862495463831646084331085978557728669001935677570421156709153866425933388526422553644548638221777105768938826051784219747334683216664567848512158951608501231207041270060384182845914036330591758153667011456636110968455535716430854185064822354040327078620529543143087606258672250998473188963960632099304347691760493091705836820262161989135768780388197117444845669357370350206673531164580355338503737956303863296803382616665990800511543481483754437836702115368705663355023023435584356278484477458070064560218430789503916232102871531221391730511964750943171231876296165510319793128962283153730325603064211711871192160471319769228563769076179036252680491889345856175751862427225793113190177280215504458327805087936640545483276272274027808835129259712927223511681842654378783704741743981536857818801083314317899384966100365870354289073932217180207238521667083301334637020214516901337375609580575067562178744854904800901139329667740242065037786080087085515605202218688282507351664139900505617083863924599487928956015058523824857643702006999114038693236815462276118985716456336852851200276478740414611704384461849882255880691893079763339208434828836407836273123731504610814096365044162837255115906819830680748598146006854204473025271689275359750303827152970912824082072410690263538653401491000771514445744921767177146564326580314078576405337205493021476863213714059647599530658760153045995907712870845842419860846302804036103302791309542591503356859228592632111204498382315390591442176553505074719250044724281392636550909323028604699756135099510637182302810407633628182930882864312870197311367666490744758744934782554448124031348594279407766775947936423076237573908582035460023380348123984173979057536255473770447042120745805420324958079564193244986588142827922726509661447099630947725649455160748247122754577041878031967195053251941485415753234999347553814357739218488704920077718372034187072562088338127749806641926403799005997853889299381037271523975795157296257117716343793796678678995197393410483180272840637612911204310624515332424452460714020744170088547012175060075349184226441438003809561672737878938724227973001973756671431250060243865930357589709838825181677547037604571667473440976014434472292019165148594669088634224386534829527224292902110048206063874536902034430474151406748107325410881454616601773256681347208334886829508610065484282074871299135049857056911583822566760683222810125833227492484276926266485729199391483069423064241625310261992388252644948407909259044543585010052198112081375816607403059420270059238360951044016634435487533765408355237953789807867369478809941328755095814328724346706587257052039607763754765554597565688803615237894763648373558805279322017619753561887673605378934637438682460308063883338314029001080834270465732331287160455515582948591269406568306455565305699582927486113022807408487012317574823653743162396968558505994661943117986315997534344689895460976918555587656287762495872225195079168658416386378462618553120783542421871064476897979444581037692500522219147735653167080423218120653729771321123853037547333456828073858368989743355483760160464942059950750986004950714621766907127227023525533876803528654261236093609825175882447177126294362741704371190331634901079218664245312424759883063934697849136977461293857530903817106987227696167397620134296353039372301891164242152960217117920461231173984538382939608660735179657611419921173168882292953657530514673354249329261686248959698968670795140177208359522049241580688817629214410456185649820719583999398342019045653421405660524139104776394076972667459965671502610897305646195926436319737609061805087020848510624324130818608569478870067489077744110019728207845663859637344307999832327111357365457824003244732378107949181352932154716264564417409466643435603442615852695933598387535964045465308553392544133304816755185093142411059544854374388042923617146158661289858496299942935971171766337856447456512175725308997087811007850910774562035036465936157291548133934843380514370496187514959455489799839098360984806214732846049729565106224619551596718971044374051935637292927535302782824272725214440410844553144756351693286714665886633266702804796564619260808552300658443906004810491716320423955974452900981743338967566698190758626614791882751557450108341513014203088232324481206208559472387473020222245396715605389631199157310196079593290987147162421804798982728356981008214071476759086784279417117251551934246316440484617228018315674470544946752261020314749411088795039234656013001438755055755799218780349980191098258503541592508555298945798584060284886328996123573990861353228391375057568845393887056007568829497998119537648594434726162082653918807126098753627102479912318142693781515529271863688189866933148742890606900109837222316404390649614218157553881762433902530812048415673137258655817919409453453290911242900119658979218027130525109657329556140063966801319710416483216134144256416251539158918901158427977154028549144086299717738921739500066257957027603708690621262238731735313839065499359213837853004099801714450613629287220617544969869683561654856332182646158324460439507620983450920298512435726966961316850748271176394569429981128674992039493991830467600001807723435310599975894880108543422956751400816384404785138084016472954464464458394864393791581955283123913861932896486073193053315972387993347048385498796126692274813331463664601007356866735753960577741073387395093314686679973224322207059475694294355262561072587954987890273088664687964171546351632801918308148168912512966442353260925679366254400151845757416733686751716029724437513203932047960415625886396744991511891340565683640357985610168591586821724998301342042671179397176433543101395841291266362749531290574445330607916612791018978306954134708447898399031057261551914919314905866259911487929219961976316419203555708192546894521962473919764994742674202227068821535812978286569635947386607442693673857583548918059293470566526764823089646741830430932919493144065961017315145011691488869772312391219346021999900734730820325427822233026743335364286309208677150445818149998094443883343752925866724612125884582170814209434543858319722689216051364002915322915623722712003864133978034788052536804041069489196272767392569636604475246888352552759386324083335905236260896487597491714687226107514517522825503657588679339632220921392478048228022116919170195987633774790871215061109228087755419059383299180382065152527745499257359208366099242458351695792584959139213175291535430437748033960825074389584119835264477574205993943596696326589426402582698103476320118648933274990101035616494439730636433389655333940829197095796879540754869958472429078691241247928852297235401634864538603441747511487903502920512609768216548388208976842151807062419232614923043390407439648602927375234039119944532632063271457821027574312063224931274596692241456513297686884169069167013847520824679786305888755168102155749162872504837945974063952372393328976865825531710967278075217619831815914606891462229184502552666844894877201537901255183532381711076503111081858592759804380107058019691102613092846581390718128486019623133302678537721994250125295223982663073920399458744033810542218672956745444484248899348530364333122838283729865154842746884251647333254818843706738989163242817353318816872596621861238418848540122236848279442114585132305663356375897636144703105466013673449357761280318773950784404594629846919830693194767250392927818975450068449991748155339608733342211000484938484997294102815024094154640080430841262419591721667585485371188080809090421872535631631016547253807655280494955490012929102932223430017594872752950562559107767055340117298459308426572573232123655926528123725101517967742837029539131734401910113404888603778858648829501836536413714577088836195140630072454773227129121200058189053821316272262051826942946943631886826534415934525091861890367153227117039035154722878148687530350386858081812683991417347927237165467702133323234671772919642660810090629621443127223332826601317828541848609664551605183415090876583386455008238827767433229086062193415291996792131191392263235212377901562263285481895218700754730452256783598038988798695042344671444540055276432729514562318637911210989568863654867140979602117478606354361489250979087812847771124890252650816924230730004010385393095433575074559551386476797923269429214285393969465457307418001883192009126629780697849258371301725332934380919284706165074212007577042340575062647092177840902652616165363291253241727038861984336987934120025744014838797449316717311769304580784726917046759832557186614426858646355994173866106269201998327369097778153432010550094989259146617104935459367059219003806208020811412755857871476191920204908459366849400876717385710598785411572213007205054579086120332770137961070980777210925168050679000792339482854567942560464501291723144735783202489222209574439928149601507024845328116979201889995982058073017569595161453899708169501272701191841732452006372819171231289506073806938802730576253433196557672201431179952366515519989345964819904570125668909683852717143212618498967915757144447372475942191466988479108115740555262899487481851215718396351591292399240500146522678936126614803228123362673665477847706264681964750577210745205950202283386286206174759465693255270879138592227145396488727270071087134906083275148891809600462632081387689107024193083609994177890167669352355631594616731425164642303111785603544918528564774475087305383422496614618661566024830538416526455399870822505861336339732695089821240911638786753486629191216743946522497459196131078762608138590921020396180314781644079076696851989857102592309621324862127453385098120337500139278781665328270463344797361716430734098834919261000836613828436411153800556445303457884912931935844198884581622869721854961341814697887502480961133755959067935196831655545012722805056491642317270264042340680314082179935608748294637475474243399769713692537449244842121299888863336778271243303669242284089339888844016297028599718251820907242153340895327928369191804779778326557004910768259610328887782453067243330634949429230545429898357466462806181737681506630687320240624194907432708809390294038684514220748493300726661190919049083549681693653324785229393013321305866279740290432105943766884103962836391290360720378001384826698023305444368615738608883735955361160405250838216670288759656818448556967344633860613689909165387914908718535536583888026861142793183166266709892991072856250334528001183197342861959350048708797565489887606957705609111380543765417235503049661681630294788798812333450444790038524557570736344669036299537929175040559268381111567976823060395697317877963031386887764239971381852032210088052805844734813896411537668413613194542012959655445203062015913521770304712347572332895493087963107272290953430742411729420737957044284972184398920848865202028795813756355547761931283603955122192670192647442551007814458922390489136594063523539654543619791420249110295956113299859390357134011732384121616766291442994108744568933600444602674309197514826288767256842338228405849721499109709235479419500755968554692219389964727265809975070401352021798754809173312277102086724071000799429068908964999908224814309788140491867437071885824875001812821524328222912990318460810457473727563548718957722972072035622510707275934830594689930761319312380726925691647927418695340393759268142432586442445636365661171152185673508394278387829911486786486661926909922242621277772360879790704651852594170188501476216182740312645636350847797993212530436444805707273862632125080116047446867614970259440331812289679184031656108243484857497738719069760009998412443247320296698852916711633323627825148744607021956889765417157918788171947104004055309487193549145176794128325706828739731809894791452408744795460610795871143526741063488035762195404646765205767437899123655467105962544148133765957188281213732911462142935128804100449602608622152950471463225860907577349010685224794021694406822903110485686050618858499565853875635977565601422771892234606108694856387032780322955133855101597121213485649815694054657382692773972793767557795587367765232958116630339268199155680424656820723294137240473505045739542072177504236880903497761144429169219971085173514623226800192362122276923928410979556376780537896011002987146219075115583105735211782789967472316780846951591468377681750039544134701087778607593483759704759453421086707348310598663040098282004856356792614733905425005331258955088639184094053853883908179526536454156325663078026941522181209344042896545747411909527556297109160774129833925056702134867673746249467046474424543659674669940012490263054587473736235824423053687267220688018584128094562285184277669378915603495342559508094670757872634000428534550764074356511116627207649921511279904420195318261623955148304174765868766993675893848083568544606096306454748484326787595895189967078144623742152379599148737308035059925681270002551855717062182525768890654636433692942097906796741479352808193587136264565869553754895994938412188319396313900282347605670684348660826912015493603778423115617377093044924790471893799959179512588124505842843300690238972640572329088822216496202008157510749255913030801526933029300344246519955095560810360042803071918463633490790653884366282349862679282083821411095267347816072063334793563940338208255366399043361676845077245429372306256040573187147181589873102397732234692932776569149726295861123953015738619709374623682804182741095618577877020717273503839011857846272477955068455258623452364112239644125694318491374033529715945497200907959595066387544604135911276678531960092191929323752071843301494962775111941503807023758983428888840943498063634078261122416864593045294598735580342352893701838194274604905711010346931617993273717369759607545171568932491718640459985477821439189714383800285594873014901365430468247496229292167885430259748193435943073352561053219770217785141530255677402073326463516785298445132337901950228742157107604092737126849857372868859201507429365945505187850386868554615017467001928221101553409512669602435977941597376645714357210262904856708745574198590475192238446908206872272157597918101128320086311489622195949526680831224335484377404179548129166456329579870369900639020038837743850827920040959652527673914911313636606991864753364897493822680614853024057779370385052906453956152321863757877468030538778279297663638615848744266409160512818907025500530980714794452157446670232014817015334841077420074307904609456096370195639761579989559135880332193959683568387220356649602967556887275345025748163907193614451661898745457366398524565499153618485406101393405161319672190171347578028507901679901432406334255383497333330265296053982014421483394789061811250596633899755938524602338294100944159023780588700058017224428820455147245165660267010688703425286131247356286884614640312927116290824927175316464556266238409293627553813057591703744414996750025818872821147875292845662305443452009445961240957313531021991858075111288697899732510419459046001716154434132328649955791553070384875167784911900742857470885006250914674603095910315090150718449188224753948549815462944934207352903229668227004478650163656403348674676568266150141971071358225817786283231672289961997156342122829385496307962833066101222867150884754928842523035905935137718685757875634010248740908036034331122958568270801926326226753672538312500228882909746020180614469496840952547653955569128959263232295433007383521032021593532046156914978753477264397438033152874587437474623869702757596942985108183772950277914429241409303470245318690930954661642312018121195307981651412398818075218672214589376964153363134990129321260416225128968552548339937989082681139453415576475555432532318719660236479006613893012984989686047728708460045574069625174237302248882462891814675857978069601854203286177395624591091472400520022429609366436706108945520658703694601846033245376130385231449974340708000187240958165646059608173986129718486174534485507832272791827554548404984622622515364034888616437728599477866441268675127123203672513474945767136942303812796499448067857558694913803973466595092127921178247541919941718691136306055265321957532631849897791608085469051131283467843213234581751325167131786164489325498752228666670193830718856647862316005421734991426379523764766343524025935270959244903765998231127264150207707702500120537389675240424640210672033087034896697452271093863607455251713051385732846003120248316967156559723020586777793679476929855347799559502752213950365358369328726815507666205628245119140795335241068564325755988034554322889692965061732437904388481274531873081614440681158970437756508852602775834223697763721049131038669980942059050212614866532223554208694280104365054389555887014170367894107086771508126466292143382900031092604235836761514219531622524312187522169372967654810461737311763734480836176745613443871522783774788669853405662287978416508778873915632360711312182734069477389824180668078778872128273065267182702870690927801178056827639539146768076241197352250239705199143286788279518669792692282563233987663520465117299500856432360844964691515102503074567463719978569879377792077073705560420055712130035167108701939277279550080847117228566609356733441264506681493119310170535991148978680496254179173393940921118636605110395087297166531431291158163468134064103977955444160553861645911447768705565284418746578728531144821074678893721555850831548564198537555516240929803140214041420142349824372470950299510770846883256083855360099965522621567370875350961761694190141322481286039127867488804179226513990923920466604299459950638671521583591027569715408698061365452912338721657324126587346746961712298640299213053212873776283631253620723592404881202753047081630676066207421639385626617850167222256823426585152345116575824300899001950566448775962268615055401088597293327482048431774703921525370316417246222767697994882805428585453336294639893398440852420591894042133348594690244366139377177415088096163143317924300146244164931412344939951125305638889432997035677687291144794990592755778196062215956756677992628799849882418898138378689890747810557429394009281858387116904821646696996752461375011975914781225697470344693377507366634607668606087110205002123147657180463965271303867736308721364201422539496300405958350883439343657643100838965832541518414097087436006428789829315422920147197181874847897801845243090630145031300084656893479803281441647061185109917034762872405027419440218569468042146197594492012064716394416707315175852200057687936728533769373875521939361762575833366900081797034974794369653171626881164452914491469962185024263471768692406114000216733084986914705149946774633882293172466933690426530198723913250756978396847756461769500467876671397701215931878989204581191135797016804293976124263896903611890169277366244408765964867623027700767519397796885962042815054299376968276570741445285929269851425274709862527025971649009809965246756415527694176421863554046037961010403774491036078836336270476872078263018183254356887376379370423177041563253839825025664272677115804588890790093345870919631235506652615073503229350580433381763834574621067794491928079743817452825140100744372255777574894411360684596855976735544127905513153637605675552170755258022186600918275130877453679927120800889060660072376461809862158956764342861270276533029785427988469191511520455917727180197732399345481929022232702250256862792793967548953689882214947154038083258134592813395321613163655925044217873523010881884058557709795731349872760284395677619571778557331477624670629894171916031392826757546939386293564334150756224593475285711256552845079230705819178691825935236249649877618770153516120121524678650251273054063097453504595829728113549164536659060178460286817772151005247956781614321734698530050504247321086533614222132680877919458636006294098075124553168948755945379359024722943457334739502576079555666519725026952277971712967408837810591757370630978745795950991326571459403958644617643508919384048195328597960604960313938311205296699786943021274078758208278385846510518787033946710078103556708086478000331101340397569052142246943834396755728142079671653906424876065549709312264393944742492837693218545379601868685280711962771901098090602844744902067409195021367440289388070864430810794942039274925445714808772088384823287829194524966700878871921551874264104677795450429240375173567854747311588134634946536085242836063508499150346445211441053455035552852812253821998248315961291407651940272648163607462455185504954785902282112015469952841685692453828007008799711378662264845714025225286972070064209616610091217017857056382377312379383474601149979955163101734710824610275650750392402432732782171921156192477512624199541153306412215147104109616009387546494893480295092328776346779164674730065819639812533100941236586403880187249741211835662490852613876975106767668952094327365199758957078246519074519147973199239647660327176723575430017956148351488366114290274809113851119069050464518832006963579588522218973749060976648278346439345487861351277208542175880906444048331860998130640290568770108288751443132366085447687244412902368684518744415534829952597078057983398815093673973056583306984542278745161775996104332520894460410012358924033840504389784348518242239217643961335702381352972938916739922801421950448537752694856576605267414410603198899988854733837978893224214270891151038147904093224782985663939833319464623586627765052416508997769834965837860718326153666583519141911857841924088428059893887034362148104124566363658041411052201409628469555084468270545150900980708146846238438083095777781579048012204793318569906756517730447595969835968992960061319347645305826143035465120653444407569866400225740102925104446073998427022690040607996559281156967586208458896314291946465508137372697474201182326555303072370806517708407021771173756418399405945133287256840017548455981454812374165952062701718332710772211381489356752869207644344396452799166257229575360687830830332748949451629662677712591140723396471946222264316078898061869061228171893829451623850731604029315895603084464663520255787402966931740619618964422890213134507596725784667905700217054374641182733317919334363813797783369788048457625175666494422369883285985644938433702084789978920712863134781017837013838351315943334942713988854483023517155308020268591490332933762719882794386869827605310383575133422901668183228188693689867458432968689371450002646461530363392218860303935292361738840481890967770241196454861081010472585027537709556350583709348193796737409853087349380928798320450843640084906051456698989110137109841750192917189797895168107548362214960792671586161661019917619520193093443930586946385243383335092997326344242481944630505232703801506855337126194654217703246533917200420923148248002876982528891149038587117790683253560690750293824206174164074898737179313286435699787552148747611605970769332954850060396247542126112328107940253970170442336629095356906855479321737212137065570194077403104208692472077678782353658382250031443349349002838157180986901262963227033732874206732483437105478561757719702445589394116314891063589456111112761893532307863344322671787931914446477944311346166534144308810298976603235520334120844626141968373469856092409311371314719753437638592662112909962011400398841460791583383507296508139323834081380316658521776377549370809940282435470288216041650577612950021089323282198470920782173841383570952583516819674261328574949320035427321098369144485564993732114673871943078652474300579125742551897337815181327224955391071119389126183290350443680773639439159724798906346885033792769559780706151476531182508316632416093134338905509481786990401643417522660187557487166521205061308605923704231642315964544535239907858603925693829753435879693877142619010284949623963906668781960003455621131374985591381815136698493481770804392376838191229051199013837881717439776178804836010264339107284044448937588568386704034470438656184029766002384205338749104689524829846037088403465796082527280409490060676991382272008544556880415879405801162691885020176723153745269335968381822302535519067869390557196138778559157485604691340735019814246706686378677458040020733968683758263989889244189591709016842168100119638019590920177139898515260847195629939287568803860406793120485149395055029342606304774780065092774056163876880943184501974077939434048217960839008850243698101253811439788633216236118820147468918842970008258556040584462313006709468954356079735261127239923208521441840769084809526160315727462855759219548451053105798330988914906466678112427349492790279519451083130571547336542648146279083590434151932402678931429504129711600139407704601358629507224539483542353151605031769459233586562080491326782084753886802790743581064322008883451793790426562712069854065628158319102278572430135336041668804094487098773762316902737746013434607028719637786689711789901703705077532748396647849606361739881487296408721114125249477968901062342306968003860214720593730601326711992507091289662395293950764755100624962880341431192098229261582879209219200972739152289889025656549948646914657170451627901964966792891718469459963674076549155033720356416351904908570171772923627867015644920557902947534613308527571887540084293832868252292830948304705089552696502352386878152764260847064585851930465128250070828907425067982191986098955319449225329178011540717663078793097601370105824351877967436300222634945464022436564865253865125643825385165088660676776878927244844018598603850735462612869535015537821846395571432901370164913064692127283710577568809239935024576274113601209788630226334072078747450503182493929855975805501102856580757428832306823602240916936707343568228793068064430765975264637178147074606836971051526717558486580545172775537867183741858286147800334901082474633419468566272909575936961840250258711829220651112488589690707219700307491529370995897346975275314309791657022024570900132368972905274430963364084136010809787405948842532561682223512456285867958094615760248875311412386232089341571876831842132532043425262902979230412422402262735724474575247372509530102438655975569070054384695303857321099782625096679228990860929353918145855318827291116603807916488251939342802676697093051100263127110512725448687874800824243303174288875150953676175969989913954955708496758007501221963037782842939853002784051640550006024182412658078555803705529354207027251135504624584194365701516846578170622934913184062210836274524399341291314160324938766237083140136203190839191209534873646392160099879561289794941763439724701028924790457659197653523173705002746599013150034859557072528146087834158109489763646873892228968779864147689710836777769203778213932576540539231912703585952163844754435014512196113172087596881786911074947448080263987009724998512436114528794233271051759742940116254470491666970327887143338820494576446114434647711154121940612070084677444533828955213554845875900103922854752362168840719079965159015846882099614961938708719214192675361496983554562971226162143093228918395350921320416543522488799140981243012973921287222019931019997853521020605074733812228088808788757629726319254352515796971709799895402681927070116508692506058921676539517811734964736319156103179193324782936829720199361683767912547483340174775108787284057142939522828728697915933443760955166286780220409446457582895547586867419275062893665956285511299413823739015534296102287279049903422067839351253545183395373952172778926765333667803972299333461962616323393730309702830549218676313972841106302119279158510031064371605308350121215105342374456794767308950278702763110142676097664358987527260159272219360818022631221413667171030331496849223985702899704937697311956997446333956967455093471627154666889888365716170301875387187189129774336035533952923622613123802113286908461007626352446027632348010416631802379982357886173059173406348968620942421432268230148808383927158948220606207309659046475897990536394040828184027765562713895644789800535113330600541827720757991194162646780549282095004777962304139428200650101228786093301069626191227000339191786069901952259034884246345695018706687994002835696101207427575380665248018152764712339656929789204390056853767739531273613383572518609929578546104344351258364694380181571132132488258018726601090030545593739766600581514235703703455122213658861585691149106899498887099210874653467461376151835609970326446271431116628763946023051523570187264909875170194956778558770948349873065202953018929821463032168834723882777647748480666181598399404873984955592475065040229975198316619859696444824490899897495860781175386452180361305997029307839604184358946809282160035672860492629258300066253964401537068322488735947915115632433976190624033191275488177548948254571571994173029337656437104558559433901629535044745957203106951848304680768631945905838504731690205248606584080656642251685296714019844658749858512614381621243391825158009511745390992843561887598180146166603119750368413622980734105207111758060084804392323056262474473309208357965034419522490476825816321574020090135473380719056042768267736110440307220757068386224701845252995570597337613658535012200882298639865744270189779940395655779336937650019259126304277723121913162941720545595989420551596504303229054771774029298672448837920550751549169690241998518895860149060934688034228370576205206302158137325373919088343908053669715570296603011076722723064108065074914051105129530935822634642583975038663982091365503318691751866386408632416921387084244610746532991938458376946713751611132904488212366791705166749893516188066494706190984646770684753275893344817251008425007866337849676815358591290228751425042350256480656309336116744538930307989170701329907705159670304947718582099815242947541424306414747336995871982970452637515992571396654500943379367685935946753799370426047436414366824956975807907532743432828973028210677189924409412299424559655902213524086383136086821172070994430310235074866410140196702079289063987935437516072177617372908233398218725505049901429528619874587578522212269303826751328228025605470135848573131298859321832814066683347424476992299144709479361037800297379777089453295643357213244652895695512427324781736607843315737729044941810991989031473841383508038227850632982516477728583627618663546596403007662775321365830838293905893637282783204651226775900097826344220095671680695698058345927635184996169765565251474925511154281160679086589050104602910540970096194711159168545011373579448111772429110234652242604267030612690721642795180325790500928440656908749627349717293965764722421344597596030689558748001134554955113482361164009797522327774923851807073167411532129924167799507795956191788569373330182907053027975540942732340796977336332479113492613934816054659206781503080967328363489591312170612505397298615667392733621202998657347968251940713075501397867509899558175770555980370506572840917949629991880042717214233553591631517858187882717000725121962635853761127788521490086255300128470742223575298748238227349889839512646375785208483509376820568851910612702128469484261053966522183860236389399902374909354874389558108290642293487749639959876770345414910057498313100800523856589839343570736772328745847986965757582859602560841393994093887089989173055603564583873311001771502796015304782821104275013426192184115226640076516391479423080771810868002921478687760153224370939261846482461525314785770780981575717726330220123376014274072824724232549724561204263344477016854740852877815783588541919408863487219468795749155233843606686545544196449904726037590211872590606268529982639681999035457410240008372350087832175806499542640932123188482346788489072171598836886740707966886286468067845105492024779978239984987596646779414274066393785134177334941194165301735747223565885145844982293523682072871730755035010762627409454927162474625769494274726461840030330656042480290892092132751302450189845453362655862321238700208235528843653089894265178428230018075667269677976236879062007199938206646719020815683120868312811812770702354227617863550301408064772718782680647822309086988355464904000420295365453726063433023627943202896566044724456096690401312701596289547743023123202755112914106943622381837297594169853943394625883544949723678186721963159529429926361844172445406503371667787451155982300425047846434800603607906608838230218846414741231001563432185916322004256151540811114314067663334276623271685371894729476372355968638943594291813134992165468069897393348323328554185153774304336533157734015249329405531789646087568635915776339482572389898950216341712690407445874604517702131752498737600813210360632733496135532952184476503275365378054602639191549790594892349943377988585161899856655292921333253192564837458041897783055574106064834053807137570911795870936059186550815820386836720593448077544674694437443643139367025371247848907549208825327965584455469371563571089600098669778585088517997613474224521418662030912064188803153780924760900538854645986583670894240453945068075861551910124504677299773103353670538329355211687027655157332728543712929905308581153200107088704212397770759443233254322778515563798309117438811021798379972726226002191543985415375719826848959906936289255096706376561724015879091812675502598465445734767283653037129550324052312569810238451647899398565620766810444699402042225345250302388734366745851771485404756135858856920150265763293520754705413788970433787217113096165958857790962748350306409102875124874974234825613840530598164088546545570342503332547070272271470141002214333345138834845305629898262235771897102518724042821872235105458584903373547568934500869732460543262432379312077396552423500405686602267414198924106831095551681616047849102581880618236963717063293686574171107211122142574303122076096199539505352766931910005435232287557828199300348170370046446110300228490380332343410623911425978058901601957539517145902627701166171999215166330035372130782744224235377084401613558242509559593489667216935814552700752734920796940959405464432403351851169888957724574689929274237938514527305085656112198961321433528096684271383328918131955197337358350008597905914950053625024598065815495404898721129707084036117800968470724280048403422841003889441774773635629561691583010144896887217969598959414054836337890588262932448611688956738672994944870264088503462080057701879528138852096555273961008809418341748332395004027253067667232385675055467445427687622477437189974643191655705359484056664687448280053109372965271092827779285279879753164242928562881063905577347306925505622086047548370041660701659026842259676937792336858116163964473881311407318136947143971685519160038144320858023526754926326776879988214835379169080340114308431234765830318898613248531325010898747825173014580187252964295578496526569499357978657735608799781811875344272114592990670131198520875153235854870462822518765468227287950806184855177008222764999498886602927851723154000827523033780029484610217213134680183828178997661768518918901930668924512769383918825470819611261413281523862561780123832597894797381230374416693187468993763097330570281911755076406560302854357637553157170225263418783362086642885420294364209466736480879233389535733501684167775960019870327027294004371861909068226563198831483095908886229593520341883519136296561350782175945169479481609963778740949784031087898354583212520511237837478444090784948158869291426212935540304045896097549933927511006933180439095340059889674750838163272277660828844441503013596976740823145701567631601936101429163241915563053202083211415587065602804136113133437862850869930409526826521268249792586992009557082817884411715503168278449517252983544012377093380745086340395512634650769492852527009960244231994097362730295802208874218418610151069087974823855656594467837213665197094447128796072745556951370191497326671380688876308038404727997610563773464950049765143457509126299800857683272067041722786372035109901639468459541824249469266029058072638435807846028865776255211841282479358895787375414037311157133351970260641430826095684093834418067469354761116960815982255040340866348630153430411290596311832934916676036339803549604831970040625682400074377084185288031508762327425390469828143978175085406214928304854236948873647221007373443135847849535327452577416754365789332147819373751553248384954226148288264742086170811312700480568014067540936072985714583694816560816681683892870023452368586832225103112875612742963998062253449097750784356652691476838142759644623921366827953557613531416218473995909060869100671264101873365577796609651437060862501699386215252396242299630785239464108298336179167555809084036650642429191192811801384925990085764927348660438660264498321397412676661823761251494749488874156126314553628958640053151423044903424118241161355025683051007280881180592909778508053798638893737596668737953033534814665676340380428274194389404124966834020163986605339978657761673184578075889771368935076820332761279370189475059283674296757011759944343711133951978307825078362527719190752353469783773585113745111711039054421649574907091608141518503336633070592509798133858445443320293032021999570091310506246257425339066978294783917208806462039226135633770392773563225089738114582283197731582291188431449625519646169844074314780226491354665350495431607782026074888639466384824415337499593305616416974817072374905493474668586842613558215740222084115994032786640944967398859840646754967566642297690563271388957299660416450750870642960508887734622191829405948458077855986713009906806597688525746261653806267790580083023135047861635431155245778277901578678317096242669759079905508775257863461863431131888275761387657987169391599471142698860640800176045762809545784278897265179400455049065706416971287614290899924806803751689272597206672084116054243769546394219614970943823822465404521750947214086319803305962417732495845908188753659360389862670752787766997001034216619904815352665408935754340427999087080626986746529543046346429015701684302434693353939657263392953612374430448895403585900696917496595159103506215176711876351628283013762072059153596597398669451903287463243722931181583494706688600956676156351769305464480299440178635060858851101870728149304840184543827095558615779494675256422306791636082200018897804837882665576377203972319537162078838767225330319658126327682763174468464734182217299727232964621592171339010148367759776727936048055610466708266581553553091824383095700050083529903135877534102356113777423616385447011213085679025548946615007117892182496929232086270989186445960278329047376711654975491399504180822278249866219312479827021766533217309696211243911242158214814800371871966598565317577939744979880104577741653470898383484286446008774201538171047162326067169915109256448395344869688405355089070290252560317972344826088885504353459254742284872770831814738125157405654679268447192384961266988496433005590778620776696722218078570580672088600459520239841042360286073186344411703841057625009284351940225210844387476048346659696606996961725014597761282424382824553599509053046362746400081932261233689946011344346572946829112525998349650356614055105529452055902941749395010046780935568128102398308246228192988440790928266004318983709294113218696647951349651450372193109920409088499128018489034068492332923091492046850373026885528777571761986759269347367508263108269797462384586488790430132747134273313687562353095082266293816982942467685801591961266584971001208390372097674885375692118455478352929165312731077467451821880754980705709325648502318188550581738959729320749974097008351494694102249377656404070765911711225902967066035420737241125645152306970210107991290754866815983456666719919377885222219877790429186633088497620400979124215388051537836142762530016255567593311817998620751152741123702506301096912701811285476162538351018909842532023159380858958340650049462088041250741827404984117302394576846665298879343760422389004281244960913853843682549644983208005184288380839819682891366313094723105099802834652664483827676798531739233632565561991246183594590375160685986753818452256924189922771605957475688517407146393220908656886994121400332642008069656651260373593199043865915988530440185924427290450349728083879685941976170421140807863573190387498938834131121050264601513066451814348979781265401313280514077498291640539145753654318408609942949335504458982672851281497739837467446637614646668821372637636228453402946916694708181699679975335525017220632895606264826370023817833605637652652298853453528081102457474658086247228937421400122405214838016402879525466280831990508447014374428513502286640605786303584272907931975444909403088184691906088446355635128686352711177180771608680868395959084857736074241959647906108044940870787909960301734012553163355407096681781386655543504442328114218293550463705279735561370210658806742168598602818085408836023400697593661834193259870041673129625402637721576922310228773163755254433125257730079091252360645474126544156372090303313677386032885639708695660800713996202832288206257171324734607741521987191529268729114937470214774121655038902894054857207695636190921951859673309297419323925021580958954091799554487575481740393149223171959584672758614452225443863492110769848601929920310758364133757709227930853298431459420126884768782377341434078033205718580678609356137278300414568129880551131152114880145394116938695721065812087840154558073419252117287145526393981263365040871096753379308758539314556963420251481969434168104634770767534308105774158128752344139451122624501412623331527404556610216574497475415623275526793536291424697629448483474861541459257002106808707668106519125791770248055294946153840945893973133157346076734772348202576044409355840774210994569828294563883320772312993347982780581441434115710311876266471510860324919116282327453622327607393589562311930358342833293663315420309577776484229111662115285667083913634498063452318201886058854108556932390907209288823548317816036443446684088190217948606501493544696885525192670480812012258832524317945133596201811965200845598397515098470468021776656370912598571378991029791972442055111553056297006024039678064095363095404139957488550375228254085868701147020979823341093049110283288231505823172223704810020068888496910541321977507781200185993092145252341420128937019466452276718172046933930428611447096698158858826981766565829746310489906425386572942387210329114722722719947718620596598458552630481065307371307642191993458533887557503049690676905411722310342121332058834285317911013463246771680161210553082036544421374967858627323407771580983570194361452050617869127448159083892629689519077677774013582976733035463014136271409454332804687705338471355235426013701336988563625612828691845040124644732482367803085679559915169230071890106401462995551951553567387346144718049112013028018314338082585926144107513325394845889396518114197791717837172170375453856470916593365797810019480906061873501304010439438997981966963915560857058407985602534639267130909715726587886794302748286849031694876528312828574191431303679867779151927413125297424380543564685406042855684973056003632128487751621387160577693232332101204949265525349618754277423201291622983305239743653551737964019324748261381752391349901166248161382232459742989006145959355751937256138622111487199570192509290168865403267022519062837063202323534362654233684700322564844647106268570515145886467869197005251548826194846671907698111056091994613925381940259275484219682398561228969478168933090466869622520741720916027426637761322910413661894519029213347256215609034546465711247703556445376852214844412408672950594284865550367980634101437661633921437851571399250905282840299761644206083804550010740708362084631325150398876070473902589645576247677970993596731385376367731314008954461841214058025786744016454040059459191334384172176008398954713315200865541464418832366128617805375954912970255665642071325650108520205355520450677880772848871184234176514546547623431331595548690751963125213927425297602600518445665309627826251718618184764686324981867066994384623042186553205319865747477153912670597903983187289314844003389122866156272302713762090317109829095449376441787245666930108495831458999156017115314555789268177788790029109299586414001076237881458927012200184339610329743071308092330208636731431729478785804415506626626932976309190490422351913177577458898078558431186483643921029919498071181696335979555035985559318881079416550041599756624416683071571899469300600430689458314161276439692008599472009545916045324555144249108736762467326076955086112745271103672190981521093479305244688914475663624228313728807051037129813401338649288578175349523088887694160709652253505545582649695474216253529355151562150652475226389603691103147015758800515888241624206231401374731829652221717047957105218752141914090211549065875142061514151485695776872958379696436041842810921709597092874808360875651138575456692253702422924571355767566436982260825650918444501149783821725184922197454580298638086498151348183184363369134803533482930305454421450822509767198858845223581956438491133923821676944765429987954284892727729085130482659996319244442739971161313979915317821175141133810252067666159176286119654370915267652377359592040241177695363357172153479024987704558654599899245505123005583166242921612460702957778891926609093182516052455681355271288561377957061971011472797160620154140599461308733521255449155177017193401621569038301776027481517290773695777248374431494465949238298159270032434738192645411165229506793840295342355260994663951627923534224314813050437538452363819444515298424407675276389342444549930728941635406796121854228343256675882187211109678399933589574772599158885841011120549255077611640010284108390693290976571869109390710243773397253273337107339349546673700694978060697043488056317278173914467965949034055749882317514954358598658523325748194546316413336887691917655970847636118546971585410266265444383876592810519142672201846168896054879046522485950118997698987054035649406186983649726312406878029750909380095770866206747551799670197669778219482732655792824323441806263981616481139906353226403172146606874462076863013221553739573035542925474839074872314084977907939902983282398325784962824321385700604212230648512007472429736520507861738725431359779894695016188493463144177017594753680656184009781327568347036258044216636548419066830293669729481611191161633733081399666036080691187187295071759345565531433565225559754658889721383286947034064122905421910462212718773452938536960937215203984785063837110326882606814895431199529362752810405283039732291104549174891314079352734030359074191386392663916063930947267393993880445764030389636199820692450382126876307151887776537835296021884815280912319177412204760151220614879888933126467133887012954038247079774909749757373148583977171292597359001050756884396561649800733545181514123950663272688127404124073081864151892671659453734644469959535093345838798473274436471991171450548680732186121316761377055136722633833196136483066835290115770247521301574832802137069957735331486779480478791824020775837046540381620542495676345683167445690941806431124303760318199457706906480586153562415413561380432624421794638261825731515280228460165021940471438896015299776242982558396007064715555344339190185050090153262620229421070827813549097486596284541069561074292528899645622653258157237238177622775637559072680858137082288995190794023556286230155335516837725283059327156865852087117849985618222954636759809742970127182441304180990980618984006021897527909096853300061767363523172065561734569412800384570604610170862225019424864522384547792766308925512780065745057406554515503063915701013782798173654162840040699530686870942647730516571406515245636056435666875341772721061797626834432959651934552838175973662476327507478050369530944172545958056925159810110647292393286233096349510867910279616811306313136325189849142927806878577922843844427802609969472736552165150544482299808972686059784066908531844483027887554476055558936554557675819231799109046705555235726411946494625396969957646006482411369681998439264305349174819251497160181149938442226944333304335612565335890520529457656366096985590508078294523677617243329082473560339924058302182687600522472667425238805854642914610958201965531983391906106420095351536663923175779563538665685438326161976094967253337575962607415272083062734379167408913402518015635529664413116180661063306018862254919222525515777591788320327713321908728032980428992181526147864367209848348094152862865350143417501992992575210574708678259241996865742389530656983614843862815458465396145427439351876997938437486205478630214092182076312366784296020499127535988823296958671070747048837514403175482048009284559088060080962095740045939705978232723737513916813907249190417969035041725341494387780936467113229259203317909119302496503114007485489424221823015364652511508142419279148686386617379095846350256383703142405572772414297761883387133687344112356901094873466770298683472684850194104372066679658093035933112419472437762862825310964259742334199504902886608029920333538381190270019750573019138994317902325535661049127572649055377900513038074891077056465406811328606788239239210349679869531899755050231878694134254748037283754368990137499067094529233023004307489163846829458650873479233968410624194961204842797043062982445933345042250793315144492481463794760914871776129736100646622185096054713651272921259114718748087392646303322320279814124786113451948128214442563731426040161896409728967952021926644376680597664258705730486297768189310403269275216496162523840223669614855400586192172023552533065626682298336935374928219771164679951325012238547882159546927842910932761313082877359081437720413597035242049433833344106075384362654176816279731130615504464161460175281444332260404929196678826719721706501820305767051181599870207880381543116468262473283439159418135895947634323963446999244970213352744929886490500215285016361204836623284711948406040993237943210200281352227838452006033391948378565239877407379303466664670846841087563264517430406815807005763052981856327293391408228346693880673151996223572181371970880763364344402029812050792795042526755298252429887743716400582510112739576858759071342338473386312541376911251289529170315382886776149629082870545330270465720965486782970044280942702244299658246165734978834256202848489769285483910829951052285767958983245025457645958609320048484946452670753694865062343301734561934461472898157990349159566143470678926981595763536001622250408820221686057182374113710632943552140420802277969609466309170595763745447256764478177796918162304072468232853559707226246825705443578418430414282705588340285088707585541539069114388063372342019718460445344488790678698825624348111747403716599725754239763844243646969003087933229002615354940862061238179265113429485668977014950797184186492785447790374217443466885108489610957908903158932627550526563988250462199519449346467989590935389702639200934066471908524191275335358355202774569012795423657976957606218521619449435570400479592666909110405805185992912509699428256309645807376116242487496539001585511115238942122265185211838106110703834410587762399834680275158969748358592260836773730476693279083937536610076106932364678961139480468757484662671216400476768124898927963138264253640945205005365176972756823154236222734108022241982195611284072622997004558020887457865987889064387436602481730764916888630362366359947025385477168605817216148162794300900838995859322783923883432352105175092520148915013242487978250725447708685884081430836579621911099196464997725457058262700923977410500634814522388059838611858307531044957311920671171210967158984230505153599851301515838686486350823101418878814098988952318095326457048505615816255406569187174979977939491308821648929170009462395076146639402556367126811120362936193533902612959538034611272444139419342060395156535672462332000241874853184441855118641761821930545828261711670203291296171161908930627471670369294044570304188179332350274665126123031541697801234235530072075795792210800292272806511670659920233891140624540272554249486284799081079638510842558561582189218743020811858531230261154719193462913470362473011408171058102829477898575417017522281368744818978575659733643277833627053784420644741048803405133417234945818327972239798013301347265316390317231231261730756288194584892059665463775484979278392380581611607897057341461160822033091183054137681115444593192275687361908171453430388110550556460348188099516798001718170265000645266449620803867423016826635206256094851163043018220880496602131135659354582773463215022388973366539800582474536153641514258020417982031950944446640271042443636670402498143517695699676178064153734630880775831551638225247575973359724615890019873524285314468028881201198253447421877472303464322595699138243444653192560834751166635808490290618343280355983509889702032098976915457651942204912069566397742929859745033938849467540330209567821600142845710357413026369033266683016582166270153491461573844131247338091650564999516554530530111867594935020200612122679263864531210940855957090600639032486196913082349812900180529180089750228616789316515642493718433506461817832940085504073373035436739129920951087964164436919784231435543693400503694062376316223397068537370886622899422414260073337398106994648422092750790302093834885823870375911117588394725859267858437835115139538654970552039418191595524522406153611846448747759107203322756850799098811813581981659206112668253638531236792921989832962392939750400560337015566358861389620011649203327780971013546556680277419619548019663554869336370090095317754196925266362421765985288973234803869012323779051421210188547461782034821126557312821668429293686531753738665695346352508811549911066997637244385865541038860975735564505030572868527228436965562119284761199584731773539792423068869147913703679931374993174632136933051805404449244845010962242349409665116773174816419726613836069353322488647135621132311361796155126143466208079490141130473598454501042276046305528171350603483017522595742106385311043389002912857574793842336714194428213749302225492908093236771821209032602235993703496688905521730194041854159553380533040562720537667599781410377910206251709153692229105341929759330092036456191418155747415302326628853544295576480702207661168492269406284851551132245605471507467435221930072226855717853104768262393620318758803994199675692845999797760284054616581476025746367106024842908257890380363591231221379961389989333233999863172361089109298845218245030050934099758976524158614881367699980119726562684709859731033582405618287299602085745041936948970297966323260054758570030832301438428615630420250892296945231601189228527193747074804228049446383030131313368097516312957000085001315527074835368325935733266552229132455499868897332442082745225941861237622492047514246997218519231637832088254948547659403315511750406079260325586296699029264940008134968665041754196310922311454510199908032815124897471630715517506524246112349630702197834103902176544064691717401149190131034771319086815588590093479297418952198781820610455095716270988587298072586879003048041874469845484349268917819482115135887381836595703181405804389207307314945329697644108945188553021109225859778098495037737979405232008034504059011862908902371090793135180589057625925563861814017281755959652331154957135192191912619014867264546976907316285468084948643354817990654606406070835282654078964686574531984927780927589424484276177684547206003903928323060237305562448942910947302931245726642410063430858551577329007506901113551945755416309096145676611180476600993819183691040898962350656201619022016372774359395860227272290768261324030398480864289845964143065517825581746252857737329830941267970775773861228111963277116143333777283734706163147358981379065915503314240043773963951618211477246966445033630875018835300629618875633582174138206749479905526069920290071573231094322969872467430071931160599989841797509164181862510493317667119297462037255149787011159684577922737779748967092549270372877362621153659204737172828278489930947107044460348501347286831361182880038135811491029753574131400195926985185554711881287441287589354367017617106156771703066632880923114737694249665929225666422848558330254740344888240797219103832611648231298292329233792682354986298178336989594036951272267679471043071706982930964264318665113997203418552143189878568820606731477929902899538829063531534586460094605050451026845754478200534754511462048593443393739140188733370559505108672119369372763144127680111612591419204202953744511985690756993568604387209313158041461006641418748976559069958131925398077204772195479415156277145284323903999037676838319278469159413172274028279303231381228881268081387956208199927149569938597298551286187884333447672950338672854483723707005127583312505920380489681638994661587612383853546757875329939292390687571003629858400887330963479778721386498163780933550338581716523045340887629999148147548313139951603462162705444854020726268010423431646740671700561071097762061555168315250364753896754306422025955334763412124070697818668983596235258128518393429322544807940594020227535518165383678867313532726956285779781467269389835112413097706432201262792718954900164529264691928358665736548866488709022055884449231481079290301814636547229073453429079181502685560107531923625525836941893044551148856087251874391966135113646794406744146405143021648840262304331295863212509246892857880627627948934487344347455656540578064789572699133145199224483629066807193470775551056697613766773499924967733310060869285565076568296910350737232000356399286319732369591224565827060227418369388876745287977503851148926419349349025384678831617144489643238701118919996195777553889266704805282762696074166945251646361001290429522453879770174952597127665175196101055892660156991669830313927267584675792229567721442116568747126409467496603428589437289186047807554214805894228043898182433599064093713825704031255769183791164917283050547464888796792458331772714815042482857700627801959181503022235938956997043550167044371557701012419245818317225995354656345794628034572316566181051515834871101846480387091269305978762344884841937343667763531779385321581175522904385165511725885519405847231090418858685295081178457277327073895637370701010218857738224565206370304094957276806293218253473120036527729830876325769636911452834617334796325220364883339096057187988185257208967443214981043692024507311137088285297190769868619700000072696985071285420863312264101304862538452164826087973179792583218646840809251621389491577146790627991859701524077645068251176251601221009591106778943267713911629340333536846938413334038855890215023627051022666219615131051339525263265196847236940975883991200777375945933334715346119533627598279742174196828000732114616492436700832818561889622402082785717494465164406011034871785053680003189884381920455437076697354793368700437734313454658947954596468322767743099042038833177997208833411554926491861610823075405470531951742343868738866071719059760468466436118497178591258911926637493291984145519279358906714829950393505680646422998857752794647462964151164822384776654197206503248060369366409624740360479777361359103685909511451170988267160590767719159430629504585609610270954116147860920518820584698950866706230276684857339105842321472309106180507534959585709548358006523228995567430207849094636992976190184934611693300457094943843306485360554727007154368679439832954224942466540839946617415722829656404022262806482570115226011041402889697329508382683071133603214077778691176080165114651252248462926455564775750789415422440484638008672885547152928318860562679355686199796112332565499268704205204111512299719855422563489226549817990064684560603356863256283561955394181450042365795127093765382429040859569802599278123271781573279279336357452941334988425819314504455914395302765309831147137048259192098387099219342150322069968768379157410602209987322907902931811843394583368786686586681036614536190694227141548197661178360460386741990246478120516322287389223375541742510913265121396534113810974116822757596995486284528709765821953326243074878915377993147177922739004148314640811912903073529600691451319751406529374458099629662848469286888077327435347426760903386307590556227431137019169916625828959193343117788057787904938151993145322939660141626788159896496777700498637070468969026810538069079893633974631693707196314242274904279774909714462568564983431234749502762646734883993614278691473423532518603007778594623563401411917699102891102758370519141346439946240391201400843821284772613062648036949543861800138465152266203196983267547479533441311578708264995431747997141374500911027923860600103981995350811322130871881063529507645845606978484674091195232600230986361390044436390630242684068778078199055782229418808357779648774862011795785721562874222876387322153994466833052009852200686845514039987577553441237067295126269455720260085192981567225078457322142869360017697759703861764836973432519883317090372798570471184858038984883864797466174887309925989007334317180131978511755538695915189942169818888043722690215129241692917240821268422801886238774894169456347944898714208553178237386670453232000141796819904925029021584079358509960735501108546513215857349230951076002841138438974327711307682956313699458778294395890696745731585898103748846275479224580476759968371306605643550209609280424962828468793859283722398217256368490093228532897363712224339756409097353901174275800905988022415316897937667474537946426991225423072933984742734323032056138657322163908384922245403868475914989598958840061442430751390844705850522399121090444595892685291704077442046231930751718139976789933552415653204896679081310007516290406885116429647115351339332808620752138431159747407088775446805472874514715887389936853683664369040123385117270231481464590290483147543502070740758014011550479673870896067282325232952713231278829120763894832139269965615297239240226786694988643224249085542665214770035881159115243455872438497291430340132831638533242236630165569230826596430345508511234866212884895159789466670269966631271184205609654568311407726423109308756228038050445020975917253982086991150619749686019635041558348451056138381652243152250009267053625581893744994966519504475767101889339009775321281254568788721536915245348306524137654404514286106375280682520363694743956074613082513634789755969410893315193685733053455653333307459241907692747746533424083928597875302057671644550064366540667944982732865068114062028287496756365465854878631979443911120793030886428508204526793127711320689513810756521452469029330930038197828108707740964651707249199547403114360621361101633987111709523512362733186867304056953329297453468636433022635122686742526074929767361785721623807816404347149475020345518324321049429614595425857869285094921849342712752330698486522071396057353998443737977227302381530297000285583938320862081439814173662243594692600705476246144824751473160000133200382426826109110147321477902890509833727600642628070115471194420094849633548526775554172645839625105445745391200539761858430993334415849741662383730337694116486933875555288898013217022623770582664819685706978195883904277545101027390505987547495646333920042455507650899879779092366134055305436058626385783631693293115930666529197861743501614679678913493859874785121198328016955495405315579654955056091530333442429359354802856903474144381629381174324053576352234854807815187947460367573433174780951313896756017587365285577632006080650452664186613607391451960060909522612444889787099220340297167366471447509880606972829338710630272078253084525277593802168313668317612188674424728087188766487526285249580654615925995096166950576896552160836147955157565897206440712302880646589695148776231194041739651380706847061445596556329298654940595694475820076059256288169982858685206118427803837494233074388220326748946927426887780441303412762771636198941953963296228588803414783562701326004200298698051290960748298402990396253375418065893172701664368367131461782898923515037376718851693261240137535764466526606498149230577711185114427651311017876251434689362464225006446618595966122999156661525086723570360590566823239732153569024445455246364939508402729959882002066194513636769479283016896560340478111713830609415354511685984713023672235762380337093581132023508433128247042812852647578275324543965921723465822745642090132897433834768468861800734195213173640361158940693613898369814784365332244519831176876286012128586093135623152664497778243499317850783349925318932723603697889518312440353860959135513818363630894242401632047948858829423676773897401555298916774512098376298812264653495786894487619691165737436790406194853256530807701039039470222462129940034574780430236681187559566433672181198902717468136968296969620586870720172029303078843441029269734921038489813214771713441844311437617749906458531168566028724825723319262058111177428607762274792455423818260306272648592684597609304913103520410765457082931039541856604358589743568335163411423370641611619610541532045189245713012619515164403567067645539872948798340512006100377299064949421072456745547199729482749720856770502293390714541923763602854940563994323921037543034929632584416221573519375338403187460765999729170018201110080202357603793009738973943555517677354061678341458350830489439935237391719221672711565435256937475151185756155460287672205243414354515578831468093282722585595576397397403591378522280517433362051197438564886929175836643192233311584661759561900827035736679480703136812261073603758391675289722605239177613952675208667264129846031316761046779803011701977347161519115091882641523291522288196294916201731423531231910022061562282389461711003440309766695574247633290186454614427361677660421428373483560082043726951738505513532269268692482748166449659673214981952185413785647888396064500096940528526952092491818240036095591582624816925717653025644579475458366158268859257031815917115143529718508340575744106371657305792125626882308480814339415893163860948961842377609952719482699351199403434410210443289678345902355291833295069953550877676690132576681315712060267909725323092596419472410900306289557763564857093990896212787168158095090828344542897139349421141223626779409814174534074050665284480307193695069877285741000471538146731492108570365666069575599267743227429090104539549775954452546333462795894802939746909732391041903564364058443671277968523686484301535249018270133714871333335158376883632011139135866607507389967433035545252184825953754474548105508828472432565448827239403153143507697344863412984472724247965940246986676143908679881340193644435672848931121988809123998065659182614956587554022670585496725205452898242681097341718867358276831270054023043878424332219287527128210873256236516287492683832644930314628111243605196870537859021409843219558610746668272679348852778915907958174607858874710837226770317533321267237884653617063859807549826726961482410643608650182778593502277857053324423216057966464012745990145646656942880736350375463797483140112993649619072008849229049561055906174096822053718752606428424721321502576071329413954311859112470287337682877860544647868673343976607343663206149820284318731232271678183306663253026299771488404271620504349342803024432951385408809955064433074216025755719599974589364900449776067050137444984447811405049405627812453882117755884726278773960329312250511202174291084089698587974341902858890177838864591353559983607351632227182721754147832595218905238397081796216264985550617462495254457450459708467841843520723916751534217983604573163329065128593663484603677869769856361564542909987858951563222115735795769333109005058850085702527402844573401875602369194503899092451109518010277358634887633311075557234844179109499246946004127568012714820489514204289336053654189786326054516501159669060695037451163427755961597688423182460594723506539811372007056338763367896144031490705266468092092790567159590289134927322048798590018210130763510607746939950003146133974919276186721547145624217219000402675473972515052123590331293407316956387739558731858765612237913867513094298756194341683438743738134070463923283868625807068124106568298155014689489683215634295548280049704414753945319666139447584458853510732867078296819888788515462634428067365923573225742371322931467096095837529684586498686445349003194202376808656742998774112139910319864227260456308933084740850558914734545160647181155738288542148558865008825747345106519910873236083128050956024498835979433411984218433912504816333262251580311631936485989192594020105480567088669660081549176147837275514985530939648432922979509351631458041816112696659770368561316495269253963617634411491353942848653715402816990198121381570252014824414960326717546309618589817694047826953687912535008722472896033179423249886943585108698182190442633350226587547951030589509977299413268510104279101681026747443437991839977797859102990052424828089662910634944518505353182199278972831430341039268757395707987182139200838248731153046295781410765887142178469496820148995272707665384896271055233603055806310234669677523442332107784554586305774504667461019998664279881347569417381177140950711728933656518524141903499908790631303857080250010575892610714284666060722395244070543085973901648698772222369557431525374083065787946970924188872766415269997568044517550763166235597954761288427331917001852529623437260271705876489193062099961502895366771519776147299121075374818389040202011356986583328657958367399604963203747464646265810265783229683783370125197733747575806556786711730320935656613279395132777760338512811213565214805637215893593108117516612944651461781764771443147604575550854356105043896708492542764435896685042215134194044391902444359440541997393984692619835905897525824894904182487232176714591743464218620134160982123121793105605564612072341086084419122137358010424988448898403255670706553252083504515331520013623179452109498727174059705908436772217502545929644575588388123467509563540809449507330099849882552069456062279895725860300826071029914836548642949517209874442716743213439188320466756804462692362431077503223429918117950954736131816911463614843693570576605332245302122561992826251785804580572487021717005134485749973104767404703668785250534546854122423985962952235915970094539124800304064212572325317455892213420062497708128250667757789011124371047430277736793813284871933003493493807552523565883120031871272794289080888083664157328653424431359342166150679417449644467216752780641853841929145125883489792023014317158185143738955718359349228101254663112021484323861883201196861026524680047385769020145990141588779928051656056298453135468258315077924380288800341841704135983939585178571176142842346596194501239102998582370283765654638976497209616529732863046002776153445936040684191405523523361224839390920191174958903691219621716013797713211178834500629058907370236043232532583332796860039803444055761018951507011576980252476756987733628751772711783268788937137529912992493693247220053571524779229677865649747241135792624109805068297268289226864610328312706202199531638734877308714660464761496191888211756304055480829377638256778335974947502861338263616514439395705994983436645965769937923273751165266273416019209309695697291405094026829663157963018439722964134013990042925831482921553300358538466561872613835767526812222519587509913843382687597659775789631753351075736053946363313688820087824610763438793536675507880707954490505112913939924610695061355348913326880278591525447989281379634404390504235094465344341191137926213186188849922425310402209864318447078474515573909902739616715194692883073020600268390066082753219786165930315073450880409350800303224446778460206066020124948128705427835041694294373782449902400268381712715149080251834832554997101607756853399243242697551402677244879197623511885847779511464978395672029810142854857540625214920419243210075389463737034024189158256560599999742321966523693431969254864717112035992449143925885277200821216477982619599279476638188336309776831464053806403684127893418298540827935068925870167821228007740664565132266964709591672832189319767085853487849301095376413067558127085172926776016002029429696547180565984134218652251110615672161473604409106613747767624837699678678518655539298211759306998420233290868662816114088105977344451361138314049626478674458366515949183277185213517298265487290418025574962397828899378791068043271367048238728062200091897674114442144580256164771088088939439881894855660210345855843472831297198367778544494440891257710604475863052709783958756277668755663751649053536139763468065569234130209972327500220753222397678968901479232785364000058331397620492924589735751478773870286610981152954619678330889608517790180689320851788568734353844061100570621830206520534220952345623221545856713965600079376599570189564326014318831546585230944644190396462134682819496477130347065973393361371885286794485725797107446449480706401879328082298580328097667005217119697470976423242840704143203025679159879128648655286628220572865098347109593614298666640776708775780661446018279479676653271407976032448671547945001685975093832525281054031016409579567718166680402607508645870643709436511307929761150073180900357853116131214762669311589547330179724992063993892651494478093146689182683447094552047252549936235721699905729447229379591850383894756190745138257269399796511735321903292059361047107253102286068887502220856385353607300600931835405966011882081917793689643055945279143671269429922573324106489969505673534571423393866417095503557077292436389298921151651866771761054505358830859578021564370071621276227941849973814806308595134204780835775633613178447731686841503797500493486932179194250226245165792929473579382874402510641829083250276437506586531180722334136391622002520700356080748261152344906384317898494805804773545599649343767897383064504368716001062240032463839011344126106041530490369825288584923691447807062473550312523280742767588181515971071033665782990771793561711371619394924080775051768050101980009122051536072430956498324541240194483230476414621728633841548094003163681155022055616569536720995590737687442834449879544780466846409082571376335239472224806931266254321965681807591191291354609739522130395304155115285351039909326486775815316765919796507535601519964271496696728353142628642183395760537324139357170363608437660065484364283348903697557866394554697169439151586964058368389000575274338650005909936472059005984447996558273622254919917646793766560997330146855197771178731621732650182353729776303929390719476114747343679341649011752080736048784410380998614734898656097559893085993221973793470506314845723558824100810583106136483024068090884613505934635034982527368204114398994137484770809599436709270731326942721940475507501393042809561305194371728195960966821320268283204677228096475635684342604178274023261456682886667827371263496038040004484906523928640310768340092176174573390559223451539445696125095451430738283409175510183418961262601014825070878898887583163549637329506671618350740461629473129936674154013266402203044074781513661573067759400892541399596393443541240176485963408552083475584237021644004008512870617770259962157044541477319869892202326218634422804322987653101842929429775446373775096767019015897840967382964165557371988398219342101566829774695123692662917391127306380913445189599269463530467734357499764496585074559581312953910091648535086329736799435112196295445020957733509000492563750526733035478136341386653258742390469280623399604179724316482516987282926011099678422831113491507230774693333022442293410996777123213509247905408825389291998182903908544863023978028681884949907552362255759250530934837598680680041318377356814041053409558969681635358784991529771383716569844738836560647475037691499629711510017770628739863886424357747250823734535170594664101285143580367019867104431285334583884911334893717908245708806877454432982982613971373016447434565588262426971539084501545897623267639154278208472753171050378006443991746560420073339430290920458487305495944158455117331836258095775348192929377869218622216950225113279378703993872088648408007897553887177608680050726399258554238353505895961794714864739535186026064465682066238234998571055103313882350124528999727387930842951415899311096432669360632147191111660752106427091295231322815036793221835189591984434552500992252912656123554690603912082655101939668347981004713149040260759434985444688991811619421553648602790911819718040054142148947361993991439578629712561521227717992190795458268789490090105649625584669491952081255115284655022648766145653403355615976432101357221293090413649620220981522741665465678779890486433554635028716340577078222146956137284214077313654574059541483758680079627580681955021115692078262093088486889831510979471485336892746695722897104740238818177524608406691992928289057152326606064028387525986015453622777121007143536978449066953494697241497543104043295352631150927432599258754836750851904893009827509554422306578666033243069264884803036651065677188851960807153349681788838695146853232191655236089158099772552289252517283782437448650985769708748342420100197858286775090890082332216909170802863423088201174027466100892294627085019709062893222471225891571682700831591756744264776603522363360005280485568789755523030351808690192424205834490702889964675326365516009331975779550758247898995573471339641365920768671327693337322416517518193723959238448866252337660122959147804129016951398929420264247241411355779910862708045885126395339965777186522940902584830863492783066682100475985066161733837165186887688101426090610921745596612059238566521535587642385884415195054299572957384361091731526157693228648075520816811300846016312278991791881314206984505135944356162717106659873097283618554225532458539783082017698246114897701587842468879463848869617653432419115541872101944268046434055008330906317993259210900029260216300250553999776841723945802148470778458485790473327054274974887420797027150345176887105941469733897632467535997527774098113341844162525842026185858006470340734784177830682784238339944244292281272877142609281583724808492724120546107283502998222646270226593688043636514903271139321026079018832440654351091375960137676929856488442286523836701405860058643562112224614756169191552865088281728538390303172828532738772121962360683759421232792212881683442837750895975047040513764600643177292972306105457940756829972465839802090841369081624558727339006259284163442082604758141046363909096686048450666880658401562961241328018153674614454641069865559502328736673263911047631700122431999498113552039427319115877715559097877660216450628161810662402802946782777135895953380864114337867154776283841401008482815094982404002207951983978043351539775946209459413052246760473869990851866001365170821331460279982834099989046339666143368026915612036102954635578151529701905060416693427792238103676960512595428967475558590304908249996275791991455563968480303342295879444362672118753810641676680134655016184821522840678832660584798440012265143663812134741558693086385881194885426312114806511839472812637304084380413981051554938437286924583427459743100729649476282730131975578235241818531375526163132239901755671747876812239488004318133653601548794261292325225623668073030247195781856417387567110809109812324429728124886436354364212487742829211332974948277421855782781254194164960802744482695567343325172573456919193284727208423276067690167921503453760288810887282386223986347231947031513481203611616006438733473026188292200812442378001489893285998461308819566851185671876502402966323515017943769595227194183071711799112761962181604313761739030011373521179768475947179341760786836759518009161269028288835330226344262347712861777088497755987132621713904693323437576806665458516274796014849409033229008048523436802090913733498526922659927570847863755401191087643754440560163491660398550396800911721087938177526798382237231829394413447722577960493710730179865776403563928844592322459557469617264446914356891903724291193690876127060053608925466821805547216498469711325198135362303838413605058027134213726149625796528916044207255261586383463194838085736720668565865409352494469434340534413496137393852833954795305497636116062815149318708194803081488801154409647046934313789291123112219649664626035598738096063630793818903138842475937788806822983601788215619798228941948921936288379087736207403945723995087163596139175282289061189561891719630864798487588766216596343965721151784237782197479175102125736694841189440135167006374514992774529724854607239858725378566426256823163365246749079991074465841135631849021551742226789480859633841250534341168692380714811695225570988669752311539367049425292750330723513395309963067589284056896776599625124128742454098085436872532711544820819828651767444272670816446212256725982470620494990737669034569227625461680733895126074015518431899974979613993806238616607215092315220896953806545983774595831877805120074926048003639137675458483881869450679295931832481555162643473437159359842655121554236734835987364130431974328094089504255377909125446249034600568109389146697491620259684018289933428301117673443648491597847183655778534795589757300312851984605691491149524479628950018027201504480200747662306497662483500409094634460747318205727357226391935072935239275537283782087030736629049106153152802975863639113568699629217515125697589534044388162218734681501819326547786029683011831456519108546124323339283205661192716487623821174986593945787889493269045212969500425257863913547735211478082436951758305380846041079711016970134542636584483134514705873471551119662527642217476470875815527418615938339165710379633511996167642697737793967198674341644615585216761356735597002458416420470849579655630682364643061984903208769117524687356420746411791838319343657919301046206227990627668794581172698379522828540390673572908176733235430941340774034799719218211392440760173152487365432135055740101830035021411976083651406437025211906522819442776259659886140536329379711195072658922277510988343393008653475707299016458325155034275157370247898907368229810630999263282027881075353415891264818593849729676932497077691641575733913508562947604719264631737247848186619881132016257639185693871575651350803483336975502315180527810269952551369100488194874560803280827028420179773422956092926506503021422961942418357525834260396797445821953922966910391818552499591317274071075431638330362481070323848783570469424877453565432534573020940690969705080110056947767577097852199954551786643915009156917068442610732233863076325925779745417508908719695673198364076352711799947875025913538467447441343084826921876311356152025309361616314963730447196715109989115402949119453731692335366916593389530688164080297457563787477328529371394160150458947794205160822714711625107310927316476365948419766961191558142889516263701671424557841612216849732976145068944824089413406232811802507680704650007403665282318962684811153936468065735008472741559737705260674492532907449459484382698464124456101420572327981653047901353055280426470069749109249169756533966568543802267992790920645814166388984621215586804378980169967279387299373017354880423441077677109684294123417150435113640166297008767211944359554367593608504204052838766989369701922189526484833008829017141038669378963903781986258840982931349411437020510352238406601163054487665894311668736250312394773318870607490272623261380284666415431202524603759827724366941112269147837410938689621504801610135096918866018596412673730265675547074122480798779465659084755593830077470549318402313387287147517254767227269411747395671512631452567350719150015867100313901222445344569144837153014280228437770778529580401337468464050018961664112883246579264004910277404256867080294439355967012237457777708580386710875543322123899844274539058119157283255069290834849130123599986489622484161457145048902026552897582550510451055266947800010883871382341591704909776040750792084276153637399459337813475107281767796720045124673196681085745199314312963332668843234192268312311172297018117800516242171886496257174232993987979222059050966900523025232212904281828733162090081311824193215288185230482771836875046643775221170824833986686341210610108283424636726013146286346230906169113214986713750213982524266593491843235170458298385473454682171461940860039228436550650040046445243810266363208751253170051047477090132355994966097903941908035096822059011378935692245200505129746103724531888951412734849918622147772844796765764127758620295410256275112047192425230322692504315586838625853008096237030637139772481170026985340699464177773017790600797373344459570870181615549816791307159498593664599139502817537631226339034944314702204018744970458530213024608673405967301331879043033435657075067548846428209790302206988843141214850872948285790359141781689961134389070160797425261253623412934963245267804635833665446043245074933240055020818471345135329778928914280986436846349721491179881881666285757458022848666622277163707265719144010179948989371783062235855251592504461396315013970261670499776075949355309464422319484812934485157043040946267497905370630549741287149641065487620765107681678629512262911005209868059251786622393209716048470719979986191462305629384290584250556189607396642504683954623425811515990577857630655795294792774362223764751677978016047281020724855827765777496138837419789784407026083947607124336418777010810505342383410596815200362480314476904116305882654690436072197443335594613808682226735119618395188557384839160796397201653999246141592615467088243649326798651867425384219707738951567980641786309315610363186205262022709472448215175906176767914326979975295300673872090680267299157205608215091232462279619210963528745341855947302673808163931843958269918073313066742145243863998682143172396152918050755866478299471922051177993896974385852874155020252863763502131636988500547603567406958070962333460498803758904765151908427516883442409080894190070661732918900846085198372792405128940079507962771985373623233825416021440882291630071915151440282271424722564671910362428486375801041557893239441611887190072262586500691756455217122340407821770828073449038199211661458694830622144560904609882127408842311120700518439810001817785315738394960462579446034754013107321615357561243315461597168391434678131856954345574008597709915155761769088648841284934526273374501518965565512119509053322743706193683968773962065378438178813505544306250802425543188162663239294147005544047817538763171837235989334160297259805584275769428849432511854214290126900119214618833045554138838785861902042267051633973916104512539678056809787019439007577185585569230642976609223856207237865285972076513322085403231043045784252728009455565667384622789382555277243229845757696540257197760989413634636642649948620538560561626677970121352878107736862096143575515325149707362622193351868463321522671696623380706218609806255049984048250236548052108598579562253752758089074339734893891878162151987822455491413052709565973066311518321311162930599392510699857192557346705444829689678536628405226122301012376555035367251175597964671546451225242591912058875114363201248456207527029472853862187280470466830496367251338829941003683086381433971462984216003506404483130448329217133439422745392025853767002289210324094108483515200115108921120891996318558425775825508468468424740258985267263081448487032149917814537440876403427830136462320129903606797363774856817894807172983266106869144504786610682280420483962363401429934640345070200687412298028015521884776498019371557917674721209542910957885345927530380982803463967835317035402893549547552459790043847060684699933332131142072033071154779236285623772746718351153194020318085805337980937848859358517533066477007713923874339006245836493213759545604440450182058963755662831840334287572297991287596575378816768470382419260440674508548677217769968494095804865169665110150740293282992430413981118520678099874159872442616390834774068479466250081196823132635440623062129712001790455406902235796327184784918410236344724501102254773598272886010937245187772533007809966245279024247040981051057422848595450604794109618288780391195319322301399815208459362917560735445322751811671752927661479329029527500797227506572512457621903051747809173197500268659509257938621244204041875653826220584528912899101877633709463639114354248072102249948068610272905007441372518088178139710833432526371567386930442959569689037595427245308821941081223971148272479039594737201104151246584552988138788829216994362811088560066463945893292480526783834020769416545874704313360389736406435663554427954062353897987313884795668812971255876119731776484567484568423811385658469820525015473488969178012592298195845272389638748058175711404094320746060828254099121274474528703044262283351343632257372413015583448673162901068823481454833717995123304217846610404560915192239083077841415822497432681857027359390746646071234402071048408747747885433908786672574073690826225261168665994145154661312256777633052847014196291557517415810309259860894745413559392518359937382111597149859458967132033184826723745774458462038905729828937242173681535967875576924828225036906780923651906377943661604275303391596452946003979178722704332042008840905450608813676241671025275406694722561370919789823879865278551884462762212784332937968113345122421131231616158199208780956719466283548709096674596145009219501985683144089405780493164005183368874631996641447688234917069927611521475803362541125808437376418093262751803448452835399696380343255124242055587187313092349459719759417926203050183978712532315150024672521319329771737893689181978555011696837173322396515291398435156892967495929921581654357695454556136050059861865379009285680190309023395213412919893183582839012729383298607151298514871576332076530400518214121461516156468445592784494354063725454789563769991027228213722828035730542420772292432066801413909002449003347249706573770467832850521614688126614964150197567361576657490178953711859521425939591179717389330776215272661358546896846492299729509011011905696524021278172589308083963356465938425834825185917678888358131169868750306151818401757227803576480614126352468930404656614993727070087109411631912859589470705854065671053782017954731817858713131461079413736475928607840049061925544127171418334611826420483827634625340314248322487012524502112955346602711946010405592415014138320454953488830859920201739296359424080958869500447231376554787339684553464531177408640103661332937086882205813270569565202184406170285062213094032995906142155900554344652135659270070497568610459674639283156305478032684711439418072084678859440177488924402869022521384971732425997984216775179920085051858052850446898324272170251824927009123413856665333262858255820713240833937593548877026845627009267009890716030908984145521743739970521401000966984922887183254636329278138003737923782457366006141525286641585586469236312680828323345955962357440460510083854837783597448772081164352986766274685165571714232343679858512585079470673943557133330288773098340318627008396421987294093734084835816124603994058839163172821354615011952867059187085601339275872620976609916810551833059420731175430088218892581750508602324726977777644728790744223446544032924436885296556446005010719626591298523160469200061047270215569357095212509236230956307242631556291470347372347140881916285967663730707068767299200032506499755473577449886743134643169879609643296092928354496981366491745320865699045673194946914380104839955996112400596014188194867118509243394828278129219721817387595347850296075875896352720823379817397953664489712836273283574868047526958481465368914529851982220901144748248631536327386964428227988292227932131893900287593122653776969515083576906695629202763581240776360352196399743149525747528090074639758702317866538431877566132230575800959898531994760209490358175608613382469438524137052629837412702427270207853429402821389519583932249121992229748168656617802206308845185646651977974133715039425799602534528699849902486418164235998972403281047675456946833060882401100330754015345139722193925073128939431263048054587493254773958651224201983133740942951091963835356904688079993549073590123960159896369454463327671408832697646584571997959763604288027641518350787272759454696161593757203533071396311056798183869786699184503358238627657856547340824142379487835222300486087031480009822086841990990316654669969260031141626067194468992515776577668060484949902805964047485922532841606861058914358480945015504246353347674782151168134532663440640545401361325031876741693286235933064649411458438942117554637322118928194780901994955269948801863932079629211265987885832275005307969286244041191515101819561011246281414800456024291692651403831667844684590094167970105503039189810560714084288581340622823436450890971860120978105482288719084833719016548354606824770390154138362225961374061451388958368446108361518410077355776961478259686203040462939486405071819181180929324011645686938372272863243048309507433105916720119147143776320509904002319529405091284462932491381175396441438663145625172471758291542527705299695430359409890882534378006460789001660267287790852813315175762494469053798875880439374706390547987722250907880276711044226473210447494680767070762596892629716684972227658709344265161696302612870296996850010586425570643667961399737232453052483980289094671689927087588711011246322881698904684579876333391321368108708689576184973720847351303978435401050952025303261515495763420232942338199499252027871499375796973502953090802563442507307854830785549152603294966819554591557537865944140010209538049814588938535537767066108868040713578567303917585515790015462834986709137984741769224739190769394259044514410045331351207654806773547477496474017878150382084777438921876229331277940657379156664281619209614249981601627237386075666600006762698518513094388265237917332776959458583806860187878364311686790466477583798534368059179521186122697989399656091785103935762554442323308046916621651842092803073336568308793182455782769215872190685232507327871718219469829265490055471541585694536086890104602908955552474899824940484878906557590687149321906301115773950781063745433803402428377265022654290619837025290177457059807007069757852863968312180455439352304634177181558731988081163604894341226692895202643824785831235153618631764718417834254883864503848496920706751413616998051679427352594852903856388191026744061078847278255544074905923561872534080211535566781883123491900942554515175249899976148863001701570715619602393321482019472280173894793193754510997952655770371047396041099465121811928845034411707663047521475904777463038856780585554664465072681049740917521759853457148921422245358488313758467203762333332600790738623912729092339210430795355852783471464505138669891125771893518343877532444400886172185300825498822603442906211429890400632718318772368024064120503912496809212199013879711421188567764233958596616584892518902846610352155177773069605541593189793256784783085580859600208250930163812691553673109684716712811115853258638566491085634582933293255091896422537935156887927988836782220465086558942500973727568510155187094569862742749352998007591472860307624946415540073077882301370263436664364953267820709184470771588174782930023776933069966088933202379918396864161961468060712115528107892458937680322660011493450194712306932435389114723015719289203681787709604961462902559894395499203189647797289347441499371394900858795407674514178960979907937360253282253529469883852329026118050385659507228057591898237678505189564799451366317840659934597936788276761017121493094664336172920605643656971817783111275403973431762092203319181056713623407927843288634448972487947067092857993134851069072264244240206246488590544566606596792990432765252755421519156338736575260684241756500766982194890101887818925756184488486797018624638681463860139132112956160991972346887468856957981130786721349679365308230105047915355877658740649164085483514860044058321377180865308965428319675625842143307693009484833078335859529018118078153874641528737049339442485067337805170300903650777118476464995349392727037221433408018363011838132691904984300998707189728060345244034928699161114857436704881470593731001160550632658509749803911975561368364684840870392407362351042806660064051967953947505420774167017603769305420273352072731934268086224579993263556476807043081111602909153196777614452861828906071082453060226065791645318500071811180390339440097711469299163109934847047571564561530230421171018648176346290355816906510058881564705065663159685830343135533212887004863688871193942612859307076252284964177579981171633213685028348912150345923324367812751434571127040491477217232730106242506833688735321642606030617515851082258921358390779647855437045140193661640751394772021562127069199843844905861571512954214518624516411298881047526714488260274251005809053085345935862273450101575452812419241256992781438205905773581963342418767200451062404116655697446275447963991743220557376502228215004705254895477334831304270675800060580512460391486382840464800257990440928997777181194830687745239778031777659297819310765135810467008097228737259270248190480988457633841183558793068246844687106112849122978972801141518842909423564600377951277671966152439076973910677043815355979477580291682107163226013558175277717737659760881574829473160047666942284826030270937829990704685269145592335102528267553108702754101690611243115973618434086653829794961039425406985197229169723089677493998335960248793391312784635899183733663100259074782429043517875559141428965107863496169950300930093679522448239902918215180393494391141525209717389046076967854585362097061158900936294261372439992481336478578751643515594224991274292226660807248973072181353125665393432195064074693450108799375394681271127470472204683999111649968725673515127359506656059727017311516850855266691005953201183527903000917988768649815084712255131651272115730358003679952498552869587344577634743156506631050485578064672658408153661620001958104833083300668040857306879893706608195020992535064280148102162722709767421134868210254564297542932344015956854501719957243458293392628179098566305024954159674645315790896864364222221482764970717935032176794916927186472744300900715225496023721501564400216143214114215820341066145881969041721712070091613596568601941410472045526913138822233656578607083068676023566478280275709458507799045490955442835513126508676850925595041729263770612654340831723851426109764219654881802016560622664642310726277678166379612834051396956490033116837258542053728283324038798384729339649244075562747251225253019527278275867559310949280403038430799056765979571277793878876730583354786836884810770191762665197892357375599411960286687858374623356548267247408301581157447637929453547216715662216849201415352405754923732203409863318627170397672032515020655199031413829489888041022324774857424392237405483349653694294682716322359259090740545407140413890690387094011332101962453231070936254056623140527850125658394586017207531892441934145651154194214042316476457369638642570698818450093245893604228005480717504843789486411094707438399981499796704430414725252095712761546781269156868494858124262939956944261737821055433450701904079050965798042008692440456705299687364254022482302635849812206812930954449839067049807013657462498940656074335846831986997945696866159140315320677548675292449322531502525964442886780681404675123785860865826035072567891939242032440477288944887880345376172254661408493054904119658196204630533437456926514448303651913830741879358037952291629904294313955074089868621975081710125493198753877008823201279751268786988002752398286091011271605500857633456023085907649294431285126532814640322620480338230679837649714932859498859008690446074592405939206235982432398914874390068944706205851883055944132477904995222214039227603670310225841467760984360353381411400562295080603020041875698064885007331836494393268923001229040370035643184678877321106463202017642580161688635864088903902758567725316028223230334724538235826577148590314587948341224307937861262761076535334284574462547358512010623613495554085515603610256570364888276580237046442207304276511286587414126958708149677261761589244646477368469431906979375276284777884328850703428562137839710101567140576810893835885454498241888778845915082580978828013242158090896875523791263939092902912379496148566356587432317737731527336758385331722661649605255786760271600699733983605755026811903120267855487673344588940088158467833383303405982319656078217667772406659015045442894867165990514499086294534404084709121658569337045119184348235625158181274224984950441152169338928426978473394845218218844539932362895011998684014016570508280181784066529582987379295024416980875145427130542086791523739739674111964537821689205900303519788041140692075088864525066152046778574073632749648858986378952787417847596172533713061323907740876019076862861483869991611864152703126745775012915019378475127766891333169688695155455210431990677401967842874143005705537145438456498218629094274859736608625827304305982375529189129377508323082466857333176551091033691045570711199109425368174656848603280681293149715739851828930904431861036926326461167694323248007949650052975571551182194254380748607337845331519973394415874257765099164755002145562195465530520107912603114943750621340284850810547732687969304611846971478895389721604595640475198424381634008118933665530512824208883338930553423393948685976195321561394695722408424035065665089113485390470844964751454464809745372617530121746022205128107147125106858980458471646422406914745250630318705976511047170253187724446085749562854007641968534421148172080504742991150420379588268592094033858222060204463772398159360193540537648152775075106432638080516191222121834046405981609938191658411241390725834738131282323616699020794383308538261457435252356553086355564845165838840857979084132000199305458707586765051940632071757686417197331409443313253903411402046134331667911336874073732373966333440822635944246969546704438345255168430684650083131412983914524394660336912307309283433158000998107761505618489786318243873647816156458207561288468412112315365386358705527948449264493953539355639726235178709645183586600920720580641703038520445789769823402586808549130145678324207220369997585314558947454253783256628494266967056307594490853514743138501042993322367852641692385061825341157761124536096396508129980150639235914306534976196160220985762408832559117522214371585877945427849792941485130124336904885016825288522807891940459677485890318854378657001047963932440632092032686877732812985988494894623225610343880573307810729281662646949188691464845232221051481166430944998019260560324977921713268241131659371235359280528650481308017091012157425252127105332949657932575042099663157817774105303620862785246845070572514939833951609721683721786343421170800972401391468862874764498861979013946667772098897810340233042418369009893670321481843106615023121896963157496047322083119583307496136924995555654204611084339723370160492410579477508730928039066817092459016079053961745888029359927115827268019147178071133202837231443888423741853358595129871100387294025022711690689391718208892291337494072799346379639011664796645650919454267920407612308991653580293693378469290681034162740601872262624733667302757419343119652702186599249163270515501234243546759971082416767302444824346047967961882848904562577558663152851924898469772723180653483401374377596540148807964191906199503502484853377227844763653313271806872059259155614428758923758300117392864674751790341459431623082648616638067239382498978542035783093013516620750949500871855304159546827348729000967210993193576831348340052158229524667287389655080390286553156124906229942899091546062946912965189080137611200179744792665480230336887364294293318763208250191560842633365633878236101647687814517038812383152260502859532903194997820336385749941982737822186689565059265590557142446222872489837079615753585126023161388050269990592474972467324028126991723321849503462825238534576231837125639709497943709621181653572777195754730127644268996830954582869074752112891943690443036342409919044908104038622345858028998968949170353545057269924555490835178709581942489421772947686766278811663721594253759315467208029530279019565384890730551356245923380817101996869609727297296367966801229276070278062391261389370285790029780233456814774083756932364460205680285845412694850505357106708496512965175149476928322460545509830632207631303620713801232649023082273902768259268222900441506846650087939355283182226624131687668705152583040350812303947371970534562521445753493394780564139585623633362352012224317069620234209248612906258832627093693534596866091696610578934149840319276902244679250537076234336184179067616645332222922926815621394620138648310224565778586066142515370624679389038951719952516315108617340963006597352759667643321304408878456891253402337044413441184014127478931293559051580619388509661252648023713646064931255453342452660256111925178965927367513783056463586126883236272601665115030831469879833046921244422357286553130755005708634186923875882886693854664615246523426119975738258226465501738453139828095148245139998645962851296070665641254775244265994662987074067710732394227657143798318531214665427909657793509421958605387155724587844570099718800275218828522348200330993176074654777146113096939283298563123508814799580338801721393042163147537342171248930189767121290876247549328991532336490005298037283634264367454228244696309555734992331775912316081903104551763561774076444806481964522103481888029708307602113827165947472703926888041350044296568318496892559583916163586363014851383144354159631740466038192055989917133700150731432389818438436454752626180911778436903779236603355546102067586449668109377517932632658237525003767285031541364083157021595866863384587253022587311774565035149952090033062566164672182689828494120454494792384928192048089671553391575494731853932379039092732209746771314057361049576595600039395767909240335295252488037323091838022251509771771862822169330319808052364368073271853444244669460495356923308187598129709696151051487173583665350343845396514638655806485836122060291384409380800211169671128560174609973236837856253183510726150821959805182296554344008604076710291821858674261354993347145294266130833585272470012586979092900172683408473820587183178737505764432395797520488447374606981399616523236401927029984922467668748611545216174338905310092242385303192089479968509903124890182841962198211234432357773809316757958159084208721245870518572456373224186734616479767087951649900247427674071569692236877298674520915216400727366215775527069924653254299077045416472833366345902029500217429327511010724614655076569708966906333667927542057918569710240288795461444121201127426128194184996711192066108709470346440276745959966735895562413658649925699783710609630944857358324670757472473598077074424190009360043494699924969089145638202756719003732664701074875683311066291519642425361520932282565691004963001149625311006426203587529458865961792959630807156247800390931693020993199586555201832196550807566250915719200289642703804129231129939564952423324613546773288312608246989168486020612688449042328816832261815502649882931306372735886036349695048540982185564976604743784620215102401913964459141964368140378215050041491057889652655298509540808661107061787347724037713731162540606971737379212342023137553987663992977801350281321725859143743329880613262566672213372066469733605459223338677310176983124014845641362219469711518807887817370402278985621615160028033392570644436139682938514234372036881991001679612070993925845435811593541392807078079721453802721605390710701959697254976950535651987485528396102521112092758789855775494570937896252992356095780066856559956988342915243799531189690393254937793637280858805618423654525781087817934077501783177528307165053738718930698121135650332676087903578334528086336776704178015936408492803646739051924354405645009131182506236396182913972347755956721883608680127419215022749313926205155399466581595975342912305640620744377671767279930636119649127697186009149840914835491378539438896538883096675531232502891745815915180461871153845929306000297039213392008591626748252098293897403486649271408155870477881665359502341439282815554959704000843201526182922618328573993976563603072934975261493411082794496809901718983425507634162209755538671037075871799249539675971461597352747309103864772236290030880556904234331377598569151962252801732513400191646857195571025738608880897171447401385271943242719677249816479143106033408688457887120836624160462701103017321473719606425962143369008328249722234576684622575186114194096904168615440088136198406894907758587451875165558694514330679312383492871847973775223942306948507040289357153276736120949452941704068165303617589859683097131154565048244416866178074937230785542816282798683508352206932219470482936014485382614605107031415308984657258660489596878985977614250793833915439701691220012961807013733066217518970606983681293871090016812381964060780465178591022658663539041336254668818557881961726204546775387392297927877988531713387006214755087323171629125949511306629538851175063651790689392160600329737704160289330442787489214155753780178443569224671862496473179917384386481730657181940099263352908959428145175615809853818753061816380645206454692883341055209735598837260216888085333810557621454202542868120180124878955950827917815276333220533294720666254652665585053504338037616902068723132743354275211714605118955329036257038043565356809608682061301521350078567485779908550361404927317798309997359515043938169059977538484029631631460007441511562126909196896508676170841195973425306770659469413858662586301731087329066447217221166025893499212574172759272374406447417360606906556516426213285491682863034436925832328178287868575860995661928120325963634974936520649678046935467464746357705120072932423120624944907323317030339216990008575561545141103384177815944007558404899628736670136793237676866521409969895126667077000104454984779368316831787457356811958848474254776198930654093091340758327831925523263255033919380410548537894554681216343876442979931066584540836496004602586491666844572433179346120808576640318807259437044570687325798927496602847874863420782019093845724812557586341872775000655970966639516191586952968589839129500186267456773953283927993026602705152738058440995984622429570334825189141723443891996004725730948569259445540623373635921249156669445482155088250621846400842398150328138186150155683321167746564451356310188352053191471873385293559597325627795836652318324542849108656649731763778492039519380040798980257172315498065695855277169661009036701207386724138590715347327231694865008920196967461476100767392622223382182302895573621107514714119900952658311935247156606051963557867506545551597611004126253822077992770624740589873749260411786707231803918660721198442361562114758798867680071094247394995041656711285487737657299751249388983557744286933008648284919267552043199546697706103530699505372530477258721858660726965721823918655847500546773018382491140511457515861633957738281390473493756362548665964280709893178040027993214329610608881141573796185662269496660725014766851124861977702127799399474222155238578571550070012690824379580878766994276754168590419255577615166161768040466551522627797364880839474104634676201270185222285849551682670187739071743115894236149503256655581477085239329566076352573583788492741635807349877851840438827583319846711863904770038395046693751772478134512282931048595736861745091850164234317467015692495462279500483456350905283510812502331115994453225850830246929953648382428358858085455899825161305760111240270887272746287596014312527635415265108477483761822109449729735624472229755298618529945130949565788779035826550313793487098360205516835228465244307953410872305855885258186957528609063737429185862537560524297226277853596137173497279687174224602787641829850368383829800259686046281935097141224937026345115022749971869238985232617322567204069639572424449584166543849644590245956874524759952796732853592834399986860568059456196872898679014770571584046064784404093157328981256415587353156157636155143842729996135542020449152060213188116349963906457622074794668500648363119293158762840596006091397927839558887599223151110183688034409071820451615892013383375572370276630947695468879198794819820094773199876351634020356972448565666396011188029588893351533095562320465983248943387889993130082490363113737076642592705618274880873869199158546434993153990624345251680966996492678481014071474564606389724845699812829075306151951884621374814208516024527775060178576675645988798230146751677797974118896442748752524247013463024622298988816230743558031972108842018258089827096041472167826781157054551076846390211799817785500043635898376359111394908534899467819399061944159699685604006253768284389219312644079031012790365560974915777312616951476040779183242258774409881600988057704211138505711846833583280434037435027205571612347994803019996200022335605845892839953385919754543074515205481509659469354157925307266950165266532675819265325639030961176241437087772479924722445990833545963152190077935200310396395717985358770131427151806338543689069801129882983789254202951287759616077617779925459947661209529922081441615229530603690297041717416861587063580473751524055318139585221193809031494703882673294053847933428699530541768722799719619483892994691897221639863267643409708038180096011575746257401265648918980377979089144442612304279595068631459125704616598741111460908830014853708620669921911614071417772831173364621260838892217774322076734338386830161576530305252711835781598553910183918859838248581127799456067416677650027930136117774509499244615894951608346504607169557562638872910595442591201250822512980194441741186360026368872125033735573126504272635499420778995927966926795474546509030456310123482344092743192705052328384808397820411552823615401326733822629536526220410214792272541896562402164660018912783023239573828986477144128437708882185866079919904490678803469066093720837996834654125488745017721669983014141574355742631280043297768753166439541726574400081001424001833234829079066556158160738763894831568653009064668378065964131498750138797778422791760980866128113544666648064979587870028016414101160468788630431792661443112997429112285750207437069161522481215122498746274580556921698608727246868847743321480962480113072098379494068974809788632487494427063111222005371098582808530943958506919748084879640161056113787167231345907923027811891049240752152118624549713102514167636953086059641844618315511525139319525086088965190902138056003907745329797488695391793618259472853984881485559399414288183697358243156572241659541851458124423102506228866585367372532345848120497549534254129261260076059269373535431981701516759104556397398351917556131682515894736757281967061584173046304221309401702307521361089011386455382484453551453628899164720293688862273941286650421549610853215974972752856457161630454810123266981879589434791671876788910407704774966302250792901289389428160647522341700944277977476342389115840644744255631509836180737678591874246359412696417751770426243941883373164214894836604797258401039744906891592257110881694895930003684199104409319242073968114823794096902775731042837386798681169549732367013772823510907680761163891310525853779355001233777806795921534064492676700429160618785888541604545812327316048959845714697732483391444215094320812439788801513911277154016642584983131991844066967960097082691628548572245740936740100590818725615486062867494277366575857412550334540610564482451435326106164167772303128093523358766132235730346731165073895348168818800312868060094729508781403161555125420285694169155301171345444777367496101730532294363665073107547201634881927545464744015083151284746130242103765496501150776645929150529195024278190347587244712147820396995404037241761760307179318843332987838187563459776428792456617373108075988515505337155703750154898544488294200798948840961329425991744703755905877957000270307091462383467648294100620262559026078180948036213039051742366628594051812087712034649954523855399035167877645875151572607588697639152979855859338051144651354561302541036178134653865684998308261313653252529430843529498013494317516037865689570470348570646878259924514615883451620887638316546882880018550701534494061600911786764326332350750236017859190904372066429960573042197083805434205894888351232801717655480823762026080708643750493593162074953714625329175967469774852462594353448506534096362138294372513925748456930201690969476332572702389462065841545100474179207289622022032644143423247308070231403528073292991240160214051524767241073028032418964114076806258540818022773069739447431159689219014209234173531872994848958355879916437895190506664695233054070012361599078812735295674377838983188386718590187098748055397860823005743350828963658585676649860817661926489835581350476068975025505795198128717653646635068305977170993301159717872115341641937558488212094940795989517326700678176742189219900916764334026105263203908960794163798635195705100242204428434616241756283448712701956321390395754566962537775207295816945267148060704047061917857635370419855689438863045934467940234319392636181392268779722351909876660478343176234691854420826583079400965106924097075825142122145157041160133868372856605534497597671437376259690149506021057873019051101149983250467870894585582702412024289165405970177034693544865845452076998823278333059892217874246240929625879209992939701556115422525647855514640776869539228854669766783801922675679042250110426572920676956330376896636463074165625207278042643363730263643936480431754498766815640867613477222192328775311099298821103424514496473770748571779076834490424568311259261846847064720092203212918534373284332263695696616667458139203700934452216531370527881174993485656557520176742145966395781825693483883088116773876113711806116470875329185846068445565707941272973621142008206869045060053299504006196897988200757172917939085061328372771910455941694029271940336118365305202246372331383656706201791156912655110807603932335861723203282145522296383780203812659262076948399617637611247631732432521459606237560829548048429285788480656694244267350690934588039699578239144274138411746133749849946632828851175075801494023126190730621575912607210228616080119936173443033712948892517045954271220742136854296597088763760865931479905860994090250556256868598619391310058103596494048216871879630199893511309868460533423433301925516426680372181220108220027524994384256715114226764945174125388157689947089625894454156198461493246356207507299701670663126785176365933024888437716035384257296449454965780418567239133070743391783713017688331798744662786741043902620449155184188026389616858904551470188316808833469214558881504674695608518087353847834121602449220015974531051035197816239334274570614093822744077950604471456959509059306927844132226103579196472624561206299919175370834141434761054364841137468796074194564296527047930676231873788828364191476516533319566185710163693207275494533806773108963914898169573192217712906336624742111674175124985296589213092810198460936928162943517958055991770476985542466775987961541864466501486476846920622960562961308468056671077750519201551321145368552867478504102332589534084003971041098868006583153698904293475889123486589206255699978100423885377330747719413248018078676853032532135021404714206805586351974407089090166097984319560065832502234488098713866288859210252395914784174470332012191195880762984190951000590192132478021131796555299826817533324921449288738745102197646780426329011722600199464077359378341708713743142971965685930487507560414273265469450382152118527251524238853108818500157910821720698750213964643750575690613469720109859420861905664104703910500488012935324745385170353449972089417008888111908076148664864445305103543852289442930732558278994633982590134466161148903260272087753912487577963786146136965350566749783572342277229118121711104574184993160299536527365146690756955793813005424550908008999092485036422712103105512886693187520415485709058671555325393187116526615112543819080517367576803283158357512779410038634593283093752317278861282767673628590444642008530337334824079606280960183165412164435169954254401420442488407990889323119517426717146164583782705126371925647137128645428318425784427808591068185813072898621637547711235942746917790311204738920337935433507616432266820693039810497951274976826417408383646107489926499778554098808475445709947363160054288549528978303426890901376671220429303325597008100488036644284762839870887134174735241319011468446879893842090393572877501679343150878854942985515123804295635433092352614036213656311538386268837034162282476192867140910069334567153069307597309522068080773626757146854932664869173718410719137279210733907681485747304227424064777855750592690170695042547421653453163066364704803512993598897423237162630665648767615409935264123042434469015369608405270800741590613412959986772798072849156531039709093956004991435764104404662909915431136042839334699990449027666949025923715041971487397400026905994302189365879082531045514808442109186667472473031680823599146336050115497683298368883153273218177842828552443158598516415366133795735892962860451074102728009584598492739645364539214285507386576150280937659510424195631666177358649610907292453411696552769720889717311231611532807767203680274165392376708761524172914359499698656112448537599274513295534502429656370749434182757847798066593633670271381081627686936953830184036592194872838370213385462946840645276294495292039582411685714655310104160177932463843000927165743837436108878118663787099454659881012914663841992741883905300071343791120223849790301929143763690474915098348181478040383422167612005502438171200905837964940389910605753149214434875378495015902733031900020405954530732654595573994724529497792689191046263818542558772008378077909515525198530097694472845179419515816604738885587382415984918004228616609975608993644239516713985091805597610969510339448904708149012844059606194534541423872063140482224497639815480315625981662757910198812614509421477133350937643942029327126353024702569200873349360039895932040396666254800110922090020720629535260015734663844689220150993364164574610856677654789952588224622697553058088370256473678013958040698528901612069158994637132805793137777198468957624892588788346149183811058811690826614930483068194356186712058491977585451729459424032169154187929590686211326005001257186981469120623332931868424955389225066565408517367439956986458728757023983577200803496247813046017335256259490418685605930816039716602801670209320969616036311633872810392784490479348881801935403034446526903439790739200075979153290256009113791656485546323780775329943009563749383169198909472102641820411333570411419306801484194565053746299327763208506280301696927074039289519770556322194585277237257078699385549686096736995815226293269499831180919406829558747568067948536476455623511519240417227035786958579472793428692854486273845328823832774048654299285100465040396328520641505907098701789870815359684094712709441000527393504098834498589286575078485916711711759479064907415784287002057173001831282495860083060141112653552128506253285706122366556835278192145103857680003507086358095353953877045001373611380337653549823101823632520856782023425379669960511168416240722999640517839111952264552246305758942523361176242610233959122771480217527471183249891133926829068277740986281459666534969713442775787611167294320799469983923133054247353234271368039731339243286094168976958550554563835650131252789211621577535195419340886832458885421499956643613387138898760456692797335784419987262625289051938241105626349416443565261971019282087539969314942092021744891474297114125461121265483680194259327375334194312284489343339586938855411777162802004391068832318511037284311424630709482174444343329234987433111993480586513663128726813599201343088543136630944409769731243666883793694921250118126719029518274154105560700111649900830694652336517547787131680447270766503133282977795805275137975696456669646388470459694734599164222706439273975880411317978523164119186732738594896262494744294988718274261227122801226839219103492719539334355757987465839727290633261925257202327969541206443538345715883735354536741485112048488131210883581585951923709124543992123653137830560805559214083667074756446953611950705300955536991357962889463427758822230024604008852684244361593538029579763851699958072433927752000679162217457719470981652442345324893199493660463626253995180180967712337348371672815829647771352217011478696750977670388195123378791317048558612263331957288480470680310141996251072019057042990892982111152743801739770731130696920100789871189246587824229245128073786371190795013876602475209367848319340408399393559364137821885669582176719188004377603122879905005776768650380523272002828771989630335326316149511854254878782636680773445908084089188031633184773488543138310437588791604597516972780454466586896342919183881485818929494615845683408562407199496283509424764239360464576065782459776951380980538120447060577153634989047892676908033533576015109389162645180904704211447018368976033564734851623613811084910234669102152366092035031634312190416478589529334165081678661674429891333028978585851302597557590180763889245220315475790751310380077737901992805452849957329779478053729502615394155889022096611747422292074722209839110668109982694634410067902146004970944011176013589242182063907377459409311514114354309810000996387069763866520981641352155161734379600021793792143427973615668583374067709326605687498115353086825716598425713200838515646225674092292286832005136746663347344266519159395711860115226092921248631700498518769511052230340534171448034133842878576590955050172992698266312798472807420488994761841149254798744936992970952792891479448453031247035640039529292257379352490619136755135521069010121133123154371814149536615559052041152653705556999559925700852711437115359324665891835697917213661269346534105383830350440095725059395445390931578002451099945782576557231485461347008133045198243631081017021769563131610625314013377263555567454041467702190254891871657389880281340246420408966408124064580999001127043107617835221880297681559069727989108604711065629582572447730459809361094842064456169780456276852767386139967708639831154108160754233634184035129756564485060916141564028486092888364487460747513072012963002303076574895410329729856193074206934570348234256640695971304996666280979827610056731767729008009710468151856311342680782838368879415617651761938697013091310425405835559106774866774813773976028931023058205994885487688054808500188336449599824025525326112050540705068854736521113612734709027203180013144981633082324368331388170468207708457225743497365446645484903728280578928985891608041624475286349654310887335441561810366950549031895065201314758647175171070652749409403773815568182209334731615339643647510365074654739305045459066359728556836145395001313903546165530756267159125325583987954807055312565672988780104472252428204135216603689747461476273826078701283169830308373672607619395444953901450490145490935325047903521182815520059460071587468603394058517879353643300477999116177104966949489815858265982443072980244981994929789862852407194299591787641983567609498431036252282671008725947090668869971640819295043111447878463767168261077316998832678433047603153530956444261427534712360276927868750535093265829797942618514316965728690228241492895654214465604169587865733956201330773396187461419341101122074894781444356974168719832191318441359959340673831966751540208684136479599916491204380637477326551818218414784321407803723832555635259838849578041238225256666342116949741729862137806127213153810091588651111472142856661844529800592868331360468774709455344739430790682265199625407039492308383874283553514292023595756791668608735353811113008454820639175177845670851309413896578167903897077036278268098170236521136435102383701232777592926166932552111665744189196048600640333267482248517194364589255904213819154597183949972273799644630091857330260778983981380915645141382135526699876427846100885598208336254812411959483752949245017980693271952084989862483985791209422957112596400894077961558057290288002807540383868731023336578300462587729334101869810585866302791797002581854005138392590032691725184999769096439010737228143299027206039067497636195622207523105106403233401099149774263764372138262733703388830401332846480388203810340234633762285473517342347866904336545832214019261559101292774733981582251264114644256153271059869769081760656444192658706638845928630057926184162937748549060014321038102906111780813528059244373303864634504216858952034463148757457595744885822312770092323081364618310305967966009463487614689166839820131290319978507452837326307782707957353884264289102376500773917159939398385584365278955304368042723992303184419660559533384567643611788511778024915263958283034822924503999797425920826387967448813127705472429261165080246693719662302811832098165289948495357526647378855028038222550072646299368712389804287630943911900745030271146159602049207501628863561322482025805617836430759869177471206854504751777063649747557642787585590700664439786336801385569056242369258472947712297931408712638414072091531834079701925664538132946408990446394040303047626159385912132791084139894024411216344537865519499425959510336903894154181627119655667192254461307051029519607885147783479915782851596265239938164027741090789400980600924168825726633219423774613860915876267244907085414494899628568914012463434873697228024667415523771518938065833841108518793341829153265688740948642498295007254485909602812201380884422322382494491768584421547075075767171071263016540344383424954171671033213090919174666733384747020406958497942467620609829082878468307650830342084474849967745458402575814284213567519137050189706276460776824956235970706781256094885651968395150059022189403097497339346819768904488649255019617694041206323832234240685334543091579122821419494237818241478409984493057628277762867177176256791312459269812298493772156481680280929575381311085799623787785711876866968287041944516103638702248128615919350553360325688359857955655577049145640506010439412020657843765452160884516311409073472196958554594592722884240771312327675476944967737826117741830593042969089765740746628456637704114309199549982404280848280002190282901487283794011909834349300964015095198829051291604820399141104514967478994568914106143696318437996546986495509637969538568475540418288485516226175225076660011123092798547434553169010433317163372049262290723033835292079159747076517055932475709742515188166639115838267369167366170217353035742036926118938268397238110943799974516846930477604175653964072597861413356963958969790354808914606318104504978482696552042793866521373925232079964610761310779864313453221010778102032288678733673686727122761209904344956764660846786514645340245663853226270060584381569063930529337345144296524153094554637621991356535990153613673396460548450547865741718300013792477253717047819766010253759607108990105355197660001878806420763824745841093761807668362083723426263434835523071285184667734221989586987559067091603514818069392953403678942843113562703176821427106177412360572905204292950017205281291659855372656884796632606273478136718440289628568585940823645611095397744010688762330291496899675211881377319981924323044914128700558246804427711507780259972609596364290663999915229814942471948614421598339044654337390267642221463103875848838387701288540693228571451351692270486098433102246450230403893046569862393859368982022201273177554324050313841924846166382567711644711000410718008000234784721237556070888021304442417220793980195845410629389632690637422990921997958486412256869303858406343041829242368722326166401694927776827304343330223392325948202130193454945339356596799596230880914633143747527050285404801109012070115836638567104879451301057355442836193195661132206624997400259297133660837124545729206552329061256676459188563617033492866088270161331030204488342645678459910148626954059558683015159375996143780204001971483413212025625631649918523865004183064538503244733700536496364292393335762405162446357126913420243892599032142421737343543080968107429005545014634031933277465779245503080462347227327766335099187696545355276356825286688827663580976319835807651686505673730566745274522284898654562645676188315300685504848579031291126861983102046689739354880314451260716253547622172392375598073133088278590498410744804471762571969367798357110381215220537072215017342241821357546179470256626385522504173023920049647189968689520803377742273042876694882127033356383653286353657169618557165695761370641107824750993297401972281241899640156110362475782237394445919150184280997428779544834235729995076377826924760972597514741799796606178840849271811894137656342501158567286164776547848336042455299390383092495541326455059942892413407441519998971213213207406817614273729431588989316137284236092744574360112877098051287978800261278387307523877471821433022181213887495548668882747785121133942072741084865275824974798142111363951618332096438055934721108739397750094640514503232368505136667307268425483318239331039061906794032242718883598064502585756321422566892888374547673689370282932109755654097954595052524069206250429088061638369132505688563577713500864619406573753337039896772409433029649137324774855353594481774053034762980682246243458971236378803008363879814013715938451063275861398671673312364970043040030007094051688353838937902640876289886483563613008980176189461619005511875096779038103567552418320923202791828605284880783926669441336207423666556165425094965970149285083844513843595772458852054334493307407824463507389272153586880164198921826202992642078154335462493019127382696958634914217445643950546930115638402466759116387277792118337497779026394783643875094759421974077118424964658623853426783853348977132987883307317207875150119399946538846440082987229501111073344793172033381854799569396456420031395466889583903086513848527205815265065589937550160690142272043087263719113873087881154390456865548514263655493103544265732731918116389950651549005206224480712566124730157058536406528268730214681225792756843471359980518753942211686731872856057266339528792231549804736459667022672268720039691870812572482514114668686980669080600301026205666142053790660840203805738021426713677036085598696598418401661899674246989665075169844594110723720682016852504786592042678283620546941667978318430338789411043698397505350347428398706848101536034816979021106499589895181407389448553903130839002041070076218238337003764431958771189731933833231857257262477297951731777909734235863284626987915842988306115911168106470692052524548636677903020447478925500031437820311706455192491804117891502907333075952038552114319834869110227766855172899225647756895234730674082670584868834269235173099031972842627895584426354653340884613528978303864533064409676322647733617203231194265422203418044174222827889268419937030389915781780825994617512523620091187536845831992776573016349494824095547377841920102603016434691017442854423640025336714269672471037895596110199908662029993247359215053063770111084305501157700500602976502801659050266474129326266430438677223671628949108319974655203521342982585027336229264931887540318477266240934095420356104632858271739925001549487202039075890214896503328363120225347323152329390224608213591539069435753261494984092052522022194882512846508212346775154904671376419180344302695212804484619025994058102001229771343812879628742044405952241501163611134282528840777835343276552239797573889227334944717746788155511404618367905713809615176273568705814845578754790723460507860769852602975998811795165930641970524648289556458272698332238027496139484176616383738801822365877611315784322960084451688812834566036701233895319152424481563459576651531740509471507631038135225297831515598007144830875547518769392966415021971388859708414223592047375370095514281568129468688432469945140257751923554810392406843241378409327595875720877141502071921997341307133128496660450386916106971994347965025047989690244158657160842576176054261072033761595640560700595477094608761842487211580750599310296942727015543563385842935249505273837930498442709915719540235796366619279539724595780474317343595531012967200195264876781371212251382094927990944055559116021718789475511466636827460747285305885808133674015218415468702253902328360628799387389812041409328870572007593018370363795711245555798750878553060174657706925524624244813335722916557867155602902859520844514478368753016203140185089630594508112159173926591212251496116191059168926815732170556055558681542178170105354725049508836221985043434603579141051671209115239517949437338406294205521819381285363391715725038001107542332876989369918974555880924875905148444214293263801941440819868447652339984066917278336558591811255406654972305736498224199101510583686826485100244029865026842851906543486780387358689800815899396523152644353247034648879184474551478830084219993884945986410931347943288742595871467270870350857173497431298658642317630987849730813584026827112059880570616174403204330317358344953527993164427401736519554414661597704075683848365815160754381381379174701065052202219333184461282682680418831604703815815518660072899316456885302206782315734621625908869142000773850372165296068780145111243309290738668644061317947002234691491874536586512368518335320180589380950759740393462829808437907751672758988385013672553889922249792494737843951506153095778326824310590658896660582115715564089617334032065735375209769065819247630984549419654950737410405320059897008095219009969690776085903426192244823862308834668019990798170647441427467184220245291058424714320075039546233451846385982894646078672688929278164466390600400918362286514982669755170818905086866799024980787458454995051275097580415341781380565192739862658665825428331927315753688189010177574391742336048142635612501655507185307260598984808559270772587174862880504894585142002666187297456659911307612020736951675393988983623152199274793231734937605949980069113969254771978381306492560881249937021688166467189472913512949911240536590480952368196959079295865344955101296089374688318003311072181882317703414335859921382624077945995411213511418403858109317697048213212974693866747856575361173917872872971523545112875152175233338393592321657607292768015329787496438576844862518548852997007564871803618609208796397224991247154634542611227774966910956448296060428312539716767186246912047379851698475609803070852613151877709681730106542241231555809074386299687481409714189739438304244006509858753719955027329790064662899328444385421318960431164139374503557958048573479897858430246543180991131237625369251929822023076264622194835796271238107692699208278583605633031771296024533793849997433503293259194610285102539955025930364304741751450643144068187501170461335032761456387832702074542805330569057327897962307641263516611361343682252783180678399117627723544563744623817789003464157870377451519130933973681842944352374076422864484168432701351946178323664306244840495667138214035449782443268609213918767149933413763449805417994300664106110376866813521323654242439036351479818520468975206199770976170879867690481042588651813389280455895967839175743444031486246650150729591044127948098963441735331527552775036642991613755363676210416097289869836247385054773150965134707042449149101135505444364071831121264988376683493374344977284867676994622108078664068112959557015548567489088263289776464273137023685301750057989356237701474963237204384467119727841440566198892212543614976152638013203641096384040362619171407536501174135307842268718704480379119281180130828723012622135550843138033171527300420240082148498453653970183244519476548883413893466773033741381295551960723402195956493864289373136591452551958303732619311008232831137452229831754987576229588374040439083565105320286823185309814347471061221787363486018199682589582879889537216519604008659923990793779351204192693538575849628528864725052466360118198678304375488559368404254157349091411951960658506895767096184503182662220627045149780118434374654613961393965316077093926350610541341383765993130257207863684882413997846016050733976237772957954669699351060811644168817632575953333141515275681757800146684100736112124489103486214611554220393151942861884248548860314531818056704412589517305714964285874064800288861277282598572827527285552703322136237249092379230511023780137359028326919962088757527397571133302552203383941892211946825603460081880519001375285395411114792664692737317597601212398384794283209872009075943610246828319446864660102010067340440747637158709587544354948475115551986333258765647296210249485059490734517203055020409734320616954747266666162239256642607952984017623227903260272882322584746292808297635523416002871238081755022575526093934166804547123521671174351993766784720874841639836464114059910266940916513032059414432629248078167949873378395298630214765817435454801911818564237660298487053688660341142062482572556208564529794757658746603726982900592372974135278566417534598710597037495329591233466273581524492048206583832513800036551690287203827800193375028205604941546707470283063441954142004654307192195088670142560044666858282173007339811686976476818046617915569046409943587800799249621407763400384215298892999794220252313571846950818055939551504358724114794967383643990583587968482655723928712550443729861469185383809051217909000683395069175217001751420313158893878301697533946277295820472272194470483186825134737201301136430133251323152113461202254271837029535937939287947896990723101493341220932257573912672749888447512250636023934008035005047107743440900885312989084713545963460856072050220841838224998908316022102309729082482903732957873689496503134456330895404912977681398742581073441691498036453635144291577138388201773756555028230374151061617955610472112684759979926065311962492015979483231762735168622267586957462379038378773896331754105483996686842172502550316705724175622247631744677632363192012730880480796356082001730576891232314086304184831565035969239357244139431341925468975918936158447130999602594239371334842487012383225941319258981188373170769325431994468075953134964763392401541228146535933285047684109045529524476358649560375009997853189850674532654136452236445393948130062324604888801854358101638629408068596478203363413451728237114216276654407169492350745251463919411232519234723826525100334503133954380414680141670489130669949039345015943596546757385489368401247725219346280941670872179920329140457303220135178662042533745846922300431834615385399913447724407513785654672644424147693552082816235716060920290049710766109885364969372221724104032517675181910908357471080023965986782555684790879229734073604453479447892072704239978489409305039299922999271886500671563853623464635277321430887651046439817572601260288228492468218022997769663963744453396059342219219718613966255922697179136065418834698298354623285338731421151307284622336103692358711967239653229963191427826391215489897460831358472055623948849159984881671462227684986329532005114100099399574340846356184769631194725757228563986781531868023031666026687425916484326747310410772773522971419953679471846170511831067118839834605141266011726557073427993351221099624852286815516912689181683192536698588374476191125241278926800090522273398376369740536474863807759117565776246378341331178357848732459361779971740498907254981176366447216148637186921582028704438822922085681049770581264595293699530260705843796863186428582263440593089852086209615554006486192991968281013046621364488772443126882955820304184568361341746807647448105411238519421519617505280451003039909832114597927626825903888114876441636471883697316757144398522873596385801601786167918732406205538525557359317123541018533675909337854271641961804579186975250272012994814912428729716520073400941377073908143219227186921006247122746354176967191350889763129952277461149838490319016433309708910024511659618747074150134554525624398912268983593960199443259679469157619839127940923580159828116885003445752102864470586719854069767961619840880526097189863280202762943861687886139544550864845339632737857049072758206782291564384636964252251745101876697615238742532724582438697632620326234432574901388536416238566670997824881413554789919056757061296665363853997903387811283738766289876434824159504026871659040886397677312460568506009100969577834932046873103741283966816596684937993692814659535946156819389816451642678154437383977994893017129512816416302471397319232605053520413894513636893080854377879839527834238894075906336969611520123245336417536737565203552749379727620188107807958587562512538611674952843118576997701892057324309171213020176960647754245871053237503933312735010302995888061046608274605925058697740105206146221521087686701126005447345413175645207436547497022373796686412744116304636483386641617629931112844821179284733981371916333569613533255614028269974990569346641427445666464309196664731715913692147500749541532544929869829564192275331980280012613940521244347795084218303343261100309705296677627215357162409258345581161370859430615279376637945287405451514849332893244619145648055105031864752916802496356469569026375221674019102817766945849576498555121776749770413370135120877367860996156752393427601309811029633702634951659914314631641631729942185287541076623478870217625675716550451764362862036730799029580272555389057337224262078255659305633693921144786100621361836169097585529320884566717116554320105796396489943550936442551171205973170489782101677672803003809076837486024344783480554407999514211719982534449278953423640782313999494739353554223482036556134385590927440023301038982698325039239718083808522040766398835137613165782795109063265529568340600221969762920864972077267789057926900548748958648171419317664347846567662203701424852263835310326402896638005733840827344009740683759404347751985108114896504612106076125628801450701230992705368072428747903787376266739237823680372628483940367246449876129864594601453406620306514791975345064736270245314707347258741269508922233667528322339651456297342212236054498569092574441318127532590964995321865579633137459978196464514202964323428998223162914063340557063238479552856325716354930288058777251522155548939678179511272009070444370770008947952095805689735190908434452220907763622189128781527145778081444401395098567280207465803736019201606413551014530389561352488187989160566116988962755006552922489190873216763703416633976638268041895369575895262121853863607468526820704182527756561403326134485675337095251942454731091589474257829596236323141940634204215191715807784645342333045077414761504963089014773049383374170382186357979930297366015303055166673774005067073897097866729175884728720475466085144267007211234894907827506996669981810359759472515189218542579518658069445794379007096683419871066997199159349107202683887150439790064535012586835098506844303148542175284347771044501865446285616650796670689701567221672365967515441656614531779789960357947184223231557372336029492905558398862404731069485063262036130361926512395462061998866487426795842278483608145562997013383254758929004197703948637763066501366611720335334327878292412753786589307099263095838357206675473242951755446927896134371484566072540647405120501403323106598844096844633627828509581082159062635698197884363397190776000581993938694124071359145788675520653471395103203350349327352837747636107546321321379345290039269705537786429880773176062967097426908736084495241300443834949228667824224853124036587075196493524502174952841311982202478439344906166675429892661000960124792945885026643299327945266367573879358212587357083821355922771196153568520721866621501716508118803486974579263023932636763244421074265269762221455425390685504758455516722210786052459110883643150903704750323369889707276370250468808856097930296754029068562641742082265000808363283870585478098288574910594205328942513285141400397495156758535175355079296118289263224091883756816466867828654142964770261341465818827078985070843682511115249634775902363765631859352643244229394664559051452240056932970623761101144650228951404547258105784035730667965571582325583523678449882272758312175653783130900186667552999284598010476053790083984540330988376244970004642314283705175744005856001977132240460305067064603111747016046758672676209113231933484483426377814223478910398587458004363061769972029139745604271225797373725547287435590496664651439544240832097760273134496680483883854817336953336786059463764369817494475648375650241549047550037782335251885623463578474438053878720590369836206125465601666434185303495532170247485502374326274576397158831668427699907018459572835228448823373678818513219552507784918598818012669685672618623171971708578334143456553546028288612495428562923048555188245243879095088327593005716874722381446133933560676122728531972385399232675722448031959959123688404877541032509485142349367173661447275745442892772098002852903656194506857882500876872862183555563377809560804532107721036484882329221544153094083842779457095893577690616282659317718556736339956490162401134596694875394928480951947339527699096402341420207890274144287257311910424864192183740102405310196728011971462544060373129413858337387814777361904731894050483858023029283008401085741569350317477770715486449210511109447107216072889325863020656602843601914034661211140572158249250126925994677146273930128964125415846643712937624457210705536085822859002171361232142638681255866244042286457677610877211864189837891979643412661071808929366180962128218565648509067108531534982917728040689456632242095121027534359299897931786769779628657761545954785862301831104000364430245585828670923945152496222352992121735922682970646005921919498159562796147189127790036533819178993545522008497700426272279511429554876844707778318687867686687887905649292983277856934334547380301307480217919579590833796074455146829767418214020705509381965393319785348299983714870396289790614087211094896364318683955173808950924719633095468332472870670206532849863638854036518942519586570644866521999484967528331963283289659945701484644403985035196922294460019263497570408692182316549838111555613106652110087036553424870429469084348507496792769035020848642196702918890992938581349414301165924709953275043983699156707226873837761247221109004194197253068701653945854961958630046991911457743398244565670981169539490918324585367939074788353908854231700987744603872857670158026287686280390552737399431811027161054708300356411912121187834604050383014784781737970126222166333167818898213890589118024588350257284833817860639301198510031790164261489132347883393580921111427704854144692091613697553906136809464879664857271306139091329487870330500240646467742509802126283835913321436714053678631702661195055627219091521935775512451721339148468131842973074948746441271232573314003853745924673083863620208622512005692272391439401777427783479133487031199635748270687726254618289689568785203130917927241996640112836205240394247358732788861532596498177554893856917782691547719007568423704705391200419070883183785474918093827291497693677702386885728494590867660733487682237554801112412850290145533313594825649040762803677277042274652400482263447624711095430514053053432581185368507407326122039854983549397437269452102853604990900765293151930460545447602683280591389458867314165109925141736339537221147923598295032300592670946431805316848149802615755608318694145110086224024020307799375315763012098775227018655262474102912248137923918011610558490242893357093644382454428474164811557634445343659917938867354547977576931297704464106886045600048405685120415012751309248097396839137632102755903862200546344523827077771351570651082037230725454108844246895863563314240408606427834910246842658513972164371227610663858412191105297121253899330709919592353164304758452064855922993191106192085295258137468467969078882976823017224975835279798909281902129609872501605492621849413834773189589920371126227880856374215939127225879652538422895565495618267908926817091015517720178870135762034435760215314451141973150013003353182880466125520318429484969389355454043328442475443642614891459672744862766719176232116586649311396662529022832851117390076905873044908587499203929142816107096900491809005768955392635038110900455266312882975206578077467148400534351595806310154940882498927307821462519713566813801924891152140744860709933974581169501704396232054461242401491627704191077079333055271790385052203854539657917714275318693297521539436786678430659752564095548148891500600642477790238939885578312465827441078762144728335334501403037487178297064126407368521519133406047562285614146524313752558847640103239337931784093770480562743766890515708193840922886230169774361715080908655636121521794720654627311746672148140218233211030917872867281822858394081445740329652393727422768760670139211038425413613355135902009799211615748531207506261188788142628427100287976776174565418763192081382576702005146250959185215797583737908207114054131287172062198596026107443357121273974183253990197310767201762411558573097416876851903914737147242762745297395515113098029193528885193923583121046483070311083720754741119002736654154871773304664499561063307119068937130805044893101955169049439964418325594363791701693920679721359228012301778396494167844538290398236598081062263496050224637001994513591276630831044024840089080243127628228357094744695982672781064095567847512755322856515805767388362747644931907840473423760578838735115568447207248159041256907498931299730284317580918707227815834039053503085487972735471499015999231267095072689506423883424051536973868533550780632873745820724118210859878996108277778470280637584456325078951396492905155999051658249880160908467535744678553984066254348731655886732880411931303304914778085889610752325500055472996898524462274351212845517555530766848966865349296127491341592894620128728111497077256671627872579601451139089165828157886804552348455339689650931820144621633456320378305451201583329657400764290038479791364090556651183730683843297680589287428672851202170359065887330232401491559398619857600716241701070544254983036201358140672698944871743967750432472179662821338050236645346425774714540065050117732703610082858488780269292783420616920386048020768114911187688784130818022661126133945648773843006406411333599546585646666765906136392411128481547788750606790264258642908821061332401465028080372148690283177375177975558695128273117092303126885771725626993099551504357689751110449651582307995942058361929944208305101809682014666398617304358251370684581851188755649311231232222905809781590925349726586742083823398985271786719421126642305049316655281017019899732149555319652619003570665694707523908147789602476228201384041094108181175596612115503451886201325927582608477404174638751337713753378911891892981098802245538572186836795858297664865953813080962400171094412414764593868475692520039983940112619489928476649627484977582843746483400492842088457451488948335016512607761157077425998138997391097247859601117511847483682715909169092118866957480173098104103116312682914820910800305444274346789843216625847866961016822876312430576043884979591310234890442029585514797074404580604370947030516347596675214959550004898816180303189340220919209050116207428251162677771653751747395585160176150895914720632932350600492596959157708336372596381794779065230413742324981997026792367339393941744777321702439105649965020042607222099069985648001958303318678454044772741838897404952431505822296984520543074718510919569878733959092655843236945591884472875068414982454756845310219470066597182365902642928681459871492249537017437088756832825753519515181262618895326896651455842107657478931833662661121973765940922251340956875524562530102907842194889939792114492740518291493619737165366919477150001078905220881790911397153367437717443449751471774287344037376935844538268351824211922410542157215861446650640291919759495194485143613872274084179208724285391454243034768521238715972489066289741565607000628750074349507364345260441014183624342100290371763134812590143181386345444369776755422483636358702757344978265712855278439757274044273208704948075471603214036824201460504256594878748043132791356380956264744336554843510129183144979514041638103264797142725687309452224036561080280566659424783616090314075062954019785465757811393302655104109079928077870584608313525349149985932294738952599416361825834701109507755208950239279599430358896501848506215075138139199186826040349113405273578327250623745551883191606629014724940638106202319582072215746317879061986733446141912302598311097407577461612638784992912905729248199522570921022105306746912081697490684997843877196087669476315059678112428276451437624565642306727430589118010842671581457927877263926095968280838814024271754109289319688471756009367891006149777100343502526239940689699574305344169833221885204376713142452798172888123238604264966114625922429235936743542537650653948307631810167046114316420953222361668071716805686934527010238849526072317144993006680912644111897740834515510176090102351772397198179005141419337729006354330155951751775107742940609931146280214287304253809728341676151664836680818505337267947402128526998841262375539316398304345618188177299577549836690228968101500123598426733958353938347198851140885347050907986842989631357704562611563454697608277432028106281821357942886778698412323350323888751693711068644540925640033067501074509566094756385265558702848986198968613759605556147391209904251777083331050040482809394162410803034945437233121635822841609426232127613949202226510036087111698891487616927771342631656881893692790712837355656169050624008200657863333889780769563284840122677300653353390444284869214477959936613280811593139729541328461695286055928331536305128711799884065509432550202944993098685059432160029539265957203068655071659796064718057139960457173859262466181754975713735749226675516765648950579474546315896997478346751722326439905838197490721930012014014070487071188087039964255396696952928256928802599509480863320150652928700703276024096472835151718504729775759667682399756585765456934338767063452570169963322454047975968499493179813718652836155445046931349103205045333722965620823013744486092837886102038788066378819227866407331015057371688807691868866758059832345375048011778716854467979958935758820328223144395195788570613129210495703814508833986070867834244906148641687019492101692747700047989135417552482251563491921398061227725402443953265781243516647901597543396727499274737732369595406678394305591984845827228736666270867526070616514065584285266759310248882737014405411905072101202508906954614682014738402494062727993064340902426916497774219160478017302686007060522231522302506277230104362822700624678130722332830382499262010649835463013728954504378142641454374608724863487862938340736292347804786754614861699842213208532198282767749213751276215925804280316489056808386043232630698129209735034908434009235865176191328753190034847597862243583075778465270154826350888937168602185987687527069517564995772307910594717869559174861401010263347525966618292054794654364051801312181267019103364802541144542390056643668087053125733059501526745982549644036858512894599884065569808144228813699069106783432787967357558408134737670878701970078247723705576604085053671440918110180739643235712520875276537149231434006655579886323524267175495854974567156967047692907865614624247418711207172379988160282973489725666372589992456496098049823300787662112070447735383737711206391821945173079933050959390052493774153880602029054949029473806673217109405906827862179469342901306700661947421527316657267816712280585768765706602551343943574627987347331680753925000068276495587445070475829946467639744814346573211962491529248093705338756739222770322292287216508962053704369521603716328844845092148371783063816769395718366807709778929880283368426399651593405383067702243756333207882440986091679006345403813875415496243344183386866170298213363466004634739205005921761306680784147941474748264054825505450907128980112767375912108571473005336392795605526964593449644188400116305259947665450775879731994934615868378836037950474673990733594864285236469565391622593216112003294494823237712589617265476546474541826223768008021011979265455234613868405352121197112640204748332870684172379190243357770240477522060023449108367464835102776115943673484356669638370279763823302433798441534855275266964204343879536076793346154825024801761351657509493932817624622703850902598507078466749462057788662214772433916697801280347317560400020638992944969535272598021883968439538779092283859361307681783913149735663190823366926503180429648624302001889041449905802342252811176178796839096524981094741663367297485402799480705019941334585355003933791117624299669086165328267728739843235485883566696908680366704346147034812079757672972837457515743588741251615313477163745895181816984360945650461783717722291766318747604252467645264479275631246206409845102112226028652921348378938082539123209794953062383067132075259300444659435011981524285788287304168155949836126256327493688567001659796744347900562528605424012932278061406379956930922149574552415831315379757025450793330651989967074041401099494194370467560388898172448463758080992488347236433524293645826599348028445138723848568542832290697161733721661924333614690090763676453062027782640051653238533989459585465111695420405518809337719527460218850012472851248446955972006013880441782172295797896715343826200560022293477424033087473794699174188916162576792401873967271560887573261902520759879086029931999807502424274767637690628756302774370132914630276706264453060525465699451606408648383385099016643094143129298521504641007696118646856750839312660947434435383758913661021362181756188844811673160352895421276128052676332671853022968903514414369174015667509782866117460662221959187703422577783443439685755655714444347053320470042903900038051442118866313980471571468255684691708431617160427997525175011426992240074062987773512565580553526321071098436104820100244127137879982432856653612566517127537270322711561391109603357765232541182835762311282311252830506106323312655271325762018053179910423877081793389593275418145121473077859954758112971857083505058514940437123721575691844809826132297091604100963682998908280717942030155200442122304954129963822095717134098664892120417363760571673345858784631971148492609430904195929847351800627968942360225663175866640147493397755032157939328102223965518592078788522761353266653632011315668444195159051575442549631156656204481057594827185896038696894484403619271998631158094387180290003305926604854492491868421834273432154805867785738364279277758514027976379929293629203689665111292742446420939562605835711725673425025757065632393960452724134903642345303895586393869384840955866085826455022358155859281677074575404790614367191169358513633660750902924580960799914075517974062302068123564237519888673765308415221911450775365210058421984823372520456896277788624481090166716259495245624848810198980953548429667666054219564424444726167091629579087892109383866309662387592947038748938662430105605029775462017089049209465556701616399448962822652672951054542386715191425545195101662105169045430235421438764139167188131203245378256983709525615117848150272153370830142192000876052867896033957911328798985848674764112564290101253457780699977499082076201135858275365873526067294735855024790373004731516832384441442331654890894781868916131887035223804159128334604904050874984861976804965466682471904657740350366743038728946570501895327743509517492852937742807267467484821582693854847754630531674575642433343704504055504553413649685594730113129436946563258959542660274044951609312819153494067996293295170226136235272055575908401980209997450835273536514463805669239323202481426943243547322958748122134216873820284500054948197341610576921953245129744389733856458876655823678132083556715648635246344575534545510140560624159428424851886809509217462148129407012011010665581652407089415699418023722833419926564999586871053178508596413903048303891999922158473773967484248965903741492350335351811221198982938835720264272369489496620204973904446712995789539984828893618534520894190919390181355268484733863781835712606631285140369335172537359401144384121232864253407565240069365547122655325957669937426409428676128294240244628087314537373537285026486357492748852286890426686827273356211599474029658146324237165857575783307300609220236338039909017629127462551954265662994477423692729854847381206418083841403217707569290175559404371563578908596916296237957075292131941218248318261204387835480581602775295750664312794432764677114780670646311454204288787089615217055534066437381624329826652944173034615733671190994102895951052538553217706476764616710259486557136127566275106010880660176064614639111104221155284013566823115325731166988403984244896679731091172177099528966029480005374566916559445106622316681508031956777954611662373507836695603143241225737850294265077846533967861324417776481996960248377356531376766540748035120140124810832123223017593402901994336024175333233290918020192453292302422036221743492923862982898133720535130673358019006014081596653547007862262554064632526081599590712484647821313149045827210360892868813324735779370691411711700162841141135024724319877523533623348832126017298967734258771565399438629165960823643151118491349048356620695070671248828805130334234987033494406420308473760707924240203643430047011237626912979314193497092747802933165652449234059925274522546429377150153148882600949447400528584439685289553547866911769486902409116498301030298815364398481839327452595664177065908117916721632503275626175329701157506672455072841140278535497638823312038885213690529712393038877049318088181066100814058899386400062975468123935481022763478048314952918281810521895948239929773169533794666279272583973168136327997585427818825995779986732757564924508537882470759986423842550704620416346911037126876285374177842147517504897987093295060513460672175963961869071508543054896222907103895288349902830432023507235130517026539958853314044575586829399835040613345969742558124216862407366680646111641843135450996201211245075115049148453522344868897821582670732869712222572457993347146378345151061794442858206707788743881498004186208586961967078863069976422270105788889317157432157735807365966435773420475757097297352399328833718000017042439075113790627107342691119505881008681961405900279178451434819383705069754724615890731897125936919487275179950890680416610296976299661907313653652852107112517273459131749247287539452882268750504419250820713714395208999569475882882031536673723069293285071691858849651764268946266066542722017556041954795708946485365194315529395622123507333800111147560838351331259812434524426305252380333970898277357652184224884427232890992977100823375583892204606532010487029902211576940692695219543340116371076418103578645074760663456030623468742661326552774858844344962458742463254733117049221725429866068230724869844288261008203994747067493116508403291471842211804859081415515642195876888505758143041840606024479277029323334057738066998887120979726053845756661626756694093801797525843893403221251508985142701867868476138048174856509332433195512546775504929910076471710899258030953761658445692806993444577276922891125106328659336489538700255843219336522374329645794566920228988244224841072917040753983983337418086084743707565349908111556192968287828393789647037017298110894360161431178010717535532990406120481539067956735159004983296509139291197244944874720881877225896808668698224217608984012406744659419731969438876767238092724300308444072389211811914638938984056912369668520107854753927311739442833507295520659666144276509016378287681079703141407633438910667983126686345848089540259106743569540766704119835894367719423613860910790404981236425802250382190871679388217505032817333377758270648938030627849285105517330348612754599541602887903159758988288082674479616357526424771860311107278736582794391597608978087486157261746266821121715851050565282336372547613316707557325061855966144541422427674810289195170381391154650214985520515845107485021903269924923361892196047798626709668734536649046810214966638855107845248595466063197696677985109436899651384864441287741140666450150134137764919743019087375213932128135689125876247886750706694226384434980862626132688182151774606110412678619344917228995478824314057068458693004132302378770473768152813980315591212802406692524312759601858452489436736575225955683534009768445427279064961055923860455506220532917257406605365484809545184676334882016522027936289393806714504739543140295309478325417744298109640743736930101500052191980101840583279291108758545939947260817724304251440541814733689008761183471500342258396696936069780084649988253514397297937206489777620424259838216165582781216973552608144916463356236975135700034861700916735520801057177315216019638901882617331198705646535159218030941072269045434623326311513865484112814572408668976213146476358136710375789824125196789818279038724574774185811258005255058528333107002041491135835949584629665624948419750992227886266840069723792159120737707645256481911507660335464747422918172927075420319879056752954887159210405802206646343188119960728215055627938151275243182601872818390328875443814519722186112488823349804670523730090258471074320404365066296470398037232482966966481555133934028700811909848123860684556020650775329348804118251709812579137128420510333807518881899867443984740756893811162987138312575544015794712318050538005914836726537761917415250640982481985382323207086777765889740334224201446465934168059084317518261322462932443001205613524659757801189370592920712308137703554668336491447222970658124472012730378259265112815988693973715832501125159383581435464255781916665896361822339792103999602905778320547209176520528115307240519304184969357244748812652911478882134239176071560133433813021853870037144416365239907280294633390026702132083591442995159688644163773345197405290294157647412008868568183628398718750453787680170087589137338470585039118495123710993857105262068797522026534230996387080937456872390675026994133658923893736286160555142530945352978594810718256303801579388589000667889443007797017954259392390496385586730057032568959441031828408032157594068357589479676596533940184995340017168296467276913069625365978570590075613597766408485414063773654187160701099220782334268656615951694985133083180045777969592167089037850466569387864224594480133486890122393869758092740663613924358581845095131846041525310373219695454194296151119235036744442351099336208261809146416226106702523106350524705396258145476435651376054193863972392525366146023248298208889784683041809352273543314396863058597081674017652195463424105124066290545915704276460758763653465978869959529353621497015240031515472828648081906172670274177036424108486365311490744545211736568674251748019961606104021095426971410060254136486311571612531659247869063867984268245270108096674747958181346903617881893979341509634258991496888102097581631174203036024499868962752831354440852874133366984089247600572385472324006748316081738829400135983977981277798378112737701941876834059771902244158625584898316709064529573927259329027427695239629596871121253176014196942349157889417296884642863803175661656218686231032725529113408829061131526557211895699566905224515460798368568217678659319073193105717240765014287513401424607948540140905968326988567489489859391734807840194289005984003939348676825851777497834863849420013962080735551886972572017919296577536291891533027334614602987252397449213507670303688107640316539062543984810530380550269961667919723639463196628257460198643011104426945176273414398435295214489290029497668931837555804417214002089589601021995439964243143384068554941811254521268381329481095175047881810598049952279684893778336609598776716825328624381659670879185851144030686974160479629755890831645516144945040899795943529144254122250588471239077403043690844010548113857656164256795429838792103975910840759252988647910365130963992754979797660820357191890353215421720923713679675846962174265720204137698099695343279838339021027343624091477588387919763954989914792192165855665887950841887460341904057494743114124525920852642786067660680711579503070833011164274477340284419064078215214042055751113303022875676191025447045216581328780648590178589037149387757299879057904163473226554529603139575398002554213580398059793489378863831732444634158235608357759734788383797627580545961217682223341903782469881350414851583905630530181063611128012728626381048406003597007378243632085992064629035589874633157923799663227658037088015243432464421078569030261732420107785400866742489247888227734934308226631867249456600890891851181827641019402063051869536175901116026682088180116889301006008984117047456961507293760706808320475160965854035678553081041319340154761077450785703722236375017852980573996179721071747597725483379533666690743703594900624345639625773721602617198153586747615787986530567649013449163272673435719219010076868804013667955308983789446339492710683994321741341272906112116589254837151180637437652976100512523470783082599059357992046413368569424582335536859524088044769021365791678097912635692937532430770381308381856192975185775168744512651716725917803887741563558196907897740877798635923249761010970677609597017929064107146724704475814724508565555205089281896920681319232451504599910434368000275401099093499576914021346365255702472832908578328246693784231457659957551291264914299050816778247310215083963070432885382351603530300484898994274164223025010772411299236636415743135167890998484860566418007603722423147986600449497338835813484749142905519709530747619521863853822933209720932493838086591262757020301233783045596457015066309619248360893249513091765315605425904073974835494108001964711251816158318014794430400066717385869760838154773033633532115607869995335404354049462933461236215852129009248058726770145583467182910868813142297384620601313793462375178756205074785705897016190305001253086568949957324565674601994014695999704883094375478913334289017153815206745440571164218519939119964116928500227761768100322973376222091197574082627550284976428885072518395644899356848106086429636362738020083390943669807642410268638289136707144511004771619182850625786789637063301436168636879076495131296432969278525923577562035596327854402285420841983328347429613266614389499431218140019602419448645939980983265611724348430980249338685938890502369157482678541985805824968305390096912775693774323747798654875642643534642983542883317093133468740810186153737913426477282578641000793294111725981450700352922309990148519080786070654556678082567753493360979962589265699302844747302961288840678984292898915277275738601316746684082057267007363913585821458934254139563329158851479307429843533542565733568463937689932436980248305257648630229100477654907032945400271168516465170224894729685576205667517289718383416096017847458731118579760248839789797464951924104949630317010821718948553395204095065643986827695787677957097872971230596598997719870688546636057911372899513369306911155696659729684301992375201131983809633195534778246206224978568202517756406637205844291962892611332899926063061116006445366680545830892645771751413098102469234952561413293869301171385972263951448642813164944499248597467625672197103020459528097652413794278561081980594855649306518378161236168011389561725446980302714358328917148266262849494830760949546282063158484139324443838283111185424363044882591290572752231348901535507732970960085186476644458419208761615657987978448633283549431749531235093968655614772902429533187606286170655939730584714061941366997059752030053134391250995133490333864500762682062323589515819798523239885123382483438366187709087021594645198189373138708402213053425965449118254472272539219809933975266322828719389848029009235839409612569650013810929049891105919407955048290592807569214520157552044226109299269961040216268740205637821003951367329922295518173208259035062865866590287172119880204307993154875015407312912571134063006352537625899722747990289232236713456110190133727894482607200996860914190657206119457402020938740439095411234276648604337155107757647836513918118432548436859628078849189995811361414737322921041810877310805962868058766170812187741497977408498121854247692214133992502773648195295256192216093419856150502678929842012038678127915604825309930878440522625362993427727477424235167332230204975475202559535789804026237260150412846792740428231844474252908062721743365497455585454669883116848936351372600348686845557890678904393090980333385094344450546141266309147982867371237452262531985806684847605171232636574802988380151004173033808765649780920224246128953259197052323978538074711072394533135708422158268836115041345059310087559840860353289457777375821856616762932296823353094270947372788313040677747373365999484090482466039197218402116604873982346865027786532421013951512001116389571716027679332501876468588264200952541120048692666017938861845123167325467015077674436288269392620584219406502565557659667863758082574565013654133317601469128639673368526180035731725164928311019792957279090160466599632268394244717910878099143366936825483743023668819603098011582546446907455573692780083720191725704945396960304772657950576006349380936064321612436876736754064351193928705930717480877492068587557540756331889431819321811928977034046023823870743520291485177526625556837254507160582040605805770125769128813239170694514920904608052724614951903328426205135844400690896949386855356674180045602466012997569592652087286399663327577207895558873617984400799310661483056865172311048056880091348809318428877241619537855480101256300232318270715736531364099652577290851923326650225507373065597356404484581086400015241605701126875667055744943714242247344343661779523970331683699505946830251609171279970977744892444266849683644248985343478064708597291319890557702887913468680581204851440069600900489162718134179443178442799608284467267052200274101639851364773198518034574835854436136423848889098626636829469689227472738608031505094697180918887067093258636287970247583930301968906167990594749538853052864230416707858792117387878108361058420493199846543265285948235187356325859061370100512842616013109527678568663625904953516159710408626567020667072447375755158146638814214554028587529305488638099545683246128984957774919283667052814210185817441183415787477264555917382802951710896198116534814474813477004976833650830350144694689664833510110142438026980301486778565485325243248140503739501688678728650045617375530592132667753273335803989738897738195679391937333186495298329187023655242293295721081983838038850044310915800952845260461274277200789122353173196020433233687974698490135934743497857016587793372888159762178737221274011284599190227201530916735927017424621033552028919141171132457776632205956712985315957598791659385143815793204458235278335211588974021880964965194177193424402510529272892847818310922472188622297181681268253901661400036646720688264148011662286073479351971447092680052723191832749283268758317043632305766292522363145309080323174289518226156228792768402681703726586993110281520379485538373413828639726419156264123860429456990008888775829738449091288252085845916947390461441223398470999612279746027632044761726208343229567344794664145807807733300602041371691290427524827074824740301931500809794927742948465800360787465328524467807025260028404824969023790360405883502049863183428543874831916715742935196923510114536172019405981111146329757727603856956051980299414989433770328890793971402477159270064128326863156830459881990148587668435673499879948103180366890968346392858486577811157009167089141616344461502539608039806863429917861627164329118653740610345405772137796419475458730812096686780380646561431811344267819535576065405927402004919805587298956637370785372992096200717557836301781996984539444645896650859373870540229931091326555600212783714447442908695073324735326295054249828688260695750537878498835410139521016029367595253621837075128414528175047115585013109946717445381314302735247795149655266150506917514041890624663432686559108305428697630821958454787487791527949046535571698550712919418195875443205437812099052822375541444297280856052989293584967295830291421150419692004663293218231501840324624348720442573208028627592048917709443621889879999123903048273131226600377627329185140265913033356722518637510088805143576044673835119253947152777156784465221687569041561385009666086288145815155074077766340877695105045225010726289973095836693618405839266805843643104698095990561643313954468874048001206191423919744652368559813525550363549822826406576431408009589648919264491984734005397090706901858957647261113404302301077413117163317855090883321897217938228447648517742537898401742419422236819252130140590851225620799950861246631087750225586823540214060563368017838909067502495749045509160530366005191497355386608327004771879231416115137665456336195966995469746781269905246150541172835162927072323275276115215261454572587315088209168815596141007603269445178599151902584133760791972448740049307327313273115325974931079751851538428347091258054681533430323663380800237300077804105951799175666362395894050269497538553188750924077922126548011280118666217916585603625479316176091154751108352968784478394433689902121303387628368869663742951555476344942562581078704252557160519354299097615621323497044203524453489091826927547085276219504560209449201135528049183582214373810969331072801520490574915543795900435245420797891214105852609474704880021194148730616191720765290364211973077199203312335822623513270339286739629506026896832456648401621733052494060893490456254465990824310667904207322154665577398340678520942130281216638376343847021834444840098653162231589947738276507434352273513959707247707425427783303877988041758374803126560813514452289367737797193222379142880078613130523638101746316652926422898218009613622868237839788662237075852702479307567979674689076573633326546598762782365196658835066392841951387580836562381678015470288208954427219045707174312409485362070395581716722280065886233626408683828587156130726536442633384675696245878362301664946297978461635109450336904321475407542660071382383756072427572383759858878489810476537730686550859593690689115175592050232234345222213853255476154490451235492314725789997012588108856605365372685556483106080045463629933298289871232502745656383389367237482152382268207469295681894626957989580279059192417325428994331516148462933314638367719307480310848513397034576318217485771439388625082938946492159866068506252976859639564093934514019922029302034183757746645952086667814157406489137689730722536420515396877653585091651979357227384012218086173626860499142819539612949679788324463494824754025850862706755605789981487581522262454183220199891740950030730724477787798334218857521465280772563701810824976189889987598731639473113329687081922261112315296125230095023437049421971499514718548819898265179207505119668952266791681337783303484940461762063101213378854042340131125516211704139931762852586942040774511745288661075701738868148418758596934304915118080261281401890018096171992038823574477170756893442136068714722140723417032235809576836112114468468627029622638724030560263118618807952980371198862676949000082480100310871955172618065823175662409081650888601976242648957658466977051055884100191147765634618975632544699190129855759394701166204371025045025720279234267668015125669852647718194208136935911839356740003628296095253278565483672685613075805429887545856774169039650295932232326596821381766230106425919492706473896907729324287818339232756507264369107221471358619703390342691515023560782961512377507950793810207247376604488083561136075015644339637301152536607813308607255619050893171464039697371872220410078708460444698027921745019519448552099241451967617607048233256477166935510637865845411170522789981247978976777607539205821279097777234186640370926989339473375806073828652083036163224970946274119199644656938449579695691856385623196725611232641268264476118772986435919968550749151504989794684843831424483596543309686467056014299873144138049348569824110855090415921804476693620166204399980409517327138307660652777286521790784254512823402362303128252258116978309273200426271732195960385684594838808663692320280323172509014494554239100606580559094439186478105927909094456189489457791181681500781646699024799101339311692773676078446290675714547449318027211700605030459341890001697799722318030035818551705645904739956065537642088723727809997078121135718620762371931646978572813134351559862784271085077666078363038941028949196081379052304072431389664379157538199932807872623246060852435944464061994617836140598973517539107777746639298071693177877184623271370263145812234779914320618434767530358346257628006543331619143053696770770497989745298276153373338146600287063861199893603133304229873186628701498158396512411951705741902799082719095446953533900163720799616208952526555207704598332845470019577559651557096331996012931684081354648357372276658665288321811267510534387474784321808276795689149087828715257256349263647063776216715982285176849974287567689184867877904885532167613238543242771534339882509017578130338753859788388373729872447495354794102406673767607257255741117193217671552114526766576021719436861987529781035065147947958813428999326432779757456593614298139031044240617300207595444007307497522912993473878809460684289676083833445523464292370046576915466127355591807122790331628094842601702475406155578801925799073229682995131992102795998335025343442833029049447366986955063021930060389410409472374800724007956795874284296170908507953447531264063559375226346772433953789073751238073472746382866439622550980811306183228345471399833548444184800552289536047503104560092327843763209977451592106592538291808368710999460881030469529967310391062162637586076589021486769124901478180300797574410005057386509821416339484517326843630942352155802679771881326457373304060399366086362019333652821659994891957153959384970583008296937134475226093276385463553673010879718512381992982693967147068497307846483958375470665249024041653290175894588682030532047433015012212929377420696731756367964854067079778279721607706714197688838810575129308331475776304066404991845685249927479066205661097747246134119122450673291754595702555462367052301617736084091396342066837348480604563432408940279506877342403750328305285170402485729582851904374075079494565223085542593821128413142349156281389143868140807142811482359584849221671433239159635634292937159963598767315739831460148733455351698731413911255854029728472877243836340913155864491439755142262679521315871385663110331994302527670018960182989979183438810813761823190225142498064526844831153765009512132927069277427614145065503991712425829938837975530719768719096881472768340863751782221459341445789763374444458079031827829610700858047663804943493337764165970653761876752842705488344641657160731171863114847649329517857718484552451049574879547922490634513265258894934687867293124502972039884532077682222225208341089019131274588443201208057655060278128451967821754715562439298908100271759912619892770188855510901998341887279744903042018724100056805957684870449690977740806894956093243621802853008082912820584019603278030761569943361013476534026761484594449028653124210224754870701555245038449666210924646934471919588915750453803261882866825179360471481011242311654073745108388561636749400781653580878685294554354906741061626628317171592296513865379091516147053524733497131959020044213312788932716503098374890434532335983004585198097278301190628830940078915533110709837573258764130687125322151652012192273868168010032494394023984152981757527789029901829202444556863574068378350851924441767356190127690326679319935789388815858348763103202449295084912116010622119692258964609736581757740243474106477829094058389205998963234690954565934944602073100894766710152121082162126882891642844592152394831904298164244850363086468938161451946209985109468519271783198684067954200030734894819753028277381241800249238167691576179323220359623046038401547980954017363323640894334111315984278537552892794855023651600235618559301073338525644536108250202931350963860740941756332096138849460270962281179200759243480919277607841473879205925517630770062590854894008945008169791611113709335012105770662598902710566190044551755949229472755946877805996388115443891185165704821655240225940183414618615696587850112002855444644294687978597999345172629485955810441339146955600948809687617461811566745984499521056772730593687058120331013864721931746896616148076679860761519902494545795208458638476765975143015405778463114296225402491982684272237613842042838954811717128384603949552481143600745168450718155835585398031499046328207026592759616921491929704393701788080661977675400223246130297133080016524990580111022388428204416008257377228861873446056443331326787111386699463107327815307773519634233938870079830666111549422929751498415437783749436935287389992487048104407816855403082140778966077670306634731851428395656525250453215999784118724337232758009125049695389945690596154610626120798214738324877509252813692158571710329044666482041476840342042283699359307280841832758985439175307565259531665349134634607218964378058060317749894168558498187078397640958367633563526940094440376130527372470940933059330531013555291204135619459523122680393838409979993861838803282033528793263362776485831146456409432943611010042398447025989530511616298567949380978235539047329635274684225303164920902439857939534938238345561744520467854125987837127456365855208113682943463931763369688983271704458702355568587574571426854679776660275058690620088443199883432048732968244118586331356200595509689521420046994095369333952778885512175519883135362391686664087526331951534998656486076106846334832374575675707596403979641013089332347239846750224955260591048895504895661258272183129524706668212522133466280495913353701007810190258872631703831667885649548429547353232712511238421125759521742322559105420567205368942412484968688262381014235567703173650992304486894827049996040761790316076677202788566105143608118395743790461241324116784139419038276250565913984297782451324252814481753550185803845099087171282234444001740746833753676291891306259325232984804479262402692643416522758075737984193630296573983059586702780069086731368603493137660882668096433780490367977467663332171191077450914935354139639969417653991278030158314078565036161511700641809289224215063442389566218603476635157951625641530498964176295729663517137144000370827968884909289481427570647624503369239744865136158555095731849145565017545358699252488625633446540687019426252685644566712118811734317848592533957474478451863673371207600547905757286526705330759255866633587385122384546221863590272573630239946009527837904038427646378026187047990215306657613729347713125887673122076708946643612476032986596022451669952265579559039511800676183374081128192725911191528858350989961062240224323057144676793617441131018304267509458129234636888085503417633243747574566195400478989909319995988037361246972844922861542835149101266764580427157271700670069844352117597419077700003921404758903828081060542363659913012438076061799567053085072862523344072710859284215729061383718317891677427388983323561767016398643739807840341989561722013362942097779320767553488616206841810600269467357118543016110466451402671369002640416354498010349898111485450015174258550363831787441948517248331299059043823824920641407260997734064516085888378946293855144541490478580756702038888738991861691727212706426801359986025308348349936923940417525191122789743680965581636380263561395986372103034537508674751315164430095418080866879679761771857546305423499281288112957563570367886146592974084785273032278774043331008772149147155024280610456538215305244571445123980307651032624284224403502552674348843084945033126707624651153094425296402052882777595705855011818096270432880334132805401994227624170068394662707004565566386018000408250750160142123429363320519233654951931892724399739280026583808733007429216599425338103455593820701114042892483707625444860197255570938533204244053877213946570531019233022400830363412238325367076125678836063503703044275568953386731638543295464578784320009702437371527270072814901211590938744475669344303488548443233673612306662905391235240961562043252984299659974490619896578345246606873537616694132398235244053165453595354339850320449913928877262566320179979725169607976127412336797117148292909977910657951375632143726518662959436260744657073218938316235702742395840462584990434117679389621020161608518442190597656320903661199142586559165281922750620840986847019354379499739859112043679872885784661552746580049308237836388529289535121039421986872963547916450091089285717361725454798980014293790786559245016234874312850094751766601813684260444241930827518550312562355985089013328897100045535816181234964561422435990046165800161443856032733085173005276370555574560367381077289064159565725668149457845805671310771167306095000458080043048984571569810465399667686366632688583469766732827763513186627530763725889235871984914634280609295626766894070189936693922399705930662538073145573385868215919708561650211449506590015053776350565068803895910998617840139451365145756691713384816246190088022513516541553350953437070685034872785863319702960429093047078687166795684252965862322556965599922376962964506613475655914600022250898852466256783874064838626449214960061494015244586238763476944804591587495804500343930743274690106666804923209366799225576684761590487781127520212172355599837757006414017026685526540703188065309527750835567660255181470993054170427269401216666248573616292610191184239494983137293944174719091180634465837833148676045847852285607766895165748961277781965559990492233670202772513887032476729554395175243366364254227894781588264785256274499512827244076998558479162842123507178934128330929624999132245281713957629514900717764685344430013902178662667934290542337467472597090880915904745720651887583110082263498127658204066701532083620570310183092863949100981968887436617968733287516504617655001893196745518494449244852517391019320618707210500224229919040251358574877161041958118848734565385326594516918791243329468934454895901111724824438000372049639704057983470160846360246683922410239328837517843078906670693080288811384203870943695483712727623536405284066518409384204026127361960509975479526194066040098574779870922331978834943716221039233660157305727524572211134618215324496859511799453072929952395258968871900655071787516130545988441601963829354046678432021215035510918691373713295967860384475120805693326321443365329305457869897604803440214988605207515579039995204843393337833873096304473512011815070546385052494206391644459541152273150872183550840082623715447905220658124520018582627145942560797338547904110854064347240918956630865957231117181698627130075495686376699585025884296331375207281891873518484747519984541352570821748972515039001361226843225465745445972106059955725815189382381814292993059565688887630961611438652098138371389856439138867490881410455879744758897675115005920255816862350447884567381126431921714786999614101075408476333041937601630552997012834785202882280010396954487722898121079748661103171731843240827887015326935168310646413050408593087124202459732051826541501291513466431887752591470022641423249029114057689429893626450061240612475786128939752075589047108149125383789851488523090079271192491535998497497229098632980513715026381128306144323773111525608018725256881553430547821259551074678440472727962552369414017828601755741847398421494954690486477788046137021590780371364353963284140933190436130887787093851361961951040854421555457098111043689700502641503710121214453468000815806589547217861523512330971392464355424936253666740653607373365287130983662696198288635165958837758973584712873827328186574324588551565273504732324714575411289317656261538639742058922599512439113679531953955126259556857677227042478646397171002018986193267857075131733072117617341500053385537478158145022278630237221439395638742391070328452068754119141412153720245957610339099005800164100477345735439645015161257356171493259131384386059987258348873228427155912592547975510416930022866660859128618215218347505842091191823022612203839093828874415030836049106312169895231641617592811010980643088406055098075273852511196147808957254524501864087674841635402986436840465740838297660713181549568619658144889341054933569966246163325575168468520649749151902723084588025819202312050041801830042742666585743677642003917912427389330988501671056614570615511663280186260457457649015416850320969153651078692302182127289587869127115970257350990162842888947632203732138748746441277682070447321543197031259736205837179049190363589821510512952620556144924694403365623212931723612151945576553497317662319617385511807719766668148402341280733100153263949555270932141135888171700756058889747379977055118929596047996789860852408632092929002522978894610475411294291099589633958326162431093659899506726271645617244642395949171586383505417219749353468318192373884582826894842223201024245114410313836782451690584410189816622363989410865016135199117880366770923758135641292480572913193430362628577404094989544251036167348610183924297186819435609602498368428911045232219037904699816538500888218203381823943358321996861854113535602677171589247554168918291555040930368456984142017380683017584304863285219224517869656042913519149008133524665498433182357670415151097976244639925872510289122956099708521078438342157128490706170853367028956504378158720779785845423064355637337930191978701956050662556867969752645015433847574396009668755037173301220506953428643520999415036752026583254217351516617025771698794618997513012638088907319469849595308246405378799411838290077178497032074437602577757592433781783452565885406618751168656958828428966240444848483424267337779832550385201951114954043475555443554640614685235881441006992846918573250372526517182417509235777604527361422790804457344432403380647249002735340092497375331587275884034140300278333491821994401423307877783995339997496007213071499069118452818553652324179321085299923511735557795570119971065463487691534129655125305190406365352502179870752736501215818860142938746516859897061699506090126656796164636677137365442582426863017804762181680126875844271776210191462701785402815056305837923769171914780505193626858168520315246932860709755469497249303760456110988212740163237503287220177708518635562938126526735703050495061924949124919944746406764538828906932161940512036004922426392560231663184747615239083609862762396757910973674587568854747261263133921858331015090811567351770866024653307076182869558373586305837456599531106787812238165990623515376331866065916160261525365991791361786319245187936668699348747442055428089276460271475083326461066509372486930312794858451356153439257520406678004297549900249009459693221420421406060675873806411435168706580091758543664460758502018990446686436033989972466325622939935913702921940959232692901442073530462937212074630447961494705049849659379655269036943299785191732184507556135173080800130126253186682693353800672432287228160397307446847015364977489886132463780141384391728895670847902090442833993326868118684906949657155061245383338040483501734262333995831263688956416806067821141832380133267974516922750936067414000588577875267159902098401347241804656952355939856880908848248489846341272967869625194839840355654524806216937740795159836338143136044159522471714321736340121202031355787085514623920630870056423833273470716721593189268620371861871249949089174763356414354833292299293780446435064002523900431883106935489357831765438134786604292433409063304683409309347760264816833127763411763791852842284743869600933849630849649467212183575081904469666162572557514264618034544204430386920187283735840129008164616206883955747474425681659295425486141208537299141041360795601584158568894465152114620234000817577226202036988308503903260001317677881623702986828897754770051909829136264584217717985283804897117896887892410590585073089379472553211081017335440866006480511025671519319050667234783870904113815038334370839520249385194347192582319785472919656634003574498983401098465739527684115903491111327270872987233763747352756704221207079162174852617516502140589167244687425135759056113587867415977541429736728557189967726609107355552055787336117633757192597992069176642087622337902638193355080858675006956394872578404128000027385714476594068003605106486092042353479599769377517874287191617774581681776462380386709504636594869185974646745836675857542358232043062044472779607928907870965264338860895163690257735363902925797806717835027628614937388301045430106365898477584004795679686093708514850184871910746214438492177428473604105235876928594119010214508654550804873182795943037838427433847162232359236152110085360287991913504184235373354950787111668752463747067047672719827737251269636946742499098722437670393854131846478325230940337289969718474456222059624316695596292097418152708753697317890989385021898884694905466643374984919759700870747382216173792904656045702420352289376695580951831103677517479196109466229367404879149123105449478418471438517513100756319092226583557873675141800647959310990683595236110762421712100002915370207849610871908109896682915487768787024591945130686624511483653980876952986587943331449701283825110118890464156951951653716258289841678036936881914968782392389152441065424023107732512083023136782646883913830894888619229330339198773377282957105114570949742188674007433268253102536441988879118120616354973746712594610047509789319696337252745333301256875653779763526490474868926488903958830694367052481418049477529596327376249036949197379832137213292592759931908891886088827018862013920960239572160419606070890709787324577545892290706582786522963016412620135784650106115326252752422565813696620509203727206574163661947703622859432103122425127212012937013001116569430618226155895156183561253118600089444931119156203870904274818562439977063982612359207061636792302229539145567336832276340088572657181319281810173718086519955824536929847090935728906339782735678212068654783583304457034601842135316357956135188470486063632650717224844124941284317646472124006525837704479976184909359371593134393300359331922111253804440547405570947037817728064158319159812098816160316845548955333856007132292223886196694064614086063750442566904581429119796907527726922524486013481483117234391922868021515749740869212802759591063546715067800291476682683370849742617520415916975006626077050495811499758251535969602326238876357803771213599096913359522058282903807643881586403974220249103218259484889650642879674567836254432059045953408545383504891811714015461784814614972882129594135041769397118654666832497703121539481845036705248715336875575380261612891889386769672153608353980784086994037549306510935234323498033191253845954233146290749757442397250787775600039571679443269720617392519255543424965191030442585834529272206793403523166297396571015503736504182860917599982008019441889006804892909400560425415146573737052532036712762123014628717100130729305395635819058239832303616305645680370235989437299108978676246274506711458455431600464373487061741823802990010825011032605883435732375866063644875953258903592016750474933264652935446340908675048043935109262794882457217638957846227105207853193567713123464003833126453641421523837181331904796815991627358147421557547106574792544109398231426939865606863276591585351021115837066530717123139627307585962014362427804634991310550859733200131152891182250304981037351724661685558693518218459825283361162028821345392456383475805538437630096262287492488251907806303324126557262355596079543199246280405053688272433612873499222086614648758090197414266257151586560457491708329910683307620885725599616412539868516601465770868652181227360243048571367923050800430949352219852554548454665280461008279105681991492978599789187915489556604657391833636397889498268064037721483216984727592056235054496846861459828947696299410745105471808645070478175070168083261529596837218441523136593953604650276488561593668977675150187213870825900544026627863064452705733973441741096669620556961226734093682695616029303834575080456748772120007836308822843649240726003653345881933500837673093207111054114561625977118566319065192744336599164120052304251749497912823771126404437866233617213474973687853596787745974951165973244706181541527264323340770602750592055262017127395157968498627316627591321517652996492198649602478086695073302218749184474978453106353377848121892546544266581522186744198614446527612910287074665090945466283573887379659880376576335966067365526942553933100306536788474855579592116329839577904630292461600794603838158383999264358789957857149095729658789268848350210379300532058123090484318868237589140967653605433290114757483951096680923475462603925864196288041728890037491776341533107613028357038300708279444839700708185922482547924893284439057448771025771643361240328679209672473646238912554587184948071798734766143794861066356325071635949759535679050272654669263331790836749097055509038728525412902765578315957740180498021348799371564234913640395471946116507306071316391132117469909177218285682288605846808958151870679397562388732960362053958103721846553056147027223551817333022243674437109969655355660266818713360639415955299206550286195888014491670119190929718459535077057157086568984404979337975798082200222944253950796838981044481827025866909522234752302711230119264706408712030133801893976061757318695796419502044570021383056515507252046070428945270670085454878311171623059351314190411625909035734035561701172683849697264577121618927149066282422664835880038512906684351619144812545768011201245611452517475955742667045509454587905487159876735959737553409583422711806591028472227218506491247830686060712707433984419209128077748810768967300439495083756134626658299043960120151894112384589817291035285022325113195615032262032984318868434352499459569561126018696131054719322353597396622745542681044575753447355371049001352386051473675441576544983262437424727799339429934762836296435346218200519659483380248380291805993672827668619926748030929247447624756981057424951357688671904007309020467361669558408193780850799370381238610177288233727078836303057783543612909301880089400571088473179663235667760934930082424529060927339482013471573856135213414281225189729314819983343574706673638208249648596167494211434520779283542411696264333357805421726742569622927206691398078090763343874956411585725763234037012447083742617118666136667439816773821514885766108897072360560966565789413956391893979816179407408585258582547971564013789906978484897562987933920196508996762221726192093565047832735531022629035892057572502974658044990422896602906346497210378327926526277286985514038923333170449762044849120202090312795088278082880515729165687568834209984713503787987170918671931599693324352120448867217271029749003971145169769832228282160341356286250053634134223602688956559536365003872374934011888109927167760564980392928134878915653195587695512120728063809215469341504521766055179918547767448142724369139886216233232688408089871553508350000722597786428014799905294970348674152662233448918778668071639136120026437317869746583673427984909303176307339696169840488576429672996213677989037302320764722718347876012122733786580149568607459227906828595125562713693056440574024907661008987884549751983632978809897724655082347716675710436826309050806150513491493846148083313240632102589332705336935654061069612653331634861548540965115040098439197981982226910889461183269986001972593941032653120864830090211137612848021251151478932376108618757710165848146600792382101124933084537378637394257389972749705989395866957798929021991716685059000934066776786181464368461162019455610415016881672921045068726726037106797098328460464031344648294828918629749865565925516287752069095776491220882882821006411977520596003698521524381587291406822439369917327422440095631742143256868636010999017844598824103364729139289791117963575219574617933567949422446542452194949160862687271606858347671337571227514888951854547114573279295963949355783851250722666581641630991832962070524881463394361389026025211834293578704763885256981019676781531064488736245076859615736439600271360230945474861836375969590474225491008671675264443581284794746029881376247908305173305530381419793675813551331016982461680046325739947473617118306042441711124233620070031686696281002065158274601052799754734564988742549802773001622125137129349684700790422221464760550480312215160254955599742919519915675106902674932931690271297472414286615023855052290053168894641270762956137732497352328313131615483353796743839704360404898354189272852772515429162312856521937164142091628919734388379676693034939350161761446073762067012139253463153693223050916296083616463945109923774088419771197323593685160474747944876059612120919574023825786443490705651729372575826998795104129357099847148039866993012175337445052511712048818537165442394532367419621599728936604425009416977143719532384622034100661682043391750696305173074533609932035034633762058314737316398992201890857832480964581076302911086710948626973070248983680483438892082410279640749904263292336281877219090512058590932229957862911427049297318864312563707796294336694929019942840414286559586389701628229130903836720680866541305618789107946642516462299773249134303449194937754790683412771294474586402062256849373096246697283438807646233600932392889979240781238572078316642159752130440132014564585262257550774850145847005254025402385750033403193983009318207511438110097753986560888712803785913754031683039348088776375680555200049677645926235670134739926900382995624668252074126860284303575272985278426551663636661671411494752566060435883721044223071732888179525096682604685170721133206745997810698352316716582910938580868473034310174073039842027748276301782961725648615465618627932555292662182779160737916568123499034173198486950262505224160677316755502991198906859695741841655641688062439519492950442470364411906177783284735069612224598683695825623205361805421651444097006549261901632648602642120463948783558751949653052260905638599058085302095978182998425375506597671752140922871999704707585588722084166060800751471550555120892841016820427735774980900409652197286887950259003948161441269655303034017225008190865904577719522532612175563209779001311018333254160775747516748219713602582188063042121169557214986463477662051497706810017541085229162866711001455599938050800740814887195904271865773505124409440072215907079705586711147879727221265286536975307066813097094512470384305820432327452787054171780779158670780261156547122838483367218891470902281825293319235495327319065083969905134387257664436473790410076355083134959680283508738101591412677709726753794403896246051544335818336905666018208941111739758821026225460941170311713523628451460936346846713108462047608952425697292557906592432388634041293206010595874426459659088250396350061080706319985655819067467853511083848950652753741517921673887700813302842714765425105331168900042097723031196819827329667948602895881222534967562685495349172620047410335667345978995925946143223128947695634080483223551457544761786236523369509637180329465642727117134141292324217354580764207267804947585778158070533512283626350091803957743269971159157003663415311189173124241253854542516594897585025514544771494464142307911117553207869281742325860730823211017977871889414744137866420127437899568620547103970017648321867642403787261215381062033335388560148809353287517593237317586012704058568196399258349605591359342964993480272244116485110423118820638227828838312795754796391081312289319883418794592238025685476542727983606813325193272938034261732704750283869109822244022873582090768219398071480128289845880564534293064283555594577345273416057708873571109820354988417659396085468479101610473547669044639025695833390564278415266521406709487156547600436457993672760830195640886085270275871716109972977078130268602116903316419245234931188380923189962446504951541678389619470744229426421702192019195336544118529229800709486211962644284559444574713067832365070921110132251710715279699402971737932237507927842948163526933311211247900142084537997170768051353344333550672544006066825521246181239896755739994884340623409742455937215479267983560804228567662264659766922429216340752914707093781711003789402593689691729826521376097535949783961093042552356458014964585936611183438851265687249769328797613509892799689661274262346392144909579377424555976185272884317645142450502781969870829605358249596224537769361296671625146679072973347121092841673572310806636480761883548309352809717721419538401513907926261056176862679782983943704991035607085261720059495840123481926818480873632567881984258400303193007429709035052626003290861949907435269572989767876504059381819793349127453646629753034596941395899112077128912149678959506201741892597928927531256827570129895240474068680820656678166902991144620651555572689788400813797328718593400560767361886369877318816269061776719785934641973179864153548263071333287580476458947296707152668196463818651930768141351068911983972326245403277263919749041282014642028226932673093974893887580509719394196277157948120783513876939550972622543889252941711777749993883038993298159621947457887326831499411543821155901004511630643163790028009115883210001795239552730467902362152642787752663169082131989264879733075893532528856561601493848574217309491667160171336361200897300676910315871772015814679273079216588532352238766495192769156723119853320179950894166915356303908673034335176703260711350739405062259102055982133229179162481165397916353709646624938646650244557434116422635919597716560508729544971796339124838022320715492724198474239848076392580291367542347100900527903271407836565606433619635597708286309893610882195993144443283088039069998831706261216452819571389464701502499475056538204583016200747485793777275396996319295439287620900382019021085266111848792223098592528044285504309193861385173141768383877734562482369161632731225712505428546158268887027633880295841922724982045368632151999099987355046182634265857328330944679065143593006366169385231192388960151924383164957554230370902331590824383454297275096286089052760033111646666039979858995278206187821435337396003905528621501354227954755426796493972141963135550934893618431865901742159863266388817729446201304195912671343412546745462840447891087298739132045671979427306673018981483626919675492997803774331659626206184083494822410691556356675328158795136275262034345970949080281460157259987118803511859413555086975722213591804608969384753288487113901754078798897714380261970815159737495121007420900149265549922134683680691555175413477092386872095569614977244911032021112237490992493148309499062635293011840700672113556817495725436041670338956617162043690275005847872044092123293567489641379419062224674450295367729240986282488200634034803698603386314987214455287636765968077500066542704326734413571919208152832336031909194606982746554463964270605697640824394858727777077132562931149977137932626205658357283544187838789896305099352860233274340886103029667932791768107086349426249770478226329523085922275411126790033491840183693013662234679047872466528207969325612355365959439783223533052223860795457015760802737625516968336697630739223487652406853821330145235856859185070808733200442012174004575278521476777136493834158184591944987915239791323464933240229788129137383156956279268337457980200483172490073074622881107900086782728085074814813910396265988626286405039624878303478791248583282343346467033001477742649771840100970398067917623081058222932448131800128586143407035687500986834516016177995231936780156313456435273382308308906881979852847794609049457379550594918875906091928327498937215276637770618638581321562623638370515684522813319586618285568970783372878876557148696516531911204812847978358983299415023999520965404091899522224695492719517772605975993917070287975705065377178457275839209433463517288502473450229683636493430171069282737613848845025788678274705575016343037265330837732635954534507366796718238452005390044466063067689227666550730833907778436572115562636463273515181912163344360142878263819881552316108786329934219794719674084903364569722765900748334992725456034749841563775871018286241823325498637818281537379977627241769825557386194068058790848217273794387829585250796075410008141433768263589425226448331325565537905582727666109339798655941590067045975903178728315128917393630233847375610121769253373658894955718316758560232967913039980889963625197444397647824725626695476094018324187382220712041532188246151686464308750523912963198912675918840073595857920141162008269675805913069812163515690606784650428714906133851976600815090760695943106574200650570728278069084011771893375408176522003223749306738506338795152001904733714658233910549461929733002693836263260943018838256037651339221583298437879797759081721456478746448008823161444146521744549896886399831838605399560355501155315986599574351039054151780574754769988216857274720710456596359294182295559324713310817320487834020471263209378511887010025447785699959706199851634390058157300973499137400930240309313411781023001569279432574168620869188180937442807738249925111264013125020713147090198388264516088952590706620717915501003347219222673250314014899626804432676144241375527245955370890297998368484824053076241685145194770507886483270061964305426802451492357669405145773211961328084002599869943607712209595853052118166765315190626324306975962514099175917218589380966748192130012291983898362446730414521269812114127271750563552730954499521657442429605951138908908598751188306699506914344381321889391905074717018406881281312126605767619253672657160768984180117316563410403742572883843603313008927847045393488941693727423547220133353066064615503439706982492599058089252974354578891837589940543835590692449767517762318010557189721929605600125599691510460073427844683741392410373711727047162035913265879571534648928515206589625894612582399092894945707345816394876818956725167847925246669830086684194474019870904549868502890105238864458621920772101653287298560931982533909431923534647698268791079752637482518031435653369677848552956158678083451728911463042794490808395538738902745981882003897066460200595793014271861649634097497826915038366840829178514547186311382038550879355262898979086987110339093752298845543379580587335104289325882623318671265381410453733006731612909302469545740642420413444166424130888287832078925766205444310945351966389259079997922720172252604061847692548234264149330175668807284611869231428228839568318656628884612363471806621167567075290899838846909634593525620343296974330294973427067775776028851716392551248340665703966382025110306123214589748946748016348797599148455170085561303556139619004021117638327286731034039939970979128881050591000936709720719682116510756786156921232065571806445767526268503326940317058996285745165097383141305254518078439994504536749309460261465325127921729977663637897700326459930979517963181444087334338526769210796253015117882698601295441799951804801892640806488503798199121261961266873417637630646643420605822235791538247172765949976370148210454443744596563078356593686210629703400130847225780131164114228377065517143815893580241996518682796697088033534308896004342060728984815370041455402181615355380309672487180067009817175150628524608373979038106176281248407452103180095151831592496186546037431565536628850691043601015000912291927999370463679146557635395707045076597188358142945254041165285052371759999868052249091769365153858292531265079637079933449265242139146750671526555879064163207156681911842327686957785120322702659554018972640351827999728257876400671943373232168291723242462649342359474070604517185838854177080307985206582470153261303557629759852788363558460849716361434706443351304546136696969693026316098160033245980337706265192529936992577963348659470716999754063265581989272717534184344142298751863140642950688084968408996439421652985135190395353403019640515006442240817602698274500386766100205439646326848983126988953601049158437883988158368590884604051749754399001071545957451848213104248887998849708122701693978122661188899657724276110782113208830029754429582995751464477820567931633361119313818232205246898019938185410099957839027537250338052213371128704082603642776142849578278450107353659817797822319785660304198253401568583848032012843480374679922751424412881522027323929301397230444927368553174291975355659683855840533751679147804575909893138074476381632922729079696833257737428017101160874817983891187561621352525630900670973343886817665616999340507115636462523693516831901108628657237631318659226871585984042526433586697218708632992116994354155337150563662355462251403854852649551192366232541028478307329140831319220366034454251247975730331325707772581590611011952613714068400183982464862943206438139652136052785610208103170998836705546818205842231841871937289547252750859061718991699599419206300225446252922884755419444922818492794028451090542612872958059732016617330805560855900001247015977569275600894563562331832121723576474311622022722899942549552248427809947308679313776186063783347912278312143706636415947948710537137072301702996850470284180851588917527820943409242802467268211289151263975453007526247248105774864190199110011692815732901905061131601699605642912402650797186174899781162750337845911637842618935589335182914807458266992367072706406050375901233145403786361845763333269386442054392162448131601677984080969678224762661504380198842372258643753896257956976178138742649644766308937076280576162192296504157409680771417098746073151889155251624579126169172567259420317414480859343717639871698526157204151011958333834710503940433689223652798028315479380736087585973998011817057687793738621882969749617832716821953525455291831621416326695783349532420064025343934197192074353135616945024825975087933113355462861889031170742121815940740901385576176856833406100758235088802961780294902554323984980049746278367719250999530840393919534727517815603724248142508369187874171460998669491803747445890269361475269823559947011097446429363190575181838571358794703790242130687597018347928957684099137942233665174386475399504324591068262924770670571961156526692003837182202409537780444733864924946103094851467592188217855718519276180815759350800695541298642507202949750303547258917968178903595050059876140556633200686630261289041763272271757485521723492714104363179403743559677193899647878031138808153077910471925535006425983182833322876413500652400799272673929131484913969135388856172407268749443156700024025545645260150315660604767618353747080694192608232812179905939155318841650153810578035701093646364188075304209384804253945053661577779111364240851741366268088974209818985829866446435282916012097936935140845274247199768991430879948877750917011529489052901276946212578962096397986101375428439737392825030961561173656219654693022338971357927664710990000040039886942839191845141742939344564156557891542333262089402004147190322824421219183256369009058431410857251647268660602545348730869263429164618130107899861434858968209014480338350689334113314779698402924111964778693164210525581293474439952222827339418436994691514696383229701903320359512326235778857927052164975486155837395632946172501609601122608480170699326134691402342979930236632045715117851369281747274767122709014486874541890168192816623246369840671122757572749997759915289880773897922363311199290387169991155697805366463420056618387431706585836582087817962498398057908295954683263971389491744812049583962233238597453337544266535888053973720308900110363517164565020743442854185833398901835543501285958371912800880163084874903048396967562696594568201225563195038043686052502273717088330368090293637049731176525146152181807564114158522161102808537166541045685020434179950730629107131908815995204136424231861516250891505045763230508062975780241609585358600036919075479532875348188754917469817981062736961597442720880121542244177896155982849284395450646063941758597234165812074560481073747824538140846287078479808412967312588575904888448198827221331596252888039230006918014124397831203212211648869298327872778896679950970338778223157644350950677453129954748694535678027052203927404375134839214890087930675258674725104574035742774471840371882407567994011010694861258956712630555222450115272588334055317051569329308485189609954397740213799633124704400233399483148854763349520234971410520825228653835131951717858673358168398638585332622443098724895077068162792749095549539323991735470920178145381660923224015366269340146074359440965029474436329096998808056216467126209636660847171415553984542506833523522786215466476760019066761924992349591177214278505024479344759182479196454708061354923428045598693753045412298070049715212391472424616009790952160324470102543441644046547879616594475143828969756691152563850173617241858305863115196071368570096018725170591142331123079339726720007366984249814042830674952952504177168684510076013561991153332272916057781908490736985234591167619205544605643725202263149824926298750734534888477674445865513553886393225924890696919303382776008775549654385953833321746293671496321402878832085658467582927284176274136900948732131274030909892666944292774210552102010132257414140748029550544978224847854629719597709205888340338270458477867327778889770020161958220398435341967686768856441343172649540792684574316369714800944786636896890470481677248544051819589366482382852149512800480738344437963387868506019610003392374344898382381617539872098874141421741941954806433856086198725940612239042264709459904563410826896854244802150226205462660946746496820532169667356486447471384501872528695672769020320091617105001807262105076594763689300205839912668997740460904903567593507063350895426408826972587135674542136613652879792480604365531807433664434949448950804888261699300703763599201267535735129356442280334533206477385766709435216323345967947566182219563986242766571112433508316285507411064251831008233454765011763751855081482822275614116453059329136627641067173536839133765676020345248472779352552067666503315469616470701864969987456468499223787474336213757209498881398268493869293767668725712030440846405507032250836327244859692896086979056022439266391018655655994575742628432037160377462186717564330261549823115882576841868883223432038178800625993962149774921496283827213884557120222997360459364300886647159697209741228208138183160278563053294369337903920560186394549086317773484911080426689244449470651666279188489096979047887365788433779549059390133312337524958776669334077187303278545231447481840179161847600937279191483743317463866786309487444329308112422312816766685415254382296889945472991310994858491463362992816836459450905061245926124556198470838135687985952745160647225362523349206114714212974943552932684710629125030771924087855795492196438023810280878076555799003803721234243232792710312993617313860204706156388287087825747465457383382383060239509843014865465154370281070472872463305499183420463828724616294968432937658318536735274908657806046391226545180787961489055302219495082037580225553657603167296895647204670528970809208966594310870727677299782862991741455817084457254543062107176662228394482324432744148166267831844147683063092763881192830726945017515228881021417927372518336901020667665199227383445780784770502507500207102423729378930084125189556738832517493267564305542083701410198494956323013254643545918861916761788503277827382481692321648807841360617749456102766189965838186435662481358327462812661843935456467596235851295186675511653456292247124461961382461593400737013571844319232067556595999340846184556657289738226551372487033092205257253455582943218144514997625345648260011948614903006681232511919353150266984778783485747598126326992369642348852544375992904013835368584574907708201626120383410132423560719811949298100296174509381355702640566235300573349661739478050185651868908555276673976219226494233351021773275122172213681570218088843530715958270964907322175271009513354543802516507070697825461860216975590763185459633775245005911765640606841307930277609319136057041369649979200880818284071478073209557384959386900605505548848152938351201805727594396996123164676212018276488170809667270211879826256253109767163488521902399714522089207347732370032565404532999863108687652014294972398696481618806936851832348522842701250421537313055252598962076323424918139351184369646354267680715790784321421784820310514184936239135918480416836303280958776489557724461084318305681452162347374392776693759403495085186530918184858702458569779707160361981311205141678894530417120644199501702451358282243624490808982679318514646592439389550373626556358770745103136982527867357147555770002395549871970391933638612379056816398440573048185069451053504420939718492323779606414756337812275582983963336879004779507953910939034143994330406117070215735603047622558723660253210038830338325102950016736089801633600841246808105020899864825735767800691537474786375624196577850341933356009990808808597106486617043296633667032624024332925201447415345927966564457323608434166940496036941245959475735049871304568326228666819611681375849998913026366245943699722623550577990642895969739177632143460380717919156102523945542450464033187083033963804876465409946125338417672930455355316352682921671894863146424676577952741632515036159482617374758115048192929324759133626289415065547204397694725188910486705254980735482269662696267122925431174203478203378608856821716609505792189222883862968838977285118509297772825085272109890376874205468804279718553362440931786708532371593439666868108649193856882530389808445725448564473949964657557370530481821986554497173244220680417400833624392462211888269828251879504108962730671134512512150715831037985937898879066917014592006246495933692444593032924367744798349835729265124165554750217207783703338635265303456326416234958150098531279071142570120533329890396046283501716007660404810100418498913112182750009054381693727390455003649734741985433832843951434081346807670654947886352285846420465522234643416457136824778678654273549358539594004011889696432926966361099845866488400584055276940097174647982247747928108844219224313227121371937225718633724943979176114334909639685274432342768947445205476341521618298847072568336534344384333447612199035409452382171436512997589761484620029960175474293328632876234979324226471553955296691897096229286428324223038714476050389401498613182038490929182953301559283239415249727860127990491949431391409107035791072874668569142012378578723815319885653190186996763173869256351095824666758054662155606653797035308774129281565680119400429020519772417653471466402951357184623025921812526421302431236386962812438437145365231785340862456105287893762846023332884171493402766721348597888987071285545998161097119506862773528393852470487238412668483236645000386375747371765021353566793138047675327527175469139034206335006733707863786573471200780883755472507770244270783701858396847687717168008746112777450457067387568902432798669177146084053253880857278420093548008527028101947104153033980980984817821792479397962325711890615668138904738566796734481241620319535053085751344062398222387002827558749085869690161055442368778624577179525263773211380593582406108587255466557185206359868443642996222046892987666941683379400405083034641464082251137648357508854287774262227671968687738341297094076502444128081626994094475596888472294281128331537723453474765972360141779889934967856798443518562751144935065502862320900329941046516284941738998603479064286117776799015519428961648890891910597767563980887638171393596853007817915885955178072945477099290832288161180016376793228717888980363008942886272424545954215635064701642781616029652793846415343402987258117196188542002518125669383181732852693022967970109630386673947832154603611201588565234226559117140413420503968767933267673176366387896734997089311574370408141420027925033498573911818707387514495307132259459220972954377847955455272070431187848295982593072810711893164461623792491033962411813746321802857893968050279371840379978567452766891422037421391958087704969083244784083129087639041458822240156143705761679848395793849681609433355637131850488302630138875117064929623254613473083246338554909590006636029901892266051872536542211403130742455096543413472498319494963863255748768268988899090320975152678396843599460464233234329857604747665634142673762235178555003530762961188400372301198667349707824023537180068968919671515184375566694347072723011336323505002881050168573666398430763339630838355405293987834080478027353094413182333033367379489178309953375264064771217043805232913003103686192097361084957789349039622422078689047655129818305339375543054891238502936177127935090702565576404189060523376014911284960732537508918273465751208218781157639403734931355369297917574164045946422087971668148237380526782397611319611563868209536519739494360126089846752201844265040770462838209968533498951579523489836506320579437146711709295288004710654342962662101903987258237939281355029551342709998618523031759835687140180310139688964149166720263589265493896717384462598742548526769250109769656038257765020959437930354632112051485369345067924365957701274795814446304300156361215191932824355499461398579745666042996975034357807610580130085527984300877622610122534537665980256804761989494029107434809898077001966095896150514082474395609553056568838225850314314531145848968958767356792115578322630757048345477539748765566472827831861772424123807482153702679580767834567737402537786592429559627132446900419050576416568181888805713763881676059380571513579591921667028986909419813530523782343719343151231704122245633539347438008851841739540264361120022559104775937600089419917741323295075463924514211160785635101820085431642730594834314271984473155211259571702915952679808506441020862181783733405583993731821692132979031880248948591852711393034701139783930518754059242054937482554231778239590210550678065730690607719750851786283011752281433332685942710572494890023725129572633241638136062967423676478241990253485230080977869111042659270275613675736762439324452025279441357118749454838530791864775479202962195890429623369846928908051026196161210726674508371137481665236188282475379618808950212607538157651543668007684352652748149610989424793598308513455710781406576299983490267562019370090662533002262913390660362685508702718914714939831508451279255180785191863057883836570215409983102049817375557202003050570545887734102015499747539745939309104009445731911643293054699057092737838499197898806709233168532027125856669309957852306394691603947512765542140254371618122016693967516011708164560364428690429154713234844554604971898707925200726941124986195139997342467961961389250159588675406313816163645100387573218598626687738570846681254996140642150205727236306129559201647756839033221652083593350382066610196303494528463514325745417507911091624701424296989913601052195614917959241483021651742694450374862546342081433892709978736927754721844738029618075301783274751815551176091723013083533819549792787023079734845042696479734538199800662870793035653084014042053895019233055723631357194425289433329726712151762619450747165620637727349255487481412271682078416493268468752248978558556439977818441501554916737296868961714249480066452563051215427493701980500458655447838204121262684702375832278188491315182245786553079965474831794871515762875072318220769053109244475681231496848276344255886411044264590462686977252697777576002130786202181900904463052433996506923887117485498772987737894481900677752880165112758729195103520866985474729427723676231323929157880254499319482268331012195685195821715582670494967789294502787498411755010026170577452077117818019843674406539403938523017390816727877906203835402836043230547928730538397789294041976688771102674628295499697528145097439762475478927124575723536930795980505431543009803531421175085332149004639839782612674870611370103710649589227270175389960611384464893736538922959497604423696187206275175307245601966879543738764796036870912011882108965582791607268607564898500571392949904079975280629964501544689590280092867989732779206572161628712273118506427721287252012076552891147362627036685343435905571212399263820811593907234763942963737820933844020700156914753466452120689981765946524974898065557684071143557803939733066866307536430680708415595471556669302531223422076147296303765051432502536798058671988078376731163896284410535515902315866398956606355514734360621683998194100341139500450321212411832723134784989422687837539079217266118188526985222521920959010728090692854056610119841415356331264805035058645979538787617225728898474861768022516380999270150245185563903744201304530202155953298959112830295491174453141889061369845917581988990645372852288184005525933219620046286952374659941065350330997642781996595686721724579877219183300292671482442238683487340075467469965262865179751543862057033537995589019291111464028093120053213083125174194336176367811873314512231058736685221136344827627220771197938652090269944327692195782498716427263488364991174376472094464378274424260136143649914496378973760464549141316144050419940290659500505177748206691604671598924613718688268927335729644669666770052012330825354163967595665293823470317420148135582189934672597364353028152952174805432361056151282678098148047120991260274155360090156019252427180117273113773683788917025421103371842309316449337963042419460164334588686784752189069736102052054238380679155838738159837834906638207707947872360260156197562451337937806604309561771548124300121051285318284906672277210200042102090185555876211252340691216687420657049932240954439104870681181867563519475130089395952262783894909642400525441774541080519036012393116156674649406534679187586518579831990418349174302007925486252665180142970726630519713305780787519095119987283703200384031844703205525847522419007314420436126509532617888091560430157551602562367115391027045336829502700677676163394950758113663496052181766376684138570036462194253890160155916949894981267976128200368740160701116484224934965482269393502694634148452369312445077208637087288920925286448276812736377717201128276316968532174156589769025422027036476970326368872904362085127614143542844131338606023704586553019897201772707473107852238601098437160049441320495793829185009429139716285660194742931024806170613206985134940907260410680479591918039291721757104750713821168616069639346975740603284944626268164115169731530574248356812158781396199455687834682592240949627587213713696564542648998806537189903774109315007674303890471003923471612367658484138948054996757596271011153226028072270185507334760482560043148409252673990758297365531827980578037284396894952522638341019236030665249086050451220506516159559049257789412850494128976920986305562495682609211400989091559589317267499123928861727178116407842268660256150106774171903955997028907099633196020264117460896132808593535175620595066583367059467493346708199801377937760727466787580820518904528306742563645598845895750270512956768654446894115113900070376885939250152447888686003906001937297150036294108401705940135204134802445625537888687836471586644260288063234127464798606895751398350012833577170531983995179417263864643248451529805008997630354924606918334592319305723168003549750091452201078607519478599996364452260521933135440017426397013253289253112564451644297976557494181976751999491652625230767597913251063206969272975663959592328933248719241785493282247021072856094809375000170428079228457642909189426276133800490721487916336136113390465969831871832667679596844185354587028479028111506375598860327191039175122450349536310231576203402458657830710540306492974079354165669994407165334462480858379370173428902335736341982236685136215055516870035089857146149394020014634690576715047182585062279702316329166067973036276149250478075096557915116920567807061693756708287733724833547597230178455460628274414470343755733718246515966294548329042234157482390300702049418757325023102292268367221643246344782320269836142490283892761456814631267420581625062423996922067585161646379834395846220105479996705085014809340551819147061281681749477195856426836899568568480946551797789080852842542947598660926603502249347425309431603316797664330732986027286147026445890885477518492843850527962888819125714629154420717116585706559643895608251696154434271934679767280615394195637940888989676003372394503878740401131598197036041238851389792147216562396317239978393050185821946307612861783034294158618007555551729111521695025853259083344461836013514928253721103703346605868145217428887489906519188115497605928641495773000103796401624150185198771788038307296538124422546070668210773024095027564963454053473382080806513993396014410887576582841134895095031791627177125824459556668296892140156055829246441017834763888286716619583201839909911828698501442404664769488528369757672440887118872072441304276421289889264939480349823111117470709417852617260750376071824745159684938495793214986996566492576613082018235629121210224718572560555669554007516584722162293383605492554127730214764240971839300677726969305531823717153064973473235790609154591565696401235227209793107917603888964011364383966175486743258889326647057315605247835051072089393095649729463104853973073093498856044217964316550775872393938598119824921742416346523275364685199055654355220276731620375079563341957799277532349653482487380861757436764386386158076442025584897490942918709955872638195409852340036810176787591881107261574936460611695175012813926606325981692845311644632786569455449958198327654471385122410558639100322514459135446614091834820355634074668051953078935616286890435275053941880606516575487800391954470605616435828302262065488912138253683096995487059544899213105526615928878403547498421617706193035270293785193646642935671498730584598080107678201398192050184074193478487276341550605726908681860920198844950107164099681576859217927506459878255855574876550355410539003501601099123805099237729890005826253059713243118653297218473825056754700479093922629896144237875389974508877365329409865234419986013146487579481011416221057488647015006824967905206229368522830782948303910972128702459211993242430361467648395911699867919349100819969601069009340483987119008192000264908602992642316145107853555407945702538851444081330080555354412639350358326973696841772043100778640304711321188974105890378120075588012893478853353791422848305597358950131945453181757071378266431898617435497810604977795126022565695124873037310029963705447403089703614829159244110513707830024473005704697374635270118165458854011896144125618118974542774663045926437503543760701832141571821756266508798065086012849802051384438101945346832016597057828126737179295249370392881396616781028843318823705255978525226153981747974404850095675034019507701625286816790165030330792770255149701909485352200469258214970403889455809985242592540730078350058814866203291477395142394848926987121931894768887047437710266904877693226700245055608528164889987834385398035033457343590628988441889787406121170648482198096607438210128141952904024899344667235102432760623065608244456238935216295432042560523305933094565754367705799304698541704942697017218572906310401584047891697260550955829768933175099474583273954196471882605410123371324662475967979625624152917208565250954036872940577018406074392963617796284595882442520140077273954798592922798952008297959567482618726098906775093581992501638434977627459806001820778538093363112830729487542241147656511149189526029684935066443424061898568899621297856849767727100174421378100813923334124448983191342145788842726657785157281217378015863591729798482829468941417015287640531562904181859870971913640353053020942240865274624711021557545669726907830291344287889207167697953630545192093688891368162797916394436110522058559574985746608963898914925016315960273749795558906262052119452697118808558069572268778258164050432207714173184485023973691413949247132460414502912584060911003061160016258505443068033353126142150064921207741797461392201628529443092995582059623900349119258993166217039241849003982619095351382449480067875520690419731094393814939324365274234255497146266752272683722035389544968865406477031380820742294494232094174163870186991801298046353365897870403320757773171318319718259242481643071057323603169054016061716910079536951206944491293840571416144008745151606828286984514981771139338881796096325723263876670042694794738772274123235736470887238628601910264763339184625452802668906094361386800896136176443195078478121778365273039491662241699738840460973145373219911718093666258652420269717799772483802333378574760670812634404873087687748611670342796666877487293234709334423997394654709933939495711260414645575390815815977804755892504415158628039026479810078373678217540543312839015654794313080160226890221058748043781524937346997031007967131257105042941576436777514206142717283828931346683422601828201617985290848869817123519521711991389458960932074844539453739719919502942229463489824797353998135720343403351421911715077774526383310073386028401190892488385202367848155107201268975301791588911576067000815733290747490336718042381460254866667763016735264400510856078452160322292985293194639704979981782573069668713350188228888090758177473333122964124967133234779152189986174028784735077916100338842277122732975040705440339676509720491165209810266040748996090313023989884278480347050217562950590072144360251205826552004583907319060933405090152891429636251976661347825928825805574105072813437885913925809646351735928074833660745733821750487907412170874707602151580473672529030008700454119121469478495244835229826566843720550212744948220576170521858067238680176892546755530581105903563712267140566638715502236014615493453201666241706853600723120750603581124524149746614895025473200494107069306777315957716453605536554328783621525882371046434379293251020216033606215947833386695004095978754793113363608669170204332416268519645946741156439815016686026095909262998714131302924030754127103773187805697390824652347514619722425962561268864174116106890192649909246600326960022545493005673541314257617638297208749453555337848115010593283057396247865288058193655843195367668662424138971313995578704086730424123808330902130929500504746450185652868898526329754974018756248458830574086558968625849299695674686901858480967962480606388071158324406343175286178622891031015218041935508344308522152808318326259107754312292093620098468260714961521516736697580021040890044282691067397819831467867485222520581362538925072060416007397954857468252388641246328744010755143968771213260186531938146346609449324440235648660574434530125795449760141063971217128934540679654839318774835094430246318754091923283708484031745915764736632181944390098237036287369858443879233004808346845444195209731193380386174722837085109721883040891365458836594857504925866430333776756368016784489125829782134810474463836843438877460372989683249189674461116012581226635644139206224246502092332209600148351221392452660917712847346670612001910947535756384890605864589954814756491570853750918424648169221548496142821535065709084083143004349861482044479435993296672462512444759137201109930284609966665428072524010151771510331083899648021338964774303096620931446406417327176982538888913602439612684910663189613531514951827212931332788716598862620334657615001244714415168331171733200697593168809158916314070543593932134337218554127560117580310422254894904073711167705751344961756837300399919565926765880527495689266522808430945950375366336915267951959336899515028417974581181844863308226193503561051282319208932914547583352262481036916185179711830190233971667233604525046199765273238553282136449421113423481066062703629856182231564664684469462276691925138771208418007160621007524829677746548163221427685269014503033550864148096637545525379849680705935398284663808161563057270337197522243232811242834583850602537182079551468382750249702853478955385979563937400580250250749116817525883904218580220939748942316319341803371103435492676637649300007363101996964038247729593419277583659401548613903369286933178310429679658599645864869734917412011448022376266087076825242331232015088058033811350716130108721183848924028142494122802587589994728847636068322307114488971964263554710519551061270567946303602496432083740428845824225467526368195736713686750118467827220807772509176133155047864379462221369751131043496145604145886087988359424144580605849135710589176388117235612651614924195617245972867033610332342190233115021494978585154448302638657842482052716760147089263190342118705797375775770031963437846412373798026899926151978884187688130611575007117524854289591597388137844466499005501991286637076629169643798009753262843805120416089182952283598105529907313638875568116258208831966877620905405151209649289698137493301850466389313630336451363777132068582802026973007655130845491093987524715584413996969704903304686025065509389175187263793233672123086319228951371155002181294059318051282823118506385926049731693235309018518870479623648630086685344429098221806432818467243577887365721570420442502202000334869601034335688984544671241659204438906424614089134914401786477791943104770280673937772402329863617198164284123754347245806922385406724662516932525305259851044821636213950680368469955227121062134243624918285210179162916014061700814504201816786704742272003692473113732128764450028413545735572933262191198042165713510230693433996878368156197425791129196035964890292499482985221863087896535264092913860877805596828725476980384618697899846142819159340793215579541652400030362206592922131206293718302664162060628507428779232279466548658031204445408062458869608331555835058502402956243367118785019075061341107539261746765970956701185547349211016179527127513939310031519336591006175497998424762202619287488330945573260887553214403337241403506546759794428039047421713985257852144863245351672506158631339468801643137671531216468976298283073810402008285641752893620460102149693019792840432838996831094342144143118768962882827442125046225036239716840683829608837218045747185246315179508741599711645197517399984491522373925984538616938264554565292990932366944777482987179990371926259728668975433649789172034434029132992941160934758824465343202805266910363575713981211348565408931615166115656794349397925622360819301113705499022374910211756211152649536822209471424325553129101430109203414016991748579821404029234145860017013981638980061651577704440299587374532157564683026412307402083432815195678147230750406083463113645386541356813847382639617449370805992144692478175743855362226912259281037219502004031553635577804493334181474555955830482410441841229543996813508863274267139084102190112560705736360016276542336509855165674906694438833972055586404658195254018057716752434721237140368886258367622714933205043423667903331224235180589077683816234605512724107579001178305192035184475190217387275808668935771822084345700414933965759154427436520033662420588680655172530594652473834809380322699448307388471880215619580148680739114718562317042990375956615534366345263573199707426811663636217588544449436497588692863199340183008056648932093941465490036056689850445513875327065253480817903814431336047393385021347518362067739850456760845083990307479895866695056531284030241335194435229867476529399646061582032330192562247133558987191177969804790903921171776258392687416561258803645808199699088500714264980894836683677486326294058721126386562964611100762077669229335304831815069317272944164852055621333276888784791447818833866743938836731691153888782703165907913324036681410767928336781300073216400705915366567491256693392902706550927516890097295128962384277170397646109830636485838310244697880498050268964268774298497428563238298744045270235791908548227016535248810886902126285181461237060177160003264833858855837799375179988346823713445011844183470599404718392655642937330350014824821107307732584789873952749128343857618487554786082266684298098148893005127007158733772774223168249112241011556615782299583750805092145007966348991136408292350862156100417509539236653090921191481770438262955429921131967163840758721190694834072081548503034814845486882631182479639688077105752461907825153484921007910845475003564235257882563330540586815664260906074028476497001525398204775793075972788561921414059460202438366259881767762420900022014886802915036426566801154972854869985105717070189004991011344203522073163062931954808876918435107393658824304725716796049568824605115455563703578127874699801390461749200709859485331378158642212938704291395358728719920569189293236889760558628463910962352073855919049951834320870044779335099542436063257002440689753022934444784406072986897782831470256897536744144376642156427583107582189171819509164218836593364157472934728050116739690913311802299695191728826010493686489377065809347976541705583822843194609403190215463896137125958774899060413219955146767888504241505928398668773044194950720431477649048322890649232717252846964005216564556895079792843391250104185465004281903270271694937521980792344599981298803838783711358577558312808545073820738465623891808247072619066022215243253696955585589766490854678820628995878547466322714866515183951376170001182273632804571402140891993889527444203024569085913146213847647631891176396163900522233032830837252596825128634666895567103485145951736663315205280534805211509323703862017411749445864893773611569793447533314757951967638333012093379153037043660114514932171464864749616047856551338214818388468049566302613347734260194019201788016544347452281611973893457374156219849671304312567909857626085932472131970174001952365043365458824817434895111447833051189873583712509185074475446575132568647411858424033237729570213259576470534167957558217840899805386185927619006481001062637215283824161599798393964663853726355399834356118596053484401829758372870949805796473384186742022348416624019135378524608257842765675377580896978718096269787900827659535604057580339898747969774024184225667964276172708876953180495765258753105230195750736274000692881207778497612064090061191646603487360745310440917043156924155570211607817536906691113635105102750936863112545361293768932582019540327174338674511049057048939473228496625883886221814712158886391253516739667985283970172498836077860532999464678280329169791382798735060380789853047654973273769059245377705944225987252717830238034939367286125418223908845137565401683089470646400389221951483875110361804910044773319531498908227356740301943006206056027429144959848456149065491316457649177362498410639052437606496418794462039616555381514049875270119791269051309861543942719030767954837668875334918821208700797232966335886817830778776711174590484895952106118254061215935837305623590900196547513847231707562068971992320798117958778514048820399505765614729764366320000559600933121522709801260355192454294006946184538131741409355439775015186005318059038583846634857715320534287564945349683347286164569386216601906134212741835763898704323386468720233311980154634714259412081331672014623586848199400631272068685421826237495594350177781274136996483001625529076421766905535787938202780580980725354141365095726026268439346576815613969070918849575333759670798960880904217069891504940901352048421329591441030141191515422139528317283473031502449443333813699522336269054710466154842758698166297512698879750169233528093702386081122987854727392184440556142402487435853277314172355893695221022246693310350984857222344716090317031474717292677428218093211277647611811332797307961957523580749508583485364761583059684026831437499536996558645653308119618459233895329327985293383093117260894897547010522139558333327429313724634107162204494604083539318609663566191772157177813684016008474883138240159808748383715573412619323983114016651698977697695381565168022859520731929031594248219163640910619092949222868170933678945607117864921615748732190341447413655996096662001787567238249507297106002877381063143034519182033625295854789650753162149807804810227203970539241456413452147489118595521701169980582996158577699026556925166044513376437215962832208282439823990790074775030660471254314194720908424303003219446520348463252285254926151041570345285538274712517883335331219102112005624085185599733556572546761326700074496271366471288402571963543060122936733130488099937143084893400354106426179522122472163264199329677180715425137511634768396470704565220992929204947458295732607868935716948352323750097291100655822667343562672197517471994965648245713589656233056110376554810731911928996676371825610264488837591716123141304902241020499240143998190646391199393565400827851558696260019740620995303207904395367193244662620358598973064247203555655128697116586637034338707891965574425543756877359422540075476113739358130275761580459339615017745582379136815514501038656066629817123903664118425567755947822606437766879003707914282441391889156864850546583525855873141424747319428496632447987964994531929743828590487099622146670713139298694320736792572957996109202063960859717720295373173939689179418812281974526715905808582174767494879180391756683004952644308731843820108740467292873699495345959876259640017361685090858589875328566751632126619357188063486661549028258983669316398481419625870348426489641343244358960322263817148709928825177745505090798662990088361808225274604753460734173103955941424052959544257522648402784911307311435382716670190894796675866704396587156128611148799933248743261883150688474470052898067381880456960516929875445844513326359418008278010826334383178529618399092195903378083245088342291657680128863213317816169703567630080069826322455629507351821933750239029589799974872653318061149338841366792666890683061049071313737942603715698987213558753825232129513817160174335040132303479104906471665683478468855295624684031167493671059082300508707475832591722342859494952019990970811898394026182680629895029618782115712231073374213849874701148297159223660642684027583378511152251112342471703188094414104830149691413426026599038941890580855209680033451930595319369460107801868813039742673765709499994987636353568613510041413648933164950394605788114146528317354316481481125669790093336628409803009491239526947037524324231255264892165918009483327938425540267782159125595699949901804604073432494242779926192864086268582573795985738572436936027007892242742125271910075448151605760651463809727466139883703981349895144368135835302346803406799485785360074847004877937298729925019514271473344808803687851748863951320130582299542294937750951807288627753639797906645630886266938091997363801460779611074061362761991462127738775119141730372973852731398947957957147145423985418499379955823452001662056524488835116477032333777882509036951583354303521242111533468731265230794909631339748246199763471263410130626946157241331083929784457827997855280846423922781154687797193619541734564079919531436617372147040927156546199653301756887010414762895029593945215609932908647033153491147184683753365708904494961453068382243509475439341747010591098333227118601299566165645410225594583245673180079112909396336281716615360629005864690239059095076465000843557184512447346845229503612325488484511349793402045759364576453047295895108153194479915311831208385252843829501564416875718669624118137973772375197482705937879083363658425231646602086745813697703613074493869074306627936293194929306455975691142137253543806835402765867169218142660392189114952001101676474145837606407910877033906660453431620475599597410702300522702721749898504321597557003926399429915781896670995890391251929798982600846761689449090422322939361378780445804177256797058385871559745282568063518409923168544955125148201271882986294037413788403171362592983367810228239056114126454619085747246599851719034032429042829946525626198442442152924870300749569409358896729720789899210235944556310984963419652465693679033001405244667187821744340909707035278116451448084347366723710455951688122293822871289465305239911771246089162431056186897914649054519152526989992966328503545822123904169496071015075769939202007878511424834035379605374214421082276286459104323943440677229129045494342445920623266900851119649936725320306128273197246247515599892471666822243622586556307384788564706866329846175056312270553671302781146610196412509791798342373218845597536815277894675003104318691562793024043132748576166999059952000273123829439011099245442266066489976208748946381360990590583207907929283134662953554700524455904940579808124572134145398316167946710842315931833570915560385627760487194981724217287255179542799161609515744058473670365508747223810468922474388496599137512426829352927204374961770539621902456988620582797994539016467017715291522958388970940171148383402802504844548813841506994495225713499086065775128662570052726605920443744190058386770187093570366197821248807236857397413603541265852668106708935472874023822135121729889180596687137214008296947615076750963785543843001961039860492268752523553294905927617148038863640985735515028740966547130853904098620069091769856058255694921737498387999566869681426899328493102072550811603658808487172670905177724550367032179011147344000241551511767446287693323801204003563293154193478563721554928428831211211819268286760855773205923201497853564596972482952492882366968723177062033437718829640251970228015218535812194072478371615294897443687955366153813677293975988294820359011496715656632469296058266723732991112672509864507703535159356588131704964899535852013044226579707059716729898418230690033039846369926384928769435603003402744530536468915942709766073848521620986128738387985367248927038826129599263479203757479155422220572269392161628122860472811836868993453313763978249703713124480040262596123485991204499429035284692270310051404842680024433315963401828275810285398808911193923372763051569484939450043307340086341937078647461588228593292067596326468601847361548029551309893359402558061241976793215533975693544433838334556877645661088382206702043383743624743251390226338682100708521987017663239147143764477848204901163469973910438246311189292083106190680136486032193537904707828357735088926806663200413490443462208317227346938803505069591313113593726085880683544658712632713498036046068308103437631834684776979467787828689881133295906235219742989586025556899325390429751640201130444818580378779423213702590034930796725568644860726473621090579511362727554257134429639179295005911969747059375384381901550176943214143781637916488918453453527974254884560323659726934827415412259433421085952256152303505611045314490789271140206329845846694069730343528646604245518583898927331875351231575312982051948866893985627906801272803405944747888007009153508147107630947745799518473385226822744222771006998065717578125877662064413560588823902543293345351712535942278063830447685870344209772332679826750962787076610874523923324167658347140241672404611792725224977918079451363190278257842519471320345875617873629839171944744913787824293497253465733681431974294875800833665271866628828871033747295164512440466747248039737207296114792914570186577394383924920424139171052412538136536960319238976425071206831581289807338454111423926544849783918423223804651506899784377561137992225634234624596103985281721675887990888309355824547328237313720993006967841770716513726197327463844014725366597837154543326434082742136323952704043346602634717878239703375591734103068795685534869437618537191027890520592159474053268766502199770644783691266065595614196743410530082805171247868666077015912300634905418170689740401948160329410018034452926021759902229786548493822070008845081814803708572436840211562277289591645786641467986299795016502767698952760376849507206370848041681799708219553536235616225920099807909070077640990688617494972027536861019025755387004687635187513774576013116188634189561098380687922642189741479018571416722830498870638985161743192188742844564177027719604535373838434116559301361176175735995497860275308164768718539572124451985325510644753037406779990923398044512367496600805241110241880793156972423798038085303588257412462888589257413567945048664892616413891030115622837199347174079369947656075039129332896180644854436152568421253807329055209822192896885873130469150325362864642054343481251348916812080018903545921221734243141125423824785821940734282458708134051861239755517283740881832333557146894690968106154864455559912827997268121726194794208957126662734690261768133105166122861727324529737158355768782676507478385152340653699312707326069387785451234847084960983781125867332243483691507011645850416638280376617921215405820947059214447244433647299178227967884247929073798770865602373209579438812693574893864968183486738503045761222781422337541155916484727293243853975786242460240849581777050092518352548495220742452139954070160146548178635889596553682495098599545603741995410903011281860645583851856734817814690232657271607163488946036327450659481844858581283393942934100250522442581279208383251600364466107457179022970942625954144985556041948659233133883584094801329718452638160213432003939719109575421554496291073623104497066228436778081839628002139123182833864533024381131481826066846746927267535824927579097165980599878313952831983389759169673596672033334254449638357315833702144065392988884690323623425094584414025796516437473998908925862391291463923828206361615416863571276327067082497210417937847796860526448929879485291639609700519922084437573704571694835727921972685253356645549553638790671309700173658126228965930670144869125416534576474511805568233672366915822239112524697829812209392602677472786532024685189733445341140239227329717804122846614839464846498289083041001517601141644782877732257278572241753215486807859188808059818284970278182194820526340670851504442873262564550368880580462168563117490041596430331347606074477766893854689536433554740201227186899072471401378406723300219359829120365963943626970194304874435335599656715911822532658492445397891570428656190850328171781080288951172489670510090346780782731255754119232784055540797893529747432990132697337931514459499441532259696050275276436861886113358287645229013848094843128083152262180453140185187828613884824847762057586409039464197917632920317462335941032964942475298028243796841880116873485165103343749002700875177679249642269117847959091134143257102937607784880523047647662746657027839320546785888566428475876124851643316837218249870722288998356070821043090541593440187306719486358454424428416177318452971645698225178708786481472037622363968190515470767728526361135439705086091613889640147536057026301252728150385390848524482049584076700206169140977222940768130122891935778297073977259063830148616489669844064102349205421381011271410442838558668729556792331622095692960614097007333043013895294073164365595947144076504771301452137734669504931539641077210963444808873232012115826925030043045243143221718302021453057168974092455811455148233849457920072631709609070180432471879887378622100162022224890486477061206146099765038123752197206724372726860350943469919167472733654913947398975934307751276895551609851256529246562180687718864045305417498030795461792456680585651407681142682844146891463125042608321257452083350729556259134977781190643104866409404123931180222204397427495926063163672217445616074415143764995022051486077146397991007910889608081278074103269116068877182099297299139565922167072274608981810472553573250911215468414103650348480324125198835601580020662358179234226480072639858104259157231681699292962567639269654251308259925761587434816683893130483897283339306737096792214896564855718480333949961635020637470656375467834885915037480756617215821416085013853348538386828781687475946694517436864639762408178114373080485390530296824110425045745346142631694331997771254260354940604004669687521127598938766885619102612039076711905715331178570262554217846824819356180944221328005858129963888282494939890099773516177237070252105650919323071814176574737572195223879703599810124369408641950361895828286181227829943669372387530967619245524883564658812353229571429053327896885331849640818340025042616986425835162438612983683647656342456574260116725946124088761615272825457445097271479877080188989955748873302921481492074362751825274336796702336969696298457936738640068726286921742510093294074816786996056182223714018230743076936607256713735084275683127923271273642444949318593783822946469365106905464889956509165975572144916931244474630934399011244676710289112068331645813021464338724343001647889236976093155199408310059213490429612992212464981814280997772387503605075297921607476169098108019958800766186683824153222328559370793308599250106397813232194413558546844912032768754962635406477469083266942647906136798247821915286007277531659888442709625295230985328713721551003211023039863452297104105433389232165834821907921821574035121098338066356554036732381461838900274938975981369257332685483057666306555361014492585838183286054225195929167382619477234129427764851890661794903439032254519337952786416972503178583845574552518956344837894064224391718552209281097756087873931284167298691052463206666013208782919183944557683877090992210997377791550173639460192718301982948435718971423646489873061233222292240390782917536136047460321746380567611111368999367843678908042612678884020735201841280260520257359434488868875584824434660683790458416518349473536342771637454123378477154780761787993584021701386340085152921955901712634043996668093707897257928367855979407176546981057065039847342177825284402010846367734941886700401851348212272100521037709544551480993863736903959118349489041607034316773372481001988134228950290991165693838955325899334562483388390418938132336307823759353787465307578978383455301021402909727438721502565540202822648296842137962359095494904245305069569621369293145780450294187676129844269094464569260793558730562932243375657294332606931208246909531385654317051811335758316388282532755895039900470105103341461526774033197168296631878379525521469505948787744085110230162815558170843645252525974693871302974801413697758948106377549124197502222552639465138602000420297285748485835184585221154800605062957756748672981153762409663233476707681482074722333374280559414973149787022938337058244030370228437204421177857845861105013924066294454527564439049758169263786569189589214402535996606942938523736787003189547186465171816358265918364167837917596187790755604664081459912697262355566456157398384620027593142668269870844622836071896586460470484062454694250444408391249969325131527279567687153674112661976543653416529468698793730569765208689175166255027719635763356334027670405532016834239106465632513784991942302904851789950369268570259021249218001233109439323512970725823012269225790904982002036634513138027383497303856498587293545968588855643144035391766635943194206228614379017762716504032812563853107553748751026581593718346992087265809028881441356518670870059265238933545819332651195667363508801380014556335815673328556232367395546534233858118087989516959602693918101737582910316762624983638837636689121522391481647984754501961144043542874522756153787719795045895002321217991579006534658730797231837273205862629959998232710993113787672261165355419291706006451170050103711401483362125240469521587032602119324110523314824111229067684356623694722759621193189245396982477613827125139091874368343235536016859446886784762364179771157920244299650812745606942275214673334429498248682641797852956633894895689177680643028710731393587373431428168881585932112287026647327583822678549886746179843573585006824306253379437473469862159389893862173849824253940513016370266105383018260580335405145497085898438891992285711541259310400013840320416952299186912261755889498930133013958550061807665645070254453580197094836202573067245610351700605569019078520873612472247429489438942273743196880390448963344515586542515719981838577808460334525752720615699592206799267254342689613817160983998631663119826001911980611751464264576249648400581044728128693221219254103853623448153653616397022692293857437996406916539213881507706145362890440321477256988192535391351924693689643675536971713440315621242783283827116809768010118720281925571594628092221321664651146835355821061572915875040705534876323651535636526107508608232572624808137355104031711379103639868512261246859785133140866963031789101910808173529036761153243536350028066513977121554882194504077813410365709856259587071219039475317822330867011762185085791347940925617465859911118064075394676217048108317964794140905853071931547181605123641277783457535240456947297208724763837819525550423181734865119890038213236150409401049897910167744822257155319420102711449245970293669148338771350795181299121398187542765340939458434290684857444319986692449425614533180016428502817201931515194146126909271571578993823570385867167877250446470572419496838115464466194733712925571683835093468033750062276286119498225402875707105358077093598447768677103662771406710686296144849245614850362893969044456833214083654029232404439800408691929011638616619893657279728883889465603174435642094557625425327923407303234657489780315664797925365612114547792661037139314685297128716054504987328884343561847062594804278955958847438854986898651280597141101942054365154569241330933169201029764989783472836426559344785242132216817863462194045497169686644770195934971743608143814677616364389906244681096987181403620146434862952516521866411448642571155921247665016831220688315572401317096819787591470976178972646331057450405694040265948435305899363736712401748484152606508619585169927142123452790992551683185736817988884926679570238170160106294973682599913036596808805921136585578109349109070686311113650620478900573899521845261579812354345271343076603540160476843239500941195150946829553176539466555711601004152584285794295044462415581221365795852109572315510648613109816736835410284946929656468191829937822968301342314953161137737464861586437567810278585362601101755595078669745683006442624949905054246747653013470267723690766799794001529912438574246138546936247872601312451987212164720277957228270029928317775970329909099313608990417862443771088187888957986815893323766228195862106617874753556366114798017189903337523844286189392182956590421290625097005678353806483787539077576582681072647228178568468820410938030519867325834215970278066791571908953851356998424162588707218698621410542040416429679038499749580115569970949064384699453235112973799497421207716137111244442520578751835210058467806574870602243151447481120752128061425141611059234689835152388886061509913186258043930902608689035581956465021803504587908672506785306697058020519885600426834282031264212000265811014824961224879687719817241341364997290580383739475841952845236020091482177149152449542347460246139946248088379686446296882111525515597002979359443725825278180238909147475217742557223033317287355953354414585422411726703585183854835450971213516518534982017418686682486641625541096501565660907970368638209933940263367321028241177270739551487515392535350468903967439378464711561681986583625824108163430828514033551582141099988017827152916813547607990353706322015570856939013853385533339344608542428144126355976124574767162253679072408071361781455258947128510050601173875601717658801833088923729896517251932996805629798525285664782637079271982759007286669532050113225155079796579872314959250291651631737294871244493320821235211883831191868623734882080231087863253038148493776897278893335166720872960719161999978457095817019409598829255149458541439910850766169948450401326771167116550631279640217826617797557322915356727890989640338600621241834424135116842927440287227522414497394704783688234613544813422743400985647061423892544735748124529332166315192001688164171509449819876820012626442163006379157643962311107531509153047409415449622337805614253075714113668616697438555982123343652166745784122141071605995072876204939611235409383404958130330029827711911013790616502956898718027260729640303787394097806033022636059680853011478115931291171443804845316378537284832461311232615694437226358592891738635452994809554694427261162820805188382471101691737634043612079833711179490834149558501722154892817765320177579014447573884273825223431566585493153843038208020100238658446176335323273055728456493852663107963636021064331096616571503655391367560818465640455562266534274675399288392253249682870735400518815609007521487399960635832397581809569870176616673891449944855639223754194603038969162181191200575508516144833504755314246082593802995914504254088308303522219537055989362984128447492236605944311645167726330396858159569279702360929583125720357459467711990831662141752530330904055112932541135363784305987083234117177826255251981840519011309799743464476247132368361568063034997695470089758455546379518787307988841921000467771438972436550815277740090498409861205943447913244296992654394193919239294948337200624515357432777478731704879495816506979565386236150035331133529594512990385937131061069767035329378232238175850947920254127826638538319248867286522211284429481215860931556859081050316803746953080524127196395235793638332785935895356477416699869032716587120363769553293263520717307259672552780237807223778181892105624407514385883188015016816703920696815910540068439738179478792390353957631186681631306164087845399300608472938427514395239062016234183538116816319830158177357188780634066150961066407657843421872880936056037781875172835705872172496224969869434850253441405204259671330489870520773974856941252275975040517626444020474275640529032647772046016189672862381820077629421220570659940320963944415620290791521927329417246219071230659967144396001913765321948896086399782818283318034611610787079190187605046729752983942980743549403829683838228518306794035600697499378166792074317639508467814877744160326187591440367813979411235726440123129436373726589393467643169396431991136191049425664118855012477822475381417859941333647455217379657078506103919146816766308978868272487120520966425533386500658953795966886855228571308628954093348296409873910753485381652545573854936886054629027183444283244217319212017109252210092576444030478782841620329160453457691475936305408327380680359481864077560779308820554028085022836983637974292692734687219102407687684159383670588757744302768476982358209032173910118000224404970178026950511728950992526811744620018412180294837085478467898527169330264511210518342103303959979408149779286951723397439877675900312366057362232303249447346565258642923702760977800781848107611584411379718332565302222734029304048450207291866904132876851151867286344054979711701097918328265844744772965755529019527600280474952626467420033311876340166441940171785805717456699429560224137904877381035556575448827610329617330004869579324708284636934223786588691642555576336568172001579231408172869693816596644629068949871550327268802251765905870107000542659763618779559397493682398674955104135614874641896070345351335043821096172075905119169522673046310846873839789486989019774636520225019423811168473861514985941778725765590440484425902270475944731229860651332875935222053545225303323298756555238129032188228079314923456372962718415229257814932740389940962634037204535908026846453782732733360823448209866967175684199406473049231782889893210881369337828486265806883332351685542959931454773086517959220852856831243972552683418934879676393704998549151704964202446311537818461469579372813770483730875313869005877764523208097941761639543882533064717287236289893647809999238466791551463760085789143735078032340464425595727018187408870140328200016934451786430172106742498123270172068869819786732919265220539407465386977047985624959913882340194638734092426942396317588900980068647554209621969016059856509095867170950281096880031662340512493629829047928205348431708578673247675039975193595367289092835115008945906030171261796952901559568042968212439302568094080902600555459371099055644517594719907666563157755219975449242422095522769490046030693029652181270446422488455033169672074760266630724953256689902159338890746220243590067400768230897004495298736130847830861957600776935029462575633570613610881997857631326119453053866441448463090003426983007514913048741488661884713858202350601150235733455315220779506832760087501218343777350291661200478875901384066925207111438724987461443224793664557050379161776054682894083636129168962830378839568306438685655370203401837488495740313276708584278533991950839286610145281844433804556804239174354318787811246847931765237824993631115434688674840139321905434456076745114448269939391429633605682180527786180399378160257756836937897234340029955936581535819589840441028876734577064331654396392052993511024153107465433394453593120866237130264199221472588145454423884154733158474972934693901048450261481966623370256543508229974964118880974937506621130645433608097675926571973082504550811430602829970862460896394440770594806417284998646902974820210030762055165844407903394902156411451106680719566398006243683421599871263646648143176438095808308342989268804261191629502501992044166817793058494978796133071428984149684545773065574081868457196905123108388095870073193483637856376729493210514739978037597104520960741757618715194458202061404587686896455896568844053697349432350691824673970888094414566927507853937914673067411302238152059436566752738285551016997342372745922131944213382605758376600146524158222473410034527118380148085620272034976261771018529061491286362691995488345868646941745731585708858543705347673944951885230345586828478149083449844794454826232406797046807568240452681757762666126110285275097326176446481393306579184584894158197033629795830519878256157946198689109015254161229754327897838036745464961805501430962882605880892974915696922390887717798731757639466946973966846613656054011647591126397096166611621043396434863743080711423529895488402049373412459138862339495690219825980622680715948347718248571487748585409834124008026972537031307857395405088534041036575773837987236946443713766870772684474062577659121207731901108285723886701521320310343272357480467526018141427985626863418492012949150162655814379370877091919346525509919679037070281494275945751828503068167142954002334050920778838078497479504598940113422819222217033178187108917933374507918413287886440042759717730095395884580073902205849854104038767490288031898802397164240343673946568150476506146873914080093609180383289166652209222297282722120745000621819004292430525882667880929116247637586381756325687734281711233191669304526984004024840060254632039205583708688310381978881277947851144461769047450673744032921144427051985495448339807033369560055331536149704980273713341737718606175927188505086697840274766978078852238176844765900921094136345478649840654927941331829710517821590464629334755540933405842945504939359054446205047502050637670539694620061783698558874677146280345924091253329865236891294500560337345081184561041674003356832252159947800831325087855512020522724397753618944559841741844703803188788352888310927348064241267824124036420056955480501802969192570415357021253869121283367124941215590441075534405917800850997452403910348386719315674728944212553604426023852648853606235855614247995396436616488696026156061274192311386880527427092199477635806320787360943343671225717243067477741325767152736108970476682800765870656497427535219213106645150015248705124312278862455967795096979164540498211872545620087127235233438825813256658237949978538679993297649070608429714413044282200930047405596394457448951335408617672961433790682883975802481414525414562019488576644527074561981339678581020178190109456676704093373955801219825035064640278483310966325693478713283725340180307063988300766374403582485084222106555582249304760886064704737373938662240377834510390175120850159503390949469201613113959733975474644659491135052444657309813494652937957414593026396440884682409634315770129810180666027494350198968046151327374793160763102783525096149435937399651659946685337609476123314516919374098001851179951960143600017836417805148064258936422430151411534665828361302060501583402671386249504355705541036854378425610006490514972842423323924020229728752506829233373502979459039310850930551002401855869115687193765926240463399523809762633149390882130143424320501584047868165905662725980448132159470895337977042947163789420159443100871957236321460444430850274287489375652895085210904142735885798182275755229030439125175118830356988229977991905774469516230178575687714767898923162227811879837661840507771251523804740900503205394491045812498343986259748735853477457962305099466385692325275663455657414203778862463578060799669278290446701718239943179020575734098586366694569616038155363387526290646600192770349701302302305592782698932260792233354790683348683658090652285090796102439992267485017731815312809106881640831798735727323351274282569347149016020804270249753156227314058885504200607095577776452363004347543958882536273002975176505132105007382311437187531495173506572861641925075585682155233103864305553669653016629215770548808781624750596540048578418788510595423356093693135746715234660609840623992837764839485320795468860633216684841975544094460936588441261307074042477724792503026829640119739407375206569791176245376498231235025860232889600253057790461352741726748786802449973520347228564232511408981401161886362225460205520469704685634911518820347104607649593775538206124790892460111853099634010636313550375590401583798379755031288215525746512788756823749386389569179112401604006509988253299840451194182945381740483755831955516819842057267096494616088534236704789369921184529139575413449019903436224784148520742356946731122487934785731880871380014568477944443081233201359862759340657246345524778005739288160027082423511137592287107091927996178300820065829486992815681937479859919745906625319334536766642697578414705951580957472786019243953422368364846281251437580707682211664959374559980229780088834464297049603089999286161065240860068557800012746222855788071013361068266093110905786027966652899965419067525725002507959000069969659057697707602496819534699445623456899239807953994848969073226456857129377585187439457024873781675022662072614740707757517084343267758177058660971534379049591878013021426302226925480809807309588364530995625052352354773832375827616191829824250309559533512522362594324767106162976261408379283591881904670747597673450021353517700166079549018711933603855944097965852074163826804479097892068808575716055039784016695567454291950891808171243549464350144479388486812263757083452395843030741890353137085312581505265907543813864026973031980493426678411152399845811029938298147363633809302260783058240203830591259235358337438020687457576185323895146191832674267321750524501574605576128240036414467185121919238356630092058406669651965167447701048202656998379401030377097306297601819282989431474232386497315378825016239743232953673950386721641147804587983324749950222440384215482304070479211386370662927409138582200099446361585505305223616777080360214175633629619168012934209994335220196586042445444305640010397183165642498953304517888889375610609054611166472525324489458256319937937683488467572573416555736977234798065251466608322257873961584992692145097840393050715004751554218487734918207819164768294306132879308766799589764886739181048811535801623202445052685913883332763095775134563422730476766625412219989894959240487132069254315965393377749917846886523531072230816181179440313747293016752118275438920227785199139713796262078042121957279670062409903999216868834804904416074980134285839595098384284031299809160676587326852426599996764923402878988531714052681859165880821911358059535737255159437643461629755148375213058862141404251159578984929352886670199649170062423772411876866261969830387844012248597536048733386597327863097962626597924053054770519046023191566822897813315436135903097367475512816050131221658415573191513862304260460448815936976801118834937321358527714867824743467028410947062970685283368462016891036243201507812038727891082849237336701250690551139918063948245560084536875132058412856029241541630113899086305514153467808201524156059289391730065613035014627758385377438508218539714699921002931761519159490100818744545861416001228747178211953570302567354147293526407031832009248463191457323454801674146575461288702909807137920767378291226312154853068927073418705787344028771911111804015182402051540644877572827458202221530910798071565668967697080360798224867746663115589107757670932949906707363778958499012046213638931276452309908276446599386441001152009729633045204090235144606348741427669050110507843823453070855963512071433442580567608031008286552737729331595289638148864117270868648562079721437414700974603745700663847327975631575127175561739184655088847225706607887698526652852087090054618937219905934636345712931705522644600620750766823792969844030185654958254671635206143103552077063280783419562968735706872931131572129449925570881944273433782431963815088343361750345336044257849954181577503915140395602572995325260655542177656932316504699017354744367316387797615536305028369341436663647032645403690382460919297023509153175621873437454518659792727444938782013339802257463399725586659575626967421479187955178635298518691905332649163901969814949552335945315078604215915589902472741067717445461271376277670218381353318354150074860457151139714048712828329374192568189028526495209394473025507525496462431499591579862131827875636731523950540976912588492628533349969655906385965089447813127531473253974405940247103609362516706314132178021332923955740825013501055789749166615617451142240472397375778161388278543205742848792003482747014626031701727100275862922840492180855800818283117215521748434128948688038677109097258130575756794859194222255878981281958609483938651682538474585575321918963841675619495734761449054372811896848146597192739829100500088882241390606086153527044241568795408051720824986967779434380987763908422019715171251588650117684047355448094838598233040018968612548807342100696857957416140105036072112255146524637097690415396652274072627585384647790924118132684385961323972058278352856386326180967005934807814562786083369143427728614267492725445753856711559003550781686393373132076675910757311629997928948062922753621086643092500295676921164902792138150900691036466258335856774173893486919258465756359742232836915413142041427797686643263796285473215735583448861299024540211239701840096402436746074990545857738386421021685649909226107868487302047170733796245626629394205696519325601612457255053617750712814252290978216419683972286152468559103935082686571499209371622666287604537920177879671816196940100277639508824076668094566264848256587700878583072735491203783857549820963990595230459417357513372790610297360722647858177694498970501612202591372802458120982165319421611486141056047739737282480176287416604216017020474000505990793335369555733556484600516440956914931600305012986674896483421891609031273711253595646717520070180728308457703540293710684437158594635636763019317407746802872626426624562824738593939128928240967674189286091076236162236753680087324664511170552615942495072177154058522058265831765076081231962838597813966420874249480496344239650257104159110507027619333747610485662898267617344033897804029051435437660812001945500357566314677890780197106120969436268881684394817937794971539911626788415162239133237992871840849992011034800042268573528124059252038460795940447787331981746576909718718565483063146245309404096543147711554689488558159534440677857710024975535858254574468758562966626295735717517214156745035251924005394355702893516451244813537593621412275313632823724945908645640622734994073186003392877616667525474266997000831620291222944514898450259149126706697724794028157553875086350110611464069638549515125142442879914902314797517433174798767300315713773723841853026767526733120629120986207588640837205628780216288073071764930231995683502257411081511173566452135280104052654637468196403206855554007452057575614605798060198672799085646714930391890263792267304218067431118755935096957032444642509802665373112995437368124089063854319814411637200059923488521826916121684835697232626693416044813676041625628769000217278677593130805058450423303267784737920882034983544802060756752499742050521968272976175707297521108315509840635903526625948736473045826731404033834387318334931194349350937497117782417235116951276087286953048326359230643914284764394892514290464622747409774397181816750127897105164933203265535304416005715578873614141916098880648534553196260985832916339382956865875879512263861041319467130346829943261096073312237432748414949355231000197771693499309030522234251099416679742619192418080004869645301859144232790045742815360637833168649649926609925223352956008117171171800084540696452270693444136300820395794718481182829893216868649015079541615646883617400806910592008149751219316269200864022934219795888309272711690043058588325677146449395101980206369941502438317366949188504759012332494998493075278464346407969614204515484134975600384195875767896071509191771827435113550244545827337741497837080844998094100682480973396477786523252711602621234581250240513037626946125300838165171062744254059355393194994982288879493874091210286860303888686410461315317369962949479774571864676851394519333240846118542680332664326354403368732117376017851290416311374744635777395734166458860549334651032287756445331132795663079007630243270932757521428612553081072859151079105370889231469199398081705731729085067107459450106169698267966193993862238469649498141436654646449714364054863672139584210444402139420613883508457767149195139785761832790564554803178083814137796296299935090424798646517001368827830274068295504726310834053729809618269493250000689992581569370924957065952292121688420848353732184931093580315744576075612586199348520228196465799456107607946509774808163373653245374495242354417113796365720687216049877664879736739600561913999966590015131418642363523931833620122881909943989897199461329100700146058383711322246078688962216874053151629009140650198292139711727311898900631762031821115635078221673014126319457710353688470127664353747735439167243645284009883074643718911344710741817303519406501461196265297144167357021218233191069688178885501273052147404126078173151220478188263780585453325169111858123056171185197863340658254563213810098230785358287361794876121828961204035511506597398772599962609763566244838696099206235955503183455709614939400787342469449560438745895738721539382163005978813876612286372752606353215961742143576318936404187516937327677512004132012110222580221927270327387186679154573744318688020879770640896997214419203296490288528658460395400828304234307249816394929988104165297208451363082675921453869770099224212789431932368016945092856862585306597150625048963503669241027513540311318310525706857407873270730772032536485310053349815174219889931896245127257011552182874059991764838383122363552974436666319060297682150209939150907515314694631011720532241030682511928596665247024663105001846191905779378837739843068350026558787352523341914099456184907465731807862431345767770511673295490394132296451029832503648294627517116352154762873178987592488970999261792366232736211709211170825871306597457167245710241744767026569236992596028146121033741452669255373183456859053759949061716700167920880736135875807713561638240089963854774071267643627545339356147371910729052596823671871151675688016808548543318851584755161977244793889223697300967843985371322375885484527936054213524906635586398888461903902290922224815550979574542332256215346301069154327623209092020723074780678961317731887686848234373149112208662347091387460949164897529785251470617576498084870272837579833121227138068139693720755724419055008161450534758561063168054801632688766099787225422319352902387357134888909035614997651054480780149142963587076909475882790597598994462665960221818039856165740049559382330435549809866593659197645287149003944280224437033002670238927991879895893307009054982773737968555952426552985131456354388762084827820945120240085886557182682566991976623253744031920433010817892180678688129419115961602346636256998585838721373745033177720337862067228362792257443741959824497135604102216337114713331520835027083076639532419868239336556630337178794183006522762983445500726425537179238634340065307373563811494783520646732911828011389778655814483911466469484782219561635232461780897502174862621832756375447064584130896387351865906672064913786981648491375725857175309974976173499600431676346707960517413869049069323689918069922892971235981698287616056716811644770876174919868879602361421186244651173196883091145390467675466945936400785860169312053684371935226402211580439003918093116224566623839813560335502684292336539663808959111393850422142918591397535296776445876276753715322792147715116291966894221419046446808882787151134919545843006667558967412686418066098020625351300773761298544304809884123727935292677276610517402534515016153505953913669969812786194109676859656458334352931369234565240347746573284470175582948452804671197103354071901466192486355507089945096591496904179817434166918411994096886728934174796805649231199235211147102596866971582704248148234221845500193877862910944707200008124619744639238150318922606258608695111776321942356636455636698279895704389228505449947621198447744035000124461978172647285286126435002727170020826532077725415215266611576211357861125203180044273931757655438608512961277431935425132710342829110018672419483522329890879106731112960984400716512554603157022146646005059546488990336812067001782923504841233163675763502264320494566072904841702942546510661425302824161199575829466823729686418688432503562595501518686661605354172176566959878901209487867804234115901585571607469214064121077396051968862614399596672097746017010711742899671251749809378088126226520892910052801755970173092899775326297068821711908986256213323203460144767166461705337208455476836848333484772323668259393723378357419288647368315651782145165179977441133029050509320681862599514570340059280697505344524144558062496722770513281290830195665393420538942039581399161880435865528449447815542522531459968028552724125247380440434110320902993766038343512475993594311752296386479655542764860255198017513897858289053595605037111654113795421334000429927535020714475692725379934363023957323137680983130020063175808970196414967122442462405559449702406504909546856794529957471218846861673215727830896938759588418896419952216857130438334788045499113329976520810181887110479886261033025777360918136767188711413400694542429715753631821466488832667955760995424743842937919517459752417328738429181871667836596112870692837273248954447861048609032491129783447968565738792196588262422039813266165795542128801669476692692510188334030057068487173314216600230579783306100892690908921969635136844348915758967592122054125122370946155107639860052613546308511472404780762182054588755604343825688146291541595579182883614294880764226763123973261095689105625919825007650979211776853495962427512301213487093415325730309228620036441164112162680064393730461032748506725289348364244317457277174557487836546413074332869596761645653351533150331409790121798861483233046175676424401611770199344295521891959254758511941467356561121013415714551279142351113149920330840686128045798717249802374899446928874403457109804932611411196297778687378679989808334958199899851959265928913520358665651869498800036313043639778793738220699248940458021247980837354884326017623356791300572739962427977430641437654632377545445679092309502363438986933763794183091371772469120123501991266455119136654170362164210641806648146550192863138954347150735885079137321861108396741488479844852042142135182076547119778344512941649650224603825400435660127479684978879037109499816284965036038791869387087065729538380565583909872103060883365600389144861133734430430415892650502067648552476334336253333510278040760940165310707711616189522866970173444184283894303297780673194572905489720675209410170395954963104170156303925562439098294791379834359597465532153915406849691649724321377266068348895437612406725778374867528950209689816616278487609246951041188579932196725538507042419851879633017186673639624750184741333142182033040877901540098280248667350365870284294347078377793959449235437051263209536583435221233855315409189189825463696469403813828660965089746000315854991283657738956665760530800929216741164764524618149568562641121485131796956664920049096923308653168370806679285260312545862419396288681266342522276713431749741859534342453301784029764834010375345750936484383301160820865122889831708333263809807060568906997076530977973551289005263680464278124477701289610507098067882717672675083433185412125876806529206204307206663201676305453031287761041368475274955294714820158128422115034789238123855468975606569572734711685535686639575275693641738162707162823243640959079161049123288596043762115010100242216095766697325953843929716101587676887305819676204993679789952446534473117381526401766545410433450207176140770179370393624269538371240044794954002636354755481274747133065144610127706601332281334895934783482348489616801437250922100945863882127759738784364518531343465557988483230194269588476421213582630575305440172534841067008174077264376694415160931681108732294942048093598825065596854181156236278103584048978432950825194122309645785805449270517080832784726952096719603122338618374653523086088806333903909142879689306549936109291386964447015931707017923528761103504669390550475105467859280276336488234308538250214919226741224275199452293646079502573148142177837519554498379195752179219794933259583543307062003024157121161416370766814443193152365186252115905037953641414412716592328173022526531908975258333402050590535222745085245295573230598990202183426773716697217418472886115311384920607314277650489152607736879146258998872306639431704396297652390860377535715938893807314099659681380535651174136167443116804580148267702838176512736999807986170628847795250283066949490364659334765990497145336089976457268878566009022199115832827164422019684765621258163670764607256344242850939468859133438518396976419063242059262654036787121964296500209969864241300533953192092319274082141246645329697923383069194723111760444137814916153449755417606157373984831429050929337590972741192113506519875442988027817043757381901714800656154222996218280635435454692560265996343962764461852665503693167980638829780066098268311233642870750071822781021954763394475422808862958035598247835147181155219794606372090073728728138520330225176292009189090039184239487346272940396611734378904128781276436181868931968960133408750993659264369848773151654181453708158767619618819104486176459438018009383662496048628267315813767793377955876843220448472753986515062572599739047642455871233763108122759979002041440951344277554532804883016860933832581291391694648915308405306021019474043042642777171757870866394064195840197917454808932500463766106214111640669181040241021594638658540017014558932874966239826200759644422134885588037857060509786972650052462341752043041947562964989270851891832706931941474590960003358488958475490875245492030376104381175112336543337988537449903158839637607969830157646593447837225034438005497581960312542997653537466169593972933434102852579315883875872627462354347594965861411702968856940853206667884060723645194234399631460611322076479451313115133472291393650924521160202181942552992372349996311472534223162248412002309916918337822219099280031605511449455258768645898125268619211326224544559059957485996857256694341108600430230590937639203317876958978711962647476965918054679989489016342113431632500652225927774539567243080893992936892607317768661265618678418104846617307210555599004929783428332275663462268436870794866627670778544401312537358577429630403510890125569915080649296139546535782687638274428503787701556164911518563229909491070088345647355748475596946729046578457157102023580202311035204741685035617996767482494353180368730377362716452018454419235038945769963302444267066162520064462937841993519621661825134589240881492392447070871612107726165109905928064947186990829758823182515683102403210351908714473145965735047271821437491810771518656483390548626037598867902343514755306345051237836561658302921141218887762730386689017828579036518550057730291551733559790495415287045715644844711090291691996264229024473796325538738323923813652751963160571955182237197923162699764302571983529443945787739640505011122515853963334383730124294874265356386478861765144345787260516146603671140492884034740619481527377012290602166626276839021317769498054582859583573972042566088125490148587196503525313875097088766556469308306874100720653431130881944061448620276416970017259523361591258585922329772804305168614487067419456121254725527088066534901568209911716395799244845996030331185015542416385529345883327274926436357051443287127390701773839168497328053712323243540860283244997230934737563916928124908838039947035345679144576212156579189209838807386318656163858781757445883681362404432462676613939453520060379507705629341596220894026109633902692128245940256542604002277304571960093219298510758872163767509283951226304910348301234697286543550490301733793367051114635604476947473979847117744742397343062444607025093233917596278515221239939237163743098365447906430059457495211941014160046289080146422818333299995696461204313134611721292777703429151610396438517796566438332846594682883399882008953227549434048213451534677738593168675792446778934358439780693924958282561389028849605864817928075826702310067412347041823937573229348132164855253499471392600580367228802626423890805588352938618791030546930014677698411712769973846197808510383825702854225499427054219763143513026146105099655405073394017710774350504339068316998992403530283431142864193497101366273667397182470254929668414448538518113723436600557981351557216510337421908104028529287201706975966118238627789798654948185450955239191088125215349869057846847012758444432978469389436601714755672722846870620987632030752983347994869523241427501199429337305247273675041796550971181595943851697161429428784192927921577033263925937240375236005591197283153390209758754243435267400518468273310319575728807556078212561453826689499695187412246179939626062893028132910836327565471353575944054101694477841649261960411481369086571337136511248008778807122142062455864287375992176856355481219217410457348467655908655582675332305242973640054984908450284231121217605068327727971528710504502997193162064213032721973689530272338290647034820450363343786588157343120276739581475958297113177326896741347868845166399742546231388045067824220139781036736589954456007205826102395885629067272426560657077043255651671405325509922301786711783950279402681242488912432877311290911012090292085376107772517529982438848995733084201257446606393971767695490571015885529051895337770053686930924286164166563000607477820470371791656129201156677963741696518520192603379785393668924434230372353230448424943664836405651555798733899023520640785353752581190923844586938489184073585568963348647955089302229749413775215327451357878617801207855026556797272827771797131284099913927557804147693410706329506136034522344856412490087834971255461584506024973102901625266319433946871209150457850935233788015927471624212470643680020893408450408454228493933969410614480044562592817191067785084294593625024594050451315221920116049963521435986891968574272986398462830683669444392240948661718237923405738711578114554667477230103988307353669080846273523183473733157798049740803453425502984998062762757828159811857693519088692930994095271178451847305554574294859731377177034279556099020073499685016857462564912016763840333015014625873365610039641551913596980335978151669586555188849744254586488696453836229623823054450147493930901766984776676664312026977201261164835521903785540566417152448790107334306435700474284947818126344127169791913296330730627985337802762229235578815681025492857779407363801114139628204985967428954449858660504625234662417559387329157566206550660464467368441754721997420693971413047179850965888139156416669015905852664148672125243583671542227984540785630121157194228042287655091354503049439341039685127625466399603397634960242025248375709333839471561465055463997279798229323521991639723671976959438787486420114095421627380845814171583696001969297372020269462245265543798159922902905412214540892296595674531932940979549108239869158836870213299449988139194442222411425378860675967716845378958817821417519737230843609739726391039860328872743112366701603887448085420234585734552941466766702939007611632071166237462302654726673445604202815582855638916628400090161254037713873011653325535985156888208225560567988574840758631692970129638945073544211356493527327950848377048116017301713114153706821637276354497567100554811594801785438817158607741100664993055025439664614415756663977307695305482767535994430784428650325420021580578147567353816796926274130434783969134424423382061963560219886769058589006433191445133960157651130627083463645414173709002745121166316162224207268306485169632713728357447489104037309826227393037451794976494018922562138721124017776008507570390780087978727865083406351593217926658035392793888476652417882960624891219115800086584274291848931462699603717490582773138696174475798356294245335690838550487138804405824801778641138931148217332102979724941095296782599536552657406453962425207128130734961642866157175841361118354786082415905806792157725654504124440008068118761680308368173495212573490771540206004657238013719632703651840517874543791246019003366979630271259802775626281286283809098356965127527615101709452527607663013837231545153822479247349713766002993618396763286821377144218792658925173550016913091320912897802571718946415365372360680449306977617042760414084172725366784297844291605675111819655975052416528189525121604920143095589920801519394727335928111526222197913026997631800920757667010112203453812961664358112936350170333310195751805746776607928336738695686374789372377635242478422149602580608041206098886881358624161985249479452855027864988368905785939693362528949726070018803168134696432952255057808189450343084800033472097573917138712726762990176641615761716112113620431511252250502059255384649627837906242899098449103750212146051403190534058951249801559699084692590360379759764344573540550963705411101277531578483336105455944400284220618812433982148452604258142542685545991421504444567365031273128284638154874577049452535219543115382579069356830170250275718347165869595453129138998732719520769020641167679239351152080399246204329898539938539644487691178346055049306293074598982523243204446826529188951216201350763568396848053720156806916744507009577131040328770950813592978434334081178311683891239485358363128602583276159677753840003585873965894600304744930547167622518091076846803041866680368065332190579598979154671391573645710806312554981758068257133017205417391378982012573734708890753418941348597589705087875666866433676711645769688089729369882304673456472899439230436227766166863452668077020773367820014260370442419078990041237970711387791968609343394342717494247814046143349723952853759779091206589945225549641334640282570265913669632125156691353808024609570792191783454884542796931959968199006993440869003634548966722211495054522715085537271442025539041418640785015975383837054326794861304466082387446564631387471384270467358769939964466081826209114097542993328823668778069574840950582916141550968939663949819573135818066852756559073645663891367645072649756854671910660688373314143118081675713453080031314579209960259057450990026141798604988810224879873821692009799859355658945587008257003242461972823007822208610802919691395842263345113772382049330342117125968687576058914261127564569960645068991624123678305697259889773093706931644975262618383117012469411858493743079611569429487440819908367257640645755132751554662715805188286150523432076805946396828210846915561798744304651150447092852206982638858765760921034602561373200434276668876690883389262287180258979041130850139574162330156493770765118331436047885943525650455922917749503857417534270092005851735633436308048944520268107988802073477792690001653776752837145794035717677404241703000356702472643501920348186500039989314479166266510706376003068058664620391326173366135013262173096967033645705655137243289245604665558862193310356205964564614102960689756764738297861227350122591169820643714929040746814450767851486533832973564883906869008065721880806663530581677198656449652068017892112663530004572317291284243395498947997864932698728774841752969764332164029168025869647542182491479293786954540864692573215097953983296881428245685629862138892591167891488560167338719089652594475219241292424275595660119184517656328777427977570972847181151665046771601089778432298076888850130723149407100388391375093284071007226084572045121173596380587204707062086879732391241749073055985864357358335315529407179810153261192134598405700018887259124684987990809856292482507869395186983681378330022434047846639406228719736035004232094733611031294041700463138378376875067721585221353097247866533748383114170944105830087803277455087796089139100151005735035347815044853405098314315189513224460365314496764260852226938026056583299729035757830470627751296510413684386544551438730944132011033535971735234593607471271859166380955151108519937571834496037264553773593156207713156671247511608684829065782239833263454183596152339804844927880163230587073853182571992541765293746984497861925343751155809328102396754827728434209507467511439011954286384641644996157550179952356309087205619275827339681224150526092549284672093145511969720223844660891956213425145113513240132130040941501148342686076968509397620880120029158602020396731039745380509899305609785983544115282131622054137215334406025400065237448705000226166641244409435773328009633979436565653924863584657075643533035133472071772594726315519549020046337035869191062360632942245698984644820994610769391999370959066614792778744224778672029335582457180929352017292194582835526504644414278642523951913747486564917117341063725078207429696062441595730788065760077624813617465391290820909637354824347686402514570552642666714953928807205894021868740002457006708397296091006178754676166530837530276853098485123341407592015204037014734603405094482796144210558890765087606195656488303396863923414931567521137162008826303837581686714376726452655177414887638248518205131411100431447439209399594584929531844030854844989220996480751299816853661682450871332990559124044599181025977337430730117606516306251122401140262493000594949926572009884002539901013410820344258828735905037044791174185892368396656497206205486543768156623177402871797867447645202133524079147666130173314270968283445723273969332642616320701489361721636400229425972335008263358375477223890789732455293107014632164077057349268065380818495658959404601179097925437289624178570357923618729655523897714530905337287752827570491414836636556999327353436312797434056418677573296803190491874068828793306068982925800189686547271420444558331692930701219768971501490705224965340090651657693705011224933967510341418220215922943228354569273173067247507229055931601880261693894757995954248800604150263235154355371062468910998535169594809199320218609900613248192530989528497813907019813400585435437339872402972688580168972039640508720970119566969201611430921419293401144368175734394921378526452571902149934061147559013438156159589546997224506985804679466706842151720997801230593648131406637852885339255027037174897385553300555242812332413026063898148736103493301115250686388776171162113825941011635454000404291970538303344986377502339663352639203421649377883369238055933603217323306865411694194796913086482060571246649787302946477188633646688775654699617654230259581877741184179824774785722723828854906325190239218398117227975399776699589915828574844264659464692373454016168721017556172769103728195034616286086170631006929962584964520278184307314452807249793183613497581762750698383982001607944079630704793135954451232397902945218224928214461759144909975869678907283929018677706869460217070418975942696556542365420065784983868665344789653599675297669566059233496587370510724942314423878509397023708941458847296833485818205170407417332694880809062637091944210460692021643435722352617831962177602535413511458755617940602367503036615287295436088717549022495098205569146593249695505844472483085775833361503089036562937938061697463047326388654365788991909497547228869474326690844881100188770197906100667773559564529259972442164410143016819063953122239348937458867258319047106785724561546489289825090482220929855214904183114141727183884181928380063434646255208016512428112360007555031413304675322736353024385692637420284887140893621247422044928959875681264060697991650576326590999842650309863027677706683870059504801901480870384825424654531423159084810016672662895077391443166893586990207330279022843096102820430331978592966520458810625598540660951485410385257145734542627292424816560287366828089380243453526999178059045846112980413217809880258572722623686138049519523681859694954557624520086439449075044646633666201924674800584188063833442656979690409632228006444648889166190394894071565312894237091284022104399111922041196613321294053740308230452660867482899304368851073801890439848808912951392086334580738098626068071991652509027986316671338646061457198899533028652203640632778754451718458168878912077665593590762615715453834376362730942547440253354036053281495404276841106949031473864307540720655325017082958671691202491335752224792479466984088660823642630784100776062135743837566461496912445336629669962824982321948642721656838957038426023920275345883470253507270616713754885346004479304738111098939605189903463515651996332874504873008794937578505658562397463785288936660764582901827538439865155376003324597241571037306183612322514386365866727913378462121736188230025115041527540778179351077807525181907627173013820490115655925646179112274423988174263759561511563920872553583458517941111014571103226694749567110300346790855942110502603606860197212315103801986403046081708418122547234869873064425787867420955388790824536400302961601905113819814495224634501365918411529585832234919426081002326600591244909106743585300188771039890329032397036112231720594916154819330499327096029450361659950741112248783470722096296579746878689552085718408974122662269911120678555438725829931520129300599251382902937846551636902993940018268317158876178040638952445001232556711888272778389444608445569479832734755274629518933015347121216017803478619679493192409857777644583780610978539904553339220585218316654155082726566152251354110772819821071519397555928043937389569312358308969516626467776987636076503129420216634636436742050038848633663138123068611813464997694923117551190532980421519629110784414366034738239399565660245917370361308813550411962721785321204571857221894719308783854780501775891355391954559154167751734646518324015568968493310156060445555676055199664501565770772358923628555912936476566972751413598958988202404552504160443666179273925257466296039898243395022786129770614274789450110450947439869048354650174742955751359840553255665525311522865248719022381415141494173822079212449897042313361662671675709152214322339018261906254298391821081700373408614961116627872881461477510685494158294756156407325329806929661133355473158375544020064493062924957094671608853916652882236246299554287659359721139572254150270614501223773576947273474250686923762591814894736215936378507304384932058934041757556193477774013820398254253292344483731804024367920033830354587140888279766309667828630317634652445760940900992986570085361538516279243039318303798594832231628256877694875598873945253121574189630062414894369438080183154225318271328350313397024627293052179274005556328757703360523354780489742237727109098599684202075532136329663263212912648102226573972315091187695042004810427110029922801519846720637781510916382619401923930953490475622678535476691966711375418712977336573575905698643152450194334290109525638466256984370702148410462748337302993556792067710243827409566431608742915604505585257201496523292089774777141144611422713279302114223442489808524963895938091358236843051008220620212532581140346916765721958793572739018987846158913987427460849276250464335709925656159647623920319949589449165120753397898541481641366189273350887725808133127800906599699940005034265907762100083886406587667980033121424177392623755711717195503070602947250516388652365186637433735799530417477319200502935683243819018337367043474824866124359640385134074884883493777638251151104742172282632480820826700290920708590808337141066048980814014144636544672680238756130168346140687131432024095175269551627554618043593134451815942455987252242435276961046480421568660294638575195804464628260771579243312439168608628609983817671153473689784960005295186550419624619958290038588547889977403881702126771951185305341540469106279176296828847819076596679808289362944428672773844961483584799786278842210369900625207012007670271941040790540910449118538294416118063763853370948326663832710763563150958015949182711330145503000371705487055918692588883118902305456921846223035371907270729433602006296553088370788651461665788825573750585466854500486376466958885052599617835238746368183309785412581590012151029162540229318435738691824489923483747714590346478598079083347841634592414462150457741914554614909110478028492398874526193172577184193256306576062728790796799691350871569788378756538024031647590965257714090538378009813978360878827955011673361515457597315740149912594204896965728895339365366327422000556233643493472873776392775347177184601060397609440857386093973557391037953641405518966080781424161423270666203157934789284903294969966097086440972952413303891691655860646023009113202245697672878661507831977426520264325736303115872411137149835236395309781570957235023659236828577880870515820895213825764234257724264387978360401291637981788169084541741506432374921400647730104154604422952261190913656622920807531330504674166502082120665308493462256809657822260024006965499703437896492757091932966931528184590991317793306630226834581686048068111571732303707708736354388882840845005414190485962638887797215631016109672176098117146989696156136433518048377500665498671960553870958050710933765327305329162552915226894202577517126692783071427917657641430056719877956394358806354720505991757801810911669749788844405344235667258577318742408839430203696221704374125467883873022807103365374720964765851494692229265963496165325432251229802971648261512450628987599167705538170596541998904740601890974201342618995506314767489507617062093509837182122471190974136339239019934821677622913454040940600209192374145591586648525480269963400157809770775151408859329397669968669788053856106782907827298649574351681404261375960960734447482511179744579920062860918871335656601190714575646316144877659888762769959747276724673428525642900636903289899753843815038174059986799340535901915501253663310595916367596522086544658191110393531505632827860749682728997805790389784942193433135459578762054274948283916094547677701274080804792729173597089877906909206305989576449106927138160333914042940381658949424556941960803058401686981115367326803950087142563157451150165820642493717133258342954187165371058198181643599200011506187215612265586557783214439923761375809865048529108718067781528695838644104369368190992599852404611506286298580180611819193417334315408790999860303091527657368377850415451823450637479586554241690458899356689897785921371250966328627977654770230745805056044421509283056417115380200706942489562140041032191948906310017985853145539179354349285588755333747936009127935806678696503122615089597275679221654070794200250899193558808334574423658506539220010672770904268064616525013292795230828805657441509487218454360684589611416529617406701515968724250851337922062525200080113205495098136781912397539164490126069360981540418783952951758089588457355281194410991696671665116268120368415430439862076381835182472826088674858450446994456022117826373843863223897649067244075707016541676579393780417812556691221176905627154095872344758743948735422684676920137798221921892213008619372016680906179628589278107584953358947982302340692821159170478422186902965723393601851454405834800543772236962043630966796531430625865156030967796854264226698545825514335475208660002314987658134661915400954769370074730502464300006738297870280151128016629738898202101545957237224180050520514522210860566145399032697770161342262741627191291709593144490153298921479508676402003336029920930659305443941177644401640002261301600076854192513265288170351861178750317758519183367697857850647239056524334050370791226837396753549535262261867862659621794116781950735114164411548738921906791368488102525095588936354586985042780141990635501575249881456411148175321895669139220079178196004724181494456405471199973185296971652029455566171800197011000330545162295477839733057770129200202039248625519435428305054513628381902394878299359900527487162292960779034667215679359821258508488073677417791568605001767209197902036676431623011288579851558224235395149570256794995978410846070006103942824681203621950847968012340250128080531402334413464077656234452594213220635506847000907373890505443532816778472356925475709150271807218248223720618824740978995883883253375292756438156624389055548999694365767466171525333000468889270914776021655929707981694960419840125051961678611773726067291461985933632464762436858302234027038401526637543265776845798231737747413615303560932057956388950224056119021344509657860913802231274966065479440730569377698153689352690740656268654641558032614375265754995788643626263343066690187206251468015158302143191669430616610246519524195600878312562210506011409571106801462098838028326986763111720067618422153660674439398103103079157275983745154885546862759592479471956823199115909186702187893144996958728703140210546965853105920447235591990037485365802439746448094431883077535551592960919659261898317372083511949448019035627608422705169326400855224589798763316687231233242919247862116110578622520366940706214361796158453959066517181942513520746615846760106033772947693435281163460522942651697278901366419659348958133385617265765717399111548399392607956795175063919403567056700685653062498301265024984717369643495363972297622677508660850179385113524817101601812616396984107320424801197374270563776559779109282734843802604845918998373792002310586027321195298635863439270437483639060080118544732133077151043493076722477583719512991047314675813052458086866742355201526031274626046183866100076720321650600905570683810812605455556389225333641932378515635843012759108328367436386344578039915109934387271633450619662803832481923694192698328899382358206413647891968045097152345603842298093783752702699424120559579136240725319424550386809454641758399832277009801899305323670711271152268621507638101163085951124202891122464372742946444092010264686058675981233904729427443934611834173221665220133382076413469014741628382111763415224429657020506777465762393586991023329774427188515315087020083792779115073144753639055538894614041026220473830610843563549144058015077347757619533976413267512666034681007566908084836541814800815421231020814593197701249058885945310002861135575639147367439030245909809580330987586503680992200803355034119381963358872965668822863096641275599896152367723706499006409392566378458483733636117329999670199588609965220730306745753091393583158503540501594460945230967978666552306338263861221182413196135550011446247329541420977701011889678586128290587279410993872759681803354020151119434426161192674091341234551784771630859546115265157443949969194707596149508564518185168084695329357245178825826156349647614210106645162273653489726906482040502739336632764003011505867430020977153401922753999146355724583495717962475570678450139869439380560594751426622721102723758869928623406980858496332541094047041870639927699729967307281463970973944091993526098784086840018939364197834466018858343454359438571288602249265882172315944048168592200350549820339824653416206353586641985258425744044918697938949161189388195449176683497299002750496396874589901208470507712506116973177440400274619614751036932499600959922838107959956345217557695099572102963670664016294733618353870233011322524392407018653571999141863405137830591796685492604236404897996382701103289487103534020865121164303768038594140424221233587507106202433740939418982122872298525825840632186211575825224468319795808140347723220638280189301288890757208803493996119528547487934021322984178671322957963520813551429748038451733223121704645455919046958519460709506716012226438092308373633860233028852887192814087035063071762555326062440082928740935219529520028604602338113547121239457740041487134911220557038535277953983819576803429556752678889525295899695205238382002663760999177163942503191369939484431778608822380709413544869622349776881036220879373390960298573903576360455639453200990047019037801595787641267135995225955821466524480905493857722298015773135735733575459234472428896220783769956871702696306723287652886424250769319771621275677519627987391004450344484469871465507696421332106572246898834179436464625244659775932885307616990651361300553720037911410213205143925470737044872219743583598233177244366774094651101188530013041314483205438595664581557417943337580899483119757976463977214911201968352549426986493853282073693850512612863223085579066229809537682433038146771337842794858818382127416042584478168937644422532452860131732284825307338466364685374399015513456197800891364192498229913735043422769762086040690080080412819462773424513555928950631810828419629713256775653613183537720011556176365995025890924795141367787652486873287663938753210362375387180109879975684097849247980456177306245816687217278969677097797971799773191624780413531296169282759511584394564947163325913791901251188045221675655874202230425088632551865144780932878173095235188918046268954142110632517857695285898106024084802879720738823028371974860200455156022196014836559576335719304310082095275916676430080418550779922542141378929791271253594276888899340643596323054753166228257455262804117312892129621807897503299332157214142152938563368453888283496102479284906992109233783671695863686444165256366611009406034466983517402917587323976816589618338814136713801078649034442965571132992237691413452201067677575043178418953832708219198256109496411636966951730063413980324680058826990941073257230679073557002779860620256965223476002937655250029679875194229540198234349256591458501022021635339553112257646450690027945506247943021826313282741912418413927130253948353157649847343225482072421828256462935536800171922655440035599567072650284442950567814826986648884974617212367903331809000434206957846290738732062826654730830809041517920507745235438301742086650786232677389909307477899268327213222257814540007257579847678556342911224352825724854739800542560597148522306344375904643059088562492674193291451443359925621221672288079259325904223495012849840697966312646854437913028161713783720257594656407049818431494731762855939197468600143288353870967185436649091658484826211943081614754927288239127677509097954743532611843720197432999447937150480196410689976099739145438986802893629293219794603718634221210496300153179762446792920354178148265380294120943954966352276068514850708828117360525264622332599809737205166961447836729653531020502444640950347423983827225162784341045194013149607699897997451717411187888093425175454320669173625576979417923934146681024660727542790056480151388548923247541180423066126407976767364092940308636881375472052111923672613680790753066612491598914531773726560500883777910356011899441690786094704061487317051998515399134036938963025149660903860840460848245942459350244828909887330066769039785138892834319055030138304747141518425013687203198325380251965811696448782004121658438265195520332218617930314607973258577636849026080491300235884118724775912726332290640191941955344726599808515056558459293212316066605260538327381835710718036151754936491895691451418781362000381352786756121979011331097286224844361630230162895677247431007241248796576504695344554193300026201340855184439583516879149426098355992388307374823205545563510616766556302929081874059675005279810812097230527321568936114019588027252553484672619240266784414565342587856242412309838344595205877254447640139753583581370944001326327228518001445927267097887971433620680452954262305055884838209075685137134733329702400824134241282224321085963096884820312419982709573602322495062142372758764284474290031004290137654656175129781016055299430811298855045569145089782495552169470493648371589612645400692613506120045530330289135321769454059080456658251666447551177567342215165811087173608273356147037076850656541786759631805714400148536906646530198113889027828902930421510897019877954385222491289494994888140207738962952241812102640736276903089857912769341553289406562098280756214191661805678178480659670653883575284983497403273177704079833951961806800549868300079610149751568832416608342485767664811929107761420550072175785190260701132989559909238721755893897161901368564714124217925985127308137650048608548954540479016205101443197178614551903178025798058363354963358305703224504166869529829507527107672546228282103700785479638959694977785174279830669407315440982823347498276842067149822123353231213771505523191078893265290737895759875275935497998355173077316969410628038542142633778891544515056682487350660999701962128560760361188862289891776944933208055863641277153179364702433933665842128105417954603940060957457368677272553448358439904301332543663493382568111863645160811148081069298466765518946880991808636538279371756007241899018435581363152356489351450465327577375498308820969047191697611302692569875174747337251193214469929193858648771442962136886451408312885545770717422720312333559256861667307522076898740419611051376777077447113300251938810085429433114709841261094575665940022760122597229738585863123641484082644508091797556450867319591346407729099087581470369428158616909466315831035235394626803780718476251724986161785380935715191699482207987671250043117774606965439741392401639682445387034565894917859447374398439571286350760708505079169694510854164073831649287861163485549106153503985636460299551731750654942668258462444928240470161585131910001588535014307911151547364409449682992440422381653701517081918646685769907181105797462242672491639360721457358303601798417884838291329785370644996574293606067614529201296800057938880925581285682611800158358356269624508824237422087941342883923255364036301300239641936170901446335829130600790819869877784440264341406430949678445631976578082933523615252236188688950699009561530460544090838379226436215540030114102110165157441186992172368355076689047091184288580565355339408421994978314472131202902267115313226217004697504139265310138300426310461032244825383246425593678848119494654441667978446784175516858907623985506717869732876709968387189959912483552146261290800258356516137681768770710352326060168412788049963428043751440904326461269291589871557725717587467221698222671332116307385462896950564646741735167712720704108425739503187135666114077447627627982221421452048063307709280909008390155801360539412213756583270605895935948197255986799345875661975274650430949413026576346019963798427014956979657107949413394669784811020103028341544082139758310692258102682726760564911774156596334286808451920522990725458033845290687150329122992183912206256221944691490082373269612267499801862906689717751090947843289957143091043913350705084016950571250665035578243629413695374279711138589383915146561353617016465252835920840461265525559050545911959537933881193448245839376297733379597735249630640610745157664593916083907807587208467979877901328410309285837864544283077955375444788308532761320617388065612325120888814750849335910785963954713919652382752477357690686018099636340139284938125786727000757253705391355528222372050214868365174727321258165535573824371007757617593234096434563238013018721512430475459848502128801163145681317602497295855048464250761976187582561911708756628097953509868527274989240680316689996296520266743309460520010246999064214998414287691129748846773388841783565255805337991994285063704589677034239009876752489693109473326595763295351076604609577608201259156352971238605398147263254241750702494470289289314445337047017156180155277860975680974731316974129355008414595705534648429062143453515155402683220653003727481096850581725672956308028456635879300445303895068933211417617622865223446305838638183970590332131517023809473429654787241059668649203370796271946983728956438174597740069757001641136363114542585935670602684630517345555553246959947109798681711548254765799784259577792554980862915987100127790891905470505288559160119906374348122740988081803645611678304493504233630975536015763089863733281116916852058555616697317339705862030650483410618377356294310144150105736447879957282912510390745106814675630473716845841787221241466185850886536755323943153803513036393872267205052844676940396194677313891351704980804798806095774277616399229154872508829404195769453479627294547184088217586749532171416592811716888868016313526858939794878905688005291912385757532575208140546933155255351589850620674200029481242555161546070248883608156515181622921047656094747680716493773008930965226303156985529466025639093986799691638990713147193904596120719309434344458119449778243823863419747816260680465541734531770657475904475997616150526713662965314903082492272831562859639282532251889972673918231343505255873035583843740642149700189425378679699937365199666183625148530759990278370840554042530033673122807279304464121495249609787891421158595299485939604661494168764757073183203567442186363672555014333039997250330562741133079772093083644197475958106617396937425674364445461881693438508222889408836978346832540284780830280603009882911920744421783860499315349013960804078260947349147477399050058917722906482419627716357948570327238134383091855419549892019240203029272801069079693844175055058258929147954606527276485908609086779901972440366185463012448555687630905637782291035496003533875862013421704209458916035962047279814877018051001905765118543517830873564660588620196853106412692283366138828897152890321012569976345838118788134657592811563262917710409216260394235844173439516020286980507364421519640929307371597103181180856222506361948641041953014515752231457889457845084460813120767567021896035794284334244844555377193853125470434586284735342989833605704538965236525190149216648630109756429224957893410365386158169388111940091174338463143899582895565762493721860691479981631178721587600973345969131812244346973846588344525759015799427745310127484564186455564592856365829153257594495641186847855652733797130579146845676368197437531354796415506643014339331308091144614234673620595830732335222589670137607218800056125270780188963717711801786627335643243675315650903440193823201789726139212859474295173667374705294509373623348580349402139322966440728999708793209154822376371356240773941348933198115647655125521300652170388207129553299714394724793902531205249120304726284190564737963809988645007483977555510787539774417677626818225030377216372367000492233320540714917897236016540364405770204190558989614220184202214860550996846618190116102604023753500845722031682391980046670457513160622159802670842432934374398834290826124859159355604956774027360539332591264806320580542152506095055405267899826844793824743028147041363602101533908839535739384961587015962528807127958825303867648696804036914917056025940910826410112321429469388909087498005961923761811320968292900994067733693109602638655254784395297002760791700067725786541862660157441174337698950124858962708484058522820773820990977618572659600037731665863390770722533165287992164641144310423559522905683696838765778454104435362863638288255270812440461198813639670895363019938016083747818320791478183848458528951464523130604335837606896821934842264516044081108964570552869600394704154257261878798656412600318893234300710709038456351234219015859865998856835289002720378811632090967721938377296768309178202264766892599445105354493098493584651476409809805169592030014866632498390362994558678620817610524602172586141465085375273582332664628611763300716372545487724837447923482019800670205487959172399768678506411668901355564184318848743414843681382793722618962501913806851671566167731031843680689478639047090878717345805561110748853189580377147876523279070599366591770025057529738324598039138954564813499340830323950872625450132715195208682354080785650781561703298126177101114793565129534091030606414963203687471934471316152123908575154819312997787160322922793429359572908676212614659566312756944468156934855016061761142809251072683702243196723326934838510587840616105523053161726800381216999794465793579350432150242141786610097265118813976663069988615355885132168999256176545335476286830160356874049172900005127424615927679684799428191648835976532959328153144272865551600145083155410316856538319179972718759474273487072481660154319818621705122440476592718670427206205453166681897495294645786658695708435408974827284833504553276138315671152016714439213423007551399209212128877036054723515009888297532841698664998507846364008737711280867146848265647684975498225959311453009731045632400018307027386130910288457065624701460747188297806083437390491307734514937485582177906010187849602281334649728416031731687114290862441696572348042484885803509897725691707938223341426003907536792168204187957294559148357282061362757292265761296572813176141084924060181070848361089012316306390496529290620852609141943976352498618308535569939037028999402506984772578233454422172351193112747531319003186441642427597518853842306818280468911120380289086743596441429048983872123169344056681583882470593309036626726409742957963405595866341027202033967742189115229161725848046246279475149556740075236017342452848255302645803332941638118176469628588321693417001032360275791925240555721431395335498086823011449873177463939619171517586822966644744400206933146603425259786521104706939832099834604123323915752446056433486483704550471257077612116087961711570025454441958796509294165650681245929020530663354037948503918256532739271741504050900096276568267989478802436763229698860020041134210145334230966707199858228654757564236873479573288280160996645623528433281543752160451349989276308195286898474366949873159464710047759917406994853267710764897330147277534093591076942852570548637831110409724430762357999468085946469739468458048127003392879191304531684196119187990514742476641219815619693244942293933401832925410171838264115850436585124287695447980090745636982873430364527626831546175125868559103162248234905742763807893121717905716434478446414838630824956624697670275186233205801373925285851467366584042568937601344705465599745035180248551736533438820611228941615856596015657775302656597443451149493806007040019734431745646163413194613157232785017516708067638563964068512829150028042324107509932079567669261493300709755608261700064632300286315123377562098648757483871117240153063806301301391634148024761066600060434034600254514037200104879274132898292357409270633842717866036126956968467325322989669510203806867196059652079854769011281639076820657971289109761825409413735609467265894642940860548317723452618165619095992548568440468692579254301315587396864880594857585002925305067608119595306959349767963987926423193082960745909708380872597282080575578867768751760354422564662116273926848405689556257699992849578386784587014274141405117704746802162308422654184987142816002703392042957839016725426521280213857920221762390282809844578699122106327980145216535400168239767009442614992758938298031578737598522882728254057470154476140139011669509388631363430113227380153464286797458388206269357272293126180388892100914555652596751964636028472312102299156457330227544158047743009935223891454751631711633364083311103810081447554333721569361052939783030336205338850741312924108991677750636833563604157895827228349073620282328959327737132432884420855536520777447481183803698716970742606731592620351075521472325646942916005895596946733259917540691950133984013148417214540277230095412592470726498584233949113764745122783994561189088308711168671261352034288687268318160255109985875248732871547128401119350949500637342346772605089092981263628315369870824289674023670661600798844227192527880375548324610237376066258473485703520206839909425561127690132599440077331118475437273550608199928825066899620225643566088842372075247526601653496120738033842642918956738690938322082084091885302407808240926341809615146312993123689793419853561303884492949088694536004839431135172607927999557621794546553781351267274874813225133309593213114844028915792036633267616119581881076196624199553586654304839812832426930491218025690842264705541308033562897859372703556000281004241076233843138820241900327927224206181324817804594038224089692111523096989801025972722338661158586873908755612859626386376680662663902332304055502037951416683102959009350538673479973483248316555294751049355883980282340970497113909312254525128001249989135479258493527100773562252088332740767564045272088312308586336129192855215711593752326421051716443673632752973047676217746654915562292731701876583209696765137730774317615842652936393701669613220011708556428273031520573713655999008102383822176520024895368075069415804706665511787666331375008477412021500670321995646564363287997268159828228449595702859276206511189272052141024223009453951052495494843853628098812490499141156714819187735455155822084727844490625101484385428602433994853041447324046938706728974540402261308585251921520141177538971140538505851585209402042867236898692544289427975195247510108709199979888279850528350472473945723821476944936216981854463442344935519279773097178516551425667999746295451064402513403131409795338012101665043173582689219852893594739790958023185028236275800286982952596873451603874942209683657492784779853090737821858696748538879758790917517151332080329680677853860084691569504652700566203527834571099097327807444012588764105123101806264081539241340676131369115331223460963072934172022945148876905888376666169238493157274564975148699115646048484644365230804468934000236032886326166976439443108873400727358905362389054438490698720883124586045752249747580931040419474222932834663913014724436856936337450394237845591869464722554850995967544989249693554566812891612534536819326945193246180241068237165624155772540757984596627598992664837803243008910713736983248345046775788527280585532920696500261612974536532812274532973074877758763130868566518201512167846900484156124293588074904298580659714082609649321004054906475383388478654082938303786282095327501918891009098233401454391422934139624284526890516785390681456942060123206012398190975341457281735543885870120393594350920672308237937491901618190462773795631201357174729695791911268886097365840482712318575687680523437283674476459822483331883500225124205918112557787079240459693009503057861661198705011006820011028790559562989001536296603554478444544805534215099370964031717994800372424637273386929205362985821274321085789019259727347914478819045452618707682173197712800710065825483863636202914435027887549436741700353553754029847857705370295051463449404134429090975919763304954310902877091007192935301488686727481570645255955095780217745238143312964727409604666987454092839663078342720134424279223850042436584727388801577606093964140720995497572322036425882939026661732591969082354034980722439781648134657609818210030803017522071196881900534194712230178106698525484657861145944076259005916606893422999359632730079074542978498289351021113647819732745921205173687276896047821760333661949699639623940046916892818436491973480895606850588607228622981573144472394949531431640534018664749797284936242252535632772393488078846897597254866801795962403954996302708758441967610525484186559004389772000831592731244714926002641492518471618657963318983946539615500759798779046163478801195099997396177932701030953025201064597869602306242298135842224496172715925587945772857906521205990651299901010532141567134214923134751939202136826662799071602444183879724697303796350114566650372195776951358071564398337635468943026824401196635035700388650646211667842748785536445979806543827584644624836269349134551284793243550746710738957475809288455540106632690477296800343046876660251099785767503799381865806606659131269949900538472780162620627417795941014536626638012094871372688636122009023542102003585677727441809928943174459832447188163304366468528641650934529908037248985668266098439057403214668736922287529393953510793046981581530658510216186081332219041738181989845484722654642714517504521198925309980414897943033114382979591591158500654273832296177258077860549776278054333333955610152028161685350066855273302974278875563420593425201107612180664081303205026760771697788110188695854694538083740196112184432603149825121685117166871802943722531064262667207916879954002170033261887125456712723327857431753164201095101525773472103150859583031702511861327337686104092027367044320763452553816068746183428567301902362027734421360528423581684399520825404363148155538481612505314046806105655229468388929236177370592249536086161779885785557076857981997393784325931236672147423568589465221703994104062053468288169837699404140514390165959471513030578293839767849856303916866515538159372317268586881603315423634247363038879477118454908300597408901664408655718201808171864163795113744641634364835751717687914854379504424673459387040671630270876402989550271160723810347288366040049766999255153487975688768877965625075179698346895045372272104158132380022548495119586847819470893320329580423675523537223605482584875380352418335123516063259131805053390322103266650077389036643143580690797521542224046116090080653765025475522144766677261238148299523956147659878071361395058360019232565366837575259540284900618790500887391352492132981475517940690970162905845872808724792683491701502871000181575782722520658343298806134473878342731780398594849765559044925008696260309960360292083599114814592052357231478720533349773509058080284732763509372395618979968549830725936357677523268410435572309360680691457287734797946570040550887956783677940870408940576629677965403265032167501730107957036728304286008911400669037995860301836782071088237841703382005618640147842099728985738780846429690863783839811421475495868366935747816549416114871029905382019954956812265523371795209733814079305926494973380608354913317936628733678633600911354749824461026273258626077875378633916663362382777634363615063874862661918277984584108971380245042160851437829372059506474664591593631526249968277569293041648965296948607066205059034172948047980167666012048175782894442324565877927656068280781951466309796391720132532647934496514149876867761692258382225816600814466050962024258286201589998087426316204884484919312817714903331140849499661807620788158460834074292506191669121914307733401268289309730149624389757391371536298589536250167143165222562875195681237284955767314350673106629446750833258619745112175011324756652750800535824358693400268978739933755810309370671802130594921313045858588975918484341501601644933391136294099966354969547462406175944763234553702235099136653894257348132926605539402277459491740292816003587966383104082550696787649527687362050289440670415556158403580293007308079687955692953099644371306028884510213277137137648644446487988149018034025471976786512517505363288260466244746644810003485767961377991885727749897326515599265941474657454769526097557206909601510048140929866231859221264040795950637016182489589171721177466833524022564455652623576384147777659950665617527485249211620738968682912768357469598973932462314182641173873969003145230955872185377379554149485564109857526394755294178757523463067867406768597292119312276109010995769538140008436697951861060521275196904558035097961878337125627782483602842340581510008806802005825493761810212611889414334354105029109285813271704244253825623884731132445890651108878826027400003139772721098300082168527091478777527073588076677357151684833457874880130113974337382822363201520731592293894288612924054777679345036904064429067907839439420755625894768654048229225259398674718503510878685997325410641033528744931417170129570017360117238342329575778199230144339336425763148890713665255484058962628524051476160419345936591505456807798039508542956575245682406856234307875538234283168351130699039230826416970172841874091369649762519471992724374255139517662727725276121112364267221175409149366448191681391108339773753660040699318223701834656478407201995375396412446955974164690830701890571932658501491597888421540547557098891145357391103318074313129148265105413122745955157295212933789696051139991947237107357399048690061756006983849978648210923855440094395243040656288049576374855234221169159797110824534843260591731492107882313589627027649336392266597375743260501955571341736312465543046483947072657312190085403512172251311638217664797689171159957982525093752300746711186602657076359567453291671782728926557798622071854331202951665953926190007333713169965987737772619622374873081537409110959360444644716685198007595593499353856804295530526773966016381915697094091866196566023134707833800613057559684525911903523922043312343147666263422779987593828932911598740607166228974066182327824517614131501691674319768381299242531231632872606832183932058647915673382704517617529708982103781690887773766223223772009657232538405849699720777391361224674577029877923678203001987723917017481999546160108030649055138108212215421020849649298351174857173945590037451698980386767507643554968992278201532894398581356767096367061693092305727302497815663186387310663827181912223549486529463143521316936499271568518581464981648871413265295586004073390176335518196476769391429705531957054707944458257053426857851701628742752056829952843911813111955556482260891791787162042382389554049347558986639982859980619829253675883310881150418347434475909425869673238485289723919379172816424358433546434756029477551946011767209377213281890889115674426686929582345528109438256675200956531630271944134947348549372862568176349784744375616458230093029715021027481338417476524397753829357515175260222983031263310414475024355584852199259274334737040558746400387177611703959563501495203276357373253551877518943602877691828726219785235905965342380323651305015674157582709652050580783142506198342965350719362374278640744851062130171735196341727925399608272863575962795746289753086418650428466149446206044670563260656866206437290462924308653705414521222331694213463744410973689643513329512486343650558338983335676575771417407890290340181711264373035511326933660832788229790965444716574321692748900109118823717671520003873430924739960340988674568594690320135674637301172173263105665123011301096751647926157546919040032933357030087045009875564086906738539129443549339062182001335317766179326328099419046887577922448564314671075991814398295375613428528013449757690232386496629041459211865117852215426286385591646444750693070902832216775701749268772951409825535722557288844805964283684784855150473898531579300829871201806916041359477073830123398928417047655070858145292073340733562092307887333035941290741204572195707924230004207443868250675684451727237239869749936642560766673695128087252048472598922657185832668840153437678754864832694291941802718566126267122404910817596133217398233244407147069703804432743925187808959203228185533139698413106689767611891797408074893763056518063295577363372199052885242565937980686935992480111973317721399043319320775726994554485936183074309570146075478439920512486484790730088490847732291090832206806362104250375615403277617086264823463760846469142867182433899041072738035242406651884096622743896496094133817389030401386559592933504689925449473801764369582303098673618561430114178790149985801524017886232426958261278912493871014794659184002309747807333756138536657626521712145131405462703103332548763953401016540886812669853288915951840591985576630814277735213798583454490652894660041977395151782443319261067520192306345674958448296190618286855324558984665453992963385522548217438924306298375972947579398763298437210007402157689709465309126141826561044734702546227566125038129995700310608140800848029608051876530821333379480520124871429591147728292240146360658841198763475066901943095893776379805337921850753973102979032736657672203252966027229762631333288365132510546736686418065836750974712309299948512994071004388265823866300990972516610903325508991595110345009299377489407358255738020959616019610036814621409494982639424942266646505554964872379240628911861480570462844435750455552699951730626060714203671148142612319392067205818478151440816074773827721639885479677285697294394204391503664692986404966370742300654470302327476796914803647288467549643923788310127196044886626048917074341370507891807269549179644166034943956778865397135393173102141252597291153836228142387529214915729920685997343187614916548488769275061890365456407880886639385202984518055573999483436370539154036438268762651655571524480005340559258625401223121649509521093685441831010109818360175886776547148124162259505798556285613913802115127811415375214881861257412092090858790629251859619046085840430506526250608258381197366174396222489799859209373868212568475975320767599967775706335952591208960962477260993188082041945664518059585994811767639442530038896803043497032183702476852464307920111116845367595233392004467344841996619073149046892821816409733211577809776240726149404829365027816969281735308927962704206541941740187757090870276937006108588192490924063413028491060682376748184917107305628670284357117476266330432682468366130347256148976597493824044889852988882722851876667957747774441945591541933286535167027688184842506811892523407754584952530496959834303129078537483374591260233812709605235633901039701546441433461721370526262835750494039142489209197481667921224186347123499011312550369269588734940799124355309080676592410827334205126247242988538367336917692012467239521644212668186257501035587153745529975151299971002848674082965405881843506234039764037441361729854534825380245391027695490869841917506262793694373918707246326187532248136071696356514036430077092843716577794134884427843978106644351183541127791129527162574077519797737954843543060164510979055008671582005935252374667668965659793989626028632554691294877125987964018334539117470902913007830093817056924172932358489031871071353677242306009119344971831930423056663725639300242536312682530684713622974495669419515069126454328311305062908169644614416709361771043174582328469428334487451288133471229128556611910984092875425173939204795204555390969404484500934009624135645667830438183218900728740418176877962977943593470314461020909103096564965669970008343522633474788865327816719750243832501489770583816917587172208418791236936292630398121751528658181587184254937055896553482913272124420356205906203385512678403040764571402915749573883906051043118142393538378818064961288531279670605163502131311520748454975692386128595661654108122054111524152089502739648651357287632260278110447398968164808503126755638259997367979211799098671824870732735765638160956112879398525520256320349175794423527854128267272276266101176658257855034970773327729539731526611217737050130628140878088370664042838436393765663067348157126104358079244777681823470546124551536118024429777489499288553865903754670802074757580419756651809011550902203098292031435608247763446396071288111133534587669848868823421449633607162360268846794190272291932604687887213983140828131352061315327626085364327208355112051596590459652330012560379253237034424814862479782378536345918850189395453614667917519857160827120952812101685222972917626935175015919091927337046015582735623579751233697536768471627237592261977223279386290512585086538641826432085548096606769316858809152417847401598865152286995686027351949914026000171465345573929564570595536715066931587964949216563324328565323403903781832669487719269512738803347618591718011812728661571094954071992309571490377218575023119846715085920657647203307756841868183096729588844180241159367648570421476195466599992692233379756657239003149439391367558017888039041615705649862632390391273187245001889401523160705405896956089168440364444969381934228975754510387719872541453122484187386123921288919427535491066241607010788786342178489376182454935306562781872970406902000684548515619058429962764063598456608238357591557873492619038110588554521554370022884070035205673864107710124710478366976937363342940737900567298353683509914523742056570730937176913617334303196477088449868706209669821890010452924154146822358620372795664865734303532843187297899232814588489262180202160732783363652792443383024809000043467404941500757215828632522522189034780884110367598824206813840911124857021977127684925232258880133230200243317525541111214895823752440736208133542703776985542521791962378889948048176545683924769738231978923498068908464405002986434417852485540420535501491741903676857507908975052644145007005649022895713565664931072498893731850095640594709285204818939991587051036191339530357283693556318346236241668076353829744771150869768179892107245568687471849528779815693652209384010113372009276615582609027097247898447704763022844253123523189564086439798846020378059263609228692895454338356211004526629322103660302559153355599366752348628534422687096290558953898039360935542909849595406241559709696414930788509074119424390930754713501059212331455630020159347125280315472341819586967813101667224158454765193217827529181363367775976675157377320406751765884881006214908294271809797086348845156926077127725087692464922375527273155632891265504947768748143658120741194538169791200979954524648595432934240518892940795942655900625439101941038039773306657032882335248479578718003590764008225835540014419319722948173317532853411362250533538392832515496598766457401652531706313201753011821418802792640428280954849440984954594822593548539721866549337762477576880236021156787155425806748681866088962630637257675713114860813176193448350861848477005740879924614109616951413380835933565792290000374238352002132145897061197844656025692881279879747553355457868584835070851136795138680391303391437501036255902160048433108719563019815392064182706678707392225785473925272590247045672051036731854972685702285608322800499712826805225587420394253183520318433323062385275209905803368494929907631384164712179782611162621211370479435990972767998344656478000625751213819296275167765442473134669189164848247611961628211463786726185829804298049508592871357432977298548538949689932952435797272893185000598674500502293257994250557705851976667866350790363792927107647100278036860185427141199667431585169033679677810802098926156440089575246017306085573757104453946090072922383220257667403228461651945673223847577960332745016843286988616257195362052997063707742897583987258218196985329489951576859173682674516976056157912638680591811161545360210873919591966037093701683366465261944862107504679981063090854899829126565973631345456761645659767961942168839219894576668601533994989438028485018799991870175061647904401349271246040185626585624667671822192934756624839680060940364528396737437563575848308467073604396806392817716746885061744896349095214616859033829221010971069941797340877860186330697604104547544149467202109005741242645280439776669209547830691529935047264991789466040254571788730670988527372751588844433184214397643908729468439323917694829782628668052032727334507294084823226385495464361603559703175367103878196310685031029827870360702240594410248276933777693791410322535563379997122580320332314017752249386440983238264312568728679231908509819295415584852740921840863248595918941014218230097396286931900393271950936719070922773305944608666766995934385628054675361821898126206157404096793795900529073036955184168747551348170967094867619662325609394072606609335300648233629399822841661034821909069005089506880547573482561843939861413658379531457097617402070578297313840590204899261585586620773389593468056492016428503186894875608992185512051764770117529564316205408131939374369231676379239687841770574008437757020670198958310587912133132109761374931014193069043486407204960256177143028870443228362380891213072772759917012182470642637791122603785632043128124631327558611773688439434997370531063513180834121848743259285306582429942082593615501895963245931563547676121071375029672315716951172297008590423333255698488117406515186473852778499764241937452571279544553433574499202089195816086712985422649812955425473016672455591609816783082069114626103916614410503902078357681272388534469977177094152782102380232362333263870389472902152992960510871602893855297119000658532788304994739833446990330338691423619780570123684916158547714205321755452438377763202341169535862239057210937668339620077194787886340212495743176406693170282660486844487987719925064963510166041435075579724140118589839210415462623159956342613138899432273934985907550320261239151682352851616680495065855929553464392442069991126447828075842978215608201663591347436418921733757659737623721894741052214576022692070997888026425029886329429892052545100599030699198148825251588595056089760313941358577907193163473707541431129484243813930890020226494862553263530709614981719551112149404139713723101963295102841077440612302007301217405371955760214929435158313083522001982802654477184233363159989560530343564462814564157436585315765500098913229288044511803699393105111622161901670820359824726989987264125303704092343371909580074052383257455860156501661418697418705607638052864680891561924107687370507667043591831780205607866718511428956866158027253324224425163798902289406221480513066042628505179860388918360188523275456533364076020776999518726469929315330452897518763883634230858046939842116849751758756670345731611607981029222593342184520970937140065316238998307036814490462307339722377383210647637703770630625923655206004338155030312203736198992811172337854906637460246406061205670020586047439481816695389387723377633004937549227255669915704609614642798267905142584315987754339575392926009412441345959223167977391617712770024180742963553992606701834961977109568250453794097971808568298458935007368852375029624966812509224423692026246253769359361648744113519791288210533537735410327972727342891064321136046594842836380537931921672896631947400351188159662374916048808353294842896031564978782116195470760519884013849384230975599088902674228446799251984429131417191389281564012319632393192567639930829593543013804273399279419453281739839959547211492594177083697865122678757018211817170628830450794429816078877424237900121738875194856983827857770241583041594413385069387689357833624759129633877757145267284347113415278949587670696999732018264329391168634385462547822397626914601339827640295397430055390748856033517078486915982423473286837673405696496835253032703613195263567287651514589280786715013485672116999599249550425011990688730447219821535697288527048872446144652815760635694666925699885118701878714022630575567657229255034606833922843932056532053077692789005484969337763290344233696036191207302121419796974471447703237163983282277730532027919714937184438119727470694537031467023590294239032027244656449401745326911728668379939651658906146188401716684207141421907910056654337874838989774244836862998181047101324979744499268087877073851764875785239204190722549165862636568046461975076035410476210389129163848380907390524710206628976362936148661754843194964312564329627458604476321829538399003174352534575348709254394765672693673476410792035498827902629825678512953105144879785687033221250611742208713422348574069958575201108002651994922132361661843575896480487175080315538030074490207742457071227746161463330459967306533464518025046679516446257604323393360152249307777083160172794928939539653024543572394841241500404930885007346236609086997012846155751214161106504583317547283981334894189506199754318445652559150669357523462252791555358992588742136690080783047077922872898849193693403744976454299480430761501359461150669486134462276627819626750849526556659140009975722004574079310386561677741806212382345343452628779182326142916691032954418874319443839105011213352179950407122520786235625404671027255790439512702394128085759657189326384826281960586211293848778277223118359756822585471808345545913417454703878059363916437798904345343130378997386027278034606154044104134284693287140552750098646516996205487725225473479741535963451454529781342199177881156524790772089013385742322274506072150316872421407655775315343877867339047113133806292408025589282239510415663338232691746204003809446957034197585050114654845841210065920316640312881074788611982042306255698309134273974549807848938123762122332695705330733195492814269900327881357247581093526441275258052258408658478250145871219155635880160989288935841594226469394890075200035940308828270254440652871277093747229596733723170503601556890843626504841838717835102901278060248067457562876756850471221005082251396584460140036122064529659737065269749287880605314634723035754861793419663652558825537447105983308179598024079006133074335121000316663832886179835349786391318105269379872341702529541324534712945827711153362004297771129729183091770659001870196038293684832243559225681009616788433097847427278639507574788044360155566056468540907251884879385634094348745308125127980111480220668712605249685915854611250287651970850277535380390515419478248060388642280405673401509543680365905728829641399899849069017339161420873860346281558618983282338845145885202568434382432636026854845191877131603996084406809977629530207005185721390100211213248568883405475085969849814387810701775265010819247890323343681197199304773426112407534772190072599146709674836075211731488179824079822242392042943917643972023204300317461635997164895082096199396758499394955626843092896878087339197772890860368442082911756930815286892014655443520027790711752491324641520657719436418968400950525411129407017109385219235622476698026873005545769847548473428888996894214526981843182085015436146934887872520534805978809830564760013630877624188525910700129150220234610054594038469705144232495062104400627705712558630087160768181411771583093234107776630212602761675282655236989945102201879254185642351388185685373275686498825061873439956119488759868351664120813121591536441628876467833913463366611111523086051638595350372715085678862773276639101803392760393046084647977147093519124691590127054961068928645791326512164886262220180122093654930423165399578380807880778756648432972846123071353978302684203735028990251894815976550156083458053110459602999043352435031631674012233494481236468252450337955155644911251615291059245113586437847116695119118024534938581503791357036090115438953468007082909844190591380858102889012044131604888807147050259742362397453904473855132396321021587881499879156836230887648261160646250322762153961360544367522408118916437032225173252693343306197531309666403008760909037075076762817198393296901923744461887749878073192984548368315685093512008045876453269991467758272709248272526901357419101980087828448208762865274031782582191407335462609160858017583190584011835126899941988254235394904071375341914408766377319569054637569367461846915444497404668780608737487913160205733433107932473292737812775417934179136250371422656665468471314952595236236711715825410498293363663532317080766644712576919316636829101626749974318526117685761218396401927735200317115379149036101708081503383952927001650876567150865417518021363397386145511742910738335071744161281095138705608038708781682802949550871296074434316658676291783211165571244411603948898105301144411654422676551285810188034661660298054226664927091169831408222251338496209997801744175192846735400875778749826231680977092898304264217846939293907200366002373561585804263524612262515226259265300299150415997522747753538210035144318428734302309075934294548920289462615962434427678402980232522083961307189459300001969821574721037426269454458996566630632123635812339696855457169164592029075530725107705104369223721143898953955388216111237804311491643383436002818394948430503155317858748326113772706493062474301041206577890400056343725769242325299103139769351495295820506047531745704307264872304602982399457714330803330810116452756168557968403964399709443327651187614349122874822048204473942069892039187109196348337505864584826564752737769838931222126571738436559793430572135071764046429675057898916363496632989491831177511106292838479850983705205760299911832335879392300990592340726293800385729566718841448157064833742715750853732237198924038699881373277427778392858819268532927111535610273034090384452234282128778232137286402019248813595948543502135971074687030521995568916318776514743497384307283662751782088319801005424809601626590382393988308285344265535805927464027847228083603985469328257047985268669622246614448788467458356821862870236303487726630461560494320077617841818060189346179839338978365290572534396657339701584595979242930232989128179552697028515008330676256713255225655628846104007079464409341040651214971272100416556042819341878157151506579293943279689949930592022933955119178396980914524784459239816981334801401910160323200777156311350146182545078335226570126091172567321008891025586309542082633405550652813346471945266793607061641798877039219451672787276493927032085709066360978615110847652753159775031572892579805154822835804955606201978904997664483162132877881126722501632545936704858851782328685409916347247463709304506060492918369272709626971141787127485679725779237809080258968183889137162327551120521209462706959410140909268409562692107071701323108695384395642199671807138569174260007071593797486382809432637726805395736183825110826418102758371516457404499973997222881090458767350684305637496362988195754045461745807026055230397512851677268650635917881538526369279720109798308858353024599661292630995635250319524302915877684164154462852630045540734766258386087224639177206068468641014613939207711723061952703766399618952204634873475828778484812412480467544439919861306773880817909806384919179376449160854630190925692994994758007656193679873548838503536302517195681017326087857182533413894124483709675040250803349023279917809131376964181962487664627355699551485073616477611801257489475828841183399344871134111172691360297460514541130055855734850304455267285472223609599566117304547213778649361291754799550750586368203006675574301057970004880801401540098472040860224253175101255251077958922174940969608698765499969645911284363752645338158962476983325526597226232895007116651302537957645497025438894636131626380790876731915411038457737853997407260351745705998678010007705372311099466967288748026974649185025719174739011816440804416807628933746546555859531116198325231498587314548641540872453851172600146846966585027240814186634574099881100776046913618403222821545561029077470558248014692985162191426755093121768435535696340006144751179140970559766950138514460779024650023468462130810172794722114304517115111271044168436690631971162962306933627126050728626991328522096752608838432145860753925113337087252201042763191662736826618797514005259208705815345031954689050170130887818067706072967026668476122287274946174387374195010564205808872686774383101371405738036327653797353361581235757983805000696149074931107167838435560101408256625310360949589153933820880795861580325263062858397906086556414178621198811988016751960569704256557991574354737029515247737678358484571468973295985518432186137236674562734199254212710814854583628492224819334589280897399840850839741292597949398129449291416758134452157965874822218197874323155361303896317619147391077679599137884538296048281829006204910327020891215793440440392692294214517326206884380815632489072766763996549198910881358576879056603041011606499994478648051425294555879585332596680535067688852469760481784280433128305177649214611649500772790183355552788570049489247494455552708998160890814942559301947018270691444539574108763122981890851708599064596289816800042189154016322115392387753363530236157007042329721553595372062653419727994721409745145888237411347787274118451334150683689145233762079646280542724398522983933949795160101680814136074535999503821124634269077527723225544289362155935181678524373520474787247186367581260886321035261582284412429257879277194373656629310026125069402710049189868991489230161467247208148410657806735543205278656739368489396266626671002745243211625101551726050682082626087567863271044895169818515323494010787949117649440219132974673034098084169967554663359482042175036927822319409705208703968181803880577649758138430521587231933057057794487725992771029538972837565065988254921891622573503086243771739855477777735779336188591454718515759644181888181073458982127012329541912375398507209606401674857674114820268359714489381651510496290296339660324573418474163497964231662988319792500667633519329599269224351697190732730466793950541136182091625174489707171987717093830202486103610381667001050707946504959102426120279679255103081307696417109143679978103260326842688501991655780118173166129963416863033225699483627000105913098977768205459050263099967962177206491938837531868154486150803535203416193540921581222578051980541994527736842150419080713950700744269051704662868575030162821436468492729978373707257120695262186682553797647853445314839985437154230116136346885808430409870328779272315914522722618936366664883395610868310397124649692784596346001034832616970329107428911445573806561413704862807833177592882711102796692446122014220225907162697837078927704492514755360252494752171130960475949969694885547778073332947304517992968575808816078275394501877507305336603444675589335667793012938322720082736768918152281820774716518193877579529935420690182494941981641061072062697228683951329766653018739847165939608714967686407621154210738611420439926841364142755923882104539677616118547596480779828338554034915037620699314690687851329600466362549292461980870349081274580614084191403052079579001784161036267038160426713675538313795551726095114698734028663150591544925164626444741179214460818427842557905116214958662362380467362903481639529416915789215840903361938260033095635825347156890608742471294680368807252799884448621325197369194099069747288105048777744959797737062993021526440432688466064226855262764095183968676319302755145867565801156152412486490294431008795645524580437051117472300997003275157399824632853774814817807556428338912489693114304575945207720693305554551261571282998966424226212931674042261746065455883573452540348709793046605167948808326888020081096472130317810010851931568706882360157378483682931003300672804640944795032874451779450821185022367053848797231550445285889091901244133587633803075711943072265671224538148705250666124900554520357823901074223263014777657128823238199741729164856689032052011809497354707976450759484948714092388081640377680514053089917961599050436206490295419486415624345728576381619918381780383093908205280474483704407492532289773861367855975752015063277758809062174429685228232336558446877067521528393692991179627274262297936614462557442796048124778137650603922210432374480161794393027662840848466996315265541670770281029452387018908949119664196782828376252330125582039115164727955309447570055704090189489574280094416628231437938912222282069193135131545861211977162426808452944624479370488135985751625453272538156517323401782997750049514678022380821915056523430969594482530552197861586791789929354663857238297600341593850357590039379591275279835106946953062924780617918474539310205128881148267659702319997107431807310304893010609384152138633011952829434388989457236115112437148801011246975243871239766339654027541894682576738327332878243681346273933325682888872285127806606893722194368716806724772426267038285697622717329339315492104233791897927618623226615455835651928287843441229193574945604796898076402926822236200520375542335244371433841838365409326364028606071020715992280448296286298617588166294657363762366795479575458180098379368192300198008631402636508405153812376729614916274776594821522790963248590547035962505042576165605829224455073200034904049318956759437170392511803888482764196594840331223479585206154766770244658691572596815704085381678786556812586655847891449776543185666466804245343912457027419271506841950250340224713936280352989002046797447545213778685424367531415471601420804348106130501789899690065651325259549957035553432710071709966776892976079824655490240867733484574428452494430509103272538523675983558042936995029235445553854449250433267568684801681736605361981055080573563831673336224626138856988269679483942586118079602190411891405350664795104728527650532736220137602122626105338437941902971324554129741514359426930097805386881828395923063344512030668973864156500868332166303132737515056018359095041081878604977432465931451744379761766510008674814243533198660530210187094831999958681817520213948735793369693860380419229729224916462964895825226028723662168941140797772671588488422443655367874521960092133500069938406027054272640029345126265409017127586991371521505723298176661427434785056736415708644575311169163551292371745162636722893396160060618392668548170055677182801862573997320850738063766916674083368919414814469726373085920993792795231287111257009179275854985259610139775230985783749671799176607370604378658748835026105755388608915663458794211915395509958798913729016311937495494476178855435806528431516644643012806473042198684709773810083770680131803203695180917867546214711837505966630294778736770181616886806074497567684394674545293741763382445655992387009269585613089594829641353554267597391868316886063717178787190264619911179626575146199974043099428896998699658001116261271804806318578589750445688512397548673319186290381828258091858131011054503779660966713130150142345581265935220241622774800950740488435011265114417017393401487518726456202685235702793207587068129097311439350956775879505331236340359148037509160317256940272184965269279332089317785336026680244183701751135584168928209544867024992911697958107251193114871200305130610924469112855213445883183062823887358186942830939890599967860275995641408323936726705225321342746044094218031389643785425160461875686362839372284198297656115153825280411344173022424598205672358041337729981743397400455095127314741168830517249782741308153150787011743791843030951874971011560887401852887397418471492084038878156812815320248913374113169961704934181802703096692027088362117277378670115079759934069632895088798596471758184671924705449051040685302889391532825142300169208228362833599061325456205065226380718950458045990809827311057605140687259790180686882960479534031884079267651485375799733925140726331552917479788899710311531651736482162547626904915674368572158888528114336982681215453143100227195485889454352032262180052043006052049574062991957964725530896193535719307393196846007837257286405952635886459360983710248360516995503092697961457896044694138546531609244989182989115785899889502325445986718137902779375849859536981737200833573823313814010085807799485540005618226188205149053262901341735789998246744540468506628022688282576343343055269612788141284963724999131158440382983150310203572013887404152400720919526048828868016339660350349324114337260050738723179778011093055424534528550523915735753380309393311603413092130973917481576387028212299067406329433486122616788865085250881281035512082330907961970656518661501221403896840900508160065924615841771675045180256958477679093666307302499338164840466226863745614462028736944237244432258610632558895341379363146941994007464789565015843851455592802249243372279007741666516092499350867242019418960604399674636287378240667302177428248909032148698471697239126022768092346204776757163131602716347677687210465353785691216624840575424746165464310062963554379272363352129930624656318390416516015079895049064131764120532152025023452551143559676498185687789095042808543339665548415935674795696260326159053964725561352934404099317587492087295550861782957525855990028887478803939799355155687441205034391057261331290161498498124984988640037940538911179115190384432926752801786324731315801167840090813584604123504267286610079576948382604394290077092471642706941755247121152689502487487782189277544890379051523419379350218407045695546403246836614792435905946847728143627816013969604862872310717449053932280155978553075436227008657007790183046042887119948280256993634017711777683101261274829952659708836824733060840729105282937117228499329656213683517351970591773903878381759619018279276826506959656101305898188468921879827277027644576924792373205276738138251868852730803095863448791184969860414016973403385225824387019177583555523540808293617766548664665914413941669691302219899990593022042589543402256330140851358650067446434459242968360397712445872049384735796911025999640000791774103218774761613853263442639448345686485800850791674068441746080797979876349592592233748401752092186872122392937235094326027649582398643332376856561911619642968985943135844945450799420364404713304603611940681791173459915070417407832649510421963997638297815025602579587251125262290495883647711240240266750607672529367350586507562816666716735078413363752818591375081706285088633628781896625589809536604777594051640296942291649552538496627288862031190451921345309608059424978183173384404886208621195813152499814300521457770692429868457757831634137019469008228612866252872799906248138437507969987664517266687656335093734514618368859683900266113537655603073084553570736955125965649256501024389790359359702663280130365493573501318654016580914838441795909756682117275396670262084768403141986292203809849701752848414176823934771385834627128922309160305370315151397070026825005342252301417307189603610275736875033052841747332265893862514534630562898670798193432793526930997207906990521483319695455914945863913839750810506278278609883476186108055064155880759859896693427728283613498094730622202284637139177038616061783133330513188705377156424151099675363334460377413040931720654636980425223213265166246229630490110290769202412173904663901975838970979162885341927628494745879607865338366261706930850112356337344375849840734975457516937582926231208896520754576053838337592822754060282716013249084935703199487525014282639653386328469599288424371029665295095133161844926491549338584771639730383414323349805746732453609064252862653308713070137588788811608420698408421286768591589939564781526634010702527814982168936411123662711590751692648698640731500630922237898424218971220419520375184570301138849174877987265637630341374150465569495833079868627701907881035889039275942282138843040923786534566548296877563148028042421579083526767025328811616560189564335899893527605902990190971103840637491829086254678547002609273396375895053114915476602144716481967856796956704884003116007061304894067068826591833100951314469611268485201648317321945497741499860529464579842366313861344738030927723048904499319842651570405991120122411324860773087748841138608461203434055511330771612880964134840417694660846943209729260218186912133101758448048573715635760088924339587365345971129871112679395796424854913274927945447259406837767815660964409647834791282197872041667734645954479044742622964714442720912510953821892808453664246551183955434792997640060155261018806334867153309545667112416624379808565291369076791812490057840310583173484126460757608635114755242319878796618221126454019969900002430261955612735300479712637422565723646765919658586712571946574144139382272445023671716750333762039028229251788280219746025988179526390209713623469490621742584787506639399596808186174059875584518114964498971075200849634512454247032081663287620346559931153617959445103012021281846292972853293954024100134058283166992968805657267231073996094349356208631266507515260447719013243048381115807552139669676788967676190364485740273712554392924458281695617107388311930854760240582440600723082448786397093285403502856358569370154983653721461989436828857251071767020685848632439201938848570572753611784449409576856158315312260293907129674335732984858699977160519252193512483656463142562786652914091630453144217715514006386463168839526476127888495904816546050695304615687576612456379767671053970648126719151907808255158104343559930075932167447618418867966773643937325900397564440608725175665797576694241034101652941327243796934573421526426808240939199899688996860077746630820811016914176948985529237156097326727736074547720675227289770696916093834014703240100552914409803524954097804734388789628180815366916032342721090364679306579892132860547589187515404258459790089113450371821002195483776885147263057221428822026127535874457815311746942099016254445168017923278095814727643973645370162586569736732189239338104240042346122597377648469878428616705634334156833743558640975831435862283301604216951818619293800274177921272775044687273696921128981504284390046342665634789012513926101384109051932482953699052709900190473987771360671129693834552772902251920572646627585371165804927271390662083218900838300907739758947406725520258076355500556254564614166676357341221827033358433974760443332084482217540320420639986581076774761269925681438325645640975337183474701418065302296650161818258282747550503604531484248063407577680347217741626978501398848380170269263923736800517803709945383349687673160065459019066460083178068266394907259672510030365170192608787171604570289469699081371912616473857890047029406010729899089753361101223830955270040851470920076061793909751100273036494209030737001119763766360345989494011713181237925805233300438004515018553412532187622548197614926416199124779574654323221863540306813739451688732781419455315233720382782842467616148349474854871505700292027370953044284231752390305854685971639999385813273667972669435019846486862137987017532339964176415186199178777428877309264891177593821173882699549679639804586434854046120533011924756669281868535833541616060444329245606365768866748116958417396199087940062606415503672767515456223587958271256669015827240154618058348497251893600104540814620843608748582119063387678468023445858268249986778666810800428637121271947589717625364242428087986634482051983690605797037268414745598477032692366181093546279939869209012406600525857504486137156151373473694203585764779299785525578678144183675269001210392340446601748486878956812029075614996074344065816494174144293644095513843620479194028887047055272898586614890097609192151060067944406662995431724238479221221184965593364894853748357525703106935777843570532638924646472352735026272512543383455505923312023142650099180255067727580347237889980157533803699772549025909516974796880389462890043297621918728271408349281411114398624994628391874400862042209960081233151601085830295164059252541904396371083087602242866714670481854160895989309661762426759911592192283783998446394524791691145625793232682846778829607223475331349987135216030097004576053918617785050560411609514890635525657644195296509121647472829729939164796420250462486559185391576767520587977906305022031870895208761565171699636310066317512569418796507150582484363127323588545583581628283593750457812820364209413894364099156524819717882523971864976621044466365595434037809466002451548494516373640302038003609800474755285191440353323906434694488138360128078349303216417040197434825760297575205990978136524042911015670949649462244059953907794880304184514687978916975743214103786613466719011421125848416245805110805152005642320971264891068208377767172282942936596033322500055796035582721909273289508247502067612861977733613186724831899075673755320802113343124654053907458806183137744778754874635363271073905577028569637627559258226301737573244125166130651082526987748680158155135589573516973121614469838217198800606455226697588256943897020072163760183714681036350447271896043695555190337402829488961054652759562944676007381941988244622950731748301108311241934216758797728856825949366393790844921502065960793899592244116535390772847210701727309922938787075626106976287555137630555178603237787314622747446362216861793911319508113880316523109692501145039924844484326670194820959595180488158906695844143238621515117390345371748462161887819660185593965421628683826331070147931482860063948882782628069695583906669541451509315839431700230047429341856727192655064927231400624891696344594439920759940139433698939332772287352056890782700849289526710166795846255880326107656157686803593688986743237557631034474041144575884163588302959624717748967574111507311543267538252364528969225120897531649222989995192515888047797624433045709488447924889209053086914817819190963212033555629608257724736708318353637850608573772131903971935141637180105356085061929759085147018792713589220893602080399556473642749619185596791245938111545311001309265191440545453313713978647007844273711480533444815522568995744767944178968666010303005391873530134061609211098317778072676572505089082769490542714259530978836631322556497197238089375610649926305820480494006961513655760323377807336253857283583612643049248335733302529617215546183227744039867411752334615791302707255966143893488686505231888796746589502851922888131517474305162944105840276591379059151777434744175435244733527811915401565818003141023468899349445097265507211452933065062534002099613731108112087467599664526995074900902924736296999690631902695713503863824638563328223855555741343400150511228787823352463226058265665551481396658089707842575787460207157968556080052647420589701318334928015156444461067001863608483139162770332080301138482200579808208640903058394086805975705044777443123153365702121310919122397160859372934762195640132273124222802008547409707808486183238132601472428862686144426658438371720581466219909717311630333188860429899832959485987008974641761097766871053435869717385110682899797735035163748068490378485702216104224607654469923880112682579089090576180570202889123921830304820725196998163255686237491856707331164035266997531426180336607101167510300278170250201887398232048782383365398303427474335506795986890232402448339414475232511343095806988139044688203621490427790651798270158256188202954754198691689730159189681922596971725040695784097684926096766056748671467295944517907019224246648043604732036922970717022359819712263752179085451612263440715659465365144071895450784843023344054394375743463686143211140551977172184669160530524640552883200037540892127333357811950787873752813832645194135414597158033657816375108324601296550349238384832414659493307989081965844006338404522456783064613234842038309740623484778250481816092944288537391897887556062768470630049901863270578846919607115779461195440379020519907285251300314219927464939221769181881654817013472433636946403856108701895579041187409056681117326906134525667949038215149200307281644427278959829561271857592925820893204711162997990403099822461108824076754747977137638701349695598753982830441916654075405143190630856672000899833118647492966056063662207272889942580919683409808306191898387868809592136096465749797220913256567671530718440995532244724634522639186694543058466916989702442923045472676213753622144719119673600804874333464670314041565711464808210105938691227103357518591171300342758416082204475449038810197675113140743047929237391313803540868380657230748528174752101891740709909211570808919883715746485393307158426268407266164184925916468678813534318807962599140684235156154744161540787557585568538274267467082713559810349029817600871082746840665828216245543372214066395266229443289592848498834021003580468791355575844106752598977309762419283672280174518935546196555449075886017603881616934545722970067266876367496566698533764046733065293296473105503952613033812862379909680557757244304796009364677826749171569223001548046666090716112463370995372900985500861850262679052810134582127357274916110192342057424809050272724297515717890080108547433928040792061509438126891719843916497377610174512650228877025950233855271300144449431485571033231411945596300686984877216985308583921074655441528606064735980825858631659676729477158233831643830548419681440328189915089594098206154896141739686969974805834324812884240447970698252310613943800415310793938490587568765847065694110281475052977554408930517304181238641812646559829106751624940117861839357222180412074979650347468897761834159836190364157358315644487984743594834802584144283640750217598666186968521409149081877330421172579210775757965875229166059413337418474760618637170973050461019509820637525170957226491072434775954813691332935235942722922760265960846547308349670570314037269332361188875193479478479638531503257977550594729304146707145642539948395063958954663570214889132959662763736108694398040122352990565684036043262279319011966003345051543949689055018746191844653413119576389333188139659031922470920120872630301975842830974802040980340454887388341375501676928574006509006171290232561198146006326131632225492196373478286882815743160237298255442673984904147326385582732139995559192815966667796414285104523220375980622379741019137709906822077537622714041662856940284554094267859349675715976555978364566643832921135805677616220947325308601197621855004809139130947153188164928405388339845554743943302438840694733674952673853268910242147653898313168169926420512061368629557785744958252106906301852342620349028945469678323813331109007663001951111254574563025308439494672506184859100658120158199031186756036507309063655372742021594800565594804334153584096205169797518606497439484007610348632307246936055428683677245556641328361084453290402112501138703983042798778076261399588581778147774228530244319877946421327698333956429430661846252888470502693765107358931644350094154025697456332497065182164599950803444756622867246575951299832860901952703919799942327075685227663731499379847856325453501539294206387169140167086159938760692260492731051914040293406743310501281105166061443410861279958592073641668510464260299291055348108472218056920815927070551327831069510409801088778480940653669665035196126091352852198977287255961393170116573593619346548122153558970245313999431133228556979251181089355249806251966090639285949650798352172047077257819282150141822537381698711273139959042497372505105673969451036066950715067081479600628422442660620954315990469526358271413353330700233446635166767248243186729168984631625363624840689569253520398524098309101667428977079573956283998067439484487297712571935815909504552604262512921706270876744364740061141695098207860935378041968443199742297473362100027989706807851626132606421986874009138766001394151590889999113397852215395938617711418481907690678505559507348822882553329758673605273832946596958447816580964784524365581641172638393921176822545327656480843102582027697756992355533102222919906002741211995458532021620562240268877232580705466219380318694137063296010560838025830480157946681553719459132256716334517866891729347105020824659715370966613492827655780965004214971625082362516125717152039824547335733260000079846940813014368211335713114267554102432346999965429099605279094702057153961707030807733865705800825222359861906507524052792648856883699625802359429783831741733524215931737897534552809777534000373689642692378646967190318624042001506771613424833263994977900279236234895214185084478849109462733944867275223989432419254153117974035667805384343111811034590947769009857636333424425579783839983899727959895704577523808651288625101846738323815107107427520012481250995291960061770496872404811296223976621994108351836650016980061509301231496586998088284671710999127211100762474144896093082059302623292943456698648296383252200240439534245649701519821842792599093372988324592044830156630578761516376416442389626069762439471298681362443516535836834076220180363209671922366212683935612118352208592365380806369538001340141991391206606490852209806649753004692943468597001456623170513245042655742800255038933192059927554693910132059925679965550188831617282358267220798679426829228854846004884017831808804577413465235547294985810998707854490364724889569121173835034867174228143404739958181414606497549740493972528635876247697077980730953002676351920699253604083767588647710091452811401732687982056472388739366116652047906733642847988219243521943575545025662531111385878615238630797657147312527708931010591009440490124699308691376135246334268559623982372713791774005511552619468860666104094996536033132440716574365723528683391125303322095076768787884109567602963817318211803530501446924361434482248496910084310141761456453866590233120597099277067215448998989391877591699682218563505232824662573200610153575982115608131309160498087758322059865717773563675683041232034747329144507466570828267116982094463633984249795392878256510041457971457556494123251582236068261624260769407974352491159136602200590942485955169039362128480414210107305995238425624224536977062681953193592151314068304132788478716071125537806957334741328006253819004231853739664975036964490013008340109771404624596246934613038165933536087776022005297815125546088014260573959146919878812871451988746537532636106496218381971362285126873370658009807284123001526480773538945110628267990910699577261193085197685059444069893315584491626991772822035886567034685942216957055015037398023712318878434529568409468710082095550467054400798411442456252997968461472085451689227827275026509603766927195761832225844161533510804375589746924096924475079505663252002285871952331206002322410701801567018485209957451116948244975851726661683054074065930531097454845987283911023920630235394997386902971999503779162388398271775204364651453216137607051297602247630081668999782555664869927468069275913320097846597412410151163873499612068302362912891607228891370651185420622863983215829702974058876777587328469782639404970530308233040763635098579300049652158992151055286593884336545113166924810672700664019583288131031035117557144349356801438987691179852062217342310695148462400354051587541877149532132094966173532140980845243650638825594277003955297817737274614437229045982367517912438977556545297740874009236960611447122827106644372730723957772989651341559160255197608389774557660200864655167180867027799129096919974148708818932753071585893832057258574584136628987726670548892433251308419874054722769062281986819458365317296932582507650729209453473949568853619192088528613461437169208684801240228645897595069220334929856974762116670009122436562239486748771496962399682215245069094032681293660281636567147537251508295015043510136037611762626907053514802287581138323878999772243069021026936823406967404331798271023490753541027600962951357857364731569333171731470793167343993428362532313099216615856032383579350088471382887194349580532582146238532657364785892254565298468110975282312146871229416297603420055460160932688217797686139164163820703179538607799754731320752694888420300076271513135725679819757732234280738041162079900003344707776101540971586611435834514905106563993819739423501931165240366378746057266927566343537675314019122780242864904089993861129467309424992877848210354113876455629534383048117044807637143367244847674651197078372353882822359977113754713614346041975264259837524153281340841306487989236814900091700550755567683922946050643965086845246339763844983028029573165519752712538973433818031627281129531350374474668536351178525129643179476078515246988476337766319831709505418863183319768048643052968686416528147381046722900068467503267472475968851954098045329534656681047167972134304451184088462963029139176609981356754818104120957676313596101928982945913386161559784290574192141448467941731120721138040870637717638138252465481403904679294863138888222302280796387055739469671165874757034557941633236800799889775262257452245912992427412444373434848422488120911001230217655321629774233369890174429071328802394733990113343843127969854138030396547868105649930554852264345871873683766951722222596886918607202941785283558547139734205506423574262828653291932051703308096268684828386666506330723795555374130298607856595428643920331739554321638106984057110214104078108014634455265290848344804190630208398248614621277540002413582907049281803542957426929070841312967761765077024367754485818523035542057113712844249997891065962154451772823058920848242332724535459057513926156078819699644312187185146505343837113857908325753101495861509560887640925979869718648059838779730659745448972587645700680727843511994146499552285669105320973197648707766967920040550231608371027687617072776192517231229366036351947788816082606386269200259800369781130695026890728557605506536408146134156463661331266842981027287534724442225052684229751647312458399531821310252698628100063261941107812474547751067243692568470541696580863782614452577410880928608490477558118511697079536825038954391595941303945900963189298724908446671492838201111690001208259328463778659636076004235872946766404575791565683645528959417146854340463940152171506061251057149142303083053912913256575289727595663788342064691849569733761196993576672749141615369184352380238494866702038327438205223464823616156138951083577136215788018663978863464519858610294633360967327638872855209082051395848081732431170259083647872947564428931517183089756776226517526093946300221460007597628146879741809866508305452996958633383429455628491911044998118847469180715847190849059589853812226575060940332932155590541253349794041253501735462135590564917510752388018061051516747421480063102162440561383859889171670330410073646966076889184141890092412917969481405674130618403964687722665609057197393548151009270286225162942418596458089543124647930676889369058962142794544381626933452967459230601565289283443540924142044539040125025831156188350171992621994388791141820824627654434854763612603805548396442202007839839838154399616140105965251760569083386641355607925100603414200659320479294489740626558188300049437093752449063850067703085385970528500933076920719648760235031245787446585364047450151729814795883306212049921544141606124715992516319032779280026633339729714256220993403034675109141710464683382242799437250813610263948915645696540307183125663328146963671918115141804841106958363365790498522931366673153236322302976491760045218670606035851427881092526941484016939093228238323165400618206593179967187912800804974116415034203805352297949463749728360942176051966583773535481529897614021373929124158089578179461051070478337549561156986495554466959734847550895861984200864401800319822733858612163564807507329169920483185366249522383574583967463176508746665812394498577140295171483315063808927232563812226283813381726315599226474916096332202566176559586709426567149166529241407489481224656102157019584632190182040312311826184614520306032151574623525512543228950111410656926455187209321449118070059141378297566432919157498291965365436028373952790469692063630968959597723085597394892335284046310797277087528096275625395617382473359382501682774586992450608219802381352633748775475760398722055851888136385093066163016276968839847596797690246279137521462809242403538580500136810993017277498989015008868786606540817227029078924200023215524966383199211358593898402223417958878052104394984122340699656948863005551873619419220591248295205838518880470320851198448461387398359044784303405055838515127463958426512658217098536217199089187369812723887980122684401385743175361898362857039346780750128778875579825500330117424435628597567452651356301146800829769970324971486574835214664921721304142478717232287356186020867331249098334260510503596044863153284232747898175627979979813289225767136030153737534538651880488446074608764148748275094699450277654232314116784369677445038658183268021661300433662313797590609345489356862127437403192672068711027784101837316954322848663945652324226032979328940298326768483284337941325593499036224680839231705489934564916327143065554658539380849855607294162960518567061745605078371532004374341356151110447875819911583386730783312630578839185074062952956962192484151360941657917243532080362599656904094066028602776096526695544491979684207462310319975561966805911662081794960075100552207155261969825455375918506786011984740510416826079950594214738622947018389755556766459690374549724721122607960044572745402857549325806110166431665967977179245823065599535990499308628896969477559351733437432492616102883033122321217843055216661874758839471607263971857606166965233104294513642681799690670259664571171288008353128320799564991570081486857295304256252107809090832856167447093659123600049532886137886311937625561133654758675018628033140457544557895118227851141070979463756436658185947196687685073235645514786734852424166475278108498014666159862115176361600412772607209583493419008204582615796662137132053585715200030189087574657377372851570675407214305283384995442615376207861867301543892084910286019445194124648356215193640955952433413545207702410820925015097280861515404987160199742229875275121461104766105404118938194200634637806009495173807514012617659419612009059637913470323277508747708031065831300803825670867308379024377068118972119014357371444835294982327685435260720420048080931742530724975108715465997526152905099114326466285553603334043568369821120940186647584189404517481749196227655843114612992234323026959108926837996672772811175798337181339679097343446715949204987421199645720805972830464514297769260147537473640457631822798144202134005078418131693659775912256077475593193776748322466263908778108311869694556903678261775708646882878598992003480546540450786340441638351608843107122976556200775476946734226949723293998491239510692188252955994835198677505020649247268062123569058387958664150916729294051309562406671271228989035603316001271069877605924900564984359823526580708221068909763380730836695879868684174333254904900521170674949529298258458974257703217932313508833593021408381462328676561512527047772519403435318922502698758722638129518517395168654320832087436844455400411386857455735781085547162733411070409328490896509369131871707127983402424327574941209499234479296603739678006152426885376769063060584483745980132863420067202442764615330229723310532193606781496703039590498320301130468832950442662984729147590315354293920516483623260510037131945018783957726586301287672221712506715878703524969520575844480297434094315254297366192681637994812121867708968593809740802672929414013131703443351020445736870860083112899326362906761978470613333312157931676384120010122256450502813475896683434919176689722755442277655817809625992643395792030796079294561716320245418591620083993489084214262075516593609714517810778472525938669028034293906294853762228198932858202274734145794733056291710706840162842085453590239518206265148996616326096890258705745674058277101319666283101438856735548831065554902141660074322632843528213632874722601967919629841415737640237681684070800136266874063517834309548888092425248416173931661547014122373243019098710897795451127575138037718314784739185761737908723335510413201143266899663385170967289497149717545046935957222823004676991074235351475056140814162452919051491994376627703335362304279040895846090749287135202882705517092161212856399631184448539211893475817983051169668344691252590535395696108196920198164262626083191730248971748125186738562897134076332803559718223238945306905362777377397110968444557877628033723428613992833814108884145237295096952736236700956134252609085652415819525198553245071115480284801800457057433381354152331236228441290568314667791856001399694881990959014072975595342805008384806936237330808087372435667691806959878788953817303684351267622712094603259893490941040460764017189386703905516657482975255511692302361704361760224320661337017990984110097705749427011024135699765469762902759810325584789602354612697607443877548706588981774808957020963178341406185264283572208499158675148324185359422739699920334512099779347619415390865085745003348570078176427007271643088904291308261527129121160174577115417862810872861114061032398441453697923821533586149458967208576665551045820911849819923141097195139207471758212739173953519501188036181340483817495207051506022862400607205231922878647249599891495031164156724862595544068051265301386161276163563901927194746364714642724590018260139900158123060194648669219327148079475289834136069554365831996547544024429760414240533859195973368237541648370507492982932474778424660157700454324334722545598059861924827562536203511999215950992952536957556513512818106467074314519234805442577131776208052370481431035631801649138357674283320474297424683240307694864124566109344469170336058892782364656984016036907084357389244863577310542813417236362269646608612738573405693798172226794017144120880046817649114875819979402502348488632587785904264389632330743666249636390617347819207340881392227256882827691517562448737370718769746564728951921490192694128816531645792341848307624386519497152002258869432752917156779000864129609091424976510233785359586166269629476983140544910153693914671470447499910145619404788329244076938331813622264933263133811039564382450760014075151623764672736179897503540856083078175053621560380487796694327123186758627154620934981212980066030603021838596337409721399311685513660656241080864327963460397103037062591383942731028996135511307042081015619038720709363170083873269130424554493042169727323521569537230417612340882550891530273409527509450798788997026425355788074021539827000090634416020240232473669159951059992242637943656428012159119893468425074009738302118938477863613123768560277320585592856119303690755334364470446573909540646675632851554167866398616169189383195941449534171237018586242088435151184634811553261217171635759160286407619077399362448745652839507348057854356849595156325157760443055891965921528245828272936829926158871403108957167374451123017226569495616991710052701974710240395340477006232361395151461575229645771322213082901906420148276461477318560362808601181979359331396158521250284814314093676404066189012621504081310638141428881280084040431151009910173947969158029162986424873243182636136855314794310535949441206558363114660658771194724417397557570185382476038721005486034264424390330521144477577779928705314940643941170380820407096551956128915459233841832680158921477804076642923187970186591739550950104528739900069340864653943547174950715614530751837482387416676114332882148050413381967278115527738077256347715159468310146262910318194446620419700244412208111316623726393186790589814190771123269855887758265847313500588578639827289125905398109800940915455616223175468957188491061747926176630449960767181025972108127116452840867616516600119991624022345850497014310838923179487143479048592942601558675933772988827517302879058906961572673590257466365796847089020902016787889875240198528891319445739863693767697899915753732126396160418987775484659464479268593398186202168487211507889110136802258628672570200668848563074658569340995204341947968158537862726407535634556821200096932362572132038471548025366570614956152607053590223256634289860785626126445488702247199066412906070123739721604917339409352032679718052298651533459472439028663697571608906257627941594994422472855093117645638452596350197486633227883684626275878219044280655299584835731163495515574927922261787026368378115711257391861162539774510859896248464971701626565346179715644245714381462978948052721758355478680633851918615271113898520038237220569826940575597280723338321666469674879785277625039416753512944754921705274678731346086713573801495918392853818848331048969608180508992223985646191612097760441779519476591058862395667073859704484972873690942594515988581162897655277409487199033556622048219621237533560724086856034049009752445551659293796419527490216272308069374483485414178480806464825107735833007475774324629384500174161550585023381732702532379144215594429731704655076040484721838709752924603395221415642494670521575990022939988419275734941235950564680470808097979976834110750566086874900689595138722575486012531919858280236141204447023704844481517980222041161158260500641072744008294483435614851791909245430443137618018691270084921741737522658479689548127392246604101005069501472813041822256535627572990784174044842193069334240255063851812058817680220903069162025941492632048160693308164870101238269011902575996413327135577089205440831105126381430615120998137764601996257781783800989439018617628474509351531579790671481362534381847146070558681485486765996310474678805662047766044550146365735033382728740123713291433730070677985999290470793111473135906627520203209972135942157064825084132118274425632884274730858287115355929809487928933285393498688346905540896721431920852214919156647581968052933993270209722604818781664787829874622907505243356545206768048950076937915622565185799362257492544509075390146486600597060287047768286587234656045261585124988814882602510883313404370436239376069311657056897330441758946503832204960818786794021576450252485783144817576398030589304092691041053723130286994616197263439725208785886526104098776543341421304976947820067347504549397848004565787643014480751433409861035376689449910050464564544870174519973917201672474528992586155858524493545160369139333986626324396026447445868986247216368057467595125615902319320958198262710661251387288190635989791981779711971243037536688327684665198827212293744577941431691775183527018314549825219151498844199978307885612963163217429668270208214535757882493476508143006331387813635767357840657106453655276872560261159453179746652806225808895873899120395730067571127986283859821775274845794043718345985825960598295906711567758403020165683224314307903681675218384426922301849162127604804124468874083730259224555308899484506017810127531515604478478614744449687803863783974008838099560532482234006627406134134286851309861744324787438934524772222598128748060349731475718288367208006889384950897529213006330282769512278127266504687405360480107953413912698532167290571816129301210594188997652368528089672910490436566810269999839862370132704325253721837523695838857336597896836977255388056221601573790451174927069017999593636600638159462177349141382319000305760436770947254161873423667404569158609359874021720253125908847380218403792344892162249942926511673482124495401265279884443324087805525311759915175139906627974831491692508795129768170765438197188240057835230208066745098686218131316329684661198832607496933574577590125455415971654451441116904298238640945615490009729669189119500666055197333818231278606642036373651503755673504803393307900640141553589435772678062965257827675729379869557144128150844319888537189953916454432624772370942858090844168053811597585594860186314736194880226344329079495101863767463368622540781725802773195146090909481030312643302933586847060796807284401214143953232437147276254788676825669289864700346089321539654318833517111325121280794723248341153003484432557740619558341723307742301749868424177134987022247636569794657080460638040792300031466680320591470762372754228903781831158019468713157894738037653607488289902199216266956969678211762827666409335011645083652732024053562284279080299352459278200239806349558586711897369252338549731069475597489526504876651505239871715036134834838056095351519290688318444459710390615333075597827977178901019839034071083287440193658265252614801217470728610400241052810631181693071980858649196977571141801547092917727115627619841064358375989167276593892657603401838311479574051630934978539948565411788812756954619444840674979673801184831092405873849889769925028198417621606365265511682587818335572832309464033724409808639650061222321864178507812795447263002138074963881217893229055233425500789189314807674830583606044070790858766925932502463512438765581381441970849619540563543609666390567668145685369790112301851689563415284761348253411105807559071656433259759749716895216847016469014025860955397212111488433378237425654974105868811448351565164269070848142208524313489535088565130004492700475889826901246847966163671205638407599187574232060909588923461105670386177589768409511137989773420257226763344691942774131697447308144011240548992807410905620530048302953329677065190371555892536516641348782835816750145425041372287109829878376278248173506791309261274507376188847749450903713078170418849056509249961206978085861322038438370928186954562350818626736645577600508534005253874015246792482913905075619484995359561571231156970880262326261947366930991269374095807049547722193926978660815093274615632871225564026337293111545412026347952307938627361312438912272939482047039714501993044819084541025386567166104805472479292962719191693614164438317933235298934584963143808771580223515469200089411186209732906267585979339798824360860333073811393515245335363427550341326219621381885815920106396309072636487763351717051597487693285538717129477147606493700413667226361035340444051639021879102427486995488083550220075285427793788973272957831938879875752735843024513730353313667180804340943404165022639142395020559523962385798093810416280632161720447166165192625009983564838876778138111383817645988348511542456348056290057649004407249487093943152772889323563508731603052037429620977905613179887396077732931007428465495370860957488510915463944838726604473302663021174122989050516339623922422895212801429280380882352428940195627182016596235600218786139058078239664066202775921833196339644792140497477011041389083060869129252614794990038612392051402040472175436223413871431131868490818782298373380742021713730243460758905341832611867054341353326607919301066502435970109531169553395982196346127061750195249338771611068815661007800611129288683863394281037688507567705871801934834214635886664436517053329860414351846445732252018534316510935732431596024684054908694791795228566296517451097542778777270991529224424865689405348753252282380278794552430574606812055491343435357430362136386974447087497863422171259273221070357743120466260429934931264309828295569155870902062165258620434204357084645515855700657858318477610405766295499735209381806498632649595140484698320355771607837237192312165014196027876336024271741170074926413315844382307622400150573293380655166650754851235767727721282964247510303946772228210385684534090855958396065771859083366648551185084523680301975141557501766156259122413502757231876293241922451787291244731191939854514613219888800600397246789913892122080518414760666654536108117436541486913357490627070799209212950433441332251518386252206182297084040225365882329929445367665307888386096989008264075087659213565704128391173565750618613501809989483675372747656339211279398654171289767679778095682280851314966312137572946002936254230841424550767821088134359648423864511573998288850078507972154520112190801600977700252838725100661915871589260432663878389788053627587752423698579879248461646014949251169917229646184375160737442714095454479673016989640733205243267880750217177218292606677370400590146218295288221055583380393001724058364649129530271677089590499149938591428124077079057066218710414082449006606127881093773649362293218856191251557227337166124687902939615287641349816300061527863949015442613577145967193231376875803954083465999413886096896596678521001837204545237177573368461059987595612792719649709654850089838252589432751066461331765940228791550922859984067041237166737933010825239615914969065083985119532276796272886611451581758036686998943059289069145485750588596366263865430580383779922461303587811336723711586766762547844582794827818236658472189274988261460442941842040173221546926413426294391140577823920785128419929792413983211173633849980859977061163921313053499303755751688573937325284912418361369922170713156640224196377524754353475557432303137134514070891589392675205916518559559586623697634245904386070235325004879646052846342151239765583804015751629881384448209841557776779033080220266500517711488255752023739856803438551591679587943101233058813734488225839832256927028868339170392540664706538576253607153157482255928726485683846295595821688961826094339640151890992328980093359958739067150097138371217630539095846864722004185311609485719674696803145497210536749253576632265898270986863114553903980018153870480516866514812432251287237524649955315560146328533796612478303173983902085940239091063953792583776211648918714487590566180641815794805690256899709702878864210232575902021442378221229906835564719526593936848900158089042640207095823131724240025166349120919921842071609799221234285098815362566545599020841804514816379040092085569886287364088113906468005147284600082900539338127222520184804597292118594261414190566312987789018464563111824155727822434989699042893009624097657611933000857315297313989484796721129736461900974360228069243411184594342633004821822572914606208556337719899677834402494097043816721983436663583881565442812472683776132240750794697043637173803628938434980804294065958199029722044103994012311066763390470222330431990126265944893334058500684309804138147405155177955835377333728311523111628100662558164844943167483962502930341066469985372570434580215843729463500268443744925558967979646379615149494919503349879951904426854581608895142466559091355998254888842633503318131671539524422244224667337260056668297273794749788880896793731393044382399396947133694409111682741205751511062890984944935027576737503526595007949624850212157391700780889491819455653014956580289994910145288369663856043411810688796523035302503575595112442601230463439400576158561650642251101773066167284293827282911195709516058187292441736247154239931283712612043871535091243321317720187031281863104730317091027010833547875930907223859181757873410210789828826589899567790715562438284715917893743419051453289880621677145019124660028545673594644059729490068751215268307764019043425081496037610606617435769553119838690937534866090469916509815586119710557802233859547585816779128414826391017558595438821850153091448189551811484996872416567778222190675685875551527226145540289512071013635026567329094133728056881011324994844257731355480886356616009692901252136587089208989756795202168589519091312163016185041218866144153344072187333264067108421627282488337396715653417728532585203263631984858061389359023229908975901371045741989401201038584864159945921044983139701203922506314615379658089280321787686751356855767758598076346581262110687176387882520728074899883076778338603463106931994561659100009199052150940409314845519303443980075803890420820313002980731115658378704207285560759460989864253395396720563595533316861611775278590808961798072825745409430815229407497567953594079404422870726870927873021750846366634827533829567560570769804882955475559876045741387700201690961059194959904972773572113400898937172488448970689448769593845700134087694148922404643803217406963420757271594981873144177005998859464421177703527286113247331789350990102611858126798461749139971308213720498344811372315544216849457282328879473383097328715320877513300475351036403493427636661071414698528260347191630095280042226266142738108558853177647453737597718682656044463085417354346616911708467131725686681784716383718901642856228603115516008994744537698326434867782169505173619579983773179225644045276541420967738163056120256933423226982438615891993010150818576603314646595391236919988706705215091996544384142828234413176454399845121153951702324123322349946486438173984489738413156660203747528783987802161910943932545819873794557744567881536145267475655180926022194402813714787918718163750186987816271261981850730535310819025654715962319706499128177967257681820482639019701251293106409062803694012344429116001964172643190874484003234777391248636638455943277164221351841663008694592853512877196703637788260653505218922601180549467190568236381590821339595849531506553685734355831154028556053773173794884303248086843082033740351284069314196020926650085400961657455461896187226047744403163143484461592850275614042636729779258423197520587720486095517431125466639863114324192893108525825077217413268483697537403403559678121073379880761278104904361203187667289425516688900741960322330667108322728093681367509095502940848151607682412980148534789009583927687797637755849328119136487879584840595130650926245827651734241388328880316012379354302604825390541836924111694794585932062293619299924168779286450691152064092158121524150950640183640355836940553850418260204666649623820735411364473475290295131866654714935242503103939126582442347699666654939155249251422401238204729374596641181736766407165924161687473991426434261961424970866131201994366475642758689394920263930854784417863201394195168811030420899571055476215763818907392037485699643879206131938014861236100294567330447890456175806115538045609896661756851032097194411559292796122780872847481740134593122500794075213069229991350720760463393838113927309770291993729347069581801742041812773138823339687827001989934185037700668459394857536258907382818035709322307386159139926351119696831173177890014328944778154664462201018028811552840669439755456923462218841733551345100203200201834762735180395573588336710696224176492523197856360387974895787149244864160131450222845146408655577005802945774670360806194081022632064191982823898917372672395452146488294398921561822291405051897913119005799495587158212766304453881330714442533762207030251089171840679392942378057298074123596714342436093977991286838899733605889753824463404602019918269683992962867467426389504252327716465750529126961889735349480225050280604991469152147259169313796997707776683230817134069941692976928766150805475717666848130314423042239758670363954601642488601010894800267169447368182328742419254710677270183344489254992168833816923392685887887310606764484562859093521447424444045033953559895303803365333133269129154761019618139179207124129506668762385424075237404214330474906672384769497739281675009512801091928668186300592896020865060936504123755120273086915251652223366338621189530593795418766300339525665421415039721491693127726814758102981508009148663489749289282497879730577603218977309856782273600407601674465664002851217406442509075090706548742254435126214951118999680082070035527271890059791056872912857571867240064523694365747007591857830145593399851665007801675775536171825382096817988982635009814098916339749128149801812388219581190241014225609934432549959310967364915851556544683294087408359971254576856934637870962025264334139228028156778744868574566580594323377645807109818090321835376718195961209182377929770042632127698531980599840217545105541126928913271495356302090211601093697402934238328910621224196244624206764896288899012896068792179504296531306841780077023079215267780597253237749173844252564308744747089141453423184245675467907230909837518659397023559142548023181018832523529734657869277434630475328111568796613231133711495930647964046739657741294105327171193662858537005262857661317730606507083639925537445721914811382058562300900767111140354025594176684955635857904451839326621739365590087192007079004165416139688047106065668163062217064381975876366276913401962159818874319782025390110708221461880030223353080190933575099689558462738443600738616467393080166795432111087462137347292347830976518450106485056184081258108757200156895540530424586130862661656134177232884083895351287634002290894930969689058102594661120615452795901043932904035192148654679398109301683915277399880731580299649455458769667311917204948720051035921690986460175635322342647284720575072839363396645187769592133276693961406827455726581179172023896419145395729235877593833076630667803230026199535325285743747676619157365335282924792025947345579986354174434990979798915221242012621614447974029224274473547824641190171532357527874615114291891192233006520638170776951921443127058178405896545416989937446307271759460528815490242538324302228823833394968369119704467793504817490196392138212941579580394759948996344131774208522143917744930213542818197346088059263423348464885739909357471288312838599267182253550650825432433049094777097576506971802363847365031745037680569795735875162011700971390230497095024595390849102393561830144528683502340019315920706614745904204607935359647335317309050718160098645929040398097934784857393591824319278571059365249701466852417708050650885443080420399168722240236384532738453739514428385894783261013145852144282980787157267477607723879182196732750146815778537635773379686949535288300920507309944476081168630119389324577646954784387160996382616002812481034430744064210424244429185452264016953620178628884910749256823368605693890731277769799662161646452693352804454998128083750264568913507369197920112612638754932485046523022272764309281317559998848095499051709470074888893975250317936317875559361465371516355451491686496583097612686470373607117195647840837855973999720891399251763468841119947271610763306223480231077767736385068196390202919614742101224654454076114787996955789169609294478431380274180790039098703892177378178104590009181343312939002920033938733865035999996282519640399699419603764723747992725504745394720306061751572619876324125217263559072849146043718530967203281829896286972384955145250639339747407804028571538349084890501183306539442661058502219786295644934314354537667408154259752419560627830742057427071202356193987923274785288271407847311538580015317472075505602807739993864259429570080821382685331529077442192011786609180135554481590418564018472731491818165645245624459919832141336977682857806196338215216355425408459041155075081642831095980630073099798003647346341485736013801258396911886039321819264983040945845641989089351919035731561813339901742230683218000263555318860840663982051753954377311984521231585836397956554772260790492622657657699020389646955163351323803609310410244200113682286887753135633707073642088948009441497164336786000368870554817947120233355236389119537294367168737794599131245812697936177955990480951386863864742323786815998487881207199669529407191681459153045770723300111834976399769756354212205400415967719255534711968391968828029172051030604002045634915880686200189301623767849142016128675557820934727828529902716179628440429524859117870669422161295839000163698086871003434983793724480846235896209510904727969461663713839980258118473196777996742046680034323366495635393757490886821063664151409388245395981175924034292420583074816447296665690839488136507065662351600387068307209712449157648942990859044552720285138720522977123197779781185197398795748603021975352868777581837171633936135052159985670750582600826510095384149744303325103876177454056839015553090106960778085842474785439958416488333289978835235002525972337566437648071937455589967425014590302494471413944219819646332781556729789811291217452826502373296373281521205421113552938825050009489925588232854670066583053262598178501553815649411907898872250068874582628925115270743735255747658360012162363809320508904880505917972519157578725461448116800564630457875049079075329443739002423939717677728824653303443220714798818982772108544799537279211475710317242863734797406739521835217806141903286134506472747911973816129419128428154607168029825362715839279856986047421108411369286481456199348761794732388828601584231950541686836714136802998574052180034699097945056987223618501203158695159285021835164902529342826701110460472823471065427186722716465850510388607504328393609637616327624335542578814351077599982994836526742431986823660592000424689502459295319690108521089482477636460893534434396699328406057818491494708584212119364175586019010984344251343352478243433731417485926600969993223195856982178204261653437981608895109029639480710886188230235036785471329234564934444060229713706764871225441457893127557233559647841078556106731586539694185107953637504030051261018743756170110768414614071534046502063876409951769238210870981284442855608170366742152789689101326787177874150724984122900319084262568635401260849244457936722293631562538755169141831898721151251040929287458156059793082215423250619250874353409599310812009606756230227758284696102008968742948378993910433477868830455134072360757770156611550413165622592915464084501677098669733670173744131246613461451842604131884358304652516704904163327546854033088006829777472656239769871026866284101129836453642463153316301762070487795770770203260105017556104782878871293249140469462851535526527507835284201716588361824450772223319294822941359074442125251297392761018266352086617110353365310536149454625594167648146931760482224530926415332871315363132196301248273601761307870290954088354298884266178996533468160245662689576180393159453186688841753342517226552709379623902121319254575496322055693073230711380955317298470511952645832060656365938823449426363531212129388663115737713205192052880333808622925089124852141542751465437484110947677917835478190575177339041296244012873199134366605575668727743380947541398865993780454199326858692096954332548906292466702825100280630914832157662667318361292389552408088457451808450444018765251581086127895330264437387884176037757433632026190206704725158120729180707237103336658627394539662225066062907249904038181081017926247964827966109588266898910035688239828152840415425365336060189848748337545811597503021755115979498695758391745084692075824488840544304996393358240791346032126172368273130773171734292519102560153208200033611644530026403685841854104455714657483006376620934729512496189476517684839662719383761806825534535048887632483474231668306321481358932985724011045103613154177533512107966509928332329263303212913678833639250646372366075933883470508394219297293080190268581979980772761079838913452176218456475617259460734552296211072871764459389159905167966055500680462445760679057682053850145107805842475361016553034575372951215779280732808900062106164575829723725763975593072066163758432607790973397213189351885537203639845413036227376153158284749687031710314510656252584272499615579196885294121595519185270975360973422393208517280451390542218160618956896537020437294230502577850746747419395998802567766873773776243228464329977933367087671463518430048947835199170238161927310731318786859187891690018594617178333429929439002330911687916926687394522652382784176566918166447375589616014206773999124936617703156810220313156387700517567299373517257251829290804501271658938385832732981757502020851358685201485136134216808428399597869370473835358159581533818242955838934019384400382234147623462203880906149307552464497433847734796035314209645589909062180665735550826113161823479823494728792874361888611161664137920139984768135461115667104761239855846780794147225876491759945793759627061150385481865434605005952975211752396093463907648267346221337466265828788916952259801700710024086001336901216566553270094708099128562893157088072727739650987531997620608277157689322405533960065404324077089110864162675938098098276344952020214061672080947567448903714110819464113661824455445478107507960246281516767093051852050944343107996404013108792755355928704473463811014814163399793652501122379326332427126446083840808782830292104179123310305257066381384314120747110035564068162236197355410321285844195709915222742753961763415448580083734815763820903832700830848022840481605712711345687499449212422681176204989378265119781330048962481112757836439148821992278737090405376732717716258685271841193932357991811495802857106569852847019546549115378316796394873334338685876876838699280928696932822069778091189439826545783048859656891151937003878029688718620900252689313758826555998636492161586166824550095652173826948460555017837277585769867132179876930092046054353634143062738381114577860042368448979350495468728090996195201473263468004043178969127289442288582917647337612445815016793426205770522294094262743394303963064043034682247859245184578824682489972733056960505824366841653538468620935214560028193073803176897270963626865248053427396138076961231474912073306364342203774205282754082905568265964509969656965887990308191032327916579409440012600880758083913045784260400767494595658013310378194945271094358129142870794641353270410092978745119379490899207781056863940282863479397953569176927239373350370718388379307162956607147479640080747069544552978024378713099999939350458123863902797442962152241213391997063554694044817109274753646830469550578780840351921336406053185523842046079650638851931985467541881758129830917169816826880553055043781293789663073238051739798439256968198151463358747849988827424696852513178952618690691706862309888145132725292989883210094088613810987303182478389952716790161038617389677918015542798793667946251519435585379396308926659485628511833859234503181218621720097728335879825259723241421230435798565750673823599749084741553152474600136649581834212109514362529240399972132674989397917067506252699170360004809144446068612157138582060633601118520439868489648684117276248392287064637763178663822551999011271822796187230041663481265095203509483558538567818842295858650388874889374439933831420708704847414467938627385617839461011579991124160936185424620877505273610112517702557648693096916506920354080560697339272078756886581236696585512109797424849516469717579062752843691180071876900358843026788015269607697374469258028991708859244748357942529498895084966996346308145206031678566970833238983203402008258237485360891057223142430938622703249313138394199557651774259546595880515475122862053879274484387317624755750366504502796799775754381162778664445720889602957338169377658700267178568770031739759867720864522567031745236564975940318192118180123070626088487446384234924701286791167716082032196305328813096823193875866660136426027677273735335207658927722059037614442848719544737599487869609182117557204733138375120170866480518017502398867723221130306338470904878775146436252694888167514449247905338644475179825208822541453739287380517229088471047416582325567282393043001136919410359495829473845758755998999744803425856184432141088758453511451027952363040276762268464843847777868341851263703886224163218089477032957712323365316272178953524345158957804447962906006471676931822564338172269332806101653806679385373100150638556208890385908330900754325290760955946312268155009223771346113817920148834906302753511758269639519913012792242714314552530233830123993583664542900208276372167596925437659561380970977652000461405711487329380516652019476655270438179962315871830221784780771334327053589232697913459414635694038687826804790153983806835060099361969413711124440958824498528818057250079723472152395554994657698133878583396263545850254885755957412153997814804205726807440499064987637487244915512239371541643579852278618964648908982697568364695635688722136223327806881684173165918103177932840425678587948582973882026079464345992358310417227725804132846526527989563051246011338091256417006403412546007544134250558321151019998894558507923353757439779472508618147642150030807502177887845381621884803522423796824444050093036389403831325157179484857613774640840504648486396531334462384157201210205276774547584396509554555644950949613181248058200513570757131554416179699330271207818177254390108337613720393767844053921704245009226465234717889619255430703385507956891522064561475889855672229428714042340525599838269629369790903152418558422676826250766128992124132137297978836976666480008351184519668710761187388856035169116426239599911116523325483161650318178108615604789934910136741299166785368455010174706922185966529418744063183452498961352100658995044299796514124808562666997069590856215858286578552855863389395932754004773872044394820548479321413105203608734560005561124074176045933488440315596442182623593609630815708976260904554076457929198519691379022980147336873919418479027087792609325745329391576186798172449618756254503136894496410624534455799947908648260867681227685988991076216948774393015733223295807355724876362931306552099945933631240846282067600280658519170401421960393681673757657763710127143110972580835815482881177674028718550092389699658756221901342219093578079417390133317113469551277922058901239890359839282838304778154823363106697113509887058042680121559622222697927854292969399164515012296442131753077626429009887387436115530331376865945224020863073591355174268111765699964665874972068807414711419914241844945024367152323411374750256583309914694092283255926451367579241618652131676968002700723932997703259023775327001235276375981101141741434205085082391294960540087825314881701425396196606366372010504410074408667450842373126930554029736391001520243792968554976255505460231147872521263301696117570899981692723484911776726990563037681879822033236373314789276560567147684669432743210289731815532927292265274397735658691731327285773266931634046479659963083286730924135132082768007757822166163185967059311309799651488352862241629060806562669686132768575014113306580269436324395433691471772163025074468110501130492709467996050239598201361667313456403793448017315808377525269577010212554270800120379838672107557679681312504156780707527121137718287152940174200320382021777616066024298576952706707356134065760564195863160057027372021695292585155712825824121181397212452397420579646804115623908863606672412328162379165776265767760600040019056986407135216516930931359477343943205311066862472097295890979970236314126054328881699235297225875273065976033454294294495726920424803684108400413820312568091957681678967692103571310653222928191790934938761787758225201518184893289600394482760969297380936679796224464694282746832120636478313635967289122420836080831333551091525080499854765897375265056105320668830835188360649275701761694972928693044943665500982930917761486578769608743551460424132113908509408742636196311233129145325325504058244344338360201707702339309112015095582633194787924887858376076297533829425135110400891557358677795618467496967868078159438556795407840594897308477073645200891810414972938353840994905150327988748570397355714975735508417867102187007100314621972532592476229992933898856380565539378761312207163811187586321733624266733035346012171008432887064964314881372188999267632621844274913170657486158537032298373571027204141606583549417381295968681729795065739971871219700286623968311804430522792268099745775420817628276554262558565460420931608480184957582641188891330201311331471227114091221942488254028913156216747123612003653635596040917831495107006058909930429874349524398611176077701660919423450650755239029254457455408507573729086511331055319609322384091096609819245334062233036981951162811435751134205204163641271830569128913817621210719292610810911518716698760044152590099317963887529177481534774773905794597727919902183508528616330935167962958657961894936119689236166349371999715176031382339032285730681363244512069342013062616723824262980064536113708469256430119801207081489539968682653418303310480831649471108934414955707608757148364195553676528310160064368966045746449358191624684325524222963146873594295479364836884482815875292476837887979367356506287938583215150021599279292758881044442984024114184415585502072966224903118090036409809883858339092854527485870155224658772235724804973154352582857892106274472635828776406903648214888573073014878886297023389471929071941745618374966088272884170261328774608730638402395330092401553901572584318473971051243846951911721619486117068829354468797812474925084719600939233276168395369080008578809876466685785861214547824676444478649862921595460977365918642145460877078949752042638491439851787230515683513129545172221042494222821534106524252883963340644901629588584044704441637115545665667182494373840167187285797338261547367008770234144914624882156732287913333308568547260170360314243899707189995339632608698875797431224141113366839048092177297667335293539836820695825746985550351180089659600851397143237834513712952137464075430189890135102258374114028400229674917610889552355410867444660557680248801455578447036181835755649024329829158677996008646036678520373920702540991468144510413822159297608954482356903959354774403251328901590654247208979541629442944607659743499245044186328201964614781375499047959278584250368586562171331397210252271758085435424274150782363231664002355164774645151452334893782762523647407358140849354068066893176616728179376263376987701062855416523869556421616235870717714679941421691888546766369205712101267617564793691615809478836597516736925069313974213976180623729870789597848300054302585307833802955862490785249172752919096861692792265784044742532498155399995050027796765715240897333021387019512595969365459338023018006405537342543485697469698004790022416651394247079160392371890477254831516685687689774477352487358687915197222210826828903910522965202154843210665417086165470908464796948097410055900453968793457372921678342509866316705216560183880311296752905395570784006362495559992889102765923782094852220301494352221691764448436306850392958403528682892432178772557260275540324638327165421065617331857050375721991081566346373793449904586692633417055817043394657065164394891894739688064245814262502077829215326054373938294888929769273536565219052592473530276057539481368258439570528532764787424806909913165962680084098728511511498033489326202615333048659303414441495616183852393602841536552647575371814857662533330348067899177846530948086161545784962247436301434163628614985293330460331824877467023405810696993802784255393310637771335766607597714417306776938357428909733946986331366234479766441454246975459403911161897110074648080283821004771954207337200607535610909765402049920656305310181469836088141734413282988643535241115469995617716800563454121196839410059157075997698654284357597306918352290094112775313720405483454162270372231742663059344619895475430231091895755837121622067386081986651857614880040013510181662123949085211808058416696121127178840255222697088090356182548528393554378465957982204729587455748868474443859105751450363508252273024621485156070029848375022088182926692914185945717298615244519270171414687629944879211472050986629076056264302899018967010090524524919140100113040217479913371216047734727977202210102331237041197425393632386755612868942936518882607119626674611544229822152074080965102253761135123724232654478385734651973624799492874546118218477771856340315491769711682018720044593857239248263756546135023437294745745784681622453556298564292920092398509492625572705400099070978942702148715491492064329041538078120132525516610666463300414449576709082622464474483331655612115731339837684772497556645920987147921538784119151020902779003034892149980438333708328031382101876313534459450543868068815385957208983824853995810331121250507851127793712494461978369728756100077684526436617474577617499120747310115827817362663807095014957173458671675795064091885508673661520329050413651163048928029099701435720520385847708706197103712363719413721725120510188760487452349648944460970415854044565720538300370074427415720444064590000255989150561425616557064062636264808114760052152215358418656166830467212342962981468708181608170967841582945739654492281716898426119829334527997028078701914952663112221886553559281708986662143017588946213458197383963173372031284897608970110160071890783975935541242403574070970390351834965832350536186721684095501906993149390380118621009925692828184702357219102601928391619963070003851002033983246106374233315541856502877791730938465233914606233175194156199121996654718798729244098081582239081285073478212367709204587201330391222904603166884454333046534818136645080051980458567350409085566835334485453938374259512270156758556137752401985693542108311702541297507551164132535505763754751153446712684360946598349062039531395728218458376343034290616506296269646745481604245734515495998379330207743206281281437809752489238393611607157976749671518926639044521144955229251346863010362126646275757131138672203227599772468443181495033729357841924147385125507182112205159412028782728788087122696022140430092576412144045641947271157891794917005629241218910990289794759610487162286638236141269550290886111748811808684590233031618458907753962626431875115188545978376847848528543917623550144888326126826906830262929608339915878547050441487674116644256520623736882799693561777520132676637694779363538962814116634541970705609460057363962512729543120039735222055185534391178884360133293257807789592699693769015730314824722796653650451180696381154736103455463393866336488021699291674066539320643327260663390096424608656617227367886870539257472228923045515789043936044570684844873294538169259584139540463011986027903667657054498207159289906835297179166434636843967033046962949248590608162512664880688252830244397441014305127001837133449356152999949538293799135370159642201177699677638015314161179960314001925796276869526620471868956005694242064165590157260541323656947006012639945545869887117324952752642052069380534406217791997604858358632223415957610187309916417540682168085100093036632885432752155975926708086833618587162941347185565490880559134314936162699516529993554394014224622387000988122353176426141489542595079095115961061344411447706224911641053534550043085836872801305857930274928065301844772811613058098369147172501853736450324039350835080087961893535062427570690714649998714871994539876081177825899002630796060591593954659759836533421898827463020241038406628732473060563134292783031153830267246724928564648851164756547793409401748527730949287615118142487531988628979748224929383333778624793287066169264042939374466895918320258051800681513180056772580219474946103527764184472200492507587334793307122098333768695631722790640063922178979390195551193540334047860870852651581548447443309712401638638837362051413652719557303388084420578764296067115014135040276679009879349997534133247643438038981354215934965249665736843781798039878973180806158120266001928765507627902049164617036300862675725194074790403459907452424403137401314281587634365142580611002953903654437471992706914100349345746864980488618513130976527479207163918357491289158980335143081237246755324015095937941069149674058702995449898873065417232303003516949507656876239447242808343904422873128945825601388438750118495449850486526383862735271804691446989625079030575210523659830387147959434641342044285517886177116782402230129334399509720337690199279884791617631618944892196633772480073081160434434747424364227724514423816687456676201039048380673179727417236011979246401251215669179963582775303159049325653142449229316930834368621784361511289908679164876762456508784159838241693256139035268181199439428922306138513282215136350013246489650021406736428874694666914057798400185039834131392388026204698715247960178914984987704364076370245485579178608804628308539149705937487888049413398504558158322138191977475793070621931769624023087357114086255694165563964242186268810240690495228632417803235928334563938481886638132175261563410994320694439366881147629504439142781024540301888632397360247766183882822901842398730995770963124330223423324177190688205414440879910651290462868460434862913351830406843217752625014305617709560502256949838838774148043653136105232688414804554642364416150095218010028678029100524674484299742251322450336217315065810331260753318686813886722797248405467534941535253753700239443245760391157024607277929220413234554562869029139967912149475845613050262053200479437143425014100117706258980609053946249845643109844234722276717088451241499626394435303442301915335703473826178144688388348296712560602017541441155399435438316431727029670128308807226431617175522953588892781187659574162407334607891687708807978079744975476991876263020638589517229212603092742964527527987725249633236710464634764448449502199093601049233373733637476369065241840731763560643640836709163566824234240104281280049862749415036988070686593479599619614909157768335533132234465154973332609999720990520034315892104192568411515694002061931566487240725779724551700570620310743808990211040189905262360425599931664979864107979188457492531687637458052736274676243265840893485166567462424906336170033194938782218368561663016449303050299460692858657144275516173455613555332416421567417572710289275829402976183639394748763952827356863663986434014155474837998535305157873149493488447039960082680483731379340778196799851124984370621142364675295554947988570293385290450642527951283646137870491365776094477404356450597858478187269463761859276171463559101259581904194195420384915358719397540155765528973652565456680666682654325725747326169918139492447575434369446651065844744091864984484672415113578307114005369075765092123159556570567050096650760146750714891206096902721894707784561220023476722609269421261882517253278639398987553183727748946106451591358558575344217201781517743955891414601667541385577197438487537470228550069326952693843214616256304171204644060560964248790880067530701020148318805349873929406563771875303401561553551601367118608938148438327104640982474772407290987809008547908413765125380639238878153016208788828714147509607198234617890544201660058007789084364139022367050256030280930132645185974587929732152518527601075290468710214899899776811990964633350602048808787212418776014293897371201031593124540598590023109765044639128391586493322955643142287412165602647531249918522298474613669335990243886754612088788193485045916052161551335572885552993468812016316842797126107328200307054435804066673231706434152931086638701450231004283122337501680928246369846727096525026835628625677491310902191541283359936708826736103081529726662907297096337373504273802681147215498026322419436909839825760604148433727497048538394804690567184092519894589602952153693731392084975151992911848800691926693717939375072770553844436912215111003439928356084599320588655121582153847372648749356609254312006083626151984287741154498163246868565955745295324998848607162878488969696533285964456217096271418669338355184970239924650712679979010212501583041330329477905516939890276674507147512632499918158152917326499883043708024694643332956247909831557462877208357236150820786183299698968117427192516440450159963830120284277313471795691047489295181940615734688063656841492623075227971671931102744602799883469356166661960472668476573948931214773144673035984164882001406207688580964018795616431016128882690213885938162231596367137136077953163398179591820870524929559896329696172004743816046628518965542513589804806766671336387005917604745202883021883045589642142389317459851399641701988429423097703221903886344085800997231714297057338427658925839292028175749347219089319115040605383976013214029226504705773651202179897490273049521603280766059085142579767608199134862507616501356939548118853423669844842283638242357660774094006148711487064836788957553899342450958859648958655306244697073914362200814792338928221157110704473461305544721310890621313320428533176904132981047045323600174668618292934222564577313187059990761087325701180075508748415789038193044234669752278214156433861947180705220641649728193590692536439873615879638606538919395312513534203543327839062168072696193784910362176490977385329953975245671962902292782339565221637034308106922922986328432650053836839743502436105338452738893132189039967503273065952460638454436439329341792017390249059160247617289259271783714528430830136079710269452171231435083120782900145941383385058156392485058592167639842901078083286331883615961933175717414796474347743521151157792886297597006785425206470137638294151354409722579122703813207917293797187506881503977354581994051818163346345095724477491979231469201843418241361160066492787585516808315863588476484159522474389199356056204387962425287614189062067049273809252658241025974581050381746593582386908315662250771442375814640009250781367006061029674802059312850342619627118065205604554055586968253714213343710109097817809561244988831854954398671800248891362784688105449963670153560624087760504012572804213909417446288554683126220020680195823276718682275440779094458598223768792372646843334928618133872717904938982011915276531406368812289446674325642739053905374516561790610251472702868386026958305353937982052233452880218942923447494025074840780903458439348622244482838757898694347929871826997551116557356522914487563263922440591354047300825149169263046255542392162045242451097442693439779626404328146624533420514481913526431493707685691625765803513816706034448910815892299264971200762680945546765006046432383849743098162339937167288423415563008628278189506790514059418376922022954037829591814732262931969997145271227198395834953116954918845068898719237008143731340813449601444405092605428886794651676795531618471073377007053573260715150368841944527964643248538491987029366024363189351113805633031668682743225452917015738689758152642694718333126158238821247201656121300810803873089774346416409681917749452447483977350642661908502249314231378982561745285071435860045425125081466903265292819405846536680700927450974915162781562954523970971797191379041593365872096286176419706981787548524546318445618291072952680214379418749126736122986163994898834078200093241135061169824226582106319737917945856032904406994871229504032678055076154574726279632393983210000574823583454543272196018112924534040562543424898839442147954738916276580199423494039695872547121475273119292488952698190251060754082800018145071707344867615472888100318058086019924996925284058021037353569162179460498569513835706986064907265062538085953892865648115829900259459361458188932356738650032887537416668277337250087174641387233108045030879928790251386140917631967971245657105244750296778134972704563945742828824923605725635920442490426065047172481927370218764546388297632479369527198352877015855391825041767194499811106564075245072983899450584956182163495057937378225432952196039347862636450588279159991086123384242728634172306462596110978316994881243245271838567168054504825940340538090637225762450764676192482269090899150219684251505351627027598111078880938868814099943257567026955892718340447289796054528516990916591020509458321162466201993840128700569963390546178936694706734638516668166162764802144533385998695311366076050181612069604852702615502167166821800418331815813393794144219042405439376338996255046589745568243986167664247500778009896981066833635546034954083991651746970585350053557859802732425141467799876444838065003278440916420352295842615540126773708816630047885294799550342703688492777786750201451286752054466063986960784352068663284584698260854396657428110307679946052166769822477135178126979750169222788155461141532288162642562496265843722299770120300387815546380519072186422937634741532884412287523682458108170786893731841665189225686613107518074272624108282763661103409158742972715011806105971111808686074102984841668879487836727233065704418850115173577750830894536486303927345554183954237120100954979343065550959985562091158112761635802660270023384993322673964658806950761912279443172146344707780660280903137741433479003948452982916899850770633401363589410074856127159633768677251085494730634277024763780424904096718212279952117408186575548412770910866733509714339825713486114412652681668771022087713930035410600088157558898601192463445252947623407889764959883372071623875702360843334847255334457069504406815459928646441382611403802937367079448012226087983890637421746126121327480256937317020443349169186616699540407649740508919403564141808338390078459287786804825535519960440757037453800586970700386936067489389651831000293671991848842476564741327434970031084627841509128286111926702864760079550823804322063566272477881483320234694002407154607861362688344594173438877702326069581123807247065261085032939918168865163077011460931288402835023412194731819476294494400643166882082876287397972981669168903582760482936497664130020766539483862598901165081440428722754859876809717995191813563198674528986877523016676764825196260818734289528514646244196927618315339616506286649599053098861953731890981805967212233659410986517580992855857868790223817392581273493868579839243998649644756221716225657938834653279233688254732452673560887989552137087828845020531786267821681630528175271786581079959566447416760565899954734180903064705607650263025546869817248424728938564101055188928775838641481704800572747530439665803346141908345351104558403313074804729683725257149401285416588612244282216004299545008290810989512766583610764958052418187752437343953535274660082915204832563457646524454611449858668445316943449339755130804477241950846308842500734144334777375158125693086678598619108606976428313884458061681579504826832225735101583100388140171254812656778841067547439116127532279557954078066605973403608244662842686824018210988190454289082843283409418679712192449933515959892157009839172780089917547424390114019921299592124291568803358849529532383277013857972907290560970035837336920024162252310550717213831622831825592659737837769013151822104215212621996718579268677682292389538910676165334423996335120842287255692623078326537073447293654894513429741997421689148323790881777875389366423844231546041840793967651649817213597817392705996770898222806851238335189009662145512657096310462536249165130584930309817040767066119214756015686682482464337876113595785571355041482763812400968417728590623554281712135902489365976106910292559865848093781269341362044342863954837944193887126912409829395623179610575488403566810227624429243508236990087951150992082662524200033734805490848659470049068155299454137693436155456088594740772938681519046434553633903590843508053685958803987439394195229113368354048847600686827879830388562756411553778090534894520815388067198485862316350547743476850960039413000834631287573434624632868379171329430128104422566456291885432439236690501225904932410635550823848135306746031810641527338466172076438032680801039426376706092870156659059153487389928692373981583004111729916925756419881353609072335071980892184461736837650236398500618830776612979351954614927669168789931279145771686858888740638128087051735164352573664832825785878723520291175720389626249626129643977462710112732644991264383850782895516148662042676507791383412172562819236708723150059745294185214217711537077246338984255073106633397975439151879144902280307237776177625400261298111204381040872592786507018310345138571047496707283618793870066869928378291826744061316985200346255632982059584262798464386144424322085307113275874677979527645315767970738024039412397898996944817528739029070054752760462980769440852656343170072976571089905509801750124760154753364151104659325916556968744256020238310905614241763426726998319830242584649730200269089525746197903090597601450131312773271044958774704075832014766750960458204839603169763277660802882465735493101327469960323353578710683076928817818384337524687713001998199083181592566777643173728144064551282345105506067962327404274190414559234472333644500630502659866047224485386612736710200260251042915030833866441916428203544706460533106856036182934321057088458571956578849864987299119106500861709929537692943530358572290148394565985190937521936338608552602335947266880267126275815180273604212114831215071640621759678595788080804875160447050942208439125185664799002922151113742002710496881225609539374560215906066675572937737376199606224910020031028852837673965048734170346400581726401913754373626670343222826981592143927381183079035140319851581995105818224754371424467050633643961556901171047088048691325185875061508363219599873600408279941487133559356658123206226946018446584738984099715001107300855006083962662378286464253382472035370102882362234343921894336403149971263910702398581802808539992989725766306494491983254166660425046482157089039841157827729353793129147498259803027045572143360876952294822688856189081083360367215159521595212834538534662045020071281842551486602538382351420678926882685454732731856290239714280990789717489656100600570043079054976486702887497308170960785150802713176999897341089584014012170537018537550532914161317766829841521439358851019921048693442418415348302095820880428729927782462487561475792376938053439493799387550407038514551741342873329779750939965070041813703191982795945105334670031689882866991900568727651571037229709214927384422875082503267713899470612373224560499961742723355813465430496235160422043621071033729402188568834559468749299079264610075575938723035818590116062610558605100137287477581892965134193348661676857433021280219402063151048802782346495185968396031073791555431354509202335188503128840885767203041050853685825134502877437829123563474476989084068839174423806533886428670655352306673028666052968545505836307562459089592226720047289363424137086472750810954073871904871423634035079424256086746013407497703046455404837054804944348126846894577372723202761391884136508433526799526358615167228167918790098852773529948946065628141028778518322168883668286277077109639795952753821163973797296800614459723387234149165180534247529643354547649309547816573817054143497511898107122102210660141665070753243015947146157237911594970932898311633865883595272302118194159222621851497037855972824947936047961327961764043478995340953292361066230734915574781113461567785764651560012511569771489462611324860434723112520187357910014178504441544825543435951019112337571241205587688370781012860642996563553545145420583311341133264900907557346884859119074329870279310146452626508191069156994692298262633224719308594719695403484313080084263466882479364140518310106729313705077874519878428834049494604265752621082173337768163273046333438757310522087908033632442050229561379071281873006054400804808771316822955828382246804566834590746799459133467224029184473095231479345583403250750007752602177476141955512754483547776024161710729113907932689234285626154162843987540509103942602374059257167052504552719688148461795144016271534571264386598219738140787509298434479682090649695593483062563424024492519385351346560027454672490803295021220058325168205544274503113038714758286219950257229282984761521047942777451040771672669460547962968646217999637077698702467923666902216402484105414885586216069087525804845671815956563124269750960848095496329062222032809453891647374539413839644599508693478262051223376029357964222658297267371936184258618697988973048969069891761521113854172097649341477747918689647581138498530851417566284776918339212338146713226562736476010738103264115540521802367004849193166396361423857578502785771405897627625866404965755876568332740927066836286313372599326303331071187341208641735579803331568539598587410616653634952948915951890851496132642547216066380881854022663253561170032762687087381916975677566203272058348729103837985331802236265126832368564688469818523146022178214296228807433781471677360425702524970514417325772404480977118128209257731687375717396516754595662546969888040202837360621223658771048420729685486896327902598567076162541786155509202865581511350319499864506993154652827493815031862550700038455839907350230713763750524108256540052264588060621102677364617589313701477586385693715491056293239732507640201561307211655423553657831043207276452547741635567923671818423994273609856680207674525800043067810837659449552150412331368582464924115753682052001116724262954763543330683539952640448814043730547398759349049405655365915101116143999993519329202661099375595959928994813556977087247971255070679815360687930614293880970765847661871626287951675674017564802674376369034908911575417386789915418861834755164467013901130876093079125155245284963012855471842836074613327543120697376270990492467173106093872524820572957404726931710970359253553226020770810771112508097216284868686952610309110378299881064871903812733950949924425595195454530300055706081165022103554168978970661689144809024792671989161918162257432013174345348493326640001492903996428773890403743716638046890139684896180400988317094337933178086780366367996576386991890034379845304149044764954519680197316002776849456833399317484178578638649117742932143674534693478978685695303350530217386974384088400733617410924558918116854303185132622506549389927801193515552331288612059163539673177603665884767256460642593916282612267220542105675658528506944830177310606088741858380396194593618905666024336292998716670684056602422668530840575007973198239556090690417923815082900921443329532066108869911276756216956588260889465447689277949172774093665402098706448729459559351120558728694261267542909505121252330483953257556698248005518569174713731636859114333612329685087675680818258763244091768756369648154293833100874786270016261844157897106173686014587328594849478371041323103743211809183872663653861038418424586140441988378871458871596343512933581191182926697089596245667219225400272372296546290483627173272641256021911307131870009746327245157307944409434979297177828123535466784440943380955678456669123784066758845301694475033653420675371957803480589201550445067799441751899331056525849775107157097273138880123447040798081167546159063380135323868466270886995788763667572224091470230915112152666220561657463643019279173405855596640547463613691447466168072221005184500140875394731451451090269896984181944923687741173561000589646679897016857883417115441686022590210914062836887891410576115480751261931441002589156631857012967078490678240876316839390869337521450743672542744302580566034148835097482472785730838520032482183424253541108377170474947859013587037835022778807876953984623384102795010182038657278293633095141058230612713968004194982178427451265326662694519119174703716895868996517665370187979132395422947702297749004817723139736054816703514294733716008504937575650135356320027022827716471794637016892382207849785766481855927218622286253132404751920263105764094858588570493009630292684701308609397580034390249020749521685681915822407411438375429413006480120418285634197784971550190073864010425118853190372418951279404728923758340601490291709044353716672364408768343113162589794506926492071438297603415815597714804220342930693883083774129305096760030885187039734674743726149205215171296424676052227179149311911014455293364853174292920000608110699026102467646547917197286784772453952042943854456134078429956683791488334471140924473317509726709996732121219351932942882141994179640508888417182654331970570404850091285473714444965381374077002429847862321679805868362747285266968108252270736093179732418139802725962152294886704574644544507429897309907952266000474838052184759799669626314773189451561751454944570991627647479994361770383908883845711414167114114085782579265753715984539347719878781310366501608958001918848757257657556305318729542720043303661051671279210240668937461037959245917793806007166290724682825550375157781083298725963077131054558772364158437020921973965549472767700504558811529331220140165862596177347324639190007218852063718816131227579022288561984515033080448989628905807324937634281325267340826710143045014382530941224264163004289833002377568325901036293766150131486947132644175775574754596861908101034513385114227310757644591271689268704719473115518047146386046975802006725060693519455836380497373556953233907440991960813781354099415222896181581776221588873742165454203600760579467246767688790215695315775133854239000085033851578251237735415507356846593541457871403267983097068254316704080133010564147044064306940289463702978610116524052578888725166382655247597821128219075021118483646715638042267207828020957582221392426111024661900392710865398551603835312370400197439047702183144301508084614061743425096356313385531497499432031973489196153883196461602545993061559059966031073069617533168858759900417283285509458428196375840788851385120937174616181438244137093962283454457436111561203549807479226844700902843961438574178943218751840434463558156339406048101341704592642317975341112527366920671358812018066555376184390188162294581624155772981498213708066735333500008188941424770244714731906040423730451477172861835851731234483358987617414564449790035497561042878555602614057070589307359381621828086087195073067361232851912907434601392516495510111386070982049852208880560374788455322407891774319041777127550984828474469008000956354694897027683394686769821895289222267888026465870280039079274113195558155932788612806015878491741272584491003982209964554341086664570950959687157776387336333367943732211998724559139657425380368062924307178709508978033936147814843162342446787004780987320886814659428057919774192587486785335388143869825369431768831165562637555724912762747806836160048535475269498478546989255276194761203139309313458865805245810809384129412021035538309412726970842515999049715088012389179783871070460617361393108222173065847748821467398201979005910510352452262111296695298130570571977326362796170141503753788165273996599423455960543557217209535178692928866469175713748534340589341826322009816433438687134032024109943519549129721600176520465621006174090270199466549051059749709832344892791943596258942796540805210541756418600095827742263436517389011877391831468773713823675880706232606396695744724153696167824278439561203886947931209517601954469761445023991585390796458552020464644353577172862075237047151129008400509582426556869235976843425434170924524486731015332975911527756510341063754424656035033185965004712803323351174875643371194885149186779100747714781375794891977786326146840357106299501647730794104649659718093456247075234697734492827866045596995044205759629833727508643323878611039051111703863886120803563191556872684426900236709977018768745014607156026387575117704197087838160795233062347818856331441097474375121557251861958799893652211000890720787885777604411286248883359604554228892210843864509499795219486787292783009369206312373290114285529773668571696016112993593979547860118883252337296907510705364966998888946589789336458676048317682563320551053912959855750770549746346862857994331461506049292318203643173248265053323423503225479930337803439478661671700563340809861518609004040152699473433464575973301427701942987513146835321484458561084616857014191105171801489595932142723197916546335708843102298203326965283816141079932120423726387773813581036837500016300301205640029114888076623146077010108557936646441904872583430970934081270332501341504383125159582033756398628445263928626570514131618280081310330167270064571379084339383723994806335452184745522222010339564015792639575199342203907741390354905601679801180218207810126964795790684190195711585119233051321802842029784411837453250914427087262567533964743828230602297954094771821914098013000652890415093961245466952880645644397391292987177133014721519977345615132884311430897517852989527350561748722006718541432440133412027564792180506506884387329878080631154298273362465779121761399442908472568728835678187514247358788451859861601995350284562850664725620984142113345042501003583306361334779571517754579789395798135237354231825722603211614977902946025339659114198175880883487251776019690956206071652886454625948426304346421459831386244519755552544835068177345324414911043234078132150598591227792315158007878180746773380926123163893775017876502106286214347435417135434807249866348446052939987561611611686572988475753629941159577225424411039390268773836501489565746178330142591457145470239926127475682336314447427909032519220758388493173245483492698185168246508616725444294912127788116156287006652439529886258444923444424818749871792137771415015485242592186999365235255434620923706284637850445406807919828376609437802721665309400691932529337145714196313267778242111769023637025994575073149536256851923740127330878658273011913617582223122212759079375541883812174908202006794296284755911264755543833512161433382621967026182700570489687818144956417637834735866907901851447195482971249754986970193949498928652833655870159581391304927160962869072860659270378362162920011265598526189935683962644604867892991251563621159041423607509771096997751205086897546740819301674533754146785872980025048194524817086738617432764616831915728187182744844530105146030106926412453859180482134629948003393502869909453635530101047517574852873212726155054560163134651301412844017235777499971069413806037782209196370849394283645552686648186439380075587513805096301553365768304484658633791893757298536196512774800899837086091011440963490422749504301883091622519194047155907979364754423506979057125212642464192704651494029093485975389076728550827015368834772782968858256437309128925024716432194905066807621545650621739874434920914782117666087078023893392539811937832314566512163301418843393207459745166474685240089505615590389893601928294415355411461073614613295203177249313797761076477811997098182520137047675596814868048027055087724299961411515152484420607461752848539524435033438572679847684997765459169205149389324986954705676169046063722124515419999596164726208184260948687920422243500850813061510861491778725678601104713603758043881794469391820780606492705839764581719978306129271501806968209850289520952885913400541593429026359340889813566420319348695581401243761591641971564859217732250976174726573805597163264825381591300436129384196874559080113448212177535851873360013772799291639342556433480600240666442472945622142251870100386805924273904925581348241591400839732170744959854947825033155896151219285755128384715405412630671400522712936063733282660740843060070613427852485350585391482911304819832496784897784930068974998972313964251804133148704801497172828772898521208309377494980663159329669430832281080479274831026794649035277791968420387897913139122732117540734869018459569319250230219653478198528348562124019845645462134951042556898868524614348713643631480748185926828888102773832933788707692449582401720507835653112236205365417697212394790618648458497738359175543602098193276478949080016218563641382235612849310667154506883701873703045313306897600314845014486687440664640625959898354769928362141584959627872047859343694598967303770227587282311918476320605196003314200821296922867668362035444155966366271901081251442265806552808974679109977264557130584378698891289084840864305313179835251026172294438159354213960344553931096618629967950791906514993816119381910788129751019454642223582328376050155035485755175733768355522596099746806274198165030142729920070936738729958720108112928325795875757355319200586424007704398154889163431877443737974523222437006231863421756968374102445198436467591986276382657005220872215862707137150704594455726676514362833398611161757252905210315719208087600245364532634756629004637498542928214862170119304421499639880263891476655223920635764989793909829386286875641995160676930572183235888804343755080699835566760089251054467255861327404468002675584645347870473933771145109999692799075466483266696507346981470504704726745799115430913977075162113234526825824854383239012867347014874773545686958750081413025936958475459723932675822278198247455818142683056449667011486555472605082170137874693381867231050958878774106441719194290358279379365251064790575346897700699488056071150377697133339747966849855700864855742232615189803472570053048775364137340537174367397421769380312411056878763436564856141617444875878884196929790217506033823655812638262075894284657200049273128216657655281463857302514560170342099221888350643935274632688589996768963671838257070870680888513535777845091053238044974872484810832357857441443796085486485789049920383864131150431966117989231350789996294311627678962531739398372685973881509064192162644108408997136701873177372286135522201673744921369044711969820239890807850949930591007548315266807191878870515041710377602929572410951848553508845641933571541575555872915564374226136981662092733181042248213140330984865556765888987108609142326386887144656012674343787986016728983352840924439423285410589873811584747887414610329801037085331824609071484199224877650758808194779854803558353017125339528825951399191991464035467713019777430440564642745108721611702323347866634898761495866679788586702040070344321436172660305408393386049809906613172097848991861363336323445903240001778662200864422177547362870724267459947472612886204140061633978638152370222518176941887577223472164502393114236552725336255811364383799808631058388549285038794525874246083872178206108400899841291779653787917427575243389834036902140815430097933636374151990926494799469210099709223822482662410936200973674492577385023133844709551142851247679008670081084037669281346621289327992543651485842917877514661932229195458819195828452371393097348074867903892302522397886705130149259486671193108777987823075818473874034146905054372681162471974555669118513314286473833777475513194813321338463213324881744834396983143351390056236195977678071583831343540090240505230817445801813445850726735005879781402086530099909767837643031504497741845739295177783997759627954325732713991972678559163625686473905298512976449059317694840277853978078968743299731270483030877854083548698218583907904259650494146006001897778146285257099803829330398090212743152786855243997610471480452440554406187662241879409622188692531514041172743854531747118911816614274109739854991880958070579240934062623658705117496206819820311616613910435737285957682185888925999998435405786183064788938886984840989044156961356887806767117807344500301978272245688213236182344575739548694900352076705443406916302178734103822071371505183542901562316113403512188534685551102497803844783147967420465034492308479089195340681393649363461458250316617887923513389935682801047799537693489585689784795848417964799077187816773215661062450620660933185573125899493001521472523946639730362084620854309322860977898900825792222429348937005127904282111596966999012950105695438376604302506893913655389985221139814840295372278747643875411192814239212737921700690506961476553388118513896072695730166121493170816828483502845026652844301534151898203697250133615430985287207354031359618686531644891265298868112199889393400659466614848682573950814209233440678708675161776251799746055586232901249381545833483409725761263310961997399676601133376444280733415428657887947971509804620024125204766414140822929114566478918962568656953968894257410959715247063341166258508149132185624490765969981652319023018684318852841630534423562446603687882136093256272052556615786379716382410776292095224079702897654281526543221301367096405788360726400093931340885951379259462863934129485478202641835551747380100780776414085203380557304755596160001042892945285529366844845223751057012340415004995822386644073921583633671480096420771548995890832372025930696476968252651385343871646684969789147343291084801399388428906360676506928873142005012857675654083864683566768632156489467802345622718583815380782410296800196710056861472621516668118558113413305652757604633321016579700189948561019887210543538254385489698744600901079123625887214405605012058604164748493377387173447725885682291323263242019200373680592558352298610122781049514478869240745584863635951920384947650907205927832640172357738706326120397335469607107248905060499607408855643705904894442837257702939247447187863859968650766736587239360508179776737633911015326463767481343299545699930009842353287319922917603627722636005022547220977784643016449268810113796588912705616458599179595273944588887346396592122228323084783571892915688043894881455282747514629198057910690426841044270485015325397215943684320117297284868002723552935890095406745433442027433859358357662261172389641793877249296524337629935559547291768312805887769734253926961105304181978189350083498577122379628939719765201588692006472179942997806893476445487218549124533164617031936524816761776188926871663396829084866023408951690619410477951639189647892274238215245298117637700444050329171326455815831233286208212492840571088065581130958403533306088909927383477717056274134876968664568196949806847485307400122597185965592637567464194582958901255438988209935439095341434796773239154380211609514470424477075859342535819152607627317434922150427595717432547629627122265444620554415454727356753678088247810203024540492816044955395317681750148864440868393485683224359164745198902132272984533958675323854994290901219089075954773303829798117148785039189577802521506380469448202463367255494140868029051628321281947395480480059977495071773816809136536506171175091293537152305622138454704601176558643230903807146223018040228163830192063874663658162304940695914097512652154448977152424509392471198725025575321901301697149510721262784428287483427419658277603534141629382168687326639093743743526646302706767741285467500689257362769171547084591958512972317508037380449071987483880987245545091937603928632265955174942682191631212923770130294761771755246159965408559078425121797086305567194883091359881540139530060532834133585486012613955056583366905956852137340922125164370196550412795936647255647935467893105353984199772049149876179485797933936318176688517523215075474781462182410796731335447030833057360718285811455683461059744661030941448542445919760579396691047770588031413376972471673019411840674547808293305259242001224245058681418350561624684746025297323955958906575503408814326096261977695115440480436347386130749933280389223103712678997393082975732770788308131151332889002738080539713927896407714257586654125149976661997185261729929167731804572701194584166577746755817255697319356721871081784495875796881160199031917639508515481809655602155727176115349825693272052514636215902859003111484535023214868588943282042219068526045099589459015176025798491736805640666839718208822011346436318920941613877026602684218422615267723181065382083251064810150443300597534783630173561177601319096241300773518394334731229705074951771185026795200588009981282715503772957745387889682298547968374443031215930325147283008417700819386533092121979846295363214152465530735771302324022943419691738603157467683816142185328303388186506585329616903727267348129879403102928011032001109553166330123343147536225238127687222149153270926080062791861862559216165808748397888188118908757072485865626185122290515852349190204619022236128694732881056954592878551605829553660748731018273317911690502482573181225064299181559199739837443259957348267123270947548091207680099011107367566520210969615397249834068578633017407175212299690371673821558474299606755927346131737653783842687588365081078233343036723027439603720266027198201412377371198193202547520802111010746250984959181034043872779997159327914532447977749744359354882709246223008208343386272788148533927857858114028160795523142062125418624094601412327662851361483992950092111607105142158250225412444038221561418727171046891984686734657624809565766597771623333020801236860665556553783594858133553401747379078957063212571422804477445179807901525979413537628904410069260437373775409166500133141764266833149183311193414604693807147671555176505817128908695587828347115232374218877941548383688279939763765581894453212940108974622271884843013016030344494303911443997731177088465871261491394274777777233911064647896763554790965567396058652317370466050834932402616770361575412382586313101281244013252489860244129991767258432981528042983022673296544309966685190097107660990938401424543987686111909241022469824704941169074265600167978529148086928564490292834809100766270062514772281834381185643934581716009849582166859364657834447574199953913576184601499796697912076846081906187413405940093941628107769128958445546785103019626105161362867977566899432975158450786747921630308177971158042413301924260094527197229206549897256509911097238612501821909008438169829601177753835250538599986914143100535254077125026048848538369291114164803848513056177243829371359316031273544802317532030414429995310426262056131394004247049142892492929231865079827833078552253752956178269537784486824548502348337853552792354363858346305900457731181316023871790044078974610710064852131252454413644513421022825767430612437264031500195459476234260403060275066711038458004155309773712880038851612387830321820395197095701246705798215620946329100098208040893382873991439690461043667439492463939681932880951802651316349086097753107052620831710498599517439982228002475332507835310101370524406989212040048336294281325587435542518811558426395243701659613616148280525875491273126794669130342015130438064098714978403917733724224716919751802100307483595868259044171107836652658541985181930410719002010015174053174860198720971259456448982152707109732903721747866179371389617320757705432888913067589537049733749437612747075211620517532784689013781003777034956683909970325912043141057534564023330236740028852312420448450272278532887714595299829884389356196036151822967737804018894384538160268347162003397081365950008168189608328720930905847152354097711852667092717319546809757790057663565887344913428498455018634011161770425948254327795714225925803098739874153595424929483904385147977186183972600908898551027781131067757588255967982527366559831676520907124080635970986749209344915968305149244317862946592258722224282355440090792633415213013077093413532012707886525846120871486923791498663641450668706933562965809974066334473757080742880174659571505241981495745264852542714759846856303861264497437707945372379193073406031321633324841769114140762539434656165751164571618927740925625263023093329283498128884565207670096016628757578554720597518248774158953892268871205732380593778780722273177698725978699307438422558090913125640563806923440618755546239416814274276400388703545468570975120467101307353605737731749645702011907299566737622944157507306406291077815731849056887646620899313217455586776035305919272837347811609973855236462319916137472987582161899164256529556599041142656144661830678572132090802405125242265184072229929199068087829716185379936935061459260169219429248139045916484933757882117449368454848809181560529474575398969029038451481539841224117007426441996076766141047344505754116695563480311135092426256227512945419453044507529391097968670356051538031976651145026339883236765706911799602071193596103100426869446500842852007777982656911649283602316019033008995693548697963617195886533049487904174590191371675033996764081312616714626210934498790465300521540605506711637516157170111692651655615864283818746499825193704938037864001324940852657788566370665181518060601039687709752882867223790177855017437172748009180140293481057099987238916876690542725703054597096447951278751791949980321068286526799234500923458619504732545315088525921955610666384754403704796929242453534972620482567688951367081012188388936567289665673492544646141170909875207961307042849498718368132046565052467940358210239123409827789778532379689486990279067533523635757377605546120721982170334421984338421944600881822929007208753430168508751629196063307445625421591008893935242311882358894374376073083969759926731949935081772455723529160598658245765356957493956284699631284437179874774155672027968179328041867095954178429059521473415434125902385372199903464258911080859428129413139472698003198077341498010580390245588010612948500863473735229506294747225107502646650195824134850400478094536225122857331643558178164061341437306759201642011701406333539262164973081667422067688435849191584715553254023943940899553618499313822148398285322542899364391709711665885104371679624821990887683279320426763912099926364690887267377685364436473974905752164684238847355686008089560613044236962952622542790848322047738983489552004412474753696445298448498365553119492179324387219473329733982177653303851471808834536471861819410068483527068544504499769370806270678778487437694244912730229183191589743802315712991904082058534691774122140208117720558023972509226794826037646863034356050404570135987336166184467797299656352404693446086178748346599356602735632567637037701292852354673857501444736500232026723022004637058889847334917064118334625646880084871749937902441196553313219926650238832902194464656077553264039944472832844467132193093991133393596565507915653486359418378947506333192226340589179817805831175779555556940121584782993253612306581046330807939897864307914632247481943537988939505654814338282301697408624269186529443242094395483735385268799018363147805296813635872993299299220442827720430442027112527139108392551847472774449295063504842051239985139952725868316681666241036369387667462427895265521385090876213843651894563185145140610089728282871814146708412413826936229462112086796477506600668321479079046623365456167378070496690798526804047208685619832527186782078513100103279330854459773221038013511029364008386879393317200260310045796240979333517640035765494541912874588414125842042689196889138449644324305662170945835660999528155990011002633476358959736330736194596224105900221499510428581929343920217740613499958282299474932888199455251460864752686478805213476742324882564431088229536767525670960923547527405924008032478382542956266121999276049797703935492929710293374532252167504444363754528668971421024394674090357481911952977334364046124358569290976372329080979873931854574299949166664239423338099411818027626394083507802435718646644589628919082874364366286109787343526983673571712023097483755988043379448942282532079132571428020459755509579635402095985619400359664462841705657978804755796745563793858758378669762140585615027925688926405057020328034295726137832145210779835456421907366596709462780894354321376663093207690588898727237863633728900679283676993580012430310400152830537358981428940957720953188065672175913204618490769553224803451950888552338161221369052201774381837400433550854581670759116127627891676665596951810931543148533693569024521525838925732190601434073089962166541969332108231575829861224396261322064818257861440976341375516371151057758934823517398973563443474556082708380431813448301829523352543362368222082680281124721181766530640413092234517933800418711873589180675343637940762369574371688938518757450644057225669929028447432435421841478423371047441155343889536040075691352822377428372407877169361812030671835661925115786612002474250589280410461213903631132771066974604762855222626227555302701129937664711674288941434541482716475402945885119050298101671710208994090228289298666517175568279332502980482492033694144241966886380350805421149195388233178024233898798361830568301682232518154029138991616571856540371952523528349046324286255964338683988374937043382991086342844910762544902293382992860144985433990558787565361692399688496421709523706643217415224105120801940378435951352674995712309921955616992232771020040157928501389043235550051457053161395498459559337102148418081003589643329161956496309847226052443642151586187601297587616167804908018244709648203753175753523144566852040010429741786528135645550279256944954250260412933572989014595293758333238530388584617670196468680217367838294459360125663237349796722346578668981834792701718357646298785253072000034483755588630401651508285481686506516498016298638889407611423737590711755063898833001813332021451810164019079155050330731540587370538124866142695317189970200067630390787470242636948941088659815751715078507837333246347638906227200485138757840177364193809297458839848405990158799765919479362324241304174476343559061014302028221256806234307045659603239332370932149026802732944264959116569720761768726563611469505291644238965396868299346983153576943452247695522625503646386146433958088870694355906987305103524596077982339593536776507385149660954688583852363199170159281766682884126390396193328950798877771097004188709964136061800882563705578741091427226091837187451778467199167440827943661023924345913051925274671327371035018666949298251987647821281036335141953383281300013897543904636454164794192091179114456270863999512113420525792809345659606843699321348633970760605113210634368544993395176021484686271521039517208746512097514235100956851013636830359747430225908662744880748164617172308715514929209841367960001913002942617582311061415867555673681299239032043821532086366781001705219475535996008817185978584653918479198198529064849787942723459361812728767770611711650242414441774289759536278227071344542342546738321296750284755630784284946257535691369577294172104757620189556570527457757862038981592994687103099804705825335828374407421321030324215374825183142976248641103035847309264773802226951609352045249005623382477922492726370415271844430179535047135389294260679812828361753126491411690605431070111977066769401480173346214760613878655942991462930926202019187317090874244748223351729303141400106284059532201675969221996821075685158138030984424715664918089785249760121422113407524434633906086110481651963253490224076041630426716717661367522661831650530567499878918728488072132683271516022194059660271097765506200064008397720568157320876977760436324837972481866852406197666733006799400375702716751715186640413022494772728404959643619204274439549984597864019166985122093829392553520413712077766596984683166150363024198377346103910467761763191459639529650588032936798011840853102535502247738991580921673047967346933303264099039684900709497558247395501221707213164250304870130470949210140008088559951785447765133471828521079280252278604259022102743940118070855486627456230694507676052406515774337519935777546224245776158834203013667723919775363028236426220666413585638114293348271621825587129611987166917140629556215247805064571532760042991593667734319747450541611197351598486048268251664457838639755533884755365885860895535812908947068238647203902417721758971138811457841497462847326616936038863568869465131120559203690082290409095046710477699851762163422940645575115695615076752374642554263728593403355035006578257068272815341143460940680713296333366812169552048504989904776742467575216069017855899036871718215709889753206943559886769490275610855081012780501386552690990018292763788776298739679752784262436928252793935342074581704762842625612894634498270049479400915058583903845045239083182265109252753142103371229977486824713785954320046112549209066828103944584246937936640359686931576087367570527558413155086515517742826456912769156978547284029509998201243949674014478846029728939987380926889791669022313290334418909218063761971926184193409259212568435791908372748716451629531406425284156611858717809647181888629825751052178746988378350066325447855624018429863680754379982580344031876611859125873069247469031239606311763535848399587207531454870759628873270029689922752966697904657789674435764333795038092063777528256672483415579631250034254954755941974550066138069781387085473689188008792312383886127862413151900344393797684963066436286821794920740987461800394461376105969223957425249986768572794462800603946406150223457870234071606909484287060432278853963866568936063662230868498019371810292301532531724264613659389537564771278048516842493843231822783967764032333135154012127544788485571177041214790672355615374407885809800460168476427236734299984213018442436544688363081431389913320339482462755938078237815395104330086931972499775885921307797669870703622078495675128708331337530466401848724475094440958215026663912989608183923829342312508458226029527594774040772521983988320945047720541430499132184597148819527661821257181564051002887134837778672059843620236234202328311792647870801034639456807057517007469222077211807554368299242997401640782842296396833797153628887598611163760646463139284910159443856052360821492084336823016590101463156298559113838883506304424696907731907733651001753872786065498939502046195472401624652432375890227995998834455280646912742980082019065814699552681447208795628971880482908958981806191351913333073578458809775075224734333825754740714423118282794354615679864506831656916762469363262442404425044094696023213466472028348848234693154834264652522751785068568806408713928538371601101573022500735053396019767162004478767929701189368467878693847168926195998563899021731749268509190392133778626077521217632214275664360860062000924312115780423698904972133582519218458603903824957567042801551913342325389151904510941457587278322208924928108980294876387585519478889922716391013564174038833839310670087822247689593663502990342459484664515007731550718418865618800446374414280051477484374704368373900745357906346503268218818626905471060126778285994162520126400066856839219643759666994102677679173670390185998402325175858039072192294646177986014235424510864169735305588349304553385094699173203116446217112519957622668220382946149158990219849546426594364445662490197829224207612084679200795561001811902372904663973897396146302131111833200730732223021594126334569900699529210362827223684075567041292958988613292447122100295561101767044384515872806545168027525488599401875982962008898076376811763827491556857585796202171800711415760358891728520613289128692119681569115626404109921773272711506954614547729178697486455082668952215998771707896808226789574725742794648323637089831122575047883982047212598336769783518466618271930126503316074962893098024702622893467956142766457348527966533509696254489030782547392911636304403057530170594981702524555181125966002451218934642270583746166391135071317845540624671383797045364531375154778190614884027028584349211993615352151101161371334114989384049243319858019381238720504905629855817770420630695583453739605338602468060411074187289396622370031688517529125513813817120855082175822692931656292858143174508876989112150897224155732796574268119416823213268349200326134593188326716753453066443581368327446809046521898811685177921782627939937069074963530371234296533358270195724325339978496983826165079165788369334209193121475677170988396947918097600238343310080334560072889230755034279123372821540476089824259322551192148489700477434846560072403329161155597752767603784195291991523047192087331601762457186968473983212796198693814607870225380331843485653541405588833717497266446784377337951734905960255062193644970584290884343419957849282113818859870403531020196342489041362169463287146160507933291961498583798453260786889775495869929115277683928598712323089409001580990601038935575668621738790288382651465927645136846325132201834835687317581175361885583447573887033245471967109405772343300670433153141315438627579400909851122562619426212414093272659850142770867818892205805391861126563336410630401463326502305195169920517772345377614319845393215022733714321828751093040247171296693110303882332020660496023380196121518096903593446931932155973265974199279319029012803127155798691833999972228155453750196802812280857906250021255290572041877922939526696584108951399746836121794324438444023835458620319122773243215868748378607015179697705017440774810117731648508524027798958095120128495232604864696732101960144251826359101725231857849955133813672289494648442794335556441545684738247970022078870599174998908761418932036709374505745374707047487918509610379519688112568183701425230171743643435099185663714717341361481458822319252367784514337093331644638126135910131088572864677806969306691019297628928359664472718013514999060493071379350346481903331976601653755606275275148877961152743440531446500577406300527857142566628382903798904914946764035424967576049509400809823446953979704916970253463786571554896640315315445737915588545013579920915750815585280631805052549414439133182793274367172559078901774086489660567815668316355003741728191898148613850467791358879790772099528042234712739383261615495553857188501454455706447535090911858148822651301554404102305972157420487094502992631316103086125231763202795126453642200998100246030698082373718537695015705103951420031496570761978604701384534384513122641245232841305007855279069732848733936678744330722965932830045014293904531756895846038469067012201348811085539348826703948109991169731185330709136260675851293006321169092545474640154591146940532873068121967417558927662702776730901682782120363310248599049826300294605130576288101678437870578094999088489711169725727121662248192756362155901575471633609753858674732544569511752886212069420687325545873199185264734042055808705685765386265155362149765390470408495458800574262549980166888381155352241745147297022093897422414190653136865967100028997804791971512138892574316622737640005429234595899820228706690236542877936779342329154200184550972710474785399181019867735318297196960973791525838671700648099644674704894209090059783181834016150857968166095968422862189883824133594063364578891618577251379212286038876684164193841066617571481954559892704328545166893471264495543596373872810440395013625972102064704746144643119847504945124372167018544252964194464956511085768634718843424314894855654036796533181598922878914904036751368026588224135437444752984473093645095826437634390789870228960612290371159647989905311686996931924402955864733308095095964829785482060410322881560503886663309972286072315839054483966487194549464065661915944776356501153728001279096128254389687425419602465152014960361896261300501762693198401293437739854115842711639839512212044821958876088234928968336861972085820644579669907465822383847764117970172005070443554690331127526301648899269569753367864953681311433369137520550365630128428286715258808608864647433563696235833227563505312962032644087352504917923034176802824038368593666094379368634051328950947070192005199588596542450092375218446258340308985607614431248215822242277361402968079615649864380859398586968981769222646044726357700351549579442024803283717215521108431169772988801512831262802064368647868193029718641090353340028008107887695590994161527572277438322828246841532726821241969015689676879570035248981519818967762960551201361276040031910849221440436783438895205628542883750074205000718359876781628870534153274273500809082469519850768478637070789185346568885080468869888116878944220926065633020952749971204048722198022173943022856141695317050693152704033931148263358221268130829774460904013298819330204456439632308632275876596030266972033054155692810219811636025246386680312316872128193999297629300293167622544342688660354631336890586439469697453156043388525934563730370932423308428938521001788031611927109876202262227754727511773284407772528287967979404042608577834098575364922287486517543644996240136951624452200128286586478932933278677907472829104873190368082715687353328688966487243416710064597241098501688112675306668713236856974877869407777500877919075748031980975830259241892768088712557750786102309739270852297568749222123253419730659612493296024015735809998833962995769748030863003084955500410699444458604553735660489983020742099917807251343356939175767358697001067301381158900740142718963908319299191088699018869240085374392541561325551398276836574511461787571041543966424540783052602771881460195535036552261934521114469991668348358424388180287905229785068792981573338908497899628124055016664350193887260492805650237568888188104462310526429232229521008157916198838857165105781672040661105092802835497388087547333482161063923016115804283486789547242557463166466087868498450533575643840128146127647396871475180060165177833275741383153539797163933191894236146857832684971834542648096868491367822868907095324405552096566480390016247341279083611728452766432446023322865551383165368367941470979553963499756293350742051066247199591517581905105526555454648763958860782626548749154491338130004370071078540487704526406030241359143780325686215564406208928084863444831891779054120979506692506505508901939769631179056188335755499669056623887938360587934852690707574243767130759272379898667239016107394683872833992036842666612706590823629647523764113009310226344537990867102776073868150957263660651379528509895367200718873176782599480331287922698809057938059957255277224834905027150218682678324938558688244121174638872442760297341402204554402867914639665942101439500261631882685001665599282861655485545226071286536087540336555858473565457648098472913542552796753087397577002428057436283659416874450563724324717536436248043478937195225282735815212487803977417981590597166820248282719006697714068018576423181536790896587557096644110969815779212934114644024049543483912106952911252769333060589415117733190474279869585773348698469975682819433912676834533632767281394739120815412752481131895244563171343013730822465747961139246004817283345680030852606322329072765932890228822986260592512368923937535968376924559858073105588728683698024220619947037194294013124729634302277696542595200301798560265701275237387417220266039753495452467289598934792751749151379079553779586318226180534223752199730015705209932110718547997015505229648604044602996678805702195846420508517459370220784561018763054568517526444246364924915399687938746050823981292751108955604408136216343763048013771520330485800584007792548353627944668593608195066013216052446566681501869118488868458189419825936688705216411882418598303675337882297170330488855294132715413531491943115621397713373539478967812323589490331986174338872878022576061888216203850851806257845861712940303894212785275945053869991309882718351665821215787767051567846224342210405821557970364188409298818760890395287505701997895849591937082962270228166711285421908404690005383579710738025465697335420454865162146208454390121654606077526676078087547344321493893294003361264241750311369247802021079892275827962208091226920171042713733863692351123003569109233823901009654468745868454062266347057755034930790256120224467119714610379608621050542535053673310643484794646446428392023615813670406280192391060699461878258841319713410729483048928937394974153730921878617696467186969252143119348440394220805770941837829016536323132079221136538134886785330919656223554610380440801833985957807949503940327179318096210545458177910030528068285022962901056360483753011815821823702875886960859320129474076089363134146795139048058520359624899177628586051465388211088613463805066638128982449305873168138102395345099092856062009893549841729276923028266730355825778502538906181864119101817543558550550590141805198161946146853187080257378495838581412728783419774351804360099367453251035297590531866636749785490087835065739648554164254579633246042587315990274367747970638456716271735418044250959151739171660306055867104100112187931992448787352865804110994942449347022103179817288685858971179019331815767561044927395925778130063984427237640241564114421436857244931721916209435599780081478877320674138925007001313632628071632273345726570770960899060298568084806657473831951303025139142710355429874034107506061784911403659342343511120682637665598556860161013134123577445384353431511584103943298784853361942047443963003753600281092622477647450599098376842574491392070997541173385727506229874387328501550630431053491578797351620158922732523905199012356531810146450002528056626139531299065613367124660299359775370533658743016075643798220357210483474110566240976654609280129127487695859409934752547871938263507405204571398269760926437682493673171437779115763706519638395665016206482954887563638726415275482388792058238504639247205274956433113240892950823245244852247490120006577134646406532262224406487715102564008040283660177097431538974891453710178544638432707783070202113885056356235243669803991761064904328582560030197460388632363697735732732904724033085271356900867193651264290126346216508223709726817112229050088154755828355164016131884570123834901685743064396108845751625900296127926995754478290519271497209397594680036135686574990018449113570107750925433624596269410894891142179944889250640082790839575709946898915793287188990246869658497058710631008359778947418319988521304544878502693278003566533228797478428684129640446894352992868617995541146536579673782736832141838394167598984386319607957845685877063620235187973454974488164324369298800387978994604624260397874101403662587518437277620133300610480969797633663886313534769708064695132069795948291589299013962356404154286620840236740164403716739850108585176600112490567610007504820646626355599987801191107750839595184948254232399666103734167806807504354328260415169029797281767415142977923060972772749152814122223624252286261804484253970484809999557937951519251895153385946551803693274442615993035646356169626869995201961451541345805836468816062350085671610187279273322281421402323544226998281302300314312008512170949592149007089869267481266520899666209246697434277594623945773264687539659593298318836831074743508023363201327485120175274054933129455936406254524430661523461562066019936072076191328037512304958033051652622757364364230876496397328533181696743846508109556379872630873924081690060155030013312320511747694055431482414822158582597643203942813681624664464297915308379859271898534227134568414583790451721197778500401654818882525541580476606908711227357467159418327261788312643157851864762404010766402780337265015758436201643851759354174663424277202455262514530760145544224512577661592650552408965461747715864055245723838370874214681646460816606667852324472648635275284033432658194493596924278440137724585600198026743608978570105540947182098681960607698472539069938820075393926181832143228425171402622607705261907873452064811198250540460812107311813367225011212214593847408113934110862808126824716473875119902706595708778090805183060620241486365007652753692065164283194152444892582637481716429331087452987964778727478760696616586885079148378310535263282616984018379131845117083550162247223213285226693926798603020363573048179905402304118159151429910171612012204822069554461372943324436259508019681183181250142793128673098820551393404608180822763898742725668563711537393405554206277106392126612779968966945107946556080553216564119365391771634608633904390800544495975062770774892397959093850785709880755502031766145222568851421986755492770234423601149730786461024071631634228804884790565958479767329632841925491972813975985192758580470805124776931184991347628234257733545968344674828163552595109227787927894419052591878371608194062125386667197952190283703824765118289275227102640316806986722906654900449779526629414623929091439277346824282195100843441593951885556877114849277713331874345694081753453405216222985292200665485686713933084361347607177184954477505770011429955761610843404038765746302875344915637993205390237765559057062898768733453154461149886662729623244971651632887423142990786132774348527014028227767032939938346785075846890899435452247107050685848977999981673479346047216603601659849712316608522879485850036882250113410522324844181449382233748907784425753858835091962038703558280856466835191185848922947773867339658491508370630752941468927827114721433497765056713119714772686502753987916841447817228965434236244450449966668231255652559837495769656295817201652958064115143228256124304044488202129979545385901214872817163109010392084137188971864222428212870587067461813268350235823723597758480531228413490765727341894382281834948902873056924195910019611503961757744132246148509139873110152950032018083463975342215080226660325784671836822542767029062334705812345591223053779154386720797482886817923179273016046566636493848866084017354595001165242449459301006033084980189817017676127175530983737998204710411741435239501231224661240546478758667067600388579364356319575794029576749504660128923247614101329202594003341872841542099463232952514668023592483501091434006437341219018644648279071920274152368774646455428240590381994899820544070552455202841185955373126631391374979090839220644567813223120050348662266550746975304587703509708671270104289887405726506139585148710897056164329963780587247320796358788450297200948247753952399648815507037175771069998100304410462480748802740181554843423760799158825647602889436905473102887069509880723147527774326336472310942606899016330932721152228542574848168667375487946073236976663287802225646743459967601887052028536400500741389615500702178071798679761739737458931183727049598344932288624837714625937270523927016815061228369533755819001090984420215880765657636623253573551528215242499463638421809660584067957876271926934126430772284481197683135414390832862867632171368644955835796825290966635834519526127411462783956338358140466397195733983905491015723373419396005616694345481527964270746204805546873063828228541627988747842171574734279227010888133344538702661113183455454850732837698215907643219060010212503588291172502218826056247904295529817087885353275116382979111930179978411204191846158242562442552526711640217890725139396394759611798727558535100367364982746524028210865086857767342888298353814717384939621121804824412147360577539462128644612528282639806622573694350980447520358749465185769439635085847830263386696534130776695296774794252329850038290112715419940474867710677143434651781273552046187135225975304208631999831921499067501436304875768269719921832072315799079424535564930230249660233529253665135575290999242920107350289471169774197100289587203926154900612060857001008922444292656525673057523172260150234882810144454828869170442053987154794031000946597534595055210569545512607785225704942035520855140578502657171773963801310685025713742182635398992389779713174126864768897286739521897734902404078374386104186725837434969777612736561697696603377605431421116820568833653347522357164975604009440451454304542553328682132506912625448751244110219029561102643654542532515884001522193693920980113971322576083408022052667950324826661687791435617406379701720051248157930298763959271386693375300333747873747610519381736872603596450843113635747829622834296658455402233435666717573153832735471990103891575683897386980017232389693726286014317323952473529410464959227460622252454346527540490005257257120077478526068599744845928970418383773353775104501203093687113375608480545501543652051059610649572441569639374864462704535073128336548664161582213765066366210102919921627249747900877232506375186920335881430805303919459530154791475768235967303056937176613691200221632975665723385822745677361757879341499737671555450124924394589301270847198530027814356985559827349270331163099103317597941810640690057619581913292074699708580372665860139115724606340307089164026431859018044148661168939527789515295273574814948050840076458696171621831630445992574918227411466511146065672521056686418491320570706165587933060278649706971338033875961044986729944799074023982810980838558274678860716011908473000463839780585750346382932567815756969693722001697395943490338482487086064784758410985218883030605249599016000748732870293783475805532919972928921376148016353071482035167969609828500440776537944745283951602563860205994598695628063145677306296937472645977931769652811827371239603749570952923176736292997547486753852427769239069030254355757460247690608388050159840718627754230012776630364334369828543290922535911162836984695169919521195844847765094058036143934069632822298820587691389429444274031691430932066528319297091785775128498036416653076855524646332833911002814180621905504235022817456845247870621739377686566827999082642637798707280171331839583039629125197578051866030319557721154305776943974593574060481349248901614837114958934650473426093604273041433974681956047887897368228672533010015737155127278079480402094393540654405183775833623647341218031287148354619669176888375194070545127775130756839953172814428134027930585582893989034195999188335082851166653884652344026820315683235458029478573386248203662382645822261401980557874601987763103513134282619714168978685338097679182324390074127516642264471025711439238173856165579614960362848933275811603325970589280070391805248923293435052483170285096474555529559073915231844976264856078524409435621607939926536040500897962185486235316733883671672001646077182589968023721886448268851266902846221246733686040151123454848073880202169997612271067078751425852750949728896379455059518871822770304022391558399899392335533022852883279973426350601263425496245725681116228321056231804838725380695007162322481205764519707044545886053366005716679282655772182240072196151099306539508702054263985233466862323148798246954309669048627826358912053044823748359392014869849664214558095663216312388681459572216861170152444217319125901968078848169945166458944143836661135002176582273825368334368387851311990871374681016784562897582330386758490348719714488857662104318484921818840010686842157031463663363202695426316865556216881463993603419421751648080514944095930207702943850651642507327372990822522037744970028447952837873846128937808124554918370016518450519511879379268275974927362601821867192611686877401391264059008113209168958951416644446199852170170005054978076932714158725219032972184530461941769756427729085413990831598450009201084176005829595730370066653722847442580523275561115391543792212506575833586401865802309467084705761050581160331404015632817441096965481889969147271065104613571418373230598871272846891542873997116380953563131992377123936108252776103462095914648521474091047932590835347043541361663143002096387443761139352234947661951751874183111726575529836946564148524309482702111920540949446962167727731548843833187298946021061387400838935539029267391040304779746885739211142487017955470204973047436744026285248249149608393712924006561389975335408458670828017848678282256004160831733932200694957230054202109310287195787481647305043113062916785548636585819488984408057451663994549436074496023628271051312551338641788900236068939059714820114591431875595090301855771174060453308307674381980079105781888911756989251586182315751288807823504196647870742074018880760549977542053006623219444646050216039395227325017080737012086180404035879986999049624455507918263937085583278680427815468169518511725926552452055284866290649606079963226552170000500908437197897875242110105013813246606263441236910822285675003512816636687844668129155070060053669470132636067680059338695652168027674893023486848324747508909307556604820282273192755401536337871441307923867611432728782719946906897519345641644960285901839366581678944248230440640529567302671346768652290866980138985286016667099252172472224605838194547345945813406701499068436389830129878118086108902554547616582113548359283327307163310687568391988467707214893324684146536745125329356622704288153035896792512457571325818201813780082168093693667397814905863725097387962418162888524459941404568444283708775359504228923649444371894226827430640955066730339505308610626706350827521753760967590850439483557750503456854775378819930901159998944661266660502587002691466644216267083922522404676589081143067915966325168506723799132654074222775349689786842663399362664193725498246068066162385805029532485951039580377696823473881335997270030058358777563253352473013371811236609690904353795355171230351668841348270468588913610630492451459784432016071125573841705008930551460692536417024930822448014447459855354947366330810923979060070438260081075055609990796363528274559675114316350999211100025529824231870915612739187808500609937245257091493505430322435124349361457688507864959566657643171260257132795318990635535619219856769060779439937058682815424892945274840541460341139770471749787747102076335566771718411918955073674592267511182036873802726957976943838298992851736270181605213305659375080980781238336745315218117547149387267975707892163012598806905249960321024030415212556236851197596512034392271943757249748883598577144481545881399031244018841221274761033235522808214164122276947744325685519809390556580199899791384984067752401469487395600446726180284047568435264872459934844458886391833477864663604631734136996200027548616427737621385519167640683293152556078915938132104075164840507172476413876669059446544437181451723754181572973561852816264007484240811866667280555565956747132833005538990555675519607165203645351057760330154970478417650950521648683559406573990746770228014079391372458039085038774191278161214816525828978922080329524993337720974510977756980913813167235840953529347535524542014961873190090602051506055015655502309034541788858493203972381777526224008392910851147217194085261176774068722629881882627063566813254023122133759191172555166627561424409549216968844509592227477954177637779848745974381296966782388242716503014008605481839323639624919565649491221136113989443279364536671317546218228573765655410160895487184883649786153541980100935372519523266504272342721285922955465152570911862021939465262793229542789495053216275907684857769108948589788062181235669954730239753591488741432313861145488201623021552589814384481469679868819831759737280014143651248118350996480426089270925562847227102091076820234478269324330799702428251690388679383934569069274283519041815484603440012953316513392329059002781697093765569449364292466249779690544172677571804708695963734323973199883505455064534759649204191589260007717912583025142331159715953866078385717924922990889190530900336619353924457955368440613736052227731158003007657019506433588381555557070551253232410642581272546645344469794785661227113170790523972925780383618007618668549751912854008673384723437452735223073623083393361201850221819764262335012382908320806137854144839629014423624893045542550900411604239933902056137386638316855645631928503114082266271172767251503766386717424589105568591177369059171469151127196521387461044119254515188980670719809259407563120864137680471538441225996313822498104315175747715470422768862515495352992218610653913213537330159630195576831203321614405692968824286063959731000246652864904433886514563508901382619131145276611909550638571047192864829527562463502404167897225021417861601192768897722796546641936541341231573295952175555539651881872404130976311012609282723695836768479750696768071711214726607910754836214930930297279127923281390818265376043288374298357420128027042702257863194583160197095261440612525261395992358686305686438393069239418307930084077978267839566805077912183974146196694260727590735778730565558437093052091240649841936051733557181799025494949061795777166319351817272521172317114375871839336647131067689543106862116162347713426015705877555459509896851771605025626633674878310041942751574764668918047005535033283007055751425649437735282192224699306452074607816046594921197857167822635707042360904146584264735820060393499266622984196383053147335092255738630289735283529287967215159317591851890168622723518946211049001045955462971736014459477141638370069829941426319491380976813462001623935338722998917926549134364587725627460539955781638850525976103009128390397362201784275384215822243040385487309770773213916977172306246667591442215255413874809540996799390701436889047876646899286055566864886441736504820012320906559806073695096058027142346496652098163458285133808529910385085721397417384412041468769342309026647982511883202161109371706732176494392698149379568255463147327735036938541957844933669018507299114804985504772092121520401732195421514273267007268169236317104517640993987425774338503243007731836416121601611747618460382484729532129193882273852157632454200097705052619098135196521723931615757327039652574537726095158051980721586300013563693950161973353238852344190981292632841061049115025441688099390808797432454369470643111298877151125476772293816489151953352396428892229199743765401959055182524314018086117100760287722979783694081871806915246958318862195555567609899922409196993919656646175200044662850735997872191458048773257598033148571503911695988969396736800474563942215491705922089422444773737379035417101227275568183537918733852343065654485349362575191861349653405109634355008191294337157280077161949406440792484387107762213995759552607887444881863409680211672862176607887390816440903134624273990350775600764516247925749885078170536883298848473574940825785032831431048253682602015424071240414717090262751310464202648775413179575352428936424010838782279563190890237445264930193661231035510351563833487389898841177851109102512427751482760145552532437882633310813023391760068444585533095652470378472413566228791250619193166640624831999296944937297513460039874695132465866817130378454512265143154727896017810204475472315855022128955112779924438478432525780405613697426213569473892039248199891413101221763746102360120945434529604282046725242196387049220941063468532289274680561951692047937141283992327188260390302709449348810974865942619642541530816788541104394099582925689905453886375737568576406789127610215634211288997620739631232402484157898168936732850545268328286347273922120734486547032242030463042849247833906452366062504610766474268722053537444174523508378085364686078822067398577646413665159054112617204936149063745453203849575423520238595983805202020608275983603110264513909844937576141699407237471106992635910482340641332651701940473306662869376526168756080519718608415402751787436058710173387241956070170462224133695600393656863150299219853594324398218141325797216925857469437672773542866099217856762665681252727209929322824466087084004527086126663106702296748267689229426859600222070216752929829637140014738912108478541769126985039893761724832091550469476198574600648680149396896119390431367297889235387398894388819481517787633365850521612969588204180245773053767134035495240568680736502738420536748346106565140627023926396180533033330332320607858502454097307483181550108553088572914059031736588498002863264086425899539139963337236146581381881494794529173162018244586279148480777547432895127104254005875943023320019084726296885467384705008345432361903251373127134427395166366629544085583974624609356026589652512608560291201496206429877736786711308697148494996052138367076204928971645950995996146099295437934133084997754046535803555078549812597106970307703764647165246084417380852126708843684133607899422211699645234357453023955460440073466272530101814108141208787186357534790694451717679041867474122781625730481755673136384335015736073040035785273505149962328640730431527151078117978531452473780490824219443628457293169794851163303765673294991317696724887263304365790712345667637494846412803705140706422869687850856974466278013651036000871530771439823770885399380886903477039653038443519597999519808264192649771657815040497467893601777087298891695582062382473024339722311092830271162826825905032708707655652074667031470552009231037979818779137274960847641379428142190784355855587129550821891268292855572977329258504869736947369367290535331872842186904410770599963733745410023076406868315340671214484619491892077640696468465280467863151278724373868603332630813917142027511017993250380412558601570131888164498099829354912841592566756352674346317646257522675710490771803519373727196860425770940131488754260303543609191431654372919303754251493714864456014878465362516966908443614743580164182121556056223659555715926184195814320754371648470502055575598297417541399072491382401616689102139283165054520060344947516388373254305081141615960931211055267991617729793109232356842386446627152394080891154186971512918777268141208692256122413903673066695670979175124850101444550837235756979063064814673654203717433658990164272962583590180462251949768170602509701595325660372116866744733793916535571903598693435795928311826613834206405800030233040691838021149905145090406350287306793522058858120896903495481114214007266954787173745460896885173453957612284712167329979424206458314310573249246461927578000048917206110468700909206203697729736463481521433935849113684682987247614981641127218953557291687743713065029945138883654702473876471951065747872404236241546255775938883049119629122621485204301864190071196302076776156171987638771021911227136285546311908668585846754632390272099097308012334060338864915519240680130729422361674671924639627489913287308055937576722501691308696834925209972026958199753861492803432686638615428798259833063081223268883028126769191694599711081501680441442922005762923336441779178846057956226344351682034109307908596650744356769767119458032183741401111535358846044333262168546595935776085774905202420446809373291152335815444963243667976816358470641969462180217434694666521042889312144673788540668655439982883001227258022029420849946424012460913010802746264834179087440463986948526070904181608975279546104787065113027153976119477547867410899393448370828987972431180496276381240287348439773180481584543705678001883462189489160396067550462870243866889588297266608047638439971941776052604300483069906779915495517816706020285987570379324356433550022619721746509923124357886575232086032321813461791587677511325135940398086295898680470770831295797133525735142906794872154736851912719009724260053052277611992864298006485606445624894243025131010775433756799054646670329911989982518605923052861552629912567465943896609803853739512632377470788072338425856539509267968867818750053421983137214200741313557881546141908135291237737957720612135670924492925911783255352663142506207964613790825485097221478959607792700782353467038528068233045466751187274321503468413422346542761395277128927057190306127604550182094138453037512853464002840838160329358946790759698830726930033513314325080848620442302091690657642593194776623699259994947943101797897257322226797867856893520613487733036576471873402079857049514434477241256980645154325333488192898988731825432659216233368066953877768045820374808358196210824896903858091031386703301193680186363426830653618490314011627538791257155528239258673082350291227368103927244614778208350644565164899707155333322706046473719963511297209630299283723213666728976191066316631394686974469121618464622913054806243529317428251827479892973742724235713034713917589466623224456923641714580850829866850463344921706604930250660616779514635498819682968884206798089465029676247578814532298518718648359029172026431175531904151234534762101304757681523164687972296537436525411787691944258928574845838687492842442489805768525348409004267571609592081972665105953000253615986904563706710225828788214722505735082832468460410027948248579988454745451952243403030896501158618044906049737693857803946772700967605399211184217733610025523685275415772344211838087160470699078993469006211844246426458565257104743879668313285623194956156717111609014502181100648965005781486342471625126335146250305141495277273967373701244834214137941873671422226215239032829001843286177306618771131914897230261534368340425870760913269048223748263317415757438593932341549129192390583547213481944348862362328786383928834623356593864558215772689392313156733077221816788052383001189497909463272599549192545026793269199214117955908213045319390778573019086831188270550933956741242560531204518989442761985640436465124454452929586948172085236456910820467505882726578338496396397376821977051726098783801627088058718723879968606248644457882037912379838157141991749024081822602594447969964487342738796189388317141025145098776576337845252051914957101670496353499098604734211418958048204910160663634808943991804889494423613447073868323881642207300178348581126887247840966230746122621688251989779099536619483862028195728222094757279169820984165241922846030512444899385746979881046913442133985463526366402302537737981582779030882856709350102144813116693377391189517140615058759976873010994685736916386882579164288825874116142085103268550841753992585403399765818711194038650274404499622338581611506645471274128633368042134948847995236977449198285084316784956746670108980437870460474103965910554133917142667133211538180213993919884658018419208797211642040960922785384506630075244220580955122060636643932705246117704174711575918363196114830620869218988673300277685605584925572567173247924564282281489575837075557858144750812751989734082339569279834950114025499969926013762213403626016499281159191793412575976107466821991889871946884185816021894772950664735787409641026747935216608416722196256634418227078933598663968831565328722661143196208497875814085292402658345002154129889485301199748439955532242367962726996378232339328919685630877889923323666523354825264070337410939026309469579097559160095651308156117796788810475913310413706275450171174260247770264127604344317724134023251633898927985311563064957836808920766995233464295300019068697755447184640108576076961313635344122629441123228177364749920962367127539728430963897045465308116804751418731489795504334861572503694682401079026928949319657003469577717772508297869415715656905093614311299972058603940161326242026664887921824157622660028717380483211365326923883393621485750264332108378005627303325281617489542590919709520978990935785113334422621897922516210785026898339832468565088552926155427012125848612781797369473980610911816724506734826617667369269191203372671003340411536440944486476278407652367014802396579820865298012241681133177525676102841775438750618419303763707349652500332209195172314221077163990855353464028155241265439446927802285055216636969703146413574331447462317958708464231119192753821578126403756164773967628226640485103949159822602081326010396436813327705261347816319713098210601639778613892137609055176738578207750832213730322141140874319545279966736997154365964730720753613329737511119660466107072173414078558235369344243726848021701301659022133220247800636657821439075080532459874513702122189399990005357794698339711946890431076288432931508852893164349802983762565360877525969645916039173546658835056495737182401029908604303174594700104166221470807456313941276362959881352435800868439753838401205296507722431992879611146000605948265014831720933240243246721705410599933698127575136097681827853711313595599597852442932373201594121594156390666287420335596199976207283402009804735784408610963066359572362897681368627424384225832692005003899427525966504921437574781202809084614806020378497251406685583736825224132111142232493324408230944958931337419184350142063929874828488070622760716513656234154811300680081176061970915505345911201374643008428771877197664733267122392789956590888461912525695343784152344917833129442439348256453104546572325088684777667722406678724841087354225461877538760360154886359452404173799712943097526049726324260086208664382365750895868186486551064690760679118302687804792583412055615022125142498058291313748255481560470164150236601345113615892334018518030528982534773534039526977946397593079370784529676009983017108600283006036660878187107379128160444218996746662295887155137966864162449735005543156706315718682904642192541203672379022355343629360789287497898338125279719925233720166075344329954974348934217074711142631702894774627082753759987201492636099281938864055855280918546893466682914395607494019939442329524108316711723003083172310065346531097279518536855634882108101650900272683621530047408232542599223038614867802544565636302541240961632531236222420005934025420413732134096144551046680663200297251796589988659374367165518298929528416123686047523329818652308992893519669554283793784544628502652451050386951298944760036552738772197278929923761446614369648249743771899681825484980060425089811453471401153301029121101351542680437403274739215470625841283644626888538729274300704417673857817460140089013054483303892852909181405188266183891609789925556815135041622497633477535727652714704108530280635810156686278726551063831756005689923170672514735380127652087222601301273052581456939164987094037499642693196157862349251528214142664022244686578922726027601941967403682254472236853162185143297214228427017328385909364401159210728990621147431501446616551137250149428539728354901393808877902305604562513058292238139792624782063343984108321241289062852610989653237099362635650914475477103029085550512766484058669272017813616041820179459163776576134837645925260112077057352067857776211715826983200149750388184345596173456735855488279321816620583962176640158975097048246156047358856837152756347314826518525432914171514169469541568989695021671448597123287993719532993901151362159432507045080584128912587755269448549274054050159304285971548378883691888835435488786516978904922125038697608248096255270443036206761636625915653116623408360914045132722263302512628963323995774962517453434257345704209623492698254115725957639052907318213852807460257906287231882741898326678081624314456883988769636361916528039008696405914075258332078124589994590017095773121552887663911651290949280722619334648764184462403256631302144259415855489363592294657229443863091496673998540413107709670437190630486232458601394440099108591033025790572351770068260811612840876129686899986380998258641661768215826250383743350261541857223774755972970019120298633453721161941226220098062063740013645884002164569768161652769001410916745321029868163443673676463732504782396819430128495747098437432070778679958207714927536781593014350222643687429002600954025837128990145144853049232135012692355338233733141329838090441670713556646803288611989158449216854637820928519901981456535450069820227755088427314575742659750575405997911172725117831494658355540791165020343217564581516227241537287098765342423698437768020729199351342964103912954525970728990066015838983606426343671756890117569981434046846548339708116138375823546673727812775265419415421696910337437738828479684726614904615703607354269361662635313356136047694760738763477303333732424882760755688123078111771901013242660667002867357543718763580452253342440227839550770757826410115246912292905337530899158924381472506531557864696756592772757613239162355434758841932621682543267725410630722554796155225704875308937267761879340260052397044895126212085541353767599257426582470435935823376602977515085787523379494204613784182908732549696451800437137204629728652878904850167910171938121699049979607806741906102640204401247119955103305650654457089273630096205265874074426837677139782101379884295822751799468279796096199843209073122139757747938190943381976499044668856320899903328582719635379218378204445326010862425288014273322863057304622337306053971634423027938415890745189889815358457070066104685890812376651460159945971316127579804047521889821481845612537244170573502100805522542638824955362929668599329662858695395662996843145945904581253488196725535204938083810819744376409641925856626086891964626525530643566241078562296279439749363454091956217874421790455722959423354856574942092815536325339239669371460206926650809196210856475707731861846219808475183471974887424660767313075537990190358364569142239869620739350710599717527440681246804993281461265489094816672190596984531796110990382933201631775393058183661966177237262386118702162767980623146158955853219472384403370367348536249120887254466950960125505750852793864368801608055407620649358278221390136665230568507641650835886963809190938212286031568896602446884561433571891010428895316445263191726665462535168915924274452518123308054155928213550824995234979055012929090714153995087387465552930293198911207482881039182585405610947539485405057586695481865304343858600369320000009701400128934450453548027588711743040852093660239118315338905908570377397238452326204617628975745024100785679028196049785277143492548106990213587007389385677891708774016955750226852163089347384985607139472240613695374990355286953683742292650680685515800770021781991971334990835161498341334226287553541688054983464512961878073659522369401401635663373265772257789403039474133443881314072365057240765591531498777808717899557193865516791819184883355519176849140542357336922654679589159106756373516642770210451381806750885768562390586921263804066527284400792069895451895771026321292402545430878561321776476654575704617919509543116119523291686641102649226399770310861383008567665057491697474383322597869097918353266439879656761272450096119811782452743276194458207338946581918739696939227998712025916714242214128672342863213928535864567027200486999151862711341777721802951642468619378708692988324943478692046959876210506881692932820886433990715904824998806069260710804946755615411413876912730724126156643844183754010408092336419786409062720157299796082752927433383780495082777854071293724081999406240676456677466289439492826750962919453550563152109777067589640485749335637648404331399729837321209067997349216736946277979625150896951604585009780141794240099896256469865716249586998260981593303203568618417508227093639431981976410596338903718369941574837750050694294623325852718310696144904582470905195120214060553183262013146649811645165013129574211386908604038464097706196165052512472629243412962678267225598616667963720982193028933486813304944104143316170341202638917785896030182599068896784426965572547536625262309574810649665548385102422547731430550377259007930907533437755537792156407694749378799343299587783086381001831826990168704640530036197356110793187291663040814221064142842727657346302546760372062361529017505057525736194554758088094474636622852971118352147729230524724614588043672607071481748122887665816658073162483794104168605109554062655639691135632746983198303354950159802650330690438872301790163216627389663770640717850701612803151431194320402705537728777634620127170361764200695380041141225070326959757293728036025626362362384298922241622198781958302009570691150669810404769378371364721627994331800339290932313974667850499738078112532656302639450641494648485374446209036237675046196513282050271477686544651775034869300101766352221892304086599135719294259177121804184764107707982891379440439337223287058146080077980789045251774403659566379899751176630602220961123812947008944117702831799159897569251438737845989168371130691504535325570337455747733318241425589462830054455891953719494457454204883333707485855113840155285203602002204327555196720981979548548255878316363109484136283329050649857948456304740438069114618762943147907123930154819601028612273866582777042651260550796776747364447455199629829741057314288062403051193711360614890637864563627096111689986561970840847339437671243439179306039737642419731144663678009819408938753352100225170419295818848256107424894018623345024241117873267021690112487977968583815717526748748386232916662994672860210957664016034298920480544457004481612387518709158287490092253329316782832332077631886474368857789855996082417228278553052761702973836941794943808882827122681923133239879654321507725016677958903631928203891945073828885290793645630807617033899444600478377047953238001513345352481202736271414546472337140723703024929193104290929901595542102662356789211436260543988588173166419150736040784265000265739060665583030930917894295586698803729934037721072978934582030123549404281841443590718235031675439658750285951817453915521592792082234431628115571537941862348529091716167937138122889333092630286287868520920185659912140484231974452197497781743803010392553573989567909075737578258820982853007743063599192883064092425097730113195360521323285081975933360951528677419706457818838733997859269936898070080690609453262870929040031648556591612885144048738448521070755225840806562213076573364549802440523997001462852727669641755083971712363751799569525012989119878216605861042942906928903026286230294063015180660617372068837809172412952228551302872308235839571891470713970371089625352120918038678494050210153239166471200178643075515578984600141646877264598600467407875951700406708881642917879158382539064949162619896163110710895499345393915019769004135894207009907730570254336807253377951782255629258819797957879261384001232808835416515304340379064713324480852821657043370588266160201880327199748420094243864447824512098101216251417652485207567939300661748392706340697597706160897576810632294730656647765889364448081505813338354285402683766783734713211476037464826745949663525710606106367365151523512554445573856345402616646570174863239330688779931344756574785379442602660435411055695029418991201392540801696750482687529552259671231208192363894008986712894009475493986078174107933934071094590306086773210357317335188343749928064176230698027888192685815115770076921763967140069612342898918136991467288231125218447312045845287206248950670367899831982902750169602021444836333573566740316620433871971194698971287517695351191076256931696297705289064010137894952351003814410858625223348541425128277907474982993915489239134815507098267237440320561976547690604382928476256300667280263255130479028366396502539425632744336464224097682690794896802583222726432049557852553160058460918145339179810530663758679104995965947699864417443599793118314098019201264538636416049568686642374087528582653637592018096116066823869157764811773196821284312192456772522944207246229659224600112160978048685157783590903638456357572794453227564036771962255900287609906494523449849129945325203564847095155882947627821160254178640158463223314352242807109453170841321673298646756062236246420197723079202570574777549148150736316553127309281723646762885617882565672896246149350332526243120459666801709792845249014585207023327427902786866170986610753783573017014667080246572029591026080430627411217665832197624155580554294034614799206475770625297002718890875223878244484948092655347628182360375395293034195187001682342422627041571669870191240653680340177748741610478592251005802736642310048327330491194225193730183585364311383122450764189063929472673777685876231707603766519552083781752793365977009544548834087921968336996096371619713465340293104119199571358800645109035918159479877661265465290393102749722447629162115693504791987391059728480793395445800877973083559193960548482374584764305790189202136059702593022325064301821265767590989690180138920042910471257956480320652027092520264325596148356084228728694351905255218866398017416292199462548210528764857332457254791674408545153045097066523699698351193812057366378127481347660171831442772309692619697366827493488442171650947895155912803466555785081938140080283009622091445409948574956346794581429473787749051176789431370665326128577282769560816543840140180598702550030565498374148830790702084579525275578473828301436768405611532677396752539020634424588730786364277395393744591498417271599204519354033081822531150012801998118706790208729405838171946681957366818769005241981642527508765371431040748450101297911973948231856742304507944220885422940071026505023859701441227097576722666891421788659171640985341619428819224789665161689755930029396432784619918014712178859327002149280486292852549079317183976784266681503109113616710728545702653202916163951878090693002115615590061596605624801756007575802921687532999569083899313287746411112978375757188761510054467257431918670649123498413289243459990982519753010450214548055414672678288521187029304314291203122678739787534897827859732047459310799042238492590608816209298201073616299442081054435761758220860560187891357340100223761241213856469751753385723190904632790761946026223674582679888308514674554245605267395834231755789337076750906389510300283504394893234623881041371459446131636533663444738073409325910759831493176869179927039874934243823490643541206574441438684445072611049458312332867718927941618934635379092510672451469400704897104113772329147705876531371971665828476013013536601269431255668084111582284125279333099389046286409629883039202207636683888081239248932788253329053336142158628153005152658878365199081435015544718271228083742589277848193072284107541394544917465700330015903262360722845697672122405421891440632782458004166240586828061703716306131644987657192040906871781655880458960781434648649091231224735494588489289270613986124484035613291149636255799244855395486383669134742619592888303738150328114145665199644663019090981110774959037799181421187033741559237579942306749299731572339500230864103395110061113506788349619657216744723360894089624817351964725122444162310186169692915527905817781296884854817290089855249061161488792799219603192761564908791462299967742767426450440059243596513293040663105265732267550400675359277499331518104121825640557534796234306883315765733821899791567991555072496111915188226432243582649805435600597772032490111765325742683463534386994974141610266077408935942357540125204606915487829050306617337656088815240945951170302643790791400975672240029503571488325861272173616402438720871643358236629269965239305364752623724518770948024321648297483263432154650328782884237270866114519195204247029797555074261514791533243531298438978263521623583933280340492441029256268198480274070916716145026014746702848273790632973070066458676109696061459065776839625588778470561374792806564196746828176447741333564687489507482576033878578557519911929144490720714823175022158709346167553223186653829037945965412080265346582648243846900111115123221156976026474013949734754629552612093013102574959001461122941824017159298276683005813650433950399749314890915297565794021599355459583074524499705490121081236348805829398459084137561034485706727779327666902860269620198741102436566310930398470023194617211290121081441884694314269876704930807798576620078951304559499748451076779274916083662361104639486502743955989753365900423181087351073446435425875550488359399472845433173141353033940716625054181049400516588607709992284854505141862091636012951926031163389383361309300111217990018479790828013580264409662581602088502294947596428310872227184563770616099453926292257866103081008972278402636815642163435865286855059058558368926072840696135528024280973927442445557476072244872764527102313236182001934125190469050041059932493237927206365467680062831095384195530535663635884577711982372836629520171298417674014706095731262311061624066343207917559235948600351177609201234515228729130219766792075400371462564867761921069319836526044274291253600608656717127266735988003161270741287183180780856705711492108522022869310140076290585202870378783385387374871762805517380677093139518492010721559699309250744765020020119775938913962442943583403351524547956361351863079393732265324460222600990661455267558908529669723625086320876552524615655056674220231454249812214125380103326309890461648082271495126855156780620036556780337958103306344755298290402131190310966755853140468600926285773542453955545018210540653080203459762171804230147256549101318978956328756171917281821989548153250624488617829046153797534094138441014675533772200896375525994117622954301465931733748003740746438989058194880641079350615273907155057832392819296131997440617420169777255247071986431683972332674575574062163009501225611464786834807475363779168126566181613459647544538973616223103736974728612757888123259466922902527819168600799045300202858923611646001500122696069934987501104890659902173872479486673783856775772051201813964176745386397947619790315921550764564740137761337678814369388271899646037975772586383568616085709056161216230377586407408281569153452798592776572833478034874928874057517955948550301773896366259470905494811309636646676359662212577331286698101201312810005850746317327233559881137228583242094689066592646037230649187580512030480557747022439427336837408077872836161775321645702603041844350240066798054604075997569336668775205928202369857494836562502064734761764744086447369842225791703425021778301969380187667397913730883146617947347520303809920633381375812587513380830509107709215835531764491351437830778813965385962201975975298319431663960699582400412635516885698478699869071164217212612211935853543650947844887405424927911773090486942882275972495399655364479957249620194268607889896147867242381762384507754958689964894373722071116937359461877190171185898457620150919357282813124316671213857764043328426426773559897559841818147846315557163501349040956353220496350966745463435579049359531571915776953264646279668166538494552191892708433454299922645153878738538492076867875040031035698988559191889262206779899948326125967850108612452284385327079827462111658795851116657788959365364444834928969850264708913436687694073310357987302194314409652657577649021069387773493606357064546296335410527877487964194305462939764470192716044458508006499095381490556512017891347898907812070041791233707700314279679784047020727324707980510726815690569875884802022313454356335157104407410583944153925059984330480343032839190459559654576136808486470590078691005463780583340096903675043313913063215114761580280434321816742129353707533348189329614163573833096618652019981968110614186393216923475443674327419049804881529962339734247122008067937764407999237319425359188238194423805941147929156548511359110080676402801987180215088943429415122915940368704731821839585638797707353191050468445343422977000835305538412537473553401652456211158069488452953865638503572798545609606037941453996850510452137710192555888378712988018655798208112687606291949941366626466554718501396618272240709330577141667385225178527908150857165425721793106553580145701118707403227058322729391074294544998030329254134284717963501628187277493900716554893735845097532816297084079771577242143260791911496592407629504779941259993419676951171324906048517071369647052676448327812884861893814139670198856769579517496789356398888188893818651732799315068924898954217317170663055958254709413413275674400617963395239605883293193086321187215986801787080895927166658875477873272074274002988726644355935478651843322182880980251625588916060675165021983771024650659748666661134850043640835899989378295520038565246257561046105695813066008802803254142879084323428562973551462885912782401986504321869759071260001967599767032149107129175002488551352042423076451822312534951632815857391816893143142633377073635092154825209073739253696928669066866431412773859859273488713124200646027953774202815158372522845528254033930007756987157002193987788514700379882144189232535498258509593762651848434517200907975657267060917708448568862273213302001239834716561830472229770151296672795978487916816600698931763225121108082774915996070715764329595439629384591378442336334353342386726521659403966129042083296372530966956216291623871192781001264221670105870442576055837605389877695240762382478387370260276678097849882466149855333355043256309825117735373804027329977227039504545913330964228767166451531443148966758758451536497595342872896541827271670241439848475023208976005960787797542907507294972500752371632857776040834001190288858080299601161825343027273628635515245958281865441348160989755947374144852872528338313025655004420249622438997177701180677085600977280837662379376275748452115608385394205956119779751155774570033097741633644726983735206917580044831517756106215469330729969198189079340229736765316842910963220894879510739765830405755851685718454720467291040542910557305704373027828151850119075021356132095514766037915110029215567363777957043784520000096672926579086608719108764452385858974312605840651001819107129357538959202443384777895063193365005490884181358186931192369340319817101314394991924435638270266153377920590735618590846387463517480156684717806976558673802693576996253742786648712233124519824986623481283471221720536425143407766670338183174786462650931022497464821846419047448143237314534095347661657320783862536664960497773937551879834152376223502550922169842073341693150525522834174030879241114738783593501733428158913404096774012650364054848559947038445615646972600409284171164899481017641478583377250447320224284733631941926125000270805059793541353826220727237171718401360841953204315522214092417330092066523231667310657905528304509736105848813981951355410825034877874392092740931723385904914131061509444371827065700033430416187383085104585034059429139164795593201052544954366850589241603081788098348894218968001741688583079897428701862501115321150880832759161427519597159097252430488021993516686218112351534801657523344921514946005224368407848427306562610197103409160472063566396508150047781387930634634908696034234714153929372554186248552581446807384266529843463856740675248175909301459148703559826795436945182417635721770402117215615498737275991817536510006575661961124322312767384149245158254953351285819487292218309637752873440677894698714004462320190276033811919678823060987122490195888456514440609135930800792788490578437050709979709736851513887917297213424054148972685727466423733540578641492211908228765480502262176554122408678031859016966158416418161688171528357514654635340296377178227429781354242932682643090247737104759773983420419449782142610390918684579672549859000226137910676139464415722635586871147785004784528995536437591973705271684357367089126968617639165856371657484581483534371486604106710215525978050353926931744200667182103495022881529269899014530480822092104547089648524471817636586093817688894750235638845781710577437629924754736021535285155415043187473506666439233015044155929302234088756292401883294720693486016084010605303846181172694635827453535842117360411258514545374634496720706713109905243612872503411146216952140441416544660496453694608825757388313922436145164180929505978040981389568323489414549073422737334843432742587882794898813347632880964876752026846529330679667225216439223129866372574204074150395345080955632073173918618935786906546038410145683793476755663030219435638017393160738250200546285138224039708624790636449982448106504671536565224302166355386022776191379201327609226929465848432633997249015753915426709340465505748466953866583763068574520877180126796959709752315271815517922583217588682948810644142814121495672682055043899764927649830320459374625687570470169150182910940555291192242538447725586561811038671955046266116691172233995010332117838915714899000750804901140507780798984034285062361561067988959712703810199732505143000325261937538074501292341531102960513246349401412518992942933545408508310940503697358144858223198535776329071134312130643495788347885450503798361994833383582120828737935669072023708486044806314303938016849612931777575230376513816143941451405893580525378057062065362144550698152547242148108616059536060066371524789471475944893464628538878189875644431235047327671793742948490081984953142549342139259641873867491522494848849309296989041821332109307265298027013830485955409396681716511329408277235097452334203629403905171210166939182588173091245578946646207894866698550381742064822703205548314325844201566445009320327172981145059473081848323365304295919718374574104792006267735757712510006654085977346555906912418528660228968334582066142927324173932985202603519011092498711225259575165013040854301598109553261637064958946454665480468670523453471609835170045946109973463621578451454169216007678593009703221080453517261452458987924244973795892304704357700415694439183831125460434012090802911226582234798696403789793720292610002364250330183559439142735884667021385574943637074774063611567295320819721959202953876743560770564082518275272861164525444895580537559294338026887860446918505505529982931276179847097283594805236804052628140649865504284561023279948501476624195488060924146796916185848619905251473196998478627556267908397740890406076011724241394456924162117541452169698846041258600528595791135518233563183448966301488590404401656010141245853228437204971591393320165015232638088798104298089200361452820496422561858395034594828789025650962880300123496087084960689661338087447298165389788140619242702077456851521081824143415866684543819435404017399747298459232593139793276655464386168426415599776651645199642745540887633894978088980157818312031458522233411308913065937050036889446592949319082610516942153788748856983706892381696239859607032286982820387028817676375468746116471104796790097573526994545612219302428732250240037766904100970038604392592694187720140527755064388466006639489048820495286967332516406705648201942391076493924763988681327299026570133596912071723619670312647962419953570449553205124795273951686544159593009169362576933042484513226769026928598544618404083194445958319793170719057930104909990114527059328567928310511557210178476104759189435614969600738479890904039898338809191733715452536269759261927863002022250357470166055548626163247730820582989808826096706707249823425597528541505555809902420398689540442015622675500882916099742844563616185547685053034684246443311500045447162066796339930823230776093106141821480543257849236404323955243243032140100727660146639383546215739576341132452552447639057365109244251837269065875784796157967903003270343757113528301008249293324249340162611139869364045001744266855541860757872458270220632469975261174988820099974102236682082653358598533995201444836464411346083235071162280022479360948564135903254296985683117211186047267795486638963851113598121032309753650368579037587184538127016582995117759495693569141081494804308225046663826833932353266957657016755189887284513265640005704771808812431381563851674377904266379567390576166402374979975949725732094228034922246958851618198141303758205477317496352344493157942002393399041422726827944305256431906069247718555084232110059870049291271566652082113676027601704799588526513446449550897796146217836615978560331889042317599431346768869951110964027132239500629898840035755707805243446389323259508056100495227813578474698112368792769073105798645224437051524509433577759684203878866110637560385098333924334215695918019988924506531821532912070844373360519585926971572001642168685828655090547337427414575439372216987446952670133672973106998463031242943575730014132162027516856342553972027027017452445982503077697157181167193406456004480450949444199346891128147543994275930324621065432526554340182115228779828526624666134545065743279464208382536715791999086796051800019357163722622776457567736186084598143174529789642143476836114122419363069132258906121372408015102793238550057060538866141327503519832867171055556639984493693527049962918062511443257321538938406459793962860612235247597375886834847402809410076856390305924410918918556924811884235647226991973287537807394160068058431363378741226393448451614976781771472099763795439359759254544354689639393493956034421280678745847863149011819599673639452241358812573166798925087263112216818499466884721755239367398515431741684060420003142892090942784923268568014527601545646657155635461378518843025469585474211065099842913123920920506999657328042101406661529532847414540817854021852155215099817961667464557753014644230684125836426322512160986229335880633750379127003153883977288022557400963931128649168069130310922494699584046177749965340588887104071248194394410133002379237610739129163187934428387616971737748934130122850649848092145856090612932650327044174383885218250919558325150460096868598058975884143177729107737519893075346895658514660714245107228647691871296743636471484504216386108539966979922630352230964600512833645787868588925102761454091040137448807825743673344877658527647347224782072126893598764097335917917731481157788422628863756901818594264170021135473026669090114284970488077622092830777073016157084819252588166112879394692496830383839062473195622912294200055005909560885191515797212619787489837554572577078523069093429348209163029497193765585610834908521555947182192090068895837008395474067199809487497001902434908353443693899122764212719920456336319462288824869775809370344409360494527927776272162485358319145878733846721649990795264052100916544595593270180275362895775497742827085497913662041562988733171434041159014014702723036473741332535608801086340714945264505206378281091944381688913917719099856497022558512477352704026107862287767963868248290307736962911978483009028037333985413217049860630994162901370065458231042523974050778865753794180385617663504646924644417798937546001508172490988854339362821463275065110656523788472981884637729559710896990923918950181079697043516044177113930415711446573935969438592917025782817898552646427885020104871032984196569692215707248247186599869671673188720680407173963802398898284852082251047403309863920355260358639651732400163647260231484745734935184318643769571445221817626369468911311934703210267695085791346787359255409238142174364199442236865378230069826382326796630526186634124810711656849668705934352819980504047164984653631553998154685199880258158802638629573117882425948280291829216806346215403637018251032607583232463932999354708181717656726667785633929249231045854505736316851979569369023983563042317532970853299301081273113337920386736824544061573788335000241605143622725990790853415538133671067740064370953872125545229401130246948131733612581633331295969632775791903249467623481102366632137459757593465077112845063276595388644562122740218922460165592994594419077894279950809784761891116677411679253603345316875544818448314210230591565804756878456871539945592628542569242917476371278698988149122358463226910164042745776845588894537450215512924654322606978801375993100244713558652564562499994248411858593062899503668920068718770954620292699928209839370693864638142988802521608951049284353725598310547633866198632306186526837853651847512812865316372294547153941374120584635293577695870045018529023942336514101342313610931020997831935835576942442442785061858823271493782908114309966483874992509368845647855407728630195213870182185909885843835470796658912496307004883310723078836632086453021785067063855594420289724457691906712305868416908035804758696671185975150370857476064755587768645200281216456263851182850330083276546494146605464033600456460308012469397772687668440577048473052726465507033216823209613339155660232213428546564233276420754512733578951888362010798682509708101032323980852702930828310651458811985630503820735156247095602098802363381099703151137494258365191076461609438460226427046709196758870203887907242418592874473573884016612411492215580984445046460380926341987370102685607076674736232412948648745207005106602769362490788186077464429005039758516453159475479288969331079287920655252807187516929338867567860484751323404400719755847919397868515203779206080006737193054958942132836848799499650672356590850791954293075655922605566976490382396447301895413317357786710005300774245302869052134384718435510586590175264508011829631215169448147974982008937896227935958320428338348485773684323851104202235982264474669619391073323754719042119143178983109992051309107812967012805013014968664323836875815577002873521559732815206646889724826057224561277002726023713800021898949727117452962108299143933868005706804773937777436653061324778324796781504087503465537168697856741753437117700523175543609569710995130284406478690848338811243073553295469864286588678191625758373847906352202959842034585111710361415952092634247941593573301489806674215559270256167658586174990823463906350525175597503506016688071435358474438796744258711840499820418541845134725402377629946797079186520467264130312954312236894389635721084755487123926344375270395443731795830152780934763302865739584955898100155537741217587705442106579823142237909986729607185169582800642794633499219684477057555332659056510730697304229084523264217160199635994807367906077242324134887961588889153799834004571039670467183754203866787947677101405620319658437380792577590486163345796309122931794120121599772167350016867125431072907580061908019759402935311102866265884146645639172106062254369875644828825516857386122446513522032082011204651042255209037200297803076754882942533386076272021191129503264272604937457167512984308600066804095594610367925911825536819046680642776480691896633852463322158929213406839663261688480372910683296935723814240236142934648924407017335394208480955070823207560504329778599542040927631345802997499920363255411452452601146888401704928210386141866910422857536359962862995262201007066048554750607895975125098237062460710407284493605969395542328097034708387799536196092691303046051831377109509036512096371843110049473094477597108607703435453627266532687770214922065894618687013347925363743789382250973932017119498245545922756038307143290197322389301459047923588007296658039489644464003173321769857908651299023579641430286917893790125352581710120195922892127305233129839001619667829240229010920710486054960873527276367504527674771298012317657247501607454019688791131795934326246971171112848801178137435737155330709839717299165545515383478496672797297123312688622516440494509958267816661505316490363144019380903069024580435451961906107410023665644536801252792470879808545672622602960399688027741193248145511187734086160137767219427842500350251169646611775413617751828334613185768829140159894111574024475759727814135890205872268012757310092070216235801982148364093561097649333794519943137939867032874226245213111748817547274860694736644037335115521744430329959047848611342905701296036011233585005577495088774464479544652749080381412840015360394753111530945127946069102326731080899504767921832743227460977506598719152126458966101988821996517647403739200061572104182413034604840128650179814015517832322820880854552330379860371775951477147589682855576958677476826512790731235829095198490175561837648839166461715652034885963858756749930484528286260741120695631679420594388993709776863654813074436127647112920069149800775814391461135073497653504705910750061526521786976254400513696686112194974788170679347744573818951974982326496536939025205550883779089755078827053346409589907846451089169901681067171755188286406158274389801974932663024028403969477057489395037968524328091143298443562543655386828067581227787457667058930765094330241841561064867150581556113591601655507777357213856978639692860813661863777884547071281639931788656595829460987216993896989582989686147793783484691245456557630488558066064619699471806896465172304754226763112664556019615782481160288911830513114205717806904664278661170765969507468946248370896681610405256276385367804777864654585572218984916375346635809115625678072777326744834602303056685809973734111828340370498635316259747120932069881733275640656348805837994555807538080043398462020176609682210317180738273258525333649712669334249384330333399583076786760928174655353518172133094459966005394650996209366258501709854746904165541897945463159669139446377599761813484571648637663754839567089803003738285550497207133160866927652875539471928012705906270138137313651417007625226931078829994142461665284065893973243557888031408058139015253168502666194056486792844960972193290920545380136720444297086250331730803069288295333777034866262398105596022504405628113852224131040488331490621158111618810789971835263522535258021409534289944514957862999431793711484719758966991926868172628968195034769166937575497991108194574281115540496274969110619362629761659320405338478785322080484874623815964279211697617877950978068415753216012303662126442440881748248665265937795936162383007323237944907589943330982206585871365276272958225711293974127271045117117344785319509235628796897130727213963396399461215702259896191084588358466569737539980952258467696339738318356363176868766542702407721625719074511249108576995283346351204323000653992690245798526737686049167867796979458898218639358835596855779595784374603501861126215364346383454274501296005474204244356199418306875986747759143138642222190992092823850825788139168535168056125981093449838134741601045653518865282713298510556883405252220858055316917671887458368155976473977559018017974414606804661162849171258592082594589005153182483369797362351279018970266620782360267515558506285013720756187422962888631813007795682312739201672427254262379355823440733713878261808849222298463254324943805115646759258657231128509274307514169542383191657721277652408590762230408453229082922374833497578747719054192043247061655294316905454626902648529829242801791828490408019210832657501432582387393447138262767744024122859446406477369866075267722631971865459430386764946546589853674424878272910969514164427988894189084796076517681415417419315640548098834947883957990440392796794677046314666210090782903090075466937584804310393021155988624222663689071636057095477951525207289131035391662634593837483321636136474985710933774193841261522385295187091718344978596118131196022476136992996844539692742718003261686450154331409093484389930180030397637338897471979209574619089842631870098659631424834525709215124486698330896065387255385322698833827884885581538646932621483913743454345240727209895626070399621298356808014419163724476277660821382253385084924472352914869857502773489745527065464200542906086204181567927468302910345950167866490103970661300254343722005607577252657106715751422233597035095131923795644134161441293069346426078858449761552934217054854161597695807195733324230565647379465168351635539484206255585596325782728015131376757589721464243556581842885608067244999934934981926874030558869047474081294783793820424200118216409101233670626074044452561147270433203550857651594802580214323735155258367687446029250498750691626931718310362464545983006584399701582695310499678302211153956444101995767181989515539789430274387824376409691330964369603058075909186411428996227143712905310895117229646579519339236025386301162751237193141911517237556442336627738536198237796896329168915187138592834307359474989125932233068349643161876203131935640681698215735199375690894963572768372078405248595312890764142534273113972858343240741251322389261987107538490748409963433589061556460488826006808009107151794562704490831090115672382410327404699591935509528991476035628715680298456519894906413396271928600430482631951625315828928261683269735490096917607944538088344171462316087325635835922541263796362559068258968187547519210121890641689889756002693467443761817638002637119013918993393068578614923406317058373316316987350852818493111146770505267137634281339333194940064647923777280754362632302609197026750581381956309204305433222909475842572281243122209310631851080119683452623341473646288212979301372155345148412207577937744313578272675094829834422738101603788042494217980754335050646464698692707609361296952087221988697197452278606664677317941745941692803479230096819512652257404386320913562301874798160267965039846594871313197526924232839807761338529282959151932101780724711150003762739805949401573006271885473453477386906958646904973545462810761904263287895349171493507981703271574840665327657605955407560507216303912170435625159614579742814609966383427064009547762049437217282056878129710965045756575904707108495240750844950696753629569819080890268869514280932789975594775939673509726669974182657211913637474951114945742942633809397716178672909521996430475388966965000522706695887676604800222115078169286571206135456886649045499773897486090176999425960512250043651658064256071026152381138320428102063860134994134829745667630440121676656942686939685864683213119755094092896342755135510206084308324768979328126062017197055791169928311455811527750235587549210435775180912194109594093776600241460241476032559592853613401876942321716148422970285870393270420697756289736980383918226451169956391044785281501246451517907741403608029444327501561542243678650747321440811049833418275574778884920289974660784695504016050967869078925312304326175561814555110654343306023646090235070428059233766466943026222100173865129013552453283060075498357527600659328500386469936177037149478633476475873506265877696648097609413812825383044340668796461415404560944128759206109803039598801804302493631079494989395208714651317690042867901761113958982729337648841556693560979374389643720667042750899708920946300830210813580610626910862005204435752951861282658018330275185767490099804941243074030237208284025395594432079619635817068849760049556887170872336705161431558245808620692128557317372079072386965845219512180086303805294065167295075690820929357344103764597945215449887161570179167710191986453275535674789722072403470879801241807837941623490102194429673739351884659456035450175501147656924351789642951570872689534577311049837280738715608172633584284619267933924001074913884240547184759162862933708915925281315525389496255615722843287319644721162609548143066408447157860668961070801138796992253497355187214822507851326014238794253843815907656519978387530393751354283035229857916134135522929687362051037096877621331477416037399047232276325483846259228361701220523208140842401258179163786689738824983795060508315523762420485747139835135431322421415499907040112688755115098233539764834126385052883965581977079519580380005071102248823006127327769328928988778293123216702410869162549755975041050177934101568108457497822976183061299922025119480832973339053001291364422164770872776720740049835950357649773880584497368944806166724098379973227758592893329375351824581594862780702243857295925858016726098862827757135588221949838118670767390916928163449976014987179083300817409776944742507853938230905742452703371734980715235186441249091998272159002289895669558554438265719397608502171604668561464249028296147590092151532712837001009785076118685965638736421827560856562599633360309188702218342293151368585381527714036295360474602011296286077724058147793748937534757836271607412051690208163703737965214916258625643581747879145890516631074189659033420836071376320715251452741525930645768887896262651190927205750525269767747077245449981958430072738507568562482022830972326725941447612416539811015562671257127393168898594418090246462010593090815795179579919295024734829915123916343488774671927216109128830688825857155592412688566186587282078887963140304094014983222070556563226939306894407397506390745969638493832155065668711632006673085461358180885687528340926981345112140703066397591121513677813291404426441079853444684972989394384774139059934209450334309274172326371442759124644542780340020121229406959402072311630081158144008081272235001494401374194783818116429231754992646957328254161508321690113633249599803731743198564372488043984077692539491599221779194805686787270498316546164861422991484614890193753665540599179132329030397734165220672811748917232824385164564240433468254263963601193745910152377175535028937682559564853834773573232218979496022558636505461173241528808503243037398170125782492891022968999893039979733640767965163508324546011856724969886357042010986188857283606815651796034762095359701013768000970133839020149843824682278568318818930624081796566028282014598804800763767537557961465622707885485265823778400359497083365916107689048461381156956157852923090478191303860277700838752884700738433935208602132344631517252775685874918156556932003048692792325686320126694901769862199322228981332534452866943420903635832081120530538962369091673703817440211054955780369090260963860439193129943266702237084541222244236997277032783604684806900481243187474408231900433893419849676416440509030227718909877429976594824816870143969635654314573864598993009872280580572030137601679292846270299825518577035504856455788978719436178526081420040795609470233910705152880131065810678559668973969788600756488921687500355780856593238577734978061592328088815496844669431383138606778754326249024025165163413487990595033221339994905857703925301527573012711508723859863175684637566306889618556540199150887108104275953521957468218540227915906744497399286540624996834732598169902504432170594363575205665120855692609676555704462497243463086115356394704712501351351018277481937029264340530558466509672461738507879862800234733808583142553680254465680171858393781810571324382114638030019866977926239176638155679902506948650610065195195949562827287401191695129774924843213760755252527552987716211341659016971930197525527996035682776405362665643971225104813753191926602987276957622400371275832779634626544489734353090682631984190173496705922347730905826249765708237426716288099986112154743270859620020115511299523405289830600744655777365842962027740361714625588242860696634875633491869869558999668001577528956374410218911840694479321534415869159341168417066221625473161730714779369640089316401620796457239235937192394413374483670597161063831592120912075855482646423554462631680056532863817050008207430575321127174260617870266029192170371347199504577308239195952482120507454629185914032515322521209543151431456534198873596272360367263476884202496115302281078772642098101474824502808406143754837962654822823629861580986969243657569711134824056387493542857782403603797049921117732036027561320952070643241489029877924069997539751167447668074745516362316442078075054956355255947573507407304877067756851796192237493414711310272272064626854142750109518724730448767793039802334036254271027062060876795906473516124602193440770406053068050376186951289449666728800387903823965897928998775492839432066980831837000087138968534002311804942869994491509166852793776768880544845184590070425948935147475983795509425798251627803820181463807649343464329442844331887612114279997771040224961731793826224962530493035927537892201675769255172553150212646797570886595906806304713388024111002202820680679676762766131335678538576603116422414712914767445042071213242082587679442316661172691915539885153441591772525153609425904262211095123276661818533488090135344055931584426108467769351915713992003214419709038642756318270039646414032722526890939588939033151419228101610053752050213099458962930132563087500745230332837937175146780209322058135730277122331331021746433958711291160739349980188939303095403265863553926181753629049828863163517433802777646610300062682499660213357164043611975599944838354516946426755441426573703735598793164903345198911177756824231721211526410527834138013388544216928314039097321587720249321294994975364758040028903943745748333069450887644711979086674539344137027977178776177531055546673133496923772164755947796348890362584692566594154084186368176239209678792297013729840802417146696040455050674878575677135182451386050051256575945195975228252706309506708359376901636507616229884913245201050785532919633837078894182904011520506436724376153674971969827387259870095419498847108864568213860225260909825178223819681494803433598951504282095619929088234434412321780771409627179229738121007935427842510661563329681873743034455210825121342447431487319275164240853482334034593121413472623348030760930306614588192336844627560614200654788222309998952728411670400349291343291127776674017893202375722126156550109689481245312586370382160927417040245812550738848666498509571246192605492360432710542047003206484172904602601129985308918520570741186880475639912502951922804488717039838892159882021943373731364157294355734632130838351505967682429747023707753898599692535605010413849053407600336899052461727718297335305481093089821045733526135895450726855435104655196856426331250244022282864162883806611674412185972223697577111241841469253618381938684335986918657029496708296519857982538656371721338630277874889462699728580853950969169070009385779074808539347452924831280388515902385777607343091895288565925521042415708872497900180495570359860324866715373623536409182834309318768707234941231474251383086540181087934242084090826312413167206429542139558688208774093986478429458568066619874324992416516142339432868119264396457160437563030044221794232211986564292300710155559867558387920585101044655652042877010111642923715330086878801619103146676091641106641221056534541709033574536294641769005067869357355311597295152256926371639834352752216135692591781149144730526885642822652965207039148491410492178381095887713102030137986052161520282929290351208645171186916025898244229531656070176948513780477216865865638430413694585284474209290642860089098052223755527119791659463510679653504770349492396421493330251671582782502872451966171133113359912839387366179305004386004617935966026604752474016095613838919939846401715087025982791225782856322025777085855084296133922146901690644527143990829640411487090661991508595702400138190524784640672003074883248502951069060553801632336643801688768484139350464813620431071307928198361539521717153605842569870137049218219926589215274370955920350752495303229633981777869954948472525192404780298273114340924252006448956714627614558291421029256735122684383455656354177280963876040942687828053054710533323815690424943551759544194473788757434379013235804489052821214999393294752786718372772002855444794176832275890812469447171719774085064591140261300654058902774233051421908031461616211720523761927154758322488034694820879367488199049495270761234413163811752921066027568972569392395585288822681396154444213813372505158478839932870651966919320742381269935781647992899170708261663751978456741444083904524110989787141876798124061913616672482662175849617601124546490408277890623382213533122858682173231001836636521985995616236607429798540881688423266648628919877068999458435163337548091195227410161830755768995548800436127335747646753967314768191557847748748862808537964552771132174001829832256188936092968333193273659815573652653248395923529701672231181385652673516771080015614994680136814310033222681312528316006843951582123369221886271311304992142652249691189229241648776442107815231983295549744578701381328954973139859236326558677115275731953565443603443342629036227355247738264841751688956557153533201985873516945763928294378611283148561917696911042148129445687618756719017411318516517582229681679764128596476486781081394158287763768597996556459988347489489905521720880220395929932111314821283505449648005608365274202032681385812473766901926414400791374269771492690912541234488043779484080840162775815870305968675370602890455305952769135132660388783236572627066907976067182038905810475998663231390027846119707093939309140626643089885636137909342208581833319593537629782323447769166772213684907179287203501906679256055074733649221873252340436327917857325512888569346620660753211714075525658565246361376079448494869361388015676379122228786794002788214777167394819103195132185465881463347276339039170131459734055875866849672009912676234614027285551290375794907818050667488221315552065904633953895820993697343502295307055898063703791477684387835059644578883523800680635318839181395274157682806571492921426564459718355318754150435701950778151517306401990372095530603299897390517427388754860166488317707298937777723914691842643770038770912856385710577322045061761143041716239277049571776605405685187265472171775205842434334237835870973911940143493331713015498750957024298627512628768849073152884261011351595057206299679178507037387903442356896850164841196792734437570380339916025661335651706441945774156042711354292118053226992568507803943517030331740941531489790852013711978718530912865214658486920143945635328978783968430017139660904626152616832591931014590165748047089758203632978774290548760303248915759907156551661399672714012851385789764041349809613353072602536327193023664194667323787526741661160921655962181249856785688637516154814847360611290723880227567464097728078744465929718701369885608925589316282988091304132084877615282250737660828868301421835398645257991658336708041778207672739026309262421213839251477977533993972833909844724712835406921458347191333000153069713993575126240944993076371845336123831242403459975350484096370826318249040865024206151676944713835414066792391230467819039013675115668915227047314739689857116876205694099354762787452589053122141032359890521564661297666499937640624168217077624485892891281653751946194461005701142672035245896295064478033988045114242483963598030718887798187500100551648626726541222215502722881207186916454424140603709029025848947210944156820625233961809222984792579307553760873147048243342959751284100684427780272999734274372309149803967620023176382638606553412722156388564381073177139300362599134288512910482922695661167659588307437583364294409989421442405438416148185232211879788232585046180446540236895509789949560123650679768244891430730501586460981024520471232736484450032754821627545690716344653541732121957544484489948515341864496879685545656460066908853358734321748416632345135673649465389979301555677050247512766005283818579062403996532388452196359385253683098546651976709547988500626612653563111823879437420284417943682575105883412995889453475220535014988612485366864772338197161182426098710446194758883891001342404193874861655322656960530208481861696030022988511717291627534848943936918195611179204709005560991786721473085075982624279964759657608039964360360297748378370191291994178282957513038024892480887782911073090018444065405819686188725664628756593155887519493347921943461489684452014412456288784574239350170460293759892267207578979348497309352790548530117351154500689203254675988303698718142181096856505315345170965767719559894271259280387877008736576979680293489952870384296103868586428286382381990719734993885217129380385908035474224843759345122961907854674732117232692092792312370124107688741882056428873775429069985068082637708342246592068439975610480651591984317080287756372567424682159187256277658988274844494634039522234288626341508415538061417578124724052740318755777025383147273262195735705465933575144999210558942899498087322103619359553387046413878697933985031456225901983337141186572545612240872913759702588276129959664513861469172566144869538015796790600562124114628380849640646334372239890365532032252521421190983257078123884750736686504630455066852855310957660245881771783097270132461150841172926779134445596875841787238065107103148000153590972274715039811525257828099414496182690933496193056834503660169140999376218889417532027701998645254498955387344428168886693528657366773251337392331662152668290230798956139033381990783242733821574950842635904470068249621598743276342780458953104063185300322662796742325562281146946472995518360865081872578640490113813068473045749812188542246130478968704127490209683499743548613334303221798537613270189129506719590497449645392790764218031629387296679605271572812475562982875454767408821634433361321149390411710678135126695950652329458666028689002211121376433862927742296681150536133074678722932797570250409293673628441583170564803002460869025016038117302393069982282005766622685442949132757648494339617951314625852729562926915950699195416765015880734171848715198707946371919617843651175101800439904180916384428134412444104962712125367588144071431080009976753423094838180984506238999077243324157913571135147609574009760326747406370441834501891389063881518592702256996322026497573792839375308636638120436528805694318050383707448101634759302247064734283514495899116155776320604602408456565449682864219942281919498125509069357448359706139477839104817902488099848337048460611993820376644267792868414593233654514262848967619831718519191764572280890865358949485497837928353753395062337802335482131394357513250755090620360350187469973906326613982023455884406792692545127679303032953775004175312093745017039807874583378662388311268225847202740527843069278432292729856955601496189162186126432705707933236804008352751299397037722715137569132391676778985934826470995033707430959750333915949072941120999295201081228035461107967542595418423242314793808808186584338845775442630193224006455943643938473402365642329953344521144086202635390007336114488359957364986884554188644421799642463560833109152702151676172831902386317973249592440953375607868023879041184750081526447362526257461497997532132943488190746634154069981000246229701423875198051583378581229427930188374326123418224407658342914565738982274004259233390924435473242386931967241481361153470129837664501700803205684553663209034057781926172550037470629811329931879085181208848253011657449488804117649469837704764114980888276891958625066747340651831599518917402671348847326498229283457549793764328224568221170339597437371989396274470216074478156704625180842394209687654320412505207914769304309385134622643135279948186041251381061015746401428009002130023714597269292520174647219264124109683407894724456630353843963394057870751565566030021403909170961969779315516037029063605202802359292126303188874325224099158755897923913067500174575782513687682031076269303787825405281397707596616929147947848820685914168569500305853615638582272175754075652777595355272595142092025239552099835265982794335426298039835858181662622340151283407108492389544106547605465943958375022876339719767743588300469907814949839960632984154120503465435993689736941861372450671398421230019870660832241364532784845237740608476224902869819137698837038623326346670621526425117018451568520667092419047834447011225307971343183611276204376596480127083926883428839535725175631134571140086674814186800773107315168859165825962031866622677168793918222279968673295905608375244929228818715035370054403716089359787975540421883820723876521674430350385940111450900634204403848768708004672365478133210907241626805255755359176946543112178689972831229195478621928128595204542651830646107682181837192846622291121317781553064441325119680226360947619427821212961194667452858862385209035113763690568772815262670699541217517990546460151422017430468410155736078848079107827223220576583739777254789262666168495769852394172646566877400334831188039796116402611907759080710031062622618759039120584744812282040799069698972825219063150282278697673913309182038344898035915800308580223865519818473861212451298837395403539419547431270666986574031240442371054800252253468445579493726830358579340838743397951694154675182623536186136706380018410607723471923534683608788703846416772480346344042307114357517691460061772562798036254912296105264979497389064397230832221817104669156884499922445727811662547568033812196398803913464701218732677278306404995303326962271678198508868859994022117906192943918281740305467642778253231342951677880234572879580501307687413915096898564794461837824648366535141443676117855576442199382599145799991905651133485614070086085182600089228973217731707647879984498123854631944710242792948106489327038535751785707867891457447971933177632057745780124675777482642722700472669876125253624306993735666890471907467234470271847505562275078413099836893316504630123281290577366942788723235467901609324309690705059042048173656686285801785659360473283799379681874130080197732240848737092800276262140740194769467951938228525304467232412706697266913675843793806995848309265139753951554331726672527188058688031451273435253709447270479528756649576232296033005286164395353314715958281457287578283203761329355817621056075445695410555781184503775376967616050673900389377930179789063890409406509528694555176387345046693682434422573302449480229464644019948597832442673392458157136841390341653896459243548913114405530192548949186599898625809798296729615877666747318353723043881794431709753884611813985271974472880151869136267350376716519480703328321725531614572823645649249889204666905640197143696443393546552524406701078936360489248537174206149827890950166387558160488831845038826244017853547272777781984241360873848283761623004861808715407001932053796685665629206453653048203185255196721645575665875140271106978661689623685814557260561978165586297000932406060658334367132384278742204008277993986896362468092194605032604451228156423363077940848316935125018803380791756670015358924672742721339642166426960048533824296907721899070809215948726194493623301818349486397496461281164275901759769247362658215090107755096019152144105030298507811291263791697090598882123904803141879439722450776535763941876890964555187431998078687005131591337969300212737091879807175882256087171701035694170133818387524801786016314457128609055892348376894871566088287119145815917255035370306762637713922386454697973933126126379148907823190848227205988765942631722363058927523000276460527966387423091261331042056560868986609944611055475324038182499429377829157828262440648284216137638599690087690942807105629999631357085002875547192913608147505459816582914183148353779617564487301947097127436500006521013366707100729832478903949720054946562691834230921431269183652739311734223335258999793206105893484981155347875441870978272983032989949779571749751386650418448446941078457151042099570804454080338477793919608747624880898496240791657431067575945629076720850207243662358362512963948359181829623601554381524282627790268091290890128542379222515162104480148238623439920105723378448024485210206870049236360515618583230738342814793273356544069001239745276661257403778918780487062794807364154945894522477523968271480143356953311953529580259111980397871553177107462885872536973302477574979729913180397136564736945170853454858294086015291804186929678349091527659234173200485621942773413751396896736442924402684578629569132512963505014359799708308486093554875581021673131651496470183718166473165796479007762656558551584040397935537421110948344149122062006985760932168895092666851414593475866844040229005749474591865274071101365333475762043904203626007838672524038816261079942766227344115554317701542287329287830754164289808968988827391006095808433775850835860861953754849715996567426679416790133886306816412717616968611835114807477525489811042054686959373597996029037888363419186932224415238065228401406364700425579731414738807793786192654447959422503117522344921407699129859711524748983180315538734906741917038985534942474245325492063005936315430120479963112115218136640329900334376917647117708994127896803479024213403027402857682014490178696300254115791346200202701583332797960513811399729562007419250047729206756374199585800358682482752215561480275906312145887844005964644545690583318867005244109373096779330744416667848010775506050347309195422898282142262049648011657893282008264777510414431587753304440243703206201072643820444484845021554303132470937892411030405445988136125075386180649939674610604537338200707450233825445977992140151879877707419390838761191931902431187921668036842569329400925145530485691249473809592918890602530104404928384670471473416805280035546265319003315627251029107703786343086595962185327745652759941556729271024299943925110742551244059434466344917535634447082335809533501082815802836201042224996049336565272432087763849917189401337877073020263946477190865245541347694861898852187322718341666225649573489702252599580828335383970417749302501751457799326593280262564007307715633760580354766169850611198106651512449755673015457406008200026125364075028780996604140183106078448525419663184220878495227242371500443767226573912384042938256518122290363800047010369451676476701399302375019539662353842542914641467531429629772045116380782437817938059398861201013639226886595995577602303910868665970526684996784186968408506578657758679295151229586894450463544462596485116625024147128115050939789107027314380339324909023359836781926924415400452935079669474100747735675575779520343628010219343330395974166401437542232883249403554596689319330023825171019835426091950290210557917910755737913270508405039992146935675452364054881107649955794372579303445455768941879589444643974769028066992174788253193509294986709561259941108565547621284265684434428875175979417057073038988942965149958217546381967648733169753335327913366730544622742301415016120954183604742780414859001884581790569565359031820655638612051517504277523803673625995298127223153544757271949317393303913503541485169805743119034429181099800036116172460956370951793375314521538037125328133419677054510341054243890001806113066767164726591434866470070981762025465574555625777996714484500611724228664751895457060040483077298211415679868357846780073644076644880347811395156988816361096750835020051450920373959142402517180370046179907291805895971425474344216315003024655912407217167711114352340587988597961332250428666491471214578170345700445716502752074620739523001625156005800879785968479696387655807159711121048571491494791714522191222415233441423305069996087265652466401788817693903872729917422172841639567817190412749811749589254211335817447821390031113399381042992181263588092323977307098974610323933282089677380162105535855987449542022648620036186225417263840793895007841228279598665176006307453126587110061388068116460271653179414269151611345245172515319902538887884397654703918542409194246200153863450605293888673717616954427313418645241834655614229208337312764547137644999500524988668912031220337534408799679806811323168830826580260765736300584323437042017332336311358399325524733590296898801594363593000404677831755670838337739506869984329564221989040433043054294188729702605308288814572561051599552482074173341340535443667719224252234090390923988462314031385242526415145678432948839139546483704226178007310994545878433221053801036746299999038474573279968086125226840460222452047888558367606131872375019557778340939287975530298620579997766709243415530510779709152833863066513698243991116048790052336498541380743902964963892497448342441042159053349718309560433429763303611659686322381873967883379959050965534589780127658780736220305282464417841592423802565806316304089917685015277560780287705121018256123412084079201780859195812360820994228381823064520854186371012382647937331215279683221801208295484839312675971959780122025945577150156864911043002168624426321950027424029437167698523918888206254954500044555692597462110563649491921392006166002991292734939260050157466051547944761681499324893190302886583292562810371231702358386013509801436404241674975758031907428534342388477109046051072756161199743406451466444817809579993093403106435334169663858716622500124150810265859348642206653077055681247284248808720193785476190630756393018083931469979518010179435922666401000521524562153682126771391249474847203265373654429460984845936552603456805982831933041659762548685072485418987538613687133808862790462770962703934489573639631499855864714599654205641187653796909690815721295675700322320488682506723815142624462256308402490636552996254170322982223126924724715494715813070250493155170290983926664056526474758158771868220670230753366950892616189572580703151846078534756159857117422906080117225199825111127869921519693427978835668387795340400413478647259256832884874286026876942527227015313630606418478749844774684028188439522448257535734369762140985479276865920981810283906467157501533728307655730891662290246783232713697347304429147047920963235421144116787579507334977210460190827572058832686790309944052642529067463056620504297231493401560405351441226424798226862075723389654495595049518101268900512016194559529748139867623619782117513510270977184457598353368681289297220816251574471878700774734988999698519156992317885142530970854732025603081256036642544660067978122699163225428177226868322161267345003664418463190318811577567845867497601120770534725701665240689698366042765781172720895764796479548243398055751884901558257308273534589650247086727619731672040110932290028918888431563711115956155916322196861313333396858552826778433374759685265735057856421030051080071539092509562760826154310492096181005316886404509620795964635712227714270016417947548230757327191693918418327333848375326353211332140091376660122177998858079430830227021953395496980196786385545626072518699468761670000740904175734299723386268390877394404850007388650994255854973287457227928001279145750275344854721163569434397347470555028908292526631589404044830616317903190237356493734417751512402155649773593014023424414391625285769074879105804661308108875717007053844948129676503659988237882910544283809064598678960191289741886022114419642845247474350510426069891633989751703530176132801016518145339778286879041827290660147366607675585239816973242477150645927131829610644495489596416171880938508480421164479327305008432104579242219231143937392816645595380796772267812117547089598779114032772026199314686078023056564496955597828483602020074378580772435529458316024585828981060350031179499232039015881714163454150192723382239697901121698774231993377763597476223406617937102973775880920197066086851207060558641747304109011100360498663595805389176272840195579316340938424686925319996138312268891256201068711733191565177884247496430858063936572270850015212210140919112181527356471526191371902576575471309178057314824813841690574470948205938701082999639386900639060617057718202234757686724617470902856065965989919809210997367946483852323930207048613100232611087578544256546541427084284030838314809037938440572287283579832021489315541668871234254135202248197748104655593601338428430542057854443949771546317752626089170636425734877413578681977520217287346695342529875078665161433804374187446341856024371086602012110107817101429055787573125293490841094988973440480763543936032564892398341490658971324090517806081311717577572608751024918801607744834347660076523763723343813593488220127036048957164187519716767748742502351174372125866089502502012492779171306216739732758305225797958265874978052743964323013235546775641642822384321876609378913489608994518877467273501376338702644942419520539779039985240968981084118521387910950799383277856215884655449557186923962197724883036103966220970633008828404892635342650819726612899635087791859818161033937713464212359100933883426381967154583893228563608373284756334674144555157532610039051351283359845488602594712246058764909612734055569435458697902376651549646994127081312988520553079916100642434957415077681660439150352252374699177017104078571074109355428106713750296143752900039587096188051660366609705887174078050775179680207419371243204444284786657974358871131484098766657686325704338377100436221606066234765037203011440248118156334304391221551412697310079441741149788439570183861466094325460563962993301163787074129703322876938316061186151106002145092482572817761077305061467243643864398828957257187399221964679571631267432270450480825084267683806523725529942445664156265923727881153517248684278977900663244347528321765366919687413687428233614359195475423819553334860111615564006955910298732834252634173208678223807513669216737107362798099082751405164360463759768540691173852563370075361312499917295933260266270992535621247712614124265423523358917817871488128144702494688103926059854303675356612389323746167511449019120516442491157596460783295585529316746033536486645322258861585233551965122341641485959231913934897097251819042903659798672305917138750016975343690380914417967331969989488412023836687986915599736645741976050547368713792520870952706076582969401380212573969537662750172492031599953238904309766920487257730451260638313631504165095092992406434918709292778254770326704215574787998772097884296040719660072474843326911925827779794031192585734589600728215167427978923737944013478978685261122857749365121407415547194778572908956808664267479222233748335318547414354930336183948011584701614601204157068445377928985508355308480293210925580237618552144147447730627501451125992048019017035029963655652242676729045269298030482202838384836278558772742880799283592745320660962522679853964364704817872147119719037839841741262530628095577144886716406934319966459724217150558824365889418270423957495806878543517613751489510134985461852569637320502390875014338811789556923890813821813189625086188416993022525098496973646307154761293887835166522169758377997744103587719097126897837089818718566152179503644258805055468373458670005668090380445378990253663030899274836198209272533642682586140184882997120901419752065433110985704736052754107381934861076802192336037744125154996852816470281154071330736223779276047523728356987026349381012272571243449105697976173207347235999832795931006190601458609622360466057580385283078070196015232987197419573505447918393546443380235533490530330848557015029048207080565324495979531668552455248044592863639868264709289352640822265641073534769480983480237384066059318386873132995798239005726219472843113319018887641716148332451012492419927696508052226612907058364793652787182065465223103619425330882248941118835550102170834937965400982951261384843747888607056357753862067636963473339352144099682978363694084950697430318557251413412799182420722111787599361233546255988329602322580375360494202820259780625749916901199553139785310529217525492740631853376957939301225968637384595218921943165496071947236181816878978487873739012452101438694869126294335549877230572185726166487781406918424200434063819517137210531209714653290164083947119333122561688050103803658055818587293459191144818978910173216927409134163262449827648370313155772371322038078018285034027531503048633397027206040055891055960682825448613205856477306879771808853188783426546358240432801514779906607460997983430545629646756923665545281919686345641214850941556825238429181750273604985589959996335529390447039633595554557719801532462572188379628470272815161604248749694684482268357824787963708956006357428622631032080687837163381102588621271151171884477873145126884667578374261710505126944389695420530542313423770815884131417764010143756178972778757622595144832003168895003887514443254034232866881152900681955227408253358715907749643839257759508014861572502407705069668042149503340633073469957961145929016134337043868382057276384365143427887104107423778556401779377348554284766860429040959970850536279306729490714249674273202940863422960984515033475253163053388020886722332339356413136856225245756692842170882799660488504977854258309582302222346318845518664382007471544704964651985068584619721642924482497899497379402533852228074617851878511141835486594846620120972550415361648241936983159684913443021213335567370462583857108336078796998542722825771112862437430659353337572288349166677924570788146908493147839724725722452199669175212156548222880066487327014313447699471821807393608919338278092224461253410615507054689475093268845948460502522713286713199169983762085329288661473814366470035677154652652042650248605377468100723043448170566795765632836031663261085770108105592683917091610173179942050617876176800523230459902191834927375828224084143250300701534677538412304755069288554057044738093872521440263799316913876951816529837652202086214218843822533092896902806241948130771105092144687611363696583972649532339862785402722218591258473908093960336789901359423400625111825566744222024832152584541501351586361133422477805881652651746260772265897256023666836865519091149697719771583017848881320836723242825047524799988275155760230585870288919636429651672425958461142797866137248637300114896169347197407639436797014483181843861946794187634675989146379668669659375527034259487878116673127479226327262273358033401817010924592114693285601443886723176599996741971375592654855027989756438317485574012724622433103064723287709639709923360752275429425933922494472665335732843392758329949826764173003120572459427342649411828440448040679397857098797520495061233159400677230627953685822901175479008124496092947833178983784272530090035238369802820648537007263995096332051216517636494163306603891794307574966964892204030175940475727179856954236132771287642425461427736377881419243447775479421124439923269001543988572604329421772824645969881139163146069804075667454752200306772226795445493986245905568203491750315204433198293016361896959087800219791657735512362469128583199094355873877015814389541506266356309392279910953485194793745108160745440499519481239897895721124963138775643245838367787315888941534256167439814862920028057872983993247662170744192605267030024075245518937873848859684992289706562155422754130169185835174254326778291616218986074440514726931411079536380932689395940435515715498642568780511194892290638387874453361530051591006952608986590100951561322072169038678720568768447570571973936718822860734133711738091903977468724842666790913102838414393169860680791869544068830960976538973184859817453433467521716951804855147653196935874939930424857552126119726769960430965289028192975504712691455682277238920095097168945820346428020816023063275475915858118202620712614607272212870336032115134366617745317087487737141557828386654689549304849117244321581277520584164030679381115472671859828947683632688399447764878404962268482298277320810356243016647612616478051237247855142178747470721031285203862813529646339203328533211875816851424515701738223202828241692134091208171017928640355498147819695772920494744859312232086491732133768475425471986375120163988138811905359189216699157635683635074111708406640595866101343540576302212514868240102030675131073816243122706760725307361135295416885024677560280987012633274117826511726152841200224000719064281336691243668339809217372021730893157702139958787069591488017817749658680821571845310371091539068278571807879287115308799605606585334517222142652611778744495967555879731288288603009299007057114253963954820973024889105634450710505675409771513297882699245122879751683198639403313402654412048462148028112861939771330559933164796820373857357310363119362980098075220801910970103072864712723302610254652973665954460103360724645735830713513143151100546284166890329960042163733594777513972999200105020606802489319066564780994001036069604998233402397500810781183214077927712201011984329136541832500403356762963948155933507123250077643963888219025918480296477819466808918998856533779106495730676834150790622933600504633727958897168475763416338091700274275247248256486746278554257259863461748986292076544785810379492246544554474392487514266160444462067432535968944292370914881980389234073827179716575503630843314338568027497544616567221477229710295694702118837412243859776541518462849496263962880934582923265913120148610118909245332210508794015183629194099128264551483269030488332632668242013575501961827662359921327689766285719692629625205332248987664724215803423555499086842367879937789053652332729953074431730630665945955697678073229573992177198082600688305764032637563683488206691387713737175617720867532500769934032490068302607304823215174927335363394534838329101158928362044389144434059019004756655342277695458966667652487439993706114740368241520893169214181196348217977330863816100645468119302693653628815542404447608088273422013771231171114841242027335015692783978301384453485634860914512924878790385193043836007720665747861952311133503780049658882554491134884318764060846318180785122088799165195018877718827238239218133310946337719689333374940627481101275581711960980295106733600670473410745040973628160842443691230422594448357480987829882334809805269679532886848883807765763326529074909636095636747448591237828087140302178506428439108435762572316327021931894443984692545650676739698348571396862640190445917566380367218396658584532029011870616857066947262869302069849249871207237810075873674085538053022089793710356413717293245891572727558792322667003214996216288471124104479530663203457066521940111526619637883072570012993408706580360020568160235889538383932990479989198155263272234665675215275762158080816172072968463371136238117464254432837588241167661264154992397996160978905152147781233751678085234510499583253562063336470207143293273532869753837209980895373598950749439453739830745050139519512892426549315522368124714756266423368206776754935142900362185070589013408133196315851888607614856466321115415094705180523062682460484762605241611652524413836740536985394668346397239273187455192256441650852678763586345040993394612190699313276116903637627022355122085991403296653825448885442494588411545713736942759486796753876892842719877213246327259870128731494134483490409705168083677659944652716548029185445119745244331910901123061987207344162554855850128509369041733256971257439335325424806022845200244902271731943286115180292275397721854125348501874686391382168137209384942421432383474213452820729379333463082470050897208644030826669917559324034183483952163281483133690669737136592899161591342586496925828369714495924963321209503583675362488988063269819573617133963260538359374985861176637578508927397818726657535919983696240253243360636714704938704143509416499263839917173469912189577941724669568049474276340745440331981055630042111944680966301551691202816699201402007782982161439686019988109051365245651080335529985705673560942761248469663413285841845663831888309449375320347704244604163192226020976252101176805615038049023660033273618599430851333123292268826888281229409276627221998627578565185255609977819925672912924839256405590006452736968998327227053729078236847129610696346544446196469877296296683669543537864595780810244981971824040253250262894730733664375776080357515779055811551347833203123926416045634710282815939311878594163481530797401410207839850416985110089170989821445304315098293487402808633748717498913725556375617573072951058151555402124870072905303438600468772030147418769358926926704552917904642994076982189056290922431641745800738525587522222676626458483809714333872272270793451824497265049859579596757577578057589761632996155027149611373246962169333996040673367156448505686390981222403150566173906519274218379447304605112042798573675315978001148716149435171245942250155485309442167673398523142271261343091943319659241778133989263199888070351832888011158890321479092255828329711481901784259963451455976095197736501897959901995920192661745593062843900601688027228948724564582739529885354563158327873096797910242609148321876031909448805599576159440316351511922512719621234783927547667070187053642401345402423859224105306776894394484874900568417205904413758923229673091465787853370889613060862941846897395539587413649468419019750269078978739197389095602945937956575523345312825600138037287660954641117044000790322182158568197624210365932494498544919252754863254790990584320952828636945922753246547853088589042711346092669418416832280254612364718600015959788538171430637069599874299944663501488637192013866578775079969130281630108683872220960084615871481118968241214151788216134095193855749008686899581545767822122689813213925847672547797106030265034620271079983747880891562347717521779443806051228802662998464905939541703257000074116430567980281051846595285179772743657023666853751360905430410902025933686938373862164863356861619342924773571229381084133705055965490005181311261624033011209727185956059107667321074228975835562611602408573261287825149303132400451220536978881798039426946082231183929485698379826015954726967974040686524439837955720824924750402331191821783600986316958724199854349704062931526039436428956864983457934034787910755314397256108586561348291118933537600847778115310064981871220335661847751629565435815607893399708511711289987487093257308341874506305533242700884277322242718260269597688850892034455365889578113210381883374186884404365991715938314538845719502425030992960501475825532149022164347548879910634917601047355195043368491159231952727748803321806734537422287182338425093438636814501511806516160515380023270188218398372578207543451591991940070441034076571198346871843877527851341085855845322676060397843125388661671431864897939154538625913537555418920686943054180731990152690901189112645946189274558980525616883858990253762955741899211016153512837868175981732436493514903808688830147593185256628839530270157792961565194099938929669273151631359428989451593399413188607341150131034052184897288018106634725700443525346075554955537326969082761413112825032837471468494460226095439672551323719279542476666714593558997300878672304566376977962488964113048717892414044705359205612180961369343253404559738614532173077200469710513922341360478720680113301553152919293843132690851330623362316230821764684256711787566106902027162626124038417219794954992483232341180153875951019137066091802613213230984848020884172252918494935834738679851929086816355264150624637473767559655758487170805343021112026886044656297794648748970180485507215355810981915285282216435695642197518441857311685970164587173992331260824897629037303132332698019221967779831300346059932214860139982507566748347244229301950872982862185694160474578600908540211239602527908974526630458600441978593675691037585558492536029865645365168891949011290040373940586201295571323510919818777556033848107550293165804958499867927785098814755067694493705669587819164113130567963155951052930449264515156355074059535697467411752984111170921537910755448937057971560512231395807142559293298687450829343253795167789309006509024888094448097991939318392818683511850410467860962067053852510113805392826677252811976251698187989153145085203543113379871002726745195584793957546006902044548708155616477204006492504138043672070565281333372887067163544015685099789284057467942083879266783654797079103497698992641415634677857713936173573733102980706299244437552261499444213636614931772934642112582160589518849317684501641892051823799257507918339222261128098442871231725028482105646562621645133600414216549827825072945602720882384708525301783416971598116500557114077272323138139674661721595507042939136070777986252992741166471399513952621465034567719834070902401789421662879657486683762761961838812732502184363619275223206592101082376178182344820208116081096621145508990008264742111218541269309854997962040249921270270761428004706047913292777231584883906284943093172329438793846202781615508363291187538620385584574680509609303540635236264428454951657870257915097723705915770648706318981575368833030714891053495578667782413570834005483529754118214344409510999448105673893151588900814919570105525813599602799191533443506350818170568921247374270002486972963452848338396060116382646779669487844729826575142855293679111774265790967018597551474091647041873305392522033877723218208234989909414752789687528850825989313962661861463681009615212277926994027815887857801436581104235281768105271141895052135905662694979658729136074421488908890021906281858281367901769318091075226933416008212545720940760169472962388900723759512995321409149715540450433849761884356271691327462678328346580293055071799988862467272303585269904850410025001245481936259828404254667408392199963488894618376867212085121841757091035344122290921556412375413497221554200977621937418040786839039978186265606280977230364081305468137595407368043183301286129158528806247914864231782112365492720347043492089218292364938681653536972527492510537422769125700071160827560048537238548834567698215368433634845710895423184518950618209178342366150621064938098421718465957982524856382466482936688230350962630487447230094867153703843587618792843635381112292865694218199754445566400893044838134125065107735749473942431606439401496697597111301488131797179237418126451574809812340940506882267566118847759363722624876996197201843839881441561746406546738612948445278412151127033199409561344786713930801564798702504282134064619405406167271130695614749673127179055382037105329440464420769042807849769807120117638077453793672934879667263668741986531940139006181581108799458161494927145183416215223856253649900795875562059801869892961057477458039823854483318688855316799754343845351096186208422227464201194363669253389475731887787342023811049337687593058324511800260909824418769733328466356805366661428705056320835635760591738021585242973757520256475133616571180683242174330027650667007974887583087269467457259148622899180095181806097206750749008831007612643921180481308796945926570019931870292493765568703782828515514661549271021327477105169100966433529024832318182846500978783881165001407787893139149949723865823624470357958784426701273821551192624886194962654898394910947413550727207319097988165874701091415731172322780071005784911495725122966356244190579099228637105211475329869354377572173117621904014035255289555748138172460640701242961785321829888128034122995541411012829053973729162411359424195670167906675222690260801681101018683814751819154598658925412776738622969244748234741343903302616074100057097440980946241226868630762152061817656553546559836847146044206166607112983073538744359991780023364495374687028631700049440311425308302524276281309134474096466801050811328268535053875262000850410070890873065251710520425321610050147764461736449386660303709230083576663182072151107714795421233081019545346698273164445654921163041753778215309226023726633443871667908830421205538522863645813286920452242214121521856215089824436122799592352583316206882911817948968440460347433806420079782591015879194858239432129876384083388247646390595727424867096825552704313271201407007557555577995693508991771226863084682286547442931901224776679227076351571481657800422348325430303908992777762860777215128336585467908047957464375227276184532833277627121488012231707619666327507571046854517845862032803889704820714380137941748162480399178445308352010033981903630550499074788504689291051244018433376873288052543991938488624194832747973316613242676460815508136083135536831575318106118090471028631604038108708714392174701351931138692652273477744436587487663265109057584655961767470692011074208342482018194737003648340037683134039693816708004535519610740151443610786830185431353638586509625272237487322653440842949644889004036309975407843885735719551034515299874447900299984960247231746025207591583494211540453790460044974039990410071470669837626365879850109962007738218713030115630560976857682878914408211697227311650296134706784813741029676347683136214329701995018564751922207978524979918375640473517960617677152533125970419829811611281924233834623908829063162589147304335701926220212057257160023973158953414456735341751144840659979578502945706426602492954691867953463879065948095982465723077690996915678959189416955596421553613706153264988225532363247647926896593836339252537356755164990034657933521305229331106848092993235518074341867996768670350204878025725311297241070710894734726189268248110357975253787769395694256232525364558586703851560125665371109074730660477560819011882844609989776790731240835864158925974757627958968747043389861756617073006282077186170575033090869150820243503999015444492377469043416709210365566388028962327578682121608005488343862469395825139689336192886717729872972298078656266471028594841997906124729364128551601846745554624371453458241818553843582718330671220967232207075287468661257374701544046303005298943418575402404399295750993483127295722649384645655170828994594855302403370713333690818628250612062309769677969113764858820880402964021512203038284756073867482401593048080647926930808772784000066394622374077622910024916338388742485020286560111616032607948751817396870521200553573314527475726369680456896566767906209184625871569960202109199804903985669511038268599930957085739022900393581792890989327161604831351214495870176198856338564124139892258780708307992140848436148744564642448867220022602525735876284075912768580508648127298595668120494864854352583111031851095512324457086016633607034564575707195723903887185254040951759406992692535860386695586130866452354470973534211362307266907121620330725965997334133854689374084858344170880442955639101584000586280240749844206397227211343530167968694353221644385644136416884581077057358906864441308064167004002707404646152716093799897933625274952664341231899826006790684022984680655039717461790193327046946148462650497041378809232118940745854229145284082139586592142830137297612755039858458088675117926101916960836661011371071920546089892792057528040169263325166399006470002860265621362024364258128262613986787200168352423340342248812522897298944190015065076069595246438967961969896910359006750154241364036107494012753333122351281778575859436749871458462060381632532103915314023670283021773863366829837351693674815595678190066585200907765641760474850167498244069255001857383625229938844965843571916139471019726544094086649339343294709014526115763527314470787226057845222798060886480499642532003215426862767665599181033671320979760483707916509920063270852626358483214290528497804687077333484844723303740235252023288672776612965404925864723471636634937347675177948166891494212174836516782995732811892663576560151667230919102482595287613649772203044622470017716235242555346653639006394724132738111649223426634679890277223973121945932445998569723459226885715602742410021322184621422264218409163162609659321502644386896761421364621135202658789102194158066703370854585247616970437493537859546643405888146428233328129544604135634579220104926336039227606038417813446081127486449402029414359118653194406834898468407191381505173741417119547032558056653442823496116413113452552231107278505275693026136579269345601649585216902600659615009725815095276939174392738712721116248749613845039000795969303471856498483198680368177194634566392803428834518689687231545302004445217524016327316048963642668013189332983994936799347268177268772981533224479211077397915337972569660833947210303275595070193525501271638107507441255033268449494913586563706444860533906179438500065994715371303869344512263388056490097675103190484380718455016065852559613454938917008994305951790364815780172972344325290690597923007729021576545505938099073816477349815796961017884678298388669018012762591155665803852627376655494808822102564088355037624468842790019400877766912127043194108245727315592726463908271670247785651133173928132472429767056293753170331188530356985438332845732923109115258192986107561543946263560156626455794212233626743468888434543485994870028178168130449606775867038119518893088336029306585281487814406903670957317823621544719923595091528872083791764335238147162275653757250534386586072892033916607748907138918963331291270156569699610267584457822013717694697574590287247132722869285271885572442746650231130765382027554247533913289371395743198153050218047320145826372270652107376619331912272305537816647107010427163241929735536338526280854141049576097459066944235095766737178127055984398978833067360181189196552723371501364530622447170789979433639448579732780914601278513226533908169505426076398571238565147103641838674853356139424260885258382691951599853400158391746615021947826812341111783245099221279890358635671639681417558817458587004077456737106821097923527518606419767816938516829751609584160645260263907029223837008156834969163729075509686822368543112361226823488210124698778553122993629998009970905242392721134579003357898655389370698006818000854686909866577114107595423224857728800753878662548352480826143532539446188039383406405768881999324022827721442742502523737307638361762354403141384200315135157874797733388657723217742588617543429102712478031871306878101638078834714026844902865252524707674211006323596375238923241795963394333496078796364415644567579615795387476146832365388244227138359943318760155677909401699609659978426183019485372853412247883859127362621047921748821877087871226471837518760488076065007690098495960346823951983791196757679612500446401484907051853495208090078064396942494704759368464296058954253164228477732786867232981285289551864483011657705824051547870251128562929053264361381325010046559441669863289559145321882876026116205190445853271263630696357777916386086962785862442151090286540066843892751837997066961637825541537385842522479616789694981139047236635274975577064161154974884259720383623335216901300159239900796916479653891923572222176610935034345122960683407939219259505980301895403742530779552136856126940384953647227241457207068703193597466577351813636578048393203609849189370248752685107217662957720581650076714131536460199656213611055522049751069238918936086290444410782987908767499082824424780636580388115676252003354027607491034658303467301574803803726869150521727742473148939057534877062238924429365383864632490648750218681263636002801544337194645317757872903590732690826247202949225139835437322406771266892651915183917943180399613913859174423854785253230611653775179646414214286982964943120968041721090479107225034830519469535497563340940496709121188038492666168694063374834854888852634416870872116208199655593608650354338920409053466044959814776834535171969902746694942798978538224970799304383981719261498177236808271986502799383899032751621144138270286227203722205148481820462772911513391066012888897052601546026746759480552728066301096380566843313023548010607515942958846306204541704567923436207367560885519586915771977858488531783049622605935133697008511576985598895104453919616122867342428773233330467882735209557755693069451918837269755495034471551764532539670884131454633956461784110656168882346282762375683288596910536034534144006394753750274977540640643438815918018369631860606898922991936302776862031547202344272365971942797580754564273263114050244038781907488421152581384305682228147672786011275455593467020977200512749636272274270428216062791345358035600315785058186584463269318730481981506360017087602177715311259284748996486544013295880512432649999109739583042798097608422190500906043097023653944738957528478323306638353339475183643330725324518014087403909556169599136678837082840557657812292091735400007833602763010508194072211431045409243844222156847777414443277250769429766747224798089147088396918648493204558789550768263062683077797541551424697400062969051673795871742517240434929893157422145332347874563643497158268458740566440679327339745471942594750539847948117003878606957504820532257786167862932765090473227440938018415671417009922579126748972832971560877188560171648400881634650291025108036524569687015163242485623422187820708391263735030354840846309402300355106918735611839637780149867144411154879188656794794840916931407686522282326589705121072325229732650678623964220625706416976417028919755127986660865527430971992864141456100457629484082542020266432614319880034533310908642080337118899246737074357977783610614504521586656202811511342950896469530449602654633016398924059050996879955556268983383367952996216768151422169181897807965997523602032887098324153294488082034002192116497877202247174579905073141909580200742782701223655066288110586912525741659581940620812301450840377482385673911441007971441227790409498854517426370079633165098923184914869021964102710755008281728664581978344187364864686065163670001092547739044904047445606059312070156134279780665490125921021438269328578916990758346264100959912364112542525227661673018804474968837672672775044737755893391508924814211121493354864841357932140351102796838570570210193076922527263712417658152268730412765450707247270031652342770311737958223773461687371439444183233751248251794874335814875487955361304800490492046005099732155286727028228498157809886630159601536480130301947741095273043926425352681667894829267357304358137720113193767111568831416575234059405220934426212117072507312582129144699314183484334033023356020469933807291937453390067836441957146389834908140169592238657361807029372785601617464398745714464128392175774557532144892680427381717763658523661358186440079515496729081921668818165748240726808164567351955484580885082123364010694770574093361973805990393785966040224431919191850508289237627031395795851120233322618145372897404908217637088369341286276843864118627858442252726030700413787695656896250063687205221848816242622741449130230461609483029896277685873893575694782561478360786502644327891527434902030797050002848605564099594156524559611926792386208898675727531715760898302790524668485033270222640702763996089563323151077522649230601551863018481992274683866631331577057127915638760384260552467923259224615659647758988793075306445079368885886234643837261131633297319519072961968476862578311834924077048052519316772961056558113195162944233869582102283647999346745447874259824498551743085492958647712576536651114827362565711185285127065550909302833664458644321380123472774396677273975337730781603985459513156837225031690212339423526165214931863422259661859504606373227012842026562798611585539405969531050620066167839756699732971206149772813905849511067351062614274967677520104657123270173508573965179519523222053456748549998636536265276959760694531364437731185631657177084965150592240163900947595059633602040021573945305716831196962610077442842092247446270864609141522640472461179147935094817162449944252360134453883764734577421950033045780892153704724376554223168480159892597578556683348305065420931526876739179878844121831013070994132231992708885607101336777851420973990858943111782159330847668434218983876638322139508978035244426418337323565642853509018424211158147116294305036711145711468390028841564352149003330922546908825642823967036875177067826545350162195908187458435909518259496101622189088490915892903049208218072765078037224427287983632642471401454736997298106283135472617077755497770973991113829812175457488772476307799671031456817500501371200270271741809756980855338025437751527093226401400214643130164806478051224444236086743564763342286809654945237871218513134448565443342113350939472005202388821291211309985011020922746067234322089730401260287260634858854366916391292523472799604090203307119112168911191204018235831303612002846436103048632307762286638375771922616587986146484699140450939355447368760935038802805377887629311584368782844434001301193965537729997551061138167577171279493348662155620625018045905613886935043255513046826313476043470539778943808430382991271245523641297570112278422101469108750701201979124764949541199136418105890233536216694806859149615619115290363219908252532000645525308825684434342467729638831671314442626693161599146828872397995676929024990603091146564626749262850475175757880923653504449625671684246252976324966387453785924258963341394437465347959374690201274648321239610151808933687397512696222714098575762847922079276667905300085437816362324412834543645227189071019728341533563461195293000324225121552902427234942969425575065722350864385526561028263728275404953814188001926439476776366287713990689350958011843334052731121613600991349354555614670623030942338867179300523795696202066951379107100001180177427113790195126970188700341304085039349599905142962657579135040588866316046051938863978357521896723782097529641012633438619334711012140850091094796417888921814543277759287760493881965083698309540961628846903838373237012468419192828534396888611621788686570533010463846891436466338972320198634967925052861586006648030548870434618539014361183071681456011193891159383814643172432858323183151123583293326704397022743686259209572274212198990509877462126511302763091789852180926768800686439562722758785245872435975132947521394643991361525418868636183348160238535630025243001797250620809309040852520885717281768878308582290649880238564270583192488781887103109722984758770778783400819099403955148514117698334103921720020801549653496448181809022465127529989580096739226162890867740247514812540610812144015722012947085286761438809871103886799854173288069241547692034471064186391994063708424698904549182522347246556170687840717731764875274086086197341745291017954389285267595679150522187766941572874726965467940805605286942551977526613361703223114782202293645449216539850660169785806776686699719058990045620416058992606798435600177332295674363853413810815473747986175610688548556550166372519714957262194691331522702128989492608548847144657731240997466227725565819807282979792046211163108396029063785643548482144616020007461002687243252088266752221701723064093701670589957262153934226562680983570853039669533125584713990301167598080591292538714521998329878446171131015898173051111678594762633137462315748735685417538431728944341850091112856357175912005287182012566752089202683103575343640410569661601342805949699462945693929894011837774820282197914614797126833404744976854750146680692207468469981065446580159827766508248625541077869742810532814016217460994828646712117895734038567986341638410975124826396582632381779288030820572851876896013339613423982992651714683993671345656653398036588049464914780072736195608770052964374727936123874656009349314215575753674004048833440970882088004265780082550284541812867832535540067639288881135049661547691440848665454832301919047481498473284813098694630108644865794997696905480599403614690781127499678344419698439732351333444593232723939501481135429523552635194993073521264466550502535921407382673344797024220937362844112645958653357478030643454658151087951036721511239575658634902449314160026990869322903558957422933154275829751592147384547926722994047410094175183395802833975879935252393428552481821115084863782694643451610676615857758307064089498029476869647725274890231402432591320516192194376762359707425438420242319142331942490112192546012971829884381083722891121006015875348513100264634108232296680953370975443680666071471830820127940985657920473442833461254381646261330256965610184759021944721611430854052783418968989680976314202140355397197493801371798816817703138337564454908716918186621721179959949105336181080277115700332349833571571394930729063747538127735931254118046332597895481474334986913568754042388880301327508194815938023919600057877188930374263340809726604590917755450067472168343873720403247238175071818365215740917012883403922084239990041603009143377329214930060755229715944111004916789814286598828791675481248633033561581553294976891481366162467209533862977641671523895453111347695623632896191136583180327267154327847401176539732284855975849263535585656154688743736196467567635196106482118469477498102662950261898668047386280557223543299884037605856555185005459849143393593451094523133994490405177991590828283172775701456517698250696947100632541456217525130006271094797555572798642730152787532094025301962775171191683311549534228295921904507968036562385805242931524719525174276841788264898815480253053438932045704878355165455540300207047754586062142754138951747251510181504822593052769173426858907045101537115557501056957394630927471487865633213378895722746571024786869110657926476283805701847145261145057921569282359535183183214806103427204863882393622957976396572210405021187462998904785690977240836968512987075236698298534466291188446009904246872120593805134628393951959135039645278102244600155736387719711495317952257595440751359043106726679317157241136619066728506579519045344291038788958322030558245100670869351871689911910931724386168107466924635107082868137235675735206689668326513237326348365765728451230621669077110830791808834127901572569447195516438940870562190074346294928831491534786256827224188714674248467242394152522975708331189118124641487965606225071712911032116554221929364075245259151786572411013751989641850497763527417806029380571524591261678704233883368497216417078834523469784424401136579122555584117526539066664983350116140010492816921686683004245386029532997179586330918907291684598679951384863777355784229256428659598901268150924310073346622265137496708022611949126609159666369482074288932446707512832568064699689421519680856962116984288741010025645482732033281510941494424424778058498251868752150644500068798092582097629327695135612705678784986257068710345886520986086618283353867014073844551271362203755115248665547668765289444419600334722274058737022597071393761596501376656920421011754705537605670909868176102545733247915907231787627236136880129188754767898922316773320945931316181596276092677153556143979408147724912989609380740738406699461814353535491864210242875921319837467612068407522325368285354899981186408077613806741453326560157850853149534557453615309063433183929655419398961975737503314418753704705105491137327257680040198277611854389950527685703707613229751700398469522223827216830150287418678495451192261634982705651990342972993481936379101743394950544578928038742687916893045414564048782522541010913699459191438323863715756107884729625557118264092250682121594175494146737216973040580400665239062096303541169071361145216601190675432033170884112137394092344584118500143177443438479467748747560482659065235051810372638571566304899690712438011623586010912881806171234223077518877508615400279192544624151581740773614527895087913618556236333974360049681842346966800926650913863997045184554081210080593074149241442274364968526448877721611894539621730468847879206575283240260402228005722587753882128295696350826650692004084477008640789740144206804669037746356183689224849306218712214748435126555812902151572027776676506463594976624875445630220749357029715966960166900336624193255804548353098813505561658185116700739657902195784890867532761677283287483332902499577523356083514622193981343912694672910473067109666281408214550853511821695256512991438108788883337456870363099958400520635570623242529220009321567945403457450501059540877786002726185046758267677249464540314390951283405098864762987500916587091791269030518399847498175571309339041144525410051283163232042908751875797840186583661901796156230755922963766387613675371894452181399083608557298245203739182377405674708649758332491127044802220891850494337400197557426850197257910362976106724715226573219017935262348345825369691633426979788030397192977643995593485057041263135397292713724758041086199212636661276066218869391674675945191857650907017315696270767144257550166852357153277998296200684239751482349616192034961657172066166077022825045257332119029308639828412187837424677443412485664628668455564439856213481712514798898020106959587670488132128455971153550923879481605200356616218766044536900089192245091076686342376859725737637112650202471818795380394487922045214069355953187372094021304310579555730185544111525162767673583971621003639896188829733882965067370347661270938552699949765863470721108449510074450085493565457750897128153873246356149074577786980943251792653719776653048998257767240922652315459407217508818482718690845491291706377862736429236635085145761704850492967375433730395503212253779675848234695024040741015175318016338090938982795658723945005021660151463454083658627567121653464010048701480193942169095283122864900983983928183733451978881011964145059664060636837512051435826659067782844392266973642178130645164094183554614592770705679307676366426835591636638714789062662330391076191151916915660804258626339968395191959876675092498575627160974439500424103299620190551320342373619952712281710083316830814267287863629046949743762951564734732506503381638838516932438911313668399512868444404050817496556219045510656442376587482491516643562341484988259871730583402795645581802275019199671585520564291218550333429306759139849082335488341664493873037186418955005521625920134825160375928892545148245950659094417107323115085156828676312847809686696018355926852480247069127312458767738416403180406892803151472021042488579552242510281507866890478006402790160971839916025129417770784684915717291194028165763717597623589066860366527212896026269184029189233448852165279203184405725123676206006107012712782110476184753968006085312801523428000656293022621394598140385151595468889668373028688768033358284491569241656834239935508357361682765033584240341466321884368936200172564755775274619383870283648450510967214735268417540181895724113359592736347576541567705620716540597032323034523697690556370192734239665495842231883285329567914991010445667373464684418626322998086118869155791554656580569301433407970483727710771798603667333832280054675370260609068916557330765870667318664601240382715285579306890690580688746251712586648420390975654439093722482958315413243509101339864014362334364743276688693521510152139531716432763519145380303838299692972307883239956423415785408676700051465795766252188352929612584298149392440578969605047073100024126788223708901078512268123033730187937332078770196145933614382845580859595615019953233340382176922888755529874076902500908020543848184451380953795246407855696338796121533892749282479200584902449651322820158574814794735080956366718774115213611331010748477153367311190803845657281825109199332111680622629522035533457054716232025117351632813197520205378120362600624854749363226299470826438263643057102363174365091637309108559035619310477337092609309986764715899197100637647539941474707846830572392944389557996872481655280267081922053093855733816410281044569523162157358885705709181069600786649215475916467385846431036450947415942131804205902824465522465746829328208528176500158148859205788679614267935409038192114766432657764959329435006056369583299145638899416658858376389756538698429708435441572871671370522792287145095061369926796908965442964935831192276358528795439263364280281371160897842851360081725778669270931046958281954775995599112273828530085997509554069968567425948063940956985696898023715969834268755370948077361187716768705426725027294433595620074813414691268662550463094004920999443898669464806575463242949694017432082739678511089307837862164840429585370074866004922686666788244929857130988176003501927176919114460052119952783093055323914244627310928631021602246657568660933425074052406873572159684374767952230028530212482342865479668628152880268502083451235656353821243478769739730478496153232713839775911446098177573299959770120344967287088822943320894922589575405249042115356139333096584217363309509587393912661192594866385581336785598048276043326746224396279987161664932638689961293481978566869883035094819544438368217240937543464640481415380056727905091812491249272706656772756127436015981523769038823140166851302901288941276582354690377312518165323211093059773976643520371510134726812746299449197407685700669891580325387432115073080881523552964990672457796115912936597852545663991134839949298932589599383888141194107165410474590862788435104161773351903995306034893723704860878052113816374822012073815422576438308927453313881421172426088143370856498652433499243953688455899478160078186870207266918135939078264491274961460898427348652313685870776404637215966090571310415234005591338310963088268063150919151803233810996461202934819525970963541466043943477817278086343649498378804378802868200593003299330348042381648007743660251910707280024450978831820757037006018149804648099492700506934139969484872422170801359037126111640568855808380731420723165455339145316437354580319290838851406296672164048191585311539907292348577837961277779843906674088787053885749757098139430340697121499725748955855218907590019341048233952665648394095360583782060213748668507031096787979694508590281586609367095616925956215331121433875789367832792184450273848697804005188642660559121265549547250555869546710347192108113834140622708239289741416087881755174197128661821260684052135244286885485770193878817431715491228371364077412950060085111411444275084554617533990657993870896418948854708523674782889463346149986429771567960685208308477069679944775280753576554891930658818270578361428982424859322679836841113878365498709581818558339269379710969438030765040636936735855356864589767514973344877905362025934216308012686195675786045509095241288229043757992183334091686340963896084232619787315397572353122855980344142328292087666188340699171481730602451176624636046081652589881512412838237865683911503758640298966067595423681627056794170618414262412889505249804160910579599491783512757166377603497522398694684834096015529101601724390903242323962180400911844819820710401440338187486435700819792044957495679864498581187699112088846170129911559255775391999676004832889975969930940225268131139994427672638934222243501369315672103791108064517687377321469657588687101123553323989424832870939193731243443257369993174873579629342618230819601642111213351893985757290181903506985983214452694889927427377674965960355679028376745132620962048656890266771658682964080147329169148593729750907504715599982204934058484041769028974380863811954796472283406854882024436853135350329320997685609916573249902080013091157909833498535474187178971879042202244670201707957369353312148896507541563845205189219081349706035137623932410689568260610331135101316859102131739968172915886449705172591199247052002770530495656420721495353705658997705611249840527663369865735672024064936082303882590613073248048192754552754252463117170461806329733392524457160716114981558678803597039229326663457435172054729634005951565399002258268511283840516439485360597593448772692054241235160972763656703136279968834784647586786488252267369057568662075365787791887780741262973776253554450506390565396170822662309926629672634819405165459679413224497492226380493038652084594788104953974845168049334943632851665968030567537088862391280609994223902103505635070356378525022327188995984883141519950696869919599762624322386241232191739784699704851448497547973134019780817182091834682726934664197573100085631458260209955973308159496338826646335318153700382277154594931870208132134249802826334976267082235070494140827400354826455267347875794962148978225157572312141191909349126996267713616015167224743189112583463140217428204131050216626760096540040908569584233998455529852045649798342325084448079405867406784904910626930574734668336569850100571190772738226780115927844237404312741276663870659666774143842270781034347552314248185398931010323531266475509030796445260357479797863312693701808426548640029804029911087610727645591325167274017916878721461937339806004705918164106801693781779472424389699333437803973007962121237725172112934944283528174906229472342141713719257811626389990714215729720102255469833229000575275971573039083324996520771950625084523725421880014111880640059271490056685450511354325198336506110672752710699443520176841619779465171018810775265466632158235108383387106543427203904906693799251269327696310324321156342198423522572166186521410673357631694596140935430156909670586582720221594463918015868753031078146877499222177535505342698632220028512704990442426345649676007537012269315537429188909322695871060636011782499973597237141314579223566952137477605325127839228111208048769821291164193736206386897146666822069969588321120892433651749008351196836982194053601264477332385814150570095770711489343251375313276262026453978662657090397181525693589221479074915357889921055353008741842928625501151540130119193458814324036309879903761884820567588535806225598010432738072400942014817522269648445018466089560370487256194176369149204008520700455940389560929920745100418365395338037981684389790787251337019562966782774548343876831298949564501130380943778693855646422008686962142437709526461798546700095802381767540865118572235511637473596658120402957620805913951878294241826449118401131335150082973962708196815950202765208038309789065447234907467792827595894514832730032090823973470564180532648451733077190405778143889599571274273675303266586334768222642867070627453353437672235942019735749056058982843036717691947675531955059702234636269539195465707087284755833445680707207533367842363011789985510979022338980638635445247440827547077804354568461981965449684003951430669501663167068846413281312759982508289972977410063520636666650440258693637302775288483478685588950002847088211243625215870577581256894044191403076959698292555604470281040136177710780698209347591598246987001972336881937345680385875410876928914917646054655561654804455384436812038331360895485554956272392880897789134412315513853351315139076298120157624128850428686410384927246046791765233937187164020497492636509569124600062353666952751875277738534637652746648598282743488718254803006728428069526970154654436016998347209147717745231018871412680321538652912083813167603802995462519633487692197943226353992803468155482707392399972707495271106610106993789648028525208932185359850867385842902972597018662509260117400639598949625176008622872775867741163759982335087921719495237444522244769795702693288368430296793728093133776182083258521729463311849758898359631300838468106025834151109787642959431252731782181632950709747058944724753597412502467913737102015970638950814557213779700065267430208263540233936847368760231955858543301498367583894907347610158735353237401083723086862203591574551396590205897650709953838222079513570490910271138985388937193816226167754983699093995010376021724644049361626060154372662044451123701214325501884999283707999568118665167789468757264467512399428093227177493961683193064198179822638693253727824577564388761719973080700090835062626435300365739532438127728850313336260644290537972049611934318351455618184274280528669056075390752694416775553356727225311051604891699323129478761668116094364599247955811815687309108368529667065246186108681578988802180200993051691935063948991964933973855002292338336625189353084375741390199039762329075839650738316468681594438700309960778469046291815320940115504486902005858305228878725149220017076735510194531640752968937314254723132276473235328635998695259940837756395071018722748205928323802157672408973338924499857156977507937460225808023975351089821464688973916806962387147646570387625231863726502923313656345239719411970451612455799592089008245648923676402621695362033083308825194195453191778520230330673972713359349014791891915453711612817970911158545933967397189702334296263808660701015336408426428040520005082683404797670732806606433243240549217998599866749489995494580826948583384001597516131840228327609315221976379623799783113456817763470959557197289873392630036685559294865592750028364759127644653976348818614855473433873236587637945351516545146253873776571313557342471912866777407064259481544498136397313404472847873219804857794430377771758499429052731858155379676483757817128080519021493474307078114758078622709559135097443619084361303899442886235399174897831828364643126985490729024809180525382330668307973185272043450441239854295706655269051816089560397752126031196805772963709754208168586574550571587370668786078446659877086711321822608131053207661068608381012906160335559868991726213448198637590588027491561288422828594642610553113406618519015683587654793853040691174646572624417195605878578488852024630054313344565467303687761146901156312698801409874867721146192431111384591840148992162970407239264513661217730520871776410625856339966599029515322274344748355731057155361489137200240670633101608051536108068556796892267076590961503200450558004765153159606071631101663455570057779425534216069302409868346951479616915720410989548811344244862617999701239124086176576556376943036271119721282082234720275902257017534415479817902346098627219664599439131117787619200635540987589586756344884806548805464144032030467762847559877421865274374412008705566019347224034353183214014490819657224097537495591330575380283142522117465478975202722592299607521783271023148885916014425107235050619167041518972252924301992071181818098013913109187955611412577707003805731342826678089061991223984894643600890367456768645739127990652776095831084506614825276546064651328770570270243760722046080538811865611673860490267035414062606700956223845523554296337333600070335214347255123612565546422828823006946604209386989577312306695070427325796941493901408228224178706628373413584860288492777693560551100527700371967385640757730661462251981553159725318169687652169951036867513930450416366635276673923864520524575797409655633286466490752827684945533151073890048007013723268990410031324843121104373976426591699368087711843719652828022483441352173289861142433699823936221615035668882429174402308076710739849414610278699137297231026286219287384764012137496564621467296541608753501490660973021853180459913764975694040272995769325020317423192544405451796813920337660405834448890204722414114853055995286293414219876424421305410228909108770356067490077113096676357454428268213788419273064454718117345391741734690198652250675466376347114200691574017066484313695914450147155662590110179552554328169503799655907977857905405948453210523390020759528994705465470503031837162649777539111689044347665226730144834171743131833930692297895960373051117721309602455493203945216639993986151385625886778588730292605430841527365549031808992324740146986536026936803367445743945698489724184288736340538470240075398920026774806586362283840419942846565093523362803137420345872857571001925973819031958242382625853315535855373650660589636095725165033547948469087413021656944563971796452179317746324203654216747729771584900307346258411072117624536523701815564008395974645502732352797422046090321947356534893682263265343027550335800638652514417267463288080138298422233002533313541305593744198192622792539238388946534536631618247999894736127796397273027214801572850707648474118177223058113309835895593636187056825911690206654210693881098063514290152379548076377721146772709098607237190975012334265283918511375120477535421608222067540498470863147314170364036155726617618735438938113572176042076866542329810203315989274043353114070725342235941844852398275552813248977540707908725881495696427019226248648387766703591547729900580339971004569439489733536867785321407443393043694803793736474220030366050060318534434613449904378474599928727147614093460781611649454318519764447468122721975103816245911259229108098346920649828231746862119866671596248175304352321810312341005005421659815164971000708806833986011302883794016766184142521398885759808061801280333076773261393360843952916346496772244511227990252369705219614051251594452264550635039252459144186642234853780867881271200150039029863209121216038736908589359112874675589605241348158483916038179173950123192999580283376161856703264647843878686705584955485622993481189734394637105292055891364283500578412111322819253281623389509005543647443633426196938927242289007750169503894044666396321763920734831047888750874695677725733584108574417391347963943103002014098271323050530762246168561552187485584177531301862721095307963508453228105005107193829898825128319071567829234199720485896440976786827519439417696577591716711422858447504261614464099427734227055698805871005662570171734831739087564824722562593826829126059473381791535784732108318083044002868940800916884195164001607766006557472730102837368271716522869621220833069967925744873149184058935115903899465378510845273214235016064186302795062855830787659125826440651962626597832384513491524373011977335025140935596996949702688075965366796273577924128796613170619787170479269044881410493813896501728483919511549326790991832342110100132240140480664469929921754385112295093019380208328794658099956373976148841739809672402157627971309858441420003803700671615047610620716894788564715679168303625910024323060482570857822514571809085392031444749481597014257023493933989167580666273556754216961890030668247112103085752281281554737847613749412449426923525966660841545642183840802334871152073203923528041712192748855161289522449929025946239244212800289963913266821464158720453274979355130086398052639631981742953935054348456471556835519347230608672295226708217726879001761015567704070567169426771866685621159027961534309657162369278883604396456538474252847437870954812201871167791398507849322977983304734192967989599458508587951515723698842791526297840035437683609217049288067127125812247659753837439068083898682478619578210792326717670150134581887508653353918551617902562447484799532781324059507842294552289700773868117564989694952829314516770985717440112863262709389246237846263164505476032974035209841290914276675798816221336859951886317542647085262394190916880176128138319195644597984538674737034643386684397799316479628858017546712758131216050894397165537922572757641716497888818644586183327426381881951486619318853231398478637400781385712799802195150743996797330501815349088885150329635015264246088077838736708089599316708552618005345889130193332595082586577229655826726783483480375736677041335060724512796650209123861816933533288922513715842575351236555460426492087189717883528013101019185996908540192690399713915646466820793522872089483870864551076085114969607680478396615880795784002695520446778848611738351657743677423243111186567824207799343970399848026738275179488377119180887611216980030977473765962848159207986019369444586613298908489595361992481630292759719757568425201804571794994639523767976920449944947246688603397947731795266427584798695419165217346030157305718847283100709035746478569919736182322373789490296767852268719400117335689966198502937210926414725609100916725471004519022027040072560208018589476544742326290236996664312705822998021718328757379385309533592956708936870760323135251620577509232178005955434711292260340265606023518796438065771174318498180994694121338968215130838877669510812392083583524999242420001048269769511332689621724803934773546447257284734541080381873920311931220058745584971703315429300443983972981816332903827508266447856226644729067622859802779269264112635682001452816482733691786491716649980100984711978376235842319330630632938537613689539536148764223888662075072848646825948029629797155639245518801665664024929380712389782970767523114811104910197597720397782863548346721129013337583364955935909746755147991016820991251381784704980310464759840637330087051405013696322874118584664854763794356608530973598398124433088073541198481179435715126676805731715737084364749704960283594962275471421309481991673935669070970836778986426854506577174932400476789361762027700573024781144176936161170554080658093474652910550957936409601279595538207664984281936795790638084586846795358821072058842297693950637696934196059968216285414496685411221377189636375457009066845062304444136019860271232247516287146461340046191796668744573328897038415018904733442034860992955092039997075696119877048912111975959053537663282641335246610637893167257582052246586797986655844803782025291109037610892891906362116926181917322768546423334600773482113481230613553057908888665074270044656842690534913610398954809349961209195368498995362147246091046689163252009255057046239665330467597078122112390005436327822982078795983756589442327248146803411826256652523669205098349447874352830987914189137880272679204176103127758877369489304048119734683672855005244047576900142053465998124220185620577758122303510563755691797508792802647470180945812074398734869655854887675874756455206178934323409862653187316504653904576373569221357777244836663408627534509574102693214084801765189314073996407136748908794290384653445481591637906008481976351251683547956639358725702403596935362605043172621903229752048880586563620378598461316428010895117640605400751582158899710041203836504645417418405110373512902735246242408767021846674018411076843674080885774065144808760515027951110830487101520991746280438494138420211570372786540937193054170421040022207291469945299544441930770295516811478564332426704174062813741039050137990656222392247499241514413948900090093829194971640876049656550116277264549215071931654364082067011012116080547532056005770190569089051022216113555592001560798756039438560079602243457535542205689974064073293182336628052226611107940066772528783061494834083128917905789381874156126321152102456751076994188114210344238636251448784298024438456330750017504148973531915621532551285560964812780878198592762701217120418954661332925778963532410986515150770229312485066668919120206330756254632621044970746869076870400611543209119173914256649660927847196075401946675975936221742737231123962626765154334609301581410798061194185570764508844108899763638883415714238343454274680842019294431214989642562693467974670174112812566927746487798378031455751192504779947546424862584820500995289823607276136513774289552199330352975042311627901766849458514692093348116904623329200733195939748697278148152798621770617569417909536962225143971387629941877770920865039749165857931323035402441722591784136715647634810586992091581136054199295524604574032351923840000980170065062164514004590342875386090335270327677780179424556056418605430330652923535970988992817715349192063830116100302550208643826311922083704547495510107565562396426352157326429669547492023800869770073236667910777930675890897532710586701848544554212981970637896981098157558665467179703660300402461876490996936164426786590676249220836119479656564648500858781228162167634586133937231860486998279429561151636180809089106674739472761198563461146165329147396931078029103036212433586853927666142735290444239654557835369391551879377299908827963712514881003439783788927594245756668134629230908323152701321471922480675994664317726515671768431722640347219091322824359633677811031242559075201481953183795912790499262336350586175020019559299710230459151981913416794172883941736704229869601516761854964359432474999469495323555190644207031756796418852521863192154471425576419732449974553971797646952836326148442889653617185997952152190460716585427179392913427720898343548586048923333698487258759417349912123304544615632057547706259614765270377870877848141778896454930633363214574627433884932939829061572288571825602707292611850772515578279887061604949519629949341367283545945017252077211291098368605067695502470107348524314230297738199115952901587338172244222331142121740762635964111145316381971391552378950061452364088230554279823977443977999141952737011113504331338112570985367170200058638849200749295936587860912086942145660446753098513927613745744558287045462729482632566958996597867511542597719728796163082100048873658705406888582287990203362142466551685267036728809782645450965565914941133821493613665538813062260068073108148203277679194367496469126380295847784146454661299095213734895837891619509278851664363730100582946111188171458378503803790390772522544388371575090560736843289831433831486837780273091613556346150455144499704216590100739037221799952257011069142935770460821293150583339957946825566266146291515033252513074960022203507140055475815742827358465768981552783851120171835888038097195154962621294793042647378125846302315878931350397279158110329105914494346398758064091451576680031086426066855386728969517738309687416653183521456851639125489759127600991159283373230220137372113081868730242160476820544679423136722434824918692595936979729963559068374285175718601830397811907336157030437857553944168501162515192704288332563186846866990741204578510471744822659109962774360050890071681083288286070041410342054768509693520779061594612853901415430156713503613515195552674047717821320236022110566475183630150019953037859702618232859488414534114970060081514211333942069533003185360203424743046099718372248099805268509117850113353009647531023924271578683004733701113987662851226243519531736581610247769910814957635673533718751227141368222206777727245426359708857137519661800420136739673912121746039911600467517701758898981513136746975165364064176492821572023659922661624863760300544451209557473364982537941208199262793313789922952967161649538509276045467263924764829463311153769759161672354005433357277391404711288398073869629634944602277856138059378375792853510574432211093895052952511277136928342487471833869912738473587298904565642750396267876329960513180392890449025089139290964913502431666947806087727432897955150129069216118644992111003958068948736588875973909583660351179809702252559364408884369048467642066904513553020847896391306934443079325020502919395314081919117636092373652075642698085867160715665642635719157163962759878357137345118739694917700959211057585576713346938147572186860306196259573380720911668711229191775900366466773957333558231778253578748174910756041161112833885168017450239517863278857340198116621737307119575168055224744213697292945939962448666402210994799471931993261580991463958498800137404066436736803793189789905253469134746801522084171319816156426512825164962748948788664579111257882368546716358093579895411219028466326436436136261926002515840804808062598392416260326365624994275886652066428449780768285864821690164929708058355408577796837433728136226263173954459543364466448823348895664088874639128527661294448368226447313160675097985552368574844430443658249632662814669448271485385617617038003548334192688107685458376950523149091739640392598857568244187423607286739609040625910941314981241786792109754720475101711729371448673604482381937783610621829116962963856938644090896919078726918252189382686102768880948389001552202733835403984251673239249545777730081201799026554848483037292506650068130291568421761313926824716979138490571635440201609684820580068006461379208825608390614299697865511951720803864662593645294739955353979896879122811081506287381721986186988430558318876888512848576686423864713930745737116198909888260362923068990688307483463011370696620266581392073233028083879875431714704400722816070070865753659877706713750211962731477233529998758857403666541339937604722443672951810836098269811056883389227333140378103736792388486275996169514619934239821904515529157077970512865687821825391698692441310581585675777265468032348931580695168485273299325522170430070188356601956327455054207036966032192441786401275493543290889952588781346047173174095539769543089273333130666551492619337423599937758089563868638385835657452881535178505498116840516756770255399117567258055866232059557134495230725703257759097915772784214610491982800221984403652375872127083204209689877897574809597946308963605267952556127687214451315455156099475605501157620243642137060520860852580992289619469906823347249981259722951356326352990330781521127033859461938467232429721593920046198376672409489143998598328217512988807880368146979550561542970897805931248209258992237852379397187817048063930828748823352193652657273954088017621000368468829471125028721035250524485191201164840863867948349559255904576276970722186565734867715745592941569893631602389024769271291702714208852886977152141807895927178557932099055026438573476406482042226680440483282734365686810361949877246689380922619577603316179792683633171627157971533042618931592415750394064776927629811284121165768150483697669024573779946744304634120944561183941679284867787565060741462576748876080386300318681398362485627209051471636244408525002944977255008132601482202247752299273189233997763381176336618870458630763982603817691858457087994455829524612921105769103181733477118782581909521850928160511365816251749670952810782492544633143867072655324945475772355448823967917245736577860857201812050531472310909283254154532363395076674225699004036150342257373973210238984160064795469471949856821808494361998802562262932887293030193825228734279381615309447867071323580406194304742099581286452600204952206808474308784351129022435442144849763781234182715787243103242296325558239147260336929559576565061959736932635943115422149075706673243188105363064509694915139913031085555777862804652980477284559474150744059156797573286091354815257314006281692253552283001204637527228682590803364298013931066820050035722122678354991122750276396278761134685448748138880438791066517656517937164085994299294490217013068146416406559253686686505886358590741718841748728824133908511746276723631738949230757359986449793552244550461534137072281393302064856424721905493300196992140241798338406606968118180497636177607061373802968160110983580715291536233932880541660339134552957892069961574927084784290748376762764616316179798670018277201434916014634614950306611747126339054680806966901993584417737510920048970044893953412831403096626261953071122591326057358145114841307944261448836953852361650206772438876227755227611217193245386040042461914225636990750056579358635989513397995208977037611365648017281633178932303219206823740715683953073847782760622742711902909361862422873279363387317543440501715664844042823736665445522214011161054882310476123014866724111776990072058660760561209309743585405702575054092219564368285337407934803565101480830880915625971606165438435127972299654365165980633107884873479812646830241442364192032529397920639896777478344202045303001531669532073406144069446862917676924914655909563791165244024722533548792252687636693840141075002083133519027705381517456367325571559323708415680231650284456290001266109227882554251711506802890597540421302163195296016712364563426844353028928671944857242835163903504772481198813659146288845708692810149158061777235736979342964305992078413812857727116567180348758644750317380510614241453887227846002853173570549843737033305141449176464797743703027877738856461228860443639461234344828261196600726959867390028407798305492032422642551504851418218340147696869469823856136312284823513543108660331875740236733119935886380909014565552530933183486635348670925284943149202824008768028778713005882734186170877823880895449380902435968709040085806549463654675067159260413630417492954948625804305652356610383461716998307679440131485817997291488292468239015984623649799390096274453663419387898719939167464431782482409821141937920260760595652850942357132855029253772050777283254810422043800157338806812946528499737350634940089473101139063794367985924702885220424553771809019026606622888648598384909035168182356249402368632701409891011654040934899499315130199491406141520018012386411157461312884225553902214570905148260348142484113705723441408087633235128068653554856576718384918836915830709559754306740798462387245531128049290430662057010670782587376979488204962624190007136916756820607182811360789275953308502695437231641880611633860248522621511593538828739667869230071061001499777467682044223257850480808596573895481241012107305306837844641812364120375835810818384984693545252390954725763076556254606293720641850843156227835991159892645782588759312108265019572034444028965605428254851247195526541889317982666152745685124940202227065577066276587587590311368391521983456529638607535766551279056348559099996131124590316490325864448400095318845663186275996634849336511905952398271185783744524581278390478649552654268586062223044489939364828331447405618116383589834442613429079834659197346702926696009014421321456780832428070954446429774825384070764848351965806698757541875932492760814089999622728428862604097635080095732098113476041536060816176213936959863429175998922792120912625549070169613973419843235266036298114869774193444635994806618956860158728426837674584166798733349624117203984613331523909570336211263792727549812067670665907807828127504272968351173180595498021472826305046912541655488755014286492729434656933253477363869213176770023312491938431851367953106459689247297395353889613949254761219403980310879257631170234671214825356137088952708279774028608966761395425717704473282105018690059388479642332405040331360803126638692729313200802338464382563045229154917405124097223860435041082943153362881297599926357299702719706372823739194841899861981377877802826371549411248162558391533715416379720421397089569437086351458002525255391944647885897700656233415569693710078725959795293648704037059093357048512170468635037966137972600308534584406562356957818649348697417654021928300550057829623093127582313355723269043747116330987520261212784412299692910767816485572800000868877073312570164508214629266623056629957365129880256219108497191184810604538187380209099839224332101257352090980352618240179088472954196433245235338514482043457110548550056507846008601897765077894855652453998784984612558538015953054768644701937883800550706274166148224335317032639527390330673042355342709782235233695678296451973321652987786992755262740906432421447841934468755180611753711234214978367683925547118644545608602847468527084794774884416659413514738637943164992169707641104504018304115086376669138079050679235086196514829863694977730483066702814627195396592941148602857193916957014435109598194007287227147164487696709491386406620593737172379492748769932658203800620450174323101386290846841819467288875567486846874715589518213601449663815502401402405867086516457941729919127077826660169310179226783121514296834691656502835501575098614029598804247454717584299849194804530989300921564169619524115611055768698842625479495291333476616016697282233235550227309980423200664290343949490629430276404062680267084923266145664082393657517843266848323264683481900493873981150919402342381821532759361877847907719973128783850529782628606191703195060699413534012816171141292048333757766347080377113203895644210031887441508749119882278635168820491667650750596677361588872023737773501765422599369272404854326361771115145911907469745141468187225817509365344152816842047944359577390654979841652240334368753026008304951433250396112997910657808401086055478975063636785438259664755002600623343716601079136609600340469162648984309413217868710699211740469978171473440930309066209212947753031361460016091981451972802588174859750647682755411371415715533255848088145220408034948572759269844525745695857951915292943103997166500632443489554466329681377314509675086677742320023807312810406103586941734777476344682356213956344038995014424919081751741116927008650196380485284787409363744207456577265298595368294607671982492374051042858594189137404042664710791085767098538115393588331956936047801248986142808914788023698839479739779410233586538967197684020300689792001008760409151724149681383440873378534016420731355740344854217689620991070397588715537878107813055268674100590809397773835020997605634060140984509308896477834496749947273431284713994339644420140559108381133131846202273799262534084614053573889966381862490830868992536248901417173379277182617905687824123908230808022003850093905774735868187273247649941566777884870886009267026749920031579730173829773116835547059237177973666745149573109869511106332373452991521017457191136531088256637332997387791515819897302642082813225333104600286133622800072275259041132573703297385813935494156215187362315266758611619308631282225402815725841554381093083033090135442645852225604807064142721949161841716303892040805891583331459914961891054418804980413384404936313116845353306669825653958646440427657935678486898713406522363754673765084819915812368238162889014993250596231605327813349160960760222736635468104048241766871878225931362035847626502338282566321623924400995728530122758271290455307215472949227112108305193046918663564326948735321593266133611625312703062279185227116241031054423201890057009563046210500789265357011346376627051025986390321548029727712304170468549824111075848768018337545982717564178040846669206007705366278984930677385762249359171723681101333756030610007523418407476962212461986489651601755396391039787666657536302935869957936879773908710419391291594207652708070348226403910263918654247966697600280386654906832354753704867556587619142509119659622343135316893471111356764338472371265377067516088194757534628339424325933936366477346686355177411498275217034133150016471544080858260959582132264096425083878732286840397498969365138820708592515908600315870585214011383391466318249703172260306857629167468118181097431104641485531508727368833842639622181900206981555649918446315477090989119678335001872589073681882305120074999950648534617092874394231820482345690453345211048489141729334702868073318792451491928954166542641065658327722013481617133133521899869543533870341460581819051716661271976352907470381465406566628339774809128551169527487689451033266167274499904085218147329318266231857725821097293759991996461607091290359411919335114364435278098644510875972652610657651693232469516419446452401714595227582843771337543545086135323506516065106032611623065159247363719866097461302123540135210311142270593943486176412926655919754349283272943687826150241823965031270011692742083892155066331879070311551635590832111699158338813715215494225895145847186993350166089759314842040356400895276116334842517460686527708124184663247845324374236993264457382770394564377036187790919594080444570811025446657737258768712485089419615769233576995892508628109278944938239538454216616385219469323692289175199727488314059736433765629731966217146065394223298326480285540362361457479714604416236962504019002225137979836464314909504815305460992099357904927082291002439634725994719928577970694670664253203466594467193967982341921241110829284155889956107849834075411724586774572201706457074103500864617205655452114729488250367291583185839761306811640424157576210366201081732863503587534776637064962388727052744234678330038651932610501625968670535784560703751902251780934396908007320130436763323356443714440858271064048823513374978564784365972792995059356690429720951725032931760823250396977139976707947565831203166658054848457093879095017481981586806501538578111248397240652403992654460518753453320867312488594566636419048341991908196152502711455827625912658113834510924300621898226105889374985059688321869697179803742823418186121757296967321036901103611930757916916720066428443055975539747577374836226664947304378169887448008687210385995297395099637738515222219559457305227584218058320006174124689539994494593287205734309632294775544545666167651112598280885568163064268908715260757507956995269569145147012716135646477423022991708476439916783837380682437527841595830210726818749483203576944281492618203439338454316787710672824192144284648870674850742286252053075499943634360706235397827615872329458055313703355858379830236445550707876070849910730685002745452961807363832703482548698164726651857339623560585384720847835015647873637827458154553750891102859542572563028561985179098217593753226001932846243095329874794968734902708312223026339054404612091258478635043150185615496196564051764909240928673793156021458379495766663010309884054234186681211617105895969390631957217445059007204891454894027181793777350610529636976869989426048533503886297762214299042007331583052941377936637922698994689155852629624702690153640766052567857964233395154089144426585196778669796369955702810200166692922684350969126702687906932914726227061181650124909119124425992062615133036218640701542818930706765970226637294460516885495656485484969298838070078656575958698141266145638356850802103712501586708153852238208404567789918770549701007916943615029516435455156784380442387653030847552848790555848553642324916746853459887946716427337475673453470154921855689613696264250578912878315905095198339954519693731770713293473801035465287449900135467239215080139783579493267694218424697592307297045733502427587824246928902115953325176099761897108358705497021887807455167596066850094497664773953097297501578559237183096838348298073102083897447340332283895454339541653382905728733980688093735009119571271898125034089298313771767046421161266907113752132476614148566414623239250326909973608677534848847102393515817714447635109437259198789711372094693743252498005612609576118302856947725329857371638187238699743810144896597576923142625664684078481433407161172576065429945106455430058844408895757201596818512737263640457912238016664087649000981348164834189911991558132540739652650487438318408879252021743637729129701372483520967502348353266551107725506307654043350140351797968284953846465004109089720135805643057685332264383183981801395827409845075413197190823313771105225227109695404382951420055410899081589138794042551387135227394173911847478111590127658086939064629653011991543065083002315773699954320327606106561571909052287055316901187138274282602935100536338935839651509760633322593923786697285423706810189860539972198743322665805262538523238502041137695507856126427786749072782118423614867025299132399762147397580619906584541325558662644417876999827707055330668764380346118570252298513289179871677249210661855474891519652835262932676958557610125373343290392824953816678724508236986887330557771581660303471827903539266226136086485389254054468664106175113337178869823540031881587911831439521455584994597960088438335453568520321813426833212656278476427811009208972938231041761435288722218556774619611606570174786472548628511946297132173949049435465522084103339173448372981373604829052298801792417541188433169834428358150828623936648117985241720997156404731799741610006459181652368491898581003420311328422529445241692287425323828849913102233831690744359731722691028268151705180300797224855383205039937379129444241897158902008891741661340753295699313436450064412664388598099646516063004306921010608712163722773299523016043690326588539972734806952239444916328119760751965379657354589942213874469632482028171929703773894200772611551548113275910478809855565035505809040802414234793319060693367108752326016192789161901936345267972691270247835117575171084318963776827880100976492590806237884524319024797299500783854114517338125110947417019360929072874887664868081980103982410598125113605364545936417546310475845701206912500338312364024750814166896996853286541848113988504323915028177329802532700892655290088768900927113133222839444369938997609678579073304269601321135116655722145829036494585917722360120425011358423947274422599321223710316591142922761059507739140843720222818362176056694957242311659643330919066179185591784235369477813695810711215659882888113299852908975182562819390187302864956762970683730828963555811167892089792809572029703724152311377175453147743014696448140147355373191832707634301588236335103088837218534043140105568465262541431451104728493045633144585647405783838142121387385956516582793643306838020792956147120575345015891067004997379564006047465061357531325411142023926652645969203700317714803283498173827571879724462753351211575214561933840901578575805473074770289547356780473783768941237044482110291481015463998053488407957611454455158130404184525547689169665494699667911226731736166597550737478732413327547828307733409070908604269273089909200617247023588305598412735022019814353488250297379838238620363861782832208040395765775305461137107380728507212453764679653052325619780441638496086746787454565267368076999318471076483315626457503645172965632504975610317966137874240598102184157948239842550202029711617891392324251444703425262048024384140250989882420289759136159247785278066787967167395156585482873888812351849325754788094787874965945965759304600394708798082813982251932107108505674432851141844182682064744216876946856642843411063447303042074291771219918399458927687183800637232182160040046042530334387613544465647983988145899967053460235729899520046030816030503760024662907886624971744237927857931578733156817190974894160707625853718523589366339569191103991529232723036470885717288825553843988885812941781542438177742705491240479904582248534156093056797900902748816748201744038549474807652991538275042035102586597700808596969208789700297211166388613441434291826207507223738527440015512588157637914969140682271231995744574211420489409112899187229270233478397471355016974786745634417980350115125894517677387331625969040851752411300187394094814394024883824852422655919036581688742725015322028532244358843927116440079034433226740201162427286487675606925396759609181963937063418622710666686784724382669234868227768062649116677275262807317767836495458566158144857947365755945524450303399950846795009062739419980395106976271505795786840571059175110066644699339394296205417367052640421437994844155132489164517303989547093765310890378393472442822126410114241781656395026873663097565864994310552832823379248127483720980435689416108456283487283609009857332530229741728394584295295638021279665528202038923215779355126888380910340738573390790617631040975935831390700136741965914427973554428010604314549522769644294680866152445451735423123381869950686411365185821178785490432711318213082132035450008036824265211349895915524262931472673131948440673133696669158521156963512366939834932611102143176701957296589730934650178501734993644815669178427891187317471538870978096626618504027856372176004367138618856688795714223236198934603569353015951821396181506233471377226732957551966382695896156847340758898799046457140746842424615064750577329021627505154235645784012244017112333552912658003228405808603733813620828741435698483184294827504705532725875542957665556784684970326936081248709185166050401149463102827646247450904665127972387937252998489076527739773596005651242551148171559158237174673987993829118671513800375800203058082473595942342537218743805069404558476867733703673777801457840316479329522021438918427872164467681241488417173652587492987813562365415158826387008315405304610022206810782858136359414586225971137594141787595167766721213908175222309288595261348660536245272495849300928147945642703524977370769157914284287608640564432341866909548741880168566789391345437563341848065230035356706624498773930508704759998322982603205557776079549141792037093789075238659395004253947913969398232622603500982825986585189907551391351722913186226551842433044531877471281008140702177128634850310284788575224985434796641249915788785131617638371236331891805321553042273943943404120040194226976193729215978459091228796636245389535483397136939622667126801142604070337360854165892527624033477388225819402600562324641993207707690410466640594835096976997043699900647505126462180543136599294826924200078537444483185449815812226920384924297841759423718519222247515953433313246596954106660173633182013661855582179038647479322789921115303992428937364371753696143729032956361682769857339520860470790962237802212941713461705522439881725274837885489400445302581012464514959140525385365605025923255688429636092984883647229351550211942881230689422069870285836076547538762745215188407056032341126167762765604786661987907804059855418104501054773080329778676459870193668427287528139642911291821657592403985488674592039072409441264914093168257227199434818052486995560685667223827042082666761453685724546737553950849015352633675313505093342329960171008267990334007678331414604158258828255178099567323515751758583149771293149441502358522137371580413099765843282400986611756148644802401053908618897802289095053037253724548545339270220986760236818613867251913730698955769953312873102839639352937959385123596296269060988516368065000934965800632928666604203304640939143958789121509280377658950105368391551288525501517302847827970059242833867670644981429593450186772517299827675952037634638820362622194254091107158559866742698038524608892015816572819758216935506592269663644349293861645103934154512276157719398589121371876396589018541779911186146411733084029429474571074980538529511099877262610364400069099052517130803465485225304198095281018966328150430567966495744975177587376646615281933538461884640395210027450924783559975716391451239557687443553785566862127567431120474354958542289671428275280923988347527688820441994035721050435000179006818790161185904738124932951342857018888627663244011713614618293986162845353084543810778367852493376730241155522274150600811209991606402308282577503045271448372247145438878464753487965544606349433715903816075632827734713902982543309961211355279716701499065979723958915013155618321108098254057505154910720382904526601631266115278198414150563074232739045012176327023775565635481388259849544716279923178980914203377109268740667187297216526856508085305325140794527174851718066767127699919919957769912156644566866662233265354905387186950385735136544746212275791395435516607024113364498621277056967647291817839458578447946727403982038592090387082965217804683691246752490053933624613337887033803094653249824287691094042706589754008610053660850199197368978989438455821566744810250693833853174339923103449684903125684629442787872191938049008647463319734341958621968935668951076473300834419833986247048165494759416432296862614355298559185587579743532958656424646936823146703803668270467150253453799915228453966091019570707870637798509301805949417011557290017651770630195937316086013670879475290031088988649542102635110053579115517689907949552087231975576092193062228325722877172904051331273246479575813393986207469203323529538822414128654571680761092495140753051336117920384085777349264369421697154301170702688127703695200857679122197000794034547620953322716786760454853938197485797135627048526883196393965071345243522909949124258912825295940773262587015878033679110494380166972150883227345529022903770702693977230000113549308869986983220226547321639192707854117687887681459715386240666728359019722086636850924004101706457943713756359579742598715004205793807427012764242838315052052087191327559464950525433052979304732058813518575214971261959136201476507345854751570293715632707034865410862272615252666308103794846536206107352066278837540287007267960341837584807596575730568341389517444944107506375429096360557971030732927753050109017572471751824224225949659135489614251828222534038770656485447113725704908700122029381162882932694441895733602125071055694922126261182252076602585596575090010720976189990756240590409437288055216659681793453440702505372779247976965170711351535624023248952627402093209733522519826249666716916498877446157527853292558170108313200739203705807520070255552783413373595206714213640142129045947480477399514514084490644471995314696546758070201598268941987531094453320713397272674521085830052512667557400340663744516916488603961384745264806481618223188191512809774543372983582785362453805458883970228867607895297145973970269694737312638557560490063261559681201374365153596072022390234911918681101989223970104057219399841794092795677139134551576689196448737679152014052738635267298288905734649818309583373651787855172282117444429730829532116114602372687136826596460480258001691524335574741952972786860843324986850618601076167720286600896600987712439682634015180893748700868893396191142657398769784046059286357943932719898372012468465830123588053177676489817466966258659239856811003408183558290164782301728323615081832354880714270180886561027564160216845256745084548944991518297602405307972088477746936262037131765990191266045026016632503880981717257571721679924730221305184609073453873224116854818689540509427699936468190074994128720425458824032225603036619174866667298541715436844803385336075274624803599533347783789437523521229061979361502962792152395650837539351819030998458990482805786153070543937569349055902585552176118548250483892337454905821673048922590008098412252486754009092810030285537472605102665622687538829163800961994506147210958152329310540255569210432890068130326273104165957853209492504843904493161335862362937299531761802065814281472523925066981283768813233392905171621187905240190424521576790376312381972404782919078996324877982071335967574626004060652836772306165031042435030074803620007299082958359158625575174621917250949656651301711308167004997773219119430199571668877359047258299362082461247553608657306025337999764085101780935434556626320611783370378910214906739724486911819955990615271806901687502216868046000096075238827688227359500076316308432139662686321353607590162058817909130957888953882444732635214805856296651836604928219120166407165455718331345885890572183660527627855921148672479767376715526596652962730330976967352899168101154176225432310319456513470179858173785543209651621193100782626484866530126076650536369480183086417557050993215335001539276725287914043150075725894143776800603365515874881343031051214185930288214439610488046746988499068621678167618093809592399698504019297398290685132658757736499877664057554267848573567602010327803120704974488166162904203977118965218508387272189338670477566211486024445014993101886540302617303276830725337934402364251448521492294547103708364711897170665217983560904911036521634907901673355578276806993180881990494132600824856134472417864041304727344535662224015953101735364190868094905504464716222177505155719984641222949354764100814486055641081119426918648346705102939423366977152907123836111931719752654961525483882364581940729008765496449306844369465645026253039347541288905970848307602810722379086563932646179527336430217251369178559038622920092423714524496839549318890594484765278428387729107551850528662767884853759058159740787191499774329538820933557646770138100896800277135702100139344220935798982562250657713180317986286251180980515144623057536673420603741803284062444553681842125405934260007962906978739518925726480661650302756784483959729177669248706906120130915427542183380764184402147019837564403631613143229426743900588254950135191343548058022835847348356828742803734929163640766432196256136719055103901368951461729905678270719659984383149917847525312803718310968751220265906941879622039077545670417932095081470654541052552044733538049888301020778246425547917231429625798814421993563095313375055281556993827257581364595604451169197498494960480466101748966470032732852841865284253240619680522566674757404530651297685829629320287578479516721509383223754994651296227523009612246844103715817437210959394292772466771316563575328419444681361720301002853266018514636340424691737652616421523244180798817953425565181030785444178309215448769151797038900138491882693811595366099235912447756550009186578886671962801049105220679887615554245636472714702254956724049269724219307761790001495193809135079717298346973104815320562607451833609710380738978041197731770937325829448592990093261342565474283882581043904228961215789630063803135670827698464366162996560679316009432744672923727000818329713823014837473975165097099684942918742787456373302482435778969368500894163622366074289241770754496311816363670894346481925524786740722771198621964718341733759405290214926167742713449859059332648990586616071211812521480813102836542564515392284315540290081203712602539613539307145177521010150515874758167629469501110866067586912341466710321172849083505952152292720091623587334053388999478095445987440065921464574202834275057693968100220195486290823403274800536522919088982496831640400566003680866981598220884050894569166583807028103048452840405743079887963693666269426973039897471570830814125101267687830408042461973489976986612158180345726365619388058522226633357676730538657401812739120089560034541989908508091254806912862525621506339983110416119990953012037213140827902157812191583930612513990090981281314969983766140743241872016631390670041232920476542411485769760140816754713738214511034260759411254049146486448224458169686457224498176261052480932105063078626845431413442513295911092693391781302058363701750145445018368377934265607450367868474535862304450886664104309144058636829492983669262563563411264779610520026999863676526400476016961505906807666469371673472139327377210415427163228996829966984637407901490947819746723032141713049537635035504417612555754355492405698414030435304900435501353350268639650422770317569467725071472641125328195208483743714818715558169680358763408213077436697291859495934770543160263258172674636770568497698470686006102158670741209632512788554125671530466314146248945557417665029081284400614204947399513870257333913502066464075688583706485937345453000548598188271875595034720556933478285441172697078935998703012127329758709134395525651075365598781169457458328909881018425843211735373927075887746075049288031960685941020550666250116453471048837740539670904589771929644947417876485382454172072305864233626322592198676350517142311693393482756753392282933787812351037938497309119894918717386673061774890518036602319543875959902475732208630025904328201975146481687523485148276143822928756290676104762902890610563388583826573868646761135254390120841590672996578319564922714885269662368970022780141201290996923667859978976790435487501951124373702308816132857283165874370514807936996939618503633998848209617213500940803393613354934588685483102526980846709437826742201877405999067578292698038613909744895465227725933454121092461049212743337919350075761712002817929942650132566722657347245670657626722888840758575625417253950579229562156095617165991071733933538577047907613090235667870016694650183177812135989952498589276371527525520131072406456155473019228621168297211761890843959783623407399877667388125481854576104021504975392397793130634122495138167746688568564939342778417688606497324232730339838369174172291501799296759228579586001255947807490687997756432303539080723853055902493949803609046826455277403643881175070561319892175531437317744006175652273645439354752986801852738122014012535324210356877577706625868265992078038830656383369060615785591208788601610045357120522855170787729134791390604181839584912914417181096811173093762509217507550668237785679118093258645713182713203827360848323858608769387465543882601316105909029398008320991815989734792809714280056094350991950517563377139338674725403667202627777774025207792597357696406298240294834680799357908403931026518154413332515159039474848043207766611254704587525424755586766836933670261140610565956549860464830344315945707381034279538314098115096520619881464539530008658588515030527638796642018198495842653006837330036049228755342589389573354119864960115324275065871543295068119017758996639288679823423084254254026805059319345846630960730301749628474451502121961489315324627963931315458185635226939153935882679558036674366539581697709252116723540235924841276214245282238108112945862524585574165021375160398326318400433735714417995350024157031054570253189065288281996407938019601897773677861440315319154663514582774251541401073712311589830023537106671956146288716286155762065095522913582964926267048061214153760229860597638923641156504253097660754151090159587381429738854935117581169407136196945762988149432184614564889027816819832126170561696368186104127999393631604967872638291435533142834627382069799394843027991799884323018250309589522895392846514301459149131780517149440410468826712606937764512823192846857420772106848272764007279806129656305489283771601377280159608245101360354653003596104141328292450483280367955909299006013452402809265486898105177908869457806529549291660472038412950010411706380603733786059694226152351252864049854944949828817008129873981802039243109923777986223772365945641953236441713667355727602412435130402975489462116193685562111636062113518481781895399760106042180433390756173221491080064915691916690636941061398578506491067361799634687369180781316318377034802753822969852881501449267366107997763728118896677646043286513540720230864923178522184992104581256650494786741159132438444484134872121736264995651754218190253495012097612688701114080465826813306642662683231541347421703204664527032276889775483595084899915765068989296132676222720669841934760004710586024658747688129388614545862700820370609746642120560540785494317990045512330041726828098710159250873524750408506043050853659503123606433815540186632164657519669880004639578140922651909323154852139048059602766283505013235354845073340251792021411342976537904323844474077889403213589133529481179156146102182911550239875010746853987431559526083525256614845554153353308622358389102812691675231596717407697753019866005408794733874302822974771438788194217045141274371284606347681968632142123541753907482246779812201296810695443226954390316197008358143915247567771125460292172185161755648683640179344947082838809978214204448385931835406950757399824107207248469164162648139937984214143879367728441724785657868107545599698004672281572318293691723282439606721462458544522052817427613479027326800273097150704871691764474220862221264142049783253977320970981128746641026785228582567854181926531843758519447656114668856314682265451527916673366673560855560603336438342577831329564911919233503415254906374759623060582083083567041717784425717202375591562525136032133232678180201368960348391543416146411625279810208643659453919412735349516406473624489424626063196549500864406483296313615475314869861835255190866032323888235653660937238660432487141534390008518719891937114529692437469598959245493061832528589515177600284164805740445610404181405564368297558806453962081580665716169135473398287425936256890615764065431668120469934640816438587124216211497679550464207762585868937585694991405471894328073822049930840955540832660368670313241394828217872312334837222213216400678884852543602517464999014504510463523668704815277543635308189490886184310209752942581542462326944485814322309789570229929409228235972723914794749523103016770211457637358319665791199412000926022170784434960317062291703011581337143242943738977945102021565070115586071575746787643438952615406951477175130175876937214481797237831949740886093423547948864753260239945879704589390219865574003179971899810709870363554430721037000717655565208883996450999154901455152133743973240941420555158890447006323085555289015761739307094668703375100062829337037063189029504903711135222452434432645075704557869912524116105726847455719928079512481874335837484721574288400681751161540710483142798729782855683469237587738983469191246184990837386483401437580373142920875951797695468857755882905976307150268903938347483705822979097615229583707823592982193075077601745022786054625796744295183405620595934401302111574016011798383254095049615700616546201707211824836547304343614664348418702951102020820713105374659885771377377740385806675073388997393075015478694341421314878518514846354160863345024366617084031666780621153219481867355616903137112766444104896742381494297850881808482148940997531929430131152644502903449891440434498022780120841584087112686703375598146360612107522438349169418094989963154576585490746492744483926499957451615324263289387437044750283689452464444985462182869225453329158492328948554814544517144600231075221598301940489289346284923018910113308624972940271068915870038776250955810172502816056269165998076753440521058500210160570632534353520712426094285570490518274262279793600452540113973957089653333847888847500149274334871918246145442806694999779414492604866248277167202031502054260856307627585093852033654063708861206131264807702791107484871917105883063437610579225137949365560668545672494294529980129606858845470581740446862700767538797527578794797519744802015618484523284038659590618516146802760833632809938426205346508589337399274691926233578569983044058941871453996368071467920465875633627139174777067773089620159004335383144542829434751303805117892174192820893027601028024961220303621256330483756395685206633691402914399848595600774223876349235677494180526267880643703759045173745642718351897716930166680664031663648663321380659943752455952088426920779241048715734065023341050182155567301031940047010716012147394261117878030719505869940158003636803685084321176680454203337065739918890918924861338741264820904087747199582213763453636877439634846726467904340262235473911333549377502422374868321250379672154270472436928051014316580336336390128062876317789901307504178029445307669460025067179255675554977558374798070621274554343532527122180245923743538495813589041782285663404614428582498828277936492440241831693114507716575211523078883932221786948667621439718965092089003104963160766440235085434199587532951066035628755340963714203970305165045292025681243647710345539005928021269728160439696129004678562953769165215649418076192626369883990882623918186409577885381856649823059763077639518801205697086780818679949709544350048320999511202990460555119746194154587847573923305957570586646891610500465257236874251106716683949340222728687285905629210500340939486001925648046960657080919348687348690040557104810101772288525611258598103403471892188709464947839621532424275383336511245915334498352322116308517075603048366438694575481251155579857436464963635301433534141790358318831270050781784655604771333249083648531933385663417898437556378485044952193495768805985761817906532645527741286157094794269918459618947448718124793040981073072297777162260286450097361124428137846422196890684575401236261117340497181921059966332162724009963145111843310650224232261970370298723917337457083908249493480487185387361686332005887311156734429024968145382338763121903109225261836216930411079327523534430384947206525187740809450287472063530081579064769911795001818037259659624432260722841283861057209421274947118325623303845239443076861399099142249168200615576171271536927942427641491327979694404664750889535595456471240508963532101315661697032812072627008463036218894341541204637027667972425976811267346850357655591974187905709621203786420848563497380977578809214002154491055859429611473858071734376965022427519608484669881616985620537694806061952643948641631965632549409109861195681375001313338100493515691949393385264377945681019190760375061080267824426043294918161381345961123262264354164822891726316712401823942463272384735105443562556700563526127782921847631582027712597000619564226039910124735799084166110123629721775544435473156999516666862170653371563246945241156323593469633785904582247829603826044901728811422972879750559720651309073929623882801869208683717966140876338042954595207610823245283056335956280550018901599631355416008861956136988345459289485519281869142211556074493975820325490555992479829748327181845281099622473681256505640323564100624407438495868336962900443001094345519971577830667279465281746172784071817841734361483453858248054210491828183547179881774837876775965343206292514018834662052675300391029083733472413899575081081434786531873731277667827695877394383129348344965632357535751009251092871264003073865705935168991887677970471630640704430736298237458076357230531554365724705899693777555761911556475789772974685150977852560931533453252994474193640363322233820177047922061635802150832470890508827672318663330087703967622921928887546965175606105737436096299652949155498583240858256704260135935708899819612280098470852407010026131029947398687003458685921723512938574021870467819271719052360955763381033822881695420721874688106220162630007318741362621051900955618601223272045659597389814597414953600926104861867595147805828292158610261009137791643524292927331955113428738010013800542338771369209504335587390952453442352496687925209888926663691592976478335612039827501832649214385679869377173736309059874386872545839996588067398370517243931516448371709691191610273040309645105112417387666559000434557039224546022663840370983404762437171466045329503933541064100501852639056023580923560918384340885051964957666421114858916377121071681008901757027984393886877387816419684788313333725867581893727611685731194300726621851654977170760194681373962310328727924476379471846440077923373387948291458254085576247977088063378099110864226001125663209940104601010208785495480472827363264525832938595361262017706733546937439546604725017125322697468334012988658141218139850285330595579214934126432726152267345524118273889339337550213753646239483090229144197029910087642263649578143592629617950384965710076692218200661141634160190999503885680947298938072054453114522058748716270961811724804194314626943800417241308570713113262463577526351047283253843245454301954302326905812810998048913317598908735982524216056088059891721944470931556327702080438219706356586674810322682127651510923974986818512586793278374112404429495391396126095261660589689450804742750135037540706585071644028363289018852592814876143717326007035746381042193062939168338865632587413131088043499077666915995177484677351002933404961684381273437857272634890681989679165417985645988694100146483924044150489924727796360992219841280377520059765065733185354460457857826713350261823784456115342918534611753320390123885140786572655508139457428606878104767920588035047815497646234543976827205695877026622863136363348867989277055074077652495731828766309269373126700395336596555718833645755583804272742744066294845346471010722142711321543082853348180703095850837576087189065790330755884067114458656525460377740011465221682306030185395712248254503536788767137118314557402532328735666282409365754197348279690502184984255254433514268423201970481964981720547091718568685274367038108166280349881128162273337459252622710323431531956337147154166140756359775167319232650777134667730429276659916311283085766554200909771476814143084275889038230541761932888546215414253074954550606812084457435005128947328604995446082392463393475658979934973963446132068840085016219706124585956086470846767624781572919785015426806778805937690290255783248981239390933072808007522104016575971015486692994965364839287243011988328887329578026678736897169043508436277880703410104412207207813139568128399473936605485396835914578450142646265898603290596477092925477787610098883287724466050201631651796086994725053025253933286522015057999418942360126504536317713669059077384643059189066228357740437653367906631172165139145013136382197182780419846418024168580682533928641646373975145472592251775116475769199044324602555479200843526126145139618501647167853118245731147359952859100705958899273329599733157036715355738465407961736815963744505870599310785765320736793114677077413932843203462008688189895691073438727671706850712569212867362326222812953236011632108085429870108842471423116300494355609737270824802400263794207720658754828544672649938214481667186177049211310298256260609475577219902630853257064514113382088103446076191462626822513931726516256527526445999945263728440179667998145385475870142558391666148543967451614876041312376206446020981294313386692077713369885142194647882203955233471500507398995374094785842957983474084176437639697806270075461827462991567590565355583695578666584407808115680247912246510095826796471890178241093958263785931327157646296560384257627295172383433046041516908615071820331544640703809894296808007273505277262380559115280762909592092819135050037565198955573314358132817268593669678427816768443143465348284337648420013605264669954283273337754837636776670645745379597552470248132122267701419634591299599662241385537642568113481999048360130791271513089802464696531090851396357549207237457963390226067398370861295234276715807200757751849598937745660893376222469294015555196448770279042728544255145475962464179254027215963789094676739470299802223451093707836214863470751452255458084347552611716454243456743999204266841212172969056197187998843183895341379842395457870567834211751982272031904163113389463296336909954447960850267687044667290251190617106194901015884200892272865710054797415504450433912187531631887418455389611776783934778426507477799905149390918567005255234762780474524857531521979817138783476904385468623734389707654700550957305757372306790090428829676127540656133915515452997457319846015059327891287778025903813597618568599994330568046672127082708192926623551472654780501208984849952278839256776234060852065242556721390837757503466765879582367933241524947736380157553907987573501423069058350864935895909444515557622795826454665531917266131728319949133445796880702175630915142844850053862786126535798334949694599026674589906903305452778613885900782010421982461258698796591731220242470337227158261650705515695649701898709964430860535730477940387763434672561209287206714520308287887804674619325014831657681635685707830772237564336433216101217876099844968728515340695908519417455961671470972830675966534746467790037333620167998193096701320527182280647222857107843574318889299349460586491589404912156630563599339821110533601067767417037125257950320094517847838631480827668776300780201970314245607153259402640884524718108555557492224300241666782026982899617793781694089116702204427943452504826437109751265329893062014783915552349684856171833633581371805787034902988870759813328392681925849536867061206330291555567786276996607427854188527463458041183353934353282405584174607524520388330620340276168194089692515512251372026134918863248091749079428703978306941697930491664249279973074969783206903473670945503402425077073259627777054355253228144041419177731955800795452653689862916141846010035177782168577734064053840623668174550426574892384787237742154044594988760305163159513568443157705609491198199968387372398717698183167639973086198687587127135148383038300221385772376657142382893036593621430317660131608529081205822592498924277405091496336083654708200390958306360048418753567226436401888383932027010818707079020824232377129903033995974522937901825259052127105392622080431773856004356111394863004444157627082274493720586550821479051192913327824061919175847200301716100779471316999421614866252778392666974175497918830838801136770158404399275924479551615691747985912707325882146283178980134673151031342429492903696005755194074873462383273335880043104134616390928659529141689502924578896494134123968249990004187691963571737495145711503129784096023162898735474156353046197194010840171314024816677629788891013236770107707184925946261845210316272966507534445373852315029495152788290020086000399158258016226819816597835592000795105932600427953243734507717953407838189327254731710811093367519966505862141471902761019923042965845473494811045910462035827155588456502737296466312980511702481003556167184446352009100134422379333445588331463177342454079092266369114317780621218888728675050098987753518150769261457062026470430895738077251917281527900495560863552014888361650426389313023886162132511604369450261192981297266883126115384719962151677150273345664215231288704178043325852452551057492498280580793745880754654631485678543787472768473041619919596941091492353180431047943987321578677800568453943270208453568541391612209531184387599455510192338573067895946763069294301457214494480905433968982347409986259046113572096402713982790098929073876082385851386842834196487531284919755481226520560118544649248762671310976639142250305656318410536827213087562454061294208415402533990317373541971583277250956049478526209502561407980207847875400489904283911369189653081997051346272918686831700977619008379500740810326736012119379295276848557073160699925070131198037673740300069521564935284624256262831301942248442288164778339153466157710014984445546568208426903019809455511983497616249087415290934853423795251881916224314158487031255643869449070974357462477702546703894968135386080476713116562540430146838602421773440556261594869498694675692217817091070438003303663143926498721832754875076738341171083345895901949304875385242447418773625227296668547514113839300948613331552681945550218295752787811237281510633249651657002431051307027258449117194388114534432073729423180907627842408614786654082160124817726073539290686632826245880650695073981909485551028728330450648930402894068229848474157789351345334612116977662325195095167479239195287344363544290787072353417215535662768833873459586332512940707586117314801327867350069301556543790416656772292938208649140689703825183143401866062176488663464345134769432861293936666858162167906880277753124172359688384283443549455257365474281408262916036370608333790173832437193716002492295622459112273811042252436123085155275553573057951744332795393289081906656045959822291632773801890837147925179646359049896279850539839263228853545513641130714913935282304731072572492628688072347297729856323290962198886716499186461548813535384464725876393725527734551534995378328901534133968920082223407400363249472896001311174167440444228337059270271016678674955116055020790966690354342494930706071298278411209098799259148494085804643597763278015800018310404728457911940153024161575407057062060923965656686456235650529161630773597807386251696832639648619885761237933970495092627793052980582111521387097049449372562678327540802879859037056669318490251648541428436335181072629722132745268066689881696485072380311616821361030248968236596001940904740924233920300000778331149414393281100589060478990416020331428022060174124782178804914660784363303555266269175906335231325694113072043474781191986728317494590457628126407073787714004336139458036067385782604009436497808682944003144593733074940260380486978235240396085862653721614871437514079420699900197422016470308774145991011213353887255915685159525394287403251863893943268562017886854215514903143264992455083419766326496497084020201488776907648816623260013174791622568486918501902359241241947102503289996526266127963439670154119327161554930058731469208312750924024628655868762560860606226686339259406631779712375120100140592624369781610333418582226053139041723886082245368972583646211005567350487416218604363105056723160189524601361790908765096259954603123794150256845620304780158845853351938112424538769095080558391817521094547982675817231947102967427303493994482173173080090048012166537048446436838908162137049350717131146176290074754389202780821033508709524001871105599816968876756601992455989557129162060711721324478250013214765131823747579997465250059211429242909717538840365044931842671704235266141499260584320096666428686585686243812813405705187124150017024589268640701596724072509620069699387562343630310298282348367902832356352169865782233663610973355767080712449843214369728891991448460455605556910057532862225002731033411935796905569994258020126715417197349340416851473652615655182633865257731560032306991359193611240791752377362696002884513280609879742529245485963155327272797186057021622074750032359135475256382856127463201717735722611057140486628260451204287363133518445348722115577477928989028437668036916894613964005682191203547858548004377427143589687774749947889704392229912723198881047548067000670443782402678691378928433890664026442878898279439032399781120317081424404487265699352333963281822602656072370417317394360487427979955269438941238127584197876576738231411605819412745711311617586961441781257293046857318299535271022540732083090473564653677270939907984189082205652504373843457562213984505164041361541838506602597296736798134909929917709006518308557165155990698455717607944179553678716027319192952161803399762708233939711042322007922528357431076146429338592158450103502115112301188570232575091080677220971539671433737675765679306238004798620740086340578932811022222528177722274743937118365382813725895631111992216433486466576939290441036875868520046023776633917407400458765217361100368004668288620075817194416991271343879870596573521684912862309730067797689358587481786098598279275677917371267533154965468355346529166985614955640890105816840051340850705761891490343793150892485412308612561799330243090285625678143324440773541199358085177371708840385844243265907564253910681907691486831631251745091711249859997024313559033829800437430905096735294026581775857627301699455914211890388458258230231376623203982529157000095814729917005412266815506300474786821847712056883587564901018866659600883499456301739921089271774096827723675841370962483517507564388928721261989902746810563381453960271625123059724715937065012405575576615831888962635908419862663146766347951936550922849042595024813391375482275398795538261774520039940826566253666220439220433173487226345708789621638695810227252128447046556244121807277992965292566349616166851613114917347134909171299140008458277311857725158994616894316063463692297623829793877393290488227298928539726424164664698016297169266433396649638614952225415498560460674572784344868473046621537825447805194365298406007978189302127299766660532136551017032474390316224142424656643904492298887776162088336508161748551059971341879021039569605606876451098510736992208985119772829632425585153408974098656356501081081574920456255870500789030148302739782291448216806841206319011699548463963141041164514574875907962728080943283711271704120939364272480067676449470779342097658194508925221502213521648524370238742986254707090297892216498452034022730379040159605367882742987048072376785523875352345673100114736539742129825338098770983990787803462833610151590958742112084810162275106639241886707816348414261883915930147319492781699434869478034500048927353435173407878678906493971064257137821609264247894433727131873326543599194943454619729228539373266030359731593010648255179935247459882819241400741981419373529553718494655887773797751923243584446414196479663688086984022622846001647391213737671057828188501756201907860498330315788601785429885577793978979781334724497481035015524862505507806377802110731348175746840830350799203518791463260404854049028007373182750677129526448990670458749827090487186433976012678696033484405017534455256147452149476200057872377539146581677010048412286650077956516357342805792524211162297020324778633079972407070783335161420515014893363892020354243824920753380858048503809800883590239053116238463600146887427066298831516115247700245938089305073694303707429845903405970448898781088202728011153200454795601890645729063293244153578646835024782885004142229898164413604234872896316776414925474391133039152369672372248006103349195569848247562278051070513133564155928519866766526164767853014368644499175857610836491368016703739763070777106774404804945652035463607312482485049693559563315993390222431628671986586900847237450642617110857309759964409443737464172599047239714099811186037975490172646185763388506823693092665996326879451963187363517674523027478362665164422060022188419626464249466075164092004293034653899308092564793336255215192852830107857309451624520508677416043161006517643057159455661056189993452480880731476987597658372707349618157746030023603812695483623952238624889709631533429334768087770623229098613508703319462015033743523280288661913434031421996998535652101304989194182456839041190569423874704594366983769988040936718257766912184090849359592115747746146321129235564382254497272708674970431542055774838232975097883559726039633840347965117066100433103725421470657124419833445543765235299645017357076136822918390461710750892033835276005715904747274079836426705303865821569836263316159953980245368214962750019408285607763381741563141645659660052398064525832491834152628197060036467067854092852956620883012756801959565543194842925603916275000018016800432320712927633577130845572508361621471525626709271820267019353135931807625558902619078902191543705055060593037526788632287895917026853727200842361755972287333118428860509438151375651285121605559022738330917505729740562572395547040008864049436192220893390768172338527714914058215056105546261623125364829379181087930517695930895476656397446945868080601526541114096784656100053101435604267399650437035510311988007276929361766473509582720092443366278590610013235432507595436314725505704268086453155502772454183087060845454398040803421541100814489319021002839462103764014370317646239913739597408691155650515823508328209818253628805438926217476932307569160212949677665864491008925843557631703387613065190597455751641860105236700799607716428013601876060764481432243510970608133368501111287987457882066166851420571846821046303461027888769471664619405465668478770842740373340073823054199408279300437354700555951380078192256482702624255704345399108518735992615203894970501708033777131706034937252950817040161888438827794745109156046935502894610909759526835518909295808187528691928086674887892876795717568136065246558699440197106431337444939616569110140446541501447146137580108859085877700065846025440864830183059222673240174122321210348447328340200942835150371482531218093122118662866419551893669719661751795312267349552572512155479646305018912214127507158331076937138347811867624506384030758913567035713444454464309452363640427281416729880218212060904770769868268247141814305023253621283536029226467547256009832440288438968465077560402141168795106147698985753701135553104081769268854205822209896508602633229187761919922754969561333721469330460990622072578039043001272468822792750788849733466472550098641954190789144356655020751342220670350814292499592803187875666193246690920008081947144630996081967737245181182213243146963628465700358717752603602801926120131248318215648853271217468357368201730076027541953720370149327116364951608014049748817884569327497886492615890282305610898675715869197288545740614205611298878523692829549969102531860272231542722849105940627616664238026183757770368031989511415259144968419444731845957166401430584209025672578344299182547169702087954237319085732412767300377939571168852723136698830683637590604142164229411476107453848883853698496286397052864608341468632866306770033407474749019591694488426615036981761801289654674746133611479773742340147238301727531462225376999150470547449336717585524991795771792743088785134130260501191197333528917402411371219812604832140658279587623682399034379118457708651565676641543387883128180492091055358666132639858268151867467842700227509987687381015273465067995439664653161212426008903051845238819846245435374460699848602745109587298690515046525585020500735346541014260469901008619045010278082846817230959022831033197387512427358181343832849892813964916104116228051653635864644458581672532075889673676168734769786603039392272797017539671035137656635596872808828711333980673083224622745448747744639467468332135784339604165716786299514978974063401379006826560523411093770537708107804159642026738011549640477122228477725538236816788828507379236634130303527450457919330705580549572625087999949261740138614469305786697881775564050631177380451762913172921437539953197496311609067281088367991129944010157019141177224657170744730128573756712744516949804240894241689106556543818122986679216423482828383934387111908726848880814250354072499280444442322495066667195009664838678944588893471862910197204699620703249738260736447853170509889271102148605841336405603339130667063334024885575408325244507367709403739521030597302042492714738856540570334226490825347431224226133289527933068404202756216824007714584381048099193111927940805695930926909778922391269922535385963407140611454330005209537661185382935339058236810234799555796655492426655494333449397457577727855383015202961528215491717803705163796253174314161482787227227808656089311919940941124007875740899263379037936226973282480886315168460925336762606644867300116134503048346699746504032641415171353576058327531083804330217744244931002598419345339739076855648247728930954409970538072895295748337348670566777705578219156235959360952011215462684558599506490937662775688335225192669659347210427049777428232352872864120450895342096278814984887172615280251973576404724173194017476692734254389006247804626306378114257923420816037679187241061264928126769624651830089393782431841095673574057435988000327440407661744112053839314441914837049859971040982916365284145581619552730732085269510668563686312254007352907416986924358817681931302295095729317782928486645525248092432548796129817092129881216173245159430935806614646033581675223066777173157244379764351966436405932618040319470282232996110690083155536688411416702841624487230076272566397519866769686217332406953293527035413240036494282360395858663683622461813731048518341392953813150494920557115033989194808017734195252247885614951953043582239216534597580445506553117075459472517054755644416492576674703820825172882263046244347864731361636852490595810773702946864739097415115322389195608259228446816063546261195238461617315302722069774051126586630020059243292386365672477338985453159528768412533748198955978878872381369557922927937889547365443944673195538984837486178973761522947730089500234211677592840289982467232368596706898703319854915627013158558537882413887296359732564841442327611296254728193115762485572963644182933757928682094033630333728611787215942973263135174141136159090614292792841448587686214104765791203714706934373151346997586080018782910754811702610857817908102744879920216816559970267576547992006570816293390387628924095862287070779900905510212255562572676207537859596943304512441832271404279192565741097193072129269006969529295967389115746184931784969357069700213372635608044350368449961623006286852173043523658345336114400054503126964052293206732032065231901384761848400686662492038705460402239439401694811080392210253663327792275559591488983128237953317248070196912198338982411501039088977482040321020742370735377643274949905601588986690845471074212369017579209120827108046131821597971214062703529869643194915213020174673400275633789832745850931102671594152619320258195908600833313816712110206860909071116655240750171882789491443957485309954296933564856725580055777996680409743141109989172683486652999799727576944074575314891549352689572099334833633187141595139611460252876967673001350766695711775747302298171731349864962353636532072501381825848491269400183910122921311399629777749699734164950423391564934436293480957187759352629227986257391285670192292432470331864078451164589012715347292929135863350990569885258393833862869902457966935979243448690457414028605376155180364602341139038817782550099683866176549256354844739989019742253033364207862112717813148013312587563959212430762668873533285873741433359456138697808773759197831351202108042094699714807870786123909882714585269541917329213489661788559691891366453107842418356756263053489655027189239734304862893426390310028382732865627355834685099551158800756272647040552184305866668927023890920474024660192094576717861798439037377045268307870895955771564768954048517273065635860842660528448484261591891379824188274357278993853939006824124546738814800025096522176649693663605780992297437243430591909507035654562109248406538874788555730535993703761924683876444793847222627942266162501145774226401084460980703980118360297205651391665924180647671453806347698813603593013080596651688731877683960665621970853710640982655881411760733185666933537225321403823735600234345614030726021078375380002374186132180998349701048296235997162889304389618703074346668992904942586040316334807355237966571801474612732433771398765460081038830219256719863052585151976314340770041300836140082884624968911067716593676299218393919639093040128995819083421754580167300986125454375545149490104183446768418116817920808215607898002029926596723107517127145409420129937996954762206860011323435018563733537031533283958397149467293680429360315582996077071367365841820555220731513661047861688519990013135583283664871923450271839757883669651108128262176593232510363863367174474119616858184133793477134679907669662637433571815781870933862000237081281936359941007278134756442843048104930016565985187494754123387589813357714309562498734603746080843583762933454948268500132495404119699612659670278379662758673364906876091341884111358969532795429812863929447001568528360977827579154510563380896687862111261773824103205860257736373753023201598069668844244865174587546966198981974026788569458485698972825870977300180732248574352317323474218141912557564521680181799497887147378775018580792767835531215876686002767453474087012956880297482351086275138743018070310626944871749120190652792840146859182674218202585809775990798074076801763771096724700943782406914351451913640241553461747171877125328292081324569388831930354933705522279115180588021348129701989501150134072744215172653164437512606164619807613095464073812039197277399108538187591640421619050391860688445265376103159032803848947316356636459268252126887353213641694716281957063767377580123334177238863484885932132117362912358980316324460563466402653646914691712732928448618000724218358612806200254476840829169747145191544438208888320668370292476357199960884601150640898021398398119586286502163110364329284700844916738949636793837034145432806111684379929580142063293657589190561013155122161457180890607197387963837021034874092999880189921463534571989556824538372237770210563063239618935452715157781040120263877162130119257645399205395820510956850302989276346362917413891245264617964494394201724773172064975733953262075937997763423555601966079884288861945720509792283323572578176650188575926459945512211106428031116288427047750878192231789046238084321601618451348412887569023528169755510450077778789834015977231471817302830612193276300248382023000495095619704568299147112397274939704322652345142435102807321648889099576533890128830878778590169595870904644760366146131353219428432833024252798537891408475069634189477818253709501254595264384103970554055944644845114124295289732941916147195124782686986800166762516631298419335462256290043659843692580717884538438199648908272538893825992567540643827487714032456019159557146529259341381779482094893411944476271477089000390545118583117558065443382954146212700559950579972164954540973205114196457021818304523628165328191757150132535825042189095949757112946991983253929523226243123433988703519351718450505297849820366018191579836661539205220464838209239388975872763459637382634120037390348308508203870667020609717661829008030738756783227228755858654247317579497468285869952286274645635732685307517022818459413976552759488491071217744370488557207018317324307626876422058590112413696447044709902508079606111647609969326076599526085279320148291893212027319465458696056758176004020519041979435405336792636532197482147213269387998508232337714109271420476561146528355199229749758881270643683131425469295641590458094134634581288951959777778391574694220428113484131728505255780810514672025299098418144884552210080492396649881154138163536043910236663687825622346996538048516630913314867288838765301884832385769579648186580070191536964511412041528576770739428169771574188559568795411630094440340815899069039957440891563456683446579449224449737818542949350183995719577823121767845887830473751322817762112984074514969210116282162153470866983804306155522675587984780603516856906157943755812767246935107638124933900704775759080390406021564684512801309404405442456970500455718827173115473100311248667255877621951914021564464185083527934655004681406006124945883552832745921513270087102193672480352792449837518860007974904135492642491204826781506131922358396735460204530019445028148761888129190311889157632322767571949995570980828756864538224909432105654948577868425403792018240690963157047978829029819614208063482916831827182258158813181152150669101728918989136715577089982124026543646912365779945747303690165299096145114487480003687650716901068414656538264368043283628580076475592053517518881270220884423284407417884090390672241244066382829864576968433165964153320101235696654627277712967586748433956719565198140542155192987689937816727955347134270830231387904165715017266685888587832009620371988095060732068422955525346885123378941814744685870875194332142105472602037854282723372126186175162484209889289136816098401475952621899496298157161480760442556631195741831094933874902968488086968508432429962668191949485925560003929951804050267888924798607656653908143481543587429061435315571279140167437088698858778557101622392381722794682252469855445640566639084593907885962844566729464746012940477098247057439280105026355103437618804676872097221050620792246179911547528925600465795669413912431656520260162211292304271442338348649436827837733378695747643798160407874637822642146777018261308587716669760439739122971079108580163926054883496336780428479675680943104338821566639312406652835180235200328326726336937495620377780483803138174595934963015494503975004777152602818267193269749474497619216333946004828595463739330770780026190035923759243063076434022575729244501826681572538082796342914179985076538966482916343609709270085230488047819201192437117937580259154443862836561079662330048844802556685570186028336882066717410622139288375669075920624577426239080021328436281245940179803986556209914392148466137019221097920766587797548221668625978699271087684959119158743840477365783330211973617179097603880101066592832396784641260390098773518933512734313554212921977390961148908841783260499443420263470016543666481443975402306997348450413145734178302383314908982513721713913531369684580054082603544787846086268997282215266576554021113815464220697669096398367043413589382667618402818247327395265234149747421477345468593373487276583349660607074554137289649176234381262228648976036690409624612088514895687512398351911973115892506661471436862080408218817517491635483894976724972648771331021059840396675707340400989517443446803918976824308190107114476718617279655971266936123636643666515689304008175744786167002271760423146969509752341763595216497867231890424969522490024925523178363032033900682488384865130835918740107837078461363622284127124690626420218593695871146450516092712614705624722691359278518097638106253071831304122987984495909651071058017681709445830723541940008390499289160050144230472801561842343538834306699850641986004411092703648761568912854401444414296574751042445551284578928239066587640858359612107911842637705861926395080596274261122584794181077186064900483539034513308436614060616257990571312623292058784069636844486865572403381715158206443728210607335900800725441250403455598536563909387261404109832659743313730314990868045216728533627715048816993357191405607624192266752691147316176208932110673619733862355123904577507814955368810210505603725585714552408118369417798091125029178456240982938624412054018467076888466903306129943370279813584869825992758275643716714302914440955354210642604137500267061828047172036563813626692097176495778241521618004000269274214134107305080920908984544203468999469095117339389694517738454316034137089119671294416899382325905518852973778242617563823315621576890524267450922200781303200128885030363185538162453835048266756731021262757380939822318976191985241498866111458107019801649905456827609820029425033105139085731539924204052033580410890218084075070218254410325337620829254206975360010468770696200560573837865526413013730830134291963686524601928538659496522163385751786344196191619755427631131944939027048872115654969827766724218567125642279652852269880745449836127358865666320909990229154617134015932197330363064216562953543647467343099898537097211327647081435639823076517377212171342126387915259939375316561351695253264961291948663560790409074439252099556450197109506279894411907647337874076632588647365450858309369498617878867124007672228398257232541441185562408707343726730800385156060720194625528826667483317257150126729291432876519968158890954799338962523158275776851021420375721857264834050563162704503226864621341386492841267464194473046532244628902926105210427537828125255012047386723759414162335788250236522593107720947176477181269620465201923191848705175825337597099256715225764577092092093132344161054458573915728812458476788781909559220840994233040405668367192811689480139482162268942125530177704385828025278925759878729767397217640540355681191144385995042414511668399101040898450152581139762231863956350575829068226791730648797927764848386224706937440747852321647039168339926658193345237871159108483767016820313264222560514501486095982157510660063717925505530833967547062304377977327897137882392896772893813816162319468029068083042214640110500617179809034170723263390658874361351503447219382224104803783889043115235450567085632776638357136114097906016027553937101009000140438843690335714119457901428659265178515208114804907746650165071719652966962112107324322737106192328501427768041441139109033551271163551474028264950176504876702756675478798076089440143826090910862115322005970320781397414754756892252692704807095424923623920855708490938493611447245257269283161514686622606309350688034676702932489559905301267013834852481122104971792299318432782164940389347467284099461271980631087715707965710994531815484479106667106056830160668550490004387989040244571158615569181142656621904139743860526310141388245553239749999833398419437502010928358918111154629952443260741085295612235326609133338129166801089790667238011343137935301691054904302021340639991996358192482253620080323252368215550386696081099281996169321132060878504775312153397329691404141439489532571123548420535370185264347212812849112707217423264256777826514105430839154963664163543405794546833138389771169550958235582772476510903991128440045101893053398089152496370516272688774174800592156570384837127335007943260860488207539142722153660449787455249420666227491583437856994802553881304819702696872061398555329391668162040970420127421394961982089502880367138296239708205037775055168345375850287312087598713220299821974359524921758115161228225075707828381034975980960868033055600457156426403351327638470217545822405218102947019120520839243756406208945278068237099442806858970642925636264575416912843288459780382347997257546667010792319929054878710494392579599202796521611259202885604636522753167835627975485080941748085509966839437773595946879568539022055017266260984739119191587321216884240291195185617622047042851731602185648874714405834699431922469368119592358026096578208035274131225872600172421701834837221868339684124749503700868879985024332750177901620734667058343043282400416925953845562330194042931356306067619165704568247846794927569394289408466720804348630374198389088177736704988756591393032669093255178575638914311389204939485520111878073684019595985652030021629581433365454383134501276499981135700666164036627094448157289215754365826598781148110161621479940365002346321057273284786394054196980207093493040366098408106977323188762745230382228633909834691936108907368695445222088234908589671116440700695991181962801091333780159122204530135444922613854837727157992289650007989419779772732918112826606640079034969254197603827067036219585940519616633185351259151323715394179426176128289161389346187897001740694615770527490466645591339046843659949330451779931516088583384921086592375633905202572723996811197410603419185698368499126751043658637376965187361760092832992140460987614007513028035135452132935221443835001551418042971200364953585289783738610821060002153164929418908623122321621117813735698407786137152676620856755619347082660744030709306923272300757729032690606478325364877778124240673424549999408719593681794057483349070186468025645992357774266684402300647797263438082364385552021820570778594588652199169296511180514302926818557933535501792775885447479174607824937965183956510504906755525531208822162368931890795079771602095474716096745635627926941642913184005467681546153342475422305822232713363752990663915077133045482234543788218233599808770201013782135132348224823485931555134333669458485189455627123983704436302405190431635452092108099615176726268360761515620052631714432364210439669741632398788101533581205972282427269917924805305944705509642192527865854282963347109807622008126866540902582497798001148999413561864457498003916815294529482001709627964798505250982056911282024149009847953363792744440573181871662888738566425169728812227730002344302244266010662152127488313365920015153921645336740336201311496611621468276372655566175623881848571543868440604661055411005230204642545999775475920190559482901473503925875397099886898199961000507682632130431450696658954244159545972437423561437439023548979699888646739306206679334819387068347023892140499967616787895145117593579052144986017822431754933155314885872744490480938233859908311378321749783150678118395695455202286988748951371057981065104621168765899566829105937756865290110508360675325822390970718246229266195996088092204777390796426839826814845839230336711833349181388688634363988292183104426841969631210281552102163017945792060837377082313299217785983603119654862603275657633090412662786422967627612426309840956889609842976632911093344007426454014949182803075253401529904595463282583295673684353175042760172117130598791264749137001300520692393871701474918319782202456568991025214069528983651660539849123708515023795698556276294998466902311538296409498168385452740830246867990053363702365835643785401717255089481217400263720460745431602969854520477980494110522915555587153205298781173734389459452886056519003465842938274382904989646383634290077666212837033515278613754250521693394196962947752058360115178551776808937928567752101604799690105414458741086126368687955320490787556808379618504815913244159301787708135992973937421537179406856826189873371420323414008956084421146512879459489871167756585332966728308101037539791574953088656896246067430413185865143958088991108666297371846853643362063947392628145452180086126197793293654549104667970006174078612217675530686920836885588952360714223007130007686280994142520072046231221557701188334208755173250364243013080156018493829996853332648688912844018858848926138631193993860685628996496960834832060985335778994397229106095255352538581220931661393777808124118768556959614641687306347555097046122103106980451480519852293257843693712707782767775412758537879878001936082673815991357004149526506893316215280431813162479359195033642688082590913472400648488741692634403839519752879879513501749826254277191742582169066108000245649920711654532456711247101182994438842230728381057057152111917762306267303208127310150603811057289713967309596688394020082776406760216753866163159999680424973464236958602217859441994134170483764790205083137804455917131249458861895754413709768592312739789707202889472228003102754753630116630281428907469432617632073771178227014348361364847168357143941435162871494430844122444847904289494280780392361967005553501049262536280150589895975726410893883346628149093020868012366510796799817436163016006463891105137294024806688266587584113047786169415200744041464979896707114880333499004977381920575056624207017524159022728423998358229434088240402986325395219215028500930649051101173061274125174468961512014797867329875319348604536512246763532191788831376882882509004810703285560736582714020709843080507778251617319159997612580326388862335237284270472675844572346689628269050614548463326318435992068706762402702466168707813763277024957761865229788545726022264266565249076629519115864753958072341628367767921849863110425430953947908900969911612739448113034361705807719294532504709462112693969778348634929418487900495601040230634150676585561487238704219631431606024636487052185842256921121478081215471737058711961113645739842649579143150059060862927940214817918299367810571090634873310288650581814391792008823988753454930943714403254461684665617194336862240157471591830890725557098063789871686392740216075787445728619058097215838146069276372404677332398195142187390683891746459027857861361250561258746961867558235763156385211013841738777466425729064456320146441621686524026171108512576335969061253118774828749297352964292014853676421056471030426484468915528774780081825812449711098893731588872593957012415323534512821979364087849612512378095586338504435523815308649730885183187699305529841136390338057418537523712511356672373848162567043616364357431446910717587513913850384130739633349077604469010568049761095666625636239691232013773213437298574161866794585181129995631611295453283969348550928441292245204716867818657574273840694743445721664404930072573060679715337078036405874462621297098756744642189067267788315937952147371908930887172279901201115912995501079367935189688428636979089438865511866151854001480033102922573199140747775422826881436181897060958719138644996609959098343488314691557162438872569269524727914183552943978502977971158188524946743746565631254094880021998569381575909087668577217279087478182222065361666031210433897157053567268127373400787528673173584514367758817702718801174523797001592579073721990228479378624281194654926825723035691305957396144657156540257858132966008930139923296652028909770242469047575208968931954316915215008953514761030799034244450604882209028878038216492537308695316858355666548881040667442169919796475741122368421551393102599572467120694174178221664860215215763051100682912778761390510265438791150059408190542717388809526749245166034576521312511388509615208105648925437970397211230594607420775914152705852684958871683592909769661016397240308325866339555071598867280095618983631608049747077152349986311059165392673337097058697087487212158791181357275914817057191024772244119702428284716769047700354937709487404079280868654776177474310646041787623939419290066541504541658145332575717781894379553872752555450041190649135639575252589471805301217428460048244659973489061695209846557753934587696760937672206883815375179759058103313700594659675223138921541194554094034918814936232063865348920291086610373629199792639496331175771050973257006496997257010264256531243057394765015535899419203408260674214618041346493636022461905202716399463673374898220327485179972697755765259153913153264379474136748093329817496316393517093013340701428968361977549615553551270837851014970715548265128732481533785666042088025688612318703043959335100236855108222107179473469246568909124654090240292445020910165615100603332763284591020035540979774251715001242368166192303780461736783942347768708963766422530086701907788459085481089623370483935532736566315821686327816512100910530788404100912314631063193826065371900729525829750130146828300224726567607859277842384538248238279675473425205021987997196214478624399072615344004860286858709408078092101843140625138204782862518951097338217084555083168075943376103976236695994680234942183538306789394486326280448245728027964991112154763020432690623990811087328335480763553491936341016774790620336020598538949247853914025771295080838396957970284259679694286223980500648604950510912570217346822655857248423801221112359526368621349350163876102344971621400844935724395295128559169475286435300430854882829849490001616808767535240139105003820711382003580470257850464433918717629965363683294600679693984917746283004518859339219580862337958333469774934313233484871634203698668645142176916036741613541016262249273774551612232419083927189036073237383654375090973987874347815129200651054855624235308202802162570346643614307749545966403577559419333103055445535650955011658270353400822857191649223246802089578861263392932152455337029444611213557461402643351770751518527681410868951414625948305904575673087363892416582918484718820982429428842306181417663706202778601385999197131706036991427981217816727239664369091622830928493259829233621779384221353403189469978142374370149222606705378295832314254665181181030974025965499844983102236534630595150473589317000500445458459243421099115696945456510085757983751127208870219059035546993811895325194285807084031989699830121192726154806860276090912030756077221075829832197022368946366521407674891512748502614130408871037719378135208683738449426995596714587159639625547351133958585864354044585832376123481920720602438233733471414983020367963887325693423168290100132725110252381881945430658230525319088692808316548767599223692561179457447033186707250232047747242496338385752056684256848150868811711426455839286897747260282401301572295932491031064537625943257501635623305946360979736176726752174463770184895029424851481107681623975418702235775229378339567097576095242566282149677993189005731873749175637484300852222309870342451035922371115900374378595269557920529065639963992124936731354450980513254610018176085707823061640516241554608333996671086266515744410235099443087179633770303730796707604466501781012780546244005278415826832339679658508553148499821919106706477919875265110519111946862582491762940270265412801059862825063127121103622808847407998967168278502278095223803817651821169299843391231017373055908355624963376467051430872131218379686857046879335323478798089850528296765929515950222720273942112222918455472928880155175120510291687187619143700553164211651167393452159564554952716242530928737008938934540444759062925513147566221774451976457318494428535801388961243427309282780772692492052484692151754015509179053480812296756717765410492277798005387990846081728547502424822514963477508579457431172054192290683238125257838558483686376685850315805691331525599184460013426873697775458315114049789208182121553925598881088182058298016803096237083756218025038978569183435455706726483842658379923639986041181152983287840885659769874335830989833052720230179724124347480722206511914781027207546943588173457208075176834964461192991505646448119748765685590540240504594122387713069239702380569893687878892397988879975348559653492652910800516285308045940097845458484270666591516165509591726129282127028516467780889060677518797396198896328197443399946271449526975787737775724334187375421561800870647565174504227548824916812496695472904674220503126778039449615275722488323363497477706205971672944848650963364396724602207335840869447668036865188374874376174865079924800567942969527539140703381282234504882729133822888502180602023701217331288450267751602249848004155543074488058696195059061946008216092566166003086041270942899814534296747880518302782672146200827774674352936253220024104596547371359151853173319547539246985384552793787139840704179635415105779126384289516331710110794759813850816182254620703358490011860697281241657644384373386130072109395763249216750147600215698056236633709373873173524815005939523564461127782870211112995406966662693354805913518087396345595553109603176545477197197648150869156796173796755168227093295419942195450967121416263692084909854202906862027035404628904759818020848953634167948818990259096835640955933450850246557226560904758704744373836882940398094387896191106384570749398397434815763194285031186055582137046290227296183969142058179530441700248080121490204317418085517307921368589496426095673446417256108030572309650556225915209243307933990699128510261863812235128569223551989869078762396003750477532110323044860654252641780005444161004428979024251894736858630707489232441322659499150011517296527686516640569204430421548596978548839733177318897402660475764380086469334712417538830108379854908225078540232230406075487069863348375421499589903737462012835059953680360942375508082867160519818563447556564342071652169159124055474484268666406584316763347716615224169183430949040242532903186226373710381113474429558585283161447522755267733997833650016918039966474793297006635717998060045939377580894508641362683762373955804154142141078112907251011118089147221514093183092249359385624257868751451003518717291295657148065095875351510316001607980164632211419850070216484675336762619684386412101099762824397285936872520919121215659089422457644626652223139874705569097156051580474482346997929395272359053530199183318212902222132473579429737407370360178252298554636799408231957196317046570189833839703837168187316983068633172669560000148437212401487180611699885849925310070931614132752886068318199892373383862653819271901937385020566280725755736299468434511869149017930544548027755580738034982216685401099680335136059940365747837899322035676071391720305527263493663049938570173306676866698694622872074939221267203372096418601753660937331680097927571752151989439798442887146903172868325717724935481057712338173013445523910661526807109304459716439947115607561811387171283067345210208488723064739017728784117392441173501832015321224713291633954507240102448299138923085640048497922225718229101470691855165224336771076431243141754681331755715417172584933268532980190427501928589548242974920853197673529267782463061706643530522122129538193444078895633329227926494046594245353325700154990507942797644175272453530075364430171550741551564502491075423114944508061501706034081903064206393157076228878296960877913818598333418474201693739611759705770297225730311672740448702837083016032323201530955010192593827447262079063257568730704837511407467856522745580168314670910807112018802623361913380700647526563526130953372830559407793530626573536546157495532634773645632095781907582331034404903507286204324131992500411219892371941256902037378353692364729756814878094557876763528174694344970965411166619808538120528522303784112789230494508481446191734534275891984844660850460971622753924833485141227252697458926223111116726117213360851614260976703063131275631407458311530855049907998867960580807538783788034755128441201510274916184485619778852051446014313482355581108458517742807310550605825354767568676907997516688128356326085806027104076910589793663621781458494536953051534261790298441658649721700757544261574050986052625481042270913289322408312716337841877072552999463639560674138849100840828287994074883326874289281558385317525351604715153313067860414926409678116840176659846142867653516279193941173099765222832758041295997252151005635984443180941075962146818076927949126973870645633255687019634923709944273497317560689859038222442076415662834859483344060640864690198309900792263667790533508045063953958461962426667099623130748308910892488454408970166763708863262324222835623218817178429005474017712489550241341567599684323415928784497342454027484428606185735183763471495613172799815183078926959895076025370007791527680490213705396399648940944124095455726199909768288097233204534743324059353053777565330031388247807410032977109706717432631862453932801908180093569340715296262269076578558997654053263703546230993682606175210742604377088268061968227417905466027491110491598440396359270830553357620756187950702412011169116050841426188610006098892272381826777069181370074595589204306949781037054972203352698504555412735898816360378559577271014125713247264098548427942271505047566164740774364202692391220509238568555852359588750644055845144875367316284754427268023199713144036646377413947810119680390217785888007399951950966864491206402698735466703722218042135591305136616660732639550630092461964701536435561799174182050956399475848064214237594954298102781955827653760272614845566292808839912575119466012244272487150915121016653563029227874666886793700989899865058499855502492398766295071232688806186876217383819170377551575603034090017893301765408201830342099557109440607851646647983064577264596559717069456455857874523146175351556539141405281214291192992348545050113861587219963349726188214616212050880998782559615949608608619844803423531779089329089155104243863113061413056742478789234278088767377514375357914975736901090283667979776671223023048121697361005734628036649574469460979552267079024240107751707148647154359730906465205936727822581696666282714365164342970751919139811922179785651298676928965141387208338315204191279158336169406687337795403354245619527960146212862359162019830343694578194853662320250189597361352474137859824889671805343770379143724713642970645668422538465676900989248817990457069396199633093413148513048173079395820055825032565768037051109956019206397089212047111267585605062058569832439658975186560414066483197590286448270552753295009894041592251286639748987182027913694813571418005860998967446603984907046348250403103728733275801642304870560962935007308725013966263779451202318173070164674729095299341917284308815091701149208319340545671482707080593880424934586337353494807199039999463512320283090946914099918000364484862670158184490628081521392454177902120895128124208147059698249729377155911143425962195408380099374945486743162406421321535317009320022207478628932896983571330822824759675993660184541187257602843106445432359329172477103090178973757892857015202913453841119352500375921350696608825518219668550872340478604924486933344574855486740403660981838210051051012844894762553581611990608865954710844684254205144337407634676613446055194339833231217122689170901452087272892771673394262231796726620088881418422830979990696179944914882472276378505267459923397082970654658228955801501766301459204102634139594481175294588427839666519508777083391431118369997768820139663495184935853227497841755774899776172249219420945310008988997629675875948048389253295358928678739305955112893126448317150936751204150111844656657898773988880516107226945950656695492726513633340286504995030610251009069893069566330297907422186639612578009643638244362207035479217454641239011234118433219642572674317206354770111368903863821107581047731698371378085175737513559532595251869050257984489243502975118905196276712500934617735378846408485483682468711007046578005720071975903984796214722750571260331989060258011863634561858046503688534473894375850660180980466794480116592732483417931106411668425229038592097559027821094129590622614921752945431254023379942527933199222851924108656547523109320960372760409122842837286167658488620401960557141330638764688724742804868187281841093511354889831489283145048208946179522711379574326390434299485887478536565342839100132629220538686080908964904816377341479545009613250166392159032627751161562425542983386926735057423346618320149212238478123704644704814296591767596294360152766812458873638169153486684923752896450424898342399130904762990555358285777531039675093102613258268099828250782831652609124844811395124180752333958993664309885926609919727738262072784090970293352090063648265464105955616400317541243460010582070776145139261067533131687770400848457028252196876414690842410868728737745620021200041050501845239856715320460405958491235016553866134088232266992825942369310708184501499765183882324304335017533387910933059321395661648449194379527592187907588888744311771817855030044803450500862402989931956875847471285962848790739442197862269496886259243235746752300953347173389407691208082679889426556318107991293986507334648163542815306423797222480100552667644217223950598819322435247189222428274735549101341068610207386607055157285141060315655015915833238169387862643841878276464118070225294180106586963089443820755370527332743888251273889031135879901831010350733910758813249217990318798004939712975123730024109427949778878438025052185382077370396299270317554233822028889046294233489379387844546818938805624967362829751918720726737759443185821301576384402023953304412370638539746412091680419537251610280952167399088384175622056214451501468962135423558689526913240616789243727451168462408976702191802833616306654372155277061606998025450440704110366678459450129699660521407527453757354520500542409287792952542776578953101557192934695773708942258341418354710443871917835870906519640971934094202686236374897518521962640175220297820080584683205821481818158820172060356781526038845605493748422294575185494845710583691676925895886706732059617620823663873766267302709975165680502511113662551147117776390573052438456365836623839400224540442071209659141427857020516315347000550065305032308651737677489110898979879434099392264334007493293200949616447575718121856228731110089993744043394456502148642722725998851744260378280762680789468584478860321447846082843004706127281617553560686020814701027538260887044506090996717839225014286159512548548909715125910058112095027054750071384428859564763545671946642082682254500758810867554252737303213344016107455344652146676036900661835041977148236191858948727267990984579504624188981574689229881542516280816676054467605361756644215974218475409944924591687026833813467846432552709948303819023423897806238126342137489379716351252182002799276854280169764107987088459354065963346241000795184635451730492337460393750166650901453167542485372655288813231583319038828305619178490750579514447840315902004458023337924960004151818796294857191901461837389476114923401798025750292926763600115990535896370843899431715918875704147377764262854348807591899896522111149879259268335262175223053777632960680655861072996332366366446919852542787042046865530366715654183739729108604539352673347295013377900072534114967551221816521838086786845622166731174004803613049507669761351305677593828522413839540754809246580967260530083483288379775313475488112445320641992296848697432547667850773175052343237559970982183611611081602628838783474865094556169352189632730125479097272342251351280240840007233938482940585610563491226092685734381813418908880575055351127303760834453304003271155267510646250593473040421798667728207413404524365937096421338341183516313932582727910751872297253763055952868014066174805865150911520747228209892241243120453404730748059802166009948095489975600498823897056973653368029102506674869671778761900314277858772152161449438016297358343254036541948561494180626249591034094472387470254039947075387975167748341828560101186851451686482349843174025527234623023538551606876409258285031663317898050268313901361611955733963490145613219234476214731591007233883360101271922722061800090104475887218075395979804219391015289390929348307937987075885317648377460590784177116426667546662848040257504443719339494133654959727368672289035754517526126105720944035239133078766478273847056064623953670763026008269956461488437198130002594508504731636815887249628899787968312531380520960833588295282801270422374082787217455282630610593814353781094848232668025578519165376088974994671413375846461018639856999893888263081695053400769410606591739365564758525302891376910079955610693214219420977764997421926046068853700388474713360607174233876552707142970541990967561053887978514946887909907483714960287381252874916043187927632448210229998476812657822891144076255446486324586168536909619545063279721596229666623257949468158517753582098635609237510378496272367840986947129306391425604673383126475949139819912226290697176473487741231445957158370243323294684039183033649886116034520773316663339310392743864917499973425568850792494651932530124085973071835804999425397736863996583331862778478519314394200793099752600385510310384266616866802405816646023762858393533807083772048585142948188433507719383042284209685937775084801563813785682305376624207093007802409377107019400457764789549181688927136046538938871862718696960739649030724587715694096358888306918612362835984318899739759106510135235084321643853353174047701059035717465603969784490722151658378200914379176128029131071140683629531417719118882973511764995730411135697201827264208880166250785712324233617512402189547788876135471471480545664248073776290368649285315722041665301087788001373164554173893886877448964982153804148005656753429064342554961864653450245906178695256714707200842094486024012171254690273244043573486638543874534675043552358830468018178660761498542078473113657882035550740573140226203808185431841554953575624238695722310554936112723134552902409051943480027352366549764553468395900667350668267507135972835565866898934739124422785764577565460185199986348339979619027911986334586684750489967851954945436690203433395484422794012134420212400696213275253234563966434402537753958993570932866792430950461342874628689108064273503910956514538182128480088908954066419666657350131696566170550733785183327447324685469665698694216096450156323343975940903843246497722333622107669033123503692894878385829121781214566499485473220424442553571349124981611243160184125220247548102878804832095654805392368761165758154379847930046564927221820851938251869381711834663173228605791239847329326070955734388264710940714081450877576509795957816246230340747260925618117868769975890171525973367079907487597180483829235940302301335301368857548420934772424882968037758410928082213835302265875193584580987151385220875425293196233178423013561184303341110004888752555605730580024110764521348500568053899359274165240537613710493128164353334129677714888193379266646897122851491559228607359784803192645096429875241614514396070153085244034135032869075542254592785590488618161268464204638754147610997750962152005959652300135494447844799511826939370347437550290159438797511617035464776337655218201811588583763376990892581825026067879544816222774145431960201139034925523870135729864864276915121918636750361819847541988198285510819491463137972988512024224619480190132294816818995571510055469108334519133087173654915560051660653879639024552091347692712575463426232615988810155489542554659134018164119287993693293043430932598132267946847265240098534933825498992160808360330913926054197508061015155572989118618288038179403648337289749574563400606544718201477620833967827841241310512729777446859586359879435007282633981561599335316893851496186309830918713952153982865840795628162641186925092701940744666387753762447882920597945387430568055194327154491157298568609346668744393485690495193371171074637070521080673931924153162457315058553300470345099301305424149222255270187387860179845874010851657558314123715764044149385755833360295776533391056718209475794119272726897128081123763869387427929335510385331488289710615596904346972893115278779609818893887746848795650433364684261123258850224995367853154329580882085769144545306814942935592325753097519198255411998828171160870500311609133859076088228600146923238184339340197771999354211035817909703350807862285670842838139435625570244656841116145846297606823540901060567655053724265407662663268139666802906429193576277113779771745965238762260960836609131147359806362615881081498080960382652028135767818243225184508150928269429309792585477624358639958111851387666680591327642423817559963505050597315424631191644089968169109740384237603986873228641618092015341003886466020127867630175166476334640031695957879400942499159676965748412519043163172843426277521132125357006950739675302515376855904474947526644299487276402696735640055966429480741301699438026569722173742466895869621339842499803194465836504355317892417406313544006586685153953614589837843592529553028849595922209989300408802005532293241185010923525841912848086171378258002856849498157557897230532055784041530123782233751076012616647334653925416605892479286803100277628836496254181232004976830408747794044422901571214861741026004581386585878020691804422839955044574431518719988686462525992547294962906998722498146389471915545274438175916612084461253325587407573016013612960406856450659261228779959249294676844508219441922292642223068421785311647337361244545888738942847405944454114433430951355563689126824643259890476076299627857609646466411658118813079096797700143532039262495281639540583472643217680340600095099255016668378166445709031948098635145984373880640376612358789166566417290738062022792921689894523437722297331654944956158134832535778428648242366767012576713881823814386907032962216485940532187007884153645030722095097465148501693298826748902134759699626885903919736920468149275556366864188634283871003404236033253802391676849358215285620797227328001404560143281521187237403931005197377093038557382088191102472612939971045519686602618533198792413217965570755304990894343287899450081013983806067097039308509629931787707387249437011447947356570059159376546915958380072095204602835023775964774458042898712668530765133431348367445631793916593804496222427773366427660430297627689252046221475629305885381056335453120941008442265954397302517273104267215421343341379243872827016983577052276527235885635297170509508647343162035863319651674735110590295777800726587340624847452382640011317140051354305854346658747669989433509474125835881202899134315261677573058496481551674272693863954103016444453477522324092890789234091137004372736565096357156313130816189177209752118597365906932452443634091841997262387139947119176697535709146346184043026062588757457145978876665300425562447444493385683787053936284816737934665504652500359172739133520753752528550909331013466272451613297372293840900945693062025518338790090147268639489991049029976120454388018641521515844837089587412414626235141362398272957762274514904800156549374215031836665854317282320638424832452136398717851353016438117281010748018000135111656688383706516374861889614578299347521091343452118758044914208073360856997482524048209720018904888144925879739558413515556500946245331509017873290061598323153319734134379597682430343262471857986469447811389236116213140009664872084161881840315482709412904069974619617006234922054544050175130233456933010792019858163688812212889568305492632081808109879952251883037889818990980268747367907483278412225607999916779000210292451552536907923795250526187406547416490057391678109513185398270627770032832467870390568583774985464421708523526270106544746290086587987294673605259957344092583019017443192196251653115023063019605308950601036444875712629241638131271625734914298291336741616162977969483830287923484995901959280595706493420814442881240322064123450451655493629202181688555830696852480837685343564905077753092201595945471829749529508184015401591403483608627763982571588919517288583472816864912544395372723183660078035087342470177647107477602910059476026661161726959715632419814132389039736688657179864430942402798617022820308464676510234235509882531348302083780488894289208173688456663938581177339527797266752049911240824619714377373030397481811671220723641167946373873637064840668173180116733405294301940327071668228836896692688217906565278272763513418260927688779431673712552299259326060290703318007762211559906784059770105354615247839853023827197938667132881633146944916468302927459719240404440729330693380151601213968117451044430667330148200270316891496719668453115027734400931893873555213459208256827154587842218493521449367733316101872772383031368948870801775211503246565969651021935570107110385040744673487125671256011960362925923522695131156503646924875482044252673075895510191798384077632257636354115993403529523989722130342667427738546294819940798624570687488363098740236023119665005833051033929427893640109432887544005307280824840490313326294493657741414380269472373287006733180740706510710804385772242286795211235911831722924608225900430986700886634017789964560582433164673194907887709770651268211720302506094826143938015968323962780337427865612534452837694090175196896493630559280957253930392043283399739171507482273118685685386953843876556261763778411472327397168392174803579220340549326008381536914778119990411603444242704374805158309904601058727574801255663991161349399370731971441167090025655997434053413750248373010012897432092078017814091799470278915555039567169237453219140783275299739806866242543593778276968146280244981225410650284540862357913023625423275877667055733732284705296115013498980432476082326002037694735614719415628349854619264224542256988676015049460744758288044804103945609430585721892288942443095396912672971725632891299159511672418107297426198843169090574391330520476650309173500563260713728855981401705884231058709287607470674003436344726182081893364947287907738589549429647199496278910196180626218919541442479987731097761628600269191297049698354724556749259057789453402687882016693231345707309162695038675332668702786186057770932831486117992108943995714254213508007789916388883849459955183251978218013339174656002163068134245103153257715802592487407928735843288201067676635140540633282219154853090248095292707726855022046733530925479187422775457692276447897297388003602476279684610272584759334979527632170417632469174986204594185291074924358894609145072568288571897897781329786969503759260134870772257787343900938964619450378851634182275843475948124325204535728404655620967560745839703030241348457577530008995944300427958700704288119245421377892789049748378450102177297947968484004102554891718209024935163385622937284972686768422119565576160654933858798260467316852801643180763318259390527594459062245677578144676277719593053393193184458192126165191760077852533524584140672906642840752699341038066807049936672498658452634567308637581554636274784092474870581736430803779937008818765852532999540457015388614412647577105336518630162079742786870205309996270300434673657600974461282407130885792750302529713984863356562593980741894194733705130852368004915054436517213124958584721990228056857884714270327119321758983132812546442559541193239071518537877339015457306751180601716165387399522088905032657390922425654682544506089797062470712791527818024760612513429995079316193991555591766905252989609554464112020221809631052925400756156609837378982597849324534154203529309775004669980988852229171674215230244280181860411641253260806316479950310675207164645895985604304477103477190714822381026483601391234948965855677192329929340816740801725806877553134694296073941057307692917429495510533524595681352668703093084959422701659375883628157790616802389339849964971765731563250546012245777639380338004703710526421445677481356855723524713300785809108477610567834870457777024504155967854224640276485849726843868752376337007345111948943705525871997033570270803545982121086234231810286428794668303708428186620681635603828293579717644960397027556976778441194051269894245797190114460581848543931500119857423151454249682064992887457877582990053466613981275140677104614671115204067748060543930034339881226150356626130489753133796051299041213838591260795831287854370632703648404103866475108157809926503999532164736403145333270749655536514264505490888748546140970656557063519505997284003010783854167888208393687104931768383763383194031114587244799894524741084742457384734169491650013934656842527342650920857528393667049715020665522513797441180802822903505695947120244796064449669490925229450668863207249021919218739894126542005085832464752175288887690527814094218361206681084377664316773909057942146750950432122280831215011267679261767058512417509972474999402438034907896157556310736119103933704976723221332454701042920417227930125956564213917166700612802319073032650597990275748371607586194799654985800758793350586283117585338817001660931944016406328397936459212763713110310489607500059455742200918796832135271606417636654539535592284811512334674536825000887071475491792452572402019386934792932642491272673230946282367497746605355340150176595492677901785155177839678038541330984631404896902543901103163003848619308953087595156338475726920286410669017453968945433067463604567022066280814029044320768360562657133846916532377070214158431605710750706500077004648935196153945581732384351380621832257741240674020361142870294709597333909814927547276245323748789883311632909572889464297862839149956546169235949617229632148659964508869841027172541994174674059430565606954182249659171913102241635017815128383487047814691336949871825226913567485040156934053635199196005622437806926181927750939424369258873257900825858928931554358348991918621994668870914757937168147270243073322061562551094870568188136255167778627816024579071447811260415590918197895395372139786087961397167770120020028460437573183549730762646361081429673658094402405676371232563738763892652586555867637458008023168673452442307319923105057746596207135872331710492151036043161245949505038609126722468404085466802749420271700491105928645181108165760439624305362624699344516697704912580493587628731514019476468792053476987596462853088447139071732067018248268637862059471420699934235827783060001988994317062389440725674736104658874897710723188243019111604202813032771413133196784465855588355999387531500903860745809712195471490385434396647038392694826505946835988940968114784996706977422790394388024011442021244284539499456822266218609632239030926311469539959212042348391186988889321998545771816211054308906776715898614328073905558469166574850250310827510399741267891178668761596019495316106939045801749384402585272315941180789592856310737269957845426555026295904789850267035930375670157692918943819994998771786723204902375477350620162497506496189697500755348844887958644626748525328400144296658604871933012388566555114942962550164666676754787213583773044445071212239567874413445441550505324173573994172521899341192918161084763422107593276918053606943421829806138398738465153291418012590152642500724339992519517841699559075205860404988480347984659284573670507445116199861362968513966398369285539135784742906811717566112858060390944891544119990865854584580584149173884936562805506202574357967327653307394567803571954216063460844416611927623408432983224932874520998181197623243279694671663763117266584889798556588669205676615049697573825942803898339925192922407781437956334874974598020787884153953584121697066647825834595900947054666489195110459468642434384144441136507472864095979478984780918380828753594189381928092145829101559655474064164098055804994762938354672760941825247740261576458209346482936243571841404652431619121843881572932725638512836126615392976488609031149499271818859052041351640111133783094223962040344535279349567199458218110780694560022065050744209289797955570723976039086450114368267297203611076320956068417134735416464014037291896174953421134029786521614375836778112378764183749828451837616009373864183176103639135167295207690647112759578028142672882214464796181582174421647861114742926606929436324573165499655580917129624831187914948881028876022956960085094080276758628844793721276689801666670887547487258826792700305424320073639020807442071065213547403331357967577687576305716309612741123128526566087969156152837821800550473300195529989539936813361936797825798736024438594382187660920226722312991313189129728877902428587159225135553312875491034151910763559383143902401149040709940360154813496025793707055170393169950898080205520594978617847673830324618731557761790840626162289067086050427047886307170459116716796947659112047413775913800588873288880863944214154953937587857759884264113547481638175027737513922904950542114833142245691062540149354798237483373054661918698671546634653073014321805923011475467291699820528544682739593260220295406246276356633867722461665662615052804139271470882316342480387663135241572854909231770907177234877921791149847598065911792405594462561997898913117614910760233095974128270681923386413766737873014520595400973936613456480189204839125345828953197421290765542863420596665843302636301862119635525544668234382998381268229929725681942431087090064649180845553316436399906785215047800701748407633189158696864651822845304246877983209002948545912853597601725150569800614022082942476406011407135431838563825209565947125894311316495707131196681028595893726597167975654186207139058377847443756679102846475334814718866498755571905216446243855464262359352174683031034058280939843809555496352233386004263405593467231809894959977224189206470418823973093441001283418321952643742439341473526006934674273585995987628279688964043678988982006505425043461701354439090645046605370661295278483614780701479770058676938520538636246727015283574845264482572005443085009769562709372261593762490487786336216457805570061753741399093060166535063904862605573593749577642838816864788009942634136137633123821973738667967464510874407008194541854190388885084809283027234448353633678052676983720960490911934095544811202989959313095539383056720861104060509338069532354999784263187893302757153076129244820061659689933466470946949248564243735345301904395835683365752496268256937963902571051851678321046536763160629279858824276315110203783315179651641946531633097228552112992794641646913388295058575499457385364304305051417167132441896215129778607129896400123696919444164964225917150520583013202844709486137954414971970739663068685383500616449302699873395292530684673436006848951576754623751514232619809255728190927812734855582486017706136770827246743996120278561191608191209023658247842420454787387840975904877367337423611640353799543164326179308512693635650163196276096730516278580633644683142736604503274109306762756160277230068828914781560625683276441180427109131863533985013971896884429823512352511579034592449149843470274957241016523353841829710015351587892565949241245861626856415487981859305175748151665796439197576348413883439973824955944666034703517603377941165296845523650304548716238742094997099315109709108214582255563506634129797522103527032304000330022635935245174648955474100946273250582084991179321237814429041474411840644312292651496992011035746820434411847306793967652649262970888335980187998322495969697222155901358447692674391334771149264110009533072865875590986975796558363595288244023716065202059100128521626484884040792061166401120704142869093334038286302554855271021287381205297469517015305267046328364242726561708991068057441842507724026239245833364836828911221273060218265543743895816723386299343231207866922968969855122930107230697426595560553898391971551740915906466622295349730055241549629990662768990993634316170090935124998446748431097693439168301671226334374154693397403706530592917893431253383660718879603889545657182365210563756806310318058192369966550306929913212536813399467711103141600465438493815294921460028170348318521209501112335039565587398301599917851917656911246740236788822088133677587759316797647749983176355329585309694205026185636984092673578074919973020110057506457578504662540604313857885632624861270327203930983747723382565944709325082171907613470240283442764952418897244270414039334995143741175285245862025074310224131134409657435689569510066529087851192090916068003315294415924198990843472748945136056128863192215877303803857269263526610462142314386828819991585810962817429417189403588076958660672589208044038410610210471639732353758379168121852049183438893705036447010286416219731050323048071247585582924048214407283768558709155692493437991984021488557470291572293345291826969947167158054053811994148299293619241119325678395188144663881752299506409442777194642484537465284186166717891691020058907174107284657095215166568844714770034521380742336109069036930273579750603084317490016382682784374829855936417909470657599090067538264967043867954937008302720421916209333807570944703320191782117074302640067300036426726974264833865780312615169700779615094757928597824355557927172087888828035446025487984643168057523227957754394156608610742567944289654090791219514654801492641588159909627462249236537941297419252145184348063470711579592260405900592828041486813084816470863323105969271549285902406996020143788206093415668981221180406278696733846344985297628306383387665172333843360508492971943779853062685740808420935610729420757394133593592105957943357486937933773977953051386888303456174836132959850991105957424390238753023887722613869777209971236518203557045136693061978380738812416352232892246720923701126255755444089549930180798302187780850947082351196713718993839126737178708184665126487187561573370971038831400715685297597091388529503185318869620040715983279432054686884175161284976442178159692971968900453844177038288134233638012527971765378878399048371366391792510053257885344682507250681455646529350197980923101146620261952351256418298910474232553431805211004066877003999245715167171396957921612180908305833129617028894725797669164455429347150501350039952773660329892606940719031837743299981843794394334922015930562109762453246928316818869925554616432559748960127787049373148306993424185403760598104789062209848785796601408711572471346244800551852860730933316652150051735171264828382026825612070211327002823780534276878721277369551483647228371149027492330116045684014043388107899934313685964938612433689135492794329855923999296843901002742166249306391890519543337217756780018464984122146601114624931473004460324036060978505643609244864563355426422106061293038856312396192440531326151586857800930805744938044520523435337078688556384772900386813104899573346942624436862534184758340460014403386227554880288729798049736695167720353157250394237790442378181727516478337201736669034775218984390210719575011607577457396450451680577612652477502950742672302679310800514425612514749742594821781316846691325545697474235676688203127637938165506252382218175798956360850641053392404605785411542265123309905664616707257415171408105385193052389510760255088709679725230497624748542598324318165002865147502179694058109061208375574493249060451128054409292176342042260642931900494778951914663432127212744305502854843649314124684986275445807412402949506835629874946459929437705483219761969865157105217838996673523414148513058112167118350237661914338860685498755458027823404368622838150390258235092736951215867135912457633484632770765143060864080076121504144826238391995047162944778412694357248114979015713627616215082121852826204220790231373915863562686559298621974038239661959264170439678470506514092756813298125843631391070636178174189285175950464179690491671923491336198091057974498109429323169599294947531757764745066744503115109606185287311322117057308470975251299280888442699275986831344946686734946939697671277937342170402753504503087438078034759753871348803137418582186528610349607603077990843502567243207092321975929866743333258307401850975783280755359240432772907259876983599936548894936585660758170135921123598012100827260396712286952467934035006004826004539185828685124978982904250956975111630522871702767581779019710940923911807232904878269080624269483776190536463180377103800860399064763370997464500481698641716048300622816050038131734099278249184034447816460974483644206999401643015245734816297661912552857729886616791461686299116532260791665057427736203192215671444161756783303969732470298768797892724299071249649955714029557181050511434650385289112862630503993668813871341949303042502175827792486787446018295042266039913715998633922165887825778952923108523125463463728579316317250373535614744628237962757997326905447959418554972919005174056117675600121702965827720801093218625366021333848990466468483788584811035435478471316186894652029628287204350588538654987381519079516250937793404823416470658127792734769909723931755682839509846928726798085623839336063443867388702888955775106941124611676665298633169200865818101642336920514017649949172139235351151141204020702466510974684299729309048844225368372592866643999449496937474207959766578327754875043271166347312329363433160775219097587227567706788317331080669117995616036405265649929663885505406548206119001119729434417827189015212400485795163324908467720603542030195317898886219982143920101605604635384261620082893107930603687113405290649883667747959576909263036707597683531835999371840068570921110412098494350440628812186231878587688962979508627569447707348797480125248697265405370990229672200542116787682443383880530632317842901709568477717339086775510555957958236902106588431985949825053340823089617757703315634514071141612121991378993014155681744218396576848623427879805650645832422656709389772649397148654558517280959289665804119087051128002698927101216020166717154019170795839065159600362758641196475325418750186106414565114064885469833932865768970124563345631040798896920812431387896438461928038932118792028783875447842853394946650480823586290650425131428942765520106214109797791871453451250098795766524652112992180303289735344699544023298364385704934974409190180769305358583770517920358337584489608923839396430040861636647573922484029211073829878764488587241020689953499655093351143768038264708191914584458921860471378043859017726897855403512205650814169793564213053930365158853273794694489305456304859854496459617084993740706860019031939755813565557101057035187831766779059106698637242799863372628699483432703866977047017654019997265988972799521621768463725387012157997605672533475807000249169527858520587953150876424897605188587130469502584698646527145813337774559240166955332046218738325920077038110071926982854353474453559251681347752164632272988751325092498380999222484418875506742811037085773314414582166034497751619198540057150236173522098624358491453264176709066718580465740961600371808473512124151977761554511994705472462891916736422891978869462782371350496227345139995891187848332168915711609523563768733714569266839820384293961944383280412636474999148002544109064612504471271324733307851504733602919915034091649857543250654615844937175590567231621343831698441818625948450582821797549142106849282478354962607773590390814931038957660977146367270644545512385244694718555518934496589827532329877592118739888299882856356297938337077774616165052093154145834445383839698718492567216936850509184570035412978618992537344738154046435073905984666634750780499079176589384620445742571608524086405280589026785670100920577609713800381089654930172305147877338590853260968601790752716172399509345081709869537770091419860832304406960247821326671836016776275517038553170602375315932107109209825038636754475117840922236906787754831228682843525722565374168795611061171327439833546871098618013885008868483830260420014065783433863414170202214566314496015454180285619172047525056799224859530615799503659166726350016771775631157234806118924319115564197520370916520151010013304908463915064671269583350227915699199882588434626273114979098682315406422920836124257281813951875289279157267365983774560591628623676296396719941695971572232217447265214401292906354342764711467540393496871319764468027713864145810908403773724297226764426072473845874172080339345283913122487195354029268143383804137112523054686145467310299527487006451131773194446476209430529654611333772708496925271214875374043558487611011483183021098861188462978416341597133148403889720078104364635056735638952835680976731358275682080204801324513706674725234081512847274825979537705642389418618808073990348166771734450807302967358868772365865867476320057451049106769232057611867280997346258697244153310901738546396504070351489837877208680700762464056900269035142401154316561243338332464653791343576561114236839171361817412765943455265358638405813238979919300515237310508042682964148940289872307660929214779852628067496921393770058317897761793272381021807918275689930841807776900886451694145212488075276384261139234489043684083941305942361900184137820002914681597646010423091238400659363270322921772574875509007185300501832729867840891413439489235089751860370284888247395192389030282458242630962347082557179783555124617475694226606000288785770127388279896300163473757744529032911048648110005301853562189311041151787334076158335348775398037302215161328751876690451723975459619327284834342536395014915269482180036966994622028005141834477991259365954068663207700557678564339478942507427928833832170461040091171444501026014526233624081494280009010415381029202577824124777268734650816844442424356427878349196301879688843680605692300555116921226847237596435181305802684876781979114648804756373382613043842346181340366105570559134412062603994573956550137821087256891918620297737932801802366675893896133788584196656455846825369968555775042591667716279371329946635509261243002819822704240260371227814286301896109394903992502311304306640717573288411568630704541545029083358303459686596894912691621815410221456810433729435528387746566058285834845475177885594198224539863664820209149488866988824035501344035627881641330382288331410719678178439867451007867466814284460180200102570559055625709438252988018482556740987282778267463413747127129106774859431992569258397580642996125735555881647344258571083516330171723563281384484833026309443735492761979582916296210379138450908231977186992389595020561991959854265957054087120128937314900745696459693344573417567700859184645538711982984426323940642828678935381599278365071160204628483057770142166719702646646452846280268344986333491798033101114528940821199303353354044457156042748591788507975801233427860773411229761919108698933284273662761993031411920224607214343188755840046892942404297848738768618750105053746848859011682298991679671264422616351969312147512927941453532495448338664527154351858467080969062110458001172034561076096729988152127196523847167114061553534061317985192452144129081307335380269235218563210089728090083037664347795136890462424671851049590503818403506444113842434554757895729902048148888570746438667958263485496678402480527912410734842901602900305401865626135071671159374050277344174043112904771048161117134706811370758607748399517795838795949890627782724545163109946642993633139198960950266049037652723953199170250472211712831061214659076043729236951390595940953251052582706347109714948916798318033579397389324900741110516238717659645779859723742979352945585861371092173978943754150455503751394471357258231004288834887013982786317674672677528036120957177306534362758347691028116016434075953105146685388657875825810245178494030091547570766502886393363702439368528540744151422966095643577115622177626565174321249494017896773370970945314871570502301016395262726698954963234178461713415987052873970779309549536294276456252151993339123290135388505204014651744548824094263932553967047281698557751573425405582488240165765124274619613047695596698839540237802579902925718617420571141422738362154213618378810221152529889207026412661052945311352461162519887662477486951116965909904878945563073916921269699641683465662768090224163248245639544451846436690266883532195278178894876698945863266144802300788981800389446783809121584252551396058302823644395947019388554359230013651858477367034132093646218883193336674283886911062077646729750688645718978741449286203363104145003070746874206347030856609134682730665786189840516800393522891381822961663814544380179926018791643669167048698385654175491722533534655421213162908590690906526154936354796268328988494646886164423726682927188547073997187663082993138333405210012911666175403960386541695628640101758958506298198164519081217511102760082543720697736192692600001280779404421240914070173701267046807215724594750882023679558485544558931270865558693760368061310094049793476906936772729917777604180698215607077835153852623427542916697123954835680934997231842121706849649630144652608623912337639087509144229213697199029618719206113082504223144863591755113695751510480077982658669568360491158312665529355884071896823573596510783214997586715087580699896525192621377860817590660218991473344272111816345276540695901154528627840515240979235393223158334036471600714870882685975210587676458296315103991914422411740958489216027532895256402902112812618433492032596738183343691182952613046565806237880332899026353203205110296832479195828576970536228359621612731524134171959550056662834052855858736574044037702408752061082263878765338521062881845598773897531044991867377293272116289063902916383453666084212478368827960059085270747477355356367604049816946485852970168865821050299136183404300951080791378499916931123685939748665272030754377598217673224260182383838663940272163640267304192137008712677047344312603782437817329139615992376315276025343087514996406673501322414201688979138943986964393675311775116391185336983400347903095493202687376106789596707146179894596899732976976908480439726967361785864381294372520121416018464419421291943105040938729253947182926958156096586852390401253600210637939096129933883076164020388234249047166153588764806295116937931911836586554916042710498251582240218238469763040804009143979151723801278436274141629973654103572351489907006131140933877537955538581563328925343374586152302436637800373515657793416209569797356016596628546559132862532938468051216872107763042774047000237480701326301857556307664051298785157496067800357261003426829959622885134993938056783555262865092077616993423121856154916024977425427164226691367545725331962061365642321866145074565504344429815102556228388227412804973707424893742194871902366339195605034250440266116112698411710073018640518645284748186829911842728229583745050013254810585635304519434232040340893343298030944776168372651546356614002154692623934565304556801092016663272231925996492825605503563866101100605714956935010649401008869302995451621079057360501644778708438685871093103918226425131332800448940817960461260965740038987961606804913417937369715145549662756274657004969794837796986266908441236879316465901345171118848488088998601695486499263999527015336963001936777842980781173880280872109493551835510634520550634346683350516863857538308083151250582028337967826230196620977303699438234208745207282418074939127960540565298809032639467196275857810830290331843792251261558425913020186200875842371888654159783439699545802715490896049786290942539049569160370366321099958993884125867395420697918909212531567719784089792537710905600293163043183040967252584726973903634402866272782441200591253573099678480140965261434386052821016223801244024842098228637688836853821489419272778267039833856024113569891346026458008686430545041445566351094356395888832705280792434676734784546553268558287901565116813001227734495601824810980016666461683743498347586307709458136979217653271705541225005878315374078795252950648258049918773828581598400684515255090154475528738095759092842666675528782918716560578196306510839722842290028634233612049019837743382507496638597280064068689465465017797905809587214981034436641622498998716861505527224255453323143118783548631211456948660047206612161191753019553686056510463253642373329076245053314792253062695857596987348124950407350879435510166218919744000576667600399945246082652675544264776957643350445622372886282974665884915728882572246034833225124373833282734293482653502195074414651085035979038591308772274761645909761527870858608333923111683903425472197377749146389441885901062479624336906175563095863834754282760081108772556892253877571290861785698716410585206801725154889016916848848079033114665923652373653368346464753291599648380714918374545521543072793080282475391599586506793184711692575556255843087499358524830991459515738912500686337304335480672202659289089055446528009351799010466054134021084928659906103863452258742229105208073552757374038231085454682716147624979556359820505010905336687360131716605891778408076887931503647249083406824874432157597446726459124454394020358823739674064291343434790614769353130946067773935984916653520394235129887973876884467553842342049144462900563306667170876998464917703810015949556105125671789858009324790181653939252906231731544786184200375521129685224954558425654172470284143170749372281716504031669695143058552139555825383253875749205864291180305830678334665797145853480707624833598429180265257542398024784624239671129805307899073970172362524933874453655399469005756724178011399972979086240840781826648740672454287345651158489325503639925045367870321416739113667957391145289243096589560358268713673074319614811214034461146403215245656735743670773915499960123965371264894136607761538256515837386290537474217877018848792789433718214608070699070894272572597484356023263863863347848717847586833672042287504659977933283415621944325293881828493658207108120382950753514636252975771791256358833444824706376058173650298017825318371802279330953472142255176891546489763559823627766917229934629464284680541050957049449692601234993129126917387362731190786053075590809732174797812259890576121269064962190983184279750343393005364467978279765453487346072542550109004695914582828792402388737504078761124007814477699149592806421819198222489600898890896204198614851672697236920141535145508315642116038864414310873346343903100182547995389991362249137070712216921846922697541399565756145935958040566729066315834827948428791193395542805000002439305839858830502867210893632700624586524144694334564526970493478438676097439399023116873792517038793632683642937247685493437076414377468739509222312056502062589745973683649413254087934546845642328290174451089795601474414401718067533642325270624145473638517629822804260953881137104077720115249999217130381526469128966102226757263308856132435435819380367806516321362845104707636149380181084139061656239216611707976074578986153001512231755647905143160951165975007770429612495463692382917146119066213760866586035030120317243643235933597830464872716411465863445754735341466981767913258126926078470087194312897334135207417581002816513090470238209021210914157326825248522328287387266252423999754241109335341724391713700107976141637705389851007289143606874394609015992526020185902691738957444635470800206979187102687791426185810284279193437412633954928428935518472337289791795614760190839275189635916307217776587632009391952214206064112322502634154170784668263008786556400280625709098899733775282767413891204429653880750332161051291044326737833213133152060900261494470956064928729394060467759730747100917960743056615990731795826814177233927951865621897343701861721667861547878143171549996980744900137671161147491602353545354295837485448686357013076930427036116592446373504825616000553551060873760819850762593817441544142948443165943474470149792533125870513969975314343862296684095318600534794685155839659043966890389203158678795667968953244980618778330659364869323610021205187721049425090565979707569731550269947696030093382829326346980939593733878775116303533072868700930367607199413844499420381455966788422524708550152036308308603676783039148056374056831667927399972909780109870163550982487480135396930615426854839002339266448070296225401084696174017427323104180343601897203303142777555334650778469293890288945077957085926239274002657439016530329931464407254835824120856341269586626173251078166086582357818430759729997071624298937277015722481663361997761573623708716483182107044830421274955271611559968539311813582946803296900352180752076665336135980408686284720027606882240233045290288587460140473400226159798711948085536063680104253195794052616855981444358631192994765416230979754684184346019187027044859015691972267924974830594534523031788895112848016670946519540760693681355453496490053160827985844868099643996760581093653933689766130775432214158806358558008703711746583173914712435503799366749289142464449624021107202273010857901237643239091423250969377967177947732267004191164088771078948806524512386419754255638554831718551254101488171500034194966358096561019399421194965764041534160156630503713313781356060471082631381231690032268443842790560041610645488195364986027027057969981011952314599115949671876578588039633669293921216645551848543559705066957876793472343307852481341085378985432708389744207167562289609565784244582720835223021234659253604419969040826424275911124976162027897875127939609748399770427238201604577961766452862004022804977855419181564166133941642119179275673551144422954799375790483121405040412510668679216454640688077495137975935443066263398371249242690846171343167025116353151900340834508056255507663552181189794380769420084347491064315757654124085975326040042546711777624256203150710581321820421230765767939483656972383865597423583323997543423188652542554254518536557211280206242487301409063788793064694135142734198079854164417348323030841154386866819500442026641397996462800273544091927664216965672287391187015451873139675393429961729109234372709796855708456698465569722052274921898615034562116131823515491003503051859800562280106113059847798516381609898256804557961958799309693433438669331928419349709858697521087056642648180616036938215660254655799836329697042229466617796897332137916951586140479824900591063623758341318190432341908992561985048356980485191615898984546100413815627410557060139936837201219994790930677150956665592575158532000244814354615095015181071876477764631384516950608414572634766290340768641694079831537879800049106271141750076508760006800669281194345149514554811553024485979430731892893829076967610163682813953273810537607485804653122131831793256061901744109768838400133962953737045078244147265916637242586639591829748010404844487274223576754411513489667995043965690091338865629883563626903664351554871582671703632725742978012041611593194981750814540625106703117588870390081832613045596718924279986141470342648785794437755396822030860857142466984324571970446704303264200930322957316503407166435919447962555315645322437649419570663950119679074091784640438920050431114921025373076818229957795752843655007177246630824754494908555547339226822658947996753352660595356073864980467591771898135850717265404493887792274692086820559122390369245441582894298520612376125985247812267914837360821154631256128927988352813760702061536632230679645869002595870371962809252322527665282591721443922384251321649292423591825362449211412942161125904597224450583536265845713311051651031294987945370683936975065759153681988051053575382415803312825103735026332728855337500189047514377058358071380101875003174195585493022568693888399220909669381115950571476227442685117590298313597392364649910353709591918533578654285328829973058164544974032512981463916173278357124872292293039842552287970363912900075540924601299042156961898784297668256482916001445506320981120687379108843092929740262808829726866385164325186637412716865290048248482542002494981071882707468841570284284497058509809345514903805169756940017405857438257998756697804464199991754415361091642623850496266739704465068950401482939035759319086678857731181033627787308559845725951185545360022822859671467321337683643095100875289672182945001938716349282164192986497922726154411741840177832947317515976772643104647447038499016630361431768642914722886100604529234263663327591547597370163937075005863083370554816858082493826344766894217374359401774182556612469977810703553273191406681698047824992076743326870873405543622816224883307985128581165094093283022981892263737649149508772789348187523756889461669492585639340647735836581789758571299263090023398298016852632671616083404497616270921999425587846001146693323754249221891753975477622571367300537931241709870081781092538876420945160022341571595420046257277802900949077371494060979762718476624266559060640928700751209533402278122306303709382457693198897866650616038761191145782128139605863880420375834759938587926722234708349327938792172760904976396712963304456868581711289307397788458768589287678872438877497332618191414264620883481286723697021240565744827454821938894002195855397237350746917073294220255840140659466943578091614654676026949508467805083542264841589354821717209851624613277140360398630008090684204271979289939297478845507338226085322144685825088153342162444611386537973112821327307949001519370854675364861285114924619873270965271262617866617612320895883225685468217976660935843576412006470910017633012323142391571546997077005617976956771053030647091940976181725354044178007781540458653887678254151712270735280886075302016635125735313357562331950802750734976040694129945881517504224124031710405214077082266131576621652809775225577177308628356056062226832698060849214821331454437078218039498892319446497321986631446060460040412608787715686101427434941853804260512455729766067819286815501391926935800193269922178239451986696185182101998707205605916206942224544038682996621344112595556293133971192181484682167597220059369874833126597860257422885619722684501497597411935156346314772967675242037067292818372349586986438072629146899195911816316328854186469496890738291552057630248970851811930292502182984063571188924623601580250707906583546981916060460379712869849024922137235009232214834910925785104623997491360500448334092366753662807607112648727697157759198281200282990568097936075623715390896639745613643432532193770077347350042898351445078494380165935817812290316732034945040892722247121727969419511250343275949923766646287094001366338408810841901967460977531022400828032159379084630549009487699913340629325632237534096964130965954452487024439998897507696444806624392014255766549522768408471384128753468052740350539089939697920343075955576000064884105678523257568791490690751921714464517230015281196735205447570238146206266300746993264604129783157240122324678003855207739962200233308480415552658716261328505522880127248755696535171419503452000370246035284776572325330204144641981754442816066724925838734899333588220256840428705289685025843805491342582751876745024996507487561724436655698693382728740370988423235237190928034397124846553413701919278782492614375456753849412380885747130362828214114258976632127473404637803993409093259336441333767764404861715732625857825532478637426914319629432548553604463511413621545839028101118236563371929467919269288452251666669108562500651499020384438982696039341100831826977770997184864038786700251696932104111990101843225638743607569753275910354616311921152871733941264151107829114234303462566744262685555361336537295167193653962030731834445973343956711057171024258385230379286282114539813698576378286205990635544917134740330851466424114613440714780748530187283932075538124991864254490383770187605187277497505965489330199923016578364022099958251354640279609229497975462928258553497624194983330682077926624045415810070899538745924937397233663249312030009736512491756989896670230555611337535881120283588846588417998577310228538889378251110949563622037238823187929558901133953843165898500009625697525193035604106643780510940593719816003819784920541163823546929117458459042380880909824629997482850656430373058405404792976812174274914043718828728441934328225248765708469079311165853497126283545379976767260078480687281767133894755739349462540555874916816204183398199546958530681516161449290814732627724409584947523363816450192201090088406093436439486693028002424785857831660916580369581630603672249777306463840861379097114248018217517654240208344405054069638432052819796087648227938955737963860249090956177263978351196980386383225516873672647429153341419275382280762853337790047391299478809546893434907550913715957227771585613618524936132953768689643618867955065029781946194406396997315089806581138060575946659485828175103830783208042970115679295994457777121242480314721714326309517266244175773335734497602035801856120537055303274160010340063366835205398773401958306481302284306379006587274465238298407280443781525436225151229686559570048326367028994014040185191024042697623013850079445949539632765929886025112379138306752786511500614336973524662858658767695565538798670007368689806900673582602665188744505510386481510142081547990563557804385871028988291264261388338661353390637908331936163055663132681333436351073267253379358394954511734562447469326857468858492821871871222051829218362080744352577546602845726067374180685691164482226275862848278692112214232114485745770595146177820147457984514503006391519431187236176094325495265786910753366322642200697545079825938287683381712296197902269051462458356113838210409779515129119257744187635478987908563248173660711932281263250867673094008392850148234090092012555500566087765003653109048269979814065783260032771158887645190778962522612064195104290469537772657606222775414626027331484027787021611223723649674853883153035623430516028305797672279548733657812105679915991853936652949002596355891601919089698396047914079679938562404034035726726704205243768053199166823332694197664778785142712599499144661577905553276369834121398312470121515465302291022192227550696286594635184196891950874417335350345661682889221828063826727154498279039500190942883408084492512262100397212363847079239365383371758064178520162530336660639863826356784950876510505466388209441438539129295240619954197632592451906348196462207172814023802987276195035850716969426040888765240313970596540191295999512908991324597335608304755121423894541879157374286631715022095616547420568790720627273104284646195778925404461951530844719537504576179206026137585607200844203199885548076622945785430142560130329996704821057854359234636646831152963751002617153134796187456105775088150769053177623608367884716571023912638588284831031601815076274865010262057390521218705767294042113295227114989987081822701311150699248700809803092906551542514023141465277362728390366192099235932928343461409059764814929360461149526926365908097667653887340722424644942091806683983810860188362215602096254246029988238332629871167469135235444346929341976053467144648977097265073611414297165279469784424949817177413994986895029889500888297163289388247162144653004526314252248927915752370542148959497470823772012934305115694599096920134065673430926756671670767049438922070351501258874909816126583366157733690721639031704276509790246707096365402083154323664933071626243787603051739711363067698478091858301435739054190674632251682756547923327368382873833199278896501674921031121953881761823681438190577885933845841713890044289094326090472495080283171146714543756418690571826618374540004908266750248094425781138114299404205680312664973045545840288177445564722681699994938631497584200624138315479475582105765986296000977400252668820358118358177936381835862621303527780409084058621445252323376161087478792121893713877748345793472064343762421087170057600947968248570877078382720338141034001633428259764172866107920545823716437463166028041487478570402770853016801058378047211780412332874970985932155029762686876600822110507171162474123513901524676997132349735927471452320040560962449984873380588872962074305776232127206162982995522997007787826493773879976679851268171761149352531037950757107431913417460734307184722545323437544978512268574261332827421473610471291781023515646000668075860871359197257519338292172080166965879304610591137518776143617509871239153524867097879572316498899714877788024145603941337161126376260081391631544192169768920296288894446995041545630923638205012148507584490131928042885633275318389146744194332649993819652423413257636122477525696252279969476372056358445748301193430921974266948614629237749845839348027401179086147904952878800431258166923622460834255115475317616002532666735276794494171834111843236824401684485439678002056718651936253970022752306400202729382240043516292213574040934674107687550154850794298972050656382423718210573632677297306730716776228875300018393045215438926935009896081346070046992020420843466209846670939046894588281827922565202853827215140291625988712213673264251542457848622275507839131206721544733971253753418649918206100464232856315494815787543726160906185042245660322030378855758990748390376308311766304647081885493753894834815592673345240836651188523882976279497435154839037410864124543422192011125713247119810756996263871392035133492052156848707582617601415279928435036998487552202351243690599273622969842459805768102346443337194109179753148667809848306797305421022518515435663017915078241849959343089431671103506870334397621537067584005481924837958824641426186118613384289679801921963949531028294896420964496504705542819730161405738305399956153284408074248910075965980220398963018144404265819489827565221795720013751603289383252076206361513917430744493984942277043768028185433027435995071021747476437125320995806422712612836311582509467896745676021558137117947747543198216469635959641498801562301209875075750863070247511856326119263342662511645414288545408641066123221161043384234307895228154997313938709894678916737997655344693386748560216485359500592024382215214657594454948069917739953733904977012500710717363871996766559102175394357632280008282905423576278848927348282711654212821288082507349056511401319482282425846626694914198579538411102832316780112794895876313820724475039117227221544420817958669296059586785877382016537666767341631480639783805961109827440832287495817629537247101855518645540964406188053076189661817582024816937386186221364523879461500110777866736749752134274648952243584441738219866248885845232082994055116879068119934737495767141994340063369540999184846210989038307409403688196626252758633858358695159875386316877134829006311245816347533699914181149158020692487694853977335260039022022806228519139258872705316546676353596311634775903016811567809351853986634998102039409642087242523994805548012423530082185633579985008938698071841360825647144936295907437847749495904655230257318891169250597071114960175736416620556125021553544815571084381599325736671913175027962326688325106783902362519256289499122884815974242508981467440444981382165863770486410037918371394702165799095946547359502946182617368387171841558592585238887829768549605255875776220905430447442232413386302308414763047117595817243668047692080980249003907291151214880159379275788481370411988687437604056417187952509916575047749198803154689942828063712295083193817567139507877884422497798314319594080725598415055897886530822378401947133277580811834654620210634522222859731502428488063538739717132583823512883114961364991785703437154165781763647419193497402403228337185462939041848767822162847513451881803659863077160397701301724292832712701440942080940596558719944640445685562373496633667543043551689770161787907309048308544493625938652178985619212289176172823682136277130086507952281696865779411056006463442907416918739686545623472787876373861291552331599534955792269972584759488685126890348105933050384864314999640761447870603183920355952166262748881223031903895512970377421739752931043622202572146083067415186214349401491511572038409279120005586549055904331678281861302920198519040362985355136046892393425696786406076555892135955243877575296584079282800583975896030782596465958979572082302721461094058720534283762336432683871720918354678888153925634598235096609573077170708253854324885695000371551321245910731814510560430096490060671950701216310878310322127931428429645066426729262146578343468328673623493788629843340751764475682806201214210574189128169181191516367256634450695203805325006102787574928185391613888408803425462941802039717428939452454558780264676152963634321572880181126665116026193702602027838521941178331649637502215907587968191906553954631360768550666927777962566123640410054965510487515264289062977231148945159732682367500629418888112191439672245671177542271994589123247034467361803249102367580269867467635464387775367792119852890993218096581640050339407474827000146963415994302959383952147542389756383053595105065270686055394527508841387887465650497042026337540587006624883662178967628187084110938532290311909601135435616196888437612464657155796086826564711194821263865517421233311599154897882718598131655685313724841734443794769017290774216162103849096555521879052424858393420649451203224849681671786545714184261752087451027665763763828709596949538322558480494597036071621215455192806701711719978521037090728512461058195523067923812740490350517982342004453434775445180695894313393429203440673443511986231485488232608945370563233564572964886342849621339861885512888061602712314916732598965694372045366150922107738703878095831312591417116339183002002443167607027707445402657298865108711407183190969479355750724929947241563182572954195775705372395507089493651145274298357915918177424023007978545436267429671479445028920390776504466603802782655394718208594685095012108853820095600093588253315064471426986919790697767469841313044313743642228914847551750877999683703869783099871829907299451472124547403235679721640103200887676193572621392384245284789921867588122678281401153402956368855374554660552290697560818802817703608014333645487134764597728246191740707316365080750752190994654976053572958599806735844792711899587104170866315910587911269059458190729461242234253681339407085599555368116334072066767527064045022914853197465960985027683664372461919645923228408064355346254829365272911309146404716508947222369571552704202983093811105455082743092900197901933096356512676664681419764213912781031114053860925183206872740872841056102368318413297971371734283845759430721383844993144055195950226072829318851842348480336427556547292480613152884420365891122772135201407212533082835748754644768426660901977737305769323561557231773754709944202255163037999567642326145539471349845414466895021777599252423330020785679076696969026489230112569069589081858722841451724548656920583442322461468649477186323608576791109251090148578714600474575565636671681251642006571645573692983177319898691729090068983754982981350738920692710928388672766434504162569555573416546589636803955146118421436483336534293425116572234284674664891538956370956643637165958991441063653416844809269554929950050051859781420905328844881269595879875294081896048023571308506250787672378870828127276050914916403953179732511105633581418043892436192440150468956962778769158563526558225315975254021559999789306132857925395701219712240783285337420773952123934546606830851676129143770425258833756753466023931309548243108512741378984250351688873197216156915882982739068136609683833523036862557424328204575928443884239509160527275697219896366347235821508203407601896615703162327180741646296138544234633136309516224362324653755623430542569016454109503426442995590356659414274836129619949593258427545073275101477202873004093059939282750755619014764397382657533822660848911404505681920334311631114714407563511557909941715174335297849156069876332318164628254645564606922240828428335972985980346599455568983540146184620047644638540534360793877649063254965644491521212607479944863980991168024845708110655261378653931006711060073340586551472691015501408915500589125893843619840293114879983276376721322217889404818822156495663518196326398156927145877105092152154973112549846354996714982273991755462733138032285794966996393359319320817927603834239994870366366661765664101666480300178438731916492514513691587181015260638949049714228351096917317499172030202224703429239901061795184743250803614974272911825592153964429364401137891832139121578620869512995579854864858487916445253122077897926201561116996016566013910859182097003463805600436353219712179801580638405771321601114977396683902833754556220354835540107088096318897675526037992962466207963875887123656891905917637967859847641308738005405873472576711792293022816176284028589839469678144446842558104875349999023541865813252357501568982166770516972125158905353595264195498736947968214229141348090808182575181966115017730856804191610901676562513452535779283030303750765778041839609971814721649527211001455081775278693904676100295911061190078688379867558617208250924853826012503372201526559923197638907746735748986794485311229776347947694990842449255011454440167138776612868950909346338287817705996148190064750202956279984322286333246748530267057958608835920660556912742050766535182736300527505915190057999401630512057647900876230590648314431118747830460925744508675054036497980136477255328981302426168482767544531360234342584895357802621585430524353091528708789169346865716952997563820284672899806251080002606106349361599753870664667157973526478844839745870402539038119303170858939670861757781206419960815518190539461805640038540628528488493106601907496243006426588471892116868084391125664345254782869822418009708353104791278617354536218303449733490688170132727470630644669397225426213346828170985200347295611940514590099863418862274881630450736514340128589483565106054020787473778464336300506476911482478171415788574721353347714721254367321292534182570180987834998011137596506369019823078628452984478374423299562305142648202114227154607848254223881134362122994709734365980904197050933357398836309581394557092496478732454865483382210623686796556522059104851596382769945752260992213926169234070815923873820675842183765308240835548655507091421540661770243882895289361342791606714710408527075697237722513862287241705129971474282823326481752397890663304401011707856737358545773280794013656109239459337829128723226411083890424895642796841566676986641629211970399207952401460217506008765662876014054399434665917707378260904654895744257999906798023571504318505813497263233736230981888270984071281438561507919748718083956784901996733553196933515773666413018943721958334737686075959580515949066037087521550519590664051474836616965467621431593808209925516034720582004196809551134848430960676396728362606705689565761103490566403653384025255826127427698244897791485319603663784099074362857211026516261218529123604769187065908108189562895824904273345572368298926510028201716359053555338478077653891848048756257730820879576912742186105560486091602356084407071556600450844505132523512394343784673571955278485840959180291720926122131552798048225289736875720972950936444652420648265798896381942666366270866831345821405854575388994047293775953821338877413849766004303749259384145132229678295568953492825146916243423957423753938806734001170199362706683340041208727707110599136040434769710658582061273173940188722780551947834794969280643095648611541107236462060721667169033389019677224939905623766345087495416267230110830495016396967999204302816372468370941193087438291673214225624233215230258386286606485774383761431738837695475708089117238481139983607115778395911882710006969190021523284618608518460057219266415134409826542743163785826069290634777320883212642301040455348136979317070932983891783179056401439573705677846707938400574751591024344708665480449266081506515629937960875719637923002802141707598770540733379759982631494441750949584420122890650029131521546273323853833694982266956620805352922233513797174192246058215328594320233266373958520030663960150320754098496814623282892125263134015204650090818336864649566743408491262773076543707660022847573347539240280071845425369936280905484857452335421584179793865427447883151143199634844408746108283283770073030220893118480174736647362351211535439419326424360945839161180447220300914111546269796377102068087589596587740618551471913798671353229716305572211435541344454573100640167251385436299205067748597572284279552425273360642371255632842239132940400946128319369676165508142308871167931621289845998452054589370899341905408438143100038312463136906358191824429388132550962966592625243706055554143824051640943250089296269400021672988678058076705587727640744913136147840977872453581225690410580164754364509534101684690792205238036886111530743644760069649333739268433566699119843356959841404293777463837662612950887450567381443692749643884029352459958548652679279367121113372923862403815163727821853608346174429708818292174156816572705513836875561709636718354976259180346776857494204590815862106219398317992182381652839754809149067883220939331934885081752221407714149258204149415668853347389688680954236888315337928309014107802149114815163335495455553258668134333693763837732151217263388074852009484012810418560698159954525478620413894870971611425733193280863951254480389833411319543948018343775793081308055836122334449354255990364958233302532128246476514844078738099473498941132097174600918469514061608407448900103181479867838361372603135123380586779382280547505719510939562973207387061216637231262081495031226341759474962196751674309749711267984565495524582246082981896154917032287556000428294837043048770151130342964872739123864985241261367826796674296050086492962689691227519300502473245571261881817388928369917346495675209207771825605849206591546233878445869717233562873679330538005447319612420708231859316925438320559493100328819030108021319751162005490546403356254127027731831911963819512234484593956439410702268264687861874728306016557665528788192586497474331739286320809659119706214237414740509552884971748767055574039252018456733515979581228886208036479164005225738609527124253233777421248262786531952281697534438749272080207537286703293816867868447826853813907989312205798429011840989333427008185959708926732805299123848379430674977574968763753889633519675652327989458854814634932601118841380655736824586617016660519169527399115953192821268922645685052083880858198643131632696993142233694225428524378058924877706744326165037186538938309529102000292328693475493449970650058996180392109980981861364938591908197653353396889315818991048492565215321017478869826916264949843881654816611632148088033474423439649921283477942128163454080835699405060409570839207117511974689958319371223713029057485780678890945702377373391392649357978741101498153038777373722319345213183610218285059696025365131578870928959343308871334781453528868684038990358555845139534695992442485296172263574770050088823669667210131740214632124585512572822905971797717663673697797259073997712144788900766339446062105968341962440632060054120019445992143083625769747449121841236464327981534203834388895269784222437058613267066176433365410571851439506904833544047695728409821657072221255505546152534686585606755678997057579850357690258254743061282985173673047085355264849916701675223143734778987667029605789709439861291898008059094187360572808832771825898000347726440247867973659305820778798724445374414940831121913646638367115676069263174991912299481366096766639569357033534730335614302559364796775178827455270539616574253658025614854635026108234691439273738182461870218496911760778192514010634189482646143174191266940681701191681232178747133305497277863769504803625987991393373747450928964006039182926830906131921810768989906388812897319101090014656888024017246084349344000353000498507154763895597557211732393613995772626704444334922644846615688183428741882872266417780781167289710160019703534303668213887917907226016614674664044851137067626378619231830535702280045093504195588629987373482820715481469078240556982459336458877867057621635437634542656191288283950640015862324066593429744547727729406870376443588221571201246515969510158768914373947631697227584123443125678036559825390946765124035302168904279876158414403398935712066458063044162566410262957465761698483955214972468411271818765149899231420780282872391850545528044136219147515770790768548710124097354372026972182145294014886892814677934005649553269595325319760810801444032179745795357841962281330288977530342296605461658839045328218821504031384264612634673252202056211843038030189124618629902604381196131731047417401525563851285452965836337248220914749779156455890077847127430833093287534430679086880469720304238944371962072152506404251595717426755868707771770104454478055559799131812106190011515622973141230978357461767453376825450270648397235559772561378675801379020150268770889163161162369519114649850754982575864952508323829051386123566270022375922914008114276606339321049782192697042726801797904125987148031697232263862378711460341447984521651164630164349656099957981713991173335393822618275151714844747149882511137609675507455454642253842190808393352959541476212729406153196024109002220181955849952673822312667290565784814301077208629082728350573448389217901162085801142104221859813988596192077605986788852786170487422103233072933352340662679657484005586375298088276084209377058212903184597581618753782433701913461034016160970027977017280471273962864732666271796805908344258805029844498532213282195749537758660774468045009445099946530851974725075538219542197725855148714084447680762377507445469949388371114147048466574703475933777206479477535134661851500887865373336270819865653308805109371162070938405084902029771789575749521251806866783138737566747824426100347505573634144534459001024245713457487567061539052126350267864486960185980544787177641700098034934056320768286448555229515283666571921237726814763277880353904120099937648032600703786897416178650171039517001239579201086351309977271054125927749282912189123909445205559954436668179998312376920885506341970690148447168766634924082041380137482505502245552086377813309279695067250961600088711324100805541782955591537450192384748613781229145293124328157565411715630460894990895020904186100821892736236754840150811850124805363369294004678304140349128080994638047993190092842643399803703404658732818844212162580445739065840129567713888837021661437223877167781123080444540652715723131490075924073768697226743383918501214395969020043133381625191341136188033639597868228660961718067333466826521520187651729926403929498158557423416319892653796914746810507183529857699687270754404252794517596975011131211460049438920105537788514894422549827970064444744978805298281296717369828722115447093489729531627557433340752793585520499593389701034121489946404080403609869432759621519371027730496034336479021167797798995166851044950796969090992059389393799903772876334853706708869539361343343209882390399612281913970764139818759185326301269513407326899420420567501704370811882015664510506195545525735847719498681379771995429328702725253880312466342649547125112597520077292037849383205645899003014562842145756572331451199017018904110004737322060399806433673766028708169260074720166056389204349344909066390997007631471780577593591581508044271149276733983100582137308346100887734569424528091454649589761140466522530265329072597426447441787600927965025093451054700776872151113805620792723886324788677652999688828288251115045814230446885885328783350144134486512448305934184548748430954600787193193991081189880251694840070201131706387672236492344030983344463400171631675043289619600751645616290311890361700589620431521692441159959951927114915742876324723929835214629746752037917231359390340278376038598668321711950305792722555274220777879521612187023296255208503415119690298723009311327233046083945674554154655340130971666801762553191620158238502451379169428633684854918773847700475811525076739921458270910124492536771277206134998453899571341245091519807042402342179093455835861710706365033246806857732167954979584898007339710730306947707261066149820640575945053622284343606602880059748909084508303510517332227484862468612642864924330279045676642596618685245978247065736796509962194320954065431993655028628682864014386291128940754961063333465104956910635536615330725946518029644994939302696110555921251531600832176725725766777629002025746067298080652670778311783149909777071539323217399024441900546268689304747272876768032412950888039168770370625206328011009155153238861976912403604419052530805370602540555001483356014712816303072207205095707614782048488263522737647495231313651356945871883818669694191775880477042274043231321259672539942591704749396307924285246746645427236944212449661682690208894034037668484501284371516336090016818589493873376189412184985630323968100442387713163281365115319589498148557448558903413597612748163002596862765079898601999073699472080272062419728665886472017316182294981306342579116696626700103223823671756600237877615206688819867119587256963305375040761888079607789508224407001629881748254970168306454118148626969912882114731147700755163830891328278297269660342335956378432677523259419071548956587258452619917325917239731602571219315635725176433905664688462466193866718966327651647396280862595905266778243376673670865442787043303879986681389252218533410370868750635108707534283105143507605082597141011085774066656251758528892338686228764108013744522021814457715455507052726531339044666296784059178288795662572183676743138502157532752255776615848779938575956800182875713337425328401805472533026747686778956259558329105239470607262408160978152106183755087336645629668198419348003965241362057593588454687492437734859283200571787179543130928319615217934451027502518838650048304684307743148885644614637836359179713610972129444371512206650396516796318311499168925052150631511828618474883641164641878047565780418026532647964975784924408480476687764345992791620944533103164791269858983118408854228812874494250714983820556825143564858456158048342259887972905303917089203505320358884221218634557535730831801637420186287727566825825071314407071941940905515095773688607637520274748735783307881279989046010202064405878843536210947402138255769850994001308329438643472007588573417872053457084177703085933058695121826301909035906649089466772007889341673427530721434141920855311844661954360197351948425196665681472907159677583414218045221587788154597831672827107247925614662949285614790460206483665487356891364600630715659727654793004903731520966791720742308075514669743583674712864130734351995601732400142933645254022346541726485225539357497780997907238593419951169846101331328859534050508066598824454715502276220353634557845336831245328330012382802692785089692099988478652622454543045988002517500645914469700652674694060905651889439249065384155788383252353574297017809737635446896829975465946903307560368518788923175506919103165812416135100167308145435202734681198786239448608188767084199983579170118771861041447038456633332421452404743380190839078050525074190926240117966918665747003391999378671207197942341874798011466340492163177370757855680170324239547617062668781306150937778443993304141188284702075948936987745407340059898802898409160059459309445689072943910762130149516929280964422759717976887346337868005080793125816980000726847364492932236977720916807631369346540729565624242374034162871740222824010901280379041257207324929842335126313808532571265537750519539861164660795127740771293738039879253633990950647876141915146910409772839159557383012799591489317887009393063269030148149710091470446928049433544294835236625859785090861804469955961046421808393409684961366140681120646844933013471105743541650866200735394163551965378402514948668431576906444913038107739659376098183253099671810454784186728701035604611273793580026067102239898118266301829461438799490120731779157667349118392078726430412315017932914498471039614302381224272442026572379169458497538073028429475495885664218738052778296629472481563274798553960851470728975327029165156437732659675789892676821260232990502169036315413715488179279201191500708039851870132819302315859350450617400785185477813428439965441395398282278306117178450083103064359298974995746520114460493449997205666227168924361270121788430993833503170028050347480973549922112818474138340926918494683321323011675239569136778124810473632076711317568742441997729673942383133265616031654593039492527434726179915417616245477806324209235121791060657522216596698058254408021003070585910876814503344371165202105135172280829911882562143509122736873576204017101995841424167275172243431348475713776263193518158730316199313707291771107644283140116175096470982771267988010882107600473510341548425923901508615462730347145846261320274475590269632568723718192159767789241177518449108714771760540650284109178315753726851483878218352576743661170718754272065861399771009730221243200240768964211957389611330804597319525588482778108607188085177616362578198993116133760429191942325988504870596621900001203371688181116393836027407371025110997164765080110635358499578573587200414523683604913556635807236315312882946504773267000495857826513591426472591642312588301416908909050992146009237213503129226420352786037555266642152649460364225177332980446208004760731990400178026403046517558788500900054606967731406110798465821597311663558643943888393907248660630828964393072674681101272473390521198334072908558221543740791253525925812236824986015397635490820247837757576036104801513441501765492990987695785728102996310103370954866102878998144991424523671900941594873406479256937354771364977303276830361100806128932392168525169092541540131410496737374094405117928948184697936670952808507716697528784096985223155880947951273726610389826891622216169677701062985383164121025796698678260275276668472463853125879698642403470672204722334370072758751916221085471840938811427367448156403418761073161467735554547098518124020648863993694368613410515604874744558266123041149141534467534420262192178542946869702747784612068999862965034413215102055698073092667919130600092907271999221296624439565711933070846495434535091884886634120328948643447399581623871406365378545751489492704092690019774171926977747245549596428459353113445618713645748641498802512108078727147837533462050702779399879585068190003380980405718089370434822452849363566074723363927442788341313085365036951773572520119955314529832631236546782911045491195364120602435985953892585009678282268383953058823829234181337195272694187039072022853793210124054299351424990230354397643492462407742867125456707538048989648250914873219684124122771024056807191839304663045449960953110840210282240247176785691467181809700759516170145731335950245433100567662464323150448619045817386347134078971769506268634812420258379275868644255714440868133866482542990208413103084830053151175802337493655573384589416753925609157869069484770203483409453153636569040679502161026312016940874511941499877787634372173911769920881382563792277010244385516007246558472527947562682937949768377672567068056682333865148413509176569473389060039485042737950891213704616498590729470014438322902072399106929085186792211743287994387286682717325452475805808948371282858690949763130192360593347784705586349309054901072809582602907502642268090656392065000530845782968974720217156962486631100501694221434772562805393955508459237283396835694525881048752397523621055545741897967413547026465629640094440525748053603284045536439341592447918705912672157844439935294922395256859516388286464739845377701096482513656916425840178121831522749723090236654430748786428807804426838899477720192352285331755779675343026828386336428624684117462045999408385616286167067058094975283245352940318104270998508822989957610007112675832548997888480696537117256253833585517192078245980199573289745321574630076055975854678976077468319088818124597547771675102554666782105496146976960261162780841582695503514562857563278148385410976561205382858152994383360576547300980179032205606800162560605456293785146955122664923514919161200910882540086333992281606601528682631930831041054656200784708700223865118786800139990548050155905796397723697301150778997201460706570066955037904043266734367284900834932696452089277811865886676899479748753725814271448966942588792908926770533802950564014012867112959797780487506032966536296860441924208187842047520533992849101515753862114546644657733119275442052091159927614233992159000011631791098022199374985500083460587775465595522873437059661536578115938658199996798356278869310126418980874264643776455399784393124832329902638733634502757383104924447767849134246398314143306822170490278467042291412521523130462839666664951179428395294816397436814773021045333233678107386860811214704892621163410581994888040100556863180859582102406248386536011263014826798102194546279758515289944200744053803361072707783526347239793834555119641300402093117277232846680145904791870926256854448789738246050919493081750966136388135140164303695451579803111787497876744312738119682979033849047994823537249095830208369810258949540860890505793536299265641516158742744523852797329530020595129281208741242106030711124075903588892952838028583094057197002186514735608336962204461905636699442877356739352596193411970390256097464188551116243163397448582559722366560402220652663340049880271791645228481976441081503559136614430873893468826794068084528802909214815976502465112608553856090506009121357148727634997884511839519849576257528544548859534541221512184279480599526181972941050036009257624630139506427981922830114635428281245774179073882294760372433047989786303947235823848358368165345581982213106104268898379434285674282476090909581942301965306051236451932845710246318633717602390081983724104565609409967439784579411982093167491928926271790937800104278738391328026381067261465122757532510978841111676372901322945160985349085844371089264848406048697484011116985221464387780650799533882031271063201144382107238426723456560528414582897724706240170120342543147656564051968590717097937469488357181732376615673271978439134321974120921829151601045711898949235511610058018213034570878002999203543907258101932026256358469364520093889777651678855201411949826447429861853503130865108268155178957633588153870483071132391010867005259171431719454457602079360293729908629756516723785376566434250852097347368740767485218766705499865864896811197925117108934612219754115055196712940507677977262424549843884608496529225047842440144528005616629100492001251635841641261674196519677417225178475158840827817757535565693173672776332874700465157870936011015774056841349116037615713356911853306591541634127379859852097172524062779235291065922350066178089515312048935215507110019092298022479820217058261784721855960468875231725640148381539654498230548029219689654815771745654179741692414978792413657460203348195194140974201077691879935056297611500418024033036591815900869431453641991149421294668280206291992187908775656268926957919851041334333027858883684302726799294145908245216129006739729553390785123351888861689788541749779801140227350064021739174700287356024826066423063268264999074643569663163521397036075172702644822521997242973266677715976799164243345416943848872874138326682125934190863223546340413894039054465480945418780425580551559277699109171621956205097396804492200221238789139881071109792141063863280110809599482934845651109021005275707885229258665315165035802792109312047787172237486558825350730013067617234694976650380453830536080149009843263321919268498310733357836937020004369072616162618783358660399753020602646096576093887678382354894987630082392400278100291612842838653128828857810517178039967571145085663543922779115823398054634501992833035148356795478797980065093662012240166173950785676988385685636789988592430906507289417102583255559701187651026401742128129905018074395222403966702846880673548432983407523334867946476118755509776922657523086986371133068775082978330406758090815926114365495470836870490231992831908688687199105021366740048018758519797669697617891989582296750599056658495746426659960234773003731993960613707110234236490483180039702540119304080257851399842895797226196573486168060637556910423833003692939908673666097216370931343256232772645843307342573245125126115442697659963296949287180343429244896457650378377630374878489296149784711334908269198457643413037169985830632081237339047930148446534984997903015690277328871773758809991990572876241266157293831526208591986955433709352919299744816210391418919700531670446177746957215508649252882406500751552469295171112607949589659986845267092708501990856124598019384272621382689306345690784880131588383774312959934844221650978054998327298634987296883128423531958661298864905115750254253403763483618248815769989704546068393521949733142165601604623125053352518963224965504651440644866794996333313498785072388774455568527676606608953915605471161448569995432986343110819448659614726997772440053078250075642777338795477351541108375119870191404955343489350686866799448635828967529016124089146518571762300768627752248526476731328192970916979391962952324414142637756386073231006740332912108348258150895217199216468340889729950995542950059403235829099516680357544252718128748783626934004168396056256501230406409961501266877394243378951078722593795511110764165369914526282965114648090725420027276968954905724102027537959540361507991909119837020981742484281290545956287562476884850793179140862120438007897697042565536413976944892190143817967900255685766295153142955956271817797872528525266646277446748289758626721883167409519186366930186589763121972537410877316652324546385723458108629089270728988976262026787578202841476094221299542529900707464981214506543009302904210805320861378139927828230020247210712177641154948464930186321331234240540722729329725496819153856434486779681619746194794610093692702040695704910447293224154163001703985409897660632526196007315311267546124350488571936408267091527275447022406439719071365211390885083790244865913371744349730348815839361925946136774001576551736082096035771897354428615822275412669473287019234827624318896850174566292361187726075687055272842013885981586389017903000946372023590442418493970154557245294711429251805696810848839668981952214671249355964050633298977246406816232427156780294812787516946294954828300672180639635848668102374324874381932761426677205285919573999868580370608614521186430954744739977989777091397798430741927211234923091515136648131444529965068379016140724862509344547445001395242323589752950287513371819882531900084224267755014360480518605475784504481685384860241071824830555088092675947150763186287389991370241211413924626702277552331249234049396230101906660420071735562361408723539759329201765064518120459551332035719609830213658998228460683175571446307434244995638627493292357523823826401076502250699734467303623189329862552081431209316923923379906298474564013644255214794489805297999411427256711542130518993279311752022593099431531643467619047966379631724276991553108200605773050136291761075505378458461775730357747069130567031062571652164330058037938326024952148487562444789058319795542109481766849905695807905701222983935292280312712709011245250423975295715997244555673502517462113244634191418509002907716627510564769975530283589931528443907579071387430181430011454060907285315799312976718641951152303460939210639717340565238118823126491472381441782508266504791574601474480114531777962986068728116497750733326335503781066420994132679447657989424902462966664899607877105952717936742762232850721364824670535847814788310225545287117283547980961138627378937844300614966572134729447167057922891060710321952507808641431181567877319232951647481750603342083792683915072477603510165825125786743393203586462335751217708083150522073161055218475944314274424579538845641802489055402270958500659886987568479788014913275389689409076153994145345479381621277722057815743033522137308943356068518743893823759534938737992870681765477693219720874324587728750266173119168084546798116006122054557959745577151445651611862323343024637225400178388773928659513863328184283653671131685695382613221563169031218766706854817235221412931743022895703278585968624713891796473743046139802460729320898528533706744355917538874779595060998921205702980030834663631797546325462548418970734526123408622016976332722703387743792241103683619019030264822353946452179497687166362983839793950381450137503579226395291934880358215096866400161411859339590469805741772211990956723978274058945392963702165067032544714506303554078302727080232661480758962125265294560364216974285778377144484782171278716900960022401687989824589840979119259804130786640950569996921850121178275132466428682746282437375515845170203234880657190120551190511429992504580273897001311673860278212563002180334376766754740617761688200006242225747535052391853606703477425246644921831596884121438634937345990539001945110213840119302402508842197789875821033530845678313955428083520240327040327806495980944761770073093931415172643773864590406730330241987054004352479235624712977099245251089374029158286917088259259471890235900438028718209001196635857510483087960253934651965257233672326267727785634217614063482713798758441782003275220255162899744381474570522589878902359997687503376400040337947723967805607580228782878012797095031101673503174258160478892203519920862391546958268051433319969312473024010649029068004927571526634047223886249806315438923947182994763651108273006432264897184607738025669587497837621716305719663769749268734436166175529499009760295065143152130492363201854307570952662184579598726198614375195921751773618638340154257872915638421935743623568533665424933116813585175991292411395070904008298134254012677798386956784644306880924881240674213386668834602614867485384971602405360431713499918713924392223808971924607488328642735659471704227567666110001583494330883723177940282696746062165799546920798578460353906309834688606053536709642972043974495160566034687172750869039367417787107155517603051270577109035440086429308838154325730933198557143028790285488665811148960724846431463905947192100168913099132641833331606282788027793763627301181627241823633987786136786760009917541383622346929804310404273020899572294239699618863678074077410743894986042957091629595462232398665208418120879383578091133766503562986613380288733605593236621944202009747652853463768465187452274056969419836036375855534660241596362904551419054079171196973013489265023016230375626476972981914030627573384210173499474148438483192199722409670557117495819298970312967691891024364478888545675719890579388784126316672639207009861560517543348883344547987902146205213423232253581266450251859433008615596492668762041716637463495147946094954278972488186675719607379701298350403573800360769951883079114702667007041414180765431817917486657805968063821995806729791101867304898433957294168482835483805855570902389440075254817142177982729075426334607013876391563116359258461764454394900959381102358827842041628919297907489490280337880352408998469490455662105164137856380934297748388406641528652607144817359375472692990306893190166168571555268782160978960064918766595372616509774201846015976062426901174291751435413730151987852197823461629255955875174873337744125761978347792920125531519054024454787039347680410754658912261375689392766272215850866526886024975632058466044855932637090379432692842485173858752899821770778501978335580437540310390965642422923814760002242512512511135485553228354905373846147108388283182768135969296338293952181841826641639293475329642788187895946169628189337518532946307841785459964433764673896875870478361553282256403516215344536504680079508250543723708038736871437066927661903057264894023067945124574106406065421064950308661841043739760797441465946799119527313652054346734414808436666185125937742703522864763360226211883848531453534688588466229122230542101120627431709611865601987392306474596729486880596784992035461324604764432345434255123340636251949749329434532258971507475246227008147121804800756120197340406563611865445531679782862477654996068175099491805720968021012993574874500077273796834307463647620572688044852740624524941330664522278820935739239924220029856289573045897026766217116731776267000433933322874472640381383999933099038725365974805370807106582637217339553156441799784408464751848745573157901414602579725439201762998539073614830778589510485593340780704647812601121949843044113899636446327771797061639018593959608370029588798301262160308625988804194075973563390588000351848876232342811566838220052958345089500060753870455909811884103112935817659636123283145076265131124179246326439577590088747642983995797822442165141751094295706515889560653502882342307573917456354758068293640306954768605362076830297081126187462990228600045172324361867121019855871807576041071679166893024671097758016316842054680443741506559991442759900568370892399731382545584232603284312078568482542502392079409995139743482962449404734576970853824614350704211754051940089621044820621387018513703783895252662197594673587976736879921606531683094162108875805839541579314783204823309541151904036363479541260311053527624275248203412020928492595787511900318011389241244630121759714324284457739354062873763422917157983785037486273758023662744150220633699330098736590207747159295030695881320824890850095609610689971794592550591703863230133778817703984614470668732887565921820543406109657454700320895280087273905494484535964907058013195025742980181701209000556812547548145926653067259549876114212417473625848836542273069724259119004974836117805504879711003366635251544382717304427979643931855681610223993543850622943456992435513408948567600520620297395362363215318713105434592093201388835137034411707791627256662182802037160558801229340553498781442453984275048274294044272954446294630769381794265167222005346057954685005859173534802013925885351476766971017373432997756901094829351081974305103332435194091245668883201226282934488431567791601144030984045037071539632562586340917596304111165777389835847763617200441921315970588174987562651472640383903780592168646816630146773044239173538304638847664546389772281537309407440512128436259996382384214518051157089101506971573532164874955801153799894121599699341492385920026530618239765071771135389287262425695606735709393203469801031644126614461131413582727372921555865291546232693166098644554203644306857373261452125770305490545441919699721758663781312331976375886178138717030165915952406397259071523022811214452093502998001539192407855763041444172356245005440935396039872057713702585828591733787480314962738973114730635790039339154870679351413402331509571724617633441231635881723331566306095456607130885432200538293797784678263742632650795601540289191839051238429251888914413266875169304042233403864187837883230096077654355930049681401577103122223413925818126206082122672582476324472903510920200726151172929251913502865078261389008355152022342092983095634906577297815265822319693750238644955463663991570147472166020385131521867831819305360395290591957934860527378240995162813250571229204662022305886993938565575448913563121542824881616488165085440227741749777604048681022260645433671641460417044652425763780381921396137032573615878345001152273770620773229460884287170962310489260488807767499942602661102084436036930888831091944477884026245489870014015745286228097455033741981480852487615717860417577160272433610535557832772206684789190242372357100356315951028556499653831044511489671974339705041522979312755323858737096719290457460701526287232899265863419197739206489177974272962449857640114103717800219226071176760867199530904006741052655401420068126830659821259529988607695469675450189272978329640943091583167246474483290023921016529491915298843466105063757025072616060269094207347390327701971106199175876118366651433432927270985053938768918024334846304236816693795487301338611850055773746817386726150681957106043656064242205325542057675771177147598149000655291331060417849752188820749042264438760934426083188638125640341570734902928997945367182104694960769735722502149774291909786145612885868253613954165568415766371966706950512454138882050735988756594847815238947553858325624451561544549865966362146354571430577395679249410547191856304270749086347281454633804252453445079254456997635699743306023257216496295689672108172065374812073036407140376273268708015153002147946652061880163484829171172234240920649897091481925230358362915209940753512982241046259715503601181468506932930743648737057369521463356937560288696434055944385714609003206596983842196005019927080115369831257511676045747365450629373416552849247298849219629739048317712589759765432495130580744270831749067577238988936963665903500368166801566400596501786824993472567606012121993238456119493862227866866680270602802045949483830017940606734667775729888294657991565261820593206342366446383089040009880071410662005291688923020075617493374422662306843412227537824447468515681309917607040474592741184838182555802876957311344047222912514838269502239140246317683171237665096686628279256090673304990883939398476923160973034113723317586358262215829182326733382708305840902754013634978595072132651044738950540670920441967405855337086310150202608661981393737832752137905089420291367814479142220129457788397676626649045982769026839162371782077063441133579481875257116493861805337651042452946945621984165636342276693137103245147872261006160051707120969942793704568176914620296481427893106466257155182548298329308883747968313006126313439522591213768212043440845831099736128468267781279835616987326662423599202980012259374953852734517137589142174771506045537580747867006406105578087652338337131827504417665173944541148869652060336369121092184926574532016879806762708471338146933370000012394359891420311181375099709284622280973270954538174416502818788434830916836991420198746564504154582743895001127327950507473514077944482922423925344864106082478465773308946380804070151290039352512465234680017863848986547674583748961208102776950288570016219216378832003676068497711930259631020355574583090214820264613544687204823920151343688497577290591037692542967873918460469635980627881944124927175044743171904164954687456232589759312420409926381988373043079859558022711614782021560058540367294168999037637875862241353471188861207295085423597492229539282905992899688622044823004072590410879657070372461765826257379566934766083905015903890068436497857616420689145240128697301132577759373546085995576255115979838978674885553294152185665887651911391481967552712438362179906174565523156341534084283574675055799426908415345038227346203494122137297660975336960627925784290578318740794743100097000365936032541191016251752031329958203060106954175553299251112879549346100473284195720766597610820947986423658093392047936372612689836873792654204623613717158210494421317521345719856518369286698740781737284007226148665288498776675473556433189130737640312051712278730152847993524263572422495499409565475115715601367393088132807483260132089422742030104285408719768949799931884048760932948805791280769975045748597021437127200648144215192040758739320220462659349209910704470285392023455572580107930937778702936782652620738980682013666943626277393391369578115214865818560450318879384094209580500901442690635837767493078414931171142456156236233092074115610678787176449273940350439099997588481982946393862084004738458340725807818036713540007475703108111021735234045613703150878503398651472173354566289388002852332704497643879257842336341684033187541202983092856015070933310427093675909608629616788796030297275951212132609068743931725490958939344668623364260812443420516357321512779755625924900199961322766954461018726675802050370990085268170481288168289433398727452149592664114619960353075729860298415703262516827294970350763733794922952764499761693771322305801989347747811199161260770066491579952026147555905706246826757943504916842173542146737031704084167309351305177392803219116489069496534505652153892920922661895121217099889438398295405641192097005883716779907976387979346876494961081940174487931187917045588584171562784905003035814085876989122730623099362568214933377113877782733111288060983610776881683203752057485873594186294443294753489947898584893818765390488680848019647144384433288075598675904016740692034684556118006538733204942634914106746196927043882236714854618877568989186901375398498292357690941042023774133061541837571500110809455132991489663193865884821964075774564206681018243418908563164153513863504763374874050136527484594594326552662715840325466702429626678010475273499564871124914419090081514849248767942538402688669277166355110528176788900117626523599362501847322079955781673121519293614296226050433546481579339230097479737295649591836382313700511297725144684753015136196111380530669219238252804383300712998006582565433865615340361699838479602210076604847303813280397945759827259500022642262888647287879047740175096521694007420787845536730512724499809747567401947725067591290220932884745338704932796490743454910072011071352877063047985142542577080457671211836984147157524756089929385335631641538956014151310494492795699488740367151023156834337460359384697493772645374713561495104298576907985417496654170961989231450281796411371099515369668693854760341723795118497951013161314916662308345942001526691729569209276560459361506833736803503247373065497370522464853496343049814945239956389098875376527703580591060402642256395165850617386997509747999474637143054918034966366166996474022893247098046702013105046747379983489867043158204138841878839777497083356989961978295854102174752509374910347050407358352492754423755900937677570185799842159630821588046897345429100679239418848754996350726968058954296813246584299572391810286795326299181688648697192669590297522039347044805899555591217646370339797818235456495883570990513737925431314966558793255949420508171712024047887230278656711056414761586521145913931227820415434976682743885357980258828507716337589706706574788779020398934343559307507593418388228672350299405853546617861258239288837365733920383342058406153592442991111354709122334167927754500409468957586736632228073165021308609378848802190730995534643614092817277751256195007453007903097811697294636337603882782965378085667475351715190564568249576946212194764374600875103996693121354316117062722254655644395590232857360242479753419007153378319018278987454663650596980557419415719079989293329143022947545873392252910765875188015708376789736483459204028715364012041394285493548332432296253540756675860046332979111453163563851314277101023538581038536649284982506227111200866952176331204326167334547545131573079671160525520221643340967562040716831807764117575682277195563833567031810192973392878900418709902519607564413668128075725687148206973950171952736845602817157754056494562770225480427294258007848774777216226381740490181716531157742785448797727407804690476274867390208531962278862583434219212619590207155144079895492869305237867137399930851706692573882496551373304401185584810137244354769380878507617313541402340997471203549057378989809070379637412515493540374685686344517825223646590308683084448297169586052709498487577508898712686561389761069222348064139345026219458826233639123972830845935810411965810122038729950546718630857685976974749104875290519257908613886489179565786515600701632063113916033654134868334275440589426639316734929417629864793722827676888937991440490499332871654739329457449176379988537046520109590508348978196042407470643879998427036554203310512423631907885520400924575295819879327470844317545789555582444483221551138916498864621747447417431700071462449261664456832776928318640083803569172438313720040221756023834700294578345789764495154997672188373638104622629768957903141654192936106008660694948822183543705701562185022042526330346044887520960314195140662056084032852769059386212543665398771219954668773333863160703124338832525846961506656350253260322075392438761837164987821375702245287463566297914911384001391275427210879850979403631137960318441545391460161670613946931827358607304211924455470725709609217637131990275272404975289978707984238103288170331970462994305006313928683165779237696269730321481895049079148969280773602838680400548141884009197429296803552487564466643388350874317465013551071631184967005802543088196901152576800632789458872604763661677062880439191934735522755739512650542209733817485357351843295291945490063823734106033674241196361467667334377367269706757379342947835400276619516781334055434186821407828580629615798833390230944551721862511588139195776102584156624066074459127190852194071244553732436744152827768602346339432518807052128448182970969557178063423900369114438867475763243118047972956971530238564365194248571720755516005688611601657673636699151477342622290620786097550285278666595494754009588482125743365399702950028348130588700143841381900611114690877349642309799864282509447767894667787678363384034411493830526302118887529406054099094427303052116415194007302928366214954789143190196632610068354243712793982647033400787521752041512934267870283113245714312610459693599115019883015678285259365681833681670798857256038801110337811326744990884496069907104632048940692026404485930285160997765415083267243657162681746292391040601253151970803867088736701113932434612149614250853715797518980127601116520462413830437188645388610128162969343684166843791561973087516530887419979337324536441190471555912067024295481904904556737224779802505826127422763436338401278822636380813528662337680468420130616464185164954839469490988068584115697953804134879469089019466391068341308486271657264169710315703951269038106406858609915057913603950938038707335441160771639091776873727792941582659939160160136766324183544807906882989724834924642607838975482092086190414804710616658727086333695059265346132932438167064916782994379181608399712410867890119108864114886168713852277964557799515608518138479331322430917066418596493963406088467714156657309229247043732971137963483782119004032722707779702331714280375272413207831317674475568789617598908326074876497990586890972994710860003844064947908094093572650005685916152158460652283889189533021774131503259421259246949983532265762393696137632718105232358661602677627465062082484349110235183907214950223818761274477655531335345712445342903180621058809392315610974717956244999266308811629681043529053045737814898270286625299146350586641324425478546304546467687940651007732439298587931185961381869017149729599408802612483259250990034089297829650764529995698076251191853314254166812331290151133623472189641919709693601909973889216873441025199688368904863517518033387650111530374857742140023682702448230003155316916024538176129823238254526376159035858833878763465081574166023977564720300535194127934739882265846265123354716358435645066979951523900007573500616689776331950919706798721902975232546175257830898721531812500768555720527111590271107192941860299048469511558947758811317455806465238712892065536064283464180537007260034066845989885904574814136840979995251458502189311394108479417818781634977635435201645516520442536681751764936984894999213287281687961081535159570655281527649011032479044246210815379888520887604273960937463655937233356839344870314883894924877788897079069417821450374959755620632357142369659675539932006487797769319174292633172407730424483888034020289440837519723155394986888159164547141199806110464098655113685037346248125789687713429240419611381231460609944246673858988883069056373900064419349501904552716017736539135683272775112956553329220895169321779140043889658202015974278878199588618231980020105002484637370042634129376749107067969979275955218783092532175649646664312468657528654663885832320420581019347406663803384736198094872550636793004152647329598772548167356212918541691482892194133324844981584183326246037826697719811359238722703728685890667395216661951441066096419821026898958400819909672835772835568387867086653928337777777416070866912172392329931473255752447028974652773531197973360878791932260159811523459981589780226599281315569438676130032680660925827430943344563162852367400870138436771950698032000361370607301972578874679005285097686901146274334347345764699104972497883216379536351694251323948465249852042594180895816760056626624488055224467424613513786628505891980733424754509560735469835942401892802585835882790143691993267846588787192408649817894904618097178818327322796763493630056987412056782774000623449521539632689588801921030724482060077841675356481505155763112468715911933064914377877018903936074421975653133154058489344517288049719320785747239077856305250896357718384527349486266409508974326271635802630353897751555605818247761780382053818976546621785448834168427198700965314347511237538732949129001141797408248353024865019266443156778783950671454153089984759533606836753512743547709249008869192726835525482517390111438532174879631167826686915142928897248134508470714435151239497821835814941615504401992063074012796066331604621032739831293968673146254421631420238248820060020465362142169179686846307959164192228032461855364718547135457602079597473784512439282436514997768090717690113592218289006520896571518585025485928434241327430005539934638959904842286148861062594594686243990267749049767342225618534108235482119577679410754553053093295376313163391736320497632164020887966569603615748677081498072398571815888188072413184851520697623786412924490256936870097594529213512420491919578717804447119500492500066142357288284636183421375030867607143227282791187025390564387325281091782169289229034696594863589540832083493927355589748619156074087509469625940552516491170561736206251952195646186235155651267786682292838621709467597112888044956179220330599677044525719487589875863081611052823962975510815027307773845150211204189691341113813397591941133916805839066317450030557575410509250977015314975939982879490444817502665091082165479895363418879355081559656963184773260104370622808050253294793314988791713713744771060705097083652131218197051611596423852696890217080161201205650698405118052141502711069813646944499848294526368397436793045776970462781163418062304822440267666014333611075952962830719320101367654559164055643362598067268179401293834546936770402816222508196154938224469883120256459418364054255765724852004258857253069832185494518411879907030718768755021173242707729583466892310517873995492031204934355453111255896240001699934601964796586789249208243561449251344910728121998937355314293523988619294432410123184549654678005206426028717963887761817323312044423602204501880634697408168077405602628517577493264038822465413456112404742784432332422161338270610635608710697266432456088006004839847043178761162951595720474193982757423399751977080505707167277011219472704735897435270059556722195338754164847989100637273206859475814500061562995366085724306697079235636401650931086135871727178403160602485995638433056346532493153145987778976148050578576944297525637948263589082280659857713100979393527128725848189317850294594035848218592248011574065160358978096072112699380147790995256214628997215119900131484130844782147557132484063188960311000061254092523431021262983884283517629561679295854646413061974284380306220613057769609131298465173942463651469162167565453639247105023253508296762057763350610648476693343237935897945990781805059425849433356086996083488007678975949070962277085296694475153423777046487545443222327918311291994788615671100338952284618351483055710681806520063255248764934272296372967178404525653362387180947754127738155675875433981790372788634158398955394158493081868783926889010586284566578377353386537320181955501393403621569166093539291781493571512017319919650163533337957342693609606844519955191446911074321356715713632906549049951166931092008942174318857417920683983582032738950458282903332554740930525476426135016441985735448348081717054481517105458403593336648357839331882461620165108025609457629070566761337789070573962455651803709206514467343807097221088038507055695998738961812464067338618343995995303439154530068716680608703183788128039242197774216809075556805908679916696899330557388002538368027103779492526474035662220461239132604319056850409818069222383499815511564845325418848023295350111676545425607254696240518111713076769098601737999232550379010999468107117206452032999506361723015901050100569503891396028312821751518561591420584669875531623424960057677660980513026993041567028154675676263474519940022837699053592493057453422039784574785698406194727720050898507760003277892305205789570909446376959463357686451580899303406254877142107867364174178803064828774847782512839245051363494810953966394673201288640714362078937955285806987364933213632579102386425339788915169204131096522191321314259014500332721793617123589981506759147307510258189766074681275543206440784486938820720961159627002613006884331253441597742454778215428086089494860603565907756235873057331887630208281001273952253741249047571277561571604909302769212268755976947051447977378154336976137769450681121210868053230054460524652606497893560977191565732511796598160098886761333984398011911295287329756743883945876307651438076028831516671203857044886057394268185376246484733749167513075167324642230032820308035428062965441858071931631358005298541141694423078220313734486482465360307842171606751845793321883468470475456772661859475046949592181994963098060166834363768910860971922220809937223265777586257578255690859488536384088820079827976874547421662313410025942368733060526145871185069660456609941868050419161069670670947306932036552105103396141044359205496436537596364996889119374614902983402274636512629927355206484653828013494472931460587211964692211216873720864494875160707955220919001769687134508562912849513975802776752083139790485354189577248117481462449599098555665861916139948100053561217394379482855069829048013851958093021777838461447430995298413614410904471852901354687394915553936825627766909802747177005751368178278007182647907680665316593957925828446499786752029375350409736940625501132445534904749540962998059513707485122448618091178364944206224663164631855290989648363720752564614327598183232511375586771551947798475230878476558458673528823938780713026777859305241600522309046409226638635070334677023593812612603027903970966321445071405018428203084394385088055879185645272814241207913886468986943860189580802490219479668670838939344638679142856809803093919447623733692122655570757800680259017445474477171566556808306042246539385539638615592441825647522416910191737394467291294214679514105401286634533876564111160114416219279334825886992461166378205990406168836366842108961125332587164902855466564854237156476067194675957131481387938379571837218084228037841835981369195576566150373711885319486022427246469936599333158893921372199314190549176610076106387883800090091486141646563768704603545216849905733588210527613873673666708723302412331955900699441618457712754093376021855192534122458528996075063900336012842563722109914329591221925161964116091108851870783939477073468652369503228016301345722959906595122271803305560406930894160189381654530058359114579518664232230100192708927217637672854048144537664897656633879076389352506094034075575845740319299569958989253462526451719193170872681441864738484432903324467285715115478828458006093365050416492713121703713134724090009049250878218858331500126032547084492083257886057899766155310124707398440398743721305915234654456710481217743751549479584444325713241229270250738448421597133822195910375816095163347292181151645749508223760312025541212956632872870735183064158227225921693965288129215194533094889525013747490183175776298111677565660793430944264755089853659413141115258951329937076899816723026028060116424479255337782779329292038331406117575209223653881398952025621711168026495434404135244289372734732868711871459064892083116438005747677024493328994210786936852365816205635623208314805011933024328265231142073786509489449973508800060875461814056258624239989186753775776658860893374799613691111665586730193984196284817948380476313575764409195657611706216956247076095636999366284493589808288517549944532139570588924192431227312280180245529481350726932344427499349543578828558907098572332942800289252169536583418423714319373983178928219757711488238146377194659671244338323713311090377390921336257565795753302745631875424016646835328425230313522785260487098996662797214590480092054371588374372844003079354158007603055342491834291312672109512490736075962331979319071499050653060138641084389905532524204826622809967192577283056818445791839561756046276364882507910649243010423180175853058329997236241731973210141022078779870868518260474829441363118405956668836297167783626730794948361451533559757726978724651283399474986595340646384198874393803663409943939244623323371347604994016894883894805849569988748153317408187347231867909662569684197511315834861252613593052654101137487536838559899548703984623918294601437034339692420523403798548588972628665786928545927205782538880184908548393321176293533045320584582341634328523172559786697786411388417987616661026187264044609847042470038398218819786381788649633037694505251675213105959408453937208279325138989848949121604837517304833039259150769641681187717866351186965233249857247748779496595484214084922473945812889225241888971854087242544134873784529199779975397455370418533511920095694864223586396720055070787390697560611065543717768665305576447316873281243539581671486694571608468980252388303383561562615549026965690446978157657620613030559134743470332822077937628500089076029901947579639737042350078071937673291419044387682312855341836942522938640670923222066437309233591564581742747722798476272604803081403801673432339089543392187844361431540728227583104514766537657361815884570455913514374651374882477023599500103194075207733711298492957961978017910745466569348076148435475037761455041264050112327179386105280067020615326661185161945213983952290474032719888161418440959306212487743840513268756597405639822096452083291893982724096156429065518840867657750760035594015723351275862512774387731012450113834214183792996102086240824486490683014242495736685077520514513693550391755454397061677277123939308782066583354696378890343175684753356843202328287411443971967637517255150364048531498469449681661490463484572088485546204173491341340981504239719863965777523362461102956005450587760584623976576513480879903282236223929152223614905365456522809463049238726957174857612650186625598837936931198162154528492481707611532025578699352620423006895525627901013261633792558595248970025784789880068049046240514119075218080579067125808406189655596182384345312647760130808055505580713164340443596649923367071088375094411711184807565531257195126535816297813584066140986934594191973219416246160605526251171603093296370158762334764330782936069473695412217264115873655304894504375039585487339214807882428675502915074781394717796607860647255594946273870006184296986309858084901320383479225564371800204927134327471989464395074712774564596784677489473830873406355990345872231272419813059572843910380575326337869658345946372275514485200891359083190892183764417950945490070317601497663552829658793875053541908912500061518211227466235548215301811662813612555795130898003219991879215017223359282887479963974940579316862460585576098953400363562625820999146448649867702455882563963096709367173161496457304840225976963599240656818525490009736548327453883870568321566041023180650531018546784527752963468407525653742170450441570803959988453957419538568804824353776586826521246139167476601395756568616201608924794136986955952007183259467543718078919162975492706962687189250046597568232312302546995964194052990647418525836154017527634703912367933780142629189474860918744687065172927418895547804054504265940570888355601137923780245860310020764114038324015981987140802147181273548700646258340457173421497738683364612272081874887072261909214268637894304035698845604926382095419450611781680311111239211791631889472242507077025634708415757727509224904332816075199722981231663257346292513070694115674999145196608531622472404999805243824633071327863511829173353169555575672682424003674981403213871041916593126884791986740361335085312819483260479853291918250277939650530033554097473594940472403407461920178631229333685758435032399886081637192971972184024203390238518903948940707899028457938138948205444764497116456544775369731323241487182309565961539869723603310311688069859659002673222604523976721850339825241659773994001404977522070005978853188728221395750068691471473912153162778546289222640430249872183224168211757160413697425051300474610801092540428900510140277052462221834413479810217091795750339272768951572198115912280028808689059138431640703269678817229589442197287349614397664393338295407249011257332416945422643478420750756010610399305842493787220019867800840735099959776928533258638170694894130855892842636955227437339837166810564462974787352744472506954619852892314167707887042229149801683139837069293255140195684000573255472733250030468605547482760433395613062396160379801760285887108411528912969283137378765215677900170689395080524052919713164885886556374605799212934386859122211104530215010823244299087490818369597564425661593873015053739322810085460992930474237162245674209951452201878971494401702723570089729444101101588722972306775512202738768640894780532242494235813662986039202805695090444655335609530649561851666653616192970217712876975504254794682880409839364492059194978817434992127872815833400933233288099254500056301194361296098075315893927199291857860574594349445391217646354583957166252352817836792234833584478723049662746264607370274047813513684811536159041308783705296821824638159021100298826826453287536099904815335503001677476248091110115477369884949524728454626341817353317839742965704047251221125366389003827407805242413654267511908637733238713772295832070343449917163131714977862119448457033562161711997797797073723283865261566142950423945047105851437252451528534996812967507494455838602358839312728846463224212675684673325634180460541534246112546291282110109900493686827365368883587396660661890742910694970451212686237266081266034121942604432557628977545561505211471468336066400370081110082705097085121101185740463946155306646679422774260590281692253154703175149404562604177670955742259844333949417404856680106848240858732362073391026200500524791874208937410273705003003034998085439083328179916606005493484029735403324423848739781919533757507457865930904541142296575338892507282547970968485725276161474979888500101999536769390187186258480009522892444942530240429268551029465015429697545287279400024637418604000679716692321441749230639958780144935922588846024603548747525388686411424039459483683988815062733507008600973401748057944966922874967141931770254861169230221165095121534123424426425698988594286154401644077383009226079691894308289220642354815762212432988562896783186260554198079029989343162642294748598056297742553547870509730088742886719605386973956133764355116377375962644537941529941002141683302732461428293120913870105310041471665007828553202599959846384053334351290397606719341861344143921405498964025592873647488819755826240328000697642111319137145139025521286620005376189826518863681928951761763478044319463923092609271657146732144917212180573443782556893128068391259410301342300817653641546519967600060826523374879356424902810953595865281020916755081132629360374827646456318154924053706230327906928147861084752253307139620613094250887218914711542095180587293865425326344385795940513834447819385316341822556940435875473220417084077026259287121472955382185349370032756088986538817349098915059017371503126066399849624474829935448114410087313780249735470951019614090247783006682619489058511693980796022623708111395568056202589317505142720704655228393735861619050289450255560803848793077035092605768623354138771916452770152514622496881993545379741380422051310312319140454136943325357295818695785667572681747255485376862135935580115676637530391199786319951562469155623381974288057210726747862884730355677782917802019406648324954713509162781314695081340333931693985686131998856655271017402202664439927594762528578996088409283241449278749531078185797471883335170253530514151394296464190971969883679709561864059524015545504152921332555178683662686853945074741730916246113276309006369802864466017445632013309404381428690087988487101447143038348360274994802338660406035876867714819049535470785523323370742627714732213514072717216063084806280301243147248440874847773010509734592024950750667831693806842162598612497827252477459174199474008425514962977885645935104898727694989202907520642274634888230244368577305778482361369564961612809874084810646369436418417842252454330809930877048394102533464233517729429976385431508766431811168255523208427895529473042416056969154022762295573593139408425911890858469280233169544481953315017932663349111395976674073231169636423170896845025862232270036640018615077042377410389252747953207319076583072643834766136630319960559409136855978147639803311309488985451879932549716227535551877219245504903728187782891060515554321455642674039759865350279066379080011075498777651079440476887319694021503878553486083932700581550995468081235265223278751421445516180389916712894793012068113418355467212277677368989293970396539342009049248099353128764388225509805007186376255173664359120994785305683311073132209374952947605850284737162027780038159995150346839435513195262637574650362017293604098306468456929225939176071007032036124308105168042891247675217491365593593078450171964173693706230763842166805711283883175278153562268607966636995606408956323542524530226690752365189324897775584693062496859543093719390819087880086161764412130934014900840879249439427501989013337152125103024285259304333729932299363577068920626584156982232534078912962047322159144105300933502451707974041798402966517908628142519732229751155839131698661549790931111457429410748873551099945464467400349159430137693137553948839834612404444928655939796079639806696706113919467140618623720208793803267357400065852052605745603186656448189858486957239545410548951732490404866764073659418774387746987495308360840992335939424209603083887137626602298832326802537508699760198952476879207267652366373948753504542624253962374835909509450902993195817032334835533135809482479753977154818471591166644058536924883466290179057928005290989069220828701034250349735306425782515248003664257593237694760940082381735490857376519503761068835510648951655293934132658687728776965970966360265258742115975553766341321563637113877467324427086098201035595526602209666884592266553284896410731075722292881923950223408073447446484745775814913789841954850160143356025954833033463877406380911939235568748042847142640102677843178888144434452081234770262248383255497256653569200533076336027961698472198036956586781974193332857281118595209182827170883636228237193110273338257668920097783819443420956554638233005512851459294252536316582505720082946596707809680071595768100445542666736338500487134627637789803042062895287767655034981766378780218084886953644072312952622039336699396493395660928871216212435444917756924232415584168403788298651163635511223448981475355297858502399985752526628801046094967158961061318337468616887770076980033854071769553255673765732413180617980952087085816049573881847889994473602514185044273948916942338290181027097231618620353875169318369856521305957382392857597238977993386881259785997125257066988544010911869739504697893998726275519508324311542120955935556237616474605619173112167740762713271215600184865761854739296757333214761310359933813925822070750872706372519577699292412234689950417940756018863380581135480909205327247937787749913424287520450857653854013199984916168442801890961395057330993243547361938387775957553486076003769311677864412230719904369532393355640298430089625073373360624116453433583560167746572514873751746421396157535500375994793252445799873805954229873121902121544745698055633250894414887680926859953406697984285816716225542033121998570343616679708258921619407152622682978477825499920344081984724404883187956623901363066128650834344372166535057169345725777354727850059107051229041876379399546783175331964042630887789991174077060610008938541281032621692171655343745409132498715444501439029938840385922234227223048853384365494354022206517613965297541787480067827117618642880710851320152342675880249235063772535972252726853639877290754009182551687833773460321127368849687117352589478481898800646980756241774943633536603938770090731535728696562250829441438638571774385106387038397582300983822240408330044810427409520378856599278235781766894161151087004091923882532777786999414633820486194242519992268583182885706928703450617960990331053149593351403969847513495924118158756987741799213927972691775272654824980973803727240713485437971578630293085860868346235215705637346532636894661410444352530863524442885053550421341842578821975714105327775242617340670326440130383481721366195534703125838353387406871998066928205379116836360072782597332129332738424201201790279233351444593216328815277627231600864358290781469302201678824011989530396629989260623060474025366001316267105047492192972262270532763773376018756344747180594139859665516553139890934519948827186953191201489309644175110982416586924560958871216618118097945509642731381595862972506433481780951514504835296792113933756308289646007228436348444719557090514567476894756517260914132957555841639505836659779081995223695729251553695038992400341661830377717618868562713856118058936400464360057351223909263675570818525223847837109530142599741928598354075020649017697702061461087119924311574845537097684481783584222771822965298379092275621555946494330899076241338610601480689485152701478018564336899016847795551617637311514095667816065193273639643980589580560386111089785560300719752300811556714719853082393735391596167083128046750353688286803847201673689616664689372039483550668750021177637755366460131283819158063394909396684578189427372669698146888927474565275383430097324089704230571735854261947438290125970337419312259452934596236140460219317668732048947273745670321758787132822514530380519351877048142794024493207196860557622400077499366661320984588967710874562719151850959570637574597938253628234025166453517075961632112408504224667251273679037968439040894736872729086923375655898890893173241359153660558989792058222565021962666803681380931569110371885051233802767304712484340422335416531448597822376796617483628706880925077387811149181823108672567591955654725488493514314358985866705074116219259038823507657780937411212279168464312051563679636575206358792741830014288018712949943300562337055456151704609297487376666115696968111781279994245662009429270449833774106553713182154505303785906177664172011617394388493994417214060131541400525023812174091231467796536999752808882297641299310023513443124318653268526756966332210984453700869424271688529200059431820692976230290382330956544101537895561600702587125784966945517406851873644595597849765543215544498929089428186522209721023319996035461669720823897581707985808028235992050385183567268262598610615800686463860882718929426307594427332538179116947544917699329437436204405018777746451032110269614250582742958902106934708591403297341778014310171469695090910311457210341283551939083628913785189119580779010098639719823086669282805341299691185871388368300961703656086877791606752606396414452966411495429561052398594390970213264806125062386655636648320169849040170924067150668043403843786058196119769330467580545609521934115368647123409598536427248332942908192865844077329079407026305001555989327349254750700388886899015042894089831200094503544223020960425455503181356392792369733062184337450352775410685897101464529689295868244417406669985857775620654088403161183554093940686848969802668801513450311615397517820838591597865311446171965360969594205492274830935256313574758444982185209861310005707753453603122861159203562271840899476743473327090935426003007691437065961996127569814701335407086739733064536167745433499049155547798502986335150215217217991721213753333144672614576565589675595980538577047641116241880967261420478829397121365307714929655166673695475276825517992110104749811618948982692265988810652051057553332751752993356125902286933119025867613976678470380076195039013995179314459044487515463535340708097061747896912887537409368304787521425209548217850990175635393907514372075215997162934064305537852880682732268162759234135198175692342047989778370192129884647732232727120464785761224101280162112322282472912953979676524142480824298068024600894005999657711667529594703558224183587887577124030717644650020354504681038581858726450090786883954784724835504380201348277117938095190946829394970387447180901387381584101251455110749268641501239692960865084015169749906282282410940081047148234159746218132757160875871466397283199195554845689995469671936349703208889928617388211280586845826606506146042563942272978762137602159875392421812098241360652440671787030858754687895413485740369149693976188430868659665884005206672884249278076582101032269533532571856327438129602463056258706009129313258722555320579706710102064302628721717671545419592242600382201082197591666589892098423473467729641529464588835513991732933367559951441661376808646156526430565951972208500997996304008568209403035050289072490888854629606671358764949513326984890937164966314858772113080517876645127948718516564979538025638947302055483800052196030668805570397071138633499990297880779657352110048481701667172760918421821712962812810571897440927147348555034341250818626819115201363894514686779385420459175527829257271337305557220675502440494848689704577267598507784086719477544237021088641491519091443969556064659668923089462557354569922371965884366777020673803393853192933562778105014429669581569557134896264190548152666376124650636046216486560374665549909336427873623194870005298592506641844721525020272671056885989436079090467146765463792170152188729772204701906054878772260387603586154133605152914019404214545661801852672206696104741671960215696020409105356529731647771298111411706378246849764114767094850001987461397654250783177878649345415025270055239438820811222168043575524049036368487151349140680065281093119213918302661183294078597135998069779297919034262077643396678818229915775528925766451917102642619305371263755020281123228887036723339221758910842259899137160800047853564822034905519132122732638886109799603020841147565861698676689312532573012348697373348373143611041395332008928174802226455028996216350370683804327072128255597828017276618292824433077567465101468939329318282550503437018642700352085997928130220937195152902505485638872292704134704676517411118336128668113705504915258632548134925567094938468327088643529155064631582067100351682508730136079593413094673559316984539417072559134511478191508903851590046508965149860356392809208235979930063038269368435818893168321046578262799245282290526766384163998056729538063981801445473982053808906904547149532694966711341585885797183994649915386219662336965081204030615358297767926501574874490628368155202318592418865438326447062421093233756493369584202831232691590671118209185215981655736645189043010135714546231579608477194828158798426075463011523333683042695043047673630587311814407056123442836436253559739711197086870354908185190569381578476146618003387517273141682204159177923882217003058598405808445523451595849428579667465271642582255542838487785416991746974257078625495059864355505381821643550380031540324668776791087442392312459725174508996860700465279778325295525066310826894816932116322166958489726665446930233983194116091363469359719988114903380971715260538981847267184471478650932500500144424030120342360696388693124945103343936257993032388587565873444733520443557396058690946806103304182462507602930725057350518585048952209664992381743346033224241907582673481373029700103346180668892364463640300466692000967654881345711154190851112111053115762496354497270230844724969966669766404594914716041293255950906362319182043351338824076200603821710025516108840485760854491333383199521000625388173117350911139393145705789286553011574585602337649713009892228928616424488964849453386798249800605074225422077974188430287523235594785755960691935731805364838829023288690853628796060359775859738568836584736424995060798952980793405729701959940716455531671250730491614346895252869765407909401621314457781736577194661893875868260108912191134468284741903941978343199083817174942752870352627072221703210327657789998635386201291113937431449144704994395046020548841793053414560849736931482929069392709051093225231044718136534061241499153900151101670678639237973347271721120618723840602910849529640685500150539509654120056077524479353888228106342986347843802213156976425559131897475483852228295932237697326970302088016726584560813829214755464419807191291989678109976369928786972851985989618928239364734996379942138477008688412956975574286655448611493500924912133117070070180777892967089157573802253563424753218504994081471961463967627924210676267553207645070503067822391446315216673998784690864522273719830966712567553064999666772701703967129737634963615379259328805940544570393597834526529676649257916291976140512653453692011575370394276770724754401152504385798711003894943804623495359904072210774064178439481582810397814260694876613265429010994379637850623998163613732910534461038542285186612942268172873127875769336120517602754780834095098786207174280277442406978260823514800277376961708415479373667843395051093679299084640015784083953281719656251824401818600895358249261249073333685054503200328396703947322276169788430702645401150142984263217554260207425420324788279518891832992312306948202380033369457897381818526653346698456295485799649320340842561733940018389873031009270632248606454473263873199012337638167943377699374045190047086376180352813984563491662563212868324777313487299136338108024949610124405982608753157554335031586081540034846655134637270966295655671113296389624967237250919549487645291543587954552884958726009062688607985665097920880330064312343049575544460762949852388191310108211834523681639802696090746265573162193373817870854243648599242928893350372529770840178793711893608055959731973745383037117352568425636492742574413549071409416297400457960564844655428049914896478977151067118223744735694847837772989037001815028002520830281873953958282719417917718945729416755190161892205003716797337559863438728498174813143827217325933786080979220067342682596384591085920765127907800358651605652585823570328843503325050352906552631432245514219763955620007098244785890723653153350228790138839401243258589051395492608343661876237844329590450187374323419429033966068005281140272411513208822308231639863302252229358676044307640226997886585271104510905611244326369447511751937901140830596698860573721539814584004249482439618760919425460244089323828656607896239809638523636574389591381219088172987303593081277462675862173419278309165481649253800253545005366559441834364046908364258058061396200335189766962496191651330111324941784314828991504523189401964569424264103140548780654597247874222454783274601107388251909451083912603157071594848848832798214183998768840296211572452324595105938917606023982195089949926996333073326782492845518861929348172685360285194227546632536787404340182038533959563279421303734252297547023216708572635669844107483508996804961458489519381803182582342982698545719900128548253108795308959474592651448308198392582570197362650882623309567657033104035007385904566963878155299725840815095262046838746165952235426445468396520313931731206664879413293284733196150543592840279240288849278374286704145634985901851729027256085272492384534589027066396852970086339529213149099590823645541684215214250754782882423508771029176784973154125921012109747274934063133662651758542353493482331456570572704524884323804136969557373692435800565942738919719985161720130374637249313982606031722610599045865981050664258204694856082561776725889262543128197501511404471475010249523590723860350499931356694460441821821207065790159648701400236092104643363686383599367049459554670958490389174563840601198600186606997046347626083723666227962839897390510659759203089624622451358851420754895629834625696102670510183758810697373032579928747140719595801544702284879290316593850962602963629648182129209464747851241815984722892582323814493830384598616373762901911092691647015275524853537766190560886161968490232386330342640989116964573728063111795301780624800491824208873856664264036823295401705502548707835678928387036299748285930656631118885925598352977128220609358488917402199545688681603941751302240351023598510985596254479138734962857317286788300725888055314951201214005753632147121493538787501027928654564293306456066764003857582025153480696044090968927185818347598592627269398079642796310351490919713804229950197601086224287943367217521558623950400675894851522016884536554090505359255016508591668717800029657940246075421345682558456866225573117604628083841707949666675312887165271266353779975143098201287068402628409364261829761178915065465450103628227945572279478145655085942219754279681242826925383764708064134435594517002504352369938902728723006380243682551979556898174418522414768500532371113949835187137693472651032911062889714835439233472707255457278384908411847880968211741594329679286918593740197903093620745955015373291550908416901828214112907730575754958258031429821362228560543917366862661190480196133253196063999529309479309730814861890514572758468468400538152774658111947090188597306408335508691113979780605656468900791686212327486681944108467174486847258177897706675830174290190289876648147476538091969267202474168296121307073624003838459641966042806530300534757798413141677950182786011280924621241541111211607031210161765664495897755048910250455169691508165705137423900897124863383588971799033021164417590608669043929326598889912432407927806133449970725677756574906738478297032089279143853605521880487520931657237012075980787213810706833727401245670965830035672598103924459854882117549860993288109278583170563575690483823860552105115449911134175005457561264706856579900023252621781524546250787902617476278644919863707631606407949648703905816106206959966914346596427724611662630605132539667969514077458176881645545974580523528211258492862408313197459224694341139621121306824179597068609010306626105622844734120519788800266247753402427093922948630226167031620370606089166823768456423942442087780296684421571992772565779670024274627912816469394786641469248687223034315493614862694650316621027507516625923898419781796296130246353195702640243105686679071752935406444495975969177254873689770406210109094830477982405717760605213745949416473634952556861916291080282242435282608456115610354598620914607026347116264437481416322926469883579423577604207172931330174993447289543049933679182652593660561421697948059121057259175515492657192335500709195180439497810486083349342061385090016528356252275468512955710079996125391460301534868390264965962130069299912403507199008360390049915251681676827245681032645622111709786022593968732245986227681856002441600592675023631258539111629823382151792086503933724414420377790466976711889984343328347662586761775370013293842160746996800010713446459310693679150148814511464465181825050181626265887633674746610839259669409971955083396302881130076192607326531896269431974995923997950088870447256143649692504456427594454453895977457285855403189008754311382384612116065612667709275393987691234270733497904931062853557199268781833338929329150796184382224794896883792617251759654629832434880380500450976063354154717576656496665211993623232026967236469481235042405136393373935159979068642205448819408926453578727417271510784197542360797156520560472430164431122672718170711979959102996724034750532396697145545229786474769124282035783192475752912099978142570174763663998427125395091320323078628437066487936359367851731378567836887171952862389752327956708926439738688125599707344089280090455738588865345712489868882786419230650394552862706369163637995722653875535562579821474726226335328976209260667070161151686826492216465367210028115293557800060641851271965549449278897156965796183338505938937051167281042555771067042359720077330823947535093730163412776758737276623195073493227974444025149090782713312775209384641315190245842734358650383482609050798510059741979405313782457774860603943186417318310367676115108014673748893240733181367085924261271212395741650266810910909621571152000468387351239076412732991662559969346736316212234229435241257519997259383293574197449722372104261273348030606087982768319209508378079317336691161904438631408823614668287558512172474818138097552292941119565121935737818853261358570690339640966366948120151212275809177639254598235044671193331720497847603689147016965213256134975923759058955844115553259067354624763173451822566713539837219317422923897947621516402716193993396813459324233621698666903765285584313592940428567654981117580549341959153365109751003524047333548262343058141179240212500189090625432518942309860309704637115545620818874307876014258957513522672994472864211192076049464282688716163264190748761999709480459095539967268503793711055091884165152900056589217789605392172744391731633880828621872941840024951221123584200631270188853646010224642519983961016277866008015014007229898052184850144167546395780822673760318304200633122182931412849356025668975854896190189891243771513760975743109441234424058068294420858833040669043967795847956682091684363688396790517462866413994999058353952103064937312365446418713004716769318818531655345011578684245507316389032809043324494162036851082723968153806659473037432748658401473667637454818842642121269711630806148850912966142770746359133196838912707451419164636957836397850650599921805531065817226905968980104333424774398962326465566476204085011284792347951863046303961734997309775743122617119944901033779190828027114758077017481701275977766323783753100370702476884858129254174437694815724169058843552381597608275722518612611018698665617852842522335673745058678702891548154720299394918036145937297952913832043556409932005529474369399298963342212140990934602808910853193163850516204671157269922249905980236810977477297119893539647159541610339870246805033338896033528638710263344747326048099594178691838082683615810853397120799774383660046638289650289682059613686116419087044077184113990336787964279115929758640548235198476755585858672881076955204066124717747343179964688673837474888743288502872262653929289754587591178665241436142435437456450643364863190562917374670114535363921894891117508861654410393782677230211343189120157067026416317495956709235328880136263546934658762056225728804035342591228632163073326802011376425261311609362781712023397372937859516877974324074814582932429955312326512379025588035032964061547154538729657246027539024600498493641430658684923207191545732366251591368998366389379773720660490677621358079160630895177876346566632030014642169019470425515188456953676391204756988130254999951702421179405841315009328579472066009104918310321292302695353668312577992017393450044755228721028326175295788584718199748524132051688135728281152334692126257297699917999885917842545267357484087973530380256669178067598414904516180441698915148468296882196388412753062617382799054595856445118541198193588900800894271781153253831896385694956956958747642923953885291456713456462851881606569014296475649782906100379856995035527354167237635979548491849772885125970087872326781149984066337053199443747631376756506357154314990643739642062474929363836252569391498084512590008477209541738211944244399608325764800094808024044425302680498076907846455234564397721911481133254483316197177813854954548768154534502273324437831452904816000391864068526434913546769135747507935674417100648805941912218356533152573714066898999496062492981785033119534271195844381168680769794630223839106143384477540743724055995279167676578383023018520250738684116742485541558138269473525689407564637674309347288404668975774537933427459015712836010404561776126576771048914212761117684765725587494592950879386198100888173132402004442487612192498726042703663981193076600177195893099143076172203122221161783000514942064389427255340039465632648330693219387787027649541191686941974526795216359149070106315190080549339728655634379649201774561963202045573939667094252074452663654468461922383834640417964472518245657521955427975987189962781895397127712814051396467428421029565247698893699213438347567795361358991203951358653498910033550412590520149386000396148816885134005243092788166173862654851841543584712070600595048382013216655550093063422733869153045669806299008764926901927809176731215417139841793939315868732802573091943874352625627200890800338822357192258050906992165131089703161952967583984668906396404482187454999529187099468661929215596812534732891446540454543356957557866880458322527002848066662209900145754719397780045135689103636491612382939065596294248237803609352415251748911762245279080724540006890269300421599570298789229885775733854875829495992557849362522117942027517263608848746714650406103511553788802030725794627985045723099836092365369438883404965838044417672410837023336968680443393529559430421275613030483972348417522028810447529726816258902145564466215696818959177078959343785583015866198930943514610200239294302756100206549989752184960235501006038286710695544979974860757338016196395956591147074609206837842205330512609236120181812009302226288726395082965255847393046797997531937549116149814141237914429573683639044169938039981071666586766656791118916073129342470481985531317573471089399408332077114041820248876697517319180286979594966196451172937505458014091457863947434418122968647393290833089789021981190628079336681515418611120088799778732619704178646563878264352242815500402044850501396397993441275780802061945999842922635614079709220609756939589909924432337882623877350303435289123661906695222775749592922161810402183978242053435806704122496092014322967641008815538708081625858504078576175904447432688645440457201430148329491785252879422974967836914829929066059281633112251931405220581309307704172001690158560627335281366112265300240673471887974971963334340671655331981927225729540973761598433705764543122443488900758991148820544901774926207963238079099517196091569467395063317578258682038445430559761973559487073074091385167966237214135044414807139983706077484712476930277160025196292344480226904880949732908063163375763192203835785393380904477963916592451392980121970326599724066451460508488449762766419657973971824968205282465203809759948483740553613279564172557439922940500044635274410429352492729372367357731627622329097694937797430221902499407793071382139001058963519328908780388387332108339496002095416733331679022494986578899558116470484271780993066805600324130919236535241456873309908160305815342873557810635197756772064307405843685004041165206424840152461111664666418242707841768870339537035804790435395524856989188262303967586839889553766194446385664184347535240355948468910176312031189696032927771860959205223361123980629204870222197795348027138019347292689678343470302413168981458346084255758882215924711516123243668089774997401727565181161117620836726991865705695868693268740069023673516493315501173432374548529277777905072408616570390060526880193563138107512745744898839423316110443705870222166966703077789531379813948195797706183820899603566061665227891661978909550272767061595394959836838489091575006315982177807825472813687146970595111665101067163238960125765014459636583941082848032533673098702741026466426831293110866950400235421769304142115303025071567495936279151191983307961644078542915208355994016620676194530310778622446492174149405519634435509024631309138788604538942866997635595247799033919476194853789516553362633027951923435703067222307639262094147800931818288671247765211290916907350485846263324991039352527812436715430533736944834577606661800083772551600625464883805361192973320024560043290207639752170271676015617182673774623873066909324506025291601278935713536866508073870481682327474803018734449389204690833114817377932603321047887546652364715225992499303468647256665670232573219476461175923227681131366949234801929546306964753181558239644403008054449176846072369928980228579466755349510116720269755025777883903276509485945703271795739430838809918980377248604842344439079760805131456163160340944587393340055483970133397694659812451014908748540295883928526132553770087716030608843818211950020054055775432446297933517516205680195211425051073743777875289024079050293753680165679604568344109966710340402248011961642733530825305334245258282873681428751532070805140862268686963605107510623367382586802032671625072781842069214363804508956163463828546003833370521227446466408529674253483800366613711652829335718820644200331190388999751170788788124204209686977732144938932415689362833384440438802026647011238884321741518980244026201275208600169028635276637524998400170477282351087660917481383373736805084837517669399936843671016589711192328225404200879668643600459707863246119217966615467553307363950641849620886416794343206260341378347992250638541350295365156684152855567241632330649606602647389790457410477234319914339503171780653552312177623001745435454659276778534323288919729190153153110146177657807283937183189402839558388271946299785977605044527242012146398291256645727615781450660271099360744304230873052670188467337044323636283613259629907110941975125170529678151689822349940365076826053655141076477310045893786323481131585488945417652777896389123087910639780901505217894535221564542471160934750176271873271106743768524491879557564374709561648592791844821036947064016794972770137880367838642930624331412450634489153838776817115589101847310088682887268420384793518157591161038934404045941287620771449189186943975303852134049995762462437593626561353548401284559800161586301395554491290259927548335648452847883991601201699752548135102089553284454315292980994077303450006773110504452724080918863670542187607260819614021707988282988494002704144150829761716233386930131908602494445741555611946935894507784508132034387835280963954737514748479869017009733358296159106272221873308470777012262028868105886334229697180734494958245327648918039064640846418117997593225029035661843872242238257904658327134807417072081683154080374153416527001846904687105988600658686707224565212997651385166267973335000283779343953064796807527758528282949058930599992289156027538501959319909627468780408147948974594450709362941756608731240395068211305753707293399094353416649347640717486079461063153979899404767227831051859964355358393450149156499767055143620015850974545138109161171205467860159378232946641716695244551722770449459252031145904503847893545390388688301726101473283104770784889507215784016681298735915629182004713552538468466603443249923454845283620772935618820142484465240361998171444641146989048781745852275446598324287038746147854329083751825096962440294655066100496689109097649009381166174964103312946132590868001058950851002090950316792213635661230669208454735732831149669495831877741370059665924555330978212658389694914112389592208172240597330186241361912013666365412152227892269470777419427099559808347196454044408671769266388506884001157366097310233947187576610728170707297357176525004300740492881416025999511932946379508637247046808178453164033932771668896131762962434035041318489889211317401092876991872025003055902217443589505031040906127239782343541482078468154717283896650312981813479746606623963129969512316049135227447136959876494926705848934326073237634420365258098272654934708083192723853988360472489375627548276038147022429778172329603748799747462992329091445522139685156483767743927523371344009151801709479734736121207304559192567948889465663663338791827455440345943064677536413298493832963364973132428092410000379023287113549201627996523709754148359137024924148816369936513478636997402504673708583250893371057043805263522245879444392849658643475333413871563256794983278960404155845516971907650244139725615648625540346550657251024237615580456212125685103644676536377138359970957352637488062227444794625156956885067350790048018034715346904075440903804329337275745958054547783167900819955060468321197462231870505492682722262503058223383684419237004754521948069438392349856492610291004765119453817945461056928727171828154454327256413587876748384554423286599082820992782781613632232467182840962388191177950213408498319769986092754979011343911998951651584365513131757448119817893310581437107243980648779204044312106565037916333768812493605377627215856057176478445907341129936375525064113580046662857527470357293833914419581714906127967241241301292842623298430054801179953260044985637666692349998548922408380362503492807341971953172888145750646182951571329055351296711573210289473736463432726987535402365006730372500279214112333577114146386580931017446311918314330552993556983530583927490017724576688014695697853707121269880636024298484067888471925125371277890251740436347463785700215794400741070440159637285137819341294301720291788779612478991043473403491406741435783154335755511753513131570137628987374048111024606954196185795025273754273429143963564659009425112829697758471137730026578863824034085476639557911770073593586789992829090301347334744029669464116731931554443890208324511130818389937068244192216269696478737911000046232231011550822500927265135873716450247789113086605668697065306120603817857406034764338756759243757757245927587018835969993309161954535131346972328421329971027091652087103182781768636844461576277740067984183040385233792812945444434292871139584819785929936825582919717780670042299075617189528112543316211300739597347830133753203407572140333649799570992961919003332096848971338308953262037630998401449186512768983642180775616061631929190458608174643716047730420895980188085625683462245841469433249222486892060681349899797103117680216827710703608213284830727853519297442030738589560405118680422187544516044115382465420022893547025913623894323867163306226571260685349619433336454690258035241773919564334264721027055876915486922587781269240006197394050416105448808743877143569133204763958577998202494249493695506551935782438660948104426362593111091703070177818058432143402155185901083516233240072935598507640705277306964884026539570495519385393574952377216066584456013446365647089912824662289674108821931084061901117622610686101042517070781042632696273434815065947802117460686741677973086812216285798747745111877276113923088343919360107543499122388152890776504423916395820049635743725029592707464262115866835504515194698711809721623185151353749561379346030399994714887040460728707760264959614920766797771424234012567697892779618175190937631570490926841197153610372141278268803217854496502636797324653585326514391938843110855775917466693584452356456339043716661005478660605109537143788355595508511147069781470911202519098110925838200136911575444438992946019803974039379370468615362234518444138639661331748455214893258673609660028561387498506022119529415233342526541431332999120909415043317449950202743824068988640415046887191166525107169342856932284953384947017712222747359552043377750556442221816052774605222877242887789332979042296702684042235156773323981966672838989368598883911681782437864029039239457231153302735733353512170463266198224149167391411836893399549120349746683383139204551208339023373742888669363362656348221699532632813866739823735898421212438752383903035586263471984506064805217791320016199127975040390698230561226441078601463910125356827046847177604303045510274505912303113708477659943784754418280906747186998206514987117203488847870940937078247187450070378756238309462123199075933221163800696891626109381325581637657229947701854760284123419527171378336572780464427822085958219622413874460298213034703416455630095862453128147366858584703403781331269365587599819688729517066117498452097960636220052864313774570425035988196621179314135410646606522472611301296012464130205543945521166492835546710598640263247955013527958394892988475437358676308194656316421816469478109121444757798131479428962554814004499120126194774016434353223889922168115778000656824589120430668241197855715358224568367109793685386723020913635094958546584134470207369373892312549280014540848761839172112123118431338457455872641670308132307641158377642286650875118551018687138445965062968196621178181867274008055231828611070778547115959597180169640356916915270003434805296372827469864385957097175021405637526346696977772281024314689718317771480724527904116529144045386654574082430346249875663812676187544050678328091029828019516618833534158429606236225664356391090848317479798130476088122940711333506454388499195583534666948771095072015219022505761413148301427258670490205209708292405702180964764495972263011643682011943664774230633208474888306730949533735613872539309173237794336205376397520442332790119564339360676135368104777341941769849275594152343343972533287118906779775320441877374856203295244464860972720903939506599975048890906697982965605170342372826204023683309076517615311258092947347246250330060433271499538242021135007171005606260982791055246961127192703734289132795654637888294065608551313172347799042923845283535044127299094327432366009762796016239416297714159776608444058430917335672773585702885322186325263301710435140366705674802155645514227469718903308255290498628331806364376548084796272068943470687155669622830314204293965607638014847498207104144949655072922896908763607878171515308083559865403164519998446284054757433466227088841818266792880237328693888267925182593617090632883362055212076904350855274714491463967283081503578347161725405664195248482472238167475036769700417335858130579347562185371276249516967265968992665231247441337085100863900526987537426985228743853274837494219740956038000126815465923385749276284108320031060454446245657089979474516588905765086073529945573782798591133471025306152276389519242448541690401616004237349819170882385514366081164018056693705335984821904006357648746803216513849696483446360231590813815874531130671983374585334689241488416558218832483755561366001691513123648095102179084006690721286251922662815804521482310123450465334442960579118516649005417366729465790555117472472095115249796352234793695435691998737629414972705373292968132856789375548982471740358253071335563127616848350178989914549536223131990662044090332134397309124723947734126277275558072485544424512088717996418478650908611644199842579279607654645728759615437039382793579905451951085074378943077561111024620053684005150809586482272938244610943530460768748770989205667326927350713384448516651349763509705137492601759637072390014411064450763086747924482915139536417604413535020385159108261840308597390506104628735110382447153504845839351134939787725377871044091112832564100617546997073397032043708018637253621181685974468746223651826021153092097694972360010826010447720056122980765626024883148958282429291689692971149836685535921438171695549155547206422662746082853117205765365408154598769007258505140912159551506862539952209074326970363976431333371871353433015820681130111658818085714400014681926030768885424890973909637119697440990491395119303974948765039506670603166980721353417088973681418145458812222347898332986131035373948620040679705694657218406266459528100230601029077695799595381878327835254203698693287439548789987612775735638350480353537400269723025128392922258668223342142521256921505212564945401539212370038187256050285236789636258478653376009845581134143030032171627327110006002679769434144960509687305953471206554682127519859461634399907843505392997105322631278810918166681327555574911157671469621329725919519853916914398756802302383890775075014895493206366876165598169084401204458730016004373112143505721777698753174503148821837015645286503272447994319823082502053165850843911213820231427779356335192459454702991615150432080981242809422943413580945824832865464319220773330163877723597153386405545078481378473998886148938716816414486171483091743969603468214309825417960240285801790107322241650837943372143350315682842201563312134630977230600329920862087888330735294161293358274811522176335258482384821697587164049571036043890324895270753672008047344543678004720967756543824713612866004077394120052899687469423371336469041259217327379998592935385336689131351153864996547990394656073280225725373624637505860631362860675879572956711699877016948274057134238868760247707959515679635631552868051793565981871949886171387590645886219519971740445552039031651413342836760650551116735018002842686971120949679975378558771922646077862989869493441905493836858169561385897874496845942014960473638367825003139230615030436682033372067098201476464728274307318637506539097695737701530435310183089284981137516511333648888063244425431833956163515764221741787151512981127882897345731078610566567787235795275396023343678066646594213992113610519971228006027838974629350262062150981008746615750660396323146111955897294334818178797968253521098024241792413583956863526633947150955689407652939423034377502503747497497431841783174468439293334092898153594670535017674289208329660203884031568230410755634250939001464174977074542231101813666523139340134223496713572214908984696810805986031092156918406993651194246988170709589665420719876327012513019846241457998322365851561542562908415729394249440502439567653327701258319663052955697384175587089038372318303428910680389688916981120432352502490917351595995430083496291916302698477438943942790078465167730392002259245884436045621420686561218994021981893636297611247425494440231502834592103446982956346032391375074749584712130149575142128135877160961081907041974447570640911685168189113604905015011907996413453773007113673526960033802920088221850916038004572821980168874123467698348733722093423365327487822465096718265654072978844353334778507577633004751071584467421640614819768113665530180882052390331496119655061870557578016313840138684202467371390896502772656130108053366867933250399326555028382421808968262537512066728201558034472558715861806169834359369811972884835104418766646564936872365255724904408776795132597760540093320381718179459887212470340313181110664579110776282805553223944075255137737905499629641529926974466560203358262151815147616353564586493161503826168100971588144638527882601445906190084550833911339404775346475407358575630408901116081320710260427034974937989049517795856227078946527756915925885099352778945591782439070199561679665730929521907191775151257698562581603160113265874987896867842962844133018877378571170359355933916878181055548374812037102526125603665971534473591350766737417372565207084908775821458772808951621539098870474236091515929274320288318641731298315316005606022891700050825930257921341613186222350091693668684115639571788450167663305661934076710118834420401330499169858477358875954114752063235592659401098168120223313600318001281497452011595034111388500012311823139218237367126083038755862336186411275932644570099545641339962484129459377087573047620596595706533452622617322324040986125046094545809776523775028405642154783134007718847924596675059256240624883157364409979244819063305006830259564061623082232640676447024234136809605395695362373132048597950191563884022708232724930516779521153484338714796873100329657131026378933176137469764682962365225742933222623293711983167639096347788162164385347964966966536961747681171263995724096059635679274082490558677076166606500472636985994453576762135474435479844458082530992291053107112275361232203697006227618995820614462638575803811900239837883645374073282155217789228853789518554353841760731995777669750883458276921065450376274069530209216248412885683740277943402986942048336510673161381916420030525721397007338564794568718865228236620942045174971391582693907694829719737270041387862657359759560659631682357098345173352582442593823511510937704378243620767457317945418451579547596304845137900172636739092682085002192357260092174731054545652753548384542426938173266723908862121825687427941707282393892425267885928226892479389009382134519798071587816671706466604467189224202014350248203306098338105275824787974554284141227982976000952773598366131325512085713179595426284087596346877695180717319123070330903198302148526019001613799037823300383999328623047777154024542239222011729915273418268037218463865284669988848173639736670223760280200840133005568674252346154485503625048213138487673712154472959628181413759118655171449966942258444306572854838452393820847949288802269309130339774603787682951059102213721739625944831317380884706612417509093349024145358120847561908735496941866810389741751974932928988843156045657773926623464409945919701264987621025074423414727594669606579081852079105249052873057612170693790643459573265462552910285015160562546442045519652281275124286840363247215770900470792011897313790179551271599234423078366450794750666953198540245031154177389741072438443215306928837992242983362522872678924441186033942577817177794893086663280049574605481296104983263264516770318584088109078478717325930482775255440658241280709786783366866718969249550717464734611995028467496404384020681404879203977378045280104446372279054385168851795287626870553777473158180310968826417060047592760585281225228728330683268720821750795330231468555812329286762790253983833334995118681626896258002767758873475758341889712547924443070087528648795178593050906770593654618471665032662203690583996681396139484395542567620884666525818797053733217313785726571748626087295077711104656724362544262547681385359637469431031477836004812078087791808556978310044667572539671009995701105992848417017496489384187705458965697539773741733606499625749543338080674455049017967030744889711225071533275967994253925609278889753806665580216282122093161994360249429839790135031825539231541476962222906270051642475543676617223687959308266824648630251777884515892606349859991653381200757355721825000121417604041464468617214935070721015427557320316875303333442534481306099834162961836909295851090916627939662535848957105433741555243057474988043399291046591363655893290642822791438734349564611498647467483973775596105269631405921931746557858387757310796000268586314801937555446505432265643467909556664181603230637289827395105018581813345193631560873386344512804199689108810939137889239311897983528635666339343773467687456422514229625076821538717641367671237301738445388967518873142684802291536586587593245262114009449696519522400197696319838078338985363066081186906998737967039246342579471696838565800339622431627686266945090319494390661269465214716505136638904360211086888970200163869555676040376393937494722044491082628304712487388243927447990928530482365905770125895606316519385496118254086197448506591279482708217313251083502873446980868969579381922046759382175347284113236361284156389447052323243940891863901795467542402520718450086731253067241475255189712255547089929499537605286919267269211471092433981607550137320852244370816784643281686934472263612558706006607130082315528852343945166335281982790561726291514858428272313886023923890709242782328148420587114217621165885870158525208209908014104271859379017722841151963740051858497216064782968263301469635488142881062708306533735876498617743046809951302413925585366479055075879934467198770638964298276879327679791114374916177827773320753340100056229144210642942666863481940720652464748765145859966758901506934428446779708983493325572085250951025868016056705185531175903064242014730966810601122789621707816749428136065943550206878982692407049687457859329353615262178257143385827538751287088143159837329655320593872314528931224007190716319787454363477974162025919695927840041843253706581984983018658743193637777815887774262181220028988736208328742901039353607086939641147247703159564553017940222374654401145438505107458283768644050499633086605621390496507765322652997535088630209908033863289053877819313529548972163493514093699879211237048839871272501024503547507601870722329641587763614874706705306787626023921437829826139683884215857728136887101327092152471351616654770751761194137582216103046502446874278755213031438204712432632487230167514743480567475272193855373847780293253022044181025010122790704562489505749571883097725632340700783453011956137508816839791959857832769361224225788398736341747634104344721054977477735927299295343088059842612177834578415547752551010519800468013192412712365959490765066839602429314193216189937423460522303895884578766553151359253917059450923981460294144670716847734230861190260797266865301690180190321708513394491572785234556474756160964354087044319003528768966381103705021159687208311675034387313655675041927683362513586416618831567023902124723821835209276133945544099237890268233941538892368790553694200868837354650333832910230480156146525400360685672809945676547903970218276226316672895377082019102400787551829939630919893923518191322134379896721061584234264320920660595799408698189562891397969758661258608306516990188841483379060349147178866311405707339386796577505715784769257953434051725575518150388568538287984834647500389866959030825754899472680815670084103651280714669195595638686075254727977593235563754867653598086610661698961977753870837724475704765270208890896323918923409698930162524250026816551851131367890167069881064136016093841408070503322129300840045162969650664854494711792680023374230472843228597057831928068976257067889419453694505023342974434641236765544310666827215094025426880406052468311315326080148219081584853807416061803338606858682969871193845397336951111076114956569751411503668301213546045054890865761298387646533031300019365147840532518671543184761285121044890560384041134627942265378790674243540668569730279633604739317155108171016587009900245620489490602222751885501686622100146773551591981051753605062712627260419025138320645036348241407186727550322218170601241906636488581997638270731912558483205288155543565382396528567645863630164506993135532522054511116151418746499263938277228101748752669947198757387860412442915588487778970660766082191005971395145205760093117196298885586955786672446336376464716098258313045206152803532603478488908756033556836573799962590345368899454686514433429864563017379463827324762173413986214387836530111483030369734408914473890799796410860763263401019635693548771671608321721559741885175421906852848049958316286547697920445249781134321425809366446960113115800200629179209423839941228379872949640288776232099065299333731630522721830782117376058161552241349949286796213950036655024160192613131571355112327320665899609204335466300823051100532187682923659580194867951584860877713261969180490921737510376608780340817123947338258914718912201067498852767172784261433711744979276415831533094691827391392322679138244344214978147138708342391769086440491937208086124885041575790912475730531099408467833017788246886091555327803966971977098603116816040576210727211154991985580667330320599211393724454306170115690431455772492933026503329094060397732483448770066452891798452888209876860319549060671999620002849641345811156507439864857111364440005400166661482095234376389742877271440365977115432167742064646470177696570749819952483173562359012203103621865514802666112130896902542874447860661404591511753703095144498133772950036429262836151747716191418323840989979121699960855654319893474179084833771792004924022027409823787689944099836825010808621173443563943983245278207613856258096615353518572570800663066520833202651272479562989078768481927973524288646158053170836466236281123068702624429163198410108647909085013343679938617577165761368206490782791896204465135419768251897144970876847706113283575621459736295979299590673202372725052788150118879671557354230325800580255817517121444435928774930135283257450850317504609367663134334289464880519078760756837855954964731186921983132390475200327777752391369357891370186384553256286280850566805071252608942542428845096955378474994604967167629115917370129322149938749452439511165627759646033062237504511200873090453851923028923361180695356365219491550031629787264466104422082647333505174411722534252472810636266602057892117175304855437057255226387082558197045906654698044391398407501835361746588173065425608612854730136718390190082687674080564203253958374962275531286984050250260767484383495463135557069344196704841394506682575643906949942211102415189220005764278148345408368432860447963693814684210698633914373253526401913797404626090294247728508140405478382492231680445744890442386040432775739830477563362326690318502659114628384415307351096930642530636496210337201429372184350298975554778178806743479509010356870116255577183425366132876817573611171974627728975898538552403109585353643903146678227815112102887706889077587976475820427350452881998399432962692761917905137050510076582295198611724947642665335185569593986332326552704516757097414290908407717447332979474974665777234001227032529258280141248329947425724122465188043047631531292713026199705537612273309857312773104372693298745288030762015745387383186495071203371937436429456394387236379614429341201792368754300044498035428679266087297363344574601339189781598895033947823522601051615662640564898528553113680947293383406135582528729559901858259520910087359270215212001828165533404577749603863782321574656421105217314737214399468959696936627637052416124493016707693921140533741160242770169487499908856427567288386495805332156247419428373747923262477570933296135832107554137880742817608903491918442697813780430295254106503998622406601976067755294781412609911247540472017898791517936174279481203494439743278090190923436173153205751762829338867988881587414582319736236957018165963479274161010246358206226440921741269697043314571444660818179549619774987499921297788869775809340592297533479236585481814990270074585170562085354866104821751410100981916429288128508550762425951046383724409725173340853596185105324870221640443488875025487401929417364409023207378728906211231909818777376784583983162347112461548663097068429427082747139834853491525677111824544569558670944300541375999896978750575887456815787568232432648052180684164895770843306800055637985888422994613294308677419154655664197113261892176532502053363885608647464943576343449263966203784901190204541435155724050680600773334399260036474383138426582362304584864507681931711708027364546156777204339257784191064729158230282411004256602065539069749180480543964578070692740209551888758761429241708595621313302650932103968668155334177549801677453074143682781141481872079577443279328219169599947070823231032567253446521376346782819186676792847454639254510758684663152132691494618405354655855704716367284633351505325386993185737318372177796966798637219737701753223922107420768688315993841887413192067744439435347429101728277532152448652012546826032717940329724917696334940306173317544192010889830038490125315447435012342850789044154960343302328882284418280750813598994600690006917107838171959569182570167738681517412629324630018228294320644649286595629034703608222825237233593281258466404484560177378008291219396195377323289806755175129936035800979514728757068453338082874822897742759974290565563834241468839280789860370092650031979219357324082794319606116988206375915058167338499857838013426641520053430292967898690135206554678602382925698945448101503164254725728434675531691135138344903755304560868526389582860122905142700000710988038778053184870232885881577105537309806269787325135561654902534383716428056904055728409422522106329981465674035066075153980010672881087756450516847927890094490665836427461898512575800294655697084778999052970056237802656278005816735681420101971501127283956066974128142304330336804819933206471603594725005056729641579169476160025215805935581997690725749479065101350889199514608718324213521552431033992890667618681539340157422387917555452566877788276983907397050916739734055267548207068235016666054130923385411254748484857105656608558331841832746604339064038650247790680964536569169292096907129455300236815390790778624714368597028141996208826401473606422952333001283864967398307960197201838552452898478608848760160946184933417111684414954190030412061750509656679631307574301811761791880342031312164960715308341566811962680894856605780319799203478674761114592792412801840935786889741965749159028803036511593844681347783084752344349864574104261796042774422947369615574586923531205724586271673424061405664496953876664718445936950147030420776584437276620949700358373809924925746831891661105981599566256721311727092872483161634098062121726936186205071573965662879232543519437146618143080570828534553422156748306548716416889322459131228090235200408237609259912613843667061581758932301019507107323828784223570538382617224939855880319081437135898467482636756118137893237575342540831423942230684225911802086120634512639306748857569081922949374143843703269393720432733683913831148234728671145084492559194858847733615497027745499049733491348667183240931128146506629858214162255750742277382403829903850684283676888600703908450256322887009047261316794013651213924555356634323147484486976867206211065917219772159742857754739077631782017679634961836465421964602309128375829566885574028967842749434175009865007994650617744418579986495013798346774191163822180775227438263294338381478797628900966139441020831181531042166574009152193162384059810185021299095366293763457825706050970630423092290936730904224418112622663688999463962606063442458810285475023776613289606872097463990174183648768779838245355950973719547812486463966661585707854241545533490348685643296778147830223575146303132314009231996843134883798910268070157983206394834534126786500366198241052740631385565549338528223376190083144103765964760203638176773787487825298620551369210297056925612192729089749420816675599290259678444538447464065093317859218339596154852071255039063852205004406284774293444007599603954857516973741698254055778743211916217949386564577179023168108490936723255573234553852600654112957175743854886845947579482474997268441954750159930458717746265929656536997598805860018757262370848511433156316061833375940631464860068223173370953082746728310663500271568444959928600122697260666436383093807386302044454399018236369479365867454188085092923690604832252624849750489363286417686315632161458136740804239906481476627540286098729783228518274053410431590275393515232265062671824129050589195786508576564316822894796079249376219498861466007496491247928373394678916480177043679557435195210511238141252735795061512323461485099997188444919950173629721343791492359577450852011688734386673722320209097329766081877381140880288178698193684741748339398192424124588436742861855613233956969200011125442864561936082090546147602855976579334617992979874622516267927472628851264104530397615426751001921393178694196440615984797792898112538232763949564274399326445821599386442778291111403864877537488138997450018772994951164086146035640771758829508078400476209773096467929729844813128149840097545163141782951440436061714231725257669464701210335341549455788632366746475885865913867672417571514779198172823907235393498668037754765744715967464261256142202086947801272125803091108506112461811956872977309985078496343126143055731528402256141740491015393922335867935014033305831111634891704600655188397189362814720520924052219103945464969189356165068241457911194314444740262004022086061068005954189219570588789592516098132645428814866613732850899334477789281425687133452712684414658106223653917607098920095069444520499001572971944291069065603664405909028559307548028853634362371706129183324453537895785987671630441198717372425190067496719871920871901435456090614788624979585438521513049256311651205388777277654969810767358321206412372103575806399535037427529714613015112758268165712964721055272306348795446410270956031692095063271258601150753316149860895087722306516069335619723795672358970078870494491786905090240398921971143635526331981942742431458115760409472801775745415220890190684648042720743864916331470252196348783369584567415341496626466403417877946420340434709099259211553497697738390866672444869323869507086183902900452189310912782713654134743275500983108259597726080487774045516359073199445738731448374475602227557123123318112532021797283247413848986695321666895192247968181324797165543146567674668072835526222660436975137501036181908450558569928540842163494956617951254267389737252232025433602867932253598603783927409942314379241257975999351348181992678254899765024013631191583570926987034693341193386124825796923538057970656484215488326977266968525470061273329185934932328361572301227600295499290019852124727146982284310481552304430996698585828620359396819240483616234271072792182312088796982849608077310266028934221245613547615201986692802599265533390205050677863413188114953783373178059683211168492949819711105585228492837755017078765703834068885882178199935024124446094303013317354748153181663894248440354930374527131078014663233171604686706572794407639246511762842216938647778539212961382036171180101537618351788297649370033277014719294707268244597772373477891813119608044672139264891926366463442469380900805317192867911342326777511396834532387330407934302495011194870289860102268619513284720517038806206096719214420003897322154747680253871875176236525347057470094575658020674516486673597802260451976521497284646761955556841254784130765159574393287571480041630046399344827254245845087566885202783769581331999552221814913567612932066426238759629214279725279425634386168723532088700182125660227071124626261099337732482180741887614786830302844575286970846522529944289444968384906415955064677303014005156540934921672313703845729539452727411352980178349726632289515728839951849962199647801689749014758464524161536186188880213237267106806874284880161720164605223828524180040217312835447532404274637829873350844603891685486783439185289866301048725333818626101007265430209140823138703952766441419544870112157551209282550877562285175150818430566876565873127064724409524355350106186645494783100263899898748874396001154613952609145808887304993571531372884773243666193852158871291970848607505349647023003967257217567351991905160898086563531237078484534349003299947868565753560426404974779340879605566841313127814051206494868831128498444473086472637617503990294563462222675986369351355660667420915223702364915259684630155744738410867591315279235624593369067374381919572802794950695331042399748688248937214316919455213476744407982203205818332417820793065609729028841335563712111808434749687180383540831428126748424574206039363932079691440306108738187436631155706733352031539533427483275901389297631388715174599588249113349661903133276033145666961011740493446876494675629085334909756211365948776836350960750574632531517587359105516164364139148529191607353548895409781600595586194142914776334296628335670999549725510867434645073506725715373293137421477718779392788534126996405546074902344296305687313514897974001286509421672484923423029283732199110412713775816639989437515725608848834240639682863240087081240321774277843275379018128053545004210484301073843482266367282318490795434511742552890495231270412895801043981907561103756623631107868976312424025070226990499042214988894293691663030734179416130834390261924476924237214970029130451658666606250734908775346184736271445736070680579603070445023567741091392669509233418673338833888814022117152398245344818470376890771531911858541213517183440918961116805220298051156339617105556274536923417321788522060551841584654583420383823214510779362009985115396270538458301673811359660983547391555135324008412934497889837957429931416686575073035720389575235108038588274271147934392125256754845692939464193382027279768722280680712586997433033963476176966104802267884919822919403666774932651199125620086866925100701656685756700768402959958283353252495124062712024846804314117510687674113608068256391394268376737112234206365121100815638622083738922293959643485931584309953226806245379420501639570877356564596963199748485371669236079403257849793905803186547485255884369470125664213968086402578060302863121507975613478636025192358596425721965301391214101897013439545966266222071338574740126211860199194964188414395572649878627450294465910069781602219957999963346701863914682789148478782272818117838144807019985308189547526230818312023346238941845568171708760576844275821161231873734007583793642273192484819091589285476963523638765679944342468965882800245748530943206063093436359998224910945052110956825680802817830002702580390368761466171894482538334384137193528470062982799285901020544474789504437148730746168572095715147041611040549347766181771026435133313191790163968665449999604982134267927548595142207614036971083136214705698313988699585727797682408981460434529258001574181467684910814657170021532101131234758042887116973691483345540719470965290528085261202270481810134302169818678078487134911667306881115628592954794304496681887868285006681215509914129129276926569102982547183127608330452491176814501578387613003636811204898176891004668112144485484040295543655613685900542124697512642682928229370789944623647967096305456307258330337311780849278990892055088223911495551340785588442200094401797878548200822424373981443993119906479912833463180139921961636479623102300137977515849543624542739208860305246412386064252353248932071763795760419306322498955673060665670861089141302433629747284414427533899401788224746000075949992009638494757259408052830734033568639328807177086438731193371177586049919953297839116066372736222897775181996718134680495806727109466164388706008447618077626487736753844580920450438566573393044812550700539815682375065327166995463153631397828954728064896646816709099928706673468134569553969010447189295817825687097308462940384678350450234420998081950279860777153016253113711471128278008277237681061449544265673594728431653919921115561621828694154002602953859357082034370866583045301025622116631356196285674050765892596707228432313914034665781547399136092452831536299713890803589148059855723978580419124713933780328188306849789286027979569491675397994246932514530502052799480197332669700565233343533427670511427383040242015912127789572330752558721694187183680609590498554274812673356189335699573522318894332930265809818850476284290296850233190219637777120169265380373434487301371848100033912293683485998907537674611973120502678176430758034296593626327174233810813034613200135264835159905353992061984375383107073672858702430232392127697429851424073388231429672834640572003130697299243601518926559019584147814047537466185329884635963883954089433836396195462439862413462034557940785491143922030138239420223437341100783328568856598717068275766222957401848459730027718056678664530829012591045624617773173786103615845636535642795174595168586500813018238862342942570701936673760911011565055046712515882557342460059463225327439405619205350685503315897086125850679630868522609739833339704152357874989544085044250658173594871304927833497688261612665386426848637718402002878925473628940634233559522691605826079371591748749331616343157120320646085502427131234065247544383678054141794068693354233452179819472506041719509043188429804542666684368990244300729811292746826645455667136802471071943617469511291677443939142643918881374276528748124355653733032689490274578490651562176665123911127114917255707275963480188436352656024661291364459459124729763065363065797376271816079901556551541462333216631085772284243773606925418712139727095857586986767649404027678558152334818987838333356099417937470820383234761816084818963627648652501419270532869835870574899252954103178889489151337229333303668175040460766265868233467901221097998598411795835578052159034906671655417403863069945614958277381130973894679242383307246692897246566731156306485575090945071768476719449893085761907365650962507625182665853612736084258864151474326813891406171603394425946984126695107165229906264252634763634991410056286864634821707238916369452688814185678711167754072768908499900199944080341854565320347109950837733960906631128498403688764968487982093320954930138830501479707777997350363761788352656438454114642534222200815593024807596419406715254670961285558104971933804640222344890404951870702695486182113520190143256827755463986005875559426975133830493675700634310894147228256202705984223832821574304415505389884482324105420106816862319705897627120145121964151894668010896269671391576622234050258842639680770505703410630527813825062996380437804412435600138470999008747014824303890307495516309693632486370127389000966546470200799440764489915687062826296610200375086469040939028875329965886690767318334119873722731966293770717312029708452950197850513465337357052704171180445389595963279422978772195889524276202821748498396905075502555955832052044833645233305022072268730565552561608106278045186548667997747247412209906174719737903977582191931701079623547980767656643829052770636290598565977268031010149504528319435503172679789957509234312729317998406209088753494622650091626434128106372713878323716237755572265763976800844521996052427055544352284337660559739529413038580179186537172033615042192999125805953232775120954775628975195071749692152769009561131166790136459033209919173229609215275701934579100036702610192656774829751374201744025744226255137832425567349397158800437573977421305824685692526406646107939546157140228937297250983608926640921415438110834711177053489988495552654332326018863209696780623242631660897787914145502030038768568498159555359414876732627617274163715399109353215540101801967652341115735473591317081982825085473849048982601432262155354055789357451978520345722117680615392527652027752331059943429922151122708350597232064884196657582828576496940529097698997810506946268790446320985750041186426993907882347976341354748018020381523767324809920919902871056862640288677286083540806897827304608653277761943104162293467696776758685111553452912413276950758484549733239063686025743540235901839954037565807734969989963642954546490783797798216691180532491176841595013125345159877556815804376690885499027044216943383333860668359898151980588966380450352515046955326603592218292645021358089043880904664685174599102899542908608094564496127540726004902391655012288817060972440660172910916319647619591100592558960139423884597418713777309594510655854894266194483183947733365427908725771316950780877131631085497304715868738744261614947299404372748109418383000394521138748983657374553555491384989043811405167590681730667216095134080173532428897924004839432963047433188573833906393524428248808272551645644525207106496915873340562633083320151488617612293738198159293100063666553280262442681428670677433650382384380898809730016659089970130077541499155447354326192504910677470398461283979249054233269833863994914064969199996494455103357357932973142750271727251115652582846679287893943620837435969635856635548121744631059744123659127402355045693757814884136050987288528088891370020809416262200215364638312374283469448033712172006868678813542372582360192541779650293664722820749947553441713657189319004047377820680479062395736244864471734453039522201808405072666803013667157721133729437012097709176637058426575460597639225059034514538907432018195242284481817139834835980873761729957245007010993815577943391257627689837054037005533589252276271717402322244788824181360622899850114280966248262953581342005231168095613696058146209003624067219839031242665583753431885338247340341062318328778341926484995894995441598725097713920500548378198018795698014040947085362473058714016550162124751590852502401823231188085374572299955988906878423975718753894358105991929847686532185837224699436400392701526171629395055195144925718248187879445175963342278791191657319059488154321852494986377987765017053203565752055033085112533737870756093352246966524903043740332545756739631051189225670447652371729234587384813763009404510570608695221281373221261015400986922901628055210790446262166730088951108866595734169052358999435986082384089654509232638139474014354254330046920649914174639682020594753129395830256673210029410438000951102349206355560740344657357140265185248818070398581078618402058439846839490104533261163689489573428720103311508988211794328127447802385353996574555844165694815259213703209364181476603111875264949209835480893266434639174684003661576262223861271352617565455424913689546351512614663900700587923704339550721374706625394613692287150596847149277052574561626205141253106208387307326801492625305424898179910343206639307797862326938505404958930580613929151841306156273196829099249884883133225326150174152881667316597202070492436863560455543675102209988770656008463846526235612592287742789021343136760745098352676213035227562629775948507663723103570051635249713784885616205908912658884261310989260931924560810520149762488682692422027079875270108952790506720865518968919030452939832026105037725046082279482195949003992493033116675868188888605449728712419240055725395512502342215549376629416079519083111366297841959949480310398513941420851745929374681338333676402246829511539346694293863321577017575749759785875568317755953501093594592052911953631322188668305245818904116534099100134469199240800945734797754756509925020907410241583010512029782885284444902403392143951869192009924150051640886632017063779465313278227536887269532865339372664846452106276266144131534714626805173338245545250376761086928699767810120193409278002198258329915047115957834254409895752668726359039209943395235702148740982760719592328611116561824683725969459106267474667593740635137444161663858525646364160919356797901950574092444032877012858692389808306629556049227110830895571236138417222477339309672469972162071205506884735745013075306939063255997173862943359023054124173552023631713651150082013594746170606381551980086649035051263053917588210910866975031393358493157518397969848463175125523682215448719865302952915835205029699847136056847060280611371030893804517492209022772474780556405617254018356167128327947624043860310773321289146730009130581278650496502436504450056881079124982899635207598914558192335618457032040815886179506580469802710271701030198426051314094906975008564713895042070695690260110226791741336742615426473058714352024004190377296349632566634540526893939654964279210810920252543652396900108716269669892712829931508194781045782700508100636638453202165259993431830048493960457397552637543626086645394007866756036439238147183373517121543682629509947184703934617407064311257981914030527064887091263982771683234942982597158288499968720281577001985165328276346970515118668363513370125355940589274709265158271712511652595335686043332712058380765442083817677664444025141961024788219051367772876839369693059954276263330824693636056113964541298426349052937363607068473621639811451254829232314106924664028834732732503177808370712075596971658771645541622709344561181872914628569917096133085305654213707765086706254069883635381896639144485873345205242580958726821717783582347807672614823847765140515714958539040496204104344674670908299269207589169232249528946054879380750215487107108261414362631386617701324214029549389630238072303615183292694604772739561378968049852693684583214295397584416826400306028443021840663567861876964315701057309689197204635512247059092956362602375284734776761871692878756639779251155321529536473383151663092712100102715761654217710328163380987815156964457791883863936338829622436196367350708572674849625968223979468709058309550121455629634425205061316991616575255585143904265876400635441621898365019669376591756526990985881949993072425582993890936256432320026164129505593189645366135914978904955139530292879399034841434454680395557783777489001014419753974346955108107502853947727550507642442953752785257190448349421791277189054857890060367193594448001979651907820922443625152002593762424039181495926253253199156679190550613241367983407942875450614588603482568279611487479139649421739735083260459180184898170505133632565939752214371808453162154001249350833944603800106126168418661511583562789406613196063356235620318099380775849157466512348439711984501063066511441441192169160353828560446089583296601525836525284275897750753369447512968769947052900454730850560889250466227880609326426564357334267480313652167069037966669705620091077814402498707453724443237993806303436904446153776731550902365234560222521792838758744763390991899876133866654238683658613213526286604087293681641387108407868765544245565346840628290347611310802849311779813065336554974119641130453471815120377140704451013936941619894724973396529477313079177126779481298561420787518745302933480040932772831673981456272736747140870551481625936029449922339573936548738711730130239314955899344912853160276078066685674950126121150828081519860306206936684986400723983885048776032401633449495174534318671568394995980699737157556952292462585664935047033679540040717348632655084643147606114922779340241194079101206656538156062922584923416754483414850459139934617506546015521977701967143705840167516315957473224218437148110482944972496502992020559953532384843093779885202370473190116623185081637192818315886341676179554612633038067435581851053942344371690103558642779366548967484118946238137328460135936664993619705447382626067013632455088797540900514357847263176762562382243770711551783321747361215429478848396064248293053086687853058097847066143840687724305520915331830427635854539754689435870398497094420853100520340390085305592347538292283478247200566978624744834263913911680875187033765614923176540774738889232923526447343033963942465232340435844359068685210250218311467663170242625644492699741104999136542810263930737488467672490619453519315002483884069196119948324377911597701439532074226786456778282879479865165910158009609786613058820982436689224306743776490244374089855167625178423950497464814449979667753201889283263258003126465655400408114041892962767650262363683046800961215076367174988161563540032822460241985300822869592442179151439545078946747170416941307566335676121740313720564324430737885138004585241259268413585201309161760881931186038312419624320999173891236453083323296731501947896072601933602845205217953922006370826513074787171110604358417481754244913633452074305674405439659589920359507369892811509917737924815952187010146503109272139271839790464817508443150780939397676095772361810670260683123636736512764170756023909493702475181404671250550550951349053394599402960205611355097477451978960416412047271760401761998179745429858409453533074956577034625678534002679084142920967220556917243483750973523407003709217104050407875603464618777446040996104696518252684381862603614528699744968431375595747781330018099972092627861637962222606070366587730712158403784076961105008834006503415871775789107107961838596097367926780918860112826814166204351883220075131366231411835623424614617337195986760612797553826461618916014540073491926799042753493656139868618205128714603355645263641052011070456787513786304765625030154795820842440791712849578392145866653685528659868485919759299554552214611426169075351383316544814252914345524602996161691339536126550794656643816250418909250240845642736647489944770056654001111061181335125293843031736360288417149544879034917908864153525040955612730905350255445020772931638816698063839833883284918181022859792703116044643055999812743825088567730976206895569338853034224161955548703940382173795497103281129296017504802884950946655419765593735949000867965716805799091020193341499328332024735402814441727575698611376229516002813585861963717327186635702038698933299412523752509115989623810116776805710362428125594975491984210457944952039341650258627531465525101099088631458021606139675374659217348786733470465305334749605291588718351466981264845836577785798078711006751133325776533463754128236542231187996820242980335221812036238904170071386587166283798693973853977233193053579194978606631218976291411453709836399470468319505940728121862920370438305303854621526111957911245373579389238227849294950707972363411013945279230498759000535048086916489731045197660430413449151171169821002811733688515468039136145099329326623733637150212382312568574014500789943724850595989960591786283304090975038227165084049815080529911042810628692449261119962590629683151044894326657758744522825683691075864950374370329479071921037511691476252782787280707455701275044497144804591124848395833618868996582964457560961976037005305930145682075906326208814677475766765595573896696864260065120544206721911463309650652110325621720881971708050835230319064748012704723212032243677494069206989388886500022941818982630156063281299410039017498318120180185869288222316104013338701088739654965193727985775296773017182626665259045439887011830722993958981150341869495206395025999904639416414444323665502562175600285381260068212917351769632297040774227379633911472722868391395302111953134898429765362846842583913075508042357056802364739212074032330353624255406403939460491202305573493417846621685091575002657683820597798307240032931480931947096588114354293750587825671364106271687799740799584064474661163533903711715802921036639321828474606910911538729030308153607326188580302107001695029426168083063149260672521774458707611281477938228300266204261700714936454474591135144554040119698930265816769801935444232011001744520977864502508523584363595848119760173217260799558025079769077756203558412724078300509132035761575084904493642017357412545810338324844776979369779938773077089923711575857739054526957192844946008468128221751348168633508840931186786669175740962410035463735387615846519019285513130607236436084759103279569547302540757042802369388392319352025007761188140458504570967917436878848513364534405022824661516804110342758175562282395287460615395695916821403119259708370512828747351066472769193294386268925551465882284090682368090705366709692793821153597386119017740691018039827807549069167294575556702517273484582442421354818546868712615303506553455633785454991435232180152360775549626134158272891960145999065516010318690319804583429707583122249744198101033312171923988691651051389768446608222718860379564013522023588002540029299858655801547556122127620871168931776233460173046210963907626955138471788586406273884897204399667708008056840671581964898164730036051552573714346621973849478599753830665301260300629083428447638763077596878892198475287975335135707017197072211841444826931017102279641553133682809491912851100147758104198247440413299018780191407241593457756252225437689430677644186416551736722750363330860406814299921101684345067341779070031789071424716371100181911601831443965524674041955511569420860091859248526916112167345132881454084829940114503507072108530520010862276179789371213655456701986909174691295796478105673684099094958910389770686662181256612584631743633747005051594296167873848239779891415267400705368566533866582389607831468356682733121348416519998199613794337461424039334522448541409168622386173565498332036326706691846122972065905901049925470114207598440255277801914225906224720396171488481212955968156676560801773954718509341429876499314831607049255002120067198514737714679054279237575898748705120726024353167642990895453710756052857633924113601602418615944886978271430523063708904941328276910707573910674641276430737986713318271641568248553178573477574093066338856453911961303718434655687340340686652620307720676930662829607698329514257093780238469247467382697335684108618870085161170831157876676884867258775933952909591092832908587872741468388788340398906439116469112729498410500375013457568821980901493415574975573091221509834902180959700122554893145006443282218837599776872945235089747979045949159997573139254295164983524364743318858474006270498528095903071971183233614987321078617995606862791243099572515065418889717758753241164456806511537350699965234250689238717503238363928547219286735373198069578946128344914955616870708376039357892530766893432404819489218730310071744938364299282127967439707257255853596482277422462570607920941884018881371308194312398946262292818313489184517994517180899749465855972071797125169275403060971309025506170790451775546683478861576423929569475048032871197151513833034856545542027128899728022779790344484864476906873028385665561991786533006651015235357014732486917752087180840746961880930175280565178779217249596815059986760222995246933494091055732397618437589937065553821362303120866415602087442628376801275948776704642241421086377224518655458628115301531938834663003863368993724824166948467740844125822587149041296405486002428749031998089060473107479727675127131822412702443213988732282508343217418604567102624032579121779187756687280612432465125438267375793968218242161622395011266207023955098537401820669302823692876080140126561570483341870748758285067014507374524136763335535608491562107842076690661132047817395700261486854618423624906201431108462761638270381072426646122281574051858102622883883404149606970021230586358488702199884934101639856803387346570976670726558150903739012881001453652777000621950500129873791419601081423860949966196554711537330546197004364385747376692304916548261282655093552596977739909477026732435594064119581956101971004129430682814682824899491001444920506967401300116093921915189445471822309353240667816185147693072222006949439295154865646774601750687784868710901680666744869247288615218517562990932399873401894212384202101137709584647958037979741028727039675044450425552615685233180766089959315647659208393689460983051812927674000860128811732690709165013469296060478836881722789459186240510807669291617238954855544015630189583888523395477415970281626465242185715831881185741592263208230428042278190856239656691433718958968791482388448453296039790452135328969767646528776638766958966285569552372515787730964261120949394212276035035719289630099257979476368251881085021808686249408219914691530860200565808235976352551922519041757323925777727830536093145270238001086012763178375629265336704692751220971424756487897813110235097290200242722132271802131798992343880606853754726518895041168681568414166703247946744232802766972966306120815175783464401546800243482108284369923674624385656377800072778920389356301641974292625811032360893592184726573904735471083995944276116486997273619634871558998079241432937052225320124805573434080185457366573419816667878613568143898086419140176913589562574695280849044956901898938139162610168033487291312151493861432856560408829021835230323810867289696488060284642302024735101497907249010629859411260233202585797983419707133229938040983572359476122821842673803069302091425910100681632951686810684374480466077668587743292633244091517831867306778428049222499345229032032843284939413789867491258529828515213328114131391314029835257617230707149673158562875160140430895583653038605277540757348230111748471186157994034695216155119289429914058199641682393507030069202662316806162188140632517761866345016031075800117794520522759068313974529318429671356401180868492555981050290562099716982279921228795748517844327959876944122344507864008095107280936863543371889730447625463627204885836171232877931192416819544970431622891904894755420105646265402907198903013955217660038704611253169070382326970694872405503367299560515333183908094541178724606090344030322115737481733581967734740743176110404802587445339769668426536882336691366807275862605662564414283312151274738166309175334625680058615351607414082548480977189097161712940526337827964446232129396846028276802664290183851802944303523127355539652256772081483593054054777094798567780388730861772131511544943303866249385029382404010451776439513925371938713890738812302596382187668598717505553952688717782135936071696102771210281118720726929046864715761785437420072546378457861764271914852323212666385388940063896606634700225640897391268839127442496743860115649668946394401119734054813179501859556929439587180930367179485045749215446671483981578434516483025702879367381784773879634639598904524115872750404660773371981679079858377385289408634546106798403761958534318728375518253915932971036269190081524350516635764007843401578467904867172917101469038261203752528813487632010696156209446116953027087134878864075525857583505448935799711490460780178440795584593928086054464324617177235019157556295002018311812779899765002726605417156265286313785412558461597093340645469154176316351137630048890377621968522357687589316197789554011003130261330216887259883322073823623731838552039177060408203300625714815427946994987691616650795523132202344254212917944777567849283669366682335429818480524101818181808025479456673301459995490475032514788844782307036102724782338301913819165468985545289128466483217095110804832895292001047958878887542224939209957017176104629244881675718907531035990141992085162723304913675573983655920473923319679615236683809654508942269917322727347867165086459926859939965920867325830153276224935280945688302715821035209097952105547387272228264621389169614103308817857947250763641866598417338100835881620869791374583321456063389106133769541881651495263115241031550970770791103697794762184781528154259923073400069569063197975778688952919621945788864129829398006546483850130723046553766959529351218040658155525412339419107013140011635907709488124934459327508119779702272316815061000653824029382845278824429336939240751321544829520731118379808009268215615090221520419875241835468798597103651631293863207998036025141197506432927310429515075146730719351088215388243012258754220464103296383327489323192705758824655578830406815602415514174576211077814175857052487993299523608488645330453525518029474888143952327210621762804171515801776266395835970738025204489760294037521114099584793040699539957100880283501908358305442201112528646097077739725013432754652069925443805506228466203939238676293540978755008050774365302294754814589798780614886620223218515406253336930180743935722485939599757814051647849481343048570428781316606168431756949437860153935025976461732385133240317683959317189251639174712864301583588739303521715750837120373202074609694531526661700440104885823208261865228860310966181593857083780017931673656352100288377253548516318353466746219478591052929256251420853449496588245460753435708172769812012931044168588673618274534985363658746228959474322400098424916013535811139143487854152874656379435379643557788605229841329545451448592924865264046562620431219366788018601101628984119178880039313174063664668911669014760014705352641170616015538454148665217549610410229801265427012857720208618107084052572901198440864455817280097671747190062581517771337959985543189768951357222963732846705387864320266032841952283175427327243997693348140125266877173167971857974181657612220464085627509468263009277009380347943978519748436699268285341983315761842734670114443707161592739037494108837331092178173450776036582256077989202824552296527671358754355369828818744399604759450915208148186845633098250324469448189346721860276603844133534471977298073242798893350205943340873462794258555219891127503647741604209667775367654490448847755709002963673929652721052081420185423380690607866029080375884861481772339879435161269693989790001821331924765725920740468342315450577309925736067265634278261910597988562244773603231481938962910232139789880279239403621387697460703679450989110549211295307286552515900690008402760244276724648368078911278151322364725190179848910120881330811782942719400511149132956422460736797971968383392912152856873009868533686245422434864055688174622811939929312120595459714537025681169870447931830197954392059651528888824419730986627126758656857430396764446639122311399932065627424707759557928043204190694403625609161980449038509306215699945141923415499992422613927325007533866753338669140204620291668250264389804872996584107689459566713981081130914024906328366897929105904741389384568441816094768031585068174531901708259787402051951701983667533502486668326034515611236421486904336349487373252836916120999608578589526588608895205302718482257377651128315523496969471989937821169268519539178336462483709489598348655919780413212024978065777440888191721494337512402486751334272582698034719580961765598556808451121041676451903857889656429728264499268095190330103087861425111458009975608474730043387849023206366282002503974377103465188397343647026960130591174607041354431971415185871548637068904812889540767802809916966546418430613421134332843738564251842302739473695200375570866660622193772020933032674284701421880845003495383069826110779569220348409357816789057422611672549303226432153483862084203566084001819295118297220650443638188578605991603773150917912894568862602657513937925693125253721635881908434147548263005986991002091301256973699332180213958311388713704473980776992850522565779785074273829694249920733407648862147721583390830062509913459343463707781552414195605139315226072851759054579592742350591159711525796227518028260732680086376574945553366615300628044647587318826597936284800596151673163545214707020328224058701611140975881578757719135812673021672249922044069725059956784233661403562377223830640196897742882569592236566038007383869224269057059902938617615177835787962065941390541708752619248594000922301725051184558731418633891591928166460544452381480518184985493836691799300967857752404409363466179975841863401518337787016445802989505004080234457309093576278171115416935294594627466585978738648686874467628519694056228307354406612123214151098098702990486346109186812399280746784270399309696491013221014528392777625808598443522328839522213807239105829802281852314467502632320712692040074699297750560353942458683233407774540928096233339271458457237809772849366051242847847527227277791565136708030515013496896547510226728791772221372980865734193585322957787014992991541002927406399190193047025594714078533977599563447768688088561061555754100725174704606626429443068233435460645582805983731721931037668003855019123949669924550439176515011694689646219447955614560050374354622571996379004754400598033545157338056487123709089547078405204184641837191701591349531704937310344169994218852784577827472979983525119788651726373742806523117144945398957219346448441370945408252327126671224918069890334746117104631815879542272292368149000477511023086884209815225635340207397560453973047931807484867250249188265016010271221876109640613118765123598048721363125081880866578409393933227798742488033918873301875502196389845445066055624462112409880917026461041101433533310147590905986982921882519451982337014145860275443393965637386962725788410770554289211782756827910451467714964896122157103681623210707456713934665044476763130840775888932833943528247888828864006161699849744736945280657015371038035179190721224575497757181273774923974486876671098214923428487990442753587265675795268108745194701832295148126722074719178895715542760668444928709521305788560916398271044618085541884484678884865717691778094057146412771627804526400288169963819724948504701186041544086738074847846008931366916190980568893512370120675435605761646110064649284772039860078683920652394454608217306794814984968112478593366377208307792898752574976337642098699352747499099400776461890030915962296006386950357326247443898148319842242733794924407802751563583375520928763729554625765046811422319690083976380068470302285913567483680953149132721374088003106725733597518984446458225519533919219250090714877720981288043949677750850410699862388318711900283054499541035840304761970525383259079786919113794023347746209644958206485057551554755701320334634006729111426376888777908294400249618447084647164083651843898288276214531476629031925145798448503141851502270953840574343407164910834721457894263219655027918885798774391782113602292772445454840269662419780772994727814311395617149523601738255109515341078312766101877433712313768914071376926973691422185824135471301623517286582915774718144934625624898420411299011454468855963188258391750103545832829056001124398242901036271097766631193668077379082074961767789327959310849740801075475463833042837685763586341727682303659437796231819122500815530962293586714353365214209422159244746590531538688799330711843549064938912565992953513583839457360510625955145374920760536364050066499959105561526465624497356776970200052470841258427895270550734590090330022436555140110212977433709666994187580997117830878342661652353126560678860834460851138395936699347157454491843899671378670309676622081742048188997416258818715659751528297471887246656280436076461251814502604388941235090313349437580893686493399236716897595967058947408492865370130173506283521079135363107048652930528153373307742855652352077709907002582212063957276409822737222803584294172512775891257882337474487867100395480448500828668519545993671899688755123482493123923964265491745792089407896375459524147869240635677178693143200857763515160390285898594063222296993816346902491788418194573597890593711154808697557974880118046570515210772776701448580051038434020385055178786002516535557004601877619556064671906773665398578046112538150624027287142667002896475269342319691554915416163932885850502070271973246646426353913468949144689021728948067289849547039147860154158722017734154754556701918385667616685008941839824279158307632714168353941449243958725579254164918760850591699127616957571066354189251018904788399513934968249063360155550228726451316621179155722777116261774474358300984141638591208073804697457373480948728066641483029477223060603171296126875284095137973781011836621602572072531715641999514117158852539740582804499486619196224892976280120620276778179142947872501174298673444592991313827065514118600330818103270022611960911819938076077222720451489762071607048561595717773200322217622309748753176219150587010565567224689186164898264495019610420310129404776555584968274748238042998688830985334714388380318050347400681727649647061180465394895851527067862482451660373364710769424745989997978396912654064648217109504832735986925903588487564118455544467116020090465663061950202708325810040078289420307924749502755119391390448110974635557504929418753172355708956080671958148702373852054790227933464391037624293168994285435581699730655917555224899427981122955822657966887355872290093702289257145457658753163340486913921070875481345334012050076153975290820140980828292736303734239272604778183761702077654142152052240163374351071585834151139197652181721936328643171192621720098775165559526501645736624857372568106454812985851130734686155841953203180088191705845710553369936477418993217042345374691149462904373424417089175056562646799368558100925697132305406738531198093659596826904890361097663954322897399453070503716869176588787162524877401770907204935937798485440871657981739156303352346509962130063272911663460141606660775519722739551267283686695243839687671283594403188470591825234971431599883727986974803169088406294892301175151992737378128872466343581012164905805219404781768460727257920258819695274257269929414463979611689587145822589711424935840315344258485307424821872748734163607550635696282492285312268901854542826365336413333643794479847379397173181639941586900448643414427631840630230485793742243863575642002352377416289800350449929788400542125122135379988568361401496540145063238993278904160711358803498110421656197308941781248031599692498152845269380914087368462040954027213591892939573995516830030380710937613780200217945001740606745136930257552498667618518636609400228701469289013836194069399386777754321012107064768371201341498907934611194113388185182520157293430853623534677306432806051839215222872087500993080551556428798460925295398977278531292341838713528475363772050115505696795042281665084325394709812330099354039950603490928725073974497708407292933234565477207897612096850327927904650500525643325128290964256815549998966467596143524428386517002923771174243545407311556675887483299518633833888179632146558356052987639693037581572632835471313633734086813700398424576831030400421227428105088365883276003408882832141690981032475568877440623852104379830056667497012071708335677788338329123646952648804446629599121362802733154516198344966920942626011127640090193933612898310904669973462384222831518501959170777563887887389071585221689799786464174988069218577171344649727598945969876153735777251168093021278078573542821622080240787889047065357437721642836696670302154398648808250921907844862590957978757614903079375596891592489648415080711593145040105802953641716583371040609054225982947791723146012711887042255589326195089554285266355613157369222702718465791088695112698571376217963377997939567251811616153223490553966384776285019096459547708491304818149034473375802242584833076140155222810964088763658530467337712409576757368991748637769581042079034599282394362969194917488311661138310285332121208885714168151167616214819903102243199353068980396703923411856067659347033029331178971178644510642067304658294334823643310563241622244133899111324034956660771679367195863963349068792995494925823696551941873139736283641861020099462368497794022749752078189396671611139874256664894388897603634418417758454156269753706261054839222308233570236203876840174392214146437080081912415874788987654382379925659555672681632262414318229815865452244522000462950551778075130670166499777030907971218558840472841721271416977731316124146858749722384314100578279951540159490758503303259396368511900335635711306368616776523460590931580574581743650118607773149083126117797713301445050383427366154159796773325573587200999131845018725873718822051605951779172161217549411877140859070001545974357565078460059942567311505768335009545023218033995799105817136793211972126350169224511571899555244734611417064875729315364527264796135928693230212018327494686446820172341090746375957090865410856998642047403270578327144163214415324014332933466407993274587521306844645895162618582913488688630052190802032092123498987164927692040474623100870968866536946826904611699816454309228180877850417470157815372753713067077809735126031751907068703195787550359972865446884367051337828966509223658219947319299163168931776140274220750099003125984430449090618459879149267264377680685139636143667882910494932280132860430702236357606666892723878103085544090755839057558236103315500603716825341794241341916449012992810223880449852621755585151424089675875593886474275696467971360325916106144197266064942349166139719457292665555734591872261859871969932109849512868308999053041975862325336483048963324853564670110472732717900475460083110842444226626762035835427282397056165509571108197808460389763577122168721087558682299266454383987690140445105697303269871294642226823526365320522294973991791849399239750151563516482561460992101628719530663487129693050000757361067852128156299199238628428933924813860817802184589422578712360154441602228250369010572396005469376845963232922251425079628676597447486204655380376425176714343589178836287360492081579026621157656918566314474133607568506387142829376008106251337713737746175308511887393124546705189315610923680216070219925656270311022283574374756565716384878896559408696693939410005759855665605991220182602373935508541907054859302522225428545122838359918559424721695080814333749270430640389295744895715379529385110247558079992328498360175801342966446298012896846133562694429391920736977676159133518102031132790312875746535022326446187791042610620417309509670000971972972941597054846327214623482439903774969273427201875265682204563462232997683198328773416342609927559326528122188943248100733477146957507319060928259859192578100363973895398605479146041020201477022060645830538586406055227375033808296789892398342518591387969551365804015682424542657156839258872918281512808768334163017042616877126315108877214866930948910299545373775971665264025002001727637817049976260535374831074094377774307694712437907330202808292092064977799830117302096324551339142080747795566441639864647026967445548951504002947845167932298283933195555340455359313189990824720501003964883834909415368918471167339759038403851060297393295486753623838026741290475714212675054481719632455599709027914879818732201389451720398495485085601775934794154623005863330547544788779699040035138104881302901747456444691715016665135317257883754560982638275106964769350402236081891284793982560810156097146807124167498002454375224461778754574575282454705572160141749782978997123315367517719548389530951206378061245653610044886159146932944297890802449374760204140515901530578414415887663157828084490235185248688391728221832312403619655243849774104693078733391179773410609748849256691910886548868530092199272179321315564307932164365093952765224645598776031112265376348635676301879072571625072018514958538864717493959615267734253372306648206803634706180117024092150377014128768144078145698450553315204470782890093473862946469634142420991554513657065499877069575205487064426828847500512279645116306175787048575505896466496843845435130772237825958136042184491281403044062980517636715771348888621993919391971151304720291729649302588210057154089020184269731855604666139529680562620927662045142559207448370025893967709778356906087820384170966404712633630788202828864950587281338984433953919879294497366637775750140612680612542342616767313545985941118296915456091627991030662111342783805847989253004335710622673850484517927415268074684713300594956399118168090063358990653278684712659299610535592052031717101331825912350153156954116266424988514143813091674943583501139112617909071009493082610547623712509044614492317889113379324470169281860608213743912641005879787333677945256778580592284903273607135095108312294955197103340479101752400954259795180216822589476120106551853730363319591895454272229963332286808457219792535555167330537908433079361055281144713860937552190702357858310753105854292085343172391000016379051173590441916516741108177017398100862310725838521584381124534473318075079128711301965068815793794484278703567441338413642524715220625015347932805434002963451125230580285332220802824928261149343441522577560847598569740583672707932130909998233210639108321232493298317349517297430517953932199319466780800070204014036230969033064113179958442713081916167813036270616368041913485571736006057833632436684027543476337062916271781879497051767928763696032915252008380532772534457203152580988173622339575187249018016883561966065575167149699576582513546037201986948197358398254890331968432447219359956418440848178978928648371591899229193361358760842054510089884918658380288159438167686476253492979569648203254591424203683343742911709204552626546459815189852785354346860842347943858598850163518772510054017649035463549554191269497728262438934523814414886869956015408232959014895147084723349813729626974621077606969489174030151589159684108954038983676601304494804271354432358440704892850169605962274563003095951195967943607348470637763671530780643620580180114527921859624056326540305747970619366337925608932340237344177795939428168644859682899219355409480925191925736864981402713196432454007858734425818631159634848143614642459142226005237054484850207142162691759150935674477192714195776630449297253378766350875623554045711578127143250673306594583610359111119616110806822840996551399951319262650945174213776612870602973336988925393846512331973541727760099166798947057682999560727414734088209534901537043720644629035194293321497596658784944981443620698599242004287906486304836233888269448306076448012136244694146767709307403097405380168782716185477727628628570387655805208282240039726743695583318306711429809000651601675784985876712981017042846352214460895437570544850041454641481382828592834339808002243759157813579301404161604580871018917072087026031275652565983632191460397605756274587522021594096570302725510628810414045100783723381753889345633277060769356240386701081532133573335239012536087024467163566104319525809578111052719554411113792883922062007780651892493898834252278775049553593375993688961002475150847198571153867576844872623989930565830570377095300719706290156878514805951177189405245637750151385046470266828753656959862367834033400603678557371054282875148182589849240982373402690235700891228121652593344892175125373367455498708957803421643701039233433883410327901447648195911178459511012873133447084295529953016826865827121108580271134687219167471224464971746407789266495771555259452238986829202315725112223896571476118302209944140113260396915313751280120991774469255118374517725211857617501182618248122608745360041622550131919560483888069566084856093231329325158777913623142186251281079588540924997936001309545168134902424165722441527502101336795147408441203979517155501356063103912795772456550843369944006621833311434139677926822915489649214872621024862215597866534194422807108384199306526364243046020935808671740975626459958408630045439321241733716320665797619727325946741863050206221438450211919280226414020340518044153588721587282588301361856004240324940528865151558008649293685341734769980723412101216192712637673686073755502699478188651365604935580291384208309052010245405971091142715377972412085127922338478762046892858888312993840290230945528478710956394753776868320877447896228196708171952306853766226342864052427930653988377790104732004657482265537123081545192744490177115471350616307292930505595976188328939331700776169913812082897807507269798903755914124573727690244488683097584773640789066241345648463460283750239184175852911065074539110728952947129993941561322704310354769106797640237536169401431272978690875546324531719277839934998309887526457858244051431373141035077116287156536686693627007143166665471290936150627210709522429139639722483533745808424058919368818820993790921873235160391780045120362426908317074383815365124210629135923783651959477680537242088927517910742768864181560317959121043716294713561129731436406830859834231354611927804629616779299001776695964450610015480647597463120456644358086474218224968977999662893722991311756532925674304996465038451950116666403786020139006502899882871322660105462625921583247786417549892513088010542230831894282060408659861366550939531722943890631757441593014667646647123468295082609909022186507543977452732477051749293857274162654538554940147020239430685601745266457299778199524284493844224603477455974880607649617860625077405760391255084998392912332905724026067277365785749698996396967086123622856347963434156647060065544892067566366973712407236924440173755524499560465636304089379215141026510053632270617955730647926105999599195641070449180310775999188501230653161074108942609261488083657447564404272174901040843673523562500177356479486412989585872626652370054184850362528583092536731200058739960063168233058019146111639456878664414124228356460220020974203514891831282956043049154509937923800846165365245222630289193719947317942071374300172090547615842600444771970164668855229505684062461678861994797525773867751929885471260075124550078959084820732209505652300357210574395565741969963788084466456193308585290430996091141184218017746758598372270133311686760710855944497516819544624610528193834749551488455588120246903583524759508232665449236061156211048314054068117988205821978740708450118585823110839837567974632622658779697084969274282183605010452521148350662392447960358506555784859913372783520813403693482233875465953413999130242141805703298466686725390065305919897648800021973041766114773886106708852012604717262317446371536825430669472097345089215303189342786120036632916036709813195706832581438066055470566945171441225046407028105653148692476889193653216836456505540052192258989781780008498738871631838400598941995297634100949547349017683075824978078722203660348435842889435872816672719209070467747635068236749914676788960848848337718980481168095455318016638885414407791707494578233848832266411929702128553510370201496115333657425753620927409445064206437668941620497570335818673606165257123693271419467269635686204710477603642802654247237882899219932680049139890195526262660640233126358872517391001914452534794694625943862494827551118710695942283846579816698578161427587002753329924750852347323245996462729839355570905793258011688275517909874124687613606097067758651336675627698938737745914971850858749621249541535589871362438864562038154433166188758065049734055146842814684123808190570743995412790469104295297426960194034260602948998344957449066517689819732901977789371680094787483097662900114059489091424265125029616001891570061870708562708890004447332438095522848213359737993447882328900801274075639542164788204967643030575576207482256314497753059143257631693737636605449107661824716475173870684538390000453121105471781366328758031660123675247347020224058348124525644255967565440095416423513266233245279477413454196744879757612756260813370147855778162676896897088822231865789725590085804423330574235340973556692771313553071406064955524072089813691813744015304850094274131204210164630856693694953570104018423926241829402776372595935051065910489666986042158017315606856157376253121925041294535446371616290024657707949435180424727698165846494647028379047753098602092340680355718261225216497458143591483028788360143629187330085876834622347068248492165966366204690174945117268007196032904047528076958784548161309434894340302329398366764530825356427311762178251516031156912127767345467995738094679038573100592117761821362813268925859844469540533160134146893217156682067350385008303100728497030676011888676777893724738556995341023929554974742501299029264766945170752893418391419112375210062712821684155307201414888564401402551102181197411998801331610212134722099199548193194051497962749063132823165735288478506746564115648108112165961658941551003793096941752956903582535998998054816634300423448866108466212064722544049259026978266332375842417045151004040901273401142612138596588725303658574479031309887855923629234643861114528807432417605733176629466795566656627058719348992582179115493143644733064124709349194604663662733278262817709935501401994790808211031107428447411232441884216791387505620539369149865342130845658742736265953309260902326667009618514353563516152484271589864416532140433914603743240723364844339032842342022257823256145499886155070875006673642132296655038072861980687870459161641067997842352150344459649214808469346540543003997182805511656429509140549636320013557588813621577617251549196906728407947031495371794644841807081785952144504021338141054140429176271879132962989698847384243489987655567761615497857636685119009598140300093287893893354229493256222788717492287213956583812778782158892585289117070341422037287279630907803715985671404653001447646270266699514994364927544758667713355518755543650557512208494207506072771157701648762756044925093888863922351571263023217088671040989208713966326555021226534821015212622596581585731544366912647509991640286825512778822199172451020438299344392129726647890514627093800669410174405272985692895859342063159677507313420003295098596174683716876366365335200505366599365724592375328898383620872340351276221378743500176890335266547618152979270050977143244889511920849330948570001893916021640420147743944842431727054361596744264002841231394172479398046343247568249669835864068965147949000626665590840606886946275340007541077929146895353673633687446852421218324121326288797923184122503382186196296474043089297749887506379798492187731897383778590476864235905217127554557867783251433369907972543203769476579321851343887896971273009485091724312463642120123350257444956115153915585461184049191396164357544437171868376280294983236445607666656315014260507177720086022325983935153436181952068838338724935595113467241846739683967805239915487842994826744564789672241164814683646488617405012524628757078137341772061252444171085749633014405101131214155986517074251622323584592113733407555253740478261830352501164030031379188044254666734963740894337011478880147442950515315785845157400173582552621255024128166805290380780149689043976300882142459256304995851465336248951823568278000861469864761231898718495788444074881421430724813913971900620981495266219551301479720137171351529522149579292778528233275413395055812318342676021742730680796642220303461003776655000298408358821582741861112187704533081400088455148376243257890882748669333772438279622105054154386303924715877153457499429791731640540842188498795482657155509463803006210060467635221329753406345239231874103798763929424540485107791567020471426250832186108458528566739662812646348807021821409491320681922022031341772906191084626950730965403639821624775930222448074338667772165897104838592086500266941728934154600496737361302327178377837016708424557467823711226726794082811504586587909441222714560915080200077502434431550186120794668484341172699229834745082146942225391152488238610448672311897657555057957944644834921749410609621257989327045707444918591459626037627877196404464717860207897766762297117049558716616964350471543969686510046490243404882977350323831885762300462337002678822471336756517761986368924936251336301340262114840576205177561467637287305069449563935622459867119973294855397136141871082308177214002866391175831385743633618906195145827782913626169390061834990552714452449598580146864001270054568887618476003431288839694894112455425101967724130548239806845723605386811868512207790420656317795944561557885449889117133247109760637085892504697236057157039607235485496257956811993733790078190613765578503918825780640830511488614483409737027830445160232452225638769727930179129291215697265908231010744975725623231715632678881674554985243253700579586754778623363101935039858268868838375613246502134835736054962380586956899085689718379725203048054044896337035251452569486117517973638822672467719953791450801493164893299641678711533066168371744060574713618183890709902918728792350112457284117501822765856648128902651618418772428771331831338929976276495489744156195906440040822533041409553304134080107491754449068900510778133909180888329245449410754716512335511195602376626086255141786317225760040015080835692519562321917297580903047766536985407822697574852396482509080224335191889088531930521508293097404333335822110802558386845012469483741011496111939858186743337520044385771139956897226463343034484963825473968723631783534120718366780358050228156047525091422609943014453635430055705028824184819041466999583380985589101199443902007467497368996517221388234876028918506233282828272703357860034854945948495951779420086431508865222628430330315000523499740369984538560180329303305835516983054379451133213092899870021909800860361427283720495730075858968031642188226360275746943120528979854226532829434885612615213408598644867606648798593361599747922565992260510652831582703964106612916959784968607385229476266320653899965185502646207445242061737132141810768120633604970682265538328790145732145574683796929232786731246519734690409704458342195401697145878153365099329081679324246032482080223158593362004719879554775214645310275145718983377891257943658183941422765192027142108383829261157983502542100056401828155213813372668296723553794149265886413309494399848539613970347374870792581468938254996310324107639649960248700147029276394982273999591515747406094796918097023314317124920355149034086076033632834282839266091975375358618319750804439179811478165351816833308723855763848463209556984862245323668490874927571986952083387610842811806197020140139274863536676316005406037873417369106560766181472988031565636732044870756424186419864206837531150084127835430378096791930952219256392866155906973151858775567093351561763049941554873411778208583662296578183115977374945637571869523860703287554238668932729749500076544506553690661342209338402758112002686626236724803787864055581894643696272893605581809357733487477684755633446537084754861803837378385663314936273195806629919145351640088571206744476246827089348152526753397690396263835933240412574724405889948662344357264338135643569326461790666432902794642067585593536080682885688298840136679119425434618070464364256302510645609939411592688142294674367166638190643586734890420562136753134029462999395091967665922333554720778329246090971044283769007814078982553282467896882307539780941949081532734837954013225456676821280530849838173036361189887511311720999788745989593201960388799754923144428308009366516911845394952684311213889615816919385980863857247465325405341928184736396760172252214203879192051195510519214234157081909365135594896831587100928758951782649707700680485558064978782756660683443915575953050405098071046387142369716050859884043423901007686829484291168003690263175376328501404325196646739078073564685203779434840394089861486318618585067665192302230640987845382067489284480677571095810404439762192460486906910262522760556108898201769045585781577094221446635372680570415783489504289176126755379974481051016709270851008346448405256333255541812710134405265853797392231873479283711148323464374538235535988625281266783346929232536572221897984589447841479083719945557062433033411869821052302404726996558918015781387818255361335085258924048552386669688266519151326009667866373000605888100064516783972686316304710083689958100467923928882435515444874240792745927338732813152911633676757224506415484197292455126774618857752116999137902468545892753890291596184193791385712740212422541897330951551786965424078390808622029113374239423570439369638619596498205545226152859390831127436966127446966913816938595246789671744528314099348307077496154468168044048914821164204139542477804579847507122954286977142393210239100925869282453673024731971665696512218124255799020993495658485956504043736663232421555272352525825169658450332279460379403277808757091578284276026801467366609151869104574476510661788131505683344903595236484092224514548475835429984800004281848452561262077551970434044859428009604950132106726274529589051817263749082136900624369565399857263638188484015374865195627958630047312839102823638669968106135160085837938617426333655901724137679749867058539330282185661470193480989880989756416805629902220669607235086721954295187096372961022777305342828613866560479010611421849884062652078159053947610436079555168695044945714098569537545432406644481368293677285049463988151891220392488749954572588439400848861138754087380338469985239338060697877797040000146994137346459369403924130268781895686420210026918749254589508849058829716445421921421345465088689896515697062018898240040279166787758523653326798148570640001452259048113973208378622769734716967900342122916774105225634149781291268886638581123914641518147388611977194498338509720630587490891082347066533454666720521354879600190606564692934014223100208480561139196904454748850689289569668096089555801037566219154639950143897086885150230585864328228838424254766011030273550228047190956812457266399363501486781387238954953573379241637983402752256859313270948688719455474485881418935396424199148443618472088249464202705565848197311967805669213731228377243773133885011992600034535634096269558426753926359118479810731532212332627558712429088665415748629764049776253244018557474036680127049872942198239920747820120244975861946235973530026231029398494692720348565976291779666354224869762759664237136033284172640006299850992529622058969962650611417149862879380265191352227770858773784047374022912119737293460307572805461210605006750358142811449979026282302544809931383392834338862149394503648702763629915481366900399153491008953887310258553558514798727583416150058205267928335544996446012260399737484912881298535154103632637088994118600287483988133100390453811097258980883585714595977594703399287628118999788074420060000510973146804527994405400648211406698611429848618816584658477537163560278780673871446044813229841590002914510220604467932810743991825213215317091084659775412755134173491540460912326641544944077010177474683513763859762552022379247434271470172838560839802770697248717463597495988579703275670146485830069370650630499974547553063849174709760247146358908496096452163054362256500356898106940316551121731071449852673821538591625314722486159278071231568820298365285566390286233665469586888288021894391937799066394871221128663111458302184098982108987883003877063273034890213716523889903086664907825453786663187705829966144162452296460465189259792840263029172618147240115381956324577738925792619432820289884730776624952709994264808973976600689228290814002743997098089660636904953756984615816019002520821641521452177161702483911233217327946535389265707992739248899826755021006336075677017190673203927889585732037821860493938032808093295258944120315328357551199267543522087151945994864488061725359394174859362954229819499380262030414301527674265077024696592706297271880203885054787459234642987789947808817397014348012205129541245601454079488986090265102285097073743024264595870547129632824546570034769697310683582909550672253740018694433612865342279251499725744626760730103911300481295011722917653248244126632913702505333888550501990107380903987349409712116954203765606601122657909824886602105831919628477722228850886848952002407431346924430544001431088661350158608385702075053599195005955801771574693814766199816697386900319420446310163643353655102870571267771210541963910080014172443807940268862501399219327364194680533769310255161485370134607367318158044968196115144513228549368659358031783343422531762726584741522123339031890332636612635742755824399095549788142570053100529639631560914602833760162595617334559840581885124041086530840145666358422037719802411917157511931905324285629256900374879917833361828998495789251207960312951211363795661075353782556406518330692361011585761084932513138920712088977172539391960930974968803066984616008374005190086605868810489053095924402157313451416496984040519492500884124617919423488584838611596764483986897031016145398659135040197566596414750427937289006011396959350745259857853384641525933700736468011698872591429454589654584031948455019007053808466850493679225316521481281754033627375750089688637116449794961851449039728117208780200581826423452063005724404115024665369409698528099174802421502777128801056110647641974602834678220775148138711992659479197597146609404860964152911060672100851693865351950813873006449880608653898275918144404741471489725826841239858494472476288121737383546737052177110749004435136178687079850897850664037525655138565462396969659527860616612805036969236324767581901021977558005718113163197227211094545256538237914407833104540614736995987441139993970869481064403695081821711716430965857160680900404322625133657769866750969168152502232566978204656686087552768386134860483233240949263369935544992324501892272035595275808669471181277694153925124581762664571501050800803043018563511350629762923653432066518888558596515347725740813371085249730965424384937114903088084153484778969809154239187719344446825931247760939902492790303194302529908913206013395802869095927660393362553970554007228465971970424067490989639465431926841714319893428550677028932659518543678453558466411351149917445425690427264770901665187489100213219576798955266543216830279527591536338092789671262188579747179858502524378142038445187976383510517794076235216297831976741060305124868104336459091255691968604798417277900601395564333388139274966015917117493808113786893724651603918380527878108407063777475639199171462325428426203528102067390085933425750709017790607399440314772241352696679355824201754927278183434975962896553786800849937951729316371582016682737757994607969759960096560037374311584139442842412711078972356118784702781367699924005121598486917217230170937764519034104012968075895136003114807071868921611247003208060174218936643957554171819717785343153634239869072422837012671266037090400239626190096511762414470997511693772680517989212288009585626579275188612544695400884586004569029830738747953969814174586664606033187070605725679409223432562399718873428366021566471095951621018347617793420496398743691249614622229499907888778219299056453934417809894027240818506727676041857207835599629082635833294008452234606905463023072430262952254969701760669477733012626905604555864489443523401901529937372108428383206356329304230023425092287695544305836080297048377090095060131554275147183893159008906793497870751199963980924835037195812048479764823380218751068624508549155712534132829609921784861172738186457649911410517082878195231454025451459810120926720009478651072436453928056499358837237867604762427494130396044343509098982138288006893712917649774308410528702939424448578689114022644356317987002285398794346250069242494033698711104952312409503896085304950314877767818216752802162390790089012859245422065035239350197066539587283475458797914629686023276983628531551972651878100357593098808411933471586779002573737761902254914427430169876974864210150946900795612934430462549155013970234750513603739322026054727064303026125673321887773666805127703118998794962870023897149870086310835988039192371882797111819880124318731441280161218695754291989377532810849875427538168017577570412297717757662528505878858259605682641591988998063128381549901317924909730320179401003143100658141696786032301762308878599999534390003482742441418216843897414202928653045717426563930420383483772011449722464855067181962539827073149052377474654484162142352477593962898954100752383037552232430924541078428222748894585843923505920367020228138962767919960040733516869077088239154778193646450323970141373327472626417048470605925055367140426487216275299292211407447508881789999457761252870085895213551882139404078804370214949404564527438950918611593621541611235414252950558817006576828261504779026957018989510645322214579084728505170704810651579443521948461585107563265289582306170884254298306961810139308913981815834785692802666760850206540770263769937231594876052316938441480703993632153513632175277223198032963749026188507965587194932440000827157583792551302989951078228513190523062788354965381260988748200982149340005328599011590300829730752266775972653881112370056116860930930574123951611991208336955004796584626304831883021162241079444247649034413138266679906433549742023814193203613105402807542049066415890390206900700942060622513018938159776406417072833797296214845646546850086807740992426668561989345464689882433444844026719101292069775313821190755541154843803281143326668919549916789244622139082942266954213532493881766654864537640105503159481917352879062323009776433435672667743233704891230670213678593597191831951699905253141622854282209206088499013596974889460022883484157201220257455671121935520263110986884881132316070133083914533704412164836746566910212652675205118261289763864443161434713284319036433837650345042407690987159003521150588834827031266643045743787713070957104308624232319637756016868909904024470670671538394433761285550512690762266957266543087516394440477047645846326118316807906931133505036691681078241075660796422501684046899843112733072532289871167010439197483514893726719801454109683812111614402256561481436762256402839887721138011480722479951782605872836417105874393309831842421919137765670669498286679666451763594922422768443923294036606723232448611720953084548587561590533475980308235401969013577262404206003620341051964751424627125272283220859631177497777012072372799053983542247712969543497574887305409031591014895098607824653260978858687722591637056578246045884031297594974280681148657309888616740936630682729977642083520162559886995274385397922896325217875282373985884557126606322797129177476643296272668989874626359592246865613221342842194183322079901932900528381826829398130573255202302520412752174943618587024135225725682278512332197700116344621985593969439179500697591414916326562938566426158081601118243361520035612343940158300096711536982045981258804706949673405165386395060648411714284332328816588725811817674580212049910810979123290536156578231063703786178791633063747059187930192136260165711708917542230751764661234245610091818902790796595537749373720806484067532803189277104922792278232692017328040956283406042881354401787964548832897225235926713871482930859730424540688065017102034806198061514348547126469621645609907049247616558808571563027987624928743201468162587315030811903804188950454517456364220428966730320208433927973024072159053526416719556048188080686857327600692042868921001651110032879512505195266122442219852823019877584322713365339140246022186082386060774914745850231391764280349343259747605316743316193654371155737116925351967845352556535901823254614668587514582171470143836378765705777208725030379877214480780996562726670100400051105461202222464817840601508756799432499814188999811337264457876910525419511977602676122470575751337813705932280491001439028264235531625541905881184820533706194215979897147294470006095657416634108923418513637053004262672188770230764170618412596959014564172756729982445525199451242386351262175043743758020485840386926337830495068892473036719735617769091494103144543684914410850748857276105987611041323386681532542614829940050927751825504686302146928974317153137254498924081787681033258392657758836942289453167178250677804910801790508683148989552985504557375748313908752789656262412353129578242278400673344188270316033909339777192631488064579494911495592045469360325416372878603130008661178293146388490545294954325287678531287709008484285334384747130513795005678403216458770545007506489620316850817827040371928840415935569086662653867477497461332201729851150051063328219390182768303363939438416724151845817456754703804510465065577624822049574989491442733532051126566450084949255400858418339053381953941917640316718564860624692402833369567147543857886163840832695525065513022097160556874125854318426688189622403102546727960845166613248032141207118904339255234880911711317253485912858367455407620159729878315336554950084515235388157752100029332766789223058659967069725168275898895595569996465656866882347212614234771532588360867758119352100924538961168357924616764260999116642391663161535537829624687360613167624230926737095371873671448556912817250953688614103587681190345029298667119663931181266557373645116064154364512653476321254733896267003998891955667303900989117428208104641671173120013316192409669401012557527303803778837401127725664305706921708794814906179761188742852993253763758606302561070866199412073939181261456170626726750025941875803954284730758312914723777639728529109691066722954230826181996821215217549991589403008760639432238551660024995431611766252060191343225656071526949858752681410620608292217023402726290386927609197930400506653392978928567090406354267719535872896600927906948031019420937784856920179324954363647360748242846939788942623324805676376699995840378374308039085305379162358631001295924054535817766548688886099404785542130503488863396357222336522415524392810291263683628875876273825961548757468803219242298391243370278759446440949657500551677739586628314141373642911145052401236799852224431996088149037883335752754430039436328547407373249805481183598548052969349791510135060484544502369522783916383436084493831592128948639224325032907621109768404521016986596526578825839120313863204636385481730165522446046422773219232161178743755401339596961907388127713628839459294126759650778001116459199200194627783947963016690435492022285998395727339827255501283384486925103351037885042346746549369614948807267561225465214812606228063466490743696072159854680195882548841087352321654091035547738129692245191229461627875499383431314527225862308436149626227153946976660046800632772769430980732950078363974106585501514431005308010878275297591272702732988798823078694631018246029177166764788584517723528572967209615954634410541593232839889557862058962267938092285172989199056505970330289426764366522553454808934641660779841732186790185245106819802911354109352077435079043094153389560158945304318232204627562021213447537741489881647456459415888722253299666916956683337779556785575575681182525556125469564641727608737181666889656853968144475675520733464984846080267444108415577159843842761558549534589110534503905932239074002096952703856908664070152070131646841154509077551915599090963306394469438530403399468145357399879042402261669304461560100839171206932497516188783024006206988670620044967318335736743659211255768453400312520423813256167474778545670929097886139714636505272873597916161859586417649879897781240540441294796200803025373691607005245582404185284395356937677882311765554421384529194256252518776798260252173072915286861689018841101546143306124563729056282948383960529719971260422341919282910407665432085093417546436638023792915632923174830567565852350925675200242520158816518789518879893328029554326676632600794306849775848043067899732714133142989369430770574534079447184720062873371322989096620759142413680490814834857996280956525937646729690844224459060247275542481056547725751236332689783618128667889655836267851584746795904165714398837252429435838744073297687223655732062125569483401214696572347838735164139698527031092448660395004335608315505989830171616776458630309878753013724102964931938870796894358205505207215562514750822449020534324235013370326310176103449816437038163548568005512403861383410116401583685973819758362913927641174093609605391826673948572425524358123949116444175138719387705608569243295004946381454045373475991360678701633029774667146517101105700913103410136622630150905955159908928274096982950103500489422426310779140159972121918513825163871730164473214542768678154204060774734137056047418408551873376338755029356858389747334186250538383074031170934257564890920436067713927316472923363416552884720973475720174555232301943219651799822721073661721132714771187860271523012643935098788415175392239546962466539029632686599963639192994429115175707974702062482661618920572216791132211780327575695181533887319503454796857027036163134745136545467643065877694970341693054600580464661756951754162920444876167972525200393553232496636653711775636497229453343912552324448456927689525495758564282419048587026850719553857921948650341735612573508802893456576090525072638181929708515139099698660127401927012720575420922992918666489327723720333038217069500018559753346916778464464667349475068356613421111919193372619797289701427432822715249262406286386494652745201386977065310189105542697998347754484955833852751236781274278638537287720147231369433632833357182127932935038239617531220018279617955903404521192120060008984046505488949801130649365693134140480733414404299266640238883065020746796068161132150798844041600251833993856228020908746087351422987034805811098596036376071898326932991875889154875709591453126962259960228447611642600370995211767425071455577509735120539927874285733828928879014782610825688340767899489793068984387520813851701165952988049723148359257248600300851725000376605905792973137115132695153170071597987462883077686233218494024977549871989992042839154476684352424908172131103699824855234825184569945165917671701414513528606130382386287830467506512949342412013288654105978104878993700574246976446253992361415722768250833679452940351666684223548704310747544523509854885202303453632632507845303624342000842693194637050832131840965353682428725830762473775233302054081263714996392356894856064117463675182453665397937135974522652949487706484140155440252208973945451467428924676766152743254722215499014341133791483200309821100801501907184095597691580975265401179922728529958406015320876104372337074262618446115166505805055331632005147823313181977670068265782061895564596580000861089063548991962021174613350001351971711723062870668088940493237245043580298493108553841743084951577677787789827227044215221003771691062104929918782817861328589604789606152216386065464983808190109853240664583577355694088566969759047296480700694487860018857805960895435165806453918757069477986404549565721297021127880439259605221815860814552293211783158552790169679529495571175684345907611102385905779078248090734887136017075944055491596418971787432020630995907981726393712312742726527230658015645878154640362626921424988635931149816521588811664898061143128936831129563033266064489757399123354098671242303803753692409381321593555561937673360401539160072576642698469914726296198569893776122558909501621672778099932375862580392781405031546911710331971906837847501263339353900664789805667237451637515362292133778760699849719420515026708677268828277655182379879875551324532994897744744227644582291905083589093209288772877129270109517919044940462246580110542820413861450336277348911374477798232660217893180507468674935854849682786549293156621795241776192806297739672054761191634632930355388064055859032753079285798156590202097435740583720777053135080124949712555776868808672813275381243889371211898922292905005848441473266131385292458656201756311473577244351325344851407961091083871343864467896113086214115543540033928662133497070879971972792646467099592574085994426030680568049628685412534321264671109078790531526479005477000941406152736237810975165684432297358276937616705163949882032799308367707828211192082830168043703109052761567639869678052696767320879254103109408508832585048558742139882972354948463102517844038047406327439856083743919507298232528034664827239068480739758093648387866977521002979980090211671820551681280910777034490830140045365533695432781148514746951753123285815438554927475347492967560992130373810599524263854524765656203049746396524862330135892208933488401806090752435674234067571528965051478923417636142628806930917646274541751590868407623739689968778646437838772601651060062580334071936594934546912977846983893566897878685442864641118747124582545986255191759272508538316830456613985466547782439663196917330302869903885055186013315872664797675482574481105910571360135551839569765292949535943003505800871616424386744339604418071469629315948823013783468785019162650659270013094838724070086051817251122972492618472162385010325039596525552605813967722756409872671627182256842784991435305549910745089941565777100747694849829194449887823201667537419131739982740893230210379433264163230438070738448807680891044375974773478782965656644653474517595384275882204249848744547683459714692948404884993321889892590082815741509234486035482486311050703951875613961895117120654247472447771888962808187505733548538060703726311921914475297261344863590944262818947831034502311952913367350333897854158466565706280037282564852970772174503925975476722198984456615419319338011199310586248821267207368480548956968027354226286923716961798597149427549560210157446057291187597975245622808570892335192095589948627492307412869537954808937903727348609958251923031173854919032273626967591469344940891285910906132220545508825145936736202987341411473625483653849344939576032693028021676729553991401559857742647914054123975224724826928240627234955938089941138962760637971411836004897228574534272090811558823713552708882387355819103332934583825522095515668104025544391895662457548291893409056997702838415947470206932272233687291785418180611016987556335048726663026512140242568664915741113433659406786008755661215220640482630552223398333003738717526347221540652804534278996100090555525991865495353999129840020740943010903509136606523412118243624774030977216981365822651440443424090861773308161657625009779323747657249945652076173683503944065799900935145730013552753571497579577859039776676020959733881493696192424416585150731012972232840404441199273024064630721863522070524435840570588328095752948693303479571064067425793702211550250134083056943141432878287875691230441724664070861521277335543295885790980765289918851775642236654757781331594455591622240348299543820006507932905425868632951899016282994381584336301507673037695618831749229619773308303251926199903889318055732095825804635721490138225005344838609357228284781856170751038352840547225211124843443249846409758043466267693124348088621268858956251296206783279162348182221136908411647620474015498580366115725733883403555086144623776399195273363502608049251954816598227112713880239138626613973229167604571146341198884636615215413548424258685561231072546013234793282857133771283671188427121659090711844633701077252468234600671514987907329273903152899380560059017018546754964581044589710867141186202285882079898744116322533933232412632816589178741765101488572026868228574628028156112600232444631085681477607721136868428087569190548009460263791408259304545578059095109263936798046991425042138304159385937838539632899836996949647713414220052537480092486314526241821533509701546293802522992705885723598963014178168120660965625232335726135508514842460439034825629515614879201123621124932610907507107505076146747795093005113532173790867282765777814388228774957541196510047820150317714820377138330435717654584968488220098883614819262929771343972048344590847652312796130494767102962348351588249824171277065202912585572789977268392172393501345790374648834698490103983468051701251633443554403669016381833076178569885777409946223919545368371607565216668636094538074872631265445778284696103097151874647400414826214582229407021347523068419394719377428373322502315382407943441890964553572428966603745993013158811902511633026813154929068841264902751947912860097883754539548170423353799935230518003235902431714000696515931048276759427084296377605718491717198775698142597960001832540861898175185571035454740989908323793717878004106059291771881290438340405843598280936015659914940461086525079587459813538995633967114276946405075125458750660575413657180048887144403636419114501148628269273353144581062013672318939374275199798951219383609847819412052469359495944378199991253461479678262346841098969752371499894436569894616189084698021471520700224073873409530527950326763010719786572945398708174078883780549978076908698515402386537664419985386411494855205456402962056535013647726132702310298592585870910020895429598449232393012056307401095404261339494994138664942716643082281642093007474561850701649063410120295012486616896644413937382768079530666030590835932070382206021206212606110478368264921688287053106003854577071726663461837997641892383237683759403055790328224109911905869661905459932736971379738753467273382122523947966578650900739196315956477406764916350914663640364914356623843526558331492127382252384060594519409505942006381796866699659662510720967781989654223872722496152471993732360039333076778453997019233448520717827866571571875071983271798774577182358657280737666656394367982822700865959340046345447423626540443409873668043448521555944754461547332852909535427801103875167909679784406135117845321083045939283183195388367037603343942621910856626599295516344921337350488381572274337042930744334838934232891928966668223846868741816700753907457588677440980634806818175856643890495923857868257091935833230542235521151612244488395909777317057834715367927623606491070862933130407066306335942509484828824118348182193735262965462623273444105330058918063968761539741272444783803669431559639031274522549483598260853388101731030551674321057180131383364790886696780054106224857279822230942969780561072099779299356598628919941054003975815633388146229968777927650856077976460044665190226040352014933479504823009626264252863206294663479074970382149827381855227648415624815920259712055248525811902244419606554534342082183658849356041887642724710041957241608766942083305315043949730464643585634410228156138403994748418214617931206186925142650698078622520263174199159472687996710904051307915068456201285809524000365836978247841252060121672374856938930595500814042839444516803905721785497319000406199526469303383976012807666851601381372966373614281494934762416262744612514881935138203318331152706952980494253486286200721643193134664327483326340789101243492758031172607337835199204642373410192366756144949079516949617347132124067507524243415729537268239500823967324388894117821542203283122911899580097116874691079002936762068079520669922245450748393165181642177631928053189517535548671147538568606720506861699945207947941256688620139120059991278468442197325541931348894145112243192166719749116007423097971457214656930242584904773806547675812807905729373064061712390454452893999436217947454675709480876810552330137232838876907572010225779646383498998584153777710446380967537093677574100625632295036190823966369600193765777580864144101419398200321047163606736448512127553017372848736901282108985466324849870365156818954312991162749934831625175933616052772262929924912187428809172435888064640463666622323365673187319096394187660147114583082800890408728216248208267158435545469516577088583307830214893102238320301990827720743693980874323203073467243562207885771189127005932531531382169476841446183947542042773202277843261847798376701539269247160636502609991383913513293111044951311311850457170553104058321277117548560270439227587662055612343166737013343239707980342828166549366310504707985788861696516194375584640592321297624150946719497495455669142028484753200708328236817898952131295766219717284402476186992774335137355549050166801854373766583243302743538850559622983229092175201960919898208419455562725343381136142380905693005679931054389840904365453717949258948350846363771607663320111463649576071069095833200101756130934877186873553468952657318364836677750970576781701335607779880471321575670978800479215162664698468538846355637230800438466399975855093286482731385112694719218814747304563136997126758431544461607779236639203724334516281495091865776144104727581737036008685664070194608208389811323768605980109750784172461805053150490788228024995895059820351301533369024396031144715175859885410148001228514833758979847207983397802818621887690671678497569109765228956518981523635335694486437133155736100245473693381210652531111287448375815477940053031523723610717227603068503624029669579206271980702514624218978841541413955179389013045436695525356509984319200438996886104233935981681221707058342347887835100673050744903482224589647922021924661451845454998633050867939786446220277872182807112455315846378473922655563372053722478436503163011111162726271108451120421669044437225379943094714567919777277588490701464455336185425103624661147916503950928791018822869485633995385581458868015608092025772052598704584996516976223926246649684899505400139474258665915270536071992195635734033474090589738290753938111247783853997804156498709947062745082066866307042401870786196865226059973011261958564160693736400647026485849853070462721400804627965436609576791273789578353750595428681293046082782008938323494405192980920874436044331148509582202514149489465332722447805199582023384648770910920964716348502822825694393839479541100019382312420690470334943057447213139119111020302796948118560385204813659483221923891462187757759320417134325181913210108391201572680069543899192435421440978894529068803222726214282242795811063647541047687966101860809675621192296985886031103896423343774848590586067521085327562923297428425640481740204548336456011142680252368714533641231973182276609755222786613957246421655055726324011089879194942708540903355353993782548253625421572707931977653108305837481949320515671682586628451937055938079761648007138004884007731319305044800679559891113751359343873132390707887671041198074314099471123629031459367109409709363766982730848465223931380233481582771009156796365369675350988782598257259674256370159564623245084934542340729329865176749103489134335362812521684175762249387443582504070882313334779886979935631305050144728133958554941926825356792340959850997965939335355954786823825048139549732457427656877164322980968751256983923453129752005085375352368695820330997733772291864312800988157193245444290958434801306203649764209399350534700603503410105036503565419040750977578799580120682843686050886061396600608805262237290413977867744836121554904536355674344406885897723156868193114929604467753513204808060461948216902404843090222276479920129429683568112101908267012656152811994759350191985733562111370185712891280702920729997484296101372393070097223773289361799697356836902179504445769595121348880708511794231358727089910854686006138050892041730185473958092347802496815285794198974232169301837282663707326117141513811695117134511203328532341360955041199825893043112172476476836333979928979398687488217707840491415263623656513780219979341309342300246868812091144412835350497536807753834381925162524056756749369599211419783405842878729787461907320912940251842241400319099375307367592694962401663217251179695486482423864625238849945064302456506020731070647306376208664832157718621603865952495069370091077821802031663014815911480496717511802105988217888694749188435063188516095020508329078028456770250800529145811332757928916839475406277142974527139044778184344371400030312204273558956169044846661631737768056622655424250772092491693581131570073771767785221582824038839128444926557814547761060994115619583595053279737649737506758761574798643410809680802743307364272319829271125902345866920858888598231976163479245713302053842398153141805594516037946588828907837657746207177611083230186308115594893328430269038293278313336217790994321896033098663762840431528863910120121511535751308532662947905266987897583781122352660200851715967406377824879870377985851956823204090528643610241528803111783828214751604220075000949904999668907292445167161262532191500399425177794153977365820300937459162461676856029437565248989539822571545687138469880699054180360780976444213040447724294554482990665232409515506534780278227925318305959267894428835387257567744903128498676537888428066960064857711848751032962058053092956898811855933576658610240285465382043315694496374538615273034747858681839430773020915719127489493102900675970910000095207300037383757073802000723752215166207823342810303016136607213012726670464273770389290649324769762859838101290242352744764789179221313720580225386718256344274682072651688296992425017734364154425369051808662754999683260198649981479077886385551770703024543207369769510522776931599589933987852284748256578090361461283491424747724601960778591126033859359269266094571384882357026120330720866112014893173784059293811998707943229357145287499832985183663394598713650192114151187766110809777989746071360522724066671611965326974362201021531916968893123078601067928129422822378994021700485497845820455662383330672314689331164699037128429974462548598407552341821340678288729123547741362194366774528238306957846553531481763834561110586741132437968201860299224611463956097753735352542069754438935756491458705036633154872344621464382102513920257152005452978590248696019962326550867713738090579432779056845953413789541932234790074594268108139227376005113479193557479734946929311465105591542633458790281801052441145349147992872477394231067354356173646988453554626452167249856203351499272395947979167761056282254086594872309016615834489623073666583410017535041021732834733577871494943602166498748304258589687682266475454360621126242678787285096252105721204308497137011027190187238537296481542212484909419633279007912766697593432689483107902989917483417734630868543317216361158800344998834330368318963770639347714423804883469606873615666520984481029181468874249662106735413538433468157477345076133057720002772110386372252105417199517085517795009068004905868276640371996326153348498305017008786433951739308828311940321788748127695253883680269916046223974776608612727767193649096129456252059872596912130180674643673977366598868237820979305276836884360989271613902076788046443627234877101662394637469867305349993943171607228385801377370768180259384570028399125202739214372677101813515984096504277289810340361162730809046424265339939297872476176689407848701280772333518210296859393172192352807681323323159144057998842582131394387552713359158771162829116091609784804159227725603759261472937368914112829722438727785825101564428488278208521182060324898932520219806549148032550511775912126926923244696798888801465277719963769419032380559640189116059076985926901491674763159307786327757949675740188054252400834330900299664286877268233715927605713002829065852724788515920152285855970581522014775670057597795964159944439490719339097325410120477446021554676927807131148178521470175509620430592977429275791718818653687610816077613117222430012081488331356461724075001759270057241760307896439739459550680909309394848747332146720258238031269965125196993700722829629449674367953770868885953970531618593851653808026528734069294719209869961939531614940085617145570871998843574590966116048189273548295698807937945906568388367909386091444585389488990944082821586383473963702481114079720730204126216654300257281519891152925256536352281382599077562443920160817629128217287698783010699303271613146827948736268974334950595619986442064969672490704073624931443025075101183912046678608912976807526296494337692898339984982560615166806905795588458067789398869138424674385884226690990403503188658617533943606006475163678774846489279490968782255133310841171653449682429212042171767333122510987963743709345168733039909635305003655180499397431101425804656322053101286090355327044872081228606365895349526390228556687986726527042501992896505909860569349611127210461583026430383467440944923004444216653272557541925123503879622448155080261151418389558632215695090480145783500940287864890103688181051262261850679719845633802878874157878966601556886744684019264918809603749371574053715820197623067734714393611686296404446843892136192050037144813938485113907751941458079648581005502648821026137568100337866275875241941475610756438880101772666504151121459517924880452923132128674412618857570196511943629992138434091625994242978707533586386050192691738804926661775376225064423392773415837559746025276253581059423977750672541667824871276399119812181064698676440047000371768800713367070352864078383195678973438419904757082703896016041264038086441814348877518650546258707787450978348668611822559189802791377189110244047114632599198618200977625458437956211218829116723247750385943058309264972579396094281149446299547462064985046977676176730457540327967974867742323683447285973938441629312446502040155974502705513752773391398496573665307265030291328039915207508358233359689028247137485047356156625798817265921189152081654527405726055385555750637339958144314987675158855001838976997094422995066219344685695314405829273098226575049505706680212715184504648534485996451307915222207510801297407276344941341024121777876821967515342515010376323559566736717429615088216311118669297840369497660467783589353900686785817083314098454567451231418378526699006162404409203030216756448527083827118970871367286665069194418581397190415454410699739352681088978669280878184205240364147082211999899215078255103193529658554769117085779132956991925901615212219011141395547581094370572527491064117448379148356408847150606626520384533046912651664608734625401709226106462436110155319656056139267891441837216579180460538021590301943920013021983420125239556977036407646814219911470414814828370089330124676448908066967345568576622446734351760510584747117582891572726841219398865119109510696553285175232552635560548139109989288487437787417530953041971071411852452622295157782267860388269153152095142707102007711866087166908141394287194323806806150362675288404746302743227073347452884704741090855370866580445496347308283483656150234433305003987348344736440224892592355365749233074617796673341444094023963252925270343725055572994769201392338772578870721254707562990170150458869946374710807757169754587935376507560067003214631013649864483270480055652524267703461782030574910573230669167382621528371180754458275568290755410843355295398506454849830354292432700885232096255797731317563694555475899485475480759028959127586565412038839145239453899841613862189303621613949800367360030567789110972400355831204635908697031559023096131629906168969619863767610368058327679947216462661930164881649850686552742423698796298023263318748915521917819526573056143040348336871968734040468257515272187268009938483726801719466768488189297842635035776533050415051367634935731469396848485379506921045510045046060719568077975527422232138817442765085661754228651658327960172355756285670636415296336256053833608425079528435931583056180889396387336881955780216831046089917129619698643204206619209841210346730541683072787724368186655387090992141153692620941318608069310377094463084206672138047560725839435023928736245190478826393720912141719705382996754092155684311058210253369938841768529871814409918521981967932021446198005787218392666916714483442751757945879441176557707347805143446113720766713065874342438609929516068332809263790329873572410770537410047838744791105382928500481574102692083418875734166630651956133530513560864710549658665615143020076663900213946740284334178842884102393633347278292232114703587542551718298123666097073622856238514007760013950093395211714073818518420242460240973049653598717402755591568114531681158841374135514549999702185889986589848381843186074556992935639797592955506154163317668574417232226943859014556877303492197643437692687910734478051210177378299057620981109557916269020433867191012536082241362707654765457298284764879941214260313697097094828944711665651429560048369641768818544189638624510309037065334670314348965487963957749142119921974641283080214998474146530692534582153360310256503290282097669682116074799459487263498361559093594051231668294964302341118084811148010432940016496458204706882529644566724157471678568903799115888709544278296928542395847677384441009375108897476566557551144971100706265639183546976439036989340304221707311969198980588007493075684118648899580943837043696571393626315509806541395383032607455889746796991222234475363543805350257145949794646633931518741221918083145443019609154280761842839140646008260109668330508636331875664705828984537805186940324317177990459334668884481270206354775899630974901432181261509245693074031960476864706709133320952264303446188314203698601923325797633938535933363616073554082466651240697842156317699605362387707911611828228494077522317076005497702446625070143855618823178161582074768221976474089289170786860137333418152912671303679846301516684709747805673890828603829377354368985633448677718963789742008476295898017111581479554366993844104800693540592988511368055855985962902124406026279692654459405103716837103165903305823913103305206939324679859061294986148621338932748132316682061189303801936161737095379514396159401465565183063371944326963058363791756721369055847327187657460017725248240288319352042002028998514023159732430638124421234728198892106819335649219411576676810246488280384626946911082800072372006118456527752482649100349567017349704257381353150488522866854118700929259234330434256224940373955561564037297283273391955948447662728720871518143349263814777161498656746670184893894356520541291194371753914952552956189957818029797421148187144593116159329096160305854884418209980124126829905008067462045144306859071803058886993785554930116610266953856260864787007593139608804958220540660797995348655563121076808859155625863022245373316629662310465491481274277842877017556460652223189902043376214184320097353250006570367668453169645654572461027781516207475702916457037361399938136523596649523289049427948450457477803245578162759549708810172451413227267114551698992578321513737733081089351118063260669271586240360556942091096185819935989305895212382754114398884787358209570159335266466536774789584518981716449537182007906084191902728885285739731118540756919890051364779742166352388924504333649564323472839791721074842833923891155491275949261845465330954453730119229355808614388266870739686070520458127925246794537621363150278187249207470605075347070547360114552820183710262976018349260440474247978613986246354387449905991748129092553012747585264048077966582668468677765958827702697329917085475242033786928321384301362655443250304569368700563721890546904718277521672290887623892188394118726677720113746884966656145837903274425686222870574503276090040972288639823367082023586271130721449139776889585523942633214344844327764134754879629057102978320362068957257854205814618868266811508519399888226698033274627202083057212734543588800582116219036110158163963429811791155467311847080015649470115891417678058886902578711258956743392267899528921493072827010813659560603501954763923717812438598235366035719289319060204701939769746997435026842287845137265420269177010242952481265731051987099932737253141355495131450262139091877637941615058614688843760573787669271323889670647100741107024445219779982449135714664124306201870380308508026033975139525295960380332432597173065644143703199079789774971040482772605460832431346436564204566876333850127268574331461176079678023073647657194786005542411757163936751813789493512357341534258031244817637197938933605812997049480803459173496363535407150780091844436084459061608136024334078579368491673109852626806838069070567208580210841843622198348373493192664864649982939052771457077565543120770707525715453572143516010921768434015811230544089592301820460207212875393120699484637474930357901236839338580354178351089654052669536030924164947743561743245230440295047058133447361497230028950973074018038634763378087393072151471271809425349008310447068279963065965815425128999282626603262014975793807669416277663702216601197204759893313036169489029674969849336881431452808839327404592284377153087124789023680038242357834439256538931059394528057857120662007933779913637292578990551476548196744936751808891702058719840532167879681989177417506338442930491090438638297070745974152841762032797870008772587442048200555569704011130390652065974794276117764490042407437365243351228645210609071834830572563039897767650866707378814872074529426460821619532489875786790871441949192794133949845292151914919105648326804021164005003565530303985815426706005016387000910593036444561460943977138054107231931777990633467715156445537848866159947113189520432176876760209753220806576063283093990446291894272251735990573290201845228236981701206809069141075968902204417673787320714151870156734674046692405563621373538589110659313524058336480156822982796142128894947652991226080562934577778565445705164270301697066704095989701577743564116618813877922061649398813926197799905883091501095852981865855159783063620542771075246232636937862218187456506364446872766355993071777450920522026169916500863413270171224676977507864338105609589209841916101769853458065556152075457256215722558139689425031277261756696302060602255626845985469910632798573475460471678660462614893772285954150196919089116598390467628362063637154218456378453089955089991128341711694820539225103042247263394124839001949458050321865760730542898484299791747815132168187279588059737584885529484462890141682764995237592681867270696416844245208529466746315703504874533085570173602697545605371556072309668804859015570661228986315162251198957499837574093857468297557195960461620547845861523899601644751036160037089316347964281935998412810670711280981795519066193116038531016363953577237939667169959937748530335066077329655386558447305038102515558503628303041513587472318663038369276058498508853408935603132506604928306687986212937806926028701926668972616570500972266404892608008531939637039012670335075345282260172311908305272345528613251925659455241052525221279370142259508193105501615375189192111516774209541056997123854226102473197865601890139418449602895835333302188458948210701199268996046668969474118439758126179828803126393747625904108429365656348450274847387097633542673338744563167273196277074161791979121542139519373108901326942433578900947227921986620734216066592157066276217452660167448675386479500014259018409745714100711108155521962519128865908010626787298700753689166684359056445958306196780179696243740627694981042914012857815361731893518833346439863652288435321617689341800326530326734584670289524425526794644108979448915612931872014384451306741575854486715537486882788709531064193254056060101408637469168572500403950052708381779288775239180829608809262826210455852016663600614331065839247250328912513728968474128770204710967881293015612884677881489943215162041199672408155111181835233243151590215513411360377975873000855686707497581152242757878853684246828507301921281447892367806116922627054760104509844264077193876387022322155598476701309080877980560613715976398847181891267631299580855938726206709418955091698611672678849557178040522966752075271496156698818001222225934204237360825374222076016712924297879690912541407339698995212222931672345648095838584455213601101315681112840324219345751052804467278685718590019250070968654247354600148742348858683032666598121354078882097078164857574166875818583123639736968420291701639970410562833704625521680983516650517519151676208526680119457552094456995083191759258136523704597705259043676860446053497613932864040120581023848960036079106138531987076507880110608873049562928961411480317622857318745503082385196235057871927248618997471278385821510218590762199404471329635683415934629425125366915333007362191788308912828095372351494057042450867676434131505818391289638685840909538572512924119398907404090972047795522339017069454114667388394184867836092797451135075986018005921817509974450391809609672930644471228979579150247185803645791528461328792815825938473479462989097527238896940091918512676377320051036236569565532234534300690720894290187701195629759442971800172491625851577031011600692799878267862449100173254792907248012713216408873042322104575760583937226381588487900106164619281799548728483186128045730241332341915900895066498864652639659367355798302440174662313414763022325175031744112113460666071398237490240854088922741179110387662779640760409239788147635920705688191925129742308490856473505219051870633518645602826383615093331241360593449467608779845887920090345693502988146867302857444357375737548321656627414899156208150873483202193695437565990672058535274537692371271035713993286660511973005152207441555060247146226112370048198626261759789564445520627530732779005190670768791037588121335957697738128177954316596880581722397089317030270172098859981356426546885730494435515724632838685119999559680365738697748548482038506466665602500889992064200808704584275452742758091123735489826483376218201605277923263468849700034300235082531678035316061265985783919525606266445007123160606825347887702425941316062353436669564650719956759348749412319783748722353611367137150556728783191830826470930252603186004349676386861301393678958721370284646851469933453218845665731690531563764762400886112536544066657404392346248318499923875311422808371541417812789543153126680883921929517795790765150718360488940764410211423268154368009411401794223751448681650265478684280731570728802945367516878334593363122002600958581166525540315635672220691785353129545656753689980230185254083048768452867978273008137513051769831006983661083310067108152316174997726810271684654143753320677363970420489633561539234503240114717451571911858326356862658084806837036212598727245145981716719848609140113794709772047571732458866600536612042523498329647761189858505359339737704101150328883231606433420295040676396476859041578355587016081083346653343175287562929409935366701112003786860648947578352727299273397803450721776616086891302425361640831983253601592644513723228019232256755410870816872013844057190136106027868599811412327691303598190046230781971305062023688251073588648537720186338812579029326570923095395366788284393875504863286743391518917135639352057149212605664211694001629125541992978719544098185029617124618818719589530833836201835790253583623874728227799567747703897973705460000548625077164134677624695683149512824478392218803094581628640112175252819409104687278650084425086897899027600586735856642193978195374201261458045055876082582705936043817631302650302574866038573714141754217842254708142245317158331270325633479186568193667573893736042971888776641642289346296648396690276998891013018989876416092412051898855694860401020036108161004180167127482174129063034039703159205943247863944924640881232159631190914445844055038242643196593064593773155197474299120847477499009457367403203582553809315465674412543046903252197546612237886057478170938668999373209791085426125579461605842305034099712900915378471001084024618283664433985556843236665268094006420416034615290411685531868310117030055509534105670632251419997284124271478574502382832074617146821336174541246622151101615762347820769811213101006722221157280535664044608088776997568557312644554463469995258651377592727373807807452667793270787092027400940105757688860794737271253827086017957421336968657383307499602240785472999815982075816240570659299292739643662099981440305480391911618011977406692556271392882442974103967972397952954230907409000272946535352167153026862262149758720490408654638152284539487691652786489200727714780329418511976132769888340710664946884381470377320238624537529505304803348618550510511087063949968720857263176180908234385219932950524217134264527306298817404001189784377050598124427941191859083544637052646258514122545954889572854360026559472031502357059218543763261785326720701501629880818955877217742862833812003012976971613156678164994403435813359589572418949042339450420446269770609892675297897724803300675078844245594064822515377740157800500497851556599900480010904686413231402282928845795428372650266210498769630976413342272851818563474552668240821975493477714365151068652927874146272936799065210801129833118660574805277246039290372801811845779898589358572547514968904472487830639974488176611164798223884086536584598745967718655173292455938116245713080537370847029158905184400768887630374647475363384091253252475157589969949165913554906303138570208529080819426774790820845827265344286534098031318303000189368220281996725376528527791192083807315327612445944547353861361793442449086573078218296895770339491210290908052433863700257394003352946107526554780256471711018006619570666329173281857843188797143462074741077690734786279585670430185439840876067015862124147998134901032918641743616619163265063914821074816707114454498573903634840211139760414650383947707077881332446440240373013474259969855068560155696952168286775657822079867329291806824382365941962511608774256726576643441227491884712888736755010974423292628703203329720724217532570157792706261146244777348028456634083635314539146030194248974516295282618761483512746926566511468409719437145783755900703532997294113399258476814779216677495636764379609675612185761490516603076423568146929516147801781074293539742798183890587488283436854155281777967276976238740874000584682636248270275748564093959468536587695867501401414457804134826793744482894871296896548824016212488979057856656498833374197666002601140294224682791779498477956248818661023586131937184148970355758993322117288168158929445048303565937371649893501748198555084939629006100060835865840484300997339572476303353909286880820966173853777198602074499259628927697890365205543584520286866065285596175977739690145493911066388642365623034184103560270441398105499211736658903172444385180940533896700843925573165032031810791580091462096169881412843210939259913162203590741119977651652693004289627135928618847022895884150915301472260000395910853725084607076018810772985591979335319902612885638801379800274229233267009666428412228533346246025533746685290309401735545431360071645270578703076986599001186298139338897501330686336954536838274363691321577640243958979158604759218144251873040618290423187830731322344609156890574294460706506263452767666066841606764120324489816282456331366813658677311195783664628908373712126747843872660757128166744456541234210018991000971688673233306168001680946344332736796869879105550378255556678359932234613289590396751689253243145806926406059879297568003383307711347855549610128060225713141655978081397734551337694999582680857258266897079444074334476461932952922785961820593316551749345490251307333115579200375395812032958218890717698842203675758827781261758264820906992908662210164887969912675381421086153237615639883016731019741383588770532256265369638334296856295645236242936416574137552689973898473981920982353251375261752962618847421093490021936529577319876396112045958092816846223603221913907128131876328779510205320333859867087988750476082689548584383732612605768416851712449529644707645522193428643895454179848751623893350021375225472169556029312988006975945449915056612581101395863737589651636113422064291737710001793436443030836116220319020649773279589769747529368991979402777987634511696544403414266939695605023174880272271493209997676819740551506940178921430200780680128894926373588649652059495875176259470232742370105638321012809846156874972964266871361303453594970194402648177770811676696539830451057064529207777974673796126913279724787976062941673115614625834278117657236752964886154915642759027572811840486573743606654393613389268376137932308699981438072578904886893918778353520649572821079333206554423155992014383100485849143145349018156570927092274241954034505815841574657008716768737949288468285343552489601863258798884565461067728313788894198387914447450168324602367216197916901022829511815474613637515812172545032195357424696781112113219075693983245063509780473445372756220326885457001965996098365182259068452312029765188389367023687483620426686949810268236226534042183746577951989728858031690189019636292837754637366165520634366207138205253288426714470473112147121446469732119028580338478741712775200516000615707193691675830624622857022926484297113607814250073800066537815525015830360187955533037029968498795656278743067420361452471283193550511698864474845171650530520800971002763034906434373669732985299218276008806122976059091114790337103183416451371681217929329371928528672967372287598882797869409114112389845112188218357752657659210041771687872012881364804364397778392905939818446167511681364202277220724658352845332115866615571426319956500027614927969460262015234667869133693588992301379703926230951625650522441094618872572363629502925457933700134892871828904483502146516850903263818731442576401419800276775815081348405559763355376655483516064442851924918211781926638531432572689278926951209411894698708329223230070025898717846623638903062973188368820201163361209479285095262163039171880065119752985700238914974831181610303007349707094581169674148837978510388157406613915842349713292428032941383790490298536046276980784971116931693191438305466297525260060208486039457258262886317751938379348244193880685764738204157627563685331620547394384669859443995243383627480981630719318336341763729809422122856762801986481856263033971006858516352269422705543913999988928453859947376209401804133214896623813978251839968857627011641077149486471086330707970023142816665956630558304427575316647570275294987743008311838966377936564689265311283902153232521390002333690291495180232017477241287405627891293777735854661992373222417419693317038874061934908793321421562350356413342142454553638968329052478442797647718386820778988524293752780281417835718740144742399502812303698933496935179361536399235458960719385214049978910948406150041050804491038033798007067660066904643640290181266684575609417736339059959107493503566466459485871284177624598439748073176996303928220572540346172512850551685432192083005932709396136996544593737713706676452214488793068679307411874407839131483550952130255333150499418192436725930150486847876949368505197630523980381669792437363532884136547983753514354228347930094639961668160580146986464621249215440577194302457698901318115560119956572051273313636405678362096998254197164101501332666863457458714352894228105608639302275978804636844796936051267278405940349557498316684535556814593947486873205848231274149399204360231592378755568003444425990338561828740394871989462292337321185502427237760093334208327047102610017206719682323643633781645033454675854535325079636196991306425990159551276416470082025057907314602839195457800241824490022487184853224039519370811139840762181604370948940801835325113902709482148938675622457810190734758233936253948465010691821698395659745097977589977581428560673688342520073389693191857692869437327645788349589482507263381260862266835775324628204491684743233672932806281598140443248842011660492551221002804951096157465165607094049078413198190087849996782708798661592388050606642937278954188473358922035111991236030796766574813699569934844181246270139659240687637130248363851820680835463174811383026995653154927167842338057649106298290886613352533476897067535060447362293955323011310668723245946846363545673187077051001442918185341605891368626241378899309263387414397115865882970286829483058501920638614197371120655271335352909952111212393189116910145705385388602327910078367701122593460808840933638079359494179844446391032599361342849942493642932615911496330042587092142765119826786759181681911112942283051087012036386688539945225522709772633717353750799587490495209644927105957476553289879735625830229156934465273865483895307078982747095825127557924152396716264685591975309205107409317550190009673783824518559300882721575162435892024317464093368835650844466012192446109386757814741265635626475162030173120970000491567304087025908564402217828179714477524081821058597466354663707579645771582512381397225752638910242959834542306694169665346715310917098354479852466059202044635632158963997961496075245857756022113491884617705232027036489070146757307152625755393887805630432075184574269524595857556962872553482087280360815904539844220546282480484770356708418571196516109928042821372185372565063627501608237149222175290885014636064590580227333644438166627701654941211076085281396761233541292378263846725475285955084010039582625400435126819835515345733629280553515673168620552089732173649784896684744885541973121548677991723420922215078058474391235332926092387057921669754278111224751193276210232192074264820277861334187868075247670434897851620674985556426051046530445828996844651253672445128252264049037516703117336404807502849902634980887444414134583723078985144927732898587223982877394476195859526936785603941369991382964825493446683874275056415108290557476767704036342814497539763519780005704761662714575406042785296508890743484350836177227543749967419534382652342971461787183196468473799585046361618163428058888245989207678959614983947292565915561868601941149988414648059967150341739945235116074221470888860199920093103410542426788124692552992739651131546388515008109525643081928235514829805649890304484432326416490955448302556962517714544949655214316314660092284900191521282907149141401296171105306224230755691673713602398409286443712492509121900405360030108747201862060695316528621499060598144455706050065319454344875808924358197085684825372170538084931636279996605915068792589875349234735862561427962122723202698975153409865461239342624061534959550882935022500276291400407670194970899493886204793882735519919611770645857475299324958144277133562823624906374822486171979881062583405305997948629141687077288857407929211331629792404039345921550373970111619973344765488358939590309120072030673125818682485161524834664067802216669859821824181115590207682012933974690543626191966665640755380396195523958710771460574530025612460172570828035244171589951004889816108087405565575409537534681939134777629529483725926737742682491288824162743212443247141072668573708859639545472224702068000291058245165944759288844620203468229111854829898670959622246848696536547977489347415257556681707554719943357685136066635045383830911207104778958981171907235342991809556097242234790280137803955120485910955337077610356378675827641219076575678666734003091326627977485730856270255384803948739579754251852731686224326641519196536993058263943201283837475130073282094471601877907981912592408948369632059601187535951732082423513738575215082665538775047290519214824225255992263705704439876652912350832219030085320362898801904024380023002407472430909032415256642758672324455208259415269401630875148115243569590057982798040663074297255335137367959641756875036944065313928258904231863467177224272652510335288631540980199686027394133618760037732983485068047217836409526178194051493588783599735394420470258299198336269151989056140362058959077851328611267527643851748765597069272509913650274931556957560094572634975294321682895512109425376633954391951518298964123902206413256545059104606512257745415127213455598264591424922285924159513692509510784027577120185999628773046973927976699978002326057558980708329536034519144635576511652756752565723142546409489856019582834231467240367396669537444859227604484806013089685953695428041598395854222451737855512070508818539468642238693332288138395422336647145709546487576814507808326186382673908587493530101016620093090912372961914210363557943576969268914287665034476421578640483056494708164145261159571714354674826375118085095233102256766001479988778416842593824843143556905499901518852861819097364934666931922562122984317319511391595871308288130479362595212492662007827896948759759323783177906554633519142862724545489907985910673604460179121984671421107114764571241458156799252171148565597948814785980295612960482682743393121167244870861029352195285983133905219354713297572282560633308737363724053950107034920965551133235395005437409601049026037994118924467853976364843870842827753429812360890042969125098704348507062137822206294343235422578878020626350250757498547940592766459484827800084112367422452463473083051060843330588294164178224494600260987518072626401913328963544575818069968984222997396629152950570359401068534801726960967205326888941670894138734119303629211668491760848711202711094575122456871847814141270898284476820880811305826484353106349039526423762967496311401840475146818928491314009850397111375354670378320137825176342250243414558191971457840816074966230477851402938876240699177645171425421037853554640501167828835150978624128554059851008884079310378829126460995601580020894405561752710813291475791847028559512200657925732611914485078266678333470752413918177703046482426148426207981905023170612160987905620557306722948778250800753366928242037580922894752399731948138386982763308199703931664115720630556729377638594183628539193586749365780087956554913737303873461653347188642478321100616949271672918559112855293045130378832046305559475131879132300083925758562862881221201685528873254036798306423361734905291789373365653945413742897312800215574096273397156297247216091417333344228052636210742291915764171563298561647810924478627493619453827279354566527169450285785103085518154522982750357649504915940838669509570547213932886055839277115418754082819146315104357757988300215715082311495842673344481026474766750623236581013135575396297048448104683195235993092829691240313215420507871937304417035801097262471202419068161171689102266728377329181111745468188607679215822940829301055299923202326339678611047096531092017167159924848043948321952598233886078551646840304001010857454727597648550250293578038412123515361861778396930610024005177822452357651686374212103821999681015275100942551799582141397714644338951626763877746674522601592190844264149294861376896910149903531570448039040161786265421914080745836695926858490559428407115906614384034079653099982442734769308045181399428330747557393324366681271067458668464485665200762749419486917891053653453676775069238343652666866629816568077884304496561771945100890402913129873118631777511072812320672282534956796794818938878506151594090081829881867780103278874269547814307928547335363733144728758903692402209977823204477881014499358114579610906472382980301235375220511981318173722180159568439302693202943910301879215826235170875520683325603770553088980535128248953674334913466660702419717714762679761997104195357409922883477929313803042356652379208382775215483527619516704597505887301406767198204909625452935557045984252640989130742019022569672436742940038423118367114295995103743572030543659982679565267800812625025895486635431745072341703969318728427513107394562232356138907752082932571444856429642357814507892104657535275068802675494054353376543039428919984496692552215450831060710072470932164636030695785571378367602536362211826298373012286474970507174628194952792879950464030386421275253009993678406186425140121299260928513088006164453914118421848018871415608499875460399997909063907212695160421909631179688806553871126022173630324567912983644873326179382496406935355731668855293647264244658357061703589009833596859137295528671521127132328347998753634220702234519681701085019266923323099735317644254487828842504820157258966847860452424496384903143083846897867996640120764172051010677568655886758837210739430462081682033705955778049852086165069038277883352125268869151535995958545283364925146146032755560279841425234496113251563052320888220237588055382700597218959041211096422010531181673127508805524418209608920631526716381543305184617825785239978119425879106737806356978316325222732828184008452903032540091545585638050160881802346762437578093968623133212398200346355246871640097591783262875856364771588587314577992373847947076972850882043864436004443688240012518053608141712646642179559991850470914141828954218773697562134299429155874389009130878211867770197729776598820491165765166639980591853881418874156536602711658671856005134991159898083931134591913055991008848670742279036486626767014129009920442795770437371454555868590722195934623573482360377989484104662876408202023709171485911180268408229469267278240579536699480812264354261957295377835143613426791326438531347910848739052049462131796397841830796242606379312773817316540782828179163978673453130836775187150763466152586628726006416704119858549208379502420000461418289199361690960168324798718128333355994828769540264313768824972668231384301151396217341195973798749718650885188210384092571785809871585049410704815510371129036610136837447058662609167054613698842847405351202197548029481021763165826887880195077290119509094684202156870725997612270755635799174754529516944682459461289388871556719729780861178368461473040459101320750861388916790247916574769976255827427472726908314442857441098476372369960240439834857230649092271679926488952327061128505900419403918869169277952367802909762245015143721221047834449026938495383249393151475051898345723119496774216560964056602725005044814320234723346361350454131404819581454048043219800813319760630139093128885089603507226613817897237216564254814165065653896347636273437337761894907510933388346319586529103461204422637816375172429634255301266098725927073871467618106798069190569816833482733644917229335983974458335048244572980219252575871561095975790786183557321173262850628154852219514045294449114150227048524821523024539350097926194752297054643666309567157658763234268402844367623077780242377082791728127144232083688368377613820501728478087848611055323192607308498155149322185324336262534351656955595406055101001322438040767166592527710949891784148122484671346266899222730683136675107338730344599924714049739902887143568861722729009403115991245621062602710330062605632867720365458983543196022185927407099820163183021835225680645032566549079350214612671354627054286574371904331649721344894197476925202972862405219581230778708984290467892815415187576670989363122628582767215842495891709324919321210632933193868900217784576532205696583733469796409398206342661605252030205878145486768434267188101340237571677099930785559645736501038829763488506537264299554059009745511288095321181707422196376399055069625105706557563173165909829891749893184014775913958128200460099951917339771884421051406869116805757113243273128044331349139488363973022714339370524988529359565919571110846740445281713830744367778005192999664993037457227688668216212919743600888492016415326955740775844372442314754205532041497444168643211809024826594897166316606003965211034692496926906565118030110323406340389501345520673844148695725094611612514585794589833479811617965722935159095068265524740747988634101330879890838265900420263230455000239803447488905714163934109205340401451156387190844559656925336858112190856249429019286944220008159287943373217002973217388065099200353430696238538464040901500586918514662485610672323838234019134639248214694002754270505120588735833304435016472595496529751430415467064803777634022880808548300720263526358844254067444434581756966418535527123687139280585263733221050377709957812545780251803819686636455214307283389539017453501144304455863420519004441479994145621827401871589710946586799272726492573715174051395523443698605435362120171213230795841173626660586767083663882833087488790678618015703949084460525807318675173001650413302285519526485072789660945745083197633866647854632762129939611013908563998408209350422652744425031152070738769859727274025425971099074414231830059831446874783756329172696254260952076538828604597239325568014151230644862312741057926837811894847419848568712292048869168805054867338320056932557248930950076075680200068893033450867329597014158431395891207003550030030935958738806409944390577388184409922661360018362586925467213673746505737661539913736768169304100907658311122961385959782349842244397595227833219925341042884824739994099802801042797184884748649883187431047971470619022098973303686714633887027956102203612432484898516147680010437503140373614542375263433818176439429777521106854418027526159820372472690209905574756272964746274521382739798159383413066496235360231907402009538739157624878456814018297686784448576945403188249805769536668429814016488489651535573162913455963578148445361861185673499814339657719142868281227879785252280806004929655178446711631366272973441350298253136812619043838469132536858266312056249697159521221474146782791384734389441132731281974404975388662187261499751469934586806170581625262240916314719471898694415322062104101582314798651110254056117085315499257844683973269820839121260409298965034706976393803704338563908102632740259281001010396366017844721041577453497189047464171573188846818903336813693270765430476431686512901676184426416151604560755931847805558459813468194104144424733140712038495968808775288375401229217369386727058272101211426979758431250499088178161993268334326893185628898709982929546166489146402307353779160893494816951289604290162501839160075219111863885557501140547620834399329598153374344287546304628549341982973365046928970617243408021111978617098384155305715043113521984832676657101071136521438710143407659086550049107748192077229126043392609795067201622733180324689729128198963293367254941408698803146733414110667037391789837146214618613032327412562046023449401010207042286508282079442168515509138568821802466646691498790481041654691049164207879656598402542066348431361942336172560578460362257315009584581835662559690637630531232551487152290728210593140268517819747458422799281958919467740099772892289826778143024524735108865526601410051446285374467577657964186764103988507459796003424624783896604683627023933911280031459669082608644002999969957355057990116564182945044125238252161794264978259380503835594497864444661406507542933833815313047910231462679362989858942558140644953287544653043811069688972337750511051450520645345824425700226700721811711981983520142989495832879956809354928573835572187090832876591955008519621625377749626131375584930791059428185152281851587824694909879941772009701683836905686556772368448720927863584168012414523885555623703122138390289055973515742551843001194502657548183794406740032923318982374387719731490470282213441598809807899409950601921092448397354909721734171759718882599823881148138263939337827631068604609683794230508204178746929302982667347197006431955489794025674953422080696645225182461950395314090010994951139696680590078372059523916328253768443406985248582739348619094770297884584962993569825313805306366419875423041235288426999778214507787171315924194670194549618010211207183850670084564757756300625232170352304667027543350333744969699577937229766529958702080724114467726460953415767584666615607072692635402645432982875905937369783650820083886704023559510093808593989169019376704661323241211380927142692715853964777986847544109201313855418045413734600523522576431690160159269196411914743862559809301537309875618479005238918212537828932766071985492153719741945803430188760560305320916261453425243764996679860986407659835661475171121533037445814110191185853183784175908548552367778501777954707311474563294027983278195852510956423428393537003597224021672744643477443083891538065747235514086487802124157975893902900823446629477922181420305925539076865263094429277605380554614893698315622932285659996185654586007129385822109388361216937396616713966596437379191366253276236890504945508187803863434542424940332724902485055032948832184032437313921111602808670557874745663564671413600823304544368557014502649781169401795607092254024137066045429769716097946914303307759799673331142653603831588660168369651219340248928267310827526900249395270906706399010379489896124238171513041255572785827728625182921286367083068548728183289984514967915396922262289670422006683949817386186913323773525936313259489426451754146226822464225811407090088107477782289290995807595235428191521840291320406994886610274499061355414692124875395259025476250829421710555687476037374874811880622279679203675705474061302324768758727398445172388334726980758118351915094024893256130251258021838881408675728601521837549680823205363320541977474669880505350789235875041964197348115316646204537276694550580598215847651215945764825869003250976961077526578492581743764820470647796742776733898897381803898408677149895454456359683415076004415904294859037556809681482241514187969469834459208377283070527638579220197921353797471633099224454529663745645268150011228014494270010693074679799947989055948152537660072303735057276568361718858802561844335822164270764922902036052728358453519185522418740368942369759534881457435671937036681167250467287405307949783792945950187674772823124794279106472120175218215738426588387962021727639068262852558032446535157320125501172489622564327317005409981797504315868522642760873410707509268639310804643478427746081749797456428822907385088529386383409535677693632478895356793895179650831070061044458037044475194938510657046654886107226496763423071097597661152569353642533619869255426137088857142339715915029043940969411235106401764080554076677341314957913970082111993244933877646073789294540582275549999938478711911050232292838273623287195635638131673136551742614415593261699902548625330699974229350252414727132031432352344328436873071535403643792882231352961786815564875733364999957064826652325002539381596966148532249350564575081021845735053543213594862624034601160193904655249043382571427819680082409202038746710944095339397765050765171702195035637782518837011935710746196309572724793642629967851458816233111678265123259680179573369914552305805315184023532908098285084288258097807233620693607143069299344061727464748619751953389699330372207935565851873484372737373337101811530967442850282608758072705002924421854612397257513167549685948343624143797563360307007963225110167084944423106242881921827426553667489738938580610118034925889543108279303178539852488486073921965745473911050980798602904987181033045041975926111284276305527642631285140056568669809967143027498236177469423228231451761571124819575578099305510962431124653977785912023689046076615453343622038634390123880360676336502391068771738793283875423520549467001429027352077913536346417811190306620995472188851665580163529874364632167250563370311685034624600892406026103543700794815390447704142655407164916737163757304888892506974283805054708074943623517423406253534551131409493532477281766751117897979056567165081361637124260132675423131845963908245596831696524412075157766326347482705256596733569186000035905384513627847789004866323952152642714132284297780005675357721534555837652444696657018459105114563415219690359380353878892668585151250637404883634474182253920429665060851965824480765614598481404108047089228554657042207905380511503946958188801100534709985639197537498500939955111953614510482851527502138926684201781282751107299590022428820054549104453744100955923949134184639671071372167540435474007979748506127428089236564480131906667066404059476715802092745711866216181106278206000849655712687459346846993899258204106659214216400049207318511347948141816550222822867154733814574350518642830564771326583604804034752963932141740247254527223860433254605138123547668810787467466532843432197419593328136635259398295191173418246371858557785112048849726171686034244040674968733914008879388160025695541428426653789198831152374172374353151462285749381469554171774163581105973893072391901929716099869308864099915517369562756422916850473039033862051194858841154832691726301559840800937034282000143141424110679541781404604964724260554093644418598381150595096382991035724568977299086761294479635995753023307582800308129792290598550619044098213091598042420321347364638175064776902805011655764517066223723711681792053498660947568267144130192346934306141695559310824247469017058792275386315382386351851782425809082316112157683169826552490551008556719810142095383738945355908781720555272641977631764852224894086450602295343762558708306583703008486907403045181144947519392782416858915577293361427680460454439337428603387381074458017422473340408208402300206974211881620710675702566076274292807468872062300521429845947849523724798613281485713260147865868602311950178329221228136432303831618802530880474717787853335603296350414286553027874391359487168503291227642078792060509439978388161885033112866038522913750108189639286015128216579082411771749978389986066663519924492359226449940951019306522111432389604581018865004556975455157504811398693668721071263219828898699334591784902406745163988358513489901154120396762412397805664958656995597208526499973051033106360541387545146564855588155788184740875860043530070992136295542426808042514705488354476722627029205286981938178470235334827521845395984940765026944593274088594389879319798199700497661314273551931386054158760467889304269346961853014074455678149539618990166367626674569311923554900060340114612860600754936285375453873403524765241236934637335888830204124313615180835504068543534817167771993675572184637618328068429820987683772752385826601793185862946490900501147293874656306253646079234760188282408214634239123581456454699241558975783054976391564192324790348441581048111761003211800305862133794795614909174949907515647811083132812610009210769352475120774023259311284763075826220213128406293809332288829802734409288886035245270316922060535115147780438108487310437919207777549586689306532650235685722871061385200195108531985519305305173664760121412579812634010519379720646598457508385341451801989936202573405421009594031522174318641499646357678524073121381325054731320450584962297496183399223066103495530633676352715634483650395222005115178639296800116280907919434511134242945571052074958229774185796576366015922748683463137998889788272147160624006899428041889279047709396459943876067351850761820680260410424561012992291207346285131271984494882741911832968766908708760856588852960360816293543821391448486923041174249840618409297876724887250273260692290131631006525254479575858192444127139796373897422432150115987927757878907464738918460815803911747738211232713810092757188723715418006052459317596984614220482718262845802957552573004507478597121524593135173592884423357858036166705270585614831436797221042102232308106327603501737191851875224606527169139359853113387919659760335821357213565940891993422140920167293682232909691618160453277172982203789890949294725724277209673940877381558166544996762030130075633161121494387525570168018296227060800893539273519141845884060240260695375687323257463304493273332205140754874489988019812362535631781795944286568019877124188812532876726924577943026131184747560146299884331143740471640458480432830637049059520388409815734988423014704086480653204552353638307734042948717096427150747955063067998457794904044053619411128723354548166010608108551072863232820267564066812752964864875968314575327921405912384529278842204371221661713829582035114806992469605650501452247590247521969965515666148198973463035887678155487045818381880412674716840244754105160825867747996655553691650136306809937630556345226525028517775780283506585753134184909874913514520866763237747375651923127104004539480000120522354215937826086479807959328113098039029392568195984916518000091868406501909892303040390695934621562225144397456103919582789639998134593384798816109175050616120418206845207915865310638678253583118925414709880047920501833068713734931310263743740522423994436819329321102586133061253312164107704675491128652657990343222414437675018083036286614571335548834595063473063778111072030491127594492248134677114086484929241540356955506076707598832248742772508906124516813880835123619628539731075946370703047512755282645600772806783346461671209949693609759395718042572882305399973509633920830935194854592742756368892326309170353705341483682709515234824647007501027307205781920468722400628626813997979216134404094542128537083752509323364854848726352137707319784029792758966895358021380120101580784488582216540358320702483705450576436567250747075769277147293604712624879843706573926283128743611864318543465666807988800966697132291919826779799301172273059982646944840670864633342451409260398871727333619020169893154756717794565796876024621233774841222915197799998785281511377419715712199741612429196756726868183592575939282793282287555140134852208514565822641085722124450276197535231222171876348254687830678495838532945354919223115489446122565687561114590162283797022724052246204918326009508630962065674602941602375780240126206467583842241760986196758127992805479722482939601413886482588962368370923056048786791444036491219367137542008553152921758055459626019400377093099407601857923698428563206850326465525701030328318309958046824748950438956242162479457803468600322737290465348999895923172525064434812775307661743666490063926534664127926298680482135147698074030992733414784481058202969920656363574665110290850945423806035086526881593356091216080262827603987350870550417998326939522868516075638556544272275741198213670469849084850765281078203752342404632822717779101918883055358759225928569294872422885282606142092853327431054365906473359737640058290112141388454312363177259263435125095952655353148584553034481625135983612999188748994778355254809463522567476803687998923610933680160816749818792545746486033595794838288711928852855908640355227296379552147226773228835619302770764384143854461031746031164757407687849421699909957626534423366873914497061710473955638988038711328378467031939983525050636030246186477766463741851438869692536895749790923876953012974005444245314972603802511477110003970582464668150028386026663086170368840268139900944731173390425318719549837561496673932815629732618720039455712769970553582979256567502637840073047527384244695686122292645850702821906913063380476438757305759388901060891453089284623529651920981088790474370219471310203271983911099788210836925941599995682840366493810637768087386130009950123396424222159252540274792738834161835938617318901005021678803801840221327606577459692065228818261609972869349504305550931687957364563846336065694799523470254748804645519019261643463116646389218277701617727359677648905003943686745260845413270328906228248678722767165624761466096276048517155127807747305436016445546906887197504165569912250641694823362958559724638505141778129803678436289298565722170833836564052018354459729710490261081445150215187116328655041352587870177217892428379274479237731042205383236592708438499602445694548482367676792049669950517934528478440133827510985025471601980141686060952379668088792869674465474641513819002241611214677276009213146276187145385179636417691046819947355728826379750668777445000098911378049497745702960667863364541943875520561115458067256256835077946803195623975372883499155981409212355501321060094207767384321675907247146190616099590351251209023037915803278343132240378590264271108979950426389561929389132945950018394612290721792347075737523871805170660949324357106618986820124929029625626542485017049278367565229614454117132818199423417720223244347491654699103633261211918333319174426735945852959533106482639543352938741406908504550146408985846818936883958242853657115134971553194020183976969616587051950748057615558671658032767311355872004087039885425511575444668274522044285915019010630264122387551619522336995219338519107273186965687692851571710898787126257921336769659919072902954582678501641694601054440450451607776642541397709719562366421756893551602419207087828696828731702852718144376709224604056740620819286484690874371924042210140138906942947274088822378316503655366317089991970586908192122166766793796373155891955666464426441756983933269864019508868414472521475726110451389523884431634129812156134873488466088266082057923945589059107512477984884612698341819002157268787255065353400094107976926965850088135659829504662976535026580356184734918940635216934609089390956004002203386618929319455802659960011669518293325214155002872848470871092267658345651539514103917491082272016630820388822456447272677210529712155913071363752429655201967542768064390876505201628234327935201684126709891501693845743276793742588358761557202944205642014000700730626485361035286098071887260317955612238280044792956188135395663446488918718758233493573430244757641379871965162552702415443558366346740355662781467508711899806225920750214773251289201397735786711855355130535260245470517395372902176124357555116519506016965004404251049424221639963296014568000806410611886303645419350707117599005986806032095139965922309248071802919114269646527874079475369623687305491918656478770187155391503917708318949577435798925245485013263394484689468281651878050714240014081184946546738326180598085822997457556707685259474168922397214544542334059775130366295377511706639832515535421953324064527139563714097143375249309088455468706955738190137452042033282787699597299796439768288819400815597355366722592970364212264491535340711110458127083503532119514379457114931703922258144454483995393141872754037228019153570246127436327426531781109471517705176222140337408163934325726532297452996312669650660543522884687780450136283844994796049372598416162842356480304583704155895335387865455477934949011055025641207804655519561056583975177609754858470918257373194909791908163428730319013052428812348495881542965888088508453494906516402725479804567626649193803709738592057438109776855476502766429701874768145944779485162527822696098303261387164158607661791545890613685782158055708704297694035099204701056798643489039695562771485879104715264525739889989843813830443765042236775750051315079079032352268115444278684195904882261854720334326109470064440264802506036677081456961063773682925287566374833992672570844946654622954309852075158977614262619470877898395970012866030475258855579017634957379191518485353768374076317685296884438101411332342321772017546804596351583433122772633531876496846959052648473782393526435056460661495928584447787654133610005056285374571572972097528968918046689061388424953839618803795363203716928905297285113090571969368614662292458489295844871931882992189091440726848727473464389073399965466809774862883975151926585471497892328923778202328339297271911068249854323533519999331583732649466522095885234932041399432586223326486495346635146786494320044884776034517810941835193665785903280463715379040143147851752974472288548389892364738225741736663768958288949121879777910656911459718030111221837171739441793350187443728553015351489846467806664040408706704708781850048384699406171694186784952597471746549414736315379300782805339137339270503034304557491622149144312873141116500496160110166405171914225882136656525665893184280516481372702206350505821511641170090407951314256100073385923576286663746483125106080131830739190221968142039389229169579200389683808840791232289535072237547783634348097969099080144039238315179859426976210181725280077820554746289738323292676658584533351647016901747638819790380030605592608713866951788127727103491624069940309064762881948725944136083772619644655273812066533345587536099327710982751664012329090258911878848220929165539099127702561566581539618697288140767553950076222688279711293818656792004130762485872044743654404462657475291175989602422756853344549208149576615894027622989708014097362027563191197739009125055043622232916149967361524704121941147010789735810310071982744344473969214824081842970483963287869542606338678961392737161944793090064870121177708661194873166507839402567973689746558952074168609884872493176435434040937424065306423327403160509899673861665366249165376454594270268518176333584700457233912078485211413304449970874502814471195401998478807831171619282134611614448193484975221151549533387674461938222369788728622021092462651366492824150369734115709090831179812095208443892480211709271695536731906888013023476464791408248111619692947361484236305019575525184653763380079886644249739447352663900598998184344895822839962634669145873142282283642725372488341148494972826092625739121710298894899084698044754337542793880526601247103864349258047789540367516953244629645083265823759673808606167639844615446050163016877077471380946433389075332422615645846628989551448306138849559268049886673691140351749363747159067576476071454081282114602758459076175796247082877203404766922284849751414930210001703542811768241304575788701765189947456630676115079799162915058608751608945277509064258571433736990293896783128257341463417379358054952313074891327622016881468040365073192143251935890932193282870885179659895875366829003926350862922867015655780169325093017875755981777892940871186300627519049481353533303607791959720093181892731828655030483423052444363649528112062926404860693565875193129477498404784269200799984768385147961856381546494944585446083257551422108625061655924511146385016317232219579197747144412096643611986483397484450591492313018161662851184117105519346900200189125410733002124338194717337959222024795420343217644943630951473980648938096939972823338141564484035719461903710467875963513427081160180540755176566528665154873671996754578292396910875852383206888602977731749666739039049356408083034620092891266170902115583994088649770967762299485437689640593139075532311268961589317058188055868797571218257133600131437111665473258202685550219098730960360507929917923910130928263361823883734655139496626080340138559771168308036200906716201317755359848745268948812985021047714706986333445330311428465086993555980569991134897526264405730336402059748766802295492535814934545247954216306632042699431525564178768846545919044722062204947675131191079525962467477773872946992413850033194634472950886984950080910723620883511786809100605781534166216261260875402021428285755097179739130834550168343647428669832200731618979585421085626029419242889980401025046713065804193534289936043471372042202366719786604873253848929248124448885351241734715598934922301184259489578404778386700041166850721953625760540649702324844304294986689744913102319857959130312039479793409629104140728904910941126647407303626747507046449469819282480466399972458977339322996576509738114073208238042670431158090907107219161252051926687251263915846312238705245585114192174880298396885964901779434909553187432862018025156948607577621600604588173418327186705320765797875184620817572508246643551669855871615359045492249849342491334089562135070894852289639800208639792048290597717655071085496759938108264249208851138982596355172684902511814041359349909448808601430505221692697005755627803022900800875079159450998805938458084400676738915241669420194215359095805899560420266004071400941485067192619100321976937475807889018843976088041546618971928641290704604550633122676855468991784158021049829953514107537878171186565405822628112256024189497573363720480137356715124582736222327302891066952490089060327471314492517267045760888878601593762084021438398414923917924824443468266998542019588293816890190170491179221664449968411046257905878731400435567187249112134824824355520308521511035313167054070201019243348495863101322043029169098655094136997374063224102135096357469757710956221739157674349687508335048217579366900348451272430229456884351638102023609303384203301805219081711867491923979159658410688508780067790337415374384496525779829982167033721049186144377377130626832186479681070355430680143586489649385688212387086827589866504127527087717415438177967310168867598018021427424795703405731275982756810136483087667864201677848496230123304552897322982478597999438474554963403844332308894733582663654859161234659714204639340831008259773734406704111643695195565286282852697928006050301047559633995925643920487276481480452383587560645640853733095451712096820350767744818698408818012246915172207370285958877751645174966683750868538057368871683760891570831488200881031286914864479078814305526468315327290662563611432278913705437489668807088002712065380688047401186533925302086007382337793907279676625785656004859022429114794108856681521349215315721231492396619370971874078916361902712534357557084482275075271001040434994841351415729459918602324535860040614199687619637914995205331956969020508012009807052599671021506364613150167025210440970336424128022871379112049329190512091618498007949112716687209693437441104989125963152259403559182242135709931848457596797231432715203691285017037159457651810958036475311867448040460029064557391909171745292046719704307397971856328609350215610100136100021425665712227233394281804868558867337278739805026034272597599502102820522785379839312337087056440630949733290314624567405207997529378985561390433146942019450578790037713077783148167936550382287616332117932100808276670443494647917041441995404667892694171800606212240814991426520490685532599155465273949792627607787812444796096692120073972971239114951311762371857054326137289585889790542253051358450101981196821464135073266597561092402989008477953982989445053111628899568688325797539711037937550560742095205215990102982421492027068057191617146280136041962211345444285428798918899859492485760926626895029623941350781452758935063167671731925158005376358421973890248227118920572546188495371537282552334037266006603152765249848231873765412388132429921937431797277515992543990872924909339511314268636901846688981535976500555626993670996705211566090424133124000836979757498581436772915982119722677285910795751415757409688203752292711106500137049252601855992038473887228192934370185565468408219908709439472276737347403805928712679381971997177899137972796598826104577878664779341376854516787057829665704107486755223319749284986467000368995547167221109538702245698559331164636106227564454013496014776672614852210726227914186159562649652493931027474701589798362698670886304938918509765887808466679407637445058085290540072650808292452218439420734516682813824634845761719883258670089531058338646982558979825180706372916398614755410012284286089554501538950383484176177030787201390215765393809698862811556311195192567013316733989889462906938022414933277043679667602633464445393167704646129002461145459614049086107057598282739775262949209311151699991630846144767951627653399924374950472278275952263623174740538903792157344057146762867355133997613553137841868638994772586419047124053904313660949993967202392973654382157115600527544236173254077804366405722474718016946878691836359628794333590187722494549077811813975040747547104778245071901603789298229663556228174644431655865377500174709882930329136114734568923455183982853151783993382383510120016268069147609426173562689405222833540631468029762667521514484421155880935265676687554303461408702180316793674244055033554991496206381003037169185435998930909954977006997970905338137226664749602188914071323393179225928106630413661241069864542543947396790871974546504437261633390103213781494830872074671515753826971086836270074392333558998683589910309789226410827249858037595936729172126977954487165256554354479962568224115533072965299592944653557046313276847247789063097039870649245857299473522454717960999000654916803293919610084596258389741678553567852601622914888902678108403914712467865800383262332916346407008140048224498184441011206109818237345996794679743601434759069096430825611657443867681891012003647478969717376949205264662897225859464468044388992630740501615243144663165728181061826724319911959580487424403900937464493530141803333369028591727058786058413277986107623313547676853408781145988430800860177530535349221892676423069021116566922560865211459465296725563975268199255472135530426396639162311708871167941643492486333033108405856250618027741383482376850608174219794095008993895604050025251117721250627964428077789030318399675535875855389022620815154870037707470336419184230866916380365567202477990230936047272904665513789115073907492975918810518591519673766628654698614710085018399133673371465111270016439567679890159187464767088412575458065179331464337032508241600786946649048763035768575180044688672224091994091628832106373740171197309100504917239750810236379044537396842544988506308483422889359474296152674850886386854054980633255571215786832916568883597618153207767680491755410407945933605157392669603741867643982189623612129817040268201904739111432763440221568367938097257023180795035082125167728187562637289664510972517025260458036394508518450927499578521980093020479645544044557434872424126853431373313942927626827487390011809728249810434675512761444102497781383451824880328901223830759108986424680024461413582401472984396172658984384931312961396511387629259824771085365667903694382510174387707115330031764988602067334152544869796306992284294859447124432984976720577032129220056413419735090321014777104389541619703945045111412950829472040495330768357042266317766778125420100476037038328718312166719846445113843578451226015774241187296282609571106897620269124740350905659894417913850986040901152301755311064758314009330293010873301036797182792585032317552522885987906177138607289796660272674752799617134641149587075619324672891959252110093952790768229587557674713848074892827717414197567379504241859864286917774369242923120084854510119032240661695405440659603727120468987987048475509824786151929292362727102103216638698008762076478324230108656096904420388171055556494602441169806156397284895375669723085197786980777231996442982310206629215470716729603158889202814107272324204068095890270106194572347533076631769839131947253565073374793466614001516706206144683755603417692142967936170232335260971528251552425563109163152061976050991748485326876164269570293127365665107103055505349823275992433553344412409345536903180480813848677679588220840060818376478526773781295678389584733058126906181473709126668972488052483734231895994357616485624251645732139187337811597881435802065340049205439212316142521575956893896391765419894526720570871783765077444867485064055582380508478533125159529670808661320411773800497024855225405243996582973369825342547067232915359880664104063735135495750528814666395785078768656735883104806803218434363591587205594468904864485840924302647080817821625756850517186403928661385928482901763565713561726587954798340314505160427066399610317309913586982788902278441893759749806871366887400165967220219886924576520611118468057866498941090569657461429926067181936871684300967523815964866833704119510583329337362997341131919983195952851478925071475706030242323582968982538412885967729961956316753046639233651762184105466117702731346325005151659997231564942177958072295453387571145336640683428586821737034954443559131324534529188623988906026821353527876932095581193591076792118709781680183879589001708606099536621944906290332794490518173192964614141202838151716292902053491448719645071830806563299810888325268778388027243461926890099574426678611355051012681550373984909570150077648828458350014934602059432639726958968232305745342913364368222782110452884073423329844822154486657710185217830544405642486264430989820955691296251229242117029399278654399921713204029121709321055526420766893158286278026928472916357416301100768349911795577118933203643983242385285992522065364347725220746079335896666515705333876859038541842656381063409249244165174178794541741450546663582101703842432636120260645414525183391260815891350858659964962152778468857345285023740583172558537583192970750364074745050972473685526958108331333277677269512164137215603766176366673595548317164055382360437277058542998454584659668224118173608077906954864741642840355062743765670269042258797878876398405009959680754155159784549858704912412519130901967606863591437129139641642015993247510953178545323310888463071459998973004188649830546459384532563507793509928824842755277006389338300902410524117268478547230198370864431939692446084469661512539940648084247789258401949010015678779780956749816217657288142729445950777672939863232564239027866284787328621705305105812779325317950177617028078016482952768145081157963388748549355203053982970766976342287078589448718422086563935842777200779839811042475228960553935657965570870151560339561702411942199511965012356181302747511261048876564086269179973534074113322266963411851626935381510216002453295650410774195563142974265673805990867082028101711821385804152285358315316972921813533543616558855860525082920986709718751176650820943920056177238489911147625091198843397423567668376805578559532854395433083593888349840429225611022849866089248668762903780555805351476597526755076807600905044153737613570325108926054495672120015294205706262014884329209953895284988639859011023142873162650808796943378100278744362615955045774648710174640711987983809317193739858927767487687494437470465068373671719548889420391560750956177458133662898095226825987693046405461480340948392045542880631996140648270850778947103560238733857018386840901500931062451476120390206862405194571483041180704188472018500007990263253123354108644888902538663141598423456559250626784978235789408812288363911195569489899033558789497383174892830738536195681621853354646636562212930485506823229702437110844793839385538039893552122438181219371442209001625818279658974701535379269848831308665631244803364922787506328976503314612863112721820111267491741822095722538746247679510926304382298650702696228950421369690987730809353025151071119713972478607277350270242064227813403285973177995672927664049724971191660075409316118043533900850651887526059761702721809435319184191875846214707500517873948951891421848834163852652949024336068844236497327811496466968091002179218719546453816240065831430900757203981631099626889242326048402296507927090690393792751770065089124886568519653523149305856418901521107459757559843341708335136504588573934413271868803099952323312141763072294629241181851374192051492719773934926413910205160220639977475815425022463942059127582321611746675980260887036973297875206607841412185669666090444090609758268624375210787197882068556205255834394537939105619457000806827059047751790538497274184795863427799749574483836145978131054807339853278983253546473605554698338966567093089124672852560257530827036592556545678648275233774881372094237017801512440720423427816863756969985858022757276865841176685247209732620331215896099464803639242350127169216331033682775637504758214816387856378239888750146841953744768202161683277317228498063080534739525754328461255605667262325363685654631903584005260103638084263203518659840469382808801241762602438985758962281286119270847419354642102459493742860284121549650700024789566077534856859342322572005998638995804033637694527695021817143051873381799203775951443830959517511371150171088013499501444628101558129997906364388002807615241019462902197841739149221229089526347531547281057646148684058856660387780510270664492025471097577872259061829930378293197073309525590522922091906259339668305132509457860524134314563100763651683339378341874938214500809028697634901553241742874862052412312202862197279756246291648549266125528719788491913497205277212571233496496348305042267589622809498444238449886061193504516438647852015216673445571919880653992142158924331960275744089651377998072298482007288224234643373274637700347423815480273511780721650791682791850003613855937432371893197952820410963218409075744826885037543698016454613701216494127447015933159524706702997742638526893365506080498819565403853714416245829129589646659263711378622834313034105663489086189812948195421297194882107059704821378891314061089511851119522236034007760381223087088471597860999068756049712108061304289160314993651874668172862291231225142138970317791120952830631703616007397461114480968330641549582417064575930906246401608260800827255779350166873333531495071759796483467401312899738981971221812449118691457165161398091327811516475542585656856636689328868004199576733720346287613631432289834351753728634427027416797912595103790771552473784873860992996606964402403503224829207003321182661645529397770145151572679665774446743903965826883684035370892714606556533720214133579188654779728403260322802782119480691219748551025934424458739972323916889199391602020779639604414204316721694865370814539147281869473949134142868427623452767049433752556998390067523708449359803892561985522748668196269119007383198765805309370285954759396785264306092727859188077270498796835120620457320499113620039020128002294747060833007689621139358306633017205204781759678197478520344403588009711804064009798905716357972433080299447635924603075307951999638383537716568660819841066133724782745534134943133069584900537610411170391177547467816880015548925327497506444026651852358884869623089172839937502602317522173913697112898482994638644954235733192141745883222705780835453740911986913144476002904367418383643199058286471979257599815722412334106037046229779079000058572187257177783954074597760970664926183407094465979796061300711862247312442769901184570726665846094597090573358262009923956125590024538373431764560072732554769564814270645233676455596164667137885122823712753148103856222131989208494364623682421757180312878934926984074915251298574451216314726003357176648915066929029509753677147063900302537428537333248411798989460796216640185528707290416918262171316167326859770757188268104773660938639209098028660133664565415139183456182818049013301948163624378363616673423347356583638982875646391635434630275658228610757116645560252734195501682027789274999478164430722274990122922183754132515268384065981124766433392463487626975251296098522820166009457613239465923623701389501813028728701741384594771256375649706289040546295475333060301863956365327800772981338562531467819756817753554438902768602659732348621402938783995722211275032316709368304004017359892735091473471700995480501687130110791109675623926174971588407679313133657405069125122020274097797442921330838906654882700215802578259441640025119711126191189174514643989045825562501234540880822374918627595230355532033566600841086183747924164097750063704078101297019160058238371569537349123175871412708841258028000696856772344257281481308044649841438615557569195676984601831891743988892512375140405331431598775672467906899631607526869145025178760823160384154500204529915514355296725786337106773371671324037109935570202933587527537240653683267060545753880923992887510746192516114256457699090963081617842676383470777822193307187597949317323480402040689520699336262071047935020548826437641088893324636745556200344180651878509659058550134257219451277556119723513542980432205007686033916010630768773093649059159869692277536791769121515912257109048857671514809798237001361199246475754604086280104213480980335739647074879553741818850720833105588799564415650958461749149115973686001260752700563287225377152844179241576436516273341574564558669592968259134912647483958785087124575937267868626139954919010435105999226756720702132072129835690593872752254735980917816571904975076405073079773258081217467902559479802647224058312621289887311115332843220898865234320545923687569369015062633379296019380631464592916541108684571927622617744109351971191109088972926950948178855104473906765546414420814765946879846235575110869403218573519774058054936778811664617968477433199134816202403349824947193319980919351236011251342010583529622494696656048941478067271867711174037060536789350636795134190027598661728550551237194041544614175836208681058420872330897268820942378990670629450856504654065675517957211384676727487165109400152682185566379269079410820131170300017871197731967424173504758990469512675511240626876346644740856216700008156281251503255455708569237234708061918955563168917135865201075489424308031064659108124621505419681832860929148641165868242767546823213447220372327925586609041014669333962662769554285117658708870915635260304091886602107820096904502509163642315810696372624349181669071212800102813744998042809223667828334333528660834439259372848906352970706064485605222090732452334605396442713276253455038283386404151434527824501343931803861050130478032052462418670728147643795811455148488848964031881844329343474884059957303947711382117711886785377757064279592207284592751745648777016729494025901101306638120358441658527478361474850021891726721058461942096475870268634254957621082937152926253405614662533071150000807478304210914010737967629302179255756876823521633385007055701408133546501157154688221140343392494051165134018743608086465493523512123595340898273651988909787089215567452009153709720865265357498542341496955723338750987012512397186601238605896084374838452994193279964593028850631345477050363312803566664789212478316154702491354467089185757279004580793736478314367736980203654467060020469936791942004192799519585222540997974253911618868380633690422673493999975840374401857283326024654415335466698595681105948067768240499150224571465392045208111709615916452820496493133922169707317544476102155675315193713767049670188214805667253667337213713065502952060510551929295150186224712753114129143565873179390202120962217985974309612248238015329244391345154173422082696301476901147403016959830738369747624911333673351197668151318113050979629262904454660037732947005996950358226768086302656901384656581218755485545112863532544318657388027354448547649747807069377466307623979066789730342880108810010886991732251998270179072196304216574065160381775907744454298446739947608769914304699626481700050506139646743477338922951964356784449699651300032147085266474346160892953521608580041925368016808876343566793785887134483583841498264528823035170089025586908340298746249572165998596583365411326862566629411324954997869886829621162282641140229437117465272825383969740267580831779361302550921318262906446778152459040361540875629157851840077417488529636247997000997127335156537360058782506082023256421871033165687023593008556219177462982496463120533383771532215563612141827984033400543043603700427877066446503086386476712975049625161580241164167854657051407071535188620115069807922571411982868056272605007973204621258119648966977878818843397746336510576192329613223373487905902212848344600512721108514828713714077684182499314148386587948080063564949355606280242150212166127789356215919678096135831198420965305716857539087327344299880837495064678621021020862180410952384408402381983536283791386821314045808657055300263588797132505979075917930443075320223694263636312396689127987229825004894516377503213651425482341551554880677378253475970839428294845674450013417832122095805727297335328132915867189367320323106763471643921346825312730469422915366005703350507930207758230084128095488753666688511123528359504166438395949726851736851588879990120293835714541024548567428078648095505794340157745107049636254711238544392594224281713304614639327263587248635337687711767382256571438853685062357165782668317693642038911336801019932726756102144673963611618825989667334702638853339140585085853654030871730273824656938318906173272967131893820227311401730482591914139539558666997267618174031828614982913425086698246420087496849931789921764056491737358559804651564731645326370638719881621472967887565868682936339242133103458541899993350936643413844255855941243936701059307015165007646299182047488120535943807328750020440808470250356200776486206498856989179238203892571293290655840997195721966023000873616066881016758653320829255504537690015490874975671899394121905776971411905478667395769862340420967162229664965147078101506424993066543213396578432510483132636103904247352916411640664227086325411033061977577562571918101898244476697427690654029380995438776916063860965237434688846875702328284457395310797890841862005686251486525354822229451554695664698834457722887960292779061567821090315970411795259528022745410422746636050326088358411411774535740291006070728270725133790766939765277756641204313970653924313750836831507230885506363062938392007420762331693229740017789408805113628749014660968902261333774798540539101362288656737378161417481769212006218922962623489269767076975590010233373817060724683751996556348053909359090546129120960866873629045796120901131473222123168240292446872237078109038592122233668828830119782804981118262450741447556291784182333705724034320493742866833322378710968338256309338329940137395068994646222257561278776925358570786636049700300239293659476456234725759356279211192359955387803409065975141164285693174510737959707656360086477259064718921139734572425291557452105909358245463955923716767693569211106128075413306268471966994665568550409528946965370200112997482946322152342145235863780388024264347498897810812522725088619938235870756460297223877914677787299431390139838028582973731168388111707278590884330576193820376875989325459649409051606057487739911636865295508092810075412633687613306125364830214745727344722218086464464249581386042110030000657090904346730577267629396207922446408353970551704501786320482290484084559988008705832073916042101307282713688599518204893138372106415200913760838856914105002948108483221435345393262109631262792884798317964598353978178599340485519157406484347416430900413869823394880004006695321302087586122887262373369038454342175250372420512062736175997225168890772985349974161613055117223780516184445285816520454832955388725792547016448553508936522220270498425980928410701506049847872744919899433244913038696267997838920485079028162615142777434067905487264562906877653442554910417408481562691672174064387971637774416104973628969361731873550476712913495562903829085301980292707926353315338123965114675217949406452085352382881967871630935941912311725684354213484600744705887079501367309780455639612850035052527673245007755688622601728772522271151049529522487913508984801645099356342212712373642841473762422724336925213409029573880542991496514070688656630982902160801875691424457596045935212065360959958849988418214010044817501031850281660134881077364711264470305020072703493050843165190834726784099331697672292420361305073464278733436624918771181126254527126700149822542663817865039471649874299303556078437093241778367344353257982086332289571479890741306300972230460138349580690738533336835743060701885836132846995341354583764858762243982567629750044241774949897607709837442120147101727268061951626705356657299468470374065667502718630805732852507496525938574303439629825242560988216156985552859891916969483129926313680577378921591021758440202588789695253456576817241527918455244012296044142905410985707133967911919356991477443573346531278920550782574024586057480226794020973945076871208385817661388359492209330765760149512446709082894400733094869529445807695072225893188780863518444525274411274880484336292916680190900533236332005150677501223371645533882313734404788560451867678301252724801678407736961620197231039358346720267343135922244462717938477952758971330933298201540024948546195567231924503513093663948240331477836840968646538724735208908426199206003903562532900029636811037511305488461472615744324765972253065600244808902016689870126713928847690640268831650577521262867000451860102020368142223584700852468640462354901842606608049504371550194873335637489197691652736134463323165541011586569715667958766922102918515319973719976281527157770438962859774516099143960745400193045260655428911556236722765687443761798588324992769257050599578283806213930866908391188212540932812312154250023128521612004461150833497170175324061174475298340336760606102976672693433440515951185873769978815758343096738772960674406796512493166099963635315719542472038740480585014084139992857106969357832540680493042606426444585988894845666627921982841934469282799432773692064241811945315125227747551523813758782166564108200760417698009303860594841411077927748696584516093222839237702267509106962707572092323994163482316022184494462529649589890473282567913504560476865313703423418369842075562138378527492472242083630224886866525384027885355660625894745779947789346230164843180007680487746200669697590849859296556134498429083578913678721436891137611038936439802627514439101663879834579516035279565761343257170324082252685808340015530201165554079805928144804995591995746063989652461425629028412859537502598077456443085002267631484770775414221701615017003485258983369672511014266209387714894120580502258808345896697891796011803404555370015175323558378447698090828339506941456783501864176517549264659975361423225526300000235003397193361661263406490578308137788841723090475106564338605903377405694449240990390660008806662328506178281830953414958363761793795863559020868949381491625107325871861128125243231351404334096693622980215292068337958941876521260049323599636715492123825454663233655775443482125934400662058269769673067377913475891345027751612131737040997996768611060910645750293942101937321556251755399809121080397402517261062557500725270976080648838514586397295625146823064077626093072486109676912248326954552897088128789687076801817725915435673458052260858890837264741899625990052282273665411866147899947193140906864815450014067616242144201122234860663304603019910963612673051857948122942535312242823486456763603407686143712655971727382085445527554885948247795592330896684867614213430280776464804650761359576849348873308428411877695073193749250516073563579704877700958813221296367021331970694474515265719771959416260170555289359001284883274912816295268570774387803295101136967020839708567854124007960333827542172084072927440439986887763495916594736940886341520679042176558721287553144024645910650748284984332529601718597018749595051191880146394614728542716748125863590736348285857563803339281705571906069374389873417672831950184580768394776330411325214032892206463617645405283242995500776283601601136385499379831466689815374322109569648955413136544938752984070879935152705508751907359085184113044738820748982030416070834068960430518983456794904351046188741024494182557263916872087614934162225715390842372056809035489685838633149799994853837607919465210774798908833255299722172463339192641664069489535015346647694859541079790054374289001675514132987118500010104582034387518034063349823711050830156885886211422727643714228164631103648288754752527808513216097789436226585081541015075858575071533004157795905058519402418211306187615773658152404455903636825913816092358903399963228307448440054847592782278213602761853087779084771623961354078966960787770947427447150249702765418992407371015040422113303268745364420832380625750214869632265532159158380601830349500313145820144359466625502165897555880354971473848941124836008854893386419773283432084875548848343051681673711923434579763338407333476755189647159263108517111897336875896512715856082755403451470839380102069542391641839327975622449915672413999871324436703689101622813043390890903537208075664158127509481911253670693906868335646481522395847084896851257917527770489895290509144966371443314162251250360096664747786495930164254039066579880079805238944025997374192667975395113882602671422798161429339329582735159492333780949569932781991275186569837148394143084633132311467217180419165796247267778813555893190671574949741923719848784118701030496598832536930256860291794776631041075741242585512024232971786828494742556572760502548970903123088358645907264334753652521857955267933458763885855888953763019203827733289078288236121526977215234524609897502787667974190472716412541418619446204578371168887217639245200283524913561917433464023403006955472561130171250592475137882818822120240343368972790319094573739957720625321885240862805534087040163827307134374560077711572658674967351396647786829990017365564447682467569457777339654218056256180302628141283500950550563244211482599555248829060485636650673093481896082767092310531890153923670785607983533403298644654225231985980120564640342900377899374238937821212399885372264681947035451768546100595919192802501434557207186426944877928313664040359602970376653647145801811482409464676997802824558532377886036611865387978096694340932131210010022680118181415531482269422845534159327788632993928876492773138866413624391719166868954143677468187760918967563782808913529137609894006714734809847008566591150343542759452488606764747113094935953765622662637071093180367194133574868445788446314519320559765686563511081441481256166937317367224758310371333032501290595510765560806104719780540068249916023533165195249649577769101157258606011120065473740182477471131197943620034811154179162796886958617934865917841688822002208783590919241936532211799911478566143398437656293413544245352200597225724134775179178028586746948528353747920088158696738106864603683718069651340427469619003692514039371568930347603644092665508739529896894629994740848584585830850160626198884306822789814397800671599151041888177845571290770894201776836618066699328660519597862277938478253079453368253417534797879756310079926063528969018240675677061841675518169591817089048598262251641778710140499589759840860492538654497812414524525482577345541233096711983073281735352552303837757549978972395637016518464429555008745614630335163626656136374903297839182041062446601985827107527621710329170215599981258260111372419918223861951170844647074302374435564851630934824106625704455336373114804038821211383602848786552614007176716076146944744601467743863861587835380646876795413219519776993775318884470643273985094888392309223345974002521499800628350422523026183691110355486468658181265842315759035734993468563025310315308601243047214518699010601184480054186581274937868420317420978807312235914601409213747590399661736332459906245659596058400809380769510481424079552440187683615318518481526188407668594915701017573665875548370796249230703291587809759478414152271389127199045270290326991155170831340393795262599965737371651749213995292237419116236492396947532635109791827271184303193241194171672012275728721977777528856661387299923845286220731904958545366057564251518428155488858058025212955460292051502398317608064384363253518267653526839390782426492653867152789830110303425549156114699774210149821912561260482800272742318399104596000673725454986111347191847799819776307360443890502903325542993746624941442881228908885660653515202347240482315914120450447088628761228883045990320367514168579534271812131989216026863406204538019756251818763499240714926724778490720542884101572247877444836224307690763521183426366754788408535814043483758536700879245104294020909558141805100879873733111533116229698803289858511849700057578069786703316374350406541763763132487752976158988916458702637108009242615844404169541181121894731220452478644392985692626854664694714250157356546177891755681753056909901446824244120377074985271552743705706618561463218425394721473761195918146593608257381757953842772642280986386166573524308698419222281973911883921975498668617608576506321199110774387319617738455245682700250449448736720140574936117145273700055252461938564434965465191177163859872128269580237957933719025324108498546094327084328737458968575440267487863322789782383539743355139067317374644645441260380828507687018615045499930735748026458910709393073404123839727312767183192409327666023950894345507095883588576713724442614692207156019119600428371958763208836430837539665593013356632487524672827999455309878853442568880630828894400831397393593664292015453407547320460895426160738171171529461423158150243415577368409521849012175930754291405424662657814372485783755434402783146322617141218164058697029017509552360258131564523433881213101954938516931102034745036273301992757572303411647296274164386521616103744548424563918985404960076793177001004404100996779894008548340770135053375437517928609765115323954791638749041463978825749456992717016430795519583432853956795509705532488064497848334692437892972384199409859374721861795116725917118180276169256530102298604521984354210822502433212948544134215314119671005196996667056214362632436321119971291617377549740322205520883906619395592984236017715883555810634733078835420285639919066342667444641844206326003068655553090441691280194866761694304529734143463965608316453794239238860964176558785289451873105467494623669482596097206297876973208916852944816578226437220856265286129776805791100364659031754707809039349770621316123825206300231001447175782270763836338470399983570527789695990598381196209671560506011212265461434963367362553248916064729793395604247707962141884746782799041586262344254949063830759645237651157468101505675872112757809161206677383498959212336894890971432614223741489914051324954376892499772315798455450697679943922700637765578820618121523337501525462552577045155874518181529316871583517442779187358246641094710186810850053877218074645881909656081785275572377077709505125070754774028565821630694242574990221940154215584411194559598770208717149516695482393102183298034660089887216149168844107372939607856636750571933386966354067128265492448712979228948276816320783049877078859886869128941263944801145797861369699551094638364721306861950316128163027503190235046134677495999018916171228044602701100956634731801856654415049431169423364321705037364826811523580348450708057194983663721094015677435539859514524885851856841121270528187863108628562597981542854166884171628323681490975556983741493915615947137530160422111449615548742878199618861031515715069149989685582815573961446078457535680117350978946130058957339392067839765328761924412781490053272004830551192772153199795343220098870702154369352609954440345343263015430023763129110979335223817339610912663844640967694226717498193430947529270384113347465197228813622303356421670739548176620292980872777175121379525704049457823970442214353956943248520244179250965058180092298075186642096138314694179677752342348984925462109139878832650288681624832843135611514306808123787314949602769656574658857034303283105269363720753914900619652974181292496756033908682590695139362941661200123342542306819027289074992614533472031730451077222936913755058220403711325398096426962287936246601249155066249627384251207520693070825433777122244173269241026685809589298902642102744810536455703819794638321623539612396013084737111696384338538636269083314114803728391876469766732341988045096599083943916581984450288528940722884363317394188282432329257107161933425933603546832042750539600750364567477300631987353710150986776847163576623251340126674991012926886342020874269661357660533117592394586394127981883822304545487956686022869047346616142221642053008571623267338990794052308975946212841481562270225222452103503064182759730126467581679215001341429997055933979509904484866901121413215011187115370511294048490366620993808683841544716458918269908671337140122368109849443489392542926414115988553127848698899216381694205065552777855181618977117811445458410257477403126477299977137840145555776388593770591578282636126681001727636589804788153310436151926719980816018425472987971487569960105924745088569586963375062246430823288054265053279069912874472403371342078281337964804430121581302045144119607604086810491949222336527499583383508211281006371936305565458029297514055767449565418737162658675392426541506411615150111960067526098593741766152996751635080046715835371517518244794909482416515639899034962207032302007560291879564056456162601243875979784908342159894335896524799155825529521139205174195661017934332796207322245299170057689470666378127710820667931249209331636845314697439641337850196461663960071637794005445592054262741489721327819277680691473865314715520994521410799543678000885727042854959634057678222870154815481455767320790818269537266666116156342684672472318130862051634670691768928544837307101143326854621921529138277437144703304361584372073806131408375847172533159467056191455264190550744571344405972979991487658125265784978323750423415865964812855245342145398085236514374041088669353549771702112086024924959807994950488411755533178683172121079256631575915855638201577915644588257234413097772295125171208294786410051661331635337567022266537537420586649937928379160855387103178646995697166446182162983597495312329927038589322733442390154894144315261608583396675319345068558416808156526239015836683470166920333574604620938211130251179912323210249079885308571016461103282489691137804327877809728969901489640302150640578274825684052912232056113282544111448216028036801483640308159489065927266366438472273503812838334986780199024446454900628086864674116689201515524845385446026764857406942513728649158348097524581348462349436872469489891970522697456088134242629131189392124204067397738820943131231354676961122935696051369027744396461687914566108301994035139974979800710497649211454331747230093742927117461705066294703965968973737331538471000193608300744449220098251367835816908183766946708168717072159336573854672091940626738087686270614377008984492622474357631070940863895461650529607480819262756791040079889486933894025671637413308017976341097386720150042558979147371159302783544496880885731255939216893538142743043786121231433839212188099730285588909066024473931251693068053601237456412636256264822228934268966062332344472001989566770457190953673564430257295205369327296328583241163416007362824985954002557051154230338721129080823663198726045569818300068674732057353651497748910176192378488085335853929292604942766268603676866256880728010791265762637336232969181773780755094356272706785413291179102945872371231286725210457736734855643196225718347704300657331335261157353583036356570093299726004357585197140628992964191212634424098232637400514032748824080165484191725791117713617151738618517535349793243998583688398709587800116351096542423354704051717819489410215166901429931770551932159294359027920000271400331403346657555766937813042937844524391138990493306733485462687682468839368696660579296025847660921467629144651513643949532680676330707925810949909148180007262425815176883386700288493561808661814751538014365332975360538143441228672284787515099371915446139521175572014056062670511350827366747766428010680597985109661584799810377617935719422191225450964781519594268888697204822013680216869160028564049729256239382534946839998272069485597422038502348177930101862803567932557695726769358224537263782318695645335085354791620597817869220079069645751121436276461901839054133090224186996798018510700669894285557794819140452209094109937822483507100547420752962075421630500393055241414083844873802398422560500543805875099823026561263486596679510185970535002258827511197810518943433662981984234085417492392501872877659547099363936601221910453441088348535390869982768373257242224603989349229995519903610408130157696686478744752159438181284707757230606515658789511128120717706213308926400229460734754896763928453176307619455889370460374594966302499232823561187179891142042038652539403915059708003729218797074542523888915567897250100940433851193892537653668465133681333407705665026410931499533418207683605122563975164083572690141175374661115423488263150358975822513554391009967917320953316113598925474399904110792706581632262479633515596676247134542062392747138307894904251156947962849955119480759460231247076035907802518221103874005255828283187202048573948667294232369225698971865662118979170744421804988586468083461868430813652307310036528685486182591126256784338662011893129419190596262568818167077855174366831257892881634650080009663084167025962657910208638011753921091989447070575352763468389172474313627662719828674866315008876934074412867908373176332602393390764216365789067661660383360721785407939972177997635211077378216765194702965324919525685071360800529140185901215790730221546455533323701684100101337986254314339979710831998763674668426960659939395353724168584012182425561510306589619921106303327766371379998079458156344308642390354188426597198930497927338220408498219823523009029207644458256057950782846050257173471370370610634603577646592976368343396693388429808383185158565331966766508338782852497858498227619491301879934017124696485194213780415590810218420017782037403245192211928059048463827387340915221676013812397683200826600557280783291192325650027037889709861463329832376404961426825003944650418710566813783551659555124356008770614486541542938772140152315773335767449775981175826729222062465954242382769901287051326804330826008781479392273115831571497873649106670456726838756986980748416469023687138423084598262603550035100834382412320737399177304125000748636834812510908189634214058433725389964786642804058972626240686813275423317197731350096665839534810902020771202125675552991924656322070662065533618937624954364977829036867452208166384637599030978394426961773908780247502961606413109921693167697338238140413666872342549233446995054166820059634188505564590035865496743116509552495818849567240150760581838249746143090833151761286471633295268931019723171052342349288666258174010139126707142932934173182313592084021775710282521986133296154161537068696506134254940987820079288425162316512780466722439806814428062837226875438166232902563611152961847036499986940626199456183529414669915172080917970729119736270876496702911290290751691133680425760358296826298530383348736264963568582746603194054565987514795922513395591088946628572559745425786780645570290879112035820177612948410869000772859468979910984485106136430950376137902424332181213260627200313547550953600260730958237012338223432412620626301213823506029266822453513517157745236575995701064226968830843151020797680364335391684509716436071577471865271413958117447109228964881240428308598859032122429964171883797656523739872498374014196922827687030734623897801158133374073805568212873833280842655258167597836134292145063381251663755149181548727896359566997608940037467487025498965426486327119101777637327408529912589805013145512323180342162396967302069904063684656311567065777994924323606664249530733223402699189117699766184640411227765811587404770951566151760211887098471267958492359929021226508272238445361345799470619079501278005457382338129790641962413817908916169585833192382723212909334763575237884457837360276576458514720455801903254577728461340227974176196071917638261796037519484121737825859680428784970067736864840497884106811345334694721034715970600890103754681665194863766807288838091160162560016446882900967095069499411210294605035939101992495059465020173731163758082528077609477389400816220766010977784060241584355499767171672395753642162527380668924671251368400644429016233161736657835469311081114069483978038003550398439067892471321288540877087401184073315107977932477862128664561051875097531917018144660362275725344613150436368123284917734480339469437770433623368939763272614530966589174196501849481230908239584914709058643816229788456691540781427012689158232340915953071270519118603812522173450890704956390363045159616155506407588717105394786209080444316720854987654905149739356476110119233392202307919636245286107844781901560899660689127235032143188943301168891038770720682554057231429265641976901962964714925537350323232268538277664469257068295600054210331582144656202548711690212561128336183497456863478932088788457332972268250271600478355767914578610758489259332094989917796912079163364876386516468185566768477373599178513452044214416531528558311357055283229180612550255730513669642790819500066019544874868328698741361043506398874034820076277808957868771117775082220989549103851929838504625009751648318908267111480112210527337617902159674656018646083934163257731298810365463421013874261551181204856972766237787990951449377395688341467058730687106032393045177658485526592721440409557834829995134782033272897209903947169867766300195317775780834352843044061019336817207026888059981117145199509062954068096422396259531397950421761881638798464015759783843178047041737431308639027982288556893293025508193187636053156790726117129471544457038797912574324211464163113542344578136899699995636877418171895306870070277751220661978951949815701283011288330464793024491258198053781038868524061307646621516704775214881611176237334961021367507780882145331228632296272290592757525305022285672419709102664246255840997753640454198707316058234433481805219405284013896758277525071897425189689682221216583949221755833230565504226036599893666992349447202455750132215876390042774503332647712983126740127732181951939369893972891682693225280809048858942021908849983130851271690211957205692842825909041864978933196866924488964119673614217335563504764926774609493696417793355494776796606206189079312706711803928165352814701332377083710258046217746460406634798761108885773780526897333771026351910185751141837383176797158234027978353016799524942648252246812691517238392301651909755108822508893883432569590499932264733903906517098060986114792108631578557672660943601039792026630769503138534243448058300123979408476348903938261150819174412804765434717457653658038997648992610657146767191713323669355115655057064314369277756149647913915475365455952310540377941666647300866612566773329580172361017661872597334794700449253837347436898711622630782483088510838692183598187625970469240048596588207094900290177390594494482810806946373222874015355205647551358309597938910056529489494341404288736564117069589801074798397926828475913642754997385589022565800700838751261772804282814886684541884681720325152997275915234266111684537581295090805405341624260711928242493335171937921890161651954305190030572013170908378471438975578803090200116587198922573094035408240954917944902049762643371722219122167270031258759556139242433495639654392953823538313340660518952409832830350195800134177539787780503341211885382847610560014746423693532974018443801664025924302959928916861035423863305664157409314184507264924243592474680280612405777120424864723884824147578917121881918790511815552504108559274585916723364957842738886400120375661567908777535165318047010024864785943010890754915723679428807383251023600932910427061965651995554937460268495229769544737663328286482786465798292197804963839382469772243959793237218391130662235462936805524836363314646275385079030611018988839845913167814622274942599810020927525762893509557452859322219465314997512741025467299670113883748719054209925541865935424114706917719570869941446942310417351184431859172989153682535850550913601867553576680110034573889815656434483808301454243466446804402192067730709214537521794007619840085675821982558518817016927427935327665893379227766674353481622190495758311464649955672944605290987180887092205662665923902235770497693332763020328212586765866675030434336735602672113246218300069619729686867288016554748849937699188719936144806124715982454055439394934792390386257630560597871260614171928868440054548293603792408698046659840529598160826580982268867578354104720313534635497190315293302507124280726404403274334684914941607347527264137561905983061581513735899527263290624114638805938295829020032243587477883601903717818235124382621344842181787307320321390832266943091711076258747034513969641709837097725700094979535291801128785933702630272515232222608638418836786642116804711661111855182991169259839897198935362566651653652814577627052061985154494132225903751582800010774408642411183970182771368626295752576363856758198256082289848860886968113028629514417089117622017622855719365262793814278253661854600494551503524391978212700988015177897376384614722265181468570221659223007571978260680580125946429371029245402462772850060683994687462115075315056305190852421809401749380105334995458207733797287855525715078378146767556997205357115941511315631793388076007508261842965916747376944294188294115790280423686272259639746379541163237324287423003014508508301214426809923479317202318560753592842845158649826269059497920983390459983687579227292579435289806439927695510646133903345449468168954779303140685270960515972623172821455094394467859066221382865188079097141776296775891810538607569052031767302802786973666750798287720451461194364194049130884469247000314448172828466305958340258736384942645036690184099410095050880030224971922412518115910137585213792442764660212890394767361668805424177874189038164983659028757122887626937222616112019334473440077784221135994496125126340109672906461231194060705293880182767055540014130686481598426730968153894437296749090077852612416251503550007282758213797818620036726764660602028561951819238563493974045295029879276562771095167986938563128561484085341811304589430905748331229040261544779838042454230101436964106591776643330733746817357813104433877602254263385455214970740126476006219616493234902490611846423749851072611264447349195345305287965958431157602495694251527932488287442714203747838900838097130742958521168607282750264272185535541838121822361937245932321242019829192775677134822163206784166400577428992222215718786604316109954141072864447543836291250027014701209997454402437662234790509250511772838878805893622305300220568340176339122165876769766727074184618522071205020874134204164704175935388951111642763696371333050251651227342351533943656377726120526798663120493045078657601754792807405608739468042781469453979837791508289225601348465207051378501126334300236180956775283549289660333386274020215077183271749472953971512873467326160491606985614729285581804241812392938216010858422679993296750677646163160199143513668313114859127215447521619320107896587729045464705254901386541005490762765374550391647497363920259831725859013668105021707646553922896850468312719951230897488800760274118461956258126246592304212794665832962620982695525823968799673037497291705602989474770228368213265016547044566640734182022509762782761576967118709414541861681515914292849441174003564124822266726439831706509774513517060359886792103326839221954699368116894051151302637664926096338823665936710878332727516294071561874365170492683705192235268285026339531570186369975348475414040459868174598980766809890724038633006196831549315140985353803305342058404204477630636433796772323671481425055560353344379211545191624981692878335901457027051449091540654379546591286057930156890400479216851836088754983873533110112625898604961588144549278020625678592930194202128526589275813694095263301604220479244089506925074201831473605653113656216783060750656298566322225370233813466279026221904050722392930143864328970354489560017607425217017656420382205912196034010826192332763143085490321698315524257921730584224190801343079604773816603355685603580620747858887587705187442098338630212619173173610930496909773198652613340487520670760012728195253228398591678312856437377498384669598798731108942698978117314748516492760897354999299483497798574661414677588617075217508899436860388523909864119692380872923483435665984487772792375875036626280190253061293175533973347435776993049876706274004215525561222684348670388245570537248569232210398449267718638571448722669707221827093343794361150491980897613261836397915807268170338734960055840927593325546550238003723147727741306130567259819617702026444777975451495191365335426711388526639937950940901321504700540313026605474187974053261879176135307895115683099203139674229166215763131477765222900006103960426303727676374393121751031960889693564616827772375494246810736690565924089492311196454279739090788023875993443032248503632959861072620600935279309564997641929196842482067179594980778943283109072467515251374369079214137203118456279625252017553019863066159792629207828115613142310551401022276063159914406132833504334768761138505890133442178727561280400179874337386959829442931251567252517730165274948500526818683627398456256048854758413822610809146606413356567359801219295125987801978192130592706024716214150102155654740359798782406329489409243368803795173009157265801153948342491998937848075254874483996482005555688443474045397921863624136041093475971728622566006629942172387404724091408561611436328349633129928095913301399391347561601256744872325571524947164735120380367825982460316698792568039202049634864210165726239121167514529429967506434340007801436176614326794980379556583421148481013729265601816870134409574713848968167292993654368820016382601906169542902977968080648242744651172071199012607546471414994244983889116645171181444118744273757297944335927336079799568799476130262027989883901020052046267433652419102364764399062576396797197424284616802756017462500379560695985925833907061654022490242759184091535657794779584276993335425007033504238357989057342618116844853226541971732777146773524670072241553618772595016840904988484654700073291122352181238504816126351734507804783544961985270379590540722604559075658348099536537433752049587702210811619813230835621910228674046776802044737197593734883345811307301500151791970630491857045829571999805313803465992790173426664586217236031202678976996753650352142418882451347261732840021422606568231834925431119044716491164190782639901670211513590821989096150523466730674414982213663224720365327784163832060843290925131250078996215486257580959043736014660120686271872625301340064127606035107553395566172086756960282503417599949292081247846296236775864242912359926582779364395924682566448794345946790301053049411607809042727644140815971037357240102698483952174236641421167814143749445232962631935806257185978212930136123613908956079645252573001313235856424076948798860979964844169931461439035564177542864789329519472881342519615603307144444937035802410639984418586931312834179241203204670863462387150250998685734556542866642289614653594368766030827354504315214831755448038135910668996034780832657493275885560589629632999604248507810015543238804781816121100012721586570766904760183621361436079986155990090079594857902940307258701968019168370423236020299358445522434057097639189860248327819509134779812909333913341085646015701837199537893875194168724669799433089576916416746464407455511019686145290601734341929120425523823429965670896759128714564416362179025752199374599672581791246154504349205072167571658352021982653836988218131466083854268855496995858834937386564948408247812856410490095229378776876878035542944915074647194230413099159920096799558103606957866283094079711187014441239901916269366125815790729439789331582799398695996182637772688800859825801515687590432488675678658281010831302561306944562640996077251538334985188243126170814579493017325091885913594230627303098176305888720796436631611179025751239952147324908753040200770624394249313760523125855694784394703296144186248932066321885443581388938684592795193959396290863531486858447941744105767030809088870035429453469432794714396931150576787157038041505229605720615200618432303781381143330099935554613323440708412462212146191564283310667590117991798724918369441240932339710426893806382178702980041816587978847805599332153152619335303813872479259036202652444256171952604431596997610512422898730754594679718433211171723058640035715544742090398918406257661443851110671752205977397622005529832398427903800423959849894514952737751957732204730735251782824654642874905950501422382905070460113021709688506656807319691072764868985402474080647988193114454462032132023212729991322283812872538863186868639119380142420478778256535848608811490511273489865212917589844682166212793623135648508381687808646614624137424606470198642070399502856857008387557064448383745903755681057652990932759558558612083057019859069486848218667142847345532153792937884474962019519442580171364793237020910123445751373484174105225247786977916054477066692026808204727979623111172761680677877476652805110449574980554025192356043367768380360330366319880725973974178342640869850566519140047760507237220707853849607558584968835906952094668525809154986447719437283360092146255628775140064393256909162481378048054201443556471553806358022376185875207706905388221331178234160735542069049341019325692527857378416444683875667183790386007176274548627220827900216202577480158806620209512487549686804075847468739213894505928972926406882183006366681146681732518297913797372291958701755648730917045137342974914045035160192957503590559010046373733786163751140500671263155297776960435189762911702931804266721564065156460055122344954250567281503745762139682453816979441447604436209590121810287459005829820666777544374329787915144255904114630818774775620038934445113098213521770550617784293669950290545091173851334160935040385144722470242155203374315613730685693336370599432387054731327954048043192337988334167330674959896545341639496047528868566429756879931823283125718250097110546646692217108547811468943591913407279751062855113614278209262773011327521396821767586187511030624208042196075833870760222984260806176457025065581241989046901393201102915519637477618994576168917909347064204862710819640531549810768551524475385046835654453949473768903842467296037698182043617587420902826912520812717558472602852839323405979134074739057342979356563975964487036136435283041814720858881404148405381153679160292561011895153984855181937636265909578199239883215650497447377888884656862562315649584881464015786731350390491062690678428267466847552488477834661075361710473062292983373789479054528693421114097894173764410665886013676370044788382908794542278863711709916064161505887085896926904487373190310843597791721614564606429171424805948779647047572082105065162402438113071144811716210914952122938731888954879322715065510558972816815658933639459739648200046408184766772350781561246472804813617526200261205538504203147753833631713062896523809854363417822015312280327628650832642512505613165912944877323831119004276583064221639830638060970992075382223288835290233919653994963343343676965272869688485647402437583307215812358050835921257946503347165509126963909786193197335207926527953246354248134433501329868387707483599580831433666714632160651506213459675360162424525737187349596589050528904136004333626314470449112414083767610166858891376385020116336219607918671426293524784009011122972773599019141585730050424488279389358222206731693336407711747474351213465188415885713296514059213007708554118690574672702295862449008168375689061842354063159951483224106917342561684462912470608234601606360171577284306635051147081949672483837596896800197586623599440030099446755072417995087637975723762115408351377191563709013992873781475632237506035982210514196080740997956238415257091478450713210424160245881213944156557294985164163526997384097933366001324658885057529976913701330798392207168320011672265327598204707214470206877853768547215982401530936010859198942626785976608460517865875171376612091718875273203299744885437618547522406916229985445472669286019702653504939276959158612760052229934053351215906113213204618309117192399026043550553999836495400473071619437116675113233765664426749289595956656566065623123025163252593182027096778846344325968855298789483453806125747954708712987353064282171046814942423150715209091042257885194822485741919030671905733711214567225215556714048732458363998697164253694131657505238057036630225011176831038513625020827405132085102810820359145940059151020093048256119836069634638269062725627749494125893527419769518351461865786335520646297033889582570578307748464643769754421614475991912697530742909140394617519062393411335766286100472424922291330007510823928394395459098276881275573087783836523351317414172140032417688281026004266355434311332646895405076174377227682477254453161227402747367590126918195222607848618397654806369045095634904815837512126190481464363484969292314570806770315366069442973543522828773257893469821922026967709391732353302461785208470669881384307580267600246256841147303125731129538328489916061081721578704020190949653295276135682166941230835419745303663992922505155927874054321244031160905184783176962838663373497283944504840075217672044777220545835007536542482208462451086298109248101544916487328320059713618145342374165469756817143602144715597829042770631570220677723463331083073326930061966534444402126756451469431661555314502572881506126876607624618094866474695162340729186613925783849592239914401073186374909460671185156483714918267144716186569633783537676467596785031818444188324190025079273774978440917400998463278104201619799971461359070428593542046330361593731071837904618698092079120652063329285981343874811471469383478325758690703178240150054010274895044105127811046654067546092674640099724865605155441733470828757808906066717025562360211399061846057728030831783371488158985414064919040613338449143465275966015645915760462160676628092307160375307730156242349851557574384173274724756268821429013457867544397622525221842354169671074975833731054755178747364797897684779086228075784699275564734389680435906767892361301475874675185218044664428332204798088631957854569717855636380344143584311887911931460547925937112103016057058720513183192459991901531407785120689697013174949783267305889030171936183008615342733306609886543027451047705661365964543172384267992796428479076887458984315201004141703595438923145627653431457239307849015628323110447909306973424867845015446705354453993689858670266404451630865568194877488059655700010652243159141104903132884591565046679733303548419628958154153494718732294274528448281645809675185460037779711005142355448316078508594565542934580065712129689192451437960146986374722703981564364135048550304426340801715726409937825332630032216733688561694097647050515578934951188956020425671405219414758104086854184535258592539000419695758811642205725773741061063557001871461179513706382841301251728473341959906101662364745079780492658596652313815414719273625789653072007583989803102043107849544604583679736822199943673829777077604302161902754208325229641760749577558678784095670303483042588455627173647362440112996105945777848325150422934245559349759792925323560056424714395831130177419705338171879401682615629679634840030471238377117017663939966512345260483569972283031803075734819705341386402493014341659625875928376609008487602028160692716473892922433846503638858950988512966987039793650199906582275467264425204072703480743055212790067571051332624908030300015779411257318545228828956965887159660075597876696093691521903092761677062608886130211146422733915622844711184878417319913520476372810176484087208085018551675863513457003753801783590293638738187635457596296871010096869858730834885398158145552874243057522438869163414841917834192587621673083319308343780212983763125545134702687052035738746929422513185423852887870172012183295336890230093522618607809133176715530479214361728803939822537305193938338843773787035889339551439630726617747448693699848903227668619296377210239986484349962206291637538736517854471322895783020626220609026562502144637315812088081972322657586216100470788126686260392267390342640976994241474375177545216077033057774450676207872804503458937806021767053239755169491918416049012591373040014901361100442539833366262694673282452699499973111869854102125503100134812624235477641503161588332613321898344726578861640869772624715668976773125772538584367283917334327778186463796904240673939945748863312195915999022025024408695552557890905170345164057801356194949713346508874863413014237544622560928282490329241958075949740773436061320757333406685930615690684307854453951110364953774001180398624943930274305158654817984277960294638208482650074557854386544807846234012596975110157132001588043212978468033169342362624375893436047021426206846896468147910164555454131878854600107645245351153830468526958963621773732126873998228272081851486059918496186033914543255427562000921615260824613237912467950053507059665802744833015629155605257307465682911285666448221865299844017843429048177007322308960230459002029498949371116322363340663632639122991114086961843787592629636798986708510275894534851228480206464247591570524549356865962223231163000159864982469894588759690937554742773052272605499155492393446982108446670191790183411285765068724798367437820352256656495894919244166681288043461191759637076656297605058712656604360752829079618815412303062099205136959461632617385452348112676405567388358097605299508232584519637226410112518706276594771809742972757510671966416726862201346883977668534518568186622643998179096353788768604070294405874237028195988696213563239976340351977746364785826197095829953984541762122499729238129179979680999256004883647783975728339392204466643438318168714515943585797034142209154109256809579602948888439604201606661394848686365150101770155963319601051782740056496707600856247272377890961764871068184683158371456282065165821153326612279140541979528851979250348776646662624017050347695946719768983516746114243803307356738160068651018040830097998616707759219884300841613302346663313094925913058174623795594147496344667266234008014029314857525209497754039653975478104382696187452736168665037097057628399556948210880664285745048260348081004972330472288608588548920211515434630668998491738056137904064243378402781717497393577921522048539412244723928658593599569918887675825979814909458385871145567415626184424717272037117034701623299211699020082758766120813040205753348405214495256584946606203879706704363302558642725848645128021275958776490420009876808981377491978224920260253548523924187420607871309275317621708099100622276003636739125500587398581836605858528321358560662225419517404270313023142879289611024351945691923106743226931046593395094155048461396074178577648963123390197381703947138687609108116180237813905336212766564980595793155432466003005883321894003580832897398750456231434669050118295640272208583139786907598670421309291883122404934017563816203555777435492488370327669724334452037709259181168758406185235376942533841697432218591511569096683470276360419927888168788682158112579426800725969283256222703185934716715306354446319207943727534780090290201373358842382465232675468780576244984015615984822074202041503433831656196989419533436921430448454143748830927642334548185065658810736998514170442476216766228745594065637468824592473293552547336173087847404697948852134749110895787091262575273014023857550533565278224672703637187723016477183505591283930755709011484159491477496339632030763664072436036900973245947713668638600559178881133341770770672899282527133691886783988261437931429651649137510398995534258162158965292352174165216430501838643440663958594215819636890593428605797013170104375356891116212095439146239293809764437160479968322891110680642786714513508808372180803657799076362358617850775033795227527807966581118112360403229804090611037501009756141719101176719960201743991604651029410749953954415118813681804479746331755376662971602781463451638446435486693265668286219447789555143427074941238677591095355985364075567315819989270050671754836205512502920848390992647701899103686124462473088274102321911561182679979148995144188962742972506490620261010021356299463534269920962727849220795445374407152465582469656294696859057570218026747392579758280173929489114915231919042602806945135612842606056198133265703122363955241092180125775145757852776498291147882589935630839879848988230173614667345010728273366517671438376496695715906578494275094096376032620188237743391838082498652886788578859409301514008055490857736134476070388423944926061749315839693946794500612148559961162308927414674821619344738359343107101895628058010732284011710263443759976837094350638622740262279383393167447536053631603215648246700085503139584031130590581487504285849763353352014317502123746322693337660938976154857983550217763382020336774965468099162503156966200916938201567760980632299674927507514542075538735270387932541197127141387898816072457042452706119948148562927842361656226414425463761985080313701133929304459737571220178335888892692258480975734455059410437487263271325580543472468553325852238155105758383230602717650300163467320282024900610085174079231319436453852885634700433619453904030828271674226101260747719586518291267040533586570664461452508596557742854721767064455510807480820796928139318124905776620389253773850514018324502879750406435754377911383823619338599613735200567575461304390480598278757230155460884162849335024094096611352118376683337671814272558145424412982223806365893941557240521802541115348314599195724320973407387899113687737959208495070108996518994944371151193424634761731599436604703500801463252281846803965135011405637108765223007153084598908794829236161675653501028686894082806596428970478081678413777180417596580943569463666099124789966541109875404192548010528317697267044354928727223151427410643676462653658807041021029415251282685202272453854076540169456419928127926344561451093270408338418263984958415895075820159340319419452200609979476085842449990345673338013160469262341967801234530844670409570545894807296627562930630423638618684696013680737524423008494347333078517510405359267005124799618576835432865823277387392813409913381014856815106151853877813761290095541004231214479430448791936125281847774581585427635259971464715356441852837193699855001622928149546460231264142203931672696468956022846771312915527426313162257480592419768766944620952714682231505539222409088678744962440532817919506055581001995008336180725024562634206324259582168407818821608034728947308060979866174218667226569111231633283318256874172727284085204640864464379958044970822008977462406404659051085747919380277398717017821312240561246260002148737046885155492215230614099281532290964059565708338291033047083261502321176410265548935203673243398662612698635445268212171387977428380018070898059264539918479425737986953803642043914378961413240560501352910391580040698754776815530495298378837476577739193129069555485884491360517560435472357757815829162422147502123651711337771324767697653591757893981935756186648206819122799166649698712214881796263386802408731732787087147577146835636955577527102566523997339586137903980851895313051133899354391616742050428676486362208624562995582876506474219151704783403762080125234588039798441798252212823649264047641489003690889007571701276628685322433939657818004196974751323650755478236714602705711049712941518787047500376861923720818108533758073493739101100973811362288009678970662177925709864379070148906348113249580960383259858549709891217942822380630712171075094261959733806621706791048927189741919884074556953645311399797230522286108574614170580100863181267992755905280100427465646697077075193895003722812292424797334289085571432113286205894498894242521686706667281016859784934684252487425706362754941282380454538334020033505951627491454541941383874918945558878104125142090648457465041450098148314303375412097241523564793891092512263854978511531151940314078346111199186026671802460421961773316844246253071478157461787799622564366279508438493550431817552923320616798324480509474983285620937125731656946848202243583883625628487275420379696426391315761466488758616811142313380828928539494452027841266025252784851712523806526619911508777221831150060575770291093029882498504938107331537956705478149947560693082449022775523136786417008673977152793850772186498467425484413225631169359567569504526340626047412970518906800446783511320968402381477560462367187990660340869197525412939009529707613817011304608135709634541014743911556072855675090745382755658768816363861392190569251139740744123233436235084018545017065153437184516203303853899057089540641657276139701322657777890799989592865379687588341984243655644407304210954719064233119324434386399705307713233510796376511544843330242622714606175760968394644876865543187966711538168561672201793056084985352156033403890714900986684982447290051652628411475577428495957310260325346941905762704858535509124569446476717386043052106153938450654232804997414204603273004543904300012683949642775203309620343473937622036986268136829685001097598141455552640391580773007183926682315222283063141932118529559808775365749608973478451910284809542708852729706487078840151830047684356288780596693393804043838169134274409617947572741633790217664332343969980328779188376536102283078221390402836256197177946112435154422523046291149100577814053389510413866086562986331480365756549384787737145272612891624878352402906645732291564333700296269874749910848427846440175578362686696866769323770001751469507498385658359380410146664322893811077945618544171330255951758165915235887631745835841091937964957080486784492017978536137319576594472327005586406947278761252840438110194855519694255811479808889652562396565736498801544948618006928911103433485722943028019275180341863024534427485081069985319746078120895187477114754142417924684101018759010909159281862862069350781183107186615987690436775125451000773088299032322692857918478904930303830505173840342174665387720014059390316511292908157527778818118656609474632685577310507562415969503325009300387100405153423409890340049732996296576635405733180675813812859206292754432566123987101778076033981973988823761354485700784710872294091418777551408714116618803638137007406704112157188211966940393481007024661239658721742097431185921786124605018569556933659083334231164085776269121375145164683844825985110745831831258841241324192956544292661841320276603290697397375256704523037186637324023759076128479016833254808176651019946064808595097300832535940341374715679517488835115594908227704276809088500920585042004938641634271141481238454517179817077714245300820065213855610133494937323965790509783377528962466454653107518169134059077107488632906124630188649399907827225787143986826281856169969479160611754794042697064196880027294580638377677739919613690954219859383733266286656572544989350826387548123643598827670163672137941367203897702530554916398095671217445637353314012397508102422553657892855123226403327763830191424196446632911642760437842815743090046876184442465416965239997755198309521677822838707377774524237031128490811354784129257890877742822269794333780224018691830798040549718399308124537248283251778868440928972448729322394162413721619656956706616287826804695131844795527131309126844175829313050907153732214192609253031127726929814896535031076726852997017691385828884767731057859938401811139482406011825885004555998300560688866445715887921222459903860313529246327687094747914459304152235400247501417676695325919712895826062659110872454347680766600663159232882391523514971289585759180695111828518646759617438323971842469479092253475236843386823485012812959015689735101115814493710414825212384886167266298340142809839830809577117777819422804186942091944262650509637784312885691542627729125590195105407712168625449234972278021187866365285512035123242608178464165243074520635638565983307943743666803912567002463593537740025252321310439263776097838914042184733475197563177245210260661169368739049528164367107022922300876015294152976501140147702291584735026414672578613392434914375277689026078175458975333465605864677274967944738179121714892768684861595814688512320312950794595022375400182844655536192474810334964443462308884501634587549373672032959993125532306291683552103229780043350264462758218611180418737217677992406730504166453605994760005336141245038579513121525660998460279742529825780785563297475906742313395331596348563964063013710480059387015986949860899230974098145014745371448760387951129678777465814480260493051648079369018484340640833560205648005859521426451399825560811629899199251674385144474959507983758744904566400254503314782359875729746196064385857612845071549576393273517405583654418950611775972102141883910226299850932666848886888471435482248835078921365246280508413409165925086149547422470834469036027221129407747429613406185552894767139492966390803037559664076767978851881917775812725000155618657622680951016282333891693768740939954465322479119880824171331428079704516274082432158048596219844874768333017901610035906240983656140490714317410527765300817684008089189192606112007572329590000677227159408149450160322967903354180428518516356219134620938415168486009449118799412573159404763666137256680891367274277287588250641786932438191242224818968014302379324260601738265353009218017391472421938406539089660652276458176790465162756955776413561336005087634603098231437733259740725715367556567256829150562237779312765468854447191082326346776321062495380174115339525353686147069182722454717315493243612707701031262840818013281373790878047683082061893811269575398913754336707541247042509745706717601708679138698660346121308141042641826632652665220737080342496175732965836780693643115284584715049952461698123163779144927773904062206187525006309297681381704644204185407659493149977594030479923911022247236566161505426074355096223838411196000243589418250315687937162704662466191166195642777317921273021234838976895990005644112485644971924667024766982006879749012046035201809878254139566126640927960786276215052804141784522711688126728849366891315286172742632379225067486200779227884192211890311366144501538659278000892361596747307821427827115247310036447755793864347963424007107852298529852719657440349415902350870632513242636469911723217474466622854134678879355878449424850074882637462910860985697931224603386742012087945539172263118228489514404072450269767681986929305331603276561344887114280585624369572411723865026246503505214125775010080943295976350331387155343964023121494418821365094881640274096369224973291561210642155308463891527512220681631573954738911257980210064017533101974764003663177311539798116585451675066361856548632460857885704774563359590402885908581353481712487031466415708808632267041338828418886406034215118513310753488242092023469792325019921528534687863497019501029227440950138659612780253352039326631678631496128139471856058885567223024758813162106805165228219874530136824889804486328321043524685620998462665447587592230175257153904306970600743466849797487943686791131407190863771046215982492307378762060727040769574816094813272303971255612898944390617338802629460655911750730236004888435380613162520724662124880010561091591167533608886139857235639008279672510664373542897481347251854035286069551197405882329405953287701920234264955114549450017213817833633386210423072689513147703321626504234491286859257951317928115655499799864589943194478166505618387234181889771469431327027072580253974197672819645872571565452667896529684822370214026040879641413675054677067270494665915147959352771254018318086712411877776969606504390905477889689524843777136717563896434072384723841282325006214732242883008945005574392230586408643793696569934244535794112928402341640902857855277005347485299040834517222330085392941809514925444346547079965228153800903131405343051926653591747576332028131932921854550918192006965165982607925605218484525421267169743270728463035401228708502530053860303284791609851955349301962699232965378093321814643575732036444028980227287747517388251103704683677086619538432203463417781045789339070069543464607238874480334397787600153854424996321802431215839802214567905080684141233792273865275733310574900122999375797227388664404784856700645080556564855032959117655967621728951964827559269599307188309268608626925468412926439441552815264482768808866006951966420940575102580332075710905372773165562152462141841520002547824989117681440277455801247465466985507522277521496601649327570474288769583334325813260171341505179089148765972304790244721127079881231351129247612098070703165342821608657241483513692902895170892197664888836889130555345828242645523155651540258204254497742905814217651615676682400385539896978804606659714092771764842210503213486029973617891420700170967849738061394288696967148905991442767211356772203909297799492045782749988861359679129074672209610457430260701176623837440521487596789630961888770442439127501872529641035880607573901352097555436035125052948472665256934041140587214048702255637937309518788255652762315878941838620994339517207089360468770447448175783625544879843069483835197404498436064592780659830321856360224022820705514730709425748289838218365727951907278269757513809705613092112643925932411237380995017834555756243255773568949553843735647710852345081027143944926232966173222338613915925620595230124271388941718561799648247537251059309824697391926674465319838960058846862375239200038129727428729967274288240728948533181005818689406345207472031205078487065608058595850379839181355659530822060168166727587568425056424723393760433031398456808398016358800585025969978200388818760371832304439986843465369401407586184000337002002683949026449748212676542375947073548944037993148964037573405390939146775245990656900391231724187407514579208742351617797591740043522572010159905522491088663258803150902836048886910958271582927900664569412132831683925469186531750211589150009108030474528358343641732038447002623943375654737415799359840862711883869245865835654642281336536533183584389253417370598485536927345758046285231554493288825987724658659303901797040522855701514953756772210494641706749012497722288931390011819318036001770967975281101794503369989549075306833618786756619457714658439074742827232879778171777935854475785388348581642003339651284010332699469333751994986568535103369427826469446223261644835099536770026574842439883047821932194157187056054271079096030638380252978973835999473447025150108796182831711212883714515768036397894787302271327735043353538432279365881674117379688526131616580348825065263183583954143039183721662330369724946634394185475200970386437265978671796159216824470247999194987700893660215860425882842007117805041722982780467073729973431178218404318625962924280461575290719464485070214719699195642069001750721061262022827349299649910680579860717439407878501622177924885796787268932086232608571239897880510684639883961533023147563094865172908397354900699131305936496498753351383837328859522044544522805209448667889559221067773244830987672064762834724187724703409794104012257363264416852006542818934489013244788567897309426907500540660000608879974814697229681275988942632981290294217759514807566925525114162680653596699669068820621403067736988659779671967115115419280145416719085249458328069727812418070858518081581131585835469011544923835270562544030471819454241489669121624944436331244519299608527275935154193736837214842035451502741567152712937958731705738337305598566057398863883591155593608835272596754507133623099210298132168640857931064764163981283362498661156497944898878668570309491887298942745394702614949513906553795908850324936890768472595442583159552609575464926868511110259332082121774178582006947793792079502764182147035008365259551445336089743757580449896058153155609052942256166131672976911406597136051172447977287759804001558055662134684141700349253323578587104895150292734855632024623648692194195534165077780734010908361945554856218772731261731768199941546197898679331032276593001150160840332438372676275260736480908595032629207833073573030568989220687216161505569580357642640429508933186420188883512216945052247582931622330510573668106614482478384413046536956044323884401860178241287324361388018656338524841881109814340995570955962045496786865522626035411714960104862026223067018850052212113754553909487615093078092310076022803300937394752003031210368868248815520765050494071843835677648483308344575109423003379503201812139663726320812054318210770448957185039228633890038600629107323359754867324703510493219160793878011401071076894403104783867574484377392891748543242453677707761869040024778074021804590405890949219145584171916663906828480560240087611052492399419961369344256455828431778284197498302085986353902939934783289707371282147349897711044684858713525107866959539425334022128279847415597076796943478115174772680931981244983729585472961715357387279870772246118934327304401571814632596914266160171835471725779215428548335867550626389728201175871352282058411866287119219262548455978095278556460752252528908770515710970862770951898948586692781471322052176911254873100127448254512246402738308814805566093589209829762727445995403523321059915469510778005095495173553394743132046393528688674403982772200604241318624146401560838211818302413949613955210750327751561039553848373752137624303945910890509223563404754975483336967094348057415897395230880378879479173147540567408897343829082116044375615404742810092396249882436904543405859430412649980362892977849146593941142422297760473172948487147925373030870306508548919789172591740484121615066799200819026512660801754321025490482258940727941741356070907690156807456231295314035588419549241793781427937228407352222746239847987388567040911493353471662288521735858230367887045513588868682516040103143159326291411979584230051133332817132940843528683382783238614629573472599721759769653946041039086292633045534424255082591669786899839318496098401453614671444916305458906973849998269251654313741644769843387457731570998335783111169276361063514999286112784190039481206150081678542788866737780745369282332320697601034071868534579446786707816347282502634852962206033348293021693172301055663127174419914277578566057242253574623070123891827230895385795589139599300943504983994756510356937081648858058497210639645738848876544194325111178260856416440830780885789024328644369561274750331748389873357614350278478483027250121658531543685314585513134871946736116046469626608660150211905636362193036556789087455286167605899321343502594867431187349324763174172185746524869984557520771192344020749514907673790218508374903015705902565514954379971645450132936659647184742706332461722925047418337263841341015575022760533062271535817852176619390418308817677436689785135338565905296575865887262369178657325122876886516330097840686889227757845185157015428908833559601578150806672564652490789096082308931825268154783139045404874476173898404170364739467492577363227521154793650127974636071015094677079769678712617308035298159397604782318900904535601655402098586887362249424859619214949222163309748059373400537271572371178386248274645210879436215006146449138628717226659592145687420446391111536971379989882645225010321875083959776119776148034574625054824387326541158402639381418266273514216731521743796157456711448007247099468800020137230097994587340739966018593070636149571452465372761866677433876989733850553546106991436603480986503993788226552826717422487661971820913050827800814535550398158106000079693487077514382938622184054325500027997111773025729796751674064486126268441483829637930422131402116078519329828511497912520635479028573168936332616725836275313662145252365595535682840441842845744522631987029287264114861861642115292971279636015796748382012137447876509611736777022638195176962516164974992789386521258763079114018804077599570926377779007685114508867153229370064763216531316723491278473895302399693593056038447980681585566882749222703354801523887219052842777961485056194161671833152464998386576023723951113652635156048597677744523576419094546073814087551423251246419223403163898254236283220474029744452313851784931889693739867816679592887720489511503780347524195594939658797015198382904256646023211198735003203648089333852090527617280334049726932381212565175729363806670145037182542106487883786375131500770923043499331978477151599924188159262779063554377757841535174162184206282002285429897667630538458271547040607391858056936961134234660071913428270338217751655290009157299642101428616771496152573355921726533453751158845160728957433096032457119824242959946812469055010007823567527924876461355810992277963456617798799071476621799312488178792448386063974094922617740089581517484538167529269757217217861669059476637341048190838115097034655772841121276328592453665689862900452239717821270639872790175219669167233208887058434811011996790828996840744861491203878221185910574311833097921218810913931131291114094138448042204993505466529583028556058933395498226556117449864198672854765180945728134160508175647756976166322383651341264817192406816228225214395446075297600471632304418812342452984351193681223889033823734983328380055847828641045907226565723879147442070773899309170974339524586071565532882359476951557798916975127325183636175419833560048652866972590923319542146100571737861072720513681550970587709319927463699385237312111420651756523993071120742194118038994090020023882102196768340937381827074521919200018898366394279539883319705032718061830003634077797215828018708500615686909654745877989737730059761933473576086966187774655890449441615651397340996173124295190893426057806974037076324230401717808650199866800004957818918422087959098781503500258134846347856326070070871465074072944187430993082416461759379550589379785444146084075627380217291990472555273353140633699949712167898947739433204560369928310804585529142303051578830358263759791218708464151766174894728964569866143100706051808327596404854052085450829708103149931105903289621537635059442831490256242470852511616642450140193306604132982094772187451455414089844887956286602296279161998401101578226277282458713441899753218866341666125068461682523559730917160202941260084018769631305392012904680624734972447236466853189217636077133481227020117107307999151168585886404334857043640423467813479136494187556281221377054399315714513984174433781788542921390192177509367754920443736790932714013790800674156174071273278231723302083160084432645176593259939295026221416198903916953960346090770786736772750885072756122064354245596918364054653946174833089348496920789193182313055200668327349461340291596643864351675579148285176736037711672942250308465446457739675448601699109673435680752462199591474993598630033194973592380923679531121662446472540389784114160922855170203231341040919248516064625717070924421014645229974926366810057134372370584533013054278049900089053042071206996326633633450355562658695864839137149365082225193763999517070015860449649869602663473546720947318605573602896219657442892096918285280966350441143890479556009939616572426496258887952551804228736323173783004357176856773936091167252422894594444763109575654409889570145604424231178739700708261887480460009845243969254988706998256395766038396203240733446877339878907415147418832925830376043340290002824785784151058350605793933796959492196789314516514530858089260521215958420705759504156922679447688882157771116875655347263922631589496847023449719682980902925883292048524847198421140607205756403007054076118856045333509434790381017362300665161114889127056122755110931334554313082517429834162237771790009778634667073220770434463119536934451530914521127530582145322344269382726487374241306039799010068786382429141966682960054338567960566115561907200391675926278866123350195708752201345890432312712303704793444880385282496037770402165280441347923533292219437569642314429740039798263884234410856444852653572576277536929824655285971614123764683450380766691178963245018225167895490143035620378073185888823191345787146681174215091540623922024074272026027649974077725107651572908978904700063953004992109647212661222472471664254448908340282001113795048800911971575992005567849252424946422162132480561694406796747843205173417979771188172120427061223620290633294466114388967276036024400473863591951068270854116371035346387245807685663203161793053221398764652199084623906311307183018034746396595156806570050870697571611632000800574884170226829997136128599850167143017634822925471251482977466719028192181484269576878849358913479376342831353358312369172145170709284671652571028246222107038773519066895935372249180259288514417469670922268567163907123707117460234410511260693771362340783341744888777216324918327722754681241870611252625995428458526428600514133747295240822516130243773182533727398292498079028893797634376796178493388465964461261486835694695542683626995266236914329418886465922239431447425961869972465737161350993313943613091625436313825434516403669981256019169077800502650313013265363215035001161750611779682423731526661922261195028268215011995724640795690866158178116853280056298396297953357856558818289249339739303773308121779318178175681857890363900625454145530955015057372099539160605848794188242391948196674754074975869904312807619693305043964866824569910557303004436672105904504497498149584887755346124905947659643425518705047006482457800611200297224163445569655292607684543177434262235614832444076596379208792639259835288790951818371671331386533833232310687845139784077607612300697882429893475086791673644944944635150262902024093378993279417006390360601471389821927281945462255290196844804201183838212314077077679439396466736689473353429380253767537665206571585103811021418064302027850166440985034855466532956058543650716119810891341287794221255431609208514355983856873021564650609132733752327353513765933532582147040612975415922491334003080392601094653203754975894993059357990634632980323278378171492328430020113162546948512503715744378663447053663498215314656701361013480040098797672537955697783599202788393713515139288992573286297883338441931978198544667780535752195137846743741824003409275162846207813225163257253737559318921554309061617682499740807074146452619009858922596289577800267484522749968747981860560025899909055849835592333182469443968109580564821880662733889371570900377901939456996475426454299405689871927189222246980705953702142522039380089987297925428487618156940341180837064455198057428498455733124103646564203732903748886690918088691712675007573959186583607219671422676638729592066810178149863167598314754940686906352711128290532974074823540391007206549408981182789697656203582177039913147902045359162959463281852141412954205349627724734919789786121223228894745479380295074670858180808720532204145906969957944874732716109025524235090271206127159683150413393072475993491966399478731992413159659353407820691133023774109294700948557764144650684154065100009345150073643300725672141759312319721314383184492435240087610722979120929051307307376094487533178770554759184870371565372928399295038012426542972104399580265169043166636137635378897374840156566018422964394512950731845922539832481081409532903870040973209754979565598535081699873945111712511257552997511616240196103202777871328457811806611871526592191720902576131438405794473353899093914640251610583134041065806472866626119484513678704821971547055687805556639656461729442311042508295543243876025060077450487600926450339574465267849636593631109757869869837166970582353496938576496032986872250549974868168058779409903825223373122460843704921839063869762455770151703120109160291077128710685117107159927218350974445607749639162267310436707598066052326208754272309171289581084281790748235910150692848967773104320800677077146892666843107222642271291824245725286490491907302109475827438315081765686514938123244876941322352494293370084297859219990226896671237179670792789775688399175794203189485030417611818474516027786061202773084776516092097646924072007566127586633291248245017956593538215375752499213986227965614067425902475547178283509085415984275996992096380616362948392398091322401724590471810538038164443944036131147997676027153331494472714330895564071153323753867641631804629540650860966668717583766054392521054813919385039981806674697068342775503154977568917096807100095813390644999187905763298441179560083126088709632375755885997397181899166968226188871937792056999931165240024045049893089039438202903510712055990519450211877691741771219857509655351856902915115822554411918104541190615577606997051734251267914806822289405312585358231725388799654761066291084074286082883288009571880183728655924966821923576449741494977609323301846535765587290602905972505097594379348215368136975409396467095390524425452425489364868670656495750846043408922552179459408074279762300139869465631043136611944572553213216219638398499369419455960255118860643906088596767225883439571037159771282032521808034959252742193916773911288497314193940348979808237901451956344950446002175337525495869905739991496559065540776456559269967338318254565636858954782188373249911977526527583330948559521295267837281085927484929252164522642467171605913950968665565882401497774661656892261855921401213451217501110161702615458677240070807992590180439539963844497322981930149262898304787482865218373572426620757398192820772992513455802998631678161342303963418139589550142579942275438179419056840616014596858268724142716565884395070348646079660389664140509476488313833162604574123142848341974361918564988117876573930686182984847343461716885386132347103024408356607294660424511827083705471670140777324985740459963471139274276515106138025890223012099647283605698809875998154662632304368251336097434223448025965158672699630072118696287696611565578569858893999859878909059214333713324659789433090940775558569746161003307309108355144561496329324253300099284919744627248735250130582183063632211864338812175769414204061435298943933425908792026828822875077189481971584550959694787638594720664039326771811792413674343943679378283534588679236594542864525054593829641005600733464210930708064438867059442274264936354641110957155597794369919129480651737908020133941603499452547070040314206611546104435015536902007141606036006304859203476900349558717541596480002813549477138941104398096597579368867889683362515880562806562338165480865647937325295283150415083202574114140320476378426374595241494804711267592394777945943041547389363711609289683230003774338444828071779924007763865591057874593071106198033498974511104903630089672621333736428053509850852395059979975788045071294492984639332891787378241987503713588222731690713276241020593173569250531592494820169280292210651375835911797480268722847463573534591802392544792184955650682367715428892951332691900623082643399754026125169816133598715678491893314380780163049501498228557551815972423958343082288562902872645476785182877470481098960094658460504222369492374122198747463146323938246423131025504656849966554844631108206135310050102336698215812519075829568884948484660507869325071122856539834304538130745427264044216951715992510155830574909369854784541295848443317748375902921979702928513964317559303979663301564230111939860262533769416027613542382116491888407918543142386173098981394781925392636067796163994256968534168076276683358900286498284272277122470201291332345964226600425389579610520302442733758013719341046836245962226271527437400616757848518757305174457949616843163788290055518713946387964326058328081958282341543708041362376638309332016685505327652059127173032667970854842309352836712127865491895795975300404706859913291394901289958012889785527297087965676581124230776491941294666707175592446021693621576027951652744554337912430750885533450916086887544901534688650183874989915078468796261193312421752583513117473145328572331015898672538139405687566590517393439110560241332489986692165337552225656617240533782896862246625544453070859280642356571494296854460477841472875043525522364801704152699476720832253851140530211543708650760572062435380549343354436824013673642265620725584694817767131649512967242812518609550103131685834493192501101135550542312581861156465939302733588158596392646138826521082143806293333966961561702850990103498106843650436950908267551044681185595174237992142920290628427801404857772869850525844048586377743977807604909085028077048476749249799425717248126055205070360941207080213633654482596739502325920877067850114714203780636540101014614496060365968384914141894792374708955959366873540127612475756306861991788929722135256726411060698435389439954484027148400999408262448294367493368922688637196780946718634865819675271884052876715274950799648631890474815364717031265685393617919708180723294729476333991921648433567419703545317873065925434024745354896942803889829019025022588086151450652875419317035108575828992632247336042737232146025503055788660203332125668485486964334885240124469359683986123226775577948530397517897072375051432361162007820128319350015285949138908042498222339957132982199846510706823350934331985216019424588028112443283643389830764326916287631015890722942120205927875137229691520188269610216080276204458875281786073941213523197814050906292764935760295239167835116797607141175044539490533802385452633797656131507041327865188601105143934890073683622297541768512203959879978265907120514277664865716383666694452920543655282179977120491119252642446181838786586878041733314357190011242142689516810490173912977470129692240815450113359324705237699364488980682677293104417000970899093018294432549450628366193841370740140264735515824799885532559705010734828951534064146422379129997569586778789921323962978390409540304939900027431713506601012854577146762226095900530249840773849018877565821742765953451564722926000772261084343579965373303636277951110342390205148986422682425926053749700316302236921797727842727031976361569064847528630601420580152281339580559152167461924031872311275356598451699801060474539308905565007365823676952849779468848978460612845648237974554065899103376130415601938858075191722779437355731605104130932345663241272972594605372771313303066096531810395230894277780873669239207114617597264137631855306273657182594543152709865153908969971011315372447241586968226036223211157422977708014658742419851289847647957954313402333524792505324631732371622984090965975230636603898658910162904390582366570065184006999985673896521435059812621045055239902825056698048551527830708347690878482111742419455891061554694906925490119277370547607010953376252408508966512412861804690403734020353006940800021020130904561219053506232392061905426860154695252140096467432609643707360454527385288232676459520465378876862926519347393809376387042978262672109218012229639477627969331788878780969842965376241418500249800803671394398181524657142957212447719403000621002196655851743690122471828470667283257373018090192652541225030284231655716775163036086616560293010924970298122454905337577641021317761039613258084433131248021704316936502623667437524936669838983001006162559140977914541497834221826147231151364888338582780536002240784791724711875804785255740387994434927422842583869111751424033938716497080940433413789037263055477068090384751680483184450214453388725820308100317873807791848777405733948392300888846698655994470739270376618136619300742832740763776127378381795083928784580278838408612421820474624424791893018828632981390294531164351576677908138492713445604921437503706944164120785875921679151891180869317346645747195655631081553061871414379353113924339127648392768601994526239369609123014514150188846864475292715802979425349082582247873771640836939057457632507550657500090053011445261948073962331408926221084997094901374966984017756678380164138884574716096612892217548421109730859615594608184538970993102025640506749640895643570430546185307075452599915489708192279997493559015899019033559550441701930473215683622780093741201859333552454106435392828279333866488579679811184308052711262984949118371436671428612974279819166758330468351077794266857071092516668108368020726028152543744408902374198691928145373141977297734103343754643993111498052062736762010198932745875263149200495257902529571216362315090631111154896073204918044042298821273828015266284136283406927308907542420001367483433048174043208815530172080118790106508312890903715879325609775461642025414191607470389998991523300701784121220992899035414540390512859516883894741355600003457713993146412200712475491873592229695064417558913112630643781951172222903565275867782759978201007541119381684256170526314367563433725834834646175627853288621779458009498795061002854738169116935612536815212464921537289359559938678561020892998816891258408675344979508423874442324678001719706751035997039704455518903514895895238447175307487994182131312366052528538019975655182664757852770494148247631705878645399626902206460458901500109308792928493069893628930132516897837481714611469804241831135668560745322031362882219792059447881615700802899892291434076817509163420383855628136295294625660109676979203078698685559775928322812980828891050171611262581008819298084860485903060130302820227552067861137161139460626711380029987347305641611317398808303071621583139306711013353722247891556320710514514306079605050184742454254989026052564413359264268930504000257168256319447549321035099228307644829512355378636110622046616675590087464824732626209720940030039911601675983270754941805975444164523425401944929702298871052329745445179534679204490037573800730817987326965688613274993010391027390833412994212628737539612081224752672544814497574057281653460884696757741210111120232562949970535987432468973889976138344985268639837250961289224285928031763103293425834402087371169509250242014762111344604461579143523272838954158483298623366774907287728292070352909125767421257475770213576437346854188773505789162783096988476569396938947661680709845888948372404201869950779242967543242024971625131391316423581721255175468134888503845542309386047641107725961345643618889571005614660091635776554008321576054795107870822499933286867978566234916733649977025645846153196711919465860806375115635801683725639989388983639616695609918020744279298744411012106433377231712566741701375769893797501574957244624551696793264806911227882704890196321447224914741716348226131924835082568351928546412231659594154054686331799292309679457064740216474367385923659671681482341888667789184553357343327458279063903374047829705991485917763037116555525578172859733970113772446612479613140995707076790892789338572745445199096570155979470172611854206343782146076669949991269217332214228699954473752876738161316133154362590389475037758645460529560821449792175489361824710416410668010430853231189277663535266925050058470449418097082309625572957858527167456893246896571948700841522364754685833083100614653170190589869083764841027926426033191660282125999571434546472210873588117265441034814777124541649604550647303272443821669314096751153687453263748825246634313902152902696618669152289631643570400113212567469111469648295244981308359915947142260519987281268578740387519647476912341615335370832980587802899937421648974013779767158972046851800644546551601948244587361222572832964272235994754380712656074918764468771329005948807469330363718405713678100397190558359821809529140601466793840383335493551960747828635120310992255725920867506332652242758373542154983112228401160531570601418117197891606363537901909316102540337283523956053015854440088919140969995505225301099923803755258125314087157838330927208923161631001165969265920329892182989232458984674529478969201386714763356275192445592792118878734618893800590007796339562113501059129314616312758196151304795741779218888389243088166144136550187780889945449478249939894470740952836096477532479334341020865916589291242597681759237858763614462431312149636676056194623665615617073762104852617817560950373662852215876560438688426574040482630956511287443787595234427042473167567858488145075087704751382381202616741223515657225291679385994882390947560009765747472462994504526025793448521313240613565476071722297789183290876065993403413748023810943315748145046461127218574334519186622850068582847211695456848153003583291293319097297940270753425243092016884844830549191051118950154729210357704990056217735883770608336684619445961172479941986448780434504192032095782593474859940947984722522787278886588522782360476891123441765688526163322385263372388217414914239149616746715973173000211029773306350082727947953683299285160787724617343371329254094016308350192937654271128920865505839872728379079838408180856051637352870732746106519012718852489946885561636880339662727364921858204300429784302235487987029303676562663179984015634398651506551235992924586889691059915072726475037299350175714075324891451282021436546208835466789170543133907687429787679625206447147328413416142377107150003498974453115994408377099823872570634814555578421430757257837704112560297065708746987472696881362216441557064338594743214429405654810440638721515857766494630761525239594777246046761969321818506959377986917376948912336777236434429582491536189762352300468051203581552504050918512439194673503109002421743520756915735508713267188313989672637861463159193004783769664127192608112478403438795331053334517859289071490537515314912254715837699225160881165535706265496398733907523858938888496940689001874225820906399923536110380864814178245909967304566612310824002554815940461510858357752269250625953023255374947913460924793166943075185334329818985799657293030411110380654405837962202168822933470349984623852586001512975758157863457513330337608584329830156921009894428287957197106016991712490382410419290866605236273373659956944653800367817924079512420966514887415752677237308699761826398939673257107746618403466653311406073525211554929834344196421667396165152835732246107594544189510258800638927246617534176338923485005682407203883333606898744276448973594799496575308558704538699591863374809956409657251855683601696302334724557223299769483951498672061324268490811975326137148622072920547045947788010482018718414945403203620373825166264295613227643347477866187333442557849989484438359477674279062576805675016655337944279702628278421204868989563317448544501016083980564617180408890453143150871800343269595365525511273619831723732090417112597317143593394593930685126337177661132100112434552315963958117558564741717487612714892917716627864006071928936953197543726743828598628106347438866229658978454855369383148751352734224277443260685757835450978863996785558648129502006606399983584219266482369037410587564412787936275345562249703871046212084339830997516538753638447260383033377368987291955813764821851757193925437847157749530734455038650859190283169509437772082411571018310867697460219755832333955307510170942221760300198035811252549810062280719162093131135641918216008070861471649359761544856540017319516515021407948321746331013788864029694610172847647618290241260618911425484602830399838708375979025083098971164519196149769437762089921256126911956815172130269943591269774523255802161718083360925464066976904519989997938524573970586068670567684409361092509164729759618705159813242244676623869961791326920971208850354430004764556282459282149695421043766238753926997992992109145437447218282209095108874233718350355715902597918615406165323151634346598891320477903583770436457157558353568448296458623320081044078587782389308244002256735564703743086634522686579376874289526883867493881381506617789789301408731173628891716705280632857877824771437982578908974899973479015653901673025754072291086228543298257271997635417457015622761417751572110466571360984285927104994823071008223685270383984614744259435048803058137495577033711580584818830002168643065672087214438814911545045699379832803797855927427842055774980940973691224623512882456994141542952822457922873545685505440349893552493074047020058467439371700403762990993022014459789953586960532508836062402333123004919480806544094146418139620789849906702397005610851975780326916313257653673502480572268817851594887839128680034008802809352218602206618639934768880303230193666378110872791851196156816333598541323943491624346806557634781580533992147192286804905073405708094072561972658113597481675646256393618045938430930661853887872329185922297451637998940170687988229641072733424485471957827381436155708558239490237241595262347958162339410147015287941884232120059023063200633606955629854603457775653322954874868389985629935867761239304390347846779544519885053039491357409967687875476010071377991984896484216364069215816779528655852655435927027343589196878543324354867672823450340671559277226524342200273117788209243970881719714900118494862827403596101133175529924922021463911446699475493135383336008355468934134198151824853972130215290178953049535318220101211038612206554960056973959127040853217595873013825034603903148915393492633790106164162139590188381067997677010980514697718482254548282648870250988622501964243856079496868606896685238745829047174213429683499380971524878555584246439194871828942457494963755236110505674851080791892271132992603278258751783511964865722161846427736699794857253153867763697921816237622629330072621365211604216440238914702722927706031332817296715427274379493683978295817800102826800566138122069522415307612368197529202974482387140003497516876461020437225255685075648308566005267510908419534829238137801963850271188552401503591098860777209109266699045694516648808057663741569888685094536506422161041102640058000174269804357021337341667894542495005442755282258305122612062642277030101144638598138155283336136518034621848306500277224257325777029580072889155227561854461046593036457464839105193397949363994948084366606773356641608882088338231501399221286093135884405745791657313429201246263049293775208731676441500469147822256098082772949091455706278232376020949552972796136099807927970865922244832980856663420128932365348348507195478456387074243120644448591962170184626541842662500314424732097975179012855441738707584560063435124628186930697444934608458106447704751718212915982163498881634559639186282038812977967239525803017427382173267896422096289059613564877849093499758802858115850358447804101502249653760562815130396703972009081135584505178661391881181715858243542802278387604330929230506998206718570329539436810620704457959542434450179244309649249193492531290974818122998618584874299342204498275809767168308489916586929746053400640592872264725856856569622186554641184399933933171823745587110719119003109659054496667082297058484591068098698239909071936393860863764949851235347875407926271264115714957782883964708418975843877384974351205139243550002870045771117142316850197063276784436348057999156282940588763724690383235822470602120250739652345703273386104971039512174420187658651898881723643022384691049972840847302046725515567447866613572573236031790457005574221670241345433607180569015902167084664191649274695198558305661840368885906042091926695867975881445517736546803682732353356866091111578250714524218365112750786335366687157503333888422777848345548229354368557356552279653667378358016066625950842597050699030189704474206459664020025905654234278638032440619998902718751912554954300422989896629545832027260552235456438142332272836714549917089139203987717357349484225532994953114346787215277245303141400134316488694046119060141940896897042168601466152699698591586146232817101686258786495871299924855349891936628991387065461912817797998765491258541508917676513380904022511953565272329455017960244905233828495588754341558629032537289166468261238467027275971321238779694081048067460807931747004754580041612906865796928498031358190304984280136504791902242578994168840676877714130250577787146143138258631678565306924030358347344267354836251630581590117594601087996271545616592875820235175437774937320080069950408378874549938371116940301702567682596044622217154805690933962290946112166414741357592338703795655502912223108708237914590627655229256102537409931020028973515308111724887201058900527228641188193152211589297999489025168898759987471116798687041553147120669940554743025177290978817975674123604602383846942880699915436268119940146600701669995559000643097966800595769071479326286925623272500648892724083149040413448767131737317087171898832390418586187107844655401669628815258243423761960510886666939963254308959980885536270179893565860521179194732523387620114841962776867197838881416768223411462903557166284309154392036546386834621832193823255680814263113814243728564297329386048623326179484023688102072352296787378731350335990652359390989400481494400063647427525956603425462639752500685643625561721673039924390848653105074525386202264833592507330786764707022169926169003138581102720636828565073908702580092617278989700433335481964982844426208430776903952545019498506914183758481545576754951055205434868676019604151703898808127801452422292433825122192216074115233767025217893872883367262935773841453142296749114027540095483750467302438049691497567906529189245627704669363533868342724701684373630511043628605353895082072482097568344796493454664081266935735193882125489025952191391583155979985798215284919822952401899627037696888255317996188316520992597173845670868941644629866147565453543090166637421416274392903921186884808054515479813066076323914687062432971037525768995103959084390896759110057627522744623277498786057161345689316465261984574468812495573237353427617505055591734462220767942067185899672440957566236118803397309879821944834316322481835752401484272391842206548574445530549678254186858577175877638283600832903992571624724707016771308241575692467770806095449705328497759105979412765141331814698178272550121088331000342489946389163880609236047644409304123883024076764808753220948538337873293270451670163193579423405323522393861635767297938619670743456644417199316941776301740118487861104446484234391986375390662574806666520416034852682789745888166324195371879563368143042597634149413478054976963885171535035151565440442096015409304569875094346083379040504569855826097971825405813822330227385383969381901710205870360081098002342285428541889630818129441092241412567609819424547295179862820811385991015778255412956588277459717064867651809095447917869449208640067749262342553943173016305860169565876948629794518836463119346307117336872122001588845737631551527737097376263444188837400089790526525446873974363576526308544372507273749499544382129758919137803406964570715886400043593304586269149992389426512532919655088547247399823176220096479774214075927134595243126944314005072225419428694605614751850826527167034202256977846723815594456439383659375321240018525220768793653997487620220751634599215048373461681226883243364053488419616905070793523994987087378618274731711753058128665921012219195375473895494283245186926539026211068698783677668343962908077314851558241023913386118395567813131482151877675111396053262614058737609339149916362629827552100184651038786507137324549572448729043936185675273304823982524061739912364816533803293845329250473501519443985688984142794248909164928959939128750428181584573763489070697982635851272541951145012431532733318227653619938030765577257436361100638311678941395397628876037888612723579234578565594583251141344144253712130258183025948434011729827143694171977040417591877303792255288649232666003291768029563399962967008980466237561261079854643633519025618121460556522730466141390953890893963621165733082526819164495655130480319478605517807793267307347316103085178681403961847800868692647979573552988045355638249052791342118607334266418982691545216272271911574858622774463126949573768716020520817544134021178004719808283631137676868282712589803660247563697928439036586787042458637583055505127340801949847189624337958708641104008010855644818489697459793339897539532662984417863741537642740390376468722284526184514863296633000317743121343698552326699703309499634708230684983105403719975014784186557891120883900962254642327329998370488489953612727834018486201185578790483676688800662448303093255222803435964073684436207776658783789407578045066721350467413201819945454129220479846121156764044287791708418914916252709713438133095178066187508484586341152263505141410518803294963297628023137705702189180433203295019842013673836772338232698100133623681483039487274462363617493304344580053883069846321777420144038455551457682053700927633481311845984031060747687294247985130142853421633088318410266708466256058462901615746694021700402905104928934986457810665320644241291697560387645468304066786226205430964323670501845542116422528221189429973780783957347150258712953433641500560442636279468077469405230057521781107145333080548140327146205106625087722053617118190281407377310497701069105464787332197516192488600091280873375255893159045636487747001795775329653935843787073219853285838593367640622773449654729590599610471838913080834892467929107741513985907936074624863587184620391389763715910200426459648039425996535959068746636466281032951620870458882624160242467240037502569734999354521344320946655688026533749902060926173985532173154787914479547181109662201964174123419394618124055287604901462636682616699348075124241511160889074077872988585138008139658421526029849836004710077010914028187305427917496610020721843187406228868343342952034344715112287459887744454934393031105820971046384818900767173316469097636193342090817326129650118625664585729001143658242511358896983293458105868208596902838065139761515847637044805747031698180696823328615715447629115744515431989796438249101746211637597420437769060718334718437047573389960771589576026714422579065563597386564513379731366052600685670110383229776341968455885407208343022750198228624468844440757084791602227546681324617109241755061992982100961985528813643274094526705796694766623458972415493286040247602011425522936885147769365314055590638459456648327401062331530065483887705661375402832381487396263319264000210473188509540643297223373406085669777907297898386601873567028900200778972254168604375327914169660080847983638223988550972855883425119526425988010764830254374423003437064860155183562137176356647584846328318210842037566360240545685978515432202679537178758171299057984104755731083031528959928974629103669222206010730181026299780792176004142311291560003444508172267610387341829289192923842755040090019875656611173539911385576994589927247244566201141044423948060918377697985335609921962307869086138830063977980988652469051700397535435946423184528398514127626804963164670135819276873685384739706198242525967438834806850193618819989862838464817426414337826460578908530494394336092053909387559086547119383936344213109480213829372683657743508317988861075367047507365381219117681126906752477917386090799455285471410917721701546789297902522941179733315573288925681363577114226256512430488663246350998946174892576345980267093175204773736551972124647176680611908534215940378563174981500646829003692589493725518826559691481485611284455790312237498322627472196153568251910567199855551935865621898605382251849123024700227184853533382900775490986829064350960500431043094753980117211955443935517376871609394658341552019497898181844758559434259052125121826582373137234795769832057288924905028608960659989087086405987879241508548336572968897503621746572691852660154187448741239743624654642506469160290497472031403001586024206095539470594701541033726066930502091447186373433153675809731051308789262501031408488476847109104206313261934702989923332620677481837746153259569686597681494923847360461966704058393219295189710716110264029501134305083859930364655447656808440551520392237953060122286778873714374723402804165663953457132721594332400713618992473554647104390049548581034305029349847419776453764945463296727437241868439944353655624022135865212001995713083482204540853594972001543393903003086680245957477445292062294694232762563403281564127106827205052899480923545293169605755780736194252722375666156850245627052397300650920028186877496236960552731225006068977951996499633652231112165464920284915205257793539802290315689314451435990930122226771696899633940106258478749399835567527836399781340276277831240557918990760418506627124331503171298817484146624583294196856135065781079373470685477103919847665413083809919165386066465706894374243934560091271040786911722681737226243097986899681385076692148257109121109644413483408390510079563934541103672885528177056343194817307224415781357193241725156749624630356195878637531619743241889661187392983380406080926572723054245193864092723894259732466851586074066570019038922944228389430085415752571173310047060800032094669254650495953763234247488695180146803670171444432213000506792969767328977917513502449455538498118856369048883218725000472798037363658745210617504463041610379006984012538346274772110964463500405615989876085309946467385675751837165963663900940444719967339614264651121480724657132347043331659057861556268443373956823975088658142166003496559430234799504141692835865949262894196539023770312257195889623084394039643352132730458574749846865498669856975182831414963844012524099342203546883813151739076934481062742244636928139504913506959848830876306463147238329579112106601668810987886102710330649549069798932498122013578939548123399350322000196730512965374200816484453215181680785131046827264378666160021040612914697767013092815804732374859290107090725282078454660525732531393343631954534131267626368651684103291867294126025289415978502876063766018960582611495802687511879356742552656573693136133507355145592750030635833807046065951942800994917854141091587828647637906096138127436373936364468355248124394764219840784354703134973566199705495954790143072211385546378339825307136182826455618559261240171389137400443173214680841359778442552648885022775247247653368114023470401325213787740499243669449755642575800053292440621977025001289517881553122942151195810850473498177812698766198598313015983519998116969326760409931913496757825346350657096743513170093850069371864015857100677232927376824492233227221540711521707859123134219764897527013719024516065219759850649186593921264134420397361736062676936113135370425779016590309407703766233123843251693485307657408011588375908311698297287988234342790185343850172375471207376538784777869828299460138243131345274605536460515289494081448227042863715832228179173548534227339622681372000481223453982703734216272992540060268489787642595259146835463637801522071779988586531469183403719131025259993515430314154379401055111394544828477094798194734962559074615633238148190704538816685869004614436147378388474966251811292190320963830530602955666681063802680386882956536546278557418286251754623099826724173688494680028690926017902511683627380650261243363177440894772499436114740950398546124684355052558567261538212034051731120298747711048048889113408465788404864244799014790594674060916719871724136921571581010819936894406461253049062040524405471445010311341766426937521738800348966420460233562866620566474157552705285051891585197260859174240006281160613688198311211781514015992733940783126062777689373130974878918623690531962936850062307547781086282226196342170665073122391462403398108471225758871596284305521927543593662488225213505756378492274790236267414619987411007503644234036205555429183222995945511034113633427555691502842144469565345221973041720692897597061219008812150080346128816590501232379967489561468854450465058852606830814196085737582288275089001750062144735031448870112530382874005786645881451368456420321389158056714445530716355162075936653461555410307901489702040162707686052661568339010008432291067455186958205568491524048296897432469906735406544988537730998645032453910387996081745317709252138710107433868981591003624854887095334137236967239178872965217642019060099128076636887194528765285664804821578702498242256509708600934724013195970484061472250878292503678647321615849305889879721444850196802758548205414168037648444675820403393625157513291419866057430077135720252543191330890332939850754141571599388073420801388047482728169743651491001496485244127551808291330876325745843634243563261916653334889137843990128604504060118304514615374813880475579318765272380128585680864652462908063291544622434562838228871467044410314717272722337238348449732060602201075767632990347896857040713807905306973142001657032967209566119280213965561830315352219411750080473302709027513609728319038090395304264262510665381971565760009626242819071219400842930142998504430674850776620692230975875561508815359091314203687909792178732603343345412319436397857644029900545262989972288526386724621756862078683993164962923223442978248161571696657346350166765142496674827882589507109566572988889471801330009022784413586187878401233679084820007591323427608908666377912417510319599641221601426283843829152250625250061741206459834249015331189662067696643014457312417095811775235069471218196846515220689910263843765111170829905035268983111464005892943313001234771772079016957461346379099898180515126454834587640872420252777907754024358514106013572108091167137892187283594961129502652412254748798653300486526131634444453015911386359393520411524821724963147544666543229592955783572111719933601078404588256800982774210100897820896610156145642629552316542581844779012120299476120761782927727966289248344503234346616066987494896762759434366173736146585021400970373595669974742827780462931837388075730150561177864975464581864400353389251855322798116092553451446242734590141902421150674858671432895207140081242990991209775235014484007219799018575086921816804914810962545214097434097239516406505402046586718098179733758767440519206497009569643992230113654951054304162324627139570886551768339886983868266607823315860955262673473972054809323636851792611930944228745623294179028499048282218172877421423575626834482941445512918456536684953745964701302578297049077132714263811582615915348128262488304309737383590486952653192248661160788835202822371306006606249342276416138357715032087626090785731572422751394010137368824630050729762695522326258491640810601533745158181164332760062523132678199985482102940708261149123886212926299210832666407610936225098776032501122716799620664260626555482628712604986584087671148043553053230836879185084258136353901640075208767565690983753560557510320456850047319768535986910447587001054067421300205749469731622197872964632181483045178222995176560608664359130450645896080378006383745206463867058158781065316417848237378697817562964687566241586706045017471453529487461725576558142059683011224199792566159577479773615285386894886522914129842084589867550169229171207578969792620895016989857063888092746569160795803705571891914821239445268533323623281424436152889603816266195521770709309905433576674688242497227716818256384287059906950276749031112219105973540538679207445143056559713584508119271801417409189559060949068763474985538386465127009236924016388237605729339016394382811451665064773992163957292861296419544813052111088075891330025668533985719216224892959970056326376788423289071402896084189713965148913889650893474188167755533750414332902369475078072574300736272628184903377074036597216385031918596228502304495702736897746224262822179650307679459205029167526572530768478455082337269994827688207485346797578497125255336380960318014716172879617869993556214915304284595062150916665117309203205577212538118000172826541438305085757603727139263967490343529714232812453907063857923577084982108972138474668888584392130649726424325047003775256468883725274506954903666674754962133589500123298883118528391181040599375180750084965765621233478674393550754793106871957063940851963038518046167724688113936139094354680277682047467989222843532112373957336563001647576513443967684815195787226587176000661598367532867624971499120135600570542531770387489348240859748145014370838670100345080391965876760334489933534590163645089477809955469088765688415058555250431066864017046657201926557334347225780834927735332990682835136810859340919165165998128957974833530906969628098422694382871316161173914825530132318882036482695407696946771006559131596648049529637826967682110441490964025356756101842099578641634728950983057381669166361634256738324459246024879385026376919292219209931145657940649040899063183721008656477914165383459352793599099736882839588495137263785079687786178411592120684106336279420085325456559302583753872904271358320437311365993120582859860239668539060187786625779087263910449166789580595190129362102564436095529622860032867049026278113358470428164271636330300945829189268713156767978312915809167087538406546861911011450099712139192890077885680780878919502746816865898813759196886523305176563630655322091414824843553809703488995184392237212534455862416371700535200466842370077596788410795425370530840792525428916756964554098268263239745572683991958330834990133437174484942033014311083925459734718555710880916445472972652621216513438036836324040680604834903074132295891729298890106142474385520276505621436762782291817657917473614320917769406583659351880515029813454281561893672397099892609986064663619987486590589819245613418703165439899637305732547453165158431906489614348077264799398860429875256227079265684344837438934739795070663579884835050832436119076565321155132248003793965528046020986008123041121972132180198767789577346504200543157671837434087537393760794150667402456009374069334689013465600625967138700062032559291199735574690048377590833869221636104016356483601783415952603363845382118191914113876358682213264716500684056650142635736882291899851393474845683236994597125240041944407249465288514372218970700271517055196179991088961012155758134719872459133337943064196142203994890959773094337028176585661737234929631267453593899491529204212017100292102046070519713012392456127236900006178502349117943725396184308982367707658710374499442389188988776290482556854558563501347305200499454330260992400925583776193131964720933125138657604949403819174683548575937122753843685026591209315919454696231944121428162340732376518368622006293631681374755978926906249651334551334647564153714897636921532331767725464134760198098030045694364556788157014600849506218541060774138466199397411175537863064665780480806316059725216837810657206570855697499994316275583996535003042204152851541904059047092100874386657512935779663302290252392018902163543595768166142267859308899275040008403714645345211295849250317727021367084753502586841390639126371230188732875620303230384847527981075754433806935334341711489171020413034877298869765083303192058554276664338191480771880816257093036649885509351472816875001020249509422808516427605508745491454543434574986873225889507847672673903110453813925285450165294363206391325608695896838798812832559022249230509837012754965189644137614920798669290399581266331547167335583759284216701649311114563400508783217058072745519418437911109676527238765256172202400483154385735536831290045167592765476855884933115712311567722054666574783599143987732289183669966510040318366615036551095391909159930559509127736091557116538515691107993480057526835516858165774162171354471634078442967303463732424131059632708854323158212786280105101371634546864593416636308766438300175735218110493958180207979481174237531938918284313942149183865075020107637087450225231792131605705438243002687153852696228784474442037093219158339825561476480387735242696504121648373900626032746836371265178125377250042438939532792976133063785262079189894479684832216725522500242718843545041380150273528591431668743516363865514177845811702380097593570784162649380779199406642309274621534736951654118467780259249070458245574117915652785281433583332656103192364866633737502817175064332770278722726832647693153221783052222947318650616727269643420186618774090488636421916763489665956005289918325767057305135050463525022702020980374849826227170665400818729166004563266866681561497352165674750141788836498827778033163565886286631054745050708827346639628435362849648560669454746234688655539333443077765718320726611961334463230734694841793371802691021910949082206064337420151229455151313364736985950765481080269691047082472683305105650386354332747160174453178011694899939281911489611991468109780895388471643348340715101230170996409578262009198208507720610611392406335406060542887968819410936066025392536351322821866374652070675093858116273258586883561888679320064676615058674585869216790873033794007591004899839808445713519913909582461021518307802086093870811063702183501709242733636920016294068671344485315659980395671719316556037411025508204564895413970277062433644024156220758061649073320474713833642368110211650824326616155204727697925535290361299712189425199883376013666965714675770739654825643590994606232808306871887775181613951377623571240511044603021576503232471485735832618619461123273833428738051466350910853985827540473436991126432306338799942802616350305443283368140787949019939321134156081279645034787451582267546447742533329958470642480633883259680195882486751159006635529614430559232994575104369413631128705740591794071768852748577770661301569132817584526927044906605817211850951202584585755145781373027160521245164529055306527650257879038570036667524027669682814899767470104626663741629972794945361292472283855280176577710074144443489881600832396779547503955811722536319466835363535726407717282499536598294748304648297413203246494865630283658899790564172571334242841034907943512704132659460660674855403697060798603045569764256485814720163596241246089198597750041496456860180211566588021734396137091474452764551981923728789944278741862516671136250538060517041619260011798418840269968063479181008322892309559255519622762362230994075017058418648120580874252581483134727551551996953002375806900304040603666593310814791746385201312450813926983174351726379267352564777032096154080538979702351503802858623212387713223891112460595230296306088164768385050154147318221760136007116039013929007252773945990732853708217678451737385473090469605779310240240680854978643896959667242914106136258191174705690349162715989048175391111296952218948359346384138561892624112503657137584310248681759849265650602775225041749215755594458095219987664400636052407771803587607943628972577237043654469413026080309223730594641844011940817327617591144116535259666852744229426675124882601575064211209038085162381508642445765241481022634761319634691916808954011568138573409393546023975925614630142551162154834203799279031199735152757471640233536360680937607247045831148253315130137034528725765089000356690855742695836343177459336772307768913566143318015937694167949288830731321598690503485054245234565694906371059965924825805256715017199439889950712308676552933229100755670747999956332340994848158470654804652552688769869130901160247390635442373174069914719398768176205738030017334252408874391211220429797593279730915957123940412277140821424053073244820032540855742523017974112170325924881186829000264686919120214634795586413985341820408281973390960798549344106413945357594825090277294119664646623402156583450685400002734072207995384352542255000797431572885946778056644370685800335765541319874561664401328495888685797863553336800339404051121493235075524424337887835137446844835545883367139955530131312842331586596588465357667735044626021329580900422084299954698446997426867210289116210223037943218964873492461330352081704275145269157621192290555352032341662674809228690138553120669054357057091664569684961361734736204286696661771410879822290308710087547728940839373938387090028286181837119077494740145929895206888419131989374548195606033153925715303019088995031412368194552975780283872406610235685887085819876477261958708425373117157226688812995303184937947082976323245835589106320844686138381005856203156161263614066602304987640707513224066573984711713915825880421187676204793801970414613004582452202281645975416339026229315995584631769583266837210175745744934294167159649228381375227801891694912779521800688576862729439835391489939437788975353799580498990724883614388824500393634978667539440795465232303419404802922607753907734403246560563060963425535133903958838300633613745082870156791242978161677817968083396836201391253076379577141345987910542589841184031404994864893229594960580728671300935740672968980552088181376988741749464070567207875258030396119057543944814988146390358938631100585588048840051973960915795866385548659844057874349051829726856565820806758008319807241783431813908478658845306244338907172375233518318320608809128983342470382271879625783138438485500079425298632731494366973672992340539402337953169196671349014206279979043171433077098874537886716590644935440570608809961512654832189901793838239257468253250037327151214504950771338499455904356762302873200788413200756266965104604648416397716024721839895296164318296225916601488411336563797325053775651515602878447725216278269434452323784690674075161708536319518107411693939895630287101239308748565630252035172478643782261777943994665097316042788508598521351184307957148318390479151319010759184138027275274087347205660351434500163414989222114226777888286645479793504929628330960681484148394670279619046096276658392742340943943594164130885023143382775975804806298196160653311928524998736984037692706325836119765479018829703394760195807857665494802227173773273551798027156193089511521932299123747986892129814355009529170768979811807605089857770978412841270570867000705043006466311848456730026174253769963129966135889960074752746575312952241826337578642747059325852750696937596495855564424655643558567275070354405039616596966368807764313861899038582655442386481017766683456203579717496601762167726340516553154145479682568959012467740668193152322445999131162420207072718477099859177461957192122060695809432243896037717881716295811471391721827490172039531496546482808118396993840548962986185434011127105110391935631616649936435704561066202695665203135566541379767453088808698598260831544238415775667735763535708305296847628606804782426495095389001644328924345236891449955907457639198034309270776064784508101658048706455723043407285221112984168977384797304940876559919935639936065155816860562855433958898101307205004099334512455598385254278636607659641065485810630570358494928796869191241355569522744462825167075636204726259448423984248241336022420551578857326388020245391508473043519039494778738507408067393846845095265972253785934366817491541718930945195805046286443746009902845709430946193898763439754141418571908859387196646906817567468152149925026498837903438676463928961478636408520736472759808012465724094528615109164596597845989540697530928432975724485038243012885125177877167922364779388662010283666986492350095774992081893102284951877847699213488658664499408512774624205407615786511594114684966679475989209348266132392480782280418011117981466369558145788602430050760426958749529674892060897241883068073255963763155939571913120890578143555134945463814784190578474102417001424907322474608188058725226094045259947900752682124058826520804329167504323590133146678904878772201617164109131644936006986802687807740902684040630630548257479284110755512547621524592605376026828946092808071453297491286932455978558935536128784707370078564522941298412046194237408131122427926614507936969059096554119581695759961579686077516142261033336275586227805925710602269644024094390190723592475924966640727896586435316783565834532851985976021297190616284117254673380872583294184496781058803239557142484968320497699487901878054321972128631984974446699967338433643300377917019733174004253913885236233000815891442670642383652948920043973571355604303434699557408360441944159196047506384347603845978765422469368576831915630024139918767435016293056489082002563040025217881181097469787919724201822162632187555076637768250794555166897038899486548373297907074250772871965185177040105543015801236247283562973080200336389296042672955275744347288861433745738739835845352495888251811856382768673972399989920361263925198128320532181313996686557477196849723029474911840140800773592381866138210511064864282624708440586691086060488055280026729614529650532424421801807787348846877263845187216342329035400781652184357460538652797794067766742227522311005750178483864740547872758051859244554712394085395453998912569538711447195361458460826793020003342119438596980091909804884466828440888915096593456126982960742151209792811257997399993261018026897803617690115411257780502432955428793456437100565412264699026903662898140401771889535226371820087486420206124604692058359744584786995983245345588444063675526057833064812065391579436581403778193837745424655561801817813838099246941143774549171800781969333620869923898864204039385153086541905867106547184715215487994543517544331085353940200727302502271914802996945676966259982851379390859902924729698161018918825052213547056761548875666849956340662655644287488611509914928534712562101818489507303483513311820648900215202278578517618296134570837582141256483556013107877959116259278704248632240251967379629981000373846255243734311053597115547293754750715845555428583902064130643329561321729317941146484687943151564857900832241061026986254290893193521599313245085669487749863864582566793908423771627171873154727807288244092460415561459012449692521356128426698175646221218161896348290557211026232847444158054573207794464624688589367065101866610340790092672623468189389475810815153958652354309539508585907481978937880251418994424747638289263568398064760468253302282367832235760312616744734937675199567401998901959244340941390085463947726558199569951619941074757747176784388998470066748398030881824322444061177061981630082925829235386835134270723531175759243980597342425027824410483649572565463563300091059668606722152169354756598349242297832257980092038692097358719936856374871707531276879559489826707853034178735310617791445523824574699486745863480430590171520725916375678985506559302682108001159873292150010226720830926907788570288212751722344294178971873162047925771212079944513976859714019710440623650721583624603577706044362129313497516040078425159068422073708548869813330974059415414067861131327296315836292693348747924165706519734831378310255266657008860371164702171270023009107734006245287796334908486214171054761323794504190349056668409194683549645493643925680916309637998617681719067176920551400222152312714551362913642712159493233557619539481969857578586321955509921657617670060117454612050970435690136657660720747897997659308854625543946359740300961673006021052702541625858633945255282996868433434332758893887225550246065664962826512773595383053809352608403762061408806677025839728495301614113047060102521124808255852451593932553126847888288062974470839654184565696438433685269920632812493710341006754345851308371195788423013515476744036327256593804493923936216566811386708792599323823462465532187984384778252279945637677864902143907619932438753564298177293655173806585532395815783293115334666938165406800502488850283852347074366273409655933228613077605135531448149189181702193573970133363026288084408300230993262994998449809129110811195659142584110596435906296459815490664480339892338008777844542234041846547296447184285763213327492067858586766801303467557687664711732763775555372161667991582858885512002206590649244819711854682650180155483743929433421811440425369207916565754298398193825671748717697623163102727188300415632244213033855082843915324723446052298830847147849842078793144460300103937450147824855663988014026742411598406949056938121572502529083098368568134067031461860104855216281630541371078422258093637829780898932919374199118173642947421288485691491114810460973061204491935482752133347716510434448632112509361896529682032829817467799612111747956614783283692373278307144930475668393340710648588873399859314256983097163224313166936738616244450164043584962454222860355773764015864928783843887627041931901451507399566271017623053901454416145231363710980674520319188653521521054314843230920641744109935815554701255005349304641351429526630549936908193442125631955069943918265930819065729512873467864771425886004476499617473064931125882720171889204740919903547511502958276907261766603865345778985587807970193287477813715521291426904635677593598736801951617488243001137588647418225105420201568731873442114626094181786047292918799372540903165160099646231948945333935287939662959391004653998351555346902501859537107377805394145410283607964253048015851728960835761392575399532977739379822946596893850970247803973389606522833778752615066879600803554661347336478055758667483661831721144873539624836858750096763797857784558009689567571158594239571904765560374711063000453162504899878373294102512210032982311627952360203584179001755105858804895397033532014239247875852423140449323482737086442478070152837909440043586193701643683613668871820280968212672054011622253585728485167865810107941004132271082223056348485182491911994224741496499635169223445123032010042070534333554184172103348428028691549760966210616932981431452574056530032617576090064581549328826928514105871056726775824619564718423853526031891669000788083450654855876521537866221723498075222074664959407322020416978578917568320040664484445742202448518261615014423642323248027992734698833905633326295090796372795311396569972527730015332483513782459727407744463832608158385351770369582475192187350894077002351478246818691101705124881283793454726243943134999707371497287263231726810508172230982954658169495412055449942627706801347623083589753246745542441269719679800213249272776010469029348263347744045324115915684019350690279257656607880741166020760517918585813858171929947783024390248087187422665685119244937127149793974241554399503873916574012031745792825261462617352639157763079949946313857717177280675945847241051797104839947133969527300972182459705963496759310343567278321695227884639517201354827691431957704801405094776206798247733164526404778713969307883608358764942293616736684331427249416658482213803487539284725872722022533199184489563123607295085972080672771833022242367970739788154693074084538983283983754735176968548722340977765153203152592734590047765765316225505158408625126881246309334265963348052904661451402133902463338188245083195272186868065956827406915742009904829051939837147297216913584100629194793239362799931573196180831815910715483736960577546352272789254296031068950316107547991127882536109536804310462819651743506330027967444450745872944770470909586521849363290544322908029870311523480615122301360288625444330292793273656923253774213043319456155016694363198818313557647567274911799983490733727608167896390116739438349236547568962933969807904380683664159440661723862356247151494875016150738114091223776827448883348883061703799991818422568237949676078577168136886393320492898003820196220365221081572097604198308014512310979581972356946914796422059053522889105422975900879471679480438571770709404827426758032435023225577539122342772004632291051456504093196947465504268472505684704441375864841301738524237372168365004815119900798129747618151578739177934872741378378859639694791133736517175694112329202913120167847395138843589753365155483018680560965681415608283669568365552828483448252387373784193682437590796836266693425506950919532689915842724192902743301921770700555566706730546053180395916321767435252676018747256044626420213600983242385303257519241631872107522927535718469368679452565953918043939690396777963132512636268242841563445026711169935647050754905341921514420843298273475006745771216564770149713423175008951842320288874665927975311852363389977206567018681046688303135077539956763753940877234919410598270661811192945318669270788973171659956840810732770447927567376943468856007771499466878680899637492629424743428891925324879963911288002861575882384264999092702383757201372956068993579565650005490819849942014157222986219838630407773490677874372056814470683674141049608471484555959168225698118450151656899972300065509771879084300071821459203472586825336961397873423914358834080979747795623808787264881544377140074549426194338932980346757315063847683355059009968392581505454893291460895572752279559693050191271157265041316464581732577216308903488671721820856235044375853016093325079519809353740214124979195967221251605510490204607994456397460926382968432859113201020856155638171063083024064508773557070640363871526353266920117197812082523974162264204161446417421060141962571524355269490969627065268738304417330767952746294348167350812838292085310183109462216787490272724514430547930685809234442387349230838117361810462285116735720577328274415842969298136412150935000261154844904749915682183831943120267109767047371356917824136814129662528373098502473895837974259955396615217074562543808935886956593572829243775031144059370078683703326221148790325853277887321887219288917512178109267907975768037895106936450944497659984847873507835077934653441988820914205558466316451228123517209280753311056648160626700601474385168543385065433531140856188135019362795513030269638940324243806193600283711015721007319783679372870384631401570587202892698762641767884327519853239903620282723809602577840996683845927955307137776976363724972627352201691564315830490723861971460448470488466843717768992243231745568734367204682932383820419068510627429793085206589011863603722245498342781155693984554355496535891616209231467834045903465493080494974558643400621496598267539386968458512141796133486938190225761258299336045452066947997469048007442302518103710028260333597013494671239139753710042591937815737653526328474038650300333051056757255124333718254400269826899703884219812309620800766881126753240605694577041788769559765781652764915255591539815301169240930513241811229561401043311114693620839717400227803147212572177733859229285627057734727203553670456726304740362103330200306642924962977738320921672306623987726456618670471145239086470762986861100516561899059135472169433243700808848799804933609877725046746581526465603859741298632880918736577399755842907809955139248027963836604359617657728643004397444605955473216362295635129610520170226119103029023915042688948869920940389613164883696214974897680649870862439953554208714855735275133373599239896751335089588763591969410712877409735239361661465843514788232560039450074240243578586580419966746441993718940659529018401202392501048987639750786056301871813774122922886311324055950031622720873480151782747502154531330835032957592574976830193465629003481057683795428447302398367189450741723806113442284233260745904285406203610012621509225103295078197711557610108601256511864569750658367375711116583478601785344602997185386606520827926314671147393246612149556422518844091987556582590034948793485447464549453215632919818786807862011389672827466761274906537445081496912856406901503771280670763104085214752644218371277845233129049685377541614675910714975148834436863187798155634881180879788828068001530500485083941929021688496829923813093302472600700496404487713358481907683700243418608335565093963920640160085497922909391774931546427068811310185838185658415410136346543305760406266149436229837484136208196441894908562189024383041508235987496782518353631034479734507087913285926905661448611903231467669251137969342081456278293417242417858324552744146600806758951705018779400843715750043377787925834916898193637934037751290563173566248452222293648600411565383089663239461295555340641775188895119722048667243224398310658170299353572041340367644102871915514629037239035852177033220650997565157332597373636233187723684117117761024798561689289479602222518045587193902335449051541409300604948768319774736072510770550113434850823351549024503800251114755211492604717903425212734450104701980699860767840677491192189440785297186299547838810853234518492098824324701828884555393471997442231649717993176894542643756460645125280089923266249250440062558881507598725998256848326290482361957841742396933611779601569256012378940261924768018269652136323346188659599727872119727045264110314337624616486788174733989309590623318914464636048568205280785224268214924097220547473844009063013872312031735242923667509951311568790921927566038701758685202429420899243083733839867384647168118731011152636206213273947584329535324679791861965791311669093691410762459304679145876871201842208318255064293176712852045520293761705465006893613324259693062599366251974715292528753561263430533768180291612971691289429764710829336359066457404061518751890256101196996377298039896522829887844025742106373215500218466905345055996389564525300692107396372639302120739121220296860306403188893728920940967009327136568066387850495867416664238297127990440718708640586453164222832188033009027598989999295462343976670226045113344925029101332900425319496597803888826476726305277631025651908324676697530832580420365642256425431742919107275050655594131730410365462336438155990655100545669692332109265808526622490558133420158537896368804957007471805030613464646740888642458322240861446908864762434732172416185514984129385536978383799263584296786316545602156186047749371000790246463882938692005620423014620565839832128818137005530529607734635989160126539576681506100452484761654421949354457538026260153229674863218098442580670457801653240923446089356364019909262465573681912866821444502784187924356927607002369979945710313008048958063008898343993065046327238762923836935775868242753416704619944569138422293950385016487845469656613477198457574639994695751214526959591767869922782302601257004662702577771650373565618816250665855016189820074228457461496954710693487810468955298771555720488867225737102173162138165880132706211868232924987936510272390574088753074972403993846029659510622320418778758592487944922771012065864093631410554318192784920422263564852504209926868825987065598218676462796045788886953821551122193242846909896623626811875918115924168198575817426248374766414188468562963471805201334367018840058650676775352296935539209071051400547788840832101613186391808276349432663709233691652102559439648992929998821622927187351228682257311545124874098602139448565271457677710815020644695368317524754730751384090472993920473738368013104597794744446296059009234837757334778686464375231052324017979068042042906142814521837737359933433804297863094236743163484258927397165434767084126896028262872968423177155310639242385829551548837549451852904094690553123028903926365834903342329108336658556489602217413292397876672650348177545640111529448528284733242726905090473431462032063688224780130881844306602064164787738393973309755116624430430711655321544605698505745943948905991587492485111268072119606899769435517582758935132704034453901796903216066450323494065004518448602918872896783188542950689356788244342689251588855023937251850269076484656279281810626910498653663580626659264838109262283110754381406577492747477970753996076639611061897445495744130921946089883027880645982353733666002656903892019958814235579233855329204387073871402955256937253717210060276242310614090137382059369777370310523018521189679201454455843655712630052361526271999390839913418949357686828218604969628046428834440381881053892943206735504984450544269015553387429349915275660382865499376856427798059278599566387299083560287117461636715070600742332979069265893457952164596028686532935107033654045793795784070515998136490667887057972961762754809006434799289822561885553796663741240962836701126666753943146301245390919354566467788076742877063440286419577231506249146826285803782672690869146039487504070051982741463454197679360609195845733350070623368651200310999335413981836747158893599916323207625271900485189517021517196027239527505976633665775479188507845726205279830631008913160123424048979184539374665172300600367153230339107389974224065318129121430967126746544311183783612432580233326256660285187059608955964647912987765976289987023077640313060560820152923536590732347152131691547196111856753511270346302398004163109835342820261297780085056017500983599038646844777316307196934536937711011493974890793949105450866276098128769351402762814352608420013416445859517354570432012692162346814216555827036453553027047683504624578414839364638048199991656022640073026021061064280649177779268282432938806032512573777676555066004676268815799514175179150519740584621356297379666610867876245808418554122597430442034642735292051422410838761668077851003371605109421752285965921196770781668686830068766929480538705844453759243392922203801418656846581248916889344065011862710649033185135956509009451335793215445465340401204073091983694938200002213733395025860459259329310728159727072351755395940859184513596481040232850474944538267656112693677665846095606395676739501925287241645900754724734025351107702362513552553448290231267013255283135092687395021060661028461667173258735972098734211898984165441954410136468367448381254860558202952889049722165455806481966828953005285682873410765746974315404352261579738409471181365820783069304086253990584057196614368782264540770723586600382339300878444409465962520009897740357382775653108030294526795900802825086268343375170543113323125999301524373891675170331566169940084346548499619794285502070924299504453890397468270534471539509136538038690170986564595095023970975736089184883965404118884047189136663320743003907313678708620039383247267210627225348967269601852087007974358001377555880450499341025388251422643660712903266540421595089209817066547856933013685167022712046363965688169056350067625009776286845643751814589432999710646753979467617617422817519689971713641235816618018565137142365855435385821973410138248350099535903982666380515966712896711962339883540002601290544408641464076516615938988872402301274587574467884180837452336533745492958036578667971654301277034964734955225297001045940415065205319323620586981050518791389418394988576080280877814213934502843798702550121924917598136651132635427155271552432195399443645840670608499699004389353138277370147416543050262118843280305748377312831352206119071814637332092389823220848398324116130230988899479637767302510238324609425255146730744552918930999406590512889200558191093935830949335971383481895724202991967289778409921251921441112632228776120810741983766354367992327130455901638848632583360919105342817453352144456174374304971803530623773172680693086851906593859391629114294402837753309243937722325836827795555042184315686995509991018084528812916580133152718943149910167431488307064743716303090544736863719704379771201717485851596653454026396082023802999095682966407746844302445167103366279644754210271992757605825081499508049741192020928862486531731396091175059924446225739748251287399915109947804090750409194325637302303121918107138653736916146581617546915440576979872819663734878406781524373821086741951867207313132532872967979360927691632557919058063957865291779008269325105120143681450873472325119759940986624547078821486095207048805525425045193251594450304160470782188282189734847460566274610181353092330098350392856481709992205181047996008761814509159390394964531643339555338340597068238088462130879836180287218577374894441019544316200897068347321755865151002118733791675462515339275858984246608108459410817852908003678319377439824138711434505064345114477513871112468780376202421568118949934451395657401692632546556925869188173248739382414787060846558417024886281463324113687737500905448884138259974562502888737721987085873726521753386558159497227884304135646201243934762777619527047091216499632322795383175129175183197839060066140660393175098784391469505540656148522277986000421269768281327406794400135920286233784977423997976911744948928591209531532290990981003231961047535665619559785743632727650838180821851512691069714481641918495850605849165605316458934129065507669414617254405139418137414422019383612299221188123188807130582525266657628544353944827479315242882249746822073763450896306049101439890703930615225263505903365718102987645544364216070160087684672677762860657466325594459103237841104132630901055947026982811579162317642960120612838920702271273296036205365372946451343865990538988687476966588803975256569780509051419119961492683371694009754652165317299140087306702215252615942391319920668753744987145900296441274851796227965684121658389288126980800780876889079448734198174882123366258143023137822593382990438429966585183995841639457187100795657218419524672608218802321754244801998259675526307861947316383293536710938264881526471734850840609316952096964017186336796442130683668812034908583805683171641835978344232421368596408103420885862788704564469197054122330828681373336357474965688375182284619304667366462076551601071139918889317654805953429819544347697349785172670394579082721512404539512514828038507580790006614676422382175454338778997275606906964788656778880985957539641612438279209960145038147790032814669707636715629277187493001434173015331570935823850737158444501784391983604757771587009880943444894182010690180910318234190723976895981073961892491526159587674227871753091961344861652712728960821854762428764212639586928925640222195799311524822449887565400046166477663302199142372676357943823231202779201578137661450824262858576480241921692947000411366004319337219499396423032642056719808563982043209980833052701370842131942851317984220902697122678851414372920095262690036529885065985730539976490177568568544561175273810045029800469526952126071300607867891027512604383431152721396527126266482824365772340977188067783010866749756391717981420165939169051068941781216096759307468443077638958760409644502279892244702963530840952687577237498662328247918884857387823104765613951405195426074555902112229531005641198733517144095191807152162441684736724691559512239141773015536227069397432706072757647713499730556023760382539776072560352840196778906158497758073869446094851059601699816766800577163874221185772252828695241762667025371686167736060415794681116686896995041574967686743731186970059573654966492220673263549189136834551983844835039397489414243506049926261937367791850583377675853138705035737998020384631750429704860766197868462691330063724947573934776369714860327143240840642212333676823208241765159881533686860390327648171791792366577255333646022183878015772256140493186021795404712865504645021137300694857582133731188220615962754979574705586361054676272553884015275165035625493123725614542670435488166771672841141480951861316126466481949315730242520594407145387988689631981496898996162877416113004705303825902856767049762893554238859751372003444424666597288924999529797506842536017757302730796736929483182686111711966592319047196249903354801604436747607113239388264151329529793230345744229313370579500431211087786977337747110748156631283772990862874908264833723518695556771347009380339771352449566024701159846620222545161648948963265262212257943632792598610109184254226130068058892453330597582510041069667330464632212487522458695113695172255830336436058274207455923360364918826394287028778622639964203008051240448635158110117885228871782620985153839797530186670123662836068061486521239765579250473043347328215688700492076117089104744313760076497432030382806909736438170943893609569568447252408748488582822991207536189639446754667842767286355837244306765189291164916488249926699373291460235840658297162826433544630145872318238904803109456587133746063920247759841753129136482580455169492104947346276805136982567611139619460441800422577637056384196898388043171095602166812688920508541464160894005151122000801724744623068672514821287948408784461045028730199157881776383832156472388966411434123165312409218374473043982582111148561644972122564325565256055565250482687943968154455986480458021813774950868215597945712101883343047513817490046064839152926889535312583723120388900055698019899915995180826954522730042727800294540473784323336612945169390751235986863967147668009848834536183863515269051933802887140492884028773287597530757731370644466952571025310768894274962481184420399745192378823241064552644214689177572480751539565747155632540197823393161498420552815103073222758792214995961984349735757402607069114781194621677798800567661478762947809556962857283626851319659190747408988914137670087280706269926754269279495481612256150523478562153219931542355310970466011675917315192649152155925903729282080150327818334301054034831138864103221494178450435401952469513049779532606616175509318906842692383155041774516582742242004386102148629187702329929897592254734167726511627841215559264363544105506310085508108483803868666450896873709682329659023086961235255198061888135031611858673459771144211555623710339519357156994557511374062573212065102494621155933795804161931867862029213624960487452407378020763748360127822349051983495253771220692395492699722894497860816504275482278343505015045589187299994244376343631869810827236648261946920880891928134672515774553361704652729851489621751942665261934139856770967872374297232648485967833701225387146783201052719664636847636203411518698633868141019513628172557374577357200933595314460180978351264671985162391170847957406856607247156284157088618603366234943530537167824090982521553668114303968788304316248047652719303792547030747170464680411274816462808957161782407679046141944413221521076654087825496102860763623532737670690214911099724552582446306304101419932281369106361104872216105137315307393728626596753872311022156650318940598213464617532357835295104686756828734537118846644421530389747327684250684362798035929167161418140437129673288437869754353069311894177944380905322412872819608668389928283003352618983937378942712190951499666032242359743196102257597327238371474407462152981951565063213444232532483251943447416834854853965251532367846895650850366039641071842241903828786119668137662854268069638689056529136055479568692453842912957912842707816966321445927773387042434143675580145910474874763593672876044428959253447852707609633125459604107143541270250640224557038778600040500605353486811819246715657489924509278363422228791134962575409527821709969676041090283026595132247213012633108387293423422957797330773314189615254944458468422083762497469513685059421788533282626743914083881384300441001052102564904780600591609396770495987443797234593682438344825356388117089951883954911710834281821750808724939838252519863642147817831675513237329933506049235611867324603249837270252832574542280004868085246835289906494091706740283712941196765142408112619038148645694823156009652758521934772379918859623985412924480747752841597014070893227745382926804447219224820304374378416053312063614514286427476634184512488886248507187006185500703405211164722185396704980406571981045037632205932973493199121630860973656620694503723709022744555434425453098231432155761416224523543222498485714616689091335055457962784428261865810378222374674547388442195693377738769315603569992011494844817522452199713465605957310097506822908935889320036009123230089708548514862182872392278374340600773433313345295175472627683167973638019114552642144823237865732207089882857150658220050272590739907517744220338757706060491403675017711359455982353077799056663894650543152263946642002751123896729476769610691239197634447564105322936196869753796523121446225787743424584953115222490997293904065910406436122697958968294862556576656960561062241285172798369686275431013503563734364465475267346051325257100880324707019977891051055927484477786792274158529978925862877525971830200545024577652145131654334281631490025447129986287610414208177106857196305045086568260588652055729649109932811964544876780055627848966510315135499445167822391269353557581935350928741005079177421938087552731628011598390347708779270615661226319339574961298039380867832725582973592771377657250598146632227424792004166107377233780666540566833831707162297597495381990988187573559568476661094377719293321561121338587940882685218524485648183178636295200929218441812211098146656257001333625624478311297957437584302145152604263498619860026971463205355013002254915294647465211157861389187448410515014250859547558141526436264224029534816585480561526575204142555759469059116094493576453940225092239726635913208282614366564637782574643750828054718584970994801551057338540986913538147949799651167276175432149262249546695253086479937154728830620228844268326503212446972367461498627018384278256239442951924505055975821084158772206638100876728253658122461764034863289370567350824229346515100377689762207098503714338430132735280539198058689014364272159722617426489712605769246589656827279057160502906994692620801971388553102958924151579082778948892811198829877956111579968082622703623443028530321962160964362369949475977186287941640069410567309931540048033669969328251873324641936775372413986158271336446640027406414486747383929613971054686632172295138342111509833129542950352067266852920100022626587032044303320380734129794495515811855072901839751782521784147562289466599394382155876005941825060794761733853240030687684253829077137828477655611195139345167824102937267183831012789215848643375681059887551230516348006299421739122551907773252074141669493341044283600448494034666959734908038858538927890817354909299670451614593776476191477642701490536794315336949693996301634713975838450482887792621808093466634856783222733271398029476486344690171353097336873620784322385419163551284034500756284174010441178283789808394106547226705690873753067992594519143172080905536144688892272135919524628501921491329449920130727095567927354985977053389652037466208912242813125174090580388069958900033024159434497798538925719348053683362687372271246995735703513448632922388722234190572951918731891165215520836031098613484514462804289083473048546731552913756817178674620868583067140586936388134217820412819121254446676692458177869180061624010413491681470465863896713236458838453537286026107775137287576913734760418918614006262789372220295421785722071361242518047161035097352434030885533827153774143853613540390948696187998041505412338998427616606792860974134007320818721408676255813531699892558997752555783051449172722658361906482402805422181711965428091212025870009207596011799559594350149981419614159668323852862213701011776525937223460001607450281571783488610168750813354296475431890522671345668962248470348451333242360155045780433414509785954173853925801029896460242004802075390411417907694191412154164805759522930683342290308805998005506239566910318044274752184737090575406834239406619965348535609657251166946926004780193410097239054680333290576384204077903272579573042963357451704435180898218659398358591413735377451690995821153467947916912376516278997630742219525255281633370784514741539955133661974418477771716735515154884720730879257660142412467990167953387515078063399702441097763595111412988227067685013115464303627524612828747934842625441531743080755142474797276565385766488308087020914113180478682737556378429537711260689084434673076191821658431304879793880107560046464001602439045783875856799064372457331992411821695885134043414750263012884922047559339653535050184452576440064337069868734330831909074328455489848240572187317507642763319477503720327866001036070621336122201859839509694994808863175916776625073481009518316977267355716619271189255103448734817807531518073555343630869120485348719233135950520913893724316923468079277571846294652852595914792210758660353414879290330605046843792316390119560931083815295609189362821235402951523980527179993372338874783391211222444151135439096507813667358495792880345311905179780808037164510638814963259260966644323685302329860719431706529458662512387919030758005376180312258396310143823373503979945526179419377898038072593957713188564927264120490710712674863387854084304762238624497045867960819291089044658776949078313414666433506492283122476421460457089216968923719492877752478722482204997945188656700389603635718678914839799718257216353595522857338625096187614197577252603730043089183376339831837783686090190538906260710762102491721246734582731426950877124978155794360734905419524938144073578146882104623338453711828705462159107488912832789414379289627904607948945068453781627945307068858925567265937518099673951121285697627609897492774402733351986995633316958827124675249265110625190660984962015880402135068840016574169469241663730348534989267680188204744583054032759119897971316859134742734651095724131977998175952968975291715012717446295454006937116134844212230679282644565144026524086550756825046246852705310087313269041136232491640705498904321569358921011173821598332232863314540573241689248229735138869247203500533005174283234259655104975855540343887947769291406656989003906253346881448385902563788195430472311915906962213263676337738633169825343717339372579803304230833457071125390642822235377613083815991996454491680971662310841484739250072639914668649474326003687508586798007949248771028754863580476012002385307521082047083092399911794354628888210571618917746945857279032675878428287833418794450695051561210281560947120122180933549749580973661032705646461712116055637824581384241364315147327374800211452180824281481439409382991598859507930774458497018428116469211966284880974693978614673713580769470660240405079512752649375680975921353999962006515754993421306576902261985823463195040013464238582052346480031669074799925654529315674471006391058975096589690143768684571666857114629626892917076148239119679815997368948125161616195191617983297285833198012701560831875020789099693174805051947954458748919500602212809718720535854036457821311715211709963399656413098574858383706953389478649602378858383976581163987003869347799019629311728782996716979475003494819124164301403883979306147639855471734716940872214331159981288357806785128547324165045361909095435093012215357333566140109832590678136213367659788623789543303633579495116768480507346812016502802319572253367325953450979510847361031876080448786487135598159462112086528743420905207593445372015602488083887022559694901682721251358446886358327464398771311903081432417993443770412909366896827289514547937204578240738123546000792048978412734526010808989803464404358996493540445416342593179858510279954192260918102705778188631259602566440435979012539518513415858017935695659211914201901183808143477157304974031986337016501214169975868650302540379156954735893013712856944313459987709084473811494510986296282157648547031760357854700549291562673897622622377636508733968166450419063230222522884796094017986799224493989049580830725164489495208538473032963230614221616961266486826604671744296911675533548875986534450148014724857089253152217728090476417138261539425361540145848720272890727081213406355047791130154335204291183502004904445713544270670813056214466263157970443139790787655798084770408547160033947293408527160364079944126412647889457960420985101192765745781311555622795872411401718634458006670261789834990992210525939502886201600162609802738968356512181110383501910616474258574223433323578077389056178251046773939171547200617144338281172511469481421795193725559970069046913938803890899304144389259781667113146250560076224994099819546964707258546764333210038217661033724298380806641441121872653916678679493835883044140790280621532177401030575801165243919839275546199385322883131156727714963731043065391073806115622098942886704202886079197296612997475509940933269432771918541211176402548904708579988706852286809588069243167520565660204304510674770194627264361765504438881824035325748248936870688656275991335808769350748815918341685307994787842792855029378072220144456139753020581125751786480401311389009688945779143771889596557709145657099504981322612195034358350863853973918386078374804108056766034805036177413959924699662275274140514653194369519061060273537710673110957399556839387086389472399228343758481720482812259229687620693037538948254379172995835019043471322929931220257366697819580317850425429696916016026892061055701690788234591695892434542323781378714494395286994739814921274291986516471156138514442385008833485684862423492896518699307059299872662106876412194814855236310587083587093069506875786086562748858259206977048668097113660487007673842726982032155246130823081136213222381418363181819405498807219401067120606231592506943382773785727585713838865139228811657978801904343574557340880673254505872605232899728283344818622826632236512756136766042880535822346057555910925119663894897611116915653482991992479570054010992579739048524769565658458891686186393406692725259165528861391781953342719499388896118729587391661343219713823590720271799213071119157389230329513190984096734767113209307674196988224351470857881414086574426652366635144209839147036904941102124534557376698349343427019848092254003192260721438341073355827144328567111386232321137960825160077709979904760646482229156095957040550522384708170934749127151858393553780317167121670940816925673681072694019140320133692047657889183874062896475089325887389602339644288801792924540254679575607422577077248024748435874799552391504872391990521049779187406476263731190332998657081235646400870628823574696343578844642955774088828156441711208416946558281591978787165372949789343144672794066922346493834603754293226944915096403292750942668664914238441692788610192063421975722739355504635243632836660641366621189376864565144847319194821048828549979674157601294588082443869638117116767905822079057116251235205997361965095453814998912161340403864970697943288826203956335551637934295519551307337002420609338501133521930655536697601904954133327649439207662714887488384284814767646338154672800779657684593080253699072369991947590232555399178468712200006837167249477936392078302748013591722804725019733582500503359283337910404010359951489511428320688096495341670924073389272437237448883850322414032468615917776786277198882701283591963381609604433805354074988942481703738934993634744711697755325516262133543942778954556384914348661664556340188816774172794129800289588698965201639345099913591202539382310120892854430512247914254031821040784109081521990698250721538712671487559494758503818054182032587048829474830292025301118435933497418063323890198261820055541210379569088591146898073488265984374726862968351803837556317356323582011352005336118346080465664090102408554145233728920239425750823998688808816948144560425209164973064094516968590107758257632235388718269574584200937178868907017732115478235301412422950584002171725112002162351088793421779672631839858505252720198952572451264478230488787398052944519163082794265715632962863397584716061174661314886512971277112835322956867760420164933756512150594493041176919155601143363289081602768690700765271934313166652405335858152555419706838016681405181708957149219710358899736080957264672977534067018604229427147174858082129876947926077140758747378477050310229456237856189406617183138898025979725395191460828363046388958778440948730801831736073275927343502253554121232154565248459662111242601772731684469423709303393226217563352596966608217127417701516289219642420448079075031022223533753424009444952560858318398037808236119893127206881247519932432389193823113400120311882225402358126836012616199099511610129240998772024386979509649243574142984991847320767108360806326290681335911427315810766259948040051884367189160404082883296517225240518074053952847424687246508641532320230888236375855251056858507748847605025346245125145739592887573559785214597207809958962663676161046182750581406413345650074767366638256693856485375341094249753493282163585274590337207750384933960722359100549303629234890185424465508422984133135295679874624734949504797579404797352372383566380346084133561670751847153913730371373020147998322258381038923954041399515509737902567841726482017735787769816381256758469306390277554249445127007992005138115949329030737272691710527837915972093829377963455523800780581093674309433906502057755616498145045526006133543741865686037721579256193999545637538164018107643709343071098576639542976951841269850892204078581820650876063151920847540648980901698534130393705383496171782307582101438732641558190075387200093285127615379842873852254695900168686710902759644556305014185021447424394529084063493516914710246419957477966911551151880270242440131529123646381726088880113917847527020056264890168682490745471958375245079317845932873849970726790781329799676410958924283861827032076921768937666640865449603563795350774811508923434162788027515153464685192242797983933713668393268725533365941685614404075276109648632558496994676656179952634957466644608089990384833258109663240923119786750416537729868602337953473545129178792784274525322257880689322009358261344303966256266612139229441097585815028850260165095948013797610250585554036392952354235784538119301423467473984032373551725757809625742052315730838539175275167158288558144288736579496529843117039178027696869887427581266641645370216130724760331299513459915414695618916093634224398572526662884818692337535992283009009515979326465672561071827178162359687797809105864502999499950136182614649475197816149443659150350740735689975291377218961877208925433749523628937156008772283110758921821027652075807782144193559874923243478654565923596143675365185105237067112206662843929998196884576087816673478921878783567907857825264524238557951116545257514737987615333099779042144339433480414326783012166559400958455719361160324486263765559040939313209692572037059272913371032228022504064460484187368079401172821417740571886536498335008397090331038082274401433234638971117178728863830423623331375996744123814639499886262584292055680710234177188981658737250877827939156247390605985347100030225330191061172436700523465149861962968712466192064745810808227853290903242274983693832500136869664494131997264602373309228041781604374866766995060876880666116767896457971161035017779375951874226487645625205392403341483013617247866917662903485322198062140281721569625628777026880250601752868995912793006733644885461482809128197725397158015931422760836595226850140541776112695110560533571369899175692938375756665307281233561427757589224263572490335528222147608076628294523588180115420657515749093447409971975578650519827366259055674598458651533054884146643325374004042632462991704059879914003620284604200652860908532385898495030917834943273726231424013886159240894993836668113770410724777469044529751010610993163234853830937135738322546733896903341306421482629051982858938236303156380534041174508771282853510577968308939104219270002656790904126568423005816491907139037335487647661732464053123491722387124269173445893599664820510505833511996790515447801946547070717834817631080815380289969905166473746256591605543826747493011432290550729758210653032589154553495063185123706549672118225987466342757506430336824888767457503955800779940962913195774103531194093386710025180025213290890390163633184924637906090666855927354336065418211034968602719795979494342654439093778089493553027587600715726362167727866899482922060231883421906594103822644250819409003276121532901465607482335768859422467727773908753704886695917164057409136013877740873535428468253546367322632933700075186001505054684504995058749875192348477668624393873209798907572587750705503761106495482627263530020695996032954005124789028158718405931697240613198841284434747386606077512905781904522011713619163030878527957456525403084260099091531274527084117496154820896331857528552471078393892128530655111445289851666184419208627534674904750594854401185318250562520882534744790324118699762611520014608842177123645580199549626262052311161779994825709190329304164025245117008713218116267913231114308850807337131579147049681060507499951788763870182978147135760334319108910000519336244376473303833354954947859138859392532080720400277251587350086643807738128855577649806757765002662825360311503827834045311742895964014929332581177839884606644761826489652242556129957126449269286670979565946104330598298742406138493342551883990263920756993021190637290586327408065327750868300432076109314780757526411790577663199872161898774778216186246461963454824411265010759029264846453387461491215351184337802793276098646834450280666254353517043094554854407346890045638152229376743664539764883664555788466795282392768581789995397867754731033044645117886820457255004066179183351008833561841699584554529048724785845322534905602998184392510557614436859788235840600928479648997466065478936233089044979189769958680554627347318606383627255911576494406756053026147020608870693075246503297833778406539472688482674045471751906505360268507810434997849255861104707847754618696821129396978493585416191752054839954293064443485174732627398755806113978026214999380535130369851303233839803366293828261669939896374397977081028808720318531215224557775328942675465877290845470924802847689387373196201044114453620951644199777563129066039764361106577430227745227834350567285912236444290206624023937888904772503887900905456747200040884327606267366361805318296465147506188718508798653423359976507024219910551694711159670023899695970282178049775714353377316534030575724180673159506556198002633590689781084786933275212248377680897436661255943063921346267904905450846214157936421314757326869932352395980387382483374622961149526881609577471240154098975011771291717776421984956117494620547138272327341579363388582223587451750416876872029340081374856137878470358174014030320435723091436334289993544080406968294457069372145709826422804533318009706359419761764278498315857569369556732253051884901717154071033734294745419975445084954075556266417138518711897836196400380434931856011708010362316240436878192159531592042362534470173211308404377758338921059577641171112686798348345481757027552430623078195208958665056883560388677608815815681999157083696587090593108754389181230585850781443609158580470540419709226036448667482724103676977114604732824016999815870264031990347123203169992847447471499906449276177958401372301179000265793765717525442458502108551891782944278597438947790135418604160944723930903825006829239862340780506377786003298687676846230973418631020785168943746713675155207102921657319653779309373354900995767966923521634736922473414659110276687125167258606518465181720052910812883959016921407730863460340440294538535404386380224179975926988707176424407268178173789565386723217457363848950439362759655137345436338281594880009273985474113496464635230546099246829951393096120233501913264524944895093608760213575862005252447907076167907236485385921710547255367236520367098143102682367077307889783917709984236716847260387746291855025297483965108087741399862330583903963294396898223124472061804407513733189246780183931949352176033727674530019795443713857191413726821088949368128749054537090953979869911447488212221033214110521779514423991301313084911738086527009926353293985546521496041484586986214978928068757447157735325579474831588865963230422919784420329220458648680872107923304552549251020419600202593365443627055628080614750499662108633299696230724702617557461950043187839976525843836939952361260664977716038687833473713260815047252695182843639839261420683195207416223750427903272161672736755747464201489771012655349533652676620328496220348651217239678068125944262315336153136759203943457949259581205022931853796454810045834261188069258298537032452514305483443679425725320415193150950873033680686680901539327629023751725167951882630354760940396079118536663654640564067041676417741919577587506545183109539343590004345677642321499740519688981854511050030043628855923601977279497279022729559156377077218432925118012730354006943690856729196927321317692009024552514559269764881352031033345179674796528427302096078558021356368348656675788349393033763840222970609514493205088746048137537124665653752513174563762086393085123910671055622869012351673328566786153573960757951633555798411138235225057909389702042594369878652873453653024097508249992728695522130381439638850655484410154582914802232893458351956507977433079683136988365728860996587117440203306122130356891342786587006910729042040517424845947008367387073114604152951894136927652166824320711250844244095642814865995274241873524250961162245613477347731079466689419250585890441501491119110294210907936506941521784749647083226264980889732112231687426834010759711233095354827391140972951847816751633261771978360986845934032501082234998818294420519960179030977206866675867362123015546484186436017322387384387595780947736023773723720148305908036307418249092470978918241754134118085390418598928576261117003078163607428116824833784511224082143211393684840582883562822873646334749957374979238632050424118177306834599814513577523852675945983921623044812920982601844782365884911672938118235142429518600384418061060760413669232766481636133751861619787914164594305498837918667321508859726182783753160824240841460709550356273425910849959222586280126068863145619815702850838442031978659723577820396075912608396067088316806046101658027580784054253639467565168212547887665401242356862007043400557618524915064852173858197215949076199525033063231674356278253855756136112012223434317573554433626757006323064700486203755261421982536664879410330204680361811842192563596936111226542766002525372493438938298138378748271006398052388936630571160925013926749099838067567476427077368183970237013522088731075556211725874477768905812438556105838013006238983142956315530423279598989318472657993355163959666181936090527753117327044973744879039105055116315393948102375962730068983790209317564269087795258585405523234085084479581547635602733131867987161598743436802211627285595588504580117619959068842256727439606749296526479845398793511731318724591240088587817719199624495170801237754069027817237124087973353563437571080668250408348479456295187285640805129218873140416364949286560318406252055865942420106612939790441046549510557095875827280558031726466652498162628745932785893388938056798103770837180881048459385898281693551428333925069551903977362186988913996563632588455086229572459123305877074399965159088989712341702729062807289782120958237157097070024932635874447081658263142950181157495769916665566718100597145077225807087436406462197300175470229112074901539883799479980786187801012359544658887899801013662884550893349824180413359565634509841808942242313427656441419980934668002966894244826413804343485317405328036263772319463486487723814367737178807588957153104831556315578602000275424978642255736889081756618101416694444345194966842916558146376467444178505192506443209852176382631237142477403142603694773899638657999241395796152416667708923603178946703965427980138348891314853647679524165524301401001439596318731654900959960146423914494002443024372606781343369939525197222579904402326319220892922789463858463301252525219303502540158342978931217264455659059685501761353471078722224780355010883289281267866121524990389389956871413433039990968132542304955970985701816843386101055145155451024954855672133565680106651972785444036631280879607828114962725593737156712952942935655624325580219465659995076626726093751521900654511114740678784815303733279709379090332259848486111013934274373450410312133224373400504090227039684813228091748868537452008329450423480567533508735416148351242796233622787452285089440348935677150759664302156962279656633885107851287455965241012117073617338531946615548078464523767225395624956086642777673674435205828611791992801303122380652927409096427647153144260478141311387803766136453536320600159226521944599497739706054155461581712953950245987459859800307861386160474297123807901872353484403620369019625607500671031354325958436994867401857751664334303682965326574038877311780148571185388964709002250815144068422206346351474099293772237707662967936366095922989929594323572770956372345945793767517243475919290790129824011249329940139667806434227393169810399147413891284927997443203258216190505244373159697612395867639672372983098644751729139258426979574425130473800609374795614508724388456541264875670280436436221833209860715061280032927351628136025370531474670368979993290585210904432016204396334258742727631011706651025852625966697928035868408968313684066069546649513055846615603084539983121232785376141977529078319656481556038367671050398290196327121961440052844867698290823075600150511297308425885374181504442577186814567983867094576581113344815887339885901733981577202219298789705496175450358423812095164472345348686662068995065070907320011247814977631711086534458633637916090675768397493947594055000188965017123422864543992143090400559644423014365990540051036830084531221173191978069168157568409125772220407666200575951710215825670445730148023147954453154508586059943867529938904399289711783059429684433071594803300550751144844524544284873444506055280685860123203488700312770452830986169207492681279266032189016928652518789284660704669728107884544129070646485021141942601469222273403727357927142806198017920059641923587545616414048852930935290009939912229978550277255466100343536272831728352305334365517507511371253909088388299190152130338938898630679269251973691675388648776242778432340138000977127354690566109350170586641397605530464775463363482220806018319638867320633578012165396063962225321397598492821006680024720914448444260904211251414663985921451312224572041669406214162372556040117866069112216863134402969168273050142599871621817076296391620420342583934327307437958674599451892475871179763783772218954658879338770346426957013247663112579241114307641085089968190605683649966990438490787797827052695550776826448264577071696672309003451252043004835026205816727950618712132669398708242644597661263205360876026595568795767546247368810874406739078139338741011932977316154089242412805439029046847636880830443270061948131106272140486671340097666183658150074036949696924768269763905491989866284475261529193433048656443798691336296413046446286513615466604792859754767468202606820755239990659571267256029272495935920073828004437081339570871775585860923404306856205993571631549198097185811891607563013346203862257498358786207701856099275722241044134501579822337574558343636706867174939124986003902633259940741039715595515637994434375346149515553768784568330772660274443839930945602091866175692429923230144780988763984847061145458631075059718440481249296537367826102598084300065741926837909823746194546306651185090031672120996760174520466830205895547496610754792820667094164922681199528727395870948056794053081580557373489158548412845765353078972397731928231499877225511661648704161663401607854387447393592899031019629443022853722639400847022330824230096988470890932680720736840315504340964710968300224550907299034224264001295750032476034071154322549459630225133352686940817594726014795816076268766882819731106434245916121533299848209894936878634367227491057930340854498381435898650400251926162400903362534358172860885819470450695864162189864224352887420940748400527193867840479252450495736612037402797911482510193584912430347794266650718328027890249478612012100386284831072695367352730402784136862605427187008754058849624103699363495216100270186212905533856891473580370028640766646434232069594861889570492527892092586210175623673390440088392716197970618966130811344567265924080872595250609508407189120061816941604090805610454139154580367246517632635454449101452153214125421077186591658362855715600070141816835469685987162408970747832642044832717345728311113408578740508459581021836963949590917110730774317200170621396448538895046529620141394996702238542024814797730915632200455187670545856038674006104872908981853212389055447200239031982343528898096073703673654821161419260491517881485460444278752771081898668047051413473313253115116268029718829209730634599569043527530635947709688136874781052137990827381620470663467592413776793169505266040034939243338398748046693834174331435611256528857381911608800787297995486962628333874490201657914468511375143262207244509823744928373448353914801300343659731384355875408610995234525978616388984444903574870223804846748676258633209348510681460243750459357120439920963846422303770857857100218616377577971877724513151980912108027230521576393776261654095212723275836373638448315279723463409050940238170086622378157944131052857608858437861302849282148365303224366548408680937990285761729468882457342258484310323650289977291659324245109700981748045303611070998404963719099395930855569755118164276728257028605498425292741610829750110465352206261586881778842773347265505289956375339834318297356037240943518634887878423763192918146867453092956339393218652266068368491335493888243743327605771746271221890850088631238470328612486850633543982196586348351267746767663678554091142494593248265496594795864212039603708559945666765509559959046462576672309448772979154689212405907410935630074966385686397545983444601661801046645299548255650637546018296847594393195214001241026377830250590761259390868613138044923809551418027435115209240510301777382124247019955148879052675098947946967971847957105046782164779917687453332368355021892166512956979756574215216779521496412111723852216146956805539879362126555201633730338380573575502744017045623685809806967077359897666874006583672498724432598404635734283076290864678418991178902575178482708068573784759075276707907931821177436779677544078603190519413276261874120734514857762979914854523903305944379841783027036308023729907282559226328775630888215294426564469168133881199495056234527552727939746864245013623207945151954796162984448506779777786350025813225862320358567801524696043809099734067716205819617558560434668790052657827160818512098936478479498041003437272454984286818262901133043679177671533598151033770999967036644758061215891836948517099978862458878265508992330100501261723631942098477916086260670904446993629775862124856099636006692578900198997082068904375159632747248667200175496404618469371448620006267811328618622662660135533949957510224858517460858647304064232323051477654527204117907746419322816673336239623871209348773088415600710896022966316964862632518737171324805375625337299213460051855168209385856505285169253481984767604333901435967631946757945302885087451904249991379227907513804575164534058307692873326692652668829463776055895691467506970888765905551802774955858229018212419244317685292419572291219503504282803671873694360609837194991896418840839653541312313919766192376577586584528735712735961035338405702409315553750056645953791805975948992801593214789486886074635392079400467286792576706867683058694674368313561708590626274591234591319584453751113654228806351975138652711854945930620076415605337009387691526828679510154261006481443215781368783866771524633148928865172850101257244419298908809004503161793564230677355685871285645656802033021355496627809603122800339612939549245134764186330620400988961843192057991298051388380035883596568047832497082450238890933232687784389785972520963588779321861760476914921043409249118323388667623068616479940274994156101396404153998960927004975393133017793808393740184311736700061330603478733488558476659279719364221223357829894957177928166763431801107837064330084950463822126028346312760408125478702991878272483586983425791334780349355282407787541642343686913682463998122103717255100764737440791789342322268992066860640337309133202710656850679794562699884275757448191187915228537397253454315032472546977714415862447782107013365078550320490565083389826505653114539604091806856809409408183431073280536493851537030869045078705671728272857194877963394874887628120254452410996449486584850878303151389571009721820040169858560256611570456295695680722447507882911140399431085122226597624303861702155812977715592852008120696227196756025243554531233114658415724713643833908077029582310970794454028870292068433291173467324963010861403436612483148746853944352922151973009743185757321539987687152761547727716150844264211281807836198331238091470705587819596246486990453701032744193336279985361468306423578112136408277394365880111136897552553475101522292866202174586167719616600075593149158930766367408483839178343937670107818165596331761757541184539389849567885358943078304196818856600257987701033721186323210307379427468161921420426513306233692821908540939167688410376299437448189092041538992993817625780296675977596961050186341759740408734017156952556490284176210220013417687518144121263568976089682242462266585470120577500668673158398361563584712536897230264762279724603213829985048565307491281229812481478496234816748984718980091651993275338158456458048766153093869213717416170724947324601380765812618974131359100413460842822504642184256902203772312700227046383784383622379296216948972023204905619493640656236186684338519649657065239147111752026265696171627222907301537735576519150738604249947984064386377698062555088685224782835341919345596239915042972580729925304989958974378812947695801778018397602437867650646302954123145916015432888000772129684147868706771522925515818943596659932474983062333200274777955591826942680649645858337986979167987224273009575298445627854915260857138685746644917788365555233581766266065282626909831744352528161193555806226798592653783592626752603221692098555715766478213718147496832849757160778625081052205973444221915325800233051340362043763265424257904556631683611195828756579159919724816461352080402644321675183274850666202885620466284984720638243536941770273403374787378349678067356841799178073695150199755622261037791104688554752889582161750172607772339672743049504897198510461871798894143665019120028743729653861304418502001501909142202813007160126014972277834165637454727241951049472249417732489037695416301452405578192688705067381645708002761257585008324896935831422120684406783956702057472866930622962461275176027729294233996594346051291299259709403025098321969917699765217014101390662903270344933954703364014713434575345407710152750260092635518140577616974762441753697651011630037498154048385891966478313713990245486073151302717381174684218450423743673366479313992469232777893206213003580427663808341112119408775263953531164754362360934597801661761074149133951328273239819900693396978818811286860592688460017813972916193249739404602225651453725619241737816922949468668653874649439498484574868531709584557850380465839238594498601651068901466718333478434951935083056694138405401110471638693349244233694353831539968518102190167569957751740742218185262985030132613426725877210992792319650121525865813582488608025972117682796022468205069315034565210915662384074457490876936523230368513824178967911366086490415939642058028776748750047256553262641249891784723181800708946358453160548220749741459271109264438603757452411496522044326427869256043437169079128939436077990767549850571238803608473416213394073638199520039847028956628620293136373322176577846736829348789354058156199510329324050085627536047395969289159131624084806548571543472252538221071988677700084242243187650036894325061266346247899638393786170228391768864705070489305777548453793170707689782636390983923414830938570919979824136748181949433755984885869072643892195143743158236886626715642356780217929115960399015243759340016702931122609901534605443581830548908059795980778890739190999362551151982773391114282328249574586464188464895855304760105363859977541863469179466358052805348801267697633976557949975051194117417744366939680329558781465898366462852326666562408779713776003733016898830590590074639366933831964389749443473197304021114095847375215303249316370106753034527134942328260833862964327800607646840480742700367828044649081442316879996906745349086841153552370249460006270590702785595911064658324085577832919807526145943878125181259567159633957770621572910075323978735970476031571296597739597604321534251621980736465625123923772096730929057168782102087631976357501580747120643832080272481168657146116322844874353491747107276884141555698056272576888845500403741966744834857514107787234962674120393082475658683583023511824106926996091699034529835727637742873388996209006546153817715196844266080117927343899734470249201940959261346402293499126469438643028761460885869107955803633974924942416276994885594611007919621004834380518054881651182406715748652053400450184872887438829944752787224668169485290835614125400341870105765829426690368764832622568116276133452793291071048970912828738009764342293727897991789098432265869342978020781237077468652727942656976436527218331716250836806803084262479919977455393586396474840512719659731169676952938094291224337188746511513145057666141909536946962632441566299907041787143704058925637149691851015746660547727607003037621380595321630072206676360190986509037094299020741216991349506638735200953327489818864354961770773536271428183014187328374284984779892682456263465129911993133235231005492901534790183928544498802007152302472764584764892111267034968555180125040754142056428058766251879722815504687010757683970152553540592587676050500719031861291936033645648158529837579711880336646575664240994690358219778926232485779693108651299243654818769815245284806028315169698365986688765950297836498683121846710441013488198354791502448226562571248637145479037247731122261508158014166701959869734659321054696797209018382089045201030527556890067699067987843742431771369076149645595789792483961237025978376307944685097603721052824905855336935913002425696234792150324117518720362807501246547210757077890776830914223461888337976689282183434613553987771691119844405192281001418924509379730417250133529883872023726534811438368792143625537763474246955907861505623319725926866317428707761548750300386646777968033843120263083707323101869347555231182363218149238014792194910822218612658718612753578991889652429639101880464311849361637680141257632734478777508808266234895470799391715443219476084632774169832900998560244393802725878478025703664911133091689627990494646114523252758814299235214231793729966782649236955052087693610152435288675669092159570094545520671452612876142829699261272318447625273964193798006747853355421387478813015855742361788076207574072878232362419285318726647882719062611538421753332910604353315433425578858742782212418597513702128012951910605402612854050612023642774449136086387342903351221237778320130607044680804491250027512929770741668390045530358736873604497822923151009399795240835528060667034402189805299154192129647029041966663351758339193406617790482519665447578178634305680329105646145945942457993556243667784364943829876424951008824258493931856065541694889208666212278943502845857349942454099466853189319303398313139716814378822886259341807411482030414084568030607384301371670391973606797412576357027872184482001066712341980425363087105814404771143150314037369352802672792396125398452452431979915031105371918177901582783737209859340791466990608387688947193816754999813843794679409134475101188954339288553046407589479430357034199950462279356499980938792955672615074184668649113968709101783944470391852256524207208666112336134504813390751708478453084015179484706718972335813036995921982400544602154468013370917615734246954370336891130530928242501552203957511537201104812724525221796322207991069710518665089680722866190156424287076440808060577670480208944008092899203983526403168441764013889491313438376080350487071706458097675392739153652732378655638869575357610284334620071478118744512667441685362881632328295892932951172230722520076297480633476914617817137167271966268924812955034961802175468463050843097822986967527267004752713711297904364698892933294102461974751932671282963388978024833225745711681877280438207669953350616869717838513973800984185338176852646815916841799030828263607728346837427165489088900926055804055215661347537074216937275304213750504881951472253311029820236387194482988986509436953964257820373533541302531063554807562007952034177919834091653485779938804713374819674394271843381136807360672643209995856301615385458224537485370620192027385198091805944912161128691655081635785903027965059464464907737923072357749147454346486451723659762246338909027779844088071250229013309384113640897373225461852737431595919950888984194315391400655993679221051566537005552928599664874392947946567971869342611175712139846207993531703740529638226083752372955594758254576023908898265744363240112641454756781069826939733801577132928462744601680717126935625948093679230329825508984695610649686463344284600703126814711303956100815733309416167048767495930720242903406791773734170740521881867335893967962792728562336550912306873677105102991299689035214759714499791703994140205436951790813534340845091968877161672957980054054500218192850182650397931891590162062569708437484207113245831600169723444468313590976833868004042087295980299109088410342883211084117941994231709222195094190017257191510093603484692937546810910741438457149801732679069152860075635921469338274675473310553934564321770385802401024650254878652948394215990368990645895922297951933330059977342919674082947537555433879951110087283219802030965161091983282244239638460808152249715812865008170360492145446901784564365349564054721081434769554390164104894583328505914758394150664291847132276914437973690218922165972467003290612871434104809241780103250029781559822277831391788660320759326921035845967541233208187349023711796467497346066188706447158361845865774298550352985620479063927516654104697579579301413230229248341821552029684111344453450967244184974709550881994833560215859097865702854294411030802421584260674005683402543885323667773161369581085978308271908280080136688003744811751057431039498226553209179215961769211690632504124094567211875515568172453353346133009571304766269974571369814901900598735747006772220646751277309272430188669615593380547221852280648520334431156676378312328106071647191357859187855655778177659685769951851321861723189568580767813303344704260801381298917320409720035557925311416277052896545342763525013907553126503632783892493261371055931954264889933098921379762380841464561878580554232498815381638082412099315695668390920921451254848066103828327081265895960751951662828100799831868044841245780029860612083542551755121829863789917919809696396163122820419038171274491249698845042835674944290544071838557596713019115432574437398613401170649236179272182803881062206933476310241756763466930056331228336482308895856240986359070305294889193097004089028888466213194587200948473504521942129790611629719625651626630780903079752657663752294014886628526891583444508452920562264967297036486716029922940380242922947809802800063808807660146699791442859329765781328491692175631925404007291249085831956847766055426300588574615247300624808649574213693704319603076171602451446503605801654965078095040117443180560076028744851762518600648661428595137529315633701943399349990080641562923058263676652424078788253318182442874905891988224828753722025906759157118551838078445651278207150310561936028170190747544447855463805006696765175245825413293401481458263754900930750623295456265383698591886494664297666007510175138600828392009509969145290520836621171934686636335019778571553242011953975154754685433223475039998871036687372596445394783421182427824174732626863371859212098250001789369332618555124474008918789758585012017745171755905043609455591941493310696625869283418704648422017203554677123097463910433298270283354976408371581392114192016791408890161761717381318775689859239080623877502284672128411822673204983707378481139267570326035088044333911457772623592158201157508487005195901992776278612230353802433681362604413359230340559692162631008594640732883449168934865981903185177161942797705863639402559236816206358510302230010752452735045173448975789383207646098355291472468268246381786626543993836862962445151090078911949389895531128058542604034126455342150800190652938506290175512506111482761090782886086322441712566595158273125093051229074170996931079507825614404276785293058470224782093993307906373747378909577335159568945374396008154798923343415854929459705372938575529156185815769052269852431857362870521121585677178196314693384395799628402879377610955914690370117649605724042516690404610792189483313837608763882784916596922240978783340091816458380110845026301267296655489689100347418698229946200333480754733843145622267687611469607566489807439070752498121002610348128816705580733996148103105288436300658203015784056987011843912128725665591087330567883536561731124838864331240277879540915124570792798996840013951359915572647158317164714049985481685839356741540974278266698172867713992871549606747141879777996183021830465962098827645049839858326124555882807848264582085810525142511644087647776183229315059176236112416423867642505240624261746368320655253221272925217923474847287285524573183697372141207657879351131972934499071707031741466753474649324808480591848757937409875790595999016977254238306191577518395547290806601481694810627961208272022133122224570823506152655714832520374738213662768066869398605055707716109389440542545275079843744391721777879992475163414807965950747285832546215849511662880852697020441642332626301224212600304465249867881829881335002085568760017551316103515105104434703407746305457101847834424400345746723986984570101154254127119323517747408971942205144560952934753815923427178814384250632320031742427405251053390806560446826630933736897178044178164256629273220855353540776341563695883519636401079964516725683434442800937285869107089573903624368414487663291272833961791664899055582564045108288349855735500016380254543547328428167753099202761129529677217547771505668209447175333087492770203859909690422316055015956181410639305239387033349195945833586542532273185462912470307394973078970314509432703856459733847259806386985453945900087383449620354909303770707645258458870193160659816143824889651772300927766794683894108597823892854512974439829562807084292794910055087182372271102815684837586566184706417306088422544787511840878384505508692075923802241178740410740399778569343825541062898528938714341586274629195526623600578353514214274377374941966730164490284966769061730094477492057961318206884115791037236934758800362911959629599101016506528288696565650244525565791468310756450779958441692365994318804560828751954691698900269259150310291926757551982979272282581683799990236843204576206047634305714568281853829134351062694443664647454709864021325179208405045201956146340812758578590552456803446139073336835470377167639811810172442436093241671517589709388187264470969131844290544081493110611488382686859600924256752282988299187638431584314510696514899368388842059753643664902561315216680644607780151443717337074207863701983501729847270949090887526922323767996946780887880710606049911579580668740263014279382127602598322715767825950689668490955317990391577060829651094639812818695701212475986718788313739422453236101244723028730919471459266753239366408249168234038024971725975005709872226631275680471255126605053478800080182371237806566582020275406725809085920147016013704151954704178298438500527473235453200784121870251610665301701436205295559199434689819022713710596366309430868175255311918632262567195884373393497913088715539977190390248847524867961932003753898247948371203255607038527656768595661669941104706115481882650923695805734035993776710415251155186463822252196135978503083857394373670997066378561450043899443207601140362198383009010033066189171634689346550710742564941123348844395031572877563214166248934900895830607988276733699097480798905890882982361603216651641827722437199471208691399711100068604902331938962672817178106719705860474212124797572342705632988390894594243212432629335774160011522508258166496535999315331782167888151433148216473046670763665202444029392568638940239752547888042533473321026156459915656798378776848989188869112094063712444111053817121410866638871166299383621573016577149428138053408396383980105215691741182210085238981432948227967480648819700145109044282343211885224131670948802978718928364559217262411439090288374478491291956280080766109648867089349267520117250984953651055163930465369572508507826208174834369728087155467849828788691400359582674608450045477798630207744206053822783347715904526521433069776817829047238023715457706009340695461437433742370504500245835133195524111929655795716169195052251390114970243230777909820634709556689300078787376711785708089880038486866359580208360209282267856947825773021712830827160312024205408662459637769253187664999564865164392188570185932598847673543337004258091506598132536786780174007372029127119950591137430843917540984846042868334853813475783777095779604883465999424182083493455222492037664201914028377216485148631787384535054870031927617647676218904445071309738095642577216057811134124390030506714407832894312464864150144404341929907568674865067114963944037976188366322138009052719382398985231589194782312841115558996724082529652530456193524484819885622733534641231645772529365942657761077585948307360453531569911467025863350105869812636410787731266267196451297839107171469361067408206017287943615470613850708491718174247192400468622445157236265738446756235386586786469113257085710283873057319657669710012796986891233306429632893866801178906658703516490309535835055480742105264807255225111289090447097371612215723816598478303540043304680092994535906718069280996022520856456268120490024201949830237926736221394186518874051098745024596973478097702906062420200415098394828974102673629570247514489952489040630165790864805129090221616011505147523445751440509147150919600164463848655913554054922751422558652723935203265143997081949016920025997764142704814419788831670142403098658921852436866656172667328734554376261136789238954747438883898486875432067676547944311343452164875455246372113106892034855577874187251422216613941743805554120580643361109518411962349746127008387524339559397371045148739062667462585784579988543775329175017955603075596928468119740602098004293976269428699351134263858110631368347511444627115588577164454365722414520687671341820788583018789914580331539340545693598605144954990314638321006280784952199883327748056284532705166904910034130941580415800657728174307370670629152339319366146145101199800020023958763882955388614278108680611566420254231773446704690487670534190533535479894431105233461756069563960152471864258445697442780093396598698734369217033494653916869045140268622749326255094467490032192434188434137084641373223756283939172313156073518227980743874178864204379763466982576053337442996284673547320474474486986663589877650559139591668566901432075921164126321915951582520116019076414970220007562839531331374926894774477569819691693133427459361276779277682908183525650503238633965201049734140332859393947388603935454281824900894705984924276209906586225360589460893559284787082727241636105394640851760140906352315760251668253109907245640553848762967452663237839255021523442732561192305485373583213386479682225034659658112880307807253867995131173377480688188600671030327619347945133123413400915751384666274476335679654546875013500144696070813962088802264557650105368823723068958547605154813774125786482953783405217921634448644363197877990870587973407893487307118142577757651829216711910932522336778672751750946074083621898377191598468158957462149878705475622126069290904304509496896645620488397291885958033764636830892849129686202088481825299970970623777021300864489347671113167782207015306227253628028913177075789617257400934910244288461041940933953221576700741006106876535434566112400224141971638006888951030633645728817625048424265726454903980808231607402910691816747325862800477742621205925781532799299817808847542103496854761453184877964561114655932585853320003093684973825264004265191921473818405407931545525199246880830749090464868433580994393387072643047944457539416906037162842049219724078676664711670683684163005542499552890565580747028317856950199809995734379554387407468876099616589931667743588737454145602072292452374106104658700321837011251632513950811959814272271385536360169824270941700239836998593890195125400334519249487078362324554975474451288385458936479513406158079284754783578248982580341834011681135689884602859769057783683647688354995240318720462380280438730314940604357898318906702072952950867734103130581834605965644942200496625511741231147843564930902256875437798924493582133093923757493764294997442002797268060157837651527253542985790342841684448638271427553008589277257358289667084481979809950720591921438918303093043499542765961620775346345579611454561887508343347316155914640919399298295707679975693296926620538831755313361141940251764898610001270272694044859070803373151956943561444990007605382037528468180683837492216575627529343485492241163737199768599690148184931037062421672033738478085216654769689304506544804278063260313184270708321533992610927603666658008273729285171565371686438721804617298490130575318771980925060891094672449772204891590748775034360524387220718884597118434908395119880600897841713695147175209233523533381402002260167274752053047957067630048373742983543396625510384618827443191232036625671694156175676441795626333841108311649311113031807764688589746818499440509210310278596660648815010123915781187376300707196350571676206582736400648681132197084301826641494629235929227783376688726127194560611898052790213425976304013611238199653067062112594648523712000995054965237588722070912003216635389238204064849104061229923243847620358110872802725407062878126330343177977299101785127599390626404715654941475816790990905809630639447429990175257198908808048912744025611351697082065541251533473412506983588971686013221515247482932797430724077838075597104933566046217323369894837049357281284314948855403858865150198727155976994730090356402672108908452601628851619239959858612420868100046295491871237719669941915794926844006437065391696046430130287447198171906575347833763848619048805761850055376177309531418242643514905558513323847085747490664281103221053598151435343374007274722293485607318867265118822078873777307380996446801888539501052339402069746654470312910627712052801467932316127989544857937529497173246840887481176149807720989363041927933498064623465395603749317343708870081536926863646151032488011074415118592836115977230812446532230720988136607233097187880111705943569702877835447363262563208544210138228175975923550741901882505271396189763061086130402066620058915180285515313073723416494394236359985430128082998107011350403335671482984754048795660368210381592241890697657619723567022759327771024304233351250947171709032981737984411229479838091478268912191573685567658533524666997233061771146398304485283180226984953843302917774056418540535135032061763128885428174831300721443666635415631289447544956331694597160668172369286428696316871516026107882428917400416257755714169621378677129285766155842423021252231209499884093858277122636173194544647755054935452186530179991540122275433497661716726428080320148313880685635854949759846471392308921592631352814657076075847833585691638780469439240336385939430646217242341423706314691686301014561801450790607395264632297657773187702084772330820414882098683525228137961215420483909655888544267064684843952675785690103393357207514006221723803840250934650404602372180033187913382287240557586297868607381189889151242676384152320550824811188522518469548051126935626180488862667062864844818139367329751104890833206944610650442366725497806155859528791731220609204662771843367305296571091458992530830193995782224495893670161495394264093653834912030995349289821879309072581603121404528787778406426131552989837988408087002932554036671659636491433702805240630644797882480596755462449633212267442916325161156649771110007515322258406508951848699429355069776117914856267282709328907592323912142823469614849465361032559223345501141484826406474830280421395033635008535796803311734770464609856134861985750410979778245163610651138132037188974602331286562436772192249947102468677299447588894525721064071688298901585683153124217749810821524038482562510636328653657762290056773408460689863854279701643274314680175614921622367835303006592214563987433901963880687858400427640182716843361169675918687986038269327883237428693882229107493471431724267007259695366467529375456696611274672733005141783176319173965978765116050369227550629399262967695322403555648809523374986756391939252422828422425492371396791980339683212997107057844249297911034846895319570143116251796535415751720919893356645121978905549535623341794325114513859261203086934696142122145219863534358548824323480911514540233487643395379395939576061477150349178143069494739403639418119420685756167032866525020328940179204060161124924230213100128643221075048365230501353637051987952720533185379599922250885858010819182088975525438001089470157675738221506521336684177672478763162785441871121795330972072928628765870875115022420404096400683918184606436492264878807922628967274162744361791077168934561378693061180707128213088042105070352637179845522709441231216737002870818741386458698379211278807263445647273838461204112333014755361050838466173438721675512332659439136726651252176196620712877041824979244413112808296674672463622153286770952354461747983076005479804022533871038141026851238725794193750595265955404547374982204410877803644033669453463282436987416286941876553457171927847618137719849812997499814429440411534966678075183789032258335782100055815150058275581117499218711197740551505887127157508064061691124452617605590918019112234401022945664752578232605279737537184849208193744501542059771806768614187057803962154443081455943767630522472216830472059790272268177251660735154338834353708836971250803412894661239826847273498775722121976365624262609966686992618118335777888887174451250941373328372091346851197835568579957446448410275671702401400738017934708797687546140173583878448813357779757791595392350344665337419121407692344612955016953277314210370354998070539323036522685297830960747595465279776046265294996648414186856895476885573835436461393063664425655668988891754641638739648176389703390461086455594719166136052746826798858194743863678364698491429754987450042069890649675527818047405124972300494563552350294728026868566429181323249202616951049053538840710457210804697909501094862640114788778314425785938672684950321813462342665375334520341166991815953659657110224488070442668168836443882361612071617896506128298603419803414137224448691187742796820521696856985483160022741064447089704992875232859018740252483316073437165073002322493128619935048048842542900019820189585227523095504144811104320831150876672351939031566107753984116900351962112653496121837117777595073385192736205071955496212489579690883247365265706220042192899308429388038772486165495748013441402942798214474083217839043641972217602301704391632516023259193216378159672477456935623321480994599926728282042251667229870218883260983783840383229289755116510304643194061814390747742203919690457528600138634159606397330025629552658509968186663340816335455673263435816717395137484104864237495024932454362252694238573805065411387736262037378717593584574031441868191460492965696134654113948105448268979283354127790232887064073629990719272785356648772897110553690652489353531707190136160330515719387523937252668104288209101637582859838889689974795290345335716266921810402869632508021261210566860143240166905267456271592274427858934792911340870812977784791058235490399447054058246798744419028736785331771146496633320591925448311278889759822054737216742367959165704023076019179247037910866049282941933666995908175263072712239821882092896158013919261943728573545466492406637196895155645961515925067672342907965421803224153890214865907977778327104098682880151006985965116129319052680663931310501118583497307979368058396580748548793816444941592973264626065775275775093477187853067811266308380999571565463598709984708268660670084949558642749843520546971752916981822101223894516338867598271251258428449989958937912814785787446143557126313058332246962121359961640673310650176502315959232020437457801508836083084646791785764687249499553840275537705075907360928230273567609055571460844414662090551544613020324893555862843461275491974035999306367266776474312525873754494299042337658772812669954493254046317062656496236284848147401518324714916890528736104650497619587395140173334205361512729297182799271462861486707895136535493258044197980583808026988909712813150054359828897481762268584155209525506909508818786091178090446911873276028768854749533453205806733733678443313372602400230049120461115514839822231443543217781008250237414589148689645041719579236781904129946555962911637559948700566406722691877647435286560845710529675134381220421443443463698337251068320323396511442048521600936115026298728882466188620356663292954846596981702501721990080714297329686692595551586160438147743091782374803443090214416999896823176184243006590926705478002916303347659818525196336800379599792658790086804674217710588811952858333282714259442210666609470516086439069347009675617345369364606599886638795501798979742402562796423626261987541574725525783944729652056167357933972321319883634156195627738254247443054655566035606749615769212137856406504726152810850329341456959600128108073188614798197562972082429143274973409165532137063145787656742975023675172955645379728388338111912843907279414619485180532615712410506498186116414886079995707864750946173249623507270590092824512207942170718061489373610117510021850565794733606201897068331518316034095378594992272746778900745443357672897959240856176281536542956379725182600765073390320413023572841895569252351646436427959159113859534305060701527678339568037872304251346797360545698303786221125378889030441119383930348619314720869642496261556444096873123326570830981603102397740894419680296996840080114020286874891364172880722300747279968330218105302573517439981364976785784091255017935445326483262762200309188957969055093874729785887662698570083599602726864593783371030184572597919698939209650148780012121157994555861496330684974693639784218519554891266137096645225103264640375479325068821312550870765324144224393871620793383847528980475194937804820592925740477257814916534981859959139310366479362367162697950132716183389877588611538603100408882084422771347588394939950416607570324439267618957082142588336010434667661662286067294582761264183303837608000411189496435754940924131358166615102933987436872203630404926190349489925326874826331113808015981516289280496663949637993530772690553713614838426444740423420659857372416430104561598539583320696318343717257554004991166272502736025022763803667789453514277764632491097365461060967483952424301518751473863054263555460372004476026254607762508407445514250365692610634554099233420374679719638937717299675446770661946865013280926651506034085651899244163455243786543070103473443885410428950644388147681698763678737931959916667795252909164532947836692569624294678483394671673462783252146859677628580269770538010449509004706851499893268401490160467958285023003158875968307803892108943527917892614455523015704930906904654131580746751547580922721270465172314214636239145333942192929273663305343987798056556184909653518852991368202544135698662144505100243265191348067345546904061968961950250394037629216387547451915875699526942032085946105391931733351817412022545732956665837575989011466586430326288640044569571055616628919757037956361546596158347376821952428796198438706266814289009392211071272335754306461920795884885811838397529540133539182623452659556725994283256792127528680762096751122608097376155161887168640703655424252467397680716430908648186278660647600474785399074313657292294794786438117008957215504170974198571594535490087491287127474676211998774938798640483815073295823060485741778290356784427888331220088026389886318665252649528602940969860426925860143407815476795509047746643043722541508570226026761068248980214277748956725864602323891434494461038129550161471171547396445935320410561286984285008731829802418419201514495798504377235458632794208984316360481408952993481671633853063895438056356715464365893798291180348401951254406145707148863353818973905475853544758475672237690185793229801738228050265687354973534563757901521856859139782044144400166600461730996975295304202618777492847734908891863226198437838384454031279978420451181815288573657286531666800183979114710369407061749684205733658821525743320919214826026376492711389235928918197226039084229645762968662496667891708446350439325677177695041182979763894474453057496752620444825225992832173307757278131946301909018951808204889225874787106762471968330272079439008525326594160608178643034482581978991135928717334071902914011020877805494890730440259325158981038697656372083311464380805452483105377032667777424495109197415760988548873139221675439569094553850041936194190549327320937396529973926159681076129180416906639174321125203249046815302864667279141930462947937077115591132701398148182942249102151596726396012395784988248847071592290912212326342862826100781437508202282585427554632058753668325647930324763257845440770018984850058303394003935704476681256957758631862829654614897820630261210599232658407307966107775888032829765970208849819889741323329016334259884835908718237560284574644974452586140993397824673264139469346983163967992742810748311388405924676903744263697892054629020248926535949314970355433386598850122749187562460533144691913378354173687956729856459191527643300069031314536605800302825987645360949067792946262335616153649733052568169656492378526477057082218798435313745853389552969564344669275744790359979635588321362983494186540138458179236361132068309890725449172597430662742856591100923455363011406669938136994294280442198159055143407692433162953417001433930200129111112893938684691321912842551401712797001632922126005236798153070616784250073035365569535051704882289494773115303479567755175365930556699176715433862565500969521282733827241252608823295735384959786968173665906903766904060717823383317371067448567034244112501535365334668389242780445343093233777812468381124015289413983907705673102893796835270471182747858952868134489368112741943832202186146536726057649102159269123143258514204573859966899093711314797974578168306444381174117774588883089549068725444012972372776743601005695319432644692486213041763254879468332542505350026302668642373523743433515820973970650234388813018581908519229999163155865521306456652924374079730264906135948077247603428212927011188295511655041473595183989010018871610033372811010635076417044738443779051036684940743817695799522340928655568177729256639206024208065088573676758261171328409267757932418963136917732892544305816155434077902919958041947394515873178030233873232615793859659398668698122318637950554711055767302741761372439974603744188782956815169411731046586283313660866234430792839071146507616198119060914777866240611354995057714058778260849414890189879811934856187750356625638501445724160733936401132717396123882446916420413350380769850809681812607534191045939898189300529380862239983639473805458332753403111025598778681426718938881042246649620774999963539032222612946232629502795953892924774753524658288862250633411351189601324919622011085792067340341826571638546259489665686656045278326661828396860455109218371326405062103424603324814463250458138474864450053308556187432217594749087467555247744881489847722419875846573674126508458182884803520914336818167913113860797097927794937416350929408161402403717156684651403788376303150891750541730573600520766549815201965603372086489256187080969366387608262888700148319725844789042823262202287058261355491781427254233341755585060014212109467421764298918937806063259162304642880531458416359561279010025202484816240600036706669477138468140811317196527612625139307094873584087671010710160583150226945197554968741864788944796718501199065587226858303410265963801162186419947925517449806271874682069436275794652655667040063192536970542994709218068007668607234635134905647546820687488345321640895558459258973233759089841143799679368387649237345733208620221364783281662909255617619157254556476544643693792594794481582559831968531726708655240071919384202596639566887203718213683413741754802534160261714004671073865294439352062690989288455819672565604494952783234084243080467088108272204636179042026228153161944197033307813986182271987084985276454311805297773722293392746966687468501308064373857756490491900985241763895683038565130749865572846363171118744287654017798487472923843347568217487368329829119579427554409204826957321263973038619125098325230676748838952331895943479644355262190921415902915820304892509391896944479497003375092824220924159877869040568507437852630829046054157164268813109279574231276263993103844254792221798939745769832520846235765032181793518799076788581310919400474846667976583773093626954372950254651172072022891263651332188001930506254135455816883300568945636073195257124568240455911527290442354359135688133145325858468533272861911869405736476069849377366612351159996382094891277411506852322148950736261269449686541794991482565343117357797885743072102485705337464905937773976084724561755874142532322085009455983468373800016913391257861125612253890734327576299767950495223160476636724615479824535477471508069215826221712426975383334894812816976395561840359627455252693276183079895253595094669373749696763345179092751155828461629851005460843772937170430624415466616954149840315118831740193263135035399051280314144544300728559875921919824178460165143084139515629955347968771854585504649813697574153280002857644869047968399401146594243580754590109348300821676217624528039219079473963696703993090601995121129895298608056875528499499824972155874208152632296053259968540456139800752751712687829316302453419951628486594134716518916091238319282405064534650139859019385571846505507884318252410681650205029364734119909411031533828641679223468144653570648931790692803030664078115047723851477951432925925797970746162399796457033220448839011121380273859929724379441993048345742579690968315582201565872146008272371306329450547599331571747457497977125907738971329982166349356163398334870390365261178001639290704332853511049472296308888466563492959647852615304059063215292036786568813355050417304337513552555098886574355155217520185792470882090241311004377386309710575015940736278146176593995338150907972535452147762164256599781033237695591977604590025317710173953374440695563625941272048960422317164814739319821737071205737657140641139734163845851688518898856786225910958403154448030442882757629230495162259216075887165590723462070079239554492319043528058381757177575426757915104004860490537594218430704051172936305918817289458139018359941626754321766590274918558088031513250383391059950830711144661818941828709906679450896552837829889196554671831809114812037079866654800822004412614503359615053627209023835337725634215345234165304705987949419982672507060030512495324769783640350415828296662232293417345602887360440626232979786495646448777971875487580412006955580657827181479157735577847055544604344242098812015561130214111489846893629857201782022767332936237312589835380902445333414301103088210638625030214916197246598088651724605527525923305773595446403527376808182770761696076449859149434193377798539050505407558628626437715558973170947633415940678582093915238319691507148960696252015855191591867453774799216292240924174703604905449102444624030229608822736267368875320533305850311404994387035852142130910700793227596468923657589679368045539641900605455952324706312432663434767774862589353293701305986019293747169156185282838156043019735177143787950085311540150221187478930460505812451372481610783028167312273037649706593330860628730373395185992998953198130627307099923585998460179972038405182657570827304552442009076018787014043328403830231614691964969120277000352581129062352587002820595907871176700956882181570451567809785650617700218283478799088255166604574791376270889090299521787308277928673424031852885253442561815388558528259260798539938363295181692383231505209388277241196094959834860466401762493250827757769485278150356996569097996201180375827498624200181561671407649902769514425414100833903959696543145427308969125392217422295622716439955336396141623851692208336770504679605391103646186249732138406374522251994217377368151865397722742421951755131734012543535535371593021870099811011640080767842537645520234800817883375948983581812812479567462610336366593379229918560603893391452257638272048068130477246396550312664857484705291611454667585216048030681244690871909759318455032131144110863894586319516833314218587996449276516720549734865027621948664370646754528083242906256471742936439928206399547326264111792752962960746617554806735985352131733737316938307090618617514181864828012537314874282796375675706878032290316796737767995539458167133058635461515924202529926874047026781826578513798343165545855117019792221770149444689468613583198007377968878876300453557314697667934524623537108121933579692524658642203218181760118948526511343230010234999601234856784304550608618757014078111446861626440796259822927086902768051461504584959191422350583694540344131133292799351994035343336788834910518519755805738532263920921666030864898409315360867876888662492967514197834732106409873721439061868826301191988357921897368010160678737762864632136659721871589228521421335168081650618440122754028146693870907986660580306123741107558337599063165161420292749055687833687927713638679248655585760049008565024335468750629363516868077407280893997929642833937538515959005066306861932755962556689547274661917994049825564685168693281443747721994299977064541307665460239120126840814145824932629843928640194946044736754724648279223490956063872973522445960671888180859859301132742513257176518583367876402102211958884574334914428342352934817057815781537020791936003152798421243969023405608953866640922347683125912759974646868933000470630576755397784971708934543340244489558148230229058954284046357513031080385429667976812455471185755357041522827830829811725563231343943400048577863956057334934594973758156993109590415735420376382448229300970742711515771023948553719535700953388104017772535623956550585398350891649778249037528768212938595421171450931775113664208658505577038310495229975431531786437361612966352904703465660044218897473843474587895760052647698598467731785619144804673164186651005405636973695363089630030800211953151481130265869483343456051333949437429284463529425752611555958530469983775405777067550297019001165492236630588975112224036706562228019244093557166694546342553697550360694482885607975524291845692411992439455625256948715064581784654587214066179375658501001289429021771730981587332029963145200128821916698943419565503631186588290129502984038105312018842966139001662489012590943114971375010547342033858701842426074941295540394949996583299954406826004025576631849215558225771846376097881773124748170700526126954410609172255952651863511773975871874000928567323281576806401054019155669951253560437662526585457362511876892872782258485072338527286186598538379312048451900938556688871732936893428015485575671498260823346886449908176914532018190154560877108077744366427176177241753216717244946686970966462789771676865686499133468897231923232234635988296173799189546359236103674709918138703284521630220767327596708748255254201936774773018330865256547890212257712132599586694358454340831630901780487705956113437301300922696100054687568672131556694090551110858104870677827972288523428745302385471438998775488290674145428383106484768225010523589289995097757966142142796891051719604783122613219594035850349068627951804858100717575830764552817757393908141745983431932975040798735146947921283751828539723156964430206523689183704756977788424797434495212590681780305485693738257193896029643328927142191979015366284875987569946386734009258204389634050022476470557906011607624936830485075086384349780533948280401406924250263050558916659477488846158520445295780414522259961496634121292237236852262228848155057728780255123595392623927375753255337340032237613347169207520189738900710613138681938662988434137923478206469646640691807867783826411019181457176172060783220522793034991608283586533474906624921266056801672831388487373640851184367618528986909707129901390936843169372754653034894875484062367106134999034665858007723231374450916403847395827097636046449097330415433029803314672920777583864104512406396091555101292352570975869618382326914181882211906681425713794936220740690957966428618481864505869373180738774522157535647372877302609507942396575296078649065053943803110426580658132093509471770008923707040918846000155120037416557802645837333205672017920574574286114001832611411724095647653878616627689260788514524823354005247805747429729555538891330875483220362662769197178433686190327337118525044018086256502109388654308210711458923007103654520875274395904766567567068451692854658862367100046209440497402489245762006355916702476710619801941421083322114102678675245459081931624144459637739294105195754198958518310743123705861922301718484996670912379796178692096295657532513226973651509323632230547625719932410877613657590757143578384208168680386407257413478433331727471339732823893915101620394544318894133978113274637105613871154949664175683616205150802615913985749817766793832647617766186644491410945342764003197732957637837788702258735140839396882743359080179326552961491100093408939227648004912237626466749408423452966593664156347066108022640574301744383603504564404702115826146834426834415545336352042257474522534097713429391091252910564749670188794772112045466207052162170584054433130307277749389681807209486100474394104390004947774703412974506496286431413667969169209720707611285725764162416250641653389702900230919359547275889870079652161549951660620012799941199472459094580712890150246633765464197646773280290525909035824963563731356279212024348757270761108734535772572938867390739013758673813198599112341661137444607762923353565316587344634274038834376868231898506028601470039236363583854807000126786190210160397265114007354021285207149283895363082919090835204612654179562292773540695570660842684180036848153474649927157183774178159494099636535710732791113117365103526420885588588860368186284898509683079406686455702672008412164957304979323963536076956290621691714018197138653558376346344980253612921463530396577044543217968224867897357410518678781896216579694789808165516655516371754002505601334743697571175587750388986067662813869197351846733689705640943344613781916422367581549398973896558812622813369458814425778966842769583211802989978122455857744563589424298431242606477858104045328908143991174904323323423436913123193052822555917534782961583789970753052590776372640433510929996043077056975771656678372679909708809339344341688982467969746255279281760507842320960222660885591739833334574470481361196023619011187803928585595425830001908944913166083460274765547019608360701556403255529049654897778859491382654500151915582555497350856297734617728699367164913865511727900269274774208344390561541814897446718463022723826629323131541106278386803312802096905011260105532110564882863302766632147147232933874240133242401823689951446484216630083284611151876107830517306344708907003824977386355818908021146630566886789928406343224381750562180608480342821715542482176828536934729897961346576065567935042938814938907342698648130775826122581511990283441369747989173160939091848398916284260632681185134546389115952246884797291484426706401815763232066630376960384393200345372624030283903197618192380489537403689196513153549612703888011497575040349495534669033375397183876545530872147840375168573328289159006964931596996555534828526676202618530551947482649033211477852530297585103137605656148419602741309750854499403553690065176145425133768832290366782860220025809418293044503500740015491716603651937413678342700479372066529711180663771160106844023849482315963502446925649245289367781883647444367920324244477835902746578496551681239746705549937837146819303804348889565436825382995769705070500444293450079425168977335278959617905488285343998938802229251535004444230047420378908860013347728972016283452282812554634598008512286125986991594953375516031506946184961642812272714835035826045561021606800169271364379254883355620859969317045360399202080750753241879118943258263116137992283353870796065899135248536877039243293901814223187253894129792084465927812206028563881359672041105039329739857857069569167794882403046371235292944561439891576869657389066433077563148448072545576707393536374832587772915210423631332631273759653676449043708189763422534304439792012607802679314079343882201168399655850468357597627857312007710734021738882446408510707308329188540192866158326242323974829238227683207649526368936797489958043847804857363038315899701529547770769752718915819494555707283199922113242915472665047316616429468774247470888355227449492223643363993914858819901312951431619537544077227475330176531225542528950906266058965326561672561997518846806502834010703801383149030247026369370647787742227785659244951684823939749208614689169306961751667157194164846422943099903783261366195467953599038169167356708574825237763449329339705817013482420843297089170654846844521338071483539620064307731282342601215985595771235634227656641786106456743693443557298787356437095440243632413484110566428049540576404082622811454148997744803117257713428965402147732977982479677020699953829305131478703254622155615563287506420651738655893342651084720310598178075230813231905118791511278585438793750355763207571471660121778938706399525810802188617504930282590857612081909240008736137277756664025431178671001535753024551147632113765525783940154034516751963997257986942743843563222841075522330969571982481866237563048862574537947931023855313672255070896950281252827785168108441962141120205491439698754796648110060639996048926945704468739162923016766005012984769153311518059861298667108840333824977268132023118338006766436152965889670758664354260223053252790260864053757975156446937808295068460364804265429991243815860122646196816131352961379973323141928403627752260517834497714812194147218508003133620977881522151334626342482917170660596100367940855071385682328722885026302419645929812461159842304346728854276266506687055208383760106840795984659984251981459201690758352656758177742982253276474968353988465840248733016078756668249777233328740655626424047403685722364147953392443191229111977535536029282079506277506743728811086974163629222031244737272023921524862335779445718330515511797298705270344156279233618668206051209433856932160377007540885914869694441161003524871475096169030641591280157837407938317344598217048356043172817602655592075132562328183010740094660193484078423863909521947839201977151510602504951591246220617349761762645955812425489812618618478649918236894088355181344238756236180385516331028813541948506197378751754444939855556943054702100524377118844264449712959560568764200961556773867386021424008223742354170412088261438461003757830331095311274296742745949350184887638212500393759829106472845384111287003997067766701269689749842993347226650719198973807758536450657537853404559511176052247270871606496136383848421555400997645922654463860951506740978920410179106184499402753496150781824275088503909705760871104864813814617033839187352680245082341996113844085368292221943143836367619935464842090500973524407202794838807843529164885959174181949833832423054462739991716030917893152252107905135005261045104390325954674421365788143432688341557503928324356889107258060505351667245194048873462294305953414089535183857308898697919100903601561088443973189855291497932835116677328145663318076257529638019733307618766863855236764048155448106875200805617617667156010774032867584961479506506130792183734467232978330039236214186089046399093861706082888409786412456338278261658967326020614715070928801801553897556261017524503168579369990105713243028863136369846312403707074086197778652570054941899345874917531440117236098130103839940636764781344164944289167490889877577287875652321840375845081103787309923828452190264888822207194397095041799091661552002482276315482647062189146017539520329720251544972406183614957162844711426859189987038359830795397845976241080045177589028671986690354923674726182089822013399913643697315054106958280234500496103007386463800112795522948643675927173350179635836700865293361745804872808437680154860260450218289742971764726420975332132285924889643841351852348938225048342688937043192020119902278042524375994322682911274506554273624598893959737421910272540758689045182040432485635011559293836529472505977946685521896651942607300928503612327783318933961970455168024995802989815340815669876971339720002380846428201621568972511138087799481445337373613636763086765833995043598509327975192508859258311452626315731199163114529431553311145981968344472084358343114082334281414004939114957498885734007628644698837723279891222512699287485962192776356814310238552653088251667622532673812787379833161195904117064951579931573087233991848582225949141372205776463949463852484070251349843155118447896120800862734279773624343256202309141175497951356873696897127664814848315481066657969254742335764411132890716203190672631410288495850606168137993139830519616073970352180068153450984417701850725174960245226361809298040876158301346272618993874836382072700742431605533256519740965540189722129584191891004792248196514548265073174223453793276163044105869783826863376035121200611577536056177712984784869959357812099450977105166280334382121536917853507116555613234023367754665033942224670768960922618510843857874184791932385945146635045820503914853056939606188683855375849310168648277228526360943361895826146838586326219769706296897126546785278190770446357978986483631831096480435745415911936201957576659740831850630832292906916718944793674517199706080126279538487839123653966219161456953614027523492765881276507898097884935121480870799977926919883846665202194808552281849309896468878280887721893758077165442578431245301155706289754187021068878676765761984208288973340075863242018371525205039168965373878343836973953830298981236145865273849016389370459150770233848060310714869737441343885578370853855803003996903686519457741894315395689343838325339264469199208845277511454993261778188179870761557547835331743264366251727893396181067183470444385680003560280849554840825432596688846567557911307122993295231032430110431976823097019883846030846887780807857349875638805823692930462142217822012661762852528443069107463717935301575252952076478104947252117608114720638797822680955420923226797701065236763265044659470561197389205541279723102301129091431989801597630714364353153496714963792679528648556439808393856168905544631150394178489506867408418278650759081218177615003195413759357348097241181431973756915334477517322016729334123953916299982333555642598992513497704788851060055157720716231713375773978001488857727506032511399277770367356961787764484269918014355192157814603148886387015967186355686793323308997722798679175300418670203110154624821941215302046221291298367289416433714971211096300441964626978003406733803104723683161742214065265561957827702665541888261050448181202633933933334060251651338296648862918219869326490457901698232267992474518950013511068877333862711950865313659566700669218545002869630293528975501960074451227166173611152940859937147089053956551227972267218847143824996291992464832012627174349223128613863318331364654613695019075107209541506801333518680884097492072843940226895170353378212488322697785722135837403883196884764947812296744865707828868121040407141649413265513719327773823934413904109952438407740774611942524084151107919171661169012035052203517488305721117247522032840393667149052634656389255392100805206392188793936127497772528896427617792799558987160325461052242782215900131378874597335022135583246439421996258228874048824833611633063367263058836742986647269357752517454596783275529223199082526998156679362571574677372941926227519413447225364879816188092271659407725596631885219957850742209160523672493171087977491946838399052873835444169113607408148274018830066741316246482382223801868285742399847953004598709530144686433174535371503438303772858645285060698627071455776767882855541109173820000225537372325435702816984611210556568967586578706317033367286565719712551124853968018477790462644442080337742407052316870634707233314116422810548010386939560043703923967470549602790721787883828414358356722863469038476356621001293882574869733838930731022715083615476257332949239347561260190125061904111695444856901624932076078672379002228511165003579175883258088678117295924017507982011181455411106327135785267576671096793199501061976488610033973581726911837369420478904361786553926196093097136743455794126945468660001903993500686248531564145183650985991142802871282331931698032886243123739775925761095362937239120740239668471512486083621584727398306521891450368869770632827067610768420855365301069783607676999418519846366817161113420487512378609353481368013642011463448232624020295210056662599579355680836175341182192748873649546939682923518561148910778630750224194476915803235446762233514765326467368206939387499616251138929093291548959216336652014970231073076139122154822038645050096920995644305894701804905806597440270223612271962448833225476060152373738904329046813088578175160164991623432824254721805979028395956092319273309027208913273399419925207414233792471720196990520052642518719841525743743332121614388011240021675422890492296543239307584380441404755600516779156614451144159841105216614345605531090264809557987686703625784690820144621019696384224142212869591958539626664296570596291425127071745610957250452317913176566615274991382051328637002767743265198392441304794285364475174707597204593705481676592536225373443478869403110735627812947376120761965030833201006170254562054661157563547043846366345005064148647844295316771864819134844782628450396000818397346654327009497710129906202174174621895166724980996431116244437829263561063627088024265829614282751155124104475536226348222788352783729348032689667079747336055421968024897818426337151381923148114996765369941346404781552533537388411766764560062342454681275206613809634813545919662703502567643696381699083825128228072686507508231926104079903754294539867048454440742954139689072693677397779644959730943226733876480827016997116120032987724604851528023111103907246658218740879919910386271456741320519564140026827495316613239746386519110994249529630043736916659653060376123448952398778887754734188380763152481270876298614451917868208810639097524382527505871768240152285155257000536527800855440946030270084536345302593446948596101498147728879012059896178687003945572510373560850902979629001779895376770587871771710208490524571545672159219729159008729297604720264707427152855711498518162662127868079415295633515701941068348236330062059211306158661041177574503667428861740626051040468981668682740944279495512043139306782907542587970889105981625543574097624486850012089195314181423249473611826899757363173537689484870521501644613141674919235313333201918812403545619206121279620742705326276130753854333636942043779675972392437280296569242596880774092596664012172764153041574482889392712281646756223821764131582663925109104324205506450680106766511672258502811356322911198923251679386798876378720453601329628063272964144083827670135896939602134200870196118868065901193526614286343548582390715595463206656628453019812490943495393131040617562134617845141252894439061663606711251942615503637303927757758602599728900545008765985321934766448787553810774046967886706700457743834785556157076039133023286737233474211182539035972651709401252912980680286182029665382779238331796440936381999500587761453929563297789051017025632698713852994373373202359914740379166386094121625699795750988160462225599358609780593124556333022598745837093832092945968428126946307966323613240340194551458161715053882348933731366067331875869684541034155514796479801400715394077264490654810418246963106064997975927037210365755339599310319811832732031565612477825655643890599870211267952887071097545582624290770858374227629930072648010079137877651960266308614175942133744964044253805642515363231942876516636084472732444750351421965978095195966699674121984346772401561601867608564325905870134485148019784632335037432641268007243131478831298971273784299224893490751296815757729208474922841568105782927929433368959975765820790045882487180782338138210331277262434976554287596876208495152326957376096753928145450793715148727172068740688030036384903891627658263412266037763445994555812766662385117542940870741422535897390553468678054093808865532705432468555923258995948877231277450124666100264817804004774200588910983976180188169091907905718842154909430803636135144909980052024946239101735964862284958386087101968167199389896478959973743336247796670283675330466789247291163640714773205335490432130412381074074678510209190131696182934686249780379023861852554580681653753967007612827245876026738077461747797535362254867326540692088661154904862511396081028112682651688104310166131442901109031857686346067691870998674674749091897287030779245789965077322245576363874879496023102612193640452499425240567713546709425508916579707044699865802011095946153399725690911872009901416760104635027375630179898050335333690859330436155209239599207756461053153491399123719154408842115656676211764814384841418576819948421221649804523612969641148553207777182469808911856266204285071603690874004690648046383355287681634832639193279982853344659461583611266856519659983034173967070804849200719451237130034822671568123869194166020978825730247445416032846614497049865370966928461889364790254052155012241267299407924152306209139929951471430133423238147260391502940664798712400406825933143527518354036179130367444361244421444720081804003328069755359990926905162585499982248387317481764538547487325336400586944269016397337801603451190342101898594743095437407928737830887629968324419834907669325080502314058703748884582193697470630451606005894235840330950510127082023742758903323998838444982622617230333470459810075493053265800423293916485207799218926648119433329066675945339397162464433017070412952508414695313405936238028799765269120823257897348494089091339531667633619503678307852508814392889114159775389820922566078050759525130031123937993121426957189562831361208568905573715112665546512317779375256647682782223242173295559368651884977981286210935550578029280098038946824595377852511251110087865786130322294404681265467972050835880084620207378011222360786296676554025069898710784395469369961642951684716269968938378658611498175630655833109443977936681720279372517897087735385622380247853747629396390632998639225679226370847096384349455860215154117003889018059142141019135339042092926582870794786229444865892490742936972272516318456790069128701593146383663347638733483010336190510352975360657405436281092812289650504557395921008194504873159031307138904367506985390755538588089984872963071298142255873097476950431656598117725534191785069299509176757521425089808671205462824267431746676070231634372152986493436966564633643327148758179328378051513381986157116044759574399068004695298951045728869414555756922394956336047022695063475442777265119255543689496092541900089731232295493227837633387448160344590571049294191176400232792560808263371044215231951629216983171860207792164512035704478440174160564264522609210394806630937155069807125944177257698374544700851173345402423761836902985613185143293433606600922870483133206618516515702534779207831334423167468193440290079858695290613192525103633066700777410679793008324747677621145707096494100073183160216927409307102882463105902568233322850966683330783751586169124018645724243257301716785217329921903022143892068185421092778411034852444964549535637365205093325634596318552580878247665870471742314021948258476173973053507273659217886316273724808305987070388394146062110181375424617551083668221198175261886519834356241900172625612873519518682609951497876458901835812694148535024937882077090422510212576515555213771934627870085788474981010835733706267350772778151622074518812157462476819889700091709654472797798457548502413601392426353837818675467361309470731525596024073137224733753418350470832991421359044019070824064663091066754021556143412379518736708373259441874525394553098901025732990500497673587613115703888362885148328042050938604057478512273037992754934601638952582097105993770162599568168720079133806571673933952826449343978312893269155866417118255408442830768379355720556366068943376507299089300441373008310076349964608830985508153850859528229411766004893552869349113688312754631761447677731670536018752338677202787833397704583550850847362752379373945916783487701848471838368848590520997387884492233401342256780454323104960245675886259767743981443980747521538811296199164708654082993559493540922717142031877919295630221292726923865291470201130970116510898683329981873462019718947519841341480054962607324389410932175505344437683894795710608943119616744775408649997670130791051389830831470226806968200756418801445118935077721910017195738170351572130186026641907484252639444632164492548756164902810414055844753219884252954999458767457724791029395975422710077140212129656370026013048362275253316317970215903936670265601575809781298389899541841149722376523565860349234403810261662432430990316277020682061400199792718341560792845233577201513289854464353916786176200723258909092764499761912638920835128103418542081869250648909904820940484309712418356150799574249828107092124478843590905171001506624500606703464381157220860291012905662089333672877461307910349800924135572287806547681497987323720459763189863103072247625111554941184368260932252912836678338432152601770895504500016635381077305361977861236020390993928847271741276963584876350406095313800487472476095820894231495668828204818552357102930800423284248425098347846773643810905854471762424627579540207341967820250038667694093142089471068669661142061043745996479826630323209571370445813072222285053344559030816607669433842865917731294782782964212032285473098225448701234672617750022627526247189500350609306136828163877318641802705969967678189321041396135343740125070535495927526266435422818222360636382993059628979313268137906228926905698388699443580335537768363704922904983819279043009138998402099145987773107039468972498658496350386619356069541255188342145636084409002161632208679396573283223565440927403064584405301103781158523071154963664195724954282243842036679502957338139020853390971825994205842630484588323146475192536890296189308711648792035100814295440559186737006276590510598965672694312371095280261381542394149298810849553400364532252862196639795047270289413637869705684016655520718816840092759977255353982502647994399814438425651184024961981536628347704386419970131714156076669611668571045144445864415637126340410620256978432753259527252972572108825913054430892953379281662826180757149915784558356955315865285227106550804852792427102427100211958117196698121279276869534373567978978618309968952012081969935567857428725755270711938352109792199805716341809575867734801408194294840832153226041179768000091721387339794433387072260086426525588314699637540326827034423772827896615956301510301904772097872550876398416932242011906538510121337792968012705795803710760510953888796277556395075553282389748021315294431436455709705901243144869159403752780725132371758587906207946120947872143345077608992446355234741814327427643288715027395208762072696175454732745969751850626332428681510631573814579873131239756889996764474137416992388839508869192507769626483835881439057328343028514204100088133089771152144835586627870511392523107579104138424969798344210614587413705139303397652299992198573821408988949059364964191862045873786896228160754509362808883389025920877784785913442503914041019675410735300269954450715583797820225047151078302891690999535040149622626090001984504719213191486907881752011327378298110014449854312050247323453674585376236216803407409126473164712142284549626650908146665150617064480570513361473556277507104999007343518983501806546145567827769802854396283614227208169548309696357153828074900260201633744333282218545718414466721555217901910931738002091434710253986081563671884980366109602613076284440962467781041426493299163190026123828802796506590160765576521043975053969771071088321019968232153479933792022857046592530154970836665734567918040255682103792938384826084197795447446671343841484362582073247670085835963498448128424465648915523916658238736250059772975216095298587205201096510304656702099663729376561815023160624068244113663604524157283790003172630774222457105339601582577812665387533658747168425319185319082285472656054715984484300781106753738287470481748686597289165592200412799950796497253080674735870692555984728818837465540454999710495463833926763763818595008815181290660618479667957176728779152081417386265529332069884282891565593726357685001409308292025730984960441039950322265067700241489601681665674747217650453746663766897165754949029440871403840023579359896581374513796523466692468781770431441563344520992003614161606733925731564185595674159106269811538045051758397481595515837600755651394201803172543461652899005821344315237724050599479411436920652389524480015827103424557479777248001641965529314505702495040454208276052058463553466886955534280248593874587958372347090491747965079331805608647434769816162208553217808545236901175291240453860264825794684693259553148488763387137404820936607021950739977010889638983034646351428698163005359547687000894678271781980051641849910396241432688313939527522762627835080253377901363808602025791299703630515529874447502620262971873656166152733254307779220695827837464743972419084072035230996705274490613237770305068691954615195295698246029823870506991263803893894657024743271574168918313584514855098452290287005571463436416682315201389458754880035638351809115249925631604136590182239517076779922982001238149264094312946226362397699125224313430969807311617659706815556342458643853562956780118389197201201022000799338512071147593883830239569711032949629268729954952495770348507369269130659612204419490119987811778306696919871203767629247502664741081938143910401482433821892912891907434869728621629625960524896388430786590781825695617517399785544955539425032645380567605980975329277393991165615646056819797261269227174929517125172742527024622418031767952823651819536832509085910313657108573546969813983824777113101998831875572202623868979550362019536079441040788752620482591893200151726601344254366752535578375258660950232065313086931953458667067806162317567682583253413553427021978693502485005929417570821116472132655982856756074846762395058886159746705209772688650796335390132009338536688822898978194726796156373860235870272930884312424745345278294771317339109585102418341058313601648453786186926794843381138838323320746790817416687523761935436125150036506741529467658498297420138246146452690885215244311599402492375104744725193430033174442188248085375861585959759008056458794641920589764623664654764271636224165326363161403052962330833736793194947329906170840823895448825604162268510497465303850985896109177311488268896463868641298557239998232081886780791778148085572830031277279001782030563130400560911401764551034650865507796519163546580328557270997206467740529236577421879922188983322231969187698091044748070157636956473037237673898452192255436610448375471427667145582802038525318614871085314674808780306991724462674816575091520584443439480859140677404971661579214030549719500212659862222808713583516006619038052274186566102688800167104179758749737307101962496216063414019159990015036406907884143202125790185817510628352265077253413097674298928528589232432972514517699655721557306498966872237534425656252194552636055977257146636814390929972452914689155037242220256640457542391880795968747530469312682386006275252376471876328712229057974455250424950193338490431905467419453061550110512843140855379015854251620006840590630372355187539768630540342761843930028596943874043892285537251712157509573637474530032215056454777143379552168108241551867251426140128696644108711232446539448056512238227542287892087157570586729159393571875507435449527231119106040962103199932454107208724921064177056964109855965429586090165828039840501855057508249359188065818908134086267149159291834539035646960454593784022151353263561428770518799482518885098279255826418524748085176319028327235562657508210710436207837206544549958873794535725084288276872819662764662610576793110226868883898458550899189105291868459164009638891663370618499274200834348156072236081343629759471225506366244494871874169565750745717603136426821386858974324600248407857385589152532075734997027953704668582225393649371638446405014021350230295128784793878294454183077047588798850395703927652508213530855301908561823919155379076681279516356523887553946374196827906995441964239078840332797630890838221983184739072647347549632037592159836214779736649635005646449187815252935006313686925848033257120100905850100727038392877420692281382186280320853574131627234152527540905069853475367667913599733278995244213088481117480026838031241688649133220592760886502930190180089076275543123333982155336112968888703549003616853516780458130613584455285135112987377154500087853503285887662657548049437629215102354143922188996673535225474294456979113492651577086966357626154717716745861298215921061091014835374626105543190455727663045041129267665903401689689150998694895483239324066886606339222921411497330727190032099280457769144413903998422552423008941001155380172488936285992058780467947482440621028700312006443854708190337006973244250484590354715428603807410202968966646184054955420234522520657621157520018577212460515348172876083443567976843624308755929945229863223501067103289401829334756367821712406388085562282361571614134949692465826546769943905858947162336602512523681464350952247210079324909141128978089040461894184788670075501040777763479503345794228269742161955230873733518465849676162259947144920440096213082892361702593821210989873809055215071548091593740312953633218007904440469770758224179438097732651871865271519908843727269245740863550870364890270105180209041192532504224808433926627460317836769542088752735013890177534168402157258644296346379063967996186650823265956581796104414330554228878639434142314001546208002339193081041908926475073204197684046376891860070978401493400181529934782897249308713780923319469154155055841922279164488270168833603112857297755469829435088474100043482114415215342693840932546111005984964169611840499858918977126842681490203722344824793870462167522608551697470292883479504928786251119082220261302026018262557519806892573627523665975306451709260212925037779995059487995047137532059464316437870023602488241725701817746568781975318262738362367935572781438098469758194260563738577463046947234783668785223198050992278258819326523475689439321178771757490839532617905967990943641299289049136580197918280198623545792474452088250695935123736094134963418386865943413408046682848627716371980514017703087361479848444379412675615058137224626799046979762845472111824285442918854708593134557938777657526138443351893104502006789019973386872936591291630140012477069531880531456391121551774639301392561456798811583194643652457755324928681439479475235359995072415942711219276075260363981200758554427411238929451746781925446926971006794294811974175132499147416368573717851894839745111976356431306805224204427061673693679099346510721159117122959939492406045700882772015856228362944008362948316456080890320704650196641190160100626825879072370338353937116904705594587529680417497160778594290553749267368137839179831631180947829781083066019510112943559135471927560754209344857387215791900968474731980471892952921688125171486352369484286786963922078300491891077357272206484362865483948122876006474416503892662660508292065556873217225400549827561368310650121989088876744171665267970360135872277681006982741378698982379329367610366693026028783577235438630350825351841237065844908712491759529828308126088884836488285094543336660784539772767111695945275341400077549041302919420344514249277209926474651132879590570111550180274975809972563490357526701743990392579730601077425566857762841574038598071063118760478900584920072628016511884795626248904291385046755212334819251746984948202931539383810044304026274080613094218366933412538076142491187324245324888385172788941274937240841536210278381370250928805992489931135193180338277213258397436424249324487494674786765966004842349241628368305922750128893093298971026486555232004248200971568579548613881853131222771669203250074134780698077041939459056540469054546038357437376253883807842361163846796333831470799241929016402354604235434337753094356232975286833305840540653940404342436245011613196682681002220229128151389061578034980705547496791559802637981587854841916889958258281607933824759087084366948297011613885994043660208755546361486010740192778034812952750566697493180720011617022168545513651619822648356046670672977760833019148252700124064531591350928848334676623080364748865498597132652231504442196247552647705464531863683027243848729063029566693869385074545596348347893385646744509707976768994951727065678135433438696562058788806414419554933366877132319159933304071625687774920480964675024519389280851978514007708465591105656620295351085249106161880872117256701227472001810336276784667674982200143967705968750687987921451600877256184391831593941311664896172511792875357779836719380825990640727834964794683671824214774739192500803183619405097605380223272000586868835862262267717025378067663398632563551440608506499719984315764860818193849940227363513402538424600139846261542587779361594016973005587208434150015046744326873297942257096312131305617240407460118129301849248335097713747457182049493541495877112772494436873455537790837386422087317791160967859978927822854833379121966062442145302784663714318169741297354355944447394180220195899623677566422706013822269768689793893316049623684709766403389456818787634705521972882602428853205270355081126265151554763889307528598657416761511158352249087689035745272878840838367970456421586679509777838091123065759038025098532388477480536516590876046165776043160937510110516086810095748331127764599521023963828566578000726953555655474002607138200071602008307930073708109623423705356825881919872755312937711548745949307177077106084564014925593092865427748670850414856787609415573049246789102858572294074611462613772644751129942482316382928823225893609502202622921727324456222716120189052345021457456304356794775941033291585424488413687921245091818197619038763184994308492223739768378208181174883588957550696706657721449358580784888358253214219672304928519464661632909860157230217159623742780412570837988044239312279349080606041566405080577241109392337123813643029830830683816919756802185649306804105469124089327219812722179713042049207690958061118398019201250571949448943345940688025039551917619087885735389624998989706426175226645357400293167503865981565571293885003231701917888944780279496777024605836820118005081273219494265433636151976844891894734244597648091201471891630989481514999930145413005154662238402381568528909521225246412689318493975720214041202019302056751468157789149076983020404907992126702217642281351010989984044521296113864071138390882066439426307015008938501457882820105236654882536335920100902238922175723164518522890100624476295829214091534029025115195781387611275660697912817949932361538983974245566099465753775339325832817656214919324473291985390857156460693919389217934170619599236734111018705113527922192155364032229596909005711636505955764624407557208499399757606882738225569529161355786591976255771152610087812584660720463132094627204194354196065227831379017565943552660082116723207505950163985157424213394389788295211038580785771636799587830104814003577344492400246833440134238998157250927649314820305457824701148042233783320010334085646287725991949564620682008931983065930385940798354474564029209112161456053550380690499865068780643573160408936146527599383686603941312041908863226479567710652766585661976024821403300104678414047156519950316336511945739892387434885662168382656297733424920752949568987029915997486707480396287302950812516492881223610218882153772652396579837025480496267423164400494930496953208349673027686013115176989927600684285406031365770936458144111748630932957702016750052562314832936386234076209353130236370020622673953274180888521155033080645870054678447097927076543728971790244944293888653316257660106686831166949593767985300871568775356450619666363654147888333218824400553809167799581981128507446543140135309248742299795039393898851500606095027925141279021575761118773536464753537623166411256900910646534395002446271911982203379966941780219018598843990310896645888447419870523269818230372769718494805013777387773835166882386257896431839578598327729714710779647014825690364247739115368209949619435254975415847741784993700212792070116576978249433618058735383799994100752334797202420552269373025642916801818191761126036965714848707676174843589067663733755139502869096365845213699235296645058707029655356210127933491804924777485418985097200944914484768635468943541061635993688713249005660750412453033928022866594191477729323149503423286693909158129971883063869288540588923324718725483934756893160697039709202710618852804258326774716857867941328135432586338233914788260857765529333366988321892119453843526502156512665432392464332516876481662272040128219580290415382408420358778541779344551358120417793187128053802308194339176035653082828896600290282528779577248091816484686784876671764775597821413118584535434244688757595621734327457138178001530092364565024941954945443888502053636715608478168268749410881597333032448923101156459083923008377704415990242187032234665084405597300868402552468195625030912726327282709121876699152461564307111803843661419646746769419090547463423671122090486691134032443647234016364652272108330283005926222408736867939470130547403611922188847185138425081907565346590451186893487032276359433577142773567056431200439750111749581382887254238169360660189455867068409554341823489942535083156466631145096127337516754909045223801515448837849067553886789420457243128233490267724550506476918971440018483736725675792604463840637149310002909380873563144899601744017011192294471613117698804807297215083078145697133524113280645907972905536530591313284393434428044103723820502680447548605107533844141127737695087351594633386446962263725779783979662680149487790672342346860372664466550515156425966172588680389706442275253563549617021088358104713573528739109161298966410407271692460987537184462653790710802804841903301625768428752122923128515797234144574625341474659055048180350331780406008631984664155812605013600264738311773876457198472247933439470803053702549928717460185733316409968018137274449799448154908257597237577984212458315312764660110047473370991257668532634746302192218075449754987913278826741229397926492787389408344711908151485524726117668407883876497048801149339365403542213121356576471279094194396686678419485128392234238795053867582809144815632822445789748827640943796221853703984008940615940732217423177217052979235421131590081686423420760509275947051764039021432058566219922961185366215586372935558519161018599422096062465203892476712022790101266446608259306229604425242376938783339590995752771088277657201363732286731658355067107136450128638159570294601641292588583497897789782668728820975018367801643513280189568723551110375727021524775302313453563606512900749090345445400156349436005771371570115538665638508337147656620417756204576352036916813120557520867360008499546133004791283644821117574830767502791774523948019695483437956200091382134355625113250224580279291964819282589288926655465659853704588306267064415647507605723440446079033565190986743739004947645877774185635235356605499792452361577250661874488432858952325913221581463485016903636479753882309647353477910013762032833927466330361467755854393350313788062465651631300669840389407531877844365799243961075415779354116741627775705838908991066044354300055928075402722140844557638331208711543529467939540034196673836619568059711914216482476670536260373291639905036096228275364532944394859414171679126244818489113619981286459054549950406076692019163061591933155718627069529635727444841225224112448823808157921670243337490979051653892105952199621864768828975574575052038496998468261385535154778956505527878241883785004750460653107175633909772675333041182139307036087052993047732142470716611299511441126456426145001842013277095628465928792397806972239560291085957147524817190098085031931406831614152689460309017061035623775465494970015335652215863703148256643014046958276476356365751468527429791193129875192183907219114226683761376536555692565063705614315031324450555282545190912172085232754104024928306479852077054220875185795471918256335663531504121718270801285477102256860559977854208025837869379598174203903662682955193596455968931889775526002575748288838450269238432615091117224609765334729467727604787035188409321157242621312193553211641887754789506539058212629825242701983514691654565006808223151266194087042401674274181132603692406109520157241226670673653896064238968403125540411844570510192854882024295437793559702290801038419537912500006610368362399563107413544257190930033988323333146553395195529675196725897623200986449795423276373027471333844088395915274694171086095585520706921166734396366248101491472623818852152013333147191845792204838346011147146503214776621331455581676461932294789291007445110650514120246797093775024886402887902861122936306771980951534003159641348763961800388175162282286473708610204548868112267954616488618834683527501459804940955106919738895616075154899379083240728409281070925038190243113802378371436545704783029814302466787970360732064000681740644079743417051937415416693354279852161452924125798237747272964975339119860233609783468714922816160577904278440727752837723505320232963480200975419907116588988437348834877426697557744882997848788168720584054828667851355425053677365713948949139938727909255811414209156639690648519848714061147904949334080248652622729202644802285851049574231836950211727968930022785309451031729116889892578760721970375294623624837342958748158712443556825005288417628967564566015774875123865724371683147913291326138939784653322159947753903940516530323848033730827714886325008879046462439173937386074308023822680264573334191173340723804324353598744868917811171237925744956872215266940310258785115620862059068604781971916494094827074187488924915120457456433883120482687462510131467345311813584951905089036003681075833579875783954292784059040269624885315004861910635773293290455505983380501973504278454759430784937101729882009905315532801916600603842681296409793311831878113208216990184929725867707655392780587945356367352550688630384763103635493511458421485433284591833300424852714952586449850342704527269944936468398689703223946271983093840497294763807773837944705089761699250521993803246178150323982551597404896584704401858166725928076539548019488399947224962741032601531179983447871022098664192821515440679973970399567306744828348171461721063175056101425971787142302282095001976147695866913328455876877942925215967019615249118428681514805577526125775700740451651243611745110714710305736458400924660423866292139110442969393683145826882118773630288911266963428561028732855646282039149433053849965282391131400916172043515074014501191943706716865212975353894084128439691047472396059355300112113745606482604016586009597422830705657844890379258675931430544808131079695481555170157905542158186826762372601211396841235586787634100850463363536733708518002513992910735965662855148406375234358410460550753850196941755665409034209909858021124530129977329297829135054675989485124230669815739187960890314134238143617963042493867510507685389318970193785492656424100030275768738801699968586633557772058612362390499616858037541817782068403464363585757784866133831275693051818863212608814751643287664516729341168120445911550801736757597176746300398756392782565951639149706779339702557292361065336387782905041075937122990793167149558628398710625733194379855591791988362177531732403996893579583399940154194525154731597863625975535149876663854244439648950036326694164021650873395574795499306565282941303013668535053715678723696903812800677357544616152380339116998710083128495507472376198724530788312502319189009249581241216533301754440856776319334953434346971849375789570559039610655300604749619755386643547754252397385425250037927274089213104809683160086828265172573108064739667543891380783102395712680634037589912649488611171644519078071048820188702225057010796133250676960701209977305363801788480675752040429913747180287496847211857659793444708218537939159590014792212029378379340634698272929383324297021020858863285989540771462709112202993799065276058114419444165505212215578070026112466203223926820351014872505719550431728173921313868816372725828244221476018008910869017591183372959209478009480161151352039996432019415996478702005279275124175452510028112004740895846200026401321880602689442238662670334735252237753246180999489436054359305914150670114197457379395486723675964931819289714603026649826626057894970155921924746152250968787901659752018971586438879214424089254101849147150587782618496452159227480189129017359591439217388817341384753346678803168181007870156215020595906435737828465684380099173028236465431779270940909530157141862942752560748573332588285388215881396687035711173702073007254312083896215195594774241278503279117437012217799177832136997026911829640997953224870745919084721271423228059752752974420621676775590830138623448088337374203481386180924808200998011794804160999358737137414252494241412129179156623740248834018657964485706211924518449688395800237501567262180063545894721726781669494280120694379725114733350991744320722464488667474560420617975787567020135301649668243119007616885070224790076137937394425056462549662293233782538442472592837158191601923481741235101900942759845414270035766577161627305815471339497733007025469690710088437628369115767129325524867455599800737023505403742086529639745588868641697247743297789582093988015346648560674712270869568936284589632045968440427925749420775146849970544361424650935605568681860090181743143591251816282135077600347351485785136170658082051222739438696333874417969492437569004201173132310800855295559533991910425991302927255315530091621646491285631218231422079881487202723704142016257059781801207372587370680184026831403564104638761067768832406290632741203662114886221170001096454915622356256991856076449699843356803813918079468181671511688150411295501886066151671383220217727924613333673116732639534044546138444266585981152783338595144258589635543919251744870308038687822983784729879668914408868724242391548658023205175907524062738720251441627139580346249566247816473721617892127667720750066017430598009120372230838317094427805509900576200783416411314598876749245619605156972019422009679266437525453853478296932578589835296622844142012900630328600005584417510621391826977707480839698993237679503147266993199372401662935345596724258461739194692883852559379171300790881243621085940136295094564123316139527779079442464430607762022114206902622971263870277807520115786591722083276969114277531745684064032908003388270227783097118949217166049118027893868236364715376831770663477153265269445224288049289410371928351052929033795421595178601413732130609272218227075558303662624355921359735139413092328063784564377597566365620849030354600063324368986511674943432027147596838399345303995465589230485983298692054276215421837306212045704506922378142296859641350586961831671034079951568658037768309308939464179615449860608310426158532723494326704650362093608266532273270524337709009906972951282867979157749750254737723562059637646658097229113044384108594920075317717821999535183018736220025704466559168717159332062613976492901852553193610981342167229248315710223682644626304861180958645015971076855093765426040684061121814050221001443107493193235064962249511642257325769574924112388131898769748503393545885814089502037703579895084979841500090621372921950606732534070130828110798061897735053008297336181811931602662480618325067797896556570959422632758508737881876556725821433631794508132169119722342538784988191928640772791973561512365354389841078475210827779366906860765503083502380959950812644801460602785858224988368265387120763435893691228461855502024368622486595066411769637068515674639509488499203260284708945262650373007830454872369349323887512787544093172264672231752538423072573927615672604433788216762711388603267921785417158253664998139758731286666423546921262155907860172692969782041932784789412019662999610005969265140684890838873006456536533169673540877333969471311605387402295364807477436539853230670954489831878293792208809809218296226398290987859685891385823603592234011174765531557964335273035154743026738196931057140200425337314472658525807960230892071504414799483224678332606871084647273617556601579562804189041504169566058027184534091155578569113088583688611401141347652425865746405842198583152441352224120328703274818238153481980639888692423197454070938887568957211902325756261943300674508307762115756070717782617462111221432225638324405863662435601429078617147567990690456481814816694736153633976462193446162407179488017496966837279796946104722571837614022187528652711900285140585930492701082257064679616704828838997169073796297892455303168961990823683184244112378836311022042046750608391023148089101966930727104486042643253997671863966626032801085634442650213564002899714339038877747917579296148822667006616077655251192455731240482058778314509146323065678381761111231720106789634359369093769633541477865211146886529000454764367595342207151021725906007904026700496388078434213769348984169812374289474458577413248017738693153081785474372341040826579726021059214075747197400875679224235322090245153410567621630339969465034022104885249865959425522488851140795575262615663080991049084457444985321874649360375367096388837014089975620761661709430513584383269220034628506062628526027482600236052828112593586540117942189076196803490784009161856195258558223637242529487561523639592124215289313024295968218401465764446750020505157053942202955461200746145155396431147053168408272795496089775741771468993731148922625606582618270779785248672285697939545109095847066325481137523344591140430032493284271234391032593246656499209450150509299110493591593049982288109876762943727531200639698581562940657536466295659691609938093609516233758387445351993571776323471980951153079760319994315864794189112365171333653889256371435667306440355396005933232981120514588101692381821735877385129371124158481091770211710078255320478331897391248192660721839769818428324616830371571350162138649671172480240724624317985087474058089074053601847061644649092265573958976540506943032279397310363021661063367549253353666136220718185067270515680313153053373420367953098788261486078983843542343640852724795221208897996083621861478485158872005941928501295265549187422472169855705553269422054600398245063766777388909289019959747550157732565580916347683965597005060403611540418437309037225388519255087027520227152845250717110268810253500270459319723130193605557589020873614469283307820404672395269620837265401780503007288036958224101297746405151392513465968204363384905424088253104171189180592116065843755753874314825591943413917073643665178396841683003467732283606822635326237607370903927802699305010865575601689620835397422363431354514886842575296493725755468990956397111740442939411427140173899661813816957920846061041803210554031944404669437477908598561978415446252322879112238555096980584620754142343878514247521826503017413993830533117955141631490326397777788451587057509416933651747416708393497912602881455976442988587530448071713362522629482365732238880659569699619931936932807731514170777337522210439016829116907668595904753809497691613019127501527631329009189339687641699649444498425303091346314715810542411819588722438289143648010062213931796383494725104069944978574533146839033752946878909653976717810743567547184632664792912486211881864971536365777485902195171534237543815931120342706352027261382365806592586480717026442863340704952284831666354203945927305044121960988963336637196272739506311633782258830411865214081023263477745579030360902609261788534459108531584106938548983978424846235091806092500863163926829429699758934602352889662850691569024333832541808338532147474366738161382935729820998790995339661442007204986198329314184860265484874359374524332276928925109013791197489363279173249567263433860926004924926425032759693926861687542967365288197046076103011236512336377574279144693344013438334474837875056871979257213661589291445478621855064754219788717685541754265490813631982107846542126520193475394707499048038599706350780107001415807369621590092829177839172333902981109063789573026981996081241087586329817703148678020546271470891139393346719818556260521632142185654680115906750356792375599955017224752440436923797513327752788574624111076639670399849190566571623249365454328555670323210578824634340808091225378712620665519741500304446721483284433746865868519205901435208280037090364570385474383630519098237368945946074109838094952956638168343835132464920007177024994615019246577006394164613633193386470205731947480283979718015843617801792066498276643814636923150667652195516366894368787084734868772571823551878596711958357441945992712360596852194970665141242399128823714330418079177344303766813161614457735322973271036818321967648630796583300460161114506332861353272406746426112595569731295865004819350074677389071692066329975421088369309027873970787643233164497996159662057513219538344318175449201242003080199852348057704220658561165271380360651460437410613594210648912682122317106870685996688040583150116770219507889513080688477849650011253173992895304716602625434603786589855368695398910284883259787522914317895840000735656763194602870823759345856880697868546231318548624564077700261666266915623931955038263973128657721688454325728405652847302688143260843323635088413757946443035043050191247847415680843187404543981052739348642180272539223439784670529024471685143114325541275231303523995537936019802078636509408621671366208133974743181320562022886489702445511267302193853480305891383705116642336132318675022988425760452736746714622652029103826146864384235346408624124664036170296702643171783854466567490838145600648089142296833681488628082841769528521642486146568391369901444471953514160785795431584298431517959765256475614455292494187056515310354116622575139017161334429473940747820185431789357641550355910648738092786429603931092072274192664918075360720161440193007482173751689429311180217890791854826771655269342177317897932349721053793799089396569115649342461214168862465549013567609422501003983514435733859245995848196143247349519189681281107821020147264747493838989784013292925894942853670167586167323836674067482322115295059628569443304849932139096800628328162370118595400200269516882487727313844162102061624327951235185136566067358284568794784799830719909913162604658606254630605790317548642579679074371349573437817536944048444246315359313372848061802545972094128726542776803446931379051672087840239412075970356602352343095358382849762424715639078864195853792044656095112037251936141544027039003140340690868583058440394394679684903966742219841668684258604446849187396565493699887145069915907841734311120956237691287993020513413181964106536985804672672037412455200215126840865572113870817914486755973413832313294485295610455277708431515111399288122070111525641350483436058285294631704463492950905045957106157271330974320110261040984800988025401164712051319304934204102068651794370032227895351022904466890902191589150907890124840599203476179077151582467672449877641000395170153844101204654362380520023671285190706136574743809675362441961067555750925165258896454522545705908226779728296858918792790756887603302569327523997358759394585565834584958874485099680171347620320322408589174281019611018665662520031641662502910537853669484997663289024959079716396463634920451345311351135371298007036732491360395894625683780104339201553001010978019638146500243312928537679394436514623887842485233428180798620080890357591118906586156853681271540401275342612048492468264718028972706647265340052158186486000465841251599812759562956899158452882503937211350927936705902245002727951395539519184365134585130639930558909176984858225724950470074889758587362475017109690021157075586115234147446530258817271531424536221919824414803976391435650324821737643469832538893232440427357099317039836016389427533116337140892054199321376606308564959914172614907122439025801830782568711784477928174232720302083924481406995735447118503948477620957337761289593560707377001562455344153346381010718733651496489605633112889031506085027721167922738512526703654253743544509683355369026684100858127373630624160931785466140909684326855609648103795523026226138870003123216388733886859576179635183601110458993833240503835893793479692210458189262993945075016054171127548154109608333697434326816953477006191440127679806075619818283989657808098231259931251183273334617690578637336118792603533621459638150016202091323298838688231258464095249721669070892340334502564362240133491067648722034784380199713518479492364192161910846231338818729758015797096804457289546439941876289554424870606942098510413597627095446166649713323981652958601669382537646901496864116881479202954076108953009929514866976049399320971433130582746279816232942965899310585191114988534428010890373976935013697453119524389211224634969168191027888109153415890658715645010899380745901104098386514264216426259556093198473539621074746049791148787091304642737884427116852847581347505034289945903310593711451084842405178421032844370871041402441640760026954016320541216523890149700211183639671219451260297514770906360533770133707862716388164782896094005495245944056882091783256918056857006934616727453366251573140355950536180753432259507915488462067343827765088576425958418833742500334076012011696528313942938134354936038083709909022246163369638386776269817299571455800302243196920062908163801668505821413796089171707332605783946390972969232968367699569174380245641795360489031846582557982547128956660124429710584986749561090045269527486084417001557887637963512669717567779824959351999246140600432884198165809139071245600150823440460663497221353287894936648413100776399754193798230755467686079562115696164590163548560667372245335896921490715314396849760263087493484649592216406167105076163801152184808540845320166856816467907025717954397140005371813365008545612637980142265002709316569041096410019729524556391672738094992117839023441541811935040051735164968627219363820492845849958177083760081289587416617578349532314477032887962731161180080371030376812150855631457165304865558352600563430147342548134089444986130343505873651929006819812277363062983382354071596821258415613646436297706869746920946654463278417114772036567949075866541020576163305971663001607707263124505963071037977585503325968419406917436263830945547155296944715621798306975795450386187503978530397308419241279987983457372891821033021757985964144300008376889948571052936938800973117869683784168900696460036338757254072611309045017583134140909754726915905858569485747010004359478315179727162071181713680518101677014478362880764791031880055099297687847124638339407269526214412990351407974321346515520711534633365991091069001245935961340223460016196644135811207491334756243399407661146269777918392736017713222969023574923097690044016878442446711276382835432782110253566754237706475031693007639049573206754416445971355379913013246310779542698521658337074357444695801643593311923527576050781306991624518985604953089345422450224579222408859031238762537739575735179509321296601793019666436883884213002857571157916057643047730566758435160612308910496228783560168003915640854318630050199806973286340361505799008648934923886436287810945383020765861373550646229867026790789577404401027289308213660761119385331880775208426642746668857177547085253381862966540672890288328036177977350633084022831975388908109413956975090499758170573139621238051727378136183300755214691970647433007847497543133280242554217494536429653209030862245858512279094760285587332938002767188863305608059091634207690725716560457269841052410844548206086856945765837689947959790444361145715274373568442834201284313798312593777900324275433216202617450979653845015608898338124962761681752310721269670999454372263404535882277965836764999958331589242207508460596349594974057705405021922652132627908932681670258086760887046477430708784669225290430758494110175963948569140651655301429324602197289961786753474077991465205559150974950192370979100463693254622421618315741418792440837794742488047196580791001801346198521463736008311059462477369217510369902251378641672094039636322436344137474767103816651315893093350852326498948003699047281540700259865272495421120277336393821889749886196114521706042998073413799227397142833153843412375665744032250920463820508552527073192100329487996297557409701705141232305210357909593422055042640936228217473557255025236725844543412000225748184174741887225124294303521264292430318329840362754012084283138124059217284523249069783078415253227350988690567584779744593316489193635601738579396215193068407378451718954976772275478210401300925067803116460726391453766776647584995792992192640020919122567229169712990663307928556979887583743915296106394121497830422945767459366186103510314307857282189953253819329676145703004964052721732604584296713430550063046892004708472953877932907457447413788742799096006721849863987038030196418119446137895960380367285775739703033383542371289081275615604423882870525038741417671820474102498234111757876581414792651481519790325064872073434867955645004457150684607465561128259404003601527292681918440142592406053255832276419520062836667905804793231762379528543109513377704342494599180980472566868102855291763776650736160782578623710660728907069955989224223733540028634599091426545112343046825607609225846142265906211120556603641533778420485977332398177083928250237894799424130045616643146288143154290430661774505724369798080053268000967254753681749986434968726193407437912770233640743572721595877431338320373375883324417261439817589926014558695237263709614757143391213195480714353508290432605796598490186343615225070039379922555004868591032040693580783688597629029239185634689631385329209960037043023097270138516554477451388152010538888487122081389959395628868122102866312290623087218138451372248860570763594705410438515986931701716807469607751353857571312143355242461277402844031894249230370279704865634892312016988123991432937148394425738954174299898775959125107056815109520888459792979495996315036734848879393570875288292515648044286291046944407635759073858895443066019028561321082488101227400636252927564463539802934857147921060572698573188704963679196252037854938597988821246759487398354605579182373236685876300490013118312871680388015992709517357463498393492755742042088171899323685484135212707065185999220220844956773417860944991017560832181289818370673933844350775742943373688083759896038463473743477334785459282506076268328878821278605243581399294788265522684883562430508712390374819936379145623773641420605274123495805443134047984408972344996069417230621635561172085625807470856821679667330933760268628589481696791303350616028288517002424077185812889137669104890879378572549657813494116864932216219288726116194659543887352735833165771003128869828020304592256218383748834657780450854358063580511111446644058012916765303552633171007988184965372981220632151093538564239461781191706713053398888231166058771143776737545078165299250020746341137181104675500685625599169890974419556233018675058598185204841637309674740416903683016938321275656011662529369597848756370769991114390946664928714677276449687970385363747842055613904154435788899752616165021611553379096418361121709053648330458935275002483460971591015330338961063785489186327929441509187397850152827550841917913393612362678450013068489490317930406067352196101703758832408801950886125819774994385976764978713781804850508843578568216919030271541601485668339753233099260118242620770567406746580037655844177895228597971398019941997482019069898209347421867850596550965835720767310212224020313032496445063329422276968316518933042084737047248830227429636046843278687338068206520381716285063506038690821290589299807093133371333330483297152153456123891280845839075105682155189862870386685774929690772317448274313412367072551486528397268137935645250562804699711108921390953680224260281072010598033444336118033265453167354865794341376832257587294953820446070311753060243193720503118965850631818802287868523385651352837725715974765395825167988504107767900974584511443485293345610118023129567821778839281305577434454679716894264487701409027719888179868937242320982700794997975620374197621116381364503369220665310797369929043657324896902483882628299858275233372436309284765671637532782047117468215452452787043521462000227478370597173142364534103181348718062274364004589321960702024805431300370760519587683589381150483654002287999652906853465918111169023051154450120372215758835645147434511666114217621118403542751362955132673669814780754286652717783520221280719110851682766592984419727524933670521397773944349547412836356661140644695173823568395858308986502429871435950818373105647309823085460685918674438204975686429389185329117767267260217080201848637774539548085174159001001867415460385271934057313531813439596513357298001150759958014272386027212837935923542218666451602146759744951399559089613968872995847489826364197144505530387571898677619619280139372183208390235732773566993835870426228671114574529024999397129807354731488557978157644084831767227011811667869552543556416560741988368510397412004371656199324965887074394524802483162534084465365673894050181171522127238027988651141481035883734198939776471773641568647117530615197798221967954124364403619470343647868441472361722721634623279067285129137013405734432023858591727670945313819167498923702765076282003900596567544694156670121350233550523164902976084057771842034424008522828384481830175626945178065029198419459562064461522049666402492643910000373747503625942901496220870000935784791677366426814997963340344410042865329769110717894466659902013666672038586310874459322343783190393821217152473777834046718884661159076673156031949108671238862173747632097415612087160868835148280136635281172062687833044255499444296414996716323895485515727876497634391244514421334234196495629950002719667612351310613791688283677127079214193288356780569215436340012294290890019724138664607477964914961645658932752834719030177984412333809032756966540335690157558592113640457757042612561675228557999307622649380129939004437165929822174739320417864251461905406086278401651421679781035253441502356486566058095861836551294835122244155247336034826368673266853711446200692089692805403899353538031078749583115616943086761408008890799814999925473978442527477485054937486733792895184897432185699428768706111622218965796887012913759119680660220971620880033361916974050844258436916402038612132884092934818005181408080341287048561798780404483490987516307397451796920479980993776400614894357426063944032858551153505046955166029763489427076247299097754037163592085246284440117895142705579593520958454903925210527433494562246274590993202007043009122499326313989418922911345895803989352338511551011457675691313063101043255777615895310523166307822484812216063929403572537470139648379912051691323915155180250102468887748607777076594233896565109662079953825904147386558041064665704603628881396007815273885827290715718766331043383838286740692374729508187376853615136504588218155416005512416014651252629433768849454639445594218332625044069097115209976166622661727504031488469917305779849043382871970469154759721920528900984124260578608968686628837199742961917447670430918523494425220278868504898678105595359642330785974113636693548751493146644710186890473725095106514098934589982230243339535363785165910178629234205884477961464619105265740173695841967253802953672841217655724708241450951974820836060962460678747455239219542357701459892957804804998530872036509218481904294417343843638377504136797959602584896460950076525816839387194121557207892507839494289715353051198624540049462734173139778012678200966160252818733302689764702207690320457826633661938008959666551254062880299689148096697130081923116966871340743247095822242519586558721934539732363846493344916734673524894630385185411996858583670939815944524578040332489996469677353518407634285112778493852555854835719474599204479907657853785931915769815234951935789273324677246611389322058197284029152553377438401216579421611598305540931176241077030458400561716711729319400106679673550500412520079131795833171873643090957644022333766498459943740353411191956797336888354170765748453648843398607904309721679974895111903149873828280727976868341286249977447669992206041624640107439669533917686309177022981057870683203319178822815478946779109763433492386804264153428779215147747882735062273376336683194292001180448407196907054120335395357869855018153457495571312712013375882128267113787795958419680324403643454225108496324800310954264785134047957401302074277691183049850103562265233464156128639473996412128692002895462575422526491323123782940367080625747188659731927301856585821704057846348210023719529819966959500802535967467382460353556932885492132404012393043097102982938829035125186968400898232404433568755802209010110876075742606073583271128322561423317052719768786919189734147714165826665649050095279137097043050309225932355433995041092820059446377528007683839260703111398932976133554032318624286066647697069686846051106893192616318765035420070970175503080079785745092215958241692087085246163539942159392527319511687813186803613442007870966725128166416358385369902306936315396693048728763089643722075807175061202527876266378414657007688859277386810268287071831499730712127071678006043824947312645757089290097352062966841682582667089714284059149254506541383198903539402463512879472960407636854243018686877551356826037558429096862501275614443528647069558325211313595755892714199864937236312884994868158099878771780077290971215557931955783516117871842800018594458536614470360905495778316733364469026013804222853377566824130163384719559918037292920493010748685565728691865911782684864705465878300669329993102488498589432066644331142131735062155884733990383429753074170574723034221353703368834056803873839780989067573271832497531248158475677969465797306618508019416772640937165525586336678177057118047110544793461610133629083736252363904057332342937488291891060635876212484860090252228550862789764801933971100824434756589608228508207040843244697521226292559326066296017397917346830593293361829922378987374697888224615071066150243852545719258388396481580032996770221121093693682266933557738151861981892604039092136210949481772341301149548623936201444021376185295840646702127216642048189434436990286605006770725041483651984834102338391233330580397062994520299732937717405144628937972998354474820502934440541461219327517163025649687783902025229384947705326279677254621619596209916961708825298416140398523335346274568010875823980411149474266543577521561220965638733244394906306350998263354683777526027146345807214273129090964829199914371540048717018255453678076000437640141689729211393883103537609806743677799339754877699284396438184796415271876602536569096565386901844487912612136745450329896990634479059450793518062871021567816878258407665343792066193191319470074393886782423135313001061203885658829322936235801889941534500372947580767339246442222473110214481025055579007309478908055142504798822658752388513873265371935656459552306805707421378055486910617821723269329676050334494867447924534438722350246682832462496301890047379415821926439714817445281775262965919786002128281608808069421739064406103356160429844352310495229378406520853931549024577806614303318505155157368872907494897800586890187075385693887858913785100419856943678871049330621047314298371665017869731138533819268662770121905156464331775597314077623553275350933401121341446458148056181841401756776256980465979363072220187584118470196633495276018524985845948816340460815739640167570352004172294236010881430391134098895579881268691660884863238260275503127423560457805356160765290247231386081759500768530564222505068374106121498815806070680088561197494581081948643285276118309763184871470543000803888312168681298014193697240942042007154702157039027754361013205370748895661121296482003550517189434869083549193719124542774160915770822870535695164952720712037305023901941486634565899950996508878165249631931600540080733789158011631530389284710170469434026928669944964727141869335241969768614551222431176150113606193880035988174887406433321332517483205511684375208518742666030927454829536480521506852864770863186392910076174808012675445261141394226046668072330862073946897764134930709844099351220779019798970878929345291729369210718903876118483317708311822229066196667231486935175704149865906609161913748270659802123291930223398803844745705356894749762273243906425758823609593952124434692962660540852023181616887964021052193558142432808077881657275955065023279689373805677048542379923909501187815431008588370374074642484936779072200232630952889769959480379622216537682537120314748663842497097610541402106495039032959461915456908393926315421311387456185420799638960445664396750246515780751361979384717162065018174049989566843968392663554996417230344689629671123827607008925151260716118832011538963716311693675814843067029984908629480319053102064961748151562970985861149353599547931731986367685183237910064538828215922880450823863431614512277038751947636177735830344130437490321827058086890862241181065262117954749150693780216390272731247743855140034722751672909589319011899539199435415740298256277735031518891363612110079752931734031246120631048009237276736352002590465167442467296062729952731833478017077513312467829860591399469690352073872523923296602698283064831680359338555892530812407471901342937946542124968899969934448570150991999291618676368204107456470813526927495778159876681665864473212554964794775909746633854033483637521653759309242460718290775948954281394766709426776275459560029638796309863409942386798328139372431704943414367581529416461510076588034881759810279218147468835593639561845007063215212131193721106117802603228908120060041561809938422290996802656957914847158212157691736389712965868644474507162683440606376419594824376462259154018410389864637218809116796694390927970676169619587786011570951303574433515016092704991463832313727418762707309811947480198110391182663788233774954279043160412430405273239209811822238816609948109754511987757902431336779959073965565210282841599019234865917380027760631994875779256542898692582243664158003117660818537533581204902400924417773985017833903027951705262541129971940983774667978754412711211987895551112936808257281848835119333755359970606637474000676513874966744363083583824551130846670322913769574108730840669708853836978760308350710632401094713205198156506213578651592641638410922841196703996602167106748343795732980084436365795138799311396755515599133955037106392677656737489571741028297500301420552023018405047954709627222494752040622765129913093529545468648119572913832720999034737875161482869530521732518194610761820488794813597206708289640127343831491116160494332582420512066275785869726526669998119707010835605987999359572326657468587895245918861937005624897487274726339650959816660049422854937261796118199182906120827758062349437552320060049482935636639157603608046295307696766254832134757347558650741721116497501063338026765764529086022279240751747003454777168521763258798251132731869177330516587206197440645582330796100874263802017485269767068473999759413445442164207777717817755496844630456318932339290709633027692427943606834045138347954253783188164067352045541294291929923597050558330769943258308715114420216772162838793742266371905456723791301655480306970751337071717544094771759079909320116471663215859610575682483425513066144249031707998300658799777547299707247999602007638129947044897513860151547878539774227237654649466630945337736832826192802861857260162971980386113449274208772803938240020577326679029101234769539146922605920558789958918555931723296382746215110962421531587001083636590797742783482408708510695593169335303463803040835423237972039612695931648284350540380220788959181344730354051515560143375478774850132038218532672520353820670824071432914737327491637381211716377879229563920244507894644617433311926852091329851701918046893988324769151072237028121547980492518473719837952752510042693940736453060054886704730071981519398281907655713962538146382248433474525036347749569593092070404194379946046716529773342765119722920918878031451883829775161177725610134301944940509716741229870258923879136591240048820063834136049276708271399980319410150138432389401850120675941259372436455167761074026424268952417009796010517510294871151276583608380353696620457921491089427448807919340048681828190190275170753949537218703812463926992441227878330406595754329360765158985319455303727427036647985216809881542932437616691219705219239296214501615386847616169608462545859420989826304792698984570915883761380432350423461067353668132053544693650546277236713543944003948744239437414228948192854793031031580527239310386310802792255111570504073538158895030727207440097378156586875545527115399510584684795923328978550253617710577345028196422658095144718129586157957537319626091751285923660868919747182817876867145376738014943433959663726012130937243836599582595088679495784056823128825171208131381114039077480651346482913861405775094936191596787790076987247033166810012116352122284817195772882066929743184503713266029449176423984887076360203558094914536736857481766987432951755627012775346635769021895868932917697165997359334071554314644935026528808643902778296346231034361252689076442712157239422268419621664613757873937640635686126229387418358029569182360139666378334106725232486123484113426566059315611295022245988379198039788397626158766791736640753203741010020054366245742305199327374153079147574895451960107535781889617212297255272207737188599721889685154428592651272800477291890131105171815538201487742304921793311253351724282625999417903020367309136996367033561888382806047924298613120685348447820140623405114575599338513403137932556193978020107500527546117966514659217711157661413071900325775340025404082840640053281683007680935234910564104213510749068727074130472624200614608862919029401346094103430913008448610323811696061565329368482628690649449684438901961106321504006055965301787088917539900301659511563476446279404569738775328212563862993622641734477809513400806261725832784921290395534345548776383082820992874411282890201228574375441403426672448494858979104553998711277038849139046061851442812832832683596246450194830382632975336837922872266308512880225718184506200445364904906850587776728219676520772963896004224075127705004874992994852815566152640597595615819578432717720240653994718621900728392840359943470865145361541228371122282202616188835120753018236855816085235836513829607806429246770383278623092154437024747618750310531913188736787934309317812170192524317041400016203565157094268778118345383825933784869640599699595958147599131979778070601604320659184343226978548018409942326910788914029727123843688762650911924625550697456771133793348412418052404482007058007525309131163555299485697843552843751328709867899455275178416653433089968969895146919383072310933731536085540967482360203463045369802443759817683426803742741053044718318128579972750595608951169919532641795124369895574224331254102771998222406185989718876405892093580891260508681471335643868962492469579194238312735663352471122567609840448643711284800809683066571311062058749094604034772403579131039193230352331771737460388025380205409365062989565932992219009747811714262760840502008806993320418224337231902937143898839780445838721109065915031128683308248080157020264609599121455073320926896879314877696368768429593258269620038413875294161918635590817865716452897611919172664244788428919941409865286867095601931085324835137275532759353973243248105422830227266717038729338274580235493679918941710094558814505478860813480771765913903950847529814040241741156611020611092360149150537128051413272197839246437489381393687500614749549876998657488226126674099777333518710998459549382933176357186503217283888214471029948105312691200400543058720526367219773879632158809431023627202816089015966159049187477978996943509646660786004631000674601402879686816218095920981991891328205800989304876222008013096552340364531434390385910170540769077831678025446009049615555287666105971401694934904317478243879365847321034602948334286555453705649425276755980152704941491589467905372104541291607891339371233114213620348724631017202315533759343517853890632186168618980784529959183267434082054671364035638877546394139481046848982316818257302337263465635081710357737074871691956636370965019650619916465553456530399536610450022457983840186605371223393239069371049571218950087798066830302436891201299529021711399110688486988262208269904789029962944919055949933659005237999404282437035239026035229123575159880477890896083961550115915661126656159619983492441560137790863003248531510544879440171815276348859616150940441301716828703001028422250044443026109135654565589874985825770635331725990967452253645531816881640919394068359681323302224876344479133707513806857709762567300658013717168741212503292680404346115453052787723121672760615438296928525927996339644356169293132405864327587482988566460070938703769578547927144561224265552326312005948483615288989348424179615106385876445815801272752725093427397681333430459855668353055534468624682849627242874723701577415275770051716898353648119204093573393252380363744745730192338431685525277858713667957195786751077901662643322720681798391123459211917021486413118645656427663862262731649405358014861922640130488190198259492261486029519095159528710444765189023961347750028283848968701180543934010964787367227932587072710794563124771409842887039759590450908411656272874849222575028229924982146781279825979851524813191767896676584015482231707210805853005849094521139470418977105757293457133099583135187047961559569464387146523383568011418139413660265418153538611733093462233802135101273625991447486911648306398690694960157374160943063889213184687685882948662900305020330433537313197883246429360036611815967559156995363403587647259713156283907363795713296779738933142407159985785603876974602259929186312903156441420799665949552753836192423061631116799019657977214398530699683980749923406852416547447604140301244998853402557422034313265575490851336258439150916130489323383057526145188992576145829954529014112975872363498489672969597718159356282930376554223059986639248503778966228779059456159044355245646047337355286118035163433213398367794150049889808459184574212275465329174697703685420757180966587483314527524342669215210263745624676543941739244598137153471535068516444661951542965911357130310011619223204683901054560042647445328905835170614656837583228730412064759468833511181689423155026210375341374807998697745829914624858327624719591501548053633621445297326925658560014351448388032778245875730290872645562701694416025999097221701334555383741128490097053874051402049325232049924697171443271858276938860029059934153425392011099791643799222543407424103704989310650155394630469733656869805716333014641480552770409144799891558831907013569089076423594116863542647312344062696590994244222381549413894669976848711108934373106401322724599921284914563942126749362378509524277957770405319047746762995918782608342868553365524471085896618537638569429764234849320937927027349215872489688897986362788422195027746958618356020661988535435261167535685623597285320848557664171328065195619074571941799162218335528531182256302275484154560445184480305101651790822009941607684074201061949293901857664468836531417209192906616883756130792069811256933555548453718217214023166034959671100504130297154130090345159538381673317197087631527798895091284547124069230722123101389071846612218097761079763913874487699256337331645798308203440385315223480323201041672724512311023299555291581787883652248283225186515722005198169144977899750924450853584894793493833517654753734926101342755355056986243215354187632075143506848229296514106051000701282988975646186970601565755514318816139889044617344103134614351204202162883062244313392169006116056252792895162563373002708219045192861274869694245152307976460946160454884027900594805335472283158797895205420562590534066480230036730676288123352363756658914276920721145867429450606534326372716994232004189822488953777835263327797006388064789030313718302428775237670400752689360324881684165042113524111833090604931807268407445629317283249356688868731350105317706248554636745404559595495458085614356713937635561260644618533219086652238184662789535279922379010508307419185014711537359522911408920289852980928330828839505512487267148357179702266675859074175319842779196603351812718504325319226265986469083980805800308459015234680872346245141689899010029586517902533528795875548274186214542962402572403154904355963006421564418286703509914693721736086807588467399104943620655920042106336082996449430954065591519409121884546369883734660254480559687226580739414974210450577241438451713684651317072314398757807533550928381577069888446341208096883720130378600695231345532403570478354449005870802145016207364449711650447523931161146765556983177219767402771569172770962609468050548158021496118398289800027769246555941217338933650946266345030175726444630422126260721637936197524009756573303440898794145106288647778824521232114714747916514170397161573973761445094715191109341860568646959880595484078019850324500235024666752565922169494141210062346470951256327912028636883072766920357342968856908594913082668569390561705658792435434720982600514411818127349616271266050488351761430830371452008400260455381305336773570044791757314602415235504443861874856935561510251744135175256834937043555830219893915423703235407166248208432656720883235971135184576327976532480280896072614691995686133675205785268258992972250175538251121186044271281858052179776127523781019795066220014112940190255736562845065341444615985087929090122371583981204215573803807431197563471096237581349767034182745161172101273102961153797081034453416175291361674654494715542925524445932282626181846999680003533560930267325424255425623751274843672959885817601038715542260615324462069067601392637281623604862926427382230644001135521675052273776752726168422246079780609121449463285557328385174087338862544833050074758940336743584372882610801937958029785773285798750812298393883480306071702908179674543586958012291460567470258197150750644212209319925751788449246512186787874580851255720870970400623622151712451278200243131064511283395007904631687343545503889041253976612848753166960061289542169683698190987390069969634656917061098148630124801917744172900179230687226902855463676429644728431001940553250877046507010266813774132810951640220270553685268894774226420459031646239638357704376013973868038955987056303465150476613778667558473251846419345175388035845716432365957903934654551048448229940024158500889732873229651635008236987783728263224818812267935732465507720490238597918806276014142137628899733841098536933644318739864458841542375083487256489031959673699579056149356710362104518100924318919476188200966165394408876428945005637053618019940834655768062032564211370847753704041996168636456683295928108116014133998132934573928178830633744606817281482116511707098999886179605928444422221782822208985913016647844495988180627778334221384035255601105978088070218138966746830321571269017998423641796571942474402554290377683719989866237847047490449072748197355825511369736511036524039089815912394696531790568657939460948489289823832558226296280793243387858458143362454115565297110049170157375148614006727342864339117982453098623182793620443479326794532924760536257723144075953820743191129180061407964507949383421316984923753185567694130328034650366412783302396714918843925293063481026346689588176066491591367613119836763490841677554945928930874790837104441476083210423904168737191695557233597754057169119539508795942463466857723388494561220862060796635567409850678712095301675587607854807733109767932560001478209741836239684126466798122036949885607173769379139824636975868030612076645832500735966753524193704736548892710090949348742055698431414498347722035441270291907599371423396047333112784113040203475820181617857425113180852632555735687028458216064317846799020634390260694443314601087950486999402921023615854303495456140458545512859991571238898612780872285968124248726910774878968796288673014529426305586419171196866950324475029937848464090106894839957297728879025343879918319440211145283958613569134496328378965699832135813019303672417269980939588489242978757666716440437708877231209842129835173117334944419348781772131879630497341968177366337328778841892406356060727416423765694457244549834499080281478943362994742845778206413466987516113835602033106893795285955900767154137008019331638042959711723704024986089711576037390553727979409235733392132970836344418512822552659470098762190643868204571285029198367601096575215468754564480795085673140051704688537064929739994386779909186185054751302238199891181650531758088660834965038829801981713175596298086013870643017140679190913861327759531960365742364560378303419403741716370356082827306368641842951068840339619538098294888089929170986002683639494747094037862587110789867129646062206332293492197134595864435112686328217602058283926513362169243992209185466183208804112070667192142361573226580617328340801241939019801084407994051727613040295965670917389299915143985294448694074903847402610694223475686808090860074083349661350883170428086398461872076687433620711008843424180385889601314482913330806681173579878952273804600703859948040928965730037926667514144456337173815317808354263588063826746972598377731707358276807958226157744677511682653784600912796965965957618271930587653877599999137815990465351156244696404236491586905042976878887204853916690365684985175544317136425200294429969479939370578940955503057720859489606478288365002257393457514374654414694815289826969146603197859110593353989772917597882199701245575392014518157154663676374652204638091309082499472542524874757450740973917804852660812060608162877458510461163502025035862232851391147885246470381435743080438426640826576042301062361940618790570380799643012145830395191051476319751636787412532061783723611202932399167901703747545639836512557165926562731292158453524509342349558365321044485487050507222180462676081833670695865328104790375166270423351755756015965303861851746602785254399341283717974807315406294528584430857294808741903917322733772500777400351822875390445325525780268933663295741923769425855146979044902711529040942306783475275589390408643431337800213110002579497491907964149160881461284460817628631753800496076205434030411130119800472168197352022718463433031120111274410687598965815873740086983850982294039181447998311572962179989553068784895323285843760268220707216039905991380391256010361437987252015900421259785821436795923938415896411654533711757947414630992406678532972119639979988683904982778907564075903699212480530535519694662087807523414393211503126515320474012607839003831374213994168814684454596623590333535718020732559242205576913725503529563570329979700369013941485196373185755193872700542818909137946532669316285108452982401266206831674645467589502475385736775559799806040305189064496509795908258294589142009969170003108915321498294971139133798162189882963404482564521444866889699759809227707044124109313935502879172170639409414013633595803719449351638746029068848591089324346605544086524959548564548618941824764381663594480155450321573121462608947594991813938249111592107344534438879639515696413714845431625914689928472580069267752537196160923953522545102332619870665410284594322466788824744676095489336500066403357834077463072962910515254431675082897253526993991079389725734318111328739614238298324672773468165610744420989919538643730166982954947481792989486879053028851661102432808239965083897390373056546331994624711479858978250408909297134612242808024667666257055580058210085165128100235306949683723959051740761070938014639024337527387827470354892147963888205951741638229553657084690375662271341435385427982629487872370037765951359205788315881944413016718690102952131514358962289126996092714535227164725110695669827434039381813474324160591497003678078909949847947636748463593446947170257009103958590301004732013776309132771815284548474273315585768629739863686568785435474591815242165460370799449300981330346771341216335289531577513915211574326856395213772706079662110501522000483999026732397039277150144022810171271432561214306455090905505874166142750614926073820715997208541438070152493254375184762782123134942492718204650792534063732812317721941321546189251222365903927382434609640438393935755599168273004407700215458318811051394908093609631622581391078210254589224293464393742095496584383239502380310447386861816141789472041373643843449815786136473397290104895520650386839554705840535236492689029589462330814553750782852490600414301238809954283832658201241501705947230919345662951106068807023652841673232868089679391049262215299401189271306149802238771775305767639321304938480913404801395653891978482900021678981524524790206244355286603609875271619514748135679683941833443174047796422911552334890136813292060333875646831642101642902514781447230995312105715710710772531714525293135356874835357447993747597691016020155580736372853249027698802996721388065668686098729941275373764492244238604639239563301039048906710792179989223766639253822812055530166597767039933591614157832259539101725162890159418493320928077179250250564089708747478901711083889202985151937827870488718158832740754110076130861757788046673470086197245781946042621893576038876870824969001940058373033369264518499047963395018338905764375944122157781718597369588967002347232567174962224594945814681087573011150973394329841664559229483184448068735533488304111259487931189855855394188757157784825210561411082409445723277295850543525967831730737211741144176696989696105177384200863708097709880698467626861930569317869170042490938556945760679846497587357538660198125461507447923437071586696927054207896400965516412292079137522308438873241784031007585416510012521998547414770653081964758195274597682444496434700371937520444574737755546526844466085029720259993131730469396193835422604793975359164010235897433316824862351139026463982064800759253712643775596026398032556752585151169441849251404095492498359625759965798308865259746956236894197233095377839131722476448464281567022372301661813696308849585085172715915452364180184031210867675267881496286580640268328946010959055798419726038819330126350052983910358761598715554449194472721011242413815771239363235846467956767810237716886377514818510063427057557202930149760488771442645341150217598970382724713900267853239906481661282091324872581306108010085389835747598067870579960142057889223143321719313238323310146883793694331898348201518576665345500757927327804258748417435532776264125150904462596535244258456716429864323406226039873109558223625544960803270654638945803252461383890827908489025801594281326251638358836571754343945007956223871068400102027314982201520016571998595388575128401862739808662537381209940883650619180176706907290424049266636003958478031988600038235647915865421933559550341011045695286426992557066603572177517818557852374970501286814751611814459389604206897862318990866752705784304253061502490809950258988931511356875078530269829476517938751190420781702934406382132397189841194668367607994779712810694745246073531257450076547424531973678000787316880489287562766650988652577593061459572634982732709748308531411343806402936194274262904151458165671232761593405681134945360190104708922040932838878761230731807214933268783131445157030744048249697996382220530116036184094533606518567582913751128251122902583981685055542853109997665307012721726033284879720525715769298762917907500159662115633833205249522546025121115602876552495909072092422891053316467538309450765263001279183099108847045369542796741863398622818932185715252233733058146924802194661704945756974824022690485866623563756828201294310888530973188254382620473199223425987929195144684573197202057387040624807806696152944272031855692911256778456419501611966573744435534658499817180619302296895616387672837431446388691562658947535466254362073964853283716060510036014807937752193316321516754814843619728332509080601776931084502020993701448812973773916457131679647953053123099660280035039745054390133671419804716653710353018986464426483452921925504363800978209167796769735745833711620973417483574543611116619495493036736302027248903567005105600969553836157416670998703849107267373418248017319719561234474377895467146395002501760414839217894124402928992950227581265234619327248591943880654006899355731870093252291711822549023207902299798600290144428136454143016257652169732713839653567555585599433119227839820122805853189984317960143260922946661747807073423008590760146085175581203499163465588781504803217143028687732159647036341500453885618607045755065475851066134950810506579491475126565132260744541983134758158044994610271830722722183819221148552771824389146256426187897080561297954568345949173594376865571590583134704155424971298580168234627376348681237140696732484867507856285356814636898182207288207258892687271002281510161053230898140744354434004670428501327085082859559183915414368874429286616680101861965417643763625010678261315004500341298100078003176956145462563186525048525728637809158426633116825646861163079300180271987607872294127800104471489461319959369686090432197728463212817393752650711868373081665897970065538672284104450407790383636503122791284642414094295063638041431148414361831990125301865615790427916267259669410498353091582766319766352573166953092846523632800316872988707373032298800190570602933935298074053613240878933292679652765151745197626496545774841627461970589530588401577956723860716648060131576712964312439502430528251690088702374024714501375353487634101233441557229252972766215898883910785144935080167713348372291301435592000282651398063263599228087496894376906040830614847325856366431637109521771930645490031248511725660955263620112172045338112683275902957749186544821873346861306153529816968324759004789375902621718944574772703465306339056248329177438402412758131995610108190976020038822840727378438369319478991193416753639541128805719420128660454354320616433425636737487505245578698810794934667136852869263333556119132946922197381858828205315468025705550021027507764016832824029765637977025794357431369201674021643750812363740510109447580753821305277249488060578366066193549721933675735719832498570042679483280690738560740559234985093552050484262817891455935887471766389935258995324373311154919355932915952416562325454604297715787334525552403827495340009611835253608129223990049573892301142965255224660859481370889560214154654732871743661565014054864006374201963355716280376880679558728902746741265268747185095597583639158805144106750445920672400300892322798369160035617657684096595061226363981404821766887281703449813467893783960754197178755925630365307717770645735160946713703370845586407314866197244544503324785184992170849407210829336564612397742517158813506312137219888843637286270560376748948962931774710986322238767983250072241546111947203592977339684142966950545428108401287110205877548532613937220920140250984446847793471387061637268976108938645294272975016598398047925237146421273455882546860419724881988636128885883466587635668860859123820201835041701830025487608437959231421397426723328475241609647288571202946060045044872545045649605548402374345606004171739884908287272098686765030677422381739810548388893323453267549027334504383182342581528411866089152857316040705956630423195913601332616609156718120289771304156677871320588649872695889763975029704254317810415872776696150451113342956759156677565895074683328915623927644717596478020520977474041002561565476213065426069027390686691664442507852858385693053032468025001613012483086527853512952333886461184282267424714518774721587372886493876055540340942848377970215524999408840864632647098373511794030974157838480855770547319156149031054245197979724293302258613141233377749150427408310176901290728533307105430965796840949711406018261371081920057522530317474155816049205924918183265489779698910245175577094763922241033421921099780181168312407809837845959643856743131616119205618284892133302465113636395517237358840173805579756874017742749722621914738680628451482425970169111634574822977247122068787276308157922361484662555028640295174804573221948321594095048018870918886916752260622855979333840167529532919629991129576247011785179178021068228621235998510751572317874605031814231859075103881075954251625468487085866592304233307403704939587275978514404980819355353006029723610124745123791966969752189798106636555811738985092749717594370013914654522197122490189128062075257247535927313542203640233251324627495535214864683280565132118312091912762323743045075051390364035748157454900677736933282101564435131265191139933756530053150576966115705563776343160119528130850020528745529221877720025960834385986915521687634783088892119567705325236234398914359898183653545347383440708791527400797259991805258774628070393624167496707028400845046877835242539800202793818298942691341123808529841206602865290896928017411863219776030227591584207736122081587654616715074512173343490873428433063940314900030986597764556705310320113568581618860356343953189333555402208125576917581264381862222146946374673083191433180839976057957987924152357908984709269082401373567077134951092477134649559140138940718516785113708373363185958489712378728933752163779469083898114043388884046412843012878128959648080475069047122787762659867560868527718691238047971276425397545998968472644572865365275736682660952827250171931651530804153459628514007557752395171145068893896060557673996589136082915102957964800737041329992747923488584256525452117149030241613756115465366853767387267663044759819026147468947738698755198428996048584854161841972115410936466152765537578352939458502661175955122460607995295459101118539492661790071609184566180750606868671304775639295215680500076545533779740621057163795233978700089520523711327720002659824654837120113479631593821794825240526333874912142659748255905740250474803063713669576562633677732987977003647528463653604316115143296861850469425906929853235642466345493143346821782197796956048458503792840577766089259862268671529040962982564405289261185427883067551175978983437411112586683867813215361631675156459676101131201945303964380899667414106064472307315129861866172478911626426286480793906330991196054888754351887744537223596177268553571320089106941177568012807531193386751056515322891003309295546336442716787551931860670713745405099278918673361873420990386156397964189723946288935612331430051989356598727366947854622513239946108736957157718892866336680948624196227050522992114100413883046952579861558779808089510624025290578936362614919133025540983079945075007837609222633383626894721122198055919838940640928797585885341969700050983489627155371939831675681970391753125100356821397697876569519577921328430856875863595624925432652461709023809476421767772488963548887179971540914819883233120684926765268336716909485860196135101629288623782714972175105513014915301488956797975391755570916640567607689467279164325669325691510170525107018674162636556987595655837178499823401192035343436435960548658322461556970232956194818544743005992729433306535660214415888218715320627933130088264805894514667494875829680788962543220661135586555491854172723714517401167026860246509269903058347937072912314383011490490417405968242598452740674975896519336030489173901313320123576351216672991665850042073460260993441113676430863583674037009483433206571178533486711139882656986012579760685767921910212975741406244291107993135911918246656467019083985621876793666187646487035406950210139713860721468532637716151437440736672457233416475622312005359186594323060062812102062492207744032712664521354991892029113427491176570728154135025884479053033408637819397760343024041165753524332945207903832709445135600740966268648676616313525955873835552998888245802577695445482433908594474993564458752335912966421535525167422823696648049943946847389811902603760891149726987589364881225856041434892966645438601654556471549651508504235801467571991159770433517268782107683554372144004841682608726922445287813599451897937813575231619803476003528485509513977669098944893933204855848519280041010203878302308053345596779939337995956246619233508014862277535898544433946858908051714933262039766077114303138035296706275709404954697286878697283740349449046903374515676686596386504280703111661143371062540931083331454885142206830423362331435387131379218853674234725051708175818086713182438673585117771465523926595807010954985830802306990806081127017755303243333741559481827469582186644344187371434930965370270801600888156194706297159659975571822843911259444387981621194421833528795844636467859437568344685352722289182762266088803264616119606223333428763208105524423285615071064585663913499334161477969661430834153388516413141515176407335716515399945915227192937154356123637613625127653129374670173588249004721444264711940760012006536393568910349469328234101033113721983759570094913699031708650829499212982730904361227336466175817117186510920667325052684428404414620282944560168303828865514123448694725208705469345891525433730532593967428352663776799921596924243396006022518201529098499334329670609774499520084646603829982173158877677720502962232219729146909522953287580219742640661089776006887133148203998850445387548160549421597171065510477376377333563501651379377133800130350393651485087248898263370174464364915999865024829633826010609055876856075714164079651677867845456444388995547056371092146513101198189501966811003133586668905395268654151561347552259185339782587879498681400975192961417314649487655069215435767103704010988642730306358154193695378955476826351533635887313604543495367965195088198197466861228376259951395946834141075181173651339460620201097903625890161901511793899050273123326994171865238454370492488264741112957165286796658812016811449495787235174261869216049231020057252385148231869186327590633352636497336489816191688081035865943893862620791191934583921072254644113196530491691036041140900285001768524413492526060060104478688909455333896989114936237637942420786250765150012480074902330144914309513927410124600596916889357030487249501217187534868986805856325388050887937073339684587071754209093850442997591837706843747695380767382105154836711204998878319712986008584302391632794982724280381799516505194281774347513596290888923805297081183855616587385743186382333027410720614787520185106893278532412910307371278044041988497367078672377932838248291040767798959948490278278558612080624926799406209465088810960861559789370931717204317223533218449107890111080106785904211816172653997060803667862003471034972860669506364429835553068631259870957585966335132607047678747528083919347219914167123306230399379074937073857542287861104607936912051346819375811494703648454648976388771262058081749747812896541648429022744115327425016087804166209621664530995437189273625083125548530952184723306698037819579528170520533783905546139092585016687351491263610825902302672918378489325839948002860507164617482652681070421422884786581548004227381408767075019944253809087480387065514441504660800047047164509199108927609365294813864631577301569640156727729930509247857534564949534608690820698836331664537624833593271609517601876319441819551323056728808332185094226481914029152102674653413729120627997272640700671876565342455046490225550896658350133991675853060807423553010132428233652353951854700636479629786702412638415589500677899739380077602243945691159184286846739383597419841292656827109065684329164227111969690872124738882550737522073398609451294128392036143844636870252328982093836526050936381344856732381151463253420651220660284814059256314692446025406887413535527916246856132688785272172482431226469134415585359019189251482372565084760146669415454977335911277792963052637929877688879992923257443886987318469017880022582028783236186085222392815998137885920417344854918235765693653128766213455731824441877210702759045186630002795860812438201776214788728437655308221747137866194678922483067089946836052562875969028091936653904596122269721400561999299672759883693699576612221612681983152910209627516702334001156831978184173462681505634340426786182391874750071156349863433916960177588714080899448198867564697374169611390906556820054030195733953290782921151208036736752450712993352368782334243963021636672711637666634961969756940722439260950942364678299470482263335087907691136286108783238946991207183681572911287813750452968706306018187063802485826656097418422308227248311700833649831722406980747702166062090275549325351102134679717165776658747992946475374688584006551240639912278109506902789470847972374235859829472149542252866751534037400484177970652086111720098631770325170575633081618842473129017697135615599823892050717524410232799349758311969997654252708861862930624529758778202174369673141172883185580456723106207015273155738718893162442204964030986018905084444409499818300275435999583489746031759710490919438633375290799892858793555039046946933627745962786714556437347115768651862275755867376592758856834695702599466263269133690869061578181240790741253153929351538567416359380406341674134140003369982182459001186932704471987481562379553481649381498919833668429974540120929888951142338543280218416531440017208718378949692811650107658187666760793627420371300551712080553413026626571826738347513289623285699624076705689793919349129647167400892478412316305193659268928833314726519902036180090902042561849205343907932375325667360513975395502103151132016876339954388499090626541542444698932349171085374690502486375696140624177161530153697111396311936423301913908196250365917975709074925467280131524040229879653243484603871793263891704049358394033528422683712423651313216657810965236976503944443605421128877275707676919077486134890134465088426864032701052521525581679095335669434126887860574720433403343979479521062275768052941201863957633709412978963686536501858120886301978276986119138329600282022203028254308569928825952495176277874179778403953923968626471877240192507525516860888146028591058322596144405469426890409628521087143550877556019158952775005239089171855461457317442136870760605627371147985692718286925916332795643693084371136523468945546280147830231009123859558641778657820779691950148656254004780326455544283567218995186214675704414501069480681862164809837079008359183247045021844810654630627620330040293895712911449544615924806236250484501750719032869333285427993566048818278519262235662914392639702411493967804862781230814493666026271073476734357866893717742209016360860267287109098971838796087736945510167919349151557216794725946936951794808832343405916473129670524115623119585489040803492011038719636156988323768459400821994166235399967094262286524239814147811979720432449754473656239292391722940357299545998229775243767430502417545549188967047565078138110250342447019576405564667712318239246588844181211855866966977859775235004912002721318035096491460165937810307448473432797335328895504892025394879894958241659008447858705578244282168095687058680712170877830898886223708688237329646369205449924585473412691414363073701250915543812416332657041167892778170059101006661283799548828602521815707232322480964637368050338105367529625378114503853131258639847618034655831229253698510677724869780407637219519975403425595684547839221944364745324743087392278994250237578329030222160907161277591632973983496421293324945066899842167306627230970094312870277617827483008952421058548127385967646742064875541129936590751280063315049046375004401565272107446410765078036593395903667204688208750723791123663203354623122895167657610061047938122189285204959431062300229218790186563352675762093714131575220961927819164794485915209202850902561720342418165553608669790915802217768285734132493619679130794922981920702584375257580701006063503284446485416637801960857611847067404182839351431732360495381688204159337459867699840018384093358584522019150230725641861002921722314994201625584092329182375474820247652599221763512205038772857020765741764365039717432149879258920228391799380142318710960920447462105865910189395591144188715203190936926451365007432186606741940523220031909992689232634692127303937369536717296276428909682395481889232601786496921695069948248401507763919057462907461522889193644624095915983770676611486555407064029248271244844231095329767037235090114759428422283008338285923966256400903172129306567787427581737206112402767200987721592157978092563001175176181932041695178637805577045817358648761554740248273889541220351198274258572101492227276709880915329162958133599347199087385241791699648412785143426856372897513530502271035036581454130056238215750282692746769156111953724876141663756870325322170002237002776500085912372818524767982023659201394275313237979877057960242113545107353106711548343502877301481526217684715295349804862988665027306790859977335233674317798041658617782254269720892130513107600422596496857723173667107459698834193076471751057076141644079861757189660371641608606973924953025380540184358039642712737569085105668052009379771330935202217145122552647283164096984063677760177733455404409616730378742814128447773454017477835274467977161131062652762191607420198027280808599817890407939386916144501486607513151403113946051779333341156527064401293546662266190226993114342932359634710226839006601014338592522066287638756218693027172643446667975187889890212737855245054460089729323485803563289431185850041759884204211017890034814006009712904619357122054731646028261399113794932600949875083634292998356495354411052429731355788433688126814259031935452916000647510515481417211513982865858619217879098101869952370993242590058350089395472730554819927899401654905532411733091350573471872897409499905595340525186530176124092583131642807541621311959634505745911944801980761493308172580978610519128124516018138829510250097558674950371886579936495209423740270783856014675244791156035982889715237949435297903658932411863079680459027479968178298588602130963947088227521278114730940140694805284254558765148933600937761308573830762643434987280417597015502718556731976714907184204425767900596671330871955329218630686049730221791158202153003019574144249375089657424087726363664963000605643834538375196386700403594769915211123033624501906379025898924184267001809235978320580314365422507294747448552920763133880479718584618659190081223737740038486337380041500764874682226971217353780960112615782331810212609954813796740677257243237893976081129324283264866388702111230748239213864907535474070772931576106148368996491999191088497051182207505721014341705450036834045389488217924906061889538801624146329205824398959022485088264226420975057865742293645256472385531790027893713172727119748134611027699456157344732216151067604712914407301306954756094424454693196905263535109691482117570049562779553523732481671137369262283574408186657070201021939339112242133110032991982814434038283789490124938231091786441987996439037068213217664761454060191971589846910705629647303594194588668564350868315578693251374405359662851145527330480689573096954443308284635803601743647634322251379378041955404006482281484030050181297477144833523858541243717696999905725964894506338270624668784472138511843474806999691884835977933808172069921603006545089273256428890059188320981926407579350306034335550467656313661182309542065348153493295976947675303061028225728810125299569930922747885943715588535392125204001087661391402559407278414430147952046795693004643115309158308216219202476415169617343499387411569351428074823075079727390354456185674320356089782649350246741188100998435225043024456122001430178342689993553462838482265999637328058445863653614557804883693644128760417956776725155901427243695905191130531283412711070330751761978543072421092667882999221952046721659705599742583891807118050986430312258736053714207139880275247441990753317648592358627074921390652181594529315519695262896768067720775409038508649321423357254743140608732601654967760998676874793072124548172520900780006215621966417637159743274715194325040790633762164076870836709756731257821767391463934888723318962133059923344413818997922614970289882202125298911246959296766116973326092060498146063724861793699136292051705837554263933731046774188838100947982144776212450041680632655218150610704427419441729274752162320044491189015602987522178813778228662642051479611235281325001531809081123381608399598388491828214634575986898763900706637897045356987255990371462394321787223607916204268846292004114406214354013492330195203936722746835358078357597983000543313474588086222962762907044527080447513966968939280023656354080221293633502061268857022328078466081992181128355272098798037940558020843637497194261308460760128961875314739614811068996214485322179267802638565654530107285009849775420385758730667944454266768273063629575241319219584747111227595976340580038230400375313135351532012917409913299348071589870622909235209624464097737267112860982373452655815884361948183630696107840159315988989839058669228889164682729966301766505194957434770865858900503441819215829454026042290342669810053071053050393245270672578644577137242356236332090815049906450756765493575283349397489920805503170566944489475270064221472150349366096612663296774402855026966202536653969930711644473489857400081858612194966912738600428624959386336124404805887967152058728806654566629705020518890432631736054528997411734019562774852796257322659506987284167560753067716164543066527601952792124499095309958331080224101395868456790787435763372484933915382438347965708784490753239216897698013945065586969488200756877773974990587368741165589444722175169036905397341229782348125658601278730099247887513738690835302690217583597580447989507093487500296535214889739333012930317278855407364192477822277329479646256143135803091341334894310038455523854358349709151847463800877467105283577258831370293589862675924809054854239215407358912773080267675564517289100143894431373450801795143028493502898075500436322239381629524378184575250376065879924167243464557017767593632264406613715274224956725061417964743343396993271418313532457929521549237793757897171945904891061249903631164430048481951404883819435437173077720841425533458095107015989768113713322715793882753374971592897855016016273122624658219720028834504888735412164565322732061149830080463274324790088366801287599143133850118725110410250242817311311237288713348100806889901926060797681202838603250679770701615742469874589030426588092206504436630189073190398111029425408923293818703047081287185033508203720445115417401298155699832885085090869764017082902705809012603279207136478852701608510199841227167500781481851472868913516726673803611244116936585362613314083940423458678007728835699195274116371090807592497773021191636995577703932668300475754521565123409650039680055540059524806153466550718698224925120573526793552896394968053250035147061661505800725417054491565319372524960409356058784783951501876420313481674172537719798484571487410596053591503548392180093873319322038611390469688014900218904047196931067271476691919696912402398655275462380303264984721725458013928073778967315480378983647014654310165427703103632152882767590823756071172683675337514449228896409870035526939417860197304401302155987584632136975479554680369848319819435653141264871799200559961193435490869527585193357124098236730209693159842351623810724130422283073576215298584613981395094717081821004225455667741739146799401384452020893865943130282632550259610497804815662705800093303181848095738670169838120197182877971316028451836422354360827484816160121297456857992876431947676750822107391755856371631159924162390091794702428662696732945491087885770417983805205084939165132239032465718796175061474536578976277020333270857946715734816970536776658457341788686539681661168531626081170593184062272271540671620158961116319573836053378252306842185562235035958203529624193754967520581447411965138490682945538596882868070826891040842345685438498838087503644006782998220464889207457848347614730960100696092022806589146238197423144150617172744206252251694857302968956778887812323876578143599493878541834914505579847771327757716516538849823492594665747495212773679052384418223945132045575995720781814116764569664083431318186864750466111487557608335413264819911554021753414728343295245801746596356475936177623400016387691725593374428882234219303703214501899699640996830616271448144894999375771495642280682750619462089056843438191391874584458801107329525006978851499189474282395702454604783781164917297630071877707060277204971091267914079289435796054306575803506426668099976441580689040103182060672267011372784760453036181609233785274536733589173354039726431925050073420772619572388391942542928394779885487716968042655500037371259794041908718252118073385242113240829752558727450787966634125323677483574246734897561204091867423616142016700444739263302845167678303248260134402790352166042498142829999485835342941042727727039822603393261104197502696850650063656777191411392214951823857552128415794662221143568657170728452291284427102822011221804228356846170768767901052036842116730640908120392414677482945915618906333060072488409501313208368715668177870975518856159574195886468263583587556940399240852523003560202381214103543140855192256811614500321408276363122536155879112321852409123114294593192692855268030726740264990097406501539051420470727138699194808028214231999680718391925084445598028819454354766204804795012676955449604738753248415693221628496414703222787238887239027143607050445721182987187968660564965998844409109032515129010798508009875542045321149726077377963520380794678457995941216119303919467032283651583056804343105412879921224201068916473183341039435838122123505859534894432898008208882319640934774381189519728545486154044502289652348993908054544597888542740263650602547903600552131731683337362802137779974127485861300660639804121066172431047195000734210480046471562735722076853549711383878722293364134836863838270174831903933472961118268678544441180314749144111970125482658193156465903287109709507707219242808569848715684070149351905676953545028086878550849388505588906487720775335061118516498165411554136520475272026753388092843844568739204495646910225130463533986605798668627723788639859529107879046732760078462144967186032677352295702600346429286575012160906798451284255295819428408515216769066608283977837014547916168762009585573380388761701614668687408824304008719653486172782001676884087037723496180280069595153410765800653130907009573440033468446155806510774066582762716030931304086400413777807452616925216993469328472157666309236436813203185217094696316731681741456126820860210010346835280720762077052342632403972354853931533803341578946395688657234086984096373810279418242727905794305304373175866631020641075180756689984227311324215977999268349660886551770060143130661113580199574727647693147063527163869783231875713215596145517144211992532486559786039664492376906484104715565071358705176313965832055427500162008965754194641508507654638623477915933810058831009094408405056251610035888294962390009801902174299189235674695805706979079650016098266285228503804775084966403446333757819089185598290116957264425086081081239168620386999778061052275875018456226833954961046105670703703972956549493115579102656293777141691869532130759866296287428983736024149535914177221297035491320187221909536139523917515036300530035229538202653662434461287677916270847479060692860532237111727212331585976843177863521692962081239644044175435007836335796307599825933142278326106000679605056689733785455386922704862188335750006275560396880044971791769202254435962947611716478045259706914335043472821952567278470024847550366582745505055538855151962256118776322878520740302378408430899162119363098361416093395113329657631803716507945470735658009089988813092880417560694738386203123294348219895220149151105260184878062688126945598062045450080440634594710048563863908366650484335312258929766910690832072595465153131536370033425659011383218614035687989271125885364393428165329325844422493087839883350484840877729775421070719320679132609159203993892334300589832996512941503217546963380836694417174882199784588065027370498788145274762721537515011106882751569510644041018985583412684394542195545114333047021171974755247741846945133115866478709951192679093822398768983864602970940784400102566542723700105791622165059054081760755610750097346923554801784796230925869716753756670854246798180038612319107016153052546767317143918324051782879588771634428801060932411002151246676648870074451293738562623992234522549618690280451241828724190107804903177180483027337686066097417256355944333697642258817063529121033286975948495984969813039550716190685810380675080037365064870351486983197710585198472028084877367242677551067943170525649168006766426959536715069722159309411004515478243522498533442341630575039419467719525313026998397752639797864324685162413812288325407078244562962814369047537462504448236659940105584262533724815238618072135179843491537516018036258198375298427400164254223665429376255758507244883336287131108417862149031606279381585724551823068869899470904864310262509634264912594951903854924216902125319214740376814042666944588458035343825567716861826611760829139386538381722576863241919228643817128173183735514863135927797030373350819430322811892856737114868677063720758142000057443588008816992106509039552779590700027393194969350351345678954249682853440758690627106743763458025532663511472975469070373068465228171060613512705272107084281678605616066205201195203043585795536829609147916127682934066531673923130051267174793762370070094094585888852490474344885594946820384260145782426453763871267450042298319422209171399370370282653359618246441944758089605746834690964929434360859698890666443886963341238962972541599846831339002939223036491216489143139676547494753419103454929728641670350192128004529548522092237013924432105656715010547148641924442454638407945926324530143510273329853984365399513045806348725267482873905298026673957029077224580424064570616015120610948886439563342155591238569380165381076334213169984248936381961224985157616837104573764997782751399820840101018450105172751013388312898353262880336029067122463580305703700896176076590938950727470854118939936611926909239993544612345690186652495508847771395829832016109707954583240748128098962420406739361102519828635879542915182753468448813679765616726985347355783075778392016698943188624394018155786879506963248899250666948286086935909399064056073340268543465474272920599863467655528642235556425563026206515562211389224029120109971701994201998596375133981549610824747846144546336602061118177564449803021252148401715335373163417206875621792437957645865145126652373077681190285518521264196404034608476311418864473551526205265542767527809816441046121331852132310741479715936845306310471825138238594042672878893622734362560811741109427211503451241138916075052357801108566182594128794911699000307306721410748902293103621733758185148059817926426961738326383244642505803956160188768964972463113110762169457561979971476935160788785864024180758631796584743874694807463420645244441574808319638538711283788112989794204500412278260867270811717320931435463038445664190094891901207027634439313896499398500661918792606687675042186570134816584670321420020276733415732121489397377533703909308447352894173876986880422263438954134285949038232281439733617650271956222532759790416924171613132830833526471090179781292122334268845697295821199451298997902021341828523047525215693549516934480508954360006535161144191914544610319984200336193107427251612914019699251907798056920056166173278718777390751993226067099777212688960220357028752084065662005249512287217513911049724390839098101526274230534848523063788215719661706804851183715419064071907961356649204265110538260394757088040307006306609992510506182181861388061842636362455761554645429214520499424432857975493499861723431691794877519055273252443400772262544523311537353890660588990835931915252190616257438423834518529763964683620155577073983676777086557372843071428421653680449020843785283140993673640463231916723911634062644438038899978830560403588607839164377195736534542087042265248607387155158127222347251289420458261351093987724131807742277927475695412715584898765363783219589158011218337775745413426994359637136443364607683223510126577977695978133234920952461711840775738750655429835749829604095170520443194510744315152012161109640441266677204900400857373109609818711270620039471687372937371677865474426843775965001722420877353823674574234956558989587877349178399041046794180330596684715373647998681317840035851042117700935780665854916380187274924637741525621350700219366362980827950436227203556484095699876176265901396203632642525877062250719073892932506528743303488947743674204588366584853880250129683344950069829844909018767180867518378870116039135633133928171657013129926738722467049046175360458717877546105975724817480049974221399464987173767256646699147110307001576098291170127299846433758958932322705422679467057820746204223435584728377860030835419800596543456191571886062255020528535427419971781338102158914442471809486603209625869967109087890517583283598106033426760026103862454343105827975286257839531276552914404365991917389606478172030448437953865568175015705211951325916218583891592649595157023914107050129103761477918963976959386359901351638651683271409362153160495476452378095516873772952304549108972434743424700284063902129941048772699031767501904030327752644300189236055217340149455675867700536372804034207087700171774687176961409054343374308478534592960028602315827370898590357165294958795558222577867334094172469559402583724837606019235019476646795619837100038972726043613218447637136794509136696264985360541870119466605788157072865598297264513473541235820994712384306392328255659322806549890866240062292043926248949209050224135484060893829841196687964183764058349781756407068282961340810980383223371876800307091652889554765351419637813607937260252427359444265182292507319940747653836260115132352457805863005201296906797740929422668028310844613580706399729094085425748681480316529931537985788272156102442596292632668119523728608180495878260556089548866623991793013705470276518196645070112324899736553891413620407700598731840701107411602335105641217072783835545499871795251758900382368050182617762251686797083203527786980763809016170532682998039157383423346982002234036420536406321198542889544824987381939536633406579777280023598975019689640818396944977004226124162163920445031831572348588254000419103172207407658736030483883885014851085305828267229590061361976592786378939296491691442607563558319683221047973245461408162231127960796427699460518313797405023427127885446432879729728772936243708773946512375222377719834050885498026754150678165396678141229066954478467980544548982130406667581218357476812084713825506435907383212432659359470470934466382783132601619422880377188110300286536735329613934292026566165784867248058541966440456566910965336337667959898480295622618525933549118196048128229084023655620985048416688618309562114048513213903807112003281747184206197398589187030929794140041352507052194517475170957819731947696653236937793245773883875975704162946766327427456841091324530944366645121620755570296065980745968976949885226236879058113855112453537300232663932620820680159880775982184351314835228552407874287330446040267815884121474229757922874765053448221829975889254268114288266528718604239985701623777238087937432542050569911424412096448684687083593149559036484812465942446440252138021990436936959733382433499745979028827603661767163723315903228321705918456651581777922447551421854547306601969197730737471552043060464734569937943944266768935533690943147722177701912712582161191530852465867556005231759000825424002329799780666717308443324623799755664907912311229732481972853770692017803046678636098263122287945704847389752248600682384076320056170067354660401473939369183716825193720676134418943502960122452513013322881444837289385124941080787590681542872824347642861185298658664258735303920193949872457236770415165662029263995657666132278479008687892748528957049903961582835603536348772280158373924741099350311967306837878301732147411167870113065700982306810378546100652345562772526825298440655604545297195948905070632898315884661537293287519461189434556262079739380027083367820926764366086108347506872307028642923899171530084600805645605456210153627472522562014782679288033196106232637571928993564917006119761872465793885514201726217854261723167258021765561995234093939334399635985921962393543008895020876429332797555127365936107981718957848633346573618354371204788547403948734124400500027603136053462661488344888979171040342482803044841286461998796544477227683232337413285546264729258953493005443804477513590205502434462334096487066134778517412169227436824943976550537147880093173559143170489301751772883779951181426574670396057896722890424995719392935303262779099542365774048262252807620744749298136145249646644949717558709439130025221453149543309418148837131267930258055741834467502159947091875575253546967048988000299151272515960853536700923757716271021217600140495958214138102766806727972448885991451012617537606069353159100962039915816120424681121730194872739439779344807160373927028744848507795848306407720022813452902960718349794738553934507958411455321987480848450980861128251687343622684771179261130376802720257886341531210174907320938144534564040277305920491445752701267680159364263744912962960209006594522260271344433992953891120393340207987601375275586100770300603153030550330073615323966707932288022870847258297402991844210524353427728312944782913847582590283059467415934543489444587620685441181324463327738437230477224152860224553739690057674261592467918187080698931440783976248181636055361546210782050400324851761695539389465928127748481760283553135863640722437237482584861151322777350675211420102778293241054547472368984149169365023506145802008175137064846622247638404116072922349127855316910883227006605161015875137161674659362459741458892535234097192304709777106389328965404403628967153330115986591889105927237251276270720043475069302148572062683611976357051362151011488878936223538459407145865264914627242697812230277710705216580298748066872405423727986874280085128133798054294383525250640251457341446636556396012896038981338863742696439705731867144101476015796251323283854310912962865826114207133236695799181170224686355637674372516938982580689310338953167062896426239114755573511469711669570427738174580693710618290738872509377907408917714231316917832238519877558655308229000870973577948773667642561859278231191904697283139217418186202911175095295090413025929852002600603535882687333729834816743107561144518899262658765910837167509363474561446290932052738547454158594598846002957780998115668800040728332827501752562190421858220760983161426325299861933568156935513394182706811169023148415275484132023984747536238595762092875826112747564895291680506052024215724367312249847943175480997138039755287944969488091601040044186581236009626079777257608206604359874492402843070855384549673258779036566298888270605782292776911078348397737577648513855666684115188033140393018351199080224275248984705620981676620045841042361711048536039084612670211618591828057219847753194488521668607764834312475835101288875446977147588151696661076955651164710293652319355015492601398671696086510407373758914124164421180008542074287389689533743928643298102854317898421728901664445848239904922319955761703658741187278145542552533264843494079908278318627918156297848329334593830129140816834310872658624187692576386356487162669413250384833452882276420490920430479427533108598241634755251523930692065191887637933250502357146684207401190268096563714974765615588869385645981257690596405374782954054454458162867768654880826390391569225686303013758048003960813523126369086442094785257625251583568938112901859471299739377141601201230520601452637211682337295798766561703988432644004043285056801192691605637404429597759283017763363762469997882663613564331203566564481123082975196144681431803801471912726481459684598733382752406487415331907268314556576715818726765048182973590960157182705667857171361494327166294213525945982461954312145376249839356628483912002220834698670877683550480833976816632366371102326110326777745352280159550415786846074797902351669494215073740369006447272273483287493346882342018423429068722497499602574210306730747720988140250109384656571704004674745018650030583536604547118700033343696539369474165695325576769011027192130745792508874932611232199469185995383181131611796157329213737076064757879200246279326946553691689569258701358496126542434114282745150291484155430837126749611076079638553972514647325920743766213993876724317892643984607536114983614724272443701329047491343024154635119835866800681886677080052933649902585194070680418186642413031270385174260977065419366679223702113585779395063281565990196210010413121699608691138768617231080040482721112200214733528351468952011855059669508638866718053960290674773807589090126300263912460309907836621056598112509571830653217862795844312149058048756292442500910088793740021871113153392428873940538068953352866233644358239273935184720492535016173582915034899776961908404191652448369541904024398762833867497623295110514568038108976520074692919863350315348897356991104879033972556372788971711426476408290759679159075933745530485832604378744413658062028849364149502425921161316328387448069297666999928074909406121472472828969336598317218447152732159024525251944482493881452930772990462596777069535482294278409298533260213461921259540472281443382967447736933047216771446369700562581406174512273988981095372284441535524945059413650288214905080862801687219669713033971587588998300513828079685706451780485967442645656938014344715152018176282316966320413277914545221660074931373313004731187076474438736556070356810185686222696507131853169121845563931938019833862300391737354701636232030097136029468154651241080121318253740012905647518068580968528197259687700101734864704313322469119473400039081943240766905741775512831739129581675274090562521047276044166707744651135131180743094377761295330189167251534453217088865405003523408911867344551036353847676328109996404474552720919211667958059569388525941442631459352617671429088542481463617592359834510922228747346493487905738404504568326011456634833634889233922219726562732132505859674702938553916477633014065741300984361823172606399170163296319863237647723423933870948457860666665561107051228181266499922026677920499130851268322929531852316370212800127006341204292961196860107170527174891111446576427082418161213930471391012460261038218963281988107740381029263351409219909103221438124056819788050400792599956455769214993218529110610009775841748647830292043608444277939671512648438950897969591281430962002769209813525602455297156106673276441475068900255053466076362150242349666517198292105235559172729661958359267320064402710978159079515275081342106821404807736151798290648849165033820927514870063345666579577206620731380329819814706901317778957371948338330542541628349463682570766516617804448013997321439124842209695563254623152904092451973152197310852564813212658103546264755463916963763066149320275646633844873131777278092622784607183013200010450704539991728340783656694057133257310788379684697461375272567259912254912120265156395151293797077279066900772423208167666288148434564517481030542987491297483280455731003703942513555517092727592489289786626019409943177952371214079964877519535359906251128395072860404567160282785228249275224513160653504190825660075563630050789081194630820733379485021246067805649223836054975577106563497323869968625664638335585428603141504325597172200042675023175677460204808390405609378131792558361898999867656286648579534028329192965471809625026580989426625625518519458588295360345452633766759655054196826208827832401523485481271255927603995297183163574380739583135382554716495256444383202312520808803901113806662255436246636886695603230758555239539924190177714706923056783145762217661745451021360489487456268138824810835877251953449729662420809971075525410891827436055366125065205557298786325430259319744397700982585168142725239840504016056921307822108915825611482500207800123537457332730759457319191609272183754513648264761056723874073689715752166476089304144859831614082510713590614469688180648472891691196284647169960367000397763611693260752345966327215744564730640341240211012420462614541077339199310503212180626105327053338648582607399174342594126818492827794120662052128973782482795853156676707803637545751834571312978835535393672847986193749958681187026837114769918528066849172015938745752249108603728842674547674284463153029802839551539603390007295537091210727812091401637198377582137194604540198268819929725610055622413490493255514467456161536622941777595867096208567863776495948151514303536781724174524054100087724013945463654344760963563162618817086393941699222473824667977255813494544965089658584726041990609773421653717044818547712851050087110907716579631487381332647592163843575559599003065877029159478155664898309788959184988897307830211183702623372189105950193700751596684112923521348117779482594731080036357641112813205827937142729520451553264142989672003807349302573735847618750549176788641420801393840426830986291075375109849588694390275844875135320786432265789455841102514701925955043785347114108002239733987297152262779354975333947323026912030253879138173977596011775774885412014135539370888829060215795464742366836998250830909266941680583278746029144460885866690232383007545054548632764124517214678896722080812380135778632509014980765650909828540598296297274707296138835015276963588717577010374449373708972814177685663448323216481709614729964521474343966075022569907937797366363822868111247704644980352979971707095679817501336441345133635571641542444886430168983860474422807147869059884144017379393054600468590469181448875257112918587561551601993580324802637756369791790322601691281408794805264644713409664941525389166295740022710349169228520853261592059842329229903840296972343683734065929464743252773156650665890242594182541348179017817895572330519186823009986717834494901852666372986373839372660521884203528624968976965274177213581925035171349399100781932153411167810589303569033486423107292685280190334497405147919279420251450168102151535674067048891662245569855001033301707369224013904699731470996626590686340279195179599995391966042825071584163379919055744449167324523331520627944518195031022449803155077827007820971495761899016126375513252076542602050232816216062365052537826175183309220904330319378984531960337875846107953420465847875193470832563064429739861055426898824980218814103468856950555569415393088655958637548969792509148639755227771396862718330180507944220669783946862432690032314159505867914414170678277364141272266025645496714227872649954721786287972748015210011628654529247402812779892015074878591482676089863544574042203920043362419996168461178769776542866604609282149460832739440358857276385628109751769566037294912169595736080652739896485395598845972995341750358125081563055617965209154055045496819954215712823315545082577716972000005091356765146463580153340678729357169565038423529528327649944419495877426551685361338027934143314795911183385788649417949156059459712273887407497845555712041597100499881062830624098128683581607360508632107939710886968066699442409793402623023524619850935577901667514033497714254385534236034476564748068153838957007730285874326192632231486122151058883280274973029566302445483721975464029003915497609538874067823704580789769722293716770333855283681947643465736332761726029884077907444049637077565938406206621479931119431271403843956903270460954840124801074104193112410411915716274760228664246059486226584930840625015774951171574060387441452657286688791681407865853631597037024602953688763809654161778801843718008429882150857506434670410488662407789417589300459275842082285894799024636057267758255003852150417489238576568992198185090085982803177895028543203645353493622855008590374826231177413143311726559178445967311017308605602394825479620446249531504185493273622430283944842787546246370315586032120392871390192163794564613893390365136315605379625586172222685287365516248858357123210614563883925469868978485202652708864139948563195267581555744966648500087779476932084494027209534118014919961868596550249703940991760968383141772806304850439577379990544528019676710427932401972801642140171968380344705426312243131823872012625986364988872890293427735759453549643885176862307063488349289384129744979762688400906715919045761127224404627631164965378403441329113003977666202708383368988273411593219315356571295655064112249254267437449811482289537059601649987259630460601202322109402193222613447033564536502052428525494482731006693584726351841950710711492081322663806153088686697340258459189133464715797278568180705669258164208625843448665154987330643335975502843996063410398036817952698978168202821197344916113875780872300828843835485999359142813609059895012801902699944743019962349890008457575000345176915580274303179462860220689709701719255551449457234670875791710616126070631558471532900858735338078489568312536219086703856562610075815020881264187110531253589058790313937548279550313991057873689821970535823950045437507508911907399707686102498153477182995384831060337713142902490553296879401711214618472646793616144579319143864473191582597215903139133150913410861098476747120769010874064588254895654468130905921910359690764841077219236788986198273622412308582493311273471171132772486623849015514299155905068701003501732250873372575207038124793003915134370714719112013050764002807350431307150030739773908000757052888497494804794449692043461000398436748887066245834091622124135742227735368531312225745041763464673281985754408238795837347990525170322419069377776881955365025899764716906570143218077328466567902556061647573395040988398871775998437882649188343052308798352022300702587206894877552605338192530809605024464161251860090133542974739507009008113617409048475311521799032247323691609084310442491866886084543220608896468407879842560882536755215509374664324903251796593828617629135635371454832036267310104995434361033961391003390422308083411271090826841101860126519184716183420217076744642482188371610045882660071214718119566937042124436117360584636327266424406572990712467108429872860160439481170237746208888262460486285672833414101761059255631944107726300702835415811183570595733124419589382917267518875788888561857865206286278289268357924381316241938768788950110741781750455246243626377164105111337294173508618859430409952344782606217820626499999217943741288022866274939466318890228144986036179856168180815797537379971215435400374127201607039426916263918658905599459109766935413690108948452744836292973931826893869816745681641811712836605450565513385290365017564362825696342002235370325641687056926161784910191515743424649391754445308227419489243653614205441381792005774346000213135282068643222694011996542079845873460693279833421286953755469163632570057139177204193483709485260512944418340945786891838424747307313936282120933376070780690557644862050618118008803043090808861496715663073017800323215891268394253359518444907263681531066027366771354046635217102597974441111875461778817676436523920087937062851799356342240925201589479095357164734084751301465893788356329385475880976859010545913443335102615568289955250537132560876653434836738264135281428359849880782585886622927849643447516212141470248329243797679506932369388230646364455867503787715767753668194855272745061372151841549679709582691135285849065031894205964162319445021754750807515669948335810125254558581713637103680772871096813888097655251224907165314662791147371899893770508676154171326459879827234901730706766144640338362491179425977029053761237975690071130307811541507319183875296568381187656736782977962349078858491706982943393111484814768691631079928408772948674794949659276126735830947930623231906512918113845731307364384430776429458081731531901074232182497066127682715717518361630417701470989649918698281303376898056019843515668026142963365617885458056243574807760478380286979541521320649972544059719922662840158151461658117699885726036359977732373672215696350607328422791958378543913471716169668862668511801986617657384603393815122496073749613606271783650989679303152395867345882002812179429351194684521133407663122326492440700970487417882509778322168431939495170279388392811421365494228963015027205141257269139545219924491482539792993433497885851999353829622646946634834702723352633160812796014557608745900168750785519058655456180784525491361248582544092842215607842805690054391151820014547986466206018286116865032632466372115639515798058062581103775661059310676642062449064993896027509292179604482583809371182482223164390823442559277145189396883878549650596680398937208044493955141958040967814501205358103722315700782901854162997058256980252300529873123066514333826330062027275934738236760715811493210047378777567133325733078520916938273995088499709517204979163284849579713852216040939665613616700877400435408492015800913219335111225624785826769993221670809509561528452092183900647930992472151406041232627740671208861646783451593888470760529665865322677987038624942081032668001017434911536764002489304105897191993766263768195392480918991420656318213706090965622582449721487807568968266734738525394142629732210709783745519512855310900730844725036403657267273083228559776156280004080964490783898091465702640600591389498475061664824075347444947111142786088179290117738916084903163784659051947655822014725376924055948117400324063473246516958702998559132330700046979636552948978518911543259728221332255114504246297318518290439239309872634373954597222171194868337091853141016186870292143038323155154633441711929487957861870927833861154208426861049699317731055892706061226516710903068218087211712273502344955181826930430367895100382368707136347473525396667788464067834496682029708586863666873285736641257447320052056700350153044724289971894604240006563920012320222906967350069965018841747454401701398827862257547481961075723467562644656780871262055645099362052826859716470907003074052117762737858074528121461766831113595433769198580929970464905470648901114119204005051200031926241038663418414393145768483148031081191916259698331369411596316822045846948858893057280631204924230811295537956424111217356922594926042505644882940015895847806346305323042469604928192544361391333185977127186264299424342142211746588908922350458787188817138705792871385425980899620365714104322838335959710066686074851123197077125860099653711075838370698572440335625764666692052125056523159759363069741719596648287922891229929026597866629610278308712462784350189817840687528749506235662466939011292609275384210723815463455396700467936647771537813865742115115060387854584807153710432856932899263238215477273902876097052535926368055397050601476708478993824971467316033536054160707926269245606442394466375931898749360337284625925104246013015996079018210054697751591523943870907709463202325845712035914051170236138496813565610729991471229680464324965458480249691796404185483766623217896653356566406232424176310734033472000963344608477216298171119107437897066499743506559622649612937565043812341167050200671441705225641239555214780170846026850207638335389839847534003907407300042547895867473215009454541169838598854951556185196785356962622899284818094126922947013548979576720577971021883625699931529723382121968883578925555636506817502742546536391890502658778464920295347622764429750203002987791902279057641342026590725155300469872360351576087564241662525887554939089428320599677535960855414918788977659404600314066820035628092298160641010175333683540631048456789395834732053634713813662395118247788219270231975635176703324830782539631810034712553153369169500612591185887881370711540099979911063765672108980768168476048963619992553535068200171955525917266187094641305881958841953030033388855510182398032339610579050684988446879727581546363667888332502624775372622082974753508361922039038890211841497738648551493489497351011852455937577780465411504596381935453603615929539529304496445766097150529978886606255914866172383322878486766325963395315884339077597936604346217268453466664792307200235559753448482355728726807819870126871904720835609811512592116374338140898114713852903916654374886419120245969162279829945010903325429980579775362184228320723079483342997571287799749308240112948314615778918909778107903488288395661636620778043842433241427871206917902891817461308022946223452451711901143216765597280952279422095541613299122023563250952123985145751280430703801895305543991479240210609991188737722775822648230996363067065633695270888720529541751453315344245259401474063439546067656298492923024814559327542651693667804803800088870489102362195433528571737351123724144165643552615156701169926826793100432427448630848016341995091648670935232480212505783283804064478910845275070186681373508219846327603742176126380358670371358706848437287362907134573589125858740349168522890082365620793170994145858762364420790953988823516549403455480460501108211891156136991750242615475282660079355436195277962108665717921406926677324966429635093361784210766861575736077534537943642841533371371250973607669674906570745978867472343552536210636709103383062980111651415241449088529577522493641239147978926961685669370083901610103267336425892323515577850833606214945602184664499951650552474540480952006210654011378868825192490757257112749342528926178590348700638456381292707454057479509330917241723475822020008982743989845986489224466634479467964366255038477004747324169320026739255402240639229557156163114899433303174761607180803509006269506002062362851866207315114382874000170171860801723270314487310814706450185741791950453642351278218930675307148791212444656001681343731076891693480300536870947326427153161414172884826931653614271968465378824408617635300288114869866250391056434796448980173151105978016890201901930305594651392573866524898567094274259788923434390502943928950414662619423944029658739194984664110718987455519334033874068434052989380020035977988847398443421439879932960203250675247189748745108331565960751659248709248533884304926831469919303375232335857493414553420765524082584064992249701959960661548613787595379282987127309112371414169892166557603242537095660027092982183739548348368404616183869844904772073673968710033907316658355346095780645520996166305950871367424697169904843368796316112126007473716737626695499985722049953407870489825184709049301612003836714700905424286084427690864415585767858869305254340323335019494146538848987880200188273476212813907270971633919925624306726694566504034484190528977865860277368013800427226861453587736165447035882772979700251326581203668617193256686337249760072472988943530200151750457110340960575059927308376703240889095602553579150029883247063845287421674813666942787060050777438650348272116876918800938403369755882025929536555482856357075631765555658074240047709986169314268682402025638403571541706240919495389255405994845863721884725315091971450999987588835493953760964475076855883839909501899301273022005002304340385539253578962878904618443746331247562291271139307497088281688313676481048291616425737253867323696996058895863345521946371359890819803558384391235203535061835560747659823365629842725886403535116711214196262259278158028021257555213495936587840948201726211552910970267829706792082291477968357030967528050446886805144020725666895384654101241940242374083978732954807452770952366939697652978776528114735319788485601689236767684489550989326101686373643972614508570277335010673174819619797368590523098007553901910908242411278208943458241123813751909952777117490717915191298211831797367450962996235074078840735693540743731038103726221469964893673325181606553126614422135820058380146503657444476736353073027581432465848884930153918408806253474773016600780936877261175363450134184718222756400684798057828388490796657189638187380739665767215402009580722510681892937757401993073796113361820219718533395830888888917103472290654445976650244390217560420253180460518056244719648295802168201687200970501161996371626919133577678138719813637866683677033062276979921694982087893174013294280925342228169256801421279990961351765952880082708224939324638767916741024175736020646225281642838548595033937962599108132105543970695670281335321224199839158039002464461513001601789327786923094615008571385389361693210996820520419893265870600336489594114141121702424729057012503579867527564770843369036178104616124424667208038333436474522676253202246334367542775280715831264616764123611930828003573020312315530488391642126976796474291491664781628794500624952400995199250565495066528536236151015078598319022234913914242813028561553353839828076984219424561693897938760672016263375268899823036617839151404064861255809777294139229329060021999237639605171140568669071160230267825113358774267220888952766165737406038091855692996996718504628357372047522032191516572314878377083337689570955668626930206341787088216792378986424573297003929631020511516692060858403323591694283133162426574849367800531278778278792110353403243728933842395820611654133852914699196006242061544520012583161130786975783595355197427544027565979545984581322882830141268936985470814441109261832510481643099163353595573721144748206571136356710077729420319870018637941793726470896975301128085758155202310404612180333308124695093372213825134436515836362886364031382035897507107871826356854445317776126324694692514707019887343162561570463055962851577997267106849592097170717894972222254538124553660299858097060198407744436980363003485658351493389230023739351263551270688890973032760015160878511412613659174810102197677653361130762444078065286478100095444505214168605085450180289804481516511472833451421918968695782184069989666228632654901284953160244074959023980861609842988801982638865600499319350761324955385396993163501386324777931947797855345465940362447725711923549544466494926843316185110553119341055136285468924297130962152472079759573968097502886023008160285038231404505733158407551076894873928945993623621161947692711896356805208614081472891383187114274933920660671312273907996624440627415761934473092821501828257081855119677497352652703815768891209916733721485040892713576702896066785931291560626494363385675810727890057904658240244970738311540788641520755752394996945980101264632903325737831704134010103521534133326971544704386236194392640589459973171582975411452058498422621037968696078872717935928655796459121935938345125424126272139399771634763706766423170005973759781262743280837312931544407508231019034485875671982981573060723000368579286280127422700571015709894262789620254272844565396352891683959857539011321110868911976060551382970680325540231890305693788470709616677670860977457343360242963384084776627592022997346812533079685050131770752218361621665076075551143648410517027116616761292253374671223753030827498353957961883193178341137322951483578803777118726477748287826029368935785775300439728357941726693088970896291236082777723788465036024422772884652803393684781453788129404238849209541538278084328860395257742082320300067836555984396200580490442653470843172488812140831727524821550254223961131422964667984588330213733494348851542300678120296790909816244352365610559918091724031380311051454302263655157307538348316873039894445601912268074713486198002359065607790280999478062648679077802121876178083871637122422214662356549547158618795822057356691087156343417400885726226244929826688590486490540053835512573958357967120806340120178595821639681268705909331971402772557420665837109402108478656899514410066229895693849963917716149036981312141755832476234779997757892373879777343660256707464915804085666592898374631381608765330883521870447974453300563123186079882876390314223045222835450276487203987042838982219376298683238730201366733233714101313897182629705108207651393580557880150116056870714746369722805459835516079160353901221185351394312648831368881826654939732120090346319945901599002065179450196503967406759350485064635810502729977359021365585794367588822564444536619885567220780365577642203241356117443430283998195517243133443527876842246066127844959246686639688385531166111159457405423489506597238027858334902434965579756578752125724412687599152672017285793882046573164932866768462068079092631721505941755005615513866381309566407238009495558648630142461035172296939209694003537861329416590636949003976115485175458465527696545554972689554750636146542368824498725303746578071173788243487207858945243568805983904245927062655892775863463460691712216597263028588183357953811900866759174361344061954979251684754429226939900790601698417593694016378317124811489253737917843995849005530083064501237648750393433347739578946645169894634730576277561378669685831556186418095330476130350441966866102390876231452473528955450256373851976465536616369556870091229505508964086196278741146416077211246456230737971479720930691577650928836601170593298449416200255794117653985073307705367226657990182073845547003388362278117903244640159544523060954978415060518485770059829580726388355315661641134959778789041302498635362290046836412222468283967653925320973157193602391332679566842543770058230839362816160021990132386972946411526808882435742818628096084026113474602606314948007316445892959735008551653967135864041821113083476708788636848469400145689778610248295060191487185569686305699904841642568527272189147088344493890942970963035878261917913621019175989716933612098481039390344643923574177725658356271851718920892909612742813079914989733238702111230974884025724796036052015980621625764528161493929044040303364454625698804923038105208822351942023081369587148154468888910718413111245871374418518949592644244064243397527160809621523939432107151985542676860609004412251788874836391838392801219581030034142941863771972247150816079622199256486672977311858198553137638463508939664179251326272301844925963299235523043720095633478927789282941592772398042524535974388660003964281619491432087336702465235952271408417771859835667911972893704730350368276333572732304921131076645705513240139376919002942545199278740025413369245845477920118352590480131951604280743255598548976669694992565169181962523162816402378622419179915297144369831960234664280796439682017484543451060866075407441713052117702652722310373547341222665537286751586389109392086021546163659523347442423793347767596829138762830407097857959753443735925295287415213093690759051909057103156365259992657662521378298137889288751984524487665809958778514524103578881504262364071565426017607764454944572854555544838735869525864246043129435222192953760649353893699037524936876409683311797000171105409547330524706580732397173749138032352026018407912461987193062579500262520323274471550415949863972497486202198954053912950296494173092375829703059322678225140485429896828591744273318454370533448478779220750938846775990763876776387488499214975113251649135881699171464672001085085700128429514401338117405476874963318064132597321171676896891464270039521270771762248558800710645972233762583142196058565502935285285108719802171984472097211597851275974891699941509018538154813855844663038914616600994331405806232249810666956757606069769729153765849112249802435565686441432524248501800328614667061305412522140121435480738030619323342732369810517318840234576785862357379484304555475224281347648708783346940003333428641205832150088590963396101516799180048307808106195730078331537402767073548876806182053721436959707620518420819342821120972137697947657753414557774653719546271852134734309279952473767284060945262356267336505663372732400890002501294089667700183853657623084865136839178741455379582135361102215416110073991915028702892639516353722524388542190966963735286682707206684310052202120993983988367695141906151351483987812853345378329808252762553887672940287404027885709715284998490466161056430721440605556671832653357306257764343962967879062788157368826953181643496615446145523557184225014211132601208030278062570441238304706070539530559607039344369285423281375421946013490098826039873109239780621742147541287044209200664528363105200845163358798948350868037679130232821450760229197261853528699001483288930861779323784015752335325514376276483572843965134358159103997296703666552513671750972990499835411173171168760199137391598021578491576780305352089176089873554291580393935927824909727524599167419955196445427185893373947004287969781824876158356858076013915116343871784703008416702256844736749974901800929608067153311841452066975028644004219933580727374746599298944623431822738278944393321459417691081257585560774104802951772882572286707961831834952705990547680805574451340084540975032470356437140621879186421910031507522429005768313184999005740598688499876365077846267660299867702837396057112863159854905417022536193321283248660647231907860754657224750812074052420787755522946984144709889679348119728987511666632750219183272858955379429767364484144087703477976382830448657265776315442960656088750506801024203172515649596927430180258681839308470520039211404011130364980010590203125879758253702180614760200233627896385388522532402456276263846335775765255651133320842673169119130182117491130132719965906069359496392221520945822696726247647573166598838026260950307564339518952119084824509877465107519749710484927920021423005295719106942604259897875252823121208415078968787986714599618695683598932970461193624276009581877861472236749751443793650323284424284383181017855064022110593233284372727890201915662338857775513310899371065544384852946229875916368413802722441824970014711462499624148029018726374061476122323036433264128451709838217778534033355504450527397078943073987000160874010738881563043222867451393325208709898556828608755180326507847503917050466575801920558140379982157654141215514851248963644575974027782884449518556286929058901639214581390298270483901005552063057237549410673829695804416780967018989601347968331665484746110790640254982258876416187625441781141895080769059915572357749760755973068219124317309646598094008250266956722278303451611125797559264459397463562916588790301326208869165843526655388277388664465035997834845328991738704244791562865396887406535146627590035554138783142288352100276162688897786842530688078559065154411339076624777581673086535504143201585777713296924597100042971091932883051110011370682375982260978260252152695953183218761661692343335699115959247366966440767927015450056894813568524444291579328988279571131565999696997912215484127689009045711466632467598762792523370413242706594984103874909637557533284369535904875919166445512347113833606086300005069868828238107078910144555490473369711935777085518742489898085882874298351480465195287031803040625475292658731548253964296586601613257692510113294974415665984091250993960320900282569163168307460028707240026617044133921281597142198111286626787645374839380163714429093915672882604313600021773175770008027966328189347346059927449736362920058673350249505692789452409210499310806821026422089286128588625171262422885523308616866493091923127391316730428735141852628776288738603128017598203680525005850730235477725311576259778974483911494266006208568531881271039940478150883855802340750208375632020251285567260041902845034061397744991973590023084473142679486039244954297570302735777356666054685253377784156870431695227230735166341648890335076131442404650884791272528603608270547915673996348341125223328055480283348578002746581844494314930008201438302425698463595571093362196585718192531375411572134694744884492029290137306294116429420336322008551899010050789930476641819229023857116157305023684618312509216620229063858379335941325201897995353604374099846576010473572436833211267620722359922746024077014539131432986570510684273296927870081902108582575817399280534015169193417736021443592088701142779188083034492224730871228669171566480972030678649049563671377659439851661597174998908538980865688174277497333563392644528579849640488689317233995397893872193856557456009287037366383253879679537106114419360517468915852381978795557371570505667951597469882666685540918368147632854184166506631251418312205029980375660761710637673822573732871950562232756536498718365649227170157506468631927107738410772831714403909332759747659852989101366014686703172906614667994592673171144716912082133672678607740121819533524863881847697365385751406073886568706746596857795877476512865249840909858399156921589871666157625009583671025280039083533081315611479537971168396312670823770457370306209880358637107865814554434062919774317021654820928068871406474214187709129588020040147132336182201043789048325623703024960986593796946654968022653298668758949520474336060402048285425620161271517153470497452907125438530690109856829224065910663386742017773188674203596434785570927322591660353981384398131344438146754447651375590857978024290376516269127897391638037411792104542330145699736786330033578359738509317813045202182028705314196852619265598598181218422945425765421787684816773101266530966679493021058526661256518948198006209440328770882510456039339277118455974858985735583385905411860643601611517503366867096486843774504214522158187476920569928521287427893932578406955022156092020947038421065797524449572987213613546824558860839797257826602349897233383343843871864420606245368885657057913607850389715708101562400983394360565333852670027989546571319018125421720352026897724074400814546313870983463717628439735191611220785195131537275211393230333169281690264327949943317728316545962365094905205720066045618936545349466007508794275226066778620981152971552501366314638037494485440349949398284381067924562929689140771263111556727329523722636546371753582794336068745291715888732462343366239359642761924673484508666662369697432401517114215439159537950002005136654592685198609664296435097128095742327070478916650859305047899457089651215891672729530731834004944760324183456411760856195095691546943216593968142448511170123192043829293501794433691883850160956302126596726513515322956366026492816832813039725690092484076220844169264666031684140808468385935855752056559525606879484881517484359830670735875097130045783031680730042548390197174432777709368794563335444456613710142768825848949809110961976612155165788240359324672502878456069904253299405094411523590061057284254143952283191620972992824237413204860665337280798521523475305888802243029336563749284079205748363678061049969482987636305742354945284506328284841764557481582252819881843293976349029835349946964814528908360137678629344628672263082161962428942194022955835308846868733144440238939085486560136093437696556727899697571980391702332585320186629294985322640508188838599290646882618842266066567949622027789744427697586082411145424623017870816578742010735671042498751716000078127131014210599968195084387056433850222419867162500704507694463228128876833028365507109248045869305904459891170925658731635993792792263994554458933460426949013980494355847189995297581358173661582474117611489423887183415983971905573798838066116636751612684658400978080810080688036640325916964597484136838432175897270763397279143873483418306375312473874511262067305404726878263218830903468825465610440004049253762611294936486207631046745389400372262808066537085574209180296697990082786935083757714049004480836956664639674842913523024116929201296961526895590739846961841305082371086438559578558232645457772047911576069604186591674705926045758762766140615866862748250906540824057896741098184023270565001491419229400318486459507538099595350766884051759696317001223296168722336018791880069599598417895321167382936691390974504667678463191180192992378799479775329817517907931739178374932251785161356163428734329592404595735879106291709384536122640663776773854782042078994236816648317720723704650844269112387503632992475155417927635726909873413292530749475320002584600073627210786998663407648539456962229515818276805061256846728122236233456865300623000564988911853061884583542179434398867352342971843698250139824317132428644049267745890007450924213723922727148537785188431759217857836396682828986056918673327143484030030863600046256167599129695450766796697727126477080240124759438926772399522933571108509207223942354961465624229241502747471321657291983677478375516283000505543151838116835386175398013363937263661538185532027062002038299912184155391073556588846632753878822778299663449273631137946636751655901792578524245183599925858435303192569065719239809482758602633988550898795889216628790613880319983180430736423757846265579580871362337347937334697523852889554022253815674845664996621695421234834002576199600386797556735091576081964785021120038639933687502644273375008664703691359295018309236582918084809682468362375766983064255790792183728515872071280371996513910519307108529512585438100688181726980309816393347165099457301567389689665890802101535293617279213762731181888646155678943955185918560701989015309771957522231870658722416671744911546874953671104915538069236622753475581070638245813585669056900262950622733741737320386420991296530747780343743540378104574500868501419257291731286065502665911906701759996873921472841239358718166024675439362296801471260127317414754199949117060112749528070294166476563873756406672284037329175263085521099021712329556443441222516544473027521706604564804356314014925646231533140353488651529981624011984435108334396022161554598509021881201411507140639459400474221755836929452321987983065932058271552703829277638732968865946635769015048727358008311848776115407413580580154424612900237904860854264993762041681851157593482747769136657331914147258300054018715898567230530377180163483163418431389797076130966944950329029249142729640575269353072736828071814343058387520266175767870493555754525901535750154587331969617470047291722865540844477001429928418255851082473289731327259462289470538315173917220661801607365416233603781028395089297199309492061944783492690285179571004447457026284781698732292097818019361198114088791044610016124208173017977566972836735642248767478146337857095307057418616044697459185444582160256993899311990507360659786482460729177794863625066995044159393384990727818047993410213671273971703687860775770375628410593999819603483183081613790198412944804482492507003424384881949573383424179319860434137762480625747095423241287702451120960201762605697203909289623753762459544243189105104016884261166983130749856323787440328809723921454566517808814736712645521883750983410136707509044588163605745583621374550935301157973466609404817636105673296072628479276537803319379340524605632690645667824277842355179098622124525999553479515545901353845351766537847973763104973728190661006552285722913624414347155388190611097362966882099425383661443355376921439126755955908605866308879504464326561042650258829198364101983294735784447799115070564118683482496039995397138524539034679771518111408614110096354423083616467464862654882810355321658190295166663107881090146292807070726226315116212002841405648453302085135113275045383465945637816515507905884482619830257583874299048175683592564008589166689080614638786730693553113277576718228897060582705154063210887502354929498761080408840334030593268274711278791800540233553158732635449487331164959297379325283585521389544721985912045710439388585030365228945719692835554850734612565430259713822773797113080216122034962067820481367791191781004703811311839968311821261867729749721565130006403229614732528899944223742243935006768913200478104662847994653022951853885123737855844089629581079470527834786346444734867033848973613703471419842265084333423878852028786586819281905980398546637643435462747599302816218539585761801454548140084194605597285370855614054254303882519465912086917473748048405026181602330358447337314206309231059182477994707678026608720130119161048279589685607720960178909626736011012559024556771889651616189031375376046673660336740757550163803118927937598502606824461825650306053043226573657308336287093820269308247030882223452957589125365425859698111107717427393347252815731198971490168745821927778543370172854852386485133707341052510217026976354967011317731490258327657452314485476833327991303907104716050156712349958800351591795546694141162945315162788861729727316290989662299450856097095610898370567005166686537040396128468412078048930903003542506909468555236902037626724946356854414882774211342664044817254036665580016724521640890742305538134949050328277431608399438374073057010055841074000154565206218526197281929947865598355849639633869570064533275704630793022860990409156174676144737527731307677428481869387203070521848184753987293901069380385877060924015297791168376978378507107680488403048631066353703362150498088908607606222604415508169495015839021975628594489207474213270898398982387886313040359487026127854269661516681493495444812288475881537903377452741533320213881452353742368225640702531980447238370243067069352772099589713210091153843387659368179365338783548030367329900716075320357406019558393790712075659058960912838169823887139328058841571879168702752397720827276557878030399776058341269368445322193641652737758644608725091891829774039134516503252828230331833532171256734010822365759833066903982084951597375801396641641651066002581828279491456871615549350193211629216389260281554754051032346437485110027378703936471456282752826822943086207810657208221022515191750560517819626468501657925616970472841901750452841789036330821957688913159705298024505977669428240900821072830989799805786583596785167191530646880653878490915633847262116089747069989842288220453693492251366124268790101743770235459373790631699325617751481232286226279532229144308501294678869191799562666232134794585453286328459635411439173402713105886086896980819113652694738038518241990279023305341882832659482503198929270966779919735041448318673517689650442294811609393300656595234206136848819324027938660784979898937609039686510410536848239905914001039590317806536841726903182949812210497240966293125497041010856456195664739752172596350534839631262171174312336857860690429163711361389102327193127310950125073962381951875011241727855164138445169958083318183614023362605036725297944690077003048167101733256529613500448049952053992815491055569966888990294791805572034511353234814722696785400461844025678337036439794059966760334754944219459845580404625100150818263556527726468582281716612012501563261805719630160527805640911554698350040289189734432904743517174266390682683859807072036148550888662670824247060851287036371152933096659927939603255623394759333351745727521760603670663181776003048290995479540159205918701789384294919588741541851432660535571130826717858642868723990241447356345424205097421614597392018330542051791097599673740065729455097122600420020953457473598421609719788313819209727760689505947406494468570733645714633497961568116316204589161703003108983125027762318967293320537821943209454855700477543758829008978026643344222717885846686130213056847899038694346690668527697414355551767519222762157644873470568787385723212891292474363229437036625254178094377347027998584863398727064440772352212069743848449888613854950735094811845636345935314206324817889085594187467934163019942301914793599508202843509908381732064975247566749093486819847997933534486217874687173193292260618806783751266244892667158631512106212115778341578354119179006765177065467803827251957821780490967239544666950581904031333612487904306479026577995126485068797398491271536299289155627673330441328787764255289145039140125082727282032023662265199714520841794865792856519936534963418410510761444506328527129979753255946731685730501793330333897041226547307163041590106012967902706898054489128641942631165437206593368139527206494346173635523845674631681303359285186302916765286484623374412080623122441781112879176368677308323549749748033081907948354834012605321795959308357352272838457685993456560038050352060144482476195651444274145545057347249437237971683531248910823049173739555739250500022066455846142302497747626311354274495121102732209188517394942373868805566213551717055828840728065985324823000785870471742437700897697598328680866002537595363798206873763120882428849834440359394980337812020747866285146577211400474427082161892443846203876582946876506104827582985774955398017340707418763482936956927415823760678985965760983844548096858377361563860454792972673033018502756609359291365595106751672889264701712991106098222708103452028091091230431929123496848246262981596352819616936427206136663442321530936877925785948425578293311904398343549024776929903656779144742526382690909049119502968256618562608913609440754235871146569820427624446834959215850504383094185662478436894389427065922252343141299095632806427033207350719542074416370038561327414611202633059864164571857411456038765387164749066905027381809875811619567736990495721934939029418175260830211820377628783994987310059379947389512539410630315117144775255954275990356061187747613804358773380233522716616229929487556773504452805323656123614308086245349533625117233631663749009320396197197933375125708583148049343590881688389057848963282214317048322385209723476463848055357968268301889822778846334800597249005906506488963633059969424043496560209252451370250697265841994106780666856213414375905709769176719547473710914247559783105122785328307947171880734113798800562186068180669003839889381700696718477004805704974347916906204020727537078354557477709107125596336894764413007868308033152675114481521266833621424744426993658112789958036375577249667142619118318174657598822080654213994434331913872627101781727854645208991816109714635144436784132687331287363901515102969479701910863401638006377383043555726398818991552697942609546517102758493478322761558406406365341728248796396089296522452173857687403659232224083971215044971281873160981774365538807653585244187020527724082690900098308046085794376581700787653002174883914701101408302775317584613874556824652664568759932193870349018547625829737078625721928553704123754981067884182925004899334357003805728935762756284892263142812114889752573193725727838752880820865067714178223769443746724384647244566213811558279143812217416011451118279350112380066179246036423202312458829556571221260451532539465747123804573789051788104388291855578652576266239253119637495551181235454617451343183488998700007531360729303471260353176627867925300078996839471822434733616485146091659684878311444753972148750821597385545859948366086719716340744917727987913703654428906861383079319416293944932134894177225582081887600487265676978038689689686282085997068832945717491763618266214461777311139283481236272655623590638393284226453170915237320131494861326728235628987437219160193915952556075516336565530298761685493740689302821857632330279416687666559287910941159818173677998495822752409654456254702315933812546760555551628855930523171995703601581975079979897584839239345141772819796445008969867944811336342926076336302052427438996809870310262995210910640019961599569493050578180253504102040656596719446549752519818341043802617269143781914350942337441521750237720332195910701944946293808936640247284006017455838451964532324190348737923497781050735876887937930067673934767787123409693251802451356071308137780365447713789029183350488190829362590119480153173280878672982764632397823203533007564062325255577085779983889195398660865258661830539469277946402230958181817958250343805913414389323018624140463809151588103415752529062715622295696340346207673935159077453240876758459189902288327579922978727524158771451083140214494691372135004248895473759712218739657154801799375409518608197993591385165423324874722758612153601544450759553532674778989144436349077027728982454749233911386756529116711751200549708711371880077225684511175692981136218990538734755434660305731991414280853628396018602713540370657816189737119152007175725131136434165053263588832069322001269803653704785813064536587036169078299802047456800420471546900591557802144558196278719673662384422317845083203691964595621231068180767651139587691773965347534616577673064779907997455875821629508503120652077826087725733443448302897000256126566446272970799640966019786082894962259611094330614959889298149293263066156509636918657534443871726479784350583682473285792212932955332169129632970526579177481235570288404094176611715392955237106747793410319991694321645651451518796752286991177633746223369420988157208781173819123780157855722948728011541452695747015705271866151220573857665514838546461436228534844161539184382403108201872233501178430908485944173331091080944789354192700213384990441142910539030048909149379304726296766231439662541789964015077000353932614067796943105402389841240748814941632302629249038684388553260373039231329340345088975217883088956646525503528543882121825549507452781399899507848275251937448133892140693964451968463744066666862903901193248023372250519564929355966131117918139491624642161820276403965023058986182380656274603000576517689466362133789184035085054196430294161961026823169232463127047451217384798426255275807051866365213430562538056483016710643655825725510844031101793964489338468623224285691100728204595506743821111910513041166901570439754631939544962373506740995819151407691728168128419230504528673019774667488675861208904482093243358279744210077619489749067914867019104115185036791918941620027946529592563638437881900205241208270583752947612873091634749228311243792644713357966255071528612359579206589208248129655437784031091890466201049143834393874905797808085739714565296263894264644130409204362065105299963397823766708507001769355989035001197649351206929920641322513504156203880591207298787417819543556249402405736511517113786060417061428582270065739397292090630636191320400120476177323696212777469871602941354024701122487879363211802474725148633199165849013177360686416497191181077128157646029863273375417442920545246939832394464000315797740544797445262815632363454232670189701453813630651692968326768261233242231184575865025415684392279257994790242621481717237782171450503540492964333025241184495482772319700244806348545090348260270153112698783944030096815532347686509724283428866397072957810955687967607999056114513671742221333166029490034306001477130376883410901824772949706684062824455659492965625588137382527688220863982936983649984161840908997366332244138015010588469731016695364536490445386360474196104973944343063432568398038532538749832554565032649266396212047714554655842792715986447716933941228140605822946722217346292438084044384210641673441859359050128943503413753751772259372314677805538591448430303246297913520092376874655633316109926109216596845351498478319058278930153468803876971208963613164481001121721154332347725173692099921894786104587588804463466516624585129870544035258971060155757726636978116032294356174459726379007714438373354309885773737129102870736424151762094263956693130738009108048602733259646972365237184996002694370241166649199249278094389354734747072300861403418263640134628400544062196214725553274079079992610492215277375687875185083250773425395573418273613954901370573643838127218485007151969939321810584441535187523351698866701513572500679094649444680425243603679282345156927079798023563571473122686794545653600841378877708400457824294616733190991999867911510333723855845283536040587498139123136463089488678276676329097036402714834236279568523251753679477889843246802536119881481533670837503226526744597340200678146136429707151600119529624449885379964135884692529360556717796597721156884495508823942061632129768931342124507087277154428611605693478571800562477698495051318546382867261238621552090786514266898154549249414085916944074539357004588762642832464121514020572272829970201045874724561822030293474694285325619043360930097736149747974513337974832274162642777721120877260080406028687352716687794937286741177493728584785776730202599470665136115655274374892195718453528397745290331662909997468483179917485100598139560998533066483878939944433281422491292461322237759871280178586312452938498974319639195857796495816370723930747083674728312834118535079541792636381067719970589310798151857905936866838819348417022979297541346033344465523094832746974938684370657941533894950577189146645263801904889761016466107127277914780103562816310739701409036253670068344123025215354711691344891161148957116539745455058494107634139980087113094321702551858479608073668447602470924510759100528056771787988057491524302807443788263030817484196515252727256512467401393920823121757532718020135564162967350210540557551009737252058582348007639401972216679184578409510901369656814106938515930626672686616962547366374446767897613468756927772248481242754183078401598714952800265224388860862626599195740279956145745015105352772624854095757607909928644955682497122338491966539389132997965940730756654606290339649418763456310241792290792813061187656746385051254057886127716444094549743050581992199088963706702352653943297786049476842570852009863800020904886922647167332049528778993538346915379761120249950290226007648394116053654474490471879961218981269047457547388726598056466425798579210306612735430306701860680542803157658011066709951021452656784448654348656126977700510996131004715619532481607268820962044597211872127107433394397619459722860696825257036364838129499555667730724021682430912734776907465357947139257304067679076393364792905692268489522319914146013909322350657172427153827427800168973381936346393372002077417360737896494358031836257394587834628283882558274913205802367121674533852659488404427290295816354727412894775459898812203176356800506620034970180100208433825105749802728948949643466973917267703986585755481744879791311386824909367003883938395202809992754239894844118393638707472235214753918619843149305910225595104343367424014358882522153526654290859587523055816806778767982902434597823184055135431162770775227483568350764425613604752461352250993894197219465488160110674563530826205977622249165926137075161804391454560475154380636327443334912953488740115463640065320389298166722222260676915130208955196682130359994558918642098669044376241313253103899482833315416893540506051981311607883007080504017785586895992095598517962994680066613257649391139283572675209747794423362529356398425346341962358167725958333305600905938285518613819970842449346439797313123788989666764136364083757712370255997106379803733629807337194505242260101599985189031131880714645253961895199995755246176905121754664524857620437846699814851889537273804890557363491582011375393063211952870136894809122894090163867741478951337416815630787140043701316528955340211178360047700372046397683608904429011964765208911907914432797056635031061190017485539857436668906848188411765591701153220192890303609600502758117551159218913727638001855723004761553615650698991848220008076697817900843743043491027139405492537262467998324066849027878870627940446170295616855680729329555499032156280158569407214346598047536482251373371043345047610167567662816876211949953475094640976510475425404478736452404413932630293584262920592068533390375402892367834056651996543805547230091679662234240984691148532553245431087970420463076055249358956197814998836200339979166718310659453716662300367759777791133547024265239595935420699095699381876533344175604767066680564819322324534827711212830901262485432237003410944731617229703317309726009991888391210003180544740715931329057210519790487777700416167782806445148982073013698851744463534531958087181911311064493920122898782866664081942362495391807940520379757044436449925974237941161094689458095684518987950385934100835397054575923899625163112714579857173208020713449924121832983622154770899282195931959949885118134895500075207747732006203043528055603286917113645271049238054198771458390463966472396708872600472435698502502409333531182407713878091075510856824498526582850724784330490220928625445109355720745225124571814388131974823038510359158804041778050690539953942106872028348071478174218486738432940872517352390749303172965344327399955291778494953133063290030470706838927545090511281997099528217300236983089021511113300412528841504241754917427867787526439809679406528738968593026964042891920992307897498487498709089372693620303869236522905089254179430677854053532657711810263621631557225030282696643309523810894745447112419062286757178593513766111594604071329925642648011556535244061276042776441903830536859224139293601547117873580571059843382228165038119027827772979393764854649503715431309529421038839099265867696023034828516222455132807627628321800275641340938619243038554406013631607870783537907716299967702560534264293820816315476548736337360119467982746833843261627595259052299001952883246524313089716499081503130214935926113186797195542232621044330072966713888297617980445103868605147312762216679023947608766468412932409624496227082887614059756268639518222766731472488425239662552126873871680871742077405032274305632641618169748339781417259149489312198536877959255250276740378343484870946663472053995116170031000508095402029461893455952762153378367270480982039125494645723234392795842832652667570942632441606584254363174596387741936488455862728624461775363202648287491851079132446494715902902390761215280711691340058629479923140249940679664575162603095985254097070980505504585604156400299403025005948782920858386340208967269356564790054747750589540019542756862914298339710195350420235909258088947063026751783835953741576614144953229639246056587996304353785526129719442794290745583420926428612559155910457004412247435415928863229503969754388704332404718605356351691760036582534125062825304733452200186303389862557077163220966156058371139912207769861611376942167140272907423749841494345236984401481506648332017646384818592243082456745637399365746129770232318060473122637032979614811171733163758903121031027430844110667584480171372324506930264982982033494019589026129433545385391004285887886940493700973075408725129963729061778466879947472723214475243384209954628165096924433336939289392722387584605017040201132241709117156472592224415866163148731154934240906980816439372687496615366614821078123788438171981029676053402641113853033373753716251982885907485469725407195901453632986667144065566880568367110456425344470687003924982668268239440759681234573699967748397979386146907983809239152243012659194499570384691212236172778040352217982342728239923890615133333283242110260902022861447733785546462309942731895725131115830295746584493442475714323304853787157558497752752147264159683186424563497674812074431278148764034609542024091438339976772103327071976808332522118551122255439102490493454483105893338099657194562867833425122268605806084141556213470156050761361838918144873007631815603253940145108464303234491921544834100352041527096728158164848852246846537674000549534999331457229305193971391333719440934993982964217087964457562022202517537865247261153982001689158015379641558898024661892858734796369645314359929211546247570311848386289444834196065488635484390105914895854461528864619187945248132558886675777518903842556902509843880010588331057322866840450396129545399093673378345888279477079175020506564341259146487757299170997305339796477086444138797958702184701388730211859202591980366890091720043370457788044693482577700337990414591867599498939643327143919904313046546816939746500599769397988695250116250444191088282128337421111814835266987241259366183375207043752659108503803742382396566657660706969354768193073877370475546984961842327626404142061994610432720367785685785687667031360508659834263458660821825199009444684538031437100991956799462120152296412098906932311778774203531305941178951198900524389925735625688733170444754618531899213424703651445859267095049281059270771690925037647901372557223562593831724762996519422705029301427539637310871457776885984814073854593585265972401558562092560231261586345329108826546269567554212865453644916522196831486620540843810108324632580124651214680061410186873050706916507099115519912127372247667719531297796416709481658721283849330656831328526923493758034753867746167072583554107589120284993873131564481046201577536847408601098389484545147440569370604463717121591811221701327467349920015616967204737515720746185338253311887315174424635946694223796190536278384583510626617489449908091323971298321675390317411377876186195221059942262518006218325603049466965298276781392726207424764626665085961722633532653970674360721314334026377849182501538795383601787665492873075840626402975389622273141824188813017908780221278321497797405398903948680346439807826465752744378313417226447827364904651214348481485413390290653384263760696836634241798582935242329365559089808455816440665296067617244037565869140291161004660373925444115901147504847365359417883043859865551638565090677021429026258047182239827487833980298085906306372989156165904104697083336583075673985383800012329366566496603759637389024582181830204762567177393683073421276720435207599053778732304204339697942076124928119654184449851566397305303946830111917103521971175350039954302805529819229294874782886226406374902483335964776014490616464500711173095679626633192474348048238269840290322265691758335266788524253996451639896736669266509080459394637280316084396057564612794467627318941593055956987905431319893404153972793978837769496320961233936309291900659081312224340935961812821815094303372305495262870192645809685851685829280556892071530368133909602754357858999050592925015102751679254525673439217486137762098678189916360284784045517176331265321098194055819268867277539006712757402172578789888158746735374860762547710508899008924481764953347667524962245724524139417441722310740515207964194004701443017007875731643945855692663096436417859534674687071303953806470837360316886502048016132792318716838344076057027444695967214408951934868976225353710071215311910390537395827474222828222125881727398930421769847922224368644975891129196713553592548876910509931148980692154794365559334372654795050307686887719692760311035653578466606466063254259420698923579282002511540622781421924839413805991289183358463081269704168667487193086664605206108478488752737690498645146155715830340637611109943648983339187925484241218995221611653097508905152675187605659720409084797164056344369816143919085246971531866642059172425000015216182939148962223168390423750757564861744408997033727255503794884368206752565924799655294074782387464773580872136514033981954270910015423225569956268002937057355929257061640036772226615911893646856604162173953338839272315147455771884219007646117486684662557277647104541085213767645533645927466730058922738557070031889592460789310776239446772056683070064774018110452452423103939564962148410645599790274218496505304542163514265601940086429735792587909772743289929653440298538282940722956570823893195452507967291256273677582733839721592975663742809163775000623786391864010923266562581328035347309933584654441328003083514386869939688617712578047857693481427058938263316922777507816480308103237426875526587471960252950642831435476567271566830847722120736853015677117167551922106313827965175408695563323936462433727553365822104198863064049857950607493112712426681781862133517060526975259236065855153897871115627044314783750475968298946462091841956121369184409903849381661178284841497489427826071714962625076060320805927088372961030842332726119964822266607383423034939635141452219947415114976273309295788111226684415004010222189378802581095324773600086184800462057756284077075675043338970002920899082600746358831050728711917735645104637037560325348468030098765627778392525513424336367136420444093071529044883340030954755373346224311172301056015553563260656620802073856005729408523722277125934225857012946103053861178041949494420227242665591238051267206973361564546436665023408042166636190275691134193018316304096359834465841133532201869998903654312194205583684300451764600249596269934153541520469162880939629115392192192015708274770723976946831287580783813698311824123074847665255480491268939029637678297557131112678277263511839272657223033108274955658436220284582238060385049978984418374412913949059255241328012907341401139383294511868970538719773428623795464579019768106911897820181868839461396063323600028491060271927844329854000723161847523824795546826260151079574351939718056623474191135027391890302846580206876762970627467461741839272972521172060579788872139322425588968034176445974584079855034721947206991311732333476749602195961282740014384413098547611570263040754137537517313121691752188502066553703933687042560597994663756912260863406602964139156420049674690224229510651760470814948582321014531459600183451770117170125597666012357743405116534211624094992469176931128402395475646164853923910331744022176754902059085363284830712334312457416680047761862308138085864225133034409189429160242889229745960044668542069932128344301465807145790709678169853861206548060992528843252927992692877531014572012363619198164701771881534711960872303362855007762797320970325633179151245279989391531004077931427799767906945765128751623647194268019042901578506331847106034752166939851668463203992244489962867078517386041034722706522488096229473674603874859931980403747742332496643920516372919283258228570594976849490363516977826412333613303623518460110646770335928001476831934596428864938042144336548122328514221717300083400349943325412394716785620696544464498272790176917083534780947650922847633075557951672152801470062317580934760943927726955726727952753727702538119061887610566892508305659806336893534426549039087730085271272434059735078192497206517500569050526701031037859685275585010767290736346252868383353984611752888579157056632910908864412639952724949888939954494767256791534730061698667147331650904477269286415297834279481590138481151163265093088045778254147983858010935125408940896327102800583918922996582740288901210822828591860565002087193209129705400579867129524640767897279686866186630668913831709493994783424557824450260947107332596276352596274872468031344678980910681480271860200474697681121821128525963841395279848121164323901214190494577135532211579998574983867868710663590487170775888672271581643443547611604341548176222189102762015670400620410750364989160401181635816396058365372218109077376819503735491820848886191065316836630322913629862832198600219011319766597224095536141738911179585792446279693032942665781666493197632605671608496392078071726312426934347542292857789458529842608823728442439468653792089341608306603233982163650508021004799500332264405296635439909427859855576952764353687903451133222872725990369674313351149586383853294198805408222050107566448814582127316323951141999185311164552800002863048503725472110344534550196276865563997718830619626356015279714666307888341635704797002777549357377196725499895493755133450441958103678051040645603302707096102655384199663164450982151498696777108219995347211015235617888848908551773201739554752787531225784544635553658033942384884021242757669320360811015448498630792504324270698097416827320145773951038983659031050410229891499473719589160525177962105624171590123473242711494833454939301340989461201236954375420933354871037415310978996710970041069468006882107382551924202055925483774425076434729847944759186635920607134741231218720137050411646656890342422727962674424605972663917313269142389495024772840954224451827188414209363014881625448448976888264725954485678011794220997809331127959542590403493635820405778103834541342147013417794283751546790528785414778388650974065797554791316769671496480596801630730447869979094178768513223284622763249250455903534624780457051838980233432573035162334102397457719041183009368006060855112251769988195383583327484306874436166781416693726388707456694138140270400285745799071981818193533461653029684392376400142937452498429744712814595883927442253119759693284064198977202656481382482056168254744134575361664901353913907433586991973713217009356870503361356299990227433573827340585182191121323732439810599964973975953212640408434854676446387041767268800709325759686597367442706000815237229599883739081510657448706806073647274642974487556241517425538447433936112971751806043166466040684478929656309418171013378383566633903372833667381086306491680013256097124900553450997521950384537538407213649445729940215664723102180303555329438742345404039453986499108036704702961167146867132919458162533665120492552932666849722169291234316126631971666455333537978864820949158890400813143862684556697596866167773309084757583440052735011688121733224958642050440292544127553419662883126998773470047999825881660581412803158953644473669268143840116460870671896643656760247403206199506329012780595926155851146926354705007880785484851809351619965031171357997385783941984681613606318618254945155961861825947291273800420381029954797763755856085243806933037744613290089628300383466078617684497503926306877794032517520079649874953368506893031595420731311789337188809217787303674392759059001840508303500340249620745401797228418803303830251420678047168543083234202155880568862982387115604484011240695684345952148211129806732008884674376748270240009756339687773202476735171251288739106028795044261682797615101441521506079918877363976198564229769345593088530986335327506412290106934078957853266371709354245175483880487170334906450717426553237548804768145035661469365223568117357136278226613197244461647982450748246338888579209357581441319187189015727925164504882507149229818432992604216584438668327138624223484781416713130853468230112572361158958239616881713693429295342239109060183063274624369765726966263677857825575169708712786591040485792911931535537677164285766591533724217842607446091057442806000027665191340734794270749396014788095687055087973663349063329053262630226784903923387634231361894597680164020793753583831532108710640976786044113919144060286830385196033162157916746801863968607254072561169953606317728801431573561920158061384113055344359054655984783792785937205842135234602124721838127589987977479953316003081174520327787476673729214592021072717829500781132594391444972204700473914218822997776616576900077358293570075515679244456253658118824291116500266485038598962642324027822288289142679831949445665760436426351153094029779768549384815020434905660946215500491178851274151846095420098709137039405912546578100009239355331081781668122378844100080172790879152175482820071868874037849217240304153790160293135583553400597114336454421530868491143013986201142990369891876877179869771691809679667067582030078148420653684887083950832639502763245519894826411867716635287343782235619176783327719029822912283479022250680982593884203485027405515503016569128765756147687725629911047474102736759811654727949256835434245820598584545626879256824376811479559144589058769146621423112958015038060869846520907192565467111135632370222047697780848887850637374202283704022686359920613617691375262240680810155383421405476156366186538316058661612680023599607046492667820179806548602985796167770223625218443997710293327372621116382685225590162700714631792735368727328680731660408908561385047097919228671225627193943033416728567547829650545171944599763863839251927834911803649322140486620179517213639114335525996778712538268583274523658246499210962752163456202461110002642715373119137580835220146402826234955372265588822946751125223016561480788818016175252840925882316608544071632984714021553938043021933158034647836789624749459521223208709139687114629585185649832275557230158791231233458772229734972443338065115176839943228642245389967446325190586525906363946978014734645186647456613578624140189391691350824586240757063355045198875685891930032506144011638039000982697787258076573961056217281190862332312012365778086309011705034938972610656442231545298164698651721416635343269400248826439852243983314227909624985483159017172662092931552125883950733906693196909863357069168182758631015709624659252927015839955192173622211952716070911322577404147440329517699346535865313017666805303187517991162700658486425462606294237396270609334927522851605382845846852043462589735218752998481911308053545107048144819059529158368266335722205240644917843165301220220513216339634636171156219698943160283066323581784217213847689279075526513510282237969439620380377016740464116788951713236607682828667857669350016277317440252798789992877846595988180939509077660094704283644914556411656366697802482871596050775680729383195756643133391588476575097531323699647124137831825366330169843037196639970381509029327717255778942813890032962403422063215071394296093647108415365385091217651534655329364964849622668502725728766869021278284013344841429935614584379613510924660188163650947376929478640450946733532942149340666662238845740801745153930246339038664157952147037147140285215075430145284150875480625419169471004079272217130882593267427629245722233256720123396622621831714807386965711100629151588322109373010705542872068555405553173018965271752006648564438471539922287177554771227175753375440931496301069409165496303346540514562293408532363098448828455005015041977560610810030950115636780400826259745967932716225276498104714026713306289364029761117290555986203313669389059044761500839310156504350968231401773191738107584163682210059855822870837970538785417407541838791338490571374458660817128087995779038600252449107085174083043152615886479692660395305971658200730965084452609111479187270892030952050874299447046309199503303773667855107260208394779319578061553149086605899863962170698267719958213332329871284963944670331251874622861940108012056735055029635819602802781426373322558490861603054157160525209958951037162417288501117424138193630491667162573698641311030905855249888201747632107701716935538314254338582015700756142957014183101059753564270832141082060385832771625257847953516145429356058385480169814364792763818038360153526802542920979444806254873679033721632887195726042749369117056105614351585239845407444202752153838438166888706533205023591166534720040885419198559787463430550115540334876179967019603248327571853476076161948032109376669237549756492084366689932442465688735380268938368731602736375368127763912058107615627966714177500934809274900229092690388099393351271784887714017147244743297337014444804059167976669616952045826334336850549232083085595598146753018577905585368575506150476206024674162474174707161402465935897626462320859625070079984881565696314007676284909616000301713143940256205494441356429074930670864053638604409313321324592379337541597060463732995124553977093735164559397283789135698251160717594257041129857240624835729038696549485629117918779141669609789606343391615871406491499332464737345215606194239112688731376665023868172810821073526355946587946783938131901679547590934359278905205366084018956862106004029923976308588915920566934160480765413600976338940822627269026596229641827160693401289058157260718440773484358646979021236667830604618245693712425816724745606801168910427115603565928311244706611029266608209760316632958500581101038776280921577140261253985525240563744095144629806243230984202625759409456654890366962681150897983958987362766498269396447828339156885883710862605600728037689386921094790940449061389357910174624714572570833120475824139176818303384286084012594926105977567229103421864769418304471402896989886657130194859534631787394826649240140328903665529449408676384172908007893741571376094155948992099722285703400218322317279518297476877460145132810004083095483123247733109974079602068332723653365974718314347796151362299865872362178574423245970562679820893926426916605813305437427892505069740689014049904882253699309260857684488465637503470232036174203720835583520397768130107415671964059752012464835823374575661841223483896387762109863700474001166285615546987068864085608553627908240709643298350009328598278199403928605809395675399568913580955306114406668451429623251362546163730795354988814505086674432162114922126729822796454178970755595859477252343052989998350306062900900036821478965235337073763909682836861740447923740656330199648052465686042515175722261136797949695011625895966912808612715648849275505552128780803335138298948366268131492283326097508572581790289706749954946427611142110065871562315262064365164034866025189463501955070268618897475705643695533580284021463222476183974540067752216111527747180069782988715637595909487693187402905078299024259512119116760465228387949501258356170399037154826751147799186459610785158999719415014133829014347940864127397738795839592827281964993953511928743384100433415613081531627460634045896975126364928787753845459311187295530558225718682243608292858795325855183347076401344755188662769386697336572489555145067207644992197223373891743371699103278519538110605351254189294631503791192405432488446457168925686055238702211502976585293593069362110615173059985682005183511654915164728416867357469256497528469158305074189193123813857492583179369296477442284697455344781474403381492166809059820563776313924450415517157239638170964150536593584132213587853462090607700693055884887862896388594724120711217753745829455239011347570329461995658330634262032439837494977844913389461511063595023626348682599797839745752271827425250543288976193520893725964433401142428765157749607695355069759127552475591085832795681153618384722243358917108289658829887733874799306159085492644103517424877967433221376394378158125581924044842959746798973643949060642662366115876132612144486450908120653260629823274792165705991623091825327864514129183429810131157172804327341000660254450797948605457011520432783194451646520631730848798413645707655898243658371574676702155839266576938237626119465383954984251303020057514680644245328692735298757576050421601696631722403829763710600059467265481582791022460396959259229553833406318783273163793761081172879665245630159869657765373410547004627161260945827340515444285338950893839127064773144545724906923064614535516326636686704218490688900262718443109632609152562767340695121826152497965394209199393166541780996981601687229064604529813118765210522337159963838709212664040783339556853900855315084135490428110038451757588588690254580569627473394322627755304208369098823142941740504348856338883706333380349011247005851948868661293435853461553271839465896395585274161884250805589139761579029588012872957160967709159835871638143180334046393645269271167444260666704017894764834806814101871158182228608416839337583547144960812905691192244478768991442581025289126687025588308618346858444442668132781659220050209889482178260530640689765930389304570778133015157814559364240679405556831633038507121699075845774745893300663948970745205745275160610568514211282234577845963115574173689763129121917962085884523068428534467235270600736599030845454534235235015085981896849400381590872393082569687751796386780120345319224873395880626281198683598297786018205257220461540139304034163452803158906445761102493833817989692683271552110745499105251463848455899653814053209291135695792719790388285051169506433832529675755360718628048896455836929311079769248431866848875527796419030784055234236309118057084656489599189054316770013408020440692974864015088946499336161929013031714330606862654075003012129692435954016057654711231451250283139685694124123190574374694331066043091789265279353009891532877512645661877689553503212679660449551648762320377798659584092210877180815288663905348235193835983571142700780275165883616055600129746986619531481898670004171397244919862594802039990304118886976002951048965245142305068346658063505442460979674483096879743385894453591724573762084390717234085043639802676527642410655396542382684834515238080239207788885336041103260902219431785621990487059274453132842098584539924742267700271369387422902649549546898521590734398228890408025956408378490031138988756874097626135406030824839964133664132508954521043718738329514968469817682630717955065211853974287172526606263708890329101022924531162177286010207333625501031339793060913431329908078609439804769848163801101614753213705021399043349152419995087765777090675390826535073446123538306020008632808038330892222727768494401321883321076480043396623176094565876154273739320552622708738266517020580544334955011116915033742012158834615068336115922027633590466767842520850386702373840063819367669601023944366323921481262973475335476641198673275440745234971349486464951773318095663478433650659766508974381413637701313361173184891078578706133665635500112603392496093071046259508236339109165928480988747088441435041779825816199813823784833418211861864350735838152528644383402155222550420943637133585831227861890959518749966781903716248759668697210968466279890416598851962165301409096318672805515149091770684629691044828424325913834350755586039339636802338135950176750274773873427173511101312479529168864790024413342041432769082434307280995829332673370410799643380975883832656229646509652502812386505920215345309747074275000583423191367878339130488832124079701530349187358598150841489108154974102820566457886150963519642863216485824911752751051162501320101984586186085253577839736749695252826511895031197837950335854885712337990145945440624734527073339662487500146355982171055123714707298373640265175015358295665137376068975125350210166453332604277398127150367387850231021410778152314194699780225209691533449596747744424192306612374787082493042767755569659463932094664618969893298474961393593961150432109328333751251874057892285295865042551655529373068818341148580821914878846975370060713465671160160767938121967085472698277016075546762917798654527221595667849069563637817885653193732808072773388461040241571037207501221545102771415290564908378380656106075818948842924951911197188049468758515178362961463105046998504841283758210374220586085834259619656241967969558934295359873524674862099397418212415828724072025051491240032786474927449058898625670796884081990537556793489731973401759266511025228726723132637801286496209921914121515343648977092300043579164189129906713011619891456375346617772384014928467454676873280103075939987993921890252862242348088055447144025492026718035432945287705938537828568928050424527886493033538860033438200550773042790175482268696811502062750180192409930712219980419801424952097943266347183746426893871466691342822644150577753417278335695909422253897117368022219095462179180338102987253215253103800357814420643707595936642239178108540506211609892844384049768173644193161334194861184923586299355808236620449857766849496381533741313509815330992097268821553920132248228655984093883520356545383562666025559100734796599144096208835345413237795628598104948029053647404729444197800382487143629473818972522755240743307145516611003915502306687189586052273996452086377663879927742468377141027035094723235512149230835856256715007428036558359617461296635348979363022307892509092539417064280161616853095866788522914120880608851935323625435814844289463249358005827008088616031797740511833663543173862203171656785726633659378627419735585851437894242133373648640747385664267865483221607070160266070168757933304766316246561547408503631250075904795075687229632279344023055416038799989780005184694026317355662205583739868205676109457098749493668400555624090955789927713811022294737979167167853504900754978576873266582986608235524525376857798585463465471527153513933791679488232373447722578396517057021574107631462697427162535110224041151779690901744697019017562543137057225494029784161386454062782419142855564043881596524161961089278075064650087512795138155694676997464704708001295931364804123161443853542717721376052260052597392256207120233441527205285003400936320920518497920580896526063790742408891789645646926573111090647289278910829230861064726269497375558296013561808118546345994422083259593458010759520947416057135867579805840058549695188750830499683997547444221448621338892427806738482294544235704402627608806900134939924268268240001269038655658018994454154555742563908451966195013279092542736907956776727477340034076719185663293184103028684131891195592294107339215569153162167527707017707799464703115658424761691621014480614690338084470334297909136655079337786426251531514515389021709985176915600407023260539857376146348988314440613083550984042294173413789643845547046725018094108729064265790729242934185616084477584697009234069392149224713826893162719611440009932306377967515239128389175131322965237753820936384716488420518093228103941365977800959303156397119111958689229634264253301636996601951275889138154949988252028839825432421357909113130615863375197887602421878360450698247077912447490856323022613746155629560282975968371989228124091333844790244009273361953985165927598090852698262002621775291510150238884858373392656499059050024756215534003582146387913514443965982479154434215307704917996162507965922255329102417155417574129401568595746732102668515219503952696109553303097072992847977444376025125845054784545197314899965446815058977958578581638129815125900088289471426805277128576005388853778315279815514477779608400884976531365917903451168264808496965182042815532258809092627270343208094672569300646273821439148572015358026645981008581537898553017269089747087167752210464844827545519072424951594056569596956336114088409089168787182347712434645935172302268112002563897234612264134158401676421705665115341816247485050003142929497365099093743037329120129611299262431054360362235776201170977041275365227915285270639430655536971969009830760583557862317490629942157969589948097090140285458345147805738325483342809921540711914201721605461966017099063021316676395784161487844213779252071280040711257635313359555333327953459504754006198128873014648316355585138553619944490287949067300364714286748092489309405640539022737947903796854092611333053533671814123305625148120801819216634847416521657548033543825668900811645263319903279855366458915376855817638927293699174363082730829831200087047746305872437798519220586129445031230805957367123891887855871818896925064874227108763216509912473336856115528012499772503030030999108852503800635955103676943440220638237532213017118987170908357430001113854993672891414079340760755340764419923607919913603219572405595849601388514989878492286415648237830746399819967110136948859520494700661874479790035301749876361883214812622375952079224892664491399758413401633276660762758139480700179062314229851800914531569263125160478052392954658712869084354307783970175938418864447605797647787763012221889609974034932931911567965526314465285663706285052289271754275513483264949210859379449136945083242042485672350322999440760841844378631155174674345678264161050544300501418789583535008547661200299842974077520912250103014750642207969609719935374648362329108881016042154962586666471168657618555040893714888616095988169883553782604507652242842366466358947394329341718518356915969914314361714598515626291080677385893248153409011392417587169500599544555267706948583217532535557492519695095963082134188954156897473513012886238864344414017783592679263922116082622731204912434465031903877292597803078750334529489469266192909709952727267532649034957172603171104641406748128780423189841686798780738995115446526052538958203644539438058113754751742519281465871517744205552132215897551923039773275465272488633414059449860449955887771109068714972535896281577749930923145306224966306311997169212307899438207871042193523161720022540652143166713846961923151871601634958232954742635246584884380655421741801303038879868827315536377681039409926336382528549288623835916012861744601340787593546478583182830920719349655028197254334412275468121602706319516398622204061641720581221631648389764168005334787151691601413163717141338801342423882150254774648790420358191301588759040771983793723892232578088329220559584901071453786847254860535169536031112475090894392296989644176994793004559131619276002458280671545065073086372852224647054156908048406386219906867301572443399562934371279331360715666172920238993739450604668163957449626587424442316861459209833373393053713505636264303648691594000383322401025034568580081566638202398128461541565202718944247766026922761457785425481319460665204461419057411948220731889682310007920190312467009444481351845593529810901582501970005969829230571667241511241281851633123161959311959375396638776690424067695690883758123790259438935527093143176862979251042155823761783061568822431139851104184302333157161404172252054909722019486703462138801773250771759299802713592587561863095139912597884328724933924852545339630809292108294209998693462188382339360335470836611005725945013271887330725035581028847074100859672135873323674636124764636385277319424847506673732069390161679140420906848839735076541437279725757610300065087194937720894987233462767808116801757483013243913760290031816950501719534873561893267058401555672512073390894724704778869597098651695885384800520216017247691552241059198286862192120818785410949036745816359537667336931184538447072424323029111735363230682855663421114770668458999435616932920979070660537067782150794769437298788648268194502735473632565454427410361399449741602878906606208755706487190461133830246049262733532214459663150572276334945537226289854119096253633525858120888754257462622757871355909033132323042964074996517832945922388735983802136848501954608324717539356852621850021905379604044609511910098524785966673478773497923031842379107390597215641259224128302001992081315499420169367739749963198550508118396384181476307661783861058168596338361587881159636053041474094421737749978729771117396759872220168398145341108311533452825914933458431190830430106407654845566803518560441052672832904766279565423453754059475855804103190983780920369573748272021434759292448118970623188939510627306147092358357049708663557056266533404695873830366377743581864455546950402498528469002770850420524060123473456753255654600210351288726019839688571870470776999348775742179102336273818872898718262357442497077508923943342186919475703584549932790510245238058696530318335955175898326065485938006662238669099159458074712569737056490845868588695053698616551242206923385770069458854340056491135252354534150887926353937599672237527935530342717838054189198360046931476704901564378382690440192014548999753128714862985460751224559653256918040346350755500728388034410873942130234538151481410763761916768432989534271159090184341186275943778157147673617143575202332541070233284978122985271226323098957667869950943840126326689423372683754093869232153695145011261452485250249404087242687207290892262832010476594458124038810227500905211612406612161944537428125261829953400563437127296829410611613827085219235495653477945000492850661463129684510623361119411889216363254151443954039397768733989845016921925188861978060240867551984617544149422351270518649858596414856275336617591505606117258995613255096900835550045490741256749512019052873558325161584965383563598710516138583960143956215912919275409511449724925864970784379403789146246417059662912683996287457031733468729119243218059797959599987451850526838557519504108807103093515220613413355691866501103555503681504128548166251855927819380092568681271253888522162535948780411011658322901633155494099918277302596636593979178867209728360674843655223014105534748114847549343617301496624091941242165143692466060552817200289375479014209653803266220207010933248423028861676327018255106687940681132449824214059047642426742609055220336903077512348831844359544850429031980499849829040759786650735189902054420469770192578766231112092932995994557690363598469618772563226710891777606196333260106641332173987385783523264921870026173188813606743180583859419346297179412876544095401012676189220447805851789797956616601448223634817887233540803435560158961108010192192508690389683974086263506385736126502193976701683345082140501718131971644306878549410721504370208809521591723471053737243784760260993461315814133280131664046811971122070438733082483618280739037276096670584026843715911684161907716341794094495286981360282196822683645913272572945129939383385214216077051546580393912161795668774888776211946146566566790288692258168789268122786011789365030115451041042346991686008546712969647472158014145724951826195449644274858032151149103818145276030987675072443069122155921549661110018609228965302358587241639151545542391893532972032057775011103285362058093253460023902278477565163563881168530915126669386182294851878935836524692172423136063092082054485493817828635670024524634638402146412882941432753695566865215805287930444652289738135271662359067109571734107749624332643468248411805896696034025427155327963610459651789892411082345395078378842497415356460963245788754662057917589098056906413045660452037757737687149066605662179020765976062214160790937613521757088479050564412942923628654541887507993583214220459355084483045855539294122290746657613911799843124308674901378100066054755925032043367796768575245397765434651103415714121013063416142202276660471442007936724398573617684204584010024379586777285733153606550775176478496779667083664272430640531959099429548277828037786654660426557991041688680598497496541344674428684520031052536493651290570463344450819957437409566467489361346626234508280974134641171809132007078974819645545418092866396175300802202581785768138273298522880961420114968199136312430613552323922732060652652540911826447010335899501257757687023040619517747069912127752629865837432500428549801085260380628322607864799062894879933303908923759473538940108436329371873909859335253107054642527884478205405097356250704944036006662946761386307287023530281997785700215616077768764362142179618595864040070543419499855032461714680698991478925865060563495422099047804251701573005988499600108557789213763013795206519110500005738524730668316167915121828799090756222192998726230403543324649622720571441939089499815391745728103515382452246090569483146832312522333046392847230102383982056788880867821958599991671933384616748241367617832138187259738321472507591184866256032208116727246709960244983001131866603110535246103471800040664100390233498073553275447185903024092436933367117435159257485883175367460035176990530004201259452227558759470919429597531926717163446373874653030375501745091296014385752462338456087645910642308291889792243424048512775169989069923262082839829658773148185096865773725304412827678611511453181409320116316256870872576909508328607896055967233770302931956765526459441140084427955250935252602926449874402501702810003088097143639801270637916756162364590105720049349179977267861333342515087773637308873226016573883679266304138437534096305033159990526053379552619404226573874338201634334506852260320139357171561907090905354951457731166644917327532243038061506216528509883051680685875212563387632267617982438345088410067124275034302688256992538328858784144331775165880973746921843822859691427828937575790929796862103216913461015444455968177501536656620219925407436234350502343130131453799290040781708292801325545435336828815699970050342113748719329824573672967288630338196994780729392383301096715439502385754547297808861521744921830704043276998897424285604167686931771994710214523259229517380379141908006577279164594486070270382798376559977049876720184044032619481566585618066642499301191454993239976671992607085291012034773693421447075322742382038705225167898181538238782782910133281143144722066858842747748198194649105651462481707183565997407899278973719719290117334500892458224466420207759671545326217701723410042037629442443283318013361865246643619955014391995910765301577527861689469004500498916712332473129228219512285783403633143572883502321325679827934718439145247424971886619299439680744103392478657795190560400271248461743757898038734908409818226923622541367399480706360499993061601767912133338757018656609481416650259331988130616811124353285350799055926235016568014146796543365946908039422645492661341724455020074845977624074335677916935735323397767709947077133994383010824251524620222734911722234799484960058292089228675073779717735559257607639513993097080937053652491559613310555104483341307757076544882571980745378448373107139159154790134075624188661342202801223368815983785538564413690267097559682030283189834991745169642665995141977453139937526346008493689117328045750528714270763060811205360874249090221386239119053361972893875762710848251769125433287863878929569434698740149822842138255234375914022800889005831058452327241462300657425229233518332711802455594372383742809632102528860000477096171700918187812268434922459117616141401634582455759059247408094489836041638640799372065201361397876076921388243917725678668798582808068110287661169796960262834568719650674566907742864144619959210801122197666875010402952949317057236043612516095458113749614466391434140544249485856659210734592146587944534251573838072174953864341734082506362904499951568378837232788208296645132168948282566910644092541596700468983107046939497541841320287969787882483335575342339294650218443749309836869747218658629176277956085682028510925856473707176647764062082639194587961360415463925293877137615920879198473890135649065253050196371874935488145208632574497757085417253837163372123070686156616009940393128686733324347798961671273554921849854993016440054434083846904562917857186966159960686248853121081492092775073337140828701232356362625281220664172764993073611360680584750786200498941464246327639809898147109896122219446138623422387349918095316206298397125455912017950618712264515795518442337765453012698192196974312373909005626141239982366245475504878351511416391727991082359547002576693958816767106944697302270148568830982607671760156027791464790699469248605168477774312387179931140919490162490853321727133824474990633176283425778842096228000334330816738938684430665378219950233067502611921170431408578343628060500207685974538306407644867714763371693514086212281459457219540093661389092383822477470797688506245142955925662179044448057064000461640751266550227846175630090155051177628185173550106996940552271540904390351400836950145590460880224905926507391417987861439792603604981671907541797238953022600529478986294976782057046645304767780811842111762408176941406124514227971997239990760960092003755729192420451404973300328157224209072085151987061120573530926004826076330713932385652083720914719084649404489533885442774575272640476818076368425414279176983517189946117801338753533249096578063719838127112810302455706125828335063412602098768578807025951426158068585350973875161800950869785392503318830455014165895326493537302864668156315476405160171220322408752205145660980510580320669021605923258885404793302338702197100334506794887024967783157986259998039519507834201720415718537743299486345808518501730197939322681881644841609726873405441726881213131972880281039678472528159802349198176506770946900909627203940708190857223263042882524690859658722100017552873440476034907121480872470473008146421188914160187659257941216674000572815378194656041746804014886103004586779003048996006261651003103543352771069780965800142325894505300619482673933162306682931161235706918997487014361903235572686460075149808439011430873495058757942395767959940399441713847123563298960906338046178209704145760473695750876276936928436742120612176292257058135105156758274033390494596838009569721350371209590769339814035066608700178443429621612755142269416239135563452203479244482343948781263269091745202084708480485652023237259659331348067962907058411050808316164284999723771154382149114656024916541875626472338232200728144135754172188922018312518513796876929428746775431934945543477665263830188755901111821881691252708836670085724674789410123701464129731842789989959449807759236881319428740706954089280797995593019887684142109946472293081735517783213423841900175151342104859737403834746174371425111064534720827342036120371155912757146759422233964061940575685498691744036944636909762681038405665075968892596731171131898797621893991182513788429751257066438011202292640920186152027348325978362214159248878260042183744377216771592032077530566163917482398080326506783566361433462804958731313511329708343210468466059668337393796702650239679091675035517289472255867887963153692572534833119921168762112363086218621868485894620754854817705596553815931080705076067485035707333667152168816389639111784949509999266610816435223413256477385585760970690473235952837473960742029461013263831784000819128697871790341613364006744927506654178346762712010233977993901476392136356960845776111800920994501994863789827021373443327755139945398537236857724424927655292185883603124052926929822965934619695062860542593499256436130443848879382285181083732988406032710074849952184178132040539310686157233347659052603551257868481626633667690770273051128522623611928207383247381056034806286949495279247957915210473824646126634035586133526735163911164453753326061928848830669847004160757597870583661470088251415470082055806178816901764359140162073176198520435906670278095496580839837228334803334577725241741943467112271112347243083599494336215066375671723607163284115432558550525917944959342011422520126582999595240675274820470273227876825638749954945729987882681155550211643205799210918809942842386734051223760422902362331816883271743432976556043092205549006643737407555304772726575508855262399199739354341859811266420512601466365051796023208836962580117935011777959652416867548318547010144151808915167410095488688780631849780614785686005158979552086285593729769929731049359406143953591664107575704191258471572820461313458579672071370416975961892712314652039831662703259386304838718427326731081263799815678805669862583646708721819141280835489323707697663521448870073155883200014728873024855650569920515364478192318112895905414653624934955680118677221931953493401245562294285072997906846877628228652975388610024396434820220802255620333521204681595497729687464998743639192402802461123308134804479510174565498264443215044718301901557105252256847771034415269211662489017606431652493908441971301269758826920880239157190362528385284259784944526775112174979513293136063172512905408418151054952418574228260092307868884832015348331692906870062754068469427452425487832589190258842674423506392119210171827442965741350743832130479429427891809255573228562673500907214424243181942219339235767987143673972809995097209975265147376568207708580367360435066698424936965010128176518945007403249910154441034094417890333123237254222050163306978760991661477198790968025370577955305934578722297734892787136604496182415523928904983947171643297194265960821655364439650107045934586653481103702903219924827741186723359289409581599247842358729259887412546025665508339768925200832713145318467587237363159413152634409563176462850348914799447707110920571057853866081942248892911543443870356722262010900367564262016560163967701752440026653846558229585872203499691246483237656680817242744211115856604928034364590509836359895592935263372181112111345912050870764503700139613102844658923505293819134499300967437079976406564000009510012760234564545851564421860393803838820897905042567566730140100747155865055977533553842178773185393797765807640367197005759969015317118364852286730230102098816073185150682152726261514685470061777102325768225185748044971162476297737713645402820230232311412811129207495545985609184718218409657401889761437530337062916024532313673717067486566898156696006240899952973133367112792079397200582633012284299916325837968856009993631393856302157739633362951046560023789478220952228464429216366516641365248976404851746440977952166235966675162906896028586500010447666112671248738901156787401923352200759666734137816942583538031393894786528495958834896206817499217709027011803918809708559187542774398777225277827117340442628611018405981121624850650505631609859722615031794750136105549627477256013584580058960784870571139111221805339373671579115176132282586806151518059312938542699639053253928605279245275123497349232044587992443109685658485750769300789625722622932634264051567913075417257950943489091708710579003754359126357729425778214677301398480435947580727713776297387448871336329316270507025789769657241591279805650590845596896635409808136005016274236133142542098584646958282393642788791629218624516108221177568211149245859856522716899733412443315546768690828668088989141537925284722860424971172839686865116457707991878041461260675847905600852056842171609899376261507628842090208952763670428100094823667301898147780210864256812399247775672775820186156390498592016791655576899947671069861927784253444584974831629963793401241462963847516641773175214170277254402886346049222300415278369123571519231055906738545569896254899738879616225652387202146480814516736881832243798997803412395776998624303510636645154200486782968542589323686067700527646954612246539808840924014638849148766470694502672053953343261646212091299863334914005686358960971865594147555787055991185035886902473888278747107923183790019730562988804652110646808102656130318792636348818086508820923079194786093099274002842418148244843726265410999498382572297424439033872875066535641992487428362503733300801455510034520798912205021924029904005234146986972610514830991265454172573617691021797684898942698208458374157733727118274707841625980870120940597800916733322283721692315960526092761799664684517347453866000948648119313829272981165580783476975091846663059498243764761652861671943527887115536157668382952474046980614847812293663557183763192037810991726344373801533550597624849363737751446297574345412609003768386390305989318210225700772289611171910607071050175594101352580195016314888372948096094637858160662458080269418492019306436837243839791485204844911289697842755684171015119328492214071270869624925258390294973787636416072265140446930548514239173032452336624560975166626019581084792622694639697485383527760759854863219333151749509867213572962932905692578662071678149834251378736284797157648940857524724845525598007310414245382864795883439752830733190477091583668676596799222407118341860580066385151238080281210686022022247046123759692708160904148098666111961655307774225508923023662452169862026628662324598106841334121558539646231068137631594154701522551492779223787702948565069194603427826307794128595144702770796671088030151370086916356430174638481277425937892018721143720720004814783264703321557983318029994634696567483739297562316566466565125710914539181994639787781702152670842531438024429406198011205291647009966763200301245629183988514906422737045817430975672290584553009268563172693415250428487151650499616921977069712297474548531801636465653200383713673777684122791172872473799352558515058261044858619957860869529378552182006444118578368603593304965651183886872205047438149701793911435047418328788565456716417542787558562717400289086314984410054235603514577055901808588185521559321368769638618107462916770584956475445009098183326632061071828657820390854823360647841721826173970764609384997423708227656418146369524517658819835873010807391596233970818192492199651191796944151430172823578973369073477316064272195189501203528079510257278634370757701261162202830387154874262806493943116367960195791262417388146893862678062593595130637258230431086744363286520149343312824255177863795223993942438095907499275284762587323561867039052639285973482588772761367534175041167240638790540362875358652079561073924905756909365083392934022252842710088446867051656663901037125012516689875127582964478783239898648876549139367407601199610574843971243029876244139926306732859511568557114325173345787794865814150766500558188749971905843072100954199498183330147945841050943565516522634653338798754013357626695949026781067328332282665976896479080936448839038103076458877714858414081272791951154904918911334639355680373817595272380604568649514372472726514356366441808547924894440172158286734887200968751586057791382910628690112329322425967136713051047591550820923997610463759149968724336629200688931369968520826379941589493473634241908470715377600189281703448681012540754461620230276855259464567795534366517765279506030994140867905693202217272938870682223590319455389703682892338094990810422034793543798953894811895188453046220155759498751501048680385777294776280720760586268063299081953316062906933576183470312965486068245929718177139346655663067748043389793965112619609889970080545617941801451502296637685548633729262656013226290867736302717155298889749588375160197487533159063073003207464255179168098527210121398888922558832280030593325823272419019697093979943487006663599499787505629688184206452312523863971378619916568215310088583182336980996353173351669916596454804842117458043563752523029913325639983314101676648121521672477892476395116481088997585491872193391986980464056968117863991222130563546197601964886536561746444106934149408195716621024310127811577638636272171128758936711915520607184577757290463759246750135740578611089241809196131359417341054641505571056178376176586669136142008286770192649749553358527705825223337641872169173920726222264511203561084696988609929379972633728207612236308740514362739700961141130659446635353044051366988004965746470047850889926596704892774586632678777949037028709595732605695254012418388453826859838142254483450634600329480452680412138542507718439231674780375940668204421868357848048723494430541113678324753223534217266082993773454507905812273700065454283444783250428130578584995243945119739915364286749167084134126130973004459639921164335260600819092771018948956449870296901557825355306301004037211621518234282534897944395514419666806355471104771825849302908877182853124266909379784926575262395751616528189915109549131070850501916577622693893315836754619138161964879037380532491049223195554400492653870812366306509348847323147828013083254214351318244497370557638760509827509530992706163895716859414362184502736282904930618476442712195081853804492767540924089220268190823208861630448118082892206339439640050529826374976801732253729781614260165084902966881924868980937239827818044597087872854840171752036704942785569340760001528452132538261410606259117272665680577332754565238506310543457613248366885030541792079925265474426259051004950151505778017198683442505477197783215348668317699364737062038356385860625495967474281879391723442511782588481231457175215081479011440814947382963437540692411602846798322852945109779631870102703793871438008135026739175505341512628307761356649037684222889757215227398904672696803618089188995839814953844517879407173101125479559264332144572705830203192058722532183877583706914036110186770982451454613319889461008966091151691336392814030346589568154688689888749972548215143221631063429093782883004835775645271029867095909080721654334716496247445714114569291397320140641312902885276637457621644450686643469363086717497514109567622763491246744383322090609455611161495198839697802928005666157799360757006154532726145859740551658074138488180370542847849490591709320067624490858530903015845172877640192816140076528877663373783962022770510750462167465726651633097493791219999749355956776235131762350797141514085638985462954439988971986512351386117302382993908505203261022266901846614098204898559357989636903412465834523344732773044890918185949336786757176451057390867970998850747150156834667990180791606765187179940471591453184748308593208248693529440066205340532335634641963307698140581232473591506349318281160885418679037835062474783028593665687252242907698150265379480397133062956193488790954858023146719822503283948885753159049918451000006944630037423179443169172253827221315353819625122718571478562016216552597760521846855128533187140043837781159034487399716282123345328686107554208246114087439434849649044174682660790240375088622595165327100188150635673462205457760842587790809746111010105762972496096589397853774290224839475195831428656430158665590258863098011197194858067500851432757402263661840042871157467308604527086975693968196685857170776716492633920714570924266652531838452343703654015401403601714135138124040302653738788356113704096476836943080744956109009363609018835679059496705012957855563071223773873498467662408385630110141706248447973394567586708867485473248622460364398920272640588927111040344665799991491361835376102864124116218289576853792559353617743969857914132914071513474260606283117615486300207584789628958355336808586279034510122794824809429047295604620778358655221820751488823518122884699811687868599317754749310598006127842812514322669553513467576348794842466431149901552141141537172932064868603560193782435358497913870940561660627543323958567560977971985497276589005106066844511929269661711797686425164871878781030835490069630835099434205455184941072805126385237404353087542661056345902822665375969772431943804641466232439746713181538232783290516521362684414865182498213278697190502318744104362143103794507791056155272435528697469935565004776743030539614543855918873129276618067500729040461278036562015021537367039626863470896705981877436727043537255873178926143963977651270921055605869942103186317808316650091723194326227603942532357349564376840208938904783846401441256818773862623910003907477128388648728077472129792727541291655104949895111759160608631014664076739987128529209809438119901786319619916497486142075520427821260127193716979748441452110460591686919869714012270122025693644762792005050158882184188077060801121082343162307176402511660909792895495429270077915628524625618375143869194799651559219063645536048567517874433521803248720122380647932469442824464429515020170029206487901699636568053952989037925312678552253406848370179725343706082045536072690923853210893493226973729566642263374201058283106512929162983106232664606412467696648270946862926648122659911147220373418823638342075484986642479388429381181295308861289653902147611842233078670314578149312593336341361387629503324655312387895213285114532454524080284953939587389648660151138282692147236044742802290619137157617037970397887654213933135789735219387814253203069802017770799927927170578367994612927858530964846395245784216574369088406882650509722492448056745939111349372786894368105547294548476807507359251974026637784285318732880147445625551256081832200492884192083525916250658226297730016635782424445584219507273788504594057163949690426646559754265869162126165596776490977427734165854823001888867565085467517921934906961969220403945064768180645618708614097028969133344896065199472908359022338905376105635992200846955239004964763911439704309125279096645344345958159437732244993458486685655408944414215474879656698898244127034211276518900023762416700443011182830669002367248152811041077137591181680118854090273219158742575309653921522178626116417622163270622890842310255094556071578049514433124236407886671520116961350356830649061911442745800610542975412066207410056388614794239112150543609895897829477491918432454609082279856964202835645020292534404790758253061484483279609618293744927054042604793856474035727668391704097746314408210383338677900418893048559403699759228341998033394546593070155922074947237610797600482265505910002489447042122925484759005900236858551523536121935153991868095255882717562922608081992188261061595885004303540643656697738811655138574462145315221903309067948339275502377764622766421557354977657131290287015925570138340347892481159741224865519573991956309993005901447973678795354514252554899467684377486390401607005963089566264099889248091562372243585356092351430104616099711712083341888573838313836132243740879827424162197562575116351670771317719472049283058602697672613312333312317070924375773187377358506599970190808116319098744787406394390621110886653924207173486019607685538901194881167799503706307485576276701808876834333771700919005761988782851855741197873662500479046699798546317731931506741662206682291332273814531861826562662301546394171162949772712445607511120542187355954582606630559302408218107036568487787785676668657222949885086338813367787361714262575705183054574021191573730074467398927317461088643036550457575310742471843675760322267702182716124033600489752086787551159138697305053810606366217522375254468426140421702206501263517134286953504291470522753117991609589924076713259169901388209993038588781553712057074698591696631747562044991701284659993748620870318114419499620141493574864742136875550056373975189456727264916325659579554707392205131752186477053391254063608099273250447948867833890048284958401476273923774363958952333712672383183537242855750179590404796989114821832932102391090784205923723416613365896570880607728713962129172628218269205578001790429220726102656587426299149459548555066363977402115929419234412195971799929592115182270426621061604908505013281982174339214485694678336214186813570786466970025551671280630452119648965611633573556997374853375669854471058903554716090769497065651693521812482843620526808944848778452300141196891242798554406098690347642462339680956690875660400660916790778159597005094653823677468044355592041927848426621896285704161286099545102308343533070598886480095990465919694819155932902859792254329211434444307734352213653140151515737601454389974357722771404858396758110971624794770649697197336747622518792723893455304080330926796589662584816893488285821621916221839107836966505071849991805548527084281131605772111255269183956892676116408648963447433780493474635477994551715999083308560541450593242782372444453299432448545865363812271978401642383550350959382114040795737692442844997551079893049130062022608077825332383583981927077687132579589299719848050541124894767486019686635158152173307228825494471039975572003506484378351570170491137217676206292017020548693274006911787600081574096831154404676659088916341190050411598514293707861190968056017448412067002435431439510267519905034628387594211765731505756526237986222345768177220747500155732811976320502444026699128196531775887229482769783903355482600633638709701558867146298488475818579745721930615987774769456666653526250267589677125507712042433707942435967486952090011190511936540797428953310725878208934582410991457615061378954087702069169856671578151726182041629241332150099549879436543547145423042481960153662532527199390587288436444582669328310467871933381874604348764804344693051391049518007751848087488635004081967982563816885923731085605494812539009099547968371813905648428297340958440311391694988426250351685714984023791734864509379477853143942141524330470851384280015696222540691352539973008405937769604267319594693535641718213951623601465412745518280974197306086513162363303589781104108211287524191717494871187948292599029036438787929415360472809047934107711350849585410603874239789287197962505010459419366501452555529130332171765634872073286032517147059167392363229513384619176803646352472297237746886110803281401817390800633274775170320341283208574774817670113760239275502664265079470186997927732909052802656202189458987375255016545343424526325630662977597127741608745243313419406406968550950579363722786176443392747477628859148504737233853767703841257690486802787152142516857743412692122762357860316673270546478756696379199900304280111004872392719925514915351460899846720603057890155381912651371992988384763030974968619345801256920270885529942369937458374731267820719621012467269698895948940895411216248720448051565867970343029483763748967125966727165805276587464655758493155827649431333889786094182894518799940264023420022082276829866191352948154548766709203906001296521043397663761325558805136974145114966986382267343092376237695375600121771995571552652332918772102523182664707860740818487924952438767112539375778014903910209473325093785162035162818101640101222531700237192693833846508914090982392695261675902161493218557598193145988400744652360911396779323600598140869992213142053157406127464948756943455537204813796885812393277303737430780204838251912399759726142126883322676965731901710971666454921786125256420648643308613516387596701769529965553465951040694654285441842640158948191918894222266199979841724013711629903672644955904014531454462148004612543387955012263675863550173795636949177081988766651267669302217602530173640377166826601825795521488062105475005100945543347870177566418661113132481618323441126789239520805389525654407102818313452181914851403267237626238218234185595485373056518544081479315377992752073001705174170590529582981469949688212438463761665420119952012271341129325639642351982486034178125596722781037029629688029712891873218841560441123141470809275304396216998387028065440189444415452871287577781763863463249788405064558317263867851349240865290901379214062348709224517105945683628015305461261876004773190579169004672417544872073798768464238283107247811433723586047761234001192242188510289377551038395690417833871281221549220571338946227850027116975390245844568045180822223876971788743974201379258405597381943948631969562507121001124097667910864688232828340591049790025768087504637349900470877913517277399222616288976989782489538139595454240357159869869390690675965235960900551401380821074221362043530355950025865858354460730156916000561607966503538829975294546454741143873077656611210185887209544640444440892246810421407610172584847531831905727073669770344833307210968247021341423052637242275879455440859396988249259749531134532041451062567917893524971906002515972561396164773222194267148946877771575152709542945991556801869526148407715082139246526830882928294562719967109465096917122406287872925697038889754004111681815342691634006501837792762281335304991557731960208112595640460154075737891361108127752488365416556310203167100982937100258051928881795906742477117810937004990615595865042186769691597265840245248881391502881848800987692961483307937208052283462154090344059836712466385082731339715509230152293682462705478584725400057596989773115886714107745493158765042853525154024880904786929342128960965440344862572303807362889106186511263223921866361196492113093504142927886721417141369752309154238666065764051867856133115593717550769122135773644537048762136786141007852323681158494241824235514718147461062780819175175874331925349040924598501511575637291709064011578005680064000442664750052460164716425185031755567912248314937509510036269069735805174408768046875008395301339297381574016431247912477075060890569534692364624745131397001593588721572206831981384698408006341046149060026786050689215725029728159544352265952530099008146161545601571646177445395976983458628083490652056883991489997559894326253086421254866301165179743622998857426440965460553978299129072462636140297923495666447196337964901055049392392327446318289150705088599980648846889527070787313745430037767174326919686561007558842217331619764785064672019290173697586486606894536698059873589404843778583277351990291384765866194165741558839444641756901436406078280361644198411684479909732395198894769632815495640632237311341773309691672336009874601017616875487491154298306595000976745363438956380606420954556862099410230656219838145071976754596721059725790714657594418892342515729099128146365986445497601308159508281051011886723825560684287471024465997296181292807838525053800529606710126434056417059894140681635868050652486354798700940544112631770537692332697208768440152191734990935353574903209365344539219114979260147306258865872335887561877654353308903277219220231434329346614114525740232249524685005244973320481358308677267561532472738933794683221287557441466024309873073412302880387840838657297116993176216019380583041477890461788833742198048402917341381451253070656891938676548415616094415600254683162513853115983417104090299268293795775405913000072301217457949991005793973957685615956592412048955206364521819304242312333184870511918058399062583084497324209596386028184454272364546233198184478609268542992604085039955362848562707100132063497934765112897003170839987081708023495057013560426826489496839728822959884109027276250873498726027553503292414710784149540240386792983084958273892459657376081093238877973628816539158401489865680333153762624786460665086381405315429276624446582573429651612048749759872660778971970127095651943731396593761102169523967245509374322909700184792101952182679030647913722667447017040411524056720976737143700659455996156853525478722804327913004166361005260581228482874587602213046536315621766308243854335234479776023818516331815671131345791490914481278678734083175839803070227376985758768173199268669074326468520720340639974690341486364805670823064073559935406311868163977892763551379724533605749363877357660108119491064624452501933316586228831958951646998850811201309480711798262619995536043869316432330509495956403088325186677379826833772867752478252823231381940621724141831490403266607481139027720204004765258802978856517124253712801303126900854973185937454370084753038264579338158067848057312792438228658014833304868152120924454346546228115347138273218412883777365961477353209600221597685731993275252089605394334047328135581741329287641399758642007000690194015932182589465526698618329262790281418580348205648345255541827189749229543626779327224918470112573422095224226977668100054629157847538062614428376729141911849521640112562444978338338699039909562727481716359063129482815120609679618263455054545222943356114866908971516870761295263602762618358233702461059902360525306792673512750277793729337371434943619501322474893837100609212167578188603922597133836035302894208618718126874751845749386876593025747403308077134246526037853204287113567746197543023874331570184275836155267670048764748122348255677546141476445798436954124924762487122621287759003855127826720652899865237473311842814783834390684193082359503190390349125098178368686538749221662731087974596624709767765267086729511328485389991543618441072410597669112286908716937900109796700566743761991143654302921149416882389207204653698069943055676467574431072804435250618477990783728934246288171422543220195313425699262449673266718550761684367812593274625238797088083289778024022207344772161132760471416472169763875825251496152025249502138325625791090869659754571716879596596959530910280482139615783076959953574042432703365316945997841724458926008149951565279557609837320399573749042900083287043241907369319323607044347485983173506660806616271511156224791023110539779450147472355115629592804476112405232213815555068733193842531248086033379688772128536592549704322864746028516036188916226819382206531202222216482227303144973566258730010563430042020044275452845243596854980940132230105854994220784449433437981545091281894757439698690605969516123065299589214616924458624992104786909841545670333826841155851908386292386758910553970640262456991857845185179391041768947689834292282003385520409636525215593883295831130996303762847211464546691780000901231875306611264983867668677835356106695721236341798339030324267112705454266282516917884616170936461946694875820368189742492544126674583190081543673321254380322923848026764554751586832119394378965211632505537011493360349880674679395189779694752061694768826294616781540640849097327532688819500676655045527415973713201102664707452813555685906829382536472420742386958619704907163510373110721214708413039783782326058043097112361003747160922464999654001715943381888322041863579019197251014697471604038869225722962632436372704768273404175544888398445427782216500323366868406667596421090396007872841777541035233416329964128304024382292370619444598829426405994978281821594204906830308313221201856836418541210289544672984928411694711911959942913191780662437276269027750567625001967318451046607573093438584800032044016462871637344379341873913198665152963154131424374029330135894305317810675173916587623917076776587201126257204213794002618423108767090214147233532450780261466199301184195155264660789033621999177478772764405958998095783315666363455429565758516490834056135605448262518399103888383129753358869250258521496783080593395043673970806482582208542058157470736288788197447226335819429955834345971634533003708734636463038088706013959394802646851729301981476639655929910998584204000949457271106356233342711598371173802233120248393674854257352329900824967476998520021409111539068515886770487772558508525631188238533686121594740408680943940301186935090290218846819677010267487600928031209920054066186696537866459398076520462179254218869599317163454267137407153739008241206113987877099983028492758729841013790070410188389833310895414539452590293063605615690700796131684044851221529813688206555758599743375230822536731424428852109242227046433146938589590148643137002208761388221222622193017887987278262418557610976445916040156801946464510651922812968606468575310295324594476123326186268695523837130213396530819629872202421951735161542644616418814398050616449537393327243865579561009486638006007960845471919090764857434927957229099735099705212676584458900669041774288811615878575718146817790612038076692222930082909141441883955254115197752877701960021910004915155132304681119881730876347872563314025432303742817228947626022238976508189858856996625048538957794074536113556021938471600497327426844543749363131917563863488039178234471145418220772823886227536231994483543824593740010155822816929384491999267929477218081651533100172010219586954867733792584918357831416614099554153326175862715917198690948252080700181533545843611418203949645446459828860416636610166260360548064079944831889393879283718706109668938437344268335982897338208946171696192790137895726580961427306812068673398733434656766358117350312221877465861491921348154074652972930053151069933446697971383769819355291001315898093573186215160378806560280415219133199508330481293370104629438900648242155000657893627188022271786586746166271257510735926364507001662188569502034135325263286052588445965477703793977225208557625530406314071759006683626996853514105190452808121061371130797204801705770268116737185414294196291725761383407180259808827895594461595902285574718328072016170425411063714852239531506671681839189295528305055414564230145044172776803726329621986120079868185095945534189978190546382292027750188407920717955686171110234788302165579234099444042967520140645507578586581748103869679584543731333772836445134683548013925763053707022537403336003939104598636376185570232981387544849101022706302310226970819728693945743677539445232269168030812933765786920701517592090016476782942432005862960203699160937953903286416559167760877006070595990805855207582169679483500400815233653110730698590288740407658200504631831485391178872760396464874451694542936683566104276660081163792157191091403555599260575557823838892550072783084855883751766773671689377152581358956280813871067626162262151929583575424925722300625189502926733832857701842780695969753584245211266197629126297628110945707810510040996553994324681379890093088264225729350337814150173514748210412298301292081834841665909262932627143622105269644459227763419728966775649015978955772752999845728019059883679824983754398896496018440021137547105364999815543124582953337719057402517975675704531240079935929804772231959095034343146134967249037594664823854988301083704666309970266345489186982434481945708444626049926670651791105632205512448314695731409676417559034859594967497253664131785511096547306618869188792708041083381107249379496762084704891784137377831455896736464240853451016117084039465417519783088711959471791430711541145112820987965866153730437541491991016399080957279427248906060948013761390786844066738741061716197488612539060424677187709792042933442899204902506084736831676043026792024915777938248268005571630027914546809555228691111021387217529841088166182137690031199319602213414418817645168013431383642091302595261205067392140085612298069963995871322729038144775835783829141892138109267596800243497144949715979232438175437119049962232803800933565000450368964954342164650313207487563535255085631913705869383636931860686286343128975385255907993680495405660529931909652260342662465766429720043562347816367591014393567836744002992201383955199855344038045540688356872974939185284843822601048597198041595008623117976831645461406558702140088605541201951779022787815243102397321843684246903871419449060365978344986272030929554135432480527477153149026306996699264074938315416937284319069987837741143585911450629185814167316775530180884388873903525075814411377644937552577695595135017323005251736438488540957635209781857819391412595987151950120074342534851105782256962456519871282711774316106386722338917412904841276890828784367603827273189675961323633139945968304868484107829360749579889611013050534956389277439017193957528042019653507850565263256920982909995995377496283810723385380142862182737054694389523087573600639636399574517579179607699171738008338064938995462877055001307648702296118575160645739000137001145868388450050060836939397272527002049563616844497107454516585573961983342202035924222374054120321634453413794856399626885010458553339795302388165567987846687437117167879772490558270297808283978376354548083825879682584748978266928114589535043734723385873593212960711056487350199813501477550897266571869705165365765978491831819040148055869588635084481789824396796949122025462875795358621369725739516761056391610480918580066127508892791115194959269845280303714291455319732401284007365269377258289622424176903877255119242497565007008503683757253302672269569463304582564656702234455165930445931307168255972002627752617499968621416014352297250729555191799960335505539573195412997308984171332792035843816793193798963639992720275328434092750142326474451744328968577267614894271067222560225319338209065688238655140045440096931115324173557788445737179420572324207674686129879684514444782975657994393232315379842731794151313534293450334782618574615410486742443198654256446836667366362975285698479896795947540838209622048551483809128624422938293824937286676144440914662385900132914012930222103759589951462413867190916733704954715575131881636523990338257468766366221805069807978806451545472024507937950158114513246177485583772451625394976036156130337540422852759069269207445779534285356432381834624821193265577798399125782221201005978177911058221000813615253740726348996866389155585719801689111821757203552879873878157139510840401613533784167824031624931501702562921466186763199722772367167366036066744126632008671194070455924853761784783827988820461993568448180268398095403481835102017463805054383614339371796705609884947221320200477857512686271745034696294267651700294231410700305452752378096433115992079241506591009558842358546923376698032117195332393327222618650413740560687308304816365433749696009215334449247869952674548610131120355820600136828652172163385685365551395530846552744259193876570601682734399657744478281223747232299834868951726146424931194809679644206432738238571788209162984439110636388796165398160454392769531854157618409500183967294907744138051525278801915322119590104899346982316918490700339101277789610622223024431536018133707074450489691541157128566589509071393784554397867956368801299816330939362817999803734629349651471987037689432323807107075107525930841683714067916400714443484020646021635535894818708177691711200661569775750548491369452995327632372721185769161101346234467449746980129154360519757747018410923440322146782633871098446833715399135695072391995601511030530881824011448669324150279971781658573248585347349142455053648234461561209737099931372360016586811767965379368321681148627084777827475448252875116315442728647359955771981464968422943307451189130447166736159589087328108443434333255156615056195362912472923548100743505438391922916198791139996040723087151200509719072100153851404068369383894167297851148563222903783802300692720995192991757770033846722988060522360127524536454689310407705643528400076601079464032212367236977610023966824977809373972542826985048174846001457464601083755252701812726408030700019694717007991570941174073318158129004367606551273989757774750222621217846188690269349900269983121148432012742250469433775711262604060856071641782099266127360746733053617864311270241048501372887367307466357147429271619028691960307533177644765353375303669429204913694133348885781275630299007549563624841965385461112187531692519920921349768591034093044062490648270230432061713574512465178479128188604109340151374451734957960222558989343602656773121702420015610776804301508445851090650233255541724339475332668067882937914600828593603471352394302116080971436960571059103563309221839014213635292842145728318281367692611894987572009899399725149502357947375770361105564498685006903943117783719173089262686222374127014183080330311185145646613071692346761699208930469239571909856511710760308443710021184495429130941206183281564582248521694489456184482693520513540634167121315886519494783757583906080945009735382407613248993663480614348375458444033602382382322418260386151059010716491970946502349123793109420032858952829903418690828279419891884992465339795821076508131271076621172950757423397937676978663991220695253674412059800931529750275998784463906284837171981380957338689426236399577333705842108464809172811049515373329428111531650366793965195087811794165232750342206669415510580516574573839432509011788042303519897882382726974805412922273244532749917174078919484690044093276879551927352868888703289546970677914290160200313647086749112859035532111282921885628928620189564141456599746307863919304151161404328015900684676913499919365716440383960576076062213464528418748379296711524998512590405694317322652951413734220168629210930129866070021715733628683086666855707086381822442516585768151894156957639863669821058701500078470901325747706510148402402072538316422357581939217720309820568268537402203802898467187762211596608462939132745909176480419424494279804217798262851403219566838745751597570637308529696738301370519654204641042608471350911952824653252131218939601985099601131760840187980078604692402342957317159867647597986666433641030557454660756476751789358328072842969377107868164885917038929081342109066499871523926068683097081661232215587039147497369008001504581477316339887877182621847680995419558035184546509426198275096874233690307194901176388598243319830367034618403380973724492693556282474773949004363187398280177855313455138775939613623028522484001881420240912345668755081433797665069380142970572308082308906560049345659549598935803972284081601498187475328733476228997305311441173450905988091408940890727625631918912012991497850371757796550484307457857411362783828658351774057215480620805004573237446478855790933523706675128746595788684274461616251436849633986416943428012188064886028019384300453624662262616851013608318801719948868128857181709660865787394748669494887625210097877572958628157924658486445787142574405428463026024347832766053407701215999167807652726100597057996302514358811143815831636596165660143798710548405746669721196846273652233033236771901569302334024179108331683609179489339676031064051257491803494510627773833069556049862710065962159626005625000045221024811935951235014722692052945298049340569468989323212135764631085349830519121973239024609177860679251432249916696935557113508640704662988387442967575960254545246369839424384988644164963162943650168971351770656003709616185201044935085818442920618860171697582024753340605191122369342015667491810648950335891528617387786974789171339513886967538466685042935537510544891340477040032154257760990772582130057562832782875676039116104602273799713573151719494070149268175312712118310335576043994857278944640750426681787032426666610567957343456539863815060571401674532700570828243477995539892463348270362538472918250814774354994115391742368155594293038739151443548734171284240102745172351715622931975813646494085263845632325184895236214438379660743134715635096908461423704561677793876713802507772528669370849702871931387421641971573664680704663832045450874194441310865395249279722306072508750867187108222541885748131484628340737864329205546489526241847017128273177909625691241122583469181379132314154563228207194361561323740686922962004675158181874104810279224519700214246222412338503959076711048216378519083769879699611531173262929282866469415024670314133747126549215493527276945683338653409186743422131009217235830423439651971353443740997697261932845129378044114063001317031995791366300890670628345091601026525493383023151234765110514451774948949047912054417095332829124133608249103889439333210836225955422673593068804140201430528334677477161331393780962313221944093463792152602748994833510877398761358116073544006364007430842866422762673899102655668849780218895934220910011635539159984794312440797566235335959169996872891615464601274322900812762049782185842506391442295291498867589992170092149397499799631265760241833341960020182235956703321784921036338273812414823147741141624658162036033213394674013831926475487378800014006103195436265641960916841805410534381219087182888276733625889732563185176055606254159852526818499299438896063882507304306864132038679174427952702336533432270813027984680754913423630639590279446273999982421519833094109827824952482932996657966842157351599243957859266750276765776955703494076255510914980308573054164582340352062053980112859266905475459202316601317200620830020443146393331027925855823692566029757561199683592095025031606870853598793464564578375974871871563534122224081576851838251466169466873993398710470392412737804017156385486095525242093815502154617404673330783683984160237125558496268839620195172288770523291806471903350348496498765469492552885330101271420189348945714352957091865072432160072102761121178352328867134835989749924352241324030300257743549161695829443450520788207098450977034633349509423601624738401245470381819055550854264835678433063384855250965149878966660843385724940761089583829863362247206876632295978487656331310803526542146899464097062972125928305485873257333048370778568450034240244664337686842585574159121706865228849057981593070394848869641863045103380339428122410033464186025771018903801893780469682203044884945667980981267033222947827959287782750400882270361931921026419134423667701846763257646595416219660511847846721361629819705632435649998431559852487697620379873879641351305337319358141622241039693224719760095858727275696000856750757162724746274809013418526805906864320531618937654084851855721038759441010829896277479872382526155536499072799317091644874066097968439665922485932324995846596534393142244007446797652973115922522611905498636418160302243723720114823165913432177844669935343953836477673138864618638285014665797464585866695231950284781827522388103493708798155564554524427094651105694842048134809839153895171167302295123900347741992398681866973305711053193258431751416860384080721667401325815479400346829014047349235587881791978076684443411570166521858889623774085234558768745248869383717317303596572634438330815167691082226210858975930329703980964688598460157013641266059794713271817189315206425568948478600903814436260749101062453965428030495334056063152547155791170251587714120158888989121550739156280585177778458839756835152710752249573349856277592778205709480702221332707275539593773034395630485593373448911839934982779840346761485689809543787504251906102499313236503203296270825412928691057794213059523252166873583407772177287279191278441995376689448385676353903972461038372741532740513362749632436242640508397338440911608936740487095331843436186555218367753258049880934559546785384132175680985044069502696697771364574873116031816577733030269963953580312361600967919684872786318151770580215561510763239518511147592502555419010067020686952551594713602968716257831373477270697900865821788631497690401231500503910006092317364648286984342964133341264120443779858622589682384194700031096791723710360451211317357199797786235629971080554553195595392999686068958827884748014865125655898204904827110255737888212670082264620390945261878891598876239271593333124496268308068818532784270873506733698855869834444126866175140095820559740879656290951190944358286951440237484458297118478497366448351697084061800678049403041052188047444889859364644379875185417781536115569497145670486819185992138232103364804979404573247337444134554348636057993359911181764932851255754839966819235074398979760389618159908804668616853911681103645697198556609091209912843758891424229957360989440966254747113307566191168750941668424281428651985095545584778447491744842126213881474280674305848766884264206121161214628836114831609034928700851868679960695883290994356161265931692793362221469944950096145507419095503543664701571176586007256502002699976776221042014499884291572634519014303280045311838472644680250953587282388627115571115876820992525008139733738995838068806198749768883955587626711065094682160645379324367072065489069616271082211661628888461143703068421029475585365861557253297445550320466841337001335132060923104540236581164037600156188845000130814298853735524350227646859564930568339238488260631449604188418939145832651133410744645975046338300013136885118043209990397096305577971147362674273259944221334809077054564012933872405977113512694535669169197623656531231365769964684749998214687183265673555884829668869041745651712762590252999099896058903159358996921917501360769321199204773076536642576708766868684682831309832232745160427682136564714641482530119655775610797054679602508386090822013838432047096148203330045648553278915921251514206719543132839672622395913160643295326519768684980178132905172080876128755956299976336715863323216253889484265796513763376902705550125860933147725873927850751513783989731390003243772658911879816367576368292625967190648076252872058791635442890357420721571638886111231858539546647900718678296504945849933194031285883415026926891940330583115298764279670493324563840172031051816242649036416755509775506561107795587466677656956173635967939419323332863675045165324405573102946887117843993776287563104340319946096459443934830751205711744789769234068093010893156917622791134073869320096767467400942758888369799088307315519600377148803201980294168151876109097064283142894242639478652997191237664078908316435994234004044502511873275249753606985304225832783984760199517278508041785860527774288636521567027911081178583405215498025514763326531086996400087447612931145921851493138269984296859930081948719427682953049587369155910659258600277355594863020967498369954942947110460196749175739001740429056105021204088232908137049741097746194432937106972090061376919379836053659564634820424571521893015313988260582765651659827388208908506315658930849689957188307278809007605373357947440295874882208143596854662188222122403229489965954236175946810410850946352549720982082236575212718277133853382134463357653101361975132830538980467737495764381669559199610721773199179411837981519943136211377706412229928165674850850906638245871594914059370985736222564045378338668970499901129374822984168900486439133721892162452920881613079769228181786079379787074568622518758394760097154108117155456925119388402371966320775840153478196474261625147062804396345771761110483697292373512639627364440535407462362279936999531937335920536318001831007137511156854927030877306945589592144384303274406727375049886269030037447917702038022377055204969723416957449348649350417696684137355324632297715658194759857949039788869281169817099218246146875516884336510357200579604827012618048152343824781052678345329943484605231107232009823496725767325935211843665308270144111036341689315929987223246757490770595749505843595240510003096838452337084226215902458582025046608265744414955942177097175129703961620434108884674896788826103352336530896520541303557561933721175306745378910727402271968109335754649270246502187011308356464407697908670066015001968510452887715165618836691804696250945064063255167475502266314609858206991747996452975558141038954741157756120933660505113016863535041674713076901776154626690606324532103103201955433893008262289211278188061438473186420293172953542446052753947181824277536875740658622838958364162133218931545874166712056566330777471063651098854921988232804560257838718886065684966860684317095154278306604806694038936958308318596592185570665821992745577313066083800929001530721711640643122455298167496010553965650058391039190579389716131727651760103217111337348782686613699148375227977818673990868252865297794644825441318163085525072467767261557046675868148615309823423447907370474234600823344060209205591833989554820896901751695386182164185781102998493622358277942492445386058666878300615577092366082629849268047112722016312081875482194013952562577014997873704990243245238331806713889414149772528083624767022892524803993930321447884038249546296201354883656168475499528390950318838232250382336594290800954680682198358668054360765593769158422750679615167991045204640018873913117377856507552030403657555568379776524217820324831631497630562921401170711539899596632571449917435397458295485945241922912455495843544017258241031186877628863003341029083859307043849311944688387295425929235820914400264900971090803939614269151871091878398480418899996422188037001876391722187468873892025687770570389563549585931809280593015217929776816666723512919242882852493961858928032332668253615925092430185203842194591614582324661862364546501537640699897053208148687906780222976122260109702123756448360663395082706859402022413439472676966411184489984665844380898303468467545575275399839292670094372301221882096830938289458407741651102245754770270555172426847799238774569645036771821978257871282913831851934607814809531822130146884119111968545692643553006956232083487852396392481215935236328990631847885968827624233081436205206230235497239901041011827422700018711017259261770438295305562291840927053371710995867690676513240622842935524701840704632378270310954815680272888430701178304947943742179458634208328920479838871790947366490215048513104092937385524079640366998819713649947480439563244895077646199766243121174761771248509709775601178304319714689846421954866240498419135978090429819161579013873872098754805575453311127343864676419707911667304878756543512575163580024914143573649513432619245900292074145927942065390087447310643911281672469997984499678566956132356847857774909868397401741469593026771640141916428391363277014511276022340914267340028726418345936164277415790371874935733139298320812927517332620984723248308421305198663415414214763432496460676951360944557607682242803387735264269355588882539374561260793953023939269394995489812798817715923840926227195190718438348869295014085327873913095579832890799459617785281462536607834117146531220952119644671537125574781218949137436760788981385051528631985951680849338057475119144014966180283409890733113347302173966806067276891644866400992198539179153827357628822388949512038196604411950536978206518753751595469227742048816976818305970947160688276708512360627645028820281983009855881640142360002249199569263182343810142448809197962044035015860781387671870863803538055873093661298485841822347258396490120389198084805466367588733643438484601989023293410288833355748488053880109410225473389373385548848406584262237644579213573617096965833355267316669264152140322546244890860554590786713650780309561703250926262601375279591134833268289491591783182325018419479419576920079862672580050894169621109216020537215952712099621877095598256990683842197393767058434796609185733774055574421250666706875821502562596036192370321242978682930551361977889724228982419421883846597468110336041091542461241555361215644271659398090726179702351725445269572437139632963297000775752519507333275892278803662742057771735581243780552714943517230020397723026711921493365645102599109923112413837949338770197519101798507234938412501060917201825578439129461536436655032543505209136167520374795341733916993763440385273075495469435865211444557111179484658727472894926514115836634673887757858312743359552632414712031080303450764252631770438170138729879354209730876972221165404353972042723435462374656619814011203139776404704948971496654170726202469409393781278986843213742114785714692854436272206919378230612376903722305504623831958662871301725141437910442107118115601562124349596476820536298617748457329684294614017599689482144109367761150835099015298096973012134829858293743673091982169638507378438813857515895231752373747451742423572665598624177272415443997121806000219330605777130351751716761906258303656355606381163602004000894148873789699471708072182563909085123990403130689740828490285930827868598950713160273965614736007241861939631279819373578049867853499507492664803464343827267018710981969660143109542209480214579597770848049211654662747730757753384236313669697017727412685321273408447741037041264795674062762673126136137681118774217134465351371348452212128122344884757483978560482381043109059805452466930911556725356725134076634357548741546467631803098587113811817722546547302387956819379792557815520428131609861251371852437400255768823498706656567317002249278938460824620758312229320925013536108755145310004917641657885574965921578679462360483752827547357363374066039823301143848099990614885673937356259262576316998235504735906819406352751092268929019897109044956251725549362599188203414422367325815450679778801731656564375738840602801953105140180137016971808195242479598623013644232310581099968127718184514175939347349993817676262999810265508982555781789746095900050068227463804694276378836978852627233195636421311058175141053843754250458281657547096096918644627646099644951438176889760160370545913034627190830189967162739922886711983330830530232380681187804874384822869241608028213681204906444995915478892659145779865077970440607564574515493757129099399141295722231930378838470033398669977824844434104157819062855111134377460260332393645769706971246866597148470892481828012030091275295340193947148543673928353992621204061155785220207640421962611746322619007063784694194596079031270591127069671538636098391349553489990289768700669086041326856235339377789280884731833166000930522225218092243585387966614366458725171724750190154491628031515892401329818470698695329445081972783767981221906942166259887603698230498436820619708436094555408312013687713467915658904061389748039683410380266352279853787959693019097779736521059121385881861092931640273231934415441894386863605699373630906286607241994157160711617027456043898288735975955433396050007980862366507779506274475339538139727301334658785737171438632052271115248881204292074276096993319779097413264263540832715970985610393964650797702821582954137911747348873609771369122204033770823566306895049062711401505299522104985252520286241517427362243570220116737507644279478470002839854077857464634123597616572959547392815538703015325111363950449928991767109984828511635445428777705449046552588168459135572011917457437657786706819792906998905381517747113622594407460209740494935934127690385368778401400065879691031161873610376831654689857752545412147799115904345469939686229405426268201330694697933232831442522954091808746378269879212329078540088065190142336402668061067999398120740438307978533096749597761450640219450285191808012288381689021445187245654467498491224563555188429972755709078599658580907399937426904301470649692527511187402172366673857100391328896502010788861462787145990548867045698647807849034868987215239206829983471434365639033247008193820519915359825046414418265182433583818848477742681684073487968822946896281832234497469379309056071011631442869121007753619599568753333115516687422298766646654230892288122966598298735785638308623993301648426334813192664032709466131821173937218264088774174400806073704668991568014698058466521803862939246200060790572570738125133314327721471772121677535854877158189973645206524974944692906517494827082142319614098888134002274190136210302163280085738521383179084708348845142858176644595248261015545783886565961694452850273813447910721513010956507642287041508458925139648567184006568322519919933747571694278369740916579529521660528904817065469804643691570055537024261103613294105717402157303707736938791134446516036065053494603557699898077461366578666433432715250266023271596940398734069710832339159852859197911531402182439021619975750848358918491900508979157516498928066460761236771035841947087465139047172429983881307044144265390449884150669733022040443139997585684332640914783739512836252074782344182226806844402639039693231092947585740850901051583747159418568865642227689483972192689033725209651053188474973298672972394949698885407872862838810231515008393265015058504486548650762574609720030108128429923191332136443470669951518646726893439825621456655473301240545611951061490292171410105816009283718352265624251977253334730043178352432667863053628691843129894572185310333191374764677428617396473441316098087541342501921017934157333512254544732667399132451772279389106704245304793121077167200112079987096237350904026553797610712493017192381908783477214672953215953581963194325614042145690077312240730453630410940514119407832179881027039442265276842176668791541745808917130391192643315423041099777543259957252358377707147360778875672803668611970443939265557776140412343861832975037993411210501788029270496938257133747316280932924741147067604502424665418397530625432404135460758339194262225840104250531157420957608727040064149222074654783637866681038298821424366979634213112319972224805124977961551995978118818867806257858266316695883030608430104221033527773942831547244664644432314476828925322471059209825477298197257834923402065271883111204911615953330889542771978713996461489426936943230302334518585345961168711249755783330741474554939164424866954772778889060645231456493786875452641654532373060433327277912880384398403236004449479749469818473473062487370635520158459904951142524455454232460210085831911243923802937933833158800504304008601394472498858858232261158881945785667364157760133358367217849930403239541660804321882160777774286600321122519033154229778965068570488924365585683455991247761058883391219677491990377734576750104878221132534367790777364801878608113891415893249279340718532164876537818223542504880736017851046936749010008594446894873531043407396299405262752502921111027505337545140185987208595603497438228284891558437731264793579713765301192815373597844737115176627885609434409658169079188686894209312160320620875123201693618182942481832606157352917849976079377225987432666538709284577314285835923349361750499444304561124380999733331155924412461405710963075668505230604338069923923981872033363211768285060431694636183282498472580209018701849519670828773358854218489806420381313248880052258777499561359696599217281265096835635136319637350721224056611268918684475262058013456863904285001746694799507666126478286096897585675397698377283885918613228189417707785122577112115763662373930072594924671010755440610542718686476134900738912163519575390412830690933474424543373926848898197288440284209718068679488253302391674763284404540186936888348802777334840962408647360733637480668920390781619692032058140972248891643803325487899371759412064108212584529972864940149085846350707630210316197553622038587994284259406877736850838064999880476098531175181881247346021221985904771170753052723998212662775164338791514795331725160391692996321767524186138235624157122847050901074022529450599059762519959109217461274336608640412385204112028565446040130379822255217018116577663425311788917734101999114528952029664911899986276166371563469824010562238411254356811029317691196508003925285475195280328726838551784079266390593715233710047236672990468084494953012760035047601950208241943847648480878366461993095801185920074256486506836867770491749339561292831227457231362840592292214224742004210258899506201351543777038707239801449243131361005969648731605171807025944418805982677355580814485086608099978560519791833652040050398959938281118847641962949823725621500427454658250279387806575160284795841217277540575073172129644443736958871971577608459918450028338596510831420793351126461548819863787868656656545392780146498802017389948443391351500124397917583571325842400600279111683254043904589773437811349469514346217976306427059452693811711644125248838557076250384070827525941518613714939840670130579374226689358140268950689216433281049060165473673222777114035907460506432064904229243939335518151233636566496589984612393336065851867876257091803061316998742439501117300081689619768303213983446640350864019432240267831696247534851741275981726664899782590774634561230036449942995170936479622134023329534830321195303180207448846999143055040415287550532187832145073330657767938874016170809876986735541987697587467976994799780218727681704669024806470996866031071758545089146694607493964335485228511848677528004128769414631022312019271448428073620944828457161725382281805132064618903897286518819100213378976969229686511310752514306645224889174903289069938698234205158120990702315037276782251140898796484465913766805153823336447057297452337251223732651110371791052427791747780875033534925208630296961148512993434407251846382063811885763161769003629532995815144179889656912326901367605443365816913387296581349984487760740731661176376178755058073803898919987510389615737621146135244189573104044728363395441007582904294894142904571481613557161716611710794821328148050627848086863067251925744874278760416191452025079176168500435937070959323924219631798318605066665620012213971733061128556949613743714573734679999100713415441389609835058743431101512574969912482428251956337696280614245878010980471441399467307279032964543746701897381215116975769253031500909686254491584189033746836885686579454271281227220127224039358772208765140932617718632209040870657235982168969251982679570669928379589187579069054586268996517264967077904572572297807972597400108552074467143820854355783469705670863997181893180024192711336820383804327760218977151755032137432959172437604366317577281035972144610915281709867477752632762026165521597905498037663893363301098452571031791595677697496859758379182020937504198599670354488357971551789003848987916759862904705679339350926424693860794086303027148781202354576029534276705938039611010307937287112967945275443019590676374730885516100388974838772349075151291166067143652710834311506102511958645042369272149342143791525371250323774681141483732334231142374098863183922755696900764385972663639092193708780231000642654629270289384456621746252436065881853796527618043409827931696993399655474370252584695672694614759050497286260269549357954434206704163719033374706455510115314130850433887790744238241401716087167761959617938795439225683817168769569031778086570126644232273345376331787610692804247345653242357256261852534368755472825995790578332853465486184818596489223566145872806795231699107263491264990113775132062062480710672553480411151434893752803782505107463501211631487566110903657456613711741741742316771469823207675973369603005109072048139350353779884213866636890875628920068443590247607114000122105631473924629946141195038733023315467149301576995818881881403349362452930552349603854220059935217883270606894357694623048153400583962969926564788148444020969741363383302534804977012835289590274289548382197145753358637514576113727145319517134037453039631671307766711692205020864498676884295543764174878535641066102390822098880899175123877917241172239601395518795362333817931535769273204672493137710525053839921442466995114445160800870796055811596398739616528320539406995930385302949116902803855819846327025646547415030116985306458129380034608066482970559219983794607665878113135678240072084144601744871690732339829190307047451081841323128952484212674454106922718425961969866399425337818112516107013994041751495467221624346631215196782568009613494697257628527164633264402041900177463418122461031100863452597474789950348697847502536100718644820176454831767365067609990431651800204375710752398094270051194448499998502876798559394998878840404671432458689880121604501411203760471054299344028445746455662968362894866959507498587666374306567402595711814913365445959435549838650891936976403187787935617750978895863490669963705040021003643800855826195187688728058922556256085541055688575118976959694227958767176182323718536808599187856095112043743767778219723663490910137799080306803782606068162654322575716619677801781828584127263640797478586966913986992682664345279885855015181065543565856258908214197252167035007938991616877707844223674364168746271173598700043928369917559663919055345690544099886435964946718172012470896549141942747904027208978016983324261922616819718677571189653359675527691357489283359170947271187888247616543737512855585704552637883235259792432812591567667705611497394034222046171018781028166844927567782375539219178360700885994031545777509317963117382840419571630580863574163343344521039187550621860990760663916049478078284948681937221920593211641345537107002734347021746593032999794611734536790939425793125326416738920946044454802302920069814572891131774889866292518970814215656114000303665177868248978648596624887451316751036303610749275386476567251035815853492239504113702611315516301581713501090164028947768322276139321823107883803835770571563686047028467836794509123708583757243463307923609382248799643386974895200259240829498055966342248945389058940138595869693463058639217841999946381788966647984442024276426273329115996283702160758365009305887476711020358433303702322482069360451469645140443617163806230178030182186524090290389986055865174297782458199193474751329783362947233617897428917298051111331022365093538731364817883792367587855890259051492719191259449389943875312538091251798104542479507943452320948078626560389016475610128328752831800374581027052686696217574206062945376854870222287146028424718357355048876213617865057580810632856615720696209651246690098138021441862531927011654324523991179981252639425792402294567673598346189298133196856926658880615936747979357772837574795336133971669148368768648236289880742544084626098051790851278663974956119360566263673010350818894938482937310278871219361116239845394353911482266508121731070281017993585863985613921583169589647731261406384118533320038887897846454342268875902547836008778905021575637959258723668587958282480217432827705539540569286816979595725391141968196431106015736526170132557303564497215993734634095823008995535657736322850205151864540820976739233429788592270144039992980741210904551453083956890197204159462243375503732698266097235553794910628859043642080792751545198739074935289588515606334294448063855720338921099383248306059252015606767204999342745079137207338400089120740289934152524766293404474440149227132470929864199187050790744229300151998998171281696641063034938670612120438308710030593909384919927034393388830273649761272932733593413991479059276797397421363641399235138147857349361217404247711792819782936972340942076847739030068669177153296022110897002397624085084021570529177638056840842319757624460759714840685120527083557017822162471760868797046084068997043225497842703660382267133049505742744951073471336044904397336622884886013997899030456604688189555260158148252032237674724663036622922817628234852041076324880363354175830925130526428478890474931170941826356251267940580528904778468749902871789952840717423874675351105103535729928196215399638457202181088594880367883638198748801048306684182783481794775546715697924956607811252510312356333781487407167635828620735050836493636390392107591420735641712918939338792371934979039625914551001464482178605610158265555824975264735240392739059196550799778758282746751261182691830219578063547868344838637593120891370992494389340136214546231305878180497932856709513171084658256927922672598305209273086554862975540258366552589664462539601796798475524901352497993101780812333144792144748614924178475319836962011208364340451370479997906428327272711846753263512063225634282314687215554740742723248476495050202830319405927031982349503639340367781014376629096486402952346030299702626808651724047754694882341704191452550492585118579944187474843555163709718595220253322898217465045911136236216521420798212652383161661251132689259798255198392379747749408075706293571708118431476076167026449103346705998542623471543808601639768611959814246696738369105291808886606355184772421372582026302343724637825011658408815534486841318041929249855653549713723118667644483904342108846351909150896103513565123084196957780861499467563990757287033141394884036170592478439837334302792653325083614940441409846332265451392126968229810613799194352830022113566097951938434292222154319225937877849899327657303178061371038833170075326928118397289276575614045511039594894741111558121545103502669987290013712226575725940245101911441734034173980661625588713583290717361239612904358668280881038937842849362948963684143683201827342594235412842449205570315730487904022747676308865389135348401880723469410913686813314311896368680092550589159477684259438820662383138535628714694318029786744591425207163909463779479141436142220096349724594777929901127947647769840532433749447549879202709837235661344177321970877269790284051652029974823687780789554737608576307166951708425893916944503482901199596796881409953845740235280191190246342104148288040756706196618062680651880066304279693492681286046071669005259359963212171961031729835831182840198073830678758061209096841531410966297242011904801033565548638302922869157368224418618417346507694340830161353535442745655058873039957792689443987265425318806872221281114093256036771867481072047792845742816530212668073826485603871568024306922714521810313016932247272656858430366964887788888151493155142260742345593308971167540885888279241121555510394135895877160163835871035593540337677056526169996743979588624427213756563067860674258902864750295650846011280228852243149046439848435615483560387141795694498157039789831052857333114394986321590587420700973826190944421834863513295052860217630362667098487959383727923994170551638450782015664744025871069987643672030509653014230325151860353366847796172378203521210335435551125270413030630268692143094411937508631317859794715605824846176065570531382933915808364960000051979154856184656737957880079819071906938500021334056841708681655280156723271885403816508469981499037514204195510837163256661893430131604142995799302535236247209004296135003301652757932796853129531881861940248135299570524383134512774198154862750341848609022301005005131004475223032132419467678529609550217134530797114026605465516230623553555188736113993216347380948065901676489934793248329959676126664869546838493343075998737034876859831566141825098653459914079718159141788787635294013171784035205132647945147489984556289139532216775636785822908058056220600130244391569346811690467510813981298740703980924652002984385411804856623282539608951996969061945202660440068702926573402095035963671201492747428232144324453003002397010205083643879459616422235988194515649128551222646630041116216156518681480969470086725215824728960780272633657599666672541956698746438988159442434612152786149099694652775745369319796706381725060474508187963478921660518011172867873638099585078796697271751714152879112487555748554669541701683644532706464158013357576152320225176622501978186537051034260090565288526634911156753752979740637599962279598647850123046823184275255299973058184121507646468311010161211634544324476999691408589708661070287306996049653058942622758717553710557076736232383514620327079780245877224432632394151761792860272983150873578324890815902641283953242942312643630190393704173878900032162696081968697047698167964097197837562827753529439014628179959881526123491081228711065803355654641912508409867586186755514329580484328486012796028522616587344118450797550076383265813413268538394400061820018965492734313769321750253036890719894446500307463627543945677933451138116245427313886646031825350995144025801153816020678727394325237802855349571022252327084210019798351841890578757803176560252663608793798043999094090521272613170601871985019726175981064428587381422953241316940278359013374007581790350419377194718622827020065439599812198229644280664741554348583722273072577726914628484375464112488800724206177920357720172439398762397302237570354898714321438377594732831008063139415214682845789436871520039384215439343531222746735964625746570933442505704331701611238530550100874245841756681304391096353192232918069940375619904827028441586763991956211635551560716867965380446557815119492700083869854148119794173024955741495749948661983637259430717276887815081615159475606210614099292859104146553006428187354214077963411948623720761358618166117554716147153844408239086867709424314421325041596162911428467818020995317255125948617275872260881072823583047388618432439708880812550001489191063065479531197316614187419379115200192404084863965446856481090200942173384879715431148126886820404993531974882829171438748693202821225848907196771049353166851948206688784817888915489436824450238345865492983014431175504451412261030753909774465694511440677347183912172967673796109961872086930395432825145244963195596887162274968168273437379332181811594359142016976037132694978738598231883012486657070090457672692708496328759779002447601661399169437226171517828900220000027726246518943095165372472748185565604368109585558712769352032286531366364025343527650693156560873544219885609328060037306807477306823243661987740275240903227948698265520769915082880376993136900995033789144502274591979519785064995910202938189152329541143155267826437492226733404279902553357121757129365286933460680117910422925990160927327815746394132816740526650054922617473944007499504706740031762676614596507281720696208523796102300745732160270322204290445512935909139017220009063060572646151042823855989333263532504149900957055325606840399861334520751954358205435168170603204406245761836035814997468020396449350430697825282412717783261319058269713128678156301081929720815482977192993416419723793443565691106795328590067491370581209660752495605181953674559478773773433769906209632578074279691734234071103051878487267462395517805230717874485683136556457929914654915411776659305371734160997055964945184416218877133923887213150516191211029330779619507049329840705493284304170651687083975073758957488632487690723663481373092342306259426040869245864285190232870430016727005792997037646291909985277349341674054023495634424040604750045220763945385638552426023234355266376907003324782900290841801101257134123659034362536748971963370788494814705274892562029934329054588246745224884528651541324822671993415023014267414299605968581065305637840264088663498478204485195740152163307863279546180321523401370433861143746059143296861740696257054499613124813080037103982258981373073867661002190082568613997694077961364834113994810199702870061678684474927954869934421240107321079715913556515474908184095912626354326822463566387300891337199740593689345674573561572011659415126229495895272338488324808301347042544741282985125242716581743982212607648488147156941570190630529838880475096549194770247386440115079636115507760532242434858050166602889500001931847050222964047025555860674823797518120232358747829404259864358661469756461598154608506816509104259216254430890555966162010470384044513885623757488571012545195575148655998756770579447982748310706018766206850347279481486513086882051393125468415374238340780936572671407460182746002421495739218989833672670303055716912936802420752123146747968414368710048185349013573077206396473123894304545492229949882920243686981457634887650476063487707251955187113944055228927210197951760602729216208671218659366191057756866214672246182119830803666047488913457021850771945041445718423534083512271221297006445408064793550711754267155620453816876586468075673927244609251869571844058590393624299722482824573177739652548594778198925731408899931045209980295174882344150829429213178087725841152007852866768213713216968242364790392077286703508509672469621663784172869127632622028533868913221876323658477138934949435788826283942489524800303868183738200387606868935278841632416913877923398944131629644723125768074761015653786765117152642168655139950191402417054418616920362726283116258553636290278879461873644239279344393365093890055422153605811969989410065248169209093721852009977289416812237106236759099153033052697626928856966322639580431075849329659123889438177196666392761238679054127240805855849378085699745467795654395089215147428437519905124835193512199031877951748946316730106853369003158687768169824980589479884263395410270321824985219265779754610129491059351668952275930996112400136459655221635406267395355638880313549561099134607995417620108688749306926160720238698334018385665842504745254257883409712816787748854858906666656330801535714106037234223324173339812088514428073112577004420574844092035200919879032998294650050735549478776769652855728473830614366321260432946677244451775462181273642404314523120141005187374914224082477597901605592309319384260193776580173605892286188223975364573084474026488005183010962790843028798006572982276219255452294705836787230577394332434492188845873720864901306994408638211665521161870268811240306892862023791458862553681501134236340721753922611766878718429017463115811704797374693002086321834369772717075567012162730908792204694012276056113916259792459655820467160380983216942206768855011160362187641630222195779370792293457467593113831179518536084653087496962557517836514637037940324248776716163009668562977029332250451190352738256686166374501694741908624106357306484291795775137240556466935961830099107116649479716298969609764490565706887338351225037248279692524105871649131878328263537145276308087125855856789622106581744587473252397172187824881415653276016364303692010109795311908752186331186187871451608912686205734481751959758785498150731317956931690809824187275970583942176806163726806532357596756369309038155828681338206308230079678805863421266025768391432717956926388593962235472898004201412885200299488959831356514427721480634402844793474983683950254238146644574482220414652870444583132299619944821798113645576818015129973116676383931594432258023493955623321040015051059008770235985289141780001341167208007994159559002768021743116949502190393321570127270863940009266900524410182991571251313907913653007016518348867370682740108499509482101213127465026905383883884214877796714670808979093676023971563295914046118061086994576919625976893426583073019043497422292396943397471682206854791103950871754631403335165643297939583289566718570179060907459031584319370979991510679469268902981636732084214375497795410742630290518634707314347295877419183427260692868306300994199511549493994708192908693020246058272147323145809575579720419508646682770224319180757513556921712751292798837369627528519412046109506023431795258775534823761046661307372394556891051574733093201267141056608744529266723903539237881474526214475971265276919676239055848243922382522060560460258033108664678219558680687864321652479564098504144465643495016028232762161439611908099111182594904056505231971137841527490757883506391930434645634341936222982107610849460214934369965266546425422935305308620011401901365732850757177226116386672454268116093358935418126565351053164390976080012685190600983706120519090898010012320679929812899040525487485161685064676278789645955516061041740188328427834064289678969739924293604306025805515469460810068587737338522085671106148845957415815911843794371491523913751844278055729226959537818409771743078054437153909685100518535405032090317866929368820199343387254714017541123915669769385627963150480805382170911031138496249991604681405884969704749712215410375916271180991804621237336372912090744226133825016255845301434354690846345772008922956791147184724862207048669295947073833712191273150535809197745788732730710319467873703533848153623109970951020354654348969624558422356125197430379253985104972811970605047578790380991732327748497845442080037795260581660717199303800778095737213606901805186226514479596149974493779418558529225153146250615976711990417310166296041659324976123111940737998416538005965967605679511529119394767096552807107762051862238910333271146989121916584442731390096673395478766113218253200310583174851335417832934746534760803960055205781041464617293081772605831605772955118089945827008309834265646277594271523757918103133858955091828674808658079883837078807398864429290598032485491536481711026057542058243736805379670254521099956039357357034845266436071516905557204182819798642644197079303539932410891262609641442374116625622682900186407728662266956032678936879616929305812117590437078110037875040194356632741484639964060856367390156657570448257983128691313409451011546414492221297903996111983214335449848463657175699876271200617200703550054208108549275619944769385444724070836066540604146134019858922266293516282854552339309040089345284186917521275443160986006909090928146980107152813990160847764001643803315918313837000193764277159739286098263387615389882595086405945263305391970101706226579194417309845936686675107988527706740745514864960790897930456000937169626928280824903674198468950205162499840492597218590016520237627920532816608188919919636044555907050671366684763582376889817212036131100183632735782738643798468785169942410591502712012102652189162330139289165620555650566169365426885942366748129049959690823464880119259918504436264549140260284879088164915440318711833496300820914240998988033581386607317060528510621476560198737126159906276625105517257217828204703231870807655101038204370641306473827638571182747737946994351915535476680514039624182058498690770517578044827520690846120337196481279059900809714523225404240541846039051483996306016644269862038831891087506710432897209645168737504293047570405606910946371643380146912557110090734886123848333866734098967665132373922757620333221841881937723676482742797811545370684939814214748992046061353235078361855157941100038200989530475065842427224136183787166568196956328399851202465471869293391952966506278741302217452535083825796158116099806553897320904956244815468966138012557414644127034663158905525489386778008498512798806125293342852378345231043838426966800261254472249926388201098743012567965528825391837906486575282935383869497067403446350373751328145401718653714700042568390855366892923192282686256437185780538358758771014406763781701469115709276139642903864745394304438020985242171019942397326283369463834284633713268894594083051085292890444031735344541626119231727525505615728339600463408415323733708542391926698728163403361309743110264425994057464691365761663248659031145125767397492050410690184215990764853758277488218731441515506248060537246910808561888229534514117651827635136924113980206491830926454256396788736141502812637010772080234445298837215398725846953003148086630131794092997524193220600153534964971652704981359305765448135102027863856286001638937516943095147445397657350941586972468820449898684261218569186092762597507868250241487119667467066919414859500927661397853429885314129990391430887164884164330383674915009937131604600249843991003214293532907027675852864028319673595015813005714200928865429372653482764962631602104970749306017930988999091336019258843797097770824403937382959528517011336030840513117057707483330928326290999958526717548700997071259406829584660158850816908032687652145662621313897578046575269762852105725308206606844969250379164009758884907143321269753283098959750218498898376929277245117828243316552561604275411346747194150322100169122004773012537892136411351120248409937806277187629739110673470935419903377643129198882363267333780268283926539795621205234255599596616847269480823849239451762911615545891786256842781950522593089630510383552416897044190164428533407535687606734174595606236377378469070568794297485715590738527550200354590956011389621475785770560333144805553043689727125080280401320862588527710861251258619695452305487964295616572304786939640874979685404044250860503975899254854188112435819173676046564657420549017761908466546781053465320970895706449038355689979144699611436671122514124824071444448676599703401582800050675513024913687479519493776347648072212361385763525675353753766303537790563237645942138283553973277575898443815575528120792016713752150799348591828279954492025453502650080588396795059830112289670422153550714798828956286510370626935204791725944250784958461628439507824226488999975034295547920326283432760667353098225821369897277143696075713056787620226627147025984134305364895571597038830178437311286442763277621142494463209574765658964794781805029972066882267463013821076274163450782887101613006325501070488847347200917258018250691700944150176866055556228967080569251613363346689180225006317428739091979261494876322377630777826914318389565065299566413302430038674350797563728428859357756866288396140859200717961290330643574030316345142172501719689013968354736137724534736967798037575236130354238647776257810229404616123284224020986308104788191365663619215990737662809709485320749105021856840709764210185893238201990798907484723962576377843843675525614091340721574160676914470168930803465479673707455939518975157077639135346909039400280318775265520092814708158930880553436359361544361707511022174292833324792248687421736486681606068690398369221136616844198842879348490527600622408546365476276564228952300157783359227096596479411633787190786699820181112905155864894614374911324687963112955026312088189894062291050200312594841687466721540893912594040913933201572763712073111425812698476108627875961110902879589140281523468865511598255766336682598149226561345948124961904352023037598286434130854338779568019958881035384693445591006072021772373445507991257865029928574604409921200713692598441924015960079963942559144414463902839616406817469857386584790986432158361850880628066010464153314672778058170378700347593185123929119132390371383279613119799542030223709410573507490430559822964872530118391467497292813183455505098609763206282807898378545551507357251802983459735418000929731166164195859376793503792807304839860283981810408849211914180961891452483211309847353966096007835538847968886527925709733523117233568658852003114921328814735424991644904122325527211856216891176625431543165452097111186873093516027514050017449132997208226066009104986488284417923305327712583628213505829684676067915977659850639930657190271991602174291219079698198522521408381551137839107687532795278263859845638143343269461838144616619339795014411554064616274349923512205933066883992619698537626267915072571341417778856377656189479072343415757830204138019952048156064795895981277207175097201349568246529659653320698982997873948904715884265393826055605225162650648007311256453939462926716714575479841793916182061787866804515086474652713462685336356523350648552741451750837355658285264932978370121921786486320681310933537160199244048596362463369836057748678426677345884066993687985935878043500142537276111084827844963270695461557845167507300112491415709154030056836845595622644941130327624292419303947827795246297894605976510488478276634937330234121656109739268238069067886702329449726900883105205315738696942234144192296292347731190488855047205098373513004394157113204927268955581744060919927035813915526342971036214486323027695847767541958097527435173503715709228191956513020033838853137142670911888511322723974640892674781676772372799181503175314354663728918844964506757707349465477566627275464277185938228206687668297310965171575658555231102098466679975914085994767607259304605295418369397561574413940883848095043087785745747630100865747699292025647164766558405555812674497970163069319991119125370013949838898335681646066594343562310529428597667470747978834214834487934745760527136903190691203927575904047406031638444201333929901390809948755525579440000158180391638513095724740928100893792247132154518943524077458155908831458525412765891417621663833679639963940971868997300547729651201066312049801782104219295669399758858419946643337586421115357068232401855353808453031019851599843801633314588431165719031841065069735456807184746180397240681504637661475497534387830755028607951759785481762533895409569285707660981387742036918345010773078193361017354015439110609704103821972193312780820796533336069538862000513473124708464468998301006184986816016969181795379241473865027591494186735557109603452675796487974365449242085947318033388358750988662611907270832514112635060999101224141672164164481227236038294026173415701528519425463974853479625465974010853119344476012757788610565753280198378499196597124516134869194348171245158352135149502336203450994278508812761270768434522775047258534707615905032503841560015143013421285714381385093981632282950078180716969757741858430554730646575724746658015837940539849418287025744634247513392164610744692218757252431178243066393848139674789260930698416619758076383011963662845358201372746036633971225016049849434137786877213364121564970925668608106997362896590283026473488451554852967523898344094103536968271275098703115149227034928301664381588436031437123006695501054540431245480487529202984185575113689839009103324211586052971401032141539614258314042783542057058808387218044042640341343174921616722558426952015906988737152085915674159586534613121401170113358254781381876374121678612772056621761064885901069961490484696770557900068973776511684484157190132814717475994310275387520305442261940861679989598097105327709861037644900971663200130123166720770093497950264395186388721573870428170306912588528184716561425805322570381841430203218686891430747123522222801403642210792433381207807127600231419088166273210652529965375408788063141902934473591737433770165089595050087017833290443454984682298116742870882710287650704451714196605186713942175676179403840218093726634934930112690177002013130337624958990678297301872993286906000369385066717537132207423301889960684926934296300474197772243887796030089454351744714959452409762962675759288628317127100318603436187914471354996175565591491878368637702880720647799655359447728749774512363615742828745665259605201436631528623543768806624064980095899598115518365307696394618332050294837729526219278455666595213783200914048681487578421328220221036810634891024505953556361298948184796934130275820179770441609813446691494348502931685014174558573402861035992878487556761878716816627245035477298616068195296810600837481049843029841311526177181520832920221359310863362329439864063333343026198260476585743041208508158363402494400466893734537805883971275775752401918801870437210800594294774153853676727854472737238352258439370768835162313089415988039214828394198693177516567069450100478565305833589601852048397488920148429007873673019661891877745467340792292011908960887585277982526073649698596179467421325450242092009755397379765307962419853176829165678777777240069914669849070176959075576586474300358750780184819992603974297686389197903868071448118771239866953153751399818225006209991447829681231520323708641409767877526707324577856065863994494673713970500090085573067675536813388078893691437898184956047797133790635519798156432170528581338024512027069088896904288935077782871755493532074136722336811894593684743881602275278976711440296496193301924825286256938115836351928768785629003103559086609972135550664813882129588584467005888482739460338664879015409814887357229513094472278021546044867755284147305409894184770113099581488991562842518545961943103173993300126158114660951535085613082959166020992949638599989240822915698771740404342699520821294327200931369387994807240665396483700379178813840450747330564478196861397499171088279330605267299987282137798189748961981945065008525626321754650200575729588665618920767515840204465627167468877632812802337317188683319856966117087165858855248274710084936502577909813540537504392353388847584667672289828115962875426581576561760828740548977302266138369339317134259760575803771813785661559262001117796411958733374280818337742445495159899857089277059214214769610352701243318538074771254668127355270504605706560374185871407656546517947032085652177412993602813763458975588076119273061566227261493925187633445802429093516459254631682127603867766067486053172041837282831206256276301375883045673597758907634788898050460245240735673718434900250226779745648088858263834071078045228190103029895241755851751342141064233785145306669786221449729071169014397308161195816681590238985950461914070034108744662516374794959062407073236085731536106187809577465590778993387988186936156767033701514882211075873901951639461266126627735749867453797444958311123404327579116386264030689051572364010512458456244808400593948166076569552561400823832251016805788678116509761427614039953624221685851897516119987392870015910860420855031333578600273707862094116750914423767682242553312489562540346307182894815195654137405355411719808772393209084397781660303790657765959787034631335532287375545350315187728585272780997469801863831100756118553419758306730039902153278802446670809440354278111183820015062122713919268323554291777167468886475130434975581491138203407777633064762950512798075920641498442491613814731132468308104263012592556169464293663981687699129260307160845468149528443444483640649149927694693152672661846676135785829264558901436658425012431948950984802249047819331186516531120844237957742583664264364230513340127439379889418136233423311786670305613109506923161867114086834994311349185905960196027905812207808682887711395749571153742665105128370719831045624221087802864280246037696366609675425552176410657420808069404469431094149740600716127400841311788407649959358539835825287750428074709552750500588784377124259631299055523407073719532072729997089096929139432787949609109763079274186315601519274805212960815457217302013041349285102008805768342977414628329631770055026718946919039877892142701624641903947520314931763933144848490108444177697080931531337204016086752561645096034253283332802220095909487575208827960513590199694020029864345206032688143677881204317139408717192987186332190526477441688088761881316655360546328949785248670902890988072593433286774679612812961060894644325399942432431412252729800768060642297977256355694406840917030551501967351911257316737481348938709058050458105934602030965437071694670254021481890029844869484358389471060076229602204617942161766432255170017268615082603441163976756316349735353120914349079029482432214177131857314019123837576086121989689578703495246269865955297057356439765772466094063027917067713337677231597845285150650415220938396318066704135986633916175157629279799662604960678131705736864745890043576902456995435090473792054311892435309718885498011681249671212937237568438069367227521902569481725821904727697140477575856605317125406467242147806869181758556685635581074647061177365803296034427952425087063974764184834073197794931905945522001117285502059253931799324918094367544213725379536246946552872876692239478624036501693526979388745260794394066305499753782719358776857383144701579933784008847714176371626019921470552676341819132807826562665474845091263648334865991929040933821476108484686156515420534869526048999586904373747396719003322329481545178989253858029043944423157348710055745332570727859460525426549298758667090619675216552162675474001161973893752233772798653136312809726161676900099706259729983182468686974984942864816297935219405119887309190290044549757322178473393267614057855026520802399747554183124818791716681344197109052038884877936361569071450983721103260224842938930722919063505294841979015776071711759433427587810390826723242320452724414335311851353087818335703226428214883705593525709419907088878868365723197469190460420705889774675168366374550601485484362432943490863853924889163667034095658164799785606320290337750925623554397963781196925682813573145427995949258225405738801271600245321700066668005835674100644131432375248063790128355520611677689653980872624013119467853107693483121577026290977982734918909917584697539501511316123646775578468852243378332469560956742021078977959036838948918363504098994532434433152120739007919851735875122821270246898275204009228801570464207772602318498630217782568008268034955352551112606566628715454637963403442084757301897317827782292354234043375590832097110752409018841256829679698919238730090310608787241164921679249597036036779022641380526698713597303545352371820169756751656725404999825285520542195290167776111263197196158071063430016844044236839954179122807144386268093490468167712790051838185547484960556497824239881545228147726847437160436871596480894952727153621335028986102530153970726044124207420084219786554244054758418200980163528736825651045044788523626767107773196965364325573977263718934492059365203929817654654667011503391315024143483238407265612810118486724183472929328805129086840251978046059202440944934731403120838718099222398677375408955554921847573767338095679778866930295809787142044635464938520139380681000573835714006986442333346555465563701013091388412119571676067965650953435935032696083280695050166792152355330304521732825407246840023623115252083026531828818154366091334690941801730540609988976907405991773595460992028228049219734805938953255652461750388211058546939467194481857941863422123208094834756689205592076481822792546986895954902181084151432947688512102462011181541014873826545121274595242337397599550844842604824415875329820733775255115234224991040078658730106260750307485937893823940361546998372038416154935617669002233498040861972170677803292337060153755432792267085985118748390701458059291531588173092688448267192723857648500134934985056400184949071304408476519091383260860612497376635151609619700477867171534824297520928137260398150617823388881962160722584618002188213755148434162041663899735917949912536664872557953104688634657509698617758632163816059291863874984071840223979356556596400934464014692392489901447113145448975428488307518010435816491426077853527426571228038209480708156061086923239312872555116920074649185909765890794501038624711779560841517285159069467685828172027237193442904122304911665488814972776927806891340805049923009766092851706323196036460818887435354869425498830810621230223599427744831886013071647841725891093284435584861010386594842661517914807441386964174300911247259102989314379406062343149512763379624608790087470035543411259613947852007743036341774049959808363347764951476938661650468725790756370167188403502667510896816942152097569273742334648493390636715594547498305867756818367505409134409521604965045278723206365011080816321570872489810816318924203002849653766688491569243032395484214894213580656646204020377306731932601912899509200468549536097688931358835863670024574129340483781453575703380881289949468228916081124338667552337141338165028600615018816729278573269304470916425873382321214537478881141905408259669745821355960221854638735661928346907689800992178874979290604236836081748307897096527019750999374297229842863977253291261538389492254881171546233355154677239549545171965618908976970022409404420670951288601047579432029893715932753721757504079054043401095792122419146410258917963788515047483787929782529470354692266200595179404416857012792878844457199157519235898805792214475137400506856024490821790544837932771144957950910652509839023837987866869469774034650090351614395818499434628550111537203849566805334364200842487127708028091624463820254567513131918802225429361929149786486774251242145327490129909210319275804867269617645578172192416047349389696456875625287625255046441169188052220739890291471043088738525497710493715557041100390251737603673788155774785557737514513883158307283720517211086621949013276619412788049041711600562662724437907318366208514527577098920348832194387363004216749429628326028452714778953655058205648574589483845590931447266876227225594712765573243892202265694186906963350576745163535739524907619428263926882455213129421302068864818352639161180392031993904954309397631808405996604531820402686485719904053651983915827351234031760872791642562323371873676095748415450620494073261052258465758261389687638104216062231908148354097735525015429315791281376582352633389701286733755375875571072631605347386402815981595235699336926410039609229007106940585969749059422062865011903840352832625990255085429622283125138192611977099530620713788612844416455484848431611777152153292801983741423760181301686821974487520123052887127287655280648553376468245941395795833583257327051623837170055682804153092110768607856163937573893946959744636763773651712991558038932595029216693296858617927138098596219870381380420198824279032206134245980389100759100567681949505555063513303175867559481382101045772688867306027573113855710956124016648788453275994376372243635547266181139969174403682296836705311193106360180780445632672572735013121165241246975672655537020632675492345161358279116140930589653333466774221512840090291321375655916264814620894180401639759153038775049518727915300548284899261008777926420657510962066434211356775001075137597957350536120001032189028341820140971470220442100864629628376269008375720254892893860563804959127178086631351113646195572017342475074469529748370230798211101804598339131585435799243075570222905764997945838154384367014453052745540360826603320587143977299212332073462209801442651456099609019247066738972404967172570647532677308493125533301077731449644707002969371778083996750640897430247467274199927914784331442500233604397273266920084066892587821194028013706963626038358315947319393664588206318258349347743367929638783602190289765834837098647302937964787415556105771528574309211438913279590823403024284401580320046676452971953975032315259826803104790868222042998958939335714861646369477389483578968213324251507996966690709163715225362900016243775994431054787642648597953631490430621300333073302688323315117002411295378504535376039580959413992953045026684307225942760003113790121853034343544662809762065849152228437736220728507977402171330202378805379420488034684106487587371716372493532625870234510691353569315267189444383985945485663625162081887777297813208691880872821173177709085028649937960437664462508645331294844916895638937846452824193545518270242006566684967812798475883646865227563451628406352216082570979257791727722660960829086145816411712352682440522023012309223956841564861206005512374139416238430562576874482714926853666510444238395960836690705891783261067603006778136168964227356994418449552921097706120936523493306040332195320117576588360773038724622787172892311150951889632215824047441671056343582205143754504995544968458707957266673683225568313400188452851017222406839896580336086213987132134594835424964268171322129864762964976712738220211246451343331679313547363727608489247211218862292565649959090402430250673514180932737168441120526109659683972646587164684670105576626919117571738074783677126507160570901937916070935295196541565731784242991561180832902829172189126809899811518631873137949238950763204754379879904268648960466795625378664142564561615078504496042354881116960108207028173909273568510201497096296004030207647570659556088908173062829434341010046209499469275639854356551678449544898690682021030355737568946964048315410938822695449739552069423051726897825424248255494982344717151972223361752412513610708684614459676495935568527593064109444645546993755462296197756691469486796380134821446921556155807130126680184375687067280166278604910727966701729073577517089824007692296541659051643016042420565129407755566250973402834611553504688218267187600156062748783389290709655132101149813523141638144557678849630761937107103602047237537230171553834559245494329577202954273996456025350271851370314576682756624042412753468571461381673605219583305122034241372044428048511047119980524316697125748240143442840272808815371626207663749170749240156579561893558120112054148245552476899480688082219917266836333056471795976466494481274730236914082796916753702523958027369736177260469560532329184869355817759979173108028630570284590485013389612660024241592484697949895169863788347751771034370043692013957886414045308080229292292286146616527326649090944825657733294182099909350689041280246020009487713301733795269841290347515571969203094328069664708351436757593832767380670796201545664225419485254290916250731986087909617878745937491693914595884146422085613708972830536527788055876726804780085182731283947103141248246166821316827823865607109328630246807420484950435872233995002017403196150551256704537987062395373885888626828221400116751079733200163179523168972953047694307936928591028141989557374015291979359626306620285481954588961831602802816514915174517985145643980294888818043851822592794230457844698793172575568375612076724708296248888099553494295310210268881820371818755170371275550328730691148733192084389343775042935337414465912930453862700884856469357377947191832914944279195671612127655425621139481288292457656098222258586366487535031305845594135870943981833377925437664019818292478325432212164665533710960376903371210371818663521471355559596033074971841325183041446377503618942483983188619672202343250777874050307184033793264220235475575216987356945441706901733205067423053959068207025452448450286618854183272123064198286785792673641056922491909562223363449344422010631919940673962658466491368384444247305529623162134652376394559485164915520248932740429253111030990140924243110057698881283067402806814681941706496067203488943079869430605739159705120735607201084696911511141188767321905173482089949888928644677039479165673729540431743226955611901816247546655998399536405022918888961218102636504268016044181541873918034071869997124912280544599361421296254106434680071388023051584652196235516220446735940092060636262864373481415860769846850626011558235369352888459620142434764253925937846166494683063489251540133558463701980792743886690497537414683107539719994264053732145916900105458553072635291403842104158972441334967303308424722637514082438102859060626486078643658227170728298323522697387231694697497063991829191311532113931080940061614853165186179038060759745439872255159339798140486701980063646668308138417639824760904825424938568932299008003738113549093355225338416044448055792936516723660287620114232304946132835016503341661641884630885265000800926252971161711933483420808984601015663870266926829581465120812660648739447784868653699147000550624113867746381145797767141434060921121030045941387421672495020988957419772646978949591885857999508523580981140337586745811536575257525731394164513286682587732820500056603476797314510042426564340098718117955847377110410082996091111256935355255794244959104855282105538864130064947364844487751104073943701247641445101386690753602883567438085390986151845424658447795643470245079818500414256807403938296716807297908018488109108004019840833085371273373047627740292010698910811035495981546473238134706415818779678964184097198399096092709276510711047703388980623624086850942370373000356990967425347118015840394310844026809293225199280342108494493227391033496283368990750481413144003656437850975435384869485137941733937572947066960554307146400771716896152526683884803186912982198188319390032128464804961478668109631043391355239771233422121340915983097471216791420955973701307534408602176791682194268101609335028164741240666596029635351237149153565368641154952373151181326740370800230701768150546690161173956349940118846827460330711872900989813786465147400081888094550981504073277560060073963597400584195952981643520481895157982020712702364050086473047803858694035548768198689912225298482378055338680552204182771222194754886029005231375801351552264769950398504797476250971992729549634049064949034670682704589469702307301130686873366420372195673820084250001023017071811765705430729829533535739847020780000104238873666747088418016332099532755608668136187775506851531971243272851033323976130778175052689972200061245749235356201514245553574973766645745305737655931638863780110612113610378223512224990011882233525989470548894105182867284610437981162498767534378501602491450423531689381122351794073716643064598056682271016858183991083587667498909710313477788775466778291788417139652048760610128951263057655637085880572449626952056900551720105323715869650376422186614690492335260251632961095510558672921819643657508135355230724064066109000706120760210207279763207679982955732219122201177276470365121372915907169609020136414523177357261302717932256592907662042516392606965962067530589272551198597320423368485476255917532371493335789050009426406066357683334373261664587731300001174075624183535862882011587362533940740545451822196250449945643441174272604381680690591323261246468222554346811975966827543368818334486090075723329874863492984350555545973394652716571954793958662810935052309996404658167617981032081134860715501892899937824608001911863619022677672391377467855969442520582212980324796485246101227003763346699305382287890230998929961278081951622280901065929980170098809968496544481825954743429671116627968238162960659397016705005536750918306443218800852562714832196567238245391211320245391492211649583914581649479808622059316427378487002239676490504435373145658043194940225903979541832928446581198096381201953060297132341995561897874936964724367693671872884841739216426848433574646164622219861356777321811189745551553288635474637329077685929297567753819605284360594981327474503105816683086421772790543145199917178038865213119043884767012600834220089430625805409820596351173744855117178484854648737267048364032218021414583191609783554125640953982471749417076331132458060564508237581895307403226426177507769618154109519797539855941899560439258613975949315079554426142358810919261091138712919208665590519368866776559768702527527705520981255894472337676453885322674738631676705765483948710324592314480899957466463386568805590518550174145309527911013075673336406135850063551003529803430979930464545123635935034428344516647038653741556893147909585579634178680062088970134898971600352249785617374155945981863132742431536175694717792185651169221171712837041122502868658247222927913002372522295632527806299041279337984438324789863220558656699123522956467030785500668623971443201135908723420867261596496669144821805378885101229732811490528639162225933054270879077199697637045695506756668023558523009016742482707294448920310867125663602149180204178787113702627640437732481268779885275553952101978091661003426294877365616784223096341524595719076511469675463173550168135052571371862880754716047588772332203280287793156071141705891175337949159960679770693970630867313074560217546275793769236253015500823941447127453100510138320901794328149004771619822969475757888895531529143144216505395032092429572385831812556937465104112977710363699806894086693345156375493786164581686141503883000429042396145989605835427723051079694020889475512444602917716197108073621736474165546183358732601986741622427134206406094854090864031781361916347385267284668102813169881932060892854955395833592447130907616577487592994339718042682998394639211767773534544974151826252029476751933720747335233867949120614494412085730945540660617235832693637479856778095339152381991766006461208427756632792923130932176561777709551453018717391582652124816972902952748667566095378749181233049670971067362798542092512777860326162018120612699972991843324594624793102324194737161058263107833480219577853882350561123822719393269313414931799203907001894672521463020533996562085134626025802462110216325163580843946690689763164586535236842054692819065149036733490555018612693449059521648437398534967662492846118167524775605832986532011958659563373755933646369235995535049982558128569179954525866395678436113664748517701354867266449689975261148389650720148308522867172393466688871830599586509034977460384905358857192811360419546840128723579630949928163881038285891867397982659713595490301638563279574244239678128703225912805806134548738425620859821333777358213476317874688559161734927503894770187028235486898823579866505311081517706519458901668611711964995915345248629565258838537134961744636151351387140355250586283841064776484027226720579398982492457760655042592942884390557940603653793223137740764015576904320913015555296933685979796312725339626592173178557547469097535910031958741745699506726864057153192879976273647877302194014499749015206758992281468678710271904731473725258633368182218825335676368189518110779090560885660398358445444812373306887988359201710658432521435643617014683605580177704123094168534216909686707241412267925154970455250265451052319974434031003818360718666632266084873324197216096610586918205805950185788228928680217217090978173606533291743128427422115877935882675950686248458373214314764202418608508099384702314056748399560604046991015954719063456001091057598817320217876846539127747096674795775043062657696296520342019715146209737490212354474022142096796977591434208134200234933779827368700927988185087686333721917347134065822257734492970319273430050828410043388762468212743295868948882616250176366634132296686827968409445201081405042252688440684902464036047712252741192350529117778411411017560350524473517619383437327709876971337277756688115337802182621949678539549565042702044767467888814261133900443231936217771634863363333192136830108314752740627737835196487544924844462261441828019809819514552666585198806317727171791285379172303439160947078406725980051095782983345909741496210781520136655573420196195829862183115326789115149735752605273911775130697353266766790088773164668540725190965084939667323379328588179241378472111351756733716238338779889482006058444384303185046984046667517763337137040077612678481882543316554132137215985268927760829084121193864318704309822754620708022920524092732828563630322189699876907120865359336335741141161707185936625201437322446363168007920088591917376050318689895779118019876430631095513444933743707383641315464699826432611124490958748327808332699521733116650606893490825303638169049986312833407739390946395885935654728688684369294461780512840712602716424965146191568996059715532111373888597527886686165875089198239164468862295138333195652679638594430510397530018834782916258613184707001971935012427919329644521262308696075430796813970124864126471957664228267714522250029163320200461670475436923308564136455844678552006233406876719618183143083307780139217305558508722118845339119805233844481771659615972257921711042453177448620811038021671602034698403024783792965964674889578904354002421698710766756913421634772339573501255220678830776158513390964815627452100990902011108875037070351403678927684341136896874780032310002409134597789480801691993347276228677915695321544460435864501329788495450620683747897018808008393243942215021006485940890848985877206922123271643644710721650996776407409112307663058297255909638331670131709097152966541369051187779465710654943494986568516708761713456167091264965824185859832570980883902692542795260790605639578164701474483872991817402867800564986873552874660284760192394872095657218086300155950157412155275670098229883401453479925028103976146527385137047040168538940468790462215858192060210380094094301686584929610403392029743485771702146042438790090455528084966076403319798457167069110750867372902349377727966425637466357498281062175891005215268077686996862869048595781458476218282019438877776668036897988577132356635336532416083048990686135599824491054044130323589397988996320370309149539622899792109240088082072124609177040415799869517320307231769708274254346518944911759220996239636531034637574113735737612789534782622682053781870237079223056342410597967426047227314423278685966670277487623733133170187169080661205838966340069620720178437873877358864108891177935693913338833938442098886464727727905924447955572770973478865039514044592738327148057030518984863069675168844218836667875941563410111327419212556141639910146386604665454092961370276819807642343591133794565948815695112100623903696825965286829233001489625243591604443536722289063264501941655298282078368501226273178428329589911922181818843326646589287679097461105256007577498049102222161380977972100670367989521594551263899878378569723817969080349741905692629411218584368832555029774805427816868995229905174765993662503435622907309521154597053134949692098089931139362936987610655433418737014419134198524164886559322202274435432219387630708972216315961790673568417710480979074670575195087321537754491487205901081469953839704697516458002505661264094066175175237575420646018123992883940169335520281281813381556240606051018590118444701375642987362026828984855282937696065773390788042114878116030481926118144508863201774804299199208369232424563954119518770676315089965016449869904350568620779614618210147038975976829861914996263369503794984985000918723889031520198107768514040311882585196249617400079174557599291120207980764691848268923751418281343553941047060838405724894434309997865765659940597485585595793014168238778958072032779261659518112704950919829233816599471398417408381509412979535980333915742151122180134630228975738676843740044528921801394447103767824438046327643231424193132317730180845810323954286984507114595799735722139065437136416699459597693459551713245186914223765669144929682326585227461415060292766144703114812330586398637202047972057270986458172499567419607822791626297451076528415262408247647153375957166289335155139711853683496184922692527034394607698543344316939781674271163698711289631859649159256431310654170842005156806506832416721460070589737650241120585315278965436205807761731984462064986727807075798023501440423677562744839371587506893833702039197024825189238742295961368826493305661689071167885210138060960833730316043249378410789914639854604198654799709833246903886707915199215117767012637827028549009341114307359102234604500160333027962887852403667949539694188780959841118218412929769141929558234931980279263574747829239999861324112750288244723828537537217604525627178740356229435531494379392604569342255469273467867019356166928324953349880255873747523414653459797542100603242966023611810315966757528195629863263778539342995677677522722234742874591598311382047418391619983081208551167276299717612578923727856601667602045584409118938414592989755331867950609297246743768279535154169849530551105195294404905479763474645784326175181808683582947310711693628370870230697272378611956369443952937399942758408116111302549328876878857834450121848143534884259032948961357661094496287478328119909516803272535371665094195598970854368088144999860106258229206706940853951864321043472025160278252408574213898893520665403435268234285212667971137387417752981449679414466329997583923267642713458650474303844486316051016215356817301960634417714295992186546254789522193974087708007935029194736204606106290190673325981644233061534045183421412549535404704163612551811871125084230263754049263188561342507337098286875584049467397998327499566187507572878091051922846773429161099525498602900816171213785049021805748951076647524989232547138409230797742792188278404611431070655294762989056736265016390180135022456865194051099650989859799269007976539904370613039215534019267496114621004402402346144311437241358303617453654216244505475894772628113830431255617884996014152329908531413554420236097652837398423940632326235772036397569806056247326735754829075866716666647317396293876573342802378067479591972514506065664246910608771832011406935621643321837609094995934701014803126560850775084490747485637133011812635381530526142834079634246028832647662454058396969398253813823308967236427594382061916096078784029498367446265815810111743717900734338661703671964390899743058731729510273837338054458798165094928395850412867171397599216482759965793601423779917443995694930094342859126414008754056410111581333641565664919757507713846790095754455310275257676394863030553910748550046302187837959117743328610194529076376678839678926602343098523542836979310043519460650562477764489871676896124598389265486223279056563622408997682189472291522683678522263165931493959414900552142536402293840370524606667740182743277205297013707230417155591644037984554060468118236653361946058283310577955858089162466359046632477624391467167355385297966871487420525100487711299615917808958390197190969541609436929168455579610605743124089149221870588039489250480992192423315291931079558318198897746423000785084414406515130117361392527397579679994519395770247713412655678658887089402029719917114848477907026798722639615259698481542992656389217745617221360507982985646118017761881696877476632383222294361083762782578518327337939170399805387709905078575222033256278053910257617297420796154636433339589732732001217587077795399404914410886219993853746423799488666563124442908188903878364923815237548973531594424784382938169643775842563974269983315050468307677862388402585693597030887284981070373272629030489964083226612594358284071883632083813294705851112919702851053859148020118933302199490839450156120101823217063419497124505551605247892298136544857488332958410482993990596246840377949594472721804967450781145799331966497488661526046206852242534500300515245388456321144506039933641124814707275002133439812412602677256644934886966283089015934087198965828672322023536504546576462878302735526525595397122952482901559614069992989696367930504276835040229078579743379182731076061627679285007473484627588126669538148408783650034722776401920537168149643849100240352279885768820988883432829573034304463869415699750941240656193510532041126103383565402757208953184916112774782926716805060525006342190095209785801835919085747669513256660727746235228458303047151583622185181714488919142931514986139770288164179917287022208335049050164457471509403243690586812266190610772058819574351657406013350642360757472241073468125878647486151317673032726166195803587397296347215886674668930130705242363318970076169823572381339649628942302931653137801537825768044720326858950183930562097084101851859044151832926471118907319124435490367126105575573242448482407117622630798372503859903664928714021655551069016728504171151936090070347867683343199064888033049893430972090976665028349002781593252735314262053864863087725826949088055249638462604410781604530076046526407568297223979232806896890086835032628953292036213950847237222012071601143518639530451446198447702334178572383914379959061781527599971444622355012561131041318876500062270282941981732072139257378499145511245320284231254071730954045291173345467608772125510916829970159160397459723133629045053227326803476001836275206397111858233333800853931595351510772590180480625961765779014012262303247936130770960449426551806654488355666514866213279791091626121583700472233617055361363335678624195841092940759135757030340899351199234470603320522779733005177588208457978523646469278173128700256968741749344101135064472700786120590987477308049339155572229365584847235806286772498540724187484908165994358337368512013887152284801181589504739521638657298074302577531388403808522258500445446744613367648406504737164770855234506122514563232381544356919899340739800297698113816517951366839322193040838824558086118141076439335063202721649963478090291744056467309365504080079196660164742287818317382062324412456166344798168580454536956057036193907043763478309976472797456497462786632138074308466613191768118946637119348580604590159673631491334060183444363221641691034496842945943386461296602275011553560186965249202563028862045972409667836958099911351544435983148721785613403893834535660663399678570821637131059244104656692775517606342639997984325749331107285404046378225546175830998955080677616713610673148758749531490385141683675702235189169775599470478500806165446428558717392080609026170519791346328113746485962062076901336269696972959740411621157605721819848823056410532060191476964941341883997300735994610162572323855582473201444371650545456465618235463091287550255333426107339133210252481745999893787796028164876547149303066609908604655828384064891641031538855069928721719399112462909784880356014299671765580805915718806243705934395919146219799675295724418547850099117489290806674367663242308622885554790021224873384343320684569421743805468772625202864070855137412554798112826289687613295689212986127023716687869446909504813440855540006036714543702468353925937801957741627952200710281651877944137074332370165207412121286569552963093247796420947827928752828535156532484729901100890531705478366159986415913379872697015825837810695425195348080733834201764888105609810084813979059329959057826231868798166269826703416341795491200647650924742128319917664732187471583330846150624954965308429406671567028374201883548276748527070064828266826117768950268284683268609201300242973318093043909160494987973286798922703695843528352098396907017804568212449167253942430577594459842757891971379484366295651109030932852962301426455400725095587016453958326628793188384092612250887304929184355293244627439356104101302953537972540743260291954164788529739642367165832202728647355502498879490691347748770978921689664956132403887161527642850681464066389548836792583540360453510697793102942166436587731883347187669342899888991303205761138613706525544286116940687229395259744675914165365726116204615829640545935625060568744629911501467682391112426623099659844944678088156168090207462627073187834363025372519366727463524550706358310772540552517218483164088069287732753475638678066009076665724735351869446452065113730792318653904136127179780420729858002779303208034880359345237533145530683454710987131119012464572549023553027400904661484307779590030027759826989075833892845223396385553684249991865294662776472441186744199348460605732457147667871169824494480798302006735792810064794956427379324569426437241190181277284712235326120153544118634993929565179813538451209414175198880867883934724766715225534446229679482425044329668323489477642289692628711330694741392887502343653557441048639896556135791212250005484449825478964657588014036765044623880224115647478428466744901056831624078702053797924418985906467931474564740378790956483482906220210683812671557193087020441805224626893343411582799773423188891700489928420612648439157795756276029659647025718553851585449594920846068346385785101898588556103608102343359900484711824703487856638522411662555975365514575260947325219118634706871299395631830332067033829421155671023893193070564556915527964691921597254397883523975650369337178478562152283327576765208873937749322749630268212943136345094706496395953733460685600532724270524997185607499593403461871259587536040994949948024293556085873675541160382958533839271830713967696528859025869880380458980350786760689264680275076554493323132590572937398076143113914498611940134370458682683925931582429777072134116201531776184186037363026223981588527277051146759332442877899287008625864073508193051781332515850469668066735897982227849006825271507105519902723524916600808584084523568099676756197745397830660112098218148870720041543729055737202503398689130295500919264367040723307053364900025685986907827837764054285927905223720126817133302722389013304601365766799903261472301072446451587748090024676058264200920420949482565459185552947822961053282520860419423849766119522925809826582856334638420897644253475547010327029218535480620798251696785113675372052615858127302821197508194464306922023511189082269070057885263329718715918563612494648150339261819160281938433708347778314190581907571762497129222247330827896531377247813946541512524012611452206412507393894386558108662839740988131090913002383164289253103650006115098764654699560437103887228197557624816276348457271412601702790373750945996810424994018338719052729956419071446406127514488439434693320613100814784636075672441425266914240715300710137953935688872950982330689860127155514671703673769791468855602611996510809277715185688551565565790615361120167857232731747163712342837784114593561177535606530315518395491379123485766811976990597390849612461915440163147588353464801641363780354172493878634201424514312314777410936053618833614771175279168901267307356655783399052020109148764494960611692182579911113679528123612912823741223724358743688062587097525244370290298949078105172214032642145276135963447503516324520729774016963485996252205200750193605199136218928162033063328043609963859894186280004782665517197201650829584355098390151295655413319440312582055139334534338805339504832085547078808050329124430502281829657417225217302605569529064774768506899371491611317579456335763800389896685032524585557978435756223122545600253186887733832931037776689655121417501781781944426624334720053080771240213545483528071423465489106788574667960611839805860381844038013057131312279627901726545216083666459114263766856959196262346816841979508366817747132432326346170918798337177469177137816259027068511021318078144222336060399171515368978902766154827309807684716783869029301100474564411110567334768838722859793792031785362583805314207667140479036751890742687982709979045834691581899297016110667689563507660766409722099278272566087414336916273213874825467657586606368791498003280351428398657829620829626149525219704357662563503072134111701841677295253525270341557931203496040020643739275743407094144814305244325773504463771198218439881798754771620878190047077742245840161499158565251956495886668931179090813212639272209309737900683447212454513237143568027398953861470195018774554038303981634436531197022509119892380191198186866255417688835459506424418038952207773567473881494874468565979983025607316543611726092370992737666268118683881050515218899195196643109826579493294022323304962174870831311569763490155940299077725863402862647956176656667978126948243435217896703864046033365150613988660188656612572347505191164411558894874167127281903467440915067768958704884533248778722920165165453347218770543138176894391619455181620282149189328953670161921466406812626473411702576401885138706367392846631885416212867977237013367295772631708936236149485400021458687176676919389698036058114935253003349543474258133057383167260084477744993193507498942572476947291674687657934544623595440020352671194665067506258558087475722469265203012386465951694280327923572858790869640469587898076991852852415964273906173799813681443486692907832499181446394915215453085183023160608541812073560969957593293137442163958314556362295066097834710891579680261720344836671981898871830837911612383364133239765848877038085777985480975857939242795733288393915668831109171422148847232788145795671496034356707441615622284199315644313296633554252429940795362844177090545547802056254197273119272527274242570704470110452184181541090065694120688381748390278660696919699146266087083584680569839209495276962193817933363873275322319987024052741748400323997923327584967318119337410326679542997251525379532175292592078149940813104493075218509293368630123475417379630014358126366360414728039238022227948645806768154654986510120861358448051434248321311214234780042956025498465909124768988116797602943012011640339565640395997730570303669145948101492842784486932908639656521677433781005910434072897155714356300856249882043132309576570676160195087578258042746293005609696020527412414690065183336936867012261527738045974024038420325066690904182336735835368164198259177202647175622168557740457328347729456122213837367072398760352368239178502232813677674279706435588230606712328960801958031990742426661584155459102777757423136455790581211372022028478884472094699435270801597068165565302114565249330227025360453311947750191397339191313690773729042151304926199883939406486579177491535354440861583079537115361119654011621455801903923059415676036346823417294611811253964436435774187783776528910409902647810363084862091536112343111367938301996146343763689616024965203954703209227099137707907133755248992786124585536560048663005400672727322545117418461229178643089497275240447836588781663618928748467023943292261802322662793093466364935024525353700293472561557911582346462481419167328959332128854453756567840896255183037819715262077191539042228017239622453304755284584196785173517104455128051122081298878619015333782546459357803405051689907032457562348345718515265521533883376307361597871574892771256505787925939638805194626011667566624002022045077932924883900134397847780700778655707274456005670430659053840158657593346287047586965447897735525522605379661291311914418447285517849215878346877922544976736953953236236870531313028087525461137688355325906076601202171425291469996378760894854704930374095979562644876253989461011392911939127689293882453450518016444658667559936084025540422989163026602343402312181444944966080412866125645406612864331793994837957722760226369554485373652420780285484494878080130457168277648239464074849134723361286103140447595726448281501205551006504968970179575528651453811561219288265172152122127105354684796834910273612321310221015793301144175623265273291038060488623210144862809258187386391877571144518938858120025785505913934579198344598179537025549923303924875956140425882442515885409588064315614278228497281581715731853256770967458238354743352353428350963564578648649084311854588398450341793390815389486655862710572305834355286626047993985293225204977310535333413367785836071354090096796325545071422030261091709712538034885342741093983623285064349426752128971525826868156463954971478994819122990756557041000971747732183443468520460094405799992243049983736496146245666439180522463500532262529994849743749379215571007657411978013714867380175531172229803022509171283677452950845671121170127093314598865813276439793776309883484937679877261901955307143896728952617686661887409119525210167952305015562682798671398293717123487797198019443276275463736284829318544144030851627493557986433500700333130836019706712376198508166631383789842758164888594130976767454097455368940075994459434937799994624178583229071148203287229185628908485698220280380749870558898126896360043166477907805828451661704187671863789347600637490524695334510123937730274694159932779679080971440107413501474384494188383733952517045711749481038044448281688183409087500292475249885453946366930285205538099857268002477536071532917829175130933057625579961495706915353045635874075908339072747948141567378372684292330426919905455731804444274895435978363303467316788950636593178047476104681211454726758055112830876916761123165509801961342966854565953828258512331674602361660494171864893681726138436377287945020798113772535379145070262000329312551717393193215911818265807384877340123817378697472108545596894884499029356570467128001696458764348376497327051545116749191907725372933408860975328151640667292800704466982628619220783384912959561178543144322996421747581815226979594697364091411431938146192957237496211796299752892866547426861030827929443958115127094542180621301207518109114637520387584558367486764217442726938312671073779613054095596454379292323705902581670214687245729750521408393217579133260952117967465475039499889693179785741982337771156241806154579811774298896853326724893603369361885613196833919879593952112408314866619181532641332649379312482560917738888094598652702388089412717885955307220558474254530095660119956842506009254107042744971998935969712835704066211535631241346849794152455722466840755018596343755053957925075944136374584685608558667885325064921155202858952473721629717851656239617496552872081568998431177613799364065240640172617258494888102898804699820384668516154568540720086274024687087665592880697176576539853025004946597242294142041610004609215412646678257023540850402593586403378009161241383802531646413022468379619155161636103378535939338522355665846744887892779998187045027306350116713515738931306353714502813970237501236210162056713137528150136897229768566095227934322838719555127173800848286146056880124042378159726398345624363988533027066840998492397437776267603603852223291522066731596381075578427270153639539900579474891200337723136354683843001176348951272852670593600217670619246341934949616842954984818671021742770161189469556741004629209448212554628372439470996719884671493484852291800304427837885991781887744509509669927846499653455103921914127211703053921752721551923729591815112196049592292397137045798322032618401085400356326220623196018655084350371524296513140252149708005052177046937494019443874033673182848796769092116322991122994746980304573963935278742998315160020746323370948938845158706132904746585088424950177563015548805802251225706130692173706966233025536629020806080887757459319524191829556456071657423495682213668980252268748140750294911138631592135603120737847441142090037015746617627637361329411803746238061863724421043895462767716897380399616338430078877861431613575484154753217661954355679582078839158144924858496289790462117935736256562665902220399046501491692096655948973110726073488928401861806786463954564443841607969926024861386326280206398732669838987379624644084583688443428925827151387030604506553046999074410988444262463999162024176641856773917846274509862334193871031676496408419364835540960197762727097195805382951844515935603429946002925673533736883659465998823463273328853063783494920541305485524203221427387598621447459179378240363847217178526187351416907635625256656969762366522984971804274727479520062569578829224499195643267515271712442273677843684059849247322564112857191348497854151209585077011186525719949812676448195974430512415660035385243078238227196976291677024505320756819060780937925732665868248500993552931890770470772344669457442390113228734422292440202211927973818278412781350111030288539232831773951249682569910220577653118085724825282427943132072498690694586777394200113517488797117497681870695856506441761520894016480501052771306693725516184046688611497636213160333568690893059696538418957673000913852139980559116283841876200715657717409550928896398126079840046217942782686948515418430178845977837392611360231901482955521288108885711512341958699876668852752254227073778746048251224145085028047595988149003103022678147521488844794095066577701141923957265766043412472813155015600723792605585264582851637883051302173059053495749705405774915069092246997964093733486455210953223304299128055828221526264558132498723094121007080059087774413947411597153476731520253029903463947204908864021676944260236628940336073244420926835336783784094110683410371684535950356687505970872810635424595818421933882669844562584572023959611743914090581407602673456527459491429373351319969443731589366953928741001829757919048164933915220606584929239143276190160000986414510600810065186361634974849373153303100939109758955742854799285878864542742119931934938514134991919714744406064766103990672846185995999975271833123406787571958305460371640746500112113875693571332850760017239808234192693262131580177285973476277194171043060127948733743231106449280401308350688935486208261538760528501754696043680720885240734302095974412210851752808118338754518405071157257036373096116646757062213036190121296727130144407850830864779802683703681921019747885739397744058010816766861585218251936089101587877646738427748050950842530594925340946387794337743529346381124292590803832261315590568253007455263395001071347053671761947662456643474152001472487408153505017895108457961637282005333491084691806747202440784886230292870767196639437954334271979626818807500763050805676573283786058468685384129263389757901545750031854641821482651358829791044243018575261015241764874471473995927417433984176356040207732301557532954842379128768120933800366798779809404699302389030344448707110955353724821107063175871170746394387178644134217158907765824472408334061118885067150225525543064923004731846602684654014805907791889822880948847759185630197711022747397809213797219394253550412016366341129490007970189247626472878818059328367931427183875382028160660158277637262591070574900497710213930639485398351523875196345284746890262563878540735638144386641508970642512356803477467056067393898269306545563465172273291223673735635210494669362480583506695813564911691862706838095370104678350021602057756505034425196000583606582129404603547590943600364169015938394736422349131811155542411192192926399644958534608507181564019341982548294051803650116095739503852967373287507079728363017139904528817664047371418482376003884234981103420351755911546451423760321864878518646777443155905749435013977391722837659449202904678434769273299956277712591729189255266705766962366548402320169040906835473202727289096276013997578820178803760075988442132213462557638011398329328642887676813133147211473928697150001020139599507302404274671734749858465238570299511659903148298668439437371379864215975649790711508610774912396889195613091180351262775738883731058419419209604722184250001416606856829295173951692575129869800378457271116896637349136655566845874803013720934809131601239878183777136815344562477607703068578625527318968179251039219657702434723422552096994704541483102841777328238460157455702736367105122250860364897365782189886626078649613750151810895640208284091632839352827074478431317714286375132759501424286996068164371913820875720778112579749854702433512848822375749257775348751778593557285870949942490703297371898423607152935661524265160501747293784045330037787191667084741121358441298356669767256324751500022257663637177130972109544113123895282725525541218980839384125185798131707162364339854193980779138160034541487434627443932085507374184132813670232086223612280830235141582691798634082697510501705282979086036670894023630995443140200653624011405930159184404508576892858253533398838120798662851941651739517213879544882536917159931307328412593338324356683340456482803930259952394648943968767619751029597601542175147401424029429816028858599706158158890205527836684214311636093804062359302961336965711679532587013470587769153801987459733099885483911407083518774079208776239612357901591987131454510671639094882970721888466187433553993843345080101980148378682240734529383582667762805885758105247380644278338631217995828205781739796868289406242091178222492896759862608844186427666170112800753252849868340018995419054740838484556258913150264251492906307422773280918265163714733549178643332289663337755375888249867647684872598297950727217207046388581437978610563274334966822590395595108457832257141226954922768750571518144551529301591936084935925835576337755310911603059530116419133846060195994823917864688310851829307659666681628282384810316564569670399950209997649096511698491389646722281958610910978572294666457555944444418350792381872153818329714508684191920755237028814608868579722301804980105913514842797344025960572173087957646078408690087184384138401233275675809468501218846804920241769244503480985251553780508390952407789820194293309738178734768929092603493805781832772938463632959802409560903739722415603201557977940429117344579820644420443654430971337227567557078345646138795110914254793416614857135628847771624012618232979820861936087994467278351824636375670597531577011649376381241536966915496257250602431448923546880221192962287369074433923881037566876211526752095655074380238247734785027742301143435974753702009812802573138533184402975129978181043012816166576893502700321645667922636929709650681896150242430310384052342404127979591683976753375124900308109520835262652885132184320168879285584810424765271803237455029264475598215516462434105777565027040840074534828353688265971859112803003584018721482498482223996794566119740218849718012896499498075815625412827896285357759570498341764134874014483397557517122906822114314320886439891244522334828828688408458182517743573542800998970494711102509187225081691836769762092160115652117922690837303769545674700474568000241945358686344047265663401303344712647309865809492339563673775738654566010769249229990036758278301606528931420198612322271170299417302960248018960754158095207629088490327284864227690979463156992945525506666495121470646775666127300473046512608905573232063575992204772173310440099231902046888707989144269825532080520391586949741291934725072744495524249573413430149039935717607788697452528621477200949372964762776985900702457563784334798067287418070249192775781495637860152062555229769294500165122949565775175503583940913761770629256188831382608153186862811868676598793757696082714103743210575992031304576228677133288310948297929438398430187091514974211311509872784617973643276747332315249065598976384093777177745005992468162280199502478658610755187997718323960586711398184575757833623711956194524745690535071556828322460176573518122669843228952864780948604169578395990873594549560314019071220148486702903229081555870994179531430381150917637680483744646207207278152503870540694230326848150102958401087757367869463515294565273763752482100049252863033419104937868670665481861661782925847491306774557186691987263898783939646778808804834622748191951927504126849721371792518910847637829995240195981459767857149462508994597290162671552844898327402521157285505548097065624906805385156041862541786227075644806178140285241452924889742471912736046212434817678520486190762631217397382452264387772826750144809591728391187117318702215351018398060882510318286254983992933599105208953912196227637095293882365817032210238185989790457420475958451503667034043604359373970415983783177266198597207395151850731108613544876234710776126706640920279033199528068504367391352004894448712135823659957724373234993401243798328948562028595968405935120862759878227680128686599778416000607935977778518519927405177787238095406665369458530470772794433067777850867954093959803599254040789166623673340426100097879331289418794559840321226133001477989416123731231420654352022414296080471867008890879109978098090392132418683165914024544108684177610418159617403802468043498822397913561548899087027469130892696750529280348614842529515728241705487869968128869485296075808683861931947499779178344396189005741971286568642767043876785215266815017462550512651368529799901217190539180793312482586822118297673160827548991156435902934387137422272666164932883570696712358072431508924884081115621014004625905501152198666804576076971676373305791678482378757827454868232247939608404194507355122604340064335535232602874716896899036003090506332819029192040981506715428425120301319773334615417022286033041986263831299431186203934760687938635503768318842920620170160413017080631754873979271005922049760863976665746421420066000809093397594582080415643547547778332980667425162802618579065685147234336849021070341493982748332658265210155841335217217547716650141775847961602898039145929047573259555736315119464511611818426512924210458014091200247956047448946536786968471445469099555063180300462866018676283028183325088215480988879970544852488275933446151376116826517583651468461538032233073650314857172711554339683130671527460388959485780750457357821673293719020720785442231281276980611802312574628484319693373530182162172373344985597340902329184219625666384238602797440602595796350147808886858410827889195721525464251379073019101715053688865264690494263577927103152646400313239828562369166897692212628461989222234049743821844156936537312362711199049801294148174348015587640341538303719667492481351964121131631135024428682356299708098856187390453073853101697384448471313572042180289361243908802535570005716968707220422092416012929958561499329213250650757259986379164028296259207096773891227857105696238514944000746062640765926623601599414048080861477097930663044962153359033201681276515141943162836413849581085306155231041366936300022475592045607153635416606039595222070687616617607370631477023077552918989179859615714744002926560660765520435887411537150992941893021465155300472238007738126391219626095368182724928480146148081431886958386629847033018411442781841015535455475213612675353786106488583666408028140285848200460007757833518311746320778347653918659921710441460918781530631256320050479925652724808516541150851244618763617581260903501068752101505098581722453542863541383725597685054041689271363534521944732881125881634676304516802526810538909336175069929099584214043313632429598848904475822357540185340672660176874070801374801409339944299433330266060414986432556400926161762636224736879624842440794915400126965525603999692452457933383612201743722297164043983973665875844925729395920405590889224245588275638323355085942602424117807714794832199296417873629671544930296353248244486216882732625684329026553100177296262098740605344492131195207183635992931799906165523538299811062657523071274819323498649625541821662980787112634025566567071737640651639738779985653205721136084875677609674942376085957241708256568238750763810858208069115662506947620062596632657347813437183960015325055951987392958709646380086345847282178972903173810726940440869068022724014425792474316641406245334889267663205121936762183297206719936066076271574048418750380240308971467518899833125872268617183987117861672230374074144217459720088164822021907021628861702208311662223269855633807473476196826126447418751092612685605030412080136778719070442286408083780850303030388833820068381214077489185859946329283230919514442819841252737455365710678627574992053258038174782991227088186072276206470044584947354471362218935978921493871839646162838573745369996450901409374115266255568822824380135129784424290382556249110888757641119017254149200191753491549136464933028290056993538859298758320964788582337286032882353167973893048580328953742123527967688907626545077264729121244060945909723694050327246871715553432937858540751285903757475551027001630634630679634122452508528347935668254408075040077711471338801032065292275747191524391803609225952597646071893579782798608088531004960268087905007209554489040328651817896627145717658276393294249697657086789808066322784193900939605530522586449995365837346980202949516585294675781697020163437284818478740803402710275316263178633752826297204866054326324334587966625594954357753604418989674375292133653644128936505138829262565864252801637438590134555549106238093156265814919997872716055431979974958284548698796315845058671187738141655944201405821043799673877430236908035216560048688640750745234844857118751977534086381508742664161089753944386176550194285563171969929902202103552114354923801633969340235585097687704797936554507929250586203429050136211323243966222576079910013548491089531139436751275526092478908971680817668322442975951718754398056966321065608870293195025758234319988051628100693999271384564084220579902263419907166104981500617107959668271904167286086737259133820361996564124744845187643591668111924120797968822196059273339230613743554879065968914749949248809074859282400779438820592547222056264108404927990422864182611211242518201512443756494758545931824555060880212388552970453724849524204631232504746239809588384981512929355485288478845270426474946502198074900190306403963447199679857090941957080482217738778926568193807493144758574580424157784716061928408651066074639737391455079434257870925195219387591552526644109438211774377011898296418314711551584987502832878507494520422896221630691759480618354665586541229826794891999865400628248824652588237593070116568232615777782233546444438279648634225961012285141092192790699057643146364431502128261819580595528997642716256233415868537526335637715869988360117512047126538951549382776201437327417778570997911305354536356313329001392102467004183578568996804108342113433906285097893779984044151322369010820917215128386985884119941020368896949275320186948831801350540839196186482950613111804042901587925926926017197833715288384791004278100122396040593679361941228837013004564364776316815831733485452156280641889015717815811800294946557219182298428103415311123823612524353205592578787825376765743071461703004152837535573010027990161650207534986331386264532717625035996914852070635587358107542295724832226658529848780977768758504856314601127657712781000808794479850429169213460976309656760375426967660328569568687706968011790682406356145427454895158777150796173112633784836548925779876683501692262429237412040449827970273093927991512853434119168250614536109579929727787964504784072057372807768306979141691454328257067367330739369150668215945686645175719426965663724662746493501355146122943682718006015670068584151275830820927482181647343893125860184221284924488215834957926583854962943632298614656939802058632226083948184008606231777412261288279965727791272388276760501794675172350324040237242962368271391410803939204882208678320554019053624685622463921825252253713736408787693940066791290142235772218911303359925820363684646771553452829921242418154134423003210023600038684312485347352052637440515551675172597852751851748073498065935243020659573391026762451550128462237922762707636281884388567040125213008322511068437406467999750615113631645796583837966791311626903834593649905053338419549649932716821245082333011653116212426009124987834570062709573412420812297392509666227230996437669736062952847634329206166032748948860759610093284914921853958835294192025015548341231636732035425154114458928243465112862210165824843013900913281538173040267702707141470225509315404947570702943817306334760211412433450503374675516467894143498778132018179897520843951968524753832699476768291499776887840364676886534701002763485594312250127796999388730367412213383403230027558887055120893963082666704256759152843502164279147629997212770431662903001219548866371486957696736448121054109582667718214575195854621275105307324876262738958159428693313121636125524559156713664931680211865126494341997715081916982155490290233379513922424031374826733587980811608730184265103504709153748976301873538014526979208492697149779717659847153024438886900869483482814057487189797470086152532948319053001068702437490872625551327353944422648408571092052358159596008150719034398792922742055791919584473095625456209820637189023388603387080432135987480256241525485701768731352430900265432751784160337791769133649293590799323012726176113887369155855923148935541082227858319496130419435197983270490587580406823221753514260009479366149622033476221168053111753842323743200301766417073619491126064790383058149268674551901712031929585729796078780605513065956815453631877237017740783880270320602043146434205222735504562462154964000239794607886964568509761259525881345896521746890462229704114916913944994561564968292171449669906797985296010960002091021961336530531729542539170921254863337505140924672554509919827811630734705485459370703153180347180933103380198311121497471890377451486880497946168810207808556801021368787290262756774485138082246328624301181464248861907015356695141765445328351628436024204134630989482568727423502562969286486891936340591725341142942661416622751310134173079620115119664915462121900912569795889990207183394810164735865587404347264212703804834121083978616685564934491089770040695763495041623970589966919730474464891312381073527403620432211510225302804552421675386862216752626832550803362516594273011773657504059599904246194346244780540189998151865274414584035673455016757147216056756823919421792988085898406799623756559966607539382734656349099606199691061582762767527687683745083518953475512058181865117695978752439670556093849364121372964522412615643873359617156432330363559202707081289586256514511291492979944854294473423399231002895374955726858398286946046892175307161904365195506139074374402387644568215043073119637641688165089663036627523838514076611227187193801300930417692382258017695278176690404426330620413646164490784780488198028834871012784723531560250994144656718899074103765914813965217847860686233502694033338332704310015639622396051144829601094403983366098950643019202890726374193859273076948090075112706061146575055922657788711746000675288039883673438382992552184245600014957028055188588460035075280880639654134931464377479914611173980038594743876217251810324204917039480668016024901716300301262216237872844709514785746504146000279882486486892473965320196222046926403421951796790607470729788351848783761179249195468554078873883618717037939477471477170942934770244825124767380843285954918886224373090891871727056309238536680271273952487892447376953011061315782552627530868369904343311603035526063947481246892087122473943192753044014869682069003962104543843955182514658226128618897619940944579704132136458636718042840287451917821024195390819375277412945393617069691016093226226356696888743612510920748911492800892504954356905511479953760703227107760941724961192860054974366143077187888416366160357584711710014759606985648474172695971535434475591533232966620812583326072900520058943046259710932499914452354105224151484588005291647015186584441458586536973496154332648084064386407788315408331018770745765498145319904104475459305023151711474957639554435933943653036955256759611186045823828502736677888932380474110794265560594498356667259225037316666151270252406165978623154610804131995696501286010335565671828154857772487560961621818158538211296205665574484303687603217564293839079901075159522772146203517434699316433127664051132000873687726163492132268446193755063682308464759297961783116075614886818907865075919857377471508683913020757282824283526371437122665796542457877503344892364994427788735668537342508340925235561902855900223663179949775701320396482594875540702055151030983927369410172454054010908582239023933105515932925923961208316129241524095473837480474040259504248099167750480502465020769504901572815225027734416119402134962860510519812297180994549019817259494720443685868608774560937376493007161039978659841029674967335715561315346045345755509956532694841225914552915222750936589866085372309619018587001426679139649548743046623395578276479423628352894751382431266460995099277963734417737659098980934663252243733881364162024955677002914510330836706199998452012113335644864868381645454226283726857256725925960954057448995461739751647993219447293921631881713791291028985875979232990541634320468580777085857067196514938374407728411212641107433150604309331770454540441533483011391596793432079203630490234071016897189688921199077503001672223074556331340724906386777979605564382883864196608533047996015170462059117498301986337826595901330155539573576937701408828906226979287660298975251486075021981667268354778862486015776838367633686346709895420067003216908033955426696742795264566431394500633826074387157080325131379476282352413083028628461948574815801318948840777076968356850076702341965712273562795593925360325964563904679875809751617923708694387299887594584711408117635483919154985154647124554625307192913314831281434895299857463987985307931988829227749907115762537313283023551001815934804566851395189104757625966235019547086535882824469870014741882415117968311191086878789930884812159202096667491726502152509782274689633605092634023496958164654969646418864166832309935676229728847170180559077225656703285939994405375783377782304654370635425020876521596247693203691657829750167940065294406892440921191456078773893339481591976079219649021874821079173211127889713143333216142714905100666062229569141417109740329188208389551445354313147259286806449458561725397141331663677704832672550418852067046276900173056144891152509782973353145022318852626615017952173159942955421924642609121166412835735391284084785282007165013964076442993852649099600376195858648857440043784898115858204437193186832839385088732054905724556546987656490845053182716235190222447205228434222889407806657323892534380044873017127229782587048154828245352431173132742740701721283643891448808003886649264344018360957556902832799820948457480793277328447699854019693813168988337271943724278007809228580192614502283848182447597403468237561609707482700008035178305271289349909520220235301924491376066493603891231929557125214292859817120254624669448006235046136623516995097370517202314142307364321422431012373831040552411430605426794472644977650395701843064938813543769828934436315158927507277648891967071909747926450043367511116116236186612751962437992162005064379795058690713999830609396086815228993123660485866982045585117627599357488169594066404927457841218293328816298191698502250115534735752224453404964892148813849235934081149059548320572151064138632079980314619650530565894758936083437829684333860960098953120158831520699229174991580006549591992420199830678111388639007854762043307350096883747582196531079725914298494187998598321148877308802229138231425361455212511108623524919058572056952126254319122756053652392451603060149858631458413072803932243613050571037638084233877816785985909862712777190637047088663430031014832291452576685170421114411510250412898805499384991551607296751420496293953172927379851106069091161574141358589092167389981546375141974621186808360334619472896175259342184558832509203770469945921937052272336367007625948331090397216997340420557793576356873218772213585611864526326443831877390203672131246352058095300669100857350833416323603069648161792120427844319620922424909092225672772910677996610839522394533755540659363287692450294267934158845473613157311836118686366445521346514039186116359145371153540826032840487437175555764394071630151010706637640573573623008950467802933025272202502554077660212874479563243195450274183868070493611691073378264754547852514918014202912956978959036383013570203870464466283617544392843966134407720421409525136839675710388097216608954244374153477377166775120228469923302021666140457889537027235761427374796531400493350924461606789427491319380977154252243709316213017427770974320467598054189898327085805997712338695112695807967730570163247426424950233936899447229517077133455283646134749648277026910632017217885505233921331521847118590137496834300880416163069318662775920411472295660318259422407310862608033021114002691119816575711752688857150670199659466930708228751384416854029004300158700552746705184157220799994735247207051986765859595092984614471816007169445077346431466189832504736852028610308750146895157678791966605074957859933179575029657484601489418416766851444936561875849668544131685451409013016930166055013441617752606891761439054444558291406068635655644836472279698398004551367482148565144998378469386137423601697922268486156975780703781418841345339460429464616825436555887656974917538185817893946764010479718728521268518569267169384577165925465321608116320419976222084897309320736350868101496219250382334986574115795416284194390527125049037712408059532805449088823224916377117261202061839688992693295105234844937399095592236285412150407268948401609368388871765630947646729470221196086001198479994581804695539105631796190556373275926075179684250029334685051995263588655329163883112080429815513414808602477549311516493130282695756559596674298660515509756132919865803819821000476747106134073827024106246002455903997796258119061977003115452380213178001955371225937961548623225839518163093311219905367859668437791251486335484193144723732502972172447615379801562006809942042294056097434347066448054178498411501109490055174515659066092424607929945715924023906356680179225476752330846392470080555549776063739393527170712749744566215126406017085453109853713737561530395806588934931793651628575209922415820539982162530984804982873988103691713198422630780561633767710871286676104229657952971414503091672561237066500098915379562288384991699020461044207225558490118631684728363187820742840010010713537212800841281318689891211405026397593008615583507942611138073513147816003996045645433486200154817317408491819459870494761037955621098819110213983058789430727633625751958998606913331757500042989911110420930038261100859447165379591265418895258413211732805576327783961465036059169767342577164780054705682597177278456187816003640978255545589117368304565946321257429154556541631054844918768190573688218046728396539161834737872789100864428458907487048550974452629412766221411082164353665517258801396258104275480145639201675985865221424962508038552109174607597081521429387255182463317449460036439128864548142936789707207369759707833309114739685247081398668459007077178550480776167421751381600063380017048511832177895884951046222688215565926636884970546239525395344534726910398046005187760962089339834509827410182493950408003879023119957663975663221598132595744860227258941096455028869071401241279509238582436901757713289486233277735837937151261016515146651799113599703991061418534368666530551784312407489715101351425445111864674032892484312806554418581073607013665801362345800695897608935246177463074602349489878931667937507054444618338798799164314887918154921379266791492854110773468611529633688439590856450386145480624752419423958254209879597344728264687494944465929840261235225416039144243263134709929780668323940540914715944827552792822105066138230397526814581934750442059178526814337232018334750154866197573646445496748463664405253422243824155821686431168730585211545318994212918439906532213221247225803928326498629074329552895346412314540520929147944074759030561339888171842145495973040297982030550567129980275307056420247192797201621305930713623326959195433581617399409720484260532874414654548854603049232290870880452676455189580668605138048265241254805556203534832625415373983426070591273304880827070050074379529009547300521911369806425152714601502482091391901429020195091770953748847236534178471925332465908796668010622536582591287565397914640451668908153468998914433349879420500480766995054325012444867073154284564363213023074717241252158951833090260165915744995402524200710853713286750229470665193583297323869038498521779542836866985450999969607304020876164066437151085037544297350679102162190593096792653668215465294379684853314872047171127297403208458365156028512549733748841544149318162015903841180379134822422910354464955201608523176083951943072087871174170973750588346225848682435873622109552978541009311856410711711729443825806954603270002716944523994366118734334767392888741405474244665579425699208764517178135416436464968664617750703121625994342907834564835553364180246390983436826235777946063347522088183353812391158046609209548764912661401913386568700034808312733189946532508515257258158277578168504191389764167287064890321522534894000277175935865080153484601868630325608471559950683465471371853120413507636659044595879653359918499109174945742946702168420946566490798129648435878203041247252838744519622480143581793552659718789048301178883920874978638609401863533603333844136745870164194356531538798229681262681730778209219019752147558927772625564177940727676476481812638218560532708151538531707044589552060959714705698065221690010428192652952667837749825047728867919603935141998641282891597603909125026803149671548321872241610300056680022377070755050521586940458675669323744465779874781829145687216958268283812411992832033572669204549407104189948437200178316926887936780908319865409337307305741655499845699449954022712865258725604102623297940236654768631453418707569394145086107819858889425928406540546078888158926480275865825399647754057620576803469849331494361567444027435796168023642858040415058950689708193261892925453077202899691024606027791695785938839900573023664193942900361864658395508598130832086614242860591228133933388766113186990933035968860149185086437536623473043814293286020974703739624555723065863484919504573301294917228100557820695804999511714094602246286874389519493406636641746383207615410834866301305592676798514432668134148359620007734791621393942801835396851499382737989166960450587905145878850316237804949538854701129509572558827154494778193715221320736959177012269104753055100589434824100614584280093190636401132276755369377770991996882461628950572539767963963505555485033144047996182244968780814112936486613944056193711553489785957351690032385879846433230673556131816403965864908064388778636345996812467084226094242552771624078808309414042400360713371693309104343961871959947640040816563068139347519489813389702031355359760785051415395539560174785747758672293757529655227632988451484260445865984944872503375220161289182406858532177037523269370761356725750826573482205889038291834763913722754608101343797694922821755834514824852657958977415759611592430198924479608996118922837029691087816756019901334996210855318452642156227352787076594165313544596193891047397429519223366818807121225163772953781043882264897687887028542688962082973177391717695243629997490928968543276810340971793016239232604105667562736471626775259622748579919250414615537499592244987007839141634860371084838348126349538754701971068013250559915388390496893970506912773395329499419674761212602873942131866679659499497629962104241004838562225527939910515483282689111610521058549371350986053155112211334666616931222255860517964808406123404222316700991749562362755709508968588765930040560069699231117681798306358055700214742708154081318173863875376667771010101106942959755408965103637290431767800971125024708521280146233354174994410344522921002709394244725323078762485012914867623182630482503126188176759081040997088209433692178040935322222430463845413474235606627813608879407352095111946442950079142546235763791170558025465032213956251087203618881536721237845822751378805443513861769297289403717266273728375177106317596454829508255410474286565589427406000940579780874979172070311532187099114899299548467126069619665957390421518464375468478218429697155679724637760398541377032891393349707424189160862742847720869203670969368462126385301040369931510904407232447595691573012997081855774973662308796465031108888721399898164329324966181012811706908931177832573696605648159434612511892505087199999900257772271834182372292025211731206679018175862803614925673053029171683480953484344496723649864232221887265843996688956972501889137274389417309681619416335170117643782359212946062506591715514033030421313734333969768812504663433205122361157210687595757449765600225115676243043407161770031894801670044848222719409866143757879840001660561779674915886456794458897444656242904772072561574184581085033045636396962174528276537136230461909793252075572846159219708265843350622637923247276509027965843783918775132577867686642586296529062413608262031890956749277508669504904403221878666704280818842623306267617242762463538330354644674472443344041428911317196731378702301514135492036933681330122232317353267579162653994834272301574624422058957449855116288461025944957008294718443074413732372476786581198871176881587007588227746335985181677831295340876731606977636749119516709778423712791955994664693203393307480610424917835001625775920459652938018809640526457079327161487538858650103071954898137603601416092550527755359613147282320033733387362366207736470812495976567418219368668329220946376396422452460704879331186895318887843374951619452320997091197184497707101502775757269084724249346387967405179945369030144587883554384689849748460257443883707772921170054370631780256451228396085094781194905521121043019784241094027335297941998517117983152974367816023374564569090625037365007150591654159103436877551577626680144033788370647903807461990843425723355036400144050731262708594399183940123577560009742455269067171703540283675380222373507423874955319724920365583333358187353298670567648187533250311149878124050051747138592374874496175033805732333633336781525623246188011785666180298853754004122320403787677994706137027121931995744160352759915555729833009275253341541150395641703823895605490534076402746638438784032885053028074133323618591801354739554644164808288504418618096474281522409323679822565604584110597865881299024294888389250390011369016417008315942855004446032582039497592803909177610106904824089554219774227009248754842986341224029792168536544832595205704160172121475354287592362747417578438876741565910896047673063737419272124099098652408665302901997245701073316551514525152451187371290652421290724471796893020330679939094518443824518523737510688386272580597817216711592439156880951152910939097047761042937785974846332211181241376949498816375796851264108571209322803046586160879239206228683945677088885871838001118460647411401084575334051013078884410206429732624519218392641015898466383584085512656978481255814859734809051850051568531772704380130858435316928710103090451367057092741264080286490848495543295871495202878950690684676836113000159584850135692495996309800370271068388322134531935976431883936604389505127135558107441401877452426676266410204058334315479071824076110066318411090383835831365763379668630876126286905826057326203089527783490736691109787823647836432259319318522710455239164433173621355854357509171860576255703411484956522430681756471843660672582090953905642121849168032215038931299861491745877897254299022094313043377140836363114594500968186575730924791523485555536426504430476166419339357341908162404047061395455985772211760545831495135497547572488873740128881653178821650477815408219019467250486943865781701222533050772299606646147261801774734912493188527197350314405349610049149274284447755124731329485960237409369329334029146471968951934430093636452132535054749685589517997109580011310552649170494546982866329975676222263510267972251202288105044027653368232804142003782601150019052417823066284769923682076650192766800242392828021679862850484135755746086080827212242900972216220181049288662153911475094585882550639671412118277772073723709100606234150489807828427582063477657453366787268252965511957745354167197631633711253786726092608445646014398847509234571350272832742557488848620575124745565926718288181853373034993227677561442984783682185930581442780127045724076249283357968829540480149222433885816975516233294143136093230515641405936854447200171734309177943596097173507435377111189435387579314145290346819441137326765940707668522243198262840391724130901961665848451697049259233944019458815229732686904471755414657932559285479782035137226126262189906121247709426403068970994831986105004395811491700431534037750662806390380512750516808288090677637236082982043099351070947776554630913536148580554313143737711998018640096320483113419413091222782958711034469026954007060587489248666601826592193118908335389356433971798410797723405676129161945062779694445249254846672225870570671663047136993577841648795234200473620096002154919456480061279643810485320751313921734766482287998024578464925391974985948643354134435070975347049294649760342287348977535249344235842431001931698940588154415236304256320146461948283983757874652255942345477585281211169155805766975761312105666373015605170336653345472866669551907411163702492632289906121348646208415805356806325323906919925753501423846137078258691355923163414643902155140623678976044360918239854559662212270659770103529152593784330770532269092705498551397525809409287012886320436002851489363084615499075789579488665438970604664636821477496604974491971489849632479120236252668675292672791335891070871145801377793187320334898934490869390626543316955025818198451431735016333387320948429723091335034531632068898840944837934926940647062378529927825934177480200674763629720102375308491994299112291009426626226801192331864888351709389799551119792297771251832797661935267201281018566063587477563823872147299228304138599660700810042448567525314842595254537530786875294300805452675699702923584593295256598285338627379813558450519648957571771486152559389853143161740618075235673334697242644670941056843572154443401151373903016739592819007258268966882855300254547553453871788129406649073477321626279839150739227451068387031989247490230304786093385166012455123040298448384279720446993793070949856688568882069467663887144461305214314050089799554946486807326916581036095593074476807551484871950896088850965829172841122940126051275559076660114878357620337090816693139151004807107283216193317008736341712074287514481887825269671197465174607125771112164462452069480555068709952480380764894486731926551608244613033375229376266209757931629133268049035546133184272101271007081024860744093835498156399944424755115670352276055661519304307699131473259823509501263805791047598710212532951104344285085835697054200225304891858580041649255482497081144423650326472716819580304569848081445197967391087041053697103399934313447923992222595329288872324627184217275009219817511090266101185831607570652489891397523697875139748880523263248630767932438268831463420015950425668066538119757175917779493761235736287350327218999560857375905799400262003634912634595300047620633444495842967711262210234460224623276928519231574027135501153731387030755200997560320069464703951464816307828610554070429100923873053588083905408127957447856499602309810732715755080809280433436821361531047611118424441520820711925525013207041829567363103340082358040827682980007220294779531057070580929107800472579139595739278726961868830596474545934602923640967136072586999235628422001898115799754479755447858683468737997549189502589482595662824680828842252239814783461379679104161130576495714710333956813518892537804245331676461984723043427656010671630295292229111379111161550064897206222632344766397524036705652915555224255744583124523551032035310138686727031372584759823534502163553273987218235354298145796565089384897595391728842681129195946129255483057935585244859305274466306489938208129878221726043121736020541203971370395144553549695533434380750198368669580732532955861647516647942791805797350582253073936446043843701248999528661078882953440565246997518776806734482006560196118426654047255093709138321788015420316408229145188878430205864760270124900720322847968643882338776514153864065245951622275812860994639277956857730867897665226912242996321622646815684233216784996731179690597740795126530831937252585297849716089718251133632378121741347401860156509971223700232819882499071827621910221987286441779702132382590327535469339133651733253671654795478922080141399396214207661944333656292199872752510327391493148582535193340148703329968744270456610413708258653634033385712288888690128062078906546806750495064489772917600537835168583881026300006694199457683862809628563952168239637247450228616428931986447369803983809722387015985323975705740414759684046949925162577677163361346745089761097143927127790371397353036376099171804612113644503197406718169085821698784689621025234992603197082836809755092028975206324793711421194233636101371220247162765512381493660372980353218025827665453905097562220117991093594283220641231048867231632622320116427650665745247186652020866271424104223750311936411908893114473633571302876395982949042442790820298900444654052043267273163422365074407506600619449312475265922380062420050842724515651131584236774547232370479303435043237214642872074404074362357475691796557131122626536082703613639305874769011271029082955425003103563342098510602354808086641909200262539103972008442862837921162911214613564509339765529239452519527456331641788026335893819658765034447626538491236140191398015322922957343976669968327455680150740497559689199461667515475958468494372322086072261794329008172315638728002602275555621963775226603246160028653028865002982024694479731413362716440573107225425054718793844309506277565246285258061931212507382707897061244537446312211253983015178574248369596452331675473657982934671301681809784302326186538727729058758252593756761541160694319838314372163587959412632671985489269234050683909608153859824904832530308282468712887791675510293603885384581590275550134707712485494836607365496456543696302477567414276362641402213844892203887424185464112002570515861008133383936949268934003118939113966689383777099767045450192028479968520493978238429276648810859320368992859970398418831297861529761788084765162710668388383693845417155406245128776690955212179377869404930276965607863323976982216807225442303685170084948903188262981259431430676440720567476792897068801810181245276506547562790502147502682657043087657267236732058347954196747525343990084166003934266068212518121788669477680357719097348974440270992454716087068856842264612895988293711542106419911857006043328323907988789719150652023820723432922604266382300011070249578904362076681411264559071710647393426493483575204313543035091955754829567934834806482780424502939963472014725923166061183227973642588258289799104267056951615964996739334748109689417380160329911636519999349691632058752029410920034045435303229902285685801801279586795346834603119246576024203347206943151857545472868425935814768691001672234608749721173914819808908561847011318518980455822120851406254415761385371859571685517340323795489787984074612214086394662048593038890899951890524380015562799198156988421167084836291116267853719993362333260818465310251174516372978193308833780116933625865276667785585593661424267941049397401856464784462905038714145523853341180079137150389283472853429475200904279753953993039817820637785299068747139973867315927385457682726017233450131885747686181389941761333762812418751115383073131492733018607609252756529368316586280945370199151329072602245925889277173849099009254332458901790477240311695458696927861352799903900188699501179262982154192728896638163187200909492362703577895048790751719608657726339666496578135510339137540737337468012135899646697033309820778707809544000854699667276798294432119733197818271006265086597423639115708299986399536128320480886602017840955461502460874379673229675841072481360413049630097992489579922668869357899516501449947557550102966013842199952543897840873880579512305150411140790105782485040857740330538849218058044864974103741481464538835833465372525749388628467295047489709766195286085344603422202545756995283639227896183179102110539478537406645078822912381416977436268189120779246541164752220529379370048645150179779308277795697135957561954120035605726878029612519390852075533281996107244350996666414378695186783632248867330318575475749482172207093055733628589477669461876848815313240549980832637097031671934254489321171329839450289559548252432585925067378768772856129002543518604539642325360899248416860281037859570261658196699580322688638215671043825977179257881421439039975304820527414445726964264952773892594613484852344345007689740991236570630438966915988688167792365968578459776080241106570913227005700392318746221174609713132358780412929225270001084331634012495778535641742157975492580048491953229763796312608266593849593149216571643181167408672672693183780780235476642442548980018641400509124269021187218988946829681942951018346167775033469013479110742779017986085450096178098046435253029115410340981507562175389115630300185922659578641974550475572837588059257090608302409673961605093868622198400305316488691128115642878323074467327864410153283880699841004052030204143964669989698044652822119340900204700682508287903025161553895466547656289186959212687036738557210895731867585728343503357165621864776150600980338375198806120831487526435360912349992573730552631021405620084720286856015029700734500795803856519498674912227659814214714898317505929514954716313075864248264586761794250606303239866435085527006591090123875892439913275897767885903831791195304718055209524524093462786345649102018239536525110435481119088243111195545519965598252068548242517047314705794096742443724263064990155014468049330990526474810875823048474256726918672129273569349252618899787041673717407780399081033112436581324740941266335911726021269714550054892160010172732575192947458677261763808961980784788479738386124170332578493640498660412036635013952423432650447298251716306746665850228904203146076386053323466020132479878395343584902699940269918967103406587178288533431096228805613531370236577478918032973038498971950153461678496444282104260851295986792286992840056267188721048887608031480472014908690271640114061243748427086060674077473102737825874423655203544977795696181523480229259867955524071888498010793843161151880985420193769033880071946561423442552099036462047694842047105847893098130229453114187650091313748808059431008041069897470575146429734024198591365139649466579022125449192548185358541736613915455991929511397190687972523102325394765866216859094145055320932434451907503831448086557257969304220310567353107706180898593730032720942141647050661226862853559813035512439356314154488191308647459571711340932338027977531707939683828525627051110812420126215951424949198058573730351141608316380882729761887779646007813342776476433044455033717910237121151669597799280361912763401144020508606043514583361432744917533864638602367812611543613850408388469374618642211948159402481190571283821902753046356678514998083764551438697218363753326675826315869132709947432772407047085364654363742193099911626844930915216903780541813342847979642424948782828038716517047064628253832502598568279085896216663901892648680410427461021617112268989129873161662646378060743994759288644976683550928223029630209118842724697991001985527684938026596120521132281298803170255092953109647143655534453423802125601931186464876380267827115168662771566451496963127597800594537874588489582737857268530616859518043587571213637965244225810620418209340191155831740418211947350361478991569268690616484491178245454227361168332658319288540580664440710893664710686619988906112902186799154352042201692652750402316569515657595699493415080656918212721635961472868511069718623111373311069921860501980367445184358939092671529089902229555479544274832827171375340383695466264171113150222436641142048588698316970166414470499372847138402683870116874335797969046158692117269571703425983731202999247715733648847092705586886181471016310253673465217395929326240369844147329105005378992812118751519327840505039328435120904932317130879435808017654612105456674878357818134125369708011709373421426125482405720064302884087888130478046435642992798901612641565013450680405744980420832151569554382634380951729010252867543378455919278912721797547566624533039612413893728001542210544814910264148950234855998891560256797473679791633719598359309039556501589084520443837072941229581630220252635906104248155040699730483425042010690342776315674186310331618160786954112743542650773086666348147515767645637447263243472239229124178216340596972191589845661892389409159969232322258128644329155754886907757975052480968009594076440373631819015578061678400270633771210189559184863806195923727953962615251423746794229172489400153320593105815502893655728322587941888624464764055667484768452589286062927730490367187695980348647053754709537338309771012434869142917782188176333793857373388143895517438555535333967431581226068857241554021844551960924600706175592561949281069000297451750639075122000161755781562508226398451252695654013083510619583682352715096879935445403783072567066751128754032039644576396495293566190569882965858152240689337685676243902709816554223168038802939881427664446318506194941863877812698347927951550078842922036475516348958960312325957454431378650231828736847364909358815760828000079317811140715532689780777412817093843353425278398972448458700562134881936079247909078725026132455406444287546523363054893909113482797021163929347807952820112124999964019428115284163738978076223121991371491442069915340992650591792634408716997603154029723881647289026718175644892639119402377085531976776347806496222496926614029340391557445560470354257526585365417919690603423306134848705151476035419892368498793689352202245011517243486806060225022683412268376632615253558240410458351522078153054737117053927516312691628145004990585665629363270962855146676735151466394975959451124647000137109758167351258373295185746071093266533158904856739046260828311389464589592985952456652976901850873825358510319161499225773248183111453962623252438788013577386800669604129896762136320330859961016862060739811931428923156753137562022334614956759345264386749790367810222251706840246488857357851601036681003080888023273952894066724198299960470115964376772924306393392636297270199646735316494921783888304702045374405468605705538441261510457585503877041181761818465086408450244971982413899824054850192235103117885779356566037145555265074706516815124135127814700198400713290342530928790146330788173233033039132274994930802113431886468297392821438854675453252927854524314264845046249863533714782489297461166956123548340545593227640343045933418605231299273263591981321701730215939756187844043261678747910753777510227041728871556074394382301918312794556896915923372271133459862381465679733254512147522232580291420498643448274995560656006638556072984489162481669637445262081299122733275287138949207124169531013080096999557760193391341617259399713690314716785146375182225850996515862275960516526707001463451170273018016664639426905179440477528487732464866265577480129030877295193989958379385770791336856409582019702535369131089946212266254202649466898067931168839363414219436966726383737767229348435742493795287545332274664802341253419209201601058464144515884923412569272163275478440567500275556135523451822850222811585207762569748363665554906726208960375496974308428072793740931737338848627312664974376791960898804073011773872317857608909321836880404125363802744249978363903928067919111036316952449530610353040481590801116171168917977024180249003146076220087580537179948778611146025729953373450228331126832712142090193371686920998620475288366896749372194554838455745795492844233195492946639712436809227690666303343300329014593115259400758525734235471702742931089601528289169277502988538916314030691307368483420802438738735628428661787992102313586199185311351542137309736463143029194814708774119192210223799873323427930236295094345574323204822396567526277316325568508466275257638051668952217185529910024694673481048562243381308113898212923236519469921300980098094112387978337025445920051115275893356509316993184402378842598073633871072838677155571489409462242915916897132607455513194525883577221446104979083142116711585184793612914705614709172347810366006970433857623881155003387350452718009930382082293677645370300172347344722104100669730858131146611464587439087106349710639496618723258384186682092063530190115021173516563602706569948898686215507093631633248265459226682349146595926819826752553375385218621893948149560746477738658936348621966940153402333792437174830803983088508757648441961353982971307799573889096430763978769130417290454216620272354606874633645260492547304255336481836919816554885246449169950757540653388801589471809216129414137010077899435589210147478233310589334082835754653468133765404929606452018842317238970701153305576596678970396171853666940555018485210817149733901662812092564803519101344239933762668197152494473769991215897285224696309844732054063020707941505538695908471843792936215489541614058762528324187796282796185370097302420665930076299932485383563329773769846899369819157458123341107536900127260679805433440221616804231779413958773527035823327957831771054510340472571954446047954957559813215893432004314120465104007610236113040445380009901787545926795462760955843448670621290391799140118697302144995266579864018111905252157582360845706040041931678674066780384793745926791526293125634832628812301386833435540428724683487086746344666132342532715050298250100318976836594848556629846500496684182534474519141398409675262178249176582335254838423036886307954076213038885155349647007018852010007404049687795958452362834147019706720117915510001661389613880156857447456276006069421025440083809726568630974379508592559523952360721996603592170836376361803481619093139211921015054813957982039874714773970027108548912216110271687820263364002338217300840192609035126669552694837562947146599938462373976563115181191442203070141705303487333744036788262779224472642748152453068360411920602473627694497649925069853106046367010384504643399928536061086742912707200935581520909581210449493977973989555948980856627208993320019639528082925320357405566702513508637200184056816954811763965572193829576915691299349849247767145834011254969450928586198786845028473550975024669668039393081850972285814804037377428569644728004407657111173895230785105223067636173258786069099820075696436676127596744542314522777790004695193357265478325580856104889601471702595019457993746650098587406040922980263853567144179724571560901638316025876815851522250801743947797006121759198135755907895988522561800035564156485960126135191087673224053399236586137359190200943287030910208903985340162954891739538371369853580655399324468614748970881746353539352564222506571195394852268993353531840162826599928084614503770819276814156997363283748771761074469450323785215048262082766529486242853921290980808707815620511504017328018893345051270330235333240843348724058765872346097376408492756314314096109615438716415171676693135748230953348283281965170583743853653949329584376116373071045526105798833019639584074665422475985819124127893539292181227034362047509435542300109470616789054589194307736201235292163195348067316969251983801589864601780075456390250029387761733037621141649282432596458680867162248847930859518967961355796981781445715729650507338470133819546502746820776393401350349049401838800399889644341692774744207290820075760309570457094155530994338635957303092848647919165452916451656959725774446934984898521847768117087934127482077209387555168780705450738201689950324431198558454259958968774932948675596420404269285072282381192210112181352655668645738694487470634327603179624856544534998457435538069021524032073945960100501166758733977369110529400474554802274513987522782049718075264284573673520098750192094483302194677013716161318168334465101872205904755960979881964888214978427387556491810089732219692552627858722807956213497919758709132610160624922854058053634335177330253375983530436107868442825793997450133892655599464339183963064718542907253854825303949594784141044095972227416009839998919175762061725037236964701381350932961611202125538537960276490964101884386167781129135023853561767976982159864873217558849618306612420596610065575510868353048108456096877878146572272594082449215905616247699033576273482408371851196354508273288154120373477569542520479370636276079248054657755970352196516172513699878727484296365327147239450845859715226821925094019857914931394847533124881926397239897654950813171000005997021232614964981578722800194059740841467617026621584310824582453464957110911152410845653081580978800977544539117909958145241228004557570098049643037486507701346268829501493302319875738210222190738028759300869546303184862384110197750188126417704723829009815709646361514420532439734193671679204961950785982227782801833107609670991146712843325096685894631664684082957706901515603914318042025904645368956703834311975956517578072505087360984508105139077560826524673343985862048843318999418897389713840773161151754650570406883334291386348252313922725461587078822278812272252387669569351176435241711867488219331820910905436924688994384551147688375994686734592119852849571819849063583847751752636548529075575677208197680154216109173319282657912189154198766045246366491519090286308833738818189475200883672745221600265545566156543821970853739254915952934135535283472685768664882251118693058370962424819251283635767347635981547148776081418373987962728805364541385850061042364699268873288827450162351213030841849216366167977293434090444229131783460822498840979205390924669123074107673797716620248047580672441394867935992996941042468511428139341129137812175647302952268398654686574857446875915904001067778446793188027621985705954294937629743352581523834900059787136770041885732850278563934418169267857243077739553329845385991529864145768527617014526113831565726517719148187088855537251759550582459555003544010067810714161428403028116681343845677465973806094931756153215555209762678441507042689123951265476352063036231945226111775894563868458838321859303231527138250983520221219020313374354804145809260368319730316611748985271430174707711433747910984780941879827039101813672638381782108529583833111024620537320641189545937517002444415366095284603937957293600719800339910983996242752794604408138472872621064558151931984745521337526635108193709871320208968535561618679962186965696933047082581073897600383649578031582851963465573157410682611519387985286076353462219268397253299589536654432625932452086686686693355639437883830999672552957025062486699391166235334536894604242128350908567257650621441277549419250231928694204083856910981657410361280518743257643260732018923054342715215803444241168146839504276988304725163159139441270680101517773628545559270446135364318228959045122573594647186788466214151340242219460651246139274271808710361764324834046666204994549822067533942478321699644297799905244218785984547498255991406532306743567792251727330531134505038659951363631678831600661013225719191979504512209647910350863927714693289311629154188216847424336239121901325801234124721037490081290490550886675841688949066468037709651571445283798120650598834701195977580602127408357744431948277432679182826983193695965627733119785443268153316574184896568361653112755056990100054091155493867831694880495184279028433667054447080004030509225570037905409884212398385659190557563771681024193719259378673348438620383590507397540454188477000686586958098103649583032849644563901930612717761283780276833246783430568597370888095672015505697830124353425439417386891091651026304673378237266064248614783984489242529833947189703283883659013038641649339898638911369877928802164455078924338601996824915437317173816190861545917759211147823944743068378137701551163191111273270233078812991717096949582847152355841546528824179961863995382755320779832070824981603108076542115208591163155427460603184638408314699847545829045206111127275663480748029282582877882314706644945603983604183272003778573575617300832416635155386964547888163147274663732485458216235000570776062583143181337161155181340051950754490199377332016215853102192280808780385156390452186282870569665374167564139537649643574864692136622513589610147529314770687638143880733092955288873199213065377952496212698908766813720000951915335445222619542327994726920802739796637912278358477797809408654430088700451547455624532618082477316972792180768611613163749701359255431963864149671755059134224448091282993791289736877459761209555750093892635513599226292694257445558023133587399693000439406881152158572836130321004446813881049627218904551844160089351957842247161282344783347643989595433714629729374763627017205424695661346152656673978595535074917944388549574479174339906364374933596013505485455453579985976829309354570355036165628067063243525366303225884608274326185475088428654376669806401855605901082630176818143040020427486774488916985523093005333374553224348796907232814297517160650250609660323069225802595114899587645018871385393611552292701418705688983129449172761671345122905496458308420149485157812695285968491464077084313542664310590642238010613313792815532091249569441313916797067107488708831476631166534535462851484802050574716524374973643644970783963878529559547402025846450412704551645078023525243588678201280269993743180234232434674560835845149697057783830569646156195853013121609952948848422321166331277155672818090813338453943958186383106920690694955020998569427016289089687588182618333787107273362246317020356766393388532876438218575326784702300225368802762315344674899910139296626487846844858620930476669291436201849669368769716518028950053603348736602514238106893385408121434084557016821924722079977534223004311274495802616832002030520608839075141295558847262637068251570809801505610436599669935760422616064434848165967419221809155336142390192044083376633905453469734123949941627156987847106226520596717153733050226537139159645537909399053994696039863342654685616775702647812853889414942723653958297672916455177758269525770823737407879827599889350063300020667356155290143802642237294490384760411242885669412300836946548997041048041754553929197227768490875688790927123643273804463060774121153885578482956696381114006872928873640072983020802531376361643299751744281033329539898505645031983219306553257408623596774506444563290979795418346156238139418040201816442541892539340568612308532630834425164738033876057842618364661936728034106868535089385967976103592740638130715315970685132568303908168576324066824354500404301676392959991214397624774362968447907223343674195667797229264313352569479955451969944591645676508092328625038313350842361464442252639715483117357034930401188083670055344248357205050065873963491208574189291635692622982095163893273708440447012039971743754759108134542800612807334905739312240655371490732230026369983284894154622965512568848925151714256506418580762710223024623004583919239546771649082572367014460063712371018103219774937844264119595433546475940672337593702288048523341746844513918475647491726709091560524405068586077532397418407699041413697950426342866888727944465546380624568262341919154146911751634529555021682913594829769192082372183621125270069483766230044571947889926904657936977306814944894108728057159714652650950000579438474976903150427707521404276995739105167485987970306680319481499954203419670633618978870766321444206993824392322929374282758268322795833569925784246969041845495429136083743394340885055184567656374718363384342127538308338839905366490890463653711085511516405032120358981897411838332184590009068103577568867735414672603921165726657357604535080849385272604769616016997553885655110187606235095399122016673705833121653526298210221503259124744540417519075765201851973755713624205696486798957740587830693265124210609164825984410373429042706053983703878401882384900658233335822691848224809359062328107149894069644489402786665346584441586178596230178706409082171677239588722978617700043474699113315525910053079257327163838700878833906977642819097053306471879643855947947132651171901999374019084213878011138193488770268726928994802542835723584866292963080736730217774390821853453291471728102666117527175590040172550074063672371265863364184803983131088682859189626672908516705888965860333693284198581492534642432462009013398206984027100338623761399324436395807326382312302926065428996174999012739270115498925728307378360629254234094201600361864752217831101682186285054060420472439166673454504999880818444283753398427544297983219966284935314663375275408000593170043795855670184328725475157771151272283288406905646379126994927644076808249909195431679664738822801419798368448126298288480845594236642362974250263058754464897365736448990245817353270037181732804700267945400012601666207726136409796953374799214385550239082572233713439898430179471428046660762236211064189132606879285577554381190859711692655680276827916239739389839085345362375280499941457890373046591145962352875451149714304682676653745868784386656988270359409968173866560909545395950170224551061797160766032993683308012790189138878357654713782871150177502459572964346085653456033749812444176334201869133398784683460844520912847124926327159784318488380340952273042129851972247005697263390921966929186483383756989816131374839717587183768293235381252103384952628408446990631240980544820145000335336250458918984494169192466537286881578138676973794826717561218040940352318595088526781487441145692769526356742192989386878676535865512253071704078972538174704406098131168752587174248244614685096603510551160771767177639329657180340168917710923127494482529464780893293044283155572675213996743905223833977814058250650465837003355561524326765411132696403507833697624587416794106675111403948690607612244117279022554870913486709691126704013296881957729879360504661490919860173791482116982713583089858171816502569180559152095727954261363515570717988079454393701337392101520937003450239864354444107045918424914428405156494785762669383252823354996585225092535682731979471821702998300118673224405410476685969402713604917602536371550672797817795418964358296863387610773339546574105778900146192157598580373388800472652410002849940488549112383184475408434358399326184631786016157252878425902935735535330455245155279091660918817545034102382013281586709100964880657669412757458366792191434354171921060387248950622990633640170180055036000829834715105646826884675709217977258470504808019988605046434946171291026869071058280586140070145624863872644034896147292983466852023422097196805767957523340484955688725479878156292112638089135890114546045734581693374550190190969672593175342815137405348012600146315155034614060158156307554404657062081726427489659403663055965507273929480826552141898569362733827959691894720480270831026240032572854072994683376807162635288653051835657424343474454312045953516176728670281108510470119221222561441296629058292880218854386074326252069961072480989367657052916358185681915421557900520887040008348652726466828966273073401909702159320051365877088013736706316024459107362189298665677955718704512840234534400838488669613130816916123801375147325284011362116280323771503273108629292430324994310932571165410259240281796197059281943618827263227861336932915284942345025069748622867918518556753773390687658249260043866282265450178448034882611058218688794446670049746136896689147012605311398927045096101303513834734787886721513558542900168680401492596634023849649055533188977781220010025210745566650649626117107576302742156174289363818510667842078058189341241771208699491684727756139924184705810801794248356539904233000221564151373529899598579090894820104851687189542751898703106637568072062931002055900830346518185090442229997866321485071105966473072247918394014276461839357998022445991563881148795525833462522255359303794175014269725408007696764561879131832096579248249394874600132063796291015505479180604537693469481090602939610773894454963053770568337394085973199132599916402927153279723671938240236478480947762449380475049026212274727528144974618384081429924550840936059701183668543443665445509647163454562517434413325219034561763707455366301590686333141780932068486558561372785576549396197874742098660919475539895077695558976229000032581243172496483958121354042097738241768197675985678509605770303378942563732030815379156180418870902825977625909186529926712773577171400403600247895809526111433998405055280138192397404060791903369811760591704346019117649106201968426647088464356468230492533352547299337592976325379484397053786303386493001040420169761615691747338452758302459588285989612577715624214561324825130187972492626014156465542757355331824984601115430401528308068597979420325789035881579608472649622906392451401174256753020531200634007343735267136029772775333865622530110607818200377204549134349013223357191384436712090623500497662251498664343577636214035219606737316481869234271276118846181220463010594533043248524385348886019210155761778972774604333897179223111103311080069581943630148218769255055724027920455736501190760239534887299864159844494570441811125286950159842134169057318920281365581340476178724792738455275798454978291155181909996841461633198087555354018516842819166416613196172518602837793699672244184034545115514226985190439690847647339203344683185377497710952389433713264353486899012971711435614671820311404845217198319407909192080807812627743965098441404635943943246833449585624371904918245850433144243184045196547923020456912744767172767271622572196918127893184896558340446379066785304149609475242410002117485316763366269240675038819642436099843585293236235128295764802518008996239223166191169144042611308341171185545169467393047374606404946215820887598270103704301877431373746297570614949438026778100726997725922319232658700380973682073760375184923606915617560986622892964891358267777080876636622727873669599239215316251718602900307341449996994022801429466248236016063602667806136488396735007718793980592020976659256627235905289399451897460299042008655208166965409548398415388049764097958401366910267594971098144171310415481620123417394905274160547489470987385007346505091384380771948227673615276169735307611735927449046011560318720639145058245773168112326161960553395613691081504690964050648148510818860254485783253792372794317246834032331296931945537138148126385597171927174811725454062568711673384428379035701373153878376352497922284058675580536467002372179704498349438690769693688737896724449580241219598996955429050272710577924641464777548390924931197521152325865154369490982060544200046053938048311481479209440752692595835520705930328468443183061682116214634084657408492025486739004712876803986149311324436770546867867823520615879524756592404271355168023429764360374454028801083393472877118503068762070851410852101040273838478545031115930564749976003269300203422751536893839255764126943344952978412826225983185369862175786446199149795997762634535610302533150652505621423985071357853690154101235270501039702551116733495837560150906699420201277204915541234659381070607125522590121297414542982117241119536683395814034449983863088866530204038277763240436032033467305034041270856333268486023534409904925791903469203399903405001565740819074851711733648659651012148975930383869290892444766118181272439378042230994124243490411511084456047347512618245309398347716030683577606717045399504657601130766487159848007603402373229877536822004117504896858659212257586588850042250897609101467336563343461166904541322370259479272661781202177652133176131876919864464983156284871704324153222261990339991110041525981162432741278054998625228955583523469352030084723739526329673768681203235893612056202898720208116235801301470380452311408914996067115434576781668925244335092934273819329576350811753693673195888538784948668103633130608287678293338772618664111076016481312624119384713478390170410816523900535062247887722277225579242617131144212378970989904188463015027781364035158311172631412987246046579858239782180836217110322525460718553294412191742398721466962541981210898762152179081405939736130787084051685637029021418768416317094473067888359511940257438370636529335573038121824025295478413082958446556813273255545469104371254599999782099061591244524026148361775122650952174285578604674290434171664214722753501430232885971076624718266631643628973534021649232130275025463350089151350997619195644269625091770129864060907517338653100940600704409542765895658214303417539567235925241775677288942643504005647543322599942313713662423336459235082452398444536904109498293149838017049513650946040564431417790092979370765223220723691900632501834409392338950361610625193156162892961807136393158633059025279555579702570808256901112722359932009472417618385912511351913240084426575158794424070470028967123712595757583920056221548435421771268991314526935447594065897591554664542029113701618490541775571794362040051333156858187478696099473678338011790284120013489525376826802078763773614598820334527540293918274586333627988664671036116484292931721935814534896794316926735362529062610248130238009915384061991892520220216826963546902356884678255920209165295377788635336191774021582791255203376015720180945868596008252123965830991117046558102606062413810346258685884445242775032308040213017547559681387347631139635384103947588991364698422896983180550800197712929777464501063516597249913764122525482170016015952494162564723141908826175358921149584607890264782313876791594992863349839316900914419437376171940057951955083913954650654596930036384820855022561504435965943344782596094924904831315927690580312429957954200629016448955121528165175476144681806827859376719697128430823328048235707956394718404136717524390802389608441983718462576972975636331177230619268143051322445500416638089134774331692194179457620210434536866725862638938990367095865133822710312810908807389140125584088496708619776134503064567618491178931783422343315436000199166856630762864493987767571100324405613428155252011909780951090935690299297844440677760602490463282433263460857940476120578739949979771217814260060378645500306747469347357787401348742644272094277596870787151840343479802192183469784651671377956839221591957548519593921900642196214521011846524353545355913234983664671158937323459665350868862499547924625323226451568560940834179834856721443412957768466313371630252855459994602101261108695084976976402308933723928946329907981556686713952371639741281164820628689377885409495753048969089257728293948501849150517458926185248365623711015193098396966744216065094111602665116335523000103738530122348619638172612426096385288950294463716230895356673715324745459792792747649163042033586111735288290559416364524597771005094495277251826670735782703966011273380962882851304111048730719386703169470536837977874438822538076462324444265419113463148361713497429396588671826127269489444053087855006407951352899909127215398255165403714232389491525511749808420582335507705902566101803887070328735426307563839129290097047241669769386297999193864431368838047328237309763277989653636611213730922327412616957098201860441245769227806025480879337380117245719926119798134436814738674384113629644254175659409519960818949755991599536489759049795359259017823293791493120749394151887370607962910632516939978134041363017812653710083040800435908849612351378206178038146236506226219375346547895565517531831017130977585957369255774218220902617795759022078695394872341132234970060638471949921569386827935335065536160109738915445901452742641442309103689886521413617307247480430621268420638027182960344406670601868767343162083239539231896895531952481994099875996093145937460381632558699886481434816354257404131330681125158245782641809823479998370604036050624906181413306896877344445201396028335756481685994878488846505219700552623975080508084144339756077428972820411593714414091165124433523029653862766917346697325007990091781369887473060625846343855100483864676394720327262415804400302669555819401143595402042605760087926626965544509943681989934560967747542184710029901291263136052539710056031727835408620967463988313386039918761381867734729158485808918895443677990930113631605631352982355120132942083226687195109012220375553369655460108323707472225427406342552874346357115943721539226316981230065600512497877651539321059068442261815705823956411837187783372347834751071505839201467456130895892349336281697009986131341240749588182656219887459341454058986430930893396048259599074291271359739572148715180206508114272972433752678044713285293999223850985506776384467676028828260295874892635105141730001006382741290754267472121328768993477600567482335919605491013754235602864055682173484199577801450064137095394651145908373083165543188741359625996086434402119080825819995244542292737495955813723839285934829065653331142659249966254490669238126045345743730553795582241886173707169307233845829969637680034354148474280585384532941772232284471939797287786867499368369128853432286020213914735732429531960591532562174921920167710487538854738392030979167708745180082152550892247620500168603489846899144136978772306405134204172809148040724908741061824829912018263258116379377091827053873016461200909541434695109792111154901249707141908323713516877442407050248872893248633216487516614584121189761490111626682301017557436757107122926196054637334308664311158655025154807452904971522579383838323917054535765544541589843990665671700391349543154169577258598359846093911313596400033156945344897695898965135088619463543089818731460143588028446580815221422903453395426423548632805542333090459649550025725583212246013769857838954335296511396871420920107074940026223833463092265646374626199237401575013413232717942924458759365961758502577007838617269455011641014441129703969011661110006277327114291397078358574937742584539919330786361266485751974471771301992855917163202289431186465747554586110221346132569873968481767202290703452698447244982530563117259305942966572595848709541198719352139134042108167779483045831984052063133866388952781293854400612206113349125276155066948377379771604270315373308242211091735506187200698227689837431107710520883768791586752627630051475291256892213280119615270050479467555766716927425619296399663987890054850879732882999548601847098313000134511088903418672677092609815779267719638924412201937352995524166643107622201833809920533379625039321585523794931140278016695737258654111274257373750744685599804794590122179798143467745705525370751157095566034615625309583823572896937718034828642673925735811510026410023550294347721882522966654709036675897773459097637332590429204944935185526362555731838299328905541717023828969370489876817361368994633822954682833874445530065692168735575323162769136832970862601781065723501044758639788811651040918116703997797088662224724554830745904337669085398167725245191677210845249851654306239330098535029372243620334658175776927657076704716367228434881336957274709224839317084426233844126582601309225560977492244326297490827945993243135313367648623465937925130372604750970296323591332374176626692930916351808813132277707984614683272967297520507812281193478735356477190259841424444734078008063790201842353076772145525271583815799209246178743661106696550413401110487602800641888023836757880181206824855152856545388812957858121219597285488833161774134955207360602247719541384988645552897094490592829288779195230438979677879184646022627715830739569290456225355180160309549765137299350204282567898164423805734988672831912273641189281021824205100900878214901259385255778760085879648609270310200540728704712325862706018303925038493736768825954426551221772358475546501812484885678220094048775253357907419834623674610979345671798884148358987511732006090840673872618172995441056525734807126998540131339174178858531659754394015122070271734576852080371942522989359804735278358738539480034822755764135577793754400111179638684781762294345295018500480003555066646729789081195231914773915376017180834445590238681917036699550098783629109330324517581565431836920910794408567603603128335786268822045124855216123342439231252452293997910553193343567901455925420840466498932528846909977744103333556305136776911335086957882367722474313564999088539934588965031882123287235165663552633135549815993476223154118875471667235676494004592974856642025348388434741996280513811970301266887382234447531755221387794634239170691826328373020538099512405208733708736435794271365208564811138930015830967863621823470356701039024127138483727687749464784190765034141828420717882968855541683936824228470839396678701212760810510247401547063696919929981620543447370822898132302007281547575619532485571235038557939197151954502306507082254102385094836184307392929073004718672176038281790947745173557792654942471301243453532896675326111039612646060166392709418071043190299179166799986492228168049197911906979911014887583160224292878014250826778809552217136058841917416567970609006610333624393237003656577303034198361774590293411248192341390230655439343485307575848752077343315718572756795667490650092869999228330720835465083547153020592691299885411489552252120683560823059318855852822205423256882472624620470690452040745010651834076752985257808481160539887222319155456037211998529109875740433664713642327361439435976314685186009215055741998406336133509812774141383965575715667650480835838772771689627809253984409315757137123691731431950120212256386422250329018047399952180483435086278477830372710324835300445035942670822334200174763439612803419800512400501203102558520151283911377098443936069388917252147887722606257361667409832079662147369450214983029639213715485068721266103277525713229469908955266416877950103879441391889131836668421303651294450299347630757093634714203688434133397262908445678785773239683985611091993038808301162903327904358982001615986741655703465696533319415688533215482111776136840904005993677378389556846387212212822350045689300199747880707412158763644519466471432338024980975104878149182611405858042078261492940396800809261215037015763359183777072574085392713750337601102437414595265291706990009219140409483633895029556667036611193198513166829790707131258131252689032855643761438729166753649380327985982585638952476535549507799378286539013182330556604053769698775055244351229651809569725638062941812252862864120193412743601102757640021274302819905255815602442836650011042536912618041211566309524031453472654249798293206966032916767288759670076335573896939653143562718599911830722017239123884787108924429945328483090425219840792025319742174876225180360085164000627402438132456080484270668242644617231234556576090952030963495694892848121786205791868838525121712283620445362852586779075417129229300339701660061801156355680069220687491812584905808149536302942144435608163371495080448876390921818187988800175749761031247766298678439392375834775886111718612163568085832096261737744132282040132857644452039274676217934782851527373286817585720670901170058525183326818397376901127918070656966896617707684493793782598922068702406947555473356646052187077089275986697891695568943074917739566285774036590310498194394253436756759068467295593880032351267341454761350084831365254138835148200148999605056864581205221762144975065043422884068079579259318433546057223174982395916926925060946178517034501408889531688829465027510604097463002430875065078326102128624833362076560602008522028305452098420570839092218514572782797822987483755490978537609211665716553094262281852444260678487474285385682905036669145768660864508375339874190267785534200832546761217848613238461845813647453251009265904457473562635324856728945469995451308377804256830361268043229790770303119521143226582262759152143103896841716818321346766929248186115561030101059999328004370195756700745718002127179596887233832684454247216712500009333115229442831670634609912225619725657840912465465362846372364142206738914479187848724427862624918121775895427985948288053638399031942679866053402647807415078205441317634758340620533541703986386128709787885253694165349672944648623986855509606700306820250194204023889391526347960042129575149636103112293004825149440196550492540217885149390758935759781026785802263354388728270146004426985105353263712846683863526166884993738025063883819288497190789053722834481862208266169646014328388394477349434289349528190006778601576563849358935108358364166923613427019208905595180959721518653479201479191745160072735349075865562038394609649695150738494574604154300789920929300160253452463151296536205766099114212980027632455196725145403300096330202276755670930763851526705801670908191860990386020972954604934234331602254326596651632849404665496153106299878954742513247443072004244950733845206934351690093498217299599295903699751285038288396684035695106712242464284218108612868244015612914862601656418192021229712085669353913305281654383969463840195171722699057630943936684696216985159092026765134671381592600258263267882978764332599051864182482369294240904983189331906809753050013524557518816685158576991202350930278568040920426302513169204150262171549139472834787169672641992974120056498157353565763199295458746084352341812532444998549554955654129391631012124654834133253986261453488471455352776704017480607720509127913999683316312790313455354278936115258717427748489073879624999740290829326387011024042997257205472438494021500529939059299434692059808954483020903170644663343170579280647158396728025416425321932840361664117140264278118981815214959410105054472026051191860787295058723363839937079958997036583559318279169252663289904161078817079409343998192016568995112770239853462192670761798914736053334174466303102822618057293643025736629923615246980429445527008411521568585732644343770291552295192256565031810933130316564506760150043288855643208395757390045721835140403890568445719056297797426016439559423111672000205369665893329058167761413592950345411371968921650615417795154800588283393764241085389962886347697206376430996358966203956916919838225434688251175220821732155449049351822849304435592669798947903469045975428061428271195801361956925901306111745490586088551514259007743893362325308108759859252315764726656814117798642747376984716632859432411697509936958427933020393961040448556832962382993579248066605748819742111748060543665309687205582485362673897168187670574804107638921880966559176466699350444484546609052769036109346436527160166862116883216497726514079452511475965230616472759439341826586441137290353631417177991523184835505571217720249694778494298976904584154359984033088706226295362408624973759005471398785814680151305067912837549786349484421776552042225054858441228238841304635063044085468783614878361332284648867303724331776327501261370417394601315139249000954013169538303662272981519069655082473374325656829761489670396356789940036444262747261361991365815455967024367734658701380764057954725533025842702829798995615476416318037099253593831951830704852601463325026603369779742028790691057274541907457745427658990477872234260475734387556682124677680156160717650841613820533288356120563489024989674715961212476925135301065205821559048597336639809142977690680347896267002129540436058896925890447297663434016716129671982451712891912273133344796686019331751002346196636908679813443365509609443384870448379610931425464882951782860161015421627567966993022796580593204789991788828875454190590536462961495106382742597344524367152419478321150940045809199545885267719281233568674198035405846148534135370931237805888869040154308110061796440032528566238851910297897090274579967856787452931005719011092510212254345138125777083300493823137349557842253790106039312986838356384961297893218731419502887737886749280493239496011493554295550111092354963239958627866838454372500152004947857707987823536027144662095892657204681660796374672940160376178426785961502870198797657610428515785693408790441756628730315741774221281247385437063270666823313366555467853537935680174636309252761991257056259449249112809612904850484499991802327747336274628731190923624377611802577547289366764639269192388952349889850427932832830525633265573066780203607607212749938337620462985130426294299134765544712317091653536437494359901836379149781144081526169585057522590517173164769649392261342626092604944120232784232789306735739913759428511308256915289336673202765024781189385720640511602738425536591823312899435624077301015540043577441017509980699895532450715962363024211806756627771666102173183501551115769880003705080993982690794146657589182047166896973362080687483602637577356230705107724441921129717623552400332155311332662006238141932605200660715755462018509474949083819534203375308360092864676462594353703514440596824833641581789391754101474284104767788326765542522972308702741734491931863878195373631335549576524579533421522424189858804218095400409622828550096080942391770079504487748356932063854829847861361831137739037870471122011947653930712007211255171319366740773133109140833733575548561365534369999387225911898224390227583446712654246542055529493428541284592831432541562007531256408021164671974004769098366382701434529643247559459678074662443009347893177620078163677585359046620053671372344885045824291131906895405563511400598975103904702629322615411261403223242537253183144577405527621157931748811580177715673187733872594911841381194520881709029052067835272511808677562355020118460839279505707901853180165963700819695959346603350162731114590038506065912796568525427327265563231137579325364305526543010667684606672997242137933443219445542646451127171055923229185148307326139852366461583933956705302287792621073510695420697053492345213665443099216339975400704402167930611585351454280307626697661462784849915202794300959446533832715162245109098314096756975694059873810279626806208359286120103071323887432047466995426225401356364257351469266870984315258937254009725351647275461916008191914844113627500547248780099114338032105306593509143077117480099451093343757009463347382300520924202802637695455666158825808273727866827455040830359771208125407441186450271153007948051026837468984419067554924662239833617420128543199551249420377051367251170875695426891528369894487567841145630196840054113945424103840969551766081011900621657647381992777503353658496637959936747976286667271226937525236416471737659801992760649327480160428038099191935629475703366241219403793047051697631083853401484214109824217372965774608833175273379339773405214101426182960544576565773481138586831354910825484746387679593609559481090926645735691262747846724866138668705123083096499327024751711676958909335763710233416683859174388367072591722821867179890883294223916328071277274489196334451148324096144796506723619844147759291479195334564349668971124850460730300345724603671872648272192400883639366133180948444149401777738290483505093046968327767222450879280091645560029177556226884668191306667915048842185684987355803275233941644808253612979750541011324261930969371958839324168042738021089827172874602301976521562289151664681390734347314452775147901940554544897498227297023868305723536220608860610558743742224471334578790755458997997119174424761225587256816418974212942887478550999606293750635012472223594264591015036613222936297900479320117674928792490484613082907119446890301570144345257732273310850440294255834328321298193073446554075775144933443645229420761438008420892184624882252598009465453332319686281930576599975690310611663497986678904484364853172162183158575375871738063189640939012979482838918506573036707068800304412125662500763708066448650243702084861085496939311894416958515490356289183799560276227138963524555014201773697283243814945671926249048352707111628015829040587599847154782626876830791997647412415847832362264357681665236408865505062215686380142736701801553101353189918938343307858993856359465636224169686837006901019707092038695125975319062574833891011694620666617489547072521515634418598525342888299066579910950227984190852882363531850039957466850053762333167680774443083677966376257115093081258867465636332671765173153361468913572146373353931771640502203243865795482145678722581231908551521367474281326260889356741957478772193712581394091771202306289703098279132896517114237374677041278908031014117976241933955354437131043826548852020673170898021875034339360573301059932372117402064446473293369899779267478463408020625359878499887573498443668520279682734647909423225191278236385888584310097598266771628118250740702120569467708779839517455381147986890284466413763565438081908378822504910818230387761555538239337212114952182453578595678454964943549665015745757567213864677040413481568931639064857736766949392628324224228709765406614329761667000764530182799043741854319051612569596438575765181088732874680471210178467971821909737809205575968642031593835082180295133318130491358550105129107369773768937937554136464050050493156142350244223770202919371453477295815474694356428760265167501435701615109568639040012193065483120530660682647102415432723548172855746936695666483132445057272237828730442718214636360385090234072419339816812235770236139251660473604497106709020793724006765466920817005754902634760431119290193028676586264285121528131326468558509437506346657544209710223290035429849985280604076179954712669262235681298810347491059040082568571841305327907742320160478487455543194677149548816012288378150351548695919641743010946794922805295719414080396251838274895962443073787225399596955462762783263027650700073946894869568321582975674175765922180246460876332525396569465977217165485122220025307716047970264847341125432642510806172814671283226750993382734010485746611530372937943003102130840184202977704695392940630497273076555272978456329767715920365497600344542831180888903175483717661280102330256978461008799138112123976441463128288378260827649077352440703894687111705694209626260241548655935449038016602270446885472979000844548233673786081818222522521601712981177946516521234518362323182114091644180757577501898342682259701247771479067146080186014666087207450651750681090996405071039211448438121328753695163483874465318950849102568292849217337836193482311136127957000507339479996531579224521990067077711034125401729282134551066462489354229824551178544168155060673303912029565897895513240862842435495567254775791287186157180224709284964388716880204382831883665449302244119598996543025790317732351679765901052973688358245884151260431664891620393714890927269593821458761427218731537610455690394278585598266047694652324495609166267981968006622234643544391079753550642882952387374195589998108717169941419936506138769694428346815659108554086777203939606164144923463808170783656499792496702078108246122528635293922099340685898844709614695711042846522415192559120743581720741143145117243812083788862969241319869208617459349560161422839310722406383687476652761976957047787853112342098021218508219440602840599715002737009622903722860777478513963799842561085659728487029459987979009268698537824107126894270890926703227028468516822060887885136392631334966904493431082052445156605093046350436974634626205160595625701168290563624548779750070489892347284506828966925038643274419818745089811784865972519108181159050166184227278425214559153881914336305387841910699396356166461623863795462923484855913683258341731662826954360503694779963211942943630785812180826313350782050000934374841438328054213713004802223802487535785333386373974344282042954338956135722897756091988511259828906677245623151060738486326773793493740242836901363859789527251531612733291541881811251545104321254218152508964517621000556177489371891540105459681966779714474658850571996750352147721132429279527679699392454892926218043899957459271796569408254838828879489743992366743805642517511742580133392845113773458155654650812410503692220975224012421762067204973735114360770167788408955946119984876403121633094563527641599139345777157592837543031483853255800901823332575537703542386284826141545592215764632474869640790259299480492308996832311274158613155156796111390106922652743887842360529398727875837733937102483186722782744155957256596964598277343473638680485704592139868123558119834482314997987905100867348683889754420498961585819455536979773321871367648626943807504591383753941826674145287358161221438608628814326992275591031234721647944444273029913540229095847017942800577441503366583584840698428331865654880449881594271456043980437793557651239402519632188955868784185854953601086466839989838024106843047949476765954559487832445786948605936293610860074473428152915606531358158960281925127848684193237417119804672852479582815678821886012892890085740760513213769843481806546769374644101693596119150816154081578447989802282610712855704446871374826080904779799967439517910429635057507936528657258791603746443151922594895608954030619118583739856445448298886625207350171504873033653552932347890735475089418837803872271646870939037028340335518701818551135396193584401949277667173444453839227351110226864486468730557304038833133854280932731520361327144748316891375932998694437120097704113398480160117966960920863340241356459307737543636964277012332681884939868218123917458270340998953028159940677398757787240103039873658096359507646353591418167040421504270532519403887012925950239114350782990838559281970923737964907235851634494224234909248924375724385511781775135203629428404767564075593521014412543788211331098484069707121899234158129831198522712445185048686959137848474336766613382415455559612234445225546492476629395861916922657897189464442689917685552800644448624565115636954018962967305999006877327412232659526531912450355009845528040925491201342470468741600864933490931847922909479393820527154272293266222700473902393092528661442496995407792611456742603538448188174298326623357790770909287953205272702041965375025966891157803287208936600153329119290818964710711187821933897180895920260408548400490591860168227137534264431212416456138844754868808888401973447418949289711888213977654382693966459382591065831520644319187351105011407072484611776434173211439001650825408999655515660761965768432619678127825430445689825865567387050011247506697859040027620122679109802283784944946213823913848753047702859914165255903756347798745773563276164035010845800763527123361653621398950735947069525104437809661271120742091137462067414850486974090791436789038862342620423884159604896901914529890566827276094660976470978832884227384986125592395916594659801331957424353199025831078562893701794105298581139782565093724229769666969637745609125883748933687609793546853759073225889935508400830201230285791217015557136092132414522564431752801563096578728544106568898614550650364343450759068180854464151725838186548714418894860401181893785304434422778487967328288237534823059797227374988997900093578894877363243456668020387418365106778890002394085942323234766470070136803031006997664159931917080117840333161004685866968101932445376787494621699192187462151055747987760659146311602671051703424251439183634068824916881317092716956463363430664151901130893559932088252423811819262061554903024956260425923187898919214744087916340918152431429772217942433324087719716782055144113815202664213858746669335198731880117622708245149152702653864929136960185454081977054464898222159928176281088571341574701268976706643365964888560277697879097425648298941779173151259574679286286378350421213456898181399404263012401431352370331362283102430411159249402403518680537911640262496018502059655090930543468931807738015461205053195585566683065161956257003438508462443817216347244844713804125671811636034141252866925453445108201494632954838195892528721696514909235199907297512334545723842343721419979726896186143561139712573877212257346383004879838080337044715756010344984044127548854723647833922229740352253497575003779603608090409371922988620286689550182817956832158780094777666320692288324097844156602100064697973624759145793376450620298334416423543554298009264082787668580601721453889036044000373307728579428365288232148466968438314722334427854020395437602672866577587717068951426936221728295986291023144606394461563576928282740038002346336212115990227086600860215959859442406027868722056888770232095363036027951151977521292899364879291574648496304831800706730119647224430043805403811500478518539835200601716827182078007527005216461349654535840057121161434643130959486408303794283053135422748417869072767284100691200810980273257839763578293563220753798340854116074369128038054872649163989337201069605329043408212354085846529036735513684660226149467234743560948951671065763549418272407582397688543807791229209694863360459348295900721164271872426676378328642885751407345440226861968450244498415518960012742060867066919845464998831110037539710158537841504691978199016617706086264939980053088047937400641550855144899602073856203396991688542785675892791241676968945425882520886692385738545251701184670571144643678868641336653813807864535841647441562636691795174284190472640729946921426170163811419161056386669807365324551939954850648631119549880971493274366240196848113647129084821588680629337354046072295259797568992519759571402542853743891044512561485423816477842586077372182690063199991429433395883189195135663854123426542010278573673324244309919687765893951256483389581333877686565089694211016134554284614228502335290236868047527551147705548361469276057646407789726401941223141526704415363551424239104227964686196428078157944139533744467405782617253843693240260359961030287974300756058814237785657540525484341141309880722389685260058300854483479725519942515050185012334296759340471297371504713839445930876770452152887456892387777434613356521998779722092556051280627338858972442895491353642582634678874367301427263653946033711360546763466452107337077785787437233614271082357927609322230403489711955172644609002885495001346544979091553723984830269905253805199234693363542234523119335662667634372424881336528268883505297422687835388018950420777947990709205753943272176529472991456879550991416823729636622206062054853844492713819052393160776478745831812642373762569773282724278181656436740422672202673618877659304056831083597377239615134547239218938052803432019481284980568103801068821362987490448350867716671144793434382577139680135354534552583679362512563576300765756944091427190664810749998624069532407817799254369333340719913157855701575372647794904618891391786287449799044064354426329524983068139882032359502070779213939842571780282233646266674213388680336169603021718120852745772142791884147520164525656627555573306997805316607508833921089498104151215412406829743384020592592968647018452306440996176288109180491732826062557714406638751948113590423791179299145303681930503887354053582042389570586414367834235112861069964469049909132340663093714155403115619810510743231434299701410656135034433462934313954767998627481464299046401943583909978249409209649209506357652330820705038909970410314028318411153758545747214160269512723086909812192286951851221876546291321383952452111374505202904827889302499693377626986337803600255349119375593885448810056209361431047810453305009007789853241286362838329069774727034185092280459847017202204664502104151952367748606512762318686086841424989198668719800253380640117043611098192430728779111965523303242137802751810909689792827035049014052787147909391977421332311387433318703119111911758457866846859221129322462986111313643742894197989045238588438723065749078226672820658524886040252635142388180776011529743594324228986128366349807906604071707177016398913063814085231038606657956932171674785074022688169576985750161307229353562668449966419020789385472429175821495128226118052701090041811649471563284888744657378651095667881858430071971655315508560216320994591385089436648409608961437865402034516428727309059741691791377197113383456873355088329967205932797710971468426845449790803767822954537545935584233959920053447231400043818293567977868388764176202880425713558664672611760985477031939112385462324180731139693233681242154572842924593574652537181831605640524587900730050015424489651103633096760026451584134394553968462073076527309906021487966866342408286282171833790577475182149800461053466265602070845056443876320679629726315644291484133554846680388271018134894934119416624472896567651174522179930830801310834297124638322836254990220619300029487357988456608638139047649186206906831121375583575101207065813501509564557417655565108638403763822664656794399460209876422336297801850991376994187263676371758314586451616001841288575080505798047236053592268995756745097052035227791969448996299283042176208378773154148387722217215976719680371413431170808125659780714953973824542949357201543748102150641222680394470464401843080751201273955495691775947990513201378866376481136191938756028576917700480499946132786570300874111807741695190791030696560216897834773941646282045041844614311043681454360365617581189483483646168671399013011854605410609395193850331635678985665669026578648577262784954869527888919285354027128267285513408200791754412100092787107983745607434254020175308369543556772063229937907864602328614374694068591533390853571823962445329997259204760344770917677075389919525926899572009465846739056325026707701657160084120606244782624043288740411627603788768433865153512386595445075766292652237155609657563818527450017641856923929725384509612420983480979253865952798063344035727656763922889446038884825938413735265163936479013260085147365381955553064012328933436067622302029439440208655286498097794481556584947104047230809182623487201966703767395882054372101435377303205816394170651071461677718459441860003512955903407618608306314768607797346361279429030088674896827847702270150836680262832659324639966550655589849581259161758713517094555172551113364730224744700072822654811062768168519960672062534114798652583550511979865664092147366241708346451696077502037439344731786518372634777295220446782441117412877158532754865362130961997734811994119917976644219479784433384504333188705758400880755037429674879843971092521355544224193259918751995932391264245794130589657820026308009067243985909897520293666337885295194554319009761589747626071639749342961878224886881077821492316812149217259188158535577318034165568772769549276045830375615739524674724920350738262465553959732947589045956436690667286222461907792157184665864587920624766025267863883341154953697012302491816755695551927681879478569789298476855919893483611713366480923806630635426539104288840769572617324507768689385804412795182862495620993995108179067177948935631429043477970935612512017493109096437176661740667999316358021600152851612588851896547745330878158545850406211312973702170693164051574462376533505158966849914254467798526946803062470286122942509174428038410536068253300616784618926357842059224649329050267328773876203856200559249341597283462640458183347034716534907033690390781707713576337877769378252122596281302672155875936631009667403211269067260214206737555195182310704288228174044849876513457780376039356104226977660284460199659719026840996860254812035256943514200587887958125279895159558591486362407870761139000139494804191367705258381377836050969188596350230637681386409911455179487521728198872449894663828780694341840776790886779370865330333407845138532746551794297867036265916128020849592832165949733647073059518998025078215121685838078412190180218440521461802102006228188592359795522003042380525886479145325044140594184402712050036805111734262184139567970114223760354452417750784140682901064124789466617948505902944023074465184874580646046838131415881315551535921579325615838663788368904967598009982610496793756716516273687142718105933661147674092956683442684282571267841227821268985311623314074364409275595311185186350497570076425852150350347730894243265776269173922530876708765492178968585725589591105468675772285209375790310074208983497226861709248423135077325741200732352608959184794604380917036558678485537978032819261600605708051698175707775560175253312408823622755521585755693545153166084871295679950999658934682342342792632754425649587280799917495079359356606500931411426262316875868544553084920630685958102679107083669528376831571203120967555474020750018053861942105683189699280954825210552089214929303164756576676534278587554185040308035691090793960260283348199871936526173509836918812503724191154908761922006877983686563261514299193225475072337955456521612004152128168898851824230082758088658389517158173260710619485563601454994754814597082402048161847790420004988084841466612936695544969804167297526198126659557526982546865523360198224029537350267350787894322857764974951990751476457545952000466449908002244752438053714772746338556567511350335604471004425545466401180558938922995339385844880530276162656287892530358385795739109401572977529601720535307037453838696077818082220937506786690516980797415283656166458564810774393972854309323570176811643426220574779918996174824743530262891975811591397585113748415597363846115324680846687647407613533017129437610596719735476933165361786612390091449141638593383245312111001673011779980687570380776672912700834068735358093139055388837439274357524626731761249843583957612051476078844030717018574218258143822277964004148964809553164685125237488442508793082707103207904449348138961752632463716426903611080453559333102199287528114038978387213079302864065255009612683138299979724213620651044948705807072763341885736852893305205482069767562746601834800373660039859635226955902086711533999781267206460074139137025378437852274848825528857892561711130938408675400712852386272091899416037770808634903039470261949293713993453396629452951001088782569168171321984275112045975595206028015783230339197711567606700507065900888116829086925215408724957077780965760443420000960868774606823864230399451899095564540464281212095150550897245651371654578172653692667724979247597551589668539157350091187491167533920764718375089235155679432798369284303701506123553567509331878433531758381348525440788047814388149423808887621895391749769310681321284280404397008115127360543541509730951193444254791415756722106900111558883864314191938660108187636050311126767511645016541081866407571518442649211296872952388236225866383616397266007905721117221679571531771776642114846171802963524979279816731182589552936418961889967031163203268495415446084358695778954675348950418037119167626501697722440032307646655943578349053634482947443338633049393393818066135105580716611316984513200895469312847567600152864532576110419414185042406392610783092389363259389378966451821010159262843637287901611542349854950063423767950506619609491743858815139981738518655335172610628042143789495287816557542456419615671675027453751242623304114299940728172693228919934090144642840929032979207730187454645686635644501562663402870859174157186068222904770499380465082924571452285195779718123209803290744531912441912070485418960265967099700179707832023347665994958473244383745738283162479015915909503835148908224189852887881875965371878337437463684133675330135149732030046240295689987770443843135430096930273302737834810627107863243155435073644984156666620368993869126252816465268755018710569598206290879982939905832788826296740572260167654961809422602454665311190472677047310822661949159311056536416398903205930167945818227058650842407760504392898703685117389029303150898032725877656160685586680097782148971457901875352889511815666267196104902831923796288842564365933985533360683490209768997001434968204676213271283027587904587542315396486709656237349525678486920099563540190436279965087608582890386250394691975229497116435889844815492266519831389773451916429925551888018138063674150686192515889899948352052487122750438516021592101153320966116177161326005716257429396352360328388895946064705788444978399917539086057010712008188022014252074092124769471445408405239910360074909314613815486947118024807842135528267977218051356048817066878469932686423591359404057607937211164469721733318505307309280989457240865265955772990329500102413285109192725400235703932064235809726456942758682631461499664516973385934568297465140459227830381802125830881604440874084661258402912697294259671159900692038038498535762251246044491312585291662957939378548944176336672237611561041513612491252603739635278540091832512266107079712113628758311823679482200341351754985721413890536558725550534859608606103711524942854876185400955391313325804758179742490707027063964742774635167854697216689006080641558971762747809902730531275333686909253065518100683175650503752506503150473838349779514666626427784410210507949964262150710824040493197157104456038014441295834431644144460474307248297272355919471883926003979356926233388268446817920092898934524075682162964286528529578809466530664882967051513800335553449108573246164363595504172776130115410465789710991352742321993818044818540351888917359235601317595628390000115002016800059480469113477986225621713439987330571760727171543862553414214042187120353128446338962434865596602455943116330515540592986617704741986352659723305546859181131258981166237296350276927178436551574860202438629643001411798134439053673017924007885985400855445325553572044572166144817199617822503376572118253815966505372886840710991516331914740230798066879583050341662879041814213222592437508011323640256444321416749436079518079532607523913217145764274214488009848957592908112401542579150894649047954903221699276795269608509914560652925225599394949236589768069597073424812269694927693375970187817863412665139975545247722533036107189288883554008091827369648434761391960673198842899831545624808070336540745159533825115245361246311963747344226757579129790441388943504124745727595206501082960870718616757226245876744355219587187198956889468506725108427342678079236248311653730034065297406676621360607234750331414804107891604531305864739917729128614411877793673115824701172393528023385976831467992020451716484111740780298375387458304065257127591780015021542912407447767704779557238088356317782340773519395806337526800349433403513782966365263790986794055614339294580028315160109406020876752493737186002499440512285124533609985442583788414828735174005199769910040877247127813294411954727516638728876740008740700197629879964104914708688264327047881064920121291513704979916910702955830005551589378519475106198061354643605990811175354634150324514507022122946411846948721044190176765628086638963079837339667315416773340208547071223747761922421254424396903028130517734199841118660088613036387994896210050749738084194404703312209575676413820103102922407701682888160255431140091900039803614511225872672006275005942633116281126487090154990209212189194730341782876067080050961358170567500084936833155789950955030689590986619513569295797431273639335002192845118681473215319403200246817640921968493490980306040938108210514279995213461071874315958548062862297017476036306813640036144816760843887314804517590611743421241983049563690402910955487007475082487122016081992051779094485780130685529050818480170345574244971189761560455182479262326342679808518387400283037821597070078847945568265675690636889052028503124199842868997220313991011850777503714475573653907234958774067963228671859305918027765870583706423153295727638470565659500261830098181514937180036360742077398578656692159127162127857977568247033655979444942541090172629780453646215346766334773626752400080546581530715957756771026980902979466716014187450048215085876975621318250529824071959886774744125748876917857221941630758835641047309340225857266845250814560543200830909249056666161567697265605888222467394134762621853644288712233890533094133482726869716038936743485233928462912995498368441659193865823475980009834160513488950960952215803002428315678293441117559459061561099941268316140900025151694219104776160396915099586160687789761931252711541989308865338903541928237509142583958632425528473889273404074688622666388006833848895747987722300337340862435512563848113815048174363414886807087545581288705622522254347615621521701792347012143286971765448415833981112791665087849659672490853509233841453831171463853206622448490745984083977799853254514331253006608080530378876023606286587739856686544988562374290378724393205525922849486475016134999378632947334905844398682377816086706883896151793322513443060310704035956990358654727954534619389710726189567294695514282907821556355832036676376837717449352961989388870295758704384995244804054166630641628723036842072422017305456266682419548002243995570781859139265622569605084313021685516940097945835126071507455824660880926767274641168536752465115230033065581662101512020244606350317372405709492682098921148752575516485030908493807310547766396081290955094752080233451508432743190293276618075154867187583473863474527190776414136423371814513225180024577626752074803666062640887927373277130497083443370871148989226114463642564275008624135722820849641610677960696273671748224584893794009077235505987248322426201837580272340833407951406228901131949200086292648001121098323187380176788086424461401815289876712063929487584654375356864796785350385297608310982552423032188176018323019516832046052404415746793459097494086325502067236357760461742626109705574010712791797690810551772323440200286350991117038496925555030059513180055082192522153554328000378989421954361024673064158146972372169097731226938794091698894552781302868306927238251952432137266182505747909008730932753785110761246801284148022962863136571981420265873488892640902502757119426382509185703730425355627843992320088880859727472529732875553085710118587855063615354959402763034497293126606513328846621599699259103816507204604485387895875798148390451741513491992924328630019703994657811657860009007467735820589696403542307488353321647952509704127010024473471992484340244777852397033125331093938858215875834372799354273636794253186000273972455497718537290656059551916388484299285674484857752481614301245566629336320757468316147421760752896295903522085805904739793176862041402701575186896113424958511198999559689246273068807369351644072950597042346571250252521079858692062361575483053153494062208503004493715978528407022364203334029506257475895113514577592471226804582542541836352355160098527000499313511624782104304176292371301052544783958204897899766425128216284875416478467531533752473704637654205404842573706511426824750106088804970442513917318613435276892134815589749765840767999408146082567948503509233485811034426462830333120639331236183186462362213668131913457712271084299333350584404340585615594150337474962388656945880588196038049695517861523986989400877572457099104910579038778099149432253743360592004377175047817439831209617123035286564432890215773332603181181794114973022412209973920418103534818603137877387008476353991733737330026723658869398329612417445528671336284455059952427348430057324114424126536480236867082363125084431014127647551062158275344115043177005622005997756087876778242749770570315655894993144080312462361038137781204743551541589382434473436858320980399400290885994642140090997659005508898009447373437109837661715984520141123486561655808485872628115294334481242787159719663596541791559945183768908189309045240637577551958891984285332026719767396583435204806016865821602984122937942491360512430020187022943933997300930019666544585742623230878936056663871876107163136322493775999966192243630161432213669438746961147215555966404604406433799120510855193115196940253119726017443297117740687625111725003697390330609218934737800301123640228968394697890765819331733507204052158773858212967084987592138313197848527530430681645120055972002758254380695384071954654369898309770930171547004710172715812540723812524815227806942148620163698987122529143295863006019233499342088513000985859105092092947703811360196946768198891432681602529551681468306810697392241846177478146213075726912592586417677385249420397946245344957748381148953321994950554436586082851696711424608860390571156699683634865886906951041309879301452277210447923330383423236143130414536776150872569558589468756520483552205186393631876829001156232950005327737077364769931926758211242090913018715548068252736944414150527788033501261958112119641957774499570345768443349866160446043029541050784845215444708136764314440786436057140071344896660666610294825626199299148709590306555117904691496681463227029446158090924522678151284419492937209174311115741070660836362358422261142493456955214830971124760003362770473648884675304435245067420286784867078962631236650193177987768986044452579001524014614325762310673317813346369565624327861598001048477150575781069536469883169754209347240783734392733857397864273085100776650153490490275746920836781805196399833819402735900021954071861662722946321040536408566788719412219338925879114455948504376853596786230359732728426225284868207127477059200976270739888544406850945117828986980862644141622992112548234899309164432737040630031361962948449079183825997684069449172845286800292405069176192422020737338604605837189110197208772806325682864630006093581041584064345518666643838358443463348264843494003725321931847031702870613514768536910624701454419238630891019068069506454177408206382117954955958587139029709533303774295934454436048551480253278270725419239768407126219946471149741439758514780015853234520795987587418037512862873308363795523185753623201564419984755990955101800463714785599955516799839962322260656892931620318989070089494464805293669857183302384740160951373870729385819894759355520306717310890539371489126204643828508811175318693312995438909355426358972084400023887492228782323894680179348281676149196296407556744612568191404089517592622825602496237762946178688622280278741598092341324201952846612695421182018458877583781871783744265293518226059492123113264127433261686536130068966289279526077847693726248244578234045411345754468438803371846018684773307273164427390833316334228501422090905227331587487914621804920553847717312783937531214267187857601874866630530426223037359798648642744767908258571065123319424499898903618000756592466013419700358099530356141414912566411105248320505512477766639073636317929954574525598954576911731752148801082061150146612915231089868614726040021953727326114867249080872816593958822198770938754015723904061593139396563413938746773156650407452982751011138136505185669198847779289857948611136858190824696403584499068183456383666033577565899914608171440477293519198995124166658016565670845799748910492945008009500074399924333715535684969573562596307010221774805084559274711393065403075591116294046693832446878754639610612719471504025713514066657867826391939584900687620160688602108454214617897499222696490465277889000051550383905826271411824497220269454647486664828239310628704763441686595763706295446582775846053968256366608782429478817781684081440431797830610720141141544949806453911967135963976076737038937988230518486404779333064972587795201298190331436043264400933728351248547701146089852101051947189380747731955531121879365933413132472539329546128006719705234673973031212458993098696895321005689701547737771056344634741693526243256145894322045458091948425628766004764869111573642271470168531653681944305911879021479737889952507102841961938641017669671090934030765530141143245802459137585646676205609763677899472414853037544493730498138449068916645154039826784339877985718945946843159018434635892996008389812421314629814037375084450499303403713338989491160742523073827540885001315755081672886449689220540242986693904912356189857264347359310045464567771515912361253747354024013791145969741752874654733163684077945437328064017569941438445180885216775092064651387648111582816811540851232863730092085732306745276058847738755848846911103905895902691821938183607961349132548226497991598875628963411735545839210631397125384722608405223036949316958773977488432069845332746592911753872132718638556689472684032497968181983229698854024908772407069136874505465694489250310350744244124678603491132996826817449626307453680243973705833310049875508365865618034776179732510045467976980445295507671050044245867984694759328334776133799836977520811213056756964773670877184974304493420417650521295154129262379397632366812479035817659909993928477934690395844952480104359064506715503921333819779084102235653149479653984288279460103075516238319204494770754020854677029041225127089690812679962601084249786041250217211580676509179666889288123382987645761594116208201614164642477388446304119317299497449295970358556958209502529759740609073009887317679980215913042863749051475102960323233052057132213331900348760240008421217311154918719318833685688786925808422201733731139915601168619000638530852939837441246877325161644507355195465916266968892842817654953283747934118586269683631316029965719975559638921818811518577128034692228055066277186029137532626062189074221946630521645655507744269505715246937009891199539749179266679902032593268477876209723638348882373391804324567511590075246673532368443638506704355028055641685509076027972892483166302104039235399884032677599382065914707787392624492870293615844787067707728214633695603050756727246683032536160179469149560927698339806613485823057372030172149885857756550327117589332573119504849038393925311859179815372415685486506614197273630732755037338718159964323873206631144476556473927082476011912712648087487535770014035678496904472467813287327548138164240658800302105743968658001005042994099472950015482104670598305557657372313264143088859812851839371931975710644841027556245904913247399938623164513411462994342678681800840537862175599082221817863938718598306771059083891083589670284608538080816190201566556014930713262090301780238150295844033923692552321750885916636864987357154242592374235306627897956124002239032307786980408184025164745112734076407479544065603192374178461418611638241072394540445160924348667361120519291548135422533485477281651772299924134716942189188537546792916502945286912026870536963642497028863513605150416589792595525489597132263152613470511541183589446560675977170915327727216441283108991307663923544290818987312194493392392950972057797565119163031111098666736548876154383350571439482963602786808307393453433091948063581017250811401413992221220844762797811890692890680210071423338046763572757930151988360756477583810662752893949837770905611586746325865162057685229740799402529179982706683728035505083276787168647234235588828105916927611367253692799331740406419085943718431731664266217984886834787261521375326856134618996027571877372690636341915563313086949393583442895758149578378759676275673405102104329483831291539072729957324021992529847791240603788606470332648382492400164188730049084585053526093612774341809071909265250849545757110526458648961821204615745280733825924980205090882930301385731724685718148272567436693798902222952590154989008663111086831306758898800526036846135125238293655153956756148788483187341430515790385894540906410880589062720714392579327675702052391825067328397393139142825325256019676650187060163174858395330887701451367764095001884729573480880470055399185328137484910128466723630631906941435873504267609027514220500104258507803679878719837789657318579472170331772147962225465277068569707954718622405775720622442138892795228759301878314833105601278720614113572085959662421506889046811794093061766721390240682608454179600843961155979440555069798321575745082729015020280895600091445945328357271752843133149645926936223303251348847085149279246311785174844647920831253355033111710925746240301512532692001365510102457648682298006115418261783382886541723291984073953619871087260364731717509325910779105430783672967432737729419198476055799206829161525325621588648035131149270868330691749758089227992615243799574264274063144341729255879655714201658660198143381784708548652143565054310067789692522886588089281339840187949324900199818786408747006280870405580149211952741087027752018062120771517448391990450962670243117207556140862188499365003016280769493020811671663447426841857069004167644079009618320832625092180550222548962473305709877075363704848689875924343685336188185007846746417096793656687173070690776218302335907061841384565772810540113472280206741494837562763078142341124911435084328044445196140413174733300013127593614926099417454951830694078013758334179170154685052566027761811714568326312156560640095826205494211979713777937537215749415826117080772342224674820235735246754733724543213444031840067310447023825115077801360239299157967608602410081907126385278905439868867610225389960526361651986379327527685783699595387854071364087873527258120201348269716843102080247319958632019250745618149683335656611138372301369512724049987333021435149260323727791236689154278488666709230517184031002544711039897042836239698467982176630466616029519749924871099864082209105793999198599117839101766404410529901578108745052714965210985136876497803373774906598331130992500942741807035984790540770487110235739090214503184438838673021665637528878699495211508120061973696966153260521151671823538542305393758034440230303844824552267923468127099109968471073382950145819241659003379733188113853869541322330517697199216109964953196728463230918859697356599282629529912132542147513870729976479094026360579674503184830079356703473593347881309519646584436335324273997190486656955757524489123688727191098455026024670459325134711711113753998736030405819284786953551809649288307843437895772109573989134402741291326983159612702457007587909866376297635644185506448620503812743491513205434169614033959113343711689823777233830464798161738933718012879972251395024137665271792374224057583132949831413522651895638721593768524659498020915773952553183298805947899200435067304766465074633023177150520589198720343581754421038820444128555399355544063273369770777820982330664943386959596744037884232033633458971472388516044216112312734097051779581621385221585691387831017640782314098453025430577303602526138556010097499002482213640905985570699824051470560477305888088399234888749658252680146229270039368693234239527763878911587144631053224664250056658090036157732785674990728493809953519030247106313052942442123508586514210198725352707833078902558091476866220882026277569789025569391504774094980186868264211165022498556810315875660640002716246937969646289871429601982371806724902454679984026348136905248839640863393431486997786940400066884774751513403425138352302298510768579201672003907455815988601857275752137266973609219662198535865450756692043449783221207790928634912696940787586858056993453187213939011437281237085395625580687866819826861625133518515676121470988119861454768412480179732244548300595308193211651025779119520709670113712134854042027772760392984393968289738636297995494402113022662160573471264904653302416122729993442138754766267224963916887365284524923795889037785027903667592765656775535174824943311201763932834059246561220114953269095651215129391597590767154790457163752098832072683916740868141785276871151178841626985904152716667786042102153813807835488598387929913673286197164177273984912613701103802116668857279724248444515716223610280000210136439787499292809570939000450068886889684425689468038602995337563240115571342105574391379658524515305941308562250817264189290336279895902890624868133561761860769501950301673411663410756200917021428276168160872240889953552515900933378986469605872804521290251601283955776824964372564558988163232193698519319764425667939358223804326657515013286843716256220404068072158439651734312843942243534086531150496817963663837716119429474598412225440967648518986882172785312854042357072338452612625420854463944274803972075050413819511040704196847942401279403037423282299327334490030735129380216452130657665699580355439998699158500569840546538442020192592315219283288120306057062042250532866973039723692341305786691142174158446485547422937275519679760734646552026435173153995294026770286192000436817357269585318797221637302734866014310200499983276454644149483079681397022194397252377790966804922237307782070527237237060499486851810535950700222458636839325187489437076155775541072935624875112110774171940799475082387173428200594298612228517987320323771250094384193579335428963611805145013390542258338881464053744654474431294006538555884338938756748894914905214039166821426218715630125481996760568052209199889303832638076899801820921458712657301817570334498705620783667819820008448341045912743479510323051747355077563518474149434978418873851648857382972522162887380161113176214427168881688338735114845291916034968425853264345000701475953612061880634463793478314213546197885727221141825027684841102461989777786237658900514857379579625683548283840275339308760044806025696190199254445160621104423886699485323794129598029337254014635778536738715506770858983315427422083524618519798949129134999723865416904397142760788528077707872808861593414099847666155417840719266007704320878259421792228029665581449400142927758621932622673485604419803869450724607157186782385861075592020648259136920147362488852754142151041336718776353949293671463175095460897207954580660112451552151635390476253988790418806437214966583907550006932151799730479084882364436394830134030992604778581991539247439825241062750560013289311152484435540400246085366078995937390180407345916389393140917065412795066870418586856714661553422703544743247102737726618023708370266365931883161304861538964007134847775559407793500671849185840662096785355820780040259233307122637942843671503257811385936261916103400338194611589257806444230688942546800802308274967223829041881306930319382528770765827693838033852710607022389423182820096440327484375975459303613671228529704626283689045547636656310459613974595815804320702844700173186846157592141144327499721183166806538773888517490140612674045246105608318899278838107839305756499429980324974451344959635568090494011235881607300957414930251067601182107241549647567403633965187142860283456557699680399248521513203576793583311736025610621589973570975365693471787582888907587093017559963774029016175774059252212904327402079388141797008007677018163831270571205419266003726916093747547087489332803557328453739269927503577580624221944951893639108367624622490040040469572132664116392266266470444636514748109592240959670895078919630500139818219208573757098376308182885772459959137750165816221498702508349910222334481620885334028476550471018711443094105623245327790710923479672465579500413064579844271647121963015772658313470785610445604495715786060111824747192535864874000780454551567772366216172616259627272184773282342948276974443603821199386488108942277091556949089157536069857234914003120602709607172847721564224590903980684459277386785888464537223518494583891790769547781941159811080266339299272321628547354703203260217307593487840428566177204568031918364013521881724342100457175053508060242552944599351507680586096732664954589404717583132382835121356077377081604560224470629144775317236675316606191339153748586337626691933210559050809559116276802664820102021815066376221794975752608251866808879807078943479127096309652062451147917367048654552415303754573613985174240948941746820698197128636630444655454576010927431890947121791249712448511664321196613450306968070910615834696614840542078453843605956307117483578931672602524802217586429159991363371477956409872896993212230416688809737906292982517147497982335664353859230748018237150188066360877709282466624558517602711012061306458831886507248675081599265625658733113568186148034446871830613844064780508893575580587488209262160430146514569722672323905997410998488456478179165120377124148155832360744124334519329650631763412936087181074794552631958718338450676310865085411113655216476754603115811798419195327912947698254279319815486615364038453804866924074096099934252001493562028752882909902239104907169891299358836799224041529871688775944703206007716168710682379104254082864286255165213808335992055611593032975863135451211893231481759913839423626843406199541687846503846954034817833902091259630352607024979650237897716482438438125680909561061509429421165803632576501400054333282479096031114705254920950988021847762719927067648971789894289060609224947230500013238561704479015093721517498424214402471687257378812474204345998715533907639580156792662186983292874843385986554415766060058779761928142985723581100550708866842516308836915626192845670058299977578941528798544685498127180561344159322979055221056041830007901716880045111939683347148672384266561182463610057285049449157969373497980843895895953426943319955839741697711848375281428933308856407027984521443930472124889409637148123974098970277473988417046305801136323015335713757289662665985912222563067808052010406146558925482912690489731506240601301581185260865383615871446102548776071303444220359059053916119666108380029320076300368300987085307194800140905199058741852418771660377757717394092142023122140804715546511195731339448451596125263558841444325912989648658214313826592257483860525685233018718257325752332269651470703617737697384677052959646660582113324292307834601945775206847036855222015826651221443979995862816292546821497625937076920246323356645191299719071735659892956597834641984970227060248709466498786510831477149381453721902092143067666339678270780939320774985286051901180106671455799759380474598617611134263204073371248479417664686557044534315541793472443273960765750176471852112543013742037636201006824068972267278780552702126057688437293649489077974685704971006205375278723870921324351463026166814913833017562597335341737189832965784317323471711693468882204873355706512566417386426965047637250113634637043154974091586848227253010309271465501684748668056608202899663164734455904258311961340302586922626689714824582072341663389942819699187921660042223511837525352842612609005394691113775788842650847886533684511307863244279622828186533227753497803223254785523564937541651729744962378259106299139455553412075639499618754838956086542322822228671969660000327052772822386884460526497959822796284034394830210524695685674395793859715658351825608169405741435975436294985029693593551835230744406798847734806855342690149694367399863082323356533607985975367564598748590278833932231987704502523325348391862560040206269548144340281587149508879972265212630546747800721586279161846918375191478006137719562126847048990296042597916112979495926589893630529126755492655868747154980896609602561377110597756282317616057374071260301874144089627796632810595004614478327838516311359593655420287639994418993420156620772788912688374163272953396750649207151171108141412876349131758758446984263059875023029384431527521506773709703503134812354252216142737424079271047333752169045462926641274562540616874465782329755354325317864916701170031204590913132077546434027268340142398403298985087455222543013419153741458840598788536521290288718529523185984500492270126960925484202048522923495660044283694075597131272059936563046273212534759861779654315863667322511756497637880979751768570835018293459762427985659697044237951251773070178373880870135581925194320614863668037401805110846298223585440918851376520699203906291276474613479348110719849750903781628735395979678365893485456631082258764539289125722971396117208329105981887482539532529996316241761806908873510474132792061489950702926538412643873116411106306140269064253974694136740335993862913197712126349354163351076538450381599089714715358379889303705816141618456628667929160772916872267026092987899953585921073380470128208764678715265363902130853244591924312651583023416548504297279991426349594165375910933336294052885705948507550938671866561178201828381733492274572070369829240507543186340247641785622457384141050624598380672161072654849385896793135868160614553077865840482313197331111684694894991776930720775139981404805076460194024526452073281418779932801360416691561751727266324573247450785134881474423466392561760249584642942525135889655812812337466228008363637289534730017870175483916977814458012365879620629634726803991247510119601465056534738070332414762543036966800721555120078878257362985824422865756757134036252840438205226151381118176167052754031745580161411301560555519987499771344313700051855193002602595666935001974376403508535901337160651720938029536761406424497661389767735518332961547852614911081601777479558779550629988901904802713771535535859773853802582064208118276602815285476041627641461503174665942521851767004311338715719883404543681040244609597494034195110962742623098465119791278442539084280955629669350495660855138080686623858771336692342254212668478155623018282774319700452694838226052250610160362331896645814880151181068475473064626342492216788307399179243412457143789808939689139604429035617867803286927579060549847847245584028953318902945816940285837562226428152308934948933283013920784497688926122907506835318762506999588791902169773742189378595734828657922342803101100715188068175693875612449142917195010348700474245912794387578389183410978442723488362613113323621680616081069995150855890647125522594278296040201592858693381228462808256514310192729765612863392212682867876441928845241604439862508017395097158351788545395881453899934556503187711631427259169029365158426716116419968295717107693959060222023665076667975083175532884643901050981248258240627289296534856480396053092943790333676862543522552466597096138918562468517137573842271291619824152132044303538952732001758630425689837535510833500709240656329461174920336680965823516545861018794068750595106115912596665310379782971479348653749714955571208938010117512305656095594788494604642560640025757041149216656793019514701354039190314635969045166618825178667881988850025725977452666086508099152636764641140902341628317369798424485029765083046154730793033905634566060262813729907537849716770767615349546703093042684319309741669512970731186124039970988551336366653499794336542414327563533589739812353745014664931984136599474181742117065710040363673043961212852628629576448815835997732697785629312315929208673042303911531047121487227753227555928574927734078903111214157214345311356835579762120112160810740474741646978839141376571944529044875983175235686554366985537188404174534621558858711845136613671646287385878461670286117425347440669331698543831505448935468939644912767620539987079661619094676203342971564367642720375555096662085967932406884805847682318803144685513871786192407346613149079585643015028605224220703887161979455391491706483392846747858412511447457823053788697117027492705742224379161285234978180332595964827149884913320100725464234624089400284995872274368929961276576937855222316314041731341038759363142372072239650588689994089151040810770693341209038418423975911489641432881817002386507097566387859207185719923476578988245178219010206853687648836409824448487383176780864699191781273070447216879794827965021780548563354031420739998176984045617886581107858210822481961583546899940596752936477281187748428732634272168515476908538036101140951605674851321170869441416600072989500465481212973371585580129172884278275811837995627240886853479430068557953628062400754887619271753169244621186981910753321793060454337735477250133084853458677552222200254444825138413329216231585229369980123968312797940129000116096861403867970677742386340780754422278314191451710956523965401067630277862615256853068728171185925560127910138014241717784047372274126626851351850200241134762861177894004994050308264927729037145605716363356878639765138751274279291816288902136321721048183197376022092266819528828738414101306623834426944257832417197489837555471233378179619091839840003238256291857444577566508018124334710559818601765754223757108296235752073801155758285476830748277872135930856095045532224813884853696290682450594677817966859893176512139207668079290490752133911696963307712463436048352594390366276514885681787110015045729704338597089635918351444906234908515362713991911990539338166087680695506449576051634387343394324588539834059789382567247126353697900943038119361638193484612165721693698252713211057086233323921117427035586297544796563893487303858853437757901670494026227835223104864632844467731042833115753408781420932198648996570246700381513674786901974301265203862772932204040659125563794248877034465831741685348820315902858329909817610485533033480664990646130692464384802034825398967056506039521371751046461327247641194347862609585789155758945582490725672800970558016201748743765059809287281561535464758120070852774609092732748006568130063626270465289865087706230796057185071254291371890139216083016020007430477841723218649879060625801530776166388892906749449144833321488543350344333887445272050225147578032929266820603785251933894677487258821587374499308870938646422988288893476676004591214767033310081777490371918707894906965443060522234816348306467157193061406127460036324499685320833297953262004219757257341367110494035443982017874630004358920298551724847492376666958388490843917430515337410287688394471298083197435409337158077908805623127203237626121940478158360192880193356459500426663474064827127480788954452085384618653771191793147190406050603437010924325002791986067313515609934172641019671206890257411854030274352997336172925570067579585731040434686527880201714792700680593363966359398723395018646725273585057707225765501304902352902743669819280335893274423262299362549429499982527111529753530175113091735008483343878945976543761437708047077797006306198152231114314787977367078934642827619102405497833694107207616326628552128559958763353522817376919909335877433495726300019801582618020461584609622677768482006781029454651440967040870156641945548431079656705499992883232441979490099586392685862353462055732225988852322268995137292678284958215216216090872091662239239202185723813626346656287230765168618882354210518984012550898690294085264376501802136799909646601114620233702656014758262975309575135555994448598628811314163966795765787878055324534255582987228047913176877958937672009212142026297722271872714363296198541065222354717860147101736502056032988949400025574819528038765091415803049814206430547013232793041120133044378919374817541217373274887101147579339292423222566561514001186874815871489805595156699932941457250570989225105849423477932628104264996778715517608058026575700992947255192162005699184685186230657710170409049510232152561603683809897681512041118315175312915197254558477772674419443191303669407227158036178128277538753671870226434020349923898790970110443268369244439215958686481219459485383620742283854391947509093455231490637684361854462912135797372989911921707141271783155590168931962120994497263914541716066882497333445364466661259281512097201856834034594604336236384415028853151751116951888005019280105204498621725713239189214406124668137994797309149858592116819871767551425049909041592643593413722714121007794459132571500363758814872838933582747681321037675323554719059567769423609250558883802951960331446468853577220814026508038803282171931696152246278638206370422157602861547201519044261473695843660704780531285024793308839119660511196010648413753823236797579292817614651027516283979208529854737884305410626330307406875843053980452250726673618197693969261628345413453390130351450625434774003988129127576510237525467811701889720834609782778483468858770554880868084978507445701279536834928153141845930474377972355872372479272183975371988478347973057861373052343372526751817716072744572177094028597677707745497052740890134599292661667796451961383142074838602885463165623928111193621758331283576352155855046998560035947876209360339332811327957733668315449677531918130545469544488228680844221685754130286873145571839479549076561111676883642680481829009713990171847144675683937060015251021830761394196342191055787064083524894595608955120107517203465831365781689080103897195340213056244548004504253388928458014431387768837711132817894577641729261441903387068296136567795532365132786428357999673794093857354874458134101560678158618501573651649333956775103746052613224682807617565709771045264566519020295904079832602830589850900668603047989354309491488628261880184250191634625840804792034946295784379802823840441295187223957563252871390062524207671480552839885978463150992316662341346375971137036010089606496032633969709151448745099324858095053659057807273023604677706692737796086547212234623985170066300569220988863373542016967688098169770322630952059059855697403832743954651288107105092726472113458558767602206537885487638461036693940024968783422404757039493277573557043702528737491017087412800302357651271122990369597571048381584482807562823621016397144169956217991044973831891258785397264815244678392002623256809221051628865902484728784847890667681009471154694731443711659530480680853766683650229249173873668781498204361884323861906711297537652678740839413112397502415176256060524826348918012898807969279659179041502137713684593101497064493050015319207500830299004333370823159743997806658011333904711033860514096453630896663178154022115294698069570411560628154364160152128190246372292559536291736867829654826408231573594102142803780786070444777673687147550305887990834404962592701225907486190117933783360123984771119091640213363432372149155382397237542992849943049700833720413036420677368520541281982156814960084708983013413711834289592019751687155378989311891091507443784028437703028107454204374845088712818788364319910830224915470062060035859782811723288416205669991138081157341679057352232836759074603880557498113176050315849204171515059695422168024128317880726559638595833901438512633793779252379249606550848497047622185148512178852863346306733858479892576953370707137146443570495561494406179079160726855806959012669463044049535544608470796113049036209987272443819612661504246674390322709424250834969042058808060810746354116075563629278510329949126193954209900522839612531792449462056358415775626662469568098780376605139631203923943899024286796015571266217535149162457786589544529420369568480297582844326531316912296837813695287109892616640472592142119956917495506487337456277631154950372555378370516138998375041133951776828577233114468627773280228764962879740725638317998065777302945256181081296258971039950364273643393943887272678545405244405926949393220482290803938788439297408369344212922103128206333971538559045045842663086982049062353103444712008862063427424896382815178079733127240560789312684986526854588531607265665247190948805988549916425838748512764784783656808041054904115251488055159324022340396318078302749707057152035312331218237384294813264193777670337892135361769077927259040693979116139425291127507012321224219396247404568549042077157056713174894210183445915935339236936801949116795056854300308507716054636955388558762331287001520433898489214924107152136347378452085403956589938362391530461112528857315242155560118049504594130944915534014843555958471652699666388506892517229481289564125703357100023653993493552743260934505680852101962493016910608687950301966717610383128360392111774193947868645417325233561987240588796699577553989434937765614592123617263727854512796514329210664136778459850236725036118599924954449074626615045477976800501067064440195312560382115215945092196462480833338234832003381598936618956509100508296796068289350964805347400466691602566038082875354760944498633606343540446950159536847883509248528181085553650417376039746065961901442501978562964989169519609746657979652500924372502746932434336283199823236463561967446842151898853034537276088285826771800741805995254496994548051166307088542192021793963212669011825224898148603428653445302537311615786482689930074633814731921685667398882466258464326247812475132232116447099174248441765711476255212224455639029371807819375965402952185725101200569361297747093741522410915797859163140678038900968287878719357956816991675863616154247146110356502418494957848999190894606668034012113857980010109477864299349478979139255751157292030373015404692636118448578018428542647593846623075306885087545489276914611666643417938172642047332420995119010379445055656906454302619730754217510149492168046361948530008391347445771050985224374338173184587756200955161917948422226812149520057523764041529863812207930025011974258922073473923837494927985550992667908695843701710731039927105340442603671200534883280712124176393409825197343456003756866840108380683501584487041825407658674078612678194636049069914397280683201868616520651431547815804394022623194865759910503620990468483032821654009952649445241514307877133706233687840083580897711130729922279319008682489985849119057436973541358258204342103227890788473314549624517105766917477858283253188829522988863348699889605982906340859566908977567445134286176932883090673762064159370828419222117572340718507950277140540295255556826518465042502121502944231538779373546206014653880352466646760373212773290564454211700137583592553094294489067962983567282959135754489676088364539022182284709076311515070205471155842180390981376895445052689505632744418512643498559402207893102917099879324965784240945372194238708891290862760616853371362190540057301045223703079653382430130461143877862667640299582168940145758213834192085611657867477436390078824649718115416119250571747311053960639256084152041874076703841365682885450233449344508992853530705837408780898546711056468036858374262493282029055127218095070775030381576867496430733001727354416655845224253867916383278912598907427235632950662980184855754995346188499355125525964361379572713261144086974471468648466570343862024238638354022722639647646755463261694278564098063658493720660577250939582415381942046199066592659949847463435855291236000718922884360167445135668839315424970597163733528533024497395761805406353499998308471135953102617127651485904839619396973233837347781508349229394142839916381180846338033251899850388458016681190095971251580638111690381168724859648344791994659111477018749447287011093990568297586298677108855388005077985075048154135702092286226704808462138497148990687854170590362926203312043014680748561150983366071752993487523575239451881128913333338571823592756206863500942867472611999601289516806537654012169673069063206732613898649279681422350917332848025801408999880101605022545829851479900045799319491450571808765711871881694173039544919205963102157911519475781631402580441910718642730409091199347762562390679821708108058901128215907375865915077853333607463047178315479747100609876981312584155815650164741691338789511823794130734301546007651373616618944714752835518298743302957862369023042686974226247390257060509702905564811019228712134547113229910938353350939680392930221487506301977289508461721380211718716533411141128628412691261251374179560051709623414020017286255175924453407329252334600281435680460518273344243268001107653007136204428358707451782750682951044280985225360708314260749126867555857046665082173292414449899447425809476756302320009306572457252211249519062051809873829712470152839198774658629793793445153021269140812632070930471490540928746879211220770952973591898133189703835905545467682800945201904076185488951109175842896420628650114694954683572540306440618730673489593806866593160669017247935912694470119429958929812226992108383802124450777200958843782932822448363488206904756323121924588942548938664237950441508208298506884414000171222694560906026509337069592177131570275790733346742005737963683839621281669689376918460698847668636337536686006899732410327307083447564141997632215473831965047487364743203380651497082681540495905654153045922846877654351553959204499766565677044929430923706823320081867713090323640143880599906211707592089310313389437732748402716789700657022399787947213350893603968259706889883373646318275003804400893613818607042505007613692954384651987444866149526136492316434245888307914972664543402059528840823773487500909008416843030107139914666403937605869299401913029923860739220340333362025006525096334075626854789372900084689875591255457618704743812126441448144441166726463043795510686527686001703707722037775565274163172828747205553053738728173234640137674882464307776516409355666025956384605272350017857482265908414560176009939542127881591876900412235730857702483124048011127208007111424233481732481249295101970849877279118445966590654505732826604877829801492803680561445992252310052124467109940264772844531912702962229038583291349212660257070778387982740725079323862190876754733028615636907326087121756188001225980665787559066138279726618423358491689416715445255192542420953973744614504540184799292022231813839887967281202401852226799724778273423597552841757734489598671299649241015527972469103745050414741361797217453027591589712551879030371856252848911871916952532778429253270503762682795163149141750031728506562936344303747596805958603032255051321265373554246566671358289561223639509818167872376802898003034300979795023448492232147004365302263996333595568265141901550712513897599159102479887421801826569112619880254053170083361680956099364796396091793821841141835421643228322096599798423004453650928013662754203841793764227403577482964550218756231024821826958128932983121144466032435495980328418978702203804221712609735507130095302744091195100844902216484453473473823568833928767142040352671202716602872695067462574425367924180276383963811279521951971899586637092375406648564951962505393768655146708868106660554667737870031733480007455219306179984958841532993858938123824351554814685367426413259622619762241509892450444013574411991046147298937637405664336782906394350783666201316077358212035722415198103158935832220604196923539527330934093590900867968877881695498525991208564962496517095313870989270409116833973356795832156852790052933043665196847034143152694104700478177182824102409423514312411474195871907553787902713513757468629354925929496395152710420896494733379444448467613368577263299300800128879191719249226014138522349226663347524957282958528910551399121939933306237439956258915187173980792386945341125057246130139621915399205941392523439027534620421845149180133097611449457666788192939227003925010074897671638564823273807343526324895495784693769192956759370079286151778434435308418912185725468348925532000587093972441047326220437751113482091498969500260349590841821484131887991373095441700396377215213823520113007543123303444168280309486933406921294248737139159747091713788470673058019718627587028733474847991401773072515749592991690482532118322501985507707818355756076132935866328521336214684934393320611474551832696181230895403678352378014862130970780127212465887791572893056049928055913175552887258088824352311225317587542217272448600305063012122534873236947460172018963549096396124390246029252478167115043686549386193782264364309924729035390761900853674995612953611015422920043799343686902137274571238311368677593987752994875709902007065247171926166082144892495055631992387975542156799190709655332669442687768147569687866435694416284769187213082228339617591168109906919213680913359412499226104983851485273743521163640026683050936757439937584748987610163709636851001330199532629160144927069533445306771633659887932607538315686875411137309896448050841468318482488965503212573524405780705962370054281039097270772451025276586322441844488335692544285037676444373118420516113586947724501327328454042350045083650909259228801115486440079958618674361936082834082925327086376130576799983327240915799686630024585319364595853840182227653938630592923204768657193126236100701871652823351692582588901513012897424541160148882451378931090388591208774484636351048560306025025521013910377056334800223436373643416179787520445338333716583655586502346440089801199700293209555859502268706976944629329416049866772349317827030774492853613658480161671104299864185638785022852326845651112009562595051215766281788466649013523463730000366339476879962363344923734255507112368375769751539961480839965285898945029336876423967745406175826057626154937522930874251139381909662600214206477355855262410119162532455034524541605701733974689113454934544716670463285257059126499808518736018311596485998830527485446924165895279444110890953638377971215515038702535978808572955306604711162749203693217031234781932949925535759347402672072347659163884457638680202645675175088224605806034258201924299513383302018366821303250447985701290390717230750621450840458793041212987027791277185332998274171213901740384384073823825786420732599136556344498231789085288343568396573701101625725116445466690934386686325341138598025003645931008853709155118630732921563087397381025798569400667855755824095461109849652723336158466990490602511047440932170357899767295234361998762159324174199757362152469581212410504265388574036809767932526848907048629122241524558648390377056869094055784991749392357902573139426407505299884728250194474870478042102449768905942240384376603458791856508050033729818790067867110470463419561768016974690886661867824149489414118091015779625582768762047789101819845886224576337099170271299059759822779423019919451033441858039235136366023961385612420324221346605225954581843295956857849057038373442432404777751367665078339336735849727742333386711805464265553001397752781606138894812571419770212168099610890421096624851734165272094417378482653223061345163560462822988081284885362865421023084038106626584872026428266567442417182740562974474497903085602790832313521785250524505740247301067722347916651050228277544059617485361634637266042623232333220812832509138138975239933002182076736954685074007353724035738656704822112222745632532447955552543585284251255851542047367566902115299703055131830921719577883534676414115481925245583016286779042924768308405857146496530535420186844406965810142333984580064765416161241473534243460194395260925968206569628562076779623146582105081731894252343405020051062011915965418769487808761778223659682231705749787686545561131781652992649440122552886523582966186081817067130645147687548255688743013957961324291571148800935231463369244439352891873266838725162912501045887801010447726578635614715741634878135100444353119461631155521205312646505015713153560181731856682254255161944913564923816099547796578094250566633595692660251968678474922361899203572810284086776487906125182199634385607385687869145638199643651241108793359082283254086203873696741342343499945466997194586489846803856928244333900157134389852835785916862324925373450529798719760315945979733598907403270975346511724727454098898422255995426877713546296873107644722194192440936703445641019597179194175525548547172692080358475895156919863024697421210503036265145111787796511355044137379398239332657494031408774313277815869471525838469119161528434089833774443588036216135761698588135984877099704314076481668445691793936797716501029046495946900719955633733257002146532627238370913357912122827510687339406985670576961825006040323411890954012655144350782504236716219433561739504501402147336611196122291972867484252953013753370197266350470524970588453866585009106597356103354331379378964392310974037083279222273710389137028095679703787971573861654927657209070888598788760569509402739934901615493320358326605310983932472892474405019588807579438726660102791943438545159837149078330083194310755814287360822426847280612909090767452971472738230407094377197837785802370796555863165080050712183585541475858692723053004607304715329344005888370933637647052034022345538048596629095910899626707758000982884032783119969673977926291854736212690381108401700201397581147853549025525614513441463703493562826156386586307302016933616351686564166686408563889951882015477715328504406207227050775620954633672213636100691484529457924016202782644615312993858504066894088837304381896125015394955596586152875818599497930974321645975923174303575529847456588134547221594184604606664235381989324624627858661961670697714894953659781192178821661706527196492599765289628553105238212705506671234513010773332371516794639244235434380595795382551579609747527433571465701058250130092609123090582524264487994197793414291300972639494959631962016872467179587987914035613151057660846641387328894021060935193938177898768911802780647341505354624114419782695012054534266549877561855144595704599539829310434045417358872604030085207893790745735451857741713101382562580882502957783608267404872341549275704243970132992895088969863651417045090279824528333762050514389880100666216405547914247317996748083924414999482381252441558000439699073368913131310120024578004160900053352815877502174450880119548466892301959031437838887742341251907210509560134680179007829565798847721478824780093447760200055019421430965441378838720309382704106581907884147704040388909481489456909092848471913523621883324945943790992010116908280503959438046575310959634522953683122126730414825646487662545755011961896645806786681013200316522270935412840307831315114011533454717236472875332243856693219210592660659038242325859967232633098317426134493826787637214896369312712739270949567541652354715405973363519752943328422894405651849756664775733504832598838692699083563582544294459413530513260662802558425576615180058327889296502386335965835207083064876618278618347944145056730516687854999596234773417130207647872280747257331501708264506083256558036412000854518491582320226697095479418232051557620748111879218472030226026343061836144316929631656333301287644079036387327000839795868841404910646525036489503321684393426269380201786766964869198215307778116054643203667994297284600337741995506279547791416483059172436464840536960567927760622584993613844548387694264024064334135100542261969714626920873057725607457668396333553402243020676367106583187735621510043946858903086477579489738633972946000752902340769139335268681165230993548679932852510877347837037200027678768079654531208932837833944643630809954101096852747423747693156954300632264778575006733387215485094691829968553268959090597213723724048403138405529812757556336769209940269319530848585591364340289307475232861675728066513243174977001444168230401511455323218252421509695752641857973464481953141643947243384815975788075645352266312648862578056836815054223255515863870450680157943057523399530664329029008209053911066254195282275126515145272123425279302598344543991832072680888459855396009940440196510383983313417537908792430368713565109621428116020066735733297831989744765180343751483333583480487391482707352226577460806956331182745344551302187869381218466122480147533801804790856783790170878850365244722391733754068402710403331243879826453238505955096069737637193276452076378027398161646687541076939163880492537975089788443097568848683664365266555986653586493091019865135175813279519873624180078015261563248258699397131813434807775878172424293954938485088398881114576219888412745554455949989685815281314671485446962434502002431885372174081987389694845463132594442495861881861102409318654559875370735359021062809543619821247605162350802878206766440233337008203095961891128116021619569765335039827090232261477782708113774304612652167123138476317977405285229630868545368334029566949983264403352504057700853912271031469570684520211071063676564404606731516449968156628309835011611203925242465513781585447839162878134366813348010461842171536083903240978509070318609093152626910103892848123703849165917614083573611397613460637514868080677525083682298223362122726318215674354560933355504671841171422106312413247567663128755673324772411017923060242614534836586214106365680743736089362604522341999500854001213018454895162407592790904722727014082380612522402943351715178754084872036088429361807769611236376032353502504457775243487803466219625132628617744017060484003740557779695241367811746160357524353330717927422095997784625276067842323090052450597522343924136038587494643556977996066794045935173739574682961316885683105504063941434438135563267550457681868402491683037027294603777512573095467409300757223536517621764552790199337163853808355515615242344869076890398807445006459236800350609897660085245349164796252087675107064689275209532914211909855370487661352957942924641308656230079945320079161495313012613081704752583532629194330902540174667234293513363076362204662650826379534595564662642247074893472955435724836234932816041239007252445891846157859887760256513051969119999159218442888454904726860428729682490217043185544663143356479543095219987520213055781390426877402711539327014746171743257302409870759126818014832369977195896877554841651066832273199571802498079964876657049442149297662539349493231248197282550397016896306041960619351159807225698476479417528667312596385834397215596967949614054609002693069693046866048769557804388419243512669853745420581784986622527241422577782928512529440322374871596131625115683210033641086009034540482061161735311571898108513792762336064537618978427577560022715930844650328137612135164497959084255746984251331947760659209360035168574917624326258612818587310804436686075292188359623744367955023975390000437041746102291445930484310996570895857390239344598894123444798920634922053390245814004247472929001188997039084303209219926705788678980643818112042672089614854739888468016560415556588501914645344962381088331987571151511260835636113828717282618946435038838520433600877699738800152214779846105891805113381064742354699802668059104230330670412502202039400349101350558544797666728518743633340053005804080809234395979730956560784122168122070365767506949045940174775831482949059644385007829638625857865478083899816130294060760688724427212974131131395024826900676615920985715846399408330998125673054409035132248088605081178676105295995867301280311930458596665614791676674625302722210598093410191676211812413520665801052354505056952157768227622081708825141203936107562996386568196095588783973480390104773203919961650119265244388499543973114501325912530836890140971497122544073739521633436582050066810580780541556075866280313174582598273716397246963783942663769329033538998161944386843052200176596336442041753462482666994297412216097492399714407438533547251229449481716488463006664085103825411936167591229843774842909170148866515569971990745471983375369822687447280630982579114149566696125976089402628875999594879771211735875768481054659121144003860112952383319085579097201836726137684491259399878754849964740787261206446381045062304025615898762223511955805854666284772180412779322174413279845759282118932764781679532049281467728155818140297923953746903602593894892990033756578396095637118308439583746875868066039741061356891335919539037603541979047256416817005718518871736146417206890100840908446284962845193672339159074381815173909081083774092239677722362658450209787141156994679428232273869524258293333357411665408410393056034251604171526571399967229785429958139882049017949555960160563026082058948903494195840378293976309178284446488079606004420505738559934438557731297888329534058059336524744163741587705605711432643592206884851466466124193814396118639044562770055275161276961040303853579025891619377003709015932671666859842778007155449068002412569358691575584130674015403359853750638604819443266223086467079040167386723907839388136497357933590331148000399360861026669575361322072626645970192854987652985946318231593024055621464356200079751653341556686946340620297929636254571055591209495481769201964039063511962317788867154627300311288446329035093414405372357780349149536720292868547098842377464135027910146099445708370118015355773583925976583976447089074539584430580543999220643164680850684034134913134245480355351909154173743712454825045878133476741719460849532000720674621627252500632002737894804513907042183629377889923406870975456178880988012714758043463673102114063160018638838900466619810319025926494108790091493624591474744592555095382450350641072465921856155884555940369573092206906833835446228690057291007595173262405555904971597876809319270893758716833701415379353736947360477306000062388328276151794093318289638860540634252184119244165938126771434377487936716828719932923184951492653549603973163138292094051634279108820238471037399655305101379501539509310370178896034866617234034542735643061486657481124016511243892362496153637350152832841453556492417958345596082788807531908282462456336646892715505228142967136993199161268741903900755453877146931782235435438360521865123623447574649832320915254380574541898686302140723442712640994885530642996808378208209665813385808609130567568546953408107132218082667459459558571190947137903163796382632107069031162060958513582816373231786051408965914214862929132257677234271341383031591382545814714635268191414312524398328237270399740113525173265708222704016278829678951971425431596019623233896023744670158735035060288905049274168957198632822267441927865535220524411342196644017574604102832289141860338227208551413350372564880264015585195046280754312820281235380978698179571959652614786384263663618325898459974548009215344924698470835006088676356038338686482189269906698755382327072482249907002433183503835821126890503717381264506788433657794912209998521842455352504401898143052073197266443557859377573524813730315274693442021046573870466238154443335442707402668747014475266479327609876008969483541170907833852713379894326117528419676521923261374177263785869327426784878793732132792079454076946651462125178137644020495511200574818827961520578084434590574630758356663339157064372743118296383673214846051097277966721511000251466662905968095322885865467519628447272438427147395832702862899562267728156732217370151104734440754026724138397173402892772267407047590181720166220525608438445924407387216477612515583620101852970783462869289031327291941791951166707279684638113531932068858941260187118340892762020271277064086238394098285227903254582322938606364085375938140272693766688587158639155226828852356513139221563667964518318097995667747577059809954489889212628647280624220244073587610347900377042175832723098943301028186679342344952841793005359383082809724695867388197543735839339885810299381104838470069451373334395264184680016463851225927994442952970459393636134793461105924006290452461690394905590199946936924141964624455901589752615803345508856720840128905520805735267551547843615047187492019961093707587686001152074654746479049144156064866887469116872969006284224267839410296524696875519631121168750705896256861123784954920484883813368173054446073446826634793494064792420175548177645467173082342392238114411328787810623986782253478246182023044474644285321973987953407706581799792058058780131009079728380210130162745858913307037489953259951347359544232416218547136911208778763899331343778415995760899100780945223591979021625021372851854268757639912649818620874004798368419273455125200841966584927384811135520706591984042268527847655815755862349554709487466209662524428277904196547198572199067647806040003160264529045322529248499684072382750451414569470165867434813245928735954133367522952864955754191953677684715930859976017764590315850477990123929821127565083999761387573962673388881006288430163172791271914355117235281757498774855688396359465535113136468603106685439582119267907892748463639160491874275183138440333550643828837113090744400369659055137102410274399835410984030532979437968826015874539388167456628965969441345329224291555472285795214619765925024425504093813425368644940933262720430146971210869760720045376700931482080780187969285027390736650313791147534335871195854085983496252822806225152703264322659843617469876087206939427706494952979646712245024850939773665443141368641352051155858108885515487166932411529526690534211832373470141292767715941457491619683203219460950937537650295932650083106679092389455195215070666100592016838979728046625982365799443224008806236548052096505023884124256958978867363208361337420042157951426747905835098989107676224416011894176630432884661844069067301323900379478732278309490554034102746721014851754459175508155686532274204937799241725225977902609840332965936122504031017009444696193477938916682551782558035427852943814567288210972680750983202380734130406152306993726835421791246445218713354620763763739936556532958158444587751918274926560453326555609297580078657486847087811212669964595590611150177154995443680656884683660977796098754169448083961981246838396115557074514602051565939635393697708075611208351743688482514495411242151549261387041149679102734940722224374194541538271886698475334430481202427208987062764336797709892607113015779236348464464851457203308328670376006013568279425309853146681318237099980998925339343052271239398006598730042838365674294220978712374778817763740844437471124876127523341295997693514393511884057585250283909339096102828265744559505002401681846135978959677210844545730310445794455351953287506498329315430122288155579101387059806581376082775189822409944889351161168792555014561494848179007050398725924693886505113842332536480110614685986987515872315156981455523470746899102061644689955649500574287095357439120606141226780605532408335545436263021937792021305891019595363924729725336291539461514598624086153653537954190313844067163943049785311755200554000765247642513303119334709267132562170947130285921999071836049859131656915492242470932788501335285721203637639602600828363421094248137878498130697957871625274927979070906352931149982035591775835750825082507688648626385444203010084208868753925964752934708068041097975996581425130768777533206165585793247435401601353065086615905854063427789272399439814861599737202631640185869938485058084532481656555140116634410754059724935694119242832061051902496223751356585463024465380695717574184647496854905798061941759938432654953488141955051685308477507968970085882898611023405553710787505816939588966949881277157076707538152454214773631533972929136574926886903959187488406476787382190190837536236414442738542383190513645508240098553867052115618517983591951870216858626327552166706421282741713739596006604576594327861987085299342996137937313608659822740960052071830138110796464892765578616516451226346884683153088263837498357825248146670667640912195009821924266843055665351138303760690350505862424556381800065471952738749813684364294965239344694354202336644769270925263107217437662888762029310343566493054928296107489990007489462467929685117197396858045123651197750563025116344412051115268135480172409109873431285487168551550539213666449110229305638012254882793800738292870801132971972906499313047027436569452296479959725818165589545768576100631653221692384281377118534501866985526923699588615387297770529608611290415896186722848594066480922595221078491502564114215659482275583342090468592837542921834637106207656204194765767047642380866737945504865915485678021606398375199894716146577533916370242618825893398938378285451648295767459349647207593125763746765545705817704176356814577293342248976594716152386916521005555661819779547578180748007175501965660423412633326700174337641345535473749840806917008395487697407660129190375097729868403176038140677337220753573703536666330244467222084076293337111163071183937986838255036234484910064228034432038414811122378507599130100709363072507447727260471434054029899348613197413568430789223378100054764906743505385565782015929354783580928811447836294971367768589079483147159716403135616566467317496093449053870704565610716639323198016600037770267690365063040505457931014617550828043819520946051110442658680063233893937210193368441102325740562579323870996961495325098156657839930910635994662474250650862322288672413825898822800524599434868568685705596744609075002998216826957791084297533290627383281039190458273500453430060221380731919044171686437938568358288573722744572290085058760946332973177731134846778463955536670554194307760237683876145533370683645629921462667076179766235948909738939085842908385486861239425119808422238722237666905187964454389778847537297704634437618523761823650123342084422639497200034315063631293213270256027167984770467210808527263731871713471836706341259583596635400475130497373964934984488600059150693652641314132193587244320569926873632358483854834575379690324467627849484583593239272326455802717970009549738334036001048132190522049645535372103161095046046680766469337965339069962108065794151204815618479622852799798052081834497187830669994010270264285040657969928163079098232400564705239812135280685713561412215494902529047029001991363561786526411095523516955121436114880822377240974640224263018558600072657800017817119158497776137675267759357768113849726352095082521410373403814203715750512879953945700023327600303095630631905580396284872188002855218698221079697888304079380250846872054219126193049594280056035417481114159744791627577571203527906127072390453899672495612793748511457141291501983535311779117493889252155768380461477884485359396748272517553368801225417393862419294556928827609046537381772018973518792651327725116218022755329880818909829872787024921045964060900252253003423477542990024437644832039260110611230051829284774190740434241385635935954165713889168544544143674745091074807945440519347591080386780004174006690363652968779383821990624259076580981266758567473819368786893590697556407297976243479191095250732614472726002907848138852939925147663414891212979736329227850097643027971783962128940498359645898880372942948827848993465458311950516910697835519316108492093274712784939607657274301466740325598740768835021134485029021952838476697239733824108266351009537306705298026694606941959853817137282535613425892981004062721237778592367396762748424735525241619059524559170721474893772177545400817207566259928104559366176246945333756326400930958640766254848573995176278380017532666796790812606966680689634798585542802597585734319317650717024371749428378329403389348677144236107304807743531714131504610728140292429703869929178230220665662340093684603845017027700473737339914783663271415835061278540763046669855022728015474627348116433927902079201668761485810051087479380648501968562192014296513096170263313860701541497354325925464675796271021879426547057601941900434086189690022649898527229552862734323262302860817303597675779906325994482312055032461511118001075597858652462743124545223801610339349998987784741918208600137220299886647556113373643555962680937882420642475772482340323282956438081495963435083059293414326071505598084621864220060784067590140071068311616873280340181216522310638342478515254040720484202203487638909919935872913178657913451271384054813552066499988241849911481731540873486882877249222400114297498812718649948309660261204443312183973243177603434654479361804910782647213021909467008532549149737870662629381277373101074621618423526972959632987970594145396715750599639217284026552222951991122275459676526414526733347313077974563809886752223969359836826661768487905642339779620941249086475079526985991617335058047856885169301777352104681898788097736114546591204740983826109968361772321665104793165419470303691098975297093284702102558984783962173040936401252626018277658406503547206736656101658842623757017118460840312843249142203145947749180526733505837812343496126550099616879213519432835738198999655551943508105571592287130227189485681037418016614134225743856704245907968739442118174177597955286350586349821150925285493244694310911889288107161279079551268376854380000408309583415836966984947468154255768814628447725280946835438801265244396816707768557327262255765814726366565818515146329811544903674994250561213008059142442265354885799642351001262649166267438041330613948005193535191407456973459642238232477144005187477270156335352732491524018564887367146256807542828981265898009440015386060363271834462302598895192333884540478416249806432223804263093841316591145231726500977613982851727213663181811517116141670310846461599759251359190465734283301553682040818923028160770219683691338644433766102652899289812673567088797407163305010327720149329129026936711135395223353321953641351937175820544094690438989584224522948716617417240362189367943162378409277127068207871067246219284722542093628485259109909769715840235293106376388383046297393536844615511728901234364900622253258467492947867923061869604133068145574143529457820416898801918604137458885667638157286368783158665443415819438953049073961761388465439786177433466828076141487957798981285392159122846521132253979352901740589567416544278885309965291987242901123704080586612308577035912020691342954211624138264600407860098125577915430318887869962829436897474155418993605236325037981121118831845492557062001999561202223320507963259856210725836749105993016256554544073309736930660875923972661825256590032426737958152492777765361814540940315695484112811615033847710482244065154349134725016098364206366508384040928655170852889155476307306722821850727088273864286278194203210157820432156455854703458794675298455947947970113720821971637500957935907866280149203097340739382508012703517019878670421963829806164682230165121655785092816661652936478406193527283602399564505756969295511942271426703201850128379534160744263184293787549751767154178874136828709273632011017760537350325185317616396609635907589409630751830654868267134040007398808716659767257637380340804341978254761483658042044431157556090052960526328053970432152450774683083956160239774788965535188981464320817953744418210879607741119120233261270520616815303195581761304826981123184718820292822926201856355142536622480234486525797424747291347959449180345184926906794777391870703968969453893855991294126663026572021734910619648089163490726157787882511154682497520858139623142012545921575477031607404607181484139748795149102920960490617002739827098725094898466502516721481186456799114322993943743812809703427075020611652928744087708847588352066295595695749311129404359336890656425525760207079431871640611302865849659024075334820774112611153029978328076148320818080055514621022247335063716601287828677529382937094401886933100284652697581203985726265268945189742290594787009245515558257354511043733342955649267728129028270524587699301296359577373600284991410104044506583297417424955202566301722489041082956233886083107057559556125460157951303316640138422035608973657581537524529713925850543174675731223880993216196553124798446455877604301488812173619285528456124228167690219589882492717516156151057606892292928508202842378152589831568036040821382907761282539959652902721415637324563628875086441773559455905190765378381890664860762853076847560424829947239984423306435728057545486110171779166948949867450272746656262413890844735143923396732407898214234728480767454531435815096063160710070448670099133697876438588275656846690216955240294558511150306624923962476136348347619752343274114385609249767151931098107758641243686831109786881124014392210337610350675867659793742563499894261255308746540832480632846969577455816607108136773967302188385028050550235285216486366946799528799868692029218895134010462260514397551013492728112932042530171694909145329887457871823339330494563884451237138347515935278125498050644973243764960184728432376090587049890862060222433369603904441019573235880131141487709218847552799362860188003526370320775856164370781805393122992238085892149759776413850896355847495179506577921023482686234516233488786895697946520033057057991414422969706185898580947813978529203585084008797723477317374642103697148607820831708762925358929068099351643071521725332162203105849961612162895536637749813057386610258560333475431002378273365176717322079034306871567200480740725989811289089962098374691862989918305437507342230515741998348549649296870511832691072740853101298798855169595071233378439234515744118629358562720163601767048983492059937049707898440208851912678911963953354685690744232045143619104461196742563847103506740116583067534591310853961813500604731012688138734965680045022635487484916298739978141941405281874970112600247048547896242781791874254422989858831799312988812442536390300335359691931537581207468907588046878925005463798537217151511194736192887762993146860654464461761817518004486485200349689599415613659372800146951117676906845919981623977373566728255029965759190214091192659126650947897522549048820650162003245424089825425972163946467164307524600114203726090552786764816179035418335596577361965580109599629764063021812562498303099909629052961940580627411633249478912023471548864251998480914359377919808869093962905722498360759382376638540383571155634625432279241096151223054347084224245813946967630561704045820066864216336688871426240788203750534792276295887900178432372160782243134000868545975279759226182251150882263690524151393061468564586311117912284204808879328720399591910773471818249900239110839285837107445888273680336035630962141193227356585821597019655628062421897626305309355402590784284869832508489030686561640567839490551347705708586481107202203566115820331222627321233323548689492676361171108446985591387148889611942363548104131074400664952254102644527198382370353670586260967431268796301041774565026159412762731664827568527866020102112705742669188941214618176801371974861771110534490293876202904687687924358793498062534583192529648271761999900743816262511572058256713855258722080389287094927049580452074597457551491716051776592908835033303152547927018820663839485975653497306150472732331867035456364491529872345466793366900644172629924897455929174576562651884381728732288770501964551439687228734072458550894974075279159086337630645690854894805641717304638614831989056730578153030754368769902366327679072671051880298269684659473153527423879542107539968496737573021869261850762884842679591805252609066381964448465839647095690304986090287075230226517300307490293395468945744662157921408579105827885254382726446515349520241050088223943884146633271159292086822052610055246558374091890526741085569073631338853409359617447431898305903964387659833133339051115345587034374637708389535416284724187587298103080457422484127614272019272614812827138943600181606496600505949639063645677218269234788570095935267623394961711054866537779906038107862984476363650419494357547487628212243546518864210040035072644230730270481353238925110054168855130954683550538171042112783945515762360792503991594572325060425782842579281032461788328951627675092930236800437555156470577864752511287931788185625278402476575666289263887333489293501067972536932816914394049260297184856485079815186875133521974550137955321999562928043908563526571359465239705012786278937607711858143462611025620605396102914605899879778555365198551851214148660036514674092682431209562057691258825210767067849769723270741636979579968133150940487540553431105616363177519144818745311816228261743844693840181952648514342473789745090532999188193989739267476632904068744960588776980403450942234282946864006506485337147109321978247884238405557028774778772434663102186736266234480823403440966092206866251190054024696113267026641444356061669464568131371922725711009497597952021902746333985559950610693454966203352381109643114356575455652456507737118963891486719827745060132025047734144021720444613692809351188067940092871086879550755589151909411936756771481822927009164203240873723951883737329488470276009186251454113906844166750389827163488905435922220839136014014590383118347595709898936825202407650699698810123066279703892273729802969756682521464686692955284355141172574969161057635660261306948857734807940023859298800654953166801812774707949279714948175981957658876094152011611550333909229610080768224421236296124820622672852810149102842150942710594395784848159451129217142147498092970178259585695978630885658988408107089409624333215187262377821666484298636670348735930436084673314419900379851657436149163563766160302574133780507260317800039831720770991392836150807508078697333723048816148836307486765271676730433684509785615624199266362779906157720040930012023384982767272359273953915340157089295406329231747195360605112361201177277183884883415139007732658922799675643253434221291829666079514957277419864527693970438441511252605449280703461110468102194980626286466864050964758784221342382649743436376171621368644038798954258271481364992600540935507002694767710940844498803789719170540289900545511044194875843937812213930196501673858714962009518167012716168214522922293784261304746156868109710099670262427779933731586223788751249825036959992884893024036983496334266057935827121822619780759380815748642968038969477360576838272779985229822504905734013500150008387203210953225056584263614542148797697203781314214488477660967126040970354121814249238783473332798254952387393652948450989559981244906479219400071295978209254276093700747305060214082756424929790363180183867494073224897381759602869985235288767553895023160680024273319038785429194858342243229184961183881360075257872500127289291817808950771288235156113123147509315300659352239809141116816290263528688956537120612136398364291400546633586527896534245389208805953319605774893781845975245714099884530478756360567897000242122122518109403577757412966325331381220715346243550580204429020303283372955195003013271519555698449255319433763094992850270770025104540887749254496204967495895108483646500825081905100589799539229071540624382644079634857506011158572900848011275457657349267817008309591905196112761658788944901598120372932969070471963098260699020344237642480137507312425831372177259006628329750006975703350661968264176261294786786902451419067499311212587058758089563319376105105168653526695678814114862306848728691539152075765207267108153112380709037308491822157497125584527500880982772799121290290846396505785806522334047377313703860391430663210253496140935650304488105929699551985010747554814558191330541295620609166873186238836622269487043186446636360400076153256772743873005963820305388035099799219890412760127333423430871027549258188254907616290057987265719242762640260652549607844877409441124284380232796343020439515023488776466280719222581884028074870265830031078809344461074447675213889051736765671164046660683367179972057442768841923780869809048108163468693597340918207603105532847126715443342849582030928757420364131528249293310306533120280080498693381314655703392750997995129314001894774597572367231172159624225829001962575051698194783376036085108755582946989835890270429620650960774439851978469225367660079132398191018337585133500496315268529899319502451163530848345701635635315848441595159817247161013999880439210933672712251029166911545718972831117953298558066261436821070461175662274232990551489612556475103426433464173458287611295241654016840527908989697206543624686391567598588766722266235242498700365587433596831933485798396787625022081068548598495063017946518040753468784210810149184541069195695061112978522107908568337318876352151240531471217115552320214723821365118778983781202111688815260712874005684417594921471099056014805577449325964532822813323550191210186784170363335470886916463538250577569313810178032782805270686454988325783249414680598265932825878815274631462730953696887291470281857628871901965088572853108690566320762022105606480650723618148468253883908784461805587043114203808261439537187976140525753662524499592584969331806267470608894497097314297568188291603167000424922649568477251621965598937915406998283541128340346378695841752390343714695596585543409349198927180031820046811516920840862012888591773913281719969796234756908204862667361008465621767963666334481617588555113304505399665166523246845488998945847573960369767452196724275859117596249043796856222615165902987568260545488928268443169742314907792055861017729991141132191112505837077498466094212069848366955732648071422353700840080228935011186639488529009033313084227419452894131936185565527419388519803071431792209049738720856209794018198049329518965973871992966707505019471718808091827737025651954836796823000624747852041278942148999165149136729216925546714931188024743181010000448674235176797289047485253904790301041350053984797763675298442391474291288030553367876873731337042839488557810257319756703179535924518549818867498288078991446886682569974646876892718941729133229961117431832289394863378588069592506611342032438565109466803184324792895654546449529512697819472138469031394020388542973060451262185533018320697457016437313429852383451685992295817559330495996340465214314469780712776019910725840698314328088694983959596896838582088793809943614674034777626356543165428623420383817890075427553448505779753054928941265022217931534068034993048703402663333641849159712766575602185857486352433518597098807051951294240148467086811369259428533739977121896349926164610722637975536995262007346919054838097298074849353554099165647678323195437218424685094445355590548680685843601815360988177173681038763581923153974486431058750024400091897155912877716769392211735559763972615405992719701289448792787797189879302276854142198936546036184840863771654249952923353049977343042164838822082132828246788961380631368644256117934843633962146861570035939344426717280222930910508439725634401141097505556880611515367091275421536456429163811656953054149580662584212408801885759153633718593782743626455624074557879898749365262136210547346080533536262898775386163641528459317794036726101888481952992926728534444236506064936162540009821243346142646242503789613570550083311599326363185347035340082920559169593838213040215565995304728311914302866987068469295207626450600432487422275517383638183973791403117416502679915282722420865929334215275968957925274205141215807580004350058143738908501144877974521876559406133800716234125863093622700382608965879248903058514581647242707149135314177466053387721940483654209985059585986075943271564191165626774842562183815840270140048362375064066578443517085526174842863534703548825292870777704513058616755205511783220666254254361553323184243359566817824557510788959222959484450551422977706258951497155306636732464049683244687474362512975564368638541264053256929763134708300183085408114426700227072799048381078335737269144580869594254881197476448175843637979419623449183602495347732387098504281126041092716445963128296303490832102722683574852612898754943750929732542046616506924472445666031292843034408519242697994055924133328303800253217370807572246726955154989858121924402491742929169715805855298029356298839508865198726091815179525219781400510856995153799106557907253671623900311135786318835410322059735199208995997272345744617309585812292551461906218261999029259476652350008720069613428121734244658908724760430375005455889961493262199260790517745917132875322502998581863666963244399499580718251267212553936899750167109784994707089850781938729428636120925249619893081391554772880090433762614922445071564841596067665302468891843782576800388407852978552473811923590786764115592501957130710741031910919705565963046938786990514904693287961515840864753166173448908276955705673930008969240485261459829937392659976445469084166775516838003436961710628029132746924953890770824306546384656137083315793027993135270999313485419066686920877070310613882335752486449088347991095780249694048535343405617530324133148589837214491609497837793675133950099482208005017626238543996222325473744250098806971234191673996028940226850414107230254545802571039640015457115476749947964758838685775244276417002948181183719079995460876354805342765131483580649687934625339118088337643618077131492298204614974260588711515949883782183147627999087839964103326941359671315409644471090618786115843834116110176589888752620462166494142240595867576472606922486952191879368024350376455969436829236502744379584142884543240787980087496495219837262264861712230086543553570255333714575165411654158674661199775992348901508565737256848579822653465216672127056264408592950243375511953470352247913922893236290504462639514944067778264810135007314551035868888154989365857641268358787765426365984706404461338434074949514644029657464410423331098998184673506263361698808607802275468151111801161854718829056556231050690949467848568860243911192047121051779754604155376450139904532860589826754327362142135663382301364208789744706271168645579233739009523399523537385506129021615924369136289030197534315738360391925503816736872621006891103274507474678967377182448788125421452923952025678603602509583876975255655191627413417636624588130921434549907227252455167488237339983352558753812702950585249898702562275771261396732577334088053960303906945103260150065436601294760533581566162073376604877405848140440721186684809425431694943388926416530705263645275588738032561721596252697197325489310697743348343301795583283326466956738619485697610192330552448183590552862618844638458599186699355991396425188798192397164388454874852131043575349839114483656833167118887250528564445621385856823905006081619030555651519062124468471478108968319623310807013755191581485332248269378119903328337167515720440315514828949187075327648230480664437712956842050482239599894546046247739133273839497951366509214513490279077837384542188908814863523554358061589302187586235734447110187158029418852012815805395298310788058915069380766824396981374807942816471692655931390053384918609174592597445027453011047187771415907996176712397382457628191028164297520697784997348175939073925598139649474380982983101229890012027767219733696393379991014025142276410126972605550865850782538202901107045930303153938660123657523242474685352576225172566013036088418322555825722763364770134590969808451623273061648128290631320966740932346464733872780317785881658912218926257971674153142203669159169274165662979870345691292597022110954917255823824922313822502882199452488853875698193450380704517306287087402159857075837136155629513578640504854668847714868878081481695618567030885687239601594893628148358934983808622375371195358347730685826226432922183932327972810838137248913253078120559442499443968349066770391775099340657442680233686252751872883142976989781233337088781856614031943418638128078490704500648433210294105011627565904357521364819201163810639980057718881312105130867062108629986336545207786033537815243459024322015228278952399115317940712977110270522655445276038473235051704203740349588400566657683274453244939699543517487055983197524522515852654244658595850149952207285796214099593030252226268630790208773490849445283717494509310169529199010366218214058584000560890802900397493436934231961676073238586703650555186826051580310406660317392685908093064341909673053234479823862753495220555581378022657612091085415054393584403645912636809497923220915008370923098796550787951371708969591795507627567139611635586181704707190025036164396051617513148206924198693591268793189424005583211436426773191400023444068409839805438943425003898136724076624230733083291243606398456149707441068351441559457337180891265776829902342686739735199257155013633535624357144498618913919327236687919071465992670061778387985290551761373133678241059592673029060582172889166118821151222693301834090633754950668868589382886545176236232057477027396170953582443221289987070054175918486945802042613693819171998139713744761695249063942656543615021556220240987022703501109068486219296436301997967146559254204052194230873017194269018946713048077899452856948708481791858204988698190253166436073847487422413633581200970904452555252511706180496093164780033122516721624766206841715934491346228152505898777880000327708970975096918713703275592058021462420228636978030694545025164154697969612850709554871230753858260462261344080913670821918624414838401662796417419876286657565421890413295561732548827057904069798836514087172388155001812166519483554606949911856804235718402143675002394285349445259243565115127128877136638364278388416632147258052179638682795380136199324412863215435159603379890417964091318690924273435776700863191986289335551801105254983012106727830158610240246503607530816166813538239326820852236611074877868652321601460608073148936301831408708917642087758713733876665733020236539461555157484450634434607996279618554953667685499921391612535749953907820674096585247650828747542074929722429499154449709048857687297130673540667315728707242769578304145885780530883014431833065549917444909526397980361480332183719596340425537910545202457042919439716692640061127565637991125939385320691383816903749404108735116309792447541915300424025435281524822982622809339335712827264882648886120199642306012095645679288202776807965801708550319941222046255700511256537430284992982256346060174997928296080743360878939688658419019363672611679026910856453189836112740305075849402861986941442330043895282710478735811342414398858068958769458496002270410507370745505471080484725593391477704900238710634183828627469256480812818689063230474168068523955170761125054683580802969014291158633631516847621576085756606643808914372873990255086237556398072506918925611760616757898821751893142297522949876373364591982659571263703005752296027645828843956990019474118094655235319933863229215004642692330705133006153605049607771058090127153376320745037992468523195664790571442733328191798777594239630974472260328547377816352514987161565686409983890754731439746302844839745865157023736369859534379477276312727406910764865247067379906898110598287485186618049180463444891881347761676794210270069715993531486447280169939183465796342417289685527607035937511269191099281571598625465598201766321585228492257543642981295593561589472156806254294894598612265714894314339182554415551270800773858487100171315804288860441944005840359798542918988754096166801207642294453815311862574143526092171090228451371181984965454401280625607563694363047958534780562065285407931665915099522598767379665651361180483102091461235592106724244115467622548377647983617687570533975431181833913857470087536310203773053008204479504329547524377787985904744381791080395350892335119083533265376029515370537257199330536880298085479741989844887277256207728549346085053312313806018008376684605716585988374017248379522476037787706038312047007076047270552310794543107196468820511399130104253968227625536386097093067646724519634573421690727975915185008981102401490227828544339883510649981440350253043109192454455845538719469073267853137334890704714057512418973888075795037674221520762389734053820887664820624757669474942814886813210296666853737670815821582518517423062442338822480550738731144372759325131041150915803378650934233603682052436312730282162951244872850712883670594883437195193017719676655322900487205005204775749793469482901938363634157159839461791031473221195363536092396997099429519213856204815358550440249572603870941057299397503244840332775926469885978294008633763002387120769389216193515680983605205957986778946853698667810019802842761532761844341706759909636023937179681927394285860892575455010517200142607203561653762623547330655056010685870368631628739654223518431332880015927381940700403498277044818496080413112081699796785265001784738768170933745296470821379288179018280335515878258691748860947087302709803985553514125779735166463496576381793285544353487032273422981828029364755477914367847025045238514436646004229821489774058882168063197702922285559738530157041404765167591652302985284397312760063169188373385813419003370196732582115048022829077445166286415995197181632090155921002872353330145236264125418651486538899711450456010972837044790554007216077520565094324056597930987024387306583764746403547807248212462201787555410129002445989058101141584994069893049872603728019074924191357871445584705521518502620905419692862926548253505101514329101260987306793034872699064812423232528296626961823144374329727653463398813355878072461452188934402145951800342374993332237464027864359975971246074443062532750200282845046725874571348341294180956014101363170653213583218339294333644739638045772462313398304206070628921891364006853313881676469307915046251956017906570576073145833627412777024080994141114544796408484337549658573891839497168961819667900787636950098521378373585712846554423266892055841825702535014078223849276121898105159738913868182416290094677074527856934753465657217811769921310505396952166459212717720120075465237586657639120177647901417813957394600795785170275568872544014604019388618498614286503589078595912474685208760201726405639758390760390505011115063268325029403081074131689381870474993551678705374554362846292730573293928723337988770565572297578165449137872331445417145199231094619326526538026758847864166633787622723367162792987941387923382422891553960136952327752426219106763241658859735902216972330274158528536377777609906254723570764606082404490932768779053246586562225314531174588336027104091114504363628046649560850679968545969379006640376788433945673726201581027643269665382587074995522140414329332629648104660805190390420501296620249882759353958178910327167510283486402987585947540228164632460942820670107070242998597360968474214362848304276551100784573260828376344790188214100009285749044081807388179390721065884860603966210019772665407114557328628831919976258198526991245292946060008719373466297616946108180003297184574942767729524055754306673742403508827349803572559145004650432616934359005531829573713701456298224900973166643094605859140210545680741188248956688851631241048788994437220252260030410322630470420373980514442725073106131379875178819523287275485429400769602966382792018211022819408552839435282513633766986724637547999940115302327739817393114604337637413599389112378726124038304671017247215410149793618495029465763936902672589794631154698666094373733025860519033358376171686681951981512576574155309947005219435793810015070763220417668286939563032956290380727894351746051766860056145112345292578395657257205648425075990043039800070968518887563193463844086312305607188588881601369460096338468810847820697857955076697686139049201709552947586796063883316109275854080127182176100321659985271502891261115269302250736070280245000948811687392327590511008469855640187250446830161691893346666836322316375532788630053805327480884183017859722762991568196609749417175357418931224742283428043840684889723332314180660511089531594229470223080766122085244646871360579856350534705351755439173221848437774499266689521077166037343409696257566846194749014653636675210060744154505830013932693192947990058386484906729419883879606549249379649634643530378035020208240231405141453169644906487050427169695306765946490377445707489365413157155843632683346340543637349990044801487403826943890119584816367968311228553986769022255260805892199143780960395445538232903387773342357454731626056323202548282040417460591996169173071801576948949165901991762664839513871243526152550570571926821362638634528691407417595158308344902449513483232112342835862409959852994850489630781201634461306483143245877133118984696685137913527076309482253574775204243108869671310572202257519881792222187712900158150080611236125010275671188474157653504977043729920298568847878186134651084406242895310732118077947713560949803279131470097936425837915197421101032503224898027652547354331661595660950117719029190022511447475861942564423887279847895904492183399905873712566958183137070510905470424578528110089172879282558898326240973984084209932970244103631042504604980680978569092032377048133486800320922765113260647933424840962367499763664867033783353657098970318719836285373080413528177639852580663339352894454271048814728957615953073566742078979876009870649186002880497767534187310115908665399304183479127546494119124876115167692898735585874076131636852881162350616381673964421190119611504262017067831384422951987215075979904056512481806182340608453940472446020593257481148669603229260233342115441568931526027886338647278290891362359546796915526825849984413928859330056142071374994181698939399271046900431358119166900889876346184466977700553798737153967025138481616592531339229021374042217454217103824085783843656916764076304512372784400137775394702949878129619130855680627770354191152232652642327845811630766946373490144876097384858097970483952491034423843628984894074066382874538918795814463653055707213353253884784427381326562051439977223830886393371265865893865675434955716149901203433376603274085712318806142636170327926243821384676272475257223877670129138214402744024704261697715094778880422837265624660739998072727391173598205665782856077251747309423218853548951612015535836352789310519847124209423749518805043549501865066115282862804418497772176153272328384119181854730189471630857617597785797943573363374548373117970618985285701775186420576435710752403909105815243877572730355923555820898279990070043706045692246579361802921478174309322457896681433503238909477737361844574711009271074834768115603208654757162891189031373590125608532150713989725621433529325120674591894954827421005202908992459220240733120775418570463184404750690687887719864215019977100745099576802591343673977432072024945660263526572990583179021900877880467629523191649107944924647146219816786662097476713348778826768440088475701617247348879884122847836608385966480189221033880865086555654247740225352232152676490089377501994999376042789970657544347141940536713890220657959835753227759129803740484018379894133384227842735919124598978033655087641371860352365428159632645374790794240581378110123880444184767723833858054018169543090481577894545692141489570761867728416971018681316269954658230307283111516695992878074446548818478923835200995909182189263395978247804013533065102847888561514971422894643271435630792695608731874406038494059568951988697439015058348420384145825803426926240536563011653161506304166627376984392021543377135424286473100894759252892824407336112100093304201947472145165570213681456142337750485464814617229639963150030281146128612824033299576785700028535745384801084378450710980402118327416459587714649057386661708816884712168300747024299222422545659399940526850988152004554899511074756824965325945997195594783236634159366831610301606344413290350815415677685916854867327754403736975973713522112078818365619847469713942470384002424578688945559081141654424166824066628194397442048704448872416790939485789827396672766630785020322177545460463101734756028130558567633559374854903909535928927091015009244256906046631956203733943983166652853178675999908228512223138053779137462319592443705248615453268276828668980893862960157254889326746685822899010052407878425442662661034533419564050333499529397454760808681182630295268018011515276214505944160185885985823798702249019694022788326761772906050468172229940872375345452736182891006804639809849379294875416623850481105989140838352199500469963162325119191072556225615743146010644569904666844720599239903611806702321228687725685113031036784067449536014414652857057194600592356556932658863593402488743605224069198582411519898629720452583108877432340019743809361890011777077677040166337319112514699343864056093610096634501522891426067576468878165871502115330487660498470526221826738979681616753266963124837789941773743438578753032065555156784294326534594077693806260036701372170213106719198716019959338605133889904048545158962520837110390955217516913277964329433201080218105957607903338485607949810049071016796861121241537816012003901783965326125975860308312704754592361325492826405203769952696990261855160492503844650332648488846375187806057664047449803028689749683864677485773879541309041605331391449655202726719881933617702504648616212040935227443383938653465179330940427540239210991493217382178004993652261244495920990040531605256161894867045448992762292776746344659269575051132677134387452193270677018259194100018567840715066778493104885498202732970828047601344260873099936664106128644978640204163507438590196464827340817088388834235236287401073293682808975396962467500328431003104839962412421591387749806946784886770237787379305471364601131146193763498888345311583112560949652357523202936373507518786848639507495086902301254323657588806907518034396879036244376505305796732704394087319553032378835037998749017385236315745264903846338580675594654588042282948134595591237964821508606780234838853089716558371567031507858672953084061101080747818160174527920003293641538288736879035203387134168027082854091201981488450236653882670304140997281753949256779077834011101109001052639805327744141100873775376663776861892346109469937875650176696450443479705077113750778422059035869819459179709123744348854369774126790122832030307213825939990546505911231812754562208500329068509727005149533996701189588912554369153998378056195420703547987833102853039710520507592517938996366292319605063923129200084494867612700551494039274347250769298664624951525732729447509692683834742306670638068665704399549858304556292662030009965339868754039153770041122930595401812969032184326128244973186067755814149584954297110282645835053581289766485685910188689315305994973666916912166857743780779843795957645477531885793267362186525728558951389646990586581754731730663975438604880514282083440935341303229403172102051627623833416692729502935359549013759048205589253893451218413612335188942125551395006477114196579765241382195404715134995648670005589046354713683263404825808328727962542191087796840093819723221638810375345106059785243133017870954714960711323643289440034858538482478844103837189549207127682437875951152639617640037177438382009459054446648171567891271779548862037971334181478119945537444601326675486827309161477234445445247108850351045017271219220635492218996679473980767844401934329936744898018991670475904495429100551685042004162267310859121516228364267238423537970240752973686747787794376611175707587851685046930204546973895453614149935775417204045811450368032567575184580635427620549947716571067929012005045813058413845985830674368799867313349381286881739119399627777709298718384121690555517308483097348415019067839659225851813234682782548691419024334743159519260171526975935543973299690710872300369773097054642579115367495942458405557935359316971114281967465303935113262270298976180545612769743595253750049305395565553065562219501039266691895073684672902914446410327055582848728990950561680216864822722923676060081546587962199483477335792317457401658986025132831461202134335999138666553141097647621707421109448256419481399471294709775415882204136095879601930726144752476657523559277896899128583631100802327462128473426285718178707136969093659743033372861610554335270720698868971549258029833773422954897686774913022258785320582040029168106156751430185044293422713717884698697266993211659895430221044743455337263203445478352090840171364482411307664443614283387029980956926631530180013963617288285972795884032117927954124540168916181775152848252918366467309970711991586878135190873958995831647983574811856076491516905650614249753449247855988576691947733936835099237765526791062404563895772111483578550277749007808417950681923730803597132200220813233405090942969830768866816459588630559453282314525537388020499377926613800641154889032942328887623914384369113182300550327868223312853298906211216101480554016523999470539674414279739949121947476448808178316811456959946714823104361546387548706066733450566854948553105759162044702790370526511120496428421976176279449265823837952246834457653602633549502495612329444586974347825502586603779060294692048814122148393269813552417623730702427615326630269867511336210750422182779131618520214425621261433494124596243902038333031922947187916385513158305404441960902855085317612210075918372088983495914882061253982729478466929729765894401283817853528602285260194467501889927293693387319017718346606885845185069720019494332288969791909206073297566828827868229877387173910258633053138193751498457030631039443164337752458545361414932532723834787866993750164087125351319123475928935450542333355192723478603076937072972516024386429524745875617510930292402672351136297523143584027743978372550476378203202623996646532573318546317780697437707342671074695185882622302196159002612800801496075047373633660105237043318140453622080414911073127630351871447608448538642894286709586306275290940817367052217361559344999962903180536299050450023721633553902357370905052723485549631603664274336128045251960845510018503560344318791947590248025409069004397323588657008662593823900609262781805933398154458174918706670907248242980406492169611115594998676581947901535015327219415717993688760067433743928019799936600372593025437237176882090095217152449207622955184504926122287105657331273650823289759652216444912187234008256666846157356117478142294247229263732305898005905987145157214017015181568930932978843566122289531023953944671144447141700483640197815110783595072742317819606182778804509194046186927777449799607508665178305983397244135337836688025489952179870190403513258028507362208295193468062800276586208578157184852255096171360534083101730537041325909725675794922249139553718696066624468248313845297190901651182737373109973295803411456941134771504455952233015464854986028296632126957695725029073832687093066471299214477424208327646011530636252898904921308942325855368044094620089738305594384316798663309347272490981694493922920554554476141610476391682953776256795567045266188832117729318965828760464154709683455693432652855122702024375511032506608036602159273484217973028023748815975377899041575729221460877637184121793583116594058015403741025662279117003678092711413412162153274641923744754777424624998357241955509867602593768371972255313769741013364436755235936588699076799452358117962494913031709646753763344798420437391352216637417963756341055143847563563985719137589863186876682776915766245115855886874727416675512719051368780782417897792067596862524780108707359730822623927181160974469943792716683431932379299024821223976095637084170111508260673525924700848346948744355049457211777873459725429402376269540945767780689610624591567084049140438931902984344867795642698661721966199855029129053515332586350331257570226704684101882285250509033171130217578450370738930416585786424596326509229469284611879084633340328946146903625462350075137650850093600849126075837938921175789081103035252052045970616484073598163638806987972087130627638388935394924152133490200326037625876680420124441959873603012259166324558045078462393538274819553657054196422551936607745965802167905210064918329103242366644106884733216550726551864604175542876936800952877094977447891449852443626078109055479940712165094078701131650587406187071509425484573270786489993111334894860621767972256193577996163954416671960188553420356354648498186350373318366591812686947610776389150742314382162426795816581220764906982614410258150766689995533076068903085186387787921859672324220367923470164832817375165922993371793304646305969730670405241139242724598667144382685776677426230995825990225568642950333320068115812211955325534338959121283906724617686714272782833470786955595733859194914534285612117586390149547426664477551112197816361785592118554180033360860895260518581152419957837306624720378346424209587987532743753319743795560956139026951188605843007774030044755463509483889960774465708386985920457635014391940113936522674641461519090264627555871247110876374886780306059096143771590288287182729088839055859608131781617973521130782182194618185902217724056536845095476325423808693535542885690708767151518565513505565374884319974837156511605421687551058389626684949009298477932159139191659460941398091281710449774836427093552143262314414047667482101104492254145895754400093716811300759960612262072410248248378956351705317044622954415274110618332023364851319354300808581068575552966183895727930421056163021827280659507623721966945057721453958209424721073548922634088569806465659186393809638887479878889880235525700139728721626823509836994338630328831483569354694393176498508516237806619813594982746765769777769418212418257251249653239307272794955711731247707582820582336948618857330091872431952595846015990278201996359108806793278034671763782020406620937658304580484383548015892015277918483345789061933638096535094220678333029064971043049353821160444179525713883751814870059127777339719946988001586632325357070050493953293701620262977811600857831288154853181541830895706376792075980263014242426764079368168465483668447494689472283734003117525543827271423730100062949201440281065872300302927370706963276728434037379204405246436860282002277659189349933541575334103629157910459171845297161810528975634902136688139431115272363997594307225729768955294081653489583277421550391003094818174506024308555885963482866190290661521222195725576785624286483775598873718041828342791376416743624637401181454948859825280420728260303672266509180949208998419926914541802877427339097332499572614904875213571178204667187039081037376755135452032946465448631541670220493471544632154429229317234931540343198312686529851770010298320192469403147832754169204343255556731213580306946943213993478337733502394563701758603546573556341556018086612719258563667215403445227104621667550223974886836173156085946239879869321968839594381330140941073650934929687037544798463518495800553944508350698037831569236792247008437688216711355888469451812245239364919965031112821056389192651891784863505128335777028509022552689076376620639982903667866901312884210546503790134167446959174629127386974668912552132222608139089214311992180564127238857183951114766648567709699275408756927491416143853202689914509950719010246624555562180847348798424903756095419017908182079819173393659261751207507813922107794761359427921462309599143642593569698044409418899204578549044874007540541017390058492970686518208995284705586067166405317621668528272960511226922895854453112966134364679552380007189140115089073076044209781717126320650641604288425220263913970169818353515566883217712265039389982177628217547139226045948859598456408849311318461669604793648275371727776906532705803191634257731580071605158849452909084268898424677401211509231645673747357682966126897226078102536491787542461910239216611635280137867954465092099920235605031349402883634527516213345337613026780854715105660243502072378082812931216171740472531965899227532233814035239284475733052716859147456730760520801561097381469336385752973725404102796096082884290485972307612680431806158306582315682973784155758562863976920617475062778579921859190552484448541472271952941076999433624392569945572853624837008885878720095500510686769762397050582409098502514181687778196107667394070831500420248899912097927320114208078837712477769925945293697831783634699745746986583619874710244603322101365313276409577220115131881888948922039681452853838288763550059987420571296677804936472817903343785721362533094553680817463258242644685484345136700395364655068968683016434356192630432910759976892194743189895354602401523511595158965297708324909687480838271023154048790032799324682498493707278035614374260630104087738989150390106788207814995437478720846777474297602942398330520665580595682562197909328826760804298767811816023333698057325916065293838402945217948971464801665483762573872082986831749011869315283362592334083266006851836160908323045722610753563673147699182987359339729529653234922947132671660432725494812335780807757247674850722820121826894244894528690735042601937496230416574004704134923969769270103712485543317502324058460946484711826129835220522754269670952261437022763664776222838636779894596084778609381450463057609453112188393001115674580867140634598155475327127429635994200853451548312092095066626207700528718155450261154170187026403344087436608820965397443801199000635262914552260510880724406662075501750711073477045485965838229653442474537905427575285353676248228944179870106935714672607645165374037121493630625461151774239835317194620828506839173731325454828845860139518510685887756425580404448955234904054152381587581147205151533208003189990042699957801991824497006707732144478036802407745419960712742568216300660064446527037695529266126829113163693754804478422175349383175046085153702770008876195677311958060641566516005640364299339586882491124427790832171076103289904528256337841675924282213158771846243424784239329895815588529243954948550460550736290392971645559086632782693159120669293368843304972620815906492660922048531888778965741196791615336033782754748833715970492486126495808543382310792932035404649035901609922977494761979830885327743273137677717507822918831794148204078861486434726627204359254127725410267318390740107750030316855789425368126480424169745246861716162079418705973784923354897983508789668533572348865532046048347082009609012539295014109284625097048906565014804310830694480734389623173817172007735443825521865643837234739661943745599409886975469735494460841195790387921773007529408166096660216981367979722270573887283099470018268429676896573505616776252338820841976525121272725194731365673473722188432331788659211406701230566736990890369971256806124764611123651292719371911917584385712290997372337428823277066141359433624485223876840171453975735476015960612119903961322003934723591070009975526586841951590625329287651723025900720174133051557536138057707216481059751041970213380721017689615132619202144900586100756167969648963986032279125341827122734209887943676229486130400655915141326774627456406621867487921612751231832076245484446311387008687313909592800012429226377568432999964722053405875526255258863918982684406536374435775886792531897778894127433839227934550981293728084773030999074619794605052024292625576748898676687015040270946576960418919425258266418410063216575045420509472759610685389022179379276058819182605177353786402788114595162361112310347554623502820849854539785720872132643768698080825858253780875803362950833467801524053274750770793743690357652732151599368856374413646939448111849908343000659229330962052026427473421295394523187707339408295455977601113054364421773970073622342552102017297895159999085597296417020384599519719987649271373582457855659018788998311699182059997874283553579191136760584416136961463707458200010867799052643552634095101814165155623709954026524865453073046227941797655007698653381733187793861122499156558171267742137248298559419715351874181720579198297779315462678609373061872885883394516696751598115324645447080706266090252407981286527000798924749874672940739776810824472611096542929893105692450214388279241547741055655904081179828602485031513636735488992844128744006435883403277131576387877290508263792286943562620397198068639811829242181220180103585072678240915486988394993955852356258764506422624842723689056711724731462706359625196928407033592857385979772350561992795383616933852162458928181922919629214515385076486781584348444106327877487058436482688430383113773570473812849078610143766109866665985489429835545227279528415880879917165931641632918259510427057322471848651387147136371009574678472369487681052365997542163892780712812350595983028982786560395676470639042708153835569421716444024758948092688530705290107314971712158058376853653388283270019352512689351608639230889675377885435094174276569499110425951246395274294171154313610881125094144579326715297356380278803440388993061601454623976679482176839403936409505802159266315468700042437846213766041808507592052619099798926146940920252451560158857914295249115441182807329925741071608252023430527140070030120945165042295748985279265929592635534272620324170315462647209145057417105034430868328119040721041928432441410463210166719780059452362865235727622324368164995629184751004656340621084443632994510692085488457722683290474276962416271888317304417832841179472214220145902528533534471706912018156051185899659444543852428246440268264659878372366664400067750941502539928384068694992140832297192162000791446144175420464818684394964922905476275794482760993129133931723937197292512946159437017208062523989020211639630154386527599515023192591196395329705182817315127494470500506868610550347812341307931045587352711835334918376242408048030426379247022187091830095178546718411986685349324517861518842577537248395052395060885237188705254089568964139357627691361054232962878615574716501601092293848013090638196549894279838824021000379391606413497007362308504195694234411955611082918950518805737398977542848289950373600753012153010348448388251097395737058268784256734627203502403763492401433071897026211533369378320049577287110123847405947193860688075180003196851951517826791408523815751326950719858137457302224739997471121424770821899948233436966418982324425256150036388302318711185105506593230017173766587011424922301223968860058789326793420643818235007217309937553321421226482822242833116976356396631120160096193089000113412882306987641610824991700026637644672748174586161458412432346865912812474274804617331152725277269382496574476194775417070565203705962087726049671168737374753586094804298566962143702873577640762573651384098180927826518410069815941032711752673945421810542081020117887576620582330519141667616521854446471989434867324427904376811403391726866410741084813476288620388270782317282802163487910534744379634284031035713167524068052595943163807734847499540221837846023887078860814186411768869993318933773659145836568339153965354783944310540090387070353078661874473211261080496642677622637865983772918616325556699744397380545655589911237597979690292852857542763455392365520189577994359271662910266815001470792088021074855493600638277239443066164569190311949201591169522547811101254352891996716757198477402583759499501004259065992389028121892722040556991717875812565961936804307182283961577999200323969779988033908180200472649211859160193464693764120533768164247369656457898393295613371300778423009024127883813135416011588497788514016635519544172289753156950731387029958191563338779480291421584462792151203646882898882798135851370466205766975460908558474730705898876571830588671999965463060094382494790708392899269266073266939198609406023809652300526292976048532203188527850937514678131933442105170899316516486798632019646343469781002457341832252413453338527070257833762300963670183467348716143225738603319549667416212761672339586519713634062972555413098642112547409567461902550161123907441932521412534000933147874153965455090885825412671722350645799744508266535912530501477530201302001898257247362715298051374708821076862859354400210076027467883424706248729809462904975623274565925286966545519976036672691745997061027659092913713595897687283328710926689220220770030706363881107656819519674364409985425387712971383505442217834909910869081871452205184816846505954591341373123328811936110523026391802341222673016276397586130947149791182752797361066956958193817484998393402947477158160527405247631486216679651901800816637315185683560834232721992004532351956276083750635957806168549261388733173701801139803094427560153442727499682850977200037961098158611149660487385669433371696108045122785152723222370075814462787003083106471383186505923334059284430721505306828506631185704595666758532710686803927626049716530913132217563238261662297329571087892451466934207017406402300807602928840495544418895352677177853743249946980744281841054158608753573710058162290344472583297028428568220056469775804660950889112964994127171523676338552841876890199104269238405225075518970721853398007703199171150848330082839416529778119535045778900653958871222979897606090941928289765069628958260178977934296307005303802385891329196897880772109263173638429066658025803891846404489152971609291663126550471653163282761316186816185066360279056267142319192181710142836354130186894381022180175243315193674875887017601132469658137739038070141828993668415633973486974363043278203704564418553152588458942279459474677810876755647831184966206341966774523435947457438628294713357377901895814160581381221887138663717793172104212859823299189223125848041751522820907183610269198288190059495936062223927858045836321109369223503371664133662787404450845102039108563966236825588398505585946273928388205978845178280671286696168675309824802119555566384430097642639395133464023050535352793170499061558814015755776587286567093873181014643941079394692358538573658811672518668186287551715700480614205571029141688676917209957135053641227826099813190212020899356967402229268377864223136664070460214659164592888283389797065230935516174213597043392987837288848524190466542093626099496505183799579004799152531688133642932961551947759756021286385976532810614855914411143908540251064667777727952526196327109608605810864940006493840814554947682286832080919970645946040241418100670036872866185915938027295765449996581441447938907411014317728108389649297048871062641121273284224056727131387065442107747725017163235301031617346709590410359326796225009624918305244698218696584132329214074740523502352717599537614271744012001995809769426664563033021120531331448312377522753163339493940627023266837723834042370885961024603713092200087465478924294283647011902382375891827370070142946229708654945240259551231988363364201670460292295039576232134297977275301883118237453820572655888506459140544431234165440984829692789759922318303426039486006477650791136558693876772458299192071233813381936287953703278615945721924281415083294427061885285028093389762925565843167634168870532068329217143213993242250488820024215248210028600892875849615704140562663241703295616078478696349290971711789351930303527614075209168849367216357676644042062332109314979170225858899649780732208811816913268320184440095537092643922477958721360985030682357121903253897458263823109899306052714921877117465615921567329906245809559613187789676658546468389201334139829437896908468243005283777720437728202201466638058965460316797700954799075866924461988156365391753962656063924232556634043777419524451459386391730083036985130498868862023965626035789959399830926911986424878420629790216173058616345042566607544161176435229463076111704910856486600587000512225069981195441762089116820943817461425659889846239685163515582874037903003073051359032314048781024884793243095583319794414560564274670276804997470161028693842902844903032355892507677249966482875789844041170031767199095536006474360377405736999962668238209702577662709683619560891607383829360305778603325984521041882814836251413445987726602906345439542079983918208712576374727430121875360258194388555804192865515713479641329232263845982144915897593703827042161132617467630307951421861014517055301182296731482668684541180886213722503420874456980268328440785102568169612150332876465406558891794213289322566879454943897366984812735870869673415999532711983568566348702834503859624198801386420164628456397325799710463229135094178541521875108826083092054660229763261496097603887213740748105928114038400354369736918306456355331551577805694136904055810875204011122732578353587263447448273258373386498910093757977460573100047402783977981437518693071539797599418167985154404628867198725979754211002482866028496520444225801516228827603101596362706488171532047298360949740233471103513172339218959759387656083023076128894221331252584323780568601528017955639970148780274759548245367526166847400129174509310630731070023310715023990006960827004268674557385308285021429576235293898276688769880077145121949815768464345218855758606737801553382816189440947110818890335605767028662737655220044342411143621029128910239558097473738674051287110667579080947558883332794524060043103148624029453819915010773390226472336288905094358471236042182540756041947040470411952879919479890949901657633419929060485093636086770111001418271902907054329140926480645620800609666304091722921698971841060958886938882731328771980985005826997574955983453392267125690871808952783248610581517638060783357211562168273775136386387873528286050354660278595574289332081605938699447328731752051377813562229610910839547456569339852440135233173575594663743373265011165103957814052968523634916867038324513609277927077763707137818572030608018533694221661106041854090577455724399164361707591453230436287834672038229785827288496973944253208760813981430210338303606494136849518664711533399871345896884430380591738619811242752029163320286350869472126148553434190294467948373154439160411759047746009227405513530452008800722793166627373816508350876536871505524534789277454402102048249284423421936624206083836914245989444130033274718522670880905545853253641058602118744157449781382974166961763892842613672697030172744124332070506431636020299133391691260165976188819579728800716097292675844050380858324757501931915747018935672479234174491526527862631305991531391587382713093040448317237133970632078044389424197685235798481772320076365933110821585135540146056247547689357649178214556384013541919770403463557963576317851111978160322258432186882746362905253774477728217398998840224958834802805996922389742275507657578495010891945006240418153455791275640805341983080764236656135927796629748557099427313371403815349582081792284040455217691024959615653481075479826462018111438339037952262224053849683502022625208783319398921465864144575634908434184016460672223774071293869035337951512911934520172438593914528003371389715876790405578349731055900040651316975063099098871362267563615392289785632910242741750779393123122759977159815633233340934499617430712862556619908979602902330057436883286602409096512718239132417121372190692823466331999995634443864667756138478055669310404561734024217572770667446836440460680806598052478671553576356706476187295240605911059405865528887842369842379507532800341340732501580146160051825800053270342236592239532387049874817471263469562718114135846809977579888974039390634324341558857010262904412146325293648027691434755327849580641613657338963207755561302810302134109394561870258922338668470933244838410462107006860726043743124093054760786954823635181214196706932711337750414021349969946877843032809384685778252025922995524297445242723123615073311946356455325240079120209640344081210163672850451385406827659486634043666803989717580100988376261883655711708801480953990293126983590643433367263801186048200421579238696192653380282775282829618792770749366310051364924167581837267441751761474258085698596717549665164023294079196907079844747485740706015318785002168052635637107204566347674686322388906026783740058818655555311378969144479181665403830702049675564723629706269276135495408649377624664783185377491608566711239663260175377836844846079284122587250269666655182434958732652145881866050894567778859259503547446055525841328903133601314898722123700029131324269308240037710755354814013143981308969987083643750438736272064539062472034528521006040312379645856165297150308898272530679434243387469826734759718104321795896535404628460826659754694700031197653224794519260331038138176889609244795308090604771658399042955289441131376042781049607460743558347024045585311887202363100286922105610518263085745617297686367029779230095613290748202459402317254130226207227431126951997111531183683172229340983741872700685810104643397608694910745771329806622212548704647308299983969994228874896208690262712731289668246041025357180018895818995264721142057396900034316074955112423071997555178837280840184811495126053930365142810181208762795061813662609320800938480822104325315244751555065692935456220071206836280285510923308845476197552407361258521017333684848248755769176073460075264267996683635855493460023363785125173235215108753918611645783807573266729953443638229130655490966683996715864362513503292692490746359964184531784265084003407777443441724280162541212544802969915175228306022863721028334894912675778839268370733334818676625269734035154350861147100577359443169915167456149770001840572164697805276700777637321827885287485917697742321604802873385240626060157749442438615315885059784950198913628658165189278233514339692857798752453726896108951788365732896386934277535028161257690990615748363718809147590670974135582478677551322749095814601243023861356573902789737844554568558956232293568432162258774405313970470813732379412229873991126913329563932850260929230487881951921092951750369847753251759314429708419323684101034805145998673796001954018613691923951433236107652879684017613268763517383144837313497305692595943746545594641751791280203806901867622274618483878256191973282132524101573248241121535229549164908874732952977162046423517079040858339035470042394811947443129950509178678305482138176345806798482067485840987407683673254693140816894103102616187422482873728732528627938997799487054170946898956671927413598942136580333360262449824107277076559510073237039065995441231686154182572088091256404701367681030611041805331667586866548209231454195342637613795601869922907866133587485519135431254525951731743855793570390806921145394376332241139479058233600763751227731712761322448366031749483249920544850508071167226029933096320116937232302421785514371789780223618386192365669227402272428960863590360396339550201678980253786185659985012417038499909714818283477456361675075301332894230240062682005255640212824764165281122361691430132356862673285605142616853174688603340161802605194786392012930740007011210536532884126000090412306539512973867445259800793183832786377887681653239270336119340597097022051499730076158281636811676524966957240510796486474615641478836923462820083766501668534468706723585147111819599497559953229972786213827382383611871076637729934243806605040253036933281116325085464080467483659570381508729184630727861806386404538497621430812233048326969972476142728108069635646583987680679739300038454587125276527626287311790202583304540428112087313125781841091393930241265913897090214639130230066058164513421510023852951554809319291544808151029208486557942996003240627748555603554970978935642162820030618022646196595078968339091766275208369870468939043680937451829476734513607337382164993866353254130192156319448405374722312749033552924888282151788773731060633747647360558936939634173918621233850984953571668226637589781525886035065517067021484633874244800917925997696271053964350070607956514723421238708481319342073314467237889782242720469822509729313485478417932221954745746135602792062328426003455655322422812496069559417111687826554852081776924676005145708404229240790876165671380077854714746619699229697700701193051918420307271208041191361368417378381101105223397078150562180645207729355315547891792303480729259930707984753081499454188154349073849213576506322069097708920438746292836833198472115761053759203537695438825707498546890998285762484906968780842547093785855660157771058743177886570395542602020424783839355017922855625548475146784205417736446926397670865630716646266012852132084023296733970757581859981783673622500746731291598666141287241530951282508270433495742705449938300121891559271438686791426315529879760907533426638242791269543207529642187906344380560745182466757510034368656948467792492705308329085250414840155000183273468963590386322492477044793841905202641389970090727969647552247726250511135384477315852907369263416469946806346737796436829496414718988750596186472655507263054460344410813566910482367592531581847019172671608348306086394382130513713766970717040936131876868969064258925548602033282387688716537262350324341830433393273895290424596255220335376860696075260989897353423873406313263973561190147648797367813051703220542215841502507494622640678772275485325796041964194354064556483113381097260200040018899163757335791695735154645027634789389790881629640064217454705103010675965310430130138081710424119989349652813659681301877073584185900974070543864545810132381562779000662410811724122614044243497798226665059234624458166193022166025218432605534522713027541012237998211408420966687741791070878872463296297840160996638821050216296243595803784900955466618811111029933511476950298194760653204566224661170263824418190170772877918808699735475771091414392788994329521406364827027979375767660314144239953740497744944096516198705106318555138214097893966839374294073480390413884181459239001083613309008055821694413594003681245550228999378933581535049502134859415448097792861432731217117980005923757558743201685482715699671067750399577789510924750502930599660419027709242290701953210747359577277333687922239117146759320971535358740794780738727769655667220343688184577589569335147395033934139826934113515977736203440990717454048717854907893561860730335461876685663346782436852524713372456272503820498542091463667060545206307002365764397594362971208958516236977433306325376243908214407610843339656200962900643314449997018096821153563516706417744967115289509138493539412275647375266120084601200314396349231467195883306847583709377182126524756203207361499818631667032169402432359393016358711385168149830931074617447190528995182494883868357779443655131876178173779483773226883971909704288543448478501807625054599268845377392977849996455678064446731148261679684279666477307190092280038119652930661476650090395528722080882751700140223860959832048275537001584541628027960819145612936503093330698422070711863216255777787522091368086389203699637930850585137781691149304276706677529050930332795513682662157232155510654444620603959372848098871274143705380031909535027864410169783449500914121198413159422611271148712638295914173135654410174044622600282582359637067205756546461520719805762830036586265597364532696886105822966574559591836406913287515130136485170074645105123237656421062905727588574241858303894318013521288588483673742776295800591459308790369131206832431233317750327563927488756601909553213835867490088601434900667248850123230598103367199644676747826465154640944618848740687858652200374684959323539741775171310978131591041222256355450392502466927281818512689378198065798153162603875025629815713057147595586093813782426096453284758432920355347580668765592260567919286509729643103760032926588993065726784088757317279599567172409743791023386928517062919978490299956152211148145623829059802118033860063123357074561250524442079142100208913397524639521403471023281806967480409463260575421750378707053529626087479482138033703499631122133035989212054328928702938844546736925392605444014741259792999073175306488298002503314151225835007286068637265863511394487895521927070701027147544497028369200088155984831131876787766004587212040485472878322699761400165464384031231240017710952520374743021761562263506980318039023012169726819776148314236595066546659122825882041788495923552059512907970896396798539573082650994750886947058648108365414890684077349310839922487593956200360910846203508024814378482298566442642589109926931686578861174499727436592242930408421165013372005722314902414247882692764288953965682905655433777148711609986776309084312678028675337342647469728981848621243794473602763237394688480269981527753137022535923436144707343682638237529060693044515792224622220562571929885036624433911450440646686223930671864473086156285676266058033697210426465605714751589516674959178225773592260962730110579957940281109248669600769651247048292214067150059321872234293103737523714600875330265885959783195269471270770090990578694570153368086491116656270639568579566346278347748173379673609327338359414998540829242472415094976476848483046624400887292806040961239804099311493750734969755651784900949336451145536541990033886389326547819916072441860157827722338682928094901709372339694158961175546117135043868277133934794504917708848563995235312457894468098291894213112753382763005517940747885329757333605017969158314393738521574903065166373911524157932900709196030707712485489732155131732380810080762774489863599613845923164617683721075229285977504050392588282837254607092902836984436480673290042883586066804920072885148257872125710108657718515676491221380223932489826070316942670810958399915028933246610637853339467835276403765781205502091066211673019689681201029521542232826128441229854463576069187016034177038903399988096751010354195201784525271608073347280718418243491869745379642974526890013917473895559382157893662158273490786563734670313527075852490095238965833469764367213304349006569973545888924945520837942413858555902901386758631663346260973094460596340750679590295068230169501832229226671027902768064091209713141586325458625528856703079995827158360499282376448476914229768991699757716618185007800263626612589426350263306629942553338230538907659403518233907622087481373374721349215175231673997526763283801372705705975799522989346059893192980841762838416105115324439355142230385294771450522318493992889467700211754316057210464085088782162181512349669115917966198206860480622112789996843534660996412384907101729234903688434487220830968592219712891781827314026297044015804490693707581656922278940754971132442987901366897251684861319310993191931284311994080700802539941928302695570505297854188268687519966919334204362333598291238727741343988968215134487989652795797806032797454309786159816605296407162828131031894491804096301529422649293612259762287831540453756469249116324894124682445237120765283468716001012665371753356336979952246228472749089217600078535603719336457562258308939149243264459587368911861429948185067585622756975419156612350229056676495664259412205921625241922051276029048027679679120344002413886368181196424759430176891041879820864290928763342131886373972140771219597473039838940720474482848161625132569480018969447641190069879242308189279612751330930482408492022832627515427626299401860178948899236213270456659561776104679830082048233515359293598531976094896778847871611708605216421898950156834365744969730218418527693532462132455273771411604588249865984099609941464402947052063806928213875458499811619793172703111922908264467471078104211485370628824753132662632393611167639670170406358572772141558399124415305748481372555018987711335199455980063870354023396722035007021950927371414423009959811830811917078968071215664046393810813346240021722569054527539630172390822759912085264936669252681807768809979493286324988358560912589238878289819158360328379113914537033801448262165102853738795852611194086598989565079438190841920620703900202282619032637332765914639223455906295394524513815504710585163645615377017565674920032346794556383158861631572085025476452149333934645220907278814493542406299370978525837521223098412565389544417226999758700751957408060740294574070497623103214812371380085407681121111967414015534051979082394856765531326234777341697249693040257026156719770794432822940987853060438145156707946935978386275581112853010239728676974017915087855525887218994933498021322968129845316333648125510797628077080518388828001957510139974003429537557055622049469095802494844570037636617421873344965331458181530222059575436544178076364393994946196582957219276528574064352965123837601442529506444850944705180609840266219445529008507653260994971986354944403931967376571753370005413148107487698896353987235644900360479510232292951531566852587466424684652371985664051997664538767147342654523185284061541118238664632682301548871770061713644244490846029153420726465978318555858500384057913708568172153900758861728921292537063337899318150811561453009410249051627897867122926382685942294851792285212821855336037421755661759164321653571100726291084686876858969139095581331243627195246197205211114087728969358957206763291368956138789832430259083740916200502315954629199167140037631935672743981127049128475125152976612398248285655931761417667806362082568369012585952212585127636664278456952545047931989835093647082524208906980458866692109818022156629087433553162732977415267834503128416490487928379635706859837459624818942358317399308216768825904434752623124692278903780686660731772453620810042781592762077229228313309935986853905020537720226071229267345244714968430198080702238575569996801198161530844106009540934728065254033617035868277822915266174484887186980904966910554249506692938784101574069744846648029698146710125195842158280096360134019517770039405992675498334229579887106868346812575699028879426331630610235257895712773165302784259112796298944082582042268485493280108422102306458505323258885556334733184434586732306370808918325957212418145576735419386641961601308812510502473164972899292205789143265050111134161896947479945886785047722093953534560107922905955543425742608425014810203000642040932259725640091010952096068094047393369218651750472814971878745925096890628201115793625352331181166995484214665186463232725537938786574084607443702346369515815188679940887216630964365707718404075066314870994620542590695887568692313808520482288206165907759679694505547766294709397907840900067287277267415711645501140541507706585387782122943180396289334212866542328540117994089295086129786565794796298621210938830551585703540098106936482392529920615598776278467782417816407275821121467867180045833956153497718376071684128243097493339012839142442452411146158700806298638112264745931689132245633931686374981965216328231101877127739504481167141641099806756415964487600755986726449474844337147319834386607001223708281874162994415859469114189681559143046905207735111859258993667868009608640812460235956629148859847860151909405404160585399659920856086862845791287162823252902352674185013982742889483329917063516150439863411958778471385349203657371605921286590553670616098263770881810654366260964869419058106764188845806580138149369246510206566307712516631028179233012794581643787293957349768024706328006561892264172784190330286629627903175633557131259094743550286786638184239327806222519642401489479849581758104777729203700593151331277945829094306474229035114996350663735643140827074719489463387357970941545895075021884395021059583471572519275660058533572772972865312227436812551543214002610509022266859000292509998676152142664083060797761697244566062428866746035372683350855564211446111264727548869408328252225295372503249993451831162640333307980548157539117270209402578014053442872296181372354205751921087212483597626709546268930744707720430951359453323165576970694877652230656010994962157865751138482529687557360507500853186144621298300962642130344886102773089914357031129058037654920938709159317758962146380440520237419945023218789457153949138509884754760346943497925203187321912124384598282158711938642893354554599631982017834647283214744688938926363968230234401927155944807089252865498318243270945253810101304990956207446254840854815063620505532122937913818526659504576993421348959634796372758278364260040271375531155735664793465573092171592479646772850318108992333497169632734148861454692639586386023085209915665298413811615610184354247640474588296639494461456548571369333451361108479128564376829209169207628413700202048875028511534442212652005707778103574135769019451335245912701152487195366286958788562939777815778273401190383095789988907608740587277040181162974788203573923432279804156198416686095983871833377814524350769365023038185370679295877183244821278724895698395884758483980366219173244180031836785027002407805700419928349108571621068816344459429238124316948746755582276307793685337536183331344413753424623782967569052417009913592466556935057216437411938423151154686928415904782158451921858728787350880834400496770084608594702994250609639107220633652323352210749613123208902895112673125743896350885826461857342912553598192488819543824713499798929318524147615054682749854688757763115782367348924145719484313210723485964249237342165188214711254186440062948443492189009309381632612018027315353431736140673899927765985763261559049744606878746609843198565317937291765426234905906314396343992295407648253806743701436321758552156375083747351551667700374051614681621542974256106086278192669322194699703695160000038208974861443504784185214547261270130450477893768285019946959476279030841149587756508466006973515879428243456551466372415290278728380538702459311590088999962928419148574737878031456861544227952018469429296092929324109050762477475393981481971923011805147451419223361556486666324586085661926472867022298184800928222840261858742049703731701999838887029157701631066861243936650685207161274166747373366058820428798040389742831419190321227634177423479494790063773393887460324305310721628970692130358485572003616837535268630505660891661292823991933007133432955436483646078923554388709731087276564130399317109432367099340515379481836764155931611046049511788648000393085283469621005252245159046549751590047471565880323756699329433724976964844258648592124563523427318731526251374433009482343341139323549186353742846836379797858093186963759410351888026335655880975131409625073257935240228882051067244042865274255604095687222391023576837812609580506253795083658248696383118743988282432953172267247999047339605454098957193080688001487125169805876118679931603459558418821887771155340253463449657881439632265014054729357496139991647632670859983737726226063931753741139701396809607600708729218159051424037493672544490179660570015615191084716237734930140985532205487321382643034414034723861787060997192021458928643699604158218634875229332373619199314854682596148214371626360619193652216778953928612083561298743335874826245117469127842627779343091724694517084213903125386565433748264653331530559315784595218676051090806433274660958740417856192055105403697417916992327147045424222700992441579197245212337491528386948317184544522943367013027484909602048049904434888382287698770541454841533115809562677234301142793504686044921793029323549571271952052829463145915640720707102797642790797111494258513823750594810798920767597413520771915821148159979290734746577370730586093717686492553970196127159703082968564120315356622489011051012659086398016175592544992665654045500456338637089010476353806298005115202264786701643210870347557219100127009644804022490632164310245164028106803635030739723631005763356843886157633251478292642612877694312130292990447190149226785665972100466328027595799072694421454307475130158606296830805830134827603441015534019247282779712468013775213846330358870291766627257193600217188248608071688015005775007169120981783082339706780722351532928061025152807620401914988190997550566114362317236674563316864180421839885213077846609693892789289871217096127205508004167869101262988422021206419818462135309115976513123942394843430576835482036494056645046779603744704448630397641510486242338456446111030540193358614768374728620212875671027823771994557661860385270496186258327010512300721040860120750451782246508100058329478564703308921048593012965522755046902735699856726539884686847832917279102532773101811120580465953018522451670485385282486016965723666747483903513369462725899836045144762415434000045455855831944938895513077791513505796365221062687036053041473912565876021947467957845295786906983947421340648693623447081273293935167264523069692059888754090835382647295627873513337402900419923459374463718155101027836880092445529582485923697206274644418911618325158125601212148385437277187298525463566788423354439126099845895435218169300899537191304663941813087934945721455599570492335206533196502740459848421227756313633068447624330051069644679295193440400795489860925568663917854400743578198840477010084947365015503034874769555997847576598502529867670374709751712479353834542330388988672159536727315309154765492281693054281624461794905978242259634694538444112282371698377923908991254635419336220763762373932011998834365881236515570358099119182529752707487439079973223325406911686759444559993440893191630276394256937201210287692944064614281156643942151402014874117244023374165885394452743483619425085031764204591904548550804683444100885585300282273927406590334591310460633774677678073069437467085397123537445428483621979256751592758398056813108870525490869720884993109883016007904548884539168563179481186102631650141042115898798193423526035888763113346975085911238548096290352599729505345943154230888599689555699516471656367702221095961148565021338638284686343211574305447442893458324512464364552548696877728553840347522367000531979463657969452198480476192060941909346548523272481548049255833337712892665110169430659429548943498943723128844400138919270150546908788842827828087882406789901699884525568273643514266257253602830477050278485928763295801259168863254324873292391777345528879490339789795206096952880014037419876289826182590338204750317099567769510241353790867395969364518582611447542511375969249092183466656636943782899556183952166004152115793712908445896337858127135897364283208671978925994375079756753139204635279037919912176473851588441909083648494284686150796035937481617607112015742514910567395225244572014352957748928185169949776681846048305741918777330277577170440976401656021807173256556702891274167304880290275868396367705661875032191597657453666250299060360489045499934746465944480659089612884540438041015919897545809667221653710643559582132166988768034961650487659433794201986350237427837442725738950121784406763450168407518665094417469472341851573879153382843184771527271159531630076765018330001374285047274971489345984094123684630275260761224289468834520819111612999453340513384496700645374629167127416363641886770043350772057725269250762287818737063641998894035211100203832154101446892099632275762790954618087847337199903978157172467600014576227483263089896243883184570710738240494454083216758286885120687048646563930162694795251323473613140926798193549688056433590871310819941159943118626332738094846098443271604576468430886706230353750372248468542934142697327164186082397721914682892713103841776275556519387695131908401964180108739632695776744410509799412556222576306030621368357579231126502032109082629707639057830440113391576667703711312285851557797813129566275086920822622066070188934544464608284944962266452262464233508258748131143991477949354350456956207850854268914383384571854008060419196629535158795530177648729324071250962147661059385110874428160280940008044885670264733864724842624759699074986864249595963151657453682093249999180615195616553297157183613259798155070795474352158491194138545775903896517958960912313592222554695824473345471370025070774039812182520109222732267764640270971885808085667688098863607114274815214973384063749496116149758093399797817421334272664683391997335299388206464780102732311925935311588467548975209185369937403365600861159552623965152249952601769154872116235527351401316603081070813652586611424102339128863540503987993193974921311909433356808657242680935590359044800298370887497913393250219947651059594360374519443461804147475439672915661392865999161054941703294372490812603000571244643615837964163461979419890251079630729343128603232183838952199545140895047915905626723653824628901410553850300657369781878523370393588389997283117852175784496067114437759934715499338186034038920890236053188055606537243197482086026938755140356943469348709945631423690231434203476795050623060459781318725927557503331347813324908934196912664460741942223543388389760387009640187832976280960681103561414714479611883603371567149634496559544734813591575990508462019529458395417774332817954903548252795186403488035130163719901489971879041273640028777483027906840023268663054077420850442760894915408228686892992998046184626124851487493407395241211732313397710806921074653464387653651201181987307198074577175671012952514114590648831557010879573483313864996320735744512030755800723072634137659031606680352494220311356504131380586346738993347575413113684626660435183268033207757236845167915605076703312012170870771721968827252684973685130777686166125716967051267805067635930351557826689376331126650598218129805842671394846482494087199591315916001673035311269653933985091277740385016823447271780561464038945598621850313454359029738468765485445931679504850532617875222444452460343753378528059244924304267752355161129466560311372937520507438045191900682993115329106576158695375998638883304073398405021062553887877991296176267022829129559074155851526499700998939098122304807493233315828839315602359262654977862752569467675311468709276565285968954465557354991271604149785240982691700341810764642693477885526947333458385219259556248161019756921039595179465687156226460447564653153075512050915376686966571112907689885961877077254193784333310588823970514146057480597566185175763911009908663041359671651573743810344270736720312575556409051169921268156906611271478164047072048336506621643623961005602604300792787589953697338291789573081841091474654109738038810093227214671871003416437362132192536996676025315237966691369515547410840244834521653226549545543759920378914616973135759846639071333434229422774962176531066614090174504854722069286222827368292943533498015808518648443215453466694231711651779718478884558025247172805320541734613598903156212355584650142003138349914999273938727923508918934285069170352619805536288287650260656884865898974644842394287685402361760880947214064678518917260601746353732119391586595564154090757991295751534199576672596722838070810575365419606743583895646296047419608867079977543103724059901708953372547660211850495553724913921414057958064948414741145126784347565780132518827292686523571667707930772822259375054255525064073998463613845201638578184533742029742245170853653686724617074974891894095317385588216375284251179328825866523499086247102115904246544495101143504410604129808767933271437111293597199803430542752676591590426980551161371722163584252905162369635948469697916755891887670023993369996275069892492299246449406770392365924927545529358953935815807458886019392430509452254895705067539070682049109911360159901025267359485932934248704354208511470183035327622305140263302738968786343299916264485368796520214948792757678171781885421031332493662123443500647766912282422895301948499591587508910820074175378765926002874033050114176809046282219708582502206638216719439821356616686976693828352054991643702354749295938190740698355269975112839536800759929383892952764330303328052871878187275590866714227384815620006219671646110902524785314574419296144255901522122646778046996448992327901756230833387378517919595126879784887320051741995994295814141944995284262041572450451854228340737549655826534381623189359130912823774151670242488328880274781706068141107630639939692810854726869730195734784197334290223307688105183834632684558668575986973756847636121083937393951062761168731480524807241922572034001013007924066188375936327185658016181950288732672699862224094865427063863823035936472436516148108324569491470246816767834025010330592860352203295427321048239872166732414388946562253498278553754464438267046521278737829970250026349003372320762618742267399998751318158530141982529908857132879097497191220086771056238292673245760292319964711278588992139710968254805530664067692706456994586285205881859270050482497849926771734251272921479887678664223298379226568235057727562840241454886399619038529753928370885535032652020773012499933351489879875365638701465208610611999511583306352420444305689301655086607768031841568801197260459169838920290219945893093852631369617699036829482850918532047456699383936607737046691355557585440484284190170683212373200466650446313635388208863289874255215661278925392235801134381871065254686849197089551914285598013289726418110749417518716602674426510316572940213442762193055868415234314471263492549439728740139132924372247960596487214555414013775871389743383428093838755089388620703647077156004111287777929490433012031505843161745981118194135529747710515020630736336522179355289398626330223634041055576149558497554919201191606985969955149233421587560393675322058702642450825463094383369145681925599322886533937513778338006557265672675114076091979665642726782387619581626979009729842410326490931501323641171240802474349624335655861836415994332315971911496675638451635316911716059420286673586296055805364902291974157493237569944705045346993577105208083633434649904037691914220664981909950886793764688879040076956378525572028393740315019593482378972575882264807356173837348077019863752588490673018491695963231726629248599197088374738873149354566438835530810731018231792192385812728581012266565227283175176513062202135583297355024645279189049282807720011246451704476107722883686930810636404170147003368266119286239146338161108167302668326028571228410875795534064579035337340043679314195815006666434354001089286882720841711603773325148914788659642268874454030975664689990644404089104218223127222683953432237497421961154468365490680367414615042631042714325093428789866124363773123974218660781052121440858877794391051097215255770650584114775186273153498858162739620639626538082210662670453160023255881750010821084922858333113170382989541434272998348161991104939029692519374377537846515582578843179086133491789843970548685829670569087878228950248753862503238686475327663203823661318772942282737103601068196211348435545149903019369790333237723445094136013743046338290883778389459895612527531440770707442904572548695446601830013570428850815276477024327636426751123851320391500539371065491500809699367136442218779203834725473276674570896640432126703481350144837173170960040479914905547805347699607147240031064323441339172469115988328419494202218095041325397728168693255751171882061200422580777460795347896132592397262757517705175466988164923786162647723947150776823386495847031039326157616195157250597674022313613245956000962059197409151582906736179049297663260500987300184058382086253140101237274890484708803265824855515627237705485206521020854313023762653972888795200693697764203767912013934471939006896619335416315535668348117466987672163190793003852508811906323858226709708152545157241696644407866696669561483129428765851533116834291786017704911674603975293030530329892821882475928110559662531316542631631042694397495809199880142401822596996061640446456823759676301950503557183642017279759304089501125729555992624848055241830877999236817970768875350412522222157007024001674813202000447263643035599998653894231250320415462454792233041068784771517106558696868606320186436041049244202060028347534228333211250246612304117394135142354322397266925539520491211402326841202777159971900201489790600018073763414287625104368921786203212290827087045438702991705962672230950746802901413538562720520925841075641713990087953437069819393116215666283948046052501036040705443817906387339667017104880343997600773364397308299462955795377235786687869309559876972646076933236623604983763317681461322399992667156460712511840950083392393444397511528775399414620981952395823183205590672264021968894297829100314894247292396411603261703803423460901673898555654012256669519988090177753446502899325524981463301571448943517250809335324159182028690635253162727710262343076367762583318272810933606647737538246535020913065662841123094999603947421338306206461254771968559004593438833307874186770513948354988739810839095783712328207287118216150053048257071385599547438643456335300105549874402712933542581306053614041388399458393948676723688805541135490720743179297935748545199520017483191135195735487134917684989724571266600210920742239617649652675998214022901048538012584381961773900731506384955493134583765656850245049600446226992966549868376000979182652840760448115077499707182355837341176615608053292395954195567949296909184860227112571021070461734917537774141647381153504346476317971371634387512652280713349182235806959988115222357511195113213836781230501069287472489763635052522787039095513738556102627427491399932624860769419402828968558363675367732142758365589165116510279041854867164320467969863378468322282109042867204019229763030611368351211322581421646379062399198229413273277777895071164957898532982566579675287729001240408213033210209096122478809794608272629618964914937965476310748138969243041425984553510833565775189061544866785448829658791512096966665254555342831398763574469683632039356410064136871212962053405573816601437736725554407418683570585930826790895801679909740241707208433748998272705961669444687983070029381587366983212887884802787374993971965218242464252573463431639042781424622216641433835586573313305548905281953216331549864294750073627450598356987847124053448693915199671603263689509467048773869824876439017658307956845497535667818505455635255662609679272063352043023404983750425011490381944965270399198768871486776516855420051303463789123722141903951883957564303440521639900761261596954539974611383589571226854445764490321175768727623236382755107557108519082774847923857867884477889797927707481642883778989726861419915802676208660677650556909704259901273492771919240302653156997746619964326059607340780591128086876472040610261922994257812263060982965989603626938928781946903564312163428482725673402664822342889685587219475457951130550673395801811953321240924046739270225631098974518847202449726604235391781329167904860639680196264878287623405349034113761394782491601073297560362824919556843814074349333467686009212454341273323251714453415133294008900818866401804471488156113228683491683194715224070792158261625758599447092030333334694041566989352278650923773865848395126309986182340760399830393112920402075441470498958086017889906452641678170639443280464644758367975219801826452613195698816829848695295928572448237417330346843641263728344525309589306603319567721027696294919614914458026691878776786656546681964147188412702000729940114246924359665160658642102255242395761665341626924253022410961406454674115500644058480242858457559204247705275223225068353853350978813607118272137726020579274190155406403981064563504343453743339381111343062248403357824930719450636842873459159947079877325000875534311866214681495327179972236611874596216925319421951950525681616222647614771803936581714104270691294495298153887838201494678918807119560016950367765566120032055312798833168234749904168380710317064988283545791378740648776962019458867889029852797655209829930189507607106598519876520364890551511498388493138628850650362040777233006938939509075292153841436526492683809274428137742830580496451592700635286749067468823814004690903816616743358921901496778280417545865285787187934904786062788687274367325187444993826648750735412385752610813202140705632892846759519055143591254009812792189137249542052135878889515448362766185950801149947890334767451519059219524982636359935549358661960076704310676783152527345972931834256550871161881772537568978243851701954590362032996690548432368350775307772535338773502744025121990085969830077142641379254360472990084492848554663371160141057203131737368066936781216866226852874790457661636363201763992401580183153619153895458608774894480761482401126149880743862424980217426481033772285252275200396151959468433933805938712886604484154719803984644429260171712124271353255962484464862929324983142438784750723390946487162604771423913002499292385274910444948280877793539675147872426512170098639721990256163494027783531887116318472248489517636815454115644402046588739203856915851145607157302439531694030096996913124336707522957432061084376899298956437537583528448430151814716461179833819239503087109205245976367154547253151266444411836288849078177844904132929445536027372571950552091134607135846115306593298970428165041597870345002596331985932292954825162094336890369201441211888780335731217164018374806648477529933319655712630334112435391544209639504174240076662797177568617937072642639043509989844311193904783694553869497825817850328158218848440492684894226600180727403841729070872814040913545361266427115477509072517159359518709250732732396239405211003142174894588623494231107336266894582956861236665027506460562019070046252041824201141131867271751013817600092434541207574790793079405149872270479926932881524516098371912979204213575283661072967007395517195492625812136282985939144261543092333084074387174768115841486713032257247837711508119862308625992999960150939528085553791735630268638557127002155627906963463738651052876830353016245682142103490631750267645559680892452126325590173870434275599473312685776839449924976701284808767939363703908204196225823333179293046964553655366298630039291141771106943219769159830775825439668404303404222311699751300168747608542655766932468669888081569877290587713844423509806378633211285619366202790759844342472176758799046231009118636404022505613889773671213345443669282140729258029423083868853060138802357326377854919854273732240068543955200820922429196586855366437138885583806780645979088777610753070295713756772558114991677320077146609065855653791469437259302519067470157254291806235198593820195507001159633474931986833289234560999145870989989900713516030806883862904005757718560218939870109652190647057395379441760022799344047501391353846606416336585733146528475112397561656605452756015043336801037345400035730431879658916852490176886469992827463584943607544428421201804751563388488637538719876030213990523018555237012232726481349431613777422199256899944511755314662076380500751866967943984012575057131352064765134115707049837842990077426748143857900043638712684849459918185369954073851337223805198362865976863307200246044686931567471409858479336773400642765238408744191766372702162771420693361353236473273712992484455486558934003678530936888922596097044040817033111856463358164708018432747786424319092996385268732146716271963300235168964037503292246167533642608563433722198288546168406399656081809719292048410904395073259508809085806597383545541464996367540729897562218076598809327295213277813035517076694185458019749181326446027236770170779435582697330643653497492370537269171601969246283295372298756628220713098881254390341828602561054963116799601064062894898842208313728271679027746322595454553681816494479826394236787166379704986414059447459342335716750775714565619394323529698181959117296281584521646906751442041158488255910727577064216695559407510457043619302598650929723440024614533980932624126413409284947551894856541295688953745443375691779840882444009082615705884351974103309380787189801625534292305297299711899035901375387391421183698035051938130595994845882821135298089781328227975149012681722551673933546753401042992481881061841566333123604100271784758170118368812190265202131490466364505079488368538768791017749511188676802033648974373819241236692413850899513066719660468312429877340589586691602828238425756570838327809573117297071958496853951698860683661789638241119287913302856212817409240109954522239955406174736522680346815457298880476133305625349920596458101279946008121513466476142342022395656093819365311237717646555529268580966825415615231852553291730622673119559965239394885577585660636698775722881435424453425938914660131675058946420523425993773516908242236003052511335001871607841781156024717871978089484367824702706076524462383850935718321017652988353621622558936348385881795178983537881465624617173786294306620420105139521208039822285886546209700616063458606321485105199700808769392552428441169387260494381104605364068018585239559730939345245336373870610770892811649658234669889210046505072606406743265333911559689579374164066926998534306974280130380345011404397755451998696837731993069901699424971347195587323267180658693371327066353594995776571914199042044040570686512330703127148717755223940722581678977658664492213245197394274116181825560493708142769971007317658697748589986950234495903674796046493310995341217564611066742198221665776470846055695573477118799362491800980291174806539084900811338885174894674413678829916743812960702545499752022738327077325788461382798134882015998861227509854819220172961917788165612068043624951448510448098980117665770639642025139244128665249465940699797389189468040861359962564721666185841243188596561124190601101531713452278896721458773046002928821548792213649800321935761543585459722039668592597319154085917806666117955967694490306582860568670108559792311659231076603743121512719382365269075581579573244560725161806007909534962795292411477263665606916740940274113662538297759441627568729589567149269483861426066200594761816760517244403598910816460817073477924061442629090696855758681959483381192235955168494069529958003801061991570579768192012603883369137900653926583044378151359371452391852487013101352885099278184121129500772122730874830695279650011493978811031482355620246197013356465333890461058465964813870593574655726341837854180977723742193011165921406646332870474915264367459968465595817308608334474873866248576239694970208432499257144909011967921088134737120514314094899803918380827099712138094822292966692230826630293079946228693938524500531089682152066194399080664084367873911617370549055017192863084698088081121456060348268837231551054956733972146631370849246937509253179001260163541225014994401398600464895582753666674057414251385356370183841724095794027993742009203890527006723004476239931540542693356114099332977479365953887836711815764173684155065092389615354619260205433890359557216805165651453499600076674248271098560164102661781259715213322228706624694023462609503495477409402414241174424819325781022884794054733178181974041815115245815568157830483867887018446278378408658768911276169316102075996369052471460554405702641530232846978155739670004966353337611120046902835777822364586238450433967632271749159986666005563904433691972811494125897179663197915677033913086382030479149368841495096350756765727762931028295081534897788020053210024979856255305231636026777479402920388601393439507185816285864394638303688184952710490033845532620861858580892653657512386140383125042574924776001137048931097672749175262305022259566710675572414703751263919541232111560768644187188051182655836062128547790630911958886818026181453244785353184774218242588543494655779933310538771942067352865609575396944074602006761308986872196183150995833676955441588967894608063945390457089026142724405170517594249787265548719063911189866336525579958053966330446933567884137021200632202777366740923147289005622242873087051503600625393491201340644945807450111996697489385745545237221540323263538111175997308303208903781355778034491947841685296030156740953411724883909721614496616219094854851398349140663796315993682188433184949710588942428428313275360993295700835885933987930274977293685565850190150802543594341838993360378540017770507022094143849394940924262876590140584697677437169710919032194404888007774926583569031973624170282828348861189903692440859576373758465011678953747586155483857726478630363975689374151951604637104639866647848281970362969508115529649713919776334178612855672393346743503570972141539481308000598330517127777233556457775127422407260585126453511630612435578556344103212587053210088392298053449173577761979767680939645803961842778378535049961702126404632615584497708911455146304445179841610454471299719669004364240872558830842613439416335538888020340955348692584397143466045250476961068990441492376500627070423297538037416056477089684808557207710740253529906893965957699198533899691839865076880594071793992063883246536104574473261064165656681838278130892279446791129687564945781217875780640032291508004554275778559250495583585153793348370694716971055742493412776586656185678594336466635580815049043811319719249045187822437799848066065485182162119765353357683600962976838798622843372452506016543109496028284286941378416983313123820871463775733616019078032979287627348454812389188495788965497666129081866024931857975371737871549041504911793784573358402455126578477182973301007105508633329593289194692221857249775914464783860814198098452768540234719147480579837486239448581818200251829022338436064789122909758508914857629948968879962263440126641991390879132201092603234287370105789340849460749351271183421067456219781933681013493369902933446827915188245925101330680849200672640959221895578382756421824758926648973321346994461141546562338116935211397261824392536623406638855200170599396354584343968687626939255621405360089261728339578544978047050192786712106284461342006630083246150492525224203830845190938342891132935805865988008417890616812276382043606175777268876371963586917898788094568705693425436104996396939976610850794741689105775523570693024360109591995009833343314837993247161272586063712109252658841299742111058747555661623872099609885635686457896262306219994498410835703116770651054544084576694896903053414720957826863728908086532663286874665746085151440581472701169176556797485182159144503511631103305260537632495191443871937924391900296613829494322741723854202931008477447434102000850747541529991730860774633091039704000593816139611133894353816041574322105966563583313788517825867002478908259811961264413546067022685712259414608702438110150372676844113092106370188173225051736948900754996843112625799386236825497113338152003092843309077239084369571076904556579690910766115603442052758521088067379345845256040754348723103806721996383094779666323104628552753028246275329945619658555362831144139287176507072442257893217353309314154749699955019697372688017628469499549860056813611712132026399384727942915671904474851010722233749269058031373045568670322085701185828194688885418655435227006266848588577761130491283765589316273912802098866262900479079209009797316616126559144157826436534974178939200098429857175330753771884482195259092259150651179729330599299060951208785119715238883071920357583956991877643975100673616330715650201261868328030012334724596694567140183620180404289520473898932868564453595058483835424588138716171307113763766139062904931314082539865619031512108541804464242172802689336080262721883743778474713040196946751871293628595906248762862046180480724926680673073558169278940579851663852979525418318705383922400422857675484563871785954289607803689537192168470648146837386562865479037320720375582993740778711273817426148838037389397286192007864085509014840362330255373636511084457592090726622666855732116477661163147154978045663934771140694458608064250169401593693451708365878958372804148768694286553206972232817175474481830083849360818057077797786134769200928597212332157663329679926413381367294619660811995446155895354215885852334446217737062000546259664969187081110293480954374945893014999696467278918491038357649647337986251533306810056588289502713774527114967785964519045997940219331350079785065427081262508046134083484481621958558861086230112079472681827576907767212462819147011355687811044410414884498730267298005231640717004287685414825149979971582473147881630814249591790234869761192781432555603121687644738041281950594845440195332073050851199103290485135584391717096845674282114489680027338120638491613485928748027892924611512109848620060652625325997271618459794565095387885322510625196041506058418911017689873703788779375426376814671080758801062245845530157354363269514752664950487501349184927152718238203227486687878754638892820673072636037129587059126555936453788135172432321635277593945367888286765518707489042811679342477305926854676192250663800872775211441087583560910261165707450523447947292025281550959705644454300173345632451964232828042328401633884233446645696644772895333548032252545778144123967870191930022630260511324167536466441027115728265525250186132917071049096474697627879211517959459971827705295373832551409340032623036057181538017278289678812460658452278913447338034606158273551667768176857199573740542653443003058654258948608582080429811355150522223416004078193679831435395182463756886156351487872542744786443195358936247291068078284088024413171079025136912051603661266114122685268798048892530435147677354003212759819441750679679279726443994215491131958291128167913846684193385010386830464993546833025567262802174178998863534320618852009645054644061697454617970284450662431793390769897761648791737115289306222603346300149709290049305141836965252449655782513323249824205834231894836276193870255847523452504250563438563244640130666444976608420206957757853138891722559111694797981682664633936589828219048919273229693072345479784878739359214962184574120825590309460353658063742475137684439202669456506926169568554205777006673617048125625648622906244140008334780481790709999343617179173765648451493820707210007617036044998897227739552595294288883625325612450134583326503382848792219390295702720495873331313166802436484498886837769507646784486658042575341778593879981682203753340595384799353683454388910656923888364792094830195096787254045693593879261846057572189642966422444146789183110327725881249524793973567613185664260481081334091464568903336093471903154452975458811047698552389716483319087516846757915765956656652069441189593081823555867765967921527420645039856773940261522741534575933518997615263892447572974951879653342675318762796535576191133672476714959657570327593377265275801382472890035179245677346939125737760995280222794187606299696107534072241595188624076081361379194930895697302566163573035821973624822553658487341968906569254645467214092005513677797215433054020654346365199369771425141920778905545311292964818343796660544339532046145905872964730317699857986643275906968818070198320986721736042222220744646625278578638280404982867193374626339419438550602269358613400899239956516920836277441568788171229678872749199850662275826569450600491229793252540313067242254032450496919473573762674662245881791245205849617594651517185172254089575831694015236067725678783973356872476281099729272847974645822938191970965638403430089244533753933314022191385260859445904169778118729651920437222561319334531725754445997700043739867802764634833210768979239431729162958152658560823710318817974999057201894516540945319609459424841762911122306204134748213191050661047762675970428803338459188373825951078901563728727934552378225856325985374600240591358385485095275663956896028964842678468897995959617562161205122265069874171244381841057529248360290738355934549926336704587482707719124128882646717032020878187426262012110137658778996637791024396732620128233725504807874143923108128229122969060983153625121946654480427329771568367163583504735990559863041297008973167750955874035297117084863392408046010841254591310805077843719051254824462933668819933673467357613835853788669900582547314926701188000876158392466292027535311191375167075991299481194092722139723113550144451337899269806558832076050765719422300582786004668372980370266298963968124272518303596263605329404917156147396609659158413135154202957759404886136221300516391716142625659948832741568067092721106272046250105983201791753244972677871211044327258004375828996477802093140931435537792508698616429641270142264183564464279541739784600614791859792898992463865913073593279431156559885768244863477548013076516923895568210569156437680393195215275172718559230250414797430158851355068544362618642988771154673733500493230986931574965996498448349423593575643704703586263289149560536123649930034807533357610014291254393893500933280975645839569310508361898226826436905121445257231274706167980827203081887557585733201070436926573000923756240274160180855524340786398275785976953389161692452189991306563468106303183067069682723823445123792710127269332772836407078194214241888248787243245584443645441458280747160101296564034602798239024818943641626125355184205917699551880493268533139304236081621426847488947598131679805088991873106279073851678951710268619700151964260446413474240130884778772338091751244953065687373522407473257712527342887082537736441011738194167306361054689348994309061113454845066868083941837053488248452463018374414859203686195184576454846597547423263418905347843256089688774605194724294410520405940388049479486143165825300825673494568908604267327566815379276410633334655370508300386705493421019415985876890220229625553431825336561709327919907078413915517218831179263874453460508779432423565289908944763030219888136431700192569273573242666532395517279503921676734380831733736043719985663889206161605823758709826709020274401145335119612006101548025001684436915164982602484906631853227752579422461151949681201914950705627447676747240546071630818944614430722332025581984403495616869005635967841759392053678417780436252982208777029139259079000140508799196507613340885421902242947142239574898044081046424979242736312431732600284174082003323149516581402320725294669751780600405478120660933294800119716225420079513195725720748665237283498718457859157902487262734174157218637750643295601456214761748475550516888745105670732649030396557945425880571925199187006605897974715121888336161466090384610657700243361514246969305233658603166722314131798068466790474591159166804377532345697137266398225587393261331751281268241587939775529152584473112915793834647625448394023758080142143643220828168987412909623978599512912379777491205806006213459790107004917088150458964753167507658791512924653323719300003527344126405438705856839770939269924242852323626223916336361277329274706507122350077430531465152260412498042262354705613795252370199767475612781352793861631786288720663787591025630775253532141526252918017215408974008399911267747009135870439643759768592979180875731135415060398086972984203898414324590485636081260011630691937476252893313843258906006865909925905802829320650136254731223174619871852981763972292482423172217545952751700407081025726241199609176957438069617104312373847394550650007825891885041244594830518721631217456725058666844068793774458308213685089685442418539556443822967170794634291953807202985252454054618412555032236586759723386134768251497024833749086982589299102077194362365127308988347769042567196224760269521459856702242927496168199613699668519089767813946493107280271510694541572683033881136907806426511803209680376580248736267626687192772096419367094099166117589118091909160783794348926550469982514848325282894238940183595794862236516112849574564922707633118419490997378899374359153946571839560828763134147390359133581471714999562767981313208539115404703087125517026895704861237798522567563954811128621719558115839734385893435496413642082658105528584479576160123756604510649879896584958472113710574246758089177494417450282482763487764010337248246194810773761664090596683561982752630635260648207401852676183996588821294230739758933102231610444337689555345390995185157268504889514048102111747854123273680715852206437054448289864383274742451637095989178056450884140210340678032476233892235981012775827891019448043590788524092485137279437529012843091932081939807257651851650331002330253985948976757891459594225646505405984997239616297440362803775980935184038409377048421315389652052594443145987661515204768731336245840735677779358888704723689511346134179200775194504838090557568831527091688615937840487431617558412003255699708918324341378486774619643232146696075027651571098618553175213831613903517155724039220072015073323780456387884242029337159822701167204218537852651992748346048627790140689359310633139620768188705322488591454773586575116848053014391890623067423407508065172279201705367997418941609670948704254673216926609206473117888654426503579329252932368865140321976770840310128168451011954278373222707758239962254500277900141940894905774728395484631338794971750838350025484981501324816955325951021651906575135187562402478249068270790878474922278523368107355543925783078370975809700598598954284677436659527426499307370532305125466560112847808639922777139985160297972893676072485758465490114244918660954385277872073828276524250147024161861954846729733662418248455126879648614351207381588193633461786337183020265025247243461611479146606285616593788892956297756763540160883773180575612020205579403655601698365980961153017447953458879648283529071378562353605952044575564753281162819658012025957192235439460366848800921300833116984169345612272491006027320241144719670482349097890248050771793676167844949470110321549985558001451885353580933013123489014928574527991011610202548929187943592582945296412667900587751505762264186754670828964803247753706260967769356481852391278778648885264537650973918474698511876217067148720083696481215091297688267674087708765301309961780329494270264888406012276377983262497065759979744541010887771415057856929650729563037720738328119960543178976554557755024868703518763132276251008349735898584459101577164981559814689625635733554232753426773823074651003154231391788856134059688516479768266545292810632045975747346698622849307654357787314368243527575649490907919271426561588970865369673404696025408068171204804688628146400585478554321058083172346513791002639305932505645243230256372811516829687645411188388340889991746213174550617077403054525131062097243509400134720532707913610255352762881241943739792265204611689723452108461113618256842491019128440152327280382823823802950009110213711867161204825004594604380693191284683719749734042114401075503904856217972774976872732766386324331671623581982570861787071787312803601070701202582634177843664624770687056913146682545695845869906465221352267438538038574900004659055341360255517141800597646402260219074924615869052332263172105243013196617618689813018991599007831903730184851803715330468783073591473998010999941336017888702032402161209420611588697155326605979275890598370118532273905089872728362774973927938056338415360261666284240444397772795509246703562096144182287648278270388770580660062940933747253865690577228837551445228510111930880039529941164650051518596723279636730020665831818462539394731435893474844260801711339231432411905074888939834795822634231622235933751425865093886495460960028094334910788001192043184736044369110290354263196658306397057283383166260760133536031215151706904352424591945400634903007581925497355445009068123336931019598325546835584561796719353912947512587715875807317644181027129313288903710560229535274809064190000576219294995767708827950977353982694967701026885414141784681295178125895680651308866324111270584633433169298669947788744621584413439464371285267460257399106837459412598350375277583330721611207459855191248614000689036084530652269652015293779126409485450866204919213318952957618269058243463931482922979205807483622786934156039006179045294447249546562307960066671924633951235101529192436334606804642318190726563023695077315381202304620343142749853255963659604208653825345205269478861160717495960799363540712472574446175322497469340792959579885783876747591012201344337474674821591694452788117208699668210003235332009443449985683420117150056874782142427503158621046671335978536342648821138090277806276346523213167578099004187010107293106936825073796942788590362440569048633540044821628593713022652589712715053710362695176410914025746204409820677823546819512062210310975499315706994258618781934830390069711228266999496276257696990479303590464145869847811295814868725411854479160390048418712581123462739077527952132859687172172815954557594155620517356478673913300731896141560498114897501081390892727784272033082561315536395584677156482721777792384407067512046015986161448301858557144930360937297995371962599972615326068856361810253940956802731145760396731869371987596059224312610684655321822411975225072310559910584192403566489575622509900106267084071740708068840055698235773406190589521033412318765325659560081615745042371460600397813743606143415384089297316322877388834177797303648219125073292102104424920922818077361518765576950879632206717451585177092808893967087196892846447285456064497079087436503505264080332321200695951123661260698059212908198781763323617084470156486570907990877137583721432436157231597447847372346861825860910646999112887883843760281845054136890480817972008620008325282567564415872043397807852923314490731095644811451460364475617720620412072896837327241079389215543595281204530211572617625136391979978762554765111725460390706626187850378771397487304398357559929322357081377357454070378942720200607050327457401376431111687134074937241543718892956494509205252762861296334468300118302439725614023744174562755205383644104397000212589229132698479906622849837074714875859751291573954507180763073459918962040427677726890885541204117702840598483511288767857681749084799746255278455029380629380418992478040879796064905349911691139574524374157378422701733332998662522937598955154066772978728693011764120727690733636044522364048891485066080095054611956583234551441285972879348438248065504414140522965339599977116317604128910596122841256021290436151739456268856884970928141672296789894938497270728944816999402214612163884624368361082443197772675587635033588154985658811989506471151401147358700843998989731562944163113116534778063902359024764560432796847448618488751194000286603590985769629630912784517418156527446135185341667629748890372998597416261960783875541883002786239210159509313631471026996432831088106079188942428394131104963522525533545744147680149309328635247950847021236688295462812101614953675205229465764820082875150021050219636882949842934969992864272794242666113017624760442051764979856633276195233376527018428476474325197805173447276921698015219679573754041199752020663582721586329879756520905794125068837884021945119228465853541511194139396685242600378413567365007908367462311903565474637895921352248982276343180275888650512760696178818883406260633069541701489521161372322678353380268092501698333813169641634290707110993183152410442892588689480588167648034012484202894267806877612020581497336240105892478863078155919662558066738420474033740230219237311858771383681172799667187892256510999932294438604216987366731828431527991249074748408264745394905615496969851039408977019312806443790640524277079421598126935108192440271137230523381607844794487714597513235081527442691453804165276491060098026997901949200536441763359662782556831832323131452838789119500159497032864708842816426773613533049990753233035422258735478197791014615227422286060924564778351116274019143360856329114813968858969258277082817419403222228946107433485846269032361122913514465544534134162755174142321915731298224423010895368719402643698264484191287065732285636902278235994630500359737202836716084084232172228395080085082061140408933717939530936282214513338350397031940016102675314103503860838242226139022114828034590553504487165392124196202772417652191194146627572522123906954196598547739969487313854623362563446604215323650138446662501522640683901702055835134879418962399105727585761918731493611701082988294222188456123046185331064245608180340074129128126821492615792282689196778986166831264373569033982075501646425733426567316294254294967280662041675288196559928356139044346191315514165701826464390061185564105475559944444548035739208193363122844862928287130228313481430698528356053604531888767674245873256505008960093104170544157094878748964190049908201097251295608607186694427275929585724097955434079403424690728004063380140035551965945763002267226935863706711687215009155867536317381904945183924856149017697665092110746602539436385807378819714735430277012890522769035133219080720977526860674783091885288419394147211911496810078054484408263561992022477518795401810539268724136916490354022167798314778721599452257868391620456904491819790284610171803194399501640938996407413328443480107570258076874137935457758486055463044444842497097122790265829404505157320906693249691711724985051776786591687271973376626162686302675963492228920386398517059213665311240719310482717996752552652062138578206494800308801842467150887954924327906175988957555646190595664614587942313145339835357062154451404937882009804186259426227162190873940964745115379853198607843811523924654736915623425214732637382686906658291375420731770728612885061979203737319537631349711418618040452611248413892898308399657767902496098310418948724241056568460279543480271075259679299050604991710865442879155331492725576484419596018193938884152291144127785456549089672755441402627285803147854019467291873558401170231915111397132213299310047025142743897001759221709547681879991720610471147689841022143716262684173718391810163675661911165719541991853795514530103757092205341169478323985384366854515567074636029228754124980022575014358858181034080751060738262334963263895514176262903848116288875354101744256046918937822888823414053415418485623738346849258946251824520696052062159300578237478435564662552209066799262029427665962107121493028154537125177921000195126736297420161606176237969405964539143924558520301693950004133277787679454905270634573614603661373930762950266208149620166492863780425189224294529055456977534968391505060305388312827613215115031953545866506865677494166675685737012885679000222002111944651866896624173439910960988382947895474177006304086853763884204636161226687997120107833171084255373659781548215389222839004070471537295773551584962570270743179424660246839908808323383972012747904717155269178241136692561215714920305284684015750609026910995735347965985078485304752325983720743198886997422416000750465774222759767637282664600207038832637532909299690430760978542764605471112208221354534882200466854552203301848841971592399363524980070582746255181604904156221376197679069837215491508589849157910466620933125766853627253511331043627936628528842597887992425331802717146073466566185005736971348846286385583036009276575956748759818523313696961172875205573748958202537820159056948812481548720419941609819482415571772892949662080869938856532869759682605786346413146621631955592262958308323390056282789413825966872450314060659416464972512394541576818730818724566131667114029743345771854186489118506257181293126323218656503768349560441564625588412815154959780360508423278447226689197193223882417092426287340624164430032608840015177015127721595126077601294474794579245441957796457722462604932942211125219818764621446330960238194893987998625607924982666393290384787611536206072752679301871303393289499196561748653258688631994217364372085746750795712667728494437466173997623809933797260180062840561341396345603041735296410284012496925284623748944147787963395912018257509224150376538124475964271305188908930905528125842461831308749650630155213403162397587219683606221605660748663321988605653715080236241909487506293055230177807151343635668684615514314033555354483305892292571817603948768208954484743639141508788356083803297030459750945116328147173625533737301291740762346764236711575588327173113545646545175598103377469155320488424424046636337382316224374669739590811156060943938771831164912148085395604982748036611631805673383818139094745015253320705246355398560361976692274172430990712737552841718991109842808102243281119242435669943678893108192369353132815063023185053189889113895094993295581488272852372395282756149158946302232736684257879270495968012638795061930351943827164729850585339869919830212115024457234683069701597205704018827144118170366289092083215034428602544544936013541685305474684493447046223078008345230040717175218323370260107282755127398196237307066011519220082949163315443631141788542215341834668663571699645501211425341906587385441054196252222804951957902014197050920511449096700553271672486050260531829083436100707606387881272112127926889665278365315160104126073821726637584316814651629607132788921572188201769095730625783405853273832227150684097862672998912917987945552501827638911692762644015856852602565467840913404656673607023004032343863600563457008583492833973616441348491915322216878997750874120955805940032938468110774978301423158022119245576690862185138556453235768424917650928766898742652930448129454739236458668649141373653815571912925182183855216263864175714402267449807357956716618759361583650093958486043157541465442413352391800725129438463537080563131412072324732182385297661252570015696079425681944449487635138456128708037172701418761548117459832931695406030781499350340046967600537502013229325559605478473403536731099867354646273134977769344602031020177413296505864235252120902086278334969227722835383801146174538583752530135567267887242671114518874317079004148664708778208415105823078922475739857537980028011290347956583896938428896313263934066850673739478755810690264076419453329176675954971020087257909831794530337017660853479117134541463890251861442046956901686143307730539001835035697086395564685066215736962251567006745347745812068884736978050029920332008726111574783274342934730999294968869551830024600043366125366576357339347570526104315042088807778506125509496203845755863280553693945393888459784115380859141058852990260409652293788778201222049848445449107709995443319346157639281800868968637249244354696225931662202349400877293325956291924913391157302729029683447531486043639529897608318476518888979271003194397493076873559980517112142062192181900125990577929891720012445122819424952937860884507718852908856272028560146639937540415805710045854815545278881218925291914802602089454996834903633045793861240185559968221738491886980819033212604349890581681590712319844815939529286048848748197787498713549120032686424984620756809397660831625838693550068476503076188979066832873952916814111425678859354496555686080980094992088488893002082659932066172582094250498545908076904552661303299271040175030834143455177928241914093191555199253689728252024692780442301323890789929051859974333443504867865867587443116296282677315434641720454437188303201238754582327750468125530310829467648841478256191855806234882857127885616174375374712818740659564534551492833903049133441479210736460212938400439199785548932714905140753724222754637525072097099765524381031805510435849609172657872079066044090687962148786143539560614846582582348031101923776747435677849645655158951806044594478264669897930730731897433280881136926973980944848694558606178183733370257754411257777943115866292025723254511008806604234602126316366026237113596477897070328097589435579626559661282469495566727425085077735124781296299308790051211187582511145912277445370215338158748922855007957309217673500403248972794696003110565392436999484255528887602977461728945930920326890001607437166825274294034849736635147544381830994969478642640721420008454514380667598973044198794256513706791844086517153415539566527670836433557473933133523558740844005763276498001462180626177834804857661756327473882200626399294677266235817382585399259917012339631305368166577816280396342136894023227514235073562152857059009754307330074647442209500722466257193456087404167388690239185701395883004470990337921317040925610463489576881055570624083866283974077982219384256392782322156147566430239570357110761625943463954052014038710204431702059056353732840468242763773879463064881135676154905884359150156893029856323512740877542078455874523678865267252305147985929327617268754402540631419921857418673304045712159089912118194900270982961843221609662766976502500927360765883220775127148893268466146245197931022120405560880074473438407569819135586589738176462553541007450428963658086399702629531996980363546264973203736026183724862361678430420727942499955754197180045688700973371334333154580912585973849045879761783086457122882473414586024218720262177258408962358996137665889294599561141896306640231309126632579600699844406138547292813170554667289597050885252797568752764404160723838147482126830678312077413497047923223266508243510634500475865677482745537359019200255879050880022129350631733357250669871560739797142045664788978752969257108454573851604447679469605885735971155394332670562062177647476702545587214640538145758004201420886202752932163114467522926096056157911895412725051867903986885227025915697423441839368435335020879208020138391153613130479870920629772690408863440674682477112833914409450179974079139515252422357138536620870876778217981916744245989435097351428063211911413980702507936291938223283933238250075065991505065332094844150956860718170591748197228971852243761188692513058417602555179471478876294396768949243357221653936731260965957402737267204334430283531206473078677361075627303661558877775505846199908884324638639758225130714417202523613691406515921108968457036300196761238052745265297366025807347085760734935133560004091097185783178763694939248813465182713254274213274687875889111905254003473282934182800848553962135562631436142694053289312846816724914187733707461282285582508899596086247376713488179534986139167592894301966350688654951107618332116193145107712505799101583308287077619868439003552158934147534016468727196695820936977400034553392316081089666969564942907838069982932644085082996360393736630738622240259900525171564307952954765226478754473323485626540094173008353333330723757464289744838807768847905210109285075361265097018681660751522017977955065360123959599607176533572802309083007191293111584024165416910451748237614668938496212006270628412384188380924805675817382420177309692990959962955292077359164786589899468568579415218816583808070529194859815309802146049679352900764158299934205115521472413664610376012457187693928897567333764189208656113005509402648724983646749506965482505131448062768524872742808370369008896495511571031883213676915613841044941703204573446436673971079193422593927205068361791119686851975829705405160228301604703318222630965189236199728151754526589992498192288924849500561205909380390613366332749530857002316734323451495071267883065479599544816350373209928837562978618527284637706361847987275875700277317812333030800612375597173824515620048508410125786409526096880092442593822366859855812106705253117673957368468403357804252836675514156592401765007241405844950586097487925451551002159717518303051408214724033222269962806897987425119350840597086738283745138850952135634153266545709888619007435955792449273972088140366375117502702309381961491944798674198651881274704477962546363856111680069111509221259996211371154965348466822320093744283595199093009586953222702179063923072219629089718909275200665539242876826442349127847639909500632850730257265889816317733758414229629529495968687876304062904947881250454222088775094137906091921358585826365902046787570777676803825464745985826862675215883283559229920085818883821890964352451541394906988847657441011810928628477785733646915321027116744123360233120887404886202602018766703843089020585363846290682818877010732843111650217885379397353738359230872242370985158916178842988850085160878448384510243896836158426994796822978119640126305123201337573086450367470716634802096465366321304237025205125720612139156160969152096403864814964298543007516347845810646058414842675953432243548932695610675743043986645848001965177769931745856321971016922826454414855675294769748652290951825249228106015128104238210615301984306504165991651964747829602485250057450855907803157795047659655722668784025901176395923021443533966507624385840873136282774000402524047056996328457202481315665920303193989271175063197711645311107760942249723469793191032960422955723850092491871631401767297729756189005358028457886450345414786143670391870731522886440594814196404607420276132314084375454340849193057733591874148497487736611584529069193101580661864614620545693559837098186851884064820367733898935404896436312559400092810269973078762854268061698458806584356728778561456766560466421001975316657464493946447297982289176424847563649833416617562667084305415392347720136509668039869219899014844209887447540301950086496356593813805006105042470825409247049025175788084860194595908610488501659202520862408272048039047273265461627312797617224586780342892854567809678920552162166701224296302154032714324496175316829200604947090933562313422877845637638041117839615536267881029340335475614606706339737680819659021200690415184254465390962205439989958955173992070373645297493072079764256373345603101857228296290865908785211139201573932508942010547652579948906957216607856917843658062452424203963935257709580717869216744985690891491707150503338141373444740494992198204599826827094136630394194920278558910090741028820008243408459247694193672574450490653299577862417167482721889657972036988389321940463520021946625225121913490001767336682604465847584150361073601576851057944023073570385524430354066169594075193077741278367847731550685736486222715464205518929596301088851612468743104024563590647881418714727914581582857955293981388901385693975831816164252880045571724831465512282011836784453326556929719133382323272701908952726959916252257620622714962566364103085450148138747482999963597653364199021583760177626096186487336374867351439920697508935027429256466590619159227776381932100170860726920857968308698000137574028034853154434115169100866792868841232961388164624926465542480010889090127687580517090741880227195312226820992964567648546242818146020683001650403051717409013297381136318194197012004917525177832211922442242962983668778474559373632136374583964589936768824508823586048741457472846174647345558949266082340452942745319966088984147832571046337793549644853520868050795416252456979002540797652063524713432289700567806282269036240014676124502163720988209037828299605605108951871393281172005417172985138039507080662420149850614431796259589808118700025189374003274793681782314515791941394512060447442139759868974519781206030370107222067935324446280310509215179518922956686190600016607563536944708827660607731230385505055062274132252951919248996857158040160443632233881504202662457810223191072677266718106823185896338900015681886435494445566520610097440598458588970722429962154715492709354160881185139073745806181377088789994511177610451317345203601420987287785042799370785824534853096097162730236156989228436569236898721418894748676258006828783738653430083585607037089831367589771162571550454290088069136762532826220557595923877857348976670288259799521866178824646516680246643172880236434129232444267918317927049544690964863174675371402328892726504944583302671783026385699614015739720094565267816526494466248872495847537782256728141483646269381159418869633862944721229886249067060272329692277007624171219258347137828418957771012504025625782983578647719660722314971642691784036814632272059616748207864057357476413314674878460403323923097337150681522170360348978098694293602707068308180255657016147349762633893474616841511141885298073173805222748102849805952148937775795875993870187400426158810588480061814457565348639039878055237313485881553168533618187470351945347649011154081202891929155038425017124671235453275641307323450073279465664642730100739246630115358074723252230075616822197443856667350646588083297410094861428401738142385231428761413806400166259548663448145110202259583097062845235484071479131876083789651160193426428605616141921265410665813829048390928489597256936668868905545455408793440313391444671603658796657863686100799933686205613333199824144554507442805965855527473388924187435416549374956460228403516265561730138854293636756480418132913244814950729649117600182364685768398979405618196414815959908772399102531203185663240789493853556508903755338648990877563975818542559417483153627281873705621362917822821358959891936062331707606325861462626659331549903317506173407962955830955584785377056924906443195540813635447904696394022666461132347755822285203712343132395407511760042326290567497036192104673332626759459478486071724360816050041646303317525467098094994520716639282075818109857661091392340154566999492157342678177127147961582397416584576761828768556012224746501124623940063866195478543735601954885274853538277002103240410613547583157738797013161802138757826895145010890846956205928850939487910046454868540346575904997672070446775090647795968949201542605169847273031294507735582435934768395792388972385327173810516607667029938483838748930810683822960718466799208054022911650352803646677709536450741692299022554484020436393346051672037285842145376533262627240039117683357764853596150819162565736514122170586026894251841926157121623107000281820085402313708634625730631086731561290558373194051267406065452804691055467085437178166269745463106014043344415029309973575625764045249523132053969589133946595195032496606188402775315039877276503721822062195315562961316131632965868238077682668894221814988213428764023688793370904916488168627288567222930378139011111784034812323136639260637546859036313178548202737860732768535774208699021956631549606165720076760542687256845226304944441624093892465710641699279866658587956534538843681942828222305145185680617496014823312208482357003792664359289549595312366044201749705335462609792991900902885459886970777109943257011959817308517959152763494254922084114171645924670926212746799034664565149267861321227435831661975520841499710806074969878445041997777132621214168269979932137088428135836826831222603914039126135652436091491957695701570802070646514973487640930829201054884625127872081780411599238909594056785845523791380641278298433523450142218650785865616006161882735753086895797988661830072961521683126876649048036521852633675577076284658340939157911976390177275741785438140457883797347909414328070452201724326009493809251638854972268994366005299805091509484948712928713641672544159100999255446252314558582080472994187862649152137890418279137539062872011778549425277685085707330469738289954021019548569996106360038429741033755466644720264447122637651956882188146077522983267154979674290775701141611221039651699193502170211202179826088159988826270777953379429533541500503915089606669190816747024516060301583433662129555405328004089949765791404523322776759144968500598377814667042541186869882719900714830911814509031208127490273714578514244690192083619185837744094681051745154102700119200413005983267819590951083321944474443712762997104733600994847139524060780845198895094476258824849089195802762783449763756111919580046122375632374918877914629623891301554727240797935143752608835510413390276583643601857180837697090161532421106072789923632118364447571213367601663695443791923969132901452098885824515730204245713281154479115058459768332438950116277962033779681881862273803315430006807684730464099594483397212222743782092802320600854260925359172247417078841141040073192180468361402857251710638680062849650434973654460023367503850768404003815480275427585929292330834426590085801297332889738152796463323167410566883749473226453300540965199994963828133093081513060163824636914368034327376012749414413785304588948867509922222981818804093779507458585529673845638916103859434609241084531859084543804298368615680613821895239940843047187137274726906794040359484440289546683006514148594408775564845024468185281965707447635795183445812667066864998346914675765496140825019695911060937985475045372555123390051037091687938720988476281048618272996124524297796034808907444732162972920078135225763979863071336046062041585194709392620464629080043986733831037982819715320679393401610809735050389324139859487644846718049099778888251300088958213705578102260835495349069153643720962542310959929965306357210376535731706426567892217155973192021741455089830058660897523749013919458787818314401134859778063697109998646504159508911810148422785875166931219898578085780078851066571730898714281334472449761872074364355177419539756507930973763487461264218244325737522500689352142693853996950215819792879961004904860159885334090814208472051082577137810653786455961502549688241457829770523205305783355421468352040714108731661233149160408526559103249138244706462853576190565167139983456589810464291368329318173125171376457855786420342328471595357559055056258022233236686329253071078113828015718771587210816771508493942740252268104651268913819235999678767468468386465327571901132774311226281887625903190074003067744369585679501028672127724541579648135084118523495355723495572184625676824051066466715330094709715828319124212871913791943901312609876237225697683352168824420195302986264092717744170742190161217977213085517141135302521717210771430990573847373339267628649386897623096027332511476562674148935410924362958563147795557248205967845642523143822174962393338146155529621567610346663950662316958820708597551504375482767416345997626912783257008748059853013557690523728268787804809442503352894551952728353598673612090036223030949487771622452577231573773433387999033935115753761711441324282584819300649683783557634992504928760375983125919550476371218289785820807963753559336522745290924736135035917080777508367115644846779615492250458777932222274818021403528614517974630133730364294307171683922062280724046448684616938535962556653873640222233555545586741183216549678150742173621392133864680097354043730778903429166929035585624263519713471865369663352579064661951440593957694583599495144035717897124551895226414935381843193956918851403295105327048551711371574207985631986701177764560097493822826026767090165029305899772156931031718701259532013804786148955158075629770400041689679711654475726228002821992444411331561599177582356507245791864388194395626145477555057706779855927969341755045685060389617210433830365481055012246889960255424227167688458406590576573263389075799584982583778980835140992732385627375037731604019160101198061057558665043045530178966027666676363779218667902564116417599135556987319423784217932476402416902468846360254995453684622901207368095073372711245795069049331807250708764414667929462510491954320146549022219710808186660166543794584599686111895874658582540338460225447829664558545418871308544854061870870057729739921138057700741768803236208351445416562288785451826847886227539600534307306206908294772529656782352978244472996018389354815137272198319516605921507601658218178915294713931935992976065239766899461651506189213746846278358954496485580812647435773560550075754124001540379511769325449508501246258707991486874709625338788301410669286977874249292150074233137501404811385508975512964475379662801119054070025169381644022714936946443227678171408443195155936904712447122242221661071951203677472182768932394451938773237619516633873719312338069850637059054440711726834833402907445947366350369746305159167959991738451616777602939873352169880219898971921772796812589225903443460909948784767996178226905811614888347656728234979782549466027973891644042171206720552764135689951465419474396963217874509935080026727573276051933608259230864025107509722553952076638251589993636050025568891703653687116307546288977326608505649913131980212405907327699071981947980312352136189099551171064911657976748560062497041186389350005605137811286335751596791501637485461790347376608597043195320314141700353457813754195489238526981842177311109738818222207111300583455989587912496030316296032469670857363339988368144102403078347140151716180491611567478718789345506228877655643147851691973781252414120520837446187372909959669443266048857886369292906554902273701125496218704338120227712436314111948119519738482651634519137919956850678539901242433146676168536955629485190542598522209854512616160494733253461410309472618686192889627745766208939072267016797856931252009838635163927543090841725268380412923398257225710992070460953181149863120884655617260032756375077006158407565771976396536426715942182412712669356713412700495099266461678500029493172973112556093666112700698612823954666460299083229171856041791156111761187716722750514305904468817079602309791038904450406105133409425961764348360326670758153884732027431992237348039732974539581482832386930205506783800716848487607434385566815446641441675388970666610679592625489880512828485429807304696124551957518153943524792616494801177271099656545355838832557904105578529852126077867570502173256199063476008983119405934735322144474994239884068068928735098598587044905633180910013750095972156942418059426847923560021011846008362861351825804458839541321738918918904145040990182257731887307556621782295771237490138157540414444237520977234421369660372903750831949622319644123056597304354775780539752059621277328494597123053633275357677392497944994254448992167299303040381636310234912114822482778282696375525204207570097432992508184111169551856359127316452287374346102376948510516486511893956896274152588857699232035965055935212909679305889247369244621647052155690298648741384038319365708146168804900831712633318012566408432942659236462736459857494468162287344521780517037239985367289365584401008524155420546362358737464560645033623096988320264438466276140080182389262225213573008919468987119638210404453544043606854703104429892558389736086087196284083763949324175393974075549672835385990119336782898696813054220579260562024599316935401763971770468095044135966106400182018922858079926695153007839217971941749168508299005064621797464538821729073774027405392536960189415717666900166160402939010087993064136737137799699581804027063405973975078006010077940153363333178272225632896335346701995163615722448233015160525391475456513968138531321697180313117496561033316253012477612767672171409469354923580620493426786308438091314409566778736503047537269308472451744565829517006901455875118849485633304563910763195329992708605111176131614577480437078670737862200547542521652592892526682969609109596515721832661755292466519735041151387396289813866542010793431550539610023111956495903184900177608201985332674074066314996751477754385056391676708755230432725441768774541221080311034012913089780693404735396519831679373428376148198430448349583420940935509797103662948026361885077574400200138525379846901394852676844788653060695438235400464520247591675934799175518103389811570476060178710435737503387737989191280016555389413064207216437002585927032782506346085248973987701234963312957383943960070068949577707317050135511635606073613144671736831044928120812860173809773264606712000205175042461088585649495140354624420498918084470475069019969488100525211154520850129738690337839469050891542764796360630739664455697737875846972973064765444180384186573134624108720973215741327062349637670109684132487526584970225423162332808149812285080442654023024400821218691392552043884434747143675474947714386144878957436203936907670752007237264937838482956070216668643309604785595782159129249281766436640521303798768959974383730135179636139650935161650268275957201060587760816304867170036053738787000236942374711926392813674686088005557199712637217492383147683833918354088156933629546906327147129815534174332454327947548520790495385831107984361486113375829763331482748357103213678226383185494888442946502647286743059287354613992745265579395757846529846367299408198110934713949365639140272417240018810268049054049571262462937870643691003777657312061910440709964592239125993426440929577121623343310322136317657737860176061812243483661883967992343836221919302731038740140348068525248788777220790199765844469479549302791297415642969919267327728173601606619356522994846075308061800899684545109312853225611257526191694191068656386458986958635561278950825590874638896105202346467568246509844062180277527196110262446016019497703594861052680937060521578846961180754216067986372637077598325399184704862053879374597079416804105498233167877715811875882545883591061690030638644115725738171074646555856641778111145369918568547462011499987057410121252244716455390756243486209850780549686365990829511559138583241561237643026909671318859047259402065059452895864036747624478229437353190925420551782171784792378375698245537026546950874831155031374856905260647990972666477134216837669707770173105275675502734340207394061521886849522772924187457349070027684291537330938616889241100275257900875596716934043840809191479219850836066032159676264245211044372347674245173576094157287691247040028184179797144911695514400156764443769282794548508854900328012361194004984834321032438323295227030150975096072960621080275750283062581088795345980216110014705489876861760942818753649348026704697275830240611820325562243495665638206075992188733719381374448791549137502107020267349646362672876397752317963887516836031725246434786372181178085103586003885281432032540829037039331355316351316021046161391653401296402584146904175361051419264549628164046654563226226983593294492330548124200988718083294732168921704017105173089848465500000864501100995363186825213271325628298730585163963421511403587518027575148658075613225795267166989777312345260191022334537534577827769154291191544758975923942194629537725615075824244982203074316871327645223289093635614560747426068288961210421923463554558341929460692769808861637257381739517337264864599173294120812841790216708325141279931119350091187392964205411417252683182226844677269964389881789828719072454804172199488328950124530300458540350408125307369152842301185757784411013079040736294245887262920672875854917488835050258550931595207556967037527746542155017536598286949309662079242495140212909561887422905015666620348315838812502490318499885894227636460475894356327183010397287764047346167182781726672467661776113256349553401336612906478055339975216983143824177217682838533403463153015927363940616404772608703520613636866815834348472509037093775534022220665330649064552595237030539109132987506779930753280943698007370882945163901997413882179203751512398274319871107482073001254893690665921080373031174360506382084442615232943872183013564300290205611062034535400425961057745867402067638062978271625983422149020988826810972912396639701519327365578997734996352293191737417762285888536662487203677316646477730403685495527010569938992268561006024864667210963681502787610503223049590504315909595024803669324871963037625449783787852636747008449043686507090447697742298746976389967211981742866376829023940868717701534907918884330246801014981137396229350643162365455516194036186990190914967091149576625095890795292452785262411638922026333711219965049844692603598199462710101208932516562811777693679407551626980589712092243281547000088802797142669429618451867389306438983299269489199140785600240782481698772618555645684583344822554236612598563143812196187939793522782124106625881826568681259958723461102902685222917663490453376975413385832616021864680453800016167503282487267035025148651479227753006147459478050522394540959406191159062099058534518848581062559330545742802095500703906986680039168296953962465976126583459412998441771736796980086096090702079929846480367141031722974429139929126563956559414235812140292501219027260881251764758587775901675870654511046627186393957718294091785898037210158882403566883532749958190525583668915989868258854055148183271902004310440035760440550948137607291775983765509310418646920833438624413498280987416132933575677262302848510525402136487003860996752076199945724518325914829594524464008902537223507817916939290437884489804838870845092280750228929572416176894619072634514269436298274448350542899653960569904179571930906602633601764948688927720752459977319928673239839910351149481369216889887790986547803234390974287950266349735349951652091011217441716068847375214170202668913742849211628579823606075489374461534765266149966299119673951083911995064014932149022987622005653153372296491273752838423672277833265847055828307107303064872220068663414188638224559239137677565586570058888522918354862129506663522821310417540928294011553919296143390838208316393389288940198665761620574713012330307824448185891987666165987172845757787073400518029353629645848896317381033121538299470790817441648860323291508917866034407559300237790113194882471863338377075014155019806801118429729008804149644972085437017934139275199945503958182693245354545576044950635871966141662545729845485214880127206994663222386474043087693065017407413280263838875223250921301511669890850205481905175715754396464364340726418445088902212456955114437434238808135358665075407028485392321761124504807648025825024307149036938137249688369096871642277027113691761126199118856032478082906355254457928820903080615133666017837278266840129297097496164692404227362602248453795289559022141863531727280635265220446667954752673999290151204598788003943125625947625083831211149525784643215722547358773129230254611004682156584356141701916472698332314203517036981277131164458737555723142820947784191047443082540029376303749334034562756943029849989161624160964549769180657330832219843601490639239147749686144912660264300269446807707941630247742998513718596244589368791805018142963635056523632071423527571459853945050053026634618738254544508028190185667968377121075332988156781975626697404888863732758416151032437577883609641129973729559786199114962523407631957864981764813283808080303473018807736815528269918062689726535968596771956459455736487005558079408866176743503532724969728282966395170492712994825037463577612278747895843979188396573369175230665777352926935356885119883020227055158824002114720274058507500961928427573456842615003711093211071497966953862411250754983708332592770791456935550598551775759136183800446016829271317365305980981292322424147308138486396744149323370283363909852820245119324704920673637078799604139103344860786526530569197882927108380511090267308817518474021102141558809837602546184436441497400301082827961760342530678195939985235188182936886635159160102151887201802382694056191423775744718739935237252241465743161781119080750297896293893239717118713197927313146329623881714744087772739022581749846900104534383627273243502456129029078633147031972630986286527613523343140801794518898330460161962851071739580834076279834059729918355678913613277911684575802939736451252968234372751424323281411135826302248558483963887905414875166309300123625321014542020553732519874889534934707615615912210981190318956248899645054665613192412232792596435893748081853711272709254709042649498574360370043522696749953001010989231682351086597162651303025701202557767337007953031751437502625897447538409342539365404269012757563126824291385731373067616474301754030885880742755369790023875873882273439870479732510698438053788398226434534764837293237451298567005894193964200046087071404764443970529705524508961956818258032997410631189439910554473866484773626095517515669573837585135153193185175243088699020742490136102062245459073928586449483338161853542585719496083923337728477028009375012497512141487117719236224945379056651577383906496812954832125111745462426073247455723750318562796787574642159786112847228947825523906283321923033714648646359095944219615676065554705342526392838215666443536247732581534623311314808863474096330418767767902242289221717386630455623849246756967626591998653738292434109237514788973920360427025862813583176035661101153714821667492690301924559543369314607545189693753309828408067590433500049326642929408405936757116738815934985684849462560411539068857272802814997005528747548564768440204293664439568891329432555178737921279411358349495154204084191718223889500107889813309582154269558954284194103763326841052183102080844356336725048841708486385160607879265282318838946550703087066757747574006450050335273185590670669513371125663828846309122412532515887117262576788783015531590727310411557120111649887635893043134671489366747010778292661031232279731038240710866860763249566531896539355232022613658243724861539630023514691938493770941203421705222736081795980762987239011072361065073444816356043568609513342062022851317401734343337191300010907667737324284337104033312725611515448884373575232767080147883877061827026686949621634541109305571086049968452566334413940265707483078577480436266047615850388827049789353305518621909201418204742405245545745775443475789312250960518850934451855755351868989012772263943779616301308655426756182666401256813921690695325604947039346341258448805407950937897814490957401401565183863982683853105523955886927883745069802905431089862512783134292157321857258539828902602277792550297609474667523550186811078509849764453448329051294536365402178457691663428101345012847432079881539869855635577049405919823531493755367740630008898782059272390374310469690214346761643761771349753672077832580913154750446188649499546881857997871118940950385046602244056768280561437018884091553424444880111885965420477907686787786815589271275769309566009342541114548370062207293333718381776214793754187317012761050170771193466966486215677604727001867999101216587755355561723538560294537028772669549631715391983403156168268816813083224181242550261185547364046516746578401372075527880021774675288813817580655043517343865208853512921753690437491762148931129212208766484922403764718977038014641068464313568143068461329930984220316491859121668891580372389986769799819721553767674846476662735328040420306859878491903808588725415326729169429292674732843284866850207597194468617960550768461966220147529354182925888804729950128017854122032398801134210541485302455457125216153716404141801692299384045183727517688594170403478974219265877418994010693838638683835732992774077543358618881080224713016516426175438820378594160497599305546323310997514168594412734712632104931900014191404811205906086557361584502354102855203318273575651750205121161965897878428719540688868800920405530606862586321400471995587784090297922804518474391461291006276659548052280084973851131856088891286063468594977103459611432628951244775148949139444724885737917807913949376243261355897424251268540922994334602111555879923398173766215957306638287938810707707872204818209836860126086540101372516396265099478238512643045222299486258577016251822115128324790687343361730536641066562858341132233221194988653420421591350707001126645568299069059375290872263753144484559827402002200561707948989565736309342500242477763651570260810244832036689653234994464533251572296068028111728151356538502756900217964258195561470145941236587674771625006923583004046457857921068560509112177890185816017584032875722223954875745935823804533991494260173408449526697829186813696701350427005286852617575590699822772626851502531498183619409588044265621577779623679158460793798882664428005969910932525339873732622370626206832162803227874664258369706351230779719208058231931719798173902284422394131816059126006951959714232423880026602355362422531165197123551805807410026626241428665582828414376299405875236167255166511563864287154676737837464823968832907977697253882726129307610460928132980832588389392294539071038975546740618765494390008752325476913271029449793498030017450596063172181121539994147047487865169099029411937321230623759457569361984983830813311181055495390482661721014088296211756532544286752136754800034615495903846712901484288015896904123434510322218587398761005510741679911061034140050012728760632628806111520742655637704954589954329632081944708063434032962546691260222692568083402857293306542243878945048068903340855520161873931852342100037693275289613105723197787118562911595412804003756398998237792961163714027560093812431764571166259050468254330460691942373775358123462340606508855802824336060922817579727255005171035989266112053803531828002974119339499622545981902835735833011206434690384574787633160381809070988492379852462557870711598053757137859676741092428875806116824171822840534122040483385122280394288458725152914686401169850476627824834347330200181262094617862487478395381518952620979870436193706889772908380208479881173560601048837579849664795995157931926110663402246213856056037464830983647301463160444132152472876827949213601367341779582424854802099600491157570221027519990378851829260119505180453289722443693806858017978500983283623844223740348635230173595542968758966642198078323161348485043852864823993230536557433912636675750567490379515247639501448835534791087785614490856402221724551863947834472062013993398258159266313339217468666209950484332564122324290173084806348491777764993227480596739381642984330264178203217247901456737383730312858807015870857756109425033968193966057301033129955301594270632831870634670725099103919512465012050832811189799492993811744944443870757498050259444033107570722957387919706870333061450290799839494746056676011831585494896235369969325126169777983460719436601220629420986387021837036051579351463831752642368836209634308556363352021867534901941382966014611575180336925332659509207180494434886120031665181976610846385323070373892150830892249471978279356425135245468267286753116838272506917836792000675914881327192081729810801964630770326188918886737742319646502737872505571944775723716876507135375836827059623238948853664237581725057764962529374452449790897034350079548769704443787331503881270659630677760485103983372454910320775231809367264564380842787458613175251680547668503109923191935214386700809338553268661311843080984100158584262220562880939523434519133683306427258134945796295942910107382187363897246867057402957959572640924420282901184020233238792045104913990517905529712233340808942977191518339902067555211812464803405257651451510006785120765273704028037169596966513461301123975364595263643381078421322885170604263242341312771970219351508809528863709099570335930014114169505227072471962660229240718052954219283245970904581862339718292750546760650750005761749467373395007273075577104568487514848164881930275147815592415974054361026388263804996375998907256574529560553823918835211037343640345038520057493518003054491823471575893015899366390578689700965342935611553248477791848477405100437337553106280725523310541931699104854468930833132630214087487083411978365804377807939054409344418010335236798986609673098941342950735586870383039794290483963133150082260661948202242140132628537666305446413734568288214045162633764482525391552107460563156878585445412078842298981646349227134277767937322099217506937427289637035321491571842662790303555044779459615713758388981420171369299972783813784096072764642210271025975956287544400425961362554193228915915733882493523936250382603794507380682762759908599151450763718243184366229478830214586537634597219068802969544656364924983912029417230041817502759063797091567079083993142875163023477537462978078629441547263268280632955549203321632226698901566236649943474247444984365720330534875258459928265920775573275313791921924426105697490415950744080921375459356511883644945576629564961052571978228637440050970570938180143626505382614164312626578312222288169048455940999715278568588312768227557186794677867813766881891119447240663089033406060267692711089173564658550045824578750824033972636397357274915159337166871978024558796063428424729503532634490479871391558749251106042681986741216396283472827658447739479751018042386759000785686088748502111410694948610862078941438322930643772904357878864826985085477370563391715555210794667212322875012318101784507295595663453881042115919299733311193082565493222209234473152183025744181849592757307283914533086750719199643214773205140923630609429249493592597878612202968164927998032965536891262465121138308064694549428501389320167966633375678492586592236083211487129999835748141251092715991216682136874502660251927911976563763026886802038143604992518913308826770850256397147043159138464052165833907115670927876580931260905366361146831624881535276182623342741493940671470050669077832693801386590222070898606803074376061896509855591848359607615974316171425631273245063583637466516919935600650309013298875882252566746756510108744824506323499901172072234720448008222271212218593360206035666186951170756990480865729262339677809643286300892945544836977971578912727157815861334314767610584704542023654372508313621127674431428732054166334101985645754565152700857337718515328842120418825574769805258954465454327006113831697238362303280528245595511787274852501104203352757998206853235267531560495240335385680274751936646999136683227596437153848985568318129435202991053017491109656938070556193065553428398681876352863079485648393571197288870249736265145484987389314492212770626238701923904397070937590682982962707056430633315164365645478093147396446991255863794232943823888507108781104236801558728922950477738090816495450593711549105208699138172373979888449129034065877366054042921107815883217082788855790308275853498683480102675126745331607282293945320336872924725346654578194591834962128227214488152160731922777205275804498048204063686074755256553427091219841995926084480904773630377377724661207050030344639431690172493383303944883148306084208439354114450916712013798238814929867199646980920429187561310000819636026038593738459708611026606262626694069800323517803411706059197794354821905511281719361018136743814103424335044131710197222863131413452979929125563997912926976653539708290007314690017682241532889855111515855746544289866243465216336138185792945023786302843262717604297792385147796156834122079987341160062545015335451380331778728978098964475588569122680466296773318073860954017791684761930614992603471710364943384030659346130663207196351293932783989822661155058669272525227206367664512408220214341144735363901104725302252758719282522755665958922912852627509238914795739989425614985215005637074836096687142229196277149500224193211452190323762456174022263573808896237715022241578085490207319261908932290292102201826145492919580435961297586317184262593545552198136885795307013534348139632328706303673100744824481151540236409539003667199869334211275527394004987718075847455031128597664407467096387848006887715218882468743652851455287767151656397698387298365546755636289658041124285860014696175606940967538181820379134956786393521695812118446976394194885251095894310357468110970049765434906284504077019714416961417889220695845868480031317205271735172945706696781926851578807875608612848725983796357778061513494818887241492430586597196151410624543100722536583168595723784855691484840189543900677511973600564170321532784278197055160235821628611202994730786380561106026057466410337763983169587708591993869812118449484512950056612131324170770656451144063420202984217539992743715219867521475188043178667487923118029013829224765212729646802753071484968813232899089633751724712789618036472576586186685468426486885927745931458436274644557395081891018263098279804470333812956693567181194295530621654543874789586174866032624462950370078106146366957497763417250572640285762865911268000282907787704437427426468144993374684612622179395148990317267985059492745307392708295266089851837129244262252799089066555124715655061469366414152470083169435254197349392415410086501872542493672893559886854925892262234268376443141171562944536928353087274674362759438607324665189685042816368398132235260265875577376056191784557065740600947776539293898673063831897127598432405207564757226855840356882104998732327066567413598533823625448636028378398295931802600599950541240528335285088166006862932814985165135440084977714663189224402372709310257041993287320379107914506553152376888399033204315425998322958190221553813783591556981814366418622947671498976471298520176733885002373436488590291534443742883853403048198675836609126524926000877949736584811159738355785204164377930881660584129176628307348625358579368810833396144973618279025979909135308926750488726651542273799340902570644546381640686000787701886889433488575531145936330657801947226423023298955166333581522720741653917301586997551028423109838599627778727581046664059889847511341997849424734551285316154645232201960025582110165793747902848694723571892270136721435649704542035885970453709162404675007119871442020994322462356262984799494058169457162257480641170313566086902876051638109351711401405656300999936951161387544318344234595236897947082697173713990242498821259745367326245844396206936386686270063699487067796632616848551873560140654324822354682577105654645741684669580909159180694209346043752658709777586177714999739189475922428411095294136591358686653215480231850122093328966068704450879489314498070594261096866264889412829142970928054825426238399954736416374946026733095220399960999436261857205948992006908941341527628378612421878380731957330209690975026491392013360701079230098772622678476812419751375616233937372286597063206919899121894299398294812779821847932860205905501814966671586840969640864298560671314076370077403120723095123020047070289336350522144210974367105711634771419242329271204926526870094055921573075998196907627339978385414532209813568576237421128300737922137985026662872009880205470545147029817877685739532029514696910095506692465553718815554668802761151832996852823146100402553012335090580969562830779000116284397106926613725259057916639487203104786730874595572147800206380912534112701531679481748891961459941411988834371509851578287284755002965680661346459732082241381546448064325518256751802988260268422977731502013503416984835767224536642460589339204834422830852435872179233404668140998826227212024697666210278810506708136658507271509531217577898230573740798244093785463459315892316413014903177764993833586014926977664859886643341739951736066895759710168729777352599046671129467549842833267861875243716175739109616221762824585529025394948240182975263321059500239456099991202133815687745786526090135015574535862797800873052465229458902017439989716890355188080007588355126136289432151685619831392199866548952208970184629530200330209973579272247733170335102451049734127685792385541785355134280364431397650943885373810726266049096390273774950876330670433936367896557009844356152909227495668040955320075161696844594292165092778821831532073888977269484232787639067281696739861977085408570777595373354820923064326939539139779618884298966056983573483806653884015086383624095395942119938867285650226791773319277026064454115537610386579442374125657637577725701476393625697956841479340808570817234607256057262144016696370404482988882953623669572669653500472169480155190259109732955088193743887162318815244932428729113517311265401240467127910063711938364479641514270064452212584808351728361748229957497140254427843997266028288435365585089044235392737252004465589089530895469246811074149185184973107681752762442089375109508104761016243705104198919510519459446434886077400618607472892750656550228624530022275784298184344691069017959831941225552609602800482929706384933257364446713895259475788045524098879416396738788506495556691360606721128088993891606062892993170415602785632011825376491559911882547445911975628555740145395174548451208257763421452478477438467903506101970099557232941817748719101340852932708723996011334098350554655555930319660762809326014466873042578111800909445841047907583905339617019244782065217026075507371067709094963639689492182753733356959173050883241064550909703503178833708422092421561932006991502285762488155816924780842579139195918395197788376677325295608799353925781559126429672271926828426383573608200377284305090514658110674058713262105531086751249280416614685648092517788766917682815921172445865563242488003235289793430361488249191520846147703977965836921474274041324020562715862670377138899262029546108043477005711195767139284794628434698787895854306519873847204281606217522781648843567773112329870051579179250864789293348898239003982410603629565165363935965293448908745362256664102871965331713122018800601535549590534406866145222732962720190357868670604452613982233030819431817044310814288862532485745947645633606213495972276017690845366849567187989739342643410025349391200462593584943045280432823801690944304503787541704545823468602867764976741435831820848892702825441130101898748957716552843254492239377004071702366395838870032201588989628609788145986425708001471689018307723437025695566062879356927081268268694586669239412411403035148652217977335974749224558917841291953412564794257999504413474336707494754266403140868734792886271104453420816244354660717313754864646338432427685927767758815770656542213634326743457615864170452519125108058120127683708451470132794468110307531237010712977168902597210722436570835026043130779063521640011815038222926112923912665080543379186670405968538317383080196349367793087834885992766690096731443586988150266278821725221997460590358094389329466490061305759174060407781029754967628535844610156971338381031153576448095420198359959896266742631212914929087005387405155937679679138424840616628078546602069528727688760666471393983508275747776049400205354645559052926027687627827968014398884223686391619983001592166609805348764678831829136088624135749460417862974973047942015106003801340421349141689815522328307653214514029690903342316707114699430038021386017914623688252060898168592475435473246535148009103263544891503130775981095367884432396195151720274687164521288601093530055359099317377929240791165917462946659777416092724668978779525158419931487855583435294096061073428245619560601953956159152139955476728334509766280753477420891265282316873249649000849398110349469606295413963779966252989661789083713884236828455345901592986678807428937360474144644886247206601339463244610738383453389504639801200793191672105973427776940918069951108998363114929297810011363289050981490632314510685182806088753862047351755477168849618047682880745396604421902884377396001622003749914116088396333411999107110960124245328896594643349852584476310794588357086151611728918154318749645620755904124397959461295898820983117849605943025594825538667733872348477899303841212114667318352181622727554653224228195705253663811344907384994178695294549389014976051122496352697937384175989099689326779326902371205601542961175052711657692249225786565035456817470167378256832205997466057622672939923148851737633460607046103538145397861948921874475778946347972994624940466397295412213831499412764732966031449931011033538831319446159809238200493236076982710822203471293270842383471389318106650972116360215094327406679097010509187570788959263827149509116330156754228402814762801540480694590318625500575641772073075843755088246110669596787510488155531355975304295262587959094662555001531119848855813693178993437536823000529813103393381426296049118982513229672623923721890768012067348840918507665843266559830526849991496392728551538012887038778386047737351844446641377298616430617916736959798586220580421860222198398254799787432284384130008905258714529247827487818787800039550676528464268733851452579638727636096104939409066239696974134892510765688245881144319505007664011372761568099872443798341073186833116650869277081489967949368683393457562789628366707252376398173589004371961135732024952397786838352495888385184925678964456189960784798328620903363446601253468573372683211491433626145358113657843516568722467787821285900155474116541821580804177041838455050304159670830313188659974852981141723590067509952995313775929428611503008829733869495770571348818046696398680651941572343023116581461396153365903411411351493485938862357406702730042515317368970342720885192529041924796404679215948316452400322658820895546869750543962214242813495053707763983078516831908331378987419172056362786468039408917727534241397719959341452880085070322803460447213431698618894711046720239966796883288474218058472668983194890142203093417742132491745503877038023428090236353314315099269961965785407008977629112618924451683332355789228390105157024309526334292885650071292751183435793646942805317306504109771438025023087614649202738228542964039211372962560936218202380563482092227696935031843120243010218803378173031120160348544245158714577055736939487905519412407195500371537695221129627560265702251404401307356197186144494040517845862789010024160929243932821520210147657890893669173877581632573888404000640970553336427419075655957470880048381785280132966262849502688351791277573118869473489989916194321525141866075073780357958228542247251652964587618419881658558525385837849706586058460391126336081704081345605687740282255431833646527879843925678568859667186371070769941647658124684093299813898582267607331602199543315348938582107904832301121337814558148217986014638336155694685053781130220377175580557768329739260328172431987686296814005803129826166778728508806999853349376167071979703411879739009027634378317838461311424293603888781259781446709701851922535017565446990479206668614963960852138570165033031083359794660186080821388830633091679812839028518884185219552372433924721211466814780784530351079863981250134876346991075634700172073095827010817849165197761337646829084876410776369133825603089216569176829412751687774050771922699537477088198675555439260024084473661691115813345366270875125071549240453046634886052857982007389198661907809411124810748864625764020714694422523518437898818430839050912692768082710695854601169907451027066745149506153087050832949971006406595514469249345007821412640086462928096586489740406685584779757144558266806949133984196110090966554604269181392083503585760414678434484915706758827883381825387779966509707962922989955516138375775161154226746538614248313646028546072788797972503139250155439434062306561387787213028453673614577667263051058219692862394558853230074916665670317743882669903924158495299379988984773866428283588226363399406242703029449345042105369205631900706969245661949226838948934227391117652636442532933684477955667753043926463030503670141443074530855573916023671354331440894398444804520044962491332723202381861540982243040523349134841073197263077673520176702178164333303988732916358901539430077677639521012645499856987127547157053494020494883417392011198407765746502491933179710330255447242238232064210975850730904937463060373364252663175436710571325387513300298801319074445732963929750759157655612756472932455302634493071615611627435215294666290213600533060623559658616330877169840240404892987823675397090039749119247474466895189517119316107284839406196958002737722571510046984500270685965323587862552547539713661453531111419351753121099335340506388911855355121155893304109367875870855595177964805772336085148406258916579131217929979881950325507660052191401189561398171562815748903999639095724482288888204524436223705997442078428398390984264795835653284140940718204372327221902739187491344536308882611821267210277638681220994422368011770075857018680380374107369087151083359954230745951257471928348627210324793110474896160124350385576726883867181802535116554169188260169370833657878250412005816646602276842433301287641552436226229367749787869564475627019065188672517561071156860475175035211863313868077366332643125001490877030279083083996545685169131466650634010990900643861444416836872575150157118249997634150524817502965894451629791899575882918811717696077918195820865393587639395030283750908738544689698850469184181792811507067214463122200127973669459820589138678704643819634282829874118082184535959027090664605937298026813548306233961659329186996980278246869890738119636008677816809066108675356595094048985660251016027514274434665267218731584299283650347941653087974157940890429676574193235301013945970527222843402279321682473901818967870442385997310184008939796173273583626790544831832516494361969670940251297732296089782575105928851786422616313569435664614345092403116741266284764800039065635255176302036694647129766437333799638208006256467844809343746742608213220078398526010157055420658099307374513618562223573072324082381419684811038675640069074218775160740409991741129777521123281271180040211065858068292200881456716936569523637432137794260682152837008121614242904794137644805888378552473647135994521113076522586403628268811429379349919509423758905897185876002234032619991091718386353654192006305116034031532559335093071356502584911545848439532557767513005441971481969837385912274456487682177437949333140950078350964012028066615002929051102382476315540332874033784024711042483306289350403109861914327362563502226534349952295407364665732358626554735320696609231071051699397804207796634522994012970109563704199632016877491413176236826424679819178481506849001872194667595108366278248065902392663116879220504319609368324100026705804180020693985965647553848883726445029196236411424516658476969101308266355196039609719464917520860712013823891317570855272651103772263959196674014578394538090190558388072183296877288553928770801212594190987334220244845413171447220229589805374056178281660923831542115254084470599596450902254914872709452423218919293513659369677301611138568460395619257099668754753648119590527520226324323782183309438250321054232776297744291397805549111463488412148344289042699680787320376891553310626506759600875293728811114050791328471642150671196371797039062438236335512434750567189555538909436663005224880051942502372884300555985552506476231652117984063531446786044245397937834077416567730540866653917999718836071082188040495085870817930088918052657281830462160448697011767571034259207401119649330653896135934853813973376967100816067618467728921135491892245610091103886917810234395423486148543340199117207475243490814515092127199221016659830742768350026976673511759959013274992530349384090566032930236369269103926740721273136559121043366103250730915628966653272854708131295352557544103401666239930297176162778710314396491254812840736587487338551365366563266856415228300504188833326760773038886887082824886518879127965242002612146820101133365666723403354739040180633300799621217949304066885218646266224359893843463303431239398147954255774298295004177150657571939427431611284922413291885140155424979834655607199278212171891288691500192367874567301302012315167236293217033935278177688777140061220641948967926285156523885639352149599765655579016226380152678096837953539146151666858894919683402970581376400392733363115302341054439060466386481494993388494845730669724296341355785956702621012484837678469469605010669829207810486552962808539902053839668885474772882845892444057425677317836928543372946662388525757563276977193031153993242151166417540238960789993875672354454878773381519650329518748113778947154633759987049543187894420603693533151967625783456350068608437800209899046396238309327919322113943879470925396382614082876283032432937931237734391507553011141787135019942254619477652543209203334845145327770783145289366287356031129561014739460253450069374379633117640458561411492089605067798674978948885290015309202236151835874891042922083392093311007375402478873325707710563336592915221013216704164808274941065100011858911160006060937351178305601492441076127150276072000437157878955086434084392617094648778111099786158821542165014437216335569832188062335513802730882051625455512947520517785291876418177099472536466187846673949230753356869112688434867280339459305101046639633442513237658872925993626728554848833934865452601586288456977096780371845662815712955649069924202905506738432100570140922285027615016247419426050266976959446656876837512309553289969498801775429866120881101982978186847025464710363182063824718935917521883781492594300701070654186610080492029942851918951901843732628547253578912031744174174909435244329510317845850427262134140105166153418530385498669292026466892324308925308863445267382687240159642858817643723268294043501688066757367628290902749831089397871579725525789693117318904652278063265045232909165075776557492576762608343780316146333605575390646198015171828743109859084392856011089379518220795773702202310593422048651654027875205974986902631907772274111273579114188120920261485397510795012571586445648708547411150509317532099260001767220238893111900600430805139312032051348209261816204005902509187761100441514622249588389111548715604211376842099919532106780390944514371327929581923568809629244165509705349191311648637810195315711359147875339689143293270750831073409580704983701570430379544964346745509178844766826178384819896653113497415124481712383251227710322924167551598771190148333360904969047370078945514481389793643461551586690625724231027731912628487353893546176477019523474384763867532167561676052422584722894038752117877781972723452962105126674965206034746603845556215952510936208056050956983041177386450059111548286812272782621871774156562571499174709701368446802123583812341185685206161749392307574367047859578659420448403102610967646159940652734466300913217328121101033752132475441779146949480204590261201392247540720253571257473573010356444217198432617719748771440227725875700961240658641476423265192189668968844392517689469375697069286282234882604690827493716318819047416103138880690600978987073549686331646631190897904219162440831598828205519448583722289274116260466253929791818148838642688416259752649412545134244366364839307814133611087358679189127075977539173594328377080237474913588024412322561953751578051415013596447434362385594908325674629094635111755547955614617910953200528534582846670092427898933081426423039757436765595839907400939849114147099727520813967177545957654268514558429239725819135174472920137573886729398024344413152595522475112622704626386591190898462684033332854424196106605123157822993431072806911509492697172797082040468736254471541744661656649016649838896227638896039118287812582067176506916304619680673991085123593344913175504890730215800614244190046494367435663396549169867941135610912699594363874925090138227904196278104865982077305115012626006917351755444875697065533270477422626255694822374877903189889827748476465301375347345264637093963081702388569952781834729479721351176949128558371984039410748747302175429716624539040957662812171477582506481649481897162832924901310442138939655153094129365803772602602672575845877160142331865566481445387030986238172762338745128134861306796726253767945529320502416375606473092268228180147689448397900815086680595533793140986160903304484603270862558713514505096435308016788699526803693161144329554602195247161572770662374268825804199052467224778767062352639346676308069671303786109091834592169441595905113613978279493047448297067236692258137978927744593027831647659732865322265903671798134607648450648731696133333321369587205165560933519539231296542521425307397788689061505892699738660237163559224737355833139926183479830511993469557489699510550506964949828193418914337044456949682894588535037779362276153510096691344708768791528034669827296254052445147885591839646884725682996491828811123205836992717396510638039859334292175701519910270365337353726068419457443631146540779948532846179794490325619343427797235976687820483929651726847296272186051319048198633080733855843859102615552080040153273391118182324470680091386466281242248232846574726683950434897655432531355490504232733798556239251043238928179080945466795683183054134256193103776522245091495962200209515490426422362546311532189341559564640058516091786154306025603176582613352729315296869523203535781409208668375467043299764062203624674368139391941791773816722466976742207956148048991328488478814152361986449787948657035575271509829888270118932568946311266116982065543883305465507189349595337524269051811526042830804451035636056002422043386823458697896554051941506403230684858023926942448459684822589390398379999180519925957518977218474604028045778991690841149683183439822578798736258636481795919577762705398257654702921515460218825150644318624929788091005473851104690607099034985664979893870989329397473310452466991561712364857609351994858016351935649865411084949255719965633007069785810554881970216278600588638816961803880671194841498954523219893769761297161652984159965612640861780760676586712122532346255976420866239352064915244645404382140266219184939044437729785220048829120294602791995761176042750039362179361303824327386384148417991315227001350340621181428190461456168003298998450018284226030226439231763882098324511868938944898021436428865414162832389324584115360531368450258941692887853290446905666468809316511720137449220948357691433675005406967751144391603044000003173064354263342206069283047490971132103607318807785748947136987973982805689598617214547596301652039886823171295024063782223135557954605420231257688734140740635821507612601172770402859236791664810410660690642889351881870403917179180852616559792027841476137898413216291650819437419054729995900892062386573186854429363358312987990653465772792263996932288039591063068654057047578544485438741160882303444948610165441813276599355079754200156809337148423591847441138999568225810236268977733663340152124184852846374487428863861203715056827239447049549345447127512004432306339801646084674910519378238814944986360999350227002293867926074014571267724889168009889611164592684271547140259005409789698045317477793613774359841324507064662216161281969011627188913775734234652426368898111590584882687386325878208108655865404414451482517555426854256195072543088574144110164576291770861402509264691248968875986567662237716629809446954791827237359664299845669810765634133653830062494980948919291629273853499412571973386610212777332591656218783770340222344370133180250779227843414123550668539640019921546048833709118509132237773973090369283825850124716012092986193546577030666649876499833771964951472984063737019400781246818926903341159125116313810908310818617161128419911486590350516607961306605633729574136486351144533399216238092196322466716250675224304286053373723164625836559971165236710748522259125231957866930449159496059272518749566518362337564401270845435657630966660250671668326757123597813468770729245319906114451560239148711780828432850792729543801743491350896980373291670040432737696205896703020532028864232458658391247878618371357090077355534951518791464802224042146435870124147028190184677240340635234528913659862988984976382427639070431750811031802231527896507612829541368359624310081265379614441649104420412300631917544554067150724160791572342141543716561018339354967488216269950531239517662202802253977985721714485667748481497374073230221941569182100415498916220434749135953129110199489935372813552860064053611967324664319114090238917352284247437692654467112245235448771295862105123457241010112015716788861108955793129576498434984933238861712533040302028891705209657131930969101771647439714508922169485473509552152528112041757475655736887839669846799563046526636886260715627448968979534109189552888462409227877892399084807500750304101935542670299851970273236688145770007214918355578056210189634211813301216922676206623837394732605879459672588115210514786146383949134518285973270191671980664023464110514841318943895167323832421734021272973651243211833188998117744125095709145282858545840849230546995297959878267932227107861968479408382191576233753802524824424944942540854996837518823016147852063325989142361679930625491175783281755080401898369996733841729830567200681993459377504991043055836458682505558789515367262248341393762758453901962363023432881912301261127900271210132022000141308701163381143561948130338421998988018728525647586308204244378099450934584671402624192886582333108850234029531178091373009746878849322901190764024274966763297723988465536967877416143215362461744101083756256774419508045252931895793038548039620153841296596156135113645998943560189007253016541047293508554050017971141618841645226831662180241907398839505552045520906882242135942613640108838969797159385486744939783694153803214117623660826148844948864577222363594781960402030914154003152688545137255164481756446434960757505461060722388238674487602868796633242415608541672056691793667236922329248962300884706547290582172198692103176128473677545970695586176307754739327628101134998873181531228660043282674704822539555487484461415893570549419366086649266536232623402464548041469977728862989771732168156498238554795950198346361487278432960242420446786115735846873957132210583538783041238996153799666774420044949096942628271231025127661989082910533836395212315843953628467033265628637005303582416002894149682095396748606911992985914401114179559993713429305437228126873151662417311324029994864459854765484125469550464107672194801783114036208260456788539298614361414425354548194694565459891814812229592610530183017092888294293458262839500218567035547622578869643270931607516753929437386823860504719742259134940297259863153860112332500840055204169636357781085189545065520470878157307642892771842648912508924576014807169743141494515488828997697467103382415260017219166732657857533124181360445554045488987106220563928325242918331012410617937432848419467862785166546528533690936283946484857279424392688396580843409552374426401095795180678728955396516724166307925912473946421473322808661517476114866283740053821108590418479816011797637037139306525457769541185247306899136949064505328390151525060930281539739779227161723042551835974571343733995472467736384031779221081170705899312052441359441607945899143734578491036852594332571840375562501488939102249983659273995406816436199135061773539135679315066150727549611545337245167179269334419038046430870138559938027640069438323383201501021863950192335214379979077231568598940775334685427076217645559216598895089927375499722416565379836237221526546944604258175832634653685260023420749701009066956782083450716660832703252831982005713637478639287784426426571562950273980069043275154940002487274717357461097357207340131199381440493652953651675482765686510658597468074505406766891808366661920829236210128599113872347400052583204959785628757624693032952655637284861360567247913895031974608350772981779853878625127945458484305457245351573959961356851611349074932530064583062925009954407025245726758956009380065238731423786755905049810686249494279297613296480810800898995147747047553842423296701876492073017302294823801088404445442351997820059266091956914875892211649323002520162409401440835969999486595217733891917539582055178973678285712674136071205589088807043994153498819544231727043215187443205325173687633839413629946837430147243282733653067067683950758020314461905237575355167191669611070749979432071242379044286290140886980642561919541930699261126558452562340683887973129175988313419527077610559369810426047438969379180495514985058495179310745707533421928452415717100546465243475310442223572020868303463413111816073714637901196397256341530999821189181347452966106637244542285641096106457209097795721336117842105996361818748192680461170947527700199338284835334123199168331271987956826260055517452571931086262652997963966937240042364190666577411163425096000873800456152078344267754114420537960663466309947948578749660583912480086428691242773259048436787072464142360829388832602279364240903052393892006886792209918737770363788456487353482244830326041565853042710587742378531851893478660773098679865876061636023331723930164591931599360305894616018743791077119550085032891871914825672834464401436818142338306030213701987355426771986724564665339802428625844776683130527843424207926215886435706460090939514589209507016063187002912439215094841381043133764941122320199700168883610374825003247448038114923332966373433317907811351546444972574410914683686620844842647571367692367590079958185780604601157447092748515525410686254820572860471268482603272140876876606185149706984433987899335663129211776577233599707613477084973556909302286266545379410600962000937483613101273907005597347180204662159454162045389555638223979397269294708361314425050036977687418294687717015778003494184156090090148500707510876224312047105666357868494350539964270928770762144928462527301399179321021874127221318421319849766399240356048592464116654357315902907755552985463029463219414463364706693267717420967150375678863142428982202343214194947179827961020049915877291960675656531373411620852466099646053588369758257279784104656706536278778799260259470414572961639708680766556308523797839553590291010063245443930017920010986800609340861559376416212422100641884109605249775238112677764759430888718302690639868659325022816715158424675576330284797841942871074888343282897850530049138994071915279117327268474769862457339389329634412767378556317306290243964163577242215355147356512002043956321975783571955653360990901653609129822211092646339012427338940537181257876161600209844322004265763538177841679718757264139862290009700980935421850831217858048752996914753504665691359463291294540724423271497706765390319179286494978276195755381959083101379339641963528188858448007547496951139754587061321489589891985026847223588527935354029947847359763390262836084456326261125646123572800394528475916889481561269945517127980496256076875253395680559046741719491846629167562669509653398961892159912568670017739749822279385744108909027832917747705511502182644070514703690502057584473850250543659626473834923630220942726383667178202284040921698053686646545832219481684072803428167826560824178369661132418687356853621458391095378393754863330995823369615138705322132584224349694404738466146300798542639809698154667201923647863410803503348126840470595293586107805777699110768309657872510617273310154094779917837824924013523761783653580556329085617801271837682988506278316722467109002266338236306909331129074402671495817250601231041827462439186738547351950629923758695999665537146153540055831139330416087157752312608112424523878425375344385966912236764679693973751952447162748344732723696693364651265935522946258481505114029170195323048767853031218605036618075338646906756529208825279872127303514876180522422642956112958358571004296130012950311832578064493724458905320942379562420532707275689406569396533475080174191305674241450723989084723175722557905422121598256370052646806978659101277878414346956044171631565535382859254788691420727190889834841564751477984883591477208618514038018625283304693407614760847157753864151052301433719691466548325141754839782174861056556549426053882379635537214496605406360269988203241928649835052043881784600855638368084286954691843956766657221492624688522131287399277070293276981130857871190614600740399934841774157100984209219741796100126177640878233598190163421718459775467616619246414244168753200381771850961470293252336760463698286152382783767275212354783959947244248916147595520932588065410784560827826999043035557842952059028669718600987478613625777976181594071781870600500829817019917413132594392199737208867766537553821090466741877781694201346893317875320163702149980578888516388284180956872452025415944594500968710792442993332506898526282766408186244784706844693589544921919491680948369450538493228434395194829572326100534046516884187830987735061848252157564358238817793292530523010574591831896652376445004529183744064100227238442386684769151221088329970362904096114414369549842223444184618128607228825966847753424306490571289048324067678746723948091787368896298021992850851835524147724203530896443765137630714369398321415763085342353498601501601838019359693318871779689860548457914664060625396730850023068527978428007168586925174245256116049478804236843157631155669665089148727860175713176489272925320894777378577667321628292095742627181463232063778028086379646310152949980492138597931371676005602533793216212648218590881324359137914006644941765511755880532029498983194640820971167163118842204453581435118523148309892411555349616743157454485970728934907193312283945223555710539760014999456214854561011663275704270541582293023487910138966126685254457026005000004021724978363940516425079725153975702415522048958957189252748527527868807478734227259758905009418251366916111470058269749805064819514569410142055443364848102334171235218070302179675207976333289564142463235611394233865489214292788208184817633327809335449914134818194139311563529020123284828983389421479565643804222573986605805728611500086933533404869480648573795731772492159481630618433257765469709934155399039084993087761319707783843187664716904424625852564469170373412366775044606743935543832724159722832304715717321787838540872137951690909161336302275446983068787423071670002407030756989961434137340744784429109175916043739602730446373422183324349820506615385711164076423726700054630856406790123733736888564362861303862078110021380820779904487340185491920739813844988425459728221437435507611443537540497976889466758481955896299757377809096134321225755504361070349853182749546866948856240674774677953697636867715471216621571662458419454105142568034904694181661974082015162673539434174329572623399203513692346939742818021699879583929172332356877275002547538271205217767539828037198313587139036883755591281340111909057036587409111645601330621490889255768082265143299542008729512163082706292984365098936892950457771019710920305561599964922024700804128385593625338178730226026098030327907843871101618311323707720741235900612986664606492845612466386873721529659096308864144191967443585527972217247029964967938156669435919780092873334165333397199750957850702803970355283743373416248552452876649332183795469590321270775094695816600197194802982497372962154243438935885480367136419082734715432286714249422677201963994163376357096344672939387620387753398187422306824734693280014015960373582772136668009707859805564019946235497371216402913977453204803746981699581703839778794368810729598045288254901610077556466267722634583194357714642422795265657318663789217146693111856493234199170543138295877359546953874004136851645322635842489520182955955808115365024820346994805542690772060045027408557774850134477849097834077649846174770853902774357705703384784647508931264506134405865835619741084320702670202418999619892437642754136521548867804856493025722239855744976700556582046611082539005052708593761379043877375878462151859267196221922349152778424325659156957213339669029708623187984822833131801946610130532044730163420378762433918845808601813070239102352487889458673076040775978362131431903715202973273141940212220301259179029610451588065673226335421207999546285755985848799438972396859687648281800663608713990706809038148199528387581244590496013889270759836298588709112096132591786411320731868266091820713689254032365417687421768946352842467732910745054870389383235416935163416209915239491330493010600888955227279867619043061402328209280070561372703559926049098599009100260841795687983814430278026689615527120917704408783168429667693380544394009821004855442078351919422038714896937748854557420366676525849962499815018237603953043491339921460318518164607542855300537077398127587023103485427945952939473513019225171645569708532198958997925187499912802827118636181471988745483957268257717402973048172051578210299490469081186270909977180288547360393781426252749444532744177334530824955247920135902430733579219961095883216069211494948433684715446889644318795818759641093735587952715319811904572469763142094705708205839055504819575272585418380992078482660723532994558305361738657276570074062928880202630150009531811712397955789429010175453029445737808712319820745410162252380853797048738795117035640120890010373101384505353516230565763295151951161390034018818166036643653343932054137430037966775926355972621871772655662163807138159520959677585769950333358865188535455691067394408861033946423291058718019511748147303593020197022672648557868179399833614847539773682558786257556581891969645896691621625489326152072345181654774011144368633081401225821360274947821282296061008085428801578140892055673692783666659638367185173003185325144829347596649310472251064530929813402223164932119807178728593458806532771364651837725994944306518256907153221889627664232798101248285327665184523514967385938840522490827938858955894051920495317637429380611118102422198175632456174906257829825742055992973486435671895253187186496364749417866008263932429358880921230532244656816235639028786653970048942451035498538194507554673141880018837822491065765318208071419187173126945168720380137790003879686068345615408565038967828468081826823433412983877289490839273547400995030908801276221946746395237547580454477033591790970508496564456624013156845634320485674894335049948593291936173357684951279890445232045144761310061064874938844781377673836938955840310888008983562033234387278152335966309121878859404670606853865530348531050029958710602099455111564766822268541483229434792265194131457138863556231594842666923625064385782037807174164357830405606245756014423623217530536876419492792358339357563011842932867943237695042672909788328963179619785804787154557759442989577623853268375711774718269379591375161004605699363203759814533559619474401939068946056248602601588881965640433467792053833618488415962785470971691247858433766367554524665865343025396095920150083948465599309512586225717321665355672210533367786704294962617012960125766982382566576566819150910869259574802985010565668134667898466411254751528363135671337866456079240285614514678048488403398275991545605344923099816832632934914086556441676633052509952852492669541431083983048371233250648624227979285360834640829880609158649013352936041496857572416805574079906703847196870637803295739998541921424390770149799213707755765976290001160932231909640931382030425808969154304141479512235817675010990496416877178414203268195899473118264971185962119022515224488405143159132854083727925960724668566163303681373277846355390801667847567797800711812903072217524821286643848171505921556115635149970727637969805260301652954772739260592170489933899632179165976344158503158148637576387434139916556776891918545112902888427144496463558208933399280165737530424049436652049300381409721647347704594524672624368010481698604748255088683475550961173333902389300517821868031876727146285183058157113558382603674515854087714770040229637266091549609737387790048130604173728078747563118873862983982495777697532238906806786678390259325232398833338868910035175919787356464261658373278402141898419425720456597873788177565381812906609635542779182937325131239868603578294659076882771161160118287701387057778891501747520060937200186883600268831414786757667035141623858161988292153182333377118518771282183870907649771548231279410876531330639456828290349106816867426308278428505713499751577349186048580068504388192244742189308125073842720812030648839291972076008799717529263086961450692926433945791965281499844408054870092381412325203719211805792790049737033599295116116064943540695859458473442229809375358274720812603130185108541916079555199472588237821670541880807963872421262767189245680274444342137350049836619767536093840393119443500197350457350377387571888154728153797937125023503583551810394788555629316130088486242845269283376525757002908477227394579181409694904606508244174776010628013178444696620209735984837863688524961094733059051425463482478568526200071765295906666765931852981311564676953601868501298877974369446676666442599605863983445816253395117620456705260670042567967972631362759815771594123089438263115787220590106192831506027500784709821094489544213798207120611149838651618252691997620501241023946563888937606292116230065776714195460637863439159955722414069930942713253115318859844886605273893573720585296059930490514200728200632799710762764377211463408963130207296128386568100036544179866511384335818216334290708620582219015694852123273501020435728288258337282047886309020976300594437728839877290422130760630675550696097783970444199361743267881393216726937370980397663157155124581729051715697530768783414510003196100574033768652307706346739833184386795579329820292970966598211090951562075090809831884755048195339009750391446434909434456342165084732195399911048692725838430006663628302789619010849754173869846780750903438577815257740379813832708032658304305881738850405565843863108328446809766333705582153855553542279677278829621534250198496987856578558623138990838533959131190314007693969296060161640558679000234495352422437734185984244203246885342875041224034642930604741118578822067854585047531177649815789044036197153392905490270292877318024507550608576688029659687171300136314203987174631107650138556793454711404604400788705650407320554736256320694777072497467304958019028330368396368777245077549395780386759853685566119253520234631038348744414405692180044271811012137966092346351556156053102694444658757332481604593263556969253203280239718832326703273972772869931328771174773140976022788223778236902095919208301502917357924766959651430125682609644015456259772444627754079713735786878614226987645672389039343998740637977949286147420106879111269882429638561043106836333255048875345302966121971671944502529767316244706594336464838022188780688573780311131594742769169738639090937959516079830220161306094971387317324625580625599389086486622392461153305557861315450752956081245299202714001336679311342689340567619836988491163096666755475829845187358890625817524577329036962955044281525806217534933889741098956328425137759502482629024262548696958150138935130545231652133420473612197572628388535866308838789111469781925358450964046210648535196204437066163156818404325404370790787201847378642104804283788775536785542559907785712991502113638345855200437820573956636144440934469101565028463499124806263081438444955503723621462392702896690274486282960076256273060638597833621937825672717239540767380371431264526161036852331847109435871726693953778839757927679871573295609681375149832104780971137041431345738494607998901066446877236124152546804369698157602261523963428954738128500678887796913270146417438344490217603868057341063752153130082862774359062115023938355946802177156302159549163126737140602676342991280238631756153810590135627594607917154919402119182910617186594903884227453816315252193883803815303483840060937213979628142111300847190046076309836072953120759445945846155900910966730581949416997368351403271960458980630639799648594336105614334744966938190601790915402380854525571501137317030184860038450371659181475238285756939502030872478832006655472565754364487133873954219496514660266764696698809810783796631582645120884989743579954679041476928529207760302563993120082879270003587331201946157407174837115953881155091636538702414168638370083147594810150591918551723129031412665120617839773243987798620371409203583840302315194553642824806443219346564409436418543439671112148694101619588515051521603053001732960166295653211748549192228386774810165988272476461422281334795045611335395755407087035842268100068820958215290123460521800525589736530092674370996660625933790259215852540900020289553550789153684499166690940426549960434377040562175759380804354214905251548022927232979463362181535653906869594673527154673379770100094888372469646473499155161710075489121870078745929539144953055383925483874262584856060879200983814530996519836521714831967525172948530096051879996013435604597464203438686464436492676719616896489245259672568568570674935572940315584800725602203713269007913395357256728235010943648605758277543853221276418773487552106665721869034993618690204921274510645693150561174960522329486954134571935808698898302005526715243685830874874520067603318818198673295928792232588674639151756476904736333597132562243978643589965196372073863699305879527836505776393080244379111446946553753881949866697499491506154121863976491505613621604103703231394483227566720803667360568610814582626104191693017245652397405487871593458794860410313622833564751085852294379117568313703215761123656823996757705742850266689066761114083320723076635033940054805413296487388102067359622199560498411831599708155650453753966458411061609797438567488634625709795283551759267050182291791087485780770447456784783188538435039608877577542156765164645986985240529247762729785138096935201906569290513142669260348915954428309207694613167345322299777594603384025612345243184057040632193017140159791141519415034085734445281759980794651275742233347597028665443755819791118264092130156646340696235249233879558604039187191448227438683847821317526454608323423035467887031165045521844793305447928579463939529620876999413130809637210859254774311508438212069820863312110703599036822494043804743273764805111242143344587975778366259331885424055570924290447170702335777231703258821323323416682904914634686022463864574677393674198063369560214740583360092674280372319887393464504049365811749022192299125414679407503830783621973817718887768455121732242556869827559866095942571129184424862560074646414556834950299791721688471670712284930500136660513313760949667222787179049356495516043252751044868440103691650400672894403441481925451471632194746927730922288201220720155108300129468342578528576234978651528105986824422545306345936382188025572591678296770863613478685582941650813728422861957006394034197957595952794687574509142007944966689330349303057161082580360200878833847888930652657771791767501781999511453941198567562487004622194692159998068447910556308016873397440856206522550952892858151748978568822599440068282625753990795780428689055178645876614816135794508333858251279208490651752212596143527591261131819435423089225200501844353746640604547309786985924738913782077911301515055859138481739012037691746748993778372696710480125460226874094665212326175375223174972683865481693425151334890474293646243230317290680094451227239946964501961427804081296411411277254626261342878498528000600301933760429719329444691843850738924561673383206452095598263332628577857872466019846348422613240894291410617755072812015179384417416524788740925176143399079275210579790386780855386569529068121413407814353344546846011059435348534696632871153829255111606981001851992902570543873249483238163567338505703385454968046671283534549943273447054251164479960182400020625272090229435926621442569471431889751299970617677624048362346912424518175654924220266147211004730558596351549240421716342643332207047142680582915389814382066746337942505783800364210649638819630125523113452723900468677804012692407017361757560142144318159422900099140286518196513953761519550740082985681955439591641502755702785988503018762498526749697653526875842925252329125139485029049177359239267153926761683180204514242838108060660455571751421524690373220579785167605337545637268555946150109493824565131748821139301906411789225750862660855113917054857791536249563304810645564596879197774667531943749694212774299790579185654907167493971385626535751014402956040487106356391545987936312221626950252984403337765389292113223836567712228910440236593223716762230541339953812831446061591886494950901069938103359368328324619082834321589417213554825172223205610591906930375168623743729775638350407753182809130301093177932091955168687500292178390015786954608340739066458161047082731047092247080047754270711643990923517297825644150102197182211784710615449376453905404120190160313193339750648362565784458101895999656479536786568935669857743941212124660399841134081499378252232489045468858255440504522635388403258507260227657185352372695571834112709953898420767131517622076998535579531207654164172643351988887175389557737368854254238285084017276022628337575576764569970754307467179186610766867336100149181848627620520957031296884583489771294887442004687004033139793856844430603590084383968382659241542036781529378181604998546060682606147996184245518161499328810606325770912716240917703351902316076683569215447243039902271026247851835765776065394160061137492504303399400233294229108095841548265756813959663014960054222710031120401404533709737715676969102544936381547832996252713050531577772890825717326875653095274489458778147840345100646460141013632574296768531815838883002230859097470658830374763368008474256750629648582319068579542770415777897587269202720306411081797426746719262511760876992981954082319444785907525248390352804010480050397395977340368785050075644345310331369270816753087029115304855441254012725811791138654955001432104384741218252295100983407210570298700528749892468522378362942336549069495488248311601514478501336689285196227207474793326602356598014811621108005078185270316905795080879575842212579890846114512212239635354776242893382539597237265471292056899662029671508652121457625379085233394803151909810779670048579319202415739339809088512810255155325666809274756395599700857811674032758335443015605995031439441299783754107881421634941848222684150819792933743572009269994302507201664718389903150833976126032808153259553097377380479003437171140206491687565037144842368152336579088141940569898243853905836367354570422539477402003656912258395163384423442115585047872012273604222049970457828924576983141150537893736428011510461972997732077209372916368967994732203045699654785031140914125657830437277552428771141668894561358894778841382554726146268377943666986022286386645816399245691397879155847772936664732152011409463538597229101806469171324661820726364474426632434194393185555439298806000707619148768225310407019862018172233957387791196090990007526633309320213174008800929257716307936812149221600432561372718225604941197617503602905486692517116561243797369984968511051527456246432883974160599886238733616850384690251804494589212750610414163710961720294467148749443320491317060317584664801700703159980722506010295704405992664681716520468722237405451617111295969339209151929422191908089776070555378117927135125704772600346295582270263597668724281441865591488767748595003777917895784352681789230309710818412584492549610055627910146144132560819476564076772200323866160638534797189511356723747687310451742010463774837564204042174483692955951124933656883657377297293689214399795078094305184396088938041047092103882263769572475125248370994198445679928769774356492236160693380854326000609349403095707564074368554463156682689609819185390722345136745818264779952155373208005361246398642453189276808940158972000466743786181655798863624207511209222822912304682472615450752826346668197751381436540814008835072244141762448215024219138731165141738824060815223757473126593103037982500318693556220740402646398955179448815622316768388518862422000987298472201171597446104652162275294741341158246503564306954020261409396941799976040918644962726445449590869282495188121668081915073572010633170452102717116010514650364672852545424208134282110802584306192744815949265889454820050975796778776242848516207722643187784782016858780860876750990874568189383611575263369273972913349442321590713959064012279006978722401056530985403495170172223824202941749470459308468015756934055835949400556804570893654285328155376022043231687540159940593165350782483921456762418223840800835000040233023111311820041982527171959288037777607791245623746235422671149845009443841115804096182042894343822235886168844978325408079176489331609612977979173662800301159194822349596243589761003237475745015105322113527967492732082821919856210634132730526293023107245017512123645105645223223602695011854240959773089598290657269141995015902212797354127301757453051226440600859977463607166285833719590662395137963432067187242458711012510151258793594986206359049554368990472391947367381338583918075571724100195187024021347722497270814323160236148485098126847972978918374713828152318400967959979611379892231365976227758031875728529201968351311029119801245625956070430777343754174190100698626006277332107523153211827987435652556274272235249074107242404076335818182456794798127293968001532272950987095012654119167965765075435677967341268117837065915359410347931193179878930643902876298948062721024474306642343118265489679805229784176153173215251915408925517862871181880217509770810067141439660682590332131624697914018317495442406220689270456006648971618730498911855252311739347574903112855957657483541033472670695915361708509516825341764611095423568471894551955774291887818520182131276853829800653811854488700688811826251945594073868251042142642371557142972290281114451603979461323694754965248266947543446250125054541781372345995181389492815512182191367016002987630096691570607565399449070946824520303217142728286739686839442583945497445764854839576846124854191556677634800332698915949415599345995888435327681048157973410290766209081340105262143010739329909464865715137977231505669521830043132769442319170868698266666280791453718286444765660859215272239090959255106087393797682918430161782183809621775904726564099713832075064275495781904408551077740541384264819748212695532044193575446731470317126469008695543323564978278809460846263402622615968806191091891658255721251427721049694247571177904358787789880429037361576519536338454749012586706165804001412346379019352127193719719687308543921089230495441995716245381457849879022685713290990135520798650039879942570200436248812943099267048948008083408999853565142899317213573780821158034516964684176134529483313598431132083022345517642415016655978902774929111770903263037483565156062411010924414586263749748321977208155211731112444267718314830308069559355374278731617014058369567861147227128241345109798173928199517879907783597857579684788955468756200677333571879463289361702812618612440853685164764346332130236230676823886164895404796264211638744725614502256814418388279515564365107608902949703976908696414209390432843098905992179076683867590797777762925639992337992493558645054698917189540963690831771018041784299373656627018721488496433869052057594615941711473147596105242244324366663728624606470891260849831233294833015126514180079569694911799507063459537940739216031504920760030195367954690571937284320865431589133753327097787214920259223011045385315439413389063301227276402686700220803660133486195750863449305412319562273597675759388223951107899866193068295737294963254431877354064351879443356556681114845111928490241733317391595145772381966702292381093261329748539421219606414750291278867949432506119535932407813042863966870806399465599059869553621697689617898457991585412503173048035698546942053801722941307253524653141686833663277633026225054532915929187882664507626673857680204906144011562532256448582713423012473331041658760483350785650723296819167295501176053686874971898829515851749115673034092544726924442582925997466190631261061953481933579278566795483788065972670336102933728830229825412380135441288773678014722797487937563661224652568582657314045077982615027444706302157391269623138807732198329895182027006983307621109870684913784572414218246051231448032744726756751244564868849958816480914579670653861996351280304641129237903241056676043060702580191000069937691591803687319781627373417412958665677378190993696441494499551463914589739356671335226641963735158729389573296970462158326974174702839094229852873134701204419628410310131061153144196814854343637889153907524420950285554076949175765814041845872199213335407133829844703531741250074312624987369532986933859606198832554157404113649526458903522787830771563969818722317342524271082026780046199544245350013448754109391747179673924397214976382278961227913912468262658090684235084204781987259510795381659341046761451352412457699811713709262006354778930172813467212292644055119660679055780754028229786697090845474760446179093484697973079057930278261096892432662856223307148983406888779981537049069412982035069558428801737859321690264695842022508920950602617822223591404920349355404451754962009640765916040349288569685349135461118750936713940633939547067967046089220799977821094899600263950711315909328743227796125709372385913922806806680600606218773774373458664943605202466275263387538041154309971972654316684824950334537697549032139143267981567676414584263048806519424291415338763014394783247986111592602225424332451291229941178149357607025026424417137434024972241163482645313627574705568563559635953884532473541405379043566372436405479950201320763215251577714380915212839993378286278917487988977841038906080528018527363629299711367961769206253327594460511680133744725212097895864153003121404354225230041135394524711619387284349183706557335642576829061444553716086053178608188323804406601466239848575147928951057625785688446535274029839862368909504886635302422742025536552264555650719681176276121527986858343241802850857738555398775545639228943402673189718629835818103659397041042774788561238481693336020321563339634792554354309610925340380637684442738964282902963575282001863334199767879114662847901536287184614184813293951007257636952883709614761356253522996643555823488848672285331134478113201552070970692439734749281559406499826628131265358024666324385115587864687277839501634742623246412716914363736146234243316377535130883289082858066869376400851418965189464743258322561785039341426614016401881693560306241113429970937016017194753026852679215865833832585699037676341289092097257133375721234617731576550616859736226941894773486165074583968727874764190937517860239993360877292411802932038577023065055828015967252829920103547050880479289314197206623439621137273438062402384111089367691119674421271194411309805673982753126077732469141675976146127542661428863406898858331654961130289552968623047980199946219688164284749641939330932387729950291299957139735834315300890355124811374541707913124567703777421490275893621776117500851236841425576064430015440490914735647726400309889554058778025784061212020897109043943115776241916464937677266861357593240257182984488313914974015975402263063056676935617358535230265372057490351724271497139958295035664224187456327074650235701216510176530515189586364788562400844567200077621692799490136496211120615061846528690559586965678229384107587179956941750831955400201662930868323220866220027919931024855076008403595332845608391473540942120110316388814237221950097317595951745608511362827306763531152351701472137353896620166173007584572551721067841796333326971720660804894173161208212384832489846705760663712370212032074119655205614401282573804958927412416277215692063702270885367909242976507005164261237749539041110213004325661714467266303747486787373926561116341656603115331999965900126759932084561431714496814851359457435035014091031205329544905847958617747040567686176804725977050710170839104778436579661419890759636296147901164292668374612564648460263411098252109178337437506421029518808178472464568450785936237967676373610739125459787711003578073351911035086135418989558391586768563678501371923938550975440661484090520400018129340324125777916832551242934222944739353771954982396623442097309736991222422559609340245589859509971661988226228755027906153096381037488524955987512876953805994504579372848183200216265849350669200954980683644020493130528672794534666221695364587048099544619293869850957402606457857522140439373770117106577868671679821172538400587801266961462247264064870379032583838452999142206596811338681712797158631239879786437484869571608010666590194777186060484399528023690848167199895016823273067617762957238211916331727557048867385961481161998953059588889530113180535690969986030449406756661144123141271148903932358427148486197296148532087469621621755007950809912195489286493379261210058256605319220418315016217986704057847381880837043489398594847324021165398166971342464129623011606916239302508219838376111879716539849841770214320393138966515117244375701677297827006057246798424455145864994898095932280933658403422577426389487123715100648727044403786209350638406517249621187642464442515458516224709961302812149943163528139370091155543350295785795240267214279873172185870071434247412163870788095622273193267943856319200716744481309958112229728561061150781623122039984088886866188563702729895167215109140128767884121788999827686597909774745218787150988692649355391905216594119034879519727244056032583868671149118920272157346916236613711817040973779005562759331284925946464107896812885342535583505229804582572252976798936020403683383012470238726805548210757632649490757659170179658922501179556504913162404316839174145585858095646463821963373884959496023045171349846400766947023802146576077359467090563689629975332562810800322270327599544528533208113343205481523303915073821397086880294128483786565485955567251690816906047694563525816985440293868392700779097314046410463393194415211130691789202499169250524651496902422918461396423854464374077665796058262568874756926523578375933612797001506726363688119374602084878101117499783634436475710621610016357516598411460491272473062569882585433432438366748455366880638276308117243650385284028705208157756456361095424715670276235974721349768683791606651893377806907493538017180172592001536154997210219463399146421543735214246337336372904891834138686261679762726647092066742895408939948760317982310773853789639259123337183811418897239928868163425110681664438791533099962349754744481121549833233623499011539643079868609272023106168447556411700077811591660287936211907566829414176128553933184721416209042980831765999307088828240498740402795793564563893374069814341057622789806477706060510648756239735765467243223670705951630627533687603581505338008758265229500704804742002540968953698167857268469054766208553749501294113910064126106929258181202432521642605776522670113880629921159580721511888133269064296546022908240358127574771926437516819546776481461199999923816483407089088704110021283859088309077608272745911691364036591944962413949244554639922856905838327732525417470841424195898307223742213567168046003767315451935698900129754813602520628881006956917659403171218905691708096859600943716364590235238623049764830871255311450796220111109393303411241645955159480653927781750585238804666240498567358039992620502471156112857860143808013105720311353615838253780346276373144211406489168054925893330359177643330375511770319796663318429961110209196393807627660583242449834883103213079400796421959757590564463797663576107514342873121109132662296881029891329363871843244917759836784608576450865292294373885815112855561434898444963747842756453151568178413956391597953598914012200347094450876447424743580666475124516983441538495022289487035643850019790201679432597744765831481805556690059089377612492770005149396992924379589279501520194670776144584659508966647243921208529011065006314058456062896939994773342148921353022483849267781962096696021014707286183460858752798924622461836565402493249901091085475772376420427545272873168761257034716347268442945023390919962085611241740967657524032253608558222548577319345741171770833660943276998266510027353969719985554005942900797363873488465511202715536891772867262849972005426244715895380207839026559772481330785412675144396560960707137514374489545538335728209296377786555888755992030011011120450121624225287987222895289586005576448736476022843184097800228124179456980097574524038537163579775946800518037533480778716240123289382807884861584739925601495545770923767100334413175738323012247747038461965720439234225006723772549322412667153061733862428443533285965094076334043406437458188387256156602865992675225714899604687898658650801786988166356597659510362370637274425059727846332638762879545635593831322891360776334968696655975241210053135687864552352837616116324949442711943021169503455730950407506816200684050912392685608346111913505035902752859158365342283365327765299853978570559029643455914970908428985910273326554344190135778346527924872438851455523980263520749730536479428147032081036998397570771722208625524108985968101745144722455243661106476505771064452346730761311207663235495102115903618104479251120592614454193081792861890976590766737192704677862181556105488594652467669362567503125967172724535342024010669891217236986536630505336247823159763717041338307358298650959521886703600605876147805817143568958086126841964351830906802652413980740612230103682692192434653988426808569286503245075002364405364820208223977274270258992815937214845873132567483029093417544359164606881669942335554426790108115491786953941381921247412224961578698987297640408086810261260223753001568992225349693977621424333783709839203662663939363773244359479566293019206693038343832553859406480082943293385736192185378456273613490353899697945246083311064228243929250878794004210407774583301429806830079781719692673638624324479061317425581421204643697273698367587843148874928166890737220880591083347918542750821208770740054770131331607648177810166483782555534003980948338062173743242139286860190920568130202443765742217424160783939282375188017347291242300542765506082351199121687225935644977215910319702058683443651655958514707860571960339422355844545467114204177106501451224300862995884453026469981312589386770721646778629061446087558754361645046172230481310834578182379338262120062071362703484158859238022336366758904643460726514889425772304448768226719381275303155706503223158702753926884017162593790954253163340700934122673796732638886237579538079153108538738780721915669236892879184428969583260246625057481868925767538808283881155200836538176420118209994160852094752717661448663198262151374280859822779244324123337744990550837391929621750751396830890479567401268505797744211986713426743113297181982410492899928335640520349123465348558692685201704015763431207537357793640421998704373289024689725263445770402654533558230202169801298723792454619908654813259311719586543242037839159949324053328131743826144928306723121509158166102156140336741764628379568037223340771147145990529680232393104126519024289129952120685457317648850168647421849452886737301456730886942284594295610783432101107698463855962737881188706229550849608508188687408385394974288911954875058939964868646939283557181538008442779038082951045054209108266570111750405532414222041279166483170276034324266799869999489562904227006113180909247966538687390346039662407268940165213842068044386388210259008057514722654916789260891438534590900623796006634133086219241395659598388243850255403641877280185938060209309917117947604300672963277344901028680081707939636649607044252620892015410048645959918149807756775594445708742092551028718719374512089841474517572228633162816518810371154697950961284295105702479013581588127607281283860359908194142995355342995170809803318583182544139874824057443753507387923100712036407674877213540322480393604719026048407789647832339899681685124403172912200459831224260347289969966270207826062988879390610089250653785893305887111949137216521156835897772579042912769928125562369150123296843104351307435115765547966059372741361524805031725854664970292688114375018746913989285857609066899493959631613698760299758633256266212556548523620183451514137286364035540112624037926149628051283923027840070522580417252426417057678047653074316785522094246934353369800687147409847023643767250540508204026901982434690417192130228311412208883597599015012887134154389977142228252636981563580340072314915553262019458864837755234985197365737796134128035557364822988903159355488444567098387578457111837721216055815720155962536054440004018730640344156017395024069732781904775945216605507619783586600928086127483742911659921075786026522972869290777976748834556590636279678005133743007886640701035655120280157358493014226902638974964358537293981591006727130884487613702114135194732553545006614265929470779049089482882796821563753406304247748781099351077648052159541150670977137677798631206890231301349529057622511992083321093991470945056512912490750670838833181977736444572467268453512366165162854193280048089266832613766598866539949362938451822775354654398886260434205325885984540998188440877017908097529847005069270396082335537381988024963725618815823261346098563393927944133531203394972053976634091188678573556909662021079733281985150695827345534305986393169911058108193702225305744278590834430428551875528500958207382653947334381553624838339638804545304972107739459016599097571904099825544974058131715538260101989276594012936026177880322254742789400784119144377029256499208331629188890119276998668179105851009949333754201115216612008932937677061246166947190590103939800436986698564826182273420302794709157898843969613873941668976112841990569657828440830375396767061637762463008850518404118532238970820027256552129629441943387093703532630699072813335550057329997197598035147008297509921147881257821925318197460688037362969453260347766354346885188517200148365105192161887608788322835584022906505840041955037180929082300185739878369102635236251272056221037288602014385823065395862190149565858144443722590440799805741724704966204250410382583441675113376799655496749210691230686383885281020966308583684128088964234000354307850094910098931565163754785291316600640220155829725832472811217455248814691062163066490344662590155685929353550558596705075214587766408325640456417984803516096432526245946494700083020439067497026529945400582665654653909773204061250056402355136954810713088484277865739649857359095763121793339427080305863069887059970286280995595803906186974214715683492892439588952187216172992809878899447400796961103085921649119486968726405816460348830377794570418179952387866835695148387792535092326925195153298979644554969934383438023016117935025863198679752454786530225079709489042909353471187031714452785556041431377368491604190060723214464032859503545945639684311134574571676430404656109196935898077045760823710524858093247169168330945954373612074602186262164954042195986788340253625169667070485374737163827587652527495229171087489193427112722663343309817983305030782921243559796075022702580231492422013776985518913169228402840088060775708479821400222007872798039450814486318829881820180902928495287734835746334538594064570214662301090736091679238844459746702101280313378901237768050436861417598237314425317485118939458662889376715505004914321409465131787172734039419596341060899342736383491683273040820772677164156695221416262017904117429692004374719217575802482721967323279474877068704574661736447075149268737410981128456486526179304265569671319631095010524489051724955040938739486833856139727076184768324821039769035450758105340709418825135401789629895658831061643746397306666395223468604574142082542339768622924174179206930868150036588553177497372388960446320242546627902383363906467292531954112570261597969332768377932554400735136165778096672474333765923206940362457729526936331285953955606334853251254051013335889900612576968172531350038886886796626680553665422706306427831361334580346641238943481433608218023208837352014346875319813938395137928052723533526009926699358387678194910402272853187250335814958931736765674272785074770191001777175304982909943947126106269336150005415834728118797197545390997510896353430419570416387326835919059871114686469907559108511783144371693587270472807602713327738767981892236852790148168154585281323611688753242042584444021698602120055185159671717763301078102374773112222076331353986380688559146126072802498742065105942258406539464819475263850306722947824544622311279623554784084227336952166352602476086771252561580310024471666594214080158893737933160044057352074429560830137777511276452395499168659510904568973653821077822774046039643741965292410868560816124415797887291181294176279700062636468716965325107960657435811859633555282300416063308373134661140063124347553519253762483746911608579808408247928794878338339250095097502279463641833278094337682243417241474655489019727235130780063179895226363603488195684967943136712604646671304965609908437637140189402113678423349043123950102386214798254528904894794843905615467849079792543888157441284772543423637773436843116296588249678721608026893101998541809470966721204138173589814172735417493512399298032709990247481619814658691936132146589454558234553172687465606810357917603278710270635579377806976442189576214105047886869732543462968265856679084595574225614160755774328906223903464110865953402590118688514572367332954612037172940119183941821383216184281603144149426980844689917453686095010413114168629062043019367176826781777904573935922656054572725061310941878895469063790841148820527142696971077991902198150284915935061259705642984735329522743751613277140532315699275331809575651456977278541951077697990017037421142075682430354303697249196703216118027325278257640196553252805767249087150816191908548619876968470027912825835831737010570893697589545330191523137900588710612438769257113962830655257886649110118393071679087413674119766360599538483075888138556858471310779418025279209774897770817662872409121459903615322043993995453079004166457198639253767102114817085517810719203352343515274057186541028669975048119423646509160016589891221296365836895659252735311937921900425628148576530333682673147185257830534842435534423064697761476510382770208335119833060689583365387728969344642146416996736488369247984430875366901614487633506550755238750744221295589648209864675896520838465620601375638983065595758171150258965489920808687503505723328345095828118697726955753982266491808505805556580941235117898714589645285778151960527715301979259328155901739642693136386564393835837791382357970774802712703688313235094414294311185745074765664762151458113705930589017079422493312322441295681558263690398709662446749814109809143394566720693778965921519305581857192198489653326663854083379152395348473498147191824690064299846275090553857027250555847334212536937411381040320893954963334537994696206418592663457621421695405150105972718619479576793106751527338643121814994428558391237224264003655798188429486183093783704880899913031260612245281859991984041349565136198899149824704332704251395392646086022865011984970590810166993932218670456561251886240774880260923917341233945298662516847015525926297719465574701163367230741961550145042810784928867487747343584609013540304019098372530393447919201341415499884372897702734584732446600097400273562878449011231516943231606275737991180493172160602144736984494918454312970720223164343503911540627304448529823788892029961572367738774592635112674261193052381681769703330104818470841676704145840742982179251427323092724990949119775274907869995610548967166406482962070740474874113492871590551924281287059523656196296450065185280765345925016031765643806355824580272192598649654315240503603127572880532249328916258751136844789031279692092034510701413535158922735819845041346235199440873917071357244002446009788524666792946266948320248373754765435207223224263698317160857711304378459683139369197513951959308133492795441076873712064697501679016026244167958046610562239785216004787607896089782760808439018226999770682709441183870454792108254756299740250618370536761898231744007215415631938984710809355351823495252134898641947406510123944959916008577163298448560262689444413373228767226817161711965135576431273326716265200251579665040616139823132457347066786986831164158475228677886532870213202866648770312699138280299334166663944969901746119434594780159803191826465057201007578636886449951816280240946726064881491161173051139367489259479669753987416459596789983697411576117637338931788880999410278099666110833568850231278676844081515325854715472801871351266471435105118832802980543278527303990634687806657731172667816111272001686063713324190076112020615929496909258325850277360354696952437560249069400794887962828437856128659053631255511300777389603900982147200547003775826986330468313707458021250582401717789171706286717037909977561608257629240056806621561313512010619900485765921677126934498632139705662166376197400419109254772217293361092343137051243971227348923870693400611846999617700338308368828529592374048215973524181620057198520174919096329987852123103291837655721774719559691464147055984373844010346388298217670136068355299312306490586930675617915987861063509359478628460853700836440461997771590951908959583396044146269525968815993584850476513463022608587388446047746824488789455066215346911452339181689656154530217366123418525110046618427250441387024278576907531393428143741296142131652920700790744249908786583682080715847704507548673661938765971393344606108954708457743684814288672030079315839172417440698515046324558728040328335472348505543515021092609304079629044892463737668084047466160817725531999053094986210130391717577351587985151993730850435785724186286310771351037276005167933526521639278814519943712673410823880046328525752273693668625110286933462756763960101989201494343801773744935019520068069705143429783765364363358219563252510108593594516019669071306603672915011531712849495167079070117374079377437533393319802232513241386776367947552742081651949574675962303258334825639655284605659074124200973075510518361159153817252852484572960907823878431254334869736018632851163731623277578286970492010613758200061199770303892148390793893032092266923043493324456225873266184062499794604781821971992536046274383013108614797245681881167887560127253468017684154566474167129271697694415381793594387160145184369955911601525671063760307169509304268598787610675061331752631994857050313048850043546898017357901997602114742028142726852951820732566913060486374085001924961763437949764026786774206672168577018534895030262824554857325330970397116436314264673945314773187883268585905405358335001424131784273486448570292726094713200397040836896432176871441609908730285565318057813473361906958280111996964990652767490708734678308573711670615299739412806885662296777619179151048280946951015911622432709735585163625462000960643571023109519776645555620874124887785436039900151951234901807558989306132513741359688927768168514467413102670542682759673136227035863765524926471308369400155419718048827917510154945581039839640197819569986676697383948819267038068110707493616790124243136614293721343563236603230913814929569127786635432992274476456402487287683817841079458786532383407846131866746409156699868946247483482700271999475217766974882835385310620055301516002840457179042038161677281918441245839519517157209658468328405019326351086400939863506410037955629839754187558714955385593740213275120930459391876652733522413810595112570157341021523262980651863595376434776672495533092767296378949869880603952540919261122442712175797764248721703157670565377442442883699487319319595388012898971706177405832917582333172657628085921017252139792928178447281486268551084367365715264521270310110305458429612561086002846191709218803219923960911662338435112629166769231895973509254466418689100708039767961641212197153178247833921508363129759914863987844147317121925858514530611619233190907356732195446903945495132676684334731128434328058354997035121895510045679668467077180857375939462477750625312237950406677327211529711810965341963453052904204070026610668606122587962746740475788520192141140177476067507341352334436843678976966783881889231655350833099864521395553326025800101125643888322288226679627415508277945854578147321924397835372846945488771521798922712640420902094222328703196704377897030394736050514015376265663492010595316047115496941606533766791485650355832637264684906177920971060658257851604389229085478140946725778283471207358432415367470795919943372711211017966681187479501079197012595151696666690025678406799947577557750207026484935750612308081756286366952667364483620518480135601364197625870198761329792695853635941274737174449222944250624643216616789834671119715015624714891641652489703065542795763033993111833166478190208456472668320637651557734087928988023132948423489744531098460209479477739137809635529358644546981669853917605624203442107188640984157303969238378439912073031787943315913790318228093751139841557074764746454201914145457915296790448334552490487357436644666762361135034328600162571015290133717123827342185868492993401460012177174600061353229948478577928359026846310314043854555636821719153382259482587423228354521493934186743305800700727824219304809460099219544105014608661040853045818168090649774533278012070282004447825123867218933422488426059541421793258856693304747218651203115662870530916256741030744075137642890741737578977527159177721567041579996951937312284960801905671913639409441323064014439458288301798065210848477499460233697325508888431606389226485127685859347311195070679852422540122060783054291168984290128109353236938571279869203724001530748689986468164434953511503061017993106264507461010040477943660954297885311411690851911993039102868541480795494591850268745347685925014124319987623146040491043431948830629834517289128551958539058933279831670965098455569419589973064467151685935381774532351499749060837474032853651637156838877083629586104874234334104809617137715664693705433125201838485069650313517465274047603645400593225693765714973426175747294723532716094093584540855968001462102441263854348118938829853422100524581718460523366059695769211490860502370891431775994028616175516379223951727330260611461980740279802520746337891602487052405132421340479077197909559265417454511372316182137580957136706616743198569227435551822671955020907370870248584532126091041859016434313821032352644834538098060108859899038764870000932142974802046122830404587104567786463519018111392198915945508311595714528559667999803190360193267276984094762096906973667844441455005022732962948895391102363144933498803009818166774487471368361468111620654356223362193841699143948031236517712601613772148309821442033110880386855679469149530037677249180818662294374992920979401730817838416363895999309524540453766805722025906312083009680885812972177633706959846524398098677889894903608111062990071804370599598201098887952794869599629589383235629294782198922672061574393147157720754580924604364680088756685320038426050217424712848651391957256048446663580329850883117625455099224361390116201189877868349965026269745921307422892803937860061293451434591333129888285149256436066335992797151485189894865044927995294079090652132206373554910761802330078367465920288016955612231398510139742821955436762899773713048475723916630840231188534507354067587455903308939154871550836315174693480753484549368039293341012236550042565698915478377087112794053048278822601229522779021704410882192157525670201661161461145166173926976022021962865447041206130805560756738405730497219075613429796102087161654431889724299297516444237504095617997384477005130292077162253041164605199098510425451789691970307529905669192089715039282190431720483454715749879833633945278288275635434291940995676156815167293656668717423988150402756311592680821562606780740376198361954037360056542593952862423426739875781397184683161861896871508218798058301389791110425647026421878200703245538945610223524544874106741455915836095236581217311969564046362682062139217145575991116127974305823661951850053231546948463190055671100834331124509009708427731326005558110252537856647504970861763217103771149309843524425797104009807703936859167634279697555143115515917496262122687533681913179185292350076851625727631737508343160261526212819698999074739606669854738852904363255904437256403431492237152865404111774178321235552884205663431805227042525750687183973634220518027558749468961577274516507549206919510973223076281625117867127588122024458436847853312515737483692504297473628213972061499997859070359903637186598189419318868467435163907972310975458596871417028239209755541904332850359224406610898234004108407493736557172789563734778991713540817254523513907470825739363828854988039799182830802736438554220794120525568971636182523535458951551787052934544511227193458709219131320547769418798218425444926546931774953438704060194595929735522228168578706609125627694745465772091554382653959039208738780927314459096251928016613013336386805304244011342132483737733885291695136962645786078454027162522697892136187338275894856511179622716670893097390921088644340788690583233805731936295315606829318821960378445787275559092251560796734673709822943493288933116750583347594777090223104278249635548437198621843063020472498071984433008381577593719833414925332791394797337332009870508264103116242829214889571907803524591675431334563694511529124477502356617731635082310382549835034850608692791936022206253179788619152982691347193962463191891986777286570615345536147683290384852435131811082240789520424569277521487735520114819657527486418347845978957931298250986037669006676812366183918988136387492515172746001120830648264723128026202710996413545593818035606686869105242295117572630091312312031111735961662525191736973076587070070576306940401390658779387604333408546162234039614340176833705630033098144800029536801329149819588988405978598031185801012701399652796703349027427000963604238791040973094257649601691425320294659181958290847475065254167340322246252291852698589289128657617616677140608800711638373890994783879469256360047366669690809731421813096088744160773641553497409176723373758220536903024829560444237123314379335095274952012770924755040298648847334252623927216720081268895099843438819753376937423100494570414578919739534618815071238710917949913974318563087830714566809599390425115256989007409195052740594970592354665746793083623226842476059802282534028881643457757637794836569265960733157589344990909444945812192155617449971959785552703414999793758063031032498476345129104125039499467898131635238004268298468643291295408320279761567257109900615288567257060554330901510822071124482206498854098585191850359487592116533442451650399951040790188546517651952564110978435186485570139166700095814823595145032744809277058229462950461347786020289068181420426201759123005725733876059190465116863114189909305979127183853592595773650386017057225584946526172234170901147585608517963029356637030800292900240578407098198558272104634003342899439848043703905314888382633980824244186001385965795061961560761566529410417776812688624189875145317494380830739027287810350562407465040017555132844369619934988390761666039324622466630319536536927751198406152075567968302893602089010705304129934038760220870716472235677848405320735896104482753583970687803770828598828688717468470067279936986839827427670914336233828890665404546136605100058441325019632816632076155777123207356711054225830628142016541947495192649905485344974751892457770731753807876670852545665680696957995096449010830163823938758314181673119725137592091758310582864010279733539287968461310644244686695416673507326241336841503508170289962149494944349064601411114744514373835686381116041004902608000014837276665258428597999790026961295207721724833315305813510538876559256461869742539911364504480582169070635457023016226896329110663921761383504269060739450336833601510109518752277972713556663968502603080801999335858986616768885818890681987281583303001253761801115781894863809954451499162025673745044629546952828024631989739843382398681206389329689615542372929657554307029550853987728050532991785912727266834785928726331305761000895118473407366690048821359874492352488436279567881490848265202233308966460533380970493393443668056487734868167760343409208042838484408778190470254345455652864933257821111219618496776843806106775170552598985927552744631974947946579789592626771093328276768874068971932691972144668983718850527169476885732333097691470758757944450996192105564978634870304101173584242800060926368348985949601698665711522178982199766648827337491016712088233984429134936507004787796935960795749219310304555368912091313497940526842650522069169193364842304910291241612698202006231510071549899550156273902456861550846178280057160043816730840212050436608588686742892842280081168295312006750592022849832278383430492068595059645018379593774340577843878655068529628240135727951519519265500793379225927614031747829960431434232121571108551075983357692894078028767569295340377542053525832385795754362454834556865451510110702777762446604555589548072427936417257077120468354129793995790828346122152229435186106682409257523671559686249744052415907909716754246983663415057934495810037805786224372826022972555441180448270350995947981967385013938455894444767080611344845034670794263381190903486235987071623311263392653383515596876213411409741312016632637642181076124514886786861241721143695356524406074375122122010723891472495674804275724980862127330949616304042034418622204610065049039760003581727915306771349727770416607591971009731129792615009929048859609982156106399716552151330347212063306604588778485319729389681136084200427870117826156315967267906506515999188700450796992226777484116596553161604575068515535940116244286261186571454818156603351689492405140344617791752971269259916946102356878607399185111998945009035794014976721681288980434290236410300162232217879019645987913286929632309452659621835085771929844120959902892092370881795410763230571776777365568284666993270570275288472488608655963501211481650047749433535951100620591446373520385977777820215855487754478568734460716649041115344624629433600759939001835637455293602770645950684585653480587313739884804471823229015006633191141462897587507764840336663543657107873989360055749356968760326031854685367606688075047742988396454669813812932503543027522726857100862185984554864083653245069351719024952075789596107180443712883842595264281184287383475976897139351793791515495103743273036705364239070940806812703451688168129340232135406369685418915908121472698154684579265352127417619250942962613554050006960493693277222975974750829947417183091402754005349339704608727688736089070440600698898258236617296260886467654333523415869456337026245104376085301506795875950676817391327139036688199732678256423222573024342730261335268958892078639951109389448174882569529340728993081961137184523517628307196340261022418817839372598693216073413925416242406791348237039281708002104456390145308676044452732885357448108725691390249299296282689898209206652651855102953080403268348332942907699467353510389788109783948439407114247226872384141187667303648336411529793214829610983440469219120024200272917299590588269070495435605484375684069538239554996467149351962034716882356791448471400371745630194198932931564981157447569867356630135926413982592605850409469777311836272494520188178940175302459328966944957814761029977551256025568265985166419383272698210640609399313131300145905331005706820894064120742122386628306862712432828464415541147693446169433121603474519395122610577734960985590923669026316595863739575944217705795525770598133926186241600110350544110084113643771043540188383973105112996816396041952088160379534744876583087751699246271189799060959427913040194243168082805823762360866455007092446742598452457816576894484569545888217361205740279894244039459928691929589851745286099160360391671935978307421304020942979348694591291275282024409340037285602799110485684337785762558670334188918304930320831145894930358622189303748255101927899990037194977172202159170854509981811682805149529445996212199071852035266696354740262489828821734668123767897253275428331203946053044911763342588390912599988682596122481142202251666254591332671934132000621634180032805661251410321988505012537907107162407702816589741687448491971462890480636788665648034713251422894409823068913767328793722554934005925996989012338482341563115058380612630341069714481899585364564521964738495919309225470284144148362519208511388323924075452679804320233839965400705083560934650530700907182119575015140287909244275181520798172712745847553043112218654518777035125769525972523795251731585687043909323528254990484737066263754940458404731509140724556432849854848451278098528472864375611178055832564909228620579780665001963166389756952124023036280684034465292535402663162280765065699582516641189526084486492960835791120191549924353117894844202391665813993043319734631342439115462078072530387524110985713387503314883911418440346472165097577607486390797709370534077332051573299123087860181127240038045672129479583378653596024483429922488244100805999573916095776406960894953699046605801731221974411472408658773121157402750451925357140808631968976181613511463996261747617973096021658938215914312603013337774731572860495037731774697609981674526999592931797307418770765250697171132106174214896464358715661778431478729554770315597225561883416193511348310538465188871406881741119319955570787620539756408571996167649325168120291961971046722152104165689878062053830900219802491715746499973122610086767000786478239697491962181380552209565241729814287529390117700814342846504493263770939805722446641265430674886194066451330512516367540595533886167016135766870823599628344500102358066278756482822847631865417705095670115438698225527887173809376595488523709578472506560414169978771929508658759144765960419277339075327455138365645364588848868594724640194173489044311231439991272578306773537868317582903985371433252233389678188486330944639801013625212496159233836824349079269742771398268026455104551567651128461089283355048514778112420728338284093746992655753587423871093172222173260270795329625998871063435615164193363542301871149355113481998069164902693530670270381936265426966945997521220050798688177147816813665324341528001124386441560156951529276877535363214280925417331434455567317756810335155029257729941035252226630222720529152452791651767902273807029188758642610836300599783615951369074080415358743602983322204392419206455263466901591797051228545161796895780290606996556397780724670539348289585267437260212955531556372033521420550330101277362063025019470455834715580511899223412319918678828259050436367773057762661110426634689311353458197498198381074856795338473682709018029616714998231888750817330998358212305571448570057277744385714379704701678617820349446872096055305839346235934399142423878832214368392200195940903193419616692212049196183898096148644556429564068412669297849191092342702851819491225674391860781532454624046419570426458788239211928938136117930044449061178123778058934249841267618148865774005892904631206795763172208150504688145743973737171213551337923675424508323373373550728095721477974937417420086589497059402314569596314566895037305092885797267595357896345683088797162803843835890387065098900200517371594975411526230063308544362934283870225684113320538799883075819380538321862926029791578399356668045953013313279149845737463468130768050233520118357441975055564666465628435511838360183189619534701579369129502187146882055054833633077029959856922421921586648478408029667506349454415596206012013841150408746442102412467007324359010366597434765710877110684134640640056169710790101321955750496880165627096189174545105807622630530407740432629339264377196115217861225579898939398915944262755945242095768306354846112281238233719855013304153471749065090542710336937457952405055283907607909627757555139418487739652666096986549944689868261684394914602842189235369304957975760483402397666278963043307193088644841397749366533486602104948241753922718050806495992030124614592381095366161684915008337991136700769485063387964233350561593955726994915420313613205207476490122887926322475367712160619034005682502674209447768585521211231318908269431815771190081381415021387569049657355746566639085776817739280185646944098794200395597876611518487250360813898279839030168722558007308170958389192826918721026313024930860461681665014801057339548373087203167942729160025573035332470035590347790156820745878956421338334339453300813993478735122135038820106380044020466093909187666918538518423680502748934336124307140962211332683949999313359099935374465053376810098622677555934633355770250133244524257634484986930547293486155809638989682251963806799663416486883793700232889400342663866142297529868589100326768385478460856115408375629924697107998495655754217688520784819039058673726763019063312248271875377177153133198531474356769817949955368651287978514730207815539418432554256088197878015565073073122342273907905360409628860606864249835261624489851731967206733290083509087791065319627894056975926187357343553066686302962394975699734138899249356863749822790295422866828435765177560484580165901428070621269075118264851309325278587362732494410706331559771367423584577387584226916635361242210451760028308240441057064736387232854728760640787967188457427610852259724774435114941808067775628885988165452735877815780255018174757026243811216507797359200050847697840613284691836817380587993144916076356096595146518495116152707093953727721484785301547790497306482299021081459328427056878562446567088990471288160642528832642869255855997126772581556482807441520102985066291257040654422048379933962338190858703852704072183191575048632883468504582684319604857776894895617819038897562731546088755944588541066436761197903184375587645411937083629998613816825053436989102808945842918072578739840566739446675372029737967964515012265290619896189536355351111888094791970815653277560758767325831639929900145392552340568515552769847564846808609608880899737005007164399740133542276762513061753577069464771196939541987452367417965509352329437320694633908817442007215631020526205942896033877564538880927013292996136135587191863880928223242205133399818475717018673859871715963439711362751249110988834513445499841003566476690603959329942996054651260432368745475134299075057425904064024882040009358567965909870473462019228471332686488073731391999379707964478232721802802617201600199723910273807139083812629589513128952273470534515452493640113963819371095756752862145564140202414607949615805240778975918945157243432232523122831260156894796318195666520446167712215428630282354756372874166243245729598508395398169068498878092866056437583188523021566531619592708606241294300164290895846484099159937121399987996277134447146760707297307853728571901019316464558770021505747682059309637283454183154300082294870156978057364952761893144475406511135147366982333139604322531521312520989543675819479846534214752326261827387248257018756822037498943267925455772861048658158933431932083470689128706476309422669054393894813666799442688266429922410182115579601107114445799220114702544456961129389707894698166404362004826621896236142407831002086302592449878703559095124174160442141102270608348189881514221241112732071680452180659064059403243746042469872473207974837371477388029239897608757349581719774145345638508168686352027988788667755962074238607326816605875602541978998309126419366017619235668113982915002546956005714829687552834790057987875592334961741511684964816065718863593558154033932015914538782806134719458388564907905959064713649268753020646492492678174611607022054384443974872973469499824306426056869796478155050319399190371232834009610523145373264062547488295878564611129768749316263794627073313005335720246935504227499351257131742314821353435951394621733791753021200293437371712350472912284972267653335204181880675461209418853394845729546724193747813279539758245643579940367666611804479577224792574921981802804471720264435935758783817889709522368645347315354200872842853007320681273428718960329821273668100824934062746035373986047349280830731886159693375712522849520345289500731665289930505846523735084987613440772737118261294334741634551004824010537988207505148150702657612484487141865533955489658528169689186800034602390407812323970672356997032860614090529693859918143402016690948666639378350111707748222995595906414492549431193918667769447812474030562053921476822722327943051015168440360552670967124280046632843967536434082760253205244236642809953068638208524347065071835290504219965576217420378295037956024127965074125921466572556934568067272320499269215763485884765437608073155559981758434918134318732698022147713070983065748358801864175692706480772341442661104128621027725358753280450499890747260545214085256310993758187059321047661612123105668746749456290792200206687700284586851264944862650437937891774698448474768230997078089335607164640436527797718389214309671457452027211335396198158377455062370833935925286216406297762299741222468047385016522615257388747306295602409854186171465018458331469403552938607286367428020852278193966187737059809183479210350939823906913023660769416420869742606764730188419917897401860107226772334486885743931057525888136406062521957240110298248095123319549279784240510076338663462693289512701488773864040041903109667006171365796231688464675951196492656904401862216067016610026215793855002440400281153304372375946106381354760925350267736220821801250330641519090946733840218256286564395807855841457933438891777030089382141108325710252461450909519111753803124920693790608937155593866769858665328399402564745985983676516412603497823049043692048070517533587053571030784927190722358068444574226733605694839194515082130628928849578132371913581144167583030723712167908824383116454262045007772779941207386195900543969898879581592102529032049589184911145326634828882262012221217455752918995440643942845339381746092720657246729945416933925297874288196931900679010474486293161779377549281315757653219993238806017448905483273529907892016070466596220568950423400468516540697841944241710486918746522689953113601846348522907129307393536974780075109614228530969953805182171941023930138388365113296961126435652563067221521030604450541537121677126211594642775147363030210638553757014729108134239870235895746087621111726470297356355186595974058548971526342877600008650351780458224799663201033639392727559854327012731715647075880791701664265490361843823028181524136895734306061930939434426960203679474828111753769980315405020557467702660805253835185951239602885392875771832136993910282959214941265714702580493914808421423655843627240843098431347063149254770959663181410947645027791251437935084464431562375221601601609554741807352389720603789227666572351824062116446455153872051395830482708461346782678515664454149354202754110773964386389189511091847777784199954224531237282628662570473123507389098891403600368498289227403329039549867851362120307396268507771167499021399497708637228112498105408153872853164250664013909443510596425294700344952328648553984884644717883788793525586411829988334260105534675460537979084022654692455089577283508219486699453247057626953703287468490985664941983620416649997705806423746130432611988501149291082465243979869802298876698943840301740091581786843961952995716164304135265944313727683311078495251061053146577126247553739691494553455941870638196775500521039657274528111900238297521635146247435128973763046111148908103073601883649091451997665244168115949354228134680651515706202594053293695278472753519776912131303980930139016733590793997921816059898723305566138135750244295684337585874317580852897646488536122082325059966495448693801490745604445749362930570900858586023397395373419743838255514570383919038513639244823255392731081994909970756399351607376533453171949089531227442767186252472053642848040181616735583003050909854751884410487049259339022956506472781683885700191302446889382184888809203224155928596566515056664759967861401081165781826390248356295223910183711475230599813711997500272243665750453398214199402499116264542662660426308008416107712738342945648981572492980136995706893443033686729317706986191194273885646336857124771489249471286931765704417517833803062034416714089592408934975083933288448550112269201739045038297579850824121957485820179142118715768058476508324694894787773781630665353788648111275832582235334706489580851965928601020466859980400784697135023301473653064807450258064660303887636664854968464567405173194941613235898353902137733403930904189858897583058113543823045665480078299530840116903063877454335261292379678738836533852669772269809807292418864097756452941117229283365734213936624905619713947865463673825052807473675765269481025453068036987972264851411094614525780249135744459007678392491844668852407746382168706230152080103939632284658622640892172829694561279994634780372232659347813303323091879632549607875262255388266222726110648956262195582928294703906906811661080206279374958058808684313405403834583472043431884060090154717349069522983099398663147208295973962893135513976740380098947436208312414302397508896888499724884654029561987860194469994829501358518087188862557738370551530000980286066653334838724195479173787884372877810560356659768641508412000596525641661061854933596364258363600531920276682465963492613281076363299186864745658440991530823141940355302160660421050837376970451609639128541694285473745486035506554594651466153654998325518061509585289331950779414230271307940907405553128426423306183781054269723778145159035450092376093151455228266583055845232258402129665486658730088345715222074690120671232243691749166552966888958803081030645447481434367563686814933237469498397461303437920970408469723765622701883194625989586496609665022661879417162282208323975782336703232977434545722397942986395454835988650486898291808449562739378042339957991386510542547658045061476552151504906605423543406704095428876333799254157515579368830619599339735206146720096163418415564494655242244773479012472304242820350374483196525822149637138489627729735800483053219130569412996370282107916219756190521082821598323067873159236631341196686830130758613637679079659590346978689232428762133850024206470848813368983684503080388931074415668829756142983205195949335325126793937907230642396849061719649215808834663097985856315921926706493545712558798905479894352045218422186236745752051716868517029726427629448628744052095061562667659126457890473654027628104751356336373869948065342100758074770937315557928649431104886234999215390523929109819447340316100092042262008901255698275831634161473291254617873976099626752029186343614153918338821472979587520963097616543144656745816622136498014008644255371699473094402991093804503655592899461597859667607377636933985254369363640856558790327350204166658892855482133749696610341982100912414141692363534237592130065357474934051141637815584204443188326393444733876643592411931622836121222212378159598220235169601278429589127127940632731902412004817595540035525280828379462537778171360137629251060870876548685990663654683589869778899683933163304275237692090812474658212166682624818585095209424775193591257592422020250019072872672274942581778859687206038013496484473168092538944539501433297897700414778117880188635486753584440457959721354338987270612094313999341707897918370353238047906151382287813447070166991680900484240558204152767358674519171098021057069866334787489167078050932338273354973937025479225185193193559630099360307492307781215425644019029039210536908385834965674149857155467815546882295421757941707507420972324075491014894734570318684294123972928891437010934000480696737916097314088193231830176358853703774050269777088697906013277809469728831377132514450302726658587689877975646429042822289903726693549516822174678008153608628465290934920750239783603831526247449948386398612275435915207461028972510369876333842869121675162439819512491337327303802512147432078916047169826814256816390777987742408782075054639993608913006969889007823537862767523796194953382152765337199166094762602768971376885095125166629792165595353264949853322006735198468408497175220699604789898236542280959784397699041221871088848892716535170085772980946707249549015697344094820515519100757203842693552316132082731719514915519888553986750598292080385457785420565224653837623389079863590887265551931282987834868762243775991583081906025396106929479865489447061116119759877079274098385741365311136027634465453287557864782890334509218045509790548323716460278358212750909891557289661755118462524308524062473427534164254498392309762167519737912866872694747098710321571942641139901181161616315503217731638096416825421910637263690436323817333811257294718690672859819568454127991566003942389218617362366029829246172076860585335615894536715880102812903090573407121229124039327875522018968343325535166352034423511897960558140745895908938099234029554312154468728944077882793778202376689844869470695245328108733569465658382451570095404175636936909748957527511203963571992448514634221857667626057307211971071783355743055140986163115112055731589828045285025269398344592299111764864143970477156832374881281411728128112218889986644575666251691598078267428971728939889057355609939518595889795829912653977389136409147447031589037063390187753302625669730165454439863393433726022430931058730941919097353530060486152421821682470648427715108057072678607771329297944921182874377471443690044841633794824354472835919898642042894178887490255566249881889028645277522763376374513867643995510883721575013674434061899625718896259440236284617565743924953227601352594947875300304591312371388265431545478603619908969781806286577896538919998165991176204413956507185360183763520894341581120035576006248088105034307390363362641105392789720818845814080424549305463706324635374843648849199453715214446749843537182383923526732770035861249343576342029064457282693667711771051522650798571797974254045978292806682920428747783842461165480116849982627064798688132932422617053994405828443269139498010603789942044040402223270221491080468739459994404243195286527607412154072185281065312615160976414940711896684017127754959073440839847972458818496483447045265207208738779807373175062298532450687636465283386695703352820774813218364108851726691643944889049295393022063029149777749166328808580530673152885106175240732673702821030350123596831240600632807723931654827939310323951085531140325267086890244243693778326118996980753387777859440069668085869842737935620258960993884643674271189048989868561956058949555784814851305837658639355367523247440090742355690313229481189880761601207288727783954105408887134393233501662531872803320429121098476105770643361400025000443993775683185835080970218627140662807528986143301014145014580441513561387422181828220283934621962522671467281939867464670969709841713068737291921761736239730488538653539268797989934817948419186649925292233025620549709687436384750400132299175329920406658087643429647530135630642332676048031785944235595909888536667401880667918715375822931287407101877605132318103354293126884420055135515076513443675189227089126779491876809840979808390838348768766194793303791155425515282306048548487481851817933068188281875989742647599022692710528116096757987492001430637298829876547666260980057710433626943425470023365258872210612298421333974691464688023920799956826210625335591851987498106561521104367145352363708717968683115337644830898972364002692702038495131927464372833678231676573123348426230547827140813765383561816017833235313134069332511478396884906785826615757326806805873912335310367121461506285550596499445383403288014515737797809358889829670550732088736890034094285012523657162476992959768342215461567838644471571210256523308796342948059713669731580410825206640934277726980214115818009840704848218652162242834489254415982504954439445226740364579271394165081505921027504875580595499775594555799431507237170261905968722893824847582663448148124690267047576587083099971914578067946998143472263828841950904895091948782755013010121582102213983219833815971229165050084867757668048656586307824799889233173791344509753146956199863953151471022354852276420203617145507692836825651305015020204130295413632989315110446606221020393471945516558521306922318368651389684254089856888570101345226170453180157257661019415597747133231590627003712499788302092719913875849058032033398826931708430532083465962272039939110811682201292625886423733583434966895198471851123090444837457761369511138197147763202732747004405712480139127183727838049329568531353842397624059709295042495493796215310996442545713081452112005230059575664757785693601590655644849981197842202308171304296020447289580414691966456101434673906223760751062670738256134783600205692478279063161050094515776903419582858706647147036445075708524621500184753430472776024161551871204364571500376188967930209176319151865051199911256330976581422255369229148789215698323051587023594273397489405796205163201553503504174287831227967810388254533724825303165378763402474869530036014198468676267176105943908722904885566919548439850911632709690080205005639829838814417283190403140390807529526780155654120766378372972013320078656188792786200211064443975541951886589960934470733421519372215482604677753759383953894088071437584054057089097788420881010553741717739051624476429044122158274466305902847423419888672566031058953429175071577108354579463625745926925579300649891716216074659344297746225797020928638938155226258317949451429632042927573047179711104428575639166977784073861906200862432719672574967118695306598455464732022862418213121429048271732550063228530691994984131000387793516281640050049312079950700371823337905611376255152221690322342223992491575352977554248995607634179515924890532497643109139733791568499229046946455876999276599882744788400855495668446345882968453326302280163833581417110535081526629771994835306614430048704163680462775697824802888878071930553162226845950870399980775559755335972929040547339852781446725641956368650889648561911667845151783296907088280558714178770235065397494644499856071501124187289053507518202436926942542392116992391029957561218109054446861637246006285333732307924205291821275594446629126600761536180816176742688056450647032946097371655362647680946350539551688027961530286585071110231392481954416773105873777121977978888031223892046586725555554630877330264167630401950760049358369609759609707942804873248295565863898964203472815429513249929889577850694298334639925870944106828793610770160630962457052366853015081438396763178882131479608762057682829762580603295789129938095180882659365667492208051095372167860040211945085859762220991745724645130313699794423266685342556555484827951291546783647963331414670031567962686027353477968390899173229821762170162171344123720885339172297601849694608007122761529915315284048956730299297337033528393443409902886821307414228087171506546853367016960250518092433514026411202738501688903697921355498680020735086114952978768173601205952915483272356641993027601065823868334973453654424301664109054982534575453482256833645184679805190335342320606800635368365242828921958207276544836378254547196271821077327482767175328372143296877033532176689876061260025919066592085765287044829748780306541514048211734925286604706943728550528511975429028753853680524671320274664878011684176627458261889563902188382195546994610968486113233082059915982587554352158159854633152314703796778544626891268907859549677138336044184373558723314830261912400415604035844419771778727376759663730671910459452648724394731822793422736176882548169987797828013418516323499017913990082772779115190011200753509454952204776963251408528157066012819269046159378416670068402017786506019128507892253894392846042567607887757641538004585493343214954642111639311990452779766526218643278262439929151596494864038350475494799892236359823674632802407958294728134159716052298848319700578445344271897891313586602428371691918057448600129781975866663807071492658129034535442185544808265655562569982828070242625795292679610652482280087825333609038085864359455909218863204982903224258239507237813152104976649271596863209965849912999885242763008056030362991240935096527125371145293864995597546527929456171123998106122218459924473481336102725316339282572568427952567076653966517142279335686917879545996805821054527186717231269137424449201367739297201434283009525849536220254601737361166412541988579014214511156597432887509957974883076409596142653618114151635297927160230558280684023286791708671957090590261587780039913091228386884379699858444833171952942743671565330422499127131439380444311651918573534656615031237850436502656535104915581035537432355731163663582997616430510607492346181065736977111080163330352799056023517747520895984169117609028181029101857432702888928003023365014042588421309727230978118931818654220948635063445897182440354258448084310344719715764885084492774686368374330162890334472302823755978322128032044306570097852653690606636164323311475660012841190720356535751408047452242235804896354367691483436189850620934519924518919406308057309361190997236947915819944787353066134612571158459391281268695765118521016338190704327960949266019979906829523077047517829855232224056686878863946831546513222336068162408076945459461509264264667170305931231762302665810863426198064764424826417712040382933100764194239162114966140871518416272733241060521245034694567535254202984870357669696067239164575589393639835491387159016203044640454383042710914062027443968030165792130889887150595985533152649736839327882869825272342941693167891924232975088566487766372213188230926471242050505799679242802156028963497802348398207615711041910737153889276340936788287795543847973313070825697401746739505293562123755976468184913677261103723797339953270442401081567361978741575544876772778518631553323356821648042621080263706372398013834272449230048619497418649292347215232876444337728131746189326516294162144879735295349380402835224652356885110792507673061937864781315783278645241650236681598804436026956724277902420006895402834734766895246030073331574544688945861145262815813924526990923133581805429907111695359390211507028895689499201608987481477401870368589445400688188577739276448264511155224563094627872596208245091061322109982834643336293485836661426602399334912344458837511174061079202399767181763440535976454443277208268497165407451776607247436424745343467517879420596010871336858170815703999103885994690663510328770082229237866663255956855325295465789142012305732541428300496282484540700104143080477596774576622004990551255655484881139208218728818980636486373993983898601126751693390722617944529876498122836168654638817361793585236148622127191338036937882404193469307571859892342017659380510546203698369203717139962063745886325317624684052884288589163510044471477696246480873851142126970116624462075023626462185237039353490433131013769325809257976060653361025094344699881752400552658792482720569645901518214643293422582883471572613588200544771104164224433124590401110119094446888629670639876284747615168900004198171969727658425539429130887087685277144531841212477628988611088955642184950818545473768175079091105183455173722295655017694103468084133805357073863486896859001526299021827980583716013450542826880598715801972198189570412509700572761564719720175924270172672601258548540082560007415279040691844280627716721539188730712719272710878071248966555426399535196538057085587288754856749862976355791308780929817448244040064125910578742541464692892947271305850597682123812552489320648161855405650589210684261293092402609519189913647066907767825985894685904870553764925222580510013465806239672770303130962973624965603614091410223091883814883387468164255913170723631790730446937389699731451575071214137462567622290008595163777301004964905766961971285379115896955946145490315280364503875856805919537976337513580628799818744601070451591146803768751151693441238835327590775318718842945155096639394830729121238420807104307737192456803669323223423136398484656870219637320045530007720927016910975171341776347928887356593247085776620797375406994995088097848829115100133377327690231626893762304283280132767146309042024676004973835556013396456798548333955346138297277980642153242614036899033479910114989165669396520509926278579090058005662241738848591378354793336126587499331257525046767079787098041808164579699541243095558432619527937112106673579932594915414823142939635755165277862919993948065624678181355244751203916317309538736016439347905914603755865676051229526424228210813132042608168441932698294188642994287058984400159513251494226791756978837787232584592290404073135065396397008126170528967178624960530245949790150897726215529163212369510160566483730121202837004027830495758489528331313568971029035910744415944914861784984722598448307148719726928692243150279179704273085138351207385488169096566520426378041035076132322065063081675293901550869750958045521588084672047772460222672662945316784308417476039372169165539871348499593486904612875764626180472987765011746858199471863069105818186984754727533429474356633905992197493197547617346310440350322782592105142640091273725269115028542636851862059209440194129665554548522835834837783706958859039850981907079640965916277908702285603776430351381310350190660215123905263399967709347809374306089774216062734357788537577197193649368816765263011466669837628349227070321912142817221262787264770809423359488161708354307494605256113516295713578405838506798737306091654744200941976789633272368598877011416214019635565284459181305770206818588027090147226968050113824152708817098677749202454260119177470353440844240266483421108246227316851826324883325718936820182165029543136296366239961750985163641491594548946751964381125119233254396574725967603536235059018693025755088449390396517734603920552488873508012711833650511559103827132527818044909809116288927170286990572840417312943298996717233856636468658265798832476733863931575095962693563111436035014927344440381952877486926473453656882093510149905244974917586962035305986282139533743406976363330991017602526397103034753022815897868595387068414758315862552552729707410251866298554322216414034014710866084197914955362215057401210678390908679610754482095059452578505002317230329201129180350002084951517563666677396306823093984016247865654808626347369472880012465998744777102017581947783119753779833115731198557355576825004937877504453165373482953663952762782163344267000526931146033209455168173707478022348045553586625951900529317847136356336266192760758982289464031235763509343753079908490746275213397527745679723641109217539314162937086556660643465168644299107287431370350611058501914243759463930642451092483819663827290208208578973369365289571220219347499883309001138575466364040314047274687332592191284530466089257629135861025118854738483969045768520623529693935508374925422878817556034506355300327036154306822055203601946585965711249253151570052974812063995541689464692588971524240751706005405323713416005525994658703028541324346984099053841103103293308979822145325184785624512888523143373632960093131812599333879323791441878100072707724786736839579638557188590745050198542956963407098136062929113554831969225536668578902780961962503001360060005748903332759688808761550991210953621521580154488795723068250531853390257443392067991809125710788246237699364833810309910135456574451947513105070014082679760757367285020616775130173236866434584647016090279595184228394246150215298274641907851144630718176003918699245164181121295286651705589168683291011629553831618881625990601143189779488989711451031802093321018819447159647558085057001698356715979919869481254095514601278517386992482030830470373433993130109030747821080865795677739066458830048511857020986185070836019914506548507064320757311474821658359263044151632308195156133416372792454553093974815501087669252701399222831343445015916948320001417377645016531319902059776959390180315707635520651702145817288156154648318999834037810734740911746416338072591971191374681785492732173310895399719237021607257132162370831154171158506965657897556617778154775128421183340732978347627996490836056659838247211332371108531197825542583261297544279898663454797618438966605455885483557351324591429789465377067182610520120846251332383475511576824248362612390977725036337564848286086984765210077009442641591119821864269083785445559963882206727559182932138154959847130045586040520472159303833655078011097908005344549894075296433003987657616070584919507132672975822588798358988005152308502235757723100172193104264849709896664247372029750886440273068013348035402030977764670478568917957212324457413084239429591985610748380227752886191798703369230181548488384863762695662108916495841139408474769038450239598237197606745962953700731699016543719456313608992831646562250865352861214390850162873835754906997643960416655683787778761078688164249885771157053580368896479127301095690720779216727771393820596446987598648714924661361630509132891723202910882978796575356078347492104302800824040077905320178117331069893080397541073309505776282622576585052965572290524112902549148491116284924780008488779203143036902923444917176652001506000709310309359114258931296305755205518485996382111082885690473241043062020830269311240500293761896459955131774745814410786458883017219266257039844257952614330001638306980444750219690347608187416245866167855931554889198050443079320647651384706088214698345949666862041374031821177102673080285409029351517989247325469291303503000463638634134075484255324902929195524846026703675844109464733846896701442011431784443025885835999330027297516826847686929568443143222344421110113530538694537678220743450549442815601656259983828005379190815508939643894316558345167516842505145809415065632649539327317137122084630889287519929159604649902699467962312527918828665639217399252461520180246326703759173101826739921940090160646848121214137317187932240602763275066064168736162226302043319619691542134297109561644688783063939657731776704664590786374382757811333635078502911782458887220565012982068235916981633970701668615648549965880434774436598676438211012739986524724033385526067603317892553514324134366414132363999521123252821784962559468845157939568112925349449511120390597029247171419087081840195596346988817702992598435836818952631520538435706603009328648674556861579754034680671738385282801266814299602102579212119622276913783156898830889156247835814141796935026667862352586386390783938468882606163144144248068009877687920936344408487416496368925397750530001082071441443183919674820543027290893063205788526506515836978658549595565344594913458744434914307529162214095016057849172757821639337466953643064978888093800944104660270720498849174243720481349863995853521321998221565600517150974357162081011613344245800756957637973141346309010517216996938068011170928914474238985620394292163966028850207706157995078174201174847288557528776326679446161439144469950565782999535492338902047282357792264673532563286104254338307084761784324763030214727981402075166093078510430899994848161164658507152534430649208239101237955609837023080383899714778779206692476559471099653442721807120370664932646137463875266736350170524468207643025046679147118512737159001902080745107456436985173300557598095019739498013099490759278262471839998859569130582846107209675743767668661967012255698316791265373760068259890205159886354066918215254496808352350982543909887384767644020766437951209018187461702129489889432186200965686006722927103552936372707167666915777039967521769695606625212738404085209295043966575052979126691893598695699959884024675739650283162910231589433117998124846371309993601859554675094853632978938346099589048715048937795533765173778900630984281544897328138910306940735351976053589861980829207610737058045951378565109422971283931224274027370411853277142736806557362152478891274600886672015745692021096606985066384066803490007843177659150524911674426057055191700849268693558822664605500661353737115989727623600653914991661660151242915640592606579503110572320647649042030260828606755461180046178240731214782904345921789479364924270893237442830914900733909783963405520240610405527788358357588370287585630174603723749994613289927313249120200712269460243527017150873147757831233594429047398891941345462570505778755989023571417216366645650576476777639380503460454665456892276358482852725289791732458551519566518340945262227371276129240529899253574606641306161814612136898296846703402699650666964759465221961925344058585950639810442334291703163610350460623298110846872128393156092371796463450130337209858115251463421151275311294596007137993209446036406993400611621172767391829129534180627331131077639206464889696626009679850008007789158463316906077883167876338433700695897043501384855543014893320522540914693485514772037431041472376560144241973934548132313188523902967065499514552441222666478792928671301058284462586916584864768388885646534564476314043155274701417333274341073480937506211605276353145064341048052954306003782439945231807276431106501447797837520904866096936548017053752885209020009637774733067572812543529074274065541873236506809030899026601592469331102182675042914048166898168311099356724848341000739942177772418002432982668121860173551339574084551669889763383773353817261218047716399658698957867442735628015339872459950800176065311573149534426330022868414674126825173110428306718398983073979207085567616816701373363332327965445656854643150453930322186546609679146955826410116372288765595660876303951339714041981843132071960085851809036561289842597442761312071441624079055809586859401846546509342624996562066608286497458725364256965809974126839100317507158254267664123111709478751236479117717274439724427760722978473558727706433503945577176303227252983372186857799958680415888608687780741065106910628728599312845041177904670154260272880335511916092609583605714751099869550168802556491096507765823911369584640342551081146450884836129996140534821529328519941349059024873738177565427373678342960190102466890459941437612412196507340013312690900457487877734019661756929049609282826243130845340560186108508226913248431979370961187148913092043848595441064146470256255678576219030060429142434495653032904311590154299851185040467587889703509809521193899648636789157411884901827761009669628234826932623706307817151528605280780402530029645918701988310929694743861159875745977834776218318288154805220255050436356383159072609121707778579714256005859266542017469305625356358955235912709594023759683301783469728187072608103153593250436038122878988053415767164017584432707448252697615574590890716828851120737060005345787621760216517934507301746821595293376315091741216465096109441503002340389487567967853098359920761737407595700556652000276690287115361611290945349188903259904404813673303200559867436234140631728252019097763544206595230384289406536627863164822442195963949862944387950336668023855445165022067770522469843560153819727549963659747050442357055623558007520753436758128275233836154724098556422569440391840223207798969970009114697300134955455614653257664219910482389374084763803223495680575372433970787545729186582125351887879316197421611800954998369781927710362690456696778223734550477084333481439646781054321336673406022144710579108075957381265572116383557301235344027270485249064004995482360588980371791060459737684047747047954804944318892303748444896903062869584000398441194121430999337799688764046325862336630361352768925953457926354146644311859144151184434256999610001349504367780675071986326439988102796951811899080076818297898083866768228605818841860973924529839471820078119023282961340338967889677290268522123454061156044486384679265157807783786235296194961253896061372730132134329012443960052839827138830529785000125521573507160776320915774284042785098468931404580998571360789743280543389603396255087027835084688540643592827088749768646589983074115146137638251816845684899804535200719153205392855253654750089479985705696564530343208696188448545244225506009763915570261977881849030748150589923036192595153766409861964588036786399642583758302746000586234317492588993346933448884099997713026290233541193268715308286840282424719867063654086258550759580070334382948887944333209055508562501128631587608279251886099272635749186851810401863771825168664685074603959746035466830441726208677672543633561696731035548401925496745500862953654247643972517677706733333766978736902508438011490995689648476077366428604354209886982947163736379505877379127816780974564020641588881072319459608108940874455727667131371714372472340985031758353463721463038933164347377944874174324126082289928931963841232931901586089161662803347001088314336706862947966761587907707150862412584625359029713172306222070581903512909593788407014816418409651951301465670585920872271447602289782445219060300250522825756451105381800930885618090064306774929302198648276135645987192946275463524178680098190435114147563104398181620005171330363190261698557201827289436473937983313841045066843886833405529683540235307858506115035034254662434564899077692193782136032229936766932460959339827196874071774214053642287484412547412274322791850226806868992279711952252210627796597810320787937045091603098602909146684931367814353528897742668467772267913299897473016341812774334252467777576438291320385101787180166797288142169792538655556262858513664281226268217763495947471329217925350471841005358171406370460903962872828082812552698250293037315958604258849039688001242158340154753516094703307569367696837998182699082976525902076531983803095223578252575262835094400288884983980758154286186904537249902364892574578193426071802358998726925626551408168343411420527060301506086963108572232577649364774514067379447985499875729850526628485276614257448562707592235404502252651303620320027070374409495285395488487203112895471965070390058446927107813133751294056906986166787968519892784594683486898007046908212751641410296397608955698234898737101244010462708558240698752142598304142414678947654919510327265219251848650980624384935213316605744386773483475204147718386029437078088400545409212774942277216230797732490314100634231299785654061233200632862024131191003238035103494371493541987041197341224541166186751849667034921902751984718200240101546402301799293671427501368426755899020132619920014955756294686611520700155365840058494395801047634354842256857732924517404420894117550620124363205355306871633588195284304800060567940838961038351169689734578013615637140220214745629803519091884106264198408490289280637472154688683386038648924684726248362484126689591955819627521669984006494616491934473239222449269241117434179886617695888280058489047338178412845330895430508144061177147088580844064327086617375791235270265009543862502069268431779503295815815469934702932500031216857014651473148976008084707722095315795515279540015830172196849326678978125627400886559145894222430300287348010602643349628876772512448075940956680603815844987100388874871826271577079267511972757186467671726955269997186218160460753533243184900179655777834138803336529860190460917513550889894906986915050603523298471169903405583323693374818267153420335979996724695150553168002423647460243144791809457087939488984593482183562202591645888465155762706327988907903999360266589686493752380494516040364203221661544431013232317075695586135537955873134355541690897612129509590071893509153459626040899536025273654292053065686556026306806620368758062168792258116648759375805039892754978426099861452951953835017496087588999809142210644667970672337445658416560292476788601043030852449511936280467702055127262131960197798547817826332496514897598425349149019413421860986496859456881595072747412180717325788386853389413537184891653241267657225894071148587093549301371140084368974816250972382482594863842230943241619230778789331043283625946384469867112667618967676090723007746383559514637058379664192168099218663135785554673732475428709658401298971984050134650050875339743269774452318311623519919887025779417752186099812699925164177240828982643084646411507363380287353150372169781102347155197592467349852341658997966967903403268642992715924576653399799864945327595728782277158807257918181328938664915292614008449279716459417946724666212968985514500683581377561404147007160805335279232471277583543915192077265688303246628265230754920590760767008534786040761424796997801877314748757068729403165618787830257098193215700511928793620820185920504365021877716729455419997224461913224401749090526004148250094170045925980010911422740118499743362592439542535175938488704839209491183980695184432240402126072964946067901635119165815883164043471161625175497357133549141041941639192852400670886835501000171299088866999383919122252464030749126113883111798527978672708894061324258288580424072845359518175578337126417571528804329976880130387873862888921156110595760868144065216001691660560405625855281809174435145042365721980601148797747612733422944438389680210702106351303467839227947720419088466519132437423486566466730883253148753025515739399108043844046480779165797301135874470626326006596300816829491248746882843054276423822422223959796493795753473927329012620865604049062402795116565830189658898755870395120925288988509823693447008642062008600777381020317770308368704949915761144896363324749574451611283557688835362272503332167984854471903661962400085452766762254036533879398477066025970484859379963242390365870144648266314702318510977576068161345601802790890748111239485621830528634059440676021083800938708121839810435268978058410710422606574366921578243956381641565647028679836399638755000646019299329823107066305180987094553769557715892934983666398641045586584198819297339844956268086220994105669093133377492535779582473729604476391910514597931351355732216130617609854128335562231524544395396814022448518141177310030767013652521474065889149073634424979513805777505149687376522449522619329388551798324386346801862003226561851642094337503956603397467953818709960310464865962107324486541087086682094478088373874321709032972252187037132436206548980466447611226853077232140981082412276226480738091447562236081454987554059892711376228074388117525182674391751396299175160370807671885243551119532314111353215286398375009122376169318735930803126838390336996198217702616328997220996759331247636184045559412599025439550323084374135291693676522142488104759278256876269781014738376702140034601381328586443412019635489504046994566599729978850118109088134063933948339917164997002115480557916571962268943894751159903952025994258208685282076807502725311433278881392948671719636244654249371857385274636480894762053229957600284273936204332326005658647115106091373301575965372713660220314921373253161519102402937805329800309960014538422243654554521120854557400179625797580918260270271310045138357079119909939333030822931199573060052256460435591815495265216687874148500173689397076383803075766272793585534837637559154694118234517370950884489299807463508921477090324063893179866045817890151666454774241214858037401422357125278882281449575185265889881404594333466313471523875828548269624490631234071179423840319892683583826555696953482196939377902385731024212076951714060566889277192969181849890384060575493443934911155435032857330795125768167477330386546738193693913957450888146969941836834589117562098608060740029489483566941581482614445021869611616415548060259362321794202249123347410140397886180448618688799782689251120255251836440971157798106106576968942127413505771414866020007294063291167497696656705518240840105809652367186754852001762894440923185348551757442963586442169775700442640422487485124328841616163198799454333624952437088459763598968055226126685730966976370866811417044829424956924052710206313322021832504380621089669547391977971940839580199916013054447325262947728612356030129926816983787450571110016325361001534867438054068905385532690282902381906986788812131633868796300213141138186848255433003643451398058920914770657640856341053856674911198073728408749837936509111988717823296876742831250944014400554357129192728216745915228235121823818399401738318483440972488432977935502970706418369073751643538327482379886829570603751746961590426854704299047973913581097977221086189395438036786543641184798341228688830491595113913738547321667007904554473126757157880743775007193019237985351013891195872301782042118318913610522416868640479272112120541537591847703723207534282208741067335564139914990746893853706237933838858286066746251482190324452867824379687476115902128127878703035417359292220994603643471047918903805883575202074848959102955642332020954530386195536223102932245706697775723038270468210062568591275346908771065964131861547702516216096073655141973457956756096152366610161450962911741554261017260858887190950406231387607555362089130308935004114872474182571532450017318395944633907219747728185248338422171726483131227732908210503720751749753093505950574738344510351400478022567997754619964815711545682443261377865079706370579989198404481673619104298225071595397385479333355783009931177994907338463951284799183012170729831632248734201641825639575023545229444149768934625964592132244747548870471612338145637062633806486543090237683872092761798983172036525768218816089091334959363172518220153322660126168041921267080715184121574757918585848066921305686876752596629440596502241424171799915471488281862161781877089010044438154094520465484574552727825670230928581601883735619058081531743816190222322252806363224112441167522737937479916528910460143415808097370977044585190573916410840080032208653442239160599870132270739608451982021805820505857267066533889613166611987257468463755252950223808196300581301927201099978981871173227239981936869455467894624067068866622722251120145426942270416277357866341456009120741633853033046877591724403806594429546283693606123870860923668162315177555428015516661394122045313870443795432709099373644491741736129570926453982123804122492363379865403139511659590216212643913549616536101901634611494895144851538946862222450941351924753885896304642810985022555011603357034633582320817313687027334549232038389323611754764142012990694358000999468268418166077144799363974923991882285464436911168305414394508026322110276709314063003289482329644228310522959335818955242475380596887321673188019129549421720948832994876905431315405748982424135632278112701579183972756613693998034991845396518039395909404533741372996582664484189254439296864044953499314598195577635373619354206637588890367119966960056704466651763571966992655346603035616050412685111974310607213323589415633732229100851089594120351780266014475291139743851263307338692812666758799668673069047241325446813703384195885098589264563123439364756536081175990452756311806521724704235118729943906080990317402272158210092186680837100052613737534916906162851947761311062807405988572396694903828635098777259000278812609128309261291999585856636570059764409188775966249047782047112498615300156611429857955761008661076587924725624799910262642361377161483654031065707428123613498960128433676102883172960376266739888294982633120016630096603205827758345992549891696484751673326157485356494088177064605365077291286225209355800822649139831789692928233729933626390940848814596636101696384346315163024636227815007140566376320254198329324369175154435210699487659119247710722387000977893268339559579242122358635279368595565748954372022026279002116387722632007354674445293180519069372557542701931424298689085279060065996695421390867678930728286488918688162019935593123226011429772193649911061057445757821374509579083397391995799028304436719066632785759660155952389099481785914778747018140764228102759015457646350313101108296181476124199989930594756546670585093238674375900188482262002179356373434433116667312044463506122945061960839553796772569448800356285236771735747768344692469849107307863840545056231797323916258461927197039586201035236922178756549299207883983064089054379932227833951819229269867305959725130002308844797916072943525745960911627644786164414508781390200041195091348021382592084880809563155836335175589442006270154700396317854104252108677976701709597388144473163181399872828866240696746476009070686677656249214303952420228970669805615953009222551419470795761940758849832616134469721704612652034290696046138476632466151977086696720996515335450175856331701875979481672433412274397618886170945522206293593210558807298681340019908235544204419509873102127886880645930933292192473784939291694575255149390384667051602729520143174575935179601025160423455742268127922234802262821748373572858478770062653859184229324780462808844218944049356294413212399227531950456170016149726284819386526430090790218136634837181313393853286795924082177866069065861420776138674815310238820959241002375877335003215430881572175812354904935575069912104801075860987557494139609964009121578126066082073246252254561075480942801753276422603442041061274080329876655724289572062281137546501633387563511594468417791118165091665876771597230093183139402997156226865018678051086368174313452873673892796440884004227860708165417783740163283763668027552236668945977968968493963916456861475263388072169120390099625567431857879983168693048430853475620030908705078781472721689440491576835598273759652412995551697264116134437425855152672537085935933439858940556369704643362123504755151949103581777923808401022806679815950437167217722087153306195841335743592375545228116430121193832747941793067648485259986492650925137661889400610916182199213931673829644412709878287144209985512523569251563367226822871375425451937782798475214720386587294693267659640841869733062860989323956859996930619638550800725401056756548331297320818548562318185358829772870881471436165318902285651570917285999124146697428352401888830517299341636413985790805219831763734597700671675605705752934351362418407270744073952921680495013305006473665112865344581165881732032073636858825482672845169788924895206599977666336249057825117248486439069180087494052731888691047272855315818963371668220629614189970854132553115533768109996834073902545699968241555304561147033360405415467673703639716170735788240351995475013513306967309710453855566956617939643534857167271978116496327604068365606189905572375145026612269391320779659516847521645772884222329419564754684135324527106745692982318668053507053092384504752190032188889896305584329373574610516332525244104386559292346896456244042164456449571723837605354027752955035801680812156740318580917233401000038214740173561101268289845095844100802517690556164893053518553789907780288524989007804894339392072960089867051191870658348798805392956534402376427813413493782493722624087617584901645344533771613506744383033831982959964364123497810891163896240095046000777318695599605751697418117801622176603344130457818954325499451637962496398407768627432690249972539035468655357112185001869863393322205720219244857594933125489688804583012420211984848873177236106554515007083886387800135773979387859779969685085938551399179627139992011566439715836686031880047389016332801588641209035953705359402979177977969919615812628892033783602804722271913316485015365693964739436422759522662656472262037080597298887751526017382919816563106509878415585467230586693185784236561318842251189301166408640550228101351293689873882364483939454635240718978532836775199930587913070374378492065581621923291270179238254944344922340902469337434368428156443719090955447761558167492324912541276557565864675668122981576040522992206268697580160773095355927202921765549402450989349452997061169477567541673767038165498686449682751594271293735482521894879950606103221151108127484450877782777452514891915543826898602908931413404009680743824790587362915228106068255591611375391879948656819609977584802901720983532164017197980654930454372043631612621487233279963111454871121332693171675306046488484629274735476792946312947765746243287829411254559868934911111327141269404568543162605724238823963220030150960774353864921734537769380249014816566715846235181165866280436380658500834998421144914672503654490846908490032601786324748058631150578187714906496305576263190386514485993396801580362530355785471142274883059677575132090950572426473965828918267327427325952707745782720342758669694001328891536075825417832985008903925804276486185700403450848946107279444550755474533411725306930496204914295065651002469671070823754959318240254010687033623966548187136102173970390029874445762354324977113442771753164342844520602100123427251972436174500843738689057092992333371778454254236576671844456843209812812764102143631034792396858076958425037942191334295562987697277885886190231925464568397919926693158384217897495272602071485784870916252254331967366024455762286704771220294901916270827550631826737435410291653356482494584168274034033568227732686065727003584263781577541988656109611520546713383742077513754175122801456791694146758559170607891876537588976003038213173304723926982673377964999196729038107473474876164428255008698420622539434139533920170085333784431174498310855903307944537479730539129292881204923457354435543030396307767935705661911307707746822397739568549183565914706134905697747618457947043688942756535612193595435478919794629485880083203487230738656269574986400635440153510274642549715635827718497601124948858036417926218970659966054471006620828766278951306388796524561053924281738603434703047125507859125451001817163879174330234354027279195420251081362613598312417862757857111595860815724089560481679890555160387261999431438848160071443397892509819526735413756870881334968725250900269227470404293353887575417321835990889598078878371525887657982212455192412691162313868532862840101288855057914447902956216331467957557181055021403236536151601014640365527452310727951304411631106729232346091104578953012466535709120640638594630791149862064277349452098979468214785544528636130375657766946426244757371955137970441368025947306535491841727709063027776471111339749414932161913009948087417460121245186569658985570999295367301350358272615964570819214665803498938066611805841617339212896586757816494702120596237147558191287232211936286291267239180204738817353370766447505631952458409403844776147122587250197146300637340093023646766240174667482375185183901454510488086648400392084503090355768430723713399854063888399096532032639551814584610392366519302349780025480799363375049522895154329849273247142367369342695374736650334809058344446770254416093320755235204277833649241224748473268757749565608675717883725807889924984160554093082725457148748431808106288274230552618035463997862477175202594593035603681696574006184691280204503507762551762745164737418497346278500437594653632091263207431771157517404695418374201875935479398960894017958596796594831217349783456560321785378482712452207719875061339327969788891650596658204475568925207698129993030703742840362183630708427861265120630949561777411770816532734676387559078945425660216747649462287597766002352254620545344481984487889144394429713504977648015099383050160071316112561858984233293420859049980580398984950199860613108034540725200223463176886181387915712848128464579665124561951824953315958502601407257114710044391383101336275658316326696274136537442204658607840090616495394511193619850261550604812262351313542441584351707193157622821349654355166074557542602418209335169304884820943825173892627728075718641414480488102245325096013612689195958355483869263214286395455493714096557840907532442981480988426443380142137258137759581236579977127080106965914256894406829820613401241189138398142082939355863188683292548080958279087009312031470342569749800522887255928368382201318363743803976695622439495363471597844291182658878134339180827814228455900446179987839421654378371450568434969161953278400203638173446474114575061430467024345884255349590897543360567192066659511967303347949707988259811683241032093910163608726096659972136188854288557947671496297251193600943978471330958457361890354604383848708611764870514691825696931804741260528278361896025137178138552003400163929649556811083880532684204476915204221479272083163986452391767747000842297695421409347511466498751876448881186534889993787339358729183584700741148112607545481911330305265425896347561136451083053117391632435032950240032644147033664860914674025864487170667399938047761207764728812358274323428481376330616080037794342070428666107612773383589698267794476437368615010683559478021438035483698514513173935717031817551072491103012994541803111443344094419780772112166760665660674428430950137328486042424903489679428936358408855155798289141865139488405453847500581326021893084688071860036165858391631944043207201906955203357089992313276653727853665885919189974552376874849365183484154449034737109961191118031078993997306981067280479546901057706595234713625916459690339904122870943172351916106696558701774498774499733908720823189399579230278833704903671443846934007686651656946109011235496641145922991427749675485769999967324107856807518005847194674406690477401536900288310688406528385628717343449458972804852474814753103679838329872632724604870366952492110160313837760535649820590581200117398345778153360256824465980024887034289267308615579235401100878909616718866938666957944015743777304617667565713099322838999256684975558981042771153683078878737554183611177726976225151231232491132505811393892141114950328904562938349796656742824121511346115454321922460062357603897334468927720842900485455393101688687498434661843495049205183845147391843159317467232686114699073628086679812209389884509041692765623500183698220875048443248554667079405406058526425547909031925714603319082660338330356570429331243505295852408176001686189714593558807289985086439433458131523424735054501775777453490589610238181125722127813655498026975047810370519351256866082680192262662618509808063195098214415292265415681643123490644500003313095102914023555677967749146005643597433778884019653595700752887235656356616164913264144849848648956841847183391811591330962785123871059649549533217808307307211000977113096625461226609378430412083088370185554622367052262189859841487602006139329735737493912258423945676851102616524090208529371574110759679049960617794067103323532352387676868567745420202316279077093827744825940024375155432852272266643293231388869311004108634396005289815216088802592101181105561939709759398487236633349586726457990754188980137125578683052274335568231656779210364783263158228722813456198713099442415346393434045738206708933662744898080668640347034976891222118614641321715809267043684320155532390081173913784692634206387866564547064687701036087896397061923750135410863782655454448871314771476225834440765731610953123212925441929379442752585545156345464628528517798166137337595536785722650752237927160292711780179088143140361100619170301840249704419997919019864454966221999936555581366166580482022378139230335895115862905253113120911697449522374622714280447583316623378527366037899144267233048621949086621321934465136259898404448864815446459761866712229266829826441109716847793320073107930547863524207373655730836378427550868755952247376202935721261955224921457010794516644348267109829249877009653318959807439700150509173599498171145257840740056880425730786091724952232886339659281513278804717111319121318862347651698523679919002320072761153829155854618555998681868387367855867420330685330151375455091996009901565578507382189998279362589103418617694611468855705720970926536386675029937172714593027942984141398017021152399132623703175326437644151875814637851841845661007903794977789981465321671367340319341444961954754504274960944051534806171529346852735327744331387147448376653423160818037860715350240042341699551569882256220187182320912941131849514872759318582436846859323813329434057268690974119734279083382645662029583020009048725267719587269490200689340568503062595716470018262157549356561510237931602151849142866255870912763357615347499036513152136255677803881105664066423133024488609264038460348524862105107854340656650704038406922866574892101025305925016411018668724255142507069620110469039666288289928100987872371710600827643761760505629584977132205339300029912812544017475947246142829415465531263248869086571423402785035672319163125536221372597157931139327950543740032631989298092527528339644223250633056127814702841240492203743603251994498003636379403283093982005604480958410531954336513356744993271215055405212309929357366057166696532433574091284855621093020273541156093074830503921269436296183453983642938609836988208995512101861646895197556431859539886767950634188155543425598801120909689391532008723425772062820813788109018586414814770650408617002392323499721279464582917399726815417327257274640924160469296509215850441159338863376909918365343969665201001510462586353146695777572200901738792984106145420377262442789220569076224053290949195337637246197464927147655839825073609767931401780550659574977444298078125574183478588171931552442444694670184053786195441469360392681640138718793659101170036478177868952446628347138700015511129999803760682803349079644322326831279497664244002753149285434309370427540969258956828373656053907167078211467268226994097378845059358832695385426415473017195719498302505321203860470899488141430167229844788803220938992139244915498371059858419761834862559564799658233863145273671525882347371619584584884433717888931159629700312963459624863343766205420700686298374675277596141051170016812524108584826408704708238134271620929877271034863376134165325157699578723132781917205383264497884129653930103261670064911058176754725909268094022454657133850176062356291799202885909407887583263424211098206398141937377850584073153747967435921291885535496143844329140916445803406011424283188829346491252345967589879279678562762080140539820631091516786804142399588418772333384916447336940781567668768331438938740193711527956643894102368133989724945299987233536085940329173873127647808605037188191453391886920377840371662651769017061461718305301467698248889494753877585486224913314629518091150925273648855913948377256849893552651313933902643264192246751532940141722419854779531231659908440978664418210178747496132551608805326107522195439064432531345060778049164704599635667092448564479369563276388721944212599992860468252577103659589473545325554461813708945837795549692378166829808465718174654296108284091786184274014115862601832984362885406405080426657064737234314688340974555553852282876216745540210472678639132201198577082287893246229715385750317792779954929966340437218830469221942055964851083466832637201193030931214997655462509842240209448269361660560593977078724031229475626346435306594657873465672969558573198137022472433636979056169838300187332189254331646219819278528670190827846544503759239424396793633719292651468968130996126826095115119117453946962574550768815201615744122089341882637452058111187708209100074111556612102883235893013585069328013069453340127470274649145366006071859675807455357493172079604315302172673392141953396350276136668959756620251470299132442946464429222842588231571246395828403934700244325598576029197173374474940814722727196460748867268877387714899089651643604515047988791405265762349134155732378764364494415734690394537756363669183011324896361732734445353468271285729593794722456624856793305804471791890551758139575842012123990821685113500199668329671003553363059962114481222444205343589377297924574990362106752452474843045872894377686309546345430339670854982791944572181805435517144425742768875616681454264359056844919178724564994152850086981637795774192169043930266259389510966680660946815133988239965084504823013350395516924315132513634246606966524461055732097243906542632898487786730118620624187231362126912899722908529243526869882935912138439321735329385668773787754763571190652989874511796398979417653731662199806070974925812300663405850681349868421962823933600968013294224511528404324337760284917495678673875435147259147549642936887122745165895975355741337478194058496429979765745386934741607815411486350249641952331048274800265862043118828497000398392213583253472830605325986575035446805195034456750741069070058085956466414628891593783306464798196385229351706526046934669227856361821937520202549492259274081139685960984457352450118104004676421912470466876920518366016815310812598683642468940000052900427223501518274687577218203278059264905858251559251063163916773419006689043724979650290995519203407163804353286472403377065829535802504161456342190237382024938146576718384432166665277282896312663451533750862766181704478224768712955535609983402396863832378997423232791782613916014634633988961202095764230844145791001850621509226633317104450538527652137262045726769152039132869198257491826856466085375667537426585119759631563195156346835848824645350928940584544184212633454836385698259082391671577634649461056755407065142670500086863542907321973654586248029219652211222361557005157040679502124368827951651167429937001566149521506959337435044521861388367335741237880319041932688177258509949773269174234432751105626691683478931774288755786729832109317776784029651926479274542038815350724853593047929797363178184778456087421235547931887738449710587956066634904780000984373320113956673961767449878546702480910739887887419688718119506586443350899199766482199138446566711079305915920356775485352403077254540670875949698887529496999823017137192154540219100686668024137651315151975764174036420244355880986004385633732624170570097332687047541002398044167620114145924761984820162092485688276469648963457308415725348387006899859022780546768634752633311309011672078676501825019847945350815115191395502379002830861192149056998215615773601516518338107627011659730642185930254020448250316595225056921667481774514338521131208234068454366381118959321262430004911422489193194481186822827027175484089693447137296155167744233750515462860057432384624416599208568763747303380368234923153658218804953390550442283970894229421474814897249872158783851760940370626609431474592892297638388582344458037000754114700425205189269617482503460845242115146872491195821652371439024957537057973704637234899008052903307928470586737802820571583348790052126124984417158658025036173576919235575084037559567075681172847064327173706755787871517606898371826235531957082008210134033111921999076807663194642177136860478789875250267868045710419459679044052694700496419557286540998155216008231191305841054890628312906129364187474823083501122353098846919260577053334799068183997642619552175826610399679085655512236223850683102887684994005293956052109843806917371512660627916091066513926688022450558271812417956738723849074375518162308854571339027563501110416772457280189920966969332238547209485049385512172879695046929544807008692040195949531540116598789082685967282239358653098692283362935819921546069084345526124094902227262344890074722549840408649410505652645819803074441567755771665285961588896013362007729650263480517768521802669700684623423595932825503413445172424220558278629136386856884764888923161238141241954378944371021473270469244191340947227084159511380682153759087459346729555663855224726497287363034308425138080946501406894125421756117948386322107927602969440141361763484256734452577917388597429509208999450675667965832544607949171414627283924326726102439469503219249892801032398235277244003771122057285001924749001301358867144180953751479691123146231977759409054019291611365189924159791175892783092166581652561765568064462955774845505522748371390977696374957058435946843761735140274952857584753535382738354623270065755966183677853717065183495266089687066864500149005066000454560533915238978021273589168443150370816364143243232863206537717462142047805069713101386583423276565217113458732287340639363514528993566571967594770108201425489196845525745346322947727007316749421484053383465894759036098588421230958685952745740723425100058811624493892301336406241132158450329032672765513618428704059408373860791560158376707298009891610105286987469110080458010445084333249785768023846559499402136332131648506457898161014342659299144512743019128803501604250514579624710489447724140703194042685569452988611395056061063053065039944589921960427308013747107836636653762820321636051416191155941843635596997756053387016982535206097248526930745645908691113770215775758617222014202425041331924638506859506732627814671387742409682123969372908949135111693751931989989079883900686589056088948238003258511017722855150293299202154175695519114725754078976679783455118028946442107907289814432822075980513219165372049988314477648068570479176722334811215718781633848838542357440495334482232947047147119670835811776312570419644403518173127362559069407903870090717983074439081695044209439598854747766596804135980422274065900171736200318633192855391844367749060417599174140658254267443960382967468075515290698297173455916961215901962037186928514298401300482497464708213061967482005321459760631176642893821689185271626311364533779435069215150474584906099545638308596967709270471556903059884027143802649335524665196026954450082566704434785068140523197405561307654449677935621753668018765100495754327529575137553967305948173811922821326880278228121951705368680910897956563430791371342361968679236941265353679182597864764275685707554897565057815959180571092363359525822835420063293334149185808294670696530132853697455481151721511816227889984727520682912271221693558376126356368353905068353056994342260306772132636884948150529304885460726113745232201562207478639779106463911902551490156751194594067353686176953799560045606097050007349823051112831800943882885364304871631536488853032491683611456607434110352733269562999654384805331487970583654882467494592069164331189205234414307064858299854312540669517155683383307578278643187590194938127868129042560460582522666465394187662893064597904911116980079241242941092110981667437329730131721055557295092540624362368470243597547193483425062836736111563881668219664089102144486435973652131577282605649113122245799898871194346868029895958771671054484523091551027843975633717567851021070300896399770515371235296325822547799238618977000137727785051441184674552575679788850477748177270237908313969529380272826501175272013134464041528348489454956896350909854873956894104510500203637776015398920480378737126670358155751625811078651678557015090765263231391375398301050113708406360515522286769715532074712387464621945485412790657587381531009526971022890973340745716057628073883522294934723682155974211125794567132785019165414015597337938401188363571320503966969175677458197160349952527750716219243840101794927965133830492745850757365298262331707718772424552686575971002048912767065050484487138149927596246577736911256535653398845406955303817100088174406922932466008054187267722504233924272505918775690543196600696282177812431157203293747316747965303943119841901896948815874339737759922496375814658114358229844937948298409479127804513681113457375895242861355199185156381538243634748165003092795561481037290044824503201425008418255301902143845224162004260843730047484838684054019652846426130626481683497078116238702175315074599178556591162802195015376582039537207962494300727345150792002497429369578043529459411299975129356599973146937645513767941677385260869752097835588145234229899121406693222881817894902984719653925829649804000485939713806131820165681081616814189512705374787220892339170616341422916260375103295388783632008798028095242649030517140691807746300231380611714479041821930926444250983121088240554781421403347701694784209922249817685155135697997731951631258879921510940385290399484221971964916572769584874911454952291752130227919544831911207117653528905387999231317814445431299221012272070046962627658160303676902188751076066123564558002299597707885408003359192567035470784203136741420454142714822024165549813046634878212643024173332112492181147871576746136079568850726777739811063752769940782440508461459953648399569448697247000996989737221525938658495713790275420642898598132608456383323351210620921392018839773240734946955820731640475362604200725032203009398531493160676029339456745879834929291915522781148853393766932298827826093212620933866743394907272697658402307344200681508460785083861877176958966620745722755538803721980099995063650484195305851015384847731000081105906386748430703549520852445097225384916165107726365788236432837895795372080602279979138590786345619154168481488059490480293198498876314486825806807807147157275738086140694142658488827093161898630473492430162575148987411053438055562777324449637228081704502441365097297644355563238460978014493941598631005789900822339315196498655421993571125928007941263915412691121380423449474221442957007105479946410923187317933334828142052724756171899779795731752728974157150519466135304593307461022363535436611992081775930203015380517950883326347347188653983484919445822510322580173647439942592889928329129095492466483526455855863894087112704338736113168295313097697612570135521722797128133359829777753479763299922401261786769511730742640022281284703206014486103693476155796392594302948959555778518176041703566076039408388206316685625034630626861655305407472041596908501783492464187961719113435124030456121129125323658790483354185369678412141647046958131072064258390970292525611188598542922671229775500589131356539585371481968259508132469222575296469105746046350291997741721007771286686825589172849094424918758879547824526737157091915199286123327185026739357507947119043872651981099710149954674504112450886341593020854547768044581424403743947291713011516832227671400403472753252800658004274815089258662550979705456795633883380615520026960761746694592870465141081733573745447238954689968300637010083992214215291798347155395751933836176284224689277043898178352928983736752617294403220106999988182461890668097042692608288247877175776937091749274219770206535180927498621900008371058518948301581353740985932840056565446021416417488697186270105256603097412166784412526537528110824859249508385605068312069775084059493964134844691942271331535492632407779083657921647754011891897475320959171670478396388240051720634501853081369196690109376138442339602345243757029621125220542574937002570534727867473861628786491872763050973513076632510084190113726229404015289643489955210794046122378821551279513631854244529360851574768153460578510107762433449144491756236637367835455123764041988184712887275363861589712990002105620460056406773922302837250630524472822445021694782859658227796376371399512472514855728502055746093657265058507004238324352058367159610355335435972849693107443056367649103591623098226087791808026802460031868706154384818125104821914931844122007852196230364868323440228675486330146164846228835187705898851690635189528270225041198117946136782451532438814898732873532476943903545624971129243617648093369478811651395234696310835427125072616406839607280235228004200422839530613358741622071689705969482206902005998287835226914964922517150792027289693148225865881380327095855832154454381567181198251282120687867883516063448265067346817515298473852298022786295456766459362175475416938405646445890938704571755257495113603670111065771488959382263173914847292693823081212022721033179705891340970378317329875385911411078440850480173812749553835076117663762831238032538947616980253459974436833995705464333738372952474182580539868671733779373487817310554855536250826794294707724902771726502444020433483314779393184715236358882119469228143198306577007519587196262970971197636609063778268622473415261725494148872882475825383722034176986754338175843861792265376847506075916171255173640220991082687424670344514833179587609097525727509209806178140104514967412012563533641294552733936417252207729772297726585583864629263718219818246720146628061427802058790173124712548802024431925403829590116282287791008021389761625673898441172892568732743978964266603768702203321937262744960027020298256542496255971583490577620410816612252408888450146797640143746558917787284878214352959421140436675549785275403997138946597001716236583956689507593005666351156329842822558611645168931065106538931286212336564558368330029621128769442398118193515856316622342362840997739522656673868608095943897054967495202035324608526725551144469905464888518764493284381574961728722244714841035582978663038376691201124127985293575030199080817467521324019907642775441845163845044924651945048038635008531448142911205567107195497726422882764039943621392459177644372813845503620480054536425241339198274930396498392576874553520838645312252967916243585545233562909539322087222337086782208225625822197722433883852929787498059275756437961946529636722490850625570963792889878691208139619018889362944452889058343718586642664827497213808327122406458263217840744510143711172789624933394838809635626611099770247007897535031482329698049885752552869267104146187774341381513576455759402870253127797793297294970360858769354694367278626497562105464670189535675339711140013300977345108416677360493502309048878839750559498484238735785173538920472648943467573060181138342409045909074982024400712456571821552571429115269665042408640188046376230145394693319768789217205169571220987841173164070026898640576738975271465998055473260165370951040318028402618633609733617385514531517769493505157080455273881828229055120957647312187901598815935952412553908923658992349015469628919555876158618500849172712517977381839019674512757302085280923529160627300989743976745192262739495448907280468900392608542313053659961919330281015405922881776069143416815582157414761678422861762961530935936518563524732241103566371485930619207836006997365949431333271241465592973628297286017630231505792226955172368095471595622173555757071991505362097227542771196382036008147721149125263102533830124911627462902018917556909586378380919801751382831352999106382339765151523362171016037203682417821292669371751210653296199509801561203646141638888565629951341961164218567881005575737400992721317521735586264578661605994249960296540533334625287771977010186225411502554360390894536259564068885840606690935929710972547964683776736503748430445774322029210198783045701864027442642228589613034916633622830437261751338561183017519475401767107216015485838232458364140286809573705567934303189650025206018955425235699358804419025950273896038579979878292088634796105407775118357576771490741838197162723106529985176809119381925601340226168386288292382987138385700485529062152650855774586242637400736993106515434012184443910100909841757327684084864583112223627023415713069272597877544338257008781689772542990708959681696141947024228396131547480438958639668553268413589753194898730507424902091665713953372758319380317284241568870696536787419330838297868120256253736745826394033035211269283688369059119837524091251763114476422867314327939496009828901501902533438590753681500979017200911283748584797199816697599651014923901606959527564953619427262338138614791640360097246755127851147976614185183682841088630074714310693122162437192261881526570231957912035630201051148640709028952333142586862916104046204869520579894009972447370730461835197863842736457692675161075666830999508870224115651088875715815333439275827340118716729020555605290790879518904463944232335613959010284799583770927577569976057420464834979031658529431263733502122883948357421068365176265859974826027975494381611296951288847641889354975800482312685684889120709371331873190355467812616345297516877776714545348000854811229603704450404701806776645980641025517686226554500952034523588381692310462818751227848409897718031717612777223200301953784202052694393387387069805468376942661039080175666917656038473889488453422898984233098226271163442704054325098267679426660869872350926288362772616854334628402114455908978031344294676979436440173166213577099214992695372389379458371926049993214555591800605825323864952551561222068997661149175744135136399923915683662392166583632973627637483575956689935915107939738495241192433016929952859704901424935186226253471852879136277979162439864024292924391179236073883272633254749170066285247555473269899422453005788018799898897826404802521251581172199076427231987762615844816830633185520778392688869651625259077661834677999228388958525040945725528687657225582602035575640486017225081722546186821803013239267658754796186658502350193714773384426510598427773960969210698502749883535830336465067113737854045542558966960485635022214015953343612447279953667833973795808690004461156210109398889954816201341897915322657511703571855902166100498224284319598032405455579096073002591634077176625180341131423513793819542927714145423379385630399028651039725562769069423282106030320428893305957640006604228636031680325329753930655671399252156513239565384364482807293810284812706509436680020106040889952762969337919073774036141140038444535240791876530734320469393820370926919302904007471697421363296370002888540545875223027119138717712359650572171711859968718002802276996343242880215847174896721645135920733798395645208146460905294223210955063561323301435409097097812180547291460924882013402293913518428877378939676968538995421351254797299288215333907433381490980201329449776215321353347349122527405151310288886823289953717939722858954062795401991739017710167988791637478386284645031467496737055114821510098321391282957167134108906598630183875079866215322164558240942508322345835325013251659321724651313446068228678295356647643548681148790079492080707351835630601106561883131535964154255337002412480133394174869701924359763333175255169825076127518904232328212475712670946987380810743251521667835250287499733129560851875047175783523158858886005385671731762128384133195112744901156760075981191912523380244823809599343993040253124661767408328607485745913364773124732596942517289227358680959854057964068783937090940113356764394764833717977003236190681066134311493710341169582097845684719460438479839509164440605482303269218571071580105726128934338383879985055373052068769724990685963175166279153052361622314137571689703519974499774151065166681332059869455102482326477758543744578982855278651918962625378722547582415797571457364334104427520608687855075999961858426840978112409910438115631813038795973711206269650225014989307492474654436048246101545175026210687834185118079973391526148482198883869564641510818909894939269641180014045763607441989253130205460631477805164619881960783614903668128743070731196432242271057382119094490706894602039925533606192499415401950404930096541874004332851505299785116000590599800413886835114832979676585477230112740918200008675393547216939627265808596163215214712068546521197126822794613491989763865393959144813596545836113783330494706377581728046299302829886790793255603166740797675066536496787735748842920968329009280092212565459505022874759806903369054386094380003869391234643120886801544844254381783741470133060422640161876356072380772982869867207193775041481633751068478066473367030410492791820637664833693890069313072924031736350032258237408718008903740578991895843910119723461437324339489169257502649151511086599184922221861932008550093736802064501829200777849737894650630775287432495433734930178392926408315732893126690844740671174551628860982503413074691433474366640233134007002827329783003034862771923302668830435601248145396599929597494487774300192285608915161522370400880211472923902775556826905939750452344711873359384278133179385365324664046709583826030059168372740989745900642234527121451809778090187840894023412199424937376071499674124486313580622164880318026901965451001524034280416596905043206470749187928933926095509692345292357218012955194458081971633143543317120312126349109639737214566098788357442744675917937929604747196170816567879304050322860041909008070744908183372537620131084493542771294049210086498829929291172103396265905907447335774278919182610477547316487533489823895375350022910802417892877777486165608909219668099649080297831620546096040378952024037057483225938300170474554552602055183110348554213299759976123142215818249363565045331943341317027696339145778992267813744160935557472706460478664304707363060940787562938410846582755850982033138184765100401132111931023280719007348834090929085566333576653604452717132694519250477316933436424996101678706138524135373536690295570341004002706778406910380641162752863657938720714306378454543251477565124585052295400329894332358482345008952589173954147642675039959797627106566539945192433315579606580209994424233151425388374422577215591398601482745560793043385365933010153101066709453532692621482126373507247875529419049995833693142523934250825562734867835427534412919745199298501766113611233749585668787457585566155658464650127409031862126011474041082598709014842274892496847589018656522123973246040896461856171436968844647509681676072003800744157962795722212701178683438148309922603988616740218130028989142819945311846650714882810512939980228072627461520424913256136531290324148702440405619393082271792698986801637365030719279014915229794512433056841930316046614464344639545231211562208447834698788542784805189349077099624850669847705919074162461560631190219809811427853368833616846677444198589850400226225614089198608382160356738292675340289448847370001442504195485036719444346909348251373341977240473880353330971520205240609032037251513157587085906460342939301463891457006738934521317078788905007617658575851026329597705949614756456299567320984709656465945732683664916501142849853557121400554258623282980674352846320241987060169953537155516560338380401261141575254962745097836106891012419122351602995640822843961255501516109018509906967449010078265025220015421752797126583578925690675968720530006164092819081545288712134478492469738372183459450174639827378918951055044287155005520477933173144589002026334621601723156299149520139514041753732541257711125441116864754125828592043577112458052819168543992873854573539631133145444312852581646695248830294946246556486350367052603659472775083710625250970340843181800644602858095266907222571332894793330030846862615431374004376713590804694852209094733974956831668540462916504564813117316690341067524866555666068771878516963924671795925620668780955792630294601258375445725068788483026574135270443457419817989400087269125083564838193111612832741116801022880341135112521066570496223906531465753638684870731520899599288133490988625980977500570659720362819951859649151540579404197409903507555070402467260781668473505353875447582098217681743007813271656795421185799636855181235906410789801114833973650355722482670204052177717621496690558009868161926553328610726808261672235530779738443429579392394821014779259178108427948482845977357409133352358106833291465572281226922401246435602440150827140164876452929521225131395009311248277026988922039684327123961242355295296362696681054968642036912996815311060137707114329895964019758980157303273457070626949898571052529005768294412608228883387430551539008290891121539086445128566236231260348192315389893128537006214578385766475235894579795733156401834974482537765940570032819941352231913926751344212214620818269195944424131615710395955196618161510022016582476919997719544828570604052141217289053031851956109779772190769429225611676809458502948359429522024027518011111007476952385186825610309955396543457982332579608313095852249174722212842462717401153958630496697272259572808340300244165885877320010560350432930812679264467211156989796572494415066575354931769395215205743358275669740920863104759908154050971019697799309611805190451358241073854833314202308431657779755589356548965282042411851324303387420212991981703461771750104963501600599359992038254133490887079823122345143930025537354189226402204290275388233865917571051795639382277912966470774306272932723973755348102522485440040967071857489040677662768015106028696472306316390144807533287112803848225428941165424308545040985133668222108607121747229766406384456652197581384575448479391915026482085683334725865258857690168474196840049883945374016855502789747959687260274275318622622212289048258885092600929631851014844599931490914033557307573613312057311196035704627581341469537261331388930802750013916059594750596275283878060120007633880090334549072780572181902965493153920218487395221120180488469918116718219808937326476425607828953836560824552220440661912422818576254629312639116367414881726824495235822636123841058170504775391732229273596726008579574928616882963407948906758098634774317131129633262229785234941230978766732441453426765121710088905759480116072468236411471515873102292202936510100596304823674677432375244351165227192130251226974483141955830087031190271741657727325753579422326951304807478134918625105638325420384946854929486329579522971433240231142193499087263674728694258622850164197415262344520139971264327790203085353206103344733092626773735504737591841250317734160399902264790908434593137138887756045106862966492639802065694681891079213789774033620825583652518302152313477985741579950995743853605864789931618129180185896890516423988512570825367770894685876960864989727139113126064741778272823161182426365942832127679436836670523241923613857384605578940082345534793132587112616420932880391314177885276927534594576145717165342144312570451417793547988434398106777447046360562536458934585334995620192735428089105394255110996948601430449916102910959957833573878122111350085969199296972263387762344226131308477421436521526801566043596725025526965404403462938420128839192979978234438628368183167951573031521731487055951992626064721264282447763224612287664818804892466086933507135133051159989450651187634323248715881017060308752411834192885727667263836523225027373392731429303570345974319221231905407195751618642542104904351638931255423145582860188269406496778597284201935208105600222172434198455507788902551802957946614763849606400144218909741430668107101409427215672866527182297232285321120596710471863861395516206802901295039093809867691732083411266505358464636746699424928289907953156146269161472494652378233176999194947437711780104340339326142162076349299137984139821275956264109833221679541099181590158524231269160022929535621187649551031396924570523871019999235990685812095438594578088716299076939401216136755377267465530793743920515012469070232493290497326913336769057316818409030919787601073838724790466537209536184483621171565597962738698974266610004860300403447011136800828951049523658090399095406607679145059051692157511440974893359384559912572288292561804158692680330497765812116016529638626962013235101070037372211411009267140857037252765777954236322466570558120741439957338552847248328832802789283070173857249562648960378513587023363293957417284704654516911710621265622987783144881396279179666607540982851155690516857000226063140750449111553890266328972611230340074456705154779472606612963323602981432558544063999160164292513405538815473910540641878678903994010162617901326398348271932333332852712309401281299266273053319091324871938416316585624601820198378948240846339090865232159505009608868964861023661441276011789699359937267976073049460090044181675408226519410084688102399977230425741941480470737140988556047166205645988254317516017385654423767202234995337134762372445448562136005513763436733481085626728429654318853389831523233216858678003051533589000508778741952528700938414881586409830065383804743270477808699533412143919325916843899810300203344331989724126291669113333214370096263060069448487579536266521204611561540779273493942922805170984472402066014785459025267198454969425044021427505472780486147043657635061815110735958106507762109195649043906384693547380376663827517305585021737313104452819562893888085409310889561863224800209450388523248637051710574969427680052880495434109033734954383843723666784776233509512073390534196522725581926971820448625943811301473604787501174511081003193212763048193140320366148611915014312119995523815043630352835407485431051565572879131611370854422254150423843585838888818283314438898759326016136434782526113912808080060255671552513417597277250060491746250926508720295349471960073746961906535293718641478183494519891946518547982113200117224056885490428941711233577275952582206838365914813850738206107234949623976783398049582737712025145964892024391708336659870805267178066313351390365526483297856116718485373485659156754262205698027181260185600807524379401825309369858552410406129437713414503448365043568543831556037259982450343722016115627616662579608653523179356761086171836832288959050356698995513894050218183807397774043631850927156682722268302440791942326172572583279501608161799046259633399452092735837322577137110104222956879204474232846685129014978692957559622778011459873799652129540741151489524659652866154177541594717748932037030784988626279766916546335536347324704224025009464655354731916091515058962137765753783967201378831757852337605551277150126699807963876063079519234870673678786483529829315967363515759625930216694326198699460372407143079569873075154417092475970845439245746903085817230672722446979837286785951819197869319216645727767889396747867045267383261096471814055325069815281340307273165480503934918401617176917121719884888266683570736109705862202741082046546244477040091589227078423004629495310620423999671940739777363294770595925303971313742646507760034902083335570813061756556447691250009637272996252041376936381534904931501719429597485819489172040196917750703363248108354120949992135075975207281840432138652236671051704596048438171890890137151228633122278334330603054317110762991018848765770755846676292398880391829885913167205204171398105748847346580923026368621872190611587915139895538304511498064210598168884694539139540958311574691047797215465584685634586291326465378832063572001353589291113423275707011474157318903667417300947568471847720805828714757738212040581316281983396260707223980834412741849797967427424643254117421925574464324221572890332565278016405690122842194022588382453114871410636489911029208889540341269638453076091328997406226760245471629935384417599609501971829901629827376232177976856440858682609187613443278525046442833259463289722098837398065717102480154007522186485061855110408445585672092585772373711164173100193504182582806081424872089409132638121728081392015396080504633433097106977494498553717104861141814097921521793509563244421829547478751995715077608858110727811521470816513613798517927906116615248211092968983720507684479194592358667323540490015372947513024409816421301693852653993664457144620417852927658071977303166045823457486872380550531174542949552274382348738459138687276611013177061798641784216991946218910260054586036202996866749902687288545896990828798630773782134801512924314063289685448075750646271244277557972446373296303193636361927248362430572257424144354297213749738830207210957915321020802613241010458671940005844943632017235495451874067368859387649402119154811341740814975813856795880685616717440169927799445070425451091283796458600652535191500018137753466199921479076403734123955221715673197503034237937584461234703853202361858125833711440056360323663157350959954504152493085535537755926302137320039483225809839797985010955378955774291613197427750637433780353884196716573207470311313343214732413598060572302802422578656802007817375389331764307788718978184829877612256548046126535075529777987540245097832503444397249889929540403407795940297298114970087915313335262804891430079120134854344194538828556976177368589852353633380344686008169561372625936845844456097498664208710405719782050405696917091060454708745763828360203494006102492082799988171789862549896191799159465137097996241682575433846031852866451312041092599055364309939832472341711110029436311599566038747258812350275966356029533525111319576184672018207572062606262808843150621722803498913085154610260663211036800073481580770752436591748725945913945887699773762207313328054500615022535645200124550804572155874890350655772253426744936098470354272909707025999397309761397108040553970964650563940199624931846803544151514208260998105968695601175600322550312693960385839949908274878276172794222092645632564234122398956670088499493679208599037050442881717329290684163530021738492497039777980825008094592150075810984173162853917351227364407761033146260859847576253664337451738995105668831443742523803158958305658168399152004016665613628737598278754948570241947521479819487957684317715614812548695313414928010462810055774917941810383318612216415406741824742701980336919964563483943945609231554056023828802829840774519174078834807347595797355274123788059598659939879581437894937244119604362176272869833215302091597617693364294995815535810671688524952378096549765856752943592258954337740550632674662907203520449926343186248025308087501343049040024764737957108681659853644430751470775629950127728146666690026685158520206238132975128640638298481701849161856761593922722416326299339641330147424305752480096290384668192356521661720527177912271393457004541867847867907878109269004062548447510709685733157714596741979304868315920323319429383908132012101354912101980028688008735623456936929543134207243093565230363842736241890161230041519611103503590558123079960495597387114785244963546375882174610388717920248427930155225860202630247173035088188818899494056054285667922906650146429784030190220704260782393456082793370859059460996242101812949106394114350669094405201418298595045544559576967852297207297870104845291509317486000525569352837653584032784302443291673227041644987606379695741804955240670941010034112879287866218267398985596106006627422531685613578494217086331679628429130765438938256616349513954178075943716184938363560589249673033898647643785214450832130740368962533093266095287694004597770490889993217569257879023585012277111580546049754605517419625194291895889207935399890961237589724336519594459438752156817318974810040607669373083756358914460142700330715697472956246644387799348195137396351980045201368512576381546067759199754067402109497602993613930369446853993557854213207858813684007987332404109655069119354724766403779306042934563102860536792015142121155692885826117014693701068447514388907585621715676560110403420602476768247668358530592418392124508901373065377683455283672182948593416329392101372853457788027434437042458491100185852569068489773492083363669542800524455536284493951450010330489611077501788751364734254293897939836389711772339765698481992165852135596982676429383588254910615264508246654763740178078704275733388772326999863166322880728910590504484973881956954002408798291348259672068958574003929288930239248218495352876356054761878209619259551918260650681922924056503956054892595784324325642916995472604771134866919852585074561102411056714584056204754620606549483023050384074008998301674673766544137903483772365828028623397014458918874967915795712987113322546350345656098741251972623729061892318920828127507245538116799459326849462866196535898120179591446891564674587157368785018676901279234147071527583877977807463861432437409615646570219598442199575709676480576685431960148423390855344707843284893076910552265114744630267901423080484379980778006257674506568838932273759047750082271972388728144231473996712090186331529823477205238343096822381954697001332454246289570890155465886124649428971974643067880804623487161521164076875032595185247116947278128190811854769427754663919582878584381700340109604172298604555394340234831810325242312970983161254370161936531598893508977668002035645059273008743324644996230740990592948450240272262217920506791745728146447188491269097092618524376164599581800243238033187855529743960764106089031052355832046972776533993034321374215247046068582922990482375798555199632667406449195176366790848764772230939274151268606757178422618451178689067532616034597650496693428505773418854723009906625375056351095760274641592836413381270050038229611849027310925862784111062997583605488741666856312459364213709053246701130959515389718272659461806195799536604975808962076514070942621392269900252694174965571866069255462870127755021044043153904321931317452027086736102438293859444698855069228066805731247699996739447509530665905440603166966151248261620660772350044628995245308142081320032624640757356799273141728504203998926382016553723795290186919166709689615712230897039581480548577709971377929536230928761851084297779888443599379792210518281217563071375374603490701614401597560189346693861066559376777968276776703436998726418115089073701667464387680604793232287368825366766197176871046198536806179737976906815204282618848810196311591796305593509659741076637302619272985495518244754717175277965372157467102268168339712116043404626356794400669754348875854396400551550067268603364527798383354334544988677165126782067277038397259453130189128454788670487663158325036491986178239554956663061048856112966757093971671198177111885531517148977556602683578832422627373406614691490688755111870386849999464472033431050423252110836103414651660897688073620028003372508906730088590347791535148759833153081045395519647329973108370495781155394138551751152296424669727854898093119693082523817944114971128522993348659653659206676788636095377408962279905648648833992576302421315584055248107192839395333792519655978717738629212586047264968868292429373083373515133035073970092543645508048790668803472792912242301500477187079592112171962177263601633091950674084480372044622672372965838576556950836292434388409734370401395447642463429527605776556446630346648882656278983275878767458514812692182324961289067400327887844431724915722120678498880111777458592353852138475607921734948450058178457745303470762045995052691282346143032160244690956110659590479945218865628682046193175865169983276814682891511581909436836343920204012545407851591359355375971493422588950268387690746517616627136747947809368933717631549984195343055263297217285753912877951477916288426021246518639178104148697414522986482867581620260094703720678785641154345123179293859125980848636636819662202865000657242219952410569834461756521043020479360293917809936497712810312460664344882576410636023700177127566761705341912177544499596442566980743346408986993315555647794355725770330927164472476088076725714037894534867793958273270314085874538598219775661152402543219790805152137008247454426943425735616388123614008856755586957557851705547517262065760334662873434425527320200045184814227013784589325472967315427766203381979350339420540230555379503049239416493113729900267713428015425375987386243856330008763207020644098933030091516322607350619702151558327146283424418491788514135830408730989976592803936511596851137659418751103986001791844869919411403946463555471119714358197107019431401863139028318116464359473169417601559897786699269947794213793087859477454318431538601544624612569702889289650422400879519905953166152695224242734284211543026948680900875050781722332079807712422339474989232317245055189757045728535668844195254526201094294466490007673876160093988492447223639461034225467523945509410862271349629266951744883822794539202176956593977656322749589990248975975080996087323406569130248088371963616630819065433612341321854385756143667135732854211937716871715663153711367756853754754398398720502272055476937833839773114025741624628223465926792714059841159280115678114272450100659542406630850587879693623086461565141978730989871738929867374310240952849184213068669616684425640193534018356800090247481788833201598063234820050089138260887083624201622616700326364331377003052558140271127700162978130640349129878872333810966560887495071858905575841464449692568482958812961554909345091600468228200898089778983645833785857061193096036658636856046704494360218339194445576046968688092341384049359542855880013187589425868483455296108865024246088464321026409194205530938497347333809319388469368937124391007114878804890829640711554446738271486980430477667246540787762954026489016155310651906809521423928761101288907680448600929238767510700518338375071507317273220888791185726190163431334417164761505364018015825718265657634977020832176016620939542832698215691896449080498999100885147963972551089572568033577967290002749322301128559894780298920009519699171527075888804206264060120059699156264181459431883442367953600489226486373998795260616613031674531907857770199454281864515506448843826119598929915701558888913181371112720707862667778114807368930003124508633825610275744385695408419321531604298839194572806423785663285206157272923520172956616066992270544401901791225961791797841298392135816421548952659257947390624130016088410504580070083573620920972485388714807339119246444757258006315240646232966668712002002249237569198275227560649011426455481968086302704237899297703274283439096333687911517197149557497451512426758693830958531972986824126096431440541593328265148071315760326984599560299034244169946304367990640084044764022374289567815200884473096294713246226489135691392949263105277576677457284646629146223589254359210402900215334818982040150693650539226021171469577187600280398163768187957868555643976350873845085677797541007276766183777734147328477424536943543275503610521564914974468284534268503660883311219732779463181030957433314018046431910193792186530597613390252644665269880571551650293833826398690348578377392067213302913132779395049401781103028462645781687971749090703276553929347160519483041865789814144565049072357596100505681982897005608320078362014528440711953589680530384250678610780266306752417764612150079226810443191937843409717852570849667284642072985695621696493045928328713032226214061523640495673042494440995102495366773938746918211514339280437443159307543787990979382775752525400071001647753375929441972828764790562790820342022297255342070786967971353091859999324218687756704156294869615486506926955073934866923439649276913905899939111467582205198044392904326697013721923645955284792915610587148015608466518715022545370288031682313046936995890644279072606754874783874464125292998701219568481479939178865153762719325881565170242569789802643467867616584200262797355079087076223594244889205028093057158436677481536971772817670406109173162900032988503370277918417307329537135663380686240882472037238223047181594937531239220747481375011490740488114475932501107796977769198019908064680844743271946146944212492772461658606909274869237071659470589650382147375432136796028162148170644671815762351760747843479178902303190250499869274118974691655980081886706908765436444299704008686579518145288079969135715638737766269283475288686867559502859343119655173857129107429089055414167838522754528335294640559188049052439022987235362742976775553753228840770836115534248451504589660734199143940922388265955706624865871551644465831285768946027123171299835283755151675104338672059999639991944633092697280195959621680759099831733466189746882451358759219050537932967812416138588274494103346195947306587319234905379484259611195052799767246805744965968601714296060844449843810015819947243487361077017996236754482375519110319277341246059884792646243220360970602322482496098645259915722578379594836984973481471317076177709431559599274519223209861918453501166562244672934437497063871448229161052752974855870877661718875592164815519769541013325601769730655814730161102852523217965258402514363457683741632094301430833838206698367009731496256251172680541703253793099862728587169544479159913582991894101015934980478338115161895735306593589920203029341162575376328164507532497928184642082420552631999593124331874965277041911832086980451941246851652133097165073749461017511134784725650932794465190840606365635681919253858397099783283482135401016237484916460042718338105983669767113527649039895791899599361588074248186090049069437832345172785604048729725627787549825887709801363819229026804130416990302012075231837099226903373142160732349210175691198609359965535837153951355565076829850999491354804136399296880277129017615093606041361138619274570720753455460013972365252864577418802694148825712448401802580358933163543329680662732827412161314091501241304176210069853550060521227873646225891559836711293041437106771605564454625799415662230090568022166114753461905275713520322346806069836357758882768790783149362733737972608118545314898473213289484115836394884650282437378775824604067094557018038393751503750813406422362295521077424317490051282892071730629382051186795514229169778047923262908209635274011528617965969060734120299410957581604333199312644397173096717345418785349935934133751136230958500064333503197466571583149612177289434081764625544292391069303349293284831464793212339049027696583713508166209444317711409830430425342520532391369262932858455951195333327719204834443920178096375131990419330762057840236273923791600516935487594985282520755205975826623005074675374528883824196338740443625406037155158681086748239115177014476009394689719329259956248249861754627307148247959973442010717343692793973670942212494980331617170330946140517254127231911614798449886067794371659060624559757828073959028017595185927433277403235071821181530302559402308554918771453396388336200575287803564541049480093104310172925841278852995845281123276481712479249438587183878701131900483650042519722182031921184587798901735360006958266946905477316620323933150050836407749450039691204867925394458149850832502967478026508512753335958997543085945897661826849419735092992709814975800405773677078479227860251741287809810048180219036965324803666437666431748140962257792718425023006481894592184588105531733836294664698278009829158539098826587789001028229305121869986904586723984906838552477950639793255593016368142662328978235400758538763276247771134315912477830405025473319928374123698100957617886104457010857764044783092515845780101843957984338126813952637990198954315212112894230241702853558981443674776557017085807208716554732630101049225943973731933827927096784206171718934193873045706279470580278762624053113665067876750551374989873073207461038527102007949950996401328035899909573669802284680350627512749626638861140049485532170159683960440606806772184164745228206449858619746504667789654412744546154498520626680602696530381481723271351911323382751184712316947975708886885314046899142930103198731211828248048094303623760212145359063247892061122480260722624952289619595533100586491479363012866739234514910215034046736957237329830983596389009272374873297482177654561611792945569951605916159398175704354514330209935160955328723609895140092279353441212857670448029377437814270456142091191230501082814259024777867251384833777470196634386017533504366294518649360515886956093717719547179724900667794128645111677055688118238093454764616065016443365943532678621001910290315958345132929863488712039962292073208323759121158379094836326530435442749951167815897189527117414026632581288666342193193925217068943665091549399212919608034627199568337866616255965977329158059121152663089472536179365442712922723042889258176113608307711755977112211059798597315293155420702119407877750558641195767627671845884980133449876288067251677008713732384852870736738081368758796485215860955124741127854576453435307913554895828941005012314206480655977619742034345632498158263992913565474405145795076483001304759257589147601961903804529049428530208589087492564550648924199428089692819248545456369427889602530265779331202845385012396577528087714670282453230388041139393539867271515156587993884824911819554891229406033510739629630107872876154581805770274750694491079021016438953590784033626599611328257655746379640566207503304094931966125492507754743142133065350110250522612796689742741873867160322417937442102462216072408690823960682891660704459370137270297476331228688808844024952149845073551101390851708102135869615463395683406351980794832117094164224225151794236870038580659572185931727815342287492176489925138448494524016867067458746865959442795418114463595543956488101615664994153255974044560383537373042992787099611485451772960752615232126573424158492584855988915522280404459845883736001188812287727745989086841087810178014561657802308601866812923732760919271664250065410407677745005051299764985434247217526169447661223266888856611631484247999902060592584819578146693587465562930207808628679897046749815080609975114235072074168170962369712616590768251820987508450122101281253771857841626028959859935404755531443026125475062476678913942740275440945780406765689493187437938345261076868917866318891206257550413200167392804910663524091815292321583204486328211632115627061510368620795268519526489700042069635802759286534585685103695109523886086060750991436761853266507076023167095809173910509789801574847249621371021009295835773444163466098775888192259700907806606434903558941810009793760534295897113211190378823488848502811210465667287160662791258747901978643152256124904390613098478225071995953540374645232078911005379319649062256619621977443009521339596115144305134478243304082437760373633797021893191276346158457758516230248303913716999526083180609880221850085168259655984783580011453957445953092215894503126628936107885442037119305574855266668254287086699173091195423990914977876223579745124772979700988810870609641079978877108702777960270952644909670754588409495295552459824987758924847757256054042667973246701008266950730257973342492396621381547245123362167068986578126768779464721279584498162865875529299747977232738936566570862384401832508606798037267564759652371958024959204053832837497432505141182445324102135699333538333035173685169963795892789137465554401596628281487671899439633322048928590130378170343946383746731782503418549126418176040779622491840029789699277372870500116687725928822689929503527298697688454427784119844057067485346344480249820101776380790414393371214854729403862165004517417204735037842697276332228199059849209198396172430540318659480045126110506882987845854334455665062661880009768072542613587499632954682181685209640647968541673216170707644699965967532546348157779034753530837470411982646790530182350830505087080721245852851107046649529834031708465972042322288446646356959153089524893742158897628999928298956916317110246243547160502098357720263398485494726167436338705556350491440915062275408875631438212248429918021801334387646870220458887760442053935213227695627858081526423698784172972590323664050240745130719059359623927803834778292783520469638891813920736492065322532806087289456994028743312950375435962157564725466427884247166131335582155141407210147228995756355945055283757337020746622778951703840105085130400732772907674373637970832413381869070734533609158287930033566564215601154672484625792501947063740872914490749320715117693841624013430226011223431563963453317929262423148744082319434433742020462088345865066375966006064015539478604094541444284793963358652433096118373617952182127244737305503229507335989912090854795808483914658158287038314153271254535939641149778304475517354146066758641338033099107265381848407610093861195653795057999310778612326825752628437775521425330546831252063578328438906468955856058386056324350660783336040826368696464932730569116613290201903038875834742089277674379835248743565769162480183167248506535780492698078080131750782148757792155828277514597809207891645241251330779897179731847238376307675090856353451428256216535012421887875956297971604558390466125985519318424273763058236026997524255690165546494494394742124960608116172724141588237785193032987991316906664559102766444381147344527575223531138063512204185667330483171250660116090528610073051413520908408789901100181118050904924675146152892487777713041086496703942190404871548572148164682491459911728620354169247121166373542304369248640591920181550338673528825496551313703749531339243959035899392406200048575414303904526007432837537778387075127961712800932513565024532035816528209666812317313351576800126929075193581744745279494720652507520320519839245618753578754101577110479283151954227744921545507769874953581789009831686565644226530914549108711842600110301423498981291309357567049707953530095890723846889954748433313368849161452276703855516813125666587777830129818406035779197286086543484783903269012432497521051856851820169310482561522892264291291587865499575130904698390499733718399173287481238360564255601661230987134492794434772371668041181534085573396899499044607657441161027205936409821241575426281074159125084102667622008830630105991316937604251301612575667460990902256481511763800021283316123240665997176812775963787541834126056538985926482670106494886524177087859056760899230390135833403656485960308354776347660828335034345773156729496665909447736540521731515850301495632850209289658276363821537750938156493010212354843996257619806788821663453654899150760996037882943557934887328535364703237421338709094512299064220123759572514360942903397467452266070558704543185657922059683940805805281253966611008071890016500136526398435617909478089453685446137028927078118018305302889337313992671905260109946785773227877819926140106097885893042381684967709750616753839095775880822272423978841829206035136928259680197536916230583157516475250018489219640948948639324660580700968715670841577235926652479291171719540373090803069367832225742900682551573105176679986583076510100851170022091947560052944197981501314554600503536414131643380185175990581297432888248469791307585695899527489268556394189600649067745345886896000265910986186918772964059197965227573140341535684761568462441740929365495547071435801991281948630736253804130148052231758280632437109504909315861363323960943156543227542120712136244852021978166629847068742957386791681667314012475469396327905015233210863822775159648069748389906203015940419111551909359118954792554743486997270337819619420829529067959085919660094311661398195881261362339615461128217417427946259740442322086284273858221110607391294435680772872625916979938105201883313946509476468957643795143103613808459167324309522496119218492943606607252322149829262712803265539526879362832636989772005371661131696405331919281549009730791120708231519809602708346047944403067292274616892524389401280866088319313479472292418387264714593768771987707517753045204602972473172649839475066531490972423437887697652814291129485915244555333549760715109885561016218228974132763971886254802460095813806368405722587110001713166099193597937825398090576685082629687657606399498134209007519709138279201201560053794691615901149778403958491175544593874559270946042777356457614514472758334755938664112343818265331121105787526846340921034798938711499455711455161510039232797111851749618617687655580012341999020572319692680622318632671324520098689799563265304307028045792122867376919114062967689429215898591031551884187715414224687248895135225035176461961749473631687533216851248424154204799383528520594539811581225968686521915530450185011048171972888630674793789717332163194254688156882130172963571955536855323581018158312815373349976848566916749947033352744593660299908408347308459797828546394412499516754446966868641156847284951966823537164461117619276417418890669567283851626549881128562318845512103489871949831445558048246129709119739413648531903412799378541823634378929424668270972375422330027047457346547797936799601991389617597509973344937308732948581136541593662266216487326127451951174859735686480347050662046071872237856280110731238116947658442440903291645518749460129599382655443805534862067219662649783974846491636664968934771349642947894825684044762240574708899985719075971562687919032642080340059442411430996204402974048253520705312016078074597045194032859039206527773710069188517618258978746231319584490591280341671693907859772436479058619390366007640292426051016407610502110786604602777495015691865618925487005922849818701931498783114358085678525032982872024888714703027181167200718721847653486784907685915905596650813409389001445285018524159405575104246494449012769056338623006289787107743754400705932756433323941054709420794622539601253428449802864215574436920261599789096821564453333039683239088393607681896905370101469728906107709840278722643870779562951300649517715114919894084368588669456635344752219020216661417338971660751400385621896350068977966795710976547395751672002000720902058245034622295760808711775360167370690878137692521908079258238889536759789500109567665019298607902639908144988196744762127532081713648384718690794831628258831844633575965619189446624644835916298584835062842998342394149396174767962261821908263627462303907725962261638387550737914117671730117749531380026468019759847031430215162385827549397337379192520406061479274645882936683880702074737636488727160361198591107248756595924618993262215514055164677138474613906288515876886504747523314775235890108117539988617794586841785318765554265122049750719889126715218509874748727857643007302394161666391507957254472568235875680045703978172593466742355098514948019662859426774682055575902467615311693146906024858275257401290631307423656877174633544102640807955273670297168739350376595082932861003870679318035107921789255876310669768351313164551485502927133750666976427838156054855357211934682722712951665907752802882294174911455024812021046644439058147205452873574466294592910868916863426572227650730971218542782354313231571552106129487982455106618238016075175911902313167004330602650134632155828524953171933586667986236804945106868716416342144822741191973320383851734569770189424270148552044769124088123477391737046035256812840146612054567664466722093600738016539101931748030052812449867432029284774276470603391177371456078867177491409090048517652415962282388870766480626082734656801984604018251811194074281741835011665602858476702987537732474395526839472288642387444695187218256035582647808762654014484225968454679024869049981891114462401157083721945560134437999492752250575669163711394407449024868488910170001548373863480087146110116369190904818390951690055393980941818493155467245434266995798503401060747911662067740998295190088161472133905909229496628964291651378725502010451169473444554716231056608038634064794373712796976253555219011260582858824191565058923988208281862104981538522475610610146434881755501308790593612983206391495956909217010300776494954964959839216745007734661438374354950281911926086209051554857221661343658311349675872599620312856737293954815317197097417215153804363435589586705641435404626465137808317170842486811502930263626558050160834630269061851784031150002023169139583914461703153258455552036490743519618762875094902977328900487134263548439116615330596838176958257033630910016417666311674237604005033025073901375097300339003696422710307103095783488476706428198415977966062288232656771790595472220741626287051425366932991383247229402906248063812707816897463174675370607608721644142180874857107331050676313076144380060491109453786078164967577061965708973534462601029741022582683876772618894023003380298648446275116167621091499955037343716249348234090467329767147091543364469634493972216233813673276008760533078341749792772816412348911839581074540162545059560837467507314754520240955586305610463765247015761545406300470468811795126820627437473760521815716717150014426929668934932715649956468650762102887731854014918627292699138817223824997756721323029729311851973448529415231665347048827549231236151871592756526971630654684114587542814725429168432438208481247551937338183748862775926382751531854934762810532564536724904768757521502410484327113560294822105420832294018903680923161500447577975550457844828317665522520988574036609001094724196286524733102235025970621977425470413850997679888757713714930304687220190706484121853096128252692528830028320268103214755806301052281842666992493842790751628048142744374039165105592783262882353679807962191518774619028602634364540974139867666807468093099896253802871528304949245171088505403239510964077438741344563377418744906409514205603257732255113162155537511892831242321702175714714913613292599825329200598013892877209842891410338301868743158861298733774790101788898168678788364229742597842342760614389861428692198068480653767614765279000213250037401511867315032812187004115501554853350449436769261119294727892864947527921801404534364872008262370027730504627700908287901309406162269970570514647562228526369684208771556207926648436207216513529500727480431187166688890669036497216016271583533043713838739930273613166503998626222857232426138070776171170211082835501410928294356075039496923829405679259860866698326600957927009103608120282193984633347553886323908658959979779342181482969669579872186792106647706038986914355499402425287228568162514629752563600092551310133124133970350864178757210979157795166073885568535249600946800036315695017719325346715186957505789000003235642079002278801701327974764590181769561136528313976417153687074050408436477042166102731764523812679833476609017121597381769239167340705362488144899589112060548083289375567843790963292144101407659065371463225687109162473697353430586564347943494477906440263666034359905471706774292437447589111852120091530539707904597780438148067849715683387203856229589233690563677358150777946112632128173836232615368452617800420129300076878176176979854979406603142226525441804928479667554665194781531270372613454667913732512631987407960602618674095836250597448747849265132333078464868688860423197674823173307787975538336483531025223079650395966397145406802162550293267249403737493501452764619172537312965256464016179387875056269505930257430776068410582923246336535816592778188216177346661581635253281361229889164982709216284901905821470116960636477953873267493215562582550163305806646704612332871264391947543405810999121620755658611684163057773682309358524054047710277615324085004110937045610383863669785858394571489629131268157444556848349063991658867803142021848953031977041032602400731512708893155688233484479804979772346629863479268918102463416149510220727111701560303713634373855749438376284131183633822255976163112621777320317827868004228678704921043320021704214416085110474255054534312131119479343675440019425718103546004584932376070596116539973241027896759577563615121742727755654816582961428035568698877665424948758674952673991851951449062479739359625164093907517225299808684545687391595889103261583082442862894348940820565818215083638565358592065630463315079339753131171505182688079180431838336543670043002727207491151157057820872318264233494414502400501739314123104308918732037392346348760342366556781688782758531785328397485698444911527933589628720687524857760536135877336648993683169179393748062456118263974146265608092365025419130329231192474828157241159777238822815293946415041745965535217461838278633828953740884577619683129863855484761731461464862840546175081760584943110634586221448908642506528925570134964608627304414833944297694315828528349696654886422648962410165386552902560103234211529066336146047210761566024159640746041561354079770351114604111678777373678324245084664445459703555353747895544436484780063349982448289605245328151106430674438838152388523345360211969501611498620461761976504890876388276315015969005144029862730070609296362577938505523620153621476035735874841210428167319401943817495443675704181689302766621467672475680334911460420499230293436000470046248562673223310823268702294992614043004622488944591880165361491662633515473550293947667520268347328520277116975816332614616447292513755826051998256777849072220892096344587811644839673461082191843287115097943658104108490513308515371428367643070785541173908564442446725733569469672837550227314794972376052323312790416508576746460163462813665061920624220236744143342302212304785594627555793746475102907490639891535404681198836366440085695508814929318394353958078557565257820365090354430863610930539554600332526932874211852550016706776414436497451177851600832799155153904275212340092681035843714086440688178916326735134713922485245089167502034185185732600177250380642587198886495976088617622352782016076935093526155879369027250106813965522860571209766284525063728333323247337848961025696567399809160901760846299432190586517975578597339486783819614747182186845501116713677300646104223187419025229614882356723532266527685437856112574047790240324371185556788874825502679541957092487210922421350456663738228068299711973215337924118511982018369764462864463773498922599687140984344536250793816204848034322424200233796937378664338754187298821410189014588442129626597376773751402124118141532248983650631526308319147577162397069002919874864028904670765296080119092340988715121861104352845837167837220545514953617323287877363192390708112398593210773271164793045591107745633744055420217418496726546610594690046506755981357536827406293600541643309367546276055217305294143853442962414077142068819228909574425956915221665545207631382430610737773468751351514264354498136174415840698022823073732530408766640681055435143265271262021202433688477865994554184055301434494881961471662688461700570564918094373904424460471480449455713902638072794489106886842611517300953071425713896865555472913878118016523036414654050223857317191593878025244604598593936525350507000105798730803711439160232369517313166814305702286036181682950343489753625172194167281710408599321060460681190445228741572592966348545885977376744219903906027336312387173828321209709489396760516018701828399248158681542557148301815937739651237470000580690400754427265841627722016620844058577615887459820253232532061717849521018531952545069150192034153785212001233699841342665105409133858960662773617028663628832929089106451432434619627236670820964884500220682220338725574773262808369237151504444662320389764285347622407537499138123149218206453315132784113360770382415454401969757129518263110043318138819369167491588861477774703642132028122796460415576832477056556389263429773775707006154392489812995058115984281728610808353009579998616742603115878354817012966463849230573240357577884885160960505721055011664504681911496507821655219063168936906863548123413937049773115602322124226433525301686950247267309414703540737184778991147334359462472649067247046742481050797607928851031991381263510630031335914242410227046213583664433359101402996484970550176089991872991851446454970464662251258264210102450158995141894173655603788328779869466863322105635956845417259579956862601783813684024474216844002556131132700561827042361249230514865784485426813008780208952407304909401711971093145090584335727118987529198994499028093399290337042867584993555250846544108676161338695804558813822207387860566770142653076316058951628163478524175069633990055817242271816147495973533757797610381430783592270880105754654816203533462628348204275048418271063575604041343092212737283987977940844363248945049634300734047734847412330710754196472255260699446765827285309459531556769922536263037617140202851847096849929468007575855959239017747548635168199369591960048341051869253112820126697389476162571884757821027758187687811392305234341266184882277942068760653001560935565035824990408133058014907923342188605952615083428580215535238347536499627514480233155795134892748686615433788913935770406875389942775167814906350405537488404237332732411469969097059949801059328481260456340371551628702068043796063662425331692962755444438300436690505115340567092831914358169092005398530997484294575272715410459113789312231230530318065012253952254451240934304983828193401518768486386785706818456015866110643363115958606160926763676794855841534778698967212303094260781184478997566923058970732406589789647906509308505930248512693146008297536856691319442008893971778092867505650911636406137919257520235650061909174580954740129519428263116489305576387300753314555108530605193944379145089181140295280460712496377932176695285918644846638634171998211019622945118373292041242732036988183624507615833321464134094321964292691224995511531710562672881518800846429080505239024255161242732509968952836736665138019898298888520542460102455660476517395749203016747741228878891720836766160944520966649307702532075671746043070100158049199400514139992828136684785553873294311034956215020933985582440085632441489922627710180671231293686814367097273909240171063827778601368532490660976169334684978671017650581996701734686069872489147373821360988531308479020755981583245119665806003284024869077449657901498681633311233450861166244210199651433648596254567419043271150443568170676552539169631170869082299715124284587332174999793897041360960853670472330070955808796395512299461233404840560066307462790862620950018018025583772581140090131759583881502255846141722787674094338092397633082094592579235927393665493252486613070572824164772180392353941557229212309074864295457976412194360569429535899541279133474216904314810159668677808352190894479922179062885725275680988039669711830776556662821730654574370043420991014257415397266273225898184506720050893617745767689500325944292051097354227862686491606928302178650449838910189578453399593538536457912415177105466350376915836633452499114189167066489576223757415696717441992924801334442995827248603534803990123646348581041468798897664352041665459666831013003588340103982440929672132968013073156002467927207592134548062844465755372135586094218316273384816480864269194278976894712194621519858503630447835068126885914669592388326797100573908190445677194661927899514114771888950156906196255809175985400738247702646148140687641052580715861653409333976290299855970385002055575000941116253547114682311838216039441622682835778183830998115952728512955401407784064373269068308815673660816665271636986882375465856672049649832761573835901577239571034613390865344024161841619475443503369566504486031626019261809917779792131936059572764954232264722293235157331156681999698407296612148551776161437375334677250762594722222151945252598648509296364127056061511261219506644718823444042753855570761837198368803864670542626996924333927797069106794836065849434070647767492158235722131049905772271296137148339027832653765061806179800084554788705693545262184271829818112833969519715830638862690604283002977035751221235241577441326199297955533078495418688936124266676886298588885758498405331004828556831747543931379984538791115349223436222149488240913325111885239454497780515506549123107522074305012576224451008354719121002249115140505306819339398658974526392438381252641444523699629557423414291435092030556681305544649341401069385699784268997535054096366462867178299233251224012009974688623454199265202037917304179450326436099035413270853199231550485546801053266998930598638203001069970514691337468886680965130044166136728862255513569854867037009783028930607148151853337956365633678349517267289822228326925811766795271578197225290963478699966757930841412618771448117831972888951441548793185183675790450141358092653380220961572415333633023393352953624652445066662789655909641881873755019213146978332302816441148325518516907945911523862038787370913471091145850032251370203779926765780494313593654954668044453548144380385602488725083489892661522130498263726888170496836708928511755326330333657881123937955825200163328562362375140331120971456720028130849883530961741621696886396230044377631983399623811321612723540557575007042751930446740577264243367413906361258536770327115471765001122092270837266191184883227550870862249481343959899636582599563631193355841505402292348635069970574524880663062838123450532971823849667226662295242131788769690424321605088479282041761306489864544665112558301529565453647595825186417115265642795670374384431554762424972303859627744445693367187606511438639885285103034747099010010111575454390534607010459328296494589660358639132829053454850221840273530251197573145472062853252175979320417338520086604129110710420364337670110015714940616504752377417529630430333575100686168854539919971919186850938731761958253688525112267542368762325616306380791670847719945456165881549420009126812698346608207952321625096678879430536974128227959764966848625752081581623311162238526805475180910083758042377901580629065159125376810637838257863963870266826458551833875130700143417451725051495402033330501812434903244441702884070884687258141916067002092508749180271408978716029377642008260150982479556270045471270653719963612116045409408856505145834081956020059112011167868689994464770601360291642934234927727007215056588527073094189911482579208282258721507187549691119465538060008329722839768095462302592093508804928610414832928481171809204293285154608930663643232567462270339232974201404145277257896276818367129736057434822891213841278385972485770062658570615339830725035664880096914682181774056079700892941696715811740118530673372937637113606599742297767072782856666300611406739627344443138967594865436759638011098414475851733837429749629508712316969749309046159669839562432565341807671103742557536697520820000335654650406584875966060519898724137774932587758675026151908422315188941361799122979363915691695991352495045002685230717870977022384752481847275803989842301486649568677969647105836498226104148231021021739952641438117085524911389625084155894277834594486880773937706380724090703397937926318695126245711658439858295236602590603026757951119733036685502144579183284509286551852252811588761640925493346686159195013212364141090023092390913912810208927083014307233129575837829172896760193048842216733778239888418170868625220788690314229035588372423754672668601242200284172359449081544961658751280631898046839433097054745147415205170752235641754298489173306283745848897591468290315229043125966819454451453378929593844997109876120206137761025914657577375588905355999264280959967355170874658456338240530053135798232399364202522232704863664713214931948929495057826499762194788877358131812852134894045235913884916508279111581257566823413192952839298894634951818804411373551320938204351162837798285361846479177142357542716693674819696591038097720283037061355450435026454309667414178655363475623936827985250892011139989680688665517391275646263396418944553345296201951037499466458932576560280714962220198701651119389239310925710100741523514839851149895417019100752995895787733732955529072467106565577049098422096386960694058050994598522389527259979559786253008656834783078127574545068987528718883629512553896421601085498530001192331453101012922996971864664217548050096246035692786806408698995716120300589753394648602119501642926838140454528755485618048727063351413920200499145088881102478685640930194401738185769010377731682148574790076048068736554498509592067398349007276126320886123748213934406621789177812036788279264345156152282328959218226150049414194219788260647335672665851309229548695450310892975569046672098831279449308742544230650824694051240057400785071216064101026653323361314886263179764195306345081391244173931745498511504748750055638148916528812632205036822060007290535590227819614657642045148076749002155614739889103369691197363976255259698741910290351995429509918986743471501118573062621666222941782741957840947634969977334234371177921024589553033329971913892530721515735046034315535777280113863350715618157392968978825185676507412833772518591797473993528321088559183692164048352167422911518238155744021260697193995534206653911977561004350439561490956582510816547278728237906086784712577050769266056028195491976831785932735427946926850722284364922122405214896865675142480774956059511629835459683912433473971666191146426771051985993731808961375032255311820072776270188143221247784808800249737276079592618655544568597189088734411823204273282718920295153680951304580800271272831908104001650291966789831215494984040504089404163302931960855415354188326118397185652107121196116641971705512969369006864448261986891185159628679281637193920624294382397002781253088376058864963980331200604327490813904272618348607217154903486840713707525475667005195466109256083897626784651765788866582683475963667454002598337872706674700839868088805925263471485020118056238481506923131283396832770986507951849025717708976308221932622073064608576215307383050393463836816500809763703823656304109561196334114768180390019239606759507398262994691146125251542209941994395487338987015910633102751224151624081349283364446702858605695836774741728308952090968009545166782751929262700880369447397962224039214010809248421575074549735392120419819408542581992315798335481348937012964465484601208243051909311348378827400343027771719489585518983892104286080246176144076874196529092449836698128138528287843125711240297833718203841968175225460197699904946153197239678327526518493965024667909149361671653915746348510628569629702848479802033213042934319762379693121363744257767392695467110006020703246263845149023959997864321963116342174320933566317865926146072032478456195773313680369841814122091780768612548800396829444970532146617026279761685522336493598239611273241512553516890063946632854751788409892907103187416801061432989905948518322679709818959452991669764751866365297028503187067063373439747392678193772370969979077112395746436475814586848996943064023415611834866314388246519706108966776716746546725569956368522116559305018418316003269292426155798318536364421961960892494574062575348743041498260475680665719718511684195815477490824102705377121341374526411098254632626059466705715101459873017382922995928863965751750088314205139482722366295453325219226283332532346940957649073850001125410046281125684211945389532197701468427616325330670935008090350033937014694123781304607133573061317989348794087416688626240192071280393510442850181288421445689577836862667393175396906359851806438966210886950088372348673395372442563742453751879916197667264282607190502090349460292977362584866653679621176396950427156954408039892518690834720973138292756911301456736435684703537239662968661125790125787542689963807146115721032039683435399423712867861230546206286593205596774491230432292322928146343670453970962142715729915596067611158217063748877926324055899062893610861292473452033560771153666641350547381592263931055922203484867149192589702849256265283280747384518050884775070096018442905678365758926945271585183172210913886081727271904664515852495284875074091992891373323072288868262972466153762093531518879402489246716000866034984745910929429087129561410993075952864373049812516278037325245308727086724578455260947746616064757804706976979879390527139372084697739269324155115062439428917200675409057458626959219009468702503604752495562595461303208544840605441800937452047531333038451272817965479363188826746888990195020703763829298937234075422815025878153625489650261718570784342319469627952967586861619878303239166411653107139024459615780822360620376634461611021752600513274500812339073282009771590445807158350860495255112701730482498010883898056717515415930485225553797157411865846275258443504470914011692453740113097671675020624685460298985590883981001696621470284689537012914588464230512347995412803964922659759838494357669558361208703106372618284391573076990886254365247025553177776836780051532510037384515857598941940708214895447127309437213835758445932507069793418618751116910501019123444343399913321330501294935400601549690683978327967210678818568689340132521228327355831732101001855086349559307755255240327607645026712092019793757697495510088707048134024393174514051767417119260811677603992488061222704797786375603951286678610957005407094293160540996316838216104238349603413934153704031798581083807792650021658203446677275777273871158072911706014523412481929547707746841503886355859676054892234593661151308524179012954300632803528152320402310586520069322347014839259111729154848820471806828967920076824900469555528727441365160517741883770156112641766700550257047866453751656819584039722176336618503963710872872894272277494343687958790982609365700149083629375992919827835051576025007954453859968318369700487385908054334803740084832480929399212231819181681474521772680350779038894060808350641671637301793106771903337682307502926666039598877247776953076699445898800530090091456307814165680798817223516005824502309527795388489109272751445183710588990277979867115766120533933970080913252559034738420495339032442137777323542832376130958276033325043628156266980971253830002758882990520403537298506544382294618139352511320687727526376605545776231928276526566900523239140666724541801992010359359269549906177482638859155457376706978975384462927932851374821154270245642918770950100132557448125168194313661650970423035358703740802726060489226335022597667854642144591268778616672538454979909251077136159413464500942888114881163445797830168518153992191111552888222005694032253219875060117423486478102204552306939436637144976799356449392522854498777790426466453930039837692948533901338494704634512580213022589730164952944060378010175128752198851565557834075408753195079771805484403498042958148710283236915167496730124010545066083875331026111830137363153066613527740867606492644298686856889407411638856209568019094016030098128866231538978326381683469957257070094598103426403448441159800559769457387707921409077168350430222599309105045460541702072905198546156640044028788461235683335492941646762084880748067973444187709811023119330136104481325059617833313148992132909453208617913246561817750412221348015635137448792570863460202300812587405348058504477554191238273568204701010791524084228690613991820993915032337888949599403288483192028214636885000394105876345014786068790804615204388748878881443626210200628571944779513276648875913879921584460177511058855125620441222867603498366817401348645580552954147781774425706137895340833248422964953256777920413120855891951537958309516843228681851165692312419890904596937482512373972270803201742038676858611245366261753943264184365803782089273724753622056397633019828248544742971259775328839279347351088480098505183367262287935337405850883797650092283861765665300866786298964159679489958257620413065714775337594467344579839975014491904327172925413161036180075770097372421800787277889987639328683097010790017727217669381359396777526996241770259441718294086799404893270880536918289290659257883739450160720855693208708701328397524961501402176580649651398999127296384496124831353945621844252678775531880793349009594163011438002692769073526026543782502665839957037650617002694402584208374702693222820829476517091582268295417405134714627694537183543510144697939775082998441448734270021581951128149451028740795743760505682713683627352640275570581433402467021909225220713157678880272143025769353547919570357564406903884350667037254796213072190378005837193641298630558584722461655354915804077043205414926763314148624147202003417102266204677328862498714598415283288724274891318949085158257752434457622600608008180571086835629881711483713963993306265710054727783903745882620025243955995121487859417253836982311580444437157016049892696997071813642971704374986533185953374219958842115685717647122802529519938429879255696773268633455524754984170990471078446091038578987052208377918990393165793192250811647029530000996574776589259892652780502704310361787189006728937826755048522062522592654245902653137374638030389887174972684928524899728380323310332864858766844520985640378362352516725736168080351338791512165704657199269221763516207237524960100765502296248171516421917746063203144831404498585985360519646820981603554277616215307015860771821242442528522471986946752174883201153671313945204322576861381617724921078837882716189047441554652625167691722931332550127529586606156099389931731087821581013430273543983821965619245452847263035395301172374555857967092374297356464975240614624654309818124904404245044092318125970436397819336704901416533755398420803292465538099565204946825509875036069821435884893461496706362805197518366606793703652743751386016760576385830564376422883090507604800257644443119944151354519234124266412865184029351073297371265948371007177317706929224000662374015235786535315176611964585612260367935562321269611207377995648863438836452040412079190917362078068198680792419437841037530341003003921939962456045173515871440761671226005114278861445305181857277264370297239917274542135205630624058319628533495381788538390776332183928161638848117124582187547769439161115936050600222345397509605023132470543258452500405897557786577487285304866365993754426104659752984084766420198977035030867874139351523040369870575658101673289311456984641938701045134724217213608249708070845004603241620122177122324013814094290005600460656124598764769035103961469645683330848506564443131675681443692781086637711211741246379673489546007111769092611977489603267505827811325562024003411209045679469792156302045118119483992966556864845153933463398643433115032937228591980971809984530959529372866084213535797473669598469971792758218277902720367517794981552895246197380439845075021287102170129437236147830220803873021217296034587719873002603667838188407272899375756303237796144008940462274725489444356101042272113009236442834701163365729144385505360223179823690871991113385183312060187810044810123325922037059017886353155096178123256440835695307444251428001034461780528613449062987720916159962622047717895511175112826952620854898068474373082625085762946755096171697595484829013883935925723855862086425767183596221272962563333046380572436510956107677405237247352595735248330792086339955900286999371031323826095473270090679143473469125264757040637246984049840276605405663866810449237027095527865596548849945782337564502238186815813454797042230000632619822208622754387538053397627112737808291142209660800925378818857002455454238367850527504298135543202487788620477310825721846488959904422656835017912530764138819179369678845934458966429132460903806727374275288405852361313110452504933980784095381971320313486501833077347148392139153488872127373513245128681586890850378722096883917773530041036589832343601275907045640825716346154172971233382039015025447689260962020958797123589137215675202311751398484603078982314181601593615200473428006011494994753020135961920913483068125763453956242101449599149201790923986494312129405288101354787422894580054481886122450934671467656982686730089102413194088282140518473374658895111835112151168919956025217329432910651044536519150203830986923661669622177562171394092733732644878537956107552226166925377147563858195018773900446655649009096535431613086929974372914171398113922485813773026820536667675663151493113593774610666713365176686447065878913035493709579918878461986076293403765497737589142394163255031152502457730295340319812472381835408516064774181931119100876988539462053640667612922993028762287946203733559329375517445545346744599507562268192143897054987717434832815590195876217791482470894093099908988260786786163546646328572777331797279851746042722041470122961044960268457588356693315545663162034622348206375678866474904890306059043913741066328256751514340060839143507143833739250238250365388447549999107315507508165284223060803146793871465459419364375250471295759367639976548106951922094586098443480507184482529118120377270113096666758445725845471233434175301253777306676848666108655866425832381276593296751987147847904806735540798835044383935545283364657481143876612186283742912052510013074362050026377906467998294873264440722564412322493159820947080963311166515058921296798077241098067452523819595531652583327803045279093715995366724443155274621363492097090061322690631505297315048975528068944659063321803266418448243275693414376559697884534105675614080112539572193461879951347521489811515694833441329036073992198551247381856506379614955506871841443192183150129029383989839337665180500127649342852546335130060577895897083812869181149198557009699683080689540328958175474314418775612838795534928598556590034637550338482734274225484086571662232321453386161768100218626043288729187127806334520185457511474683597232750730970113034187825334425359256342188965342842855580768670578317305766381394404196776801456244491515425683572318350079211136553624451157630775691768251531084008595606334639370957549391430392970623688989912814870259849928246852508416368794675811402698764148666943766883654041408781242132826311666315130976195291148306939450739098393282613800751039714382701332819747583291545553805036596542832076336115642426955046946866645335770775096001771501417192617906394407627985970124120659148625889259413663494117956872423779189954970180416018289197951784974748220706827613711551940187316619395357665046529052147696724542283944799366852647620760987021652506498232692055510177366821740310949356488191560961686708245943333196078328020840399165636103651137870791060208296645280912231031175638616950379420811137896636710701337370498245400252965180797373810051720491436538292875061201864430021235096991404481657707986362531394836131287313347308223115235282224936824800237615746024834727532444637430240623092913171829853578057172297342326480864148954585797895721810596592735712487657940029951947408960764121550654106817719798560570330539506680791754388950902284731283795994022799994526429993198043980429719006494073432921060880280698148539486945496176221695131177792517491773297247246106952103678500284894006312061605523898568625744033110015380528668786946348973388027391354054669758245200852041605914350810333604148968499164515184437277468483054606544231042624250484155919947504102927579678689672073948017450890552449189411640247669309617392943786142602172582606625780714213592231829788789850944101635332525586464883869322075715432404353508422277542683507767281429087271185049677951479083599845603317329991914896093623074499609209033703594856581924015165605175931660880111379047639926985371355313584547936651062744373408473821716672711027128548484406709608492498941433808808644753937123275006015943557596492353070311438767051221754045054364613295899297729750441465850735359715143707411222011560242003805410150594015546888215159793983096573160788965988856933340372748738664945370093487264013936085376753706159859072487923822726375547539743779141701757457995866823199793374692269145750349793201198732798512401371981738068910957599681934287121830049986004919217398059193815703446632238371399185985404815397212242916363434656648372870559396485267443150491123938562082161618661043426375637752296807077365655732409943419271014636278053672743726566403961313616734589040863191147228704633185798175998102149883566004216833087946171858109968878896806670124253365733786218541388277599168548530979311858575012027483179547114411230405143360983410116713177580516155122891802665126503495978103636195311284808504036846557901551527925813287238793155633059283352786043811724201634162819589836129019110079869300584696069456219351385230440675067122011258243265267523106493791141369178232112564023271247129314742793298835734541510735936040519318454575602806008782788270262729402063972803132694083063842224358974718338506840318226200763780709027737500564874325913619614598067045965891504907018296635514185432638000668339442749223503484432726263732086989642643866028260184739659398832717965244010331105513745250188779683223787246847923133760569890195641321542384210453593277174159885234705941963782252646799216550175702060791830346302617725420446048735396856417870846036160219278964181061870873138119409242479839280192579438932427478934742363663898697869660208581395718137984009187103149305368046919257874404250183509824182595627208530123208329020629225376843710522482121987190386493335409504558758276905533813787843321206842393757463482323104639967579107200540040520182078897210368109651349944411185501710948506352335985523100528956651698041167370460896520178020472237112639495297100116373011740676672277603877679906414230132528011440707201677948300333797470293486585586046203855180231325612612144843183468041251813530728860316410685602710326854370800502586613646374349797911375794854837963487099117350412001259601271815291625755738764503577000034681012974938596959892536100772334581805963473452210863613986407492321687027742716165827928091929272944799865457546151517749434798008441979419396002876866233368930470892812601022920352869915540758590118199678093870229194878989643258599545950842971131148830713181343529019022333526358901073199346128478433285914035854185309020150165215196192216745028897874893713161843286157007969761552362324386597623697967566420055933403522477224928367467119574619843272037543280927285473173973258927560548198915318666002113801099836695688895244676472797624705042352030924055904181738361730387670295868690084282638570978555318664753424905391060939526835748361912268826239408859665069415668921967892710280704190560772035183087836233063069831901823498522157000046781660432615578818686125259254414527177484672830365741202501433328913183258321182770917228226032877901862374700206554354082840514128410981521136740158712849302226095767117286056730349167162594251992440267044555351282367486128247336249547354578434147079034898047736032189374113844985920278175332221106268446343206387661280961965896614344279746749391786357133660110623166148666532736998659868462959966744239829415917334704025152014607885920845855395372812806871013259079507866998719874080037611769492728015003628826678215080711478283020308792595013497324378967560256803405696410247885908769377535026170079003985529761275504372035350716209377898023979063016276698628033125012325194081976200382702004465434366623978443157846908624587064836192976624376983564111463340135623670845539144297359878503757905312551090871349567375103104930782536774755346422382181881786025005202942892428857609391695195095372914028702725758642129169235318468300668525719168174987878233718124921894815772764813340693538930466684391423454360733260034857683918125982208031946818315878106577692685818749687434486031988363418157293993326343571106119974126021297487528698316375075094530876586926515619460933400386286947092043557646240110398976630426387384500223758420032932325596351219963485765848207027604199360891745693880837481893735008217375276786371766490062475751466814639014275859579510359743548185754142615751861351824029632702929470500514992532457337579782695633533235985044577547823824214935573727687810934387779424238945604804839734973226662219939151116377010787482989456888656986636996939755933355070360447584126937726486980588450296560666674500738242208522610103463484462488959951299628485967775228059764714887717499638431634093143707777036357949690939542880906003872490281425660640997760168194839988903912646587173423797506604291352627340987671585577413423159328679604290806932509557681109392490381985875569125741680717975321636501082157246305641908004428340607804966085726163035245778587403745939379621265020698895961767379246626696988810558793149783261540440739046298842072332517660370841746706009242237076602236105427577342249884149321297016389137521837155361510079165990118378118988873991814609035909183808578781225191810374066296029907782154797597729813708756890938848508989647250708089103644757539391400095194510115195552320898230730999080260023307201482050306243177198606418625189572774257188703495590223621618600354307925627190436113715820129898311398140452830315090765793440958345554431516435934590571642922276728875057042030010485002353320958610732194137264966905243724914424831694604792085629986716993535842596646864502595612168914155042657395169650905377803245710521607756663974756672644317391769222417195793240814529248871920287656763438427451852225768724082248087515721596399780677720605762957365463310441113230597804837032159683361172285520249771556568837281510501984277931843035786503276385077654616309619679713573130842366971596880447220664022432548637678214275386449036518854638272941222599389157628635352322894944076951400648748282273927847942213909408275845881444440796501918208363438813380871829053944530425180840483753187739861315887405578883848602340734623070495033069988839084108465457640117556332122146991856341478875354237897744335998460098286025164344989939400177608332579494637147217748937799579609216085349459067741846992799379015696618151369148949674336344324243350309870394205349410452683160414836258209468711188985958565997208392073835679607606095363841264107499123472059771822996169753793509794203573752598475915277657631464179970965994979283701784854715852112456771148158258502737887517598574671463978021475415487984865606046452392461545553794673028546309566050512739194765716521396064041651253299673772087562376981532732477700572901344879278079351167218520065920269491902690404591244656655027340047595670033544940523442231814352732848281415372621145868889123478700011659821943854374671756463421882643760025127127851647969165895438881515587253527084647511153164522204195274158410071413742556244419492066918808366305048872981956352036118328502702278143119442605381518109836868235137703677920447431697367577522528149356624755874924284375495229170492818299348929458167186467915529571571230750809837729836807375448364674654030024950570329542917901818269580037796692234332927595281349684499003790237695819402767594876580566269930179964029055095961482103013682446455015878305620833597423921963372931268699233004886236248902010038597490521576558668355532081841306028215757139750090334134929558775322009073973267265634443585599289931103281373219120047005739944467332539860051784421544772416487349559582814935811698965754142684433270647707372230312053759045309479627529446567541938685171964290003952570456128253495106171566995691639718796333980945227124177161766187466120878420150244336487833495485432212628982684569119828781221823509031036322994865778846266884104513829989182093191708597771870205837118716154963819852268521186895507981290905459545130418370673017532321195464779504540483015484589151776789359538764821920319143717716520858250181629330315518541935114821682327255591172484149526766950107880571904304557306286246422628110225054517550191232014849400625989178972048716674225288949404456053462955257056426225179331972711677469570376682084174145121977361748020018050363056634413745457849507814897091732358827057246917481402724006685898057347555856790487665396109048752393386761813190385484997994846117239902461194068501839138875998683474752507796567106449497201317097086424159439386447006366849688242409545198278207816349236519602804003887726409480057447374542370411353984668481668024147081236164724575728545041576016989016225665583956861995432081782246690485531518629603119725555178633726197114996035772662726434022340614930560911803812953380039900780521268713831549881338100231780755427792136410055903952618326693087629581351228511830072163699491395957347653224044963330082319738696331485389637519920514076309270770287593263943131764999247528548507001097796664583419163224023960446370040080782174990218033907009721668916931492996892775765041750834423818983496667092659081510998137265312635970691293745653870399022062675473742832790503039442728973057362039692058497902980868270226437804228422674385144398325704334689234827127632079683397525872978476654970219327917656548382333581137691800740125798385172390303271553001396324835146703383790810835064599730292409312999872267464715093003609601758453033841258169671005439343691721134574423822641125025713366206430884238554270485171740742764969352627968218719809319142720520602431372579326189093332878572752284074792081096875871828680041373377526803491253424563638651849318229027549753247101826382928835708052031487527257809822805561581093868731227309673078959399660671317642718990745297951555208772825330826060432336180377717177734988385010377991430299634662148651150750237975375044490905213313047417892937670285027053089304179473475193422061710332207754017731048605192810080119347215393777449505703107260047210405905866774665412727634555681010653736370023186626943015610573321107929250179518068183443997502237209411384398320994736798422844096925867246832442658927097208486502600242820307217744127590807661633369503357000842828049027512458062287721621694907031464345242340805597630523445755927863923797041051153092004351875947871664099600049497322525153966938763623821545059668680310377493047664484341123485752501576498908404597449299879330409932819666934443770524904556896693082107078916528734511138231734818703275261850430554583462930146966824286054076877166666937426987221481952498134990804040550588114320985512481813097026375382355984808347815094295972863639546117915738312067575531477444008859456297075745233310113088242477391422324838657335418183790500901332909353137414601864875238254801671373888035740385421575114602540379799389221716479578117843685978670590290189515355589129887491108307151293735365964741018335248833077276021098000857768539604868006241646432653522385820298990934362816687645377026516334247849029662008385081482370944913561756564089753648314248989678949308078012757292012290201106570397506316397025358060157749977337511727529857026636124428918440636313883082896864651364377750000251819656493353934967219284113323803362091853369073766855892875650747261585853258989185484755446500363543129216049280459853180945251268997561106788646418935519203999785593581451812595775626103845982245919874202871076146313087174580032589171430040687352039119101581701821340027736852635797512298362935545488833998411965563730743831127739835514035724603418181379540642949740649516105056377764511110575082768564625225709837361803187019190667699683448666819521906075313789508663541790594000478534420531479276361875607320150876640430585026566364695398748249443188568842563035142914708196480143311354111793033270796269975920052418074799327636467648235393601582592216018002813680041008799050594824767000960106921420167068244562412687655535025753069427070007935378254803450611621859252383426696566309363658868298374282826478295370283083664622006346513539704361593002165846879315197006506572774679362645191259989716103704303428924151999476150966775211577871068928376262212538025117706602821392086656087604520879350803635243263201307661505216153517219283452693293662680934633187917332810144616877067636554358788591439645635466571023265324189784489767301783796012308329082013113356956050931809684578675438895641509795338092680429143196325591461792388152481063023235639366895756104399367391980076527928606368196143757910719856456426956746590735729812173355928843756916719392845959786055092482509273308280497033550608965276597068213280320838635593980069623327317173395379277738636456766567310371861110783710021133547264618690538209268891434163394218990034474828049671422749804839120141423684541238998734734528374251495196798660588422579540994985693009355172188992357032758857200293019663212999068270015718333368373711784381957456135527945815733002496983814580742759950678612762277748290917101360589972826180454066019465238851663774794220832999210503423785898629025450687660048174465413419161074549109297691126436882847259564096333764634267434935896565548567602456447488646326798317878141004433190698995180126006001212828398103127431592251319491788179608370061722767875304023452547400378520725218685567574276629082516253724895924857218387614188148223136739413212108203072007412215372540635183285499731868221394343375622947400766778383604376223680815690260141759362980471529656320588968594589298352337330060960642642703576702817802994551100515741733566403998189056546616906939160060492648850573677393168388104664267997966132997295060547980033271803938089272987963874114938186469816980974402361617398613585744239241504733791113675103506035706951924775177501360659255233116816573966511895388917974818826659934623559064345547789437999326987575943870221284857068422231909221534917874928590886551358714463064707071974453045504758903060745999395424310552945175181979293581818568275151915304802558440458527237810318879494402527060955608208800524821436144143427165603018676303756118802411658376164230822065797473106444640411498198472665539602662259620426829577279888408912646310427280178909817945139583522867191182470458334294958854132599600221805144138358547176911440213540639555146770042355072730741999076748437375440665100783530745899068041940259474804149890960852583524867448044918022639590499239078486222909261585415536186309406696783627534577948075782233892728700331190020876257583183943043624971714752802099419822797050108029815790424437797408829214321578455903452423674479202352281843895688131778813714945710016419595496951058457394106222363123395170561169534254111665735752033209804674243300752679027492843454182722767558656818786452170121541996919181286588243712665609101224134999602831670109275240322828992670371526261224574432804481917408907570578543083786027263031434240281539141080735429936377793118868309230065575972394617193114998784009728137712699343121127721194394798991988133686434208230791498026658884662222921291804946506554535781640517466389132323568445020405668795358312388474600842314502373013345908936850297618259731664901230303586660989790976194453170937605153576778196013832739093742255818855480713440945470232043691377310741540813223894056403612269793105269097018524357348780631003105054286976346867084718018134092182941748715601218819401246176844544700423244495313382431854166873054625722686897180096065125681488670766964077897626823775801877772752065326160539883494609923045654801392913243805894453577151963997293512678324142191556778429390687219899237685838226481001626842671032490393166449617536886694844977997962108688769032673651304558076423283266757411089601686429374889317459436977019140930385602601393002529837437501085692192264979156264594131516031665422558682441545084408944731781639975566274624091331527535418123322246766261204119010259701731914284416697147842760700379439057457133105747619977416928517953335902049313107543251783622177941802061165880104817212399825427184572736406468498070576441204309808612342162701603505149742689986955398765652234962345688241247866725081267138453232121970919798466765071326318901284160990966740975435120438457721689155919958511558695230752356373323163019238473151888521168742720439789623801241284360004342025925548751109671490168396526664675748955551097264239985342665860866599669075919671053970796751107781049593410043134887669871529251661302489774167499271064936332846037955792047168877174855721538639786111134065782850628233835968345589334169723191732711308873247785910469477528053224024983499193830935164531291680304041942298551088323738954734212830335518420629413920133275524125722135895161900821744692675814215651181914734488582247930300742194097366858680413363611084283712402734172917745984062883485710807825166431334193128747660696819240284730570676905563530963638566786182642451266637480707594478766474472389734406849155832436100456881370940677994482965370646200269582212737334333929198874145508256726803673576907608256365251448735958161351775496499769738833877650774168475303370707104520389224895769738211892507626501844352140569778765042398781332029342637996116827716517501407073438999033835312224779193972660843493669731901070667191711805862716066572705877022069355150150093411049357711539906727372653586686903307853201590931057687316998354974853185620665989923899993907953289407385241105220671429413511976709115221619352918847278085640376494811884193464985444769843178331949353324069648664171706298897119246141966136629203392091982496302228710785622722285790252984732518019491344838987324480695994905099107390183380138153569085915974541052189985498444106752576837913519337433814777547366107170957689312181209249393855036720799628293797896407767751413158031259592669105708286178632873879486873013257307514735270504305329525276363291830675839423696884877678207444832731088455244464058571737094495632117283735959321629199592038376942127623872183079147716304259142196916538168078174715324139986935314573831620136205408139463663172200905378388615913265306006404463438739490743934128126983571963808099539978556210844964019361196941010332561192007902902950000124229659061655721703571716995346174860486158908340524425147795641597059082649328955093174619253440295786672903931367915713421087935371124311440294324013623136929045021866257367501113447278586012393382410928342448465403290140690394579670000906384016834158476884581536881156171879288358949354114761828198275712873328406251295539987956635069531659042638947940061091461460709196657157653219149187576437897315681076300384120944627177400014617882835526790228744438193283975647492496075716629812215569245337046494596166463776422257076681587320426604384404051887888733720217601185980270118850028768940317731364428848721845977715031412941681072220241358639109440099166134617874404306408002987402931873121696232144705527180156945234465673551359573522105087390675526752260642335034524313123307755602357211817441493037525825642537739946289448847055004794839035238337321851291609498825985536025684643061441242632019245749989626496486413467207387214392031906119926884802341385495436585134526479059234381382481809460830364276265795100912761853035623806123310704118900335936057740653088935547082623421304678844057584942379221986701791370457596520814423540459232436723189393876223959667327420577713353781857999943850633528833692058501920283631587259642540858901391461759279918320546087220132381762888282984096566612470526412749157828387343081127292421515957300064212789395509768443430877835026901165382009312614691525733480067246666598521349431795046082076409692925332945309462915048184622970829555715316987067883778027909258079966161546939396363202720690387878485046603402760728662031175471793291962799166997975270207187811715503774943157870199675578237129496069311200738601847346071802434988656653962185748003750263460946382789610886512140243714423882780227789831953171227555190050868773863684943125825441066618161012535778595432034762581252666380461793104534990467416850841051112903074485990481103964648099059830071378156279095368651272116880728937972806223677878083457484282286057778814591912750297987881611720023763100796824948538696791275256251911568637823088490317816131732239011517234941150001167825341299238380148167984873731777072515723865499596239773894526610631747993885317669095175318930184881132674359542643059247302879166185512442075999471716064259408990377758268771079057636776072480651323848574107025833907698142583948911452839594574255265442848520393893428013941106419385319803156996360313401461392477146450151674006430136987729320248981607062925401717649613409797933195208669923597571390230843795834861989519959489536766387536304530792684695688536607531339094642222070972704456710493507771768103255005179269744955986247553585175794050294039054302787820712306211148031122828213458059553355942943974960619393293679306115926201656551206106481533415023859489989269065055173465671992352710853816272083299662948980206374221150122435783942064614571201146570540032961634296912162231790046089189881314609070721971913348988683573635310469395494300253310236071043820216289929116174481073554234004436282813542534168547144518840406515169121649452026335597387009192204649662612220326767986272473154112651186317754278306229032265968447956886411277834091466387389272498569333735507813292671878994588545870877304360613964727379294592406160959450255443515063218083970563455660226205485023751632159955359212107374194728201304797775208919756529004228453148017006312488992032776660609992938547589622944296247147764551808135465523196102165329539451283985544755868120609911857077197808218538130342425837673832192570678403035111349403146206681122072118024279920712850327957948887429680004634433145554672540597779111625715372231133000721564886822438802789582843526494137691098322376953407334786826258327692728611433265283998083216754050128748537165650554908489406137871094651560840170584325677483044155222461936978050026818680117862258546710694252729768289869025924797915253946571122418439977419555059720054699686581446569748470156701286199157857317340521445910625145081157708673823964851761409181064949897039365848501828828019321029253957099830513116434196663857618115202520660016775421436938294412304928215212368288500323600351894505156850516374674776771348173333981528742736055416302450088381906204896128166510571427972171348256717378212577037018112090096942892898691564653473788177637519495240722768902741856505968348767021178573746974933098638559570063650452935602561634701787033366616230792904685188164454470613956797000165042714535754497869101946075459293437101851731990940316400422363484641207814463493346346223074749289879574340175116762393586138933655408686086877139741090481144957470551128485163827451550999587900486863649415387057167332171867511246977148665862937968577335415623859356826156962903159534178875110060046807895923919218002378147600384270557786978989616632310722097428273526886896604940916827269707681995763928740461332119311610829646993278663268029660661159168975585450146777641862527548457249909116286941785831417459862202872132129599055612237191622921184409482134157866290273757475016992901276798088178541301421261849480336630142335425384943451882377930773370771535063376610235068827536763819731593409405965540186571385395500361334170197087699213517232555626640554716718830022591021450665470369322022755236757578264813608237200739572843757953389831869899863528938321848365963433335572714015019011999741433991294035206393309210879550093305319911339038313507805297992665957763951352219597216209162065475620559385554198444974333393592431627916977596819174900677998252236040621707155709090457305573675825131691892553582809332593928384703094288007372286553721110287898937384559266188499405749715521338111742250674482193873687465899567633848020879349260842382670956726604904303555096210793211132526041062692746569036240580061459822108826220413367565163005844630974107790384667475177383604306539618308027673065045350618174684538993973418134867465892402142384489358150509412385780028843753377095229056800329905867094548367077349189603529737434021679057712725522854046051071890199307367790107341982304111065815787230282579468335165128444987449988072094254048746320049319393013884990845024450150932301706974408659193482704742596145109202464637979566434919243048026639514234546883483103452099037043460592713919244250395533107305525272775474967433433890451374486142653118799097431794676359999278028883409922565962894906104558955602157619717094205739067572227668932762640289676207718548548564306121178142992265539918360475625398051475658413749090818568479189554416845447066642414425021167372831565675178547998131645388753882346822554064979154393440301108718856702562890621462811535545480818806019631827484850309991226347420066866661481542471009699554658832725247964332132230499685351742761601346570008893785573034539913673706254872018473888517798738206340273236866862435512307932870024899234428002072181262497882906186800834567424010998145292608218572464099343174352080377690578403601290365389233869470421815522331994859869838860498575278801276258230950153998833842247601218422462335041799942048840347284090535864641275804167668931620969498203499007785094542665735803831315348151019227314555484204181531356398473212594519757746852433547828466616608606300331475180269363744826555848328489870923799179762628040869988165641991340709655967751687320333294714314369952010746090036096747543717881323773226955389455140279767829908022290169883004661865124581589420606475038246401206122399149085732071170350186640105924339720271851569920505034674550597875239497623834180564652496768943215576783261787257542758514615982791941131760041661414014088245633157363375954148359722467721030935770169361260149313142130365723185761446920521684336247126687468298658666967966133348395758579646857133431743907401036750275854836090598965275585193837053245387048985132872781422836719787390272177852829969277453742035812369609717857699082222759856054271133259270202266362385241848655431154432334891632056436887846032312610885695061344685086894009808074014177911705774545297708070903561215876163088267225226171113368570082384152089114071322270140807041712700448803440053581388744023843746227357815398919117418988519972679677256193031177848801210312069397396309069446938804866929059388072270213505901419828041045258762615850615005921786222218093059651871630887167679115263180811002522277266814699813146865686787046822307867228846366696811180117588606255758467686529589827855348449537356988756111465448063973198146121116827510269528191147769136847159685173768616290375255685220984466089894209030798385909636940677015222020155888668263425554982796346025800527992543331833345048976784257243018801815436164151079080892436976714861623521936142573935529570076209202125503208672579706482936745966492416448181764871159911545311911830366313441778766493075058170406800144153989203299053122513777075452342592047702498351046557354799642414919321484024934004877900322575844741213495027911007684919935271370916456004196860351445934924575458170186829157903041682793233313649237542650643591827777121705611722127551173330752907602184915359140396850886891204079132128456819803346147599371007210714991529185443578112823330997532144350191277902131418958989250759921339526836702710347201984824000555463624780362991084314111367152514446524231458539682044348554673972238046847402522346474095832396664823880595039503998909548595896470123218204606540473499766127674965952155500878095502751262499338337825118331736600450327373711566175756860992488344192388351400086628346457295675987587520995585512227390778341792861752794843290173028282931917797585778512605326187087382037775394808669649347471695382384138513675560638734155562628250508353669021630669574879065425370872166336743114901142139438046864976728264825244547040392609869358261148275027379773448056720449271014852761916031242479850770201324776916841767369034715896355156674470787294218779938592145189885372982717168319497373567315581342293936530244003564909162484493841867212084423804632643680057796629316226680606793360991359031531426180516488556273007292284449291149389846143569456362133678786893161815646190986594517093828605178716133752330669891104633780155169602597508518043439804699283509902633153061408229447279212454220148800923891274116096099708333687581525753808942643183231052318094910621632772087651303942081710254262823709702462193746490859632525676235279780776124064599413099168402691433439293598128836877439878247110725482916623116663778387650277808843470485476521177133249092648182946760736385328875774135470905885062069995778494227069693675827206229706457636781006859765791683550518814425998090322350397988014445094800280322325691992102870178882547302385306452588874563521924419848156775425801267601977100471633257524807606473686822821254766717726528081825562177319243722254096380683530364569601440615640876577079181242457850818076713321614198777259042383121238758979292762887620432948637164196601226468498808837996326506582651049713895545383460547372611624095358282102985869069893356782791706810772607827549591057036125320092460268239930439037638769589994972205486380227153152563399578775869556882297200564369493861935996921239019232609984068941214145593204935654240834540136343823938652448476399814212323304573589625352067502484478185649371519606458530443170267322101607590206753723886379327724512501607380489944471352228058899138434920536839538850987464351301039090756162005952609314812724667875387873612027329644274020527773102168163242476414391948428304242576959931939844548508798605085629835523064081469455822343232201605930573679878672011371210239767917882388208684941000530200843295611915865843989219901395740086945256155339215841861261966248478053212592193667643654170539713710927389560993013731249310403631980616685410175164396073699146239372961643419393155181687804911581271041017816193633375687145103678949495878361162678022805103613997152800923787829616479575267467851093550687840862078935064479923815987800813768249129077102336235292396474397182080292790193750317384891841159340781039778364348430656366513528359056688949252836709970916585073353252349175727331929412053382782405749751222666460344795043423557146856429903438398929866241393153715631288003128888937977232192674133830365964623560996655620008605420917452365698674962091961805861169912135775348707373141877300583846267258510938176784555485947377769048388993022442679104526648095145658716666580550482069994278799590735786764049619951076750992342711492571052534815875628224993817481569525051327877355999941563268734984323752765466878219510359284086827777000522985635385936198482893802595365555655144092241125593145106499571508839658292139362904794790676658439122412409896277008849525945451302293622879898198516490664513166158241404386813904179124680884268198486976043602233610846008323587461420124661974142274999148195809607773538303067612046927293981604719344322927200605860938015613736827425432766056422940517982736680693334818356438551271553434975135019557006978540115506780766983619238015105726121523890685670219995086593746441389719525744098282453765435025372644268748657907164132415958998335183379182801074898521925066134281069882937189359818031334985247895606788061453286536109587280062743909477533671612698319656268242012722346558933236755585149964269263642090187262716603575272736582433434872807431896684227984569861348697595913920558322295454285136091897445511215732838785054798598755756059603793653136331114715913986137455122185560850509867716170519766937376277389090469000911466158982640341838578323269770714976354954785685717396270939440147441904076593654027769604704175041363574036206845694539190323158132877151305213757199232998503075158392637221080039505017710664293395615375841515545431936489132211890661908825427680634248649780376936498739734492557568882086525984951354883215221058100388948084245483694100920014155269321804374887944383716206708693795956262778871144658553317290894149444453971488468908400412563478103428502404306606505515891570714613185784625281304761286401222979657337785768189683268230289401279100879571090232641785177942061889310981041510669771877706633136541611383007173389799573907546584194969598732058805926719489697972265774562987502235326824597942446324945130106137247905207231776395454089042671594546193377512665213968025435013847709895017772741256044266525086112112196558009339007847849612957691806080436757552123220973455281978672310935079389893412036808907413055542502586432959451016990651256262299863017080649278804610875785360172319356376399750603313131054227981568038324254439683382125161180942897706357060010118625881569050918326610943332594557660700683720437437914604785843558317594819004212809341530836753192861931527505155531574925979740688695930005991525273278708561135907275342126566997899609336560954061759711181476850555952548297571947103005894921633775012099415792526532394682415318832594742703138129504617361502590294581252621470263741663423617690813582334546593956085767511770029976992441657037585728978884900883537785351465622468374100344763371323858921614743312595757004299248392771435960491179308468450317170535040603785144347380158418592600380494741534116957900278337601563583258061704112358558253020309390100581898710259450770027010170902750959456713137413995553116131267426804897460922453914134284909994752483585625576405471228951616302454075143507727549410907448194508294446657845314530568946319065694857313247707455073275168891948569265944399105403964781090134762679487069006860065569418852033085777734989228245080871181829815973051961192341165524002167696802825901754148267951230093881950094860962846427582964410426060859795035488242735408242012423121918755014904316723152706382047369828881698040647667293765044988832595032621917399957187857961523765871090089773598460963890996150950858952104404091461198521490280407852268607129709035085759823774256292996331122277052258545933679723734698256780892937416697934932216835545606135645132581311230827041256394598964958448972589361917104854503063584594725213559012820143176045341748590947141896067999352522125470559148024148543739684175997016193655425451196732269160798648506432004398739641141698849015087509109796749420413214412869630980959229630432034622048489962017373677803506289281831746754471829776503956154304680360907602885913660828006460556851706546540250225396835733149945040281720554605120764079780901762669315422803776045557639957432294151240207182611322994465761876596597475032708791077511624948140179144205612367303335307612526311381301495002816075110882138297753691100491065544108105326083981277125235100754986522811909812535396393405557000474107346326385509965947188710628677421684845745676910322879892826515795720344700812419474591414272912085997056819354647661840944044023933246588458003020110497254207184282428015118053059425082707869671235194759251131069740912734923534610490049955002865606062621843512744516101054478856639291787062040848985562975942887941069417796070299143320966977893791141514502316233120613829352109575868247721724932235167381419529311534613816764838415752622452205524582992648879263356865422078668497135581568622846752368546570512425884922559001331821515965999575984734749326896454822265102015139737647157560534236832054261576213482760207663166926752856529934819365749636220384274910851867166162941618331391555035685818861539641754182469868957346123567079356138388987571981473883707576296573717588422426431834172223855297954474796846882408587621725661801036464786727153081326058514505976565955780527754606242780070157759393923466091440282847408587683264970315460732204723366850776642765700852349408291671002899816599095098467292729327626825115831314968069864680535767924230935497889428247193470322184792799876372063922737779549232518967842278947148067744752610419761703429571239137404468895411260375069078267704731964027016446594247923432288012204628397082675196178003264634640960712377607506320910627744605495831123089003257502214993580579630238188402202113719644708398488381257367456776284403845561041519854523058064067596087198304972876738056146296242727606875780232392715714761642476165739025378359829708909431366076919413862743378216307217715047718267181371207831851104127168377138256035386425097031307471295393988306191474221904119917401647426014770708304138066236534174758187961780235388756837990068882412781207682825196576918104815633141206797920975559603262415943618207142037709358141116585610498541958864918797311089532358009833268974541696968502851443120507291435052647553398699727141807700058837615737327574513409042045065141540038538388153170300072390448981313080626916373774096272038340009026954690339961775529276347663600144979289197370851971144102290410142105726899690344094978586945744275421835077518952962702439086882869460740005217977282414890461845303672787799507481962161706419927366028967836652833510852178855057740021014487104621747517942237178267700257888398957313770386496412517227636926408204094208395029581794390196089799608034228266563042159490287056858033086786272623984807649721810570458819905175193806108276492415991509097636493979793388925434983362582813693824255690220526684719428974511583840571955190846046391227765507946721049899159793183676531610619956602570006351097471970673277258066388963563269531406749354203146499734648735486092895198511587282452895091841493054378953831008790705712506839160187720057063376085714348487932456216535870624320810777016230458509301661483197940683031595725460359423676270504029401722873421194177646738543718444973669642408227859900891671715864795325242728489463144269785081333362198051176373411807126998507315360601845104457903250059948306363600994485782130544932557023991435794866761391831512880080818002245648861318071118188312786715825172830660799944076768902731848534711008515331106487834815413659731008137748075228087509612571964754309658867151349538245432376511711022781251251671283500740412924839463893642400655916440438080708874835735623822065599677094663556638062079233568282103754973269070986761666331152660914859512861529614955978193132487726496267296400764048424167976926640175873172720758418925968660809171996414304254586990211118837565704744893394320088774878763055066852198340613833331451092968659741202662661883934613452316445342460975206020973262909639446742020331279432022018154712808862193197816225081288010688878224123828612102406180064590548535673744343039394933812298332865535798994107867549959904105893994080069209362732186877306142217062000635963957558975346141644758355829961498263527275155143588123775215103923727175033774463996409138761200184760123582248193080557547500978119855074217363187691393367575378405833994792193603509656316226129051628333803925988898969708913174756704581585054829268040046388333766223097608107398695309990588863960685714413311727970519480856622029944443831663577137803051800346241918486928155955224377276427342933914730386680842658610026655084818488823869286670328036308966304071559950630942417187845894327421314873553704012088478223653462043672148566640306445344328459024031700475183792606421046435961258201002980567651512760150325205539551042680091313272902930272259683798938205238254912291417138086665287560704080693667984544839571368336950465331651523917550066432111333654728291504192219963383253659996821639482006230845633339574639273904886293452756727870896271240684337060984488181551893525614635684107447760048670244795743386650713615849341382216212840779936907259151784420087232475657047565002877900860471324763169968657996427502702904810179578293848653663519511041512682389241834532983089811093714080308752399735916862150792309231432668873719774726843783143024732555278344391220620178091406539526488124898298845127059074136419442656934194853526701106956982340571097657346804141035355965483853716159069865154884426264764584427901912490462640405870869106280914569245875192073512603227678976785591064215415276491038906088679969469801986038289829822700389244803349640553234810465519892200217061915356278027831953837501126195552392669027876727276159167543908930424600016571251218291271577520065383426167842538126508169362266475685855467526680225420945375334937115292136951016060850765472994783942529951005961536478786736836743626420564281835367350552980896731455873272439735969741457960431534366285326663803324744528178974831094038453586261249855404360026670814273805351167549463397384369322099871744628754212043609433070003136679663671107102697705042683173589720841699113829098355540992911142607574926606364324763211391480404311660933106763140939677329116406316790207940912677252543074557298358173588173539370759101898946039195840875343849587497937114997469696852654575959695195082085581696873234388705398459355736664110782330903500023226673433632772125859876668603744617335131157936143966096422665616118593498905320141261717474688106512813260980150943739080077962328065216558665796109949081750296642086141724509231527925828879878140899564414012965719663448775197157231653340102429839666306957205671057960788972500982244696812017182495093176763826920692033342002505220038232981712559968075200407620323019196555385684978473326692582913866327312862208230985287916899165614425076426088334798591228988874064153332763962345935687815376320335332267885126640294665177162501128455443863676483523984657451816926607821162003308704550005635231971112884141827120591149555406046490917892094807962155266982121474445653972094947112467050520601761822985942975272293317988867859650249308920335135212879584638325455622564964260642890365464548069576226990015175659193821153134278439196843990434061425870353277811949767210416417682152656603677009645248351980437667527177190128209354840419561584651996414788307641822918754154742639824005896753727768972176835659243898267161630684862163062614032462607795617744745545999615368275139294111002496560025541755245754005726353011595689146365252733973560367382390292171512398296368355829076663450549288793553620490323391249243201789350529972463475759868857372469644375174669296688015539027367714828384742638699577635088728549914439930452402331311077614672591025579028551230600217903334531587552680593579185581245394697426614176181113336936703855961422553270033650073762451474837147397874369486591818279305233447642376542315210954687700846717615184625279837638138641358708516909391806909766037104705163283751125230957145832732491447162591742404633925977150950694009617160812983872069977284165152631906228187141700325481927265936731022166997093814298109239655207596048370027545879074288903883943748509390151593687099459208472588020210989155794308513103630324390452824103108798399837244319106312696465257889581348206300875927186315000405155138230671126312202146054724286674336813991044791923734426662257084178118076135388584567252354929775890392003198907965412274184148714712820408549355771276485796736397636013326665874217581554770149926017003256968470330151649488824659983600400147386604252608584290973769307998899703374232111244529363466517545859591233651332394716701301620871858643595461940454353370609995713744370763486675756190834638371361443054558914083852507387985350481641027950426499023354924005934148834944343429298931539757645942518888310212922151432880982404591035104508079097882654854628142807792207716919953372077036487649738754619755497901192848469250716812765725743021930006698180774608606538712351846060865410230974976652382073422470077230647040703641028978025671579515434288937874408644047402654529812413887271956333331835238751559519051989562793772591278113955563036974029341224982642712913881025634890349920993232363032415982325182501459763991183371138603725917112396887462622576233734366310784198223985046241401240516714766451028885468551892848936456840394039256187955346545627400590565421120355518937474014514114988490301827661948821131267268995042562372330262637887787673560952522708832422437927145954539704119407811987510477139139751400126707798251820176410273920293320988220557086632837613424129791453133071698401518226454260496037469663958936627146771165505122157238610114017288684984956641741035122433272855672535448420263441354717301496066694949461699823944219160705635205141698441058489691590563239433534732529636487154874335573919642582993552495237251908436606781383789527703062463076030719258968847622780444672860574713738412781480810477566109034781241653949057701944745506757755963606213153295805906998192587239015246984510778750611655022936553991406662748474807778538057711908466047029864042097377016576791499327637016603329126268443261698865511278380430754657795888868898340230869343741378711338410896171267688935783239117281400433348391465937944051647000596305498978534010145187390828897375980482328943484345352527418814891597130770524740879277920662575466837734008712212972234788937183055524882713753300598604279826831803769987636824474285497015029401483793220711405911320413824177552611708472559151606892294461456316257968395906487576679458289618078420190444771754852362603814067973016898364592812985638811914912614479152509911753146676832829323440218072802999416049285045986160258036389367380076550591702586464721330522851687605602118576454385037798411723790461354551436452943011465228145156048272767865181072876686157123973536981086397358952210108363853212126809316888016251837098907284617902325839434902261144652488906783710823227075321850464527272525880529167674252369492849558696646872265029903025573317977127953049903342260614935363798302117344469114611469037563746732003478754370902001737572694635910605822752380239295217109220068879793840947032598290579560095951127232577234180820331973574718909072810733783198016475666737446872700710251844234702001880087727211573472383407631556195066387080502481375650995472297508273933696174635336325349558872455622306748859069518332682548109227938071550536646587199984055491153954188975191639988611131337145801917100684129437819074963093336872864224186800173210049383290032157622620476890805542532412031041993777692202955211808740228902289698827921068184787738087715031320176822716724651140664543809708808269908398391350869664096155566757087760939411188895210058615259650957854358814710619990538012959873238377270129471158211404307607946154701375090110459682038428729149065321474094432388740874283509298029079096992151727470813353046063752835919237836291689741995504005312255202676945015250433599017778934496060320855741273559941997890434760253644970691103302533119936891807434469234208538386267773427379895006160690125034552161534790284426919845681436389501229872187799103593426474945386641564136340097435992641068106109317082785826354697922299675360679924849320643678954222935593754638983237133819995844378698946634233668981620659180350356282235225692012343525717018204267327085812523647784423949974451290972175365711450849783111617441390869674789931448336880706198097635273367692605427279735382953091720219286052689132859833331843515073421812306272048508661794823357537693603331831839225308288069480468717036897803833371761660699122551034294171377225231706954730026338744955208849688826593082613944307786287229193864270815295774814639291652204814248572682769542749697401407334722155797231926805125551236952325799252102573570790074817286059397581514107258136981094494650776403439296452975524275093123723849562948878058513636890471399902761584566276487064196758280634412631495178351951808908878940992479677289926375323331416217780183660456047949742856955593002146330010883975903727338532932610939395418867419073798253758268941931053748658919213548803539700330964452721588905572592649000788237594813060998141909705504700414806325601262514023844404818827462152330865635795762406351984302692313665492630158435077001853612555228637671380718689846987446152053353028070918637889249502859783820477759356439236862621945187547415180609818209856629911617577080311329650997963560933642781781884054839807416466327766975062094550891101056810702440095239846262969747664881668565815235033917198087488721471478017599929598295962593758233048384345261064412458000589770653254433842089203264946768569761487762226697844047902210845723653229087264299810952375210715935298757971050836063914089642671456195177964850580021270853417026276427573827320264182431352825781758460541931966550204753100701729081203043551993395810476997051976144907776955252952896126328809381821401916632205003691619295142699512893399249901640365824385208212136877437133588064452699619179926766093166946441011071521182654405483522321878942767839244280475700908875403000403057333082594708688831102434028693536348550956330172865478277031527580889866880079298197955964606110800323698380639909436561232755258759244769878286386159812324105559836907300705636936008056563043881802624239153312808508775390147006053723838878656230228587654849061773235900884490897498537132931743819817629291106953447827235235290898871315221386053578617964219888096593997711157934926078760196435512040529636381936465092277805929855975838067667985880816994451898204667464790730255947195688852585648910244771776072698838663124367016662729081332625877300761114680704905118956970581455892973303863865850296542819558619956867103619231558273640232406885374607154190529158348011411220430229333564330856266731092731550096274862505538301560484759935199505015165183703022188170605166840199784183861196053767321823797021891585454032908399687915654151633801550662881695237426351735479182748298985150123743888518910433777820701025046843296549037371671961892486133368441706506580084789037819113211449678812256539138799496542374301696357335431348989721080026042770790166394041699829118316878331310800842416145991372074707391364956973662655733303552501279849639375413049910652522202063447429490908095110184344725317428892831928881904888210679230056914206923107782197693354047079537106701500416316074529050438688068726418385651697431112014185046912824284892756556383283480923417668404324388599029853376879827168306127050549779123464990041729339915985246725124813828350805263883670852445256186419246704599290124461330667136378110444130731317827038990707031197438231779347137981331091730803509752356852779491569278629602761716345383952651993369578896390927268396292828488629834442625001455496699925628823915238231650594150280120468827801349511787730385904272618661139415387998033654310086321257691412849071445981636340410046077699110149567067330109894064710711557123275443157700931625143197714902735511050021300558299185725040940151696700454928682764504257317452579202226856083164262233812922568640292035746167587698671273823878617584812918174481030441489155796116199835918293289322825933553929479630178543299229284684878138582800129052059639468317083476938205056041777913799051725423132573342964850375595763087087658748345730063477160635063935387222397781097425780144472947053435557124449209150596367814122079161910727124386252249998915182092467493632239880082652618656208547053042393695471963398791558369509721954316075475122288974928808644999929153009230616439581212969526545923159954498190801672831298598805157573244421502190840264097738282165371710474053360867825524622524315324939566964127338410953573440007108453609683896966436700235456977877328640116826665901947985254319495073665531167558794894281566480980086593937810336630813184482385215677071685978586122972012482468916656271106252380166420476497406465200716433134160214715439243412966916771428391644575008328264178420271028656698450769703419437076694617461063744998325280016207814469820586677793229417891964229441032270730549602218401216506082580106146174788401694063428786110258450099413246508312131696007022295449784861116549932099534723299833179584853028515342552265474996172887908136890157328749725167350707942292767524981500122754443262946713796218770122416271691580452072690952456049947589623747565233955720029401975940420015841357010396588340427248273763699013643015421811767972452624510578558912141915882935490069080595421034472419535838664679346971364977987592712238284627589452369796896470774502853925206638045560831597008448508399828788718445727117309678255998963673365054574496789499630811393746847472432500196504963694761684030913563958593211216364611615208121408046304807635324565195211527768440542149054275932794873487639143856935413519607070660841033805499957193769068590663065351084133024385957321847355443096655209140033897435083473218977711521890682283119246248554159311610796390098669304276766080419671956487770517470722853950551532739133796283186530806584070481932224707459854960001061481995360011826880944675813648213703529098296414345804469022397197916617399662150722155871778134988378284439852379285961564829011635634921805865828493877952057385382669676492850748522855561007788195332291840916140514390819234578162922897595280638863413470822958905950869592242068662419501271909340910125213795821671196275702640498958426254461952871006827270238886086298765845548893243784396382234113447265838422377821981109018013772678493702606953294030008510521555639422472381154858553777354857492374952544725655273415797989001075084074523163107392777347426045592811802493557223642661338936531272553800736311355638970196542081544037886031801177211476180102060549564901982783640322451766736937126994590202466723041126547011550231641322530632194003522064749722793966051582653378299043550136188615071292993972457529182404596873725066574914925870455923338927545074166767790216671001982389992115250367007100362684572900436875015279151571081226054712011693533486805364647704440301519970650767417419746404622894190265653030411327136313457921988763032060853345025457561775422289303321165959856343635687954362979742805176423459296634416439076490416603205618924385780961888412955147216676669140212587946884290470762578539523382557447528904634529952102430652042079885076163767869712292929317538132717369610388248562344825275800230534284103154467348971665989082222949986134729404786159502577405585445039615146339572214561888189328642101901271843393218798974080503406870922435989211955586159183132831432614181553256121883493591124904072077077714854227920716520286366310093067266844587623235697648268136198417318963484248071762730782421398308772308236916610859668070182687053657814689880979996492868550204689280107712420719986899802072781633131324877537643117030906244759228774191112415655940604678989350333175233622017822860205272908040718891512628639908020032003812203224255438227378035757273697989193090524306044272361473521925037069292444532138149592898449877450468362968736004266338089758000084919145155136209590686999088847370496742887160581663574936687796734890467356491190626419204813092420588777526366561293731673200945486489052790447041881406755884398569442725529756354237817836929683571701974263751872096504911924688784276095775527704302421814958658133876181425038779636792866915473566733621190585122570846767407544508617754566457227339028771308277899908686765655165275370127432072883329982377703721781208117255187434527177191861055554845168033472793662828374223852705582431508747459432550446697387890797376967690010369968939509215133769496798030428427348155775912509181830184007772333368512542303776641239002526223541158372092020421227348775541992293081537436726281831046671781099249561011107237305116461178852705467251067096895964875064945592906582704378117215869188879791286277985869958920360141617082945597062208714307132701203483179586665402437232824010343091507915570107887657352786397817620069726006643693769154349089634776846384615573273361574822634244598743668313318836774951408429249305995045057782568957522465814078700820258027110301999470930559576857807859191417437987876936829256092607764994752476394573556363599528022019539209212788513568893313090264134617191230676486846075551570151792489446097778368965329667986683314767892331308415935408164464799641497558924213098290631130528268762010472813839262937448314627770332278125956119199145447867941830511164499399790057120082759307209897625783087833415516112027980888817742002353632677135902340179544569013387109203297092090251826962221293035909752399698348953550450865096732693335725870174841846714140014844306044840905846688206757336448899740201408296436121347623292947335763813962527969676267175347779224500161572701395606201987709225871601596564946669339457614595596202439064415289916594670948596516426883514344347485018495581190990156659911241704808125751300480548176730984152351228497300555838700113304625469964290141139160968121451223277228328162744999095340187954408792164088717996648703497843176163711790927218842461833640124108723107278932647895522651555453788836652687333440773024450653199787738319919080283413427798973281603479246929281582120737546045313720109761338502197204825201702350735807172368164254890590586433986568107099696715222687559399567161318728973120455549879974389364638009764980408742138504373568471922854220167342551649578776934344952413971443223447159345275388808437698395245240573898502200866391345833649879571039905150137684000805102215000110489288092471973944539679500776918950904340092793755750308145319212733329017066535124565859211404417247642181924039515585150135370492409207038073494057288527770890808423060725429021999969690937593785720797714943514212141191013341976230272824485400685718967133902119078935918785325310091295422306089575197028981169462219984835567305170906546861793669397686375679179860464935938929231032181449280351459134111860365627161768192055142063026681269599363790043906755588168619671077129562466168634066201006556867492848438702530434276451579935421376959876080832124292221725201485217462305397406122431301074421280262852196759818662408008034159745839636263755845236066150996428988113191806131284683054417097065671949812855479494611496043497690405179920122824348462393726100883720983766842192624504234191308556844311165656029220687573745069305002980472602567734301107470393880894810027829256594264502419647947264146192292337731218357279365754133568110297478962036049563315258984261961990091193929823384263917408474125163493307366651804476208363746563933243266259092231110485605940104115433258238571187242507352098399236844731569061197134936702897337893814302723696801931747274207913472107670413494676158782475513139502425080934218212206046906165038943660516717683553040240117390473518870178313074493134602818261681251970294710575560335913395877971233716272143958034766005316425490698108092196793979689834966602515074124163812248887019950886961335576465731480563962169882456283173277517364177211820639692753457797729734385737210610303889133869900868844006358033504946802830049249616635740570891845628488127043882184875685122642261770044011820293803613880202993266607406042881915685322558002582174487118930280160957751762724326244495153690852396864363788248119502718350862736465322386569703944335639841452923659188812576180634466547249551717290782509292178498222412940597658125026415153783335653077535526226882138231147196889161838107095077085278003509422591427122704732949653283721734159762287393488157206086212536737828444454772452748935524172743851994948051647999746989540264024215174751470790091909552070922507882283072011067116036755783889527234940180440205856588518581525168962977163531633020955843940972819703199995332981523269332616536456715188189689748559900244136186869917348736985439042152398652679064979255218854800194186920670834899922929849076215686611567338255418103065340000414445052078181924548935315543414161611079273790488845684793085096432416719980141775218220690066404140975679004498214647138512677370684042924144204245337480525802724599206119524951494086634279951240646545755460904419407934703066134521874873260677592813841441957382475628792385349396000055737699181313908775894599765823929449289183651176645690916655146882224521956226067419034459662664121116655241089889383364646683424003162625512157335125492419460769327065020227137093420974053124445061488665172786380537240351013648906867420566770308667476979501724420372465688577160722567931138273649073917672165337320230029536622851424923311927377095078095450784740653636680110382231052227856990691553930120041332917639080265672321649015663797932189761725277475187883108379077548958490195896201806205409437071416965440414824425236517595398827369641823690139212406795435469916502611205990758392325747845902407739722191173962981768575165868255435943133734078268157229598568489411168510901571243026379520567810997625180184887509985836136369887974409921813970883406503188473799828300339756977093657906396208651018255638229021854214060372096601379145343398872843625568850818634733799978196064594193934457383388113914354284626169094361605406556955853701134825092613398007972310986299092192992838727674716668433686488616673864716341487312176497404270389217287332594606923869520988314445936224818978953175947373714866427591860223268853538587176336039142311906674858962830161482357102053705578211913733364591131294185960115431756433298676334911602820984341892148740309030351692889364980273967132402091230906589704667825237887981792982303546033954226601803916110094565166560480502086081877872938613359880909443820037011212126463924562014891070333091779744896796075901182284811599493072505569357749168412294842944122205600949747444477446950839158991351614112517282660588835602669722837710341108750657891019417450120736888188277333363354032520783020634354711709287027776110397616347181141863573088703729141463024793110379116666788299505684745969426132975111075302829716282152304917577821177031049728252061312968211430923764269636229529834992501649895867052880198166462587498678228962760333192491817605710682279195180123219890332033724198993353459520939412280993377883132135101854255392644243525068770595289728474505793374031190158315658881670032397010914398603500092043090841916298177377118576554941242097343376835133677171839294494900021963148974649909145043184298140697247898288723405114371178352932527917959732234471210722898802548931313942733030707424461912253839592289512841564400231219349810726523925681161023874036677462689037759916385670410496250762951976925840184255587215659334031110969512051404514508018020400986017223664709498324021441538050438355738626719567424391841082655433800683066182668988264279130391729798062990916970632209819096351458120367475395039778933188627274137065968379077813875693426561203331457670463894253002497986949707849077589369505873207761792585329076618564013903954641051351866387636275550908215326342591383031829233222815198746063272175582896035349320323383147113482546641391638576477237594935367661946903126889401950827608095277613111817449214558082911460476675813852012241722741195050572874853319028538408466991514190229939193929756222450464348606226612613962741333747214813406998727820629347014968221291913485679789482372280026824440143114450917981453204308732170895469635511425839082403262355780931474408934679552427926672685882258941959985251349412098814784865149646596253739596491921530137472326386282540216936089703466691831951931658053358007468378184504013884659554533570953370957885138377286941575622638597169989794725214458403623029095743036366373736479583309466700920714789713979466137174001355907139967254449934179470183251758539083967271311421321812534979988583832863203184766543524820813495038662565807522789906863763839214658580597003061972483017932919718999926437150639439742385025456933735984173743537485291610966179651467757822929152838021475646485590910094970173916496170026620769176297864180106340140679048553855707199044281225779004629579703208931341602736698614477634711712977613548685974792148610153453594888613869795603938422595312226044339826806699471496676979408381305387712725521860729036348465756596124512192692332818560550201503771607528021666823263626025250247634899051519579645818412170926858559088572862881836030604178191853867601096415425873292888979638101199555652427323342103862759725505411049705580629643846332571215437246321968376426578542729792821716613861911428081701318895495380412438748237975444636197545277397434381733397271993112681385467437339959515233540547678379173376152762649811018979052605047665603733667352566665362044809170392349826625475141658900630041808752209005898731822253781086782616745514057302443983758114463374658659494627912027225406319662821823087839781766030739879777343606252576588777669556020941314400944531511369293864983387753860528388556383682832437107277315881404127237065081558929412946165911027206125387533913377891217956517180737632351831005384661846875071479923758474261658232468570098845321802004010054312675925342576023972946006089832381337136808016593698540591802895510888796545191019611885793488663420497013991026762350081870918557529041815314638343778254851240428977337787470674436767935916259660822279910357608435305108656191278104039053372498952311267860701000629108474259460496510971156297035490031598685535721516699402746007151083857821649382284768369312600264101733781691123196015984272695146520649273181477827324957605674523646939416196737422461622747881506663059564537459062503182891646033261646636772224182388031966656731355599893980313925720951012821332352829797982423757643943953475125923391597229901608045553461328943373562349810527709108637367567273198785163194714880104809396717372068941593268976482786068363709241615425587148874585114264530838030464243899728310831215334496519431449429637819403007260140183404531563013015360048790896432966771015171857569677771470990076127868205171601990232563498267739314791441361763329657401808749580641820241591273485446334158017867440654275312547639401272845973035800392006814361349952789875924689219994879060083199989143785745232922531071863539583815102267579211904021713666406883870303321570866393441911928515972602786380538992500048055976273761838518849424223936660883440159477620314955870288457532185974002120039864632641583571373600696985286936600268485073845688060683478204117645314575952371217076170547349006284305027351968394765663990524800730405121301885054814002363699564390398982498484640235956281038538338412108263252740093574347264962243475753381104693538741304544905512040190782860273038748050173987745897585123620662735529376029120077892904222187344085967092515704893016518832423606858083958611012921953585325228032127259967000777695846329523457829064871902689949817136888195263300100197893204080486538194044561942411618981070106996059416523134451539842100768669743811426664294661981047281152852956515059401968460965601824131382942501227379997765929919715291905140631664973033834268663196561393561358484676874768414322429514388358703170929240487457428166291334261111026530329172460543406556944860129721571004502719268501888735743133399373201128771475161114222294817469185781910859197828787362322852923259584372799059964945662326758342804281637530272264261784521928762961054922995834074973446923673460867710888319431092771122532057139224810829395963931197533305518311394238644698549377712866321153377748712076379249966052319604607916749951526961648732295842371469276912140146812247245918042270595892001418277316703562032612270148561816010505699214531067872378386964320943480716732447481685521347188856796816602433638423783713651062120067717683721742899946747902807760943256791796941546892848806449717729522978844969263833123881238835737647239418378515361723133207960885814567632894350819566487127438722301414396908744153375068619765466711600238745750510304832012092014175086434621106128613312549348541977320517832281061028201654827817887723354583559004396303602100570879727555754789549138683503426342774718667329515911625247483940360463697902977250065630649229903824917196874381835248980812928107366141703232454005757394236815837471109677146695651803031761747239877072275987260929380379434684807065226010344620170640592055754179416940058204801501359929400118806919001478324526934327956845574183841136990335598885293852204829291134872275248995100164663174225928858193521193590706464559172312501045825346547134811288046943953372512665330636150004632283313182342169710564983788625568058487350859751098102676557653866960181607537786926122862875112812934117304968727659312352023117780727381120528690612331253365750132997885178270720894721642158575542998088790051808335234249394944351775282195235762781408916964963101237322248292005915263929693202485712427900180262264179134800037479096910679444103850411141828058846598627132680087915689776610535165362075190094672059590940476093902863684514665259017125731561099795467881309973109348952947073834871528558955034579310995969474630493366360909466594522127064497813312167988878584243184834465168756811029015271824772295000168002248397679342314214445257820961846591963699790341394225762336520529216685731946563836184088479041622859109031596139936126426149866730532506661277490408592576196445522755130068855935025730733850781981907451324293614307047735477684390399582014052383039476371135447405410687797350926102033735993798854706353488741001025068838252557075481056516757545230852710887641369317043059942028808500166034083571059347620271762366526951835088654136278613087232543054347609590883274219718838159042276105115351184193835366044578912677874002073602465233488939883408573685901021670225253665665914544594425880476730467405902185163527841081294078249909709105006089863916052145729466405617002703336399529742235915446205873379729210994971845513233097801417327497684939142257531182526877251758239996428484532164796514524515307143972754073555471925218268800124521897629361731641344440845079064860702996381644080542310438699224666005085643205095255759535738996210999591825158280439682261306099950533669205197433971236314672356419367939613715713171841684476735314030364400883540629916464119581957473926969931159286264085674048357901639106950254968426139674287826274082358109440616341778708361731227467352749618297445203887553432866022303329714058115395129850460136201733092396936701130906111888279460353675973867289862640273390809637674587096912070511984559336244413859053608856609528504612340853531093560533207909183868621420999003248905707745979201380278667278208193351814009265446442479253900953460282167230130129551875885644184052545355743897671061311560621158484248033766490589301761101959397772364343333297436142731517521088971209223463459963932596830361165556894767893647472056632657789557574305452445341281634799701608760951689604719268336187890630150587049806671263280874637451621745587174566507969867465961976046890083299541988055087383039097415470428640342874929427442498719424824826760915997912124722726380234584099590108391109449338566125264775793105311735298329745935249221814904737774811087056690156618257333375814719634424211086452267199515564306501988730650669264701877113803151768056418587515925303572932615157458310528769615801480135486036062465737896165760916853194627460834848250916029041027054849818478293914320322681824724480412672745953663918616604643233045393481119323427840082359301119551909226045704741697600638154235154750088198887401767690729469448813088677904686126832773855983641758751529505745962977418571261681359669730064600437121920654457391738880568756304550091333320649101010044892332162708993649851518727137675314911104445783507802978974708987854913439526939418321527762788459183953758683593563208233602690114492172666800609776725298717590645472989297254935902181601710918212878734490567613215231968608815157897652550613894065975830284805284215224911158771319605144763151861133658030474956466382550330731145035437181075587713672525515159427228440918158810033141737666800330215529734053140054352896828530547590198909931812077900894234155194551975698145658391391942021552595945593839859938021752690439693017429265731400153001424838830176976295641612885564781671898778764499366923158663221424475294721581299316472353100729211323131583501471191781985476087468033922730518518187507996274197651299465398022263733491173844802003458405109093439443091781559632903732922545743656218080805849426174331994520899224991499685495912520713800052351400534444341583700300626894859276053525446632971138917248866838464566997892653799574468032228120442975013324689909215328538467340977261832255720413670513119138589215376536730003652823596842759526109783442012457265219411353418623201226170238907654717645581869529786352883315562956896916841372046412048796632236089290304881823739308823450678796522976602778171304095459293584694929000363834972224580269800704947865665143801145586752459822919649915693253948904300922305983699358821553186954328513210046708160692326280725539873678826459038064464231156068748545994537916600585622500492946723270232772054132504353755142793878186642152310977595318028186372983396755744998885650244842092503811102517122645120098322579263368959481515677537094341337996529039228730877081259532148617801576353785407780987903741352363538946876130766191814106709810504724762421485349501213247287382834530401076543483714137511636877064021159020998472559286649575082167499989969655763299565047263727164301428057247336841584969896707885931852623363769672491006253275408964489611473499026708100483578144928403637668892183614873275741341657210371253681754474744232604913342196782676989799224140595684063373651014048209571938468693239608424342369658238891445246600625972961837369259157678664526783514458352273586359467143004676021056494199032693978296137025441319524344953761684320554067878750428588056255090942687549412865879565563665487981710240246589871347271934360176282436530814548946724528947472904648230649724074013643289831642768479348761561678125113936051317048780889355398457838752602525143802863666763345052543399995941179957012678842332779240117729553342112348971974217753603746783040448039880972252673949702336822499897304758735756864121014185952831015289201369103740988633887357150181397011801679648760212040323721498796030017619678770602772317245476196378958226210435735235352224965127735264907368999070201347386410688146923618544906184756096168322331337301354737485526390439288934910969482507757593383281511483296472581603918568657012995627452168614333190507144593137386152028046469082543739199107182925727682935306295821457247502685458159760211214777355974149551352924095514199957440950479785731683384224087408365759921237471963635257513899511069662066307968801518363415028698952498353798356292481074298605773977773620874276945374170639924090963619870563397844034867859512628133915303156219908772580263884514090554957522103962926455573085099435033086251311042971008708827732536113033241152152255178404666205624776789972965637291455622719260972962662446695119588646979489419449129478422558240169371219835598152052135879388925542493332287012896409863018077285706660266210637634797182914305303371628109772510920896785402011432853267926314985143031833158225551337658492920084297348016998656321881980306831599018983432592027193220398552236410478775723357347545911430023359946236085631157422705480898969396710831966294588117051648657572911550612596006906255426421199852609788042296606305135057374244880437131344156518646758347847177328462266720948749049239094991036142846000809855132813324916447578393440285940153420165443414177383219708682367031063313171875860314478530497691738415764125015978613987516833823279564491681515917441792955679321361828541543328089963602836381219541991531867898390456693385163909056822144727663903765051634421045893918775559901561533043389231288936601518933340086319522412520065604497432832221204195535004915462733091369935242787504132939771911951999603214571486190229097258495682874872423029825904568100855806747010482991945151960157482944458871040553219095111389387563370410886960947512618645114820609465361643449319018248858963835646622106018686919117316733745325135861605248417007671557775185581998833634818369758420273762311143212476245433228074214392144863123139424934331300639149394845192757441853242222320739866768658953373980211087914555566603230353122406956017626568958556441442011750711596506292635116430621268595745385791155606627408109018819594466214268518744572230579413212816435324478249059793326072217830763703539405477572794009460828879081205720210731901496998133828840415627876525182952239481550273076934175109535449278869728146648409229790120559821042700993068127911687587052404700959780753271151662981961959122675166154833548228800054094758390589613045814066004344285926630030659833597461952794500462163942132325619983682946802483817528450397752687902311814570170970993759535132158113472947180012194097959955540122322933274005025641698255244268443537650755923124157595336851690508501736145545760268413459187905440761050947336925155739833939747368723977364872621952914922985935224873211862403384304818880218227629585305851945664865108418846795143073231235241221947219003941786673580414980101655335981687478153724305722355339994121787744557914528460017448330443286208799468510107638725587011351086335515931127388627210867130310340919340277105651090383899548193276345488593918200540196349978730053080386963751606480938875286444518127101781216963362871611697707141038105715170866696265406442155909229681327195002978917955943017373644800491886842516195956386031388614658167737693881271233847385723948910964680253247846098462219045734600682793159428578785093716452684016332861088653676199882430509170807376447368214243882156757527775806065110261575021301475980537659602603849700196676386302185455499727335075787056402463967601304263531212084691962851909880135002334144304607274565197482731941899952485939119382590453716741786453978073538623578958684211986250570243812681893460212549011429244142712540065308519621377866620045503040283989584013400864136969219921645052125726458555078527719914871482339858723771640536078842410458087525161373240211675414226329280620511297901360757940801226174131090483762388200542986462880711367682022562999409250671930607398083729845255303636496901556985715657931345107757958926595695636921976429936567602460386055481894475139994468361812965701539281965329140452392480350955133842352325467105740344817649931242516684234984347715947654528622514929216696885397160620238865710308108647724053680927509143584911231948961373746350488104579593864913881623131466185820548960108900058428051727447778795060127822663243901348417836541058888454369382949790835613196958469492373146742363460708306295383478596962144556524109694336062645354290155157759162246074259409279674278156194231250933139478383327034299871736993044355857033664789894565495889706275795506612685925623503048714702142830550562133742581393427225008799452844362773050446725857982598616989339591581517050075395399575133745868166826822315180601420944759237297213809116487846371364914918783024789948459424814471792930158987862871740306743856220646456660290390502025739754745787909059021743473195959536024070310512476540892552595692476151455818398073844594961892956357284862416249606554532195703263089170994721917138115406436271379616678712013915289383113684828601921552455126526751864152029266762524251052780120530305644510597999848580403780652211360060037397546607655076778357181404391544654290070127344389514157084373712741011022094577387075078533550862597523871079312058219022560627716212713374856447864465751957295893489403898951996875547388024699614707596289558123062695694486173041223582048497611777410491035463884448249139881532511264453069481690079094353874793036035831681873707395679279225003407041747899446046121214780977442868505890838110427564406661336650959645260313448038747670157424670285038458573801683145828555656734094263487372851929476637488804635360634218742446662844734730988077142971349989223408052348050590173116071169387773788040603003240918373128098339702039147854508964449356416844584697833623091095091164331873712013109051051113012929816475741681501167348989887275253967662235034700803164072738680892953034656850018936548831276624749734995276780606250464572665366751164354406737424044971093058826556442505973130320382138105161505517265628795532877639117633238048614398685481671992223130499375330703721342614965920527070893103834337558443230562298486427002335347491222373947882786698748239716489786006198665084451456178873691330493861454554285697861093862040913529447573648478452689822074938061353287793512735317654523753698740223511655736719142639639455360101965491694122069126089658776092869163354847225104880207544850497081999713552699455694117474347000594236522002687932055829415991875140412094905672199379901436002692841272768924608054821344829423139214709989784394274273914290531820835310717430221535205523826634217119666867265541275512693913355569403639820775507124983344653125407750050470005689699935770609137808798608420173048846297554523513568346193826190285326875260838618783078966607311205221236164630561229774124199048087507995657155409560539664850525999294507828539409855445775384370112388260454984893152587647256995804545083138945132344336115584781715972865389901043244528379778751636884721597837058250713025547121736323708906882307298154845573131609270276853170587672757752802393648576772348567458234860631651626107192594212019276919420532949239263197411523935972659182413443693165905363263129982446934150303414310787067673114156892421800245770934624712556319701217455417792066904992418536732588316764800092630495996885944174664419379960515790029283107391583311218310713169660508151801669535925545326235042444933037275283772933275846753084654371944364425739741242795724111376981068015830537029485115021753540615634150916050944269363198589073018370373008598641520800022713975804865011479585874679264751399552885112996722760177866177324709303206267610188593299763957202395134909097678646190114220762675949283800866584332852111158333567796969010858062613458099582774945270191852710165753197965584104318974205500490492895026050641136226155204693459465658915168809648818133115781471037558359091660057700125809283976277760627357989390120519930263600601785992133915948728006816549332663527596756656520000103446917095528430633400575332473672038290141788878030802916472369167052695297752321687919818366343667178574825208640386008405759078919040508052430454189316609213675057004377846705710364718499238914745461889982652724850958021297098950352537980447628272278425001767064504666384475550548260288726195752208178874607495159934829622152748290183975342388529057796676460376564297917993525920254467095613051105955174722936901485268270571154893557405942456373635033555595227649683811837436262418825024352148548103972628999058661080566666046693491505032216766999683431045454613389783002907267120752676866351253345801516110633235273322987151764597507356612037127816764721554849700397169974274916871102018592701594946730851450323385730147566795184144432652457670484426398686378809231215777196959704822281672861986285463217347332691703811007626882704320755851031995103153320095666607781352662055153779592682929229883125565048942649174344055857247581944305500896862262256939265493475596806099927118558905410926660636855132898666164877058707169964716629191058700364223049802957830599709232218741465295136346840721712438659773819420585881522630977226990475649816769776522341807266094439703886179420885437754701177277062487671238613587801671527908962294672214304882057465188250990336956005543495612291821082230682813506995386427716732744440062233592861257304978042147779463217749974486512078720809659147149448580854510277406790122078400573935355879751828322315579837281793273153940189496630085369666575378099382868423507958194880165937766915686496800181077426650784006559424835693317311802295512831921505470356998947596593881941471302109998104964804621889344694516357665688743531230241168830603115780373460390501986583939827652041712176163608123900137614972447139197203890245497032190389291506555972943852522109959420730409206434291422424936047953629525776857813005686203003593031441207663077905262812264208014273602473079886955682449513556728283729979964680719934984541133286028162664773799714438859168898147790103398774660138964395287355251655422723873308562568140009689255921210926689860425287212549707397506184383504443625827366233050207087502695865924120556770432404488521609204739567550775341244905874126211497107916589333845747038074839197554675927881591133030648931394505610187615763719018144986841941490237516870126489116164170680768900925023719076146824782548604297526114278741101531396644811992622181416309953059251681927127997408878882032111672381900772991968000324168668039037912534915439981582674592013555503933100724457902002376302108197772313148736087327923951638622653754202749350988158409799196060436214283398409989202396663739280624455494558847386318369277689306465298197570475223449243157964847502489982296348395221976258925250040296868395597998591585720304002381745164189864774304773942558384976226924720311918906460073819024649557605080231008718228938273845302055358856630441235083307095201923146771807729900258589620979129378426664606385678104029197108191317935797715459604111167827078805114776900469817593848287362644321602186908028615669587821573226913728961032224245629991294153392664496035104111264986750939082418505634217472924840899934523915608302206742138458099143989190068198078547444640130420544638491203723233151937926467756526332535130679459805664543928254056759492100061304409907996517709205081399286614166644724426406158903455391952144319891200613055859549452924154589706237402673980022044866292841730829023062520372652798087332629514703565374528641805377532994448969351738236125853098593072164364020307289799042284076964152406704375986216523312997997152822780339635715509802458326639249409534389358296718037681276998347621926741541760246584516651447386098384369589500779025552599843705884056841309785522079540880999762467546923160112039778369766359111071857210144094424309035599155269752997897517282164353804938816251128569157885228089712225926258022376121768590967400220726841425999754478581529094945960562977790550782649382385348828893125387332148745886781928518419097022856956959474959511900885227102045498894309791629333440391752068103033113287449431001679965992247560679908733336669692341691643711337352537362124778731208070777282657383981618362200223511425688247062165151377703612063122829601839310528116270592540817526774339845200864279372229344863708422493764360146418860642288817146995710630361818065821444738394687622105253830996566651580456171761615420079833800525061976838352997575616232571943730574049633701311987437819993164221475824701201179588087423166652937264081232720950162103681125710514603587197692077747897633722936607776342506118790938635692186303289937087846491824852496695027180448379533558378761023989813820253065649786942348750749272472781837377838373921794969158018286229750540739357166708301230302559720593466549582790659382899052094085935174666961850154002904060112661870916705704574282242999003644251736028980360720172232818549191862851540963215785326038848145150148487008045423038386604271887615143212453147880198909498293134171269232421933219341194647586725017139013758824570689652623492694880172062597222982576295155102599875266089548461440439840163754452545308366470476284166149328552145127148298637129100184464063505018133385181352764486995382645975783593578474047769708763630099087880769566199298720535332950061279868299067680943942988130984325109834724647593569610455366217055880023895818300723617260341432959057141166137585707630492563393112035397235072112215988044389119905546678510496670319360119960124052432222686502677295684174224822739634532994001365578823547511748987911735461778322405314525839509554988814040538241540944306632423755036099432300115052498941814668867376538907559373615161115297932644523000769110815412668172560512923293340197145339185114014787179199960129779454160618665249494598956130010890337198198323394156159328060568427800508479831173115264192851871603672822805254114627139448713175066269656608343463747888107789400347987993213331539678756044502681876047952186566148915340947565189085096397453453928444813257981379372754579053843053568602642177464642055117242831392820527166754156746846665275646270351772258596644367344775157624697738429060448758290439621946536721171975058659307776293186997681670062119715762893788944322891642871248897696041724224249815767279488179216020685760771627889750175863423445015059363410150115507172067525471726105765678196090240312229776721829845916492879535928227875679183932276758626364842823174059148253907494074067287172460967320093889662281278804438838464508242573957279069876484108870990563088215378309096938339459143908882444768100129918862011283636104841864462823528827865638995945022825300891197917758349146249809148314627122207599854270176036821015623116021562987466899838099182327728483342289288269345726396144598534921839522630630266328515285670695662275278487583811410877487820729254539230402605739181806852305500546224686923557643518413986655308776267515713161974405615339821578832935605958742426974223653871464056347954238486612189649832120918787291220300039856546836439253590946476774694313104836491880169851384894209900039898530842257511928979973535720032327798382971086296049998157280819242642233135829760237140713726394547817264048960280765104819734291598640670804331261331514130953314243106461715239456235915680915319084177430142035838945129882867366983069384581893653574615252721065240846652122380860875458849764784496903510910887278595344686374791253092557314299742776183293936188046555101917460398125316057025589409088144855794076401298185813047095423897112650422649639639195177838936220123981798270466158651525747565019864947928561997605823714432792800955879044258458610461182775722574987653713531174935063377196834038311235407584266676948704826246474293753238807043204447430349263460000164942671219044596978579955014349953338794446819096196864690430519646764790392035113837802631797143284743065832863830798716829960102582313127390322477493333436934635936992930757443392992914012307050371502866464889404482999597711771062859730127516057913377720907211425689666982353382313921380409351406198102851379745177057129043045115474474156391116492170227892018341145331366309481935740420892981282078691809224796334646371643501575074302388471837844308710821626865416178371089610611810456866794264556861689835084908048285941556413049056245796070077082842244930655182884234582390191918133522977580988423134987243166367356990347719845558932418101517131211957094105847376860234333313788358748257127674135133825458014501904685585489980197218360399483228874025571048547736358192006197425207778847729185750898112800507181811136152672292328038513712752589600902194761474669541016045977726470584606891998561553403960381549215075725897068422505830783084458630788127882160715663965041944355107097874503892437392412544112332501619093082895803089825701287959191618332330597967030504257904975069035616912303183415476001029410677739529834919791274620390692801650682252825983933712092799685347446091206953526954877912117491098933266634979006625088158239839054531024931127508279494336270963694519462907533191037164812383708270532290005555876910479212449203216695982464769700494933764878525090305636000765075972845515780358199330544364005413149942615679334942136879816437644534757914045446832325779792054885749341974828615939005661913219000875296597995008846781514142294008217158504917220359472320581415033025417758051307631083212640183872215653595463956082440624637634382044779200069578356858502904871946292544772596024039413623859844056961309279778186711705473903984607664909361264356911019966876974949014261436082297175415732348849959330357781042324878246451023688800705217592623014948864058017624307079865918895257206579443149396533626126305029032652372523776653556531817717055780239305283666447372519572011860712251883124276785542230700377987596623387697317122775991900441817214950536480805104781471585300227721352243642198939917219634523273048813104899146075425695531040879996960936629089527430019185973607623947562225145217044203058236055723298204871278916014991135917941872071082847051388217533732375547272490378870484969926666680780477408921114737094709585889301815137378701524013979493633011888863421081993323115860223123967847031241230618271956796263574092597088398367112008017922999223046755668474639561038544403569088736231705712472477146321668011537177061995814444724493277037690659722960385654227665353676427257126147298319670920851428553138160328545628543270804103547798521870659300246807823232734173343896333595864339749600719789468821987727972064068323748153750350732929981872328936559032806549723651510481124621006144076849118941216073924931664231118162094293855515707672055065632573112283028675016351735102590863621515000822781195571525665064281854454571616486891065916428963279551789760322977056146657478578736699537546177002692541949549093121910017189704155657151971157802494070047309233218714302643817865958939880827566006945310889831950961063988535550740200037108472663493682339652761797467260316050956696391877341460170434098065940014118768646098193254636695664775936216382504070441665224369423902883747141817254848101329865993667883305722816074384213587908851337665931459501568424364418242653053327336116740663682646848869575396528012088900728451084120857098414634575804462580988299529519819382386735886178367368567875287993883993197718964440186674683893921758959824085473620689686530319708351595838612494846035635812350455185657831893354066080876128948900001672180998941626499526926385458017373381881404794577451115719617224177192779628892348402698916122515901927641584001451810165944556462863283240552819217255735653491627398800576442032458620401491440328628103491555799214630754172213307762474608648483739766493339393624953147382531338216655313458964870485826681498936208495831000063003551428766699424440984537435224131201882147962248332846936216068611595269475006965435383359209239033734235931188507743793239971580418380617979926949714284795873002424014741322276065246015080930852232560414676604962158828065439700157752746269939910473428311627474419934462154323599433355250865950778725184370409194035256705229389547108315946254268287279405375477866319392846408755099132491945524341153132635307353688646832936278305049525682512134723431472020229707373329950335725389690804368788491158438695790520617079872672631791925485706881903464251634407131991778425404327473123358122393324649540014826183776107958786390952315798430163438146163719482592715797959544116643954363258560610357411819164987351263400498050080110509783553821805718298449581381077517212536683917512506607707052331259823571055134760287513314336340759519414941710880550083169226595737836516464579315294082168041520863961342809376418154986639880292480048053665871799387324595444300267714303512577279234706975083324150979791266391048401225406188852962377366747987881167049321054604072112208512424944478064401132269350332635794295603067415635346033917335543649963273573386126268897165314747783641220316842446130169738214231890858042775856631603818097696271811304991974489781687129692078147139045837801262271035387701175603650675044920487015926733613522353656346909516291345248385009049151291454189186166207998101182490246977575438908751916471282612718358215640094870069406302209040850765020807915844059426733106565310504616882139929889229743932695088855092972890792091307130474938601032748415301608909069381205943604650104707096704837562461729422683388635142466595141654545278564653649224873289294560314670793620567767467203773559709162495392566675372537063696219273980178027423800870212776630190234266892976549019895654077773289959777934698332365133050326912082860691643438968976901004417933854170998017716713553971944579393890808922591337589351250970380666353318764938684034834148628095058739418287971800816394577202465558976400339285768550120920813380099666776182265684932581407533918117029198666452629353988041431786135234896635593085327349846220632741640225696666921785534751834921460511449321918465561262659368148942776655400308890858496146984320779350241918846801770831121449505631347888340511567670138100361593034498395159033382818155561183929002085881111467830593250540405418269639151415261455326600922293596429722937517900643960200541881074645857727643229373081282447582883956199034924772096118140297048914396322355538106264360256167153251587477905363537288838063560547237745220547687875456452646949734050998714995247779756397108225903147198545218123510935352880820696000870648847688221911732193531957180537105670750423175043766707513493994100369979061840644633239724325034411209042234903965015750575488097010258284259844728060350576998010487892255696227303065631592729409307883224238526412566658202443110203193359444603815358813353506909755132547426695961740445118398348944821825657904400088990280494339767931162342290153234755302197948845009653404949108741618894009770566632355556900248515127520740426860240360696471311428195884392526122580933490911981207047228056174998886127170095671886223894827911053173282979689743473767222103421617431759957904033085902461067428368784316227026879307210502613529941102958375903551520434930401013100178416960048446627071138071601966869531930791129075739467982086596270599240358246063010930164647510591944676501050772725378541818417415731872152403761012001860707193284822552302657186386499192113815562626894393379030393450512740163252697348172603669731752800691027688110503792705836038698743985318048867047723900330689527566864045130460464188165912623438502024440523263410771454538935527626326987766607742246888349030406431537274517378620747841888405153279555096366002986464083267282598068028782823462110425191967753167200419978544407063463587942833585505095138900435776619885786412646275649087522243949194048030335719786664819501657364741607296155244458281921091598647567271152067815866323829174290781722283740779724297333589011774604745627194524758043282549276107968124947171324136316795925798435182704472190475175851349413434831110701461547447097992628176239520921370028345901978967831598521677922006687235380686305778909836891034603662361774979314667721894940823001412521358099639670382842112111516457268088799110813645510488858855696931879700136053403949555201023406239639786998151645978004692570334667439016481029424427587286929841860647533323548047597069738619192677221650277754382541308370019490250967076972176306675145585620798658461124087328817977233821722317550429654802817057733618592409413555624755374998485549038378938571231424036991664051039801273913896456952613209839616013185000669810758629538390624518161019495707323729745134701959275561445555643583780870421094739525990232511978353767532672669657989144070155611790306823384176896632074129640661743844248037866544307159193556664888530602879815255979554651502140051274345119503008423029239865178621155115221322477979677010745447050574948712859544012434648377105279132534643595390595286389078064411997327108473820774217844993786013749145527032627236497158818545436266952755233387460982430213129827006732266320175593258585263878198751364928212941035276527619927483115283648137649788652851974781373190377210224105751812709665001565867488913128897607205028966771719372055740121453538276180266448532947528529345547096976345984388626163955901173222478511105961003873299163276829102726121055053669973329700775488874943655539440516087761007404418410822830813230774947915908152772246352166486982858692482808264974186943601287192240222723168654371498471067158505199767851591835955666141500996333952182055628093187930615165447610431948909791759487961252831542308876209494299395610301046336659328507187157565661698077520285610970009819821320387975823525840232808892136658402930839133453508565944349997026494454236882815673871244896022316368410353290511614119429931009169674029892310902272814016510685785688769037751269898068634514188206694039240831133503946808575437980886280620776778973040650880315093136212833282739091192929090498438490237005119934741125590218851684258194546141223705370245375252794498516441216508056123312050194858712533915974133776100626063750867915933470871567789782301501866645956300505575365414724087352954839545685568433823909094472003924184797994996727057613626999124157918697137209040185579890061099527433619037633999477686901736486722285203013927253523817182626964221954954981335965697293650260020104098846531626091239822252957721311732119386210469739878522102295488516022414948515884972124554843715617512510528908313632483644219749649888510924685339514959448069148368534674736286431906052259287820518674201858794879617025580614675239035026604188694685940514388673885386477019572620262911735190585730853599094113858397591948965878217090911972759163428972648347407306931890068929666539594355923972608480123846446643092682189356459830261671104880833144067496369600120322132894050275608270175586706401411504276734269964397329550325126009075767031895489649916551601589350720058261982951427579859581405302552954832078026708164611656039761788385727325621658898919155105910124152808111658706553541404626653111249276826158184992171820563815430262829473089386228185869384860663995769691994162461393658165346140369847404646749858239033571952729936381635902718766061135114494109190895923711785565314084661799628713127007295023896506985625106918827342866855425359418878504464270612767698774820549727734666599764207314275679766867653978632524633876383123487728974089752664369860770572440649972910860342253839825198949075624511229786034436808281995473502604079236185096083516980656287152655211842041096979710085275603655000500571257526309403047043319617470180973119390563863677164132014819817850233890166154585442350954109027657862631550648089186981239439846965687261946985148622657216666418147879323206290714799426625634056056512658369492568343437652274962363468530278213043662339852648278470472746790813854261605288108118549488412118751126306082006072582240442783292509762006113215951191997715794461325504909748781968318603044895275204098156894679232879075989972669153943457171970725209046908500929622737224358909663535183265591274260204216818993873319578813068300662161094710881987718536102870608598625757171452601775317894848313650782965565513823464296609410955736072006373237866133554550639080381543665604083227439525902890219149488191701373793612684719768305002557850999607665507978099527779029879250549036283317859729085446063568499845946188782646473979273508184487327327514375627616115848422835260448026702609790637430455189688528829569913845730566972856493313362095495135881904299897913118912858478258934978525108787761090323705539858025190911880053316949776562192234129402445213523680585019751485664270615700560419053598058685096348134203583870080381164977206001610619147716786753244301307590638715293765333630061148324069215025954962253611978913025903658897736822557707710071979047729700647464055503944014005713357792070232651293302486109248585967023444141795526714208881080629421334999859062537965626797604385575032853563637953061328662897397818137946835143975620776172414919837157098792349146360626766519995991166702857389927833343013308796857618945400816590435423634111995919034632181693648914049337870955153044559458012694313105795636483914517657981443705074180839086247041150983564413305301125040939202523982427873793796781772945088416811553726148402995150337487903857880146801511892691332193101616151613896687828768949335080818454099426779275245914110645422090719982968520111534101414022417544972177389954391771172249780510904725722309948602978786733340652119274357233097536600684371485183515474438933594864207857474692446310015374659154452724289656840501583521121700249923973451590172261472786680147738170508564608104528059222244231421220895311134401961620403098674149840651561057174557384073627209955139400654924659744637872325622297289403914810702981490845590386536041916511858170830384799879187658942716069080769992400506392427405781177591779264677940052552939353643516938721781298828107036887412552230588117401290672274384804265303018989588097569176003821549619066711679238597955648942984656082413615498731491926729006282641061737676215576027181436552932657954192527024522720855435465484046007518753453253100252281623707368056716836486377252916604751696248488078297504202664251002755494183316920673320084893065980217243553644472983999132956284193555545293476172416846842185847901853641385791916778595155988052865552306129491003126402191431214037473334352494400291710884136939657929175271472365479290484899893126621267500778005957338601787896752148114763982740248408042997658572996824481635611332657614267807660291763048765121192426717221833568843085633232797527160232575587762639083781249940697923426815035486865509196731877990603020101911452009652101608424450731239893719974545677096223203198028477414802745338465135577967073175255881589911335403923000487497813672723409812164963781963104436878630071030388410592325204234293450944195519409398580972243315111291811222368262318430808022933228990555429146473138389377723508727335903572688675160224176396595033093516894283091672935971679755923055678127947270496496078350722118796598726511017873542098530702843184388732535295504087507100180969287933068022601843777577712892183779823537573276974153164346987931461080209500871200439476046478253873158591178816282222617794564764144741937577745686174198671311391861802287510177777368454818422684842013024987631826378693612213140897942900609391945808136592200879313366610248697093548035881770552819627047430904485287080553841783913821771333408265920241346280808653598084690103870778516414090406169258721349213638825399779314379072104554362838206181606987943615511414292125460391383854890337337587062705399671037029984450775484296761988962247348620503170562058462617412769393594733619394124755732641757322725545414945959271259025718487922259563025101788557746612188118654321525739335637473624226020481256167670392899146105429041698933164043014194301289819967303614323969630104280590517542337600524699817775879377251451301603451954654219239701420020484183533349673794500000153612894755591586466624760943153020974354762311038259405039525921664380784627397509311917078204352409729251001959656837611243129440855421340240256678775439147034478072266225484800741103327153455490443913525726811869300022110148427796225253014391534654820919011231135288877898995141048028301550610400704270474891373626228304050691471476739209586671083178920709972201253771870310182269851503253166958360027023389375364097327209767477651194714975868159309382671725011678562775393357417923293892597623188958085337584204687588241204756609315327537280198475159713843790876150942222437153529346433602835130400677728128277543411948440373734030457763855130978518366560394683876305178887347236258809535535121333505337281677566685793703466641393477349275521213260065116505393442250229466427599947843347017388436404366124158965846360540132239620836514245001823560347325898700280688582902770551080315915522031047243431662533138881802828676667195120459041917581110574406443381372988518809833343911443043449934670575270603021420150964127664723709495291582476278333366527295587413939888378377974865066722812988415672670484279864756670722884497865087377250942737222236881175845046336125704174403729887235928246394386602788542276109077213838497923872543539068337597380172850452446656061175592326214123392209314719310566605452220364834222700678206919829322359581146694031374755570211149746071215561184876169852866955511839613483728501185156050623511673890059931011265844335887745378010766323983683554430325375716220041400855533165042631375710968445710922612596288709774985386073781712490775926794840806285242716221531677475332693995113734770983702956561174845734949741924475857851100621470187599267195217481413991330626570788267281210181927940641128952330521816434396855804605748579981539478825128800440127949907258634087834123701871568651221143127681526951983568622962135934786531957506812817085779782458481884389743100360134841508650456584013238254291789815925952266117956210663375451114928752402147217331187025026278558599085741924621656020885155825494690911721110519702238858119303507534195369532883065029041680076190139225967774907836740104593689805507065390340346833737202599591852902291977703465990356343773955262887661912391684193284903738445972156020606189264689774699465130497262343614869877676357502472412219493876828245214456214359085136073730936287149379573574117615640710534013662129993824137558913469814033911018026641408619585752861436349770758610730648016978376989623228044541573484492849653033276125037215785924830588243603083009193209025573565401059888176820720302741042706369659539421474051462849345625459203739982311960832074189892534423469334583680006704689641948340283323624852134219006208132256542537039732012058157464921692462155639431625846876616794679426176941502359589278738798354234143940793525297606112777341906835726997951701392256409745768330874678125757451540251596801641203309949155676785277658432887705531288809872927829694268269922537402598193764066278367128452753372551547232041940480596860195487843310612723496588981940018907269385873766646612758892630336529025885166093187026118434598842213813700311530862954392934532590584662288353314619289652349555625715658149510943599797180238104307139786527773006622351340966049952626224571797705322278020985460145444509813324427244612286756455111284128491032005971550911344847246551054666069948697481117564825302982054535088413001297682474463622311853076583508292320731839309114164060612991030183474935679651279120398808019777733805984855488857514503328168863463980473698574794155817921736224527190662656713105858072778156571343785189397336533747511284839993934578581949244587359897560796905881823349030277351044275821914746281510290916187229646044389761219055507524847155622516069937566333025867739205745784911190461710412280503784182112721129409043020222892329609224212827674544764297089707842380850406815902652036077820720398151022621088913359048493640349451136907452177789736939804124730381318386868860840612435068184087079712484700774336494209954245707634172965596412080908410298012267879799627431459368667062470070781396849537356083046153439483327941487137098598126437631330357435998550086410621511577425919982889344178567141211462769356420009251803124539667171775140027154249893731127573073034039309165150982949252470725663030991522772165100097841638434263171593260228499224033199033203047545598607041078209235127573997727064277910397440323633980420452708231245585917809094842077369978905857767245420281353690812476789484771585225870501629134444285271469058557537654665462267368266147838166648919203546489499605848981822170227417434922836440102649700784083230548111288264521854329105850723196707927984643786154354145005513109973715513524554299319572811510304314220756588690456151541729584197275483660283048563562174523030484824318468036959297027674972640956474769991521317312222339827464146625038442936478942225348104344196991722815514302535383959321945697121653266314392935633327297756176184908196202007250768043858059731110403753535054687264543363816714177463777524417041302550507105568391061838785820993188457205376130938419001767975520522749605545936906909392456927796046499351656623948817893735145495670412013788309633699867831487922730194448474636845670276109961299059840412239857036322746745771117523799571753436181783447277385336965826431810174415736128295664054059492682553387085403415098764555910058405378894237072547416056403910831409633290228993862632060512947936618027394707535522598014091812762161247486834312439103786112379431365099462457847353149896108426918877310015798068408689366426121508952826439621729963209818393191209832644622497744513361823227021371100297036894940232774657364269116882324473765952204574668674517048669871886688950606756216584362515696973387979279562506421354213174569513570961099709530290030125923953929512777390378287994251634298708817680362812093411858864675198578943501888207557530114858314248619897428087533771207396966976889375106417157771995073248773507713294351913425590735022746172063817488583780595512303232031097630536825306068297775171436383007756387116758053830062583674621801413006394589558085695868336650604602900792747587515786286196813677845803478841487801847092252223267232681635581392312463855328431147825295229862552662260910927036875171998654207771307970322763933803619803009698669280844402904259598628104000169209114649944858686518943600590582440363777366198762972445899369034504645273109392683830549082217144606303863889249559062342804346828388657579588071578907067849047275824092475909863778101807720636898831849498710026866457966272391764386832859176509448869654789889837504195874103851792702567433893721276567151776856161449463788681107519744189142350534537331817655804482733801570658501648463858272593945806296526101890844404168482881156775278445299633406207014523991011475896364091186025566917776667602719334963189741600864878148674455141698720660440477601377100087385244522400901970184135421547396514645236087046058821554284929797920168861924101586403210791710849556794029229455082564234396255625091662217355371064378055015976762188359369211692704594626067475209918422492598513212914658689205945058538456414629120164142401286860423421566555539893074260079248108720731586828096534542852889134971942687423805267094078215961448606013012461330233819395626437823304624078730089491757734009396308638686747695314214582399227325014977801061841853508706079298499728970198155192834117979362175617478241735566971576159326176844106420180734139517667179854322874042518513219180633264828307149322450237444319709657506183707477159811299220080454300469451110595438618232997013657640282564976435967629963197701654177242317210173011451598728039619009895868611274360553781979408626716661024345513703298519082344120510002669766299408725005608375763588734054829042158588372920175038829169712098859746681936486774241275245826938908660352828468700431660265867058639199846074907933755425770966395439871693568755728913815078392457074648029161682991692481243723927164925542817944672563111149469764412928328313464292431323587103422057074996848063127944671575806160501749515555052743672297492978939403731321618474499334519487050525830313976398034409777506559091042499570506009414129226753858243232270598170348874676047369726849880511297766608668781002676635249044063782514140322392042124227251199286134124229923109223032739805657481427087726846717806909412391439540182418928635422566550836276615332721200892602097464279681612250871271788472778318775109031572324671219379117973468728865473592257545083837963392900060091176941188017092449068001039439311476313203441965502215514672224341274577208068886636603375021920664519411004385683174949846743077567737831152284957182552705138222055066705406889001944665809333444772534273427366187377744815275563044193852282819215013141294472344695945751894040099390973962830880515376274651548766446633498048867269025440363324557402077034061364827287235035036274422253022793075845547076030163922022861025966461738772634238071674352251037486012815044751945346853428682138487853712624901308496797385267753245887423565287854717241076016361726170905410645581062161331550086519212093152387102100726520758074025266900201735021938152976095575808172341380585800755052990752426782708826928109783543260998364126728621422404088390481800685424517313968378883002678406114259998490226624015245631449309264766202039293498724525618600694665072852462474582333105827475363767948218424345093019159638310863596416162793682281977309830530374626112049306109021261326158642428200890932418955458134322324895695082959774464826919106111190626641944674197438988996026552370588690947940248573824808885527388517285650722407364361885040708364910916292186470497925317128430417721134540006525086051229122919256383863745996963990935812465325968351350049123582843276329447480637168092042132536930170576603791626545014266255973521945804123414059224801016242653284484550522200762037674120202733104417487550525711669139081369338172386062901328438653361778821937824624303198540953956745169776791548183025984982546443910781640789851048702719668864326445656016339077355602299512878983630401731731971695957780580057683410051072276320399368456488731366835904401099780152558765111340421524422214079984883849186859384344396432604971109933970487027551663868734348292565022611814569994069494823842294996424325833885328227034827968203265506224366538958880243227800880745540396879669728137395571785655992994307883201364541052347913780899767133350596324940447672710870055058737724197478146669861844588179030747611000513565256616193712792641001410701223195694092057149730787864380915917439615545854496373070655796084571711375054700519589093443119999113095667168137984612439411103966604199713434821159991449243629018937297528287628930786231362683850638059134766282046680074297437318189260450892294568514950729265975931413077701494945807699380096059853032198034040131580304123625653787884136644068188875567268807395851954772788641247417437101354366789789269495756016830924720547227409368890661415796459909468375497276559268873503514326965438293440859242842607270965279917216310274167149357430982566758166862803252204703168740760918197913036925378875873749898646593952739232904189827460874710695529441498564830706673309511864185115174194143327607909139571148274259758073328434343216017921720255979347730240878242610383466216090275226833510090672007491752352718370161685817694396425750426418092308799019918093485729478496297466837353803251597665287815830895624288878303478083930145855461117373598904885130222325411663415284340388086812191078149084999273890963931611471770162316610964416125733973196860215313606667853823774055755538900202237623300636424375399807120489761286192814651571779021526325568734746652044750276191670795990438691225104653968354084514665728832067089237076275078727642894420345446634323698135231108067961423570626005752066397506529936007972671990374272979254884363358111541943939118143993580845097239107024495319330739899432504198522145709213878782187394672940681486355911724930205875768915353162231171895292840622772290592527990662347538694609615353623888062804532459793475751700455225951920946988285986828078581891336357780213005749511930033331856809005109702578123962097586842272517852739069721716411610741128781764176589009734177196805291681574852373497307672394047351613939820732423669129520215173484740716045619911891593948822026049147335738565277622792037416943383809275014369468057732072348211794366453747485086970364159951541129674729420264505715022672619392656243868432156905847640883237638681006814656271445289498305240686649080271352025312201591711093565292638496710635308297341252226437399726534794388481230002940817851938212837919379307928517761728979569945339081667223556935003926430056415717958059908408046350219715583312812722190481818581839752854200919126758391963514287053881863088065755905777024226375861962736018050590041006022961096453940101228775994852071044314931679030770027109951202234519657064875397663276548590023362050387088783676735993751370403690143035689921782917875736194700885485976579767984452044609722860096367298388249022147568289343557939440323685106722527159559757629108323307859575076158155828363279903212116174651832585491866448872071021650022152214877907687905436187644517292921567082570827737632237504783929528880156822587676796424495961576324020064638468936597950165860447032581362218553864172085839261368918178367454606256192295065894117023586756623370208924849756267069038974445491526987428046990358552946968974047345453642499838924291602716269402272382142962245574394380701691422062653668964345602778029432665775553312406992309741021282490219215940626951590833174412442975799417269144569180118084627718055857219937387928899329952504481348104996865783296442123257810999597704428168520721040500426223576425446228245350260730420863669057417998062216443079789457930262578887209854233465429194159097012409437580644865558083832527174022234061864805707268954742696107438581977672201077003234594949153498627531109599538088039671638334076218261582716975298113654512178019384952094928461247276450185381968232527952786396842193576095011747633388636758994629274158259659808519545669866267013109447115885747818846214664530641435768714576536509936150500837341400392330174574807074522240080946581064899706985309746076470949462881065698024752551327493148783458669289633735965435954554403450803716003312370855445227682542764605334772358475668277121524590025164538903244388298246028147871324571841118103690297901104791666210059095712434307835823973613061827302033758360569199198582391108425968226249502478623952926013435189583385650048263270950121721276498034925822888805712546991874073422010200767814456948056401334487830097612964534052774147224265330690625211467790372245433937420894920307999851002173448260109465240516409414405191225313196936443720239561042808970989743534989938991385995398790038382489435512296461004839321138509397280972191656686578761081878631191643388287906538710405904585191191479101928090664319291793919872826609056001976353899498818927219706519704783451606847394287955402472596910376322079590296882680404922395559200765426700127607683832746880407160541354697456242918332004643007051828597424277851547033885141138508853601650484406850576185872914302465308684107732468458257939027989632573037401518192369620957545937608437757334894135664261054732744249668504899304919234944100871028505357788865623526367433414482272337743084584634815451680840248965265270504126266795116390955935913104608650513679489682626432816577920087276437550182334619693128498995954602224642478838227489306144085861554453860356925730410540385965155269384856995419811797575640475698723304259456976223789600941839130396463321333011034994236064228313916968636295491712434262121271837649771978029547578849313929278409366700402236124978755095271209839899449915619091007011378710810648741388681117347491160263069951047524530899664250818506917735257389112574590904492627481986520818520290437658499206701916543976321334463342202305775939417219458721856646900243691303724338948056216223649963164836371354078906233181285558758653796058158628437484917172984627985036363843100020451375998878670748243610200533122133606870051237321640898978932542681574501325994197593218282784932447238282843994204434507188257234292739441073602181089591470523144613275466024255460718682186010827372277901373098828784668718957026005035973715342404035757704861267827970452102730883790672300802145579727892701078068786945171887738152512892386312936670931079650081122470098013776235967649903509276044615918535512231884814646865140585838103108068120184071803277189240569475109564882702933799545486463469784680382223422166617362771799066864311261897233323845652234361610567849531113204082638863416447787907788652720815699653339314941617265400166033321133778629713408722890184184877539767505605432557295672669354473506939686677699610199247316668773833000627280505160499647132481431119673154906325794428625702560324744514378015127069761666232347836088264560528360609919399863035500071433385706625300069910070030260897760275925712696069179932865584128371839508935343905883674225518611063462388529212838368629250563912265706998113566295696150528742120732865985651112520059566302782126983879011712511776134945911299747562635716558501876783154970961295613623784283655511556569954139955653914218276679377583665835376822808617531052761718979162048374230132211758387334322359130817348531833563446631091951362780723456444481658176447344738286059769339693080780937876199058860723154429807445481691477190494888186845886463953627988519744134443897485579159556577189866719519814248619210819936765461984493613594400517757158642080707353140577800459884033169584787850192699520198368491018115174884181072817028611517954297744851418795211739293756604535708383494346153593609479048855332398083630475008371304637912647050047197653033061831927318835974678666298679224125079204336360592556329350802773642874937480021146474362747750386959057853729969422741501842351351108534591702026113019670245621263278168154169636974482614042684358093335282504885863300330271700471719273351481515838944977520274780328699582156383768385206787905051895537601221629783213127891007931728781590084532476490231231339615874867853831004039691504467612591244843172444264211400810006549751113701975081603228060626345628255026659147076534884646031891019998797088836309409340795318874557684868970531832470414888005385000146315367068233893838358843673000646617304236426752466332398111273279132509228371755737125944486829911807435815320606230938769690960874077125016400578597910744793492091945916504443868784206820129776807945548583651851546007659345810936306480013237478274144170069741974963517302214527036217526812585112315664774165385953467781880894207082285832480492360213952297364186276441992540602758180633114090504956776417838936067762939924755113558811156552444948730842888996855309620192455976074727261571161195430556021707100947351565890415708366301689369183316232020023428257123364293035696098042508636150533120514624937974622306290580588759656552410907664300608221917340243937994471494171222037063125624866390247765673879110195020448436880628344345019310560057108756469103907092731827137667618511682339995755669367632089437260293719232576861164797363442635760627379792001105767957063194896470619895084567912758290924158199133547378046447306669298048181181259963013556194071013663548240105785353474507824968931250232855296005861979126178299044866901340272064144211531874945544310167203296000438824225642771152226116764168966660730248004575274004846395254484910678236224833900891291817766695043531248316484791666348647721443523363344958301811391964610207879251808936541604098567743277181119613411852562888216044364004069197934598572514046961687444122710257089823564171579585384115553053849167062744834460666342398422603522787026797037684266364325882673291061532849408726808078254151222621953472178150446814351892372587037818837387046677482743594447846376449607849043300447150459182649561279985857634157306638034806060144779780608106926396513852207758664267691873422150775668294996605715622742721386797907157732868500983035780510080700285536143391807088027914059860291788142616335091281792678864228848864012428836471300763807981911331811065326884819386167313010036600535093562286528554112707241865534427682594723903374841923038650316116668567516413480161667206826640470813405891157588624766577551362149757523548013209011270923719856103946820875101636973471532653692660277856269121102840120781042039630028613567772059456848006031534092964185935284366840827621164575972826707253475932089200316624110964978131381056624079252628954398971606216792655929483870088437806825578836132662322551746435105494989479563192468599647349427654468671562222926690301368989146910154306006887415498466432329305142396772674496525596325122098336180500589742588057743121475834590106153142581000935730558791666854541003231605770818471715127357295433583879095220944909099049902972348202082200164211092134800570855816944570845454051749042062791572590374777234282457194809433987795241088607393141415466626533178531940432473162096037098757172264067210184420617161810832708261345091300514031733876140794941736934983774470724184428023627853309919307471048224017795557864559278352298497926399676714384562137392616532315719424547674858613562005465060606696874023599831179080373135336684344577570189831652182405601741328112277629346765056428537274746422323243838304463578575527317141648592917141131593545803532319201804271608741171705484634183067471481446727363158922072564517364854627371558200179155784399534058505842731199511798050905927247273389264635772831776290793203591698998170344743541384483333076197328576641527712134374828979116819594379746963149451453847382883228708835622704648249030306730964102754189272920723086820313078848714958408621437218964217626568343342882281281772097687424870700710313830897461407887798259011506864039438119248516160442178262555567647160212830539810822999308314946082839480373784144241149431185554355420010429807937583313811539725322748351755216127900527476551804339628879296058094771106858890586078450420195420417407712509077859746455934345424781909601760076239651831923402290693180363102292410657553040423500705436597898473500911046685098573674246391042705412339532380437610346637500420527718835997404129427257596298919290607011690919089721828348062439932234720315683747132113109975709511385635935291479427252450383856528754049655185227811041837316489837794146625499916121411454271537519666816070959513567963902511973391949754965215235833873872777585169529580969796218192673639701739489932959423199352929458129808970408468695839051518627762985802149601232947273002161045103971046074740160858153900130727041202777410819152410726550855480704914118298837740417957734295039560354535984597835149803522656155145614725510269791308343723513013287085281405235175576710931608917335522760149568783965213459692113993866630932361963635439165674261039870612495248151667091579033335588954874328429700153299842951099504673885676848575221526306024242242238323747005466759243786927646992257745659238697330753362726116396126433990114112221305146805559769046312583101327096455907116213028096800647674765994412662342788430898770268786113457633302343193278116285986690038247605209296588583962417792566250577817581270030663172666012106930775264471325375342607026092254072824221022013365330607856440011961802118265496759748621878360930021723994971716578061100183866069848408938852708606180164687695453714102373448274794331302379701858375645090835258276652701418849411715709228962067005222172095527097029578553997882080322737817303207675674100388615584930079594874398805797667256967746926694265160970979664700264778130375819146640387369429892888266707874953859885960339807657643157267655216002712581382370431688942812912532881472766447793597679595013874160193643316307198515410943723394271454140933953896762011273461921109052845518358983181442605347845323517008277095767869913080491520498353675222080460692296579862485476007563557146974512693490276986840295724632487906819477582882608722784293315976261363598159086694303577593232773077031030333026673046828231671827896300748645775796244565258594562611450489691881760021915665165260540629434048557509429192417400832597707642305070716163217298321519744692496604754382463489360696886228758685868110225950076691593222095153467265280930389341501333168082502195996204202519191432752792218091978570615509571321371282526113205675834608443583334598253630443835904679891432457381604292200499975489874938701693788787277512630242882008205115955352300621291512817387777958447370556067681545263356286151343814057469150656889417163865074568346539711686012775812101702807653454945938942237205868412031014682255972736997862392108851439916014377615538567763482606937973462153768580356499629669059452817033695996531195968814593240818891391250577209102680552587286125916320482317271388421093702421429593703372172388684454560639709111754665778467465535836503137750649927049654270992791726740469663956136254389802406997741506881081353692781337281324854562713122388983388312534545647564044618667215500981388192516348466365055044334859352461270300421103999732828708742239375612265935759242592218911516184590441307132574359695071983564278945682982826614904532193025811230038400515051700356634691975977389955414295488668189399774836901969478049155445740061645106097479730994199879824032051336368226689303810176099974576632139131058493070611243686217967208961139886040848832406729792652239127975140181881071427561806170102266504100759595694310509869338653614616748111498931588192399100241568205376875647201126188325301321732374520624556850225159163821928634987465700588723809258551852788593535195317900440450760517495619090247438360381597382544551779004816278030269470008984740339042345612215206382654729356966646816380026817964709762970114990076950415515795960368771394277062719185805012122700720925693694018852457792915921730110586914540745191153346741205371081212611597711784606774851218914032941061019771165693097469721830306313718766754934672295566339708700242879894884969719146113773281445691547835408982066530879734700858552041033575102265750191621225519778507369424763606520891309997123533052401700523221695385684178581732472061071064424977740779458831670143913237977438256467903380163658198440628591582571996145721893628194520152990818153410056975721956830503125051459780253259106400362552470675121450646183162020984587287278767281343569779486388729024116028774749488681773390091783158773183864303799532938873819219795871281775440923214066455691553126358072315473443586901320446025675481697299720628085394210390732341719752784284716699353487602231652253409968750058467472091765309727840402371988663374251616939758877879100396026103962790102246057660883219093641769572258642586458752529128439475438699406762947149978283785585841802165957573098133922963143316436884922497944186625644950004539936505599571360143838200263188804330606221656473019410682804626658174971480199162421325374647556472690720292789130584328027928429585207680208319466632285901594511759918956128983860861101364997247341155562229245087371790916507705073577535766001156992473193069116259166670481130944623885149805794947943824435402370558776864671510413375941195835742207563898831149966046626957107041778249891522094610916879386067397075263540927780228221065821861705545383831197965596470625458814469568877171660246768479884364806740873904578198489303534630391993342900412375079809982578443687922097642050886169174350355513258023891737763637406829280885386141043786989889452702699353683272004473972475224707399647424859013239629137853665004011290436872311543306643170209996679272014729456579608911435955321904409516937073132296487758940932285652091299410750967650176349328929516572060701881108093049896622598637291940272368086713420476405983855174359765358619745604320660540642957487961784905064614087148316582727336490749573516595876173594430799862048838408302708244948249257885970805429076215839147989436795076970519118788531818113923564886677117118965943631774800451409166813568757711933588576334679699315772641754261383671422943660468605279588302700194989222865848433283860439830142713086458881049368918942329276005884435687363460020143565227223261476749002141160596631449456476360901482291544942456556316978095641258598679767007676386644570557815640294954821541119476433129897256367377243587012510032296867931643287409908453384107333616638250041025348024646287259044983474925363821920932450955678189476907594558480442907193043081883730446234440231061938599021579317912136367348060865531420706496820411843877137916823925270082626156823218764839328863984680061949626632961654183868677413326914479504861409561980159673079343598530397265436924074575689631177364776154172415622883485975313067232875791910982776113872159365290085933912879986031499634188487159134021867065608667487711025592924785784364223779935612025692195578112388866856160768039466800847251588490848639074286296421623718014911870605777862671957662962542978704694095658882279437698803099586810534654879434783503149946402222810356744774239136435465902329447659466200491845182556679138750465965773238663739254235813724881450890550288884441927621387682880859884332319833523971350746796390237538513546408951041851202328622793513760054906366532500994668069718337098652705297803488363711990003298870565593736581235050745944524511136550512641182245902226665984246603772398172489356984515494544649709399332899578156181136553384356734870414990781454665544913985377299693247868773149096196538619442649938412360030773812689424689580670188159942103587745554954277121838916398415400002440291267148077727955248423900353392565127984550770934635810873118501903942185474416918108067474098050478396464743460359713782197664006798959820511478996151091209227350460603148853464004042320474681214303361777657187014796833660591099805707468574705232479057313094219039560274521031795230712431704639509184508799725047158144811551043700853441882833400086734848252688435185085247974820967578621072408305435573477591297749015214685134137776371202595458544065783585315675419759124389938087295018386054181067599866156957392566171393481920176733878447980888748043694913020152680902373700619563397534104064239541410530649666617156169336939692964762174135822249042906098060006668866648910849042133297721403898619222540017909449854305110317135129211984499160357609821798398091368896098258732248343736553455181290851425554432703590772260794007286093426745944497782036504802393570361981448598569225438048097716189242313610160474498263414630977877923716433985147579282494809020683456511575920976752520512105238964830198056703902956123300928180811816638578854484724190680925020575598405819177217208266164413166410515401090524256809301909189006984109267100893136515865150240212624620401440475743771777292076669116205253659280197804411347922218742836823324676898992371463191912857786497338137586847269568922398116381451650550067525638402460818392531348353382410521793586708388457271732840355352610065707001137757359623707636214918774427613901466710985870496460531600175596023204766385396954179494909009845053883932233323690851950697780579863085201394623332189301190225280734974413301696813757784751748977440325577850368352394563877827923850732902109257118753007182870738510285609682099416278543904317896844499964361725731988573131509658944012237507139148281421059682463351633546081589590148755190815977959487437315968298321149404569585632654609887208211139365875772239390134868421689217226318038343222287360659023668757940095712595584812194399815473800146469083218925739208128134738614246373061734375558995037186201123677071116797610880956671190814625805615005079881112388044452397014934248828569042177779241703912876471132781575833530574920845692166451296134026817597237587738464444540304375408464552969279158253784936986356872106092462826312374021228674463090890601708273242631998930260859225359269957582829500744901700520595659887009823487844131322007415624238539264863527438047818203790947966596702615093251201429983017193829501233598704457070009371927246240001742776390677832581595266629185650517834804736671092672412384888365231257401510037664371714307395067414962264110092496414479129773562678386074882260619366203090456998290553338346825710678962062531714991844514862799077976792280483138900090580396327348001143200612936133959468000811905435226290500424785295447500031776382479830045481133826672190397426902178437901933428884549135431439383394218268597529206337861304594537177501691353258201954095945134042685348447218969195985221598012024007351341500236878002507008434206049010842868429921272953672986491972910634589739082812977736107882126773593127264746716276400461441199402144465055505285697798708345839590819254246448874203508592393056888973243496903621882952686612313803798268381960266050248824104965179339370227083615387493265843770590763734260509136538091564606663619471990696307263526427393154841254321140056749567353062270658777653196703625410068867358026849625734027528332046681777185307832077816257457592879439760052358568797810637726064407266317576838504171434512753072942087703901582678437341254512917569698009238359056920243425545557137515976048412008957946805921186385599249110363768357944712015934583132951158266187190138468781865061761574147617908246599191046683731215359046516081527951613430959812538421744892364804248998607568410789087699184309405653411643895606792202597029335452383805443673306514719003823643785735254672865932891016020851217462651918218368353946856409445524729804504609966826260962009219964342502927060367680474995697822057988703931786885137207146823476542592461796271884510583779416248802067030106502016283918005905516315188565521706832992260347861880253778786726724810855856248473721853113542521763963636390784234229642236410856439403592020768019764862845679523702841061710354875501820334070361125542588621667096805077548801656960405557404304351179969022852148154791031977804626605296808585064346507011735351969206352085077561247693165159274235504399919526574844646344384018362308043270277763100236298451894009748961663648056910753970110551125442996232067184124699113940765950900099028588769240760110695993338330834208085908235563183176676012430883048639931888248993973314059104891964866695462511307809901735430373901958832503861792387771021450511677933965596874114506668721434420234173852451633677474917998308520249053207139418365266900792178711960137072306270680577231268207194670469440301244184701997941582800073733295968910717645857838494438583715486192950081827970072095109911915473328537462038291565235064763866855405872340475212252092663478351464457935882830963021493006401890791044394633609326613927233416375257576774225414484082194953665502876018168167985644630372364067432044454753124666678120324336945307289629598118791256273752092252606511405935490180315937581374793550918118445967430944480580949546579389121708878364616399360091919242087080882030064970856062943182938365009805449269794778508031795931885677050369577665220397396728996785704423952510374525591440199148694802385192671284549105917541690284531262797703484668586634825621797226220431701823548805346956889657518466691108456934623782851873064165839944154297227900013525341314578353983226087819598181975542924622641713776081006276037200160230297368350633127367384470915764805419854714317637593136182585450944929929856536845583482860695589913566707438276165257006729566558857832810244374433911391260937779716205778417916033138525725819522162806297592910359272601975914396441025285031693813207644716310963706113969408851696648831195956876018312292848453625619923900162236796202682676762717372196665662609370493798107169881140887790599036183729032629923529194297017935408545823091918617972861743829554303367402072345856261299771835401671048417962006019506199017340320200374713849107410443461138557700542021988257198896272604147727849908649653470633084008603077090659999209531789766773607910669451746454146077034468771377472865124071026240083599100938164492199489556731434056002176449313559184964666034186437984032230004790078740466615580024039378712498490586522108514905021426375509530682413200981989655095966029758125353240957064687561820143136990128629083134985657980138269115311351521672773695552727721132563912615300002846514601828681988083944777848770213721317559296015859850869716514029980851275620236392260009679897048734960808480330861718510048459519261972872863120631932548327916497273575925618482482436276124267982365096952692317282538906522874891956804840252174209074224390819719511445940668759850196815922581014327803211029120546347671790661231811487812261216426500306829684300674058422956614545805741731071558102136338795688398241679493451849068087466458972733242673040413128264530775696890684186635195617566902312293103192043786887596844148017094707802294350075522848869222820271733144138774086075364244306896712085344145317616066467737184782386396020644087915107384437073782584917229540427522728547196455231973713425308537518770184667364812099900428653602830379421789585904888228572693361428526410955924040020747458554511510402670447819700755725929847095194651349203819284694127037275108772516810605927207168476398918452052205390739836674759806401100630170461562900819436706481924312704475592566298307841380783588970842282793940448481192236549664100873035719018813439820093353963452500596460538106337509450471478506087919105344697226040382081406442093058486180562486598873203017082684337110678888455588311576461462880417702911400327691789515647282302524986547787657217022011457599214494814249155969074847799472063672573551277606644710731005331300971310250175033044629876749470288882673279587901693421473018582726993459301886181959789470633246945647686127022108501158596740221971052570244574208749191278627091902261408253983245115482859811502877855386178192793112854260290675394545053105697331900654171664016924155691278596476533501378140950937047196279268542693922145739540638971729310389101428577140499963393037889156871685544157680552885553526577304276691296112970423029457622548138967486533133181401176084964161241117770538957815986733554504120379300717270177711959027557044282965883127524090387704961357359947315586503984366802285611728765670739052002082037329109120090419034243496845248637318772194323532684074514365792224310745903226378411231411425749010017207518572462690328311684711981489240699280582534693771806576393937878244875665381087781210006570565831392471433680794296835659505137927027829775021748809873442622748201409739655198437144856398953598379855720084414412910362660372380104802387469341845651972987808040026433743300253706711977367823345375266171179683828593737355321109823988921517570419418305103293200020311243027173484817740513567716014078621847678598586567876502900762146634203665244673877531619997062368712974562457714619176078514942168306041651235426907839409017276682818458923332993851291328384745921891309264524375687015414943960436793646046744922288632040678229673175521496624557435088263021184168090801557154782193599347970329082903768123250454351745781687413192133619781470655716424733138783331555332723579506707851860151681414386351659000039795451050309944147487594323510122694234011713823786704261442597183787146986456076843548782604551259808464989572231946474069988050767801289293391994339984421651016288562757915391598934540240865133040944742334993200401179986598186050080789411601788509582490396767653331814309086303210617153709989659630406854562827340712204428305475736931813596126390037788942952059900637523087543536142442368433492532620664337717868130365627544730802709786723859427906195482858295988345371531183724857147634818063158476552055755169265095852704875525983118581257762133788798860377647023721825561405823101490495095325521048932997184531304106632017250660044197530456960313129904818095046275436034531288966269662234521810619123059244452568088144769087498431800125773279804937545835860036603237082104421523639400687756562714403530168379396752366485706852460067272142822746860113187617917690508249822966408214537986327960018928957070672624950341525559953915588352183452570445978655826496839893279469597096148764110728768570851385838413454118208074714887072941703329035835029543716653512440207439953280275885694267421309081352677781185179657969593152830177546831946047873224610895425871662362142241438959488082697450749633740716303104751839525369512340253516893921647745457186325332231050826903570827875751445660179629217249236931745029771353012284362781072856541042138445642627026146277924305611697131437507764949094717921308778421059028518128328288041515517550177782831383889947733915955150271976296692321691618127836561744985667796021490457869203314835753562269501303121598438472492833826905493897033128319871303919746991641656400949881304941668595529614296531421531409979537132430115610354674338091634823024334006953707464167986990109288466038665190809875393217655474958170201361160675596331547746469425745078265486522046344918356763573945414872114254389753121618880390704939566731379592707591641655992789290554587250302159197734693994197626526651115035032732177037260863951325797321831534005392030010466144717206260120583378532272243503494021032340021916927857686061792987224490473672851682392370818379040962579689950485593758650130189795671333597289096729682425589517692878243606003054047830534558725670388163167604865098131928957260169897684331667095119454896757749790994113211584567888722541731827476849456710245133519229848021867835421909036301017901963178107685118653805970686266962697269858223612466828601022084951294764826587619780994468349761024240889312841537806070750507660806140543366365517097972005953838075766578438603556417758399096024357956303060286558179542262817673620384824365234544560599551405899391958184488054989370212110244766669549187063740804499805304557267508983208932014169230319799235525668823712697849690738636247456875797753975583988176301474953466372681283973655483092229599853721864260814142081430061828434217518745206822787027123991496118485608580665942968834078094863039154514198460433569624349857021922468957655610866261640435702191377095623722739769114531816731714825700673995065197578385687947922190150645872624482254450513539361703225736162927764083338516962827217439656257180616905121505039486996616433504312872497816906234329852748855652119311985228921502631088654421484036788817312799454988001671742553347485554034584033179172396945221325226840992393806950025359104045147830638733107731462621898332796334337643934308623080579008454613121366981460276404796494884598914393579095183652374205056765402906181183851803720464378133974075226817608785337774528060779986391791540825879950759843732276668927603000998679073443942436098341665262679750637138164084050325701034557319805550880896346143089945725879587857734823723174550715268715967678670944818405775852210885345003252293322396690867534786241419803663894825918422271733788186687698310537403544742483959533033146435297504726488979470975128180853432545994623044381831496680239250428066966396281910747462300531805871473445248167104719171754361659564860344689896698080088727015383836028758400227516464480282664710423033848974962421407351396541929401361215934577039078639932648185816419418205327636656359753898200162697739350919542398249965926251863523143020546879328022918292016107410985376335796395338355557530046332478627926492748146884953224670632009719177026400521964935440865378101670517605486017926020240069150078051828870475060821000682234696668418809246332927076998217607803630632552124258284313447692149118573187784301569082666658989942636727024349611098670092371448367372810958726423626755533293190103228471074389535393076557761457807482632939772110497606084593365981228526312257967692123747361308382109726995489571721623957945988047942178627279454999062010056229789227356310331627899292574254839608793124221399600743436468638946529418223664238157945550253334865703513901649666789226776425556945134420855063402219632491008002329677118376031432789240010973306573509284444412706500555702473764275294712866522388979652120685460932793107611180180572952941851588237054755798962092188920615565425194279895220897665744268760229844102283441174996221061268826525839349958923143424832728605886263739179179149530530873265051723559153361968947163134870262370620967730934696071668205784374542365801461565650758471910731223707307919175929599069336166636866491634460219131790294236840842843746050828360421741918685849263370496059089876707917597120104920699093962557058107388317898225977180546906449069133951952270080377331348748702892175156152395553564417003955018294220667148179916435041414623733327912554506887627353896622193364950312328448056794767202079452392999573810475960675799929831728142640793685356462954742432168506942483684087921351234390994969791825426207905990552936031086561151812935621701274352986229922452800487087666778429923064381737344004166904947211770141061755878810567322867990973921445548615189828539161092793933563817476470151675048928447793594455072344191388468506052780241743311698031347137413795228348020569842159552987440081924856231624862234375876011910625663461081781361829879177659889674391299632336265158530242064614906540958118834968252676689794807723919566113500022073953456136759470453822399559247526424358328537735573902229872024551152438476936523364737316796419230190246682472721722743167185622698150003988539849468475045590304799090257739157866967869229243422635817360108222896533968687306425069594770644247487595542698769278264563261693563146410389127332616910348278565456048970732454292014073723756400917706292229113349478544690193661984087118378402348041555359396371602523288575044440279314586056959212859060855812654181727539968659241067043668484282223597580500181798506878301340073504448719942582267269348615810852884374441533282221420892850602462207208988735253513946908833107346355044711240258578340329636565950996332265448207636118508795431691432116168677471108867694287510126733342636765190354046373250563428677223006020363151241109693028564872298799425691752530159056873523665883526407556100082276434284269616805750301040057916412976196888804525306723720654812055411591992657491505447813243121705217144913417023718858888885066357055832194604376792463644011574423326933036493351625258937492770573415139658114926432081610311693458077085042152650878854427312763417535728753542194130321108089618457266252615312376047173443006381143441689368595077623898195182722919850590203446636966258301939860324315819306498358283614134295039686794540263439656296113905695320556934761278218328641275221212209062304018902710365826385019977130485363140951570525732764745560651956960893484172454674929866980823041325958976198102439446164407966517711523948153428751313962059433863579889847640973806601415947368220589031959288879154803652767980756184410510779546100374615359934240093028362389898489860349834881573559328353272303408185651491027715336718076856054360344592371347914639960015638298946728862946430913952689436395607187691777047196823182254195130419561881716315876899839624889019095635846543201356529006373264025982041900016224118848138051862565424478342902542464559111630198790821161109497662847686255129601145607760792533262318546627482445255158057364701253895232778739545622456379242287017435649201258878412771428930815294119884521953947023320234411538705319075976327901006165925205755744888459135455253108861426419413844487674451807686162550783739120444131286253025582832643762785123153571537697305075871821896985324082364188742316898569242942979244731367769002920215231350691630875206610133440352144129256129130869657379477073061967512956678790925862595039744039991756776680225186081784692768784357781650770291052175642601982157627016285095061467782890504625957001087249137475587506020247022630703904338905090782150716217053464214403085087957392196499450271840702409693007509214121601515741808932600633147136089976100130494102363160340906796887044612060035856224734189622531501065687243146099904369528754043222208511787029713666131478181330292373145224370673156790914211145531092657765499695984954865464968747431156607319718925072926405967969354989232298543743356586531102907727713253242504372262771141069739955561876399286005583033940478243774628198360612944951654278373459551117860241289132858360876817385202314330671617731286444950485715987974815829166453575589324632569528868822351837977765964249742339645816536317399957601407301374153550994222328040504615455621807271579876554587735571192531981602468753752055352412510763029892348322157865867188544476199221602193663833940572577285707066181897521787895475097819529150567734894017896324775287103895829619275289315108416425803216355979718127477928025680384394812552723746687636358083911905085859825401272107653779794170762588844784833856643839902470735142026787082213723522493068816988309728881072641720236254526816763275439929266415397685263562966196015961582471728417132825881755500945987511898075536498246599062487755819510793861068732278517636440794868495694086253410351218249360103268161983622826690352601397611684495857200683569502031779049528701080636475861162197181908582545271180527018036479814034365186516574490472010499298367004905292543607038020326905558877457501866307335239746014592621498311330888730089486577617543384401385822150943932746239909993497421741838972149911423742052797045984867934556616235469575504725428663807241090432024899663020814138296880991748398358543396867678454274906255312811526382087360364582058962921964176022993998588223182272171784685372535176425036899610226145301420758188751732452949351225515111538546343459834874090902926024258399426572974527984083556288315265075246746919840866319278457626783599749530482109897193959572808182851411453290066553557517652700774764784158762101743122455666345735618472801692399894508710551597632697928487528295329466124401088225994216486862712533219708574068489133898445838119329614526550568419036789762773225197077789165103627812179755160910418516003365843145199459983201345079592580719382548099375024320602548578370435445533945074414505896444739165623271703429374161016966238939136915949208945688754624738860088952948975273521983259204407379075901433320493232074412943737191209951450277879089489708661757061265895174548714711070913351018312639987253553978560037277375838066264866148895215783970485264201926279605888623573875635717049254085483929410298178843604056570108987202599276450764594143990398191520102197812270147117928694787447690776625123480023017223398158481345510944820060768974639558476975875027119981794514362882433791793700555738026994120718062802246831177931766773253639557103626921298454925969584143767457236404126669750862719509966451859412355473341607083102832226347002533356663841103259048553422775689852280612731124660593683979030004630054682486724858401574819414977577407587480870931759846011031990881101289769330047449093682442177521442597588206258578581823446188801704574940999982905013523674707629541869961532790102117304746059210152347229049810087149975880978451639534632047996489580061215064867492357403982948931380465907279203379930833473722326843121817433659820437717695004481017466439590560676361634514692843983881065861382102429050581812741886029732511185835125548381441188851868448602804299800631877422898848067016072140330228630618965499415385319935087212700499617177020428128661617446405351887315051766731685267922809205377396915815867834600745410890231266126289954380344040314223138015006227008574233179172064746611395801658400324721457683585510999527886856590137721669172958641593959798159908664547096069768195665449828554850102982925358175809066600651563289345897113836918928536227864770976994692957581100050727446262330446403297955623096916431726154168536233098337035714482763193270331407104615928412330050105425103664828054569804292298279130444671965901588500580718826105125555966310799410489979523656018327782841996829469755664549805234246246681209454272733367515259950576815118619697659713026115690879973140311026950666801333675273315223145491463654335041351614848803316575850207877314137239874570968122196290192653090389572924136262534582566896833719531958586758174921720471102619909142215742483403569014373325301715673773409187702540967204792383134975218347872068700186697844414482601463912578995786840263707643533808919495850287627059694305590048480083201049230619130590221383989761503741779690233366488333148231671883593016321198203881538252603395530462821307597347206140012856342073130748279837179061207761632250014779379234486904683260781174366233628272581220291599167075462636255821799133319200980313247824958177241475060707024731231639236942950576177533205905754679028951418020676278487957540904214053897653889517004871915273561673814414631968523921813062439257863007698943821012173914791370038825671671238798428778635775222311099350653004788227265528796111857970456909874035326489252535207404978160702222515703715500211041533387689513327848787657233764359013511858010672469497608790344973731210995959274846490053936214356603529434495757273520603780643550656200592418907879741714831164145245823999507503077561193485557519266685049395464898437080975533657298874255237157400154629811498534982898195041494505509280123279643144398823164408619195547564006576252179810080748368443406939184284723763238088883577569700510848793893623134035567729525498825596842958081633941913360367379774152992294615044798351794800416690804110983728826259820743346516404596809254600955093668158402190315006901160042829062279269151290917105086176998453811293363824936635497806892692472032721974855459886261350382028297523413024766187070915144364728306083610547645197232291295499761887398041036532925893157180676505532616392221879269445107687416289894806416843967852805369297976165945979297219218439958117048081683860980092185379563606420860141051389599999355112166032953353702613850442696632659248381342947845125788649258333654934055338220703293805709150652490796744023460163655905436334747049039409737933588945860691045433991838787371321320749947705023033268027321677169310655891404995229735516410363292838224970113598555008369768190515824483606327882846822996650544813995727578270430904251050966395433528482055923884362090011624228130396478595730976642033580811210850677597785081448007839400752499854701049445704779707244607971440543388837879919487923109256554972876148044013614224459058685056979895665962890154930307001573387359090779150137946123982844446447609379543945914444437671407618603427100039756421754538633527673445405051825767265241359921704512806011959016185932292201194954137411977719107187302568161557132343587984982622026183039886038087346243421736668421669612955950724127839933719327640216628924260531296180872745351962350199463202444974243584135532101918337096936366852698537081407929606392144279451029855258307538340920431770497754404289942259331728909610630627064067446702704336621327226746483441624611522395753040812539796699890527814394075643601910291299657112442242564575063510518180545676300132099536798282835442074366521887165132169036828555353361275975320990773810964664838210327909491556358541503776576745282903602108837477751350732879650045289603550121752309350963465080545238408996143660270547551828434664885891050635054594108531631406775768432092822054954772871870883356720106683504074496501691213306517350002212980565183950031293510043816622735576281613489767525249187667428988850998421849011904790193548269747305862069590067851741719412369388046182299529116962283844946827215026540558963846049136595460360687683600778229035814600474247957593714822169591754701780877392110365870446539636697246006992166905150534551149059194447106902775796570647468292656885208345182836475709136074053981734686427849086014532329637682074944192727385164736411620848884990310442153521965279908366448612683695210107748210701952296397650375410242280549986048698454053526725111340018125476256927437428797373039741289225414471302286318780978646013251624095904676463864094779092087195446622452603357937962457659552983367943996829631340948684448904007835471119121866033318749046666641945151122146701421895616245057448593345269373866841977039756744156657878810375190827024120171769498610243889102698523243510667816748028111846683225047981392250260613156864239722739217854386243126726120454418061518430737942979379798909491764613958000710339558872105580750207278703694542018999725839492818232068623799545778444223606956377849213162675143653774380273392440998884435415306749636349773015672816282157082740219970473218394327265007788842338913301114391830452633952309683765828222437298942102503182030770803095056250145360047357472281009546203455953676638909480331352530212385418580167706737089078599488690546215627916302869520182581134138027004002346146911897875990099710925527995360148378035988101334222997671600893686628129163806759295734960418151616163189130187714324900448188106921260912932358370151603143950091180642894914970552017071079453043188862740678863682673489904873284417689967323508071640883537170945025798670042087853093192101155978979292364484756318490922186689948169061886010964086931776194982168689685156894818497600156324063616642008402935253797215221826752755477935697375111064050068312868572013153120636615740437838339706035196865900725459050299620967122656467090374741295769741762558654165048478639140754773674319918650096608479067310563259020873126296821784651752473589229408344386181453209133367713005064535559752878576338889695174011045508382985672284611147202937435668608921573629910229249869192037258407182455770830033747646676780339785099595578779286580525738413577777288633915855727144401684225245523627589236987113264970293012350212942413110680608958614141245157419934891778482410420490366954018757663566854250073739743306378081036275315072102691958417852122316656036470349601476984857248361645343025463036386903383346829522837157627278254161804706705323923695172910343034465156469421327925422157180087077244880784942604070552449732338086300842181530342377557770824902427801262244022888996933838900003825212837546788266676744987142968711346630722910493162649025753645377932070666794787261718816715032205338463402192007312288605803377941867564956854399439123290593183366298115772576620017817783883440314172876523520397174717242029827479984571641451924175301663192363386725304281100367523618173950691455712890769978992069526517563118402379285992480816459690044527391145587241330315575819676072051387981163034661895760034560937736322458696911613465089482529231250770153977032481974528322926603251657253004694253852368171155115091151320811583288398474983216198352893854816663319965224481493573457943464371877741053167295844781368715253078806456302846187187602965870890822275973388748823255597009286945235834890768011385641892075042679790376694796476151735165379197544320903338721956845832672064437043540980190229112713832010010104931103808505237322674810861940889069888703415890357236841075161723549956890408416190935999096373580548730455155640631167258220716390708251351891898627059484868707424850382005547380349379143847632991642252353953623694480232118927338819171635789344170975018293044758988596396254979671601520237364756273965912127238868608879107315068338642062041187056882353978348640129141533605522657132864874991123329017756103923878648802292451098768358726576103189567588717323202045375559791851185674125274137414853847003704619264522361245138512688420708411737264704085651888725446678798563533133233737891353916870409580859546840672200470173815084487522633798940764109268914698719373925581298041062563303137622179658836240901115475377562888147599405489873543222073494347751067948552032113409125769003441860700517668086534768575514743983938410609423749446488482727193427968914040596226402242738377196375349084571252169685455491103739909510049757244594938662232747009457702388428640955032900006435101965719544034269336461486509901839316110485020635406199963293184171789208738612793094515669767614199761117445407280428304030316169498998750415794237682038742843402569275464587076066063648778805193154391968300777306565594616029425561101393449233289724090544193145794365601630938348598653858911961070981071072324976536145616634836741216174974627948993811860925297370198687541690163110541079882882931961857563621541977817396244432645979955044645272569897572047305082356582298337814711823220685335265703231433972466885520356512059387968204075702248451824320890147679738480430035424977846101661122502593179427586816055644937486208555123712634082433455641022189380822984523265057995087850443191639572228103496787920817230899688424975490550747947825049260993177229022609426983933275663752576992888037409496330758851940676467719968691264340766597228019353016801327660758924618260223454158939809950792152652362391316569646663060479065510823753228809765665703924095371554330887017304688197689459300184646987051440556277497307894694488805333066176490609838029289309987473709201647413439780369155837759981909060669656661100103046629624184986457893362439300463829941650519013016637665934544198471515704101299322890302052952063186610418807066024008906489132792916609624017409041623258644624180107355785437031395324336645044977352844477761545377048842905277970251032947840292720524117508765992324322650027614104763875602461759561693682359591705062264637095757151754319252203641615831347978670561826946173858000265289349244335297350825308633727524870577499183216263709969206865791463632910752039068144016838890935813753676373814501341397148656750336962504712205037477789875555776063482482295472978753849697246398492384240877648125468177162576642616036120678625585649519127103597455444322775295052932542058404195816556911742544091419854969969953437185005032073065842705973334949494576404081549432772019298211640660210639166174770538283604225572061530616441906467681877393770608305381634259897716203912026253162231768610509387138016369591161367422098483514897996729432771973671421050581588999270701409055878646368749897547716044746416223695652068156852485417355072847418755131632282610995020964177237807311167443693821946870870838429646513454824658848008500903281083402459559740426887905756704893391684214367982410475291444405493072233658101609598430871716872217080857092398888688219782678396653695108855284825179068743045109756600312533480349130444876572695018396584045383785564299099484922431900783461719227883027539558905600835750780800451849682468123695112225078128126312679467682976820696550317330120626684811010003003445381197563221846025894748709981612129278802991753952799947628203852036049339509033386841968667360281196311037438382931973125171547731572664713938564387312900938311160291545757125398566622988275738665360096868856670415880204119536184646715737069514791225454875232898170053403052119225515847798523125574878118717767464989604258838868168541931325362226904028036107520751106321938270767118653699696217168604463035866801659718204880997704754450077926549556030044710511296422801744432259947250377593029347633066798644725049166225168690759175184452537212554832890382459063662921210377955868771342845380439187634345510018873126290615915241163860304186625993243934612339435941835245117505360498120564258176737836324793802817892943104317969349134871457902786673152860029808219665715899955127468885291491802484354333020866753330875053409047598508512736040494377274235826252850672037700256208226162647887539106955802526105528729425076523362489129392014605624332565575027271252710736463583326782513235934191873166720897991822748862192388360463688104391566360386630900110007169217359420304367319542648009144112434203637097792572771939991356104642338576498548161287604106100862005029620099984410751546957587659433333254147002077664377992861461495848309254724566827035351160792105392838956329337138723170855533127242326393306696519187013357033914764363393948527649903369889513405391820275753789018589103383514654249128353487866053520322769084944713976859040013744629149462106400889033790661208291526927386923607935777616911979913602684238153296902802759644850828359841948679791635121189029823180358331856618410957766067907820552951290338314047319384900624450456888545803865281818929045162401097533673605416156273857938808883652109404826055771050254257008821915335334997725947941214808485679784646613701198161430877590817333906738367217162344061045962205674313423378561113544920631059819488070707495950380838356745849626240313645642318530529398517471706913372818211382531985358556117457351609752733566610002371066542893356259346298329647041762867504630095240538764114798257294425416929750775657388469201768295831829546337478536819477585239025704126970369210208914559454646297778796539196607823041088661967570722626604726524767246581548697860221918853420614412198418821173750992272614299734432175908607068473133190545467724091065236956626120765010658727728029781553126110872907845398845644329132379093097200221710230876630707529242279199588769055053363189285935039949140991479558694744515123541581014957937924767118668837132246305694267986968279898204466091022958057743389666932263998491690469661204482913464226233633492018063317398687979785561002235417280891335521176832920430564742479869177319514147540026318887074606283931923599710934512104365347398330630365252244379898026595437443842784182759192338669923299151216997879547487228285191397616218323058343556981617664819262930509601011358198192744961458815725425587105909302129948182109630551054128483258819626188036954781957150401569426991432280539925963649483855267097737926834692919331475677068218170834548044157489474215102272159450303324260796277897681436427057478328339183357739289099081985139878498473044967376533444308025993841876173038042828474853332717241527723542766843455879665732323950851220971962529289984197183846684028628557301656538306331621605574486612232522342800982519023628268478444341132017324745394265229532272516449196778590574754764375382823687952488605770205086841001630701743691891541205829969998924872386944021442554791738311021765570139816908146696121800292433516158046557549674022007581198047530877678755530783486555834372718623715685937128174101211064272445847231554303326666204394907049722748296275698750716720436855476519778506578648106564168373027434879891175093360779251705589768467675425561116600310353859190089311324358791506176024515964795381506128275478548777791693075353344749027718556340308379698608079809859941422848343545721762302092611994211100158470250022304997249717016603260659172864843234869490244838969564385080723570258663965962234418133702788920906900237271545200849595818621737550905475097952547300780732621699191681272973301058922460019014735875001720965996072301589256955424324872765584249545269250598807591112729623381405941114799403180964184575163575196268310012257907255663537323181045141400237547616701539726536340961335170500550632775871826425918547547888384036145609213161699096955699708844493078101446961476857715751129585421403508957694190534582349184885113863592457910216000192557838077163623280059444282194764153265159405925523208139030247892601839907262799081203246840828009660482866638356804548854119892263907304452025542597400304453560929620943537617716755253384404924253595995399153100088417636866920338102727308515880446856470805380122910045873665303206810793585106517498615870216405748296305923521206219566568080236296024364810203195656317209301240700933912527157311233215525021945758328006961204402042902802148797028411216675571550191777034954400578603685418469369235899191144657393151280097715712921045802815639039869395590078247469053482519250466027841516161472038292888449497608906816775583606925899272995823041312810243624388740383334830258179809470004126045601099812358322078093440121737705607198169669107407490989581534833725535638228731238379129748580965978589447761619102943937180114329097478193718919788458628358134271911104979907381961254420946803630681952399760476571695024375799975547623333214129223493845897655156678906012567163904392023480076533824903912146177544588647826936431211833030846227941891678179264400172469776771327242491861689940295185834716841318367231164636442151255572126319184038033972698958891202237182979717301423811075829670718378662696990987741306759387039894609323476314570902187285540345241260072288094767633650984449230745376474971844206016350064695378171268458275333316395804318445398504636648911368673620571278323939099310496025432810326311524823342884848208377639431316707688737421350809704139621574674904067013689545283816486831109963835761799005379815371867085670149246164022305305473484313606363977324379763228200749694706549611427371916042833929911263056805030079767571446873659481951608690464892208752236872792719735933676246107726457337940982197771159759201013272971387581015532954468161936313796443105143144444877275637606532774384016644082424877418888480286770663054763707388092325102305313564881920719375181597561138317306362985892443785507687570872048247847821124531454129622037720626617737450527867610488106484084553963392122231470532115745539620041897751385877714448477277712084703289720125015625261955175642094337557287355044378584910304038910052235632622094471858093061631845621427823957293684357026884554779585525291142045962423663380623285545089779045672918752430147686895370804271064159244530337703421917518675638176287216299139808226855842519515259021505998618925005375048366235156243333630411535734206857532180820938721772749602778487631299618938609436186254406998392630342786616576417294195718148121143896703555403013670308868975597078259085902690065828053474383610101704769414968597516421653641478166238282688967010061674550783351217358393929748169967496104732590827313694064438684030015833713428735301198645230495885218993251618833668271157065012102678371969244945314627555140481555599017639747580896783613079774094505774850951440408741923887388166991383609278750160552213945907946115857871886564679956055450806187342793816198942549364084818613474759614436497991891576554697101335944948605156903077937729988656058226929262737869284424606628731693624789448259251800954547852135321032615448746466161867264315424679430309101474212197980146683416954134203006185664247727565311533982760683516146545780470580579261051073840966453979243806138184192011409240442357597955499541092852244687355399577060721677541265140195564638861410918321032295205142358157336100136359562207733163630720811167950586824418803036570017257032578081754396044119962682996904144112659896961842776800916025644493095480002325419125686657247677576966689553509306309960933261932446293584663405921802719841400846983940085312273226198882709354305078995347044119961134503505335869078480385235815543150022130098167508232393965477412209304439202147517609124005724258595633150108018921441393170481643546423064295675136311003748929314682356491117166466965047319878235736985263309805847017625920755643433591887127778126674750887936898102178067611066057535858885759877542929791399514528079452945228270106214548451790800261759201713523963960268801220508726802468997440139565345535619824415076123997115438957046404888593398375761871949204610423217899666314053754819086357383019108535660679596703658356269569054341030779296291677076315227019426812470471130607240665356453629374436872927730052998548586719256768982454602360544427941495230153726739793085965362071421799559683403592864742720797495717240390700635259282525660523534352559574664337319086871887703899991071246277669110126460096240166272715414999856978279534666765716872061100347730915227459628758299855401572543009525504526658689826398963823350526684934690023129970044686189909129105053641436862510337740235401939208077936507021605021536784033705022930842359055438532812772637148681077748535680950366290533855161249058565342480098563624958843728264847852424838977960571259212903558851513872560491843412066638509870651545342906413346940905113960674308682365049776494075943394164722732719877700755964257201155794833837460359826237074574526446774423264554775351339708562646589556035436165944092114908851797339144558251507069451350579644564472520757958131547875442149923904552953417699006630201270678561514561281812203191364150090310235301570713810315137787771405632147686913615028802615222976704314420308850515163590807989626219777105616105347962334061740172531117811561314241904032018005218431281044751771680705706858178537555952793755119423713121376195294990915604552091818868048095058483527286676152245643145301738668237787278488730527080232396297028163118571109814469051332873840587309750792684651462416439387716641793383850113088837360397715926447610289272638580030421770776430671564488455024771364115748410760268733418082854219217261511959465797223543706419032546838948527122980240078593110725299026597940867819125470135628821818117352165863775054038997950352580939438519238866355247237386813233892704150293066524713747858047002194177842452209034457979591767880707167544703166607007841512356067831019309659462472859446376019263012522607049126463432261250455908829390414403837574560167743321422186753407549394267070863804123966210689661271136488792579935291783011446663972400180137790187889514656591258141573726028108034154940239932201078806273691123422127098290862194835164647347920571342269689276789299314953906697299471020822747506051767490668335176105792912867760947084426462743387860908699215635927022367935089852091963753933847537483069769161682599085213458284346658168281002858121303397365936219967253982051622599490155558703877324856882549902225883975781076198443604262120654240358891262046127142149643367799742900680287340163915155244416643916018368011066666094520917399755793923528762071948907829315696931987127637050999817597295345036793081047315327887775603740593515208246671288392723126253290734947886094069536708671382176442167990137744054322166105665950983029776635484159996946834839928723479613537397322451289946384412310378487088490569631386313284373953122462265188538464037190053062130828810515993805907639980428547703997859330904214619451518514023581973172320505807500322862407124134060975874508157252027408144360779185909974941657410047567964460251475302239935519462044156190610404169203611650289700498322552349745158923813872413595633572872376923859842066654312637207038607538427928249377632117453502582377307467108518159285967451591420729623582708502779223487714770460286121493100808413601184642970335605058026382677275983879431118392380060116914199167214658705312250669836920255545518041252775214411771559262333001481376488305049733173746339267374587734248255429203204426094127733942148751706948618559021766071493457762301345989844551802801526351733236665532307127883523905686371058863489839774878400095986767885030279917812477212311948071280559075234059946490729139337736335915039892513364486508750778915934441630479817341991698662092296176959445383211408836535564372112324732881787062742058891372237139863351897852167124438998216822944698391984283290967910056725505782294137300774760819461217883462049823459431695427000501409214140440556243827784549275985875241558934510860871981045617993591386925074319087815741183745284815383936717375157523327302301678230311607207775161918180440248204542451842603611633851194773161669741575540702388071113832912333554500687573997641899767317005211873120469436211894879923465904215633730160439595042049165114010892455022712640916542600163676687762801143774004166327079215270293071531072147375609733868582771157462197099696499305411768139239119271595873209383308144269816834136118357373828818508893948000431405242657331878123093159024137264888126606750876361787499596726257184109835907679606959025495239271195937958951493420173244357056707571185837767630325498415048807703920326180043083447948723525471072053650226230554413931137695263038528178657711511360850510160536164612366339776069195735229329975595910466042385623403400707475131996711907148223422408553732916609259956984712611583595902985231808398296997127583807647571061751881126975864985502144075286325370089359295928297521261367746957716386801002027048800855625916384377688442769004987234283453877161407827185148598954578981853233327439521562421393379904443821760772954568275102871911676074530782960090734834838592317694042535451377435823379710003872283454617682764667271835214699494695698604069948051628837228713407531195951490670310023842662733569398963600848633460428733038950345889111919319325647999763365815221987659652831928405948434878882597074746566649719499121570509128082618164907289080050235926323160937433194598827712792502756695089360218138536049424843570572130336279800184802688394127737419068106500961728509508088523521073864612066527637258002470117680241226413405694370545941831789767306690286925341246128421920675870740571235483012223544223811998617966056834249667003053234938330448068453561432732025982990886700214416378980993083252696149928970904093864590718371666484759593420846740657605323426592194272364929966606760805514355903085393562322922673336938624279836376522856472919617512353818104108778222448873359888191120108638111780940552655238056514395109873954958794177080757961607626316670264229396776109951884434071005078821558511537612297621920181784427157668413593072287153156070108576174925933582530708438002843522567106844873745139457497647443377683185554382270058476678195189630930172207532567287075399269998887226275049646374483804796997805177926632437269370731002823484171027443518912145746320329147928633224493510335293584592043166755252077578530148251370942882445947096539011724070871104422703879647122698162196254306295871012671112665039122690525903673142030199979015162371097460743197348833478695487977053733054389796469180513891725053569802199443908285864916485072791241652209553577199752600576937346531166935897417354003725992609026794301321189780469497615814812348443711319469335977515193300629694997728362365070034411771133752706706269086475889281954678926662596701265119009240409481508565414771475993633078976012910506613014806379062401845506074861467213510218201694650800560777698073350644840100587366319203752621825132997832494973570948928991014650216683108656225932916339867151801771843074677381502824247501633523348407965009515479081212575915004338367220562827006066537372461511204292659613122627759630206388498219550479699931414156561834903952901070202717178814987715818804443147087029833402427166623300180390816286773025852628822489836613638086831667178099753063347719572227203985507189990617444740865825797430395841083466207133781913499736775021870628052429981195891606196165368263749103012654458081676380312515160075409487389154990249255655648142963303998185725995389105069618874571822364449410208955252256842947494011732066715815081462603521780905964578709701680391932215766497793158297541126646652880509559428162152118502349910956552823631568401162365931216834986961099391831767234313531925631210598442781483709988263455956941641374090551006639039515356771993085429131859600864931958340445081080042476319993188822767861166995263950132305773260632742731288123170870605632154677552987051134869397400483654520916308366446707862607859566347547913650682115360844479766669208992348773843511988375097615317814048003445174445974106840511725674524283949882271162311507192734493816486274838202161757134077349580598476604637066588720608282957932057591401576755378915603818705826082216847368390972903415651036468307916332642865425758876956932879194229462080328753320550986178920536834746102907636102288002145005148262080331664295389511433314022733588271108153275161031087789195323421107694624092554540217286291939275149679737917878782261662799836915606654156313558232930950604476326728972035156518310572094476599810370538476651155446971165122945600904349415751758535051373280204875587855432654107464549868571447454778910657924553425182585565457606242598897322408345206013652866829913421122578961631096645543848665223273596007149231303266677281312726477179499578434944122838192860645272607632398356379088391388896369054523599720311036240700411930359143912595113993072153781451655496869040373895525024947958903303174758473944508786421617302720779890530331978695546643146997919327676412553614830711299839834996262127509124222122028297110676594724950846112941444581644769069401959033268649266148520293905708335754926268910226134140334743293189301934144065732698773676797378979854331436610460807011228759988349346315630632054126320697484214433313052725966992224642991854640848852328645163718459029446871674122208975157020995271709042231888223357083968517022003704235020498078737852073786237775148644556235079216206486522126195370441177686291085782529837258660295817102484820219232283245578667997906369379228658056981735121599197031954571809133936976256107674940871344029239598537416955533008702098163136656664970457541176398521032014916407314742134544754255589209955515847567404564380615650272629187264820077306924016417335218179934200180244421754858807615427366865501582156488288170108479897606274218082247091238756390206421104173954389767426818813670814372044931995047377342522593708166849534495119566191206131514781681443816776602434291996173777056088621313452733423980432252109338745397463256860527251421050533524212707823680359499780434603598271162842800681215814263464612027691904792258945754775632254240388447078495948177229829042327733573428079824021511542777121231202119663775947154434780647132581913436125363359166591284267018037126248662577815162288525188046102503695499470695785239466824061376188722583734781469581249789443596605548007392132397699135223875050321436003132097106275003496100216760219431643988251794270167106282611749566691406423295147067026401293842673877608997803302293723646419224754378122725411571895479227702225154212493081200439931306194685750773597561625899343246101383165277713097999304059399601631826624008090321054958550115034967768902784550166951763095651720292607459094467258041829055496953728735134762324871988245594986360656953745093889030217284121224938844990490803449387490809328845800137016008977052788471749943605234561598495968324683364338387509132465168673382652091999498884210785128653347937637129746044294865540742260242927962969534717351159635897406351364818976149808025533644621501791883228967562081555071738555130010315658803200034266150779061723736820989040290207367978205077008796526867886811527232169934523603234854966887548459902269384292861430896401084230417179084687708561792248707861897444463913020375875399501709306807714004055299440924327321276579666255119668365647191224166522114834486215995605580151934405425891191494793151738713855010186557818193224092099018897611544448955116552567592060922110477534962081663342517103752302316640610992535698349618305442647459810006586305671734993551286702560466818836495206297793195423329283218310238086470082119567931009500166067389482521176235830802435018735358837139078880809107743949807545836798755189191994787355824796571621829295914986740583644343178521753793419606018044902608392878790689033330043121769423251959339557864410289074979725154314501068811257372347232378615338494859801161749255244148277307976674895440603022735079738456245607712025242431348154097394401947702167671242608693290439819012915238380850528935688549341083122827332377176628458937490723878859474055058791226123963222104151800480935092520816901616699882940576672936458900626315633292447780059856296572527378278600671799505355119044731218552475613752669188026748913356237406523678171898053184149716828590272805155403922332472621876077742057257083888908278279713197208846017725690406278259183675654348508733622087426253831339511811102802831376121750892336807896516722178224921358959473726072079199254225322368456780867460951191682603793869496406215448525283060295312187720409928225995792525531799838379567091064973901093455507810503422560887998074329465995295607196703937793642289410411327795083190547567603476792117024719521908419518201407025056255039553675839924114574345960324249776563845020931164617982211135889975274925052281042521700392408618487098731791276012469015067335123644437837180806262463594813833490188821567886298283434506781718049877202622748546337227118149325434175248571791278431001952826985392864182622000186733744165051605888163376453485130002197101815510526531062947793850584045719332642423464683482513778323541228818403485703593506142735282888226610099533100896410568393009107145728101674914841225935715641257171471826576072857893429252566758335647560793166407163623841036139265275538038391124542523873040100446846944210914860931646394935766066408833886661597199235874557877113017833842141902756994213787059320264684444839137477629572241103829857860886701535738288264129460669112419606477071769746509359524104513103355123963702128994720131060247664668378810957897647407317129983782737994420629005768873607488483363802829203024474804281882507364412489476393074945850750243294031487279780670675407688400653401387389542552114002545365183942121958876358965591182480559619777359492143222508967735275242367571436494892107020636149358618670643374401055429212310165479403824241639487786527494930822536625740141375811171483249216816651338967735582857281524397608008400124703649665577601207510021723404105472179567891093082843496300365095223900131081993721611961563072171168449210563612460248326931140186296038218995231819779941493736237430632398045586622923805589763576230995760645365974589261762854931477482823889308376455446032640748979260699809087244935295837496485367467256334200265373762304259279989731763968924244133977716729960857348280643665368359885542600092228734687937357004388201492555129957732487761118268843457958666515281370212707721365741140180760851906948708364073552588326766683832098590853593869614160335345118639397536407754276703333862241429826542518424086498941410946289530572510538631566059738596810400605734274977010722856799450535008327243244251176347626928420636139814769990612975438322165214096176322763743689359490218128157843684215646115730337669730514156752894215716023514795379727449016242600605402692566805914105844454982291311843408890684547395389556886568039356858819096741215438280246232416883042600242679714730714847282423912831919298303175077173932250509472789827402101631809965620415735139951026809072978372527194216780177434008608529482537714300622933772659312796824755635496621452532424084394043224160667291723007071896284917027887958940142530515117022899645031289890107663319383198024799043211252960984780935836486705311729866378086750009265187832713275960633748223553232663218925909834515871076480044168496944187601268938566373281245285454189959659060035892161080855056777783627083615722917241654537046698470744912398578167790097526147108710656210683278545933537374563716379094011972824863242843886768876455473961133697823487398370700856857684858573350788501074074724573334906127048053987995666614992340011653115222704632629359948495977049488798468271099102295350343241009420531707704014338790543805979521902610676683276615634070376838681313931340608383682980810645918761336927460466462558910978857354916094028485319456903578107011981435415635567463315326690565380266447436485714152794170323735099484681312958046356392547674595956768825710494045201586590006456866365829708692537284031644105499667655825641645879971304445188938844420871670823498579036162374326364914319912188897591304757596362401473534644778397754690724431690391309679253109156969257799696876197807049670102303547161295392133841494649278684859934264085317285627678900757788454955119882552959612580342476598421419578501192079950766352180203623591179939849861425776875411513532365715608271090808501479767665807080851620986765334073306955579989619358869014864655093607330655637617609672900851627066392582566978258890609768505493408279913198076577222486783974850639890231627553192463260892815983619483043930497344033917350805306243440643491054110528021506115758877533438129057661462829217353836129092298538374180383682813926048536210246616246368153837843021244114294599651185666754018235190267778761972346793186833989831549553125680644259826064946070524096645754754064100594721584168401174111919252840320946827275931717056593684733921418737160419955887089624373646452410071680796501827911748681875958484362443540843130465189107900459637664666244409275606024647548525424033480602461489777598658408939922797215859519163572090771380077866018468250780585557646492627644393219201452278627328203201777029633016843943836451110744081742959279893231842240749979584959336743758634954289244891224104918914363065074174576187491398330981171249332701516040242611318004856857421913998927344512723193895192521898645366382054025979156506661505470546207141111897980874881118112141124477250002578674686546956809722640919502938879721916638198762914451143954508770993027684484844412685544358094493283819355881293055884974399018479120691468553207862870413620610763333031099248039946412273141198888618119182887423562193761620865305944812283933723803568483749097563923192042699999931632595649546309573704770201498500193616818109979399814391304289211156043740213771968717340001939551484198262837496658310059939003997921032886040439050176636322558660538117919825724780217162140856698933603590941315743110056415917050176924656397449656161667373415655798197769450847832049180460497886965612756297432515439285658525500512060963848920195361358558626315461492482856266100982443836378171029915075942224758628396929906247998483215824469208480796990075991571441334722820699805147005451566370817873820828215023034127955504646268472055437729417650194362888256118463909138551963614041623213181820311407404738469926598633249887856724729006587259779313963796397591813728987219172853008968174317202563905148792616805810072990751193647549435387612193413299396117353557554642815778602839777920731701608623959941338153464449679055704640225406146817685471070886810129914334306939703782271968070145780024890138444569559225416057360904409333805532464870350343691718130935770335794367922467639044625746401864073498928661578495069306915830912144297738585924919662974868262408755992864276631125697648776392898180028512873478430534207395786321037716861197377445131759692408162560514704269679856750982732999229287539518940064096148712360590747609574411077853000336350964160656209341573946746673909148033504906468285719418786589576865317379296290453474831157918418244199022982579340977508417693273097441801317355312735981815240769388398054129782485916338675189060912038902308371635830170315686725189456503224079864687529165070814557792923280398347138104731919225957810564790322915567058405769634499423232258077699253803364092044819152587694623841732864059947342663397019749221782452849039323951232981785526340319026160225775580795963971824169246765147088156489342367873121866186973049015145749745317397636955027169964321971312286117348296811801514552752571586086753100442612341238166643144829114858734402078557761878364889187758727561973224869981617889785285695199841385949747877220175771070928639493796788697306132909023576872854771020821378751595428175803476606576493140190998683941894723586077262565652042182065760128268756207306102328979917811494542440258430108430613316078505078187936576014171895897239728956362674859852380538770658464868846568545512254453373316434782264482883005093525899651529359702676783887028961499902009033716823947854775401336217591374371810678848213433183575962641046254615852752390189490399472401717199206493229766054714140346330763453145075606073107226316446824518320271783139005221443055857132465760387511928368103839872191383277427904771016630062018075450346662592657111221594903752334180781499810159626579184626263916400964209360893309769950352456135345581782359578656298867887683156744433256234923227622385296107716573922982973638191762649507133262343037732981216723460696920613497286477416275785942515482873442738860076665791828104682125371821866784496106446446003193889974440395222493029461705341570513690725509143505704954673395071153932217607138516588635630755611601201832805469147822251681406717768733236384676504230178229401745485620974069632510313008171179159736265185022786208923217641136129754822405233439750741157522648639278709900548791706853888567730701914388901984806645165898755451214365672675928479903507870541339068739205322064548937500786276640739108600575501610705644894823318652329268497972168075295960594928691082205377884203188473841898868278380151330586283507837701215971290007457965626693341846243561824932572463645951003292362818037237649819896960096285108795951289387287926216636975614630198131053483907413883693272156806275059985710514364052006908914214975358832957885613812663819141379508774868367156217596573947132241955859771474601877114506563673527601553113945756702724019707670948329901176057677574053951195392365427631549712984212894763937846201062486211271740015647814846470184618809421597873863341782863484426310818464679697247922699715760232277650457229914902068531851475502411264973599978221320725616470704519484011474361778155650047772052959934199303793989291420653847661273524906582300899311761369175414279697393250402150705830410506613441990162062774489946139784001565527212419910699394522313411982842804191880150356059682338592424409703474946601431806317433746154325404107649721250320625267985130996395986538466648972145860573905550135686007476103806520683583018623980678046317064533284499401847745980050773505499914589664606299674161083127937025918904345901764693478941366236339598075370136631660763912406552511577648087810297914886829621417080800270065779842880882395896693616062804256199464779301428836687082176740924648134751310576776940016787120726726183565239130098850358940998877902854967829883729653738327446393369079154585213878854807170229830562668331548950396754719259049235251158666645102784718996682860509607188458366490746976854076448179976767710096563536682331382941263136179891862194602277211635032533300848716933032391980691023616251764063720291024522406623853467889210192560260634755959789209220009673093654726421310361246311688351008430306896622378617920660412259899844712240144651637924493622849077969402601844055904652273945101179767777132633176321647109738130978388222908645597807513588431888866532745998664250271412490651649305978963403415817017675232576702869457387267746003648940554053710042763970233594578416532235477353818543827026554364496420127933645605238615475644479297276845137729627278903381942440602234048196041277632582370608770976324027779491490331222652047626990128659311808540475262752269551515272184106516890141254827431180645757738822853382605279034294870265965088746132505682095426844728601665621605544951662426719423498089310395384998364685912391801460269435212745605610395168452289476333867682348311870430159614312342365679656008159308158460319591227191236783586516191277095779837665220906882848348162067560097845455872301214330487780659475908883663276611918474504552073752350005037369775547587080352791949726137660413202014490574069969176688778910029827752866753326643263581407491858512613196055937188505405582938476455950042297123986098911596053045053461494550947457636948185358030321032796633588536569786269504122957675463128133591718898709829007028617641025567743697078280130113925737284162601308791472399785673931013330609042517584572199988513805109303049278513915173208955071383155828945386488814554983978731781241055154030001267702031882958750571904489487320664943070714464302844119628356820482250643719639656083724838046664363553837952665343796587898809875516881492740040134640885941897311119874059833263386561315820981635177126915609835399559925971613715381658490325812120803900152895591628566629246330863106051150748848527557302673970588826405080837268288881996915378663189454250982265682653587105300544289294621101315809264934970790697499738247309782488646393896413661607800325389419223388186037613658013122297536000806996514143218440459361012669433360099277253780725922124528135826005903623433127098300338450707876211441855019661087393295619104015771254541217071679105502737130867250946517657453949973509745738368333526855317454887219687884825171992837184990514831167084141726623845744969284191609717074148247106253641758801867011201118428842339645945098297461407030624531100989830124492054069854742324482001550150425588624050942020949290927364653254042610786451502661516816792146431817775382769088553970717784600988223674979094418031648670150853957209834407809508526670110461431506747221435757749178776220019109321351434447373705235843952021363092871334737118935358066227156761399454400018911133716181318081767739037460214786415076251510266749977867732483215646983928594368973413304153664661110681576757081351208126447118563539593530406730238784336924197718211561044569668252090924026541392267148785535329952193784794138142009824081495322748053805092043126711719078558974249883789441387003028002852143281468080285242807139351134972399371911719904918932045218072025946486280735050495617007286989239505582937067446880440239025401319910565347978169799430393792645746621974586056114376002833023875252134947410474427547575175653325865951435024944839330162695460526016222626054203049886563330223147175935887124565456674758404861649500732511517696677995008339912865925938703489906605868431271692142320389280871855264048661261553323067862529769246737495580254811690970355584273234302171857439479131164257828842608238029866898100563793746231093267779097017260350001976148003885257701062147777172529636193766201698666887545471408047843222452234045790026013006060287454022536852432786121145444260669598217534069085853657116135313621279549576799862833797730708516942048626550586340992093999866650279695744517948994298952544325167722839762715349119009764628532643704045425234131029641645664129370539375727735427280490256212577696238508108980191890196405895127758177942652573387136937179744654039508407280237611092507730941461783670798116590222575489027642385992470082305164463193693281937956793579152531528622561602715604630113086026451110139894116362880757620979374975193166114376507750819351576475600388368806849922947072000039650033851764151969200107912323246435045532576154211601367731071731018264468365349690490988454410205633735412157886585937425883709274644981789226023333628412765901528915561851145158699202216082427701728429597545946266257482266518154645321732526750680487396647001468996829517101489670937322895526898806203939675070783427388646651217384794813819046199761508994015156104949606031076313774117915338861895974984362458714204849144534389246651832468033970565806400939003526344948790200686263545030170791808315126418824828390584258750766988478097886452413216681767465865861904045130592889467823136619521926094162462116392702746597293367631010740775447270378746672712052295908855373472411604908118494388235189755634031265228481468809287791277393350212785315634473133265038809932751167964555382878291577360150945776939516073415716377752910654000415333101897740469852662978928272772661861045922774493778870430695457696563808535192703114489609406484930454324941973581338936078067131227629946474350757769565776188621696724967819499308807688258565077106510559760623602666581303542832787012255851104460528115707025588346927622662918043067920470185949122205025189803722910460653632804008991462955987966126818625906776447197932876605395130249191469507103795047453622239717084095696947767072366239310554865405899288788165406888904845422616832013852672781879096488046528155163796399123360238922587140111546865715720122746590080402984642548817087123538925454561015722224110278223369948920146719516781564047257463801503533947004007003600527271930105184560443419828350523559382371407382579163076411911973537276949025806675961288936357749156345308602306073584253050377087596594177390813284308379537660437593831832973801742602562208293969767572780076025481335169748354985536206109203803049012999514611612840799551518582427521390313578819090213156139157379150965114071697007294079521011828057880129478194273242242934563051482739870972646138705621484240157141612992235399891535223307724780686622657000631007879040939251641949530316675825665945761871371364490403681416666738685807939852605429591510045112407658084869319740285688223770737987674406895766432596323781963810954101636364506105349044542424953015043643980808794718972436476449163857147983097238703226100199989665295777842124953742036886805262990660512502269801828633950149022121249144456633282961265839086902810239587853318113463845745792687907401307608733818515728868823354590675865631684955303935724457168491597658372801721941426441459298666288023266518800548554692258698460201621445905590854245158396742585826120054929211684960162696341344261870886414149875959923801674598333448147196454777733658794499011271939477997566243560231233378727730444425390757870434512732576381205904697073354472837395206491043784254530433613690393115632427506697376559008581364158120505828507120015689433705977720845726917219622106154899420025254334802328616131563560424394018234148439901478988098133369185077938996969318213344013235267921170302264649194890347536853957128079777730395016274038753527218541978057842132800306745331882923828995726622083503175163769027928457947502031350363219763766600538047417401061756039645289029876231050556695260163105100036952002110402226189629017121744654989621500298200378454879030570464641321549843227392574224667915130435498930053586272209381351989899881640286234458552462771119488812949865915611311816243152174661876491210020689441920597040088874146677942019560753424193853173667995414654758869585070244854777226824928201384264611629523646626349207696148760337708838449616295347591483795723591606707286110907905775393731204636814184022965623237186596491476125807974335550507163902370703067361034141517975309737020809998681650152804464745168260324681498265042272059789329388756578397375886243694102078466085837517364762241363749200318500453342998819787429221966322984893566495342535116169627486180272666211890197880209050239350483261172694596046385672302294284036789036920450206493910268162547436082872795730977728869203175020678991901766665702069716127587125051046435382057923838996206403699924111087496560351833656075316974423052232457547530957071568731952215600165709126929695184376609343581903167647731469571218633650425662215472159248443440183199390935384283246486808293927513314392021529429310017399709281884616050301189195509437081023359334195976354045875061537000826592380956726424957544659160988717341191438260437026075855447272340613780939810242889083265635460996240206251128650410045026671965885384358047521721125453362175239290091696779874096414759440191626785378861250586511093707495640577080101374056779671110188759032819295914737272820520287154695037050840523658228188745087361675250092293307483025593963992718939199142082025466059689661989490540998983969498409580782416158635510780025475939189645684132321260230525867591553582743984021720499328432702287347862186280117287698629015463017727156022487936531649446475948197687991618037906238403106071158069999286112697123024320555135779158913544712913348520379356307813961355007421271581704756215156042519860126688556507636462523300722981013007951150885775786059104213251326719345056544204273255169321259920203904004492312093786192049807411277227957655385682953417339021542724877740782113044212344883823312175927985946615687950975404826134335669674371579686164057667370395987488129815390301296023433800800066046763496995550909386730866459402344452557312583537740382534487830816134121111989742191058560101546163780360945303408250580083837629424884807771465789814089033722794849002956695943044100993271001939712644054593385893654664435385793072197591298150974147463392121531111769354867778584191254289087315185350089367751987756653869543691697844818836426513600695524486226418454835861637340984722022848724197406593458881816397856049184335450800707115272361965563015516693676343488202161328608094114029227276743664334138629097892053859901563397657396313209175504602914674895694637276747058593585460508252353164770694432426553774609835706669399745251697772135236925564643191354269481878273997698315828301522768879721034325497836767037540034460009118268108395641720960503707133019351279754162634124466790639643190798826550317622832078008731129874028054231628190727757469639134555644527703874615754691379792823201037053363320124081355481625172276673945423379770375417224169540100640123187280217747831971650425416121526584460153084239072277506244915681747893786809466665073577147221308334520592684926181839856849116136103783009207992160594387160673492203842217195697323758121569943837642557107203643534530425050793231559607250192757624584440937828381439714959858109051690086117084566016728303735163013404440714891520584257979475364826463637769764671506028212690607392039337122370886338322490843508469562610920738403608932772021667487748983750421106729478695951287521930091969551803698022380300982729005916978308783644583497242999275512921651248403646407344303428287014230546627622273477014609262763865529126209643124794314613082887323812215061312660504640097023027966753401014636183201716085332055637723600809437129286632330074682562864915034308047938592388725966014622865262974557070617395241368110849758720253688931408357831407401992302199358842650447755146222502349172602336007946263309616997338586156944627208611006746785005545338816320008061872226291771543631876572860282370586388270423595762358802968562636481692179294443622261627245758192577627005098232525446831260414623834660243434292694122516321960705011873559549730006826653391249156354452781831977797557327423834545331754593246486409699529117587667148709203938374522136949584993659956967068995890357228121370647727896944277182964719363104926165687514616771308916225915741461249072258731441414064806720733839669301924620103425463956087572352205989724908540565278229782502548585128253458836233401731782237716017311587933118011618752114779194215391772161610034757210016468497601942815809386780809609168028124160003042413273418009179597312649045357323100430290195108703916590961985625100511621903867505819232332864836412540719999256283746777511156344695267583245524093679338681772345380102133680112216947572765018973391301403334965092415287509581526917499791601723006693860466290769394623875366575237250860515076146206142350497276459051800523458579168326779797627589053064722111318834638072786827901479392287382039638067881874157913767361961709365437099799268569040540456038694086860037677591923977641711181387729674363879997159222576568976902492290247260751663214330257831529556265894809985012581286352335984346617570699990905797025552621684295345647452985272774326428658132924234344533246131771413986581013966718752865872501118212571595511889654892483052584134362231771175800322340075108609784392317055997272822807591197913489744332357013469896504254591954402833837781618425549766267982613791540542885833691513923381529528802121460497706460302647915507103199770772119761167659123840716592261093837966476352668337321414535326008820935713186611388369652413978248969608570001294556812373097633333276953617715415224804308199993346487329024224999588024324174165621394037700377122019605099297152572450566275829969828211313099729629841510741522316714726360775044245278878452439760934708367522901748422098141581214785029151577340686263373850751493575084509475434912541494418086438359194179018392272661783176951526160482711009543078749140037560637522213372412494091489603480512747586508126202688926316811892390241108652901306297319028576574312457331783676852211693620400654454783269044100305580934377302548600714780762134628391317720132546238497066560206216329138952829527811115086407898276557297199457935776884011202840541045178750024890785164614890015540967337900972158802102336651325158001310466242818581440162346013326993582647649215288662885152294924862124495074198732900495385487046726481206148711663618895579892636654914192572918494041257444837682662828754644566624265140938805309211708903294543917608697982622087605357925148932725095874153984117605707601597826422330956097551041761340066371708035446358332945454881403141909721137640754132057407202603394663701718203183545528619356241676871637089572556157020274713011301755554398980989826415438924275221018670102160977957091261476989864341200535698858906484579901839186887084241453039614812960088073764961392022735831958944666072267259292495022839476783313652955612572563692904428299282869761628730843265401230005158683078497575124671111614532775706394554937121448926573357486136316728577243720056630672853404481302686655051156503135662179909390462602856410689656643332059105118719468996265651218355454569691584923409576140760256026469572806966050255778215631001158906439182233438021652640468616981682790786627506105128039977894015067890422957915199033874866751436737579385283518489417427614234197699123073764435240380346364451518522622404559841179979305281588896907011034444285669972827959763670893097734221213021443826238713585085484428659609165556710494663506071407043978562465285352788533765012405619329215405926455528398904505045072750294078054454294983658972970395682427205214916596602456578802709230947203358040387961550784181667299015190288265524251963425617079462474745790777919996490337297081120022667817557365737665418447778939137322233219932386054856222736672117570998596947109152152913767534541142513555985571209234293839559099188329014256180366296743179799654636646768260803193139563485573058591619012055898253821671921193164308937858878041648696023349651029216508339121441706782031374461842404056414323395715575461049892644624762047088879919792307641473559550964957608918382026366688300091238980718997115364515874455350355220335979156795141375193773245671418209743513061840082272775199943291665891360453653412807921195291955351665894748062305227074121436457532274316930244061436821321966827138932662821926967872865591463011873267620375271023094815605783004712859892477912675249387153064336717831168964635889780607934878217812740460960487370628944811046541046246411635712640652424902030758116520227985523081125443188760594669066134702324265750167324399335333817802986279875666876482553417139476435155104545778978219394104940046386738617167538689490989209231771935998029166513213891394523595186903722579664185023804045958128675056413165104884979057059968562858886821174683640255560194920094127405145500977723355013864646407455863857705146703224774071410991809204602755031185887006855704242040612044378773743444505878503625813180831857241695862806249386747027551585482491210672327760584942241013916296865095697445179201813266958152247513701057745166056153732572987885978050426347577973134105768453702420534805028661234917796921367348300911566554028804593249683888515365982871003249669627029160623487361509661684849637457884047384218738272349872535752790000374497995943297724695235835129537844458646198656536715774867314385301886882665802109226846034946461943994875494548621582281341671569613747527035836632382627816640405347090026624085431850210521408384792795064917360854300896170031501071828063798395323811803380602030691587621116202225617122516686471588154501755644032277445998290903023402683811385086842021695343053033018175494155847181479147982509563928250258066175343012110452317229408838589871231414672514355655043811231562345890323082891935165304457332510342450821301286679848890052666762409740160287641044931228475750195008754946941564123229880941855294486784778274568853466247863730758421616842024350091368720079041169609250818178580011157582873372987538577983415620612009966034314305337473958128439663977247245990187617277726740863231230277097784315315131618480270755676374296668756536790948614986301008942278099623475394822855395428305404527481844582299300107906779307857562010707579554732504854437655366947839558942754307712269460636392130503145797547977677909782116513628989533563102518100289909305186394546570429780854262601761930838655100910329143244936784897229106460611856812792123493206738551717573791378648630459484162690190335523330449765769891558971510038645813424583348374002604227206296117332845471892281152312695044195127430524470802977146986492955874368180229866251282507804909225434174553131326482512308684883512717165571211326558281593179232935214779998387087881753739120177518702033686456772171680260597123644910023035125892243935694467167879458086242493206453896685004214116344959141892435288425102435906713244027381061577211249610862927516193155596980070942916219183142075690554311540940817968254576738405710908702144842997693296302600228544194967187559422031783412214653736492266259627739516005956949067247975136760451909955988235653610421040492847696894849896660700226233201127748445808595419683628916737021923102963363175942787537313023572798255366535399180336376002624866849230727137096337121088969715865988889875705062815521042418460748365209969422322097957627873663043334032161220316944856389505182791902692261007761148070436688307069095565525817994830228610018543256705042442048328265159685085658861838871152896561086213350827640437265437571435581184152575967819412145721118756042209575866258433957244271080624054196702249243439847252512834678459696160288713766509056574078773628145354659568221849868918064753284318001626723645322517338107051274529436799605529957266013379238728156245602615249550160635962895167817450786949389473118084105812954281099160314371150471031160459270042183735339054415881857366367013733703160409528940649267128211479310336256279553610463092011858043620206597138892610411154942754496331275325423675950839882172405352645481405847625177554018753050304948397565863540626924273709544340630769542408374239766000929566116439197770860356274166666224918893254684941109519395782369754996437667612110866732974178789417786706222055923348664843503483589464046437192639313258651950068011431148869687651935760345115929215247095031772012880030680136942547310261314308487394943919828472037760656913961677410538890934459953952281366260533108016843048303553520340975358892866988138334779644444296687478261918968143670616808221442165209565349799691517163829314622173251314965318451539402639473297128878347733896619739005580887770133661245505560689727063258537976871763473906946819440381131755683506362118498136487682771870042838493135361796375246995427447730004866552845123846142702440020527625673151014962234439019732068521231026969388834977618727398547342813317194177110080178848586990073349715189277438100952746666799693366383627622248536079159727871806485851214677517677200739202726270144083024574211502744772756199931017461135085877670458742022305122636710374070321839503624912723908848035582019054478477342423263413545207360465819248002381078726371356212798397244181797184203889386251500412443676770845648734214618335826158348246046021110558128749180756677853916600852906904355585986624253405566765783296573815859431515790228639052545357617688515255923778848725312293040063577366863823827164774511100427870817492476042583265409137948651781301514502180161466379593045726090692510360900123860230431646435394873130758695102497603049545031437581254516744148780111751849896500869329894101085265106753594261117481007136805355761896683115737824894347895210011083248315614725301559058486648754484597641174233973833465740959232134411355350232490714109813012598574745673193042888347168215718500094656086325065727092658935165683991859965395536219714083064044764535368575536911084603826748744458770850386283412427272949393946518321002493679373704230083161696978529354332923318439910173151387919609471383938946677997184731930594489215717895421255069106638759199105314837514347899590318907945043835330943549226201552996596517325385623781813322730615613760515440520666258381973471605220599858321611256725320048709644167048373081724670433670154258959885005008895190221692436521499882508373511743627729159468926527616569902199587058887516389785530360906160196010524438476094227412702352668411036656058401637307945608031198883551845317103846809015566465335567770072891771923024017801751148736229517766085047530490237800950960961181091874380451578798891642478800510183127214953156241152980555668141233356143316820238023997723022195570866839410350517451703540976041307908231682310631183380732892262836895977751685746617248997448490595314939998011222576688122989027946171544035377665072362898897927987686583669694697032017937423841993073793700001041937629152223654857698859216761220279374275420023042147775092051871138707469790019010786019334483648644166233955909365675410657713010861865522087459140324751784611806417437515579904014564164775346324187331320380561062911275865498754857826791329100097503724636302064200394906029241401854117372708578285158291544506614867594695529976482570959569445341331204454859362412973058937408685207819026260533138844261245149686354452476390156561937545683203691723898350953967840715139152054925504097995622387664774817954230158470235616517197285936174950911161686728043476384221488843495531464444244292229422632403190678132090411419346784068479499989216105985645613669431625021838054219519425157450826560242294406496457326333181495053357892394101485916533990969713619795463614824253683917214197463663771947348463078606781221123286608106153861323274039169535983591107455902856056169970942844700887547986420303540812007999331421399713025310430273839528827047483700268689312423955823401252390119059388679221024403382993635305113207755460956292985358726240814004172266614440744515492042989408500149161434016047325734563721380517899387795410740469583280391254430434671097221067638316434155068112065428539223658575988409754180956602494229265169265906606694814413139980088104240450576067024749086751570898851745438906014320537662749406226836007805461971903468759109511135942280831104251279916428320929314227492460415276268859322041382200308559301928627995877621797523467191645723686182142317460541718877744108896921458762347409630362065993318553672968943705411856640352512506992817134844586788018290310642496985722971447621824408471279242425424657711366050357962526451663978541278933205969928116273950999842780854258173727473037965624037399493920389760704602236363849513732448912155854674517923812524613785065579089909441948617449900717934886855091629853535882675497948815136075592573866781050063026163783432050817763301184247052449543107280484687864086792570108670967302104035196132494913290664736919687928245080974471292060283726976063044400060492444558612697235182812202745709177366686783530737626664670633275603383156727012087357815126608005995676019258493638465171651401091023252758545712218042595446482342009382862353505662589182065739990578146896791326317404400781911804581624491130663623043564597039473011604002564547615847134855463827184652581448959323632084826560052917026688434595403752052667882827252068855926902805426358171076116615239053566181303481310168283664254373363954875584378202196361681335818395079875984078711246778417156660581662760547047725729084149859526963145840072116716977281247043882656392459492497907819096457873094871516042034453557476890429432832594954929339811054501001144462393955724889115372836597859828711057099729231755060422838619406391264478484654883483902369549267307603718644038121910950939750495972133597155642247543611642169068542204900877571432488041012696905582674100853375619378243082329777465144259060178715378427185033119590720409729553828018042822404112197466805934292641328664402950074818746555951759796046745703152086291230595563370177308372239668027797613315359777904143610531901976590854100017406296234606953938708348852212493927308036666178351269033090623102174502333702323537941363327337845294399838967689153184699142029416158473126088403958720374121799189887010335127552819622743575962707431358813327707385938309287907275763157229563896925820692769429868699010336799950987387993804161738302762374557540287032503924297948191076425317234223257365089206243102644988916416433676102836822380512260134961765963058486978576482539318663349751107154373918537372024937622118206518019589164271747861403525080690249253525782406580180034995148421107992010967957003932452007012294021063201735930515805951426786074313307472564617503742362405523412139569733316242737043570620135340219002506542374597951880077807169104482357769556000770219855364004963390286765073215470109323493699033991688640742442425908294629751613564279703054979960053345448981830339904039576726145521342192728840782296654058870365812716597110209382101069968281267479462489550008477946167775313420347848374725088068084959213967406143894925700699944335946454614223310536595166865323196923757276262932243661553331488348475403573311337770932579251382166588310073042275205377930813372262399364040907612665347714390154224503495124846220029032486991273978971057533351923990225665958476190258724227495143437504112919368162218401043084847329044640220362634499004812992087829108964414541489503600087405357878892164487643347196297659790986061369888765401153448903700826089302445227403627735329544636135531718436170930051589474990822602667953380425128047123215516505553096140872697962612179958291722909055749709322125465684526376981167131397035020375480837087838400833911731619167496879508754328195911495016316775075827986050658254333598006081816215947005808559403514077105475856039741941076010352402785214577515323980270600810781883773066145301485420826827413010966018932334312217856496745740028984062724882876714913384019622895406002822507760266992714152044174432004568814728788983987304188139873657306753102615846631626925887475251916933334147617363364503175058833347961106795463005511599708475577590806841577786384939015552043180837480613674131851159977244728373685088555584926110872979899679882508308313551637995461050907912585978435648688351863098360791536764609661048526824924426276151492821418262087110360002807131845583999293675640906663594316335247922458756319968057209860667440202625363365357811604252138457107341259914906165921722471991114829085829012975977180248000802321694460350187074022186664781875741332570757956724333764989707029970190857303098582603207807202467743718362658082065348181715248896775725838126118439988011141746676591954713796864053588240795544592666288032687717510608507253111164170383617773831105192096855382385244875342938558566239441554014220454443926386240924426957437022157972861802839994497620945104298880674343872246828109145561319280671055132132507317578716002238674398126736868544714035783240981363765437270911652505649507970901917681212500549809952615755753243629085785453003735351273297203079523870878576119189499016397849228196629675291301615168554880864890040513270098284668022792520604426001536760187665578341342853681524430129946906123799339966129314364548664062983836782572522057950201563209427158719671947779499646802418695674814443082638910619377328189717624843772859597366854455638263031837371396813692809773161769782866856055646312722207802559776285523450288335670454746822563851838861573969516258286433388689654140997176860075645072207422851280989237519360581406186992983850103120567301960221167379967815793572025825549532353501914852181953462714826597706974332544867404125804703206856573290800948013627922470922259964252784742875955044351581939256093218919955105584966149502022831159806037013586378664060942699419448685362568164364957180922979316165708014911281039120428142172194574729428787442842425887022724841345897488050718083866923506055815936465763533541134933599913791315816524987287606195833972653665051014307432503032485093072655166366561278411807210750083876179277858022817562819494362276363670901948453908367299631910631532022895841513872308912423211845329919886172151191470365693329069105159098398650131457991221933848395088892001502591855876029770990373356588504426284744982031662108830271321398911457352463064991236878547854887294104851553451763812138321223128118199013313190422734358262324871311215285360088043781512634086980677692776619694095571687329215632227452870623262765875863891114971688665005963813789693523752154715614434353580275617136890857232050785123085510303612337797101505170474122486156213071674277016390186184799828548439331651033152295639636948493229885921608020516337240069332565161252547203026290929888171471090394589392069104986200378888197165938186889340167040745797633017996027246713500470223460174051521314798409186747929096095207957893288089229767699848909453752867940173058930615323079151334032881126532774113436812405341824105033231091452207589365381145176719745851548653951337444034189915115706638230911275737915861497736066826544543851186281409692479829896455836142874224402796027765975669880893734670732338328140812025755613176579410028073584119833053047341780465817121112708531712290989790539068154472410738338920994985801167334053767703204838058759727014916896575890762817699720663697765469312775116943767777657116172626437565673014692360926310451557000781465204013151263756973865841486384186175072732066943465544546485149612043259668488072469299658319683440976127876875983008135386685436626913494638551954816754436480122066893943783002247190907643955975320055691458152783214926523873690507000017318100860473672456410115490023792574258198630167727149471535591477622422126585397240629754335235232708640799182367421574789462537387730399911355263445476153080421647925564382612263605549767274944712179985741519928779216096320601107661670459450637990726678889706215354048274446025937451522869506327863341979845642085522853926614086136318866004296508293044750078353858997171787860664046966733627463688103851610707089315417744266897595096545193788613985458148287774560917561452809361534536490974803394254365744257045994269758951792102588634461114468566490074693630877921010500192207017300969939018757107691255345073830669938403226169084125916711337135624971605254019178946325664926708522661587452440386915519289287335962204190233597638001444943139294022810000146590162102833026226255672017023626489505215080427701095480855969577312707108514818633834912048043455522323490726172099746162207730410081432881604216348549114265329153796818157673916516255416503958332177034853006598495871046438635774079214999368034050026687340583094928148833700982907105353303678461816127382087616452459360687182918526519281582636688959227880788020016279833022134848051566146562193463879746311170561137337245384052786195570961868029929193997203924535163480440874411811956826907711103396817795599347102848768958398656706373025727795809903020166247304902338818967879929624341613953931414779920854442419551623604978390962898620722080230046698614906133602223621057712499358754142368935685522116448114792651801093546197213055279609352584560433743611795471940412748047783416815283449090000387658298121140808828544942457606463037007003557641970437689297573199273578518295889930390288755706335586042661012275098716484475343109914650342957652108135830127262837460883230182487941379442064667475367165585864432509873790993098825210423384163613000059491059577318440202910605519190025031835728809976927635686589776794047813523976155059432858678536628782148262932294033833517128522080395964035715383649943907995316709817700914066271320768030814067708516072298193811961779471650532263619435417711905156507382495580198504796484014147129682597955396048037698190666476893032157550209780771041947547692985217636234756513515720769687459302695498637520158673602046699698399786139810683274565271845393499505151020409998873313679374948631071677816767338156848709634858705677926628330235356907115608353002730739316925087030957677866715616449054807648430304884245162086517388167829366693094152557128761429289703846217418618753327003431003582258129876931112917078997474925198083133391474030711314981168524012645877720288377021919939256731673403954275627576338439032917575889198728161285752823298262068614831302147587708727371177053459767498908170145349423551156502755780306052076195178248812487306197368604454268880771906347315662810171817206809125273432662730554221710683591237892055722262724965729831308742704192743681458139697680472876998730984782695721764862924996123217052109163529943008713938044365751300499621970906219560121738358123090656283251846690304330004923016267797089475786129813673538116760392793478201551083059778281755102005421259932996009363669022329171085519481195512810151515597699967303216957518570571405215819890717401883195642124272187180682974445658315799754487239093911719463116779407927455465598463811898625123703564986346009314899563414358733685317679812364377397755988852705107865975331586414697623618988616277852520832240715985391424689654147583959950341686569404747142808660348085813126277128647019899000452531904140316980096154507770397984335735379948509313195452532469171875774855327929951649458782667200660584427637749168276514529509144855274201645088744872547582431407426188329281968738615809152899232784024654536450732511468805424386758126073104465370006835657864238995437995905224658697798033864381266961259898603437331835538344793635020426486542986431304208653745809472126213674626091800330770711132500975864636941031136393375644919402519060121645354936834223087805164101464321805891676103545411519546325026778569275549602883840976339057555065170481996216688369162126229614288324761945846373219709987278119638587161787564905679897270041036123045778887443668983262439614853773647661144120486473199114832137266728956526861587156315531894282719624504085510136404073042024442746149651885078360990840778427013445947068122179705462405112336837910008889738269209218740816377001896298892869813755687290321753084049377862499180149659282370284220237325336996026528300106822932608377568735621922488866606008955522355151367404168899079206452470018453335600776034768733939891525890242541445621044191791329299269385537402089586658597881104468438976461127478009324203803526774992313575429625246666393427204312078008294208556680833731464185597195160560414267063496795582643222257272778826011508237394215905803451104762189572438827126907683852794844887507768220299015862935657217404125091309754807875826057280405869298493464319807416113080350466029132937339941299255655831509107829302278859517902911087762102278801401857194267028563957902626399334171411111478704807093410212804701457802631181218924977185666793482590747762940979029999663982788001845554616050833260450906057806301345577433175238712409353684328334457647145907233222829817722430849493645360254470744335799553975866917377162496731383908054516856122648935768864032785420668912835092974026845506023288235416460643217432093598131160359949152774538916619015535363209873469268893244668413669076484482245693610649696862826256602885315794503143095657016129724179733529144641365356629996818969980808581671295184076966746070254829569623889560788426522209051813812875338015152896114846835134998173801075475981513337005799660751398779378710179217746492150421154098055352506169772793938345346293370535164922191086904447397214202190150460901604001176293522492803929263012989803682575150298900692510444018125804995826303165241602079131893945950802605266688142744041700152810690300721833854097302320981464221800990509110872717736762396238218670337411028303095608653951380027192217107064295804064244380345573282731463998332757626584245421915040913225386242415090374085305722176596169524497711071379378160384206949397184880339972813139848208320592939219708448126966095973962269286739507657808862372238690985576396260282159739472149465448972122646329290627388966914247185268345828764846712238178010133998582667067372746505570279672932909142273109983337265283716810059872484797569353317057413236365344054694847527636414575990434655132265018901292895282051679626082473075650948784727996528773460337826700863373943889590681002411035392678473261877058229846948801661669043835268933232014002685315400417260855283996976040309654205684302297054253110752361175433349181148978570481271780199779442670760705874934332065601678589323566765323502063313108893837916577637683397760353074758320363866941977725961627768137158041487393191049560873278689392030138667532295081468840131622481758714560905590424610793004162745946832225691758128835230227027363651533424153606991367561803709502907918910407412049937784188163416498887354078314966562213809396575959057496773542029683547721406743509637107590454511824715427331816617584489847426340604269532408883720476438469091668098228371581807954348294668028282418209748985899130396965846719431328534900902306034672004801611678825489315144652763190929116013143606796380081222204492196743631651061111729968368369685942191359885585449683144277556389660518740285060089646110650839237587059635218855546489259568177429291568226889282061653298711369088248555034728238489697182311330774262077587674079375100586378857054832707930486916558888302911602573892133006651170430107642619435488750695960855009419277638436582425837356341087581698885099274977079697951574531949196620533102569450120735890346182020850994462788555116448654937318960881077336501482090376832646317317965494580742482239754878394703619843938360364235493572939236477529935903506226754570232395199926181870238894771715522497205937407764069339603792159791679978711716461380464156867035394499271468409923033987794841516517502842117261704981945776478941790311560693318623540482779184579045625650666822637429189952268905765601998166066191538841351496453722548640333370034597943273398671943552366455891069089511140337538473398631280356844578815666290505989375947248484560135004099796130361577530958985389270348174020980207833661092262048838659608644333134442923394845355364808200128618019855076004665330132472837960842711582169197923227842275257663900720783610678557357637298943459685820525269432260515420031921994221206131643515730784204262620711058967438006838690322108823860873428823813611851363733332535891915891964274576876137927708528108519290534259374444149697171630602927148425200664631227963738414968648631388959835156226903036860588215273661468943083547146629533331837587246875808706633827975736072997238185658003173387356899300307566061662093842816185344168274395285721771956733637231928268770107618722494878674666363396976569073480806317432625343550942488256899811435349063899157546156234359507479747278257144786685283705960436163969139927727577249849795901950480103653374021863025924323553885059472591082070457368066993743146016724307306279135378103410494952940592997593120349697529267445724167851064297943371951660876658149190738808897165318706064217409750966737890831455672853013943259254956367348555216223564926728848856456138925353567291665649553404137995101683755654835842338768037889438429036198803418503741299120300109210267638078757818073850263479587765759561417197043515775573522854172596208179009657548386662693316938632567811563025246099298188722221499918789100566060123261286737683826537978137547377390897806051044101890746033691161945821965677359713416683034639724894161943628345387895037408097812300698508143286079516070189724875671688060899249292580674767124795616455848823936405680538992670752616584210870425399179885339195980094699647576374157600876155659992930646232275016126460990066957242985213497524182642830038830833048335389523383491111065461037370755186369976917403759831815064796125805475708631607896018272567338760656028992577650291752911987311421123891567680446712460711930584918917099773293372271082208126466460648898927478408220226840536332159213435811471896716590726568817624253633262713537892220971814590887848878873611301084589773414099052747822933914114212379803743332313700501094178685520412701090278915606311910991313739470461045288865658226970054715072240587385286367007116172306140530134000581654982026701632450785174622270127215587486257969156998237760528885564094262038354865049361955919646777049362516898548836786392980128296589120737114374730913823896340375765508963106091505073949257846347397494525069184602507130108781060805066956607484473518180014698480827549333569654414586904036981666235286923712003064875636466674355949039000391482587182898539654726832606154478991113131251466491077673185747007541646760208320715167252172634477499015314517190822452894651028101151736662403475925071875050830820669198266127201541589845838806204621080171248712495874481807126447273525095833919254164815194897771339712405613037187179201765092441976929448202964365459451101336229074497192265513182031719750102268887110513683689316085637714665002603491227980068970438824117086776256349623117912394862327710634943580838807721797005522885404231707557425721176448360755780863026402699986671948835183087100088631947224353936981628641603352432601174298491086979742164266548463149374494642210761329906813253323193252879142028330802263863839249657844041725144369624285531123628053087546745850797167210034127690871080569005096353663230463690588482335871562883918636006179522039636255857898316148406260763141885361447935670010270777638251117113264789983648654008054544055741005065495178741363514100343469862809827280529962731395198182460478400118502385707523594986888830773303331687284742204773856915316693452888632602988047794620774387787329025280062323980609602063862345016756737674571056930788834334412811517371156681272020024522432181857789590849212655156469828194674210105186255551461260636114844444711848810780059149085676022601135634598096065314174111115511764769303213587408496492155058041596702222025131040497195776756614778165345178445730426551369320437326650503235839733768471832870393899294135361897023927697011846573833945326627485974950835545951244635356459237115882528623930802872985741016954312964729753534644234763569653219352286407794191231078346085151487784769291627886806645716107570749821017797336747546823195645464017976295731973792128298502747724363073513154698793173646119250843211551601342544826277378749126555594403785991814852860228483184147781942220992044550875467543800747763153233491839795230797693497748708703327957824733516820299907607920017228365680750231603391593051148456253761082465365228603950083430982156842241556862448477442098064710259474957190578700204215398979072794390776400008997550784979045527303368449652844660557342218448589414034198522251578895696821436068891799513526835038392646481681376236023170739060420633445878689405936097319568049029531670749158475040680355634772708928798515512973638682274157155303163752210746772586483910063694920023091981329187315408131956088812694093477454168098845761646541679393631627522217623837344297830159385626865588742013719545348079051666647379460989320229369669015789911365269123095825162520025027004992040194537291757296873739001126615804152176585987018498453657176362275083655095705766326105865975129210001156610870647599490165409248275425214242722596457725048474621729726254991482691232203313296725476725552616902069988793321931800176360088774330960200803669872633772057699467313643383937735744928662442541792629308525549507484762616008678010358475845352252335548130483457244416784047625640630836714669436181536448627113397062948924479481336098217055598275418397606585848793467137801860538885173603978985386852809676785047054539380650945128953049577285663125262838476362022983786774289897038225390365648615631057707309891945747888924847322294974449859095707872543351138670088636781454235655465192777241689809963887794499270830964765148265914508600544629512933071231583090686172949955088148391200401523951362934083593783123817340845470072598551344473832329687871871905985835885334593654159241428901101674336676604326972008319638761929686672353658385916986748784883522410353996527819130334339745423567914918721214737379014094927648359113730022161536340251068199971795434453454199412218255427653327082172963708496469159291879482584537546933148551375041687629912041141481617776549261388074134978296368026151656340628193712347558665032567457920976474890097895442503894122312227374438291659375237088379100644847654697041273238301757635700879397096740428592589273486561072738355270671037410935223260686509757084443007226032759286498324437681737393755061655311488746328224406623383086540592295591810156854197343324606195393512798611751511009772592791342795176100593475404353594334421538496535600816617215515836868542921492521054071445530603933657878245130129671120954016955715446520316920485282315790439744049730458677631966580629815613226320203161312803292161010811788624112837038462261398437393168637128588107463756647202961143799874510670236387781711794920427644022389119817462219512984423898507794332613541441128490329144511892088817047105635592063461084359082408061873610712930295064308949987558849683235959436364312039435970811176962569973609546482433903202690098018862728585829970161817526222646889230125684700527699321075617297547102963131477491897776568963655393036097320159364405542448432332454114106267187180030814440668891056144090119122956798327346255489333697213904854937277185391707819903516887007353322663314239484456678623263584230713417481236840241027894408972020071723973614808535284569394632828956488303224257274490284768536554396046022794653379576942943299376109199742268872685958380435964998293989172054109083994622042926007420997705373631536282657482691104198850935371057674798592974298399970453022314521037063235973117109724415713915076793763664927281961782399650539280635416316615116015380526812296785265205481784366489368595629296790616831890869388947243560313751420719315171282243046162728894590276392007659134132891843447752960208468178772686739602514321342956463290179973225164127744687991099045590543587321229359797307048929067137122098099223867259758496530827787900919885404840287217929286702507926225100258732314597869952850050427647781828240845071521540503020819622002252297810423705997512145379808504804104133142892758415563282609261866405626788618670073622802779386677114293185705255859502782627999463920853629300628058763014752401645649772648844398179615667788798767547512139125813885731944525732295786958287444640857117752775232082565245358842467848310139882340562094537002766017940985503344629858659841623653693565880605840326871088750197801145483366014628513923753749270511574265319743599404876622281563723795044215714555543433651680591706196912121421571823193308544412456386031010632956188503263224619249571654027991245363881404775083342664037278455348700735110992538055779331565940134895085522614644768036932692209665798282150844963401056633305130954226723907140374866636758161328242472281223274986118692398893386044662036271531374179235227274415146242062233268449490454993743409873723127266008826309950935215665632437047355143316904777548615480785254748245491443760806406721004633177278940889133086047957388470563511517255337167100811187184086933807634741812212415059163210553036494121031951729388058155239570933206560446104004440316917641301289734375176164240431400137538032811507012493214873283767883831523295848314091290607598820092855953473676376096599431492966633683876025992511320166776022814112048191622676729760263428949691520852865229426533541887579082589856319101069838858404327625804642087279483699815482069757521630168272403129936824788038311789141507724855997767835510721487351708550262009113329738034713436003106400526762545955370342764621070435683156345441620668712808656233335311362798123794801470804166401088861115114921114992554897684604017982895120453686397867939333253559734007093582473274807250191627229475522394497508330743226265691581346711566223776387735675781482361336171226305486810823699537728326438361677711841571269598325837003565754549208562337508046288876987789496697890212113445694254968982807968901303200341659177320040528261544078836173559851357778097744002930558781152177210938600305420436325072114051445796017050667948749180251523439764663765315582057307644866932784638252150854277366143587965927355773476760488296164299622028490213597523782568509242775406800291351930442447247679434271238931887100514674891393458405185039698724102313599144611829835492764162291485769468193477690395513533781049439419704125264799082513083905346418840226074199662647569318104454137953666279386486270022389345651693987278149472568864676561854270841318578560666991537245254686608568051658556631744505633191409020741546624261681800384287460122886711608083864878746602655941972703338190751454286383216918564439739217566836442914132168738124886358699557336899706794474118277176112302044411379977026975886479811897306591360760410095888496574384026750905902540070049441735140060767091416618784165033142427271565614680113709270490910904235039667417538542871252757123179197708530228995077600008565387209543026628171694171779930912043650299209877275574723909574622541706049574628527984968306041543699980156660423481998540300327881375320712249502093948250539066895567507586072550761850812433390236161845612958672501452454720988885809894064504113666498786045991613586089159403016212362619334180388510230939361523215443401099974209778814642714565235848075043853133749901689367365626377692101736079428270955158677737246190550580630268563970445275702012912730430733106238710272271670379314356693488705832222508719959252540237360983287319536699546976079427005312766296414842159058344685141392338186363336666332677150775375392703071424150933619734052467300793081358767663258003401836018046288653457945008178622391253167474172281688249053513916530093907248835389876867687262760629473088288617208587294948597546239359156530838239462758484194956323349953378528134925725701316437066085376323305218041853633882523278764530955783550404273698687491883408765762757908483355767413371192186013174477918287113633720820147919738245938437525858165628875565741439312428805284318641081621957963400199254807001697434236277040380163241704229639568549146363208394648426673258610410230772632462131280777277440791618530268478647744482669143259749095070709348395716884737353359569797856254354909067385938214877206432297630379094115470616577958887241552103346080952007944006650537075532372345596592275636408457907137298626512361405853969303391652690777635404586345531807834863538124181581484051684764358355972781339950150631112350273405227552942540868803230017872876560562464950963796762979080695394505766127558230204077581539661279876463568558806046985172014945582747562954085067308251349561883438351145673278428130829563190519349211907260042859946860090343886546906188294025933063122480960836818794868305981341047338590404740918344679637875304988817499408676163654830381422611605463333656669893984118575567732875868646904908291940198266657990771835970108798202026920283266841556226587669223113136740193408756115917947264871647319522320810979336562721336660046671866598078161836179596943329600393550051668784640179526625947819935901422575367566885640069153706859665732260205573461905025493913516729086795716741151050269885579119492396379618485423699994999422334366396432756920018204086291315718595519421691244603596293709961771046056600947556074706304877330843417237899698445982969474992370429910700503182904913643251882829662771595375335773362192009099621812968846858558676301543481173583240932157337789276744666761118973775607763439121947328469964151991598711485101597239096055652936262318068105782360941299359445571773188757019218921088086576881808092912694686025072394274822795118149586616850189176941435914570985379871713888415051744901262218656200762619577239207257253103557487422356147713507605328998507412549235481356578985004983594030642487545994901566865644744345523600339028088076478813400890984019369353598928300393849676071011628172309349742269067635397526788088140898111706562916663620612969811011967047160953920078437270750593487206462958442228361917402394455473938447163872805035567991796410614171153484002152587939194612837855795747705475525459840996091832964794016470565788424172242528912780915535053242924363039272197387029056911181386251486997961262187233731014085220870725215718198993322435823439645683847005386572322237813008122228879287385929290498176105854993933857779515197500316652744405033177981899230036253669051970068025274141503017774850643130156599651846365302433379111890254705586400367674648345945018201724162185835570317481570437827869647817251171253128794166399087153037234291544226199170501851590993063216246833980222703607023919340118222680565223744145330971403425015310975873079994191572998276036810220793940297002693842243123433324341594016430261522904748498306444354679692033708883700600001407310143341928931918035508338318396191446880923749430255248374697320095504441685521235444662182373396320555569858033139833413686030266125227867616997904102719058701656489285719667423630869235313300245498789794346207157396109279359843355029468474147748606481921145302407703507476911014805012128368027399831419992091915094641686130970335622290238965805546912766957175803353322784036069450995332933024198955943025765858078622208297125960756948995377397520762312337266908434844248403598031132836191783384957218323294605256969284276374450681726853820400131758106835138516914112581961119396522871213812203830302191202317553350999885924744232500522955144776987830347298816951316498160715185284217787393851785374768909317423549388435282568122442489124356956925993278564764917456934511662992652633002985234038987774141214916334413874413488481576748978023092510729491199834549568682055063156138954757340061540943421728414319510901586785044440218752083418439387332829254260749480400613372095403670638158167802339592986419791885710176858812695414754862557399948879848170254826212478339961778469163611226408360813418938173737408207967976402000403642217574793710415526446059644857277257917685761599149586425693495510182332607957310167727077549206231808336264196768756107710645218674059897736308492781642425393538064597229452223488645443844323909654332471595131572203466343499026114265930498649093715050688290526095912191659283778424889348310089056526871816877784728940578063467875229351357457988601671480022137804294075756152325363593426446104999977081628889829259204816573881437854368501140462852303981814234526355538654199001537314402195180498923285716939202896952624905459582291198465336787359872377010608217120652390042896726085568266813464084466763843083461531414002989762236436657454519062104707954178102525792838826740174861905410090075422552334566288855587326862390478956770215499962935910349447423929729742841921202152731950643256510579010672332622027087943547439892325801260947683179262831880443538916093598363137960178763987333204512501478731768894107610155140440315478829881370577199361986983401917638872195282828233674380217425353343892775201973771818191358625454267556889443765242150033832711837702327932544731613511466155218378788915748163964633733241989725351331238940321652987185575755096760792082173906193979730592788638464580254152790632000749247172578994961959604469413417758671685527858225000645237757007490616471763526795438084588464280926561469551349679456872003461074263988291141310155670101236572220647517504335747384316435287412264331208975357931392260130332747521472774112021504443421122884014667859631435938009651889530183867612320323429483435253494136299117261825042584374684317981060160303486649592108520928349973008023339675283767927631576194160423097385832549925745164244750350270814876310247128837922474897966911538115261383547716736342065532423393665018774384907496653466017323762556363054720066038387364780871751517166193190635043135684703171315636303516400937496855149358183303487731139666533310030897299236361080168185991347277327898528776947430571602363235400543507283052357094612898560045694151731773670023413086497853899135895308523768035939561476713105083835381324501854666343751940699281874056094744882940323449790636808973249112681586363206694918044235800598911895204715490157244815125174443157793205021496870102729615369777920410332913022729884575106121546741453642732451191294633575906071325794171805876574042382364792961271354965380561055571628633875467985354165925076671918790761135631091494069917850661306998451927854073506335656852578184929184640559141587131508055467764390569819764780691128064010874055216125436425950649819312983431694727988572482655915100076095988638544285701396362022952699262563382049723418465211054305143325394264950865230818274576939727681566100292806516859846648692106932510519742980433964170955857889755370323096433867091522869319602213620541988407391090657951006283213552730732344332230265075758079564664137157642863968198484686067945042440577778067276504111665256931579032958972021313743698802040874282057113247517221344866827806153322396072841766997826674232489295312766654453246297148358418361887783449944111184016670648231828520595692853694068672878050543424094060109276613020707227781176556056249109013040505930676648939827703428112803996771309476685719917377806310904600834066630369803920555645401385557093138540368791681815374625943190671826567499087376360792902000875193831310125124749580264922396214840570134024558651528392270772328284412259376272064958529328621716272393031936252436662422179998600089879069767056396826885145009982212777185067681879008964324042525995545410470369686712466716507711530898471488536307872369885746063720097316177808948889571064218273815495897737461184124416457279558277943206048319395437300155491529026775676663253447417785248507338638182182402493241545027060960148907728519680466475511241473041005254096127252780006307327254809783602048619832506928104651921523530910065724678273188623711524806628980728335852140943408567502180318927301408852310836460132092100046646270184314299726240528324971273591110121705427342334759602117220113059241701436760603619777785232720315620199634974866927771316067733576984700680931613575015099928157812623922105535033880008365452687582811210442667769114099759773894998380367772689823636696187779245024542965012374314204771125288000050256584125451876173238240311078223786830191026318534451314702412821395343538980557913569149353122105120491884290052819345173178984265834600609244857612228322779074679457647413322533924608497647312151323406915587552825450030535724574016084748185976481271234224035463148619965890622624196053854892666871306231298593866149663262301862361726330117929547476057030755898496694157267349486081121302338557046746100532736873398098707947764489576674659918459396810605212489573751776697179517100418550492789938341530162774724459916200956790942495885602764039934621950809627841977521921768074813715068045766008423070426236158419914240555273755053577901118705941031368050465861540613124083548518248510102148323237431893299754258934253058186595727589934708496220461302978360626056735354270243794615470435250262676706950387441641520022029190226254053282798959311947924656985621323805047237618213926626392714264886623437530738078232200981095556787671291883628691543518939763697546670285102627869891394848170512036492080650724039751275763139110259539412021937434674755241624073862247417025571572391335506412776428290079422825472435674207192717056860549628079869742688244650418794325075052458849956380198065391129305966893981535176866347590949140873912021589628772960169949414848944069391971654488123760401384784904421226648007526745758130635870967804661545990700606273589441815703348294684183481202346144579952444497382012417184134883421647265257050348396796608263273328357206722955051918197363129576415117965100519033433485722414263669617825280698156876926596855315740627648914242343332069443468928568145983478540911754823719216384868766844290236669382190873331058679012414667648740147355099080602318252371124013438117157826867953572661338849411807256873322810921358733990553310564077423535989621681688500777451068578904546477055439803107918884207257029036043926839349937456474689210061648080925104633323010997902738241126013751360567840835060126686119202322677152903392139105421125688056918088445958615119261450342070564617189068636268287642888452991470499032064899723143832551777493513365140437865430860168912078587662614965113672975641426917738264454116644570390262293059298125662945064771139537179938779719039345859865584163947233156015804811287155246283150231340716265621645368882042995307070399269264940690507386371810081093959609784241447670029811834761822194991882124394135340297048229466200893381431154974277207075364369564615106854864797168889841756128092869444249298022108201686919770988191397032249718929870732328672279835315177997349899095855417027009805948150025093115453026408044507453436728418316427241436117931683915233587522184408718370200047712047648511646955574357409246067232079166716216519834086834149328600667963972420958829339563545149122951307844594742690002815501521575794244778304668932149002110322475776635951753958926573299427137784407528621949122003346904638436144880763664042064453558720632680531853166379186150572479162441419942809319388274890373697532506536878382325602406609284550819244488350749823198468532488425996294402387593138827149260148384717615277976293261493115848168839509236277944696195916421723713490955730056676623072797471331602251085180829359459351878897957108274187558740550034275829097225581951092959890510889208483148832686212539937078491513685796477420933939141972153267938547809520848683732100185893917627454571226598622007254043519745180315683446934763239509151565882472137171587648767202690213261358653719659443918002949512922499069799368993733054965635725521395392729640290778760195258033579468449686700169870090517754472765409411440782238905633086173372349967149833258939264801467243108761643702072803504648902863614652496399831221139763262350991421286191252636373307942902869866735874349356621183041082907340744151604076173972227867523728219029432905442858730593768297312626009551251924681470762154096024971863755963822277472811005065846066496543952107986494732267180625855394636018068329806497834322110684106332568504245143618058524259832354177124636697912130600061574539998990086021326097351537718978081047897857322543910595853419957771059344330828339188019155460653992638610164649295020883031794312796094094135434394647004622401714080995393736941162192274187321108862659923742449405607406512841212877742406047372226318491158625292766240784095216713294400494161994953464747247429411365376496722984598581601881514332268129119383957430650006310591159017041686539905451483031893086924000832634516742437551025784002058403191125387289310426253578559374016614126996907359636214580760427104180253234187181580855049557995640867069504100605821180172174844535910283569636588647752454769687060585306309891311677682237243653530140749187617595044515868229573204396245851927723481089495505457665721158880696196155366058210473000468160429283241681314094291690419832425251987652230105933535182156631749434097798487552979167325944428733501377839749777175221006825140920428284881592342133410902514035678758253000548516932375293717648924466207736425897882033017612649085838457558717491148088398684729569721344269533554380508395626535289381255707776552107759844922030093648956009270085211706123664874575190341097365040761109296393801660047519229015417276386740166705955927506669599267447182161139819599456605957559989885643514075404406445406078482629982487163231397431243687519408556092983455258737685969753522071617090235702079725670601445680462407850809738916922148180140036199913590935515767395625582574893679115332023173187815418887410834034376055954293960507013405173220105645294134229166802161688938927064119233045638934520314015293568166064523439994222216732969149452835069722201577045892858380561863253442993036545473441234184251902612942701742293146751340131912310932390043362392213959714092075042691000485294371688777080269449218209333502486441248547787559296664577851673137354020986060908677629752748361845238115119372198692554328286029047584383159412816346838202808938252751860922184713765796225934500238826000692948322242980694575513262414343590812436920138361756097100196552755379331646532784263809466430575636637617641359030863246544733166392760212157351654398723508428115100654174253552960833812262917390856115505761369820624019435962938220181364284476253867800354650442947724595000344727349956297623050603062905179362695790694546110752837805110574710499899545841196463723084978857509963380175051584804056949760406633854804919823095947339706445431671387771693965835810528431507178745373069848561823628739299913374160865871929855730821025255116647767006065240219167288136583584977380499976067999495896202241467990422662005670715383482042839224050187307459467913585290949681463149575502677326170030093640587577622264645981653975345915614347926353824473875975266298873308676024179041541198402805963392102265941511891535543847139016437528346094137989477000645682174633532181739089617382928812403683044369518889338152030824498264416561229781398481622765326354260211827199927342923208495388457858023386031053033138658025764204162260356054574075788558161291869929109079843811427306748185124437091185808381302640676600316514249616978443205946491400743716595413888166092425364933625834342170548500649384620975141891035081772290393491078115923109548514379014682560835449321281223901749086179551864724669642579969206236316635641375322873602863594981447314275506053550690822676818849522982990101475342893642678812884882855247228221287120241986943376779826548307357492794198569329383411675251580525070608739706408050053915059392322282927132606303646610163258911225822591586398455235486058144505907253437077243759672248015712075524227700789302136176604836863461288637565750383195824708632147513546807524635163567553307002877460855478509605498072448620205555544419963908864168587214500641328823422369288191422263188480875893698427813892019793362786619773047646903256982103178985661970527563419623247215363199553354900631268882457204071797551647410472266271378366762594207432939274493228712423395573231559119932397929236926676712638273889810196369574970670008155957278513745896839939988505027512890621066964068014520522193122094821560560570799449696618169238255507599609032489222251367535929015585107320081519358662221884446155558284178129431378432512167391658060466751847359962866634690568396330733443522695232951486199786049958767411877208324428545982117790707131823281203444477302646050167198247337541852989537551299788726403465623977240076915605736159579450429104448603194594937358840860716527244056771080563803852766158862325020861556508392757632951745900439958868222521814424249556106689938665123736332085701338646520655765995489735863363584741700910898687528756582160203054359913452048881601930584011400270517096061385080840847473050893262467300829776774688517600968150045361611021354662047194237424624319514905246954249227621750372545228906602324941828678918172079354471648430224581754198083876508268584871641426349427414099664061983514890128841796310412592684666701509441461942001218756421570477243536428685598852977663513231506981459164862256435780704901019812650377483968046448804227730645924306720841610188855349790559902439591207177947008234099199211987179003587149904595676116715497079849729888770802416693486240582624706686477886725483368692326004240245070748292945344106279497809685413084759884053091907816127631392521372168122284821320353170596681369898804783821950908698311505823844111672599232001465481157971315539957669509932889683197807316859690148233939619368919509626035498986494658359259121629186512241873959139004395570172944291928176167243493947970597580536947236304039971592866992002216024133336293422595623183394719108756178007811729847357826186757888377379298692035584925168736586682457765430872003306965468678678252540278793130398916880143736478499585441930253852442684077783358799813965353192791487572527474968460404071948370521259220912361825562256812773308924336661651620914318117748379305711598810122212828934793472293040353036007621609084038123317697154404960106142271381698729074086465401577184790244402084936181155556360009102168517884908643450856246710725568202596990827463020822060935964676184061906666368793633804316680495382485833926832246450144984393805711107021687440048454705558508292772059709200448005730034078611124474069165734361643683772389820587219381213185240229404372770660222867226887537273006840722890937705672062433487482843842467947585963510962645174663573806999546001738869939838119741876131800944500297066520766758203658064811441072247264365807336607635899789758797847637821733239305444502957529087782326632469792774306869580252910550689277586492996144846905969915345873718034317652768809650868090353872428468879862505481437675493100139074662077164036068445836600026754333931440539767046334339421447421551574866070283403988481113444695025283335225817789768073189116466449940574031290836576554043359283747514726199755783693213254672980496141576279892022780914185406548870137022024813463372772929380538974661876930049197731580383024543559845979152172806103273701788966013148135815918897119019817671294328068464658570379458051719580911143441510409413212964874384208730551236531366971173918871983097646131094499208877068775523147319863293604554838869408463470368448332112708500588430782102672827861817833765314577760482843932206504814295929767015852736143591767009413322968039295442172786145222616106250672251046659355383110910819918337998116714572217766600464948668257770031871502054907429605494096519084416733764641668621725108550021961142022269621466154302547747919070629706126018864351868266291176865393320414658702756853890024261153401109683590485343785910315716223427300951244136675111620838160238828754086046407687157281624103514577299046319460826407850714245244729620564962549536407421370944263117824257404965288350235309170010023183967487195541576194782991889256191872244084278678839961150572196772962975588732847221495988001407352605862898792551246760381206569873719233921562236124688472194908686415443048019734652197461799875785808956463424469961963577587130542125769975885501085144413174137272959941711239245614525090164586832607271007847601761813348630173007127896757709919330669625010692370699798293054559833887699285594282707995542308748600837661405077241764726127850334609144802238532356981778559537754360659015271893755631260797582398846332587985014949307488019479014474367870333386032376869101904042548220658686198823185039523986756039030763715877358679707941472516684923336649890995429665863117346978442848431786618938321681884522501570916047085234191597780593664932717002632907846092806289665656263927745254916037512950576768901033013398883586676545228136208234734953454418742546215584533027172664789057746230960167166473068717240625544643199176593421274506740794759867329632558511783721422544541095080907587074790997422198763293643322688671516855195346286876397361117873494124579048631975171070887329744854220072615146310524206208076218500268493380436132506281641600288589491370841198319191107224032523665776931838190234270210891412046446296958718855599913552473227116360803036848719521686056891764800874320703556982303817294494547525478041235595931893544655861936758826754279491094684962306103241152893918878316763859658886966032198835594916152037920232877862616119519454481230653575263387829183963281130634595232662599575232351316322638568809466889109977492334275521917621558023823224861049190041481035274835360816434995941160786416430149664757592312376081434869856378733755709704364973698413720550575974029462953526178927408261012160616332554779195799391278566760705000130542126843937756151780075105819973920791379731352446567695815579399552717323279928644963759010883778776050221367994554673173414667303624359708269945252763680142225170549438814134331393758533824858040224030166721741369343534213174151973696343883579020721225170034362794139699807486293776386350384173425014515495832265949006525809119030409545981076539542692826265605195444189967918290718793443242426419995904661074001320230829957821061160258504193683881998918544135291112623731795772552357127342877939468618962306415722587310013003018438550017827108140325713502365981907979474231595299606819172771788856302695297766662111082781437709027220029170813580820322156993222622696094690894722034696581978980793290525871792846686011821361093815414475360271000363807802758786904688660492937317309060352513024308058815122833947883063751452674363007656631797872914349618803642443927586539373970367279525785698763937893314053051230293433378729538038318613252087648917568976345002705795524684596741366759132507398375040079602982031934575605944510566592306603079097574348384572931024016540657704941022648990626268929258137411167776390788904126807326787028323906958811797430945582735592033068899240407150155930431213605409755009139074315550539360070105228919039090496581526225116179074758448203478019792637655546118206900286354498280013158578846888726500645804004004685291937112706705279807169564189346593205541317563742454776959566547039163001468783378060985061021745128074160786012555471257315270148579737804038834993812885134089067839068869042559020945560031157761713962020541443521055333557412214470189060981123049742697907942410102460965733113266488742579865138197792013234928275942521195333310640517738557804652228746515038369559936868089437834688837563747779249127775586248570439308746570220801752184823544120978616307675974335294250776737745750195916143637863266029780539184059276930130532769253582894293393869810426018621834458769226787621578750365199740048129985691619331367862138678688199662831916988559024761269854928503627008436530439140455460513264691097277120764396070714786083162358071150864021817059247743680050080090997842012159377649508973383864031510443364404325522957306823170057506691902063363425701328275330304207828395756947081465767688819157437543051893442608963019376197316251033744698593775120862692673229990768812855650971385730153192831948987539253265071393128385959961173435847444149923054657205307421270900296769094132036484632413983083218127824191341451698865420203122775747839023999400841397785840621844917283980697008867187363386164476702330817596331039018730182812788679995531602671542694784135166503730597781810654097009520794065936256097901110442008824308999317717753693137309848366152802843413175776054122522436318197774401101135226323529006571901117990853518106884333051683799091207896307869335091709051251824144622383155050236158376127540698497655015155891689751395118658554219026315054721102400561544510593519678786385371731512167302745086419358904869044268048711090000067545132133460212803522840395377069915598603436059907523578590647457515800972170648844745478685742972216357969504313158359665018851318084748305499733524492934807845690797244423152550699080051018047005812936635560069850648692267783989352592958919829149715800475447081025194664355121507172887116176831895215375533637441173646723130979380606661467476150892877230183961284532158213235263880183031550414352387586938913857319566749810013014160728226677306345607332851984600137175954958387801126236638015847185020471507522824523027649385955293065471153084692952864342019364007443260473399708636746159873983848182398186310724301480642287983965902386991164136265166018353324001159145722131420679049959109290279471684482611564040928062296447373531027593371627555372083704653214070879295471986718751451683111585458785589245288872024612527860098307597904847040296419291401710196400531476743808824581552136843617349943663949351664296713144518634525646096728735029382616472856110439459283266654251667612361919479936544374641039658269253452850390418448177199982500311992832599968445251257071179887966022360038706338297839108890777182248763975258963821610858751397580170234830246058479236689211022417779046013969473551681140927814513377013299976248989084571581675749562213625840935476107740535990183327587694525685636557008665514986296754868304114152870331876617315469230941233477544251817662180368706742825627118193918437793289972267886067952311280129442297461737496106170689820849037514979746046438399220310541293500286404972037959446241012434304324935856866263779717705323520631729609305561192481732628224727633376421316412366648048774794892198390373757088656168873681989565526423069535193466341694829018024198906821865090891983031278504771227992129448716150050125864174956986920422398548328700118236128540006434035818590492126089589198012460310089961332858469885705586354460605589469250896677277816052865884276940457608893582951618013452795814085897244314427448748225463474965976842199290187718782276684698040002955681043379309898684816437910168152900797994342452930359098647899416612286422159497733556407405241774033318090031802714826737170493999154493167633090583839063725489336863513305535414104783833334988192199151738914844991320011433129697825281064702998096759868349901921647466915681220418691328430001488095217860605196130134710776624775471839330940584223423820714106900261850457926597413656719972661922277270131990377204411972316129227833352618601881497411376150824310216765825690811550121478283989771994781386603418541143205285147709226552009452220464270672501536385807103539607295973923120634633630333632429186281008244398962246536025134547046870429309807258071651533589813967302465504471704382094742667660732847114419261877052357563320107995850005138687665145254339848571905919161089957249354945779855898375378053978902465320098027614047071869429752341346722734612891551511364133757371145222799790585992073435282522349354511874634170985475612451436412373522262599612892646240968250433776934856235486759272627687403053179039182201049532530368094533724161171725470540245476921416494752357152630620030542820676530792892619105478944617030478958445426910251667747938143482752295319987114864419095285148311526085315739315855610055730681604644086317535407617952565395490356102073007706961326685264222925027979894631334333232711884272953961590317671623439173215301149903374127565244429449781390635446042522294839428826351393892158013621862865879373114328773339375455471592018675787010989160342051732625538155401995398446280694081301274601904884095018473036290845170529995108188616257247072663566981014435816696584476397737722972899756523810770539540608061639999345652801377981823019821873262613703077673221888670406130473675774429414025055687344635433398520378539397493986907211534520403703233187483373946979515494590402246478433071628708172049112404747673705333413505248645492706317731834135956933096953780614207558992880830257246223872177238671721617649187528324779387790195760211156358953764014563090344672199645396592124720772272360121731132598164553347352379247866375706882720715344272026633497670890639487435409494757502819363095671022699028644407041197764815970636138221513201391703338112740936819618358708032903243847551245684903016539403694795988508960323588497897548259653013554893522751625160538507116042188514787901568438655628540020227331647171225445926205118774275384172632576532015111162160909067956157227501471716080238486348228632904159052713626153933348346904411038944716833926540534917732795898224896742086731757826940257317954238122838761078391818910815684534095046862708999551389482041493086686097764516008894467684685372779358934945099529417660347934676825220639651215559380201176732396438586471999609138007642248756573963920898278583652532264555467692939737991794956991064803850624229690417735226807043216411316788251730882865412751178675423872155854800391810733637661267155620820960923300382175021933803107106538367565461332450005554445490286592577052504751673007852626983914644626237850419387837566594458081611425875791154109777443857943510649830360501305171516300423751027950266234860179075521664805947727690137561554468927674120179447742764123280975900936598194671739425322382225437566856017533095605315121516932012352641742992960251698029260348381891323640861144310631697214683829110579112223347769191350467712567393747676360478926193254232213650662269595220378885576438260020346291980026313916836559113252279156907022749264160455848929484560858290442560955725882211316845400950568555005539140511022372425693198298923087139201628190093344697546466196301151704447014512663107847838869621714438246272455530991093717888610862868901904623447100221824522857002868175194258907795236508449496340817217866119394259382663280048892667475447246291791193868753573249560562986451785035110416354809484111461218848686077075131380255977292020492487313940543627750261089217328404187557349906096404964506485149084130034757751081602365840171452430490092075618920820753979781868233303805278770961040795912046780309066807407222341067540399512573871764720368246355785041294913856644655048739060842720009564464390564068100468838037788184646860172573248433004393367272590162893173481550153774335882011753529032136346807352154626597130332410331095009579364019947106138787561154025280345133790687428529053707910277073281550668923818626756123669577387805104864540833497227602496059060594703284430143674488012888445282568015614322125674644494345436714568423606554412830601414002419544261941617278690365371891158257731547056396650306441183089753777499431039232361989993336092426909776031386476016576435972472491638064427137793414786382917650062314525536545340241210721317779020964335165253258535145431320318702473425261032977938304392154988839807813586339036437860485722065984075166991784759185279909038766593614871168784138245989228861892280543875836130862001949223535710348840371480388544260435969760166946835054279946594149242726352655024298829617385107074195388495603195720823893489915445331420742044446969713845418296455471050218653201077317419737248928431059762615351580046576296987737294934474120241716850990974883603689838248044388054663080924938913670535345766332565678113538164269837161462482850534317207113905405480791886962466310986671028966056082501605766635006410422985272108155655911345112301861279624344975962006103765075082315106996257282150456113024501863662995951043400939286832082698529102265255856351466774224104528842177694680258204889579773781337427794087834540975470232294273439406322772072751761233887036312776335275873591228868953002619192602000787195043286105071502166190629554757211423174471729758221358069831877145552323555312010238436590289463363409942155179692494153320805623760822679062491233932892853217703640019721821307637198992473610062341550438648870871605390300833349389683854053647617003675142158791812431709082010168970537573248627494429070738186887796865867574909664553185021836584530889416986775268583570658134113466978812776445996381291183204770256157888934053647829477051625875816492600932451115741859214534248643445525608408335898551500947497133508840764089378998119137349231504575716944140705653485013126651117586119394402172197137216276332928027928322202857022789119580153689392373678717640255664144229412711777558241211154969895434653736166287594429113284106885465260113708169526006761186212859628171820528836388602628314484844379887603270879301643914426151135624332583981492325942728065427760530611219292553038549137051116465650354019953371638929729831845470755151291996728600472032309574291361985440776132374447789948096302397990426790266802597284871096413709574569489831708419434239226731917335204102758931555139059263044729863402462171682229848587617447036389767247402305454737327510309797474229868740276440676369741359804403092568558500367473430201317888190818543271016518668202600910682663220497169061572703062113776231893252647943204414574905889908079903832769059230502646943447860554847779755810951352518525683916602484527346291093018711198186812533682536284366853814345342670505419527455683839841937388699272849656383511068532332902346253998549992006543697475602262439722481536378054144552456690459545977495165413534936138515652819219452488635601952872252198263932304844675280138970581764470196889982739663170907510327444394381596764993176199203984507229314911958687008161672932353144048065500490527292118084633118378317927302243783522009498041554860007725915381725639371685675231758983166523741440685077496600273882434161479789985695356970539099999488985421524206062947614587092525780200646624936470069549591467709324754734422613984917213064500569427277130114354560656771538108259660763591618650245833500608299807258211036975685507479667978401899699002923234093612672661989775652110875707737841534742817482830047694461643052800473179798647425462621687462007781548632489262101686256112912365968114486443472422607512848511004200501529517453673045387501646166173788361723499253615545863764527424116823149906911906435317090478001526009345104262345722320278417034572479497439474947889531310316335575187011507553035713845881776361912658661581842081827156340612101654233635622501388146402731938626740073765846828545192007754543678222641874600028300183015606078638133148801359090072092818521828112517030098953847536514595574956196806282971616771071048628824828202611278699170055717830422665320145645837336179066396773663052129430394751794071052416441477655723226962843725173084641258689620904081974091272441827214367811435553094865382720799104733556551365511257696761774771090228129768062174849464638330434080723804712728471604878355703912968312142980602470869553469476332676384276339648943693310987512002045350808371679979622254323684097283931389323522075102561092933262965903658024638419119523500620684525508331437736757184122851896550050650714943282744206478354455978967803859494382596267566668710803179717944934320945780666841234760177022054160172857859244884451659948100424865397755596796101083035000427078553364470005417388534992201883283913798263853043753338543518824379361859066721136664257914677219165614026345817393921058058770134091363357792226473406444114308345731649984000578218333963271029052754176968652190479646868033122485886526803008398565047012335210395801439653289674470032449645145302757376549422138162758441318962142548298410745528908530662374330337682023346611760387139954904293132379118881133469653702278853558215523745239479437395631795887695179645449190934198851166858518579482204927004744541944216476264839241806881105594095497063758305639920197356232154384657499198409897610295466262497728307866387170170508353245930484252765279545750442566354624860543091107465419407143520989757948869401303056294718130369401470157059225452152146843275060908575953904710334430739718661651627077607621479548149867319448967756514077602382880464510513905903469927715019798672385015885133515514613931982908799024590739302043610429208174293089542069970230805834382879207520819589100511446015424570560585834427626586720340032067132525769605383348923931504555142774344053380630241108873862401473547011669653091130967532288582897985084072819219573792201032027425870216611980317891117584664967373080652389407666737028800010766893715626546840643742404246812380992984379766763013479070280222147900739544334383804753519260543934603153152727273119406259556532677402824866479413199548641644357211945533216288679631523821211724695567818654280622956087076978296531764152716195170681893664667426473254358182796704231581705373607281777857606772676244248893304788236414634099389492534773267521587354690110964399625160971108666740104743594332353378016946119939268891846527649552525061256895392650386171955539825668220077303897591954477118745793989363902488890010096642887145805320851356821670426265007355284045738795380296444759052110952464126416868954765098829460945049484313058081299131776422542186620654256578447626240945383103944170023442638615650704960347283096070250401363703937976926174422756537700127629429522793488686227321095197689816575971609160747564450711544698114961887015669694560158736396646820049656326808420850553333587665138676824271455583025678996675642770159463563429688013796014478768388218621206476538704645618285580187828585431009890193453901793249457405914857216521405381675896308797103227284349808487112512790779200444438165318357010172178504901845448687826139265621893706408823250466160555385346454857361770536188885237509756147773640889413758718574400853732571679097413577131852960825125433683497982520546700489535820033775599446616215082962072447954210960012261305186556963092448859502505017256423121458355393784992955062384711776998770538421498580851242310657777328595353033556306913066993643119340473818492999435250421613766590163301387065939826776541325208968778094885521251775473769266880864003534368221468745570844624662368137016755826403155854394723526909285386242022797396038866070383257770908615280355587772482751290434716675099827619214723531993504688082334263420153540498573017604617287925215170755898895359166419528615617049094266772582001752251259260277755418470182493510403857527113146077494851889752705833911860435463940914132091528363779680827137080445096162993391852208174736166458356866440497403608183205338421127443576252623210814247444176975147596587119741162469117306164918672473330876784691082871070243314172134491585225435215876680008501925970869978594845734166548458770041026664849947997485805018976285375846230664230458963126958827262467118189841256603090663728193410849109351250363185156962712819744066809796199412932125176801694812375258496994074442858828586085033002042852299321039884237145704659187200802462278544106758316103099929748005857976804152405853224788093506396181227927441616993886934694722455691795018884029446982089047688092393213147111126769577284457744851572635036509844309234177937076507429332406911240058903833915272419724659477007682386647300308447289243729302421292649306819623251134186283887425353955378989526936858851384358678840278694719727075709329932986199948358503606681432153134208651554051193999146719092381321119752654319922585701271943933446932176717783586607741108486379170690607069899796711984381455144442577031519576382904166833370475451362906950680630429490710581073377224551048312997743832487306015123680492300116455981691371319210619824685087981886125089512166580205082231846793713591464872886074340290305587632833048257637157587020904962818994329736093164686310673660056897091716486543203421670548121037491747243568389641191161123254867334709827167362778571909018021177365603863796500762716995338907288110107864583469521873084767854552649391453962531646523433097748242080174615963484767856196700935229140774698002980757512361274253169701652279177061095746195475133550554079514422842177131557721987051511922117038400212982525682624825450417771256468371697184123477056093026549525349509253270135094229620581625591893452542896671673853188000328525349500940326353996150438279245723467701329912172897108274719985086493663564212804052301791512451514023742084371681363475003917419389860838745435497670677222506484559564907970505995074101497962155965242875595224688063201811350082515028690058233526658031542131914383988925638202443793788975790875299058576708824729117453158420003440927541224115749353525109977684606034850548866722231081028372328238816595840754164523237773126640744604431632143598490556355001985517424760421876045913956628661606818173286888717425296674006171542460645301801592200258261028272452571942340380434018968184723870730087446278417054700836779803809267390469737893653251237965073551569997751465489755948305290957652846368331503274821553882170393723758298369656880954466958832095704785016795956300326194959880474914382492472838328421805182119170700885970500711699792371133105090283889761084235614527466510934228744798032184477953295444437265837243366140927069550238795552923624543674054599895187132430897739661599974933795889852157384576801110102472049057978934460780743266137326831875497428231201438866936059554761322612992508050858230783854453241223283601405317338650804117812909976841887427629501722442348352845691866952075867018677741422298302412038134590748785415171642175658259711415036622535135367599824638884757262921438446703484475953874466232977589496963303803466608627314525900878013776141633237899354059111944333164619100923215042472742018711975032301564685319135833154766569242541740251502736527219283369223303866431254846062703224522228187616347629081363957809220037220017369857055607571275503962767577743663230877813385933546422630650936337159353769896097627643289363489190604051444404210289469250079728974391217270900371033678671572040030773814095100582750711204299919661673014878010458100419749302115907063254947585432327692130952014315943090196968532154854590140288027357234514484020138445694483191567866287688480457638189121593426337114265869271389767656174387954919884808159911535865965100987686699625160499835356737339663260886486783869564327214150787744458823915440688173020862673809496937408846853103076938684385366550657091965180394831126842338261174655843486926807417676427774245069456147460460239944470493525718036731427538189117965499787197432249170638832163083210788750172358822266890044068016735683046302764841740216124802921976567822471628989105265893875166887231878125775002089880016251282679726134441586633234898719002762144583334674636484162716963647718138982232347459078580712849026361898110058683101019457302987211318413497867184162484654173891479292892276893117024800307776684541555282397143745202741004403115637224314571590731536598670254551444573649063783941181097467369135974520253814404362140027290723719355500101994831226228718651107968263709018025714686365626323833194611582475174270119767254222174046800200768020863766129961115297632363051993424910630877446903876818782182206221475361258660524835766477973016474514377096303989239221490322717609033307634623829806483290472160223297104266735536237466561037657011238888092554366175074076634200980222088045474209284172474430606069901789943259238459270222073089203786745615644215053062149068459574330366921299471437015543375829662979694205249020150002989833061282066798418869824796756477796308086452858542267553863287191188238373665145235886668604205137871393669841481397309570972618829236711894436304460429169417047941495175403886376117842915282471598546777715179431714527731153324674700128977127417882442023354014813496693116673071778305072887722016032530221340297934263557327465341965107031334856604129142016776774183674570745712539173904422360496160901653389046309328061910585023159438324116007309687944943724168352332526096660166082966118223606031782933134630480357143460985824829253110701174559970567227667302916946014715788518218838961620275381400536682472497497793794514128242421146363597402610946332782544463981124195421705210657258041127831981389857728848748070834842336579810817622671013810347876221665100097445103123241060714106569411815518691447760901134645202270716858047011749146931571746495870844757234886085105370051358332113631070060785873117774968768639423167638036993004346479329966087896300541013218095098959143072998463490095940692870721549450639600352322880239066270493050307561127513955091338576608638883523062306340329144415227313642053934555333445597372193678501069982250936352068955395984472781054816582581858495110618100100773001673336632865564201125406815415631221797038581039167479491633126585496312776163573281053529820599235239917877912098466042032479499301131205729274566791847352613993710623654108779726596349203601798473877620094516215099182492980691414686649826185519851348663491976564995525335738662459855812230182844227968482099917168135785421092841762463960868536204241855326392150509925307360013053360912109082510860565180509045708952858675415890791457110580748918900323561651886441325199078403511539244854778618764589649180168336848215640848142007506267189019610210620751355217817390117417928133315410725517866380830827377554570825923302331846667809082886711919925889284971823486824072592237535760812000880340105490606953543666240357973041481172162669473708843355715667512718759840785839527819211405332403488514040786497457700388210424903585474648299366879573870365179068125645671992889137656849765307255226518085235826052038357848603223370108545747122230927386250832422204220572080174841012685166257065148925227942700842888511957175235710239318250829243233417084547641310906841019422108863732950549642601221614781116298961946045590314554405012635065634166483745505312488504769351168691331589508555474391926620605504951689903408284774150883398802817556768534504920886005173555437734285786494295661348456039772780889033695633225503934426258696558952151227056756358669186232063190652970220890481321960046938396207155052534596628755078407627311351273593311323224047310435144628514385275575520696084167749372949389846456419178097166307520202192034132051916474861101243319546973390981981995920627599694735104705698389301774780658566192144969415271517778354896050615032257668990991039430491365519763652802670781281203689113218098033927701442290628457396703470159185826223563740846140935449370641277655129303449518237101579151531260114969494332562693936605272233686492255139562574409291100807067181245394057645309074493608991530425639474911162565406125109843136273031791464420830793221059308505993631491489298508114975110442453825369199259879409311762636886390116773145144062403434108237580666243087343997346395457023986422314467755626001527035210516525104780192739347093532475753847664900917147090714619173521450340158996221960318000224876497484051936487957994726298949787037453871557853624143786732211568532236847112572460546629585397389262848382673068550791925333525945486472261259423074134489659681928692329185602598428332396562691692365687147788887666115252144577511222088378472537845329610196396453677527159817250463194052326822074011462852855489024348252058761449149319077383785332525279101356414186382752659133541682990355802159807512978321297029280848863738795684625956244827821568833033690467317978934266932434607679173853316044417966544388341081050093382665592160070688007032139513046368752824576216221784999431697278546767078546209687499836655164752619794464911241348272897538592099589201995937384051737412499204412544462026810257434397673269663161091564944372492066440075606728446580248573942000356995574736911987712708880301254320860460649477576881515999019061643864376835335350694502434908403136504897901888571056405164120236037518882043488799823676995425081855660733058772129079260495558732959835417611380056408180038701119380163582862962768874813507565889822691789349135367209648872458067200435668966673799875450371903756393739878847787779899770362502077521533174500654591395989362321268310209244811420884935611820990715118335909201403145554395485952463101352567963145434716037204017191607576135970307768758945092194372712364994715874511562999161193659389788798583354832844910025472009216672387882459816118005787472967281066703130550897394456263312484860823202416508497086444399552849529110595568384719546653518157026126558127091435184726918280588346316209416402501291355130795148761184773972317715717278966815812351207649448452578248353327709995367106823515950218237553243491947912021122773075349644371546237779331389888211004494228937016419706946991062948525748391021544873475577142528935663539049506388568176018591205704020705261302687686027982181449701315063805723798729916328606296338317544038187858939975990910686831391294010018801416888721388030593322475490981696794956621201987773517492464129695536047567857486786263367500145738981443449279996559756035330657464921829328959643758805308766846021069899721107603413653372716977334393608774133492453510431131018637484900842113604097718540624988534635506053584456400169781591442361247060095586122010244862404491379826466815067100658602390268273944224427350805062370863634553137945569434916043862976456383332690345073595625017233165648442707485658053358561603597825897372200205557616593445589076122491154069316288572170103340311021560523942748561965702378498397122388168866854547660765150340444789098277177526103256285092518455463378716609137482049232462239785559894010138917905014060424243459860821861374865877887441559524993566493850790365300279151139602233130460559306758646136826460308572391602955465267898323184794794184749373927243081287846532512028047996115646864490684101852655169391840354570290767549740735023747605924682593737907596171969549162199669361471206457412920898709379776780641320785610288125400870051437032243311597769722058298608744963666455752371692705056816342849787605960538912789611791254430961683908103232895539646386545036965287416306903160363705501202578634552227671961788955356297206604189745674622236049156281367661048858595782129051940560325253447301862497692810453240789021657585356884558579165001856902980593456511859366796479069492220090304353255632164507165485339786049395879056998649559486773764458235952178627885761390774251053008533870840441073122159165409183994225386571071477772961369002990085898549870761164642980980908763181334380311919809220225355578690242999877801336816771875188205734012827385956864918496341516495570163559107646867913789620919851447278780774340829477180582828821066673649486259813190365217837532724491835765857480178327613282278969266367801057307701145813488305270087317679796671303313227861368770662442356385103412681339449969098228362995843712920694508902020498629297639186517734538979598363549189326491430522112214082776616239674625548647962274515316033961131833410364893847776565413129656779126650452421767334486842307056761181670318974838769623925417128585494650893688278690684414679438230969367688505197460372643026528296652270346160769181262465953130072051072779526517132651455238445515346045086001809406708133520425095335509886855584013266517064142096548524168001339632014754227635981708948342976864900079413688666189344309263691573423466065984127812190823341183291051494985310568267438907585832185020662826728547415887947450590741030317812074843995105022289755237321523474788353023653689902274099659111677062853990578396567399791488269550629308264163986885460310581526794923443722680613840140188262199233794629703858368926476217492920414915158018968076321144093250111640984701213092724096214324048889176895452171108627725153942527846964154237039534169012549827807605094662262486222050435033701790325011552818206458761662076851425231269847080666330416339086183280552823983863091798478503372067539529489733342940793456031709569506460592088408342485590493645722276677724382404379760002101961386428180305827098399178480687234018316690171816271569959965398457888742085456236959709646267873418450172163068672212071984184924308261433264723585944174437050715225579401396705583189095343386818102844992224102425370353208165087384249992785405187503986090455543240503650532078974047577251185988358568517786514345570199458963484430488347584912389587889076486499981590896190145413249265290302026693193573487149826092873121845826347542876677091199600332912833986141726942411069565258841724233111724840051673422078924063344984645804771243349963346769268508254539060130823579487107231329727958915915258138261472341212959679348945157678713057668194992914368357570418641725363773139546483400050421953206334814563832752505252923254379207001755575836311834041929116763106276046254877072037736268990947029194532320998803077228657985509983485630314796645552305568034347994531445191605482868874082952239550786236704449992225334084847212302385480154212203379295061486953111821499004309334959590968239312726668373478976479364703076417825257480674495607415154559953362400345528636488108796658183065865609702050793830170992335054499296646712620248878815791865431308845814179601835970186842495588228278267698814948156077013856276630268836864392738626428135285921298057149728402239752933866341029281790517333910450991304198172958926572128078632948323797417138807485120804246684034000572111005315538014336788064750250216700477590597885630241492910976737927735536843072324125334679701391578865541300384504616351284673013176063057708281457772098821994989104841307485840332543692356080270358637140433692790067306892583185172098874053616718441764983747032182438165785034239920478675027787837027555849892903599405885756539117582203413792078298205609898300754997985895528492265287727964405201698703618295660268023828668507931992043790728488073310468599660022038751269322024977169195012982378479422961080231219068074361534251224475934470974131644121656281117798485830555323365605913176323007402693924981513075938781631627155541469689241009145198448110389030362843072879711340078649742567492072971708709292839265277051204997388050546271388589583166414351272985995815067036191671887683512075803766616551856417419309841954682596979382002419285820301080676532285843120309957034318239917954247506274948373454324665812555735016854047055593527967840360650889441526154495365613616432762334366754914910766659933872354357389143446459206844259752841230233488578918241109401375765055782851187926719211303136077894381287196520569989797537717681259589490294235021013091381481207665264053284456022435974384310010202490759233098827327363121271639989014248523177731045517759771559854146590170848872260919509600618879001251144723954892715117956736132995553038676186618471194404870029700003215006154157414290249699965077567224267865268814417151392772324126131140717690294926458120424171616765959623094704028216393966721524159076487315337777467583303301388061969211028515439507021003063536820617520332299734728401219017099125918992299441464195276200388774953973292628888351793423483281262961120429235831683247004644078259202931460942928367860120798883674956961836263509240370532621121224402530105342975023974371861051497171726776779113650846093388055651782564898267106620804323387671473505350125305974695120188246687852647204254291321736085012244478011545680055645615869959115402098183757121747998483844904807355052000893579904030730590928583037525610226943338525710186806382981021634755034046285950812351961331214760381999148744155613276849903488612689413130682963831090473590224398539603075046798783916856995795445344759511291811013412524787688148874008234400925100487625442399701065398824612516975960498808697322794083772012359074788412180816332702356195219667299360960991793306969845991591558404692178208090897384268495612603381256203631847539647551363848918337309668923053074744663363099177456480085976763573529023127877679647331919078280926054902053026240896183265709606407946451118094383801995264229482248171431117825886887472989992853904227205332942408300936708244473363344805943008022248687534523312912620652113383356928348728580639487143425467162270375297116374355904397862928304163652433539859980668001294807538213481125878209238160661214323852685863857973368663881074062901197254644897384651789782490487974517388930183073624914471911797121210647837742437034108866307999637829798616375702340150616380542818736264836677710444433991864852760917966552502321789668248207997093463031266553246011764151593922822698962780390091077626676700025004870259345441114435875366413302466383366889754105481908087716623706132278714955125169644383194142990895417563677569433641561777313658914194774600647149081894754630388557478991087420527429742395566282120089983960217727495866693752989707784929635352561313647629712882803615142080090754187627826696398603015155156869634346861928699620582152247359650553563904923390686473309528583650525415845175246504322732327487667168285867104145072445929269199116879888529934198872762631334132084975637038262413308903209482564002167901061199994320279983866468236812483993902481846716299483644932994527395210903091827674110203576210772303774483757940222859693768869566564168469296705207471352994946427323812338930204583788056155859065777445417506236125248885631137343888086170749918862856255501353946464246179865065325245316789194674824789499459676554091823704264317731389419246297904757247773564560404528715097685368406183770467084492559037776410741537454709443387050004348605417589240612010114150115272883419839604470776802058294730567684321056613661862436029052772409250261316117218167252412457808883956318069174661248835588047144651799511882291583459938987207768391204815557087589385541093709337944666063628091953166896378239133135426630611546245746898379645563635262143205721006360319108749958934619025266794226607360339843210870052406234812289783323087818517960691631102718062052591073736123729744302885796310187011120556244560007275294433743146169183589242005069833606389325919386834491088246364217490661916444312473525565445724733665658641432491780760938368987744962732403720197017029875456670104908169664878797469277059920136316412217619028569287275397692125157597734553740442766822544678796246155327727590404462125224620045995127728132980734400829151213982192833174932251910154303138120481331076214407559479441453245251904627532670606193004908624413401468637612464678814721160538302023989646859562078369237972732489430453387272778622583293503168954447449463037154558262887025965595186729411370631588379131392287266225615979303956474572495571824534013009300158026654510063223154713509439749314168477561234202507237370318615599718900210514943524207811256007418705622717615932834483557619301901989747343760860278229451497510212905936604578542645554636387796539075815756506353243047052372222584390329569407872800945516107461681424962162053856694080642711489526975046563949007309813359230654504612314434092707452749945244670178195805919567281608430160488405580460218934751282699127246110010944380265266029974873321378507804077117433736260662695824382487042009601191274409334408209142058429346466588404197681416159392017457644102592844928073191188630432914387080523286218994577389320661385427213247241595209334280916684799716193711666200835561297167982406121545449912312069976802420331270811709164086470396073419710721332511908870930394179964566477435116634795003691665551942689986722889410596534734259607784561123049087310671250288847665924476466541361552889450822342584972300063365147537697253189958415817797262679641032115572125987263914313205205652638859521772874884635378588399087090578147959546727439438001364984180810219724225147590612926287532588814061711635199098007597216803190185270250460424954012693168621655722190619523822187259055432105576645557935723928360209146896876787378430144861555140108569855532290716630799596715844811914961361353080543418889649350627358681406572014451796250777089923541787073705215459191412600077696045039687405418869996781300020890827165769598337295794539428342909311316156464721180625012679278015395009705473928468926302044569131329210946288826176596814323282823088458331525314166837057957708979787983799031672349232428675121770163914633142733424411827956812470637775432919793062369160181895166103391723020973801893441342734923556810661517778606940503951583595005158454191206691341923302049498209010036120158184259634004230578506493109845632728372389038685395860037157808794578751819702576476241674044004385804653758154524647526296667905260481050321376074849972835155509784336392556331995877829099939155032079472155104089463771861954171857781634700390051638416882635191847380123498499026297238382807508167876312004992044921701225729831139199781330077596273852309534467182438842859935250168391133930571275384873065765008507750203933377046630155437456112630002976296525612450295184671972195011229591450542907942725677943793071227356231949259717168449928240460339157889632586200838852400238238730746566799400879192487682020731815890452827025312847886686290033204949411791964826237585625164272008793772110915842816435015098343058512195790408665523972846112145691521427155260355216402536085360464328752456005391307615093471199269427252516289649892375906481937275108717789719464343640676355889586428710375611765482057910026831422562896270711126424110276754032205402555054445703661410954312988856349793810425282097238174847270528406023934304325193555119718865040868616625733016889154197601772470025517202193190321934774880162704577281575277953843171155215022516164946222213806045631690258104991873983755145789260869176401265218903357507911202016091869038690477832965184074882517201402697956086191528155743665928600404560614195243117053794017682930588181965368918072184391300161668342758526375312018441146379600910676962636472802610580786537923246579631356267894938055014148350902874897080172342571161136715484650126124913275740771551931002650459335033360607847371807944109194672046855684081219681278949954633796312482623019192822058028808411480527061460322963653160872320568111153433107406761737882099108456203686611649054420618635003470468919593202740288969414283353853902899801254225660566284924328080955063254646564692361538556392285978281100571162978374133717561402661326644824919100870123482898632612317053840707544989764024473407758238221993010807242132100517292973318627618244814844079047092298172405382401419889531799013534076455223643502990670616768468293919529664340645476438952099818631131948185616843849463562170147491566724505357861995072174538042778850043428707004256472833555834741417862468479024472894003522857151702294837334195681430946807872342268220151488080539630632512372655542508681400001749594712590897740179430914389737274635558338234133502183263594691237284805787998290486048602366897456298208505157824299543098669949136858782713534755601507174036087404332419173661705012248574897876113451346916906495550406778912875951388326234137839079053095392166692480627720579000039208232483618944167177493813508994075401959096565558398844361867236657719010820778685444650887879767216578679462518740909148702890682088842135370006703235700261822774747558423036507066243356367415128699499798148873470468663315048819186873108455096668887197460630287482173372042636190095227554081343118647127471888466933858259877586677369265168568099527502114650702644537957677581729454391206533785787630977478016210937399933716680086832810996538091115625815239539895180774588175532365925139916634677416633577846401569925082010675621609678769286568353603931890561901537987398684912760390499399078280435803561835626046191604051424291140382927420393887362473304150553296319315958579685732661329364763033449004760532388902864640569257340714024754817078266303363823980926745450367780401457136628380746327331407087672377875982293536995672293596768230841395952120170759209474068792107134712055225960160825465640506473092460513895793459379170265880946274124669234015662938689985783759313182388067326241453123805115696774303589603934288188592927467913776250643623541271147322084510157290880767596126168958625949843805239616919226966517111279403744533091231699294408453220616002728214909400942823171363552344129026259625545835067718427248282406189267828077485222586722086760271196918500928545635261696863862079124822099316120164588161222526530501735599019878408359295544753104596416263393021506923222548522020149682264549822031275366272688892263320971108244818969447430694609966811075202392888782137798452647956729609103387052623535471332522085670731163416918221207837556843821946490879001805088969562869224227531843203242148574649779739962861977211379096783359064263378691101491349757903482231062988397604542788786289654223696728875019757893470303690321579963338287814552231401123622867703965321822597419729258227248870225079086122850716708706311485060107508746168570137402341289220745418201119464808808319673511220756899270945063220735664219490321577208731116011269661737063583723882658670147646160868690445820859800357392884713585981418272567416045944580974450676069742906238197185048347070322208217601981424224718780736387115953435075008713539097174488767932540003404136061724840546543266349031701081296777710410433443001529767479420889293019785214443804661293669770019613559973877997511527319171345366922306677207387283601315810909581836132020066275078327842022768763819650545934552286455986221577849553092979343245299332820640582488609551570168712333655597635730006236542734633249431697942618603096397133774480933102075754582463543067428209377664606836521674975147574224979869230430852642796343366966081325405891289340722528241612056498884380485942201709232641901497428759211430915164458337324921374078822648967653619182676225533709133274618777883335270424460705650151358604938331401483704537149482207713878556391043924979214856427441357071439771664192728515993142412537943508942565363727864567407726477428355057756534797252581038562250149677489904598149822983205913669397469338732874864185566901680553421409115668981133846884686938217430628199881812760607603021921148876573344706059992792314205551360355785632447561245379138376527696223912492566274300323668965593372153981622286703158914340059208313338566402328128053592407711551356259334989580472122187164671509883302904652731337842839889420895502799915060477424493316009924674839771443655377813869730293688156647628379705870552101675553365842989516407680021729842931532325977130312774384024735688009155634933104639673150177417930737040297693366432779892262572789801844122654432648332468421481833147107443930442639879489471630348579044478352005946416163585980472947898768231708835964943392104202413929512885641669019598461619213816101293411542534163679201820425851750672360677868568398653312450121286110784354525604936265216126604663085677381011407674941279286698978089996027971412242034830536510058429750986172646136493112871852155343475476196304914480241366554154354989625631317755924761763816332053695804353686299003933028155915028722011232530704364598143515626787661688998548055463969935641054958962735433974504217819958107301502650129743241789822907651093637058305247151102122897567365929788395192632068398765094082947540325293869600291633725632385870205863336406158230801671462744401873126133937700071949429589805602343386617553487240262210769823629185011260246132093870743973425749386527373634279646287964799471609587380628261144067238302759885306052538565541682420707814282262722709501467364401264515035634230018861579860396854976954714067043397865284557617934113063436895449914716728202124623713908357827257426838765670523108269250300526115546787754856747490761504511523495519387169708875170272164760574904844531474542025716029202114721482628376946043260568386598740301046060383260341186043411648679178978059826390205634485111076032027017221501517260425834619482415016839379859784358789993598936010202070801286026987241450420443933303159847837593697134070461067630625504664037931647848750303542088944319246726045577512915158531603113723562415040063917860974611774606965821935769053255935576638991143373563081731149597822466068317707576868477365187216183548867538013416797617444761135838772555856326621875230422465012763911598640586362619401904316107158395338059041833849905137620464553821659563966711998646813266030358440193284780121009383611057830655645876396086724957626176367043868663482789868406443367300116873075756063727412626569859765095707965018443080555895315453049350180469276019596330751130599319868174242700555214542122181248989977122464140717378461072943149949976566156243578398393264920186060202607984923776004430015293899069831866193492419695870037888863390978399750027457336084119492720573688103703648630450822166104007098516661991508591493389679381869291437758675284642728071591165486554431098957750849063233674616769386477516903787425314366571531359966274030547019271323694623652159006896894354665979488424848218866950774974157919261215125150641694390588715579178597148813837920134290510841206582727706448879653259441980567820781378677840799571208767691441798275012145709351060050300284712031176773465716634866419938538474764217497906347904510074645313814118886395444680460574831910692372372577664331133302793926798164669999372729110546871358317559904290710761252965457143325417867684759662850107658832318967458593771828439588335333865003600428626965510586880334706930054160426272143517731304743497099532338802079416888815042677030332661097090358482472366350220632692833616417039677929889920647033330519922154583067660547511154376420924809181171008857706057215511921101540847729896825647461192397079487050402927226868584396214447450338981578247569310876021241872110907078516452882935688670275657176039559932787701147844265081370016187421660162556071655549284483674452999797651530597215312115753354409718216150835580719554456192372367215801212807023283086033057423474720129525278854397413287960154348423135672336107173220147830491473814632467056814742642190339819663964244161851042813386195238595756333169956490694817466914735113190133956307844977401605893976750798743207751841187357629767994826521593462906866239448009683012430446068366243912286122591575431642574695131063631935736465372621816355585112993101272125898011556093374387338136031976531899183933135534261582823018404414372206504839908162884642602778225323808340982409284839313508537780562270357613305985365633344952240965154278337216091622078177190917364716849480360797908960228225178658754890289858781765831119761426879528800750852351342892322373949482641127925411162380945204592200768452903879381694397195037434947315693768096164600562630110352875067658858277847726062642738203089046462082200114595350674809889387181026864176796027072512437982189110690548210401456401424506609243136014590114004771845637011627629021481073140249953474484161525301539769088589965265031349405836580107284868234734415514050931593224669551597987166701966105660338740811139615584688671750972054861359813510708506901456591419540410886372724730064741055687635816145918955536328578266528408585962347009062785550654426165921407103243091797332553727745681002988405255171231622806721400461723975872925517456832344341281086726080751469853752903854699458400183570704167520704801319211857480902755466227975848910273371645202930377836856124454898201725167609315631461557325241864286493165746327046577867118062509655324447181744918572819152246900033905789360470343294187304383756388918982513268927361565898347763017233557241753467953590901851100052966354571217754103067224529603759637351205092829839406054775013808431290700418716644624349791349354985291791395264131220823559636483117695110185228108360097035306655416307960241846618073088082475420312170520338030853753670032434769093557385689076216258576415719399092574705305353189528900664997943597365780354323746498798606945542282167419829105045348556800832276164351277309482008019447031873303850188157174115008838731078837108699834951305840307783628674346520495377468586157977172036051522104819265052075233793738571953971853163755848593951292283303671938053339639275861283577756433318765837483118315104119740866850106816210909084366947111914673368665650876021866156033949357274411600073249086283575307835890976179219825676950009500194007094462567029481647936128558304481393875223399772471168111894527101617223719158241055389498583835030525029663432611568456181968201838314723307391468002580445981877394799529471435236753906622989389819543089844443695883243134461958316574256398651742759441750108561446078312184545577735497912276485351802617651044496279654562948007260232233247338591779434967361571060708535206996081037509641349312721136878336456691931630745329484528875261329846344333719366976906610316063179479551414043512446261704403830790912586739529899649634216549294269875981389548688991545058624727377575626207824488229562505125720589994956811020039122944330442933123086763602431681726114109463581125508541011377326250107039891460932987876675891954653370461113516531152218029317761480029307693316172108328459196936182669758210580133475221233372800401063606000763263914249760621403936765174804341283574903863807452822207992200191668073008892711188802215553427211213933563493131284267862613016820583634973296736949361524353167417436500595965329547449865996820686173950407199105074991962825877290035259103602797678041204966598117212765202586143608270097557614364312829160862094949283941459568139312004593823724286500804494169199113401865190854425037270373080785521460609352431398080813362409185144090127911563599822197798310267518974335558464491219635879600287290782247853377292704070328481859022017497200725485795892655702048526537821706715882767911555164211804320461381228065727937733248365555332955443288273324541450614690028903879234416958809377316336622138608689440200204161633443401205826680717482896400303464098310833895021187534702096893344778312533863275222602733410856083952362992330251233877155478654093608160923356860804479027901265845917866324753721533864044753493183372963422031754874101163794513830859223726099533284626751913546875429627800961864269934334246744206305081247471996295812029944235497577850940351719186832833015039295862562640814493798455817841793953842117584720132696750055624860859756868134578778221517166247299994200392567382964479616459299919938175971279100094274785942812427155598336621377329295422589778752319424481029005346662109653652375758003271182623682481894096164179177968683931162138057568440952840532663341448050417364478795081161292137816815375811375274541282289952854897071535750366322166911515872552504467014142646925695875071146889027021929505475252059379779958036400157114392747769573538803922381191019267720677961647875030291232189611836599406262583593610853779857995834440765209430508834705612458841739749686092596699829650885609590969455264404005855434412214269423107780174987072695123988424483119490138400592341073295091439017964005431223509920197256005867113261721482615181475427693312113691257902631028638023424866416586786550852242766421392058728736435513797241748262735598685423492128830316094956683506367976200049969143841905813331651991283474695812872189251060365657498956326720629562943741849414754339298459899600247309580540149999928264810038550914145997652554646580032691091879145062667576363979830764213167387488261620856152971892933143647052036553324248783461729518939795475024603418669245841594330533014228986670897624462625830297275124575634331403189004129855027999682383070723435915037065086339015763855835269786393799041079620752512376115261680454850613479025673797324844671533899105025118631775778285537547317845647382950266258943353400631004328398364601666337339151660084748400655230741908270882738293895695396819109386050248251518376261205633837757636054906407130502710346729978132116555205407683567121401286532205788089496796671445739062381262024692145063107560057621700844692766747775848340291160431169562452471897987351139192482151345478655695431697971289547065203781407779139403683048870776730005094685739143023044654618566322019488948317543983863691032421668510627556922789793125551874369030451697146133550173444776152805431407411057882857185770417270621221537878954316000196069467341593473706914415330590327827577456826122042415302830124370754834113519875458070631915405321329622091833255084764529877283699211290784013629336496568721053747792908740969685078745026353092444037030051663703396029752273344550073195841201812035099537244954830288479265353241199418370683256451833065415379669520893696589257018914478278677536044164012911924380842490200866483735563165003279301497604718260213400455860668018018650240176101954804319130576771662655318717199390354951188885632048210530835203334458033371460160222646535912555290830716000924621640767915791832280017601457593764605836778153296190861458345678445846052388940884013712377159838495240841691405082425291354373219361920490624814110469041648355931316995640649684668268550202540828628870464091191447921719908962871325328053415587651362800604086465280084777958194172875378100077791230388060890330460038422153301376849495412399741392540127690404630051694554118819193880752699999824576282670127440334775251950537230539331968715804082968007101389905062997116161608527351601630443699623548998203917244337468962985238889476818246716190187334267469011277442372733810463832919960486228345158448193738489277643586742843062608120564254358990107370965918263194884507403040844128364988568497668812523790740924750251246791816315266046186683161387813695577679042252618807378049100956004270125868435044414392453803373530129150568510318663869692557356937637928878535604118868434274154696212374168968719263825416250208643930668708405304291901571044425308737117069653650974202243508959396604449921104046324943512712620504668414380597614494963307087414883504229032552050796733722234420583260743059152011582751140995270302967502044184693657506381167647562294628675758720740595157788442114263073400734991376754231125911528214883916546124978880471392574504447247457754910835144681663118781642414512854389743658382767161418356295788691435854481328475377862521549784196789065352213777471964214230163372063861018630892597386656873211488408904798971298910822079487673849085487752446148540095545198989432404601294588086963647154764365297991271984657569557387639525806223033079121243639775404656275138914489330884027918987529404784507244702449205095966419036411441159368043030565890313627693222342917077728527825969596252505022627850162294116807006359014030312748946941863832848780458205711726413890061972992189767928164243110307416655852768337278932778232607615887060962413999692281794346843919375607025603463657929119235084894727969935642432515477044748203053353506040227990161445363368663186195436488105722727860883231301018935354881871861627109016637303618151693305549320999426958467177279170780373335643080614583094493693129133811421731983698821200383550831825685841177116215727674351049453425963434649880676954055345996957420198572889357203433185445299410308210024901308550841370877372003930067772868480911531172783605415375389418470389087036521421560345225249196691910297527126239825170559543832230344123044995660754498571428878526544346498317076676166522885974746189738580498605557277106705661440328394840485071744410452542742575318961940153856580342882915926235046333572077976389867343910074573742798715248406382834906860125600367619194698633883001093922302656779262637111078339570532841929208612259123355141236373743758421868927321782654479822773905163957246715723004708979491499429284705340690046494359740182019471529220295939494197643432787631631548524997451662401992538248101269106230577888516423626596484467654825689206023740535957900728259955276253091307304203342983149226415085166212441261038236383039459566776580098771244225811693492458224716483845196266769129270825624310349095076535481371541620230517083550980578723392122753405163780000636644479215349338859768052317000598845776906694488241342592785772598810101286140987277078394326639861686808528159347189823921361267908189382173153518539994463499374240811823475137216081619957015685904044301446823239650165493372144704182414195043642330642408203633234479807087212392255217754866446367000838690729505728589393396343812379980667104795124665501706067518663440376942668560326643171422641586431914194733399284097072578181881734632422595716785923983136248795035504014379641086591559420789203734512829869913432747176785666612395247434676935711545263881259126586077388864333339360474542160130586939645842550246636124163965275086007616223308459802198726311218992603601069443642198185833127222015686253950778345632114259307318890352267508261230814435700361460619701807088907679383650564636372778745182346749798117348901664846167846606116268770424073874567638402210810096910539995968007945026023552444584203019611578308853352981014319072162373197679182971554763207379933914670483547343353803612858162493069803985719866691603254328924045466840687448224681456965356119136453478350706132529332016262978164293869381526825161902283263855137800698042856930345966067385532035675784738104189537181021039733923279509415782819704233167790649628980067562667727261266694816301996273975192627979842416759983130129306524706912631613828609636636466858189210245328327407450121163751773516493669236084896582201390563305025113122875129986351675599703073773912585193487595318677550606202967208583593091667292036302492811751511837488857081672202124670255769133375848416099604425618686239375974802370487247587780674746861806227151083956023454035826042027331835688254547770681994049504079791650451206649119808973378154494323722460095304086446615102756101664620775170854325878855748903373099635623695497781225011629573993978893599226268667189368750993635647617111265892640446605666542024936911912885165432217031471490188188734528610418658842732329487023388174944726697558913053720213923894262246172470459978125826398161047442424808578956675537726861830225688198465189111057909494512899849980534225739745964356982800632064463903692088174651897450936160055282446768733398701474385044844946921780080647410249580631677603824422099203247904945197844052735707302140660943000245450671847260736552461278252615277907989356309482875285287605535178185914631380382643474021602631900918379651830418197814542418410873116808275047423715041628866247379810152292061200628410718416213267453466971484204554894544639413075771781376317520941908967478190425731326844516635982848011068196363696816646669477647179987910995056132315186551921823234059368073637431776744394533579522506472153804584055071526819049541964202491606782655629293237650130812161022043479230467218927821067194638752502088476391251079733062906561582118987259944395483771989429074023802019485923323245266237349481404016856477451607169465132169580404147123162160334208641034073016143073405057101059095534186898370167758882774546777687054866443970607292435752592736757017046286165594779878434407344010923449273057936196320748842766349694856998746248375072381379341030494940490582493034522133493485342458215953570330059577754714842748077358539438232433429626330216758628836120070446014120361485968156891391600771706963423180815839404740483583780254281626859406440180618380026434692021924139848540086159725958383432976371844814814128870662147814680389312463191235483754006352744627397784532984248381723547381245686532425987646129259622976436056914301304645913552843198059081149725748708316677397760325539808730104158572649057938502622549029086754608450728704269555365611669988645049146403975406187542092254278264003803263121593653895519905110965760838394227295102573308801748739359856631505595435326441354449076657928980595303559448034391190974435445531175601863754125182468395388045219674986396511165295785387070442488233238326955907876715177387084484532027109019346268200231105028129425462648247016263163384204640677436923334968959193093625098697890290693170606621391031039785879209118182311002377717513383694004990280803256279561870732498522490462524851710368067760121831988250452160907593325993645927674856692306744310583516715436124955714963196623803027238118486304829217376385546077878229266330834641969477921671615212029200088290780392637630120493294362157870128843623470011033594130874073401390887394332926451411758402097041722182341668404003029611512903232721178012656240326038122203632323294189338515198339690384075012708959218271444754045227115718055569451905916320100454945078088726806148165242734748936519656614302220784652972175568928360619401123007171268495024995310692501958359901937737098268221209310559503894155360158595371758874690993108762380883394775449693322329313098421598079258342314776326312247793230171280725702198903401119844217233576487146812585020185169982106539380847994472990049084866372106356897493733377241586691959456858798350415212733346744599832831976628103544614264070834086221138536715993452941585125333020015790568572371767856606432116775459460109250868944041157339053702521517130748897882330352304290546405575953371378006014249020296677784362918061694313509484748483540863076095162800164552873932142802965668491299816771540581236980685887703672192535067541466340559658531112129509497072211277064279958957805238705467087382474607532941886604050933597992157987993171588639581786584057909532737943166023323318888161014244295882228833608571403997124831497542854168052035061758753643468156890172212728334749676433763736709520642775120390916759589334254171891311771066796709507001109683596414066535660818110355347940580819733607627074367339064479681487520742718704792939615116677877440411441781478634117858679335560983191156157513912084074951941145464337450253788282895995994513764582601540984711573004742576380074139487552153216827662690726329416784151673560139555320133854687984113118331655684201313650825905487066254630283510412417260227346216132240041071010480048988308144832344952999203847712376857307043128237430354159980756749704585817218578457026966005661677047542359156950912263300480409861307422784490239791912700127755129896527509042593043030896763475376581336318263667001032011125945276198523475667777308479756293323916681110306866932808049407379557118660617264436854944929850857500505751176001717893421437787787340122054357447659251701640861827269850092726982738082361511808471861388057078716860038602520047564549547386192228591647352606264999017382799547192644098218927850935173911466559036990209113062752498975820329338904109146278715607125655297815927842375915792574826722267719705353019521000875044784013577788208340722407390497812489156378453322427635376741470061497178330791513196622349143432985224758794877376158966778351946934305472832242296020739018294305525202337903142398926631449824487432517354696663163334628706061830370580310739622135621741974819164379021177892563097640298343816459842236206431585275135728195337681340443054693890825338278923074604660554218771659551564803127269564286348177336513735517229501492685188099903712656587308120322743147876822480493138765315194007915904596894665321622819884903978975044240375231214491846696360098954664041622004490364679171284316413665505917294916253902355090985236553560031648325913672829257313530305671364044055960747461280422149026117145232550389392651619691126734301662014359320923933457074516982658215780015410406705993259099212810179155980604737389076279521317925254902481186696294850222644231001983004359489714091796470497219963693192963615215109620288182284139987457157917167963241622202753154060604176755671994506119421215120266883378346605976975571163353918280025268941910466413138468023740602265983735384942364815548443367045336242699565212232614976434029936490680201675826305183950047766353483205603902814933554739207010652902892282925341199283926600414432966751362576165152863395193499540868955531652526314162163735201631172596924375561282440124559734341871138443218449354545703817321696285689949326512375342151684498963877454586450313831854008027612694046667423041630907360181054314778764323574378619162219952724619279294174585886249745060938579588082008133317430504453031710934448673711814398805105912633544906512573530230071914213508519762012590218972500118704532134016508237536959718193863865713846451217908557846554841719923992139324125066569398242966144174751136841769864144901062987092139029702503395107332670182531800117577805347952318930734509806426912091063522839409554148603828088448212942315587025837184924874803801041426490815514896014335554889802400744025354274122626926415942166986279328179882709508650189735686091277767336979378907530180817328183220221947463065935906814788636164026056757431692165532249287946109178778489221590875663125228727556101233058881365887058515794414583253278186514706593852445419308182811776188792331090144565295760682990646116009703915310923260549594356144746262818868213387439403306224454624684700404906428866564473308650178480335612280405874972497441505226198522823864011391655768445498572395066563102631319222763847953775871501636545781054882309172060476289630333573970769142166501157119281553095761318184561591560763479845595819796175170512703527399429624908546679884884941116901440623562871177279971984554020012360844918754270450771469607854833596782358147249913471516882315528397185638252875557394672167758032310424611475566727840725851138786789732343772211140855269618549986295264749006425302552749271839716475113655851367128212996120296530826561852847908619528715401261696636753395629495156843160025394996352550579913960776362946016075378321927647545919548714614831033669937331229597668434854396816281259885376490213063614587870708469749497305866692057902887538299984093902833676746474770852483265240931570769085971023656856615088439450697242532148186107586096150453367404419837092792492188301472721729781862875880616609657353133438845776473867373426940457582934639052412387033371618912508124613664547683186533592986246170745548627643759047573313289392475685958749850528551123162066822480529773030649765830389727542740701503122568498448933308465814401114824351030698123517566431432225418267776481715123862617981538460420570055321674308578589820442481730475041508416272085926393583782279696402540723946861964217282087045683245119309981068333552371701562500444415235037712155654287508819958194839466116735155172603424312098578668108481340515496263056869431749630784304307071482157142783765155105952715328829978300418188994566513220140660009942290134543264644569516431472758997699121358297730535326408608672431029324307119771244740539317869834997221090858124603321918686078720812994392932960661229146081909772850370088273580990551790154520638098352364929464861884387725776965914302226403474766513226269210565430171043413193772926181931066351462156002659775156182660892165902092899066343684547594832041815446402122551206977136688354589595472709645345293056152848261473634057985888889560562385448703802614760905691393554880633106311446581114518682318821841286492831684646237626393904738973218508867063616034950696667165173456927074395660517651559880594221391679814596486118460131045351666846524193953551988344552177398687053624270628690458665925491467180389643101159098311231963454999018695124955990269313531700653838465172173494139127163409455392717603078645694642420285808423085987506324460828246077756346634811704595979951121906844577422466487205523440791172097703417663610619550172879525227409738887438989465703215561070282868868348225876364752181607013883930259164135794855286868720263112957536901671261123894941879649454315242285204036963545861578525351203868346719323071339580299212881924451666044666994447328900467069503095237287013871385714362979502974754824142569332720195218349248132780477223270676455814088277901319506749376320175836262454213581294996444587658748362242307379028241873319279165547079206464914577364339743288935390756987175538596724966526290612749875369477958777453169448450380038873967689172080926696022971822660060269394120751441416553891375044771278365460881439015753985850099294130997392538896772824162895420323329962600806152129868611294294497271391777767012070642576310370604979081542394051484596323247911245847899343207285306915226918192187842356101775678808244910066052297255435228522364910694356424706436133298730098900759470998224506915906531242222381935653855799832952749729487967851019424763597002136967879007544556571339868730990794557222364441804493800929768079223663102485196025859763416856961507706423559271625325600926906244294423734359960933705547025721489370226505864547364911776663917270755214837434212587416516538641336505526159675383518005420912292419909927265206393470358872734635939831980069031839868005996359855897266200929371554729700007759800208536693394786958305535628326795620206531713288986552146983126481789661824589376153570673431089141977187058731464116818866655128797923355240275626487031497679230160456347893914229756925798572575413510268898674445043829721621429451080539602824093617033608203903142183111065000874453520015052597071330549487229621829253224606860809698212038451558246685287114804116653744000145540282790391713512071580063967718108115585866755908327917519922704509192321794891894808512418075121158538354518779596877610559839694741461406907718151928852946843578464971680445641243061239020784618697055218044063761885141864874948426839997480281163867366390635539670605286074555131115606321491227655238860247908073776328022514168566870341763395726386893376004236404808826886624769711652481981260019304277708950500947147886889938187360590088609725049183207594577505397417527675024600976767772120517218943649472167462441589724350862243799248331400331962161197154035317992133950562528043288553650237112371499151272804088856788091460350687453969095998246083729152515926275203485105687130842732493740421749449976213479360336318132289832086164295251420661781174340338230034448406167506097392225280410465032027971017767283002825510329647032862366052318309871539526640198082427069207437576902242507941169691195607340618484728889985151857895833804160728494383530842899052321595837559702837199922378364836021521006725143573342079742521986755144260164238057317332142209632838891087559552082429405743492292147207008790872444680370038027281774058601646151028635393128228187611255514694319276848023894629188630026778339215969891632943637842327358264103722195188258156388656872567605606226313230646645174604257936013587950133384609177994842842049631389512294976472137644849472719535294935192399966908093937348067937764474226383582668119867534466376685654670280683773210403704266370148152651365026103978052914356957906583634280242593551982917591009700737837584007882033881906862916078222263395146527523598359524954043178312893682007346312939226000671965667926798908714662937898895169413871409565356254170206010273694514759054856206320112842313178961874608230742329305351643355953418140694821683267415230487246866867062080673618110491539717313705503775411509574133663022776061824557025964360186236584800307147007359839655077173087551204923437339234908494903458009118586589477236327198426870254236697444530474332409364313087733752108787114002328180109686242926124603089525129518545947463261911727032719091648670638557653927016283497957846156175337230359903289322163277409262330445053748197069667030000923044216874506336666427416473659526729273655267482482668280592732424008497841223090585182017295346732713136431527394996014511951172730199464302502087070986349214165865280331971957269506146413304231885536764766277531297690902082364673677435425190474953399807167750527210518036713410119391960352818715653037166920524547700186558575520811238798635732589143787037935043356982103026884086590636456455402058858814398297086422302836669365983435446390786441001764252427217449948274204729723803022122608631788438154717428842159852090030151550323137970273173601965127416609561414224164301932921776584348806104561527597834465041886482474027985576082975477181346689986169168987131298262670773734886054323667040247324713123737251229262212650763628320182842285589277932692793379357187855469299117855844390395556282497224393161258375924723322262999774102581866976315758901178095016675698993516433053300436349719050077821011009633515154835424137799160321812096011187579797407981674387221208462104761017034386283981540353674307818569343632311942721750404509917967540310563931575467037548646298993584988071769253333754074435889728503662591199588298263798566769272851307195340073109045702235520003984554626101166675501743864868009306728728569547775182938094408416919517909378714436261619127276187788631868540947846945674615459015239449574891860854589379056548329518902347033000956491886894669002592419195556582007610348588881696160385312581307429306904763833262788327586113901548957460813212041229090193987408577744412490697449129400868957519658311578790580258072260599816841890552304403324328201164217098789002579837098185769190404516647352877950697596118527492840625733102285180605967110164897264423613010008915822391201657593415461902131742145906007940989786437482839990158318106441870532812905612005831457540950891786157190224505715889858040781711163434764489975644019939711545277526078496062789678207890536725410547398866267839318958550425522004749468160965387081618750031026975622416899440549906441253113572365005170436876882072682554916649010705534326319247981171155253266029392833461734991624319618401773567280391064719141550739055561709677105571077480862495286530016437701142350122466805051325385185839323303333782991334286082308976137338874689023314824413638648060848638399753037653840100337952398027149040994509720007325119584434360450516692751074835748042382656497948241710637007075858810085198460695457571569345210315847853370626609349730239599234102042044325503114287695240905087465789714214325150050418387664450795445745129208173658379369230816046435102800207207728820408908183428468600354157840651347215090423211870463327588560692459427393344542149379635659554079534822755429719477784044645561663363699917529282776916146181066584363699749139185561909619190626059522468109367439552297826270793909458854587839467291083295997175517300290538549284585018493207295268326595187340357641163731060277875936986626312419280729493886877837350383494470955110874017524985998765504078301957204951501384969634136240596208565403530996160315112116985258769565496026729649661258052675544334733604308257506574906566990405904367566108724599851557379144519336183341721734496164484026431729860227930940462080689404944761928148597629212577752180370810819147902988246416465765519841499398081308353971795921899130741699571857897856549785643191452263306306229492673673951660980425908641848830367382460960403046015236027040630205448496152000155003017330903687091841677984231055778423919485490196836466436356584142676919556563938627240290824234439728496734800517912005797142109790101537375676468634794341990201663256032242322684013594928566969408600730280051619729243221572896479069816772680227646729472282274298210727801521924910030481141027833199644888260936379495227609550029469736348981153079428492991380871708851678902159186964021708495993872613741720210181971117463302171812539171890680571330325322473878218081868665165400069519919784071302948432342346819821329123260764474158290173673851731999522205390522301700027381751103965714479190269189053405144084319218567138187525321534149004378301268585503045786276189542730594685644561853043132825467764540890895941420667468187607785207538466909410138733775121698072089896288790645375007985379654281897937548517937646840218227636807606961587172502814426125471012462892032835296845497274277919120541986559724503694675850378276695764215512530603566464054578274922587284544514937077797552352176889233307480865913446361126994117201910942052979266274117590735249252183023294760800147131562594283053577052346290420163376758852053972579474080660040408644161651749331188617464020568925449063438484737106607028780398346437891218282452720730010965950838861476136222893872524048625686728657603147128572838330374889235104930979813348074785567048622193875075622660936734681621225248129092263424880628659043527842415718660346149803810154521138154337078939940323482439143001654417904518135315796546928152610875621557785385244052350125448329843053136634031830481103019775972932725958628219270309783370018745366663719945954464752510150406945433686955554084124840127140037870221061806565988327105986487595834183884927214113097038734705596228338232571556482826568554263769617996351321329724064126094787331189142076080223540853560459633037253402830299426741310204133807308497301684074704278563521428548060338558332052591107548666311120322449045118353421337297714618637651789315608162340943547637636179240301727873669661695113821595771081183545974577399237701469016845268543786110727855770838570052004293330760048820350946836934700778654073770976532455191542772694058214519842150076971567200678442896820607227358140575727805955541395181919105844253527219247065674742504164872753206734613561391031783342086024450383138070825026183915133560484510410479689230630204988297077057555600104510624438545086695760178223364454782750302581525286308696971534503216821506173453405670510001219778482364840911946741125815754321207583302340767534101446780645013244352007667215658159792678094594426234417178055060269746817188592414292967720384329148748893462343652576188824042169545447116832436317209509495467401513876828701862369030573359973281808386798310277016225263705618444388580990537080543316967291268660680921215201010680003047652649122827176826096769360187423335699117184274244335852439947412580529593981477000175349467236366284630917571012182105537466039281889303433747267465842397554007689275330218588737537250185809078188054452329363564059036734773311887775206860026734542050676356170304254284588425377369852140929897997872784729797109945809721668119316433123597117320360621337974656953277561685209791839179214948499474748173465663418334834824041542137781916411575771722177569968434801532245160198266878398503433173112288957106356406416337768140780187052002032770319891741509853067358811752623951413377906602294884854550419270252488307484625972063817421438044556580208775806198538674210302956484744196133500040026167434319261381656133147913317361533516617685402975149611481274458096213456108652352935861242074263222760907921908915665774249925024104453938912204668723019369725155523788739879246390098499562205933709032449951856306773007674367694666846137368821116604038279177539922127901812897073311058316900642449346543087681658671682783554859402150971263466463043476433383793535728726816118159962314274936728348280123348663194538462562246083726368552063276989484835727415164700542219594724687057285704422947556655326417116814777488723361186779649179339110363880205913157088379005726198716037866766619660378840726019200241491552889080623869230330074872559319997684303480758504885483287133019907589563551908541606340595493755540698150652228738665421174412735687437039419328300197534549784750435119943363471539609640643763981536192379815986836142479574028046354845208955228201012954707254255429564567085987532119159899961775691736457864763508657892483281260420400294425944516704876155684822168574390638963128099529695091735086505395021082485999998233154548316379338487604115138218285171457445738527043897685530757279024977996582651162450513733835158640487236483778267502144641726953723303629472295716722091146977556508746795747735032044580905417964442204385147333899261309269328662737585025988620654833885624450092296377518445471374136940218251272824680457643377850957631467769593955287047563077231200718529516813132318921785601804647178881812266222766473568003529555212958663394211677962333251106298259207778483706367168751837662278524791005632455096401372850247337402008279828347251935439478306340640505934008216295262952310808887990096089393454597491056319092297947142863874282725898148159853805059853138486070958966645485291552303140026710863427174428629031720948201955746946212213903670439707960973522166086924166158244030855818101801505048754797311886783349791798333251737907871212241725467060965078592290795393086452615715186377341056767334124553810446301833462596966368400115960339079623049726603293051749322566987708136313632573817336844092766075917428208821885498763802000901479896326122067557828106749408064383412651600631799219130748152257393635788711726593517105607186271119215731463699525840023670965907687413074063161971853718737984814148264481461788374247445092009250467629146473518982757654268417019923019759858774003017047993536154502748312556939980314944659052190659846917542908351904355474308592116897662833625179556073774270828682662413847540085892112159075202460989267530863451457193597884773450605479002853215414437713896734629876040350540932499213115038051515377096116625475642642700390569990351659082029633892618340052278911516161562874968969374638436144935478769751148543169409041286748467491516116807735034374482609609893165691989923166139579522543431578316429004291423925836477932624754366577356872133312548607348498579404370200784245968797701991554824510391501509868582079388643539766047417706895782463538261553194378587239349343717865320694752376903569778571682876963417211236655012485498257654622221182988855815354198202153064147554931229949232829896918536008902290466310786384156704823393838898422265319346006427178760430804378082657823783434778603115697664764444696028989794264575377496651706042473491948273699993464768917356241269054516685864802701124843946844598951358622859405151447384702250206874596386817955439429823117476717363943404618322910723210995223779523938069976180477261285098956844555527604945333958207755306652787570708210764144723633918170252895839347212284240150313520128001133185258855238597070806378768480920909736106313853361565408779160574493510938293098502345771757800835332773427116928573160077494122507627269561280259424637356615827244341652065541572194969688735911305463571815070825502675002854516936852250608626165460168389401210553085748623970887132708056081881210152651307707559484126604366167139834640128701177257075211361680531292091479438639238776732846117767464611023627378371869058905362438887250330748592995069876542725667520654470206094006920840073398875890982586746454663451322390175022174080811497354614509282456447563333701699080052290987115644232538822424745760510622240885634569457790836319766859979273542871600463996979866918112139347001498480495460521467840840234991764078597673760992723160085810047475936391484181810522710367601380347725102945148108086523098228848497003149390397612153563918525568537964264704402254320516315744656452203747474969495315355079878621906587272865276976152937050229424501145008317386370114417127728559365430456677213795612953542892835244802070396592250022621708373012691170686717971360437868762034222540951588700968138156453850016017091406540905188199171774529782794822419582763353750162126980605332539385559700694214823572270768641276887405064765255220049560339068274817117312105904072674450162793069972091251901067437348344374691490669620894507795198671113702110233457374490684749055421379356861324119294056344640945933758654104711433922430547462023455572227200430397918952735526522731855921592411976625875811697360664058211414114978198107618416574319941942016635681992251199953991376034281221282317987543833294256408432579412229649535582398164516569616963508350353151019055694333767350386052383251808465610492570631255265610347280875766063922160882345248664579584332503513267894830871740536235671307227174234639179772534021246307033130084388843389040201251212553299975287522216402492936017551366464051913427440001745245105700829023928643943180377844415723709719987446122667274329899038840667874681967396281788010601973042779976262172281357753395142058002158496046553143927286771009379139481745093673922309577863363613175925302757066456713347348420408981561242007181706856872886707454852282800574744387997674761616820045993825453897477929683621192609890914567003661004720018989923037243193556060628611221964247502739972994068869869214029416823463516011337210808707070041966709162853017751657702436227207315450311505882160843038485666756862962625846113478858599372664108912715120461662478713794225786236745332388584201171476957744684621666656465443588826891874163632018892411041752453395814160039117455484804425706947344559523591798064518123970751778742119578370733739791503589495919435336313119224568953094936222527138653827433141437302664661366862531308374038896251640790244501885166211308626922110046639691830644817383954886626245940785368434386338165041244080279814189588928644707862935285193199871333218052402935557081449427325258284404648301121679997311814052990308745872007731489471238984250492933835251259926854864313015955683307232263924336549800891757963781375015902968586611420937821137189240418416333041300079955027870278743291707531547520591201062017121357642561260358295109465264276581814520042472506679083927776527162889949126908663807633335043636306009422513781881697860763248499033620583439618754804812061968035930454112492929912303956144436065274725302317225311431658749545134540530420765308625544409918203508421554352552368924141442449797478650867129721737728969409075095216234786444095962378459677024964627556566744801558402761094171904115695389028613382630967995601986301179381657940379014277530783012857811860179189137503168640699013865677648788732513291782022767867605453198396681355356551543801309721062580743564283567838090400390873377691778677877868901983532947050702177961190364696378811272955953585876338594004244683798052705898251029810660697037134466722581399832486257836353141960874155070580536564444667534860646490257148522572867854311502181393699560420872479141957659672756048459675018220738142244092040975943771136100316393899276405592770828619200269462159444638688530998028286659268028169772792583810023980038090042844227565701923694569620073478461083089003731704960193143322649003513879560072221532261388325137246310702567819992341327463992311362159045791654479777449567465275670631630963367893543857679303832320932449648625922983048025831404027857169413982630064423761901495973956989915142714644651272242532970268300466309895616708733755002994532321664170110031250797193340678905349184675890902368542287996630010964448463605337317607993634990396315963390985030810635966790990865067179185175864196668600139290826688514151719179654946235128426316188998585690006134977374328398816937136007523516991568405615884901617995475470369801494308281072224113134061869972066101647860636885213728107548047314494059278150327730894862561342045710888645396328312510453999332916102894150367380364263408752052655723989496475362537894755888138356210753929934335321413757033833613016000289783469876179938187169282174424800239519860207665570111038343232701911256939220767731978109837572402624723266835962917245202664424963680415433805600323182337918682195831928343001460387401442946657006856501472207241434285022303732016162019985635941233326571202264144383955427746693211700927961730922299285648604698919458670117197982179160632864456822056170734991329171443655613353192795975637850808893017871751486461643768764053980262648508085262743959192894973225577211910930900950091762330264412393099475904971807730423279280888146714840032423779329083936197555907586308206703093920693891651772438460321114189479925513972074200944741045833465137479506040182765573045970688944377364618494002769056103352702659046629689968653385712306215709544273974956284342441720307876911321158529326343688198479046057280253820587397326120159780453206569699281928802503347555926761156761249833653715509396446644114896808854108801784212079746020103988756728016322606594543502194930736335656608449455487643379116250591514884309651232379706444579017618495358958308324749999547930440715279867109410217713807983656243528552119924654986324482998844307473667754070430608824516430247626502984408188219441400688411328889773152936661525210049361381347550365866468600478819607667262819240478894664334240544696296402988293254687561836742006973269788993086406008627461709754443633522608991967107414942148456817389483072784382368683981382220721041103256735520595929889972228735734073744814686838321840581716278031667706269090290463829524931085408477154872801885330262755686237552786797147125206801078388127539175194098943104288807061773566841384071431085346131843107392467334465936757168609191812553846458249161223184409938782884756175393277970889028944982885475444480062443153403176824823537838992239499184713557024100557151014633855248728335198846449440825615469946830809096311313633497960839673120507603902076710983771086276648888661758219258011510376226088331093178580740685769085834440284524135763883057920389060436758123097397224624611899096753660233435998547315917877755980886659097942974476256301169383177164940937321111502711316155929890069945433727132611913904650709736719813270474040206071485558365392448257812179752924158705140127822555173226539648891901010205741794461645518796666524080291201030543840490032389305893603028576911846666332698711319407829969547811188735137552363730878034052808643935683496091158791631434708190029415190684200240762102633381857224526806186422511302368733046236330914172493655144642986832696086116449472496201281077065969303829261599206438231537925036118312795578051525447408204397382171810977029127789532267348622422008448832667811230600182371072969732654351552828752834982686424914358747662805855286639795432613327995231236977412540192309408343493695486781785240863896545190530734379607797978630518909141567932752964936610597620262074707876950391559344532979252521566402998178352758039771843470806301536730521514204344017847194255466316513195531078622288113620651453987930217468414468346447904894843333118652973712417753097958403605981468750082781539899724028541734789694297228138891025342012834890397638479651611387020148427979828021335539183054376335216421416583518738326165171560425645689717604358356447769643009397531972378467344208065094422893911668903536256694451582569988713100518114191248392068699654275621874786824560041456724311449970351672869963006301546641203556788490376036701013409831420494525311521154868723873900777147742644864609391253351951281545895656307019199021678010503476411999402821867365342915239402599184122753240370773892312269288619342070812020336754039708618550825052766760984111517562300729337933113911978534985382350954567447703121462149669865819273682946732565351209719108005695794667851536042250971412137700309275463244795018658260195670978500679647062786668159090165234037312246298846979923415468723748206866778977310377006614382678258071029683146022720882753666909444152498664933363394285009823398656881209986955645131674801033772726478850803455867729534692170089259588644384926956045416185045931554176505132419116318657591788229233583329302548459174614482562559669327632913685462712622179240573157216496518711586124652170292064464640021887737880844189820433995604006535527274081311923008364265082357206453090882581217294877495742065512450575705449671098263789289527369060107775548689924858178042516481678318565000314372224284098478427579376811319617251718028811928102482220371166043395670318039818940946476834150079169676454699187707659154543071531046220911343847207285723965337915429322031860911813024495011154600235823942118379833938688445547104966435923420517031419734550069754613190591097752254296075861336506991858396903604355740519578345973049726726304282193602399442071697728993489665352048891872790365350061888373671942041639436130297110920502109579291562752211513439601306466664941427515112141951079600820703985517320813680648433558531950145681259930466667252065639822361234130243170492328727785254302280017967568816499897134800646439519761964069331865892005822376780286589303123817984944131133379107965212408947849671675884253455230717788243585676207358546740641827333272435244578488927606713478610461455785152532170172711154778857812141219909825034079289627050204585110452447039378398444803679168153802288269069627290717273179678983162979951842101913706448394608305010742350185789230450237654099045267881802755313947288230857441305687515381272813086218514125637674729196862966824066673615796860577648391749194881336017740022591080129547965471319410438306014463906638102739803005622354724795718076905373988355633066183115980126608166394776093946100344440805859513429808961789594532860448411005266139246991808824022463296209795730952158438565071068195625090027780477310738235643888631839594839063471409481467498810122691331043331946291725721679019843132751754827348251444155204418639984838013659335858645448469084596665007420042567617954739345752316828923527446416838715259907759004614314201034718445483715246078180659707819655989197745257172661649702853224544820400363929452826112277893819109906404622940733934734348753539767585962244528752497324012473054718980513324367091746034349806820373900649425334569740357439550560788974758582978879034595830153870115374444978325348646078869376094371578961102309149653768960077664450535553515712528111083464697972990533949461451547694632615273996976356923311515586359707771418206537591340493009615889238661744448950990802444164575105584953208134714674559943534304847310590034035253552622728033761799667758097918232307472234576999323849802605242107613841237670305259320501989783328471822417425648271600684370971430876863839136119198359512947931405723469933373448216572269701473208024824887821220060514207699741605550176157309226920468214673777644755485912234395233443570015545789202217086120700587224433279350144693223470007236806559722494590655475060312403944559403675685966921655971400880609427092549437073995027858507862134406143033113131569851903660188235518840264909680521756990867216111592530774351254332050776146748828623596083078568999935366210719017420942891059398480860162626339485790278894823685541717180540277232007454164648851480265720736371604056217660869603854978515478769477228395175320594631012249863612921496102279687619875315149427634381330295604550082485210678135254148946168016435451256732038189563901460837481706043685539373663396139845221141435090003439639122516727995536951082970228593795510256748342113067974800281708596959096224707651412560252938113409426787027190790570712106864744582678195080600524939951982784364668711334437620285600374140691960857155723364741462076235019398445098050005401931317133383630215179958009632589866410085642424348618573793468078254324620903501188357499023939325614782981196947851618349012604770120930962121032676365647992420789027453188137193650720578566150086106828598152858902986147808285242362459414961885158068984262027885583379892128188875579569531684196678765580113729541146793183741687664828881796116088403261151984183381959042925320462641858012627182640714232695605681028381758961129092262575071504544073249538725330611795483866344895821880958883242445002717875761430995142688465056248221958259839054247024008553984496626034263689681834099439738244303020593252525140623308739934704425515125346224902506152000390608125445100580414132281147847716177876526315978236512010734028731050087151928569540216832501587717870518338132411748122880965856936960378920969549907173428299617360177337762899854970486685983536881559469946566524059217616561853181899420218778704349419721216182733896022669679130520811163644825797652307464030077891531592394520022460736743612925856424167542469177777061669760981402388470635756802649205436834338741008212527488261939232093274622603246941203737705322556740232094205459599570103405716790258557568909724433219856888812809314139451335396457317530419928814343635244124162739997388450939720206913107019578620352655013427582779614924722856844773527979673361236408625619855269424234709118864373875649610777155509706571077975384164551511519663091012294626357585726681525732838776428527472940278682882227746485378642082308818163353144267474731885730865346514973609492866925952456704180310570704908514795296348344989488956894384089383592979443416905626516457602264288666609073673097403049303314733413008892908832555029678871727023077846522589443538625116187846521671996791264263815263119748299602247992163540485704569524144354150521801020804773747639346263287063023867959236405491539474703424316798924863741570545073239479895057892871172924706607831412126086902879887125984205452066529685271315066513037351281567100198390886078944699549001778546306660569458857697958329133810086906386954292295872683558467322191017230934149875527221235502413769274529018163345089470699873384134554001534214510996411065163796662547642336708865891343992280460351882556663574014592552144565428628638651191654545275737012350060297304584849900393899764554261011439953705287854459517447806756078590905594634649877154217022801026578770715352689946468697569750255690173944606440795759556226140311556106273278059453417062054979468276013087084301199222562424327140251067947978845619266513414720741040524571748472560100811569463369027641916275491034841532837568314376054559885835513136267460596828611005051575221238251996622662990781097007993055141953265936847945716177066636940821534532552066968231410971314866031702763535553520016600354762650922657266546057035396411854600041969804528552672650117469278406738715686626186574315546978644879765870230082436111242965560181747836539937994312448128307943367480249877710285878392461302753174738223711677571512123870084262703637260805176161744457356283429402702860570942629914965399967427865909762247333180376753762827180081551636184202348877386473452052572465932708266791129705347675733798091149378328488068531950520783590967945569882761534254789542971433911049613050140236719416831822037383622362433470035728813592020356020811542117413085484528435167002758254063330188172662310654020180316893866461995160431144978273153485960478165072448119649870073241239809542152388461556041678917004675962850584692823405802986360215274864018405124051011209678992754168154085834573732588388977861089590452333623589795079150521326812191699535152456474186533967863449960057767925280463295798153964704607928107825927662731721201813457636609181104642877906637408427359614506411342748197861448416647515685660342889931708767673100421674156567460287607997812845950691495077562113225071305893948718896773890997234501214133369614361065893742335805550621106604754865587786831589142384562546588352580928680738238964332833341347612323004191640699903997035935378013669076416944577916086432818524417821513056570248563024668535731787412066633059379242306851162757127244230911113411310429714024415147833268826099199942758919689883826717833318508488398210526170305295931219948762745875864578722761416927483788460725033378536855993241630716529519699158293512056860996913861704223265357865071791639133700078725031461179705688667946888619001817051829343073869794480678585245652195060294911339145687190748342893778225371933277138709552169984431269816268344569689852996188608866047905855462345212317301926696654686755333305857902313304393607723519394989708292844144224822504298735168593108520510754560683288934442115228842306648470999887186595609349374744325313110585431531634224999267643727520584750337108609213101634162673144469067808651796516145007928694792768758785826618854697829556846656116194813054403217080499271779487513887252354698246100469572635658991553587804842098269577770139521565920839405255629021031495693182860328282845138514212646118472478183245464955265026430907427396807977207888156810134715762785000730129660189935189361235156620452377565654006881537952089699752192884640273929698737118049996303863774757239065628621147619638406816497048896966053215037161206554019553836880208690726472480378968296417654787031547152088141366325572717702399242450172628560936288562321756609947861901627780934323400496637712028984004963103323577906986834175314316071837076194514270411842696460968408954555277059331551572012092224728723915334180033676300419455354674635511676477120694295297965212805836382200026328535459167204542645625116970360702644429771733324944448165989585588967783675483933968749734334618848307415763715296362718119192686379232936850027141189572351842665851324493943432544104638398219282856086298834961741623033111275586818796812277467246102915011965634685246967421979628327656005703319657177061819218186845232803065586037496082185164512766981111198772128079128567222008409267803565215962262983524943711226630337471765519767594785046606956911023939566918748755562802060238747791491743172992210428154216593295185955549838345613280084173992444612016900280398807761932606353627860328789154496275893822647585231065894280887280332571158035463941289162334776077568513184762597642031187391010350798018726233713025590772461777957599088265683734001876473580645043625838123371960296069443109438801641164663758914092114464983432755653758227500555289544232084413519095210135159856374826945614746509650173511031562675095591207509663486313861070234700369076936105336333070798025794322283590711005535828581924084459853533098532602451850465334001098548415452906845148630094843168571967903205649707022302512118597191297854475694070225845669589083623687225658709039450857115143651127991461815753978411823052719977333333198188303498463312527546422039389944541928971054185511036561313933832708240156186898012309737765960050214283350561294249059696637689735138104659223914479419357240786254455856104277154446377450748786676333339931025635487990588156923418796893253447954283769600625447359193410677305381583173761758855663483589893009129372390280298039175762841203889401807644276259917241114252219841450477116130314603815399076088415484784879365527103832978048728500545187575051126401006865450146886798348784539262452614501891745975702781684116056854645872335250316943395919412703083855018522550723371755882647817666655754960726464290903472049221218992062404979158459209740769620098151197671414210882069715596421879156520274237759068582662684968556856513855392703756639716937334731454202923624181334315737292650209604652415420696338676206839955852653509105385734925720790685614624713743226405940711423612864249811248228282273490477592801587960627409180772964045398761993198643422119026471532011016241531312143857753219222517037085499706695730242631802618657366661654704359836177259677743731682830661418349431603647301131625587380403970230680877115795257726441877351353232786079459563494105277523338768932431692074689675902637152200440633207399536506360976153665141369387610997403183449906899806702720070880571840794378163000852613855065556196217178758184017794614651763276443711141205875893592386152820883394062832205358705327864004370527003529700128029002304871274457120672698802206653578300936597280853567410286224320310363799115987435240159370973131226460180793038562187973017714715574698669005776805562827279866688960972686610180899665127958808667700157042948512255656071866528555063433519473197930203599168820270455295246440898293412485603270546854546511459238781980700846218543425232891123939467609644319355277521631311512017229564386130338347220271173618208084488886710363794836780343983100812152177713808460129085290580562986621859296250963876212067408051773595320563630874022266467194002675855389365231278050205321343531170191355419707548194607807408504967098179453305577639338188186298265095346317441173432818530392680232578638947717795282894175375452160570412722236020272414930002668572576875061803240564875832063346593733349239297347385769599417439557242381611056672705162842161219874925332054505704164896843260828398442389112930028598325192084134743684242243184206696675395825691826659081591294326618306354453247571441607984444076033495870748250177275986500864162316226428928790369421169955722630291128995950300727481228012455216310652867318434686424919830167564121439355589323717686828845291173552861565410010007891112210033616545646862754058726240178707860535535778734524016806890494658037212411750359555654144267467501852479295429822917524990445249467723351397541177057017562831783712726161713048423619899099544096558546959220288440624313762046956569834245553194884779778714227921788700158154418154007933725891815344955048175522427627605496854687153060527789905232318622235180212436902790692205146848372816894589494143503984095433152965455828511146368342629529157675518999824439883305552676719797643604497679449313480566726548424104882550353708026722206749326213636096907335811913716100521455659591148198631123068652831978406423942321778804964191061432959050516167601924810158469032118771599243724788373933105968952877189042021424787327147427614502908153921322203253552087034321955441478508862457639589531172398493950436353099675359728897576620788657277216318338625941397022151765641083592425643151382513267821615869070887271466772034259199653900722295527625456290587993880171217552790139127770150089546331400023759514658887550753892017956446314605947570301631048680277144578771309728890628752179378308027994039279180596790603606496953667669761381050110042710658101659915193408986066728765279632061044203616327729547468533218277065752833089365027368131932057218187140938113038126288693952169456455730618476701950557913612711425592764155500361243219997311871545179315308499865909704184682491936073605510014640749782910289731305124906188627042166870823074976949913362198011329133155607172885433173164214261686942541897135591779719200185590526146474412874081449949662086142208353767688266514159219833439479274678658601515495429667801684994344015532275995640167153449780765639787400573255749246094069840283205406651023539915092830845365345371957845701223083537143431362042799740265504042908109732085067039279418318769786926974962769914734363320597035428679618512620397087819149207326920217916198082784303745237382198233100948243325541977656673848329642257389341154690065506143061316528041541208903210089357373505652816281716201354506188966625448797187852169202180996816267207638215835862658283650632365652713964177353765618572750909110473036627526886607312920178239401369962308274788849132517387483022652168146571789081664072074785477421517858969568304993455585237315379999356716885425670302251981779799763010044040769956770582216570115186676214091926677873790520884285103099279351531478486940245678445520028677212942739119115711875501638635617831373443813609123238443100292468470941788188988727833367295394846411683333330798299910039562113781349590116689967974737147281868360237356775932403180517056716161911408450073670344408766513615277552394196877974530813184018976703149175669232403610051758237325333297197836187633101806097564534180669064896923846322327123447224517780219986297723032012735977641127040644191676226112085199238873994764649964772760536673978722672202123181517815096522154934048223334658940086830782442083787386551039641954644688907325272161530750753057919091766818611588059600028303444744756821874463659756290404534242386440199304999933550204553181593423398332361421399150031958191131840166928490474429775080141917194101319741377665483062864513686198556668452276854083273052486312491866055015320055226513824858490946849552234922642344297002601002962270798856677716455511384204576314773274257904227776748505197586583031177183844571304392090392154085357142167148208994516272607119735040647108986572964424401082229495261555281029287816482173188302447302738003571679767982079606669700008585126023337395548169550899816065683292614143072444771191196353105183690706449611735624949167231878294009384615484071833840475723095098984126948602843060945941013883934277020139574098543704721144674992871693049281515235845931092122509654562340053432954648403583455738449562059724290633056662395674167711631547883214154989623156090971204396825207719381168711504121047880643679239707279754103474115510454493596131566106092834269921061097697728444950222845604312397329294564494878074093586864240584362049375674439563443706541357253222527439777391932762519647329177577672351262017852670220442822827299081137897542423644029693606778739097057543632851721932048992398057899307864275261339029919527839619917706937645350711577652811127654397921852859813340086965154055386489358373611488466045538576666948918873904682323887558232622949807938845503496847540411624138618951185386071875393960385082052083512186167052958922788526528258531839780451771748141342652193004323178444245255637420077765922370068329759490656796002174910159265150281264755216265517238107478764553617481820423600305836562004728002377823452391859182178100474990930366964283820882084615842566844917947240449992034410238764422342133923515905291614786964041204473259455362124512948793177024649389650579546608971381062780898799883225959982012698608061296467533234001351633903209813678131343250400923912820730373236948517126317384937309128901534964486126913841242346525203429108805719623670455069932006615130100764308950245648779545713424577510942354853568277113498897783451464975997994876429190853292311075499652581370861663533207103381354371805886356661703804644339556600712119750232297745562857974068130927425731681788284169526410977230259307661970489774235558550411986891069438267422079282234761919366547439484473770977205563630548226638049786295218975320833460590196484538582322135722746098244988951162173195086395051666875588807018715806983210224753076687913645490547270942709378634041783906919052072578312105064871359827923900378124020500248503098460350873176030824225894884151978719225836872217780246127913069319219647054574071371043250073440230637433616547461968152399935919403485065465378673524553925796106390694351709163500515271961479088208182670662084932984022938605707521464288548171096909510575607841639569161977273465245081695570473291964225398054356348174740212361595465317728084437150917010811026105392233814159380806892849866531954585883346129017958114598808885749647795048646619024485631373354389847315842299086536511357235171631591886218344455107898756277365821080085330902278552989321110081307133853895933788323515103041813644351535794064805790159711788036395718959635206987178300690024991824946833662619302895435334897780285784512849541389094502713373851394953676171501772369758098670156950712983176072504371615044409931400173832596607210099735936391444350508138240925318235483768196878875043565216079411958010148340476106175290603985106974000017746057567117970928596074092724967805798697147656539673138767534459594528452058569051337866258123430941388231227499603021799289046940952801306407703951071980433306658985018133284930238781000501654812339913888350038230573379852724242997736224356191360481856717974050514277217320346715062627371697330495766046001884172343150402451888840591639701717635950336195316994561702455034690052648990945411992518173718965403150107637219836135515546840720112903188794393902897113773239439640912628882008986683716565707018388330225401465932288701854905131501481738244659951193069369546990291719634445632189660575188073575814177611524427124258362013570817222909964504352197254220539499808948714168344084306152314276802013897189282333359544664955150971857928375785528928737988661392195767066877103350257461256528940981045050993169732312157679461485885350424771819473504550157216154918529133478618000890847816963662490545388629411374545293299138438498891608888610568086021953226471694744515839831452204853955205080918890542709580622500506893537060181029469799900179381211145961644792611192258212586065874798068232521473820265216727192503935630197201240866015924995605525106062089722999967940272739868416876752826877177122039043968123804174685413026431141323049536643295001198073448061595717083068665574291089918498979825350807459679437891661262856559939600099744229106659288120312722534757250485095262600408216977607278319920370496645351912112847578921133088804635009395141376463155132999349825663198811953289352408036145904963597472756862881011463252487983633231015164536391336111019058023543641211794310209994597863757953546638917759578653207643229035552146058610627934693594099583779914212688033784661770909193357075017566208168434090779526326578545686000071810674134904697786022631884339094155010067936573806022153985987807446948853071824215069499466762889201930703152992136623026426370984155510511294626972167265678740510551793762624578395438513697469126696757586692745678294466865426821091322033821068108006902895448333007941305101207296706740306468981282742567487225845056286501832374930873743089185637606644031419196596226899933357145012032882341090691921485847869989272144598055130500629630713837349287883889221165528475596485927968152019318419345158062760043396784272016993987654977195219933706992352819848514923904920800507395790769657277544161307745047217557216054112440342969663312827934319161172574661854654216749512624605679405431476740242319127493128939841690511384427501260186578340050085721319738524853665756906406503643325443137382047533557123041525626129351723568724009833130678342150689601140273087456097105715996538926174099256200165882677675290047654662621274491402853105924818795341739847578723726157527305312412933193528392429672312108087987742282678983845466738420097208099738238690793140732134946905358891546830789830634635108720864868050508836540434918668916494017329687319433791760595819709721266292035420678087575244694763528563403236871338555799792424640339579469300483918111838830099668560839673614094329109047961249348095087672970246351312856776869541624166229717869688360820672848699625616688119196229612044778980523796683745623485528091341031994752631160015368107599505511768785196239250906786243705693231309425658598895600653122399361639867573901301595244682654203778535539103106442201330977642888150431128802557522924739803154514429283078346109230791117182870583677396351229414950092986831791275173904708442466939651870827981771177826133031925436543334252036203763964718059041506468094820888171339925295922809503691240291676020976526837615037042518912123952206058690867564828976647177732505947800661464217343213815250636080218621703973220212029809286759974774750053723981961133089321535914848125370176814470916402679119508520242477959331434514943251083967152173884307424147391970139893510228594615888034976869548229959069634682056166732206079241393736898818135583827732083263329023303994585655390362160552604704409202841512944599146907170903753512131187032997682450411426538592954048322443088865633353284760520444079680606930573710318576286254406511255202224396143868383635708312022231568726729576151993289327989040526126735923785728988695444930343384336368873567534609073923624047292184314286832988051371281005344505129021069897127250572435656200815163921537524010613756551395950866625171732596451486540190539132952260729498978350789310643735668097853946385186001301140804295752523011765793817939453443544589522218209828972517067836460746929464297221963242121092052022546458971637410841501857768898262087648203277588136454750596970901074331744441334743698441287864865657835124506553847814255292572949171487916847127883856987234802120126161773158753404366806617606764920293117686195929325545644919257569585637953853209880370845119730297591909803773819157421953970440721899569689110772728455199574107185736463423924282170442417713215513674685757523201515645742385733985162894017963146268140884646404055927643587339163551376589261195700061055258880762839190359167859799974506891566149953149457386076378612762463312635724867016806558343836650741294514472827891357409806557870451633013005181823702846279872921185267186679809633710937165493772198304912763756531347603362048259418808051983118478873857281214110876883840633241149897181478957602543949243807584287647756734707895335086014633765411163619414870037507366269908173158173388520975687299802632874878564243771890471781413825551032026497804538859897603607789860603987044113009552833882688326580269847606655438709238579492893644993866381528474732019538453364684644092381475551178549468524877780498514819586945461363949696123224577298884269617201529418296066891223893918314038263513562341261233145228899788118275418161556547790081751674366019216413246010614353138651463223271236237453005671538315065534687016654552909688797891201255700541329525083588353909998819918852223097916122307248792750133191346723198187256353768103496948645309437913927101489339366806128511626835962700874430552554678132964566332600946841175135974388128257990638497683555544193101643258726689210096588365490551793357409277873411838821897207012893623018047774483060941548311823798869199879512490184207727588364880030483408029355883657594735802656266388098374152264903190539740725595583144173647497242133546034246388553859460375587277180878781139420734633570150059238961471867755623869327459668575432801425620163167084406690294634221098299492992815567264459782348240770415127997858009167853793977351072700475223663100649264688034078597223146477839117596779806080052262963191467197907900553313427858602376307241379420166762855727951083552099726417777923340953393901472660746035338450711125057656725329466938269249039865419295729870502906082210649522963988691867010342141666852916306645448553456899965055326427563964461374154140199301207439968871816744861338294239020877369163764628009332171443969282977244313479782824079013240399960112096995156015477035459094601556024235246323615551559421297842468421479808247040575601069267321275763631299934161719855872890768176278677776519457110145455569713111306107361468904437257580744417565901902671488175778531106306483062691413303255929188162060854990941930798977778668554698586324344679262294293682179300748941055284175460471375138162675593090463921411960224438264718221477371182341410110961914723052479834981305155313874269262552378671118532201165559917723139567137183070652821995893196365834445599773517253730424755851869839544051103957946880873729990831344989805805848732687302783052008446872531394891894375725477813650464881996250676975653474003834267776909076283091020001919849703543258536328398080106723748474585295633129318710971269776411639236903429008707677228225350507230797567010079749034556306286555699266804244957803338329955365411398290962031715301058016572283915976751151885857356738094432931803363726235487901199882957437899333430550084300714075125052756270593171482125888890580682941854439001464234982986526225664490205531983418315635826599045774675688510977208523213085845802203384870805165383679443398291833269403147675915081447977779004294696576406773180656730681675285516949590621437105173606461370518948620544411049274152003669800230595930032800915292589993705559569482673529219708778318297320495367256251844682078678659275771642433643706437699283234691265111950040101823973200533703519495112408316787237004831681817454830036005294167495337425073191947398033594225899977062511858023692241856670596546437802722608591283861640621620579948584639831314402352984181377061331316975942516056757077497523729532643614773390833430129129111736043412938794838695201471115015573679368212774889073200284108262828109622310444545243516178396320808838811627659850459291494846595329483463558374938052372614032623469712205204202591317220373503143450873442038798396633393721109525340378652671105100597061260569374390298302419087980749809143764359987214928464751907430623311419674078240083772696074295749075870694483920343585897223929422351174014918377494617449408088538652944936508180936895392809557170312100910767745393766504710206745593697551255087298776181441374412340775662652297670072845013991029360992883700574376905581020323494354051421299918846116167935889813769139196085223902060639149012070763253784729586623829161619010927665109211582439266930428126880627090191490526822434263018427059617132239486118850675933720040284528578636303631474900211286256827880615232021291523139123572438544869675357809272853183451177058177005334892565412840753377841707078779907152553675482825568393340110372998896837036438682669029090328182422515087890094607532911981926137081123921327277674090658973931835510755184922650788159136101159412282684300476331335502465890271710862769112434652471805755718835002745752340375844441014775301169585037163325310698576826970870786953679862580475721193432953847195756367259663558209951720425000805911636382566669581672104019738673756513164599297994494492119259003129933658800615263421384432875690466112393090910506905278359099895815461489802031162872370050779065349255251178100294739785111695540335879732700531252963252918578240702483219120409206909868458279836508741509491322371141985381559393008913829690767699436569512780150377180332953965883625678545662122941830433000814911413440810655281019470156226964384392137367666701937445563195804412685225456062065795214795281730047969631853978058839950232911389616312265022265562640043810184318235411590033850273570867194673476555252812824244222297865576774056939660348152202791769994427779090044613653711358530569445048356485036263208891950863883060866675636025499884472995821217829929296458688515843010539912361359991119916741409119424150219446525598608092009925878366902073300848744937930874683322802607758932453722501456689709978354114147559687231339044558067671382640594662730360606097665504142950841873642306162764700563487317005349037121313719237110523675623702417278621387030371332946687886945848991654138629270266455276660908359216094942455706715927459026425245146848799016265369181721026485751271337181992900432187608356215834554420275374907708728748510754188507328123624720335493063498364519890899352508370938615037611505352540707011060774283746999208998009405777221023865065829184193232928800172403703240935330172417630614515915764870866693439591079868462610631972857048077152804599464196797132918367687978674345391898610786619400866291693204593428593107303328966557120580739838187009128760392247589708055346322777992423790034572164828829236866984858388080149884444642121456909238613765991904598375193045900111867890842488443714059960333107519205037146949900601484898214946780216417278771802737237798405788456650232539443591025947803610050624666138642442131895714228714412165431844723053768842045724507283825038128969316298993831481197384577510308460300096719426641269607298761007112299583284154636445700145876195624013212282194869661155721584382339692910815963946592318524431796540677011154545008286471757259706218067574528737033409199797520264338553649134738874854460530012450175270181411088755982524380983552658524038048573252746706574111808092724167904694234938616636239194227017046554776739355729613769645130408492829973460743669373115150912193375525658343313856389287878561687389617810955193481505388953032943208818401539956852071682456692192306469155976310362691330175338775473943652672243364353007507039599675109999471209715130962506436402249206911851209943924426768049101253506670572746875471581576540695756881191031847210782447852773956009250341370452005989740202952965361499222101169898667864920665324450377680336192973134125209310612085304378989396439303564117260017866258402966643344556493329450536901369343166673863245765887195092139191051322945521983907270094112537626719975435947049742797546078508095223280870815600474742185546851325669138608286853134044566336876752698498615919438538515050475063290164078637267180441286787860524132611086393060474701152988213862554350706465657434961532734544620207139489265463934477130108552830701089136957456566603904813604241657491403946588964752109739461954242454059118039789863608785322054697354246028589258016792127597622078516730722892884404258139423808001374994167908958169194290563313617555593540067329847981188037744984075584354866733245249706437091953428423441070844483686082561914002709250612706214331733445220962484349093532827993230059147464144721988609336742921594502294611580746142866930178228281169428473375708821203261247737206907700170935389887043038924615627869963517768812302250754167036376667460102741449248068734008826564535642142853862902488119871827524426925062162007446519376100910236570391097886040455782165540938853789750494023578605168468067492128355876406822236811226772616586972358555809757485920633540475922995966304389636680978169402667821968449919799396507207878970216444087332405691145804337705590288704242262317454076244667705938855760020874199404402950871005184597455230526809810583415981063429189618728483433800988314012223355876041773365279936296598722482600000922012332540063806049028927804783821331905354605283646510581764031886666306558057396942081523623525640216389074622329497400328018428799347977124255907251874662138879152145907515342226018622163825412206433796023433603287306754840197976521001621791320499117544084115521974227113808297423434971357913514283806835819578240704119394405706082644486528883901927667376038764172136213027389852068228492788309623592916717502173601313775206836358025153140716984666168194441070826705715298534375085293618706756524228935354430521671913851746497846332233621463365696685296871968021392675060082241718628768787961057069173112690194009429324586988439578733031370087846093154709626524493291467935086789076811920285849052980707083165514465593656887232510660216586991986113414806212764566202439863300680124534967263691185073583207645570267410740124688947198372339309011917083421670962301619118450593210850047222069242135737609538707037417966054318796706441036767783232135207241107246179849437981603355247874053759043800557653641844225818232592387607138712965843023892685605640776589211024101817479856084458747227597970907890598505292714024890965853888153791223644395148751693076926547649242929955037148841472618445626074003557876233094622681911790092500496110683728841982970989636222203286562285384365895558139923083314787769379411866473536542576093944823844665474750288004491789038081341939872098189148741783604374430928437693960102158587485479923436923320418687509958501399806030095723324954695030076104536169178719144873923718005383753743913536528138907700460687944754584775897757152770027498270310939570950549802112614308087083190863727723761589592410259271240634945873181019858217106831631573343951207755098316092756417863173930252330877123443764239930902969900893828535542304509154262395047433658335190961675040591402142945668536862909083226727832888053731728825795014892803432586379423037174760162944293847094756309664794993360963579641352350751629804636743824648526625807859291079688806482594200715586481005965821760495583671080210525423688080954116675092594560333360523252919444057532324087771841223497319583045158465066724053914891790906663450145860493547511106592269061406874181292406714800457866573518890376681750109698067147978509726749236640138125444284912222373667340092501049378550250014018958696970947406111037016508904520157414462127793755086224846512396641214921564267203455951015960503396934539214879855949039950717045173901525885492160718914205247686748704794783549917295441139501730889726623446588956447977528003756454683823753864785062753719956691465989789272622429534393128582259111250895438971572452350013846923403687960316914952400154978577440827377335021297324291865289750941686440841296716673956148779854963912067875179777279701266977882212900509343056518114056819695419476795825658050525675735128306923755716902343755994245650664736794021574293618636843179875347943826707555624170181916854149608720794706006844554117378324202425623944145050783048838799759105190219729926213710861797793700314834095125638329170311863652973436730109266619221629742317523125051493224636023229006198889901505801660440852980607697686762200422049129443882514815108278269148088381296586493610395480384930143095402011120588301189237226658353727666539386581203672949711483681445490173931325939791619087030076342408454480526812426755971594732544974763830591121562077318620719262321804790473890300285358780953658184868416994871646803945384398627894880994827852300583630638307374479792895408028671736738221002350301781461008338728773933114109808230322836356498888108591178163622811362449757712557395472098391881712941674240033290058013515227179421424728777218493940512697627874873528478993610497207902181721294649786576036468187000102124778864185023056271618418101821627081804532302079712031805529799170221969272794713396141900710668789204607082660686429364918037347692021329793443230681216827058169708326697444030097102403438068720438067599798903380149445883001525074578937623159603815573718670070751145149069242683518289443369518350719579483931147374420246431954201079718126409672578034335729791747179043588050098921456209509075294776607686260945092416271920935918757833787591257765784024131153481389781294479407699139782440677474877004082952747910331018398678969826995476782430639140634082774606534354465221021961668792270065680365423228234215154845124804258912202155382279149292598644980620353910248353078892732707993708577842893484071179279569782429242307723686439335729422589483123594328405620326742354211761853513492015483674513085640050500647645169474392960252514872509261080602835878429721203661588090801583969515576559802733019213080261626070573915624261739221708431223509086546556808784906525105513003621618792504282895541790125300025076436136586723606329973034331073223847476098198427120212888833547694788880728170438515239346747966715915391908531110808921277164125195680717273661341837510377368732586266712805920349088155166063849317341671787293011926896399421070808507399497295002747717204277552676944334442383265516119500830680308003637391994067335035109097852601576306111734892778557149142480406866000286593025871429112502763053105140558307908505999189374654926870503076245008926555864419867323648993311395761728147531081766811289769523361926241806832805267855147369227346098148422367265469864599543333278824242819932807726431182608075357865443711286926976455082801358739910338283855570274611552663687328978472608756078895984482716496155482554025457610298182835283035938411072393983940054096382666993447676747102279411449281229422205891690953593822156154010778816492918590071156555731983123033777079144261772371037538020017559988380088545244380109187273774424851668301148722059040518280878999410781000864793185658285737452126374945182153092283660721662675567645183239466404613604566325200717442152986263828123108800154226822662716583937053822040718647624793713373681363216482840320287861389793103801049360874595401333788693088881815739851437637325760229918655113265022666445170233082939047119935115691270922352460485021745480393512877803778872757743002430219569880874879980445765735114074074231561750471198382484122788274983897862474498507321261004994990531127372705999397733775450822690180502835929545248713403225689818569734666850263238844666336173253219592029154565624302961016165823882159691921227878365610199096937574706708512737382631853154636464769772497448653242250223939641858803963648116370835771806101925649917971554083532365222646686985992451047293731265336407603284947077024696435797034365995393356179085352276154590482793493381026433385203031582678958350576428884655010040381662130998146537402041445316351037474267707004686615270585415941350609879854773272032680039712370182012804956914443384279689311502011706052166791403994179090625807757820390489650658248724210611712614134129492202710091975533184339080970830288473675904068293797678422419998588351292600843719000891412028345026978995362825699615580470903081369478618339147335366970552688201039619498520048255728120287709317541626144193010490241957038918146947699338439299763851290864610782345322172427510726922985096116459608360665673364028993040652323578668146994126229659965594916998929575394406029901618001093898229795668527284682569693241776553498086609296122937263298828792905774031699439455345350660327009433523928101850835259284838116860656575082193284875213865425503739587334705638129266039164407679395068291799633306099278480008068866096087503630603861970800651978124921361422981041022050791549853562642449451033961374246208116307659678699704362871481302104584225873371125907766036797559991239440993413344581094127754130461837371396392152649969554229197838964804955973777392718985674109051020922991567936453888139567183964962851997155523481078891708067668691589388103449704172607953256016313158320580246252838704430156508930900061862417724795613494581928384366308864378087734733663977036212935305052695434140731949296303688650337257214704161089769740129946645564617519888427758748923158456551336399863532491643317076873115131179135513537981380894301596103410513987380341437705619306198927659912017046584643081309987329303692086806966236652596245779184945123849585467963507867658337021557892780254747303396473154103726196697107077414250319437421427781221778291934032200112665788603745504754706100081952885664718346211189520129245033217374149785297523286248983656348125676730498715384134765469877066401931303713105403926851963880775938253779069395144154957292009390723729790186034735907105694604173160596375819643163850070705595444151114009375241805433559533741281471175865033780597771200905006750371049946958334561321964853340911585144318746640035022080494669870315690824559393439544149025836440531893905461550575213247314613014645295965548092748532202376895054310739044702141577644553786830448925919217082334422036412780438672409117967973205809710167798848118639050206541441075798500667454643177568492653104481960202790804996390234228665221027357713243168376280912941645055745470394208017534371249887602949653874667871537367593161430238067357709558107781853523291450545670915847986161251929612824928494297214037632721043522812459666542392300467989081411878144035121001080385190524828413478062566829006829074581085098746225131572063017925306433000055262272443091043406080845381187867993105666346865528849728129581936969223040989147379205421608354568903378445376877281250969277398747928783410524437166342285682111100103023878845308037121374901551252645229892889599485034847602552613552147140209437455613279436307673525846944453984471251298005050283129416158699067256442870234944079859447638557923427426022077668349819152279883026944053419604412972102942284817813232312106222061469337737966812131257732874509063433146791353499725721519224762445170580707570870749923404009602423108087059945650872496383498976064830749968151749589968172717201768582615177954594513897318682084789848264573803094094295362388336153417032309958021723793733303740007739653635741502071289272065746643706226673987896199995996334210951220258091486001513697835350102296456443444475392113248571991037955244622483446762884633204495298181816871340371117303444124109935840842035723089154536698835387749092292900918632606442653578802162147224938609131023045511292870183539811308511322103741333891463066012906450551526653085207859976740840180803841927268250894840258395597990791221163611783063301926991824037331848286379880399975353484005686018784268306081878517931509385525358941956085004553633291515566695480829789152804524170884687193226136761814181148144418011642661309941457166251081767716006373478564206997062422198616444607868776228376808533873203055606919054044157664659223384920830826845344238044524550746061467447665168165529272886607538130504323898215501876968834606599921175648345117540581816271641936706855906119076260397272358142681817200012503542757214873381359850977664456568619870837771943108489883616938862423875118674995270113577556995173081150619262980817201727755762009716906947387165650120129118485797561617529193302494590702562014657997661275111120805277183707040679555036195723659707289918499204444613874035860249534691674670896899508650010606958872921005385056787808929735513448122784742463380753868542174205260042018598203418004024180266686940515226073330407378896689586953067596799490206506612334229134650373655165351835744408276791067607642107261950228544337526872723562494705133461611129873298245779248407323229063005637979839760534084119323906783720639446104247177535883924084757405852364934559180857913409754589587582094953627346830796363737043386517705375319531215253906416551906481408994333069362074362472067514981797701677602031111913336789669999913859296161200931384712496123405052228750370720283996977989200067961689649859366978191189598346834103934414742762289420831142873196190687528348457394502635821100422359919451414518778140188588341458374365314003217575383578553139053016415006211706501902113699994651726471770338158320183770896405016510052453674271479288569410156070855449552655183268874951280481427469646862342152381387950490980035747951981008382759572279093602338393631850885345400180989037967483380386162992635730046071087903798495000857809721950820532868356484482662683058505257464334931921944984115741246618372734319274161062580562826988007173657896438015745930887586913958671113735832544459221964535605092711394575575250929969961972428071508041515240020173605481073825399186774187661190523749727415256027458863596571060148187693669835290091457466581515014614919313967982573583462953630650522585100916154841725373127766388123582804899364749257321512404645724231999312161094428880419983238778085623085794553730151328837404539296981889884525573253223374862897944457820661309779942313435311899889521443068519494696652240653414330082259220158474865198990689273852688587360684172717998814994893023796527647908064174493158883196269234926193793556344586516401029400713038814487851866447298690583792723646433131709948238214097186601351541987342649652486055583525954779024877820528069315312713307417038104679465293538465693160791682701249733266805368343893183321156241221910989712263783512835043656932590576644478292575863661437446455316811915046240973736217022315555220847400888604089884834636848346623778586138316620119442261169859783660752476673284219176420667839202287718668700399144018055758611439477984673959249494308598253879727837178312813162808192684959523533317881802942736188231494469452939542913632825089148387345742831347383565077499363072518085582523550385787114343280288625072835418107234546826430360910866764009178512027277634295055205884504886527412246436951318144355039025377340558851750612015356726590013606049329870342596449739303081349313233883697215105696937889012326375081882134095304446535695920540679561852040295441310223683428499253101338931788157206735909257142301080200847569797945338398381187964009068888160406800097430703135851496297390196734975707507374938575976459263900203802055217797049817680070044942874057115020301355561275035494314155983005933360206234680828547599529856201447896565384541336662245852368706731889248100310477890367801702797456175092011782217811560272971000354032070934881196767164438331551937008303482175781712891867579444629507330169288304444094318230617222590102532608773495948550152091764937210495663296950004456428459956440049862875404241365796724647632804674194382366102619186015108255261315266018840139630194734704020431776990316542308127706720201888797269923122918182384185138379411186996182300923787324258730635755458251407832652380758055844767378420363284241945144997739456215853321590470640867181194971343326070975951764153307280441635936141470647690425931004162145671327781483934222169560369453259236684250872037361067624356580318158532543453927494032859496623657426227014236161194605316836387358703243880216254035708062124260872318944691082161904689653575185233726309742584595563285590846145731875370317019321741476954204328875013067334844947552026848021214817101871567935492563164287560798027915577099694617395064215166166216171299223676226161836105415559886363551893032137726338764920665180262839144927008220342463234147286008609644177600463461320213015790570657198156477355927125882080766263222914158944967675538485349470911067082855139976689448640368126355370043927756767945285782428031032799667928819250718960165900121704921350022065777032992135769786289389078788531278951676375104102442432753937795504952288637389129602341607000588997301016560237507324615011405674458559104374088995877069899637026341282733542102421509033253933284611392043030479679547263141635396217253562421826885050362991165796110909465253687136610375093142299306215989324412293930150584001621514883326916376155420793894847274673592468597335618910099037760950356557761474633253980371044054423051588184328650491758539451804734031173720010245100598533200417528127060303386666592187246246425368773297070455800905791370688790924185224199406542566690521415438292154116584667620487431891826987549681959501989424790783434823949708546871433856463574379886319798192215786218229997038225376035758399365906178926936683950405238904314325074276024984595092251232560406868955296025272409750282864533043208262765654299998243907084367917533309034007225191304174707493551204971195328092417829315114887866879998995006717551822986710812099922809036408066398691308844526591227359731632552849599380132547517780365210008214531105513230674767276661217995387605608756617367351506292538221750961317389308350719336908853206898923979930784802131939294650934830455840952669824834359800631133095075652605490702064971890072592357385298424579214021693795819618911994442042444354269422919926151143121447720884225418357190018743768811005001900836878282053172892785877075491320356139400147719442302225353767441514147727588915137878107679876268264572470687464087652622542154499114853016481016185047658314836069170855365593428588649646802502947408617436572365471895856550496595868623697802112459537925867876854109664976807463462055527517488750494138527674073215061236823680433955773057390407905556559814219734408055106504152424579314526748977106173844861409916264551566438881464654001419197863607334558169004365304354012957299895331077979816165389736456130996016236853243548249516689294496342393699803105137755326444172360029302859564834887018752630151093915468103798013782801724891082837253400718891957802887217414834949775162810138775164069099309910683599750923929706368995261060705379710777482877435582798450613485086779866642409941531913716892254673437572468256836835351774690414825992647528071346944997625127621285013918602600093649139556235473438937373304959804268118413675040518573814584295925556054376944854674635501345144116832511877451703340997162986287053138505769611344536790204294099173733692465649044679045769292212976155336352030607450698698947669971372967379170586013198425999222820105709218274317013694620501955419153407375837277176368511651839367578402362124557979680675321408393344818957002079063588874508089159805793936323555925389250876100799901384149811445275350757178568035605624650005241861099806210721307974170223596002531281032061873918115463286996669771772702997356318428567983543067076819365838472461760594626231831485017386397395983153552085232376466302325018362282344978027295788105550197172151406834875923833933580980238686232346425088438798167949837230811806427330541447051706410547638346174844186282031177584106645170680996721456343242889025359429654602287609473735506471943042950975011728504650550441322554358740825992610772184001341457124445347153780770992422997141578272250642110452024922493874437534588478974657928206199527401495414010743474303949761319495107193005071347485229966572745560444398116964621134388409558674055405696044569734127050909366298948603492666473962560059946593120350203793378032225052544730504083575686042769055507465661618413966402760843473906112407476186444304068691981499322880185536435578789186553147544625013578655109147621549836007629714976137496039367153647356470095806796390643663370938010610934403734834657218160458044764363345350958226371080183448784034908319892361417240688350627024109797501048768961423682587706794612548963930073813574541311122430041566975385877605815113448288009976825992845584507687782837140122105737064617165398861199899125025987093025843476999333524975483261085688912407391716971339884179857151004804382510950845935554197511783774860188067301612901052229827560405076389658896221007509107682598765217130038980226549129771707364768485613828274473662514944537116095519831471303848758458901454727237095686444025189191416329036598752507510082354344178187980271290942644909574400213029435944214695807665463481095643414813829519941721203266824868608023599857906043937029433156880441478291578695028431994500343711674831934561989237015882128436412081476568045999936560476992155806056488219856589421145757767441515568465446903666502364743499668879949525807680709154265859380731085091295693198354081562291046644014378741991469758786660202310295134475139278905030263336708004148819868289703248469605425821564928516518360567446170522244512077014287220319503052362262028294536278989944226997862566393180230519842826803155034658094823112432497312899109816278534254477428866939301844074294617077390807184840862248786204209581801576698693542976026906779295740686846002639934769216895745117178537470820218077496869869128280927268142612830040336005650840474886947993516988913265551801749636798671620433150521351884038379342512535697173054243565360742668300238614626829522963368425956771378609810609292397936547069877393481719568208086232528317752846324582050257984157791197024348013798064489447554673573089097331437005103883640839701390784035873413902319888892380502881205367195935968769458699682331448190802974415582954438023188915288214966653477026372511909361630461676419494539865997569514221589487183958796417615081687270983465311788473808135050881383206708196245008171658544434052535325177517726967435561385009859213557894266653319933265102006478414467939476254525175464040043073725426786219712921272474399758210538653379971520781168362289416073489290785774584233004372900924852225808144148373952042154283045539244745558562825209413626421816142128775698449420071078495029409928034322679451528108207628676565476583990694905553847430050997296584110316454311482541072718743777958106273190584037187873056912589849606261763687072236582523212396461414698769704200449470211811699986874148436550192786673084247210439546363066887600829428882317473997795773878095869106391307140637678732586166851409816329922735164003231488525251770968882609364606398269366925767901409360586144418548613866090419423468822202722024899154794023374513727616663411590726513527854433367365120684080382035019160543534872697252629532920717730566170215174219179162128527854509263176970470433043414286979214169003077500353300653270943736277756325140261766352215984500122913275111557444693228050216769641980098282685534215019020378433446166877998442515491559405343792206442231412619516658300078967857661858456094802228288363647210641208680286001401098101619644396376283386315526625295695566452849122192656856076687644221207725101254369831773341404232067520005578025519237502788453064379951160565838261192767226890278901051070547133579707428202806175663448442846702090390310105360015410629865711787318379499703336402458152304051490181168398723277743480959186916796737780300897486647284833252276600168836628559181282989317193354671485931095879342429817349832356465484315877189860550913670566342823814212476757365395994342306733239816596048672852532987545997545800619967027048903391025496734831442886876465510924170072305617511604727340615312424981497996792556213177000233897009724066553522137476044630396526710880741581215401567523495642998404129950785502408619740759960856432592074469370931479897252122439108108719699055234892656618265479237253551789057717443710539992860781885103126621988205483263632189715265180945406945743032597999800455896874112287492606389517347132816221806139332820472237742914081242380218965318013196905948377378671674561362336500635085142735069725179517001330498326739938399594918407072778340720578148894168321888894852004999688822699789692385884597411247540217791903586904159117456684146760972894114382681979049498045819899845413204115031151733106962432201452301300394487163052351874704247867349101107915075839765122055884520308402670924634024105961681700198424635843720590591538063784191709768438546746423272691507665869733467618089489162525757127712424442875527430460000329082994666012597697351621990694927182431385969204729482577563713198534372436301872432836055036081580414664735271984906154095320637180815091584348712127802755746342330322270534904268232876097230495444285681075744989053159975579736685778141320246289950977556112997447837188682345340383844986131945009321737942000121693373483132006074026240070730290088686092314467135702723381254057970126029249535299226364399932706757457789428595352342670966867942850700075008401799454427425172114140923764003323377821386785055131688889507165260775918064948105059926836713052545221541460917342229622838251562097426024731662057128977012052821935413375551745080026610875603407749792182664233283690952755691964587973123348248274864198499847622816389002589695440386204518624011526452286324196873847986053696032892700335062127071495948055155161387880471248571100176892685731864314393017209248668476016266542996767023519246114258008317182906550600594350566212672978781294938045511134194679875974280786541931828916629995810906764514807490518625885527475650434375328666236772388727278759659049397464420920664998344216866005977252498842485480141087437473956760866966982882719069354397910599922234346126584422129244653487067165289756714067072474626230468624290356697866741694026147699372463706684130373471087087528548863345209488494029698469747350912216205011372619880549704434798696078719955504428606219830519949531390979703392327450736624440929791380576616184188935309109065644463107174611707141149871923284687774280956996782727275808168815254107498535557114081008948647735873850013203004612706267688155582359083398680609689600687586159446613679217267012019238044656694162129648415766346483064957882575848199414043375543856768514303069206362105849097591274665524130996330008807976702573231933160349248271345365622732409985068007230607130161993375388870166308822822871555925567358211252523849872335875534873924530601648384995599442416532764795587765778473535574087830492249681154311759026360874671800225216793110449444874841759446561123261895873087913622001361777153999138830811823006324972512404269965883896922836272510852082835707795315717591609408633189433188798916809211783344181001899485127425007542427602711704163145600105057520582806361946594213034802014404097793222243331027232399722088898069085394906502984495342458396258904561267607219287277958716428269655354388774956042017976357510841279022710538229149528759118487808530497357893983080204462258033016062559625729181919416383652559631998880863917628573058849138427646984065278897192787217788232996696367532497731209832626726705943771453103861929064626210433942064174906274879343976925583757707868171161351394474794578780420113154829461383653852836683016933996114455995936295208612834757582544665914308222629949534191446762065369039852981417463341549818857247861562171600886763437941095515526574513594755313531744517267934746549181374921073866641009218699323383744701185000576240155037750454926987611866285619423049429087785937704994552548286826113589918375980430806609702282433422294309186812437912065664581607083165307212577121147066057294852234329186554236186271968372408344060707898684609603519660041483311331282201119532516739153361159118083650432352714983103039889061822426112179179865117646160237570943568724994039943234632494099116168942994957442898853648995266307258607292478618430853104653128240350868320468981437267360421271953575097644895118062176077180977552276049793842637805266818134417224975416790918745995348321498073296334202759579714793300182134822447513223723952495250551967340789581230219829970692503324870320138838561991299420623057140084236582222628466626170196277681071143847926838597587192861654502510190613835051529270981119213857200143640181430113191161484198010791213227487494974063426063242788206476444846994334070447921226880284613555078649896265102656993538751889463744422383220383580047433585932346963692181518484267892944099146105256650964568744554119763415122021648416123800568373841551699841223791400276347635303508225417955780204791963591608430734733726317804842014899815050496716403588333049518543565130405327324513682599589649553105122069322555080763441810941847445171631651239531676957140347919188858071610791985612238832784014442028182962025392801337930215869190874905188479370026454178282577298790814411015391146142334329847080381518245290946221224075464316766660612159842349350453535761864205347979821526358467662912238277287283330918916336713133996717732028963701476478536680910306216777666797138619781238739083512155889681436205566578488350526356471747306283302966422509258161589786086960033084089425204561872399827958161477206965685048854422274744503547359537666426404922987880396675594719998311166304887229231802655946593318509017665390868728604052998401883993521741768326209157693698199821253608404880614717537702792604127418208826709595299715257319436948299805887661446922944636224857104303906840894368072389844691287650048534870546210680563357081624607863937144591440158827098575868365902054292390694013772831694431283372127340602608739207565027945554766097412942513286203145964486158217424199206652855207719943621664425217121587142671806156708644884530103902087932698603862457678838702317920993057675276388002627897319829869918245890439383255918962096941194365679168384495554118933359971831707796919085136392020124780994894772710808340957488326351566146148876845119889352303533278515315335408119925729979009296678520389220969114671277182672502832922542812300181431636384064204365294742993524770565380743627958796221501747069174745492797352024830372653386382454353918271068551217568390663242251563237715991956268102311928612264436954736078839609275324601731169485374212055458436534848445849036723366757778373747304961071546901837924884161483941045351704158410287979840127216999233972923065601688902598417940218339601542931391411148915938593579639167136386352996904115754016522109839029935152941267809922825220384943857201283243745409264577611541000841033913507812063607023396851246374999766180533587760654687485063715053440160417118974216618318970601157872707164108719956615411728770932179351005994423195189900344702136394078900776862341234661903550985426993659386740732349901942186186628598964029840992191244471032644120885825142679465721373713160620041760619871226553505834937136171590560324768325195878537856511499446803876535537603051913178842285183823138303460215324155282863807932425446446714483507884999928573319379632683969105314256452567860579826221402846302666748411369511677666246356871913540860088262646853245290084632164398187813836202811054046308821718306084512006974483967738373389854150706144565144549827422578385770011484594265126216124165393677247087141937454560126823144308383957518109399448761206328138350309813137266708624524367948396104818748664529391448604908418332928417534183516685946813651445987285557870969948662905876871158783340356497205262635906905368411541397399565366954313050584334695189036786928470230686690286516986363385607233582730575760585889352608989491687814020008753705897733099457212967578278186659602141409755219625543115340108787929651045101493819522621550112684633404939022377222177706573492008492426119982482648828055458939933094241480862169238547829585918192001430674904995095634253359765286121450928028148954943665464063962273010894346272833329010999147063442105306311472413473352044561357583075770248561090348963190141206339606555340180693867130512156703856250771089563331479931930196955877223924291305851502038883744405768468061480816922327175825806386771227269796892992954377738790075167244409055855879781671598111921697163832660569821108989038089179734013593785159160515050576629839352721220634786711900945370866545900189413346905982817990954587866725683561595583400447619023235865256416300947467351622678679532847977370711454514914827303022095198146342734871514428574116623222877483262224816078384093746946282639210084678394129795249941243373809200195650172951331427544117296765470103667356013444161138916999304749384401589269232709802288848917768014552981931907959730670130998427066076288865932799117060528269680320234059574534449566694105768613215039308656061467312658337562368530131802850273999905243060120047493905832708971440163828832820645610146529666717707952618288126829915843648031198781424689503204027810493066958321526655726930638787468159875416631517681102103478094563496263264734480025462592415695689313104896534271994174139934800104716292181338558060084181417942115094951296494711711202714908221135620844342547060636825540715447961411261807526966972007174544114145113351448024311886026742836569738685148743010844892104497885316387273127549789869643917590568604444747351746697934554805246802039961645508052965511235466088208456472138716036308599462248400010809146696739558169708584234523395074107046212843155132845269333579922752515068573166375947217462136510759730171266966828950051997683310438486734012296408935712050746163749186645959174384001925000823113063401523141173672325372838138922630704008573832630361678506180562743594967807379176637936972246859403876856326929873678571219194689014847054023720164330621238662074854916564649155232872138463733470705525928304151020189307819372329062579988941814567048844214285420687964910303214362821501536035305865777657766232745252958439893694194636373203351737486286636605458994597942519171753958421041491890535814398280071269085973207889125887840491456967154321629218192147690002739884098399748677926338214810595930365791226593182747342813892378987565422106447279440257946570852617883944257314762623865675701107254755825886461598316367311864021418628098190947383512100016880885069466397045664667714053961031919628238205228999836052319319487933700442208523536992644768054383432019362561966009790894067024209867237064733928618430655246441458386138638092345821065950547536217922175797450661161395221223978524144071906011688524711758559551605042053743002995831418949483968688443893624014991877017952939615685394137412903736267537911471155722668154641309423466141935852295059028454066255758617052164813471689034612961374562703238461147435469231941161088796112188616150445456768215351351259733537360250864256712456149105728944636548686961534551650071865345117141343214258013602730467093237564385727322266154113365357823272323467797575128104880459988567468523040812532254019053729226828507358716105459443213507147462357852434175316459788186591678104966538222067349378719740173716804138370577155185999827850797806618108594088841440376502796955634194892360885912232301798955889126327494961194344200886249518132296828181948789542310359844083164994021963284074307516569536741721414542759436292946611950640270846361278795612467551158687097096623390436346173957560952733187490920071520149475388110522689289027819007785513623453336495782875329954422412350900411246392391747463860261626163425590385371806587352809014832595528738976348496522070098390466338064211390765486014623234881766999273634466755992099839728105629270846910696074623932589927032592678978150100403419732030437447861620132239287981190189673273119735044201867511986933886486068460515779210093673227351489517363192110693455295462548943727966321743141192810778416611451343019405762703565637163260138601677500701178410212531623424274501134611325289850241681158713263246069704989206989688743507538481975722417354624134360512314816040942611183904081098555810163422261671895192828981856359437679479815055377181483717742311856427188484363806897078561473836541005880872770768542544011623044279738195855357467468577880285832947229518139366488253843038382696496191193896250321114919040253100926614245195246472292225489368380095238445666617848879030225558132492625284730253990478783322563819740619972814807572824266162234205013226565320614920691985471632866128260603463954945523311376516928500412780053482483645137504721767386315489694127259463312651109291219121013008771565820083099603359376287814500272385232072233610580970645101941828957699523801467994755587299281895653027607738505267410087123150834478953999576186941964153690051574761347908699538152881064064456371628539148261257179402366745895046582742205972425767361803646953567258196316690618895942863812310988888976410557458263479339911986083954459041939358710563799213096738959646898118087383525347832304960821866039293940792871947623528471186317514995361356802990240983099042022783061227724477523737731317869701805067185146448643806848064935881798966840481643566639197790361320414363181035081166810001914998093580552826704518025262655140270152367340803923968245081325173559391849090822168074883445528409765762335239836616471570592583859628322887144888484985384845070757488178083697995211781750392281129529618050857922089139349701942944811200550002151484318910430483048153572734292349193881788541241881644339643845446760737370276539981198563530487510039452098040617067508427129737285077049289980479559644019582409975548994739502595607753635885921403455049086237237538354143835456109547943890233830073086078883581820728343144044280155719407322442257229320941172911255904434485150796804069499798251671862907920116160464947676028620364903716488264780502327592381253835157926312009339686063857756153147049900469478837663433841198501428379335113418533373560837535941038401369467474957516357190416177521983708241742764258039363861865857270133103325374249554632500243153421789970370205967051037195981140097391089982613515868890458300231950961660737943778577294643632549273282725847606265705660236804940035632032635325842569888394807551436508305544232126568808434989948271952368064019264821178893891279785285994123873785527300634823645499503010635448269837277089315815284476558448457792235627241121775435217082033353531397355546973791516655474508502574606630238511792165758647269628465612925946000159649696657119421781232728254757517880919654201445258178950222868045651033983673341920911032883451224299671045678331177792583551776266506302586584542271865710616150473720214708838915517327099812847098702920010498807923759485068349245203296166994848582892977319619087503548842308012115395008395607077505856065654886765228854114890890208818290191563613640520629201238110606050467237846171896272023664689490802053737237407493737517658981264472767324546166718712385370184033256389638035743493333358507660275604093502574950385450158331298354820027934228173524611265801658188342289150790307546163743087563441391820544885403950274873217063978971803488963472288294083349166473230304986825415684625231879992550625791817724514216977816360353586149226543457784600897340235483999714266732497267305323957259202109108073319668684136685056666003789174986949097777601280850619150070080817945402978316060112083388961562747625389351815673572609327137046687985078048450863425655824384208631764608802874378713753242539908088256971881209354546573219274613976599346782689278315176087610984061017894902745161413431184472505593604102590028746083956887414493981083749259984567088193691476252882138746052418292258024214691830031849349540894419052707904171636789060035992666593414596284760842883015843760060671333881689154395014475536533871822583458453227836052738494161702326244291947618061755640204135489104247390727396697865174934345799779557204618892106474316758880581405776998961867119215724747858087897069876404285360496693399164134624179189032328891477963506961740379970820666806544266219607089381186834178411998856115419998248422142593627681119241898055519065023945958293827770821884251827084434008779588708057647910887195574815277109320653767071407997733234807427625201174820577113229028800247575335213547656164037177140531083934011390131829547646754838660980622392600144272737669126875874900178373167809687274117637149513695363473174477961323894142277461177331512214497087370340705547355661565043827899399178788957952331529333443113848578924971530773340995920653263571180815979098019694240255112003111055782246562079469803439856340225281597732101568231874870378143264588446690392776430680831364889519557317335509168036950828229121392767198372713795967372856048144987837954815987997185899236557403674255212406343672215229609975733520208969087767544053159913460276982479990357750059365207458539000379982368312851788679847620810134451871058800088537478504740070782651544212757507825324891827337468691398404030205313589639671604896645032871106982300760005416505146000999778742474652771677657194733047048670338604804036671428803907073524871404529903008836718213883135846679624093473283316729812119214951655207814536922524144226565231448203205919025610391283568603008383480040601870411700860576542318147762956550802737476637899053976995173888666376337360131535852714225193293832118345917265108603132539612990842747375035266661509169218930787020369450429723478690059258388512640091007551222729096479181646725724329066211732216855414787373384129744420733515606488374700490720541668115933591463778595942460696504634573597352950761874834715360599786872925833302391098442632841436909549089429189130145081188995034578969310810850717454393194135813916396877261294990342546176782421901234942229594347081167123880326979562834178579340393452759342457235529699185134923322634540906345841221358118616845103006467187047479003618112107772006023141175142363513591371124307780666350432937243172086172106831755053716507376214214128639579498271846177811927830492768181972668078151287060005763406610661167122269484835035410174225049160257129423619895176559984321277379085362301469834946758439730562474744725878183067826000401672583796481375237681863138477860694741367440633955700624348209757344679452358552134170947103761192874471398195699108322825451424424062262688308895012758383933751390189256748836342000656886822798747926274464276705882837679759064531910453157454536940757348516068283392694109556856385143835978272279863792196082050276562322698269150536804957720650699781376793820036203254562893263630024493126004771737159752428308505537009210179503369718060536957224793417318560217633204138759245277104609967294458693683077683232722243884842240041937017440376306049064246711608278956040366797547868822372648485221038014129369148737620293219865514688851572515479875995816187734493503369042979988646626690435123695597714253847204182012125659231643979813442589157955825424927484871369965637443554577065264362026490675194753287933922243869042715695123528384299115302960711702363463688922799185778795343169182019186454872327222370994080963018962063863554057197075460214237206157132945182917157579289464740249185849104490475598186750215657976994640594493350071205902678713645484605406715490304995600662452930348804069113551344766829556504408037251236515099806809633685127849795340932208617098072012639201740616643512338080579731679350869397237506637281189101269222553204956123521950980616171203325764218181183946283962225503488648696117008339454319218928192211220886642662124809653563842551744002309417545869221196101926550417001975131483117210537079195012641709417833011625122668880050432156303896516927895420113649029351356461644574576867564082892724420516324375538694831086477454356072711567669229734902751522417418007063297698670381946478791463754748096976377362339175977483182841995294158020904602172480026182632169414565908680408912865392404963157130908329205165781484162195345581428782921883872917815155112290167074549517277872978678184149439226148741846766270993109867743441089027581515104275288642799255018597999216861857522791049731497133319819283433856727464084746235511946700770082974104399341078662592907942259448875367391975151157590851972054636621633187695111213212401858710514939129606740762942751534022208001653659159670110749857142747685231151671836243287929015190786469379842954838855380305338401459496382158281457317475208443524989116838552798356694430457810239263488315433745605995830766281824944184606789090481887524914244233245639801697283380904559113839039318337408950363934613724994002151114457570947024178907030424379053212822665838143013310905964423459163494964101014463716499388925350761181797491859787938457140264002194409142066758062111159810774611848223348952286012839425882420954286939352265365434585027657394439356878018196803714799310014172431472402276018655684467460317603363455844457875952619422577898641355841889110134128196152877436521102356106099185264785143728777589189928605401605098039021189458959669567166508225768475254540876298163614532541316970602735164387625443650309615224347853370133695310913630954765270149237992969162101173495230803067000050861332883881798514565844525973621826762913637666685809517998433196354831691331923873341639109429154965929553947294035277018803769037845471716976447528883565400567318855270687307085000499413352007069663856732671214700722525616823536466603700387680622416090771971567538130785447022785683058649559577042311790552646445288804865933848291983502567569488511111852471119917645590241485113882813139335829981496895681092628184245388247001563670998377269115881745785441151681376290289929509002085698413113272496461848279773730306269087665631646354794151831336277077605471616849033596057486245388754671334146200738637858011762543982520151395614073778863732886554905250745429880076643250226474969166378042282941556737537319993541893977361774315233160959114728329279052812553759395770796152180273773217374575336395817945789257581359784908686668477519103136595561651743857677738540652176858389444340835366738707999378860635334068518640504151555555214654463154279367044183038167973865452639694514248710374457898149618190633008344876766667532454491994107520267207076523460253534597273498698156005518302292433257324906956004840581570844306943762923077427123917761542805566356227029443616887160947402130653457980302119626953097247424004939344142030300324051485307353783282686041064859942696648015148494368242073364566653443517960102289208270889759083041650959419253975113473492464417881417609970424901765764385808412907174696455986767055920975302947552457061965324773301358986064596218446305148940168999792170854219052030752284365849084414466222366262037463391379540477853765797449570086680154456770751464615112291012074126014067185986224762294276022091103250029936592459695738502169051067866813402496339258974848115240911334415394913298590555815598896941806534282652359811586114969784075125703265152625928654079628758809745751197477969375959369451385140221573783867086135044550961414579716074435923693600987949106190384805170709893706813477146365781300002735230226485991837513313663576389042309425018613961087476855118653596679490423362720469829076386455535728945281615523592805845883419943324175971902422154448725452223594023215663644296226366666172496873816596364692316809184414061663620221334620990259181381324004512066806187353852349777860153626980807535098802489743482606023022940702579560676395235538627334154004914116428754126910734693625187571760586432373121595365797307375170080761300093366420363880913734462989066805602235849213254126075704343400716398737522339060312492321123421295991639810286101006405272060040401649945401399854802122956602110976529331718145189341425372421426963138674175759553978234592913206956230748471771579978162306409222335439855107471423989880803516917999078363166554931321749456920811776774987565390826008620217156565758788310801244691711174401271408538535918906083141996246884807103011582412214032524085773091874624727121586373342065855073543267439013786149074136123487698637537767464924800012843045166720061891942497177375571401360484246684122903037846310031982475198861383597004623391688384456173431836039844284690694860045638714853170274756405459439154306049987476181447770946484355948702514283389580321949757301926227421472243674304889733419639935715691769714847625302861745945144646140759959929536336428379192748137191352074301496107917633128157849835446681121607023886068135794351063575510307703127758293431465832888286268049220875555415890823884720078539561604907205225433210021123645514664225779843112070997085405802952399380584922452837929702984871654388228628389644575483161656484221376734783434934001249763572786190715178596065067135958776706448264898977514538902682546864830980659583711081776956733044136334466039169231119986769885593113587823905099274194314835384421360628986016962451556456231035970301708037792720629507561925531341741501520650253969097049482544375530321793035952248798419912521379956134522970752443778095701338829199353246089527079038675540251822041845992379108246419156381364065949419266535455014701571491655651974419936555627902890648554344912257459931620258683835657754696873122196232374054741983089638901714705207893915144263848850971853960729794121581224023398300781618430088966708878135377367438506712700390574835150680244015500203470569806754855844205694433748965784742868307254088828641580143828782955571344445772940518025302535206961575015763523899513134988037191139940031194764488978553841874074068074876109253482187853958036533885471062544286935389034307486063436300298341271384094472698041749574232264631856890376229565052596476953420462905101204148390189491003139123769892060626382353215262382288738741625781319193530687195897468481844939013229300648244411025857634329417647785111230565817310918917556082352151925971513560283723186164330592312233577415671489194117332167290712215357980086862195147212375666413026174745662972209072333004037683343589539314280136384821921313158800096007602426951145884490834272848745641821078941724232496053594029294152250530753153336277397566138403856658577381580644542504541423737706116726683431665012208746558796132589067118328835156227808291567911076815584783599310485848137679902883071883715160891091356294835693892247350356154984302988127783013145998621090618763240157648925814691446845795964828276127373160286465321650986276230195218806641020690028908346288225608723656918078766504843809460470377800495736059849519620216759536844021160386562376609962477196445451695032884875302883310144688264775784473631576246323121509791030586758790850312325909415474447453798017884157927966596626198298542016186056048931684129571781248126268336069734316849083118186401882309132186112147829216942516383074811644185917943085016348416678873363602597492432295992173688768786017864471806246629249340595339779913537242696802952379208129510824524692411737236373897256376197688053877286570131682299157989642802341327917067526121305468628004425768810805384951721045941902236843632318009223696615939624447067713154382747983174707481893941747802153484478982904948710526659295821194747429968378413550074076935371128885030997535521021888325628296926731034242156440170929252486589583963505580447264307532503259981234468909240884441000659508348774574739730723658989686119868672923893427049620842032855245768295475662795256815267151355025408600414874444775056007779471243717503990179705823366799361180798645149262601476270155095892562230273886726175166000939584066914878700207261931333546404925101224986136450479096773218345420627099729472232675213987459289939775586130292909965285812948842265783091041748943570091260260302721080877065325449732564685900270114551516047218122158140600315806554635316278396847177800013783716824956498456745843229882400702588658805188027709965449284406354684540690678379139786410771425956587249449405954342583620100963935308866405979360334795161012624615955466376296594695106827994273287018918698050448838245872158033395385914585145009319445125489145613846892043425045880608859819046942535456755026736672643206148044220952131081840693638917547043319245419759173721151436495436894569149272575267878124439919255264109770016402928759943821730802426335873426555758394226290934061816903078503785548679413104909271929091799340223043911119695246632410078362704338443869135774817544517866580643952314652799879879241227726118858333581185454019047431564095017907343285858521224511963745263436936014923537238828436772595336826739163380652033282174842751756872691342283320768722390578889098394419702632129487231982553495715353332129522333332051347067200011491469066658685584077922543733855590194090571049440941175827932189671764051466415811734387754738059924010613016661439217242181408364042534052929951198976631425329498158964011715082973220695619472469086480762830039778942444969680031829297286089519818067403000401660148415329701038638984605751940036681296677764734100651491671586560390730597691718917537525304816979377403257575106402163829907264111029493938348574295801813075049097090400681798727785636365540774688719693858005036269247165186834892365496303911014065856763881179141527374565125197815170213238322911184915675193814751105056709806991554075799780923615753775859966704979304394575107806203658522580795778464802461636632204063885992113972702816765740719501462075751991442104057741182228804569703175891101493865756115215278375281816592228512883446563706490178967105249036898290364410709976652234462785338557620074435572837911143444720833379364483789594725925373351215711736297065736259335771078499769480111982601553955712438540667881431055600793584354728905213281207032934944650489127339388341466837212000016424394100722692126926801577227895280476091306727407569801173874686818580076734748858556882903432116325455555855344393945276768081883718534577397494239628844833516830851785543946696132675737065470013608706126371839565939643432546332964105712815489670596264289274141137820374845079828587831026480094943559456719910478404920093941437392383221914232490346028014784843352566352012358552263038154774812170896110090087935480987435088903428548358427591188410939286831633782362302890189861422284296904229538275874330374520144200948983127144089802586016330922220885131698168023033697740174594583361967665431141485174082108249242045946344231594462484516077916567010704098403046409842861142039680913372325223366495177330260717639690013589483328004727694282095322927308590883003701683422970581048193221059881597135878878351119756520687839315404619644669350640591577182769530492800381908976757418428599137128495196068968893963062025371363559422615193560630893058062646621412497701356697879818658013960225990738559149076557705031036373234731695974377081518390832470170473824898819848417332030995154252813139355315030820192862841948087437050432737502004028286729601832628590979985408406903307780372416365384961617651776521864458653864588877122363563330094265690035723118759784346264008158616249511720196776976934845345277106819932438473110423235299351335956241828263470109128585559035352514046656040116835160146356162032188258049097042487359705305864667720747096099495444590011179835128869007554378017652743312337998416580371548573122344283141038627546953594021176176479771524499431148576053296078106207576924775406502485231969344699193162951301968338106026299388759027046367070554992912494965133363914066767492554723153557743867533352856743106278730178547973183132348541056237227047161472743673341125862107891788714429849156342989682106899515704937434430267976019554969850252467946060764165698908320009599835277457132002078995478530668131231449277037278292230354377280759322846737683535151035570234730280720221654071340440838242239398396928165131957163127823935380067286422695885597644862212002629871918977441865792636144254000716767731952208155103373350779279840231080977256560966508373779771457579400517215339138487524713920911672407541276970895391287839961262489058755713348215831640440286677913521773153851642632439111914210671359591950176048229180582686827637323656744370854408389735486720604793115065917569639241675931638757914319744370833279553408883998108531746000100169285446668689448323021496265248652879309978436208089117092252400287030201194179384017101768436141367727762380554570217760936709414178643565487708818755732356179616544265752764888360324482899131361771929795856525587391062235754558945410945152742443189843958558676168473709223210248837788404039425793544990459116576021868434762817730533742763980595119147158417575201319363388262205448393163111373572537354599993957106802347161226718462819891995694092873431831178189021099126319600599272373415529493024491202010530459369032339976533781830414359131825099586245131678730132054038885603330137352444533147020687572653588876029122352733997890502038485918439916364933244770684362790851144776778995753549221167610925562409310462509010014826646468948781626430944068462002301694414088070532383567088516990524111940417970574850285962698051864866896430877424911272751327526266025165014557149610034866190817826000511527839862964767246926670336083135997181598347847058022994285130870073509999599926672427068405217725055340968398433419753516895007161451202313288192755539723168309186378166621011248383242600712692134194765502400413576807210298075408437310095818859584810752512656994054122574099364167397843657487846204609424852386013327132430301792187680968806447626962852482342751332768499346128552755865386615846489142858708634495445497722599288947152184005904059899368463339462027825063232461827638477453610173508122428470765775035844665972390900291006526691954186363644040608415120860949199490742306584936829515667037151992575610666783522644563565521477854859301956480256508704033613054158244101313845695892579667710623686748346736696233824471619400151805244914680260673515946936093570799522641778065655485226597525494576917088391786176318393221948452176128377390633156032910294813096013242590352237686293631601997820572108220560999199187727440712168588690136755424823058392853553461047688682304745027543607936075796040941004957275835122134301235501174000392300482045676452400363239294028905392300372556946799664894916698234400703551645542074517960786121492882677235700258038306632313245596629143971507408293882060146852630964405763644240178931247506331924648295959707854726431800890717130823216994371903910561350758519708796151020521934361522993794563732665385119169339342275949148628573266115974466936208956966792870670014165405749495564617650361438267989090959210368121932320242705697044932409550376144164446539620502260000152097921215136143766556274357722628642002468626034096246030572384966811533068819715295905481060665917797451740933028745851102345766654054998534533186277867114582539834973361781092384801623992936800871830524833473705100239775439670207255283217688572944337936341800963054822099517001093402043884015529135091127288548978203850692487754596575993322302926613855561153930338321460638466232224109792561547436767098934940792590143203473820967701547605878640337846358086262250632689114273121797119227138963114930824764876074395397942204336008377946714079546248771757584931205402080222588824412100088021283445508027789111681589538781145217280605614973477955746726918645015744082668228924322062848992898855265554582067805621218132091419420116209377070268026422513705747341510498710687409032984340723377405792331727675746812539546761602690702893715838960727573917493676043091455921940887148939111222549731911686744223831236999512025431767797944237278455196053493407371794139297941919638704351606071995453043223924766552625399028030996391130890959029019682655749689714815683115035969273554823629320039057273548025619488733889697198186353734922612296858369424484913436711806450136388154681231221419341236361377306221480829573712285770260849075907678530806433328724324905887819646011945862833277456522635205472975697057587770067508238120782940163051331820196657210256473349256072676306717455260441911220411129409065683231591143048056297785634278669031498192325366578386213275374626472437930604315542925895376866842421882333647635120366962591813220835812043563701875951357113546974960856139947561643277261220416472230485170974539175240350465340899902184850246198593906274078268407574688950290549431320155634758569365210925393269111302708776609913130067488865812479884683214946463922610841722906005635088607750158063646230859335221077308388007443357586244954948940972607564014720984720038418327633309794513008474929813491728177354557690323102231556338564328990316287937068117919626383422918672887373426168166402719839822201230460746466987179477556999611836869452847738610714556522390950233842610070379447171053391235793946534387589545030807168149203863968443918281183444054144400869860591574707922003733523783605532292725695946046179849659796467610221433904147818985713378997958825452378471293753982019916945124996115196975307229275472987537298201821415849274473073933844576491758503760103579202369140140205579270783844513859082603900444580368979913424220052378287501269529054408835241369179485687601815119550529373354025344902013518416470254864620206857522476795040364099586438393195606839776021670358091497543596353229677428204390243398057984616955151785525436636788213362481326151878204080943996539571138220631094032466973941533806389072775222822625438405121182664590454628953524933224356581070030383068157040274361677419610501142040156073963475047544945021511176364079674479945368404476924576171457139177686146363443676663541626045847583009629342867002118994110885158999003829711318387081716655359545293554016387456293090846807742220556979227119540396851558116065782541254263339662878378514392304428049279870528473378665124031925645309421372226844119141153934712083178898632260696131597489432358475354868924584875736507288324406923224689386851285080267792695430928330167001600273384323763306952670898866237999227479257955387255320041813237451257147627030601313412972192833595439968237590381876598210963163430611793602663669833723355697544461252564125146014786536327037674111435257797831236511389919930675898118448849893382105156512065751858584761839835854942918237989269065544395680311873431982827760749888356625048213214247408784259898055809133168256598775266344519460602261010462768161215281619157645765386400296390879546215950831176684783674314094107590162828153237473660670796644834918587539617189826503883231580647370469744120526837466461773106343192393809951373074733803618998454906775383269951843381569311498215187033956664156751209105196337674879491343005609367175877820072837725205079767781853222980930686507132030340342345152278923993761379306238975127219831412349609047976752840784316647393954198469219172825423859406346836052524593835971349260864440853836553724921454445104897929410464581581487462392393769055847209217544248291281748025551895354949292423211672782118518012861437282412919797575580840672691556902099164664713965350296997862275313585060211800593592467382390780374465461463021756569895531289436823654363349229681027138165003822820325602612916529762933070449217915369802375343220005926204861650137686814450503094355242283950291733367157932085401395980287983214641619888880522337424868289384805611257739118846656301663203762594163776820769270505449833162442039085638455277971301242583600902287549545024196099592875282629304656392180812282043804160599882545454547440233689046969968112233391466060888006374671197222843588471221758207042075662986879657606501559522123171026928571468468216646840244948304782645682524692643603609616289392602339093142401411201636477968254657013426862486187434786594201829208646489960158096885492057849842901067032319268391149898355556489337178315615987229550390736756950201748686262557495748576113434794384757634801240806330039966130434418533738466293013450795159041279909936828000718801202198487970405330705427228651886406519736621718803633782176114900726765552681720059383935689958221622019560354092383549585078919255438791527106001908607748687096587593273152795526887770754200297344907061171561424868660676207350045060102569232162124016892755002354923028146428276884056458928230133513345698292514658450112377110122634163721527964297375336645228336369724852969425294668221906495615568931649565683325553365525789034094675421938001615560864745975522376576591582751412364621546649666487681306077995568446349745715320737878488692484564005127568642814635344616763545949122117308889055164034448373050089004752626069531276398927225930027328499874750436785536591576020968717817649533823196887988807056074417407029970342805395262113841977664687918022265861953148304498033485812291404442155888578914760631773049481057496292544315145219233838019061185047590661550091463623554660013524459117608430755631186187724193935111462141337038363958890136836780211682424219617334639196546447606002603797010116640234741070276004723087394794682448002415834739570341686236288955993438047080349354033531655270022729514673929401183837288711886730976281607672613151798335870824361981300185941747702036994000943278808054131452203352331361477098194805373348353319372974182698761434752925849891103614807734067958092388379042918937290623844958942418920241784784199880065924443114650728605257474609045672200756729732367960851099182946088438580045251190010253109785643747127598265486627536241440830182652751397348728370343241826673971958235565641028280753292432181196937830459851300200697944675638709178825708176788251482344161515300258261614573033125383556243779711114341226013583251052737142002403849375571324335595081139315476276018925277472202041164889769812574041953890429749553384777257573879724529882873966012635717702353140935647814245046122923916167545867151239865186814729780450175608156500462091240551770833219965940373139312968850240548765027669818151443628010534241249259882928765993129577717533291274251607208836051267940501571090652554942325500525680777604800880214941566120414420931033992664076404272226671383720000171096467772348556170728100312576459958282351280336630716083423617570967781744961525521360552583776669716546642600384048633076273254225709139097719828784757553408523068720380449569312844237921377468897779383058863896178890250323979485289280280964016680141521250609674699696671950828888296116568217653002909571291684411683585334871819952383028664654903361049513522998571534574185177629055437403842922147580781464892383180840746872514359202987737114727605626242127249100003726313884119958264152445468542542586455534272952519245191088113295958575235980697753812328777911094713139639316558202314134022520378141761125862670115282473611934143522735479707648301847449708549219706845870123814415541580763497324237132727631544008238023388449963394812983425908028892876643461906606451061373614085591828801175905744456732513640384288108660002557949944648217006330233700044468196992100834876220494011898578192252711920690306211745531329742354432205765497897426431769478955881762380503075426667168689647130840375692569793740215335727748462269941721130137683850108210658722557776024812343328006022214634242580498389193119805164705709827709190063914091623677674298964719263504728188494294047342259229696278957935073424912787391048865216876071023581934095303623801141958972639925290939468684366301809581821260187764768973329188450543110016035588532796483165575034588118159971326948865941367127869135436857583961037375630568146635245588427125638397667775341637854396232789611790901444957565131682076905411371296736416149829429047568357938366432695034778451152938429480725846082617812956637409883786598157922181750820432645458961534267213294013495090173254795178083503826596711902026538312875555110249726136915172861026156809502552624420655416809387563298025936312651159038018191785759755474117911648571676957095639965086891136551307881029246532442425165883509436251205737912386223315284452203443495170129181766578821428089276110900095575228657665794376265734323313804977243852866595273275414813007925893524854327994232828721190244464681417161871412522882969060036490592180657356548414031009637205877126094605803543385280944598347697131998882415385926935543706789640039734324460402042226264840299939520829907529288856562278021309301094207082462323140602283879507082037570281824105798423603027597629550267576330904532024455640617878173072679716659795190199443663237286697769597380610237762036329893580648238718812808338308482853095911474174247878199294643894616894664721425458341901605598006403877500163230441096581016716238911215071602908417789679394757981954028726852583790120380210039568316626449275973867633108401106619316077689927398273780146006971808875867792276300666144872951990717470976577516868739753626242205452542442469462358044094102883295882652658725821127867997575269199015062394347799472176032277348169307939106099760756579218678257590384388316110342167110659173684136019853332338967417700468566906998741462168830479782383800574715967147096016866512413153128040794828445559443057454399734900139061312817101369995806023445077509795174870406297216596042445533433312505958175640028833770346303426587004392435434594830062087258618114776923478507361667839165759140434607687322613358764729856563389136226572411029506839335884538130802477769884385718976736443721200079197681139429175579065330589902127806870314798878703705984288841700628182788966703844394306006745169110705605604861183161139914341243714731623360556665459732870719039426824344894582679489585588109941671709078429490474645078182265907432358184311841224070411489774230590863648192757480741254940847946086329400824267767874003974873243547548584822168044973325249552159029389899084130707465199074575673802869302927599269132166582337660231960156550503632030285512378168362288243696585867980944529048436757185456761187514653048813657300042657499985713684419881778385306186662205901727596863584485158783845851085389296534677676655869146178392176775240618051308467593672237730481107088759066678494152354242485259683799082464052036008877720534982078485144440468614609913300279049985389491487349401229547425899508901918971480691305597895110403297911309059929699112457945539515070492713385409106272597937151221386415138336119710863827747343255561039725267891721900339248190560538621442134989777065734233131545436512192795252717644647864077513093447612634044796438604472421194706567156208693550587807362833848357419376284668833227238637854424881142663685700399610248188343288795713964177270151459374749090569809036378985038733919032605241750947317039794334175419256842482734277035401978723873399753865843755972965812832148960167121069975254194022826084571249011634211039155846231037078415555251446290099550423197458803180914250831837363027193731157332979730958047557150219938447558042867349514823271409761361416911043887797909758350660117057415688110117638777246420770179229235233648637367773561755243496388374602723629917640780895645704664139934671137723495391661861614859153642513981727405586188058407583832860535412120395355326318294723557872688335654850356801510385611645396036707662426088933348305337670659721118755932851029830473688254918002771002557219347564150839045992462380665776810465670262680155036087665927396124386630379010897930367558679577729215437355021539722904908663566562829173795115791084034381730330680397404448023118327927726535064454970288289294456808816938690984511604859583755135390582493620428240702746048266402887336201829823231830923588857884778550998988751235949710729191530986234336711821890531545831927449731302376478268189778847639959513663119791118007179787804929498441149219099619681691637117613421135231230497383876335476309506479347452614645494738812195304909891173003777869467487903746017246011269146469775824324504449733159447834162267315830262191311109140239197734369080383870079159123317531794765975500396348621529830671850069706777806039358727585760476330826214711359808814298623262562487955157882563564614303557838703948082513245782842395952828332785680940341257809189254803077157989593768338606054808603544792016439024926694115120673537698568209040678442974782611833668730016049433944548823231875293018785831050373205993828224261284019942574727178211908319356008560012525649793395815508820913715849814945320851029051020961454752931206941570305771391124857151422829091549550934590698759112552184093458647644671591416124368614632704423297143831453923664610037009132937445041155442908977301453716423876793264761412106111542884667381877087165016682863518650093567808425985198245965146496112528677375968229040826699812048210961664940335726912819341520550933004112132412673060358593212628939578960358518012135225177135704717477990511641157794950061953917606004043374100104735935427984469030616604768913572285280992624854248772733774512278748389391639021752028338361219369116035434981112380185775036176287473302764542505344642582421008409265119347111376149063643276214791802482111684907278502668827778737097070219858621934699300770679557739536434923663060199420519396027915036180999586782558772299493085896414956530852897882824498342030688313713205306821449324649913715425249563034908705572235780227751755864012236783829789840664341137698265715171928002209576385261009803831404764242324712961710584613819953731786589096340261940165713342113171821696320342758885258909851093778156192139065226812443341633217267862201732066974388873755172674775393513441398319246262188431298021086100532883406896823609315163269145449655891153633563863145353234192456107879973417807570464591690884669217748947188468982557626858698768848057978271280084489476780055491741429063901935263230985662385044738346200455890797111163985162049924555543998043291218656851436450761236907229152412531661431700355814783915345980767611257751761930359348492885509768149843421319732472710702933344180983743502953978089335144094460265513156245964314023993489729472336439399016353773613904638132640395777817506571659905382459426117790534605323376416705936623906558985633224871662515942374671750900808495056026478016118956140761063574679283146981777896625033638696082433474486542350565354321926513537929318919108289484516802794580402903967510044922232561105110038406737021457612393155992663668739529853066054503602830402128400005069871644703902680771229494719137149948217173887946814479820196160831020046047291891343166141048200855630927736633665452148103251411257134217789963666745260788831682869991866707033446946531753104132905779205534755774418570851850957614221280781984243980272109994445823297129311622251344014769961340925061610046948998124726095498382830793669743724199839506976826578581220507772011342034578184263357226565488976329666418521830298275343386900204779224655625955909509046288230101555273775859970586738458917075600279556967582655116157919313327162779954529537812600382494869977857258802775085639935711726411295883781466465051124961828073879763237308207486368784738276022174784310025453531919969229503638222598536406243806127935644556927394441002323914753047089082482887705992595192420866643757419535140241437717221781000614421979473758102396051808239149095470359800489768558645051064021767485251835775729223042062445405482284131811533712660942870214233309272627919567496486726836276107932353120131259930630373225171787626705223254824422376114473202926630230923820252923330693838918995269941719884304471757526712700581072010002970886763945177968683174936061684754378759398267018631599448082250923026790243650689077727468084383360372925006501930545004238395371725951329515592635341180665137532131233239630909258770996459471866751147923404102877482687755787628002331648126900441578726431753590229471810252297768338613725116664117329989648129833763634749195619258479151900725536562942995169372328761119298587867897293428158267277120975302372655578566776866344219427030664187569812959813792233815175865005660122946498426078092451876701897520326422415890516250330956035863428034056064611238666176918481838630994892186827898214551244303857988749216852005713289235341951817130229076671984158595224972373290509095293332872089921724812094191489343951994665803158887243132027463211583342894139295146139100107735146820490077090069918032122850987751350770809357888162915138960919511774216478597725133366943688308819148824734708944344512821555437978106607394249917033320999389780752826631863864384978636630107316574478551951341746951701204874369062875350123193588882216317084452038981637540113306562897027020778643527525433831529381844857627199464996016460629392893839508758311641092031694488633940349465492856313514216691368620145768743056001922216145806987009905816905714067248563998202165571440291375117495827308662681275345917500013275960127775877613143983597481585925196202050633362525473497462481146763659650400254642485864920057932157697027477581223374708997159020405817406927645794728428835029878212858335959380784855226214919985417013347177979811938718791164894026280718452512609261652631709242117822406745164253183814532315883288264660750908930567150619635116357863135135911881482140062022131141363156757539700169787525049041743252342340269416563972611637947199136274838992614720015364106397483251050698425300078209174261055286638252995298910846959807286072695948368754864935224013173621846242001499655941947919713876505145467435198350019577904858614844133905956750731513925139195367619443811664221899261461077621846503740233080321959919049359397345872499465707347357620972389578310060912762631651399840691855412087135505703604183780484346675488779261230079587154204449742145669870612680094686911579837474264949569566619929200217385048262808583069250415912330945424179777685940640646039801557086603551084955859037254978266571324445688721465179630835477156972934759246024477442087609347576403191230058210038781570083073198924458737627932295581834997555555714127096928518351852335249536551604060379175395488087770986347990588336282414492933122311666757280899546502290779658063211027796137038601683456173008361863318569390535049942806819183957976749362899870106420083149010178095974358366126861433050712506995348952710950923030251414108700141175400785495247936939652990646509822304826930542427991250049509034651743831636165907624982282884454226829466900114405935135682213227529138163598737099302514116968166400562354118147921094276673384192701004412799758180470184695859498557234140266952993393754996870466435664203721463293288264501485239876620617502454706221130734955194560850314376760213111074286347274527137884125555375898667849503415375976806811673450574567668885097773440180253311832871685643258613209820487968485090011471517578295648370124980685377703133936706889142005334193329950641625886526474417019878662492238438721005848487322639825409381955519101139044560198728788133636505225437701131469228637311799288879525571798048879647325652866787134804496870994771218429899301879720229030413708078530739388578435770203321361949116414111449745885531902642200331284783197069116145233931209783971281429833531228066197341312820614906022241650729312234122650901406615840968849383727507692224943603890242539091385059904913492665783470929010669332771753120749264830862134506996187304950262878249624897326423490400674399938720259384545282878642502141701610756542668688211676626058995265922142891155284631628354830651388046201242471019912477886725304536275903848549755817377897856726488398818192760600231366868629698570829525936707831424165851831444728972529287377008173794888387555736088393057033956903354167080782756177518542676637210090983393229897180288910751687085729984686916509336217354725471006381371101625759358457044537439512767214452255214401021234589495085407385224539622471522202549328757120131728993631780539052279888104869092209076455025543954993122434900322339693198083186453666343790452695813178657486102654691009419225225089282663107713056530061256965430447521057297341064007165457005638408990650048329932744074290601973535384405360269781260102890160283305465204741942604693483330931903395043071376601647783638828964909398575431642632557663655252199705292096370458669264333771286253076941177285939283383573740006871785309390950410463179855220180862683249514419036111516453943310666782755258780692992736334406650708905746603241699182288198058304952947879670109316763473282372682570265617612032318660602516377793786952832309887246422123637330950238303722312224538541840977134014553949144928450942068885898962942040649223999891784752958307519896811673318808654704681168738676954202206851689675891398674411712788092372860828453823278917335397711155068327481091008207084383354008682534722045511463154144723989531189191479626690088654687609483392320823329090898972695099226473177346109460020106399392791757664161606071681377795307345779810341985943934865720083655522804876391999306100352620012361072762381939172116088638936745788790831401913072085074843949247782703365654642040682362301916444502096863960460112908655084695529582712446790179825695862589312497805706206776849226394607944472365413914374083544802074239656691025048885239064939929313748621200890816874197796343915212876569058777484489070874273903929919651118122876934376663594608906555597003055152278051956263842615484713061996108909537362674431245133566432894795703626073446073731596398615494515248511408000160433311861384910216166190974508165408212293080157546800452892897728422279867558847847178185500155851069406165590611659098779401214477666902032053609425829279864760425964582145043235098456025481010786478294961329196949571274196695052017016163790520404270517770079814447121719336809981997181981897589900433312150086099600575219458737470072396356199382725022535841223263339809075103601140481220780847862397526767265631614983745479699836098447726949573680931504161454653807021148031196711187115614509790907867203897588678484186293472731086083711017939917765303321521033889101412501076090637705318286819439505252057334881530722616742907411140284395059082834313729253427691107955940340084448919537784616131377267156867708883586880027316222838489396338038635819998037816097269118389362161335540707190483569374056728480565009896006518897963510611881878299684742651645195358729964067356835613670781816301896452503589831124783207478977860810714053934527664705355185759745028256910936280004766370152689875692251095578336359103872163699066580122979794962038875371860497519352793580846726119652863282609663918615369754828019424310932224319560704811354388571661082490101078474009806304536613653494304520773072799837449117312542166395324117409784342368094354520019168141024452723114569910367251567988816314925914083232729996872256822833366087895723480063514340941530754246269823659829733245800608704904728755702278125667110220821700205545904800375439887804258042462512999608665744050339467692306554129897945508761520074726226054968467844075738118566875654687335567785511716615792129404811621888026015897686841862964962441824372371077195675296931492711590476854019829200638493827497437660758001731625672688124399344587778887557571625375198704666306829608557968294687634203064063292356624732562147244845763624638492650263492853204421223842368253316485899196723466094499104325478836245493204961633379046059979161393859203567773960281082806300531635042307085628254542832137511888918895965806304475008731936795739338665435289492025686364736839178519400837164178060836659221220211712144109431998634228407372331887605579427471459219666757812768098783516649699946400274716743844733792794466166403092275411595459291610668660179908669973308254743545476829778455242287044935713091110256731105835252654971248277965637167587366298319519739952044841244659819974710857474550779228556624348810883859294667406144431413092370915398263655550964770402590531941789996042340958441988533120270945421098229498779419547245619435478980127922729531851553049164378748430753392469618906701337173873213197335154104407740674469359926788347819008576806156015289854410198807069762808444726823486894897591732993601951898155276361938683367146130139718330674742768092382280905296680781360801904838155916273178663825784181469409164753988895797845609599818138713179999042118165053843726012490548657718073895886546298137168512465626076378229474361834797831878392957218771652427986520095279821548907402924258847611340141730027742173046907149255533821837771201860809892324942861257530526640289083190121070506886731397048922388612261648309378963758077337321672992866281866144176822263915239580002321920481264350747539200089673631724605543291046914955912801260553702364774177276672613860056075496115840827365312435681367867655002598673231038775628573458756569771577377908865572063918922014214875291826900374036943118838376812371645245534011556258521664338181253176258768107864537942425254729649275802720015106778681403012032288251539355071016930306674995982896262137324503462565805802191146181395396906851231581014418857678577765057552726239815656467633479022326153124428048488839130886604752271291658196540487766455963842613466619847031016540118850689784389076498582649581319595842072365497765610408182684773168658547474939869494940661559463563581597428395626064148645016298347492236071065272072057145685627357909627041581930165680462295770090757116134039161783975488476848650327462097876354591397903776873594275065169167850154114808015427485451436754391472603377418978625849014668294823494270874277102975262120808541346020272833175465877492434835878860901027589631228144473801065430979583465689972674700045690954353807091093011938206448743293931477021385806607782370070353156762368878409135735210178317815690047691987216452518763818300399607042242190171788482820057918202762111555071532383366102318436030118959079868078614012689709621200601078474679583206247481597753384039380899740157639624771205857667506438181926153420090708746257936311870352540235520972059492917289955695381122836209141071347333719068377174769988765303189035131164865423185814653727238260637042149542654355440519569237812586267485619293110784876687169034914536221470373444232344213336307837382339354946776113019289341461006454024187447902815369765743049300833888140277901537716374699066768135897084038137980639712117319638522400269977061276629061090486207337047515060822258503645277668846916919505549900119678733775361663001303065346130553121548604703742160209745513506322751986414229112023522471401105188155474587420253718681259080717249481290786961951483368601491472638329381980871147688681210101026009998818165841624550741374207155597737905522514231458994192698219437858342773646488681832841306527088616699627636730893018753532087822852769134060934069821399289540532821050303098338969070225230685512172828335316736857793890612736688491437865742232676338895707368439479908804498144693567259410828137159219513422469496423471904893583247947648293591667799811251525309391991800482484972775073397217615737565700851520263510544830017227132945854941267000880423732617828950911838489954759627168396395165870976064599870727717286953860130991359785647176313157738271524674395667946383874581059449015985810696774693858830505341657366972212584577414631734871271073831789839674580253976318885191868203794206742163076831431065442188038424556477064014660182303145783995946358389909998558639765912345855941287722810014988756065912306320325683942346983002362523389155905764455945512561870230433197684820722770303921440897579458444512007344824473868637896344967556421040393340607798986925072001323774577475475666197810190116010650416836876003808455408285454743727167236019953860604950036076561070193414245133570348636190893097295173431639016033317238976474282612453865205984136816227840225518669293909291502421699443478789075499106752541019984849063087243255601428799131262061792819683238463730189456326325286980578699846824974762295818968881402985249828881280494206725367971640836169753311093324895799227572368865073050715069938473591395381620361210063294888157624608165268954367719617533703651574565011591023145236769182050765329342746727887989673827250005064432371048884803123526299098165672640865526405606448050500938549981338148573065982471823935392618649198652370164002901150431974587561419927429527565494114984629162125778189633288404440333646700247581269043376582490221893157468522570193192977854903767105693379606270080832505276306493640975868633953158360089629478902268731883042428812870008541339783133960752130705937675476771337719300302050281958837531237231586022640172292579365101852926440258126374363159947751747261681099616285188372590868218940742520765742986842057078453306529014511085606915158906590644584624713880218090817794783161883401469461711694166071754869335358961609967734458660329117395507916111936423344573264610645770252477095248629092683150223473152309159081874055997455622063440706206666155902942479803705720570524851484408625992174721881161704880683938303946809805245707214404040312217431625697548875798753194449169573558122805587511054434547463093377134674019612760882688136601510220198548241485555181274370891467206412170328252800829323144889343005367827653876410203177878242196454391169097059602092994768147011105793048566646497404112601800344324213822055883973191565865641117418424630043889575756288901777893575267702392512700327816206883497262231784066196686778693114414960712438725663116814184375266919078754519567556752770188011173374895786038288962432235599466507212467970150209588095165224751725706152835110774156075546444797328864265427001498538081514195061101002575534082111755253857402858616675713716082071189276099822538982014332026090150355091165206369592184036263790823860026427760262864251049815059291037426273389379822973410297192699997050129153612759859942923309738643543796747620568005809888513806870002981036217494653430433414270431683930618255972369438295182039743827807108184899986031796051531946262530609286945634715063903772958337558361091094038614210338401738758171612150374923201001274583218035045603484127949327438022700205353102598046179227223630615245119405264079517558111066769512712022711106748720687339382149813929811476422651579616403799777913445204294433397410077497897153305516196596639164239301665439830741948534381843034583929631379165868415897346307478865770566188636818177403637071651715538443525063857604113944396370784997715575341002349562131785293384594648849379802535459490756901080042217257031036315604840826881103306402058374976799782652448344454411246813635665778718180910188672448869265805840156246222758800051041162396625785057263135750132967751265917653946649572656278455596925036777676031627655333061215409348951853909311138058331876616261726650055120219555917959569785186626403229127809479408346613888799361392649678182299523049030271803020365914191394461350745051029823072112051194570805277203271414711800887338008284206487963543263789459263735669169830358591531939911156548418569803280010853488255886432026820418201491511189753008635759406307522920231636528649579645857022634949887266388943941177178512086143740796199079921642606693534102325150259452322393956793745959180254877864810440843767567760109358153692323950594560308201591448172493748607688399805070252533755100019439537421317032691108631314161506601633200308141543642737738752369729934015615467143001431347053839863627600864251928084676604678866412719964401408191833409981516441739626555833653826370882331408552593538586512784195114963405559695372491203434352290170261617431161173344332155720633211013496172959343042181903447044420863822963758914930590233586297473388869257832159446173395968153064826130455683405252552913847009224101617565340896782137996424415647068888666792646223110092912438925520097731380753769228658544708484804153834384333601614165208009198634288350353399139167219453941552271769619737840455451778857341864600106953198633495148802137855786297279535507260233442983776934083815568978360796852138291650372518402319363988685808135399940768604302793227296905041828589280349544146233827362926257162291265851777003963223978674969115765903910085610075442162460272450389963741478949242469950093245618937344207341713870711872393771569810425470416782176103190918971290644877972250451346427107137139444041557752181068989083391552370696739646192280510180378148085680152991932152388628457890679866670864018689690196883474276872908642475078001764433472474063715004896667120320153273454365922174526699643505095881292298833865745340648439833539555862784003894644047943650042264989851058598391626189188260629334625893449642305054135467959581495990601131264341407611590312847171361376040075574038591364719396501165793762719903381672357273329444583907039575466723101842705363934800036874436946731977433878020133308887036444860783797772983085521498814789999027254066102797677598050425100927877232295656712232922470012099446563999381613758095174909163547068620099834483318446012590454420115525129347774647832759541768397141894541439952319896879969189663181214592996493244002156046692844110137605566646893167019937227126695563699322531122165113219496068632380863995941588514013734526668890487962595337045936801729054675801711943124287140352542279631021846581462294694784076424725271058387678170461139177111110952081812663638807941639258913996851773937288675760361291869985716997020137483270470243754389171435035746576183447573796262061260360925379121602323277814796141380822299244620510029205563154994561681404818934457973018195859373788690555266323609869895774959841845512232393485563490495534234489883628293334713950878134394531987694406510776227021687145271054716619319837905004816627241569288777687173450999370535799925966674854940074015171386748821422108522398193250864603466058767703402145524368160651428420111852543504702000278094962794796214034890794066433915262731894483162042101456076483726245773116575611764484991010303709952555078787224191331745713381625757777809675964973970255718742654391232050897344038393049550039995286418688414831889823375187108284620482751565789929202387230805433628032208079801880628317948496029398512089631605271433813247942327987137339719274182405020559061157392010953586950681478460356379350441835976637058435590335882926360386270460178212194763302458555407298645183032768628832417389100958475387963237420838174837690319448064579448910476959379814774184261984230578878781100352689643000599207806152062218178766489946060638033698369986006884324236380237438998763422566507813547576863616830411689729469624782650508305694121783927695947516487523093578634196603112246528540126540746797372248220645093308622535471437806611085950451074921256722774944682902766539572747726225611634787374807675087359950381961383769923262607693031339561023294231237590868971088573388609660392856904618991017317627001166400656712280015651661427174898426441854400559278893392065539125986558919382738643165068955726192706507930248524527567304282671772629732288474994925147625750118127878542716640874041462414351971156939739042409390381449015214645128643507368750455960353003569252381811003602950616277376275842415875002893273674122526840335823802540674368749753295358674024382627468627475984939386488066686728761721224877648860241302909827295502423180073491053711731520080491426362545740144774846649263048689922284854953564905992474770323231320938225948007423495439082687221997894694958133817126812575830399857465764938512193626780742705340690133306947908639595684926757065246095394512354673529122659458447607983642446764355149439765392723859679119673388828609912588902556224484642904470796783247037498504724814021435330062835993890432888694345758860236976300453379351918481206265406303464197401011938426122398630025683040777569360224359625367340096964822522542330529697079507094536340840050106908141145532689952980709692738180353873882312792795309530500126244029875945418011434023300969769985626790103427963431146481143643070890438561723567230241487446452919938919123923904408388899824528593689676795310716873286573980969137542101471638908301317925784283427709137737317113570024506352330465466757551562930009547628183794240867449403730917881022983287768471027895925062867151000617043462123571765661633493718780034990546689115372852714353289393334228659330636206022478597642903509241228507739600851449355915369776425604070625231157973952087164332526057621988112221208993951693147025491550484166085479563588206187679384524601527649715434753720992873568151513868742355247294666401808495586759251024972895885057049965050466819308444971824168925721972548118577695997261269694167112258498523903429347979449277736227290102340099314853022648331257113904105121650126574280059959795888883369447046265609808580838828971435702731677146353497303603720659104218945128938491021196700652877424124105278120846353211673737735745524030949473377352691405179915906041975698044673567312094534823776983647918979501035225295318543589691701890024906239104577538684013217927519434823275500180962716608840961658726387742231406383103727098797440742260789468541838593533977600106026801545153404214197668769382175927488566418270117225640915843949561319990155987299645537635549838294795759296344764023221323072872304801930823899612930593689865120692246606238060708308734293373101315107077707880404871924173374915799466801108054488206835048348149662111380662707542210420287747303000917081636168529976816336614270986311599330959051725581034267068284182215659484423396142914428376287958818589925057435436955007626647847824915577968440496248222951251364084185519443360865454518028963306452349540701383185558889773014426120150633256396908295157268976287883661232325219536258557662413484619898581230281661743930130017375466333655910990198032204102051681273515077876609171185772397142378558774087356083288547771409265907794024646451583190125685173220915220337626545596469371324178774364376829087503539159188439399864638421776425847913325921907374022936644154108303674902704957573355203942728434232251117531505736070340058848087339207702086115355963926917971543799266049880189155802806765938434782908419157818433927349073859704444183753213767922626440507381129626273213406757155149968813166762924140619424048187440660964357641731616494082996347690656886084658788985890437351259519326668191140321973139887230738592785613432767271707671981749493782409778139158516531531186205737787275101328276185050715039142611780514408426639399235704125727182285983841126214897898147010272102926776379822012141727099807550951172270811794698797966980982027127221035201455423562919289520262978961051418763433603148148084699259713727978562552696452215702255634179341201840294643873943759118604126182225707824052049834807402872222915284297763519914558669485825310170527397517275742533837461887576636171685607436650312327953957833190852580551510522546483410674369255723708359004995964138707201356165793653553196125631867700948420653379467356526800207161309457699836707114848970999680166881193108177802442458340510305926860257546528293528889233322849870961444214164697674989860218015654229839595128105967608029269472889945672388796824960410828163421175481396195030375669189570474789525351358606888890226516684572410740795898109547615475855038662178283699812021002502848547473509396791536708916081527189373806675671135111601800865663279326076143779340482038983555138708653633223944835848736148250750686563831092722228760617982400872835732663209212604894687220110841029509297315647794546185630772675288431907384335403943517393314112700748466342741476938531474022841255966935436058773744067584568041759874586844948476597965639913305956717450466479388950430890786685815317624214652346143188579629273985955134692659598729645245234349841207348092239861242967585255331524842983369534674597640854890029912370113511997868569392318820347944373478205682574010359635128959938893224758314960336925229486654371800561253193980054110472250708796923688629830216453568906686392589608218348127868471549757433625036172119514528404600483611719390541252819130054551736778439297350626508055416626550091669449441944783711772830277439180819014678491509888921738952950528647850793431345679756283893665011198468612352914005992065305096996346529121088109059461412801967222426390774810958141371312114548108829912211308934470890278665644223027197436383326384980167409589273400405967966435963863310180132452068030102283911624574923687177432828221331219651568396710366904182120712951763522655140152660145492787580266021958078974947844112396837268774650322980724860978495035283630415076092556536531629376642153091607177999683917979785916820065560443483922700843253725965270589386806605755457262134718038123096273301954362875880560010473127584061335505193845933389610821111758272040889006416617240856444675374996957264465363273318545144107532458640790613552909513620891123130162323752277823741241233238611361863433804458164400153203603662389542183227829046814009560510917811176961032775774282883902246262919401850641935740527950301428792647255113049540146805866527780568349409721037906604070672517049816564160272114304056873969353111529125102481883441134611972738431094184953316547549559351175931188586105341298513574379613722465157770221448138221777824273384064768137462886768852191131842449307904391687225120620587992957634087060962514114314345309244741604694333449227276147028920044950548658021417094934461068863562676358035525641258653331263125291318679925937534626711262473082765075401120524970983847958639769622969371205900980141045554180520404530461054934348384578594300417170127854659253811562871309200376081620429259208294139965876449520225869627511940613039904187121657511810378461368073361570204516847313378063044675174686876853475160538725958354526182535961195102812114774300947334343106004517127030764907497552029180641684362093819180332471202226161244359348541261416299906124782018566519846042299320409133892790766287243233982492326070422156628378207490236315843945364613005980537848185849473252243157192260708751568715436378927322609497379326644339777769224896645941959903038977706114988123365014809482644748623246049939450530433889443924308884184857124849383117273449004364453764594632500708338529428894803411409126604188770814674741410374331425787370485351117583809068938318302466236144152012447743526170440125993384816816222663125892611894454449777503358173752197240329750327437969572809960595493352370444452020578352561890083636922279428870038375574417117277385826557081358655104579733994944030733931997252285795477270654918137271855336422447566128022375012260066766107478011300541307348597011151428194161302125356389214486839825541836621793940181098383804030081119251068058994457615257714916493248967435067970043886285130306529213388426667830341591184002582913660141962128339346439198356665519138287630410510796396989130602536970780371038521619452752394957218759868727139933282973854854627641486991596155079635672060720566005003343324691766413583837038123235480317189737863803327713528608843566674826442995585454891799173921272063228717504578706167693698315519780784181646124094556361739548376247898735115346240529061737333318285635288608331939013051069586489705583718913464045929816698670048311560523398955532568231109238288064495533848901071636016280216016224184603333932556922665943907838804277466775260087485801455167576641027034299043564731747233660807598344520874827984578146527586121250604533572805251805662917801165520947522778145032670059868309446202522299609383743525508462790691591138881019691642833857800765730424559630971205433917922248312277557041860808451749012162035720697539307720760348115630072664789823442840618733501785446267005735348033591737303246035323565022713153062929523628308406185844926036882914651372085052691156304157547605460741395158539038644400422792091360701344306641411082442473647032010283253556293989808987717685004532249547191665976985726594683111950079196133610892640887885774687680325773291381687121876984074407658787890665193528826310433085839433905203922708408893181828824281628680734558901550727697414994640240443832409277051331077577428577202810073804940371780221513695715121423067861079021344437535718585173116045027300822113052883547885417328399213489085827054489418201820527694959324595008493848489876385430821232146588998255006631867731437451309880151377601575202828015670630602880351528486301829900824402318103475177855240498998051770441203204340471633718462211043591075549212344176396568800241061866403078191963651089399411710738958927380601171508658462014034280259924993266408374168128863267788042595348333393471084734317281051927095629063981144215539057059533791851565439520736243148991044409749041186009913185756959564967426927221606658107381187339342283458049866905940871951397369207754305677863518070888638427161518530612173977863014135862735713459600401560703300417398018990462438291955179549875105650430498035496541706916302483802280264418214915060772324214265391497234859764028758033328360072446746729252957538710236814785982290626301626894084984336568833501113940257588632748477055570842276496490118908170605719717112504797174512476684680078554150200049745186224418742866667713410561298913552156497292215045841319048758876674656736791197223210413307940275881987620113144353247335200320764949932633669475506295802092602194661818959404734365769295822744589159309374646033764686202355663798108272471705342460568871840812939655089375498520623317899580701373851861941534116426752613530908619686100734394713849014079648147860697055589584726882907810556981626227073007631049857718704124265490570624873705504650242992676992368117252468912321066630351930625748433020662279603274280696298582612330972721876303833911143085080951758036512919281771090261756709208772639373690713565290447569776913356583959410509615024804763728218870692191506972271480923913773875790160330892020515457364517175044741657649889764885172831021259486672819668213990069936773473732557929071182213576478042527792708318628683019088118400241171974811489845682284333646641346404984239406878369157472987565421472511227498677475421076326896095649787114623584697143182683727785955479367859620914944736327673342567356657431657703402517299068513860405817928747355198442398274977213897449881316925662009610886609635618367019540577387656441857606139126806097013862133223427715116184268678043330401467291429955223940037611876217141750216389894518051945106229688171868794742789775627891094735306708698112433384575199122899639657268597864676591597227305197275311722117920962202228270650211487102488835479569283480841294998022672017741996548600958369777990640123536439351566117581645651305856761247078603566242273419064884247455487246183011875375552391501261817345216627061046633865626574475898649199922468509598955112695471579358105204601608712181984722426304614859743128137992934489293669008333714758145312991429512781898140053777534343119970221989691178653679816820989920710163651313310096275384016983976526333161543609800976147291824291463143800416290437381682810650715727029634459635191099083392195758129614834506121722259824454941575266617717918197715483713333494595720806949515348066354898402436323130271480777618195364733817856346722966638887321721698080985124003136119533253977289293611377076960288536838195772967383345848661419697071290346970585166163976075306905955661704194141977237499432836832730735561618990165625940618396150588456142121736397940562205759667639597344749664067660983586240256409775888380353470309063407638811764306458152201117793033670003671044604022177524160335650579722956121464867406217801280231178956779520688907545973298310757391075066930793699512735112452997488961478401178060834704298146025154136869630544499015073737545401281724955404245207520595269084938676137546958366264590125884218234056536526445023225974542955342125303218570386370587016242328512951841398962679154394375495372307451635303674605038256302685346224559410942472082314262644919615502111030740985689047466694299447845203138407482103300658067064830249702614048194847885653117115365059844884258316492063812228980894611943217661884909882380956576605919742407938144236468502479361562774215806094334489388334870667125355264834300555807441962852886307887315653920100579345906774301184202079298971278406294565565227686809120316050713649338590836215393416356965832780494622264150287922589816249485576941395666467427116435914477396123568892212833815761578573993381634966596249343640204718174409465977505613522475716371323439391754179074752452932765209814855414931636705057062326425767505706790455986637621862781902465206783202123232332991038379412554896189932851229339374234562323421737120571679014700251278912121589730988442260067076597462239128111131525107413333084265574458916893197727424544870166441531799375265367647461130141010364739982259659108682502699158767526794220521660310003213021025938273590098014167194342165542314334187087772184236826869040186000590613000062717702140145824711300031246093264668579616711142122727924212794946802808480425341790515735606510614544430159548056101301861598280383307561524996895617244436759306604242919573727938815951156945930319904546160602890297955462584493122825487253480370506049513114737374801782979828756329303073668524979831283587920040317453318102457534452332499406649331835738004646000576599493704063377172213292252382020625313641770800827534644961766244025003336169317262105550160106376834932240791829658451715498001922696663959314782024981920983681472891082417773677505228420193534628029865634561532974636245717807229383652153437666287972623348824228825238063753803674048380089888435902915449897834834324003899790026759167531306409007669807974908621171354794801684215010900271639397231961772559462093258049698356272904637510848714059388253635991314542529243677133291461164280220234394511546673093256943160427219512324859222819506544184113341960126951413932132870707493612768673147376704059384614393222677877196914686508094051929191638640541047553169761924956590063421622256461494539989172977388807937414625634118710872423236094792734487586122990650199778521529363474450658797981341608870713035667805589924449566238719844799626698623369763933317590090674662083172179056732109557563089164686341511220049468720502302931403608833754623992310033973775498644267763388850300557805672768319711887906992310713657532034187383138949619286266779646984974439754459364596012065018978489075456922167954038799323115304821251283207563942203125307437721906307788384280382819690588275925278488472888030533960478331124783658108371484815310142882846269901426175354313558576420244934034197637263608911476834623776078664337175869682475107517549113503620363612082028707014212248198386239189173315427657778008612761018199793533107251365991014112094385022047210100476710242469081704221002714753850423365437563533198881561927277331522560481110743270656365189796952903546365746442965857475446153023033172398937457265917341880580085111279399378601650231371759212443471702332255338417243371633257746412546694049344430080524516385406523045292797420392771401195766608769746214536187204745682266367615444822127634936552482122426682861987670906092174505284526784717621237307076176153305318983348769915820364558148191067951956765237786618947654338634108772896252917298728004501797138698794762021402680422480148793423558569585342029852047871420358485183372020749512245937874446466721114690795596564855767619049095782017831664797102168009691133828747067230247187478274371440610148385884124259122529708378047881904656420269904498775496151402847424509456468818151051673884913914075320857989628034652564808319125863742317185495316924369468328054654108238925015957145642703507152833045527693563601690140336259930705326105015860853473881568995767907451124608865835332275710844878077152640268891656494943490816346883426902831462422231105358226190080264340024202489602447279786976900718807793312022443818245462714304799552892827466222744260744484159416258601242475251567059442484437803116900692856977632124235587467989557776380487276890357902811019686223050402753803675736266361467357033458387612786137731414120519219079532328740204162167788804766444304186914626497415453877111284862864693154601077648510014880536024806763867052482568416233926775111515778232412228722179028312621555443352938668236061825705833030240143261243758636777018200180898079921110099289530967690665202770980681241184806615177638862991700020296956452045984439179677685823750223008730002020099063345477318124390642944247894230829362722834999221000068233266521274735654148017542684440111361591579940073366401629551451152574592809744054368210092826513856717097523218174801877772555471119876957372768227631122622985144897640273076987682441007692782092451513015616316876121770455293826756669722148232932324417156439897504031405617996064997135331897675781353211312250069597475291805676411940609434301936889794599528021197830523869560941879337483454740688134401468735884284182842332390179491949158740121990979404707006912645529189955875861544687721443911361311445712375819056874401028430050575157114298314091606503300123191744321367682893193096582590478239825897695253553065006899113998620360875950089865774107283648632463485481119290852203407034703402911279903938231560652362720770397831645551566939079539789146990360488412329648783005983737555072458508524072504883563254661437679920403374988229596806733160763728755982199583932019988184640437459018644160869968185550809085426148857197693669068461580792652360855021204106995288714656019534548454102511426698942564422048170581954292486658836370144313761746455069078763669887578628935828167176371339813177451266666220144812923250229529711247366635626640057844617804638102094467888715585873162242258201783525568009941329060984993363279434604628631632710748771200807419890394281086160449702996614076940808394861206203245590476851505922791370098377739640864891325864050729373560201215665534721922698621815481063035765788680747510425754492247850284035941855459091144021421172712701219321353961907309520898856055932146074209307254786727600580612152547753390090467325440469375455534248891566158217280596494872316012339806189040625270983428852605537376688652051653883591852269430022588792099138785516670808726118498646735871857985475792492505190062612017884234384504899158654229384267546035704831062437524375303558849611681103936570702880226207718446672170808219801089629387036637119977051001324716067785218691637122451509714560569295006500859749018356173465343130559032053579641371675133588407207168181970483383221478033949180032085871691388530730331018542335123245542373485274987953720878984707878577673050409798880711732385155515199427801998533479974467476852851491347775323621688937697908375740099242401874310711690579270491302684422694078958108793677284156115176950986585589980581365167048013867161786646202463577446052657796386721503818483770880591814436879963288731847390506615682633313160932352623630839657410071866934632236090303889984916317615905635343251072667286221034960884623845938403858489671666556178342127216469967735022716948546276372247764462086124861671912122944610169915094789681333492460504518244089203990571778567958477505400322948308094341243548853845334693587035214934609501662986487593662902565485627246788359857965259239198072312693869081475605748641165446747869012308252818058471903970878320907609613608154247549539842998682226572043516643985824559165076710562717972609852287763735560868485081107655372187819372632463012110779808698176733247305504851628769381983003808970457506233526095459050658467265712889051927293029031358655771906976884592493145763939518685626714021572011526015887598020777509078183078422141672036912822964274544753659144776565821998230519968954508456817857810313380612721230690838865179176029848175763776933406870914362085038678265556900708049623209503099715180030172465218769549297185545347581019022870840490200870296402129352902689700780100953802752097010190541372372494624672805689270457470562559949433294116414333377618846858353512483109348275852285675347084798997331580441853551341491612209790418798153411450762436905185548133649703968546742202846675541344677603010935051803335244105548418101321795991340205219870172421464436469805023308147018161708385298602538191971762882566513860270477965064548235854427811000054843522921087193695582034332167582225983008600368415992045842891255788325014577038686111719241631243668437431130788600977506181399181482248279720247297439526833558704322828338846233330890186492193309165034379669273698413112976418580674428414358061945453189179330355385666940717374122230771372590133005121226235064880746948947737577549992792796386543230215595903272944452983784463085530321999257430214874459131637573996189957507444238993826840473347055196444457152572061856087507266544648303067257572630183641438251402453343321909590197889449054417682569441314318843404299421952948430306451835620862054685514613746756741218171939566945714610202901929220248635452164448055232204041888432075286523870908726296799561347997589588773124077881823604570665599969323937717422650884640534518054604990077008429527059404706265777093012024403729809912651849387645520178754088694206548465296558921591404647587131116356087691207845017529440266902651174774200690234283381050194430065323202963935309293214561011251043076803970259994195230490668211558258932684287453330972791208760671998194404724805688086567116013695866146103179217368525887799759213484619405130233146834903292505349383016927803585656426525785068490630561876837887027050166518850119814747336265599698867061630650442194833559340229571261707191110401904279362992582620544928848978118322620991439484365699353071873950732204383941586795437255964454217557632690291493813277942077413815331493010977410446312413901949686394707671339013675025156072724059335640590148439325428417630604735214431720525407850606569067803936152651747549239930837109206474514613982124262591360332696000367024644160812226348265250571435973029200683200982493094859758847745057393655980217271666906094218508828653047071523388758058218653792192052531093529095916664901335354971584408389472855245946102526044892928439863066422625358278295341364235054549844668321371073351659102495460150538962791471891443434081090501653309954534699364426182539955714584212128716480370977814793066526354642124078637173870169673036067557787569096798982345376585697996042296199794163159100798194383334852183761720870129628804231417995109471442851865424951840730018332272958884890836026059987670173924251744618318872413679348740963599376965667585494094657664440548772636551188325757228315395164487306904780435466843173624870881363547454384456338015251303585672560544339283455951324137285449941333109657557886682601908778465502421531029527897907214934579661062611497602545846277622161917295311267322165671032580156916642561471607971627146509454325844327515201390166167277200472849638500240107582312356052221477749861204984070387672030540482415875863761043924621968587241474068635142065142400957062959356748138263108793371874618043602217543221212236089127850045860775102355622638620616873674704931002797057166539421166913926058363325616702618026584673700896476606047872202290899119928966849870740600895622558718299845779607650055499241069153470616958332038912520953760182218891788532739182770142592849319796393851580706840685600352625982197855767958427878077949644307193906587033938363151394918715083304067483643790839336915936640658431613082160804157997731663844914668221783907136346341522076116350919731913819600124293188361834113502516473641674290862688521615279354249568685625427151674961943277630837695494907284470980195054506673420642968236140969591908329037366772029215765777848746750906968904952070869587513544058559490380414263145102382001583554522269165136895231267734856584291441610625344400650969403055645310003726945491498515159935644883142600165844639205140603429692165779971399713255974760732428901454041735324874696954484879785556927503328213085761208934172921122427097587459691344534260123377170185197906560919786631200136236465836397963265476980616594352057444017506239240662807807831631439107868981660583203471540478167149377242386394353844250815406835400579984899293124303511755697527473089506875332343681217653306110546610245157132845910206780650285913577043025761759616946023368812856816233446096975126359101624196905103938869199360420951113777745812062639675687067560477165792095935526854257943078380980685327473389534202283351274498587485182103048408815699564930667040689874924406996454660304380044824740923176217225420706644603828324229379485274769872410771437515485284736445863436113142509297373951182551277049101323885851488541052900174967439833004273575161380589969350132524636096660853803796843558980802305076984009261035085169114712911682404543244329242066327175710566481723299516241140303005172841816015390362049975339409424658640710526968615935057415381982637168408645379307500238016696924490394384181963340755968906594058437194115925309104589404256431009214716847183647270255462375235015827141550099562456031311849596065801997874851708103856500538474156763000321094470969971312808958056700942173020976815288072223619957309730186365906963302766948815014708749104241188101261148514994869590633512266320213232567349863952721789134299788789402288472753916324570444857476339652884918761733673412342402089460113104238414565441876279291666944781722933882104183631194963643290408518857728102484477839733314612336587807425980931900689752947782324307553088538859982027417686225521488096355273902450484092239875634099185649537163946787260510975547091907378229856029066353747471292511901544515840089752108284468833081286321081925584002097559710746861657340588084223964191446203774054160085681495528430813398494772408552121564111517105282722036564990135997243984344339800895999615226037633741682272001179827670878898162327743068681212457389280735770477750537005468667381021140058983767645092085436516050453416353578307461890590170359279994978120639232868643120015726468110161903810665342579686099200111690642999427995800106067044604049288595890257979604731489262426236290141188494171834038344493561766826703206814822362234208365353531386103026454520435272840833973453123035914156434350168236688692468680355377780460053063501411872872464915665859812917451931741986116848860086388024161315635038084131640910362383747057865076466457514990190493585048311060416218351509193306145866670418786796912514460539802579567321277327291163282349228031076150785380623331411711078406121683935002002950298664407184331689692768859029685985726427423576138370185388057063073449376808352491394689738676003218461129489254219942252472953232569913071131446281217439696173720593446294015863295587891935424882192250614012101724834848315583903843601707231428493580919153482719852202741117238246076721763169433554786027981518117472486492641897681353452042857456833019063109435588994740612610527324834379916135563261275051312192060676099845063308911753210993731182076701320584756033852354498095345081817774993113901264138446763564172974972367040768790522760015163694129832039834205053777502338307891655885798002794089368517597952329272810957508093529868493872371579705038801554007930316243907302029432320735547340116035861459396979784064988796604778876824514247090267614995653740198558023796833480373310584257220471776039311163609925556422263457795808041248722621660934017464991945838385885171134644387283110519803469956724414990107808746669087665248689984632251818422998989219933894329027395601509664052295184041503894289093040827815066960668711540333543823030305144650493426094094659931806007263218349996910204918929239509026719339146257075211330306955612713206435830375933188805276011174879432599372996966355821535915176710983994641368297244737316091837285321789938365192751318739325382475426806677880591462191581833951884125272101979549333048926818201403799994496226454576598629970427412890619330965310369047169573021224247515055845937990972138367866179957983529632753544440450550669196552190736478509725746919849942140264275308068891843413157180857516227192047308260957365038722290427938129567661958006943878668373102023974490022064780623884800450313907556163402047627173992176430823008442313437899150033091630996321939642049911445529054796625458834432958934890379688176043856614479361611395776409297247866619355612389612210689161687640395153830799080516013881538212257748902281095682802550088712158771710508005010908181712672878164577604412834601691251966876770949395979351569780868416290899093452812937855982383927321812647657735324213535868335091997028271314042720103974868683835503391859862739570369063178023571806142343788808643593084445660347375634179734027781786884003184625907667002585588294653197559598304469942281183444917174500554926881381992448852334411696900518941362404620230142440378545811876262355967828236439477084089284237459705632047081336423500074602121660786202193688322169202131938527430646116954914281299309534403396530693877318789419802142712481930110822686450433625565919502945282281420422485234895360176179786386091946175180028925458288929033450688467860882243119544181165668490967482577878189840730154258263370252270552077739458528467485828811678831648743691667544645545228467728797718650170899462110931502406066461742785580623986168287020980445901170862685045758259556908225949843126729713251789516871572357838850388210581682127162333083752651199799291311916359343736502371401217917977941747343138738212351237875574187135861372563140491349618162256540883166666314416178445598314682125444437893628171196022970170970177967974778862716056535246854991595216486283729039836055369118260459199685341168435634815334748220079013478042628615789608829592696468841443824916117835621620313639484437529184646924915543479674110999067496564842394838119507770782150785127907855437916308642470868708603149681873180842002912449755880787843739648768576459364631047944221896271885789574836305907432557067922340068732935318189879410210933029179353745872460703730376870635837724016198132694438073805182196928157532343285212559956472221658280599657765189292613333019154286790407698066252128075092281932748266954924787994290916951587119513614805980560505689156076702152496882532088267714093624694165327907367508595819736211713935945166624011421201093768713571431298354810652433769944887770327907819287299501080677215551777991637610255683192993967030894457047105360750207242227136079496057265282478532548555853491952561410380799788117556977674929092821594723376977868465136730396308119258943604570664864001143373159208764763217738699957089890915301770436311959241894136444951845747791351710163874229338477434826371154638921113404393186841378202037138497552581550821320942039084250160397274027852607471945775346897673753629921717556856633992436865040670359535577358544026779414784032691195031313247334961325945263926732853058374769365867684830373761389380625024743508262156299146541696910085610283077603774973703617066016085201759814789230664802782340010870789920726704156393777938840278157699064932793986383586600328161632799557513665469092602886453498170253758170511336260453377442734266911721110415339868160442619600629066968512000875698096615207455108187730593291232265581655910365840078061661869680087878186725344490387450824720718591720761388952688911486171912414391721542708657443425249218796631757241430032816169013638893515190380882443924754765240845963378652266863546245702330853392032984709988746967106745346716362910682859723505657073592090161635862212260788358481458174870180274128303112877145821336704908765345304243002848552583777412503169167631763799557607310767487681282502371472236433029593967995938251654618188471326403659678951274174035060857843242247282427272887273503657591882910156328106883234966444355496345823147666867784230614561177914167738479794093762045402487850470606579214352612734606201565404395535666472161021982408357279710594957994823889812824705267233788819653496297829453004824774935122309423021543114128637614074847466440533501446075442227107777784252150270275181954111075676479820185577096703947818271123717334595460426495080677812403738338527028706082325776693150762023341882516252980047875409467318935731127568383159691910304731194678394411707317605965483161607440358136918549327755860847773208664155430627681771219467495600170084040348399859793831766610846565955781360458426060730413267805108108551604701019088785271151011380597844749735822937961761514235674833273049928071450626582598639533841136932448950569843405624391206199491048290318846665441759958608809856252175310126814561586737686918325296840849438690852394402671015425176816515630276219113146907222099879608254228382887327994309591979334971653102270077801377414925408540397015731895824563211137129862481170088471641284820814661864293075005975809243225945710295112799158712473353660645837390733494035092835334286254593360391390308109924016108094636594235834915784532479714175932570632427694397118499784243759959784826413163862530027771445446181748138471840553789543864545926041948300384439545666462508011651754515428305514258688234195838273965534860132776577084149376402871152383277593273319011137683215416733247905464705845698114823853071479361230846539234801113336575349234494223997461322487860704383861863384871043422533094882229973392375101709538655219564947160340243463259812619910182472375944835725037339204604750096877302723807228677829189675412761165039957160931691581875935807465015638891246169402845703185194040330640009124706904817446618798336605183938141226495849352103207123665251987228554719597322480500639969762528725147024403427959451753002911849276572327031930085870097621863992217227228354967741845575337831249603594492070648652805276059190138056352118663402256556063954015985609201388984367698350537233704713426767080376571536178150074239643296658187797507876131178057340825090003367199875367081434142627632220854680161026990914659435638311785196287046001152617413134788444910219887773662626623212550983972059321176651517703736785230416705561122395099055295920479736037499567245284203204469645533652552307840358147151393933936771805130551935599668297258290098173475785825016901494942946344979993323175917907371020022148132066888363884664270892487454505071961201220870520236821579149439640768247677285861070506565030619568307968841948298350644412337157098694286012610249744093731006587030135303333125446797457064872225308958236992297129364664093187244313079651613104112322558664792492464521543674654340104128228635422154608997768388838357201641918908587120445551949305344638616523240012291910693110421336257250067962377472638812491820472297068346143161838532339057011607727020422772502423853391351900178453722724692293961477980914111915685678680775719199747152344006043192670939803169847948955761094025088262957326431088659772910724556168990012161857844336550942531837499240042278865676319097422571895526588766463868402868009536167131428532420314900806409342120187623166743791699319907512502205241786264784576652965786459578597163254350080819826530507484046385693237267045949040967262932643362392085091920726089483602758356344873352080336592636220215368613105397273032079057259277366364918553856145044234928338192300114490826295543303361805806909431498205476769516560463090345667865381626759070379679402780992099870749495339970682804309586520144990398083453287146863082597820874276186476351376281594786170975096404209364101255039894214205612018522802234735221023001665765304635196689663867450301676702418970792740194892150938719856757288385448400793560243349981580295843988491023252900260007001888445211966388505139541065433078444204716852765409681632028513765385882071673723070115464816534887677127120297367302257844527399240758151854016102573004425986495253072309588203744065908234387385929807075479003400373654384943430431764466226555564451986910339419089534904581103937275404761364861713615801705263622345822804970745887832746313081716477001372396588080957112662218270556536364987315662032462165266151237418519306220696592876609962625196319167946291375488742896438264814691948634227256285673078005655279980907118385423819880946902333849451489613000740859720608356594562768313806124169024945830282125602870815376456327656557034174515722590422348084582216561314100776113527293896020575681676160894210448962776586227907535645661861406998373901941099115506076042460557344889645571080576681508385552185223730009482100673857807386313112882756727119557191151546177253906641972286263078493205652429145994254524431040243458143577352499480010013482269800498835845573320401236511983266279115842624191380793615902609605951307333070082926470001280206295102495794361184721625205395963878209877481660276432513987452108513627161077327605976396910690226829476492895318843600616867722462984324970122251055988640536296541874068019572958161899969818595071471529037053042201678823955243683790200279052225431358851431418409997036340158786168190154212551184999075684882075485147031678169475131813521555979064227318900301403519539403750235005575891012099169315244797663148544981731097133858283562363827394272256827223089173829160190234755160363412030243699649276610936628596722299755371909659664421050470050653768380549207709959679259050726805786644501831703181918483323771859534147397890996226333670910533538836116183249489555378435627608193024748784985511368872757668239481155017583535115709600654944027117769560983825055822706708044455355391884395282799073655292686324759268650287195937973520713541022538164477863602974204644793540844198626687997712800767491998973241737567581357939470305160063595471424014431295253491776842398268540927823491371417751617867269807090181753867668824450952642530828580338229497783409385396272503137306413928569370472651432410188400194409973816426123322930830381417050256794256712333459044379918504108638262296406665870851993731833205341030723298531860822118616479684005589581174270132660064724458363923164247546034557433924665748334537945952867286638977553127296216617855367302942989427711215337384225234662839431027790263438196810724386125531285060284817279961076921448600533049543440967242090748543470889569306653564563901463995487855681512372929887383943180112926331143944016368578856561591981057790275559606529952501723954412775797352509558932664565126907845685211299838903382015491943289931348362588980175823048912315637721576084199850897222557842115415028347610467804071563793781293131039104836602800546691109865428634086860154363974791700199532819518381543521286464375418282597167387992819067198031449088727333118373907605715400813056371699802470416881627843013602954654270880610394260816700003586851863207459863703577733455452741927364556587259825520083839510152213117721085144307024748390191017570126881682928322432321922611894051609702776886094642821049481518992899357078432339516587979631673821090343459673102639268922042661288782471964027931285535571544819807882784403777092669533628154016657362266788655704236655036020146161480457948166578180548069166156115851142163264407185114931961453356236985913777954386374703192844958195239948984741336188903905556685572846247413106596143597544389615344164945039568844814761010443431578705704966817963584469566452530679628408918141542912488989666416875518623647036112069698673118088048015405294756882677616228580103415219584187269127039273115908271371302257062053246410502055401562643359010055843255047032946075529374555734118304351313954813458330001541696993099112150557087533424203367933572727255339013397958275317206711678237897313823247648154574292723649385410223069276828496585951404273336352187006184487407261146623556409914654746761645722356491832016790994154965622048646895981680164637827777829704536962110022347818017018349113633197565705295406241993450926533557634307108770419777996634638860963911954098623135106455539083040654386586941738894649634747963657721874367054413532240034509402860326101033951011234155611126272986970976004592746875815977855667581446790010461034042592391133747989037721069805039431981415930721537256797881539183399957181779803461674769581306803083487426828364988421450636806536752794756461889852982824885667093780570998217505889768883038324051717072547015436381779605753370382257329242103334846193183764652368176907877410968107192593023389806704385086399367221535446567208636404851676706074114432397254797590399459694943743910514021642510525436697200061814314635868363522641859219074307154688451773739025467837641027140120837151630440366465476782257172259160131980363300505779465860626781564796073804437461457197709090586329479435648090025545373112654412066601899245046394388534469769859811094150599718199023747100196225179323967529328960673306068062221578725143870031710648624577839702857311088599095829488146028030476839522126835677477383786572652247057337037717526251920869081571992675568480994940097951119109868566036708093389509509061988426448045532622246469831167001802065772287526907131744538445480709497293610018900926819931215430106070322008905622400006101925868384343035768864895967591355516787996900429903784528772916000567189001748337514307001202725220637023248735730297358449146562792685363712406748384023681783380164178780957517029633697409080514034152576508627733174505276730042661570532615668501716166973834411328263037767362317750001482251203421670958869573304004918263277396552694607730703256864872629004403374879768936084812026898453581231586234774519883738197006537082579331731424753626089428505642388564164723202087586904011224645896425479485920075254105940464716751602259225280969906602843832314443634197217330886412881775261638186379290052601004303292334453874824998063538092306034385842651447803440965585794420360064308635443096810148862662129559444197648505915366069038590659874182563484867836304072542396272244335439258843275795188129399384282007665867333038580142466157957673452504615958055173090217435795713624446374999912563440703781828247468136044330142380764999229249491287511808774056680734422178610249244085480325000112750367603984777249881908054247025008219719803904316229829859428679338910692180774675546270534767860390500342305911259193899840273799275663073844923329117735921449781996351856754534322142076764232954424431816675992742019555114119087524908187855230238574795507631420436753359763463695442834964711704623821593996864070659155628826017300200693926295086319458949856655816610598087363832929843333691813061913229848300465868113562223586382763777079291350139451548334761280692769096894609885230053576274621075726325712297258191370737405779708786835596784880975854596292938646411741395883739191685906237499458966555137124814174513486288157425981547471723326282311690845729456256693433475808463446860984262256719217412926280824966931101127133320143342101673581415862103843434155630511086698225866220732231257520242727287440174431590708468317467888013760179077643891113963519316760563476777564823944710117752647481924962338507694107736812032729190100015803751886124369088293130123537383037043222916827463127019969191014248289835935335319633659864334962690787213811217711337693086811013943607826397899987364400794225939819053360607637970134227613461493041519465847298951841958818847257174878000168627591726546970929342400286328263274623624925492910325323099289548027896845381460333471229809922496823747171521750214275355901675608665852015846492714897128493745841025844294349402608069483474223083046077770165255236463310004799054660810638857072007888843750344794528902248753883578412470897485132065375663714003033579331228210400598220107193751663801214721129913278881005676129216226254549912283939261469390865316602677945441495130587365738833804202194764188079371560020999917213104956697809296798815964963364362394328522930555337253153264800055639873266816729828815932405626960957041912845757390982476112561270126467366852564593751240988291582314010677043776203615643280377611859185615625700873437685088981132385193930045514146942319299996791694087578155104580871186733130983034434587482843428438857634119598831887601939400759813161549389119374125251018889568298147340364518129560914819665339181883227784598735850760203319923117148903942358279882705197449551539210198395506379943962609348111694248362451771554082095638232393161209617407053569145435653689367516087553153110836663996761107909442478809985219715834754973828922308418583761679997877881208502500366268124266063376248727658448568065316681843568933610868255481082976103722898794167625900190839821217333835358659823423871028524480266434670883489755930733210658208519498674692935833089336297213954621071390081209205260738466857203995440951441211387883990545638073669924532456088444488022078839704060144691833111639095543827809584511331177701032659003998816378391756283661840285194211960036102425370725787609432541857225957292984393180636187327328424461483756644292207751214578776928904611629148415222298515187162457022375418590567677721171796070474826433323175008446393675577745168082950524388475278679851702568302270848159878225738791016150212715104554006352578266971962926518406847990367733806818174733253800691238361066670437805788673954224523227134783072953040703355912446768453233710487709057193046763266614011201409390911178759409172873316909844487325654654585936065907118014220219105904751410086317872011229888698494996976189735627980483030800928157437915070624575251028052852244155313563221410565991868431054566043732785946264591317373101009840279563737201787665374270135837055753750279650240970693149032837862043190300136928931430304466419555850921958903600948102391652382302062906149994505596195205057523170332651707896351400836825613699449664340098799312858932827184129979270015665545056764771920174078890237309723065237483131030014472103040632807251219938380130958008607877645996650698459000440529370847397014241935516440577956467100522341304859206814707525146626884590729359705433696824229570925914892345228862779612043866305298843584439541916045225628565127800404568843387534742724757779979452587103247084480480760308937512021402015958716565732503319566978788080400798523682948786036582058891411887078652058558471025762589199949085068880762604578984456160875657781245825314667142438556772328595052639507097610483182882880197047396915555509021157936749514630367059745727901597782269153023492911686056746664712848801962053792822783368659142871124503302469599672667150446856035506691336386819853033304645647520949599210443460058236436629316411102576869849506464447408432717852650772554269535603378397248978407181145824498131099168506244376638711700258794768456602097739160411999148869312686609198368995022225880313010887319927880175959517291332142954022259611583459018079863777318757438744907017124019827721147982274714938420407468393406902960263567784682349205347787501088847551310746694574322959034855868796491714842196654781739496115381462433371346918232960691668886487253217956393941408792378330002203522441522473882381078166379605295771886499907212014341102419835403569561921802889234502591097117656725915689019271038616602335872426978962417944197192097942930069850163264973474330512206321345142128083361973375208067677786590498200534760119246769570290961399851722307908738746479284633817460132766027378333358355185452966431095915856582886096662024691159290136567930045542112102312373220739337842263604921373174050365828874519844705380846223944870544241572276898341290137059973988717422667047789361713736381011528249645054923507849167147771310889590034852072457594748270403303869979223989772927044877198444935139885057987659345218024192877358640090115989978380400249698195197845079328316549749871080594424930527560068083212094468226705367155459121306871724190530500457250663389440320924685267245897624922834536681148594827810816013649436516073346348752231656505655600624876366564693961399271193475634273251936260878689800277947528589845255742301971001194636675604529268005042805207712963928106184673595475186473069276829190328578787672261329684460999077416401987173108670230364173321104994759535798562340728352941390405034802841126425123779125300189702883320329387718685461746334344981480577015480131655971943418819865204217316943445279946263376835234632850383876452491182000383617392907192059056044682435260442954488862232221074371624960532175480130076759817013438788023069395915197988694539485602087760296113371063598961438780988265284502685402949528907823753128961740063084617582202780170103137459288245940179587997818424569556354859071165737625748902902777206261158769049565245995043717132191843020583961523399079596441626057059063681230952603138489292716224018990414706787775007123982420432816649128622955903721656821068102611608657315945874296021375946752008470140948980966124845425144525162692712514666358613865612709532903130562092162139135342923540727404633240248343604685535124569660893575514657375214020161285776473650616649264864038580632509680876286067484290492744177051307163929117293852178993029590967666169273212618279778475004639644892691912779352862160858333302865425929344096761205328658331968665745454351221641470676262256325808622127705410981877319447659526258267373332642774697589149762969977984934886825645363656471478964588917546826077729103717734526453488119313238670261982548773323835980217409488229142797666777984620556402049079309636626676078927591428280912389825706461420661139367693902492593531204702801951474982630094625476812664826616093216248181574739366591913444888221778342856283628530478156848561540489469730953715009569204076558002648176976399482510669035629177642597827924228082372421949228798284584540839491703734851573007013408963566019005726944250393852393306283366040093695324704671119167740614128189642978278001923048881917021419299029902390700398385205132641580682370060558730046920461875414517615206654889044909414526582191596414051367716220298458521854915193040610094472132875929723834385674368433382240832597421772136682287068465590075407987894256875072878598154191728548455763747487275116189383043698950058223528652137688954467375994290905311387669043323327417749557811335016254133642405031870257412766940902389265452808473837867285723145409436870193600796693723208934533368244526522221731507391109536074019109670356377042448585635995334686730066569636781777423231592661625085428869048068876403700621449499661499163019708923534783588340067388577327072239480639765192984952284839892914854875305022992714560304467803558825849467330134449778162508129133277299451454757200243968589510313568076762452315564684319782405890145095113811153114784095073921409747261412514638596677335259326011075178129181243947960776379745830250805609353723677129912774543595860538618035730055533360248964529285288291563319594309897217576533741816925169266844726842135808727006293491036370555244413496876114175879341555606939548733474186699558535288711042818946446220859898632333704730801802668225408434153428925399567256638455590830808444140034929759309212147719808877786564758902457635089421901531040671936613660017351716582929490335993237434435151314357921010521546546264761851580540996202587817943877063031572416516251183470057626127145495022761569738938825417564729248655398234205268715418859383589023044675701073018028095031356605884665278594852333179999329851609595071055246045050963512665344956623915180071621769393024643179771250470944701931098514906132383338004517230291195816245057299907423752472328165339299085003573010070151864210635342113648684112871697486229567969638268101415154237426377767888822642220713961713247516180153748259227169975966395409408495675947284792028994116498061031347198250608605082879005405758478963361188154519215350258853142459322335017007595866124067188476304495080731645717010714363746012121215714039432417981292758266231467823021981448213050977849319514622863765456477618555809608680763187899965017069574448185866929012068666318955740275940163153137575444740427544522901412207183107077277192331430200811624202104928649148048235791157581066943339754708974266045459876436814081394826034985748432074215275824381210465033835324251161892886221515339477325397037680155842923365295807836795052938963046774635762916272597629879396469463657367757784525617008975804652595820881377261770009586422757949693099227670497615785668157965629211204045391738264743170671045198455313145551292899351994252648548960012951792301911333673388773247007813769184752618555731360110715243788866964299203789966170782951306689258956250969498317195524570771001342816060937325687972907459785790865271313644344789287611930875389014450300254102534281088649874371435630256475679102660744655374062620211134268953062173516134691234888290257297396194489863873520465449283493319388926819451464671351795861008247373683923180228812865408321057313556645977196136014885420982844544506721294373631007629027467168838062368012444188167724708018403874200558879653337452780288203919943870762444873308412388064422324391323319161210973818758788454082265566506161940367716848877360400278899128657840289754203751982704433344776349396819284850522984189523604155113614510173564337152563875093470778357829404944114156156605603945237828182396879287317373533127000218034203765498744073108878111896333542517727496211520505233723404568768225536969527679809192480014524718171587413783395977201603911832031373740600158984377845773256858509257081013752124237114830365184374074179969849661515501295634987091984183406074864514441822586157591307795618217341478474167117837384231327475564899022415952812260567040225221440884898007457821663092971699071002097784484357956391409831823268970384585489745558813438177474093569985567967437112789874967254296321850303961330545822606751493127443148417683206874591482026521604422142327982288528514146346761190505267828158333291294102996823614124629253797894323717918437950384276575268153550827492798043181391970755919128552147409826438861850402212848213923676800960753027639481722237614497555534251808502585301654721323583080569953574406237995596962779984454770823794186247642360992866755741101753818727146254507595518288184315061569371114764356029387050547917266380390687636725783801697921718481924124741052443074774926358912586979741839246399820172027950384734914932376578420259653594167223647305385018325850453400158706736734794296979887126728874870393310217465401656808727013853416184047161634659825592509557986474176533687356901926128107612657382457814849811282360886250106771096663690194633721627790964430073335345449921965921803023352220752176222716976818336897593523182267007789159560398729317958978554947967256455495868249184085063686117557318591161417376560386299197555846642050278329051000070751866500552600606841254850694349727252956917825847589205821114460185784438536302821703327544005205060782865254475556446777912501362413537666583956855495146029620847704407356692858871442972863538920489684778814815827790924841187069658582420310966261393577488104274861054522191035820455788659877748535928160923338127531077505720562745890943564463773536596224720811214152436092101784869224958039288845381630671753148071625158727657782669320589021034765557776221275758893295408378396562346710406270013370935899478274887708473078297252319641483473321002032539078071528809081292514448618376295348474558815086159523929924404093097654930269256329194459735814899190417757303741172249889215026978340208906265713603062937283786840040723119408027250690905486837419321617006338278260004451322663883569194440825164469892336996835442705902473848175147958795514238718579586771621189623206149762860715164608074252401217848400924162041737135104028414908274958907413756922126201638371259371342265806324984989144579874774875736265294141505769668759755209270762251296391445467509193976465258070468024480960585699036683769882815036752972022802913861635760215408448246533482461061055396387937415744104816617878679787221236608090372696939642281493744480829838379443226438373691697610667632398777585953874130117948518963223005574584884749975557825601308661041940707914383450806053794384993773321588051013932742818043093899080922025318777305270203715340960127025665872501371221920092303659745388751709389305306205702328879949585809097318740903319827597248938300692115040596133823775993265361800721436086080953800996516657324658056826111440171552853000998738959565721059468244677029473987566467144039746247489927457069962822674331555940693928455816096703564709251542374343118821732941902494125699174545352159593664684711598811103981552305701702450658646853969535235907365845881297322639557345841103090943510090015497475658870657182702485256568337385955570786860054541711540806972028247033336700485900083164004773607140840807874241443225056457028572142428395674833946072774724223207728331147210670768414671232867211427737131405326938751839917727455997342398633151194866225289386811303548140346864435341997949202223930723090880359628153591639420743360203068104398390017987344991383888511597540895585929133010055107507830855667976740971837393759724299972313777118835121139894975671876325515781721115477753593820261214449085468495409520359770316242066081983699653871282067423231927529319984708293481827692699730003815638287045912213631512087762347583763837338214556268013520714338060740320860336124816657055352429664908685038524734212660294648213965989509696182325872337139987021161952425156829603258271662628290050543827448367654489532634732380185735141311044374365201993646131594211392353849990066584893509621014723631732798563718850597845090264155316913051375307388795508007486766007049048281022682045635794309022539225875406815245858763927641020308059191028374138547312349144854137982747540408875722447871694532548812113942299188945321302061014893559286631390398170534970518514001513900548461883382142688909017512320504375886460071635082765306125175642099729208951653533269314470648112412052826795909277255582753347581918102413898983779342085508409757096966511625452396304316123508121950177020861993009869446351090782804661700651346575412638086837147635238166602665567782646392538948452108011125987859615404528480685204586577490504397329204955964752622990274093844451437422603127260892501646709418862286967700051112497153685113049691781237579258542506331233318677327578624929894065323404790539528733719006349596526940561073355043653763538696121103943423690922485407324702493578950829784316725106049253778166679929767990218301425826961617409084319607475013800081168120615777787711031411052326831435158659261467695402978086548839174607798646747521949917822372578970883176278700050269808755378731086451448761731609833530556526227358751703259309166257539670197405036780939367923733090071942729514413508581733722772909105291218435179670983571681348694134391978801742655889953404359538112057521087087725486764046736953088234778079928030613698035078298099241951330167950554960313259166401030063044383020655526262365962648334792049787541498998420945572366503780312927713857236336386521687878833355335805349658598964399980427796609100874441583385246515302992747842539158657591690981780380672165581899981534840788942706201239383348671518181276710595016745421939012559983781061281925066377525139239980176652846241979727869673788771427625728465783395413382347871161425220324417470210056194120419171086895617548993288713195558889461857571947135806570334288104200899502087184256700026417913985675493105439826341708527586957018172261581739705105699460575136298489400464427454535970961436113038067858874659901218871478183068071643618551834371722679440360177744935181154520747043528548694103798837413474707266303688927969696974923813697723387285234993391631852533469081792206677611591811356606151296354753188199192095216457396329291272167306609123728152524777236489722817914885355338409014384805141756275690653089853341019275961978705981184819460084476328116308698086622355469742110784651157688658972047483739512133082975669357768221276339848110926004492786608585365423342599814344607167883947155705748302112895425994946674972762376447873319684202365140645869511892812409120296132781689708069222642432784255953141390213842665328364912251078014066230684910612506483771111297327820020185610855172632861905631695199930339439585172401549712060852960265905650762710961563759197743821486750506135052890015784715794553081184912585604608041971486320034477601318616946932343462335235054036407768947936216952874303676890373737054569782298135120002644504503747180906829620469727007811807365665111067375798810995327393842638136901757842260515534518295553830269469118103953944262140754973711230463112271908721259351383750222701860113513903724424136640536632711603352671650521786643384636315838189891011301318396126020655516761764161106823060444426486584734409430452711144550501524774178201353956919410374704752676238673942733140074003929775874929953162059179425308804119064672344289813060250586465081019848268255930706743586343120599717668868515184277398366167979892614478813603981156234321071770572875311470724510626151314212595267422396571530215613655149203018277762552735477878490013290309110559545848391008905890048404709788373901422202661860040879752957258414237878610017375345717286918560588305465039559142193969458837166288577185050755549477169020955044480648198976324627072858695800712304065460486783155948422431542001412070662639390092267156142627951900142043544834808793766285752087400414429838377385889869244852415354578329978600910651052901452861311489079938306532500459262652179420573338923377093359037669207307397408713135940885426733566127804423545556281537344397890426186714162063691254469641209910905402858121547591454288357288396313358797069031612678985525884344784078009535835739558892939818978438838833972079459325415051970239998919662597053521298033621731222826689608935306084275929786694619306998391437883702908845287236458180512479393146092662692642846093744255958456604948784148560220409531940976097641217942454454762665555395323475197327339102643706350217249663672731532013758556230778564659778731042694303641999740125754323639387087213508953136718941325711735171336919770156898967467454516983076515489974288304469643022855155178372380770379728083441317491189522852243502157383847563611877087801367138241309984471451978864515001937914387643191536445788452570841969245173299350549322723037325003786561999445010219639419760229019591307235703203949678816405310431433745743705430984860319188084607650600988320842786426150283501183366556058861021694846441905300159489956900901278494626876933473360790495409143681411453772776163153014222353382008504514620858942861523416848841883218161842982383498379271314560179208858027435912770220765847616644760465558321535996396522595768056625277766544923330446499803619853695127770504075659303693798311966124091365101837219110659476653067080702041217440366928103382774097862927095033214871001299024282648861794385492321082765519709427354501002163346941683723816557189532232887827719025894803863487663924798846172869331210630694888367008818516088852774229596120212163172239211881814917996848467515093140779715815386970629738856653361277453177169210500203178801707131644174769081739992680618305609930220924611436515249489733479675145866413543567614954936982511090368464334691973526558144431167250037384031328243362445775007528631726249494959710919066619462562997460484362077342106026074633467885937200698024476945708479846196290200247767225014820106418104098593178362314324435452529884060669248470670523562657684726931832994071181093167351334325134710830557816592804791495914763079152637888581012001325189189935630050224989912328118811631594976656070112471778335064835684285645175418257014778177524324037331093692225537217566486847662548181149287114539290495755948581973568559101547141888337750929580042031987910893102921652342232849112940789024865062725432180935823443256485220891008570191576523485915251002673243887650606677348574530054273563161680035590300373121916477031058463296741560886280422213399952162866768606225052513419891355744239129249862866554451210085432739927661403135435141805891918630968640903528958385948324700552754229050127542000630161924785015086825922236890580417848045377100496447141945963837941180630865812919473261993615656533252000010002012605617431899409850079933691898000090609303651526334207664817861211785398895327442480694489057872176932283561764602034259632247017543007425757406852958198486747449243071782563258783084309461243986901604693021817038282872605228359698593488921753563373632494407138794410406427005028932756200072296211948432055089530052229664057715834449574410608796599148835918040154315160494074389153694891347845174227392558821193567306409414312469041572768498472476278997012554193267115594642846750907803473869525069651057590739485456293666056969309771074050441371578778116772132533505213123375519125076929233906387179603034535852953677121338648838667440230453190142627700786832626292878329303730104982141320714966530432851562750428175165041877334639843615335729194035470229323152642506586855913191659817301590620758533907348229565569047469089649008037525002009930661395831695698014060818744787575364171411313927573309588546753554877329595581993680103057599205822213227959203580274989451678979341980100282532992626373980314000695448129863007420061943027979895525624985702434764140761302917968635017745583571935902611812612373457506782568645767650119809097959860217720237340483748672929879917967474281815179515490042102429786492063165741994259620424148994659985564319316276443632414528600523801989434218882670617000890120501175680293482994106449768128250378086442633178930442097110992721322649291734948884275310515311288040768686975902312295770220064880171103681518922385427480113419095554755351594473301584825753623583467696561374671897198542274330886171291236343355975180784797161953552356971193391125072215653652522026787844010010705308070493565995023424417224971533674732084097873476141250699614482512736993954260659268840381789706842112490412202033567914620689237190774036766116757059560860241762286747699045556712185814858199081654679457440316930316725000017890420901633860217249361554059821750646177942626107245795351395769257724484942664004308261881312160375699118202315019923781356357427462002307536438827746868854702770472434050601600645063106416479215631851077340807693115971460219646616447700335684208451519379321490982645496543128859355203826186946505500879841835373547576350657641934337253475826557284910170167301070848943633426006151019104960317385997576424290132951524777548624864214567949318813341987991217136849976430880477285450260837244572288725776316524720299151469301589933962305184661046585081095403371324161966603025449933189156058190186844609819496396560188622918076459850038121630495419133887115721215697992310226234366407917183333399528169885422755393902074835549138900424442776752819555099160150867103672527607019370506453793269786006676385372776716434980522443044431113865342277756695875360764497046869622829640373088072761772998827250656580882026727365765554520014046929820493949135052190926245824197235383396730081215685448791741957948030891480127209018806915144807463389269384758306897331222491079188730794125360003899288927248139598184190542187908604993561570972345011351282732642584978536235311564310833086601198263519604294961918399236567778316517077858763917020014136581270441926468882838775611719086380753651639655891338862637659090776749540109105803983088188674252750536768034443545370269134675835921233398774053950874617883412402065482621542397909404300126594890407416588839290016107280883168190142790681042286955334159756289049807344624134383164889313177767722105397699995147050794397959909942306988379950651331075779265180716186122497455083143670801053151880290418878554236028262786063044472284490212945193913183947287984018828466116691952014675214917253325320328421048188647531998657240895730937173566949137421497979613086574041321197701764909353120059869339747894391543054383727895443937515196888768577165967541293045387707449903391553273761204204861123140307728510568980451781747700418591841026857756023031422756266934193287647259674324355397221145081474449389984988912977592138951016219789239630007548200735373494057870853960620350434325036497250600267820618103013058057887322445734397588018748055811860438881858834843070938033563303218561582787072247836193218006019567230469370513199875732453072378854820590352526557568333603864524275251874332548419590558103308393526607134078422180349090937694024079620258664378572281107693755998660990855869589498960431611003606192280287009197198027841141084097774019203930939798848066067301112887062863925445503284600362110834875295153169022540656254916011825126739533134452571874666979349109431629119951974857727830315429431941523930244439124889905398670334687177484014940153983548863017651294776888543396461543767483554881310848622057408715124318291955176873325465632718652721175937110570705009219635164597916068927857489974516914708149881043481219128824528543222356480044567387428344224735730360252687626872167102185106793456930384822105991774692257865181820528193231681184929421702763577519234363267843182895653891918262915867784887010708623953675931453020790019127740033662639079810685757574253627831638152229247329285138565866065257912566848953952993266401094893935005403701576185090626990728559601888820594737656066291642733840324320607202259532436396858066020217338900965949209385337191771280592717245674350225604513507999740375679725195492362616589996580421457004125385801216901209808749519357714142443502346601156529144519427060115126326574212891015806663554421023842906658355204500596546787063026785782920421792809939207187621703304552363141025549284266850078693093910985370121874629665226963000941108688051557426074429761302913171026754906454558239996784326365985363194959251579452918399505234978954005288135776686919644753190907994602046919500721116074429099081454851716908193359223585973757118303725646159743934918741504130167903561206518210335753541896980107595632324188262947985624502524067373500444734195164622366493458429763348525384142279999655149391125756636829447583477974220431446373901653262102939702948406783503440245721450647180216983173490370920779317448363689141989840799252728432976863801019359535828674428658623541803495641343669292589864564940357728766335936164406025706459307767926425201685553800688407142109542282333740315575668817768430132290886519833676778331440199182019378419406135559021991809764944772072256789934178104061654049443589351865053805720988855561544117591112166410171175301922945797947769848256175600996478632116340513097769578028205389124372375699021958176503037783520023402386008665397763331932382614038300730010316107875873263022689406223372089853339886192957258838516735995387241687638660428214541019388902047709285881750215452258160222000008127920102582768140224686035179282509721690570577802091917266388676541055812690782349851711563323186182265993980038524407433767957888330511941957749898634344095950039759719650807676144299737432522885575315494616172066935899506544192125006695295657873729117001192590355058043401480990572741725212288321073960257982701971888913107452660364906275847975786187054223635338895284266984970686502103120901555745722219596139199742555644270520830821747769071097070171775177765093762286508305323295003385278829498658705524921383529605600946876953066472337540166329227331009556578197724380257577378518334195189913918178486023452751336667832847924839062723508228612930796488516379302483406921046775169613992863377603697629937714905481236417061338689739267499253386003577798212517120062672318920357151932401556717126539198398146873360400968781205805799609730327633274509839807663009654370230336567261303790088711362047015805770123174097733017027691331068375959198262179580234548948292542919208815648096098160547454688849011125144423740148595203259507897304350639853905175238036747283007647034614129522433077089415997605979725268455168768356059533859073663514432809497035503653874979433315471923012221379574614614633149138380296721424186879259330237447783990023758028441273218627535926086436806948434269281299073844024948314833584178460610672704855458978843599396214089169517763325240106560469866320082545819701012195818521027773772254256101610965793572493109803797359580856455380748333407432029194870086222734405902552268079937257574979395926415958973375119928734802802396106683230602074202513669498986298363697952965072742040926789838481923192808916110223079344761552781315721808083680936590488014201251319015874561439498649639925010284674950444262636288677776662242611530717438860380531645265141117136827525368648904197316984039473934109289649203356909543859468380420169696237019576695853460576883564894815645208906929038386338540322502529342581344680434827304759332722566387941439372413081998703335266566873553792320039701148697532616108181116670352192171801217355511659019702147514818662295241647624143790209976100277589967165344111314125379624707226071802490250897830867274990308015865101503415006867835055266934844627477147792886222261103654031282572343134255535084425329860887469295502539416957189249367690999864230414932508279356510764034023955375617947148980529198636684598182118184946593251106523089927127262553659395932186029115754309917188174720992785903012195507873033945738121427511055514632186516001136681075573378479544587323258135916264886230859117092927373733617545276478402525568898731491085244138783241386026639857230872562961163238689495441743069449434268029722212631129833558425546875462275611288206310344751815325218767096205300822827272762538726722834804037115602349813226014370724364190317696821082702975517396589188851364768387423632979149747197641871613604980152498372246926597170693318937478202203802368864882262019371344530238122881321683572577025636535753128374999989619659712031359339064834534435369337568531510754949440776981761603916761947304386646175906967687772755077127694134310975169586756200624061386479156654248185964404846363762567700529962151972778535131825757352147351695855831882670592881966271773757455826300494154663237875250316474957807088922770848895611224395455692228900111459187640694810733879767779507575186415828222200253418190250367253322925379286869527151132916650225288791855691113260766249704840323972018908306437342319389031320110708972236047235250316004552437768714011726239879051829925063083839407941178180842798874360425329549254821594348126021715189585046799932933532868511637714123369900331005277924746482879112777657688949119724771055053569558968442718175704191234183134487227651995935041966838133807521608828981357123411821340244732500502326386526054151366059498331944823183242994026009715427158760639854899009231436636856361914397748433206536302768780467395263830274462290060006410266408224004043541947406960492023104481483102263694343302964679617452246880660286114687243615015748857129106913819505669663604840385171623828604996419144805375089843943428133210753581621118355255478435454767686180110358143438251210416201307150445030037126005319252054110439942526211049680957264434443308334246285418123238909026173923426163673336577139833956738305136772972774091750391686167050773352378376321979433446613240509505014501297214168192602457878355925267665244587801907549857813086557262229555448493201009056397196080561686018336755995827088210020706385947435642896558497282846543627918586182941705327538564207903330946280245804194697148194195565636704640755284868194688950828591690649366281262721857941187241339556317034922430543660612022544130205964142429717997508711633807567479323798261994358901744873348206017455800887020220930106327496134830189244986498602058406304370359031017471695274823154767591632767136113897799817357820434130031643809795107228372771061307909784157529308409046797286599879624478243910366927761264812895591950098479246876610978868540492988657704475894399853293913530231184502909827628647504908086107630566144643053117416865160520630132647941818527009969576629665223616032361589668907832865565841567689182860314077997726812275276202269627500589981983533577452810483877025971417430725911420057065035622725189206472567423740127301658386609359544751017557641551038024285262896055004365150536955685045451799347339582058401995145312353396382212419873902219969678262425394597307701750953772505317085729416717578702454420622191520408171780381587655416224512191786076673894396550635571247735128006103934617179081832487221599374793238256472993012600715299613841211847097097846442044258629110176094131326637347680192720601929383884799704879117949274692949412558480861363748622674355231629952634718961002075000292481917549585938385367292663679076327365229594596545220469434650867397931524430072552058490555825382333560715059802750550678645087177633635508798502076997990450532136298233072047135607225106807363486011191415886698301767409600277784372070114238452194290751471634980577459259010261871201349875840200565951898944905820502747675082763605141872369971179213158462014874479572478152027286991127707891501165362202999022143008195018962377204785091486022114805687078949693380211928254618080613613210814458561675385704595628690358209287397615474725346224374866569075862048831494112149129030097612384978455252644409152460312839643268024082109735808336726150472730415032125405421177196541888348336642518769447389405932156838491383357050922732872999296833861321296783026812724603247119914469870710648388345740250692655522782014581466808553615709582284844725757861989956992930982796692651850502841912622512134965459220783914495355959734807541013224573290103294969900035419963834474341797088204471950423756624280298761527725170634122804245403466014079314405432555580831084346343827765727943512763625159394287227732479160366778635034057713847754944749195966423198431566438859156641796942559689130041837046538879952194384103281894012621855884948092731614158146420570887853194571618700900394533261868796608462583737233024563380554635870891401485978420738874680278633297385277136762321684204375394209909655301853902624276794941493853566567121764547349452608884800636452294832910041332483857849087042982553376704015513388534559638763857070624371626138826358801732037797501359497196306861422253166123705421677000712814785850914388894758221374057907235688371600188211703357495805997692793449305329562803648242686927128778884856629703130481179900282504699885768183308047882330060256669179284753771548413589141945817103879012177051232219681674987741006382964267445849157928791294751440516933836154528040206775693651261174850896265843463660464882414390386035730849961116406053381301296775397855416285721737567399621745957008003524745804707397180181402613922064007244262834192446465670695547207993072409395486489049217784923447659311190047150834786748033300982612786807453849967878640655940252673481078878795809879204731560696732692608775861971923269229071713076729794292675594250351916647981942845693650923632688790832074551337270438669387754302489607917388922115378195915293340645597266138794468501928612020370337405581172089242379868219126490908237957889789672088689927892104938496858084246534503514024748739642229962055375209304295576788972050062793324325287226371517437596329788256750409033321073626093022369952097594144921235634642881696299073373699722567334789573486128893073441982303336073438641859355397196363165110856098356243259259269774764090884869995621486052749760043818966640085092617649029210032294866694874906913982464843639544187896429127497979468928979021529172102195434313854345302951580156615168340738743612505507877959007173215270015324151035905049552964658926126391195910998259233492184323770409489490837896988713795888842144861973603551148977332552905734133728603587477010639718643947396650784360417982355432471162195261240882349415553436433889661277426103292645818452665127006658102958972837785688501222743976404050493118966420647843061381284803324589798664724330087304618969596374559246049391357415192848240313650190162942253438426386948301500230595592842988612669283573338917412118970564439959290949249936165912161547725074793040152177049954999707268755489409916536346362769479050627520868355012535987876328152753826624914151796558642567372973366111261199070166549359985377900480087706602294338307917183612155338285452698039628875371723688071548473860043085842477576570994672316276783344435850857442143524102493163741658891115697983232270917416991789814119082017602412394062055315899138459642198843661046888442680108347228109344065640031907021014638825613061848112230128856511029356845804123304393640117725980164539229036570839232323073039649084707420238584118497623586315449463029847310433479840600168668391633655700701089686858855606972628297105988166692730135420789639148148205671878273701647970166722448497596586143846285707989211775804592263187969544208922929673634284517971364636094800707317164482580733100577578485419689365060375337698808663836918911285510920348692701981534995249790622882675174801122040481346643656026781107233044360279231971447858311576806209230683025388330590211126921276201148083683733392754114975443004902699342906589781422870082125707784117340480139553359376855596079058098894235104295858219517489191965615818257232148197250651749439739575767234824163089940211751414863392359190829977205594573350184188379505552347267046361170329235731695750023168311074853382993062197778545743198172740678439279607724923262603322826237899766602653727358048451910036817192205738489428057379212002689535438780757590029771086682788914249652747825345344731314937994351538371466139571793684616249084413747043162230450195520862432511961798450231692295594359550171498585270229652019811900109927745725909715457219486261733948702119914582409319116857013213609833156305806663561954451528957242701059218240621144596994704545410088238182003639708633048841093359748006314358289319009856770078949539928756432558658307731315734723004692018793205216165383252051680575405755997957348820792606348319037763987301408366543707102711491404581165577863647120802078113683994742374178402855666356631591449820082619907395777793863681657022680144459963197366786173518518315700567006612266090429690499589410298008925646523855076746045998050499810465084938483311584589377617602168412382649110715458744841513009546100265466229463632354356553437202369473835487744931407368800811371588337878467914483931164607717689300044019495633916781833627751793764601920645113014153193327963885420721783259819208847772109936553030089931925570480482713749336959447256250055753878813108307551838726232682453345390335395477276658213162088568234842176702508803442171087294601768898534621131117980627758140491417480696198493465418696121211310461497666645956750548076955540090448824874745980410071050917147224950110167184949080051002602799841911813354140132200010344985631602628112663502941117634297530890922235943638225535723244932664040289791039917021394252933181483730631669295258414152568573542029039783045600725197342799433334242103632320139558114153640141121618725529361155793201951440184937105740464227972052517607821197387043776440125657657176772085750404184836555687260745478981475742681911363232637192078532511402075993844651854249763266909427918382865103207158687884136576995099397179375926635723388545615080154249560560933306454130650633778227881934403102262674712421427032433852221951328287246697325256476790633486319568545020801330677910594023178057992912214963997017514317301704684811755045042812580917424333565805412946703642947332289004452606980899239269774942160158271802950761925089100731197102610144922428977402537246615562771587891950416824657913662974298898606525566614604091986245235256669493463046821014821608620153558807292597881677018201183467066606207667379338907253144653396907883981150218899016198794636398602237787603190907491498084715945758554710468162376428007018173823375826800473339360040779625504524645031002071721927617983730004073309036966298659785735450567847521409926541539000523058421484990181796376001038255786260879015007298545268252193238467588074147373342544501838685002948747503156618618370996689621896095214849097763825945488220633758098008083005347600894361858197604767163882935861080664870873950778991844043953758843056869344074390363247011272950878764462952323747921871930884786253939949674491554966795924990399074561024305275456552174377938473825418985363318928249750668825058154636596421169262658075077042393573925425530909332268942224377242938842667823927363918570166216397667402853252753012904291290441773333702669826689015576551349867844021383975200618650648959930125487020087381361869470222380140011917142704599849756043769759443547741448904029605708165149925475843367887450927652532086972557141304740045633436885854750746313208664621921733563349327041563968455106124940499203227038665577251727192510492706323717543226675355400482475768975786312736562780579810124785343495074454832724517984975382584842951373059168435531084366443738910539836256287404368504074375808044387792023040580444434409486427585240301354144252972222523196889766281504745481754169094624323727745240667695494995430623305491261209407138960546019903613994654677927787163660818852757521536228109545210471435551176931344242702302992133446351268287069511521117749608350147597565566702100850339861331161250755005539179473942096094229738871694008750039700701216868941348425767706986356342863830799225815402282364107555313969886697315142866036359459886037485260169967580219957140396654621485911847535659033813963914654559136603433244766284347394082850210317090732629430446242851023566343256485755063719328870921001029314036817733301082697212648169501563223662377720362548765223515554007014654058032836294476083285805849179244484117088788345573620690208122203584968136173777995890194711733247471573465269179444163060677765624417568423278959415222240354699272218429540560094513918549672960495472058919134728195704719103050271274521846422876393881023670473071755751558547798417008896288349676332777275230180931918246476772498658062706345171532261800619422060447778100869980906525740495379840490488054774946936138712562382330474609092548934839134934510444103802356296759871364824050663813935779721249832600586310387962089425807738020475739771531120961243469027608877963130529148345147641100088817753293657043462177315587819287362498649174298772702242271910088714893768345827826941444130402588255950195558563291758133475007767990532829560170817418089840029420735174242303901027440749291837258067768502523042153824560866191089197639476658203178002621696494270594167971112976417013771015358347113731597193184806145609658807140324120941092722438201782500307418848338109139636491267070441669487625802319272026022222609476752156682548265111281271787004479052197689765678103740680228934774992007450893751612548700305759560261802318956896058447496861827764050849813363695129640214182809479691557942026194670082921147993692234538159513765609182423988976751879605942821634657854186460096746793526802862991134977404666407815659698165095712331912507850037961749532549887773020715850905956619316427946649740198764232186102266272917299023061971419208934584517887901345367928269741400361522562164239501077438887457019402508443538716816634574721972839335990965627351948264455983267380280215591877924941679572146792832869132841861965871042125365009608431918064927021857912672569621951649648970175556838036321565602337296762688228397107852990796645723610500885046718525933497913986811272640807512620380756058782836266623378892645346980357621729298518357434491911940672167188196935597937054637687673693775221318381734346503838329158605274902356618938267609756288043202059335497942624233589129321990363196469221801975065507729717670190414863220430000177224851087088228618105369984626160556941711652005307611765714197172076948127456112328735819139761014910202360892197105694739815890156316228212531096236089052369187076787043779537391509239428914223377028199459173154760847806623906904385651373574797547910407912131212496793453653737883022616010730702814507387778821674573061826062857466187247116972461440730166849816037864709414886795602998768492450701718396137365096210995118158620513642425379047355486616566737312692637322695038988207575345183896566579598409283698228368517290998878383051444343673825316137366784660983365822914622654534336694497994046364115555775804564073828119192009478631588898760903949913784744868819676658791106588947402623241687578234295641500955714570790184044453034318985204363949059224468565646332532110015681426072541447170374113955466425696013458653672315200602227332754972518436901098926871730938429932997917739542948700853367201071283763228796676982578539148000404997230771496536794030510008805427077658788862191181604229782842498664945126839942709578457522305710323872612444523889357672767504018590285015833197625188439519903968454957819894025186951345461013309933507200643954413888971264989109001086706858459987727827137160878243496338042743275687823831202866864676002308862714556565792956063634991351116612209850163105863919085529767278696259495561519670273040560801300704427784426030876266406342731814495633778584781863089000968862924645265542788553872807078154436561273717121076583958201458665077382004446959499512911566431740052010869536352471526908930194121994959375895453215396810844658856272765740045373892417513401614873758632274603350620140446659268535941602428336999368165814327365292409401565773549081650869796190258020293508080857321579017506765397527213458098734896476526417644932591372829776752934364740428056965693175068976369312548113531495961717106357548284225752560150821420111813707511495518393133487504377067251931119433735876424312011509136257726543852269913712004162045201083220477580996317916857133496509229319720671082170529760619121281469743761506833001744776800633763511645014575055546479611338807677043338790868391892817825761636849469472201042284199834480455441999308385296814624007057167724795341043209479142429645608944170246055217937354265370999475910389910994112934479503996697107495077725730020761675423610187343207419209454204331421076973449755629628269540645753988630302666642425782348962897931887780012858292066911340504377261021971149209259845415495381892011805027274200280861523485324972580221832557908883706243819649905182930540730854197521458169947333619144842467798033973058059549386085562448945116997226669058231511855333501763990391019908168752698075921792384862448724275390512990139015309121082734945294121445642380363050772567306392030576361999902598402363205035429968585185491768956196053040142043969335661309314766747547362912645087816844534279389363649776934958192677943949832238307332505981526031042638497900866964592150974763321178018287996250602830660747727348193274413445975525141322725172980909439871520292699838115097335741173602392330907267996811657620006138164858117024689430131811104887390887529362335287585172553547124085557947092265512333796939199927609580002747299680217352512526182564382713332372505191898559184265980405343988873059783034439472505090666121620219800920456828959261055254898782105460557292305854192944162639271581743194449079978033664818116324374806724498420362493131531288935942742167056960347854004024508939352473842134046517356815266568424847508834045596667903955850767439490689410931054622020439111911789651062346203821125736901345430915976402627632052813936818694881473330664830618281583885866506053497176620243270115761152410258968871077494676266314756650712408565702814562123594732654996148825080731668195334470478434667020666795570597063777664613956087449263461900557194302346619560439105631588830397409279293421690409931174471114098863871100267292297565095189073837217576780175417987389598604429592133941823901356226340936716612920175717228905351585043544590905379799454769502171775932310198220214381668030401364880087612780963074145274536409645813133069547464619454679505117674321349810292531049577591121685743399788476773538593953668343749822710837551737171668791265336723603141432025698271356755272691444085480889471432215741802018186604237267146913943210881066281124319914333311773814449165812737997231426993847122029126040199985128187900677911569123188840352980743922854004638548517390033613859627141768349640977539201824863901022998159190986996415896527204650450717299975318659468461270793910588457953474071396732237606543487335515644143545113629641168530571546393169346837226738380310688557085145446534680471793266675529867011594044359367656878096662036866838439953289756621130014288132923357750422282641094492581597355592442057969432193484015096511306068975091270687714654408611415636420274398435576890247589816194625033177451285892413314511968755754422148704773435420036992278028312744363860422650087460066363205377381680002330433210535313365472164178715259361020376876692000937341772338370271162531889661167422187088696400761064768629258795727179695151389885166492105576277866947004880041287378909522229293388636893682651119933221927329539261251963172264190733648460334450307559463346696179756798503560882120621465496589630063701612108456514698880143739173625611750791281687960050693326761815444130144041377254842143510375616962069104147528079037445267979032899194365597843057734462226783907701818309101476707589677604196979832824281681749887120813657323161391933609475010580545687657343982842037149475086364045080991283909989967114503186558852534564743089640444620590328064920945487131783576224778528183910633796793415409952041592534854040518343739747134861888980397564801690760214497945576589351538956526597929706271731445159496500368762859723789846128441730283747190184348165536605628413829059612227785926667180124009319179999188879799117955173186277253040504950490596070491555996942077874846501385649838628229632113226955088645712578512181536024054514829153390975728878140548234888732092138369276953071181626259774434849708873769788488256689118897296502828975424342248055050032742004433099760959274493646317938933503583327923944209142054848385694392245547308045573267884564875092176697028587455655472802917684855077452567462398249428991167096438781815887817576853675904275051652934657938453199362122219878877698784452689367086938224069917972335881021459735219197688624534379617774260068486371520508319553654584460598023299062426388154391136769836407215616856950167514424669776249026334996764609612876039155426893620657550139597508229782771558419945259601383672208648688325647691924781127558396657186305806779994852272848998036502163306744675340076765484357032045937982777611643714028313921180953828522982914257411870027033780454027615726499061549616461969422521229298668323753103670519073347467251517426439548553607418267968976838413750497056971605294211199229858601758128119155212178268406651723830353360622195721974145482559448449641259519793495587229971962486346121008764254635436393568671129310949512829108722834922613093407357966993779077250033353698650498433299003221046571814791733594348189656676778837369290591965767903595851389692326626683096642665163755671506990637765680084260477514264612037994799728361718164720791061929780026186675629351971162283591242803719900709130238870638090245305889956669795293552756717729691837191526766401876593933462387687659366242926617808923725321710194155276419875860090847477762867589975723337220585432456981697655739132199562871908309073665333932109057294579755036063009542173684151652799236996017994454368382393433884925482430167195870140201506516670390400571186676590539994811454179156119415388978902552495140921033339217150316466471838688495404088350271036944460080644396901347517819435671761279117165398162479283425085997817214235221828003692074150327328824858960429395126285605035367566346227543849847099728036911858928442357235856024007217380366801444964576580428715219653975962197209812961700533501467877803116276871131644671470674839172491229329636234432925623371521307043608969860188336135873871303367326838455887674192686773374334669807038475425558548762657510652835584181323002556566488344754840751723325443151347520535122989021077302457186205010737041431301425972044190993819284159848952795241012946614774772435188952524733166799077962792434027495517401778723504299928501185561833670054455358554517744195908173777727186294620375479798134088135271633680226552788130059611041671725080225628995181361730579066505870121056498835896495808945034825087843830887526053641170023092266443444303976796665859592027896572360179589207710290717874057229295599044787130585564066549759386215758662814545403977944456950838132707917876090105015058881552088180903641642238515132904578253021504494222926613000426362998012662576694096960061653357559854754574849970263654810778713928284395006014678490536567768207241471321380774279536885140131248077441377167653438999356099574849771312058415623855474469818710327237207224081833044475092540409519410993085697508798501005431723607770103424124205349639410485204762529412131905006746152092019043399227363916874446304946606308121568712936088273013409021585935278086542148714869278406333364769268737912113805069014264797673752989743899587627368228717960047867246199110410346477140651177259196416230840488831963442142816061862789838071531145900453211573883997925304650317918937357938709983513367461221733798108608845271683929380088067430774558718505688024742217002800385436689269188418369474175992794489503987399925782825104246989438739325430916392699820130047950360572410438907943984720177244320914683102037595199085117343364332823319119774768840422372589810076543203201040223062991515435664926656920217831745129762867938259162500166731124462386919501753035293349386947547180304729880738531395727945983919384936875947479929117302987692062911984879401563422944356283126008798538827243003028995964126043792815650858623792856744863675026505667524157881728431853984290210209937928296534241635961968665442017294652315756717652196694057970245093162170070628162228631967316324920658911826551116567936436059908700721335070061758993889856357298337694015251401335727509594828364816757347573334203027079521888978631223516341142181710962373795268598905261004172409929026990304603744203837487968728162322739231863412138526263178155683431717278342734931885652620159369580196311849613617125754397232802521004772917582975693567656436310750969984910498073029761445771973021472902681439096588276023229679726181913629679424367162789712907776458033308567012604646081302341783988202932218701493372554331758448206509445509730146592798280090051619938768879059642408033894626311070474442200202574720541337548346926579749674603861602713183837263151737185329966951725538508758455009074582949783729792140737237829032966201773630719956360424388483088088219539903763100467891719048596269062031186458817446206700644523601313736357594601113920525396465060801801477966471487519152453533608913961250161438777533916060633848123332461884468162877736365362231277539845288886386174341369750172310673889957413777128217547217577281607405308206093511607625685005868088763943607635997117228656527225607641292945307415932214165461470360502929442702825132008306677621016129367666302608906057618795084664483960978032448118419769543128399716914420288043181294889881642980874901955317625995637997179151759443532430574000546515917932493708571595588943618518980669524986911197757231209497471053589950646505443670995077080687394317034673021158486293160987317880985796999152275036142371168446328010788347776490183011731815460752432166619796007763054300864991760903898086305200054256381274089440647197641039202390672853577427969235078177750113719376644805553909665010714227261009556848104443813336589948833847413978159742400567986333127211383961963911299235181562776750372319382277277367613738810254624243611511150922771240583287332341144739597988502459465669404910974499967208226139125114624201825262761486586392056799960369151877991797987327941008146462304324800120567134758325669782400411396839480543853197761112420752085081697920503215074001787841899262088845621461247391294924793993109915262888354615879864533863171027281594817812741645578307072628522339538196609348614405522527919672623251515112431620835623028669510239288264258432610381224174802332536314355183689411351642756956780704678947086677307430596297247558706530703585995773673470609166965757273055733422204238613919435921652334211155784639191459957227626021988551535776325676680154501130575257771507318341188100706093466342752991409782454919748630485661503320348369503071342036505917508831991006721892266094518560797698006457811974761888016914772969630761445132481732572012330927810535733622371468334744163587410716793544669340836026589312237866509337593971559937611354132419833705985343733851472451176190795702956486757890909872200378817772977584480127851481370019984021290855589980890388869596366625104840178096062800954672236470745268332632145317248251765585779200098670697154140924422956784930308073976842196797935514309171449284872453819883862951444028036654993839916316091168617661219484494438200096383434692616564428251342733798347709893042455816435613551453859865232435417698493904472096918116333287350867726449175886505474304167036778261552819141784882615770760470900385173544859671600779298350686535469984019975882325012491731355988747367388006596735250883159112540740683204076682508349452156758976917711537329096036595498478557190707778095138422179157546951767663403479109833714318749186716762904724338547631461822027089463574949073078516973903992956041015018079600386914560623297698715508273634416015832126524167683792511723834114428004286829868478826978585318985710199435480649327082953781175304711936678575594951465848955235770064454454392666433175448244868629565762541985382655737040244562302464145214377460446735282812121541807208509858141744028803340647362661524783779734582351958763339452379050002299466984540925358228788040683110548956511666416173564074474665705487164793564646734909610144383719970203732568172554333837505778613612622124073827228378935492064340613609084795602318120819672971533758345102339510223552808145108861553965831104541778994475635982492262378120839700374686429505660551473579974837474781058190663934188977613916829614828596627685354894616833127746221084144777109328687030079942945033299792425282411942223772422330774789673648509803067275141730945529917891072592638432818861117097125361759165474771358784013838281263350690168673217763000454346115660912811341447011261900551558172038924439885077292612038329746937132237271513642813320300964604728281533245815931313301616222857354065504298202592489528720572836992489655929523577345208851557362481949556289050617101915114736066726227043149811143486755368158612779250426831091984031671105629485607935258630868695801470803231333368770888923946577479412631576970910110348434815197994079357679602619328437405493171367097536854627589067817657518577879197334779747277473154950860175494421935232446948831475893596064811902158082625338579662990342485818209796222303445823238109623205969654556287800459548160969347816070201555713840849362152217474388494027902256850046674556953617008222812993458592861118423269339010349385632580404000649796758407806647303954159492525978147527514027872956281773133302831259135335664522214220482051831631813900333226213624690181847739889467449650201606955461420712014242424125931373120776698407052815234643694489740883914240067996213488488615916993262901913380687597232119947290002334350657316764560044672228625810224407364552990967047758970506538344993036535428130039350028733112928603312308010328708724470863940400146784316919589410162602808109712140766188750405345639144582394169616051217974733408993397948012092728468066049421895727647816119591282989150165856528477549004789043122342763230610833392685986824324937580059498853172981804902264823841454799313363861101531579792487925892890852936122805791880864629499919772928793732608512052385862651130942877812576613364749411893873613601188313534091032131080302192238057766115591270210054289973698881664299182748580777780795065905835159589065030391903022868973965317948907356600422923696580848125702444599784511141876615209692339095797800557546144201886657771405979234439575748357625498207767937794356464881752052937878314808696325166740759580916182504950122532848434154955057503838000264790181625276733014252523159320694358700461305401914377512161621913851914568398937843065813022022609773406508913012147068844399953386821983251175221368325361083567289277116186409252777014769830218151109088263617997305126657154048491526326129141156689412343117784137803047000745109106677701807472690201694047072659918376362100655183749705292757397178489764504134190728018554073494984712467095313804480560512236764563645829163485451235054588399443529435885605274275081299197452683635380510305124966277235206641561011485663351932362989185877689751775997445204481931912200157366764657932590682697305249300077382974975605992949687714453622371741408153452447272695665327085715591743584499914797755566427651325547635638821480474028337030457947554476314821757014603132421449676072473108360978678599497442645857760733686965110397845158311600626507019618618073868908766245711630455544137753790240965689153490576151829393479327926135282859689018041899978037151930206284107993788868621417913015653606881448369420105451164713050989111379085157337707092977292823663637165497824162416990768521916284953317015506378715635120830727889268437567308436658318614089711776632918119612910731060102641662654188759632834710438885265762699396968948494118083400151509330066792432410681319146026598711988054030989420084066225822004238229071059668084730448238952736321823186932347683673559684139113984997404532641024732967580375582094818005845874118942470827746930674062257947006140446711189890833713647152725543912061399310477240530586086968779787626793010894072398362473068080102265685540448429766437495740561073269702037624002480752437949641161662302545960816731385656127826346307291505982496656381075641745827883527780001094552099770662984700916493987877873036719564349712796228492918255195726728668590670190151859164663225159063800056898827957727357752146089538557322478205169007011811144528783176591636558968046824182956866049270332351755337929144914694845677212980673484348343160619014745324040185928524672565858211948710519134888957663817517977183979597548821063236492640952411235760040256878627820783451382566360475692022414642814404144531777432295009271911802346165332810718009909495466207588685595972085428059104338810976824464351836687073235054782889198569330319088773971673317604191596036768520081944805730616991151179117789110188714766352425195887652529252577296654783254076275048969004526944354323282338256100298357554709184637701010315369181236461840582377426539791477993436305497894020646119714043029263014837431434264564450072835994731214801158371254649973917776495082969540450390827066054041055230524624567743767226845514197229365045752058084344506444142640014508642784156580658424943520224347086410314316443987383276186391676579107221339107691608161625006991980170487980114259950348140232182271064100367242528518633063213402506031790635623267904310404740951691464813105495955080323735184308522318836715245827557835347679450200472247516587386977172294609122143777892406086001655400079050536305867343466448480887553473146238776574765397385804017746168723860547299824190068606035506614391223668638730660296737711666088730679742967834626436851525096106227821179731841354357705209742527320040901409298001591022807970071777759061209018488875085218042597943977931623006225250856480156258141303147391187391371028416636397453167798362433756884757607236715686338782571701788875366276590878016571273387601213669202760688746006525073616638096468973155179864415435960326649051692139880073099783199624025919347920607175195151645717090344480273785349819715252396928071093078432057346191565543622300764669063963760781144276676348818574442948550684740460368284179308501621013590346680995168192624960390135522656422309434255989123703056513795862566533030823769885103348070640381704600031157942829871241875821701755524226875385559737155390696532170172452005771517827091743940828214546350747257873113889922698899954117644889519432582479473183440707008534217220712269662337942962572527101639776173516593240361586504806246203310497606723644127824990860932414006299085404073737134570383539369942659813456940583868927620336190350942286096027652311910364945324793829184654866595826041289343659476869033502456122327610960052205012318523879437379550748521246528831299736888587866037355529344695844810804692385167738730967998544553290187376936330941382604869100142307230041097992750818313095066077431162477151325205979033912251148377707208700379203711949531909946433062720135309915928756950641707612743553414114266698218694805309939612012364928479403875938665933871255636175931235027559615632744287455226427993005145239517931990843302798170925430894860150804776603943632720750448440757426281789117579239260365524682290445843955036061546245291906274321067928984950737279168287652134182851012369484858562903481213796225006530364576639387028408659380967391007203174649721763467463212797865523090742581264414164555958144210250670083876980810784312955944764914223088394459356223766372491260366194017538218105860174743441018174314504142708385615043077103971531281743172791291811845398516314897906891022283389605817801578393550619564538839738689948051726460939428034660739749011888900161976493233462622406137221396681021887048818117708146159013374518337977464260677698169321895946823430825868351671797969666929495879041402194257736455421750229708049857439182851182459360219409778288803080325155371356030147560647540443090319664134073928334952331701903137612888813285345100964227681062463756438527034585597550056761545162576484430620738480848586602904212511584344116133818589941532542035642405594604227722617535047250613396044542978810912126471756135316218743143027596674216700251286214877288832748393815034988612754794644062082917227169039968191867851092036131075582893698435434158173611843251438089502915117543153180656485369721798016005654693407372083810166530785116761504659989687470227496724901350444866250691766255099915401359797334521854736374761565802665922804466155006029776974319493313359169777824202978518553127712127054410441240658331873248323385333160973468579812886380502555694702714050083706396370553671407360317552728961051722511154727831345812321691881972340527214029309986532998560269525602238347650676570994368993928395158040231331052701590890568572516865991183678320691709481640580782451432842324405731550787371744526479175755643691482808174715399145493074294072574977404424753698998068411985611721561289008367409457664322423961340859038070082974092968185650153276661546516453839290519219924402918620081265119487979859053504367000683405958049621446969131118689506538461624958933138959966597543288046938016924724116247335129121063580337235750259730470340389221938665107061190597172860646858342644103544614569313428454714921647352173804309067962721711881347890176374752935718326316501489258486864402475092508141943483534722870596688946484369035511599095766919554178227882018633951176174017793334022282139300368605126319277832343266988705600056021217332872149763521509896875734185099040876163390555994741211257719358140174504526399075701520150787863718259077093120818167715973294817978398873952676776691446899026174534147499202650758892392153195725897512134907560017742320846852523839214701116928311758529747056196556523190608673512278586941839150480571141981844511081297068499783084799847074087226539665259687648560326951561611740029801286775643258359362023668108944433564087780313840425725220337102130548235912969622317776434981925841695564078613865039818798030167181328916559681094082353857173376834557304998065204444944054228046965672713324163042726180608192806637153691872192161708978713176226535359816405047930596968790242512728613979016389058904715379376366825719148301314183299792106489613937545256852534093609556602560454988501257514111085803178010097552279576448469097983905287674993344316271346062808397526629467347435309005171548695299489483152844344706948901560977559314076659389295937335216477649704256299837539051446295054979948031064637877669144801904526391149214861747606063604910503947691600335223297031207009024055014769963285898050517122215911037702408797620276553816361196156475718613831492552841035620873654633377243328296211406797813133804419034070039655265443693027335863621990886603031972819022368374668803346566599907860147362817173397054774250201973839613241991484397229570004919968224916571439637842082573662064208533511261342341890034173261614060991889959767661980620776581646055452385715638999068501977245460941129403851969160184747181968372205862503039631702936963320577237125071663984857259480826589704583319880900715299580125153443424240311804206885444387876915213577785483272385702904954306945028945816359460551449404870720683559517656487088566547372581910544352909469214313869052984247032595188909539507382734439162071318649602542271883767697704673336917301016740984022407267903856931247558185974289981181666289339431470422469017717326881797635622035834168339697339987315958054264935455932443209415533608544343272917733067027172052247988357099411277294478655880941461949680589316992779861790855057924476564565408799472334930989275364914571197744679317358282842918032626334462288437242588768675348733881603713187350898121532355614984306523706235325294338005849288299900747675136387707145683458914378656748601125482413769174752086908309762249784237517168216896484044692011422793239859298099095316468177039906935560346284334766320875999677394989306860828333950445650144692098720756452241488822112506007607610925014140503721673610932552883832328450727300665783248373088996989690971140145326091798135764945542096665820256703954670876048990590558978592371979287828050644222020039653022183506593452542842559299674757758010179191045775910676124861161218330944551785888001309408129264099418017141925149985399604955983006702083630685093501166832251813974321705005084674747091257754782987323473694863034738327979127991474711351984201985973613086872676757164702222445687364613237750325275513732250339747853154184440774855471079688723810855016758033937256753214416050900426506825406939001120166766492743914108469181845743736675648850268646118066795360320973374539298013912560456344078590008208687102028984966255941662609116166650573966966599387321498662790727400508358960587357801563009176908778566773882174285537904459986282856003864474482124839521938586287315142886068029817377326974174848877645445265196047924774688610783489784875857375164601036885424786957619399685355400247418447881081713479572020552371792605670569350769467358659868824533988131933386142357894038814971179992567305331668412225948501706718472863320727669526631433026947342175769623192337182315770094669567879737844255369268823548583104960755264442049322768064092702561843129465025165948406845534098541479159973723391472737790848758723984835273565474281693657824936765827664976950780009996192514486768780906265520061418645718548911079866375593001308152929872262981450364836685787493918058310970262091724727141698749306949843787899141363655348854481714163064713414827561919950723138964648331855357352110821712765179124437445274758226748216064170465155856962968008360342854262515446575369418114785500457163348158207057429291360384807253120986617098825148582128256028065769064757606948048385261092473061113071799218490335961350851288414105255161152164560001571986296188716334175923703510444194024269942061970716105203212406802610246284357824991163739374577585499327482134239442822322079431409587609093228943901091587731491155705743455926213441203987947884056902423750196010328818265403707413149214261615454892994188845900030881932018288260017368424563370053930970424191592226458290757485521170622819817265313870549499468619662231640403603753917848667901031843333275632738013509861510338147444160826534537401433542023850328680017101598015303718316593675242103851873720495045660248844138042157378829543855308192023372128450139576172984386076999688645756780462522081408317839431470641590071939274366544924692591847216476273459736545925343889278159299830484527084960396677659656841787572386668131615577205023896989999468932731895089883437162549469169874048859463900406392249072034752130740954992413368496549082524716779403191177653900206969837193386511660740504671518698174528557914418566010337154166433784280293702545969666999276460459538265066924763742513916713764271832121744827498448247159357553672030429061793471992895359399446870107664909517920792331665852633901721316826227222064077148883033662918946191439397695518324340744965918415361095815890697423142536281132774496405758927358619068539961130514297146780239549456610892274740560402338063097415134264353186795443509180919313569355785686325819330069485180089937481908575569809209871421395433551591490207878802867131273975046585208017158175795270962220703870834248991398370402076921208446344375563100526475659720735015389845810851057221147228998779925654654248030853833685848746734494368440344980500210845428097506407266384326769595774757008419805385432491753073780339625351594499046963065334282409182643393174718236695995142645267240115377222549992648323698397438548671897271036457397211767244726727513656879731676568221831099680046995294463093917414298289637170943809878105610655107891602105073529308637777752964808064473268991009471793133583793000679921380262890423917179847798741477008192551044960338497555966269322432039188517178783384843888085046871959973211727411836466390899650974704593481243699951191844765988468156483956925379958013712428388356996884603566937372036872794954290641103354992225176111645250534578009203147082019771472932050871959892315101166833049946242845838931027286957921296419982995949980921745983712450329281942471740307973036258700630900995762412760606507159898921546105875259126437037296616462768011230516464128957347531504745651809048766114137786770074355580438934566256388489446570688016774417683676955452113199401394894442423352148534414155290505282002689977756839869624189442160072408444551855877387931063616064844147221233792078556779684573285228679943834325193650312805828789825013859873849713672023551378283117156476057266327216868309809381169404268569237218280366116076177080640260512409539404051551599474938925810405124515295529159261040726366065783964098390184518256629165932358257155464149815532843294660901265561079224228880361468953781287086266084772756660810190862045678573618291275301017430762306340702102284212283599991994400278246322208695057324414562901096242540655940284845068724379546252301276588923604646000002075089069596287650991639051674882004155490495655077038137334018689201801443403679201921441157157205807517774628229945447691323548932716257162889925995312479258929114540865970759070158668613376947346891484203599091916051157082946782407213141008657931198478918161034769571373557151018915605731799311941466639690926536402152210518040814324694957451510366233862247423770187233896443661068724672888702289557740520062933770470434915610094085130354592027229976167734492085121551341580429651288520523559007994910322427698434677422045717889758076318259096884743768322698610057055030541549669480340274337117600565053644654557186378504308773978452091308817633107850631092142490692332378192739474957520315315678922420355741882952382284062577841083372079434935809737358859051254998842799737523413994518522558684915923117793796493529559769361072689880729193130323067510593905847454914105957958364937600904204417314555609929636529672942780817087701238676112395450549854052855552709569059517963182953387166892122777245964707112159352066646236366216736128250997535509956457913866488685709515362753433172516105826452596090711057797417093077457252857367354755656976128628325942699918565402829712649229821615090902905650631939149108405032045523087663178302873942277538806581206750555748707005587649049424995962559642370906817165079521693527006336542578085634364629613458157202103319865965997669570410908313725268012992374611359558131285207470443267089057524308972670484999868544573597335074424178219666015272535248312662762058050937826362793046007834220427022877437261831763208921893660141313344075969077012426038286696077558899408490520176243702734283236215172667211694953638841997502637275292044472247512973173423338203420463407071374258792089905874162467378443470175114369522834934965796134382665225765152484571907360239996661823866829889865534521417550093930284006107834546103481966863378633752933997327773898641835559635345718706879574496741116363397487129575730179047914215220548203701551540688660577954941360253871190462334977834260574399159262738347559501719842608354063310247056365837293947856427100896614834482211809893874533621857045483234251111507875755916750428057765286044311186006848837766605693557279125578331791474766713669193456915932542450032763886213148873979361564760073310691766815193662226299363058960614705358560697026139388153537218947187563783828617606188646256786148829131265444820256988585873963886982427829361333473325730472498720941395566043811099909477509033678559220266715049960771740511353447744918528098105270590519068175702132300799299509896964004478589313854161413243097918093954001203193713498562907220588599232337459699888743993157283530520759360414864583982099100828178819872075866129237834167741723315372892147561337886940192422558209117238604224332185742280185891826299825196793012571952314883009241720554194696960484197925404744550314215183103724086302635198350118513537561670740144189840268673425726456413042580354590619534944037278984301880368576794209690289809600540330700643710311319409158930676180271281406879775496136207047724702572452140807793479071049606755036992679516851111421074183938701372080069514421732396132515668669009024499863005940290127423701156253578147358363964916422211236915233690142219789635051055981960166797018735169034090377411162597976328362876200953093804671545809743236943398053556838737971065783744844816041391058724185875238133021783154186716101485919086484983761059095380624409795432963453784339404822406996603293475777689735878291570618200816205391890907489539302479367579168381313345382384604327343815872269063757006478314168524693401076450328265142113315148251205496953935862105380650812441449304546432013214699476370280378892929288249945730551194168406259811606462526517383857787256268095653858587784599096691887242186071960681579226760361897142906478557579104270342752607929797419198920027297289629527030392579021701306791703653848572408110079287358007709510569402636312722505710085657536818047984409316844773192981082336828554409170816773640891325697611724786926255345013921582615884730971014365138389759327252196216335283039734885364190012012533895076913778909105247232906509503252882082069309635558401373211681225052888197622798979431028786678759920999197024129579813449299381678704207859206003574200936899602203160889805941561278826427309555697510684101405704379076896581383413344181744819253081505406065932558500072004095077580695887795498847057282129038214734142275359588603750697598131450996634958282960089232380825650535500126564642395694207901988132757146871772156565758248803385100039439379529122181103479976254564492148179632610607568913381900367300923783099230286824964093669584399231406568171858085820707994580641576934923029105573370307260275745943484601951306865759175888724603457824713060653263633242198497295568864399412875191218366140368039673867619414952495271425549296148948882588719068432988189335148596491457436672063260691225926048657414376182533561056342271377745902410261398063990780929923785821066913883147895289336584319167016736981439942111357877022265563414140908500181005158031775434536538861138995304120459710635144388462234381846128783739128443832277661955864585992149780203474292412647103221203370858028623784235085145503002014505545768234547528281823657129152473725190536718593064977027832295557924146842067361813155938148952917418102376469361284286641107651339986319425024562852889490938869800568715495617460559824788992439546616513114949116726731991810058447761775119235336488711734125190174963638115176305337162728868093044042223217304144178448991478023596294967597494127322688321059582719044001779402795220134902037869398544941760273143305494659585460821179286891758526530148187620363250264481820868303667718871358679164559979357242886267779620738672729717353408704435994463588307383525605838502895062819838382768824289587890201314868552386493521907971594957316572388474409885993534651277251986011378216504301657774593194748272362845288721394191920139366801005777692240337368709677734578125096210194133912047063727468452052145713749414787499595917840012558059900423095387497788548556195012889778778308675427139324478377216169221100055644783106970537186253674904225767430142750454219643465121895376225906629103683106118058659050618035189088049748365869067680997783333711829196237932313951998709156904814455480293285998280398295183495976531889704010323965291739157430407914569747938510713087423131648623841047710634843586508147236030579407922798624597661874619298926550036344678649639675367671139492618859021383723013096167534407097861259543783296575182011762976002425471193283969162727894139528633004544627520862142329245729100027027488516487008218055280387894561866803356914817444365287689010716215776579164797943632416682044398283376497561173733237062120406267696677766353877367662703637152693477252520625798954353112324694135790773359653626443892386010207651310222828596646722182242107585083470888174205105966342085455508138057751927016244179238824902894302201956907695610761624280313381005088607826516711377645508162577796673013376258224584257214326107403004241949032575928763622536438889252296902591438861050929586535745768167680653521254149193778961796753076001173695984166324442057391220340535766374794249416483951527513005802309961108371341469616887861581858648663287711079099499317326401196344891196651972510542374750473357461831666262560210689828466267449100005940885390370557748627553375305439571114032543454135932958495839027376484755779970523554757196948756059661506808472035236905679434914974607852194265313041690271663599108722793099984005279109945646431593064429955898173036146788555482277953792556898238107732383903187722616479714835072790989415624494321905902611644924952380288110964413701929882448657019038938360455143234150815855127518790263033205854159104015969193749667847180212704264521567690373152218642293037969084568648011206015060218959317943116626362661117044686760742414220076645486873007294478621985008214527977678794924893706279624647014877365743080152331377157027515919366666038998298213329623435454353347249459170322924483792816725552292585554658942302180620736784894766050169961981885151041568451003738961139722257947614733085358100034845225853653073020405197775630725741148417909308118555079280289966759669722149533131456057894195196411979309541769937513621197184891801768613543094154967828838273936232869141351465868483822459581279916164883383882635688499953515566836103854485375416653962237623773729708230624083189455902804021180840820445205641063249095640011681919416177732017747785658984736116257387118012788647256595680749751678771477715742601046053233248271790230415184171912049925055968699476879934328919191806661284388726887260686957672557959652810474229841206661948268281529711753397166065415628233640745509126996480806250257706181449063035874895143770435424702647773207488548851248100334544681881809600048287342281727043591977397364262171079863982841015211524434053359245078867098021191071418608329134055266523646441892073515117903976892152247598097446277954687779400605899108467085872833152712361658690007642305867602652194277341316262593093630995543397974972300040020925889473629798982525924123740590400180225377253783705786549809896030970792803820915036356075255342749143753014993628904276229183746603580488550484983488895403922920339264402965145421563323953606928317499313197712876289452711789821202577014878432701904529953074775948283817500964340065587111527200870815033457044897387294066697479135402022858542597996793037948493755187975938237944500643290323955324657302468940704575118152637073744676189949918166920518909976328103314963789471173392977663457498215687660554710118148720277567486778085837299401910955258799671622930873363080156938796516539103524716291984695258833241591439070608391509913129722540228860154727653912147239063574843980008440950604668701551755659256126554315957849303982585261659294626269907587758168384666850495532575814832584111982037112550198623340529395371660092633596670189426092779188534898575066469745676228391833031786848962206373362437587887104577198453903167773372745783606248649736406623735672211864632506658496942269085355396120294117363708832648028076523165065399490450071960070682258791469045533008250368204383484466607926830712672653782225827002633056661525911607865616898533293158321401076565268743813992544464901988212147730164985174676244089751691728759329533283812021870240757030574278011710298466284331473266641097511017856311370260666909143340496489222081738792081627498441165179757243029083745392723557549626723700596879044287006896699740248946135266365408866633064672270634172206115580191931321155502281220190966210458937960909286395586180988776326708104679219770637309422546347828593279713933818371942089080286598783519705890651610238588763322974620035657903340050138024772119028889977254594535654836756641570334472183560374615205404630705856888630608227115100444130340179679108016406826050711916417373408527469918479791965603890223138414068180524131167338708047566386854672329077986534959181752821954675924008518769014098278187325889192725701934300974981072578608025197044631805578750920021333206022573765465622956923859177494780421641038886740096667340732511799886550207366030686714119568408886907268629934539057878946870738460410321359296722741514501795645054988068826591241946934953068751874994086974630588783366867488503194456569129515910327817569205025859612255508090313187171430777657036114702637236731441097286353393036740600369766373183492932400974285306295556711945361924850752630803921736267226724199634371182680068805680886673222475546214022725950345801209325865574619035062773447245339487392921903006430093005784586288757639512200145247409516511622001325529425112871136717429363408117421297656344422958971249724052529256918145651067073872662261254169935720238991651014283711227795048694421845641509247164094209662920364270745813164790530047462347445032076261295073366443520319586677601019083537001055682111374689005169109106563976777625168532212158049073511034392532967072748422971036792520000788034774756830459346496482479679302988028154446896890488325474206871777040125463097988229774512719405912472400917212095170800359750805942165039953938531346936420377966008816648159611202429551740128418131606415583590345865432892711014778306866772208452876692768721733880959793488715907781440318674144033430023182188844147854443577913772329950605577758780687855332042106275478340311401881898206428557873608083179984213091740413128049630111953520038735803339134318893755594274273419887043743182107878568200671363384344163182460213442114048987913859730678349050178376536735910608041091015356984219000093457866633958491194264636373190768145175754941706082597184523996062044766198538846227783736530315689074528809676067782668095547625925160871167608809608539582402826353507029256386946799918735644722249528784181512913400918235622156600910016737816794504898672693621038017332854988819116373773693871457582692336983358497498312983069138977058241643785048443305688782165314236783306582022424880283163553196716592740139840166288112158052324598852228189170335075828643433507414429925794403176630167748155410087329811967250258400496158710568866013856649979476724232250245994028154423270869575474310679657735107643753414196725893160600452930164368035200799053444920572834874224509647997246567594258520881469593476679931846138223088235078811172914556498079854041157371809150934422333457192301869280936458548587210704997937003616264030237876207019068159002421665841235866198940872932074942910313872494560963126955335115770367761779020029419377410839685357451766462756257375258282161943192118296495532786422599440764360350072734801623708563463235176987225443394558360745730556572393044117585907935755979387534339172430781793400062121507752482733407484459589104979474204541530073426643050743264478324530289629795902982623676654111470871641850210444023315336372854377184502886763233296777232775262079635552057001913713844849845817021540939129924442030815660709873223814474652714559835892743547777894672140677449421947183407734480235582643845972807370400331067199317329410763391770277365995249232418014002241649793089459382501125112532702870583272503047538050835686668735058017650316760515600853900038887058041365105355949169591171509231376124285563420564785075178360900189987688369971052861424875798971203775981870130075985367707136066042881327671300119141141785903722393392962894482100148097025158569544442935285363310857671835034194373246572179444456499531505071392109241395413977471391268703457901925893927640440747777552853459872506772103048737544563944649665540484041550369175763332434742567098488037669112145614665965633660995611864506883516835540384898845590337592197395858214535435389381479245952585283746270832312672079964428693416703871179746375109950530015291204856179590870521565335335604665416085323954656197919546828978967926839650719480300556533589380272817145416371141908154736049223677258326855647988811724410326049625422156789725048907282882443822495521168831474149284426951723727417204084823077663552097717507008117095198520472847651433739834809531360085003426815783868902232555767392290011753108656564791418060381550755151684715760401153093385050300799623155761779535676419186464773015221729087908693613489217190286230818051671611386258929593517579759410093388318506896141488012043053650941373576477072459789411852030508608734407689080992829234409408611647292741108166481844106313115011366933723489918127018233800681933611837093053350456088491093169988968354469950841837681204638667560446771138193189026246722849397810237015404928822438839131383268896754596354739844883363532589816348990713372901339759353184699555302501334100292724166456307059596391645828346288333452619155749275870646946726908418946360368150363214533154988775187814958006401092992368079973670341833714024118106313355878698149479576698916630922979083660753442571186825374548646298808256574125736513636336795864135601647053108545090238886902265021716643601657585045931397790946944316310376794052612626020644287675597710570135916631080625445298875249932119377917915221343477774540248799523702551997202435430056998496188304119527526671909044872159998999632162269709619934763315668480444241502305177786529935807286135665421942064337212359828326172135633196206372109024519195935337305757295904925347560346858062669982975520346733064864460345770131380976383288033712810167389587018290602441955185013329089973592739749279394060534724998832692370759140645348754276753179452042414624888045682727825557959629771779662905904887918400670289013451520872029849042043802728453946118058369526504147081872820056732897772345903678901370486966630279366050219748055833259630054717677875798335385634687085536985722157214540285926118796064513435349565037566360933023522183446793321904267146113396113585783126537052786083538685562261725163120172114952123219048161018723729292416505591025830662417990749905631576622231937372614258048139831077525350790903897805263683311890398711566121198732106279679848813608710845011844337126978903696159194235308511655913097372942223297883929216892642888669733654519944938848284463058587487859908216917835624158714640926838338742071174014471910768349802235842316251983210969518279281076357324741795388689637869785756760032729919570186457784614008820269742714921411709107950038442590325670073590541622408389475838889564216047331431254709181945280867911524216608398255779731093122714707524564546180149142849678948186127522075176720978595177741118385137963939238095037915852538185256564641698574898187334642002553838257061352479299393134572228138828058697057589512606777387440715795385919013890921557501524538103332955224124738357942191474059350108703971992258355987056316041731867584895452163851903842013162666349126729794149478827106427844909015225701685349074248341726588570476027408722928318612764360839327634924635186413423220346902779436173813502196069862774522055896470498547629938854143167531616150523500700959312608863412416640179647497863750828273624925998529847418024660265014194779526212999070383287041565915346842170429527711367340357929709279192497527405482377646756871258665846168161658952425548051594085810054410456769400532164321214903042740845378754453958555841573358101154755597259601427276159132156840998483007998311365612829939047319251038001669822640770006839322888429476281632115993019022572255006014951795029636690022198235623433965864007381694422401705461455001537962197998720150113443385990550095294197484185271720608522580435835463049723158621349439013207106689135329181577457634910481856061150313113701058607994305502369169529052045232543774633381642452778236587944176061935151798461012582909731454119706019535456718990745558382369527849353366043485083242172002340850336009181383572690165412349778980649867552287477136202991921867556201247253589354696913949101779357023922579244650747937435600111197644968778547158494926416543776726807506960179748707914994486496131268381373083759054274926506784995936283527587392259029623365488643536975938850238092625705642231908997731587025214288356400772687508502204876245379021691404789165005704922805355116878065028437985315829276031846294550453481781896158169044443376040062946230657420094077386640115554523015555911312689287243972585695312393336883237729698411724239901226814441471346335603006236505670603235461249317429146381963152197055311682382031970322772199474500903190844479767487914619177947344526382391923747733097673251479525046272568769224197017879064779250575797286164096383696283554007832383882992997242225030002736297175111738439735017782450312196183805684416205413969887520026956785461590682037192981002376441267209849868250166163362374453220837654168384212183555143448755406307477978320545181011191079713940561280207916028058805534778297853731904432524874042425563840138622305420028635751212790490935032176616232999287252792866861002892086451747963838111840866340244881494146850786047872415637108448244907792832248833191355605381642357318241976722524070923191467170810762087110061908851148736302228948929449521959141431015851146613063639146537014510841521000026172493943038701535056413602490934509666719193240864806722983632555935020449337215886002749412510040051154174791041240315857502387795906862589864079721902557037742436587627175213943327913519689440660404024704412767877921196921327135858652762201235076605517030330700586415697614081263285303743524848437675684755150773704925093895090864267580338380379104741365559279856566861996350842472870518903237950073926981985159903361328916750142633735812389801848229685748766996806821391269836839926595444772562826025330002482735060307151893597930352252498161457514148880301705933712079675082845689461286247979646482060836067439553677750964209842098672787700315753888843831871870274655315486316902303363157111176433663612460024359514185558214336881677253405426179867456821472128788237145018350366381630092427459351090109791851905399526682526985200350777729903288274366134805409408022919137311613285667762531601013010876241422774422809176322960045963745744242444585581394908509138021048205590656460366772884331038075942929144257827486566083966159063818037111533726830327266129600762022481296132800267755610163594326218899482739922844547243536506346022683393496961619408736771994227986757861912809028642259886760419765063161133434576498603017231464252798109480600020346351470119311735848530378709898482708092434111748114464046807989892826107051174061047816454447246291596965506214035640364919330780097292779113877651638300805946294197662385946799157620877757575467408807054728437002929866403406794694186828372160585233272025965516742812929118638608725740273613163492576253150235797824614035960192110748326545166010207173729418959701187124794698426714953304171332423364844228849034801570222599148781943977267948101440122005549252322339342181365113025080442530012381418515969519712677933619898112548442101114369501320061118689906575925401791340094422439611137394616231669092126356912650727437278934834961687999692599790199441365574065324585921524870040023930378404519615317713980434697458304133283590403482838496290636476788369390297930271786494627731216810166635745296342295170443121340060391999255452474218785996145243500306691255008653703027379951861970305611246021945974117458924384741086301605193815318760911912548999054628514437304043527789340109788307608556030643702940285349174800101165399945182556949886655023059144765827653628149404957516072511529573256048669438306954086483154226154162055960240173388268041946329271251839039136225107185954277581344361316758975674494977721543446123255187706667560824941104958181357659982866371137720576073408653966278205127757714163056064470528257707620292673493163992739569753982735745578746188371118733246691406997000882249808464376832585682272137565311415556804104660520299540628727497706460391381584315202025052706027255615704875453342787394422971756936850024665538253072138613440185521741311798071699743799021213810791152243799344906898179123584674891929440070586875480835425062576967290501284731098797422345533286471317044913438560992284222397820229974927388705652120944476243880574523571124049095163198847861754175051103828152264507672404386746937637586659572022856184189495940616438059277505450704487549837194603319373169950537763936546017258150998264922649689494136861221497116090361381783284965484664243277827056367702555310369231301857373241573940048808734194855224131011294615250482559873570458710609605100050868441213874478196136159679915784532838393668604429227984262136710063025231361800460265189808820205473169108395947483270670458930925159809666976270673727592326040790776604461823943169233664637212122265215258082146606885840072484337704467075151040395485030839756252143079235272229798733662808553840136728352061900276839919195240139819555673046323700035586175986464699929900503264068387234245674032784014822310329604679068048966796912046338484835386950905607824094885246214812922428074957651516108833463652789340244802764130561100751448145320535913014611396256441533784872562597481823133497139358775875259259928124143555384948914796936692511608407813604717755001504569346607014198941168778416223095975869902951843017623057394531132195832592143148396167024979603071817402496460196299312642639286919511940503010007406752598096502061059699276224958783848841952732877322737323486649676215700622955598043438010234445369319824280306490344795965672078046211488313368604781836193874036076548673121304043374429465316187588287856665865204285435948744907821702776513602656524389552779319291433809194191912172249615835719037758853751395616759195927046166478161190246379839002082040226104111019038493571113909657640525013702100194137258094081056977697198520607635207676455926914946167264261100358663024816770867833521355706311240717915777609283336634496861002125822866865652202235093996904825742732506820463617288121877478701680738368566568394436637440331211278502067625027473316253158611938910494855428038446699498661128255084966846193506350344209155040733299300925761073556497117153016288770424385344867825891503208022571886982972171030008445152453101627264346591323899602899190151441582796118930686666488054630183757369432065624407743101646835543701328947440549864299279997232620708826343948148580030344051830415783066548504619269837821004268341302869805730362505255221562484884435859219077620441085521196580926447465506567765455268755451497046342378833219394708404013948704620404083127698293044653436602041476831991125020794054520644003523823963917359967473832586196279635039722164464104557567348661637202819223594072818888674950547448202524979262329043752431960857942456373143778796659444736671396696123751584205684626160012129823481479157640140640368217215629705683194559109030120074091815897495610304759137741592095866167583526729933504330607454305400252268590790403163332580613341904024353540438046341264938691440905760404325173307334948786041121732718379935621996075685677099983936058659180902146898651398543995080635890301277427587456485770177511967754526657681903510136713864042730460124107163003264443652472272574282471234201451017054525364765930851869013218278457189905907392512879799931191621935641527131325865429774027286146055120672631219698782798768647496094365470314468980079177106582724407582915627995705066731746090153371950391086634204277353493563544491494190786582454768544490850605934007615904691981205456891389581163336248430279080660611119561035408313377108609650305492411153177913275054478809090811238297314536883201224325799762203997893656813995259940204681325525113917572314095650884579960144136229752702690804465051378441110711734960443577134356632064447804342342596642656763156793788078875083317925153563840225454560748720291173991892093010078179440475478766447937801958816333433342727532865427790926277677680911107850140228741021191951327217574182082728490112712166235768159131067978147431090251223415799134982390162095246651417664548210242022842366039315463873586293365257360704305422752613884870345893361653471356109514879232710857368008112156983589439171768068332545273820401650620201144254643137373227857149586403312628287491444744692466649208880038956385058526044446629239140831228095565967671800594205413674713066949470458140775316953481124334997186670072860037018170232758558715850889213070068657597914497469231928897411701498106200743332266443108989229151658523671511564269602226161924945866448373431923211887548243151218663670622405999178173618505668811245995591357425099653861752637302986055778745691561964757829095854151534424402576408066591445530808069670388693970482650543642215340992297168830864504154257831853000877778820413593842524944299081504736019034687492061025518478944515448310639514949857344155704862722325988201781743093873658928379190696841153486069814122181386875812036118311120474420844361392572739582767704365552461428599444134838621954991906811996828410065074666852283536614146558609284058719597907379241571349532104622910511371788519222956252686969695236120620697988750820147747277029637703625664495412941012480627368868105693959661354187870676041515962466098526245486374652080449702246539394753530211096978321037504821802402860208748642830159899068719156935823735076635577078610314169994371621657083003499755775319220836680894246634317621321467115891363719025362942649106083411803367830710056599958608234035734741688848586374225894386914725016294599738980226350335495706067827012503025645737763318939728058161724562384000279160230126410850635632083436428648791731204935760206868547264730548692144717445373370194713008322767247788263456547434460175365378647513686068396087582004437999851419437715307457083778521551711805714460617612152032253742534104280642256173885232983624918637620650198757326562853771703565520639216501111930203331854469666165621674262873431611411966813124898669896372836570708463055295487639236862246542352291185067454338753327504164851854636591355696815519096764035439449583339557625857146863027060338699263448993061129951601676677957643059764220661392965796298138429348027305694347925029885735115652977865334225038535091429785864695990342946665733428690417812259717989614706430044501396304353112493618830285434161019850749744106018015984246812638612369501487809887704531325214268095936946359970831134087675092468024034232957662989336342640772907944346643741628571961075403563894153674929557929176065940549122905205652789161454818250993471848586739468324870891330624221440923773364796182970938405947481952004811133448941059967296005095739048595656827483632777690558667422958713158505758586027069342962596833111107983693438314913806854016012897829818035299075899169598116092377788671640913759562954619799758401511905302900060816086993269751891732163254322040058055019439616837821449391149186133361029769113629000680180242592355602229037361727481722019387588735886357266223384081869058248496047035453007073923286965197338398279175180322733357746923329150964409274472250016027175388093229208882463112744592995911654677682018073764349095025673689908029706380053393629708050066583895535082227330210866607931674836270208671679452034865761666108890373274389291481629031871745145248583580419746755942599968485344293274193756234599464835577930719846858922893703691961460490679157979272047642098637249901960850146702654470404309804421605233687830068018967262764158195010878797825047056204860759052864586924929673657795595722469387323729592131457114551124114714271943094963790282168244973262320019622377789351606058498213320970151999686512360061023661743076884591019625484240431418680290548821737671179590770496325269991451576722951360870109960358542995950752907421569029829978551585381967755765998206129535756702326164453493206574830445483655327918752292300386316670374753824785191087748310682946002511607411006874345028076711023682159788527045794050291660339530609772941671982771125975999487662340179067864662979196357135896715385271625044628262613098724472044758434512763755397092639700861263550133029940415925567933863031068802073861718858689367350798296026256207162915395398620504546227843914982759231056712333801245238635552424035674270025469670378280323994549676335539138855027796359666774280858791023511518170383722396947899137923693933535297932124368408604337001178083168725029684507736925430973863132705627936116445847187492688195101643571095256961364439930684652816669834922091774730446651382408067044817288246697478841917773775898442939414512146689131661112119141968748962459423341994586337218562562188488048917213137800439311738214558845797810552665267469275480332058867563948938057722856802996270712730263486866179490134478427398271274855585250979298301847231450291818355655084253374711782129977074089295819553050416294887772014792150674519496619895647405338080284610454179616036204842290846670133577226106679649254530346128293239725234537484764714604885237664773225678638055208012129923863716529831169521846830478187281622277259381923335264970346036454726973195662229959684721162158445943233589715450074541406279273036253675983015034204967449907830353340406225728139580819419740633371743699220129432249603897735220969420301378699292571835247281259269824825640187956256341492651423866594832772546558086016773256205556947471674948946471525779534908240211356304037841669656483431472020866787643728149678080072310337756412533879598629987640134339991970838805840932018299139208105720810417671951908423728426482150964689255666751277892838251726103222543249400774778415194362465239651460522947962259250764751175920671917491666653046501744490514746441791961501875430763431354122680550295281452725552577714750131239271685823374040932639209254179867414849592531807788606869674510950466319777170154017482816559413912580570167746197686968732235368839659205697594014181257203897572504524201979547158250495985440156636608516038972199265399566005330523529275134576393475093337486875546104139998651904234491952617941737307630087270177903681310110432560264549431330215663030753910242734633723481526197392034430687993313492148767345094799174559917550812139818094105592728677393454320589800012036995277582127969061854833278204792275687205179065329450815394346229513765724407332686720026841674103092980314580185743206327126909626747134979079840999678898545164339637628057599062003255296149762154483084788417544191037266943889165578906168987785959682153097987818176284083376954321934953034059066102942449250623004046000754631078566938108257987703135280601544348668485044364741806258175842481068169983854620173153609766875308485013814820903470497147197438809907529617019707072120641473409785872540698977265973106700809843248180958968705260933909769872703525955333286878718343422895502235561978146572340238707285835144757290488463146878572300100685272631687141828366074125190237937949908259127295006854019342435207487198631029814456311536462605142669194720577118410670091046566133725100086198365483344952866040033557420152863453797370654662518268017879335099689186976968259928522603969530024029395000713321537390325518837179921167653600716067466330732410969309452791483494469051439101204179501887622270697241545932284816990922040880476434599940449123422921793055230453916070512075873109638487890038889063039128683262687400180353793767120775376495162302333944030615535659267555394806361176394597821840630690796515669775421048985504983454121672492998482469145089404326390353732828304901730185222888380521908394948884482453966703230889107717284622572632227645571484527609325099370248639342134605702528431346165199134252831665410207152801251059820228980456046926365124865374885091594695135501631286728193935180202366511648991944810169953304734435908318305899952579362170291126545966785684743544598509215882038482786829455411259223103811716788952903604199295075126567166496771894957855116233597917383563301124577551384251949915417130591975399651982785433194649408810634086210232296701441087620012902612379385595751210806281774817993178400906901209329335448797207679648435807662648100576169183728476884615833409282195493897067250988690876462662198154924452034437548632713936900371589929573497271361658225662412342354126547488529870038856995195357674780868612547179242862236083525795880175094660155628995498551583276913370091440079633225520005488760989342311580604878789643483612011774240639364882254041534108729127430094818631438194677921324834754424308251865194260798181684286620911768014035466862526634272320082735239669899960273249452906008700643414985771352303119967531562163347339538042389957290392427859519345300726609719870715781025123621051588068828666090107496997334831103061493388021516232112166132965576025280334156018396334349186414876535810725097295189799753961697422907258233050034931289039898591533068838059606084429952816395358803194494428992371151099473709539034414077525497126466763284327995411997112627827963788004266666985425418086346201663264230549752166885300401398725420330158743072709857052844547217144269467440786577636151576673726577765614398454980462291257428940648207656071471173391670964258234442769852445478782375422796334439012862540838216452083737745160688108449182840939725055659092729929731528656502498687541287441373107510439492030326292802831993035123696789495224242388738307487203284965684337844964438364337962759334257606189412454597824720091221572555586206614609160966530546731224874224527327129541633741712444624803876916415160221997398243918988801542679264776818700767062208459231256632136742653985736533157469006721531164710699999952589783950612179018769213069673780738173559609725052404794171446304007684517280641539538308813302677612457019414780533981772641770268956329138033671704741097548395251182291360715586899071664000703658733807174177412620206184396906132381298722089358292920321838470954821845254696487286223525086576200423759399526493525691582297066511071766521475932012822643398759919452462097384650587526819103366872930470056705309132056898317007635007402829618781604899482553284466517537294649168695309131800622624727389198173919784608425031760966753075890561588573122530374107435810070949681976654201336902537463248772898053992817087032894802749234840617641191373212219762157534897117273700417666790289220459965926259363806285231164836902533896672513306113771272955542712161501296091980512394144678931707527914194260916907667676478559133175555400682371437810469164448764242337856273689551631424506590650444071287496918708017688590816054294231113354799337138924309128938376464073581310216019920084198933621449437152139522247568002838060322416923809831643530924376097489199230333095480252213070289032624727229412847749098640772151241526468122963006278052369760908043130562180524274842079346116508064466066649803600559400914988211569193024252397661078800016051234084932542140672647358076719263891480886717947243098576709608751143781050359094156470783773904232731720804319397517742116749730240419222152944329916984633799685109787526662635965296316375226724158404376966618647298880939044044381120554903825466183532165120583703071564949383718952463342136273719531927280390952448326537756799434286454909707246426549932155701868941237625913079845643631059337988386259760532302756953305388338531515747824494842759241317794727783712626860835044503828021469378174314458013725361352749300920206506363625481142996377480446318152442138591262616492253746439722118714059309492550976549101650287170394890090593823979109826034707622355930341311471974825738421724302883828020688106861751667369595434033595212104207147683020258230068303852210992885287512339313540672469721039835221636702425666524226675748978047146472874443494667064553617212067367999460585584162313873931580541382293250665347547215110672275007103483854583440549218219994044481024146013882779004563388541303488243860699728114408939952629689976547586843282017864771468078828869225652492124065294038442095886455193201548708107909909096776130372226860551691037420070237036622953932257053588116252381470080702053794667476553854252332680968557695414740294932309512980918122643860971929689685159210519124537140319177868272902050949679145390947437460531006662271234400341345568823078480385403239564030857674501155375707570819622022326597280688298274704287888973871741832765849206578250118147773305486506325244987325943606998215891917314918973231216178256368425787127699174829387426364287448125883350379225860500397154745031045133632196678213287226939107161086957139603001988803472792953052190076129937694479887292884872091900874111328802137717840884410050342010972150890680287617537960318540675031353225730869652158954381857574896954477771490933568588383913433381702811502845584117834593815864963230585621118733336194462747556447308141227661768943775985007544293046966969949284035172279806077738020281030743950442628920362374136403313509566329902316557196432175933347359707991879111083458997413878661163298240232407591017539248402418221734030028137591769580833287711422507143809221467047802459905748640006471892388578340213066016612150403988529204423593878998313487716439897341071238519983774385467573669625207257635569999768110334495543056831912988485522784637240018387915554694365491628815674786922286957665397910092978152430237074812774035375117411668057712993263747154596998879583817353666326781481467993082383875667791965320999118460432142814351119254608364481637231742720409163382650557267707367760867358878814647575752571871688582314798573949057605792135966138164152746433047122038925237149168256330328593543829734987725492450558851390532937835414161392167284561724666650135407832077582655114375668482564878372144677937901757031141361716524080566397953535130254496971153481952957793420708150222399668691657708213581650741734512167567640310861608019707679870500912898566810068898864137987144372971742829429350268869722724968967328663189863600337840284471302714942839698117043391385847688527201950435656006757873882685873738888821859707358056181807518787036487605423181048642848071303157959831857036972086229098717652692102781111624095307718999874223268513399886947889462147194234679149670798413329824456503524145994670634927215165701623045850204857164903442888250263702523247054045675517072050362242707589546652317413533250180041399222330839535894618813331205260847955951409379883738916005609069987393801771184713756908242120570805557652308501693504029177101670653543212257318215447676021481568150440117795813640496051680614348559918933857114842548167829520691661479822675346127307699204773267359774537640737692858256384077575053672748050929887457882509269102885103122704965667920145142764819033575567136730972228449597799406761681866801253917457523415240278152520670429838306456592017272142538483314160975671197070663039295587823510951390789626902281431186259414269659467365086435708557415915423380867371173764541275118249440887482406436501075714610807978006243513490401225887856783185494033461141494821075093978440400630376466412343720248564086680383721582878150025630410480336813533672603019669258536140993012299470106616439831766260833145803564097537518446299839281425141056375438054151728561906196067995424915179038360448927881669529573265401547722133459340302378326779885821790481699850570427848325549339498232749071297204118983736276039060471006576360741119428885171759361401197689452015373643069591563498112436762487528787864101553320937259512336684887912509777530896028696192112592228469738825849045650889559136703994379470604001049339293177206475561494198540677455278199557034980247076471702181071857241234297168799830871214177888390275644159468035397832638567941871610282248553216771330701102769046819320078055851576747146992489287437105879218852910811955103459298071251590745074186850634519444964183705347671397356420801386639197287181354251014296532215584020121339480259886843140599746067726626486800028780885123027926919273431996692504259924667350621385340157893980223720169232283079266633150744792118984425194303075844685833513991786132778982793254630847916101689000073296584648381010415745802390840730430247843747912303918813233362794756965191671279572689435563209893270982217892867267720185388329801701499024217503699594272955320710536359721081800705606798616799848085391657742752266278652100271056270988289752639411527707528146288256213998352392496010745838139504181367281497491646262564455029517993503171802809468026630773625169879810124824039000798010785980506788902900736458555658850816309793709160910904645279569217798933054414668282764494835261771165796014791033055469601343012932551531111934777147461525546262510667862012402847594653386889766498552865414503708874423006475108734924149959136166264457152185960408782055006886545931646697147119667578762908185657852317629171683998839358586728942064551823619911627111145647698839463280844202743918960202807610701946458181046110060703805188639102368595472973939333505699665309983911079461447080136539678412464282705298507640179301437751108109122289525353204766526317815854733923448169422354796696490849427856354794262286802915428402934902787013110202796936452718427497197663921234578748713367403997859354240495726263510013347307696814707668839201295015459410245278848107317348429569095867002446309668718313505153199719038086536552440475642153257983115748616778989596587074348310794429215058585775071819349980318981008339977376366075048915236708050391335076196491321965643425733307662464763957919714516033444453647963605623702878473387003528617740851035381119790586482359856820672999223086217793042770693009716279942921526741554052110259536921983999434638185120884909533272479746579241274467702171703392667018735111215142316442055566715962770833161568551372544654358773458858543416512509539249942070458085234440690064349171437733855807457609389550743616453876163111636828581138518497244640534412550398569143008041304751562395257619665753171940324522920715686527953002797605414441834484546942612170075774937277582922688836965459612598551030809065388919581668810441383249057776515358642634682243491768986716484944501938318199849906693546145084850223678732177858575180751769415816158477333556196150601294996873593490369656187542197314994495865718110874743191907750525019628183765290394827548176143460613191610973546085451701819913567832627937408638719554488953203367247180763091551861758438521242651030602180072290405711447478092001662349050502886007964887151969303498664425600991647687483679277873773769191866306007921700934129682294163027886700597790315544254915328300249144015485976309292011650788699830943272740472435122984264339030702351789175526993687509628995742715563400911032168807978313724820495234822339774363288860728561155487066574692063838339359605117788309026194370732933486604381683527891859108966527721129782505286647834459282284589397350415680597370932672669455245574439117247097494606714270939782848653231693618396074714458430417581133625631873323482455892877814922505062405022699120514491013943561120069924690396064471181716095962731137475834942933653746351045549489503306307902836085617100164871666626705683421324232017741542102937961889476213431113599784739689169923242181736998152861410344789507285997335308459107388577080981406972934885587386938882359610088049809117024981648122386166641665379014049816646583560970696113527226125396328986949057029986033523303604864297184923383450857336922220947292837756463165486404192049238981234453859924996676221196776286397099963866650928517774109916943147645638317130995761107163058457731495541124635445882854074899800098408433798706379099657370830601285318759242907866991553749150767020065742685919538771218598114016425329601306054916888960611079371953431430471701003684278788385306514045913620617444991936469403883090102876038546556464531402922786602974839791136895459379979942917677055650038878365325063053227020349914805566954864312080914048791259694821471436930663361667066903235276175787981223570296692447994678872686761676198327916546255852938624203229491873867427768890750834005439647269512606281424529737684312733526626978143424651591740406430503716482245411767767826884416966759257726529738680448934987078074612435577920731518429296363208766550521290280586111704475285324668994210732563260229848878010432349681529617261182088041861389048694841371519115299382799219707847151193147898725168645829796913696881293708636054426281599628425788008611426372692728268530521379192254036101454879744206167302307990018745849746948094108034168338571997349528165374615701787570406419492129405837853613355350726302412328099484238632371506964506165556130514799950607629361983861542446830060066147536969211402376435504784672332112047012221444466925670393861979706574399579735859068003978032006401603894226709223129622394786076121715504410200401813521087168946560438416771462991684034313977183519595696533524603224025062108575935999957860779289108295716770401036440229525555191152937741273761025033374375395709458814901348025437467667931513404990557732961548731474497465586096553221004641705232398726393443250960293617148812956701381687066782224220580534274120885386024691401826409825538879259953076186383612701073903205638207264167896423973759697580038878629775453367174715340889479186978605755471073364308890056463954846863375135687707564595166373626014381502686465259879598041638439282036662785201675365911971479573954255889723649930718533529553981997956502659777751542275415113230822152430597250285615767527022640608576137954142818034305539541965750848926729898886555101645320623846602126703479750790121682693145226612813273565309803591041017334616422973304991417971345121529793145306006621672397512821888175845950792885639471347788097667165638089876862593027707877404718616688756466855949236882377844332732259080624012679500145196446461755310550321412484078703589721650834224112245188157822411724021243471786529914292914930729452356730526916449862541021208309551162538038698712708451175705579497974710534075808537406587835928034841289716464101639628116997132163696795824727378044996407138370945518269686496071734594614273126192345078073656312962910863408721224224568828319895431223561325073087399085172512254770492272591188468821319753050715262610150267610208585167815217112190879655118386170491391135449190283740025576105031469597134739683441509778549869235824417214214774999621523071703378529394271870891849254017975084023048287239581417888402958006132542977231566432163886605430837317356719373828600623447025592274647903852208135000956354692744947713283652408525091896197255348157702714395872874441797615873262194605793062859572847190537600051652898546836226787127106683584012134244083182448200737874377875022248829923254848756834119556044937164346894900820118207747072656455276524328758507303159580486504154709198634301984027571495851472596769411997138322305708479503316282558168691608722698564259196601053948087907759467788174627479321622081467286118047047872757813684609890520280897909839280449131027888439298931603565644448332810156308288615683057907038120699051195001312395546943203721752769481594443386768961463412386819768683360363526209167475295784073467752937470624797799805746300273269661256190025011145360894328715254889014261849966416910960302496832337403484524033132692081540570250513590177391876593962193743584741097398028139564310061300074468016705888483501992590586744239567261675712153502216588708322960812812022092847286203608419052917760957958532854524228235444450570411569137202049830357156555907720045582794782151927455574820392228197078663829768429662609831904659174941621102354594572409965670867100389456661707428273547044429341718323488532340763669029508476496790336284491401814069954521437818670795500006435411364693403220353050673449672291329041066224460622685605502737064385951769279091663234815237679408302559629506929199633980867591931217953448229323172080487956144836015746193296157423763816057416557943700391709570267458574852951768070180426412950271500501049887860378591460116725414247746259128625532071683979360487669823591887038376737468870336154426698815087609693182145063563579482896745758843583187104206848977551767921174825513541853591049905266882467812702023480976975642136354865893269498833957665505987555140407256620135638787150158941721609280389515786430009268499048797269969408160278300992707916304499292893574450497590002045768744926791518893377468450400706524494482931424033630407842168102113811499662100271862054412228943881426405224567794656549431907915352026941836440756676285832432071924920753854335242439906131766828762627252252342857326765108128494487254372318605058140898874672862791689496507325528129944062876404979024048361077899057697658219333447938924364952555898490522971293831190897523511257906501474252705102044713813629470354819234590994743862330020082643954379437509734324935179663832993534229438474279908556810815980454519833827103145206032880367957711841989618276790023146197123506643697766148919945272171374172846022789730321868422120955687106641063608038165653685502242247728369294357786537998475610421344468387998807631812318200795339414844090070632641763220075910463263264273490867701465242181602818844487581280120128777806101902170138921605680470860368267186184026129435836531789915647175050779180261707773378265447063397389650340866823549066248106067488246203171733968697898831091324846615454503027100470882254067823509219357293924776335849733553883028853419692025309046950145433870542277679004938581633612200666751629663821908111965735416700441735178771990539706324413889687587088150426193887220172958475561866062377207334573220630676881953358784279631256493982745505149180612135463853664516930973707453565558647992758561649233278673936490766204868849798976873006165112395532571546952255097950188475224340968128250871332026787157357725900787710354982651339800566812507126985213248494153407308269858342655241553176889890023904907172053723498810166141818128429691064676063950313310529137821753693223476898274442146116301268959670303286192493272503175165906016549697863968462005176100190987903996071927891978582712351490938156869963592023173776922829142180463106921705164247955559304474507400040477239373063247036531215761572675411822027516712868485008601567834896328398125110520832881761257303785189120831018433226033141067581010886680147646677696848356473906732911356337411854345147021640074524328455108608245686656800031975011184782690792622546656467963293132352398258092163706509569763867518425137437513694566596250868793488021167599127597664068904838613485762183133168176175660862141633112785021075725053128823367188924168456906673594027031720919352745972132055411342667292917164023543621285169135578144614611950702823601039410121016733521923150363631676414580074259333564258373252434843736550293187977756680515796658975188689869615786639460504634078636064994869850407318233748942725270232202315709815225498694081749062561912376517896486923456413564759866507210210344986965640601132778544667377974898249542485440171861032917476845135141278014344163111442286514042480918003458046563424647428210562796671834037651310270638094326654369393106670355824594372082000585717157447834404914394409915946477111863289505840952587013373607961399867706863327867693982350360048646754756940523534575174263142372023811939185958691415961575608607366718181249770742597217670993820992966208138016531935977690791513038820957956929595630566990372510203467855561316620593999202638276761834887356748041603904986942007960663988319715878110358752383198764501261319170592601804086761218741172607095332811535475127914744644106741453981244108299788659784582457555398777036042083023064058986690530403246462270599863350533080648558593416346854219731221139742151515867989163045465627727967340402796446819055234146007759804098266846295731180054188662510821162119427788284247916845220602842051209953992816802846576894557719151534590167997110169715725046580508611287726996851707552925237843614832998087342298032142412356120537379186357140206445906113991271349174255697073619309717683401093025088079648665911915468373707274489989519503576095640618190116310852587123676646405846338849472846139561771383320875530414645205243345392418014559104692651855690302075499021752001743476004048446322031802295332545936859138526222630447710529165650048236080447415917269407092754667839457141670203170037407328775494888699220366885812097812158080751982070313137007872528506535508813165831420854175591662664905633995757252469301823951250872389462612904964923967375131350070437825841333815233696238172230168001909854724192469957335173742050539730293102749614102621941171525066137070347504427077528026156006734767928051457087480431232476554062095825205946653987964547509882070538928534752855394606611615961067949959180485150321092128952666955093180392798308135967556193313128347014155883037833936759519303494362895778657684738453344876469377980966192140939652460181904434152015138422033030917188750186716681227770358779891363702745245700522195408937954981604648877822626460855147439637977654849185703364899164580082901378031786111415506342213592254805958124473407700885897182085941162509646504140190490860998043844756396405907892090094692676354042893679313419894433947520489207158100939217010353162541092838887926420808931311737332995129035256651116839888351914020865899997395681110407839215253762469699238518981163941597832177688548814503324609172781700669621050643229792014858418247640630677799828451490193913371328047615981779746102343074816990531863781589744996537615469493862760469623047629830014127324423226584065030691649700134195602005266523372029569448986474063608028399222096213121462736564555631438700330851122432899031014719828822755020895846053103182671045031855698615994428607796285402297933882902596571928453159589432106054512490369488804870760781864552456101252376085815033523609153254445697247024178329767126612248344707091995865347690281989240964353379459350721831341572305693161465351450650240091908048146624692199920770825957711806257444510296981773353129908359124183230262015247089533447362187964093960428086719733037867231115668606333469077659960142141948195953000882699196912907107656890624423465005492151941717275147590734447360547626911298117877974644985726094179326444651216281595675636945084338402540520109631748646968226104798992039239546937490478299799838720305287881936265851653466832107231928174176290159934809550796138530570336542284676562941303054138281921776898076975705912453954384335596184827767427534980548735382729759429378403795797007481792919839601238039936918603571336504582254191627922001391599389648494979475502861942455130808332311493024967603883993211254166790724708944962467893100505928006067218846662952316191078286163151340794373922745783536556558989657093676220325042181230463467017886695825026483062175712543289954178062123774608824495006262182593455686533875606208342982263497456128088955839131528272206284458626878454677863540105068279833580052223405716760766700554053372068334233648796574504304347947589524217518959477096852478443318991810256154042766920705836492459679119418806242842807471304141639344430238150599288266774557155077268896414919168980058574668188771117995895048658812460205227926838914117137949754034857368282074080105828874900162933017864011140203565532095584495428388786734992437334120426407867309715062708279000178313030731598243669787725367918689070824030624235037421583957184437006234471771414904795450531191154860707159681361119707340038346523379673050200730980194110707214189859369637811886825120960602792100086034972372634412094104723639420887042089496925892493485850373244121744463371350808215014916930858215239948651286666722967914817980203989644429563366423839915855041600990622096404704549670222578386949036923483792618030553320837710699834746888263450033247196133813575261556474281279914524207263852349116621374865049801105427145894744713430563590235904651440369215805637041907096541997501370909191224763887907506001405533068126582774810462303769309981344494563887619160721512517334527112111721972128097012827346079400065223747218175448385414997091799670777288359026347215914880998818174572702678945959497971084310967345325165550930086911284252279921829667266753583343936946588206568062999725842477806246527948351069250381361249879121748012880138513509292340037662961417963857121344826318835443864284141423315257009922216124804736043510667997624764193356380877545974662985246074330421306254832207064203695077664855053831542082105287327562027849805392733611062374502160644969033180431631505110127966896753934288366619648470536910349186455114061385527609130274839957057623598759782002669443028760574870115293323436644589614897395230121880531636835745378970370898005096353151462535098019148581530680476555804309657036098733904005609711344684802586403394564250877137321139264669059275545386552481740278267376039534668052660027939134848328606909568475311300124104395685625700962563483822609245623390185143775036864233300068497066120954670635100555729260361348485775512893921200198041568250246389585636110777968013207249259218484926656326338062127821323528786536500935590895594059434312161911156760914598042474928954393141014591630240072323378671666016218122500232430984151667488444748111960686180899108907699149193641651240775097614953722224819343777813798335782899488968544411773664573857678601420998317550107977859557638137867198994028257890743081203073466812179849746425216729013860636865653223048891088769119295197130461496920171930478621474017712658412710440485192069114109807861350707407772530157491751538190056436017546365812922525408704973572964436926882018552534953016853040775480848698726658578899176499890747883924011774630526193336363682564527849234216140578790978043978085198080912854076823995312291817220512374319347455546293176193277466834782791451117307261940230610318695105402422339152131302510720504025964150402901798230028966997484450595133410987112825230840009756347077372175085178502242188869923389498814668970268868916748531438996546576437871053826800356934863940330268131159104168515258507944667386544758049530743789653146115643854812726886261364478460961906015391871451722495078156161247734401473612852378170189291689162564547175959269882342574687910305992149047585058956894373069174005388021067731641666923600273487690667126706639990891402089604604796004814338917900840825760482033406050245870218617051613839206028053056775168044155345849138600831795961976685323195659712544443131714058536766102445013304304223149506923036023878848284635464270774976179139393421421574775121261375026623355737025430059080473775917619855657860443155208086214442620660425673501297705139869900861022972540950664791082658711100444647280509034692103870643716841207684206547589895147194979803535956688083888575143767771204679847213330336236974624909792002185961429092353913044563806143930781649199881738625641658030733831400985488580545746657389590179035672988964290166366432898379958847318652503261402223661594821815484981509224890884599978480962797695954789044388396951433365830053868997769737372511764542882015152491582023280116500006266026343049637515412051844649569957884244815642377094369247242592107166415984045679592336064323561824899761257356915118361566064155313412329807302002387631420937578655074527556741544576096229143092839008963711963908339560982951460522136272342456067189281774772831864377555459804947024977994190312922166059247534397482808663713247739755740403677390160695280277688188058313034293211479960047549259948013793992998009458974938720060200346916157495767443460592545751691188392331699609209173383659141479171466756400879747538085397683448074236871234758764918929397639908388673204913823793186760896888728091131723765153292908391615937475939542806083411860475488589414219673396226638206715541956340899396485210613827187889011540798007752452057386196961842538094852368160414710860087492066333977094033183874345409662940644819658810502794209732302235817014460611820421648930423914381678811981767754752476288292528952133117234019495472882460717309049751359502194709044346264253796583001286581618138390058344987976176657135981634206785838530582557928711894518032298405566640415769037205131686776946229282159298282995695563757908449101667037955993611994632233928571522693951700162905701937264007914831185149769916475551246192915042014062760556584776146914293520043939382016117563386956061304008464351961508253886026186698624361011305255125943176775983954768403451812496035362599670586737712677185895372614292531415960604314560476703957398035694373094308131218504258553396835337743732077503008694808624575558171398454454879402404592830902699233080835292430471386319230505618217794945056216034923998181488616136944064455892892194953312499913007727459793997081017557244816002459642123653511809452578730337775843458230091318909423225066801824370107710330008342753255811462053961003674407566977080864060451512082267803541183403945840794866213430808403160383163906614330219828743660959324358061279237159361451104475862216300446217308401619425377525813277374095888110924730474235950879587742568729220781857255998777813270866856058475128896414035830134970059842787453729205877871226359346806032758344893250083163862650251548266803829678868766468601159900262642035013303394082933764986215929791227086858950123274830824575003673685583881559314934815870025024415305706119486455154548198672916499889986463064071269837387508279677943686370265582146546911351599937669475475857047435950820310814163968662962223669371746311829738264409432729649051630349770155423151510275903147193716753531089805889984547473931767057190195998924248136258855334304709496912679587529927429854346757750754065934960044198986921943757738950741503872043724956621905286456078015199393728702804985215203292191660380023696599233290276576019782510319550400910079076161399491754099078486507111051988600724464821901038062112596232619383951493850179121818214602305042916456623787400800318498953993960615698194009915835809682018534347963724739976847033388595566983291862895827988587739625614533747504693989619826950241324707516966951647680862844032403516781557757987067690505164099204674444621714873603933679825054790023886644475363195406066921355236942773668432684273252966718931405777016981476445557203862212738889455836665691910078719055039922722399014141410464994169027114177634658172182339894528709107878398845365858437056056340383872861122932565425004360587663993656732814678905138134130720299695601291332428949319363924886916320699629236342411535428357220876475536552754584694907131587950345919318381482669730037225467386965142260475049264600065447747630389874616904639626552678390117021915270325165658758881665743197832359050348741999499091702408720310396164925049767071068814267458566993148952096272759444660488836343964190427941033058284323435531576289439417228090684284443083323226659322460992251482708784645036412742805524592265581394387735805499140130627422929416051600414480957932105535726338605470335710318539672797030936460760476007933241052713356878425411405399908493796121513790977681026049375198484047886456548933565391534482643283541707943941362492099618465374815367435974518456051173539994333274812358352918777184825431517662117519626452236340188952902245639825640299276281644525361121871936192065539206231892501858181817087006880004180452507514511364792289332383497172872995704154926189840395996001575564394671254434252200580811861159327839754837743856034487899484252938712223281600286193898832785911761822312771696158255932924574419636774002222460169179322397339372747775999451828839865104241868888200597197713792373549192556581139326896166153024682194650658539277067848744980625135126587975966661987375334099948073017775693694020755471501548490737424653558973384597855747049041124639683008406713013665450510285815361448661877516593422646500545498968345740378362827336691056645072225988959175382906689298610341551753559494956148692944731460127438444939795674708534542372772062006745495075127287408889060537886372015742837569308377112123865113745381953535234001939141447677477439277869041344810609532098095060371274837251337811999909338775177299982155918307795662326556077507271009527015267058050918030045933010657225442148585437932009108704909719168951463482059022352141277323155724022358528925335266418132677017003189654099204986797000875747752981068736089123847860207694583102907634979224278801929917290139275150909878634315149352731770459138647745333499662762431630785076182101056124577039129422620513010900667767836068887344720454205646753709800783591033148443312790075598178042780698391198432345066808182903906024202273330749826310133762758864685105203339402527558308025337837424807488016227393293119626729210470250181252706234101737307759002898399906413763017128345321725533501204698046263396435730616186730972709706302560822685598212009805284763153679634224325895400873247105563447344291971504620579449571743947134930689958607036544521473784189387890189377796867081853953011873957634760217857018125041778134504851380221508874288250527268101140192219127942222288934221738893284792519528029228443255214770820188360771523025522856851148128656115965723666409869324784653942006578876575192721011384536647510291796557995766542337449731931789064685644729861572839134770321559556798504819209950102650585428799276005516803772110584486812224890076011307418533692990775425542343707367124112653599518703865532177415811270208143152051847585435764174362148603969854723332605336344469673727237471096734865441670940956070600495175397929546438903665625605204349924161162993393251944471861269066083494404967518933365558542521948902332436444988164760626120613577252978120416733793201270595306011671084200097931456144815964552860035617326654095842540143926150186717062755109305114817795356896610602383011490158805121564124230850605731012910729651087920683372130474997464984274770014440469859338551540194800763300379139171178542805756542238615517214759364855034028838953433233333928039037039116545852600320617611382939054921418042387203677865511471129564605417660708923275954018195852725266009484970132197698787489782737178032689214163547629297456674249260823991073625293076969034343648240842586542909099219979827494057927902513900297486011180236766478507698111668054192741692053897837332530360802382735179966617799911918062114838799536868222480012736782775792163062522524164288369825645425766935612462574929305477639151855402617570333860027344712669861810048415636653280317896430176568853402514117799956809183640262889599533263597266752847035834520481076220528452161350487766163644859982988339800973125241883820072331242941573758375267336848226476104788737403590126503983659832683801734538092444856399386943363200806061528451193098514102816266225094097647258165921554900865777363010201495330401360071220826348243279424170790291418907120358105989347266564485301940627748717095380884456467443458349630539039061318370385889946966500538809234957821256103606767174616566532202605664891904626487906921803966804642125337955422225608215020145546078007704664987213923817665245907235357437612652468527241057147771494467333428123547662531289601230436377413490848190824128928611329400281421482886830902093432815228461889750657309786751697232215250073178127840939773671875704705239444877138420064341209643536723641241742919353619732304943750279112078210806124982310545061623680659446833527281913413356929482073663966073289789540920931036558901114418828970412456457403783098352072837975275739895043804098258198055608766372749970495143702257585681933143787001353933982794520007125748158951132707894600050708074258049218716524603472063571810317080185228284115856195752085143375529257586731475902346597600005453008634327900676315686395964284023058098004881198617725361605567617399598911558880917441970186687501926006699195093081848370120261323145991128540585222316114822095322925289770805877711812892167317175529969091901255616244986056050685984784075926096370723851856034997787662246833597461365825602725816450305928901387388146995425104292337668755999019914784105679878654978160241086473552303313800840244580971034269219521106773987598946393427774227550546008919530112159830510480453198660299896197277187406670765220117898059478833360559955310942950383639560190134271615146845046357227130004048141223075040340595262386425401226438508326927900469032097700888027408050325613317056877036007484498716534437123629561074627413885510063696065227211518927644782243210895942017362803708248993548782412442043756786228781142776378576963103979067024763130111352635710402049225535874466334185654154140106213430350369604409030137882590615296038113700023320178800740909222132507894047484184948250603318887164378957984500944496916327581601989735120855522638764810818852062784403873857548563117109099275942225276058852641169274763680249535021071936378411584533828077413459204645347645694174721815317735561355912197556433181273002053648829480077958685219919377730359846119785448223612813646473034385712551693937885123704562627078092245483434258772927436560997910130396430647123190836073748704926269036680365284978765588120398496618167288500916580755244646820649732884461849687538710860490349954259293619695252466604165480566687011799763973575239029625534666504334370411661717200184876582725965563353952341309516173298065972909984822719379111504269367793993643651446659274383137323036712401186567478516479996398613395913174980689114775307664242841913671287609790979432847485949098619874665213950638234061820149551692469253476278654418925533443574275003533300725822688511804268279517853691538343713766546344454845496535570654686110945512809991729195258918383105221016285556490328023058472894619012429393668727097374911629974068546444068535790457555410664104977778304278672989966777306642619916612316119095574416962959155828063552582728877566868050482737693460875296217516314861830039048952737305174621949209148620705765245677209146601898692656016202413325477375407997869474422870206114660607089540072767528947890325205203884783252052273910495796258079768578386496395382320253783164547629315806054545698667906149770985085489567061672334434189557298709895102109178524916551682805194415118272783426037858990234655788663073328364021234182333772847038936524331666888181091882056546222459596772566696078768138945776473745070634570226713361191973947537419060575444119786825922203990174850322401604859322969667331208589986626483916427401506655165848225082942141384473251923925628897832332771062971483683270989175372758609269150149921097402479373595692129431653620952550416819207613666715989766628686272954578159169532492072376019286624650562672836207889447363010769472393587018621011650564978841815179079377507648876849909935954442346303614760991544619100916744191642345573810787976110728309295335233772762481387080385779596527710833435993815214531049435815550082605352702361291306688626276304659765922835946096448037682914025930579373958232945251650192771420124078270167206699393686285593523876813750079981383731394982423408295638323512632439551923769871384991836301186724794674063744907361397803008077810984284113442152392118522465711279879705216360320112373483090809795922396730560536140704864077258754441263372450053871645924658455539089718219574439749728425263376065846301174064482098418004033016247435186486874292799192113116997837261878650949768978998533845141423676877140641479263588765813113263777827901394793327138393777813942792593826585515513793395568652848772391256531489380205432364596611985239753707745058764127596924859012958251801412436787650400440389353562371316872164616191613270151789003820410024744590420686987824739057717832507855912051766709128840584353054054596803207971062637612463049843725407727729640236591132916506388760046355556049674423418868952003827107831974538523754414127563509991954269196839850740448883331234284251584303841605886616614069851299838505320708406803613503125542448878108853706511325409309639333526356980964696939879773185622835544168080528351844080266416002362920320632687568172567595407087216315442966152360942930111741712364242630166807955724346191505171067629934706627844358017670986464872799786048918508467035525247089905033064512588170815327110227592628170955131447073635376301507317322728285862587082952887213425039270489162781126377781215266052168806578342119969812908866016296859719886706791804654940293843006242477357452254631444920100994498069621275083550721242687510833645426899149608807411101265985720495225930611620882639470341171210958942288491663584545504691089194019929739867947503688248989831577636009875264595438888401576263821812951975900918462913522023423980460915672038158435947821350622745678846985589896879326520983959176344135724223614087065260123638374015345912387328728330591776460177974990291595187643720604656398177629280113236997870114396035489071522689707213122423334326384328257420746535838271768004912861107871603263949276875822115475270046570076017081674165651021266385942793132622067280730216850631855613364820584594321813392139389131393194907664262950197527715784983590834692720748479531114327637619164615216894780267081327528664695635298951268549697356039197854298751627665736041701374389564304202726062493414203798842165030394384211711493120461403729819822384552048808128009275738929287671865413054123709796218161349159179919134884347598050758309158989608244303961831713385895462244288881799731878319361304038191532398641163947528261190476797707458111530566798492483298349722686417222432224246238880020789253275400997857576002172066034800177606978394995749348580895643001308407697160900494927387734323713356071847003031927004816316903897471170522639094322076612062830053575699891742627270168864798578999848909201066611033518688039010285013812460095936380839093669203362984569097231328866943999361262014796458422590889043712714615037711705538430971547027612273061041375550566762975170054407974760326199624945077664522869014062667222902159796171987801289253715624841295544317926440947284755783468531311266617428934300296241291725271696631029269737276501416984429212839956384046544861558042619713876404811123510097347356798937138364398035982224928663850511985160661245618873508791436087004108587514399782444251124628820756974187699906082684760411078251570273140353390104737351559075399540620842087642530358400826433274002825006650930846958337471582137995262973322934834913768565616028939442659189455510185572422317154013964353426697928780244410070912068467858333273256142120758517379579833864352021136015345676323655496744233981871294709128055665215300482730085238174333898370858912402731468909605990613131161047958104118852313959570299323015046115176687967692307125016508152219906626718825758896076344189430621658248338077013511507478157195292164819291989181224060558647894795567830250768446565319736547095740730665522583481621923268520533787332122652669733849251606196011772897714505914300221110987520679064410735604714427002531848356714964671768357545638771772852114759806315979792858364939126797647791226955721245876597484738251458785057998005914129040139586061590855944838001474862655157200396412068336189246126196972907521814956576367035245404394324221341639613079739714684237131896921317407626080892948401834603558237532669927944138363720872406043550884388632627612202752297356744332797013608836404391401421634138282532304631543717202643520674618841932693134529050513687504371555560481344009081191319787505198820245591418564242220406519275863977398500811682557747100634021009387378383243322544490974458360471837502613352235198207867482278015898558143526374892069192816723614442200238849150283079996433240723135209401252185709499547671600369622840311507689076598533590771509819412252846555796573079928650422944924254301610817621281229466892446333201196225466679812152500175217236114979745408851012336507354717188969908063294465733911317790323005386642741672008944149318254163345507206023909690564339290751164064046701899826176892045414984158350661162008498410112969483583931664972218669934773882497098314472526252937778621301095281122229861249202873086752656535971195553240606766037453375134355166134553262509861251533374835263613571007156356193492996758039884478606805364587870991050323404665282384852812996836594919700294388779603910271348762956600846462183950835333152075944934253782729090501161686348112021789451043743407733622624436847889145587004846306581028934924701294170414870115703419671328306393345012913129926422069171798898254629163839657218005925500658681537168483343064094446325646403937204611266277696183893721346901268298686472758190249092881454158498181651770332658019063167417699005931548648846773351379164610729191857724829675859797542466316834305144657917105576656378658084658991741281730367789702419683354363808268111695998409734206150138403752515108005001560831822035635179611777647578263788536373937818687969087648029570293499608183331892435729315673553210756870162110229442129710267913815297930086851249917335237550464978329655266620423143122628115108917895064614869113662596667891471279271505711810067989721983823061779733252521782196671196230920265479413998345020562129616968888763187625878399997224929317588862791854474769500509740420766236717372290574840927672672030559470929260114566905751868598548446749244304339408557614941517524677537213887563635285054036872148106468354262978983348261035836013768477168297191281504396944256300279309107651311499089154342694036875652890448312114167024265774563452023122782868109778110247943071774590039483772248263908345546203208065291100080840460865339602685812990286349430289196738938912796098342264945244150927679989423379159665560733913591903378358575371336189724575124609598109866025726227111433458791363745987850175631443039863630784373851596124151588706864257126317028808360237248368307760828654833318673939726471598466429745691181224469986472629778219170723917031904560165331510809663697731566544233739573455763333966152345218108009476510262453133228041407904958676666232891996011604157241079201972918477348603933334878407724324179403404781199630088689307918971322274412572688739290175876521597640021536650764087930781902201396080892923867934872373093158865097241633126674463483779884612517289335826168988827238514583924459833092685303398926352950635677330995730308483511114151389770605816615853304767552877090712834137178048322452496370966000390557594718545273467396671449464307296835839963667001409590757006189561882957813164732350772518104442861731165059433870192568067855392974393633705455750386039424836750059205274261016532125144708405657942872353800819677476205576139675716156654770118987448434602214232083997346508637241011731607583476226784531150992510262846659856292756637594485365811023509426954685546046195943183939337308604267975076079018392062329414128430194244357602209091913522454514204310368446398746901346991535860851115386437958335965691567404577936660168767382470418449277190975620141570455422647574792102709642705686951266652595762654430020304186492852657096273316069646254101309259023140772596034591245804257981133072711937865036301384005643527506112752397768603102702722993840697358010384382062817311038215031422915114748888654421670401038682468092526551431708782205970925644903238095164410958381459257522663654649484072350669710896356681203004252731190463150636692376445843027494090470453270931870826561630710729238924828107125498573152921245741557409732828286735417415886658741144876751989411216190189026913355891971798174193932046249373712978875789893449880889512541273662144096872455310066595972066044228014703132349264033711939397934265182549836651933183483128616960460370092829323409083477149066398931272231368473570957420375530930344450930766108255177564366194543941240831795575859796043374096457087863226580863524306075550325605868053450703784235982641259696440171196343437063024429672571422978242257598877644814066268623091332017041623356133226803492994181923029911718361574595889874497547379184119928582077836668797052632563106327881052195186404841948284422130923941669315870099247039484646108335176821405907106937699313112206541834867775830503923179221863649349063004915478766911279933251876212717188945702779220167924844627412821321669086063409463728113635152514233266992615171101526992344303823693473796316395370554099692938430511723596907571228586286640454042696627586211153445196537341865505189884040669245204209350770827575136339818349337165783939714814423146259508338627933942984460627101541357991518014452604516380070847603572425128229076045120239545009212910157854585503224495939594208116589798498364275537077751147405017274201210186530751793813729040767751885059364475500581541621322999506967202873343030969673181047748189708465742193114507173376949236081421128949031505318540716365533310193876164875166308801694024863526460511802373152459443819569054750487791411166615137335838294544288415532301182407508001606860550408916201506748582279950290993943366836029999153470722536049045482990340305499281611180501110951948866948577390007214393815262466551250860620520091328793560808352564990275945949727520957721829570124925981344413561997265897881568681725155536589938907851219543356713437910857908022030493013211864822203336947254904377684844498516391399119229791865863455531118031260731162828242733802175115669029105233272683180018933817672958436914352529397282842829505986560688211066602091590696290014789519721383114892729831081004797741893111504315618232557471980400431112247620130607935794642795626798980833507011124366656630960567780954430865303547891049754343897488498310679672299140838034434987475710752541476460890662852096381163709589297716208967171612265083371320499232346307202322129411979670096122359807344249904658596400002157257804635819936606702449875569964869356995070939778366485345201909485673239025948517318423279229255718030773544160227434201035881157462137725359976858348254738573437988116184226172231061798937482101479140961526942212049813544282396375852082888266161567421736264344976108202282239917016389900647964437979818039111176954157761711274444325295937993109049346999178033242601072520248784226026570280170183869601097506170648632644117152827769368580842750409024254153438317739419830102665982758581960062201789914963938880039411931212721870025465593308544385481775656399137993203504131471355365295514813269992379378976067706824616620360393519591669340836679698470092177543689570966162115796980251561364256878720388239744808987192537406428464057379364788605763979043820367861585013559806906479473666517731820926061508093748105296783253171589711370739328796664929160868031827545551646123684387808740390444972641803770329068553926544045669916864477026913152779170377398266344735497293987923421122903314231691092146852088398523147748783178649275721774401357058380138791833598535158761144065508358375282072984864977864291746488729761634623930842710222876513511720940838756941699226003646690173512157210645601735030691654968362154797507493783170790909952573544472666067402527040533354812597805034543481479420276016950270648944526491985412855387220926718910037664722547529769813007300935519071047283265710912163851889919210397913153883645614956169874769975083450873878870341605271725221259891008620500043272050117997506409062072373717145750600936951927684662474006778381977193561091577921455644028101378331765843453642005203098519735905607975621212060237825329732499498424657100949467999523091554327589979332525204418110271676747989378140334338844636506966583385610319546822554330546672600243774317165870781125586936794696799482139126716074722510612677818220055484095409685055280196260464623082984629259306462751381595567025664696503398017543683197728394945044388458259629718781156120144662986215712978718027796631950310269230295283423685350426342840941268690432209053028351955874468351838665986315776796036998463735820015508526622399480629175130297297855508229643364304921697318645061694077420590337593664945170442395526899415108376528445570806596029012678482310097499301529944184740212674090740451911679758630848632262548268606799476120908373084985866746445887557414558661679729729297013390395844859838578973548464818649967336028448881511916152319310119096984872830144169342239427422980039425080689402582348668533442551289917542214661013258447939235994760317940324634204144425996733443180597643621567683774642716883192932823952669255002590286059043290617983301358866840062955521014949445591105498491700143072064420651986408128864333214385102953025250382356055205823438016227413699941494133158977583345420106049539507666132060049032275734363655549085318328709784055864368805396728973347099468172310683961298985496890112406392016756067262818818145383571821417109539550702942294175242557324726745478247923653896548049044744803581923410312075950941069532515991178680555598467409630218573394671702785432064213446745106741790718677853572854470701595331747643302376914374790006487696626766382517632235168183920335675527818184130116883213888119469783642349578895218407868236565883261778589948848353245595876527371040226538035594070893107651785887976276654436024832625619311732119886747423531293206712568055312131803516397865308026773651447902654640811750634136848718922286014563973187440533861422287210793092966382832663695798966562593679006610782191955175440449136348974771403760353818048383800040323662180159298630017589277446921731391354752791709986907575746456614287754197061682936547592479302842189160556095543199206057810170350542796307527226224873717838905264666614543617545279004571689848168322803336494307888116764157930592612184879919390685410672747749604932285005235279147824497456626404372966034342454278547480181007230610847995998639612345461129969542449482527351661922138990423524279504691580743153140846203062022968485556561458543767260928825602425580246830746645172026195424226510326847080954948488083313583061245720486554087539081579152006207698498851270551618527679251985282200052588460397704031718316899812418288654579353245095429961576241168782800774530426997701510653736735141626603906120201526277160019502843658526601559514221365868272770552639659859296664962148136432142536992403406484284230570569815799909341310350367092213141580169335814354622015858150770116877702032533636901711240445760609113467153512474204145162588169363870383434256755614645902445909845119240677187687171691984108836017848275753043645358925402359188543675408903135858495142433094468592352636741570973919619719589548268390387919649768451679441239778981224014923373339143725468611997425387874757877638571684633024792557421759324286286572830888313271700332648304117642844462165276899912472047965152889582934395689235645249691015155266635832313139779821140769588816510219338253228955043724542932726224929014050419279405286089009283916722645997194089100600767464541422989061375538894463879837773952147578586016546301968823368241037529279117440515965912119644292234513508566762664539178161123252073703361373964662293676864559513363800021130699195579804497285513678710479072893172318944830278395620977144708550480597162582517345774025017988857460655870071087692266176206282559906540401653964702929537101180831349199674402220046224743823644764745270709446013655139292693406148534319869130735998008577942503487084742726360578126897852975084131317133693705577732528206388025718407869195362746462598073313937083600266743918004533259467488060028565638637265797518238995084929313463270812342593497319417792930798069379540769636311133860909562244759730895566065665196400572775407814156652016863916688592449687230338119341007593973559236115551782586473542864990155017184865614804742474431695577450896673297341079874155994108790959549048141992498185097114419328896837774179773573454824877022953295716701657364632124750750233206586299869316965988943285489123104008875238069510687281771100282468668708151112369527408407778293055035132818502504669999462349870229672806037719481944238134665255309689646577963005952075696659058794012509024695413682654512822204653413214832329249956399365108954571884050391995918318995098756107434948706065276419179217588659099766920946834559321823653274974629699703228876828222428584187375758298945848624291348114454313126618438216294567389726885535442060244253122910840428148380679373422592809656696102261056204812323480467890363108707830725145655062249226126297536826696959230010005512202010580085217857061195251185621480404257872572622379334956559760591787107515335195795802494142556090750751567671370055229553762886520052462031413386315838590243612194823403788126917612147689912126898381274374163336815699121690693406089726656278255645166046466256680890379886945750826365782754901945631858599241659778642372731226958504344250516088340291924585492571966540158162497443818514473727241793100800509439371942040950164481243727565061835676535557701738220123335713013246178385847973160267996923565764246333841004287683924390884553208435103276953703172200800769206564962935177552272340789073380583288762704423679270229055130942474339082143491825820014547635929548940332147351246103980821794956131145765110624342696721895566991872040470900107895280124637294303350579218246614963904966077403202035050074107932054683293647558101544508021959386377206610226756347941220214244222665465075650699570339054944055728187936983354871811884639757440492580891903016671626925060045473772265379452235900978796625237209978112031119161171243962655358102709187405766559817064053603189986871913084765294166039264685813170143331876182302994338779097397745137697185183504151783909803978792252191811383514406571806249752874040452746986913072014651654396844333461095826536137643337049404403470383340327202613411024315247595451292358584567654192015279160244319185275998578544368064806761257428830682874894627886317092033333310014994645785129711806761924648353141729362542908433387213565154225441357262700704124989745423913091886923763006899823108666051719813471986303590411418146898764198171108454147296554098521627374533970177027103774494160396985931319845377714316633270482795537987251881916277579157207008110689687054493876055930635346879539966685855765626812665487685677918332555262767548833428850311459808791888061036104333605483473271130168350258838403109896568647495249690267154816958527020352572129217394310123806686768837214005209890639628043048722465551217703209497588308707472180492266729364267094515086062347453525340783603803055743414428199468193118030740112589050932867315686375208154036291019782781798843207389398973656710379537835437546170992398692818323342308903728471199979110137526578069573879023319182914264027512853556527128061470518989341343061676807491430153830468622916160376902321587831787159150161832289381387400054122328827008989585750667590581641469673300745739685978994941509912858057617052682396197122849715099002935903602687254196728947841140743361263968365135295059450687100072323544759867406537997302134925145623490052976174629314403001903421608977833589042710627122023580388279648566235706641422920146303908024583954202442050013054447668182524845290488209472477444782532941563735896223139005624961520072379433760794881172537545196874668406830841273092049636168843887142630442604283108941375509951380727753258959132424649375454899595200055436755519820860327519985639589892255157455039224918657108449663573389728892897255665494443332858358649008725327489916782703604493716586685439244902167163506746041284773364087355906333791594664236976853123665262286913218548301587246161356923539161278803151758308956653203518564136149388059287591433853982136154686758052896837970316734028809410660769786215109965978575828797932211858818921692163666471875941315744303528502917811230501224464138612709821610554404012948569770771589646034920568254502696229916316730684257525797245437832537620552632551535737562557964729596781915553564525748742211587677087450270197564590013064007745054686968094533410497019089213018659963137769714628194587471852607945575919519492550430934907237593756367618838357579250561485225098662109054815646675091651021566479027635974630457606969650499499289921654630111480503914187707619135806576618699791938960853875257066649380855411400748777671453213832045435337864477557541519475384711973691465679247432541340406255110519847267314940140896008170715414937647548198629801432009179309241684127444059323191137925724749942059131333444789576192369201883722433005488680782913919180577344291380565392662380498062482049798845527240562815105199985377629902244828343927242581074276869647799274696368397243999071400884805753904244968522772203102277517274051729228645516259490687393443073248806804339141602560047605688116785557548112429973309214364230522386982894740616913736977069299854004876720706257867398914802296365604602239171959727051070820402240072413086026016898628959968829538161515663890185156188733136776649748116402460138808369125205876440404588858879692751425482143628820265282246314160931849829125256032617950831384607591605338039497045572734564977793951507834903271319963353565004313366050124021932224735831172976342599793329095982457231501570397296831377726325813113567276995023695570415556171190161677967896803018029928604440460816130100813404259456415004571239020614551329893656759333226419603842905923220846782131244834664519794670520156545406562383469928835965103420334885775260892567749276892393729051788866686791010193441659934053506001504891279385008039424581736122667057928276139315986365684907608650320770101010716659006150075290047345428300301866004106036694207140975651649396863022539446368542991969060575631302297367368500492686204617226344768194441945437624643075118335880995358372015432508774200294243896350129902599324128389300426351533333932147158092550684236762580599575057849269194361307733235378172993889549294408092832178687137410440614246212902136041756664986611635943403481178666443134275000526444942505243660996398709840053194202875057938163804204310943637048147071134511046896526427660194033839436637509423010260677798124305466670335210792701647915028782027264403690235851261448355907002970401864302432932819949320831504414114825752008942330784054561269940955060679354240464608540527577722546569793660915071039357218924387022619850322047450373941640414453020129025250937286299895620512932159447498317574672392849774816155321640367213141151549490993152260292256189887939986801334848686739823371064844606443359460399879573068564747116125000578612260503198649776245691692824516392456190175065068971573394167477969803310649767584585923156111036622080581649882806121570974119412180330748809853336838192774243575272084140826656585152234208873923147531327392570358111976859749079320002184672908242613812296030919099965833348486816043655114650430760587389562503768813316768228491115796109739430149600951298424728023605149554446042496673713639080218483262618839966110762676130258691170064476689314302811251064080340147220422602471212259958229491742473619748312078598209753030762448019607739779322969948607398739277341606273310851722965589712630757326866683671790842295824436558422802954348624375794685043188348020252758602492800516094804741888313523147679388255393756120370832472597809916133957387630388260478952388989492266141172283813004286952556274993411551170255896229780020679968147611857005961450878600243128237313225330706233951924574827696743757717100362170271830704505996545442937507149345607092719697294658259884666055501616208330479320808425275437713942925605394545504564879860065987132718266275530096933111327529397816972865923989872831768995684401797114796483040789603144048409328270542900975506734030957375990581870966265718425456593083447916483473708252131378479501223343548559295116022616195461798248154475128300809658873021703182165849038300460412674627326107094051732727089042691923984437767657360059881324945477425474536404233448581854053451772327831514238723100184798415547508016670942908609313254698699947756901179954687434461863486962045794678155566234773483629154103923052269454734159736006165221307700101867132793906354684128837401451454110512194592187593331401602197073244313123811517929071905512958535288931480404588823073618980668042712339617426970731534304744056299238222009542062125924548243427716093351178696721084337380489740164051597391843222876449555411905029357851661495785894411664140849663551137110029516631931910470426798018345561666065818804186797219423238672883796640001103439907408938564963677529065323765597106095838113734196564280617397166380244261359690433133209030616520315113735277554687672660047341970241397135628197777936222274012779162618216861590561538840010497726645425127656363601832162753503410821245155681845568055115957337831898492297768378748667791407259015575197569766443179845889360105778676060223509185674502006199591177405145813665883213402123364195097343870303224391467613387241873312496142309711422326920225959946256436429524463279079686700721025002911130915155270357821821718656286688000804262312271457548861560290660805227696098196112749178045256830713738837394651733961547539616870233768589574326980623456434582651422685895119365334979077898148388611097626288472955578383146879865674424122592328824286901851782253482128410901504489533226628494867738146886810453021857522497347897272921297865631627041090940320257991473711340431730202590028860481652924832624224272514249005925262639491963845954684892910339492348101667122225285966586791146327942823210503680611662070979718688299440730716120418581464737581878238301813298665825725708251309042211959118677740819080997681709824195259444511149028455195241000541078212922188061566375352193672471166844686811165879727148250219281592475480376745937732934808627928543599918767090365443327377153167346251884247259669037745382001013719861385036661488088005699855091970466711413410921496559882211943986373256565827338506201750959533554979651644872563750247755117715690050825967639045280507773213295488051100868876219700996071267436245291490296088322990063915783332303485341208747537585426059526291220818370602506408877583172296861709131366961289652759420611031061742211817306459876978233845570381533075410962306235149753229506220988619172979190640024130280594966160664506530046743453185817183657660626398189278578797692275296989979655413121675711894923962972607551949747873697230647066948388107139009544145625456841201551931006794148620177472886559388040307716732165642858805166807251431409894739967653163378644996220852532217959607593045845497194009474805118416079399093944893850584049035089159516308264499090656744202709942515531871968508289275967104239874823650627177243400932157697912120597406603981903193349181392201308656933832405229117605377716084954421003514704822580355750585058971490515599491537367024685785746452881511669380409667057360260529194869192323330495539266071076141775617930387923946177079758225352779796291715331810209918127773290200861087145955554836330856774695160913706363378500392535184107042090286571163941940656311862160505302014759064907869297663639093699139532605963250268474127990832861914417622544844041540900319474940138801827972595117871319111451508571092819523979832372046097664696346501074433931093304110798117686375937521396765251269500417725248261748413748753366742763121359108727317351725997756793536926625525479589354094829419375439241031677639694816168960461039953616505140815443713176316088361157565631879886904554871357021440358253879312587396879422238667839691701114122330404833405048420916651919161684863867765175091275470488016502530801156133574613981378872143743444755524822818039968364228219009060904541445751868765632521416594182728938769805433565602278761876561178018171048134642383300017053839837515989616146455108297345187864846517105817262992255111932334948807928960216005695746629884351467135708510622954909129754835952084283311338999545460277408453402012078597431928814278482923021300550151636662976307677908870590806108818627948312503770883160977280729994755414150614417158330666674088254442959917251101360805578217307217795277981402733315718019379776790206802338560751655758322011222842319263744392917754208289775716497765415333184845048637171123005684824437124979898095187562221133363277032638144559045351786404992285997032311331817269369471256207078004268150432729597368980291810894835807613029925148449649059198255331497505578149271817137800753733677843694782859944486611003622041521791412226850120521405157912227479579552625807758318736644551208091417934432710522377787614860435939544257323327601400627474846117344828301476240500906578408168927613923395478993321481047510807907648278938008707076191723603337074830195320924050393634155012501228023052337705462127154974017109738799597633673866947352973479806619191154521146469437663360763817525944679822240823902139486964340210226474228981377713223098889519985071100055532088356179372154758159593773925397654846843765109576353461496483066847897079458474803342051302954100380413609478231050482832558505095616879498752752648071414491713040600997607625324232999844137521391658193040646695015434524980153534939431320379754243410321376910304724011232038405669266861360816674952530154082946682836039334177817863244068006632036641097364003620328063662564244316975396352132676093217850507371210690241409656553659150960369493591268144210951016332153022194066229633974928395348603861459122517736060825822903478112316705447114106729910419162761735877041271167398400649903197790979345037861215872985571270457784166681532613461776092341518119280621922831903282163309301413596994011463721399772925093368359516522401323812788085960510546414992396871729500484150025944455974094050596670603642239501490256504913812183027411360302890920286476281216945415419472507458633341751717501630247209356796831589110046662851867562480491877378631741147303275550051138148920755995098507538993151002934437029244051052764901579679555134239649958185549351827890718908405618048443214709086146360027348567552271587278197681913369380651616061422834210024585037379496149354809100396913688034112053775728915359177243916354687040529560089178992653753148000332443065506508430287007040771592334747291689245496819233082463068567805017994226372933375976321351562236764065501225528220880585794206708171457374291759290119569123788571894426959484654871656392462667732319585925557360217122361445801816018397277746501796280347485840446803572860052940923449973495289469405629984660880100067305027519985373740703225778833049956990245176843614092508187881352671121905366968244352110772435393364014409401875662841487277709910990188192244243516495388876087044806823520729638068575619092212945354538254838099562544480051598436718016719466832029795447903279984251740673115960782481801905344810139968995056214100737188239909791881772021463767970614809406554975396827959773084985191266678578659087651337730164893110476127816464626179414506004900006560322332121283699757784843782289419157042934993279952347680261982988703967990591240661723029315763737045906804567836754689664364863903238291094566512920910885080391407834966295522407025905511569858618422251409583919336495663433246733103778332621684812990796396286123575872584684817229252660720911863061256149731503749728258208233070643016004277812621663238407662371289623854381019970541806596405717261590746366590478605662541231098072725084503477187070187947977434161530279149982421609750636089632798208085646424170971446222572039484364269421661923958635637030287133978374549215694835939484000858658072705248166672123222900819465538715454883365055989573776967453392293366739135901611961461976321199786068711155364528450429230078689305102647776574372149294575301858827297337473534634664849463766011405265683516051258618345033982335755107344490712061105602736858591523366220280957841925769822803690226449461901433344970779712809437985266844998786571524541052792992032976651380290148238047279340231211102552692448536463893598162522184208839052722274755415729420339685910002475909216340900989515655050348815242025735981726897971924351653853836372215226952775594322513889835541386252180116780386303169001752821533436351644458387937084899524022108061564118428527455462573185991746806280942028726722145372564677984926835395500030323851024163211349838370176217696475070705771659339488902005335941676845512184323997337432626613288113333338048675585344295809492009172513652199553084759552086677141095596487448623713154563655340038318981357623983713476430314142077169927032932775738204068921902963743934106055393334573998309195953908769466335880676418315830897192531468054843595408449610213896603426158516668909877271512329624444459327136540393769362337200799174238575891881333306524207659455245389825111044141036169531370924862299778437616133271570850121747356439473460259407800436574493888250251655375408038947558445171422177916637097476894003255270896869050281677027957721421132525921029732367686650743400489990753757609855697288176300656206772317523581482572231569902665721271423182659600212539742194928510414087231489322834507813673800643762347394175352233842831848347654224006115429688549380356667017319595415958587090731446370432497610231000194312296660330588858715744118492417127006922394125087133343143163161901913267740489101593038267937703744871438382161125391865291921658906471238396790494500664933760557867077179964074051999794985392924252159550890166526647449561560378173826540130785907301643262616386567925223794855090955388080717805751219617618866241298881542011997324577467077574373823840865417114157162168619522301313971595466443364295333374797031664535290215151305643247927452494895581473265647904578598868009327144568752556466752032466386306946648403341931209100905859003901705918684086095406451183378379293545496522013441674419389700911967674302378569303349412988898622038570373701887756060009361862585665868297212345868476280159287036641051490186467765340657537569967778390571329577930165111654874043202790395950217551986015560173319265109836233168344753559960647525124946129714307282941769855040718762630459396033340472177818530932762402694895209312965753481880504509023599429242440765075544010169233572230103417348222945031855754900177935118178717088802967363191474261055718761131699392359690196951597216213634782014831792538306481604126634840807302876335996234510163110854302757065282825297223020238228436083506594337933138557505828913105751411321052202919288483811281619400387113823465293382240217442800683491100641375745626800267638168347565122789502200530796065735386754491092662187429661415912581012614444264625121333316996074729287938296912973054360086085834550031131944094872530184063349722371229340145807055059120984692492627143718967618345378579759254284595448777103029802705839791429667645841767015254793083287742535618782787019413087311259526035887045602407434687096780963102152829532474525477090780058044169727435630522356219989082662408638624072101397515650232072287225785386125252987295311777480101534122862869170472542614253379048489286717645826726494186779746585018968255448147260612242724551182644718529738097475097697422670438484262145106858187487952696155379939945307544037098009998808834919382729403607321844515485370897160343865784289122004612035918335125828544976315555903689743655647724254125541523539510338297297782382186422131413253351343345662271855055915631784653493073088777092245727800326539870004180447829590721141808585634048603547952097018119451467716347654245940680061365150600450122219814397145736557098724019241820821124176380216432324027546402616215314935896394557132474121459856183031850085697724133340572391592645086235121614189832662225752823582886573425517132855110826487217951941984251001504367614454910303993772588406044431045923837440324814471895982598072835275238753512977716376668705735839067891339863931193737985336580270305386001968468776240838386678910226947771860190053790436768974478446572474437451807568194606240485207355475029911779782649688623521278520261158708512382628387344695880982774562086532011165973496132732261559691953113941129967857533575203059702215906051131475596694285955031905813587402986190155204422135193761153127245650893726143690418215481966391595202392067223399238717863708590677396312923650703383147237382895599928932107534546196879580227626228274529812553732094485377502846449307166952887569880812182928549245850492775811287988783904395271516926129862761975785655532804664275638825193539440793348478836873980038164664090607498243101924444352429338539164155136232811690448741056592049244385653207665461757146692817197885854863984234193080972674084042570690397976329053226161916829644612474779452977816358101405812621381879247327472687044423884036519733489227034516890877648324356837543713439836476640155007029295240167281351656989492795143591194468921618969111718507312038030517329178814903525267523797488032191193289075691384928436063215822345894301075517705983214551911221440800369138478798299631892011481473756339037271129336882697605790994910904286838454472323636038288918476234317241343826407913881145389631404502222348552020772173898355246135442851675299654413283958732439855368984609280818211317472762782106220168800773594336441381090345016428096327837589926385248357551271162816489562146606353550314320068721900332514610326465650451304645408825227110263066607070757678358175920338954253415444460716051286601537719835891798813657375184499436267928905942597492492831891922835425874699141254646297854524461020769886690161648955429722330543116528796354425842737082054345931008297794917160624141720020934705735184834464436376349459531160261824546316029148139450706692551957939189479806836286362482487189319193566291716985243410454354493143411127302429089226279144800780796760291679109804896372646335222565641922342890508407771454366359306193366123044124293167829866486019006072240953680982445660027869676466714680056086371527471328931596433969169159827754929167193971554592730951754458656181344316257083388839046099322405139126311277092462467045886346548793700351051069595686453546687791451755091636591900621697657449341042478910150276999266368935035655160589331989999619438127269745819103947249949672055140289481615042128287994310398935159040867574306572391013056746232879988467373296059988258895966852998959590430356642876877846889286426143651593650164264400967818543184367091082042697007761143248934456086167668196375040466919401373648917247035709643783601864124351420871011830274590464586336463218908758117210340830916628486092221387351551393314067616443665486414916155847056652195932424116688279497020835526309047805492928939504082405195640552989400248218856442710563489473482718603995311907763602937501548843058459913063506326059852906463733821259899448528819387365337183093105975845623466600382258902580578951975816843327689695377696089638827382063985701165063599081524391946317064661025317614471203594123067816004834646168357802890946163916623870203284796968971348696386925198237236332996251712863335908569325794332099233656831295515372820080787132054581891327036864918623392895365869648587476841498016392450741519172162160040226175158871190763030107699376685187205040964695615412948568878366932696016036773095537370236148328888210881046334805737942322222352866924204937293246333538385590586481449306645302603081229994536731740516253630421280970734730776585707493936747324035712440770102898310877317736911618944146059216438707078231620879114092456321530554562337022663101566321658440087025208685230800965152916730520893581720016847600830345990317581666996448190734623329201953199824389928999085774978821565878198585808665422216067289994569275073834966518211455246506804070450887302186135457472281685823375639701051509209732824999350210901175144695430932977244736258051276232883604921529214738527851059027073309737661313422477681842788231122036232122138258686007769088496675343703470942587198501373343331589859136651267280597590165333487674706024138325741168896871103264147006937169726535133534079333476346492822351762690480486052319071345287568053846667805743427032737757752571363576409093096433058231301647250745310500947038424822420879284523194068556609323191632877702227401831177036225457747201202013080863226149812414171335350691190410465238382079860721604399804913835191463385650098449775329525107388943662533620771755742917009238328256905841967761025965301639999026216036067025175943041744092642894900143768855993311718034272738431807439069078405352967185918316157266440552827432195161508034762563322890591197342480669250256107577293280639380596559114300002495887475688684485589609915315653209702848123671961784052099170885343696908423951795642545561614659180573278555420596917021697240229218813040780369531371243374475822691592733237043264259224114833026662301372959281272863706404799443888873263104878486659229340350864146213233153344979466260207759576254193629036073037979502792782225841241134600032293722684167843650161998136566814216349619905899172633893839195344670549819542420866588930440750395341578858188268923771895789515119422747318199150270199757040617576768437444737990655852787628098514698471801884262716748032416799910406037415055915260610525669951937949799317186229352351847004788264761038553665793147300420761895482988465798974100264004794471330990274117294021169972730760728050378486529669556911197674495218916672720403252745338246619133342036360173388404245564254997020657205021248402784429645421618572638552432961528658381482086783515733734016299729156880950980097490684555382302410922419638958822013898126060058751012788112026741508808818091554776715397573435540214284036469006836835246702857665085467586537219687291436217062145383157990025926069239097944122362682211227492924386369056637614681223655481908158514616709378479214000955250677743941696739728685242046726906661427212561088301962077021327328665666769309065097918219820261330115378859350448193165014531437445378937002301768586075544998250346477342774612756198334351707727274581293726976965656226434907340633740899347342386796276237835708901760708314199599739682062590802594926017003032264266526598597361404345638494772873944429283116264906273399638792567744600302404747642006454075112887934760687728039001171425820859655061806465042862782447382191631493088080101781443377295630018172065470368151737525122709852089950923570228301477872841701425731211313066133209191022842025506674229993439624158681312594554489665432942839790596490386159061531780069366894237089452598984884541937380502651863872554325147185516488669033526833596180242781127581829712565986454437591402359153058908547085674257469074274088555988399883322188105524051832277036626822188704572938451045184292212740390336795813945875608804871133059920472181261568576653892222366408271705277614024092091413165488829092041742215027579523299996623290322538994772993575938860761629926273565502946903457773973234759546516916316974369943486901447343483595251548787905768755025530574360155140263329056104234518709850219499616425529061663227424983871976226469876128931984390733709300194332526857607819859620644820859186914672195382816629462767088759178098083682659427693603706209349493572714734722105914916302683764880355814966692569414069126165394253332227643210449474677581334383197508480006455252541401850324353670020133813926045282575025119295986503725802125314301206487005546246465652327531488853891887485526084097911454716075331117528338556125773264998989972809670500139727570490583593984259791883767248010176767739585737540022576025711409709930400112822047673492171829975651630152146123633221283022098887038520475335281853489781868851949453872063271877929944395789616980320232374580487556036576538830043172661541994773100955668375744029708195633567423099567077568567622837937936924886571808158372271405320720545581857160588905554585876985865797769952058528115603335273884790000042376997651471336651390315664992213203017331245959899083852826829921512084386620053556380533519565390774852344968762775699280475971500243985565601085719399017023385776850844671984743578088939932725858739226538978877158034864137114398887534997052218424242038397495948450423379032422901759657507899501681161828660257734697448532336304810749636048277804175126340146374270324733099624450209620023236925235158728482307957108570765694722656012395567397305283831447853219345496180435332973869632855297123405860529158150898705979224118501546907355424574077076912567546676662808475491078435852888931036885370021300226498928625821835697567781104011688500198673635763731478951873643875933742525359618169774293716986715573205655976839124543264835062545922508284506616417389102627994428970862478283330106488849035127360213234924965504513203111666735669282494647708487038923088513824912942823444564631157472299324463297377028695690876565533694239409810470255644716687082133785070442412690373201513169440202435418778230934949891639779207277002513966298495446445341293264300576140775849790043311210464134905682530573955800261497028799713050035960773148227853618534309721789311486254057638197547768572111730682625084312629950664430482950389399900349323968307582796962283399462400983411727613558115586430447621766483851514206317506914407709457713841042849952659088818110101374515181444688961262743255687684517695562731984942436386091561927603305326171077024229179377722134628239613604087424890591612448492645149662101515556843817155832185790187896739733274426398689099784106096582827571166520555653317427168298680208593219316594944529778072898993584733804926140276630620616916960188716792640404078734757063824220543199402782944009662468841310036048065579766839550428012778801467163022543343364163845078212505593578258161728407616853933617558411627615889542876468052231318525795900892086146851338748767861275678094534839096744009171795845252929710682879457131398225512321295206943470697776541672574496002740722432394109296052906071460093298478574364566185340995870341660897797869825871258762516990128795677669088743997660974251291307320126882134436077450157967731135535452677718197469767214841125503313955014862807155466563569764601199496342076999640539812980000297459833352555191644212849066834749092823672280512429674332738295221534331341964288774404970669004090174194578315662920929231501131053277115768576503606291143921219200606468617542058622646970956749180364727629145740713422135174604807499962865065858662491912577853566435217087660316161672855041020671566242743942729673540970951232769389295255306506699024539617576865629557687860794300971760087975268414755055797489570240075843658572191139940551305209592473929493278079206212894528286776968115694699651932655825570588256112008983978053447517882934761096839425241717502596307723628771727382571963213485944923966848339757784550836672808972110821894372389065183762801432415415020470205120447607664566790442452870254845588113341340792488868074754484424799804253755875730482213017984686879684372057683027784593164897033294972014197411898333301946791635047014790893490228797870043941937880024071650556727105603281672477804863232682184946980269221206295131121879501743117597563070695200507539795749301062462475990354562681032481982916172880744972499390648195981370583875165973371195135896389874007656185567427754165476851260042901260635985146428142135740408875972877494723680156565223133589836282079231140803022689823345130903668905554190720116396691893482619328849394468608219021598186126287162313701929924431614723614339553440982267690826883702007513420933342357822316182074324970976316424254951281835193960914674183216426519202617549735853499668421919476215965381647920410180925497706612428606398194983821820459809072440441258097644149592584279943166472003158145238376939822808112806247637787111689586359519471854956663841271540728194947445981254090348218117744328033857479659217998703107778666743225033410117090045366503534503231837329320839938361801695511113288724888689968874091784918064961090398138850590167374787553801400114325013990693273938291482823175635486926821224074462250529354979070557035295314078030964853551769142482962836046734560736439472715338514958678616720707216908457289208009410008376725491628945991290103960299978202438420323278511002594059795797184269309521735669507895940314019505065037639607691820853187869039504098478467695264802300757408870113726235988872694615051106909933500362340074480793056487213627659580491476937958443403715440309514278584836356970044922521195032774877096123119096119275540120307367682605814262941177369212464150912150807593469631067615235812883276047767430049038598562328275361016784866327496006547469349480760104956182167551560912515652318734775506322109626074655158480967342001231409904287704068523620108046977644592093760415034707296100373185199954594345371365464483047460289655741141571973108377802556923874207049087312369465279652796400061433579336016940685196157061960732971799643025732620925696124783325884983521715265805759841866167577320089877009424196399219642835921626355709175608770978786572435011102115441035639974109549728825002271053902024346412495103149159792550990280334895857286609527950399027502252874562653015235211653441219438201122032118427061642277780880772299775242263116060788356002342302572095269766547088432582212600870271674679598455597248012860752632158397893573099789338986429340818647665297446795121670714141435021556333894847837983977112673597719224950288842821278715869057307381215245630409605738498698764625745399056792477936408001297756432510530835231834839121132245606700207963728782041832598056144138043920100732333636728707036823305018284353863605081292808223291385632688692548078463671707151224452166091397829844361124953130803599025260912443833601751251804981804710332185620556555910648384410451230281807139431711985731981221268966452292587968512507582320613069490275224805581005728681530415890022365891711100426457466201295063087686072907511610773692971650779819592690166062882257125586407925331155559147034180584457330082318333069798646022686584741900978139745529225371274182512217840862576207080067215133607365659689211815546066400109999384315497693096567996619320871670739603032509365599084221019826047306623239493691090336449880449116881259015447288435391047592780452179719114788798088100239158050480890004360920371144011174018373272398302751896894817015255998180370258471871088812914586377259962141786850778926605821966126545702579876477990488988548188249550331689327592780966617539651866027243670957524922664080972707261196332929372604196687910675276783459007105884721129705138114551301925875341569078161375922823684045059492886379051418405334462475388031793197385391765701969048123609698926331909505630243862298974365429641183219216138377322325296670194590496658371853661117886116232720836503502423185078089552769051053469775610178036942209802754905571653015438453722470932027277049788851264262088089671055761304074148193523790099112459885545104184037522994153937913268319654577334270094457882000287082987661274794882503502870137655809486266407182658641954236092626879423873443541875005730685134292140413389614357253738695706108893657259687326189405813936644633798659896647687470534293850500262079596996812664594563651471662565229628241598317528371739664402498008846611473938196912622195803324110726111505958559537477718789526010937308497233282840614781399289824168318249514756449558900228973545637513922125821418523749710534007177091197429160916516475310788470826160432859500469119667876878358388124964661707639826383527913741329850714079468987716692749909195090273013035697263010281976391216218015836081176316432848644748082403493554518548466368137796382190607182861136942183934304406022253228148645655015644478219316641164376617142766489629131805964532870288702456726597208553053845134781894746619369524988425967906507788168346351781886866680208447963548791438031629157044899255293420662572947077055123287647510016132932405885102988811566256655017556295698387307828739925304415818869144380309618789500583598463562267391184687221432882786745234359728487591224234619448559429966174777660320813959400957629155310801784118702298079183855438309101976417428819191544815138386709500780674815083832118740099603170330169310153594410261143416757855573345624154911899001493567784614767390619829642442947360128590288143629426736835744103220818729769376147459321580851763268909035973400069342576410396363015955956875246401936808223214212787379944173694763524035501390411202122487851256724548704757464832380685771227419637911660167255144830527167207532135127037613076909399890545528138643022060779787597684957059587151119237099669448634448044689077066781249642932275334810237457740673634100161653352378195522503072287917016678651857495955654682066652890004874562614738763598691508649664692564108941526388937335473892240445647624931883556264128531585930832262070405003197421518954121511102170664641575141428817634452399255338186049304270092238108908316032096096441956155660437473059885686313124431724427848974214411308020872885982932804667167273335734364628612898111516975024958690226461418359519537078045086638735228857676455385621350394357665756432003922788625514139088754876636653683441923627723169707918300611705640398518885100072511922352808885855721183142470663295047090974307918031363722532540309402634089287900438290805712957058468373437746372049515648054722824675432628306970576193491214694359611513405793969303333201973946352526084767805577214468620063788207571033403428355476910694913916199647540949141180091960733208237113421378101226440337368084599128696996388212184319950450612893799843249277178297423312161477258613454336987285520608569873741548307807277677079669905478823733717322141441765766996574955452181690544389856483737399144169486343054299514241777224641655585304038937668122215799104847940333515306747808937480185752327600707843988073742766534460176451250542334268151891787361619962284735691708116680923405962182829557179188163013770433096809232997766522672571787783963946407791651492157620985799679723187836477405566660212316380495985808550584060683724095208159043791995027667100428287840687195103382073920389621415695628718531324726625329551916895586864589023002587679913246324193554717023453352647347067706832819105026230005692156205777563538142901575718379528781896003726405664093174860818828019368246985596576789246461626112377555943238098241904494631517916943730459010501680208872016643629973368590605886446046691004334244445390959037684301245906539876457947878415728691876620729783434108224712249638079939017358540045352299730229174754359512381675607038678419153187609429531513729076622554572163259238573218941029971530165046748997086011631273170412072758148574024984872299583060766147884363504368764476371668043440987543167097736831355461168405306102948659940944531917698868038838017907804423587910997007338922633437417419549015189150880027425839417658320542123290169234780959802207725895164590072202845729104043054450429884136147016135002084198920389672026837338516383794773989831341950476556404350596920556040117561243484777434151369995915631760889448928738599648569369306221335389630684212248283329966042060909735543295008902401259600955931320197888220963503469387679928682130734693568637837523018556381891968667970204478023325237098579424332601598836891122903272380922322371575531020559717121631465156524548202221623656827569459007128097774099289199682177277450581185127181747679349121093989196122496374422020086560027156160259635131355299244388914683235418913549392402928351659448268104302821682248940954543699999542458101024201210802359334280372765105525349279240781346357000757130969153871127746169094851477252335843370714356831077903527343266653809926393178502476818377138595519639521282686866247761140966767913822121198328762926280129731695608539946228245422142758663711162903609148618131944780468384786116420614072319816727264856922832214155302903554054679270681937877742505827376092943741876111972682535595951241065749486472596276520215265217522794243538681282688167669638361154701514973016763902837055563628424810921713844990428753360373900130874974985676073516529827903113650635373726043041404551376191319545515788572138346190797293675598462461459816163102963865849030473574124388546698996569002800881348697144937318520336788603748310989279328837481674822686105050161094059372092789561894766461076444622718762572080996789776229737636968304972266523740633422567009052785523603927312399872719519090508385411405541614902572827139095788095280504144522066021853627247361162199585399836071066873124634979834291761806592293776431445080933130587481589934666841867197459673712446539216492862126094634724636241017217947373133296795871941584246416385585651461434433113067681694178143353871139921245012136799984351632503056600896419147595140400913612987101613014672531264150630697012559928702801924923858066409354357789143080958006195812157524501013347278264650402179877476385227348121635097541438491688250120368713942105939099812853523728849096065487648846286816710977481997808557538381711805515715270172792275404203124740980113424175015727736924688030109786476345305832115407678000919558368056468919314473695904147336600685221219948561479569417609274741565561914268071270070590400220165824447639201565216629606691696003307082701469033971317314597583954977117792340749702083939771598142070841029855631209939955113299305985689772385053572882270927990580644091414760866219272852571187876359281085567254481119925883961239612533862549315176404096190995222402161179526285662026481527884322608753376093531459325015104978391725413991902416077604228055912629568792118391944812767618892356793956376833192531092875736214082893879435025521003506335123812089068649364631156474143578995035533008607394158691537958262623891691131471948198118039734205913580006400489911375252634930412121872545899552589475615677441409109828005513086771066731306549189245114953549127581220392016380301301751402250612499887429437496808373661504909917670358795164020204250274957923989394798987515280789274487265335125675578735045497272626407020722917574546645336973325634811935408172129620838174319766961454019310653588946535083013665522565004286960062830086354254899485374671014751262050252219405634102764324253397096959209849610062748199338513011394460901143747290854724547461964187380537602872298634211541480692932292478499919921034452650177287607228663393449033840514051157725080911093217316913636950749448135310801613936204260618061280248065572556206765812054258618074008326464696427428236064286562164708255106734481297524964932829261394323803774508786409243543577368381142076135222916071167847927443476362954710749916570959580738848653170745801578510978232631646244883540829731836160760283433561441824082985894466265258854719765227485141080805622861650188166209085382551757776069688212855227118745911713491455137792398703576986418329942598711452257120936044074279168592196280640098242264853894763807150127801469105020791499386206607792716950444602284507293221146827314341346442162690036445766942651579905315355065816759529215167193284500918440473834893233845355401347615194492158114859453518145172349692892062712987774662667610625426064774652640860468671732043726387633238311339346655028709378322154251059060182755497603928106195103857193608797636000371587821852580336429622632618436633287604010116651030078723290244102856342880086521558266912348646764444544332184690042790512398700556502390465955514601043714043451540901519793658332420866765642655237152219239165334540030097003720607016180381099525106721567006938165713588643351284838086150482726934871943982397286924986404200125364414552683741537560072671049050353582808189059254160273559286799181836461859180822934093010431273488323649744456878757270139546022702094631603992595576919450135048410114196416075200215220178725737257094349135906090079175663862815508441260762045405559441007572383645884065447260786721055758444590593675241001199773156797477172862004249513205673917509022120630085968190922220088910036399669592514081195967930911816448072930856901463314878772782931490341346112369498374463581039566050184610960282762461037911594180720418044623486011799240956350106120165430241861867730884303729570943172889111123009522776573444322551681874234316278275588545208713314224161869188945268273128319902056865663180527745140930656808659958134124174935189280461904702822703690987450901563155762416267256055565730711065887139071829943445137380394180470157490907593097413883109722333460771293143667036293501253195955598723355829986569056714798168002555220522248539822390200314139600810320237825733543518306764836406706587396796060698356990534955007221834919297659110015638479033845342381599002233772071991116929968075271926449132383464602547045882994062999241191664623021017157565127857964340065976786655315668328361514630392475139407714017027503615078445082236082362801118654517453524153595647396838632242503003959779908932159050089229529309483205991905575206133169382570856996219201516049263064108587067081965228092800758426273987268270918850665791269581174571517336004707432993620966286531961477561488250088158122886835549781586200580853931928198802952146396571238094597045532838363191406257833035631877453510951322291410409676347796154404066634088063230237974765742788162666334391765051752400147549848141059592945742302962351671630297735426215437186375111042697619978159307013843117940460406109718153294095639140283967472842613027393982276279962248272476415375667640190029782081193434522907574386319028052179593219732189126263922447719687686393951106159893918604878169749134537467097206140271297108371580241395604090091694540380334640885691749030219254873400239715967188911264818450361288320453618672909041005452882418497327768476953459857897398558028826724528068701626990197283687763849289392937908847781784240137179131233137889959159647455513058776722308092217866509999321352390017821834737762691362835940781807882556901461343069204856103115420734529444246405650202629195221124337402108854566880473674550173979761037280653041583809158299710064160395533463850128314855331690098349209383930553168535814773127579594367305976221657553012466960242558402783218588056562008821849924191689937497095117635268781577401663081872272789254833913808772870722548115832876471016196617966640804215220613113978840691806144142088578842082178158815845816715236926405394695522364840186074779417615887690930902104709633233616353100053013014699147209060259921204083895927165014014744925953896351594523556859020438103898272956177050098874975864087962946668376182831307988720943098439811565034261177014877140046280162344617559870803381866863755312965911528027065709395646906134550394384846697740487060669964595682907086850105749845152253969457545827051881786467164384690733569501805011572298942101432927592138971053248796586289586737606113248915581995223656836252486856406473768083671655818178746838777734501146367765288718912523647347393375383692225086812800565161906753771854812731102861331294936061090888105849021498918389966991240761085097896565570261606789248767979251974842658068196220019165599975235520441326308876499873597595445716761530390574390720337368560791731295591039068344654940238153019494785914330311919107940464385024476082652562511794535653007101206197753519205809164084368196662160774689481172405499652618175353764073922880244777366106256576901384818376207005067786191106088440323367735516757489739498501954757728930536232463980578698216627788657712325882352374018935646871252464804365687184263859156422241160341802568831653260261288218891018926373879133619865445317079402528012974862459480270689879548330164127466411626841683841808969014202062236658606646527843654708617949101480589351317524865633523673038639418756729757835001157845511209050525871351771717976697528940818789125695684136038025758029424545256402294732291093818356028806258735570739409892746816912211130931696089454145091217697687283663429539908160606179035752885457739123537366201971845612991495732427417226565817963293051424135103026409885666608104768024178914492466125302243241280553407239758350332322073127347892365153064899288042054739934051561835003019523610985606695143946698749416329580422367033714022139975681735447828311498367333064301575062708769378375369397479710984888147411074187946011212584925550169125721511431733710002603588145669622660266722309542522016260655832332135943914901520010767749072641114222536886507217307254180266974374950080762618967136844064055213752151619418894329660839629432413499081886130656263593914805427648880970558120399990278958713288994058163218506926472640185150848877224792041071074271790869543457275123785635680470131222676174987758740167350358273991298995008987317685265614567081358457191776213287449250539163558918958152183583770597357527450114818368870376499563885750966995592519326589935466778051401587820273686971606584622601012575341541301998809223450987596158504608687266273160501286641262936600584661844266735432239795404295197851856914868969373781197989215004567755610459169567865176025061195362587539950752981322140067190318465552014080209467514107903741411421874313065323490821681440638253538118412245162653925399472304325071136143204918023789911575446425701001941273926099356228066222386176281634560840946674232512112123558642684964218077462241050809841878606294966056774998067090723222612496558655625460527969082864335788789054875228397028092943416978384604955685921565768370554938590348375784680127090991005772400698435169588349560703525960278052040364035361779075233646913648208584659146119720818030890403301421442149607345688052661675901415651873018997324864419652635978139762937330626475864135757080272616847594780610373057123936536169725357020580147788557455892914347849040744610948908504730295558919790018406570678063647827309909395205067661685816280281390951354328040415727901703893497037356239649394356853825365215236073670566147518335889843309088889783241951642151473984832330759467678434696147508385439113281081984638392534900202619624514768549421454121767094585434720997087716936076425221800300104702301367854244678765067599733094619647731789850691523494155795735200659690208056118038917151240597828796109775742485968419684578934431693969813291176987838339664053395214097095151154390564800586740196196133695095103951095227642814713465266763383626619681057013025337338157740491258635937378835472469954667201118516427178601217097990896003009176763784588169123637634724004274947040612002629124825092341549423821229933730462695033064321009529586531322224173335706096453009231367470305093789516910831705419273052783034016071403364238112098639395610599494456726236060598421127065194095948835130107516077983668805097495479936898559164178516984079626486916757108595110899368596440432510142366373082881640477292533892951540476298409172889210557246507983880748512419145305210402309039481041340511235133934603269600044844848848136924129835778564833747602540032799913683671973949378541038511296932626563082211683539427152595028646003936059965966697507097400145107094059364283493480508642387904968449636061713245841542111573015729539031425544868009984460611702214174785568345974399468466174085129394064558849187544853380649351955588614136475347476954785305610693191349586204617433089519644936892562964957811817426510820877319124398161805623198520113695413061272874130349970162876761164105810132349795469769861098526442891843875489799080422489588151646543547107069884682247255875501112337211331614697836615192113555197630963860133699574384675913444583821877345031339534895895543490269975517727090178246490179395502789836543947651233195902031373846158690835377326627317293378720356870479919444360132639899028191123366919250831006883697751112142863489804809976252738306648778586359543050536535156065963763742842638446959655885349697156267485416324038354602652102364490059308460738676027060053805783735756453199507772210308999135486245566120610758223741041845262089732826512043162497590906149468296874130517466773020434164380659071625472406973156305160144626156185208133946386661430142439512583142143324240370449582432571864091205831261024515991205703592360546858577982000549505380675862685423753155885041504526215648470530072423224833310157788486623103733123746930299479798854780457199579251035469665866591800231842970468203628061302913546692447548012471749743372829314017947226734797386216982939476093443280875887115959441922320304427040138213985174442148465499429162490352330318292825305226518822368843378449889416728922976670223665865669993891414374296945275725450803076582000877144157392132286529176854838696402618400828017851018467317190962003355950615181244969634123443854833273441975410565213745465630096479915588617263585892438285711588781464814987736805229900382851491031348636593064519366682418610938929796854335892674475146529861422647725520391092536239591420553354543031452826464033710935371936128114382721954347393392021231468882107626568128319414605734684600641718283431488589961549385542098372742667295063003398364047336215787567429895126682759154393385658563979362093817487460031760434084501677597693485438754042966026999809451455346505009424457988524779666192085191197671482146682905323081695272493549542227171283213105138083061770572138235211520044794426386229984916785998172963859312750808002330038174688738368102292962730310071507056534333812231731734062494445867542332537586836112777237833911913759337091673891681097881189024870751487869901885171407060218264428825565953865888523931002598768567463342297402590937038049435221248643277957329550218948612679075501972582955652157740070192718622419162314813533224860570340935137499105647091236294978084800851228536513121018256893230579247177499169224535820945175681721476603291062251656438081068689704123127269830518724358225668097992515631604804870148358981128976812820612130872177203375676401340045356321433027044954519537061739935892914226833680675868646015671999654363952111963647255497975034409721975557517569456296766575459967624114973866246833361918579882959290522462004809741838425016379143113665456723568007555976016757660668291789419629574257929933370340867355229558262235509332005401905787423527415484458100702568351996180902901133379254047977612676479132758839978386525254495205874112116086970805304545162273882606265421154736810388417306079428931616410263707763613435862085191648049290325107332531629699635415737299457034169524436181764518268909819655592130326079752819073975268382796094044512734056823996197907051539658657202587264197197746141501217954245779722329939684856600145077837029276883306576026469745596217698467078509236871688112615448654194819500070304724698824670700953612245368933155897906820221314074621576705707643594397327442745220966769695382230039220022872267946628211729576398539114755816071629108040696164889806544444093680524111414081245426484873091287551608967167126689846311078178489660489095488913512656676345153497601886327609659101567068486892554688955915194734228563471344985672086568385709583309929916294261518503828649170035476483205176636960422505081846652525277444484672315210364786250048986132930969457544041192646614957251712760981611227838133009559885521037804178269700102216446358864038404356880698165350357438379004056598843924635312974533383396771885845315722646917405974328217367116713761238962992930743736187693493141164876761515111200835941766340034669308513197557839634756660728774436005950575277099885371151985140379312018481897523341589169584418129640032087356844087006588189727264114079117288896821523853429712270445567530125679466272333487608872948485577879487812459365249378952238131301927578975197691685401428029552500870347578591758121821809018652793260740151373434008511102263417324295482260412285599040115970506400988768896225755319762709808624593096025389787224875673023783282156732637605602014920376554622396625525566217803516842248694173382207613651328987942998445660398042103918753788592144849211905265610043957777411007553479146171554625295020261711790282583663987569656383805087235914634299971027119682827411183012014270974078055083668066871808075061261604884155245416965386882680488893824711706508468503022535634777825684190876314448497613870364478009789319461801398131541162801398465350205938388424510866080976843512557016566276025993845523075920614297632911271832178441487620382709958115464440355448450519121036746189225039265890239703425371698173715758694176936266722132847635273985452822629285933407974759285629757731642198990142464708581767463614593858670165498223513680572570941226675551276781929310785885182482164082032408609926185992192382672518717103202300429790335244072677522835835133346788569832174989647312770270215739432553361115211936201766993045647539799754027813165722671071497378476919128704699877418045614366848521494376507268565392953807139464395219467228187383759385385948805689494237276952075051882451390726237336362495490834195107221556912045452864907184422469771607533894255593827449918068878359874415228909509399693363016332248762033165884522165052833873818863554351215655978522880326724462850149329643768786130796106644307443996407609054715501200292095498561926841549107136070690878179300407390601453404757798201764506858338117370559446329050521765294633547992568843334788839648792604096373070126048019583237432885377440553852451480376296807605904516890562642610732937640407459432400079185892728370162689528434463105620317035510193322422303311140099496667432083379922708324801529911606384490177864548813865672450293519901236604104447476216385559459922148145801180424909272986353729339471083164086265989973260568229580252545133753244497964967857645033051995512790016746930178447513966074981788329187131843558338012080142931676642134985451768595305969987863774607847389009255361178633794784722369688170768146294064147795933802744506295549114347756934240680872909120948694162217589685781476796510982305390968250424200300160667471924087014654082532709231364502968935896324742362579440963656141256815305430097704978505143257881979068945117004637308769940828932268661896022723755363434939744349860203252490608318547169712319594130203263883729372732348174847800778184244637250653529538136712088763903188746289725720808279336260960233607685437072514588369710541001046438593347392510797184560903182337533227245890596620861676865965828307879033936009069681236711410402541838483016226869885407174986253612357800317603517540451287555674936839988357453188580837609248408551438475434529834320070104024836851157292983186705771257404503111004480303172391139956276659321820529165279093144276730576052329982461145734310315969557559518175525611873483655690408637789630079411863943531900887204821567659493542666733072901883174207777164242321361070769024014307438245182168900708918710750853747087277846667234187143680211083524805774570308391492681106757785952919703581328569801316616977139687204221489052164357789557004858457436534643139932740366998917615897400187493290360541766755041172302641615312919106398122941787219697164479842505953044407267025016122571613144104721298430057479642954432043128049837414967942762905715485147239550461962676868735177020023956351847680779628943144356234242953074818643233664282374527440268834046584257233570420602076472029172371962775116238849913773354804854802307692809418135088669520249146843787303690616166667680661526960036816944487049049638161044542035162088182610154460165288234455284683076734268911411667002920048601912036876548547443285025167918983456172986917407922217826676959695271031141737083286474123163286292272719519075834629813645371101566926503310391635615302955422381064523244709572549207618948954837372672039268677613719494020020875673307077400315361343768634647806525422125188311983846899254877631811069409921664565927361227062791834586321112542154779820280646865818273663072667195115377640391349925464349608436538440171250380125421131502151296804426522361228886980882327937524593456958972583806734378496042403165501144072525166590905952249740457023824433397579800396444081554638981712768409672710452838429462127184635134269686917236417575142406252220574297299519215542292665902213092459672736361825398080433249106006390342411011510243189699643338514003720005757167684421777890644956464308351532068865127955990904204474576281348904821190574937640338753414344324074851992271368181948217784032414171393027678168086136508374014469989121131698754727779708180806021065858574295423335653556040450018310081495934312851730056327523476646410037981411542865900312542390610304941042900664053420408080297966210348628491121347357128010790228641129175719729710864324505974333395505300463432047532802422668997418181513911950265546748872788533396341787942362982123638091968503932397005370416485535255748248808372116822092150441457726297663259919740942305488995102604267145284857555994233143900545497763745060195570374625652418372565715993968063238098147795746638755622253769094409250979097388877684169826650395263566597986507748782110433631921163193537970531650444048912259707593480656447901781439512464994819846552058388345662695698158144730167753210950550535081123732810930262401100925180783723879908518216468291130284416703639896148355559211661677425431857716721920378212982525668801157113658243990700700011355637364303031374162405418513211454857924573738185606849482874577167108592525755564467237299262518047336164649292833306721261022717187194077349439817754585983044188274574466426362059202566312945693768609647005926150901833773493751830127784231386053453848541154740641811360923811261374996491869317777912020957440178820084061269404010582782519010411275569699307357987595330256215595876331270260662312471211836756180856449335755716495407079358890012637852906989379814193587262761613852395980157678917836727601469922685985196074654354677051586095452090842070250905436649383539529165709044612535575152377507951319885110440838142606178410404057093553448875111892407583494110300639578457073771130786688701629264156321033097456588550566147162278204099055119015117502849709224691560154918515859425238073376755051023270743715785010672753047574638048971370844039946964880225174772490047732192997134016279456452255619313847291925933337473821710256117404562784018527379857393564205751933736580157101425173507613966997767382701449036029172657971898559019799913875032317308919465052663372711780642676041048420940177417596182165674790145584694468292119505225047686191502995151484448903974491266240335847346907616972502067338267659012182026042447628113085017107610824642160850021908227203073248177209783720905515107532274422168694169899672688944932823304096053053688334823614314234278364974059083427438199676400109152414455584694914666736130184614192321642701447237099314795601317067719318210999213437905328903468568025097899237036935719040606184030106861470083364331925241264660639553586029215402871144793051111089175876385531243143296474401233688753723944601335195007722374353980165822119168186845396013509468052287962249123523680163664153910319174514254040516413878313659777685486971433106217460760220710591540987825329331625610796096331242138153221549904391209263639611079386243318868338714760450544902831602377829685343763039972130575635472851816571235465455990892042809981832773617376459753392058546639217872231317911520527870158514976951858332864959187256973753308907939619734131694326655169402782049838923599532772855649236624222777886775338196394998193460736402515879376919081912406881820731266971026163538157476595838590580591044405863881458336927255505295020315762083402471591865862471493643779378849952680572115594221842370698706768149091356970791718602686819374574312476268188132393717497653518794743642216379147983771709251332230549672036807932680859975217589264451406761194671905712562159229072683209452782049765210570408017085976628788145363968677865707447891331548290902488701278867234110675630571416152838865295307856335053267623564395436922693746544768816902329605962825592443837968262452618047167963216286930777556194285455057253547773254205491399084813209210029734152354793343519971907182891823246050478924709750085384457621564374536813262918970898024067351022313162893400688927494225172107667260061048178870597267484067967290956149966174925007454637158722181430314496019189184955036376105870378516912344707517319532436465248896698288171274005804422699318868469663794618717329053197191013279288622402669289246470499792243245303770844818738645811950635160203269051453865629635070734195907537934104793930947421427863558073746493711327780251566199301551617099473815887524521120699869406384008558723964337436301468656995538161317179889034407605775586537144960408825249153045236333179253071231820108831679401260887604123583570904668726457770302479959048629433210458586542830066012636265942224481405329772076266977419104713195629233101280680149364515728280669185597496670822898934736939216950017826503598769374674494821735623020065505440206216430206266472408064042570727564529114667110885452816917258480027316688598690782855118632052677947925255749586314702221711433311094048365005657366425923884635884399649510096658446636948010509932026210017150868738408339414081116972398294767254287160300320264422442242874485562622362975741261866770290360848141378789732652057480492403012793331956482774586593942281643361756388410059911142342547535952276858192048373143976133467117601725917202987320838545545344243767322195040893939042098653179608804078598840255231048721968329650556449072588019067554867072255247565753526114689253580335828512699594116515477072944229182254601557825658354470031585841775012539952162660393686173544418537709853044202854925984943668793650633941967999879872448047503990057665808085882478116174098993483819931060691185966585405719712099054258574488496535240549482395059119505111579825027166098079340543983368840906178500048768912739962482210417445033570179408549601927258052840599447692517782412267565414725037474029553685680308451547657432273986563638935493021170058309871054345461246818935146798438813040000482402797877425212704029069955109734630753808422559624144610120587877893238554441947450922932877375129329558113825238881853963747875647223208086673482560027864485183137352453772257076519288452357251720745001640529019273380314399118473555324234995480182880989474279957751424966531847487923474337947770440474530500365160952542073337560256311877356047289275614734513567741362544312801558189307410428762587567220256942938363796884278083068439851975252097616925342313772361698661019509647315322174534117210573398438446875081204547842474222375709298568637600633373421521999331553859198443976343709012786345057669896240161885971207598902278634693848706789228848280540832778134960429183597829418481440847511888418142109003898968511661114456095209367746828127067723852429440648820590549007369504924285132231317604314482413505059822656076847059304781798736377214678261242163015292380248701381642988658784478882070679834977280580303259620075751527303666428448847797703002291048207930994138586404437676312595142930522737277517736406920629157515951117038122771819296808295156545507399211775693612267374540550813209672593428071092318749481410628312005670673416235771501164160407084191288040666789280453229094281808023473630895394981309190424306065424917959030842857171443486757011847323582393090020389333836789433625174387120503149217959708086882251298918067545869352160762786572348918006334858805474434308893045978453589936461704777458204009095022173168297360810713772344087644237713995277722965404551264956023315816528770556710389477276029013151411679749448159140365738609166103555314805657620222850226646811859651304650173678190381860717421405856524821904831111639026664418344178792288328408209678782157685178646070089365058011846624963929962517216827276840281416979871115318433990659598574682958617560674391907560568786542084995611173870920689457100422485679704432722426879480329876946040734803956362040454248343333460267699145727800408514121348928023411039114530920263323395557223595953044584758446941383806703091353744831297443514929261568501044494966195376368174989989406296419352179951164737764496612027729893887858336779941635752587909598921565276026369787779888191293880489703932194739572518376243208743108445940894552042622832011848726777979598821890828603799120657411817294028423423064461187361473056758937920518249429886290034519561138441936142733435823998969256667214938123761763016431217585298528121340200327349588387452330620925715896776329463782344801289108723593654382828601805746047053821491748088903314345306776429140002140217388989500341261686806398197543623108351207633941285646525331519049629536212393572743102944406238031771837065005945090479019221261682755880370506402910040586295346498898886024980276378131841145991943378243912271334444321225983510439049045483636589660892973425446732224638508607813917756029105719901586084090796314037629605463535285580598713387078289986547850716665746759083601113007093249872977761451028711183321499466356893202976470433304663354561487319501072464482809871047004684233084402313859253784061839645528061419889213214534264202515600603533553666690492524452665204872299379731799619520281306470060047349203690548331717933451592075069821241549114437520650890164000256807640878467898464693503560825337705901620216011268282491678893530544811365564227082925512372606734269091574405423394185751574020480300207971787973706067309976762857697717091113601678172900061542853056926116926724870848689075412848464192863294788835753903750241635459822875623857249798555305123061062801648031516292869949302132559283351054074881897368541997666108391259361447295520372932889171566219438371430206220661362613412238901690067487213104251885508447493163989568211172295405875119505679122245229881543626314305364253664079718149049497023062097903842746390531224191608721313899378970089631449836658522900410063331129190728750609561846305948883161643367133778791526440928910398504521315693148935401397072058790567877589215490605000492267694119752114551411852657882710056993359683166697118481715465849121879031328028146772757149584847788576745572917977370209615839974873459420549872078288302949885057402809710850419998959038435544978773255596456210849540398923617187531499010626170349458893224608478906353156823990187200380060194705285790942059461875276615706434285994731694565769443567589468085967256623893861128706100643539876476901727615539305529288157830809652119296884729017698473991492917932912859638324531269600255747838392866165559546794679878608507884416341698561540625867250398319476024470982114293843402648274425935481545334955977570972424361251743930262338386713877657838372094912664904028899035047747667301900152535325206028115555779015333423970944937019766623468031922245468449867589090568780456970735141498743056553976715815330485049351188784439254644997178880787261121329579634599224642376163565030891311136027843764752428265679851261733646822738580620061801223563428226170584783589310716609883944707293063232739904955313558643084604948549668024678929480868591473115918052212757920059368155732526829659537812126708187303108182568165760774677347182237940342437143419348894447623877382964302404951981684356558575232442729007045632347589488140321006963922537613014651771408172688015080631900441886476981240602344628432310517190460846305394911877287302500682784547748511134882209797439137993600263650217283906380937731663492611082571459597218157874753795953078858374647336268977765907259982924830490189014105203703471309323114090631307817025643726000527065272634589823052756522967546102086765794721528639552465271323465987573737467901445964236806269683678664134643119171560544886154682064357712462896098749021036509326899956669339986183938731919301150794054805252681786298135100883147528329146670539692266780298456165381711057811956404816387395846869987714740549702765286223505445261611386751819371538858594978315360643636773186078783533397263764182609542321940335597343077936653611920548300704946956521968266364153308677560576405811167419486384626533257091039932335945150491950378084540580131033820211801673331901836134913388939313943486867228743143719701561866019924559205170159773546278086092768073761785849758477044614321697736157181697232363033521599576950756688063969652992632829026605463462230744101149902416752809349505838697727854466603887449658125568711495630172489941316480886024678782220604276558487336126109920602450429573711990873358365356324155613544874145033536611889898302498333855906377204349834220042613344158021398011682887041863092822949692544660084539733181254626328997901627514786339232280638268231927728704748826157120557138342373974062505886791232820353726031523585650642480422693843545949191642422530409147959367489490047372130290004953000456874396483171578114946439349232146335022131970319341722036161347425057607192830907949895046072111674344295794226019597658039878812871032528149718240619654699523369351077779759493183834989593300405201426139881278594993702785823218282768106203969004089114348525842131202924531076030033555509076294592815474455710764139917493760924068263385369458972054207252129546192223430491977289707463291221882393924840500970863824327927485449785044358890894472067935071713492458572561263540845349285720277676064966901837876632927444969394409245226392200847592394426675599559163718662050314356495080343010816988587415743394117792124298145462937349658788551435288616553710063540991724612940418685705797864418503781496246546652827707578990696613899096098433959478128879441960615138748721474489146972940225822075407581444795814929646517354618759293637811756093204214098214328032640827933913974221657099312867879398717073001482241456187897536047637971806599861917751032693927777900713918922197268832503023677724807256790192511860375588330656343055983198295623888064072158672186784841178984593948071514159400655693098148682598016886840186256985181438831994809182922808421161749949506025576928207481105193147933719484113769744820392216972041766835480702829940792182701553021713872050271874733391571301145494842180649164211107794527831128726420317107175484639303295125353497476309707305878528150381699870527040302691873177396393276590524095805062699220523423568203753588626283219937794322510815545698424764992182517241305648766673399351864525707918525754406745007247119381899554362287361534214142350353986639515057517374182271693948811924532780323367307652749105632970721770718844478598051068884798293278634215562358344955051480031518407531010912843108766996411002473333848022133340993360334897585946076356025368035186989762807889055141178247875899941341828064390290216914443863474910702822270541620550131381051328032155719810054327875064410021923600257310789952344893359801152418333570691542287075635789723744951529921779647692199608763120774354242590114655748941638322466636855430109504311530047115315028789960182022323272185825070485937306081128024390651437585134807965882547687243925791006375255799427535540615283465973702024076722499945836970523433328479253598997420311448372950604768398267083204010138926331194226489040575369697346700119721271950712230657986983656452649708251979947490267564544235104842478964304083376435729250005117952154346789028042462005488784224799572671394670758817625089554681061923981910658448476273349371032807375571709437942692727804519145133022351822367685449290909345673026287958734768651356605491134017609051540741335152549222077092025536152474950906962317937870742003431458563642589405547423343260766526502653508060094593178952273575182999787629995777310859246700332744758631065953981278558925165722046148701170704995815575962944460574676842549957215760827374795767792984423206992329888302576355270713888435941511904011488164525930240768840253289558237805302048310897599994408005914996147657765575853864868380563807074403416927182306895672275392331727456500524181028739906215734924620077293417918858913208816126165284457734682535548798102408630403763563186596706276542554273964385774401599290852527814188387426262549112369017741627301078412691497803209184503162306067393400909817881461283598981374823554410172460986848826430568620880349698691184092663192635491254896727327660388189676521624103255740660966446058359896056864709736776785547475997173084210353147704838205868053902529112576824472719825801766041274871834949733459570946169539480710175075157922126111369955901506094352236631443267703113166913552093494814508321985931890828557492984689264555657158761066374564225461770003591489782568964658831279270230052691448567184108169203378857237438725792963259325222356820848933860011561343144663336088612832667532365901878762137210434326852909031679837119380521581788001998280316109632777506362135429218454526841567345246047123864448938326861763753430539421586995149407885634436197591051355993722965689654498222527556236173702631313469731026264401654653398809378056305055444502199955924956724527908036237706682722900583239987763568300070016624937607880871126586647610121679656177226168166563757691627001237034749912265157811032218729241781213229845628237403357021537120076281679699753288359204919621301357891420899839565366034051066155551598659626618783632720859851463250453882630695400755790853809036645036544684541859263806728015713482633446920611998387724204612924045588394535994308933444693268571533933979002279801308421115004184736580933495222967975610083736733857998048509979040504927278155605835548013898014779956648702450151764836321138321920221038523782823527984213185180659370311130500150944802494748950354232068415717887230866629426335538049352532937687022520453655540970082180467498914886927968971159309224192502640050146144651606717027245860318698056894838725432140933056800791488010427844139189913473850729766925503083091288006925827424791702911398745532068295142472991730753407646646523759910383444151574379314192170513451927656997534077783694402794207753138982592274109525886176663070295250456473104933643119865774603675007638885473239240897909133635773038691669477998459681728373610055855046440249277537101582174927170490484321956901283557051554621430552998041982544815350733771657218759461053808211858901080188358215453481958401403289896691914840584057847689474954115506838356994525382677046399616050577014969984036278691935019483862278408649047048555505079887118202296755833362197039673869015018515162304534578866969565127158684430366317543273296836370590915725973251260049090658982167105872903482868156548057741120602550103239301833646498212607836152199554581430103850770107587056119279967998595345356511396993890979244151175227439524982973384403535224149556760118202181854243037060386334811026847240926783677268186184964442691572036055930174631159027046511617508852904637984394069629997755825944195767875332578888864859852246838686923584884097131539445652507339677755019250098390322213181519283738782046213642862756438412284516956544457430894505882053914420986287360914053838604450243949436425153141625682274842398566443430196518748799696626482943195271701749944758811338125090691432515111660377574666074624700198652573131697379759278594071910714145444597218656607137490972495468384768272567242093832930725437781236588266136643154067810536674073202565839562461255619034626696345808058975487149200143056807905382049369937164403336818133854670098124350376867271179461401435719836351240157965276654090497563495959720885649136269622945728581188809413771830931054539975620249016035123215864954643194999130680066879563994031974123834597166959253713964123121608279765311048983307625017932446092360186041105637287067420148226004260688474054731172206533777922758930943447580509956356261418514034862287470180466159336476710139433545034634236044167831582962141867370303143916632169927396837373063427945966656166322233005522878100904515366840730823217426362076179531607675978980316923786921817154360318012401365855559871535201123072233364848860932660990917298194926225989620391436338725726566484743621011099553485835317467319277827570711762001841038606342105064286613966982620685003118127691671345841221872159920137802621578948495556717027655610728897683104182267019085636516366372026420952290367298290465227803529490350070438180665313386443782167303182927123405702609583193575878020112486225533758408248232270957366271616386076669627688796788154896976950087995971318993461773567537745480959564860971107483489368680218043169032043286179059457778461318667873008536363018586975849583120110446013145668111698757801180999028753176721846629796796508641949431705616299477655910350735425526776358330835824949097190159759132305670812402800575707469033991012564343530798276050293841904153584058627852029025886254816761443917309852651588133822261039441360993441602662313128234211776733049307326305143143808678827198327398135586616544967848429427535216380302267827611499336520256287408971197476114228742526514674670125568045439538768465777341017881533958682929145018547815933816717154784226781489337505055389459925303669769183516282069905379279645066905387220859587074403731679888826213467556505971606158759015659493102663926573685012121941656410367826663208149778183831170812073106678803090753227234179162828120289896566030910513991802330587378563852361304397752222554313446943134703127281830925953660512892955721669999253845007979402052897791374044519034653042006067309738164679036620302722945355660216384434233002435866975541632140083002134145426165228550644653454509982400744698273974277845363417183450061260664449030641279511981036389024670850776096993234752878463736681427935462858651610282708380515026362604570143773626856755418890499816576942445022079221543959293888398689660494688568794912982855744043219063415348221326598852295984019392151131399429739365950177844320816457364653781332711235936407884710390536664034036858275272000962353690945959613626265386441754248443440853382813802893267258984778154574767236365354595024786082612812103376434991395971887298806932989363679715946440373767388731641219354085959616050688315698739202893102554347629084819005653715163678228825576836094106403874572006558017094600796832922532842764193203411118982432084207797390376022950132885374571124270022991076030704385339641103838774932949894891925209708209437585004268613339884086039051237719077793204925618992987798909064488409330102778954670780925600968748170875837282389271200494322803701582574218929065398391064969301787566415159828440994978342218557667659408431366885460006642102122182942953028536615831950260122280714028970090365132869675863357345833700010218252786639008227613455258971756466410815107580952520120699317352767231129519251379458432144307091505033504047925914210410014914882748135242919515155902361953200341128819423796140316097278847957093275087514210092253515304545639639385496337435974199481903636150778454182435371481936316122717401721097834318869129121857800180687715902158069992846476944118011813419525573467262020677088197223164405864859636696946126190306124927071177338199172568717361813643469015172653398461111154343289249595918811502524975872840180378334221113173161853663684305397359161873417014685054211319037230807003755357694647295414520127402638429864757529267500240302022443285269406333738074624152401444337093155526945084942018901176575685396063336667911219877798246669517293103035157906268435435471872102175381554349550491643992535687800624808272168912441184054949793066497477067077972529583184001475365735007394607384359434504431371606268343181028647295181924066375194577602193821877239206979073643250969056071385157198329217061055197089527024541640182254881909657405886529304184962286491034178851435602327011365558030347388001832082065384968942530300994307622242606624356654164191157963312550036552247382485190315809749709528063134499295982020488067007841971646671052938840603709656995353000061625751130657337697886740297307455155355172307981771283151311193127226694407580345578903529579916227548766601393793419055712554188229240205406686430182989192086870312847919275054671521741242635587929373284539501309968812545476980146684330164726546065083163289870813725080294599699385200619297662130293756562089480681531361483173149352240789738628281148697717596614801486552204309851880954979909517347263538114579743468019880024077566260700734051201357938478045514167016400834052136456435696851214814982318980774939664685151827930903080026896583291286186229435621838131203068091616299747702715996036313767444535583199321788139362858040406971243705858253405591737314912104023242610494704918790823605684721020408422427061504412513505726255361007936271053066644270963360485085568436009712257350781554523839321857022329253191903215567160490113675665799467181168721310662206710555115989665402609201877288712961596249469468098100787063531721722054857204591201014905966729904099890390878753437412982705236117885473003746086062129014638153852017667827691937870198913535089863410803774029906141397004969426516472853751333725246970163137237287378982933761751109159768237269580513781845957487344581512386126309605884323305636870019820490433847489028679018598332311238540753950029762088612805196249146729909298302706175171003102316194109896450353729744197449604975219362389196527195598397043807670670150600463272777779591101045721013858294169631808864022325806864373256178853249176154867611558565827485423153925096911552430979165616530278615297113332245320204337546013875923811022382790926251163573316738833883182647083014780744764322078488999772808615277214028716108432863920170783114003577140586081140690213027450043824580161138878922920275302905290848650305351838992556950826832406839083718731444916811150783300309136557450425070018452651043638331622790149032877308136908948487907235772254170349724858006755449294410089752748195979712081466194501616099941889868926317211918736975247586762223888785918904432045232527829662413794164242522542248823258130573299247511875545714495772218293782975951371592921561425353739122062075874823516947111173272270535582345339122467423775047328355756872571700181780712021248192247750324716397222141590195205320971301468168995544471995981464464491219982970151185350649859182130328965763241994558178552948828580321421578283285016149431235939220112187557013783190875385259028304364299011041966232939256646033227780188464186961909135533819868874455732079232061332570410526861415627613021817061726076694879979989427045779306705346242249675557658007545550455857494256960874445063319312669554694521256007325654585255339692425860291883249065120947311114978527538674853980572770636703360092982147064074322882080462414469845566287442017323576424142726860937100480033446698219180202739034496586134135755736494826226875540893397616570614115792983895053813435761724822934131752950239494819654642618994062638572664383127129527117990550886284874253260565805168480694910735051152810650192955838421960591383611913511259177998160516884584666898369666170197175518905922872819338587443110563442815535547332713039449459083702438528285319422564365371250657749647584268516190508331443559466297020079179087818746589140781274232338535207635938851994052424647385137373168933843417572148125307789489372010633216184203750794811203140006578616442941736176989784133029385540451471549925868780632964420495971423773988701579948377199676632014615025754399216365026312726193229351364517318928427696901526403866167380429149687301318758202708966847121279737788072753911908173431930236377245484139793647438225289828666308580301306058647325959203377129389929680379783771295985729791499831056530000390735635073027225034721780822301899228019858447622073657209507385159503785400968087902908930841802449882039006914375183271408825834128370457678189152196191974392915353306586087219274188573851840723659085638142804464565494704796007912771247085617203618749753760531353321301865390278903831076929013520563679989941010019093185766100783171306325183417073514300069357559092093366297885535817156418301334973329484157815678023972088887780694981533774381555575063163515943092431657530727168258833904120858927721970499949663505224855063948170694826701482047691703409690931689273381880171329326850125856099409839755955270293521210845571066652433544093552975462108302121085678158025626563116643657635898385848341556318816686490433978196646496395535911847433467923113571331317214072799733066043866958701869899401448921627078228175071186018873567031794103682952330007286094067740245789482054676272381606113982945851344579447719094830407745951414732382739277316443314305283724812675268264420446830665037010152394150228943609374330694128761064648473195126251617518998998433712417088555819157838452004878451811042863068118142495987992808929854562237156210456525039521135273808492439344404974911434462997011333957758480752479523189309868890768622396896330905525484702275716372031005789130194711033541295062759417337511071732929004143441119357498180046055153082163447941662364606895400114225610515248570144802931432946309950571571712615081134946916223564011536236152595509692002225473830999865915384517401907656149195105709814898865853818389118895085282856520151168221290137550935552534804060628914162058313457150077648260815920001157339673896075510842623215745654819668852677499995048527296396355594557964229435020840152247692183908811290439955352121722910439327203194386933489466652210174225301402719641271650492110317491739454307439305886888643919770479410006383512678100118922325178722193687011870550806605947407342801972817898332996397738190015502580603951965535940832825260731158986615822359611169751134178774326265573557680916322167753323872449600432617338872588084156616128490720676156982918619090580079938514446468033794227358471654003709980292494078527747771478737871934885579444014163482191126417908018241881350837478773413296429754462935264933051413165715669148453997805489638848718374333599801318211004714166559803922235457103735390636329610545990135428016012686113865423122757699490648646295556079543649767866228941719956926970544447887544216547640805758936638062501985227911261942997014434450937369632954071470609030070834346777655391184692776840724595526419441745443405428409366236078320299112329508503917854564030238196663213375418989964126316810296475385742652346007940004643023282460161679951888385297956087555821464205451967767051645577330693453900008467587950802208703368467114111658194113207796892175537294461561411080067494657226866846333435427663933041702162137356326249035805673378171229538776506075047812044944189696574727590165040036954408286993322080071764786021910664464162198298431665313802997828834091130670926661845810969921153926428038082464322907938448863662166151322863391478636221803534505227896332258497717741440409179518957057327380893649807857860188676591395152653628000263439864129928331000616953120652805183117301251142973219740271610171633444921624026073544312498337404458780768213775370340341591002837236769806920001528069477784288939910303934703201739249707691669056118265104208005414212299103350044507164164225302720460444144137685368684096550401288430082213260324848710686087753022487903832361852147551506801507331526778035336790801809466777974857267881982661690833572144283797063300631489574370259116413744120556269507846853792773328239431969797212343304156622138420293612050595099557522268707482301232688488590797676088399160167616738472013941510981269685328125164539653411490314521601569650335421775298885987315045407453154314811574328985483308618185290605017315419649223579218432308093680913041123971899090734736611648941771271543884132954168220440455715735693060389644468700387349328667177693199098734231231256802477186316271963504141716737395864493943607397055004376213723443056650364401719408203566957959790481591405371744706923211662257836309556074462669509905940861307126138917276182151869323573050450674916204019195087987863928533883538170832438749587498843273004064191707490905435330521500706566928932575290320323822154677868418212306052418118296937450681510274701011413933437116858874647177977570936869692342138874586621069429030306369781711100120786091493413764980579485593535474168038810645050893306697338563862249026194154259986383001567220679034912516272197593493997130708359626556494656416149190432453303000692726807246451608977792809107524878891159843394513863475538746072503434842211232306827624340493176613872795084562878100549722965961259393191512179595466027030704522390237775376019563936992121381756590328094972257415019979253069320135755928901935339436657426893588027665747239986931949830154328529848308695259349879657261826798006502888967225129383992712369577983870588052748867346196568024953809562047989801417336891436697295845531887531598800105687347441101686497205809992568225434222895359419811881422140839731414345266545192872688034395689329398152437597737174782730170104856859563254346118391407249949206285045175631432585563525667113128561253576624789236683593594679546198665976751697761143863563787141924192441752197715313629675086745632504656191940205919966069407280191810936755327675426706441476943256986855792994344108733172376243468888620043016776052140541554995577803428266794204480535413378939820635034513926470685410784680574607485207736711810116613409138275123474289704990658465533331425457985388022057128414792764436235719612558376241086628052085733764022672331682897806442490109585118088054188300573784200445136864972270680268906520451803888832983468815841475748090614896330081332175251777881404815852804982699211869837209038939566971656660196559385404486437457470874889162073553488036592718165689543012623803131098876355291801354835251308657629001459393864420739323338079167228821552497387592553279985763767834786151099527334217382348095987336017117294703816769835777223119927431860739432722319227930983445641910131967960716850557002553933203380842231366920588743896777561677150321884676678984633785433733642970321108458944394975726192146325811021292788203185675907808573255198163255929216393892147654655647344676530529465714465453682651044818203514773821322974227037156227203968907695598418637600865795102743812295053133849849820791488781515664606498992514608416761849069495373252631277084387641709349009871762107433460766197363357482975985790135308899372131679739759653738529445974421908202705902695160428687313723873599915186217380970868430252449512535591423580186520609109075741309137151367343229380393429292812056359959972448608446760901364675617044538817132765141518631550751362163726701804770565500664043707042790445936915533932831963172952592190726020418012375323667265426261615944227751063520430256772513658832193287530444498126946208723879170797542074565456498989961834051459247413851368423332209809304594148525187916864271889657900811394154029010144340618389195305903690632892904112302877459034140174155438929381616170662890770267127760210935313489247837133828176943278831081126774139752597333607755155105978537441211503223701758614737961461980553879727909902813957663861679962034775839601088802088493343280941634616001702619539377470545991612960701075782287185056406904685819996261701294600573211808531148657959722165874190457201628463397371430329161336876164849045030251254634944359029797556139146154021954907854875159157242142330839257473625021836311259112587057198715487964476987054538707385886473332776936803308556434059931655645313724379162371404865603494845524420540752834080748034318553285915245231891979193060860967366763007461935818716363994638160755830378662040548212939984657274406812170809967819938881759113169266529724945145164734406105529800146603808727468768571219811746431824600788348952172591938274947360946607506040316897392311931534257777561469227222089824423376705237828241730379679659220439647712719961676038877883109272807401482239615174500576681481645881981556594015486655486047727012489973565687398499869457887630668655607691232190268907436774398182310459678375281742407762590646854899139601989962768744807611564962968059576797657836641239082685652977763732444211168592085128267270736735657264993703787165822370452921784682177984484563079987146815173001992035857343218144632872036113112537813545351226859976017043200063269446009610316903305030057440906023635155328436664970545799553782168283766197634513897292790588937740666469275858330427629565206627977384507114672755019979526067446880813140823033691481414442228698388704039511158202727177987764411158122272766038746134148489864690286716063824199193849189145061084233576609786462030274603573982885269025375310438947471509991498434974798439760657797125884709027050094825313494316402995137374424026630420687713945201019336045326361665735099625593184213243024844659764329568247456571049565353019894871356911463505803438449045724155671088677279492365929991403931602780184750412925734543091115593661555079812247389635401155713091654718034669686087396041944432880781686298903985434863284595026789717704876765787322159759651616616022022532050209771636800870537311857106711265988401368367330865558703856431340590124092321561532961619113886679878472500436922239206642266604664273180995772916460495551138053453233648151496494503147596938807250816984069927029949491935454011307239070431444447254338992800201975616923433028750682482087291560493347632176241405809477779744909537499386806905768736575633413209763004639086684474403889233819697796360269383459541925648929147183933987312112312006052029735590322752535929148245914345136530964310110721253490224539706345901164505586035586520409699396997000977241120210766414134237867258431874131892198749738759741767208922865515778283505832059460059630469950008076501719081563866308378164111035019964374485020075785082114364050838866734753845202138748808904616731177173316907041840440625391910571966587065435830145572853747116318365624938895906135094159796485566682140797278927686724192219134742432697705311367955836108550933833500071925279324755391903463329272818018980167224626554281856898006183047166111232284969452771714079993450488740216032960991617853092960927039476009941684752540919037434822448248292620647353130781416717774841578236554820650435652754919019229478206747352491902005102428111665050835620674879684962604058610713887275364940751729322163400299729276280032724612207276304964975199443396432489016771349711415123483593748473001926641967975407499488428093985105807365437359979222855582251588343811457846078214627150746256958340510267328933885106083546794205970754075347283925630224220335340792366553334381045201645789195244390760514624240960926996717147449789088162536947861868104032715662785293471489458230895756983678824394908043082099619583205576428389619814782893976027586786629725769732687426127826380972212434576415175218783948362930282802953765663402035985018323496989817097956290942928994751412495107096676804535161022425718663088756116926499994072198402012594090681868739716356847656514981276036218650210294295829992048097052499506090488169422044594832523616333579589280007946031725752267401723662074758779980146049822936841494355452516381289034749811221055587681510384738070268455006894883523919676650675788695252730381476844212827994442362722912718866383873506093760561170687228537981496406816054066073852631423069880881396171468312183114466678270616798512909648330820667816667248901234334913629295804005943119056078371168386708422932825761929083983589539383428650411303187285282645981528803374309926611968645885728753001443627468903722600233542923411516626342567915526810028170110207793442727896323736961580986768392268931492101521828925250855812828945272280728877406019684800116035343163987736556457814088655017194907658398828233651544164140765457925310633336661793065894725600791702139373132697931203840199211506041232194870470767247824113848926227993635107842063984400908222095192648998841402385705789000800948734848581003297743256323794270905537214106463694585898139264116376827856500742199436705036147296819605362676256797000510988759177629840680383265942261076628066951213262288906278176789767819998997956073881169015189055414673015337849202668776212992387546811280110410253709943847091424454790040366004553861528430144554300733155789092471598657187510483214259988470931318816941289435902720317285907173283924350782008824381302723961681377876342836107160793930320492274258597021920290458584471953131307934987890069025430468808835303483043220460738702135151286911014091976023523490470037225394396042939881065391587902539817110195547204293422201885842598307039972729748889814622931955602804360993181276226045505415425687671071834682868868440624278848514355067933245079644970738302097401357991157127302790352167086610477468517388151583356370742409084390908800853748520426219493293853701738526223238265836982433236359249351812776196168137402281677873985861467130132745804965450323411791891947058083252712503189327982004638971413995868683734902544214370958018651841142809007774166867680417850714340872870181798498603562638622465256570252105477705591373235248707532968532962858279242209800725925777175832328897334314965323868809103332905602980286168755495474917668071156706085378571525647732034120991173104991931222016057322475005638028870357671443760799123821872149701732589640565026122425242705431516931140233503157151224124217061121251799131181695547219446129586516067494255107023226519017305812464082154219882421731577652591454784570854307863815123580880443651233558308494975834605784357583456314283596615183467220391935578182883620240548254602052638916168962980063773652150556073850386362847501379822485731451680938243774302657240760057988593879004852268755485772652351562132775647946078304287602106157436194257236788362663778973956380389050389430458154751745724808609106621295784490436642553332425983376235407624263954994144991167169763060371397901114827032902186367128536075991459676088591084239766984249671150675346454570672164541566841470068201901570817863716714112144961756926390299627584217347286082656082008543423140549897236467430932596936363221499552238257383333457838632989490465927092756681508725586120006946904669994226938095784824201194774235695941670224900444674374584593993300027446678090305135440367402239590917992143696697646477582106647925478520757699423655266081580682304181259551023776897645439630604286420840240892631769988500552594003992961566909173618182821087520705720761380894103567157049466356266218885689612738480747832547508664048866279394772483739233658101957376001898803379580830093788631147922844766997112951789512717551865334800124485577371149056506695291769419173814820585243693918071969598720938893199040748959819698209805702179106880274611260329470039842103679705306741322102769254171941408854021250631755014702841494353814327575508766702924472753597604651297684952357686251793018014999189560744906621912816688243342660264710418192265956331021417473117500782330735961970462482808995034539061547542319942415607245255409133558718021078227632054313601074108406809811891495032293603536653172679726981426386772309774259610934585358443016012668015102607817657365269877223669912859728579390530779104452393743299485571921977889981036266081913191789342889256085734211866992549050143203612013586494825703306824395260236592168431834867041053032816873912377886975853730229647769872220404656662970835287376168527586721842473830427723947664004795723514676518008836581030256008544493710070320071222305815087231593539403594443425161472999689787705734936041121720645220758337529528714670401878543449158581812488530058130767253006210372881988260991065439072727970286590553377259901388281305939794143666913859950650353492372231155036376193011743851249160791559411951769437368923436341313703863256735009412503991222562026864384085350190559965930007052863206541523049194561626106813548675393880441790951395032837905502910752034917679811469181772912142190373863833500703664937556834879942397991992607057947344685423256987523740884156927800055950257875676070085670402694909636161581204900980672120952500917179654551832287755153995326815094405873870241822393223705258745063242895239924116458457205503085370730329874283520959548505906239923163791838492075800338343557663513689474077782798996396986215407683400132199311183785173222884389016414303214034170416124497388144119906465939908978855457646146931938452425831850133010665984885609382544493194567882943337911637947005810640436554400585607929024916280168795480486546021944152779045341771140210128031611366697725167090685203735176709359424369658078233367222430258491619232663508040602769634004692334149778221304029785227120985106233830866504086135565411953314863942030258716695896958972188075235971590968497641444246404587066630771758694841507965645742661273098837516496791836398635113048250669009222043790607684470675860660373306759076410290053602079346204586496495186173494812815204627146152602758511064281710402326673061243112474131811058061512722450406396386134783766578014770414645012506034207375404645125509408544071365336719594494352716050800400003428896600189161634958659483808792099292443802779219329956834749199218926737596668612793944992079724155254871687091020229061551744746819204282047741645804755412345399077955521415123452057100522410681110858968458052322325238588757626784000473657041149900179722147194773656760376038989732919460731562180939475199408783504519527254746146968948785102380565164803444628596176990407287129839703860416560608770111750522265744661316447111337905579332880195988464162919421950440055804141122955422055563750677313358452835064166871478571790002273993984569442235934391942969255711359974399956516502666658321785340284515188516204701454595914441471693716879354212682840487220406097898154553415116974824788159703015919541351368350782146960047360486395522115081708213052619330926451974824637278265500549666258270366879388405947953160750732042321831160346504079561307675564850668806310550255569789701280399449587824968640834294510665428115494278188849287774924682967859473832360698905637984509762417475248371433334888889116146738862678355267264223776927858503325318498063759009066359946506554657021888371831937275525124258319355210340164734228330586930739644124659436563820568200204495499271304706947641408989181872244644056195086968345585782689459427051126650245294264195852248315251313584383718156706856724829355107741340937280270508595353512078854631140953207453380223472354576393731000050749386649131946627234393982910247230866063405858551119918533355045101045183980543929131797131548814460929169995432301242781555247995487412520271114972706473088984194582015275686791933379203913034293037667037959043946178199473734595543345044200299921247019069202339746347815352753945054788599240052688683261587922436261870163646881730240524705755784889162687789262019585869636334598620514237212598767777397701342671084117788030448240618574580254760934681937803139620176731492848921923396583172962917782296559724111554752564107838127956146319376090188027882283556687605277108808407440385568692802035542215560679984551069170232250339663945597973546128873931107444047160622095881328378615145490843351008200911550159876830060385400308719291285394238490108763167331336084653463777891590612330838429823325260772929990001127803467241919576422485797489956777916318606814907643610805240281838145068453783357229749331414772381928428025888548120150300658218194630676912064079380691538190946873747640637232245102011849623150726182679110924820223120610816387237098147947375878386486355195313473381962295588141998471318022222335398262975377496278400661461016413044798016509398780181604168392143755673490677050211553858460400769147605308577675433938188242782062412734649436454199346054547658779796728407568213417389200205825860880603021751856422564756417871872447134154581250349542849186976529494953357581160510416479031724955032559132315065726730564847080967383837368762682859003594300030456465111457607732285693942639561592289814273702091628760543301498887739063349598711053515305790064307680256589067553592263971845565698836723307171691639782576270582960710236119488518393689965791523627194249417001589648094631843804753968938389377697673309932303194206101959871026968836378936452521331371492235137936367150764163698080651128108907640226938016270487950141240886905303064301868264692802128542371931889360897082505986843836524486627583041024594677383189918643188847001653897676979084196797224816461076855202582773226493234431586133466669782241520165802409951755148744533091624269158775755207542855953075279047550199414710280994199224151202227178454583316929139209703476775435932930671959082488577391922150191015054753566348925565660069099419444740602225779589700661917022581051338048627550089219647204268305475947505267823717432331128190722137827280467522002652731078480636389349510496139853613135977201880989261760955445091054614512859690350669733465339420326820223533096311071292633661767384991894432073809647576595975697377099208779198869839998977342365037761673994913624742311552396656723354094364261844289353174689715896970373690624814087326927718522109905968603321503299433876355883331436854309564840744777239269785960751005679339009629384529720983861037129089665184016700618849058245630368540621223569999404352639197775357638394034842566382633528370376285721939904758032438477832880111514481470718049544904017229982675374110147385806391759813713319943223283966498629414906408240449781288187955828984253768553794085438625788250692434990296211084588245750986471146614342784119188923752313505828797992903011615816428265986374159245841675225628971939940781314905719337978110466200641428007123520865974652201315823145123441305763443888577989177778997430547405264609319103149953424554996889790662656328302737924150608666517813463081574500380857998180990754279460455697563603598907489402006404913798568651192342726040687020636395663056273538239933234619863705070300110575529459419461898000071763824951680795703830659060508206238391976130521006349005347554327767381473214951460639839064644297207781105370722471710146415507898200806674214410538159231554386672322251724967175917590973698768639788777318304675603735221353005870177659421288726091799689454191725992069352558161807533460763514542841533386222154420995105908784607656230842480399795485480042281161330291249248012471389023534228239581219065089622631044717970043601294537116930314255069070624462614412560644443893745225702338011515637864576273376481422495088092384229485564964675824498787576102892680810002230030958589011150405286424167806147068562476148169172313057669475414618246707972092896852463774469529277291795465058575135524702159668263550509492006171188946103827723221209690659462272868483795190567750646211605744159449129589698812076368563799623432814230678215909017697250508665274304279640477410337262976516120006105869547296191968749652504722031304963826152508713179750310963334429490891957204419340623881838119405183509437314502458177143388722156309202315631768363723801581419966878918517747952115243926959371586222669509469922797288755524052588449778666098314835204238702825473498671541113136329095226822785625412111900258377038798861743221290992193051485814892956073299946253423727033942197306183808630349832889293904476603765847610652985540614218925993137589094037523118882019722240815444976321653236286165547304721202100920021806194806920505632011100417725845201590959064395181263693347459599789150156868644094297744039411357414572408149451415297068665094204446944234372763609773755496390019972995510700501524891615462165855069098051506706536579513664319888473076324015129900762553986987809058612856409039825149589504930066004166535625849466037933706038374399795569045369184517030984253790097005131317897662029534263590053076732684691865644872688244636071084941322236137038992300815613168397015546159409605704501974009968435423463437513915034147979210136712844837648982986251242694433849577583873581875290245196478326231017009280101239165300246358456215456457154092752217537603008670735854217033790957145555461287854002482256639521873195715781993950266881930357967601180158394552341039830443820883598510085412910211184017100739990363090690466493131963240805725939191707723340387046167648233645562314787419653566496875467975719673773730835547381345153503845148084837823069860505982846080637855785683316729573516940537101352773118233611753197355297553809127637480367635140343841629810715252014598250084251776625484971434960881588841340070925924917898868925666962210657504886372545476077399779437742936083065039034506489720447159992390988705470427935760727476302594276614200619244925560121020254227213283715877139836267657853209233277685265767147774859207362895077492199931704451933515423327197778893744822898753597948393604244715163206121308676600290020145040202515364144652580279963146302827181420555327476454406227147871797357734451469012170714769574223351665250764217080961437874235063398153778606621848324231626054458835593600762114140105645090476527089431757473875484113353538515445933514512293503512374668922233138243442711905122785518373837750467419493853537021308843482007726649362650227110044391506857148925237284137302083242653491032428162120224856438755626804784194194364909678610059451931954000291941187838419066744303929449841746508670374136563491879290348174776011072881213838142716934759426144625586246959305783268404404127215504231619006281277409518208623955861119247495234807510651645533907762501554564224482851251795328363720523175060488534307745941539405045521079252110527552958941077453898099463425110748224744591073255149146341310704438348368641833052890708028839579513690915552861265081482219586413704715933435134177606394671238702043422201947445264945549921557892500740691567422035428753734781791565527288209773399361427484365770122957303950549917634612953389563786457934309563127040639719370586937404852411957735773719058721814378179878278252962524834402607435205433934018625083680810973958416139518063303491717716208687061538930633299819009903972375982155852217196281052062204382178182253050602792158332695670912503454277113499784712677646802111763743277434058039243954759459816459562838601910462485054115391797083333066426756260042105065248868209522975390581244460641693672267314381944907566630176197520689310793421866698464078224804542987173218284901527187886426084571236118336767210981186281374601680472361131944072617215003927334879605200599094190020349084230789408970680621066410579533493131822885918695738140037789068719843820495575224182028625253059426448191653962142541697752251260093583218940452099301122783627501706486906421039556397860320952341487316812079921107735960383113016286467886741071500032472814390569474045462039842848567790677094907609981420607449817145322221506515407901608210485851813008421419158144709234977097519489002102248143476556875171348883147535506669521120070686692017658084020933790168025763760847889263811874746355735868534597088165771011687764189955588968932353642672258875151803413514443833330273017078946010668858353867916254952782739981912675412329109773047707146761692581026600375364811650660555669821021962765173164831996803792359507338963094888345313061667338471078660677046908939342845052382250473792939578408789119555703954075598042372114176464977812310412623138981002271359308655410347150629990966351856733781503292272693803992006724609428400224452260645467934363060670644289060637852061798355162683290051011651556838054988063434940621954914240217477202249681489821854327299185132456469808663320522851094756669828195846216548626606483539859934159934342248429326602167792232146771960497041683215710986065371179821129244438327220170288726987955519009351236367958108244664597038955746209109073414769045871117888939198747971335098971913517746555375338148560535894431240784479059643874744126734095978361170494118555945686414419297297625981438928010286831798460375114847794514322649081233001575674259104126929266528976227255692210254366853785612734032161154698259103910995592643240543361182429362444927424691041513741175362991186991646037044218990016565920075735860914495864132953506180233872385802156283948503288903321006756209024442563835715300944872028920924795793341113649751590577177937171973860397847541681470230551324257357831956283692607949923015420931115792852011824579448140231494827625942767109887580368384869929457743093388813146039658019897594712001758802483053719322112431437125636735603192123646869989722074695902939281949828025348880305627144957197749548126913623753649648581129484468446423688057791969582848442866508565864480714834595357569321709312644095192087944945599431280173973575504751637478204592957701634448044468694015560074069151096738920218490363058763308164454829305975494642242210214960687343198576082589093003071989196867437471604603827370596828779735123344092321674392041040598329142916452216100591416694937297115128726511405279374346734049932496867506766863955240012388025403837855555557788475244126938594369878218009345224051390737767230886110788570255622224110165209572025228434290286526144414858521807265110256909251410202917231981635627769580613999296980436166503682943798183306793063697992878557870796925976054782861033399622707140474204102060385232814799687306849526349792654423474070031641334087742816134820055311546835264371688586687472265261922562113671878312136472343710537827766869187099544993324446313068994670121029450058869158638397391664443094795913369698931448475845779681937690935689749965992069141217631342208876510878860393675908182619603281067521265373143087569832991315285907370842809971696050531554216263849152322360626502745803009343061179571383471108865047186753757420023521693399408499454010733441315908113713211910946211979460470683531073032362485594567727107914324744650873994717215595996788092335072978337873699757141092463262778095800561904983428251901577984412281434448596953055211963868119658318451709593945442939724699908288061627481818807382333069587435740463474798731971401867922935451183326307947893189513734349248368888644834894601195320415532206609191154237676401019736566062216185892613410292668266650293298403878018833077853986991629643156341179890607025007416036608504688300285896765258693887730048772227207698738622242076143985420256090287368477798657137048187292740468690367258398964768269921036341190035106662435015108575372566206566544500246762574171514602139915973629457633017550844334109681961024550783279339984010398006969075173339101541196160047517316801240858719041699267205668572306050442121208177641406894450982278446874825489150956472925352354618931329763600992682146794965231344671412750934183971240530701262904524940530239966166403480511516044919017283755823639671910989301465863738621922432620949428362477047396168173481681095430433247114357541649046910372236166856345613555355434356887543108060873527463584618306231092891774905123748336656188583415682004140352964056508831197552738816501510637167463009533580247525872590860486768792382403203663466959246547561230633589382819407222088663195309133802799468117857080325015490912445522506074834547708965657535091273389689419896057291693825425147935271893312355641894867401995767468456850886989610337098018211097552421767480537363587765158917623005575303008487324652336156432588922334834935974962498162766165841760323307298104918747048989850308972136826964050903505826719296079837044543473826310133480672514115272574408622986676070174802263857172140943754131417261899074364402735200828130390313296914051623309755156933095680124758013554828589624372886974849514510050503166099004172268467358997042216695187207388050412694858574908393012144895612326159708330284726733319706151676722935221233030191916236052978145602310006963057163147513719215557289119335714516219207895680679796475632283289514365642532875255002385976293269053150793025723915337368305768171594786276064444862516632861353863190473394384121256738470722480136228820967200815014829073309077042182628636902743666596214072512127469483989213312587090695669829983578421912263078284115693019546830533825510702876598653689180261016916254041980708221474177149664061949169324670401680564776099099656584391303690500509310695970342033057585814912433940357857752156636544772043768080362372517077555079105446773296421755746299782758636328907642206196536458881107976090920604798860593646276148930333210847271105264385044741433656709501278784702239546494006458399031694572333014082368513532791640030410941738659970638194480905092270366815266030452915098269609610395913343890832491026294168447248012493325846984889195220020540769827441135654371944734129359697326173112057905613585298357689606587667521240313497409958486058199195590748485286869376200120532734753399706882419430462800023942808338418013734466335515875920383198973182026745292275492844863743467592709647821827959280587013035897727170697217549103214514639752187283972816230928838845546036180970896634015024475962051442455582202582378122771450121377762664155090650959336742563948421576123127723530993980788455433414843118781545598185554587992476958980123225819358840626367890508979691744966702040979724892633171296820773227266030945962468430537417404408226070770286981648321001374872153236683529674568701148710251297753947728818206558961950504398181566567483938877271600372994601056614678002920811802562695992525707812825863114736929216957615320064435259550740538533458351386164903863496909472098581509302646335216988917104323531189539526786575112677307431092224391591988189591878056184507154370401330700038957023093145786696393797358130959033995442235050476398250641104065107446333977142356254407139503460327744865225238192337820337755540312950331497491228375313398889446814903688104160735582780446652871200730764777177756641993264349940375315294282260496741681830300594067323422452255731747822250297250624704386186643560157126181332671008730843874073402897276674602404972142059432659432129480901840018546558636654234580579851708771801087923402789681550851100911680983645780690684243544456550269431057446144058034074085371308698025482324106421339698338641625805323060131781147690714900672050710305746809513093790636321962971672391853451961293434506333608561834486606835390954484772302961276803711318070272657983555766570510135793726132503238958126491164016064418039850999741374880349532610895209288763051885240197559577249494871711772092055315808409360113544372707515944133754667246582869913778607830493551722554797440171743977958949941084251208281024777435248073445581322921791003849159652355498280081324924848005970939259646651145244689047912925997579322627865450817863895593471850623986846777385712904805736524151448865885972219141080642181341375294572903810720276908648365913364655764385711301330222242855674143996067552419495741566630798623193516479537455125045348761868810979630746673952248302427804633912407655283571238748027432481686024224142814103830320806338327354372704747408953633837878445464572448505570902092273241588232332838661296138845346786983723434634826691584774631672187984283883474815982746099390541553038935187203170852913678550141751871545116420446235966452996581910175214956993838662503298737273803750544450025749165002459706098310295419770715733255253687745796722475694629992664780845749678714949963600890472234209611075029489662709455517921156264439416005938494883816837818342541943564788131509879004710764123545413503283536009256145634524869975685416089979846131155414133120301291111407205560132789677575294020171596258363840783506882840095910831028902771150709981619684294903267537852528236158713000509079668593824570810034310594519459694162492703492829086231689352229970130929801621293110917433649124914655101468662065398562538293498559565763919666898430115080763215671378030174559733067704690864832157737194418122154101514003597466677422584565813273837966962455501280192017431012187686168341557884429781176101594064346803754146710983328679905703566146338416550862864724036360290536277768313969694572125594632655483327426212441539467184148663745875156197993231433760734316382361508913591710799071617381005006092861430625118398772864202442103179493441369039195862559777093796652048483936569841548012805220817379377907348724916716865245016766999085608407430618954227759550671830814903618723826167638440394697312345505461354198664362822743853989531778051225209942289909015542977770674852221820616865972179922561292850582955270764135748562360304681967572136697294188725821859458661464259914701681188566475837280458214444926816271319942915736240928582335653233651418420380163327278421797282022124319636014345616461699174233511446597592304832149399301516638583071553178033077721896116042093928020883476296070665310844550321563102712211815164896269455154752124249828276151982788686981043947633898093399742586669332122860050302276001270343440814680137745405426671093515308513652345225380628546487440702966087335191527688812976541798280173445899291343353194777988403980249992881683933454962726455627554802694351255359221392475899078530249178052611024845962681750188040656290513279574571389123685163405967012119831200037609886202085549808056248625132915457010276807873199588582385067219315350963500017314457145573465207924617671905785678446456944290694533265984610848453091621461749530392952087544515912912670429092044686530509301778588190812941252809509338663832020544874699651282379542908130924618064630424619103841721236788131778134773198332950748419783426757879293197284235897796362677302148481424204112333589133223697767780960803130665119886724854906188105915055294889067010364389571546284566991559728482844794252629414195759453336949984921490090143933224462602961779727649362582061848076303543712992228336629706927878133214055090861983422166871549026070890772115537277547614222526917603889792565298808154406004367183728813848456498783788787327935512716493831158021294657781525655315749025336106256664410408279188164776431725403394782329059491813105739868451738123854180246952815200249782715167748437364897934036116531796945300547588391047547687503838672995399384480526290044694509832595557163467657034069586016982132724067161772872287173272197302614239463469049388629578358073715579987976341733685959791048192012040925516153460334810123662319695117810523251089462036591734413029006627110153006625245639019606807609679512016918877734809450599174158596912979868392513688584192471927305781930761024928548420059976859672861133110538393395337113140685477490334777949955966910879692435664645158528583163551104973016486407779389793392318082667374086144403411903898569112257229777203022829800571744780084258082521154003953947486574540693848658762657539379799441730289532065848377080479065772171379280859770545308571469523295204447958141948733479966776618727802446750723699058784209997786439898594549727497076267380508451949118999251502163996870121431696057977050392282485298543372325768813604581499582198602522740034441411582428452486496535578909686896954078394100364520129920799091456823540651629961187854846133578400607382597358005647248919206613657624827435465280815232562369661972154615759733253214704678145553836895117787779221385621806188792442722195429021159271613250704209394584237958885257035529323709874492051280989684520515237736369653806324787180713037771362734274265029047508161726905330714636652156820440953851343276287990762515833451430717861124823329669279379137149684026577780270038421332188636899815197921486472941813125052212735700826813918209863683046781861439176780508933333325866512835987922930524631927761244064043851981539265189452990727880108342555822417065582721242154216805181809495330654316395420394788964387592024128552998850183642605537146252749892501318649687563496969495880110152724601386234893477256791780301085556442418270598626398626637272916404184399921310404864687012311399603594870188501803643842448688215465880772419688859348332169552905039531147997337897860793961968612083883447572676203175900814843111997318111633966074462612665306986973658381957266938465437444575085394603782758669138530209878974087371296814514114138490051125561448667082419065825128189658257132889070625253055115857461135030989239407235547708528653904362302894070857537083708054659930566424882481505322242706435807315282540571793588208921091444140736993523096797103171342945656766080258997256019474771508009667196925882082909876431670647811659694794721899837705937946816774738552771099432902770780977151455809839071291023333741530917517985456708874074809546320212911800770088215624214428406809097030239790155811471731324237880920842311391019540735411359863824373206467418639839310713086016376217631373746859612166642104762140754997910882800434635289151434766068098597033266112258227188805890452295419885690289216231273176413860642970919147185589245427292545826575512809694427809593713676043314281019990057608508209611088342588746104389576910300816453930234646282171886362452691902729244123537341786047835885238360144845327385948430637614527093872965949523060871114687290978480046301170729706040487075553593063376025824416518489810222734628477913220801497770688509653702271464266898529734403850301182704231299127585526886883608919261350240758686319010490478109223641576288713689001365785180930486224987562236311000698586654772256740749069097185075904087740907325716181510809588844353885959987842772187056441639050955781906067229218520217346274621962844716230626130212521886175219046017931216542955390126714279473114274626407247126127205786621356630535588579555349089865585563556992663192843206385750718339284823914342236266991996899000703516415368877991012170082925903860741106776019991366460841509042398378758729547552199056059178270791751239921452187579867834781595523757856424665775139817449146192464505015338943507350124723767221285182349140620762722859066759954025298986137511024658110390794796312240562536993976624366918942481664743598321000959532686382797144803662541794421686611965101923750640885213079279437437279779659638265138890858927313403273984940524208557839377277266578249190950580642470209375811183695181617071967913782427723471379943765376026405462833733146611141861828815481871794657510622016749264271560274078692396731022264540840148858647808647961499332890760312801501023699298332183223130106709716000833309306961571728321553758756538400677926167326104159370437432595601635832007069548241237460296443643097030898772510539000907694188166411101750854309052264753947163895384780005527710510796095629750294585332779388273218407516957678438228612461274099376319834623907363590043051685235436995469921503207000963834489503791321949882185458833792606750498909795267842960205395883741512085596446122317861255748117732512735752382481261308004003140297468294582562852564526696678160272506795572637405590589001082817615873975120305187302752653254773956938414873128888255103307436977769017069028775966784551727837404938348586139894759877361852256427646266191739781141965256853597925749517036510260519990166706470114950558232557672772007328630350978072552118558141756798699849571882743428685470613311321103026008783763307321641865562977019685853259733371368045795249408958237643563707760382125188751768271148155427199137528178912202098313513273247280441565934114545126245009081290683259624673743852370465869079689942414896324390652740249697197140889568987359176509635605085181635993553419732338990188374311942539787620299245226659498917345152684594209199928168209076998679342846363454345697070172432539352847667763094635890246605464405100383767749499028270061002621275327876859291579223057572320959969864806172991368759875116470722583343421886283690822020441712625163275377445247055472574562286409377997791922458608795747342595222294616742781869605762938864279865700858043370094790315553506993460050753122754106001528665645694436063787091534901308754032874807289157590795828443196621295835203361273056443025584540400247881356784322645055799769987089828963793368983621226485406914139315487578256612268329901940609929173446114965625358918863176879884077369528876511242397340485130255190727023635742280151377332693137120694475674581997416556364031877606730011747573523023730356732777068741034583663957543958245180593323986086815932929817038335066671639969452594411542081314014540888382960237456255477680040416308242846412249740511776737282278974246175708984659327980762966434641456081374350856503035202536375255556698994279528592704320630048774375307459337115263551132723500029460411312539924472026904486359165001817865449152279226468594783277293087934384403404937385063755145378640984715864064689460175700983563617409243631318091745841057524991487415465240204702839455068954765826466722268679135832053502035737765541997642546992769771111939392717064960153054410922537923284394508742235627203591467861515253197147025342619349831171925829429931627334644139349256856819462391152051462199524295263305205003759869124268511616092122596537809556423184776353663594691256795200016640551938390642514066092338323890866202362442176637895986894081660383683715670457845545251550344583353785325300272162658767230859901462805277476489938335630536700844580913072081403183241179679122886368725360132191402947505924627857432010033505875167058640678528630116506575065663768178599415096035637591522353926623108185383308861449594537196125139337062807307043582883411970499411802080641355188755957348853530265313069322447621794241872228578252987004486488428777845499808887301867949319959712909216053211054225771329500564965790162782953326645712578414608386119026667990219820363325050977477410911142890962576881313282450401402923454198551714285240592094319733915526196338525821237252656305255085188145061316951846602553569969063947465729809504757115647426142649702936600748788857423959518121215025056358551965884098665667186473071710610507751820601093045810265551732416994422920035254466956547249127511048059150775352665509570359833187148242598088252139575385768352612253395284754946388538650893508985803778684905288803055775493106571458446778670005957373234962875879415911422770976944566205798093430050993904836402867931992611017206458892246625876482459898213000780955115611231269263090773961459520235205809604496404770484780550363387069968900517374844374013357949771075121489970990617408305012104448151906082432639176746692696061077513844522914645373541383114811999074188839608479941857708161983516249170773756857602370137021928419239025059100847986470358022541780645405463620065168606756564232749088011050098369542263352396200275480689227929794659078001062235471342630547605620669235228394409697629119631117592254630686360312937950948895854028264615824188918262122865303832343444336645772955424552788685108947493188602878475769980838505846420455750171470124027941356597102451165224643840561619568376243693952234005795079896721501637073136206749626389587283395350362195856607568816809670234159763503097031809893612316776589515968778459867869129361565737212822093903010480950684567690888708514380899827985106891091681763392163147939056244151059838022317886968200946980998898729050330382492875935454955420685306078992804886279558960120164705399685208150411853680740536125266018843134706630184707809025444389441027878059675539618719260190359448802143556833216946510342145035144596266260871429189695997671201448358355620033369672447613264332358973088830304405183923128196972213653486207986100669239476862250271818777993391059961831478561581845443709134976516710356119374421595924901031497851229371509537376460720594289434839523053900784968150638227777648831495254213425526972674369032435867768983697299005569738100141795342042549878437492408549278404556680694685015344986438213278253967735155239947427013678915830515977333469781621757280539530244020187138656408290681628361130281647173096572273909271174970076055284765039626963837330408189995172400184084601293682094832278944791542290999858398565601935976785560748722074299600344322532306962613162389061530337012696626046230367532987348342818197680135730520002843605797051312295062967214708129090052698614289661371078898350287223679988941230055486170434841906109714258417427035316686851553500284290763427767390637687039497234627360926934542448910838659783146515161201438581253520242242421023983658064238900226817160146071761907804253348329131906491297549034210552531870041423231370202475147390191800568678319046352941821912332094207287186064208047276877383659110049570683281860694234512325540646781763804881711039164240166583398110273160246655208863830741365226516764845105303205601694575231916327964211191372316574713990277556405462931059211531226441508237452306405552077813034854653880757100582004741302079883732674984028955876393502408501943926822749876737375082807272731645069506198475410916971008084087546224435892886732565793489666071646850583221744401484002514692616478769574937459233307844560821591831844929799495494128368991797719996138933956480349676744041387207948479570590309002782981777684490478586607043240306599868031248260407274106565719275863598633905167847877297418235052692068749659452858080407374620968804063865137109147284018598395244540827254618324619093701326379115099325515827482358536327986617976064815475548627264549376872487806316650570089885470680681809843609282215428124745946942854289507994003009786469584383258789780106651299280718858229058462695757284426721916885729297521103017349476263406895822582538087812820655068722208727444288418111971346274259229176745629094777395304173490992053676564886428783090146077762059568164492541169556275984269879092565698218037591402974431622891404762619684630213189279476534453665318007899401307642755549925317095225569311370176755263925277895577416702192302337310418814668419744377425323376884248742170634697446757426852229734143900916623112228523900590031905902664443903656705251460102430953245550852354651714012947352354588172438027165212026396380438695378349837995877560314719274792119745442684741800320594708249782720417041153294803938062395497310926726949506365887493423811228211295598402494863779317207639034203113744402049376188861585627028459219706264592153300241881686931440070071567058076172447984271909347138006442894075887249052441006102010324022147808640430270163649490255976050117132548090305836131367749735719061803461175912547343011806013378742263215635877668057296454165200856439263918684861360440135136664046179345796596231258626730785949872861818041958775459704267742729564081766670672348277451059803865820780528736147765925990204657943143419742316492140343375363184352902076231236601326891888178910430193455611194533723918958268180555365206500673471837995571660848983800019516903799673099145972500138994659156089639246967303526255645649666921199382398511766413467632773206643158855335065741678016209276701368075737294078302882073597984666941770726062759839263306053772010937326671253357085685276637244840516965189507703786327873055501226521421262909928200626048543524433654767448428384220652618752511530177277137124872272050930302019653755921965565147575767425318999340181747378280566264858446967152477807724447050441211494490079883332767302400206525200334781266001410868606648458710429493681556228823415075033958133618209942071012445809780875006635304750566935571457532660346061696197704280411865826027763897828303613091974186195967697834508579795737321019650546199739354993674736265869505299930176267157744459019718121781206735576160897662672806724975677423660483422041211475653747049855696992203781143358906005777604040858177565065855227726451519542177671015445251940522741209142818266474647156020295715861147432910048276907283094266869471045359931346038687562932281013310824393890263526245116082201065612609496599480747630064372317170570416147403920232498003992180083388680636070813802506161250121010705428584193597704291554789784861950666376502636337510435910776694779976017102175916114089849101870277936521846639170287838538741536512600272401847915249245690911653012383538897854938300987683954023852829556240251659014673986623324643739427076594407899223524190832870654900006473189740814021069018049353973624495963933830548642681716501208734110685066094847925499821423431610321730864756706759563578641387014828252528048808773954244381062954955642915870640371710808403634059170974063277148767771042517294478219530631062857570476839952944453749772659756538291654998266712593149442487072219427024225110314729649240471071132210336607357551922081520935287825514964221419291838901617943759992852915986923349357026200278442089575887558691248811437077812116030573268818758619798862356935704954379411443558553408796424750977206671006721487082338484195189804468352443239117978677499062700735874004869308527576872047314767967019350403642150376286037806110165694473721382701776523421431911210493051406673771543017299130143357763515525123865017444858182898927082455945501282701582569902994754593820000248244915464324636536516451075756509238271231494585685883587629849596033315772104186740758742685556386260699220767831060444217877781804200488208573018495221599149353724819443453647153795332717164014705927748885140358349197427225598209921200762355120008873325212158049895921719535181326852171079674123203107485840035745488735383336750711100276149650408066396148457529441981514014767330477093157847055180738673947930815535954584382332710603494451366416585479396606232317279394554605444856126103024437966592669093058340141658195395456212385106206462351820523466557440780145549182003354930078888688625135365458005141112378785680623682500709904083636857908312474573867965644316899761306644641878235331242542195608524897671412323474097338805410831626913454245056557399172738909630610090010480851253567499080515337186661027612159269172351237397872380302451713522396518076226447095967713548519983160167006320661702552713584124875113678935064076697785863271348165400163658525393313979044780687158337115424671963198372945603425940236492767194692327666728817965651244581975959991988472740329592035841208754270369133362033749698782986435825902249760810743744630564730119937569937025175350131347991393288253717191562650615381020375747904888048052621628297083212859200502993312853710380777511634454611075128656877431022063672824942166323009764041349219286217818568278773299680537868208342947163039421443091112691332559965968495973528705019018823647073503527039824420534477354622299443893465244377928883979123274193673017819414063434021069930645523984447752008956073815210524053735927022236375457264614520892462199953640964644599701115476707126743384714959523191180970718118274039607414839339594430617085987036083913291578205692876214262340881295559451402199575125545643433321494694096192912691364837923860622710283790269931945014326374817654734520189466016336867316907645211884449173369061942094688595287009214811919225678936640634666931001389246587478990661643438292563068853635191396005097049979651407653519540006197554109121353709963965951421028067228338581433279059050305328115511791254089113785967299314769262961022713682686974654952934044666258267770116886249635071053126346848018483773232011856644047548748569776083560848290209120509347012111008201868475454333068941617834547429076539346245684421825385625002582896748399803829503580116245621134601512138304159108816800475243266502617968213997108680676140632590047140743372179910385872051646903141025837523661379912726818633961716538596416360689927614005980484405644419467115748946906300944493543587667866333708499396940513623978130873539588042269826429570824984890109112837862648522262680007016988243883065594226616113620855810468575291187782002211830957090997030447469259522228120723086936584948380244473889092715173620026435101386561331140046153405257600863843445037533826587457360886849034000624591932669206314539176367144307396620080849785292152983009181126764423868217630124771951344132234914794927423592528882628286967087610298540449566448439246323921818554361313023456096840289734505568459095997943173188585789351160877257707857423413447653871395791842130280159812416566826271237557093600343008675289189186409733759244272202476223984794242734917779134329630280580580034339256400815930766600972102475584759717545226595675103038134567633549670387078526263697374346818708384513988079973384118452141128599272847461724039641074024608193253279936570668624258912461716412173574094061452410901769873279689366499755080571602961103147481924746335578381100371331228352940090659607299394798250351811716626505878489280983938702014326653664082306579256621783974383179273148946004772439266500566174066408093593400671329951002684749876295480502340234278529218888013235365536543473208762278207965616105954937870917014827345214500264541513865092583080956451382375791137920015163277103796931281042443950252614091463868464955633518894244458199272259463574248500336174586751798402481770324241783568936256773883514465268927578865164423772929503438673823493706017187146050276562482520301417890354006620040832891195784736661691840777041914815730456238376958887303802216025271702961534493684916258454693200449300067901252354512069008286072060368374349417221255193094158342923997744409576358209986204239974381812981929770465739163878983169749802839679933612081888412619420082112260991867253647780591586625464696475604129830589949380101850314319101005081267603959276020942631914381255178770355605968416900422642875467636250197156791492696765409714442332995052805813048412551160864096484054590244977994468126295181949702046257410224390173265712033930480097998264261137367288756064016425030330075457985397018807283436086671865023628203527352481590049707508937802731996421946178002033668529300326534767815881497666625396078099301698322685104925001145712417857525052142897104666738621000627149481808796143877946291193648918780444137624329674247921651197762531161885144444787422673363157594370377664318169476105632717870917728812644321324682850725714790751984127558173881906171525648519757620039695439894348173488667837344151479634980283315116523867911991834785142908050514338652023925581613842636071616165860718806573256560074994107096680657245135196520890566012757554301094739914940522483777179494112534371341824201824451690841668053069985158351130090707793815529365063214928128309369524466052917276812648594576937079792175427515602545465279620929450390564201180366761035971411230584805962781379442812427158625590161266792354647328732262507492348156684070910889690978743465030847996161908029913623052499163275422936165163145270414227106065753944824390872526835741693443081178380011065362952508643658647205057570923564910123233637199874198821759761439675780065555429846704697098594160414754769880442355663231350017549447511483849523531772895924602672729709575443393221686385675268966836848574874934289843911690844177902024243446065624885712054711400030153381791623068737508176520622612393239650830842015503719256318934943161107375985488418466058575921110650071018565736205576109628227852013824411954516795061386096836675636228126830469461453298455058983691768984589726114569272794961274698734238076543247525165104429734652181225628163514685824692574416197987389309830467581541660726944761324326598031126338364459275308087338287390523774850176858860924346824737780549376240202633637383079404329762749091976058676798397703584420312816395928753964549870708385878099153031479913735584063629751447688364987462713707796690390052159677709115420098120645701908802888707058128234011435311795537408747613551954640841918132246336557369790956486531597060250779938095662921927613072335595340337031132805007289074201671125620768674339494372523329663292086786106182557663623466063077422915049394028487653386362797158935002123925979750665151020940914152079230626784455543992812031370434063436809696930738331549078129587743606686046207112972727163501860505709373127147191679384930104149253457842596831895180332276342291195168620072807909987578723485681501455373088515660141637336951093186075272656570819316931352522460995114571042142252260819025812629259938651394255805112438969951469383459946068789363397009590855928019127507819031257945393550533100374606888863953807069123403467101791327188953326696391056225571034110546667858413640013296434850630087137547116272284979089821245180376898366080689459857699554501783259625424097151261113545520813084791639946072038635881585215031355165543902312348407484850704331017074136006992455282567915496547274512963135158544238414409810708361788005169248934503241232870159706944755695868551094120180980194434929007953332163889470816518373520707206469203304505161414630970951320163477766581657497141787700503961677088987946905647930244354065663821293922370315651640134542555398935893426750433825364156820036621152471452275156929068986789057634269278771073044821211367071772066667408349818114227538020099908198077051171779054450613587401910163718093542562709529657041565367082489101163928095647339452832401670333450180929919131314885303822545513988169560699913436188244579882720720562660338555120755941189117333633887857809628113201730076483257975111257039426086883089366433180396859546309065160819856977871096967617252059246772078227792338016716278865425568199899020074960858604070440214497459600433776725897621328116109166012356856569531813083082759591898355184908484229580407592854921260671447309366987805973541664555089518067384578425921015417319774836047059188761534816029346186879841003667731842201075656673477726665546477574787063086944165762595763234586420037981441803195484241086817922692144976348381426522436774065568059456414208835937443266528217233248195512252992636129069586692676796012370179200402629665228945485796880910934477766935272524263133514835259396523514051031466875642351851799136635901968408906781588234611932779386237517088562868410505297666870029446005545557719964773865613288838925874173886961311154735966403916862444473324123496584036266564601033455337922319279151216298676380359006267610573440358230781510197772908690298564605220526851402553112205303461383441251784603668919705253422511703590644977413514641632004876988539401438775693879610532766901088472050113976503080366285107190454260365856343476886913533723651812422864670006408478941951365004265019969441546802975287030658353999746144728882040385165983145820355696469372624177168148057408202590017973904179579182635423943389041774450074395913552994880201720749462264196055518233688857814137100826406936840585330882817445187290074388220210512791864125149387752075719213551645704047639022569275677745411484226474543916483621979457681263216602126777848298560604268692020723299083816284501393790224878313080249638661643027621517218206133872024706695706918175025540762819413975314178313656196679184816665416095429791946554271561090941623489877452351009980426114493752410841244071702177355376833324033531284095942331899720190040540892828703371273887813240232745995664721142786184771606256032638600498011374033777951845597685738188201346272956542488607047987930722604235515566294310832796649894414805425062918232942297954727253000496819393925876619868205509070503687076989113653322705772703620885847973676568389383830163108974233937470097062157172419427083786286882010496409506130461712891163631594097956502138939047696506878088866907784325493866512459126775428404342241140353239028755010766307453968187703380102469044485951293608990770744050002252531275527897572596343101895716683145185091594680354202611469833629851643780266539944855566609374092660511106741549783540776923382608777569263211201980942028997819123202873359709918197221634117296532955328968134784197620573138123305174309220286696371747383695860427140244462021702297439493579463583019387232304699733116615008077356463570820150361042501832732521142601757494582676966512097221287979693373420624895851511063092117605417186021094478536470264793203470943487935715620317139530039337465192530654503016458129416156173085370402278171042638502150973394123137971080427271173323557322795549520179342224569398337462277998355317266572924402835015338149997689661803323225025795215276328912455276902172290591726213879885875037470276872831168461371019406158316922073554351177821648711735152100101319709580427548835182088151281254586935452163548919398465553714464761962091767308724727492911450658503622222345339070191420154294256757374139807469422432320301640153806692161706641629317027027388168166965266183087624652262832924920808820980743089945508788189201968633136683474514476782179504950916768689037269830078459921014914327567803843414016074231692945748353796129951471721681396548330202514013063449805001660479199164547101207668996470280797468369449397555851103744080389436771896127479385913893145045848985103281697169301594969905671490695292159750671280321089513390953693713582998385415712633724058809233439862002976459686552106585301821512049487464319247103326704571087777665116134755590778876421582374853340045855844001275704478416430824167173163294011573397837312845288626602704906355698909029766287034356120357471773891399390687852309731625483612616797274554420165833358883938691488263917900688275563826645015745658018041093565505766571149587346238902746932381841466805937886363813555404505742808161339304690636567925889974593090254059602375266985607635494945297606614694064579420988488531156006002838213355206059563042370655535428598415747530596212057480197113249524915282991376909540014631616335210148874744284286937479098986160783487164861608478144004851521336959152828921226868964001822376039462627992919872170950481581430749328748545534204631062975503128264232405135484458148998077689795522457726040601694147464427698077810586592013465158658440081359098429732107800523659682680104611726717489705361420640456609463338270279885636226582289560929734885736729121297981986218684536400131597761083648895055935642452720889735149472318701013906419245557533822142464065549853035699086735295868572779424820416228976329114778528279426384729080029366486317775535536278740468436820246255699628528702654055399210142759601899321895222352054936651565020852811310985103897028197908974181321187356352794209977539311743415949146482213547690134875717377539270690541497056595411687636210527891256502124310965172302398367156037997767228984651231582081732201837262447122729408792732073737588350544807052455029670921881942258550724393480355323947200880171257681989666552601217461017141862280893870978807687614479515361707684388662257120698163638916597897695195433909725439850173554914832777840427357633714849852077459407749193105317726257728697907552728522853841601839490018332642434355044449798318039094728697826810624808424925323607673406559992695793959252317350353434066992529521586224962783742353499707414618228934317921870511522026493939639826084301135549128105561863273306293772563552371462789921430548834081798004601404050727619584844331851188614781189612811342610667042761740156822603511724927349078554736403448762264719130214613757608708658266293996248008363868050413355215029779952573272292414830806720358956076121456406155322393819883686321477241701727517427828337826957446369421760492911696981117646734592777855088353216237764983829886019166002522598644745134793845606989190342762082571821252451607130437789161949119753301456491791845626998339466573612447241130733102426688509351532959081096538927279243718362609357820839881905430505402465658953673246960481983422795069056299091652590852618024146880428908247544427962163124608100930865566045117053589446213217950100396989146579429287827009868161008450286173097717193578247700991991014495236284225157032793813833485317605269604428836904947118011999087420750576153210639591516783682142436561090503189177563463706714863106138190913171587676916040303903197538276410149483374155175164287044271306901323152587354444908838289981192092519547530958918741499332969049519548792638100618015825021318229206594365835957384512496428297718279330270414562243223954763320651035636317618498177801253735089386254164204313222944437159869266568052421770678975158148067839830624511369791839100424444150221444287777118904494656039476159562237136486975749958772589856940493122436754228075380812780874436599104099858893349289126699609061265416694054758173843126141648801416903397301711280074603268529875283431964567100246267454895871256434392956837396128296894857651746372576953905925468537331173438951890318180982668313497343983543457873956626851501445118635152136200639753519308525062515057895399713102393709990191753814080981880125767091555644705203987943404252962364582018824622346084597065358221222723874871293312842675459200061003214356088595037766289757133928014016150968831336982442491861863975161517121200394564328330136611147739160620764642520761656697507059028210265407381065782144926633366935411143259180705038778936380764916997096451329471303734238554675654914853816024374169365715773303592616747798449013488665023933498097321499131246286307522100665724384841453501161255249928837628526277676569140169587146525611786490538175938755833599660921608219464740100797323625838407757687419209584863303541004664630197579223132383408096881649838488135494058547080695729407951768430888400649356890868779044690300646397398591055891906935486041946501691107464806382149284534374193486878461817977898858717330659085392432515856768196562252215080690494450903810988832574815612093031021957295873617284182057815415057339570260846517130138408242958716374584431585672649163344026859782532925594408582493627141985274424541229937036442139956917187211583794673204534237955350757534755712082635886999395817187101008218444528991036924262458969559457070805171574709601940325471474499857874066520425007376084027031928069544644981898798905552004668505732524819802862134176651824845410559036065749870434058871473265878173789070508091688956327156958824016808531656025977626141339734361703053264044552561401811950676357806960892452432006697067851997066091303069041727838918506357497569833534433368787232090439573418680553660305236933572263170773617150386875698816830489679964355978511805070702824776308829160371587110872587345684940303653404320554347782148245934401758819383179967481334885933472642786585725558729917111370584781711230580360740104550811110550964218867133465547161659011374932622066693321293796796280530836087511283229093280546435446644735988955396163097734816711683522579536961856107787028585753127016162227635936262533491583565231390876610876991456938433826898914237947628919580864572402981334057107553919572653651274205643686494999405515042489579761487571943850507981802760318097928213962451937010977961290601804099782207584088277356764543707324395665949058042735279628502568869062804676327444508540019891278213337847768156628741345937261285857064537701036020401789086292931078238101960701815506928811939173487946753634671294864970809563410221843622136127997619234419359507930182320830302146642733681085351321571383253998996216529475675846541515974642424272066063726954714057404549610712521654634075785481699640560281146349455374846035527908143271371184247063822208037708139488624038068440672757929460276276732184769609494275580966872082738352813289076893525348436606187565742164642663751323479504503258899856979723170971528980104692398930879000669145989660119225333250354785098074558903068584528790093384568365600558621377022174868342166801957205849424705380325094874444849657778751613522662956310369456781919340651406693721838090917626834794501148776267553636897686998145096643615949067166756713203201764434849432245958163518106473565328173924750457975261008229967012703241243023366842956926250522603196990438925749272148617138781328380152665151107725003245834146980030133520672041269425449116157016328810333438004206304078444746723457522946903340690168919959346327969754718261008658448629404143623081615987739401732957539201237236440249000884879510691661593301688672291057562357745450062670640914957561129757047525343068398727684542584126388350316251272391401277821052887909424332232880815176660177964235187596937083376854146743015438826919729508180141737015566299987128381254543839634816176390455264421699038916900301149063875759507731861702357684206338914601667061161852259940415383585459823448311828967276392948775427295849690415861986395958851152805682994446533267535329615779159179959656772537387903139329879481953960500904793630024449242587456505089157600760846041685031423519680718892624050602898048750831032611800383672968245000430300459479946052650389802782448101558170868319431692529152000367560970096997245228781818528502218928170791126389057297141391744584107123461041391511798805031574315432520911028206843342751019058597884049214230986523040444052268930324452907612774319571477275344305850128674800694196265109149946501959020014753672924635486128163697918880386159397127146650800094368814617274714420634691840385737845185465167632542243982649260048073855980411486808669186954172141227415127526701335673310710912136807523358846670379073888045311573589253735223794476574073627206491053063278195759509322199590832134057450863516814847123187638543036400856155142470933439163887132538253684057512155340467395418529476112263792854672485828684834321017981745020352150194964742411054693049601378205426234580548665929290775845544791991972587703944086666107863620198297445347012831908840353740895976143554356253646641607131524625981816247422087594154756786290702896022250511250501004220441029651018943187273141282618730644537347863180759109880054710982486526283116404531371744956441550805878008787487964031308915277233576006648306873920564024621081908880176432056756447390597906106548747724285551714478483997734974735586231818087379270969264819872709410210767073237695460210142558192633047023406637587658249024398734948122587619373073038538476804071126820315532252562896790981831829599840666855517694305580781840203498142122617075733821583839549052398824578826991078952590685994495707190510445177915150926624407651293507066773292193747850905187540404342778184410072835192792779081673191035785829646713528248051768468520733972778515865470155262007299355713008871637134796552696455250075163296682456730320146570371936100543533486701017628241759018458517418996619538872553598424792064947368891359947720881001971073793526186491322466620697474545260509702804531374208776860151420200442735564568928517653207866937790308505684240664734294181722306688722873627559909748346362530498327007557223809179924841152455743877900399536807863852864724225942579537992259432652843135656012655132073819311940558520218186128035740817671718535511682555017576036094452973329304896220698676711564172360066539523705086969035382665441907389191329902981803750381246600112511507918447588864818604659937270470745302421403458022950262187865356333425663259900230416946657485882874652806392047552083128703341292619234220654906432222986728474436270426967051428339470120421685284626555281703896629536365403729179176564380279403655292540467386552698966197264987953473051295465577249787795296688159700283189394288439738564472224889091635097248581807207812244275562272744418711695929693913450898598818149378789771741264250917879388556311881044410226411014908984142207603585687739395423270570131400126770620722254275584655832271450076066355231038369186715552267551478422471742210186573915390960251919963932514290591871799250763255102603726787300063687441095445510515735282680833249144864212794660426585081487621249974065922460319435035120590075126723525005239966013407683639298929949652912844804007065500951160577800851726951445636989101604165109293255685965957617914921690509912939767386734666123759391466925739120143558527530664050010974287418996891793611294649969863788120863362918620206029760956547660398234584210577537498435747842617547797980422194503533589415630099033185528445832498869356501316033090342205303386048851745411255609966767566701126123644300890609392542130391285461221829076617284679675527360516550488785371907453437414578162314604789577837178339362286845341169581471889913937295305055831095783324521506131363233400381265762535363947868240568500926272487212745634327961043558608298154411122476334592875051000196224470671544078584576655280010097504041595929621762129608562688103580630858416175098282563268790125542440147906026449374462037088369129023220836976803094252230755859136847096279301364076424426926239052171292236065781731939337554760049425581346539326936459986680153066914895207730958135006512411473910849946584294557354484519681740419804062427106794124926400608306286073600978660891028824395904450559357153590391909202288108934276717600685319752563649086389427012652226159676572492587191420086700954257269002990876794699747747773274817329909981755476757908077688020418357372977982203003347659854010984253081150957505678720103844374486614188435114081206412519931458012176738621562567142502183089841384868965894943315211827530886016219795813993421686414937357756823281768949603971457307499462224672548218142301224203731776071895817189159196687915571110072512175968677567936078847920954344757022993781238076242805102738119668411177963579542896050500379167217525026720641465348881494322908943719011431198017916909690966572901670981285813310549616202308552953103174792695717324081912658299306400005853965347821606178714952516527008581954111725017567412619422723631908356934424347531108497520521939496871586873337488763836813355155228049653391748307777881842670862668256412900579158401956905479084619979373311258831140999387498535007359027838307888519658110305755763842008738833829551293418634721803220789493885298562131313325077421292332483581850719435705326801778898737687480198414306012071831253804397385821394482396164120617771165417685905146674238232017426548396783218073293589717487350329376511019159839385209451982948576720729387869492922032701529734845732898466063620058414298322324445053605074164021563766258902568660625548297067141970835770844765334193713574505571084709208696755964223662085534471246835721196257507402567398662550264146166737192945138091559758183563971964590129153040417420972697057588757061350158491086491004339528409687946883042168907173946844152685735923345469702700589899050128561485114104293412511478695704369545413615244692663910694128462826730151695436903083693268050934207122961495911067978368487590628525514885349718624662373029415918423844815657056651590023008015932925620053187263206566420932446263929117419924820466120077594812119363775128700649745370353350556110508520805663568570507555425837188410055223153587869216645434217951307120074091526419069934368016699585988113891423428616337134165694896285017191746554673461605249560861910133522092716562441475437022941672586509734805638201876686235294621385629045014345044090467225120291296977088841373959033098858499288827607452367440929717861365561453283434585460852707499898514991406525467756332460481584274930598568995717666778972183710158439609379062667221486137690004800226487804529242530387542248439669719003907595245925225421279703158802960396388682392868870162744232551988053580516118869540372788595255969641954296087704504887697024172779289361683744198802513764076181006941288766307077622316438130803480120043169238288548879577759469634207423247026818297196544709443239232897459931921832513782705225708854853674034841137167978151310434797466402972604055538286488240955608083283897279531763873385295753964980796520271490503096620643417089425805043019759002190509544053642007404275686782616704178217045145360127075973935745852326389081568907305360965296202437106467280210894727602516522384219365924252105104318223329465067688554711357760243198516930686165303878223846454846636531055491684565150122543970354815355417419206024677442195345028997538462863954088700547276578422940247965241280754838440461343643635300960360836758201407831280597489379789268097311099218585341327782408050894598214693768687751748058574706738764822468651193443790849129053770157611703532337098445126391629778588000689765372392020208928354254368375747150598491133562745139703130689319288767446948458796027970458638694228264491549092521494138518515440772335817198071318806405513411214064009575435120482420999574164333201190781451708404870044670013928318026388951734242737815714684902382966468465720184181351307528556254298832809226209857497597776154085450187850957179103532708656687755561496680523993034103012108439928067241212463441059399051024863299633154527931423831159872724599967096823565837633244533521205158754924959210809962768191699496554577733980866883294018440798879877499297243920791757888453586215069732520223226973105852208451474789385415155502517792965721576386166209439894336697586161448507959428012777729252084731672223997038109603264182199177320131241173480416921486835443628221324041902932618804306765149346927745257643258069748729200682599917202965584346799204873364469822542042387406574093839870178462220494213786204732272217604995415977562204611396040965304555259014671791341747362610138471039427371082334317925804752121246905609900468357095754304181655544762524084514729213950490677733853961756350910460915108512205364615486348290852669772549191475137044749721092277684112484357256702140210593204126084591021757607216674388403176711275784086429141461692518707982294739660469949557670503748695736684543251275581275030636970560443068255335588134895861312653946600933495918776750805464794160965374492281888661954929940664533953782350743109060749459979191843994779503798022250469683989345220154168266815978028711683976616641469866065242266889172478819706397053551870258324264390467346535756890797390632985705146854323274773118377332928605499748868016185313185811848867314775721122692188818125779322878407925981264719997906403731454383558961159280822176916001154435560315148615463488505049514523975063793808517993953931521362982935144138967054571357966755383772056779155215531697299549912101905702850156307156213708810289626836600518618376922282276421556127486956451346944973436901889934324556076336825382725862124551600511045689257332389713287557908464310120498011957886116784416987715373189649862754058561221110070831451178991798654510450231577068000826442599306413944665303074972469173828021331077630442416350031283306011505848980146367773351684975893215912991093948359185863460963429036067295760243508377348670758938529487607584954106008703309765700378730755370503614202899478714913009909982343461638060757485110583267388864906962597523457643235050652245197203846161606939058856856649529100720671933945823935683523746287632872731233264546620923950796081627072287940659802409300270534697475280358917284913360028254315939407764191940451293957740196418131064071696497812479551961178971831449547762063094714984413335111166508164016820439571899543010890175134526288852553775556853450703155733965990608080147130137189126257334396898296672169301731310224613843327039064170335135167673009052439842756460291900338934954445378589251162923538668257212975086155322610620721226219001648661405678337812566804392059987404569330029519023329751725589084894296176158140005055559128735802916571476725963409717015813672872875413315388399667606406554113414631835857308072479936591811786609223811716033443031214162781293802825132886778338079216660149197505919277151174610539509175534950074138142208425844348457615827111066261720843148720851279268584269131149741280772571912651414278460301402465645771624827136890795789382142484554574227884399747553564822173219884352792839484390579222807700314568723986308980558302245213485240360247405550202265274416584443323043955988228210396911793189726679014369024347866978837282683616004098386838269973747236349587315187885514189962922493388323307819243966803239500024970218787447539997615201183847333768829409351894680738447617422201370214412092635650804261481501923160438552047271615763662012298414555960699097843823439014306540648413813580155469302584143237661964391541767213043224692880328512955528774587385821118652829756883831326340398177629527027726855113844460807595563370285211300239152215400838592677870622072738494977855126328528230885741686010427573370724984017330744640283613699489575066137987707120296127944714618147847668785928050172226462849926666096710235680329402949543851382132873077232217839347980441497773562904740054600996618524933704850839201012615306467174998300151196343819822086726637715691429056863985181218207051167483370780470525509656070860510379887270586241666418625721239424674154861376065321902872679895792894517180113904728218397827892797868796454766483155415658088233637213576950200612706519545021248606031734221806477288698124682681810200679986560113298032754032763425190876251529181298069461057873176149092183794175126912409932571392463553000695629909334057262737733624899062839218041934847023271681772116906095856036145032136708220125404558386156235398492721548737234137036210651891096046568032816530429658903880696455070944581061487730111459332924604033803246901262178529702713265732414427507635167284396451139007237499411629641397533644196035136070671024610548200253554994524011183934709196256560276484386632362737688678461511337960594054792643312895151587746455634042900289454385168241404138366397510226187947185398251772553529137814104358812023315875903666409607602243726602289722880362225328051925140414723341067675265924772416575187856033835242105438389009718881156454370379353284435474860650766409380994812895945943161279731736617344031754161607010442614258167856296485922961398160571807089235521917808219716344039422775334585111633138214869362689801249218291714767416701601005756218446799295586344556695266077786774384809799399443268051407848639401441456794452859524863199190405131287857880284631887700321641307968014162171059262762382817670043743759611979358326813183694805890653404305800558088697640719586495359941910574150275519067459687424094069954255266690084226304072764655668495935038163130873124878597472173827031148733449912838140729347614293783443175053428537989536406716835746461287309973032621660233284589046868398554921565071814820101244362346204795658906033697409771567001591354742113609482372330319289461533718057894176034588578262588992064310426934240099851939274844072266414103312298956775106366678506727929231477983114579877885737392019416436685692065954221651960409118160957152782219828658266890902526495691043129862321039146592095109263735175907663260205417134224693110296018231418788368845063693490025178022579766701074061472878036897726202663252488043404943624347659018507771008654106429069621651412393832613753771268804761915673888647984147834983126978569020708422801200807569328545380466042792201666769194339594900364625222882091968024095373793824975695545065327820150019455497154469298115947108109811381874538444103142697802867217139184013845209426951499076358006161468955454093306904966947559882418545965680436771289935500272664357564810413143207378342268795160017708093395414553892228275958134152359433895838032714398955892289639796087520211176046946474515198540357970955239421798879326410420855653044957868995093601097611024287195829184927711748748420588182290822744347548630228768191295960102883830327494908360499904322159617482614741992106863923793187718881509653853171269110662370743411445343083195838841952069438103609291855252852168897988044515548422205807928328456011015970653917676501073688345404231515263046640793936722691205010503837427147164177626341738584013561862837112667422398969828849180433407661907848867763790541584704688846095120647007590062950036163842802781927036593433555289030385998073464651476075337497758641649121730037249203006498616685832405174659146350861278340133860979947374834155575250846378999798215311539970514162345817316557303494208235013150407754309493484329601955471192232372749471537684610231399124392205669385648279757460364349749846363266206192103456410216072127063167315828727701272362829863091768555189703291038624461805434320560987631138050505511341797976751870408538275219710589573588419979273074349832736856813885700803741626040199264054969224535098253484495747304968842460867610672767978072932361310730659122014173403799040068457094363249345088745714891695720676471648040019898827485546356980823721652116099290398849654513404079527319247646453946911706525278956069335832873186047340634662473232163484237091742254420156611898478467913696012961954309313555383955826495639357265167168843956860143751832697587098041297686915317664116484072011509345821950509580653315072609642392936010267203241654754264292935536716368709621086897365109911557086597953224958239448249190386770338744229988747822550161956082047943341454154645628998982917986179693882044375568796925550327875275944498806318815043970958554752532498530342036608389512349615991218754269581047760811708807544998897771460348838045178684296780958425331567167152942894926624036848606947474180458563161555162216779741298909488219465702403874381882085053860338261356743136934140684452681763914611464346368098576047472380643691190481241845164028414306012959449484362988377449097670633113790692316246357699720396845051366168437719267257838339283662306743872516436511821287147627228510462111987178060664159609137502652966228622301252196996973977527629717152665337868041420690119961652426188166555988489607578297461622579109960133871551234788453134495445454686848942231967929062271550164189286521397593953657357283364530878515088523842751603852027712206968162534262143268560352918765254295688007031053947771428505968385669989220325042714343929517087391076986536247818175196982145569249169252824098703633392089582860635806205379257105638550155499370264492043694469366388780429791096069341283128408402586321175513247875339068966802715661594281294768425651342053022710641872019457360907132710605827327381668352070956624607383415100828817009131775386423955466782266829599158241615328908140551466500362836166273391671082350745685781647994948623854837996200727968056825138137178268867906928936104396495951458707245700252901795942014068910143098782757750755336592381030758428267765230646957786504468434647226801641461460674023923206200002494475741597146305202380150494234765275062533238788527785937748617436332561831385307279095868291978174244467961578792017938652396592688209186717103782190769930965412996496749350148618021673831941608127903117676087059616968854348161876672243197267492058049966231606971576101367526621781522871599347879852458697480351232068433801717755573208263393418076674548457197670256567511511242996162771530269954605568724637426685897697685965656711636818537432665336665810830413613322883260715685455581539818166285452555849199737958660080319444134508411609908910820418431235186585628501097145843463174969736665850149407192815049488298741550223731415251854520564882357183681220344956891819530538807436630061127105220497515349769276934570155935958402726350587538266086604605436371031099858292772809156446012688301526627751125238926111971901268345111708432545663265448309493490974730742059054552432728789399986564776986936761789894562650838389392671818925458471922011195977821079831330919089422419088462424977709550537927051931420955890463124766627398718708077245858312184057464601191477743286018121942099572416424785663155533895314677838178180757444500087423577437297516197927638254988410650612033395454721965511675850569470592950373322265838347980830038087575182016744676198585717131487574081834121280723460901769007903904027904797985172765327975244923832762958587104937782997704538780818169636323144002776887993044491329156911421082349366263069501199584951298574878476819552159612068047299483542525863165637650276914678837355811544837816043207502359147881710818837428158157103544066684334880372279473064593951747773761936340481937913640525925028064758609055040712155921303561627276470642331768742031238277386983271205174679803745012527035949866207662949006040893116525769535325683683184544963292346420439361362854841703773397774205209816163077452852191447575727798519075371438200537791867525679539914744899854502256777735408904524218478741598221841881851597668096670326725437105240367669303300479677947666523753391170941601101526123491326413065450484383107619486551165901194103509075331575674825341527726268434914832596565031018686149766588720285160026218814401624293365285390068062832100762001097609726818828522084682227368273454503444680147448399886499219684545904336738955325353243276439076418751805373399571953012287370989304294536987469766688741724631215065706483401673953614257012019252802236941679611777956921303161707028439637419857508931608369020147749542435610016115734274935336531889024300188626358963732730417205978081597254692896383677180893508292417197051514046137932226286812457684093622679309023705027908268031213790667089289165067417762506914931503888382470337415058679890981954390331414056541044605209566435410260367699935256738219412053432876315204574464742237804247569696031863987741380347298424106879439190051764444670353808186311458020523440587225259795989840364685356610479595492678107924370726947645853759625083916890780089560847917066139004336313994958170661390003520761368711331586380796344579929579724437599657796877487684596939342604096869766871902135716331863744096294138503088319950338744052568099141325610007830803154614959745270652617563502835388499554370382354286757651826919618397498868039828612327517141033485491110888333316381808912442574065774122000054361825077341891117325502436156504003407652199548257225787262295447136575218443363768255160177312132730070155403566924991985469629750538533655764164433715381403987429911478251339915622518179396048571932192991025778399616143051269069412501233844436196275527429389312821862909468719426911463249017972182091630472698734846284290808582262869005688407831674605657790450233434921458623232969315792328288618026867677011313688032333077043418770664239525697944684161270297989706082298024841810795593960432767750074623195862654899442228552371260966674261118293710368543336801926394514250053054927593258314547135489925823782766396990197807157129492656133110655313624061546178295205718525453776251266598896238226596072059525504533174210911418156905381259753186769438914524386838784122716802655843714786084310551250683406531510791104814208532116110701297730550222770980237583129318222069576575328793264657685604739462499953793948013737982049199087009609664054901275060445680277315513960582790036168708101062934704906840798572014744522820966513585887306396641261881616296163909919681018605680170790048795393093958230470953265285942340412405290821168235655877727570803219991427208521791638990367420110918312786848860756926113069652394429651135395500083971170263912794432426479834453640029084049936238780075562285088969254880369685539495527659080526662975145239480125898187047208566142377868911225107870290939771800200665317537739053105374159130812898651711626653902543156153571422047351686116465870826367106029473893749685436497791230032758185807519674569111234080914827072037700615092219599519219008649126999810998840722911826437180443919296180129716156536912905806284793525662631581547444730835514584445343748871781629193592290883762799019297036979414526744271365900457091122153962525712081897072836061938414176647810026818009881469659297863033841738713570916033269171419312968016007930593900119754387907957873880338633620402991559816269870305273760293553775292513357122522227555327846267907507639451091954210342398243672146543500951256339910337007856933372000982252331887480417919911914734023215759563657269377325814322486822601087897219598200705548877161159555622436885517179375832540027718037940634908116754869235216447044886038578927010377850327963206299402871725366518058668697939155266595963752383811062088286579103782832505139483366007626926426256756254720697591229203039354833789087067835325229040130672666534801513761680546158151815129021035677697160056173959623513493381316054942539301377878543837008879163955449037829691911985284215622600741213852510506773517270785089603521415077524317965849388555259570373270743833668865687139318850053019735208942368172533004262250546692241830178296112244218454094456500479972073299475564328831264579184789613092560556771023031544893337354263724859416250199606764658468574240810305481915384097347543458501860509850937734721839167606081691914649008087901338370551334238830972604667970542182333918974677671265332321361851563857136956470183568154225546407305350968424045851819311199150208526920659536217592046401873677005594973608563336316983577182258930846674204369817253781170429110985320549548579889587746339880060274384799934722041756249286446443729603853959397854554475892642135861808968473294859129603543452959688773277192167128675610487822502834789700758877143985291551203105510194834504007291776779636420027443031573409359654769739607380623531986279672493947176291548147789493287480383960142964010934144913332258625689580706546290538198146348957366346595151223887211416855268488695083710980967419261106789668567946000343116978012108932671738529184412738689148757958869069867984187535926869818351640127469755011286706753340502152912055074642808442364957717744839428518431511421276792825929621879180812380714706877305235385043563168944640773261297263632539000025547757440143839963409759567039657861217204800142497894291548540945324652775675083233351985658792639234091433645578393808333577128521720432091801966316507140807320082013302429885633582951885946342299420440235798625259655811737692946346098999703070770590392065018345226602755218766124026561373024505074374402539186126347432356755807295647805487647537528438726793250835978300706215502632086439062831594378493623359971250971435051290867803059382765237197665395574115620196400892937969735532629985888383065531887550008533374288419695864127006501493695359768097576804054810193293427407289668028205118050356106421517184755402318753301865381898726142273570424689571793405429021607994115723155741183961751033390019959666802310647412436207957324214814153239961582512754161017195493871050718878461534355930689462724523509736618727279831826286380048830538187110662383517034382259107031202961143885272282196807458775693468206331530634420784197624636764024733533480489166447043635309962486641608019943316637056794905524408829018159703232626348009668974985596693501144973529559341005935220605100394222271480587213084950452625395313574515130558848483248819400107669224092456547221405260964946595677923223233238340279733055838218429855701246671949980341882993518896145937025179210015473479979503910033505520079541649747796001343343569255643066904069377546970401551183864467897139474859259989123586602905510635727729436978466020500028994970663743071142924489328715784131152830511290051951127260912225037578754487153084991692919043501067460016806255067211383644706787476102278419016511237752899934601848587349497586967383520432753469191109553757724801889245178466363658076379028929474596171222255567408743952238944065634515301913974257464307846870817704447900460291671962334056030019288154064597742940705207389200425223786184331500935099583947930172452153822123833719265560733540401303465508646337890876516636881894851863675957052834896054612486088901851366374366246070424337452956219722575626674521078266022092330317958168459000757236864619907157211577646495632748301217763141348745368410268817183243630405731133204245720855099998736902705727082562304250090164363245777543534923543409094977501562733862943641610261284759790227041594493588293396029669605539988073301785423601647344788404998028946748139371063373740217785233180895808364838386651814877878375165337261218938893930788429223318092151192384608191551559508015429562774762060588501768937767338874984639241623792263274550212130499781185921629281048300273116602397791705363394986689280499414316002570160733198072875406417054871161445761890323299254372204597801162587393789776866554655122511124141619918941821366797224984054288860132085331364927328424971236586015750418535898667049809702924605549609732874652820093653815494994377851148794051653970795558810884297787558113624189050541913511358869383671141217360254582726252521849596486511968176276623943207020935035613614783334106285267393932913199752463220867192277619957251958960566059147808875411524284622993078139832326033121434212925740484251663516854990686219029934339688714449408288828961588496349538778294203658817484621202076249836451434468115365767351757198155039116661857765106929951528337593437592392885665117864958055085450443043332819816160312089436317180093626152529163617076429187952417281181653126726619549068271133993988751505800326597211042316328633096223370847957284353495982949483797883695729480089319633148024526737739450130024000792672477520616677477834616896641602545114432137141956362255337684148949777995010847950159274380342909547135293408609412816073650088101255972438604121637406319587392953904501589807734265617306978069485238093144903496065974846298673827940523290597984878660440304210561743858299235143950105859103508650898512297748174202979114168448223100213237818585554001119392899375956932135527611895383149788156271578748987679407201213263013365748861168559783894064764303240919217395630457144505036645580640039296518846331180001176089530444868968148025189690278898154353848565971245135740411446086702912807041857005547749268034979777354361636757503846990320333985041790820188083074243478589416340661886799333250333562876124735628347750539802278926892377563635882681713090236013211560909257560396167519185893879851612605654594777758373705927695143057374585697531343741312033244888129064383752426798456240108897842339641925640379043312441278122199605980886022585087308021457308788623444050797201349331005812684126967965417818849563878601228306813822705778809724126062270765213492384557817685464553119589999589783479802122646602706963372825690139956488909472565376806175690718045962216909290017414881492723552837675336771019256961648195577858147507013588185655109485595480216800718435562647358197904888856795268823518742966171434354111981356960976990878584034832070953993629660014833537087477862027065432518474660394373716440846983121853654245626028799784680129049073828320208455753654319618419476210452087326250358333131831701603579833316290029684634621770127434335723917768417318348188167490617249529942633452885380260864201216142786116987071341159800951718888375302017983133223742691454140526377122780933113908639187363755350422485991951666938844747490046632299342853562002888301837102737995247341421089486305320342157513188421558842099019025968753792698086146070322812364859576996457056594823856580119060249427809536157256758200393064013195971869100896005717059137621625249483117971988277132669961015556948099372278770375058225539653207786730247490725578490424768873516387052127177572501536967806612151581735831359418747601787077373260262414072457108785453031675158843230893324082459726068751028621229478491471860300904855289576634630111308075653955117487674331386231820678552835989513449861936114909184037848996205001488513757978412560303345384789910285346730314307162000544069281907046675362434539500846142888769351883023874886281465288890502325770211546559895535900211141681775598236420487631358668057428501025920485414646732851649004439802529187413563392705061303814770041121608389474541414548662984255271096182800757504170517697500791196376804299436718969127818112739893798021137527491465082590122177918399674750047092961999237838587773795759009474158760572941860526842238514139339470523018712708000231927464251450528852808129267718877937289716293067943025068331837595814442728308135457120621472903079199012537102926255819939318480420355412136118509741362088670586282757960618071702711824447982098702605993131668095864039230964337662633362378403222092801894256095375741632965306134752602267940790325123666490370207612389283711703427177619357213185098830813706880367831512798520096145239694075573098107598305474790971582026035865777997808439584414741926354897514413946527905127679845002287063254761669027787167272057905557755962287483979661544749829522940169876621978865022836246019462531324756424540682494640839299505839971164728408652183975455185565445248119635714698873983205583588199034026514368030032543390602027260987508007033992364732012125442210031935010458157306402207521127158687196554207621923113699995481459615872881739904499245309061902780954784689337715040032600554664069120341765784226706773649187411700728750184458390094267491824902554501617264865906106763701421191137539554029359590878529383719599740259553943146691010183933705466302436213954321868359371951237504752969790968752456689679493980805306410135180458079966492079858182035096086540981855399226033458668054314692126818997709463805946503121741407943195324630691786798288446131806233616754708309472872099981896947560179450624636428807437043972494256411774607881129578598488482345847191003806231311246080559140739552143737639251813704287164275573803112645815742758192189265556244941592553413533453807160240405264405286077506556342964548664309226126119517953304984853970527449099162833999432200275302212954082591268606822461628501206482626541107341428218762325411398904787340607094036744292917352926160919632629600633397225651299213687826816315880639191521985974143213052682267566663702402409486821370641002837385332223179456243392127734453069577171417040468309973898813991967652402675022778020267280534043554963188364326806245798352871885110219407874439452079478477298868108086989172561805326539887928319591783938208959413257928691356907886526344988590531200542651517024325564225711061305300040739373442839302024091514378610490778946047126901026106976200679270075587594485714495699341336356994574676208234925647778939561000258858377469970812022151844955561243124630495180452808646981317404883484411147882166976281320774110446431586951857163317808658509028691772292518627197059676704561147796204553563220521511297555283924426284019450104529963712777243124763580506602150643388826431548260386879108946514179867435587218207466590154609658837082551093738994967630325662186598999206189700446516386150724534878631227661553034014136202835776153991732956192333771898852055049082065612397544673676052430415714158817766091406198956927423269580781729259541220774329488209530687178514055291711351072721845556179498202153649087649116150549754849407205461530234106363834396944145370592803525005237378031816850529203997311619185619672813966002816265028544738070607436794871780685884058933207093927064902508852042880713799059872532377965749865122862294247621529251693304161770969878660601769880608740034380242571217802619003427199072836469129881328830011171198872598776460818583145415452311058937350160207671426319070671783010089424846266158101240992168914221593293147038055014017000600583577211937178140053220599711582168921757735412984843280671023658877150249444011775817735781289842572259537215753907713851725150186302598413418539797172560299898149096291867424525594778712881642974322202645852409782988723849423946897975445091761010219004167312489995174808861058861367470721288165239312657532242761113330980571530482638831636098368816799599021503703683359655106363789549747359999172202050221614042730020957763779164030300511863833096464428783168100626450134323554608777184548339099218260302077901103729112409063571500243579467605151003219729478842614213483171529347557178308601824591794098717390107992502902934683630163803365837570458411432479742160529754015746520627750240357177974015501559179726781492512354210725173477085260239884163199461846207044051293702647226333030935453778004310249105662030043516152889805986704249941472021439270355083200943809675177102526567926264699447194769748543549242283588609272048070172446493552228060250108794336032276391610922624939272562274580435719658095918258616193287454607357677746869009190131799966165732925931779004640110904340160719623280837405797779974104140989554505193201525605588614719966946650919338461628400309227372279644002906090930126457793937605809340833291538117824615437166560454360044233174881059748692533073766982021207794848228093920154569402390429146236162294688013727656620836244232397531242850861841158801718338461232583121492006826053904034838929127449040350346725455575052791604807003065284079929948727305681138835275577099822773536053877052150082890253596130108767787289805076190286289065874615472893388758323820534072315726700439103438828996650493040411298843634183744302878498765898516527325127589860641044770684597353963923181123351655309664140057542220770893514994642670450561699167978003351433225277494290567571768715841976433581184334598621309746663377177748112481431590250376028401185566144315245370710602306195773115045877534793040728105986248463957484661822237081975764476571805401878679373543623121006039413433514499544037746533142529304561654312809213986695193247655605057476918604105231890367958311720836573294153156786913982413868682449208478325927864118794026009909859874377156153367416957640260558526494890092652053776393224993398999487884687755412936793219108506566721548291078121079634718521300047622955756455934134102016113046844078528991761600492025454194583747465991458767091674972708604994482754333489198101302544273178333102349125919061613724552840587407014500506237592346203273312246818812299982876626783843328874200230108348381759029046493031682829038974966495186136574901525217835781174571648235996019830651018451104272749116352322137768757217387714738699098872330786676682936203663933584843670081956760732299801904414479386442567439553024670782134317859248587197606586611466563879441027300387049139617076395130463883236490374986540301053758840341421578392769797093860268704656303468399397248191890344306436115781472523721468798417731666673203325921533036468095726311168128962453664515011773131825642154000100905443207757423447058899437901586247317678833396750927787862204433779814495089915367176510869912777822560947313747934622865731600883956724652571968432255562444424147097374689373306473119245582962228431514380700008824164198650645455911593172026310482529940071506050065335807858042351050184673288574750056146537096354417446277518168505370341350009527874753213885578330553527931375444101873666035609279417927083562628209809166356935020102508413792064467334250110413307490466297412826528971897849667612662552537779285224646265998717533407773810857204670901543805892362932630962531527563209963936356576595220266366489289268546786515310157182844929515873207727386064523928992943116545152285035429121299866287443847650042715481912567146732921159073543462178450869618567663699935831231078562973139263393144527529070204041635807058519161620540734756474477977104254530211642244417487128519129954400575498199381786021317618792355344370208103213151966804322109243302315512364269654525390695264057080714694313037142499989090163007452097682605212007718120782375163726845862426039520325771172269849767008432030346852908530227747187740228716832981817268681647356955750100211340901021547403720521308926902943660443812156005483089559113534983948261375357574413767882117330054963397106974780650367409173504806174085151166292591596392264990249019484434693050280395786619796896481824105390432331859183547939642405188834513401106064089420779793558775047055670986487093069274973246085384850215124547455513513814668059663982077054276335770628347195090084258090900693044311826164276316722315576460221717645930247046436386523422166364733283159451619134569647898193419918871591492454729240425236354584576284287484636539647192725519911758107582624515897189225259615623462198873876818681723274264891621687560712130394009623054969832792594583151090324000947817191569819435655552004734678728582343492632882557036743500412860033527305135236169077932564029755752652157531552555753504481399816616090833040859323520578567258597019800657530447817341438781860616055326976043836895651164510309004594881559341734230297582728865271799240635971701113497257418061828999828066569008751626019251735209148050039073539368681040469598512110636840784958169323380592884030025318977769175351216575844658064803807237155048264159582996579757112805197406426356522202972098112348450804708094328919068140862291609883843438584664525573746670141506320048511112201182740201991017217582149394453573911838428000234169960697701421345438377721209865870737891043627935144634445713005768503447370523337729740573564904341090280031572765632907657113910846961856824103286393608028790626878958966859796702754598230397970420663763280268440052203201885513626499081860457655163554524853327009021653268819511848554394710219697373377181891480033689641247176327901304935265324809391299627092438701649350380896737340558606737882557774859165611721250451228520584115736405159486444442019579599118564687493550948011432296039398747346530643927424455983753051983434566287236729587228899890129023011590868014506457496703452263063694207994025469057347614956486977505745770471671716639513978135479991677505774535444551375886435099809653058298036656698712300659467116806132800017271887287632995070271860402873824750965858712494495396427454088468419087936106820724958997225702645266092301762592575173938823572190456762050826210419642735689356817550597198425771463543226727135244854722373647061422207310145848444390929054438098132380052101607978607421326552812750583650402971242770565185900747501523113599037382067158018336563845696591765823174143930566095085830599181007907166538539572953440528184333446841673208233036617792577416742805804140162089305331190717537052587998331706123221291478598954284984931498790115894393315249714542625961017477072849107210933841544918006073592062843280847091862699900808382374409434522618056959879186436611378462883466919959790362878657573558378846748681322820549942084891389701909703094882781591399825398951699175606692519152429389966818044040220942957976984649515354482713451470853668522581019270798702153856680949638099284149125567259133338849051749223397828220280672462182577901333199373825548108502908157283082445634120533733729025536170475660284286422206177994955195715019291068493993011676364157119343515248012779674888562190808400950369015019751452496415666352301626080286164834586830867375155994023939040640018845879820412225753852769206317773208073099439522875196698865144069243972605174874313218479238150938462193831363564419593657433056135847301801782576303416085539936926625413110564058157257087359104959166015991746612210650704558941838342355582737627276534562255230070983858013161782689786873307124759839288582192697440828424784506534271404177973644240010658964289111498745995477519814434879882741313528906095079309402376223425901263892820150642807861675497742500415316484591671306267261973179487277328280317198459302783455201714436003500925618276000980655549140911503557869719808355719755039063988697486360983328111396417912707210698881560501216806835776771082569665512247113099363755274763507230042987080001345285630553033436213692883341811221096930846457966597000216793755509706902223858089587835148791476828019507589161387999317870183590697598683352393915665464812785305536816388247521652106301784047150706725604369205515618929622232335888354016731971386764800144334358660864541400521691233818176145116267626188714960302550046306621621933298323090204168368063025521043740582966744341085546951285476348001200257534493277934318563774811936017829962755293014792581545093672995005252515010098526255795315160658007081856228779446081803107270780988469810445819421714127466393543720818528779880310943491120102790123657440186522833267404544171822041966180778925449958292447084891212596137752773722033607299893443677220401181992085797982474728124055372271835455027720194237948218554234203203087231775326821476353630280252205986691855718343375936053349131999899156907549757569493027697180854398600755369061452987643701628120900222072333570495428423863127716952347990083450747363739091691151932506130991170170252206661989478266046698006427472549872303065860293041587444310116472368614483822498664723946455746981654815002458417214318582294512891464928457089365945895157496626989603848792216652314928055699092243134537202195693802167505547981368392419884515656114081103566594642184294033850504250463677150080012518731791913099925567191186840785684233909695095876942874157935624468940892561783326277932649809606639672078806561069775791587362572017397325431324259416444403704041020055992818027760602338073334458873870551809931253172701785027746731671983243578693893046025074125246094493871330038820999688162135421545481720540574920301473381574352495111902942038958189293146911303797138414764823926218612083950709671562011585761337500674158853236666432572843682975592044127235453377807279035634822922773073302355057532230068845503660580235008733300531492989268386785567362509624952335974211966687871448541410164696618205575331165236960933265720133700940381074464116164016406962224709112638674105603624349775249064860281033748261600068850337150391940541545038978225212359979130473698231155631916234271295277347347470055293579853835734863798930285936014720315324079542033259996590257384406535543073728841890311140334130949212640877140349987331469812667938424066423380184986680247477616448646321867248745542910707755327842326403530988325185654811558144201289161492863021134242540293596929341303950991842861709242571942358293431926656127171362924906321058414870306204668409831356637522277238482614762813782129533152880478451951776077856792766526817569577067586878237234744873716106959483753066391323575215053260080014065838199912008206431284614062842619104922606356270129622754783351241494537444668150238573151952407057896225353737825928681485083787089837479907735497832978419450155109413208654426575142207371788757446327924400905110345950585788594825547635803303782842758361720511934120749780196691932885547055046817031086672853613021727491539339997313934175465702768198468754143782082736197307884555171219573564931618082793457520800771330952760934708501642765178410769942244446106746457935639489585624017093056551646005517680437680754676125793814291799092330322180608012977417405593912932677004801649587116177376298558210192724124009049076281265417795635363837307440377711421647210600270794307185722273462016029901532070934010759830177427788576863227296983983049227641022482465247706995622035641145527651080628273572845622816732390455976565506541912934253871127786133022746338243255114851727151686543661078922686749309659046488206829489935047529581433077885920967935025756688739256107508561193382761886764217356454137847396044496253630336908890954597970229406629736339197489230678986376960139329749617334638144112896791597845175240091543947743236269110682831604246074686162141563493048008700708033319159118093351633210383635653601955018514395383165339138140930323986716540068454187244168202138210418453300992722631011448635302013223845630018372218208453206477349477561243038861126454490260556110276560724223961780840317517236921030350104225919386803454727455591094225120687368455026348779650945583623682108855360773996985681523637289364264006868279331471469621451381929315357677182052641226163269415291285080613971709136666255785426503478741340231318732086320238193101294794959499003121919387274273772649086980315947007148640747682740743584913106369953559333188338765425257004058432012343414823892026617310832251156736542519484409466605347243391614285354882120881554221459509175173615154399015834726804189484431308855143060447037401457800766557799408124743589556860585826448756817801477361383393963188436715603316375776838555698206584425382891828747172145339355700620795550744911612754635465593819131040905832309853014753440193593269265914237389442923475837614980503879735848660377189550239707514362096580183562180259270090553456883562328511802381798394970427095677523258102791179461628104358558596941307578797642154061183321134024401923702540496349518020844653490800757275874849403512917886607547280893108208027039462789258165011797317297622321448021970662678296607443926978165425472876637835836493394276112693473246780935227032785899013822380124662026279322485562763106571237536090988493742770840663630740800323084404022358252667335842830996933648069944104402303893965715277370007172200897856321166739848672194370829178616312238432253994264475950251557717403293705172087410862656168133563706952387427705328833186252933057080271770964924317626266850177009185158627391256854925747653148691500378816604413766982960772599156828323399795665920755750285064183747524588408375892698325729299125555570367477568768860898029837858283697174467115649423934384712308401592868512222965399313279808740025982217274034616681248675339508260852731409667370168450822436119861865709637523393133536105153293378286370068544105486882438746511357316990225749605476705139895713564843570545035499743655717096843947713337784502486558862908711793813769620256223594858427844736248380250883322048090113144606208480529455383721393383266302815042848433894709093830456831332483595997309819679914835635375301877648648246036440170773197294920163573305731664763310088754916126995908559361017819607259066100882002461427185630261192763418218248079121616961978959179252349362423428778386243119979488872049293066412866570711461594907591681128824866524350552873598432349238292055366173942765406463673790074973379737609897493205820760619889027490192743726416468591428555865414827980831164585276740829983961726082786339241918285629408770718292357779897554695184816461238604204055114963639357938705391726456506189457378431499429181926707944591377421508863217283181974995761646891667347167024605391843633072137317025432390554185121779657645689021857900117419717100650870500867253401458306682948439674668369341960801920912958556067111684953401078255697294122569233011800991972932543776279052354976433540983351968895037428561367073285188462453738220349438347950879506923781638302586245343933780933376751551732053272966279824234381493609588435236236859926948983376104530013864663439517286720315493684258523389404473109303512563487673869743828148667504289573659521236081369103099803566608318129614966246598697424231703324677460734111463114526060653527081624235829457964768237031699248597500948728447622336399110089632791914463711757614601957004306698501363407627774078198736281654390263754260280596126758187940903942343337471690853473096095945250572220574576340345438957031313934809579635946965039604189529320487815832158966865477086537423037535998582918014581935426965546715961142141916811421356570341803317982352582816616273594025275067502212658016593447167062738763672174287600178256218696780942108237466327087220772314658535164841622372728864567251571389480621629013765552820872931382540493214148181021585594529528133290554394526861714641079169392004324519618544369372959614973642262699882686264907823102220206134916736511828408117004002457993767962983714377702173177204693766732596324498512458535067136946215091601617428185048934484238494219715258326791916934126127145068290388289437263533734973263225025039625528947731106670992890359110664289984504367328780951600028449636144996240738626150498502144951586951341360496252816063621376226636541555678304606332958719201507558671841240903391689375695057314385149545195783085425126171725620018317251336006868715188109919911558604199467320941318482539895841714726794482540694114581374373085716094066353958781023236774626047440792267095341023409244341519701072203300831237527697009366912264376123969180431636158931681768380275146479635794931178265586851070229037478362171292879360621748549929655874850119355452032012145668928656446957388668789994256161713525869830670869340561055407566561403930803898275304468503449282612054363709760511168551847843717613808206749397975306783655703910034025419765336459307876667751278493477580496677212330343504727805418107025350062212559013970533659910651786314571565018341034746461703421261744994306247473869082174015140428298026779460734524587406284249837645876246731600293396004005809832852602600384463362171195150571422836441984022483010184251980904626118759840411005252844327122078972103144010918042662720939129690980807494157985257169058095073440236340426083212405943301038699178972766831937855579502769446071568134812572565787391224582376611109487892674909217292842827946094575897887504281616400695717421529468292470884887237757849067905127893139759828432209499995203962258623485088896473860320938449745843902082392724677240719916767017356601507303327551603084166292088410680376466725449549020352373281493319527430461959407428651065518510264183648966424911239440969820427097439231120247681604250791874661650755618495853878290876437541240223443884653692973999360341579801336400728352407141957969207608518519210075482358931875307302667957345347668434072202850041408495687558615705559940944939238024143503218275457476623000450706598542219494320658980359222597300661225459151799167016419187137112945900944695525153526750962239650400064714825399376093422469282111284470333616596705311321270000593750677223539356470706294592187804517589943896724371275327037419204311931597667481686791043452753715224493723242852213337171412695229126486961081165504525690393817203465021984947022454865293779141938625359775188909731912208270418841530044469561804200857518523376638886610490550701994733259889954043664380635109742200168522210401855162630513041774504045005565269239897826155149387250317987297277645701081149494320821266718308640536926669506438740865858513803684083609977760974078216684485741826026762117886321417826977834233624080266558163255795006174655916501357639197605167364784791555122622658826534305717851851325382460823668298069751272865562916984835816308501024378892647810382577904352048242366208101945725237783922165125349640665171612680629955238048616873225149994942728703254701683654007727467347292226543099200603211963898018407447203771029579695968709897710707049330017050634890969128013772889713648702215012277933338508342586920652895844386035041711932108166717744001645901916858153854311376326164410038416486776962599771169764077510930832840321388608405232755446352464901270141644524565667528345762053991877603717127306395994330078683402932793513538794984478382003971093991921012687387677584766820087396157885919808912679055841377688741902160713513963501578551088044015288360910915761668302368899250951505060716932531244688008154947747065089108364036751666883121574609970202125914550328070514699428259237699016236929641206935612431307755735047142822300609851675570330846714683072254375928690029248305374956028072509592941041831341684783006887174329048105578034951491682459886776846845283960991742414968310970673074889347257552252353363346989407613844115495158154214663613795414070820823635184714615285107007236448237592691689973542637625010743450569588180604232515604754718392331952900956294648264657472480785197611204488357096354421499280304594575626659841455473888597969515295929633122382073878253470751293174526260868940446057060511828533364347602277860829794156237840652451681981426101401845462171548936026287947052507856945648311926791687587566456117882798117865804439267405867173616149174380652906440655398513168944761785386900424047191091517812257518411366859987524147503438793990864331310499734529656231943764458740587927315668845878408710485974055150715506758216689143396114630673827629020224923209165207512274453451592407528367237943946045956399740827178026317314343862358289077105764962971102131991195443776401093375677089655547695355827473274114870428360214187685972067686406496908098688220836066908799784828146244352557188518552795625062060820128200317472536609401575526767675776781140445319247745643004045273260347800873738119298041640762107123865384279346525956993530110736408806629454166253583698775039391506182053566109142578990029734899120988775501602374668412481320486997230331642140926059031360773389210835064813552750302890883612815966200081759297150821374856015379563421083364559118048268333972952788366165521741837482279463312720172907943109295622412291740609159450797795188120788818721604667562599919234808567304733087358799011908419767703560780973160069414451680032564998389042197990014094464659432853658416016260694220736202054569380675984323671212668091359588931225061917984940377193285010502173053252434439262147283187262623709974918311341073552136543642164730138618795338396276083318507001147276502053793975613795623156179052062276368287230525150174302793953448845191738018692666934371681768875928400152381531765972667287693317553699613328455989950101567036935207191541224081089315304680861482917012651371177498583411950208683537688841922639568435168209434466159918729439828504056719538298308586832478409569640074723857294493380950852739157182365544425151716311321009061763402305991962729019147453930913866505128660868962856213386962869489904818613313801644408190685684605083560610166734874285340194905776789257225516613155423282519986631366678852808641111335798549442324140251130516420011574761311067935802993702465779409884261594473987696936709334955437284637749683370662160455911805690010327969521834547822386399054870615940915733161620990013763899191502411922518647828865554024302643634936880716684555876961815085860305438136606091700389332873504088864172906713036127811964691393758920638838285139109505842976136127633983022937363593963262052537978062275003124547617341379871653373692848030455212095971278028322870949148294634977254998170159937978500934663795114817366836780980192207451477211488273704773148386726718334165738971820209390486220856086657301527611150255774799373231965716355129846628114957807021578196744343726728835088293536783356568791862398077627299368538692103883092633005062079279596079918939855834405227195354873446540958454949586942738003651838781002767418327053349898553737863284112938430344349720143228285277192691736520758658618789135255832738177413698658750278816877461966266936460717956902617295660527109977982641748089199345402621033935642789764040278540505288467817809655808044330329747503195906478675144142363188087853081759771179463393026481618554463659853563017354679824480296178901921762847213935069155471359868122307119761170735524454451730130460396932988720851177668532402892868905640003716929035576434973269957376365137742047133358952937207128799975858076783944201990309608225150665162080840824872223528138023863698174652436604909464633620587979505401078893550840113851314336396495140357860844810019816950039263194667819037956474504955768409525699681471643656801999534419920531540765019635058478273962041202990167136801993626028020962056299165751778270545440565116164437597990578337376167706247313778348403803273246116912324485109070322569163294202073335127093413279728730886637281017072987681795738431082451790448847869448317732082989511169282316672925554338036116708418220492725137082857506152180109125446639180225110076501632461026959406375529392201766710504035656740580688431831966700040444177729893527305714972809446853811123888665393369590718345747747962452624317716799037448098908635121245684012383503865729943011246384830086248469659042898145569443378977586837964297174138846144299509535758981089953903283112672705750687593101457869999345784292527372518832983886663369046312571610641334088819652642239794785880916009378802937277554352551842521277883239950080909059019254889673132955550394933785407536458440521736290160184254248791607064614615375375317044121839154859372910529795246493553487719123556538011903376059910115919673478918103956951608825094163301564780149165669108887679200875806631459993454653864516399758276887858197807917607085168387527599278913714258638196566175922045080542135332088372582290031536871916824163328258932816942727147070865704169039219491343570158131120205933413077457029714357732349319347757859292614693973868500141992240612008075468520739069321052038874874605638180845677233114745183593626921773543087641473811842493382834512201181772083543668014258153256676298192916107561003202403065980349188675214177060154314748777395245333664055820758611847210960586857405411122987328824902186438647823914538936819255980992404293918770186480169313615163415536844704630185467647103313293297544321794109713770572160239255416382573291369495895048631589768627794357747770510327644752250370365443978466500046987101344563846396738999998160039011773419192924520894535115052172743688325430631446105959310076699295241767401111626670606308748941735274462989768710169528435597031377622912061640476049040098725512506867454655723381772458087832926478705040033207849315167007348955829100898452613611193959201732569327858073816044393130183466569594129431914031600638099027213447352219427701291046053511293770144621349562756860814582312952821283898282931098385146915888738242342874254700313380142101177097484304062492176183665320630439761589205834315873207014969746711950280552938736406966726230648757611724387679657188939238522495428717258688093926201714348906574216356171288549299698917988020277948015424228899948405693687991052831855930005652351242500417909893765140288904042309211951089509724475165068523775529031993971685541131336896570877046322314416992316531878967493822289787400048227216038543078232686816378546687697630280534936029853766304749318633806739929677646209040209615284252595658388714106993450017309783433616707928312794623563746960180934766156132345934098867140400918334987049895770848278652394267929128544897087201366362803297492469728956177409231970522202051879231454522033002032001406263441031471504744094483942137629666342538203680253210395987596421976051961906899537889330222134297732258167388070956068897555351523997092893696760807791796868629927730540036426352754979510041620286845320870905415471265916900913993278595599065386070154025510507509764342663184498100156514695308378157633753080807752788827016309198462445399241037255045592659692822131341669881508731935946613972785343024307128125356508694367997665241861904576612494105308295436550008139342147571870281438272578649178371959658078604932461960902032158717430890580147861773997355039599617991181436659696426458663485756682106701009562529642819318531609749630944482924201679745510378040585968263957111817854065702023863474795663050900130252731282995111562066539530050948737098985946704868977282394267103507171990984072285356280917467595673217982293351361096529803544994547587718086220768664923610416612782367566522820765128104315272652205360777381768001309300135821466936767402343709743139913874923994016327893861401955630009770670338310643963064028431253701142114692804141287022038137599145997719244146077726081725780985930730982089559215375310316134228313290094039724115307931914074589148030833415564754982933704446175781492642024890064150180420859684561711402007683011054514646940418177352347314774016068830327339329212761731614484525258503228459861776464721062710802752403232939742052208983224452142525812057524692004876472785685210620170480136567104539328308970731837987251422961927007683478781111781177252184454504278372836973104539795658998740465237667772808328914001862350297448767413367742056261774786190067695088065391301215576576129966461512730987418782812218829964735171858665455977964844268147325809380984108293586346633880372549902551316706972916672271350501807825699136960099236972155968343077017025877495765967719958360683594027606585213719014753571135641745022517359676000750872755244947387794606772526411903876758515259644473918220633301158018413003318517480902189628864295355531300611356329754675004668886733383899706840628088400861891479013689169833366428331734290436518348357316887346034354020582904626613354852137199925447482057722157835451393495106954564963620420096949772774761329417337532914523887964765421552967349585571696315653347978137857287052472796540621121503618918186538616898025036485823961606933078412517808637545623128571236732873844958526678062720521153710531298321021217762798434210824917850863994802960682489177442418881808008578726334285818709358053884396272652694152571992742215507314314409536812767790402215311011359663080261951023401627202944502941314292338078009495703784101423306287569740780819617671184579060491596835801085295756696224043585149100635727065049766292838633397927468811930321508286294919264818423357002755519267613757830817998485164672483675894768921915777912408228666569747117241452027949276337190601361609758957960921465572326396666705714818452349046658687185278163420503658762960509937574778615942283548546217343781352174981018852785404548190688363855646905583957721173879265665374689985429998886152153942174179790845951021161366699247681330870392952729884300461870783668204531515750576265749023057847717881446953827556117628668541538933549815498566467161905251994161782516947436876791732089468487835312271250438015822278119269245437647273141712951489658879035697548881987181561824760866744213083844517876404645175432266006981570305902859375876149781585164962360932083926566080229841787560096474698794325160127282938285138634403625298958683533915250724510517991623998766886097857257729179960577993302759941804194382833051311479251270957918018549152596400972089068651028019075044860140459205946324349256224183781325244630892075513916448757772439051612485456157343089307527053088689756643692328720107998561966037360088064999155715157870346856084904787594598682436751170721725632674482264943885190770861586010452067544854641934535390785605510992479910845922039512401212854451385720699326880835893963758069174878632224673292776585732442423452819131240969672405928067207358725034917616397864653255876903447631299534698353036379389722364905532041314610154145940211394206940577782556777027975359949073817380697455795321725315306633299587516608857720278977456378919861680871878243971742715531272256496779177001972738840048041746353253294840692475519210076124931208381513057081546342302741139699427624841571942218245010157587391185578503186916018307495781890211933181188645958136303835018034186231700391185752207046508239278160203742357153703523804630825530091120417622237828064776844364838821404105329561155258728247034514900647553746965126015547084793851565523401286246470791060647630942299094221457590639005380655447333221952837721968910913645069153117280862670799776127078749445110213775645214278890527868756069286291473204987317694321434456013505318856516052814477131349272494009917868489232034826325338368898949752725551859655516816434147475931524728699422138346467026038260236843923263102016156414264021414736627257024808740602160701499874056270107334826896921460344205584742039794611659987036667520552293486144413691078152618050358424398536282427308918846515402590160303947026858406596505556047912971604188072569175290961761087580528842034422868207831651420858004360457317003963533789532666230420029970520895062944194032058872990831123004189392048736776545729709552474918383794382774669332527887009496465857621707196750843564357065254752042259983242628666572625499612922637543164855132706906931187713662270530383474343090301709999905479224920453176534785143576339304946303170174652623438267562628983574762988493592608599538058112934900520674056454457856772001967445773761944992964060387703710790757723218570538321902927195971391614994262336905198846758071027989616569659730308186927521913310853913565700271383355406634860639937585915411619804178912886748294608957790674962339109184798589432268801368019390178980690775740224367435826227014182730427601520858407431662700967427068752593083029002818888047949613502377518692157249752054938943892768125374637041127615532564895962554180530830902885200697077850753331894723262387378115438737187502822822328439622529494587658252227286883027330554099019682939629934459741097309828161961134500181701125732414227451895569364895139135198644248990615817069206108441815554912188503638838435242821836856264574879711468321282014628659427108936948170065922924836782036631793558557042091612378479648547272061520384926298357780060885786798678266728758696910422831199987071511069102545968222681827422811792939781010035404349420194988877491630642700845607850675859092304928098505201496300538673680439572351197231262080289943094285350004839914039152764543234218197602236756666096676908555120328004416145008295163967191323915096187011041138017759565655984213628144147806092840175233264527478758970476682515248537466689333785383069493568168634712074797941883321111547172702564184553557287152170408393862295633580611562816842622540064961207196370598053698158223479201404592187177601726472162130198343336167819484024356330500276753898430742943046513344775183087890794722012631256204650285602494874977079010819751758450968292943718496707232310277511588284054637351923258283856298013607808766701864153131777708095751222747460567020386307621500697735912574247843166874621001900613345890803903680948171424802173144808865941436701530160671592438997404198082225976607710013326237516823615773413065623165721836049334456222419082953573812266666431978591086611153054031563903758806641796204975686954778140503486512813413544321911991436201358579542330171978001157756600897033200059425175077203977328133326972870726309093948211241640087399519270993430053011600856413457228991827444003999577838460456641524389405313977903828139563319541241484452392910250737504338265044846185021787399104919853982973448563053448128844674976235370106387161645344318946235543613339191070788551452985169791742386687804333909060557223525567878319264856659883608701941714649873464866206900611333770704259282619968820180395305238057694514156386787822601234320448866584418728199553828548098582673309165626519637397394928209775619553254015403099796755816034089667612764513941168436549453026747981738613643946886783447462574516632255748779066136513923503437630835949497918849572470714292313780328923655731109243994952883828656923449219463343709816897783900487188987606440663027529805683646650143859488628884227875149075558730106086973262012035486908197486893201493949518634193959577931467446896452133324361258808111656310265939904648668746541396831732870344325632560535877004202731041850551823033585752445122144173002162737699564024062754840113871704097068751668262444202618952181492967693186293888742043772870618534646275448720099804762441765430664979782357542176809714212220168490677281692455780804979443894337952045487996111402098861736957438166590159397451151600441155817747139760520901333630190846919089075428632002396402284711521849269418219238433564385685391764725934052915140899898462496179150028000311266967934131833692374052950374403094064767377623690639492046999867492388897005739703991515561632653978962040719537006857530290162656637989502050439353885041145429825318783296964506081037121714356748268094516943507468379758815856757639617522112797248269304072275663893288554256577746885302261906140840511497515313933984256894809076676787787585377047660201821361804891628187782967592831601842552965881510604667897376949802780655207465833312123604842659194183079097153032384379526082636140295020069875275093176500743769506921843510918683146763050040641361353475243341966731960500968928588493847328580292270964324487462094962213284548633849515600363327642174487178516459027324119811519204338027288357955792166145970725023773709757566884034590343692315388366166334683851668061749101403767749503822990544229405269501581676890098898402638233364163205089317826298921986021464339399799111950957708555781631148634609001751069079999236577749870271752165415385562841735055418857965853798383776968620291719218046458805431250016718661882787366268485105551460985710638896863644266280970026982503265997689716556792357113144466922631689122317922982957042690127973639933716652082432568928771381144770813383248665258704678340958624841840602786394544452906931187726252452278002951135061390286856874598914271647236129530592015548200072796310892519581903107418190269461170591491094983041470976980632988310626161331526995178421461983550154323747393867328806467240906031558522391878561214755938753503413410533684306251372679665756081535550682158624494157392263586546812532755761087090330286488951401154598297773533182589697687091565175286955236566300406543225808734946615912417903448774976045890544257615740447947028330060456018992229794974335804524327273617494368784124674518126974190447176268527122939604722214450178152828885605488207004787721090196102370915362423306816387746989145922064918513165290225432747144775115050389343028733181799977270825866241898830276007576738206373667524454235889759094936453084425951257298458659521496246193166195891975516952186869438491400431177624187268093094830835490529446304210418849239651930722080961210232657788264777833647465751097205899620484092317896838736207132864674587934810863709668169034780542383715567751378954716284432085261050126620429694643905239315509922410573060709271919595105595018184369836769535907270106805604951227797826621554801678434153027593192788982817014078677810501206526222012860661033567118319027732551701759536187362077637523022119538042616235546996051208301339062223462579347394458074161333660513971591735013745168784278420596945393204617470521745833882414816028691278898166722602751161691986945668592839711413582626037837888005441396284943398210148838257929055771061117754684418208055771914395072473393699405332616730604001202029170177209818518719595292247628597534536264643648197975424042363254849468969383715334655400378527119162024195515541716696753935450036314108165309792800554780949041158880409681789871678916608824853694851390445754426798464454291883903378955710863648605527540270654202671451918331233894724753624783977085822886026632569126505530946073092361940209911806575707366080767700863638966067590720949005498219509651378249703507911414416904350134627195771497310211859931903220438586147530320796319094040586340361479464739585620857971418509370128015451236224245055964176568568742897517355691670441277874388630930980359203090696541461651356882569756227146585647001473126705754141075481750054623555812715128528930923545813494387725078423156706040679650334355344364243174795728879083796369283723944370220929821887152084397467814274159472188639444427383244286728939203134778277988600170939591985787296777808523283440656397463951001962097703394926659077751210982920468365034231822218944823595969032761559475570897030436356047162924882230992686679798416326496749506617523022226644842482538893614996833583997698805309286735905386952619102375040115748990891391817199779096559714187550195451467677125581920514067203496056259867787082001288500915291734310124677051531279980315540311902825532305597036365445288427932917749581317770421510977318949091197259743456569654307633378191486351326469414945906137696954573077593887964487543932927338860088416305963129595454875152870001881610749322832099964595337301339856498619131266938412263289810933219201303613021369382389340372308596501578897878024127536293077185520568398088565441859069565975672261315378390613631764620250687252346374412669932475741615541876798694166650233575341638048186308692432986325913286671190789614385069327169243699837736572278532917245056086415851937243478215430886399339642335442319079953414363204217282622978625050770941216962663586967399747589118437288221417574391292136999531134096773541348291121533436705340788770920352006015955705722397962697445214949070762260177297881393577403221545475001977142273071234998305284028567248529391989600586103383077760779222053229754005084805041178006275936264159932742135410710743036614724673058505106298329712146500832931545592154177256207491089971247857940454499735717258607132947897074750548569728308113083074727286469717378685573028413565863304397297625334578937644671731536135114093222994378596694562193343042955070659175907502701163151584011579599733790751591974383027662233500684659676594579503001918235319937638789427402470963464656184089245026875447930669883400058766199067132601827668395001516073423445018560963463401239442622777009956589081258549778117390945319962199280873482576999059634977565612715939874801133156883870968366550212868302034667792965456790653267931569833555154986385790307008255989879130324335655652602898507146112752140851875337932739435643308403314326213432815973199530760401367476439472677028683812946721708596116296418164466450310041089307699451426073337962298562668628219726047674568707100041839128242252166247681691228204607903667256746289283731949356150950656399364514015252226661981857590073820659542998598490727268922217270411671125895292448415994230963287163376457504703948458190373354332076950396419718848401832340654535099311626600105206179677283363904620015698883603303593255094080183999163486993906145119115084591258879553159515206435687664983822926492056728592610110433952102416881118091731340154383099235275660588632646407466283828872118906159007171532844739334851405158270083421807305741941737563616714417405579794748717207295931164845994248478835932347936966121627036883250006412931138880547786466986447692340381342813803580098111261449409818052109592427901011399287669028079859957238363048376925198712581530963357482201088350171203804298626475364637615238330303342409270896430429805925444722074071087832173839536586717830251880381376898524352627963463144521209361530785623989731815328297650415032149658465063991388354089536234310443178696588683374546963969497749120282958342623002313008078894009906373876000337686367757583123378974823728233596624463420759822445199122167819542320914413858766254374764791197490661919826392125448050979509198916353346126406516526731104247684404363226422088739780935298067237502808470644910156844430782381104545207976918993493189367982719138587482820201230522575291359357891928457824002144309821475526635370217614695610352302793999353767378366292900417364120890181613420119625214459246116961052266710307202575844825513429710720442069750405334173325532390108859834998237023696384091193094416328029811128835039396294951780858700019811780113927792431323758183382019769684419631871684742363633435350060289403904281982739811973288354347922535405041102596662990253363969406542894114162975522833338129930979913694390703568801153655984369993887702171190351812680745895792403127598527141514146993342722713687665291663126711212835190359995261526958845967511082172402505940164058599267165092857911397405739828586833167322840452024715073139188057329559372303545054338117426634417335231153935517996116295032730112142301771383927393007623858299068098349423376587091874783002992895748786003894232094621149825493957457550078157380446391879186981426179330498824661514683704823622463549141491620471864322177107596591215232390936164518413967066370083762489198624601699570898869417782777413238651555502376516062899035881310810523100439357181859854123619148108798155245770717062179386437755035362231561370455946354594810875597098874813177783595072745311676650873442913605209428827496391587982725121613653488271910645413948163437316674176514100748568934178353989850338326857812392453919988065422633700377582920873553496632971382765087159402741968340259388261337716383332854695929318241253279825669093011235839008580765924447427636441639777214226762436432458975849259567297892486573529355902475300836522706018644563505012667808944678081032710819021880830464628653929377596408969790717992023989960272988651651301046538819886625753575034261496457069029798632538525168234226549448462797216817321398098235818294629529750622810209388112969930137600340514721386326774918270528065119180508636418025448402020265938054256775135112991573876841988681734545735198245739059023457953559355514979806157978617129542672283911025199146626711304297174779753472990886152906744139817793496679738451997049795626109669141838203533949394380899350351082466070025543511609428516329551543860440199030442386521336134248724410971238384980909541809137878064167572891507461712998140464974386794009416106911026113557048986420441876565841264142224138166878700076864161678077358876947177530904167647144915033880967839793288948095904433030912840797323017913714949945539074590922720632535349039041214209348638454533396300360598348320067099284473959136896994384043732701526323256391082226639386496664862988795982168279271340894181193003586644201387871980810808859187789212681189247657708682570242085476984828955985481268153358735415614580349925119642411273654244554448071661965254811322570183491022536083635023330625858378362431183104638073852318881902459269028511417164428585723170738238576406463326942053116201227043930029773854440914522029055549671730950948196862257102563955043852472366841278204811486495698209764228788905984542843316062853275862607298329298091943272615920626861127691452930435531918806700008805695857211923256036701307780544608652332026394308584975495729003973676462927738746058294428562504756142023959013114542222664204139403298173916711624788025498293122143606804746125094329316564000973781025598283396584864145707841873442863044616667107183544096491176526152801616805736591748438195545093283990520306902806632565448826141049935782900228905845692788024971980327648272828106336639627394095551159066497450204895510148062758320889392457386389514105612205938653337539525026858539186894243049477402358158533082620483649353044605806188360584359056683131458227850179575639551256921106761993266176295963490196830781060584250848005575996444297111626580448011104468535173233604753924511866630625960528481806803116977323891760933637493811290734140126236799567453911291665143258717888116426656171497996013868110063448961011458401162075083190072091543148820445878810679997302305928759807896507647975863570331999627403671081551928951258407824590398751557484046042784693244342407586978179187211837700908814709390635076075321023620210490057898968522219315004462883227833532367183124736882293755842377310012409378481422932027617214422646998432864427722146707708313416565267462426935264518846050140476766306386688050427886023832735423390590492044394277034208145893873444871624991952602316073473899801409930202814229773892662073819286827921547059471835368963018422482797896601033935881819088632048606574697844426648644071158544381400121614748345209180802757229002805946749484823599548089754963078423380961812870294291655777879145290642075796009035729955416957819367849585289672687833529651630038141118690528046864175752627016520234429859457684357526245119058705276278868509166826363171220896337895768739219136729984226267066488189662717952070796066652270668191483035748920137387709261535534139429778352284585302261394924295684645594004107097233396242653969533898038448467725998374665783183868654528712759752702272673558949988906120991261145294916336553397855672633668723581408696531992091351619240997527621876454217416754132533716572797495952889369897456352893135439150139917367424482650679782744226676064557909053488440367901642361136777133732172808258639616884288396808442396563900664901421153710918678909750054319468019648265746788799329037060515535056366297094964722871975006797753857350475276293367742443724459764416913395247113718524567976452605636467621475320902831175523006676902841388064691419847098969406613812186947072705365427219051143644703833602113512206935900141759657544914141134165099783085061209103738885643202185198498482662072349070603648083232404977541632854851421646942656843065509321564457031225594406769081354908173781745518633050892518866600439736197237574619169919586379146543242696800591607426326032547123527989915431133071417895541160870743548420917414297043797173741956491869741966965918239585612506836757825054794417973093482797636198789581972883064970995228650331404782187149122309238877114886098867130981292582112720209572040878685683554774130452530569972869787663428515583893331995454882953193284783425530149114639631764787351845650379842252283330089301685675047935794719642027525228941319395249275852210178818757807507347589522788707298304942908140884468912500447208362960996397453376917729259181401252544338170452997723448782010433659920041580556970784414700576439770778575918940308097583809784346544690314236370727072666797873850901440561370163056587742183005132763469075762114023650958528366613282182031344292430772739724782266091611046360960238974148557295348728139579087718236020488840290825783917794253701960089704408127443346381820597791492338302205184068479785304364689003804337861598737996329061083912034395371555424372903323656757576514761746019352661184283060852420972619401103528724331309178629946789325840463190021739512815177546500637173829139579327379948320734131336985841219059866850943399004253381773022343740278447052923789020234513431905854684820101086622824678169818389957998649725259588085428284523321426363241011453810635961400570480571364509258010571295054739298516274432146511464172145567804426478646087873186790860777505244710313598070101888572555027225777241879753044859572715118526614143711434757329242981957174014229891988635711316339881183029378243141015340473075016720253988712820992961260154324004789265470467485812839610281812721604776861684180293402244587104655352343864883853745890411128885118767930156338661351696175743585933275238594989095427405027145752200575563495050190249462744887382135291890490520304731107470481878933809180588062565203787608882444245357054336923957027113421836215680457547925642661682271494110782278175232015593290425115222703057090302408306201109015436719808717148622359762940633137994427679038100553421235845266231592025013323593118228472809669268229416855994411775902838281377753248573690038962020013366004311553106977619433079446784603591040708919178266151581890519208461350611110784325854324786320798449171440879657094969497340369838971981527090361052613652750446736669698774984152877309370343809171522612482893372398099093184310545461182556866737321227163880966703814868326149995144831493958926855280020144867643716340499951602022710268224345367576560443873085442666779970237056165504473840286960370212032520880588123806904050614500508778830270725082090833160517319656592612289236090239271280136002349127314409490667465658838174963088895031885303614207388418696009849134921179889692920825908930140863929746729756274172177512720068464923574693135580299240340000494976131539889012692625566375679065065532275418649999357904469947050258824099086579031839042064434627077275266409703376154504203108334012723399093715936304848446379634750331731719553780115426276547062708881348766200238649227448586007447593400348131790367154878349715724758335761146066017611182318333977998514679641230395885667587624846080887128116921115764035959549881964146350329518372493497129127224727522374106890999123699690682106369106199282013539982243732526064837197563209762010246218701075046260137288252701529909428541775714830098621054689828258099620097193664862444626955661931638355826039213021286468052231128078370997429961544053239369673285775639242421189795829886350562946699321290368555558388604812429529764037737677622579526525623150558829941219339879897560066685682450855246850008862206214709165059842538486423169466525234812491181051904751003910480189700265558508513894485610335053987678314117103832207714836857512168315070776526472125767025786839054612815547938235939482064789163988558017795404018705084346043105756632890090057196199070045400535862185692019043480643489161137605647807665402153147688639441505723940515512537663780281814956645992631747206255752097126164126210536430327959335084272490956397154952381769229466280085290273465694394597561994467975877660200649187770844089772871556872332258185664587593873611977591484971913315444576312801169977540424915625018556819101564055459170817348123833979739362430462030325833400490689677113724024779771935677961722893165144474156882301738356345725736113966473518113742307083946082462947195246462389065402267372443736453481772585222781332964267637065482304232947965977032207678759427901175131609405854113193316052530349827128039029846358788221075130354051879970988819578483578691131102228443252783503126551412482962093024215934495057561722393341520056665008118148473215318025945291863062246798490573390688717038516583999611099655442613074245906301200122665389522830886805411656698096386569526193098660502813544585182888144801178268706340584576167369586523507609774820475420137188376655498257083596229295202558486366355136993559587082317521285744772805310633365525650647797599574609324486653906216220840440830438265195433311847247309308411985146552322979134965213864073637378199238119575559426774511011762409560063543524064475281668815077854370825021168125382504112277130551877476632173008791442379718278737532462851462870499096807167795967861551717130198014863216611793574969640358916831429761748301435210750713646144741958062995264592651321193819990333692498049193009475381473490495668747241059773721052450647493291586346337580347229334604812134683011834582385482259381008585106960748141866359594028505629383920167059723531322209132678325846925970580532218448717419313343255268582083055913684282950062017524551619386280722254347630506365921771874897893322720147190443036583344149841134548810852779506090286439914698911752344998749339357182119019327401860812713854722430219255463017746136682409870133618429389477298113017502985778408270676261909645409267310324168484506515465726511383007561135407944793564230085778090416331942870696506011120462383288568144241213022757798825640713942619488538047543102092340505759485449697482953466196685917578206633562298650930863133129250178644870463338633199416494587479070980005900521124463883503122117270942137310345874985542690958998615698350265192447043521806529066734850312987026719052121337491542468765899236887230646268444618439231961223076033218157605378503912651359340538886816923748118574579407049049454151237599898081855086097791460882105516448350554510807298158027692652265989570669987737362475568725928351994342595861579996934336769934213335526415477287232815897679788509658410155487124776342348595676338742930682223498458476522043283787527813786402406857637203966211270465633508536183032350470889567119152241511166148755330451340560379629821064843539608642441872495575030795931313692010401112815392752597166762475002662982516777721740566015016805354897485615429037983953891650696228738317338092534109996651779043680571731559576543257427911473055125435195340619076677583690100165135670550442794473448108619863790187996726388944367543136653072881389395145197207042227358890979686284989807023221359441776102604028066158069719503984121591481322425746398428875977867449721599322145611280039682129901204806889361949643460695420949443025073899833554788333196351732243630518060477400694049320737048567548455279073580334151184216137879100711019786864614195324786446074819123992452409619569721544684663411518782922649314779310351916972759269934805206018683711712012454394285049057070003004813429237502851819595920334233690057158230559029218067970478507735064306879784673495440569580598856922888612077235865478979102404966923885778372265486041157585791308954571826415772245171524716356894690246927215098687288275325235019601555825976598571667984357449639896763058846148020591847903075193176579500893415305101656878846228950981291649512695309986359523478531493953159194081255106749117275198576300389859878510809579116810953224612674817768749790295934994817930053271607434031616956311532591956430094530971508376532106152391613177638850567334852080319808137638626144846914173757001502574845946816532392438560737067616253259478688140536831743951662900395203357751042130530175776055924047289192283521116619334891666008199725139831267597620874577368503900220531444398629922219287560726215640421536940570587651179381748313734161362936677613221823350651352334097588274968591040959445434033674505039632774668377004501125490203847428722444334031634282121837316780860225765278761629258935426321757210286784521220352187345885087371908625735622610299574951119494074005641699753483289392550763808973607748062693020832777290879357167142298112518868922349767656681727505455545543951066819192205409474094277998707320990936342008860987075996021773343238354588415759101615112574577884151609651881106462138643912726225399476072453125551917952553986202456693188396650146955732434642217116864832534033232073280650758565107203610076300326283948098809365084502777319064097847473187831899079884438376728554743105218241646978464416163292063104586371671953542007893915008485397790005505935076721976609224691564977562406770375998838768168039571156617157065657086433205572990713716617693984304246388011886874112426343419409092539341815821582731008346503509186113804612615824422470357499988221103598820222649405271370533564176144459358127642507567129131610766625343045730940499473832941796193994482983132259036117150569028719614330987385315755961753194308181546151282567752894376399733400228750701436611264780127898893443057961170203315098101060926821655854836334687758568430602690179639623034489483263254024245237938363926745687944403514332143506900145015561669753113944867964491295645298609614014337543045925703557252322988355191975681016544402658175514463739602157140210863473755010395797522294801177246259869183493364559123812518051788453268568766230480715405950557743247317925334376479951350308719760634219661118510281280739207455463939727106756600764493511941131578832547667026628861110986360176561831280348570192865044108198771918034745512911911015348600401526249136953733631861723966732691991276992347192319374485034089408776277718635024754096909973498302585856688711585574541202660710268564082127594863853817907643775994959671812831923395839692233118851663481384778575384684705897694280955115626343371686985975939379389367261755252347982789904878795856171902776664929247908360656239748928562976857230491134838531294591807051993728074677218941764954781693088451558207475057525015215863834712867130261238100389136231881529200742042808258546131925842622851803926028405188946953196244520054998108333657596269646225516704966119949066062706669340216396582906960797509642291231506248568184758541551730630537573305516341783808701349882269513617143717053164747657229823789544859500771726375469871803621329875290885019618451399805820391812459997190037389716684645406881434153826822166014056769779981147493893928224853107747408861106790160436446700492803920706276275457757362304546952807846404261646553549841299180877757935676641404881270053294265652752151646517368939805736222038501069895076463418865299704386336587520878226263243544315336695867777973355489593099439724413379236881359414782917262288392770319416778294890701907748780127534880387186462289299023290982599316074300402254662760486286714447938025214800766901543889330405260676890279328744421658216545016529343339767503130413313277288049148646706263801560816600500342099314578580492060762117553954862879349978788752135070640637995444989992287243309874683417987855853521979158283583189639211000103048657700399962685103583339344816913592775612293988441344136605110517514923437364424654310742190672281317074915423329913492424472212014681691245723434127583554319060945330100193704942629037884955736572644858321718948810489183793399570141280721965326521443314169672025942622100365209607060557292248376137400931466841351758735865227017236407775893194625321304228556953826957470726299020261943391823989823245945720129391722397105518846127977471546634299275867444756120390158344091387612048321311160521505375745090640620034703225615562736574221204849704343515559542818917571540003293900376218444238365320955208855964962844493165833018083920734664408182601333503451416415629733697513903219836657916809085603684737915755181884771116348604280360280625539037684941393841831920870694660743420404927594615255576112556230801782119110489304968002596014688281674763970196447457030235203150319937335755673514831455390000201840595747379278199563143360471252857054002479955994886866521936546767777778139686475994589684391614092966529539574386798675680998289556136223350318685212944020702774254437372942038635345065820510380231181533044733730533297677998848596165027491894942375721712137826725893080695326750883284589306208667107280094741495557667167997005666564951405887468142683622835340081075984513106609919337109836275890630420939091285577676096894631298853201619249937440073924903637693918681213974211313637719463781428187944886452477495191588841676704805921995780111908485559882432924673099562963335249092041530661542926234754271631906938636497787748902020736137923847576200753291774075592847304189712958154462869738523435547925178243402213382030369619418737923859214581855462796048422226500344795446870690472277986024774799511220569753622314756346849828918859025839865782102098970159422692719958688419953720177482685233603987101916046476499850725771858907682770929628111109152389887152016298184441986486944764268097524434457725048825187828803064076129083106836012447787515082169656724417210090117843410420046211074541442366786791196494238029099825795417513754691123237424070060842943576527089418626690462625842395018566747606780159978324369265068243357845038814445238113762206092253745549179289340475910540078843732574592114735854222310333922338251190979221214000967454736103587028421967308306372182620605404855787445279236834553598679236242179926364195179332137569955006846797139645601893319780881215502407258357807948897138359002063435699905882386626926642433386145491003427690085811920044067251558629371431479408945536293166827855262657553292502836355502703905660441572759232560054094460566884388453515793797600530469871871108351669207665723038470383535344018606262190380967986882399193202552973271596960294850181848889569832374936337604394123354434365289419552513444150395374004115253616410210021672291543023761271061912600851523259520745950144184957246867857342657580966582005017601751257999186365849396529060942132206823317258294794095403344943175521412013045981833582073489070743659959163900492016924204280474714463763515912009092204597815392799994542701761873121936626149209399245797779517955884162484412128024194834970608820163346730752314773428883272369087473703427329632603802601139368924616920695584402785335111859215501498327561682422940139079938419968140625540274584750831731973907283122508760888628463352217646283754844345689459029908271933005114595426342349820491996754405746122134429318622188853401261931383067065088094002724831626986624666875124589320220171854909212975778557896506706638892694597527604969076437644678891803366402724387488365295991683998556738829214948863874503252418531929969015123903800028764117243481329941238600316100327316389895554226539360555225968994028013250497736318549000737534753807722631489488339782408446527621526239984846833255063524637780342577360829474242839035959762115470550311518922381092598493054328932325810523046110707228888999366140699313478611008917434734636085103052919669983417135584207233895961899620484499550465323294719656695549067764736191927239635504065476107484350285975578401902377878319446294811414890371487901587512770611312328049017573620848787231769260312024144011337342099088675438770774008662667258818918512438576124815043977827735445066778802083088282476170533779290983347502398232418634368668571295038143240862958186463155488294220820820479237896181245107024985570011007759824412257025484461603054217289462071078667282120032176413172818431936117976254448826763241712869195673252451105988763552538136672211613012170489559045252445722499737214566502487804726609865903574554142581890357683403744319774123521605522171903036713092160175701507945283160344643286021577518997319529689113570630377702052891385171641536877214429510184583520140375861247544687887404518224792887848896738399667047928632453306474453501537598917143613614864804106139774090268487891005365542129860763421526786214462531176325028699125193706493878434292476683228917399518055709228327666263099758629785084840347708767425195632770304984210817036317988135649634794052726993047691399050579822491689466259250229555415148953651835136837711284344624924076708083424739170681017408399120106507379545290331299740400027336976996710701606390689524485551049172831838852116217418631815285940665462542166712130105077762255467731193486251953504199759242694662885976341283761136463312066629319491104931889607212675366142537321614093439123200204345365200292843792406012464744817557996135995851957634062201521103720469088767469484543988953989651264685454522816636494471304730249683633276422598578026437560645435452061668074932975392673564184431106775524256668072569220657172106266242249647953291227031588018648446976792436946380923635019699988684555101721442111185083634947162959989606353708852127949127997240014365653220328869662007756457290974185885423381130714669705383396497041801004115186962137821300689568141991844985244306381789687506452100294892708214443748286407898775795892323943567760876578005103084904266797932875914506112245235528684257192426350681312495329866650959760989590641791802266585829222674092596901152881278193906016920044793852530700433676570659918232258799702885314910783140041301041240579949075070923200395860760004506623904451575667297445865577765915508426329780941893872864508099039783796868284636740732358691987738426876935209241612235197960950140205099214336104387762576261814186321644874044104144203625891776469778848215033531098621484347944018287990262831324669918851321883966813687062548186689009059143576597268751071686673660277113481028793005997260822278388550131771488686842669367741452641295583668450215928038217770086028611588992532065581774253691631461021582320482314272582595952053951779635124604361773611064823778234568159361636386584844955683763002478429890732965467712315359872993331016531354197984178005365243602406582402983265247312846693058892958816677899821530000366366003050914048173983840043531868152710095324767134671927861119087335338944490442328587801760265418479093735891981382599131407250971058799593878944541879838269340908126505154551967216281737876168480974315130867798844680347687942093042146348873022022673139150907825340175513431274477916935846658274787766630127755045901029466984196526539622292790604670348699149536441509081294987167802436924709661205225601406232012114243592166297454681462102028620331827636774539450666406300754740364585915228007808838793331233294781078452505500950925523372989221359509481348201296663835138778612115697915030823246126779935461695483907064528622393023766993193870805861828555216124704318906625144327809428378054905131661876620488932194995827599188530091715280867524527937532666353516182536380859955078903711412836948929811432756273729460304875754941692775378158090427391889263180419363518760360509137422562599308484801232577085085060733095815151084124004460848050095451336049376536998438083429716426684248842427953615649564653822720096161716959201356808682477500716641361779866255983065462830953098540958032590466264375150303713746342057337132134644866690744452093635324490944749860779911135563146688971354573164814089398593989916988361542057460926442740047675753683916535785329807337006769581739604669274797697613541828337000791540230577197593686369550147352038953041373601520091152589165563726626286101815766301058084143247184714864558728093122507944484484269852251892647488120640705240887693779295929058615381474995834019707735915491819385712629974089302687879876335315254294272206997233258295214795891859604981570645402392542051186926052273185844452803771096651141838382373440396946739810835319477515965332826323612443945548667492152335363658690364111105618726264376477246332089881455586966484477895240645580934021275524074774581928261959058370944405428232686338788919015115748706231524908841849931236180806394920187246413661314743700900092498681557598975882813182797864045656437832111041148232689999886164321372216585801984938727256601539233145242440754570258629470641021916763431657316111341791053113824796036254182553999580659620559353852734448421465819182020202489088575025078798982198332716866486029442916950286906020089608488297864675358272257744163987091746885949119774344081668541925693532057752434250161416814747723051631325350429581728518774200833799371625258923968147209775209309030349088749989212822390215870333967840845175999861910073861373142806723393042461798930816361413913442878815575702366416932542025693832537014936022225955299389561574030892380245846238657424354716832887229889951871691527773626800892946715019946391359400437281876488633651838389077922356510350064407422233883203916018247529850104977584275910300649852189181020391255502529766198592391242592281311513685156877389746750226704566801053939600119438962293062210377210500316608947011783932941866443292277289287338344116045000245028502650300741510107422871666611999048396369963284769266873693248757537566981058607606411439450047797885316145985406317876068091122381785921184913925648225276697466419171416387466258280286203046558826038961247612008691977042375677178040737746700366754802743207625883779781158813150897074565537320574624061908313814484394704726601580918118859522134244340887872149623083313787822973737718920996810080240003732734444493478422730656998429226342562471629636977767899117281444132461594878348986382744802504010249659889841526212204147715638671354159613236082980312758201655452846654155323700822771524664853254915103641108976092431585235300411449622791958611441026025022032934225511596870247628674081622412623636945967708129228537188295765015032867881854635070141248884012254788798627325951017660607354746705856393462944637706739249168319851205758193851623071957029564332930792753968337732723280859612758930572925773075487299533778343050147972473487259516344967796151434636579873630875097821579268594140415893997138318280864107231663647632990015947205074542780642254887562648402858150948667033205505775572491995485259351061539641599243317409905221549062141938070024079035521370472773167942126302261835006351235252241215143722429509537060920571324278976997874305955970849615474807472904520120616877483376061756118791870285882290743770548257632344654400512444057431686966941536559861333514802332136565096799972234371342137729255574069262198500561428556261993560249406544324842101625683511493000845932297058045221831620375109165439476927214683839528355487363422029993678660917149106226105185944507030911446121291137408938438888412705998890318917409229954377473052006401281055723057836929132098093263945189540669439409829955502851197080246817679763860265539550934154938966387509544412664740880755787065978041286838463352767061871569493914270191852378480128684243690205239441788034924821213667589845208843805616723117203315395018348512383785554665944654115204354503240669112893535685536773676608036765966463311888563217863840761263577645886613678291640966430566486638622793968872402093526447657333543794594339615798203422408498570369421596692024551455983096970072906214587969793075339623530934456872374931277243346312634832118980029803013827027709192030345037425333789993609498527594097981949179113258729949452389882851216047454280263669419929094810967702961386896908410146781150825089987869891572149717034676594879819199422517199622134183924035627142931067080830935044110336022721153725316404222378410140768736136069017008274216481367112178545356637406396496395337043005047313812680701799431027538921094005333264494295640356698638116778291351542392956694408557396400026538683327455749626545832633181137640198595609572239684448606295805445040589506866939762093988194327703205258476675738094942511889102661709878589673965710749099701769550449943046900932120903832435990049055240371294858723477502322261418194071575474890658252643279754227807740789641386599429478868812724225694820140070656623957417981969865231160330194277789018017591485610609828748748440610400989317677761075281887353838600861424703768524029033767365082490266719813638135775140016676540875364023039660169262381687191449287960560408251493143564468122680046055528934855979338768429616641835986038087622183064323839046158809512080721660756135520569185097936850153048230229285574427042523564944178646368460414969875914345533687929034129259061560454710210794094744129206209643255141378474806046184290090496603661384533318954499356681904819974749699694467327170720195972188253590550642371289162253178081770621383916041554832354065576341220029619504722820518297533473818421410773568252609846124877236811710352445592162358066894751171971375875599040453623626776437663652302739133821940559828730639789839315073824330640107956177226961282759038548959258771464897293762856265489260202712102491696897943583006300235493527758531603885268343626748271898474040511219573935075297599655151116387736025148616942420721082352992856722134562938696797332567619773633880555398023378857384407709954180968444326925733148600899682410230988844178904706969978170796291713117789143630885314145538526419632021437807876609261156858227358147212120939359204345246027417816064830529719274434553166498387870834737778882628452046050552506892679631429667568294081721641301066796179345309462645183314239791121533596126729644983724526651894393494037743882393961501400979788064339315916653773889957249151633125542661493152894849999814850742244161172695358256688025523797852129286159167462613957825625159617718306362643423051944457261316396018195481160757185255867557378801671461506445210463704736515651289786004252287944252945097891431714317064430550659577630933366876788804153014334971303634718870989583590986074989630961704725294950221976991179353477578249237535781059777109048013589878151347730661538415425181563617411958697999834833271122960887751216721972109738476872736147302902638535686985701686943686655190969276393782788248937680664384646759865159797583506658203526083394594295705738551685647740461990824858173891438526953982586060825804782312972507943136916509976265066830763724523739732446494442239686889702679343977225509671170938221230916862250480478803913237176759259717863976991938090975276189194840343316856636085976086123201937924679942328237141247895903983632493562041733607154764209048308704620134355135751655439167745027994480286594184745908520604048466371530843696122213600246111267807842002752633870779369506771748625122828835494514260355305559294419676528909153721030445704483250975357323465678419180312416580476022786077187861901144788690804408876324865003383034663363622230570987165993283474994760415074906140570724593509405869146647826154400802808573070084510739516081254540655530926583205870044205671568846734017793889076806870811130622369694194934026094511734121532437860572210539225487171338206078443224758263283761817454090394879821370289094705038568735304475603073902065994812772534519642199517427997474550991744190268145215051073771401791047050649425681553684462484228042780391844527873472568826061575291256473768147746223244753740446059356885970619631115061096279347029372774887709542352079321957425834378001069702336566618274218857223664319627295843290716502597485052637561129123764502215597335003636962241227925141725492091837485531428876241215563284772324757820716772305341613247476566472522364420227408151885592980830951612928718870948251603225726578713112912590277878051897658149483868069943141426499350859423058728270925401914226374513086898631098286751098885385414671657937881062324899817763458612620619165475156315051405372143947328677803950609537310314250850701090286132294143950156483533324457278922002998896700417044417090683771931633561903282466104408450483794766174701453763208820219187812376523019150550709969577336139349985517697303582388127302136572737096679656668893043025744891762342566103243136482639468561111464818178898794298165570536411064144104580941611593594006398542669590129349571371535570069148095793634967342741456415364657300594591934871918354602917912909909049021902586617173160292306969532049814346468427696100050084856266347820781701556446515745959204967071868526589533973323721411785626123905927572517024681651763538041103564198598097079373731232324044008903539651528089957653681487140160984579538946045327401189505493817443796457920238267323884754240224292019899939180205060754567627267078465357391726028848491799549595347830241904138635888682099051464872873298541875372232483083329266242928103853791826672360851057106049894710160520889864119466585945066493156107777519782627164124173466178896061187648170833645800937591276552514497233661975402118894298196906301729777801623036563338712426537820120238793091278459337161239926973507335061805279496267731672179709381006613474343676879829252433555865115424778889372262108130559436180865742967465352960025954427741452448315010850481327418851782654417094238415085341477685823084108721669728825155319263988879677403120925960694919756431734975770412837707482635282557165551036726693940091858463764115558847321134472169659211231511670273533932982740117654477443336847658446249453257859434686253517111887813080392899037995170619379091958438119033436444680738771244316487424585865547556966628413581361445181318609642355213647785569985576356558596744371159635824236529811923675966533599710287636526731359872096720033113640634111277176865942466833878770817652552356412133701733364166208752687040496868334921494857734973819056938896895150298524330270048056186616296910265967653955153730154478100237232290459064249186229516071529844472161520104562830810349818566361976266400383967440517303867368485478562331773627886312299548219446081151740756328699847912640114796771135817021602119415908947246277998515584223554407822511637559620750093330301464905853365322442870237046662310248747764324736688438475722642843931123994863233039721565883247668013496238034592746541080609711356347743981753842467585946563915187040806131671803785155317317925528248473026447382583788217918008628987310814234660067658556051492453278611091649721870305962715979042293154611576412608068102903189442947137187878257086245491301431999475728617372974359550042607791743114310710572512805117641642335507992493623236302757399051641131111600475401922251289063990990566209051191252254589033069920731958194074169263455792969423308852883291516353495764909261081491957248502179191562905534260314638739768141975866244326686242728655619128686131982573932556154620510041895474262056522867571748640395092546035831730515979733292390343927008695737179668312328996414431365087752519711715109886219225153453089904089250730105365973408868089887093718360676861227379586639867858014194465127006867005364676806507512464968491709661875322449597930239321625921877287268269900891149190331267161253172751536601218079054306315071996260254193749579037493640175000906327358701825905367743463050533397794021016419372697774556414267001359646226830263557366945669732560990870693062528913839313757114885969483568676935996319967527346317680219672220795004503758800271313202830758784558812632431905694963675109278106658982452083140828618310616734635345537697941721339988633780262190805710828075791454124264573400946904313858018725415776948054759651462435566698756973918979585487534228483329999532971788417701277014194722643077490562971576045377558711176002124439969354750215680101149919204213104866279909341271930525187964585806216958765784815789859274914812767522443496656767445853486561635342132889593381025188954545142673060916116471233960136853467407550707371923439696130749511561693894696826136349455957268495767703536772383754384635917942915739354256945534450666151201547861903764696950717230535370272662056196479100865118225456697522064245264932642405171303867678205485967308764154361856848870559124273073431640807003816524412326807457642048189238533658842411864499528478645964997293311307324925897481824804874300100963630566744911337390300781249298686699826061667529106858721569699737884979211567896517678757487748366946379474556361964692617008267876585658219686781983950639047445417277517973587179047454871103939953259720054702120795175319156770380567121215915979363208966102534773764007641752327416778597604626866535981495521880685189316941026058111595173065983495326351037304345459098179305605991068044564402787150599457154083234371796817771978400069236564174810722194216813540970306017109991234799256948615346166119004372810392265171014427946252656629405233474445844261001018102903335408404884605672740377258082537796941138395340910698313846336239565717785109747654418040753125688590994013049410589772854132697559814871584245549612563550389143295034990778874088380136209486458385846432034250703606666657483248498223666959785709079593580799374339929500876491982632307341913797117061633549547976789277271232147972731427744343048926012035090152532897710871912766755490258916443909231602724603922168901326094283967995526261721810591182248478827195673119938122339345952818502610005799039959212184437333994604899268568440558284462895564322627851185451184958086248940338486968072743597052538030733668372055355593751429693719645220904592453569154614668603570876110438014167761476691635817494967924986735724408158649672755615483733674093565766641716054251151993781379044080914190294660349685622435852925373219887014153325598483406356907559402277383663539980997540971562964495587374628593391983776128026929476482848258212234444598504587208932940988837991164364957896827676671363711015366049185291026358671957724979535254501552011581132614062895621278463425781503113314790320353089920149346345504866402340409405512093378733791266612533829344870902640936232124138535089832115499102694461769077867761443204445610158657391398872325419873344931995827310908033082830511283265558967061104199836520245192504254869474537860535184111047439306626344710333527217000257195789436670092424035867571934801495203731272764345525616094736236347428563484680200319856434908039089375022235022123375480844309335368585032844506391130436819520281878221106086194383984242468763226059339896290571430458973435729596817191717561786180912458773570327598554545608652859540080316787425247362326180716777985136743313953567655611080272823715514158406582011438621417652303425303058550615966936825715557655903963162368326468192159924785391546314651526438710144148578748945605191199510721423046988888782602408281170371841081238124993121917790332539716594129355024369268241422425015957649388940579604585971553363176971546520715322190923247116818956522993593819057317296241726587772425609583024659523889496921941506481788587556744988289946593013212316698370283764286741788288729169845673934106879688527392499045735192545661721583674009662848436104424399608648321895626679300767173503686827000401007048010450236908732850162917771052988912004796441821733472399129079176158673801122693816520265491206483134306012369642281326685967357593145717528668244446885195171972764335325666518666237674450596324865234544240593215162688724303979894055538286316208874532981098991362494691338502721242746888342546278679461504213332480572205992319820193393657097913360820758998509646376407089653165371347771552518944707537151825035587837741143951264836925736944893332325550077404481974127742348540724203514268833639346563305909847367910001768022518439397898234387378259733848109406946554351403760195784296052714412943043544535821501149432421546053860562865197231161416130265551165760416822499231175809448510858390636846028419140418779597389937616153835479309811610848894828180048289770408296941971916460225619013568888132317081165658445991955759743776996558477614410429301741644090390158039720580124279456414779640700420475348342505410110998947411128085030830548998562028803593815449878847029356593336395664747080018618099092270190492651989435877694669525903410855214258248935314435657701648283786413009309014606416936956956682551104625126803478869361939203367243210246367714539976644163422036178082979492976974033669716269278391807578018754062738120593043243608317976941816696846454283147910620439770519528206986879985927979532947605168888283689894715170203052570559307049417195019342275821490553469508161830963474315319096483822544051865589868647394092754126695505343316077912815218777430014743547336582767650552704003142479643519190616574126848152283858858797042507823272817673809268495118846786205183836454717342573339785369122487627184083099309702187194112711479386165612825108592071295138018282132383465414031353169406011127233040299572334818553764108317348160985131449079192281259478948078106901149293309442390538675276687554339006218804667941310054099394005944281150639890320947212428090333023289105606392145389394773335995378707982258981893455906606151170274262765110517756631718916652984917250737877304327118922962329528510825679803708144524066993577775217488401987076066575944017802960594312649128684909449144804600285607062524131262055696530945359974938468689401707846488162245941610151630188472606773653164888364684832562764320938302501826222900548117890813550940141592180427651894575169802334330105617596385207962932702875070389908885839256086989129189985576207635465535321897699139207755971726272075497860392020397091154340475012556927477027102604679596274791223556943649233499417258280831533946912524009076624482971278326652386607604729262927858337233764408012030631097316273442710281086762059868871550889471026421527817685550112449904992684612330039914141188647026076837389293996120989857344371042861283804963370091232875875829027315948863173378079360175739543657947809776084242451522538707844248112382890881309000690135602665866748851060901449058428254282779054189760570087292084643147660153540542908903976695221776488053325234007196451415069635608797565686084231303409572735797775682948021217471632311216606774191858510704423963292168908044440639702644629031435830405167429480337021982936453777977422026253259280574735966187542862032786631397330203369433910647801381685367599316127423877227596459654814434849777123038242795042626680894037147862167808715277015971877584793178047567964086101657246426008455356093965922024411236092476397147887330339075090144046028050399395494302468980799398675291569587451505514949833239367017636638811177949950270491892949628369292863228299873545977002154788960296903136556552575483176341465617398046250424709177287570893775797614418685512998489115733703349696428165920936921500250145235318137112782078912296629711856168763101816531043071276936851033770157122176407019220441013602070105827593185845159310449508778850691878688656998367484318569812562029780634579282600912270189650848280716193314032163422488231202600915475021687631367765237471340082040932054781892789629587613978405763546409494350760271118083763242713777745278082768651242180841625382914479935359334529475318857319113120113490102845127609428955671301794959885573143113576704031236890131800480273025432462307572905748855088422187283935104858255441299536741423574691290459485946964521485751385934429089789857325552825673815753866599412683984594692444740226331422018889829965913042134609222149283114493956946025653091914352969806104129701872542517297790227853678483031071299526795776461840189274447585909882694263108169327175176339295222101127838455874193333378188218412148539160960567103513069841613494227895907687230831594262942758339721988663676940514740525492321536918895630598416645251844923077490611466253837863530966617717825454397019614873425274219003331568212106289716578107189862918346161113689542304025243045574047454765326448423057256588624911789692332771707801612224112721780558685323485835629780699647557319123505257034428239507740829929157000350202332608283091865029460394620955008910796188412807471673208584314221371730765460497708040766335499483105808982266663166696784191571174428103592336372419604607223202762124997416060130162602796048309217527825441478763569116843912687894017397863522168882276219434138565597386612547299313009475626666180014175215455552937959650785658116183351952856885408158412035750881440473959603906006165065979032712044452487918054354028045068074749551662594900328393645353062462271369593535403847629962123218859859273579377454768379546329277605541040427745133638214623319046816609331807534259486488120068731812217513745477189024534438663718597137938013288784622484258754570007852959794293558248964682898521422977314384175445112909834633847398803817832465573076503053186335444690075821136464648699313496990109202770405454702839585255689678239002536979137255695289282310588547398211611260984492236404211652644407259484249075016529096630289876611902277978061025487873129112147092608130858566707124010237993185965430305272821864139654678255328993749471849048574478829483734702678251255348037257464577751944282175252413048417845018060097834585072826489468570585282798586649364396365078501005132982366603373027347847242227161585381190604073858693034706748803836354194584541838199999673599088616178845609855125100080158268177210564939422127682138060984429938685305428204096801659230321937348940172743894042233434527448737222243606830465496688931770949568623127713719420514575713039436653634049653974259377174312627186515430789485504979381014258358735098483175487364183595395005991202860510413174979197720382338693276320415085524158064781411715356122780892318023881462786584324915736072060155143949276779205731837397276277404698930715966737584616226174824047709004948389092525765477172316641078985258596799123754771487224104574097047190995033360502015113865870205784406995624440624589095447148578121388430694265310402547059744051905810988936660124744880255244269901037608709228630068256652935933245898521456640075787195728726119544814340329748913906479711958436040693675213674373351390912148233561017193435632193334701865152680460936162478100508570388064013337781515623592016529164429063136238346581985350863986350886131208171407113065301946645686557145315967564877081518414004316646003403465168949082016090216167989625523064095565426728230481999821501499214801645192368663321166659262995074985662638638564020149129766407358431748887872432815696333151941226530527898083228227507409447383378846962312110708013959056965629091967193716930771296800249038570856856504228758113094756544926886564008191535191142233843898790484842059597263862190215157166576030124765696089580234958681723763687204962576496221865961793864996715613604607273937110817606715367195849537142909101000471261544612596190911490905815049523848158534124234104106906644582205325145162755438414685014460870120266219090986241167905635625389892287814972226643841247168530289316647319184112037853490834075851729236643699587670198743342712845223682739005783436453388126891145082146855219697268974344757910052090405504373431644394741980151539489055946586939146953210394999718201607800962106903606816580656493832372197772579288897397607870496591644909787642268423192344745016385295571196411634036068914062677999162852776013280214160252619297794015182978710747706370205666427676195871786706966420710384382483021302432964432461889424227093021995980657706720156338430440408782235899373960006700149367362261359464082359268737933203310875939231553328876846339409893490635364053899581846208539227393180973929524693777366101874360684867117902524941108695415920446232747694695862821303302081306872317019889992500046237184746448808488002013546743486569195016133003826082863412821282295241383350558654560444754668052688595462246202249484824749653892395746928654164127409540831456056107238959974974900342446297668336985854932500723267665941499553301081287811435241420055510280898891838854926057752048454621837653217074630023018382251962589281952882441860342771870667026648494934865332790118923958574620907569085879436197797745695390492159800903565182464505084179130492644112760035853712173405241146365032801347172835754772550488410699061732783667710258707215560446645469110540573038824068037829642227196146956369658475035066314937619467495943984882957568946876846985290296795377732671305940664707386636061721615580838805184506386635270876341847617775631537867168535536869625557026846759509349694421916513063062669485239648556126648808111274807220505564194445052776122563656910124104994138791049213151372362685799740058078532035005064672463855400558048862575850197814631367530230428154080592199636051178387364017729748249081796048461490048258968595851303852057272892377974547181983512378005648176704473591858593523612135409921228909757223147228376776939711819367621856180074162160480162034103303459689321164433986765662051676433671233612236947037179277772732040953443460556764031362426556038962353197032210304939830802477469041401702973448311585239126077585960059228125315196619896738907401606600765317864370234075530543357841335633471938310828696653025320524848286209305902668541852356187045823111273297158346021263651495370002813530878350769115737469404172464007431739307388024544017354227096857601321684730539303201890909854740628732954696110579569212816555124358060930242897584306284942919157983731799142226298476225915558821771306967266220583269479470237902027667608280405430078888953237920857191949330326401208202870848319220093151471624131554867496972068563877181198081889519331176214714334198310548517901657219369756373159258912396412050528123069360019406942194320078134832062378618077383059740512426816207824244254610417591940597202565746726145648090948633689061628992793045772877078089615875669686538029963139544933028350096133821005846133783985927287058779691819377019503292075188709215819341329365613958680298803284328652274963747446748399346464672518694291156846361043519375116920767764499425489283066169352004131922384734738012002353098799278696519686692869564094391578103977288645923726120017920801157608417275136693384737858682511349238493901211835016370163477807395702466273026948099347361616014098054600559747997022336795109207129620302588904627505869398302204245183586269683281752461528570440545165402087287732941950059582573283012333762512508250145928240440561927719853152953317249301742195020733502251820973094705587847888786980840651395615414224688558258349045959489115003428411800278277626156231425159418372858300429740633116415413381120542930181117638063795267627887220564936547760083287500565321025530733297977177485070839446630301163649174546677466467400463592380901929454963580178535108987837887116042705537101044392119712490860355456106509814293301817497507923473684488026165427515334922827123183602541506120471906830767836269386960941780592414916470492716695771075261151935640664673730280427494214485693239306529339133440575713559876966501299539665689145582471465481434421888703209464867279905793781757550662831694782391678650868231225051315492630160084734122531029660488470573758765635752609691009361906246263958996816425405905835397688396591536783489785411569508194021196997572062851153740092093427182601647879813616593802417982078460531318890254238681090270571766102707491032219895974331781146305552389391862589304753009161883855991103517245092553586915249988925019093391597291942809167579548505535445061898654468533892291754291760366396281732118270635391921843149813862534396259550227589984255480783851601147661730768980010752935869011687227002300360378614793409877861140661930924264326571035330237260675846448699972788988069294353024515504580623971905498105107407466058617073395962811389976738837873905850062702469732929974974673356806848005682686217994694359233491543611113926040735704448089135323989569404203145477881923468240040878851502224672250031821362933454043766593347825357471033956765741517357172691422746791184741746474008767217594212131525539506939154997593081875262305532547417288140563388795349551656201954753472536018867753263397433259319018601348500873288520857769386087373239515454842284012177790122291309247222096069571981263635657947028468584484947297332318477169085635618020284916706981662167738676622122616744339197462498274986382214221657361452867452944846401857901644591425934568472854271585084702933699035526499647173324579437970220555586036329396278659096640232208038112898188866627859130809323100398903068275736019163057267422584980629292434598565569687549903933912644550107515946735039045187306119650664539288999214797560513801491105756614923980864855059304214944202664995133252634770714116126579342478846145398604984089167255244191180147890812093763478770178041345434824839044135500661386476424112207663508293520949197391989720167229769424083330486105222268343625150513930727179546306347292192064293378173116112405378553823256419773943804258766731774608591969887844543198951683060164418357618115445690106153674379661162426287316688860587543309272553585604808310259652719421780409758601472161743628790999794542287735058229341191719627718558248097426059542371441609803974049818580514978414805330520460218112811227126871261240008811188629575618782780992590771812352081273676933736037901893846266874189190534766010513554166233168876935549492140370932929060554397950810926080627218128120186991489815967775601910000332134631556196988645683344487358001047755060520260240900869316043165127790140971559229660444785711366148748751680828393419799984262557157995096177057575369600999863554256222448803675038429838293609433285045200482596167653014072957441166058447346608317053405365546052409680554435167787188517868168231326853111470048923083500289735022103428633890552838523692718570543847648193802173866836764922965716654737651654964607739861011987834876739265440271056717767044494249970755712457745884835132267647896290658178208123402442888044123175276590354831314676020147301082577902730584301253800156377888402810636662147902709401157983026256652011777885082090349061683081076039605567818163051395599736542526691284896819881157217396837437985015566974515237525011850241960684500836633005590465058403247778050249387731265842958875981701778995525216750284725239515714201802828294502354329934809926779467168353009006795375262822420406148081533846030872145731205116217124799261419290583911366243282589160256895793523253985749912449193879318208938910312850153723664437752986982872324706913098406393634103857641072996303132948136907889612525757066567038989390538282663248776776919125835883399619849504799761566616686875553434936280227587032290529694477224120070777528740830857652464067087061415775089160568016828673061992247086260236074659262105671705479287359203193437575196533099580086265892473753112007411564946949930372656682200777491466011526242821043739716545925799024688672398688298504119510974918362312979127597559405492632473312061353388333018402512692144728515655560220660341538932668444401430251189305491205671918208505217747002966006142396927729436559112582018723664858273661403623680750741709913729420038519398467608104587203327329196096225906769809535577855462542270611207285951094179943130498798963198397307367152280986821148086225516205898912270569391087294623648130777547102673270492693166107994362910247262684075825695418427383255649267099738552041093037461697643011259098117681464709477656326167667302749106140160468480299740489126249696448124905564391462986311352156837301751808017449672807135579998730825451593045776421753641598908839828312709750747328130704390360758242217731559717618113913004128695712917757284137151772221220859408766830621323267849170815214770456259340910629507919879604006294579339699004735022947409251562098008962845313875789839916946053385665003962254966284097951963486755665232267272346586910072459963077186540624336773912484655731688070003066946944844193875989649250749908461901650289687558526252173377587694668611180961255790387471663664878108413439064899940310041735013961886988989178141839909312695885232533756360539806394208213518556522436618227549871646461203621367796401878474449113290741253983293369895138073052429048410097496712033632224903674664161528255720510254036616400613442925339171260730404716787122966084570662437318330148299840222622943935261372624255220345845510798146752339084810190617848226542298330944251403188485221463394089283394643393680089205612795419368553165470779379659141048137315303170280230578645533635047151779769921639271027846782900040118514929095897850912192450973211935794128450768999223500989849059894736954864269990366717480965822685638933143347309558981032681422896217747940182526082753422963335900636564791868808125027989888455279794143289883485625073433125742426042351598070371925830856439369915856922954492960853886248990643243796697689408045571403648774963378568722701421840436155643173062629197166049409996294943973507888593121806635016316261236869428584626520227648685264185923141674671534493379377440734867827546875921097843382460356158841899920958147541091449800871627215773381888743656994641388010723246170315979532410893982210886370383171202617901533794831821641967043059335361263703375889325872937145349534619589040899676171222095662676086332038906953708865810609575426454538363617734799731314686468334644664573018163130436530553643026175191105267717902866042580722119791983093431694446915909465074163189431217652468650419086009198904739370390674920266709305967704209569187624666568334354240575476442620148845701864985407216292344144191752806559469550057439473393437830628862612716094530537589864291264941681124925144185010625013915296737855778737649110482339829637900313133778266194909975463761852449969105519047171947572309049995160037521501550358619457728867179195996705620154090967541872751815599536455382243838080140632326580166216489829525767809452522496473895159228309523684704676137523624957021149539030439018860769365576197979698232517868437079116502017726930459781482232501762657578085626160842444247744674615096013347727835176150392204873979294523268260239794763107752834623031108070043939270320750456253734367487790510270848291000438728947417448647616704667063878680425118221155360920567673857657961078104046357556785011569768574935300534058359976950308209732949795802739164184075470456829723848641156286821686458271158394811315734394147139229523800523945267573342592797647606868596710328306989690003164646906280135868160065352502878860772371026401780608799670088586207036094384129377487547798082928939394378858613357346704629786636871278048991947109360946635317600486810534119679137991220764047697261011772310786401711795784503466248047061720178824436825299818348422154057802885653918180732538146807415378344800347523439026433236910014232433362138571817727565868521180149469109176891389253203834583077775473662768407544689159452275726551265498841652048935548150356827441189114849762697194472337525849640567486876567121221731045803077985180865156117955058315557973024687862832584628444474251216882899476400982458198206231965512140106613473833399245879831660968668517491321095507013140138432684378696485400916157093011907762691833786387102151926543930209803745635820475274706155566782807337836851106950529661237124906024763538183404658446089997009226407412380242987200492857525689878172535374499413744243896033582721260807530203251480951913039752057690966013237576913922478824078431049939989392737984320208137805586573184225911470084983309326970853193359300369833577407041838807878767359164553256804906833345299175197301589264948926951720020536363835120459184062113023200872558587525695568255810459043344206600429996291713999191902020351617380792962242958789428145638916798364741160235533846021288849638304194703596015923336167514818731818762787822424622095640838615203166951846885692435761551901025638747960160851929957250150810870156863913761935986011057868288410442159494580040721579638250681237536067760748834387300160374608025290363233045673061289208222823218341994813862192310935312060336248091318898929349064731521952612510725774027595347080304064789745301830979428246775234276924347436154621505066341139971390242481435889993800133858842000869251812674651814806348050296713537973261528224190833690114656786096250629916618179303132463799566143798904523219593378357421942285536211682684364843160240424509898986773881315743530137765379063516356942044855429161570340941453238867509561426538618178733706041242849318182410374882289436589689145061720148394295961236761534537741243030397372019310854284193129566202648605549781476331130393857148777091721024286732269560399271798142145946372918388924205849833296353471239901676246411603448340744792264397029425311834673819546659478929674667252155278018911457822823136272467971652824623718657684309693951457640945287335104326465824781767060632021876847939221200413919425479634378937737687922610705082116478508656028432724453470922277129822047881954679056765764313891444790589514475932226904849857287866604260850672152233086377016582341841639852943186551650109988888339307765742205491992004509710986329091382808183170438531357240840990919118996874752123511228100139264550728980559146585141941858855219005353674822680641955090009361427702023482345792055800906964765779536401766507478688954525251363461825005827982207949130500242211690127051340979000561904225505324590372123930051245317047915767204347508392834449776476349953744516489359760145971258623827785048997470205188930068788393651756841507115310712793231199612117430385843156598339868409552791781709285424732444953496582836351505628462874069118407867688071110367753508266359655265970825134206666379731908236743096787656694074924570250308874680434240874562508890421407029096815960043208936345908585653752632522703345488939000107286605541967083540066423800853343417460224831857737607709020373375799481340104894305855422532134309194582012443597508369015716027517802025362834169396519073934791299537956459069136727816199473757337150001573985240789649419739876429467685245920400766735389805005958082526851129519118267086560352647201302116174870816787359027828832980528699655532564895731000636099463904074531949800966712214277465707378309369660050457831319537741431657826953524589251832155443466482291244379836822754219349670202574486753013405530894009536523888380854445244567028490107015945244641645578373530088787423587699262605912305614340809113787587544123588441904978635809126449437668467856745067649102787375371749372496984334319607218452753060151147475792444435666654142705053170451749915000032507460961201453265302879080851842812760348790322745731299905780937769335479141732200543899485086930562120285608040658757035340840784342154292513619925511045086948464325210353444762514335358955731220406164159062485045818037619282940599140596773807541373223008548357281786646617507966996961226872429142441325765140579591443467452217421966872336249992893105680456973952967437311358228271386937349303736514987918486220368712773184232540154109276134603728462750336774475157756551585018524506446253553767032830348323542063576523661456326892641567164747796618616875634915267732284867783215656035820041400051167792565307296497601625055802432396666623238684088145814193242158565821401580938146984410108238813691518702079854723329985324983082175689243508304440275878864612264485786006308900599912407400939098408372956514852034577855153959338229223437215803786382524269394580421680121704372126274637474680191092019489592891337277338814786322837219903385529452448934448839331863828914897102181893918349829535724946440878762841454232957390526923784797354768538539778035919381483156567756652809856582483463417313423183496331883777673763606590179008878470838914923835683155925093271125969417665072695074333302054359740677574455287056770692012580059621512842746174632897828503173335508904489540263364335465671467365511503323987221411811983683063978744239098235978880674954174081901195314376731225088229421368565340626125606419330077641341575430004587462570727618901039673262706500629708291425726456972848358221084673634354100268119679411470680293640176505915170108389638547690822799917178912695364580954526675258805945460290342475106357000974552080492609152686988259191249157532523091510775044336396496957169284964702685893534074327737113537131355714707091991475432533815425849361292708977891813223996663673725196447693285970948487824580491091869267886059028901048453885395011709290611318831012079345475512607558583401350030736194630520503896723946041780516071626695794224983881762569636655975965729821932631945555462833269780171898780911068902551122459915217196760668235458639447260840761148278161014916162334836548369801790647362287124239168333923033885001840536659570511680689486704650350529990396011078141753196376751237966485943554862419739149994338452784266256502987419867854078003452645100293496760461685344679123355140710472038438628596109542757438022131501629313075506965309351111259535029769581710349788440341500798079921739469129797723371767397147361875502177844266796708920627281612742424588275123932848957967390422806043177171730116471940395769972250519475727989570444460634795252434356482527874668039414718022317810494771893000087499483755954127493169503718420571640898782225367399526158996619955353398015837850246896032289750145258356063447616477583860591746544019243137625596112085087924125780339312130095265678750640376848935829897049496214322657089324077916012921030016474251371841294371962513211195748938990759804237040238195861180531018520191654954236762782612058870010175986937143662881760689374936382345388181810195545773476783987745009978133154286767057393619541265887708849280348149326535277343636098450378096809460251035030708992283312109313004871966205425534892158021084623981167134638128433949140815196543808855195213149737806946259558535754278998840293615577860342876163672922783760243692954335614015437751209331442019493648942647052919031264131132088815502441308659402151667246551736242242434147240600920519570969662050288226360592916865253016660072968204107972269545744612059828292109387314449533391143687815300450531371182324951313147945972737049150021713905821640466600551066314843501434363179318066896600846259467911764092821394841678379054247843901384693647762109281764062921893704912594666510770438041013891404020686825956360664148513656817708362353608330400382448098509438071218845279763852396164572919156026451746736008685768712026065396714267752709068679562803442539004066920958646428318085501643415257301087661856283380859144683266003752341130780003591477265089500779178919838769419983678198129956805160172295127439229096043243145622923347412073692333897768280067798410020626031977726579058267532074669175298369336710590511873526088168522239313230747701602051284267658830923995395749961667239238883964118954621505144903205880649358864602336881685800752470025579417240210851708645585956944751608371662522201408214476766523461612614369412348254351359254130911066329617309144762100918278416557390325010586195958554902296298296740345517324998194128726662339481785453204926057941966979552602709212576449546569598907396193894995290634999152889334009645039375943856579749444128080698362947747687689390098697594415422401391038160556927638408202402396791190209444719207789106315401744506667201279399914250194834432620309509078345763049412836768992419094618174299192365033622301530675177228193709454459121456349710535046217630667332628406276167644427255616814382917112738651419940394053524904212816624361119901769972169857082703547348902884818932310431988651429014938041354807949955647569249549027837971520401163171560900896603338187887892938716404119739836646194987393777336539968430182823161646866741559128325413833010138233237021835130481374482963134200077077856532401036149638508771984563218675092895934561493917936459098262532998315715235792438222120090166486458729311117708962013110303761375077007464709184047145597875394002537576193225970750360866693039773970928389865593597801441559787472603802059188381392812378541230242882965811638882877434121601634952674662056998469875849397059183657927617724072075686786420502482518311493685855014258387964124265414078250926226709992065637879033804129498910777263222316362186621996246140899709257948457068575267298811478508109510649042141414927501548420401766281884790230027243494729623962237847383019374721040549977984458215643125499670711276434555305267296081464091785981893743804382000351770654369451033078094584768385998245401822355792351569831934576772130653412735145958195414935348727446922477589494286454058273089600290364232859078596041645333050736367104150499785945761302057378131838787554487004353385051560714800554418336600087988918346002291445593535566801234291697461983300846542476720988796491997118756252300896560180412745513303872183405880869167215294632082894289882111944205970096792430118702906717652524031041621215888676839859548088241194206475165212594962400650611234234655922736547117995979786369072344363238606594358745481016043570775085796004232568904113540808407438254714937066883311472713056930471926516362127487222297999852343804899514643067999011424074209586294189114283201787813760873730271241162699715476679331336431811944681314749894543616189826063763728906675413692678882828585278204229264012056495494063085295511667076889512049635938149362650220674477763799085660435328198694830223039029179386145586021595944155288287220809148141619851917155725157699626512197697504582736520396978378532929098429792380753890145575739558113327375859474858799337112336084090590837710188842646210164198781774659565258372283382478533987135866804084205620870355173748885316782729520228913296516821864386891305613061339622298071762822228587936301395126152320300673098477451094542257393283602448253466927783256276446407157741371972586692154634548662216523007514238244823216970070001620990877996784955329263011388801972118109055058301832941274647157098356016216605665479630851063654032393893853344358090996056928057112871145528487176181770930793372550627984137027770278526049036006848195355989797643083297469724337979000517935531071285437744124225570906731279837757953354681601498488156598646929184439916134819940056156901927429471490489994387411381864947221818848644396803661264059150381205988026427508625291837521409545317843258761284184286490496479436160774067352507271883927993801061083932258970919400089419897396808755033329043647980577818142940218767039952990949575132707424482295132320438308354597170280494211027879091096087213314056806365816121897824630195236268906302191092229734953438439177174107020225812688953828038834267271335591788574794815993681510185813518105624757387677030788565015772172175182722242974201962057422980778748637406192804926210644642565093415453389150964398562896388054514595524822395175635131155317143109581695194914587354718564166982011819636627476901382099550643876265043610058709098306784898037706417358990663862309976251871660666993635933749896988848397721265081136299894357877371212918867085323308210996716392797021213386800948467223966954770732195208212538896635052691337406850079600999693622157376069137953953128350362139294970378403483833249038086815591087873566045486732937023472964686738652185339862677803410148332915354798984957359792947356503982670738486776722235796496058656016908330520117458157328431792004905271877129595162105459936349944227645236053766057517507965715466003658996626308487463271086425631555923219673128999155237656588687124122144579914639590231955918996459088282826042978155386449560791324178505103746475039039373188659980990790920805571767496105254362085575690142170009055267053128914928631636889221699875447702693031635324292837316325007199849984475058543973006530808996326291443176266592579249897722954760034274169863862483644516276408334630425616416225237725598539210705351162030009413147446436290027788667455329432567259258264226083702549291422523885216167130567869232582273613471436701539273750277213592708127016720712916501938768694740727619619014770192875962853328507142818849985712259356381003011925369630324784411705991929320046313693944550423795427289458866657302652609859228305167033997606157501344056979568538682292333132384487238717844230689606022114216442784198139583037524657984028747038293031012198287448172227774179245783260559418311509374247921508304196596285973588525508462623668840360717994710934865706636074982028853555383316370494549197676970293637582047232266487996435629461473198042849248437595516633885919496495939128293449621013781165742655653287709894439950429838025600456365478746905612223098017225120353727281415047817708567593243158988266343047321187946529781116274486201344761535327762628480132697162580705070005057713230560626514762057702956264096120077327199316494195164148336775838963644168820742796578277713631143054402257228206633498938230553942229889510109629641710814122106844994591908783257593971435544004060376744148514487472079319844855534428267798456668493498996708292138275620681179234861104961801612765881554984868021166371827336864398855271829374256515198801195777260358483411205518490812411267567440257037031742849722910507159554116921562005359277998019388872659796004633756874739116265764195454530508543955724393450800159589743965292192504486734827912775182311605244521545271888582354581749726983182059820814386782793680894011014285613249771754318158514244302527917316214685740739026188152127057223763856289357794868334429407414508268413019367180890504405690711770794011315344358493559710128116435824422533237979179717741630122083183716369510663796658332492399434079195041375595024645641909586376233306263241657884264881415075858177822846693302152276015104860283302797265199251346631244123246557396796565801364365505852004486852887770753262945986622546955792940035606587049833654053445026506472188752224530390646047192364762696009957754276587105044402727005950956246671722250678509082804820103892103105335944640701071506014650444810590817523957930135676492599011264842854156038379210719923641560377317493251999231516144174663917776245358461198320072941709955138096825221396392734449762000230035837724362568130194378510304509582966663937337620024471455951979973035382418969075382516656925051138723149941289209069166691946584515561748983688676662896095241612879795171827471682642200544747390404740853326633811268420348119779109843827920292874896146976343317937846261265718760321659852467786323159377430454706320172357053399480155259659846383805928540073772206882838303666286560110325809139001507290681742318691693823426471982243916740859449719870783534265312295632615606222103437378417741607870352940947551181969061509200463694343561730444234135457809914100599275330903249667273253683399138408403936922683252861449111692753911034387060545105579652038914906268772343354072579528481505731623257365899792998860200864785302563170748368401838073642686379154274695027069286957787988381083420614991156992744946765870943763200798917871958763779527784692911107046821460840584191298602413215664114067945873167303467418045496988018632039207138581291376890239183881006453617159549793671624764329542860683712488710342669527862356206037906200108686460064571672256014343026456895461890157215197642613648767500594930098866382909220006002789635079807269271237632877088573332175400514236194496514207928132774508108780780541494026487656038266817299027164148422303126013759165857327774563020550652170583569252233806612970370990304517977658915603910240299641301918931483735872702190594084650906548828021368912175515761994890500547708826304675216111652356209179571753116442001745212310419091312396791208230569840184784556490271961624969624594010284204105383349206117358045707996852984069515470031665086529466984276977108879055966711441857786033723736117783475108074609805578297381906954074093207430654177774870376517224934438319003938461009940911995793323801205759569431636960183078021116524315732658313171140821381758476755707988518993582944449168467204121698047239329869778234635064012483536427507340533192921789811827602635269617515912471239471112571715098307922732160350258590970159103789436813152266403150017288207232888564051032308488985168582220926011695567771994551669824758199202696444124812977565096349182301576415228568388641060896507757909815749971191308690088499000736785297864062465742333415111614373853762000564606789128408042179411876741877383571690793972204208658228619083198620221070723670456264484883701478661749716195606858442824907799332604886731723932562860504651073871877232429702178422296770461831990352995060652242944926543957684732205660569925860025631785601851347268986159917672772286371482643179777062113536885617367773910535729306873039838139822524684782793868941051653408094374989243189786373612686256409890758200993193385416977696565414259115874303337617843840446781663022109829449361971531158664885854554975391838251798445094582258796280447154775638282497703403948714848123083315613404499077246699762712236208794959908571665940895763203433853912477790196077580543810302193995007784713037170197530375327605636082875606164997814027837299427469082616058920143034344647751822069938610169647417912798704053821218837326007064804324885155454795779446911774071455397722265216308219588089402279860967168425354625468060259367596665565731093458798150222994284495566021364527932711216322351183388641906371216348470881861880196181442573927356644100576043857689625047301883421759488107026519292182405358188809231486318580119919668935375098429674126138772875784550017664468111609114657857709218290901150498758135788272433341969298785382173326462340150507408072590384375859716410784258042069736987233170944489987072788501301005353157814551074803757322202329526133784814756952275515086712104914561398284141935078044072233924238347419245739242217884463373764786588410797593775194184085115881173268476401786819473857312678424501879703714045014925059035669607378347954088841181816334024251583123391631832584967057957115850349530853766970423773183429354353269461569430384646008523077587400254022144594428555053133596302513250940496070120110915890103565976368692054671263113562703741145137682499782181091328299360036179897094164916349251792530985821769191796969350552470946742159558591861120634283491986295141322157371068937236676531876235827636774557897760545943958109776212988846982105817542064432406755637414982732803798314852138327814589138686232797543304633604751141407117908007069100965680131130914674013466914239216052038444062980920583358924574780828715957412347032458204328202705209679624696879853568136983008787750030323204311391736025720879618355551626002196251334321951467700885982589164995694916232749876759470183957225190410527761432576957528662052679666516842095115887489465220759053079469738123516972083454023364256959568554143796756267206964209761190745612609707761284432045562422830755450071064790473234464514986578768553672049296389479299986729762818001684509451944265077905547858043221998020742141072347381923092858516840919110099451800982375817859640339241909555712070091300058957912642149108192036219027233632568031350667766681382984108286127598086028128135465653305644765419363015571371355055649839780471513197415893386352667047081156083862194510258840913527567557985308517293617428100697865138785778578619194655712602399993028258251450662964150644324857517933169017114965250913983581247483291861584821925412339002683583509973743669240489592426513022571748329593823698133074364064372611037840249077529142261928243036341767247220049922391931283402372910731580321559688628700607260013023565549047656907832891126592615732060920387337636708047102344741494622013607004410321201267684732751827143940379495519564111060932420358275815687535219921585596193223803821158556236952726409678221373854089650738876890689497521189733625076392958632093198001522367543885848502960791744012779515130551780493898291534066491416462779290678275889378449192453092022594077056644851843550348038449127465703093339555756765800909761354585487254332898047409913327518123256253822862518166747565106022366650463215465395546011525722826479435037547516308581348032492502884135594969725011598193305309210578676443507698975440009832902420810001507080834087420656807362320200311857049212097890233930156117180273282108268721179154110675890555148365274753973705959581922399897482228799913874076150349784783357794680773754962297786593655204135791210699951380710814855757084470561450015891533933769247137943549699473894618749035101232301440693513803304380238414967791248626505643971152354747443843401264794986887911053867047152930972619032648723447949761466098767300690049615435613299508459447350968469103073997979556822466192589986450012817547316123781384483267489360518714881731331264315850315041120913251962791774208738499180256574849216424308657841451296635922192579704389378362271576787491992647675454656364179187187876219457611039580462892557316518417992102075656096000349042969647949693637721403742564594392558610497929913272742397240189076440083067507931567648163956645601044179512381041261164920739327083362151207666933568203539735316173766226797097147069140675189334030256407076588823212780142204264115317672889046942012165691792840369441538484154847095992170573397896473247020334245090869963138129947229448564367777956510655217077828768719427915676567311465818414452345292133049729067819615295378547943756170152444793799689011372917934507063708065128977499863134695841429470418142284148197653131953959049699155260597313781975588848124093449246150563332475129851387898636240308289882505129465608171993761221716844137136505885410769004142999864954642325964825147373020641270536544698390760700869307359402297950637972919639953908580650535733437773767309618843961772686156691826318195440160117787156558185883787099323634341102293143174989202395716153443290417567966633867462778087096990620152427348167554313303192324186248521026972451475747979168996967994267574496790470144633960392728605940186546126758592766438912994147487095275034580861433020789497557619916065896895132143956417318470617225042638250564289870753390459323264359068536501434181103792264978183100721246904370729855851328684373477399228409378669681627432153421678031815840429700842834028182447247729198050785305961589339212551130329279235622703768271175981477008377045053153795054422840993665299925867614653969690318059312448709802142006028733537259798814339367986618695433143092823324184416387650890356543935500926854165670888769102062275597750684341709946738859555147080050402071894702128497562482634959985486808565393392277668860749521174107345428043899956411988552432398778823499864193115237272820686132239165406811380042183039158737457120984694306221882655530062205677960246536469950938991577706086280753584969457576825864142380842612009183899252568770851938520884407446184186041944500247252106679114516606126936589305581237265645570684606949928936028932833649179665455218445709774534641628061038932694109824272129289888780885266564692104260002965977027790566783532032061688076014242395178741908466212116599570114069448732389942062776917162016462015877128443493218829960991411273022275000333383172898788831139810599477905268475144517019310112450665782922138362440391966618920580905871721515324197645675784894282664275563012436724750275750744268545157816863909588235189492413680321660599649229163755737788558049397882338070004827754272043480973906961107829621565721151257539943611548309374640609271417383682691198996805374273879194853754781742790249241941766970486063519470876529264883945734266107884555295683271694925948224716046397353654970763152215987717326265335901315312953259807490860455555167355172918044005584581548699443810486994916782962539227000298445844026082362606024510657505575864097594714829047407191052582744220673017070665487126622238321789423396544989036710128646858355709530725293259753983470875828422089068337522954036368212035830329049815228515595721928270699160603599795884420410477311796377014522354773897370174669583740575230836320049489203809857945003542126245609098265045301274792741219354883819149062121338707787810802149645160705808893736890739027804162640844252609536518902480012965325585506058824961173819689813008686240227983316794215617175012290325989783450954891627068263609009100062325526368983296235697782500884159261303519618779557754410460968274840142077298469387906480739174189800196073282916582364747710591325919720872920301170202677144825006221641194031924822086222849799763408482927526760700498585603556966827434909226304210223267388466898244425559153119512499352565753859246836985908983971760359885281276480047518080521732155959719949760927813920660109061602840270435834013347247648884489134215251256406716788787611012808635384646341474518903826783132797905041048767693234877670191195412067459766339762715022681055412482297459838296937642193213349887971721722331400787121670786508011044102715439269146314533886884423806586807297372479186732179037128661883182324774396151352535397105252418634398628411956227142751181465898081516311035840975159160910633131723531809543382412185709619136401687798571138042297850577116528664186284396843059327654059151115604312674486950675995354376917400491633922117902769099967741544426080005497222406887840201870267143155895639711084742697853841866200635021933991124073271052877029715298891870725133928389777603043085129637441501371745188195928529127263106558588178214062846007753472586437405288274493194087545577333547047825606088889657981042111790474071893877912558082444679468552908708516604851842105622962640240009820707230110296080498346225929298201774802988351574808715141590199264942450708297634530406473727323227087220107817175221843313103752704383220772597805054793106784220113499091693568515331738554478545751068441867562775329648204425675392724485724058717446830607835855056699773630984895479283934734899523106656783000369021175115220057349225703018035766124958523708226482994668080163592245228155756641280043956920971738224178791182858144180284015960885785655597763922811126571707231767815543050315892741220258315108205595564718282854041437689526724992637105494213610506611266098666331933356156524016538419394176979447083734813785788871476470304172124318542767950579630820909903363363864030278264648658719674508272038075181754834107383518740953616223534674132058839073687587325195860436987729434938524683718838265247142397714259474581742324247958856474728622003169290531287483389505041008440912234125950607932933870569586276852999417126518370862508704625449157241656509510315162748209137889320877726526171219145765834075100811826713357273204794830306703781739670399317775346853248961315516336685742962004711919516747973522299685025818101846745247612705598972879932024482675203837392062366070246997192880621232256631388533937358385138564404777863038319871832246803792007542233416055540307141559478888924804628225554219960035617584670755191794166659048463096747637719238882794197503813211035673134696415205021879802657593038541705736657501372623028296676551505682398859658880064800278243977123008027536808534384337839637285516224741981672297863706174167304406136567462822361697897808306354155931318422834668859136103938504310516073454535006380587296477713694698528462425412859902337699137905898719110417109131424306123607451289471134628697792375421796999140205739185031918449568588306757266669221222909228655482853086156156180774398801827103744206442334055792925474214685126478710351305836838240486120449387398403778942263636235918568397430839456229494248067779958508512767463176898649984503146906173398697447468060620881212168710245603729936436599462418432079570855120722053195025754918870056297862598728327626303259100468646747296261527489958834621825839652777709210218722733070308368915616867127651242641664333662573765994424487867035871551829595236031222666054455677171233523193853877231036665374684009705955897102525694364419910953068175455143783668182507373105232558502793467509540012204368960514936922611998792695930850380524921235997133958768535074231510033608929140734938089007744098951905537277314732273085595275660323161849706208321605577280970646607598355948192449695669457849308316538068942103189291141268771806688822185491325087590871799159188167526064109098876023593196517917879354475658368995365118693462345138845623651713922704428396694612252032077252603546793676483307215774150826206233529974444298173651344959463905860527553208606364883935070217467175110246016794909924594248919127979536069875474641124213867361738832582532176032938754966455590286351388315205251719282488871251281152745947179856782681192041677968795171940054180794473140326377393564837028039283396920834514238067725120136080562221346376091449216402089484516341649624239755024643463472143475974147197184995307461458399695312418424806625770113474837365098238160047382076632362722512281729107315255200801850974138145634062493741014189621432761283105770902341871590513844523443537203794676023422651156407167039978517569755925224577510717308135225190182926425303531489773932360747541772521264014237905653429339282405856028403155758572559848320451785254227647539408835313326754506390471401000538244398684217400620086625859499459293422658791921004104613159323780191939259547103258294836544748587473857005745767613747113773227210894675000578452484522682467555461111735797675510272363254232680807270145082434431933531410768465178684756980184076339042004525402331377565278129462567169169053429530474231939309020030413991053653359005214315620639908278059142076185427435265693565094276658097671596502424548517036639763470995184264985402670413995862574830246441308731239222332181752795577733083326401490131226041461196097527251883161602864504455959436528114286924050816107783490208941250836851636154344387601049890373160401626159800728572739898726479860363998546424425552467885264348318614077479605241402003917675081504635025345263131691374789614295079627402787362114177653155916331353900907604494349459918658925819794157540023330935131965901698397079874721363466468374702514910673185236391539319757839296852591958761392816588438494490210290845652148660277432135911802495834596989459120745518191011693964203806476311959418530968479757380847020648142429581205132282053205121316714028193458056306759859233441135630149418084223315431158244543046244102324146398343941707915877082792455729779057563746037387745428134291881964432806893913131678648856474019361008126704098753625100118167725376017294409774272923129787349163599139767667229394780114223744957524474776437892138029704201858082268104675743281208875141220216322412328389789132054601901527848927359156242978849405790484338160711536254036097919649199875888900059930687617573221374837593597278505175157912518996935890241193944222083417746070511662950208395707022989118002605241066189512621342130644156045448336280604009297688672887354180147453588317772195623911630212927615490750786446800188774231007272550988085830577732745750911740794882683405869307680684152442437950137883165650129849796966291605839916969862153453939648445256249790476263510079983711091128158978364601019557233700635886529776132401193739640960744777242306090879853450952331651499503410446190544984640129227226971889358687247521951142445755223704803681824220562122381643257729741990363895783417042968180843193472554507298059787610887362694355427760871081004663166870717169976479836939392242588051817099660971213750861378163187343958112926998158973172036359281772041108188988596719835174992509926035912418550980652908424184259397279949122838794087148348589243912190138371799355295131998643253682037617272534345839705894368539268864368313867131129423418360066045671613977370226810586768073700110342385263182208361252604448705513961213049606475528488504297040412706094416679603643839521231969100876537959430132989902740049697173469744945238316390771409927576313178850232582637869998808355550964260648758978876952492582521051718277786276664554065098993175331356063936510903351985905066149678734874225139348690844621583138918874036975588284731810517252374893604429939718363730759150707380765229318658442785889016436297438204538692723065364591914951684863851294261243803573709865215713009655404111458180669462827407502268018477744630265485815773192895166722344335478446199705419600610961576765625695927485842025998602710766115854583569408685297227689376039626446973901970024139683171610711057712580172773370702562337536723262012610045253033132193401954060876048884165722193372283944132745647300787596506060421206657381947716643212505612900256468530804214077858076855141113845475625478391561489378602662298960269056442269912328120992937545358626597426908557379625839461736346490841351219490963907284383650057291427481997615116729001776049101023274153382055315139029848367233900926565707561873848730496211107750981420069577997752479331903282498648292585083265224316745715153044221046718895678454612109591081610419121967793943009820522530888516656194585664907914285687733376939644569933368422807721222492577155798953898518027647512640863848020546447867057304904822477140586010934773503445571575730293003688124614832928231162201995686029613834104686399568334168785396247424772203590103787490408256861824955247521101179347484609271238496604368262176592869559533966225513900065254250606970736432976187138772011198345214160189210287739368358474146839642401290532389817675061967924946815860949253148749086837970807440278926061588972931953049972181922562012975004387101297395618659256216282301649131742724280012496440264690886715556003439464283323276841417569281375271470310199390174386859890107471439314322083933832452724523989176301931451319964605872979509200103855896429602139659186981541016771905595656679265734631573650023877985107112665228919701353591509338926265408133629803227607496971287779492978605822933481376121895881816713698205292952905999187879681258111410121751816884558717157974021596631774886487448225174748416953345899804220768382063660477970876106064797957787824917981553698655185454131782610799242154554370152746933948332579926014978674999494964927634894805091564260006258248150124627376598623957040273579350940140782778439925236429318865241842807207482478307118179532963861342512075623212597043297430939132185116800246551161716831576707199546557475714575131465950100484222462522552193241333565198467263536351748936942158390465513123655334207972040887106528478926930504275034095566653942648842879092477733478324467180916507256818833035959365881343437526139478829950229003604116079462304095306080661180817070649223242237429984527198077706950160213390934545791678183498651769433199465978350665846802031864658501321771679985783364486578767355759632846559990867270915272990698352053364320653777795049141473170150124665926802606250160646269486373865586210577903356230080375421543023562085001991581561474017713069762270554372959247265438447986345712088066548426617834049665936171793341872391798979651727133311807540206237036089681727823907831686673680106734513256699075721164283044910158858755902512623643202421958122402414416495668886453677288320062426598163423383798419553972909064352367555002111592585925327436761587923063070871284849874768651388315270174988846602273293600162443847261324849817163118434598575470846239858880589981489658373902142949503728695810678328605314557678854862302274480148907682170177606522356173432668418963149263222886650406210820674839237503551349269945152075978335557693651410496145185112895552857258231375190913158512694990502194621784547635747523549321932142160511538536970060239848919330138468351932870719247965088994777787630892821176851449336229647825613547935265395274544554875250035119988302617893662537297251618424955525311840438721412379303617267522559012809963983724639738362993187706107418873663211957892937300955706054751367656382838081714520309132380215225611761940507253644149252718147709801072336603180415199601958965641136162135054601816413697411603016358691330437887493298255680668402395706066683080341846080611358121694835761706253487370654774609117571255772258278857233551934077111877306365895106762701439013990434973997938087104452637158754346545303830618674778562757296166091652673231758053918610529738516664795978426123562612360781395726355741209527780563214772193873607768176713335551289254844258437811274792426234363967816396780590407612504518473604269000605699949921121878132416324922249512349372054316498368520947469019879225839869620931100944346463357936797094773417559912807232000234441746793094551180208106928595588115803764293431348321994911491903332913325399873871165141680683514327102426164802290872290462086301097095742011199381858280886367596048556492188439393417039498870537895280077511439059560529582920313931082349091587028689845507615925649244362603029616919865262800965124931243636511681398281631510462821590741808867183253591144836075069938946430157217038617844802688318271898236367111661238712418664888552565695728444264381578542488435757375681910305885761671911091172678914486376486843052067306776434810955468810366808480470066653995917854435984746571440025752340543584895699948963378860421088328855888714404035060028304419109035977682934983101200562583169610989276691858356232060763671458953162936035450710289704400172598347129419329095148007952293934738008125374760794032694856281302764611660154532249422211834102161782057820829184250555734204673995829540075943314210408125003881109728179399921947907910061317463923138808961834376462415529332982556952143473875017327953152546953259055046315465363225791237763686563536425659666967621660412527981507810694458707385535765796099317834969102505150661216955012679956610672440099543278175595594654277504726114063298447482845679351258068009724169110885807115069505522376574392093158324724597039567395277382899834553371355663855220329668006948751575649882689450314053620725440668741495246350315911996087263166272863253031209878408431446570170381491022809022883858721443926320928237479652816471443212067177632627296839085646954298589596174074375489275084025631828489270445306908012124524706603764281790590687430117753827805523672823459810347387991178531641001273534754794733698461311802708672531859495189580325226284078760816102730458562340905025775949304769731926523781619517569875081055304129579604500424722402644767568182149685944913862120507967747958588327517675085512795997639719295363029809274522101558112765544813966050675298626618239170743902379732896581980138006879262771428321544781189796385250604175318323639728481820691502968485040261445304661864643532769449037122111270797626483237862951640494429960417512156148115051051964018580930735719389252878151232140420323520192906739609574324218349078940166212807273105400824830202177079690962824469106865972576750064766751839288954708609311141206548432813375404574837676519286792949172700208402931136210822065804910577653620980127089608866321408509135378956236334264179480151106926319124292562336345364449477377745641625095179607750048237547941746771810851251369728976391413032681608369650226977163648984202126730164185147294799538394829525188798132317453514200016662122167426446940081059060411604385138537465615041385340442332778693924895452483663999233667253390120246932225046351415677900758639564345803063190685822233337487757648025693835706923465087870581632894918221977024745820102856731476680359197581938608960921402550841699239234887844269758984212814483222186873923216014326804035417375185357136081182610694225636875955474269355424014308324571809537885464452889986147942878305348659388724345598375101510325268000968747525114780252710566105717841599262894609441373172921674439261849740366750096831557950475896155231131789548393954518882926699086222610880643636440811855466459350719800855087579854895083195740367096363971231794151931935965385883519934376030360412143120433517777515330233332671940049716415558926130180536240532990057303593004190726674193950780365188278543149492569058863441479978776437471474826265354213789311236494204189598512047339548607657874845280294026663888532312159506650168421957171335276452726727975934777402308083249180043766094544073354799627700069441179900488715538819243207756208091772668910723210675756092751897167159784800834527214639258093043045432285895212664084576450438198626502738089695325150454108008244384386213389700008798597324452453032729674490099607283504944420024298101238126664273354047901029645482975253515919815586413198084882827037480512295668298349846944863940513284673563768352720726778983804515079426621778843715877332222338985149396996397916328463115653384624569478007843682593475311221641144431884890746434312373892309733258628622345793379955483577785231384352987946179002924649727368365453984964000760289218069757708284472236477354223676483340177100801372348660204274168639490400570880793588328667595432372457656047410220674579404805594750723511973971789484668876750202667996161819340576393246041780237661483943415342586442337003521941083679756709941313699755621792917902017770687757300061091635841119398643393008831704960885759079870302742829235079654805467036904775589064532823947908335340211404094791313661293164103552805093822475365568275949583704106848364165986596386801570337808874007021803389127694959984243598032087614325662443452266927478846155224126193224477627312608631854959569863351434049196674160156585078112766067534322137713024929220758584903415133253426823205802615977894414365987657282017630278199233831102348900922554255892242193581239196398293460199992291990406784827352219992977266971047035991750758271113906185998371690607035584723762350021573599767426159450732683244213324134123148790890738554359207260840587924032345275111581544026083409447896202873679420100905852204994081459636297282960551799716162768856222305599646136877727773703780894187659083783897742165565690982582218656947934807527008024689673555340779987068708081818867756143792210502898843264288988605585085799550815436735837131852403249638396173347357721008493784518553341677936357521512414557574918281732817831342442622926075586665869067430065073386967728521518899908620534816438786909685767587847353714362142664411639636017004236063843999035016376208673468809223017517146471604476405020738148325901203059598414968225749948269447740898464772133387526955531144816010896580457739393788484225076104881407612016558536216873254269636513415236046162248730084975599340845815960595742484694216694940750251166551156278854674226670043608141639267416936761539416869094734862169641944901843109514319248259871955533248317085947962771738666324023056329559802184678076153745363186540911163783713732548742276031238849481997486251489629412188899069874376196643556895017289953073083900551730383260103512689222673150311108105224291400348583663857659221678795090435872669240887606237498718612105370012743554995766512210312480013222521370807071772677748752124691084089316354261849783443233156816209960967033903107764762434961774892786840982363495091125387943920046089435413354779486066817407584081022517585552860937899545765409369942890815481045235836793127321323386457625784151370673698829587667677703274206828267354475833800677163383757703202258945068630694395347527408469997354326714619883562941030289550982470144074189337764931692591620622993672626481391455006658475564968682349674985839799065997178133212870580424660335766246096039865118988806476151848895290219146986829176931781576313570543265813540330315677312627499046534035263244407690647323845624691781681718603840370620221535824138640986224449551601769463388695731460058307495620649999312132709367507671009837315236220219659225096211356663331165319187507961552166798582654329186328078688406633946266006450354394219674694731553579214233820637856835048974860353899626144136131789675883640970430323653452963436883774057269977499896378421857195370158160623737570699389251466698843228362553687956694263557915451906864383113279112943003933101816251299102332760584548671094143842317622669095518515380888394733966382660713113077707884567433379624478323895355250166438095395661220121158715874968870659115131843409486313037280576885039364947532398364666833483589007110368709645723438433217397470491608927362799527142300554075393915691387328005504644383490442712707005427395466300386703217202098045422486558231669120992529204709291381253607077449673233585171908121484529356978062918890749493690270559891199257314720530477270259107993390434984683047752172909530618058925660199296499795396024670323752000061468693045076506559626751743593203034651258237254929519487864631785393711760476082278917297347354718281349032497299578627445761305594317922689231135214162478630210906512766845254573442094233844024003577423213576307403929777302687329828817656059708633228713338543743196125468310140342382061381236232058070096021650157793690965048003738189933124789677807640342208419620831936058009107478263788315907231671750583528742234877369207763310132024376260724205792769293345462800693528135569983257980488189685107235694988372855309856974292728286139295577767986588700597440330483576538714729034361765871215531376198130502767025381792103228355624648722881759276962152433064514702515948720286634037439728234406819607344342649301985988673749043868917699850595789343030476476271960247182863395524747735742022768896224772848925302908468823696442477663506376376644873626184479694658337917449414244516991900848567467596860695507623482040137614895515082450821674295861621911627528250538595914124832017794164548862488530077460862004359410005886929188912704570692396084792378555288577539373922023420379609701240917428722746205697677939048591742021603303951625001094297971507248516626700169444632347433974929666073391838717294839718543351200774533270276911347334510227896864186980765749879503226085257686049163534456367237746451566391464118340935084690462105676321336588036833549320768284612122145101409657516153651312974787645200081807075918351959518930598281833337495067005164510112520479769685988701029336615097890573365968100515893514665625555418167602983833088127433036565482706279079387156597661107002664502733070106081413908559166270541215393010263347469261020823778028890188353076142485735725330908882118902718381308575368982177085575061411615249330519439441766652856443379394342063691383641511587879162721534321161666393200909358149193321573768784030129679443272050491354576264972464954688575896307920756493049825767488973899180058431081239272779521133978948890318969835504529302114407888652058811679365468879678963631260784808542686834748677851002135940221039287635930432490467037337937542594982755540397497792369975399815529137443265849550330842924163829896803790492719168949741056689069910411606966010804975615214253861782288961697217752975492358144163484435749427815937553923195343275105428482122187329150684521240213530233100304565616709478525086422246904290238938795261636266927485607126205578208332004591192750766905926987963289222803257042317979517461723432165807083512550293636598736956916747956639156742926692756547916062704714321913358920583898670923005044147829744447722463755535715143254418079545786667919590365620323527232152799650183336468754575919506142679880379337399129460977047633463259750666042039513752125485479498969375464302921365474868143163833265812413303066083599421232376110425345495892987751839732349337667328688152406266713464526379554967888793411103431285909224102990548631338306071852657704828683948001443731667715383088357993204464828496781730432349486077183050101521133139482524798961538081437980591608868462217572934741251312431344930592302288070112650918718385260440327218002566854199950100000936526598535015647748485701159780265747196371719179417326977728431599843652545366592148630555371304793704735596666458410513838206234253155605657627239163201863802669368615329666267970093901704850445560855889281551062926374229263744041246283112442421023917163128580124669659924336798506034471968757443849543253752180502818755532062692949646471318483375791888937092565023681868640521541942050905218023007166781640045742928000024499087698449146216365781428895983454233368198651091562383853573397253725523856204198947801166872137510984496514826969282499272944114900244748647483478246180770287871075422732804418559699118682159850747567460363701642689623194723465439582387445104091992717088981869174552366953107315717560663313043926914826915877633816973411504003497917539847929860936423198659322949037583398255686893872238227008342195169836303461101793613276367470587617324183329272881634605167815160238587132483879751747257978594912842330274789867454398524284439817710595213782809934285707296897687446355444031981909104110597904900930981072100780749195651729117048375285940867333956484953791044827831310541066755015372935439716504554387581437616427774382456742264483772594539272465217743390764326142114947543977786466095364643215746070243370942751030697872033827724745586893816232132661789670197058372604617578896270553735202731403381200963269586518992639201981779807308562346214389856477043207826397716988819431682964443536930079619734179071420458560364925923223447464751078415845678009507960955446020643133504787490712998248669080096811061431486884280383061190435264244343482872302663545253501666931291378655193623359594828142484880530857823267311498021524916641031745871362919622261861627053793832371431809184641021777425636622865370372763464734488453170750337008678335089580825065946654965109469191377050918984971667362789696410295845921304792342317506603587168526510298240447886304408194313513639144602488635625781755124382157720597630814457042250845205470877355273026358120864617753434878350149507982444914787088275924055952907207481039263308013351247828633318099145549084955384844547588653637010653480322475275978538433898608542419132075722646574115001789186172206974356315198103230983381802352973308519869941292533108983077774687013560576262662963595564268260032511459395081862669906062206215521191464211133816035247022391127994389218552293527332655299699406420043049145362599920023936430705676000354502629734219977313691377938791913690193875979176865668313152292377139269013171652728629054729867778185949468876236837130162056621621664100749005274513604753840927646104210177108976451279315460172168255113429861035010516886254313383361067078740656717745989672461166950236647424320045259597057566978616857467777267121478649622195661848935193332195014762691846385887776454615379427980807992358678810894094978718663759268804656940366952975332885857822178517322832738171221516510261311346911637123602409073995040905819960397636934733961018270993709927415504254938208100037815006189206611431266098654320781708619323837518874827138909992663208537216072757947794991605950696567042522685679271895146653893895691489115724135046575128184640572938585953779693865202641551333621481215961379050600403027846867000730563874313351620990938730287254257191340214897891917333853705129143852163329417421532093838968900219059349255308088216667975367000519034033217630562595908546969907360227824372240765080199066373327716440213129804344042120420818672368278895416508259629812088678089651114554832029357421320255737028002622910393987879006263841952332454445581364672424586266346833743571255936616456136241502965110417831163646530564206870574154677924468827816573423453270101755953127580335301965368331149419189358788589398724957211082284760854176550167570035623136323954894745081317425162415867100167842135554284531005271179330677813529512014694366867858152177743218929104924140345529272000746489446970652733278947417863624215513113960613628835561478295980157474106079274855685557613594011760170821524772943002024440645680284177732755834005788761075951049870995312030071801851583740354854353485547604505453300004822402753619421644452892772912734140997720261383159495371411133626745712994011356906003654981038113486547166876149781367449059614962477413809415013132222418817191718194775119830786783715804861015202360542325264101142128667902672800627431741174219193668938356431078261063210175786929916303067382471312165132783958815943628738846051374169001715645298615277146671930820355272970648142263638181828012970651069966974668564999280518716897449682909685854447276087902879873173303074911854557795553008231459007090764183515476904040527319594697326748690693621868932511423929694264964491917304132499123028282905533900656107766600931310854232934129525227366296821645864975516163073944863845974749924050055310802395491358237944492831949824974931759062785871073332837580349108154468421640081456101601298075873430036935149250931462532654694767027301792486630269381881439866174826688474975513405508646438103583855055841961692924696537741473442579693949555897886147887133352970030263322939261102720962875365358467746578108833858653162933170533678298311925009006997607967426093478770979571546774663895992196441275158213961827800041133384725927287889445043591735871677479953695620790500618935758628148666505041109303996276017770911630206968368580631245250227752126959116289536193229781766574898454074841563401511418185889029106414968009713476647002710587383162333453325900787338708765259032835863408129585154989596023396892123896095017352126908133789470886799476937786302716584109136514990705111273034119319074244355705890286303988033725703807663775078928247833233008025420636914620449726176583515892115871388313105346289842464670670402232507138591014032248650115929988441976666895912663178382020269229861296849969421354661172417177207946797296025138096904709896930689920396034242414439960145542166862063610137557365695814653360998933589460761772073377987927830476327939771054439602095138672021211570793943127180472975797893426401332131952976518561137206091970642007689434038099221731108495749174298742773481701601749365215092452234748599497374676508219777925977450042052291071682572935183839846397945862177181344316454436051188703697487651013686185125281891179015707596541307895650540687559063808001127761526097437702195486298402529620233701006133868868917786193173934325705197727639975353125847740082318731366728631232463512994555129466299267700284612893619044934661818046640517280085749328854803912948845067982934900386174546584796146838148225190209530710462815468982780033665103585719488288201187414965606491305240621829831488447042400531002880227715882507400040814510086914621066200351550196480017725095660214873818508848594552290482402434840903201768481550693679116897762896544357004126556935057853210813335721096763348020560868955657834642537871717257195139517789105993574089179945846048684652630294355502188520375949422153695123065424127966493710180271246457815218742774931463708836095332503483759516648294876554615176260197479950430971549030197427142156612527597034832820103817449760319954463707250257734256395609462322474852672824534581569833934423596536202120147913222793129824902318246765863218838641948188297216939343790499146138359358979465387227595204098740319801956425342250859417890457773507448608612704969301541971681822350406447520636206758469705591784421056881680274600223412050738280107954709192739531692928695398210542366500515836780475384682003359368547533724886246199092646437031309651324407775308294631642669591118708446634113279098276649673763066291572412214925907554657283517905809481962114661281892183005198321206973197577154410932349890008037134409603608140341663360795993577472632388893351363196366674720244891752823816010871584639261509317751702621996464504621512050937129867116095943325917179287600599086821870137563840983721348441967375001671744008890709273794507239512940646347491043950331731109871490606373602845236100481877122525952832364851754609296640532682740572988443773384944719084290502447977417493511500312111788709985502091418059837743313589692648283026144176928933946588227892871794141976725884995431836140599907456741771220453023499747625823443486966623260593226088711227492634682044080168440852448728594873448211674931266429018346611851678645975095875542772597928498551096719077234280175714439622448164542986267790063269548177382994594147834592143687868994220221309368671389400362376131631413691519003035392083126060319667600831073966327809020937825052675827137144230659852779629544115835977238617479395432947354429421410633005604309137394301174866322805235910580301359724015537650187177900053323152247729873356247254462410437962950293669990432101736394684202873102608992728608698862752349579872048235315253433665148401685435855154494995439004330274503251435906429023350432741583703869577467242400671291442815257851652943691464858577544391567664246694536270614382948335992688431876174701519525578095890899529727884421608522677510688889408202161313686576380930209696116305176996942227168161424465266221827492938323769273808142969818595787494358701874900570430315801106477341196915435675799114257498400077223873816552698417728072091257331672817331651655686751356326046421184172851969662766953312260631772962745479683676379751941533694958499978969984185728517831506109380999806848165132375996955005324339357082402804581131598455405159898918176347232718133707991705618001139954369077069670145093840065453177750265562102572798809322162397160610200708651834693504952289245872748276961798819664191412405862818021727389402865849633927720174131349794847633736884498596197019080596475467970171218688971859797625725999367772012528699698889711335685233278082813884498992427128166731338427050984667234844264504485402963329786657699612925916157766604701233701360609384220351838274121530877477903049400348088645942290737090723210932050496198490238991070305896788085135040307737243058061826873607111253330355394793963191101414910006622249150074563527844055667767662053471619576375589335442643212075598827185123674369010777447835632000032155549352370340773724679793846617645173522842565166657291084130946713481213749276382095183394858239001285817798562119402641847787698344679902679163639986119445494444057812632453113367826780304893634576435660874604689098044511554711470787029646578825441436919918186577004816332978807000497825707020784568827377663076451461912107450425458702557526242933901011789091732706454084158507480967208428656550209498512631982875013513083999582647242125560696055717324650425182643612553008945032389895166539078750576057632607826800756538961065218249077075768757442679397140621096656727874682718387199971204176968325341304222863370744015987820963940284746153575209524566252670622300887983496517318222579789583092134195087837180059938276709289561285888134740332705864668219385706529578643508270286596304113088158993909215284906337774288674071929858501258467453094906059530956103541520531389375579349054299852403941766564914702479341249425006893138230525567978497092091992866534102228140681912399851496404476127943049509125395201866853624172069743603030905650902723036833112434087795356574152659174971173433382927111672658319768555331017857219317222157398723374928707991639977097004278023189572670590269537898187780076784851352185523073324557922474619252568315185313289181440363240298942980757177069133151088514423148287086628572836601237317831029196393288205943289554217379558631920033596993933742504874571876992029585984032520610481992344512046212340278642916207444176117823834592498391356865208714392953129063403234988486356511743850886475746872868667577169973671630817251875209122915781563178200692444526939170426414123393360163013890387040249727775182454800335259674076617292823474888482697740052397491606843589064979123843856950727094204891435794223527728512783032348244885992667652003233729003208496869056228185501899966878866825695932906426973596610202460738647859990377981236804649745326724683015283083799587529595566195444786511779992716193172390685910049560106601584361645336763646226340858485613704363007899914068095851222600526609141245593669651644029021935189530793160160635139403918646841725567780247252207791868125477345829445592162325047868777624992507711066546161030897094126508564138821945553869501612108243032959258852311135913336491570371286076066610838246883951528366927998735805822853406276847485464138483366859851222259380625989583344124677434624972191719953896484960667663046455277338645964619538931068627732205957005765470106165585465078790680673611542979904395481113509217476592791430810281389026231766799669480422763446901962578023892008220373342742008112841373689719816234721468972897605311594104307366443329392922439068970457695424238166514143370662704857699706664404294793778468998267011240393224326367668079772151794971084797132243576764501362993018787875257720853366210671646760261891613660665134184556098752161410694455882841551139938445615750997590589132728813989895209722404849549527987463995551699000480332626880272186906156340203158278589475019253883939242221211205748515435214588621426898405955641599497725887262256256458932402780960722143599636449111862407148509213671238103433655728086356250653951522671297299680640621036909047651230217749441377930099679317015067859106946742900069534983713878285377746851773518610544469607629443718453208201051586705588057460877618696702295540989545752723449548076600936406042355114248317723112166049700148625629737037262239367888639400493174674016246288517115522860307351808657938769890302987505785546967795355087771086785270784682465291363288823795388747426512318061383607438721299541703734014921249627796031060585923018481057797633034633129536766153870475905839247203078917844050355226195437298601894423025115323961661121302887757787963022175212202224760063222466131459571523967299021295525448833989821344007808921011343933770463774850407881134001067397017585740404166811966489829892811951014172171635703444893834596601342047052813032289562915346482682218755069151728080079608243431887608487320626641824254447530826982043491895142112302733930290755634226863435019193116956706768070801070788497804202917051729914615904859317028218017597172871883427791907022871243472365756994420531798541468718055387377142521418546740667313209874788760974157436002289677302427769885046982537293068968160826119497786776476509980522931230663159128721877605309548396441693755715636224441995245097040061821014104859939382627294356370233978064423708136293091931672048011277861775996044246244459003644331387309129985950069820048144686480675583068307518274319911119966055393213763220318382235453711590144366515487293112005229015916719250934739248215239341050406119946645590671138365733457470966102858724990170554745545593277034344489337872559302852218496722518345658724218486101796299245395043132515668860271610787615674441032153515389978939451973219844051193920160141908258155780798038619293970672254308000402211015695762925231724268684403995805979042902646473331604530635763782653825363554996772150716491581404344264338393843650565269351675015815657187644102482844193770802683193945283683949207017222586040152244343926459065352529216582975717653032750917258822253688249966869761079208255115333640166427328678857987972617420859056771322734290215006690004015083372294695651713525578482436297276522149176719425620349259240058651834224987409688734855506822834745827586331825823815894163939061178591076283004675065628533553535560434608739496001820720159723464639186805784098946576008733659229355551404365612846465703193998579304401356432958289808151100028895830667353655602071277435536076325232435376735048977259555529583026081958997162690748881583348091212272649176311014508492412772307760138302366850180127213649070510718070124406580521483199105106226517106371019453695778591101851891651883623596186825515363641270126391409543016550877940208046895477746832006099193676880018306880601868957897039440473922006496171313187883991481939900560095340331286937486811480318443793135858622958015573176125502805589883009448248007618831428439277410986754822895018983107149948071974353966986691387776408969820074935085633237609656920345294384652900161757947885040001228988007872550308622913421186940333624496266147912783227105663679641829465004795714351194442051108927016087811771557570661326942251687280830808893836834622973769592737027480360982053760216049012132696802147804492765990577636061766499273791062052347362433195953088934917287039461420146997544964920135021899118640861680099314555261799464161996006459650370114697169963667947669966787138947302747089444465831141870115671864509114967525586419241596756349601928065180790006824580618341516993635751430556787648002036681230265295943763256819654654181421683059339867968100144053669905770657828939013700372336383574845694439209218555130941026113019475401344114127094863657819595343786823598693560291800571206362907496223129307854672297018494322987529504555050406134373702181473063074357366677055203110662095442869634878091783760259845483309565548546171016782941229149194996640233896699463150893212458625319426618819699991063835134737327132776603294000429140853370576356480852159247284480567535422625236509076727702327711867684557434766748756549955332158614918658078224350331960680000601020346732331638568691234630809743323008802927430713744829174629630383899969083085641660328117682263098601930609620274628443669511331177116798184297077401727473257357027738670950779872672808162394910293320694421873189089019016088311128708773616699618297247719318760891778017966483911550346573119545549318396773072133466477886846494748571880551172025823745098161508618641928121640817832133621347382718849063486247311223045313189953336031923262966132851651790131370025348685563543747643137530031607100616060983814755223092373924250009338087708428418017192707987192917379983097154933742055202580644426811988600697792409180994220870873839083030978924390828842845894308529335321347740231643935902487708944154765817700384487624053918927189589911461166319851927959434297316332845400784385404364029530415135320225062573640154283445632812051843086068364581257810566370299830620150683211516010503414864411693250205669140225795212849127636173418869812615802364023664565171738880058085895386039054503005386548649242739729704354393592535894519481899310665756197447373751762041318352237874168796558263896847014055320442774461143735519649121309733020939045684910352595884545577997654681682232154003718432467883653547239504297905239279195769251911543065003671892899962132300453130984412781933611210580924240853766108464323717258695794435683531022605541385226576588899522116744722193902981767857755511018676448949209358929781110268303630693728935259977126157344952420790098316074527131221615864671054846004085089117447001795274088886994472507420734894523663214599612835403604352708678572163137186194410149744152126499336439914584494656156098663455920282721210570186879131979290031097087789463670182706569827369841742510321558215490973933789793179664487435628052814146635100215323512371978675418038646197760304830745303239912069287970062781668810517566286797693226231922375283760185663064305925382204981298960490846020253160521814157260630682153645238745754227845927386503772703070484573075787387251077696628864578015249974932878714337706610177122618057596704892440261369169308091376904606468659596885617730851319393978264866458895327313715937530699191368854021851193091924961660953763802708807795717869509722388514605905996577009091742023566502580672892950709451364066948639883461269575482134449973356680063643496984501250020730890863697794474255816733135148102446512644131690884654304471991506289098227539243331467589637217706702419345715868016545122719998007611326062482044974185323423517982331120543858172082873987914780230615134394079100013698035415149867013239395289933377710297176775583044186507396399222212733205509463312693675399985107343580299013549149641113668880094730991793089624969287367120639870160847902910437715462227022931664938323206252268332660669217921918076785868964241382768053808746600069304108287028909400021033848635312355977421167068703592258206628668245277096116872087710483414171266273576217904910331889517103934027511277708636136312508494388871123808261694730927939986888708681123098549427006687734202681730640833264204985674466691923089770285950126004713202734177430934630165852605069190269574541971181080483991929728036143901643220094572085189400441389644361342797744482416432908144739065561888661972709324831179630940668762727034189945552652591537473071231284026854717075931084504672544934492324532632918432943434323315913573488433303154388163907763495019451027697163955810720133835597761517193372827424436451255568381020035254141805934518730933600658753249851109722028243421854380998389929554692232288121721061507869630353387142115912150398713812951922267358419664494908970576527761664237358907218428529673554728200125036567839402952807983606120435950807875557964404534834954380883097215529860584876697859059209981691185135925031545089280819420695117184260808936483111631758836465557978214308484470926199685963613873598617567711474015145322115285330512609568387883969587071170413278147761849131945475823804034336412876381231058066496315449533373840212521885696832596818608103280025390476711692032254144739043279760245667256139245309417844183641105070863756594977496417156055086362014792631301124033655218478961170003945975794571782318947542801887394700341049500847133377718690528224259609840433794482074599753368111803498131664007669832394691858740867419553218725067108000420310154418631101752091833750092995117922922087912323113570998126376506321656321243814787728234452735922102758179911243381624256356490163949794662653138001804577289578923872269222510064114641109282749274892040450875442778520533502120235400917468993398850208131712745828246605078739363930139195884685514231961921044446241140725779518292017134070015497675335002187952140875915174558501901715534135399947182169958110813343623172029670562062862016848247631459896877023857831657121216804541247252882612059311437475765447469098554100737538844107931078206094469080261154227940053422875042455623280929141568550439128621339598138393982445442061550596402570939615211015409898009481475957721661767295704205428228775333033895404141340058964651162550602925971037142415503898593710682392124836530030847717500040021398726500234699664698369509668147971066824533110860732518560068717812346962650585788150616092337630769784834390629089523787927792972778199489116874821921229822373604592978631836208874206494081611418247263371826893791363146078706685565949129043560686349302214217092022137290575515832840887330664835865265091520285559576187167125092258367632105204350863854283061660342251051713862191398461812708291172932994382779824957855365283951608790129667187062475989160556718098360100802608907812401955386735587450643301847621716465219854315752040032292670841504355190801568305582674411482454635670928434376736258305162935052421474258673027099268027898784771170080326995963035752978814841178029353057796117580576779910952973192704047977659704245842541288087091704513152165979938656686017287239538620548314697103449299888843256225096734112255527067458298611968578433140418557671608385684999214099160358908093303137594950490420135727523493333085501799086960109085610598772306532311411396595131033073829962439373489051764226074381227432977125263486308673152626300949015066042263170321685678101637569088892065550008273306416530148240142645891507313161897260934369160354942925552261136192700710414228683706869161703960106529530783028125750786312640404228693348960299538271350478414796517886511350776074147375502495403714213852374468585004029950718129407558815755299382372775579130549846486241075076726150038082391867802857522186711047292779490088214158636448989321216299021969375384796175833548949564854207654745737039368603244143927296909313103470606422533001269280653230711049039523506864429570303589998568922334928828772684942390415466237725790654768212309896230138568968265396295729081446390197812144287734707200812829802539191886448184438807074147364649077698764149842358840054199479806059729304087473442795223630127944105941341350770631674521949892775554252836675343023953353546857688510245787285843282162848213925994777770467146358951930423739318037948305878121715207330188641760157679578319473351617676856936455766944946601566239957624977560154583494624929703288808297484823937442034790731423249237655902429046265152280520829300818290810265115302890978678891546194892879073626819146274104639858414263122376852283687291999406012696956147815140179239515142643100990496598322953573260087963709179697044449684952289117306793418738571603119847458079333010080523632669134105805918826383890294874183206452479683238013997296623128104951257055718661894747306730810208711361631820134700301577259217544701326093079521675798612643696419840282743088957425074961060267191317357094222089746977374786590159050994588181937059155154388562845085294224941632447369923700280254448040431982468684563839822553260119607534366484572668791059255412348529715688567029818632523413851676018816721910253690479670825157067102640698403356221595428232669845548751643562780194207103895553499218417193659375322802559776334026864520922154043700392949655996721266247586898162078185643307836205820081287402799851084303737611300511289425436056075037808243284675209819051993781726828735839830198977367460172410164787055408305405425836926323845761762813598426874869993717125935503869863469763280591298958462599174158512038705545065637082893339152387235274228511874677924544204557526076979924346684977627466405110389101136264224129202103449377681927236306898967915287744825731949605191464867300679103638469410715621018901993040058800639029777129309181873482617885551013118683685732902489296267964778489940504782408964906298857768821901662929786286491670178122890817822959206239702507259704030972668902419948266735659623670835647816600422485863434859724875107129726659089472454357021522114764358728925268145103586347606293599557624232865654227563251970093280839715512574170103503885091097190020560107767693241936197208338410483343443171054828743201686041723216210745182615720554092762433709200341601527034160603833024619320648829765216853112326751016769526409369921766444106408300411968595066887134585674227534187758626904513424641745827426275859663959806621904378460759239095914841270164095747613517982814434804184760144608481841591707765705098053428583062959042103779714117989677807269143038488754186124338574096312033037320632947903484312079688239531604466339241766851825173986034696039538867071979985644742960222208763449387393669270203978287628670107678641935008004707367988572649832967088868299006192982028611035010228255705671255005486505985139087066180796028350597850244467787611065820311404943905092032836572219372085096225805631335089779029537048369258847040747167568193390393984463085878657707807417997337813356936218025978154909777437677731655128557373029597983822230354427252470014672123268722980883141692932575362910476217663297018995376052127456693932147934952076533696114915318733335067773326893552150317986896631624919128012783801505783338432359839168759240325552759493245586023208802542509463273456295985586732528987374886226463222085730185259536548177709016122588951292527176515561105917471078220153582008927986007862970816339280657902091628768584118302571626335330147150776921052690938545959014312508771632633385702114946462463551342627943495782580941114321185792350296290499472460008899855944432592152472954859898514199226364641604566539488980567663566409035268846809691479648460099930293834189778044341833288259487687016707938889252999206078817027253377280084633048129989108988884916743302613429217312972199811713579880201438457938570818463724638628198534324991822481414072012737806412411837904606831020232722940157221929222365821689961304424250670145016279603774963679078563363270565272438286752967949712620976501142199678373483958744994857232892717731780213544796751949864289494889603497101207356112063851407875181897730554109066617725683851213511433875540555279453323223898063168148311254337024899880741554142353395749965270259195810569147177222852297863817354094573776698351984532775307085075914948939002009136491414985837421473313822200666718931657778245279669203812862524959781969353543237626548133947333842336871299003441718551764829231931251045538292430053962323907750760199272213623642883204237691574447052523369791189968370860480353462981433074060503430255859771686891527090625935658467369400968797447645726759017133358637060614820918742788413994262771785505287836307597321482804436873760784049874481863418557739809537708804001834364514860749546113673183048917619577174556230719295762198492250238082783340066532143281837963178198916548747225954815935156337872802413139282006751463223816780088375988919484226170663569869148506169999386043614992156325371856310740444801557265846126213921740063362924845185914422605991646012128435356065639109588087929889661145644099964930811074411161546690956181115725163780793537582310299096964339089344789039100511284037058134888003592470432962440198500961267619802133911211114711724971987332647386267247985974391213356495079265033633572019333614681966008919658814168922716078295805129476710842686959564863921263674245304822430372483476642793405404435582080883278413893826610613532290231901564010898154437276154692960749620342483211188541138018918229753343984135034032876067738245437826779386142080661219185871005628640171374944462019485476945141787007655195555760761952761832053224499526059724550581891461837566790486431105968493057388725665479696265774334768283320620204303812672476452517096580326597587800606336888264272132584527151266162336871225402725189443580050359511503860349212242828636681118656353687716599309724707010021688500577292137635671301292097274408861113601337559199656362740288022694624600210625581925438016626291252495342081264869434711662677044855345651393103085586366987998433238003622328378580361154885419678589314364104289900278363742756583408027226215354573240942715612313945698477313773575952907473135656264281295485030567452813849907434273598066597357439766416170562392955678042960920256982491355453327452584206599011173684147880457474807192766613343412257098698203510533734123937016139748586389366705261595228958169182661230121426310772109074949295568647941606287163497672120792190452333372402898120324410710048057151187711139041738295824145435968777840955409372373490625893372782944668333319417453502937426279646481040000195967390813857158725752034609355991223550024867797484769881885846474347912014994598593213801424893776976227332857431171574298474860409688007076070370731714802356093144962970857276838813870638276948742257589356918510039950684400868506145558607539527433948674851297599261029274331760273336553133297699965512613451843812216291025345752426072185118050367308588374310745959080095126580785280982580184843142633730318642350554935555051709343941397512792257273501926984937497407129485506305277671318376526269797220274676542595082646113691114265183170254060437278390425784659663657626815376451719992899963305118726398639928449888552817944865601577299728878204222079623964954961532801790407840717450470738856781246823747219380274756364963294332033993614405079449368486752867028493974807660964143936201802861244250900565356230708032311573502080620399046081174156542583785095806739268266329701521956184811607389708839790821836799619417675888941645882950263146441918376959933612312013467371087401104215119879340610867670314265402605076876420900019282263938625816064702843085540527326518326814610526064718860880464601632544437842277381911679524936186508379155147170066368100276221954065654727255156444429340773516453628619989083686336684445870570026064547805896093425540138396541234996321428050794657012119104065419440847931720489736971890809113852328569791287764054052828551923971098995034750052513314102216839077663962621239203712034236685514683403187596363745794690642739373315104105301273752525802067465301598473297232166540568273841744600762149716150119884582683108191722266546085258442840182986524528415400817518586221085701592019399264859726224799139579418089557608453806944683367096077443350680911265587160955797892998115862226151603725569127701649849720061906430592402235403820035227986538029918548683293868674211367091752540037284323198117575594006163887478153624924099047172175574134173358930859453837334366183826474765849917691239048398869819644522779646054004661607766158545824249707938475822821744597362693768187304253139237899858023651556039190806391936482004649739876634188606705043371605951210236765791974678775253428553635956331554307358486054839903887013422366577565787053171717580247908612667705881144146427267002005338935067835006048812813348020244541848321275424679959769617088452897414368680126961429880549573780676683514695223895000552065234992261860958782060307397326459259082687606537039282406719915260848475387129614416317903711975254174083948400327857090158970521740371115402444158579017211417972939866542831367376237126117105996247386971180779536792541361753055683770367867445660026896302478070750609668837744640484135309278877715932285633967522942272856024425529700946109233001302673980413333130240168029641299687471130350884055428718421923863714307304021016680318052659311791737504280899684366334245283343532242287191234901985244478641861185777952706891139497877294142277739822626402176668798162251731252342480836271349629786085958675549265901202303753607623363757146058777553929664665147772382864135693554548475496341611125903852010947343801349762610631628052457997297690517345043507818823441185477222913144909013939001485974328105672723271160724931154450030181847029926546454193906316654366788898224097182572907480011419800045747256793878171322006571858921418833573945790602095999292424609544268401901737317055415699762387141050762310866240738972103296912982361424463716935492784396931454953936321467234046992295638983391526513271672279490853306440376179845475430013630134426148481884851024938437720621785748422262809149501844676936501934641356912520837402175051745612122159003794968883157983863702673783990360574228712100073634006750112240972660187666710679940749615556885267757895799857726320131914366710883428803898482641829418879558442248274036700071412367885122868816477016816041843154337386203623306402596786550144452839771335019040517785047570760292168464809492260363760531465311585138912737644081925737831024683465469616282625396356779213866752073896857904937779242222562943954270047506444150987178187455778270161845806536195008929735181768290989726735668601545078805972056057842470173620276503978699728517923859514080121895378967690256422955828330422997116107838328396677534950271718176323810132471805594639768911747900710252013386411595140727065186334569571254774231000704696392746859282423794682798108531563258476003733476546726122857790621631059801553986667937927610673503738583652781537210274820890055480702622011347668666768676619807113401685474926563719428180551533357096997342956271907601884847237076885690791049981824715355501261491449476038502452805215199625114179413999352217621277958896328633928974121341605175021150691062776165711272005970751769906965412170858062149296526250590121362280882919759643063770081062298937796622897137159763679969768537503865777877773449083034011136030668481544143228419027738740160169598480884064755735132035587307309229022653590548622446474979694525993713162687025079776241090753754310982534774001251812936986516929306905880591075648581667217681281294255079974584870843300423324207257622711169463644180230247086671453377713508788445965079175293530614201764238129548375355979964334541305692255739827628654903881681848486382736751295541930243734537165316401135548556777986654883962372045403700676534945566911716429771262305608765443520962653858323658558793348366150765147942779102940456652560111162890332116800731744965774847772447022746187728145420640499036992002745673355282529462982739656011594952302013348510849142073597755705985733105164703863356802826826697821594738097311881769792071200798948845918504327863440823956975668596746616825615764738338939356980896648536186340803568612364569047454825312738908727866679024817789426142192620827340300437623814198380622127187609295819592096327846315728897133836768536273428957571635143658465707540397193907733602980505564420697370623193987691164522261077048480005570624154118815444263204864403031729977141638545166049913396974936591546428961580883937120312965676884851388444637619196407104020005560084809876788365603652509915888585097598851450428702632618062352589849061489148867634331588615335870270035534087256310897474610876203779540992446554781325667511698934747858743167234493815646260302186622869374901249416560127233592857102424475494964640772646620901705792658240680505366718818624716088500395232681663687938072295502604094543023327793751469986248559158334209892142109860978986331113764811028792714638185042030914584627069497178017923194908028518379773405410369934434997293953648321007265802628994894830208751738444550790035252842525927410262256989639384016400212312169988368101405061776199271946035146631037650471198731971708751091009471638594052152576418890300503606803037339046330459548781939621723585351982247769966686525260901406786715667601819898793805248126278625809241683756475587966513501879965153895755873874962790682615579976095375528750158514087558083297917709261576287048327053088487700530159958000206208514818254651007362276744392116409456665447161188950026107381599573565765861553831718552469794251088571581288300873633029176911191036886948775886796821380815443625496117131782110269008341999638672370067545517655565241049422884332834557805110085720353337968585509862841836155263925489727648448016234727529473392970795953514129678018546437970693117175061857320170270475307738354350146989825281559633298107250629591144579484153628433408597938143244764521484287876546282895901460159452467183047196887774938934673130045130853983108927473008658303467533048337543297512063546130572926412558629443660354525361740999414020987011468909089472211729048108597165140243520288521172556080075081513337169169986444136593519553386455994564033635884168143005272068701829393865405300605377456500083571131296452843186104811503922903409622436872455477422694831221299932317006933697749555196082763550954150868360266809140948433366809154017123874884702577782806525729013227603863240582515073702036751332383101721235786758234364912376810308187017426962068820991650869159670553439048550409951675350966781570926766353613100002690358885459238705123403385333324769041003394212229229786561653417551593652578919144518753928894869001352873629287280233909873539768062293723692749383826100956807210998355611618736524220282427298512784029915607854499507082824157908158064773571173392669442601403203394512271160894647551613720926681453887189583343677058318064094470931792444359823594526316166057739655504219842552731298731954962051790728412467852783582923567355930013328208479442849503103400189806118594545629469143997400954211849517104749705399300243295488088009297776810618010803460116459045266137556399098439897479735677988004258000560584234519304279303890373300583679965303993162185977972743308371463466220217152227922945859257072352792064802287843861530316273718467030166422039548870667251532871495976469158038560609697754642516446496848078356785189542779571963603212487285416748459201342299711830283072758888822351644005458589372262075121574174894928423886081814369359899967585430433533175830388702874194748131801895496901559432948483722988423913419730329662970819667643150341624335297628021415882645723144392623322553697686985583369946015228676968820341646815581230389252409102391544357526786021021179235413839840212084529423444265958540070793310457401732755737918031456226354879797320317623671672496120928354492566300098953970474902428072043136073186052058016042446184279813200114274320328515993961117039574589975229416992883949365083686446908072130740025459986402580837335877799256775766292636430285264827698935582077755087712243969025876737382929349730144212409805905019465345456999221736952115920505657984245244958787005190822443667058113227674810892776528259124155798231627332494718309175362265713126789350886428942039827975802438812507205009842477534868405818015937858097023287229322429337478117609627898560272747993044929541304599511611262619476014113771088778316117192964540722789342370196119023500907912645438607332024334909694485916779240093300117422007243181258919333396874715828253147238451388210901172310208783837816699323189812076187675032877984340168216509547604863755255095581802488207287520987650489547072337150735362115376121575825405606790505274930469790643031367645829529385558933381781518633191948351306392843650469654152043648090247518688718049700280720374793626968543932893262067090265637486453091108559214332576692205096259508908990139800327363919477408674840863634901397753110164209529659738288069258309891657690380056193959244971748876352516674332533330022200598177123941110919019602435211409368165437443990123256789901722167416082013472483555743909792071467873892617095392427182318236472786566369458924755092896457523489555777747735557424203802342149293954998685104038818248160534959107715887958098500583067343569426306881465625932917944663806713426952108437842662798401814390789590207415375876564080287180890578966789772210216097019514796111203400187472801879672125935708377789715736723447653071845754555735463825778464969651789215664627216699458391665987829334158783306331470216915485746922281951114641315713523423128357924230132311183741221328453832417484095545549106312830543618926522323883161145035396801635394498116924230833949960268904910308490241696719494381215470650254625225448601636713371467221941009541351568329697108575895030287419268453460780491926563993041547932683806480982571142306220294240733024067993424922879545010901477734331104980933726512838088479654098591791693659366414945373703237717593771769210480160820369515786260496475083334824165870598846850126245001301603958173341122316277699101754697858792356226830528341436862912815024225462812390045982625195289653562696497700615530431519626066477464906049328739428192831799780181068048113354156856514139196449558350105717101866272694465761502808607382544561840679380518338694095689998472424308714598165756065868585779522609869448265046987217568823046391617984888516681845239611561000151021337157421562565373521455531669562010052743712341374659778047585360673249448635264330651973721769697710285405396737533076918604922037427272067947399288560259129874383853692046847978099854135832045112043801618612305074885966631990196325213031781291216306115065620729401859232413563337673729217752836791602410866013573459439804687334413301773980243925177274994418281016425912792270420639115096023344290846927877773410949484730566941298317971355001711460961283171129934707567580033873835320846204469461459993686070752841113018474066973267400437247693822332767662430352064102340498852915932937742854783100495200088006330442863200375305416986675449798978613621263266438724513320042952886918280154435751961929961226873796800247157255668723966138057167148424680464421362368004889139979607407144079023523745973853273782084910303832656811855837072411742711512709602033552989351880487374560487111022063293718909183373509657973018908865133213913337839577478756576053412661297205052047057207277768878166374797778529369175955941245505256233124038179595650929068897504614783151240518454571375749600061818491383664974489187640035918467037371186252055366018911736821635531767083589833786393643698165398602134329316716683243422983804637875880038071323412394170816811450923038403743115284914127517506491013997601794682818381828039992569570029555068962618033394998755403325325623820470545115702841408164050005956353214588872269583449223936722930838937607529229370036940858530616725739493966492662480032873974986431569868720734942624157624327620480525337756786721805507219876036179126056026027413037082912536577607347443440414593786356584167965015995013235583978365360705785926503029146630546942215764788065244340486978854280995248127700020099518317583332655554725214633597967793659675248579343402743174374397609237339398613908027526584981787150689873244183065594912138407738503401426138547333793907281714519857381467268036819588370215499513611670822307237569037395359116662910533055647435916919454846000729679190941668305115742949764660904331723277695436674508973301391495863946683857412060657458271521623181635387907136460215120351774424594768561316053061941041198389643476502357568626944404189716181307277410919633162428375717240456696127347889127533280753364141684034829229148428411431141681851567315799025259781812182760279184785232605989792539913534083563511309847847386110154772770146486247177496896665577537713416538435438305558763828111843872860591593208947872765981992805907284852686686082690343516671288635406068752833243334517687779837480456642597951962506660202439593083912255403801582715848712183779859956446615170815785166355567756293433824634360144793304074096788163602290237129645744505307688333083541217948866676249744183348396171303110746175938735933713971975050400448103309145327887686111930834066804406780951003400050213961741725953944419949520946592460740779619812774996239494545930014611828599137929804344826403611499960656449690178977910798298686093483957586063066857616722853798532816299578549982186256782959087411985844391259890950005006734449996083255360978313666958287328823369124507601202732851314037449419177197259254590232993242834908336944644874817225825548169667446970933568232131035872917670459124456674057381604039239244469180083436887389301173293859005063547671143962114772939603148790745950260638018397000725197657842417508641271031820218221478435827052852931673524634697402531022622169892562415859133046823836330950937418685509211269974585450535916270351680333634976031590679196117251746193835982137826749956868681282772112480990142893172731350385569830929687548712653942049838461041403320072180810700533858232659908509931586998817215425505092913722497879857682482707278788930577510927072536015586525168437210220813479768472892067167655420432277664391217285413264868765127088482298957960207481423539014681810264950981738202894646643964955737154864844741143671502016252551007018112286347857090851351633800172025975552779945507591886161049049054580776831547706247484678709659456329812688181155501034383816785140540571527834601718999166657299187325774046743463212188382083352017800158695769935769674409301682346986433488637537253258340916572176317573363666498025386484274876290543528648383652526273858677837232958501225948838581451807501448225241224484406927960083354654454574183621381301904105600802487002413879395885108064976281339418596831211542088216771764965120160413601461948194307295217959265434003611505350514141377731580570161526410735048359777697202738830979782777372572927118942149327786629427923267107863340759156053403959566138324296789153244275448731404277095406044548366180707937417788274846486821937918960031008400421148640078173600568658739984877800541160368575450692179868380007209709890707105472580991329149564918119938519562856916950047724330926655336326143673371962416128383181045034600038880486827280652114508038784240758687412662112594608043237123055082264156771881093999236458743284824952524812479074553524326267906878287224308150478058868242913365244765012170296035613667804227102289353214208453669453763281597385688794723681666876735930860631674036220133640161472037556049215901968205294917641486338958491214273290588261564090447719838291503150350431089765020921077885976655985154200647391263446291623127197553577238537592334302296865621529323728663952110956210323727275658672292667712188170498084222889957478887543988942792374863542948096366504235102407089286877760202796090020037514247180298896508209383209928807884460263879024428327799585217440638495632095264863982635626543309836027612393196725580221935185296690994862918048825024211941054386276080365311826395889018678298238170900862332735813798111323622715131692352662637989788580966767079505930743907285349909020050394197757040078411852090408434526966962481113184574448376853237862680348663998950887134559677596914578821681302537976561855681441842087680543636441264699804728267389903019814486612174799068267130131578263110294986740135293082432672195201106193460455851830899605598452906565825686329915527041996737725852229052457196840055814985968762392437044881521242674393703250693054057560431952812790430134010885054244742339866411885551158430704445314959397586209917760038524008428795981467287994844162388146813919293913052849995308926520035016436364064019904528803792784495617584859170655060072689114916827498566800851272259403488825433032169578701202086614808240578224748012506815075532069456900733627136714731088983846866885858448342374933276294811909211315516086676851981272875615344003377915712105247603704855715461926368658481928176703691512250201617781655440205340660367260738610967428135694936840732833940110016417371410013267502635573704950380219550856475137880952198625478625163134891764393260050095166517758565768939203892641996382059428913791274949376163226769999952786603426901255246466313301015998764090694877326053265281541963321959418222227546721727632587069447029457197679781987880356829832266564028426785310597398725809282467341938860145040855471735422102542268960340287350969160465795604254709536043342785540697956252652041148740319167460260894592973433244577562180192980653861198237506039515345184096406633722998020521190300192973691906581879820657101556990761130783965335128775997021493447757577486394215766687066536218426828112001340473335944344446873385232452941905454951731429287509697870312603565484020169419322023341868854667261842127672297971144867750696664825586072648732011718528985086460149601190998283031681735714743737435877473167759113556662589137975998838177123285945677484523368489744240225348701414610506722582300045341348461814277422336849966368101367471659280865019921324237060023768822802035370682399063272575213537239257997766032960370476513940409875678553885137417955815928072189441988936780361494408709384867416778306267898773911664473338722361533427415252451816396649257313283815684851735287768152477776402886500246792949032209929320121448270212450311561715062727039143386775987724909363907206774011479102808622304338922116464840252125896592776738985400314780486996753849845796736732006970265258023810311519221875636495627903877392859576406062515735721937410531940428701679753126765868026689249933423763918436489208793661856433551567753127593081812007411108394086875802839745752593807153160031878462347791321608071542624887851048276943778493054453865229535080455805935261288209237219227422096505357829945353484499621501829525531035820718463769372632218681940305629879785424509342549584337363292585090461909834159647096984138922434964134016421993857416912024756888814277698383133358427593925930953985002728725079205319720139956299084292739645781664693901081217487683838045852420202463190869703789999742412565066788912547009262928421227081939042885863030076608965774914199476504068710101380978751810648088714310537967234440426967715227657732339286547156154598547751906689994041442890564376629079044347477328995274213721731502022079332125644133016016159127160548685359162540990457218710516859272987644599085940834252545374210776516578202179284401664721397104627669237063556550943206639382331566318760213794043013832441914781952979636064212719129567839876115100012946703457852928908736191118527045410512525520833322975103897714730862684214189863555890852359423128221313472544605165308351790210527662356805902475981448156175347299493147247931096672268752158031493355857765211779770758848520196755144466865771309724780075282120309221151731895128020220666457352596368471759863642372367921882037718089088770936166369253879149946917817464386293118552675058195079987554029024298949116921644537050948638036589360916923465416011389247087697592331908532175675676870109813987445790651216910575457132317616223413452025555267395634357304507122087970106635140286740670583121691745803328933270879173232390376847438493385003320798057781248032876367155184227272942146355508271762152776564582600805138128233025452026822997258011626237069705530960490489954478770818863745233064790894778186564961412843904181873689446298890452358964278154109755430857015844861267732402947610956937354336486863954428414424291393310612075929540383793799185921382165367409814363791957197059488463560440347247136225101311125983603350550853112081446846276544357380179246172337755763095883155626932470897170683163451086663389140460792543083057522532106877564667751790300376493745634192013669086067592869462588252503061674207303771097097480662533994356067500256592770735132159807731314744205871103578249522776115539347039616183278266657360120417100951485383049613634463509251671032915318242135915044715062770085211318530476899816112086163017475617426116665335859799174934711925598068476482898038325184134617218339340649838708056740793380509706554364799824378607917324257161456557787695540616748489377657580370188540268523294314543487884650094030794515779426133492477565023250345515432921080433739531206889087045208981734029255139606776654964109591024998242488111403290981583969350495812655144891955755451511623628841748591944875578382973981979809121978642997256749596906042377188424042974327062206331812369880121456437554003607847587942826474483383299535735619950210888712990845338164088216885680993016816261531763866767595060108043027014440454844157415649706929665265922161086133868359771684847833048351506092100931825938739803319706153263477510768519507902471652916148068907159250785559857154153255694985006306988968320985608853242377857165538128936810250486513363752003746436021646820737908667735860549814806757712200599443352717254929320282772246943785420990026929166560880047309118261556087912127537128354962147141226319561043009340826116160087742184915549801270391034625482572642513346309842208287604568867526108487791556643517460245564378399506957919205120460634511193676312628171739487189663766481814907954762850928275947462089491935386020052481366027317486097397731894586677877598647175472552825582567016255688232106481676708809101134480420422356219799467504782764736358499721007357479672150432271493080131787110254298361602093390011993732273482997639637089730274516501617494513177800645199924395830196939040942602408106519665702766120005805419856395983033424360288490369497751306623585390511094427618134270958257480005139015943177349441161155521574106323976271558510504991054337890143917900312724983654284019687503781345546083252960653721943676973421382070983627182409691961066860214329197639193400589332614396280987263593725055564152322642043267555881240383426878885367462989994493264840835619271419345052095461278939859486498252034932881973467931804447195407360339022323029033634927276572816822301781037564775422115804885345311103273569429470834589339342260228449291811598473115689388765793272264587482509231929056214831496828419593535343799435678265503582708926612889225668945958785693989072561009890393572213010599598877347860551668655242185989018609478175608041313008818932206625479698680454291042174599313810189741747912386215306696384949797670169880828052375471951814382140054138067683130902560483608469772629923325735033730758286602941317424399839755129266377325181362977725059894029986442869453219583212436934591894036787217798100098045420838346255630405342378241924984223573236456730040415289817886547394072463836776807409660839969684376863293847306807610811021587037561334254985359376604589619085648626051888277044408349011808386013990341310850143065128567789886115550649089882555892871505730967992107554076923739285343351285481171615272188381289431342226758681333948012828399734462096246516711878535001298014127889491466174699071260962772717079355427377171301433008574021329981363505862122830213434007797367396657758160251785252190702853271731936280549695852616755415064169527474331577033246527350474083451359882196536863616520174119945130941709991885072394645654888189103398159487641211613630342996365113169561756401469719665598947357826916386219402024283355656832895809097952892717500830285890258399513843307277965136274910437566510794392591865607268643170441125783993912477247155071215407043697642963922717503902579842823039974224963682568142161519034765103273123331202649042936938404589727406326322086130116989198370977475874614377255298805279418011745912959124464598025478738980731225330144407559173785838249315780243605670354962001666942978423000195547767577945183550941133982564759865066692192773701530769502676426588630135417313429061188905792368799576105355352845516830344670377854548645895119606357500945423080301295489067597541970667607580704555286158175367319664442262343622715232896727302649909695949560987410389142500808496765515990508738464775055446476183171263977600832980514719178652118893489021309346114128917715304790710849808709798470258140420205245645913300040067273554974983230852543240054031091279129994191669953981238393905550215903930061565883893998903465024631916557096961200477935487539722194905412509379268778909406999931108302485338097360143036219087720918506231954830823628093920582959944728834311673703034731921527672041443774423963635176371855219567869830642176369614324471272155711092885572450467123288780818630933090582493196806599430083069049387677034423785416884969739315263275024759816641822486618957934381435701688081964366479094008440651129967291252101810173834193975505817140670839325430673557619553813236431738817082203364666093199612248821623746970745163874619989444187618753369941177593076080324506189408218552117996882076577478336971137356976651564994162119279633443908457811255256415206211292280908033603980075094234643307489772681087150710130429687456016472399612738914893641166733542918129021312023011781282547012936165013406531682108927368919733664445847610810323195275969637675082240115460299911311917150940313071113967796395533024845683910755144034274712058280988271761592522553068340440685022701891503235035098571116909471242497926521861764477204815463729579386123425157012800319241692922559070733189108291576088599858797164700760569633919325653371896343503121929065153837075586557622139286550290197875854439174414871550846792518084665950185571550531664016102717019360362574580635664151596194525779542228836083287378527277082445297265606171910176288713331692900455029402182786964837796603304403677552986933592496265722110286605429657948794078203038061772049838634410523584357458687377105042515169693945379338684572613269822696410648118332887557360801173243146900353203510628817051166922433949466020637014595884898512169352346331977376901599415750811553128482074633288818647141234454813740697522726695980795594554737904544761631646455639138074603684430621395976035464864340524676333306781467534699432684691695322530670239493989103960160643924558693044472779309224744711957767264715002240554784164445052078674559668785236527798942734177906843757112187024376942009779815415577585030035302067458988521351812224162867366028178505050044110588334994576835732876865322352259744885881189535964343378337242210614757482404819089274457390618364920852983599351090491016826600711019174346456977906230752901929210360164588565527157496902959911465483669916583556579977003716607244836560143321857201110383467032873199014493614231634850687054861564590926872855333645118343384073377364823558075742550754136023880338828754950928484743541923682025949108239639267877810702192302574972435009053143716098848475093144357266562737927694926363083174821723444538055402778610174159164605453745738217895062365299617230798806280608375014227468151045677192842178238328061006820425114819133376919427199365998547325768518521325644733770100916638962351427081956975266191360005583277757517651355283632492315738927192713986804230165439481212046072924828234124573828213556190487459081336943474548801788017057627521895631969128024750315877132157672832169000997248847128928711103922098275751677345890914200715416266828282829990379032619353332952939757749981978630984878218747852469427792066706608148496809811331660777342720637533968448928067579723054095423494466655424825543103861752849902241180224479929333239154328556452850957208056255525994150461144858654484542170898143747922180463685746137089371855806944222183441143856230051158914359287775527679220764362861132451272487307320904077144562094609604009628699037330040513445547630259941628108069829317933928611532639740068293429431952706189517482026274427687731063371452496258148613901675884698696996219562731023498781318207380819230189058640398589927249878709784608133888074458963800241986788118956946726051117161669038075200584375209100852666291894812100174859059803287542004606342866667656931121562392775540870857194631064883975626957375338388868388841230637145002056764258516647607250717297392816609974420278623409841327334958736252704193702795084966391262417976422068382411087252171460819128888630865947066356503207115468138453008849833027865893057119164074242316597146746075939668684484074829891873643721798985220786798506201868137778189017655728721941102264592221623423099502226868530404757015126527998773448513402372551098172141564930494901725881841957097518605286651695227900247417815751412402320049855402439617234456975707704340103585966228351535087212995800807736661082798129584368868253915973666442585505180828272956641922534631573232819934296650468100403038841024716534977608981114117426814435560180591429027199458885448549625077315520684424180948828648483959565329854441551491004937348390460051713877851004690881091777738508129784573436609780138600793642235069873901325197991438855996192520617859451857973965247184611338508499863894852612239528960234445548725756764542857897082461639730991183611473420476968204416609421265454335382322833079112341686622513451248091935521821349751342965703834485965214418086610431162671301021610074112285932050016077863425154223951587258514124714072248020444992077479923655279404356037409591445985005244668878695037622798556122686912807720799795658514014932781838805879024983832585974797919063656541686970928040267582945681370847619570218068880507254971616840789339315835053752248893031096995911207373374599859590666133776883869060617823361186597183086148302413182046560072849529816021263803470544915055372708245971372201278502182207070856257918840249638856446048746094963798287451318199118060305286164290925133166087091530248604850518490094926780467116191117937576620116239405530062382356880785760323368540542712845420432186887379924845203011901907858944389332316070967030089449663751237763443578965055115215781304702190091199313414816569400594659366156694045254566162569658741782193871363382845355280357026251075748536269698849934545120890228341333107597694892470832699992857483578523082912100789098093186808089844057196555515842152107037345196234661625028207611630121859801518521508503721127810916851353687088383782396107135017139323472512399896993737489145257407557283047637079176458391764897841695806805730941101599863381477390465889791871999324119014342751902329467612206318784715091941283985061976567291101018371123901142576086203048322456534582432196550852220635334918532050321879252548764861942918217287619861274818123927784506031292102210211987399846882064090127379806244509810173797426155522330212534313770197849947164068456137012616220412526115729952016032259544278410764334175517113064143897278413237660864860683765429953835445461976145171299239236455124134137524053858627346380726958918758681435857644711728921911842637755526396227144259778733606425531614455102862268090317204996913944031790737101273372516016164381838643293017476121099896778184368745032421069800090706202577113101992938181053761973233020702777953105651793227716049824286104404778938850859366228824196549125260420705136313969969936531622506021250792922765297293726917649558079661658844589566425363191836538447669827840654357221556367815672276596697348099617172202950767267050784151664881763850351845142963262966741218507200298345342230070289860855816087254068341491420135546882773126950740219697114595962584019730370050055925080668011278872862502610877779404362404125174848268140915618044990450278428197120017784898288803999121366101906011714975957253957121264002088615801217840402941811554459481015913605540787530405059892558840827981116747113881847673023484446984111881310425556782214957638711528022036171576485625085476438744342795573580604428810455816222026453062097053062554397589394741686748570562279160111442877118999384564300906212166748348976657324638594406656074187086201730588921077350562325800516706452537762599940227401226784207433784314005203303811930491290721526177889508759826366503464731738670911305328249651709327334772246319196363262717875192481070511223434534440050193673455069955188093999740953122111015731062999164694273848615314918158007959982571019483678352841387359209329121706350775525932820216177872755702752766937091422590616447085127252049613417373678680301121166684256606701925061156814200146800096722943210243632650041430877498697442497190914233002059663473302841891633690285565975524886763724835569213646796929338331084179160856643152581304580975413055535373720727085223922952312842558084822838966135719447025342987785203129716580588605023967282157062892812743559640706520291442157982130697775357066579076204569489355220967681657089983202483723646126508959315668418372308976353756049648376394538833404448451904801565115079577510942139411689687199447720557136653233955912900518057020069072532476461099476711316111740859499778655011064605942848275066892614857490962828443489380769603064707291083650924826189264081098806630159108943880539699533317599609045128357448055733973780284762807300656858111317894192853065151620652648691184697828044563174313901807158841118721235640357783051501034192059999713275996293460459618796093404608404144332340116834445345586931350696956844321341355029204876267659718381810226183684733081392308411595906602870664285035939670903967898203413820258336567095153526651962708419116529629371325507727979591520666656955156044830922043362105868852224391044134877229611839943453776533761515469925230796775578522648743168996069096154779078910844478236020954767652998663934051950956618722877068663654569576984973030248602832997983026703170035519691227058027683225286680304383327194848761317358759892487830828855907098967959234347126845250083808362351842897876474480024043764502738535063881312431686575957629000920220208041788354413746009368398082528227911795538805478116519476191056997006260842462925249844203628361899197325582438798096237874309103651995230743389849382733300018424032399264419070044009328018807269898637065809708371987904192703268498797054492922986192099187638055286631030988667098494299001594915481027431294101048455826734792811739714974539274651876420591817886928941959525951768899000897036649614886558384005038550914989050419357706363565878398944230126218754356616945498115720804161426777460524786237683023230220396749086903392859248200031374209979712332445600942443589654718716794015464956975690170760348461115759047861330783127861935128982509593590035984795886590852037576804892142231163044460554139276425237861645654474309030702721394741677728881135476317374462379507335908002448502793079597652663795217933951228264154164388642325059450791175429345312688848419762628748166153241564330809144585716282883581180752753125104617494391797255764134196720168634060257041420225353467162218358824374677999535915580239645914895522922189552919954272067382069957116705879255636164304983662339141605077768575901286781808390515728622040240311700035094156688811143653317394697997971690883664604183397152561241342654724584706208529305442142978545084324084072623234537175104876575128754993539358475151612205717219178010046171947994744228908430079430003969721142456322316727844701562428189510756405739509788613259007037545835062289927817868958732559915124085897894625407772772181799956466446655780247558895525218636487513166097133115862882456014815434760389062517966231729581763931420473149522673630216127796004068289443929143544513807688104748783155197210752985785591213185615021261371494786925396017906789950365590672799285151179210692893431001328598815763438658795972624173564213123072628466757157522348759350337609871031858225312145253723778747227092431114855383666892922536289649085209018622916584228405879509278709340139675167772739803283544143761367115062551103878707653192489409767024714773828239048294514140827070813886549816347532866574046303900003834982992600125206116994207058045564216532129816904269266331175807754213825070099285012040897822718651315954559427367041504637695112610103063628538765189753598396487871259943740336970926813230179259064726259204187842872154528663393940619173370257463997595102500529694024137983331529938899697729973974254933065029352833925028936433530013863215714071958773660651579579394629456417211564537171545187508826266595033002502476687180226819892472877109063591434522509925303745976128052703802140819617104680234464914423775349318981761826013983970786974653143535918049666397545734563423139502653238823082361893588045038707932886029520387971993810723613751735934459134559756126751579957692746761076665079357433395927203479878202491582478325576007356061439878885283606149755517387983302068002992600747055899689258084509495252154089319907341690156062707911993370357790994776681143808758592930009955855061741976669610945761472948176461382124139039796656482207898285285113095790654915932931283650478669357394502567352592554801075575790083027977941637306745080590632664816954519194355244610287131850138750381939263295961943391999232238467106616874539046888888457100760021611013853484591079927641223733843539709325640669820960532805802522219312431979914159850616982972383415153487932303229639295464836991359882014319614495441336567848326437640613637912635033258046516090038319540043604577532840819364886250108721025957613468460949697375941484165870242080994646931425447929021519239279267552614507161234369362288751671650435102382097896145550661031030120551947942598958886948765852371110778942391591386374799073192559809551901553943052109529588127568079392194753358954225726129525760795595399449719765128885533650395924992549276653087689270920765623522661262773671805059382321674506426876093149403536868276815252124509398332251270633768579258684466167213717019560769723658772239504626472602582725180981828645246087648658106872270923591989750959065573475407340260953889735502455670101290484249204297943964002290414381103084629569786954500488814349410982507277441736579779045413997586508270528670098002230178757945511404625253344881497077028572805536261011393459716510154995728091500631055439894033376795609318025039643576333029129180910027298548654683929341042765037630478256914015434982635941510942113142834448241748381868522333599532810798235801399998355036125360211535261474380225633749467882149009800432628726768697894108318610029816882480027305797180376590469533424937226749389215450256895618950332538212038587445405326812198795385044331647797436966582006676289390293024671600779486573522952843729624101248487783331898444084076989104129905825799795478647685048042146833386497341853180521618650616539906227414446085124023742919493062784551235916942683566971187188986295490522225692785139798140423918535206253964674063685618475717628249575940780834589963412833067429923063369637846908198729616053715360268075539535355249790542175388266070262182434534492384897325249936153359158525557289764947297984037958922675693830970379787625054665595041590661516351636257814557933963021726085504344289674371045223690378963368603761977763156360548757830571837338147746810944623116097785870430229430623402864262297392103688315062658132287444171366133441531310546706604093105122458916902217673847133830336778642322618994371313768335311841814917841359044483906344046046208749894253931053574836625463445620943598622481393021345458633975121498741010909253845253830333897120984147446192870857443911092148224431591538816559089211983759983456757414110017534451967367954859464329462474773149522665957870155686585275053396235263384951886996928848329738394514099265947638113032942574074186272703558166796905512094080846778751949770784299945654538840527349768169853106081346510856690390448552130381571734971228292276286235035567758515924000685428287759613762238058206692099274803280164032935357616696877106842528714517288711021796762541927359211739580119208844073879863046745046384385486545685673951271086118909324879405347758226429383060085887447928932876237456603647815740948216730392221792084821674751999456238522235188756378949037624836021391329371832693618143412790714142728842458538503191372642267423632630121640999652872964706707158550448646489458359755791202591862913706626808877751724534766988471187100867032315702011232957833888286892618539547095032428952485030665428090253320422089878197837854713706506617604997201456957215771784096257299057459937096825566076868690842827450172615251739668619428707373280323684179296321666286427440857865471974137624160815015031181776394760232835775482396569496883699621187554789533769249145399887832636297327359095689476178337954004675877788860685251529411663901701360999788705007475905772094052708398627015398920928556221751060574162001695670796978151308475552092218699603277530086254003728895120565022803715905077677475238547393748481084010263545712006647586892954808039789335618086801176325186647081765517758857512032866929706500018275591642573672598606250340645006341513640344454731941596177999097872057468857734384870369676805162250594887658136983692894033228228821501563001051619228472783686417639247209272381115427180828923838363886480703136000061185203649965312191008832850082986642502635069205306521810521213403834203680566312936202520395704717047107819396785803268480646727556772341192365161881598096271741951244889815481802113349721326965262772073606426087142636872510209046383764978254490036745950384696935339795388954167951906726941841276293742013801916990506807848695542793315249376520436425410132776306011492394023852817909005490234380479742301563185729124623338194086298459598733602177424855331361336004542509162310759346834833336685987643401352648829596529854920049276396219918352040005436107250868739235737443332609796459512991980470723730485029139663449661282618739112223852246288545425374631530492156568264734860363930724243166113512982648826874003587417615399667058459711864054105321759629759408214601472118678667188213046668506493326138722929480565416254801157972923350943295353690548375602318004829096701931588850874859051700669703658066696719825422103270015962307673090687904564365995070733011958071580607320390368964190353328140068445377982696745553764065011556309687095604398413900088039029259133892251700753121391171119643653592589826785166755666229152754512978565532696093364506666783234707759140083964402868506920073586451186043205445108784758232743759408260508129842965697579643464140130429601012561855428155926342359504740844690510972816344525410168017561465026098491094052395909479101118992025195986409731271250969553998384305594113540786566812697951208389946141836006442611289033507596906094068769422979299744167572153640004127869986599777602264456483453943446044548449605445462296076699111479872272579075003482754022148390888853107002210912915415916479673433727728360619836454568117435826354627318016065491882345498436852216302808757199878820083859542227460086788691735422036706257833617291837595108895837738936464145109833197180027152834603761831378495098427046332064283213322715849232181240661580345334964455078153190840202588340322611599070850722995467789386692401689430136142655383507697021057817972691044596665944405593015757513716405237537736091598105998320449724627344838673603144329252557581164564394919966326429415278365707849218328336088169647383564221103761936222810066021390984391773483511065088078682233046681845898108672246698183015756803395885895052116730312609795189314434317306718458396108760006265727616409755296462850756748622834718946546374542600386570559133697393470277865484582722273431585806689957418767968600803301527082071509426820501138948528505815642360166144965261195017290211185905971123768571142593733913054025860328949575918517605202741126536572151036973718913282703467140253513866259120632272542244405959360271789760044063075628997812407974355929475999689260163506258681269432764625521188477310789719134501981309324324653235293754487073811206858663670386367140758297299094056874950866344558347797051749123599379641122381966210583140751905880391504642690485672637176753569737308528092331788199458855771196292227311507141282814653816121164893327193217784892561626944230388459100138450733100347208858538214157478289172268560138307351803615437323252350177957845983057628109306659737955159526256464943526233717084257064916994888074036941331150951004049979922839194146208312701896426146585801751029238661196451435730302555788557653080962355536615237508676098663742667399390077989170719597984866041273518806323466888768550134131141958977300363427878093237110055572059068790570941067064574190190266771252743976451889990781450651337489650932489003336211937959482788716248723301184301477292499561211490506276531319379615285829717903144549624307478057014786577866179323751739239792081488394779046536875475179851807312067342960517670445605288407594992742253256902861231941218446225362025085307044537537907984570127839439503528956234452282573927984534315258680626342088429522331293830298915196689514759173649237588245164749651767247271912749876510912032164771827148218746836032792927794684570513720129175176579494031676313608033925386651259803862023853248936790995526390886875804351532005114048384444156083476296647360116556841814656189569030098807579029578893190635954247811684323676156182430043749925151066932240348537189297929595453027593215397735592831981717718912669120935564045286370604176309932754164049512188996293134603147708399826398812296342918467769166445100265627729594282437035534369543213333753184297694426769141341602976666638549087358315153183580998305306525007709265113473365237316767877426469846800014286370825108645395195396736169880135177569634416986483449637343627694180785069626166564299443045781185469502865370083785524708504622890768594482961763817826947299965414243858738634366809646236296302861265263874837507855813878228102606986127236698476978056277691461956525439653377317694662669949021571686682482556196679757149902771461565567549655279334309081036087128440711954719723164846379477921031262883830230239090173286840385371872219549796077516335969192369887419429744681047534730405894367930966360568033500979818383798263183116402476664314527757665625512529055776167179841736159256748723894793347768672243202379266507827471986221116480125864250293991236478484723471315275671064416643066760052307303800425492292647656543900840028758928696195106087471189667239552478618779920059046930832816813099277234672758349649954362287922689882927867413478370141706568929834501390112820874749434248158163242320521587844289688027784404035390161859682156280523784252765833695394437857496757396269975967397091060581478536940582083133652569220130061977754188026715242857957878208040397901471947780356550408039583516926643061687838470985135830214756135883923411004590277141594774971972720741593106386532432612434124063227169320477308999170487573385225178192098983960947463820141695168387825445289792030255948193561257486183465232156691489810370724945263846411851515348963320036692232649969745872925247802059045409996589781924523196007287128660937482508987779251424006486474897049056619895227690679935768920657441784899025900469502577679010934740740863376775625832174217630847874700171344008332401810658638163180078299084491418562417826787498339343847015492567752676983822293977685534536635843304760610593196701409188059872836542158499736487129871153250980068089446041001768132020871853461637698565828943732938786739268217715177224316658496302993229130952116603372690208244731894747193780769460285874313080476686205907402840343076395688137496401178932702485341243460759526197323328620545607391752738744867557315218680595804423882805860439542043629195733076284906122876509786613261755472965034112326777557413065233290877376179603059912992217264136739228957116880597815705692111845330486054761904189879785537645556155785989100720310042292848341780461735438119560504916531942727424878588750980250938544447988957647925155572712168812023300652263666444455229322830156007953658922971230152120998381343218612370415171908338923340073217181934896477213317421424691160196475415309390131871474792863199455521292610825636789868463312224848409909655025784173736708053741083035196690650477282847374647579457921199053781194229392427303053577304092888227002743819820561963805733604356845201795950680043303890402507971465785149616132341898705363434687896190648802823127611679332550009794600540374305784744493492585566225141642926831604256388120089575035057105632853051871441148007891047226806811894777825883355628856366538659309451872187713477117395861117655255098726229561257151339379069410133626682840111387600289790058621192094988307109430251723098009673246609062160424459046839601788948920190149835813969243405643862556354092815550163754448302291771561778195116601722043958965640283902557637752324394001302298083437257138157921144760121933777798478724143115460524549498807856511673671297844192801545143210113903647575788821505387370315026142894378823912623545296070361520270203099605156080437902850311070557788641519853099235588250025223647749848436342653295889825912156565978970418485553142105774930525486206310685572611913218581716722906586913699540010556318542832829817249679243304862847446512717770762477777122608498884861235685646228959440086670928245987779381713896215673810000663889290058631286892087367404413126553663330293466098931719824526649137627912590844245992289537723724861115855470256311745564037195941610088856610600818809979222761289961216867298224586588162151126549677203843223464859553301476266881084065710835863084374399669873734925641209932041072729866959971317127839591199309323838823661045704761294118556974916642504213959826716125792363847357334679560854859512777268557203407984674317566814990508929823961714857130800072452904964449431031806497289267447848854747083720295067187954680718752584203452044231897561445100760075806670620843953883217395897081815172056357827349640284561339270431078499086740874601734358124559369428198052403201927386244682013443347345083043581136104754868021561702709598808652160871136119623256382244137769226430235870628902533755823720281546548804587807306634340566202539919285618937433355766344271120086605858082810929798516087086091369940533052813738461435708128526064264842853107252199010656822400698040532811433003617826892270009601760212203966625299692358509678087618014179075625910532261397800417954199453905297598179226618641686680461110896293574358878872224557496688815636479367066532626533625802194169974149627529346513260444885138809173089914837070778016613178816845769616586130558468560734720817495338725734263972961499961925200229989285096613812597212685086912791403362821421933271637956256032488371423596278307311472336876237420212375929356552015188848072059697387312227221305500740285336061155811703965336269483259222028916255504461495237078295290232913566455826962520774179823958829477206755180240437249876257768573209924104574042493692223991031864675605260689825380276025387238901971998488474959471655319390401966991085768586429680132679556135890161719566005601786905904784307621574027246255149927088379556233640654137463083251206656093716789021285491484859473834840752410432497663057287049204365539274145665181565692305209894798270525689454243522915016326797989371515793992612472779071443655554807753857469717996715495102862891763215237758119246967251517075286188791274808411983540311805447156098136722583887128134738021807164980718728187898190308923927855504202862828044124453603192797965387126086968455060800341890898233643651224157936823576629862704493658502027688072175399882396493117233558393684552557014052548603647814018920978071790231912963653633607770404735171213161813517325959395764204124092462258988022378793453059831249422366455888100352940460681205596045300109600193576059309745159086075593770187994545091072448654877725607638086407395330213348491819724441037241269374175380449147034323502358849649489499406336808865459205846074126432152163845626198908135457275022777578637920131595991575645692593566851056399589637789335521357791443233648146477702127663459760283445900473593198879608404345565480037777386401174427937265786093663225209550105313323777866748993752727110223796763311867694379796521639271168677211839922502045889659792025240037085598154798040249832329873487707529297813537842271012442932544148123462661595962687906605754925695571701823521602446539411079534656407334599205001011785245206451492791944992567126589033268797979465582969036445848088779828357027064310842897814061467406308149681378583677163656219088977010738300422231335934263029154679407883177013590997497920942150354201133832741563675970385753582821496890511877864182608409131641845131964319806082248861308178333834743641182653607172911477422113663367392228106203566887057112135137353629687610545178019522992308678296226416443658697925036986046793989917337599825286658398333318390612752420444720111490906702036323094465861218172048474415193673756012159313920698895688302569697274362818256891817166754394058738750194416334133651146832361012088944247056402650715475419007874014763707750316655373875900799621265524653929940405133582054625073987176025826803568015751974991102479247900965854622780317939758186813891734219215337746626286835860213770148328798172520229860218095991631823289594165997159638065181946047390547639034588947179397565055028103209456542183495248786192062789586105593375534605560130241782617865839365756546908510184172495085859868395049465560574560314120582024305546477456587551142107069980595053789079880018577634575073443975090797934603183858240889036907543937435481353334381946124555890836658616765043185758578099418535247483813439131451703327649339802209109732469768380633309516572183190130387688270326599197853907515400468232099385820033344244225129159298013708598874631104855374585357370872061768875685391329843902174208482500690721964835003840701934095621740210436709898181160071995076044971691724985496793521044718833269647078705557451190170771585677013022248463080154007654702753721081595345270105336796839916403536976593702165096176990532444654224604017910876342915023392706385765532962215810108610123513533536137669784081674048127612061938925574802764166914462255683507266170068336753641482842220462129721820649256611063646884750248102402083111395990615288488944494136501148085988060173642713834165560921750711431857637965589854626473666282418764327773049535362344432718627185459258848141504936576106846892279118056965165998414062600816598036990649750856082594711647835267331258311292611650013727459858031900209029284258115057409836097400278108246067537490658630145730811501434473095311750797440783869746591612091983782848056767481739647743622619671435405282462741584348474958010051441013018329809935042078124459590506979528334359571559752051515982554086828287362024939067533059319177575665607476529208050443437048787901474053918093464227230337029320024545149586590244381611900611705735069710353819029527661784653928623281760480885735725709865121410112876810223080695122117634726808401295734265577867223607774230672055903921613946172096806991548310215523996190108090490319002143166645721815616983396923961826906416926335832295689955387279949997373073000871346064342749386445335333037616311690143875618699170973694094072348838526225424128280225337223363147336311542038889603281990306360068619775184560559388083082601745069211498735294858720327665809253152982722250158836131896948409672293005176246483332930499937482004798828163822807234577732181223194091905784566906864859946773932506531908931407830220786560122655241888827883026957714157219878598241342273333634361873660425589593560117210068461367005823632104854777674624638366083172504815798342811061459968927222965249096552227858206401362340507620824918861974320291302016381150715421189127247443113101656367590759244664630705214354447721864645813164932689712245713763663224402436827091832434874979198317317067494737002016745430261766391921176593605871604784173001084790697289791431233032703797391326567761607696757856201754298002862671498678203657477574248092664219378474507240064707844592813316890891284528927605139154045800604206762415025525702905312326837630152891765456501715219958433860978268983469712766958061898111453864240570287072173514400209227537639820844823888398346141127259949412475222389279133120525888917887196272271460783609461176617569605844949081342271317036807179041201374197424410093985449909180851407297698713681553385715630838856555836074780906509569009626445712468807503894749239492807564054288225261806048628530836254795426780307664340909524245948537388522307562825983703134759386431444383202001946510974313588378494591932921659405840221106550461962621323827540946142799474561021159327387162232880738775508965378557615801084604756583659837082108106334349883754724077455890858376847826532625105372620547279712846158648055535743714002307521102334116909011778585702396816416345189928330415824609225231530842616453717715587407185095634086837346255290178777205674732907558554463836404281956108846530083633994508928932417793468259503584254068202708778682294423729131755514515399727105454769418099620956019845744369193187027976302195941159509682539692470357255489115271974484838996111978152638318388062622660346276247899461883014903359897243036961150011984421858318642803157332375551907011400078911057880683345661351826615238180215788956325145844274068967397689520066065619685007888457625350287069116734489440132990441102336381158334304518596045221757226431577734414686444148266910717333872430661475731753908035910197231112445070813223939557774988223682832502229239991005952057581926878639284288148166986347804714121090685082266671173412680023961057038214894818273964146003821277248680418938672544177126625553755767157284786551667027277502842318053505912473556420047552269479892998253282697787548645174710975973688024954633733652361833828367284705868123371065631368119532456276069863414314038877533505112834778788314089312893476057385546622979025971183784636389430724096597410885612246012138076811259198262065508864176266500091553443565600857794745620427754662282156875056795330438012017105576262164964842224115130169908404643313214728656805144583025960212197997680130745578053596225279784865143966423798394747218198724535311143714226978009679537560194042298702138894144296658958590314455981378489400443568794954120149950998149255970872127743816848341010892070357262356861061948044719434363389566143311274028248239655434281966687852746561901492759169026489037455612161905433751424033966695012307609691875159118714128710612555670664603787678888341827106113740366957100268260514220051136926604519010594881040723331415175878396881005848248933348194528360090653130546539726163138492386493087241757833653500041049620530643270754833430869925140080425933246920412497945128093811174255058576682345221323604155349610193353561036627933222549466525275948680710178077637444221536313197167698534431157754345904743762666056530237528108935894120267218455249367021895355940820738313919967006010393536665820581252909214184686978329069766194867348002856718053516003914756499918328053373746264352413661030192583092191142259047382665469724845338231628545943042180755358096888859968755992249020193023893697078482664853792326041544190059889184708991325256546727341674840202065973034220375419675643741734149753546036284405973467597650412937153450261528841991663739753190660608669388224037671727985020790401421994180506161460376236066397690906703197313238463451556355040861952554854150363292112810602914901826402070659043171645310926506196786489270150753312260574494466864577636526049864688632578749043920327430224136098829626878230594242256469405150473638131132448308306006161562292674378345481405291977896760434536901124414262885228423639610977765801189391798308852182393475552131754973535143215647624584037363389486474304142251575722299487224886360662006665801313356823940734152608827129521049296904022240139009604242526952087756478029442357793855938186542288716517993008193623744689216598842434840645685724749286791496841622638415294913000702291130131481439884757564419773300791338546334445469907019872574938696273708133964979028697544435869325320544999348739663766712698222475391702216297742945250180051254083135520978432925841923934299314330272655125809386135776906927751124843501233490357046536229943368462011165221637989432793601691245485393441005941834524918559024330260804829020368964965060210985695409245691129542758581721952012200893777000027607510424842822085589125185870462918983166047124667027344584977200497146156734790777523359321410516747535687882820163032212560237842560931240018199464767229415001501670266538849218945808457173281953137526189821684432399273332026134628909367956898562752580022593235322647951163245285642729319405434643341328527331925727268261512742544051306979408048556907778564451822630833299003516254879372843681643292131606665231437280662306831969009644053487180073398696419868643512911485623966526885800823327664377006113506427853159675066139487104363005467317297351193917619603390172642475965007619083447091997486927712168516777257028449375175867111302827439127557309337382042395907013973916876244061843966768755923525067359583120605556639538031028151184752728245505491820581432443325421064668563225275385962015554813971892027017110414096963293871642205511790865953399508321809323120636344464515453826374357030369926354827302452450498657996810385790046495434723162725976679772595500974960606636759041470363342417162373494912694035460902791725464973569474090935225150613492516003586812778537759391231942063580669076080616990809267503420429075417624442984115259656839442914371581033872546110318627865474958310874218233519579442070264741334017361536548894337151820966029073900138544963787438120257025445520262005245921784328612925132572740338594452266858415351089940371016241979865695257429837699869208469756702550814494386263341058446641425969800507774915098061924485254722338787476259279405842021966452264660025235892133240461666402793909636677825706041131942634641368081019741283063411870888592397008727446109421783202615363486859020839487217396749750701121360321972980026544399807861082644185059276062573116144337692204597987172492782849709425426646200596342887690652174218876845631853902172404565329244021817010716723276373012105390713043600788102864684691658634238917529628001247816115867328266121488977810344663557408233172140201119373572179404501341834453948506388957438087596207493897586958741720445777236909650618690418930408809677160613952080538549356433696933143486981925186098576900353289686615049057184680428080274181063640717356955016335956384683211403566220345082679227920477601901898147485079452244933041699609571115670417318937806479879554331652930089847053385709941416190365429787943192030176196151191046205351616646305995896478331163618652789122180061379158818237111042603183215938392151977080550526811607737380211793856067387398979325399575670996243763684628331691736838430124634801387017907292049165908876899454872226829608385789467624760767407927153390485023538575108441924331002197403015034668052971500724291301508651193653355611338443576940264264529255994557293878661955139925926035820516605702016069051213569327875007497603583356191400976463215050100225891134563909845550901319761961092629804097626749915251448278932438728982094734896836030435891356963422557309928385692757457998486837804512940429625449299979400327604416456027249346437327288892725414060450627652936475214154726226944066864188100449044687577124736478518039527514413138178999089415630733354957694202675933976900168249716104186072385536323301118394410482100222544918552879736492071844541661193406076274298335662077792486347220005735693831857227998804313031270722511220748199440640939331307901384484976097523932136180059160958085050343524411656813590921715643329639927389642129686450197192077261771699272262023796654193738928559343704789549914863452278651248360604193809433955651655722947446982350100175763283730737429708326105234872098027672106891476645842732552250559026077861839441212684080007880187950534158706673409824100845718259108724132126607570825217609829419805153578741792381713297987101508576331838427765631804831282763442027210506356009509476205491487432943967312271445204711831847198078743255166043087351009732306518249549266479867093792983150479894329515793273546995197193624183793453782999335522159445148555397916129293190008623917308004163128563911952600292751867573063723973394022188945241569749788191037807863317460701547856073975735218598683776750231832803063764825199414702869423719444402721945838923384758545488041869923706025984475510807490813144594656657931376227396810843847019675637198792436025897091372074531867236390733738660851543786255000363506052522895889415633275823136515390219074829289440252939131690447567742255517861687383238785189227063925549762477547089890658158894249755646083081707034634253799790607990644889338808253375064156548819516127281327742176561923642473761698279262827487321125289395990838963196569194073446325967172559501586474949227528971931324414443049692532401217076635070955090313448918605316934102748903785505454049583053671780125827109715414710618311435156025073508792317659209881431902371758019227358913150899984843490366676735714405736440579989405248488584246624673585250502585237021217567664201331583987420446029733959291301264452486132858908481157733042951403077622035541642659726446841810453799564983155809663972573783253238156990487935450770403429773357030261081025849746143714200844026651764281635715178464850111479741839491419488386423428644427200659755608548152028087957378420548106692247891243669501986121352332079938441545889658233587619284688065980891134956669204500374538853730986962004175231834802138189377677389785775643388370607332326476811772489620806475871826082385414492703271678982905500509154541847758444009790199683339608578662610160803464297873337975915592589397543821305996142019101993260262630898031329535391027666988335113719503287044757471521043356021347213794704353514787561245415503646615526864149604903226136257214061472434942410914825965056045769559433544033493540747704084207737388366167406349002537894797782975760239785783483323310964065722394257786376974724960128956937003411808093057768638725788475307558834681147522393946972874064289113374468663714298512539951093297221009216054834590066236602974579829842318797339278421392420740075562831973999722298128016535974368512409771575093106338676642867310212751787112216419189026059888400740062133943417615615114210553448437373784739554815334042814162014312011242924976350251982602403522742689899733583546515866404867370881259955438795173958926902767524456427366865135346480293000454731555357076675380435686423461586477066377522048377557866333437386248937245547785672101268475174806759698393805651158046221579171517362308159688488459443937682354820116066436719179465392096113027593772284572649044110116578637501798817198941594416382938974657817568662376193820133249654162563294813070208143474189864743732261060274995663050436159696358817455735031957983471202554813696916019709853746468834367869945797930368279162174065711259283916185536411696952273383583019012831900984651538434560855838072573529193406320907797671785735274376247955286969570475560489369400363509343387560732132346183178400312923255666777674183315855089459741699041530922136474454604943441750050141264476936410844324665552728523374255280177079887932806280171377926091157929515374081352263554775311787733429867080932079893664468662793794336215841043734035721084665856919783032837478423169313367347928147980679461496640325901787724576538734836150177111961451100009627491154109079835521267576171781626861954097266024030049311677453283207610916869569098470562835386935964226578612428059517863214592623952631776697383169572376046893700474005934338112501463048215739543437580074612490060878059579495966606667061255543460003603190301593885925746567783532279558976569295887179811716824279763267892125430460845379230666659867955109247724064539126722759668180988850718449961385089039367789957350694173163486742768741762862477520679157787851601759338866886954714463038221510586315420519641763014344270305341019466137029877963001591167400943175314136935498592929974612639292288474776322299478865177981759295407585093327025665485277302326799594734938004131220847993115081331659520749393715653738971691758555505566567528662733341491295093278992618470467507689933059881758863041566021044839114390081444833616240631464252427976332237017835131287147155896016279294397792256680368177482396826603830969131648103443204731880165499692948499100095594263346118592168730173456688629736998670637291999553987225769067176871707959601820752136272674425500879966465740185354348563456583055260921239214158180125169576028891266339880587217650077458308656543233041343312514718134199170637877898083399821320950309921486416355312100967351348116482272126360450725000485398952876235262132143918810574069526124611169012806382934023354405537984489732275329978499672564021312491104413877953189074538123114839685194614885061689483665938486309742012714670442515085679277522930187737363328610092249950088200909807885683905287113298519599782749351383165987535421668987319311331061631521486533457162434072565822359841524292502343107562758986760750643852246720523454248889851661811533739575247428558228350072525296347197185580470065422381762624974291685359366966347701670335509632395263186086024330190170459653158854601258595343503336633504364973867082328839245421416499631992007247450098688204590807782148647539657851635347387891937590951426020976104001845696394820294645308439516969328825352240445217693980487659872068105006817253101031380046025620824277216404485363567078427125394761335556149352602233115000139489582149260268370984891051102729791654860003070130921138751279460925609763362582973141263951123166475961475514656949361805837959461366391671735476401392563866637923423922206350236551904802216131610639505920008620064278885527490033015187884620448478517794262786908487324020559750097193655259248270189893974751918525637761848970111540764232736060559515906304649412736645776410786017490866576465766277230529426559050532988072090709070010632996255268911377424362338149798375371422354703479342246080864618397015715125972168045839394529678278691874055861718936564381683774523119942769620297892797833641014481893345695039249341911641203427179216558805712446661814589363399878614858399280719633048222693143137797750748892921834156402571303041194609088241850979824230929723827736811732219235532153749330979006587138888248731142626638489542006465787733580875299378658170155305558141342512021821769046710863765889666355350468637226271740010306134256095785737571756667189138884979814321528840267720675152897847578544984564076070670256130470237821408832188216057469695840339701181407215010627288902478793016828286123818721715523955432919895461279168948120376556867425631236722384110304266812482238764441193333469063243868483045375544403947609762400384609312809411416197650588978493720148889070679919425029028458831802680642418924814180763279919956686843577685418916286169209711399593087297140376254728563499200101489329439042943523884933309676152668326573274101331692294591698100976063967156622448992153297397456156834315465034545363990556991832663142190452620533831422622522336217577653112778326656027060146695241494901235491728246419057350699411903329435193709848277625227360035828029417886370395801898714478650220931017732697830275780257570724994842779493935154613174589280256793194698466683212920484881555263228817236024899938671343807363990000650222717128298301461561285395088052826311731899494908640236100941535242586749521701387625299161051126736656325849336106818718987732986049922694598472587857367304078368204275827926703523886168620416182782084232787942329444563791235338801203569947566540707830694835209871881934863879086215449979664207585036048019932955433656498595224796238183263421453882551075975333521193879775368069262719258775735731961132777522874509948860870629797472487366264727498503621780316844168492985416264440015938513411521124684310363180021575474253406748467732676070796018307962249575797554231091677163228752556594142737081072988810270590026954763621693505075091799256896946023289860507447740831912552661901453067697784357404188181233902554173490475661760271464205427469919690603381519116550331921765600356139574382388303078912528135814003377453456827353639996773342757520996381235713040141340856516671017698503846907507341239578367679994697136815682029396220540494515063896745542765782875302552515447979692465851711726950112961315344845566963632941887021426182127824474726398524617184225227964144102540289128723101993180433617356062158800254219637943761446098407656719206521648804330769756877162899708852583454912853650159587717814152603411889873933937048910444039368257330195039181723088645694591191525549439953748130715360949035694160612123953351008361027368179897214993414605842339982892633095742402243279371276585808198799790707043712080530590986565182951959086410788683565229900087633960092629218974740974210920617334977250416094502885586621379624169199296934744450215102326853728711649889737275292828065229885382924736603135992585645470125624508256818474960246598318454841177357045558973286913476623768285723258733933050474046929894832445060035156807317951960069516096037873493311055054778120549603223507839552984070582779554195423248126656588065480006640014822300561096757735704127474147184901778163987877576265540813958240017813954987320431466640696115110833096899357989174727235368464252784490344982290561159627957245998653066443885915700575601989328372246740741112351852401707194849932132718777923363038164121590493715303760342011494996801092928329405668609493492154531871115244849253280775748023696236889131061697575442696870628448786402299987272505381809904894077919197958721138963270479224288716409174927373611287814845644458496184629951998404607724834485725682410696816195230872448964128749345965089628924341910614281670176386423616923699862636060922631261686456974498360715093575693199363114574471176493590551199448604290972322815892585717694342426902052962873464206397931937956277577561542957253018023061737901574165766487077643718169292489263751618521333041310978071780195847148736255933151267902777258356159507063009019145651125420348330466153253333691805400234217348508325667046824860830005867041446299831575653362007518142832731094574705294213924743761163833336662304659419073629476681003181366168112697698364855068061797920945242777667734955214518750361838426707937041774164709370878440924790332281971848905037997679518158618483750865188475920042308017661739333665491348501895626062629858770890106088172757118435317238210193285296842424837366905292074857093362352793269115071551901540843365406008565429714853463605122192530947136188036555271499786044028768974033625956253461102033655626704129503892517083292117882021584985354582245041747314169132473421614841462337771747913139079975750189609254519276613793143107805223942398483435004842607284800405517959188223455964810432235559866992942932709800508088626985503261884531779144599048470055679527549295804529419832369448268217314360434614472324968745950809091841126019076981071294186345295082606668155513010700349563997289711299835900798510420135616374597871086454660551328339215674547290271869650347550057936051885138121359872173892879731571591185949123035400669823164439688556514264412052887638923094968590436956285074307074351249869446005511676566724602510195709595819539154021926386454517096083179216068601792304293526887267432470659256151922300622815863182111196968293219053874661448143054172042930457929249657507437226874233618918484274232049220594537363666368285700400330011613330722178384142013724854451367720549663087832772439553939757225382019090283591352993387554158954131798054966632411304930017278709405518421052834629596822960807997291573560197329146959555937379367121231327063402692830690756522280342128872508627239949662758770664984007951888634584085462674601612086640543900199073676908144285083790413069530759813850186346743438332783589082680513054216358985539123051182934069409486923022166822574991166552869603789319219006769615301085491986689308281876246536215211287529496096425451004463689069572905051261959609720939953913461361124264463303211606636771977331061071669008878458420644087245666057793482819568234228357001848593853514923015836700491728962956621438093576105759221485006128887017731767376083749114127740762315233032291014792117732207676485688952085066844077925415208442777833262002602987551095533102256965465320648609315608971082208446959772400505390435680455111388822625565005230406708698196483000565019206988020476374383962256394240524814896798649464216500473398117048919421517579902753685402996618998032700088352754283840529327640351302154289976132170017902363755840330367757618624283007076747773295033149009501165500957487312570955293251487555285106859738493015608658894711337288849124116630441639817730226028615291364785991717494733491141132584667241647458171470123788701351312745588765516621623522223219324491899840702336367882515264181738700227033640349774952760359304577954814823498113518602750995614456955126623464892562155158247141508260029284264464590376144647170091101001733844236938675970133210827085686682612907731302450313759017320135170025176516476575894301265158274520311653488827335523777095649417864014864291931940759744054142701844495419532073339409213260514403974610754225883004915210249245954970527924828820469232046922595600743457695626521682675234192656127550864607408364471536285788776405246620375655475436495580925032797555239617862272490819685707103887527473011438621730184471747519258368389506755503069895044291337556004197349673377792223719888398622825652317625350161775422563871235825075189531860173203519985457676815787691982048163404392535850427563054498174158500218020971197785217019876770402205113301222181850742743206301178528816777196307084657767559426901478812323149836903366493763922862025294223699404775028039426051039330607387209057433785137067068019240349395547854551898849892880655241409920914094630170429530653233296539514549760704767875408314282449310148348046988036227543951591765572880719071994686890909334419912622448034249609487704345833901383495402156471177003571783628391894907256397757169243284510414928688447159474762163693115077185329787174267576666647457819396086755873697621550639388250593141600956779962126996704162399620985703538035693522297080252295123992412099990499447694847866365559264519618647522252255434854481107916444556947737043648470075414412476574467812719235650190170521606061479089078673967781646167467999950154700044298609162224343515891367950219202362236287175421672453864024730135553985701073486129005587699160221377207795853155303044508182222520880392682630323602008481908548369354192519951818568442166825625447996126065385831731382907524213600925352403981473296347503442933256897708245827790316219115277771448128081156356236635438552157073399577695802813622603853019560773168013362777128347894990515591448564897396795141206209047545950052954212437064990821576057259928273844434610299795566723764915115700000072812876114722994195539649895831263294799907780650150399681877595638811440919331820311931897039639789168555802079034069239939555575956689803267071844285713148525652720793742156412830917997562581115307169568719097957148738581289589376700302662999164620495685419808794643192755534087547109514440763905579718275770844726375551353181762800605530600999277078064524024883009450074981646350415797675000483303157185314851372808743562592185173088039996399023184716016214484842684332606404800938405784965689105049265507688442340741244163251264488828160980162686491605652980048400463048002376533053373703645830652975984732800436329283592513884719114020513236307821143910112342762451847401402601193255479238160680592949799765038282460626790976879214606258317044458145749161492306063617196454493038910973631339938617239447840643383877927068746196527741666789414710719103295313641679926243914085373405974186183077036008512813578896681693949136662820019197425827407415973602414439112870501475753178101986340143618000741030310490781518116612457402111317572804453662205396697691345711129683497604716512365533910708900400500622107783545648286519559409480174016415304334729775695130583072239368356180217267618801664012205711068482600907679104483645892466267883209833911717153013090423927854498921600428492290659884738068207710957504865449280889992230093713179999568581055647270045311176491795764517786056012915608089175644314367491860600056650137711132727769928363679905932477181136940139747494540701191307435184963257960415490001268986301327624710139995104092027876739699327442605491057240506407761408261693137069868668058559847764676969145782536071489751885836657652092463390531261535263452582114617274262929399059801135160556667740666589311996335902940816840424385058170493587476480897747646893992975344132153118578287360050370031481630565168052367473617436719134805320186211648167893457228372397501096363129780326402319959397560856862176425610684282489648255048000234645012992189875829828903239870005010597942297092772551527884239670379695923332023133681929668694396018691128910736182588946211352214089050550749324751828162817137040174318216911541608805898929845637425496886146715768631482111501745063751546956284175459849618178348323055942139942283438408030301041488106471434861936621764937627908234765783142137830665629470639446947208667273340079755311016472682543508512704848067894947815214724023846846694984652596185744816738578139639424940866497211289324096037144487458803493363455458176926985281730436941897542956709183428041421594537459708477395502644337439154607425624123001950526344875647139785701769072604072105753968895055152251243972070856405410619885928382901445541564774774166562729811903910218355832005957156268319293939346034680996815799827378164281061479720671595368754246803592510473332758178205400042912327356756737123669889524318045141430180619495253636226075636899934724148792491241314318558934282873127929135278956270345380897588719443875153880510136953411454460012536688469593776483986328445012640064552978852039558690057742538886132056120615369194825212806223584476583970984579980645557694341148338285136848433746143363619083390943623638708172810355048593777870734375428596341724750534966135155298521015660374507227730735207682047534386424128587319550521472319356303258105583713765725944239857161255645667920845156224376791253131221258312950769435346352504953268170777853411876400251071070375400847991040752106999771561297185406466015132784657518239314319666310002131032823869284276262927036573139975556891485308167161712650679485607382734284302619804329746495337897877890104885100638439266282743372453649506256442579441469626061866695995242710145595954234455011180799474160356705705669783126544620850260063057800032516006660006076475040353291799196785551031125850705925915142659347784932587134494243221028655630015862063836455756925256177239857233241998894211155562645897569903995204975571208311208795607835307261082397345870396251236792680404255805969200693838719503398002679270662369477434015843335917538481614487960042097644895210909720598387852149014394720539614755406879840647675688034414229820783232905183392932142013042134276076458672287311785084690178592428771394802639501997489846223117519098025042572155407153821647616955303518313010772908734169074861497951838218751669286582198289251969964235546105526635352452101276129781579593609731889886081889767828153226485586239514550330438314505371213291210728062874380834118608935001976553150280074227069973406964175223885618474275078535471418332435386047990504710043446474184619408221598795338025699414835498455900146097481930995349810345808225577017424579616679690185538581552175347372504618539607326264132257362053111921420055095086239507234936284387386065230547230070744793476173501521842567848303908485086109136394701618819832543163111158776998049362038947018157762162175775983663451827491307873449515326548860217244712278536780227741825392925451484699643120067725669169912935739979483797639714153664959766522979154127897983206182284594420183298069131569474794250765198964653952175496967693511394676300696811489599459624592997596558367761304688628384957378206299591152664897149897204667696040580848901312944479965846476872436915823876350572197143219001317688974939953693312079357267122113392938824843236156742616361215185155762180594453152257054954073162653369636529658173441281041339929383949451827685131004777806097024128482881437434618280690333233063759506655691406418459214315191485632848345534227533644445110024710439055376759602800411974007069627792505496317110689385597468214839476009064476542229182618984016639109319003888565091759869957658933366089519794465890685304471707635667210524261888023861750056476759552842521564468136325764631750335490562580687802282636417931023744077196788729736409629558107289782105946153036186762293203217419552084279901988195028944677221868171669065895802591406319552711733006513602997946122911090818469853245653144555355312541305549225275934652912392016113638128263256266236933663968694244603332227814406587613985250926643701522345579511667721468013762209518169809534385108693684515840564404865602734199580403985381844138201021204318059125538770503585600569886677478583339157587631681391650406181051211244811329149779025611435333644265811680057335986628284532954011396852969734520792991079210423031389582530926538477398008432518691497052099843465585814218494268473065792052180686719666510778317521009506730761465457358424007820125288722656249538397270126299475876551614559500532479308943911173776121590926120177425061414236479320067489949124945845981568162177903000519999164527703524675902686714007603792394278099125310555046225235065327618664318167672892457687145658221999974061359251411569034949938775928480537096034616930773192907351387429470955338497917902106908289574116658627189195120311407801579073558717229113005733753716435499890329714584107590178673567136207214899041551401089616951204699858418208358698724466879191036658022721374098220825799235828951306336562401761487445539276788874925455205638779437994933135579409634070258338599278414548641561040374538098358870594506995117463459133856540970182185495283575496673667267146371832300305640222425996796375209365578059233123531462498441780237447080452979093661982877082993211923611569402704665426561280557795912491428389792210835110434788572874804747900297483763437899400610266235763551536517172285516455777162427311889370140034108208990211682494274418475296565322941323335435602004341130692257420322495299351508455691200998206659037235680604642822745042282465502058885173740031406941769238663518303846735864082439282145342810745330924435125156388825747939364779267255717982321845053479206658511079091504791654624105652374905387369649079279933159256503176041719319500729864024218585756243079133395711752984329263184862025010670458121691323132138162143167519113940527074308806699181700536483328654332661050971448654084075802146162542642126476274006505437048487390481766849649828418832270406137088618079654607871863008873747583236380123661144385388604644499990465390427845292808688730787026638230799255840970641343700307803004620766570822599776998145400374394698068453565879146122443527990309489397924176739882696096297818699915661249469259054989469313281303221446887778329608709298068451475911468823221961289383729297031020506683230252240596253076253197836011052078056602401843168566797554813467997814067682292174802537904305936406751017082522963993829705140876922453405038278912527698024857067830602007951449992845375320516868482894010092379498266866042508677498589122282152183864322113220622380985176271337394854284262160665859956108124257270712726913051316116390241909814421935724688300771308057032509714123324188634959048599671090950873564488121712800928756516405653263741841620052268717955912285052253683912964771205823397877413441279252200188731184316347879127317286840569226010660824843912988941928896676985818514899265421530840377193546941108623798068160569863211316149089189590212976512519471191305712718862742048609568906970620058557569637555254313438295230883506427762945625501679411010583943715169650709747325653539935063916353777207814427164769936532915230172892105518868929746656051992221566694876831668882521717266515178015314141960128207630207715290435990422430026370830816455349351291488114036379754048322103116720279430116693489739690513398464919942246416119509127926773999790573852555966486886030868626722940460686592393238298326689796642513065206782469195363179845574613168661989554873614311094290965724091311612341508071653056203593414956071802078688740594822059724987950890432338289320485126550980806556468419123687376880645366451549253532745249876417282171493413340073299026818642207124239936046348311916319405992166182638023932299365240411243302386182585929779203313393408648104039764699527766362595624476191377051385231490875671189860763906889609797232565292773017503800199370930495755983022872106370459345777152652459750973409624514441064762623627078598924586806488941429904785282627707394399543819880233772340639083532373694204131797677777942876562559957757316155057739330019773181975813384899483256981844367378704092629602057161183569957259637223765127094739560399795437870517962482920244551944688312601866536307461969265682235512186542922924040620715841971810890597522676671654909743986145323468989853008043651792905224216033972770333050252216678538439114274999389190305268463522001401175224581010421513548382901827947529325088185600000748832587917452786915622377895947465483694077223056135550476486291818884523143160579152333446336106516448125652778781198733222545873658469492505957843590432875437575416812630115335902555065837332238677135336664121921493139080099573570373824315227832351815776158737780644751862465754264341745168387799735500037040695559411714563313633518570441580843263030254919394815296654355031136257865643965516456831550439953246304319891490952208610751181090740140425391436400759394831368135279846003549009885524924424976590951543703479581078368865563040254279536745134790124622878306608296610141637700629776095375569407734812862466403450456152053744241679320985640351765194694446364827231964937823263336248933487301191715333059214387574141131053786122007262229352956942773514817093957612056649094519861501970722265990634900609798618709621418194539614977318742673248366656760442656148838915605199325658238611049822369992068688030195706513879042273828722423107925364067045313983620164872841601313343503684089961941705156026627443486052535012629654818279095752340779596291118939810603268913609673990205716570317621603956362332885172812719839765301101938548674131831371962636947370951685340383842943142316427840429754090313433849806648928822151740955942358719817812822299739399205065448182165477520098952106993437841523465719678157738507165904361995958010672813164158726764518659546194377142844055148814942391170122669237246458071365414750064388777746273279742961887312297007230973042009256983908902248066289601614532578390530746336577848668058603548519624581529366844041836541671918185810099640962471612584221839296105971685056415784697912454990801388010335303466541702067513248966801435408577132379252410752990245334342948909742802258373646091649726170750047347937541504707972476213827942906530377386127319565352375421993946554049781814733189727840680219314743377983192777554167448802048399044011984598544887372907097163209718207257418704346465807457817714264287039081018412566618438196341440781749563884758386933889496918361296562997831425980513743724061710801968276021747163325080945750960949012254446163396579955017963493631903200099846084721484739734634450312936242183964490434133385541979010932078114512033565918810568022886820487581611429770420173817014298767335666495084349475126056046201970290067504606460379276407748260259559810388641067150911738311807672286750467949414913903266599119716959887962261046006982361795381342268346703012373217191933133822643822813374008819447481056179527742673278916825143256617968601981646970202453191706888327154173248100011542041341790447256981467579644433867629983698431690251555099520488295232318210608166939206272293744792927470058292923284356453831633411669484613810132104156285969844224568651520419551768477615282752642121409904726224778125245864355724701086740029927355759809173701333313672967339283290079262433796596919231163162942210428429119663866439327721277596159945666469012533562119804393383101133692254603495645500087996975262584827999024557290211371285266987913643621153146692029295705171725585566652928986772222474618100968372681358210631854257701422331109289381399485969476593915657800492100512075460918803859511833883368607095182878610820170675425296694655146200075644529658059014512423136624919532735040461237598271745804697081228374117772303711798168648662980436916961707140341062703377907943253871754086723081997365592015274373146595007192560705899197899505752139260600306523710544921469490102475773225530849751791615538074911520887945020064914716340532928902064828786694478334514895574645286143083962653830279477600339006409010432037930373199762447472264003961456275934032817302788652294902068832140374755321628117524168471145288965394688003918176466261911321624882365657072800295816682243367348690823920553381459472655300125420222022082898262486330997110066629971755879096201409716895185947486450889717369114106650056642251303585659215577474819904525498576922544666505849835578234196878607815394983310004481767370610738856835753620133177984515383377182864845077709920206736425978078199288383954139491862320372744307480018474354205714884268522034914090215001804650626231711688082536794121858254264179077452813880678138395458310693930354899549000009614717908756582045377952519280174805906062359885495829310831527257686979142796642601749803860744546474415572634027273049834072843125406895063425795462463515046884544078715411301249991135956609374163547135884091059362939544461067120037308947241802983474132875105785931101544291372782690689776688061690760067544865988768536850348118409543267554983494612695160473990703151225665987696030914745971703591205581707705099481020809302264843269768998634005029489312598853284212832370266381350240616263116916906055168897507620036201090725441013568018682451526889351892223901749301722193663233526121357486405901607221081225177091519786976097169300910983469322929020139387312250801842610754686940440793916360643040764251912888019163090405853685867049122918862772312995122012683744857875496178544489150558940273016779520679587703793245252073914861508105521352331678816120683767762316821898235089222363973268508577342368145149340792551880600940143433685926990275201694476126633010666583778301137863117930273679720212511919577931513987654648264131032836954164676400644378514316955615033659496330142453711767188276148674310813152100582268113260073361511243466252817638295223741500198162684359990720507208110004505805757777063191765469109433126369311719055537838006328337411713270143220609938562890785155820808693964812672968344014274602879495486636636768623177465172510409462445689530608775152213558002719227867236752862214379290742272251372283187691297471770563119007414101556067183945374525958780632754217586627290010688559375680872158806468930065084005362979113722461003394869662704028042908218931075563168129144685695533717206000876353843018872742136141237728357392328929523478723500710082746654349649091471461726507070659501019701774693761757284352795228248063876059470630059999274594045902104920183376925682503755001718135104504369878329104432916341263427375270836198721064016104361156727199781412897927917547498410272288088223575958171057410811585884941597163351022911630750474378160809264885491988748256796407083512015610886800767622648958723872485763594722887213573337828480451105778659248611684976238048700487039688849331299434247289826211067545124279792509887852056213314423916071882513141361900577029241487043173024527431969276118151482443067400336851221676655597841127307353894986375545323104238775313256818597842992094571620228593003752520867563167918881633058165813192363733140336866669159456380445687803791979591205024800318520119439470932981109788953338797273709676195256276649601413205876741818855155595185089391754214712967870033291033166043298917677325044214258244571875907861372584444869289909010160264814219026269434748412607680269911590924637077742518644330388076427071091433937774517880473951801212200786154643542718776556386129434699440843798951370263893618092414574373980898953674044450879595891658256116994470531310496314878483737833156550286583831054055732091591796550833421157365147032319689589123782054729530186848125862408921319616683379784235192405767576621647022221500631752230100460240356176336780548233885183386888797688498101104774034861212001401917812249238959994180123394366036536974471183967353775383765241190393745695131238882326540604110797566008747381613273123845121063564327354576597561181092238693549240963501062241485766031734542643040819468142074156800194652783729856773365460175821093040508166555750926950399861781351069385729137047598652488729879255064693634906522880096127596909731587667242178843344776536489807868990538165110622969841679923282343855633886570791575777492735103798820551988829114944938969289572616406039253570666426073880756707856350097134634867767756390754928157870385980942898706328720178687748074208077313461739127404893989880017623629543553724423363649173421345598770705281554871458905601452412388480006414964133838774860702313557439223737512503308602061649066756955044737628795616660195451111329327180142910529628045313356861948483818783005186727785835702234071425298646721739008272576888558383443536653151069487417274165479280821577549309725761017633628946555613551857757086079923493650652543414151542316074899073057421416597048477812028705579030015864122419169508170994622052716770663467792504557148174348630865781729389097491299485158848356502409199766458658505674073681144030375993245745048699385448496159743711988361110660725402366679681088573941409599176064969272568191389348314388192299118391142387903670009974012283349331092626069303262847310644080228191237919641028736258209437791177735324353279085936230198233547771369598982126201188716778875943353191785777641500533106293345003768943106621359642723784663936794325952161892233707431629171301248629369591052685153580589110066729863372070234876241950970858056001323461732567528299926066106910238775048046801063788654767367803673329466772781064081673357251460543721051336528274279164759509870002037879913424122727630206061180772907801034606038864554458390957397055929015831071920141395760695724588952194307649600164525140298867371156644303941208083701794510292347553563222614126677756773564656121158055785852729398134346357982177948470817027981451100191075592921754033155924468719109895201617027353921388189147032356760571674115150242758619611950246178684261400648203788790722261455715296201372773452105751058866443828506959157229306440277220777962352218909454668882338350123698489083280528049171949699337482282804650271077746422300509882309939885777795198035220220766739531552687773777152828937385522330522191952475841736063425235239752753442426831302819078918261586324284158080214461562668354845921246804263343412154948689567304453596470858112547488796744208032147284843557004745825910843154966712421956552217619411563018567961408658101392842779957059762905731756830201340403518796286837932970109887019073845166679605791008790918458886773504387441842506312666989952017001590174834888160793526359296943299188891240908295922664459348597451138702899523069992178577273878962509304686684448710091951057544733233843465532010117585539335056205620198063906188600551200297636354234242582929195859896517816939657626919144502325788935542468301627539831484829703410179699650220498636352197419625692665000512787986156580951812040397973615410988034273849196085057401111190532054600230942443381806165644970757939581804500692291795064815011234571294537414017683267121354590858098339138879102992998458243504721969501586879735135574078510732083415766787651477176238623979837939602832178235365120395984116389502730678994843173053264797322305460436884033710554522395463373186970476180079449759517130423717046007250107465048871345575999896628419747310598919764666595649103535817151040410264769372717972413199745903189437635248494056667552762891134745755092758764787733733024648739415089873410532807977337051485757392686381188105750176313480135527517289041232610114149478453338389687267514001256154911225688737076015163484290709197912120527540471214317834098441496934942269680362475042524525175232055864075651879766176646870820230716584294581682356063612558842998997870530059610597764144367901272876992569539333341365962479393067760947882111973386454714705099320272970619386718518069378628122447805176645481235338249074707976934584514438956102308511798532583809240615101927796239361761796561654267986479256404048266253721866572265454343053320559532600925964519517562783426236556952783500516758781662085875826868485018821006456497005777058339075799099287959536701006592504942061591179421759341148958157300794052367634032352281120946212047744031895315444804538409096472749989100220478456467443340761192376888453299516036536817324303180007251139698265915858426565963809782177569182385553514800848504746071714287206237386934511893616645234160724061696648919672177533504451908841463582700715742308638481862562215853411679337780866834425839485630264082196443677682343636982796714539269821521198914738369859216169623789119250937172462663201329621123993085671459667912624489122383125715769010765776499895399642014649829512946894957786122326857251573857644008438796811392444042659133862496781203841387858124223056329977828095006430877926709593667740862027695785462605711762118713282358086902535135483955812604463108649156353917384366099852500214886722610659292782797139369952279510966176942861246743365171123102861345982216050213041373983616570830040485429711473735034995800674672772856395249388814554659457224038636317007976706605324686224486822167090375720803845321705526804647404963177945286205858426698528259602474989790289942710817073914446677166886588269463289618098281208873334931211610459342404788351121000466102538413627221524548747422430975413692963360758096963062973850877191680756710627105851123122504368889406913551255796442052475312770294213132887290853787998701001734642193926178297480553169105599278481408869797218812792060210901927042190411110670586897656268407732906425605862000309189650655424459157742824119691759131096944370799185310205949290830718282898491999150425901828650202757061784075784511284264670743733013690681531774518882262447055165584915044298432340810295681603207481858741904012671748221598499800557323479883222371524602975161633009659723954612323460456068445828920095488595239706537208665445095543665451864519894382296584496340677417094938727406819378225157229009388503521229741047964098161247902434412425310731933825622309204424865486914981036057022489400366870350996632857720290886160499568250983037656732527801327993698946954674152361343754295793798675442785658135708682922326434944401565557107893213339959174762346075997506146962395996782464947161929213409697195665330443366841785380323721958617639348346515449717713440799125997455076559014658925726043660972491967551191752834179663800287755566759335439452074072522255836308886563307694649194551027480919834971949604267285692924785948083923017220376864064763699597654773216888372141898962723695669237157911583746426961801141404413145600856159003849288119907535756076208943632402476261394159453857782690560825604656341572573416154523921427001275165119204592819821544017302362513712890973774451237310571507197690133652748691429997809794901883872014300253440109358977568807449305394257918619308584557367489549447547853251461527326272716442881676397417332327119730642536531001434654829711894678303716225679707021250036453276259315035601975632770928440804223565802728779076777750014725904566267152686234139749182532207003731943120852511991028233698720704890523543535106664142341390433191340498602905179769460245011492130494098836325849929938797327829970980689761282656990507511647970506472671111180790070882461396437796703476866264595068132819136462494662742260354287969804357144250166871198373460995021360566041728712052384322522602139546530068229080072997903035293817642455560103750757768599478084933882215225240609829100822259276008350689944087764568429391201958220556875176367102501726180631329955385457347237596577759767637991578024066064101150502977728705915795741929178317703064445455193316276505743779951580012633656921648287324364339134305873330980246560377712889052672181429809083127858003155303815311085697688542199413641564071549171725073211017755159489703720268485698274051157133740007975089380078272513312492803521094904084791163800434228131604885103597721522438941544669000582166648738434054027113327614599628484062656601139094181659032058296982039651993438436033313734490253848525680459885988722530917582544378513380087920532329895573608406902500219424389629492055541493567343409740176827736385886477153610782598750880531273546975274625828450120880999168496775375959638280070253858368426782057329734890199085683484145623938625129764932606767154468890683810447567648191860298049885412763799684013522967930372711208554994935984860831013951120766167948644519084487584440676772301297420629172621568720423792273729954290208530953870388924945454250935216575763346613370607811572242488454842990654962654438649121692965397657430022008636804279161774507595511806227223808097919274929892502140058236376268990037956325234073813506321662024756460351254801286885282494041516245726890402930610557286594441863120056718817952459709617701592634305812420573998106795288461014173879418618257322446557215006742195782967234864503102213936207943386447051238048505026085618969886917488960015986954019951439830094052105203840718653271465338648538586108707204813029335702420210580739094162809956023935904119082709507796856642239843360898574562643721488445116961170913294826392435332696341687786463205601260813558741492317380741080762472814450648792927474566221402539265019814787005376390509399593569674056506372416072202010037325427854723326080487203891885760835822780023087568920817611783654804071960132461550611747121110063330768521226173210309016311469992421635252335707868777478390895512795492731767417068806415156577236851860022758064609227604473329522089574850369410413049303882831467512761933445549321872455177021744905911736894423188908888187829456737204947069828067526690818178987038198015445432780072886486208075827655086061213800495855698001127419580652223270658758308808658683307138773908416027496415362440578654737524381000643633409912200821228538212419774697538504970886981384299106242311926961228438178291737841929890674465706133322108126277706679782070181069897941211157514726649575379738996682452178883333101874703881856285523515985219609946755557397962702658405701102293531581470545306494787239042030231649547356131226293164279820721801437944877871491988986356838466786878254367831026120588391738577346959150524621307979599180888635379646653381476924552871610478237394158768735723433608717167481049116633091588288858541910572048705446504967315412632517339585350344811098894393339813216852592909237608514883801442943254863001616185723391348933899666039869089783899061727038587233272932337428826333306384119469814569024474939989527960673639708953569684639311755344634010687940421523597511718815840139568439624781322728000993465004678451128944677419701256602064686869117787411831629606204712804238550554991003235406252977889338511451473936955933182581051660905365517196655045629211235761856765976018634931258535413972670245936741359340028943727034583173677925705692796477586760179890710296837510999262732865373103113205818316272511230174304012723104046828191167697427716059317574042252109318210248626903349485156683205169899938079606164076598969820592704681991993200503247549253363980943460457553791067409303307224091051085357308819318749991135843258797221605939619177733883942691270455838777920895682285041450886391810367912700594793916102801281323677564094391711715808669065443486159133076659313675876617574741015230112215047490334133040520427393207538233598052152746902932803710354091202024775744979729689154654591645191907953380780540718270146099545401378670743417900497644940435092978461012569246860860295699635526459761198714560994633947762470884883771448823137554960023990394243406100885112107877098692850826256740900343984895991631676470995510866217316012921028771428431020263872979587883491131319787967478981931992096372086304319398360897095055464321108716128731183829713300751515902609537933932269421572584389555660129895040669905962983354768128842262452116388697747240570661273362199363812472557254430783634552580088949143749275866000352783976348810011479526256018220710642892970576714699828321840610667650955558999473764427227997482474371549087654557111588390387483925606594022044265930431295444889435758415090584790463731085052405028877395399133764629374034162887513603839898325318004629332450245714487093688836746708480231255535290707054437946295215178290434038473020492527397417962354692202478411920724681667171763758546528196304844467878337775242829171194360019527322515894842225449840992407372682854419398953904043062470004715709997809822920257442129033676548242671324046733717079305644344774799245409157707498840771345761259270524516489896184370619100082365396449367140906223478616822262667800571497704114442912723866527433114877721797013822250686433006827757295263531968773023652810572706392835374004220964389760656123067345013549160007700920023847013720076259318298893375050747044853814525727145975649479992031087780569543895660141740928960491607964604639702946136340671009228995520590787927625501053017808014189914303138012720522237721563277829381942410575268191204505015317166390865448346573612120760121870464401123297413444773500713169072580375059614022916418846207561917885169046449202122430740149375320011492815521289180423586501666196023270322078860556910059992641651598376552216445573584553415586253076555084942320147237673605324426245325006735173754086762042332953754996724773165342205048403169859132525296928880950579609993565652928121295293543314245042144721682778889741144761395901947554513049034925477077675460040884878175730649783725077606437415602195255577018090021975106801442573566774558741831141255577897548084562439361071907727740471987558105669530888329641803995997582382415792122247702758716361812806891975148579017791546696557377625802505885934255254491346245297840318306171186769943217319617360185416872527269579994794369467131141478042005417984774351337068318810500585756617636297629285531993880539438777987466222917824354616165580682055118324186556123833279170585721276421068839483945364115532961613349635282089719242920678862680740178909775343241618149396438637722430331695407185001768113962462387176971124345699118060281549765399390110060786898203801993169820195758156905288974783422653570060167611522400572485701727902407485690454041747772491940553381960750967717606788401888446662065990500659419182417572435967293277974855463926526372147866951268862439278039712628116854997499316362161103610622231543994608943915032442740292294360778722166823943011302281138480857170539481513379619148522849953426155572590707571230992703895204091861518257584310167614053050776053804924209765133700420487876297365781837047835215742081245766453601162533476711247645500529433274521349511473112652469245753602325798509839992701997372268469515838877464413553863998700459398633407796271681274407907899640765110194631647692500789883803139378678352719484959059297231474153643683755108225727978695798549870707708907301645363550621605457557220922913502675027507598585706056820457024358939341196005421220610966899310090598902208370998190440725265944632855123021792587818587040503918793954264505433121898256550995200820235560426002973624758151532425422098778849242836298554664869806362685180017760774275402719559167037996210124300935008770022195811019121312144128570845493031145609413155599331301516257655605178202023622625922432745406877722535100918348654985746022126972277581985807130084994401266834073504406845388341004309142364654301313343719271701352351651908427449484494237573282770054845953122581014805948168514699348638914191812881516048968290427388320945385491689809618704586926910963396626885708695195242683773392678065671881825602435546978361815371555349213149194688161399069883550298618362390455896764568032812591684949895649748745848569179270113173350991724310882100195805205949905141629100595990997549836776237129936850537186000848346117868739025408373854202204358848864358975759840136455012094723304240511530531717683294710099319387131802232576185723217171726245328130299018076704985907238883719162523924741259000325210614996112528694639532014632856452556478296012017697040724190517944674776813427794035917291941277233955085365763210898443611465181719799451145911313452660199121954242274263145408266407452329527810377205727031963110777623911931266637547605093367932973637041684616794966077331788523552303271581857872708509927797187787632804068991976368902074342467533844676342912596208497260448461913749171102496574227500160102639470418210616512973787753869748540714255167439580361198084101388854766386118022261120890643324135647796193482922702706720904105461067388296365812615457831055150861897464319751787771296139002337923144381793358560084147868169884012307352126609424824356122582613857029230587670183008947599989968652023573029601145807248344338639263689964735128107900213429295664975650967206978158415052086329163107674788239006884400708966281239112889595304133669785790856320665443736829180737671019369319854236840735597226901587043234777380372794234191461051154136042693756833975768262451273747939231210967664548698748995724493906709581362563755914119407054833283654194840844804501152592789449327016544878562472449353591951705812231952411885025847410137098419181916171703304349325735292737524823931571165430444755075457603003584100998922743319929372211988140460037458571077619804068004188921528001803718798177380462499616654879803676466723599140696827241691091013886732644318888827619624497341958680256168281690708000900891318477060922944346638900060919609951394997857996670954174813963083056689944493117356807989892400012054131504871959172363160508177788269183988764200731489469632516946334295885570015626365751109626237784843875793586893215603445915754617454186040715504121691383939607464725830289863960267015978777744000096926448683182637062318795657455876619532122766862633110924755255825626267465075307667274419337567385269038813000095367981208190568837610914377825976609419991575316114595324106736464124347437978350359006603740236211971106829141855791513418834727242000696956668131976912342123180302390085934701735711458397548422618077314367527877271875711389934458453554267267286602701634182593014084235105041965700441452391215201835628176133872130626108418446859944353829365658488919451603868494953306899798984550369210984691119915077691422551611569908991776808803374200268740644079592706836050864657448164725616559493099623639040666416858368688828987397051331651914437819370914608085834166845462053068703098916212408991064781345929154704361157787169146699930911274699951083425850458261158562548613787953189194071556128438236987018360712179715627278963889580173511382733028894835311734354973628075097808270913469403308615761745823538710701297456025759704804383441888294209155882330849231314263484034273481069691183746294789582758161888067263040542346895734504990557893784771736823436172848278625872350858576336955251556514112883308814291326100267294852713058727079618817762462573049524711769745109523687520195916874318753027190765602797369442078655291534844208689778807964969930570971516333615723765685578536308568824300897204775836241288959623410429062746629948901204614158941734142868732983564033075774608772745384689314347776855074153227431812605856758139227695442329452906282977177845478987272098091733641683523828216628562480754694319538328192897003030568280899935757021704355459927135811906976016988917392047836966650055729077115433454307722919563070329537485939676916236026406333200014277118769423190515535258779457745788450463228728367026010502502201887077543222028249999999440727727170116800215247933832027974349850500281914297966639193703405875634604597013828751365418221869509551753266928187965116168461471127906905765075181501135987875879652858852022323889239662273540664362400122621474638324050711688860557716971813011208866979242683396435753473040150330764636050237992061503186330543866786913212911295594177118839350760436209643880661348015673476839433629557552970163942597477269298800794917661771164651220199046687888318031467161521066870220056525193475352748021566378196864912154992923705160573332978747199551626404158212239211848321002198937359992354563613510912747477462776702055966635651666544345131453086730839833900562962585846136840401942112771865520337387300151418698861611808208928879767968262158486454681159017028772714055785558145133328670895535599954631795185066500815306031964312418594981550243695375025768151567757218435622733848143086974528919909213890293884809522285299916852434475681292942161374714608898854434161033634337694467861367198219997248095995193477730518337967947340559966513547879089937919486765910746288717228635461166224284302676743731508501497226786621531029240813410106511578641140671198936749143449401289770525507779956548773205095832365284821668807699915374513511910230840154411746229342670852041432368964271098679891341859415308252402856256852769505488715131012017841592854992049396859627728610775453896416484006992511413154024704734790274820158460963834592778196707538300446217973377469153955468089263744754915466990238777807975032419182389464110214023577963745465958564625140813002701801317388199997666221948361766923041786279169608424675418046234514880326363154020748135813947719797690531581565247381194690798272064757474400127578467341838820115158388553411656721464740423186498659886341445111070872499718977564252802558679665637031142339742062772656554949153648887803875571648557759132094050337126620050181824572774984505631832952290764239449616714253029816580701887152420651680526058744530606204280975705874776779032354348667910739279873468037740635158070503932199637052184519432211923673331319604044062659777697356816244321258642355870664955149065404151391952900963928093338554846452927391256234184772476771420369173701111014245269273933243420897012057184664729187352639414383051923932013367243408665374545256647413911104710603503264600105225156584617443678143078996534038390997871380589844381745917084058712012378174003150731934556359663009532508837994497696221105733915689872400424946691619708990511119388906603602710268763708751807695260730952504287053881921743584110218984512087358543173714335812017421099473839248395318966862722178768405356011508765522748247127030886496400305914178348825613186264465453724730335906014374929543905007675761179477511510068798907825209605607442005078303466858263166372023666838149518163350617795074707356092655606598666213314918868303288025892984625913931359379584677333133625418895025908208530516582300376559069696035794022381083724242436932696782737771961319239311141038220268635654013338957554004432623507432708033122432971747826950091189293294508217947182174316034455694968128415266213334748943977942662191012236748090477666499607973989289710540457367376339812847316424938528504410428690176100535667039036748510624890914223089724800190295442200454665222989154204740404047527404353723710898814537661274138293391293561085529612320212148914841740066017936698935548931732578565399045768364622295609546783162072547441519389097458233682700635361989595762016134279330767823984209695459377776643495481406600462152662090094604000980417568275437605302384929135319987596263397427887427814060014785275901069500875777611760075652355696948119937924300179266476495582708957840384720294211578155048803746521546969611627939098954762346960317418756509737700667144495108938529003048417386737454430627900361245246696334080319592450846737214275466078510867967977715328415343487217895083990533962799707175480182699908079388114176279903220138617282423790562681846656996344323542068937900764803395769009302971312302763810889196913492462698110852563916035110639722662574910861388440611653386055574484530206169098908317638637703364308954021424259125170382453879094237935111713434133055666174640972508280896954734327865965524290795745200057310730428091267161299480580308454442981454395522423976412458455876373193570168168793003493922687393701190064309772603839800059794760615057835286962680630583166222227354106606048242064750953556656492249552725182898737959844918834404474727258458157303537887552905097155536945179052126247343960350078649228128274365464549581082251854062141190578064519847670571447445228479683044667805705080633714972742156227110129466585674768195671103277014370248425120603454725835288519806215789298050899733514608916685194171892247347627482691972990133612068777655411568724365991842214003513087846231767317684058790677959557980364708077558295518144784744216282194953112556616598322033736464454257016898103308094924818426129539658606900056184413507770072319036703532329599700594084019520070441042044061197538523191356367298247048627671357321792436246327326752336609081531329754541152610176749076222303555070026731051663279195830323578547384425841650969134292913710822732756104353182773561539479658006435220289149452053367972665956370039752032570344315095948045457502095075907590617608035815631413254455559754904572824536689974515343914694550046420127860915193187522595010154373401811187986219018448280456966813111803499416328121146102126360290361245945304328364560580033975450534698111665745033276235318187193341570133922236575359460156308812329640607720032569804654634354015072830177045592703936031571255106919279017333956120415220981694569730363187043398692239899595304633240095312174437774126085462991728072451229233464965233641930425539132590122521760176025593015911409180231863467683874784259358229689893503208686917705368315428694374168206947635324089236335471997658982528237676826723687171606628113150751096036841180250088457979359378585785193840004592916704205743076231382470702935606814234182594675033583333773373160440142693665779218226685178737986372917633653356364874337484516369529410773192780720764835373690858206634876423403688648039491060716928980462985367620947775212165172692642103408866787748813765836031024335325860414600125464115889355808565768121431244335559782809509191136785333561538400769476635450899633908862533451513460881353373899357511921176076176007011106561938210402792322036873939485880181501636073211486069352863053717390850370501614643357110752115503764451987688008455297584492334696090547050637471663400170377894732043100598223671178144673264923012928776795666173967589812205090975039258213843724165953700440462473707951913680186697055384320610627482545616627799825205005676374243793878192660838346887912805782623169212640967543229715616874253030928697498693514534627338272736133856756289910002569804613352237657733317216120407940252011979415127391559252399241489970929669101016953782348046889328417308502818967674175509338154076889595639894762414524504677979754691774505774509900559608508884801081403126636962218705800667041191807287821850928160482236981321803229398538942786044925519537601010093477288215348510927418685987254460518298978506446828556882641362715207711388382732419414343513194771496582801980070098891463462521553689957726195455415453712758189337552592357961165014180562652750607800642801262537185554087067843232689447115334321480382297450449311849665802648171591883941301950755479544524269882260850458243410428034918759207175554854608031080739374500440529670940796464959639297515544890609020090637204346888908182781145681429740873182931461894463627631144273378926042788543280576825576857650142037418631115844245018658652059841272643152978743501675897508360794470618399379472155972820459949504838909835537394486492188790510937448148022943072589593651666426776085733910026237607241218854448479835525843551161996566999446592650556041640911459570459286281437522135030535683559949693529539147222806769115389852806078992863640839642006860658958057025745200411436649196776227640887534513887415337509707753431559337007659490837318659547794855669786865649326143614389176105813423537860866848447632941420564558569364761532915352365299060755547803235447389228038116040051417260937736789221001989582988707232979551072598180279439945128354859240121382578831856551877461515885137989439951558740775224044588794362802028106566268326575101340244464584488815688353588301323485618359957862830795801514446175691802035356535164481392780596880881131826282522295220778792921954460514796509956938421656770282680631848210472116808484644402272832355744138684292868256926701339091483663534226008389793280065316296173514869988362119862682737259974098856472810986980119854819784559829803240710837878846989062851893232822704791556059931165574021338520399720306462733124194770588643201967925073263300613641180080316851476980792967154961939876572396017792609357136375213180215368019812217705445334862066894687717547873112254057890886723096323463670455655605372872719391551175801217181272713882862853902092612940217737457855772839491186073402524480362452487024722703618895170573524308647621991485885100667470276051967165691773146853270721535367407775466930250880702356150990689524084451737211841901543359563227684047394222227051491902479928830520305253891769477444550226607202251999572598719678382282751458463337670012529872094417361239324076340796727714766399909680166205316944519607774940703596303280503321481972768551486883714024128114319079312272841345209525247624324597799264389173216807575085663961850122380125104011626449942251385862424084900052386199536235566745596708325015626711034452803762127394795313201244303460558054447506031600486055599648697482075637838033767088001288709805326653429731864810217854586202100534354901049662826765204016775379265873556639461823640307714505276156041143725959422976181520933753812217821709008333440351090310469356555584258003166020002661946087967980590351530903909457210115358520862374567330438655954512416835655850107524921195014044213038360284097088848362111755316119386831077713838295571795376941601705989687710161661850765552527513822566629823720832788919648584907393353724765431659739382722166944430463941537043108357515752497238912025810231624744119068954652833809227365571013354260933187918833740420739018029371881402729159124270804172491227015649253643596912303658244657456403713791835837331080947853074948201021267373386520401127406768202219238990621379751987516154324801309694579982942415575471504239960522005256339779942651222861213562537125671490513976191569886893021359842337377829472397026388055877164509374660586726066662730588117426370309593150245697808672442348596197361487212995785808292067356860933785897597909539434144232957850486946692213100439417605043884550081677168785095093987150798526524723908994615711992466098611206429426663284597638871941558792763384406917868588162906764346152407751824163885682758814154806364889189030745914420602798637228344637254202075618354838726982278040128102653317703440530016857711463579218323588006147644155315311343675470476110108203559209576421402904821401895891733489556825912260756368915392781020436547972677594143148798751172679777275230835945066242691304107032746965277735740934643594421707962454569570108921746301770265311142034579983424049364148382503423554602919958217476365887353751243966185056089101880887439259909064218136588982032026679685760843621480644940521853870741044603186432288934540629201884998333724382062407364763428246129819625566491321309549618276855661423164562711426496266324974632943674676539484311534300942233236679255261379976142369418502261180182411509225712922391650986478329436994821394658202324927121646144486778313545290824272035293681614617171033845284030346043774667503775707548155295549570621186468519364664466467259612160874951667991416189853216447228516252664630627242699904567433113137419123585166634515104665953377497179263016914282849398154295776837594665281125290321616363716962087134623418723424048232303974225175912928016643425811656331707174810701103549589184651952298868428979885988220561065807436449548249711222548441337395072626477393277528376390694154413736055811931717633873118924834734121046056204419426041224027397766850972345446964614666633047062451263463984650523070562234124656357623200342090289349616934810012615333082994165667601114676670658862199604417961538135842787979544616772106371837210412084214842304854465556966050067687938185713745408654587372814132659558036087694702534743000074752422488721152106853129330902595244870653061346058062840274178452140263341595461871838929528761967804398954432918383833326474385171213877995604430708331439660866465949734577091002301375155655486366380875603806115149247697615419787497920799436686990376352479556668782613558419825013219325894559469641652673220057913118422936050750914370519148852386270671949882575717801365225286631661231185223474828508333276275306309325637653448620769167489314304513799350340579903775471782218141703971780120590023018280289013826237529941513994257997358085750459025885254958465669918314887646427076557552467257585110771667440515354856944795555977909342186964350899467471819933718122730112324915753780552373448837987112058386729130870742232188449741188310336103620685766145679722059302824539741663623590087085577139481686434796353202790235537701185041911743017015809770313699322180324464715769783009509813526788505023819663345905310753566313906922773906607277977967216111832248678358601329736233896564558738570712894495053068114820001927640757582015480444879453190537072467784829659214512883630610717998355922664131870144836530712693130271050508739118607045337564812134800403218308214020736904246976155685075211824528024924781677312740835865211661270525062929169963099913108476116759716831508665727546216572186892616983934312119227135946282975037789637680197434907444526723399656163444629217743306155069314133245944835105447957967238952474060825877428735472422597384194975278782472588254921496064973034611904216455241227582249337055721863833792930883136417417686819161123394809510175341837158776837564615408273266773172660750516305676500677025421901359970831139744250367756554157393643160177160370598152388877940506339042493963544099610432726018685103467235081896727517055460472425527501197321014779352633976315619497056166459774831254074977912492014158838517371874880164740842125235143107130793572073718195912357602817404245273464632283659842041402148952481803265630354393360368446531882482171915134035481978975802979792044291713720392669720280532779434443144314324487786866640721798729870127182584843564155871252008092570302581069543428071607923931249813798684296300644905057172822884547187678350071612343641493502049647152712650741331857268834016457948461778086376088113697382393440982849260622173910103221208910455987291715369033705147702651858514696696819721691504148448317741501014618518104199339219096579274215199723469473642798246139625065078214796168388262821883861564269265714558420212560164540666702391237718100319763261542968822572429796088655277453658459774144002600234526995988559132760807600567482873217831706248343103913596993786718204015024140516790508725946360232652538944355534499952434358239626111338168723232230067123125210922102149634066843339917780260178589032291974940177707858468773600711660999295744011513262769416790391531186748576741793472001942928704998475533997991168402182224899904868585247956627426751722238893833344001866866518797313687070667559868332892572667891847187738409027022677419393749596673539128849738471236983263195018206794414576683230308420869843543151182766886839248395726579896448182276438300946120786601956140530710333293780913032542959289419078201205388987806299235269101916564469035856040521155458021245006997127612451046619851694537904934062464848190784657217508221873327181638553424512441196587350573563944509063209254487976113150482500132902027417427877994523526549598681052834561640029703813042907312218975476605474512669594406717873291439291954181749549954788717625925612920581268015627344154618432581480798393897310884266610475824626162953750658382658909532657189282774912330734765952893129748836013336710890849234633031052326479951593944299380568780095618437332250245648983347932538168780508811174031081946287418585620199990979465058624177027549125928930327779263081702331246954961215239811729805961119217710701227881874544977902983910528141356076381891195715069300561261414068489427738069547987050052061119666063605429935602216356953214727335304083929859315091153244948962910271716863807759389586073191328495886902720323085093339797592214283024403233333859497922991615526017226214515503657161158174094312307539113370633914804193633801207156663130222594524932493231964106885244865026768086099450618885116229320918193120308661694228985983150358100427113710195945945199445890602255541734548789358669075228233782119644879439845384581312634718476460859254368400667241818164580030400640719742124254639494594384038004775843248148386670516341580103725836576776681626539080740061499816649350735926779915720819265430606963386044335539205458439915291888441723626851153534812939624393742801240315300144366634856861325298059964357106248087832969989803559004396516613285762791067625050079454475900099929383619053441034521796234803901080938264252748533707774749161280964781199400636381032558789683019883635677744022304378871931822179030624942149293446565260947274138920502923194404754017665266800770588555915414324111540335594768505453622257210239412546719417223077401793911818443279256397046861879019673286365701661884216937365340760006489128068994259319674573422067572556327865488184339348753224787859174106594110492986920633543617527043745339562024161782695121835841018295970895709479409552406105622419594722796893937639363097470557119701186695663438176809916445303176335621790257656234969650237222904908655724491753111780688072560653804168408077969040906720532868608809878341754061177202141237937581603307104966293098626747595993483828558580856991107907744992605058102831038194246381071213051823810143055777398324118555923032666036143675598007818246620366897912412728335339640033955085138986541961332510834773499901280783430416014444397222843283093329197333155599548862691983519405966584078086342005862574609395481397137536654874563208848722590235799309740783531500324821623686102672915116816774014886587468882371751412090345790244025282840337505071940001648318451076366422353075134975216230275039860742890394752974358934262807700942764738932984421919386288472776189150068507673058627140900833111083801335999662791541499391734613554671876315487171300278001287588430067502814832271834083994224513124931549288379800356168938124835555394223673314353115238366463980110601860243660053443021620265357504698414472574062558883586448549432171154183218566989018822665746150585957401972448751055060862876467494151095839231136067605870892304625365183884699983101903818930010798021312161467770626464634438901946275564957687335489378149746063599116510702823560367800543431891181390511848163959688653340403031643882971179675961103617557086990504602338080119048965646239241829901819304753042239513426373057625160394420690703218943842436754202248822556326614341004966356348259334396667831437185567181047128428310688980632705455447628213011694832934531316487696398299373992992945711695835127550652647691241909025839573006660692957201082104781585534930880060179198568561679605742311789817379279918296875215394240314819629223839378479150698571370641418472281815060046354902965162935371108298242685721391053376069363396439741569252014458688421891288109115469052399592170305126409175257245698701208888311229324115679387752413857302590849320487118902806599899792793159465780130650499558781267158352076313932770415969006074553694214509309026407143240453512342663677305840395264229742316161385380753380872140825609459700886278948556660473080174411511293352115661690447144148553316851607612534689098546906008867034357299496157941980879722351501854004562712652677220393222021099802449936919219633453228541723205708367176310180363735323008020230608671421642095479713911115182953085627079713946895152576985745569620942579131071872340443459107123528347384673434836278868302571067568224152873341176009526521814091017135013704011436165381008546601385531729050611341012712481514496784007624353101996070673207647966787044523050221565067209388927759834921743937205114224238460034776675112837651927453873401681442865106613928219122143166021484946836301708497803963281212667897904478998825098746800714120807259189838486829881863804383428353793057948803409290229839347341483452067122412419584256415871159777856725063709928957412561677752624267905781323581447293987349299357718610119421096680174263580471453119814716542805584364468698648333964821535926847937452933576849243499360327391507648932387314578334759170546925016703323633074669849036012694903904413178153192601311996585522477942361097190087604587396212772760276118511627025026416875559198568658774582295894487572404757988318034399636432764799570168766250692431652430466509033116356347447022436129504583994426430549170270904744864148819726723262425479371725900883376549700118389296812321035129853840068335505856441023882138976321488315395492321342634074058557143614521769642463035035290107647059014677681970475664396440493537862759959818736220124005590695398021869112752573801290695664709903431072548419466686745749265706668081873848497345577520925773058477687001043624935850496066037256698569665279762414587598029215316627000608896641006256983225291679244530368738365949393478137489580322466610946284866700010569167477459078440657934860854624299351542213750487911047631545031580218026136585317348117831957719309479691040250778943003022012764181697370099425270718093905724361415261300683298349587426231978973732072249274798064151370662952585494671413558743919691422576597562157612822844705724423353295934803355752797457650341749146390211841947637252049653263094152101643874043339124390808625704805608471307311506039664659223330203989593428064387789211650182454996418601688049612613337853179848903875228675650233411356641710257941769372311255701985072189820702679494598058985507740350174644212717623880928891940568674417756042070121573231980782625921941293400188107941470411963098394002271846976266843342919779688628034116132783093254195954633198503842206982895608036028916971686637111512101273613329329874597128108398762785889489770683707941277467718679447931174570889278552592439414085644386524195981820371748441375293814534567224961290744807361784198947375304028650877014756842447244359348986834707207824784590934856960765556442163675203587981015097413236614401597769606265068639615830854915057439757745057045010750930174538520483701063281974090620314693893426934255137574745148420379925768338762040107997577215707678743333796514241142006544436204804062690331148391090772570840847238492862571918100801284430140663263656496386326451371358232457262208982340680844794602203238006182108848260796680307276726768498846280519093524579023413164212340881207509610767379467060528298088780845809643031031939561202483195713488004535052949665961837133523963650126283456691822510479092543447932332900229253836742878287842985399803998593057735472054327189908853424354823990587503848287282069523660558190558289805044799940523913474255044966882654508071844469113339565880863697259833929292884897505770373631873878368893257006296732484609756928250002612849212943311724956679470961614206490916240845134703190429636061883652776740522674258098049304159969156490652965248400047202009510162249310569412592361453801671691038502137559449285335562772934993980376403995470757057242743743463905686947363231817432037319835096639358538729340608752764133509463650302961970268141133281711432668051451688682429063992602317810687839586627161042107987222573854013263148344949996409623254530832116012123045349352967289884261939156727495545534833222860104756074495534044652197795238438247974865890107957685953434616643168113671627822975195450797826661895022946343800072461851158501933382990898990700080626161213631334753222921177428143383478925337926436765307731226282988231756614610365346035714940727524386423444316521315126572135587778513258191745021278612421400461562696977779126269416084709242765680907658182501460595951577393650515740692930371682999149136807716118364829801573351155564776478070463501349775258437493663375986623366573157242954650662677851345986529742602651119041817340650704438849162074347803348776676310091512033439481727767711955609085709919580329946891261537753358079886655437042133016336857740210687782228662512016953838993146039144825396093210701720622809258012051036053173752706252703046257536214489300062135388316689082492596377865521616025746655212601555348983830945421546380832148229140030767287536613139414870824775982546107941738075610529926366240020886195258602855877653065738955695722472539139626837368192708444078298760969743573269953793128572106384838457701022269595062661684947510525058541837129904979900788169152183945032066453918144631018383949642073165683691862381979367784170327118371379352287156536669943162782603536954257371484333815230100740426042285778404144551486284027389131253714913551192703708388629669193004257626785771490310622117184028817025130726853695746458988178874453536364537486475373976810123607785139620102799554482568253513215397953920045240743673655518597205126613406880916086156968188291457793016790250754088273320236817981703195328429477801435564967688083327294051361713157348782091751257891764084537782644912796417038817272447115256428354316999896118974220121955414858870470280083077550595348150450410998930997733736491513271892200905969540647583670779177947984588233250030132823704926310687395202754635741780876656880273468058876246034111120454343826526210738524001213295379054638483659377922645086465469798125665141353071740055852333307592832550789928765569453733947011312201168016420193813417244839799402740965067507381958992449587760942336772672840250565280086502276718397667308890339533589494646055189595313293679292575070152308744870166909121483187413637875433562111895468276119655493277252158438273232954259718366489301021221807442578469706084148934178582749253458890411885976463067349422507081555883856326798937295229932724455160505024302060508744069289247604769327418285261610100795632020460032626787095558128212433445623836938871022766101916861234341759173406640888394163858253100356866606943433877274142123498780048132126270496174921047163691926300466231208153362611301139547456728336406938047894714421128464655996356453833932590011270674696943789572704299615305676548781744565789994458013523621127940061748697733095395676231892507873568507546749852138018186082358306879293823812794168249150210053773450245491592211912550649669069935804907350477589193572931700276048065485031670556344678965222678760277131075654291263842451625950580789152620985949718750270851321022408960242517109418108783042732281758559797662488857531570856563746092545364158677998070198193394871349943125656224842101862946261742027943343665831739563397219726504478918416885059776492366127930204259237502671141722310082145625670988633171672665678269155965385568954077567656600587352673814419122681318442560872245173306953858802648678083985587730459146463734415088405220939246450650502418875346465199971714020692243910921910605588023504266705453026745404952911050242465466248287834745414153346993381857581079603561064059521835583231434110526480083403584903648973915591473841865422438573098325389188811128536788273854292643376546575607382454663078269426458911600083486335865611518215513123831237340063659971650490664809963298760975759623029739515947384922245219235932379713212442688501987573194097206652775934892638475018196195808818535428717298664395880545979076195896642390161666814081618323950965846859659116268266608801386122596001610541641780647776376979973911212015482961403334542470663461467721424683628492655703193337179809427388559617453877438609454653239755262508821179832124794463773756811552246956853394786325089050180829573056008684544479365746434038205226642382369445604608442489234374586619339109405058820255776997627730490958101940691835358999423506961091807077021154142314757441554081653278783206570102438390853640526821137975102656200067416646221481392866875367539014738276823714300492974325124833016777231706444725350080986775830916980541957116494896982863138826055755661548352153528082639766587832057685432802254626405008847190168665617523389028746601868922606824508922772168965047250477739736022089812244728766598980746255685783476925038005305294694402953878769485041196733156497961317299086235580477108033128448094142224259998788771071259231670357341989863124159512786097974350669123595736593987620604035160538337036752149124424931794785832035625421578202917970501132494109328695337829934245563333833194883372611718768649948219200948501854833549171693622386351492132507360516533317565753054376690861289921558902520438469612039563214595847007975441987473287222045907619612668688130018383160096807026131109680605774070227012538853973410616915962855294608623890919497944759303399871970409768819927330920246550832028973090121230679606346831020249545292255964739902550809998885267193418301662514921486945567227614333452658630658747798980767738827169169184999252262905247842198635714645089425158647793992039693467427067687508655670022263184046273858443693366734751303997079844363748909614817449763050670156311337942025619527703033109215152458524088806428391331758821647188774312349826897140344025194879485514108472595667000612761115236644624225665781564788096250205308813346714149435453593713913028348537733684876353915269272573894759668651614980880958915685523864723011359155557410485962114886361468887732256629070785342524622932835075077939649785512204322422058544461041374326640942006766355551737287138810372666248819562863745516846073380351803503287558034187115942734009910285404144430368280726989305929478954988479785709944548089992742456471352926710178725715543321548011981913849574623575375971032055895322998975400460200480863822092940387439407313582396109534720789356448773390372323033347745571208199035738074591763666431675479965143135547417452258544473798271683018168204442817101548566744039118407045415898486564408478450137662148452491760258595414454729042082567439048622593940570986718399698077600781763212326607193373642760398131305962873132439249488418307452884861727855151756776906560335028679186193249643179822054816695482535514787203233455326381692677098588377478218460392782770639177578563911672114510538255037157636972312104965304019202791612504881854323888933985409444853984321982859170134770727431098449616886351524129425229610967787420170579177713879197363964935755984647668900936131827185064466822221099962351134598929466329853799870330048125172634849405997106194120841467706033382647547654624993963358132285752873241233971263499791783233150814335262075250274512061168525583207542952210900152436420173538721355477066711572800341031232973660353971180860296388587782593451171431860462431246887031694858618223699418197905028083789922792040350935644191280321592886118355125784995133960731526644570085441287780142228090307421443390215995312518469648898573095945611469579572347998307367720895560031384339765094058949405705238145873118061526116365916520903046490931764632327886284794942759100750537161451610966878051606100618606470755252843006797609463905144415644497001056457128069384162317738830931952453525736213612007265336326983227620578868942479172008890770321597691529502208283927797369993223778501448097211695032904199570812087296847995039953735792587631699101581233253425773236987050004205523093527492023459243418972457873401742312854188173277507613391124265458037344270809912289944745077919199717502406252577761561950168293767910333791038473638924950999552896108510312648775095015145966736825649087115791539042479209235831644793705592666306240358081900743820571853891893142987008925142798805695663389008706938875926012629306010166359732803725897674690446926557948664746962293604310078170745925257666508479379135168326672675173618953494247078381192499576706286896590322030399970168189100930215403703322620543810684015235631653656325081114497750053422127307199431931367044308248081293218016900636995999727463927042456871962592982567137840564926319989167072931640975946265416733425708548449430418019647400536148870585283006815040270326768005090664278434590360596212544431532699172495042872260518588457130303405683697648396022511414392065774685474773807371582526800128638708526692558143702908527009862394878565109072304128642596576816899530730471300357664242737958563120552724788054232061498674190043248452198218547778365877485879164578361994211648539048514569360240338773885913525426571067041333616376555149820810057492684280007070557534981976247043205478234686775171080509536667155806754535005494714297218595126556950716662695876932070764009584628010361947804018378996412405184693602453697620018134795408344698673145492263456501614389365085425677268839579969481498036949389963692113710235533171898137060205997704765091421047959369989509847194090932639183156001826118031355693990103883111676490642562888085385977314298215927179915023486227640738868274702905145641638795891907299837351631217937249708197175338364748685773804756850965109656799887198923077146966209940532537220852632718430118246812967437665354211322313450217280181838432145908036962444161651042912916559325662780009039916164496516950710255469617438144608348208294297627311799195345083021883186020012831667359232188166163111348604569890875587853874016549938730885255709503244735404789260281121226679640876011324467083762467894116387503347615719448530395237683904456349082301229106233692603955264301273080945656683113852716057376317388989062356168619713943380939890446850010573112494656858163308401392659818140368743994141952376522950504879831282082287445115278335158696812225515784372006161039896191456777427192512386598856039154211118511185481371691902893340444946921478631685026572996785054319901468746794966412104547816677839071015986234356362605096074837431106393403289806435505194755660968816138816278779942283618008755351002617358426002058705943599576283409108354779487988229138239142207902068304270815789241732358287032885649163249946973148222235311958318409807460322172049215272197565619862421632636754963521606285298742132688030745102572880228303591581812065993133115763492213350840450208339594067866924085790001436189617453345943136006659200911025296355329897985885434572559843443582910721651398534575912669909750316832464446016826680972002178039126679951858467481504685286409066307848876676943923185442204211083277512150729815139654212537792030683689852732299106987608407529176522536458080213942717100840661768543413256752321003383404070855310379375183430593718311800069275160680832917374467286221992190926175062159265603044836530597490307991202534946182979170341143506453911438460901254454442930985724233249813498716834607338609131202781332272504881428603689330282059172826275280940750042380436906297169048411524665585660793059354617404284549643651157769238438123221141779198495187524008448823176090507845937610884833629232851767306535247119322566326223850367258252411271333376446585160454160781109415376771053450450946262204516168581147216136693017578608215553605080786177395722587075631928904109779867564097227262967315608799836444512622016594673529763637063567332627737652794877883877457446889294413104295096595923192104434150411147060957922095384401687161323863920340700052297614555965811947541072947391164439845703319217966066726370260897822678966376452193587874570568137966678416966700341386674685711093276794382177398278850821682176034625783000178120578416251465672863302245964710544393809245655942515342806100378032232490178643862604862893541805727258169143982163865551937408995722367927332404717793903781578053891256277778413458168930728685266824474770676591759289477134426321096700369517013515858886841305253332431788397976318519493404927723410179545551696354873337058015822393650940736228300624630168797580400170296211121640029890058099048168263969680725239247158466555277668607502320012961169052972416737088501833459713739270360155502973216666139997650872469783313031540770374686477319052067836735477809498239754808453368456298621774017844548299452928034672053822028592258494751072149450664037756996267022281361948077194722932441960550182118832874905139120148887076984668008436094367080276883620620379557644574801210862993199894815402229194275330647797522731053591674931141448055492488330963145990964052890658437479482379480663572571869415726417914401738352794223185727372633424496095200580401995713173817041111782874674942668491448974154568575459258937072367418569191722725815327185908503524564605014307353462727193971609630010879762230627006008016656647609881719653845910101855499581786423326753354894964176546943137496508918469899222260172266020345953607960579635308358213924841607221469582455316596138823395205752587833320339260153805769787188528032058501811164521439574438487999996930593402952426318633740818055832156279881335122821002268031834072612286036815719472772841860927003756747800555388060075594022094835909786963882452862912081646682511916838832345039971813249948149924881460897342461407564252289126771082745872780050393685510275810242208755727630099356916389882526104977314876755876313862025286807495007617109517238280645869031764570314425670096766574889370104459020522374796798709903248814879533919735282186412476054301252023752145095627414027769438927265128653484677848610784578812691157741432904253133727957803534951191446944621168486347398490415686298928479163814192146277383739830419198874408308552579914519653982893500860932750848846903810051336007398842974601241018246146786979409204112758280853840867867736096689946341266406549599692075479946116954185409479926612128370687160643862156323281265438789648805097813715589988532832219290197167689766050036710591069881118278825064249159273431531931244723347277522246321779276129177764706644377941332147604167224052662838613802097558597997978484988289226193697441817183270914213545838911107085690664010184823129331942836777459006776469034154938511893183262781563409920937812019047396552819361481560089546487028660075459211377181505456759265530193558663216417940021440328778102412563790729804427142323194431594093250526902383614114685817808989927328302853668624594823192712843765011000217396067911882633650381352896342399589491789938099950910340586483166070216244151869361666940504040679028433497032929080498713704527075257980361865000856500197407564568489418813639988564696865653394515744877691408736540720797109646295584212721459007232284040712667692077957989167840695649813636665666998493014991987648918984650048712392268063901263100418832683273621241459928495511784549374549924637845900333133525464325960426436472155977290593883116280981473267535133557868414024224215683301453800856121207749902084890566692671428655417069468839532602563464945976601542789457833796913185976047040105091527382958935945764622914669020893168709618081769592128273941919837406008728291333844073141998930679465136014261627437881197445971561363146619931899740718594096999994793262640266017897513240022489959599774459216519145868667888922816451264680190884367805162919770589980440856462877676622016006778920383716858730818885796299814802234929390636757648706144285804876041999739961343191271301870516233003491338267323519652152146140557657749237155220115770731481306026319940040749663757494244852606015374799474071672025192530231591704603893505783025347357722499358279364696008725422458995271125564074153493297999145358504162244647766248442890109603331437181714368783990848591915740366775340443716809017965368683109146793566303421453207540523678360117346766140326970777806082413477504543696373283089206046573436925235101204365440870372825778243411444801924547576228603186086183561553238992479806975398898552864559159622710165551303825091632759942794379782038993138690705597230379580220562881070900891558148662381871721522467742365383631469010892748694709560926394331246105753216354346745812888364541211091050555534539730099385390097496575301280555848561141714079955551296302139462057976401141282592905949795331367570496909105215737757017502591752628262166389532170742387797692592600190423115792043845151337169467807123245237132049693377189189685115156237432752076611510540235835518900020930934367066597544414682411210539322384914082337466247523470269230012439494575872238267369700626465564049870627089596615841276070784048106267987356078630511870092860041863267912783514969240865118813748527217920006723382594967248386327030468037644216331962955812639927218765071487209854284556271019892809696672681881532704463913297121772497962944751360138667362325523457265656593769577397001895784224092501250774644774967979505550898003763567322351383089240763837741775908633089744752338408956423085086647731485625433730219526971569066611591115340588808924057368562460701156867742896048397711472111247026904398877402963810640661946960564123448589820751949355633808903383607634680851730227437030410920069446635393468719933492949584747327674279450309147086109039550745261768344330014585689200050705716282651141374257003923247836634758425590873883815401784337898603069923759127257856668574444422466857969112641291475043796251190022351104864691169864449242109722632092781634262389901410140940773531909577012982019001786144348345704538951807689717557675006783665749895896814524898719918042104370045926976006007475648640105463639470060045576095877021867406885383003630000222654278938198922349017254500730355461489557861736527807056803928505915544439593651709650020392708487457393313770481591197096564547790571398483111061526525444153333300951702153760864279887574025250006627456033991130674639445562678205782972588229200971953084738025170096481519312839230119782420138714921264079537277345203024190693318096303571702399519756631153163357994147543513974885394049574960388251189166268405088982958413650344388305844907290145689980344618803853740513802130831128828886751695100236679270514932003280357913693353189497675285125838844386380698362358472104281063016033437560680208516506452972972072727208104182257955053727825437966626791828094325701742643360459356039685573198957523666990765509309313985051319156151987953883985910224315045269000770647850224625453895926944572159872823411148859015597544367544955112194677800399890681298271611117168225083852685624545781196043577765114479563462532304095809517339375956877289952252614610189740877519344355191716876646648885031427143245158007516295564735144134490955277017498664368476191970406230916426303192593579879881035665018001246553846965205982659922416535650796262723459702175437617498192296999324740549199030421558704076231592115357024006110520870423938552511254564799913941779039173202419926757799437161136886951510330546483003899821576470219024845611450380495996633038145612882456751508973975986492248329844011670873100840253453158353120540994906316405162922225435315310313170850053057604979481450214289569566415561806421860496553084722402928421186019921340202186142524364372475057982198737573154625539097526301116435759909089404422090451240487586345513262770701769302421489165916869511547094120673134729494227138569792918708519878009818511182971147898469907701610436996657278708931415830680483411439092967639968955701335158397304686494732570271480222121701887325706165494254517565875517849165191158875867959074686892892424091839915851522907407362863469183621413680148789135882365502572986358052251472794089124429815607461409828505642200715626933122913679782523322892112439314835042215025482025688423189535654936653858130724389017915839583911471380275294959846905040027326138408292216151681854998283195741409290687235979255882678480146977806620639900663133330574518734813582945829468156942324879172749523336561118809377261132611299573211229709456347043645021128954941812605871851159534662525217526863348451467986267944948766390130961404383091677070710980788102748887931709331514032665015203054473761284713680857166467465672070544433769027712809393674264270857204662142384298193274005274031123086610777164041097422951349107927475547411944346998371195188763959425680662166858746985417090523186231710169637653477526605944411866175621108937048273235184988428231368525854320401648426986995052566938410406167767923433875964976393226915564604717182561491496677057453770576972027348348036199222028995716969654354174347217169898771305910650767943478122952955800422703383012449363278934046549540686479147609795131487377505425333617151029123262353557496210996552370840870811975333935770323849007020604980710521420857525575882659124979997931307309894967470103637747665564938465036222802873442788852575183922277153239433785718477793892873406486897862992297601351229265253738045940009952143168841006401447866269494196226945144087324529147982142684810342405513025817965985095697701564698860353305263444218487474700043848726745440124315393275663052896328815256909055963980370031489454602488251383370369258751792680332010551437965396258267727509529453794336252320222020266411568097242461665118258166748048535325888425750564982923154718986051026723208378054899730379931298243931245262785808354876548820918940787983792553631261763252982629395975052593832513284603324975559622544821722419294185490125116914445583214625210820247837960103853253725071517434778568290370111666633495352766894577369311861712584153998124057745863657864352049347945894303121513861570848224426363135748039251995806729362019475294776124589003495044930365239908536998638069374710502597106627848731209090272787531239218539943961134626783055376967262020628098149430001018639976108558782609864870929672284900220651182084211030743717560695204184932299251834267997257546930606666825698725594979584104069563121555153574864030084788051720582293065380510534127368101140488415832864485161311294823701153170272335117283782881274449775764336850275547830003787581483383526684478234296555818689859854855629069700394171079854808350815824534119248272670186314142633913058936215289114755829848004860703362585408840105074769656212325293070677372338564848422756746123424802509019384660362017529773481663245240066187380798994549897553163733820994787061143131667534729532265560991136216931509342203206846792100966227266196712283178873437631544479239563785077840397090122168265802986431411549967774018105101235638664630314956872620334241901371433000014761507426709926457389326682700158892734037769989084198829418359500768621705938984618680387036405577168972830738925345250355932691185755945951050782891495889757152990166357646544750012893291744173447645083288055644939193931046085283829281241259160954331113836560665078944794890315167677816385999871939161358663596728078491188549515401191827205405241883282886798911092010638563378909285418260828390143323891275972416410582093097886806460659741247243800325489650922315140259830760290669050737074367291006914055110096612365748907040075204597224813062164509188382921687859271966225983431780454089658590728397857814335447671680969097281428035305660209731846724739121104266735844484970924580979808171416802554123595550879480625441180735980979919045138441129252148102273415682088236665355875339599866080356454981427092314876332024156664604294399645772007952928055067982675009497638655954297008641938348347797411491599058116722715243947201530444339368805055741788884982464115191256970712084781179587717373896797275912113744094879273399261682615518672417634013773804555710406093884913874376074878877613067469629688677285045121518558590019227277699402694232506233305457318056591354012717622489641506141374057681712921407798799105169522461954113727151865203787377161963709144601937461708019159616729892551696937141905001163689540756019237992421283710584876573704327739289075831424677752235130673825748383877199087577651575010327837623482605510484274341195801153418169239289101151417285996807023275865218544736690873669100057677272862906220591860622067419513180528884838498373327819175000714767183884650382567959151378688839991415110539197693167412504976564324167276150870225981132789915415619485417741540851800001157783257760136035343807913314314046508680005536951917236077891621456231110503667515390662579336672832109827266063572717741020277885325726137553977327046224300248416527877239712518426620068229239800688383047703948332160204238156618049091886531698209950866303965608005206657047011664544958143039777631097553546902742771698506685373908565971414688608899730351673370446449706340937857743082148383445089456197402788383832311212200941222266069219143226913329647037237070330352849714108498214919120432972405743810024967670373998509746036886894874428241565699360403426024607317646399632632573047150053900696261131302211356817442376996974383552800634197581513909193818237986302918863803336724354434463709608444146562125368371476035003545087625467641733882152003583773685277690929333213081407826807512821179862155612468659145326659474382151731426877507193602588069251383850068754001287688496550723404172774097006805628883013382328629656621682543333943574915079870278308141704730678879678184127159780871366662817614711262358993863052223277969649787739595081033552142998789393537900824668652420066849710004979771023130203978808440931338220496855421908321048271351048166087376012009135586416749927345248854219272677092132461617849300360779045115226833179875185641875430281467477814240875530253401598564373927780096847056858147308917651866480231531778823651900833037231865190396559636472372228012682053018463851389701611775719440288302694853480569653113774462297342962073220267821341135576829711686247823577883765499679084926677062182280270276171618056151028678152419818551914165490987335938190900668557603000733012696412597937177006469897343617257844299370940044325987739216972569971316597805814458766319415813814777052887342195419382151266469101269766879452381237627709769906051112414274722240387356034814582806617212822647926593799108078385503751759774490001731172333027358354897923437038380473329136157782234506864707924900661162614761634118384214557941055970721240751161296110395690485738523235052492507120181305216280656543126901727753107592123060727088317667774818520234454219077218078281754136535974415885406730308433658287012622395396894590674447800760093324603125646492113455314820712789383003306908246899018576847461192093822823241307322682590650762701034144050771785922146144026972092222592187704865651800741352901265185674687629087909962112007338245352248646434557172477040924495258626845995824423275513105735719695875757747985207869362941563229581103689808356215773599965752135242127380937008412742161637377564141292773435368045108441506689931718416076315023872965091310453010109938039782459368062295901296830433001546009176763408797366658399704336976943709662678745267881805998954887235570926375687676235615778096421863359061871964200649160532905107933522687106545694209922331362760808688616300231457453728882996342729185144433569490005427949728939649352174739095171337472373449053136946751949466933111753656918185062445843936893586561613862703541046080585642774576883806120846469405146632168899139895534452237853225161521327879592436138312829199057049466135107412738570361818270962059253350360940344084123452464222289312011797300446145737627412701653697548114285015227078094242913103079811849642070909152931257351012269965485664294153399419590198385210157576966028330405480789997419987877653754099343610120105604356718880893788734427137225164165114649451590946024142949405552017424485307958775704813664295993416765128574904882953287042382190538735102367289501100077882913521733455892127344675579230730234326578288103128438133139167179188348741099443240844962086124699000831988701771700913084520219934788840973737320645923450564678069783966157389658021191784209033537776738012932174138663688491747091786352653629118560961457872536831097116651404545035591920774131181393529633387870815927669219444595782094969958201388967743529956943804388524847257039686262293926209195732829130550049267149768722639285842938665157495162175740976116226554848118658584330292190433446685790421827852770146928457012027567759578766882982714840149500328524633208202460435684139077929126369858912494925626005552633875006096951636156639979159184018441064549897749684510109310566391577418973685208938693088909442247740498662860001069769662059015908277805873576045185735140735589999710420163524828815871244453101250748430797678792487340430833295866230415694890421291287814575642135143672999644131598099153327244449823023819444548094333121963019008882260738095884178197968838336574311551953312998169041530974348080496959147559746027932764285564376240850659338359673350129346411416370881163895958241898703874375736297733944679332397518278167474823368069707840951415923711116634219418856778675524213698138679521828472281746971679497139440068224517295687566906716196990517049893794000084539791417247859850879947812893151045746125151714244164056256589301851212801531096926931375068799124247799572871067136852238748964885428876575737243553461371543899877372283101724209396735154079343427402345969953358057103833738765171060712055532912412594144483496380821154972817273710912212138613052971428340955231020974360227938082655655553789976924803872036625153956600268622161600235285805509907780430548554250304079288690015387448539610131722889356482510047829137513342565692941002225547359594816668505252260901816262893400746719607717287913123287728368332226190997801026817124972396444955983633695821997475569451528994260683928504136593748688710021750863015504136535410806292731515390898172041164004398294515009943563614628832340478318415036770749024906370856569519479898780951531905941735828492393082465376039142342534475972750639075885769726007343654976311066276909943623554206072164353893713996140076776549239397695564269882886621805844699237311666748005531746180309587107296887689770653485714459752381650060256757104050353626671438640314086788329768023748201277862034608870829509025612206234102096244329049680596298664482911685982599183266686528208403208090724913972468812284191318394801851224547963691317374202697848899047792591152949182130520665964585952701727283626108784017666039413115856673699259911678922914915602766139242940451282264656615219443887472611117662309225616890733444905876491227484716215164423061102448618029407369456898045343751630950720709469655825182372963355946842129072313643204534744147594125908435613137584353526309037785951015305475452683464415266143246943441421660880463043408176190991421561846761434101164676699428075136064252276678788376726162376673908909028967878831862659121910290380319997144951801292653288637919071636377043455247208756064658515221984895731309419703739485485808217243241279355260254145853683372097783215410596912658546177551984581211792403440225283004715660616674902250307843117846555492323978535314359317484311652862376394220208680340293598418491904683956258457595625818756371584951222023837298481673912970621037689317938243925090472491047496201060667012165279237559667642512527251036876703482433097438013112619360228715419065808932093250383295111540219362851349841156070986604384532458078544598901867120771364363904146511581021483423364268605152719906216693391462117818615992856565934759603257554302892768303679894492116167316649076338797617308481144697481768589554783410473275232423043919888752204571860227412229804700907188361371275810700644566873042869018013968541426013244347672431075617944078692137582069443298286239739421221373013293797118864331036745674659178122422393915091951616931375745230166286551185604181569785927573961971720153601257531371583374042314330802311382957052478013648594379313287679202599796957087294032085254243171932463257460983446496780249876361603296859664379426677936329818702970736153696050390051172503961161051458866625841341464801630383516401678916085867597712861390979521403451279666389119782976060001111190554658806098390194699589910398205547811728661745003322283136398614678955966448526970101890420568009029321831814657692453711460960676367147963689908668513160979147152200604327369243304554267738708405014864069229985012520922359149592855770561604129790653575207378095032338123475134704494480810211882004743078470675417802239414955059166874602996483961813037166341143709487422482281168840880464733398071537095679892862374077152936525379517140714704789718257428527228903748783453756589980663434472226605485447870520318700926879672171580782163056557626290901018894143584708514140972488378411457448842375911169901712226235023999358336247836169777357928578626794497829296296406073457132922121681513012376056817045675804245023884623177896900386333828120030680047820517470855416271475576685222650720984725132296218552022819834929797776475213029186305185277667802148016926739233011362031598741017293071483274285549671354158833636549665987289582408405577653022821658714496624520172170749903725544681419760186875495094947983833261144850353913376276467786556531210783641955179638732589518035352243667374815777072364072971838550455394225471409044295239540944267510287304072406875336376143987677562739724951515619204057493240822294370049717491627840583407192115917881542550655025850188705283058580193540320934821178442172000051022178935294234640423686609039542450116176200201060374914823591159512000786754883269227497473601038050039693463241975143527023356426575736813456734654963144315358676405397957457303718117885315468313949357586133250101854786181796287318383296138777665772580714582112741606141163540874625467907729694276068205763010003544038051329599224757681606948752415111404503723780632470803058780533805230270039364035740458906175095261325379018289024930756458221459967472352669171198511890472191888494418703235322368189543074740213474000474435784587586106645163398628852095805529290311834525133432588595722180174268877905808146485139623485896871759998172957347499169828846408773971040318315659585714673428304720886640201840841019068221942055388144431666366806758440084656785603784885412976949179781145335764186500686420375671116860490782834224943136918053791477179357745478124916063828267135982973245462808601821371721095824764115745915378038793301575465383600894123936431118778005164139612304076717820487217011720492488829770870739476289219575595591659293941708491211139230026709837132471777362101722344922211449740251195280406076308068874120628251816186892068476595116505209117003615762680539325669475940105271341370027466799227028234676148551347680208931562377479551791367273967789140659486244716041996231959897997762950173228918577271539778994770371252030810288317707989498724409276022613592311418957197905202895601323794262676944094465045279391779718105204984902175263440464711956548291664138706208811171556421434588391084450548753145610378861774558846140275937216386580188090568740896264508402412528556535380696885807108826157430370950790446246319726446953350061805585686446901925389513579771546625575503581689683660327634773213400872390756596659109725258585699176535104653244796550137204453429634854724633498167123917788783486712242365409191028551972233172790162727966010551805361801824297196502645341960094421733441913175079499198430786377707185718901577854010156858378263119722634361323444772180793739104464177178362330400229204015418474138312266487211501831271003376533558345027489655064201371113380014381652242872237834773411607008995946076247476155403477536494432526934153358994751606150605463335657527714491214495524249812668776053243974444827471454926504807542858920899063663685891886777356544610994259590903131758931614529764602502806430207957528265114824257252852123841098809424792105001846832479183521982840433563671597156315633459114246668594386983016951756847881886694601050991877834007732123054870003416623918965917378101453389647117051704770507946325856306771414455250413837906306649947024367035553358325673626910202587147582510815719020915042482750187968268385094547893657163260526867338464949395998012675599622718895249132485983075768524758832370489278408555021979839864209960536282718510819229632757105171326853555069442644325156566179134751979716514718964202609795421685934295964117073398038979113858628897922976109834390067948706421709293391132698004036232408881822175391402631481927140343726287209208304466213462083760151859653941519960098694231007203895678380718550251053746558517853518455864229834722035862742796501745142943121083295125257737205860042598515408504102975412010590848231913602861878843054648447007319621074575030972519390327499002147283866795490192054873147941499573846100126834680914461362773423928038858555193109340085187041656405992380370707756756211587101913496258074571861920009926756980048839984407633142935255578761624101852556880832628051799328223283221443403411941497832536442183751492385847674090692330612557785857122365374676235274360875485424104247245943328717961736050982071707401086790175185726274517703780913113400345444022104015317917370317393864519634097605454963711791613507975536111166424441818540413216569523329405495157994076026347546443867244287791462414487003412953767117759278996047462235609396240204933464154428454649235805296801703013220786378134536208404758374885581071624004193013025937382527242897402870117381262771395749418956169485884818588145033498917000442999621142531667665346528913187316613097124935739528474017129341218799821445212301121873297070576337130720104728724154798908974984466852146475745125899869428573271740950471418696105200345856937256124482245946678267836913333462329135441856288872101793857957977742444390181413995100009616156595608296688596004976316400256985220888395788750794329924480013015694383243719356632244963348064564390594043125795848501457276456437254357203126016512097839960344646000539045278257113011975196669463533577654786284152441998442014613763710028379248726687794892598556084959890571016240720339076270755698911742505255878428164396787300358002586200617508940430509917492234401310927287626909092956947345705898212922796522464553762446368591267029838897482976816390109844182502474891235014499375887070963620641488586539242343271255664227098597429681962411686966762183419966458028573994749831731129397143496986836548215128731315637742406339185992322490527752202695255954649008130321229328535630522218067054459781124562717932952299036854196716059872896626815695458123225234506085254346997488704892245604515460059297188884052177600186783359250354422439020698369183466535039851969346189960787514525355697022850930142907171893084368541504681803846455776314939183625182794307798255848526289382881802193125302367325608030186891945993056808501610795223796525763626486117203666235132770147683342897673501033536285626556496225865483779195999512427570090408270576806569320774516981297560770402420627117337444330756664031482881960576547899358268643572544524259359967188909049967726916548737302912991128738402376181528534162866972300455399983265830312739237459171159869185656913210951498037010286085369338262712736856147626127686754547395194463696079206560640792774875935564520022697491442696371119481633287148862738024959407308052522272307654421742784078409077551179385194703306031479579035217619078478146828738677503635185048984750284133052302170437920345179437922267833106445158304127264231298166296115139657487092137384316024888754129816554978003781946917418025805113992984971209559663636238737233897142582175263602961126166460370516752537838888546778573389552537950627293456973471300104494336165970922941332223183388887368173995009414479022281581701546422706867742877300612184108563782830192963524689127126982324512502837872538498988209748203265100565219691893865496541696960027334442566780621305582720789450949839203269700184433317548701107855702401024700696607560174415571183414382974548620192466487367442100859681271545330861279563541404349963415951722599541580300326109211494157956886042489863063906054751038158691299473029840729264771136300160406882564440590625568508510624554100325383899978117847220096104091781772564899730461730501011906297292497739805112216016757112739577296530352505785700824246528907304937054811579037876876808027217172554361463801698792926505120950193661721601815693607740212772830482601829678126275169662456820943485454767279393936798864669868678666025198803851300316102444476031636515078631268325005171387504662927542775727396095513190105086052227963577320808788273640163527889976143456302523005598449484438147285150018612838179067890368879688040216591057543953952352777902213692088368926942763954953561116049321667947588169567708568106948729745858107269492154793790149705946046343052222351013833676489640256315940656998876162195225379822754783106148168744132280255504648241100580688571246440823254105457692892155163194557056862721359102961150059443581066080033133137758813904459322540163855836622261443708054561585169411038700370981476456845390293230594099185038670389745235283942754657269877776297732051205895912409680506508522876603918352838160887508472508894506070789618763950336162841405565606005492907621734940302377538675355882350823874746890457859804502799109933464505568890353419828752998872793986490007093942774165377112078585335628812338496838631443974750739881084306608585821373871727966401101286047593650185101886521093284959379045179089299525667106449851890343895087545859506365017963577807486869153245290137879908670541667500693753253434480656212846084996363154525829283213297698680726011375834751273604784344966848425991894981805767008309740527627436987257551442749631507931438043190532763527802270787116291810866113924362750529304922756802933714944349349784048229219537050881287345338874347307748653534735254606223003604826611214803366217129938932166167906273283131281396690926900183900694343757734195443135397203711169936161131903823987140135534242612620848158402260295291092862996529467829908351414910637103550782209228536941354107419658039700200419784902638859583482731199047069867924247952060792819498920180725158966657264994312682366514470667428247571569465211390466184679320477237081813188573552033447634360845633363272343573177010636688722458429872934267494888134964634705890363186706855896749627295999993030265624914975648093772692058855374463592480744092903421259143088982607931289443966597155192884262438356498958314255064679709409809426404830091616185426122061641995675728641370388663133807356063039395205541455968038892145139612898613323868922249376630116518627956648714663887895939408834650760116566244587565876152431943982979821038790407496531171541538903061193282730541148472075875902173778067886739516709992507210767415750280759296901170002743112919336607778167055103272582445177446604400611863700944310943122699134812969108659545081021854084646058961959930926440868673498447236870060336498075223756963738896249588353325593305005933230807180617083765974458485327091352977824244545755472855770203900251432070750343115035910402274303897524160039761180429243818310720206726150693448510890650186117931369542799919531362095123464151400241594734570468686355947456857678509136892555860789729991776930628266424991828983500479689107133480153958536421136753879619205829528167621945876160569100735922461056133915704282479119444004099657993149573772981797905972691624666193301659685082020219041749218130113267495276386255871388855854345975664369379848218861323514472131911522450766804386180364585653798454278324621852537155865810274860177712527035873134108586051923502783225148944686480414525133945797156845405172432867161676206600595022342718457203017004799883542739395812137664657891506692260269825442042598335336557740937438063565001578355354980427960661878437003673261319254275134412419906901371061478665481412637806672249362617628180345537123789083443683953770017667907658383224231772669595847213980993956787163842128385837273018908481146488938348749761396576843206910959740947558713830016850891267388965583182527265304090653097665677148483216481613369900911665376941845004065833168796200694754133159330114222745857033724152300398002285483084916027029741254450224134517612615931875393728848539329548921135841275755082611838545512525448181887157846730132394102269618777245203037866836019994635442246579278837114642589244773321787935044933092992372516825105545848370220832392570905764079188081780061050220341241691211257303023001429018477824655081056855526788518768458862736961739205167704620612099634005822545984073341853830675943011051940692214071992919394031867831973990165257053367266868537685865680944761261026940129899437373822626641356928625259335952918212154844768367165371987073327217820266849131878450982641395516154926485413812385652125299421153943839360824436001977517125942288774880665319571369369034447108218236197857339697578311418953327022665647957807564476892988496617456793946189994670498437399884986977629232988805782014765425859872373336960601958183307724503506444950549029015494263252582336948504485870796427427336256507830916488096526784016894561264986820356473186599496709144458048652746634559249653169308392099415187343277656219668098716295574642966318084515808285311375546719518060355887160535858465768996290770121847274351939668139130476044112158233383496141138069307363722438969078286635201194607076267018275527982494695802500182517095950733745505326079078595664716042049756236797669664035716337670246874075230263896397465433784535365776429893974121782023662271577100859895283848556187702949352292799416397434773664631420035530164887980958800126029436651095720036147842770778381826733371165444923507532620657087890701201707322337436538754584453571377056378823666799492057501422447013524286579124490972369934281677537457818785661829398031038939336336453684683531347757878307475875016958754261069193180281280558092747149878666945918274387381834204121040619646920726423880904164567013278939266058456627257340688120913107469237301753843857622527846564620131810870064731460810530907968542848324526393028348667460307913763569271682683057254410691922597083248588000302613031048386891344668675473068147197231536167890747767285459488048131568930604461014664180932474536474617220078052373096633500608240414366860328001002224872194807570288516540800614848867419981977066020210501168329821860294470619002955971956746866298679103711410198322750328134092154974682193771480253159357745085208049112111745225826083214704981361754211138630941518442570822464802472368939411482160432854985637425326433662478271191729541864138142823172518027365994576789598024381082137807385937378313080280582941689824858591983674519007735312054006033177766303164701553049296919913359177885969146726721680661614914133439041324415984446477902703082132025304326562819215128711086326813157083487428314927391848182920030339755311675464852523928924804225596112364971058266902497905337718120487588336656299383583813397735862093252499929193331587027274467953864734184059663867707847763419786660108893297355861920088140935920118720046724153810434408594754651680285329787352528777010571366893254264453512752407585527374906405266900589380688709911806088005006910613060738482273245953202471226733819849131855637872131422155983209105718870047070272939949840248091138816409908851691651320589161602012203326818370056902079727687057693598922727838765499773825125150686978728257630535282663670820643436411013281890666778536082470777981792139911577138802847957467387933418481544054250690627443450412153612188371287299806991984341216086323856446446752842203596268831795629465258040912835928777424033348668763906587238796737565815484703286192320627903593652938123602488631923579050259627695351102545934444056666733675652315349951873183368312141307938518044895023213012289542764388645816495077130783135587344527883681687039062352505520583422408941849802332453490906125412585941363457028497104847493180370045487024854778728127460833622339972594961497869525117810916877030425317052633082657361739157409061709112390034061915706715570795946370891173563755921436350291120110245423792767486875053380807450331449489347937379092634675358967664884267766589608962810029373014159561312715727034179297949171689542765806417192591366448145520597147538626055715354831943183207076073216544322249445094292507438389205422742935982152557601346174605163682899173329036066536432710498747471415360225316518580158702551004585919675573896297300013737975943022776352977167117615109617061899305616813438129103034143526057741331639908432657033887523059259054432992597736394010879580601997212166000025218042096734844519367928785486239500302577869452940862821781411753044708841513428948141511457640289705424750884581740072433800317580138796418045418402811115894366090736694646539857856625245847394182240084117311840941213600327148285790181508774686663126291948968259671990614845642870606831276356953301806660671515467218797773600742371050768407160156911809051391972289564461092239006445769919361648487557044153177557411429449792183037486601225204210589302132747506355915780072525627660614168798478389287311297590656636040106879159246348598607110966512957827077622033318757535053537820419089659989871115699053889360032077219859282687121080061911195662064272924627032854023520962111429654505400075725723261782296522587943039139142840898365639024040509943653215128928729782520236606912027971441268885778779518700809342503472146327408068719695512194586044722998437559716533128916642489659167190820536609803397600636841586793963003449381012967468818471467144034899885619475613198678483977736389576138553285360019649716784807103312768615629855492741990312518661743304530678317960912171032686456658561539691596372810417478990057479809529218878840447561361838070273655316617482089447189180275716018525856124929548090220919671358828915877313059714764959628618691122562070094389445499287566031855254325780769107522476052146551795017347780345381064865136410177286311548511533872775800299512481743403315087976405185027505286602000692678290818994195061557199676667344763897824875826390243781190763620565973257174918351553360423451955274674485778068234983947303401919377041836272079478000989273914750654085435865696876133774252865540504323655368048709385876254719316357410402641171115932375740764143964784690712708652281312272022134104949299072765311080478161194824771688853730146317900387050523966500343019177968241097260500482956616836096109992107134468407143465275343583752907384151516656905945531732607240537002289759370733346463672306271186436727783768618685852793972370390044135976414896763514750369600370708382079163782277980322029848309470060128827546528136856734098993513018735383867029685552697755162000287922050161572667063252996418841017414983028060463940160917605899756573176603762126262966672691155904615261616704398637938091522978286033976634041211320554277943488643162077549964840155945109930916662657734343789292452101236435053277005485634550901415465316530531893639005447455067745677919352840315148181699217300556982627710350829686693083288690131917936354707268718404318152643758545410539578026586893397748218720070496756863483724296007043686118399829991051609537573346727972335083307262428622363133194065461904094132699969090172711126527024635889249698705969681468284066822645743650759365665960666477761978941710306335187183362340617995783749146105107292274465988440429947288466921673383242656557672962887294641095277929926021430476603166802329948073676751770330612866956060732616307181127321676810673621470669663757151602698820199400445586071361355592915315273300292740449905325679145149532851698936696011967364642572160814899848592739828048031547933984498256972006313018345591773776760398146170143932818234034626250881192155794700577786050792402558891004363026663409427120372412358628975263741454090000830400459666513434755625847143942712928497576559873077883392688817669268195285173830852528667774126827411349362024626456014600427663594641970935278680270677741146428329178405946849234278291336884024646422469585638210046198671908228652204770773601599613347917587954261945075819065271220969520295649781479697900634259229936279847862361078433300626518006754655282173188101217589571000151737003220555999835243786903190300535664114548886698073248599803071399882103052678807712559715252712817626640261799146700426721094543646334455617039740361149411431797115193172362932142271453426695163020051495186083503437869150975411441457995504697942774406698903650356346203958617240800444634723069315019476051828418027400703962506969338245665729915590916225067219999084462909238029487967838204468363631141225840873219020578694240454511737466565637685960817826457423648812654393515656860952229116754375657518084615483946561163422041302504778180456685619300172841769409869976464999882879882332775645040235506136478512431650404580045388976849281546505836259551300107745365878757750234329697492339139375041985334303747139291153018209340074074249555069532233102657100369699237056305316429591769418697381407194020285146590408480372781794677295820323990379991432605848269357638261162325234896952435704559136214159519841312559095299829709179965438715805245673634215880504844508727042940178872074633018013927101593943122903881544726610563500367811076259623045131625568021108143726833699276952902583370417612138397484284204471685348782501437557790267564027113455995970888476892963684773783240806313751507690222524477774390647314311538736766271003978119997337230469901381719745550190255521873522212696042391629965853027226815982114491969677762293889732790028625437382215735870667706198079719444716676634613202831040750165246681881083340273407506766532937497890825208276890838537970503364867803983063088102676603516729769977437647309993015823019927628088923358674235669068872986342777224305513181414524946481140101763386109710054667674529038631337538690876703375319568207088849038024538674875086493759316847096242587801929807109370123198977206755460698319785365885687208655486562025531397702231423794819716577736469243145455676755966824646062635378991893839409658446670041942670796074581560327555406781036327760010118877847242602044933769865376708770251687961763456573578170084043590065705657801821731909970563166361828737301080006802391425810760852751135110454393256097016412094030989132858507254133286234227321309614692244023360357479941100661921978735376567347014116953829221828889359777738886165936397009245086023782433062613426036383555487985499661685161982502168389250664699332337549299632153439043583491540554088660369128047041453599197265801517076645369120140702426137934964419355066459857096243304870706587106990861432127680859750459013594931518499752811649297683941467714792170246799902360084483751156290032006701836700350301248130152508677965817313683366601688389595522793086535105516104768388299809462243715585105756875706813312220284655544320180076414050773764237694092496373628218885748705760841546980641802893071612983912832987907009181703261449451585707853587898742165212430230680901904114460851383245419272651148163155964182264584068317334246954088710332342262199137902310204018433418967544063129716340804763548650136194573523137570630073093136550943146958277208017601400257896528533153618967798353596979664586997783462209158804164762920770389690542718407932548349645695715459984594398890569243137487982801579647794560824691278390805420697461382337871966610026905615633148454654959019290911255359181138866410369917092019107587977689598495697187099395835414895245971451912105166651110715084779142129884149663491078280119114395236844078286256108445582154819180038114597924092213979261875787266554768342314499158129772705061410183818503363875873793725196102122068513305146710186825620253529757049832646441066379377949322843408884644940030140788362484202934561507416573792606368147904431396498498200463531376136877430364329512797657676658515794792179961703212557727118699218050499268068852738392256362110104829726221036269315273438047361081355897950391583820197606185785458382702830878170087089945700230405803088316304723026882724526591280884883963754288008241994371319475797819128556711848575848470775154785141108815354628432416447917151811273757592108342287583587462334566199307058025326899523044650720159826139986226103872475931859691313290110085401684076107682718046937348885587304225313260419846700797890555733293627395999202668651055467561176250077652644939649566697969445366216478223101551714063333752928601492470240447907160349002489530333136027022386083531927152257978833080314777549631972953571757543932540549692307185160579089296519616331218155713444697564911234625182162524804465686802368331729961810161314073502914354806201892921035380840849595071367864905329584255505213003272092997226658578699555488782014049441722575057045602491102865438779825918026286738036547068963464710310703469304098700289306511775464340527782008819968280881337147185855625734717389383275055684847454008513689629276005416943222498835155351981928916725948909760277923605568056744279372583285465665511006086378941724362296461535888577798255179485801235038815524842828467374269276484443848852722807075565374508052355447128132211354045774373939825888293509418577797202460457388435402058519438961525227465147292228406994192792415749628353638187459476476758475381419113534059828488114352072375965885345630546186874389986324249135494749277707397211336788261375587923219444606867069624736541480374233291056310440837441993642168861226878942575927362609618458734435174663936271563307859055793440096545591961907875085889872379236321039361058298123236688802195541163708635296624559782109947766242394770136350352327342027363588328223298488552923169433183692723164596281154116278770411190636756199417233538777873743599163051129526830680793871590928765439960593193966873171465969444292782676841188482535121337209983546614537573113557063556642675157447013475756984751699593855179207615072350030600732373058144548271039382485131569425176607072510069816461479908977731868417242686151792028552949942491378229441802723120272560847552140629726179616068554823403956397532843614629892668511488001375940847621235245040845551151822056364550176634758706520334329224470265561947909185214386402809409882859173296427522874500534266114778501671340793649908924964999043536323951058796642606095813225012049190963453322156253513522868214543328019832963215607434059063157207454594930571377917478761416976688450683159512276485646860948455388724327057654104266678120962184211004538135832911992466999146277509574261050162839115490528111936772054097688548019711717321496842839611991166527459856094992914254439099742432865042817828310170915956868147865263110368882466872723721015785391033550049202815594038326853816685214570139301889740905967421605441756690846550771427041995220332632151050344278817007967142698222117792630881688686480024669297563525902594933124679929703644882946778957503619733219887744483415887381789418167253136714627060232211123593335964426053561552519811865942392416028809829000961441473652498825541457535683956123932390976993630483038175567808146001148852976821707985351691160893602022670390388646006296666490709866608451688433953901132569023409443703187800494125152391849762440231934219110713844619807921163072384478444180196619096913966656731460514630192614623121616167740331682851582110750875244272155788214548761469217494362190614411036691432299933619248851737221471227820781738627920298841005725509849477619798639143612656638016298498920784583278000614218947006372925502005495498536292813390093726797032388035893623933531127507177458396788243454814595721977394131813701867028799241797528162582120393608808934677433875984195842793573779097540858588391628694151126182136194076496602152172621906088460415857003098671770708190958787626874387846382866586281372401317772430905253176360842110840003878088184062338059687261354112701226701573825604422348379530203582600109071670927579340843004210128004234713456289164365765258287984187521202682266794964033908823231716503042748900153730535713033742770685813574788412262990547513824962643696614673654373936561526350625200737564487776451909211304675293403105064171190697095787256666576110951622036515041668335120603148329734082152895405741898442260254443346653456295897888377238744539991769034654160507870528713062760101500020340828325617166592366617106742892056142565066957985577472906042518553741383854103819665397434313930199785750534123593233668462276436627755116437834157151295526010313286835261732963354802283549773025760802285457476194394018534739812707977796934995422071028881120767083271640581497164115738992042600036795891362948845324896664364971328712872408272633801507671987222774954949039868115429251368427189721056832894503757640465212757134886771631595344484201253280271916751701449130042907743866596797549663230892023482934693207345027108214511723098426997705194261602735814266745436664206745176624795071343735283065442636192430063159340891709136524026934156734416572576418468584363900198166382827514741609680427380173794152593228332123531468518302471075207306841650465840923070699864138080925190944495184723440243650245453377151660273065896014640449664759494829600741024077387079544205747063938693313680225585328904797121176066562994473721220580094253658096227649376925496917730712595500032367449472675247894127902763026113034980623214779237145527605984766619026772220220465908904680576929574598043456280336809990175862414397824735524544938715992269967726014827611535143264111122946336671729960545782192070011852248794481441555331691086231829207633493330534082075031851814231816646208126408380794802004784797465134975448990654563040701835335783536110994827744524749897156116324352019802270974410467053047752939036824637139146913648374893945621774575451218577362717987270031130667814223229204828219126449847814367012582176333028329907808622046677344871364171727544357344895733378740563926626760870886577576680232514343453941606841449229184957025345411334376911245896792117734119802422738618878328356841881698082472285002318079403448607503430009349864087180701269006201552745115656362562871622311152885968187078681555112030493610487767417468739849360570122661864408857151879338892670164488570918061199760228117384377379348765213707826606403343222651950954909194408240843299765253770431013341787794114688935342404283721126250870064681462594469339521965514846531213797938588031883356837731923180396683971877326580192514001279383491103920474964490169982009268519287366807367176723329807300456809916827071528349641002616651419989844932167847721927109647399371346891504818021149522058965660587268722286189991498904958063042266609104994953148682151786592930335661227976689053937800024696678124447707542010558416634726212552232154850364198075759682205765993848555577784815232053390319175945954331832340264339796723330127819461366709664378229953764765003060612007768051924756595320069771351277676679699863885549778483573707277532088248030902446802964622068583188793301218870072225258187977886283825318791760190466814253717860839160277784659834839214623640678267385984605156440970041191134608379284462055717589518398538244196293211352948186487333704697700686295602548863081371567441326721100024258907842758959524319475104352255998480994242132592209908488454214901289765074929492103781634493321696256131225881071549093031663098945666660078944603500072501971939172363102850285540142970131565074241117135707496971416649545127564014712011936036654226868359493667153736125819619986002406187800052278007816100657452241641283342306836878050036282557240280951655993938136081794477537460855596896162335374802335257006920081223993422763780281628680678186180760981615974287529233338830208685547005566931265367500694150630241958318317038345193827519826318108543862837994430754496795920830784849336930991955015321818863118848721492518358616380505544032150113014818729959494777277516372438048524353119688252679167724654770482997815882569252805233821191303355357467395952843485999052022314419711993075868914352571046560066099800443839657108933858625035576708702626098125194833775364800641387344847835459182489680655228218838892072310086822534754736535893423508069294927738250348353057803685332933686173216592603474389846465153167546319897564632522206072615880716066987079118912349361608787973247188025683428213747390682076283533430586680920623792556167700559820037546536931095530372178506500121754884330729042863247955486783684140123603675284743561697230401821802390842163957709165720456547247229898395813324601427078939687260835082251445556421933307379261556055139298685354959911506384068049528010257112360638739393648556304727146587172640057228499803613928065957168799249198869642384832933327305991132450291199024760410479160481473978363204804598562730122719173725810254629094891268412123482512753066891434109108079729242845371888105310059860122351819252717596169623943730794291247160273427612157623434215859026700910460171435189550968918600268121400090927608740927019354496231146829382040056728461319708702604759488968471861257725967430331586357634690403646840171778165722563298557847070892771934796253464372063959438983495001050555392493755709400649040517323341710500386642419498098182980375387143652681258733311817789777350796630279266777161335750811821516947686847698850046457297839344180558292301775411510036474305169293577189207817829550028068645604701365403655114825690294805044546160745381332393182084301497923471392171715689575799627804724734151590181410553410138180542681555336036657898988458806009001713617311632523389151397188835062435938979673674298855607090349626496314259539237184945370081958257140585898176708003785233063473092506125761540004965025096239548235731230309789495419557423988155543958000223662194839600946737955930678688036153803217771728292083972002195217713162046351728796506354487350864155183983613618751957213004314900877267687585692227868034675334302630652140368746203083908050864224667657760118643042660840388779589092698944456601650642464878544748506254532553556316253792364510844064214748878732262414679364140970048672529592823871153089137283756701552795091585455948676591859507634557116571982884936533053315072381857900077614967813095512518872404383670462866257854536860663356764499667746243610585580777459517662912116606302276878795453404962924006249305455831933923132728491849334498838146651042069657430564844774696979750296372583446792182967179500440298012728173483537488299962453759755926499626822637158665986679554823191149463455446335773549211308288301333959711137168903757875323973593849379792756550496174709073302300708925391722259280197543733953614727964370714408348534197517664423654230679442448359035930477343070425524990908649556654851046410582996192821883126958969688343139568236861762631932441173967607851740900807994836171214913870932226067138917382260038186295873739313143324668676375501973282388185338417512901124654212089531542167879073353759955248490063176739779011763495455578259717818152999205630578348571978848384253851311640372414716756664767703201756339021745570107808636240668708617288472241792941593255370033686164727659857105337049628262000857498470738344204069686310208530444017413255996498621593556549408343586539805611294745270477612952440153789881303007141604224689971140704623696311069966177308417638242135066255340631655687568508357600363339170352557192109654523155075679040152060239573918556638094826955428456173074726436469521846564945187998196636316831565618857167888579042823721133113425721516906908365375558574254379054841035689714973528440407627381999203299119728964735636501755241266382504400838340747825043331512108009521726125898295543569004488021847175314542672727954115413367109085578865720911327418362321868333373093825018843348655616413889561144386606517756637454339842567912419741529861049701699852961194273513665143295829732550639170293288139684752777320605410386605047672937419762886197120368162311053413974775629107033168528858978859418460452624710866306628079127709025226806575189401181451679686605992040177331342347505698375855714090512113954814953502274159760318015150751822858770874914514939691097931972953873412213703410857526175005723068054573464416056336813694843692871873975554128899365720167832588729422197519750229291783872876801555754062544828958468688183392377756018971692834417074675599818470372624078321861262555796589416733464259884950999735949252076068985835825854649127783001703870121447694261513712316959832362083190618542174625423916488870636399970659718773091260244838188457328351048193227826887158904638820677981673830832301997567264276146795072114950776524924604275204017415537814011827402738908455382091469340952601043398464821928890995082890410977176812369941069679543155508999608292297534989351781869207138354607011940179453593888699274531496759918957242602584724427232498804019215384236338195842572791018403847332623987368444034731016193022368146118461820341919211414224239364435257665310363841150219262749888240895809302949287839229426767110421009609067072787008581796324319842079547175763265525085575658912520480272237775992033319088389994605661522634045494707996906603812338640183903163995389045621786193454574248659874179606271389361159553330933268311255940119244896662501524601473926632487430540597138881701190127102397904912812967031829973111408525338345421490164307512996392431661912973222197895437455692488396570444009774901930131004869199624860632298847263299352787443477456543358147629766917101234553692301314463365155078620233417959004997852645877538356333831490175733944123428398542728610228430961122640707641061828704120653036338875965742489467219132964890284921888250794596312847800952188427981040941198655259633935764079141729282132173937262342150472619862420117925892373976317049186950387333609978324021622882229882340442878121732609905181974054747827712927094209598522456215015249092560372499146950914330359599588989377001195092686332777222417827425174033237928120564298963132108982676556834477355830524352767647953412928887436851213899865300891882671219667693946107925798222945919108692997822832839530292789034994306537999719502100633261201485491352843176766929355642808298041659893012124956358854859297558896203050357800675686977256822014930129372265269215707592504386153037474965156684906073030770424279830809869439452572814061027747011094353738922113852083941695424366614695782401245661179920181602463622794534387943365084560359204300014880798107836874482955130405374197535941853495121859403304677885521688429095198004537456091008406346703378991519301462853571744297852856239717244339825228417689759990941528153619518702432981667923139284217049015038573542406519035249028579223370092792625645441719192692670969541340530886279296262158927080675618263658748245054193055854697049305175196619973109890388753341411964601526551287370269472123243986261062619735031280990194528030292531362206204943844782886661717383011758334840745805784541197342957114841519058985479951201719734800203893087864669916346895743353286857188665026028543439712468659843885930016502864290460295926437893051510749242252973031547550424612997538508557501231102604585952933030137645886578597997072806342034218486284705839957377332556654245633096363885682212986127496221922790423849179412753819670847392339550428975330940196450764282208594570844254878893991236074619575910770626144339399275166027889425280284097882752464729910165800535018430333574264627751383950582008732005591054645428025405251085474541318094872007661156224278286520061288782198661596440053405353045485649816884513806823838611743501268954648858699026771904961096390147863281776499175126975472401576381670489034093645447645462784122588914350249661518344018251608104954853365611911959658931417282431447363655540335303882850903066530180882914912732555047086542725047328959247592978772922510789429283639871029972144296685392676879619867025480921181594348725731328907204126634822212929831763718108927997805181057030076623327030850634288441591511978927221981346676367975964013458778978011496549139275939313005555953818460460212182638966949009162027368847149226834426673724800597110380511675218311718856216411896705876981687872128489184030320773833211560292631933670480576640020623925814155537713660794355090099985523915983910140841966054491076928366512094635704418355879889184271356001096311618285729065195391662543809343402637372023643598106081109167053592962195277706583140550929604867670630308473539487153626959823705605656545697553041018878936018206421810684415994062628430833986417638947027346929924730739175319866702036944437571604118558706603598166281572449677097798474920846255719796365760361313243302029153344914082660113786177104146587560547758889377970732032508056588701969393819722523300404828629748729642566303063815410449334849683802326033378578717205186827342252635115022945534023648643447132868712813668609198221596304599041447696930178159447271609685542922807574612546311395590873393539477146708200355605633483744813817096056645288122992483016650742176802013398016135865872140502501103732191211459044521254130926280793978047302839695174390021671312564562093808103197278524856580234071335567953932219886204533724541180412609898423478368307337831207417777661108884074256625605433794340179500418951024835978832521399007092321918469537144029109667511235437963926235463740838800160044171449830610914817321840019428335240904862708546829319003206010359143398325472495278085303243203742549175373415795185741978095791531434332121552966047037902116621850006908076984204760913342723175536057001703649981008805458370854653385870651642044181585376615812755636678803978313236482173578691620468766010726022466735183548973204103049316394756074043962738943469506378111406442707604003245326687225975995866792347463718326964928078413469860114902623473026601278248297401607667359075689094734269581362302446303014403844600871402664985296576239844018311978400016087388483020364300313668318534422018406020511418381971303353847343632366779704779505180464189077487917566817095336579909483743015633648281495471609545097910776222555589523604612093951817696593604767246688735604942693304728672429530390180137206339683665122825304619814843497531147416103568242500930083719284071672182643848530940880004594680398184123003995172690079107797255475550697598034540980467754616471712998468279020442547684778529622184554473759693905990699296679678595798391155536305719729564777081623457857273528894317083624385483427114015805143367730582384242031175684593242853709484357759614636961218173224974620447536768305378934560302177783496527696168374223541631080571731485768623573919228180117366248765961563319974547008236167064182890935256083256853264523018762475384017620214895940580223231036918596999603335864445125997964927042916308941915718714115224426705928423919308017770969271769779851644751207677626235072220775406403502069420270969701358895596282609309669941561621705063357110975826060902069398986633930691015912807158542356082828400572256411910564862064990913174577129070972728681677269588988033806235067374745332704066435763895938473878764524464202374715811132159528254575441138977861685187591093146739287022785996317815620194459808301926808244909645363590873212308711571785952677876112891832501566458062771156823107757593937769582238806169496152954939877278364150929890819319365025704157494507850343345213619733458223770055704537641373791905670593675710577139312191725220101654147247458776760604886752858814144726800339260565285352461872409583975664930026215090186522886825456423015159375953382225983425671839749991088271940835063459131316964961263612004476367926726519053572407957575292871673760160828283710873254172670527980170930255855413319677536102728598541692283366874305744375996446709967236479893590395253226479534175934564424913963209486126274609485770278563364447354529464842837533862144501999443511851162873464052610147006333883826269655643507325483546526690808465688685413060079363267157448667138257460268869404798039284719860270197280106157632203746694134716060783581522726748143281264905191811753915953918216324499594775051343338866317533606773264041601591046793947215230829126209981123209830431904599657003903968645902649374790803916811954633901475468050478047637305893531964360264577753183212069743262189429509436832999199990884424579593618408851994565659794027848902873554214137074632844890099214042903234453889466420247732500500186045616080673224313350655483088954451673544114762583831412426357443749368018420240263155289905984890736228463343994703730454406945495717503411081354575631309583998813684548341986028090053335974393812483074596037635366052683657574047604684184427876616998119796125671394394822096432984976707593137138692239922120511179513270682544741594270542739220194985124108304547094664150101781005296439684049559276680120243094170531979641459632362602610850834537836434489475620790607345950947625015933585134669744128174887331838669133476553866804548049462368693185432837412949454368481059605248119277531133239765570118307542739946144029284073612993491524559664354386453823018366186605226384916717594079984473111317449725176085312694187620341767521808535631839549364728317601643078212156466225390849965646986667549553252871991942171290448530754207984333724271232556410266895182086581120332536046429706155986994960100058517040279335194151316659603968191385317138882858495020744318784264527484727978767937852131340945201923933941989706636788313246910327701254788377176045878155884706742541480369649565864110159403783255542335220275971826587820292756918193162671195671331721537438398248361810062093939846082244461962744490518195350386913198879625882402649352587391636536905350131437174474493577417889827495603331921765272379837775750314677520504023413505140357931929582091499553227407809044442324757745156794485572196507974423916810318777683131368376287714793260720412093425507060045800960302626302563906886549560260527870530879356386070993809389128645920370996558827882877182529121837632872083142976261336104780188447560246647038981525510511332316735935351882130354287314939470196296780427126534373488138714728149843137039134930157794497598809209960197807094782071561109195576754413197062391931472062513185396547662123249464601481857997595144207301625952071467362010120187868096980865259739290932913851134840616275413291376988332050016628538642591723692522057132728126996587087250306715678520241857510055006508216586608886001753770304434060687292211691815062483253294582828318189494988355129493688922747239983485316765974218794115989556503642725423813408570742943693664317399675836504624844928477803433606810384394888864833262678439037517794135395409376183499634964163253402962469578979477931931007797687351812118102403710278926651319279267877517821554935966608136398946797280941664537725680365041437367132452819900437322961921986692340295243730965756028239952693199898699241242024819687562377842071459102228635159942272960397672848841818762662591896090795495965228894411976430289084278853876708211290770395751343745290864944653168435816972670539949717867960398255992082034965841593564643070520751249705884372474739621280443029191352085004437781082567052056588255449750073110437692946708869944112769228234567945001228144567491132662939564153069519902092737608801073792808225888428546259414280538734115097216293981335640712532525694593223020542140258748531246901416587938127928084606698943329126494505566610174468096320408654182930169939682791324590288695813716045693660226459268505385688087335916111973431472690224487387976194045092254160617447382437616447632173597854257289158527161590635148601275826950417470885590807634285442972571411500127736274095751256425693444552206423095874878973810059281534217893949421562520432818403911610762843523020495194445220734138208409975274584252396586626596469005824356663618665735818290625901852908918594870279536786378707139211344959725804478804032977158771231142196857677505770071325885873231493333098294951784700734026416406367259238509334335824702791660952925653121416800746584936410525192292635312576479924435429746156241139532281683641441700655395189735557845803884788502921074052810986871476223308250326077078398567358705197834628795991014501580650947016611376200079821298987948092754760170627349697094729515940282057200717698825722994099452752484448177615358290543821717486093330615358767825312202953869950676877283495650759607049250250582619437173434960795075491854382345236743305861227396859451079184697632332292465814260800290720356557595661363547717414098612352084889353766380127827091600207284142550546306523520681489693897674288556526193665556988380021610683662032857609598638014175249791038168653166627125192290191897448404498076016108302554686455885689264318744230071233247305539744038024031370025648167443673127034498714307141258856735200718273974555680363001210938951512047084873865900456147686902514598208202491739834283260880740800811381688980015488295512254460716660832691656405402001532661421441918985885037337760020999098064190315621094070905190169774275702573430150675777078415611035571620320962718806199039233225044613980645713482712030732465245667986444659759293714424093972300741366400822154366631639414792025137277592122814006726909918041422260691741130038072012630524612916711598325642466361222265869894576022613500907798555643488584099948495841275000760432807701683729666618948510522157296677336624464259044699736102485072259907742344734662017220441170008302618290981006518984983853787887834508731978993695849197377054842527632759842351421622363151977616624525845531369610400963787765408051346394876116472118817001789011549554870265420527114462941018157544652261062676628543625278315889057699303838713240528031265133544631350469123821825121560208206552114525632566032864695721866684512534544697532273265551440654510058443927728849883590018429469576920940883964403837485657495063406261123570442508693537412834224046690241855059566878138197313965031401469804954673810250943660799776461074770596586492408866294955195294245009315225961851336206009033500774111656575759528072668661146270544931045860412452488828500323942624139980156788003778188469311949553074199830043243749164525989955430966111741198559068293388638922420329776297463470496264210438417179434480245923366929334557025537370079499741549829639109592392910137187788336952720849607674912907020972940797488838853988472075294805914784118774425412228557321433578662779380958274685288560599763734971906236008250711613179893740727682296798118766017147524972422551462826944781874804442692642316652036842117294332993085530409273368659845827827681178988138996752939314402971746831274081306260395078504105548948709196653193528930748276343292811528801052458403384465332560120345881990752560063679713706819029242019167544345469248695534557079665290064639109433365620816795177601129645394862983008792096465502158868797874090012786218181537251415059093399744945981663309870320989464616235566679706245365926721552826534602462120662614834835825866681504365816543934007014725344962724791848314105249425333852369123244860863907655085149562843553072376044708183288361389772459991614851974005463263567271077995212122733012060330142008132597303286084087992653505375012391224100694922925684740518273231669512917709874064063491344049657128152385272467262740745877315069822964951535006831644170482574483541252953494500059571443434261120236387544047773222816626539522477181571744549393205075680192230145156335772696054785880917711924662619804323294870444548556921094000079803123475989183849016272726108891636297102154044140538535674940731592354430683206763981291780702267938392523322662520880340568908365255758694428412938540188093258288812850693249002194993528284704618528420003250433759997927015559966307383193170679537724885955457539963191668796763888228856458934664063114581070919255858040634493670599248345083204805474311164844837521272140185865720936222423772988873285420479641901271651315386983742682226885993200733091921602986148323765287027108309248145851258752800955103571987518299463514752912695011187593211767378178733753761765359664508885334974348361550271006186982447090725421510254788205881864191945737813058188926198910432223402002188415432475018524444299628714921694277101428969562408794700594508189166982426324399239672268913088781322352471310953982141298821040534039496969925334268944109080719275437116112462659740066889783113962178363747777452990750241889594935465991929257716843633215366004007370125665199309398804797160927961562942546100417204890381643770090230905122399705230244564845141472415635017077933850324766180819856280360685717911274350624036640114201528402753815058032108491606563403444147547984695080181048554688421822083301155418372017011847241233940490353721631574343598722752691214761013135109070717033078683434991376426586051364863657210703081657740703793733289008577838281651035253438960999980271846089564763538283422789143424472937661372779495366597893709397304033938621962164925531809831446138151916725114429315677676682840459449196609567098623124695971099849860917923391022985962124975256184676535989689011393412222631135893216011804396730328244489965473295179320897891891524202386506224360742774803033929557007332920937135750730237330634338252875765120096558485302115979196615819848427245714446096830984502328747892094211380807940431265230768664638984045266353476348142228623322548746864650235835467003534765422062485211441667568168219717681721679148036876053147584044219064776422373238843809918475486344547651911301447473447683023188818694213449687751533980673233333559597424989554968309940625935021597027098841957781114427365515616636925995684522494803456775196201761625845852492113850454252267327163101299929017913890155271839290705076898475797607670931660923698044893539995999624627449661260129451275207351840168257629197067841649429288196963266359036151735201892205793479568905072833030703454491067730365040276470097263616849805851498709177107144880126249917341619079821659226317256233148500154890949376438698183890756846958078212421888835467828384065368467796476035967742559165433560811667408960465153161078136187319198095333260297054706471206527708849755697130329462459007804153114016477327050057164102404881242569505826128588968168288975868616346967208118895236171526922211077975273747711309467200290956811306444094959095068972029602609934757766895985964055683057488632325065757582570429435093715269520546454442582183039023726202886686271261717988013665439036532990856963743762834812036094261793709934696116621242888446582858441489792978018056313160081944779573882940798100211147334551699539415281592117867244906622712329906594236705253245236915617611550687286788609967514272868547671970828441110374495237385230327417391405042176318040188666045966350436413393724403078440198867786591262473426781092168121989532255848063815550712863817508054879770905752100156598048135931071175054343282545293136405232679849873384671752277125390519948480275155978376876881241534474996119765906313657475639798468430787167575073900335805033625495251808489631980917349224275130356284644435243103180830275027511719757192341129703774428447979236812644654029095600005338340872848368209588708447680061882151509700239003041170333006152886744259401190805457218084361845139579113342911779218278261571807309732958534681492956678867371861905284787607667797088675158733244681295951225502592669426680708288015029575291876839885900753672173376705596738247326804374448750961921486451788476373763267107662967959687367725376952506073179771971723132426603495455366094603972916103545300147280366142772197212560074355712476485048929395766875668828203278118571608885699165821812939044971053342709918598062051388592523630379331450962085393052903527000708872082736917611170053272642449066364034196399937912085564291380641767675852152990167797550309256028465379527553185836130497566351601865079941962823482401420493169024777360602841860621882224473925964646150052624284959150139019100310584833254140518773706493101274505991105709446346724440650591689620925463561188385664459672302540145466318507555256781346345217706341987161830527320762059486466543917252545030236652297868277677534330162580618686537781228920309137963192948175381043962859251099289475667919487720379800827384095407991076435354027566654919471615156480343027477753751672946835951018188043421176216357359602230644117711322426802694849612233959287213167223705650961706307433468149262340116604544902354701549326177462738908558080393396511123767444580929339309473567946655982600563471979593474196549381924125260290911242792385429757969978022422158792287190179910942666724635137441006051729728062540421675811884412090808853761973184589593622188718464062514471246683988267159766001591174210958555825247929353327836196542053244228903107452051507915635145928463774249318324931384074320950963343740946561701153958857168699357349883578697594721180842730568615004458202994509741441868882244178208433668941294910554774851241529164321639092891591599730363633864460278246379860970251257031158000303088099605553125594860092860845536436576372154336114305115627432796887169563172320912051833120994814228697197379610647907544067506195695806046961087258370786011985369718819255145096624060648507072366321086122051546174976176395098354013580319942422251777421604588360396050809160609023747349552162416237614339688748598579321126040894705240576991785900179633638055495622491754339070550785244567981728943772698425936063439250706324744872378987376583997174532328401618540176764265083478005929862813106491131305782105366318519949574951051868038965513965355635018349435996394457617634801432053416386164484424162954939838783350308276634093164444800839114468189099417412896768605277565883687115821603116054651534519306065228645729397873904814714930656991748876083962704947107727569721979640482123233464603190493125597629787267910091108437977731011687951365027777660632891766833329926044411706670796952849643262712452223113294293017947730945505435287719176542854261943573526919674604799343014767507487529048416504133358312986736778358275255810639949709510436046069477584717098641759228234941062033995466562569875485310038691900026731773112492266574868088121992172298457329704024625082810082795642758283200503374206247430634700755924533886047311199469808969224144424195377305902630374394957556565344564002531676144950072567772388301392854147785864180478994223191869004291790689260679239094956047304435808762725554119551452768393475378819278356983835772775083889748374416965933229356461380616939555379490561782003728337962460890784246214712055309040102378109878970495850149650909200903619177665114303652498323057222562939443664681108518074090359505591524017199307192071327055233864566583442213703138332848862988686972768414532240549533177685760992675805049399322454381623563569699533276728922194647125743053636024051485922128694533719449800999432285879835176756829942796322112609962192828936280152540460829911605622158998675165424587474069639961203004968525153740027165735309732239916457779237578352088143291251719059976172306782634329361558082940568835489663891961919391260411319222730567661553951378159837874888392271934830382091927958023948026240205465125738514262613014736623860538258091514722520537530485801754997474551448096087773721746544138833496095827017227277774179718601685747238472495538836708584046737891140613638826752288567339450864639136040010981883584710091510585634127097640881358505828348096017303746775160636008830015594086416682559788498284630465326024792302919951253897329048105196405601710200200564400738141570025108117845693015064942771349589040037559475267688943964157093709048983608370328375107836022542486448199058675177355529879351638402606210350731429486598098080331483527214874470394166815931663346710620031410676987423834650812470123134711847198875325277385723674369811331328814954234559958453935353415376673294798438267826640798221094134901628412469181631369519357097114263007664061983118346939949748782912212844407645636647121706717904057538121612019852952280449282227618439520941059707416547092324319999688561709581006199610504979540066568389676570301264187353573845805105411608486552737753021669124969947542542555945388233358721688918182213250100402441616234297427910718877064317682206883483184633365925380529404873445208968934142299074814968558688365407008106136985173072360459340678531582890489667890740910354893744947206172137734028056787688014048057920195771840070261959099016105655109678251089918106901489977976038303687719792446801234216762185530969362661954978978085364077175515216517576946571920448067049290611966535756833241543783569571397222769267684909689082865415653581012397952070600141753737796973205608120166610845814390333870568057776326772455230511276551441406654890339650818555352768016755404710098431737936701701293809781780071553715536157459066633443861951130244763527015016092999814102480541817388704580506665504621589990361671400750622765489430237822352340093434840218166201931104544887087298470270891126384357631008004523445200795130378211562622987703293194826263385157041756298193835960518240923504334769675268346650581293270674454508958974631306947162348237075089785946536252052160889748737574358339664645124988001423648827134933748622759557094801995379807222496089456133167039457322261071146853934611958829975569408649249752081762957471959890523190349508753601285063192973538132834068940558931054430242262940611262697231769401553493373030974698318418715097926422737157332366771692138370713421588735055714796916100205451975116321216692236807801417746472383058713547793287799402255153922488592874178513355895694297439050044256543769439965673314899391925880713069854259087016681264032178489814939566480096463038958682886991149836625016528451088332442420847362019964840785080587311427723830301595312535542157108096692817377177242119042658230232064638282393966564621281650503221897402935889472081669717733625847982780719584778454295930364026150898294087696403668956959188061879521630428402190672846327840598640975311747194922784343583865418854194101228432297456386761204013177188936769886629125295611283482252727862609188071138913693269480701299579366970217506583361891974283487027618486382733281905507670977003156257634435836016729881753074957972855093311296817367147045272343555713610945036211822163894739321146135703629171788692810058578899646594814342556512923331452339452207496004974109261298809998121898709998067918337102650576581694795828119485050320427573199368296826914484260191413756251091069529733097879655682327981270981613434747639555067213160487226496444201847907714875360250425996410228879904757263190783131769874971080272079967488726407127781507109297992595044329861312576353223489921418876248833555293472007087865389894125633524941355781068530866894248287267870359729831649475185390244391437182381495284750100284255274744252608473252420617327433919004348404835919538829915985448402361873951464115629007304644307142835975652052583840144519369905364631883564375321853600642705895246584209965466883395098595181477028393074958874754325257768466861474142925860671272708009122913312256563217290969848384848877687102645661061057385759647489267175257986231636497292679481857049179235309807433044320106595776619048039361362946359519375949413612198018839662072152114301218782793204451178959746061496150972277763078077802540352842713378783323881733160933599033229004523592921366239815246447054795714736614691614529984139456039774970297615383756627960547648168141788512709979952726291457639031607047534894487226578271003659828201092452792605673013235749838780367166818870972370285265692801190773606131174213204022101007211925950137909885563870045906130417979456457594015095110349798676720862922291937620054855431288914279574678700819260952558142238381002187860999311410447723049279889863962723534607847255537800201280901501579428163010123982063117654648659326699862959412438100516701233732622365624060247398089978175177891825775252152476872968144514379971253687710881081018147947025520448550533362520240763772009922612428903841794601281671934711353448929574278501376200659591000083422004569516213251285577192532672200364924792010538393107135384834512422196399121015861657880576118807844446611756436337862565585561795159194868177631111058234488297636412953367594508462004240723905774960728764429636232738227487831056202080609912572537823474018065542999320479817869171560230363826106356423580719518416399177265518599433433226699616815437487888599115888889803879136686901572248137654768071505557318759524908026636516645593019695699701818038052047769927349298313231537119185678736245566647456181641389061878492949974900313924484070522950660989749319196959601193477925124651292770606334038532572262664266757740020530838298473338662282624810624103774418376867726661468397983022993067360792614945830641900257876730929432970876592109985290554457823942412492268717681576160125755807679641888427399266790720542535529260227048109909666836980278905534034859924758692562279620565555050343898687360896757503286233404162439849426818431577865690758364128300894136515454194124959192161231948693196723925671718504815897965418508115411212527675883590828481506292700462507460002773297676358809621352576361124834901524877539770276907325434360862416155862292158282521187366940406325860647908867586991710490600524842307379641541135335359802203375385710727464917472424583466091208880561440147221123390521101309416456507224024873221865696292585624522348615124137685190687181487433782335235791710234139431147861523260113458871902292221676775130204681153232126092399363384997506061528748190355330436871604821880280800021734472463962211747551337779369280847293372589580531291807209400755080012423259194045385557188401180133485856238673243488655499782850002116253399491932708273764125239359029542706764946214019375172667402687048913162861547274216043837490839429817330379278837307791505427441177794285886511500161786278436942771448119844142196630299502244884902175096751236326693072140933733342521181751296731964489688959624429550953294042939993683773254629215128653653096534717140824179980335537378888894980289303320019360235912209595226931635610463095602683296557611179883231598629446612301592106940515300586705897793719353282308947959919550668779892743271699090395545124095426740597603806438488514319206197991127191461463901795563308733374065419062659038622584280055309191234332732392755915476814807876396912340465235540565080583694050580311109260198788331231646079109916464916207040848165510357715918971771530480991143261264038836830433708980017771678014878033016308174064218765867601094533040276591540118875103156169481652558914450299681344149302326569313296859204488316017184432918011722325526759936271463825403611534395245302687801447148627219512843463421649952092261686630830170673648302177016716409115636787849349582348121016211528955518328560774123888051985546475266180702471573182892471885392684550822752544686113384644351341049460394844102188418014270863689091174591146403778491367753938693933523894276198174989876114406522504073601881727861805584792134807867069389157384546871945528284965745473940683027286321820945035336351785264717916533368568472914754105213449743570271865589882047703552289183120595376260417288357514685155549459168269399507031521420130590572060631780175562494504956998926398826506833325998742836583809690294073033139609395384596596570382039257679832795398407895799530383238327697731178910512334459324880976429823199995958628067650138108894936496507412906903303055635561928887705015152183675051991606233337339349660378121987226713435435709240991795020994290105541004398077278070669408058970311914655675826428737950978669022602307619408217290797895985779786480379649350028462429343999714424883339076947500445153185147107916237229866960045738202771338374481465649242389515903962058304344828664607176350528519170073654562338695772626172870560312171403334154811743742821973151600219553211436691067438318788202282704453325462550990059892706170140283959027777092200631788072854183233148489582087376982871907163167140563263241831139491941149424260041792804625041617018674054300785310326173777170689884161902558536435671592377920700741280709201462383465370137407234037408592655930184889787680507549237674936795226364038168748022345443707382839275166284358663117818750771780581149298063193215679625693576664362974410050863182361244017183698419803855567855037002739715783498794782312662425423425196484516993598233499771363287816097717273986342521266184772209452501105105387126077317739282831131254100078527004625626635280603303685201398519951621848274599981776128933532700616974491873305210842108578099999925522135841313365828057677873258544300548977912818937929040379780539871892222540550092729121518331056378724099720640465447698033967432002359382642823896478824990125444131804580498989657984615544025600371088490141430715314806347618814483544263141242036108798564539445723178025689582058294042194152472951869437039761444252229944497754978433674501973088098920815056905565741185379605639829223718734480212464492325906052747930393926957269823900107875645496979966602201779006545083603277802487926521427906086238520579719139568246409479807697350650733638511766023573596510305044494695958807989073168028504555114807495454615524644512608534940638798171128195510097181107191862220923360661579842586789135230414435089542868995004406028683329955855260169311499059224479823864109157154452134222876374390365437975015913313647605190101857381421835319337076185447542267774333768549331915967304543399691718614424899756793039755552515392194050800993405597358490955924820919891784495876417724399758129789718923560022689913747357105406142016169482338341836973769889356159458225396040545495418161550774742139505527986778452454168295677388700659812480589546217420799575909123167224480362723900235149800715553627865783674681441946134302503424198862659905630243050627447465083961471728543056988230105331865723600670243116476710431670520605031850393890443709241400381344889182491290958026896795628923243665435415809133754776019367345313187683044235059079785804563479196086739077852419499660199794639474863511309341688512320137296741656571200762220089887905234991049906111963317885987305921856314651804190941676760725098434743991473920991723457159960536598856266142155387666324403775935350640149963875595752417643016869043037066741538670697732988453303938580790725435121081530838643382011620378389588976665719747853574379797939040135444746725665558288662756539502628927248938873050533251314150953127744200364575959206367966568822152007625827223414102354497442175645492085926544773720472927646216442010765870813984852130534114535866240259736574867273377772928276531448009467184445677481704116563489674720304791157542251074749534293054091175592720663966910716079925609460401699501288922134222806890170399764043849461769560493186671355787836366398177760268677798359995957280421027695589390241507465964349925838883751715750695462869963158442968965806350160102455214771628377734268622167769335856556415037040253699586949869056406830567287329972977731905514618173220948273082581263305363478066326689196832954943491197713834061296148266813294303560449560315335765926087755597175234684240966233777223904068438865956894257894046777970828960294778362335848197919683441523183967498621299588374059340719897772076802676314454495395302018977472437695616592700610552189634074236127014835633616639466999420990589534238759935964483931960659724963633460342219070347942248732658967129992389622615554775784781662868387394019425725040218667818571284318265292747803012011540238748903170763159376869424790630788301828979671181676109521675432150720279533521265342226435583140344098400393384954676474687261313351272632455864123496102066593378393172823683407028202942532362182046496429966103291348920792446162865864473515260146095037050248313869780570122136976081918416186864176230574169360250048351921520670719882237425401838332397232632302271398576486858407722764852319294091221974935921751831820261295031653421073586976408767465033996560513117407132641714401180354748133678261215568939992655892530703760065342295552546388726478146864878830855955673461683064786774439916624423627887408453300145939487000947336950532539300026212019676506392612604402101164837866204948133824029119105445438565229374319309856391515920439875393380189725825278802329594739765155487758308618623437553401990044758243496159815415137004027230898482668559580722422007632991733275449288697090099508388070271520203253617223379483772781152594595279871774572247602738286041552188593139680446455247870499811173470599514794734681593620314402611113643933736959594806396402023246798896359202018231429489272723299519033018674613043912861163567766988222047720676511249320598607930253069537951265475353079347606224036721709281970224017340559077487929340070232437599355563612123683721100257258584296259102192391009300128607356317115296198030805303146347818396073542660385644615564761310404155416268364751220285028226773809117399939927971117591484730894707812690490287076124955835482320653016581150997420340540624114948848254453889377666983298040458188162883795579546549325839382449559850072340112408117772275758641314315015229996844007648401119891595578918457529791108888986278352428186486684160950045414420167186924511033369641255307870331961770805102616006846115436693051561798972068699138065176548311857088890259681351677779500798307169712341309979643114832530286827951974979125383090776742003934949379858892256719770521098646759478218565440030087307686868382479962790836820488115450348818566331030247474991961805039409993469929744407840941059125235151226132801099953762178701005710808406379712725462208821687257859529948907730541309721570589062888163011250080070071352249575974134347208572230842503257382799174041609497026140773460748126846567440623649259013924992965917716128936792004539783615273453314044141760589479735827215822252364704604417079777419629819449062295548116050100695423036516220054770011944719661701204203811655863270618471839590805035300856372789405326126511845131972089258082757235658721516244137565452973279654884703057080123461002102686815296189232245678109109480093564952145116433237784625586602946363412474771477932018425551854317725632795129957376366753080583982265012470033354948950640070587070933447680790115832942484008841407881419794609368216546908596571957781918609796009404743363774372844558285652140087989187939394996833244283398006523958138040943343958418894830777879801792160763969461634947665181483911636869962836116262404295532398978695828183520685821388423681774485129907921524837957348476214996544673299683865173630920763728540612068066882986644142501238049855949827840897462680491882157002619293163071087977021865951000009273061488246565460624411117666839181181373430773841880390542066703833557605014648521711252907794672934957430825515591710565289218492547688647384532518464832872971345307162487744398888243783657730432643135426812390379304068125714831979019780548397906556834725586507188736569727472056589519709282068759923984054266986031502382630725817325868706456779704184831530036611995732674124385027899455692249306141284267453993906765343758004419690063757726790342380774977335026832072546200524180407006405171385417114784921923000629031476871559390888761367292379796951889283847752910634330623254047244086782816583461201312301084912950718125909878901976658458853333933734628416842657425921706188355099572038862068771447834453074507597118092727608232084754550048408376547897580702433939830600927455670721970649758947377948258133856800480790407775547022478767507769087193532971651179246078744828497312468444194426204290558227427326712981920513530746632243330736748535971979250221041376572500398748826962730336103259470634657235019336823083495904570543583710826226251381557451242422948406218750177986417965727961992867910066065059802305624134397163259580923401837847639403636846387511478715255074767306639857683821460271880016847952844046051322577683243275797023815504743890454228645063450173971101436703903222442851309220500732433912255674631499591198146696392439046324020211879528485072647564925244540300877383606941912863304950211735747563372960271126991513191186265640582207084528392801125396892877364429511336485801760011812940746752515540225756344083251335697320805814731975697813742337058624788440073555833261025222899273812227398642919099213715839207448619045774677821273933701882821351550322577648048549986881865109011894125038091799320717451230797570560220235676158020569259440875695413666433753889332788566834895102963615740696624811377863674764239117887342976230582069567885164636131865257433844595093555468155558719490735794007860175510029478781888815550728478602813088487331935632173412294434161259327226842379113638783379281147131468333546669717793967540249722033314671322552141130029841826175428219252082655336750304692872020679708098246736901006404636221271047257691494519173872435539945199248460721033862573663606282645794328848756624780182209348467806086609282588817666927991879704831750521332731757048304777349720189552522184308943108017273849952811812458202190436291511643208592298765218443326519754554077245559229878018673421896930022808906772616470583550841026648362976254208248847189935181581730011394818778735211261384104273953323093851507856707496029866704448374561133347181279132539573998980064713810890977921170600187738287513980565681241233802740028215625861259772696822025752633095719043100912927175428723117688588140856441077537437661636089599321016998565050185683102312307212809454497877978354108336866815735101367470128958499883889252166080838020456820734822117752681123631452084781195807641233529610503054054976966382076455680078449842300492364268627662447143919096453200052583083828536611493510095957241327635432466307966311973676103419205091950574477461047974998517037897845968244246833399399786204342091150383930508196569331785316233674038080036636108227474355501174185517411420414579650317566418237055585631851693568299283834209958685968407776377148714150106308572340438957664856202071688313866002614900487201763067425849354447471573548601891089169623253754976527251181441998743050666182638966100255930925887175927311782420157637749290516619130004042949363971117117458499130957147403356378299781993812071318255383187487525248025098512503455779401963086042939856451962775789792940179406390690748432167772198924473132446727647579745035653119159258169651974587187512148831547951514003212209727035832383089693918951627810309243867833494694321112771084727103340276415319953535012501133779623569370801186724241671455493556851896001805866023312346255400985499640613587594262816136130747593622389589969730560680585773992428770159616392282132905767851121405285122845023896367157646433042144270074556312839687608646912385479550768798937461425250836552251480100298153249612675230919006176805367577422963444742894458408341134444971164732559139276326911581667667501770229971863537673419988026330441415580349555123185463766300207239658552928433451996383486835106314825220344320182989157205019618605391354364078402451385616908949756535788450023558927351861476836248243789372352043915098307189151814008286427641332913146793333180080045313008883996124600860707291084386162596152968998999912110099181653397309630598297385286459602395106218481042742815545920612141267457204189646956503625755844355350607174448515937996704626543755520450834977120956144944685695168077734502404145857422263921781492806963315299858757557156842884376605492662163253884632477221128963358353503906234492769574143367146765369770133310463773279254641733088885300112087417435669082418093784973151815813010989596534580522936930815770408954380785911922695436580652348895649585918209701056522305511376677949750797039224232639146768122243773817719571307409920039636408330632193976971121929704499217334295877896688605436768402226750434903752553748790212415457539523259078251008566245522822268441963631935813937379450008292370008851551541428619053135716388124734271698903375437520966506411680143497305915812946958603674030909066711564175213118688943180311380167738848000342045691966413650678918506504726955468971552303562566905455733687070064348972467040017365583807815396778974252197392076657069646246539521435568663712687635291575482048182721209548743922324732827901584606963985344931762466542995877298731185331108755726097420140180486073273814230015857571240116669711382849353058629849426901277877337765912079039131251464568612183908056640883125473380526399165132967519152685504470576955757538001719788112091873957477503512541233420257755566340035176477121010400981918192360140650587972776589276351008761157083292053710207782614493491889272406577574215446745186594725248253971627282317052501122593796896064383735374208928924872322668937115694356935590553148565369725372452521300841267160147785195262217135235699284465452823166697783799419470341595409548053140653168210299979059984457926892583060322958703032584459630699584703094504583306470326285147876385736523627071469982121179188003417529269972009495018295079520319346316057474168402871985268970271623959897564563898784655070252145913089703363041079617952909250425182863101307207376248250733065977926871492224182196579016091312265592270931457453628351989794650307595012791761623545506904915350472130251732487946344272738068106216391816192246248329343461548077074732016693916808719623853892641526456425117996486063513220509502592280632055602989502111345485395898857451095553609257618989105304889136147308346081501292897579308624688059945319647495073210258960615204277999037484107706224167933810772895808792791067116981975716955146782356905797922329553520785829058487922236495519745952124593662949674931205215829664632461640033519783962396340975036904810907332139183001397574469363736845400114278016314628377348304662549269518901030881442033786689634623121199529731491565671069874332284344102171162395700220479970741154837448301598014231748799269153168338288599983709109115483624563892878424174678676008202464260057687149257977201807514751077659565968356005212141972448136206062260245605481571026405615104540658038075165939704046431203013110807928717443484855405932824640661239876888340224411576898476007680913988823449584946858469868994226306183193624958131825668037062236815002985384602164155907777413077664764635326890906011051318570472172949401466309084412082966431111263652325493927251324985930761755224382232172394884918672474945380671750814942554025902552260882641518569087278440477959954746767800071850661777984922790140793749480034941543970894516178898684120363216279717654938303120493059279997406424530385222742122763784394511276509490578318911770704420994477843039411390399004549904002300358451318602917224183280692413851117685231392879063126338100541879987206791962468140281911027569253401573302962739773688433806778141522068399695230475424211406559420923435205498228711581882702286008220918407027717847647238709152078965380918020179731903164848574749360774597548041512844964361926038286471514324309118140733984368930288379810763777292882638850157548133358050728946029616961730599483188017153187805648072177333351557178490650868813139934058045020118913360196230800874083765534051001545575133982563659560127952745048575068487483223481976096062681000196605803188956910536366532420103347889371494321613316530413652801219741493142033800950841277334847417070764812325092908956815436526705060280383900747808103125761663740190176950411946819420076137115004740016335137176107932560642944664704176118611354651440082739906979587912367906504764576774071900224415839928211880062092256725345354932914015744071457519862549178144566660245444412890595557951064251003317341792578555324019995431256229842221142482134371453759331928306045140432593004553625792736211477734481404984731240691311091959304654882586024412443153117015633076633327037360233126216028464528381323506554296291512698861623434776825992517252760268975618677366330293277089434310437044264759981244965256123687664911884776677587836931373582242859062313511746694822882377884697820540107376601202346369809499982930883141125480931877418395114710610750030249268024862913528141987117797405388003901153755242191528462972905186221133566639377413307607985153271933175141326225199544588243906969834950459134712695884121348936258200061277689820246272808538493160783411212357244478982241453010224798524344116144907399233961707606474537511168976818583258652813944456936519530547481042475827917805265548191237775811373695789160827419122814537151568999896837449368662835526160229836541954462640045811625548696954961135450880187909669236855825800663402050158524125698733671883187577737093216496705581003497373750719457151349756001507561479579863865915549380559994277422841013161100576918224873658337667873680531232145106705661894124053009602279815665041244932597478450805598977288211889553023279668618423258656293943041726816555629969268122133141056165089603909600682263461188040972739400284555504667608934126730972777721673514587391146782185359037439897988832343807660771509338284675585759825387457168215451413897172085213099931555195347358031250848127904369720758899899703526066033880016512828991719017129692440250925150853788496674085430914246207399811593564548559279313525808789835167516523952455569901120523970473590527982299375713214018741481188406315221099688722258957174263904162383698098739345216126505100244393167618161007824506972193823014140202740906038720600424153403111890136411797172350719569064468451141094064355262894694990957598813572482356203765197510382517884516191089206047310359646042704592450547953793907402103496382402338662391375934772823185099201113630274002618809250083173037964050332573288096794822806616360407419024786358264812996900684953950609586438477241174475824184975698204299800841565130955669782642778608450342733831245956533132967807643370686018836978435455967407489738204176702379298648014331967409431861166677955130768567923514718805611005998094758086511126529197781709773385643369696663424593041842040424792325985273281634613049483064067164243280157710019825401860435537492551459958699115375065432824370361605001114782550603235373918985385862732838348289739637861782709261039739237032590987927017994894213128335424757109846879147363297996058154626405741885944291774976399328644490149393122562404745387774493948133457238782075944473077318088161971042595694379488694404541400823894435240039013147815953773603833432360338604489981461393193132928258598564736125771730611742754050034701727315623417100971641831250324028952349434725598104043621428274918624938319825110995845942034584119456211658047624910880799038602714093832041517789671315585741622461519822119171035657533191424897874638000246480951882309790707641075284225860321920138838321079970589058260580789271700377167224910471080790500101726660255435450258756864675271491342629619979637314646238063113116296894400800614967368592511913418035430439581163922653415283951675814492916002462348383622587460959502876018181602320866894128183564035946000780388737360442698530195255354701047704401345391088984013888624348259072879002892171572886879064860855950802967947051097347513080966963768432349363376387948489138800349780368135372858142986913332616187363256076525374739041049496436367432203788113043048070123519387543031303840005727389960236888976796706042102704598949302189058197571508243617003343604439488552662929032735503632934284149832632416720816108143435734901890095157282801394646868501725511047778471368728376299849468819603165663479107019657244493285397652115755464906673220169315086454688086218852328089863676451243046681916877912229222327934069457644954830410132867063921227599929863118331852889042503891910678817343507345755536730199501647491201007362365508075154584644709789332582768081751238676160297434805644841816689873311628832389428353196942160243505557702896212889115401491895790348229185890932745910555504158109754049461527488084470099229514785639185321505687234935125512324883408965743517569970358033961163900747585345952194805353208183149555559633745185792869088765999199004088332975507946909728713815716807336616487715085897747003987879356409080263468928156393592482927391817935169980685120846426957206169269207274053000952461702362514927222053972528543528188577068590531519618350396240915995384787776523681963414648761734536413138035775701752514224088746145360921867381013671988652221892424822190159077160595713351114737868670560204367028050581586593573699693503453514931400066480925719751354564262158929393134136294095995477484641841044702930960803273040880918228822592199064253780062885160459774653983244231136303454424309315298894648288898930967905534156296215314937303483058298745861050132219106370020224479074329666662150136065600994943126645406311910683156681601243508916925912104140803162278791072536339610980858675910648889807083834113393643453142363092215435468239664341004649772006137676791028698836723190853046602189172634580676012637172389924043803649746746607248795832252467458889633818635877850993775598718926947698805283861291954288021548018290624351657176639687391846101555001413999601215273751561179007592628133539258592793454732128661582583913290091453518894035841768566579876874754352996637603940033564421346691899285061925690581368869023435757835724645324198755497475327265122856776160886690871608847288580660878641304547810337668813225307249335463361783232767163709268982237975330700208120884805461898365882311380816283437574092119496722031161019832777039960291660748557884546122706572056156615457916784598723532348434242894236513703586303114466789507287612501524011767716804620042510396269539181341259100608808024284680490415052019308402370772499274674954756600542972824301214606043277414048996166952061937515942536656529181010458032255274023556587239848466182673840271769315004959964459797103936059087486023511286356433721381500069336278659658512855523526475762035153723170956113473000034477568058186175682047568670017788025308517444032817674648902040974973236513797720649301494749065085169917611056007803355944797895546440344223648433342634892404508728193386884524488306596755532965834652833577255914019413094115481255252291284478336972724683946610796088895917316437009557222968878378139100664139484835186508413037437877078563049990080670396428925111320822594282917596081966618782528418968720092151416178908747596802584920033842249398412084838155022417592833710615466890339686479579470311608636754870170893859205269055890954015513115034092900922731824856022476390491353251374717774104233483078723417514122976130124540311561644577348474363762357627345289557727903663214839146291200482764810115659926314706736245761182633299866391505735741964218585003180145751048488721410616707449549373174080501710347990884874275431352626777066235172910383340529424917823522166985015508516916756772810182690822185999592704718014064296883409515538828750999246655867623379367842323908912110002254719016907525965770223013905871664991763697253810280625385722305196698556487721252301624793349372239998485734093580261925498037394242559456324165460620965463918775510553794973555384642854262374015473420030330245036410485173533572882958078282989607786033986568482133888541906836840761709988348883493482134226194069291609151500598048156714335346631318868834580389825179608257872428979801831461212164750400526466657432039635546160399378596613911617271173599716404535968572736611245257337745647812779122092046333360683969534316322149213952344622976595371586154249790944700276645524063396295218089815454636067941741103364440363638199448328104570965805562710584812319652564271331684349961161110413509865425720850967134342114005746454080774793885485352664447106259284940846388791043967332262252551464352462187587091799846200293774911027740437596784004535732656780760548465209578451097956499671301315562366694252817880777559507289618751165651385871247118050075631574244471609272861447183235811912036419900002227730641692139880851705122273615902612378766022297128961874068683631983801207858513587039083123193272033112101778835517998331001949297998153318061009678472627344574410148032943928160953860722513903846757260650006719439327044915545977030107551942294539806776970677205143862994747471174321805312628537991208290948828239681598509134514687511123591172795326096604492551122151661043772782631770978860507436230780720627796750342728304776659041500667886703189612642136017190969640276447369371661368266534833502941276591232501320673110334567713357574242959374041738411451225684850979039783510596949868927913214818202044904356526096391537961018524605405145148582808877569388926919635921813798467898275717855540678472295788166718694865129409906922524140098255511031792442119940551724824862841194432082859736236366867293250558832226167437035252203174534384226360202949282752462765702086685971018781005601527429006908118188432107158877628713444462904176510840812728038550149599465335537454781510636576077940382202376543928763554261269647004481139055344271321296270343993658415819687629738948661316038383658294230764574901454308202965945507545131164221652275034563640837671113222833868504375068925131161885244533438752385529581417114450013712515880796532049935034454007426909891033527374204343058986580041832931440869600058801558716998638904043399183447004578288566135920906791556211851410214459225948786877690922679261681789527970895293989115774240007064204230144771913965293826749617986341312765206675614051449715310081164030325357732072123964493221275797902430758663059378695518616381333319142855560717208262509198151425037250051450249571723440468891102675355132947899048869615836994747301670267637629218154068934688644856170820214212756833570458953712568553600359119697922057246799671079694321703829647418548220042273978985826274298845617921530224263069455772785010963440002244994823232197768466123215295040198181470865232363530338524385029609863982106157293456631516383144176890699592107534061640335025116268401659572069692331228745397862780151550295822097215442919503385635205002894903061401707467290216696374885145122587515043417525568348525777953242155500742369116807631504847903634572843339500977572255997441376746345771436965139681270149324080200274545740078026744377811706497519617909343268948145926142491013509731918295310713296148484492140111384134527078847550639269014819104321634953925151876839505981638271514679173068046299504487590844271680982804259510617738111229215401032984424909557169311494037002953182630441632520576380426078822124572227601322760233362697845714570125825563219863581302191666794371851109519672964863862451156045304065745655691409085392203814721582575511289111021040665271881408031366889171422858208389939467670564584975563316051048266164599244095179361450696096425744862204094694882068552430571274667900169079354168139438873772029124162815239661084413827791460007631210284624579471021968395012768569458908241243572581730888117272312131442025935248377398202342607729425671355056734779523254327343115847594052814936271531368637493939409543364699828833583651020548410376003288892267689492458144770312247051994626443015833465172842290428578195269960707542499312780905291670389886439650865349035100553542141750373343637365935352374351672598586020804514248543193472586250551890760684593871460525979169107673686144826430759216255902529747457815692578513212155611054759849682631789587301753681806280622430945559974064228083795061026994730269815170901665199583962731446559791835041005260850697391664053594193530281242138233755554647930492207617847946956961065243871316160217769816780141735941424069543058028195675622918247666963708248641332792956285767818638198060284219304293773340339009923519914097692629252934145182972431251654565485450636964001074303425463098813816831854039441087085292102278366643617576587341602191371132832341851121777481507857454540615414599405543960972937602638695781275747883965455878947033694781208754908009045043375685474409276432145070595882999269429072277682077362510349544335901287326317735940073881505389789625192172314273163316996932838561593532317093177175228288564314845716258760413046700874196569207431685991098812984517618438474697710160325977477696022396281539508119359228731755370381958196098971333164142666748515220395180650305914309837930090979158517363934179028491173098600778121141579577123803577030248976663143808335645894482663115464680742100026114730123062235902851599409849809687389457595107573539686055939171685578039411560169102096004530550080932597344121553287887278580427162037816209755563704472688125679940787237461453998510197799802484134709349164610841215663563823553607837078757052368009689171954911588536112304727252924165629156270283322593959216690471271635635085551960755968974447019672334145828165710914528913690715864585298536468405934802418459228169408905727710453752443868658457836665703596084985844093791824249286562650947198526481108832858828823549929225052036880204531491733595905292956225170368507358445960716620241043038023067164621528933255879551625228373705392409422785705849018892391483678277085219047262965492470782745322108388416416950488880334523748363887964185585861127482830434236175774407195796708800634286146554988113385755177987572404819792150276671417585158500883952835916724115525258657348861288909494717261566899445500188735419585296000461726935862983258156408137620119666011559650831936078846898547498152882121612820650534689112152391551670020228548933217913847758775462523718959521313067930322011935485439724488593206909561105288964345919845196712347567547353743640693085132364838562741070042744510188501501377968677859042084966551203887655174544112175107953937536736513581618252028942578377563877843156394599053950288694204288102837087512324146935104889366815879482267507303980473447048647584953844852757868612761650713570846229544222775153304066092171377410493489624307232611293810203803460567721312601714912429902126509312476838671896074379228112336832087637843779657809161173498585626270736934606420115197168651855453604468453269894181415618374411492780777753599960257026620062958754935020616900922881024649769021769529529514071620475803895453981237042036604232136030886379333350053150796464520689431815909157508869386318289977786540939874016735205842981972247325138065676833337548554988007866061365381184393010306972729702238263588630705055403771386660198993838806110795738396528933045524698411936197946899314301464602727285399797523605586944699102110734244546976671740947347877694172509272432192134695679792193844342768491273388316106600097370423678682576159069347803348368823181113140832795331094066152713369452505028502369451793238398552379099714649228210667182082253869658305622468901043363135219624958489229246136817493227076797172888308747213250964747029405823342127478722314976438504404925932047238630840433919265968055741390108576239833997241338214806887541793902692076734477525863761965599471285607895576802778584763565239042147775922444521268827468290672028374863215429045503521887527945470636912935912594888057522999289309302732069343199827262894961370687143462674079023892095302204460394324009725364419555054985815529326718733101850622826242373716970085187009157973696053549446175762884936118851219420068338340887603803583902609613292901305174320046228430245009831789115789097624375692495812481469311151076823670830300309415737441976281691931744908865197518053068440043425097051142328872501921045725872256832557325472193407552032628266863823882309960431650544414929698412735272915479625442564327581453500299148595717684327613436615062929604983636319544981530945569189411298137613685902265209040607583863884916982859799385538034677241920827194618835798298961309462039060134838607299995309442311085822567100808944299685891733538071983492014264950061306810098152925472688714578811868296974694417071428095394564819283797678109954956104114361316595782589422080012460944433955990564593987623478662528354737696140563996798369839147479744886433288950328007576136734822349236810782419975301970022316507756059965341553055164516366261478688171786497500364386751050329975467757211903624521526174465168119755622412494588053483299481709679969848860155353860058203918421637298905990693373360441062846850232975021456992750588818277663529124004099938616317483526066614255074274241634529079536553265425683556335124788948772529799190842287696473440243485272252935240344083218936262661275705104067427145381074686804742517877365325979565497816698558008551581907307247520900785061041267295208205289792136834656239610833684371680590308350463425815541076516068896180179739145385423570528888607959540373578384754010055189406715107816556932337448198779411959248211180290077352824702009108022883452358156827785540091209609149836555966438775192652527942236477753191480189938347434519888327346039959400012949128347434089157452429419703640158669194347488878888101993505485600688364283652744202566886355665053939173694666467696237242365219502062852265907469242951263722317211037271890785269570306429044048447863918540533628721745631685011267756788917325887031451822720253051357277178188723235994024281870991232373744300297267131934237931784399255109192360817844541809983310153866346793423930673440027625903574721132199025044754346309794221497328851428212663393512909421978964797102739000579132771521996687623867297592704010983603679562076553363682698490276892509475352107779169876237134937457568687277906314226384111254222447090349807480814590843852096021693405909797998026930243085641334807598101684359597408298291440130082264726485429468677248484033736649253538986247965279183035468020429777997124157514456916806653688467435178649119262372820362849689623850077742125279199279364247908030722666207612996457024653248107427348077414928972775428837804668636236677015494608653494788264677851718876947168728278219818622966678795164150100817441100879634946791604145979699215711946450800513579345583298271339469379172313597670509448766361922600093064761885854411023564550789115892127104979119242123334575595744116444745191958032997966898145314922650480272929742292277487061262214916485228900025210903299410794968779392480391845881308451742784157753941941600193670611121283607840282786377512235273085396338271388537878856287328696594635868685426324512246976644282727067084917957851614885024250602133274032970582545703738742072048892127126906538445655000205452839023468348373485970432356694344043482045041943195102023746467161068736846983949559698989587580583681669286131857788337997698546847824814082075746640096449638399898275196234442795883807040400816180870392632786285878507530357286432835478413324912433780797204394672505476266366463202497243390853332106945902742105721481419394546905817427848510936829622096273540624742088175549986036955640036151152390882786326912490858149674652187233285515881984192218886094600662212919872154712988100988480616426634529743971700588135846807250210027298857305898272650781734283848092215422727689161190713597331426555894480769384913287315936881295142416456688753446969253313967512955041062493951209966441740760180310923631251344072486431830298615987383659534696193223494390432919393619726168709737313602032333734732761866926788698320238232449566130896353483979862447444478097860758176033590076752480801429920810847313916132554279090598953620518947482653829046916315053786081659557770636444663470453090668335041031538842690644613969744144124309321156151617299269491859800407877167847786280773028688395133762094868986234271148622553726213361166989841287278759942804413105832142280420364737006471727821279548532739093923401896003119667396963128882921913411600459561384418686907206659659080033159949057004580116845838958575205934234109136623522446011228186984243851436643704232966235510128121757999472175523511648345618647131151521030845064215177980284008626154956603450252317512906489502284387093897290262483333307774186979417027737700743201354641003458466325320965427600495454393255768893067259314013153643817624434259271362198416563165414340886299480838114547221324562486376804872576841280257891539831829805752821230906424941275315353382980436765592743815689866612534810173690763188477552781720281682939752369703570871891664640354471249416130056637753351871637211919408219575634656040031097683890625236398123275566140273256280382934887399609831666457417306792860545409600089474633144055554972925871802861066527845527089800980798097320338388678430408370722098903996730126136627489984937578849902306673719123849155105583349184275215503022177446083605232693352775778812880130858635168878984451841622051078557123740164868008111856624274675220909425289367369045651213320336451704917712702852929084972091685992971708698140487129559636629386943266298834952312425844594589840657389385565167340825303797488976750437009856400292241106164829276784071969259809829585891783833313761256214938831171417274242520361341709792279280882182916337010732826498618312904696890682793718601091271789642897542031921856555646668091033316484721353209508664725911005239797940563580092172802404729529573927400844444671821054676525035677404028498039025260308343408996820599808282016115219574061664810091114205063747601159885285190485377023106080677903992234417598991505348073287706652009806406296948333605692559380891972086030083330781878025695579648889726338502105258576529198949806280104825351406045418786019745219745580352797173577608977089443999236446756220003468780841075686477401863974124128948159518475006895550170980318169614406699032262129643643298915577781114761722628609862505490408192335970755807465424645890694567507050371524794607115109155041162759543366416176142694576141963800615184911027931625332938771434442064956397129538134969901500148444203228483610730493445998710017138808277504636843843312105820508739995106030534628744958871637170124611678403809676598846713761757889469829382835142800400442316192456010866220917232991922836507609619809240081521880307507550876654809506344872166019756822778362251816981944560283838668909303125980552516886554953507085053073819047937654999744606999847449937217637304807023958237307089709181497671334311870321997305846704384787826453369971172091934775227477807938618752433501971945594362103698579863056132683154096678479024132763559034387681831868997094427914605295128160410026509603416719572287301840404489697888649876601601475686389106323117813306192323124007789630302165245702143782688713779325523963487870918287675230290743241674730570983149043952990329081997379353195496014393332039499239239623770928732711774751047460319143272226607325261235653784498512276744569500926547704706626582000504029141403405571886247829803748457791787239308313520999449635710016904375487584384414293827126024485734869494771030552033467190247935217747123488465023224083367665812145749998821781029865431042323407686827991881637035724655323674038081017918784594590402271713044289682054593876104548489002202250025608339961656918650409858372842133833283932170673069778418298984060823409788899783156234077214222384574282342554066492143158969350963790086652086309419584933000708299537613263676138595682351760981059293048716596440034362247652244819141257118408266699680954559035110009678796612010088707663176231676913310989496246956644203522940140000104292226663578327107925893823938157121983463862746809606930977517340554590570619062492700788890318060816126565177523166365563674791048389248342754462931933313060284132094572134662649182938403854898222675451918525327074940221604512044734844756141225575989820191079842750481474084159685745950607279820160644714720350852208090975316097601972996888573150319529966723282720806555308344161668543298127929345956711812981651012027699602114348889287990506073543507117109483242376231446053370884556962065384131228793717634589378288933143255906694558278299379678499508178627077577582066831669564136410375803235796785714000564614855626959897034162985139343796551287628086165490600471201887740511230825118213027603495090428010246597479346837341642515613850661382295197978946737509034501783908324241710817844226237354000673706239867753257980242802565695978427729609465304389508561164656575638295085129571481490351689323897002254276011021618602002439080945589174234870588029245633479685213858269883113261989370023562058386436365849529576639876027744585883527356265595639254230991436014496644363929929948351815413457937359464514540167564293480984852415355664854083594034695518992234916542178429307045207031640587112496540013592947038791044018285936540481106664636098438808353724955226864606499617871610839741761382381268028243481521940629057027314515419205312929018524845617719263103651219992039089846589119819633577961003274357994605930404135323639916848185334243577532340659349835744530298909154949388687187839243307368576469655561010993578394747007103970456787772464378978869825492208405714505790608124708127160303820824316032886374088219804852530292084988154979102943278284014564797446556675912111782734056545542055534642492157317193981525863216326911931992348334438143641488137754111113470531462090039247243362938751099823399808308899243426894244837751287229399121213684047742974945366151412710730632177409276088058663604477061023135675818195474160939944105176866278013887992075856614769442795861130416333749826968720617215976194640977573381972857641827553508581752720785052081135216482628607413678939680212717638201916036268134210877815699739003575282849363120428007831709953403424237097664982402912632619256828077997150266058624141330824804558681310602741704370172620459319568630914381378868385825739637316477864578537655197599081300954679388426893061899945621090799458763593201195730584426116666498845826824015305911253647165049590040348729283350737438560842728221071270859545803244759637255316393846567076300335568929931901506734521053767091411753148683521096273623886816708301900630249621675534032746902884670301337002845410387952001251156430034013213962841165521319518397980862222576490304003255247618199165066871595518627883012922904012117902362539133188886764001204327749733683026373224426782390681042456801525086354391328763679746354385643255642380021067069605858651727558632713257817816411193091149279764660379598014103897934736420963198992598293656706486646156219807822202447122705825479063030231627847584614397931999550934944307894256387775893814467798444095195224797919881456556612366760659017608818992655569434261046459404779654904391267741983651390686263605792657027244459476687037977749316007511065231369681410931215755085033325899762388594982834626257101728929344112484176575283863552988032788765652938098970528228063484057252683228891296349673962603018909835108508035759433940738285617744467064950061595256490447961239767753846274169617957694381731930189218412126202776289496811148613980706666140057308691691091238124648874362587482489687932599622117904118381111350880347685558769017221171475732748612342814528671277017177404229269390608998539164473221938441811299655690025508989385451113461370456174020502280450378898322830152684963942739429521855605901046705505077007651321634320958594788857793965914639899153188972235352058386602611301497236209492496551511057223719936003031184493146650775548602737896309375904362442257109378208848758962956960112696374240124537911301406490820712652556240143573070780339692378812366182733421433593754119994674890439738547424122423030172561360017113809107261647948336340281614159917147009069832053949605657470629590557920999863715338324346012200227173986339681464922566674940091416718768756605704118707498243047711906457022947107414330402186949937455352927620519705321495570397491065047338706543367108778374865196287559537735115964289846964378627724262419963940438014125696674879091920259703837665305189803325798933145051800996893709242126298543182461797302731174747040536662637194407067880549223699688862107960320382570432041635593863190066146605777446887590291118503745912683472627025055996512469045405152913970929584469359799770015199688675430869863008494657920809033754187498155507159267286098440061812483313675476597984289967089722818416020726139973526016118109747002368975395238706348194921581464650494005273305639130841593398863578793955350398629333142936902653183126719296124917733911060132257179977957668779112914191668295888542978266586127864598488043758030740085679966728158972956677737300851540076421232375957373361859144060792660749160066766613351119474332223690689602071854692206036382633050554677006505444172772145734342631576018056701747467311764485744463785419306109636477582393104098202946976754114535663873499398958964138936228953751112211155983192745635395213028474703030110881028741532207761280894896430990709289584045559560051573532837130269021611532543366609282349509838472118103998225962400851772400190099306317904167217280663828988906665319276778727573533128626740722426604953639758404388602804189552409126022452805308775262058830490484087675187697351665977970729047997268390070068384359468549614797850940367707292331811504558113916687696886948384075366782755060775973434109482014099044544847083355232558912504104880740973979620213993886530381905389228453376341921697566201022274969817199499345281756895915303679465531327140439468447116612813796328809803668247628677929384318368733239311470595385247309209219093073403554905421087819598256045887234111653925724184429540521383532783734081794390775568936634720941808938093897522016475845445292681567734889105379061110686582513163492923284704041720462360072931716617059669666532549938761147651702063155226584944651175102479000732179898408962342025644158575004070359108144287907869623612651576859680224000215732807013980700400683996252026460545301239148780718541381623268200570221962014509302983981154038665574013842321529908617697884735517972091679693777728780416090935318600224552861424487689760858466379867944270207476495433319775870687646569942058246287196276711422317920736719527950892806255696402904169325930531239226484965091564192514220240376781862845090223371038118350910522957096054177585311203316759809167149650578896500816764503047753338831371073575074061056912391123703407026718698867914432667767044194463970320981054381277767283141009673269326743190111454835969945582202401356284906089419531749169304488350542446740503635186767227004240605759882105051261321656940927853558439762871754237277787609775416456641218571265927581352435352600308588996315554015354781511859943097931453677630481220428092849913329586330702106511734968982898533308648118953064388059117715188780912700571379206283970023047691918312999700394817860592049056453582161617144583417037581056159390591593383508648938752260665978403556945012528295613582796219287393542973043846838860370319087838689201742034721945003296666470507261813365464737539198323161436564347658412567795648800629276762882117700132866631154953981758778211459286125962883575351975786978994855225904760176636048944458516916322366154203884831885241474181362582258811170205931025649196933995554350101760062079207218362104045302935377293521700939961159522990755710014847984304572084971014676918460570577631826607605622005521669538481555337103747576963967052165880062528856946133007306972994825199623496574850712207367389571205702284696557544710774221157116528267610018103126005324881241260764873366901645608744438932625103874871032686123385244527028911483263406603548006232841777823677983543599666308958508958544899919076356916338674586109767477232035035833593646121527502479734666943857372482507355967007691118022835209531974615915565680536724207764737675062122208512979875682729290614775639554490028581759039317288551553710790051294109818886315483244231752761577393074303603604786444840150177923184606007249730970136108043983184237620114923169307916889492794174757400376835497770479249924776936210446062906821095144804898383795082764886808814010041554907426025828161629645840783038077101862767630341455438562460828111469272090537498000599487820418586248318859970550717975116877739365314759871903311020072640503494349436713650985356092756599004015314133209710897579347255807729529176609533302664974560053635797579656346718425067437440275511060448639215282071296617029413277722962211427408557051787613048488364835075462866785604107254159226947352627699481553138045727306145790407745718650794641043481188969051202123999263028707295958205775385575879077539186395865286974250812009111364991057606181098792824327025079577997777352525590323293901534525710073365012759898251433921027549363896087435865148031622775672234410375262274064897514215413733851262371359814548291982325272269735022418217005675990200302396978573537742603184420011148719895160320817183408201582140661408577277120714876598742053814764226543288103262676414063234700857093362131395460974407366286084084625326028507160966597220034122270332982045204504601641912264657450932874270572079589300266798989572408842247704083261767221430367706823965660477932648736326287629956595467997865088126908893762051845593201239504276570536108163070074883947830708608654173563364268736122006132106106159769458629061170229806480162910406829786487444316949359576568895390383438417995878324927872426490069840629970964442454535925122410761998872394460973004305518715634842057205728738787663272875487878157235406797545539788763164764596008784988783342679195480703660421562848211960460535154330765767580922365485415525795281562793312600966725712497890575090997407814309171347899253508767538826010218454745014339638793113536193008573402313982328453748128729876582844693585931647057732358178440440022609576226825142730316886240375754091935409028249735260447187692392081232031972741405295148760095610374213108615014877279698863275829663215588814405304836077881468212101798763130438811858726963884104240738109631198041552661010866664833886358817480204329480262044230028081440341701627626668007635377521491881443228949652620498399455594812506655160268881942489284665054081044634828292017223217336260760191816802002448526472336781749602029025307136867195556623244754258816025782526501873708402040965978371459980240809391128413365181490952465856990037217267085815278520217925950180428464179469303728784728723228191960006721715916840829994663664791094368091473867331926916772280746395162822112973564748167354351383010647762911205292283420489443706352226231527748230624023645995028401916972894068472573048941882714119914030531416403797080578075652574251078630980608658701003751797258281581173855890118895204497219722122097066544308923240587046189394392215362563942842423851680180689744066627511085543426429764251359703482467468290051160574248857426403029741919584353473941649434603638964864663714851995919091052375289577370115582086428883733269145488126374815388303203747136889401883872969217452134153155821785656642840922582341832864012105389069727809483913922803140079627226239971738239212818663467857677766508343280553638234858896025570172754212499237897332124751099790186269682513137597660558062317524535236301383174398520980687924308980311872036644504565653181954178826148691920221222818210560011324232879964957625543426353241261919113476222190991731979510975248324953450752210932237357789752387493500500622636628515485936855691939461002260693945286412550204874552571886625486053450331946490255422836184403945253683233409812936832730709842693344518884890570421296781417764588175521249973281428939535021052113563916745398444208110501832615859607539287996810832542802229688300616951030948735387986002780517008736074362908236241278154671071425880862304517349652269406066707806197846234932032654531205557624935245846211188291683052907539837962639750465865493658180072377506397473940475591511414075814283732487371132524664655962216221607596933814026469830301032239347160209899329890276561304380161097009676298749652602739535516349386464875305323364028017340685077534118837747279511316668555859682817114277568157021819093674887887489140266616246920397470692933779986784761909999044694340779211382143090494611630125805209171804229092665833729787874941419429045165567331186533213789977366162729716500859042461135793238246773136409264715108608086305189549831659592688622629040332880722140285958003543843676363118114164198111784032653271229600486755908081117856511357823847403926115783269805266598844142990678325856672197470728700254647807356567335264428808319742853793958025106356407356966917093126803352930438955050130480230302749112698375108352117175028096053231880102791055933206057859042633945794655378396940461804308494735081768292914524484178183912016957814479710059942159502823414163014961253378110761735653078116611394934785924380670282533489367544528696091240656287684880596430386665584304416520501472295905404731876147571819431154518275572076218585042751115350727756923904361537982746469356528350312167423972851862054199449747170425611176564468319024200983245379168084316845755844061765029418511481643857400291587857648402302578665125962708881883887640289385565622771076081030241184365916098364871388059114421311659237171911505078133792086945719165232355237998517301915555113564109954140064453265842736382673473558644906578251250419967250363382467803458177237937257599510393473230054349182259963530219622343117890137450579572610671785592399732051053677868047206403780961948348830257943456900123077070041202031447686793460104427207525394280780262375477244578721773268738547707676053710634399704122727110299358124000000184539329973892645727257513864800936188675115444194054297664946434232748251756355893298658620184021420003782161011636183349209790895424522297539183724602702831420810829617407631368346119873997452032601387145477516243233777079263293441659867988996509609977758444131665340887147301810916498325113145068061809205264899031061837664800827694058410417407664094313087131941224672814445411558432489421638603007099949164173794412383688226929757858846005451238462004865182812269661411556475260481896813597870523006589068416165028389223936650286311132581230571485598380115576449893490331838048904834943503885509044141465763346775404567574230687811658000791638568244752496017631668244986848562067785899252006766613759423775269269215023416506235720825788047707293013260533690669461921052979084988008867156611495159407141613328713024297437716828258205859552435698236646205716812677455226034409596621590380962744793121139697889164825311615637753093200925170345621056150852886691912205191199451361694501030213521177998593692601443566479336491207119964581870132399599201703141430829227759995867624533185145442164807098587456672039831861010936317143282278654033143349113038136349031075773505111542236358535991921147725477616882488212977387169691852722839684743090434852905092238353878968174134719003215178241209786729042683217941983544737796611622267077257863974321601706562383500893020597653867968915660167383506922793751506967487510031507027148977727822738911251965808679776591588515401731187652177675538292641566623836230621525949543817613221581235551759591951383904749722533925078152452447506756087281948297770997282968202338086353024850675277982907402319315718665366496619764690621932064971935759130257854692026218844257117788806938324282427509290926339414505831067869192461469658587393403073978020724939308855246286264070342029966014278714272173942882595998120143316586609028641127881477175798288237722307846368596734606916128870029790059899192290842741322336544861503240553748263836913269038934519478547783666136562219592672456159831157182485609931944658922657073386738932086788298363290502300570958215834650583647588719321281895453081898132717050890964318215472617150188311176483931612031650185843727281798371631938561195814253542128196602324317626895336346256237041276829816650618638372163826510713946847112047382310677759633548670770558451081266547137024435160463260346616627464578745940421307637540856707934034420771854191649754070562611942799734260100719877971666240087753785030672695340967701772376257265904289691607983320714305483692152787960458677423216522283926544116673493024369969234264622579684213466506116611442617939468545173008752350855336050515117205910605085420751096602690343825775281803401895754611964126268658435372508806806801820851047758436177546855748989444953142835224844259482390519158338279796553884666691813516247426787791792794828219926475129116404808616081793225026645159193988321262984087158978788160143411398629914642926885356402866293081573464756567156498051972243641759716114134611124980877126953456437226688139665190910338397076173755345398431271755219785227124030656531718336185195613316211267704295631305819726929320108233223380215732313577921589087010021425250993820899563443996179499769355430271113705925847336393846960106220845952642466707770331676511627078282716321238366650688446563816793215702219018634137783008356512842773653662472243089098941371538176903014507850325705667665327374910006531913037854927350207828482512317018147769993332704181555061911167604000371220498622109448856962829662587175533459496503949194063443884542232887846626549703249487620472961405726760381528973915252087280071226340583362781663056903267769412905017859542951571579268081690056694566686259441213535366114611865971004081235746310288408264814244043859508255231415190257302203904822912179916499075832663377325161312004257971155044736228788299221973663102047698675148144627092692533242075836062299024486192116685498783574013706849438318096796897183505895994902963008118575295596235319830227824595758982192693895854742922440400358988584465891002947424136612429939684301226872740076288973591840212066690572756307095291016639481790321850231980625185012610577637849759378243952910363465938784163984396725518994437394452045880037738678239758431068316390773716085036033314872786811169994094062830296495862511914617941869584660222124968343141052779417675180050765781870273334293995062324802091939736489423048399447580094456711454867526910816393520644318184370262718918540122598290305944913715149696669734384207767286797545694962536063601505868219281216423230636208545677070577914015192599669824497802731690079392756499492703843992709964574010779549675909516527610200127144312119931435982394542706447495929456623203838460696169059560536305246288287254227988894403557276661452978113086115329519058651226461751423011615640521201403408232725355746514657032500792418915627934064147944591563292661319385634976259065558104616324756569740872075891382504394796456836860920190931854900469052598472105033618650587487002177853307850873922637309624268400353984114264495568494527439668876034775918384536210031059600317943136055760586354466611536089292535640863345213887588754470266070437221767261862874090618315588694510207413820588551760542744750091013979263355333037428245982017528842868568254315274149008878310794253654298406294840912736096174530431537762142883267290741897132741008365932895234994740068463394028709565883833294136859553813511314700974040435648826841859226007741435754788513278391680929967516188866413424197503350614697283629485312543294984450156762517399557797224566768959417990963768270147348186930330460232558749556441033055395051745126060861550274534845921762390485387363128170325921095580120397367287184402270479939862218853733306589734740276092369938803456942569122879258367662663032938710565337715447490724614090705736911276401406032266854585830663451463002629105743960105417653117631928316714181052146706595001635165971297674641655991250337143152706114646950197589815080497624661837354298625196743727501136497475184545992301700129164143017073147114992793306016339938047735680649320172223335286059963621098197325321519411325480181301302945495572486835553432558888239611351090548027900692719069567052263069290538130770883858832124600285948953824747243945368846625200735735057120916762697302181154484276698757664542689954676385972735402839273581769525089979497511177136769402632088515656119419455572531807763818673400464791533712705376347407994619544172735582383939267178481654741003713607159930170977237565839244642989183928023247432333210597259924469503083256160082391779331548956702995889257542897068848689212674835861604311430939176923740857606629309043818944816597149320324284629751218476090566946534346552925773869457939932617950832876752973225854727483492555360163704305629348970252518177968823319724883816083852877302450515230439636037601731810041713797207494476158349847570759185832021028564879172710141298780049572806688489189487086689951797120068875154701904067757988650100328871847272304982517188627044409659148813323204036784505686219164096418163052627220929099111400627360155859311797453103359817965205398120289202914371768097791402715599616678560467827135195553283764191901701793239654459304187339154392852272812111954883883031520003960003364431819544024303482334802219811482132787352393547934640795195427918149430841072739980816035496714192343276486628431786752415899373975557593518312386232605661239503406360233102893670750430580664841101039153371981315274182143591201689399401517539428945424784605012043122309994831059245223933569557701068032998703661198610631401566445737160871563109810838803029448830370184770266937613588442234300808319794171523297134072219113852280072373745088650735814248636632351971172555321961265369326342659039677292066554043604679022823422666181822082223879522653776373343901375949286355048181656027916128916422750100100967572760493801718154366495929856989831028939504653232868860520948364723853950172526209261976761804962702360266343139283519886419110259258566710146049297159761531440598964507313927635597321349615190494055043015387196151774387359094034684454738512186100798111198464959264132598172006549267141360504862065854236725526486883828481031415421530932906255358922429356269475624118519611841791820050993914062616039266076008536790491058077373621771146732822434221373852067541447627945216855542714225041475951550441112398110322874026298681337451632297281053850856403648079338358903618400113505616072046727622273156689703792369070862038491169045120234155348268338130952727693720145729775458353001270196510257994959639655212408074106234377429250661285094865759064965106863021110411477402823047379009770585164679719519896306402434374244138436935923056001216621165302821869227090140938270307194095009493631248988358279054986885431688816268898593183535821902972511154969430862333410102222062939777219609778025495374092172136139092302213969589212008604721951152694666986501224640081892449264760702085751250887315011242989355366874144868192348145662883356178239521452058588543680862347818924938314799625275330086597443336454191814227537498613687185146498648722370784792832511806444833804884381209575664408140900890321063871303875220327359502119827882399989586189487139823284047093570607916817280140901473734776590452095004454308449213021233487905557403854170278210153912386923225776718431649591672969066268380211996606228222509896112982388196677775911620252387509221224426718470710039176982223531073308634769955380917151434653434346270662374947816465626224850619487902227289376692342150261188732821783886028940499439710337843423764147579928006254543569388215028742459433924484648890926005635301745459020955722932655920203344030848302018989895424257374156965779011406087715182715886981233346940448154071757691748727688447852133351962328336735787770855055504554024418124400188578977961967938168746038488036403256508641520608555367306077092164446134037729129431566789919338935854598378695714565041167734960339128427369592056377810125608141863258975456770138398280630189109650846961712267353961940365579926062178525931081493471276021370867970917905271732537701447170876835116421189871994731509041242528273862213093159974198377222649752598712842009227041961522366907756530808387597460129908753492949787724757247921470289234503621474805972935526649225157579923004534487606209056233186871324968138241530567186428383877868557165088760166340817672765878434141584043062913086119846944795215706827915720764913887214735793556870393864304960517238524388479556065119615472888977146497332497342722979076698760317379778902103594468691102670213824867759486400710944543559730516451784568933436203710230928639762478198239246628966703205744274888251926748692838200906249853447065465875452446845317053592692905823900997519016476372013149105904075131428077356551033924950099535897574272136495330651722886966848092894039787673712338644455142450013920811940182696064944326086778947454543215302376144968535055788309166778318718607149199332396905612618712918641990324003007739354675412769591771818047017532137456432972767303023387920592117511087452834705726386834574752622400502699908340173281534800961792141958776827584259267158797951521561854342286946841388738334816156966101858944255325699115926187540625303180175633048706080684270587243688134729748114502290872135929830048761468261760075792066138397202681547740121922288214453357660358109791071917754228956348429512141768370212381351149971734328518524111310524141259531493123155705850706359784688350882730202776100866847700390317042118506012020882115551755321685929727766193429826093838831998090329889816737994106332672219323667587905367862785353969609408563494130570015371293268714449673564682453513318552999313094987563609763316869306552194086523818117341393384145516557588377924791851219814392594903080733265973120052963493353781075536902184755966637066898174652106429213931895080251210591424303800799772408521363543664881901961936965530016320368994356180581246808114582888621566593700857214099197572649334269640159986675143943585607150845394397644994384899122350538035477214044251056225091334038178352931069067894693507106809721883699427364783489472609300021400369006138106380091672028532331830946476119548485140819010754785244950536050773652614469727607927505300945079011185861158570181409285366583483168227512576622360981017505993776623772773448782229644521626611100044498806142546599257750602134519711484062420245133758034229817101743875217272976105830499349673227421768083326708831637164299573979408469363205809061774870642805802009717837497810729474331473420416840005228248848922622803573572400508922025244860577686208967062733099265846860659055226179062824663148535324289671982103693562306936576713069816136849166537082757337394788035174014595203722685379584106907454343184316591670914091252843967028566741189187937148442922486256813008641687436564734900289895647604734535655718818166269515787241473009657652047443844702377276241092983722177284755173714087413005451347690942268833608503605741884512684012839420457465343810551312311765613153130437346265455601804441405982233519608520158450688350353436859814848105533906345600306223810729389800171250189464294709171224128841876479294887449970183014339908303643814180625340284038661700801759784122071150144262271427927410866469768572288715910645650643027784245909032099410443122051408491027514636380764826375864519496025775362702615174020318293119557509414657794433955608776112484650520292793184153467222582514528726626917902546624772189213017692127108522362964407319514553001977615582229392275992972643838836030908008977765773628913946612968892198526320326714834671409216891247684833703576101935622596736934928646624393954337180809890583678102346118149461658116546197474383408308088092145964239173087010695382016953098340269793110271068773131181300399140343886826952810194884174773537292592674189473468634947765714282373879539278102573221771323831763604587384030772508461536005978974578005774631895912085773152382099026815370616891489106498946384972941307082025453941472032900412153554933153892960781039136790618472757015023009120127495966746832989262345061211475798975500057658557737748286741288841140190712108442610922256980012673692653037470315321168332472137148475548364962980321523152566290388841989341332665069244317007220808145309061827760774342300905574750406390944924735658987852883450617027364759477171629862660386289553242012979927367877764968751321100173205628586317389538671419051737064851394495193011626463602824596366445919523037526235578928045120360364971131209137842139096175765704387567922970981655755698365092604496876517315821600727240533683705840479307539560089798581355975292939771777886703147180807508526513376314225724214049228386542543836919007927988788112179647813228601426956766928704106523186764503064935419850434158223203278682452010350418196732768404048618298131389695598041866123550711545001436404429057493889152194273755487282849997102496025808076154075801867629017360449766466236896504571138457107473269233934004744466955765892147660414431079321309149981296493965072168405637606152523643993785256976648287051622642261902521582999856693368684957281622354810214629836580202781773461121348162089269737565156194974252341893640272084224240082988152453190207980978061215921042017991929719331832340940364715008404389733088968740505033844213431571612499634958018258081638623571649518019826486183248743504075521098280996296751905924009858120713749189062848854653200365633467531257652911788480783142232343261812578152714352166141725197767572060548640229349601930321651811370438458620897795684544147329437614132206143307877673537219026967065202367815812180097483814663108560137047589683143423987278054211267885414955727344444409774010952925924286662048118099912202799320441062525028534950602446646726457385106264303766362271361674515915798174764367189195945706202185345109777828183867583499777241708439434412277122954761369647361066801830953393000673362305748430563119280208549565072731905103819388332823114139933434421261859564646321825977007798323655234990545364665376043650956230015505512360632332755256997934480228308987687310747331496892316450156120606316547542978734693970528425302373373469797113819892763828855140431091681822211383821718609023957089006521916586949608250707400691239075466883095941651299981045944722994707167488801087655409824912363401384706570538090593736733471267553624427892203557282294895376556031887540797274716215469635377118470530811741755027173626679708068376912089372465290807405534099441822564230341534465217324819610586441827293533870855299840765883335817984968616072935733494398316058932439441026792037577279579074040592197559751777447790979532646099474563269202754877000277923346841732058032660042997196070221315809228559847445087895357710224364109926992276187759853266309065713294358065457924955489485512361945124179212898591273432623658523086100727115654092172192902384830426986929412316206597803602779716339759192139502094029157458714949445546890182624235765638341391691561955734053084281813538565873547704313535200775258059770401142555904232579645564708433246033356268151284238451492755172729579078507191890436786524907082728119062730376235247417341292397279776695348216505469596954927903871862988830911132203477030517085727364269250448889465756476339120275349714011720181598444725481563390783554089014337237126171000731263596391245842302925306078517494906141760385556219871465025925817719670284276918733578599967334766142561071435603309761959546951666135549050001630003834218357764347198127979283835470542933810637549782795422977384927889755676485391412337863596555846568046249252239118379436870076501193713593759185939873521989406227083383986977291450869231810799435300353237549721489810599073262734582359251045378790731043102776121420399541306707940279759425315437843196007850951970135280966767151396153929947955646785176863286974530056604737208968668487083949528281452069709615185646878086495732132535477856819795895558244273860785917268285993922430162052200063656033140440833769946717438220563054580078805807368285261350711064703910149172567985259101813887520333396570118219269789053698567221616339743087529312646536869620134923585588344763565823363116264464152070534677943637940315042117212578257077249415651903235390172289414780866125354432032367942739741169367410363803377183917765154604049438401803399100535369969184123019844504946950962568497350304513045907311841921701900413386830296615450434482910470504456504822054349216845827126059939689885899478721881055531238010574779659947096727370109640778250680117239755907940384514494862222233531272141097994909068375846695752246650636093260938193943647035954920240780774618373942312915235518606584108270742167084809359812713748956506485027090099856855364006941846306198650798580249854154900407387609721247453543993370609795503768844958743563901900549457106419858385945170472984604626780843832236741913477247813273265825898426671203330093538034481357497312593494983232443067771321752490460021382407577710881543794933685151012027995756950556248811971622636466949931880205431234455618135040039929497059997410217672450572087905591673928666938757120916688585653022678015150883620746552478938455278512935228054166043836982312895437551777413208824662578683636703114438273847356889250682139376001384165135260084447660147668631708180436966042076513601088297875758195358481960370640255967908391183571109309815418948403470627068394547432560250136953933037930622878809770414034543225109121939805391811658590091347724953331771631275759944142939000860259388370416910109052272094136822892972206242886856460361659084101340152629052119821251332550762690965335140850302175195008017744460390437258792571950125488656128143483111093548765854915533368020358498886974308005722243079935520056769365081137063027195076572413283614621134838167969863354532874677579593932852763547016447053472529864718434753866345966792223565437474461247028372647777802765658099173772484266028695408925431128518387154850098460105745693528490013219811173819822483757955590667870466904175558712886493279622450137741149147105778915400459220723662080629356884052087586269382198934983903314839877503060354849900301966504828372900812686476844249286180188229404609692964149028523562148781797888494316667814704323734339652636818527372059398107685870794079330951115033360007215201384463652381606083426729714919305679395869737200307830400235366827125719305750012191962289262479994419712853602669058071826609430557947753513795062672453733042695610375520171494795051728342975559463394323983489328218606438754201787025551723245244570865442561554654230582733367019475012777119014354281323429681796700956726691240173255724120235130991475215459901790547869651403704439315623763826653328016963891174559112520722914482172350634914536086521668494164852749816099591376299377376438088878319596315291469393390448368464037305433663722832508101020248550146483191011473186843638945661309282928472046853995287843806328015701071685696681642409858199714864436234351640294173900990663401985702035551502164731930340195621758399456194885447911788776638176606011312836288572655880329954769252885699070829522903972695400375648019230956505598228672170490267637087042332882467890697231196781515002667812772445889394609206323930717610248075483551217444582212803266045487902286064858642908481455608368805649344890489283788880274939296994814477279787799649505104655933473321673153678651655586004111643868372776372611935550522649508393252549509089269304892952393045641605755109083488175227593048857564402624426598088174217358533995884673795194056708562467980809071955004997460740162379796760602584603299949104876772492220436624509405148868796571405951091750409843356480763781932777907335577328597251220542772438715398416536538077482202094198030935974465062952257236847729239011431830260967611238391919299073275784364555981808014039607725504205473270702983625207015855250705243607660062733387017290723479869139267048686819034943920016457230161492204652136615225040359438023070787759767647444341573043540847001649774986391135710063335834483696473469566347479562846445823609866164925761187941781187417401078067157686698640933613791376923985030859571256668689760765504278751687409066154937724190646256556185378274190019156266230407314196095774508748891131955941034806190542290722226551035587450188582566874963826724680552956467863700217328969431263419556825341198078166863357305683398446273818586163391340482083370504789925647583219666982209043883885451693945278523007735229513469701719116968739920570796598387979681453093148765798923564906191150901779146008170673383617173071776765665881668615334809510120076388302594414401889167074227876388381814724886739650315929415793273060538482168039892377401415519326537737392053219715585529469469449820724400252710245863432100193539423807085475076267193558924222931556142032839615219093216992881128156443968812626775219569752331961371330611204671366345863047239132319105903640892334586701274783068877351896042132306312678355027162941757600582371909584807261182495583946793442035681643321089165367911665673796448728957736070168751903299865676513818820186991115019960133985227340690029142103423588655482451283352029593617521487597578443190535150098031026868879729368552630166697671093625127408141406674409540974834867656658966079633028494150803237121552760888592048558146042635548626143623331714208744449800753607882042663882723860571305143968116901366569442741088078991154241199453766040033934631265922061541730052866606617482401967206798330220156517470561518744903716947820577893486107536819945765360654419194925507978695303121732644758829746518616567453708481270383021659216261970104656650943967730596330419000591196572392057624550044439038344473112887098405615561612198528476009605749260784428832213413068424922973370940098832710845932043298364953825067515683431139519033800602177211319221713960635583188939246454794002204169883802380643328332177784513734138495702675882676991811031966998601850264137920832520354905106719267735398303197017071775076735944844178550880041352496505072064680100824034677557971932322817696788192594296403424153475462608029007984761847560473811658242513286022340318918041720219069543644679186123125503969775604057600701675272504587610899192096930997123769334398694291667183876505721062404502454009886013236616112358979303959255971237196188567541438064439912909670243353236054384879094171472825521556216238945397153717833008835110457735001618042283286303230579984725479827309297041715275586320369101555559165296190455375134061694994300484376580149642389835452269323751306707799985688806618619900356957890891178015071132872294329359983102237062220155201561350266128024896338434701253770634866600189352997558157620892794984845788254207856740625795073460219979900525927687540351174580878584550975491881645016237477627755765264387557506001422206478931340932464381207763623770420762061849615354173785630861672590696638397933831995029454805675048071515049570129568916098393512387034423001857294131875896038312101572057233337459060625170129151799324382356792944715482400433058480546559702576947388739884233668003776259212995940711641064264111444119664010307662469341396557688108810865375692354707238533807464823173291985107478671863767423271522993167376189870611517567866950424506460988112650379155154212927630171850482268454744473328645082305695525349696659564603421312145459994975681803247367839377360655851311907802850998397791245016655232417804330703812176986387193793370321364759645453583441544888775847440438496677918904199689163591762599696170752838479294308592535899988142309261587672922404407179765793017469225344108160811555744253290366898713538466358362872934743035285211425178291555542453849086673936712778835397380648867590561763496222430740413666526560729752319348718826401832704839835761467368973306939175439350560326868557969202378316597675719550039704357986982188137455911208705171282240283632742212480779734368259583913127705348364583485150039554685916215908140495568105830648579050232098747045128110501860658183976491914430744013661070168908260517829590828855800422488282457271462724555640913834125765639330980116486982508214279301374282465167611615074241852180331543004225571355853168657744014243587601203267403631259073748808947670172002544077800233090408609447494240491637981460514336561879045216791620474805937763081114020150261158345267752753968643880202351694169029194175578672115404633130649898672856385846719231570135985999291573721491968073530983627442760579827509123255858617364332444621454961535359642998937691955842584766258439982953837562519033685629536692708253417297344469821463966338219197515602108534376609849738423790399309412413583865137563063328742457787058696071137691782463714006226135724314664875707163082339097917573974980243260263176099677840080854468822669350644453997644888581721978095686141101043011889508463964098002216155822411425778452062101478759320652045456276911896182411210768001323668853191418998453979940184299857701989327800907381385102137096291124251183441327379253668269055279207763121032270071099784188386355471592391687920395994114839079404194269201311897282561897912508541436251308940794479238933099170017213378034645067801727299519776579462778992524576606366594483151988994279105990724103580627916704393764614168702731167711496707579789868123017756843953282985256109644594844257863467044205910184316909611347686044598792441284807241972886996972682828758293104813746288862274878246320704887120131997029689217564968011142044130106763197104613675634034288540451640933560941964084743353234099097420222067598963254380040691448568616085034516689987172577511553072011792133685237158345243657278833103545788640444491743145933727910407197627367399166988796829492364227083494220216343781654787657510693283231246528823425807317954100587172917454606360188773584746467003492918776897450260649014146991587077457020522864579158405284359733188919223125954786623081884681942872739717357080881152196255134382803429690920560372261198902802058403214607553471707295585498669622700081820441619402146497803970405710045392167668833287438847270269063122040068369323091598507371844590397375520124768820412504915160524976543772478057589365548452656969550349516180104680096516876155023865905087353385397560595997471900190833803862866326498397301438465017548543859100106000093351867565381116320684447662816301920192479619899111780854358880654063002728674963806756175153305680563357905047215924937651505456890184059918591951442645103750780891149553907927808502300832110663902594889669167451970208155863002972423682886440958113735007060068578866278319730160762544702058364311333891594505939234159494419218327021842495081479188884487677696306323613654077537520599054853771785371018072389814725040716040204649674600666329020025379997712601669143559492604463265155465700062410262524060694041003044830968608346061503424802032542798892048345641489481342050569599861817733362254159754174039737260922105919986307573031516108871878194049898082125977682278967230009885589974683656287000622522741035552376228819414151676088918464424216558587648346620732023955904437749701753994156296219600648102763582192629903011184362051520411346331272550088281835706474146950485343114636515166725907575413184727022961821043795537082420949370404627914490563982986824292862437443312656760922802992726820248632554748296678288712402716801548431008095329261348034810833629138624003900765287616210136376331340841348908368858264815938745695340522207972375784223069352446835507253929602577726754244921037986150991915396127990648600361494155970443389358544071949336783983852209441828113315035265618059570390321758975946108792007030055776745011064400530614005525141908777294742772739377682468653524799772615402546351790162238545632099912112129524704380425084304312651965550628122528663284244684608124171994343644118035929047736624486686796382558686044333185973086801040326932196303945085550237447296385633333405786777595237868281924224602485386799129463595865762382160769814219962412982946593898853096813237821999017014803333561482969089838440584348162896851648558884918077514567835330208274092904749354032491204840978997215251005114141122783199612195657558281912452402899200164215975249571805991505552396265616118881705567984465713404362861571131916001573251486182053704509799360402521753263550311625352076448919150261108855890002541593350522945831636579761643959393946298297797547995657413469994533585674600482609295800465050131578829777995046046542532403857301540117657978419889886218152997931230604544987914227595172512109368551804396083088247264247352110239333043684133570178976434104817929788062987078653234798826094385645702755113949164408642686793339969047282530722372147731338912990798442126493566447740006490074495241401648558293377454802049623501545685476359120298697631874310864710846633612261424565310022622673511913712439055464659471754800616517255472233189356688820099145361665585053540781214961008812744283167841183431837438058083666133033129790056636014961838263238940914490086029679569733414002495911678849442605704957339746213778647097917279399244373379259083725997719710150586299940466605236904830025412372334374098701732790859015256555230141555515533612949546548264625173994120557395842740895007692314560751310073448618545697481434178204317408051890281432359434888836628177152081717969932156898458845703516639075320187526741998861286790176486680071078847868466173598010664164094381621998033255919769532918829110659028892950894258029429331146768178210816006086701348193014702873181793235456560560095238968863263250982889732977366777917767703283121475388393569513489085082609611759685397921530791282777037592130656938759169264224967751427082668830488735489215478386688287427190731672057542286142901892744149706330174787114236972272735900318351084435538266678183760919157404487754893195229940765294855143663398345135870071029779752540042796903168980573082556630988761931548691125593283143942527536240005258050859802891955564735866854673393142041833949762464989911070489410943904991362907812846521075748934804589959251842189571072098719630149897137105726944531334111594937157380354260876790990117672529690132823444122789365149378598663922802793796118645187355542141952716897820440980015603511978978243468821807265792652749811495420816234941652825891981693076420433705487271636303478902076647295583107851915516756272317261013375452474372592139478065808377492616574313541301258706636604770143233640749865461706676239904520846938963137502432059380403063967390201358817572901512014230798729839748657463980785364529215640256568138340183843689599125201616329582684263752937442961025838305382493605654735939304106144202382847498551968188859900395908820204136091497633728603197791926801043401888040302656861980780543092417036909278433889018584618697319744822487343289233657377307710654750238750629101711357871037161171667659237008655874557879508546532027988700256019870973059924689144479639336068833392477307187770868642031068375245128715569541628194348852155652681011057934340617450080714272573541815998924635430243946688498497681569798294056810166011263681570635256950134261785741770270690181838881106417914839608283923354955313416545541093826890697606829621305929872441236614673691420514834865482390925013774417772080295668392017564410345637036708405166420363065250029637083139885669417135039817804433271155760741328931118086606830798660360986118727377778673294141772886822403150591519846714899749031972271604133257769415715617105908980985434623872165236715425440431900665666734216159672769653431217042434439705542211870439618038876286289907953295984357468061260849931517706818881659574714757853920198397339967131485994394203977759526981616051876687261094268259016061763346307674672412126563932968424030136175870163980437423791845075585345930576301642852927794635292115477311348720493590414999752765474628670607166232264656253412952585719592930231634676363419709224194756884423655438594245301228367983725202959414830109109452412351122655114278138130002599421505010625558032978468456413379384876482484038267498361667111181666598928059464031751735117065929827779599570968079859377498364336828588817533827573509147332067374409921599141624505647819871949141067734592797957502683994931760251363223749431949782601646771404112069067972159632348346252152501528146182769958616052998565514853863840517465778484249906514033944014364917196725819291908199368065036206407670998489030613694579384258017599765940143402473135411116113226222008162889390310563931003459246363035615049873151561959412355928364762895047606301271812180908261442853046455957050508678857352782827054304840192376610512833848522926362214491839560648286858726468616838079991360285393955011936150420626686302293276543414152382769287669115615825554041401139102432574006020788890025360627946444856967269345588773782691864840734740919250808284467385659531208491932931912154867325842851973842257071751834302231626965360021263439326964957730419216848745133145285850341303287042016055571901966683232312190633146150720927734803109744860308268094941101666396135460675562617124172082788673991006458602695752733362440885242726559422485365766133179685735031619212714597457428294706691538165027741223923655100671420816601020020243782565446328817156163068290772184973489183823737335855348624257077724247193091498169393875479381641579243108874458090086842860671743836217345967312577919426965288010491710202274792616837195307837216221279078994092813459177635510554575571373880346245625032943093249990859426803992746291761780481432279031511401684239599075377695992446058613822667032961445757836047439426087913427659373691607223019722943514437007512534477317492703938492221153519188612487290049421004857773700403821223268592051721218855367603264283640949438884239616839084630842229908431990743277274654700594210862277655581735769382073458842225603681769638222026909670757244882769693062008738962638228134951510082289113419940245746441134852762746621357099631019413303073746910314803402193071934492845742212705003279451738071099641483587641375632715096208539655685733449081529505219072594685763634108353040435469509094842005141225406316101268013514592180737865474962196745088083834947195618580049270000021831710307464063787464846302198775327956058380545672803845549726262776760345854259665023182637591318242781048335494300170626222924998895462218515262576628117264467647489183157605968032756452160635991015300910038351186397258530130223880525722265176972578014818625243900643179064756193372865017917672642159901849881159240110800787479435939984083955425043873128332510536805163225308263536865555512072184889942219627413610682657014559191001485506014043429048039407340521882441839772103130845866452287526308761192649176770044228187162558034470919341686399815744300596425170101954655459367180361497114943239517010387282849078905721503388630667872100030140586416454600097234797518079808718077783469558583356564100671632665681216723196151328968196547107855056651548273372253431038145537134141557461360816977165344559220037573168895423902254564653621268071103124361370726394475956015101542639014890042362209423885491814808789185678572709990426711691065936034955143681117634378674826475274869721856532647452890001302767603042513847961233822920551343829763957211312644143399258266441802186847356408934663293674559344866128427724123376160480240064436181878938731083091204235278590033463589382768513462157923966612650367016468207060775349501687389615930255239143554541614948431042436712382739893016481704070742064091389437771511038035824197293030894750552028078572560334879557509771806886773734505821310329056859146765196888192155909821405902758779407004307895927006295842433545809425986952998038980963842745909657671396188891301090225077448541784898582013765428466560337018775344409405990352903473503120735135305626389894743828697315488118587547055189740617839032844043302700447606912673706747220696447080092622113756638294450363274804980122076370775612206699747012629106937016854339131677538135460985904866971151520908318159819622312586367724927132089034832161196148151589423562849974961725659119263313252331807111837761484781731040404766905641763645002788371765265134771238078090009385171754814800427597305556158844253296617870054440418089186941977874919737830226442170725534040703858082906023602344538907454491017078239983885056886289516343677650255027714957264834410032641872118271223145229483696716075593139257315650878849834502064544454394936161314028696903831174716201876439999725784041723823791206837903094912476705788056732418741421874989737546955986527049287700784021878328164422413708653299234235027434149120540445558747460997948830815584639028316795032164695673473291365175758716448079789834265682821110934067423751496679563867589763649928870563624585112087016297691860390217869298322576027559718614036266015551279372892362940401623705393813715645466411161043430625647411843211239382784837624366107892780534994163624735706636703692021820445349349124404423837947751571620269231058275351942720646050392152913278014720323343485872593213672350158201382688261468016435269998939104243086898249727480112009422286520455571012923754806193663416803223945137108926158622533881059997033928795366217355853833097301921646633542243087499189145284510479722199119052342410415315573254552818257937641617584719670959371106269728317382430898252483010693566527424439650844565489551888421580018195238127047250234749824087735218969107322986467388540052711844536426298142499452754538895291212823255169704520413086811945643130472831618522990172517164879712090667230259940131954773206425577838476337298372891154436913509900258946051870743937142986366600704344980106645911935581165978430752242977546109359311282812687642901640595888126327559114210389041122102946787444537203299251268053125341608796190127261315378900733129543303219372220773229605688846843686982334698071246366731417832405644425879258921722616325886020880038694595633369429834094297391700474349920899209469961829623548840361868675911625113136273182456751057220084760024905669999417381696083330750946386356713916194797030785103816984613820646998888529599301314922315121811036354182119458867915308031884956706736730734560158690631369045637814543539992834364057320800885201728614100133727480494032022262603898985209677562078215898578851165882399023895109552691165163945110221645137602179477434366607245378214947736486054368565369802506324821989340732121159314908552745120957562715762133401740036457953039426009287045536101638872449340281239523799470109090122235741890610287394687323034883413843806651281584581072543821865247526714248890658085092226773733591205379053981628705990594046298904130319445197489733689235489975534640872596251388586328012242060515483710788263563942086463214696140454784861850671248621081067400513457094380406013134972829258982266838906457271439505353653079639712679160344837056827683440401103826090449767693208807256366685992856422782059486409295083122903673958404401328513486049408465932106714598058875769814663356120966833891905352783880297048398796797375507727034100749435550990491869520229984338132732520564909666961637185440328926450485840371190219658588315032922127321988862629654250558606666364334205892965536790831724208599919997728638228872677051147650342818797524215307784728936968098612522395497124766058047633927024044971435542583883006823597012329078585081628928879269509225789548885767021496944166407275293635266054056693720209081143936113335062191055188547514307934449966924958332205436547417902892954534745016270035144836424230962010380209602025376950381286037909724719414137360845917588571528638564721779830410152467635306836424970885665997689112476654858127937992593074182679742758951727992335030257637262539454985906747342743704304179908429263289210141789531908802063194326330159627438952937718632496383848135009000113008939897939695455728675057578032021443981902475839261574706935264409698553819540138139022192443530628462048338473230093579577773253231982443012850889997618659318368419357886248824631322696658639470876614222439079418895829698522127809718219163775438267665259061368795552967917832501500786337558803318327462545886051512830622094936184563317915163002068166726816850120410354537744536722603383103394559576321999157861134375773625621814902144724087891204400493653327444524669695503789705167768139385633784852775684898961355656202107684782128370221076992054736821290841322650139132084398336112567171158295534495160896046589179471539090721467294393886229536920592271717146418350202081770216459092649056791170549334510629986248161899629038177595323582365572258902613809367306894910769074471163968736113925576389382190862342702441199548670035119004779133083547290103811496839887862437297448436761082878130457570354568630039384468660799118964352715446666025031924256041936393998705407613450105653649062785739819341754597857892810406169932222056627715115958378645381221813621201400464274971267066347521455035432882878316976885945544678858808755379334516376301999602667365226202086048626830413425823045654391496071836329446153471848168394405771825547355874851376063661705625788263733071639576442718482844366413739315420734691958701417418466972932340163263422827355865548970168361786858040565375718400207789655612943144398304089108877802242981513608062412983165242486587505107048840772647668295965153107155002778228448194434577393184820288689875785721034827594417482746663051868632926489996184171310565973545199452170896505331928077232594568062043779850500958276269118683597722436839198878041020566092044009546827368925276469174554381306671220956909351562410101222293235891241986661836208508323503071964390779032697313887201746402384726713734153015291040927499613984267391547976133688907858760885037368279619018300988515210637278513343778650250735436076887429043845503993130173645018658086076889223119327486246037437836931923929020650796868206229739822133929718419763850419674197130421413769912837146995489491546126208384317006962095538428533977060156087425797085166555087926669179799452604239258262325331827339642780409432016475956806394102955809096810249578677465051003446124534225416328505243438075877364679254909243741962050284765845811933871366041345897283693534462641822248863617245157065945603938025744416468881613730701978042281894010605873173585745622200938760118313041722885263653474150796272490967649139727366464452753492164310727167591358371187178971639501867705542491992658562485629771898364529025137614840846730723816306403256286803340578047713780554143644127087691694062354521090960783216282894795212607759185538381640061587336123609619781079552669181682068739009372642868103760814959514185235639201442297206171458969608992411343806872129228073550241885773186405049523873021569053781332387296465959724307501221982005609164040196721365171517254878175446408314987242986201244124362400327577383922504796779722937226248148387409384793256891125889403775532261086862768599277873017142639091719724157596191067524181365383073012156024102735085192012986159161141191063899786564316101806065669611499945191879746554436140250222017894534438699797479904484027398800601024318991785472333157281496276422795939359973284493715854763180039830417821551005965317121886023248906828274310007393261294902283639454109388605385307384959145703864525606070749040347134503590300702713359175474827882637288693992884759775598000328238333622223453983162918197915154665914155804391878808059930037787638568373736549323695580072199751148831858908729573417774162870053309818384186068331804662662671881144956521260079391486406470492607115367881521379358125215464529076982745588669124609547037320618918240576832822616443550328321140771488087885567241770961084548219663825285055695861788588250519344443547925926777245868839180824105059022550298280906917506437264168312309520684722102804273047892116131025172142124597364696404255684415411450092972180645458926955932263051669380349682964729494217438659419182883727182898040570909093571176400811966159865304896171423261123744480943673696581658907872507134976613155861281574501030907333298869634679763740144568698267632580263951751189374325341091213007534284188936245913233891924564036287862213604131248373569253980496863269605545882401861106407238002560098682049166476220060207160006413483263295080565144412614816390214887124210328895697999906095112889228007623197957805915244290572410988823529063620764478636001219543380133686475987848995601233664582705092189655717989187606649473051855122050835215405976659735676417216369680297391823076675361235919177565472148103614028432572723696990728093054438375749929360568339339135579618760494922604835170808225968752566319409827579234176550335202436849693463840197891754207377497473910963431811546964680986892840413813118974992946161103656434718781791678120194946429218152015330438079544039494377122982276380453215942267669549266667308886773633161564529275969291231104047451290004806177366079998032068212568171427972203692243442382943913785964686906835919050296881358992489462002176630192552134846388281498215265805368798590663579242787632063733414874909789462035512061116710638183363709744544872665276233155008725969707433407738915889663425774189017820026134186495396272684782173486112056536957838132942333422833252464314217878729699818345442308997195445754573168444400663322193294915793001756938741071979332234650658947132523928013085795296368071181827582167804431780825470949744770130541261326399494388702006079170584167682345421157401063602872076716283481645274577493799341714466074380788990593423586045381999164869358172462214464140512840739436057806711815415209827828451581316774144637500112402289242975331538210894448584984654423160464294617594268148583550260860736938692765050359609885764179790211623872147004217032944779682303853644738499519873533617850646830577268724583048499167871476249799443726408908143342146730116137099370939077925657731858845812285748765785191363503574817316974908887820761985760980100949334118957360093938938954546904976491376417915168068598397600696450553571091094085335088271800627272935763158479855928498617793872345939747049601668386641972364095350532655755664502253055603083468009962343742878740225902001184765749343908466895921881565534540482726646673092623581738208297421782955270129505499053007352229821958066554259984032226739148009693366723303482186664377096881189147576929840226585197542578531535552111860949691841036552983097986247228317027681072931328382042531554166990412949224779133193682274858800262535068012257429173710347235535315327942674977001973594176731991869029681047230305897396729919788783853368432090998949217867196691064212366692010284984380881047153085733551125388387495096254210281076020674064434102443675810466273291346646084707931895865938531572660670562969506267463235697258906866618199528596379702773436663843361372871644822235918387924335653220644128799154695577119669289585934394323822941953632687642877798610155043890322004842411554615566668115518456007221923101217167106611808688616814902938424744493789187154575740844850423077998850053714436390034238231250318247127098819371226023330345280973001166119421410558475601210842284414491974822150658974268886424501926206779888747065332290192967939736206316934803925812582486418020914657391175407512460786528175676433100572171197522761978848850007081157756785683840703937922665931245797267600127812391794102242259396881858955945811945173333885365487293838232826719358625670097336198299343345299549882525724973026352549209728643914709827528134328897392273390354921975917787380257730352386682053504858680253829432649771166041442756352073409616928480594692158992326166004895404651262045514347868381668897543925239420471157896677326922653081482721434540979565649437590154110198029024545283938475075445545571093080841205752176400192031416449613947879420852361265970399884338193344671526022573998941043430473475614632285825716298675726272210201725327560641168846889083235953470743872195624451048372223965583225293435987410946696455062728827677612489006835108938204790086915604706929715406631195433352913601717122678653464696393319659022448951853427297486988338026610990300506657208172855121378819286729479485858510887357576981590529158525963092796236743395435011088743167960071280209195067312460053323032831135001137960459583738399429321206216412568545363055155412052063425484052772906657433997544617154583482580234514719583064357228576753377941998895811913784999746501661118763468949175525086343212327456946890279444824848621474674433417410454048400187047676445315542124054921506465961394192767893979982490387198451755519056664654012609584460895318923378065031110570685350645581567234216419292783309340562486111727989660814761254925888163403596300023206435325500724482097739076820635881489938970635967924814656765666550116333497111818092911134949790677728915542597331277831657578689564340352382709237319379145128103430019260760161393770004486920005347858850868621139755611872444986718586097339992072482839961018228710240796059136160708397600503280577824477462295395663715394120943676466521291012500568733572760314248519113742935588256036544528141072907214133590424751078136993900743523101525903672325092279585238433110398464115039782878387125834572955891958786356762254003098007021503627956913011393310439772124766590170099693730795403013401935064779068527346687071349376968703046660802913422651546135876273167072620708475692096415595782449096883345113222694393790034577083815062412535716079787061538878825773391760071701292413943177616533929192329435612028834458204535640321523178021060280719910399587540961161316701077600847604180784929529248635301223392371879171982573754308234682472432731083550777027264901823500462512660680194768043980368503288598382176456945761116818208541462034969367511944756843458560238595672942362074095205584068347882790597062179423329864501574965894874174735259595255963206282805861537822721132554429525999688295470741725180143067059437898893651921368203193504882665054922031236778270968745029485057070803662791629621328655594819085661376477789687877831340791117432430818637721122639502903454342475180666633175620256752041912718846829909875681225924876377498459765587902128091563674066865611401308837863054471367336592837141250657403241353797496764820106321871881725255466411500218935676290153095433979942031896912615171570985215807002098067820720249259367042145291947546838931093984842299823275780804624278660452929648521847883599338535466874340038766952440005055729206287367314109439875275195038485060006593754631159199779793920981214599554382751992398299827531758445502225529390484833301077651604524381795326863130292945959129142381593064748702065306596935546387895745919334230827206591905809298628375754093680175127934766336364099711075973406195799519030306158969387151321923609140598908696610207521811726511513170550251037333427553480830726793637555387271770493310772963301660405789069957772311254147882432733109600131728302730938266585463707062142531316163006372149053035399834952466421396730293209547034702095064829038173320621355209063232094737225652781816898052828746137145224620146241136123289338321656272147310568306417315635990646704111268133358888993548649896833610106900483164188383919227895124228150021342978096402631395007080960329070047627322150744055565165984461397525587094759638017448267262661060851164001653052036239202339352153666994022152758760872118482732317123999413369414738751388758081829266988187777362634897836464056282316797727164613676821838535754156650558964201308477860046470753518382652681073230740590880467586587017220235122494862802021217596493701706889562736107214911052175612309979112702919052295648315281586391849129902120388954616708489039057373958057842345133885553748827367066192639168167016833079867851023655437427837484158714926066219856141270235360867333443248307317206823073089033023648411130653685354887410900699398874459670467127394517395185167102576854852836583170732239200581903921784838980161432097996304736506237692814884540275703680868201805679507935851851425688088602838704012369801753406345746106930241859355212188597899760226373197706370086620838179518791015234995021819377405347300920231376635614415131147765181673291003162371097458337618849790929806401658780937769972036551341842898406724396023225036340301286564980077164894536087828781997394679961113334089398475115702036907400254471698756264152031769146953537267523696842601274260956978124998570277074783351909094316393773235518210265202229300118683979729425376048858819271295259140630491498581688845074511748405094188506232668027605315985433224493206556591802029621186677666722335321628593706411907414401643053556637502178316048887203112908667156331810552783515178565147279390101328105721931963854346811208857502202186249782119926920472646933475643517217303738318819614372415211484445700946712191012417253374580995370029587512428223753018066573515576178518305884196168735105381856479986955635428558370299970024919958380212441478110757743983457230052688952082859898071408128097241367672090989441671989947317313229863173335979722615497342240916902760453182140445333487847914319371498810640758490250683958058660618471995377833001090869108117939894332675202788085590211176535574554373432387206264252958413124052317885807586017262246318526025822350921510561494269252036112948821518193213036254591065163403697106753978048881645676475255429375971453195750612546584295143425323473577636690330166932314294111731805811473803826906770320645570218914165019729543791175447158434409980677532750132027352446179928345564760469267051073704449701570410795137915092210579736780690299923727936314574018617909320223330384082177674670137263624480574043365289123777193874786845501594446144677259474746086203229453472312203874876479964866004665626294740168241419465817423201676606178131247583925026695635843424894870850237365341650346900277784456505011142479182352437704465082880043111387259025286902662055785719649476320533385221103908725207508157798014101933637413786045113355220793206652014307540498658317332844920711703042014457798579045793357564285112255992975207312347814882133276114314315619834984084087562214261750622394268535651202491421378230541681129029205708768349932011404634657290497385372056324920873405933069668803355020590695659305150806185784588807076110142798750736502242317703790221686232440915439583977667947246625947338808883542368530255104090041366244460034570139391733792932773698394802653560281514638042397015616057819586314266445766205268074725311700865384534506198340247806745013820233399741541170466484236485124818088429461099940019886117309529146032693295006511750069037919614073106547208232691330104410195156517328491485985394700647976407658050891230794899273845057507303363167616090094995806106850015928616061269292979049630809963084276652930376897863932078169648253853656063006332850207004737379359261419633552369696921798365142740431800947435644375419346275234290944053471030231683769217481446406487642774079740376019395550553717928363349068134832831120403602873057472572211393429440054979219494195451313023449324713628406517851076020083855848302874515085254845137568245271589389619594743614517619116720057482210635916467568076180234749366079706426860944385736186996810006278115379484159417738944651651788754741424652189397444386418903441496229957449328893235868304479567804100037302593319189616924877974448007585308067587089091702040099817675587476069867401895387937297337409762644588331856978149916274276813254522439747988784039842939336513436439573625526635459438358335616151342879627097016189374333268013367337543663487266019103410652283055708814376860017429662755013005071812438909161013230634350445336745212002537445797297705331685580546722146600860415611248982655908410042922698022862300330209715323268439289720347451139621727312340294510165789934927511100522475203474839105291733947632497024302423201227654123774670493338664124675772434479705704075574713594846615886504975669971741314073000701433410805036481952526359665602421857803872437152021606094145571288514529004660987061674990504320686656609400692575449022590932393677181903729405764315779715252947891481029944469592259776398877625478502407211678239659320431829036494056003997002565796645887198340197896595510429792225123933974829350921244894674451945550608794826813420412331953012197037417895569128883836356762786013404451863244588791051706833435072196610860038383680562063534648138273977029145152842759214143869145795953855973393040751558826889550916633452928864318103074699799885233265995021992081158032783209602677262957105842623267568323652467050912851920340941511848563100257763375098221840457635952405979495550893626292075335692951623344951826345609625375991725289996264999027924838156443131691266915442211005082671957676529645669233838255511587894408724557039302200282409195122363369884057870743171875526745298705749652789109358711463764723827852230460947197354383661470619156010242842917292326966003857027787722488828247598497994652151420566001347034273524210522431784517510707889452291579611130433178501259871785120072506075088900398951936562512173811557848422142599840687857272136225847008761958945701718901360534533218587424065382454007992946601498791696784715406314646773984454827923362840868280327854410631158643801521413330416980258765994470309285430664005139707729886468162769513361272015634149127790716284574012721594301355578720913233838175631871130831059665008584898311628171787901573695043508697158241438674292106513270092405158263664159207895135603779851528883685631038215011404458998579987839295675696656143165511455981524081338681561628926380166466065760096943254746048504271264938500978049818218261647637649593744061114398207856409975726741242933659334393441991807637008034832875503377050502375487256145687234547801508104349010449289025490278045455069138226553850462525593172163500231450831413844873594874054077340605558768894149299285346381426144206286119586712518068892321460256912137890733286666936189151768310836166610505361593263852288967464984115728824242514592485684677277127704940092635715334171015372164843070227492314318609824006938238319695160858373742018292911526286873209662314977928859043187326917937450119019827236393060594105498164790930547092980796736184226683949717698249941787743606056927762425173946559659728329616966720757507405175508451465948804229917093961056701959474464082041923319174281864659080710064546828322556554382185702440292147216710699721760018823200351778451565437087328846464985578633330025648526260404765667112978912548374350456745683629767888819393921855842314486635849624689078182389741820647694821809003058794214134670453429129093626924045507581110182358170182895776401442458079051305773473622745998524420476475812491848895033817797033494165129817249980645522197867126214006286555590414226527922860655334154454273442524183651009766057179066000008090798970690410243814292601666872804033707451996744629959186523400364315340709850006654740414491768835857704894137642604820211109249966731458719835901849054074127904859643950621889915586500895791052275675802482964750576658143205431862880502364575128358823759159085428405335806801195043736429055820328860256733577785167780674274711169737925821421588846408312482213052268774748960619440115549814003238128795724432506296103469944259136354926619276364543333990445802091168305550051778030048161438254845463956463958402529982679014912434413543302540656060272311938969261920774416784423630111099617794796720443352144064026202733812505801927003774530481498495990822073599003656296663465365689403189657619451337025048077451842468239457041533816053153273935662731735895356310236668846835455342978025728927268247116818469386030902251250512665960428770744035736450177347461890386926183201997722129475067969589094295143628414882858325391058474618891499175144861652367595653784433145370972584290106309561418470015229743577665230150848581586236526091342723736517085966147949193172299304202808200196636631303898173593996136800269136069260142815923950637394470831485360683565656309945322751156723752524235656508853040401706954022860270745396894779769634128769567310543422882425443154683089141840901648566961201267782534101463288746466986308675379446851988873906339065361646328418557801288150943771531919617472741061408733496468384293463780681262555697141356785413192727960987298599304012877109589478578729625398815642196693124415347874890508455961303513386648129271907064394744815903712345997628612720919070895398272566883102215934652775182253168163230544905743118303222961245736703812494969577946069101468269477235668658093151226430247408478084138713695629304386164051016390619248295038265746008082145081486176212568472298889230156070171880933798300822841721532863324794077209194134086698314191715770146221203903049972172036155249886914362461453262490024837766186914327362885661432136115653973037304081756256813769537459318536309950932020483405451181483265577332506363873314329352908799528183463681889868266202452197376333345381695444391979595190923214237630227483368129374410589225696799309512142234823934389904962522591270036512741268296421511963183071063358741650000180246853417709548218849985102756371976574918969040275551073403738242063612169135901821336498527448797642608505525624317848361782562878271672588288834047098086614703213088375530058256447037797340851357273316159834749429257026552318505733489968167736740259848543553533462316463599904831201492125127947944198719588555164868538848198601185890908004130617554787853220293104062298626815544163318139159113686354432094951651436729373088663503715337571325852090573920711754062739137524526681900013637543784933669696546694395561742023150834908644195759850994386337527769350175796962314762278081624874920002310139241945046090097429941179703507101271182541967498382288626830814617560019497543787233838819904618221160426208624006399672866767680268576138483283135201883699586001848849856647120351878688522520911820735295498759193399659675413936809118281490372171112292528484672514692573167462988266319222026081101367175398312513909663001194430475457563145968939383718207738061078265452845528111816413347689868702037086038287639121015972214333800321119506726418822786638477936315387191011116842228675776578850862145058482265954215759474018776567112616243085566171562165014575613280521306341039074242909233932604033903031163708214843583147011310573379845784509513223050392252119642305765761268705791469116909018582974618240135658441907201586953318545784857300266284729389718426199814698188905768943366426382597847743289791395795943674153066166303967583894133284598819568218186031423241503712389683381719624642583182980408048306765604137795307745820215201865140467290063697129415463133052507547578633510568897349359687459283673890956938823864236779175465261654916882580389006423568262995903646783779959531245803893183213314693412270565200901408900291034365002681451202298252372775781673031749550241878073411070647148214162738117863785277679801244385811861730223375489363990470433054053833477737990872192661895254495001856205475672352762579597586427389794197680465019209081370111361165103903216450857284784502291106545897521469592273711553673729674670358092091373072221663311193738823021296329069474810536159933616275755778571141156937511893791019730912947333804796679383630333103037833547630735609420305228426606093013696830022936425323791111777373685429682424991338748090651615871781938732170050486920910298211905806930011252211299015136090737957654053013566403495548453166409513452181371509834821136777456642317667429619869627267803455639003568563866660824710256081426289515503911940854053118565532604553752442537915964232730719896882255174794108724769690849782975141764449627235010003014633709991545898833083669907061597873174277649116291593004973353678782915248758714306336149641119617197719586579562237498601337176153255737772771629137039715960069103943981163887333171519920591301374099762906430101028276958864238400774920230636522077295997157335881320703642712200892602468963123733618705677418386589681602911545426770961276650419309406384151477103064135215054938298663263532378781105642541637462253171225864572647643266183570899948911544547077602292096061634423340566892827180766903222251894756637140934078789073624443873768766264117887030189105539608022280720940381614686514763661994203759238435956667651864674980591230129448877757963695162734518894368545049646617600552792696230754103202203073434253161310671051202241823963296936981733904453080448081495352655455918896576751975004437122894119440758505153785575288522304904037383119091343936969688648972550577988557132465395216178605398297764437695997882736795444491007949511218283776694929091185688775602534313395050433272831046686682519775544721347229520850032341782458104579705672027710106476585646495264514644087668579624511248728195722540169371955379110003450073459347915606855686496211638904327405891558783491704426635493371631858879790712782444926310254014514063038364119489525617519139869660413171896018190671161514657670323885335324957157517514033723966539431981929315608889329131511857233169440655678352043247284176133730698401265877447585607934826889729669427879630448780767010681991177941869117620776611101032528285292933417937898550704909101169377722113005151886165416987931458030953230384732441808066719793229632295737471333624766647447436933210363288433389522181554836931582687605860104647530736127827427645558652500222982216888319663510733215321723105090267008910069746507554655032696676307313051942837242512569268794723522722961476992488529113326298991462457050521169547284187676789822846512691970975820861675044255105333323134543262695147959421468907495834136439659823468230290641582212924859471081569619574171173498081766215565044598685381648191968285984354989456202513948787193521195708716990544235867955874455178125131255133362366595879269664235247380334687524148827513482912183645786495146215844151441951606202022889518530212226502908088101861312906964389127017873389163513830069594054138457773424326440928949181864823171438510651181890211984798436800296828995311027409091132913784713874370485302253639520659702264614498844956444303089009908869198857791568350433783084034980215302166995985098988081899596220924010962739709261657137698708176092617944104424410310515999652160557317572891097278068144048071995942920008409336028101003547392771835105192847750084439128419278305634099814220607372800081292193693313215906275631330885885704251788584548100211888033803813477678594281578503254844494190455199904320975364303738881563694090418785718653860295987692954786291236228587362653586150485338020742308124539927282075662027568234915459531518132472086803862616478556274114359679979161071791480860296400135676533360314962765425258260848664621121025826668327431597049731453136633499347646997069845741971036723470495077108418567572153234259050090833399612162695027227982569784711532703411338651960778730058390538149728931136437309935355936564280874510603482206512900535510783802497886098480534221659534702542903842422614647886941038667168558669306205952682879611796327683832191525466881118332477313102287646294485916856351709818334812724913813754591866385330819258353641658076698168108723050817639598450150273886790022854474516669023256517584486496726358690271886293181569669061570088732085534561815359775433089241207781761675236531982542313167793235783670938352689666840364839155550751690810756636557433381535206637444596688344568280284444254141352386425000385133783820450591943183506411385255537393961587072638417381996012438439489865198601213856656533080291140275948569878197949733011015131564091089296648438257378407076265352022834121175523414929141966644141795021652737076181257559884554437087059493046237573230593152445223290539459495140282277536250463249619114381775800422455022099723944138773952413196355625566839369031039001755615289024469647248295114858831284069567897333925557884062638350272218384001342808382983381329631271360069508669073704837921670810143424742130043542144420721470337166857159070785854766143022077732091102199287036501794641171555681472619023803453710540394373860853716046986067941132576607160677267435100124910037736672181392737419671427096879841415537187644327445031465781249072852166009349912649460760525954106678005970744408750283390372231162851080764818045171521544348633546039811147363311271761096036619448513363385717844653696015355865125377967963285713740643341784488771799098794167266637748364468069204202524016444191643521565482155807358871376385131132262370670085167894540182050289207217470811719872063299443673858886346072997423259453051902972139592541420560518087285129010383615547299988362861250007809905512715802753031609328475235342170047558897157733547374923760430414665962257484973429639249595186212741419512961446835174671952934644563956096059347596048898856558756134412641408132845495396321962275177590296019632621595430020246361948639822338894059774515622544199978810403437130543966398206429766389145698696390977962006985610429840660991088159883745482539779895447814369532582582210531529567683414783104119480112806450526795090099071449152594581151847156592446935130532320763691424409002844952512262872307838143030191614313592028121316907892922258152936797975907745755138545713819020587381539280254113430636703770604667492506385719517025398521573271747216448370519955207666682008758484121791902874561653117130243366017913118234751663114596995467806314283412476603650570999866141662488748750115599795166578954119351767560248767610509669596008794024408769978937779950062529961839110723549803169805682412130304009562828064727215404699957370233651015490395550582380806845153035021039049337502556560395770104750390459106209091037191573296830380185473614562501862596640194779107081938015685190406808949947383072545482661635807480266149029424055532426501562977237195589866944990313034236105223858004727181584633223039514729745781204304207042553875891267395576104725359395497236569787506310043665049445402604680241277772960842668100574170526030480727403247162838320379921205219099609493861811407421254757438397759480229152852438344317043612246771194499757393829084715421223204250754541878677543810526027791346795258867493306351450096583081224086611445312632432709554534293166453024652686258373565579580149464895774951959575531188086430507399073998870497615970339263362247104667479045136281203607027171636889046793332212345938780287056128880692324328967848618409951885636601118592836932365844447903319205883429411025371240498345540436843235854566767633796870047205938585178211232113602599962201784248878093503417116339263024249365803846944033969549749491465108305645694507466232766881623213818452178515459877142694991368773308803601229026313936408244297839708878899530865128513461585421601451902991802849354328613513377993561778756702249529084435106521368978741794672923385024464958997104437485338038460081741500958869096985866976241531723850841335176580541798330828861661337009606000370531302901189433920496518852494216433827809183430648637540584897200185633700832200237052877240259690520260454610774296725531479544012318422389705434522385108870370429421591660243372460531607139499081472263036507958954693648825088954702144731673853710605547440319188645404713486434194128933577507963739097137157391827877482110881517992661656014618170671678643114402318811760589421947317409860138684836085358941334227500426275788926053660819022678577682904932301315190914459274184890788113571063023749354534971918991130400690469672982975535914633389056262941285738130204051768142538511546855187921628047846760070547906379019949719739708433685994954825863807274888524526738814932675014647527295727271844828798256616803906492424285463858307946962975126952886426669607439062630435887213249131078379620343223229239009248185582147972516267914246358507642687829777753581066675395560021373278074323424656943477779611196267789052103174205547060053357893988481105406298927151541988371357633642232004555283050126827136530877216925885324894018354435654845457581900410532286895215128439031978976236617242405095603750844513979918677735630854913751347036370770472190710408619585082193314693302511091731546564573069508220498896533305069908020955219455952346093164561635615581998675264779353282021111981832162746740186112356037870940227802960585348186521612645033387735105252480003864036175312165497457055065839764710987468497478606065006448055282279505393874910639616848190066255202767929088604153824347587383667627023225987178650300600667658395438708632305405930755980604487213064182194279223515844358368367647895543952299583457903053599307188878065143429983085547513777969217303890653131549810278207505962438752573451457251024288267714876651789124838024884826723661282015002377496014116965416207077645700292985015129129102778744808448239789181201548795601720582764148494173905351891120510094106509193742675381370717584871809223080079986419579261321064849657893107655487052121916299119476446644216597397982253823033223974181358334717305648032770312195743898565527001279447357986227524992927649819414414719258374797432054730454704557416010989366734087004020675944327867178747962912122974622255086038893061700528004048185959412489149796016777438656822981701352422480153113641225995871174601446360673486855503243370702904474499082974504219158339806787289476227712550724846637919212903213418448655994212014335470066669477164847863808083596232430522113642150520609194810814139657529010277669993647732322665533084247271097858010276319530986155008174517990625887647637685845722101113742735665807506910854285035507633259496349943852331720813101634395851983479562944669140886014581598722620026102355642326346281542530735671539691215198053440870984291107930402408152013130492550804185513067141717204824681453197461768436922103645546917532371346082522271460256319322681303437101187532209235664389127836639209777498935243955292324996705640078999337688593051197268626484060943613338911509087262681078809821786201676519132617254135425948230892281841943765318138595141664539622315986702326765308812043565413665199401484881018412124674172185413956622020978585848517257321006750243073012187566006549065812262721051240320283499179677686300738077909862414259977111623849483069263206857338203511741958882859211117513082925262340464615540803112832664275958967429258009958302046962524836907371782273569056822203501054754427456271220739369308046807989399173136771638201165384769202148007672698097436168636475901776106079255441306815187632380274553510057155586722299074953590639864954955731449757537229488941217008773723179304952356288382261939945449106565872138703857026172411584714523624015915752014378242937968342492053183034512533609808955406675027743068532204620046072172809120868776176755157634119829962103881627978152277602890996056063900372769374106859829917662532506950575471374354604255402902546079444001431538724150690047693918314218780504026523479768895976256562494783137786830124328701495405435434360414788864641812691541099725855901732803672595859842579944289166690121909663716895043040014653774202914216054256771106246847668833843357512376459638416685711376718355871221245819835450199484314408820075247895572148440738357319895042313486751167832121055626762498307073593205733644113792605638772430557498960649017583651011872425953570381666785579026822667900393515018285479930988919386106421722977565661052751313109161473364694731539075701736637218415426573919041563418900171874031079012473155304068587597695772439113742394103673191822991333177467533335380985235734522933472915545792545099730328606019374852103099458883018860768038341797072910466922244297945719405980475356874312216008090572761831242168352338021965078799029017460158408493801772211649115070126394354166110670552930196657510609838884968492239802657994736764524727889997320175342776277911918420219502945887761871246080471740438046625115814759150542488457354333143953747376585915341613767792534784269012549936162580630689016894456920488778680349536111164524685610169630839883981402165583678696439169770045076672329286721327269805824109480803467088050984991981509848753794881289830832072121347946004088069366273787314770426860268044358522141576624065957681234564867685381925116196370400904538941273390383260635545157474773274290179140903934713956157400323754162999383554404249761598098420793122533334487435834195777888758480600713267421266728080119268546146847595385447108075512447772544365404864333768524680814255109715384694991579596582552822167200265971687068904917387613789537971097134823630106550835386063101586071372425728150264623310215883099507809769218359694243153111832268960997935930142076811973420526984228655942855088130163894726900360096666553052353132035141671316740756819723879968163054291377116421614230087428794489443261080292194348954946871522752428718252892847613224700120840782471890973730471261466762944107189633679277299443715662891807959196545587890805117944060067744981558765619706993449259836203798704295819794404857035637467099630464229737630053266440769637777163287712470609148196278332555148151477901837291961413293998014414103616717133124601618544016442545907926843356027235933648054745656228707258974489532832836707945372671664968780202873616274247863931691029548600198540441519483162685983494313042893373241996914830898661677577888381081081544448706218153495865298694502217927953265631831808816382548961669502207542601315735228023364371774195269446925701957121540216958529505487175053566217057493137091759127735422354258631705374421541949008358379267301623828757231747313376762364969639804002438469218805150314863697478290433272501273132302675154171871541683494526101162734791949976319288616580048921997529455251719746424344085045205431655467973866081666691533577745383603290330430231012134587266382189243963867337912303280378366233240080810477232656925209172180029972795884948288689657741708164361818892511052517273868448735297746655464267254623300478863323908781874337058199795942085910383941031987190503364507375623399288969320030083186124403547015437760531475217300090500941844092118674151677147509189646943384243057336061975664873398866476953914540298224840956158302819564990401046880207685285432010732813831675568353147170704426651949418654595509435901766466858408856408146034468040276111426344692327071490664604228793289789792337446612039117633079479869238678788901031796875160707091078665439279994876082931642748361934008104799348229290281612274069453530823596274497179494804170182972585766872046238645761798612709400020452850333298925085629158881525507350517764654075423645472812002000592338535271907208379705096586147998606293726234788307490036745312996280918095720112213702976125621496341867041997968806784958389415473116504482858340209725613610758400836349754174762583482609993085460330738495654503447008214485305546840542297574355545893124787892365656871945885879467963263099063161510176656491140967534577377748887100231737469841094555123087118076959947725575000459662455001829618622545773142336575406637058470489717111813747378463540795912848755109888556064811571653146930668158328141993362799039427248151734322518324663134762595878403709954809038072396943048945289501955740223436490122879127068940319229238847853442425757264546714289164528741501933566932457811876154420080263338286726693381902662287158222101369119859069475240588385907521605952704938363923497999698418763094446317394804986953340339225029306932503753242693100008215285707986854089719446667365974005661350488440038093884930998880748213325965552067639159582993285076389760013363964064944356217259883574923330551543606101562840987027473559257886808191867029129013215973130759635659211982753882983529096251078800869581548016929965813023334629770099357798175704751007648249258440344375694074231655843121214179447806435316780201442013255352388071086829305212321402844009563878894270196605355712266782795031673783732954169296635957444587444745020950648482562834120282481781884959189682795940760443527655130744138938492660060476305013901699046658644698813649873151641093947830355336739525423064250232866153884075800750966683695812106595172702436004619922060617366008952129017636317546066029828444782285101169584048020853074531568303958585118671725481047928387118122351876070659432889971754713296683527793546685293850326840059391506313639889506517181205910620176774429013323304247915509628227961970484549000653132544965767679604455275150677066394881847801739522339620779248750887852763430729815149229791556471830179326982977534457839151959412376775538957597120036504165417114839789087711557713907525888338411105656343931169291250456048753642853745885889131952988408491876769863567005853373698371516006902045921039388170909356343143782361435988281645948547706049279277859504802643279875870656468766319123014205980074929709465234228111382399087005395554266948173217333414969391001360255416587440754935655568040612239433718356987796006925792238761854757366562060368120923441095731953706960993385823847006425234034974222792349286681186068837955247612713120351721157591429109156386355050207755907890110804314318763127603738064133406766922059461846202670940784860523717596905611590113955672272292928295551541356895850826665962201650728693020596444366675099160745314367580737594892709381651106891167258008546658666187627472140621843608457915797745262733380534852037396114530098408993705184737313546430959783729603329414556279986901619505176509730393598232269566917592677857189692456914623535748407557846964560421806856612622312869865048446793381487421945608986207923728137308015713746533272824882900619439621756620527549166908642383687722152389048564089536645262272030590781947561632144517036648731588160276610175745948824200363465654720067514474747309386002078325211355286392586054402456029085466688936237712804658886365031829004292409159480805524807893037166241775800349065239334163828770424101557210804461695650789875597757343732597367722963200582671152857729230017064178719054845588899154985980531916450606598995432978759631744169803794902055778907798648603924643362835964873120980692089814958632310831517798849088251713615077611171484684285135559473076814390871590872602286075772269923162207974469559434386091192545350787404783260460025944557759130568161194678045734354430881051331146087476072339864234456971695694078665104880186336277952960605796562291727794823670290706313610988620860059782630065303585078212044873942627630845844285929494734654046398065100451362867613287304763281412083898528987305117093042527166153879154057131252583862131265694431519260259757383206373514890752700509942121191758040318422191264818034692771756540943410480611624464318187653072037257367285199865664250524126448252854781312155052359485335065589071167883028714412278092837216558906621644170394819541311440387879698050770091773362257286930159213247619945038884139581171607716030494542518739784332703310728905307418790045895088945394105857713449046385779192942903902488267133978549638619533305134741170641937278723272638254177401614350819195048385965855706897930286781947602476740055144137272660237356325661815907289571073940085184008030512399179837000017515618377503661948728712474024404820273811187960653614677527539514512713331106964787457936298965770200654013619793071780404138967143441152208699565510487587738076975319953027176906518329547740357192871778842330820813683579064093979265442752791642121712527697217114542989401616427274469650179438047824412223773089470710885534246369988980235873604629769441853487604040303116114113340683845419262706157123623428832042105857153762888073556349762058349105936642263833387042340611929192384476360927849881424433375405296883475477108013920690071764103755813479818776050261764802362463226652401144157327795701179824066354184522970140296707601476099970153777781091189968853612244989516229244866535236220418429233596317441988385196310010760734155115131986887905592557671950385768024762311336027270381182692775553030145568904759431364694474612838239631658411699049233897646537919544735103746704102312228360957248772991280196710985475838332234240094147188671987522069111073126481498242065339855946081616745390963106825550589589714067702384784011911155251138606070615727671840579783207728596123676767790691662520650518321991210725068546137583577218449132008123994610326345595399168912976223815938406066015952540915897383546083004921694545294634097011445995366426611287646493225082327965432346033473441079704022254918434752901552811452872943133653331716401661481272230618191360523077714829876811782120450666683687871911458545379063422742017452976314261362466107037699053298836149096505157410367198599103639249555098117935031363035043506841805591043696427600199336830097997626635851504501682599657277797894998143896054171090075063302650596670020556228912165478357164847676529213415598867557161514745678033198617871004838497943592317431443858458402812339773721062311950649352208286847983229469312876766078455104851264921323005417632296867709085812815950732360046477970484437560087375247991046421258915063587019125823228413887145895441579964748168662067061370616032063501096060114273625431465446696403008501813368773118608800289806375136880911887892247462158388147058560295298510594136242242046836264278538642493478164722092295819093546919674120535491327956406662595777691480847458839767559125241955464877070638018851085767638707367368002209071174494918964114305546805043778346122361688134634187877632877396301333428839174857692679595745113089052007480042044192383621630723185901351385393639536054008504293111517585688138066234113602072026070189884713069464216361832078882490534111495164256925624676612029726223955463988030198060715475345351453489876811629621485569066411601163034292795387894357333465980555747140012508493850535380219904947704321399140155837289401331153184318459115415744828140329339062061930856122178266060657994855796050403472534051747715395105785701696989726113368634510271921991830572376826812782817798134744585607566498157900675955045262582974640479450016125783705652078097614484350602756252832387718583701790978309625073129877927012752152709611309238657921606417854573433056996592040380699284095863512729101186482122335182607968200742833213952413850456491106303811697489414520686006219540218745628973255201821673105241097226290215883779986633263744292313335273237894062169621367834175238432071709229295269752359171116606739930109386564659905137002953151317589333659029811252551759676121431976786477014917921110017220418821094645133431602735827732689443847069151502311004452471141393606708144601077906599136205003662800464898767950054854075265668098633806662234290684469395447065163955678123173853355855465761183467723322993998563908290149676840108301938489217636214566645825881259670775210441164450545066017554862323513691067350627078392423597182428320694749860114576438094241540050799348448964146948573363214392563631026990226812263846041958236568435184905227073873246337023074748142390264691609349608797900534113472140382530009255386348939547126929923810944670690139494441076671265525485124830503748384999974887091949672903338417427829083395631489004091677379847177851304149344928158318619597621188614299490509578360767043488043112793625802245046675035431361858085286704895923493729937138434963358233135666354239465177367106866935966721463224832000486132052601817270746827172462944920294714700137322353427624341908763531580948631192938110035078345668662871341793020119977877090098537183315878396987923040983629225057954142467888657678820792341597420513107524836302719680080605125376652755524298761074056542988868855904842269063507662732793121779953766404472310181208304969897018938391466035305042849758309709074626699758862135959621047481022219728568577768848932310081912911743411474791118245103569868307401727317333292898969864202841363577687019711862754317141404355160285608340677849958999425144335760800590317170729374438470953247076455546896605179358628935306994623446074549606103088833965431678749904999642714337784754479602470531813260526499088839344219866769113017457248622139577928440822917913546532839234834058711742367316207066742701399721241046440440842997078679420649103645676178058036685299129392795424933676022588256437131416296767996955930392666570037343498610980776330028127473198763543504605592665221535462727527369812485183525141322551084126919221381817969138053727277765941771762757050688881912639379645809446693957314629532281206668561528887651411584830493251985658393739287470450710928557893754992252676683528867955472916438747636930176886674282914183255231860305936871859759888172362906619007835857867187560249437886293149671276615202102905659663215657650094248956728437176343307021781426368742799436184477782572085026565928768723613898951901816124882452475259062418358319951278691233955004644001049522078636455940125035294716958558230507208655213472782285603976403250915559157694204150970355303322629813464413530610912488253906232071632824770720328529641121518226914319996898580161301835240230662210773544378958668999862703888423025837563790548127938039911283855226622515079748488780422076594695100939665134468436280543067604729961584902295671996011637525934277873208330611905263086228996927130548072379669240000303580147680064495219810439097713977575552580332026138412853539762500098335150243735390689236995778267788066034926124244084380938266859713553139159320390786807720843824403078012816081559508185324401075755510522122457971565586392529680665915860897891081796649612410021614878638980909508882850466922697977429684739954562537817845308168211343894247748093302727682630340540676414203022874423408747792714509129120125171318117651809033459998974092606575966843995531259056007286534290120483805941120544790947601524190812308057744956480588532740433945808756503184042964283453985514138271075094678548361235245154496814726989143388404148360857039984577393649524568169949295308719670023203126796642585518215604618440954257179061128410055234082668902065730541098044978871536191705977902107379687409132686604845778979339480280918472318986480278774450329769561914537848908736805335097060939507430938326494796131910596404502985226589046285768580298578897354030950120325721479784985197059987005783168074728681933843553384732552138581030021984882438504072899418820514798273912905925221939619628912174076385810698328204169896326281430473131173805146884045826953932533854754727314352797713029885787087115766733891371514804611909515004044736831919382522003777131917604018716891098327332460371155235486576300986343918096468547622075446479349104902031501787676887441586321695822433299852787357453898568500482687205757995583962616695959579630649175899904605705731546831218736096152716724546603829804213335861908063947758221053251229871913873747205671359220910845420247995691813470072764391912958230174913086686839216380142357751959941855450780274983566504992965608067145941741393250744068298263048977425854269769208669348754205683789521206671593231131365574766215427400712395551925373712119595249244700857766377620486158547550228128871655148849501523562987190688251599799838131810403681490172104088249615986544053356509358870638149467032813048283786461447214158068164966416712361813878319319406160621396517473012538399758834662982218869802362956058232586394805120810682888050953381931070760624626125268281014139716233008716758836333313644570245571222264849723794077793901353963134753105589169741596390620773492105659444663004909032642047634833554444089919642186535659998005895779060517661834208734965763977156899049389775346978684180587601104848548157545559092102665523726706917646935391432086185929717762755676591489614239063732327369290675862695190402686488488553038780790678121003133182183613761722561091145004761690458771254961132024599338135683399737019560695776521068136503687615733760553079486492305097177890556759250042282076198400159267036677680763390904163421703384165732913156254553962110563698867671907003583459338642993981000705210628373868266455060297843739916523701692937451505147403299423927305879774323068513368372924340698492950240228986636635659919030354493281084138697685287746100001698650361374005636103858277912994343807585268493915239136852815379454133517468116032620241486574346019687893468100129645034227032996420153934416937189921296233960262037278175715434422670487056868791119079756344649843443941859250102931084160349554532149894498318392513275796661339762346750382193512221812340910594772390308885969758801204623238653665004777368868223961375206662707760655789460469676362249882369349806135431424784785479894558499036835194099666593660379477155279227705426034737941845651990394723184510199094039595333817011787813552747847605688465862825226997284255803075209380797301589750985601154126518916407069022639055318752131096487825214418251679702903164342606256084909344270736839818962150941360328679612066872741550761018447881731242498510906105765520498309290904528324989939498991737632578037023253445765043650756638599473215362623434971242336635201994505922680726817773858168863767327785545932206160670851089750280964548839195463285234488018265640563280205373612925479039058288112000094442319837709655081688130005445883949756910752128608155981217765944842539977715469541288118803801589155692761698160159013979227249478592440192076626020553413695688549670736532309523422058839561332116788072430617613861711527632106057416092270355578230180197416982729924661769323086067275865453148784975651014739221178397848421516469132998062967970727438521917993228842602656759351602933990753938218557455764986774496503267595200016922092798803843406533374894185062219000408277634827110709257817645281230268885373713718305035985952903394118188415122029851079509394916692784543383493917115283688533305650064236607840791408742068735965574651407030424095803476151085455871005724027699531747304076314234380916545319436159725816200251416686245277821144757449910034303603513307680844050461401868576072761747647234289524197402104142438003982309471296604127742460127785301548199853335872978368275524665118734275320150721539975159540575246434969423555525306417405785484671662903228668356301229798995501394241434281186865453620152112917783996932960994252197417307578898183138336662374296156677985506513609060953399398502173077030896694715698753766577676257193800062452409115424647785284193438642421866568115878775653637647609362511165312387271872114524152760205751042939102104310560196412014148472597338055821517511544441692764703382224238561593563587667261653616705222976793774884347372667365901392778136720652710444148946732263692526167243041628950760843527252743707741602362289112885089457772349018290746876835158489491787820116194551493943284648625846476108955949693944600801507220747519147006680816923915571708039641126922307283052570658694232029982546675719819881746859182869229025951498620500813949186577421115620873988475789025461013373291636939428411201858475346417260360440876796427355708236497256755500358721915134896115577356572445354259881050073151428225753025139009217892737472882932419057238304962965008047637069648736215945823319276820153194543877935515603453832379659556839222659628321754177625077953783173387219473433537524378612896560922839882054728685138263964777594484100059657975135037599948747316193367612355433778661640209320899906836686523333515894331975123007128863711535570356666894152875492955434858577046515301652492383148574939612381634638742695943681322088463103748773806561850046103796483893367840108156211856673719367666910974714083319033560236595978738054137423313403357644593420636939976083433764930924375860767079945323735391829116807730206218534282626574495312712439397700157202434170286604688171016547679471780625124746845395198827236079307414602613998328162876781852330186330615885986094846360282794078631916575821797817607331603497620373032027179409361337895821870148479612540377575054979409890223355598846871754205304152352056288777562443756064295882694411463795918792725421278399533885306683398801472199126091812598774851078404082861865994507304861218784617313033614748467419093959975960663853016228711318494506948287710046271819023579424815042681438413102438013095555172278091540134326453797875016752120836528169391858217230947773035321306187127224631066345289027630832427151029639933648598747658042914948426908075118760309745199120199006445475418192752956645899268994796746233875737788507015496517181684806165079127047008793305206410407817655761555782444106224220329207455338839376167037387203382446406046797022891689800117828642272453390216248535024848924245441681901408412015077977966197196000476385188872971976489232898131068350010662070669577387623949151588007258407216434845532857267750270079323377351223611977213354278971969152556473395054107713668504197455450692854272897697336820322377309092774245237032246282929483262887691849881896707670137792343213946849123630257805377434588050617961283588202540318975218908154237980518087838346798787869153951995635036985727664514004876687093718709790025396974656001206810834283030325253153216430211050139089461065076711534060143641863973267753707377801407992738034738839432408355990632275863973803909827122847142999780454342424848558979830997739012850408521147062795011211537737800406914805567298212776787743306547532026028758847168039952149625903932306545877679341339187897227418410056606994260480605316612973807735873933701599626956438457864230908420836553138703879729743005462381502733314079144529250597348841129350070868900734770582395107032101450991042371134646984056137200185001284698778242680514156093184389569449600926631028763397527949890795063283971863848690536839213112182698601064351926104861817440610676883248068171182855009167865041346375075442416681376512127014320967975692739636510480378378530348791099436231403013489055226479296549215688580980751833911204262475637479662248253345232337929860558883960754109522148292555996071660039129857093344432006696898620165400570958206797924475273872044050140867616506826983416876961921712574773065146962760063432449574597866106007483701738038378142943714428916566957638954509377471027478775287366103061864971482402824890011360832875107576088406591233835439943785806041025899897402888504711890454551763870000490268789902504808305774846881931034354416284762262651504606474128280072196988727172981930222538816853192330465831429672937689012490684337447424544227280670164725537660170270585670368548580727496610001009156594525366733317395558004753244468951416925098772323795530678633342540984641472133588584965149468793285882523627667973572241865650825056555854095896123276746988324792775563260820454840040938626392503397151604511836153967978396987994012574119702579811170658054069659526455013631153106634337886433090444836814015656475182658855586459368494682932863651588308986645503102311970083551868936590084587596037996280345850800377446070191926380075312137321038189558312779584395169281590399780657472573514029796440768171327676878335359381538470814508050903339453649484056986827899589713526268386029805091648044502262879101175985090404134751248409338906368284065536237015732586501260486761376957693775529257895924088218946628659594720531088089636988129530122159218260432997464530167806070268342930889079960116350367839859361841682283536951785358015138550632904501366980725938425585560741674740228973409154207249617513559468829358247891240290368282778602033060854486096794697293313056437156460664909513362428605633294802089648751294615385883545157245600257720193851093134311851715088017924654594801042458978295152100553559835463228446610286558041870142473642735284797869008889822736074167317506508170415586485582917216053049526741297641214681285089878464169388087242536126706132151604072869762934824497253856288211003430242466440724336632876604854954711540276869378458992638724050308873737121278569978598784391114381494702664232738596084766075447284106274111757856487409284025812644939091717819834543999415022561460507323273842255307131124979686490564846307403153663662509242237392371261338471949934595928941622775790087041914004317346330958494002965058478684135806467651713550259445774418929597285498533420801003893571853013012388967210265070485173770919657359103364106709243198001568755663164650401163423695650255690529221835002737623003233197336909649913817826777197695430115545258085576330966433174337474080953559476724756883243739601760252616608648538328071420622111592567672766194397678935975098992663619317006164494141912541645655083008013487243885045578637443658112133222855433419234330047469384519995634556582785046715079218902478649454336189334745910787476663122754538224770257906944500655854222699515766774844941498221457435026705773763642800194710571932294192397838372894224235106965173110455621834187868480949523576704996647013212614956829031856915274312507997329231387763111307893007999883552175311397521469847471429839978625298884535352718656915424638464021901970293275359492972953055604027284848998096727577426992044405391892108983900740803189875602142997494358515582117291661257628386761344392253671964096629833163440697852300943604433618428761730626487971609513167018421143391624015005193380615116337170206337761953118617137995505247701402160077669179284249587861643774009411801392095608504419562064788521445536371906739656582277169273128742450733884124296853051372965505627789726553519621714309741103670553193163535581118310051790575219197438518635904605354638679569868226591481721353782350479201275439250256948888083189474314934748797725042149030919799088717595801950128617838434785751605854131759807140493386655801933408477342221616968407190477350445764047472446835772274040891482925410191075146130392561356329054944498000660760592545330894337822987108493239322424700953819731727859031748415919505233794594734149928799221469814540208526805759330913141070811472576727513025549564211288239562072776891936535054275462280507456756864525798715572027728339890760282175680227869499110453282750753895365111399528072581959591468817575182893883413128007736912523923658131340393043008007885684772698887223901785229080343841383060401504952484741529571878323365376890472024715030104528866533413981632465565300504804121818468056478840600855248457216057599620798075047352053852602558506113873588869897766054305129112272570478039985687088032022958024238659818955569544945426299763444477336625529702466169204757542754104469274148743577605836961454999311248990719021926029151670972112219154838699303306241573221128350192513878358969034278142661174280931766054152788358816115218486089441505345233268372297108375087678221550632980151900251779951418512088880673992086410218649628479046288857922653081491741184690648785733718292730756738635041467409739302284784407148021501566669068646022854413317594059996354226771112129557506403600612933001834999148461072367707560190891809343773941573255686688842411532914603055411974931819571501690352228693657176367518388281420509211909237011571740170074961700854117906494612122201621842910599206492196427311021876336313180980177111223299667521902777009353556357127204643953745404427130471423348242923669869633863578813280850552202084468834712959391393852319427452328996400965876034607472159829308193362980282578480613382643551486645566563196692818951449600424828914287438547191846362873437322481762460068659581432949617848673687427614125762834202332643005777082134071516638109162861252835525133858386352236276521613963024906405359857298498630771740569319721622611397336913807611660055018311461899130531269399706207775425044178052872157155385591445280206559715171887488902659571918903388439341553649697730309829829930823602906887932811536836885809820956085660436771325182887163315846671484806768520162767315238652096117158319897585906738868817366316569884823430896060033362088329439298789048979602929338135415433970150440240351412122039965656056298144603121494314874667506171283847840217079900476233327492069764826753781073363356862744761192131127146080111074290114459190900327692159990832946336575323975571618873962656574018373669056275213466965947767745771571967836312713538088423509263181417774706133134948526126082591535750791449526424108418811438615097129551106421976982245007690050426753844893863201107374558156043998631915424144587684626950247764550492796376003767906714634238271167123153851689842712810555133796946813435268719005964370466516116499661357631407252113071305620266068775426171197981850183071306963830885050717315799518275045542655510149970170673572801154012837293652928194633051380591049047808136677722769915454457422138645269789356449619159371659019943523225807968404020334971474678869635425857385047744950120833525882081969168974868924485101945057101881320369136512613009573245366776980486938743864529442096167011722837083167203942476942837736237513013032244090079044894080764179515975327116837813661564823830364760212385613067865367781273632791187404528575427828492936238363354346322916842735819696105011720695970703310483218743007461185773418694118139521049402457555363121948730292018142796414396870458122058383647083395481570864280044548637690563855362032641117264194516110109228322962090643026276852801210535145254448079806241679242885667664562860551321381692651629432453362095279450044735694807151764712933426029097081975106211217295251927628427829002871395621902166604636338935538200604419167296092557290842571473678928311057925983392345179941912307708459909814534785225966645998706247550206407202564903758645205384461337598286186463686091363693023028793148262963296924801423979950275889190868287698354155486905708818014924448080179837016325751179592134673696916908037228221436666836814486774075523551733039618688846955754137681944304931669809207574153224155366846893588354938403534992457859049882448541781454414620351545750894076551254985809379908321652014851429461127523181346615258563582076559649500130712670752724859613406947765612407868554225810932167458037788632454633989477244674612402681936456965348272727508813937959681475062168084146271602071841058638166101597637367872443364310943849208792529085005296701065943792854477361925377338803851817001833476970117405722913237703506870850168121824249536575856524424928585544959013408497014699947981060109491923480525786665786392311307405431284023056522837627998349782292263645776399007319740850181507302708142650551935492343636815442203494597611152042471780906922539170401967648157122585895615606397169947881292140885238982470573938065466935402922967403909596116420131347122518975944491571605724876995567691485558298024175680426296369693686285748764607818006604407674537823485040975554987572436044131408468816297653144826170832598541408373540667349154420488795705486305100794259706164537713874428971124544923966998875045790865917507746696778717567463629156001775425396252875926203546695177294158364091555769790732064975074041530967838854731123692951520576332493169273222290025318792370443508748366981942211659706228671542165387071416448220146272881328414532630951714811296435969293691837601586984508053724905140240928159990865305401629681298582397979737320152710743517568874870739182007461377993269458792889721440297124852742672925034918031341061172846697421568177283164654602502311462707919790255188204926296593953682590004568192874937256623049239202517065366190659517352503608281706156617818295453999869523702059880504617320015753675552166302476033197832576106973836560111080222257539045502725556102467454056455185012068249305649783976481697755223744495696046674517757006368189977491811746430436256518193745799033039316520705673761649849423780592442523370020112429532000450286122105970953066114340481611060720778936691950770737768021405421576667671119708510509126577849609703024991535703234475266620943472820653775591618728156951612995740018184293721858325827571660522362315232425792188608941255729579276382680698889931451127401509169997426897982615733918953088988061685979919100910352884973617525869481613226271137971979195117733497575837150473424410254312519515177522673312831031023133660245313012202382250023501214769351549317802869792109765253597560725724249609290186596362082412140811825484505772023962225654658287865424696032482568140202438902718365432320731991961647033785839187838286345228230741334272190025973945335832522703486457342659334421672717935981260583777668392460003383942567916516471682342639054633715288955608648164047700246405589447453437751671947777033496836346485865243596109657711716060057531628235996883096104052388235259670100353543710263404225476392667796490488661667323934384568662438586221178330778082806585471204058949676889772942494674820964168139326345900010705223173633621372041653100001598047041800151736759904569035957156949381604098729383931339063576718795197970692543734334638463309655019305725569911660391592595671408319205519519288645683917829888939047392844668968020328599517228168640036232221065638962985126943822032653866175595397061918808415432324322425972170992697384116335169064559561561028275570107856276600277113212696502216386167240835118637343406111189534185841402291796868972214822511269997996612656116899466972508324045246496187083568230579716480537765616266424307158122834796308562211674328726146869215364489257054861902934074865979817307306388284913690576356840668748604142712306062491524854890107945380919601671319178470941210639365867846907151407626724123746514102203220066669465322437690898501602714809232106728388448339029230255718123805782456485791841559534550733592606398002458265879599034841373464915097442905161495562464997797656305588400029526508674127193156881074495173994820008224662382631845498383636039777464920828507257467433922218811561728892991374281309623309073774406279421242696837153681225477495123709173499235101811161287285322816056945494769314583151890420898457660834890404797118896931953089021772002595258055227972441734032146101502690914453954005717256029956943482603851391112708462053695803146565901341378413057998955176289416803675940917124408572574026754417991726938248069796692856059761595698138630513625593707566959130542957072120508589203020175268446178101529365661005977995185829813958663678713707023427524744053101452833757957133800734016348377195394153948300580598509358384746883812905967624093558453402734586914241114698396690260375781315384124884291136692224363668873158342738039855827163696672801388751442565611593030415249805444885143552111730167458543226736623685092170952608301571735119733136237564420222529439497339529182322799461080896253369175306152658836665430897580245601072289158969946215698384233747240945608774341696302277585355951267609862077682724158011437719073740272158506624365371442374807211455748742726448453180719523878818055041689947177478762495143584437666981765063471404471333842876780852092263400013668604142667860726587139013101314901931062128119105127540491099608715648048276420339005075596681035384220514492976980688426293343982270619110470975530736220529118163253295373906438777334491030245544313326781850678052887291522154213218102917593421244349020037341362030891377936274242008130053026751411769481991694323092838273219717764944533948602502120624031334547814583324667985454905929459688662245108446278831512757666915672254975509369119077975572395111242947478339845582608729931460747645691186576238422727477752450816512024520379212334431802540089894025797018662281688733698266722127637373571157430409959762041083415588088032186406936426294868915049513444294737708768985934507837591985100687418608239621624724846827535096640321128846351318621185866488534543129151574453471569479741386449894403942962441858932026025675397238203341725872931184189935203921884183503556934831296228528245138619084302035915371605455449965288264321332172329721418434582714065959529650153742339166596123900958969700758492702838701901621139409158787581783629924571804442483515164250246338014487670694510135340222232089523850266982308580962985725026953880452524710214622933750202707823972986609290599363845099299093416437549703534627955952013999733370704583087239226631600023242584707854058584128275935537034322566236726113279893646769529269615437157272087220443731347316018737751365767873613932954349964746637580295428187555672848375092828474363128007473983003759720203300386945644657791891253822770378396361462653589648399913118681052867965820878339172251441823536855350683131023405505222854865134346581418349525607005444095256915935499022889611384103564583012822224758650546477786379544179279691872443098902222980592069982893710327053240006725395010041733388175498289267490917041134587678044235649832250385786042786548852331234505679313932237154768166771279187211531627675315157171795533572400850612145357113268129655054176970167307635864574778384440456712189748174997637835081308587820301561899047954995690346670616328364307507940525171596641291654931641188990602709908828582429560752261422680031710609965616739668029044901786782667102787651738497981725423393559378295604159090824245351625854880309768654607890833347907687578398010852615767387555380507613902000383320602265351089529359409482880594020501920137363469549028474354970090026978410384135322807638235414068602055198128335572465737008597195500614859405498050497225221395927890891081505666960250695271721303912368772043381582204464834580952181143012445503383408496871104189810847016328864075283201067302888146984214242350689005113889073654641646807102401151306207383959879025732858122157811339173829968760162510884417344155903468081938225414708096522573000414206500002635584499577475836461404760016788341399679931724051597711551415068188481100694619542957276333492668048532997561166238105175487505688999417255386091740321353739436489162119400797415402080589567437192775285532518164292771214176756445802035163717756416586715990142952147334590398661455719039332416306187357540371423079722679333993083108319789027344548641786244377900688312075846125084985078708447345378084884585045340055786537910794562649686548905665191101849665588174660346148832631040366071241721352021204712315280099713343026612886224405190960416559130617212433770861956128822353038992937143283484510827710008643323165186330312132756276049317237052660911530082779458741282811403318201503086968149443846717962101937032852037562648325294798344415701371367589416770681662787980616749028224347804892293464237143754947333311986389638963131672712193546241560934793374146792716323919019862030102618311799735743591861782881927710288256460056732047046053092844226008625104170280535461724475051622353689084550673325893367392746825757784006750608212549323822125891440892320475505891219657436470217303496291484088218551849360054184432163666699781922075054826734703552722509137307006377296117568256404713647278077306763785511611583640841647442538647222107711423345775921226572812318501680249674700900702546942954696053908117013457849347517701585170570452059347936530762940973865291985772659893903965282324953952327326647963474479988143773118303218728884360289869162204958888188695413858071660155853839563563276805164977085045597220262922960845563022204813667886041522024389842180137774935180118511813987894736606460080753809338942123905717519823873880723333973501330757176699489330425763158098089575891639796359888814039081734899716275454978507034193363414804193408693660759174610834783915493882563047567359795813273459740188984319056120690367439981166750381654831003329524366053256488835073433781382597983204033236357041947928363019593566824879447823733739955868999308835589541300346998618972797762395620078095871101050105221038310907497078343297494713256465948299520590896213285596587336278273393565703000418373803435217053796727047608414458895509364674489843026346168624048239633876755008266508818073433822660354513776483999858260323548173563182999833064404750879195491170523435599246021906459101750624517737701040097707428826216062435043714082982606921806971474545459313298785600537740712709196461179568797442620635349979179482461601921291271656082549145809087970266345009592271932868272364982326550880633256683455527683753491804847051238339400462144330153693616244339805454915173712326773656049550635706763545174716297085140646956207536664172479248586833504606498062893010664292833102036954388143640046762244850112019979200995794090322193332593976209486894056742516910820107239980877029574993930826183593944600637626667929999035724242129664669546311077970979962026120290000814876397412565549849023478118773414423364784361745604156032432500208131814121433915982082012779056854484752619601316182362107698488915989174254162098507635232799768534798181349352912424980247858383492743774563787296530997965524285678566805595996778378384213020908346896051682696283189975921666931831615309604629864300641124087101108351150315102670235721807815414640079183296845195261933242355874188831523896744020716542070382544905385673313524201385916510746917059731556222323560379403105817360602903044396525144639519551950935711043247765122606349767978574890017049891347786748012726281031945228305211492816566050232995190026388745569272788016153303917536203492806959208020051640380651923803558244718073408293319006644222316493633190752402678900579341910889737250779173181226545287861848369971480119341560614758211775857515111452700929046463868089139155267831309671089392759031547425230422224850348910103205573871308844500895500942453689522499114826942429532890491515670162462993934324903093853555697612310102668966042073469333681133874804220767445988522784500542680587338355785976909021857075666218101262362395945656176172461320579620975530789094431173462343200385473442003252640188431066883293283496961903863189532146624254094355327374603220274804538617043329362337435202421215897702642755041290639492213439811497509568738086484083425406431065304244043204042347070114404298055067292920313652140340158074772972083263490236048918324381377518522586721422201510433580591763143770915426226773082779602502154567500162164498773795603332061216490307431612273914052636333206329608652482904240836518083677444860621175212242232542083534411100060623199846020116268053887361572776953541355186675591992529788906570549520778339378580387927996747601197383887650350997498727138967033109355741541459619618884720546719188047183744737010017656773188307453403250828700068124408013039994143408608425720882646335966415673113009823064211746934089852723716778430842993857030702560761049850119365514310052929949086969085360574708065818006809527395808370728788150834134255862278617630716934416684134949516631913041029565850402129490050106282840873540012576184574865748904818676493423358669252612213545434801566777064158618478630406694586448917529155581777993273595438632897105566274857626286254592498624873399196630328794356192453205207106915751490118646473044691372075447186222207900874659824207264115120288415905323815490671160316209363468952488503004035813078648607961164417658304422837160651409659488527196363339878284881327534938636559664505938055290774155564435173658336938971548216425968148721555913302503956072754167285694012750418934239286135079092161367392202290518981971242031098849953501156332195865448158390110540341635551792272935849049609991491871073346735708888326006166435187502448852822193831361279470051338321536110429691257373385335821991275628282710264734928869847256187374820125264122600305038214838514951236003966112992486215211526551266675053164302323008617224640012650641889993724355291186972717706708749665322871879325467998156817476964647739166303234671384462931003081154292220729138105141450470478038006690824779038980538856112212380963748082773747433645124877992143552804079489408033868119839813888077660827520629714594044640051259086600378708587307310956961248003578691989397723283672425475473644902063643769097007293829717842296620218044134159566578711173348994306043268287204159515588986333917454518382767349559539619870985952374922009940432778927500483353846320039224150440249040600135861302669036315772571852118219703200267961121428976830890748432932028448320372153354796529232713751207184235929863826648451650936544895023077909771233240430275293487586180775003814528469000119349507845230213480750475103731636351615640942880762352652279913559615519434235243210043241788144128924445860459105796630344638348520435834087077341686924860525113184145833081432855727560703510715194934040224614691019206031113738942419162842966529609527859340497512213867254538959859878929662577605348791164721898576183613943836903983271051740267460751978345808897400940642407912592097199745276175415185900383186134271890721676081155802556784561902270979821938232716638001758580216261207453067091988173188994353540694076145941600886062420029598296049286281753672762062946534166429540805056292022183729097595220946827857780719329512954464410270847698011820005480825292544420183376532375059470403172351309956513591752877795431704279889777723825307801709427241683233120188679456208451999110350880802822832320504428212951770824899814141771487529699271392764246042151460453450829176819261028374079335344452532102801219157591659533139759549085661600397128215071918691637880205023754324378585153845442386850624617598653224247159450197727276401052118668574256676452135315310437991458552181936769610456980190800543348041024376187093868957370609162928667050278788014928349483451156327076545792910886178605155717520442650529024135781874571284485395729229009640293164135866624512285543881766834289908240550763773611993475104743860520117303161419533814675956730904681111058315243408738162719819395373358627817155478259063125250963714264534022748795979364015143921243390388721780589652539959776143612606862882320739954753800870589205000424098217555312843031349307686765180591119582648316407415970720787017821642832517621866868117495223095267770606777478235578293103407170211166412959592595742231474500349260051066356205106175788582623055758324971403964814372507821110144666335891230006050183058257079076998505016063456595488497761083493665849747631608131820344528304387928880338154269180148881483428942887630980537733533160130602885921394158774379773202318602807163573523538953528936277897881607465732176004680584618524272558728502843549443208239113646964551141272254129038955526081294655272396085614829046836064643751221244295883592513328191267565869955015359297322965069489229022959643832162468459297796792081575655769533803952330631191078831509247738313702136396407180359963187347258430655414545359613693444801589370312109962693077798729134106182654321256927028470629307962239891537250358561714622612893138241628641911843127937258648736930022408481530626382769677759750365277412875469853289543946734414939447231925271529281833497423247226850259670221839177316112326396775894993430352673913510833809564608166464003848373695265922967277554779205067617245996677073971089656798720783646104129941851843647250107506724444958183297500720063055570311685195149567955970649371068184828830886165667405907919946082955881567708666240861924542162094729848961344638790474125717449453869156383766495528775274688651241384577883701954848035751997287757693123778454330990373867302554013880330880765859490186582397830605662813168353954300896354860139415153795205906066560467551500883518978813045998418693813541867875569760488707662415136729998918222980512092413264076239048183825655411944281757880304484441321966887555508003061422956877648514906570469606862886429128810885023066569473069418429564157200990470723344362747716612961122934399950037366427680069095978557198941439975461510843161089173034074566064609964542721866037051195260643093032428981228276330097745511627390386396273784999757766160842200342159709347096875990610349559868975419104067185297882694537970819463934789947345840499138808493889816070205907491973854469593524145606061663803979807538571620237614434094017425373371439705970355602226161549115685290369488468789027295941356837950156509549346078349900708544939828941865273097165358149323645786253078384162372169567850523409894466412405772581156122972631453999192425053148903590756728033986162356867667378212928052461797873106714200488786584374487687222870081555467727379843600789516103506078732605801975811180622156806320431269899731917829275273126745398240168679015843918741460028374971738179818439148210227471590097855646342778668048449205402225197607022144130598943624788927222305937738262304782218454780862200934911194798193228518909898022418739772005051062049715326797082239465023879161231250049155415019482570716060764177847656407695514235394699146330305428185734366565942001200565463016013895589194907796716531799699938741330886894736261640434940556017755893744667162462531011989058873493271089846504936406696688954823183108369731795003650774761153355812741296350862728119446249736969616266542740447769446632335726270771807463408256514764753435704979039268322506007450386889536718703817695898713597699090148016870769788878746423863724911941109052392802770078088158767487961486885426352902957419880979559211386878916392453790397508579461654819831296788837018809741060140571289159024308011167281375963287424722023746276656700289213681391427711131298895188480085591211911692625148681550980706974559054590357459120805306113439546052431148339494727677978208502163279434874319061622226431502808446735564125495152425590794145654657139642988650824693144386154882583766241338288329490740011623764860599134730755422445248589816613429117408478222557562425835292605244598517044814551596342933712809228783908545513849302772211423444717447795081164116973263006246563087469075375292570612653977887245221941885488319652210800963923197393941785486687101975379521476668022075062146461307048734395407401465086784856481901792401311046860405680365010229261130526866342259080637660726356721006276260730312175015060942084359404225471726856656724625477339669257235481041750565037273008499513994875688397812039563623013128166113533998551421050770428685862112256935813986701058571844670459823893455907559936865592490263068064419512234644044921186697295710205961665468708304104538483981573378600924142831264042415892053118795572881388915616491152454112354140017588019369384597374461332763538673128362490301275532710123266074501091917550059371822060622681872188557322941098328035942664915358756382836476708472268854171859012451265691266756093967427325236476242746784061674356986499083446000355582461450558695612490566716292540058742954118171524694849111510872065382588913439617259171144264648183024037561889852543203706294995114667952713280236571094860112182285169502746545115450330374387442465285300950255475501480009036143287927444872339010652497954918190217173714160361075946886182005227713924040604030064822974183576428636188151477216151730501629337175439153980512889575528990490328952707440477905281263162645191207648239388379470653835904340173748383124369846283016000462007563904342209958234454293907760847440064357195522118523287625383946507489411692021145463840571693021790309626939859027070752705853160708512918754647633001043681528029069817668262624000531934170895174002878086078766946161163071234127013297732340185783599319409812977776293273812054398915934349949365945595168802568003590111873034257367251570802828059108689126168363249194153272836686283501781990517473031491220903458233653780678500022104451588587151299125267545094177036439856276719446983446206239967490947146083362450082928806108539531247078072136444231325975147314237060457519955695591270182237531063926337134777486073774211893461052792876336844012319890814941910736386248148555374610792836325863405490882378616305237019568682734628769014872860587363365334625982581488590226168373711602554461073549398792743663840040582021204683454920752737940599295855135037628315116353595413206937150430806215542949691642700747546898153553090528327185691642438832802027218850434173832279340486879537584761311781183686505662346435029837946983758325187344234118930744657658908452554304132803500168413707127117597391568050350484085640539919379791619092840988475371893697702848689107929910499058885713337840569614859312434486946806532870812894784422621364160201157509225480597071873991148647751984076124031843528330903809773332904257237555688524416371438658002241987303516865991695963110690988272718302182237409717590405804996006865248114989291553139132726524717931032141713196579456045862280074129730184843787745306066195416253291743454909707744478102989307995860780715668482701455601266639885344114997867238027862424103784389334439453106350929214397216516845499569235974650232145439130118907884539853668341647890302508084463201058785435263081125308233554476274472816066288499613951541914973202339890662907034150371286854850597845379365953147414772557865156166087045674254311877533415272216135082297470748449553811270771278553397602897889281208312623368688934720016040976955257190724983477099354772518974959215332995858977533271306879300609150454719349598346448736361984595804349693857638639694796386176263689806976909116699310260658698938850352949630235437242302183402052548362560339094532269740297591881742466267673389331337429763522140947531983744204359595731553809240318573865433195507675050534188681846907480438330743099516508997291615733288348255615349238396476457121622887424836628269827138721877014607500858795361402371111385216453253233131759667545679948856896080777095910023493723091135603637387106218266214123256395399148833429420636786136982941179092542675144284876467796360189469585718107315099175713152421312458714691011263924606846328699047572431556351166613094314408112190469318810014159824197280178993867467818030381659468094441458009678194470028709028383857228004016604684956268083464069552389019728189473826654561922210752313560081087881840735891386871975541695733347630429719784154673873119955064062077575549398402068862332197704695881158877398025392525231734370003698368264136347239879928815296207781400024856245045000663148042159196864209145458500002184009912581301463517954070471095415331264465693357293105236900497475661802203699195401138175239386330851241290728863484807582073035019798236380128246146789819987779266589597271687705133995441715922369217634713359333316438920413338027849396058785335794308154197237730281840493648865709765149443081653155894494932552314718006822852179300988553173756256657904592216765984758157074781144206421012170584691432924625631952021037108982638062895911551252256097084906795761129781376868608296440127193380665126964329201557963725595389587006965803230506795004252067153835747423960309278837870129096974636163132107407093562768375568793133784954374253491782439661441191111923947080898125413478591176777874037213708391420364313588703494777022946829328066596471492420148403985370687163359815019558331763823482216830825703375347795001182604509794699967647922895824851367409390049610751601596297865325192401418188884438038090942089606799632354789016589845507904089982998277594357014048606684816410051636571317245889960974273391393573096768085634192064483995819877603128635088862235372249229992804549964967036997409309194347044480337145191029329289713156624481445191030442260633229507908714958815027458172915782906899202443981371496767363608369648394188953232419194980896940843969189499121936214608592799943797774563624582216587654017922402557908701896920433894237985599160325550628249365170170761111094276850383523160164592860359012726761525464018745788788727813697746918089695425250973425979678096571788253817442144824932665802913113306066547518295285933787797807381463687635646682975042444550367448213940612877157374680756513262157848418531895694736204624156065699867643406018064898596759907517550799489800466334417138644778039929265420645982470953180464148646644065398847017647108786191513123035206800027153172295124808967940098528185700181854733821818076686765163798639659906432644382349819223584314871892755976147330045610386879835284282966808413940406416436434440777049179607972124607248797024587274989898178033372891067987131887518922262440500374215271605517524207026229244218711365910369243066430345368172405987669823559388636789956362391513626922563680543138834350551541394076875737643119974790879082777462224354120725050230555005072514285581677893181961402353991650029028415356538396494481117934981105087059177054095343424628732321803767980566073364626525989178964188995000778450322301374888323800834303841119945709306868810086707709745769951606198662060347936501033270559632854357952980216564577199034203179569266896087236911403378514261672829697060967401469265669786539452624774009435123010591625046388447204077132602067586337626807101319419524701894142095342912165574124742715762444035368088978527749461057499229424449500321996097065738146295634532993683075906817434433367072204393669228921431678835712602264944362676346313624788599712850253564623511281511182517328598419951766232074239594182422185424697360561593886815858182784642441553334259489390460848691287108126228612532288736716198412564958575551994104023769628817579002320813361522123999045625247378343984233126921788979960742898194086098295524349389693028371944069541677384691471255839533408604494846504647691196536533908747546377478184242562593720353487012174085944397850220179964968293727589469236112634784997449794068090284977604985380041540374230852735844836141708088858966775511973650549602313392062688674282682174367448960462809618472796955234140556091165968191201740926235957184516476764033024620053582226529095167363437325040015024865236977410272871394116273105063075255114678992843394033734603489935657642689359084508267036723075994780820950563784980692275055544510675781794777402743812490493747110005572969542717760684358677167039800846872979344364228466217788384804026256012008018806197387315763493747149765075855046726043300042305499944981267354329245583830943563447685586360543659921459028417737254163609822900899500248809282140520377620642537300597393501145259778380106119396571392799693049426548148955320044768418007545316690660066280705809185816875700676107250915738622904799557181767385502174765146874404951886668675755302129732295907826363054996433504062204720855497056304964670172273793068487228853615563625445331353554237220937599346714275549115486062687258111067840586455764675893102092105917113923059297830477237793968662257949484600570551322238997611073770843215522602367023847492392514343994791561311242737742890748514677803753228515813754501898880748343945939536816832250697777350082198490548078952071223821234702779957669863111532300361123632692563693930239082081642448169002052280716726986194962200702850522285226804290758508550539324503448970145675791229501876048827087585842863402055958527951279268840249820229557671121396489716325783748309234389019177971007454977066591224547670271943210848155865546349656662557531088420687186247491909896162655831792406733304423162597510532298352836288908747808428554528473591883862199298377718702015341108342330175146116916217520763142232347961341341861958724596002785286189521492180745976256039091842185723039629410273116660339735052750987679407775421097092449854745425728080057104337665838165149445836103963014274347106965609498660835039312532795973051299538593493841777236007080818720263019705198057217507980025165342329622125213934381015960313506345927190111806609643576763211805005662629342158380822672676351146431344038156154452637726037625305845253126468859118562638691162308676424865286282646132751817250541799838802799646233871747667972896585386350064414910374789853203960522173552327964080781275128079712462097986418169529504894830998779520145169742168273457850131121094258804205500171960694845173640926953846016136193436647406248561481307717509259292574434285325728415933195935301497236224425975432667322698725096200951750910965922834129144206646281784626383033554191057259827404355816597866081424427115858837064468083302446206259397470294468091802286479389659910910230454075798056655675238917429296272204510697518780815779761310625635858867248174212596293977733524652270649278153950161953928608248924590248137449867814197557123413300251812941482818156210415550563201325492517463014938040568558600254239951506036118447469648489436627292189987816482484140168902431037252737728370083201115224458894046341442173576539036529727697753220155136394339040605137891956347620428673670428597565138554338362581954061942723884240159215880745805419256774136253994911403628652107451469285366356008059799601608136409777273336393287626913492533750461832523969771336584972367241188954243737840777443682973263582400166789261256701697955857225274598261803258386540878320222704064183217705461833429646116666997242971600853157018809647292219680955340676046745258760885603831945765570186459540324054220671069377884037934326657297398900655244906764901415180867830899380705042932283469818174048649084899823891668292218731395238880311786513722087578334585883658327975644678885524030474356528624413912658859956645441453767971392835377813468359593727014230433368196016746974604237178626523895682023663381555896181490713412504952969019318938272173731218888400294340532380661218469242632054119530755787845822084567406462673021606086168148161085112162780721141153637200209800252202920273876837596786634373202044455261819862587320092019034122057388583080864750800336060288801140690813692400722525402041759934685970518084176363866215745917075457828517451132108240177420973986412556806578964775797819882325016233218724454973040521556585543747575238180610254511771430577852629609018607419527189738525464193944341428713401191301949839086216581018655735001015049119855909259451328166082900210698053793188568388446916664051056322868183367998388438166214856439897680764420811189031827298798524673801140785241682279970429611566385505577191374811549787877730423899472877126948280550761946795888436871685000286483724679786127533172151820074589569855602810166395564715611431387722329247984649958495367492812922274504471538729177284335253911121060027552367412961825096335452704384271634864943241679708861350953990746584737775398507718440223677887692328477058619692472341287453599516354055786939469621025304307310067182953584619566688847201768836098402370957296494300118144670805611188551532367930357006827317826467541038933007633051667789284456227677461410586893882972085191427201906907745764000721611456567230018854460777386666531608226494819626412300952093468217368091709279818248216739963471361725945451833566622613425440135639145230952770672558118662996729781944420367444917939266685212512335916096675500034708733619868596213235788164342849961711178712613365458729268336247933160523116367553049117991345347924992876950413246945471439106915326802976827050390762292927447457028504844007618870250707526724887683763630073542515670163242553275748478467941496248089146572204191713063313197144033016453703471092115349862408892411946114027166378390201743148979610618689732088809728165702774014490400932660118034292697298631956320526446680896510403135666448927571158887307189972628114834693878907184260748604816049249586962261620828987245869716948864605813564231304850432246815044875764119324879237045127805620390820304799527847510225764398201463834916712881449616914722994328156914275476962278144523902477173905763322250520185164845250564934174140741185463543124634512039952433913340707959965218728650927509191685222678394869280359325427732540374080687400166541987414605877713286300824923944056564534944720843792622432984436366046191178052363528532359585260688955845781935974091286676370878516064405135890751568271670045143756458024209891705074133088766392083090751243543414188886423739751494301711576714199736106706578403416189150527738490011948282262543573955729817327599174783347822859714229601476878553971452985476705131794269974401844011097036215770371655174054290421368142382982183470294926610069337788055365287134367995235294178469717103012715775672950405956137404974019920988645014367560560355331258779246772314629853328555563233465212128179899617363314940590532116384456898222420855167135636525352638821381630126375696636584959340093843808367183474769420005636692885895382185471789255195614421837470405029655604131381920914306882450070425843959748845130629134912926835595107927178452669772685327935808618349757267115610517129878484915392127880323667546773213625924665404309504342475599065163046072888655870713471521358496256877069577049313406656621846405322525799442901969403270062356120625515610240530343399621036450648119188917655005686365676848973570548465489469901131833185307236035869579894982540617292946017415625454432802734265509832010169899392721590388943475875038965120203411436757419387320900583882560956104756515814705339017314887753112180388078543033227106268814381605033365012087592767444271804545347013754630029306399560306276577023791677030249286429557114222663091876974891371751589443477036806697954277795784606204749804870964778892665056855366315056440833054288607629318803993220669152273710960082563922829489402961033632713190644300470039267930275067066892850786318954265949339267367194777422918183805602711055496738531683328786799407683366399226760037517225005761492561306957213980222691114748742048271861807106989380018436030438010129748954565356842027867969086232105530009006544254251166902274873747535125179551444620026604312456915307362652851166229409939758886198456536197664536711625345751786528900803332147100193791195962264968766293674806851691448290210791487569071183495238066833993307861402843773927091151725586266287820014258243142213676349873622115291658120557659029348956968202629714546859832135216578145604534999205554596193993923285178970925317079973727215675976028775190007989297268221148625587950727603750759957523571741561867059122115407938391790795272244491908365339862608845805773969747946962587680404843834517422808856744594475602342565461826375221086516925813987749273840256275467675946945591942906518965633993956477521814266535993959849790314571121197750595116930960972072799005519535496064359304001519766715789610966760193016554014700966806165774825418785677896754825145106586307396405969043987086322802755587947054263204580127940521735241765305925620603399025823884942404651526994173151370414422632227514763390496764056249605022173907770413170474893605928634377555173434730377638374789543745268515326632547541288352926015859511992723245821062003360081307292287361517659778126841465907900094290068709266446633101214867089731453508341308538818940977621991588088572952316669259069673665254536968667310617656264175514829475759001492474499425147309502039056218124628540274241199747930177757725913174334761370575506149970367557030510596911398946454920759681834223684070519226602133914962166959450549811275890243042173234367950973965311563665312925998711815780856299703848091310028354190623894471018185979687277514244336948385859828048335212755024797387057094739204997452397839323575893576465312134896151986127676666345791587756592200383873752813184127685204151569659142236235030602103212913092897546363370299331256925410879705019359187924303001027959555308787442352174741566034012155143572104277690226841401047420063408697177226369740898635823569795836898184002761415434152583344225143125854625123145547512008981796978611467842855819608138021684760678731816946145986250696842215969401654154035519556415651413846223184270881751169215758380156139242848196542373712169151355532512251689991907673591922203335941885540819497635576360572663735113638095637817555583497764712646496394841304693127542841829700682320946219319939932268551215025114693503365208002723353980851945236269537423622167818912830910107062789857216441504743139904388707265767713677705578175325098846523903635992499442112787052254121542155573993651662904676300000429195030200484199872126637328589633740633811358010907663196874120725294879187471006564879788885637062918431286065625616424875668216786480852366771868442916839350927158529581249515480806971551687950843027913968346839709581553473813976707742999744830198065958304815604847511209245655287355204617628875481339463579970162445429402266896578359870196104068528897055715722663556895889322137353738958814957619068063959076474236418267358918148383259217492799970256951794542316392681539237467990265976505351429142550336422989709223982243481089882561951189807589382393731313831288175932757511693156013966486815650094002834800086567116690718803783612776192044136481459677060677780096550866074422922677466208987816645324496753352575125136440846200029940891783887738160869996858212836520894726910282809478777407952334013321827859000203738409466392346143045064562267492317233134716884654191830184609593443705874065146502561327293679196823516042740969832334457340873186369565036090132663727561121249904241749558984420670453567162941413881521118943338572737777200303463503939997707918735933498848950729078766126410382823662571418926090041060620802162503933900400426257902981697339677201589076023478296825098993813796125350151580867222941475251498770345215872904568487447981598988994063422689871223316191592785197296253659500488509260372514979391460644963170126325505482871884906413451303732415478734230254270416618199870318455222487811341537906912734484477909927658517908069269012501404142150924037592568482769422017492584820055647211269733497228606615552853098393953795443599890538694025853252438098169945796373042819154831987320536227328108937318847911792712795699249983130711690593486535930459768241097836632921919599829140680900629029297509472363139693772924303667723132657981392499850262160968816035278027998927262302537185845362567948424034473160341872898188914480892828739904265212670872866473535135429729423078938331759185705803422798390137942610526293486786022967151830013636106744865034558200709750827650654124408817949551158403828387216547284876420660952996292623997150672661101762834507894117461299473820471709882944478847081464960106772890833027679292012479978600360241334586654251810769049612162600560318072811382443422038203123211809165188297248248421263855637904132408316436629134243770785548473791479507146968457396983453898539142076125367357426421816888790329489766447768089410990246253362455216204749571079310838638299179974710736288218372626783343046289281867012792975989628373022580028302883477357912605598681035135746385741742013159639207201909077216660805180647501860756653983259744851411056686612869935608025135351459126189092196266218812510270135880928957617277171873919695435806505031633380833054072882238561593408979148036733173403125393869257783817964580130717522531581090377069222762582501624705397621214290155633686283920261984403307257577463051721716716391414255124699557610763073257199949801605210749930461512073778450858180721876606593605499748531035152118147153918626174806074256008057813409894194756354275845224189348588108023098825531814020051266387227496344190489434712480009305082312480654417476593929323944360847227693259773629193230567877904317003457457983506223106410979596490431987626909468485318229458169263715010335823431053637094861445937571127080862146104033780646990579199220982669442685344170778915490448184812010699305239772839975181028815866932003884565603112133137518435597431482498445710147168084692256151369439530752141371011248328491622435183245254808805224281687120168959652252903446939674673222193150180888928101809947259813088509031561166879247858904666945569990649594579930951360225097122676390449433339142257387078678366406902544550530449582275486994807109616455632223778872981753443982280532193328058072562526037926671182591626366975178709425189167949126706851592641512890638566070420523605184217559190103652188556291907527937305763805794110019255891486147980873312431214378998334953723691285712803079075022002667369649780534451296594007492626099169276690410781562911092287973769720876437847494182962651262732098465414007716488077199803509979005187348717121665999660498684254248268686622306175100034847412661408642491387178302232226615670752415369820387620557695778181042251429483763690226066545591118872584694613989701939724395304633985443259504337054651389878823998845850014798191578297717316486327298470228621450689699118250439835222140036262079716701847685401868508624375855685013725667498352918656968258540834164519391258363739160131573137408201897001277317771521013193315049158465312599907616954785425213913996826649282855029156372294352938521174682006534677934811604682345866794834994978151386914159993969425386240254060101056348958646014252518572454143488883768718502702334735109378452989080927208933509074506695260105592637968260749149759461448528223225612780473899455789697222580322605662118572974666427462017735937481113440996408133727087299517480964912994831515822710613965622330017376477236760196239448526924257166413951701480512298480479980905068823228638394417204107991589018647154246506704314323424057216199146233062737920356851041489745921163136240206716763225984157553816444162325663426518752027562430405091145634425558787075852701039421219646383540703797251844946588948544752343277588265229534683137439999508061176019725932133931294034031847443889240304655238871217137033233077124370372932182425209519559102590385173291521807552493848716001011565688296033896208866611522098618395299411829857102600966920509042141136655664724533152463009695858694291290957161702315002674620604880964300261349997129795861209872939071881788191968301288544247035478304750540434767897329505063234633757504228175522577236055381119760165448418430054212919397936622183422551762094992835684644041585965505067057709459293391808952973420276968536228170501946989710097456762749622839990882993121831248798085851816850457720790123321142741704005865349121055216303781277221493060782959713629262599714087682843129354512754342722471727606166312593873647777182487592927693027847947925874958714031847063687355378376566535181167147061571727618364487516187042419627857591148532130104826164976638470790394383330780164330368921143248315942406225578552258480325190676546501858575745915176436203435678182477739830681969968095545630931153515106955587874865265760394324227346612891148752071098693697450517756483533093682721356703234288931512008075192617656185130331003951990420552278422193820767181502358412245972783116038006448971725817830934563388731466690437103462036475892025572691496894868513060263745716324724098374084635449474547767356645677621463616853593893025952440677501230198761337180549896568774419688220612627750240166995388060565900784941571368284091006884463861203495123589132005921677545131916933798625485274843994159713539630001208767734017197918099901175130399435073710607196949202538942360033732058224235700283989779384232142053374844786344896340333134242526923392472705403590783185308742355435868107493059850186625450180785543384385962004928661121303022558560125734446898232371009571092078161515064734633292038337621317057081472489207185193827106046023451925343172443420105657631570573860920574333835749423898481639428289476211244130156387037235660479792198268622426213369378593691361905211828803913580112122482554794782837763091056153970641404463690676253868297821420276547015947631083755121599334173380532637785951593255226904031145877218792701701912602485540934130087366035826579929217523721363634143989596660546120515909704264647022648631760554262598274515498466216562410286000423797317093527620891489796763286681637983578098211122498976691290592111908573056858882566327483777730975530889106746274716647013567193383736647404259692285320956710764753044335531154628856247738383228445850160972629404212949448457057939671112264688163617023966053533724909391596390037802890566655227468002902521350845348353794157610123237868811979829263329643660370203702161761511859733826560330277063617687887098148499225344337074222210367911284852210692305352933145061666718009812166732813467893715790522447962063839303817437729337157530658252473358184753868704655601450859153244990470053627460382803527043489843312765222849850524124041930390551265282729481378927325460264635028404578516781162391756996550824214499194478045024814052664178447660940231908117762783628359386183355066861822958126876737802539872482883357385616117028659499005512453230075553435668213398454655312009937736970706313550176434337938030822039929525466169484495642965558594492653434828452334271261681346505658123474229815420419439406712256726152488717892948676723583956766010395320800961616233296676882020464682931072663951443069443874769795267119346021415636227832169955885443340420895884432281686214793887155411955276354907307095542688935737648561253964786127802983841570270386337468763229960456567323485374855907384475921370946256251733959147396654238207546688175348670948374645096920524464952282760691787997202922569165843529754590352718971960858455437748796537771343867475291311201947664399389145191613961970969344559221474512764312895277109595739782401833785690470097340055250985881905767469433341712278060264333199556466558325614924700793054553119013519971533581842132087106672307204605524344959577853209503555759840675371268606552574788081805359444201093602388092307262805804107577452114527858266089411581545329713074454584659656131832873960052776525546714168979906059368635371286627387137681480790198586942023864557754935306375654616080367576237872212477736182743035187470793501250040339959707022639846745037329561325147648703840625898126233740221747467136170833187115233433681109048054522100943549323383531535624854929616894748654302960535176162861017081319829529245918427016260176119633655171832907359256041856237856516268113830012101088149550385016872781166052080113178083694742084344537559172452831609152414909482612175793196091134441700712270565375547076115841243846066304244920348211835525633368355431257369625475341563683371324630591464902491834059256986051252155961704273594122956962197209834661902927381845277934293366165302174523017216371368646060578874739196408264617251463637976852282935760888316864423612631169785942456020428558345266202833066636223989868410767628163739840633952351383810572556182650083081008092006100310834320971960270552776309976646216800989549647582052617787844207145977180092906810479538955686221751733896264925083484212570809400065169575759370172433056943061524443350641633917424360526376771242598040699484198385072432668610589903633332198623649223474947368131067279761271784583350785407607473377164113243368686554430434302653359877526701143425490500576352961433661071480678052776116486697206964453402745946399723525963643236232032661055402756581175260625857978931825844339714705094519174728113521046480135235161099686850336394808428031324650472903856815551957012121423244248050785357613131309989195348580975857448299266248116392786096056634951598514095491339640569004239129393601970615991709808637541344612561354662115588881545361217726463683138730356194198461728854099580286224140921229645870267584054204108096847419581819897619529975445044969181859059492297200376666192867013601820425468500397954491585627109927894082927088158597064660209709322389306616935447648007133720045730901093647456290126995963750408442556757335495886532375117186561634015649960275315733634102106953667482013548082445426138453602776824287825218809773625836066977029594564162474117735308824185251097243366538058445724384662993832548416629746116786426673188557439667649898584936787806918560902413725704055744378913114251197596447919700130054580457557163369583407532254892659878642137773406982155177474259111864217436364558670898059083377107177762938480607178914956718143434879804181092907824358405615688932042063732183403663156104173196504281716970774382815653858950295732337426505611052106407317122354147241780842711935754433480742229303669429985986054820033287888010871368853248030136468633807123345681015531376970698530811029110711824543787997381728941541517177983627549625481770756539633269800552670970691108435496008346192066426686577927881316201370771662399155095466827970468043097017752926982574154194666830331596790362631015169684823937643126477048864047728143565766728005477582633082843860424204369956750992189764079743098409116128617523360084995938241273830926748429720668480890022720988229603939947503978289576455318065259946022599492559766263616751861763078321505626569028455573515212375402042696310435786329008885730704997899975269508387179553980868863604453706174708824588871103422387424948507152280270386970214311195390452513822057103789435044986978941218179728160221880428940152724510220624492643002582884655627903329908873283689097957020835725535046400748200874839983446137830609575404200276931415305373209207799043122409991224459128406910505598829171087128691891459933308468384463657108560667595385193161037672082901064707711822681971010282498564260779749698522780740587060861236337618585871067788055204499068795368105351321681424826658852290464300027439667170370695634461245038003864646135170244194314257004632361079410621756491990886840623323007232803140493497867783271793423926785575738094815427055509913722907702310988118295921558228255335176769757344320009613928262494424493888851824002140804453775221852907173706143979581832283915008522175791898187135967810268223613841170696812655044857617475882307064213391002659676314414632438447406510606674260735584730902149742709424735893615810749330028055699305837139294896260281508148600813620364889160111854254702893578609761415315077617198467387185834552116376415685441657378868825402980109782471219818038620256140767330909134666444873825566309935790229346212861353743156552627018686035641107015893345323146442443781435832033765559344801980387964665046708119892532680232349061645537825342002982811229826472148285216609933954927565535983354550904712700573574138241673598014790262187658124717557583987789733163452905719293637180781435089588016352967224797634841743066427949065221127156301543988221567094995035017230550781419956713796475562299324532251154340003234426106366545297084239443556353166840920134760728193070525723783882472238547345461699611084056938923086245535311360714465366188207964269645864860947687314286809848150638503275722488045775004797436390794310538143094058643919183704816309322034611613905339092230437195805444305161737860955990842939251819883894253041269912831055593193276067671963674766483870456384108355345562368228092349701830741658404629712783958747368886390631401361384231853122673283242488401559739472258025346357482778907234315965276365157578289894734908174044400728259246330610242162801270363405650840245677484277439120967552915196120793621843754325088557828379355217727583410185800933194428855799712539086132624804101214507483054842134777330098261938341096773498963242877415585404700657123013250771497138328897461771266044680892543378571180648852338605380012377449161299772338121318031863889449860259009405799558168725213606377840581158385577692867494521151180240242761797139005158793308935795689185381043104929508010381894066077255003199294802084184274488231300925674691404568627086448012084608521438150736983565008495587657798192584065017987136008268553692397678617138335458577500015111642828165191159905084132554054691476716967653034487524443762952538356666402238841961397818269009532007664440710837405792594179043590212692516012029437271537961720476328076719177751913747340670154813735616573907350015809718433753998643241251531645245227542322831447376714898184119149209926289037287950872840835394859214253453962183192576671465262586558544436985212154959526233857360211784831417990806216992439066432198822963049182778903699775388546510261587433267814364841049807621052425119895614285113023066045196662728047308671588369583133567523896668227497417984264646823850549654690890629791709567270744806633136270805744034421066517316856216169669170380607657703019194586323937851732243902935651711962220134149352853929240500197446962638787112886403882748312016699130965119993629638640643544475162569051171603124532152346267540923100832376395303479629068238911801502644254499042252548114585750561825965359761230604594433037508157205758151606331353862647289082498586994131343570436581872448197093310041868502787225630790901420879791988996252603816151825558326968830084035670004928413417072342098744021339451843033662212235967497424124271334517459609984122276910805727410798254367379418900816632253617743494369343006326896675353602462325762409847069646184054527047748345912920188259651872355438184397150896473115549919908559534733910570408096369162388873905297360147041199966941424533877644064072292543657171553174635550471202579677970319902576084939840467296395896517755617268291604393610927323032611384594764267463482023239365754143570086897782035228514132123304022603425706085620921772444131831101740842222695160184373386542641430595900106375263824019551111366900079222020721243442829915146404780255873368327505560013048644951999420261111041080920328853985906827895029703455020761179567416842174004006164004340523480891888263282705484831770644683950372520742788116675333514786557924575515809292650201578342175991442011808175263300450820106582052475654038789406970682434374496074753788244328202754109605509495106874999600378213634915882446735627991802259758711202289630614224840919334203556154871068942886201711738863726918967713694657101415038413488828728172877863816138710818194228356709038360234343749451303508125758669000119639029881185497167999353413115688023091023608317355972800613492511002712955435062357406091519944415473536944002843233149935316753318312129886473795928323864627687167038251514637454805121924464548916553675576339703684378187159140300946469800423676405996092152281151415689598424829540277848067522908894366554964839449286514649950412719786192687672361293029562670620833403634994742983992920770245950692497569106428799398202381608248315298468098968169099074011710276210594876935214779590874438179865898765152723968982130811810014030492186841789646368287824781654287574525726610648033533772421962860033905406852928435337768865311436535761252833596488351589999717861853909706158855912997616507079698855900252518918995634415127665631848861633304027614265175310431177778761429424836030199421522653667367262802329549633455252554237137455240805385300622352684094939084483896602190496590650009746918092633728887854236445470290986541298303149871133662303990308259696482742076688439897471338657462138763722135811213761272094669137093301845020052250733160246660815920363689751244301782307005770850160905399637445161780598357293378652359659067593179788996502542465836693880367569718988726276187630654009261628367029489075193167249185798935139050855127742884780633565733796794218601646782604764296686696756519678814770766341814771569358809776123495550423736448514002865189706751265438280886169194006250369504661036725773861742463233143284712199756853420471118553625748436595925216802755715897888201459597088516720876940464837710126157931180757917586284183552444792610061920220558649487514704845919074323933979634607746989760617602734721798791157669262187220218435882995578977670622933966610829665147994537685517552911989743519006486991062280382488227418633148330077988341309747128992967852793131412543341984743020254351287964026571370494067740498533390666142761039115130189367800370757181308296502118704077654404733780716375791619039049949533184848661159988316722457319197915389123481692474088082530274718086784646164139294470188781383651616106206740168137329470771967675030534899155920048472254378145692476691645676623575563047940741397097863001172439442188456242758027658537383498803061528824750423298358814683642578687412606841190662659920590913641416490071027766298950080468911586872261577370606111496955357970194335970607749945459186148522783276915847827217929725108108553584443503504471513267568810287174963640388394635117194456121749434308022049637400424417232161152200563062377600880092242045531931996382120270377087413249758293872473750662061264595825119961790082055206533725682642056342828811030420464589825143399621794907062238133273138437971455301778728423506360694049057668386585265168386431137361180012013938926083877950396423408301774808292792965025569700311467006748733716682248077465347882914377123381344237561120922654241320970918531995420300429361247233069805986569620672835893054729224595940891747396531883113796479283222644459805613032796774184809679387627880216953853830003477827953614938060885868150248775264999384553512890059986915068201191833986873885253480952412566613024820434273193591462479722034456812680604685512636877130561965017277160713710505398125975507063564031913505250374310587356116331367190655394148007940109547207887792264236236714130377695208874940798693795466658918443256770183872785967953846809823714842046856634264245610905542406960719171473791807963271840875491259807405458013563720784767698487933746306752688100215143591004496823397338068873461497565686333874667760581018800312919171940726174516221130420366459334938719192840402415700198539550239771185476599829217553554408205135066233236313555190395443377742748842892739548649445285023197089514419565476445187304443804193268008277835890978005469108182594719196809027098010681014608656477873270068478364883513233216526044971700051106443151648241464687839178771138849285679308231013518791439996442476320349022219295845327364457103218425063007790209400347530691710196382587567039900716001769997953428218467663966645705227677485075809486129793104272925492694028789435610144040139087258288019663078384719113983527327878866293078882005439235032032259036182750585218795916800925495937355183135384647912960538384782315013176122031310836864003352730441579255901552440536995769536817502925911879629492653390088261502587872239125430893495801905101445454464865383880240575183086614334651641513880025872906287460283519864588617887828618381330424215355898434261944781108852550480021812375377036726327057324322850355916301772370957117473508114001820534663518977569602558353910943379201332765051589502590128773123268221691354704496119787706681915887101125653232612455944072509352897561099299625121519382834475975620710895371143120565194441563500348474154241306607507369344415520182776375911589250078946949932061036162892865938521670971772582784183803071939661468316781853551176969795566571119593440603379674345315755932711103393111018437146918004543530233020119554871539789623766977304542492980276778921249989641779951379719045042843215662291805231812681918271393696689788588662946497444810496779383229812166654452480562049548686248686257218219149472207935114696870227788611756250279951885948822517394037031717833241075040307732797172520954160193930072770413242725286627062371083291901903589690612541642022641815226357736125686954900018997640980250585007759306674679482711366020859604325280348517591219782543911034723297403310432945708985182538328928271791506985335994888780424096483164968770813057584556020614424191782085169069859048172303668621076459979290853379186995600312137199305390522559894217510101152735807068255168704875684010509639301291389212862500600287833023686201227528081147724953675659860478432733721881476446386304049400038344393995199682426090534249631688173574798770093416201323187657462360712130565894242706586564529690852597872676853194839369891292149200619451194178103224356897992168121149239965050972836856607084035571717100789895388726529178694170092117634396445230231136777718798206454576590242438655533607716516852737858935903146480694290647060648531429416660267525581243865491601787493153210271481674207090468625761702318621419516508218191491670171305892883717371583985595386508832879921729225243124441147146824977518920716123047952071241020632195915666039727115859765464165443228447320097609130559844085039398611393898039646096923534735475315028054175245837438816177100843790662233332986289170498619046719700847666414325097594436416002700074617941876852832320982899963886181416317664146273578902016347323306567413574022940909867078396621496205756110961396697066211054092308996635307436118867092689469340565401664537032987881890076717439222239461172762000285117592522871653758763460908635264495894199160239278982874192232293859298900783661749162741899383316775298324593524785711562069948968707063837230477156985648693579177725360065080407471430111070264291936595594551550034632754446178238798399695963798448495289416834002328861920171808008151799210974200409264216757787122532100874641319744795201134175207431799874383888906730406010815598122706950005155628433267270915684591297282123615470201487147720142801727218783162515277175742075400523002408578802127700176185438576846196845613927919775877891989938056836221089752420172845673467034745173692724524449940105499831078277418273626642703811549471241453067306624042366030769776790679320897603986849394466976996591043719707803932103461841490704202273410901745505093128347006551115579878313239933970786451593710976152715059711975844309553458340796529916521473751106127016916417844894223550740218578050060945796407589820378671243817449555835958111377647952062653888497222556371550417382621447251481925694734685294943559465443704897349849873516145172897789425269925567111284150349245637684727522880723198876313845561338408897750199194430597476005188151678759268219696880487682723212152183982633114965773507497908009840574420883568986112340317288133683616816151956265375672051485252108718214635135559560201044166449891176021854280801961854803154857342822205580975849401278795537085568056792453008644385456812441828592671699056887376503701909702939790135345411406198296534865200966590661916709976486182892535327591303386567278729853311437620836534848513316872887786065562517584159989179239285341500538114791763982658491476730010472005848666776638971469519410407899751704413233406468955275674632714800855267627675017570295784467311319302727828332529287846023729848254704415328169756573717100738285223157887462829692465113500020220566484473829078249750447606996795310905011225218382252310097793696717747128847036088514208497357713309631135599722230532529260688408821506702409460218598089002610001546971451498579400807556112306685178914615416907629632625184407676404979238457453482977645745613373983352885180068779985938042733175667813183702385405594270536109976709581253591139076629162717640576891732426017269060977841017599085989280707466552026349798811520277020309577590683194429927088446930084693179559104066656656936986375349915353307942973947111502617426379168079190977797093199713193088454963751294044428283150701461706277059778178192470011096179817784833363728233703280541442620154931546588323957773891283364147897327667194690072382865041322204803794901068549137357336126010619260046087684328550592892456268164960151056977795442858653892342089911885222922640210769753920331202151735713649116778301089941452786190899174668566814539047192174472789314962695889265151392609763997473010874521020694050874732792320611087735503214510301573927738582026176608950698799220988903563100345953720220571890747320068800039421778218374866403598477683260295347664471027473853772255851258058195344880983662283672460422801235042591680485695994404319416184786399206856316010230518685705605967739703701047878158258899982232380631923265317090882865740466315088199161642871703453027829572962003092981938171536391526078307590703939638840539033653257430777429715918485303144033266533160446012683299272656947049343016700050043346324974191668167803346535335992340126383834206517041768185850025443308423276346526238110172696327314489800607758000811259543574487732933727982646292124413610976439056277790741148781511492254899900183026677371843445245621753399752161080207533278218357221976856471959292606972561364004933463796299652872121244702171660916578152297325779225990449541241534591743244232997065766316050132615390161527818722266244634513122453963775939082778399952428295225478938444377558943660605993913071462112520086960240827174493770734861542257668768821280677553793005101890029312898104794911162468676505524615599466317096290445369308421144603563251333067130637328122388759045098210828093409168396543637755281257308254631985803753282074577394993335624076759986287577455494957771701022476170783799234941002590281346979907862951202289955467223346482837491724852609918626970793831206843711243568984309585084117972443699004853158924177026812974792069864971848319821907913018947147905277934469838084057724053353202419890406567536815155586909679898581371519127195604709831835137028310109999123131727189975994893264648503618678527621412028065884559541252582410518963840105529703576954405618928473850081855423822725791189491463632079368497171453443829230623813306705745258655517710949156067754786282630049898712363251503922321412646217677030383980980088974482467942543346977470255760878693762980974062243852293175219064958903682281719556675760617882724918383110396171892560789498333326169807766296849874821555333429324826185589004547823762701709073600421954956579955031054272215027810522311657750746712893450694281823404991111072975544797646771834399951654013990968647225983287767932219498235330030767081223158377619196682236137809330413771472742740923598278362087335477782376698704788615613579262917437325703191523917190776335970172271606519971288394158120016696987681104718167056026633047063969222821556661845045052594932996679933866624615647564997170320292132700978604667372918474925614951758563161909936175196208528480010565506053205985495584015675929802608264413897793716435717546963787553438259719197252988032974774127213224507720225029931060780731767630036205922532782995271744290099770441865839809271763505323961131105693188823251575047606254513692510099913869607826655881658430146775788346656992645842284201242925107999225869121117274750203087315953161765115392355364278182746909657696928584805609876893448593748306041846962381664090053909081828880834991704962061775523444105969465130876238007098310905155463132009248689503006182836798824189231151154244048586714965835822609435414433508067486206592927721156688190529791907612416882260587668723505695702302847346218881979460485898703965392394627567859584616574271928314018871445463054375205002711050627365552390651945284675106881390024105824404294953663219393470592136796950682721331317092222225578262977362962173571894516201866665416819498268214142088030864446187851854955472901741383471944469915975556831686040362650256331430263719345083982698747599471950041888593764217513185305511953819662191516439508677720439748696356968742985178738821374545389359739887844385494494454463389882409955803619120651986961613874652554476977237667752941152364486347056160572622679435085401337707461058571510729400034989827954942880188945410595808706168044335769186522370265394309923649299090728115541012311071565477523965523352209277183270137565355455841428208372558513943839937968371056133914047289566712633750656313323537075825135450449843179145275271883264786331522270449126816807159800233312031189159527443627284883801143427588404953032124361048376840666480130438558640492660091758862352765983285708436624510593766258991856637647110011445054826887203849674726313384079879327321806088131694150208707037818268828565201568309842308682143070497552772590333758921843066135571541730830330652607576785986570563336201360242669788845388733952234657530485671701419760869511331844013338933356754734777491181036179347143113843043801945016920923289191742367296459253034959275561288238504828970712983904083852961321413787679365633921170674861566948453182223425794624537041445426674920767728455126508819410524279101085414535832968139921894792369451575262748932858120680802256548246276384004862688248579191443826770142388564385098432888620746331860677452180033449306290281239746777474024535177246036336386381802360552764722325267681715185261867657072553465591471677658840397616404064570257597995424503759768227363045202445508154407150017835397460827473799368456138778091967706263136150096880420090055552430879041739535951417677440281437200758990425521795114787602170325508196449191270016614638584322371339574798748767257013707411256160662987541698414875979035694566642370558911222801347898774698470697763789770481575067129615949677989691919889193554191168314117312141711334010468000447937939122419855948777573570654145345525655996934860902538059986674894374165525796840872313365076510771250821637399929896951230635029754275618989431787742191122720488331507990307283779305443485436606819917270030802853264190065034164134531927686028241904408690512409675561276809395418176852299351031817101923416108481569168398173894748921408712957980839249427029987155513016927708930418188566668813200620528904598309494238518618189540558288636427085588951176272772438390959143260160423751949093970071192722070787962906709595608021136741142135601582616550847665458463974147432653519952315131791029087492158345588297738713877111537998713929062387453133046892852458961347373298586954572664711281308057410110198693344409755080402800707231059230901487679070335527763803015486646062338586276585835433089106224573251988956465895271032659429544784979010802727483044616825487560502004807803547763895766503979854662584176731389702562167325204990629253735398273707015455642655082097999432421699103103186579004207939961496161937942722612995083935779926177884810740094039391720224731757217787725512372442642881767374900775412988544801470500898683242320294391260003743489169774053972124311606538765329235665251438450036290624347223101602555133144403211243819631477532828462974570351037656599943353607531194271417085445727980565432131197041174632748851509362194657280389119931393595694791690804655745948879196267025619253974909185332544781100966544541755036438902191846817795573511469064705376027139949877765446924115965694997092211344532486777386255587375886197391841247863652925242162035343644611000779251580576300248018371647713080596518241502638960047506282371184293475449273318180645172699702641654589150642239134495664999225643264887881169031859782323804957256785098805856868261562663365587609535896554706433890420199937419419793646638869426909772757552397905512402196713391329729310676896982304971593363638868669225378256661191773643943709096067634580853860754463673564377513917829420268241079835036122041775618550089168454586422968663090036381316685524158667551483573979661553438019121635862832781093917789102924668759652719070441320960490425935568738986603649201689696550392157584598067949042448399261928006681852828116951696146106101716070464056251166414257306120654320911146863735846020699637772767979544327042016143217067037537904095432041053976791621864628884152732554318581288462858142882270924421314156090896629265540104539006205877413037127797176005485662149508088877734323704183480329518173280088861299488014111366185912339794615195881876092313807381548144729118071154484206216723120007862890941964496552442262905460243388283834673956319576507942879951289310156064923087678604322183780076326990475328252293911903848505775229858948816408506757051156768519634380914347381557992800882947656425679729066369073485032206587319959237199303827969195493166295484939824812520924405341236098740256081932405160905064229386128820166590698916853622022203294754441645112206491632666765837958394295272765507097736124906317321099477663639455934474569396093198137952207840568725869075035012113376795055730577363997029913341573859441718978102694417014078629588667579044943918603708716065429701888587718045762401192535729339945343594876743341082232239970752002090580961969071073930468127876418195555634374547797504067088618228417970200722021785267028346852254735384415423535940689864821895789336661072311217448897911899537030034903637471628894252744094946876283580490849100800277523175703066186854777232943171202708289488113581058533027262722057381269738454818805161481125177849434662054726890043137178055154477596741310732098192130876896269291376275203191854826284515588973019555435329065203396265331692877257806393088625000217727546343920027315290195523862971133181396731968886731377858992374854906797173808782158727378526468058516886053967389299243215613378886754438230663640803570415769881892929620599668920996912121888212246805635145160336472447068848257678585491354631490263409774303925638956906882250625388240401342442789736465243467495587662463789041766613014579340732621464916400493982604910050237335030762884050769465299369651580296124693690320181958882502580191453042773813420526593810116935857817010745620667618881422167505202059341466872291744272576322481116346991912880913819470824091781096547451017923339239987543831999712414960456179648772376968886934461513541743586086586033358772928890598754703638308200955119471456568953490718310928643311167656147084059949239385773229420962408458017363643552454708720106360137359400225193265692309271870742925026739746292394562004154545582675668117235224343856705958273280347860980042315498329015197950578304274460079686563872731774340808074454196995649932176846264238775892285970121283780666803828730749825841320769234094380320507118303720340466653446851537018362359271844491951131830153340546693904065288305548406267182562214690491445246449485283524635772900860266393716458954503028139968562103948948414551667910485525384336135654948203641270676621758536424301854135581957301514091040320647351323208450249380430228299508498908367941093190665910947250181599817764182618235641342204775820824168394774452410912253948363853349944410423582901427454257810147719866502968356214192988753379772869250518965777819341819524782428265693976567642746696563195527899314087155047376775446240520368812348673543371801264914268261913817529848864826734021650031789799219779141773544061943396184426829153966120704144683600586073418462146524648705046856575396559718739161014319968803980624596676665303580549543709326700804075044432785228812206066346129703769139385448221100654929123036915381999385827850257798875778073532873124118032793781241332163979180291491807537480285430654264600604312354523183906829773017429112500029051669854425976472056517505161665961514280992725724921466196526696402595078050085156041131572376899956245468462294621697107597676639265843486320658050327123406633102974589504968537710445976046150529692326305986948697474128515810220109376246261918972263016936539427187592187237116011509257407607498951854845013096443765968322661637817682479680833274059314965311808916378419165010701732471780374601590192568001539362290734576950145696526826669475163942328526182756865463159777377390792191083342416911266247858575410411772456320553645124541706963988199193676090315950636771848655698778905032702276985208739794598698200016674984302985798377116595591361824595395037241439237880749118857494913998208956871706241395991592046845789606197141585890787512874460020903067428656481826929130093125730468207222397654323925402159789425388305174342094999489149505891034676816272339845357571242879924795203575627516889757005312841071682034463004333772568838895584188233209462281217557060300330387602788854612356345704241468409941518844177922047693846715637536573748248738712551905731414412710608675096964128169777302845107970067756336469471243606899020020496375163979299963982114700519202095456108086886985564380739770524058009933761125951460424650532436672212892298820252207074778903452022869421951229216421324364160791726012552207746737627351829692478653493584294461643036931265148026425786987211021715334676716056319953992303665492021183762802430399723567368968960523734851647438774490699044243856623523112324784039472358179304394602145580435301214924344344495479453997329427003764022990262299270183844401570178176863474521854903358056726770937196599501939302292132216386837675906992061853966060883188915298856354117478357770602555542528294308278037214624520657591287266806938420019339058765922361910593053256313614829650597982291716295780881501820282823849649136345508839521164235422889629848444379743915499019347955461713246678753388002655110078114848291230065386081774769875930277161341692087926461200491678199730889613104754753689169404806972390943026862099451007964941171858590512641562455820868791289107132380363851030543149500118801096284702210819249830936758539194384313232076200360568765884913066606350726068692654246058682498496572233590031601368445137169573740470526897424004939873883574770407810588453664292905018738185541119171392981693809905956128102569196124638622487131387690670873238419420368732185888621212975382452612829700196412457208456915522988653240192934332916308570093639209402834185857332346576199112195377941561835105781914052134544551807712584621132761883007877494335651968042133408900159738856901713891060436858970454230665231647956557972207959068075631704032478900322999461411412255400268755724474678025839703270637848980617628864448320508434471453636350381701058012914872368010717264900841584005094046044096001025766411606030528288568098922732601430920328120598976272785690145945315243595907449191389592136723649568589859118920561243257991174250339918465568738687804545550325441069672249312894725661020542911962385441991615460029577994852310162235140230245235480367136377116276962977905183623149884187827291165228993481695646704651438038980694511196173175354317613642713778837299069100958107205386947346460104323431201081299195987334847877001504073682004658580514273879495251670249167568734462128574857725952090634596959745267481777947154073326103404069930892552475019946487657286633037827694801826681511655149747914886121875184632493236748924200427775660689545289823349266405273254645845784893823459586299249488856326480918504351284808106514893585797664604491452385971255582779354854303860503542152703869601152415345542343452163897761783913030835564802800610103731254791333216381087032834717246010450276018347880965262762323403154709748336470703120052377102832615689666623260717170560751211119886289798596455124378875026480853720238200494119206572661301507979225687537687917841383946993776320482118580883033912447774359274245591082617755173919656140608963309098588160190583518047230489510662161293153984592494245334410748519048647066032478134799347355685543299816356864527656172921627649312492614602378732999638476918766767618805684332856191804847441588969671470181982080758768745785718911512000223514349046108479668418459533664082031726464282717827336908565088223885378425397616147706502497658882479106922763775475803976222365033294783131931831950829915780970811961431936145526678975091899540639394992304504366488568140601968961331348485285191434901430866725030039458494084444507910534295112031949867116279220794705132142118084676268878626145926157400933372948190868413583086110965295193849528244630577359972235273456125063759781756023473270931476239965186136676350190971065647804766654625294708755406554834251822906462940355028620896255804163293492327177768125888251470717191799192310133379066881718960389817864896607856771017361979989811694634738786642300610402565056219884343916880648847706710144443573322453765463270487083361255001096577786759744998572617229033710458301942623037984093580719393642536026242789375459212149906420081222000264039338402826204109731973906810083620055924275034532995115237859747336348929160072419871228385769483934461776723529587645216284263582732650963601424701958933919799883196416369284973533451953830860305922710901552338081434422958005042983400901927231102133796050970636939691405604227252126922086547051830163397469520441656979806750398502899183218445815940831929557514809758973241555185499330886721651569145047250060291834516232357002208347895694549120962339902985080286058353835494344013398119837337123547907585454293515316360040519748863265049337265607932057932454567774160138378847072480164010271875380061648063198745606683944797728326854078511347850257733435973979772906023537762840415702702594668961539427820135586629158608303356150255121604226400995224070148251227133475423989922614861290912753338446121588593596472893042624176144860762127253875769526802340206375407023387070214377332834631601310485876334009693562228797812114226247237392622178491071717296942390330358661299318758467209439335271740190390101705798993323935812310703493694433759621108310613714835604519507627348891937183200404320986206330489646610533772131824241957165520917382614209029862910901333138876451495522171474036692503064715334563757615730753904317546592536266685497643911666257038204154670428903255318223392218188240996267806310073087184921495685217926280656167872733647187075330273249383973068389309177051366943977215158129175322061956041141933871555148784828750999038353382052460361286504615642680837373498885405348884847909638984432176518950641876127722832210151027283237360823187739931417489956127230966235772485221164669673444671951235792606281217207731164211476879478259678016656542286112385496486376396035731925092742712717868405629214568419821404018542456996776883013552008796240701926384343615106087739899337337290034270353865488328243832583298399653485942803117741982145359274827415906440265004897362382408468640296770541275036116719544742815616607817645962993854007392061968432287348569273968632560100688726856516174752619847954855968405788059290575909412203932432475607709542881379253668303475315202416686765105430749643916221579933883122427318363180954208601168265651925104407329227411440829939512196938036642399308888132197211469044699162532109831038761495644393205576195510951202089309175410148655072869960473926766493639416994324093306362007883927326423061252309098705880729085570648052846171832430514521756017050723803820450564993296739500183969524307020623755250313616378643005651256502131821981909092828750524926154735579241885705064467823908647352739374876713398935671708916287066822684217897381642634544324341886178757215349458098637670162843162655400408421121057632212912873129919220713401426568946932103175076503574766311429969937160701492893394002332072729032590325298307454711664894688125162803107922876286923219403043491667995077441659339281143616480997635000112644043318907089464484644810090772909135920179268438386784687388323788496343480766771494959583815404192562606659893226575097680346077396962227083298079902752372045494743931402488577183104518426886476759837350759813896331124324155319584779794405307896829043575500669504117975659717758537362046498680587240351503495226313655413082279975315998801573829042456762974938414286669624997998806555062776266773397738837405273822459662185995246971141516035187772783697215024356042051154836622512094114877825606804441588554911778358800990916044881411347632117198896783849063399642320099987457017075787237778373223116748672535101052289799471902184340733101162340109085557375759572662225479647850894187850081919980996009183186129799762750146086085209762471062676089114782209759358730340953189010718936455251988852138452701558683157238345898207174534894350450532327835420427111508650033580597467356566913590105305233335039265027738157445022955629950445145604351380081514830465673769945961574181926575524703775777287051740971042953508835087334524495889352416643493423199327176551791074997825804006945838626427939842725708793466422870531119446915296831160857567271380848554779629788875611729999516053051380228908328959601998515162752685793211671805767811141101837213466162650331927524775703933268152759448559324954639824977120526929812148518327544857934511094045537288610183195485967719743043510838566916902825295133301518750890099376091536343105975322821556797891908013410218135678683246224320087741715910201323354981685810159864540158680641284760394240176366165471101400238466250460413082802695835375921378198014534877524411659495472279645726851937624728262704320165597513792243570627708221408476756860745285094403340157299827139484280171927743024981783121570011746964266956024890599937466540779238498863688132867830182163527369477321839735990693051345355925361234948699368708195714902480904303772629962086429939798953618394091063711072209009952726958194461848917951521544490949038458310848300819978223195574423746104158226394287391610376662290671822759744351632468852291640386613591425043144216270715895100493714651316280781774000841924059382053954231313062413035562002820277498100925697384445465604865972330340788197790934836885269256482195885268571732523485786543248995180134434179153971836950368273127760122012700343337175263579554210737392124642498440000637861152259611540663623436835041015628414816779979189139908180034711069978086336890666583830483760560013370863121066742806094276995886110265723803715720926626177906965144167153952318785792937330693871158391919529534420276909822392147678763333877495546066826096673494117391768151150844509597899894420993159471516133763570110418555575548561293913388887239400030509664234829480942104614280873075574002559177209086452274533440684213597450275223617647875782860785002277050731468261340113857617864173471931265683821324815298010248204156028459943866386477951916891176158793493172840619636330079792900497386810266435726592261437484620459975666476779801095896897136016503901895426614230191463131729188969157457661910178013743262812306598516572686996813937261147039761499241499735808258364719172519606796105194481860890741538121843867174467156059992824903055291617323956511749593282517474463338565399936394942319163349410686685760320900520503227939094102140865753761132336698632565257907617018065254983426283127118431911578082415177510624215499647217168421315578377095689343659336421664362496232481917522224454115351472337534258436547373465823424618127835077112215547788517749205548643832337815106959863027150291461680847016942205394315087966042497580668407731416646982366449357834986741737709329658539859904542223435232696962711473590474428317779086938703628493062146011242086726858858441912782302511163171800563455814965694090738084241401976751138806557318794352271511895057221378085502253243632487793247942640811839067935271315464285761480664159960207881831521032921308911580771231910483293401461984332042475147924975233959307440128891070405482593380888758496097452315186152774509822230683153299080708362196682065614015836449527374245832924589116587590321117517489001696345726164473021515073251400292305369231368828555339769942194724448107341215532725161866318310951689980822949649630994104164832394266034813232548169416217708238232907614970225621816820314700150009594082661694354150718475059892160947165572251531799862684457065653452664707587812924940022916560023999994593970463320031187782708308587802725864804756540506816462201355599882962942516905540948247260014302639759873742097763478025715168079932277344158559287472577423276013313716869414714722366883812033660691079144745531179377192386971411918169707980529375592990582853387654770918668063311292274399573463811024819900736671476944068437482941796179287517009721793766506554168398889161467685942984579312611853945255508665388382334217757576679525347314066915532455125696120128681507527418739423328922626512834265030888123816544098366133182806927722671688167369087151446149247091143586606807909387416448522863457832835443730260646688168143010247776389072760602680055722278033317446401153512344113957283064405998955389189265113608162314877167394155378722133815694934880348291651731980517414640438957789428261835631286485231745444240389109576298557602818462472949628388263609444449440635765972461824390352714350805293077017702914512236056180495432665152716742141640436311695328783595182758119273667112695058988047259845392578252182056802442328046012114584757553121450831572995221964038126318475965426001395524480114766911043473355706606527393656832268246217734594410493578483286268494630620678899397164092987141613456917443607438892725274585548666475125092991535905500322248445746801604838752073208567343112110288922332026331880923369375684430379649933161609847981991913061257251055015080972984705381324314654380452903457028403871227618347637076745062735836189372041162055440298076798045318391602687071029420908890815799980341840428903172896841476834214688877181814504336377258918746455010067392813411616807740806939823239114481496692160783001575202811893037735223835947265264742384100101432498033984773407840508165340424370389514929375903144493354702896798425708288166432221503275178722716100287972078962717022536284134366376136687998114976816268612259772983337048138317620519925792573405701969984095165326832343299176304719338818073863662503204288977882038018502163646363964805910728554453191958226740121550047963942667585159148897864308233692408192941244237009299089241543456115398763138993037512292231628745358815105518248828569892138820227747050146089352147189828095513824419294651451381912062474728251281015007833390720943269843599045433726518990799159559195928653256688928935159523828217456389675985078926054971598624693000247557804696842795078208769118873549581685224295424481116280683356072199821624295740524118663417995444242685211406410629579531487759157173686194060510130774012510279821198638416135713931022709658486024458356761123842829116565691620018025936337674877127104651189007564653677448743689316294030638250433164601527600907094047591312555427374640665881322067152024437544827623832184803049108994603003305008980993116071106201150506375743077310434869690101017949265930549261300987352044200352985397159292302901721663660480515419378170583590432473454377471719604016141273008149330127068514724174685489414436987522141946371201281976873793154615240061106087486626697436496211685205961197509814409563561228913110467751591198854843505215686858973388036216740694312080947944108818062538573464514338248534082463923363364327940849157647135841086563572129700792596725606496510730093302359650963158867056338026106734701898135691211788796792878993414524552551789187893758932801089320607000674502116339989869339769936186254365978683986322284829270101078342999686356480275749710202983651330426867796417912071691003404290408061124168843963894019629872201080506399770719075181705076948098760816176205202414941366384840324414950334870165426266131521907644853584340227492061743484325221618387351203255537504427759809620340084176168087210669798167614946548285049862463170407191503138724607765876601013369137389933489316023082013965619018876737397521323349152729395622732799877175119985921703637895005368059074936083207241833553603451137551251700131141475999188751105359970060957485417227569960982077070319393161107338613060965040307205505777765371962969096738372326292598352289524533753834414009186517351215754591039600852004443726639009491679480192819381124273469788368767774224055722785633837593081061478390897751096236010071942461880658301074252124185291678987360062376403766930179548537062801510204925501915790232850243394296120186127702931406228958685142340165633991835895188021618572811391877365765889623930072400749761674812800888842151139095797992950458712986197306297449463780786043893930890793452880622553245827799450569045475855312155242304126603958655103544988785208188346245119211043895787069666691339249564574073538678823842058266346364023192440835589288340633229188379629699431676689850875318924953393797464416987305422461003044829352768460865796881400317155506561727999746818929871598422276952992691991660325086997947399865914509131081370350276203663647272320872134744965712814264056712064091873791107506534264800617929458295192152436642019371776598943730018254493844250889300547171510483441399916876715570582790981342758147990161763854524269821164816967689066915359461055039064300165688416133215597285123385762315764540251334989041415578746681181452082356131929337821560244477759783763946692155565465614499631231296996255815861420731568878457001725089470089405287236673902947632252421055593806028184201341695479840562964261318785649932519889024664842793864254449200838445690032718304219538310170606798748979008790840409914438100187618443523325665565863320690910616977972935310773175890110124427669517962608101598481061034184908854987878024097884905192719042140031094347829983199023814671549656612622646169805455687392446546132019294210587053173753576068108510709021256684617656456573503934813811861647457056719904475871996982636985042060777102397114162839471703210092828200374189016622326620678751009997655461007831831184553968243881610698440413295025457211386546496842325930103195504778443304644582064385336790293282136066975739870369177028968820728964008618166579123248260667505238957622798894204340741750279675694559168787258813417665490912146394890939578093161538695596703893349243496157769871349976798416593544683821665430329852466575779010474924427119780594253574122632455679852779924401525076830663341232141811647377030480388241246190395986895192720710389980205700377606460376806928172534492970000713735013207403810399105907424463854462192301811506161354043559399740699074367712052175064092914199164132664400292823833943042503497432113033824461158193733444045149014823662886170260861179835358528314414163979140492174556905240198826807674286543249927441411194617853731706597843899715116907236775457816573931787798981046389283953424168184048073516407322417398500142381028619228743209248045066748716330870001755096599990060065888598213112293168217718974582067320202584074387898093405099817009735166748633267638025849827053516371797481446732719240366173236577650896125982892457965490484998490282786500112695198476003942325852539991549493578326303422493926002591165344897878106865597183851315102382619587205403641409589391227493006076181439008717207938175369100832613431138329873083279237942414021919380933505572538035928354083781994156512663065136558034352775643739907059858466747914208872357799398104097131126223591545355118724908780502461450473887781326756536429866658562907952890198846168024255560832406778395557123026300013701441964911620471905614211839599900585741862005023031875054733783638626076861997262390676919335423742952475430243626318636374432399018937563176354093344300493831704881578358741766582703204395295159148441462350464727346362897814238023257556202566415956126622131045796735710107015056465392893934796328196048924031284807323672581663513066510633655998730082462407814773073578115632907768407248070759175191857448576563756406139700866470593335417983377273895570953791597412145699309518289700114070866979498135016804238808648206981851668570025048310419754483630493306185399632448847456989022544501655213330975043540971797050522482434949211801213516367765469967399439985368624358472597246073573833166493391648368480053752700384460756073652925065397403134341359356961943383139120047315952007039907517867870485141296389742905623602589411382992426170677545539661654828804063518861656883917201131261723692722700406143561056990287005149100672871856144796182934832915984650296565640299599383708456622830846477752904699013204465101272814316861761805794961649944082906369257744408294932236428502352961708264845283050150171371537571404968828431878802505183260867251936932237335671880945795638769916944533995315077097505707173148457218203907944795153830737159814783649629784683879883038221463671415846639581160391098678987056408147387967181159436657963702025187023239808112530975393921465233428079128631004714502883026954522896673843463785683942554701400168365031101976287540961026725860069754703232755034166874253884468354443609133493801842277156850260799731654943461774912808650181036638747960852080186289650791702829257084343526759059849548624118616091752264250825729214626470135180496112267695725788391400106457266544755308256477829656311040658275936086834094607542955032189277180199110807876358953729363736762761437692436849477268554721190277476468604514625337913734596192772699003065472938195555873229114708158413916484449544346314870846679730498362539213707138688852062540241353058903338480642530445264320181564286487883229556171099925145505680537657685483494955807658658330920668766773261986264043989746024833175728486527174232072618970091176696966135432176361045655142114028554687310163205444864754800291888680619353587770983007184219416892330748938607406684283715244782869793146024828774749367832446159663835086221963889135524989443241242346617901803955055874113748758443024418699871595474351530463945431858001199083283747618105835075650940689558485144528887890744108224343008641751576262086035439560308373017893009412339657990388682519452907371198074175694170299898919542531912439421274281118330286439170960801284665777203764429011837581837918480682690035129564206007625377951771751939938809314548749820425718483487722688189561091774332190429937240861057209122925832297092536077392646696894772644005389064496137656651342034778705960624657122313414848172638293800289065934675173332974315294285760896177008840325171242848668664449732536144168709700007626464653173362292876451819085701415840882733541572043497776879504298816809771254480253433049726400877478761097598144446252941529237360862398494850155565837382490335198991033374396811853788689252066848229182532424765270667744932459779996184475247216914021622263052092887508635907465231599614950766314936149858197959357903062292148610511026141868836791936658609225186272078718821572674277432548510654803084846804992723316465921908686906010033306789481008019183131210223501342886369252915105989187783044394320501040972659824543463542561815224208752426585779368705059593277810574316824052340429898962473378922556473513833354926823257097701504053627137124171536057659590278178000312050570929928482566361383266741871655020053697864814404486100673278144874858692860856943584667781013583929330004116147311387687846358382131492533303720017935975081798848805472468057498570411476004723173332201940750783804502592181985147302553492940841245489240638694694249583907944229537049136958462451599512551242204219297244323571164529287414125438102390985762143724495771019683706790851058849702770139598385007154003967948549466004715930959920385125877767133312500180458450786925174806710789108123331449802236126594866396412252586197209602595907310138484457945314522797629139502709702366314562247794309690227651877119520058284817579306449138633700520289141208146455718336046228383366276101917665195939301085621018647183982184490644875470498833463416042701047944808468910071700551688513121888518984273855300841696824096611137758454592226807545763976495862782003353607979075994263946764180029663641030052025974832433865348915238695038977054549564546459498935117730225936017904432833237261160068272737416668323468043124691601441019104950456758797549557435204427179872469854465910281376782960817102765005040452034332504862558764002787044225444471652203856473219913948405319524156064418389635971704293108838585550703304570683685548009966479840002607143918157835775439621145366677307734876929492922152084609411272201904196888085881852672444072958490638089502249954610879915909228501712829541555386713656040668586649059762722633283223817942484660997789537471950564526374409463741221941281588272967824845299264050725999995435054748001388753104209024801763839692182664942080712672001533665940703717560972234169347070148046565199960731990745833795228513343718436696002508674843653358811173760314164903748289849799574690167402320945298124009492820300458086687083197676152822330751359039935877352957351126738647274867273572398992222607015183415812793184784264239888629105929939564606951601061087504534929230058540029728449126501943710940024027672762505587119256893620652583241234698757266331633567308712437080189440047712424893233009471869629443526104073540376190969504461519033746442005477543523263503330446675599892982839601107304378469969465812719664161455166051511514197843548767070338996072216819082578065482487050246270018485750183827298069180316189083276704383237764439102602586503389669055425629396448762821204062657244463680483389899825396579667600077271497889159658056989909225260439514608167932544484881209164859389454398639149924905948244964270804301799265393508773138904956431217875534291844402110642711841079896476321629089899727788165731545851044744930371042767043982981409421476928143329030680716244576616554648451494872479271020892234066666926985276530701593986919169881948258366067984622824975773151783026868505233618807348002211525637933944373837178541839519404114870592557374033209740420116578164846977644372785089156360597699718196801949548857718247973136620253838536606729076191200432746789645650961324441494428064270692561381474174359757886555884372554133625036685723271807730378569107301844853995123328544065684026047256252891650168343341897466938643060510287248979777702886983330567086042577004443568618205662726253508908158598211549078849370279713538911661593057551327584583467227119577198310308210102203031326501882380398503084132446157772836290603228655744862294031302925059994007953756604387360554955996342991485073986509280113283183845246659318853612774008214942832459460243269125004712138797967864130331643983631392107877776163534478136992798101718287733784415207128762313902519171435420995233190220576001657118201253049523807311540732372571009034588286667601871305282401306693841783664153795521327724844821707998551137490490753647166610565617452343028050669025131141307507522135603401762993599298251814257009579382750509662658503537055059928550550361994805896124436071859623539176337934299836180813203305241034564587606092286938160632274644968810144068250403597995156415596549520276457922758192795811426982977692916088429765172913323944590755544924085633873961038897471035328442951594462532681693387956084096015916703300277390199614398372383379192746150644869448269276966098101849386716944085669749806457494222464332884800387550633524205354128929434060212061145962322051430527351634322577937355331004085875078271955681564701410613264596882726446957742383040219162748913411472382192029215795675050279277817523293637183396473028128174315322295970870259368383367197163648111223790701956080715047524394245777743261240574254768525919614318667616546863195490466839255926000374727468861097966099767785831674706081888734551858661504243986274530768248434118915543202646755674039799350182495100280447007611046212743068624206733959412348690590599483833760481702780146408370931418625038966427298749073833541859640983731850176175224827430934158334884037436140214414814785337637938868814011297612912192198414068230648374767586691746674419740855514715711001514504806052345502169237928495549206554086699017083032838447323952011702340933494377023862778788398622801955290445392923325175439203390848904097985456521940036121110356133055379378794811253316095408931162731963955646025674661068832685919588441796903051436108670810637211398324282820049212062644963011663462366829721599428835117436568927041878509603056887288312966610452521358797167757904469582520269263322952452077762546158658837296186231404206738962999551617708721659734818729587570303529544767895768263446231139076018828248003840838995229814047105339953192457940954399980060083315756466305561926272126296815103359837140724789418650709174633820992569703635864917351665540769682630025826009359791549139639023375300900414578559820156112241835701880462743287734942479796413958137090717686770957115323686631291709768836565564488269113800760868088289997246995431049096533434845931286444995372750341130215184653438895535350027370820164794252520610533793222462026905068630449341319405896750816609817347588665813279833065179180611919655388729784856702581545875223812499296432135046565430391061892600569246379129411894025827739665279847879734436593997288506297085500941090576131982299525223042467162947770226483074639459451837690177566897240415416882018644646077030193809969941079352600779403469383034271123252134244542231086101862930888834325833954531041214664589075413054933646244299589605389527496600310829153808244978127454490218146415531250955121763716178107006812320171149953397741804474064231047775997169282644120765039940498604670938172790415794336826376385101147852501909967719196839450778874613374096634108485270918227190050441036272047741714512957183211127598868775787847610099329235847177630974336464050683044458513421941076623876272278654451145448675467023449244552936031996895322870540809096368230891648235452813952712504846645360560133834883464625230214260795507655074518952627760560770032029952762853913172366388806460973699381142417498947393608771234005866103278309731196868114016485215572140255309799842962133590647296412955438717723403818882564081194040132237844203260001484331278716455509072282672101035385238641985349978848200958315037734384997973405025015663939457864397885650478899134985788489119535283087397523905936851450945453651238130950878832699651634581039969395168669866053019910334002950991181715888349236019943831331990113151814199851079389848115792999787319025596571004389827234906841188394042066976635840551365282687023887761418509011889570390046505601448574638501482489755249058024865273564469808533286331837924183031314651561607175363463669542410137862264039115903990475579707069385928990584692176344956619277124392106638864385088789022989106852908598963654298233947316344076578850829669162357409071684398833934650454000205616290895424949289004201522029613345022494024703661337077063231000498423826882782020700894206116917971368067506667106960122739161245945995031515663577521429323161322953331776270940719166600361402644797272128884661296897440411345636995914645549855576198986154177501052796916827416954372968480087891193894679617379271698811144005446222607278285695966299179067735736806931670192095183834657407432190572180972973620686944136830001640299913744473551709536409790847405317174124559448822785742124327326410184632599219236038692400922539211410759941850918145576767406469073257189180880705006279338165137657115889078831541087990957309124746649613770313687989617248343703789844879668742750919031666882173521059634620714480694737353349545090090715622964288388274364980513084700810749539271227952310129849669393496508640997543472244447424009776260758135402304386892734526296128997430611170767236109300708519966132748201859568953107750255003683912285099476921719740486607367634455021624678873975496909917114486136722252395473636972331153857147404714669354491537699116910175273035971216556473959147338473279729417573810612718891594555445393975865403450044130786591847618911756120820255811726805090082802582665030956114964570928604417187299270225437868735188136276116246940391823435716667770133771498923736340029996811583651982011284332607697475939340666369109974331138172145873007790384981334253853340484962274966493997340166339253027235684253328295494698495203839814069566542605648847580698766965855672448484427601462189237077657552508561823225363129723520260806510938923378856267077319884261634620016801898604258245654092705727338854496043711735306514149351019402420046779948576377850479171182217699573909455315967677223157838969315727647646321205453974686100716916614193694427408300300693019501848928576485653310721221776830204017239020452203957510323181777733496761209836407391727989668586752922282799487420235205885630089952429237949966928818073875622245918625165278372607475533706529742767098367323197264134238405379145486245401605476167508793969607230960775642342885805399116670816700594788448048093285511803522445012045625213677526956390740104022530984287167182739690191215282837704170053834672261626529821802833757048438283000432234521638814220013453689546486830056894465219407116187727377996452287834000129104847308431220565695071730819821451337576119968690995053736765423536768387823462603368770851733501234561552754852810517929075332744936708198338980350842789274659090675939522524645552178298330719862668874867575902216184138742794989947031652572739126411387426155558649248768920140729117245035302382162356310267068356952961350484489913579450548310911283797571241985496090171564976766945069782771114277274617461160284253927039805924324089566222063081172928154442640444505063623122108996559850218171288737200588587746643479597595173605623949933151414807062381198481580848842982515749927138145111591145203969493273301593108958440941892353695386873779663806948434127793983695360946434007905350593237963862682775012809411262559095863102172362537168810035127668497612032598748969837050662338399602384845784612240574185752474294283227304145576108266295396900416379167556712572852550040964043581443755667731062723983430773554828367005699604060422712888403325884910265501998504858550625873898558135880001610079863988675046840473797167683945029971390920421818992477843456347295062122261372400001567778137397125709107989418914717743003714518968189737851674091506588178009530207390171989158114558506788591347047829633973818884771722440474002839787872038857119855701149708945755893094763078080630587948811941127588553980176610373329675383830222973362281495151123988293135327803417076881930277751437552257975331935971024505247516376328940584396919107983645426535396573225401465789271266406063854991979540531653700864702959774743746610304705809055124771415669213281268596238436896300965168971509364237532230409527978822713140374981030610021958201966929926831384632589125979998562533571084989705656626563884809869310984350842014220288689443467395190257514198397015581128381474848762165656421406959101018104005777898051941110802459820787160162067824076993874736653765472512986462219428424347208233713788623692852175651481660559516124324477451501921908393160614182207470748632897871649985336977392445610328550077756656334879944456863507715279762840935522178490747176364758987505085603608214845240800184479302943429736039604715979579945300473246449060746487479539397178249246014596693274394536486439184232973265052669296800307079405950406458588364813804755363036794316772322011558135736117110518584185003162542792752496135315863586911647683648027143767524724551871000627019414398282910484659800132966543949291697530004350219967825505463597101509030910692021683997846399678056112018824678451819068291957217439860617400463738411280854610776290417283775629194321209477197591273060307052507750083135060668480421569320934767818628818513261920553132222605443349763996630947853511075073689740412587683323917141013203836605804179215777571379932726776163871662444979405799007409511168474687357168690981923206606587918120932055097821161363980901152887749703023877540789923457139215819004172652539165087249741248487389645220127092409134149743096923200921834886047318141734346672868005341746379289986102876666807917544096126442114206754937786242307116576719736256899672979964019010910243863286198542022961843451811956921301308828283515489870946872755841205965413787180904321011289822459314039878160416648267236248987939709032480098087751289962167648665398798457904267774677015305901868966253509299414105756970769817236162223040321248220858253516296771482975940865544823836443921722882494717561871573911312672692119275100623527628706461875060239279250790381484095272820116614904746901866648977610142344658379680885371999669674909659991364425836838665559172710527242451740666696986406576913493237037451996821178565625458679704120098146969948675624856521995338030124045645137282757116579709505536596103493463509545931047984066738714567154463893344927797027632542132447888930227296847037407675108163095746955094993190667006440707135714880990100391962850350660921732575966850579325317443141608486857875986266674211862799924519965094539923772683325257835897027675232622276974282270648232600056886396689201582289950288172589047040375071716477845614087291981517715667660672371657624280826912512388002216486435145473607489673744994698191116303189137686557175189023284311462355105263903477419745340752004401161138198201568504298424590742972832117497248722760377037315683865729650969797534891250233679668739682814534732677469083065308562653356603345156457364401298811906643788506324553168226384057603990832013234308522281785032604472991326189808039838525999307714376412651282934119484444906060161486086297667394611245052362439782292357288465926070751096605215195483481993544535550510909497166010537476558307661684400785529319832189969805383905158860450972373082601799880781934198848298109980463182509536878099489923608169646727559344974087724835772706645776032072130890809051597917770361591711438010290153479882024089096087358566453899841852309931079030543183551142793598767102684757082402526229107027158544278586949147752982340233981567170449989159719576966733735337319182329140266620965892701203554876328434759933075559079598550877429871916918601680005724394940092634516357896476628850549275560447710384433425778663133971818586744089645583000210916486291429169469096999011676808874946151977014713296241159089840526038382754012946231986386569497941769403003882379607428324025241777849981470122608982255307454599379923264355241079729123237457457875789996483718969819850107078340338930089129415404215264263649938737914001273391428168813963015346543930267989869933738181183254948439710915288373936877347289103869052660508405329010559482829677446262570069360048734139724226754919145203083029523745439014361852085500098848086410863753793978080364159638521129077431174981748082677948883527678553602134204168170124686120735914069509102040797484553287379863122910869421671128878530370957507532827005172725266276070790171752914471667030286879981958817241846354827552438695009865989355706712172615681737571772144680529548756164138923669988483145601019206565689362303505477053105126589515403988664110495783232243202590625526736960554147611465219380632372958620407118424234463079848286825785848517501724530320319350214347706461170220458168109947302672189323194815122557206318094676644501537724595767162456276090543401327619264792649796308877926707305643095190855856079445104094002901185357854869048997060555847935683503908167775508579533497617309081829906475837072153002926189011767455475677401393556644670560894831299928820140056725091907017351323305932009089630519957791260906438561576922113434954671236461008502442081787690212383978620556277107456157344483511712683704924675952591765734388056962429561594521026409313056399229775447957478715667002641920847577142908104968469117298177761580097235122277797162664836973605093063142491755992231101790319225006459509280784661213017494385662588928425656392298581738015992079121116678331722898607040544205758990019474030618772465093328374119663423041410707215099509682986658246987643249920276099797495992851442507991570344472142605772003292924758930985256890717739815118462495591684020394546891216086941650706078092332084922240502671965765752761729833135190336300924254284784915303658673995886257030473442928145082610656518149111254316742145875719703774903147061074544062212032650245816554736719939287881773376882521110798185704455586441583747672046906647566629867674212504347492136469070391382454496988441014524758542003366998294383525857239456015247108445041728223438664245710961099127852895085117975806022447184534656408122145610416809032891457368584934302485693539507970832922833616864450173359533755425360515081659024661054794274451695704528565217991682250096174338903097712884879092415515666640255330602175784624393760376745611996102756580446604732402381245679235704738438177205754430299544646070634733793386923118581762707335595322590033758537676382988179375772539903978331101193112243591117191939168165047274985978675361339862691496698223175605767287610477994938127400046073484058587763793811263302945547173819553493212390455869379942510605521743388070806592409151646553758480981444059752368468737770401747858388253487103273209168838610283133490928853119793809818678943415973814336730263374431568179644223616826055444295525656698436468721517173830742326091016174755552491590547693507926677443670898776400882108413714522412508861293376306649281192254704979386877300832859925495725789803786035906737714673421810178094495347506542486389951565223226631756873961926131287021186890845120616500029358630826452196747396836477758611473706577600131434024761243486784875618339549533459650331215261765681503714716998990026940627719849287619988834158952796874180727966710953166233801211171296907378527705253361379464965365863030306947421456232083368713056728717301431193708572844964216862991136449632843023477552366812303982453800873974659705656777654251443396868772142955918584333829252951934425582216248094394058849693982887929086365986216629764325938916965948912746578110747955990021399280676874131756531110563788573141290118262640762512846795376416386821765483360656825422311747646252402088572423923621728622213400348015393572381555870309066462478090676971661831363115417709710414660643981609373257247085287791088495464046278388037389138544531156898136715113247437093645243015985066323865480973153378502015448027870943466463219040008368612594527550286997117879964907825910316638392778559714603815252001763449778949979509292502474594003456057087427205956093754372810971371751653467782708706410639954549079040980543779221159160207838123760986850745248090922489029317934815819433211631074962531909487206057468418282364275216985848797737797617999729334834295650562147098318502147067229818196312076139153195317107940075292307332515235229838093304953421138503331476108497913736040783150810569158127749554715180771413337043224774492779184102262709227526698742624711715962930121232306845948981486778879985995596188639008791999301961170540744737236626479736842791075658474525785061408824243112665903873148529076617822951969877011851166009453125368031004951201758402876331546117505559470183478831381233950878209986160665800494155785258865306557235476185551450002871011765226158221347624887325552990226084057234195786735480011866626173622694318580803820101417106292284617826057142442716323256311732021508944183199009811461505383580498059707380844167641663642290054923428282721621998954314516267804099466682401301062707445824744778124906672201344502873322774147785765549433033784365461232328371139914794449316215694672203401327777081995042143380560707847717422756265654269998137100419240386226788373924339468484485032175884001727555566178635589656122699075039374403953384775901360526848841038191359896454258759243725215149187827347306379245307458924758885339772209550575240201151932423665978499225784415409770547821703991292530736857434150497853029013497354631090825333960858697998519820312027579385709180374142720550715403613053889227846664183615983569258995940118327036959433915859269444471626750492536835669029911448966267433975620205598452021025189759527187851724903696623683019409575208372934751486604363911639487816955045660930957263025775536132706572042713611127734910158722603789922379679873540565061360690127271768702101784709330595575205554955558257672776152393893064894083740602681595394052385505419777215768392661655814694810069606857556926841521247743005294285111403491403342549788921567982984035893991821967293760231826739105890213334989005436512617258499967307390412484573990582090013251799731701683114439305821131620332734029282903010299391529626887612665497313512293142666535626819997521315091251661737531506381460432443615696543689020281414909790699884408972441489876380013664662583127474742342484129162519909252348650221973730296672548563598854856820248992958865458904906166323016151723750550278514799491436245187780454214929023171399587829303252571001589233659933404822313215837688735161109385213108906336383347695003060803524136031861129444663413400408442586341364017185195323015356927713004510166801692613947402808099947800715599522772267877100344496302192777448736264943436630490803896529359196772091434043347740017573090144799790667590794868135504093517284884022872679573166932834298242060256108974193195241778106861177149493118365766018960204765013244562989929313553240486003532864963056685240960681320658420013190309628480033026479694190181058140160501477436080591127140996887766140974760329790795014250294963440705067358697430663446593228566593230222593414104682567582052315412698648245003168399909102840541681984449614801978143790391892506485063250187993605112956286862791686215337642187550608366292839865372250334100026105252783371065158071266558946937126953807980981381257263462124908679851892397095343219724040469500049651068328638807943416115996256074759363988837361343050207561252577382436853747855283780889597264969137813402182258718133512903597888001737942104036021578574998179617172986029642759946764429727307271447870698240843725432698114819206396780912823997755913572257897789996504364483963245215677353194894790456424788965639544905149091669948043114464984374663076613012465186171218108214631106756767861050731020522333598068727111488848952333034186845501446400738387576836595978271314764123344914262266071192027239533813104631909168419096792761113903054775251469557483982554699683389076717432762698328895079577705810455222375807195612901111586734151791415639428817053699665164379358218844659602691441299614779063827394402205704959334535153076594652087548504162396086541205209288573889191328138360717025832568279818190821339830148345050610379198208995449324982426113238269542764935360263852365409268503233662136608565492761342484116850858833672742605708770991885226908794474644109809043182613216236713559438859868010778079973014064077713536949704081580609823726959514530557766789880630890375890949735325911651009671893543666785591275158809616606842365015715359335826557503351735917569651535643172425719463454715053976977970471913931866186855328610262627348658695419367499391710560987670840816656985456303418481827531058514139287251893632804627281420689152987509712554211467234809681406534717737518488884922510332814595862602390960892459281596093001983505978108817474974160944884066847619987750653403847063977197306718915319454630891461147274523940869584544464345693929565561341685241897346736024756803151948873839297895224195799018883866080619432867102262896151896489479877627897223404267212797586101547726005861224185358940259076262733136695938595080652971937559565854653031494739165226124446106073161516651711307309937644590901765617960510546366240169643671475310457543753503798192686067962314893385699469052743757078048329040765006811094511496176709366833988182435668010467564019497751333825994915084782937545762435617892227389340886812787432532807852487990536986266387101495766190004805748864536679319005812937167443615641588058708343239476106854549828800597941254293954500175483143540757583183671519504324519417399514273390338062066408990991568527294379347128925548300116880819517680023755901671805415595346751792725843277197061176999013828620175039858726928809668133117028242212959109626689559682878628380197652105219641505864775123087159331646325756983033416353833241345803943946946454298829847154578386907819452286164868777192463945620712405930283140335553789103956500975195864783372402322771649519768753023311293580048179727174784175047148933164059608808924767252385320672928682032133491419153598087028296687562654270627238833697307224910042639912418562409894876605862069701369915829913453226590020468259356460922437338467925646062282886143489564074704878939279221966267372238705217203516814928453080410287270053146730405516589132242261992445265548772268322356255861878952568023245979841472212245447591169861502709717703364119179889692185887949600614069763831947605314342891812915333387481213795436673326133671793590074107184777401401003614188354980699562435972428733856670835372488032862694776076337899061660803119249257470145133452522035158227548171447837047174898550018008535917761766110891883166903394443811544174120335789377555068403663300667572368830066922549331405712037020387399509335950648257622969725248925875440099595400511136626591978851599169689587727328276756066945074438891255822789313574084725458465105740050264088646967419883469075491322140962199484191242787535211901522691102127088063125420318313473198510247107721760556194637356505176659830927848690134374145098205381367469005657977976347741765603543824560639685671630024663707319599394504829454712362860662569503017983735583200703401542395732330100752180671850365324951042756920514110834664107315322425451139634681737693979732340359135637540690440604795034943772217259620764048460125062643314449835061703214415098664944144749498965664237585177182794173596616539035290593469844584284802773847837438231051080826164935091769980574438665790713455154165075418895192416347871098881884666314993651013922390605290175586093487786758411148870794555518256965133208366610589029281220325557089949702200077046324660631618187761914246551154056458731762465908146444597131337834163544990548349696938186940391844374547013882776838488607965116031356478762625892789323032484101895701148246336202649594211553844216610847267134050049129077180084094983538867284182162661419422418773180260958217875399274492954125729747076584964366525573193366600831103362641353607209237617584318309983497795314532423392327580874998131178378184548083206994550923789229426749310200894911192647420334590556843038634624269170819836894660816642560649941912068164560204924142112635752158345967939736483413889648982171678137559924150307391662257134008024194842661810589646474714289187178756522230729219640689733387202445567658094129645668495606548901968147929838090667998627273097889727471250325755273454075527902289024628827854550143458022963790152216793085522127770857441921230517978249118772135088434777181941345912200466519248793104432759895104430838979838047202929443946391944693521971864744056797641129949664246042004020321119106753108601773962175018120848266206868657158346050063926306282610371673183823386455310703137631547464178289617717245108945500764440368305337349217790144589805958286845684076666268363693426419338384488927474518557909983791630290339910571007492864638575607971682285493735307225086517550099474519090481524317090348109661785175487009315252377750941135392180513829809082335751799895231329699087221491160089149303856386772067491537555621339433937960677688735018603104151503133027899204696345786171829832343981111080092090993573064851547029501818703160179890200217635718853765327575040685789030126581942784107756962438922113839797011205229579473208528943805965796772479708927405562290150640654144976206852612853450927374551209174177775720184809015444040002533995850671375027171009959362988825736646698788143002197892610287384323347124326885708173918965666686875167848936863013040168605176967796077469107185414684482786134661156675991684526774034709930586104751685226955186745038079193184772227262032785916753841379156891607821885113161873318286888739683823270365495453150328251043513715990145921037321029322980213097734523392055691211820153750359919885780572796094751118188175069062029236366485333667300908789756085392880581500865683537441606585671501185051254986547035107916765308238531307860306242969745092335569573051759701462762755151190506947333328028746125871493475587039932122789302752148867018117436614650815413158594621581211438051539255882185824470128826190725416887384089390131126679979645547559778872333395509073044720835072392267537810515798586454943996844031808612316445152068982793465641979992821277105371961976445110978185616548217029729614105025738732189354836550865040555976531820955714831576295148141256435690624468447859768075097351378149332239780472269355171116299854026166865104539764002106587302376694503911803193911196306067544212777798624058230179135563766506115815855568787951272412266442966786007039770781916210860230784810833925887460646584601564703705207979183601616183594213625223983269165211083496270717528431258676004404191006807140617016678902748226320037466483951901234653889809167002576381937830536950431200739854245893682614100825650437222728580629148399436397152863148082652032980374968324286818739452760440032850181892393698021064625205618036057336857421468959975466628560947892616116481108406774406171958359372586082579125086881650242565122757972983652280083136170235385800258257626751556249867709929929443963372371356032663973189224877462861759141319387500984216345998636494159362136172276188150269692872485906470148306124939793032025874439091139908980002436903739232454739123013901563217026690720427739857862022347007825788653067771978533079793748351952560448904117858902422430735043245807586854136519249788674899356168689348609653115506873248435705564799950668659543564410414812972636235870605395182888722551330668492130720470025961328299881039727340602453627195801730315470021938784047208483036718006935180344778385453572366882687767122178646704628932791311140076816034100530148472609118538547306958190234238999967810099930089928267814273895293617383162979464880435848410664354761051920581774991696109027382967640536217288682776683568818516767946034570147510485238598245605749451511544625950877846384145582313052823969412454542529594817062594824116107410361317825951101608422584615052629541416868972025897852494944862256203606231010414678069021436322530581790864878897316195429844993338444126903909161496673148554745555720981732809992363186199895411580720909512613536427375567183313191601302331667079061426620591363536557771438826957729084499604548676177184857559777026994395114375191306378980495920042366636971278500852075455423625925294969275909223762717028495106988489776230461030278975715838966656649603163073339964474538360945684001622371810768833547358542206328903608698491639302329403842455895050392183355217085395018417277981136367436030763141936827719067116749243180889618745673898419268358431913293224282452641049135003947315497710160511043398131630319006011132909474841072856554164255083147093547408079185523683398293569094799512305751000763075229526150887433768043290258676136989940274999243167908744078156577253468079287341894046492356033025842066374120341480162600396536418155420966801357828537126157760437480720801264646407814570576538247314593893331554939295308517104658323099171286923339838850424036351749771892309059325855197261788284224193677432560213642220273520670793791482590187742582971317672809342787303280841825606029873737033084481759425079326156394042529506000816300885262296269346149881089762302167427887178393227350275547859981307984470240443919311871062008193148221786769323374282406653137451069537636801148777688523940904663913156423704362428421577167592144086418947842251209494722897754016466100904860354543773727096333118046428861730426107124401872214845222070455164517961771069596497717665976933589420642259056721323051818376396531526151268397332272203594894433692560291524033056019148917273102485262237306358617880845286533286590785722033861168837857851288239671930751200170975120617756565413821664301211225904000608417880618147313455092910768199457657674535322028066887128579149135143284870110509434963343269686573346337954581109031741677899492176217896356072638319195290409951646091183155779282374819906419615293395625864246654128527258701071413301001975019744262464521970583642663168146894439086255825101860144729381521004479059343861368237719398389594197237858288229852523617290185789385686495826543655091898200511704799111868733534525318026425581036304551566822283224001944446726089343145367242341612919618192232912322744023367883678219055711505322018655344312012710833142920967021891630652824582335490057345422094775152844547981636925322114798668705745640596231771571907471839298499357329794634354426557167524256733343906565556520293654831647941448541470611201733432609285122783376170931218690563480187641782072755806995307850117378186430424459756077916052046489923876187779546899234484959410854922740018052666357336610270831283606311105262853097064161277412569493284126421433082171686517401917432868130605735310954753802082810256982300778273342414896304015491946936416362361464033873509973376524081676381715772754773278716078684566229974125664255010720585485122501282196638481579513803967925288426600951124019364221757095352981249648343129428798659835571432232281516692325612366377087688947301633719357021797475784732456224279194218560442281887659589751053159305328144364300351432449322794881343413478119233050071915838445550493838801047228299724472262731600865443927782871509482510387478886688987569395975721450336809588966417791656059212622077882463517706984908183591285249982736738772355251551245683957290845226000059022431004143533794849106899944874619344056662533396390277948798772316894744861356139201956098141755517748358034509419456446296265006201866459094093421887302298650789039576877832099163214688594772914477405918084519210839251461319567914308475370780335369821570889191101408966722377257295629556216950370470563816284022795750168488713517926317675044327144551922134006304847056226638811604036797137817754986442453909254785414302985507514280218121437392051912016979050492620862168636231968294814131363533126826360430042277058057425350823405659630975082926582174367770888634235133476928630660856114169182109196804882235081030942401574075068029673871453682236734974744377701217169957623030987530057594363727604696912408213906410460032424551725062564653308260918683475447338120955051399233977304563000667625651935903911474022961344078445352901653003018454302352905272464861516116658637178500680927826202616896208497406265258061286026952010840057605515101637869145253879343939160575545691862110834087013516171909493816523513894496337311461493514736127096483323093529902122011237917559042343232402564847156947662771300073466499914831530142433806179660815417869115897173650046617492918417636061650913819681678267005067912066858752993993136205227422595376769012696953419724621974533934226921746138374834059822814878022332874934790621866848593949035102482985423170812126579136998735101845848702858463585901044663069546486678995447658625335305962897441690573768525129730143034423525672701348621701732573903118832199625729446347634900986738733891586196888714711389964810719754712145589092328342695857630691915079483655941100273345229047542081627193044677491376176693613271319616923085665231711725405281413019858039036404413728789608058149129109496822320956143369638474834455519076781988936384735353226775659497258433401181029865863468730026231208803213387533891198242683118707441660507736184071885250823493965668660859237668616203425659276960331338722035278875640797491639177817767183671969296443882104744504056943610183702434544458538835701887254096907027437487791360923556327762255178303674341383386169554670623445644083511229524118706924138014628272333562062316986227667346832940697137764541147946561379247845950568842251561265997735667069236767491359421783545346681713523089932538369133881353691517188709692753103529426607637781043798477821640289780210618768661729867330124368802673355496025384957741646366591429465819930140322827443835549084306913297256101816216198070793668430103595951530696875562442932250673959880239098605488208753346108458622810112311541119553550628917814461394238902522965121150377006373777115505278011818428141300923173627297888191268621430573084499508240575482033273090172097931371638936628927656431943318709130247284796599240887391518196370724334312473400924463573367189613148147306015339354096194269388637560622206545058429217749715321821708681633441643406716597099940928771653458697156594676078485652321460386745600250823307839270489786119385493048055157068917047901699889086327857728880216336020281226603200228465679463331924769782770693551158574870254723202731425463677682316868909240799797506532804123913877828347276062357445781490939329992162372358707180413911697550612154121121224321059608891469272141314124722414609625571082574802433641465030446331264031743790012129280535766676091038943850104243653235391976162991840553296061788226757469195096672425088327769363855228340857600180060519581458719930743496378165613574995827523683054864411399079364706134158760968907557758802811959661076689886707816704368714480682176024354062229700999288977932679286987546974918440722308959248128768886042320811789985559811722795367207320028278157609378427433916885919194967595404125876195682928556710695536661598719287687502391801468227521443598330599040330930360407540069572894988054887597452986698691651042500455604415463846990776483517789350738836438101145648614071148690098851310721037544158930543509498994737913972414527458260028918291399681736416149990427284315148977802985699613127413445237147680100370436013854523938374162579468644443095685067212026281099645896722905152945888450458698727129495685745602819578313434678680789020399645225642705983671470890035412861074363452694577912054468927486372548069987154315386262748920137959581996876772656005671041159244124294525673821942261149762429628161967855032614744854552431714628170344196520504334332781033686286904861598338598886870049335563747303147186404454136373580930305144084434095973423943936667300009103063746474855210355149968074732363684086821392252417944175023798681676578920589161436974994519593628060505815423620497181847784331939522482831795028387439027299330769458095908528098421730902604689794098435051126524465903793870807562974518418696459522842826030727390550575041026144085932754115996269602028114137303612742236405988253028317082239996545045692872829330589150157387720420010974348714575190460356019778754664587477703010640374656598904020810694058083526315515455280981348060024924125469180685740787776882188607486708210095388526809240839603151253859717706686742598588873499577161551813824261921081183560541868677266018840183585345392523934334153276039757881736732743359363996112188453531424403558106140356163182547749909556401067125338082265416115962075403160792752740753528017214743373756981714215822173895711664342257249636453884263508035313837034270332328945038346164583190516830264766585277116167135956613483294872080383744421563839778963390618721394360649431506864009667009925617150272930621048679999490207084510205311142007245005449672756974628414616775295488255667701463874267949970626947410223643932142030231187957772041032584289881191252885457771042173999755923388801823809032488300757359580860484573037582702839583314159902129222477185644261184030077074051327271749080769554231123043670428939670126571005553935661210448482082258321516635070112035156949712740623726666963998156120605494418038054758023494764297996222946403497686115271555236345904305724159917739138068858766937542770256613976389789415082743773043836913672121043340714565078533011268367474956456877516961281174843629848932317607506525438742779884945785872362202023421944298024100528125078965803558671147907096853921332296768906630988721308409932566121133203811386270569230047944118451513358364483019959496367233639999586557521816379109197688231107644335622339142665243760817326601298509150230290860032305676843443894710489884287936304512257450066493429013787774824013969506114067430054257515361058796969877532150468951535905255505582387602942865642531456793652687528440133431699129243183600685515260599411619347639895122743034773650231670523762014035350098033757195569854563680373553975280170098536069219859773432449776562716431869021197697545093743878402912875746849947426439881372189158453279321351192467919311640887209204471650864015865052589925384250485538244131119198366172861683232397018901573335356684371073499086762380406655985574518360933222064311968539980440515453680364419039623159188537225907088029708410606452502567894933757464332992889435280953255808371846522549985665488558188539726297108004776045578772004129786825590092058750147216121956218154148518214906824317050266972672942530156967001089611186120753648187093430706560741398366260948890141086495892440254611082102701141038398131559486998672148198354581745093397489335870469943306149290353194055545114815532074043597243052326457268244463185538207999335223820337369677016400144428964852128233852125622407015725870715458852967887697060093152314425216652975141174520963029662107840080447535486131354918145471426217781150828188551965962887846461311286990260902061780886095955600457905694268248126284569434250474815802211518288517641957905804389267530721014283974511362661494772058697140912791300734875351697484290035899078428573138971581405554808814381253685528693585239528756159535515474418577073967491420242010026673911089423864533952258679260912885166357273669517422179792746309508961873550749377106010742522104501413882890536548936033763554010914984338413008673685631484872019690072966032078336022189412391280620772574456822621751636520217276404240687275223956858782414531739441663901685545857595112309219552702726090714543961278976857143414319176355382208498047360214895442411949879284398744182874017613102360275444016776370507663460434788683531863557631347864187218327595209761784686145833910670023721845505095892387024125758007814589593965449756778737890408467539138092627788897323693369487069752444159249405454134678831466688714197355819280081963234525280539884685026862248930105524126570906841920531458195084607047493246521932984960582117377322106280259374831835956395338900712696588797027047926880652165608071741839336331878356345618300769837466720072281682484841603725632724177043677285275980832260072118996503537346974932339625546723646784041250376448863193163963270113856251080718167493990262904366629682225411674568646201974900338933713552139157040011864673595337240347009041209564388339375352572209184767126233632015318115877260196261666011284260867602283252689932611371345101530998790595822990288673413476021920224827748885457020151230704957076614585648785854807818194586207253799702037635172085686992453046338217219612194709896046765102078758855494691798479769521899870341509313859524960267497335595546834807513417721492922456391991192266699178377268122964529675649564050850903741795347995300993768065084986936960048800862825749489852251356688472382091274738394764347639701913868528205110215643272267013970198236281450668728208925999419129536258301612691135961552352447534562419649236437446416058970076522939839342925832081543655626490125252893425314070721840074530821180085170869812749801246329239441184289570786785983622044514261178118197182025714835826083999408780462014767643029792403073302137970792124404310130595217153215013674848555820535959938505740951277709581597822356960927857697998312396340304699145277458417528162489358468480491857823384291981020824806120031178303522834410699927973141254819812742055726636673510185884375166519294526524836737634001311047209884272990537014688146774746494136480328255161355365763149292252206145596618532235352703118782618023777329439993503190692575162640623393204486381432124743493881268613614331046931202099838711263868935413716904807589161881877495705432249138496179243471898418225711811980672698982602140919378156420700529297603826120600882082898646773952524509849182594639760034111546902642933350158178524051266450644027445795492060733889254293235508666530200247006920416795032083118407522149592004938757508845148631196807681482338380443165280756616868352752695133541156720593610014796063695234224074919752254428379052791918707630413709777274378038966229065682270867850112595481732123393061628450449061692495594227979684478226123971085550787876931430024400603646256752346918819549958011993119624904495639559239520497293016883956079098254602935363519718727280814990700117994289343010434388460639251268262491567281762232528195360787913651454140921752208747589671587214947307305073571023763073363863174889003600301893790232138471314626309859551665737877756140585222109256858976035593817019215226316099558305432678258837568068456418855746585556390865939199639621935154218817156214152245305897982209117780499717380939277116053944644489509593697622252595023638202063476903688163483083801021020851363056738956313724788671928980053884939780570421951406195902717168918899846533608504173056373832009663600939801273058819549806282439370700022568251137966771418334480982592505060730590276917665900523924846678849472240141565646292183817485001344811329962419083792443738845151725524167361982358577479923901888067971321937105933550621163398275554421273882733814423522330159315918374829062658739298139738428979566630991556712793986583748512371730172291648955133683010517038412755445030238710210441895150873028563756918821361911999451704061178691334859472675160166524205318244543237168915176972657637793433605204444503969490001708857940970637513803142278748840791326950474537450191353088319265475822061008571405353192722398493571717896960930597841321582162614581670491719998355496365801405388276631081617601125838542007732999395442498716353337723540188211948923050870280791862492598355951079658182184782297359356528849411051766458777247115477712893058059534937740139834028614826126617590018655120669159956697836310740177318312137799448434583570345360858750487982775345722242744774999537341278622953107589472478442120313412087833108117340261584296483963939676288846489397030148038455811177866518895020890931569208646051693113968890768685385509058082086627384040876519602231914384410264206499053598649461242009209401348878662219268157502375302303719996590287366003111127322574744880492513853132912287259860885738168068246658248173843649711452262482485799809103130373475044928050812493137297224716148190207291972074411732541462893442461351513890417629360981040042561815960773030330614193015173557302364524737088344764476993856067801151995948796876920357395630465372313200244722581443645279965833905427761169642380672186029055590617356303155347666775883759270083151016111090111059240492690535445111173465967904441335990807703921590500466106592771032108359518147541643018026490093274049149494690302688780900253645566186375674835867449715278927685440396305100167105268690396867068799941671114701369319438439776472429362815419084533418635573345852791682849102075737318874069957633342975447329148826276877067949069097886062681956701279717991358721009752142286212865410476316506658314184342977551795172402243205327924968931349607606532338515036317462745692852467563032877848597233445314685023059974021508321872045079106361205928433276375912609601582279736259393530938369946043197264929593729890331874789978497293482693659576998219816874266364775266786119011558668454388787373439197674162763680752184195086057730154296168051480383162446150706246351448939295266208616872321876057824599522031158367741884975813582380297614382774180202998040957193854154090319195040143101146724897749740551440600563860341426766054568394705303401626122823378579776221926019018260850433952719021514960446377660467053822978755291122087035046015984735618829869431798860367305916167072410773087878675863574625326065345755621451041942062716705668949134598320977442497943559576287417017502438383440224159305783808254930299777999454585688036791793456084217413940572610378111899670063429646254323191988836090002289494562934003879932102342261222680959865493139915126032554346334785985813669968017146157197689759778951058643356417531891861173058507677182575873539543836152960074023595953124474438483671952387874767184903917271700618573090294973548109556256863649428651569269729764800102976554192163988622064215430353773049860043510911019741436466718165602981780010850819626668330769522704940240811462344169607657604017753330991260774063806499398709504751880637715511285101081578860204139320003558049760147225058408498301276182281985129382790999345787946069667800052891563296845295588897311900407444796383655287946128723342811261357828628457660267796842904837497978016161278412289070943401359764124423547059236038307695177108111553386935315651017240659621129793866905579153690193275600123593145545853711029060520794072188302703781122214200250900886325212645572629693414605245778278218414914865021623879701823590653199705164280116503182845627444819809884591267743941591045556460391821101511923276620564901711723254311782537259014631111764368678714233556879304707310187578799373448033193199924819394737361864833775203633588273284497987645739246655636731238475274742792528128285301255596963515086974994369222983553536894812773207867258622639680649099886652573115595810367625931696113033144643519166610069933418628220501098839834139278215251198831955783599903377028658115080672528313752849659176215125869668677087229304746794918234880672091803293663421269290117692277873254729996480135406532355166146324597356727540761479939881433723800019479953775174688763433955620770222901259862173072177676017698283829591005972275320584753591748014278153966205881250261204783481608495110509106569080657755953458813180211573059150182452309959932817291326078646842995420248843262615206371777397081194264003458942955130131003935631071915041199045272327050638229785725294319715371623914563536236747835936974861186379359758306067546525903094254589988471681291666556059388326089436754620256735372092969796177338943730749347353177016334009881027430299144505674344875467135459761672544118235558143258586458559237551872180855004335959064609566105775204801221449086561946849761669095179023242557445953985339751251858074239806959790654865218760380117316508072367095404259168850931272962301879187001044819740814842190341736878495367851780878183067134825186270573633826498634892902954487061137837886340712121713229645858105135042644043594892567405067445569185852518175447496843506870573263324527437343148360489212826886717759830232879085387257964813113443458511620049008968150875808063503049535894335438162050282122194584261951827245722661307944019326924231681881890000409846570875134633341254116405110150274777593219403416848037866165182304534854275636371387884996510642721414529783897352962565862306030486436760497158287680524496706949255302123714017752582442328751553287344324918179412113010761347341797303170623950269574707926720664872369988166623600019488622420007147381089063826045694676282636294773401694654647359535352917440825143671041652211481468551322219285512224426557044723106778919827879661962158752346899112430455618953823202372993147846116302487232727387346280926228636631806820498122360457737513319245806596005172753193628990264634568749142456995469941928538513397178618102090809632472455577650849121335705766957400709771668823050046203757295248662761584427734132936504975811503803460972994056892663320177797085897485600946729528608756137102561591438343727172056444067122852267597568837597040721584006324945241651234982786124160550101553192004437771140769494611222465297710959037467574263228775275070386487513102805768538552083512853083749118686474032041177102808741013029691400601064015787889351128867675668378969397624412648719471108218207135182272505293257575563704356809684771648618406520470644482085029492112037245052666992628556695848822778194853047572378139903393825955017301272821783536688375288569405765069005055372710065379221993203673375972090050008094908497272553001117434585843250053442551873213544746816642785989384902019053769363968207535885156469357334406568527952651157882210198772991980019712962002228544776459640710152852134869006665786744670382438090091680152684566511046417040002133802215865656962180902983941009222079116853250354811027496615475325439173483212508599112961466611705318052600105208027564333133807750417578234660943645515061953369788697803787919364790992848864229394589303871160320063551820853089017423955642951027793887721249065614072879999093971919816503385560879354457968699119140991654070613512746590310528315878756515778549948969624719999490367494273208016598906831941459194319667261039638043528702945699716266651097362970530825492302814738422724407142747826655264074011694135655852897560298715985342289319231517082177134337183350639145205098759215286177996683143938722631009993016297095954425025604035205986512884252141672703970589217750553661423595359786549532110019806953685465251158386163328276521061839152063802508599607473611906451024408345919888413644455032415396941301307442356972929975068609188947898377026961321262241103737688669470608585522397461612639945975561566549296307408233578117573303338976466390303148433344429992932015289618894314644844050208847195271305800293669830832813403636004876287921459154318598599804272086038352864897737219835304070678596638181500793158516185776026724379304434026859704367971498768697380683138942092058650127354584163801979103854673391538878111811760395002194787197274996314018524305656423656162502798772061680911342459440156721754120140504275457337452691891863325400213207740148371073232019668096783591760255107730644984597341062117230878301530325387536782607803100507879540002590897495248903663105821460986112618204080634943112299569257932355148956968212504265719165392109833897902649717648492777900761995110207764513891243834955306101054616598999819886320678997019114568875384389485445778838472580927756842489719417880819787304627042049051978148945734072784715639815820196984229174809578078979951535211603731111624727300845592232502897772482895970938777240450423508752556169441381081555240875823864041155672797816411412689555466383263104545250720982440470699894417349956949723792098053599851949116489597430008457005840673408912965772001266053999401397165137261437708577979671425419380773730215050121974749727017444770520084569619761048182225711955605537205258406817412011573505388386073062105689277052485809460379427585071122768806206957565937605583282985807197126882858094979104429241396730719976369104883524871976170303317972498710531044456189483267153486461928970754267442921181311253946657150370378975824822896144953488487155079549966628033657201707638513100852079487188602083855646185206115781429427906978139107346108887185601570153074055989393269061165585392280470564185829274656068225448567826880373695779397259578244724608051016260219394543092284619514975720762354188219998421560898042697343736336271300966880079230880301080914031158861185514810482597269538711316560967852614340800910180808356706986786257734438733466285237457819493342026768345398394316125003042701838110921447745215639622193557090324165379188083580476010443164281240462623263859436982245518075495436211760622381597079386721805706367023651115874353643873974630979120868615288056809150661887970360793893392123578386312302475194219730660099682295136843915513867719688100376710398874426703386283245849304574181663629064274722702551052886911889842711611253896735455764126055475497428807718272207203013593064813098503541637955875649261800866094948797693784453222184530297273305513794977732033647223350714107528548001387265554993609780402757223444260962163843207327481767412633705461159807665388948041122608706318119134594886788830264474161977240038814971957675222543325042152896125717470304586041077243935726512280893337794306166649838684219001172603392466883304988697535225689849714410460453382450798498968440595384597435053817854355548877564177506739637866774975301469593409259741319065619189265661899823195574586462506217242760106304739338030981879838733537465904736512551386035348105973807546538583234463993757163823683832718510309549800777735395442038064289635160633766593119125336786734789302681526217648275443327411590836244165609082900107016057092886578932723635825813856829102249698018777205145980939417842200888265441942152454528624595709806867539256269545644829081870274637902672922798133385136543603902675390155872231402272753774517197179132520030531656057434786015450073321682289993322634067913764193520835889254417124950913524439983020246037905209321346264112348657076934080314251613118300756778290349657163362986281039535921274246296828676206758745071254642587966401258713161025201782650807922779183921918079263117239376560903544149572832290863014829489906937299166764258495582288121571414894083338519084250688300443139333618475879421556928314917771373513645897769705299228608509031655554778964453008878590901278913314130240095146028616673051193545821337740237540570606443130229849440673483291324991416906713597019911136240540173802659404137641231894891334720522858962170473471524699591158263618313075979264459289120793012004188556461839498544282729291705998746968273765443559482272451737254500070694557804831132981034133726570776466070775109630042009241067708450721525577377834757765824954817724777315372825547607886274224783595977822485766504838940549653976238076955716332849044491284427035229132820611660285128417216045597465329402170952977622847014856263684417918158833842148019133548291800561555061109829689269173003109510624258162467781169003184242417864804594180866102188654671940416603962191965536513828194843666085261757836999459083148581340902549424742471448167003525029397655723739031059100487645940273324038448240128018810400138896648801163051488523523726107671792760129861655748769509206638908229151742503473228369966648089648223722112605521929837005693884663405033451750966985637039623851672212033566831681346508434432534794847980940563497268857082849972825178585999268120546994213525155272756469832527307242899130248082357041538187494354745298033974859278843261886825376986276933290248563718713397180578567301455154419513792717094422080795616793592081258378131306797210655970336137579878527516469163534867351106115652591124883173754418630605429123882588891104030868643943550573708140900867444944505241851408588381216725296645473918535892611960983464429204900085321924104087414558004896861434082441781110151714011422686325550685494587857383950997837357350523954832608553157894464469586837323305529478863143568678345386578160991277891128780575395345417173002842440914217711447692991164984466725828950675446105734060051408210379708125879934055908207936764568707924178092577882383025792334166613458053292686385875194454177499185571529285016920417716012605731557548884992538389155672746890879974325512983992785196770542789857667892182215686767185848117685235933463680037827298021557809602216191161765402939857009664355265439786470480513399314102610514294866870668606414085578546881904003345558562097442704126500115572151708012473402035047832787764130510483479791615030789614026953698103984783957540840450489260169642959620252817073309551783812159830650753547119758292657518726103863042699672176101547387163613768406292087592286097753976912343399940660695717161847512828180116331558784642470821538868430306281414043324053157990872290157553999325582803853751129860633923657393273669131071829814651569578582347524887587777996121628624330425442065776303045571942344377080861937454219873079949205938862249235289809143268902612727713457271849060688676127493884776443188097959603605479158335075361644266196801740193273974732644991593913470636311020842306817247136097378894302873268767081400560041358730693274164953650108394404272568935463144004733329899776757572223276929908091966597366497716808320970094308793144342808428968087879146965007191859450153339785727902137371546020536338383062905866187172658848239018363212156673992990218099548084823104146263148192650479412280227979271453229691534640650020896869119484449607426275936766655897733261940833050393366110936884208610542347449245380518451610754952148627245975320475477914764620398447151103672309609836926630023176543022552147289488290386671825875648961892776193361905170697546800721308920878861950816182393581797091126639449903921545564315098371374260524861621195232788526674600856859250829019214831406104457407231602159071934696740474650655919408650078639628074000052940677552957996012730636380271266540611868748578906145593046303422556630150467971999010151017496933540959022031444856101725912967433844996598274635669389842318314697961444502335000034063769315814051073979367704856552267658609817174643461565802871040281313095933672267162323719910919085415281290228110546527354448577145029102029638117659630243946341186111993035496136271611489428960411059269200888283721254540420125274537349036708599369414236872191345952285619055559030753902698467494287234159245227155861592106166549229736446802626141580129893976387185257587090578500406815075884712621511817091783988814006053091113588885214587702271805125798136854677845970732840737230560391190227389317497716403503117654904822387550708012574541853324404266094387991019694722741296660823463692017749599826517412936922005907969410286663520541473659622790005602324666259501496825081960373356693737978659788138961878260228771924676737176023233527685283846268601546916539641824129256728068792467423774877122124474861670879632899208635831594732836811756268094408804456183563197274978844983689912735981911107471964376816711564699603092778137781774920540945226020766774747068934494526085736732384256862993281298705103540117329764084349468380903808657687666679545353917602322795794195005423384880785473726740186287922890471288074255008486817408701582658256376485877372516461564978514133857535658894074817483842564176738666598056042582471055097642139755127847207902348989568627199009644652504304057102885235407587030786999037414550839712512002355886382550356177715945283988934283473698535263305018209745968766906943051816571409906593595178380727807621825418438511537939222043163184654434929703516106924945661950584031095541494931255546154090267365621553515647988278328546074139422286654627968204211363064091112920559610919210349905805092110825083148027513495541439183764917204245847380512269361849101318751277103758244032205997247348330049628075110827056894111847066703744202832702589955463445471240008803969430004123408011299485977874914010494636021754517923056439331526579538090630767426507358914386403063856460446142586249022361256756751814957274034617622554114136480018424904683787969312739733888451682072256444076544379357961024529489175730814311541911888615837976829251001954883505893105972425071191951187125871350147000444840155840369167742951105024021667320954663063696747769849250509972218030228309343917867333872715596849743382101823963568292819512228990871431396705619776008238374374899362639332889316362617052685827399818601159127626943077513662002766952497938933904421195213319080312161525135010812631285835317862666393439813962449261640417767734471571310296918437688609598847353647350636435318086144104141644925195913969147414364268263863011102991597357525068170995472436367731376123347835396114078347107951263795562418322693443988793616154179607754820844087697986924870481464861550105160792014479384020666276603330270864408797782830332323572791893434785112217643638189042444683758175313828527607451704848547942618021790149741567179204514644547084589525908405113335050859299309142269620547987150523641030875322613555066189042830733910160564929731193681225327913928562368719189806565669180880682174835835896426207234950392694095792880210852537109541997121885526945526280056195898852841430977934258895442921490784142158143349653283786990582265950696781156934661462674657557877242015233500214926947795414126005022049145038356087516107076652613042143015817869143917200917499033860749129624102295071133736466232896266849686176215158947559736630497908102038243463873493572220759071753243252682846801329454086705285233819820696276426295694931200583735496003967589013869661951141026890788726925860621338846670935561672198867382702263863400623214480657516926208123143535000027788034686944241774664489245587925912979723279159523228563539427186305561218213517301449294538423754458624944744058367100452991680489813702351946545185170323719206346758374116448671287198838127864718550685278880807823439060959435575469367588845112891229196609446096087968709185617200078059108232501139949347876392386285487862160734125384728711692040132976295166755349164069001577470953820019485309916159984722635091026827970311064436175852027184776507088424887357485547587315764894891495033224926131987358017218043347488943203309959612570158160160006687235724227210102464349234115605691711977478629138177614062280822819970454044894529801955465224391997223993497507983291431266645267860149486258869568682331887374393890718572317804095101921129355685515039408666376639575570919965358049654103293574075424501611546124283473925156774965295365105551715395539891130191425442593352945688713023013298461426811411442384108668590255025083106408533707027985644313565115363752957886571267941224493093101609912119178205258961276208909289709385957100963476287405904414663852612135527936764677294417878228478125140615025571150866367069611645640365902350645449052170330972580368061664543607916341593127918887599178947055415596711183757295413363957651088304850289654766923187974180841432322605575386277066091763331615783844359515890223570270881328909898531907543128913706288301220940810117815399276022261960551705970886008184220769634827879770161304978565805640526139681070379281112568095108274469938494901339752542894050314721068489714059469044062537987473648725927374290873338130096904354937932764772005305614515745494719355236930582059332944503844762673710646374268404407782191265720517817543105350531650142402818852142300565022877534490486795590494959614068509144756415626552393899065608808373750519935005130419460470601810937778383932507879577324548324045975889641262526292785329521179630780899991229389050129526074996036171320607734212087740986324728744256517207961385712998250018173462569627886205880310813975090470814635088536472911453986750278837239173099822259133822857958204642538574139812538978462117026129590758322311429331682426711799022631005461019127505533690418778887237074661845837355345371313705502135449505736024162645359785370757648915317052904133830474050278021389587082313463641086989903660597739480341364226310692958881348934102490709590421905879551813427483731279930367247584279176219391818116469581132719434589594922940169810599066215836862939047873050240454452267495829717419449530499871008435761827918303334329658858078804702710441831377623550092441667815712892162318449433408663878384169149204752158733649905323350319012912923381785806634898142530338637652931529464397048840434910623360516313435968710090966347341560562744677971886978046784543920081623817381713898009492485227252220781598388478056479897757572485937430403001533652941582801898477631235385554611049747082570120145889092803089897574524092832901438269265094782399088821185432564705875453484445350495396351421041679685782305299069755931417071584816528840655621697965821324771390182536521409892399621859311057438573987404521310117471770197026488777164953359749825621729128154095970702749306069934032494978145817960354167120161446217117178174042088820718585405157691879205632441211652477908606367575449464689157446545901037280874531555531580371241150652407398662296866421839056699107570531248561136995157688378950518688199882071210112963175338904528104034617302126958137217489444305762810675511451234071913972290394968220516322084276756251657994962937359641229584268618739640915955369746645725803377591624177145843543723733931852294319250229293355584571193216652916032500142774315539074269033890363044470537548309700582929899574513522926236853615019435684889893041698554586722529144981917527690996733707451042911794246778890780743456216340325016911433357296246345542480782819044351809709306581194896106272525896614389322234365540886206027175261649119825086381307437594271656877803957255756144559852519294453056310858315214353356927024402700691638234155429448346143828659154466907292500055159759011416255515607103021649015003097111911940986566664557990994841336051682793763891362223310048903067458204779253356272677111681531415107327924592557161412898674583491463801551123088870182871960159841845249651540774182386233607434856060297845342311505912103290394323844592638062065429573617878465062624829692479771300804493534712231241258710137721193457058417329484317071817868242884582609065126552908764488429379903831338995672943341901149238687159687525048571106923718200645186338825744960640194441413920845885112589425377025147210405908859828743909810314541843942538689800819280003099747808342889868266103851389370705261351520949318579419124971522688642095142989354384739552414471298523779200879917704014510122771876627768050335472309510187551284959986473181071790718910452936328497581901720083148715055516354976840053386685851744877226716055565971232423365209808698091410383455190973019374977737927926819860452204818585202733903751823222697707688700984523655139303560409189480780121526835705407095695162734582326219916299204212810185493837572156932315112596238876484766955989087701425926172001638066371096020525572444394638537043257633508079793462951764828071532370254182968824809460650633795292053870251805164622189650135717326124164482522986892363845854794097510960552402701000128501542111655636868783365928928283055355953021601390262553423268863330117024597217156513210979306155262993401839260188705938819740495465217718548232177155101488713633698318902054778670383622259360614788265383115405467456582487186177350653188450111177089964230354640418658460398804204105073364405148875231561814379393145971243912190780936866244411322094440638797841467719147918699137194470072098584457474104687251352295992517531367052160963891261734954078453790649781957709569806922851755266318524853572545779392191423025709398664682972462314886811990719011322565999650465402332927479729286966609743370854532281561628424011621138548972662203194924102429121143823899637277624745192897983907059275231821314470230323149956844146749395929754217899550871966604052493133971783422297029066584551261158064400719862745090943194997482144588443089160484800840028009382650286159052786208288025682658639142289157851464686474208694553220318422190799256429261574890170673168017710065350670055411653915507467678042596863666148910820896447660698758779838288471189011005926097443826549105024669116307531621967676239928359172660511683893980965507958584380379433401037812388812908415037024367909370632206739947750227057312274236813618046019612125056310812740758281901448660913906299790683391771879311581509955638833576515215693320297557431551831101277235315641532606880927157148874533622639702782923669276588989289426800644534324114511817340687973130969776580359337430019306869136466677160149931651427027737800012039890215322369581773277594979481665058720338904757494360174716398598630653545413492656707524550861150408402121407945607358823215409637415970304745692764141114840985905537635324960092488117379372006866382179304225239507131859504195401001086905566648038817707844268477192942338249519167236319476251055827586058355242506468083214630202977180104789003401207515876517048993970813484518571665682076839470010910967245789123856610390054954741208185884003072249803279873705329958290812239006307903003235105029953720860885017321365357063994478111340316507644729155238204254455888000330608324251364890420237835227495500483317281394507663907865560377007567195902824708546980981662262308424169458587389374839904576470643992000126231279196358352513849351765041961337820904143607834180443249076167932993375801675246187146907545935568230105375277631239439976284123071810324677809595330170500363479140634389717548902380713538873904971632369150565564506001555660773385359532199514638516602862165134846268514718556980299896620049487928020723422485407254342457376083034054981049036648838689092032627931314579329157148390953075049786186438355000862637061620228857225823206868829262965588866106459514491376627667639810063678748657037500530194992499444018208738184098615036400120903418120436038529434736264821521347635169261977744104090320929482932380166161113302748971908365225110906747979843997054503614341199621466414079970565740213707735408271162511964121853749620570517086553218499758212409129195080642015825936920941497178825996534825548961981380926685531411267091098551873841314283467707862521382798564372874370071995211599278863777265531637709614596140787232214215079911355174140477555591445803623790300642408810204704763730802300107378959217632652131896821562975191851444414171456700544284654245661702737621229448364379595768078126325493823675689074253654101143730859059135719270621535689529011158251323961637848141627725324113509358175487481930511942436718551109427839274436549941524053958601138756515292097292101534304456476458408152655781567790203784085284868887512917811238184535015967913193760909413138005967259899630109655500518850593718995134302545979476811425185986193084020309111975838843426129863620666594469535893049770093517665164745740813238118625521454603573806950917555787653675984528729679283121920237744047990028867780495190580835316177474465193848485213717467457823243954034350863100791400683001418592797480649217753160448199215026450417204359486993192067886760558549564488271710733047364648194431738056397606104741621183979588635733544239953629277412029957604522313990431852885160793267283355729399980281685933966680993729379909551615204961281719882425673792855562920852127306970490559061366371290004980828299981450612409688349717568841376140241236871793219909709682911348355146535591760059761940897962030491699690992996419964176447073795190073761640331379283594296432513905517488565926115957488708014549037123929320576338389683460570374734890074429364420562514113433058558567607108988502779179296474356216960929072724699099528548748201684953260224666503003786506361428491526567286101723613100388233696412216788011497587424570745446310780536371706655485326196168173741762289099065230336683679340780843634314053460833757591655750807312023122294240275717211040650886166948710501338279364685024707225126928906019263354988834678728833355600860848607031858457784656361241207961215507537547291101195350518365358641981919192388149922681805243853930255090693699271662597580943676398490813772273511446571975686880487722470847638432325201031593926333230875631787760022522130429735872598700190836004163165976034081099987615477434835520046229559363780834168082208306446946862652214181873581254459182078960600454409344447043213163583477857073820016429819039338587842503549486912613085442500063171531564403280744136000375048873608826095048523004605947473282672122827484477851645891603405023163980912811760949351319680068515183129079137384612943172893401950553236285946341965864326265702901812047537427432945095767946082999649242290061817625587882164405872625903794888464120890060902132326527701396711693397856817707044952166639346593361671508970010937172096402841353300011532922298463566647585589451641901507884389758820605765168503035052691739354572976327103196945124364684110030313380053044079333061523634220565457344466268547939988465961175376831263810243249241441685019778222562766904580154088864757101639488145157669363194610098249928219633390626929686661639189426148306361893758390612231795733196683761929479312962186892046445675943747967400708598135714157193425940335389543288919001965062691646313211977602231293908383786134736205795890609092662347985449530051031883605975933577158457958779052545072361713266129870724530058569242517920003452462004911088056939227832634864926533336523301931481418346385556634798516177137887970320513743577963403860809226205602660302732403581858649136664866796960541966096470097702436359419097823672153856764435056047556265320609571663965462805974829120128334689439049186644280009441671756590457724777970112742384590376455308395393133952949184297504357347525743167729933343983995741531523827026376419875102730264818466954063104774587380837584937428719138786395486368820196675378081690293510597080871133357741545557711764419147831500491896024688591625180699649620382158846111822645030166283707387233696990767757793504258267386635429146278445101332467296416825830641002349968009181814808074748535956414873154719737772092884274950614357249565075599042015365331224373471345641636703073885517503659558678866022565136844271787716226163292359578139071805713509532309497955980340997724902900584646765143159360728148134120061606824450936438924985323117863922711920861661853420723320988502490830403209619329614167489147925767873463603020441578789120015045358307232810869411248140579272071572266776468747588882121071920521947756727497742789344015476142745902748301702201826915423429784093841538955965084503048484293349581321817243601596324557426484629066981730821852586858188007419706835419554993638147682042070052572808590226029145609164963531072416362179002425427382382922652735278534626035752657145368467228446382523075035165976719110760732020169495522282311619518830100768608620450212623231949223873542174956289731857664508806013616576012449723792342882214948006565703296784737461586012562382881296834885841866164568777334715641693065481249292617175115968632049902900088576513579644463607388676686425882229740969745725088991977231978887804549648900122350619883827815748974948965851057815018542897316736423759800204295408312390471312054960393261180405506568484504391676849851040481408464442276083991124400523429026032971942112113237208217373787483753210126194235564978926001775911998706133544998470508373454008053986549730611322825110931227612501627559286246440510150841488353893701634710031871728903054563463614215474238484166489790036758654329573208839271391446802368549792955805303192319371728141986706159900633832899089823468287509364683562586699993438771319731130211151253420780429173087320884911419945464399791646263175094785687594190844769337806170261913452921732417848261074642618839923005914103068012158964764086533023189043828602049851663925138597609521398704074350056782253630710510631911886335274789400081128732649061550316437539802423347886008586165830768644871750423676702274205638307688625507694416390648777920836719121587015570039967071980710506847574685068857409523454892441010650933345556281330325545505439134035691768455441487884403721006292068219818820608732919832199483665631445278336770997264240231231716897986408629062203213785677318235085166053541011870671357061575632955547613731688240476665519968915140869429786860188211565575691568038079600619959036252842505360434832453241827046800321880200927690182009522121434218058221039057743552437163298416784292501172737201873962636531427940198910392832918346996223913757209437914490353288445007998467305913817906870181709060876747746839455692497394070669594073528162836874986477622776321728569386426432033473566993200892466790306811964129777294083307728113454079265016940822478306807679174761264801881203989531368344052871872315996822423276478568406346585896370062066281202417467939027692054597483817232930800859565870975085965790843066520092863846260168491796077060240634609558956562867566098691079536873278386047678324062906132495896888737374144099845360580952474716939344765284671640546622105517337007976951143561715063782101578455478536210451261727124463655922879824309105818992457280709950191331309018116266142688979039323435170009752648516006127437553412186648917767322264386732586187007184291549373644245686033783304489553246580604106850225551409796018369963746464728455028618583488746352308616599468635793295990805130394274058375844188463920640472061218230566833626726264393879343806899329503198905391183715115955389179216005656088523256568540510657872086529314090338841649156201863369879245061903051105363859318554928812673418866199227910982463791555524865010604397147391631861908998414888114723334494161075108342922021790424170559785124978610426569263812963901519629534649092663467378034651798950969268758240227899814770899965866426010463575179202703149725303539330088511832152563339003412693534190536252752787488963175589024552750349167525741701377562483736547459813517058606401386761345494197587051405112689103271816247723027391967801990646385809311676382464144842543031255300360682561348237365602606598491858618952995279299363488229067322799528057243622356903017345041854116863619679133906502351446591473535186768863315272180151595746178524922476945472519225305006516166759977642904296326795944631536882125673503723946479498280059479343299201457434786928814967802184648323377268076371869984854550450013137239393992746589581547343234304736065950354598741640050236072868280299994452992789141781640549975487805767712513730772988641252160467087960573787866310095367514199582779682764943943799726471729544023556015012786933957801028940234146502771821216727586502768657201289539099611165772567462203019319126645310771015785624714042946831066924452514332389516994800433760351831734245851035853759374793657259536222349127132349607805735259949999195559102829799418902343358868979392120469824798375893411032261930104579459759765692615846010412037844182692959186925948739285699771850172435563696207659830453937474379369574005139196042015994186543339984399449884636142025570725625786059797963729138701145945290028424475571617532927428571212102015106211650634668065570966440174326809075022045933032852199679538863835260336023642381962985488692217533991444880679682458890607765798667480173620659316353279642582184941110561773599546029620440746566691420000744751320028935359838958304937247948131008990675993355675244820025625770782731211405879209521919319209438539405923441819236503826675765284229507754108593439743549369243393854804050893871501974904495049241501543842896854735021243933304767168553385097640603697599713989634612027027204243640084591484625713861832913469911988568834332005363432029644020384855950996603347160334597242762570026640110559995783421826552206509445376326927139794594275203139678906465837976047860497817022613327313729986151401713429519867348341831708057785096388865413336108490970337768259840777336945224433806927639699833892826726333850954194488687900302038754776519285370230455231283884212423158580493432455880909964951743711015710924296575701469642730828190785150532132541184384589635186578821250998519973334711138426009030727441289790410765165016472603986472224815978564216979720976593504386259483491390045139790899711835426308516659161337334185469067038884606233936967635623728629202181514478066369194320785583054520817253705333513529846730814749623119788306016107404038598381633892336427414273024649292196568093880101776954332326939834502125938859243626646964502543111101547312827140431712236080298756259073134557627044524150068003581213594417439691146536307137778722442096948065161851517505687961101896139134961132229988380705932518425783520681325273884981781782348594349724506132727996983690703818850653207978235345185547336029685058539062488154156548826629372565289747863983098997156717072663583851908271192208653416622901094663004741407049907196423284565602709341367044062347773434708174588943059166600015632094799030838647775227386739015871815224889741933550483819899546668589627489898638123479487576728435154776982598143990332304527030853994242311059201734165196409576904604758933818560642165545449467130700691928571865703934173900514115093412579382368998997117122828453605755912000845601082879024118864149346793609348463201863053941712759773808243251167699900596627353637771577647440940840645909392032261807469798861053511325698384163202912718302498614188159970022204107648312676890252491425700910758680135512541891176474299123075891409142891766706905483602174245567643666997743467930572844084187209158423433200685384662819914361727771933062311492455873782666907629635546346744414001095068651226501890973239074089197789194916600629881166727608839835942891992293131614583376603466843139224412579192665580188166468872454490999210657808029278587216071627715326391592197487514182267173754131736829258621379865937099564251691630077201716580214352966176014005821003218094949644737030042165048142142718741130422790681394571518533827962881790348301600508612754111956890697898048500716531633673019064990301530863168573577999578852670953298326645457115601012931977805153299617428142712512807005961901529833341396864759511505190160773963237689380443268112247134677547637248795607759134674923554911472544186507420815870285533877910867979942060884689993936506265650513938597067225404518975740507446408129463009967665925441503728170222806605528607635556856593554643098176804937703602600476739246159438716743784872744541172269936722130909102633594663935694189270621551728230404152580980181119932190287798421139587214098867007871234087999329338678904903808974195627211858419531110668283969088773987998815660816848407352373408493289631921079239077445848214403071159513587712558494892027051912177235838769103571033861269896462046002710591826300285230287462913158111102499073462924155099737614731461294488573948436593092327634789940445539673395388913063414160940115594018199113922881664682845547805639560960143523017545918796919538343821428104791776769009107416238952813195864442914670618915366751504399419674126021411583651255348298034460511371701586177284317159648976366848070239815419606532167916291764985557863157840482593997282066385113811017787459788210636722007335570923818232833043705732010394341462584668412277689745363914335398842889948561172675086754597334919101302199498372595618502478664908594985368378491296449915795746655667766400322711222951736640231611293420528196891454142148125760980997148400411429073933454616169589236843450550538737084660558105821446771243685549712119407712955047205155315004049530288938327270049265250757367975645346769620106445107863125901032181110347049060448386475930752373541757769202951544046491428294394415623061587434707400258793791610672177669973945171522830449668449196326645545009501035572624439341695177351340107486991118640004787609807622309808374097884600237801171657168360405476978601197673077400945635014423204890832994880448711585547287741515457891092842015992466613284292964440582725861941306151513970648473780447970475904516399055205529759466237623975445911503772584950720813426546802092634809064150210643449976017365721064813743751233781549611301169152781409601491924463764735085365078710332289509432099191353294503003184011120669606847700239241503303489236950126684436389836145309555915597469387464334853939527888017772186065141997019999324988065406498990536045702983458899350103781792834026724276104516212750521721987369572658571967237857048048164425570147994306331293311642009980943050682799931782307324320590077592350886936770970853126107208389781903804430778774397200985455136541517000666534651920448950813340812740213096194939559951417350071263740273355638870552453854560673388313767885106508549377394522256099765922579698325722457128502277274256783164639741995267163749777177481384731318526170474839258030601370954284831468599993593520856317662563928629083034101430394133971146599125459286463049879636811781173028636649640307348779701151047641302957176594865168960076443029656453402371906074166518457079925543938928218257731664271976348044871711788096866332495058095778605468121548230630364302071985952643817098128837873518041579178979793814030658685697516395480872524856679813560169422116278302386231412122425499773016347715354894735143085097524112628336195943472148636192804474819320563264935935608974975696262293087792979839088374585730073593607002683815589556953632553621169811270994395557672155804939191698653168964083177827018514460532005338555417372544538590656020004305467515777296957847400604981665369940397374402033810948604526899593015005816906500858669546567545038987949477186179971459965861572687126089271821363613890768280873050637181757765121474729338892647446426622037552325323840378776872854066710674839509597463925586784462771367818716228361928875142181229480092533281883376326035444948318915531187980931015166077503858823375155801368673833219478757353104703681487577753445731774070091375217184258181894403286908886115713239754221846240420191467897913438047207071568686734984664158122759978601730206369429752618109268927642563657736203869186441364477886703906798840420821017680598631885602188621642523892067007049508584346331748745832163803270644014898535922757493931253777245402088979275157840162361465011362727493519089820192429129757528831545787671449279319640535211463469237969981508590286075464438375212497969448491718551187180496488381239009020219849672203100683563186620079469517646706491982467147929616825996135035880998769674434028591108711688563524173652383168896697309571881719657699989267252519100394929525470959130668547791288612471364506599325700226997609173617073206799970783724730506938537982949710306326753612073180069885287727551531413725129806595956354279200776446659936559348125167825230588363533125567357583707614006127054301105351372169109314933918509546270887813595755027721680008177777373378548904296454892734111769045919924890044718196066286373851472857121154131799826395821940206496917509388002033394985158872302441214303710270816897493843161586608452480302409100158797027577056396756961109504339322712262702908667538491117584967115129126422678549104694630417019780231518488343226564913948285414844474920542523434085857271485651296570413656172306312829516100830569139458481986615065384590729863302945040688922427638296079048329628283528616467333095482656205322340235882744945609708444080495523922188673493664208303875946646961150231391067780068460814080184505225144367378311361643564508440466405062605355864558509220736790347966931952852569082116549971621939673382366068200194898968428173937428693273797810018420309862409093665651262133567756236625863869925946275805615791964734449305978079510649129383393714048534547016546136836110838588643332599478278256435223124948349269407561824793354904479626931811255503286771569009070732596674709065313710526148443317603857985669466227736745458410323275465658687370763015104915489511429034404936040988514475200970236150632626785663865366318356176682683147848588730011181790339771589435413099292832288760176690995763959017371511278272320603135006504379835955600617935184153867483284633794038375980501354227726374368893786009199883210948918633164578832816650375540069628548991484750342771950096009177069170636862557476094838493368484155116153955632421044998423325819697944760235358750747042292579098643030468269535668484998536732421313242421747533105412424000984126464286789792665678756119214937839764692150168670447156016034294929939530630872133060501952771861313630201244304640100824563049963449420916571669224943222121397543211441494175506876777219004259170534092845380389786496436602324315995659763252075640466409049399044699424260856523980934778277696487848131323609782521547200463860545905354814223993644951095885448281954247559054038254524437086429217424408730045099923811579299247917359672397908338341474455739375113082311152617551325265724508551728629849890579858791896770290980296294551059762156045137891119381632564224423403426314027376532556847746883728915001606311795220797441503734915649231353551185961421623185445926146864553625297066141919389786631803057308588216822959266315860390094594050270529003769063397006923557879873545967566635482645802743804628641637786969467084192095958095644151612534378017196894388890811109347077292643687593975882357766257349381744908603203375772594456207616466340131963412902358271934867173662545930477783019321104209437761346837616193782382385809242318484975219440780746074918800327272838846940003595883615529549159224544504055841579037193300583557944346568297261879325490598750846016177034719836657117909856383957460962946997630981258057168257173691451025746037440729704138584767982997214460431578536799128154122388705635140430453394668737945722706941498278161990098403121052134815657521325691504267557131456141867624612120951306003352217941315795154574033917485456638857902878954381480067767070544665226247331738734512705901072580766838059347972859229397028989163997928269255756750646243525867103811745651790423478808861395842915519880777595866797523202151457747025519552692624167935118511904760575000157626543921226755691742951079497734364360322079396812114407713408622844189374315526852426993509449521677246091867764103211116983061676106406250165941710384957016588613819370988083283949987032297631296632258789130077677393463934074911827210699322385109792124486486129533772986417425148917332515378145066580322864695709035982854324040240398326534653139930789330713592448371332382025827490481671520073524281879813328425600447723188617390371272034889049780450516592392304991802523576884243507134801079843883545360810922184190079281036220250293493798909912195188339337285548970091386233942110713161867335147425168893754140940274649389141991382266077270396827498264292831052391268959475747514118007430979345393015042827912792199238281569525877137082198087779037130498765353192095222066409029730334218882535044446074945861540617272446877432962473868885074807844950494974077735044607791471113075091094462157144232467371206918514147212387086087249234702866555758491813547611689907149040786259821850551657345070238208833987411540579496120944320669187428034173245484356469563109968308928298652066032665802523403757259471640447349676760603178343123267133742149338716069109137514551717545336331118547345230409050173778496819136974930584989093549885877367343839638282790711552878613411201968852646574429420811597055091106011021251724128969365824009933517050428666920190720490907332791992756733050699468485325309036627438069940705668264693745289202532360308312878972965893237414464044116946055836886228931703782734237212336985696239927269701696881011399768725466802578111108343850846335284843016172775731269372639019162472124234909227024015447864920304740623172842811610434440888247518136633636393077809380810103029701109761847790774315141940947010307119111741849177593283022090958378289180249814636754341847034458055940507290029080731267650235227867235301227040171735085853252197023656066720051524734429248971932179502692294790136084426927906629620146338030625441020542902120742694043216789555795183436453197773235071390446070980765448720777277092678977766901736976954951354372439034255456281075586650398345293342376624595820671218612804913101928802794690264587735999005550282826222167575509311487682876797186087301014423822006670399710479625706368279121616968700326927191053570376718635576047676045343220119239555876515696385727624690797644645397269607712448462717347236718641722213359064205698765020425838134169869805934572980569281389332263035185377187708174863909911915444597625109659069756416753804977747545182286130628070993271360945026559725555965622948508072798606576520191642527482472391226294552378989004124942061822918129595043564842170826376858909312371780789625342030594504450554575912581306972558255039359283027369817014090308991976553887624996542050725540665172009044127584428955639416388432068708633534162029589582502512535366361582517846310434961155703169158665394836529466942960706702778645773076848287263149071741140048048911594623213764790418895135356943508398774287998601969101661366240622157844669811418011427855551618840023174868768378725867925864504043969537291216823727814287138152022014679013976455005604968348281199934104465742464246101607311699254524261160107182359988775852230237024845455261976493262096074659363291906856300393587807270960418607594570747597868035905986634324407021363819185513632438777221669619884272677489451782123659070126222982483560319551543838744055750467668138601518552250571564939549249833171920036448632946754013653201374960600392660786768105617923732991840684788480401507660955287219081107144387278245050822762036523696186924382683078395942730178408062731840809991915139296645622262535946386862174828586527730485867521218860005458501452728432384196765911199343864906275443882392071170049015413256431617869282737876606197362901887908104040376583260874185892507619776033661739189039634427485445963229558202761138878601925580970834839242637257233271434897006948627662708895263813940579875431201122563823183381934667923861916069682009974556880776862271423346450698960063787324819098728452569856313044692761549080453804523582919338824960329985340344715200644540962412336405209414154330501913533461602259871311596030678612517871601035033316593798946153581666395376196603602037058997293568802309245988128699138915866752168515959052805015311266388826401294038933965586789400848690362728678747113506224529216994625428966401328998933490536663424585933134559250614700806876263682963215856130579475640309579108800957320259717402061889840744963819764862945456836300250329713814199846429647488294080726357677794876159725652659923045596112976224594448558595396842154290170938980220741543697582277726119890344166754584679599512475726313835907309907201514582500459399365451821489037494543532333872243021022465807379048177153506973954944278774174997803896901110483098669819838842745697080624855730733153457806096136423597349726160484059850773974470824780005590842452648477305774562031622270796500560006229506624168569807622264949320190075187070057230215299373363188169844359696756098236346098643882999024418683652150339355385805948961416275567151405345614209140436376359095758245162573466827760527966478588889616286467334662204292769700900001334443985618125969288770471613987672585970262293532326022979258314000720910107811705006291310966783554257870254345431061551231320556962118099526796811029215478333001811361640200077328698844589449636244109193853435484181071757992979954088604637041022702525807190529018444975569728733608654948747664504417035992143922310574512493344558073500149275691865332115914923983456078162676439050434779132980172369733395833591821723179834340912994241272467582863744973970567203270854766338774118351000856129575680039718156915389805407557170642075128514992688779534177130630651537967435445885436937391328877568679642808495555517117513279507328317118237129922126266021377146412926874939350721936826021331885653601118723788601618661900783506039493683251516691117848986801197401445273943410295713351691849161316010057196444903374133656275679890208597860704923970978034002461726613791396737614735508749068183941476628395314668786396782377219593097057736649738301932660231262060371991899270612566219100319359739879636152734941447840721033070282251839528998990289331502404817926518256527699506914519991844838990567339750771919042034034981494897015271853045533301911795954172839993497905560534783907076206477638722497290586070078344913411248328110634973385210616306708218881806346371957934365545992405142826038275963878168122987329148006383142296370351510541110486802557095048127428200481462271179252076484531223502817486765998942052639185894610205969632120041672672019942576197874510490415511587597488594565608533112559889436128254222149498447808188763112469235528370086026652767894989323809797321527642804352620287632106639952998352934124836063275104930359476464951181566642849646867884600163620951160091957337262917499449576615405567352386081099379075481283156284335365468671429956259204870714369802521279543802381200027587441214698893849670405744765175635802003886571198599092920908705956014507298063352460890932183009417393754749570851725033576113948779995088418958301181170927934421036161869934921129927138988886655399537662872632963964141838717127312634469289739792008759813385083597646731120614526385488131727698435383999838416424665921556325255774189165132370086432418849836517242406885234573783825675052232234221620558500917176897835147153888507696720303588271241526941717300182576526072611630333817726395511445580642579513212795523679145039339667580505907043983793139703371844237661215316348105927248080027239692844585878464039922682576247684587757259512873067642819466574676580573499125375566989318026393660772749219306737279906947061119323558487548629109070897874710356811374528538566839930412606476977790029484435755900472266016174052052869183725401740425049050840287126475625622610327859945839225157214355380116853937886680258617658375017450313990014608421407525152725834393342955452743281102251770243304028315608342932553541208661031855836274121198197423919965068640376441587770430069963174679339868281107154911803245460266906505127383613242053951014918584162182390372548803046571316543454530011570103167072628390583370648172560790359751316886341703095881566650021077744076364791611619401779911727942711057644932533883884054898095437354626695338446317631844470334092437634326743650021759504868859460187236493503425702201084623520245230446664088477513791545338382963671413520590396469805696066801811688680192713344229726689738505746036592420701650875443621186598392835473257819438467119350534497679173827910079445283801977762065675868757080115153289284833669501286814071641879351520097581602786940147957790084011381231270268350862461079166948277841987370300572474167580346213155615673431736162333841105758846431799919991242322413274786130535918591033027206848482393193531787654759660624336557670104637717964862154312930466678862056682120775457023517277881275000584311404786596047829155591243282032735621261714121743088399062034196996164688156021339975498093693178763713988369616059441143006871848967029509305639419435049097993724690103618567543079195325252156610850687627165876329124830931100710541007400696800896207554177327374967096337100637938996285312906803225027017985302085468518369911643020776728916492947042066638196691741061595228513302823523512595212508607445511811590741988537115409692297154733945445221130729583092926665101531415953280068950998313495113320701741646037730046545100385726219995779392112506360021168935173590769678675696620233329411864203729298137132748973264485789759056663607053530066601505810256232852190897068962178150265668608223079748375963301832292091944124350536740017811453206681319339775035507334276076640964727565130349175406467292453662250850718317024185497496209960438170229471076188861713248659391465741825507262583136667415720336684406187252280171220357501534963555102301093315494361989512868817676880185677016962063490989950508731064032392712008633802708081077883148419596567102728483375072694155588241347657631261815764952962098143169877926017108283766168696150807878493717853034549214711960843432328643615336114682626835581991978896299557350789397935536134576743855203469155982373583014052713780745751587638339896661991947093116580685153318483398796425841607325793735234224456927458000473018610304027748820539367969105840994406361708448169134583298112440229080840979460077007007945621842024433693267018331814957972249344933909663844007250481115359870837962407518030424723462525872783181342578181408978926570704180130925347440196816980890508005381290176406486543737956282758856138495286532699384715484374820521580843032105588506047586351338347787306783614405724590165446734794851254522827165933710995899738753559332579313019853254749279535149466267983288465272168188494148129520992658091238616059831793957230957044660872319682528220299670886773201658110811691612989578250724848426269832645853662241168073073880277909521965896667986265149691211364989518694319353698522254683821045416532077514296940386937397670244800411518149666702478475533226297984933942857413395631983780283599511427050822133271144401842506223440384311640670172594675394034681717898151230766156872912308241743341814466024711220097584588303648385819123823417613364387852267713347458627107332522318566143269625107016923096972244046552268261382192127584731399701993575472987836902793938340114102116782269800848900712252749661113645814541137409415637194928117103072732158999423803629234377749538418211551268040166341006351016046753975908268717141507190808716282044228661292884730124286762929326672253626001890522721846745845843213705458518641640940764522638949999809453781179198779004704013850452960729327398350670919802779664898898300902181549687768787922755962300393097718450876862082226649763331646958156804102842043958571328890521262785814450463922967900478772294653622181425099985185830032986496434499344366556653771386332249051301358958926178552871505609366832702298946012201271078872629365658444117658373355643271478849421508840801783047456640506656068482555977867746223394080857702739355934990652531105727253265884905163329680253102482664700828810811107962193861451198204609946711148424136555780154184775865470135289401167537893514093013990584990480719440702970383040174668866901816939499681890781837938005466478410296766832071322024416989577900871005624823268879037108179281475024746584703853484322941721349318009916762166511945987037243183464524485055084695305172391900313586682563944927822693040896749360263690514231661507174008851887096741948532067452478471953463149733653460578149868406790051771957916744404506246115650143688231454402728831972221580913220191858704157923325984886284984222605026226726620390989192394903077871889770469384059514438623136776232044814652786827664928423658549853329321476104706521663666103623959007915627856152195541147305867687422332672618456709716209400204205497257969853305858264689231893372584657483291354716175359347135553946144831144323518862346310427595597083243938748174551668850175948422596214133441507877463911996121032828633406007003605036748233928120557578436916836612661722621624379349067335611208977601522385224560510407043711043350901620409808672906642010509208827828244533189573631299055210318591677605855160129726124104223539707866977640707160099360673579782832173222911104162518983068228954488660855129696132961180278940396011721979918115662527433963724728874783900900370243934337767865451607881222085106336843900182735691218883133284531145126743686840501022422863103380251701174214748387556604333183872493003466987346425752840049622385945960587964177177001078697883664752271668856686961944430937830715615052006095594783043790178857936492148129215146673437390131933260371064742457051724204740594521265239244504415108478058689144734959508770141247605068307473008055692881180741594311066088962066303165376593436455108505220594809490813602272534104251295254661433664107650602425485757655451623650881969779438825682008806580329416199328764668767984099309743259486265620268975626310981699221407502107180919294977557443548397358876474901471511314321069275055492463527370070013204839389273589286504350030901096240738297021401867908871470811220322091947108989602588697538899684288563095453556106418789321854369915387249085329283650700490158945451578727931021396191773710315574309192940650282832890206116194040060261752436018683816745785091763453870229267449859020594850502241413394221331336552384305328212996281902934191910145889543008956835320657579396898195519957977348181440967595694352798711317162697667617972166653938367623367651878257349510092662888646905408924150804783361811125341143376727601322714556765346446356671682337979322849942111229341000213705194978940495858731340368198688149435001715917666872395657441771004389237130399781848359408880494024420091292293095741157155881666469767502986404218899565115313055620954968842931452209976263587928275129243535799590360319162982913278770715710769214277241671550795791802602507239260999644624859356484506575308597888005506437729724719748773649568885600790510814120283557798252156955743542354676399751082387949050938904675609341035902489788547955497739233284552269002682668375365698311233789636858034263140788293341368071354064324006264461706405583960807111011953945890845680696812298125686999537542543428727868747182706341566871337547271599714585788304316291681840893735575489890081664861952343352278337474166364962806209493834457113325088208612665997177427424218765723963979932022523011042246759130651622633073679132134823063978601673452123447816488217990218336223450710546009172988916206027728688378501486235284787183734353166031012355411231689606766339362559749934008502667527858263188571969529208450023774160502137128272087652158325643503256034261400818612493440213085671467996132296245985569760217284775907326010418074661799336271096898071605410000678694888701169801292683182836621632359439180034707760015751357884516109598390400806471447442794355268619041859508015201039321258569537441906169133010202634262379111998547236848629611791285140075766995575714139142049826754015582363404852333155313696396789799920067040172268984639938116637767590027884646317060792698377268314730296512474165069360649525404872224007959249276940466377103208576382224912559049426262734150781173146567086193162348260675448036617149565186466861617923243548227988198276362113729905557151543537355582341213099240095890041299132679485098415889143135155653569182808166414491341774802790469470485930581082648179701778092707981451213423712138493201862572116688550555332686079879194309841535918677761436709987491588421767239171214330633747050654961535260235018216206537503807085496297952237220812417521584218114782280446283691691600327431015909349608631633660595527259482957541698899492054403583617474949937088171343421318407207562458118094976184728981173239293052488766584125533752777359798654626369931911858613575981771378216610169764098470364729064246027435395911904908513895316312549074056415550104256031705941709210756227303861273301637493441578468675630194655636982101550965526542279438007010674913536906324213360594733382386239461643738514865210010188160855564405574547938537110751793681261457916325055819960449848881468579460140624837551035170065559042968120902213934112781936906354361894667805700070585808071913500729842447327566826871169773713656682411160456726589598583178042876017567336824365946854131335076355432154091223507440713660179028571597541537036928046034907538680342964688661599115920934458911890990871409246522932877600582177988428462046979849405644489392183159105309609560449115767528790789187809255474948535970760614731675753122904368147552527582584530609777741251161985152588496597424272172224157422741984091247647460371482391278647567111680301886315896944965088881949860765472350152960220448522516022070982273711313838059887568703774907610175823284026603557142657296103779642585859346240739465436695153954802146070198259981743676979671308165043792091544596162092814398590709419380123519874191410463649780433155824528269862426681063212717299529495201205134195600986084046923545938551863525684072688649391153815491978400255361463971011629333053866109982685027333900884483158005667667455604179805279668322399879147676750462156819565387639832849812103768731899318316985268229583736995266392769903614626144973437342181276251236653470224900497339950297822905838855233761551703270004176317306991851467858463678157490676128536789023069671652275093929150644324437814476365015479998298605210950101394799834552502678670300650677621110380642997563737721618543412801883936637387158051711748197850298813613516562184596525211613498655989683214660331701465450970876004705198897226890877861312823773489665372460086540598053558422992578930163867746925642632364888467679533713667601596816527083079887072114496072849414420815496310830790513758655343513119429766532567203532373929034150412353348702086549768758817452803972240850281605846201628870497097700557155207559035092197400395816073893131088120947048336055569324545763814391585992424831336100518900373791577445912029853124016115284121751784027858929081194705938950816108607752835458166332443297259075430424665023956623666830263194104496476405905845767140891014701390400184890650052412014724334541645236235786963855524274813618974912723718054212190168156787204536171244599225869224617793856930263000392971184597228161988784627926125456243391613403266764204312278312930751487029276660449326465544144494154827572143633271324666733839375785774910913202380130591596049978022673722726778079961240717510474416719084851066813283866460040828008898109764302910206450079037660735077611065567765433146399578804413512325583968641936940182790620468107860718091905694817434447855374140547045204589852902829085782503034633385344972769956314785776533185235663260031650631532530008279358632545952393014271376641599639223521665534134916515685871144967313427604789887798629815208837338052625501670958916405619091893628090650649646759271928835832587039288476595625662644884384313850569242921390252704271971280400237490523876212405300764948435910827593671444836659727929350906821667835183209799640456912595481355011402366207027282045982612727186191052801530662943298050329660144993911329177118718376467679584744355359125717723828009034196668687916779553397226684765725783470894582617185348361102116797102392648605580291471743132122318264014689698429435566737649474394095852598011385518027613288867837580659272805797660256453723500083427383787028009536540531592870835765806261292466554917947710027078785432525182796600044315491791920861459081311161943577408427566964345880479100628680787190735653708659526061034331661703406827704419697822024802148702358251942738324307689902329310634058369884508729482826051618843556933796892078306383710420922880101648599655861002992108452066968166105819365616287840809734294482231041426594863958105983623806245201535573675151737320479229442709514339133722039933732129705097244024670205793970349200409787238993250019161571851475215741453523729133293891601689250861543137429901291879527278393039964142851639027636380225525348971619795281846246345476335711709305426826433221360902478400523534770611287399026633254101946710806282230455372572239011968610672938593107977566833244981597694924056287903762971079931170601866832704452938325931673016397057766645108350424184839371317887721751293230712830760712250860964728404146768439118341740057160144706972445058017131168123690237747180887501861569419202564087791130858926762843031148256846536646742453985399961205880016488600381910843513834426933713638635335481780723755854288461664998717018188132700393703026353761808155420718221639684795247729406478312288134461842502936878375454360344228825024588787136394348120401405466771619154766067870592869379553390533906923735278247811821061256025422972145601265458048932654568453751604411191171655095277466720307084469311435777231528868068742464701885076579543108599191134336754364152873123989209472998999542309659007333279253814868331022145086085184857781991579970312750520841814425613737874267878618080548696421676044773442163031220559759222958191927912711270522155860058751527471880307268432706552456685300764095414256145899679536472073241313747507082639787679758029851102020853204583039191570212915919181240760717537151366998817361766514903219244227736681523104453469533550244098703515371751274259667044380566219046276118875076433808572343355365907141167354583178626165511732558555286992878153161913583920503315769251501286956356496968036947800353950157388836450595028486249760563340642141717209292285146057953717194455858143620692984079124157243899380761493357296773202495161791855352266609508626312212403784521622363115864940170564534632033455488617282661109842209531667462629846278989030041982695270060247627735340246229807282220751965788281969431054704437117433055155066835690270971674744217766719048933821404236405346836274735186913447806580555891066143959484729847028023742399080762567580619650272950142325154182685263886034619007831741729140621042801016414741001771813739611789577851944152795014493820927411680812176047469030053627569639680024315047225700961469037470155438143125641272499875424674915565712260500553351536696885064193417343266531406686174987164752350625576861500666650760681514595833225924812802118699911869795633564619617202574482176552874024264641368426464821001511135801804841546043876692000633796101749060476158896678052524745878221449359269973325892518754969293798211081544246009369736380240823395890077590111699502557101957767933065347923738492210969951087465419419984237551651103192223462349231218821157911631721109530337073137320244552157502266559312355554360493773773410939244058253241192618403080355369013536774044895037488751013898208211991720740727347897042806112802464590497028496885544542768721328380192883105300085000212643026976422456897374675762112362370526112578626091434827440412735383509895531494034280716406856928748748845697233864065958166550818731707986047282241982979767426835028430882075486241807847988700265600220035480414540203020408503871839861012666223222981127736374515529014011615666926069561181761045323908243336404332763173491647809682552353446537029981590505629506721973069542576593868120892341597852471724627921429548850985763859981438720001740468478510592047885989291606193105658715997843262718346300676349918004020097509247917698725863102549186083717617615709700245520367254143305652801700485168566536459351170633838500113077916797348622328951981728433901214857193085628186058051169248638528139007829019230210226638834535125367210153193714584447470526864219540639464959897925666825656570497897613311934614271559268612541692621054136123537284432597255452376179052511570212669563246992192934815712034780148262063606937934515004327908348686829292115223087757125279684425359729737922089433043620505856898562350143800928128029564249743673926475117450348070163692173081213149478160104197328265864662472833848335475494676389293297078869986894043209595539551471144708159049091609288278910266187037911246662105912016355284866426849378796767234457258606598548074545104971650137449304851091745217550769928680232377646391888739323294293240520617204285328269371589216044161216649714282275069433648133657390536041397258913276542496863592326427196021032705283206246499140580784778282295248554316030834333390717126908627730255331262012633246144530393482359181017407147358274668032146056595063742713925700604992331921331780299371777236205180608791306232021384028262766703365203731231973029658922949025514625114843655139127861151001425169520314975867230851475324723847815848755930338210981589588887157046454782870199432543988583258658281630386893093691509921608215882392770148894999365361758958204211788979887472944880845187966803720478176257009111641660624083868024337811870278091499225225145023571436457111548352635035190701724970048142865797756621411315993498345300606163107041009806141028908585055122299006256012282692652323087049814424723073156090975718042289003199008000731687479103596144068930315385879918226541331745185556974308285958552588975927759880402241266236242558888772116540827578318249640120908071752535220923017080514945169122525789223865429293544631929908230513086478581580328878259757733015586112746674773537541770220409069123444260435389010242945192238084365119046440167608006562741448766832093036307750861950849199120117444326790580145081521058521769016703718280590266277369982860203182870458478511795441447788549834465326574528989860337656680076946580280594377524841025816246126441948694424883922020141743255540334200999603166047011756179737367410307302062375039493384150821870325569626547895405487172834611476859262231610151991364889895193632209323742992882220609286187730268704517104795885259339491463247746069884153562414724526402119288667656227557675347108232954093308406455536287812750641483335343246401555343176801517993503843457097893155530732059286094483544816726578827940342733236752637975460322390238958717354413819129224842294828308177710510966874247797106946619202573252053621095822832167309458547296387057761559005271033906829087352810317236293663481248672781098751199669818093845015838937184638659444630054479619318560955350926392750779437480250697287095710561093181166581379769366495728767519713815898115535520392128558559865487787525981884331627434878667337306535639056479171906815899981355541560763154430687926444650442613843378982938458895007615812973667746236898348981527425328085875001627548556895261869800001940828446288889669972589658761427915794315633413262055981802767278338829867930770073634902856586542672538360167377247596934115314227106282595729401449536958154222002636141163546234196378626051210749471058069649520690781279900977582060275599123561808298420106148012373911137408001104734947570729258293530928271965644378090860637946323711695454928715118634919439194732488797867971214243558232256905161365602421008182185477462706768540397252173777091998376764877325995370510951852090228083686887428229433699079088763503430272044059617436208482558751286094364278635969474571698754672219868529228995328418701856983831135765466516172865554128831665074970047958220272443148481534976823504533624592754083918767958350135438638238975856147498769768262583778752300483575022680767861614808639852325750870704086558271744062091575548304391880977664977482382589675301629122011456913195074940488586260071071936684561513647853111596646581294239433241226248337605833472060375555964244038800394033974932647286974905093478977847814170526551019268422040379780408755256341709145364838480339659384590738592834078688413378785334077906537759519510070170427548144073944395076366276002212683581160335905589014369944701600109270792590594130316344584594691545710237861083192905787268341895810575666466822380227041597247620599816545574568886547729342122011945608039906591707354280911378525807599975500927882000225242615816877632071013930456508709946501782157616479121492363243316182861131039456452561471967195025749271901273761970818019942332061390740843263635040044293812995502518178986307751280114313562211662233760056244896145982395015680761545952778665377452619407466460908302574502857457588788258492274742053782732388440162003688151608501073853587928482505352230192026518968811665069514548902745055059139975705803278206868251673532178672153173145725818661110915485217258921832051764721941120492729834834008398021101891273181851493628534472080059822221157310137063216659975929780426780350879932289498223260225218915454215596567196569941111600712925765645480639013175929734899343590189359760713944231671625763260240180892515945595100516225728903467378120955968883199371927232831836277090822706885336340591215084699216194207043644352947559434687184188840172964680599433440167639573969821435319971727827084430733621021131555413126249401689870557225056296744767061440474649639637469845015803136177520899768232255320121600964045103195775859151899990850198233087798274181947771673516421115027210307014311894211201231534115529392176839991588924283839764152870987379061847394448421209846449605358262668511881611041483539208601605422068567264667516200423542020341692960575633943684185930344785586110739075930101887998411737028349632672586252084686394886952876068214676671656891025483973303659842752107407193238715870492357869159638885257586706919530940163209530675125803383806399790445458445007171429656218645337786454811689798320287989656569936759908523608160206179761447719100515756596802859951166626568610652378510399624419462797637886360227293039451680211255010302902086103724890333441321090628991145284198620335897230593225941930714679652697881163418010492675932300028330868037708101320586767919017836141646197378021160016428486041018701913686492648648738130732473511997491067655404504658305345744529233206322217577190001339854732334711546852886663696343766368464003844420743000877724008976961300237302498343117552024928214327058805084687818494109480953585203819868146402796176445342185218830695403574777206083204020772348311190232300396001933568688347506366586827357410022646735788442545677412851532343067247338216999050632887812409493168913776821256307476996068693365398601370193939135046912265188315657896268590435479094703504224348109348854562585877281137877350882279529986989500394162011055102542741925244001337674515897677100392617975062540301738829356220784358336133290759500405499213836472272476521549565070724378901853200577606256362101666105435434419700637559479008874448458910272981964064195305289307517135319289115462676450106813598157412501386927234906355129402018994783139062596636331666629159238817870082128841769080607628783837968369977967853208725408973058877917418483428077651955373021966743249847189939293419115411470212715398131748782136542788986676791632294828083055890888987883642508664893413394211375839186705038497222134008109651550244480008866634910152173732735095666385364315652159992683818179528794463527881090319449367268065318143581934976320754219603989245753235707743984439554502912209057270133193072648063916604032362768464899784163820568298137703987909677886412744384243567381040395656221731636822503943323758563876411882539884167225159864301366142586206230477238772385118693857727145720502483871648279990550824748176120597489590289630618180321635079048455938641602503839699838627955667223580448959591882527373102699475135627970736967257153980943563820939799907633007050643368484871684979366679861927911260700227822333210873496344414839401680238326647896370037579399775012966831640737826273786191326910177156463448334538117967798386126150987041147960357821649830322866140932548908077985654128956931780504341784261920258446675734123805488145108769298627249170252684425705911741828058808539140070184567297444108364144183024741141645159110652136708011755511791347291087663688019151874310964634615479608356757961495573272805172784843130489265468420117172002071133846745231037885134669841506037590218860639627559509186499442676573141244012727768238365040334532616918714212505542046552956988476637540957924168027167822797654336376533915450552960120756923086891510251846565988521274455216638388905523972107346248126751750482349506505133686801370584592885127764660956042581991213605456825047017942019053363674933551922095368315322185010329034674365002069262041641918781011960712843215820528583607769513845326162874488757908687750530632296963724300987463326300592223686431498006177639396019132901533005686144367495371316825605943919059038482867036528992684120027259801954789517424929268732832544542612577859119040800043743870090622520484243868987226003344168514564677795293632906471285884031359541069269014388691305780052352545852803908592078734688692752170505182596265468271967374814767790174191665242804362483897909214945525313622433866057043316320995737968735594606995876158022857775478124653892731950747481590028009405376698140147823302960909485500708194051696017057159301559905421240391676559710757405123852151739769573299845556986481399868283955213951542678973610396877185405221731707115564412468138839176978274074496606905335013471106181891548921038336917740742296034403684967913749600648536246553436647269326111540711985662748550559523177505440376553236723367469816903935609920493212320457751221341654504155136741565681468621865897323724164284807574660477514668186588476353310271737202697538824783008237665573899882581391016672087747726107968389798785577230561489273077700771032431045068854609970910700440824561326461303561147859063530923564686570714802189940680484982391454007556515568389214930866572356214450564941033513935674066943665994695020678766486449787547720114921714675747566788384208762021655116288876734610850263675752490778213371082411833226845252360058582591120318093465667113202201434307634800474834832030222085673770189481175074609656605119084860744580976306154424358358905597804601806425902262709543355717210112481471742343640071765867361334461343218033298206431984312140540692693302968210547085810065375528803872113274263322026708057902807705532650375561732393867239471381612711580528249746157772795172189266683352951516529612738239889111057497293863484009895417339755435554671474605386214167756365470017521087776896475831794556572176121410537626845146976311971155554959598283807930944291064524823952259287256650922617546961003317191386814223365556295709284719331509658879631819758988010709918472190534916268941354193751610046815834729386887299578304472580372990630996955281007901724503850854013185737247592410001279036317541737459089262511087708307770035849050777779467615131194655548072333123242403508554142850982994469449397962587627115772529530525844439689011191866265311904883843845128274318716466367288473078386713911412520977242067385299138219927017969859885252483197971409632505201196943834134875781169538335909089737606539424856546362647810872458653538208797981662865443310463009746880814790123399834633332928053752627962839399318848751218586276952991596310608979644056661071081409543711000760165918658110107324524446282631014750701857690222333657991251560402204900963960753050598863479885982441867478683374769891593632060685705403903093810594727139815760574462939182212947475277973611489862068871925677017545082004793781302225977420794147457155371848681555644310272736783285588267531651028550958898377468978450760369783002431194012219504863288841540757773062757060754438908024786115778978655440533962974061400826168974737591671704307387854246971716543998601552849046052450151433754988606342648896956923743784632782014957001514618204798208838205445301414260913528975496000061485960717360773179311462721867560654990066164396864376051906786840750857934101242387643809477473050794749317812132344980083782370863392887087416863877213187893132973203407104358528492089208121253364113169478432745455616503673116271088883445217616007711781302367061940316427486874982326584188084588475613258520828068762588186993406816547540849429352597863343581431123788885289939433573979873826290655154479247974458386259050136517457599468727917479857882280324929676515713788312321652738891594225249265078846034858557053173540604805115325857970750096343392294173611103850217258518779565879617321708896565932734495676226489742343966537769209624697997007468296267182277669087924239795578221877680481404548841050668273174599402730695004924408947489248372298622714910506987588594685821012009544952729835837361843722027273179862639066882540374484873392561244114660671192866755054261527612953035093626921682286812021960919449063441001300941475516511151168694844113906606294686396535913171744630445450643369881815733487152113276659551956517497037716939311456025502455643675327927584981945884321551037447110119509063652808756546903370317302159224834317432439417297737476594911466190022531194223652245143116462546163943259062338847200221731263259015440370464996674823711463886682342760719120390440747164931159836159990750427051343118024956009211783855869901927078231858449069082965101165014350528353225536846396938952305830342608652449182791780365450215950030300413792517812825357700712538834790054400456914641233491955898602159615607976721401337167479439800946702911868100744783982102903493863017810936907543880816574740041958117841709282297766555023664743568787533952279671116843336791895241214757115720842640649526781499066491977344432703698249930261344538565544437623707299008501280865761977993192586755028099416111560380126460605423460597338292825250221955373213473069657207608648096405480401414223068150422983532894371478488630692544845094391356155030742306462733392292886131550298250432612366987329935202217723222461881137475661107474562891978613692525502006899415560197539371364528209003370421429433706529429378905597427747796148874415943553809139183352281373983077875232945418131627451803372384014524765117805859536982014991644672798693029813406205275297280044550323538476796438978409602227034981264218064591978810587093201427729225068841337303086288734725194207089834776799464296929614604048061960344475071175668561507041242555968720287079148565029394705084687610195732772194355401663766450787180322639209998692942729970835256991749892084944851941116876123375030983883681687008898791169309712682507599207248292669803736633607023546198827676927303977316909225756056319933569956210644195336502189837385144270000389496390221986925349295284818078362718382255862950978915417278032098950777492393995733540206450452282123218551983727178098872318370491066088646358384148709270342824932457502803259102381932375068182853062728805471763099203012548822422093347474337140683579416838794180426548382534766383616050928347846012527447551780881291401418683270334808666026217491187888552931501250737349177760757551797798234323291503778390210192660999056917168254594151980229155943246690563519658933941273521621897290349973443075352874665271526229918119629722570812109379495438327044831063040598549874677602763716534524339209057260141399636817300294076264614971438767851732743635527488357649091032670755163361176919830946860006187200763742224129655744481810674199045853652301775702074850888403288966900309373127859344445483940091010142617148245773093520638596006584629474493734877845943750604070601200944474859983628345815476979623283308073901451229328144074094154558865555817116393233074123049108862715427869076527955215409279786979092251707454811165024955879313592758336093901965799744439556265638746196935583172026091290573272231203645213264200193609371824586459772815312869118101444199252575202927367495722787066169619214517214823610013799580197458832509397222820651180355844157477091604999391996526596828409169600392134936911290296403373909362598089167412655266397599219935747734777241984587394881542231983788691162300757791080617701150352674015158730282133039800857538382159075397389623890515048189949007240958454479024306952453336208334838552831367056518278054144988205676492370888790667487207665246629105585967172577527673220300814979147501707262623517239751666537788373610894739532229019092672633213397401175911556867829494344332916385268597522222966499361385808151072023817170714918001075451174448419078763693491195350192666936154801045125172266029944653015235200623129097888635257515374098898403443571843173213079039495557924769277530534237725556605164633090975530635072524102370099817614342010025991021125886073598845560285217251837585010307692578284857533572389499814453217639863129386787810304956721613884583457552289015337548356123189033788800465624278383605377012473159859792436454731561679804339741252743715541918413212983662964624781468388590112049877953805089796043462748041998793401780468471778933932646463032196996548245909744457470450368424656962691204137997872583596207571349120058263312249832225811717193189179757901437823379746908772863423407281632666577766005982840600162449326200059472906518871504343580428254417736861366734312792848357614367298675848167049580093385926437043832736577718648331816932952894522021997960084378650217458648925368705341871270329722476994692629984152223023521309728591502923981306736622785625512472788061153261934801572918827104994866027299021083547166489233542679769921245211504528994505284959548202536417550293768294483825625593927245195120542746475145628414224950679664955146553282475807595673245616678863889769459638667527245690535647335394756367848115831621334705888854013555106396451515231918525853166005285079768536964944976764430414174620672354934058830556428698888565489491047138047759475375229652359285669573927168805133035682049386443706971924441154638259175229724794708950659005773557860179084812925312352254293143355362434295416214201645744069135692977282511245842890271124889337357721256302286607218274656760176361586008788437468478472923640006074596526419774727189851029232108146638269572583556966961062818165732051015994894022030807676987253094849275997563340195036971999114138852567464657557390269543727104722535589515954795832806769624014356493575827030509935593019181032752731479138475540712198909675903891648883419337854870306399810367844734790071014079720976931336513758840894256831255812030046367085511964886990934343081987394908137219562107661837626975381519264511664611290578321338969576988180432582554330710798391355194627622434645876366093153834230057811941580159019272857971131238925237359812697576407774736721677969256845822457654872810520601047964102958543493880029585307711962416953795522712913965640168919739609799130335582919455598203716642255570923791726569487045167862196423171261118135722209983547109623582311517745245389836534754560140164930349950104490163286106759484823200166987500224823999917919116618059527551754657439050806211363922928628682373479605440803432094540183121576009474692150762625827257889999688134097720986164689857646888786210844096499562632210237098211743365133389846778263088674592157794338798800185027401061325078806645664576303965473983080482414138845034404627780897595097027509217799054037918731263050846901637512403248082808745814763468144618629897579300531130614149547550598034899286501428239695543328284368901115810603958400406910565267022769349669533923519369171479290008899012884723925245936961954748324146325761879471235280417897273275981758432925184474800708347850445881858156912405037929235762459708467276232995121101547887306518014249292624675713139039970984581700002299121182140164301100131120886252728941416521326114238542497877396842385952173755681566256412463360087403945511449048393659071742302180422331639938646332038150691368024455501052092779057840836386652233055464849681348750736987583946497319227829506779802975828494017865305536576348283722634533436429769101956472018270110271382875089592519480462473245972382131022423410618183501521461478885749859912099567143739410856193685464361028465174127727494095690432024888783924824070948297122298033567108037742238730033957709533216585673192051430785521317999552964822018473332906216143813059597059148997846483820148311246197099926109448678516818967224251916553196631145081103636829481173518238135037746205346270047730901048790211640963170414929942582295773389183709783122118820283080629959349045246897828739676673809651956820921424182005714002723198306203052197826314091461330302532836187988435919994221443135975027699848252735113366575763411672758620575387004870750291586989995052921613185848404593079705355373461599143707114780556405380403832944488562329452928019708956232783379930019026484918885756976791238301146462152627074237654728274369267383802826606792841989700343639113427952014543900713115940062719503167645123052113473794316759761872342475257110750728136440284826736959518593862440203594887933392481529969750102106754641274492117415635987542671922022122634246883234938365638576506625644526319853972705061357213490778691299899532285919606271784411191281913771541848796791315743978260240301328796002030483679777864483152583035491449497598883133518214708320996772619143860799703598448819495644820640384292241110860435669510792445924855270329720927903095471858754382459194150344959739187354307680563066258360705267250084314162137210183004805722534308856238094480403884256426039660982830655307915364329608047651989437894211859429034834777979080642844411333474820919121474534792635047035611143414657684904879160349890294658984579061626903655476866832269861268219073302854337076427905547772963299202499366576615729046332348557353120573589370212523924245568574528276106126291135644536938884816183184627268086211734677214109150963126858019970146914247457757179634965535789553495934267963743211580409060085816317815212230429702847912988151186268659206137056987755642005099809890011014270788891075526256204083065897496746471228179610601871404815891660501546183073667121346395637715733876263504078259678769833996400441620740928295988486748888351921761221975158347057265884995815790763079790822235244673125909255833589077003722927101033179607810721814425754045884725002715040385229160721723821670371081667868982285943113420481581235209521277962985796397590605635426924434971172946212656563956740362958603738954543256484938337987632417202070045708240606303031427150555642509515595488308463681212466078363480772487849538288180120563717310454700396297808900434405650435422649317926267168961983372614095722096777046468488318197993333101647522789901349385970429499921620838290645502816711994359127750327808721011277756494467522248078139826705795646245006710246333784815191147655247331648525938492348343477707717681198676258781327576606729444790494317232476320781692201183951907806299080588898230066329300733754838599541111235554149503600947956410543612498297054856532094293944658033996280996047646621023396969422708817502649797326516964105441670753282272039520408860627755588608496598607528007840286474944512812987807129171684280944249639528305577256258598557628910678996843387816693756767290258122283229948897134649187482393621656995081397123903931208234570682329189798760974450443540480609692734172926485856797083701165374172548440794718746806471171841586583108686310917791776907744965865421178115486697631882092277641411094488489075785597253737970031864088450206057141431537649229691680442087485521959929096399127630282532985983416066194498798569153225388687069128462586506863549272541933037654826120258669147267146946538600725234643338430793744569725088855368335404579008435198775976104675088418255706899853250799368697814628679815788599441246388375958937995143356787510436569728619700192331339677143818029302444529216805692895652805398905140712131594017313421906386858291406258917566475801765989390355532259113479366405854423723096022567959929419605201429772536855646562240506119021809916973597867718870718335375205525638049544078377193159213238857479986642020280777319786639376679103083343628012410789728359684835749270211474948811078570348357486099777547685489782078060199555459748101081768564697198933612846791122076363112871169582548149086558803777052274616784623246373309151650017571950323591611864676130695623472530702209440533598664686448173735953354326678489702184373704528243002726827353021359433454683912736983695758278577319877127398682443606093788548043319545728525324948046091730528288964886605056982136422294923143632678161457647122391364931356554850347502646253946930649541844020288441417150401886816642019560786730077259754736825808069245172413335808563633632951934110717203097353182990323093402736038777403164206307276794005437865850674220487650776062282855997107158648225302998237321025841292496369574767103072310898964931812386174409363372078754882296257841733641130235040051335694133601380313184997305781401612108821185644390900451123961526547122608600206925917982880163684404633492502507494871324279488608974542084130710147047658900684163458648915935060987486665840232966167314285195401436146778609055784410255689265919718137783113744921857322641506958509514635080438128768437212721021187019995189779634160879447075115483948018203770424091775737609378624797028503775942940796076527429985771890276146230919339951476919440510817033186369370470633100321391907269540598409776600693431587901737244461252708957187773526389326506598118467212256617788795534155551783448359342707137926454275370350458447761344732733411269847116027837194777843663498973699881405287155192832600799558305073960320022892343617690944193046805260492416976109986615210636963273231906435290085409806171768235248663990322456905773995066778587488741375102786951713657332190944607551988996816019259626659507337064866647768413691805283793236033919153401747822122537603208565535120685352565646671300025483632546574774145926887207108427366446824459945083499146447959652654149065327559282412412454051677482297247932081537394387157330634706456780016145598391424552518834127229908211991442877516084084440918535929817076280325499914313924477443934328020106368671792113722822434883615759211318173203753920172915207290543488010587380461065349424987986693619096187330593463782327572721073761817173627504866035684388662090552879293520737286551317929242112941255055125410146418891923537829216260913284336927032378958367935924813454849136303536521987505275676232333109931094851493103388395105119322148921655597159395068694571677442883917102314585964714816942315026963183736683902961940633738866758815998478631931282389059701950297579883065004364629800642110629901606774531395880074515185368211763349386189054892346897555385050919550989641977392190802259860848183362805333217655640989611114350632246329528947063777045655686975732842461822267328297093729714203878849774930893502465968124743085663046330964194858187215883414895195360376394076021885921562534285263753824951129335960797560410381350242800520777740690420979997766952377449739386113437129614223222365032681129288051989642870839393252467499864641846416734675399029849425994281351378118771403413448328623531659061887754597332296293610157421877381189544765072370649093721039092137758832762429876807257941316478934294519887889101217526371393821456097875274142803917519999735681796299734829297635872555788786593893210526286987429246010023659342109875850142425197980561332302680079551927223633965190094589930346761323623046657858658964534903178318646717497870985273663583761851098509540631598613996372395068974171086299797616734405641046948394902782750690536612146662237441674813263740469515181128829275389481409429244245231923772147119285519173860257909646315752998123932562520482229077158939068516276053396925981751474743589498348851643942529285833802060030689567478087919252083888998671077606159261302871091827513204504542065087342826636172021609622324055197108658993186587077485042500135876426311388794952704383202572814408504681123215021698345513322774303803958600488049097445209835574373038230080119503743455640381538599463597459578611170802255781221083009136797871096899753880983825507560435090950532699537788066975953959279758147023454722000335984089511824925280556076762579058623783267301426270151934091812234797465845731240075602920583737022138654801943643822944479800510567937377295629221290216389955460070024971561906054105467692103575050750933525072538268141897915046267744765507049778816284472157623812075781933607688003497504491511893811011391451490878063602450620530355845970592701769261653069726236611523954916994952573900251418186252372839600716206326184861784219321424261343420436010645896731549500858821736469556705579915919374164632008663647110236645487636296728842719793105539493077771282597368391009184100508446976537193896612969542338122517181118170518388729864159964299632657199200867942245513083251007064651789003274603748217183547566688515892550278836927508605923360447337520613250093018184315929980708613559739160528052776232781635273494728384907781590798999287709151965313279677886408613862466437281424094411863835614237585688473988717663583047211494469187913646827628308394476383308147326097231117281057198345657005392345039010348721994213755135665915764303058628251490817003271073917838192049855591966103547337683176352266295062873891896423501065203840231961154621179614473625500569035608781232698390549083796299667811905902082881061203009770840864980364361502917934755116849830444793914864765026164512500403161872962590341815916823970218862774415194842869827803666536412637047837711672768192556333909662439247151682969231249735403749925124364966756089308253783511134777520865324887400433942790821684113764567058216041624562168816613214229284698607234902914976614533799611076594377247161941675644430132833480798384640529967613970631731032486090478069537329870851080135961593402874882516770775818448253047982978033284868948405898664432238355588528002745786074650441671859247193895719816733022977456652435353323760255500055881567449006088469768389745442780980214388193075692383457119637781041244097240542177371372155478308841272486405390506120189151727472806044785933435386438749294503042283476814916217243295489189960868184458783719250500152255972480941772314461101938964241192912886799623215484270398418930099969305807399456470016633183969241294923851391228325461076032046643490558669703946421796035586926315707912306753739824484133969604127091147596626655655836594241109365916990398463575213663321952922037595972749085161122499188052659688056814656250954143800969960634894592811984281164898830622674432222544503752141938196916466790573671163115667902512651233832124290125974664298543858238204271314895142094484275078451343516110763106503917403287560463345080853287698342713431482057961078693063242613783806177098583811570320839389490614469738760947248355569441798709652424381891576090017914221158094498454147918215839107334607496665941855096974787817317023336476757155465016518794549794101251878783329902320662038844027578421833694531935133454650833637485823501644682628001583475248616566971104857278951499054887611134635883497911928260257728585419347391221551234689196919140192083967149608517819737967707242867488588884187427356886172423503612228485548988734311689822633901770686662602200891468817231905709249734093638092982786678121794876136142757008963165608121454251091681847453766363784452680022813427101408788497580831473045700686597098373955718950461402121390960302193599409024001940873270764413542525801803818108466152705853964663419297001042089835406376180609853469231479847828258187697074081280156922357083825190723027916698432088245336265384757827079787271609621810538823110074949512362413734049492392793655548595744287370437696353162908374696010781226235481827862649828211178721029536223695319918227119063555934185946588727492107965950297448248249747610948061041347005892019875868396175097971603053504710056789390415441059844732788415917406418858734750675174855421788224349431947538899437253286328768651159434979135759787815533817870752377602809326927611497934149467204455803988826984185502466377135956411386980159622191323983521718314924146318862267121891806406884617856021747771312114648047959543765953275567511794847971921267189622150106400217792044698408909173292879681229101562137563353845621984135842600091550811449685990373404670362383231627863847375382271766789981112985306898278657831919034043506167764283053597387408007086032039178706350417881543391344493853408277098991585895675952667179108804288104762418626829696831230498073467980732769011615678397757470435726741751733923633950617371666821939560633230695016951905822064477657784296851892832266390290493970406514809242664186447980800071853025102904351065309940812496809973869083653200158992140140972732308113750744237415956909330479220372462897743179215872568097055967114841194004669012155906880747213999710307976916433779451896862039978422264370446168067288381751878576666035234863851131486770764425594731161443789165855845765717285151917033227287508068796489382987065358138332529288738641126567531223774049872300488516404444281144167164596347743787160582868284131735709686824834270511106729130100827059659569850200263809081843853601822785472038220464743722112065543376191317726435812196402851852924298676079658618705311419140311922962222732337900600686098520417474529034903252275452831932578034370438859654957757504274053756027408709821957640170658241359621981624802387205229002929402578847476477291766318095590912988647894749174329803298490344480808892556257760971149377717801246507002802030600172486813124580919547375172396072758197988326016599464746399158216719473843966257005839673413131295211100913941477726232283251617537535748500944713835877581648337398690654913830343206440048705921866621067293207436106977944724740490315315813872761974561469124381193523655241302613429056368524730468142722543343512548002891631634979540950166864807726998687383311315913901162136880370698124118188437944796901685876321927205923996504480225394055938526210509205296824176256288229185136618922353694009752175192479616819500758101210180153132381257364223655929735941697384455815469058192624744114010462720910941888177757690118613170365533485294508895438025098107383491768942324572281148397954139603012954148474719525026469587516074493511849910959148578298657493460716827421697562096814103381839696069503040112021299925024381315043218144484996130851728433341333717223324910548768900219623049829269176941038205719367857034799383833965108164955438617233790151610199008864592090813498677327050097592534503081196994228523177942897153099037867287775634918853683154185739273668234924271348608138809306636298567136101078809173756648388746706631999551607485570463663842915862974904397469245170102978561920093515023059730718239464958583878671843645636672791035069811787634876303326734258787615669811774078827715503660313510329953119880253221640262417097784040050757802819037007792532442118464395459448665742199082168749607176414210985919793734979796172745451231160464935913736456137307463055591931115154913256838141577753332432797595040733134751861625465389503421277710583521725040977167711323962120764511259874672384592494733685538662696775246818685863301318740299069133408631492932006477965607524142117130179510558606205545928890072508679418601155482753286085655656808832337511515054386213855895104301698235946851962464673676730459552380378813316681116202507282396052557298511182142096973093002438963655536323349866080101032334665799897442938874343257520674268345902215892832717110847570822388281237413608453344112128019562062670540393030728902022546889449926152666582600372341506691760753552300741201478412207180264047430819431126349244631784657225666089366133670591969922737695297489553874956210591254563923280501890132039391465704568084441847030551073547017101592059539957691584558922294658306049276570063940735545688130847003475323826288413338460758118968256731213474645215132222113606163765807428748417471740815716157859460615184419111846910836568475197081359354861304416938287175397794097985984811767396044421821700251509384896496095805759709236643673301517934050387516414896634535896371439701787646649625351945723861190418289897741540038356190329041424569797502818480244247911626979881407567306679963546351879678361868126553736105152203342305219956648637320785975852003382349623418542457746430459149594623133598296124455196543230239310846196872228780216908661400051487084064245134877431872337653244746124918540787239919583758919189240681192980370769767969601830424933200809370226958752331347159725718523790647567615838296505968208104340084728008951884259988239299795530688224570188781851366714044417194367354641016225969570570095569203208325620148250866432400658933351685565625782649456491433328609851934218853522659475453814623725601663896923249959441498914081906112357507838400609857471159044666072690270449937884022690365515441622609655774573307634023954546948326090665573377561396699230593153764862655544563835357373052988176351383151793689985270354563282279401332856141204478734407953757166979500262260648854148239842785770488242053317233316582826829022604706392603945560400437309023282963847842744067000120544528200803342969434140023349792736107276866470974203012050060766736807055577439597790634526969782905853217766459809503476748188958762948684134326027127243871928715153895368211374005924126280031218229384669545666830178745564086837311222551521199451619128072240783176432435375569177910693132567792678583310366303238907262732970432001737400538209084830407411762662515578997076415878465854724887429340869770610619717525158982009078897134226546340151711162524104327536422837737201201220439633778006904472398260793292114206195472492409317835532096563211283203823131806311952707682550282011512380567735690203261990816261916038505506196979346480976166120906729225087043500525613005074696553516353988605910374213452096795530797216730503126273257002470034180357917150847008076284448015058173370950364669801823710755581587600453059266571148373579416650483427553921413576109506066925622020421193004153069654107354696363662118509201604223383674876518538799828337346019712851027928350650207269093484387080909150586418903752978892090062908730097181538052692657683358337945898567470375922879342521134007570965351342069176430090485540765742564753167455884494829697350110075824545018550918809105743615215427985447438338190731397010732262943082101544268764164945583629107267274572123268127813672732700211589386936914263697240358474961519380671196759611802685856388937119294957034756331726915254167565471629915295709766969073446502427751027635023954717576138992208552216957376818618974319542630057384317121016040624030652306673253473850143241286344216748116657915178564366769816742271881186432664573797826625783764723182033907405710993983882816234788958731485197233793307035392687916290664723811082814801840302106616295479618393482845907550505021966538155759509036543447032093217688257581087071267149152267271006468969523872749906758213604946692045555215592013429827190879859837266405357309355489600363266115902350413746606302635881184587821748359637422761061747971465984861370425990659696784759901710869921586995489904998951816141237697945276046818721018028210915040019792587106967220193180718223296437199561719062072922513535625350837007317109098418339813693231858779001046973068933344574669419117466766501465393628126357074238422410366471240390339065043672036773504550034016610628765020088648135892408544871288202770089514009314285748133685180312258409553106099895151824827048080358084137137809785336870467605443423597431705081533601321509047851332732289929823453925210040938062675346454935845027982503338700906228576825301712875257904226526521582409877815464618004409391459952916913548918485309677596867564307622225642129128076158628209019380706155070543650101217941942768846790076615437848444122809167631903903927287067581167936629098492094992430411599266125129538453389260292735842238711735938947735021297793926302767432366133452742098090712669223521210657835629022548210158566169237117696738503436254956829914645535419457648006259884281002706507737541086736162446299627426806249499618157726616362064956994144606464349135000764639044768142925564141352296157152046000231992683682808509659213116843477775170442808181120836630508391445250261295822265837761694694852877773152545216336564605662538595478492055645497715182763504944532951380960685863771785658204790268202662495002943045803555322125790496681507859456475651390769857331663055558805045907648846965339297326304697564919764602322635401360839795815581037993416180691499062687123852107378497833249479572410603934035254818996898057567097889060016326823984112359458687587887075979903173595080155549890377569009898719971850119254060154091626909872604403398507358869765281448359610588101908101749420008536834449726471918257557539092252517655488583983180758016998614264676488011911238225246760265373881037146367152303832906148446332710701966193192240833699540298386413215848822771653279053628978611690181651199385972010604033302017611904444058710578436198255772870386312827665984243810690459712806582209165709200518598686626349189935082547225275458822917522854785598828399916287087706034813812740185860282106563582791873781509708199677739620079104634530585402371359525821936127390367951242607070254928706299663121910478087855801165932785026500221864558257934898859219727323215820886675520579220476799617019728393667295946473758281719893546687126169618207135820151108133725789749507799090384003506457753092012335431598875828288352768372833283019747487659421096482729785336096228409995081102611499157077284702490158407414717414001026324731997828136352979331013976184881370578155231213991886382560855895780570803205451441370414479567953033440927369055480201117133091923663653955856494181257168649758428122457115820458674537664561663388116609492243982851856482620082379602704075581891620728963211876247969669058602717778949089757216404918426942425094056218813236466110682309305458883262115192318014878172667725933920461513164088412307157066175835761305979531007444893065157930992083925404828251298516293097759143685324851908010200428777620382982894621333172861772923273657715088047880603597204142022755180461277697330548158852800483949163507417147362738645790943056670976921016916812518011610526376179192988661496823695805538253397970543338129598062301940709595335875022415631985616804932039978155302325697902694389682751407083669935535781663549986549966544062960248659929324699264516432860042355462857459292164389000958567337434925526117010733098978980952959182856084993715625239768970802550408540834804723201783913888852109213329620970051524491618427619241878408434403287936525962144920062256616562994845989331753821944261373664790039026446024630697125795628126755184911640517738157908591357064346882369781751976257013413604354593879604937849936924520917210552340010878758817414030272742404600058011231444736339674944973371526981587198355400593633826448906066166281264341063009305730249788514240803719791941604848180293467303544140017203233210739206041335991843754073995715610215673366508255028062255442479464472421320335978475978413830904183332602912417198024041712294381948871089587559347468356431918711047865277490464949256936907364875398776743340683142787922044653316291826320503522049816470045069207122954181680263200729423481660862980218529122049891113800593899085923460200401599114557706182734395244577395303013788880753408613415550349064543839405844548623834696999778430060573883407252709660972894895993360620386365601443917718381795488730783780369969970405492098079514131571562973642720398960607904990784781588262149321547594768057003095477875278503735326984511058363247219405561816909372664133679113775549920212810177611377463815237409550345658745554058139582760429304613965959951418087601259680716723283256768100497790358980867774482558075793352230165541491438928596214686940569621008582711211393449899307778078562272736813944351881821250699752226069792254050346615289730721965193433310723399641113845853854832683121753160023358645952886946482145282668182337617273051222492421749551262823728533854319767285599605556816112159131984908741309338875621782519811185506749471973412123903945349473952347799722532292828181803088719525170930237717438354626274207170204899443615593375981926733687646643491737581946482470918427378598833895236166114565566437982809638594847185293619338709438573692844839613726218844908940155784582350780871567624291150076575399024517610226171207167558910613446485567691023309463419065007949745507965666960996631609430913000260766970586861279746107655678137295544201327098513132835650448097561364477203396339890056438183421935137295779050642304193973310463512375481126889929840878289352631836722295006115864223647729958875367111248676869475835196326894600245835322548292758106328898563276428836477993496973488713415270020902834067620773508450500077202412076722304760913329031851670198366237639930500609147102305033093509421162763744973163356418017346626869342326052177930154033083037786263991001897384990317363567160533584384298436662137009993933984657884975717041653104274312200048629671397005236584337391146333458534288025272391541950158495449838985208266075278083053582637715928758504184708188201713002789911739199461552270236602386450218635152467338151444244243300184560812066911619955212063998251093670457921059625512813571672891722231428975395639600468283281669869856956510846516813945592958521262410306977057782312284202670623172208962938157009633788456599353491517770700047212763728823310371020808393521463062096616039539007509826744437955119932209771422448965039825871998467330485710324789630196440572103463091202980066596032518400415011938158549053972085256243733760374486941961356534907648207288041979016225611451304121712605341436991947521036954411039161114172914029667122955767818103582841100746639163124669863204195505210786839624505842771349659661691587500834313350811789154560723278455070994170417799704351745120985542454427980389255970633444918650396921253547607386373475520998389833151390272034840509900565465475726914706970120652058638267734484494945606679144639296657723531738243026439677539365205416145539472020943583921691796493777734439784764826079489893678992292692405518940977278475049572491494154135455484492213696059797584794728273152699269832840024652363452047351773436126841578772723349106144163369181203277308244108108148778687318334396410356416239169559222449759856844265117915825028350934747644361786807752469670893995403979951275475616493863892298144032425057050691877443696225988188569755967151457496845690005528078442067718025126070118732456964012583467349354986682415858204705762890201832003852489620806413045893156757732417580022009729819005721336426800843509412424706474405089060791231331120977837969490815349024120871532983658235807482244914106434888410745420616595920247946187821155086206927370516235205448241469701834633494401593216910944076274582257594540509023839897965236687354763362166567686112795158035954654276080966143744086878804156159392820554220658712317314663653819730068783375420044282213778570395510288247087376731852508385043135498612620658096056789097531214685406504021785835597069638737712390472373896607367384130734192948255086052833270901967249628376068696667734793200139051966867466071876244063299864641761123016322758747994804847484536959953165630763131152607050285595429683682170804728936293333817529726141073805840621455794265121133434279350584920300236124739295676021902443550101034971782346207346410460397960364056609821388204944030756469958734266073866721428113527268756784651754231169608116534526243173403017715041206308031117760206803934200735231518385248757994143054143504311865437177275530596338533869192919343177605900028256115558253133815422216761236613702185395079337586453180113842371129412519292373813649422368582880249207730308098609845986469086231420010947565955646451208215115469274476535448881093361558877223641661026137751611653206106255984427312041385233343660991961255930167579800302411719160694740208600767496706648117965592775008463548158396637355412706965941186860205509443445136021231544251041415148308898768145267213333787697060956422773814177852982815885162511785600746615971589775491530703900684436146255995046992608747527950664185351912687577680842849553951165590729654795735918407364451812340957699528017495540760823781326416908119737010102863476719784880781733441352471456066317009753537139588151909254780148461077625640216044820218579968972151620116212692818091484210858131027950704691961202318584764169716685852633235601983824220020024526019524502353986159591548566425922968701942179431313545126344897258429907169638825652231677658600040315412673229850046702258009885080564079494519981762815143001791775779933972088923847679410009105812262898874221063878358066080052320312911374553743163644286306216157464777179483080950051541326830159037486517093534254963482306111652604726134260562608181324619085455919436978546736869559985396840797155164614693576070328307326978580473280641669633455221116008429850529908517273850913156378135845568764784658919406843064754943468254250388443733221788111280439434035110786083805278505029269631229951215001334631642159631947785014260316880750063373672491309083584512506264077955729902984330252210390790656580152345749507102870667233936359262521640625067527495634504453339168856217892061429395944040899606172284511270611128998587443998031173753912118332437549798485696426802887043120105216111432147858098061832988984545715007428052405593631007392182167916379902585999335302758622027771405885773773571623890208011941233016513605577170284190425741054403716880702510617398835464499955966549804513816868643651639823149322236047239289854430501025894965897232312168978698219622066152756258455136021760186058256131231882065860373023703652201778153334793963089565137638369245752377604197367060022155891600986057158392373922214049192203142692006394108648946829762247123773526133360795099720978387691632756797468496778808052847686864271962739184729139227312807020843774163773964557017894652738529280449813001617236628977484004155635406053192050459830742884928854063427982816338537072229797006163668976105469452655295339481297235025056534429010285271254105192908478591330622468264023471943264018736465758604937604534658268389950981112872678781215114244966759385976122172605937347619768078883192266290425134570888740169562389573527340339556050186633140319848011237723283404610721422867204638752151530515693118248752895717449574705539780900139271016018519590992588402992763425110719300434153955032942890162205481832978578973835607998026585158912237070125129767689583992713524597693886992127789354076242169710954298932482052337463563837757696242907064758054961088122640487782440487480829860567065068151713170531877658802740991366097128045613044803473166129766444732093018486407105928938986673248493476548762383393791162596328978393142680168569343641185908100393475507691003566598327870674873181981352805136776671470755596562217478594865029809518137104956756191609381274641881882670923580179327340768748223527012414691059153495676448837773690874467578218510984426974370155241370907810863704742901819997959914302289620775944628638027970844314396320128241738697024228054817237741412280601358039199064927343766143690290380477204485398066605215051307556293136237896236760835361447092986243376365209045657699229835125447617000449550439194421852781902682192983840769196856388855964812852533656692537423597710256410408435633636364317753297983749157668138456853841524342352266104983673612626488522053468879124241885295835187592237577498944344275732616722046624203651334399671972038239543936047544810814964668794701806964726749170455157941380380534888081595914465388131783661977500177962328340972364036474276628918807007996757595426775002970468032926970706027121721802569597473220715934836709705927647661512683964401243626024191946462545686364597806463134012717897705012697454352973708193082656539245265696022537113691909888562364143454269304667517470040165488765564967451439820618814086122888203850653855285794068096023437073483833798934430092856701969086282900576506970787266382264900769831448643055254774653569072072921384853527472281167363023705024836647224876066269136528462474200243348968353538944500531447578205529230254504292241415905765952998773398106377670894180754193990856640641977694425715434292602711831158533143183959401105311431409087767616089234702868289689657241447136670429903592603615624006195945815578644410329658648038199623674142534434974587372130052314842965267127673476681639931558714078966968302379805528537525613837314446896618537337092237706828414007235103190094481672742024364325690689973295465363740649641323621035969046701073444252463661111005055854863922240030854006914303467529854504568102618514819614898200041971114913865076329050890676482747147216707033004927164292382738328151000031375454620753649428163029058064913642806835558034238583928350603034306908107747403012298728343628363478036361334333754905871462899723340342827432187958304814172218808959484500085395506650818486904377388428732828287925064936989245414076168949721160371313568390213215309095725836164662639379818677589923067854272718662594453965940946202260123512952177929696509033324021111753508598079107528943007817736666200130924155267623849164664500366170084406320307204874493649525453847200858267036572426740085323564693794694537875680558159390537542547582890271001695112856386503228592857209687431646910598694049378095294786874745468512652096178402300599857473635368286527607184871238522075518703540745342099358954659466549149212707627986697911126418330467625952027378327959793949820051773167884301695212548281873737632722170495371260738666527357659344105091336871411442489132499378494915603598497179105755094730313689041469291585689686400190380473177681707171390728702780449197991981329776734808929810777368363119446015165216508845468611772628543963499401637040058076291687138029950137663929003355252183878412082698738592282166849443098004412168989807395561691837580632183871660879746208036880854987399847895224549097805696158419277631635846746438582473275105134268551850502055736673805802222534853585379049260874546975809856380567745205049915504643940492251220627358082022796144086686644161123681392713975423016061248627357158193460774819730292328510990426495647759473330894215977347376777640123004756175948793856632687193942539990806223132667967320325945751495211099738937602051454217850707301479023773301966173801036415190067192036156635560001995218576962690398933072967969859349952125585468854932374805447386864779165889905811652851635034551399138016800215582290439953529015387326277413776446003187323212446581046529882503650575765681439424463311976147354709363240638187121845584080330798237631188224924595345886721333972964317979622453473437896029246570251962822984968019683989329023556695612313553397953197053864853545525244654913036824002268660779616400726340457790826981089644130816993029070311433476589362850677119550232835218469382203101223581145505176880896982208870757467234935094551640043532319851304359448690342481842841902870876485306214948255244117592000520109551515010183954104981244613068685162688962518343120907382207186842988591890370790329777462126890578516397205883694657646175270146540165923384020021608370035055321881364977233052155597939459151293765264714658692299093969007724170598699465138997809568931226809805708936701625627920767986826545132614663092752181807672932197165389280872447086492764334233927706640337812822260829264788603438662216315503278712781729082190312780085730620296440920980206158201972551188098399523669585762129985169285897294371858289163191027387899928049277723390451984460521708340674287629251369731081705986056513367463766345976523866351276474014273030259668723267657042103850841674154775258114546164234273584497345958083228128835919828684964307728529345138229801589932735797409902654402970519686404519084085389578377856954911392504364333505741936974643814740872100943132223531788122285506848615945184619225933089789369963996693998740958482308755556827875135368579980334807865095410158199022890469620535468520452783241199296474074108429685291758841946481237694026111866850342351105868215925954971049265603375475356074821699332546593719442456603768340579734709368172440942962074124612020061908903214093777073038790751133805782223621456745692110068671738423698097482231078342090515001486441786405959666692471911567668049277415112576951742442880074582987026962556141431857870226719930548283355011783293393246601256982328802394747581742353259078268632862096127748656649597058818812430410613037771594428598105922077822153162291240072981321468584004820418909107828123518969659991936272738501648120547000977012960808134836100747906116782483652671661636211844675270677816966754658009283454830208209294773178960093142528439408013623348879664660813296202189798753692093109985641589633143728016275987730324122061753028328269637055659032764282673762700328833366449560739402008192251622464629465747759180876380711324329591266541598659750386802788216440010367218144795780559670819538258683656996596895122309546178910275588929956173798040748072873868819465863797253551895815482409703822218001442201470630348941011871950148594573007958966176692198422243486642977258744839629308781963722019381956017314349746064680092729554154038211280726856890164727828495923983191313522966016502849740387362414015704045626711322324817639981987901624552069573137029795940997173868299650539754021858501777631997041369523142375110836227737255669558000745360730573916083329127378654246501950135941644389059187052572340887098405617599887953428140319865370770920708300636637415437855484150078107749395656291777938565967131861669675761463251911713940100370843910387838652527771140242529235409732199882483919362132256160647841590242710080103890238942350396455771017915259611498717812614632540534897487537944378156473281997362372866594607672060599784194646389867742141842546495691231836854893639441497967129937340589678727878111041860765329291841199910617396538078664735230441326011027322993791053865147354480639619077051564702377829850500916010317967466471137914847610285631872213821129588159733117688614227106543798539283410842707095738617293965570934449630707598971751437130976833640225315194761671453533682197719972100540585011199044048780893250589620108719379228696510645968066931720404722657662036484277428943134153383027129607020317740842525377130423862676265043392549167809644253846668878340091879633742398338715688545909869955740799183805004533030511753698518031260403216312059021115934236059869995267860298201963773285597447443038746502545113964713847426337112277903603220307584813650329915820549404274588602617150342901953152697975293718796738864104885611453599344127049449165393638965391729843806939005650411508825905793274257518440775304730536533210336307279992016075854636079026741229351234165646390461973057832691695686580090420316343418006483554002103790394660701817079806098984397998149137484249348214749849267518516578889489159693388593321737481720978918112043364573006736336613689534588204092201156758738937689077406071535455826680931572728530462139958756265974704784642098164652746139940235584900883870845340355989485443113340502012294794751284767321591375311799856792902299645776768692000142481469955871958210910810899925041977752574132089303682129271519449980762530416884618059124561726808697886677438484964513870971405864971228198172471005366757728389341857605957303978969088026051805555298911612122024956903398102801922237374089025838472088165608265040649082873912971687462341668006112495464467329501780146354544979761714724276587950164348723351367401174755577926381919010633758265566961002903824213246041969131787529348496467007131285851711852358504964732612163264917468177197195197933940013238638097010831849522760523260733595636775034422805195302071003689004904882034360520695513384387139310887682014269447509458967814588448042254645662499168565229227566593285827850986329424369640449080753630563743800815904586088881561198475866215570802580801932040519130279163155046151913103232071388098206379051032727371758826068399892345061324528945234957898943613396417401130415378546560256343095378777840920562479180230877330950999728830093485029419188292408156338663008813883081930518636848465715878387468897518003543857387971736840090420409410067168953337641389615032876945914507312030886144676876139079815222289055913057018759125939258945933512863935725914635049136432581422943037579406599311488686850915239588009231385617811869384538979321885841913140617904676256851222694406831018283171542480740099317558536100695708114840730633433335110091694320416838711572986669227994151689725202590943854098519434371117559321507957005640224379447256689736555731952087611040606191007787673241784827481871056901558097476773422510556329581670348533458301241400123688350258275033308937687464852413068609979194412614434698054298325479223388437398332561210804414725790715443470934098354473361011132265708703608109082754231950243491478276536207142260122016211728037769616821523277938913585595901693411913914024943091816867749139748039175085119942637681409105070889030578932563856306958982733234888250251665771765856454655460261876249380138470881083865982165216368588007545313447692905934518343406150331674122779543388258601639564440954507434050810189153332413967510964352415796053529041271102713796694850899399950472461516794493916132776169334872114766111034873177137575716157926916960632740284611689558847444125097143638012608476789210335597863261316909411779660646408785280727810066538471416855704711597851872547485896327231549224634592420740979640643205747520778645273939456355736393416979190749896777474441252137047679610605230192909387332154221193914732419776676898747594735412390000207528150433403922264619131658256437197663539507291548208740864721568945180031407241047901421275323786218700477927191158069854303322331244380302319616411715279489705492198653634583968462891360635588504413379073602372536350140145767641598185630418520180722995127337493353403310167782002018917373647912783192454784815161074057146261871502005655094605368806533798698932099359202740061845968068943560377145340438504101982923495370805959783077240091291572554288104560902858022005740065146565773924915946861287603675441020816745325999266203717162510917362476378075771415916862165518986408457072065125767514278148084509127445835216245896361419305955004349010176599271338750495515453219351092539999642746934453683887802723693044445811881460792813413058918643644301557296041682053980315244590087681372804637545235299346615516961735862040948127248116707258167553390776345038907313211316438520783085439434927254833327582871106270877120583434580748647931040695703129512122412457384212319723836034925636062721536614718139038838260864715513830061735561932761210253807675770012495376905205694237388478131527885681633530219876014467554445287740351591691087394047398505846224478251344242667483895504127586326559963554875912613226815657307969743937965578241391779400677701931052718827155442959589990345980753798210240421646454436756967025642325152532249094291027244390503082052947804524261660551103135584963885933470183496452943889652180812888957570791325812755017814108306265176108213466227204120889911562679161441749448382785063710284806667810835917184161917823155875187921440786552702481237339935702673749613552220950987834744931505880614916971556884669679453910721003269852570837386189625447760170791736827532376216834150075584073407663743729064813903495887852580929410914809844460115453913666231694856263256994267105335958264857510405077379203327478892941613836136836331731484859247569274737679452326014300477838118484187035461239039773993199015474663952146660632892919897816876072421153113272158923040069900875255794194981696531992408614303475019403019315135150696892959988276431904430439610336820274962944785809985593189324746888273545868828787435230232393299711290766268754302589965214979501889190448950001899929278003055340547275516223999522805834283541610514694622509572982477395440949283452957845499234496116139620237066507639468203406246871358441143358404662088195164474384445831304807982935235526005993261118869163095500085767018188190230117935463877895249191508133241896250320208544789054692679468483201826559831311058270772242231643789449701258503795092706709075501853333156761508801121586440041619053933926360654447597721876648060807294939069480454052323538019054361555970541361555983053797959052218872390891810102600272373401433095897362973996400455110519459783590509390160267287894590351659891510759352619563064600805603938615527765572503555813010935372007978166560208338054549987879656906732642853730265063070084885776984691529478355775798177270251614897397042839586979426378409107811675063594763478643668397381729616175324833864928486782535640317238427421307734382066125750286083152527579258784583946759378375984925531087751084631343394188378064187900572084925477363576416624704989007002119279269151362107499455638154134717278334770453049675483268265703934124125220901390849212408133184771897982643867369621426561069448475561805249095037015397605005631247677029987562031189949763826879150636798356444803624784122149658080406805330565117961153295483098202371959043852743641680165567442774141979460236253333977989294063404619346374704890116324314505753456079269014144952431588035906041771968814348185422372704102832202447472894852247995449401094426051255920903803293887211880377941354964309670167071375676656134695516008150825853905404294001886336577891132616462838078793638774616125389610567417757973006463325708784136695990411952925284573806378944614865224832661347532386257942941290020785705024543921093818540796808072128151591459796261840886203417837132508796790604108456992612106961480119724726509606953310152867366412314468491311153972344406634989920028048000610034841540415247147340740522551113394409355553160117091110065137052024333727396723051953268250885122782925627337558393479028173187858226972796608335937307787317449046895074816585740870336265773645811056874043268357547563263496121083779479050720243265501325480979428263051531431719522600676287897314300700425493927817186777202177632580638134045129257289507833346858844093729823915014497108251659964315199723197700634760141657246769992081063119257995832657570774375919947200573914500565726671612817466610832781903372282679449013078322262240708008287149105236749354795582022305819378404489187728364710336096259636374735172795428328442521115377926253688367442931133459675438606497348229846199963959892116543634900062467620065845482968645941265002327934990935879361111791154850236624868190991061191989610510158269967876770098392543166781804523713689886527658430323502409894662563188853925994401250746398075910520662613861067024306751800169984990302511456803231903359704096786794257793907152101198033727414760290239468424903600311189507363863778365036649211619794854168292714496114047160861707697374358955050964048332824392101558387898289346510654833059843397338714360639068257378885469217940574602700049086165602764103170884338899828898804305599235789048181949271553184590948317000593045346719670842736712619688010668376623018915058155195351877204298287720531254169234946272423579666645341503878458960602524954933250902996842260266086997555038295120090645389138658595639529893258023983651108220975300315949456326586658579439611275503379469089262483377148404741506691584248597127219837724798028176159945749216063100762016142123221274581437911707648055023126119746216740127484661639228535956115948146926238402641919367324746128559390986908137337374805379930136497919769759302046212728024114579663343641739862578788708593323277260829535615140471777168565613731809150466293909179620168861868092861031614384621846142434896517399274569983039126717712590457351409177413861386270989052176373617803413222375456495692115954063633034500439292468491568109010321585870136669457683329307295021897921497944727068632051980918525704429616037437544647307568561003309912487455812239830874695711715631308168255402816266783016483541396126202358887371167321667520392029772141203939773159015194098742015219624078507384858095759972624228884807568851917800833586998327916281498265748786196465820525663837939922906904059350159212438376329355318382466971069041106589210118272448117830807878474124846841516224020439179393855360871338985021965419463365805313332032115854530333909592356762490874370054368340276495228224514432757956057530430130753946619599837568914167784484749609823499176014905939645579871611196197068734550517960758559580413255566608720181172743663517490720811212556906737830094947351812493302113401282146222774293044264481061869517169177465438431578095823153272027855628429319599584523465127270781656299699103432774951624199498154498046112788687715574132929448909722218321544960250012822762441651770512338326870244353356967666508793651551306688245603571278724890137323716210228856320728479964648189050943272525414299505005896829298684373618034103793189115286970272897184598317562950968504927313080117959585308082305645909994398811643095653375334700246240542580883151973008823127821390220911980399109319414048280826510459699523933520815322294719446788392468274406827514101707719655271831022880960082614774823440040270050175692686407117353542337898295675026109934159009113573754298715538355957291092059403992272951605436179333962005492873906436233631347368194343081460168745972228392078792786513235202925620227473514419733725905049127202543579484100591010717011401147087864168124941876207041497021926180051640873535714426421963468889230576304336278122461548572852521497667347997201480487415321423515967527212190874296633909193988096258909715319982319570606922706749191303258973582522588115047291377290776526971460533617498655013533276978463426341345920300669481380316440893832708133968015610424512687904503383303572461705989754031317763864399196596571863235808359469844989879749000061985480723187489146242904635538113904494808916168924341294876189899125407554158009807669556065822448504887315434042386925513307539046541914420705269943863372154508725234607398528906885344849457114219561445104244639432658560611457785338694063115117724118558262696734170819130110497443219826730437605156989248969137818853484935867891185675089010446595515849804818651739706508735616429362911026750699137220271010378500942811151605966464834598103201529556683139167657115076384735232322001487841603699231431491827991095739413129830335496037510036080217094741639795686657363061635614811803989153722547847557697376905265010404599472189212758612690076196972191820763323765320698508190097401394150155790860190434597980848474502320127010228682491081967113392106955579333969180116941224182556104300126386484978742778478411906151485315533724801574676385706945628943081226000994841079062234453929769200210795858081341776914849967650421360426294663886156385807388846933894116515648368463770882813972179130321237633473580474769717879072216619940201222035076788372948217202048685380618097777017213044080335270858783796709690267888262610809653279735577439361817544550440905215698293218950993952759492703665468573026190281663775654187056941331810237927174221865405996022096988788263074993594155025148960747964965112465839039586467588781168647813784872309618562153464149093946083675111303125250621102563754295492247938399614828676712734910063045200968288989406676927674091409591723830485642862077003025745373076175400400739393311411378729894885880832432102133208306986911689746992167119228923505599740693704423827438047655559374208121806358143133079755637435271697416028339698256893940015015969201735532181730360768383311726740589201373934592672253174829979586087665212288073334638225955520864571414659546827154679663581287880905175438711787766598122603149527964011863439117660980613559705267459955629564579116869532025345572690020645886937836832316745689640758916928005083497441493211334608008024931455343163947315167897153199707905445030120243198750626401868640341824024587569174976156967296580643931473238859359629417274749835792415620572102432678600040075516090259838858071746971346204308422670671909084157595022325574969321485385337788668808498205726898281547832879739062614698094508571365799227824895172822915299597600071419550857212398437593553699250910459605843348818805354718135599258703877063896636958382833192963557415282894272610085435172796113916232012549555273414655590503788958728008705149487347076639868248097710940913852372025983664078346842205543112183843663793421230389283558992355096279205227802478073644925874805828907687510844333545980763088402744759938194029508200501459668314373296417565812567342608194104846158069406156186744333301410487103997387770358961590502745103816682145808203336416956476687522932101375873123195460575201093004439630393892508952214058873906555454544936100158102379440034637963452429420201744564594904521083749940997324651223445682246825059975700563289753948810695193327688548306570548549079574683397791671310130356462618066661628614200303928104918423152534035155522217775333164728049901337951661189129869412921424816058313661554063855622909954697716223179011431029948153183688656984796998102987831048614098297345532200110761267225559233649282267321812693180038465011469707732840442060230850133117555131834584425774711937575716607418657698948179686028382551425300542930230879380286398549882252380963392340362653110148941641795577049750557152024075534187560280838175988940064045805918154708332794994996243064472880030825391484572084899868790064849442257664136938078107505942057800862966435503510543504591927165409193589444838777124908435303419015744081571546608837839476974466662921565026900661860032714869858754672324150211750406933537191146754696316752760696946213582152558832899052015392258850878804776747854525252210945324788423582489070630010505469764136957276499701310939919441952824046320011165111356857395947746155476585179634480609296480656140947081821425991999255515117498669976451732802937564367391456932323454736001802633689810382679240753065608348413478213847286506104338081371635826220493649075860940890237352933744558780518662164497399557366418070326016629579432783245540458916191480778534169993323311871987756037383190335632462886970809646636589013965221709967589570465608713839694170195809799186769607656142789717186372310311086608123299502273143244927436986139317800703512231746387791661161479275249002650440932287871245358123884998989065230946379280945447815417030598744935141103163517264406224322371303646999375935984161334892976562712564772645654665632052951812206972155060589669994476968227916578127583818071277893938232486016315542308100045112520822776881924034770977572393067741829277432171687903166158303680916584128276703695986035360754046674464039347974126193308748426063504080986692892126159244910410908417115779297319669645401889038817090736838446224197189798166221291942011466364712240934703351068709409050324543580459953482118973219254403439928947104950956301364259470058733144147151897635284103861719504373021822856832993439468541067340043908685693461730962165755788590523758294955545037954466342646009993090092392971646391958187963473418508754271685725556093148916897411465127323520919831342167818112112820262822700533963618759385740799276950325189636781841615084888129548342827433997225452881311973279925893037433409007952641727975482087366965852645521942439593710937056510071564293809262773105838060918904465237345390200682849809036363413485864400718487056035611268491487109872664864768223057795211464349042818951782155923224015275013442915034214560801063197851554715317171480428409725128961228992504985638928403064022108352184909870479129193821721085473531174915227399387761517746194797048622240653636991720505337186328748878704616045935880493269248179418097740146538029439912931472461259649744583614105634841804062011856529144781396369135638488497209249982980695170159257290586169804501302671769768654896712423781958785593249977869573368011422478498003010794026413564866484532547582860623551149554331103065834521627343013199538750076965644202159884857764680416422165126939350575084834647185773568336463999837803600088068985641426132708426904925514094768733149961824372007161672745021735341491583394697849512845690610873873312809682980796339862942595770694337639690570463627739023936598236778989479032935607516128006881665945253599429280201439094582942699257369408221758924270716472621063494233171082430180515853834253444895285664802020867396106556266442887358329620737676385259547027507758551558746149475317426110909343599399749960788878000796765964931785069513168817273763482953756730558388908862169513038427081445256594092293599871920309983879144751665864462276457927695173062615630677978115752407204847517649732798570986009771758031796695288588760241185026473307314902531616644328004405749983163402191065681844907020651637850300505525197231167291095182137623201535758697098519253250977946222803461098752544168179621458528317315000037563930754290035514215218104359178038459768677412596641846510965803854941790080684537955760029481681591059278333708477623252126936010006669004864421053746182367505826374429193023307441949114119674401922576750225271315600335764622942375871174002353013799620652014104744770234411176868204249193717104032419235412868658930962073543176870346964523388242007980234693804122744499632861378263849950271230161324273305679805938875546224037407787315327022185127623395203747135477265897640949219523595587635065959445029897170894398258346172603055200607271271134165970601094499956344178361016839939842242168722311896573266321091138156723059933597687638327859182564559679752895009376231612502725957942592068540362333374434200022514744131204856388438319758290086565588566469966326592425162615191000611660825630390265032604100110494149653091357503342847751571960348152679869490644245490044698935517764509574610307891201192162259612747624434492197025137074065793526645395318915342635985471680079047394012306106281379024194559540976912145455130950809448669823415120390420443667536385879598340405353095061371807882300623176623248575695269886782465383665046495570550268187268903724912560584876623858758567182298900072673328517248496622919971157232031282966123898908062671587706930144102588771712571697239950043540764191507469321002317190145988830332294836026452708894335576478148368366639556601262550233215468942826958504187616596941379217543873708389117016604159352003743574342476880894011815011460577584319125709400390053181307782907790101601661521645281224749348972126223492590281805113024286640858123755684299950612815279116875223091651241419011161151490553340036912326925080443095397299290715167775303453514832729711990386886246477237283935719977704305944209926382025329600854905542902259077174716324077545388343079393253822678705766356827791561629126846333081109724645701936108141934247870677471910833133919274678067696518179815148925004126314142806432122803516070107650825088407296304437426366959676192994957858990660385037808280012804154258375452170062383254814340234263021001153183016864217107524821730933219328674653460525913850885304549679959900170928952459877541111941512986262559030816785753184995378833674997813941603652885843690208125350245431322347511832076020562380516759241127515356559264031865735856681738658788912287925442907422747119549999664710392476464862814161922769241335876669423198614466860285947243554516719094942441190804861822432055401920669750820615682313080982135419980655985711764766608114002887773606773484763049434134356547186169302216133108495041632663430941182371799792356130648423770806823709776500766667133155559049550030915327277800663763322266547937853150310539328825610845084140398160098336451621799812115148047939156286433087216728765482278958646368244052722460526791200768237153671171413697258121822254480320192660251604139902207844531161002265584750517889139597048136963071057309277878725303907526805062311695127495718277411150231006134942864503440752754888826841299660209776250871039086952666449288562288186388134766071287828217207890030934044964619151796045276233460331598290872352568578564699101450579504227459742145664859073134621879809986456515797596896586379673528222789916619874011716085413679819439452204680339403528509013488402378015691963046544390847367891204312070866274913445253063978003650951464309909972411644151043414166346788153967341614553543976196890855493226969070746079032483667577265677447107590552196359873309134255352034480509851656359330739747779354933099879840790566958953272351759387401387387898379278612120388998239193214833753507043451377300306670763893617897476088463727292767837375433799597158809047103464974914664733356846667277258016087583201571532173961991746768585214302113104455917067627665888246568779239046340128713503880795589535543225936665333890670833678392010410766761637479955997629548779257016924491993130842131237441588664435549018314414457018165613890994216095385712504908447651718287919295162308090025728433476880618693742943841124786860007052237234036863134556797172235259365364957150886311384824071916420762788117282995970139600825282339946899693196641934967578230909629911892134418438364653450554715115467245170711112039831095895143302418583204803702322872538579838369110230043215609739457825878965553741471477898866795268421626218554929379654156760321645986243028769940220561355192303661373090665348773277237127984237985540270667940241808292471661405823239103032238310184566575104704894368512429576551872190653895791411184685183590476712634852646910250564804874259292103300218200661432128847754532630662705371033249955772992225580981203579566747141451440047839728419953858926053247064485330413367436888229525597840081227257891935143179476648206575473499577856271447194200253049380533195954028453858312041079298505832322980760258414219943706692250041862419517388936137592689528810415560628038216126307344569536021099894228252811248577593227762370517512078468985652392000523638632804318347544178333579698343582875528605775736468994465727463633029783630565179242944321641027242043187457696218163794361673464779598812823247624144931971799380092993954601963101064988597142746079942008381165734496293125535403507139533796766054334227474644051172515285589546497898499920705820186740378219939541682119004495846136702599789428801684063168205378013886524672297396999354411504790278060422011238609050528143724317841350632795716619409239035274200378728683078392642864657167826658818013600760535198902469865848307433456884111253346938340377137059451952696159924213117766378783228795382311611538262279506703831702641321387449946859759585271007537294966508273518326015345395523421606738216431834464650027735638836920010466458895503088291049160069872435991030536881917404865320598683218377671884226900475072346531337750708470245536502221504257794206260667707048648010489146937552741196219030771854423992127527409222381129887243872197038947738933360056447240349545468883065075992632073781685937547345862840944452029319383505322630373098612761613583216951681792745265912342423704113559459522307909538327514839790190277552055170853242549095464342124864807258354281734031150150460073716290665822374650547788286890496841096424949605583289723545122095217376819978750896353986624751484154862424142716313068758424101492855033667685876989449523838968210707717789325751661755317944131126938621234000504549070829130707437096265997075430342704879106764128345602478072862811902235686619004418733104776483538602996084437044856894301332669654426801621956797135660425030178396732508662381178660658960780723205719454185972319589858875105603019205372591743095190592319827429379370556096625289144635857554649307476936884547375898634796869899005929890358456273298378543128780687033840560579529769266787581307634091089113903301681951444189027437470227452503226501387252562700202986383556810708098709815854893601071414087541661312948985857921919696985590965735364554033966342426343239654340928131092935396747160307211150295094095829319913432774568711682828205714488802598661023243482659636034668334020612090894209645296468880278760366125635771761104698954693000944449917986273815261213838921856173337031463743238974652365223237308829293448281885306217488266535843126371112070895284070462459220699484147713600274766306196130252780100672964551167788805653120875869815123163353939564997855535268213306240301426753806268379618941226904056705083207474555983233662476297350222781445481951542693977237206152759211170685135268737542073050661513424928858503597035995778595442476515439832846946721519780411518549585785185488396473517116176563655600005122544929103985322646837912387394280499975860118591232387907144912762750969680197260505608021058057945404031597151599220883557550011330821071007618939126892040863679643251870781055360710948828020661455890818883753056580252414638422958792409749247017978622484447098271614242156421577070487393284873024212837304042466520236923780881304060711645352521089228699395349117203502424060738238046254527943659436718321946350049511568383379686001323898781609168265475488639065276453811849921562146085451367019719560012917061552435698963196234402373672033276243134360144342560202789722334616099416724981612834652028437347651145862468596876131010720000818440455902981357774566561630480712235619822879670735568031456567903875802399510268560510246915998282960187827848950643190973044026236030571317907331842077496672711638086099270277164070025008463063640776295540109748177118245014665738611328170608895437085871176764840274737462054961601629994074363658141431896130590271062824405442803838313418822161929832057286222054566220959262712668861301054529779840360211405127033278826203710619097311351007305495172648970384341244166566983037201014297673630467127709565176289369987533487089319182075687077601756201253361128938278045047104402378786253735799771476499000886017156620715746959617139531280279290782074153711786931996127841383203430580493391987184998193410882026221013752561011653165635914481969882771912868250156115031150042382468941924907688713909189487661083947178085318678181496322954856169764149690890622497121737732235703800704384663084990127946645195831141110239774874331507950154360664232456441924930034142255639541545121987844892531727596778157461553254523466137040300442237678800449655106360149216479296196405259006482457711959731730348302581107945141654641011290313745062733353228481583662676225909579535417122331283038668681280212028759307858011469645584311866560091779905101862171676375509623945430344654050454588717177100004075488457825654133424346197428464949130431698995642272590710570159487121829774175149324819600537737319494759201009245752770478206102558407467361836359154594068037791503714558715684351240587203233767393140910258654288689727776088350367932170460649713710266085439776269428540304249030785319981726179885959390766569298323193854826649998799261485357043281952681312805653872808761389624693494954174317603882336804063105870975319479983083848042830088709942959716609056898921338616157903419922586172487522984723393076903801804959964207465952384872997274982139100494355406453452476023560895697931887315413782093344360676569379744157287158647833821571728368308597122762087597356921497862357267945063091634996542670886216471736347913308922614104282986530225483603215062689772350932377866975209484070470191458356709870992472436775980463502348373264729906147699159660264199528754987640062575288812113082721665809402256881600777194554965637770633438656741781983807121682602812204532368057041528330458707671954716281739545193719549425765999688607211135390311802205552656288622455130510991357869206570104299774749360637432966658432224588571839564890273629961327023567795800002706168449291174502590943096376536243854139657722485715130395506263782525749019382604510711164183302236725671359017572449436828864302286216798713365958128005761295080170953652600748693222622310261605145688825740904562089243474087354316056515408057567934341846687147575723560591959730508872097177019136036820017786057789775842511973818334900940670947414498157404666667748382323595193851446917261117950448111867195004891344079937071049641257672259315993067286985697216856281422914248502226422727956756299550075387284087921387236568347622634385528222512034832963247225838845406732690491036476981197990315416340449534733131194716294001653443296481070016367095416130278975412177314273091921800794725154062702074320781957501060527934136437489893903728694683901426146823408079866761871355872552375864379638071404244696463751875275602369022051889742092298728662620917977777187497836879403732471872012858942783379149546167925685955747181188713959412878942060105193632943714975926528923195728653195950115830693720664160106790048653039374971955768486322440935676891433202175136828177125244250057899285873881336677681265335581273125741820184269856578909731099513281805236337226223352275109946955963987598231813318665592121165756903987661959470445474808184815665155823947715444393513140665150434998478956857299970592453864348843949166680686778196984978296410569223190727199474819964426469091372305687268628633396238217846736623303446426845571215768353021718345468728389731750991901474216261005729345662120936792750649248676129743154058064629103445241974467799496773553118240798067059453995426571791513486318931101051584652890040819350919522286408003803200667025337561313664551191747612457064021223505420422602625326375937238035793537269410324563112111133220682612839586275678282432591863932978037180365895081375398000150029417626324677925973640826645947499373360246776594208717578564765600365294652045317215708590000977284994369238124348786753961024304671831551584723547164729442131905976189336172223557670423041481765482241684139564318866124292470272704264006499181493047692133838169592918855967074171845531867330943250628482561779787073264319561382329035859204014387200543651324793165702772003918451096934298828264733086484571286564537764610503166195818803524109040613321550224391341275819229956806296366618645934214419538427636228468048585577157882027330059566559933566767326809705662201047781670899312821346620939941031669728931436078154686362823750131766629673642389664280212482697331013911399137057076617329109365318237006843647534487592089845619393734653757548374377557560828869832367460227134289594803868788386102321833994892679869441110901944217848748711592177946234961030324469900973076365883198946788944784752828759322517220465287761237629325858781123006175802539813425540354958566154761509243766462638302850533580842180124986219687534778371103645041174392335015459371545230220370279595474366707569643129762148545767948501002068180604154225827867739659785800167526583114286393796378658631432952514110969411415508929196059753659927815172481205286103580444709557583193001240452385383694805721999695195942463945991459644969946522534329506614780281372160974607680735373444008335877541583545870555880798325304182069849087410376272753240596707657066992430864566704417767168151137291853603578962566814359215094233103718837972354124795260254258043787724050399660773556839266462080960668558724879062821699332179315695195037128075628223580818510752779286219309696448753848792158255047283746314591341731752302098139954601382722142775621236952324756206964246210784778133014639878437864114668159569322199616972642005299612854028986222262100565571302296462050167258526048279525630562762786089800356323255445127609158220595799497005227867317458451614515076835517017696869636818510171025227622161204791761885560392195835455261371438341116736841747148135172752449701086574685858784255446924649021187638547041654878892186755348847389113500260143888041040855571875357771646767723332061263629487816025577331615810512612940342386404541362784361051029135316435746138289904360625129499074262417548909583481336453623380317757310907318115167371100147537199586903055751892175611793889816924737710199365874990598499014311759307715183474071091667551499104335082413627294953975610156658527997008693218430496504829742236449130836511854570970654200500489711862977641152228910773332672331408487021562111551420297772867174571647632671365453360179307116453164597101712445118709718080797299648297197651419837285112550316516797018395474589776708556642776623877133621899399537297110828363239670200462072646531853704609135694371058210713309009014132866620203327741378742681040801630835757190029455169521075244672528892536355374227300756144876161311623307418878821249615690847173829334276983395072838249146869987580348041536882900781299712172828048104294528281266360448532299610300893417327651633841800678161708358601853243139831969583464727871247541869636998526552798082826381524314524894906926119692771410153255847054272299140159556463674354710483131614547979390266966685589937921921071684256321924655510528845740072509520487895892566140254485936484909765638368510466780995730002192500296598549147558451476505419972225091997231713390829902578521754965308513526201236375580865805243354772086474716708400883338333754254968309802858429473847311811344719359849772237535114771077290381720070159953417328002733141872096017695868158721539549851043141705242463380635855067387739132397893422032069275745335019828578830153052648879554814006811376814785792171504608533249951758256606909655256819867439516931892113390487964469810897818057453827970332648960983388457533855096666832460974332720036036114878797908832041333013443429971957975891793782554960787846924327627151084512868918967096957869580581080549411714306188990593161696792268344353761060051004833981324848647509484590519413306328766365614211228748266995185440165092826031173226626071453356170463442900078566115536945333954504786178482088298258998137660084260584485172876439650473789610822680533169792929415306718452920102475551096213146459729733831263463917869217277607204426024775767611356738060834459353355750973060980254150660441290436409054242630987787743754000340178387611141331788117918428441451317587384173491466237737235136948755929832914518948070536631306825224613920853364726140270764704943461187447908568066280264994008655695996380487159107069703813054287960653937397611762804819633119756100530215998793954946845261609943947941493624778034626029267778183109468789091692033692017337447343610738082649975729072412912417353444293893281311913146216717737268188297831660921906736308407407998914643540739327386269896271967846056552336798110541962300148513659178311210437198345700712196177674906311817399803948714112648180543144306190606213631350311757385169164800393568778379244057155044771979202403141621349033705395697540971797612019367024166472211743963340358191748525318217012428060764066112984020029728040245298692195403100116652906444188378186217369567911693702028532779585323134925423516609385152947596122097340510676557912652648633509561227675027381271778880186929311292909691647365541866233638286024725095570569614259775573450932776143635011732628651386000137037051771484156234073014144194641405400055033028105645255228217570899695834806534909332739590275825475478705807142976608023611525135890315080432618505587071962055952446132073787522889989743209005156371643463134179116173720847053380056097923481803200288439879996691019546170186858394498035836946484044744662955616321317224614910379317169024035739887237681018016206226572129597717685254329899062035084905671521714456721158909462270647540511350130157159583496882409685233056853740259209905823147446039474895470340594584752871751063615522379671659972276011555460082921541770977761882390378956029349640080892045397589081632718223156015376435869971213832322318122203911195472173767521420533898870560191646083975633306003994089971363942032949793559887429121202255909051575139174657908905909467672263052019402566673158598303346006998636441398816765137038113576867731337932118252353853133643655263637343787705082544455106909709943929643785500730565255954494636424945145462133211822406328095140891375873180798039966753786246052590058015889600736872930774456871964283883823545233329296206330756903123193312795489382641274287331132156231321999965606745618409902663491332588494470472766024761402888894518048620115253154953124165399664304384174800426004661786646221335688018628811373708424129106755840702419228413830085386133387753659475796974876508554434251809774508526142126997588743367422353860423242296945709451559498562113454932012348769901576543431643079667033904109965519941630280641192578116320519533475456360032732020399023624880204047828353262543489952446950590504060216560298097313563919945344555599242548695738500529467993322334775895546779324987173179662878262194411982464809633676142723500321305879067921408884566915850121407776094961067687711394477642860066622219081490230677420571165873792799622015434665790164648990674756914679519433512455009785362630338976065359597704325663036926649861800542904799476421593009463052247997446969151587664254074725593993268006108495395032394236916510955479091067160644455327806846477816358744372688118537052693966726104121747857902052120151010510028072530586227694628014828335585966205115596785138266436478611863019472059411914638768253052375934389162185203773039795684587480764563075819032860205180439446786556840514130482690081388861626764769027520015620558790117148658993739799818698791926563223959634369882882124181145202936267853607345334404364699766029977482312571147522121279055218305064749575332573649254613594058162912729405153171742402483161783192950992451074067567274040313440152517144382342843733123349506318692685513419031603477329645651144596332145771180673769394792444464749292549308781798602800616180503177919435362933547946223234561482591247495545193579806354231009832685282021962387362644336654613165737750320690768285746455095865179161927314741455872516636607734748945956404482784761585002433628367215986521657030948749492391270788068500209045959649102668316638562598530896538095114853374780559640095453025324176353569545169069719844670328515761592594909035734083572113838613591610815078025059174482358722609840810592638380591372453333912242922698814857284605385555451827727263906555587807162995300705285844385607641278040142379449046144276251332806699410704479306895286358861523798074730398234914716624234003074258123402375278020535426348786446494375742617915305124291543211733770734688424551381603009683047532491948816469601106003814797340885861465056831270331795392857458856346423004742081093196098623947160570448078368954558518110183250655212481866491882672002628549671068474270967579327910556014378777248103821119411889050028782916666818080533152522569555351866312717448109924772863268934115589717080293418356446944217325355114815821554640364696659048924388898775051895906142413294054391792443507835616414741068782437349371460609390207893658377482388506928733013457958675015600501890046992714359499096115321810357156173386251235466520917506429049048218392235078864421249417094410147206598990319078279320401780199473449349613749526431789364440665995347824758789292918584097956998668284482369034538862632089071892286333012981599962428128555563288027436784366402717769508637156121416111498168530181131674345016345945041979528672205116839435996222318324274205239223902189718875097257960602210799294832813664646897820468588865423484541165933743945755024247216456346801161593043473607959908681051230421814530642626500308486867087865399550442881824265114062003436430573177713670996447242423009499192191802539398387412256298421518080746794143205162796304404100075696276142163279944741029289823916420051597478187483512410735536997340480161282789902371708600176587181377955462519494033920705786426362765376963479648014453635427094735054518681707605103311339908749811597433393773340474405059882417761381664015218353711117835660574022862903144547479116827873087112119046458440816033034740975247511770215328865446801672923776103603474577598872368932034619263885917876956907068401069286076053823338328988291815212120731035313144731874489297013772499204038234771073221128337511532317436809096006195407414249647049700018501412620505135595484209386045940897894911677890401708156156492753570908775703725355173062809188025654666194443832358713704633820946016808218600585887815774367756913745298644270772946005292476622013430010602391215713095088554682623110171637622656979719301985866364854459937527724276719338293393332831617139941345466617934888265613385900923828241649282344463195094378513007887511440468179147570120038464167477544655391755876055327714247811210881778930296435946302993224493537615606550890345657347004727456935471827973952980910327905971934317197444152764817673453375539175330192654886584831263017571915879552896906274978902265527689562572726828577155150625282868110503753377192922629545799089185130003431314996196732215330603558460345622847663530707541297999737443327633358745203715884736019654593592031590615009362250970005631205504243899597963923844279566688174412293352453531704263892423881550033050300328326501932107047616303604677696124857924683441922686699340423042309994453729304577304175572355837766534361335351999063730369239350409984479621468596298866959034181278645726679822008159726515789711879898389605758829038105736524109977023713985768757066373913148487565940062137561666008236734404180462223310135717218500600037189454300909066839789874223283088005262799154849025396201527831879711029939325719296277719314961965250145865976567900959015706392975363958503025091962916430193593711367496811736618511816720499590777839897030101240717848608845653375664536742768480231537369768282066212320733935470950552953134386752496140812773781938901551919017482437109834690407356596958668796563665680599874696526950337946652225642696050717312514036837758408306919165956828820833400253492744048137318984613652646773031464986039909133066516934958155418722602576559270970680670500728669500292136015754508238220248706935593664952329263012623974388205432394879957210010751445051622015076083119489757281242393946705038919649407498688281862669574271855485228419750692939734884949395422442054626195331100407298412783972381500082275172506531062000034019286183853885784577473076304500774428192750338550627058798891992750798179456198568238745411685738812857380684067402794182667937122822226957692926232878069913569614207789097183653236796290745140566274225372191824793089623279071264486038481646333060094195217305432772110977861667712538955879040908807055919686266416945278248515304313204106580487461588654274868721092867367127584119446571923529448776903009895970938866713105996255344768838596479758864082303834286918748740564461299933801731956240023550019769774048289257066936598296063291690741848858183296712596514725387876579823199418281340491572749848694891312658139533251409371552926192245654251420380538139689553098370856124494482249589287149803062101426506716810750970071794172721757723390107162741272655514372562496026902257685078329959878299397289799167459676602277048188321899812834549095540590017739431261704704568364873512111222411877010980135820208205144051398108340045295259767730967800184313184266042015963250323176710790079226564361068540376276904397148411059856704313990217020779170180744906507459067230775285296073350669721747506288674493494836405356072201343824400512858107430378082794519995365073336063058060044720269271227239294528901130299377040709331143882203231126927625868566962380828490781566761148780180112866609698078539982945583832239205350819275105130252688964698546891325568013578644047818725238769346390905956029365331321810983109776064086876059854978959528260912198004705185629364317455975445834283483715688239760185310501796674892125086154721792581343560310291823632141655074171283596085430018140244427869646252309543910422043213730724210979008564042610206351871688483571909786774180459001405817491073444429568529783666164603640066214097113340284709020568734012354571735506154078472037996927222831823763945949640171748042855003398803174106524707253893318219616739762931122725322676562960653326763490030864601784913737192309129829507775217488063900482738466499938709579044312411083953776424327877414445281503890284868325101779085066858968252378893759192699800315882220524875646778577027470050182130496450736760101574048525317475619003232978516745979905686527170197584966448367444433272967287188008768127842037725840988950529009234759687204323229926942757443650053609751585776383468700705397422720527181428081975849740171290729079043692288791436159165616888219437760474451920323503435370627245828282242565729828777318710291540964519583063819458193588085245555506634385510676216222132892431769178135128672653538267432394102105498868028061316984311937568756822364719893908353091208582123058205790009969467328552719278989521309330671656267960071081727126376161375350714391443998611297101250307820918111768512961015962540839777235552241701927456233319231678088030896996288948094535064871830116872672588737488249463444684617679555023350044118092662350131796761227603881459676182111126281611757745130382503888229024485763219105736836819017354274375267668410250598954454295197149470597749157581104805313018466435246615969085092399023578935213231153530976511639261802837095033809378530884053519200777526458186618756907700886460652314563402815380867905140681834350559360071810818924753655826611621320363587148737707033704484663678082494381349649306180997064855208791543561163455943242204717414043986743451844941412639504825140078088763294508354114818954095310906423498105063762224445653338116790600994467713624304190170701125306172051802753507414643015223328077493966375810719343693918052032271421143974158913017828140940419792752793563960896377364250869055180807528206590638053426580722187335798385319482967037718757233191760132893244976410190867349453679600261921987470359496480957140583561178000218757344278196694955158248216790394902655644637479867371925430792933548254135306696107685440805212520018931724466648381293331316684509413698302457786056120883491558209218614977954320208299843035852553304401659279938709343949617517587502912808156898429010732595806469365962979486943870360685957679603093904228249438512766018693557964602764338557819467855466597845950793166184329020975453522142837511431085998687299315969498771472433881131376261433549834282679696793267796072073124725935754470762329410737039038900305132645696654024498763815084622038770059277887287192435049143599731256172575134568366040394429221106703964098507320989549649446779500259784233947585894018314213369134147765876860258654693336835603670503134314321222844714026149941437254106381651327239901699986911529121503353382057539923574345289886712080630545851219124819707902445273264625028102943893038523286307267434596999152767677177775827615736529753569982161597609575425640004369810854058969302201620288270899324878297343232238756595471800616520139120203923398885490823144572027904890365739533248172865074378623428299811401854016821404694090408333936570339260413900722544483300639994781709207264295327182437765368010479828614940618937977000615567048760560332274330650690227095482430853604091893736256002770738764093047554539010961591856696461588369240702065651264611084856728109896538095100380342247215950389803962572115831340171541207254047457026450964463586044268745252753896233142256088644029984771914624045577830768707809173906774375091246087132211919797942636310174849855338508874066735930256652823916714317602661530371512072273421285444689858297909963826096360970713949424974438052940288794685565010343981547208954968079750205304929521571200251920800327697510665996564049465218447895742709503732673377624702135734512280884511098854627486824215544304881029017998132718363031863068051437756304060817312327161344664067527319464517100246344521520665507654459208288802410606236551132260260333642126751189069565602671016066714705819293871039809919557321413031688529679840112942131220837262807103726894697663047137506611850127531203005066037903135080294996406923338328049572606301724935572257856012516044999096284902299120264989864735182927431410851888486378565050699101623583396036620083915602630404291936314380460269712683579857559846001590287571697219540177033888281440179327068299555178185960561238021927748705768732185681082741179082642567754215204914880898404457913951662393058705778709769391610900214114506530447827097938000970016750963820798576707690871052764433236462613443169185155121845331233861958895156441202907400876480291511383226084371401998190135464519569007007694318465727717486807547348322748638953975614104010282238801186672166033274015306706973743783438390878239285955474959253273059958726366650536234618446145516398727229918787658779096224963975727212573452634019384240506500255127248031531849474490176060247841129997654255000596811589772280080742096858643373914905978199699809311715857623588630006738400837742322424187929160031424789980785664680658170453732891119969098360395580743889308383880841643367721813992815120521038082396183393005637689696724613945079844085848793694992034702081661162903153056700691123768951245561809993710739781792363089576567767096633746001634716777517146335633316053247882037811470810587484774150839209264078305289920670707655326159538774083437502711619294459497709546314479245733716793774632477664280460775491488463532975358782896086680003166734830666153539416736080571598978050024865744971975866887901678365960907154453245984377181799092870871996968591921811830832909119802773417833250831028290179273381319074308585328717059155003083341861862722584784357716582806280620943279408748053085181965360982002899457038080016492274559949322806184113063989248974930010894517337700120873806674821118835293109148798489768413580836257824250103146027340537568786040859471260309857470947732969428853319144224537159430647183052846720762632667022072508685054019728004328098903613005194763394012020559759713387503393803176208391763414763636175424073821352851726312879188631070572540500272725682694410825045517467681782845917625937152054173021401541424910427258982026848343942025157406967974283171448691668278305016497519290653523090228226177505579622852238598905252032822757017317767479281412819930003149299298639186941246255629879374266302283542780747482363184747185205823492124589904562549844151206676665630891528890709766419561169450535343059842563898750884512653558848764223783163591535084588224668855879588932863683638176460232600029060904319448376404626902715557020587232265657419988620698165481825836991045496030577055715941481592310441253127799472141058611591800737928401744382150162370117679811022492424391073262341891307964943078923549121718921518472803808392352378165476197800102227432179285331585167276842504467791750376124191113766680332034967919974576134933016063300003780773500741521554564165042615296708208969805760006741152335747638811537247892207332947945219454810393506729338591191800268425902838023555697793310546384139719002657731450050553137522212739590565007912394962999499051930337119112176094006307737113834351247158628099369078612331232029495139994543637265227077433138135841068222778149603739036864946631531459355827468274386454380005992415199144997892563163653744498190804121556665937633164043874886597600489378513131414237972873504885015125935887396308576471005417256113592592182870889164431056083542005176821288805112007210732933557724538483593189963722208376265231616276709027741156696489604455058448150341535002918112479296565066812398635167815953579994429219873336451605501049681698780274588522521926750264223436882174810411457033767413767742703242117022629934765939188455439406114839004305848372101453374469699191918777933230640435353637682960162398488548537092252406735033831317432971908619300788023777060814447200750518904975628970334352964195186122264653900300773387221178420828729664254035815223419319165478135665762842175496412237324765576751433184378126023981590238507051101469191038216439794113260438856456155804507853447522912917724412563769523360408184755170517850397856853846537119168916903737906814894882150203506418429216757354407001512389391435842538975412055566311034986302900199620549708487438867554197674634226179896694196856582377754028486356262544213045933960807699432995934256629379873904006285587532493347240601793994241819480098781025676368517639914244658231348461558169212291202346788894480652004797351197185371817267203561556137646752833120249170492872807863126005304150504732850507208203363696312605701953032093756068936576758618914782413417944011514077889100861483098349053269505157058565980979392407147583146689336251185438824401549919762001556990777925550104756862967484490246796483286003863087734517564874949502148619025399773654980077478063355162529295087339737997887962789232986186374540795893055464529239449324794832980198972622672120611752793864601211418085632579115902830653373167015980923881911251711023239034592278396352437646524613387198654410356670993586946019148378918879087248682787070573756738392182147647199407057449128627881109516493336683801800938573211277232031018907011254799623965917900076612740328877445494231730841021436170683705325760812560264170613752344472981428806420243311319873624323479021370707333657738066037389023988321160382733612834819105964721675166688788985438732786679323018573959261784693096395580610183169863138833059959563274049185191104828492440719280306250259547503864433530877613693774783941149279502252265309990732536655852822998164728682138678131462760750340097567162278851899231514445290790677715137003641419619448404404474242294430110168945075703170019996012369521558541049509865253835907866610473723850083972575198974359944597015484339365033521366925891701461484127788615158659633820911728644328214964006854327314665911063509434634692251151736326504537649199445956404511711115177469748901063880814874885249499249578290619222490590766503602998145661338242936701575560798453566706039001157903530026452883740327613533053350409430857916061547402163298183759793301550176081568137211219645979547310509923426391097850531132503124841585732203659481830347755638741936108222055053726008136571959326700226701412195821751332502957418361746368238399990235624569582302879670345037935608259952335837606336286836051901973517010335233890303577830967183556025758400283501269500914913329631562230243587917102438074559624146391402828920194268143388396053234332174740015873698018927164565115494591081901050359614955233711237375556323578323978851001997813052054885718781201595808896165108059097797557119725969853147925275886502169552887517396760059833930187608916643315576839836082278884289836907708855436840098794591177356573255233268351802855124522181175822616794360433850308936164915539188029928917711148783894296106481756104193681597681661968285649723517380508012769095331123427064038501976394008647388304908176208935877529205585637408828489974943596337985307315119015539232716358084635123283860134061581857809387756139229346349670292870672896760904934000629201012866300223726071232419553601739806395945828404403061956055724536574811697250573715606479852093121152290011677347838218547052107946179794188018361262130338358388502667052428476527994065667097105801184493121026762034325138982828931849308534617623311233748251831090262933461988129761006941540815126577717015981080387741462730122989786728570908576157588529361692211139489203072702605169074120391996970071059309450323245101276410361230483355930502986214149301776548708693041719775891996776711346386666663124601603391948911238581095430952466659763475677722616429551003401988139747607159930093035760156904301254617555532067161519902176956763452285177842020249945421830945479787942076432127770975239585107327222918490316424896373334429956021532655435600071466409191728276960662898988445112423437651147637567872445425538699529893247054614420570179407699332228552186885955325313423999170505931300131201720698276975202590361334019516954090305562622057659717766597149056623692315528574340393013667222080110588357473172410710968491032124873591457711456447093229348065800338475903037199582109035826896036164045917942802511505066691574409877858449808621819186734947254930149123283921897460871649669161547581776789304748340542245892537759865235957701034752144154986940227603898871108030190197705018583823169628372151275349381986024926896063385742248383791317365204018971815649105011339469241869145825280916780476629511560346678190124022695245613526251998285831990425919013201583123577190605651672452984891059770495796508219831564242080337781887084986676919616480842734817755850183351294906077624997168397591210053662709622744726138401297615721008350909813944276318232126363209806827749722293543546495525827655074303196727483659429811168059412163152289710315565946740318709644785321004702747053961805854618610817092993422588864306373179575164306860259985871878164719997358106842915574716061934079086047111013745374160311432529272121503745583151286960931322944766697643899446302676246769897366294220304638624591565110236224455575785038837917425332002795704708617374578425806523850305403190483940075194249059242465885994855725299774995103463990130852996929366593041862132622545192642502495010796340188281609609663280744284382005161409419199700821863586532935198427259413608982315932179013671248867947305798401153470138603304916988178892016950407480872438543291443864370938840488717374061648094289932803589269302213142288456972473179270147254280410213935676016650263366570232665154660274629272643823390475001782392123854363840790656587207445086611708198184334272729541609366847275880396668310637921989825436458394537444443043280106599505708795199744805627410591563659589732002888127722239254056993654681558794449255209402250439958703736479522807533240785085992413053092441249566950673284540344705978468694257362225136101459923504493430401534619426264017995085981845579381882547157860763550299664870040116922971194841392658751890024095981567355334487651572526856792697433965023251111202945186695597003232758927309304519924869551765835269843563843883453127624985256339773051720964985828906257950706560787032488320586017095592353680484931527910974906908101217325991789436865346178810958989808219513993548794777584224681101690156904499018625158290046633711302109199687123402946672777172797231480494087498617805574712469696114758996864191506293390856262752329800599106550291144085157839944216451086893158941495980771417869148533917234118461760797169998687914795326890379845173539896185999114936875912824898735221090917675601220301499284507849486200217223166095800319247179843560862925682531559992406542315852273502241346576141444486924794704749318659447310041970329357909268924287294104285864541364600079968427401005770710957362375897500855858737294859229341158520775076527563892883880863026837714477552452096747163154641812765849220854418476937071298759722506871029157591580105958652405654173925580964020940817294271947724166832771384167010511201045651272788301650406668859782890261458347565681162393730747189628220365868585219327160515190933253002087297671806338570618697583871299947101201764215820438313105159424854522752261816475578741278366373791692461006647095593223509298934895451392271613522611717661304079205484356943337270190487682558131502524417598220699849815939529339736159912116152153141677282564926108947399817503884009789465075553873416447778955524641376531730393803003667311759801661028196661992748472499238119805508493574422092525229446694017400567329458481401434897272136084027324803174169304355888152974286123378136012740600156198810121532490135585677436564735331058586550709790718412000525724906051704273331961689002601621510919326298791180638665811494600331447423332489120154027874657379002140207637985095115968139681948841028361019126067216231381138105303926764101497423372708484904081782246202180103694824666343539129244910205588101223925536137966946334512086994852898055742369856734922223426393935383764919472014908510196636398933447169522353326506290231942645171707310530926758183617714379684638191168262126593356196050568923548311614098491879482082916851452682643483186650147882121496383674311086771782363739500518173018959619412656477090605925170683085214207169215402908539455639700742349341550246764524708081716409291249265740949191591896672078826077839529773584023934048539287569328356472990576173332893225940261073797348060967288350170885761605794823259289004843423267884942043320294224571875920602428693515823419200055927405770199924807439352409671898860453440946208070399494756015778557626997569590536114031657326348332605593629199863154530525392875373821171675511686118286656888163760405747293881990568362291666433335615935612401598122614722403155430368699139549723245068825081104974531612621501533745060860720846629701427537223409806064128248815308430752283144499394657450928959994480721847404554065403948968122421328470058684226647479313669785899886848732178776133736963889972834650019760448785972313994716691960524382285331624689958967972770479553405382033123399984004811518450478552149262203455172034178520045853857267128519496840803889178337903018997356314788610187841712867948568801738523951378255063833072999999094287741851904930091552996648373168802639522014518503062693460971807763690123348637512912628156230495712167299748360972194959738154037151041652658230830819173816852631463208677299309292681328611731036180414956077546717704082785779198249199219540713700537218021349422111567506225965228109854646502881063790885774616271822146786627876536863530506535963879879822087021623293345290929236432268850772115111539180579041022411720044679833376671609141339576691381884756927333210198935626707593733919862750559236658916456913889627762088066090407086360699578235006433354035335523412385417185256454295284662390715654691884303513371747131235326519429940891014766877878765613033652006509957459545190517935645720828508025527697785317145492942487503617431438236770082001502434060039047362683878911488580283427539268410475252782181516699673834029566500002098653439622151881948709465824467976084676959357272120040270105646156569954731960871424943336385989163246690035062144386841671997833928377656409666090095755725593002639054902235555743064551361515451312971156292241955215411103481654224363918368520121715079847167456029759992355016674487780549003175131163273547276944681096376627521168953591925392044327677486331849046306852282490688439183823805041460997187848713538887118619397478233224542803463287273523247813452343035988381424322914386024472556436183961578580281682785240331147411864521788936131754045663769767013280355129261229694192219304426012159307977950533642361591947916696908734398762291837327452643764563308510152994083338898238023709626374564997674711211424043306353299979751118140736017533997488767264480227644606372689523817325291453361024929013908948505637830852319984281107513594681705554691662822901122076601885372057313759419450292787563626603789116099811384152298139475310729908935922136301972616755750227633807167576497774381859477664874281899699921455318668551646732229445682828121132321069572228074594283389928595612118573966698294198538315602932795106234391018070934380634962263168675882950346570739437362952925958259696878942524015980341325266810929027298496856356170952439148385257466846538217534587033209004981396624884876836169568595109392247298450718033625277415646539942526773400639032658252217790164704309053170540124309864835606633646517681765665970770158042416288274214414567369843287782120305728849441662469504181853494082799229692659649859414733416916153776021113152075650011115662189863763309682959078448438089055485417221073437539872929488852888763238927622531479630896502537085371430179693002772630102778374202897440363122557782853956309675976257460501011169732835233167293262733404125231666175200360321523514631940719362887522170776854415527789721505225084331118898604575868719417254195595698001652904704568137462182180978969431207102864196516581347731840321947701790835471949176188407265467416053376464792421245368775694874583633270135236411993015160098011441140603369763712569032914933680508744349250870490837537755421436839550097946684096640152859951468283236971625280664633503874911356811843283332161066746610278793493970095657467243709838301783742354602950748718210462117273835313653157499105582803829522473866673358328534988481698383156876753361858520312841719961443320138422871660989648892607539068689172298974517650456043911625837001771902410770101110515988580143358382810847394982242758629038254774614927557482564187495980419274996905695164024407101494075698250214929768396135287857349375404644537246278264683106352938084128624527550025004706018835884436030817832671202984003848251811237001783711039652509601553180213235324868990933359303153024063703271098094492684160139418187945614148971954249142582553715361820676883462004137506941277836742065361699641025354348170124284323504888565055797998850919214166314165540762807523635903191720883536437141131658273037340971243463588726725533899586484995990431328598912447282137557204284920150547229261953765832224323720209003801998786676007007318550535809701501695282596526215761901831404207765491355661044077035478156244758225697908728019723550732915406432638159980134339542680274144721144870514213124784928145175264086559174959785247758886835920444772576934243000950925012081420118006892077221674842463291650772804010737269747078235144657932424098823625343579369560901410907218463714866030324721234511760955140834420326362746479236349968498046507905162145596764777590242446675697032224352062903770004491811836417383099335626824095080834214765399439044880616102339014053843637301936940939706194353619483881670980782903836715451491308530507866417551747118545836841913332847699172903771936368061112690965024815881320001556496094366824935489015062808003800089966848439017822028891511013981901910292707837315717272748737575826025286716890756905540712821042641150850173058243647676553844162068625367832856693378907288213174497155252244748784273794453706773312715585662992680436426670652706772332315983337554194320801087940814023311448650675583062777950630032544165057769160344655120916091110573413632219002537257853546054100292550294013177145483796631346257280879555444765297603435708930649146798700345247226879832637568427572886539928824255829413960942998446134910914676658190918400172749341524684390716164366866461879701920514533109151426470754914704242774791949904889296005124432947286922371242210626566366688974016744193666181711766804375329454495563869145090842249040161394080849975519611196075354462536617468630702878781106368681619305029868558287328502146470462451872814485436340686789833106298353636377208639269620518487308154747728212698677405265217534034124421224102651458670174718183216797657744733395171568257878289164806636284059679938567882024367633493946961599468642754579544410202927100012665121246515931876682592601351876974084239880004910718123940268698313668901545041384859824606957589512031589244123258785466019820611116686715384832754298427933682957011174168270283128264659702852715575516325199027002135847079616682458671611925334197538851793205974057147117352219576394919166909577196925200084667185105679964113368378600766303347968534195800342341211950115651038899368611335983262193954978536619208052992788955365072564463124864162174082313962484395931697270551497007641473318907742733235592349305117492666186414413983431298624156885332156884777394024906629143591233138207344628161766886167594010656143650794121174180124037110065740216606772302165085992174226291254736535019593083726288735805942104041931771520755876689004564208343090057727789515935238524266596462670392808424991510910808916941156699088400404118479681025274638237515301332225155134812592847970697219447354030255541642917638140446742468971585921425921248585492684682882546278097399369723374178613030174952063660050140619845036224884329202673098351307790578433750081815112727489035404218242506077816518523502814961411677159644434600664383686409339069061232472821450832010117026686103625578237347398046506895822023325844899333364246230797033216678970955898949594254194221395332583181453041534042428223603963815988626786331546316185346460015515703410671787043487526435989938375851095795119586660892304412817129847205631792680383238518553710994657914535734749543316546369090637716887375984861929137779833078878415627034155330223339207024575831881337681211744870812525993910895434205435751785368113216188761058116168112909167386713304265749588453907155121804754574478792852069276087695993453701303432073692123166994689358282010686548395202348651088860787978575935893484854931480168417422157680154867922714407393304018431665881670711840044351079589202287091725042474606553477784222030859077648138660461105730129254321517287677736798081551576308194908396178292957287265960277024146407983823117907412804797650410262186204152963497165279772745624798750461069846520713929956941643885736653898275753185505071961761832888843323862937473394550707807365640603266199217593386857058177451711199740606405793899811302182909486423532270395056361342949788964759292689687105077179264452716977495430157944471105525272554609975924137691596073640431104311197369860751041340007704456671501807404299498859548963407362375184540570685989734134848258177988479462974404872270521759191433783955892549241387724848580426160185172598793216167759277685015097161412483555377423999869362767745956959881108299560518189231611815139084916037419161127538560461309529609995107342595808509311544143263574327530087931485301980120955763619056166765399210856032230436553874342314641444322968384077370640748702193234591270927639758711140240102767344065271207048531691374075336586011195824731007536459574538204041320656078802773288276519481855975815242411776557278321085093910828757890242368146609629810543140988229242208919772358200071140088499345617058383901327339067115143410179586222661038187254210186604324464202513902654847588610805666292018746801462617539688532166261550247488105193694962946198488825070042840160058735838405139950285117802463044326131069058415851603109243801056475673254816885927624762857686070017636836375614200687642164306192510213784573518555495623377052364425515894986776306173953001934474585946306554726218851550443691765429079528917862734425059045966330844919657152354573446717539204319476392702592866552184426813918233669989840109536315032236935568817284594426109386253879707159188460694188085434329320805486681224118822492604911797750771012727078340329493350546298854121569334198532657235394629128785962487491731829960663702291739326063804455980268279028722365784126304939057764591635144243223854553759157072432922328221658263615096842255024644217378189838140324192801012945446386450283689267984893984134464112174358650561223339440676230448655958177970199461425781585520313099356095970269904837604208005505097422554238505472229460456106315578193838812068278496035953146350719205657289573871325945041343849277302464984494471335568368495457323267467677403773043025702993940430337536704017100886149006061502556828666478575550378515277433205810156907844035668945259875827557725676749528549117373020951000863822105854495136644560843794271942622083026149747532885457409858387044339353869477944959850243133283357444476824210571407131109500773811051905675064154393620506893433228441719304880638138634891878368805159193482963370934194886848090774383909477959436897344605621868442882557889651695026534872399835971449974243742342494333991473700439870875157156612976008630961111904387172932534023855826507966080425862025467692724412798446262288926500237931795385845794772056372007697494876912388627595419192411802936125342597638458550707657576865287734299454335747524410566453507425394855186221610647899600805036571486647215039528479176205361774167651800631705196664532666347017670756915875716953279031761081083783296610206982688099978160045490563550103731579801490659245821153509021077165493569096997950970933662351511041363591340614390878764906315559926807929739340927344682556930052059809773413616251257164634935968781098765242135936149129247979492069087429091574058939393302724715243816911791545210789228634808726944441145078375579149902921279598628979298184889991344719939145480698525278353448212458026054780938207873947287621115604333743110379444150868009138032260769334259280325831140638005558353387269424565558922132999145987549842094507050915736953062524635171238030204626501203918431279838647364604672094510716681556424182165890165906942152421104560356250843665911209519282986449067881272727439321223761294521288110540078048782122053195973891541397159814647217162970390695778969469680680180598917832219881166446957046121440200406222298583357627157511519559935834888952313652174204411457433644184532195477802964207423584123237586405517630268275702225865996558601221056962702454370818352659333136311644127500944165036701502301708946233818463611269497499200573163656152613282223804869785065688246324488220715134218344915247450547363931674116490397740831028623318568420878100968677388078310224136688697360941129774254712047897959605541299207120930695365014936437275551198482134539975812042061260627479299929756787046332226436993303559525842977668750434631391892186475218497422932248291459442471616269867920387549391404254405978666023013490886436712365481250544139679299052077744128594428637761393717442399333594873506925960648187009363278559397994295031556043827451892380719913861168452899352727831415516738470584813457659997777052104551478764933078050214135862379719204842718739982153047587612397939724815086174983801132246946931798905646261454852795692506476443410989774821929424769305501116133119437437763573134135878812601529879663744113001068195497095576731620535396931913163886373878566668939055115879206276338462037735144845172939632060419729035081219793035780107753849311250973658854105797856831917824491942327830881620615770556112142217753840975325131389648199425480821655216652174144522261838396751779861799740151410570937518958922352710840185556894976434308116174970026025285167284071150465926231692189574361599463873489444854225580457236588747105922688949164405604363457395773759578195049510065861436291954699787523555778574347204951359391276872505224110213029780734549434246394436520678838324766587936839601354427454972361307712130357613561181398538094378210206839970574017823691914270459799542925942207411194555006474690501757129837133232518138541475532381788954410533256058006193182276262979309186268440769597384778242249430242483114634955632225182781923797361277658882848743251469456349246546749046541198842135856221401345306256444516405195848698665820801320376561999719686947989245321726065648527723607604429055016174511858987417374480453097137809202367738933419295715419329652180534911969728635832027313123315405891163462207924073484801575647431105883482642017511348537068364783845646958476551815979526502134710731982151431887352447959862935514614547538818353790399352954109869882308509492701583096768091710208453448630170337290373820291284533550092370992323886466665689179549593557821268026825049492961409514075102401992034981485358186328715770621927258811036150621608619921050886524907698643546166674897843247721538507486201166963010992016255154098984817256610352001232915225577606954718980616727556111126685466965303958842138954071667579902650258293985596780336554925828542247491960403266687696188398509291250008936503390400652877055050168419541041459745015798997832372052271887440486009576421513459678605195328132836015620143691191355785841677887166040579471466904134727645058029530726430396010296325819662360537636881951699483892019786505133734546216444829012509095088189597467788958962380379762412002239106405901857895328721963024542156526461036212004343460188681603827777037999875587951700444285499232872299275059478243464079176956851354750973369285003408523598090754925593983634645595693184110551746744314225449157887202739193673790029196585703030382463669195282420062237765969378009862386580112514662037149566469325688823850319573650491277755136671974271587244221065737984318121146274909716895349194352357328363120974957722113267934870840611481405943924086274045081089935494961150840083975415052920210322870096125535285238518439467529519003632596982720903463395872517680180621735606146727921846783999189854934973905235062933632813965167554508948560225985324870769150395652341842394546170655296395617151629605387605744253716747598284952300818810141218367921319690770983811052357210251253975151542129964353880958878315822064144905707898247337387486777152527506958257136666307237312470424241298307790627718515418956078347564958877240478262356037298348057467737585503250033616514804893992837647610404133703836757090275193221861771536987409613255140053698212359475546731320379410470434842101269982932217118274278662531000704494118949951757647060968816215550247958844658968097605231188765511187059458507647665747867271713502883055070006605432839455082280749031982837258362430512710599502133929919793447306349723224018436192812724709562491802648452475820811581588889419446961232445819271650285454578419198655327618174725674784798912258591340032312997794875924336968218232091016377395405144301925018350409476159526611912826614797099964632301880798519537418884660809594440838034175749430370974448355590389226199891677494338726352209378846305307065581498840867111090063478323218708675866781630612187283395222921945519399842841720083903748311888204774936570559243307364048283996938995426351324332508030752993965920883233735336581932075129176823503765672036538991598022376615404066717598550381638412868341505608279702358911677716769862777152802198574891467471173172171265925551192542118057539941516389649944011812743338231142185643923000028673886541412606806590214767046599418938211944556486418040237057539570645007518149413701496006849900039886852328930674630152975853572973704635169844144419910998860989968157841147443660097508893206421015433883519049970212650857348749738090446620228976485527657539409748432180522462114967604666050422171492499731454410234649880561852604026404764610008072784798662595747974818373247150917350710216549719409580781951862693998478111159889435923632263974387614086914572896821070453864094275556980889841376149334496554106393134403982002077569705571079209846482390500087102461542339301247232737793589323620508654382288479608905189423495196680432761384547492494597347350992949482155561229627698182370327466558778406777359190799272502202519512584453644376855266290395701191208614106718428356728335838946203620735551205611446979658354640374780533571983737599391537342483886162753000209942496539889764311747007957396903030306325693422301779032801670166136894433581788238927037891457499306522651992634268682769514936131539447614571084652294050463057498682132087469329624532906231839161165376026842570311418300406470370860846733825977046375182127305928074963898180428995654346011725339546555994883002551131982918075996453936544176636432228433257647571315863541759532902211762672065063740742100430290128790472119649870009056891680695274925829336038327013542898295165197671232037801089922587058403858061639637684812951280291542481257257960938440508030965134576361807725620706665558979713557088407434377831737633820401135603314606502645114079628935798397914206226724867619642625430400994701006828154140777408612152337431939443639715230654885849279581224576261871665499714069050009327392958175668661701495494289126621497412141657105472699593524294335891520366080470058597498791039332620915070136947953767982592344158860791644211205782189967796860364572905789600471854780866469341441350535301622138094158391482487991566572602454049351962150676141199795113601006688628516322238821631983758601390842389717307782125527481171987449819177541316856051871197139577277944909187966302391632048935651710682849641298224770626687229470537683606955428902478888459394614708221909376915258708322911961655996186363543863836423407873691834564252789674973116245019702803654995917797476260939868447161729362414109016987695367915970699662552046199991578113191597795605415061045019234425416164853600908296792393913836590344531306792798428200265111739871068373319185893232696455315956330144782509952107569619018774656612333753386181761497375997510543415896468942331525143121014556558830070700562767978960617504428058817944007941736158423176365869018962628612627146096945292138349085438597506521093475101633413725294677492200096086895508571344875128245902797994102791455161010081614986175111365747872109615392999270965021999158876488610405568961748327414066029978312982883990311498194360296367166368158314953175581991255130383530614578927658138692963204389791905209773235703195326802713689272857893832080922545725094805479674119264993940164146298616654310606753405218274703717917567063037944385679861373514715106970971086038325529887318367612106678137967847862230477165121919015534880553907766829736762812913006825518241210378551376187882705043488863496386084312538502855122524068080814352404373746989928689878572746431904741474443117572522431333306275043360647536454477693376551478741768517888413883307921970223612652775797870952020319034555630729067797057593760346289898871531199323486274311155479262518471770313513559728832330125668006490767882858594897540461620859131779596129857829022467397990749231428158093216699579171428905888381102455064776175083187006812797250061890078921249403296764466745976106353858047990743680724519579426793452997689710827375946150481121756855834119787934942481872649095613242673487898505596662401800461333201472340540713088053591060691678035329486623765547637896774305403288948567083977213120748134018303131259995108777379282970522938217275416018921753760427056954785734566361323375637416858648501535751844196557583440248598136716247981885479376458874907190841787024334625544413954370011187914747414780904531506226109918949879350794927661793553379989761468079512496264572798953060955739182879926829263525389217651555871152361635465588141919685920385348243683525831541979991907144110110664608026703802946183098252732582058182440016000211818975357125454725198728767037726918448750978709413318521398823765304633573957939106379542970262777440987156723719344280662148162223314967026974676091771614827566237183180112869025781359592265864650209728378926993091570360452647626614543050708720065445080722291676984634527425866124695599224997763013617194015481226013933499709882262927290725340912363424967386738574815877007997664629686350623523397793805722030172201252366400228353549073180878819501632282097462933234264314388454972119036488416201844735500264743353242607671925287424255114355130686175141843226054231112167221142806100598871705484851304737434438440690739722174019230670391500775226642719378204702980861016066859920024887654581136701757931581379505093129379285693108184681411373802314262157274724227174393461580291227911518580077857817612887618417759965475076897274150030467207804594880312828742767109390201517310842793569451423668493625695901240463232860636589680158036922382596999406606169422318478242436204193411460574061389462641029846966218354036384419091467379252082409375633732247174671227428069092412663644453578214607114689455232870438517078438400575119321068388195713992605778557401843734765556546895785106927793733786503271803904620854010775474234008144936340812777169424904447354203391787158394094873173275305876017191018766537581691743306231395228174882913384700265755379003452892299065679039453974199531294550017371936175147305935539778810652221941722968487500008038144788506746066066524093550602762127820607347862708710961658476357557927654759086124841945641052850822396745880499180444993912663062099512241457002830040684736504869153497577807170296873936294647824392368694215668485593021811975033809744152728304947075703653934452015827950235152129933371158170755807526126850534320258197897432514359576378142711548812183105365747143118307991503232904075563551785097822618942729192678967509575056809569550385367712244848159238793450318669218749637110053619621633875074715024635168841517660217126025551535631066305795279379801974304553706071022507035599444679111462901765060352354905460226008411545202539261001545019483714952138112541618038528520258892560354738794922684439928790120019658633733179947568623933997674846785970685204968528108212811869907573775889649169567436172560440385286054584384920476339886815512820147823086529453349031204600656254111479674510649445358152093721779123012635814795056653907764682564064306039660932290116921483728534232293890104176407737555321634692294794189649212205191569076687460410773891032304321794891587825957327338367570841516318804606026166174345966011284300747202968845766687563589031789116116277413066424710509875009546228544080940116681465332547785521105732757191485692071700060199058863563608850777010858054564233828772256467238223927985337574512665011639118290706070615785369893827378296907954189842140286904277235630018677690884240430649936524359608967581990300579907128788755947573014382725283839254708813031085037330385628325784929529781241074586984669109723467230135515936568823223824598556328824968212758948202185713501159912218471733589727006143438630083442801558800430233109932238616544962079429780698748302876804495475903313002203962306795757039975785108819678408141360274089529542709959091547495358872812854522587445087672143393103669664537222763784661468047597499915782360859605681592086366045233501569822185074240659825080534324211026448829896465947084180423999902478490359861020221650605519042614138131408620931517435117523392351927012977505769033477726627210133846662740916966590365867382005189353000823293246815406061444893085232014091372974001945211444433650967630213187718873908374389329889923080258840238830690015563824077673688291401486797650981571713669175952063802289352857217138195603601935978508377213552267813185171004208699341439163209896364363675601626123354012741289195257316393231508363475878257039706126346938760976827202425449313803165303626206594770122467865162540227802259077440594285938666411867596875312084784469044519918688345438369563331823580884714688403139860702422199662712509979003164843127251977017520316527954376312044830839535368803306279225307676458701072060209309833293135094618537939135748524603482513316446371043394258148912461012342382754290804177148687678795305468787595039995973432179734997281584645200559077341498556165880446257646329270362385093845146639561917716520219472399014563178905189062712710941015593460889863331540070472156301647739295661314234393140896997436066588333474158714855500849958067091297156194323966224943936692358382182962204352512045946121341220885475001224439561218944449584853874590044771359838567852688191542699570676433110143390894531671240116280626286575404437610023382335599207455691474522279768820552370868348911984134319999307716099665858538499032840493613920072930720989256049217125589133395030938782635892863943495406369616057662183059595133565574097835132158977435176709077772925641479827686965818758890029560180124896987519262455725635548754782297098036382647078550623688912011846207173371792185181886690434116031791077552266168332921840150148546643863948983747181194637670775525002432180587181898620893222645000955007889365708748316106268212778902983914758154975231055426621659033263673422171104073374434483727976774425036975626545930912973200946238702491202510147926796889621363064587732632449075261679660457454714769343880645576849097839615195435561286379668259773940831812849025929091687033044387443860328737043796855240228249011908593597843867995587448231949183529559699168290986924117107924327171233927743308159135282350250361830295784657336586465162237579343336792169445556189361954690539251654630640255792241297237998142181459762024114380562743181822353016068413946197155472865622584412731613549763148174954249212963109644992415098627104177511187273612438066167098147154508244389275650470122442140008086631218636925407592817688977768906840919807689964430675964601330546661701885249802124280587214028071269788930247731673589085433487984931503763601281006398988839633114041447822117040747625517169993458836095880547722797222404034276632455286749128984521027962904937101788760512809511098225686990468463661311222253753510281075571789234310021748848996169958651742797870937834791080071936291709645004216372320680369668448369609761296095143879639516997380110004794151930363567226731780686086484361813308136318832038013292709168371831722503833498713729667687655006706051488812103188814537807029758582167690527153080833765435266056178069611728252716054826865747888617978145335757486116940594531930666336233311292542883887856615515990865868617695099333257008382133663452907488524679531831017880053156884367534788544579013500099443463984630396615537118764193655722383029581312932332281239795223956657012111317392324620490703046246763044732851982260720383203376927093567771835322324714166616043273984733675558437702235885593729328353958079007299358676845791603631247739875901308893997953190799699529326566671949266476913327406045130212934276798550150856341895350888312090797970411562270315472736400390964479053916629028630789588521767874847493504418581496451065799104065701156883019061245393255272126403586489416720535547667840592847536440576407302171109278574341887982466022720778699694371276392856450684249202643969419210488655334345039158796755173527939038681583772515569484771446339659503060443261937358075708324900777387250492438514229158684524211143311780180156690478567502979657650951386168033486233147668236451685678224658733855660118828922657965713519370513495287003724792625803806052262173023151033787392779976330650698604467076595297199637616576036340613093854109189646163396609173637146378665909461191349629617305571936187772276781540368529570481905146168014286864305602700143532381080084139596980518633012689702855560409212689692734153168964072128375476980024378541077699395124822933393276342529991086995414356315328157288473464760365495483517505392817001101631632304776445004383349170584458208083873996074652802392902533435238644878850720146870495421011373635891159930754342044029091210778206303398448698780240586251410443740907278074935448799068887636157557632662356526338239321021624871270045766546131988680219466739725660167935806515851317085384292985081494974162338541077632849403528083183244841495499738915710062837455906559928333759988129547949206170778969680981467180503240678239064483005190056888523635519185843529392027554006434807419385293154001695283406723024886704444535001065768022416697380078303352712829676992202877229687443255943627181770389779494717824889325791885461337757520858332895403010719401221982388424773058436688414857799122475293477475468978068025788612922722201347105944117432968290970845594745345909486958702958929967720787675930887467576625340521706297241834247510244859191973937599893140276006352729328701423163740334563460426383458301964395812357874005964034531822149706277401989458129974119778385264492555394665308404968733774655492309535803075194911544547223990006024707491687999976360427123256927721094175070085775005711581386584327689903342414067799733045371164052766613861514105775469843837992860237090533011583028726500793138208498816863722966667406485450929241485469268500885598952799571294232550722457113025859814636028925175784754658330983902507850626566015275114239566465598489091112772338938954759694976155731914515999334040342682247927322967441132214201445836344373505470035277840534338762150677262392727254457840303196439027006426854283094352935726189801877041002456606887257573701737286247148819084427870430753098651644290928031918487306012516478037968252744559047227681041798647117161069295301828358725640534040053490522174533744472993028844078209258530640163158823282499644861138703763445498225059802360803616876991549704391090073715524418217943771404284155941331365084637969627796088312297831667432560224118853384540018572047694749908677881792436714354837295679940788048293620097016279099667228509390773400448384352675922603524758404355930999841365963120669516315797565594712283373095151060149191732103015000712897487255604123266313082799442222182123579873278103934034562007662714415488591244914871449269251532628754744403691813573157475422162842273671041739662048848493465104719601423935296513959717656801817662993625345443930914365770106897878450720641927330157055044992467087696608163288476852515834519716573318455336615741534812972591646146892964428220537085687745226867775138786585751006914261619223528825931479912619401101087127671784157557515602209080485066393678581402152000955563169048354128500817278309956026985421777202658746077348032481545697655742970174683274773072345492756280361437475854416358578229385906095891184486076957849156662902077683441425768412913614696412979983329450246415086980618180365316450899626859555529043899453239521493159223757344066987523994925702868593721654996813371935273075012350387904438208149134300468745087715476660080403151106800532632762723998758152516973885383222671481380063133905850317151800014371764409226286643543820498852040975857634234625283429027277251739384211655136316655107033317135611974547015809327504539435139804600929856116668341845663782249404459887512247668351998105264882922863158354014733792752754313125277313079535674373297941835269167323828436231727336617109468361347647438580905007776861806141991958479923192109623856919867626788893797938431247886215653644511013986781774384254692078706571466879001750188479656403326468924994703072052670554476855524308285377153953109154911386470257236278762717375470131443049413518893666609308071220558064100505870150519332649643507808447517340113447866932011028874164941405526893641887203180571382631059422310814556914955624479491209969352260348096186925135419952854997730343327849432408838201864349422063188019535478411655685550788033498644189606746953555734772333781756667651386070316293803713080665794415270118749869280848638735479488457927933425589208829396075540804179352950330149333165169885933704272886939364909360448803169418396755906432397541027332118966349527934118546570361624548295033590961915261861676354033939448105112449652419597094473834201390066380800965519353923172443867987110073564619112524944632936114790063231579594769167943977055920288097520382070990411129571145717749419330733148527524590538749580255835462063160915526230848978719849257269712123007934685429615267677699703496310357194497811880402009272131919150229305508788696246885527269436375072650085203769333230703232026177887758227710390073492486119481337300106356889688190976010840706569516433481750195246473915173099114063061350370357258153891337400674752449639749507440247123657169758543474681471480369557605730990566920502974301841228361740364813282339102469445746017318986239999255497561425724169388259364343228381101534568585654210208171821687513844999827230777598226841178732036959362564512877601713283394171716926646702653149000515784609219661636456950180785787720313515457233530426272597496385098342412813467323036788887968324786979754281251014137459312167189257041667895024393543497320067421886276316848988655994768793371717774447834092056944606791779096026408400681966129437177622513896014330549938951436055515242070927333685680302892650796850250281657351777595147019413989370409742951873796374171879417526201182488384639303341438671571023572653631471338596002140982469417656254306048616724404538810331884094079136812808706531879397282126146888211182024922921094054690642928881560903698170269126996566823840235781369857044429221315806120885494351961078017515526644994412263467250147823604230809262602582794656052374809273567395703467439887093414006141991620617455619754979895981464282615722401559012641078424657975746021896265125191274052909296062820354222673600622626765017818309377888545219518294272155160707911391940686297123315135926735286990648418958786694606527917784148309483737544554264919601940311830893944373158717479607426385125890066670555723611150761542283353273745166233574383819997466707486165937723629484405020552080675063178073928954970919254245122735123012735866129219428773041617833714552206918462398598703106945576515952532998331963724811587194407219346661767872316128526851743946255175953284788810362574571276305674595858110399082307925251370661585453495387252095570350771564771355899050327135753352258995566044030188357555799817110641590775151221064108081583613945409000805668151275800638203537050451908558737498571427764423131758335682242046364160334365375764785618067417141128332566183088200094251067849914823086153567731200331359864995104302103524821428179070653043376530617835183668247660669196328867023143781990015877278098590207109916119328515937538823157277368622100440240647325356821321449712734373461317496345668731128949135459928855140983471274785245329451821469932466202663917331618613487142150870254460907697061381326042790486967702937881480203713290433704975644169536389027262641876268638455496847318125493071161155156429074452489997308682947573066258283598444137233077662838238676703964971625082035779483709463639585442840649761203748665614496871696615982262836593278080079456190928350644730625497092867638965203898788641864858193601909265845089815948549760818656467047418371809028586959210143252194411324973855998435202260712280554004236858735286925368764543756321548945635767699939528270805864135452952930090960580856209114269376004466205428936148344572285956918913909644705968882235374293380464628467717488487813872856791215567560193285018309795693469200475031832253823939956484526445528606073753203777443180553617474677351887849396023803417321319422840777833232441282503332276304511704234627330589262205280087339850421028905106559071880867096285740867975068783445019544048042523092794622214485913634934761508920341427239581638010917285951849116487228233875360542114825856534377712104066386568129325684947696681948120858506092812076823533413933473215873280833957151219095135780476228279070612856758706212271229975071819239730755162372560689509910245938820635495763252370069818523916015889622301289640562213594993950043356839649151666241041079292590131050746142357982666779975364730587887897769979175629435849006296308966736004866948824707463447626544322797515792237295642848144605116544047323598805227781640234129012114642619441731153229777330256020497486947218166211547079176148128480136528450732316627342639908760122755131622418682235327612136084535999118429766474861115166818037893726285669189501332536010539561721892831356719417577529016912430002193892158519612312542917454132509308047811190998983150610966461707908786932059057395051323796854250726427968197935248641857395216137670877028882266944568704059847724035348370483225884000368002434327260575249562770784745244885401048179595059500279043446677223038921506840452063193081891646900481522173776953714363303539652827755437977646521497169099378360157804125324939343371784204988815538068679580297230241394830935306638456437649713605815864054163028972125787250996851701796172843838025903442851005940456823032390882576416471782025648010166580052220659410493090019594982593508210796443651255066656776168258062062205637829036257836847660761503766009965704337235548834287350683787541162625378941187741727965476476174089008426131590388330057762985854939381961690368815196998350845416574939587665452056098945246121804089691093560433609274886134592963706992748529410007404477614538209938437761260642518045805866594351186831938760438644446391661849758672018585509776022368697596350277644730251850172971502171057527965287064810692163284831179758974750628265035449802225741994957453130525711635799202420447496539983864731953086139965539453068351235260150169670525336701274344412305473448140868348398369158362019977038125466585196004560689924430904986099112837233014541108835766782179307732302556251212021698520315910104672510440094663750643508918220117985567239417277227796032773258643066189928217713627403474382346652843943131294674566607527295917197607468521234742202160131887478429643408698854610726592174428581349572826417877288207983660101212463234301991790726553887152065312360084924357076240476447233950464951915314801538696759133248775313424476368790446339318252344272123970992671453246899006079628672318600294083391947712940692396040342910719397223328921377382477438679896611860694316599475968123328558300640294163206564975012261827758197008377999571071988840578049117234496684430053633750629799746408743382380743309428897758388101726634371155822414709077530854508108459177531340416723920928284201411277217449444139526601764711597013731930645928337838799970248741817182901675379365281615844468917452420783184258297439005549884190390615930506658257806440669974621330509153320191361922762288630055509075116722237309207713129910549637709066211086399138297656910890095957046470845752171550752913187812659836654294241814894862144264962810167963052955008088349666358897511556637842434030362324098675144034482090410295111786772400066351039717347956729584071485229736406036313976195622083695727542261436451942176236065789647822741910577568475103852470095046684456550156030522650215492522248160288608241972864397957649558650425840633883417006224750940494609003034872441772033503540196530088880192097018395157237912996516590790394268301924622972543068477946102378553448222625515254929485023123320658138816663308264182471143952407317821446530563076441963125203083707726852709519951837844011139248527428856835026111229209866330205833357652494868727760255197138345643441814904794547383079560295263268554910253757807423530749802736254058339692491362516975709989770505665127561535857476233800042911661629146726040977591994692496919938376839098844969072286263948666798211427631652595289252334706143537793588730597740006733623012855706796187065218124897356879151418456091176373356124177602822455216998465740878211590173560465242257647522060218295529752734104397165215765874753727956568217957919462464059447776836156006909851265344130139540278815613341312704486373800550549592708923947877460418512686144584782338112077933733369940204802732465726306016912868563033429710088807972241062960235055121347629266631109894105469057720658931589438295970010129938385730671431789312634143633671321945454269195024199399868756474323218585768713057554846824705896912428009325589712308782379501257637662443679731759494524686817501645848015065129679818935672922004963263307763274112724532479261922288095998403714656697613564098705495661293694235634268587946449794434269228465740489696197232029393595672656474361451735391053095922547076223489507767344611907967546828289257196648932135598791714779417736706134571113752835954400828266330091050902370435847754941986488726764282508102729651086411234708015560582938571226568600510840923056081553617420410727443695587539511199404766062576566859624485256725359193414686340678308087616042576253358143420715412837461401415335563508368584275479915599390565872882044700277908805395239935045861983456447522184912338331743908702056234714034766183679858252430699866222556573892195513863288877325647355545094051311748001893486139439754214553241772858273642377000390475799356271391004666906549300873546320486884466315494901197508840629906274634190176841745138740813237650423345723061984915831193426647667012572318080348990815347872581670649114175191993450477094540109456617464848061040911658576998176463623059528337618513971494709456932773716647107080654980449082817598866738240195915400453939628853547092713339140000751845674780559621854023140578846285606031671735552776304741418839594494923177216337169547076781014803391133861882162358616587705553963450399532880897066879559691036668001048442066859674637163529305600582840594171573798841301019372743900202783982030495722406227824188933862112588964751328396916085407994226309796915071493577336936116784103714149208447665022176428619355367009687615733683292991192482721065038080654802983375959701293163950633002750616909376828846669699109097475588229006004107761222833250241575047947942481685881258544079666948560054538184912800780516261654920814032849837232900384956347553813648403963927328273937494430231282873472684069449964234825197071249005715365446362091880464976392118858364812502360928305781848735535757314364418718959117455546616098438645371921000521961463929523802191120252325726923788359160785764683915176930480896005597115438198634034574698276716433543733389454420082334041143420663668126966955103063490509191190131322296101934753054602930737554959872162705493483681583092632739502915645777454479726764440420978882904853174570765416562066700249893227470619425366311281591819925641588190097523875585023655137201202948606705465544027633019063478984999738504605093165788071470594598678789491394011647502061728039911277242372242374824208473292344152692180078173439599914467204082879086590367739323070685535562121089796569122194918726489158795815845866658214319873490881685776421334949349050694505389670683570294068770790373452722497725007967585181344251780379309794418336829915723392580969864245536541284070621654013050116566855423816193631017870577643731420600255015627975461235229610603723041618759919815649320791251600110785599644323564551213562302794079616534290692471829404620056255946180960416466272692916482649529534678158885651449040058459837361971574793935430357790209447884728856712619047114774429091576735492848561837359640047465657592084527347958094699748750228217398917087509985160112600548111853105167140844701428113973775219036387219024806589104290282023511245637501297585438454665028497545246826012512359294482729487167983891667329257964262958373017387573028825705691215076589114086672558357230718024672491011001694073219108007100736992094866835981571137551719748034609488485625920368673210380071809605397168892099718603446241180281543951016473976151720251418045038098853484780049513668054744100968926514678865618758553632869732931389444976976180033266669930003585999499002510696681556245802139281543626203859290943444964507429203835388932557064810749367588631543002471950147019144402765583206043105753445028479472217537873701399408987320140714261406443436308540876986146642380376565354994750647062322655054435369297571229004839704487025322432444102171148557096527993983317414046599932554049760604663036190592588009457515718403650052824134817368523158694321884541608835770679518983598202659710335559790913571133321684503069723949150518924275475070855829372586697529129945960649335163025055942779636799635116220558393880652102007949892306796663166099394590381344484200386248484641381708416180646926400684660785628941506198304741663019413274690938142679791535080630656692537999821166022140011670233821816334517957402460171298027674557823650150134469519981107848914033995823788513845305260433645058911072006655771017700018818215853090118187094702495846288040351930287826066742697554096410548696219064850504650744594803990354473075278534932706823423793521724360600041711794672926654568347648888779245419139408835553935565147176273775064783822791024644686532051395758542022933736586899028474540282277240011395927113474374865250666408457882759148632241428234742900111289269242714103887074658692148486324215774033390722501249770203036418254389357872860015116446649551269506915248374470989413054456114213975134094970363220883559714293690203279978002328276052803897464002071059816074879672607429623463488950499639509752319141262911394897424695327121818602545184556388453000563363837022984967999252270799985327980039106981631872147374165227146748785864257743745932564915052077549023113760447005764828459977702494656355476570241343940115624459611243466892438458565135102056327287653203379377270251111701490877787082787923626397656320971275699050141834681809664650712930222982401038056815995002551041843367224533276952518866572455695552892630513566104409108360041015962235540989127582051812716038064472918331759845263051806496063167275170938655261269628390272711976928340932172658097962287642691234650550047012693018857238113640625851044520852490988628687551853340019188154559911313285905078674732713762136497579402915285890908307464573578903401704440263622910365716459848060068467520253981882772151633652597577300222347505958134948671247986106218834940473209302575132947588598757570542146663128765601257217375421132190394266265736390512396259616554242030710014507802384152124184876912403218655565452698876538105809215644449118162153968996071311069602992762806476247969588807312667870840522078891490913864887163793493813331508843391334667739533352952921861582413858201015447683647026489619016209096951827242101541660851742724884516996668272716215679638039457377607885279914294708328352899663925562664333054979767467123505880046141004505743447049054422842921934230414391622172174315588802184091197164959317602894436927778403371360386598839764886197548139171892941670731356992509379260814923148267892356416599222346142285965081158289181684393611533701957657171651767419215078223714915135299816443654418169609383192038668947675147630273035226211511930922229553033121496152891082079057601545163275664403736072010584617085378360199581607632050776688014442443068821950893712914221869417198165862515217517431497469946807281172994553425649190269249718823756252126221006018011765925791619029992759579100138498436536831213028315677204245023797772302896656672417393427249498262769809519015447866524726396953791240874578562145056307707563276546065244583564924788342310135927273469919275136202166991206193123450326371539636691978886662452810337447155724120349685589185677077608842553996668401650807658885039203561055418270909424260627545139078306414088610537913400956041434560447014037075373384404234596016854428609144042512397422140145238378076563927795143870393415253934896048436575983575461916019301226049178784273927518760627504355320650210802716636507432596511242532821327578690279581208105246944442681077799401326880462667468122961802358884360970551452225126052195954941466988906165002848806480648963770441403192576112621186171050282820816727557963191785538736489707929200297191138236432906662805953353253048769301260090530498128820625649058430433939533178676652553711834716458141043416653627789295730444525521867965118689480170582698122050739667216847145744141805642561342171618843377477956640977807148335743250939079864534627432966524278037798540957282796912147822093160656924840521972901124034103918416422788525949667313607528275690382462277935563555542706447629428120729600908944891680703494909538916985563163884448585606778437379197513092338278601362400296101112428256786546809570971774775861964641330379750687927954903868622375954629916639618427815951342857153826941098302008228324750115157328060066531180616876909573705486775380761343469447479586220888336341518180889926614632695816134129588214315005824046425718223639311798016082366711698320981810387944485533232104530661034074955897851486335967383498010659831417032887608154935963597663129073715940485734254203865262435971506683653784212581809222724934109546973432831052112744341395462669680294094542944581662432325695099846375210143954808406285390304006866164637131930330101137397405594279899568233151188549723380270262296762150586549236871166964100820557745738381153282274528443427692735609069698720306436961378493425532180602567344338264679550609545479388837269813327182133579606686555579916969263192541275372198144565577468612668129375662968346027940363073537894434565203131284678333484057253661998037042231495681898098859477694870682793071299324696227708138030742546874485667623783801801037380518584787903085573495311477540258486240175112373660147481045865365770294029963827272606449639020494278465660196088916811556817083344579783472012366224923152175140214630524060034930966310108762154533367664328912364242477348494032878954148143673403656823282762313835635616819349911487103493289290527860705700192997836429855799040435567103477050455914877598876466963655763812395905798087627554191048293321759483729694424600588471059459104811912746717361588268223104469775594435548247556159740226989452464765364561084298492316031684894639265110608729043020819288858337360258611424544625039422113510725496040559693421710641073845018202851782818769323192796110561039328943729609727595835452787800507454627409906879093315694184946232265164822941895692972731944157663403116450258180956240303594679347613610058210559690998515920183739262484452610078324813174161042403090519033609953422147638357195991808492835229402020310169506408034636704815619086201905529310165388011458791274923440551349423712276880197662400752550626812825543270033808223404069262095084856754390212222182515515816462025641082193959261207952056330841952129483815919978455655108125155560243697949546360792805132688075699046150322920748486538877033266219882198236951886896597965588906975343102137514388576582940147800015974345429655299845661752495503043787513125822331279594086498926015948991294396440297846025431391328653095529768452733859290289151778464504567172668398496817919334727460030752938717337096506661953122741081212817347914458291971815437748214321280640200150542154431553262617304986470252297037087017580208190583560250107480616082553133365621905295057186403924240126792835729787686092560425878872849140660971910623620515741699112883694328889072123136602245549319122009413000622835263801357630867725940841097358332426638015404847453727803104122256399393218901340203205968375364080509854388670547134796447666183569243941212384865723562001571207741704324523630634148661336554310818477556295984737036279719651844337796270940678934718572427529253177121567681300482167040110741389314416816856858070795080379162332143216931101563177821113089826621457385433541968044716559853800566103640324385384538331288830648070347838408028987270203443679521046343750466285839924259467331707715298402250094897496264347012264422689790779183221553891197254194968058687865727220090816323151779685199019658879524598088940464944107152285599653013428799849656867619924473867983191803189543922771759157907710896661646864514449034784189065815289647791029711578504395331866560167609018421515514794073408665007645536980303596435609166898187986808255031165333875711889302845739484240665526334057177153858894138517652526059279483500202679464853811463078160019031133005523515781361106310596411638535573822342453378688665922499010542506527451466490385125096657938959858121765540892447667417830726470561736012489725723713392206135329783615222909417022108696376333500462334233253872126837400787720228094265947709425455212492451752233776768316512837055391573982845840995733761819489306915757812347208013652995799074605710413615016845272104311481448989503935687542792855316439744315288338029202828853012666286665738014873429897579426297401974959509306147751454463279306832487405106002416869167280151162435548934225664048822865453809427507222106764219888207949512355555213827625490293125310286656375138027428389447764473502096019520715972455161499637641300451438089090981897668472495954722146976875081146089474834307566740734910060438424878658608423507362167064187300183090803577037594637295709974788925783277779189718451764442314605543501931346481955190151640202282779266277430012386580212957184186012374746721174329182733356529346252301198077350233136236728561904004082183642108279029569147378045152588905683122724688618117739686831114754904130538168795061699944875700535242684888408741835805343237974927405450688188828760406216174554234772571706792116444405836078709587634515000697040690255394476518917333769975143254341130595398980861937152422716851834626105744005765159871686052522523663983957175228017305834014753742868203455540614368005529995491584188504058386465315054237992898530710449933983821008827241113843021213935791079260485297618649931657135562616510019951306068017639412324982239072867258150318651879755651101424344871647953088490189934205587497316393060553709779780238472522965615963568066598534559595932581369807585944049304667085185227522362105655746622603043236165924894353183766113788858847393197267263722695028827210568759015877532135000942063697597019218536579210537584887717101478294482366738945777965760502993182820811157774262711454867510965856558485482748486195496421056283033555358106537602862255602558722207885882557302178817622859822368443929123292742174660387450646617724279669638883205768157104647783983436450222907659135168504941065322285869370432372810794667483025282238661011561923747841312137481141429046892287950168011977457608387610384444790798894473828291245178429542814885038124580419673177336615901704599117778127875724376085642921821660231093606784964343054629315453728587790943786860367038520320849645154192625855067260789968737894455977055870317239977037786695198608861960541024204503680333592606634216024398306535751339508701033540154857239208556044294127453585713083030096555658909856096654203183168689783136539481717384219035573177610248934268086254386870870485615377776949352247088017505751769211666124692351655565783959771789432273599549757928618476337672187100235231267942328054594105667287345889094803098581502607567379205225431277145826714307272790830184508731178812689766615810328012259582041418729324986920817713233530003314974855864842453235646929177869776336386670544766617256898535189867871585302443054171669625592665301143637756905309897069734503908298848618593200078909961869112027085979139227649628993424613319506535417992102200597675903359077344224572553547290133192456719105006508050312074368573428879097915329712314177005183439002821781415970998355480171627046388420200201686578256420640395194953901743228949106350386308451122961756314286865911450139770569614665816472667483913100074006887366710556442059820575204204074212392358232805950467055353154355431196837418448723743529758438011155417400648631915907113310167245189673495477209977563929684724272744806377628234587736144111929972436086667615484114697485340335854337145922877090670539050488586224852352576602279334481686731541497141868905640954974002979222936267222630084397132517527319525231608612171614341477588968877110688094929154999170403653592990145561798402097679772270664384047630430401235860421365286845655574031654513737954301553922999107793862637425008255296265349818053847625600641505234372659344360091082258355846133256425964198711308322459609648500077317287022657046330853451085096521207709949670331657273361344197570920807406027367957224683920515907159017573697019671377528288051069239211320110327066757534820524968102501245416513686431670288156639627735120450156549320991695609078647760331013799005095903060899389783625394889998473034986882931653153544795947200290434867734325721884401275343729087044709707551715024628689448764088830279452740274676618162903800986311948012405379919705777182494765013200058988855076269322874808105027690712662552607550974425224817025567260890290048418785249460635001033163623085581506881921406184109822099305363582512506576056323824598254945214793575011940220817529344611044402234245857399560762879429830753882724745201201971474749114483317607521093751690359871414960224466466263348087375317925273594078250396495004246572853718051561899432211035518264220757989271939721797437424374607467888291722134787417729642394851998054817436431110062817613923506049661519594610221255381258466797798909259485919883404643961960055694237250717479817287048172012248715068052730882593521767483795946213046838874605214492180474436927796234998549958684531811720546459067903716603673564932018763706378400993823214793865624514843751640608526729673786990518439073435692012330285443982631617282212286768082509701754305366169901208515978170863817177883144120358737973624098129170771776171787382569056625840674001593506159855533303770687691469905142419375389660136706100156636867731427356911771040585795485607364388176910823574442247500586475322175881449087834462194594278400658488080561003540512612492240512251901921622340543278118875066687083582258529992699014681064654240765755182427927762608094926534894737568494710569983490883055765650713921080614277688381758312169484492203259359632709207975380694642104014725883652891653286316364781414515179892773642642012706176702319968135946740272258510827556853237911329052111644067300951898254308666564200622308383530212542269884658045748822274067804678805409228848623201389555369423267519746353587470943901869232796649612369057648775138006321149760046670820888689186895544389818896454727544131102899939243448559337347751614831726031697932872078070655258111984135167986818139217221820813827546277536639408997664848510907822385713422212677917984020044548818425430555921082918969410313063071839825781460627366783257494313305746807886466203817030120806116365374449540245653398452509250455690628125182020808119377719938226120953503553539803074906468315843162413755606998152395740088865682834818238567604773732410361853795825724009520171211274744166738976593831149165337556411407514154524505752028319998376084097157800300331734018569519155092969143007940348818258120344665390049732906640817047899812954812893941473596426956381006670629992122839640884151414685699886141775336451275341408601932496822097324413438306307113905835408601196110197420404159093379128562128738168396530821115644322915987998008702881799925489624255514924844937783380736347258249747179833000557888563015853153324404462598668207225552113496117658988051555930541376981843119708947749112702503337074454122172077183609993357248094031632741053984386288351580579363391579229241956273537972261464651223528934211897307906664125143516068816024820559885607741296880797751859611146198815010809437886428398351139509728163952411962313662091796497399102959485000408796651904727449320689783609564243290850012559935724107948550390060597783619035289784917183364885460461868860923449811886439395116988087289654781867466955251413625139519827227876741546544685570025797029152247749728633355694696948888007068086774930204623073804254779241226986674793172611998867905716776393942135595593290938885844034715247098076300212294732147171300970522045780674296357439929245978241879660852174809834458975424349526919738261159419289280661404960571853461596051961980102606753235997894972730006299701375510748041057249717754169663539810417121460583404041409900057761372916493222552237887317537514475599868050581185906955751901923167543860320664102912049493022506282686742843129446923334648900106261612655988544750597807665331777440853692781932038602015113531268021777976028178994462296621682496902980531110265355348174254689781273872456659968752621032750015900303548655484216960360414084863425347859499248759172041410265224673256044266712646818199435280815853713678946463699224831373111529186715940656007464517697494883049623043275993651258282218135700568213034617315430048374714952489055214822505583961295477726023799755471762120721715858998241940129150063197364326648490142987390500867057223450703603407759375899997091734260713667296168705855892729117800168777704158474020892750897603764061070363727055763585244213304429342612445739204847390313691034586867251185733011469024518007940757442300232535076594940215881272400679901188366120683687725309814780259266434786206605956603693381403608721671060137043789237165484134387219175453125641883461230822448287304176953020251571952684436430260790828973412307925108536125059752914007171146754584326532670720062097764430634583727129048880992548027210607854441295967234532672467944981228247747650386266752057015226916762673182332445587109479491542362955815552534502982702077634245452020059208193126201660289439240726112320885594894216114313699039753973529617555693310641622830246612646793618316340743445588476375507474388923223142426516819073702810087863840874931909990756110835430239999742229618919545085654585199217131246306646220005009829455182534530539170511735826332206316803749165615192870356554443239630620567539164237973781678530975767924800138329963365110924741958963397452018945845359224657832623571959210917200561800096831815221078722605619114670877021058590542644407877934646284437289963462063233519225659327414098462712838510189603679637461062041834886983026829300672571280066564971997600915062660431590462140808800535164986921548289649350106221587445380769758577929656612731094491674221446452989076029353730472536676651256567129796778606542120078116415347764793843645784053230279022145405795891572708841698266156675230567391891728784561961683789506378278744454780887088169000282346089449775554840903117933146778252579539542235314647774705104104986449622378586358800286449299016036151893247644814606474679151345667466311214466373708277265574550826499105966710541752649131473500900311772290785461525372535353556572987131805714350815944410204390126150367699816233201111048302819696504096758116929654334202551143169611890289949612234645029838279353128932627498449379312502177206425035693622839301149221366302050411683769298975528462931612340936628449780363168529574791872560320565664359006492966087184681716315972530348740010091688511277193154046329874295760521875276824844665398122025860854185311340883372314926337175572602806515446545295486802529385985112870966268961032565968530854528227316708726986075661386824987471823273655324298165312842668076260765138618020830857198537979483290068222956608267429073448936263122276840499933273672470631610580036142506011071032408753387903864368638714381147015573675374102339144724800954778339139460227593554742666074562711311576311085858576407754916121350728450233941604532654787792656827727098361110813037436823901212833724599205482176487251104276969225377777146845212567606133764403950048631959531609172653527963277114627815788392917104903281090102750055261751122252295092291624754507901993977191546068158130479773101920765351970712457826768904256627850919011514436871174115218187563962253055099925103916512483724530318317576085492920301823938388199130022192371914830744562367471881796866314407825233112019637765566741679326122487233395648058541589924451967377417011794865858359855700480726580784976883926127444077006627491045089505292848641949657767865442305125490963671381812305681865560615355111563662681579224636534773991220132323711152973553112525626844525789902009892312318968515975828296307690046090030435027849546423419419545635912471731462300652293496457461968307474511850172617191240749852956485315968623108252750438064109888361466998902634989359035057675196170096284316545832028462631534224636624958902885296089395728278058261602271175784135499538938810762093119303886714338508348869443226687031668403653791867808506706342081319590292726284448602609526148741451408156761935439651225507894043543790206135691195914906109144701383055640047714688885980013446860471569288451264992840181417285410213060836668682409240639032236508279835314452773437751934717115940982063821874533617842724899411232411041913268219905327640568382238604278070146435199533825923767236103434088869015998938763885102332709594670110762129519585376119577171956973737776686598573822176136995969090255024775365551316569882407961773614026529737137025066796262531596144546315025432461195176631492619319530042963560864533465353777130865853701783514532861813602210427753051005146756403635248567223990397704303837616607964795330065240700301986827520559124171191025554521535738963695603229439249720284027291503575830070946579997282907878296902029542720517537535990113684574705842469419348067121954131041964941885969679191902944931423505376792199977390475015390111458009346250083121883626714635170416470330539232221013733529551433051219930689288336849751949480069193859750261578568525715410217086573073635144236136355155008461767241549044513862648435835607225836308883358230940079065978091046405072123816554497993003578070694474990959862185218601684640903774619881250493135547337226723054918213535603526265325126307344727274968738699573072134404992444450623255262509780937762917505477281525185011155283256725925217083252622657814037503843675343745758483067401012183288194007295953744704071861604405719628005554429295275760934971418910839385050140683071958495511285535912167113944763636750272844038670928454865889270199268107107610960472960968356808452679732258531507506772326706630086128626960361026881100438426033078041684176410435296223493546686268969974129463179940282452366328738982428234806172679319947192315812184156323182182060620491952580652148417255468191311966114799229626140827745908307684986501645303322842012868137590481577960433144378600120226601214914781359339302608613627034552910934383869085584251256705485377129006918826783645412746926862639974904975186329331325893147550354991859143640913830465134717434680056104576744442626523382602371344024566066582656456003958297838800463105021000721156135142150683051355513892695505579224254733055734462966915602646290884843082795651588320815151113790158955126629254229933870164750652051731413907359591876773463443780732524814697237791741275230874375137984744522537719766370848115423170548736152864989485023480330035392224215139577723047806680650884238569712121538718571750186470618049825830286641422821900047184339711134910700990579651428058306837589906314452087239770256344658049069870508664228285101615966544886381670401295090871520130357484142002202513429892914326232202022350757403188095355160521477600612174294682916617780675987166827692573821321248102127372038331265624805101853730227747755053791977730898089063628002509063445340983491147439204637132392373352413797133095579583656726174335685670358371559161760219730336035288130758711532485957967805094737726171038336905336048260488547367208972605213005638706598178716742064405498186713933832261375793651036691663682540382995258404572294727348084258120702624952541099422622823234191909130846122055349177232935655806190765309835532720308089845036962002880227860022084375248181023611744361653343182773768244614434675604834308469499198111034322715377348941732733380912918305257949766252134295460156007476691024093102870261000699209753786280900029156305371688781700386009947563107871343347713222989390709573881696509455746507374783068010667578157817755676593994401021721781288845415945430557599551649986365084447442477962589683033409845444257730714933642433774602563590560988280726445738431913925413236106924049392998708210157324308370122458941794979712987810127048811381041389089509072734584031953663162127407401524759004402355392906670226819967172392442897407978247452342619079792775242585851783489980184934723233174892615316944781891771262139154621496503476016019813552529454589513780196498607910294613789837689641310346331879261896276646811363972762972321991550665565732948092024166194493870112632718387865815701477170945732540129763957580351979706500268988816906637291337214565955213569579153501041094955144570951723430111126491382211427485374509498679312582822080210369196501287120202601763034877424778145472187255482118942981498791400006291278920967306017020629182930274223466013826284329491234706781785884685046567648618022974901509465103883800896988656200059171605324015493837874551413620699786820247347879854100977799867364319938967589449352521123075951441194674664194655057964569118518251305215121427491149088246784806915244415958547904696304751679085242096147543806483797503330508222723899982406038898540681542973012539456606141695811890626403207491245119197107876520459314315163864420241588825394119669254451865762370755999800790008248841343232356610042089437803994857372488728751673782185214254068677373010011898467861562300264295570334730721020039697528730197817377898516344179593450074157229391302274379138382602038398892062176930216537300038173015994304755280003460799097189748353040721519237100170293227972239372422976782335901584743087223365629153617967703164185581977607262254839837096125206641623595782692202179518243142773648450138480434183871337941323787837024631591676618858101675166832047815959136230570894437642766566692387732652367044486614335103605225259226906149405177622199844255290407952064810152034533045977643152978619187254949232280737907401884764554974224060873280732064425169208784165223443383884993969700951980171191654978278828480130965604075334690858682645730431239573248992473572855597100293709596568481091644304414605534752558326711296864097741356701934420243058924087679841533795837489447595931238799414992444411488410380978162619222984590941450980758633001906915606266128136765174657899755452264107382462958726383942126828746949029575545196897104959655641403249041476789149030040242364837118401687157686346341288242289418053086540193595481540314425605071327058731575124423284319112081971700221913136083714005282913453683769301035384453110643271071756053737798684126783254462526986641994131992991707431624746027708516745526721198680664708934257681104495719882311554922707361351123835609359239465608257678900548000819714129784292479228724571401240359532797089418914232425054109294431141071551627906797715996130391602400841640847109512109775953127070885915948315746821608177820450952152241589950834677475632726052116157057749401273764370487669901221722188215151971194764401063617534129948140787576314343464079543461722789801426153264709437592208895868329533712462954919114006767175887647823802791609705413412612041781671731362953482861452804495042482635373214515370381377083655640765370023879789136039161803697157320821629715510110550393429276064271794222316762601699010999362696375124532727442277294774408827983954134601727122129013520090474221439942866131263981088873892943565915656145715260993899953520631963128630522880573704992677244038801980609315439933746210130398973983260322752974185847503477361854766127239590533685028450033592487047580236982936016999801878601523857466431536509774450991213592760784376058496297993917743450272878933645577038064933422071088989564717629536951774764794651200700606855616338925324850367041862758181769480723004063856800378994383108847404931788786614659522173639738288830973172454392059038321910566323372727971001452878751590466699601317259556796151201441320425467947463265267300178792833363113953721922148804890210177631049292730731590342930689187740146253633532721451865600463413372741062821042112409867932920356390246484815413724584204995110851776387969184681737785861655148527926055595784492512252685255102521678222193000763588561265801120093717051415447303520281330523400909213795301354179536633834402491636911606095141637707097952958940877977419127928325261935754646359534785075158041470781061807658589811294097427015682544540158638649447926006258579794693009084995076784069839854157079402285875180537298333993970624731709011774961142758095544834566662782645052471374316327021778889309406952027180118004834487751132657937235737324649741490721438021640767761037911198006083346169689266032460087802804324857043239248175862612937586331777299884689254154255915546673076393031745171917777002449415013484962672824635367701454864033938544349811711065797259689081982946910297769547723749360373673583994301943117579411086783970483254531705806585845768969562213116086397587513978375702642231552154908904860108026393256045785317258562898879783215046116603587117714024132467904649906537046842946197203458658548221382292377619077615986043908311986825837595285356898387916625741498191306688589868135088153919693611095999131689985947482342343900393959254611811429805668299185828953773271162650397261798677257325712749837946029278854428099435869844543858923864661614519303714456343969982733147811672259895340951054806529903499866117578086029897647130693272968066604899004529382941111911393108340117850415004718801662078580253595995388402806270023099269521168674318858577777123379006412427415128865203749383915272514504315980357198896441430946087564994719487881006772590031759696171906132428357583271228689098169484575364919488717147242017231316095162866108092821920598433993767362601144780004546486513660035215342274576761485276536938260700941957420681062391489696445323609377073985574967423052248944329392615982861944552620811990086611331060684013757402069834244826692988997866071009211752198458346034760747812042804232781768297558793772119791514832345730661785377240563286686858178123427274546960248052367493429680071295365553091515744736722139782359084341850404693060337876909896952227285359481876216382694713346097733152386249044783185207944548329662664903419419328214601974756599426930590366436538455342776819056350693863298556154138446567689600651354048547228557346262310241015546029490820349107653384152601029398377945638285763311535832689848117349025561916816623640883155155338536141974559758483199420414860623091520818578264073829964579184156782892494078083404836513239354984885720873877219372543510450718616328630807733806034713523157535110525049426784143355214153884948914030549157018615763857660524909307962218421453932670249378952612746539989485268844507715850781408115405291500482257424105784411927960517961261643639995084370794113709895827957162248280723562858255969015599272655177273035301048311686065382405696035174556177046191109214602208363116437851980639222782398325978633962325826137306014696402835944221458226007410424501426379880701903014873161704412665044499487115943138174540202173347405570399634166466140586342773274111644237856148674592413815254828124374893490325872321980648579109857871990152530256163205632045771427391261966379740177381990213864116114596810439325236978607337903180103575885932830128230375876129010257797449808713608890545534600769873659316341363208752772479110679181210990631978065935927022936437554224701023384095591938104549460347571966055111357093695070997507068701151835609070198242555501404565827121636610474007677097998398000610795551972615251042144891523964310937551155357160326619279627728637347022308063352117771515875360009680558170075165916939983839919909813316608804653805086158856187042527237350549550248100547401745545974757618752284888253868068817669055377044355468670473217304353447682148598465220689620194808462204075212765815458345059028137222929812553515366906445248479795657843561617448708588687495153261290200402596297746056737954742593327580464362551441021520663893861531877401684820535317318406210286954179537659058798608077764982516061579656078837008337328499560699287875308391382626743414712414915996476870356023521116116495552048991409476809324353032248724549046104752964412345821521627588136058071781242658638080550252727715192234923935268788709712137458210368712315170372779779329435136501223856895369061563671696270859500368549773536352844815776145961417951145326276165789122165146946670156430492172003556926468593639836247584758528303942760279413490458476255644581560115028067331840776829369796689336459776507547181331558980354203832896685721473677305186312650798065157656552717315491690259353173128833793811989905505116117926619483750409969195794034792724686052547583519366956755163806696539213101893514594638782111844838308050778070184305371051250223017080444139224765558668561793194992115741819659291321945139692869187020936621036622592415906581392119233027914799425957783957193913466618271070958597282327433125380963499266606917402028924348679285669802067410628758888195021963667259699306858762398339576926196894862493845960360784455581982492714764211743471747832495859111444362557983065544456638655376920963790295486282683518249507451355322096764296591110110759220252640848945999229503662431375177408468126162050819494241894353480002002815877872677709919214177676071717706507397838372402496234871121237562143252812830638542412777036180048692723241570420988242248761327281543883122390494900832507552528182959664428979794664546647741061650803976735225848134361275843927892742764068290011792206488217757549741832303607283524731887634005530219922985260612777707721210218604642213318910786366447121745186127879560644860309902885634218917790236010614487905077502280223561095010342865896988272589976685817443742676889570926209656688773547038801923080433811699626228088442329867086856265519650121210182951341646722366710551747830114453136080793547412777433645191168291476371451878248031715877717998099979125933387421807554049072185632967153264286905194348553792335719618873350345776382201756777744771260718263308632600175691431070364452932397523957844401645275052248208032005500928790359619642723158969049423129336645452913279495463060731999991888952028804116954108133380211836103227278310357969048627167494219860429873856114206457671697785555058873014009950825670898765364058424262432284023725712125736048636564072009935567392871584945197228662025426628918757263161048554326793007770962114966242374941920842916266682444531586982323653172898252897226710340167966331685714090222340591920285003405601702808963344467077852414354226952841997269011550836380613248527244237995191729165655224385875441353671760535505517814130356601696253941829528156965673148643691491043578442864837429682372998858272215076845185455794772060547822716851198659035840142028086211160006696618971898019241907105866191207848873981444915865744816860028911118012716735578059197192722261504703466752543286020716887720830401954357481072520570960350265485109849200111776942412550861135860471791157062402295245698118425590615719325854586646145332882836408625188287191708368612232024463802185796784604613611149029009165462873003279614507921365066864277461652836966141332223142784763485851323157534237289224943295775011070648960429344817251709035524994484528722778656223028892295385385323643734796473690574083652904146256608576850730413067426299155602875304521640858278225101501798339629785891568673204610777161974945775289312903468281935637897630532312573024072581453047399841801375356267999017866947765341402876849420059144163645490458355808333124278998279520858040168742057465035504236686858880883437894642714353134917745604627002373571814144662150562702515574056061557798971677795977495126288969538014119031639284121505285405344362732212280331794126487987238015765520239288993374168751311171187254762938713109602741129318168445338286158781009538788401330969847343608894571807188778571625336646578282599363117902451140353134768789501572551175068523670921451960672205274341097291272100561341709110141668364414278992507513110834090843925719305618118967907244406389436263604761728185184720203821898706413990856515564158945113140645481447636771830094325033650196343886801186724392767318717279931924101688421091869813134684454006573495084579906010647641968921186420996902669780358135990958036881846024238911168105767331553995252589466845300208931688147648447335165578919012245614694190831972126962454865239012148423907854277385343361898454186223474649377440895323558625906319947288759801668289345150491323123696816899064615067568122388842447406040661477425957836286863698157020797436348829671134924443277128094533814702881283103778289203618072537539923453850353512018960142462393788764767012372423755806226796750834979679422486541447360683971504668323198720913883808797579462079062826882777682258004640393312491466027600552226041404975727312504949950180206595597586398763685256369749173783729828507065180130442552716375308834666168016977250020326869540934811548960854833738104646120402916199340837681275558215663409556631371652478025377276767704934148207631434502286848108847065136065890682553832402705177713541200570254668289160245934829994919699983973337413919001448980515941006079594995847092843121937234177473049878010980909236536456507330605888292266617601725898360605346334895896810820600628016510905770560456756720800775651533031492083356933183965933270198648920132953019418863073460844470873701123658511830866111255117085602407973981527142604893851757201482393569219461571009567978130520546546328151065865734455346639320339617996115053129781897262333053837785601046404658555645231858997802124323699397618060247943986253045458831130069539341352235550679762669124231436254429840282692115888462066431950428244443512225935501872919286458628384058889503445072084411446370861933480573955657902840625117655646673946675634489274888778922636622604762783196963121890856530538065994822704657540002335658215236214474185843246210073987209477264406319932643220255101077893439897130624490640498881028462197252927450546444804112571525015872243588407722172467192595716495113667544451375913793636244183221770501706295668621885679258939181084288601767476672259326827320692641843348298911069413934547101960743101755356695506414020727951184014472118370164795285535389052294630441504090872787425593477095529325238097234591817777722065720532498627497321356902261917956218696821540512226166319194432219432151774150991419579613150902161625472699171455862852552904071800901240768577792375031800878444002447270215916723069411269988249363654136716487881799842983604584693575232011228700072338302795610966459268886689034525656380587957899506237838254916507514164028328341344357939522620016132259318050821405750782032886282337266730203842840681504259384494809266466128269952473098042643207822318731462815652060365531710971374195719837677845336266763717017458798916581306650473938619492993344730064309928468284257742319367485042531075581606799449999496778725782078443667301198233829296582615382667208482727519489673162864522457075204741355811980675113661976767533821342809823021036117282994652672986014803231344271355798359250652664108818186473226135863293676252283908438548838187346710516581004164285573284231727042041044326660994680487739640173182366893633517015436576118331443514844729549678259000101647514694084429324062577641120746615807480159651106017110224170952124225844255741345418322241341958507382009867793706483921060005627356058631534029330227568271767839634353626377202365613347433964470355913542676720884081347427383973543049845840228042760624653661145313607187501861622751815052055610380444654398370641913467042542832136715309847102410227856324292763689608505013021989092170142002101703026292164717922848015425821664666752266186524799937723370983968632566583297265520062420571819823340962183106666421635821291551003546389009414413746893605542393631263464531151669118091089953272468224593271115373020242687986609449969360999447848186893581852076611112483059352323469194480985820428154001628347049039671510231399982685478796185188826765781386405792516747320887589039227183332833927895584437078454659019468284624165217281346883995952798228710852082192283749391896718883458947556828238211581008833767769571591822334041400518830018028256068325054276199105731304944678935656074486130189176674299300203311460553119520935265061724181784507834880708473658885567864072482275161777994431708160300663140322975272087854997100176242980818682606279790441860504229128384445169045463909696404709232299928389291664363581288747576620993240397068270270563683613482018699946389822039687471740303988089347298004156477681331944151666126947580169070033385456704183350736752229733399562301650390424769983190003527398361337517994793373948310216270829293708139496042422231141576619040849252175027890066130249761909209347109245396195898011394549564117352050372735836066761753347322974716681926357773143180345088798612410791651097885559756788784050144237752039142325214897136240119850888154371701359762290317477153706399941579772253795117837353846339098895421092789147314649797836153208601220895799561836985723935074656272100314976187136679477290976050304152025647103886498360427782421097677144990005435535858862207298973723450955492809317076992806685885919280239722491207441375354917255117302726135439521636310638169052464454810341300299338847025341060965880524785370229432264922648027489717791558390523449397163748089500359263102647901245302599111033373651027973285120573841293851940623269152068072373549482752582270783190803409679189499581784120197751985265849468529712289188240259548568366343532611421754410700709222597121586631740034141036713725463371015699939066277795557525952327209120553757453651421026007924319238585951333121195015592311642872875679920793227590916833198793188074209317291093947522900745458652858995280165389455223340703467234157554271913328035424128246332919718214851891463298518406742089241193868674491177081261923563131580448642795902112058523486814222887316266154170207440679086437701916084828593609973270889159930545575073743526866124720628306877229825489050427499218887588340993015894945328702874528620949788885908964499407422784324404095268642759800097333258598623479763952221871040532886737264313939101321078199348984334047757346242913317031799331508723666787173336392051136771256263477571363711232671709994149804818013647684871723358166453396298861416441510747847160970411889859755670013626282461055739711910082662376716988817611591587521721654522407283897165399421506448099628060310857113835635193060702649125577519884988298309846384567292826681016461556060145743989945364210478352796347710829076430336879855245521672378449154257850157638457397017930741969521190390298343122690306595378787150561033702391656710593640445393366346218028499857842564680302105708379818127895008008254453843606603991159133536797853441390571917475304601398292500239325457166311556435928754790274875561052251780867792448643959387458157831598338946453642518882984589207345315704353026784053036145409880733791748023347732297436206791647963171969815992045470475088817671079210310197082073294719015779802635560727989605235857994784866848618995550457027626952480309237336007062015336144053163239404053504608564165287073664792294598693005593624081796565389299261915693536181164023690182204136303830824566838354653077998662858554459749571036537440813553872907961454056534552826742613356450832165233600474086167231467314158012778560631519346986740033574165428004195649557842290302148097493133073705672578887596496533965027862716054307252539539896597498266090624227598164812973030768995772063452731217886358181768176440443110427384045069165883596172072467138918002310182084496553792669740587695144968806599605502624456237699125161496335064500363563126267273191455067749737826474135861096379318920388600194740672446946010977955451983517905026345694871687659524865252386374485672998578906490158356198901395709792579098069382172317377897227287231565262964267295149616193926762937732951038229116686597352420804234864646116515028285277315439262608434873546622882256941774213814632579408647808110935307699586245516811965426676255291094953400587011681004855637636272499824234479541576704898104342470938165552752789550308040056251982543894856628644089103187556149488015983426267535379526613633347051812294621528638797779439426978224753064771275229971134919611524684353658917885081950583944401317247593093082184276386711385150862899293737668016977878229240999598725049745001400187953739597786610494085795395773798855482304596339892938447468997829120746203881707184851554141231293077594015455611487913103131167523087908399250105434416013232678784968404044545791045549787403769509917827577305580928154256967461006402577455278078165021866546613785355997794093809053200186778268091415481172747374924975349642953412995672246925709348787212396283365311748640261139468561298303466655153230006462372854678917927350587180507286730517109035101967032164247845290322489905778171202473750775755466219179651512753362918412817923349179386907408752003609560304995858438502766290175016207781669730551479117322364183568517598845028936643105167794442579910896202338736978352350483791226436929234758653095667256397599933959321213150387987100155607403013930237308328606556387449634384900712714854940247391245196844843851651486994840044305408702232689573949516102978553207363254337256536024460560452655519834565772696701466002521838191190334598219262864673232245346358221635271760226249010176114539759781028372836196459214632006760144295765161300469717097056437403979195136427517856513863526582672043788741270543217840663001454821184491491121451311782755994960391603466757771372918503052084767298140267201067435569778355527180365491127503305321446208468176280615549013364457797105061882478138843547361751694024884560703798599759013963090615784055164550630043123052741418809154304489555582618516352515711936268633915916687750654675273226991172141878254442660213115307833440887800530008910053365356472295306985270561454190740557149780018567614617916688674911122371456470242538061463262978959445855907280539096255971933080534281553977143760881532486667851782552545053381446753956030975376744935161554228548919747973235138966551088546921955692062023015595449893842729607440731449217804976495640023534724543843464535172514743683458817913245202870259035484010050302033502396550139381219976083851679576166951085518935271301029061929782898289932308158655871250383177653337661681362036908128581192326586563950473504927803883780519932335811807575240710685547783163828084387231673866712398803441147579257157787876414303948009819526804172006267562756201304162180978263270843397967299481500884857822688339245654954340635157684910117708903133751515660560587457776698768772854941803045674538347786071287477432738347968781438113806953463644114271956398914781789158369857170068326240911947325351369124583343727326912555245904630760472746133874140527403830266874839266495679087444926996969297736857442527016160877056073154655561705879512207205271648839197642006723975841610108461485551794331054713012694878182008663169504953194610297787451582200241622180453985561255906732787260846218088771125195317776517266860337525472927809068897089925387886354463148609812464093574905263555007349144024640496726590988560418079389585684618359241296110994425205994007343791359458111807480805393118357326743095775862543430978150093813684572845779196646897307631735926004277277001678244154677413776067877239154484905205142843911897989502985007929622796896043601834353478062875384225632074151348781033748874795876434895985547355126952537836104222345304908661412775292574347806302047756088738563475712479208122854955797158919304449358361041651825233743271374715621451741661992034624146290420293829112604787316550476742477777650210562282281698269671845986254430862252901095218456980148531352609667689196041773704982816980517220120913176928534224493277013696490713867085355436780252192742726947893863099391372888561821704033842048578319374083215423142411796271485080829294972619383429565495115947481555610426082842231344196153550602905281586084588058901098694031775791615727152395073270609199991740867012828524608588229853573850071895487608578808246319844462986827264177699083324903563697652812454695641090478735520030841468457939158152117332211562744779574307114882741455122373734590423342727029900943443288191162268449467963187126801160674910339998151469027631424580293767841704175951778198881189995217176504399679508431459944456837415442944045872562951328705083945954028548543532001958831297386451229759965546111898115839082271522049145328893338114956426226841152713285146438003707927236345970361823738387024363266906418336689327000981210483483748140350133476466599776366886942262103009670870462923149182601577089960900632638636304421371026425021324133682281713512144417246922416556232636175009267726928898322661871301460890327767466555961185186838659302269294541394324509187229169803182538785334068796414843119418189256380989059132144380656582710735630765954909364849612190268369637799996978674695865871370276595376307572667811058929705008410264508512636473618962370911332125546752383621615602159298075747772109398085976684206261575604401857342607288258614401069957680825246316804451279110852745340718264967259101060000077879518343409117642264898380096934055882854306690244003190136873381612173198992732284075782916948368262743953720737243900146657277408296493887852443775183915580800643009813889752325007415449653173114964173005129171760800901048725211855717199261056501477877014443590434884658154534234986187367068947495761127466188233312703910673605111717619711427745909419022757738283169983500741251587480831550311212705961870353110028044078295688236092912907220217918133997771404152873104748178371152528931773091307426184341710650546464329319354057337799868636308477268513541824148147254313710758742534986517271447133675494381861848456379931472139531930469952737677054069378741770086240404900075386086156554829965805090667037219969262343657694383793565935682515681874400155940669400203766292640574133678579932994719772037391149628939105219477782882199950833709161997713831441647109305536403472903954432893447659601311413222832403566023955819753969184199059502964483125956814148957086695982451731818079093609153779534316805048622350737159896934734606690105304063004878405277175184889108881231768146897645072358952547519424938470526720987117250952590458411305552021312351968627167436133870445749948982046718264368468067316758010912513202639853970351649698013370099642128502827138185260797599201212411858145557656553354891672543842104741511205514140539413909473439585349391231279130934113073264747835051407858981727600136030298965051964060714650350761049207573386145688685931628012421709361497777004235786144050383917339257170776487055020893735665240391591982256489050621216348685268317174685460515948410376452036085260946621465462017675299017773130737756913422941291563197337785475685273439993934784717913702245935616677920491817161137954471491131820255397230354504850803901778302812292472435652443666247267757016738158237488015056593199853595478643049314770228471729816809050280441736385109534242393709648895507637613828225856320944591896283477687487059268272123220753881847970328038857353700171481485285525215070730053971005670716746888083110729601506500312872246335354482049350413697136135979914758534981087136818396690542549592027370430881650255451228334104805075704384824914833024024271542610840525092492103659799188564697008559679309082007783944724464226039079872031682724248468667065066722894465406500188804268305969814544915276502798638266874326248380794153705056511469644944808987984035536986113290647146597520687508074872887341867179537161249786318262083995980333963324647156779087545715179387471929373746933635568076337499871963814667683786977371392970695088391060645693088115445033355349189415950636811263163738041001705417671795493734281264691941335771801140691289293888891656876323522121986934420497087506656771620267778980722561974877636075651983032423215610798173468274816945464789688503729525104334218079924431270060243013549053128506098456485359251339821135143822855264481160419011323534376899931695170192931472579232139618305347791973747663207031746675218841309781430789389226643925019135472356109639183596923248606688630603513758321073762809968705407206062349915149815416048317736288956156001697835155284123346932470784941713184318981697855512881217332811245511532648848320635307371489710183774120555708048267730871227888205358715688898101073993355121459227453561352930570063882789750159531471906633953124573308177291124032784274426905708670959703605139541374692010477510318040360649704207690425211015789876460631296703345963721484805493143955451137299831165647843800007443481865088733833762332662082661041691139858341310101929040559920067034308967234632464828560990058820506837955994054817230384196451020036007529819255503275707636024815231939092888325036974708522721132652021320848604894069401286260202535992511325241262277276546878599460931010160573392036131956517184783226710679992994160290793426180048889330876429978932532721274113587631559078489193667644266767256861151446099499464167298171996963109180416035436343479741790741171718653182959517196355196211973995575964216964965301608018628433272184862603114471690653961113801346393580336667079905825143341353935020483636432449340278853783677212965062779162816833685915657835854972184664237929286753120059270610647070797275853118428551515118638921351548166343594215528813200072937184230751538759433422172642725124123298466010224329773871828665543330693807416564210478263895732299350965130133382950079522603627621704481904027381047606286251509182521508507648135756245317687959291303591848832397647292959846548692787608705022158770681501121680708292077440631825055456911762017659765009962698801594260897563825803951273874346287205900694089038114741806142274890160815017785587968085492475617071454255039842497997438404998241506464748931729272497315118530961858835963645354791098632908071862386717723977563157733530963188012611292788921919972582845078114613868511794130536821649820213978081736220164980407730865459147458608783631385171077607818600745743338221505778792210320709417668926784232448687105750792693660894108819004339055712645987213274060688298131198770590499599857912177878096095793970048189145569420243011797338416999034181339357366956158834090026256580957324884802401697050142308746421189050684645932729151823220721397072184669458464425824589135361037881621889806303524858643234891674002573074129392464754703908936281480459181216903219834336622299646565071994775462798824289703247437106857873305521818287825034741596808141629765938823495870667207345270954890756400403169085528717898239565231062026028272347424538860198547164856841650891880061812021405623928540296929610501461959801280125807023180337822554990710443596182810165775707836331867696092974708565364150806688662801849993031990317405589635586995829234114929125483606019524994194248180649457068826961376008653737158221469851276492649024723442051378600746750119703512990987132116384322104357116318530182365817447823070234348242782367677738955205335830271793795882995344742510087606633193786015162394917258203763296531246405779308460519484876444201969515767713319857609896461661458452524499883207220330335732618305208796254978484563931567496127290596694045631120308237062434899805953325302291457888280685056133752688975002887586408252945110900372550925279685038775468138023792016424650021121760111899904164962860709402420948906414232444623070293416830960122410141417201042744494116895576409951654678034303856550028572110589102527962872394131209511739403877822384531486086368640142402945813572749879733924083032748988485792450609653488299892705668184740225972528206654287072913253893106963925780210273193950296299858959454334009520224499937392478062658520933603718798346023157363441180272872882120528505353279352808351891831291236670639520083348615753467946225116088854996122547899872688585890737256764955621005096132542037960289613730332619852034289782602722018320081404823823018422755046178754699846097914247907501896542151567183143358097313168959786665393111263244192645322038030262815967844473140163852334246647724537754001543650234442789239281833221676179621162269113960718616264830662768585444934350315534645384592654932192933452743278707362538371184544520135759555497124535477263021094711357823576898339117953157112755141711427167415749916080691865535541409507958785035800568977743826219666037595246988678647359167163096762777925724883510724316585987979584518164363226215414702973617685096921557172249584872978780583105067938433669200826631911192366462765884646797814997497287548333027904741450345386709954763440302955905756430486178816609341451920555074921641011558289283228272639220375537159563095680516098220951511517448145698151697185295596650259486658240216052489830672717930566485165411620963278194151857143055109669961892185614853986879318958557594923480822875446822089207920669070089437571945199958691911856177410538153202682996038086493377147546321631891660846672902391385505988353452751027567414974780761975069396871949056539865098155940363652379016906597271467496477778835806795138313915976600588798039123683989742310610197772553066385923464062757768033920381935794782353804173604489487860408478057159334000621767027368176349622734861961564117323811593579358242015063558024700330286527512882623809775415931124387539017345833081375837695861401778676476727838418824546028852741059731520190732022631057675101307507240808923072212901791599485690933039559484486653727587219308511383156529861236238332935397429646970800588700119590181029043623704134538578874971759515558906476164864726803342456759261503612458249162702761750714219964037923369185860605627409010639314452531387644532203987914603415813924187607419512176407145076819357768954257318083146747093182161015560925680927147535147400173358605294890248295565195739173182163642264371368406207571445621603138139148007839012056720301995147905167138383612621788027968746417909555441076473951164817469355300231675673408697493341215809439220922438704502525931096895513508700954344286453553597816082666860738935011505577747630500766723372767173458137933951739915334898412941857760708496959023819149052659049033950560577455145690228901811839472737786961502459525522662150792998590055424501100724694976275767281770981475056243633404582574853219297139500901504561722810418792828172021890992714380111518305065071003808968246909248136343400382692600220729122949055870954503830641675176141197722620996214837522628316446171614955287473127489484211805391600923512100494816498652829453044102930494687231065888782302066260513846149691544779405136471938376601166357965314870191897724182284121602781305128492073144113156143415868782984687041929182917853388280119828511349542292245301920484484524332600858766629178393643222488451068495764443009520114098715696004769444567136420945456689787196173791849942785588253442011607350282117936034029699943198983184641759140129800298440492491139199543228086117104878093991409588564867560932178695298940497501755337641591628600479489645064627909731353331445421715995182477376526740810057125191182708193301110897888665276044136904735188248463139034447587809558247983277973516642368355073467088774434149212552331501793411631870589654353361900483335112672759558879127496766921338079591369686664060576499585025819488207807271337155527307316904771268683356043260320185392874948878451320470356034344233445603032070655994086266806218946632003034218801677515383028880373409600270450683812893981198070301563090211077342655809230168287961083442082976142719910491733332443480711782179246910065106356409504262665138957013584923484717034105546345799636292216396188648182859427940135394987886894989234272786573675080846480084543786319469851354377808258158599667397706785989251837461900896133695081448055270504476318860227885150960522475512568170655046024590167538644743770109924070600845742618439689794422170597924713422324088029283283120394028817125831081399240668323623590212753325473469647398589510756223820628225310695524476457046173403202163149868832347343523944962517442230132151946695731180621737533889612756965886529330809156869034883864899413660678472042198154448932605151959472423575796155213227011221689301806976210665782889167288689719846597110788511812510070870799105076963325305050884885424836182762008560104856317325659768676296018642254056694999623582066751664157948578707064682016787933208018705564071053869411555131402350400156838925261438563087567571625153217038676781002826151949708291293128295938989403899752514357686601549096791705092768150210021769848510958343110188895832384501446495247488390586956670094369731419405757063972396326892168174525072033781953309621525461268226326376761700354742682980562677342053485783363385152158712974501094665798473655454075843586674978596063516870937044557939653727875652777618726679637591583304341704575112039976474242153994641934209894577801388965564274927134443264261752978368523545483258557494738509973167913205277117168247049797892258373337972812094759875057331583580737685051990851409618865026109919822470706115077090133703932773524813040833385290352276849451079848375582765498101409597361395196254400610479005135854834576647483859469083795318631519868649728366590718920268511865915183382404149474445048956683444577044258080000131636360956228096422863274968536973015585524515714059680516226471478906770001784519798702259069903346150549044263395947112194610653719033589672332894207878131146785965784028834618382492659862973523757001691549399945642403336858008298243251430299512234750221822882755946314734659432898671439374303150223052777762687589394602751468840824836609252311215032127179847932825784497912265471379108718722016553741383163106995865580943724395179012958410132678705211530908373526098973192678367780544318273328006029339289844328185098701765099214960170387215014180330750333203974919197943059627438536548857040961831737751252089737517087643430196754541086256804688728882198412212035740491066832368045295021916470603189900044055771641128010406657756890016659965354315865533969759699352119651031285266883577897717218609267896731414133354640637264036795503144883404228691029551251856084819197714646768238889007725538304969394757268108472172246671299472185386440625823789122418938117109856097261191637797428516371232416147583382049941449688228980022179660050661534086029433272913648087886079522691338804219280801095068779535081161274730385584027544240326696708960495174208800869084363668612878062116986791885226834633843149416805654372251082506243574134418109989024618535977774797218475575234388283632374169670829098197700310914510698911793810342235380169437296415513343250501305696548397648815388954321984294480632622019020397191254589539069222552852691201856584578449004900662735178974561050679450465052008021522199196243893828903089583509901180428554516956774157746524179540981939687344530516211740168579310503046534494756240201386728970810703239882159908000141904861226117412000010250461456346303957819037213458337772581563708534299817939705605449263213956144508120900081370077454957672089158588273303091964377527703085509649631180411005178213484911552751158092801890809095091328929086470037144628010289019975090009128097568664311377220534681194551577523406475238669673107546089534706385283891651019525697848056337223061573783788065814040136899202678911097154728843237147006988417722244198067631141142733387070451626266193123554258631094059551301540573174821859808852511101307268358822125349527689212359099682648213406969079022586882941626016915579643188072509458314391573375604939027752711105391730229815142332096690866503214908083923624037281216606372789900981188613785077980725928827245972737322173077414567442301882586300980400750922103004192898233680091839286686803722705342711817770283448201345963832380204043599271978858113193471155534485908645570691183771450892933225544122823291618965348224309984852518728358972470926984085620629545852299871454219141827136673352114960075846672657926165663432932267022559638740913455634947926698659028159773820755258766279941276252149436099389062723066583249015370096336540884008450316667018996161601390191160252186870909617599882705674156638831922194891249134535015764108942256935555707178229481604324184938943068424008870684509570926360089320640303971873215049358809825956968061565696181317584368506925936093461677003454368605345718915491421547180070226622384422014649084011462020783082100673114366943641288268619622741758238503160512633402762258378182898200652743487505846782320176885358975614732601754026914878998109360948142840731756416420495876983146854539038971133962533911837827425051549685535488667625330774354502176038326175428293290275692829668999841403531154930934417968289257170860824886309657787595890152408443393770365673543554848363698665256296569374523614959376254070802702636623140231416553000904840876067632283665453707386771331826089958271075487384545082825317091708323285035327469308239216202234960942280246094935160808026639175058407746194073158338444512932456714164831241206151865648598998507709359538278264039780140115918342650230566882869124599032360234158349994407575546390869485897954782271986105821870696437878366120915646622632510094261282473898964320184173583082210784579064495623295725928977077857888088566691260476289780517194369113549699286284646608006163175921747953658306385365826310982671440395673124351977562466393630958811457510649933499847543682701055344711809277002129927158817584000337838724909436540441866310569865574575785053652331739411528442674279874116734711774251641579154266197281675003991041074706699881682190577957237899758640047378734513132708428350296157029359646513484717184896043125231597123950795187129224837519581833822462574886399099770426274492457439299712625012017875469664220178459047621461455169001971628031890733498149530849300463242676373537609225133894909976167795271641008971212340386986888594151204999591800731160636171656615217403723057626597917822084541676611731003132319908167913883774202809830665742234840374495647491856546957977602345652607686154234465351700397166675299401872893474777931850709040496541085921335277446636956243097563941662649264855330361238608657301065700811614976443677250808822716260803726084775907832231116939093298722728073249799290963017597765926618930510632093852496788585447017905180119945982466703956019806531766537812636560479205736178983509852692950647426908639623246109538710538107005929426656510454777390625432372386213570036994553532627818111045564035603107958507249797872914434497093630233945673469119742574435523836465130832380203640393915272937051804780807872856020832050592669945580292873472583010135300850038091892158678174296725844408267236666616260348817891857398541235852398280749577608240373457531065886897433655935913971720653325392531414645855212530288572677367695618599918116753509428136943555622265329878097825930413397567916912016755482810412693028924147273119581923528842139361186309568670543568431700979014123826377899660979937514498885142184044289051700055645803867119264126385062176439093414997275287963633734188725758326653752170710195434980461063677816423736153690695313201600689635085366003795818711866149765743983360976076123035924626333342336714728276402021656649502123894396429888529613184601127235272219522424608020934220957182553713455175201863284795192662035415561299547635225625487099851299753084253100700816590426549859161720248415750491599359595692708675223656944272942441379779000887003508431314906648674732702219597631106474912110417302385129085155860578913716912981021726923527560179881872444606039233590092961765708674486486782856508613191276162296588821932257433352156615579620273853022139754023413256897703500776777488261736572852706977302425096689531952083671690125339569858659939053864588340816510462741062607839898829924926666043529815920227183462357701237921500616743562117621571615665433610606416026451886710744896376055238295460992802597938995946334481377718344218344835355545689320876567427476207331494457709980693185907505872450904302011100594051978211333380620324326587600624196385133371020987206034533865121709702691670492876300649242505241241468911769434588379739057947566742380391605181641733763514939206235307292508835346965096211059712307934308473699537285139793991617572150795686716054921419688030711914296952795737644704544385608846369747302749700160392887716346277943863641941421099527089765978144554249309898894065897428383496721531915581978400451080049160415199901792037729864332306143193386673581683480164248314822728293821034502167705926299563803256246583114549062249641165873490438322839184620332903781633827510856700115098084776935353486745334815167214067074715304333745345653303164238828084715630688983806583006677659106214451718083819293001714337328547456488855360534015300136089495823623067448300919540509204364236992148779136254405327234265470020007308238164547874405601827066961907428279047167365761225234622950319412102020211383998245843125496780332926527088903788500455727748354279638828370597317078487855050289608863505093921463521314836392223944244255334164388483180785221902808829039775225156937698234743481870320133625511190130375295769714988843469799768103797365835896086616618726670226616732477606347573085192006668303945982920990601039659692719731088231834926764752330569449921447017541135289434810487456971026772625343379129442842586160241283937403948691681021000998631575957503807206646127988212043451383802208924090886031771328400733639895268619946013703830136213806473643405689629627227666321274301858241873632858527538913500653991384507765044392653543485369100937697276567736833142483224194978168075080144809261478213463090563482318378976151553412087576438800221539036239244571031450888464995542862274325476608003637657817064791071050671454509622198804507240308953516076101907539401409645455972574476789588563489199500805059619568182212898932391977041085826328793929984221129782768805216566171573356892054522547910759260712812304638455054808067103542298477951900943873084605663056988153324974695098836408033555088807268744692462484383908821064104151114387328098798744006697380036665447044322846529100901829677271859292672260230668637941015069568926539933874476191051238148611109120085336120011304069617614259061794084231119234938959149520163377245564393186349454771144501274801303610410117838089684398723691749081809599530430492795999734469498999819005888600616617173775752167284058765044367294985015015982566303784157649379996591712239320273576868995300857084102454920026196505386200003903360181280681594996442317848904648774588530273447457738900298342350977938556944144673937248930200477890804733542927308352230828862335239329137896614645127314895617406787317920958495501434667948941131491045332455657472892857635679636800312856904649319731254891352855648691910022756127310834277815224614996686861369138749078036730986620764684163257087569206691672447460728673523690755571334656999979130265581248764854976371165637096015412626744552255305705304737763991192104342274416150911220733735366028587207746838832883673104177704574838568143014747302884234488142742197953393051004991147070064824578022757734372624586454008528959909319125042882301163172526309827276942253935784246103375080600357746756848721044490975235899009115001487709306162216123757972979603516294411360141000768307397049226354440301366734585396604092571036424646908454399866747714254621723329469482657951645566587063368093753368158802260969988603016794097234995215589194190239140054513511546960985967287277697738733464176208985465829453705110249038947209708466424066174793691763889580256816368020400529703443735345769155680461459197085025768107872243335709447870200335330284388324578029989771675525997552898618442155733219766382459841451741717524522102882604912482817610079061363991128857464731997723767766032601299339401103435592702528305082052313943531405567336024839522188307403728696923805528462759022144991250087741666759336493273163133056010882987712872279447401414711303741059160512020096806277872210350751379275342988162434050065716612099778238590396899865463614868387643663424672460861667516057454253926940729781645384953555196462507761295484946223303566781886928083868870468911308081765842029535373967076735833335007274796049162574117836717402375727679502495923882719246966718533766950840981605803723359156050817635346143073477141404543553108330919138375948868807296963265972280468601939409594959339369496744261393914491618473612126854899610325097687286000494478912628126500057312478799555980420606993736036383096395762031857032435540418106804705527794571570108294901223794246090477448989456402644488611488906427270716894560314697607860856032467652445489539287352901638817303977340942073201658957740263009185770038197651818257668371416686138203225207554485571309354090821019150297115691193118298662304224865039050536809367585628673755028301828826811790306239719940431915970994932133825326831544191520014679796291303992635692319738826929000374837099549615986578379721774473917257359241641844916297735940834271306912213796209413462734523424848483802922133863885605253382001734040376993435294482729485299154516747498730454880355430007671810529746263922154873892463147203137337361517834793138049296035740671984697616115516026456835833600271649266400511043573125388187114518624677619076604785075400790060130805689617511768364215500343731326237292297754320004497677927084342763070561285754601146969631526512450970547036861783570563074545611063052124356080685165677437507001295684896832571255123714858215916157711332242100521834641058662404077317243554459031357428506721560831384930408369170439202315902031025071529381833882780375661098692312498076098317392969792042676556923768020977184576170944001821976616906624107080243454021367353289514687241280624180007576576936183911380131773944532046663523522581853025491405025272206491445004181141062981542565014771615566166197940232527919576672358736321616627472199109353124828872928419516088345385164425563252877632904329613134559750199609578475636150442143759456461806110103297270688905610652210294442732162777576297268370585968872391040262083287590826319964525422974092078771494813836320038266013527566942057255626809245301142683928943468693006311985977255189566167422576249720174052550053164737761401695211682965272892598818152025084964839420926698271293588364567097203417304023857341844951013003189060184490448493975799834164451925382751733731072084040816072513497203124330829227499618701306341547819552769007051879836821169626061984199387177780166551947331468727784737215937131538709287211837513395587912460461998397763307516432537928211432424085491076286848788512889168466033776278031613098912830346264887872483529352225527037571476322454720839123030874118076096369631136582313657636116883453628151685584144985003212319961956683256510526518367051424986038919453816029482582024633990087138007736765444730911898744163897808377284525360341183964539512343593936277654933135393704032456562319856595155813580920469866424630820583871725702078723997375005836978954510237971286383914254621679938159924682523558823157695512357236117922958389936134041374200100771196578976642447234647279307540083671584867711812942823735743121791536082941159079258918811611169953809255917120330301963778372555051268808195612133186938206174382266414915288241672460225561824498977532516467832497646889544713768205046257411536469870387001597452582297129737214907039059424529661996129324929439230666258200927822848922423071899336143241203457653130649377069598061962533414574818766099303808095985026445414566150115923419496943914536177930737404001165696056796805634379986204378571550070596584119927744579353403133509122175082942585406075155288494618881514468385993277861079215661487393988483823898210939459206560343508081690738175920815742481893692948050930013309115104184784500188668305167721970436014042469054944088028586861545931118491066832102121343175205521220030242131089815102958225041193573684061968355507593002081126946199135624138966751838180104826063233684181935309822444068040074020460632542203258123059679107799444024030758439488592157078151773657553212082955383554262489655211717073386130475179592070982861900446974646316883325763990722842232707291465396744278624968978192585891973403830206883276695089764602577422599162020992929606196354011222777901354147783408183878224928192334606495171543484985309017874767266464796807699047699407262433311852226714363054520803697858622088285826646962591818079010225510749646197539133783232352198385706814025104077266602132771232414559963377528074350373749957965978957488446022384372394861825843398256496861150846076263738722684783722601684287621553582795432360627308849114519816838960335573322691534261671883432966625071978577446690131017417132024161356129048049408947037231810532540420769367035461889366634025812078099116973348665638963880479125380349757621519415419370159257364074913249659507799753489526758786719480539222239750478118769785343499427644768952368841654019874786198387868737139861860685260643348610268338196433826699003890864332572284249853352071706542679472581796886061617025993820293183779638720315945957784527129908264052425144291057725750129116329431402690484692349121303483936480683846468140759402294699517606783745615545919312320930000914839680583890013866948650653274410137412854862084696073477205263823042832560145934899837207128486923695733621781361722788992724503779171892610694142490828279643419773033841180279553480736842528837772884690799452175908429066830136105507537883327649789337652501057989229893330167448034470079391511818394081834498902567903078461267191088172582123730873109696066862269988367544523035055522809734883773862889844036333685245637467243308133272930960855542278219420744779969905742207659340284540141473255895925264829971361307661626572430278793484685061616498522544964750585907837726850270958452897178030336518361219887162260285016983710218185140502550869070427275270990164454838116273402558063368685783766722586376382672791888140769352319945786421384932739101880958528214919136940050820982720279281587469133481388671627644919018210851509763513951272912066296354550941709922552515070287855588681411995019421262727012517431871869853032337209431747947315373281280913110230870870900465335653542463534485220346698956044632207748236431041328053529655509567907724517674431060848406480097599042143649388539391642439785206188639757112370707696302146731414787068226364868016733330084323411679671779924136043935230494207040620793651205862680275987422716535374246666798476485810774400954493755171704957687571345384903585388187259768246246589978775825396194865403879804647894407246979690762239777547069591779252955948803612226787798205883681414925960303210174641165879191601747823465926527597746424269924679070002028954626768078804216962878642553006497812090911498555990470283960528053192640229232813553505194618505910124868389340004569521638780280371286348018972739697383326651136923757973994284958872582190631807502574219069585538907720696085665318917369992529219964664681619476770389892129924289528771499208545135552717532721504065135594599522890020392098703198360028211517945300099060654139723740671558216433912512570518538009083620511560415850535718185565656662362770504018036235971706440863831543054057326277371887016347518413529540626900917078656908915257464976936633924342131597526289006700106421715532874926136874608939499985082418944174534257764146307963220150844097829523798971945421310516371631214643979322596789412771072791181398408667774262026818186263013042755783331453651608188463435317095543126506142354462604308918117531202709727530498611256836894231531525560661235294652456820906365737162848292416904484836335861806399641758320576614879352771901320814831876532727464433274218279512695526552926024727958893540566478131920550544448129181730537682990009418394090846810543396767191655041562896469138559161322842145195523342147595915722736717772242533455497979670842812669640343999704416723124486672744540488831803827832870125945604518652088412114882700911841496490486770014163337601969298163639738572812769226173859783376158009724389585088655920317966000275001666873692351691040487579258735131523681072472369915444585153129092518189177428624301648272702927456576737110141930071971752966014423466347487859308685296449908748176629012007510719271972013881118150882769972387162532519541057070149610812616666273494717765461281595648803467587301607106949454555744626553854781130587852545827332631157212846731898194770986062429345443938390144301542798092213833288929752381775446419233838981342511407058913376318444401166898260602911299526826958668547250646841446640888872451705965847102569336153753672297467711602994852741715438646217538039793972370570395077284457400669902731152922122586626622688040753160550581487938242810139713146466701013691695776429198147050975324630047753689280358152804420968193196910774262880420460705796036605555784226510026244202858367057675098182716674418626256978739360399737893195069227861796698549022982697832789463690583494908951010560540251523428971416283127417423504268305664875202472467128638261003076949707170101745945473837496726041324722575257286202189041014869511423636050813515987896358133719548978712927536934474965200541812537075891226460537977515738349445704757958534301808441272514873952511693032971373110510851150319794084355783251109281385997274408634340225972846689760941410816569186891746612880732158644139044950026689236530113890109658204962922683280952045146689299880384782086368499146340021765064624020662434590572602134285975277665813694386710409766630338861125283527093479213211280672302153753671439768915067745485489760945260665314444456443184329067190922803171947876379130768139330925586865362070113009763211472819291063988183808703831918261089854600896429070069015503114899527997503771548427110152183337390685867388869471224144371089846874649824762200563655311539061973550702848716385524744053814852125184159823638037301021129140256991094254227309414797855248946215995244328246531802168693655246775839291659839757090159931829488873888518107740013392070626450863314451081432925556764277275603268773206607645716174629220566779792021305531712740063327307260960544821082822272350931180574968072970361243312375949569486834957950146887246337278819541497965471877282445848755549721033390217938235964285797196501452726481072328152883472800815544117445222258085481886167993955486753453654776817303161620000940020894949835920908257085266764385313577168916736961333326240021533463406298403407675165708660752519670901697163234655407235929820179493155041485693524145652895046962808567190574207920896025369726427112361503562348466051762548636626639625442826807482638159793966916782089760904135045169410139036494810792810001616396898708750023262724258322046648651450175624449611750623840361960810780254004895750198176999066456090197557641541356416306595001044254335043042118406985817980982629055555046581075372495271772366950987709710199446204686312635373955762296136639025660319764546316982875758908957728592323534870665354102804010876196682221837219593903228860224691161850320677640029380068975795902191650181207237782141350725878780728748526647231864507713368365711171074125260381902129403537718798026142632569885146103821077532486459699092473486714482633874164705116799021286884236676698275573870712220568846897099650136462211079138150808781321733526702049615375559801728353730059372953909701743977155529004182098886437114276823266670255240499012088175940140632140118688563334667346678123298706156691787589064021884828579825853190380928730908675961645147391094926946206777337849284203000565079007059902558931576653518211864939602527542357657057775851910789192292798794501971379557693165629736255380828648480126468853919034593350374748633394008164673192710160235913488220193155530903816387394678554007648759919163541912001036409935767637353892648046226381922668768167157604096757622483156644793318777244959926538071040905085160956107514662191728473899353554520853468429256655555805318832652932707861434551508559247439473288743749578218356151672324101292001016794415944913380334084311441570354191724339946551722610281164525242875784124842465019158869945069953186765223813499409122308422890479435681048377545814995534615112914515498420761325514449786373976437889254564246852812260160174583251356225288269814854519791541122365171371589543914740244287044466934230338160279524393184564590789291382840213678350247791757709474871666062484447360061937398514095704966529000757284766356298925920832612832097087965827143647308593319758701588136194163633906225713333158952943754912943491533643736812451870844830994006481224526105748734409452219933593338824932161371526145485152880154897659246129769672973519652006593932203491881215256102775135546850501061657778339602789011977117128718202793608693328524280091659570895309308094193352742799786455544835513802191073773669176503537785031459337396879506957321707115350370126286239682052984326840843855488470067078821808912611449338744925628999350329242209516888676352319892452657083939972667164761886313149063039492067774592407759460618859864788072894716525612148861564881446391269981247583807406693465141531667709517262302023045215023673798900419141659679197031765231600380727441592169774843790917298320290473995976840593007842347293365755687269360791087687129479430751023756276081542042948452684436202934820810677470198621207844197880550152548764755401411845218538198201058235370823287092668641215400864866444931650518577630048696811100252108163494405392178383576538252952513012832303588960595824595520775419439980474440074828039742898866719956421826350736893355413795297453782373978688275767035275466986406274713383401818138849584972480930994324634144782288310898885812102787705604433972935628204320299594160440609153246115669120814643901366541433631339996115322602743462973426432658024919785852534080631871104408898234554283709326032963230179371094705123991632119565767744184895638257464350509410422658023917906654064631804485818178315240839862948758029433324299949502705445950026421122590797526869733126594403881950735351701545291942644393673701343678033543554401695383458345986336668000444871107831634461148001409983451305108615626964183352549513911376057316171570191322345457682348922094420720929639234204306604847684833686578220159185887480189853377907248638194513878814485414053947091331522241724329310992117475723175851170877916346961576871525915600704320103755833233318581274657350219771661826579022761946910067224459684396455810880365708517244317916744392006575788221869623078324666299215301684690746534031269663553695927149052470164057264317993409230265620802104988693386125723901230359839470430736193682920208334078456969964774064610211587921262860120174143964058042962933710804118167891460586483990637617009155137982203183541742534921118592942431980809563835338981536633364983689428130095220595526454829963502822879883934428068292221540976127085609920289042227699938047150052925008527438443525142325566799887066471464196374725418112401588078929207578678091065963757001971494760578977569043065811685062029087528160341246579964195185453953958941160133448252076308651730741381541249751100880378250487298676252630655686012344027511762010378950553139837561944334649534858181235469289232795842355679025428311523137286182624071613624343294744091222052905252237868633711910453297326882060535804866776516497810168246550550714521388338228244570953831556992807811964268520936272606286276249395202929199064778821575571902232381953086725133390171487909491715144937341100525983858162195191220697437269668579288292199619918176037803258783489602806324262000520003716873582207114422205542352329261046116300909065032060661434587641012645567390458152326024945969229483971684857507171277443039891185408245873523578465017889834201308879653809564638429349428977585525354253394444511408372253558207235686628157753370714074377059720283586781475374645351860774743444090745911408742791529562835855921785713473399306702941974462208227656934834055681557587581341097741003645076343784601322038533620547154164864540207335059771437094621384952269510141440263642593407287622029312806382398297156297967267835365508828171534581350128779693139390950864463066975337599489971907108985972037114944131131391685429020177060726914225336031994206044315196025108539095589900899243455003772260091244832342346313745225571957244416576434655939656662594963343464848524302612079405049197886413746062036517761215216293421076478824045760852937109343331264965404021666002766262122980042262312947540152715573576724327017463469958033211073302625899399726987127287178070807206728106878433730318719840520283465030752512920632955261858646668719187444121829552797858036382153333334689109843979805321858346212928984161883589046149434697871653923229590072102029444594138286641925798008127563254726639279631545134373149718800977128848164420921089296539536790516508574764516720639122726374739265137168202349668549648198928473348922622486152087112345838259322864275554333444471469528388980565462203756107236337337619041736981904085612771307152228120933914424073786577071237516220648463573576567102099606633447821681750192012919749528473199871350921814025777042176256635191935543215740792982195795364202763946302385811359274525265100992317902991508698033949859411242412265893040277382086713295921952549771712629665388067697230474032168306379318754554646576205130015548421920145306892902269940945741198199035704658864089932165129408710883428563643239840518988861377485255071933319303097109477177091556128505670717728733432055892471909972724423783647084864219529753208745620609417673333310416755240697244554141736209867937697936427343880790402115786856840019074027841943601331738334531117215333071088976483064272609887676432749692217598510229814738125670790199092844356156364384956163595219639435350773333282317245422216430319990558983483741126635764651078489530156160337541610365261056429181516504529018701211664008815939879909972140986702025830269874120337299717533991299019778665285565249719453834729401603983930531543151975781370199169430393204505921351519680372086871837430011602288331618203845615402648656837741010274195878398400498490687257770911559205561225457171267231307270780096965532694151395634687123592343116665953280539197541176739277255816395491069199700399896607554328698517927516076755601104021791054064587415426785856206414920338807770504831657105700510517694074538554170266145938331100290741712706395431979221348426823558607715055847438397485987754107689570279119372359349021798797831083043084033638626644668645320832588279375019227483245429484164437879244701972626657010436779565827693539304778382195968912226531202951268368192370573170874241473356762148411800782593729210210599306736717572868192440938642201611100898923490836702156022589794009346216300447710187726188669948751315535834587128173532986476016623871471308812970738195169612716079138831880023937575366682776663516184378075139150040625386074951927289986675865189844643621989558202976660187014887862596730624590241425103347714686869851951749111775071758726164029149066460832530929080442202079904065967767424964503400647280248329095987361649849676176556226176114908160347747346769835288919290427942350575246898682534402528751019176893896841810512806524740462239641254043058314645693515130337591914017897590981097750766794547480031985088535298801705130600556750437033996383556060401672864481367209618177474949707408235916672443000730821106292879434554245897168410745084219998402367256236529984280381595070310494415270200114098599604960072055005720510984875248922894171014911555068570036047933946759646389757441628766402039247328939800472716546604024719356317910490544734408413622301539044455018174880069097535661157635009022827370227664048182457075710085104679274324829134930093461666177298207708903382723325126865740014764672473241636298129441719609380182137922977635511863427409770598590183603852981846918544696471120091209092525687020231254127724702062471505624107744386664733678995242341093190587081442100584985570265419819499543523297906159922983263408942767498746169714793848172365122820522408136815076629471579610273911313514394609424884843550249719182442993710178004767241354098393276256765035037947176009895519579508068596319486601934739338296216943549492726921087376151108411183787464154071935544667359528259818194427432475701869312686580868894750050904894243283996813908786350544586947633675995065457948546754990746394088925069506835448457337174724180409950915464941258814279486426277930944189246717431118461193795452156500155418570225354053865137932141094916987125147042696814611883316909872129600974530871979416939309516523420950396783768163019094698151224197339667236970310238159181795937264574094412756080861893728795713101140820571030423386817753386799989204962334389144857493939687539388399340379688068917564432027651700919386167857696504085607016386638671380461810719069664838466105626342464490766496847158480405160744068118898978483059539672081139339704756028059670684861432891491495130557013594690629996441899477837213820326808865443134734672305953806163327460023357302726187863551423521743775224821983148897420149137104000510894870451868711382018752106335664495328988870227355206722947883390836213443659477812397554616768792811422623414916251697872523944950578870329921740296958824298581574036597764373713432593075412635651840205055973791329345888978624367267828714281597461569220548322022451599407225269316571995332137571004270423313100517279904239864361316939614118013495814956771322865263355110987674787019700271673115277249494734473496088389695114881555694471489098553632965842408239614874608000267829938815199375219998583064729960751847123090461807261800339897250560263985212700150381037722564646696378923084994379063834391596933878138248093779911128085529515368554491170912093974370673029672484169152889528111248175164815886845470228746115034504862747283669138619986356530566422014331917256733788794110959002215451200645261106330149674705416416370149197696378153742736967529704189477375335371641962325682565384318081466505718006198917966288064074407582142052639239339249638767933592806722484832200707829860883017324543572204178443030246641899556731881051937074293461569430804749193428373068430074945589888897145020029507738110537806800979813986431885442352297812939591674452714798666480014474616347059108593681850036903349036054468251902218157731216339550866172002806429836566555665958828937980120373277087413866812759616007449456665752937403817514213148058608758103790982511084339360210196305642938155852741297469715382671715856912640568658530590138957110531525263345945102392060629744799532679578133847694178718250264826954207054198731097813104518507160144588818818657368382399334503687862257130237457990410455115545656785311530213375630508996864310896527070738699491542223800946837855122849502821787404699234057366243924925354963643032440112724936264857023567322383345959544146321667294757063886853336574463176625832583826857404121703594166607898868983005110626156781801351883478686173553710656273701668022975011378046389359355869444065244975630191852754612529500490783674867314668975072354397534751368901983322148954192313032987815750411004297647922022342643163031319162021338128910755376691009672628603040107165549451893297680123415112787932450815037128971335410968035694654168011491894217717822380244825625359384736241124658287829936270774274159076130952509181460789866093684093642771836412347596736606529410322664455106863720031629542230206988088329260749259016786219978055749787254310775800449614554094723828121559514281726530687117552769155243734032508972094679940870085616997688106340581913818633372752975384061453268242682915778176032806113663432173721364580989873112701253787805314713253474888260226361349186503517562868353400111628918446021304125520765128628143974965387605749172829018957385555676224483673451621681764121437597373317942977084677989469976595534145360263479963829782889808996137880869419153524934214135780422556792872866115568094652315324868009474791844691827406081931750063566510169445023725633571120356201492419637905089453709064023158117112507870565631704702088408931201525476360357714019956867509650668275198376600566193299590928164772039511168938116674425543042201696409723617158954393122935886800812325424100147327168168634665719935686056251564930138156813836305483551787752394550615117494809762724748135752466189799589521766390865244180370485393312283745390714014655508600075433552891927906983495871326697775975372954848255475472503897212748997720610266266198033257150317454851845267465974736786432881687169401263275166437447035185821420868395596575203690428370599754730788604032200210615189766963503513062599859937316904628322313992551014733975806135365580174490073568298961156123870015094540455622658543604097876934183627547060216698360843066941469952316408823370545596475435595122887558427408376573452635408282501282810278856962554948931411088624573500122324543817512643870156969479235824751388790069210308975310516691196034254966550335400859547180864498635801895682988801939411303181552531547566589310104630697792042537628722859715833967447398406052240693828901298078503542329340962171291682965047299556490985721839212093895686317747891428320397677266403085699130606394151651490429411857099424834608016788817058609876720796807469959567912184361059050811760928158204981933696624236968075101135007588899042182608176091252074722020876998435014057599990313220125158569436757479934765619759876975399134765866673962506165696504687273383651090280149794047880171711335777616404558546268800343351148589252149286216857885059774399901094394460093989678342583058499811167154743706323472690141587674503699095044233408435355704910474023701789417610491614218316799465164392429370603960679352099484562604687276530288298461115894407086514666845175288254583867245201163972969115387840731100731583881110334592636820253040262520929849629209731191167449371822111123779805717124798228391158683058251024022595594316158677636538358660130974806432645011543036636660150194283581170532009702172999065781307649471919112781664048739545719589388274896965785318751019526793165298549912288061870006840118325264300799373971503147768489947240024396541389587218084926160405325244880489727253949320966401079651403082303419677471190426885779739327631184184332921519636965287431755452884406972671727135605742306047239235809391113718456513481810491993127796360050537346236807912242089869781986109441468322316478992231634982563658649300678013840966598004512391973798574986696395538416762563105159132003956965575033303060003877482689351451733878790287998162377804212442426545036517046154885235308020022549287633537063988265884615491225844791436439696464042998186705388027924072971771969844728975235782810982745537965225439873653379686120124282947217598357163350938223844834657244702826740008840724435085459682416856457107429885103611260587308052625763250644830819206302767091072061051096938842205146823538294956538379176554907632208432455000151467927575797999249955518804575276846125379083574865273323744586754160711098863363397262248109213549525245223652350062182080161074472725189361981386426659615017289232209547275299191356716951509246942681842215514630063332926980890798060134620812791759690877323586415196145805946540463786505548016985923043978247545129418080124914408577441533995785387022986184848932876145105308078208017593908794330847437363831039282554661056348299186951093579966857700996324679260470000015272101104251292831198338905976000063625855007276167234256182553182380959405492277111036468923704786831790221954915020786550207063986784595216139929971904994812194256699674647691542384350065979016146650407631524891927140212001510370273456972444536090278167412944475515337258181710920801152185396775089117197969849615278451558916406147344305103983243491406865001173237545421146090118092338550906931830870242254872263895341538060278181047124715597185567524087328558390196502134739089815052728024147366409613759860589028596868854402078324107667582228320344316074782577367132212994027414155612381430970903804516823819435536252948760143528587285402889018980710521035520713692962775167493356237973994773413813425810655838337194170859281994062707345471236843539812069958509001174498227530597873392375806499912299741318406094879194329365034411603519020686135816916311425014853644781876098995032148589926191550575841679546173439268075633631912077191344234908199381548894236405403991878163684546860496342853499914407660641835647938418680007360394056580140623209428232876724775305215330771790257602979729638465359202594478222478582202622410968374794185155902320977159212432077210711094544689104125058056233095172258204639700892430392938695911713712576651629662750549061628613868202195090798567117439857322519688130035800244461685754602723032777486895655431296931768645516859990923551074498668791361728805808989166409337122075629893172697261578291063669421895805940718586283426244026746202322329890634138695328840366424811928348604284004559360767838422356407001429722505928231937717266881326540455171781189442137891585779964414052169471031594566843833440540818959830335599098262990978510796611685382907228642602309476597976007949241114373185018021657703728766017041572191149138942673724334148530274125419538040194674753802863196223449732232056016411290949176294560990801529645969038326979783710782888034017623963474859407409890339518088590059247391310799850519761560793378628381225913144378964895336355013143304646671780858875306275101574653489732700794891637468789012572870269508335963839508748660501616956130767443757475193436823023496339238821381090888029797353817034190584179698719811592461939622802652451742045928132868316449556560035602530817717936294788799721797158440746798312908753692844265535120509287936110575125431175436675559511670416774657795615706411223495196251572823900449184779466082435044936384393410645006778316680756415188917367221498331927392570530103538444095860357073762757393013509342185730397437073963603725311616533693070532282615171950253174525432256814356203510541267337121106339521326378607122544992943182375088111542749074659264754581419962829103223796230815738545717877619661853450139463009392907149562246398056410531939984369464540872455861717454963197790247291401018248228985377970948778492589258872934470420599253137220254175403236822665764682990073151421979285479864669072951469411532227181030257379968629670210584564822312668015386336026308670026032312335265260642221656430678082682142920730500474177570857224382462185438455614565463970365625217734202821496576325313489677116302984175032435364172701058785721951346737965555109628641117440324093305814436856863838781696271008200665141192090447409605726436766819778026715028451725733917059735578807897391282467386897219310021253855355533070802497734506271060553098674461845755504068421906596026376068216674462585126401953587580524066918131123500320469533142074476385059523791536213781462630499541091823931694816325648480028156077294130923510034488547170592613553382886910224290506322186559338585428034069936935145690882363492687865411684182534666551021083361473341302593074352312610457910191081476998399321694610486658487513899509094096829576440242145250169339310706903364966036141935742003558328745133621335116890813329360425146982770678280018188755660281199366744031393779594943127728106507346703339403537366745425790994300931606969340614846442167705369003303563691435109523619709298299363458666689210746554358962135297764568412184254664183942184456845513761145550446607934507893058126183055188224762344636069664688314406177480555933977503624718397962884640228298979634226721059856684412853613336293341325569824490429231923582324763015511809146777419167821259572910077043882405491730721930159841291952555938797620001020977920513477617320775689086254557139654202131906288203207834084313117057491905375568308879017086540746542136606753769654591534367406852955200284646019313147836109271099061294048412335493585890469173532651415210016469329277790953802836676316680045290529781280866147817783359158992106728267010845449480576168986936091106627505882753886928946240530757549054498903786647678485481165632005082966360777686441745981508258131581701997464831531633186047355079295055457822172325902578154559400168866339150611909083613703534653111245914415076499741901898208635793345609908789216297534794038769517700219030102638927363015398299037699257587632883753259582411710867885723566378454191947337825829052758659354412832915390741441365147185702701522985581600667652547138078301398113454429782138961144859524733204908063782461525621656519523547551268057544551262696940833890865484753262775311245956102129146176944432449491045780468422882362765374302370838225199896349587110179104053707875108690479132302876522826418091290699749218868973884525676211802002985008429814245563763753634156536997318010239189658152974509443372248794082876211657885822213862532922114111216626534784082952577720902872547605152292323311897240594479675167010756423855110452510309496940434535159633671456265001118547170575325482252015850316835891748957303965176603359331173933888536646820846955478818120100505338663841206201481172626931463583233335320227455133686668495557741913168803615522409566737804895696995258506997401207897677585290493892836894074228042891382318983216498365701968572470046322883568090893893827151835167233529226671580251714122900763330631332426518681384222997345498233453286777908115132048969094349534296758172981049797408589657913715290331827936396564571535034151096088317221039217068213820003459493060921097652184823037505417163087445112312157561396511047630749730746282603730854563556075696587850977016331764905541841115555577641926156888353898384519371810676592162907783678141915166188447879068125005301272004213918967445071640673812631779613449403023872468754067307185156886422429697670796867597174642085880520751325834256610390590849041400967010643027357328585909815288312407888372821474648607644477307967900443789984960100787940174172424945818406638773137229559069449581903115936625373264245796981747367611509758087829528403885601224550767184231126791928154463917168202597019562236839712983738591001489793955773555274780491300606288902171431367174126481363000525641752665766475300610716395421972288357710901356997396059907304777272847899511574552043976160166699459506492289621563287574210095695795353481387890031952294576048258423207718825061672174063536214478144355676598576464413947598567011910643926367047483925076271011559271975843669808083996520580747979313145637221379857782671700235146938283615900344524659669412622062329519792689797130596876644783899019082087971057918251024549758577242487498985289185919954962756082991015653380633090083735424265430159714698758050659544697128014591566628239578628947444971030540613278010661503450073546780097053210986335837416304444552628855650653380548850997398453426962018811052069076286351764028278881469999047758734054936696918414216288884323090816584580427790649855259811330038273769221813695823909872314880710020401768695995884618347525635496703565005178825759799293570219675929716567312135879412752338462795506086047770596272678060537879302855780270228552975024715557861558912402787994233900245324670584297119647107438040966799454113520196610979284492813247129624169545641865422075824651572017920218773890398616337207350300020740612527104313731143008794742897849389433074342299600620454624568259084950218744531493176814263828695608067858922342504600080372944113330883618828955724559071601016457424254766140184454483776099576034041761670244372031079665061062065907178440601803992801557547532246647986871790806384766981592429667540078797709463419964483240694840466480517306460191749891595506137991169985273901663721958356798418251296572465549951931445841252736442053207261246048700306288337587945035877868599105255595119677022690941274089007798533838570629875208909361366109125790282474810883099229793912480940487674666045237472842032137585251815809125319699684920952712936658247154697570005431188842422556699040955945290124031924520150744644534333721255374207221386571570930520763581762440092166897523747319737557659593655875000850064614905091122892759890046616932965827934113910965139116338799215679119116629780157009745410355185466413600901815145232906946968654016571929432005092466998245197243875672993262141915279026566059352910983459848380273053832572180556407780894279848349754609656908913773807315575862303155370436843426462018740920999155090035721729191217534429439442052389298719856752939197767468769707956822769328216462293158667572908323913755594879945746570774909081734587161451598976214997771411582494446811568976593659903516384621767671038104544423519363283613805378802649004289053323118276154976663304744287012069341888517139024321228012704670022178043157744046433084597379328590804909663383693743357363741919917687718800283871119707351850068683536265945987566645548902784332556503822675854474916424374642439411382662996539875072936726454689471930838916612665179121783394186487855926863999801664554691161443272676501447471711025857000760361512960570562915108478096192713604885935101437283850967102767502591941174926890849105297250501059135527906682529884803110029274520959200305832808880237586395241766269499448257611784815932886796134040405142075888666474702788589543863157317667612399677659969840031974626681406985198086375825522645761827715205199156354294401640880910504185085836352720923565185852235858506250985549510542064581644274042295113711900202392951738474903650709530418704752712641325802262334344227912531597223283332639993220524339619599533537040843285140979191116258915779020590947452239551462202709337938711252996143605930063795203926685087660161185575413357936283871904215984368447680556481774281151795859319154551837072105497286472319712973903993262152941875630321920825195966874641119790893450783406452950346782247669094813428001722967652675835850650155169280289195046813799945195220889085056270537264147460086438963716425671970930012903431819068298333030217602163354436785875953969580719282174587186914744350492658387568451634962019386307217721979088284704318761566490122639223896559024180450454697882609466793390936996388759017811945993750283038699330240697433192958849757889426104963762887165906386642681216504710962091109521151520202375422077508948235856695185348087182841280831386394128463269994970694682959279394746451194159096347703260866677627314009776164736697938410489058836154647453229143472595929940864936604616901022915374112531497898547620284350295546021360743697317243137486596483190340073933535413377547584420024930180704332296936955758879728890058270987970126453762973271715916129568175036951661486350630286163536137733215802166057728975715751716674441101239709202856508457220160752247536353242171099067197287505285560359919039972990110028338638305185854538984885546385298512359724550864475143178961311647686422803313699124263595708000765115286230671265892273998265393878498267999102687283657430649664457538495246120276525157162000796836342241321498777701226995494054410618711456710877426525035294151057491416423534079402029367051516243231396347544566674977588225983498481101162154257528158481832620432646971040911812279399469367209149750183273361421068880125203481797855411533679026295832276359746388137845308063245129039923444336796299226003075795263373662259026073792948637435130395412041249102261874378606714493667791684642146725169868226220096735937496751254426107397529855534534214081363366698438388387827502187249239449478167221739522264017384096919392512713941165254921641121571581176279550154686965937232996798114994058928019870516566353616415863689868879699809443202245181773158082222669275315537908185082461828161645696976927325348970618663087360094685349129771253324685635901273565159729271727876126589507253039955499752566207498140425031775230323184269536323354281301388684923731061773604963401928261447107800721593900356591276057957762291589170052964461090677938783959763730850469337083454207020351689811418546048740469807264693654025070992160909630488786408427082741025272536944753820987140796324965247577385770019344482582975810378998300916381348337257839727410772357203174710458800751267058656503295706528239722261894849044985019765773547696097615788197276042889628086769974601946163483864749930159250422859027066266408238139443113096808546977278962731932796353829979829408469070361027077319364203259782853630673004689169029859062137664540800791157811606789154289504391055427094590466923054836190930136266445661286699380301810131411696945164461449654575957234463374178297884678411417107987139700501709557520478028792759041157619785113636762013383723755870365073844706023121464854721126197342923702944526861044776460718860505647794540278557810321990146904547476647345209091730287965710794162974896102402907917156204680019313926131957798339491114458585716242153393190779685030107461341868541003478357512711176481512606529586456553969992388295807030795466891578264025087690266399931505514738074423659862325550628663823099992010246262144937303820717785024127509517728364186612992253977558357156105651139897677545273226347068377668886110763842186967024062113302580440138160318570575638859272351510451032709390777447718673028853699768233227446880357377530418636714754489462189966495228603672403793145978514777266958405467394374177348266624664379958079279900494968484899701966031934967321644730495376357145525686230610303096091317816198192907225994401341675786038874108992513301696015053335636791891926784884880843985627124588838725226685766475849240565469835859258443452273755633770624165726188081270907667257101645113653132017617010604422111232597810956378461241756264765340253035737636814013020339749728565156505322100848760083819645697858469564273614851343881114154010965112040535613765907016044331385251897241977133884099402234050890891304388378317220170355913754837941307427923901908248539251050992207732747486550322846658789601070006917250383332135106466430543483660995314609616697136861050376376371239870739794276351367044922849887569808280731081855498080097866991957191045892435513033799102852709693776265118696811767432259892981422506743536215049118189280459457182213910780554970485533994484851172554144015011704620715626569210656532564814384422647244014308899972990098880965459491296334833845307583245708942300661990018292728678467941082487515713774901200541987951103841012100887611705781972830928656320997545773794259223623205426868998839950470020983092962873975479403036956573571964578161804997523348764642248413308414064096501512235949120777818300705704461903003766293008456202596300392859385755745638715323629194096517301489861162603833164018492221075164284791857235137720825280552273768538448321173602133866752636917688545254689752691835835796202960872855433333000906807798810499668244068907566292664267467248415380083620727374048155292390152654667277322937194208508097816378772057159415689373913813513617751087294636732565055213751061517296987283216346911178745777999295146923255183684987576646256431641432889541237539773555795517505391070259643049038352829640797543338873525771582721877007566398278662085481443528536607650114376385328533403525280408337890418236837179454535096882057591825748728299074867105680251585875130621353635259511556665708630866363918213727270761682103207443573244397622239827880975973544063818365353411340339317797287148993438448195350745976097844502130096335804235212208768363469502243987255921570443386242647533107514831205937976730670459246855413745282153213266296268199657047339972751030880889440529271122119224043967144469807594330001848162795624942465082132408810414638161128083841558398511258690571784504319664206162452358805090696938840151566599900445146765374706946105753223551423826322169137882707469252866822601572030479745092128814113043664754488104414714015934357007585189689968238704747714297773172193260603648013903042713119648345818508097270184543280120525978901008782855788887091786445055692119442434022324029044017895196837887222090447007703377217226483169736145024190886559678143403463431287424839996872983825483371778934313598190596780645251898269045400318174358846719808685414498177035273118453328179836224972028758158787283391889817453943100361070637318942858229892820259230839016088720238046487005625729466332678368580082079779472213197212712711967483714789026252551973855992290139436029818656811512409234827048385010444890757216379941176997677798978229631743783169283593935059924119187557551248456635528042389426196997509337794069646321516723746990643516180360527704778922499336809053038832115501237992359929023719003569568373222594952216200512138562641747914493865484017463736559478899697410321210668752458602741222372719168691478484649279681380817192247918122160308872037579403938717828137852471125454727660009092959264103243064165891279442810985229395572523984517307194030486134260495275041950569871405523341037022600012956010146889440001686409268751430192848619299152032355854472538074558922365873151174610975099285876844199171080225972438442592779651985597019358277697056123223693701765133462407350528713400454265612818455444962453668856632793355208010534202024279298649170271792148725629768116508833672474507247478943049890407400144125356602660304843105350744601795634277675132994934938821155404846928055764173818558896798746512551268884298682126678570058612264228196230140803227104452450206784266664645439183900004376680118883986950822947759616097824554031775544809099638667662825415227554102612690097279048110751607381972422806707701412976587130619758827755730811530132239403295613070136733916257060902713763389253660158000310899016165219363115218722292975453654627695755860212401967162600911392970385921717081808697171418740584644310057649048081095492625350123930265196287291904334203852350243863206239833574337172725917345236636064921926302910048119801154468352783473488907974657130233831852316432357968177189195014924204005169730113290409337728587813215291682345729198381463542552882257504362538316565597286859638979191513837875618316407216955958945255540777989858055377973371813378535472259399441153995692272148071227335568804458653928865666728533351629381887783553271810853408306748846297784606680741804050231362329295558020422600439818206507576572886265306145869605185838538624599188573889122053607865578889172646739685980692445320841942688757868110767670356963896749216230240573949303441420298911374252059050788103235563919913752041275023344785933868853824656887179286216036515630521322680877077173575911458404155760871898693643162579145189225209857535297960587375225648508045104125674758240266051759395116083662319891336821813208539915033856891959235505561240855313957848385064014152123951033334120602781954863396699303894040674497119951336581000113068372584394687680504615620939951929932439548676716768438060633505348679310409193685112715617088693283425633362048070678723254041186940006998727796462123815830504235239158548212516902772066467686953546473132508953601206563337045601211589437598703214470112573414305596768055477226822060622642052978995980845519988446432907979256705179457267743943684805901134616145551318863879034740002303402494472685669337881899322374457153704426207332696457677092142096600846276790946825383643842307224997636902732317734625980608821978666511826168894267426998508405516131355765671650872306342787610363125205105517593388395613040561372916922046511282512580638426263810913368409143072504784092823678242355613485316891007795359653711216898615871277881371963176511036109099882462070342809184903423807830729238854931163230813699764980817857979429916797127837811722614867740449683277934349726527922103752604762551431785106188597409180567330100293349790625746467044760477169598996387037836051344966232557348231077623475028369957619166012919079138699652001050747353646611427637007031740889548368545467122340602366753171420151606570614176666044814405385269475722412514105638484549475326112128348643711729832822640867089585550794675746543921163642233012472404439213377824364161808377228527420391005612659502009175362363417529621199346005603824889386833012672435905920794094973314572312791987952132001200578946156103627366415084957172446911826117793040255070520371598849102639922655609538015109484039136204768602911064924505444436409967840758969582052696192820703282034263165450011986066398114561362140480891116400668811637344310119011364689655238533300566986537105617164971980544168729208741226368314172799717333840167475195593459513867800463067286441594546317548464276936830911840969147459258833653259744691401795340066859680772533663049053189208873114609556153091308309763720262765502409613344788294655349161508605541680748499662921590076105890378621732893228423774014659244662470515919532481301901448958509659543190786887105519264968279100524900614001838768525555514443310062029440235984986855881744644567856711905371752352729424990088683823475506484133629641400214680517853382071319155162048107942990789602955701207832655161993395966264203335657187496995800725732665239504447352492854019863278250085610780459192928049463508293942437977190961915223111244739417624371306230572094712436656292877074548648773598249182110360486142871192100341140116386057207588061940391645332611344179627009690614100047893520508721423128600295233943827608731959460978705863556253073953658829321658997017530857980649844390364471623751686001211282995887698338898829489969043997637057720259719859637727726731149313683656364446099962326923945219696037883563151185765776532737162254758236079397479307546876993326258599694390926690058282118068544213013230028638504939814499246501912972726119282686847944546928352059759656886422754790483880490892611829355983132775729059229425507542656300685498627132912279134138391932300999499835785305817815140891305615719205441385645448444332235932581485501695841627732585146820427168475456582776314034005584490456791537244966233460742878415028439611482519928492124998812693245870501338350182809844892178238625917463088983266870664160044825105924057146185819828408344714145449033572121154554304230063812573609713561187989618876853673613799550061091177033813087693425195766691361620742708623352899306100030459579368225526762433392260478693257578222196298219908167590212218067846269369325717579037400933348059284378152606663419150952094837786978207023664725467657748360517296026706759616142397909562712741694211300315448407617010581830190976211830160515186000948559696781005961481304198245533309110099978307498004874212936228827474501194527022355344997039977577228334503341002795577626874413226587660910400644239602259776507129048342157696843566286046941396243303993154528211155598062089267369077563367254048142676337924798595542576885534567273949760753437173866045054669902407685332972836539877107958244578910190639453265745166031554718634772285066930619631453529800466635249199246108737395533299341518379641166757329750383800832032431796119943059859505755692147548676341802161543195328901769490558868876313120804229234122014315455767692055309621170685456353207182806506182444775180645602967014385848857811339402867931243714690434529171586199916937844452052485304945006868438372219933687816049529193577374764196812491047790070212441199812290720403972035227488369208302936621412004065883507278737464981125494931460740633315968086501991338753170959036446297871963408165243416684474685457244438135042833713721890088987529902209260668636238763891384357773291125842693260115384906382877121014082431026181124257815842547699530143757380710135426726976477545339761420377967461671271902699791217434565888123983737613351074747035735058787877712428376422620467088812962616286089919124882346287489826482378659567748245556665426773034111938561780632323767131596380464662320832802711679180557641058569985925167707525662946076218240243674045491826033326108219417929743294428477357479573576600055592725868386029258510004166573005291880716704984864562447124129606856128236110707334600188120947897767697046966873977530228114288200408068885374276322068731618769052796477942156745107311191967095259359209827901118870289882794165606429721448689790207856042066784792649134447936694663079762443812241022940838199857678942503328713138336773484765469573984133402755358700657189320510480863194942412738266120627645279913170974220937061399877604938311088716822858421279683329127827860078565954802203196166460956699781131926250364046349468532127736397593980350180406832588314136006656091483774249333015864349650854808456356088299974566959159225753209898247465883397500189719795311923178463008540101284837289955232437329094502335479542744552844366362056606155064548844108161049704031328610737173355470141888082528846950871152538439159767883426295176968129015268297707733837746908159116864195508302650402059769776656862806226985364925299213835128137054102448759602889579225781350738060415505695590143748679488708455669177295607862940537541134360666451923506515792800400842986525822493648918856644886407637368426468541458437289788074925631404065593617616370476457116913896765513782725531509808790983407171125348532103374226717789794373966152847016217994831597223799092584561433994917741319965487841869943999514858992080960961770256140710641442882894857065720628334425025215346976737462625777628391643997811729225333140804110082945142083427353894268419068695412676800745306574378074425761489234025623037784142235946862315655720482470774107939772677190850458049345149577569220285385210045558833585648885121935760344465041667259361140453774119140632110298028235403121816159795483136159401630062074763576938134283070445541505960319451098577061307356626899003943530122462451380331909179941888802651890284068407204740415867950497833614397712251847218877069583584308370933849804932999933496447883341998123254419489236559940061346898374607442215984469859260139974293087493505571506001119315517664118014687458500921778754776209665248226462578717260275518589834416201602546114899368139388311935977464151713744086733533915572498784745081684994346999656089091362791470918963275841832435273578269206792312370942937239360997712245734956871348805613271236243928497583807646130776461358387408395273571181228038446801169722942168618372820062503624489743130385646070082303183282007192356885960388461943963512074535105657373645607899564432466845063477348562430316216721238367383622453381175147544930905274767574148790784676495474564857752291690062412062650683409999782118040522845104504448820397351547235542769165552365495271583876676032171136178363185120903860833711645828740824691585326272677873516524009281311112240571683415697961689207836798032119552091262370550673876726168425555974881307376695219890449006636550566281156736007957017928150820824789551577254153512242113187162656561085188637865396058256713230127127787875071006836989490148379026789534140684984602393899759535812915988250706696984838744176356379945372653783412721162895846180536244300531927816619968534859936578742108355813418387689107079144644117737500406486582997751093955049037627214350923282474038000381973405653251808504999967434650000246489583909377387776498009559902992250025607479509518666541096116585653013626521537512368957681268025756441103091651219616043442173730186081326532717644004227410219772603610957221238298841014062015218588220191449632666907452136761377820720957945067853623355084108344496110955984466104117010857464432974097164783963627066983453013740257098221935069729799108483608525413772941727409151081905669477864084906921527729183449621306563560670026757266694033603352262964916617092499248555609475040008582392526283451060113592115943323309833597708227143765563527186287969170572636361906726355757417364052995523461893773410141467689161237842072289698049811342256550318447123292621159203617508712873854286799109061501014441726519579059579587558313427841020835831429859055689411294917560761354214954569070148961439615076305946705793850718705545761231865825438767299936465222504668842741255412705413781552093873212803133939442233663146401209092376512125170622857660396509196087127264282949449812921106333639482106007156574292902823858460418922617272818664977557818443656977538158134290273923465779325537530659789506688442385498235103662855179198235388287905330546938421004253415809511560532082899652487233066480699644165207746447758735662838670526416725935596924148835812641500528628514661656725783648827333962549125878232630786871915473410244942910547045480585554704290754478608218839955242744571166459617596862298851164498791092632333163650984033892899495476109319614128170344491100237174930190044779143800301993453364134344791647029354810232413303995551108845793502603360369320171575023655164550636116672594844686958390634887537468722040668336908343172356069516284458939554385923723116725225008352896945834558754828702024334767197933773572965491929664739868523384219271784702187585210544584773738263233000025869034704551075057475121135206102059285167631142655977845666303779792670610800358767843124215649595872003857731334079884892898295154396642399753499031487512459401898418515564974528310085378282197788162270562417172488542546900135830749885596106243007420710277617542809976791965719545198748589724005240670398335339990687575270513713318845157833448633832581449977682010079944330476735679049611085601411557919879776112397552811266136126590655842369274817494754751924209113323943924633486155237721677092872491191634948973433115147952842248431674287858811207605522766221726711207103823375612917978391690987387324544421462879180795431008210233204992843123359240590712898329615727110266502034036420896261426820977759885268205305255330597983529307015733605484448760662711225799243444843847582878703332194771610208941356699946089507161349277031420758716093923367843473927435112352692802853530070705275118101937476292656094123870291235245224527280987708275889892333201857591835516446075713096801135621290869266899764696148813532697328350594812765884505819805252172401465906639647850781924467853964340999766081033712482341799770636815424854918491655039600288252314833376471088870135862954923575799834172929004072304894014147401776455732780707999626927593052747935905665908202608866880722654743757274655293672962933628114614117633907250981759199640513805220315831962698572451614578553970071048730727473707107071068142483086758959020925857997274976052035938849646217453351394417034643546280805562678239313245040619530325533950763267692580956706717310112684888781372031585483241560867106042771029868651394590736787443583982694418649336370122247292330996521815739702719045491627053270820459348453406682497931928867608875862105352451800770033896124405761634473751725753723426382888193079590632695832185871533698434922255672275953767504310066243838712351694800188742737357151862086433816506522774316056563086815393512589863697178593729661402370932608494889134999067913407333828504291504098707316149722508085308692431908926902025897544413371700956604582462699587984783358453069444031432527998045724664546849443098811297346489551217592487506068630377122473125921119356282618233490966185183844616599280798577140787486633582547214297949379737014419675784242681043999951888943857283226648050289697608022998285877956471655111056183985984596823421981498181069603587629550785758609260437421622018969612054772062048443244775798410351849039939896278503202454495881235375036729668870230948448537363900828614798576947538909138170980945233732659972536274507622690985503551793193360628411269046866660016804554949395054156385892432900582624995832747094950735206189084024419000736330500153297940609844477245042982317971936233075294465794862257012569755617430278696986440391813066709542789557836880919779414458128266566146867331725538001242148548807949538566962604806648133638627556544341314816778512846883994105079770128163155927126386541012382216115755553857074431003248459423159848820715970710513394910678332970103207361345825953450659880758624518388750638130824166031048741797180808226731760378808575392330471942404855435017960536974620034464005232520022652844980362059558551199121715627134464959125922504016612795730560931618638182218152868170203386477342204763013070021382177662125884660081058023035738600391193947953260900356957944787848814374310590535644154603367729580722077595692493748902346423261888764348953907238346448767399270340159124212081174184931755576411135380541074715002604708283128651778637136398038148915385764146575198804314135444843164900250743618729681737034710028444404995241371153249888851641653130732298897584272225524234837695692226604260309940898147595159189763870200454878406129591465293229258663550611680582180000835108605729828593236474643484915848645107586218101600291443417013036739446144755615515155886451319049149798983669395198219082401638633938597977750481432405921511224697610759761885788574711399292078252008656271680077775050488617003374281248501811224071522055353476192453436344023969876738037429577335003001974987969839780823960680622403507566181857502409902952098930457252736728807664896292687006638546552523870448616351409064581472868959699931537821983082608296398468427125810034655193708279665861321872799968484271102862675662246357933195666250531899888946111821915494832659001006213780715031570178497068743855671658299120336006747706470293598506516725125967552200554742199322452153967284520470091966785327709365982420011151298358293123747255860807749963681458265455539991947822671884805709012297034210539187973714369599847555559205471942655828933590863203014203289377581811216744964191262649137615376697363324787873391825446902471098295288116969814366760793733341950162216421519398961057558488837031485083242507350154218851693700714796119394711231992662187642456617515650324538785929567481906887238769352026098594533049964558726037083082808132042185451863580052725300916580869909174797778909657060797953417322716877938973318242583551129370757602702252115724943597697195929482065056410623756427408701147679292778300748090740840788428261720968783792761931132217479142918419817318447380061426162260855153596719036047724352643673664832838424411315648640703621410494047345589929702214792135083671043159173632268789357142618456695706554079228866880816951417531299415892015159536690768065885251771572873825995287663578685142395787021516968108833838816828058954698839363013498810709240553893752081863414553532017037338997067380804681690100417518065663895711822921233603951722385887679790020157857627059892517197630108726734232736375890260657915986290414576887491951341265413688610030206138341432612607948003288040158355043626171197329763088296618002200204737103207402759750325577313088662290339135448086693537805992149676178065907517475589159960627948170507929114826837797301039062851989598122096689513793001732513034874997828609230431979466539806173862142693244027763620794073808696247113833457626141463748275408070362152207684164414998737943438260428253059445757162612211481958710490235445100178277664673348245034237838911486111129902357758476867677981581793071756682476837494811950823819625562224113241569252546466040994750555788010674052170760723947466460448205371620629956895563467993236837922975277234432836865513851048015148187955546189314191243675211612858920761458496465161507049473457403269062346628786306679412799064249669538911274825777043086883468142699269577516277585640840135832126031032343034068159413803860439975768016404699812221756719018263984239317796825308738118206818430181642542065478203522281149089617230400762252281782098331305015649624833443101692092526705789271566649876799774418479538575371831417621428851459781164642302399126764279157600234038143666095335487262095420764073651644608115329918542382728098411915455079191563514857884995001158747571809650597848320301034880700998918552173060231052804552064854133306335865826942522220125815334905203359584507296070179133978335942012163382065675362050945916857292948372234993625264188009757361650945106020313759976700844823540907579791505457719302776078060997060096911688305125373769654722332108129379535376677352612348927925240960036743578601919799524906619671578477769771287829838883390966547468931733534155786218697578080100206583676890299482481414702899719792725773974409786708839392487107680891469828110038176965238606493272457764101303288157628976548531590753234486197428632510154839452460421829775683911937111784367611665032281824300072558791346457602444103911517409509710627039267622921032645072306198301478605770643112677749040344240600986017679860988483011207580195858750849265052713255558539486758445586150394693388449426743535544561906689679842002288044247544393647877611667393551503967860530047406121966130124510235099339939519980237512314323499851095366298615960057579020869382404239858009997607286096369070080268734281714946870888616441335191382188224473950969916249009334237645725164513243746068682119548920733390932797221745137048395389418767673180532066699488660200255591072118001914471294127901280264795361883015947085680850156319200193520897972120325066416527552338245784888094938863552366057922990524179230315343471259207187012138435893291827947839108785121418581770093330232528430328455732475345899945640398588803363366408980035790811619067261559089116668226186736966315370698405222556522857171341693515957214878137817163724248488162818416741629130259436306255380657455705088696945843655206151286727140108442362985838275606188523067428604549337172170224950432014152196349669998842250404682124948006115940601943008844166564707765380054541770955570239591139300990453283132609944182680808677284762764302239085042898922198402239579087679653710236528835219967362930418848862260877787944978335836953871568066792507430514565346575189832463430263389973629973239856428501955166659818330564027132287060879749726037198245768294356145117934630681344098024235282281734087514616694448083321106095855607975456753410627466822246966075219948662854344257468591576790279969558107930854867935975123548820920043147131701260851048075811347600622259239926642209624147372710779858363373054603886874957120615767829664992228914894882100203543524861775472358102651582786117039377741731149445723431703850914092230995385927364558909901320751943715179674678304615459041439837404098176042941295444957186830057115356965298389121929753716914684267022770556098092203091018290169161844624983624122145980409251854559319114721973870744874941747636674845073643376618041337490439867079115777934736212868293451793233189124331487318234043517602317260837976896734187074281344798591585816647847992045188375864136068774323762551183221012714576658913265738472334737262285130308072472681745971302324845776284913089529991930054445863189274629197169125227723743387642418524561801354130182247488909919952552255062074959821312223707751146831107747052619132579382843030871559824160587633198558630792936397095349899816124550065896366236773937136608468890489006365280380838843245027342433069633492348642113745621661670746427084855679593193156533028166330690190837963400363644797684233161874084935471752197167364244417747128544032238495093406444273350836580727293131241087934354651929938884463268369057298887259856820167356482971959202239257354594068053627452661628354632818985802046323904683774511660432834737017115247541530081128546489588420153406459303266888357754604777429289227410596733274221971418764756085919873508101624851226300053787552419780833604908746446607589004758798196716841095678948272776192245924481205433400716392320306811635967507105164071068977853969039793582083166468509267139124736439578479043153256930621989501336834927742103240942452946817041331691466220193259671319412459819225674172456737972195850466302648433122669652898801766497732703140794997388935436579494588059734704950907571178300968036859424015635877308684501505418463118801776364965859406064983733846762666167969692816991860501989717285066308479106895017630151178752774893001176955254575954425199952225061052360246512224121057749593863786004888752636641769515006488154465063691870256411482358221830543552140828329982555045051506340615180257253113079006853906130295897744271138345551652328178602042902993958521255992326134039863762116950026160996654771001303347249345049068377154058316972604771597432853292919271160385209918049113413252505158606136483812054511326390060694425371027491664871223356992788077097325578018308026080411997220966372307532519620829415546298082109979818507102017906879070540065293859126301192748165743459364971252622073475503583193631463951197193678770890660057667600496692912839329408351884265547674072099872450469481140244213680295641473116995886726305822977265597202647561742967441630856047194356581152103936239178483597319232422383690987979898598303270327716483065819113118628073440182636423473424932029102839281086298301947419100176237330085866112160272957018113712009669033938862622504072648484264092154267636145070142660175419506913696405372664934756737884498098210598922664168937679415732484421935394512305616152019119293370676268353099320506120365846967209918306273368541998099833127918851919400754038118971894739748978174060099048263434707071035609798624981923612733921586221589820089549793754511603862567785835199923620676794935783621873801111307777342439087774760676898003884125850595401582115304936530715697383255621747721716328223830631483553862849979663172769571486458067642901014124597332545598182566711953930079242813457605392081375027054928316285496119440854647950991379235902429556630490741335532241729358758068206497743698187684962542106999713026011963270900087406863327398067087096523130771112701562424397451211865485972230117161753833097054831767655050608011332744671922625193870102549714985551040468848559365289498092034717190636529117114800955040631722722071321418150989321754847754648905438176952551143013513215643776782424548117433540123428571958116403773752699237367078561806443067312073393505326355710260999216219143295073625870014259563304059028344383881049599764911388984065419043669626558665936653520225966231008878208472236649743374036548182304268221768843784467725734558082045294820726808754480586351680653008838341160025620746103933982109126161520999724232706995625656336297936707983096986363675362055013649928589457107148282881239220730927772424103967962960198452334930945071245247664401772063352971851485164167631168486439245484461801965761296194485333104930168219635437639203972989376984522987840737601642896123762842519274972390792851491433704601977378636524771167725355683871637278530587093029844309711224801873380023062335042559777023827907799410740483583629616777092301161041276954099882091685959967639332719891342968450100711548065975602188957938722521679301635759602440162039535309538098088173774110823742991885199020906285037003427053464940805931581891454874146679859133696337317400218721109093351718413205506501169605140050030375405912462988943849552043542042328719862358016165344290256439698578540296805127240928303417244882660461356018947440598399992660900710496005292683262954586921084958327983203205873140048821841967395067215492357345904277022906473459273022881429626595357462024395202101977100896896381542808141878246060216889077753977743886654910590076361841230393579844753984844630777073367092740887312385787065778220340160794817489698916968885732945133369952609169914596932062580914500314782385066013412078297540192902849100171735141291905217198222790929652722677484946870633636867862652308751618128391628080069057915472283531373415997712745745153142246403195788072465515303108804434282931205614914294589186973190716752463046160587434538904596388629286766524473220365609951792087533940343141263082127368351313635598772132973042119461971100626837068561810218727087149656155730855381959546205840897738024479792170357345668216355919405333257429321950268178526303851457843617088641466452030801408998147771931674075802309863805965286018002219891145273429088947511480756318988791337035686876187115137244428838388594537057071417281957153991188595908219908599427104063143121592240247400126880248778835163295737741667003705559045985171603240190326009229078873776651213462791199139974898923317590418071261709797927277042124723645860282067815431149915809775060258174946587771018151100931314560153859062747995347279175059056555805400003447267461273480592590030252333653790349577145147603244143859313147593420154801868511513667501037634373037022039191991915389407754405010906309523919570393041892938838835442508992315873267725409917690906087128206940448545155451968096073468186244108800254732134371794860138463204512622923335163586964566913355774331948752730752244486836759059213137874389884724124356921993784447211184379500620796239435191732444216027153754076917378757350611780381627484850481292821454440471621393002476668706757524984017736347021327999080937928065208203414901534758704771972878759067450067829331631835095444379294272057460537632831413931287958295809626979324993036499890070579125886144254824557840691682094179635763774828037456036463068345028378397641108580766089626155534047890684201173727480944067003329846201434092184199045280660822306857331435487948909245838400437435927744350292101452086786486476779319745612170475739032477823865333254126785719648844769085183924898444276722014492617787223485008114727181194294752811854143423375616068736092467090840080216042945827923980121079561280493682440302658398058856383476581327417651122021216390182682486113373089267850249954065572099478779837379793550603490576366982641146468407622800228480322339079571820893265660517481700690039573947298559008648582288492960759914967469077254802546319992012518998991803412172357795753328445406748962130950451728861973020026724571759071437295428325456481447364987794951492322279897718960052423351694939029788016620477233896299212720746208792765457336555260666447880451619914757912181972141671834488913978818116638213064299398105010489308156716227087689984702346855199314873241147040083359285004843793868407563127424235626543098990929321683355286998578638624456187127493902974272990088751340554904067810290386115470820229799345734838811970852486226002813738404280924259289767531893384930056066175067921407824083025577318472048136780706651819216727866339043699241369807829204669661897655939715610954094908716267057292940818936543578369721693029160144294204992989426577002304864389532795332729092903131873208086883855999097045070312028975591713209450314234906539590957513655162039004764606146600716921053451176959155701188473404262580715798850525890304177477335500900356561676779736466223851740011804423271300830503864907561710082686576639169170809491676061461305305879426359949511049785567861825898194059635653098167125993949676482796325065885178969700172286445307363282797521512138283455009695958189823952442626143111396980894124506764474548408254137217532941461789714661881063800810253029475990528081920029135075899329592505782446276254057709446624078988284188817731895036948390184008197445020360025171850027644518929357088060302477102366632110872499138016684827719746170623952844273702785684942354852233771111060407941301887194092079776610279137156284631407055554593161905660278802541431859563941832453404204911603118258354086565989726298333749737786621145857936860941691408519695360007542222668599081067476388255581016658733221111189663545004587528459520592094659180026780842096484071547985312509865683363305302197516626711244811224338061401380348463064879676072826741437186851671373175002670887802723509363562780409074240384577946619444123410038105727034292704209371791356064997403868051137903917243955391614534680798816542469829309095743004628822498021879922302070228718367554612322375142146964035741937334671246611251057036113628592078912543426712247738369799129239730114750180159924443259145212585619738428019590486062356309095872220872689209329470048145261998088724023160318338791552966185343550287201893060574081272811717463250087925713438446450436053180176262750295294446647894777476958768006800764480455431514116318778676132920185644025994826007764090389493328261901636626062395085819313435388971326384725462534460047859292448058009662484177022829947863937779497179661548240903635039984372975085559521258745738695371996251750138762252009718238916778678971142075436749313438092017057272566086435240244501134265536203581817699588886923237811003620994562574370381816218945741865932209361893752608110443118016912273967445960580301398779303112995766110826425610825159237134427628645728534042158684202036862262026959970722278646322527749713017305655277106686003182150048311670254125750410029922267870288779123320273015585289123862323828500358016654997212062621202730285587002653445592576310720220818277597925064289340709668939243004854118688994261593279300614751400069396928210475984130663699676417783187274471692258110547062473022212751649012004444806658508004756721388793069503749659554811868022616589425400107127507458097543201221993173632302668963783306903418697251211440910864743909654189075943198814420519546197232822902995145751531783178751339534370652088352690642791867420981926656266412057174828255349813218294751217416637593997363267492639377644041572218954132657116740088018328777806826694033524212425664001731867767421377635011713778467259209986628540770658225155121943718288822761013537661625972712510313659346229644111697493458983753559369449038840251600271578545367043454387650055897537831322086475946999470979167978375469478187184391428719339349412230676758397788317790364159390845629547085231075576500797418877039648587283291605452581369233466674270221402063788733364805684900545223468119406487343957421917810609490436692915178312367867510083752548090055265551424601908548359095784621431642513195287503290460321092292585773819387742987791174597130026029221704696091972387584850848341542441500736447301910231396654939558961493463942734390958459417976676335231357487802936043661568202845876054695683628337556078124855286829025024240741848827553154406404865588549500848849331418402341815201801555835961167323351568082977997106736804327731568661030531877417964888063783278754798544077183012733517834561553660135246567387470921124031399515866898623692425915582585802110074607435868198512319465611282745437378427834762369955500886213317251791551781101610243384709748938847143687098756384526455827274741688980792116644300336572221155621689824763743117125373627110120538055762916324199850464501986334025344288350012102569857385562890705927748923670528434263827613906969421925354983531014104932485573710402086761670718864174533534772972880695170352644993123157689125573882976644139275759926630412121411387929924101823011384976701379192418479550314610683230894328640326165449958611119657616104471390183205989871837850593928350989892777401656494535932670991250727352963264396237273077892371910994401120148321004418449841463103570127629634467150337769780714406879128448319073803243465090401191602582327074329277143977091327493783218938549340352927731714246971536202915625790622332069927247736470796484163355552087480788977209599718622983652500385734101484176474388592977299688061669713823331152602868541431815143240780647208081574284205245401806821087551636188639538772783258984568104632751489388933179470253870595510462633924034306348154097257207920204504773102383423825927824004061302715315396509045942755925288953547765141596008427944094139981106352676370153460086335435303586815900264079778158345629542961188360448262303868069046743848849292782356666862814290122924589264994406074745387052765877314842072921331943556646471838296392033953948395649547152249022684555432717733076019726176255046608705213508912786321244180898572078589707551395752932079842904942120821611234371893736286345818256657645563075244994899705128948885456913413581918204791473485505663723392333574934067881365694590817130992283396307066869025056280172715026798549277720094493923896001763275259084410878676993566458804317111846598608682746779893011842341106142152021918601073965077902182112349512160188938834564469258877222519537265825917627634885068792114364663550675185267397409731879502425454033993469864497567427703824296226098613270461622155758199273917732119215206235181681052044439848149770942947912069335876379284836139546776007740257830288240093536324869679405504051644256110784301088415452040353129669800539442150334351149772790984175357869236869361428029299503757017038303930115970076819307118192532870773771040767296666749215064055312145791809466999069013070113771023992720598683244623152512405677147802886659744852558909146273126840884329350528020852129446994662928872839210106339294168723828191211528581329950808680374430416919428094952323437179356122962369015371493658985460774918638931281091047492433084184172277199647168263717998293230498017647327601734913766398053903720142652984255252586038845895800460002407246844399683232645472974421774342446179651445410743230760448520046178292277908298483856055180079103079192722650679612266165238324679790144162244063292394529326600920659783156311336328360575886792390044690286620108718682694900248475807866051473762922897800061374107239515970406882306625257239916816317185805956423056235698072646433443527130094312633809736627031358277865059703982847939593003245339696929155587119764874027041412883211355387821445551756181801967474042649312795601616990335703515478014337187933888784799466780433035048925271886883215100299674902583161607811436371127538777538478725669407312493726997290993662857628063541227469040151358271480904862574543697199192131679315762983457535372115052422511043442339651855323466000758127644546989900108636629111416960132962400124058841407075729343135506509785235653342059889983091365086087243649631653115254014200472892960680259283923869243208334987164080193147726857668244616942931718434980540303763469197163338394896942718886211911988307079303998489075907352315385546296571853696213390721063458736648503329342665731802866793252255821308361813138345205651528866291970222751639733469341949541779575298541465502766949910209870977755723390566034102255744693136217449003351084969961605784222386860769374023616867881738439258581663527174918423935498894536459539288153493111138165399114232759560933107341175976936284528387310624152780254687419143768241094943191796145615220317974132074821618754909384483546325142835991895167834248009400858647087928831253819320104886564063339187806217110328414036266107159159384269933678663118156880811708240100333955878586656324934189834776181184504901176397816395080199790055361910740583620987995485763127246736664278489382875836067404572684880075295515208557804637386655005864258937766617774442586776247302587078496341085380026335779800564518411256138312212623869429678903213854641625934701857595750057494153010508198554678404540451935473496074155349086630297245887387528949320598292836290879084602634466340652957297962209491268517275596966594074836527368129441789544155419717499798324457857537125232855363970961105374847399110887298522774530380959849745839969237673530975638979501607814660833218082674446298695836862412860158110995152534417554530010303296362330680908966122346524243140519549836705735012263790847391550050216420007231867120671041373765792414530668957932926929545328756912735893399403455099113522951078834259142025105154353064938534848572248142393861338542324169016977962956828942212739728461755073796306390865447819259607030982094761135521213829544431502570289004373335946928469029876821766512196263146090679001256518497181555974111663189691839880521517538385606487310656076830044602603294484912788419756392494551825409302318686707826194845953657203000715737925530899130843486818636897400106592800494648327343598553914277571575397665637910265656258080522507951057504316496871798354308714830787325290684857290884927242046806428865042678960777070591177620983443801149378740040540102173252063474541711523946900168043249496735099818985490893358816226306528483788875720944496706501109031825501621439904678235072140769032255291788628113323670779308272910761196999922777943147926232247309888256791772629570449941330298671907406420078697373418587813620153380170229656212527426232905618557492153725556835641562758115555705530473608531804605710789339630189533009793517304066541759624622519524604431566791839851113445724646084764480129552896763092369013637055456087262425926225562242719033783964258215440912954554007026936126375814483762145782270235847971799456532376634451658718503136812268027544826607107561088628495492795265734522479361761244611928366896896535267684951732760803927639580350486454088023737743079200354287969365298503135343962059608978576399424829076942890488625499433196408260577873762879134220253488770193306374637920024259578440222481961903858767268067456094046479967146644213515738776722488189907583732952504703467733383233373165617926533963799395482021975730598588837078512021283152561286880745769548789726966544495132896151735309830154283436097250875857700221982502104748994278197196029660991351819694562816658526884124864435883692520263228018350932239610505179313156863817600772679851087801800591096294818641943652248659969016830471465840765074177317830438496897117050753082038702683024605402379619069902584347602639700871705281738599454048549551072088681927272350757622095207622524272302405576640639885594710249137847979510301920575769675185538227603709726445743380902021569859969382219176164772413963048353279439387564620330673478695702987677678331597068341560339533521648045437843916851433864106413420281392079389404210693410555345243042620690292805550094264784802490407237838144974235521676047535573188799519200060802755964569443645186698404398731345338295119280396810576266099765705168864522670084041292149323149056552899531593146213520802146490800126722135927760375112891128112394778323185334278334638593141638643073409114319857733935828596387854197599770285019602906632921516624376576411172060639955617498019048470925997226363612499048444406761193539661073234659234033571387093596530909368734992348985953988800765699224466301452290093469709077336519993698269055886892609266485769412726938170036077372236419701996854058661256552427005993960841855413881960334355539856350689180216503077746994699879546748941610834180622129613246844932122631732528307167892693710633400673688565929219004763936639470323671798100155412490227473703850395235000059037819032862721047876019210019642795670388935652906972363015497259379996182194897177252672168068611705150044973777729855108958167638905756916341780617895196930434992381188368945086209286178195177886936344743584626137382202253935487825051544972047681108657295196994731711520874263540242004237004715058288815235185602668103176157963449464385241634409375401208734491477253897882395145570921980091772010307063673673247333741312925652961079696396747787894699715051849863847452429518619727899112945436355647059608907153769885170107103021589917913305172397954698753541641865072191604650495577886797466233614593985025535759019179869624856993704105666238582883788147149756668747724122044022554267130137528232783027169829711326825721402004104156037669462629658612429403826836077714783338824288582765442534179672971943675494478289248305110639901526915693882749318360221729968688305669807012626368845147180290994788982293966014516318938941126442682800056517531737841864672173788044390458620701817145219457357110587095776103586723160878450695910122993301473490839193042587010076099446528101871289364977521158170767412919270684839438658465507017595387166161330211196997666724175810155022176492886081742034788111077507041334344429684682456834331826548236151262063589783245349619665779363723730409329112008896790377583354964871215607194831323587764390087073329958282284664847477347340657373082441363796823200392366372641303852149870403487163183855243168042822860854413420882236381226893733006849046911235240384052219630772849700128340016349474393793385326519107263463427684752072599291247623651031313103318617054306628294655743658845777747433707540737381072171353883184269908294074607217399626159903674989471575287526124336408570641349035043385041845748012169705398569543337170884679299125260655108665811912952842254913638377982228283121490727327490924476476029277010093076214871992473302215524269425239403424758108839278313401357305179421811829115084496076130492305259439859069767550312869813789961333862386674883470645344109548649799110114238401223382835390012142877606560236333014157924793893594457434965711754748328113968841568409514299831087659532790776378654825413069384814775625578425374135461074577877026876555434962075032591094993972826783109815171921145098731554929222294962974523532542486796519018476392828781544335390298220806586934159504907104586055702084070885200860550626417656621962231336600897215216622131942330527573254101109808594796972526908594653168088567279237954150490320098720131337852019798464686722224917648025792690283128731204534648011140030477077288940688619070571465705406506110947951844573277347196391919831777504954516219315694532897571640549404810520943210232895100508838829722233327955620555364478115635913259388187244355759634424351390830891239829047469986372621434638966827308999646190671332121896442032475223023257558667522578277103831897516165159639754849011777525745346665668231533707543192400847880430865940466288525346034905130741767978220549033319641743552226863364557057125404853253753107329821072889612849320508814075707204536861351706598178609138641211008563302206628123359919922462183847225178759431094646355762804345612412510875879836958148438840115939492088133808989348169700867867565226944976254059406568118511706085898022790727978712316406056052225850420235191517292145659198479656789154014569220524856073576932421620911263004980927313269809096765653754076788514177764606672309746872652019954657092724626685974778207917623225345782990926300880947769921865710820648293231475007729664723466111605029502690365890555223603089621299575696692390858392476548960460268640098756500972491539010398858531889879350684079090502146742042563636460715637961022391850750134416231386059923150729542756974978431349764038886878712322792884029976918885075799538918796364786892191710907183322142636239100226979088935952117027368660363269258664689733033452538049901690087174046084937363304329147421662705701826858049525003908085162876150933386690701273962553979176327073544808825273474536866077299353664527667510709567167233381979247514183387790471486639973651209480195290350310725006373198402684174858633850824643324334478182784165315707408246446042070363739107933303854918606791965618733275565068882787355319731003714509650457606396666876181262154880331407166537695579426617876553675278916323734879368025034375520361577928905230816273198248889167305202807498234574930483991973811139050852791230935105887230932118923665900318659932961370224263690929975996875788935411291593877707957306002464358994195227253574404780028409112981082730892206442421381918320504905327720804013938848280708822635247017539429620010734977932547290315291799044014480423783308949110622846661839595168310013238847569555055321678939429640952940375853900606393089594169017906288932184138292847928356414951397243881718426640654446388373174465134211576332886063165318913729391603659598433351859502354026210701815695377577351022082057440122908476682997644513307857352804226672465746407647719798308380005064908960762274561448750272714366110193454446934237258035067621476227014093811571490523117156707079689122979163244633385160038023251332719430354296893168790448411508433876760508793592506263246208885939008099545633076722620633243641262790497343886569741385470782718986229942604088830428361656733472650243681446949141184339138415137329968252635036043919718628984006534124992333288318849239173530375649845457721973609255621533006352338254319544289667313483433738686589796929435044292993082187215391819631493835820423736986544715467396205276806324190626099090055526386281671871045744224222602909067013708635374149786503902287466515020336523412545982855243210697627869800334726262513373487721177000994875881057550667940943391704441143652091466154811518369593722991699393847079773604074592566095190393678457877622183972578420921057645045326382003467615986214825383839602608545912907415897119732519761107168057067379758188958627050525130862777783683544903109848834888404622775193866558766365599528960453525987134332506935293710547656681311415177520679249927768442620369768925886045002330497742636700631580144556471503857918237130996972784288115405033765009695871837757449541166613533133853908914954253723999679429349555595334852721606189116056343912824196195384236260622728024182976289727667762407126267250382670259545186348293581355982704510654932518435032511730956651782878482035274966182637185025688666654094206807615150785009380552490907829930939234488682430828967269813059493045424892987671658769282528947209590801256567961475071524594417149062947472192438448912986121782063445581237892372976394624697877947282869080150193968574766878490007321624894365668232733870782675715652835118232740267327727881816157577058849409352915647122187976746920592853971270842370170379123523920517448105769044168718862833856082385572315824463383387567359810528367133108980077019789320557670391877506513319991712938311719431262596284500166274861776569440266065684482935625249700278828722779151849509496481735296362591367849197102751717171696609757331563207584925463011776011808885844526292635666378880296550869956287979792480871121649978840364955533491545635539330399706829624233439224577829341131220244831839064495673876772647571318763530771165512260090422166026058874160046979642918639442852120375529918002996434202371356904000412277668662810498942012526454617607528657866971919929338548067991690224262713788718481892104304509852445175975497242305277472518502790058459901169196970354266901435467841160340561282395702928778846027049051376136552761119685036308624550841619954205222167709182377783630919727755738022158873746648669771345244811609773765434512537797416164189547558999531270574902428229022963827773264234462796694388706762712813268474176097005372032086185321075017295391574634765328292507853832994862892811496594791095745033546564993908140186881098018694023026142114172006936261544218217275900362245252377764379892060119440413802286095136014078949431160347607460545359168398497195210116062186209431167439175587591225562110284636574608968683674651646602863251233204390129315958325294963130012617918567064773128128156832078997145705805952772331799545443234584087888836403135319192624069640391366275192313532439589435313020750414306847363140155916610494237687328969253901948831132129403597351699877342934738812523711684542818837316564083615148601322504801986188696897480649484904114563127544334964761834648839082478636781127740487862639677644454078258628506133976391530202781544476657985229498184242987695944676126666496430532236030932804182131201541343753734583796960602134692974903522610792907966745478751313009082352343990527926109987814365433690012929392518068645721232999883623790054879349339317257076192025946236691825154224614306487795682833742393482798068208728709215398743393131494248305965094825922059228965410555458678881304003546370817682903043114654479388393390474277343476652646906698116910072796112006858794784388427230924215728817886045820762786449881109632840615443917652847955756442164309279256695118858062396100465505887249367152463369319685952105441729254949255309929605624062725273817982783375108028226764168148547388260437947496289979990380343208157498981224686840156150429351089769595269783277205897140515597981633788820117839863623976362779063680134838745577999253877056433992719339048950084519865643292563373586722978201370116307103867009328208601034417067047099000931533090427449553220440320361738928106331921598393364402329898342168154043471377583399090112192600813542018606711875081741175137222668410830671291283110544939519080310998107400088155485969606144354573500860872170702459135611542916630249519897792291207399153197445454904703384236279393152056769913258358991333130899317330937355254657738443096446847297740830229392603932598548398775966554403689455882709739028900666060514487856441508261824790170011524850852075560197130613469949353916964823627613144850807764810774895816346284607127617393751831940874939228926725484232200619847925263521431133877706729324926994324506007170138387685770474678537719901357606513233438242448629359829012054811027439640705489764649053937677024088718688231629636890383538496276572953922849401404346844512327177313476286495196865580995144832538786859850167842363242965975750423433123030315235879147056002284256936693722735813803196106541795401887640742781490061065451579365873949520732950299867924139147293892229276189089000159163582325591646155100982333680928806338142455438515137133408530481371603893587068708039099711658482128102677420123803137556803976069717034248249218883449552470395486562371891815426054067050520788494700116119393589184423788402220925064987284565959350553240092360342278970723936177260353656582252979418675858137794236674158132972076574694502407729896277068319701492342217455461451967328313010663962203706086020379682674256882701777243666397027017045988881243946391438671110425222906788840132839254776001531850137953060754882751273209676226878564156012602189654301248151118779397798000940861007945751805950195561545711560607978734826482288182469835328932768374964517016176551398614194691856120229495200598884689876444586748841153513014763552084025645534509903279383136562195214346436092693080427297706445519647155433400946112741562822199939822892036177506032829557105596486139720584745223445351928776987302223607436301234856382494499444698184032154213090496947135289171065505437861235861313539280495140315944568882135816002850585821084281771924813915144788588213689279668011836380103983643519310035185160001321391517049334809703673674210986974168102307446272996763746438721700825323215449392638816276852403212797078298367823218074186750129296312089048247922981108210159644706921408473230406731181047814366364790016896937038818288140980198297589756901212760560367647215267226641040392362648449041808187559820358833777383663786629282204448246762102686871600899373858297113913182210737857626134681158436075273117486928129865109358921960288923562688984296100370578219928481441452549955503063718131576707279779984432414648314772134636114325383227055512181338322510738607320472189008465703921849748925497984932744987649747274839422412099759602984850052679654519328287364085711216409328795738269706123882500124521402660321002293563963396141589848990040327292858262524807708060290951993645438652983821843851060776760166470435940213175665736154572668408090780679118579088796840203279457075694111721118204596044265182071820601508889094829942794304048970926008455530494211529776159166970377457366635844813287927159672259584610500870920197213063021070963703250726650910059813855985744858455193055067006427458619458009702375891314935491133880757951184405425632727657785639082618548368056592332113326478144079414856099768747556481367909307995909960647016477111147860520352744384524467794919349430470040284185678221129907457877104551953127257169718462427438652104865575534876020703928675138977384506304012609709853468351840257741984061553724835268864498227081061783644164165117872629741399408680648744767425836404618724083319695822058794369136505868153356852179885060019555605301676154174090823982871570330327193007690076469277844610312431330054339253271151267082735652283157572743662939193664927336555709393943445803011646912025457055863846415892403244584723303963798996777217272869363121471491767736886954289389557123923908691314519681826786435670487584284854673623764283776051120679337220545478979177675599625574290795593620958501467037462575103265023823336051877503406110052336213579740822957886611506303803618367191716496975001963645910110162363788305005749732431374324337823440635959933815895228048050579848736887380669129146762243139097581833911005990649577086826711470175117416110648257124303016820100964463041537888727423004639342686305354549138271271141325472674713079080658799007803544413162265713279003200257832795159612174048904114984016295902031533920259094737349859089001655548601112762368475306342130019881211498087055718510746629350093142971944939351576861975977114043369609524238622537539604614227190194109056141834116794847771889236282031207724616477918253299389892822667800250273586149217643235441764344437662486597901990079808246674451944766639882119252952034283582001894976183031492464420999958567851887235928567233099712109525915189704284143600687956731254777609179252732283057463476795356977642431002350970324041342771408393391821094752178333365847198082067381067634182029356737990240083485698988120828771605794242297429829581282980095965307063971325073221777744858646769276151498073269697169369453801523189526679889418688696885267723538946727566213982207284867637031011055096045382712481862731867296916704576540905932987098646431112289878692633995448563979996967881398208409183430843060417719791941453841226374920183239967097940686716088154051730839372594359095140262499248622266461078928774681599466465200469597742430494338042707119591356747096917257432296476546457061049359331789632524681755607345561482266002796669347151572625242075658026020373181561027473691292677017328853318949217545252347361113292742678757287555819359691416899939976530186587538580356332652072484546269047338937798075499773101119431150181892743306021324035349176130561166254673721031783757550411823638066159752507676531033935038303958786781506416400809564282998570798348167436616058574666516000820764962629419715575934451046943667603422010112417550318193602796272661800607056847200393821619587238535563945131964675674972394585962996024793797869681547316310910739225711743960238773056780093646196172785468576169471850635592238059571482420499909604723092021425306359529663239568944000335200911164911133114525237695257942459541884385346747769237723004756365739475702602003595869262546910847521231486906109970008149212159795770737944056982842778941858349314076477128517102876617570184096455668839687166834948766654413111051365222666329894440204797861735649822473364563345054263002397062015692000907497374554758623194514514446677038077786010250006980520177940638068498379313001709890272624534292959475415079748230154434791821996855343144068201613302520056677207424330938824597657675489130038941079051829980561484321767874458040523200931329145429258915433017765710047371028255618884714345486791597155644856958723698540729898814466660727012307314214577717357711817704555483260749418768459517614015895280832645480393148118538332828498611826631016533552942929044463675466997912751490536062336655914737058805751770815627176704178938725046912716058145898838174605762874341023855050714006797478642259130648929977717232775346334157220687705876859112974154639534836325349591232867779048664811328990277752704712447484162157370697809739770150245710308536077226620041808206986797595641187070593590333250012725155608771394276905488419667990149750887784173190107618147727105625887561575753326229076367018027705081704068258390019033598259274445155625826858211616686704817741962250324373306673918165466511725156267135575691130699598706806335508043882936410000894063438117650824029913702492693651846610781595452342330946521635137553025752642255460102702873112412180665581871695434056210710270314539426315794509433110983388229601435014852773094787011442362612185930838923501971798088825314515958509117331713325174397790138733581891234149258332665053072005317252694749696960586614396689977534208095583000865061846110607454781366458071246355923034490947441023569067586952154188835495238745807802862721837719164576316035917858524997337860058638128926513276958123696151285747333373769522219371892987822120418936552173222971745785073037026408832970217505467304538563477339539821146117947084343295266096452113827011218944842294134222273762365512557517572147849041899247421028729665782583473583984011309627448998054972119333218694832495937940981588896601100900667350320958677302047151389819614430108141332212576586178820485054452964989601915231490987334220300108669758605031792089163872416929607508005871366610702255677334661571043736223082234515860133581780981367444224060374869128532957468391166237241347431051815329603263154064760996923166396162650398361686266444870148341530236654688307526296897626592801563425407668787106861861294276785695891939989624851518933228361881935643605804077694779707647792909890844095386223495117479865719246977337254274332883836156649692529763092156039500702880472065610437622153120849261822942576829123582587358093086538168519119064146232783940801304917750674670190826819374915310868755176523920181848230018861497892976413203487631200339974034405544886921099724252324504700564401222749639079448048527978803576724804826497115015546709429551249966792823931895537559592873614949774182941658016462508635838504831374252719207206738684640506622884690590111776682817193378165670594889688783075212460306076921961345902707475334827615577640758978804129134731320274815609267673657214666999288162876588851841324069337970784044192595336215730337831690032972159662750650767195594472803603510551810509641021291550466344439131302343341882270264042157603237744868105935559442532714557561839642033254458863903255918880587221865938877866353523716332710528153324794939330275879782301984980446274929593847719449037092361118625611398945560056197053690009650949076009011359255119418640622176852866851953518305512328645684020701791952931259576845221921547174609965122080223890420623901034898834975522629997679457010030629236203963906416365364091055527483537467186482700327750954962686155536306471662472721014735667499945326877910354200840223704616416595134784357624938215393137445800518137394503124378966728352477091948600645451347668887839166479924272573491573412021001499205314832018041622024767468583245805374669470573153002273983585584700159828674595944501362772194094986558315576744862998662272276438456456746689482692705423229611404655280226740892788149553518884239508489214736437377769075105672189247898052281584463234928330642091025787740199404463614487482938054678926785345644096034013149827478183334584965850970887933884792109110243445687271333406097038552558454478311548549465828949384268841246236937539481873989669321631625487774302504629479334213092773422862614154432226812762991443786819353378865085611943534175231315302076448765577985562670352263168875485281315811357820052449370446529395236527773172909190937291197148604782495393073071962879780322083575954702713742178221022149698628116534278162115470921341178780879096714429896162740526708226628265293842833215466137884525628369181991904768505135989360116566084131666661452782361049862703508833606192927986201729663662349182135563093609228783719476400217336265424377293351347920273874549148433823221628876815714766316201783085835327820555778086156964679607821289620988127048202481891981593742680332083186753397597212014232736730673366173738681146006589102137123909138255452214050931284898809245317491236757479982717510032032713263170745735465880568880517919671463843567248805293670830582034309522780953345097227600603028943331234142620000201648774777637689972990694226722233073321103802202383652223671591504734380402664684988080684722895301308345299361675143605017946743610701829864147550705533256041922325373280313887761555647388557161743878306742400219639861955047651975354658297795883070414124408600275851506759758707810350309905686940297998321226933884752006533149704201576543828949452448252585094945998082786690751176320806274819315940266771335674299553667268713480987014700800083576529420840153812677327322544545661458522721360750478379077912855862004211897477244600716075163640273805839958671325643465124067352163103733561456388826386035921588879075276698037735259025867416054196193138137285047134813317666090332582178825762455065385962328257580987923698145709114750491956934192884446083799880465326790711493899750503710187562377175935873351012595701300425224076375312485444710384173077767905346036108498258152219508289548298346131885937697940795995685147532336098014244186432730686589291696327943256781069867044888900806763282188692918926440942625725309037468896341725441302270986426816828659300734108123887933058410329707412502300268454790513063790885354090864489980504221802585506054782051357709562304051101376354114299761406378502696191598501809494775187663671273038656249652163978686984483065949200593063194203676733466314194738995456467443035705156160380502416897401136203622937987540539990978330192390902254788363915127162525430009762714724982333147846344164336226291307925604285915754978634508467338544588371837543131642714168876367641450167550866742487091844874248606206856715571789390699707180486545419385386378196442470399220516213611299512662858927614027380559768564159052423277331018862533551234971808211218139482760907438461863915000208729221162531957152007940893045164817087751899962619255299911886428103426631005121841311047067381353694133206089216143863002670694072568499328113192971113403091421546978595650888408804940201383651336719882685773451748850126316625628719458932521101927916229162418637322612247946558429354793639506163459246344368049792658243314509202338686560251194660332991885649063760201714205340380605198589574564003350218309964653730359285579969414420411109068829628201477366545403121232816906527657001680181563131384361068803871456007289238567227695586336064100028433320571195402597842634149627818446327689451012669288219790039020235251643722454492088755512459651780121511340076441891119562030218066557495893633233405719880686404981714937329886264390632990826321319967703462997177057928589296793195454616180036718285165485210739098540202028727642819657662541702966648322059676514379197881679589633259849726250761122359500676649305258994018740364766642480230540158056390815995580463851363148187355470209633472594282197184737690265581159234156269555418680149389503832217563198067706437681530992143195152017847071255340412306287425260753693779744917621722865641437737452804906597640101194263259095176798185888589561671495624965799476470200180408875455971464602456851129871038471130217471528494776371914420346635834520935117645792327744824529951937281133598938088771445183527390745789764390192363732144188350670000158979559618856378876454297692046929931036199467878122171352769163899041683424105693170377798512038622257884566782648955238656027012618441163706384902758694892415553893638925393351045902405545664896610438550999109269856771641789828033716466441685490501970040069450114421520978406309360969401580918622733450821250670442597117324284901041148570633311266885043615601248428363927270315227951652057555126577147692912870103862098804625959387197240398256555397289384831908356579946516727369828023487943352072360659076113379196059188417717391121465239357341400086769406481930266684427627505622296076210996498203257322532136039466366074757563052246046058635305548244260778753292104399415918308253423516583868157855130451042675704378216199428912018883614298503274091113736792114379285479913403272291616571048555653822340735626522375036826127404766261344924357463522009786922214492660959702910759890137495149801259057297023496020628883014886455201032252901291000222577328991043212051593802474876175258759845429112699079284209275930441365439021754848556273591981508521199675686287442167561133266982095675632948061731213501623094816015610377017908730083558189122714438139447949797566758267495303687989308365111378669918338975194519472984022279810820120414907599624043907036471913989268701389431218261625075743145092984664591748341037945172063705575042473350325640768895549477810933403777747645657780104766940796872474857804186392512416001620388822966127791816604581542939143464500208159037898136086258833668965389389578690410483925488816752534560376653638350315277963836283213933153356670994743697738092058019910761311595309992642482537440991967298542782135369470279846438924497644833316261475510990530493467507797539727719205555772850956615483285433480163098914853499891142219753223327733909243388532512391095369450804646326753123240196164965324557252936069393219607762444518930375065858953132499205339489858509766992063903990380919342902244344813963669592699993964479994039456317168709749582615762980224457308680464626249397215463660460369950974700586824266871810968574620473270491240799284034061355972692975918450417509558641473078690866529307754553914756825177211945293540657828850793425833254403173245970976997873470776439670450691861660254271548023659075437961055493958883084198302011412943727042637843552065326264849385687862062916111761155015651308735741492292933651339066348420562953298077167174682111661213855681591032242192338220367460780839806518610555030982807170912681804774760677720241864179730926704399119578200598513551973830184450524439326309361764193866055945633905850547546088397822713277601176782622375060329817692580011511083020207255915443607086240024973081769252677113765012702889918342797668544179014195387699586605687636731556377988429675416087524985563282468962534621852115818038932565830657278197628687208510849926321217557617456493268786900513960414863971786924423867498130698827549727887424251562829004426564023009197292710247729281932663246480314858575598247060896906862529891800748390918449670440937320487373202491430543596547300441859081541137885591831589571361244166853215542116497297529952008229907257003001722170659700581622534062814865174788378750604258730543034256640559972430071155416242450421576477544750910673811187969319760186059410931144878394078610182960724518648713967691811750173410931155212332423349536918539412996247536838336669554484292475799174770155571528581360444670651901043722185991376410367125366825280875551956345625992662570686523181130414479269269523816739513488848341056553764179417200527533835073037701448291721430125945907373548730860556904529744325689288315409007371844547384187206737537950668297520800340069300982618676389812170411668292279845081332857735919146315082700682664040973419999168579226449533105594462348523340332152776806318097715473790140183237472480299856734827948649649042144983873477094771907813673871108826155868468529878906732141230810836664068852434681826414914736206949257566370335526485678492764233916404758620785863437456692189114940897867594459370162220869303741107414057324551744420709551993821267653662101832593402979131768797308874121512563421148935386600841253773917663164500457394446478399940445901832520907660683187220751948594877446915909952885086256104084142629819403814295561964601329599555255525380972006972679847110358727250134297513618649140906322115046713294158085053440269676105749448811198189680904282916084130429125517344537613126659433612323095351212842804536036015244827065907574703437547961933306257772335157484340053542160251657674264619499334993114642649723967484462069013723923323940937449369837400955884080999661153257059766981537191881909424008023064838419807478763682434669551278643510588195350756748691642174059604484480708652646824005745492360702605664385126782984681100247669823199609774422684230999759049056816613511244861201258839407375302730826670113801876514730237913687197686600484155922312877020571511800909246722525069122155490361394277283611314615041188249038026039376062999079017338884723756829416577916248073989702396186404360566893765820027294210775397082729167733232519966778638782298554382677850998079791255152118055207573874978043385851365928476582602487970103192683455712158479264893846910689438434177732854212356968412719888245647402831722710379313810848968430351065056329233421324509098492629000378956127837679906775971849371886521999629194860517970413359904641746856731475514873336966875771451635730622479693158773603680627701943643707119560403941477789244907961533217810528756050312072553290901785280918391528360261556253485474857895014373283238938194460197240519207036828913225977905349314393205011113552118403042253564931584911540528699112861603593510975186671820636018256185253123415497417045292529091980999321300182679041976876949276057041137551352678442978489191602067005730849620586611277591836684759837484773015043085401597956417715349336310945097952258722412388128661135234570392367332532613552211847230206731807538304775690980575535039550106454244864132076802413777563958808146344480642805437855737597822110222056451559535848783651179330231766806208358201436793649796658605889451288084658358716007926228652966374880362406457121642515766383516348587166739435182760301642034605065792766951538860092587216612005100483583980918521457043850357302111167941175819739771043444635525647713677769492315697193388080131607235963292009014430233371046081847248805507805704629851293979375103741466595157659825364839714665148371039913173429125548925441109763233289844451820601281867435990165387061486529362453371034946350363684463717793383205660659882901736086642582903479809852196623154313106088388599357077894453530504024875812160876720481478657450343040506040602593456388072310462100367520597005152035806438717612714656743540268401047108273486816462704551245826513982617542419926784822598659099020562333339505231499536164542863015562253132573350482529366523953909537136948670886841298964953659303614595002408410749135902044468584779425884166935548869799039190745266477189313322307151695510914715108030218628286850250138798866692539578486604685312147406821542156118068861928718869210282487446959732006822048621759414181203845081840142676383956772735654110825266723688149090609082474792228037170483864509656743472737777506006240111198512225568400038033525219414948411515662937558779202027590623497934672455154634532180087544880991928482731728361891450621679053130934605375227329616205356525700058564465642329184734217085575185954803246612619478879977887672057308157605064328043286987286218025557641822954810093092142875206802918319099806221469062853681097314415146349724864687627434757208484593699437970691655430670563574599485381248353256228402995409707892888540185730670928230122292566844225149724219502709218384787437946159138187947893079317236412640624049771981210081038693480108597321416558018151499984512378920017894870933367689215182720129649762799166158406165406662847971040618043615486876093029017025856361336989021358366353969169823358648190033611169408150854753267094141239290412688379599731278663212522798380100850986294600708243051859390182514741829033092534969281138932108709709232923971869545348145311303622426646220357931309628574351889372841856377560317655493820625093375431728315558689400781665295204907763746182416251167471429728824190901900690423930694777717745666480025433777410703725309930543927157104911607488930989648526401826847142897107050263119949148793092263699655362904157393462980608904166787265423986622289419790607929414626263162879906250929283206492493648322916513789579292621253399534204852803348794675723266336689789387332601693900293550609640549440151113927112005736584565553507480404575068842187218791280875005977029811234329285141525989469166678694223677470966442989930670788375968179519420681073379192953164279171488269928492416706107829143540072226508007347277178331825265165767472425709011224807790921778029861478952176730117952512316603155542822080972892201139731823241505984300142178610467955759754523750327677505543324746596256065623629914722209864514742468120225725767540453224536221413606599208548073271782647529672836439630539787985081281641035497340154888935134150643228033635703343807183742016699572768350087245515706780908290571836825178664127789476817795881997433298076119774097209244069534965280834149948782070089662350034081437343750999820583958800723683978235171556597336561381360357685262936768240801963642030325636456925898361390782361522593025079881739389414875335524619432597498841322278722875653596838986800478438143870026216098876121396382829100536569522382545925250825842240854253717168982765843238012124205422203388306104794232994657038213474947393684192189296251275338139216285442531649413327022424151075398797039340985149577224444741795313282028761993252339125028617197925217837886008415289203761443141687216635902413992764354413324881963275927438451290892104045404238792007755877832815639793783103483986268212218426504413488893625577485625958596721332917325451860009481928490081981653115177716182584322939361302725170676405434446076464024517992671679745319162708984343440421992176336884899945205102614573508254143296510449561559153850644330264963509825325360160486711799360558278862757275937142818732699735542106102812541599081328251569990937798673055321881357640693817854739301134584237827867522163648102946220950397729085647955962999472369413745458043834533098532061125399427206071883836317345268456010739202061058460595784675538410347080666299168153602743827069037254812580692607766800940665622663547598085490064968298328478575724641153835269097943136317159836726367695632100152763033914086360645680155347947850044554014463696696714752208248323244877713639462088808962392573035433632515133872457008636699852054618101423507310013649047275143392308417367589115825846528727568747697147119921635790592695902451478848731566688459946569763235746340659232111189436497707437361158490582040429022307615913099468750265587919931362685866327362620869660341138367941811700753063491070203091177886925051013472702409298844891813035545118251358871978210645613110408995028309302822329028241606426571343331509238461345232528662704898704683435503091315863519697028648383411387313009095062231316195854354736280287479749675978251429735678336670814893985170837432541244837740299229225514879630472018458797129736977451126523021784206043469554418754477296835123310858197440193765057763702277985784686222241617627092427327870672657788618141363462210740353445183107832864204159975249637589351181795327298351248749313683646938697387709963140123544786330609096712398857244041600753312041509804877628429127298594310945848040528350632399617547116856359918998460664158434551083234602194782403718954073810722081254417762150023176647034724706740874324812550870031853542027428951639133969526249021292078153639077666422688273603895759795418156916592828808335506377590364880342275424503698685286931670791568275891014190726950317784566687494800340428310213959557335378932841829982725254950353581981878041418253022213890083465004147791851593207540608632428875374571418470188959347980661601499720024152187301991985263265316288322352324680303009277434596580522426334327114145822402601046635389906804835752019191851549061156115442761935684675444358983306357711237591844650106493763711353661424833764499865190668515636924487650289328818478123990561939719305528017835665341829893628557419561709958179570258041166290977614309107294660275533654011290451589734366140327139411368067953486685498568509827172013673976833994878266537650861668251974843213565432662444134918174991049430781685264601260029608536053766873162759986174276270672425967091607413281925306671511710918945873844475396001030171463033058723162570993898406606024568660243667945406213735789273695962647911960027354989061893859289124390919425073365350495763529839086779170135796961221134017022834308630728607808195454104218342218819644665290327529729504695785840205556118919563487523526485339372921113010834346655185610878100043955132060540892276888410667528886835220541659909011876876195719102641492848117543361410903684163497493740843107304533596958006740010915894606511443143652397549593618883747625155224104064889652981701131315453947676440419199684484050762226485202248070123105369096236031194786504237105656236447041011457827461907824907597536055144916435248407534013961612054355592308979515450483198700913778607679762331873470097029843895116388634395826522565322638154931015122788645655237529099407688850111251172141143433162216663084880023085287917145213945072268798869190836036052562577337130258562291798260154519061993753899691251070942668170986462090765965063481161042456325036515501762693119194952922425887960829159903200401426506629648490778518526019639764557928482172247433407393833902635029483535249025697002690103651874449378464376358864700882049995572160337750223746877021372951314321620813272271046941149709293636600508268660317584292761465471276224126443060601135672243999722552203956915219173100280871915621726571484080683601300321664708472738893239445872403077608003315710549019101156770430748127354823500446929617379241869503956865000974419104984133311993180261415938545270143142767920878671806519396269703727909600194062810991628181248273888382419287475022543030773902072366248510570286059162693501919693871748556566817397750065237865206562816856877899806198137266156567174763825459039360222974566277434112657580246155303064968193846012874274734208067854452046564687158300378119562580153962271300589942487754249775449194366484817183082104685147785070056400784750408017051927725006513683064457096133933126864542187419918775476006156149492431687563860753400383520771804348338837887172101389251178554178649923248230089598942914274470206501939348805252538790548544745765946715462264564391972122142044330309729734073496343952932874684949314004629117885299552316779262629751285182325450267128121472345838133064523396537543114493577004566279949298198013773436929746727343096769339507975708940149927254197998480847347843706041584146622064532467419213823195029162359392189349475151965292992259505785425459461840843451544652724835078597385015120860683064434099393623577894812225854979737645292381973902588497746812888699772967127256942407858191080510215156825650076712484394936235249152923010538803622375520385903785722023555157562004009297672115377755907887271689681986720723358999312799574683435892306606055929982696720243532679428245160009118029316189593182024041337694771409463786668178453836351445510324500508587788743091323720892996058096272826049329290403531816755072847931737468000151834746995155403849818520065077668504875510344097119040394047918639593907189076142796455746865837127129325435512823177748899851241683420080194816957436755699895031733328223560126303927756325232666831126812000216848417014644904508757107770222167116360916609352481466774913309983363252642142254495011619067019069360276084384592614391038685702012472818872957055062021609085136123190686943413087450390168599257291252151858178550440927602085261059450655669954283841495146981022386957272270604624990758697550290651366901002247769683841285978336396206625640111016877011475318933154219511944324876000978010816038158336252521583994792379325211710187691271394706670729104302428680832675964095142560735321420575233386486605901904038248861696005713841224889480625885290855969890572401894506621127236880874063364234949230952999244551843521938438152750366581746848702398754908647399433925883672728744410123189652568682616192702713571527209823383084060323320893072635862986312047921382644541379177325783012731937646878758707795096374102697700998849768446286851962209674249766331226117327399849994438128574414997758085091924294383550988492131763317378242001652491348315463542205984518855226143606154403918611495096561777063391406798067446096510980915867409734357016336247147506197985896060518153970227352420413403416504527603440007138965395203191601712685786031189398851617870700822941034785741648258399137243495234433335208435800041603542825123960557101802766101793266539360592974632353157830815274810299456140941066237316842594497634780060862553013190350055198850030369953137214330261273211905317321746740928798872459254382135710638535740643600344690277076321799246391945875778736444963922937734185836720369058600466451081101573433385920152731749739934154205443146034733083408528428175626657812090260076187826168311123047352055762138670388241216240001905456143140385587856440166329726617802611670412364969226360059570546968014039536183107391269492314708304902483925698868586235452825166596417673498110944531413511061118245316663554505067087764635400081353102951059117023981538217516787719584667730520127094552288204519932908730171367712831753828003835045748113833841491831388165138983827801653593831375604966952863743388883492484240985026884672005059601980386636408629722699115404014387952114755659048774777902894877740636774801464929797942672633926784962451486517371233321693102855306498257694022586872109792252686476175825898267309348159512144470120279931960888104194324764522731217617168676295902684247133688038590535800153156559735201630993981611202943707250265356478356183938811367246568332114202430501454401190026823460618364182257776460381152340137108440667967320900333821026924543370891673960081534148613844614598473462519872708376487706959859639152182200783472205310866075575124973689941990747743876698838445360826457272824884316117039919069544539571845924435457616030322371495145446387763481497527726443987608925508055950693853848279874796519483088002695987247723612832446457189042177117522130519797480341220330215656326181244341488209591141430070388656779282680249328417912343392698390780209804199251971585980295456948625511360746366030583633946979456804030239156955083316119484154591067049713077832204683530412254311937737441395076800846795297476106827629120313225151941371263305532515660389811388217588326976668294077782467459111131412464390398508644045333334878534274068622406039555408186720543613222613227764623988095649927457694972717540892675882410516896728354180127148460664664006211687885063205645716778301320822239954841481427007149547962781157855380304311444612935483150574701068945087155444646982883770291061530934945581316875468534179847406064870241176836337718036288452894776867096572450066068887522285149760747493685999709163709270612117691713487937976560032598027229039783180131077577771077341150234270408179497829482003144821260817573498803808232461507371947043691359755714502280486877246226425770218302438116232717584395598489289897200612173172414488910181146735867994728278319637334984132695105773107647115525358340490720394412486741744699637929403812637302029263910890119436540596615741113383947177617973030770801831161811495435198451184600031083515317135360577980387337366472984691490967072264690751370780768082956283594102334593389026504761509855537873764860972238370228378330559246145005459669962879208212001832512179299514040253187279273881539092923724300390797603816915846128627591577769555833091806145239286960742920819505722747710060579828898307394143233364471163359427404523049027368430083263741022257548738728010746092960366690276433650077571216680235136832401255537633590526376028603408047661736454912351849144274495838682402148106429283653816268706618850310953333344740819457693653791143465647999104094043397314746508378638030084733322293469195795645061458175547440009875162446854723104573058978365993864234895867754671720962104934145701170605829135557682941692241005361803214204277907972653175604613494811022580346461094054427451203743929640944080781297625422277432255364572560729787089932780433986325487370886457111315642224040830199474379755884818412156752584770057738223325273496332873777983139801866634332314111609831373924783365692373652032719076038263615805271204766145348058134231129531581422503111014596554547182256738178288945369931231289475866838936045222874446871582409144485123057487485550092705770172508756601319215501487656483584883824362618091964209970818255876906751110682493892441444579224658309379454425042597826777256254122851114685284274515995778997358499870531606212070606469716353805545277931409631226223627735566771419489199603216533275241776334494932843261030948165620917337734645262696342164315331036245870033730338736439380980179605907845395409108293873702714001142365087989544030790334337014615304841253084113555988087704088387686348888376503815263181032794766530698632651393322504578789889232901732386874742021729044559986938282020185777334233270587474294994801289749942897791402545763816489623588062871992293094063544394690586016805694958541413465328580186109394235794845895991160101474152262769844780155686105068148261865582955074191437251855464826902637049330423600105008945290300616155524978570694283327200848597342834365044528321124134294969496283313565185676473435358052247454778472565204014152579652720090941446592962759251667001505642746009332196422745066268417905414489666410792200402884310986222225192356226310546204120275067883620622476081045537809551499482212437955861721982750043701218710880431801958039719462746428051888492678265542264014144808608889425691080418436388744257535827178935554143434257642641425338674638891742403202364369300514654303744189764861014637872932469297210501009465336990189058875870341389029956195958876496493641622622760324425779493493105806856811240279443502903174453113946135307856309355088575611507952844710031623904935245036116858265065812268254196946072234280902241748641595485541667061614476897378694525511546614170183794563548898801708421884287297196042769994687897729254606384736038477636282227818658171344536948917746537818501955951455236667314138587616099437261474838693051993889147063786674285895940599522996145276644537163117405278007736342954460946149622560076716450496969434876384264487187480577805873168930905537115716777071350685309402177306171141868145268117498826039262479479424442424187951855371966115357371029614453431330074966848221909630672699851849573447334433801101667619292185761731854349554691587673089565050543317997267983273581668342599730205010323329386713985116687255936352390665423251563753071585875697834258857095442832692901621441035573585012828990858135032253971628598988040462485748348461761698862624933280132403437720733950055985130499354744718655206016564586119643168333502802382140287797912678198543564122298746590929360856149850404760144248568119740578593788653697522106051665841222476640699206287939540221774019528093992177666028666928174488247020347161893406463937609103948895554426830272131145839432016021582105890837608615115674078275079739359787014381314410887705804716215598783607386642754016502555488421612018281824383086472979563789859822876537888878741820788672803029985554310088288131591073530127016476442609465501107868516631062415092285321744367489812790226072611188627212689328381337568801077524174785592285974197233440118616272409984609420879181767582014674154513546548819309523129457956051044751396190130879682136346181964896000179791950634510502350890481931359644608697270003383896972858091663435871632046903438411931472413182228800647023706497211334707302815206762077809083091105815498334274111295087360746502142087608552610119597755505301742457481682597260269665485218963597497909175721100695143251146850400110637369226088633939937684132284281275712277900468124190286667336270410700800946307333035776742971903421769810579380200891058075593729401677694205244128076696982461182230187477785467485537054686648411829235620265512874149302382782448680115717471227967568695780111563871947100916440961868244892211003312385160149786531204029838045680947276291185301766933867068633961935499526757918075907930667866657418532573470790759634861695356460819244168228740315518687065890663801328458891936891192414329355155746774121928671407862726962632810408739467958198671586600726480093101339681809876145718837109041601192247405334786411953678120650060990894328706704625436772128075244228779398494338229323298150433832096037077137016336718667713442660801867809966670357233180266535246604198379315954454966701510490040090443002857217717743634595027314487955147456018592125195251635997889439939126461791792458932456276098002988580191060503692712354274671905150197267867408433173077614051604163517394685031912606235439713242958054599986801550771190792243946375911868482115726309928563558891730468435712373021207392028254330063670390514331454548969880369392581395867863992722877685530823001904294769602210349765736624878544401852706051070145599621673839375374996552928960468327248243559778488082314840870635009582510967914141747549189524328295229012624336993593742843906309973815678556154495370826362445783050736220124895687492896674346438398817666703151933302617638466593212607575671208155845652429982278667159255516913576201482390413834299065843359155700017996549944743201698584715023940653674319430278120990132400410949998459508774266306056155824887160455957520483305611175790217213972416235545830677544635119121930660929078672951925872541972421140015133164260236982235134723216286085240875364990234773344796276151503403971695658964690479798592494085275378416783929231146161917152990331330230836298289306448374171612658348159735911794527147468612268203261771156669305521028525774586314371320742561544115290225958658362555845591299125314394670258509672130540703250519284913781139660479901736297530717175453311535912469424384767797413708954722204595317920067113955591230046300021779077233463321952810376747051245580204982179097803452622330750529144379869746089064042703781481396984488340002741506028040777461717591082282214740051327262980878161703671818694352193461728776675591359709653086031576681956603020569944378049893473266176729127453962855780246496761007123627379256564551919367745560319889622213479892087562064578409327364586816585403495026731846380019884191918600881945347128708415903418508740433401236957216919350297914615293768226255621866890349680473627565429564177016228898525575380985527349210091428112885312949309666153204898327795429365795453826071480488375355716602279581398317892683776067175875537238348177123089721039370877406933615532905485708874322936899951718523818031664354850222463799779476653495151110896738743701519478412614050995533335927115504703130202316407365691137224270325669086215650472597107127979827936132843489605141818613021305390152204689246420007125172692122225347042060540039062994118652391112275123473037917282726808782503354461859252429028203522297010263291434288774077340773718412449667459251347506106432649076876975624898378252795996202465596565562637156141717454946982731912895659859841925303761319489618472588751131816722467386363360650594921369747223932127613076253925322752083558630619608556696833552561637100844660832088526976786670434759375857992058895494409619287669961670738204630516210072636993556669026305560742788056452092494792448344758704662905130326720753127471064340643723855688244337679501219495445732098898648623251903759141301790360960604458411013736901049781282014705584493242199843365321192609731545791144737192967514269638370010835760363819759552165145896039660040062925625480713830822350709157354460774044070217699211213529964638773924716796666726062682923278584549564610395954415944321087016065032615971729310109721292282285524995958150396135384354150398905101633310368442614918870964177711232057512956560336559190454947665254715231768043996995514157965065449440140213128705810030809472928885970834845335382710557277800856612118951803428997326135265991402637202328797101136555803200257955316387150268746143067638917826268018196007589013442984032820667049512706182457214499443422836991385519712837516543511178078331164244582262057470339225022753062073396008162168906064698558819268653987841632338468764914904406878929152006530204249594664310575868846131013648925761297018154144674718586251733892635808660037528459239266567574004217410395307478019527810861774840386077917443731366534471990580584526854403634362237466526379114669569461008729336050900818783949753809502576206760953940912570789511840511457792066829510441043510930208707185332753620902919013103762143207820495289734052328178162761718711791980683819799296862576014954709965075600535630038693045161190143595101591924920002505151452153599584888126067487035550905860001528208731684952569389289682661139310772650083015204726504835937206326557490278517811954578561043189061694430688578412780386473500202112020212507073682642979400825522691792892757666019086831571294770677178863688254102069286334463762153020440300826858795265148102730436002731661260227850665532124350918025514034171693592037858622897904181220477678959082184258513538957387532881836603517748737961075742456006983246260360954509918244419617578590080611882839561511251993963295746316814532656196791936299800038707568558182409650820860986206831569053246415440820408394626342989063408365179665868431794108170879125327107823532160144977897054555520579784602727372396597354528796651215707505099720123226139676352097780728358462335356319377056048651398581587363412569292222165310628554675523576292252742582926732346498095543268028416670289651702414903384609986433664690248860885127989480918490412329932235513981885384780747687068030306316774514575496720076669210157153474225831471651379218815999097685135547306297117636042333113049991340789436100885185551463921640050070922128366452923932690413817461031070962023530500637922024571334520099942953577424441269208948655966581289228283572748020799843266445423659976433923089372785775377788037358008262312132852836389973383886638432011722237027669389593893089467104326239225771176254545894303364540094568915815702266275325075226310156170404266451828833484921465053892417119895952217439683979361785390624455127285494740339416815632785393768442671415509461756328390841697963073887380796472724824398172434833816393404781758787741884708495414627365287389531155590048774423412405937491055365587526230018019422060591473427081710824546288658821054904956169782338467071042849473125471258570691132978121007834036503176455051137320117581198008399928263789206367567883765461166160431324310120655149444643213171210490466559468768982531156561002152675158422309306754431840584804058891898333945383815530723722402876238901257805207539582542348328006813341845490750354629082166097512739801626619546566508717791307842106335684430034709310102711633562510337102521529759152674446790795176376412307035984316413266587011563278222414568509035659954118788152956980236809675935330131296576829517826925202997746440548480858043215246369110537999535522112571845853521679573605734180475656496474077758525038470105373158242360317835094275336544472116002831832600331175910636604785253657178069914663648758345099203150445081725124072026456025354280901010555186444595386593178633506035973990920588276224315013532366615085672011323172014480038458909575457928556024447542271374054879098197297294271812910945744546305193379601266636746610416039384040342958723043438285850011219588852295856517583116609338769652714805250238128571489606860986585746278185698314385294773157495125635623807680421612122314424876216446877893298897582986440777312400367601183656212932417393178792908071627189426235112824707551898590606059715472095466416616854075816208555528633310090958076942911346339100208027308578734833645135442005584444603255782788252213493907620269092955500717057857964114796911302555835592581892587034261876395726132590562799628511962281787918484435381339639118568567851968166038097767041931804702287863557755808754957199551200467961092933107882247568600050426111367215378432827322888371425042959077012053819026424693992428489896059101116921582806252292366257524402004572358843338290923212525481334051899693843566041321070203690465929311174250762618173950756369283188887838309803278375904053931159731381230844048946543968486210934230006388939418379111144180937844271714948433903064195761224237377533638332623259446029015683618567043617336774592540547064077783675001060562453241542907417151391249467562153645303900961868919372839358323841456581957512590204656350657188125927852917630513290569059363741059363826416609622581416370561527595893125406492658433645584645090104238365976784251650234089227821360138694035482587367578401295418781133536562210648886285680026750105998286068888097653478194573340915710900208277609863138986937617016047699901049654711277080831958125603538657662107594908050490712876521333180296260687283275226915480478043564554341997313771065354708456899675887744838917638827084885120770581015487622259800766820298161133903273120762654578200216419473583438401319642367965761244806013789677772740063684637572730606771221459260279314928826824943644179741166868295091665291354700045903406438776910348177001210695972035651817025184881560739555035626413559872213359077975969359846645339357926817911480180947728861127972060585006644157781983370830029163383948141982086256188408428842677155613322388509126608282124179065877272297843999053489966175892040362551015103343130046832889688250706441318101684182722021524455077088137593973319982283892208166615084911395644141776338145956752241464535447221247560927231450291995770928767256658669799760004200666097715175293024510017273738902160952123337734219659652189991333754818542669943956665086985879326180274673741322776622483681957152479126467723340757998399320854194725731912832897388925755085726707404735892769143877154958751224356512408493338484919787231276827603651734509318774492651433274024738618505829602181753821521547241493377123363938926761911381965689914068213278226102424354050785229622126462470006827518318642084232880261111811668925224377553653009982707121324707851438070320190729028992439631257666530349701707309729855552160535405116368109319619153699981356899373122171003609067402104676176372516944182454113246334301710369236481376201993748281625656699309611245661092460092831637515268118279384299011602994021340906574796471644932064208955329847772478556193068795588565918431863506851824923509829514883286760599744878464014236697716557331115754530697995202925587405127992118747337367363287239094547195518728729852055384806038994010125139314695440572803393818055950868360480413518449677173658862960424151166635151866683978398290648394720813165401364086932907282938482761009346227744693925572847471312750452837413718488846175205578336313603061172740613062898216778562157963053886094720078788841715697186862424065536173182866855529099690012457275506867502627430459787508235647944687180530913224425239791037434267926675219748070579189364286417396781741842953124784454453935004074304362812073986469738219745594872734398292187019941712568598064894896481493109808979694815324365107815231267929838878728553639485300724588870797177871239295687853061377119496562048907207046340120814432896681692558284413974535815900895444038228985448304593814682607069409963863610094730959311475378052722237494922691243540613474365411470106484180539423010157258289485574975440008175620842729478141732707691830708403469575398923614030288120493384119756382058359274967649644022750429236581952645529692275799119108222750792219857333568592496526986866445703705451413282505228080067799654693826804358199327751231859946070385062613262902036450291506042208286620986067630641706478061699335468307804879305407330517200651964839228499808190663897108353286517344634277771052686278049537306064704419006447822169683732690327975641738515564671624420399045353480530462035542620872858352658690370701762815752913574882005037607731684317459270962547338243646634625578222192964262847915904460911201047569460877885083417698863876022196523230216359996515001052176851441994127407801057238432360879732382647071216343686347764973881438154195980642128964894205743174616851469413885326201365263108324544397143774036110311465592302020382891461859803774053936101161907559513672892714291801979960716028800846491115742070368235364459999669944268501300494279939663503139300619899232911582698994714226888877821908933885404137469951920856502255077514829036367826623082847139941872528139040041438417414523899183770373031219440348878241313848619222656511273202805551281693386739517940959315589153771817762073817865184939785685043568644828502858684510383860260106641942927843579337061846637517952544931711209965763653439686271437549223151462400833474720164999332747476429265578884760222403747151792954305101000453225003770928219538261121899739025612479425640803833059689166772460514518975745862384821279985321584307940680857170507261376687896747908222064096480814015055510862437608350998785911558960580095081751607213846333586468204088236326386695959341083235185938412749829032852045195664077130239598295446719400999131762117404368208013606245969485296724265625383681231198518877124056374565229714192016139574023551937373907819551111736706080807153290074466484804909770817920249946943676822737129886351987130219568265932623501199809569116655500726231102658127314748647834903633262991931577738165059356665749716497604143115279438638366509603868730066427780239678166372371162842477132769287605871167198561505006572781411370413437055831629384487199664127951847680357278096648676321302206309294926514823346608686776641024272907169300216277559243758219579236114307064508685515151654246534192964928266331385609303442217582740783357191255926783376156264569405208556674028842141167008805007430578636791594591581666560882087694370030715118434893933442221667174554878955231851589227923735023897814270168212569996173609273480031958587918314022797064489082568049989212884572675687507569193664382849681460605753228701745765427086219421613981434052658933597177532029750679070443554542151142649417253758170631585529307193691234435526730428416183356555975562098490251557950471989338617801320062109731206111067798087577103315226923654609250521793547147500734121968449800392415302643197766759584908690374742885439502452679474009185576278441693501566152427647267887269730276577961340319704991729789919304474107989898015148801940304652563479849873322872223533380710575363456391339017692727877366361536799420942462891177709410366017419232133659459493286889083002466544181731278944252821503571777417482094850175482327765075502301564439132085816108794033824541429812650300822344665714016658833595479668049734983114269499628272315682879804301640437579398848437379456959064230991896369257537662142437722246979264752417820108408388339667755550694502497974581956495629561550715467457127625857712359223252941535678189585553434374820075022956594264907157060768590424023711552467384319241001012376885019998245623448248503994331734924897466528946036643704765113952715472132128957874452963511537019912167430239196344417090690736007613008748788784667629069638491090956605579785186274805283423577431729129954589403318920365938605382754212512889246093618353740453698970066549059468301295742784983672844419908567289965596723745710800625461068909352106074442111672514794119639479110659895931646421407587345333943066402769118189665934257129098142692361876519661550389758575539683497890092261382067691369809127185495401593445997121645482489592945774935821089983117550051702075778028304936249500519613388085943978909364012754615463031376464882525382831501701825795209360906733505793069496044739345991275125362049479727255339800922174384093574258870327685102920118195713417906813167403424818536098692458191135055815425250493328730845091334068520270266798586628535095327895303637139575616925943347217699443879928121127288742141345081674963071061284958779868556013550154989767390158229986488791633884133022299898424596896651723691886427028406531243250992236455319004589087958408284906837825199122652001855030480408063403094035647246566611134074600023323198271380704300246829645355451010341850949929862339406031546351606733133846183755011146703168163731145339234083398937947841355117570665461109374035682157877840107336070169109180311191499151630113487875353777256441152463577445645345952668672774766151289134217139407839464338688412848184896648351119280246081159929451921834940155569339866901028646088944907862203602586502367181684602053363257156617705846177868015763005969979789629919254316974938675458041355929143508960939556627646284128348489453986608489704184076201885500251555980102223067584917466612864253498112141663244293308796590327741808310212398245065838423412351432689765330089609936248708741825900679384913101184147030189406616972019179371734984954021116437381881615903245131098294113965971708902649683174254674499054667429332375569293427549831197008408497854984232015236445351286709589452736800761581473582856163983157757546248443776727688170964612853410339516392885758446010509382611545978698671816965826051475853800234444427396720749531455134801896102129522000070260164671116490915844755480061223575750984872219188688820403526135254514336880578028293473700550994080860843749089740177119488636779093944288983146908582251267455714659518398829159120904782621192511171576878964391260363598090878696575834090425892568277033867159145233628501621947119044940369755695676445275002988224849899700636812084869991719274204952386828600467226887810759650439028702823342195137657974303810959336468036832033620724925011250165421120089638761480793751214894889733026603377358038395008965281807625260586546588693812231292003670308233330785181897671572018331064114699736842318331675074435896883202904652241223887181121689324040491876973646429812441139388498737475141171259342264037244262563199496034623773139652153514129152116279932524360787612390468839539694453710581627021466651131312450818338854136954253732613233357666956193409860534682917754552696482780221456244009466664885953231388986176104301829882202938253989495153678846175376685417485568303772720737865801097375940634675796809332329403608484079430400452044637555679176446411569663845607134193646236389855884153174719812647900516135303696825556655976270437078292932686740937093331597496300039736671838643340370473536755769881808799877148495584354804902425169784178438946486853838635784557131889503617770191711757772143846395074999233398954626503489585596382015834617089969345495219690407836090297250089297197281187827667817075887126163782407738492708650164197842535007550915465641844558168393444274571643231699353146465747424769490188329739821081355142905613821098104240208070159441208875995508819218715309737084127344418081972930533274302033098522401538658705620088692338898796150638031699275566303689560983595139861520474335793345470177672829752814677220975175111212685501811894566896598195551074873471137371977848027956361346641532646724493678611576923489831512955004206703721527285716724759149882442712219862772210982159891300553876369855463696138611219699809873214460615198297394363963458063014133153649590533332417645740130778372898233668705514133984267963168169111949794374746746348123574665965835128835474014180894627633982000958565237023793727577956842525100047028757877565570077867778175061889959337626800344266715032995837766361362374226881009409183561243000612077098643165976414888536007416659907329904366772289416470697573932317087634762900488402297195512319201041439770626083947613217898859223588096887732838501761403953235870794098402970222568940597093610781049531294837557142850934060895183947727052551329571615558830905406910181834600015204578041108931331654061322996467864212070348473915291905496148219014920771881478577819485203198902185277348974153247922528852743534256743155532657756349758213707302482259479586438897152117566856013540894144235320171909493675186139730579669042998077574291613954793113364649033010811150047851051167104942141235969851397740086906849697534894810570068977435358623914128800734292067959475551767474077022195686956699045796381557190469498207065259540213254363831027225579189346547314013582518618600044615370482959017980300077871249317372996549484534462270930343015366026498075353362483031635785836641677464715787408284345568696675224961821897259314321722688833997225251242074363583214083860899065110996448003031342945197077357254230346515362183302294752068376656266531712722062835200590274102679741076654854072740317401993564223788760258208700461469966881030273789610833113136921659940530844959497811410245093428803545256617558783714915524031985538162966324115644016072708631545066407254409092803365973014275722175816805830768615401407383714670437725360629437989256929354522287546915878176478204414632847217050614966058684496843729236577427205217437687981432924029775087809804837901889977062606308382023675649540421452190073106118651051407272829157112149841681450665667601138386088943970847200706966300369361326501966554494659540243248695645808244206696769749625758052267052957579313225867457157785450550157539650757636921535559599328863380153217879332051141249232095232383468373844767277346943023556310240082367289287102951578436423767210322239049331845068827610958164754732233889869757838768612045001489612899320764888350773569728605319079194729342865567191444062191311843171681599349158410612779841318795416454034769447570304175959934075798065942931492586980312973170516988306024851449880544619427275274333366445139201672613127623493070136946960708628891199149932080299356346597167257754176791528966014167281442551851640244182776749936167471857566133160383123937745137596936218080669154370317583251317428210061913881267893570866717013802603148108343895238277774730700548282230035772349604241413635037581802565382937288341142803311416763092399637900008156026799873236030951982617386719068914210818615122279437939684897956318141778335477337903231546229023550191635459290551874095104123003769545492709730674037346536548783567999209555317398579723668455612192325536864667612751105789085455446923425333111436937394805006436436010653365431746722873303635222261117101995264599188331489089409920335608548054828267837342301652971637307187027631370630934544898380099181795291523978932175069127492346492379310820557466451954731233824460114081499601767984267814728682191436646263171432354456145674340472447292717254955921845623238004155779633521939533799107044872410994701418699813211677725159815932345006691286860699675698234780750039743637970973956541929223596106827611967514488181681891303344890034699389291323253294886512076069851741083150768707367209066167600640825637051774523433394002190623413164659419577731829822987731665678692041716956046131504406178383870799529723268788599372378925815725697621218453335550392634120161934335172112008650092758810722870091501323119417892019542517086371582360917774297792577114779955183934220244960750623957980117395419702056911366015433879852384649170823078758623155774622726048103033038650690203513576647568343216904785435166110551444712069099894231725734896251529344873504364232152109641634561597988952148974910295062875585064126381380233333550204639280657215217146272008281732767039188386495605618867575658636988729006992567792400413201957691778987004331950258093051112404635684918342244516201085030185304467582992001044090685268728551588792816143443165674430232463399871051544162434524490662312497864199325258744840602305658617575614164007241413170945271405682044440824773628821326937626815928947524986019082851262102582774701511344649004337609461751336382517049430874977526687693590342089930832958876374912337045492619013219932992752492162114776097933680285789555828803694803439444981391005044236040356693919167606432196704356816386017694927085053767557314177537365677169203273579861670641620606686210276850184660110477265221335439256191077267075401888883152892499139895606153115028812349475820607338228460140564712945780061218495993417505972364222159904276215434618500637320075125047874271480074705577446372172964534277318987392778140999345778695727957038620643823064678825207220102677232186453411027467521810904018491064447639442040764567460120070582648011888505189543588597281914827963933955965305927582136628322132325210512468574308591662572650905465589376467877001394041994602954853662645852479532788065008362177061721294075287291831991712709591521121873750353463917988804166326814037686441910564288126798259253759604589750897600522986624129322050575193785523158191489657039738651095946017881396998894206242350818039908737652171127009497523984283031063259451437653888419955291732493206999859131450411539304045651705585100814941853908498081381833761934515351199690453959517621944795310247102809440729903475391248191221115133398324724188319641968872200203574758037000308204826613169570335179640280519795766472421430940005124238667314122435622672254364939996708650686948303006147179672993888782080881686948799438355044687056081426623113718484886621471588961484094090852318964073554330259156139840760354351386815196100372610731054820792158855457513225195238922422971264785319995684925210574428566388566164103401510753096801767873643228884993919225587275240633811778986911291671525373589983380193482110881525335138055361486887350870727864941083863205760251538245475579654614403950374093769202127526218091599778341476093329590745397606932797710473190188722984292433520473768754250089242728773398549370356088867591402711996287465734403105819932239238415477030752758094807336814082904961165001129802388045857360504620205890138545529499681511719624857565729267871723378202361932304762464926067237333970924803884002839007113671833324553094788073860603625602181454713633454538049908885677163597271368681851393057025734885033224808528708207265814231849117689210886616807109951685964070442263880252577303332333487504629771179346737358489456379072228285343973962846316949479658655088541820107795037833539097750525387201700615434573257065490859424573701712732380730102731631952067517773818369234862576561142563269175447023021207292727380095466726651436488069391682176946562410743429052052120245657711467795658318512066259408755991585588963845013380861675968554544661688364025935614651685714362514961583127831971444806816060771742997118443850186200208715982048333997258161418516360683752285545472062826573694317362519550807122125094228043216794397712687256323833880476150993796065038917464202590398279902228687622284006695185705323718848553156620511361318397746181802978099790154600561830848523000438416369947317730508487015196471640056738550283946882525413408492244240636167568947785985980093284939879259251397650397762230981537775049026235062946845250247198728422335703526173965470143900797582261845664682225177970745249542966563467581624862729244255703691181894187893636280269605476436513626099297023275271103251202575259740542130778537528764409070584173477570603994707880301891009760776430806171465037903052480936360686841332563216096580857425040313362465225827405585076754523803559723232667180834645023073100781352664468257181762830937031894270003269803974291623923864913474832588776101209413337571491272895722771728083040446945957203079956736029486874439833041287045659922481548301710241601244374818831349753386506060256287448206271181395872018158470314241160400622591000292816196592099402831728167085784159141520424739311602065450094440538965145626900029674513391757980417749235775240311538871112040707469816945149285211579124494744669756123692578647309801561949424417672414241751274221380517836221019759622828382919012417403733980520195903665464257994821540582299019321853741894976408243075450283753069689456023798101257176969906451457573962636772470640152697673377220581623299019364761916550763258459876792245668009622953223938440969688203762861261333993191422469918290428923673007040492429404397308783114687861969597962103287956639449826318885449879685187585894755749004132307034763827842859566014617205155672379151096695247865202166748365652200108755111107187994495544381458705056903218577514944613436774236139202357612739467131729124390899046255128879035361549919555803426892470640769662870126561443267906810680198048476903235615759153877556287069736275486619325312655312396829809932703753286477973148068753712343489373503800057171420339554623178809286741206700373414168273346222729999230433419392857186795062732308073593963220052267300789823525485089322414942652462643376441913106068103940866811914161643956834168722823136982167962761000034861430185167465926213922926163631400562764334436045133656562274630318351868326570187942479361311170848828288182005120015366657360473856967873053053757916399188810273191925063283237291800733049666814130299495364028706834028595307262508848929466665867056363141490649169521286143686670790990300415593671806992956514798785021488041115138859568870476709654520779253900963898986893777873180527011164380714335876660612987496334090873814512311525010295831112284652701372835005830834998552481131682077443762709086640853027780261463195867434858683164085953422337483565456391751314689691753662653102293233104841020499436758944449549937721806900750259860307281123647019633672131015005176260782402267157434041556875642793668941402796663682191221701183046886082397546825230081669781699118953675271427681982487742037530834760689617742198043414232082501054844246177071066457873868741942937567367155709283340611867481004476993196474672397367518725086627739884036201613491772938360854653069143090771333976408517722015232555583798013570105179216852224443401257315964621791170694352963464204273123842249199733796058820239968913359951925287951508989121519335605124924768538240489322596210017577686910894453440585292428431290917799382780010596233992127166280534804229934995137204265675895977537353137294578447625794979761141915020243470396019946530951365697541879036979446381780497555988471397117308910289790106415587466892273430026454196629081598691088780179410278651900748997526400420804852350492343688668330461106710662630391793165666954966186872215461215988002049648947078269732877660344193494280538813867819329754084856763649256529564134773008821741830908759784016470584792097509165580532465582930297669362196407999188113921051550285144670105353801193770682813197276760889598140552655252558337911878909383929458543273286442386502210012192053159529079196645714475611462979701666483478716047942002378989511977383462669813557168071382792567047968564985296974241922648613404177488419083725549974728638435285838575903382737202973715878222508747257614904228349747195071564291866321940144645100234011744030413735403797050344933812302025898686495612257829895650213838891587028204172725806334108821150274806085180724186660307764215688763855473824640844666383541403210465003582695890350453718344424086330887924085268885551755075555838470843474657639279595487748728496909716644357456438338812087307988499299402671818242225409283241764279156750226055096330336299725988499798703185554939799159747365598552176801882485255087310134205298274188360616110065962961973629439476113355079682733915196720579228700705312036246349143475217878292559109306030226170129353790611469122165103000688901321086510276828170125051257413973216762432647253223965106928862290393754246395440777567019898992359288931196428789954939321503696108371926068658845932966459546019369376421577974790048419835004621123232166946878290962003645078055234066385505112934388682909289323112236021336751988695655732620176510505715685277758212244329571773847924466346296061839686841812468413469443745869903773109383032258446595200430644007097949480750180730620374253450463095959456249540186322593613667346285504006171405751727787538220033440629431608432278331533655216990990242806929538028995632355652142126728981712771044590812606741069248895293100846950130865588432905005445387658378741618821321142809332201817525544992440083060140590121899975035420165647823127927668144814222748720104894240702254073741739129389616771329676743002373422488744413727860334277994863516784450471349284324094355886117492581793332557873593839817129831690635190803717973782808843202699295464485895403761990541595711102364969620905592251114332588386382294810799300601163882136250724996589406328873956855920503041831080659158421670522320910659763810402180538689137471453417326471763033614763296276588176761371931858577078938095984933292424732625298238058675725772854738896407737363414241996449709989651769994385101970329340155268717695490624182568236328091150959240280649911146529099089224304371820297039267555889858341806581497028621041237850985614921460019230576718387526248504384667501558730499368488281734322865860667990497038754151833594664813039387724646428721848033459507004708420623767920286320722937745454400348658417308539599848776457090171132697539710611864796532632505340968360293606522090855075014485589440118943698453413528418375606841782757972849323503358832533407589557433997652863944448822465811522468698405843279689110129262857752644626556159774720907523756121011617507789996819721867669321795065129682557645026537989722680137838708030623216560247048443973382788736232977179121781283677883734764597526755991361569146001633107600409033990662291627535289534847872512772534006947372101451378494708728464353007160533979954396535426720681747169544004785522842228315316765612589090304635031582933056338509852071128095825436395279931561920002900999216223738235234462481841404618229356731655855089760185096969231261322714444869206425035109652641177117228154761813660852334207037197326130996843974774338011193165464826257709317367553348677739850530500247276076896942739674381035925093195489051058298898370295993271728339820925066030235261732667679624798745173820134903060806639494564161519918426950614470411236709146710951036129211111379111430238250992723678906467253726297530178391587898249265355643788318191933479963486470057634926800612284992959052528857103823462990574679947670669005913423413908705732055533205232718811508014502575771289741669610752464139566751376341076994476519198854415874691005177218195999104030391319923524970385518889650338576634894838496860796743844950452744887684224079051169665257028081923868361849687194220940072168201674058291387080776403773812906806372966176523299611780333906366519273215675727308290746832828548813391646387113837355761394916955685714744883159056851469793580329918657640186397479213498027732197833183875265438951364267550793177453852623791193172354287433917742502959392506578394747074128684098293458540082979372224204570287935885301609345165853747483291505063304968617952551820725457659522623305148420412665322318135565120452427622767708366675889373354657648854254784562950869635554217018040697995783000614150062021637647855205511044415399844620307108957104275976033287260604637395339877511882641288192355787898633266831232423846213049847819006675675032703205806205398513677275351197714505826219996825479934374626975444759419631220970506705503206349598911318011668444891899615410401436898549732430038900014959383207321904759893685396636405123222115948812143016294808594046353882369212379384599087731125780898331346714430949195970586388623077583910171407709150089575157608233517459160375554131746199741759028441928843287012153086532094529754658682234576741440733176730449469368273418213420435023089064294203046972268778569798102315368860415096141062818683694076323274507561840919609122550780578936403537138569969554026636042825992695131160139238408332432616783098559973969888389421011038710129234470314089707507282165094516060518917865009038023542800742192917658801274881460196108157060705957916653039130624749060007915471587604060362681919960848652207492383993065437922921355706687996567640792431010180209723180527414559471474356960883971508795944350078611798325760903405263371098070160580522301222136044842350436617260799226042247816570562202435163134591257626825031552655819525908470474667033696713947609043581395508395866959541649750194427500194057040861333503312583537576807777273620877977885395888562741657357456304296118336918370798122007894889388373156573751938566215112557579818150162673849164941764726190225150188440099632543610365267778793869389378869266725329156404286268451367499846363976115890345105716567922545047750730565862081449906834986247816656153520024697651608911138109779049497706887786734037909416082733893440494891968445372024356634123895621707715648978406200776372303319788600435402620579689765767880680851596569332909527712600390096001891479535672952451571330619606806667308808429073384724483422089495250125293945393401555616648019435125820584134558645984042857017684351982990024276192494205481353185280640552159670126259014945411365500342150291874245420124424256114129639401516497214651360950000810168125145350834715981169583196413311520002700623775383795432620858309770856153025550463161578613693366734795074534703414564191162242901503776590288382447942580673168738993435289305447357048125311806889482154003651847261204370219508453941748900098586449687963843638876523401413734176548552725707360709984681297739990896915860161784643694672257020020468916336286756933477115473860373220722054655095496750567441220317094476859564110603910577865521314632428608131182479396170913734366607412579309425852862869393238044816937212413872632886844403569053556417175530725297950526554523428360783577259404257720725658893238649315826157460288718254211899907263603952193317139082569834683128088081221616295172897666669436768824847537898681935205272892641056180498246010227692989118466553851690015238902363541807463623670639085981932396806693311766172519440898583891275303578728963288342456402279700944789205395601533313915711059557004083454656409047703730284729666966763461369784713728402905099316437738998256728876115222767943791190793011034877202666049629500420332263381152002719722052290579838318548919224944361673145682994810566174526549365227147345966037651524544849573761591992516870265885147383266216284877968270921572409635974826035031474275681603271793385021966899737728648964829493425589793879012236911820281391490839387659944187182612176603138361421352133645417985867695668762115849979016138603534938466248890365236304917122354468691586970271528320876000201010972932459968549027606344597357715377546808803958366249347144444715537677303573645225305059613072617660425297020275876722243224421956749350353696247040175503197573574382743940609110371892623675384343789995505144753894583195280712182649934153267288036343971379422206936984200905888393216666236432289801526768029503850879987519534951465802200183653125395511320021479350222294406240313272866778219757688598259894800669492176069738110306151604566539933424935458442638469826121653430091243422583309395436946124603747987673425278537102306023079502577806174799274824609784303347155190832866600530636073998521387500538320518413628926508426436755021320701644295568903163122383667364816452451379085820364204233653285647711348356362677929474124837395202554513999740215558133120554393465234032227831153557787762349476210326159594842517925487964651830915485368538211380089511794957043555334689658113993776667402766520575455344289334679073318352651444593566794425150663250896502465447660068580742822292353108667571565973333396373870889326179698676780065986808190811589656936019479315824361830110167339839349798785734577406238863164052137950646742434487974461521075049888350347398542397705053218880084547227637282069581285422040502647679885792055992982599498448921187227067340375121711895600745963364391814793924327131889272473619520156315573777344048228299865074657362603503683618897442228535279455562700386624094481145504425933976321998914327845455894212516436304630177471142727262410404967817129433072326841082991627822773387418538910000784951982417375613365875920005973742904357324145642603103672966184412207942084819218556742296081145313154358568290285908256659932001803259758051063034884905072418672341370762420987387410733020658273194875034809207712442588541358904851453415512785010692327148489798112225052410114551791869061551390010555186462905360384007956614719107283523552742446131372089814912347366382887229259762721066409665708055781336941494150318620936252919539382874229510668233547902719356293604943603918875247280690434011291306613195422712278202654153037692173173646473845053240959445114075748231133505946262857888172008337351349272888962093597357658529846425890497648406432022212871090332478764213888294695211472772383547690239370308845574713506242011180170340931730682699001181603048567611962330744839370715112053597425510258125951449252647666108573651798934305005031138979028555627413011178251556761506789960964210624449250804152821050337557664227893817074591033182249185665807648232305497859095590942271306690296693731632271315328425787245514163485208343684110179551026994719919554453477796562841023859766801046703530965054043862104879131199140945584821942043605323759968693654149223615395554743017634094407025865289106558890537972431728565026831222187281149633965249742455728915047617887579606389622941740125603143368427492896450301611367425339486818913721400407982392756707835303469600094989001126322251749988512137889037252745184893717169090188062823536387380798021850300340927233060276361654386378449625935453544886821455933287239036201243937696575457826617251822615606140408650276329066086132818388598017842731025314448903786487249443596848656823572000735532112776385675021237779168001183072241978663618411306001612223803465854544903177984248576802007518510454029702264476819622469960459407997549950474431941915290724630491863165911764682128597776913185633362099850749891997703355538437565597194274905196326351698892391036074039270589976911103164553836217656981763511691177478588286535318560868711574457362388125856978188864858662287688025867546820557941132953523687181853283643883436826816973512166002052894681640709168526025949573445063556065620996594619353989700404129890891232771873842916138906428597063942835148145258416872651412804424742893538198169373875944935691848777484502665057661437909294402556942234412713134723491064844553343221703420347269593326749403453140491110731734915911232232864080209005768403293731681938792173697201457192777375591227985456092785128889446410215637923648007044895841670231617949035971959534591927045023483538536755325736297691103503606446647134759885130720392348103901102000475178779526281749923009646055428352573168743240691737542666279598781094528731085801876287399140212099045563696808236824753311007200624452168032116108405163557819597359587555280377279791606205095076611301427548507291922374886770971256068045045823580511857625208965238051520869908349049678472075256769766020671887138601030221160425351309039965144710179601018453501152161516133691668526544133879230634933963383446837266988470607367889594344489256057921279468504153507694643813470062878737184442322688137409913402481597440403256945430707957638948785621457845101393473493195048945043658328336134400594998417268344391814908826978289123540526866448667139157278282425254526045523420756318804720910586518804140289867405138969955594550578886484249981636448712296756376403219848129365544795196995149263535864710508760748443696867867564952409660883183772892318226862473757461733946397232762041547375838731053594657070519195256399580722248818041036360239854438027219756250066677395584005837780150048393060317693363119801863797050373518384906953308285497925637817675841874382619432305013759186973306057456692840933098593122278350847396394586506219786146992909234630573167012052940431701923078201019319583974716627815731593816904978828719673852831021225263416062062663752886940516133687186653786369051052921333727272652045963859240826560277150652611775501430070806787301820976203801301782961957268607417985859245374432031929697747950894788871523860978979286356804561421811248845174987982256822339040756763042130015097354182730789555161069200351178883970719596899563267558236415077157805252350566756584946448419171447720602618715834638109522168265831250884571208719961043500317796774130272771405516723962990439141591387706936522960513650699295942786757229797221509774501381336965257461106025388453364501032787957470441543679988403627847844456551398426537164948013101163852402100816781694604745379617011555753046847005090935920251671907284659769138898156065577571109373056229329068819691273987104471480327710512612519407924520929584219285833653487472388072476951660353507925566237310788010401339584893366944305095125608810138106063258494408163162394019841737542352863949356519022550701035092741119785176280509169560696062220011310760678009724956794724370670988719865796209843006491956017311628565419434384362364986004977333507432035399339428316288820081915979648378509400466054503716538657872471939814078495783875272220802197940315489828313121397393998673256318979624421782892959738695049431843053599825970856999088051029453908084678900259590029247552005262924775217371874494981725770039566954925248663860040688794729945382818861427471807513184894467022229174765744596143383089657651817819023151520906640317716005525394453398700971049458385673233051421888319192458180114103456116209980450349556059647983353865042657372743453511098558539364831640288225442160614695467743827163367054459946192608546087320701363758235265951515989939328811896414255697383955925292138958041303459763141643374937727670979643622805512598022511675917812348651447503179244286110776639930916076198220165456481310956087261787962970747434252031029632018919625306291143748005330904672838396818545006806428195476610352692019872791955478507832388296784011868478022819378738940712385007549509438927147254769725508984304693574863654936242771038578388565835537124202104988896351410751662401341838665241327258776376911529310460247272262853739269732438389696926415569137209455102849759727349541477600590600912436956773992191907690860436033530748951343458712040620512255333815474374199246035244625201523859878301480663931972141530692593375622107320351531471142677777310796583061433351376486313192862926980429535414097413465293640323038063408992818737384435461150090362008035534240376579398515381084751092554289776493214216474155229171630735018517686724023252715216356145977896312642813146962943481045420295276435305219844487910414321605217344909905969007699847816433002531449246795751088279503200719917493404997632427954956573767781796607850414108171089043405167052496229026239769591249949250058953396247532313255228487152071210320160871628445401602060839957438007600325385174249334935354522446979897332789186713539926306944023983284297323451945076321308673720634051839264188873803708453013757410555858461070718227957698637121001161617791823806431515165151613528616821685218447751389579973305133069296644019192948121074871064510315005259770771952280325205347142078822152944033554821611137903551075168936165532250446337596986706216643688008879570755402640883441040363676003919679949053910416884074366350642629259473535796990629500120298830719996816739925254304079791283853719426923061003834135680103785518080552321201254621202006847775065534990702199746425904354042760122613467350644208923140857763941866013437549904203840225592907589661163125981448567290427932247382078427292997892354870485709015025311254908782448487365195054999820483387599179741301285512389224995496459738291020494975213860009623276095199848406107981711350376451302318052050120575429942339229516047019477115398109451661808348543392293942581640158550731844682498177153426540803718989274460624464592363798252521961418876553800969390581541615515893450099245591969578022120426032162493101195227721691931194402922545161103249234641882906394062073759000427513363206180383037141142726237736690400341354491540939921519877076035261167845106783270893968779730884126425224974617557726304764561270581258108239663576688370449617763357447030770235020995232020697619076783390873106690595467274554243875840058408307632444189138547211912797777969953090759443092167169334003186021162246765110487810485000002618189845323588965046468454142479967615646743251002159903887124110539823030201739056709165036163160919211766610612961419309156908670557918100119052914339438144361784228015553325239855437010415491172296647842239172026237379824716719714397180685882185043270135760929650559601342380208273824571701328691048621945266376438291030668394003321657283636736138090870064706662177969603135466233458162983832351500991355829917318238064767262907422184686302873500474903569976859084188943688015191271521612308670662725949141045580021847638277611089558155939780353108058855398288327171121338720072751036729228241455319704027538612388759441009190759621477460219028650021082531212952823168306340454623014826510822252524032539899340295193601604620466571026565003151738034463980946405207688805235804316358678344969889090649607524765066668182599492939147023760909733120480094920692006211971115018784119451965617054214100028604567706763559969920656279215491174255226547390576651542188895481921984888908312639486334634653749387838527921873892513139053304078312921429200311365483507544802298340652570360567959119517102656505496794179780421273229822926039930571069646506446799059505289840859810649640712466265413435208427314384908682327404647440509611144219816754166951492836104550272647822865513948537152183409466456043285447899854809414360857001268552903560520537383045890913587290282745138475950681439389630690236190494002854955037067488087239371537001424449766883645275179321526759844602640340813440455426687924075946677189235498814548314093778921804883944507559416692794407147028380096103635886796611924883344622603628867436909576993788831422686076621349319779355960117505967691013193076044857540049167861142663545417167433069624744123831085757193921434064290300824074805533072448753831655200755301897379586449732953357207741227334621370048150723045861929362416240657497964313085720236444446721236643836772685007090687303753573013249847171661730953426617705378850332137431062601524321225660432197762937271957328542445809548011324299237304383898718733606014419893355404702637073506654323947474290993175294045706426817140751953068480631999163219871988325279376704868857714845256523882886176975639216064733120106362766496950141637310982299071643028668415105712780365178238571183625864271067565346043885142510129554030766457021936941137549735544436861286439721200924574378168726037562238340858699797532131010124542458559970123401416402515648074456616260631436923638885796037737971528782123632467457583579684188743537020168848998323138410433729386311914374085243274890215785150816794028282343247864360274612079325056738008881208797415741141553272819236607139219049328492527440731285443259247550382865731060081948725049121073284072320598603215961182986684348908047003491000585451930077862744047897301431509460291216874777889157759752477663414933478803133069274108826142864945040412464159685502661922947645096208231408468680750887522068190749214591854066673327322350681159376071343326504534626281390838080400535938289892230120222125299392815661712869472734389482152177732032348573130549489322562460700258657211620490366276465944238294065838364361600639938815559534900349044729450876356059145157069739739137150809120457568172387559260104307953683678177127186066852134671611909526987989538326060744591475173803010269974788827594008890724028650914108748910336387543240846392137709490410002168756454993440695722320071835434498368868278697754881353776749338413922562364572643057144802867322464655195101900357133164125536195040332699225808233248222485302182543833680635282812774556704777296990583556203952438737999733449246103544084540426805089483025922412490110764689778738632129491811157616188721307233994631618715458799996625583126650915479470132201390124180930322490353627191733722069455121930329632941518942334226456396284178648521788732975394682293196898885158320174066268329409481776554312883186986546530240845437073095726007844624038778504809483025169665587986073892385919575787444130472182007655672085216548651038931983391110318123899869099727831779871131407329027786321890010937183423017795002108408984305260204894589807003219261625658016095810005900525946837930407370242775528397662810087949250293664366698096148815616274759486312720259463289026618612409428995339826163801684872620051340072819395945962634877343478533274099081114598223192572041474511275437762255776482738331626112694772618029872723649012479129215558962817001080074444617366166321222224926719627990751412564930055712701414112558796254964305111221011186178884358795521625883561660461188772615358216089873162295820535731307575714971789030031375439309680768126334385375333036204651168140463945020905691008074144503640782191228133527788168004251066764115736835991785880381551680495590331769532497412228950024253547253217851298710806826383555459271841155965204142600381976940403490347897005746574447255492326249246110681960381020899908092234361378348362684689283643466356830489123702524321298676034582365740254819913623497385178542792956610265695907101622047599277282095450045637321395328161570545135377152521324295964944277296227548890982337360221930762467782524977714337131772691921212822025217737464384482504545062711617995008792938449138977417879382479989536801575368655015665458383176501914298036103732302551632120526404182566103053132636623971282387254345911891467250631012595830278705552844192848808676983891131690795352444540069044424039208696229550019785119942292093316054968071065065295125564229447881306569382447227905060871748881156521011730300605301972886058703784507174338509820821989268289132248528021687678866613429122400133544909965350546570374741218856360308115126591425983074792491229323137361350354094437385598035752975926307560671710243794407935322641239282540625542121258401601949190402251677619187428464805076644242194836558178898147803188725734367146740990660153184969501636484161418914455624232164669991203018187699120276662238657091856753850074988990770982723182861949768056489107765175988734872070285890014570337983123503771516159116515230511155896644005432587147329117120774447869002018296333191513586148907642808222568355525734810091394204638784029072931355567492643800185732668549169745236477161004344597473487321618968383524987970009148010041043941414494700313915559873192560833121085390501666656064130072656546608198691400018034074593151800058875708486924354938370452130979547381056716728095684324420391270132382202348337958271898049010340121372045960334704600821820164978074359503794860206482355459426382568169354713155938885934625346007167558525124413945741221238472274436614861392369513596009240045376937947731645436579855177774428942080643964765549353005987657540384288740712153450838376412252257150129530398475005192189914802963322967401183062293462719344595771796903671668924915109087599601837529818999878610129163963381159894733325734365085903760263863061678063500817042096852925274890421088431527512573233245183479627542940819592052707568394500374037140598691986807593454512148310625564877556906217972412144562319797089590805198692072600275648905381685151626629395780820071514072653071061454622855733108091356738893440711342112208373619378881881604162080679456811354409724572791393153564538449483952942870494295077513135338152968323125300058100507923739966971775921450681707216294508436252782964311598345333244697146208204175201088844410175583588418602299769235136312574442689189959713735300385267403526369332541800234525441701337287376959559493840262530786127621857278044690619713844499232336415671296607566284702568546176423447063061471359009358183291464260263859059740138357219787645708010148629000508592389781012465022100656595152841245682785208024599077243148442644100304310870626458633684935536390093347281356841987337939095048654910514134236772407803435930488231017565515539468254365284954996146807989434053778003260993876487386773603799828734633454839522199332789147467969940580492765340802258164470007952367814383456676907165367643205532024682503809267778884586557404441175233469205501356769617253907838874359466436942901632824978867682035687536944160225542757966495148289995374433879378713841856737901048047136506072224972422928108280154776469367647879495463746890740118258504196984396197489356150311824423376475754760606892692658333055765679490508648933938098937139884138800913933038921803840042204092129424881453467492710489629945808438182707543963701919833050078889205690726865901080847016613914873041769913840170599530543338809757079520186572336999902386529961154309818389057451764461825047833702638423878326527570608672836645053001158924320197682992251530872449774905136234041924406409383863743174620288106805610253390557314124505584868382793646751640963288738883506961147430385544548589652150491502229935868976468541467800150786205699005195859735894294350250856901604297940111327759336075454182652964747080655982236733964707491897153734754924341637504505773318239284022568344144083905879203384744265405615304193299437971825123140592474229314303179527861090577023205712390065554164688264199797244844489366022931000658658295316690571970791666532201023626649925806864908177187479983284299659074806988812680324255156637376132553292104362651110627688326186986684519344898759963418741366123904223954632054375154073359432030443839321399558006322206360734763294927165991400028192189049309771617100552986103609941735932886014376948613789450270851502793305588158807117380166158524820567519726310936728565915491344981994198032099855949422545206592583831514175642327709849730204374004692738832944973541518069820658563084331309503765089355090108808817350079472195118944071063464665850135881104483162138981776400906331509798486803779945661032990261965234708201269663513200348182088349209614952391246778017233284309224326695837595035939600201678247217542261656614511471392511245476540232804965683536451397172564586868754006930624677827322086669630375370451141770060148693297493690417708147447607598440801741538010747086219984205140761939747988782366891477413276265985795896145943422530118673949398497847196432708663202982639704760205778907837398505320526319650334801987863704023805238220325745071740552033401386842277610527610141232737410983536275701855143133619251649614957228550190608567398167665132798099848233367259919829381980981745159279766109663821399340360627725881778397857137334994318970362308034851393716239056260941837315621766960432921618248828903949027904518079340703113974811188688103286193420526467591326842872596277361734395417693946423552950816795117774713534169661223895512985759724543852324438033013101742000684191941347338638981388150717918838988616291486749936022925470658981169854996986051403894534804015135818887679189278169797563781293199005629608439505088438075879907692560025896937103552241927904764219578170007653708830831275221881697666179744636915449882196794119185080677259814825074670822679520415359059011032373644185802015926354405375808627113448434100352140128779614323465524796672676147572982788232478434468235624239566398030762310248771435032832826288128125206081748105959745498524298471901595150256375834095447979038591787981234840549944271191431586123891910663448972235004316010999710132627851730364231165564203850874272882299590391491056020012112927251394544700205013724772943320919972074801481399555396678208843482136498973407677611817084391513396010566868973783045134662218089358915784564415098747851394044087338990543505245553342595427395088179755050623607212605869600874797431859945889987832541778175419033786487693797183501707987717235759197154496935770988588520410819891301214915639618040585804923867673319209738475682696613154411616280664123366518472139088343186470899536389323863262775716478485728523760647600624807537211196070814911200213277780725040424358141302559577995660078657095310308620330481945593356961084201859393762366008681420153540568887343112236165718104368381772952597544986461925435301230129246468459961487829364653940566057985685078538796088664351471520829662806452588595124894677433160530278048605704868507142793142874110112461389192352587024254595112869584476110167279129930513578062472178307238745396855327854771281815073268524174878862255129254979780636963535070033222379400187819034407696042628739158584506412996363523864773487753457324666221031385145589825554752624092449180201826148044523472198335638739559697968331038060672483161697175736498102990104356669764407942303043676680488552469653710323392836616104058312183591797055475411941917846056423726976926690717215383456479383811595653892646470895362426752481476882167912765886386092528632915258818170342846127285739898954849317884052649511773498494480922819105434881266421644701738011592942395886446954965655662854011151188437537688467419924461348526572829235092897770147362496930250768786933731642433683232780117625882578381054472994586424477664725849719837599552828463540333302742911624362593818226493501143109620707250667086919899720945099145016893349551961555702692981279208250445914723503263752412233745057752840642767422931552994893355738424344669964950102708021306446806968635401104061142874979359773770469042134825383663502544896637925934296366699225849827464602636089807248552820288544067698968567431239477479691740736783760480375762739207185339985312115612483488237800760778104849271792486436973971544170048913456535380634998899932025351653012654032150100669023820917808134932936508598409573189743200363098734521822414318574477114261139193417653589442470962105554978065421583015491430360353291414022595200952556452568632675096986254988419540761896782363583132155581364706757077956142679223254748787165039552967882997799818054627470792061838704759922708687993344153890838022186013590499299291144970526160637670382733814926957280307204220441027600701891575650691533301364850640096598456556901506049040751728705265369656988414127836247766539966363738192832578052273194273171419037782751596561751324888995617930293972659172606130122330902867744161136956254404409318974467547508895820224054471943734826020876285852957953854946354094578404137698720507588054701071753691996890164088270635441027746002801648077867139623211214063567656452523469424671664118508574598205259536880352145079260491652884106003635980952848391868491509224200420680883177320351946929122184320897876543686826817597009700428612103539288027026633529134553738614561007954906503316878055009691109966731894984827309489188072046929318712767474674365995686441348200791596673814105712024930045327095552410205621839836838906238389410936709815527087769753403760799953316012676015485132740487905263039161555640175353139756365197364950965981710446458776035065771822438975682902017388058091462665906754730108973676772052664040568914467479513865150613911124559903320121663358881057647317300502351107980473329946022677625927373724541444092115271909643839856003266253831064732100440263483172230852033180113825112856629606606541118798809033699753901479584862844354711732421144135192598429494529285097786921744394756812383151340730359083907472792545073716035485913890331820363930913253749724440147467936526664682379726101527313237570954091504924461834652473855151024622662304167243047862565892254960414662555408335377773258647592403038591481626314612933803865048380283419489039228609334560012738319324810847362470340592038136766881715857039241980344200131309305886414085062365939689581212591653363378956973265244029754751389928453285594445704143298802438074480967603222993522531626515143470384605070285947835164311229703243415879161131884641387307591018778738743510124453347916671932738187429549272492659990777418931984062824115396349818301082793359389280814283582389678357274986241251010627622101459551434825650020137748191243732268581197557415605025004458279814090683220920027962008033547052222547084511065687430204996291213593042373479704474037789448898247042584426021862865921343268685677386397148333950707350853863641733531426462745259033008446074687680501245263621283623053375875340179313712575911512679375002178256551754084955978404149074956658982394439368043130180422865772713860121349245323142686902620943273421517111558908014353133315002621281952663202095758940223277829576913837606821699527910197959547042127108276067209492706083269719594284182839356907678440385906124968221168950840380030930708741255931041137147914771078413187493648568231629481976300923435181692036058809555899273501485597303856543876671605229511356762130526128070927164422377314728387391666366035630933157176267766943450169286525901490568162988310873730253929445612100204622930369623876284821003988024860785096835153206963961670926280442701392865333478229517332607048857338052779277482620156813172461926971336750755045175366280018695825642398614133496460689379137287578477843046079411431304157911637934110394139764374140774551441374525762399119162940592634750919498854680516223836148073076837081853594392965518700271408573647905067482182122233590102847703733534127917643751892002582545907780701682473922055588759622065140506801019986568380902699953300982305095326637565488172185786032726531082695687180395108539685451452284882285231522518674932587209644917402051523092751142189218522842272949201270955178225445201815332443832520300637588043038993830830507595897453790653361436156625454040665723445759071756183924718824713612942621822368677789880072334316028491985028222394803719250423086340009217291250519503071124649409471204732106984578873296610023748674675007008248727635192821814452066140109355594309086232352416815615045813610577710806089620476016456650438667449044773689263397255458414778089858279858042726391488913110166483341514386407366389101911092861352680935794175669411932353269547370876071530550404783761654980010183354623568744034007152787567598537968190262887400606716852048641934247842000079560202578432679851606795225728547042147307433225326387896886255572221043894456723535761671058464692258294459352146019617219890532205517593594295581969630864097055003462202113673416215159488802150765411177727813810875959686188658218865506128066973555719754119994450509512030495641264300906049978498086055984386493268591688603679576775338463802943161414555027419582972489831055113097957642178400067961251953614798023390403383999513402268814484867649126082696915076814998261940183581518517413639318027486512223041838816689640553718138418023459551438891859450822782983242922592215332175780284937821475672905098789085936996163656123061537414018575820102529868060910741202400836954442882468372714376643185238189648131089895662825197611452704680465454099131174172215128501200667975871515582014103787100507384177123677309898192637689214804478137456870979680416183057019921116156999216862025541014261400472967829271941689543598652739254871584580744351439973763389135291568855661120039127918404605996099040661624319201637165389635373919294877376747453537754971507205904569035676836322938903433423377627399075965582207472460525951872585486307613695281262764152618265981730417459158908941314587633768211288545170173306477979070829342573940500921824838486289733483955990228261681512631190672238841874128968297525743294772708798437427503695698888158110340867918175656245985676249190338383791899276882757947600796370644843093804570715671874779379472717720945944739756348955940994455806790256570664296900402691978468813588018928197761191900314558169313383304656480703411400008855532987427108243410825865654169664007601402535172165886813412351566180017283602832421647927533079228713061408712403496570618328530107091187081887897446433054739157418775217525573020135571299121366808535832677671292213963057711925650587899969754252017832558067326963181101801067109961753669627416122874807277029406276771955563309719284057741870938438007905259020797034612570744382467325702657402988948332217337449584023133087749205768023963949151408826454186497202924258995506330884689086665464799590116382571845335795651477979920008176496390496743939334423900907398527198006984708738857347933840948990624605518822605785207281203594533620576927304866277960530529468046530190219074386332415442675859980170761777514019529484088433182177388804687000204250482702536147749287297560932145084203198837792194931068710165457479763169783705081233377126271530653526856819880319436779486920964869847274416695238796143188417910405576460266183579060346392994840574862112504714631406936261905600723225323951700317236944576488571370411535350520012353996757055462771285540649744780767035898257795307823703617238716094749011028250093269988066242760519807587933647188247931103987148988148378695818456745238127190157013168780740815814556957056710225053335516309228327034315797004168563051857117236332784374640132064269126199810488753214765687866602239352775445448103106752795120459112938841090747522553117293174399076377354606043623539332140410071966735227785307078418993598688934823938666381463663181011623916646789509152370076836196256276918794173199918167793375851725309797157169272510420106111513349997591099932854357398749982521466126985708041562596082381087998713150273314696388115912164057760389548455218444006035207652635470051052136164181141359024330209838057901129823822844555524246720915373707189269053004802793407710253357799615875408187955793281103605392732865707099230367455184229014952942231782375472688521943680716584662684001483668945275487199939200587506749057559872233621509097532942459402411564907159680592834699796296419837399561989588634953701179744882699596110991400502934925765464458709891385920039038046720658792901691252691285432384906617488772977134690435736007659241772975263702550928074589367783418141351458812627009523378412037594420634808027584734795004160734687957856205346109444413078411389290207373246690189662871109598167709517461721414860833411218100033045087359425753739136062147720814661230368318720303873388540899834664797746428169859703701539585681884365157152749621198261993377397000528886900969796997431468173085944299032509442601723181101006716756183921781406798966545699834337801495913369316961223371130632273736639583734848569916847066764514264788300775346181677332951057257919480767752358491280026886965781109880687050563334434380860938163620539919451899566051216770642945796814447005473151540543666533467702141782311856574485940933747080069507403647032056431590358723856510801724960202883587111672863805157467137342140797615547699389045474167764580385272881963512427340107894380739735786936551079042008150850525420502971102371927429519389199850395115751174382558939773796045254911541755773203317378515960642155128895530291531929254265808698927898895188082957087775924299150674626385902279186904314892211368254946418455095193771578404736944668325919313007372820949180072890868436376805309375535876814580523408096214014516324267463764511688379775387588933230880032830231523442311812628603750324083317072789863832518849489341823949426296265325419998529792059386103606116254179726238194062039581799533616260860108683498004211448839951633119398783113426119285024933381697913495297226822637131079644354007262796170797448941696274387083434642212118164655519968628449943675522631135156497221872722271778458140240178803375646027540345425982385334656276839946490439477589064034981549403106908745330364073275808025254411753234004824998914908856945646463431209823826668410066610067770624744203472763017332351101003696683949608379083512828865886612892954849610804796973806252692637200433169245335997980781393191286773004716856584258772995928847403211311993065265925747104444167960148031735478148681479906197206665651732534310763154514411960484109759014300708398224242125230695177334381185343174653707984141896929186911248910723611088354080474997545896487262955184580842023299816154013249925128430849259683024068527480798795161983913833971156220185385755213611595384546567628195510659345228957332123789671005841861816668518856847512460343259056200415887415667769719995510917967232213192300503593831206438630314778569736134776053240794357814766014153442135480349025767296970562780287726082446906708494089230763494236567803599386153654762481732174730843536916769033246705460691587466312039321642261937790846002699679837844772062615009375063701015478559232196268606035542952259877699281449967508361875237734960010572699688420518530749504624663621351959391884613615540906111382470250750665604872811191956628355678635123675795362961816703155088463807868906323525607540493609231553433074380627741728502185098442129704062054518755036436579007708564263450985838578801098397014858117386693725332955880316278952030364676257208011618968355258807265416140717661415747095846514652669662214511430211841605122642101703138312345660405191139112687260823190161113053905250045577556493458633163822882143287333716739117242516655912956364013336682860771488522810902916626210857262910969338294143326419117111331303790434456244392971467239433456765424828094843152567706636809240857145056681394743468325972111202476033322034314838254002127074446817443567115561413381785406380228444347872343545730871158704475750500516082173208673855936097098638564947255154551466257006211008813782749574599385404700294291056400908970203353151132955375025656299949120559186507266707604414311970504889385845594374523041416453270489279496555967471065773886622990018617368782439800026811197453156996055279149434290135067472926177580672607897746472897267505213894033385494029741773686023591252950409274400915420335312030671469383006380199981252550673749614419462944362638104782967934798894308733594838879468565005286678325224304999745678819301495955903685609933656061772612650576628180913511235014260285756790870690051738364490507619879753702113366339286819904938604969943260691250322766379201132838614959276436825983398067168004787212411568753375668019889047380485147052913998821476889441668242453895771617296179756534475418072380402724206507368476665897395230568271406703122749382528166981793266305458993815064731603138956326497329604102283388340937442318030112199067887319316521835736659485033776975396953665431505968927725569692150678951051886737051658550038528527631433920721418552891308287132869337237885846915791104412058015746096581068253541819564841838093746024688453329116373790101408151003551152071304568275489639823886429495072205492324141387422238554428579853117729217878325547208417063978721606528065781925067321873736999934652283478842780981594135978972173720042207975691115656416004116047865335076205716510128508045803880925587239992218980618021999313516979494224558868180169434495896166366479258285793285760631832039121446188740564101408605374030730785508955779300618576488736470437722202464460579717165393980421007138619353248440251833904855323405392702606019798072628342570955457517128455046859969793922215537855954194569517234032462003766478105566273684104497248631436600894524598595938826081071269543862479117072272139222856064644093656735928362740887851691966692002061610740057143558338908854095785383261505733982842275466030877466051606901876124849983031375583723800128003525820499406389471827357357860071560653936436106384045038735833950037996183632659788642123299742733908738215172475696074335788985944392918347361829934352636499642938279015892063617000400185527679405221452123213315441555593427107062605464011364872779621859794365829295201159010861251669809930522623688193284687739541899691878084041745612518544485047711908692486276150307375856838420576313429474893361224988682994562181413076418632769010519622113317602564543834970243402025739158904927609417216406065761813616031364289816964699615794226541375127990013105198699035036479799523919077276402657770816345636234687777164342930650935993327007639768715336697191123869289770810581060027406866781796810601108327876575405213665118078128023626721533095939666991348816173592215133268255776417350077579036243065894224860923719569041106570191871541097804386317789486104821587202744844020608844393431314569601051638792603088286338979603879203217547205995392454904650463075484889506688797823570868710860874655959119504296378917446881182983491325665686200209687054395057885569704969093974175815551439823344385364576248318452516773256749586494866564995580058292825679165773847838701499438863462535431007825479033402113352034107710544262510035901469108342333073642219637055452105590330445817788615559090434211068763991942012409837370916099425041900981186586387965315286271779996174547763407624057969210863249640892665101898456630579338141798273152840312257052874851508217635230348548087488897108036083477835437116480334142613765045443498541945842518916492971117163202813422318400929039499922311718344061334932252298240808641062862893780019924467744047575128569729359629915311313751031460133155979960547858257029858840864331537356350101450051165319599664423979677079283022460176804397847728352533267074082906553834118805548801455881004105297764605350601415598779300677137805743311244590172126801464613902418741082595400586063221801591427345030706415795428896078487638413200113619575049294413366158959273142279057721470185738203543256209648484375171069363995653627236173746929949266484278255300345877480253859735096951741251927731821012612699747929040701065532030285706833985641706436455726094223837787682784583850168652243452131521677271382441583045781734052515179619460896113467991468453942554923339347874806695884697249677205916010049353471210476765137660074524188321953923022012543743010447686146556439084107529767081059660879565664508835778341828652996867118950008324685862659636441756920154013243060238371858707366977144491984247550980365933574347886594778708592151245544704577104085917329117572604348918647226621757265238379641080176892705924061747382338244303977406660938347059609623823603000059129804662085116709075023406013769761019195854962096137972783165669629917914813359595439940096906820496993805473598628174502331252803814977757190108533902904910417212627491639634322022272893964441589952885317373075532375011607284569190525899369425099014986296302301084284316944834270434638844776945889736866086129766565959424890530467045787647440990970694571167065132600516248866686346048709989003938733192872370581261884580585215159386822312900620117134015039428251729257260129590491631320850138829546699390096731138732028277430899290172231072982399449414424336526830067492676123389806072826201404344552471367001972674671625215661621777320872437845382438741892074455694449476948971666326535283418871895716746584950230264739731033232628705124331364418092373090489936586842295432982839416208423261903610091120011356943884455281425810114063490824893637440894409186000853976933938954251073603764636543480502180781221320446248224626975515445485594525713766366677073536261804158272432557966740678169993071875581812561127269728673859806920442640000965796407076930040878487909586248239476696920690929572220940626858759066174976802333744593402462777806398891668049455506240147914057903256371663075991468326502341091805267501856382395993139166110550998390972888625063615065849251075441852272132760409557260364360952780992931278741652475754615935375898466837838073100546710272810470916158650656346341437284301339883528155254309459580249551269043722224633590031107948681573954639452743346021895928299170225242882989729168621289869628342592295887497577337155237732955001620519111622199471498810827438716919956908937161426778426502634430095468450084293918629825061999058837770493493163775353953593542080353340785772279152932015605876090384825468050297396710313617677162453979676801346392427779707081329833104658117823307392634168147182383602618453377240528023279802166228211609138135982860013642384020876167914100268222896738032816194207249738215876324180494593499435437782282065868458819627992507997130349076538339739811198378665084313045853704115752217891584556710395752629059635327839057610877405551600723415633111246526861743745325741233434079402300411906610838873619138055445681777641315161036689712044921273283734712722420035130778130947994746630459295975276798762203816498402697825825548363460192652891393498561457375970766644356540713821914692275624026934634821837160412693168393468748212141953438465484768611189251447385909692747538321906322773140371569047668848728602427496926411999378361520921126406796560243966308970940604895431394715877328531118986574006298479801742435726359072803902297672389198729918615997732651358615302437850234918237268676011563533768978839204078756318319710720168129976713240329932304887872816069070167698218249347157830125221231152931104808806711028109314343873160048390007316665938210514784541734713774836614115490668384794778337483614410421583146333543266073754187208706619688736700108002132750063833785820864273306266788216246509127784867073284144694189152904606613262152772413806062234598028653738210051769076914812859189741342754556553139931338189285511244394367817155478053677795281775110947203928372902410758153968534989185249726777754477954256881452577872741265816436772282202906818266393339182505754992524826887672287681204180392652585311124582493172586992246839678864081565046668619312891875709369337711179130827530709691554691398671971930394140052229841293502782815919396448266538556240612511630873514577250804252674528063402247264850940888781393987809914556171105501046354392466855595376337700324261295497517991236622434096392878541923441110961348388124275975420545457456141615661094176973468599613461719925346866563002995370184869038674295856874703775722574257856495365980392826984153914884579575114759192363600048156784546578369431354609284983409280547360277797164450318431434479176527865095389645204458515107213602974033322553313875515065680433050571441114566758243229117840562623721890888178880848665310438251438962833990911437629813869370329985571816001703328639860049056180436828889761462973505386579138076370046126691347265780792459155293891806854319898376160182974950404330040843073379977858414335123930622435053731158480505822124074950290692958447341418070058941393612336233200301608947868253062583775274643572498116671312884082991385911439041070759986997054378471253831981024981528761365964405795258642399227010842495279640884976451811600835915545883337115759862595790342624277674601530782325402888694482308592126737156613695895634400025792765230764924853338144178358636279599852806082283326124578708231200865109973872442977819300996899652598554072527639970656189448502581045716238728182728289051304392514251724917170716431011965422671682097595336579081669920511926528365026245271946437453791829756548531937096119983314955583208266706694074009224729117850361615464179734725638576970294887065780692291674691319737663707978627545746476551035563296907080254821014116523602936383295294402170275024101989577738487714815956793133269322681632701463019406747268925578528119390926598921849142916093731815167250080830121864100983087094343426801672795344028561797895537176906919513392937784817331669113822376372190444510465763392419308613763432343638812815085866652252159760243242878243081418137186711247824666316993621294962480738040932285058122932220162545193582475551663495568662695177853063430943896841705979714476371446995766826498571147030508896384475767934241798600712058504424957464073293361893525763631349396896444144039153745637361851707080093167471154984327999944778458917593291935719238310480674649109318153125524797750899365969579437010603978789327215235358262390835982075218632651574126122731138996831375333194022577634386751542014347390866177442782035268337251391906217349247910175831386903345714311685177654959584105548109540535193840642942704817698112589712605891601504878820798657177944503155586878368285830033611385854650247791812480121080168586900762212763701285805150260235824145268343573902155887168127115863067555015097221073189749461624899734496682470847138375994690188418268128131431310434970769218255162479485830643238663498417944656544109264955743219788442183419638570796185604342104156441530250290607714211454525048027297750797352869402207492066053164936170115169201094332103838689896979787986389889815029398005906337016452375491589642976880732909882292802189138449339594206114717115351117886450549967852417839457875739555695549382472771599315775157814502384109325141185216844575732671558162416270613649083353419056364886913237710292846000603644362374831304030576118048083695830432872285281795294639684257854267221746450279497464876865046654187244907018695863884850273595495399798813862395818155955883600652586838875681901558450021189293594376037554530946747746935511469565255014210765840865859105432620493765821932988749185917121419655039286151632521992665185221883045882546048213118649210641472480038564761645479000637475562959949171509127965897564840955093903597053133386730288777369555686896378256366036272109807013524959926485299238928127279442859645436358117619168418569737909669116506194948263787271811172488327185413972492583876911699076859028345278835466234888046760059534664336222568898228353198636648704927759343973722088866555234934310663381797449694019777835111073500488519552603333442464185163056710699641484369132050634409549387472027747522167533619174322033927141149986614324186720878395070602252476184561531882036850135792393333890299196639926323992400500136463923274508588164594624317334313269370297602644558948138314266658020027333220076365026479958308143586773135683000129317837059481174764787112056403094504793150975127364183794662652735050936126274157470168116256420095974468089693973511190577216495663618118366798919195693427232779104351358084382983834754671299002857001231406336051859976338513031100215696241437315278104660337399391365632355093642548057811531990814949655635880180599801633489809486166454888092030188668646342722859706007696051766361449007361670269797051882094316106475296493351365647023458705180751242069447197520809883153224200926004378762762230951732292869781601515180504666848691455311987280736185206491112830167333877720052589375608101964223238268187223980803652512312585586433733063745301572880416439957860606819068651748655004147322276746321078293215254383689082597689470123188941501741028299774908009726125689660544769514493743469991861317630824340755698961880172465417746863230480020792954886247027448536395633309350715641896515534491850704181259342308900479248156001345936022234032908541066512617965473686441488139487379332545242098500324796271832469649499734057829511009980928241137111437578440884485593436522449273822665550680245228363659487117247069791288352833467407091875733093338368220422231201219095739342402702502365336158364782277457358397275383265674012057997939532995876088887279629585979282560690967928161483172513906362518016892390730947414187821329617326289122099209221571462056130307603829881054545792845663670606289904464545028840039286985126092690418087685043734115734710617957967749491389843698449019126041882507496034147741015682668855757579631622399612111680050786210562841818898385536239609779402432707145603907536135429485175114738283140986677272832824868329406755059670094246032209711482376863006064891367437394788905293579289820074531084728832231413824186978391341063708261696027633038817741632273499190582463649300236591071583482639176075852095397788889164524301240566411765962521607598185852976946877168344493565528271724924445911641398813250926108149438559673893001970135047817489345680364190466693627263586534266051312703431045151864369638704425901869413484605356568645174548790159233773224235875699842712882034044152981068482825426420363448261874606378681975917425653329884866880786033322249817025058128102306490156246369445399104578277962602325314558774526619002253479619901941738734761598625377923886431702497954144781894513610727582435349551873731411805322611297801932669036362630671408764976372995247372023704438996721886688325441083227695010307108903674929572243350208133574859219485500658321471966848422611107093031440532702180323523778108124768316071339619573594422872418917423238196181293231023483687549036272133731589965686499939675386958212834691974308698872590060919871595363281108391110096920762949234086817192520860423398321568558521421930489591184122869163980829080656790344771176232872078820107747419611894555333826360191838915391162631604098207181273380970940389715055371362090463149881585733588258516065634454767705370079577138312726869730344920983088825159899029974331428373859430911967915780961848902415891447696199700388532765020086905275151168778708005302894727013865251315186754352582160341796247151776631674478613722159174857661187044926667719591941175074310102449175671941970077085610390087405245415154474628268611943432429948660867477687679303953626770129054778749620472495181160771949512377052003570046077629324165983885228476754572672442997045394808189280829895350984055871155814612093718704970716381646589790421835813413771552139948555229654126279278161205543800812581189288556908697464769962201300305504779770856439091393398362943068907599593096720673380845165293082853697479436183114995137459264761023338718189656547521519264218800371859703117449466956575762744618474453235810706530510005650417447952941270687840641024498925532002925167142061637827543765535133558051281470364011438661443265319265350887579534447456142349703072037224985266703725683336245950720382727414296735208157541622028583832000560650841853891175643894267656188490729345586379847654004546645183490389276312635939594036433351065053660701993577822159773430204534655932243892352657568097328457637900676913267324917641884534310443856010385241209744624169352796513287272742055704456380065494427240137877059415013303724700511510859983311454211396543956074027729417618923402062584334835804430831792212476290131591269002099367329732890847586867372534966928200113614689524617811347821873097723540994147992235426698958977080546630399759606167542560819448334853662051946301000765303428146867611823003661970078517293632636392369668744448112773895938871008684886387919109997929967404599960344606883879012666950246583450902558607035486892466057699358399277394574787632762595289753274162144235797712898663322556176124437104785153343039404332490873918397187987009416466504708789142021503067871767493101059756318144560137435311749140465138495542717896190002556479706553840961592116510241274450386463697397539382929707475782919759272682904877259476620396650169089014551319919556493926294105649959715179411372011810257416582519403485330862989659190399924707385730609640618890218476352979462182699059169489799146381108107066087122969873402172817417178196522314681004407608193554047743938518178265098866552536367386945619958699903367272520013677339073133492195045089719193238114974598623681749947524417838374341770951981854418474010495400641513048681059192438771887198007328228876349838313775648324012252404142508259051465990268117341001256105717304870512781535696913663943620761614173604212787985199209385945643721705497483636377059901076480687586580997517293962860390372774378193514803544464894985311126803154695182999056606995064460615657940375073370064104389582740014183922665995215210635297456917729113147177037303185933079480248511785724042040799617431385895369051010568011749278056511106989191703767110321028741959353628215434201775421183843804565637024925398766984718816723415949456765345361724684084824081511709343972011784041253596083771367469130586219542253954445312253336079635041049648654383421998436625029082573224229132104873072570370229376160765224841713690926019485830575233957744059989311845630241851902392311362822703118981329099799978633620540815170676426292611852418622899415912867620433450774596738346018625091282840391113065715505934039504291988775327508438630599358050434881580553871139365126107422523372784805765930649283802019684024245796469358161867905460513240881291422268555238578814524031172196027756176234588532727134258949336644943146031504557579415555498473405065776332278749729909845548819583527059580168824633803493714770412022799611264178200427920667389590739536271355818131074974101774940738530265518936924380619884033958665239146148756322227538282861167008569827109847223609076485436572749439441392109504856112835826596658905745079425624634357340219091041763833660589533994125279696686703966502249182845612884773313814948725675259924138765197392554548899946291560937860850870656594278368696954605593834274600751083417679809676613404510925063145071273477766800992649820017263169449420472580152086203333785132356909955832931313492796086128079244244884477170943931049409180253033297139574804348230187011254068769748300033320228046046122596077923741955888800921072182151304485223966918100533804232614666951228310652760370510415520650995959108043452035458429834965740962471727907972937322442106880497911288301314876805499446605266640960746302415746086313817416176761271427147319351414731066861542066942408835547910015041565504118933865815781202010352740475839254786929527379194550799136537261013668906400347169359734209406085383201623837707047508237290472565543614704235366108099036030575092621807114285871021490975703240712141919051485635736251852446130383363307923139219765597381144529995149334458215788458335854956931227012981866690421550106808620403186652164655312748035036852303331682371947397845304427259217794859516657644488144302231773528521445862378837837176295139551917375069426578770298578283369186140795329196333067769882519998912786566163377476864350510729105603332287664185955540182723384638669691268377345913268527152262600785444669319541847651154347586795512502241623475643331299424090579492841226662212301714225610045615837955465179833479102976765981134883601098537585257116029634184167556655358333255044474609662866519695144638437025554274388115526087528414745421391568108729988688224503822534494189007694223968261098154898676094214060503109676072171813080700898186156554450070921590493676513309465067618044551403509701383480610400009353600541199758280585547244363672053743320693558696302189305613136985837158354246736980165695959316906052827790338186307300099455459638393296014926345931618678242606390506000853741812644418696098046729479889450967450542813646697792217674689502850708208813988617850056843736035838232855671049267902760775800203119734410756007130569810316550556192557209586369948180755075570914570674483122455538894408965729854757705220748548916216506761625576950502030646336671353309451359461916922480762953683766803386619930183664828165497228777554503656034147250185703820945517377586809371028768775531713635892135968568496845580834816812245417855078679771539110884182421778021605556701698269957433198069450993509069290022647326748081421942066119434803509367028487117912636079553338462968540386870212849976037591948912972047560218671441772462397699804283634138455574615589823221552336886352280573500198775910828088267090979621080135474104017308513084961170691605416018858299853957458669337038890973587456694882892922508961985285362245146863752208553344632258572624208932237111056728632873065253752385873530916784408989811578587914258641980373500383427643399815574640572494830223520994944549167442406211972965728879980637365930329428135400926042378168456411963954811999016279903285613475711411810375392615939575168219238119049911630202441885253874499719727872086840252050626835011600032311184400906274801881882154965853752467969784132151793395112262451341201609543825347215152170110040567109854721026716801961842078136421248486740140462722360366262547632317914707090356143112677083598333774359842849879080017752893747215153195202864762711285868875498420119415737147042211418193210659862940384454424376491101312263525327406294103265675674611839889442783224962690373947115945774001274660244008667045235358520965156286137067683311104319824139000854927340064877122888890485708126976401037036917023301048798350204932999329664750032989819076586888598914332926753747001494910288550102905481106048080885771219399762759040767896562234158296982342155474647131503122159700688375425916772006019949590611937777988922392885611036668339242462664217431337768997634836260547390130965197562432137830517789861606038984192925799957784500734960330824271471204528041324931879093886735115143104258251038131582934752060453202191712749570720009001833242859457894588300775738001075947361881729211012196579853512696678218324578433366578627384514592316359496323311427793203929204990131890917649602825887650023789914987077885103865923961335820262213334364729865701978152140609508548976975035187712486793870990360046360979942875780746731644549507076089001961003941652922866878444685480975831925049205064934453773035868253569823263968884710044725723310314951073051593697903031119265778923541310479739189176876482474076878111410875053022127496540375331575859896413228656998039007557680576400888043272081607495747205210107134977629668573466123307640661065665541454462604305110792051085607921110286818029612717527214774203384740562657562811211801305427857316638161076309350203746517650814507967212455474115675465357978258351236089619254166033196107960474332303232804514983013100536697754360132754295641173612101390919365424474192199785419314656937183403066108369582689496832925891635829956092202758426760708850889224348349918949567714413352553690492129775758843226188800083607944725474024798506035363882673393106509126173627091973202416382961193252272977698144199629779460294373673738328467108757116342587595534058258087137396478982970117770256709502953774650504770257831897037500304815450857717687124711744064845359875830682366654319521393261587052988527420473786659762779173620541522987987599918552324319203084241926848228896885801910801263907357979491651072687545457346509473243941733085653562371231445449134828224144606635545151967903594782347480962676044071642939924340301778266717378800482080533335383367806304384587720161788178618203690533639530470709379083152172283505356818627527632637989361585647603223640090976658490893963959998279036499214410530264538363198193404155418092271634907726896920292583145544061707123319287590405448599046571979392351747746917698477613497664919072739988815971598943943551141599137317067188223811773038179385524624996773492335406227590126731563428498329031989136804934359683984678436794772220181091420569530696831877937689467806009058744457882339783534261652345173654724075516841793685150455876197401829957612368663895877534060273931482412413433451968564494237562917085180247242594839769422835684741304938185606272438628456517877643836410306282542132673173070508434339985737908487485310369601206240322561719266532958347135911510841147731441841274132983142857535907860205429538589147450819759015414435161666241183044369568251544393374285308637200074824911861896753766350854123714868566173309183997451306656760669510121618659937656951573455677155154114065004130122715309115179821463889547577700204793685877895509409272455000447150184136528379744983976850554748352244770778098911322552246068323932389498911767458192937154536120202695318257868715875737952298948892921730089312121106774215749554569734018437282468389801675192121045105575519360689019677576955546505091869198361204601876311795147473011557767486630507697475728371169142176714465407972573108014260888373761875248264311669918298377981450967739738757821105556662830204088795607959887979224698779834775382746441539838729318466605272314936748386654497262579013367215362389287337993721916678793339334400681409421021166440967492324817099732630953053831196263970960661750448281063534985440090377089448384669186414071515503827285271314701955701648531759781393022721103049558713827111917313554501552146051027001198563695835602316068684013095138543343017476752522745099862439752113007321729967723442010464080209782473008379118720931036350375799804512146740811559860364454589422624673717482897186145766600158611473498971792025301295689070549169727665259169980055791476974524518001981072896635521409424648353820567471199769988840119656658720875135835699151036072580123133992081700989281585044288317048762357146139995923922053115906341566869912386722907141405394585001704655296948384015201913723215092428692052379403299656134336720796094811248461789233088304006857261166138484442219863905442995261146697647659025858644735633554742880257756012442000355156319685901699581892145074335910515617818157089358226236397808213334634678762145761466520468686068090600493878928081228281690388294525272080851708658800377530697327590085714106813791516966975242318803796332388512245029238500755429023365412269886693919423960501484081178343337054961154426401400465495746126874252625386240007531870475857329313274827935209262133509060199744038707631791885587794158176227112453718715807200901111856160880193775018172902218297675245058390015357141372211258482729230846221578227757793173567082959418821456013517263445106849634550205292950155358858492067093475839762184428517634721382705924580158814827536500489154265017810239849481351716278997884884707724930478215714327071452656437804991456283503096058390391973079497712173764466937863577895737529877158840692109692023737486771016760026304049760309402595444683499988646879324328436051720250154678009793407522857467220823295893320402800037213461896698024797998456008111937526497116943365508914301824203320395040902356641367344392275989874205967775164947824267765116063186802754719089287992815181056480473654402641965530477222436999103905491828142258919505913813391940752947020902928782957678546038465340275364918836517880165492780219968496693317652187258376081272595244219895589337276164261854512241321484934302565496705409232132717793391184341614405666935722303342227859285759747862239392524815558017089894162836320792629912039321078712523163316443118412898211156526474751427222382383716272983460464510326503958437548934260684423788045111539643446414284333913400509188416508883509183351399191408243899592943830850097057331703256857479496639940593097255494717968704539467577347964673996385603138203913451182452431997194721236571839065198802547536698933954011584835913143777360595649296712430046586302644233176447032756999978894332135655222256148716877388591273225422323519520738529793107672198707333753291037956408401796994715505697133117503851304545360749914264149185134569898617526866202232443942195972561314469998524873972913870202699380954089393055917574127452094819187304248624429146705412597325852043578848506421755280325426122393638176208436477340047904610834026718871235815110751772624954497750506296163002155316500488763497192927122555960098253442058678112506208851358972992410540658033406813720377584464086673868052619496520457134713616601930115423913673545521808780583186837580607779254654612783233712781867488544508916533472419680503286460406371494669603796484273805818224301081744752143096011842225235843977632777553318230368071346668217574763827934239777919772316245649808829015257145473912912365530456277502105231424035614428229958028371092380494198508144306313460300858457132397633904540579597330627936533595426702988321811573059760074607434048300614416081555503350909998007145155294556003621212985060838923278477244019587967283287877008475416864750964486090629169495754420966461750992079962795622430583370730747618283977051540847046840221964790588781979236823912714067851934985282767779935873330223153028897451057562634592682388253664796963707556572909798629909954830292974370451874528966632236709133747532063069491062827187945241251176197863230505988517804947000877292167264697973971042591787042486005337658663835542823056289409816494768462265951675130905745274715910041187045640528955238661614998917996345632355994548924353657432403831931939914355699766695561109795365472328170787271272531391128052748193293206933406934345613417379426397440217351773089027416727187577374082916096615649406187345885514431611331748038480404217169763910508104104882276340584003641212161152048496392815959536883786608783539488793738800608532561209796270140520615856782539659403130628056664398498039158009643378980371029090968475039790026853259496624375649880875184191215730922981863455213350218693642015433236318141315608401143889047403676733332296453504797705382529898299675718027125215037868653747161056836737072567612587594738574767619778086701384812679680290927907224355783503448120693780080603093611759858793589380433599207398317081378352303408807273701473370702641133746992321950369976155655565137064963161719769796720055286455966989879927994783657903625857019608685857508095183859548908585938102664485341937940952921702580152361689913511968178196467390998598279258611786891542007188603159765903569550258298178476145505171269052874779608325476171255356005004047284386222075239134207457058152115238789354814369714597077504931963322316646748850958359481802270385202055773928777769058981334381323031148863247867032782624276224383863331153862059910433578093229660428130616434161776744912087221094838002577692102893425110441002449758823393396216047712542115737590075654658450400207965575619684388525862183884645877996372997585453783662120368616262049755854301460999947520829327063365667993720670904796194349660964835241725135453885619226241803398542037072206891740032801792437651539767265422852472149529661565861952272086888563308952806356402743360715458516763405312055485442974198297844046770798149653015976528733736559972447978499332101411871913389513695737356609493452408990841336351555443795556888433271379603362058066455256619157479755489400846044090955195538753456739508296765315933160292136507050621112980292250872648362889584941680816382003843278947708476030591727918992833904315089062388246869457189182207993992945971188413582812397967765674469490781399421622028214576665470063782084012812137382982261494958402927634715024477959650213821285186521064419462837491572869864266276804462661482439186756707188649245454787228505656833596236551448225389838765370843999671340120955014596460571629232243998830720874444057048964217847532719771262898489648093834202683660938995217071873033310001545272428329613295271692309432627226403110849358904116335088656439476472909111850146763375136300348613191507097902368653443438258835388661689927440728357532720088508264591966496496197093182180206451911319886522738666740110368321358937049383950412132625572209948028047759688836010978550447621543497805531441383857203824908980360215457858393678026828803705414550129912783507575837736003648605934045374504056135786035584200280368577522769663141808391365229553365773046438478831314097638858136469843517660702101112304739428541791276569002225791369260210425185853805028099209468638325351445604003019675682505950942506822810929059653963935655919888330721589964298619130175584842801279986616544978846619537288235505613366843672394243874681351795265438109713770691033071087025893493714489376120068794720795550053931185094529942220855400803657674839888857742854101078974561017884152976613530025645658699584653187423243387379091099972777343300448331581097885756691267375815775322104666069312627717505381198543775794805378017613522847927627158452045277577181052292163058400546285624115987827346782875857908448350272500135601760266118805186021806989076858685159965132344095122104135986610665228276099380410531108260622440752703679493221184416254073478425813411797245358692941854254209943581509572295878533085056210876679977364521334062612393684041416839191800062078219108251873033750001843753559765929839170001182158469211417825666864595585067407216643813814512193400038087204837735408720836841269703519579991439747887171397451924608793437909275801231077460350257747636248674494747160328834950242442269915530412501466314796617708073615860365193671137772647868903667984246280940359695870982232628821389175458869105537501315725359714296055307764128146728937133433665382801574550002209271669314246424528814496409975437115515589959137532589793837825685426547970999864734692598152968156860893474153610989297153933244856461079758635340271001373085363746676993232885703127210822938155284016991742492899049357746784299649601891302268410540881526901726203533542421462593042381539956375544921415700473938042592368995098511898401297065280338012015730102483241981596688481171399179674668641926698262477729653836090031994276628861692662109807969503732217610257695008662373862924115366201895283975282531443712765008514084599255014677341195771222971630817960351281537149663153146179462916053187877939845597314342643219235498783144982654114166346771298580709628758824977191339107528676714828283965615660223370570282050197773259288962277375105299474383317413839113044487376404046596919005559823127176294109437998795967901730849584730973912324396855688406213821862199746417232426141859603478794254592858071228562425946480229591794029513164178729814659800057516217577939250511529225315155347539634727136847634736389147185151660919593415067999311229920480960208371071163292166672950098760348894380572026338794239236933755647195382120748172910579064751415854271077702603941879815116272372233985805501702845853810724953974465553700512222791871127654049505115985778275665257926887045211738326203497792912543283933938563493596254544831585690340464808462462548622726041814708348133022527089521383317295695249653472623769790252794449365755726986085098551209893873963282048499899011561093049454537254261292453056620855524550274745903641406297875230735592827155205834906790206158089189808854221722407427084148693413359848237055376904306671427034057677204710679492052679186423170559878537933858475171091338339291075261382755460827893726042265020847051558900169556630142933383995990358681726273678050710833069980882818294659705303221398334567188131049217332338799307164845763939284154869518402808483969096987000741264126313723268351607900633058422043922185818842294090338357673545757354136151359148060647027420745114315768980283724635634172584697726757951492537247377438472069444836065971982530387493707035482292160624341188818760479341605159857925368116963494964071748899839772173937990077192537210619599167247732045209846729994758729027887817144127654520991002835106148616331880537256031903753525809322001834708097709670780079045601570183362820347514731091357619479942656916621022065714589382664581310853771728994520276214532281586736347311004180661538741284597929946582468145715722843433505948947933782217287165517889554261450380186609503984352387318451218813781615906536955607403568571482693431763233290466325948804208738955374562256219146975811105500863047793442987655107926292215401478209123854190389201975996874425366385317007201827466748165765591454325411441150645828747194923503012805405399932986003923814991810239577257083496335603174443871075075074064284873620849680742951545907105049429299038665135362286611760606319853045846633136797149077700473086367093514149470226313949014297440942777526532135673599317724721311002491119962966818216355180934352523371908006942051618782734740620353362845765715469578919171912658922948915127427456762693818081514337418675617383210552760848935090775826708604690690327884042636482516594609520967922633583334371152656486988396499573987536416596987744748866526178357828764467367891569531771027760693333424984681487892750052260622083150369302806108934275605314147367908559246689273171304089571276667193848769979982780353351523516826356271042369215937593326674274927698205017525944962101039654409312766269476923457204477954369197043128114442655367464730853598008510140769550956779434743456615474975076412372541546278726967810365115351651453352683539766929156099531088475549787437334581135098261424396781688176549102857589816756367656917449400859294442501152217328741860079553166090612088571289389642877072280604106464795250467792647838141097132203167972621454760937044658688957056952058945336781116640709569268241832641849021313025829653821852488595309761882048093490643020706777842671559457450374464603520539875886111948922210039862300858320117145140628773863712283830434340896510225141577072597200853147883709346389008529086618894691099616968228170003465236874062457575807192521811525621394760785274944024199932160905892127914475026993905698602571109079373576042279647128480145935880979502273806428099537560617345823905065646506623562906255082201490702224559793844376621248560324140834541482743023059698399823296091019938012865219266958508425444961553181218884311078918671973779410015899250435974759994137726722903676536506946225390152191443812553826565657296083657319488650642379696498363697607934751508177854303214860726571386879917119486917444276697854392310299041573557543049742523898662370205099674433073378500761196944646510111387591744499541224637119867941488408972635721241319976775520301101612092254225994036299089174343902801730143413810386357214124971257703532648455926720515148012226321132680085882748454157906726629068168326506342476271269803263201011300804878052504634124227152422194322957111137553861627274619378582653920063147955518342884594714125083749693928988390465176358636815711956927071540204313541494617956569412155688027264926436281309146085113250946987175405937228969626482054490622206180984820699305682600532962575473759867951093853718039619077430634994171622465298734030883970815162636140970739319443366232188446399731063442407050211714889532429555098544523372326206222589301100824815763328360391655372451243509762117389392323508863212203060218906426829541916152700872136176780686058742270622339353632564022582764844741409096809374537155980190020250289697642959067824638594298437876202295135932405961735207085918546047603763751626044831568630132314489930436779592984766979272011509679603520219243677320120578672272222588675351657474392481699543714560350402996258279128565926350099801956830883918433223001042341889602245576513078521144409207415440184002247096726121003794035633576220848630333350655324743867901260272679979522058297394651485388699606620692268644748064255530753723668928155213879592653476037640538522850199101761698014008192524037758189424345809022858284240383282099883665673084243929004157099051712601262824382187361980556364228882152620798350130309616116904521191825437429623049594004195961240986197742529559400338384158607104782602936568285819173308560240963769084281209282931881177984077179687897585117423934620579805350960394044926762489130254228982060335546653595879740174059848064325775943663280792401903522461110576754357311660784528430518884913982875107000266345655393090219451074494475838629896408793001199411009211969652602184403504687373533205162162445023959514050251796473390476722941394586680453788584647817917954436714034455042359193732637668628157668363028505367883701794334403166370613564635824062887073393173885380103144884442991964111247807310152667729411575370791662696157201279964828698556680228560393852328119787183634708188595530078988802141613124640038328618078848109351661489958713518552930745939841628954732837799792447534618023738464206136932394415426762127526213282900954283179679855102403819538596120503457960030484182669137385992712508439200374603145476490257531736977255111280268869599942113196103961497753269948614624064276459521227580958608254670719306327097655812376802091738138800787585545234113533660001686106250750760072805818198979598452318806274204992871201909933330271766704254152464292295887942994349403963491787514041048370016412360712162344218322911437454629622584037995322079538530281151426413547332622501679087552656100706163707984801975928113492250347288424944014317456790087881153558188800361774525544179701952737852930247493022514323867759734060282592479491819574157806452932901567905530854423913871628405857489484983260517248925908246518449741734630802899479985830832738825638439944218523067054954450792431009576289958664181393001227748662863363829338080660676480295012974685407490875259235874783442745899505863970774175034461328341811757925119883687259789242548854305282244090715928456266989703780885906888365879118327668598236977872529078056861933078282832034388230410798355262852309222830462546852394765550325616363493206139374611145565027376204938672206704261328362612133850638133004920248067046750118018537868263617806843984719784893376270411353055357683047796434890123036689524882876158339548195096225697136954960994040208425777717074637627672093724753037874995371044307187623316751541333157704152294072687781374097929687099679731761177560205984487448037488193876701994584792317435809192222563028771972525600867672153897646498144295760382744601848810239064637336060291656957272400452139115577709158785966536167880418664875883136248595698824525632603173495329389258616236281176403216666418815951194963683664851512739139734116838447366549852204533518743952468194860682226124608987207516135646629517285986926859149502072883397700529527284517506375105738765253831066078003048181024303429708966325347423515017753407224307438914779476154110339650157367081662380873001334852081135912630415981867552397863971786063339547382983634141446859609309904593852058994760050295594204267056437119956868873495540160426523166678468432706848780572018059502536379888823807545828867752940835051835358019745488155148501920483185959198491670312035935887057476566242593396286004386211015378559793988045800466257191881292709167541611983787459406077495674547037635804009213230431406837073838004077260605291320469839807429631615198643250791816738778675743762495332886691402869490636025611575847879004647543165934822671401845123178047936114249206530238554991469283471041389783756752921674984552909527958116863118226511031667379749382904239770475762161394413312872814254249386714297203286668125144326001582567350259623556891233519982983562876477377816784336246059938114873877578025588912935090277718628307861044060965136699063888607476571896164629837789162677542940252600132612144289885089136303271895583524374170660334814654642101866917074257496745076245834215501470051663927516131128297744281787868270816208704851005358569431374041603011181291521093623514446145232208232002444242141661873358569311666621958301357276407793768537384360391426815222579648884930218753598151605829020935784323126635839729485432174009888006098465055709656042867787346318199634551210398828469133451431597452210807054919390006245201744768164297706864667204940117828166918498807948777967933016516493900398039668225142933679218622036405625186904246816271058684551974133842405988717838524534589660701656518848059416434881158980595918801857993647690461735290872690794914321606746312399839650804477008270038179624524791769999347223575425485571365456890357397129801108623676586656475877834053770150912686377678403876645720235496330816358458918277983455290041403402301280969902881352079979493019466434098191390777893568399133922273944004167150062894168802417838180654497213788834592059216388782869680910603831466566000400561810181096360063131989731538304846940602314250617479705399608360172200024794301330887400116192384288363588616152217524570936494178957598791614837930751753212617456749398123411264379015038056905283695965460907817692064820327959709456251596260871811900269998809308693105400296983585192430438888625191208162149990262618025325053105890310223000397301804648483195472701797662246534720493402005362792170398797607924098364439540941508459280578253633014942776496243132886349469112938631072883663526937823367393720953182842670838388472120774266464510627851951655891906800680767298731276827157636264591447492195621905206402849138186827816896670094074158759179422635076279532324963742242999143754646386956160762571048280466485692062806684488689229810594351311767555644150830240639709570283513827831206291844650158134585692795953931172012602392209874900480980404348791128786377007406483355616830311897216539598323831833030380139248872129870421109485904810644754241362697679793046771847039090791394965320384107603657224294303891260539049677700716231625674148227433258068366689112330139668232351777613796171187919629925394994422856462046552272880990944895777938289114431286611738685668343717842988844640964247815611139612826477962072791282286134090861234573590622896080680216660307589047202558120033326635976673426999922476719169445288393712985584493665137855620630154609038705753352080056416752147905687412861256678396856917005259855546845038885195725780573332128634521028788880111467005820477202556754411271882835350474677826410840954943366186470773673326898720175900756418558841695419066202691644470832280151212423885621945024282436448585668506794855636937049925600109295453873292557593420498287716009096387468256581749823050151524163364191081295085381820878535312160606245115130366575497763238758403108611283677046175667592691552722118098894392095167585901331166321053380527593844615771463638338845383571795523165542337378199111709061043816617432632130128396048356978817326951091562955511724650459696610686114662085818109424602563399509164783807068951186897378259486480961399997817082404959206559431430430048442059788764796344272386601491095097126595936298772373417671936799767906196011045988750842221908083603608943362258470095450318915102869441135017108743129900045204623126259170705297424557376072639918945504080827025259325229596636271151870020029102875848891648179656814116668035821353263977068610052145934832429930015756958372169416162645250903943005321728492143484834823124834809021478667225138433146942567844111812615013310582125330765055631269901346990065630388937416904126483486913169277100294811863979186985257272909571700206404623294519973318500045066496599327919201808692973073295618191083577533307333177073991743791421163156092747263143230699612799302111123159356995530253352080849755814834549278842820273530479381153278108356011238080254572369314408465886607703483983360903516450488865172703962176526157414198389961845462616085152374829247000896493110532768075661260622778223947270267752127454469423319446452683002760610264771712750229186796163776673191902424165952229313126178303926895700307530484384635268155199114117800431176243469426791397902847869227307136722505115841283874674719885491089858464194876684486676170234324676214821018421132993101828617122809814418983393549974608317461490221212251472658845117839235403558114603791744937695358151549036622634135249707115089231151905477142640924640986836519031187203890445036194563178612545391723072363152006932446437237404470238647599857370064044757324405533074383901340583183387420580273727446577897248448224910147246386647860955416652823940251636548401111069034112185543799650582980688754126027727687528161301466235797095793799637747531834045336951013701905678770781121666760087676000361381467610106046470361374258118860014810313572125478703257593294847762417855737726258238877329283023512519558007966581266409809636953741461627082595578471777668505815396849325015947411583474461759435671080114446617239791680737375868377123564791217964316921970214861143744965649417085694960409519502965360282630148196254294768755937780845997448865648272464161020524230808495348042432154896376470030694277405061941680922125005300899169372661562547677016498318165565816256183181971533093460669298652184304510792288401357093964760492298905392003730224440631997684212948747870182679768777866933967035560738036872798626658886307472700756767256542279085705877541040453271191760349202207307354047213554438006743694334259088900957629141502213515845337934848351630542680616607907187159117067602458945995508546026360920145978103430730808390297001320385746588214524845471846310922656532736388183067216100263505204963518062041646579106580045173640106800370863531086832116498507335647023372980682043951188574160504580615496990773642027541084091963095144907766094932289471703596965532463559882334326280696973871642726477797964399211461687810831913058961178025089795431964744286419610112200622259021054604149531273077666883990066469374586067236792755744424788380448859470057419082359703456777633634781020609578596203114819834867507009991873747391630138686204444925880941077291743610069850494457840721695111919170866363343604234787269973279144819372849271623760552241126702162599154154472842826129787206199050640748248484361887442665273633950953312872483067266251226379148700327105707250543365713807719509015941899747629472754717529846201656385580187463407788473043994148431928327176457092777786723408134303099561905236888905842692966317376942830201822157365391088754640314327156892237433617483462834488239045254797009604820779173776210642761250646965928809010943229894483569772390945438317725749485111464478314545496727921953101660225605894935931469722142918029653899578755106677920312667793945865828545819611445609600190576943480478466753310079558329012639952696204063057975926939438867496935758488802192859603467957226228527167712021009992062838030268430002835954090871955508989978438066411506409508689606478355053575534531788420626836015398570227821352699775945594132377878729137147796567864913026966343227585838860472496916540345633346011496496999685303560413926449150568338369249871771730585678541944664710054521035738944259151323579162038270591595703364098451544962469207260773848554240492994334390470299129455672363750439715805578895954735343797749970978663608447291460426355056218628806506430882141659441469201873736027912241814521248097232793384066801474987282623637956504254256213771466087120014339889669485311100355342694506622783179654980671773855437287781505081448621128569105864935247386368804856481189820221819850279979882888113032413857602366030709220061592317559255452202702910183801235999218215065170831500413554151370162430799905803766543363261667841921590333513753755856424071125920196882417479337544922327322641123396666917971701642441533422339236891712290322121832201909178164136661704855768423769878437059057221371295338288645934620445378896476490595352261805797124156705921714213731872273861845574549572480080082784182978352392176468407884872239184141937910275157305428186836868861176828137448808468848300996668338635548087204643796673050270265864568463348440063915170854201570224321955167644871395868143424010400129291067155452921108362469897008393642621912061721233273554514099215669492450548682551589690370228198819394570969667055715069469142455869352672531735433432237623429454029330052108555663479463062726517782911470218611944474334404049243337856619467046051661215665314111351189712329074874361445751157526665946468168803915840695337117050223918782486604754706008853463832782544351798599995161915053469477374046247596789155431271932403153742338032641602760069784066991049096810089253858771984447485709520621717879906980858046904901076298907791060440744718358158899672520103346476923384304182569627636071916754469831000071679496223658190910619107211486608222254340658619026803983534700454752082997926831388579659773107292389838722188259711295141976835345504306695163452181721307638011934892054765636567194609532707756209397943679859086222773699402045424825334328627720594530784532561942053870048925060602143298035592050253306837601053249896791908626914190479514654923479424337659729520654053180102896493946798747367497876969604462218539036995618569583154351616959086623473185918861327902112218588865515022904955716684185246763806069052018205817243412365481551647732091658692387550118782030463026291539253254405032213716060831685862703429351762111551005382706581660656159141551021248999383250322092749852872525402214108593251130913404633542528735080926475005065167649133071590524010812877756662978786108273926716240589015344467697542481603859562212203289221221231725619432011769190439608439261049307961837553590467996184924543162720547952483489166781716265344010422103039046020972855471764707351930753880409903582520023308507624243790487588741599901429121661921601599759466459960704124819431544469312307762925044832076754815841691895641040865907430207893078305836205577983371910701889808890027164435556983501572197850798939709048522063822575890723224066945673999717479880780745975838524003547822646191673421827650102656370293613081133006843694125489395670903571657809924247899822849091412126699722654987002014604516973451709862534409473753831747450788106148146320280690512816859862490198509753699423816283238228002882447240275147468409092674530912631560373177350899921540678527654409797962931717255157009795462619145514391031238065805956355253044236121684039098187214697055748126330373405692198936433917277952535211724134053876529310024976325949686863767790246984019164859648911549925722654346236283242514315607781781649507757333867060422955281434172475043943838334511904531695103725034382060080338806500069356902101443320829901061885912537187714388877629919473863337186226331290836812626205723606742900047212219355170893295545497668539469230341745360113986559987763590569864144524589718102365763895986879797425242579013297666020164571629273154526719137005500744800831486767360144056378416960461558779830177431657340785143516100613072997828232879114021172870951327914847452284498530780248520028522152784050282040589197893511198681217790360110926279426143915816683563073433019516253000701080738513664323170752779453276632784149255383482645589026148933921460831041767685980435486010148734582422975738377113258926441661504551382870771175735117247473353675472827985966549560217090139336618565975218969604948464494153630431233412178870037780780566820845700278730052215148344586601493588824187831838512215168852872564787924167181296027646212516560268327843856022220102216319009649860832554085996944181358108798547004350042404044440107444694847245839530147437282694715634606162372533895314072527487786487479280567620997958048548006766925706099561035651559619950878334819011874118156909510290410629951197616702851732177080427909796197116381865110917468133039463414825234862831783859687375179936865821198805902879912113318374498171736471973882308590729034275844078563828384328908926420673220606963614217393133334450989071741896325102153878891850988384909886891350569961048187510385012843146020013632404050062050895785155655283128770828590889946650777557819123535846913288526912369876593376562873005305176013002981632574969855297663240172320073683927407979461769146641138595906767961766655354097011035603243958228160410312551327957797289226306637088351737995283990221247855139048311130753322557733570122746427597167757889698660500182916137202893359004461900978291854489306371801900238767309465079949992444393591462000808704476016294821560156812661677447574444547877997251304911971171966643123875106318907272212702579835693243169780963151266280508100111866154551588270663456952224817081893686411387155553716769139119826973320555089865489567784194527437406976458469441511511407837896709005002536846606888644466515235850342536604932839998548272488846229382455160467388601622060566981713875221400865388121954689339021965813953363677442656399519085679034432452845793586556966877461675401737692725077126588645150297912371526446981516029263429975205596549749032151939872899773696277961962867011517098768312319732052670226459818402487769128762060557867738091763034014662953201607707014096453013137266517532014127314932779415421745884751635913246498644233492958576325232494844653566022657938038028367180632773997370532540332680359519727494575553529982657855678816972948620311816172500798327703928146517648561127882345845715227837342584038969246500203929891120091941107159268930792555682096116765279061818183616966850335213181081047109814428062553452394556661260332772841648088256102245485017306448298462859131747808549245814933631397288769305578708075451178331317753848480859294104153397443028879065158115626400214879837850289379078596260585130782766137186812307647963172753841221084149051132971465087338443832942469020506542012092096309107071144631745859510769464579132090519160258268644796989332867408018252942257463880906021582708282087139961116379282966832928910760780656148982598809145369798512168175862232164179298095025725673333364215212454072323208949572864713860739100554429953615862298202953033185816819827811550747157419627152254145092522835649129493377727303548379096525402662735451000643626836743703483419474266865331929064602198739245469379856801557440989604163713172271235296757468669429562348600092733825298463744678013512579084673163558933981409928981914969300657389008768696015998508321084860789925523254210692571777520716762932833798949862208770479536318270555171013610289314913571689785006634092272903745743957653312657732256201990810180836685898388872627946496362826262519564875838310766202993879768498568774976680354072720522687751964704776122790598856723824738087065244731783651099184821201504704360450993868074172441644192349084633838391500755793205520135402195744430549633851200350777408289366140452136506590794468958015771954611082985303801085807882615336526134956991947583329776127528023330940773150143520173267030196888632377840038694119462645551531005385935115676395805357141486640717399086991647365391940432588473997567810744326484175993600629921462601140302170200689629874075431869681443505229687727472221010567838876541443757751688503760183104044256471917897151106884775144237674729698892418529627940887301579980669708402712142104749808911751596093082730195207112019594257669843315268620466291826882439637998486492554425044026265451087562742985757260349836075632465779838534270367422877629489270711939880277686718943904612119307227746828805971533191471573574893328194773914002280552374542307926577272806964072518403800753283109545014230336362422220177671849516619828534003273635604196263337776203687519384805720139279854433375546564148296796068995217679111564997500290455384417747511721439231462549175531871028494818118434077542351174222921817357873793558739094286662762710027069331622451108931304447730440190427425724565020124078104905157325370808907435068972121722586633020917123853018635165756224864507636537353663976659842046673377582809529720330820428392646457147138360027455482939369046816934037463234973941316895428370128934014577374853599686514083551721338649857751413377992533838879992093367583084898133397448226613536522607980918461954813865415954052242779780758629188033994829556937607049001752755878579420888208565510828912098136835424948081127691825359106784713610337969135717413172888469048787845942947323601749439131545322721577763821192654112112664580235845171257484259261943603963933102242592837066644776026291986780576615840092883702515371534000532499751283375531671763646417751503859780891166370480544425291147478056181422439946189064565899557866882815815651073925039500555789341329269432013457016017051183168675810688760861158942269115582911426694406868487583244669100180551764366031562124834372752335322850122853530126170521157465640924729521418159274849122245518099826742851945262550379023391849017824023305703796441293963149625442212724216420923677434573248742157489051581777895739667487521936292166914590378529444049061509196809075627060036891402684594259787198277791181766036239549425351338444669438471825936578197210043191526327176039063373470299426101539245333311680724391903850294314561484717613836478491894248205942954178958276577057626902397370094701747284152534046997207749262702495787197824978035062330773678033247719733971749012194779203056709058937774577815899018288683503756892311847677404735802767647898660983428701958247271220394610175957437984812303465289072241433855988959357279017837843673146967908112421455675604263566387261592740290515074155097486361529775812460033644558125003107969370540866806827242126957920107175709010484317271630591418710567206851703732816932999298150004948846794041017485410376218144909835636575640205755153828082397608607146317869861612172734582384220656125069566902682897932586119339271155025720890946196557284341580101146435846927892117891327850766631940818649572642178475336089540523503251691674483120836834081271885166774100693697713254214019464514321823269134173619806554780003805878083997407510933222040729576374116120523261710945174949664592227431727525697797010338321212459168579990162954796410812136453878625305219031102993198670825840176167876055411811217080270184840287706203020816188686881831352706138498221503386981691672061987433260262374869670376733447889702216835698000681945271284610787301617988628690025647762650094529205099413771549822173285313030938995053837289884075754706019810092216721043729596935582494461504744928461481457680846834167012997251566129396284421735847431854511002545518912650571139848061871483485814939815660498556540041081179270266776496222117181068674367884455490599522866394346482835133599820717970015985800006308920706308113963396659018154983564166976063780469626770953910150181533691148967969176181243650153038275611167513085512869468185128481526310989535530102511981548025408762138695008281363415162559707467369240744121922939408834927670304966460939152808231411901027433679644820708607145149113874141741709878879539114667368955168821686839920163079232904667634676433486382710524442019988650715421044022070650328055801575427753842860079452542038406894268865428853481984474158675933625902689978015029317488386047174464212725674507544961235415516496762806181976148667449765380078517610394338409084162525875709575395227839095297100505053464449645070065366800386440918403602541001062627358431794401576418298752753520980699428941892590308751133487253549342172122835852505455802106305373714721590740090832085860442050930691384902699670204015919667952778931308833407798673764559981219229352993866091163258610759360722372506273847827168321752676712990189407094761412593799855896406415896197578624594695552874343014592368355229953548220260168730708285698813881889794314419148730224359851491585869235349482402705376457474239980120383439756214622241750085137452696982523093058159932329351495011325838688515732989484415288758331350833435208676593086378888232510668863126300133672738795179422584383552133358527374359434120903936884065626030411369798784994183981250883655015284188408375548122239881485467078892141499963087298962360745664033500361182086081802176933530919285431208287252018488883184877561224769466655200876036362733796584672798085660651764431738572104863659678013526897421513096595322673923301228547116844095921543679115885206288459840399297002754705025109141620093522169566692956287098506523797935590866449888438381472610074146944019385657975125945970658856380121745569381922666983884378874223121964710300899560255456103865225900956589401849570211632197161793215635276954920928347082358560915502294443966072964154322497547250520324843721783817045029671470028626968947631468764264335720011996108089687226433582087856362111830868509621483230610968422072984553420508142487530030731566466187376401855918303134433663669076989194574795116789134625590517267773478589581842284933021229490906557663227204291681835281822759965003711667353339769934945616651241843875419511439403178970550500563460700120107996758324125789491841996076908383510172529701540361423813318294927117685535481217806987087205637282405020709032939536068762501278487306911404328191125154111705397571979829556561328513645736783226477601741030390219857864505483061448429744083989261834266993243012466791346354166484943970181278888830864000972216247933352149161297637904055558652581533387993265888779567476984582798209795934316717179073737284747713312022017781337557945092479566978392737041061426666163249061025829991966515632603709570414293217171378767288739238804408414241027326192966926395596173716952009007173743694818480593118137664186999668203904236633849820626578504072101198649761451383550976798770261918465115479666868579799728000174356016455197969460859951664577101943416511202861188398803842689555591585877805383260746100818448884324817349425252411244637626948616991045105596527116122663330932711771380788596296777599035021569086576883141976547257286300473054963199123762318288975386732575627118383367899369061531936266118182073423736102998552875411291680354896658527645879922480868658622228086523449207489817601419819160363421744784200014433953729221714611930636506774990054648420384105112770272850344672273196725228839589220642878949567364689345512294754365035596020956037396200052759591871831857794875321982748745390778778022368964750990558384546684555276809693920781313141197289123314432162393976824318327197949057156178429203126220428787591947483479442892954251943110191663909761064521528865488149793906432455328757609860899801128749489137177662446503791514114240047232171490183925967281222592974347967985319525514396181883940203038621628877579789281926907788973675014070966101678500982805435657358760534654393466271623069208522807123857676516832643264195992275368938348619120791704742641311329639692813065481190812560523341624746891928124956116974108614493087838368141242527090858328074764709278364298023986017141975677666548691912933822301440298986284172821094358896061793878694979996611146300807837355895427278423038388331897021562079171184237337058978606381855795018315228326043663000941416847378919543251339140736074701509460260980617655975285316752796600060682070523492506217382617650609988453779794314024913650038125292161254764484831979078895691712393471091455857556148482994509071846396222456722201373079372296692470508924132490410120318411862087516957835706809346647440391754158726171340472274031100064956816566048286510100375114822591119491571267192096168147933864152881373414641167743542811385065276806427361100631875253304255461631495132914659186530445298109298592550696891138414236062734322874329492590364840920934296222229773101608938417899120674957237670361726395498701586526597069766767855369722641972461382987379695468169782058403845906476305346792164966185455356662565853234479728171433934557084178335559564076916854282164451289526071820474271351476955753300176535809172918775624582428803340477755870833087834951768614823553314472149059766269152427194014638430555438024301940875829626277369011830924063535859247491450979202010798296903106544920075052910392727152373434243646775747567509445935572945050207483126022846522287954630980599821085725458235168268005418315503653666547462580480890489657042381819884695723434538315011846443960690862445921042395140238647242136701794069990354332418643730950338282205673757711052231331265726046083043646372584471635650756416338480062758741684050256007164821827932482746814860823627826727357943107708769070340380236373586570209639031156907483710129789730060559499819445076168535866242639491905426363965716610687460998253613348844546312498005626421364451726748030260743950029111253219527577405681948208277950227884674219590294734513012528975459732798213105893735322288605390342532366452212331334399848118315903350659135940865595061620422564028704353745924420304456994515371122845072871470037379897241068973398525428102667399828839546245171529670497128238314667622867046360445025573682505092577953360713213293692648094110319239797007087785154815383979226775834921973956559301088653609604115136212793218768453994371878604621546614946133963140679111315617916851139283004012961523070025447996478642931361382113305622649665961551407435405672059512740983394467567752117186949865041355984648266702484878507973096263437171101476189250520672810935247493334844610690465780876442458756886192354191733014476654470472697339058770841459958034436044541225934274927979108127197376247565170206146345801689881121606484470372938627622892402393711044166363455823870408618183628394575459657620858452608545836473775379379028552405612120988178791785068076767236680930728697160558883439982100430559414775058601112409984759992028542075801558233488037142895535651307570734673478981396957001064875702025623806870791459055850864635197774493950822169896030727423674076860086491496898171113945174611989859258196682239966454597879193189823582836962988877841438904568726329408424062569854552477499224787345597842242748115909247849571306669697657403601600296356763947372924619712456661230548176486149453907761521854373892294680601603971816194777063134790593573348513188441731461949603075335245841110996881933071504522148233825928427888165506627536968277925973120565539546860023735635937778108062618340423576820215979399527899805932490684636277075615686378404445587949756815497657499503258700548429738109555907971402712449300971369628369221840864835436426183492198120766453760194792235660346448575183730800090664597204091456940457633878193866824849207711854381025290360421733357094543110696518904291089732477744075764473423611107062759235273553839180692466935706993659033322633752527309318976294361659280026830195155947654540368519823876869437944660329422286555824854630839582294908584662857293699154577521406076222882860961648482431577736327295739741651446081678593962642353547121094355753939449506117594521128980898643605489687792576786001808148621581241997031311658435461711453835491337833850477913691591619100676908642610068687961653198715051572287963565825777575509338959792082139940935930130165605036553179201855011121601842059352217292851398967896755400589089690441692818035090980793414643159446747010901463307726655828868570937249598890690905555256355467295916390061427127635892382546045363287559335283586651234114908624730591630440324088395157255928730784605429209686555050520754992888556004005167321059913666313466345953085252855650325733240885138968297751104619826673693429927632654167963692568611501164170163280862916900312922270527276854001308791482931243778356725528926014903134462539643036982172585064570621228734970584389281958426286118552254472002172973803293186156301677464929142590279120002628681253059410775482432113873893957954962479351002305504737318370436296801332427142794680001918397308575426913265694056331913708706141193966019768541543154007554976970674449654977525270897557693911648954745100681507389341328203685262014235418722898695470182587339897080126259669489230552532325227276528377706386076037570099445300720729175876530820195101331863405988070609454586035209926665541207610604873915217496603617708431212986094453818901274575703287165703177096109372357411721437693966945516473028043761823255470958047994076240179269544874913079837586907693651583438258236448890949042735945239827739980642412938283818794005190413528115059643413274632676222489298538632289444268789461393543065248894013830533305612683917079726927501972045312030768978200438826444438719507252607255764194930571864522209796127129119268680571915725723345177322959328321623881250361410550421056555337497096757721378792154421038222971283132665118502796696098420976264738225025854064995393175345440333349457666766466632648604945845131823200853444308687916509217885768671395261696486606105530254843218080452603859597785392860087449859406529645435854106793349516003259092134552850072105176761043129075067501027338733391100132843408051973671316794812221643207138139879385545266111072787737965909889931696012760620010140562052118233391653495642494413798350394278625281018404907122322341000087636713165095050786340103415403485383941054511671443701549917893665841320757198218842728722572177701373534928115578491070137350044711109175409391118530503276201528429604563777565173249001772267982715664551017370933130978861189906976653906908345063493694772046005449720569207067908045182004943654850814771231828582425843814494827190124950627929559845466923640975671234542725876143737192815641021638900894435986108857389489675303039456539469986119819517612677669316836741835829216388880839179405119045839802641724414459970490534680436599836387411791936570982354576840502086094030343772307463616857431380999550516730869456836003099485438909902006314131306205970930159755728682073184005621254357783807780548620757465275560254556194230494867150373906404564405427098099602162118016462923782263844149316312326805719268772504810791540877113371499626176151728886451313424405870971965864705613824612125674939581108870637945733406610975285816843846287603902497822756818611647720968962352675521330878382775271049061339372545264495797895503971226893804176118249757314100975552596695926000203434066215158839760206820317673414802172541358289240101431325475126339617774573900166207043202089805741097713280402666920290569875253294320266201039102713966279773147884801386002095997655362250459204654155535303874913494367473398433978787584459130423120701957623550981639824893349806032507650263150681491551159752488827486131082272675572917254610224623809478754291216815699688455003082772017047023867680734280186655621318553248851220219785899238895184768064130524045105742716680510066407417406490040846476225789900529238913102669752084523412003200955487781348606465221045815905195915048631018014849297357995304524243559601154327958957380606004253330865188490207454381615984745796892626579554342029114021408882375010418591685542390147537962537419876836598046134843477693899935067704637636107765702374299550472206998493851281929736010207841447364534221045287580868812573807631418211877959981040805746149238987251019721685531331772706254193434224568691882079451626737296748099311266146385955651479000160539827503160782014589890151475816732343536334442994931235656571651473186483507481915379394120835742473743384967781310436762619754814174781831361270646734586336804826056708341570073576033682422437377790064572542681593054476356094592541702181641797346943072084410156719308617229486330113181267686364973495323896441924540351454542072306421562144806522625926107632505974780774964813806663891145922991687430612230748580862550796424596395332735722527821152586050574142868837541575106745793881115860228786878792550526076770842036590284389193673810460601413625762580770508631877581505887673107071314286563112348792897315387179265139172670922278423432006563600105517985570252359463772051858512827344140035159642988399035269883376806141632126155186439646576390565622405016762671152134992361353453286990358437832662608021867218777310922883633482599358682760999402058602633770344479262170096473357267078393013209098206738179153410783074235716958150790971857993521831298964319569772928934375810281670440172144107019805217996382598853169771945538724618245004608147693475494357410988971042468608862172971439717291368374131565669570118486199188161326165865811469526606032215069812184854879613589665713665711716062297323774366100183245248307256376478123506038831662902743544982109320136519562888073185524352914815816925578151813626386332630473421750216351830223897553426171353492377636371310383750706323259288001477651867427949169835948735610341173852238838722298018193556719746678504910929559351077751544424726838702929229923354385838150443241084599897114065212668578153852547964019142195696798433691459003016480656651877296017155907276565172264209944866462712007847703630918233034117341094959808648674725965326423346262043993158269450095997231837271783947615025907995612265963780499451687466333029700454169779733032388439317353734696580746641582742095073906197253687940478241295883432201737838810728044112633285416669676382084854521696807598732491521452691916120263848860885632985592829965122370507087641826314030087606434356521261597416690654973463264543251737398079826429263731858417926884481139875800276912514297243350003988356625506546396436229750770002871942343013601359975464734557164483378554891063325187460115430985256460727370714289272728104526912200317445547625742721936687903453718787625425439216812805155971294940748529048135356194420191334404557809234802912669938068270085762296251508747319694547695097461530998137387409423976713851429712676220967929850979882312879606653680880027910305923729455367286214866263694596083626466752422518037005488841451967808843280553159528994016308176780691809501086981346524023504519945991950472744901405137885707209941336953729191657807952358204585093429360451200991328879018148912685665098718240099301675366314629424104833363171390018787144289190883859463946578710547571889395991523800529444084176622251568454806350543298220827754545636538326196034555557339993501738109243019780036540642204496939024871533871100821338972500268414199309189205047909392132472260517113798987846582299600286822549458129413528108007298074756841598644070592007146631236449687516986938686670480027440679188393176605401981276936314961544215055393570038952049394373329269887611233718648121014073996567383617903285406619883105936658858997650644400291975245184950981421585556205587243660903971636033763149060312141068968418559864816216451078579864794450659188710963514819278145680683790208811758715751313208133046663078762813747789637638320270843338879910388244690640210861240716720980805380485905721481875709640667221905636635131044847432763293674575882299891053402683762837517421625175596533278754351982955113270318640576995134667474421508401702824952623072496174574510330586308520174203906504502619741716035258953058091521330221556863895673225584837344530052707697279513408661178316245431258673536153100091456664776948079724606311758629116182311020491130552727404650796445343270314383310354036709018186581390204542826229892801408515122199597947129535603456921501448921908833224108860941341335833051753912050753070841051913591856085883248542122257547621314922115736459339013137623703680328395979965183487098188216503124745410046981348208631468217454302751452677355433090880622798433937991354348885139181800708904355878760069190734001607545199600762986654018696667461256920616065182916677634047953674993888730223817152113230271230860803049627166789795009487153215117521193043696449177334199447476562543067309923110910876302753587690444754176811981068224077037871356810000351372205185789691898340189674923741151915726366556981221501983245160146126200830470209516295910723705730347525437833215083874952496234958825554726455154000351458701422731794589550797977226182468764166364582095976109594581711330336348873976102372230751550848662706670972412868180849157252040363013557501128639088563186349757636949913739572730861104314087911208473464076867253247055785147889299278687437852668613497328649104071039447278895086488068360916863996015713896227032577075928720856499132485466650900416767347123156327965941518840077305132232207405756097302599469928231295414357386500650812750141466772126325042745561990199498716508864936261643807142680334402488243967022445269637218964534000450644285844631147610439375721900275443819794283780098382305724895457535159836086167619337149583592050033700469855171715107000495617452757389346990136923543165828781132007649033668146520476134281187387300572836460114279086324464500584545635877676331895382826450476599873078647046728929052062483972998693221579020973683259962025604601688881770712231069717688939731257550437696805551131390443563001511920579968993756056000368669710045588204840951831948009505883822178193301839372572529899706364223816857423226268724446436871771154756971334614850922925931274164097026532571888230168366017916920200355164059662978123092007411894194316715760426231338046058703497181635125818135155500024424122402892011167227529792149721270386901266418635880598847010960682479292250954953249998802015736829374775458474798366668621071193264874773692067392235282539275635574493217243023803078907693489439300096298253578554095038072390945246525035770406612942018007943499546319401243652582424084959193998884547373285017302793111813628353940821753163687285629892807386549648274178517570058746672468618603489784553730119484479169574593786788178909956777216309930598190421119136449459342837362870184147997616484663336604010538179941043143257856229163539061285003889001385247741740070899539369262560276142186718364645291200166890183563390443127557863524267645596675896058959134380547744578177584702723528226676666698215226053108172907180831288779079729345975439136197992139892352493029281675513266341291921534847164805102011513438402202107906906519721612248465882143050941960907310679241202368015694293524231066088493111019486738669149946951236054726421535091115108804351198395279600504962224240931100743599618033687048111779916807187576272136475569630300425967156367647434181801332442867456240270986741378048941757842613683876718842705841468674587580426409494742216860072027761933896758421958479120378700819161082503752387640079694531814593271604073817709575229103700313085602455156201856108509431213216100326245863833578737661490106290861687066277627388850026406945377448475409852500358676553897821598049716010937216635135797066505486960039356087185819842492830658581813509345000621704961896593399323030232211466309148150475139161924367749089770439994980101784877311192817240268116398090391531954334425355399693797620230213512051637307373323705505906522377004563060385700071527718976368483113814330725984520696571283277676456036779939497104568113222462554659726814710631445576246263897619211226956990903590747655555583354210697413038436305912200287513192040094614664029679401425682010036563160118467623004333509836746832068879605541172127405177214118545047418031246189666187689133948918324183226791466717759030462157212237936661075054651229668725405462195276604769133166101056517797979132172715786021591459067765022005543256682965132099204041061920045747010591619751163300895518384463173486530061221245746008751581762111242021382297636080127006778958484009229657866098326085760872596509399486663080130105010836968318621486889035297587201625857324915951615680880884988264696395171057989498494876848540896914892314425838939616419659260777060371527359615720593256958699381087384426518181891645796362719389164466502601338240410679152766337639283503081735904914613077252645295673761556264460223514000525515864041894925958956613897497121569846210319977131883508986013450069329166770371117460438095100653604236989338881087271551177944469723820407128739216104746791606147818229360651338947002613457010981826755513894307713153104799818470677200607820912703043320594572739092160569093538982620821282042907200268286227137239294153592163951219319312987716119555141179888430079979786528929037543931572844650366393445054549528232982481925579104957957207779883113167613093169133802075940799293969912532438479867085527253517498902161144571071257220417576358284467296603438578020933049959680897134623022925821076143379563912753688115692594535751345372604770168396526001426768306947604984843125047771962698938779209715040636628434361368094499116369941409889285479725535912585402369869839506444469423493370231218530418261864751032977594534491834879847831744218047025922464838513475838056350668858253958453715644448751524954323727453384818664729303981969402678190495529301655816596886907296491442480750556727712767034424044519101892208833572130281688153439263246601533365640308033652831858755130401472046299467647063783764451530848017235454739430754998152394808625756385700688135086282967286235247836627356824285944676435637147262379638747902219213217382203409432142477988168870615342755824238818487218601925262770538558308094186038753094175747486197355747625423075324310979082184927511835976759540777290897858606603620543201965707309330268853598715653970946952967106237384403415565135560860189595001708461517776632958268976843869489814533787418850023105608225402028799092446097705610571528870690677139567818373932700901709226765280622102023818929723712098682261641205145783364628123230874325562682589918666210988642891242795947622012030975076063597512622853091736656234247594179504081400210581023760032666116565842027670072622308658614828278274040936166695302646043775309039131282166213820905091106004585545199947965430984829066064599400325283706837063519084074136672570946338744938574024736164588265923297951054464019134127118581219628508100288886602294647244656219935545920078323913492312309467497448839450082331983374903269723362092186869928279664616205866725625188509256169055985944131022385516201320159340214582603819510273106821463723743087563373169018798575928916756422775571600667737008014681535043469013411178067184276085218342315268887613474375178186184493127574578367779675673528197292581480636916060644749976019371420675951392815554614783779196893301840251588425400828124132138586378737964386983474351706103826999169376298655616238030110055815215146340768432801551999674186585380997718343020638829777965080532255850753776953610275034118033846469413832594453686084087704237464554882888015784488213238782983450164069578832869737413301565672825295928045097075191508501105045373547350162780485452208916451088068470957080450774331316355405091298357047835267005115614856088485710947855379251214417303494676668496582637649522184107148996776061629174824820531404666268934531506228570341403140305625057976399758504701795955345856226756863980595194897196684105331443530908912849815578997917461940776572029340011246582085628242683072660931612914492526811610327123679627328456706376687861771797058510793484682971807072669164086027061625964531079688184074596020237663449007395941325961704860910616444832900269843455245945111453438596928880194385730147773386058633576200092037826619995874406985212715720746780802408656619956059615435764449751200504526061583215924660468878552514754277730767755009256565689080314869914213645758666538546804556286296251401274061192800633769574691609156744998664982636735839354479306020603381470662551380660073127434618274324944616424708807978289923037342389097627077089451803700099909589877069149128447279279447448867620469710310860830099890013908462975171376821271862335007789161132000426691588313979095914037811776914968580221586718781406240493962061656536089453274494466037058045423262338346133695705523702167232933980391265877046470259472592015453488170030409466955908496740384366785496393390350561577454192001254477423415914313544075323039426410566069040070455255596229961043310268072730026069785657093032031071214225195176859099706227074570037969600186282047334199124806843181119357255952396727111816716240101561821230366066950186978106233326962490617386225128133355135807846056835820786732111776047895922636211523660455790617779442293166001852053978760330327116142297643876701626917165975332313025280924053999696824899143986885372077275678848401288383963773258326151055612895828142434121655709556705753813798699113731782056777749976543397313663026258366701562553273876615788991418831972557758241982802156030815409008155669185536013535315192288588001184406213954487895336994460307396040773865599122875260081693619905962865699908798077439783143030720249303501106486979654220911170764639441699729352967859451298956167889516653459827727756396780952590366241688971171623012782560041566583666851152481390145646965184044158785177724561419197180715030811152095047641363403413573892106591868298006297089301927859745494680676907262699081687294251269357795124220805636494020184818530760972659379113186984674627245598052191708295218490409146581203071338421064632369836927833770984425416080426182010810546518346345390070961961193966152218308093158931628995407941805291105730553267107498656293318584287556827302042696967201679265625362491226147102410387913495214062300536350281886287466213850140636777773124383281330575595109953203828946496163288336014305742102340128243684657527698915242427131915667141265897668921562036077430702121604435727212859417754072006153989941298206445758796762455155957548161426026455732284328106193385818035251776883164347275897304143969916229386307505714251200450020632335367537028678660609990298912427582267659483897056334449773460374085638970099711519687668723020459832600826629200275982154069578575701551491497130667123050490027430326527873700852132199412946689106457735847535246832846284278271209213485021471583199364930658701804798259939846483302730780743846897861474226040381763515302814812058559118561201079721125320836051443891232255132090977150752405243751488937390912126391078608390371980409448391777574911800279471021744934026703088322684875936616000634900214022385216374939525465859542440651297747782875368183751702600335012073564570120466717811620113335593560679658487731258083350563365998519726870545185556765813808554237774542715429476537134581928878057068974753519690350217047789830017845402364175746184863158670978666513590491705912198762275276811650069822842614198065397185913519329144485485525140558432357430709639707804838122546700356124979720613450297266791447418830906969784797130099090605587946644701044646117066303207181144658531104699362505901623007599708771454767432110682748130298687848023482905949973349015613500142671496040000201565086541919845224715600834106344714686541136399968464192415578768784658268673497395692754489012148567369204035610465061876680683679786514981825687283130542902842382732363571364800561485244319803740055771522401084172732165301869910016447179015315081295354464271789705086416855028818795128833245219729626591745212550839507431788341302633900383875006553330373396026299613054363752965253866339606174492273388397632063860511078787207691986617179856091633152586162505851939394279905559690366029269750509183461907589953130997609001793243070749867738333692780323362379555155770103146983697084048626883619925293853168066397277902689692492101739332767435061370554583647875239318303205368213346115542001680948167292354796859628973036486969365375316529068433527541899521171498180858721903342479209478828665832129997936895135831201675654844715646074448535944897885255563750725252074796164167158305992289120510936140691157033711665494253601745645573466998745130682974697135423799290567433209396244171549278307728139301980974933836024406937899460927228302872633237642135079345403099078444935139565410074145896227081407711871333623452913390813019980376939861985821731830829532299545360270262702442501654721104256073710513494493127588939670578563692117355307913762835610303555868987902161085109364523848057196089942965851989033239165617658825022360722784155746636706954845771501217549676246666960233840386638085799127190943913018926565121265418592291559615652769181825394522807042354134588448204337351373785891994930025664253619105953187701374968876383259079068043352468691812379795106117337877300108788442654622454978683350108710608671460026172824143453213392763272940751100317696173914543502097634018852416914815735480407970593858266661558255453545383532719594455581563243790129997771582487487395651513709940176356440880122866469600855006683029118651099158045893286296845768499270232400761184124671727743645701598011991498486288042095421361320583057826612833220822534075384773611707887526918328232128163601296769327163026205531990206641400806178164844131287382446652732124446800622978002767153837628577785805063960216302344368633751580910710769584719434016798604209466440436640148847501493040507646090171401441927670567282706654726272689419624435344711163423895838416770334137979605666401742424644053496552022808485217954277111331089791108376947860552223526253250559622255299362619117153024823845702241137594885548113359552525791595135786676024054506516851936963999029559777590636406303892952607631230237015454858420909750077473065838924629237496698591371031762562415219323055012728238756529649100629089055082414404669526841717108191839113923703736435870775552392123043141993424811384453516569296128313936676883314734708351771192202604809221824437083391441596446280068410502956280776564193253182606092003959040409901216328684954626977497903063207748715491917376223422064405324619413621984744831945210177874243137109049431137105270142421581849184586005901403145554086966419753230961136166642903066780480448270655571542696180172368415212544916541796985373984579724174978464391755774248708525595433899059179284017893067077952010949124516287063108768234410878164003901591191257517318392882358880861344283345634085697221222608062725835035442116909923488891703973965620046235843803689201285140856488179951505449959784124546477962877918708827517722596071939919386331917698379300912973066555188519112085149485049299619015076413527105400029032332960240097561123904375058977568059421735520637477583540810796973303998703392551239648005313773481082526831244241098062183238627093382333641390669999608355921031799238115844080970848505682726678829931047141680905476897882480964919604787105042926991230862460267286981043887403619825477379299746124486391837957327343664050388103303496130930655970179871889661283620773527978813668064239870935193267387095856512153669689116507796716836077241361208957884253367658714014507640388864758513391298576654927530701693117521524613834019638824739835893189160324270913524337396818089468542273744999768228477442965581820545161433769813827278534900699961337810431506660309534845707304264630701497492497304698213552608687458754002202713210090547872762017051011316599739129929116276574555026099731732538312538443848560158521172157323754554939203313902921218241012536585720634721613011330215254451582077728276939648568600425268662536787840414342472871072450064097238647802450361849417601030092993709894580432039766914137069994057291528965350880739208617609538638006547243165845900543756108435157834842384428104118278225863638697457637692209775632152093843485543658454968375318848603266409901464518663264596850889204892715139341467344512462016444921692481567150914976565408372127242567313258437429979446937393229485504943261631134983041106906065572509421358400702891832439497423397246312235866049193380672741062647154517422825157472998328188002888168356139118979084144477316139449640741086644016859990754631281254444731778975413991494286693448441053473731442698791742159917802748172953667616442239943069241193118443020465516070209541281550998089695306948838387889641481140022751186528669267114828138367794209834639532839155118723680683558774167311888896305287107995971859109238603422752857419839106697827115723898565306503360451625916007023887803854674293840827840439321415457847314055019509063298881759095664708124147237485153111196662229222761892837252914735461960495787469698684153406637516359469221860535867581925938301102946100035397213890629543359858848327253707598072522568702669121657296775613774242469745665805683208264027092098184339694575585598499771362634186049304005460099513398463173633672222511375663197897651650826953768999841712862354857837510447770184783557772641100922577877414917000776901637572698709976100611836321126197773241508169727827447871135713624799822247102560379431944780901179128333753246053347832109366603299465558005374461173793881985721051544570723007193199204738707931465430387108209612159197342350058934933599859697661492193276776522965810902832958244502034736079296727675788158387717995771347506205871295701053616162062113317406103599045778588079374199843998571895611639316389525151470235099479613212431446644273019719345745924146052646095615019496325760994389023876423101868485367708554939448821485643073983131379932667144330775321314872496509720825571776989156636500358376658244438954949305703008251173558439285507721986041040378211818889902630940160138667226551342222672356156335533767267068433742623131240203291659290625726698066671662716200454371923424517009261192107149275321784453513382758262997283955268532968582477301490996945728374586929672136134226105818380814845956279825041939888008174572390516938580161935441449436244339292050197537191002727943841532787592177358002693658890963431852946894461471017571392059121922012970688976828745629298368503415386760725929074204760479194862243262841123127428392654327520850666195531462253976311316112778497191688314303754045107257157674543041662915180430176295080740724516737521598925435167379225210959394953936704194445082285193719395696915024527887001266523765479567710351686949793140116595487357336624727293106012206734779955082714932300535133713495612893881471064870587695035191009178293751323296560860307567316254279864104358654025397367216995514143503172321493588920436707744241830392300517514622913691558576535285131530355418593736568166122712960151062277594665175476548383751910156674326194670954023611639633763719366086147689877968908871637226484255168272578674740904165856087052751493013378070563708137086950277067563247685150011695803196955918993108519999723162591925989660453492553381448793521678327173817830973766864045525208620746832975254397269880511749753356268904810582107710970621979072804750647464519431706357553249399049228284621572337535278481958642123353196350878750754057256246580499734481530704663467128022417384422710391639379077498037878946457861507065785236606004649701474144298355162752894533656900697918209099973938486669924083598033086238680242749368098294889857406886068735725941294084791355439870709475253900024725899877260887007883715349168068897850455132214597633916041607392619462144598150069735420816967854225259018145949139680920541259915118555959267279712792371802577219284059856751762026026948051600312370401663196080531222168650341445385254004171478972203818165970360067405450042844365519259249180073655684238420556375348534921206447718689730599933960866639615435873612895869274446256908202067314354204819967633748186444642522339538621159785487021880378637359595212247449558567826556512995292935818289324408640858797479944433480289110427150222486540574418215894901519831372096797867327157325417433949502352979895483796080682833903692262947469191717157115720639472146119823929809546520309963585199791519505884973281643175432969636377709467552276130559442912358180364606653037572234181461665686451901439234030938818488376685515829963996398769010231470628833601718943691908230318891783415056040858928411762029441115841491668770142837302537398996125220136245323128268088991295709713851155241609557074310146889299946021776893074022704203535211489758436640904562491518273594249852723529980210042945230232129913227379342551994079860984156113279222101209635626643552358041408654182134392704419045020651082720449121143191888712126848925092202117043166871209250359451806261875009174137235327696549038807350723390507093724589686160582242230784395488493588144085098840802075238206897362641952639498385412291250455379041195617900915153924509942719830301766948385570465130563970181491077541119161621927476662367036119141712425553928493803920277158349279833026676143843848241014628194492969317743899209693519235707430679024826407462372925338442511169579609452025136018268828205519730993725098839322446496756764119794738684069866076931870015398362407071323159895521752841071087889581694090023166139965976760608408407172487975508622336773551415801009791124723379738926671787803648733686188893859710376278240770566777073432846121864280066598691427604839394694720828207472163321371840064231671810921678363667721672080995957062521922410207492128130083111993848301852489123317137188584788195610226522115809323333653190176760890819283211538161929920575658504644495265839725934593312705987368167482057684723139300414281260147214914294448616819177203186458417598047249543724269257554685613664419645166852343416126961201329760994130049922263228686172292154342532381635202385638307371264622155983027656632137094615473403910886509574385581425525458186321190784728493059281948793251121605175014137771625489240532704140147477079776522620003408759909153763158693258277363874035985109059394038618599266679358658157892113555801050363669302229247408296589686969435114051149167063626130876737882121265588165481558670476024445457871577543113761426428494438614237542196211294575130924922531391763259613908795145601852965334062039660060101000996024057429151977473682272812230694714841271802833114408847534468231001376130511432860567249202183137178444918327363903660591938701964902533353357860553203146534910376972241849797537822761532751509935862165450021965934077638317681011067737677791656742617456167381582125520121859495504439625297005199208772872204042741607167205108054415730305372418474714434158899162362275492644694215455315304331488923759610151704117077371088569027916486862354359756981658992707297562221927385295224934692182746451921786923788751051373127158321254443275574814454119375694849879445666283903492498705031590556958090242996183513171396547963381012267770648129564495924136544167389912958023195848931312294077255588638036932453488435968163581920291829772097677386428408197546448986318421502537023869015652956295842537444912214758893484204941201946591600737372372316451103714624197624185306346096542477159094932467052275989973029800996807264948803688924264679177953838189209477761813424339843745748623415607793080164781408835434265129580940287669661997160414358223859788938021883450257789019503046545302723284026850433379326031137254334975866359760121856025509774355633175413225226751548470708394304505381178344039827419246497534098762545106009742268623513344648667910968873579677754035460507829616448557684225921235835997483016853197052800630229818212984358983135248422558129104770856218327600986065253218646743847667027764712497912967384739254341529656567762741650906945904538234192935764273446034411277449523039924756144856319819479886302326296149857483007216664163583795176580788973204967343963701291424270099887469076538846011244314757435686024843697694212471439383583070362508937458168545437252734870479299710909882115941856930152864661395832773561542576856309550978374325599950675060998245390763139169908380160443267586813770531194496840486841334467571797072668169838288542510318979571853768464826901063276329263070220090642649163823778497014282569939984554477826528353817985589380413136375482508848045037584712880613640988669956587283730496293676029757530666991067610490077436713403488856115923635593646942209721078004504307606144937636172126925683528249430210133821761935998670223204319597221179632775655884562746588350046709289916373662215899451480250617922420115802159087297635010389437727194018550862394519805971259760085895764980151281465623700058179418445657007478014922175513418535799115139016360183196668805182611914946417194705432933285249864595461155482426234908214545694619155010632078898781835439500197777139279538773143391066628622470626246594402000262450114892616154775549059458506169316182457328119322837549434120541746459193422281259124360905402113229789819492965789647356275306045739368010427884627656243659228340150072139907403269507482578758150835531976208593849170102138007641747836589129447133843675527442233127362637175417750533064903160639907614544403822322957295016304638174505482365373790817148340983279941570361910540110255799304609377997474942134735354989001529946375576663364613101729490246789242292693403129459249623470520757898898334445331015067398233355801551005179439634096305723444657362033126874051709557766833650015520776763864276185688111693147650934324784104556135256529388869339530275352642622173634441524097568983495345941914872475342769441249633553037491957071283862566343335834976567004433598983710322561488549490493450395506022066055523761217341854665204166162526534468125913098121677916298540647783489145085542006584993165105884948160030380097075316168794096736317058604588968533066153895256282253243062114770043181327362664192962481235763460014742380473888579868284030645695747615592140058391148929814101594062183255835939166033736046996395497366114890711316885390548265537276316166801865469025453032757638234317633107069729416982082860297312238065455195164296124091821078624932655996514622066314283297189596682811703086322616491987701837935386781473282899268570029490547141721589294109416834161205222982834342233125955981888057918982848626878098202375965985114007816156145517943872749359826834205723460651189845184549498543257749232859710140594378839811182454012454500997015037499845621906120642332814736252823134092956199462558501061548319588907267585682043562527661758652064836911800695457478773757150096221122522201390634550508954427864238789995477924211126873359199862777524358992979324231050556927508661205310593175903504804357567566550023739016255862672880139886341470177934407767219663227446892075615920879294600848407305037793184894496089382647666542640708684765791850276370546717603518008388406141967833777979898126428313720319818155002997499865369014371056092514402046176326488238331160297787817495310695860108193267632316014083106570597344098364106571035832095733357619028984480378073919333408247928351175410970673309501199778753779182783043917755725513470052567573239708972439800207359475755793470669526981806033449319085545800667278302987856364749407809444248406825052229081027818914214940579205665206387252711957255206260685247863253693036459008631707519327287803706084471867008568296286789316126317336068680702954579752448202984948600227732174022417135718895739455255816921821544194522476516181669723017729103910743991659490088990674902866504121174591017845094181605460125316643071111653932346062088936779037212917691514099459020463684566767007284844284648764304206658133214828802824543075582336388495388886139223266506314297001106920391599894310056158949563515436523038084154828578942392275529671116811268217326141254195601026786578608073815525174968188527350014686539395373024790733583262963422436340825050299637511606526633768081136138419641823829709664627002731291132670056526067619371667466587754152359480443870220860576023070328856788675268813786813192185681357941695112986547060761608083837947709113657106062547639383420672514585199338343140208673054402195779676801556032904882618700125107496221732517560558072677747057972301445525386666984320479984194013206983443032214354039807415690687150505597324724520285883135502561458049404419363635303475896723040905998407110061786199987461410958171346905756315820134558691361211438293675507010979043370940684209545788301962439361199485404639704201355904572856677915387645678918610745324588851826889106119831405967967463397495203249042118875144458611411683718592935790161194144692431998379532507507287888000664129255994645100239607159747875407086006749770085356358150901438981527723313640558096458100873970489715233483803016557176125767719811751152810473591568176037715594108755341429660355008838210425254096719745148730437140266714863868960687795603961446334582874572754483753881076590099664916382471129094882047023459945491423460046378839750229002563781893055867237799813104934002065202413720702728889041753585213831811344587400626748192766314411518979299178052177559259692148272870575361985652479794842401500338040235540356161028080616238338977024111950492659982245332296142060905141328825048068487909764567158877489234174384942103955203284579555609081129688317206520204041199761991130409648688452519939868857626565960385749508582722050129920186122319265445622398946181843668704348259267289826890748561408821688876330452234810135992739045687084961204006194739060399007428218687981159982812639132045356224886448628493101474500495721896659613198357944368526944407042341708537910876926491559785815175832196929221366742264931276858469648097362642099642401349217532680668545455571112316885286134940176089332571448874211319435116523133833925445815628522911157712385925860718522401734127929268958910461042245625743541245638994729798786257318085551361945234811622270612153778061800071420696109123094113755135909119323957231717395131928838643681301944298011811275855139974179397442938581745858347235469631851167476935121835177387137987803738830997141403807551418943510588375735071043761236796106220781956511237056356603174872985636115683895685690296052307444801205827623233651076897623178276173554674807453813768851243296889667088587690452869081299255008064433044809456168041551318620240353158896384582396053670059052464450176674577702547731455506267877915517092617264468298361901444570028693387168854873377861212036203221331246431358319158928347479719619941416536845911894585413393332742773519750871781278678369015467727601668817596774016071296052903935069823474178329035702397165884090773168803367874375960467021006432273743779360711901862145652176509869691673867910095174461949450523273196860979180649718752631117398039155992836105873014023896109706302464839028467860887198915824435455928765086997371263210511995239938377955684115258012621058951106788055517408961274275845632511197191281174259387469643953819686126529673025320339055794909404374244656169810585230299091197773859195978155086717514250184071182125523788279499748482843211964441774502575321601476911374534699674440797287833085009518771657651392851654451378594156820227608369897235864284645280906575922299702560837250402490772086150795145560585000991428685853995428397113627043622538547197476568166913860104554938688307510828018996838152955094798065438138741432826881659130667495110874790480420634606130265666067941169616413779532483344472627770225825773029879361773247669613085000008524263497327618097777973475413817364661154271069876335889255230513311613170291073212276665234445171026248323435589962373432267023775027072843706110491843884699829413477222123109011742982486256395411127791884906484230439744577306529999287211548829740421082573474229048781312742630977123509506559025635505669225229146428568369541234520798669398191235114108366261218092031395738854613822732339683474782284041244048511039380877599535805174070254784555970096792334389977077853302592020139970666888957774156635403395664855244655005882133601046095011122410791637387641469997674245600493830075151114787194377274573427115223832810492567531261214673032447933197445476522954708032556809677995823587213318172856111206991134449044347490496470884591541668525856356998613624460754534712338438269017325031105032728030812168262185220554621690807119276777246099787156624221260663344286760179548768445551198485523945574893967547111764869906914132986870540061416576637847160944755733347634974727149875553751396776937657630491812892972463673720437539303329489895422068620104146132992011087943860736499195434877273356860206164347455854433855908788184463403194284244766570654129629925029901010114378685618509861614334023971861400621865645133068930036661745269833936057035365201267083607732826095914410443296223867103399893680098576046100656967995859686087985351170574663703225016797258134455189215226666388117387200325169568902538956754610315098347527047171025285922292399728067797380543914688899969708593712120920697510530440144289439067968232939972889577183894107655062584884705081776550931191274004259152642399415382635471889136561948688997730938810855465548404802095893427636071600605837430922399475738595326851325575219533849121950865867552770501820977649378276285741733770320443354382248924452433501494253451792004410160638884990226814386661307844203308049869865799997231503968870819213246921666452518019467335287288560976176477787254329253108428094260837201679376054427921099136605978262914764129996340355908625019237336736846486193175491942007840865416675597458676940604375448911810492025728491650292467434964706986894105104934612302581188080094891999298162726335952964741229831712240647414333949484576390619047939119924778175669131443676053158779169955582860326506379030771452473520371694583847084490549373395738492257079401614788272678172471099157714788512534955355790788812867857128099679935656957957859374600154503523057022831542413132704814287315794391029798829332978481625833524743191854775239071187298642152651913292430328662228530212538597704063835319896689570969000042976081721637912443495892584170145905257775531998026498739656366089933187786603902960595180391754357620979167508556532905545836574416149740916722100923818097832699179973959375655002955567062623814513573714899102355212687568197220061817442879272146882834278209854224448051697886312981514943677893053014135355355264636598001393474290381645278488603567695479534657658789479065512771634446256668427049259251296604333330274910605056197782137705272493302486075138221148507065886254957440428664511515282016658433435251098519382157432840970378363152047002667801392716427452173611431670487859411364731713116218923573611166115063150955593224810153128257277430417377813133609772973207721954386415211363629321257099765111823357458754721760462071233589112178767016653651869249608489051227448523869040265636829215863170242078006780723926973498492229724190861235339680514767278547488750432938503996693318327038187822918134985398439859014660563197936983600970016109854005214647964427367519541891625119475597160768941764787738920859057102586122935351558816075667817486499235553023384836403249696144966396495333126022919146847201137380459265932664309977367983906811715278229693449443624495605576533993773813865624008027434284198411194149712543446106060296898113573419439471062412163713886987900051387525923538294033599754298863901995059375388070858399451113655137087735662149418116017959045286944783075014644905515688382802333105559252287664398879253282432272400313694761449125879394710891688315584202673400839978832851280867628913810694895995691208599866683795148994155516411430784235555667688296433500377299589010595917568896355689882818782073630681059344762285194100588325321663650497616935466046689225265675585559839161737025221151781127283218588844799780808329652963610494326712069063014604884241688366927618223416580962890243555371644005747395969913906693638389432046603450639271156167568258761894109188875584875638023728115545580237602364656194525945300887738177533249726218745492261016162155801998924603349069921343225065193474709763257432419375550922456878118959591546380411586105559371229691979621989665970476745025179441022637666206884151678251173063846801051737897353887861018942238313502596618107872089452902987963392923581552583680473973432666554192542946174478699671259598845994261855762820595381472679177220764391734444448005451295553541932529357870336130845687761267547314055644961320417831356881377414590885860337423959657504760201154780229743270421925819219230626110642172183587182853092680520918991312135741277443864319407401398584855480500095529063236426135210214267046571643459724072727332906729731813058187021065686330023321167607759142733254393532623586691108433713642857339130077266370802227441028467259465981362897588503698291703197023255313308470850894806852242556136212204966078804957118785221804771780718165525952214305670114723163802218678435706231547497274395460764005309788249567459891299841307166693972549039830487054430097197693624528090849113315964839619424641225231356890707074528910102487900193783289259356838305557044096890559583730818760374487760052906648950750082136752545142050476233650505596966516328379723517508322890673674928304796838989143298918183274190760243783750626020681298385736361551103651792531079304958042157617066325107490063792954601736041422118566611659467870779049350702636191072262952944349040588002968501409890516827417290988284876976172651764375567307377325658132913143169678147615981042797363934305138035840443955939364649027243599253273112051194995691623842060580225111715939654358850304750094853024555929170179146045672214793010721870479060813858000339827156067251882002564510376582705655446206768560554839576367098717430612939682133485563942960673325772630247584885879941191840911022154223737303066865124380537416428028131567768461015609515946469331372554424073725409835034164990637668461703075781943461953187994858076077902444665628975075580544384702394475105818817117581866119171129246633040835405456815852893697151010924479812946677518320205201974336934688499961137600199775693726050991568565728299080416896810684707802652907295662010898236068187544457785655311708869272075767050494927498046015542920319229355177114345528599040835880916348414440504760866415334764997016619649988845587827291952233253252794503065715079598702800440713452638926845817653257315099910958223659808511814475765448171445793817766882657306187252655717667415325533256071565650410746105844284353026077677088016132767726030785863433613828366544215244243996802261562531970949280925133883699229556912875260466634801609448725699433751595409426157341593685506655583846649777709906828516610059184433554782369748159594983156953826221850925472602666167421252487263257881231128663656766729089039026789523435571181587712581653946847356802316003713669339638732571928642810113063099635252368988590050839799176763697305071518314059152631292066753887772628411026915779824485534240355745428398504054215633335619053085971938828264903514347967680950738016716303071836949051610307517464974018876972415384635116236370321311404427882395730624108007248813394365289657115318487832312130048105766408094001253678791053466789569066613868959161725982093150393807032557555280053260543560873308216287079561411647428577464590655225311085289723962763989685711432477951791945503792302153292968049814766277795990471377836330442721719205015616519447976155246768228384547806285601106037828420886009217578158884426337014520396039726450201281780816035978456012559019177520463069990997039396319701318124055184194351176507210704400524415925429813832071969398602380905329974083197987359656745765363164002720281576669466744385394914054239470097631090609569566232050196626108033265616946860150108994862709561784607371844577044821839859398287138614108716873425896183400535199007844745360383732091558160038327875811497827419978031892389325049238150330867416041681709148926096527734572104583927464701391689295032219968534556969652839053692597747965841043976042883916816219632840825727592826660409411421756137500232799947541439485488444570758420212008650102867348722411630940015129447992015750144244756725671126825395347123541238536700941982450883496796118342246833791893095362045804964580939483148856033624762744716780669737464909933334993612239168389283292956498908721540777328519712282560684948193900292030671563349907338000603014930187738920051232244341782738384765028177810108476490911444689213040936874984419961687643783275928198402779526056216459508508922368607766450586222217199094696022877061088624323623610032230423897511003179429305418598193565676130092099201645672001612762663259020063142372424400652833853307179251577556906416323310465542937267797937198864702992585342247727492888870163206903878482827061215410558109103751107384563129074988912873436100629711843617757631273638204483811635306507085508311213335052684054377999188632705499046335354401588310641064890961117141338640918639189991664574154365052142394573643776245320976707494038188505687850597928608867647368510027525135935348564771699126745653396729058424715348316282750692088570075908279676328089218693124676768546136145937672994185341261541388748901820917392684557421894569005280556192135604535319293445645273758743415350453006897016378473141243751579730618346842697370957071511349912166632007438547132149022771672199462334135387008581548814808604628420452554369688868741159327272857120811575189003510666083950852849530173742696354415182204621598935946365737960141788946348659673534695777558480476245672513630478531469861600193355395820481138599395804916302280914830256094488693333474703274222745022906973767055800827573308076712729726171322214411501618480923931427130948206439989584686168805259221665662539445060533941866135312336556173994632597426709472069974608915123005779216536527532774971876143363379357310123702771990214837716234462343633961048519839641577266834790233204875460737967807836434286477851246048771930728497404411078697776415430390249782737451882910713137949417938401722348958593658952725712501980901703593750419527644587669448055558158296768751101467755656421017558879089409497332501003177162409241397916032965839308393136618304634692189166415927412668792487193994567724739752683754141630257784926292565412030132264476771534265751866771851704881068262653842903534440200921095769918500952852864153501796840339192734773443584229959931382418390475129820243282819801863604028461955899753311402371721994350354216852631926511324564992332070771856539720175708774517072258836805729614265494699743937752811067997359053075824531246281667524822708727262126694373191924985571701808831356064498896343700520423513490704516732107327369704002489076984284974584020055202255967601940594409888097315496732829371318578777403431587532736507548710106160141609619152947688794510508789813870236803456090479551262268730223986889140494650490693337003180156166651344861595356235267070314364366639730408619560901345427309630799403802585297256546121545454194237183899001559597460594592402057805387150778052432470367810740438237719622932294302369581590683100801710558964438304747623502174625020516170855804380411219412334223165317712572620680135760408857207148955797544791181953574107034990472048267899418534945762601856450440476756681809364469364655605202942597514632769201533342744483838400807304934734923008346526766058056933229103195099612384351047247194816780453649531499994996221954130462281498041063581030391866889479357422293385399812516896952191091297614526686771524854137272627412973797266892867216736270429733549890115948257803488460666823745113606688878454171002402933889391624180042553221485378564409832879386758538164820351876589260107352105062149603141626782614612546864127575190861815012488324985535206936785799461360121714077087185063900479202817851971577489849602306565806110138392119477940739997538536089172463561772846975410262715446434056876777029581890110353269141240427519087865731342651289843679981287099537531176693671130046241445099995110232468461501937824453844321708371227636237955044939655929376668158800237905745372087171468982449778984246111158784512018963532956676862086742793078956938566404295927379628064599438804484880227819528119735360537907541656025856362293250243823011594658615588394429368735447220714962313410456020930138953989353442095971246836850686869464194737595717728418570867324268636252597003868843455111658198840604032000718531787316282349100503419589864936255625358137611022158952896368247282231110385720512346284596139940522283785294284079325205320705036514872883161841848721627503883069459277433161048379860613564005274107849441578614492038872672830176474940960491943013491975625303720514793922336906911872415233648323062984964961222718420643453960813117030259540530181104450837421512262312156275535345935220029759383538005980926740263427724986664261332353483494005816121119781625402020113565825268981990792978367674992240381227081986406442836393622227609917258078362661513129319108660001205995981725433635486023836892410062982792598936437750278544215707581184687117249065335777073193876023724733097283960189991461448941224616527000227276731408146896377653058358762804438746516497042358994416369109454472375198111636621860645031098109304016546396121647831216970123852433100575360475153003107246384406671279300252619182937564558837284898375978634045316319586888815736553769804613646152661825987140634028449184941669848047685787799543751447403934258894091962746393428801420251625034568451049757750328203909148539285817402922646281892494687819808523220687218853039880447118872307351533645828280582211609034192466866958479166379946740090137254020372832914544324963627672878386125167570126004391204942946454046545277678979190914954659545296743116960462518762957476013512940854485685120394757245589601057660851689407946773252256285835345018740303242922583952760979084108619050213934957457775239501350187029352549104814386993958058450342853085302114232597829630957637291132295740739628103193357931672799686335041171418114464956281486829857934902119425986094005075293053756607030801756690621386146505471447404170312073625739772132682889509942351246630863590187487587509209025745373503561056560648265918059079032529250494607543961789427022461449371029128890750642216258562402037232888162815054543515696519785063836574433032099792810748589768631926569410360272812021051436932375263415419185982662090130300824592427442270541400040512426058857590095278266962608603435313799230077750274316946268390864302098257828159178121199311253285701284144587690502608948152096770410419010310190226956101347095719223725162329852291061989530445578160728932151777817860084646003931423096823433267070295295786713578452925860701048918458638532819179407025251738895162472977087030699822118917757747326171738870752231554521247795812920471811920571992225584350863368283212057778001106813038032239797507625872113966129952360676157932169384451262564247017680272106074596470304122575157551761045506025110894209632563842320829208033041542424745407112825483576109002835223106164982463302732503955172168318221890551670208168151329918447980946597461691610630080911574445383262885749546457458343968590545316346195333990942787805630246103705274056000211958884025590636998011850642405375847187929182059275055672496057956301704097026438698745714521982237083609905250599640221209973006585576897630124614523576451527049548565928459278650726071889356176768957972959900066924207329917685818757153827839499807067426954500243149732105895157199957944190947559370829010454016238946018424618764496913504674940031899733399923202552388773958471659921550128470753310057145649124985318702588689914939425225157851240424766871403840603040622539452198309101320143795168775060169503774929040936583339019848905070660647266998701494599738772566535499940030894537485528025197932807117672468742282820961792930887188737091857017898572553017011964055482234570054470464450067564512730186083846955665215324431387911823133248445816415440913371460870340138348559708148285714251252921101826826015940349709668490498887978140879242531577363502769087720051125633054582440036236475199125317714708611177332493401051486762440321997808331242122255256425916782786318430777917478475327649070911731512269030949048102492816962963043876890191823738162012083361610704763900748066441956758725853466208773706569074332261924613032575779600752767049701171238959639667229847914092271294001257336727561681988112942524842679404265814320040097781399218114417236178115679769457902649422925226516846998647512278489834023894851543086932089743444240793531598245666777364753338656496141091110341728468048241373981611230340948130165240196573288091000580829196752178447238558588404220472675760124559805729521219039452915745879247387388811267676240244783965476068569991781283960867007628948879412836307185557419757984918929834677416688177421230718291940930566800963793903894382582039910128184530844035927985424524909347487660069238119002262679330320109084630224861532073111480804845208459039511836938031512320313738187786427709667313146269957974166582254495383856795536756068647618107355048461149121164608407105684892873828158671040199676759348203106328835323900792703899707528870260715113305863389634278222235322469325351677294851911905332905880792107868474027487252973779544443963421031198803522959265423464522509129942805110968760280311745132280560178009301008413497278296060095650713766820230195368198066382157410044930777797478602018540803093478527512994821509561991236241806740526947671079476442560091023986093022415475723814366282376035783388168639657777614390033017500429934868726667182817588591387099469197435715524018678912184603242549931709246901767014546466448877612465353394500653813623497406298070414662371638570767994703406403126817138649398454746935280573754196883506246798839975614946915739089031341365593314391297719149340161353585509513656070751392393517014272866069219909198660936160652153030781760463540865506747499172001023015195747499568413521469902509206857381274832874094427983140368201161176449415972345557363590022640222728977297385972297325520637786227915655215484300522274569625298905459325940410917852296625430032952810960775188655122272473467215146136098274363954568029355896818315312258556810546920245670897218797874428106860874558724095633462704037167204104729640548740716425824135216353462572972187594053909685984809526344080537118120198801256372583097279141260763765732666196252600593674579543729322193337966515089882764489474032178269336708314356274051371485408150589563383398211949599901329754376662378199558640480913859916045254774614573565231699126546560589978132176762307670574581025608474017974060483409260636953678511178434838316977714653186531632348663936834940546789434614876950174418847148730032089608895437118470234954750409387682716440412004618615233189091579533466986439518859389647995084410087360756143335502296615049172257001917702322964794561979643799021213483910802869234137939585736703899002509316717197191974373244591397785591805054898809943103186325366222292074881702129953044061151562416699164316494123513383768409441860707812992255594818347308343808076425071908705397503936365996397986652808121366149881595640842461037903542715937179958737854846547255643383296612671321971827802288268424038757582534024880652793734114641193163393473278041870760554138040562176964215329022351088864560114456313417396520310624907912621786276542298330151694504689371716430924546347700265212046598998056684076060442026660437178944744550925816520747483329118921993471486954372545599433409208701689662934570806955895041803230474027550008711895542966799983649893554888618411166711830437934737510520344009847339468758728869007985504726583674895192221456499801609872857687579495093336068639752164807916433090730841338277616980663018236037354485580233723855538974918118755291718500924983924010585530966138334555273848935226040989216169275601022399642550603917851074469643545896429640729736392934680766166172188778234292339384999278951868137282101151932526531941531273630014028070505486175904268217214827940600272139714250148463179159249945934591391339391871456039416196871316180621323698058008995110456472058037486111796378597066826098465431430948714155634197728281968581225472568777119069490611256335600123138428789481621257113179065175756931580905702912565455397565971334775632904531916460496881825552153219114537050136308610637828853506004026959067043947422496292900493837431235994972421331602995697056564806572864379436594555087218311887991004252654176591532762365085507168112104721883917719766428391149577573497102822083636147423877204369364154673447835268741161134790007906694591787752805392934454287512261401368636991407049160552520105137421028122324633998991098039658468939037541906762231906095198280733968927764296178952060666019866931559023715017114345088942621118273172430463883024949708206227100137068795875039241571963916002419258479600685625936519332454296506151786382310358511542861431378139651102955854285486088130363841660323123723824570948507991944319135789896592695011856265221231113875021229663451878663108956653605565522899002998647849563103241839140836970834333539968500126243624442348455962109869266525088902560043045233292462176592210316050380089995608895356171833309769510449193567146809826532128959072613217042195130292878977113434181451537770717062174401159648043274321702804047717288626476050540012906455449868047018429263311249550681142175131353224298739969588929325790710898278028515292349902526225512269885937534310635173185827761941387348085295483727850426472970286224631412382018278862291752564823148695614272875761511388194660311849363740473706072923392993768695113507802436937168818654042558711447310883795272305146796985286040496300551863195485716401733075070148647899414707349989057095065601321076723043027673522567880361777235165717513407197582186319347737125595563801773868192571628844134930584303729992216077166037564930141830898957114621710716456706012300421364043603329204856709895324308750537839086184973708763611939769240632468779171048217007615876052680478253022828157375103781320521444084167211508188625804869851285228403553675865785261878685756078262738314447515773091433636589858629153615350272513245662663951321214708152909983565624016121505984438908313282305115282203870197482402217812365669022023042612692431162700499612166693346928864954070076063344189624382090076801051488989423863622119289797015647739683775448624655347104189828985125675918852795272386337461537247414729855412716611733956574016589416990102928669179916443498080064161466828914377178795645373605810610206108732020046775602138192900481894740070192365462694971722885812390614847767483160201321982945786474987471279392429216457210669702482036166038187079929676992192776637522840876297891919546005052199737684492404571825376719555433225901320345234726894535148168108973427741341606298117122639004218748370089413719176173698134507025193072955746481586155356440774253245697312313603815634672552106581634003188705523519664697104230287653888204062906448175817115364044553840279819813894493410325688630982541449129818266182551981727226652146239930864447750722443387419458142809782184571615921728457003932413250047669899589230272206153078351312041146674847776705733655584000776359535940402619834486897493488453532147279534668676439183634262397647079327806042830692564035019958579524121124864835111841320089334243087910342191919654165491573610273954550261258505419266134234531506294156145910640883554275365498840767171805631425634721547075075216500371280184345050766887838729462883240738091203871052041284692707613089385980310975436039839600940025700565634631191638815270766116067741256662067198798287739324423541987658364840915281787903228761909640254892273846810201313310973634199363887768518210889172232250758563117999779753533197056926278607319291855106420105101101950252841145366651340313554445122683038225613667180800852976295838361527542497594741498861657406343751292018359181824048794340413165948097047540382005476057423796051488148602924391015661453538887263380522761102680044355887577124099306954128752728355440405142840276686229735576105830299297263280403635652312378403209277373933469023951834370984805036708199203163893883855336710114731787755662153848663963119034788374657192541056454161905649601889561168753227760535573595143843059784356170525790273396344281387456314210583975438926470195944678860666617971990537550115406642616398468772281939494332858402520882446695283570194431144320470497156501083044834067582887985680123962252498013511698096725751496688560221130902703742207267366694652765663285119962123643806885884220563834700025046047071271339715849616244731677641835834317194367163928169394905739921683531915328628708580702823332077332780976386483289671429506558707584855555656613825924483639693080137295466492742791533221541947256170817166759548058271984078456417124208878726303399897245202303538581240164630825798650921163834719153082195571881951549271074336453881170900045023530657049776751980519125525851027717247278930416287186408598859812300463722625321818698952996862970469602909176222404782708568070755873337848302419832631462404271533629205741380811542235143046350965697891498481026284870071540661838887013088908792234064817088509354896051978129352710747471357864245551589590030546414776654460325993513254076321248058487323569637451032819822676799441328571501646096582800991638096142361637864597657604323555527165302005245905987194361753232508378789142462530268589200573828661043783219420199264085358942961494163825526079923328473621414022877618226460665630014778907863738992387539940574153516918167639768225649962681099103322226342014448545575380276644256364220661880846217865639103258153061409231995066723271442014041948886541397088448250437309917970205973176215463227802168678620799062505678483386022760977194802449401255366690893459232081804482030982284010366036331483892202731658953522221237500941699493195008938182443898709506650293329380226378472983387831015294481580365744377999855410540882069196939640013335550058347636561583678066892648613099402272535247299987829293496629026485941196002348062979315292508923553262571797826983866317360196147030655721431697039276414225858060076136776265271426149691840786475190675247159323894824492986101333558268055337605070280492858130881840073527784301360077452476538031952011123570826536996577969609193401609886111255293193411885779636042553812183258403373450275565810389844731398354647854466769883907220246160006031519917287424097340703230634366047167912244837019593236361573576020332454275499759268141493858360194220777677261099980407081173688942862321068037982985858712009671475551146184641275552921507671266151155819818958417923571910557485315485358136897401069267673533428838170391252642844954766366575403007471000941443634232817915861401450501604364501069844946881080894417176019533180881265405274571979128681598277149813003345852618222024593024646254698008785526550944358735147033675280901976469706672817405037499046178606152570896324924504602007436012717569833184267676284576271609250636944854164953660808211367393033920871054706780585545145422850650795394719711830786779110901827333679001285025485587473450649334292971065517047848710603996315480173450695371416382818393241870615660454874225019007666127268217544858511493565345672829595843704689302067949438306977584108097555861386074797738049202406973796036567971602954121972796990696905348869608431178045166496426715441705029564466175465557841349762894979885566749297403631335517531737755574198229689970225256603168365821524181378532575239775524117181138409238357436289354412757836001212863161363926053479805956184766524237397105866718270346020126347614124246369979434227162124065561235278085106282983093796721995982741968023366556922499516615721391600480289855673498781726310029051952069784498492742561966692075934929250959755830243340832759110459195169004747939892827347693741642686742030608203619235557832589523076907585337666376839816833711582906270515011874371320156047630971051687929354912865356121144492611475159957798847405002664292264008083468935595227830392620102097763651487164440879636484057901256907940965375365222217569180546995067321364860672404024335906704009429114207007091342001407186655290832928260061528160877838516741518968448390206020196049052531744538030687006305917120704549248461454228879216290181402658586379091885301556814576461012425470937660761091903704334977461578509528983417496844235120257711886160613439152224071090792216633008868277324597321088807319067147701201246037238762489461542531410986761147808741712599137402484622870750529206448842817613191789678864017968465441030556201788286199060105880802724544506655889109241399093779670096996392165496084151173518714824392473420685950738219327950986099331279904426059860732856360317961500306891329023345442318630472917814871907893215375802034511358741530464317172440817449288371769249590029198913849868635058131686846557190989206179063723435444651218352040858618538114976918485690801493454312492217751769032529832189368607561381056856782646535769666326174860448435915706624258864118762626555866733867944104221318820376025235596299024526082811201606243522212735493354851537213404818708194932898031264925521824476409831215457964672294528734527386353411430324138926963850345410849472283258236485611045894534068169223629915327643160357067519832781002581893886349044000564885675875410746703691164687356862049169874606378577093659959542426657142537744942516467245572970089397112710598098916981162938631751840391478637961846903199287405428148644848582954147380764694768637275199118772662438023906896210908808554878894094201987241390231776907457532089572728206796738367671836679397769604607579851461365817024548184612315798916018837315185771358229775518886186199948566479956109799344340138047915301011452120989018580804481949937007733438827831503924110905746021388523064376884482017858204524617802459950800828670021374291926446071396862375302624700060453247678502033046600081333734016274685406238063501602534221122651555125235581134415614184363449647309938348981467597810651348612009912290087014085690066903540255422551948848749693512375653812770214519528188716645182052160470455371106240331197951097603405499934297576031969567897668219782029387081151199496480652584139538873543063153051171637715604900948688660186636835636190760453121619355480667336612733884148097684840911008822781659753456039547618684671003989729773878690748653358174896420948340997667917628567297144011705173592024730178387942313370067715777366340442558304978362716506209283927009615506425760522277964371958382008272818901343756640910368131709143746449737699484361143319739066762473829923249119756378793707212981420615157788657602957080666690718403679834583223117974369140478874633067187701251135010815848128676560528257900032308706447154596614701703845208994250826868677464649384735837678106866519823014887822770128541109238873510704514272620227178676206688596282788465590526661725412463138123944513012446413814396510913937769083000720330218367264568786614615373411351063086100094574578893043500007901175926907287197976429451870421195369727330358211065189372583027791069139672531535203455448573037527230283840107255857925962176794661241982142755839855468692293333085590004513823062934491204556348267322166781902548699983663246333910594657066900626072691383632828683505714127122968653632830250373663992022146584399399726770877626153393818025417492410394726560469886415207625241960268158239249377394249732631965247272824474617498837929133951138248669496380727339136457057457603204233769793595223372757829802478684704913979508424239275088339360946108975610392812390741012041776914638417039930094048939479150229949783634691321811364866926499518433860222588100847121623014486254737325498782727465629419351329905477637569544218712197841923177608255759785787362766020712172522991736430299779391061636134415616028817964854378293341027020623709972841950008074480807756488269453260530888808501275423692594277576148276969950583290529832966951545808370940892801977590692731921462744247793289469724973670129216653558385404091624199407235499356687183519030653028369826752107980445046359656825693413325850153383720050399419488347616828318108368109163074415605417592812182978621729203733421446195807004145346662001655677723248855535623879913784366511442929678764006737510878569860828553115710507981800793360783259467543849256644850788649215600721462890466427484767658126228702472829996139363824448777684892374903886776188994873579769662234859271160343241269239801897462271563031219339447864731940610170101076306194461963773735047898996964473155505603289906668203570776505053747530967296518467134927452805648203600916272521666429092330683964837275347953738677715165640888261128257269111421315565701595063048490672587964078424890783061573905406001845783126747090547571632445793005128338703568839653708210100858326187680074728790652893144361622467909156316154505650541900246124214927748096495846776760343505823043582736007885333700619169249079822073383376776384202851399697237976515794763296751907957560157949418409939928710479151162132576635175194427746052331565100963552067228023885034417564716631194565726187380934840088039761840537604230050304427118318599913282277496608021008086620777697732158910876267242878445827012359498966825921401738146425559723702553654367252217176005418522317494740812779177838122314490576088415800665324881702575161247551867911937613249557554781301113777517906258760750438874310584809197491501705090916203205287297925916340318749118720180104417801869473822453257158600306612304427417613906712193817746452305621664247396580864724212427410523615637097975216966937352015031597978433770238738012761919909202200872776614829687253016689513544407074190659693143962391400340465903984614538188910653577842197473703345732214237959730249706064352518855735990735395835928822775605122200562637270922237333800479699795084963883506224248170459316318275040797583774571980919484898719784755646363253362027499072463710368728473821415054298332564086543974744137365317890551450642362630926668564141512441757545034716270701149752984799638264691036009084315428008137972199203113644423155410796369854445662574671080432210068317496732780096872599622958766345176377507228792429378035603209335268883642465133050850469055924300453639777839892115334390352242175257328689710422347388534265464695156970862451023601130918138701803516509573457573490461298516219223184348447598913782596026190438873023797131739140588674818385990508937915872361625168868402529443616162160180238676733480701824825202370554908300550408675237981267814645329206624365974463826325155277316578968099138587868218229888745781412151578630970480090089090790011158767919621881314921797652684953891247017259762622850735032480199714739828376474745528390733569047683556374100923471987821087906407793284736477071917402709162991763072431023836552585666393583820625690195375472231585636612864812707700182570490331087593032418511761020254370885672135957427407694994979685964890813647895251397850099382672406155052828600313022520309369949508387348543826307599617459448857989592145121477419838387710022331285390236954580953132618066127562344814498953046204314050135860619508118158746615528935533875854253225167661485055105734305215621572433843082119528327544256440164110176236702699821805463654163135742439476025954659695924185955575737325396083658391109866330762351809108901147129561166213507190699163534517374797224900516233142415645246118118730719479484915707766524006971009276939893337001205938472300161168374138615646224554785481774914810981590572923452392417609833255981449347133203221047291012897611165503926557607476265445915465844210716749092178366965293950601338553211427547586703007624401630366631947894970501529804558378752278187857385769519388027319984442845914932437092719316772534345157745624326856152413935425951146315516189868637855197423547027802473864472521184736643631389158647871736633301431083496564915055039154540896006724949559868160445370178847565735960723780437219857024351626320158474939110386045340173707895103806947711058740486611146525070131128436854059716104316894824839368532834108419984228517402130485541872594081758623777909099361995673364897493274456331499876317421686462013326986029794853757833725376099904400293900675834743246249382672201408802959096403054055019224473537141026910263779352035811471964491273699521593097125447961869814094369007453684527845022172335556817228985196642649833976122311323641234414645615795042240514118346168772521087410911622083817981900399845841254665707627087700578459965016240237154185173237851249496465098536764247167695798358650736525714178774711251554693579657683358000818854958418780544620725512985280481184738846679360205783886587926708784720559823860253279148867861304064113234220736724870193628419454042298706172720938167224601001834862091526826516573244147843830301073946435236735567942713138313373436693144265787090992673943947986845887268962163050252453728011470298036216613211276875224206856212370051442372632527152751776991756104051849343592317590947976135573533666874605267332420862976836811086109049438628895934639096372086589665685030114409704562602875160272984030934318293486894823768116773698702674193623027468572497594160330745913268002204503472389865172193614788207965787429012077291740265985526528965284964542667922360789358049497147959903376798502518039092903098236076458881755757731100311732986912020184258026629775597136991093805956620336427339319669255771915263350353198294871525556613769996797130853058997282361844562535366044476530149431520799869201445140848556077905931552770996482507116864668587581071047736779222297854801894410249203670568543358385410763211577921946342687022105541571818268190275343108561969859108534245110373427323595900848384166015895421467635464545429801227266714854879344762812664831027902016111709481355954439695869451129098803244816126940727567456100628537758010362526162610654774475460378646759722750313251345228693015387373968390641499649279080133127512102718221250445761016653434989895342342408759428301447361691882680098461008597759763551973817760319873661442558184752185925929757737002935839182294115771377610443588084261495811807062144199556657059380127394623698081657057123432164835849287033629821920281711795153369062389053443520870049702671997234277828646069261986875426672899602856863177361315771635387733646422946586272377165179322882391276732343512427063666974038524225555978227505761154430109152315084683699441520279778786391781494543465957704631109707855243725192707314653166940551870144123442691755974275166548851322695777024316513925197438446955230447470310594627185756576144684831422864687264976515944069185351780308724072068622539390165675906349881734725719878579656018820599713135059387911490898326651200717737290894232673230372009553194127812258171699709009474890165001388331528704433317008218105931984102746308783527289748862950117119623571621206343034256393096889187269382763778248532583786219255170394275310345762007515582663182428188360926209969709174957800300002917866667567910953173395866485092341094653317169936889761186067507294483378976418432176905144021034181432016902650658234207512738564362759087896183321584554902424877884779455701505883668090806677822681808931732624424407387451404578590323540191488454358934388396760316431139725117848953761562614502681211537115148121926941159314991013441428086818378435947831351936810842937524858940378212348988558437463101831360267767328833097323993967383618184921644830828926971273766511559456335942761820631832810657464571338334500810922751085769680152873980679413751756970357656385082473071471896451441876288683246040554619760892400289497620094401062154449008243867603461646635376190185907402035002789321520269049102430489472830000916290590415357411718435687970754732800046935876625296642253176252145303075554401171030954774619117955362431582452140535265467347401084103025090052242100993895138858446668739636601438775035545591854188213787051027155859086086899793346118774295198184202954276392041258376900301678986270845029339189298771710887585104295711683997863787635803707635403178993873320279281760486760721107353414365696731647769437978964851493598975884450093131435318794320798356300213716039933800356800098447882299791438416205915022576361605400818938737748903646171739057821326672628537143172448569935388152869960742226960497156827973051170524468623896584053327880953840653305593563223324692000220660101055610951596726470849297533393859788162351190294862643499663294246192208189389183548182647740414094194119270053204007552143831294952288116426799779125992597847469263855550654615689238717696161779429830464940228670205020455822963511018602439288142170355296045165122269307132453828426684732181878784327748489686864269776359210838490117115741056838913552993592035421069373731942914347864746004296673421084131695712178232689214447409951144842802044254942874119601172317555541464576706691032814907455684241664540437897548646013329466963156757474235447416274267625954108445454114751591810578322550692901221988276427213326962325284963062273006714834403372656642600795441160551586506723361323663552026161303975924168990725885618189923285839347918541562404133599129891595760465050732240803335116249585351416999068240384508782977895869533454937425172127609625871351018952242264804127769772699757048344036793176368266163252555262956847856221748718663188910648209190387841231411920481167088090270894202861603361618866156483613929743185218075905137852138718819114284949051195578138804720877685220121294523262799051125922376367476619852154294502471547383630767865576100107245680165305942521467002617227249097473047530061208005454625971221149741273124609679429123495686280359308844595208485030240708834136758897718023091960963362517676441946950102790919328589111636727003128455496659631296003094693035071370041980451422240921788290531291392313047224353831609299719385518768639330173719501887189892150692228343987448788233153384170338658591625837488858840385315237816301831548246629574360480637251813301449943664973531751432395543472279383630356606400356708991041150153872301688014360127301442726343814690088628061322404515539978347450460473360628923554465874444439160863713949060429552135131364264341561096813420792999251187818669878782201312338137141816668731261329274508303016195614536514487266808912984763797476838870844899173566144334047245514982004600402285608844225245588468661047034341565118475278501657949886282862820303403602953561688630580033174017744222693335600024091890074767875613466265905024464421871236758710870792677011512574116030121762167414639807274373402360304024139015712179799097567363395909198957558087762564759325275664824532972144570894545752877289137151356773875272843876514741232491276433298272023556612481358576789565155761871501414351890606789545727923185006255997277132431388742131201716898816110286895623538314855931842558344617628177407524875279393309177288714667243147272191237079671441312700015046785641588044401428877181590708413986060493936822376398694105864548248804771073843443299804192353138408071782093771302660906114643792478846845707410045220073454044214253640379237041576222219218595452472907819227889879541640679273194824241468069595869493419073172059860430757845238327950968859944874755895550609779558123686664585337648701591446992657084706763793632052762373894995880734604809361553451522811611753463189785699717976141578263105634945829302871475172600236393807028909585113255253930596456692945616615443313343353594823279949478211429563610888053185646645691646876483646534119751817202091836135681140793114954722480830493669606380128428293709928296458635191311334085790538988715954486500686219152193155422689480194762223077232421406487065118524846471426745627699565505606901400860765773905437428160149539959772053535549759858000494814780243471233279578894563522221430159314412581596627888879231847658323972201013110137412361117219618482852490374749237233708922900446012172802762302826370088363116649962446904015891656060451989605262304836104665443216816140301188480009541468440998750449185829072949313673491292108082726668323212117622490368895893158430202004575863035979191042298201695354999756414744981461008097889856492360553610787318243920518445358146734679443532811620593392909996501060312475776853907811428217623556793750702029414327654968188728085635317918300241035290966859163036558413617109843192171524179034658219064960171162021100156053660917007261141050843072556612957414773989345360597953728984191436433638431505272944670644130016985567359996633885690259765447604927334063041546489457326833740837672164163952258830588919510552519131360482850224746181879402444137025659133973611878946342373174396800318296687908989905880398397439543919603561662269192018420277934730392159159204486448548600517308967025026127787056569089300464513622702610634995579760090769897138744547177547422314572907943952871819753628117803838670018820760071101411428338799846818777970697729181375346077287527805902581871692375659405730849112702656776022379417031079002651395264114112156415799060348856844271379968197609389647250013774296160245902263944275404103568279949726960654964905326567626552868200785238691308749238010889416037116673361062967785579862026035418943064507838547684790895759952553367955936161343725689555847552638668051007960682416433141009921132428635185191172483534671045091393451545940306521080190236996689195646163956952655313474325187396598701105033112208389440013626500508573655903429531706334091772880649903768596727116446637334835157406042186057163925765128248504914299295350101730215816242786984964519008110789587918551169461265278836078702467207803559700064644250136848461631156432155587105795745874237231012995513704443187038487254959856489718310239660990282065428703641006144795713296976329525317579073950287581243673978623320236639726583231652893572434280408989160199571562723355641855359593314105258733895971756743585350519139150239119504616237954969709882448368673173402059975693491156711270475902006704017842136270501228296777579775837643091275118464922412518235387570736096700182898918219679881902067240239162173750060187821691677244398241522551701179584123936902362739740804844240635109978788258677294516483790926534898674083375939284669753913619907080339802737855935388100332677930201954610101380989984822798880243534419799610380278571159105081401814866576576878147830053416928327830173045599275202165330734557690920291903215331440267907346611308687042658047443962311655838255169012900882882849928754591571218429418538788095139596541992895313273432430308790752438014273609567432822476615514969244843851782652061624835907669171133896374644918038481975502996074083239954618694159585705123104711206268123543415995456756007461253622827265926427637076410404241473222528409119921009070866881550735693171420144837244090794673417925799523910469723700635654306533966401634675932714903344419773933014977229925617830878713695036813519644877240501504136590617928445351973617342043153518887851098879835431029926834376988311833237322674174039762997458636322951098568780123237582347590095848708945379429874201739801200201852361182183818416348001006332333322959640410847885976771627700470214409849364014083686946665473048329954439024390947358022132785488268620754073228522136822139362790582044210003167292732013823770983224053274777284063972664866236453069362842009819366773559177769407006238762723234332049023516323138154205773754124899558631342758895607621224537037855364642294055333025356328603417325138322559424955654974590442083047429604878185937720614285212890850936104178176847131657023199200502439819616909219300542137749972946238962777699855244692722418000745252468270085425638852364774999520015443095412287634504666900307697797230391333884405922951209260707482310765674265672981284263866606661449484507385007288728715724525120754036847241036878513787108100498794390763854131086881259906926841910478659064543788951261530069294094588963921770215724702825035271522040393540566870312889037575065696611330667345237907517396979755230530995076132921964675666419678385696190434920538312012560604404757570871466605822630097417050358723151937723603813591332893362060405522606380527859903649438870779083967089768597326793140410058455373917278271164598289300551633081767210285637546122890253504117569474908118959509770687764934291571903905202750800936659224786375625174885277689830337300484915671583411240954706032577940981970928585120528438484186467998615592230214525656620007296309015365094703824588574264239816344638079956496032583992526657446649456867407434847745493146383009989849781615298449136142132375157132543195959138372189946905657344393452702477400109131428833801098544811961013281432525714897128660344151467869260396510087375918430539289292243484221252808241750356890183601737228258210334487847260065959325460588094167938031398273210388735475564332541403801258056294792229182688307830194012195246512597497456767013461860434077104116670278584084435335307444064165850789706607014180381930504054958904804550001813157472609000873809412488330970632467502372241290226154834391803900356023963461139474272986162856524474651965903933542552830596873021076783948980434149623845478900417270610554964305541301034622980998689380173151257974429242053871471652723804782193317535537202862432877721652574983377378668731223204715132930402855921787048706792012997841714763645749537736751974002131412061605126600521862091125602807025355939765703008935725407802072651488895568659381671921220093096851302196988349431494162128872287597305575384352749316581158789692615996833385166910192381782517163547054692918060067509932326843617597739072167238125082067904833497587188216600621427193354565098242639051737567020498626443338820768705683341043371032883884102443082365102155750894090128594662219063617131454029262173328689421485183781923434252504291284122432735219440284324374941636897191585285105713048361595885032662837621943046717344343101159112647647041642471617063881318452050376553986407668290661383345434540809921815875545814100949049441353648054292595314462595029779697634503824238566626803606006916334967030906548341253474210079217574483939532682601070124249525829286942694716819866452412580988926802013567231673508455912573271717385724775692849747048679011054014489079229587922042321788166206980626695449852270591255578536133411777731443256753741191381894501935834336828302232240333657243227974686615183206302130733083410431016266328570050513591611658711561260208011831952504021390611746319248319701543442178218958407358272178213351881961147852880687805334110770120381988240415977042464147934510011046713176358455787236061175202606047617781078045439457002901833642974966196840965841598353173017116945325809010132038046999096048466925501837396549414033501026639932575606962076516277382589117513583113262177617371681068806079533024580845468444561462968798274946689081329377535879172026553351707310109294678573184694317518474858882171026386581803369575547197816239554559787026457367205598440720977953978914666286576340898136168507756900564590081563589541363618351161395550106378846790246126960578190340341966936093310057939151160372972278823335395975883766968223424934259035196565137219951085348230810608061333362556864983507234667591720799111709410910159717707364851824846174465935791916241859921780583703562715159540001438202906138885365738698215982845354186687549760408091727768374450462976949379362135315591998828054960682357002072168346952980173565407792199327708203022211822405291576813605025277617809983246011664203243915008919834090544619631165073408684484795128473370106811402996643050679354959783349610734429490872360645902151098573883597757370240980904201279491605463754767435426587423011852022444774652618006743205854192021435309757089607104933865661499962720980227412486552354855600035646823491058463012135635416029190615201403342294221585218351258104751340081244356898224975954063216082149713140969044704582031075605861357910824762828690833233180556808959590364137197079974349576607316091674591491953585672962729855236503614492394344626062105770385651013971900202439177337688107490054642379234076908636268023031092029102772732420294705574925398066626201334444276282261423213411370840352078145980711064909460601238243883493591727435915175737456229862148580096553039315855589347123917882490778018889016580438175074132991119217072699138524002979434342583483366473617310665163783058736316327767214422652362864681154180957357770159427886539799076566893308642450170470390311648696305993703303003783509207909880106281639594621965387759940421404258610407233825841197847188341055814030102949300261927348446758183701146945101473813071949189680670760358047908009667071334138262457448058673825993214246303260090086138941544095144539077319233506414631446372327593065354291976822164336654543129195339040223592509441288735807150464126005969691689718831891361143218458317047170117603197198281181886242337945495678891118328011961543695422830345011577269830980478221275249077799121063783278497967313735749845423633650659001938808721794590811158475800777960918617701460594570178339684662847507851025915759388897017986453858863526103932184994840494032473457923804071833180340136095188960950045453254715748498760470008299272625671979144872392290903425653763524419783625488678057092427267499535136285801175575552500741413622816337930483935694364992383476389465153174452870478403543566761946751548821794567332652276008461210546941144868276240251532042376911463778367936415555567177664524544452585423485986020871643371751171596866953709159524712793381898304777787880852306645767813634737975139931295755982859147698543931498624139648323033454677680614047766856619460851161624924357162968404672881661413038354375372890921541540543449275778384093093704262148411577639026058427314478683991660674995297336158266287679842050281570427470510246810043845173937759185253973931147956364417159389825733798000461362764404696872695591597888586515907386838838650228535667985029569893364879500771535652731358807955484869412879649709916017314850549760910243629135468243343122865514602885342197909396844816540376998662599276420656670267265953996823534174997269216775096272984356545903561561063152266443780125965469997710529470817581874421221209099143180026209415103803011117837872866850214916187342538991674043947484832321168594854612393349449265621509401493922306004835908845338686066100665140732087828344603499035989349833131415234209435432544166951251194611138338424498912836305079184837798622382670831255649853827840380113810521922762837725279197810096033899012140199058147561986409526403616600411225094925570974755923035946378685139564044799070527307765864093292562100824713942438594805827670509430948888533643445880925460699481855418425522880987079913418958689446350884375675996973284375265711644024048729981064157717705871003078999976773777232852229921086712164981418212839874966838956723672854763510714908558197443916944187116075328108289986184431734415548862018138894603356403150398689530848239620362325425372563749128536858897796276951040380729125580240409027363823928642306373735828224792618964936498418497326840495431939378253492046241870205316293969015127727552168794640412171916257742226468779634212898561222848605026843679612660169138692544341372319137142962224578117223433174198137463492241423962212970083675221049021773192836762983650745132294275994805911654959747566842096902372655625789256439948576917074002386328396165385599584762126660207887996060908639117112284105174053252759610315166758425440417957608328712316409346875048231679135693736883170857711148627227323803837715990764291871518606399075020586301078638824359665886372211384232685428552038512960110129966298857322117857699858135233784022139020133079119291885331872488253166127807832702862721829389025647525247845646740724825458216438458266764618471321367334818960360589031874964333393830183280048969973529505341326045734276718921118855646281352242931345239862363930047543482625165460976380243798160188271091404283148670286056331062475195215148509516306205927975428915163016737689710468225090924101935306891866467895275955227605466738481754205291913178785456237156810142563976155084708809923877754070151684432975774914307368647055268031273708537734784248395158488629177390932961696050245185957433971168765086673462594089035282005985139411910517974872535665671689991742119084216936849022512425117819303663413226183850054312646888544120086734043180121057350202304036641519461805600726924417587260762241384823257990156626408163266521164963064370377129239187241049233492808052151768870933912927992869399295380162668895185674290219243580774399275738241451408045579388628517860146012799872812150691624039477500510652742457805670213660273275398587321262785887540173321074948984733970953466956700954567337163200837024368637675586596188590035132629506908583195556993018283120806968249482905516751299578837608300641290371251929770760028988669751318416339963411539862135369764793097572325828174375824034785934765557273279307480351579473364435228291660890147744546241545696173900470748046650512712697358021163814340102697657532054794435774056844850576157628433275804634126071954681927570464765304148479076013951732473601263793512374846295950060638504420218367427973529601045371804633368989521884705225031475381922708022082328991148421250119586542656056026978409536167930582110438151615256528618563966892469965686074217987122673701007605856990606117578846487853473820655486331705289859058678374032263800359062055942958053466905389624150882770847543704720861684722879816733420383448259121666790121113681910524909847480133006229333773605589654384375332169587223108900489486282569140149258205836845863860831154995594413533907952921402869597725092512704077071826574746854784072784324162861986006088287701478502180965973085562722028846160595293813798357398399928159130186600280689346055800591657081341130074702833091412629075169291139493056890292987401079940698323973313356441655283391546203157624372239983000008871770411384430163217880694447192463812545410346829725110095635820049443858168356845683125895273149756730515104504781224803889970968497797609113644684182099561403129403728160126817827469063872795637291376692878067218805190154479071523017972030229865442974958198685479377382980909089525718530544530717213327922590389606152938549112008281574049218003714644659574864003689506190166557194078913511459226718080238927736296755576639410270869014879578195505693074451068568231320454483015206266091905952026756317324969249060650601356406752515942300175105295367961317873886900517898221038451426688654177923777505313279380643272447544585456097866439696076031229204801428513888471400507419149706429617103891718963816232199550449386020578921876181851358245775491741520116432358387948969649831125886293605310329414762725590067845315157956534880128991588286574344280949414469048593800814315275791083949992095904924689594798046002854286725784466862927661729805736794118988939739797725306474125066240000694075155150348846778660679284004891780084216849862558122174595079037023113537831687749457206305651614006837300854710308080765116513953140212917109170083884102981379197518239677407807748830863689560058765903659469810290595392176798706453859675953492945105517413218002781759938520133163515716342912853109069683324907155270612814601490438736893293174308576323477327333660020541888452265192738465293981199844613108140757234941208292803413817169704870379022813870209850171721914285370160154372048545533667821925233943679200110946199897583624916740423557092385430057972941364783985509434382607993412617215182534230666880713835437293970606940851959433724884046663601471317742722296360957146523723180046820823345737921920191805211664218965716953948215403900783499960216266056215693470570586950393676337225117706944459564826846517051001021026421340206259396972319744983786919021058321075359853736232735228359118467043859468614954367318815622024755101389690832355088768120202038853541406200682287726958674537527556558669954123420231041202530625789836259351469031311984033093530039968670492964289517072156601061395210895130929573542153571669888230244963074948634868784295597303296284394030839960956898238661902355625262265449821253420930692536982901576176955820110305849397375659301290181337962986873008062151045866672533934334700262928521343430225823052141425956020486669935267731072800597683902685805534973584900808183413908182062647766318748167722088485621274268291336677545092982877363478040080366842828480073611789313029647725260762685229959927762117770180036891933634877304773232337301982100829924992637777952766150434099952876817142999977405034678327041657509094771348969004316693174637962718345283993278100845124350720244930356264780452108678057328563513894019390161633286982085357997601161816697892359341212638688733179989521438499540676954415210556621422496359759890075683537206830493729072074584968417591617433232133876445555037605554119687640867654305674168989510033498143308848561611200960122662143334794185369239507746990760906198194933412971184510136671854062542471637518383772033991443135785480317895009026454307994718730940365134147621677225347072635655418035244956215568794036032906903919275392496280257536662980542001141961399680714508807682007764141702166939583003075778945590349936920771645231477913595659384285411566213008291029595749301491958014557666088913015338636206124862257046186981533916987038628218200264576403241691644319787573537577967766071183223244975696639242441707656617033540311738672416778685950802444235833410967815154848799257556847191994423881320013647614785542152094337220012228227662396567304364124747190111283967185819010824961416662929764283213332750444673711001866853513689517844895018903496306574707759307746664825720448802528969636496731299885872207225778873139843181852098607277833597505374618806727626301263491950505426582001330952798742308545729395821743367712903056387292195431832509435821107901641293612639273438256159444593101485820670217919989031796251184245105427111669965115937212709964964167714316609706700333367510944184103591522351526614811366784863576280789066364877224402114971366348140924133722381314948308031140861978839345696816020398590644116488124604986353188019704759616556962862326670391824766239592945141183519422788461065625820584598815566306560450714245747888377807389048298445094093014308257215730526102565555594517034397255191999989074596890919792107654709027152996743893403412124638061208246945809804788128960531156644250603501540838055901613156702458998779024693087422033568479507086241472198095598113712343767601755107728566270859047409318930027890538283118903207433809020366878540479690361313657479675825361763236631157604617439228216052438611608753950689786720371151153488678274364940244453123871213302813804336502537776534802388788201327341392835694743406511648627688220763116466844727148823049549604787064427087665294004011013052872384342867970788667463019785453589431008455796166285910332715910965561846853335807335461144669773796361931894193047644760019545231133389794377109769382016315322302403164596112084751953266312428625336453694789446623565323141566844571868108415722301433010072839759183344557257248649632827445038303374203495837393208047522051932530346248007644780826786323735422919326601938888436076011308063243800318204512307907252438001477066725078401481754939289014413058335225725753152375425835298302734676782674712071955588960053765553655870669412243605404312631070592976341436070895749206637462964932624124704201540257902151208464905361605381973302627456661469772460142183675430018294987139181013376054821127127028107174219008565558333379970294426588272910301239628178554743625184831739652148459764685657899279457337217673095879034395343051705101636860786094597419976303367740409621616878074763998929420586849500769974181600031670110359922263883882513746626706605624159370329971676391379579528031189109919125826335936534836997822670787320334246470282917332690813176356929806071893580075140593628746500728436597116493371687054092310185763610458463919712203802291912570406617477423502811146046698191340646787245955349665072812573088046850354045555110630916356001619454035910791595609783207543307057798110874390777882577199406958989076442631136339734650579138787729301862172076749069747317504527716027745112557486645179992413183812129796470420746975228891313063886829275551820716992822300254999828806303882358039728212016677100758908355392110264495654699659868762996563450454850883345643638667923504682829499717366833863882897313528130666908989958716679049885092685537400582006120424284019236868804573926187687772321525391209144882434258638691464341051572234187239263888715949881504397696734910882510086564924688083734490268910771183273866768045333272358737437301140130037340286203178434764640906361109048563262856615673294770188860621056903127447159049071593846560447601762789072645086639729531270592110804055610256537666499598729154061764508692011306420747152931980566128283104834506501975730736918559291068490931836084864301813543094137557017505821931291525590166393692211835434598634569626106985575797657123376102991408398180123411061249817108361756921030120681389425239212636229772220580493609468472618542271470469840739666895230591287240487813247509262829529235510809804467164186622319307460904933311053456096012149140215063822484699989544440166615011780220689803717431693550244428392155359210466429031860363473751083648476023792023768845262588101679673970040847628280491816192513675274463379932376762266321836494691671451434216462364395985677036427391527977621735565683311824605555432670268088228216249783606403415708096096758126064986715946992632290143502431139949226357370317402398753209289455862963584205317722424118493144617409776504749587301883203348346069936877852592532626303247943258103726273545044709856332226914724894512946088251471852049072852748173061315504445595124560871828493850748662305384740000499801310998987267184120349360424229261070758764474237396685326334960591459981970572487311785120830231929763820452514908508228596099053177862236209225347552262973745442265035495436926333004033004049829419304383143988153540723002830038415488400405930816331651469589406113673817223778290825813213571909616086193879365390360006628278925905551200819957549732610468467727708358421512900115713371708180610055378216242130390267429692478625444767589713163161659673288344070306310491371425874618202766432373975977882129892857917167618485245276252434448310331254376239387486566259487472089039538086324611003400945011344176131406679341922012895860049285845182855805466627280432599274822616476867292166436694008391057010725839534587805170116156637407410668609438689415934630843830429166180067593618415984783105004243321263241686120156341670728480727118859492061364633304927407170643471212335169195492937419166824988132018638590303711828614649660458189832369893873635749999358649859980961709748204265486573701429606870403947727068859653566258561724480163580248647589409756561487000188824384120847949771447977835078279751900224877794291379905121691031405039153102605128142998311800738536786856472258098433160577982564285383029909026863009482078294549802280226605648374143583100098276963870326775033552263381292895851754163831382277439765334336047885115878128765451325364255282991134975360524266151804499243875863068294919867173513010160034869846333792397923182680028908829980723697311921660450421738542895508239047117392810190117716260175438762114794245199044464199014685459074281302352158974846383876447769561586408217737680266086999104435687395112677740275643418562314401491776267271314167862474015278145666962899796836008519702067885889331139763115861235917908486328510886241187291551452895885567055012726163009029109517700738666888476684521232770200494708961183317119745757764187101585648753446733484402186192262006255422085886348050927414275365501289937506209299040551214125514876879546191044374502280666207482376966938103446165631330124043010669957281097365636105994281236078864934596363406470868577206175324645049090256166281551189108280884194560310024296586384933370367884709600105170856718237413702569421268757234595876329951735865342210789321624934000376966153601665326556229167588888254292672378634660847114381484332040828728468168394172900651317209566071788081567366929901692821012009895852484602503039964502792791667474933660476029157895059970658306532336412953200953034851704473456268637096642531205071414331174084096033992503572306258447732309989138658328462554197626384372670222984332981037135416880068074732541133925650636764386837281685883969853584881045609865764154430801239168817245310044575146542468571090890006999995301136242091744916040988193872861104791063007442976447535420853934691042186959764895791128153706037614583725080074612214331128112647978848838027730903437525209507785340057201742100443910127969130675254204129404651852739696791022842658265580081597108489881955126439557416758510370266931035294726444779973338153363686618211803223968771387547173555895425934987211805392261006610722957255343480148309804024790418545017518056871437687305891398605926858123181006524815289500636730578552287682034146034353535965268804670009505676792945600539675851996455873560143117309224217135042693498799203264863467244054153691759423528295883496379852010713679524462208529227368382196545323376610014826804641718926420210274299463307603272553775068633443550760379866960112652477349696799188704812706380020582321132751131038058795500189229713053757289691559003385147229039407288848919569712151565723636900019897621536836644612979003057376313596481470367487029677512783949622453147117347964022883626350818891162038096188330234932142534823208773432044809368807450401879031336027980667781525638964198568767726232245927160632139007704457458390953428511221149480521346648897553391970318290777925543510451637541334378878823097269645420830939747383347649194932498584326656403325601962430199059893911008467743658022480617370753694662520897002659978429500708614532442105176953935658361828275847537634693576538162439281990362770883225061622893370319711514990994334273964468147878075999004978915340863962520185782871762969553822694689169014800603754408603552570641354795835741011114022409455559262777237249130692815442184558226655337268525475958293149591359045220617505068332802256290467117362110715622265826099114174126429997007478165549330736495905418350318513119857355566624785820471477300424783694999129019056722410260522932068299220233150621153334609415677159895045292847426339519437004563124562921280931314653986224394099519840084345510527685626170763032890468340700677660259284692320429944814004468452580508093261436859041012486735914916726334277697630057669794275762762981902375604170632610962753573930819385954537679843263035314806511787334027138674928906725761110971333069280375477628861139662139263715227033637532425395638031943922169864235716292589504698757047435407345180082342951848781741783544495825846382534189013864425981496180628152108042073753529460175191487955482095400840672580913149303821429580860712551628259583536517977641510432987654393941186666804684799419184274408911677623110196944142041487944915565736773037190880184556739663342724519996047259662272088303298488424462890672353695307002976707104162338518232994821995971052294698759355275348989333150284699961113746213142315233387679259263234300688200042230143663284219610966852738732505265344004859701520406397056730756026508683634085949971278596346018692351181943995749855112049548608333431160770815390972775979119248743534959290032416239462302159198615387164076099710852587037975280957449032424129602833041294018805714117928647718289085630450851745814024840616718945731840208197310788456872890761577342729233881059161900181227835654456288690901030951214733221525942926578470279665161721999275801327300852216143874731631200510977069843708261405154585565361834419589859057159372816884709677579997805369321128471710820434015827795498104654368806052824304887343366166763572985210460697168782534025311443979190700368337887717449883136669041119207756787717610180856445203650634627698542480225677917826110142547146205513890504264009919839150776356417256527322930949135243807607223856197968042118874237621950112943417135228752386423196692057148187036308783427973911479939540511276503677926555499342993761563946318374683512704594691097217506207729771591813421483016698429462980987793966352084755769905932988661662109522415156090312688465767798970521767183154911440155160939003689958446741494305307483052452302549335505384277444319515333022383298709186108722468066956195082987152394131103986450945933981588399320058711437346065230395991991802281237661773026862406110254544574824892245204165000190709658302667202316752181060872810500822945503081722639748276717637417965591084415080584588242631117586295505929753238497169036301773385088426365367682235339189237528626951378204252649015477818553525129835383982569406821727306824737043875603685634645263605178974255815370936388558589428801759871173024967458472332333141480990690838285487039997291338332105516696191279704218245858994551542378593884898201123012222330401004005893040609079022622143114607416985006947852890655537933463418461338947165413341867939643752531426030971436333798981099473484502526301499452424487624285023471367750758699941356769755984322467164488942177698443518391691733539375874307860491646269420159112518238308537581153434418967961480955640123507093083423531558482603046838429270732958624010260528120154890654492646085692677627193700932667016920201758796799270421415964979751845356634086725166405449237045863109354474973043652489991920979159024112156597916710330689779796660884860799739993775461481435391890646062491225646102530379835062456093267350046859651680723098456417831214112493829169176355515124819657282059233478707919041153145381995798145646266685956320114595996866692604143839927778950835358821303115536111036457301544826097356203036800985019905032353111380929358089727794838999871533394831105397169604838403781829611563436705651448554214746824972888383970923964489345872850913150884160016438449419166168230804590623923575154065589478485242668890993853988705112650757769147959644914652769346647219649906367634040644836956832726607923665204125667637774088296593914572395854273113794436323315397841416946088817325379476330912571850561342787864506829851531436706073571276127362393192588810274751844102456420795173659981549762039503287206513662823524830794678036402836941524566062818807052769279954970891007481678731339665249970041453769497640707754478368406732690027156396102484819832582243577880553248149596514006215749844791615422105637258015001234317295137071384557600589270825901648554406434722646923943607084510449148438777843206057988404638727271846199283346032509673371512606625240723743410314154968681950616691060741393019775807671506274395385939764703492521174014458023869411961723149935775916697667130432788359548415821909532103938931969142173956287223598358078016370698278119841405211440703695776753400890527028718381155433902708869667528721033332345642638687617654941911313339001569167387789990192002533232650082380696567569255600913386354476118319925255328971451278789595730290541482964886358523579621607721185803397247241630309360140017852952128450489127674684861251519161586245735771359221134348196009315614421986916011521014679595357621323439018150810072062889570878369810600417322606239435602117134338589236779716841076816409323315326360010057390788030826880177784671479203851788744241931895004635339903312849327354949631114306722619885128148354819768398187058593725905024101276738049295057783978751466547838564120093041043157928792969277238062033280411742581224265904673939320744647673197578357733427830253568540394497265127948220007436095516493341426477199866642618404523389329266259433429629000254279954742112167504310931056993535762241094275895679628151497404072057756583683117432257691389987773815364526314272307044718470129816439523738893637148564684889728407471741317037121841437902326195693611786662571619478487985345290099739607051159734571320670462608587527153359953333740614030735405196988253291215372449253369469224819357078057218312535077981425106486842534298584572286723513179491386571545733532760535532230266904619951708161575632150276464468518646385794802714644292284478453596332963671442983471081214194929206263446356045815776215656232681691414096911762257882151455786131509374546022030984711277358963188099105966730134924650071705991154561355511486768950121065500564428143521221884328931269855712996606032625509700442097525552323587737886333224764949712162746307192190712026274195927686651476770683661026779254728993574319183358961113783079661611813043213602669883324359046398648806775964032690163993750580041673525087999916607360848805686398822889175080171565149540249787230554971161107739544056255539896344666305378883948956084903212607608309091987723685140498495386457748059429950767880876083424450655784137766125388404405752226315115923861745046053700551158565851316832028904558491345086281975279860604594423258482805424845182906732895927566998884580756239820666721661243041958235651805509117026860164248374004913083417649874755045143359535175714588780592365918968920017053757664423576670336471811258875220723509356267740887542757357689507054881675807027947134540413400415037351732620719773571054958356226296294881369614089741197564759097944431943428811577721700336732363732452525628981934082378912512787264658442786992740004626351116552505487423267452040076433366039382667682767762968839261685252498121586698179977899919749708215948720114805894869781651169265718221037074640412331149158196493496670653000970329037969181462701663737217780673133080939419406922787150059732629172886103123845148186208718516762032623894378465275556461808096331244094147007260776965424897299939249777230130224485551330801424297009381101708958396440769406623688295447013859389407387407810058448770299110977379029627503984350411963479655353906047362913828435413148276708644556081715267326516674785792566544346465138372084928796191321251043288218202246923447158029079189613729452885789124820637078792586739705545527221644761213910349028769161651106027651110980096727338755902675827332324107752375162370661092020220228766590848431095221803244998352849483629638422416915501634991209276217720185521275072963818193748135526041158551258055406993494760646678987464582721582967421146573713319316770476186947665720760537337241743045402082221232205481307750117744192638560535661272724993453113876889616134919353766963978196667902573427710516516112389224915678386958096990388432272200304139248110467445182800084987806016700625530069363008124829557184238132859625476319059644582147228252819090220300681538509170445304726563122129905098183245116484716064540522341603575896453671091855522879580066309981688803315792105323962238965283940556155716384135356795298834046684557596684658519559032096691158212831990565105616206117535493022923521492717016458621795230638721782809894474691788265883106822972541870085600105252232112270289051068490697862274434334062722749221122540627349008814435432243485581724963757803296847841717606573664946504454326753383174811006332506421101877664536216897434040758001802621169713022533211226353972264792329902094946353631024171103135741040050850362348193204980776538178255848488834253302893843098914144515356095323185681914262503126249032487872583161059901194956077394148307010299468052666961057485558868879487844135549559628581387073632545161346194688372949620882847695584605649701340530458983207514077948257275705636500418604553500152062762362225922803045746006974670983174246285745816526002310699790552181419159496871148124316447347969249087234849232178509579243966570988914314455404011622870775340652970704577132501140595107339464178230389085250845093077460539648665164301234587867844366904745835019930082355863051330406741030887488439405432693965785362498951993466188256380988730304290776912685101640323889205124379715422493117474755278398818896922617638719491675923056883068908957608263660026833328426212176823002462025295021704763440194282575759203586230717618090419072833884387935748992404432630701832385618197107858390552579535584839307168222764397076260335510866142735752899155227450726863785166544283706501355965373731794979261963849991148629147435447177563815961927251637618121239522361264543885428822928910156371736097920511406544656742577661166894579712769011389147236861857517364967260056338215500717207614408247107060230571870786336626313437322769188168819794917515839069456222099172688843212088714340345549234350813688630759391590541897585281790360744182871716159471034896868742936150670960076841819778516205230973988747856218705146844183406481157295559643153119570263380699450514171362719574696819440060432024576025716465397275977392480704026748002507996916586887962723788708711889188224184418843824071544053288641778609633571356617272804217154390034093612666694734243257798712035318561797588152714530489138212843512985981754785834513321599418225355381215565508404715760876543188283906518577614038351087081965800709384065608615392786426882048657488177527619493494044307106431291814910099352319673830221200925135764975444971523961614667430552182239265730133967348767253334419766285020466136750176341695643938701050438797181436776889451299650758787266214942561321141422119508611613444198022390670082875571155854809906705098604091690127895119566397885617700289179308036388867916118733822316317708888670547726358290979443209958995531816883698228481920497134251646187886786025683975358996480833952911197232130605947846101242242982723880794973878829837437707352747144517371560727613623915257094009197426238146460153295079546571085630180984196605056763751186319461126523289030610940439983784987775585414969427192338296473994674192889083593010882792689444028742090198456695164165625867153974844440584014904558312991417025271862351022038744480795815583131431335725676034965800564009088001982921402501208779601344445786579742409304146772738731653836983917901055193511977514642836544945503157789927263505588060306596018400335765857443661455461438248556097996192169909606944726709770710698087098406671643412353472522087059060784589480980445670432455239395085942237054061829241652960139549562253260987843219797164920112430437424345844019269734904203819087240693518668602054531649240134651886103562324896067036390242756144018309479501581442637657277012891223557343939673602037317342358123247076302114024754632799885993759370015263781780876890585472072683607513308828184159064658420468795435554687968820801462218406118063259038152899693925797562615977016251902009113648172390506562000639184898412149002321401499930926730666599745994712851215928746740578735791552096000284389415226838787729910594064534611964444745707561941318739010099473268912558887449506350448829621809266597753839225203622995449742996410525891006079377938813016023877776274667790094542709578484049200590568375455737087929773622587168866364891995494988709766440396273856309413088012635101565438453354698663209619377951812459300893654486751049708080168321040502400964652300301483168844857929484684597412884662293805301591222976182080950439141547981996676662543761970670831089476475904778527170891524662322855080813353727399817268911981839248754635374536988674566069329726215764743149626687226516053088245950908398700343085691721519108431435009070729344934403117385626705007735850909774302825095351249125734310470580933934936355393040053520565046470625819653640006705952904869793900292296243056513288201412480568321310446545892262691055560995569817246654325488893084777574259912567073635798356203313707283648149341713981532983704485024217298601579272972695621987010523277586575131194024480058420597319676400477188685691033804625686610493269358123983023989155873466386537603674959689831009101607447958374323231129369771662482079616337107381913671308745378079112211604406632793913027937106196845608404006107828953722460463028879870949607031254199967912834035831351714607778371363605795942404821091705340832695873727431375275767756621393359782755365945050777342720204729839352396464592424482499782803688719676378643631306349716641221029210341066105850619158474681549127996999530582771512421335222934993430785819174348034567502836041529417227518035880900483220153246796057035848365426086115641484550482481877329273543633133121449441975739883869754915058377773430659710125876865567322275666207779886049911683961646370019385897278951154470825279407733460089199581984244221951651437331071608467136505322567864863208126145531935772370856967935498164956748632362085563922684878825393772138201790303189120235866136808424556878436658531516810864014590967705177833257957589407245111765640285451092161227435529561874836801191921408486957934525522496376439295201477222186449291330532694374837990004399778273005963561134731979088675815505703123341934670441827901934914859250737443877175149316148648068212266923996567271068135248480246650833247892341336952785026093129380374014316364977490695685049319426842236797786070983985555814704736140884230698051848658269223271522936570233151822711084501190508367353663576733683035082783601028757796618494107266277750020505081965781175173793214095051609383321760668086816157688606303832075039315274330282629947467117393417318873784561352713164120577795210181608612862145331153970874979056372010269239616950098708370686039835151508476996090881953603216144000066175613789253949433027211881454851962297597696377464975579574817771813528603758291356919323984757683738367170877063473154678716554166454701255637380488667036218688184133862831830520350225421477527162721890557502870637441598463187630248529708187422820367040056252898685600580347076483823128975703171279566173385530533620434715944261722158644851318560378107249900018090430013843454600573494448192591486163025437490467485332240353944006671481604741514026871206815001494834807715956773301297269458569630394269613856982039510998578242440646807760978323701365355241478816269232341047744629679232364225766746590054737260217662008264905369913135403337896332768891984430049372657559883558805864454298887666374033226446950456382618496942291228306216689435683906199616566600198013594115336087490540954554232327165669681712328105040883741541750227125399175469542136919171314010136290818325139042235756232729234048948132894128233234240113847467529677863846593653292084519639650337402861894850326263820454090013303452903424116853950477354450941582360131325062242676934990698806611567922619848615439926610491250721575256035728753648538890083551212156355858513260388291490813332992203703197648042818766032181274396486550733717567469890055783289990228232226002937331182794556281406158746411839599944465184631881775446014875780511774120416146988755132614049059415506689251137216990931431547861709180498301262979524552371191944318306983096211198577124280046473740076138126997446304419915969959923984397633009519260877951533895422606553512778480998803214811527393552978377951123591671545642543717818156509812063735824973218162211555040269402979141183037510017200340270500868017422210270774886065497880081774267349573333903702953048166192858785078685732249829144325520511042683504965311351570170518916105133744558904296716498109367338862661981805485435525521890435889363671600804391564772216107847386563355868914151541162528882304712263598685044069461379569519107948668352332983753637259290709156278312360423370720252693618761100677018200080491860407063569078778515646668772753043502727760741460692159394506119228202112336916081468585170213840259078294657614263909350510883870730178781462329017481589648058228017782785656776284252671167539621109183364905194813407491998305546715959738424642306447736910369383171575208304619628889026446835283336928386863380310738082461021670248114523240278228780775118071304936102280377885669762434421872468031116282585156577722809675489766670412877184581567199485487253521704959249900649190913828006417553983339152379031370588998818728619015476120885625128032867001944869385565081460354883798639244058053692150998616059653165954596150095650059608108138264316959654566846212486529568620727429501879593399863757111890617258722398365679877926529833598867876010286636543932014619949776964112550181844438830707152855933776040290830318668867462039848056546007318941018873915103107218472343519807125732890307965877528909506944389935510286583216567380080119789210798552270074160593440800536802829085456201851534500242525297581156812341092154547738652152058614993425863097934546142393243496609791875403695569453678466129707603520474487965828751430777277335107842366728945704629938787427734464545153740128369131889846929346414399779690719479283483500084451934415418854466718460647101842287541789049176419971229697514562725100148202354110566291583467333926589952386570689550541294331194727602736119167219524613425228673747574943364401254316643752123474835984981824383841935833528012511206469204577152947413243226006167194878635611189102304070292624395787521206354364099468527567796806201699898039032081467996900743383778390051058847218039310966201541529826486848405537737536058477398075443152392015958292038911360545687931434131985558339396908724666506988310222115605426967993779576736467465005209582804496708858650295542499672303042751849503784413382593047047372547355237750552628960804188232943073662894890161914612082008246750012685222691199476437705747169385608594560504331382599987166661819164047626080822552238746857305559142299991321410695320136665385893989774896634106141297628924918324813779799205290985384785297653987799044480519840713830324158309133394543342268963342295397862869242319652612104293603505793445174535685698753053072907494810424405493509571530312052562145948045999573732455509711712576225194627992960155691891789158746063520438611026704631453648535732642668209691155134370229533868094399304017797314949784466286578799640600040738376864789715497514837130259718228551253041212982451290922415728919165822678764476326720972207257757703260167010403255052737061946191789984591119841607685383464129012629033572751102492848904609483873857261544652320711237078143974392055187348349249959307841532211400430983348562770100092149296730732284378610732841637633271433828412024940757847269206411415063392673344963519888775650817318600799037450223681860056338708086201691743935097527274259517300241362896932312602433080565966673152838151092726091155950093157446102003978038904022818744756065633821406673594429298695478623162316226898128997681158694074151717468640362178667313716011791238600269243096959671848925500196088182659052231633285197527539667310357035252409875917697220664863686509577112186947441618974870265463989221321189405551887164456973360980827072452932328191793240326411272102571077835923432956568210111801082803304733238607091227134059649216431487080072542184779631730674387948995335935756842210172719531661911741692364488427884870348721427399794761753046232258770451032743134044393789270229060494583404721791532265432897099503709796571947815963722248694183066261322047926793505892149462559324274203903418034957027984956707322916158499906985659276523853489848137890054764380329145340590420123523409958791359157374889299046225738688483035472094980724151174469919666792435480118652621751262920196968018662910347671233101541543347508851531536303160591274167456138670518485336515150989172915109726409303337690155056111282884778703570316574853137052234703665150158391059847561823558470391618665645298435512581470711618527417751191362489799925595833693048745107423773195697073664617351477646999253470591972124594294558907427120489258489843152443270965928468109790587565330090543889712748156397468607038619908890192729703721895723145666963338020894416272558172801721403565573857376285422448818801175561626350304002661138528399991456374419001253350363364820485980816754516381573032011242295598436013578153066220811394049930379275076328152607155033981982693868495090191985645217130294457692177013092845215025391341949946279740363913111587670650083513987582185839531158486557903955493316633958025768699557846076296184330055326293570170774588460467841360011952956914048211981168530532978714903545967344051208931931958770633631513455780298643446671314806094128595934430815817096975429675120469965815330101490432880204347565616106249777384142742327639062171818493067380085481515938861972052251653054188870032874185362825059366505007763533447663928648521364375929846435523182767170744857327953319174305227861027722413346253006964489858985477036731314847740744582000579720564734270119773749996773215360122885947748179704051403469969637645958514602331246221872075112517326032436884091228725730514045640537212644148613459884284941679242506321265878183779921629341235841482947553680464226298504317343671421357079300050052421729788729273681268812246528126949694332488144367336926759819570359626361468623542409213174428196699925152259816096432272767147070582265583538102577759470729501404167757134254320681977105076080441022370998076176673067089750583575204943488885525045372395897735264430296871961128775157813947873709579184102057239892147625251379288786534490065693326312665996609170353041405552247074128517846939996518549144721347175798054034609171499235243900499106771312459962061071552531397672655210675341675805153488603600513281207154355366782267075389432801974402683088309919652870300321618332927518521564384707185933681661331835386626505118778545248813169781470740090263557342696082312030302554760295065350950589936516762097584388006813586992158417399998453131125778073051305025079886534020015056651528445097491434359216960805005086270967849687922829024575112700052617941138779779145605190200895563803760597347153893917464826087859461502159638681697494203198704403563009599824297169435585459886819993147164481762702828961442468681144063124698175892824863613963925452514711703654755767513330228205088944782783693888678384842890966131418733083716031977423835545669203965228952796807261907383436042959581732515648804368056454977399509338753630671861814964923757702491334307317600626246424022030716995766700550516646659474481321473425527865230894317965045977548300059750891271297198383739642712931662971233050625691953502492464403932886185487163288385059771878693280443934930784871171009823871481855329747064100220103870018755789082580954954725341382597524901747217427122344931226081091548752593710654084523623319081480679859238994321125244700999561997726245586567745528512212428121244313218226681391824493226139408454350952811177577071259122645983561960690159788647655759204788018418499277472019163798487213507417642743644742021393740445558846668820370394213717305033579839622053763247265036226651640626766525570533314537153059092489268263147998521918320527718075293468442895472207711993419358408934175690355793613418848891960010810595919483719101514745762839500700032085166980720332479760568725347098199305630535719524317463763966250540869201994801233972520739871700516569562048559663554472950048192495739540701890909443590675545273474264255335932650703229921490991344163695784089979348606873913267280727231126466821645920476641307995720532512164253724967835608791117193881957932347361646668443902988872153985215193410575955875578620638865484922844091687219592800485641226458957902134639994754413881200162435143418537507082642133915376007309785442057713076009927653257803263161943024170353123765938261143896076056194814659132120002552573618742126118904421911304809509663435277589609564239489939395592506891762512856689572874761274275255886839033474110112207986571185397350560474718535069293511894354652111305465711677128010166791217710486500867423724871812826098815962251494641868319102179216219264645168579371412793330713579202021885013549313466691782750542829953728141844183129067773297177133562598125156744264602975976335730867655354113394644397858323333144279831037546195805593171984817827575656289482466673264234485336458359033083704752371051091774310782454990160941940381217739002935212720824656990835281527599646996299309647490582987031855079240650457555668841649888420407832146289380934128379174758199773905026604980249872648882311645005603755695970419906115232234481404018997370224219008742010883997912446558084611297715685321584410990610084867795901666820072866681195716863128541305250643308328852564897082567243647765313844412892859417504348933798074430734679313075276625566235368282246371429475737355498979986373226949460327212672864300356282412353832907705916383599366436874440889405704461832233982958244838706986683159512652183799540429086034756302519800525732390528971276380135658621993368520805417643217417913515091061592591565477093456575880832852909091652459561489905989045703373740583436937463407547505612717372355922179434204942394077193104994048489710268340717707070692420803560844048175131659254266797148778650016836115679645833381644764564413394010973362234969579324949952892611384151284880164733938704956638872036365511911270170766112971619084774328989437315104003660492337259836356544613651333192545848731219178647747221789809858661730650442352351370854623172646869759656265440929325584254089490690832920758320972693728799989809246193493428482875273228248340651674101429654068645340004051367978957817126622794315248388172764980037067164343452815422387315773127461489967424523363495424293083895415107421910770786469910337150895457239711106135150521020994663728864827113284853914983470141584369638704639154838046648952607929040057430072268511864095277984355550715939537116256187741637822982458406373822744886303348212451756770616038125125951367094741983530416411127314761531199077104439243964931553245266659799116087132274257652555163991128499339712453094706526259074808292065580783788685643669279956515043976444644894250675199729342454054066661251050148530911741879653656721912090423611017197240066777997840832892784857932478617207521458407598587715676839294857860204276706842736838788375437827397210789708907132797848959555595321860951045660114267873742740738903606360391804027971604074077489037067493526577411676439116115367178303856278085990762399654703050617841477222103707512672629680227467900293533786498516766335288207033630714113366780182472674038535679189909820133712820077369080718508932112345748752284351106309212886902455275081028860598065270069954192828115533645735864704399988282816883264455125040347443918849180329039845271799998148971549804972583760405610010103606222294805426132388142441499655841828798865639873464989889615793081750836912442365061581362234590536086343773258662617694184888357714914497322201956019124283810114948283618493101512695435191826288805249202226758614834452727284943497832732445113599795933028651154658907906960103510517343596621963074799085422009396440151696062423956579045040129921091952410302379705259634724168855922637787771541687466351990011873840858591062703097728814969213908394809168047113218968424819329537498815287856842842576842996537732979894724011744015219264942626448217997252597590495658156210249119284991922621386591341273760468426092420901934853665817846231930336098524084435546626975765728126103536094465165779655327474970948274122070828692329772180992534698428197619531163480181835986167961874234079499829232082958436551611033620596052414782180095879696687709465051699958831159072680887683448035585946727650789729113730919640807382429462024833515567350404600345952113598371565755100845262766500629215037418003162754063271153709523092372201157251680042854341070035398681153191837144140167599241898631829515288516847503303813256427608156365251645461355093290510643807596676585104152109297534347640924970816886976027711205245844339979069536645546539260733791428020885454438817485722186292990398003501273866477152957313205441023699604154860332600602326945012232441101385015698937389603995193866664743855470521996481489410555031366410738361599343039770965110628576432481571140632521435660690079878328177377954639145110573340456966468093851978292875311133062818020733059859557246078000369723546696502424336087939309525389582550979921570420407990837131793300905012810269703238672040912786535125327635365112240796918321943832402736947092059215203250155442922945450323180670430497565700139983476136346961569158649559685928642966832890914585524739937500499259752380905086467062596798672132015880962057821276325805478711892118051187240174263793832779835483410869299612493966976205465223331681122369008892201083927211175731479500501498458093909438256580450652580085501908161560984386285477748349803073344623816309206716630544321625156740948110501699724473952826204290721310593728214163718709178860322198640630853693240583848706437827197859643826067655542430365119376321255289501657040897395027674342178852986570476054025381623444828560578896677728057416185934403739062541570683250263546182338450601601394873873059863598135257366914241928465041924685338689664570508486137925489596072212429671394847057202254032689515238949131599354938060590408480990448827559269085500696688810725956298635821387514668002357713061278865166020730046743301357403004176344137023795832024717870677456998612024429758309686008714399284884256007053526291769206494763590276429790927548678384748783801909530526615645067674222219311313107127587597847098851066718708624762838527835856130642534150782334631623119346282982798074521910222304330664268823254677172178760340151138089002784746038122620425293795947497941008776100488530039871479002725127048146813216350567280805274502150050449532031047322052485339564983527783485852425616255939267813912190620483593420660462454417241523784378747046946532727767625413518263239687215278403747286227243098106626251379238461410719962106597306545296712841449084205604859597918265078435884059405189825249444874054228644325885195480834110188047305074583745093834987860869920927764277753131800924765817167706308593543311832975839445875578111983939320449124524936422774821013236214600270492998182483959301144893153749330093176698863250105113205602620132302568060572434165007019813535396569903006898327019156362171655039417310885916346546520442032619730071800437097443431719406202509870504385768136268622722217534598532310295436570673186410495786683344719002570681978421751269016274556286536308862307438130941276727946877501528395482458031338510964028387305097807054315720837615379546488555600872263738460242656957737849634690207355014758423481122874144336924457545418222549204901644888331724812820464265670317192718782281328242255462492277284764015626907782720727779326784339370866041057938533933804574118043570960022721884258416349536973770619236604745971942385993172101573166427187655985275959364784296652464610221128288664758479763510266448089222686112583027750978839737161343051929652929752481978815638957320935268935569690441930906355492526868211152545122669272957495376066492617199421070030893334602909040428374979709537496126469682814355505155906825958593822539872768392897433919703221700066111609161033894696547045199762076256942577668330757789158495005769243195607439373105088758800343362548711490838820626621154762802399706757599938603343698212092998896633111329566658349096239627560404347018872734588165835169851564147775062849901333080584896733868929038462851705762916955200726054832562162964549549264593278919963596119666513286077737821986498878926838375032367771763648785426849289301656689183995582552718429584472457406802054802030517768764704803900414742216645757005332214446890403325664955304452285189433501516759832413424415883870792002854678582587144021165361098251694637417218539901528958191741857457026627200558494656198295038012969595114539551978558168726224215876012764565029925190627978348989732985820371572808493045678611371571413844833995169627710339467702607534640023955348407926123143187615798186898904390202319017120153813586979112709050039662681448582097106240832631519517486795454170781775359484646610512257141480570862060153172392862436615494253975056741687719809061393008187490934643563424673018591035444834388535602934859092236146281028735795004228557094804199731338396837130430830205776755672025985978080313568898897330492098986983489692435952086617713066723227676886689926020796020754266145492044259134406048327382208417650380358572629031343553439238196085196133685807574915858154306231802086311926279397443630360730654580755238667169723080991364621072905000345475111826931255666893500125854755656087826849794042004973132514213651045639002150319575220929393210682016983362540227857797065733183321013070386011240749851326717317645258100779657888551992821508217118670381261162665502395376065730929822397688067582012726483105555771952853405450752999042251626774096112896827887312952073539858199511501138155328677018560972397867275405865587236405756431006812951448250207064262314279129707325544887772248755511501043267779942513757892721279080234336170077492480221173129875798177866146449968475603534432949715961446221132999335981907191877528770264745121803916683496587985784987287720066220412674160303226865798137469492272394629261379099636698597125345433790008307407580126440381945342228298662110047818256619929186730942429110515847083270612368999215025773826439726554072084286784583002196344505202086017737094323321257608001536367422852181258182969645824910911187692881306995506615032800337001089781468605604508629711099996790691323500641124592308341387888456694136611461596409553711025887120302163384320694756586716568289512854943106154115797304707141386778760352850063815986466073702424070489843486762289201827238502900661338603650203335001572420412900707541273401572597181204283884551129874405078617281570677541712715847400527184661817483056585896598258093107058634923321855626833146228112372448822326246806944778582972514680550836746504651926230577568108343265104705963892917357098831635339320530640838015387563814049645903542432685352218405954997399824747829672466521456167130473351886094213815851951632791761404264616486563866554618374233540594474340851418157369385322089802491143139173211507981167294128974122169098607969417286263389183460549320608539945915688682928972198726656862053829066969318937590809421934053525218595953183086553477230734586630039994427747142785376105870358521456466509700186189622384886207302272329850820106882832042355505193263790310920074791420158046185591792716888690083829127425799772639217639557926155638833132716215820423615538191206435823737952650420144540399994754794046167888061912396201170461776735396306096965119488868048233815771579072226928293127500643116168939383362606083562313568173088329882707877159935849174071767109565052918671574847272191145829161378767883741952733181257955184038162435688502115223744026037686749542651117195526247033242406720337709949967220489888241120839388483957913775831423059477265412309108997399089769302764387204705820469832486996495456190128381035370236594189406819758820799027990296516393743073395356391490697529713035404146640700867187612410912989255126042303398424908244637843551358855028866854287094028494616442023887717794769707396334579740449678024236951772448732694572556689523062212619541041695682926197741509781689341015522297225479627913380171097812715458929615693017161022054042067239618646503292876861328737211454704726814010860523365687939655131321633452244030052160781916023194466404005290595552876937734270768678826903943826571147020396621779922106904197769678191767097770288767694133519603171063713635404490599343706029354679202911270337098308455392292509001557020840084970216970386471198587845228732283053124152283536195493768896823831031145019796973884342736123676976900425296764638250821087220624934293830282897457867071306870099942950936550980131704197059604126861676235727583179708401313952430464696407995623497349314029291723556775740566672059523582543356404456250669136923656266607559775290032155906599427358692173637105809249790949757777160852317149387159059572656126580612064690224432186683956680182002929622529874348647027569268248306989184295626170336459203966037531545544561135274721811473826196479136895265702995923635282117331213800332837530769936379647363817339375630706471637442816436620428242783699164235321545215412950799451046368685837841820595399879827935229472137290210643438720489019570743180059681082227575507386371942706137122652712437451028896839306822538961372448137882878528731907487699541528388846372801787622075333381577616970780957510847183702552416211740388284430204190550433833227338362766423123851584697329359134651967829171996409755123566411716648235459220563943967792092786778354491278464139235735666949238554359976637507645767025057121084376976905719421093873263818014707689952468218996615652268100317673357497411195544514533252743775119819591871798057539726772218040945073670105839410263320679720319505482895049633733457510583828477661997806072747919625769730158549737322316813195010275999872651271180285135209060090306753168444795431761798707354425503935994682353581438693884577454332502308210684388136667435608231752241670254116544063758564778793231956455941639607352737795191885683305846609129869588036613276774174461719255108032391867458577702749199716304693972222847758479594315889466349950290364245198363042420573984361440172408317256998193524706568865713964255106432174007322972419613073266166622063373682016527487791978683401192319869713676775700341880306981143448789391251114948308384418030084663172508988913742776550084296590935891665554841728031788657719314393270654646525484714806760983965505717191894337060658251641379617073758011697685458044512163787149054375304189795515852565941507852683629373275965389864197203539492705857450068035333214238425114579711153866817904020138861130301853906493630477536173798220023095214568886486541704168152045034787550274307465501297678381427861696979233422406205678358328953750549645900651494577218010634109032226646144435023939432861350603824997780386805922792438053477852371375701546553003168019661116754540191881155452567939233778829389489175377039194333762188763803871353099460472402521213576960703780579556036802513129619165115975346787583736199644251652223785808085426337773964526555510761682831364354656502801864516341722949848444326816620303495939032288538262766505800580692260191164245849281196571414525139940657076755085967089665335360880514793404435913261181699961918404734809912297843185579683758823898897644815743006438150829561321931888344858886969338349254131611628936921123552335512419564960481884361683284703079888822012671354618599254726935432808374568807474383215250906562166365949532686584956026828728884326734761760383384613021446436892848421638397644274690404274141821585765275976889826443638187835706039625082109493262160169500318126847233494018541780222767069510985905061695857759157233648779672825866348624319790648588472073192177408285460123582933162433717288738888804788658596141720207072577206437385783416550799589821018332215741162217385953116225207087871840573453065043069066127317356953011642034980840308452143525776063745027126074565249084981001614763875749023594973424350268079080100545992796876662629710140246150269050038297327586930820874663802660809519231448824109249308594711661428383451467358003857965716796041004802312664998697891050277489480444657367211702845862216804582490637997105864301061120239144753705694028924003402571154226148113919588888649937526379669179464120016528027378544306453580933774477348292566401719059275576514305420872119171462551780096341628212521315305574074913281560289025832369328681156702016271501072177659637866544685961882577182618624051217206123910362205409596382366781551465320043912045712099861307272330648510439599556382114430475100360868776076164088822459290705936499277939957117024349167570058338531841354455333667618270442905674864844225390973173334435627078713989285073242813745236729675180617606149043534331265419923646367658492056969404276054866951209970394734119743147454107118511442826179410238556992361904864727481326246175599662035892112151248926699855910500020684713617923669458631196778780516314261175738787637475881435720095642798791059275418205320042344754640027805571436542786311873042185377979405230212060299737627933218007190114459263172022895877008461834810925599218383010271283069387259327828183818874709275770707390153218567809171289890540278233386159647182659876709602893939058891817797438377462239501590925649428239237880514014699639178156594236506112396758487500433809861209767725139122416305659424829608726715445562611082989063100145024621009689773442374412448630269616811755604097950734435379983683084637024747892998572890533252275715319605478326302395561778864890493448772974976478707977880643446097939323696000047611578248238974079830854916538822470133468115449339820782358934606685134902451530731152687497337987803081543758044631206493294919218001708494240233898927333995219821205035675428638010636419446951293156697531465841497986183814394892013968664105074808572057120287606998602917232300183766882131556606162418062500792216802200112247262894314290207282875197208430906805804528464642754708648425384859057150156623418633290888698862000799754190039679182416212948226168919590501302095541639224420718207171820711566274695542285043316768774224611382762026931053031079682142512136305595787472147836907666671657124597971624798512123981787102762563992896476356360675901240325266838999154375300734346818882107502479901639656186395557754928719301860771811486408325826018257158782586376097373280802987433918884743561197053471146370634060762215910880092449343842736468268621924686886963186419994790260543901238963046412388087467976746044899546987984606833252815594484356129520794672163460562839958669754945492496947023272660754822160493943291534468584872193555208019229038762456020293297257144753403820245909573351125243518722379208783395686668194897365014356006098984906479216626796289001980419329467430865492693861695616948486459576642780451530799307247392156672057605453199869843725523529359788181812315974498036763484769328009076434406916264646322603496301539901793009416685840996716414412872920414561423114588518046009719846779514258443794863521740856961522722016968217339924165212023240469796025167391057733969007142849191299198867549652748984061597226381265735129740078673584602368034397659175588265089670041235565324457763297502270991496292206340267593680886360449721867230240526898767178337013194592055448038551038807409897674131316253970652892370324213050781824410398032950504114429108786345181953760986487381334102942451384106094348947678489367058195655066292737179290487294601278107759660956321000067094577901335777006004752257669238978807421430748365278319704344436162855338621923280825457843616075660377078144882297850838754728081951259288217853384949932375743813673287172029383979087104713951918758502484474901747432512662200036455424997064073223152425271875690150999385443430823317136400277783449610655775548097486422049371662358003928265835809285974289476898424403987893562812055006925689312357799146734822289698582578268164001242640345318064072135581588132590812924080812844283732618276970093517906347613796275677415241621708899435656214436125967715672257675878138270921715846016879304315678402083329856609355695498716803025488878713638055628875008208693346002467962337058586738105444467888395742634239967976008803185272123760570562264805531869060403759422949616193867158029500288611476646442995440718813702024095128263891487083969739841969434914240483185067956080352999257493368211829533278882548497268574391366392218263774798018629607919234886137471953791811205136658215129664824399073508942393965423302550478236637877040290499275205883935426826568821602907523163077270273472507784713920578932872074794159857213627702650645429752586055635333755250741746618424813281586612267629641255530565894334035422815787150651907681503495127865615869521569775651768734014088448879619604117056980647291965901078684171298621654823270917108998758027536267401276472677990312505066625428074605811686391407866952519968729846901135054248063701339202978031193596724747071504538610691252906709723755180563680006698161268595785615215223589581288656880130167234659801973450890532124353583008140068669532638467432217989788430302029952398539826197410061115436416581268914017661244920871790398355935402249581797141431091490592995680989978753232627583789769528429699457459493216355472040196312673258757404563143096606761681139216145014075319712333546093085963300848374507335091581094468106244057349554635474212421641962998079577063184615867327615224500130872802236737329613389712459264871992856904322938801354948643189460185792515078834370617424061678695718797416420234927443599698342034709415161669024208177476957654529662135578426186395797675161287319458132080966196785475263908651837186397488805236090256663358966418073450063366040187277722450199624289683447373395988194182398586238665149482001848007962967058873612304833468380974215669230143376565795264339112269303265751627338215332284520113646273642013261250777694853720503442271801840905794125823917750124686435004769876905373496227959110650029208294291976072720011433135014907336512575939259914040791390356100262302608611049827029360073413858889689796441216934113129417877807596216123977903342962524824066357713575090135529597915365180265143210280962955621422763993926783454397849421590784040827936095448931188990392431421534050584089837384505752238524351704673673843204112174750816413203332788942036645406707457153464209711457203111967626679056456149087604301390076385020604011935412450875813715627168866777321209178385983976618294232111327297249024185600913469313734183558302206932121250353959081827727491648258873584034269103959128179744283718174571044139809659846566070765623507283061914302501546730741569310679927381527267736683393449574075597239946188599345714289075212852184760426156952204162751331696501815362771648954223436440086399644186251410376306845031040927941345581279824527170297473278557824745178904243600981426990025541717849441405408318477094273099750323935094435254935942583317021837482370856664941718540315739262635616267704582320703708626447181347246625582151505628132315673692651146506421864855064730039759066211299759190205623338583742287413392651113735201902905983582578178665392269751796249316710672110870367962876892617877750142876408420008732410111374660397578841640923937003523035196059455914228175628444212459576994389584655845055208334757861505140550938981469310137057056571588550316822017773322611546869973818929076611786278882527382924781217233459017684920729248655500621214419127789168218966335231787507345424855047444181690957842417741840199522543520706427069075288638102069310064727298141375715059474926500479666340436979211537579763168677399530582972584673965660048727275657691996550303072540178430474070591865019385046794268940697412571901827057483872173822315078109722094091204903560446703978533123750987395872368703532828885177274788343441820293117200481876685465615247756798587045385684350848449721804693144941998408859802052909633343641371056252424080481624418353157651879234872214152311310648099440038812591746064700905766168456955756356787507964729953216631287762150731805117201669934661220297730151472449790919214122893272666278505861296712569542294059972282307779513493414773613866181609368784964771986337892311392878394113876391375213558248019028814295071414247165668100224657282591521781596512784088727265847067502480029165273286909931407369927063583930386018225156655255739609047457028681469280692067591942294297315632458641027139490732472840398516835937404152849947657848265879965911821223934191368007604015218916287307282498035072800791784961239303021998784073537052245839931338933410213708375282376924538047378775221566007024390209254683156555440903368466674637426798240651670332449914282461109366761187525525296505364950317886143029930378700125284602624832363059620393579054912682113902770078287755322163479775078462663644049352881804144738899156462263442614331375108873818721670404385847241778257210359769473349384043381089667946141459470142167527088548688066359236321745532283202606994143670871440066701575623092013635907385507901174045668915501867873323796926973407195321643012241878064984691273652345987519456302954179090399002607344085692393766997227342712886141828034777923851118989369123359817438435275054616576017813350255402196862227326869884457913304005989110451361865492800573084644588644485845432181936278189312273361817386330432242236011303959656767167224681645578469990533582150647328861365648846297876178430885046065612544954600799961448357803287301383477813148220610898389860332847388846476350040574826560200502371815673683891574146073267912686002119710339813491146232283254504312734233482928843945853836772204527172259631090771265560589095293428691245946424244418368830950701813890330891091983880350153584961657111426967391694957012949061097228289595337854592356437794324748133806567351143069756700055733736617891718188330998263491407939844845585270653898369203303666804717616868101435688053858078728740264641830012365576956444674740054289183685082336853582481059086744814892172792036696324744071453758567622396980106546204308892406931890501087932285782584035893252309704199448981882330456873909192660092024298686964117398732027809119439502324319614950366113744802082204472525110488758945569262281075408614045332031998468184793319249295734724033927528804166014583231167149229067480311676258243916466007785247430178550536174319371472085855550955450353910780881465665012377273537646147760273619212733819741644205373189488595265247316829011520050529493868037156646886834278764811494808253594952565178007518702984300555052747943732946624670867072932368191013334431108303562713700872940749693107401910130251470926378798288656564758429830101151487084467705260195388180355048716934018157782851230046256282970474906704324399696775717656328942951354334865331028536613173119843384301177545424950595657265015251306383953925833773619416675227169437511614323743471670542226425421118239093528134517612615075411635839517496093595825701717426409683232158433302617681824461559484056578432768377011689041442996466104652648378329138651864722586540538416502614135747329572644867908207493950880238215709384722665751922162595376615268225321201045938224371945992773643172644293879364900986788732400673937626793777550114744579317364228762786275573196381175888050459082618681084985632880932626323274712927078704630951089757049971060605996421369625055099248676916938575302839032588796321469712287986058799082441653967670012457762267870784785670687515097921705568906266324953233372512559466511504585613917108626219397573997119536747678000333874489824829156485502444350107792024632103392139602988996751319114053532870014561531441505740144659736463814458564273486117974663715575680677762039665463552231363856686867025990515059133663182567963850106234179333756557165192139862153451041752948671802393087217874006177374420436529705019970572368361823935524449295381082263355688120633302142233054438556271539191183044312192205932835915262623667204516317671128095661324230531543700762110804215282580748136873881255247114747566864280618412898004787669523118976848628094797330710975032855245483058374602180606678361518385216441026841367528892228490390612616948441353736388022948568614098031734590763922149683617369593502863607093157668563212581319711849921698296726608733156886692485177829097332378190160403651716967713195334453324646159836102002669618401550765497125243029442301992160519697732759533109175730520323328202361156413789454436515258735415984209003758319348385697451979117580567367502783320288598992830628280452756189518126674860300580696988208672592767668631771376650976485094823731706395338803597459844031912921085804385870244319027828390973237273137520314037438584217236835623728627794932310725092547623591942438178638773668795476796218976177320344828971844754140146072778295194824207435263578747757930009167332534268382295778442181051576917946182048755926787226656956074409696013189559151153907722145040577569986340974327562438390150570689530821930536573966597176236309814225937790023310111366406511587633899157417331126628507806815609699725821603227274139737907669786394167611478127229638033943058316446079868724313179558501581465172131686913149663739659664782945409577053941893648974756471638257342520544922507403837004015081897937596113699177263395306892366363082072746654497041624186825888021285216885046286530118529568354672932049840567763280256381475799503027361976934356107681230595353031782685641069040553999272032937922360447303176725100537437199801242660279385533018667264413499805250297994702700904529196793211284720291731660207050713501125470137343194333086857715838659548069407027802809176755935237135800819481747290175095611744536625577173581348376433381648741048182675526115434559745937199809246519647891059403354070994532193231413495491259097870027432150426467395125009646653084427760493171465972798034578443305848426183030450910892653464392093813535697253351954507141114433611948605187698225641303932755338654214493179525524352726066762691830246105892504445672961400723469503118254166591491801157285085975178919732946298501991157487093355340758302751360510441581156256395081616872464999905219186509520715600086290258050028919804359414296127170183532543659616908158012354923463145738624541510272089474109716125772560375112779142012109400098851774439905158700185394951261562166716244736285151270339649815163880536471301715929979561835298192692971605093724118282055857051505165307104032813351547725155318759790379361079031034575014318789154343185913032545381781457755803237525851858629733165541533411228137154808742049855588696282534243574882651638537387795888773064321098928923701138211638539586552434602645188037960308980970640104228178774728154051049875134003546282634186371845154300220168057718882473852073595937266813675912167301019233352300929787166657174350120576419880960112955037262556365922401674548045633243865502870134915738454503975844025723272780937089802420147796656857212017901700890519108732940719649133033913223290418953851500774001369705567327388014464180364423689848015687540864188844650458193617555243869788764162901052290174899565139562136518779526079275462114016681204297702650773390413005930994480470165355667787429863131671198277926336295263022894812969368380493653975710994350537586235479056337870588392586357010533094969772804753121849950700436897535754051942921466307703154244212922642838988699014259858388580343233223876989084581963783213938155825935788069717923815647832567718871768357298444704081081285657665700516006592528934812296930889970591036484055912874283753119569456209775886242316324521764647961258050185997862141207759116340468722498891807076605280297023582729475743536355093409127498468005815964724717690843832109155707239287238474068997064357412372201452353718390445922433671152563611316008623762206053851864199189642357857477186721416346384804738008419482089070111442275531191544087205487883661675057417426034062729195618609456939721580264152488299378032254854773381877795460585717555582177255297241237612614953238526277053688843960014994268557129554423532716844102097853473096736619920775288990473622324023211211325888215555565670688592858610058637081745730868061989956828278944655080623059640100166127301604440467859543721180650254293479003807025961260953676376049262354479542168361246007267986233803370465702835857283688992715695673456887946436588879329203673640437317770311325433949050453812759801552283555046325048821192304463697880836476397946370306131667636166858134785795694414300446458061019161767700937583008480987602998912729916905373141036910117313675396815505997058847800284858955972369468511898404725436478109549828841982432758609078222490441774442581961654373739800940796787604899196681813745302224791970788257253784310203962966254238573711334644623236297514478664630910145591160012176066641330490343882531926547409017478100632913829153215953212300562689511630144492747755569983285948641062639933861231973564162721322057570430279562014323192141001618211993207994039588417574815961151692945643518379431644312058728740052192426413105701751980879297054793709915315949162992656819413254883932076515560494084100696196691606656770297960679431006391650053682797522864901268753615718899694857316800639399078238393329626345214029187836868497493397055858184764785983580495899543256403993568446682088726972706488292170549565138701477317625441896765623025910533584781521436610626670301962997914513786100250177138898994662310332941570137786893103625029764130691966549193533767224279001900061869680724581645593240798510007505083072304726825206404345846520132004428201962988897230996476547137787585642781684977756658498258331315762828026047697582651394386477242644629618759154696661557093256864047045764566759242511200934623259247743577933372423515284678664415514723239813195722982611261033161365250348606472432844532614599943316833857415496084963694580143572546579408006507297526479318058655049430678568277923218937457612958042716597290711332304064593385615115550178466368091078988625114514842465955513988952188541846428593634926951883556703908576002418479197893164106860325126767077216475813198586355708422052350690102496067551918392943283901266856128618860759711355799452357340496448415062814900353483800589546306906804057262190771121886475444482572387966956864415656265181080721591318466761287834130439004939573052934991507414542952079426772709035749126213665646539667044433828226712355497030662741201465738865780604468820745121155282127513382463162064471134284436535618055842289079599837719814883303165113496383412271772236314345216997619281516340699177893452337016677425146301236785466746960316512477675931014952309816980556588149787325465260614868788942641430733616157240649064721148651385433777712576500028152906062858040672057061053361087592928605317220220632133035221826310679334463148835964363047076701811561436647047218756431031815194722471379713632163987011974364222710160412093754031267796679340157562861783945419109716989560583397769394707498403128876597829446668135751752586057491334331027284047761677477411070943235967042757781909011101818746747218087894104628265274449708093784939336175753154455660661960849031914453168105318205885663916278519526331044193790924272019400866441479569017997574679229265577032113722292908979364779695198397182251212546151082327434461394309951505754795402069647339095103176820053373888009239777946516886444188133443004709577759722903575353099144055412425850938531704706541441869142945861323634220290447257155462550941802465671401963778366124842350753297656447019025940708701683849330117729462815795603060573957337184348333988315834868841716423708079145336617743507453482642234726127227131026917183290230162687362143086142720736627895871899558459110969694440641681948748106947899210136299220952275069536854642923543163611073292363788559890651888998911107184193440231862503808997149814603446479154706136486421264151950142388504170350000000490376425848232285013427945477841909840100274411452862491799388238904677989911419459109339587182345225670979658327014442320239229175029341165987733138508204435324272557251165876583528759568072629791440153678435840524505690323685535933633523892854452418067051358544474634438087992005333824674895288615225014517409448347123594925010259234522904457480254727077442278480176421484701353349972041769859920455723455264181808082859369645091421532707257685670514303905807290770558124033552243196344305494197908329280303415310538771989064641365102214853298095312085770502879230671889745558465221824109533664884156684871636377820458526729686137472119451944857387384483347734244381611557060887580204503672848733197832721778403010778427766905919317765906112480259388111841622950062125788145778606953485920108021341007846204959641453753302104387356461558714790296629279748427829041173467612773483792504358083162933372851481812950980956986335829430441743627607938702342095614908238907742853474794380775259818859656246010155758028195539453849226244560338055903864844262596892402199922874420422450565721106357811565552637633253234161057110577391969587011676318213795545986245475665403251698325691495609550089139952552795274788598189691530287181597343339757521288206989800222887303118407719018621732626607754059372275570025389360937784160677464394322687254725559125385778665856450880956304762686214483881154130044818876565915194769067384756732115040782080606113607785157642470984550662488164670433505982242367494940983157754482818496913905570465754167747006266528082878230036703342793400410930778721659133380871061434085519594996289091861487300444965400727265316321760701944551138886298522813052641645461549177903466453227836493607109559802039261555028187110032880059648207339193172602798596549700374607892363411686905117425096035479323748370828561271614013043319320694884769356323169448500436275495838833999171983077778947898853670341263503337306603617815418581640257893612209578059259135515839550786453765068614187896571490042487054483533338407579138626644264500589809909006874019389474462401385163807202612258452779124707774874709772447182251115254902665955147711105510806980955415070936242419023341200315133231007526596936127528047048123094716327002532515497777325369703787684155798297937485179680493074601139162543558904198547110591531613372628402066717020548999407987227442478481854462072886702597706598542878686646935645222571581087745328983861810863606754694088789675682545236175429550390161191836479129959376000557515028688210736909222618516024980996250972453066780841870471483386731434223718242150051144940957786091159344549364876229660070614705290713322756326131687206650154796500394644710745310705217902842740629193680317543819542839686176319414826394757295415266748235817884643967597308120289558918404657921730317869063812415477217747675468609408614392618302610251964724117195432469609655573641311679818959837084490046910590359755650448298816684966857427406522052787892981926555619908134089038552556631528422585801216222288523901860197430262763443467426327751287799549132469475472536103191378428088116852222521538904303547661679615759427441115149050012433279472114668405335041205337362633676977481486625310883178459998551625954700244424423755969243316844937133652655080042370774383589050664894336874504037987084831238854614554845579020889488767819372867190950501130118273299346865561959868289196176107885622953787384635446144254335444862441727876294903371790281059151454496334859801784650816355367973720702749297910975847135097178723625349691941696120800654845628645221683144593459716714918759489162435198240218746426303513087567411260486426970902906848994510278304281107427711553704578018663624037121352575498599521143954348469334770488467333046141217747617156635230909650433498935486268700587127806655190153347045467935268318863020935409980610331063422605146083206972726226600479465777185990273252066540096785457786806425261056199493667980178701741131707943687681282615790019754927400624739534871619664600673072952315904779611066466156933893238662855252054375835961092098580597924318171953740389385290431537199339763481726320608587564172936896721507148471364058705747450478417384639829705650673631793112714994481473683776780325891599931295012456331759374223448859007381164475303814325870676171548323699713113378973987643016750906529446258992660294511889428702290157965051528316978556476217972009638793970823334419518873955916738816926637456740995617830613673695071510664299473166464166602253758367918282634547845297969624368425320455505255834745653187189622941662057503193556480853121604620790124439848799582789286700658270575487693741687001695444346055468012026971822350434900699065228948737547766794417488456846023736458119748620030019926947075221205644105192013061610411492275827325321590771758918108885652500352073764282695538339092178676437395398916278286761117130550116906902069509774075359593362179855782132728578420683377065331655969363499522362667971741174993648822699237710183351441345772470492638385447005725126299202658827526745311881056551693865983028982533618499325421125610206172183123044081354972656237090463252972508882628111913626261548401792565370446334697714964776663056417869844488245160421297468208515349634562641013227248680740243660413323044129316551790722000249533206196197352703374295378795754636175464232308950545909279173770220249267158933968817729802992027553685796268101178287575357059263515063041953751158851624342192191327395937826250381674705118310872172873534721177567394525830779914736551415116438869738193735116822034516245216679002666309294917799540459747115438997418893522014648420625982584239616860570776669087561196118083019437772687090441162762683132075279744738119504383585628651725391126863623902465515135123703353494147970047494263895944412142617533885618365598116542849129673870913281788275469813257930598325582306974509106240809398026284079799674254950794340942099987716359632603016023485381854942154788655696532908101596191920455977943215526581748291324475827873999435989212280102044939436797968111554811037661936985294180299633920707041926279704093583581284508267192690960491041836389153483664777532963161281249174221971509182559195272605200574046229960983193333030909198172427530147234055124663214386291332780180346909184737482662537852513141205335495288404051309586110169107871480279521117760052940727085616099827849997096855908113770685447824452357017938213437243688222853709694039432138440562482631872415346957555306803339887292265004455383488016939320965686965207016734741927463608615969869376261477868136731722695547336189675936247163949430358030411226244099533754292240901415370344828360199567413436960849823713325467713731519177645063337391226930103056891398738772858431135286785488662215577803179168804504237148162410960266609345078238784293546193096034693884199237920778020666401627680846343659203679811594669199368306001760757545221081978128302276279126090373944408871779823550111473483311684866962711640483180218000732260883662686841685148803111865565463265576376892428149153020489343307502211319765947372470620425775769183873333453609203784658349479924032193272265573719180003736406655781132095963909383900768463801908181678122305049320633972975870866142563091138277752431637882391795123713976827152414223884240811263038411205336277941023375077317291963787415261762621536358004590906910165800660590315704921068626299674564162399600820959817882108442151071441263264427476548258365975072475021508821773944687434519816671801944695857716408487339295267500513241011881138931791487729743008761381152082722654866849832451439081863045850235172792778109352200152991840645852438138983700110078544096382008545250287326298737954820034487255593729146530813242793099255062070227999157606429466845890659569458305198517272439598141258119021157953359433374192087802160825012645692744257276488490890343092171051790625080634103565509912027209156991997236109119617980018638268509729102216510029391318425710696065918126648784058202740911339362872593424188658749054994915543733322475156764910669978177013980540982269984121513479787458016851538341223950645483082117898048320796836390962470100997554057945305628283517744776855070834327239631120436864872316839197589835827411238896560393597251841565403420516046496060939034381442417134825869605200539563211461697221115008597000558332273574622466993861634717735389936633371793069980837009833633270206934744765967386988426526703072808419279351737922286765205783755810164660282947131643480624248557504914378404936869998211417824809822171633240275741063740201469301766130396658761350315858385832275764341312252970779163031841793317095348949687311034263874985175707423209801704475494423480680483748468173611079039397002201511305693196228188687987873101712268267091723527601646301116502673284916550340261534901352249267258063097126957393318409325090144833543521620479238813189241605474444792513324878892736809367131138102874410457414412263542126801453912403500067496560041001416783815986418564714380098343906618975612897855449044939397977714312105852522555990498710657997870088293982339036016962991318210963665594309780343226101115010107499776941797908241181623362083324865025102929095857779687137284906721888995829994608758482250894397908850257938939256283114217262800907157302789968511814418839122053356229153746986236866177595275902910054560762797416555382796999006439744717141490076316605379987879000742560735563041819802793409094490598120762166608170160025798054965320924207907534242424534864390015528097381796588119856001345818896018425598387957281423930019125033869056157563074173622242034905319396604534653627850958272100511184318989368069540914579483795317896424963163862654860668266033857421280442640483841237638856223628701271530606812327103939364005283595466234325407395610362800814750336115564427310258654299081783280772852406016446201064020187894672031448089436198257567296295192195121595028861934399366453448337920077342218664753399684259567820911477420319997672097487125430764960292294637421625545010906472294510155469732831862542079512332505697189748262612819439027418484604107562758551358479667754871190082366539037046629683037831952108128865159346947664933288019305376013638318886140882158773481908703915073530175805021130183059815078716967876686475919199757632742163872632149778901333887362379556332343173903283361953364571979666375911748544714126498959651388017682907965362113648800752150293404888199276701569316482229675388468393185478758039399080874461503631171297732929766376463082790332486139035782481998543807418283627956401990468621453753479388611402305660775755569567161868781800937855289285274074405679063986406727213377710504933843645054148489372048692613367688948858385427852797838679369375523366325601108616895146939531220137311380871287803615538414298342042789319557370373165917822761269864024298952426611457113876909773346967021494808619427237435430653415788848358335118230939023456710772611960361342693473350709077191811826260476308122997853725501579472479807696188845317870242161127353394570637989477453137414817996927936645127310864127228884092511681889370795672531105202161499180766288908374304922382222292257324667226577671253949971597712137830385747281591183407407898776375432579701551224875177485568573266682222256293782311725895012595387178059301028628507959806252711872312995601815353458857473524731328185700340401131172023055627860565647920009171168636376645536116627365988497036292990850418598281226587692259011092368450837105880143580067875632371078580050293928001243601713760575122487786962179690852268912232164175708117142213039022582888690583434675937583025042177926833524174864027909422470419842506391936947850982550190819988068047552025903153018674116721122136637804955631974631555233974607231950843730890925006745571742867384640849966494506786144378529190630666407742081260574532903936629298135253285679192344891207366955698603427911786178982403845945403830560217449439755872243904131411659341724284059987630223683436409975337782341286624467022881116624426971405182156951926302653242470881555398973320005661693097602789846283178690191336040095151938243589321714963058523998943475137260520168523142530465871309726249589964148213358736088612421876557208382259618034335399260484915578320548487708247083765061858570713931408621743395913234025692706545800192988495732255333403231411406050594078765441784449897549218062928329378506755799006281529885668346294709273083291745977441092526582684331461595904912538322296090567042153607221572259627872285160419754310752208231918933437734255195063458612321463452276075613143443026996125767920594832389322433772581570166729183384171659524392198651198031762764608600685263383571253971619232856210230214070522108854390550108319392554179987703424038575183154491897587931548388584659793778182401413298806966554732876966637281187741140478927250086010488867070312139146329846753992660456605036264798533049402543422736759704009576804180041331584095560776951304421048354261599614600129472485934226926121779142136152249647149265741853299661108089494677606475470492690620315986915693548658117160790679679455598421912629937531200279852404903768940465183317416635903810433117088670172745363489714402940751544719197731986371512207474342411490173358777211360771761089197039481462853021183320563494748133834219227122721823221187223278039510610698749874056346937655206524221949525287544741814448714036139883759171590384946707891313960943290202605889153634539187131477591660936082992782257243790349816493041963341376424291122333896479073891277129830345633172081777369394162751240065417718069431909188291197493725758500609955235924955093246598049501285542930742527050745682066850457828152173107963299194437116106637729015012525247340081261009746633860558540346645651677064201019460876536157246276484708946071737409702936577564430988626103437641211410643667056258988979331017531336140973159986021787658285164338327310823273986907418461709085504584497468995769297612885041285100100811329985444412059526519472406889616336205896855822015208667699965655206344157695760402895214068227005025198208229970203260257126427688884170842265725629252796672277309078041697493983515719133656921753040922483096039809481591052559302581358083832897531264874887028169608624384537994281536275936562685741745477749306444287215257853694646871505065222446770704935001693936245175987568419502807416620925583258551672673515675766451348056413514782756672141556086199693810204228954629836141423564532944907688771734480796272031069040867738387158425199051553622557421846668223472096128333252542736927996660490292249173773762301358851286135072086707223626558003537286765265268941573204777527574191330427277735236157880799373375957133568052358196509652086808688927786848175729941186339356103939143165480725692843377093022708202150633719875003165187281207221253452589592302616296760774076827682279594110071796768973883417276886542455117502900888056681117400514100263088763035623276253267138960461598134016752983453718155076525058748601068631637681785218168638390615149218670759547741253597850756133411509752663013157071879193803115724791133253431006790873026300451326913914999050046847057031115796627843120445307925441850823510182946205773379314041027815086199611808142096962615755159041052380902258394099007034261868425718635696565029859687739377254135753308036067448538274637658867180842069947187667911162877729489169590793993455903507751932202800134273030043849517176321826433120599949637593836210079619662318340036700357638120230831613170627633563324456540316123108517335803221997941336961479299858217335453403121912790296445189125962262905470992962197170126920986356856455593043473949449924163025913640809570293412490132781820853040046876050191114751632600272830118512153475389410118758432922867749911116306693823316761371073418299413688739610505362275079142696223004216943541023084422378406739900035217928687572280209627386327428310379407157454405525550252100376474771982534279664746714058773157759528622934512358074380934829947484865539408299185420404419928826957353508685291931766008398221097848784313485840577268835137716688151157860065069282964707819434503311827636412328018075239636345953184906539333045759996164487432235840491265398335731466925311914562030865853107852187947741923300032950961960925879048252558499754077262634964374621298159833251527124872135716656784534543371668782378291665050381343151922969851115163591951095967193415352053325342206160041244181711317094172195264146812071510859267176020774041056028948753587119398733020712432396711814126295277378657537792185675837197718563497828632922534251684065486346026029128995406928139003539652763392167987147767363638536931049715684855092596424337740467363032654444443218498214463881327235415986674204332168191118643448110848207486339127345795569886342792425010481069764145331784015534067929502459966993265907479601436959475134203338851074636272562293146584062677333760306263630358849120396367447973733792881358949150737125907159017138225027976925751386941010925877951112627144655089649412909190391665760873851349822112809655013157618520802174468002643859634541610298948253468420001369448792268023582447800480219983058414327990986645570349354238110247108658650995096659640908320443811674785052946799868777651871739101647752696022873368054888540387362672782211511082663533730830024881569766769383858128080271851961834380997941977586102428306094015917659526945639222264287027635560839176452901586859667126748116479710245359928018233275547577639446142522577106954652691409296520896769634694818296931652117521850231315223129832756743243740890910056005524745365627979916775112986359204257076499959892106260264548338999878571894877519499043652458293954021046800022210039591256413999700287751133321364115907984058029523978730522602711167299922656851245620230325520766152324229354799742093270807053952698879811575156514422479685549831791633782139553636051375221683123287887224756733040666587946400559498323386679550266707529208590592174911396426942642600983235136554867220396480043039403093321306602122354544638288252082932685110627867153876412648926846419720803674052976432915020434175351864892172858388662121896903082265279902171724345346853748528771496258926297211218926873671351474919097401947762784090968218458283470966530743443461394100137394609577137283084746975379608943287493761551830658115876583733004399164175933064904113612761803192197382635430036696681813921755780766775147216138516121457153315794957445109528530591497089779375356150277692492807850983700345009985976017009941492883119717351070047568115594317470340073722670790205907966396056846503740309393105452566502065978002607709058544700171592691193644199273786957517861410438026201218565674664598717334650386969586851387623053310019729686913782813220815131979434291213570028184095638981004495252842449175134229646797646073205110497648984756029439616092118383266849804630541280173655158163070602524295084385904515308585185823613441424285954833474727457469369812236869188448703867742848854518495694599639092317729250556764126853687514259458594320618979852793127412298369113507624823286530298913666982316500789637645771675953126168839082258996201815010083919206554305534217098708902179975959190688329853350993698550758157270713544272793067080890779843659926887702652686659966324162627283246414560554160691141650943850021518319580350388490555435440348115270276756845266403693828916602480145637943063323940129393893889137251908367326105964373771816712627383701259404361252979197841254890784405098795409194000092309897713598878841597027528454008934225304137241115137790796070188620778532910058748296057733281565843932898972210263455447005271587099447682102380247285582576970272029271572073547343989738685919243867382342737827740650132066973786993005067539573141335253965950169641251014544672139609231644145725555807167936299255525380201524116441970298857183340487655705023861268899575375126768076115828479073617578357297264446338577443276423938274139448939303985888816307693464724044234432548748460151482464075992234089483165379886033366381089426963561281462940935607070853638672264777468587287794475906177516577184112177869395947384249068628071656310671384215587856963817731396620122382523363238992279387352930851919204826644337888234847550948886329844841885086462063237640338935680710569315782426229291402990266272850642456176241219871419789910526940148700124004805591394326489270156107330502828581120976217126418616650549708750676128278086176720055139872904155618259804538586528456153037176332962766100219546563887132865589741060111411930892831072939386028116401676890660925879515790354075100410412720332530788524602294677624309133175378391708214192898292728684235774241554819142685520720619069268388123432732145470211156619980891451451455704637112004173640753439886243727760577314350590529621128007936212702644973921165464760140732193354608380308591431214194776551458446133177227916610574179127591775316167894592653859831886724545126141002396245809732213656326341772727282652676518411031255890403646104617732266921662115696735571147320643408378642474151480520001876380124736605378358761783060199242172978403333671502720395175539606271564621991739911540293253009927935750528853841527038873607737064133468421143536851121291817295494180138601121322964838304366280340483089658317617173205128812750891458421891769378903306252934697950277081779610516932674619700885728403854354282958893945473966892444382981583302401276997483445957335260779924098743935402308609902211622539882383699950988036251242243402361542643424153770697640276519681884321438022392581047715194511455142597787234660160658779951709520554902925585692299595821501136865859390789836593235856163024684618058275218813189437958674390840157555114627799834754815311507246585653715831934459706912963107624473961039858909301566522919421311580983518458484358350843411242240426587589737046485309662341698531758892212939859692933100758061891547170971418438582781216798440822641494479161042069622297243643931077705620892820041498143033926888102065837906205851516016970091042991214728925800882994839858464849837322482749437762875913246049891792112190925973912962855271490057004868190298164429855708984808669436948969288505539097257320558541648104880953300705343417695229446357625985300918062314342643137784361602430801446870141570359749281283731553671971866181609774499918884873326196481973798775279137843062519786376562855564166661651638691924409740366182801031152591097204436304193495101025170079974222468642383353948853093682387472525896776816619674800362418322304155935876039741303102460285559458790080666402652451621504398568002790063021624753037139729921702948278796343771326614486419664888735347079119105051922134887066714742075086068262917144339304671378649898559153810698468529696834307643313178404140823277345877108815857311948307130762612749380828441297492187693008710517243781729908890890952339338337829471110247584123240735717518165713000466104252969252739785367005712396787267707057811106021885924958203199008676497653264415860916718032504504872986871066918230096450764916369849962159336676290596569915565391865635375442152080525416913324499273864284246912717577867642531777098314696862998222167137571293610034157148583264849895823025140085714564795030579914302880485108325151869169047996724444383768071099913375989001348783293134919371104205043247310844418073839655824065556199509484087240487967525197468330402295375467943843935073911928452737601456768210217708728234686966712207467518110011802545118775071539268063983481145285301231988775763289278801517500559277091051921377302321039427650809236178128325665435909013280732896226654597403638604624115043344461888203150692140704662137333597976385490643824284409984675529470544259040138819456108377336104180287394999917672440346222406620568469666958328517277806786492955813412671962828514287039924653466203509224381984651832495253090016544742869700382654244435951965258649546357704999068196472769788503376668079470216208484729772725366659010005246263707232732140003595893706003813124517272992105011530105524824837702238133137727648869220686052050490805671615414679759010802240738636889568235401484515718712093246015440730512823751017403888203932169668595663313354637746959653020985841778468483080382744636987914153286129615355784588142724380061264576438824349327193405544588445669911604739718364987532104671679378421480332781752565696396213542163466078271538900592695530377686527684673428461200402691273301059181356979260313799021440089048129720226302722065592715757428600042182783238294893833602325303401313823562571233792362002518272963979137203863116747041362121187783593264357519091647576970997296687898974004637716239476867408371440819718855984676934882770009529006948963333049294490476109789903869785489173266488035314486391286674154221455506853538309138949432432911692852667501479397548724933798564226692387919250153448629249476135653374357248573442288694125446449110243128474800427360343570504849097624695773851380472942704286910195036694238858810239752745244765163868374759027915207883688469555342230578204842093634198475804233276343552551886304259095662069720238971961072254190904575971180945873677670333666912167123675241256237208946554867141956709900836069945792205796406059934510971446739284530531855801637276364423443158312789253301486082173591614387406224661850718446815789307335650805586109804234754155383552357159785494600415006025444986020521641038362461775295081778858502466255247296721262765478549235294624365936605341958618425246808642412074444599770876876201933809107963338966421033573686834246300130412943291120514377615289049233675542733863229340544493342257233406040698540598642267799743782492996197958307626979157733688450897085404300930722981720994467201729116787132997239858807374317296120208331322466333434457014890771386509630063028613596243755253212913236186916946609199188070547900901945337415838795388359594727164020263261130036583664728180349050098759714035651368840005474536496524561417650345153616559340990598370440815518835623964802272027584142927725553196829958665575054433202771112729515035400929451325115549135048342464638100312474239508919701077013221970062128742133554153117509487775530659792752233192789258937151044063990548179970115044026331351143924219001919290528567082290482721432837545647286152178065471112924458901364378434955717155481985453502632867294926143837344700735618240576954195713082811686787070874201869221936825032453250610348405543808531246985316692693947253435776181610385338700938439693713833896611981187540805691873066572844432054017259814278823052161080553996712651022731807040085328142497058709107850693451673513463176875998541662844279196112096695702576038896959786753310707445690800659316794942497670406770321287275511789343522354755758827331823080051422391146779056258746918914697496972007037798157197953336087085916584942384528324395163792274848072104725237333224900596048660862142946084831844615394328181890633507019185189828356745614218578332529631548651219123363924878955880741553233615749772795886243358874524423083046429931442595837410149556400158124080084480352568474524558631873281237387604867641266109351694308707887864952083364437086149815252302361800992802206551680768633881272382599741266194908142243185299310036046883698579299519013642686957904870251878722818907918327578234352864121017136161048409745026381902840973462857505039735395757093507752531696843326681610968941824366398613172122244413777620059337430034021007110843842370853721812544667923737951752333084258438522616334881600307934564132208097819185903911174878648914432514014115016918359058825033085858641149609616874334244494091230745599095373250734422257181907572480269684498238332342074067900945887157952259249838254184295000576998734031211307517777322909203276413254814410457943882769442852102552744744461560433049430418830155862349971321603963400395448708779054412032603040807980970009107034647450906118564863847391962143672375856077102998381824427079304162266920861386170410741849492657612407382085085016421888191671908933197912888979532139196292473864485909561264846882855256825206310261903563569528586032150826178235618400144478482047324274936842654587380114003033882487265182928913961869411271886748492363675453127843321766573742370943591361434092585482483911411826879060351952991377748692724513333756764982916379916797915882605947640333672327843064739079448619266221840774924997962875741656913496327998983440106265432595548987113817242943803861061687372713095212200447886019025936665265333033374628348309394448027679307424250861163828583545835254224353458351415214216393784410295234475361422855635697862446014505349024161143188745726894181552682011427643211435102779508326483713833775159340215567873965474598105012456355132774073747376087143208632394818588849093542845207751552487650236878059948065969405694769794817322591006619042606772658919033314561290310952100893387296586687501713006671671210107624681178169327722025122043500675728795574013819088524720794892424352447106167043260998266664961717602634751302223700212278034384355320551061444172731332947952941424724690537317732248370453531091770628647301213855866489703054964516150547553619590225186158051673397008227918010989217384656777083922778829451679699738317387717632790886466108280049603711333524678370591945259223970305273035722046710622768793011838496304309863254636914301256366321144462845763711375292054737771386784004838857456568717885537924529696374438153108579415969630591009456120256157979023693529006117694875909566431650049235687702795464749839041833749945739793076749755677017334876307083257084545850791043503354895648857825529611006134667176834544979690528397329415359571210554920443071069254747305435629284427048529440431918076028055765251043506145803928723569726768844978695249972780504074421769247143351103511181600628972722658791641919421920271419180843179924710524507139224872231833569465058487690754721408235096013174642524615381304406722769515880008533795193775296536303938347864756203271666326039063246981695242050108238331363209588138628990745162877147401221632682363736549636908862608887663759777873573068556334399851637341554512627759482527626486213050872529972500943037761219992306682319150522326104204136865266014201474562578849510683617970340150560500322585956198398036520784195008711752218896299403164668175751027964900212094399539345517752888124709117582867888061100206576920729772869461343137212718169233109904691204054626986873160240019843810859635627823663058658097993214166962765017840632554139754586465184135080586649544985914608521352726894823825526415496441560768702056037563995142994317438969462317339340096884699335524456112603000252308894306220829451748364520505232874805028867624284768862429412085100194783625629922436229720866086061577006374866606515564172268218908787176346569018032314217469028103692918713400834329109749103264987774500085860887914755455038845204278928798748680838788938255840744648259954491722374287472820976399584531225410011286182474202550712071697013462040630942384961589647914083930353926762834549723500740475328888178332589977038460667892343079862885630615397575969344765744965140133945070208233187857398052303307045804751354319380266239988641059578854599037980345877818457225721558725906319265052838762288151145559203816062385948345441701756197850865008171624167503876906367279077402813660040103307220485717579862050210131510027841113928467133355480972607282070581250313701800482524953844786304813582984873275273827214814972664259785283981474298468137952142154252596473429900162695123054568017051466044099056751481999134530399306965065940879605748734033304481727005025411041275657823702359131377277085208191117882209502512963481973948877448006982667238395457303679521652918199966282210777946888570413818969331015071140488032441598625667645809033247100690213988578851426574023164725687146710118208324021165260621248951827017226945643292317623732394222960420643806393716857526442011511512569949650114773932352454113442022059050153535140557855094986993683336169140655374718124608069223099516335602861967375223646096932067365857966329606041968115525012597536800442424654267865049550941968909968614415662577842790024225007724813311548445422085070986050020707823112352727546810110526080799119434711180524246741691937034432646099027422696738336825224192318569402838890018921350257747943341196367645910025186042608921513560435775712301230524432778000798114621022442074166323509341265270888961480558791480885657246039128579906953344293937656042950435331639389396110663627052534772290850735532350996955299175395269501057179508823594530203809305914464419560948159019034489167563739455988198411669573518983672461312172872317375796899825558776034988930169677698140835226162184351695068667592707882290443240116044523767250460194779718314165041370790278817928108461077842372506135258073041576005595857494034618311734221155290621301902394885415300105258286868971909227781956265896726379451525042585945399028155234468337978609304926303723290309782279071417797576807717932709141194825446960577085249682240459314270080851846018942898440835554291445937858790738354423065817175120560627170635921474775041070414239230031681135631736001851842923902544111229589127945933451423352802727507494323563299537259283916891908213589569328216224380078578753133524197023586954289079901980259221414108086339951145237779082590801917744497511870607099552806008165141430592340200846657147601426534940076870440101764236138317079890951103375322375386468115253268985917025866247199435654123961176994668651967922881773151239378337401756759313381707783905446685468158177888482841908313108894388126636765455242133678837766098868039653051807963447782137477366466680204828435350307563986933657964501769946162814805605953793769326467472692242382865083880986747670410114399837430971303341643922717312574908896696232496886977086770126588936759210677004846898011889144329755718667549382467767404186328059199951108492293431784394557295555343791630433685347898877820569553132623564814163615044614461737567760181506777045307731578040467163030378921813690054221009899673477960627028677948873249231430691899015712561543893929302171865517195338805164494936184976745620717404652374063009568992643216020376748468883643037529654920348701567054159083656022180969708023528315867084455415046573503924366263206803715428344749025064122625090213725635075686246926445685336313140920145636134753082267260958340060908916478610181389340140836149345698493906681511179529856028222495467165990092779562169394662002628681346008036599504390754720699146948568871478568908220632285494139791843721022929515241332728762255680414065525078886781903103980379152151672531586681724972158903663497051449886047417397460981416937176899833732842681594180601651404282917723532283111128082119930211753984513955372679022284626437844296217496543317085919946744420517373304525553588703511528700729849411605168989729751112578487338158410661786346903151506837265927440207430255505299575955168926212576517908313274593010095015977378524186236641572522028975437536923394376556435435389939494353175582281664814850960690670331335589896753653970604398247776190537952758593131549190364049161169891645387261219359884437092930084211416057295120184734724003807387993222176077579207935310040528251687872228250418593775152843925967651791777849644040155310194182742108466947543636199364036390611130295271404210459369382926199824118163681890359190450797224857757864452653361144175601735297643472505308830519684333012812414094065503507956486418505261899627625161229309438143074351322148566947928711189902397578342089876454098461494931531750145572902230412278773131794490902597152891629852032208428436516691082033136223759523108010645737589808962624555114468367138866311708952714563331477325651652287021690820357501393945090288004959634857025185672361641046468827636865376473375769486617068943046646445801014683981362843615488006341230609580149718672091778610743428470970429433797261687879266813375820088717724577763268897757615978374240093974536645375205106718356615623400654184896856755255655675469417565311463842170408901554708238321650630363716331967272770470691699016688161879321795299787317575764610524114798715172577676806609963927084611451821179553878454294743648433541529187671254434774090510495645632574548678909011290987217753967893733517119479985709781028461762146346197422387285959063737352388070089191516252238062527970133839524305222263826673141828289979941787306397595165902969705670766135272324523659089889274427785583413840817049415732640885115500282016949587637597567985485902665819552752369440520036523866151550338419292709758366654399796384047920690978699524628166954183763013910357507118467067823378812807041468912002464801152668752899050995215046371060153904259300731465708670909278283965349104733189091140569791070917092391561760362860700722409557710809445043529478828973879720477251368784163653157562768416790837914521268722489450207742938129300983426263879992650205619373352755063032600866027527119097553198410792864072629617444137882983748584561313272210172491931457517332641877773616701335854846009588088282674016181481130858527716260008501052734370831176092391642443590706795588145269179200477639034573606894939147715217598720036871619843467034945802789412534506558573128407296728465231015217242457036316777221940786531932736142381766397574823962078651366820228685444304837300195476799919986391530217479774687065441470905872293221237448752406448553784889141743149322588063769554210963147492569725675907462251653628691590101820048681811649173800945520955822863111586092106517466425762936725057330788818918023698451184619933028257224496917206973311815895059178189627299856493556163080427589428640927463844356623486075290510933385685156853368811981030164818567244942743925895125841987506835903913767874165266177600495236441063992328033181064715485153605296176515053603754867185475736352383299028366416699639200653561845072425335521435417037625123877919487445242716706641930825573389616955875193722916428519327534036478948629322721470150090885258645488230184890936767327909532734289022930797371018770853170233239092439150766572580332327089765309296092292940372759500490641876257106025313185008858990165669431203213940237441551351609939284568745177901755667041362726128280913249030038692982951227455222577575535247146652640444912744211292695732171307608082427389541414034505920744659240483955743821161994665241047252356269492356165065728263234601696326102236893298418107325966405027725515560606460611919319818362678693787830767586073664495913895110496373124057457847119329599164900304379912179107362111845351584081468867781038428508314847765205618848624775696537370530556897637904038444508619567536178393060336169594404128944180601367791347969794058723446774190586746599217618623549585808691232523635188400647036935937356388149134319207466334007480624000728952183589092985282290295407546837792362504461141413848162051904033603639237091491603873649221152144672320180330610224822323530519140377360696284585205542404312926885583311291182245359278928132020800517649409445760811215828629991720782153487468918648623273916846164983569352626542473286561696996153535550200914770325506143313678912054665895578453616142228921476714271606007602791236687162093920577696513663417367349891681771446401147268260490714642765036802374352852112950686545826615711522886909614388815337071925678028427004002969995338680913492384327240748494724124904812710463776062984384101066929316099157145371008605329878761391830776926598703817111503461559820495521194483720621773204529464840465808943738881417763692263110295496783672607913470732992449003543918045747561852398487927366821607537145420716612567740594716446735615109368359645612436846954516856193833267394025332476441845527784854495023245529955322835162083183341236793860246743107739356303735682143977573242347069083227630163265912191469769535642120662137416556627819634318899895128417533741908155723957685213357180528282739191816138975892491620477284038141181493647369721160303997380532368938924826906022382163472130493174239084058365574521348302013294204674138276961820746827046978066817993823238251695867985682772430919251737006935537296424859954889547889626401454847191692964806797224126760559199810577886792687713693873351112994682887974051777717799793300957563231408654396725382405116689736435712849451083257884526605816356625492229400949906346133110162916680290815652182791951948151408756779900567186582888389209563133134290612716595787392415267323678540048436563622482304237322862738500142292044427283660496722494574238156540942784880597965893704323770943304156075849964560824384983909796647850872244458361295986821383012675736380027167677955780356704001246977706169096303058406380436913105471582048449012936918257836922090016048257823434593572622222200898154342120564262256410755406482773365456376553830836832638792630748188624544580081677781337482268549697187528684659066442020016741430604006293632627604556389802098479086287621584811912694393547329914316625062078179073305061775191400488902542310002994150606428478512426871815707676444877782697832141445027741025892949682842849138132948361726303496832013301221239492404093054310483163043568087285777374332697063939668601205985657871096973666890182902491837345417237725934611447040647879292285960521491018357204526015356418196059737053076617060291691140923375701759513550198916601890847855730618501164443999267249093534228173613014658753799805786194672921981629284863726631219734182683323313823802024548880702652243829906628390774931436943136811630513594617608274828398465610475312690232867514166270155288265836273596544839614910593736307963558662055882411131707727582529155060452978469145992225711561325690958946523063741886647897986511684255913191274330561261281317844415802720533359884300315252826597933576488720980173328951088626768160225682630717570425421536678240737444910257920441123563275318107320811216263296558616113427616484478881177200923012394907288250969597553208111374014933399267113689836829658241519945916569191407916185209930855248629505087447825741049446828819520895422782051207150453337502881413820333008408496936505215291567539712706093580151587252846036174019145098775648283645573960889949752985015234634118596123584942401388422046563500420989913682214154821066917003396480295759751511380643555178374106617283341821591815508057691341527170806467085262715525359437296027131282685119666078080516413985321768240794435351844563973633380348321164517929118052079756777016279880687453503450783515306431650388203185349381765040255339004901051558852074396963892823100553609317119238316428525296309502916396418267888944506553362801784776240213714339879528201222174258110078333551597271713668330210341689870447743414871217863190697081027789366658192638919621310958119578933699532624441921002024005111435789958857982483376841012958767804148966826375237626055478749541411421880178055643654249321422713119586208255851635822073973894498962099886314721553296138433951996092386762762914982459475336999453530994542916130967987903266086307767146883281972499424785610827487399838965506480021464948219536494572448217722400775768378089736425377187494491645263762697613392023686607532515158112082680379378231634474775200483430802709067629924563850697378371412619261851474883732132880338124876810860447198331448254350397974004003799482908078554244993967878741195621429176774112212919878661868260312126606925374550438693917961267661330337839150590802832514413927323297478556596886172598275323086835386878414530939134967455212644955623574429901841612629180833379303341774867145601789216770178272617371971476404174812176610658206347163079864834348170214567614505135723301065229141459032852679836570607492664308076711002047877588821215205358885612781147064526721467421392318864266864263880369038694048528605964479043247290896711328390848566018623328347111474312002965237068295217293832609044565113721945476229089392367612072803404675539791053347754557035814518679521572174132162832107863127204642676818818318353357821485912008941652846803615015594778374185321701186061997252102782484743442965209792973415950770491915523319129391032809212011765426808586927111625828486519615836895552892281757934129611736967369160962558060079529288224753599884959862420455981104466332202850032084938953950165490476319901135945615505605411652090271860647061574510915354336302971305222910011597418764313121352271773628018678299363595362141294525179038290595395841675787775641545051611152160305092875792318697023344087836380884492906179011731085934867361711250942941802742536994764318145901295913760696124504847016783329808484755241581842714625501202718174901758442613919390609727186940598290421215450663573791084189832348057394124480497374017321713913230085507004004225688960055883874162741798186950581318849410451629060763252216722026435031534035498124864311569437574673828664408434912462980482274284417369832245597000844237137999489491227278322970856568822352500811298425574524814873431639858870455231542977347974669531607301001766472510615842253805814916218466126338893538402895908607855351175590106720687569326445013811871759585795523729850338165700885764439506055601963090017172614138746649951767935265372591640286332988954678150397152774314408542157743135849587853631415743340350761952090429326976861493339664538646965433815046579151446589052553683734357882588268949659795267956712449415123348951710655922845731605352591786296481698219787464506719191505907297070320107255796800610644661293382723618758387166313035502731018222941067276670145760202632543995189452051920514096309349570709295316785033891336627801286609949438163273494932752429926556524754335273556441374180598508171204973713734008374110675682996303275251272025231595655856729637943668667150920546093334612929570886693993137372229170208181081371050783206021912920677546314163931842350345565351509239095413394740502966775021685653394428399207812205991497527146772627403018453330923051184351940634032162903472760715999122793543507767173482135589942780942156489910191230117566256397008987361861210209971924674862021528527950290255073416783407213715209808357676924772589031367476027436998748515496049192416025500281472485959223004948646928841209118168785775152405247598924878471089228575368284905309678166774532528354740534945025841403202922457053082130256133449437265467444485844634749424064693008939323950564033529558220709542578300834322502922297552207086038137807546480178948001293399148034276566813990565868174387647934918570637707958345249384217189987646330270884339699559764957491479327813916260454094072758977239370447226658145107949054011548068508358151067894550302356019072431536886483448370973399199895210578345922883162838672070725631652047569397912541699644039610604525080261748135638848199221676126354824128146765138652974489724175001659662788791172374250266117755613769841102685422956393642443119972023950801731161782387829399285299076156974103668750317249670859845047357813261062510887132838756307826944353522935028102973310387100353746531873412486608082007771396403228146039825619193384310140906032194415471378905062790522726795931717207061792547276671740505979313589645326236668293302936532398703288564881420704798302179712803354371902492180398328016281673668527784711439631332964041558796669404731659027642768377591417665409733345333212203709001119160814343746432684818691908816848957073217111687986330549935128295155390939353884456371899881522794931180222111686949378699026711005204941523083133124861255439813726896025289775429680728179716939370973617034747038004947308694425721789477906528359632326298281161727582583761299051929512359748321956271724398463479497709399980341642714960603714662617310686541619980703070901246805918403171890590045221815248300497705028487010471690746553704699537774593728620155558488110044836769621865659037635028267965954853339329395957683061806207163663658509605791534701451755711187883691405972172047893259945106522624375067253900287503124623326029345174594391830124441439160189404702251109760395549578401139642870590487000712370067820071752326674670639782578647998768381266676623801892239655992591926163163186084353308870591796573710342590111643286438971898928361549438229480412399478267875925652909067045844868908786228377741670832139673812745655053837497829629083086159343075800200211676707438533625065622327617503911900910775737560677590197367541292386935445569181401495308311812414324817247103984993118337366991306496266730593710016715547287712206606197770164052886783979129258432646897404211038481232537870596848804090645112350997666533584484440397129468801541696446546073600882008172380282367570745929554675728412017353127557414395869472207934595540595970920062992828085906672145713688500913136516883339132395442393150239267025154779532419373201255884443433936429064055089115256906455332722392972199065989098007127221670594753880423074788291183108634094102635060200039566087562413581599134979559795782614358714534646504578803997088789022362253900583359639602545124101409229142283963454685486591717755761221977484333717488238401506699271669288764566126289425279355412277945121144947487866757694151268023970787651478792941465838823444584387736304420121234415482589920080812498696282480913458228509616123937972477866561387749656002876775714185375085723523611446584579968118902690602878318467076673018936166599700186920264682307674183240287081927406617153045923781332359438277463177498232055146742199093687035306812822267451820006365285100322377826829971696193842672182919831132226439540526912613887359025611538240486281983679130523692515676167282106272749498423021650968958510288874101680878801222827126601240271343578168431383924960674875042735208853712347078413172713864183931607099946320352614242811720848927276049737249829659393030112876489620660067833418007047808811036604488573321666316003724449351465000045306679472899353257879374510775171694344176041500324365238385621064731856302895619800953972204872679603045556057266716228275221217396247963507445191632528690994143702625458178054492987474846459298576504888503783316448320090253547399830681450456584231477923496872782627354763418373689202135755099395075857674647041757256263712145334305418619700673760118442271637840226674163281758079316068631686179706380936090642612715713056102621285898096893089468181505380777769300884703151142240783812278586080658104841244169177823433490309478166392786412026834387849251458382183917695346133293513340552627245257464385403287351213717318099691192985835631473841491134869961046853101877437999949343126862961584337957667306822673686027793469898306131534634741564378633495323232449470217355987181828514527939436806186623307466880714377405752741158676733125377150161757101783755113800486973328183778832950197407398920172316757461615746672354087959961953133424703957728066771638733971322534091093472183931880111081024686274385101778390129928209086274961427523548514457614299370983625765048666576854562304398091044318638911293953147809553700247591848000933014519426821095625701736226182097857648194001145038056125556148810899983184280779991261704879190244325911633550147287410011994845644194024919466769242938974232704435372342840791721746303518104019782178025920994469270449151796591856246880513590150938546378043636806743902887238096699132243934592238990060776722133606310914130686430905367499409899349830127615483395539076569598804334858407100078021714348526730644513825565881500360928549504046136616934668546540755370929521912526059678764063567887196703561213381038867828917157696545806216268007848193439990191254612143406206049883443161401921838645627127449886805636655903640535284544053765039310548563404217117315374724101598476328651997258295283340722034187545353947681965548591476795791229115694943556400076510736026353929998606993175456266870620720606039032731755222246137921135858327784420998502446541657572035217588187660152735382069011770263143098332044067880149729285394171354864583580643544576438207866309791343402006825604255738951153479812711451799477451549578913653329668754230386678424851962393991446357995185921157473165938483109235953740794072958459587694902402341727359465876700038064079746735018102220150261377284824859052907459330992786717056176163528691042586151048702013951635978123485744564546817805036354709377965204044150505047046430984355654017972241721548293119172769431161380826606863470467979498849261483472242652705580307617624886929240745876922564086321097711791120074567845178553238246349337091601187852177830175755378737356294288986024784265119939504471535422907370123215156008660117443254536026040588297198485008975938887404199807754251163353951926886784397930774195178357703741882420124889408246826272307445639961984504650169395799104438909104729775783746710009950361307700450151935245059632260376699535143842029579809972718110529608104633702048945532073111287674881553366342654653832803246493036787026693213429467550926442201817513407757183398307845263736301244503790952974398443105340509326377161745204369547214814762439222215626416710603026159732871964306798210043170899648501388981203890158447864368410751350097542462457795470842909355558312848779260579255907604113181281343345924514355155681252006180693698791450685144374193596779443212966249941647382672567590319638041850068202051736436589651672359571174000339054515512062827505271246217861036323936083882164049333248244616582946079209700608521903261982610102518177189021779995199179857438642148934887601341301191402273014291912593508488824192136179525632185639961453098010354461564033771909906991623210936608685884032724114752029634898664014144747170914152873261748152727841020805823972199531564530644644140963118827790243929855082972108802388833338068807476239475204955943103009285542711473684389828668639991771571552316530032278198583650748683260138914798447639111337904364254389371372280979443944057448252333576223731155692000891265487690197555493217605961168561711712180006400022684431953378195650415776590201183731127199616052201473410262947527742100465550953467652971045382269102602865326022855026232497004738489954929331046875472917794686705099287166346957430924022966027913864048955629868709353339382667967431693044446156976530316492611568319521934548440136685053892923419422711505048942851192800756271553208136082838046308018710715204540471767112464450077034055026060384638236575104560345222426853340701194959096949350126773452250538737092123064604081913568211772128605432588723771282980921198246550449906942336584170280468356317059525626646230322905278168021627561475724059973391203433287990021385923586357396472894769799428884436134680946665512219451329378502538942865018882589228545452268738336240899209043038764995112480837300271543873084544255896361514299165769969028329039614787233892622015722566802268290108643315568649569998813484894578580899717946072853092730062733849750857974823553002020602377634251194226737096916386369085697344447621790733455698236314240502968541565012153098608720082300121221103724932614584439050681752315094304546338480770471183329878311027787541773714259182989846204906741431544880909342429991798379422843525207357014513021440662303013285960497825234279775936416058394861847432857821501424055592216638864590605710077918901372620932472219422277938416313133717248833388754958637937680263897056306388619332622518913211446271421582808310529634782712939524239452721850924703266536022367758431334663443405804610935831188924179261121112709770795797230057117739834973138925397353098175905735441886551755986024287931359667515602485421977274654645400180856620041948253844117425379866312953291006600582838689117202972613537156847989819512043468439216995790010194817837621418937603331036343708939000680201402324379596262724034339691961316941311958561626396875850458192856896719256285991000230185005292944102209624348658224189638692578051628765353016482449768594370826979518757275486905340876043020378784638441985534857553895514947339045912175371329977536553767925167392893861759914598980236186025762208197181087060008339583401431997777607827628609440093951712480109588216607005875374429889735040696697672595720158004309899679181980994421340390785142657430831823501975889236329039122988989267534806226694218707326112148680518102263397463960519545763857894800903373071715227171807222821620534937366649169991415222792050868732550778313882432222867092898410785886087682219700273161775606607491736121212834725958847261209387972776526475720985524251977342659493187135888727859521215591428377338881425121813637158386762567390897226351443351378781748795143934188156429943221332807294661596511574475596131851630996681108889757147382792750381147348747546054511390306747560348252356309202766566804289040330578558830013371886789388854488871837589808745679738794117007802762636322062878385913720116621373212668853486869943722944826381617118021333419736044344454947534125644230435131397129777302727828411681872629281611840427286028058294144935695772323431313663938287983232641570870083157361519280574768259660320380364797643972476593625266492617348441859506464289382071655370752383032055002944011648506702335881158460618918279835565150282655010115787696126549128701111743840279770144675819444202730334265436733479386309303944409323525001307683319305493750800523702147049357634121252042630575609818261621608299453820010464469384373206998846668092278848042447938777901406795272661554238606521986766916629642614243195860050728216651487505744918922747043749580002647920671712631252911176964001224387181713340262287578773359684702035187904931246438079623634559875450953483019059381540719807997919158804189340357972333025222386607628861792618996620334174991143123193723239838056275419955653773424675598038199267258133372125297957536391702468619248905015116680905937678669431518424846636972047743146210788652892939270884126927900306845584992837115106836934430226453292189604825902092851324422341527143538140085877117379670295352400180115589000722399716614656393647923080956579180087837647255243554755725589047190247109715522789156793553334130591419118219333192441644858578322323668982019920312811645471541178280608317058536117592053813844842909801454617889863466268025718421601166024893151759579984103666475856044344754122295596227072816545125420455061354377572974099094338291717603755622259063375956127105213030320509406160841418464966935698365072241386866748993840353944975663114019180613443622562287785008941298138359618566289862620574429245480599399257959716214845316285192252719298875873875217278464390337063424051447210402468418718617760383366755635129440952186731951497886554180860917229203449253554519839224582243287072899701573823796819732631577403486688442944128359858546848990656009290508925297136795072962028600900637020222049208094887568604538367436932063919400636633334948540548231553373560350030517857069918698006493781758080455231112129623046614456166148151067717706719449693890152975877623529389041943170207161889337641642229883561991898494449480696439269124991613814678878366316822292275906940019740491570341740988134342988352574600459572416094946233752081339649527929458329744068794738944158218761239251213815348323357285615137828820525550127281974315339225520970314033434424994156808859518065615997152099829522281737926576297653809087842596205131513675181501660335912520164249980380724294013435403193240376517212382973725640697076127628888874623273504091430969898128736491371252255558356743588111623587794996375459506442755962737150097345046657221147324858875810871702325439005534559602181701879863466513942125528997425089179869087695298563640588343486603034704789773269522847522330064942338296791158065375274951041986492774724537839624069683185177350860563986811628782586474914687274159971733550084244068974447099524543814254031068533672587896302180027798228366600066584071291649368970568726333347531434767617823307830935819541608587557829064716922114881765282954314934748719500730392920635616127719281938422896812645351190593369963889266381058516405208953746298135501641247102189700959781762958971834080689742066949612194266525914018272403782529960534663506483240558347352884116262183919447015815267121794223355583454664048437470310932897203470351831630114538040273984320079850690270459509913352737153880523102340930177699013871345649150735369344342680325160200667183638699726199150586246722482342801185727603976664394940030240768844490930925390099535894701975303838882415416137289357378772892169466264872686475914506187753379729898195223993017103344695552675782693431980131891893302597697184049318574470606837491177107317822381910314029754283585350675555489004053630646744400184662044051077369237207573304487534010895367069580393691793901600216024513632105813886645715893072565001378590946437074260595935497201636933991927246165865326475741402356074863842831692382828074753622537513319840979562541081305212458900988084536252318838293442077059878722810634400983974603077385439857069425671670874344455560648350525474743225869344177389173937056697817825082626593797889382841765601502388294011420366483259186604748688602018818674460568408413925175050026854284625618085861527268714234485342651515037687770609850826752678364659889698512971474936363587784182317032599092422693571843134798943778933830483622902528656607508589560257334581687650466305970729868284375281430554203811774909504417917421409809745139246515493885118061638841243957283151869753681602676279091079845898264368445868236447277472055463344631667156069902255329560059201983741394197993176621459451301824516900216644096542031720369476606887169866604772371571118224137970853726333491969136853252513640170940890675452346753483127020779126923615482531496138005669288789060370531228180004388991234482511046117098486827510399293617708601565782758276948015955232718562375276337484771658928011545425408519731871620308550019938888980127120078855338667315935184233048759498955602431536067827935308274669524230726991386915660885582356790264372882246518734056393384287011440577079780106902811000594194773984228752989808348623370581957552890941963395558960769794336366141313586916633686823075095185902037493093357979937369029001306493908254186645555398113331282172369149176059233508355862842420611550886430421718396118204772744702185928149619218799499319152623281803099037355222144937409832368582782505839228966489775063367717255548612777268028853729053944275914068983332188290614646247871708838945350221638979921113483960877781347973457683174733152940895540488580093821807306575221506466607449180353563717218340338158474007981472266444611459971390028563402490822488963817327214557644343291400414186775496151607926190923380161921264434631255240499997937491630839650184400549798803893254164329343770479360039066636254275008584329274977144155070426827243986682588084855582877675050782017165962307906436128168171350126182421406361818768173420222750104423497476042251086326979995741427640188254068913551952502878067048231327926833455452215649883892317133647200758082054195196324835975146202146457318533954631857698723458488134078804822881331649382270897006181845371613507214563615291021820444102021849888926908448747543806465771827568557847229678820821995589385772803004979411045518286462373097618237546841002626369415546060185416567475894153700720003390139311951766818122220269958448984017899631973736993180492977451902415327843930409493371776159403778467662696681950738107109323152753222847072410365019816572486421356018051866823783065461950194205721820411105883277107710576199290538740497338369896541014631482368132120640031982939464809163867207177738597907755316197071776707022598820098732023112799571484572268660347604261541651463258134528343375916647998977797533457718199652101341354744186193806862298248942273125018981497593310864925291794843467162487196595469463871283377521391642355025810642136762515015944846501554144970652087722160427830992927518882369095007698459259044958390271298624003872681940380574209781870976985402678833753341462369774208551566366759228238876483914500925466910974158563563660704691106208022276359649784743983265638134561603584452492873380891136939597630614647542055869957543805124799540753832966999397386258039412371530266336334407083378223962474596149550429459170520681523550323316306513374852784709727126181308401531816626580649383120109401790926246809856671380626963818654664218523452021167201108509607636976040646888124652605328461526335178307021883509679961383754984679716915776188197665498715891437360906707038731731006713624607962111880759164487521172641931055309927988722314259130178571993756066040074310975688361470013670377697020044542529658938982865347536560542186186501083643623613868354589541991731784065974715021070195469432215580129234108711945734727535921272277088418680689251016447051779160308072778038865935079242626702547744116815920613418929789562491274069920209469519543000790352930890109742933932970928948401169614664811297717608065599121371469048636890747371544812131152024904604860153593738766867047863648029871493665566169413407918095627295658745140478548840154601551228973632451759661383471401376339032760511903544142093058809004693483197267483019092980751889121977680731719485122048913140465831897126793798705978193615564637351929825810351865513483852097810848256604126366216398310599644351383997599521079599899865721600284147091975424475280005386579004353290644266875451442992983033022021871888917622403113346666400290858498375100527160156206376812110624990734826740528965285031212796518833128852521620480750104077722206691308467913165956784390427811590105871140690713023721044284790526070388332778771386641702690747332732673496284860586259161142413022253178083083680536344065535363555887709782064623954009472477605869178157582951777059225542260758788149931848400996503503155786936020504811818020774098115772943003369719521185716598802709565299627519798319917872313125077233758272155302114321830183330542022723784205697332801422285209296380451989355542104824185306916291538119654575937004295238591435999922028573005533909231133457599512265864510400614247919262753253719261430775104002027049795650056342460640680226133987214405522356447583685836007301394616618326262118348998827394008944865495346647362359036565234063207818152648384298890222332733890571635682556863991549709672511424248665347054052369351357354298039879810946251984610136170218011117019136114265131294306536588605462653916815401312033130126149991500699806052836709475245048086281160502683427920176168242785841806522288473724254625930380277904174827618498847086473480488543583088443818122600312677098038028344654945687217030194458295435223396399065442694020270166461584007999217771133360060808510827817960596622048242584086458784991764362165801200268692267903582022672465087659758677197530109019648701562184060003992361278645541271700086840434940771004278857411970695580951711207418731496000258992076741323060732424642926502706428484771299201044805994963396094032427050621571821010584301226628567972344839991317280796061300312133526925485648629143793959737966818972782450947429385184081528262631920069222206156995042620773716145982386393703012953046148228606393426539291603531357121856165392825396426276693357720283719380632154633322820016016691730599938511216564198746515308070599772550012721525060929126525520124191177436775482085478511069354237099597809385680881030374415566650903368278739663402327588333297390551650176508149749023828540595009202258272648887778409842219450343348920799000123169578314671373463095674506822929693863517470620308950726417116886908095521451027613087529986144564404481634113450734621596877467712393515512249800324862078861743862086416819712960505781755640850413837295252746528305052166627387976932964052857509899820365300190781308488475753960135953532740096927217386220899315346235713761993139891165994230144847568899838032372825899020989552460002525184312477509986375699154832656095173744231092115697573538344562907166803169203619089441063832284649938643382963269232157683523014812350957330663466201742428583429020187021175265602452305690413042873635702368048643086959412113089728617101293169770568133749941657603037886748787351675040730408561897124430988409071034700767465518636568960258573585038746051254111732390709047534407400325432796116976773748009698874056342134737068942954029390414220197077334225707277252340466223275051271429395996130247661549868123819970913355234541478202828494130471951942196219330506255619888796588471955742949310933251921210419827693283551856444587695934040458030298985422888497601059167488840246743251060137477627251731556223899688800531625961631294731700287064338277928264079143258382239255652827070853374845551570495002267315271893787379223460844789288781685347413931010209059052676041832519406198337114717025828570966484784799158022134090776640910048877584852585298276598458618836454451171022565147990457454709820169080724346298741585315770350743751470284876941625535568406362322143701903236693002672283137909951675256230296443257139818118187965921881374380640656988987514590879764861222431180958507597167710824999621158877327678547956670780879977040764313607792507493473192572864322169616649337231696598676783942779796247238685521039535415950279781700382325083068502227756955686441782830570143659148021780399027019276929965037259857076867642796503787996374319956942941748865872464378185945148510103332422023588305879931724207146825148321894102954659707742823743498620099856856746022828167049857479939968747914852851619331694769061215788343188026407790870287565689447732078577684635104282823993086988571534670028768859898866002003563758932475022930811139204087943850962410829173465424542319049727124992943251531377397801834400755327861993124160048224805975244633040360093873566300315416291605041901076276295417442710830881862745229396270177145014893630995778277416791252496893874594188128520501267000253519214707152684184783765026829940234494557975678932585407995021653288807283995389650963346965746118094043659676152310957277081534917082047949222566871331869960717429609800709199722517110486957563362877122908995372186849615057598413857152765824612072030215991058308143525049586054692563216104909667797674106526123381762757217329990621644223747417138169471611890079638818736636655412442282546144218132443512613013698105598875651703393897932393549021942908106462539901876405878641340482340621879272935948285224755584398332728642619343015092252260168269543992459087865481524785748608663518266975591399322846864618180819537985703103478746855516824194308344775634264970112789083787161738880549099563920643899756703751095658024552599900421543129946378102577602658095819556135755035684878777666891415910245080096886107745998245635395414099307278303662270133105139318496145402988344347953010887650991092060135909474453063866351949742194703138380168527167182074857576081644324198301438033838763084670493740615486400324041798460051520189984535339114641505705158018944396352323641115821327962277168788485012749536656878232953549581936052472169721932811725009806591610713650572575411755478285413991196165586478862185899299704258105435810677294132820973490790295240438204430714926557158532382364341978248501471136116616511721963106577391848347081485368860777750639494882777410515399956562727883976059837827405135980814174566976417816948242725096084838047787317775186455863991460271858570051257759756025741983684637078683694446652124381797456988921656593107864584484263439687915789948622602470892226890784392038004150593494510195371650484115836568788128545647784988690856995753140991427332526109788149709887760120084666301815235247843514352456903612068709659494526404094498074867468493479650125148094027436979495133383525836457861692099709051338214080134279297439872977720677786338713251429853583131941051537588049110279542565017873525075416871242728328529904632030321039147697785798955385901029467242897415218314022150301076632290459228807885303011866992103867349193724965994995480849520978083058021114908699139642471590905772132717933166575023178755219275959517922734551711710309331131658568749595347359776940912343313877246044052547338686567462711358711723292830161417448138242037456955045268319084764219371063868550535099373986270497719913839642784636676293820927051165910874589937191492591755532748189343137171041226448379951178001587416496969594134671882480755886421768785927344025604565524211103519129490252277940444035972001319775252538620034304206545421880512354206631837795934166332833629718448963411378414718195212122843539944991970918648450679781136047113094853912629228776549758513096081104312886092187347594698340001143252809310660146466758481675103386167945231985050265000469967820875595065740825912531719292453689129280256988393007284042312905296673344530360201217402772836463111964620021224585350235756550115363119811691470793225075602182077013732202381758384346658816517626900084077457847982376478217205607019142515301547077629489585353216009806531326555424136117440444709399219964664406836836893196023313046833705656575907113739720335969619676817650184783431374194423508693478475802398523960110034799232023283733145014021314469667254389407827298532030132124910817129484143988609982439765902054026352496235474433074788022235573888024402318953527791748592142419140100851272426565958028502978601966952316727731361188806737987727099818498266348868275944404501252993380967593517191941497101075697931193498405077476693502183619169538320789169277110237881748245999695861286369011664771863851905659223879060769882183852926553399436578731593676770365525611545231736478784904121842877995381451393569001599266375174660895804211330060647103085163543089095380121553611657242123172365840625438162153678649197513196928241652016491547496718807847298066921058228017441930719086371507917616941771760659681053725472621846924030514029302169985222677102629220788462506711491070714911003782330347067734874692439734159197057705592862537678264255049436606870071167954887151551033287962312772137884910050989505705141744543607659537760434441270453097334045173600936527848363725672617744839900692800831721471845825865863735893809103957421010793022198562252864204061679689502233889120669131054702156347777482195949339167795384479958000088806122976822738000151210818740861362655671752144113148056218402800072770247667086993599058157391463023690832245865294157413966101529875446586501157976026018799928155902577984572614244699773856573060741897883171870230594511584453215279693674701925722540253719210156575258940894298832718553181338907571175207335623159897495671886060904880319095712723679175330300606315500865411092265153174693915879973785088752774061783667539928437257141859922236004009188546105760661628466579723259362684706281811720408986797084428382703651324053135591162374907756188756816908582133618930070489186450204787399160506444247122954081144674265156891202606575718626150371618191558313361731023704815420850447836504268708185729564445177544528339693032716941797976643168029572343160744995058939474359204783223312973331464501911238451855332370468803578111235671964513746905747501260844151466261512312064608976716789037282923204230324822554186887344562710239510409263181488100356433789426734275670847283616708842078675673911128159862185949014354186503983802452263701501740027755745012793698767368296680915703660730423151272593630477537031124930709900603173977118031131615115963127026154485989272341796863384315881043800469431514649984160567988089432540498391996947441220937698849896344649965780765189673751536737671978375288515811397156713647560507936688301718946613970516031475719957310708422131174938019739455365744314893270470059249125022300733443366653639547465225175832249881261538517472818163888161381226382368038327480984854166522561602854612953062918775534628619792798111904467944378906584084222049088083745186836642158612213908068615393813237129158152943594013781916822213011498440739292664122496063508964290702024422527300963881183696850848389061280258747239635736730140450779730319305842773909077770643277370479446798425251912027377445907066319136053601794759059136237465767009710643825945651251817256469895113651115755736828762414874695647621639521248402137917346272479728498290924424122802362930560433779140600903191783146793197699092316591112969609709300766298499423658292076291581460388692706639988861544145475076858072714382328952154715810572445097866516144041794561491988513838339093118145840911277700543459853348564824428819534656557072812945521386557014755863706768098902007984995700552908500137269518530225239077199190873609391611924452424915327381729707932233924308990441244677092944793417601980170298611283577426881050659533218778759632374440179394616524576031183138347559624795286592813740778193958200374159219789091863121600088293669424520318223145237957516526714851513867270110885255460498483319479433558451354424121960138738517699630767213716432190802022681106115283384939946000622217043341725574904840205608403612873919234216289605215437727873897051519076111417199083987531162572811079114788123497725154140366838892308911845421230042888423116873047911631862284203810949785603546915085038755669257463419534841136178255882463426604303037487491238489171587475913865497554394967402272288303277832892569451466711505201590554048359169071869676709074045004991050608540338474025242851972731633477233132348896036434490497648484896227175667880111218066742829587406777812705433653860843217367756829767188420005782110698362380642706416760475131885081126800706629139570556023751579953763258180382081781441249147310323783469386084995008096602650098461681133193770823652955648531612969146082909901987633003419513413685562957666321489095585015936991431516838627488121718655056471935073374726817833077590316578020464245874581349999934119358380553170545519962839278977641220407914939792780180802065704732378383770142090833014092843912865379460037808329250078398873764760994475928734607160984081082508332087400999218350627685522223057421527115204920052746561025993973472550627845420121254739947580901920241875082155811970070397216396497571393508699442621827263351337239449574198281045187742574548054545964020256166613144980404496067145612095343133474595606880270473698753023200114731586432062911427605450580136842560238514361514423338434700700051018599296108422058464523334384327843171564579871867065877149972838882690919501283328796422667132515026453786472755534343485243705948409474812666345070914981668923348915196983401785897839309688520561187966017843246403134669890678943010304506825603364347649688657355157780013426172270587899423881971208455237119320142150733717200150031981882715966390516987356328855982943802864925291922564661628369674596045435039650323369975402801047854632207319993928085435595994178469869182419783816185242951296786583040060113889803756130112328241466079983668171110700829587206131795459780276240686094061798456393064955438995238917559517662407291006465964546518083392525346621714100163569408871409491457105810815723013659899561917768613311947398126337236942642548981303833925651173084544419203643126340891067702601571035780948786029430204646711586784509681939179395126467988351813946598596742192811124025791443158026923904956117081326806866971766476796487473726656978065296069267439923520485788671991007513776029287085318641694609951949972313273810886272357869374972975359487843285822631105942505031036530045027703177564282538553488928309436263538975215836763377660134158357553111013485098250308339613463418267734941153062651791848299398035699002797895777244893034406110594470863597827076789367563316198916454698040663898839865157149487823361783195476852083085815781266876958077377744361430616312349017933259051008493874485131379170675601918940031432398684321340211565907295045425289551132006033712822513336326022259901102652893220553131135288459932666596708247382759340348102476925240891522847047379140301617538738440444369852337195559079986402721836490094040954258122462550074643434000506623350373378676896803006279036752479443182798589081760202830038783792630238538914121421389684411839551867436983133261010495650372291853935035314512318497096016617822192182797875538631239367795986516753209302647229700458715570889510209370800515814703030530209226648620174293000218499679966335415354577000636191787932850226356041255758547644627807954998092948990721736601226710182534934114955181575742622425716029432999698557251682759671148539704053946694525383749843187303986146689538374317254485411858629775364166654256160689518192876901894181934842951142100695038485525263472095691440251540545779545915987577841520448580806891040385593775581127383211737509557814962701051241934433551243579326428622346968257391066663457451327079636181687912780995042253141462063674989929583098982828737132512278228428390371387145432456335765707030164627831496701049868321473355931573000146374929294619738519479549618970280421283175819217549948409861549350614801618744438820469155174965024970865365370849906963954209155473431543717785735011786794158164994996276394175419349235641960454257681504257174191261987354544045840303319294367470369115470991202108113393413086126111148307091176367886783782242134237194067548146742484908846535256254544675282703648789708735551319876035949885044595815845748897457234548523448566472378193013813019849174704398532498473074899623980471634749436186223943559237097091701134645700003472588536253156550920593510630800598355091028921589738262895638001741521406641629620219998406478661690210903161461676745553987604686364992876132645263651537539622352608634661120225999205440959060363706623912365091413282420759420413221621604812933555554154869425435826269764094301921952274008695964058405478441469136947290083336691057607008379592809783729518898509185508667381134784269076498000248668396726659954705528597765018188277714427463346418349370537781991849367350871008044268607891282563270677708804504625815735916281972145300195935205837662837686681213429928677625542676087422822709950483653708734008347431071228077244321624604677455565168998560902759662018556846131021606227405775685905545947493022958565624794436241713148266617562671805202347518393637098343247138237658706242969564629369860346387136569330437602930296532824460027169334692986267564177078718859267309432221005866906573311450820810965406226342193364304354160949605644548774847918711627904386314907911952956008289230346621687765248431296454754361691493255449317122765154854583492656415938885980942163972145472915126664388126716396418782643821995429852218832951367279149761586731625029970178172176698243503648307057841556015062316087188481074006132165264769519836860871623977502571662318127150395342325729944500565844646625010190655413528310611746454473921495066567027995182416717925422426889913437755985800345288211348394118971945115900455151103553864013267151011539898611026012062324013886122361368162348860999766063884417822703903627708782328283980098442720907450800751716251610776137240123380757963534050748417155735195032303306653713381372438559673776164852894621859093589474999836521360954895028211447382133943037063775098614261448812385770573130471277295274845824206540184332751698353805907539037623866093873793916219094457936170711156289958192541638569373405514913401775770254570639625449892049134935252225853226919844076600767452542465506574031163236360407044743566949218191161358136617434067439642948329038170740533346095468919258313525547267422345809248270297632634543385335349416916175250781436202536485371663454085728342125493064165659632980098281994009033585797634235775662041929799458225227026015893775692035416937742249305349240134473611628323055670477901630579668765514800536167433883802331934567885285826895705492177270950437409551247480717676505720822166097851744867701601409474123629522851937509501752180010161188500101385925801715797732364270037824099090049444191750489236922670522088050093366064760495159639147086097638303580334005775042602627018817451996775756714706457295324769769906070186913694548419687572154870646850576284683819462205438934972565676092476426544173901006864298322885301051969988640721650584097097682603073012332554733221500952815561229976372587424205464134530326313126087737620263775706970716584036940826506489916075768502059588544385690677467475546722189940589044033745784115012306026648947032998294685068888769906695479187785750726329148841433625678244977859274969990072368433837137156158556764408565307507578722568963578331267939646083577282322806300428494011738664562786207151946978703862488817520942571165208519236556300559044722988874956280267559836575826947451739090661115319452076206844832000218248946894709948587720400828599122207896095891315582252438517339399167499718193192139426894717882413343607147951693013463878925340566547840070810347505349852946726732177130206081048989750541776499162024669059645169070662115045431593322358903180965739186004945835850441623089422361067363657736886873819217263272643654577601970613373922824511528059952908922289728987253015587618821359378815505909859361613977209718708314313850817793000189945266595979445932574188438320727195094618539667587281555345838772788808591950816434208839016386353190597863934850921299485271938682578312887442433510751338658778965654452396532728230133935353088493740331005942413575565250880671947521325483198521607091769419133792259447715487774677020558440770947074767919178046059856006001654888299753889780454696257400922101226465648418490557527139113549211585727490910372147830533814239149068472269165167901926133643705835561619719026492208852263679714077259152103299642201367747480144549417082705065552415234467158971942349023622265964421344978592183098760362689058978448921655017876053424153125521183637305761149995188847833322374887793349337708122239870378615141978972481763363344315436499778724876313863609576039664503752906565725884330880390966695448417358726986332790100738365611775833484468882163807971837443301781814335594723556674797076570518192820826034060192046754850301773972350741955118025826030319633163959574806614107558568046737611405399362684845364479229309476710195843005925709251016139268852381931892596457833565891701952223550724170393833774617188607252433527954117246875790015515380542306474277877747375564557154746812849628345953927559993901254552289942078205339145257043631775777612249742419201330065914600306906571149451143348234334469807438586135289779624836349839094363150807552948706080263226128762108069286785679120478062873320344381425791730127578258708449916226091843308638326328274019018147925327905281629080357554461026281499557472598917358571480539922358243271320196541620278674162099563623686843214703024514047701258211383724618611422371456754501156081279060475971970210638352027307262592535546767191203440614999979893516273307763349538193722222421813187354585562433289402495050254569207962701693516506312932070411900346817924129098600371759007429113829518476333739008778180777839018313886855205090280635871050460214720482222037497633088335056707922822743924988535622922451944375278105840054057969133677279446333531186772775619094074071056823661423793724067981297136438528379248531207669718510008442073621731594575640243749359602670712393358005177736854818950408911137304443047123991999521886100228735548411549081155586105576633074739320266734728136285608366178860096459458687056711543426039047790121199646535089106037573702866545513693743279949607261971113930736280803708222409021216376181428854335934786868535054447705229428509302968491249176613967725451566437747911420911256872478087059481765779557385175145533556568568986250788244572333038158063276823408100650948134496136926657241826586845597240736844096789223403110285158260474365361214132482699812542398464845111334556205882094531948607939921007356951071164791788835159875289493312571672047045996606502336273334024424356298796785791770735523132124356018062248522216501204163639875088234003241141673126763237122162357707355427594394984261335233851814431179001936636568250014087894967096120428350704755015437112427405613550608794448777023293106020330258118116089839608919530046434793640527718065529763032811237242222133015625083724373666750264352528346313192096312314609818300674182552157679232083433410352329088953302214036541659840263733280937564573388335939867250343591162560869528582777585892514126551300155930242222119230454307551984866293914535823679157945811387208750182993434314799003506928803208134844230414496395073639848525182721818294834125286234314925902084356621545572556459320833766607824753368310081214386055979584382116026644290276786975666186218390281474530375310461404116650472004840970747402575112141988838877882525613296934137222521811788152882028330843208240312110968776751306052956242016921264502641623087495748915499395213261037897575262072553610155370600320896129919890408933152706095803717559062582068853769504658933695415642436605824322338665728225421525026814552450663589619113259218146021946979486551420945002062375641287696304881390459134197572608711253270966387645079684696773755484774595722981751023664449736399284318000224756210978321496335457246786090408533252688563626767869869809428021651302931235573883303248675520067281041435884438834258276684949850561005008026459708201242846189803641876261743280770563556173614814783952581881049168967195883718862337507145017071796210219759957060718549507923053402975894973758524281514773858951749675730489100655575008807376839514069080916951668458130145905599818354846377650307591258304249920596133666627925974043620668664299184879721795147002741709774886681970646239532285486608108593977050998014560424685793668370298106785626919577235410617496892693823238264145806139796776825519624904238960872020489293576687660165641442027490227658812326663384404773905953843154112315343915334467644603456364543988784750770755570379396170220242494850926095521190912649816962837425572330859521453386745459971592122225700379832813639235028249097531031890221620866088234606935621876800686960865218857987888543237060729209687444645699968006114811215779150461501212313226543383316563212218876883232667837859188907888882834441999065178450222211125110622905195950295735687155566485728679279351540279080497744281222858426850259011017592741387811049675384712948571142977815491141380831132191520762351259136750800427673244129666440873245713753707384295397783736506616880130213823612593095048501276903668609192708788272854344185871289674746242062657298873601637244922374755759156504608269514430098201535077795378277130448867725838137952875043543509160435815629485720391875262319882547313950434036525892639369333358961977556449402277086958656927468100674174558877276692476039320752925449285311938232597604942356734812987094254627983744083205112842017196110609133871349513958973101811291430867981434693869241659310891958892436298345709418070585069791499425645067112377560944150224306658241769395211562674802321104891736131207934603065427826069949293300489172998041250743879472233522092765390293142298110141548066551357790470948680404947774793721822803707022343968663492104881050011134114778221247495048874267837446488986876246922184987445669962860600317614569497018813777476755952288191728553769285750378099130346358392943403258949204205209954542275527174813377519185087445624686362198234454164358651636175378419825454078953955467739983882354080165634685343258232672216041231708875621511035578538457021160114398460492987840465347857924559704111199505714115593784311380722771623550497408294783876030778014224356871887873656436280497360931516502409103768164588050403575450456794564291360867575784390778407826091637468512406987565943292956662922211287257363243452482040684489653374499933969242869304618315444761850237806716122978341568689154139580933754901844487528193486313662056221390513998459744405446139332476755693680290020639000249229340819910810267661038382702872596837676328425901145652155349788039056313385010911235603265778177191492499203443420631498001801598653434204976478798689961212230812366163464692175628963785255044814843301726637819060529653944478695750234500341104402204397656549195689423380317463014144162649214764312503535633703468520420375259656462927183260566343935931139389467317696156204115465204922159110169868215281603642564505138676968602676938423994517535543827793946350795410986844894217246404005901936693821718061466507780376934418988434583409806711124239810854217721053883878690804964952358126153669050028465601704193962641082668426222530494310934675889526772704439713868905620667425518685260842967887723403636330243833017162924359218764062712279179377751703868002873363795922547033295873452940665597346816530412224805678144308694875780396139057461269003099679061858812678812727415101184224419189165049511845054617659012662524911588579863303389485224367469471522856515124436483249053150326270358108891460270563202946973840376647114349796093491384316976390254203005148354679198527480373426916301543145335683015663389433300933134829693777787149727899898405200585997785203428636296736350247511937829769453103901876643832596273196012554883000959905682355885122542459326263575935169041618355845414170070306993753836402637469960654263650144358927091031575612644073865534935733185682020746594846712265823053216081751144363360517093622420770719669071894084342283644300955918133743328665212554458400446460079573684419575964810714761004118064990744422582215410784063544658941747663403828319201728044235650955125339413506201646009453258114957616165620981025210538365168017399750860911144461155464666917689126372734010001675182050804694141338891487603096515716343365210484833877091392765031581932717202474137566633417514247596088315964054468957339343916605249811623421972187102785768625590511220002623917201522575522530017241190972586558976594668372984559321868435641253559448735217773399009297922657754590439036021749510315690276078759076959875887392446388375178606333630011801450086655223101261947949061629793671219840366198152203529385459548628168134449387521555584541203496057374028174242503719592179049312344908113605039792967725652355139864874137667078700277133112918929507951578154197252078051687429555946877852018613287167662884343185183993138008300827280281076781829976706923195105234691074862594968648337016363457154519085319689556001751542008715189010024848538216899823289664462835244822240476933570528009513317892294267212838657296728675959825075787298413752276030622113626791144091043533808232602032572896520622066281373663465542210906976652971620639909495329722586766738462138725438431269368654112254047482703453685301604826482867292273102432545570476474963113165597690981762149970438861463518684175114635822723626314558531077973906839212741680610584559211218704278439187635854684032816342119682026036568155280572808908412487537158841461470925439965970514583708598313258556367386723341674321619277329721600876055840343059977357975407581733344244624610639437113610538282362038777801047656338971488533377631266994738750774573744464565991327919777969407317538942569340905966597519461093493018590760058604012833012039463012378740774766413087224559759211812649605996403729700398056196581199874128704735382046890828602058571673311434067747705806756134140020617055818750143805744085052010455339046981291140292304501833213984285588101977972888387030977549319653529151507479737093752769847538879641737241730273014933619673090898861202297101260894075325461362309667071390458566032616184198322568048412068819007544562572908323021308930886495308401605449291027626985346792847246255451062471941624820750690126354393951091130668837264903328008501000362198144825612196507915483848540495345272789800078392898375242229208194759106354404016843082663018400426912676622110682581297942710596347228646213119562010473472455720150871871167257523464951021880213367680804967847077901849070291298124450976922646879550473626286533606808196098479256022854919694322073304520684351478354868597511976651504153225391847601646949566718472216990430498304403467856862054922059162770228845533286701345754786669812804825013507699387039318123249006970945153036255030038833524996171014916711512139218697137640688174590001586179222369153311095523718674656409793331245962928811443182816068563821055434786538417852696000843936864558920148022595608371651953348358702316515003692697041379832579655767975365004394211658021019529178145959300474694525026374005407738868365337367674757399296164955602774288021830699641680378582696021334567250751872505251640632333393771027641920315924750147176129581256927758033732283141677661381565997598165664032570006817143870495176384231748198044019998155802976925362454877743405362611593012767422591706603198686680500415445478021491154771933235424762114128386690321584699088213296662067315238458275697525008564998174057538752680707585790321619404116731983530464097383327387474552409349579130151570974283857366938968171929380662601948013178978262779475560360389176982697361079065718352838095248767036295448510764208274236007023111017124635656456145823547206383676355672858158197846057599591423228945462434905490235938110929266877441930843129262949879454220700243382459722564725233598611294185513621113143482908332579280859219523548862405612746067172813585713218121678818487056873567394031455616852159359955405515559569229888583429147610917234524008568626529146655843810014746828436872837784143598601897740585744990211484374118489431243336096209396498219803152724062364041458044563898795946399590119161028803184524738291996523999969009291230697722475563862265905262594858059555889544179197611898759871162763681911248903542244732081725271076123997066551184627830909988006850802997419368401368664567504732501186108821804888055221234680443242956336684959084526307533890665337640867144444467522418645342557411998052273971763991211532877199378663410470234697872267389449466112013052978372581633348675283192335133092569840325999111944980555897569035482493926655781876837069137941099811097834850061316088195005783906721712452506882966669401451079018901683419790531257904341104081876457884050027699573736139404473975640821660671346428876590094986167630666196126078567730703186737766054129821273705923674423306909652866967928119822552426336633307495606404334249844045952593927958827640091867802341376122850420709174651150593331804179559257377996902535727904738777211808642369105201631586444339377179733329557292737465889630815651343412652643883199811178816905378859553293462366611439318323921130536015095179984212999045969421473453945663513250749282188212035782668774657737277574640186955326662225478854468850605108974803065841477349007229763534588371552101954184801636020651351260373987756358081780076785742448987652211313756547016319785807179854007076321292242559594062763422164932939894882192891665721688556248832987117779477153975262871490985727375142369270920415233684934483170381801621862102426910506270449608211022488772775685102069932994435463995038257858002564830690421625594647596023195574653107308712382700464328744515583957806525738206569433493267196955637796256856113709901607258033416578560334023672000600290196547646736378924958506780213830344408635238707993417504608733463078998250091674458925689029770719820909523928427335538781181775996762296893473188830823480881786179554043517795465610509037807952272916382892452693683463884350499717791368586467329814815258039183230003211623016363949408355251618022312056571238326092600079083444765718707153116552973703586879066123165726360802146878971729516152731080058333802168415476072248608646906941801044657331116672397624820056784969353013571771453632026490721033205188365212457877002969806789830987830194678466822959021150698007108049030394075605483507273507160796463813294045132161395046473137055145143556884598571522439201018436799445370414838149450163424796723617832738608492580507910004194560313480783615100413367936846139862307668051930332321344656765806117999736549751990353328744235260972532306698076833937517896776013567987163056476280553083479000940501745844198221857718173374000182218539504810311504784002662351557196142915827493485743545215159308994863126079432294402231287629931076200039169617387056359950328941246393224118320008453698872509736302782771427470110337430165515453653637148424830739691775157390220468345203478106276693034677165130620636713983263330349657731526174583861881725499831240176632209015395149161747511325381978230929030246955274883103616157018352844406213749172104961106227240835046104485148652260808167647216926105503646479689581896818779991438102729079720722087658639926785841955254481166328066433063808718661090999998747247084799741094694473548102424725474908755520523485331555962585286919462201650316483624949404904085218332203888368245710022733909502411586947121473211716717057125755202112351527470573003025009735275654066393611146844587955319869484210397017725565225798958880734483316263764125243246472594393874026804192771819046121237638575275160317688670233230021864191862415930370543464104053296810248264309217170607745276165656375439167826325148656094409541400603925741460041551134802118808688269001666078608650465897950454857380935223924406487614947187784282054375796219321516264028732033633507783380428673948783220510330043289190884116308714501915382683270876849525994362472974923890338102505575696445618720494679420414620562082999598038995016897997189851717920195289476485794738614616740521603860198549570561173484060120037343403668379683595173859516629623650429182852428367472609411383027590516399387743928084423072772020887426632035014908158057101713367343339687694361198598828611629796911940390326684498056919255602545544775594535942118964067710260816982288779569451662090783349499964900081501802229059630934564325913449397430050408374373510765368522085828183710909724798932075416613874362619762829818209400765905122572283127377216667077057536936378561257117504059854077551814194249653860251101561805619982357683333818829313178979718584449640803421584030696701537742666797330188374194244218767489486689879281314729193926470699759493234526726457124488069393553222833030154838074710652910624735718852705732141284655345060548936164838815580483770210396897206732335594649404380144822740887698821324672813974283496309112741103319345777675705989948063362759186283066929304281575340875796048619194411183836712362415880436110498127967190946240131928717426661361036139423900734124059302945113850430381475290640244715968992051376306510760910904193701677682986514882947623655524238377607961706481310541251864729379317092742939595060202961964928747932138844800363987901795766859470494936698610965762187553673847931501916114590504221352363291873946984122821126030505720191353962714352689095914538788427776899569982899481462685926165224654021566754962044316194467684325023089335568141639761094884069188113511417220597647612586561029032894869175592576142142506909304880221042280069733110276919367838801911472641211182619496365252457996233411126673297760884324572858205089345612260600115045431027176755948172630235754079595802298753843948301931578651964204885921732441104970051500921251376681363069958948739778222573364686194164926641811025446705285202624382309432540494368561004162741153714850764457666440614061994419083119838852727089399706395538214152949004861243124688954378620528547681622491145618934779746395619760285130047394896015898683329712144223581602478928703769333948408631734982962382988225905713659320744899314741450822731621136852278957280491882985302864161765465151636698692034745613728758567106415929115577304005434350054245748184806863816028871701899128648282264317780888549895924266162278714082897175266079028472032524586222479642338206843667514131431064367354876445386978671433332861302930421630373816767012910061642164104269551111080578297266427785310270034634045549520188029830554551108119476424356322777011090531022283857459436153888664798858376569895237693200987144877125127609333145013401799788250052302008332086361690913072159685749920121388696011344835485515632048144201114938228639978967048307687925985543923659577326843370221582767743255389155441296342779444118230479618917214889912783311229128884244611020418345739412733428443067270471558831560986021878440789675311205903178136812240962610495984099507413057872135896512185876729969485196061423985982187593605275934020705571567690377903196227730273607673602165816998690931461014550061879202162797682095053822104733397120037515109534908657187582713951215898692722662871953988784794953638357863366662251838222545441094487495959827362833868666209348180691898132290671264267097968049454965856594245755509969870394371456645955816885567492976041855725424038926789902304830620118844410195091622927316183524636861585256326982865858098792983841521204698342353651899185313798139102053438803938216196322941638550801721978032897096137887309454759914049399046275775573881608567695151739438091558257869440989210516143844507830684249914524640660798339303482999411557686751153988588365685877886120083373619122716135079814624200385734519281069639340546297208246199318077735287498446216611975706271101791292190050731862531047450733165620347360591143802579771729204888073977577000377160801601132425278871371374502551281377171488006230417932421183678709197110960106466156034434599444341022967060258489019462240412454112540674859605924598241719842470642865309700391159411982101685477338267989471805371799013695450300013119706922776684102989738663804500452922242751951948358075506732202024710153974585091233187398915962048277744593741771744230913315192416635781759980253330990202102892546321074766348651182345183879153915742802869312436908078181581856870033401118557888396355690022199901154300776755462264675768802778475141002325596072001282366852716861375888021228675911470662751629184501942088392099243244732634108198157712901204154992155977056456876674689672492471874117103529676451427397230067183019489250754483331287524468571461439457933047872239522085750351981749713849474184298221725668194156437775593784741354294279409515148665192140257692503543436821603100578809404137059988084159885141059869978666499701306946075960924797848896287326587012305428775935006712190717324375472932468168478387882405451813218728967026160999570072207003570847552375516359755804494998630787642652322409694943250185526742509531488266615113571775659425803600463521845151834541406115367466700093922317784581639237613889103071953135129362871286841132582217149497588502404945532459433682478483284710971189664551170453129456600516974499601373703983639951033033084937553811553278945658948340818924703502807905426862872142405910378710934277213753454394878491151590000834271527338715873024782996259943930345768026059542384690235067010950908314219296691427771021951208162132922456845294897262030720341066302802181986804959788642639037557405868226058691822330636632801262541490362735259867150294602016523465297392545771239942949430432712412439642330015927232151301168439756772302864156693485769473595657557119378961366099877906516148272325304978257535500723512100190334476530704348736975875522176044312914005293554210448996950382089296893504013904918583262557999338978452016222285222562409669093018983629447722173850253344087634316970389363087479713963723846417334102568364178946047482765349683666844125445532075862402178683928217454131247605671642002915819954021930712248111543459441750437229606669647403625069227986232796705961739984896862858611778204913654491276378181417493710128981489575140681574668272652289646976417145273847892416539654499616968328263453890234619388725054088935837202652451268807853895440610018935521357764853615063397393165272194022057256113881768339285161780238740662044259323851927699714651048425117504915412616376143768663171630541887677660787430101988500794575950666695183371648811071535827976980633095858121822927082089531869573582480352106671153424988784164986929784627366488873698113785963639906492630769863809092516754173437056355285299458792223126850456936592605524604099242634784154465333657584355170788828775638265473457716645086464333724870747620369117982661050407591322243359060834018539940653941484687258710783666531533962864901047948939513207748890612539863656692185508314819999016473435484796872534474607917626304411848595567160863849582571464378955816736685438452384976750682891172806922555422528198803785308386966381281068797251031658224442932239184055027576229406561638167076247015980627854936660851043731515396874306127168683865341377580677377943286840727300177090050985845823713111596855576769343605778960336031381461115054324659486875994795805886313493271592213799165044115098581236253214180161704249159659931803409860636922734151801271336386558903169529915131545328460648967912078226317230901967832305110673486705673531834413613381453892616092029248250445040757383197371301052018464938617407048342194752868464988933783770139079429192354899046338040846676742343413897061482772155810477572350495188846514981653392872015348342907101356934733202875172866666548741685947031451394942568133705879176447837940871849451828695451952959428020317429779904295302825556479900451237819914144401295451497229407132815168806638594737860241544265239594926600449184185405217445556651281363552872248786774089086463339017981059175077970274784282413952294989100109902297493868102061164457675390677989810172741201605527636609328632639397927765049477077599918323549938224680411968271969217656934530426309591303415715831815031551627577084255812454435235666104488245609285602643382875268825857464930756832316068164243164456852116721904558763455429716053895899695569978102239988755870851498759881232540218792541031978202009854146351872140206563899398448841727049721934921752767705714308038825161135236921094998392304270509387065055580663675698469278131611841040533665382192529510644867255490073547686789441131519645926572502644164369344034333740805381394356252776357071684028578679546333599915012549930512780091198596570361593797125930590368122320748251044093508801571289246128845405920023571228632649826070165415634524118420982256970317167563565170736259795896306649496175732874549424327472782778549153894249843650392309351785588728178679983823465191671768135204281891014446410952560943413271420545189439470181872608327304990300618508910568051399735539986042123683044871096859410751653624152663789785583909295800183553332986635418520585217332568706451251255555247852611292871954480452891242778980253842306863763324844275078734142576292861534361510442686759727443722764465217650511812220432440410302738068603997464126302676059246791895348549806001349966753539167857176527707976837265489344947967937724789522390972791660874076938504575793619584569646016533980636587768173870123412657107930015495283044729261055687530291747985192461284972972505826673536575776014012936032885436497791178751653796096700078434549277725882946393765112664276335737782956984916156736545501682008414184707292132470888479165856015220567973791518016208710309943434820460587982656990540939564153249248904875721717735842635089253287618064976916695154397949920365153981350809343326694606367040090200596156873788528017081055793824737754468583394516379302562853115945347538637109115770709734791875919443696760819677939767834558488430658431751357129171557212307895009638380281266426020615828808059193721021592014226155341862702548526943115921964982461909339527648895208455283984574413196773842613062751911147702677304154137666701187181449940776510517494737017060594524168913625685579270334105284481922183000388093935318637731955546772115240345772462985981867031780860107009313392925845218884060405578016271991273253630408390585177480096819924526643952236812331074102949632319409663606214498903360947264652101243801397210637243876014508701124625223141233098690658083711545705802945070781457329114665063014703068391964269660758359083546169042901316227796821095029231121394871630467551949526447186514470366359368187245290553818512851931834753739879649555992562697023217459680939186493082417846254911406760689865643156085026704584125371595298506782840349896353502840984067825859647506273170925236383928316215231383418783993165958467067899241635020891895605317771590684105192445529208994283093136436681142369269055448041268058219993790100169904708596380349272744005718724029013029087875688904395380044810152711299458802531605424866060937989282559544268999691420328995134129186294360629828592337415758598233550917122573898848341743668875907615105285538136030413736584617723998736733986524340838478199025868972883042885179757638178334207607152977113739810757514436472908946655830092115857829848651114519251419709060838425148589010462785669709740392266297362723684655653411346137496278004251495517644029478266991848403636723088563168394407136218477293920511855864193251473031526926975096756438398876567922026405485709296673444419085527050907873062357774208881189079728422586071324668119852854456739048510621937873630120600316394271910867091698596131204105914530146770026050313643201257486904822194107314148079486108833242984823245757744064249554267339395896094896953343667931321103266861749899201345173473195081339328329952314978880320370885372247227541552348043627808249335587621957378495909149994730368585522466544310403498933289230656649431408303700138325270469352726227877166648325717438365107411749765904582066209892544541319665920394269162311999721952065013732610495631082383694464086350795081322476614519503988398707517074012794168096957272351667038174837355866511448418227356910451965867188582176754584572056521849887261715783521418957700256624741339501056563968203642592765730301662691086321046523026959366336860489877872072004221159133465269220764151258846562362717645728724513348644952465410670037829289758591041797058685467368374003479730603569288228888652263956007398251261275360327469246768890601225444190397292191910466202136152190870196678338605718052220014313946668491456681460386287069786748205302438115820527732724897150181381015346362170600770826361619785549061613153138407422265608277958669006292492033479985797044738829871113988736145326459695667412165229537399515536907582138354003286760971949909861757993572881096525092137708982403699236356824450618069809095173529079975210036702098575058775857151577856488216278753244394323478852766181745376695962328841488763894364817114957199115178391760401600764998922508163666455286094551225531291136581525048396209884745324438481029871741176996300247219258452119444743635717870349285264017083552111770020873776022449447629643413698411148213224653704074577114399239607624890570196605296380526651813926305386092172229192360553790654052767328701486191418971503828983033700688171358797261842135041372588351049368705098198542232117148611013532622681153823063344752002065902398284137536133901637639196973480647072078775158072294035251240929357163531389069121753035653030900479716445930931081955598109305913739432408167973609583620905417926859850558193055927900436884766487795965961107497845002050362699851643837764688026067903000287549099882628563161410992803066158794291385204866653379936218603901193402154484696675504168725852519441235297200798871016031629840439136687959724922874509000530716065790974427646982174285125067406897819052505640912539107705549197364004863921924859711674503197095268961930850129239178486035148819616099413152484885761650334302254144005567900693141766971147239133912595701747318475664985562651469992465135172351309694202808429489538418358456265852920539134552871449902933307218439836554235484458637549752060581375880933572274555722831506566414768781222724331064078208661034786242075147852065172594971787284433725018322066797849478676921400740744295528925204542705194975770565685386814385179264425161543723262615720372859213451968141712816964709193407778601827598817642564016628748538296758070501364389542744735185160110149225882566507762496380939869785713062919634809318624162871186517089455218124303479736882354796243618518934551220439428052842601227205069068244801374133878519902289454905099956186887958416221520671869468542960682266943131432383914943891064284596327263705957531591091798503895804819528912142169044236239328742777773192083063543250158566198322042248493657059037405465108379923768532823184691520865232515393625438063314934824582185592403057354452494649808001290706136833946359903295177961472888412771807444075759967117235992499335568079872002750174987187421973251372827469180930738030223717439781938428968571619243906805792435946881469464452958178312131945908469418947959138973566387294135266383489545820151255815654649633403525103163571282366052912233257253654789406109973465276134318259992829085079913526173607399830787593161592165674367515871464565943944690360440704413252218767766098151252099183343546082491452681094166708603269959988305872998282786294773363712171036030646394565817549552372396434401575125246058687088259651324053229028798505497770322245702059565600464604120237803420926883904486775687039036832347761714815005813788068337221614245943935073905788337133377129681146083889318076385721409211173094655145707856477662994562288117417385731113456673382205691895259830707343098358849670984459806987967013115391375862721738548476008175607109162077699339429083042097212639663006919370300337453696441982200665660586472739348595456434553269250160090551401459666359297433868984780692351584728076553378931861479878485854278707126855273091810073313698275078894490486850441865722810618959832697466333985500395986656224180026917422910240627811140018581214917017040993927184324434050483926480541542690955380227456256790921519037976311733144123881309651096309170003004672777034126708241081520286118555028580288799134118567316419810830085641749309291650935362802473478159407861529986358199121631499285647310319797754877757596154168779675969035515577327844560422042596840837999779063113859104478610968261258660670904271032848634344620796238755102034205155596316606659278074869179603817102467526113125049613894132062707402303249825150597219124948577208518736490365440878571446836512493453860000106541979281922783832193070838620648041281546507721513194727812650398709358459898014647589497091363822524369326207188710173797839340400481185371688146708869587101301921104679901265914960358091541881448115084981994791512012807832986346513758874312881132841849764979967063891985945942845095533970107534566760767794090532726704336041086797597319821937262980601260822500197180651000661228372446038440544582727908891175957923557764110968647268701295042826099618241846577915568495700178110065422210636002331880699290987502732413045487874591026867897319645774622122054908732689673315120239148405756073071411735158977223567941414308206630193958294539072820132419315760091063273763450318621921266015635099125557536757790240487442025168811061722032429897010405363017659086790765355036675698081409530564493416934631735390548720764630340808420139776575136300081758268797470021350325890966379250024891646768943249569291209019380411801584247450697801117703496746897213139471621782314157512012317535467420448295147297552131308664255789318544996959752016168633988962009710076275553992804013598536668426210241547354931351901123476442480792628222052282736871420177243875312409066088826608513941682936523326450621147176899968407626586017484191215444113086393416729378006392171206724096305633967862860890161362898996660619514800153140991053220828306404921833294084461752311052229862114926918372301852922487977596337688945649655890525366721712187064282672007231038590114115590303888139652726328460453748162995592157347533455972759125152059623074073207812640266576818874100386609918581945772556594196551951401959589752502076393058688495458786790053126283286085813820857609630753414248062265766179997649363203409044458324587143279800223240812087724980760571173642201968971921634971125858088437142838112157901612248681280110225857568876396729445497132386279899576204171448229745426972610437549974865578401035412692418610843018595272185938408624286370486506415157405691956986513007348634897065894730388146485721961899236158318258902015642192319815630481514884096077442068055558204568033978319940250456485633362256698299126418451642971331722741320669037035222405768714868623896707378861041036058549957091825154721759872328655768661485056485678032897114364610412048909753513729898630262428064337455604471360736730487887501428825708652248988683829111551979929244473567430674743753604030337586113879024905037955511289325813399040368872500534750549172560911491415419382178668986828031511848336322990464428704314509737084494315255475651663808309521977292405444142102841014478610093264857225563436082852220125709825833627759045773907119359584993152646681299808404034440145313302487178124375935536321613926524599388881911033588592309936996395094142327273387121642506351838520795717724473448349092541175517229195565952542390961808710789656235041647479814639906082791362154947959736705598466705077007470672725475326752816368720292708644638982547305390258201912768907479451866037745248642782070179172447731896197808903523078505689934255741630857079596903786702170251243637497016889643383377946597181977888220081273611558799238538731833076615124444520665114760718332452415975311718823160012374019765701999290413674305253476905410530890158906311701378441797791998526818602454068810157026720119657324943826319300186163432948272818013468264354101348439111121876308057973319996411425158477883271976788672449126992002369296959913347444075096342435233693234026056115358459391223573926913244351715761217361465666938708551704399153809601754777877708885975645563792680112416457812045230787085509761200621638959888701473646323052963196722205625628737849176874409009736497761037079558395395313859061244033879209620302063166445471667013737377021648050285805037512579113436088658925822864079754820803118261016978394082267453889864453669794012840110048557527618595184261159367305652258643276483725219179497658594442523468482963197987668737097995627036564699074601369480175962112567682552908306148729269642683588892614127108233353529877549310017986946745219142036227073067654715636079564433296294638884466541123310941290061824051855977527067075544355026510913448520991537478045263168525175211681842527441227490165222027095230776366104430495994045216259081628129113724875434733581314802615516127307104158985778500469625876995259849617412766388709791905534626801438652812096544187934891802808015684102319351476930773304314467203379108559757418104732290885353228412079334417812795715023162933734209508919654433035376727797053486746009182628335219460471739148994991109851765051565186204051070316908055528093069220338098927996345034814455131467339238059387336419610150327428641151723359377056223350866900467395385699088076814007466868858572778282720220862999780276656460191378006488412205907929992821528046347240518009765882027438605251462880963292031263227652366154547748014214460220829811372794609312766939616969111763696239208764718836506415342771167742932910540949862689859586998783258551986712990217518961348647114593880615319280279896437194732815512022631374923013405814550033514152747683545070658060037493587708559474168119257451095412231692819202849461484790268319718383103434724318324969941232652976988001111294118005072445068597576357274808440039794400629843104164037294456751127670577630272512245589480350138487004213696472282378028690042384257709906373713586826115570889783312455511042259979947484575349573935427986289520883481354204198775057276677417188196224451751670600502956642705257102002582843427746902606253497843289844334111511438505920357945491372963163716711938675038152838023025435650150485098504372397976121916610381894739291055238352545971044166244506615079865551157002632153528313126032761406400647529514987610226895397802684345726887912417581300211656628425328006731891651596014416974963316328795486502060848716557634896067083389256992376930236724048757180217395064480835613758031257299457509516197927124022046410997063434125246583554329964178760640002975750837212226081224803614176496725450536678986689726874150466993366785770253204319394819484344797526778941533265319564836329163514511526098091645859201344326587683731087282259416108062425367650990685096829499057160946126646321726609841160681414210984562445252920047796030614844785861722483740344464879876397417331688465254511927925205171971261812563469458874726883861167770637894633839002406431798876846351645932307558753699271462730874236455953504186666254314791050251499919761781545721483472341739827941173085817891397078004725883508976087956810822632213481115268363047163722970684248519071324361200237474110491534291131873136269924576524047448462826201409975198552127546354385915294258860314036331032779997133501534885084947488800879230058192065007513556998819859258755541788303636033818822221896240439941536539438471425519602982725482052443877333421136159327152712321687792990193653953760293515437133335920381035570937685852727475689654673982328005813520511400354215238273926956707529762994821331228833646691635690017582500392628820391012792971223977575069761674853824419502141229718434987822956950613367811414260687163568259045244834630566767130731807866214195141271667987850630909993430382516340067974899190359340061021930454895105724011447036094226868102739210806168445076436064369580981373548937691819826566508108618009539121687449275132757238386447780141235040490105353633140760792887952940808814210568134979396547273285214129494746473851576271442581500403745413859465981474667045239452809686580532430893944351897230164603192833254539764109742877888372600343699378701945828479230627509341155491746920763509539440945321318739114438658513784618834748028170631261363323843966467655014256605228109386917213684331617463826706303053218083320256547680679062826767698293600431574839794544954346640493609999707513628539106497630763636358029799449600673923133740290756606305042313468336361307675502401949821121756804591035957436756996192302090578696528416811732421643152396378610602732179594995966569924746126837701829599520004255450640988278753451425619018963311280414229748075265048963727381124130155951190830481080743674163473436716508976065932698113159322320718095822231507836829913936318449612972968642139401305520770862257468217237438949563988119528421628438982652907036503209906269629970085113908688923533141207478375934336352796055688021722035709793677685274706611631983439899850837750704855182185395423050410550678322797651375209060771345000279906170616960065683793861299332533668854390610829004818340617899730509539092691871736255093751135500919629625746019866868627206907141175757521124307804966357382936876559382760821722432846668748659094863435552782205686343631304241907053015727606107345235196573040152867133252336271410769121503639834544867362649658345807800712013920211600867634692317843376852928361109566201524386035339632180255680503691615957481131642938176315145026590239778905757108430107787666819098356181058522845262985957105697459596887659779678634209722652520145481161681012029925420481969075571450776130965831117035037619787804774340182344718278627105044555525220307284234082018843208610218073885609403350043279794163655907235670665182613294158529045184907780579960161498097836063958691314356966301493653821425917613205216447003468912678262741676625360931709454093886127363237572234310284072956885760631087787709402930197082644701036364776070299948039455398817332292385673331052790466660362395007955049426723891409612960327304500265604996934644206668681539867944637746377900523718862537748846947548491422197536024218982357949109395142274092290875063056938714694244796411217157740295665385803954304546800376399019083553666372238184242606481879155533178756286550255933331219430188665629425921705222500934637150419410683068682377246920890163011507484633020700863211953593729318474364566912313874679824812958405300470039943028428862821598768141860743090484204775410012769517762047028259795671298162036964635462131163485421614234904204446314715877281557406984125696599194030514468534296625109432887177665420882906576669581095699938742353038616585726801848087651579867139100378761872253837170909159502965300159561078428903451994846916838400701425722412713929389965890722574895498558701825201742996711047344333991039473919805943523821874801364262089933198236872831412557755347886827953274233626740849221206617503297670371376129081847107420927786420280054585200122788316767437373291773452345202548529047009005041717109082737235076405860797585571610717959449682703793755170276568616958733962288402405191643284305049305758573980659877256737113164728123747016210393512633562789770260661689468295028369036248110796210511792910885594195159464903492990259416617697060468000058202033694088488186222061952813859901714280737799375158235909643047134722271817504527141682080143173793842646406746463896603394149187097341759930077925696493216351798982722340844561722959795653429218475482572024178119950649933002272697816127513591763346140086987571283962099765957052447922785086973903256021186333706295762442503891192364950485391460103059403195897203997378251155273151704746953252997416835802527952043491695014951097465254279606975090929679901453328168294422660318598826520918207139872919627123964814283052724546048607576770813056944355011798704147721171888463936697688211327803525247332247996105194348914240851596879852788702330784720086827980441099066865401164963637923792349373702701140621742555902907297427275023706351024543536090227597596376451001704696631121266286819736132147457213016272841964974122350697320837669447860289806628156408384054874958321066199039417084943360225114768583694819449155665500082209289199203580741545980608569065178658997963521760366063192114751793888827271821189372305031852880104664696407202528044924456053091580521999245167662556054812350353663657639615849007847093384026357622760617818878118643313119047372683394332997615965683681359074686304964012036044772224012767016007758453515281811899468944997754341610857355806988842107680564649159589612182208152951270472222776263540393553227313766777291177121804123734277561289469497263707865495716808210145889656643824819382320543080584317676696051039505300550053744723138687045370486396934565283815284725846732750296676929766521998496927278146881701408399897697747051637434167678579303300764785043852928983708424936320156013597100783133156412768774903365426550957344023328646101732944131115560271440178379316174520720393720616995199435290320148768403574001720549881682530825446242786166547198741311093825795574698624000730467345335964863997491520961710244432148048474798657078530787065838741706515640356264296326175063714737674469961558512587887488172389253483380592892325331281719947613027008819941999541294289049984757246038957459694412824080282111890287334023522590024151835189139496098149061304851343040552010266603876376612050893611185917081778542307025757541165369154811260254929506798520738035712194834582051279274021259761219793236677777245736977730121644811158362375065223594428948354922306622952937928745892712103866987823332503894304220061190894324668368010331145426333729056702341535771216247683292537173804037764776377994640185305384650923404976193505256408512632109010375361741990683556019537764450449941531787449115875048696453414590077742196511643311058523869190690457424402715582081925565350848397452761992006629627135349208908373731247176235805584061670309109320955473481862895126773621620792064317107852426418293012816155077242768906609926477296774996336747942719809406681823178940364877830874873748777525390919375972983321974752582511493400207374556547798734802258138513242959643435018152811551215221059464486531468767333209181542411294341500647186118934881957992551085898496295915819305072912122900162929957968297269448600323035143050831804135631623047150495762564861946593334505841099895283982430269824312414223106565856770408908213322589980029121905343500444192686921876982736070297223619190499739270238580619272120108481221119783082132218210948328573537223371628618370959544101070283832410075605164039097699838662251773278902602118263276014815186014022876252126298434072710316862115367426433817166228450280531400915142569377179692555678313005517134217863743267438182702035832756270539875314170221837937778591202233772476339448593608665851213667497452110462915740541446841421937877785965558755324750283802566692440978134681869361174132285451927183223270512887502814633608315133527548210894794785712918825364584323172133433608403080404528193489423422921200999747599339419117516397471269275326708116521732228551255238476421993023540208276551315242513023282469754734294348509937752280842549523092472248246222932977992132624967945792898820660655901255907777807624616689429370851956114921750720007114620612593826738688078400737721919360940742635014923012808278763289896287288171308016229409086505151932163604766524247980469443586043216621489911960185302586213486560555517496696424512421661949856236208398653799831302338655449595405412856094629014073315693936331333844095230473038002713043919080827167588898017894033054756391958597902128184753329743680402076454152432368610804604479809361508423011914577659422872107343721220964396851763910286944263623729503183170756405523403114333931353990371857443634379450645762167843753335701123356874317210792585610243969063589368303602647598496367150332996247227196895375951511911656761160442419112376096321969936568774520351647123441667318133665466379618356974897934340340412737629516378085524014217505015102724873368049319465946810529921236691814290850973253969321704956254791818276575472802435118063797525618603405521303409162683380332581588920030111535058955350240184906774623533898316477832069723732465026885254010474566114748844519005285947514139327848432546511908212918965536400020568314897974087809629809589782695991780732781559415183374513213020715371198123067191764322606314790635241974532715436373185075973459813135531995479509188841643461253733173410690861787508972466409457849718113152746279064849766589069826600420090036534279001603948633896885579698108852146804179477466618459075999525849413878675025203570025467894362227391189949167541105161992011788577264262053101495924437006528762760298717381528608448213591218998727658890141445185760053959758324055293789908208792139488370272040873530955458351933180252360314308938329201348126833737428313149709959908455929485916029363660481314357088267149708893510126482546477347026261094570571556650209723989798369787527061176455309976114899308758255034675806270963174910242113722287202708722868213919897257767128108585375130872152838292928879629126853730988127329258757476508182331860979022688507545355053416154478469595021679099114868488909805040127298909437005793688577021524385461025702963622018735668012340031954408242915431760398826684464233385233511716319868742401586278655290686238793209229938458978833083396524601104030400314684000637875213755846508852061228012628975138908732927156528781588655974886606286156794220019130251761713098748790360547155558106522610507718892714795490604003983605192408502248362337732774840728536272066907741770930035766694104722179749383001229331177347759446459339159523064852289611031775367391313987716382940061537919022399012770029128609163491479601262448558076871243975985241728408581299678454427419611575461621093127153510057065691962351888482557884262460397143441138121755938467057606859092602686213982042355800290515733920450623556254475953351903885699657175649177525850999315462480505193424140217109377845791493720707900261822893355820751872403134393806506171409517468152376135247734239735155963572896677979305477173670992911758078527221699285630595581542710028285457243790643550523403797540151133907657814202291538625553316332020373003960027089088358990117287862900169951479225726599370666805082389103214750144723132925706657763540948391849808718675065838990524141737795206845664748919007441044072242224438783938570111866430862140724705174094490344862098892289897439420383129838701463571831221267481595530660526576651270433976521013763891069802325548857101236821651633301759784726710301570196889351368596298101144302762101372009938886984361363009476014021114809951135490149226771737311138028816802888216599694065633308380964990922911325302535419162512192970163464290984447119923507837288077138542726839844760727212790224203266470012063096988017230877952603954228345116556644199209560712169794984296581839507185920993674824187549370072372848175782270893980681810529402703791283308561772959577310002938641160895643805887119974965263111889253756314562441552466604865356420202091664569598023212237132904117398406389173516195883492338313182668985982462370065760795662607751264971100173479630719110366197732104749267993306493119218134536582168031884492663309830076321926448652244313585077022356123603660963530739777272118909992579842731579384882470675310490920116837386315832640941667981811583007784436472373902740422004457316034118292836418604788577274411622968796857961713641249202996364967397014652170727609477086655350158442548154920505086328722859502273656863613943097874436788647693995206966367375926472119269738247205775176587527314843030042452101435342707050690285326432931072479999727203091976892576515864641488161197059391659239498193924551872383290874473196109350011011961752552030528403983108436957016682960806950235800733978509919104140462795887796778560021251099487082778337395792425611709578474464464653449049735922916818154734041110046369274931481706327071496573691876918435695706548017960020822818868726012405526570065724404492534340212016354478927823796199699498123784480243281969076349387019663906775530943593341892331660847031269289731606742923848261965623444132411208818007698755806556268730804832407958618184089223754077273889245917639274588332351787557190898293618503155886233158313061485723496312955783672571586549930013863319645301465125783338959631434351478016504323025001356191713685883426814226981426029106254755401026192857404693677109973672242873165500569130259770400941980213678589519537026198465501197817854168976870086448283074325099493507166541825430233419022373772123022949237919602885857712225846387593712403848411273560890808258193414643994708098011385643802278500777917916859953959487420214449015985134684408924549392855997858955357755418869404034604235550209828648376660275500912438097551063994220595026733398596394122096724564159689097785927835785261250838475898596650013358990656608785907481739477946752148867178909852663887294008337402325446669536211236427863401814967555405916205305993899156631683354090206798278568386955190780496735016966500840992263631286209564965853387880074842218483636663576624529011506099856127689846644862108741997657881868536292513344284286327969582678565479238768741292277878291836558492842734810325315180304790300747699660748785741524344942084214678178414817778512693586361149859660767774375466094584257238431254562944799248646850782320360009969572435653796514567248827712507866240988084671646959735354876275600972462274878820722168219578021898140603075442224578771171016768739344918891396818887671123117689098241186935715556207876624388230156500069163747900046118664831229185214274270369506504509018098208753018103889543056353890513379975135228664520525205390910287267415214680887837587159726318405518145958809036718429874101658688240635480532188641586639635391021415273560233208149899004351884456958063644638884819480738490717330679305577017244984400183728756171558427775227029354095388928317511943202703903696694724866237581325267050688131168179053580692323535763857701684970342088896781899419631000423654290095504495178546795521540001127883991301397398411843139608142500737853333623653303688047530251513909764264014414217965373421904899460531347443813082754561177569142129624355879745277975303232358355297874045719239489550772883826325399109495108711916668592666548636079938588674170461204374134082994988035137928546851444084342350412781970822460906419179719568695859069379642512825377448759010739106406684728231884529337876067019089987079484636414603716235915094855501932335286508127972937581324899324651349493957991622158239346812699734423747583063710185958069010604630575142347966656523729066374293572282590407089690272510904134550948692447280461105280712804531508701493221977856632369667625504427999283270728063293337692685342243100522738304369344309007081063001378532677214270183681903740395128896638464806131383490979599474889280828840085000182204909592229130295106637368493523447280406894867070622875371103239222569786638525663804972798384594734188332609243453315483993446319626470901387717653029018775192080501847927648037681702568139664697565912173078846965584113281472935773075669385988100210046485000741866607532841128722926341483914222373913386352577734927124440934466757064444584950306029009273533720952355573986630442133901471860928340102575223132975992361519887644102359600426231243108837435142173808100742794809300404107921254960287054081060262877470820368179056866848795103598697838826439933307786334480824435916208843538551784791645480269096812176124270613864697069299819768153014023908293031829757488977265318991069572712407039008780179585955315471416332538692889126541814514265702345085186450144478611371197229059144796018346681638227567560602693881449066747081005632745425393782321790239755032208665860170432443727301794405072966128855050694854418349721232564202343253748659402607059912702636906385447626218315711860759489488307434061696886261190804015651794917437638418622190680632807413624885579022120500322084504775898496907378048289074368491471751667985895642479106458216192065426617608012557397340878443930808631138257733057310391115696074477786101971969229800680653225081730113862825840769604887405832663992600901334712318687094038907219717941540305017258037986242259253532144781755789489560925227862147785894380666152268610704523389235694697596605816792200356245584086308830834760826583114933842803863789873245654542549098523846858117099799075486910824018501967104316465913836427681304003659826991996283104622670762071754002724454843782273609456746562107419363577320594078670837605021285680388768886466643527286511632541228607473065676943044545804854608669257706081281369704484508793626756573582797597514267030406914604884222748404747732974560948365923172531996697889837260881046626357720758175110382748026654233454470136615681682011124238477256275642120599486409838749337259020330233585922150705528272399140424504761511310378752551925862842057247346615190714861969345380044834578536244120095501131858134666760483199260754966287752273850377120422396129085850637150181798904811172575728220366731104654746145421992897877106473906865745612796276319211236354053314681478977394794107958429964304822598894977386165200445806860245823817539295806336240098825184922105369804928682004595984955265214366357328935900716697935359747749145723681697988155066154011324371383054756157939564673866329236783757103277023887656364028473646359310475828061531374803369901334052265450476242921326142175449989286028235429414179031321761348365733457311205660341443273285892510232445601150310266826698672710971139171675788164269337797161538417017512413147607804741701935810752390778750167106550724856557702105561082114178038188528285734967816340558618788060610183888502710457497093266957132795888838140476662969566669843216469753434876919593186929316224302719846014600543593955512565396830437571446166576969267507396637555379853889720712001134104502055424448465460800724052936071892713954323005494836658767388428704942644453341423523556035294659975547888225799886018029568869571447992810016059617391464905150934336735894135211578116103607805272687188327548491671276741524190771482264107578658010958624302722859067475376611085457261515870097028904815310649757603170534323851807629958226296659998790898289328236159592792214780999832796504365981421136373695615327201067952875033788526529364874083386803788607948935645048261070058345794998714379945025040921296502175026742733192870734016579155449651474359394639857377416889828389379126695602567083495372059523498451597231534013531790831047732811121298260769879131971049896338430397776177178433681315102252338397124507263249211150717555420235461908426949609910766566342323911918509154978001955134755383664219896685816658502090901969270183559480232749812999051403711144429818279786739049181315272280111049408698987300998423934470043564103184193290337538730506328216113494494041392623932730160844746932861628477380226335188107346173072417713772229252201636951680038194673147163785514751999037818657742851036748507716730393811764411019290946056753190768878764654374987174106183376691690387149270615574542978006112125771334813855344728872076418646545707181076687593257088714768395537314540061137644575374268186006346886455869499514748122457427366665093867545870063615822096695857240498555348585726039248079737333420405233923534918923492141945975932050889314326290654795004873782233826573935331308070171494791320088721046247834596772534363484145741944598224333181888667800945849018083726703592647273792965784910907882160792071651124445377315410098659919190581950036215224416304621240903037652317255356199065231166433885866683982491982228587109100659357510403807982283582408775660988514597368668295250831408329353065887404044796130520343183183984712111798767255765717125990433028779378072937144445627885498465189884199426531493054247757713447921458437753076879395630898948798009912519882532093730686069740638027992538618335534947289717428118928663362461394761075970451700325738188903435763657315972089876547181033089165471611833711674512059753022883177203598851424134302837474739355364096044345492539627594585455793847451776276184337603779542594294636024796723198277133569771546895838092300339955796001554500235651242448034876894203317592770676068163774250508284945565395103124837147232304726240752046094242894595497119574729380061805681234846531348221807692802850789829849931829356350377916631604388438604302030859367826476873000832675019999120476019629071358067394718379603323778842791048649928113178243394558254021356877277210405955243726879144477847382813771030152061446778622756609820076651194273114945954727438027632637062782000625357369669620758777421483856083313663821720536283421791844760296165453839524171291000377671403530271565419285140939276376205930431439118783610646649166643353666360150019528133947125660584954826394890408722892698102471779380281418068469041246081236944312736439821578000471171732599892734715615120747160424181930326941958188969144811622106362174520106354982569530916836543203759237605516421219341648596673573375992233894002880491356210277170642213181845627665675707855661270841135140846755321866242327036775943897483381867180197096110754614245696280159931015370861076931961202375833565122000431745236231908056700152370266584232500953393204402621512304597478180452224684609310624818292666646921224121941383027201201932528374386727143602167925224194764632846529222186747964396302380129339169757464201553947967785454943879744164666359411123376519114598725369462697194772655525221754466941661777460640254116989488033858219263168094604563696573367469279364255392937799400985000261608514025039719783482690228394669615797398246516628596623055783685148336373471483712169920602872127093180501248041037555014788371479627868665495263986754965733040067091430311808795240991549986591294605330360838200158056591020247348589037483767788022285959019880265310097794228361570754695989747905930467138661078911815564846115854295154915845880499228044258193187391248386547512960685326615860375156607496832810270739650922355721149263323605963794047988143459962518740692205154016103590079043501816950193279220858289312792630901667663434745954711540091568598993591283915772222584891812575224873289810972627047295295453558676189293919168735351453647308830280584966883414250646894095301345386136667033906448949357973379806497953471226744061278123535084176792183983344351145862869001505018325629756700922573607858656683053401275771638018384421061007835486676075815629977826833614714219597882826604891888667846256040889246517404900084861700063192973122484964045534957515813628647710741131444254908164958100941297657950917274902803665035536959044268909030047277609435021663967227916918494089162458852363353358011056063543687378538220184723661704109339888978428019008713554593376648998761179536539034406621429270806731296410169121209565663063962378382130588195144376980135568412542490039489508314316065249873577505519336907173676389525252009746796578786324267473614897829660259957907204779368892347660615826884628914523495633254185379154504890554374532012143706550000850717529579387997623742273133282379780334425431546392008276362344033105679735930418842943367649541957085289740011383756922177656290276969463320756501887594848003861566304070231120463945186091209123172866216468765598854160454846207936141015573353639246367207732253087376386233370505371380818550348245467866445160155453399462039135217496303216342233205715069039740242803171377482911564783275629092315087446042568215610117498631080164316470681325279292138984466778873805364635317468801813976778515212654749541396615261354744028743218810387778246121915434656836587357847888883229146270801971023767072226173114626537999245650877276563608045783895749147998756184977867008961552184502038888957694545964810477670890779269486915167567569314619423369572374325617064320836035149352495812132051947457134495911219126315752037069070225889922395537552717268877390102534159992602626012998211224425048245890381158748529809596695166015904382048252728645174273887916297606025051857108351375624662560838621815647007676850544162400930836508208259517130573849573424531062523907630822665225513004444864835810317389914736206544052213962285819580107925143799606623355230242383067960972840166559837292515890365824751419967842845895163326850837437726547210755237929787426995043154745270345033679640245491139797192152034029991380732262085097489255415431713007926074749246340038147156568804743567399813877898985940226648161802872239775330608255629330117505791876609108312705613615286186250479237210262183669447450802204499450895927806223845119786351262681965652995461266539124552928939303189197310721439006023700594794892249736327615659963692404746316931806011441681027753431299478888492878838203213675247531364298145160304352470832893107328980038433590472451621846789621161656132365427530835893185657060713590069549598654312799065995211189706857151010409776082558782087380333639189175370225772911385714601595868601299261842135840601587027897792257582449495592775661311275353059049120775632354891474457609080520960212209517040538933638384241584737770705567100690593011747992353986395480127032130594256989212981004232646503953529007799384365369602321222337826806525349887386897407860315922691329001687747625380902414456194708382994033957578158443825698255273427219221594084428408832005301972628015190607665110984195385518029841803056530669900278433864014885055180965943206578065548786071238373044249471187669811735549036456686010720833729922284341499073739094157281092535847118655988657622177959745868656918687187093736848812852618649337486690453620855226982242084462905098663070705289370893024570046459290214148987477011837565447598578127236393667890437642474884358698139540122956297531242540921088600415597675709143597386923670737643807224951143454859851434914172729691187560098989882902899148768372960968641011589392981139212097392176696060996002217283796681148932193332297483442417079470178925199173431118997457338749324139913778701602746767416924046330232508060886231509478628414955802112518743292736297505828606908351900198830391671685529315409398934729237086390577911143049689894616439095864635362695999327367582394988177133304588357849487745232574974920907862782871957752655252828042882219415874490762862600423687570103882758373582749914140710480047812930948100629908026305506129581010292406758700278982819069541625443913468056964028798582721000016636214296969433728562823826154049562572862001434732198674904146787776994262028713249264127482118366713952248323166013534833207625483913875697988942608670744325769696449404171804901946032433783905535589536059067730310800822097719039800684085638690830781818390785301397416115419684601723883559045926087258975093523665046755711855043800281524824668695095553771030080578277558732031616650793067943384734246085724983134191082337296796996256287957737184853455803078490936553508967500204741031121125409040631857919737545279939634702711384272179789765737307975733350065306460266875613449400821338667251984588809608190045666864929490939268050893161695960119505734967712409175447610167539529646465781329650309241433976083206352923525725506561620556869292483137217393037566861584367731133333692421408273373286649006082725892384249598766156128998311485129795783268579295384247814431869557195625849094767950420456093921155415964386046245776968262889286051974988825025727462298195272719110238235484027891994716860482392556876991861445367663200041758377722829158421885729955489558707262402672397642129866412170463021115932399434431893115673371618120646853351902926812717623767352455680409072231198316312748753363175143397062847792208930329760399391442869097169121259095961174096312398558656399934318362152947882617674674232086089200586229330748458028025429044510417520049653390446885760951250267049205396489063622848347379375872639975957478587150875057760659615572264230833878726560025779508904918460176962806143584122788822632454158153215698624943385993002699935719148805909789904152383107029542956566164756928960260482744848559410550144109668874302918347562131779503678139790302182427717875604163525294412691484736420400062963043315194730996812762622162042800767477553119104020349123296311192786480630419912557676243632144285317768032417015867191110082852608446607387332370663868939317362289335760516641078332977629957187747263230042419512585576992570938544853711430560664961495979048078253407521473020903560688379992379976896742375634425638563664258586019706275672923180275432817620378892855660068032628087296444565983760667775567884210095776688305282443621676894790774212453464786364869468781985635896113315681184521056259081711305076143407934426209922857767817179150244270201146467256984729865322509566520341309218980964948499534673696059732158687721909840516819046990947388136282841948218933583914195530124561677939799561727623828503902664724708940440499587073408393430549872299162193967167232094567922573295567771159238667589395560518552626738385645651417324220300171173240030785059866757448779749684543838701636821571969955071347813801291019941795018054707254166635079141979271897794616244812116346228993597098408917666976804319585749694362170127486264781479442184512528028584326487530938771107881703917788129517003033441367846672094074395012341101138320039221679371408743085009253073320590696766390585501155819083650246525373095131259332008043849648178555319008820291859907800779447526540472562600045196667256734008087591661984421214596296084635950323004927313430159793161644437511443179835303297773621525839976738113173696441269747898137481281989133305341498325807819713423499491664500642222133092658301365898218028535401908543237169939038512710614419645915459264844585444840229600789747500585533650177748162755463710154355454395137112229112235573222169313340093614309494052458725716848252560003192223625714986318045274454037623302614187818286169927444276890657763133320617806362952492187758911229420646302145023298879758482044001182736298850445819076827446804609615438296095460772054888104153417427633968203240381242024536899260363338929144067641554868175511532332230297278168283343552082595171063976211101978192566901171891278026699566397428186170347820359607516798713783805089496113769973315329157778562887006655763655051311726589253703214162452062147423414072327872703113710636744962780095568234906822685769624049222143142798195406057560801883230906884236315169552910379939884076551446245399127416928220889295385819456126414057505180018070990667425667623035888018191843906607731103988656743034693505129084132439589691379937431907057618590090301569578530180386606921560813298242867032908244383094897951491210830255605757113868090889292180137959269847737816305103549056973616327892729762534422800212771248075486006518901291771563111344015518708893277069388661076250355934276259843592370104125743714889964924920183575580243677617709138294401442007717384476314001996245469852049557761024598868902297845267704669129595307172455100805415534454414820890540863491205154956742833651550634575547972196564236359357432141266714528429937055115833031048770546154852381780448415272259542328755923394602173213105810309988483795191824539479373336177777002263162688604531165455693649491891757548064430738514893194391107613654393504445967157346973360717371841832910020463315586403583650881266446427099621537713008259755993873450648994069651071078604912167070583800250505957305888581623877345588752371902987093402576851332786173818628742650214761843662501005177276305466734063346134384024755020746961179242712288945817147363436048310057370090889009357908967948337686339043765498844833132443455135452383454989605734243990542574915629454570712203815967998377674962551103245064329275107740417386845370178354615523933791771453190864342956337180740895515796754133368459269462419359282073420316998256658249092061600334639246385451152308287155108731254833195326061739849818835584482534265131728080237030902197378425269796075187675250585636567596420453937716869433302375003652478169922537755766439394015290794349609856696573091677609020594410177880677686842303099224361835413213852456535143708494938955874027573731807100533316320926966880435610401880028928791809053014346512363907302491210415694398485898522948582726427227939811905324672301466801740943992297273380340932542467710014811667272061968245198030466179547259680612444785856878743748588516289495484695423577215048061112083184050940465371451249006057840036998617903735492638358853477997848423295494453252396362126475737899008989170060975947275573654933169249536068193584559730745104158347667437326141617091315978913194753662167211832725397816108580135644148461431526470223811296605563428424974817603418129829283436986541979091353228767693866756383782794206969669670526406074801277538495055890799650109021451441441836976919739179756139526786640199939625886282631491838332427746268770770579387052885029999616829318492757714612285222637361324684751998561645868058434527979412535235279343837331231990479578700433139912441505122352761849124876938943852708214635523310059268917644621092960232873896891503172316749478293518142217558151361016037958613903966468922104827749429941579643490304226957205504982624537438799428731941806527339181867732015592559815316194786767729407591349776491649093191057975405521652160889445681065118463071131802672758930243409384010531151495259518691070105810851734764412075399231135797041299364028376500355548702835397412631636136906921048858144755187209637944907865144057669991860198159232897875463587713295346958939034952529802126464780358143366483860951022170767633331305559934441300068450603741509827417502630566404775079507682791374856457829752454107111862669323507526737618123723770567443023543270635260325962114058335344251256066900727118554799478679298042990934034944154814934922256522729917489455587725556120220470519423401157247912444118931747843049704247301450284369530765694996164880998865506852930760840559332376553493724083731374640703668675741698733062402854778870048038181589235749273198820538558214487863775725191504211526906344518458349146391891531015571183601878159090920641083807090310356873917592245815799453992404698983426346324259812626925897950792164093405282662191096970424499929639696755677765547750424915557192828737778119850979966784510608847239103146745425382499708459701823091948786400434280137994452320850563048547130840336389298104951447915910883380792868186502172748705133650605503774047980608654530682098999205946177370344057325860712801148323737507999651404368844020314381329938737792183787092501144790959989798043283886218447420284631287225677478539402027258540137256555131891307503888760728577706362136215305388538275252110428101933978782673513765589535579887750614393726875776902140767780404813020916771047522758358604473687855961066659533760476368728132995130283550740702152597129901215122817142724290634400865816581826805041710200856236068359389631817428026832348821007066800309412841983092587207867013888323294746220001179254083514482783573281323557877725444421622843967918652924277292197580947329008147346531959513847406927993324493158486496015490654417535966138211077121872134416643659982565872970203224804512817895013615821869208889497334308049883427441897593810342979157365136552010702249608086566327873657725435074926731087316927280293385075242480506903810856652837705700388154867347163196548257676881044358239027620538072045173927187562661932124666761037113487410066354459118808992551390109509873957637755835758274556145607942003239910017018530465409940056076687572034386008956398507116979468790746553388303905362985011464208207578225040533428330052441224780968664475160900670852834917523129785308930365360516837765021584923995884007713166709858272181249254351607439688847371432488133474965643803805945530016983638451190127587450740921414602314372814804494327429858789962888042456409041062525347826649634255866655040940416486125473736850879824483803000379594335905563674782684188701628479556917055360516528004112165412591949612477511787101003027678680766974710768559849221407431463287743336738797305414979699034415348100893194054695326401244893615128467410990584234301004849002193228910685967839691849850121797852399498161313099432542344385896016962575792003591465668532245456804604915069026526422109178379184830917098814154617397414246239301223248849087085453205608476137598694843531970799221857242331697648625861418202139478852489615505097358220275716237718881757194957832890264110502619013775167325812621505290448108722816458267333790790077994915994919594289756214855454344261013894304258556035073602977986369624909449427177997513451186564134167435885942613769234992145926864697119798572451652501320399478071966992327855987891789642466696258484574460960669880541735387188531522828242847742452288495880952402202051159151698050605147459425283476937547012380373242325863461195109456279147215338264943367373247467235059298719704956634697336992816676253129944127945723950871315855540369545492688734185695377502313836285609376121872297968276250108244691127071114950347092658443617596070143486203184705405099377513497741059109795550025129223040979455996867643264012412668744615973709647497549465595910255058831448204533238298947199656161082689461270062840819217335539848336758150451457129563626401789504488681622909486262971947790843470288913751490378504896896635017757352043626979395519099312291279271904156317468484405637240975536078645654816330029546487159195837048583097915033312855937670829554670342855682437629733594397397509410086895165623620483937825926161174978168037806917721912270055723567078061388765050319808571408025261731532536979092824658303105724336669630055089581261343635638347419602359616704365809040710290533006169203655955876838665079372757219614153637572215928935208716909846833838997720784725247695059825387404482806811021618468713083798582353907714599981926168749269411720945940254365306993068741359991850307038297358081425790740588603088647360858712004128627780494316603624834229847086243164522175614219125449587698819473975692696653922506414962223737897280083208126784590150599059333854801244876439541768398767861795510890993512941996564077460040097552124998403927614896207087425158677539744434863255173658973147880530188910657614661435446640720811721104961172064997212692181652778119135110293095471379060586013598742925350893346089532351858355140790897757205515616710314467289617514809508703427577423418705260875784706855615649885610569598541989458963200328587334457681592262166366850263766975237398745520918017850434479115663597279474660915079431317746321427982017346492472441213130628448404569017043847750558321184508857925169959478265803457627872002376575779661199248113863545626936427927463484973877317709123508949565927319021717513639916861884515914674875628809179014130571892845656975230969611768878452744700541673647937735823785889006440927591914608940915005572489196676991369678861356566386174929467379813635769729655615103824469637880467819796688242553595395717908840734365046985512251125287156394447715055072505757955786868959606012086173702351625042181474158034606546657422999400954980867939747531844860078959964200656249096356174505078329753436980907536043094791950697191588336273137839686002188223698184385462200449638672482037319912141335189606899745290745114070000768364626104695032439470777985330647409160174568054586345489246029296858267005477270933095076428742462772885497060021652546858503675994196766612559445669162364609086461073787000271384085624642927071667400145372495596617781036540779747257671439596205328103768114229059777431484300643377702611563251930532639171147729827176347979603877352334129383400786700329806277786894727341060724021539171738882908801321974011130951806725795441380583497814590381792138119151853239756488315089042229706162485958853212656838922739594305204107516855957038795460598879583184260905728992810909312998421024229055416145159047747681064256022164783637185342065078918424267183121009418119267604832989991037959135637264328935306140588039729915255000689240952910795857647505195908966580262443313335734697310259315996879525716876866472104687531103724537872389375320804009610118621816971730915455344581297256264898177903845102123246304521206440290689758113019624305053378942846781984265789351880861161736774586583431675147777184832920644694542751903552188722214373989253599604228787811888499257483585903682121266129130329601370888425533466723305160296245657303641353515274157177148837257194557526720483121220649252054726705705982638185619482689787100667573448910710852394531811045253783482761052317196055617779532215062821509268867944030941665687704630239129967618327305090368220559563655011374593850313753467712928653175325679225973128200539175047436036322221771624502187502741684480228914072569544627339527415303866230885281157668858696617676425464099178024159985369595068864597790828075957197473818320928783665139514497500399762183421945307266447413803381814217315813165282691602062596629906496151429325583570921411108979497433072526967531028619120161126823476663720145902509004561319071919763498279378814272898182774547924448693128647434164256110861667889502480872370799551932755921426946171663157571856269923604983960693927588178786843687124204322407092532005633709719021869229060550458904096348423177287127300962507631944793903300186269398120524257250283715171294330083055741473861415180553595665469540465990176849225204573725818724415553086219400146569698641502276617683339264520877984168314945077888417560671465296123817780998173455440784795214334179533416092743172153292914244508763361312626376664433407203597479202079522128382470123189951207345957869609560604876440095814088449712992819894300960374604539728508342931395971744965331095610051951386717846462625971258227483064925257348532226585573365018280199104344336605501468236135297900765571100334169962631684553279053326965360580385847708464123795685677287856524504957331805633842573320857265468894398165652657771172452114806765346391540173627142824265238800866626700614395983779721483838896752143210838870397108510438575731421291068049901228695685093164493633492255433900724698731292686388306914400365274896435746693398394113059856942729739258895123120127358083231902904005638833293959661188002147677151440924636393124193324316026464459896061429017626277308063250981053625533493424038662353684661448168642479963848008855321923327833149367159172403552005114496036219577129777455614241931744369490259591182767810536624393779724835039663445449664918406608826551252937106312881905873156072333757344004183201241538720603029993730872547595923745653994455909255865358687388372378532388520982226114575111866584228970323944370301159029299583564878057553158343434155536977467550821647001433766270077825223180713704400344750001245688276693320878859596444065177288005586108919632055126103680587460098535930219118997827705944335749643364969402388652063903975308309546427770768779398275467298018580696731631716681993593282595579480642101585588459756750404390603136566050262393732382186297230956458163773923729953224316700179271515932324021752832257840100051553966096516411451476082568866939546151224909340936183060805397847820544827981304381077726249741715164055362817752560878667318062923587136183757954526053874221189647691644687887271786024394999312230280847525462510922024141459945944420338178692512795914762408798224297225433626678046892727719721040082985384684897231202366782208969798030896543179701655823985949216184768140125566235696135416631828470911683072350313658488435155061787914594126631488927330762876564620600874284683323645972075477979455034652286187025122037459896738057776473671623748266117924519306284443753937732665813627761200496846895692924717531880151956733688332102779232837045301674848049374890197754785853699906921700749526007434895477017491391217767481541538356802140536560337968477803179487222523572333255199539274458351455225951196055097813120137747655266899790362372261442237027611049036620239094006895701964726995908904969592557111277659205468560451057921561978388239201401446116432417723154076845782214484429219770424520025797163179498105159783891954934391161448808592733998367929585960791574186273136996287679560936487352835920259102386675565685336834921484914549439391369394942812255343926549491456265376876305178501666862404266343276856368161110829133528197258788269986273768693836417610570333228385822750042299868286906940439184312373025889012002400451602478422685858380107476019528541480228919895571837609246280195953749667637905768973240813210857221822499322472880489055790653924377137921536978582753910395832046528636223582572921286359317585955993631344363793348523616210776335267268900086460128654961854239133229382476887039801291046990567531644004349403533880125805616120308567441207516193211299436682095691188877318377143642675544376470675541926089312223788077723726411483659421500530354746359399025506246251082697270181830298703270462105573610578672982580340242989460623537881172691935956185668989464468645713291724409063850918394157739201477673981264836506629533748563679318923112599547283336050212429010686048297211495304356660812187338824081997672439201255525015460505832426648459807792188249291104475628177633595424018635891635599255834415878997942907051535390606402729958924607052419995921404832795104107794780770538710189221652703979042167027526641291442051567851832674546489637113263568061451498738508603617904929955453827160057654863110265000654555651469688676374782702875944372604027979174286390735313414966026220784373465149310942863404749391165695763772202495248662225505794857465566926681089269892252706718744573484194846534909099150956559886700244175888448349864989688544232381942734716716644501757875494556090864113902050536602900653270283382164232901817239065484063267652119855216150156574617692589270097087568777020083208358806415543381338509566887874385565446999039641560237672578028118136905746051133392310780392104478646240636395615701270146714902543168588778689676561120530069845522591394617134476149822436400982046975895545904544233787838122236704345742394942993313697640904550875321028574713962309863324656425090405733861056897174274986523086314971602977055075732197852613808516214191595460214342097136026156252194230681405230120433051426595025813457954766211164708510685641100286267455064948319305796145346444598441729701910664357479209169112486457087501669219753902364909292277758335207675177202585832042086804075601083476423128385172769188616718191273931666954560645743624186751477302958207520410825882464758988570414501801233987449676408409110973763355735905372749211058999940511349868034345289627708959091519068857624869930929373301591179867658629463593049591259771604816867036895899532982822003838370627416537779222666260250207036405187229292572352764278270735835920368824375184090950779415326710238230444791911556989242571395933428246827592652930644116267387103609749595726406890457453013534518593517946992879012763340839811207967157963483105636611979032509947262647545258667081964095683031393884382036075030597062293090751703467804046988351634534757375669998011922390287426444877088025570487670375206425898877810311733346909356434012882553457367307216646346694154285868019542640457089637908015274985901171414581805092097716336502384517731230863134287655211411979563180787555679657787508268454924921833945198426820825226454554832580846939927715055677382629225094276392215193209393187822090330947144559126542467275507560633592685572536416273655918051746291077483393589320441775636212309227633671723754999436989709470896363496295832724244734224180743279549768624193576892483374132420051894392711506018044256671969428737456221748501679901934080323207041188984356261340913173036450742159158865398629960143687102632572299283943899427486800220574935102002967527797626628309304308252269693238553141928540291077511529718094676677753811311895418227763884134576353850939374041360105811941602400752724485333192140371139614872557288157836684332781450423172107936909967504203656739074740969848284803090399560365591885025677383242064174570148744347787387137943992250524802021856164215349392880484287067348994833628346101383390680030591317187297083304138140250172931281201917261023406833214018745473527959734223479034510076311438353369580460771545726434178865339239324968761292021642779320340985894646935565710106153322232328553625033573096273200557758634509874384141250847498618076346860826078348238431617328066901684084462948429509016614052826429032875468498820914346328200843357847089066876247752172512761548949060061245078581646648232838667796191761880472968990155849071686651039223494159092205408413347810260873498190679194221468695968001101991943119245438377093652647104297404613413543847055734538298331109711209964679584781799982970954391694390107702546342899273878552485950973473235859737495793645738648284847282144304387892555385840751237106650278308819739771794335779863173554075150631229603305024626103628486645128612505762038366514873657392070361884550163631877949136481945006971445757873787324389047187496142635744805548699887712860894729438935200506317199839014082915899036931510889040557638988946028056759683201662900912507651617930530549463695893551728024679093743104982241800118195724915052016262488572024630960447669537639889202829869752771684531855114133564136731829670575460409724487058431605520482036920708850438643911293300413540007165010665440735639017231372895933464531476948068873657839471339180822978366670529055143186286634011850640721056156608048899669899193835073779048139757643956144637765413735201265736233726972628376977327166439200795208209727798049187042836951737553310926951143678250421708683174150199738447859063553993043580143751530628033216776659742214145353861126765785829536482974406209211610267460920468129766377024965608342187531898563115619104386187782936520378749047473480749459052693316731978767629101187812000136196645368314761145329413881964662141412010023706838289609096738529499952230558294554929356637334156943849710429909813251876199002455939762167134305474794427826465337276865713921022778137420285550676470418702268164051025559916554554364448795557380703071234756739622737743137723548604369484455376221358714648925329702292306058982430234848578821683432647711239332951702965989719589063043919646974195621594934424624691546609152858848102041203479023108081645057117286905125149248425661930973120807639893428120807576545059576688964666511378731464441518167812565226874899653959324116074498558152713630553705293150408275218473408292035959936075517436396470194189484990511035647710873143550812319757026209614567485276294230834946454482393549436841078225690301229534152241646280809414426239708003619818260894419901829309909058680760153272405219972626092542170036392607095331708664309307342013536614501082258581236523758248816189912450495846714100488475367490017014618685262759929283259036695315886775015681213917213496481714192287130254122432882065437380327017505951605151632978914094458912211005986818417868678593775949569432591639572680961149937217539544865462240557498332111602023472459166623496196524118115197073028901249185038080333802515831984741737333931935536311987567284981396537166221452258487268394062980526234885871864285576936455953478080796018333914618510229508288872904841249871979899934052022269595042844665696878407503642634790498332024992902313081208775761361296861621302419599420226856888987002725288647896385318406987564275663582253760306619343400850324403165958858537205232076114931862019335661666558054152340141041433825083698726531650224366338190375466819256611678305595798872473841941245537057990332608038045293073682459438885724564098545519140251918375250495473026990141558898187802922429392117079050413815522244707443259672220130608401733620582010827995552790617153906482231355822764215321911363321873143646519696895227424692401256852964767884525785502910585312089123898163364834008928899985904513599599807287690803803284702759839260403994056610484380750579378804162118917978864892083493385658282214083735070219088624130148810522933630226213540252562355086439386698030361653318633524481599821623923864904696472667906934949916573681068883697270700164974733444099589456393257447252412316833875296963615096240234705614391010299382743443336523675665454993887480993418493552336233661846412917922055887811581449879958715853717101962296889481430592343713006708279119726027377115036632205639724038520734054708429163012526255585075547808378335918105823310590573989883110170755591468016874059139078647234857142019482289042471849827618428562097948257311002263606003296058122520945600265359649930199638730031135187693105744751912005843808125251245788938459833374010540613122135057757362472558659205052798196936687278897552958031680589185805865955698545858674075490832904322394120115145744269878804237290787261305620020323164738933479185413826900259738077697263840843805013789807811923522189559182766927373200009912951002747853338186162105112513615422501294896194613127620041082214843662349791347588611256824217746888952966875584300214215109859370453930432851128615710776904638849034576633791666706602127108199969185384705076378179713138034019739748450355942175380774255831332356704105079059496396302259080804160519978910048591398085090959838888618987307733912797517301258182104073124243087552895182076326340647441315044129216370508815041557221752684922329571560578182934621935073442437357834205175683569227627771097446583624160635368593341306392945455217625525413899021426638537615905893597199945083616799069875570303240115326810007675563076943379590932968273799421118920873113611350799928565575774533048633013988989509797396900672774237073946365433740727396243010991115695190915652898208373979345495238757575949432359401928046841830640481528565174844603117891659960442289307175815698598910390663771982395325360077751732991031297275485055148715652552622250876311160745237130275536908197199315187747942901475131597313617864906878383735237856772857304425921767982918246811642959362635509317250131994764096186705228822253743899374729705192434987891791264231189370635645419744878960597258152136604323336741881450150399397655709375429863867573407495792455288255455227631694926694899637499909436109249910888918000195191622959012794411052621677306376457618723943052639617115593472458423078077304072632397448682578786017713371623932722706550584409507412376442332649330142693619152017339693701384644561402520386424063865869963038985940426301888103477229133578976123942484447315844359029395093538971823202151405851757626264224930823018818935697125757602239672434472223699266284645427428452022625107733209443301260072482425377973420618719692787672796867957076741092761859399750763782581009111826917043298066468877548234311480615531943965050514041522391006520994124766985789278704304605721427357974603851345124588942041114680604941112284606860187489433482229828035004953110244622375889388201516559627100835372251250890688212968629178963274613859508330381792282433575513543958714179354300171540545364140398629335428117099726115674859108852176162937576887103099080097811496309238609781242488000889212714272062830657415096122794241934468688780726024207313184661242568526854925988879611230767636387803322315979057472919371161342531462888674323198692993881904289228300649027584406040762660719307888555535683254361561066341163058486604806760673158905183051899083979802322325036830296165670783184766168700133330000033526784730675141663238644245105659797541671538391303108174480637761634313096281177942430291315432287397054359908772535887325185741197739718444592755453028838801958942749313756463057432919995080275040083522484171053395133924482426384966190721553833015244306493507707441989375958035346066966413728488563129314522012017879576305840396601386677378809067080898592037340475985976640793494368172933488599039987103677770697763834559215070219060236412591177414388969276501524502370223989321928763812187368629794057255284569641841891004006106009383643182622377757475178726534404690232930995860643053730359369655910700026127503492781051996403183988892236259381641060029231644957357634555041971938099762614385532450180722468292477189952008175148018523604275601704651519836326330963623357289035432512575766834233985196498506173226897383678610680176795683728203377674071891115105055246799710223038849571186485586976438862908384995329133586915493050929787934480151649685926572968352573889080658990888547279047992337639269747328756572358231208155546937215105523567092612730356966895678529683252680417220738313850883993305856362970257069636559244310447935479796541740043960985231912161905551794112817803417175508483073377280401916933412146265302024809378944131480933789428471129205687111543074959748782628151002883669485784580704840444390181312922113412179268995260712868662299298426426861101696336231286094527937999472285768434834073138283531677084908339036163158313953917895631702178325205872448588090629604243048942061659903028487095792404802212467816009671764057823765601085693023595528929336788366272398759229864474868386560117728759211773636823563234977913132835444080263695001107793718289624301005567206145349569270775806055989325467264737621451258512838657013943556070893939358077966460379474797890770852722294267325010755903811219204951297884381222194382204279649090833053475910067358160156148937599845156733118065690879414291338870199966372882817689397547949875746251154510064641768394106861399015657221448136295092313671641126665176581902818768766888418021507070289876557096139218791015289098765811397659765318360386000605825243909218443402059125617788194463800909552164123821665745565853562481618069113613214414458950557369686743092107439352363726162843902195264518337764941731964425565116060272963411166505010251826784473767904483429212993199205330165963048499553936145721680696129100696333577067761461708281885987573934092345071811005010850437945827764915062356036955290956632379994639787213018822889273035841415667557032569003624900221401966901564538097556039309050441198845390085327711056962770520404970633429644990554764459756272433031427362205718028947699938774915005406346486517206579808123962472221356753595193685731889912030041003874662814238260640897484444949145483158763240961861685316236209471370250091524749840704134216898329980735489685612772688316726501489426210739634921580192806650234596275413977362633707453921891936063303340169193062245922288219647081409040510276088815729152322687233075628894862808900116260634581083022459561519368333623944560122778950658717032352761742791743919119554873869256506494670394194453915637423045470530738263833251874983277297550647827315729734237767887854585248705556866070531388445242979520928878203696829070641106395926542219640663507516407568425955517629414947445240284279491613050671626904291574677981967618731713150674938683593758783315670334232795433228115588664726553816396583737764292476471701047547522431579063631731155869795740420973675879114913274443529082207908140290890033120505842973026404701194377400920943228100506790260731140405608489480379153568914993173428581669319237328293920809942410440432799165255293084033092564165002190985507280543239557411610252992464889015231992329134992614770114121032232168932491659866495850539223168928957508337037418107665470686259807649167340811031634738373343322294185741611662041749444078791776131059406721797146641554346722532312012144743788739393384374092961679375157085837826300536430263715931986988951308259803834741838957197734808515615709304057529368114411041178891426655170509177129000469538824809867795817572275805495125724858433664357568232771754252376806954397743964757834510464266212681481006342276218617747026432194678565719188009831142572721832247123382517934207224520092628335461622255713656253787194810108713044996770746338700485924379361665944896686698303078204375003257285680028123308984556265567623611736781104681473622001594451258877435939568669259065834267221287857034833184855946069494567667453114425443817197237829445248717241962198575713095774642446163124479729439985558124296111184604489301487541257670681453925175176523276326313608448387851506163434340581386750437550667913216748554302209810431300870499248653760987874159947063719339762930413278506884958119284332226837686914903735651436129041123192767916100760998693787390105977601801132078537813546694971544023613844710219592233943475154400855540207588518002162096165288265968712240700363395884199203541075601071677798491896628153299451035568608769128364586216058561259422141920121679294048950108055262027845530324101324108577446339894826577075644483932888856870546874403245238308901281391511912020979696309807249508107177535774841201442528985043033868448638614507211004708374883878820211452885393610440243859427149342988804248366387808585210701735920870233680638946881856767503263324775251307050019582969894146873579429758789949986290169448572681423448193756426438570952461221402498044716172418974671414912249222775175503885495510149013183216141523138756963067014998006066759415055969425839631568909597241969143653519570338203386887018115987107412668149217820047742905430856941112947211124497420246467906672605462105184383944587904036789724509577355544788102005967219276756752947568326256494562455726959007939340940770721505331677822863317030843271719533466569859521369043955879589991236076903345734671350020619038376494569627569128887166929277372143601407840568692046051368724067269435948942416470776809139868689002883969517411389190885272735156030790255745904357512371196683808451875774337493451041852561969469160343633510986068213692590008293693599854633792562516565282004076544959773757511979227438781611995075314985149155214633081450611956372594882859459100048770389003321969161347370708923070930601300393204312843978103530751620335436974828135456499575615470634625415722553777552652521232112310376107740783918974714725642644235129575809066736975706720427530529335046302695051762058766216570127379474955128684775875465692938337278494614502720177424528009345597541790195498027786714434569016682498405183285962058721025745914501792418302732277451460110048612341369254330281058049475364267000348470462448131768803921914412855868829660184781559238973583033255702403981333108767030919580407167748496702457520979421649729088111381896369620976277755361841421362007731465866915261529623401830900502939066185226197821643163151186799417909499942126369375806770538794062654853691364697686441348168502915823056666707586969294321201484630221938175084335626684827733908476495406313552047530756705238042910078717257588502491001323291570496150760987291173229053372085890316011701636659383102105061279557530483626699694693977065541801112325458767782123790109795334637834753586624873356321693511220308027818415346479209567886472607644794054926074303047456586684352969937686765474126162186616897582809237131854062294589543360015432515311847496257229340936536489842114755160391250167748477968492117362398737593160093060894714422350568056016025553380315721385121866839641183587622908412623749992681027479483125402842693439448130504160420420035242847851821867045258102896506077110034730292418734383926582178258806187116378808448577573118495253551453004312797419626945276069386066411309292512033176283407292365472012984942653129450981460870162119551530122266486731317233506566580168496258252272653815566098706149352633248625048702608800256667948996889710680525491930655715669385573679911747012470356822925900137109585019753760465714354133521200679486293585767478907330541212862663635619794662359439619112964547342968686966086008988349284038218366958097490670423335884887785231155257381064833880000090187417051166144944294258014656095544021759870206625496784052889880028676759718960432412893932113392475626027324343812126659136072351463060569880059440925707547085065815951883533697790456833831933993501120966248850327935569832421475932364390774554450847549076437562629596513514011460612413017800457575040587738849022623530458429498508586529937531868987104768846600264971727085975303492116357873471892848447983671235435890982642863423123177192002938225880445810248291735191958075912153881887877809872482348256913934915446655771328548919987983660226197501657837919157200761808394758572504654683983485517255618207842804621617604228732053006521702415543400995595761926620753085771975321126563320837682181717344656323778759808118292176658572552052441330564857767358379052830509371409328848350578984680640394870478370390531992388950621827106433843062370939609032834306454973485688290322360510334759379184418063616227343057808308439677949677085221076982025628109472033036986223773809905521402474045017678487534184424722073199829268875935334142439483401470069131571208527403588323916448227132740817225634213139834016969745704207461185183246030684127662668070283199254812331994531006516348334589153303262393206844097922421883455537454626215350834460194567778530563141473666033665809015977986893693286940088302959349895958957768686299683269012430080625846597953065603632403869115888454933068681937338800797023619567628085837387106975623330189701831427929659602843057819886323970482766747153864992829329707053569012516488182629398622698352166992476795114209002855192878719637791269972492529122306220067484182417290010037241719307940333577890058319557095801593264330223135869134505292161137964415910502895085683769618832874563833980051889406580851105523898516377880269430390325169078876497204319764690926888215259446579128007374720709638774302043182030977463644836800787017991097727119792435981950591143350375984016454154780515751010087681448341462683691983994463961256602797305454186725232820027494932059696113551470795263230972379980041487047610473651633198246536684580978130735017168330986023536379991476789780665271497784728055763846549553986110103776011828055199408674419131151847857331098447134274086873101499370716087418052711739186253128364648742030231451801419546615182786635773204913317855953379714020336548460135635315338866408783916618873870319601946504682760834249189400377428615918541399557386424874546124767687485376803395592752771218586356326061934089216160063131223474431963002282013029850919492214884582694242227175853962631644167443607167396678426921422103778192685947663316741954301706655052104672864625266416222871834289836864988099993273908108147511083773638748437771390949518453203917903000402888927986123565902158713310067622284020991702763350857172149404542834051461622007352609898300051871653708774572117673856231784581173231963050521440910498335953922629728003551422885526166551462703550381372426007152214052794519940787754510043593867459652694830438652552244478402265986152943754057734857976039999212516025673695374380278890183328209301831462660551200360130262633753731588517561154667400702693191498087506106445246550157483666281462356696542893651229365613628762866900216756881300372959098583599238232375265364126432878787425726082188563547465720726928934918256868937801253395741970896323995927461297029603088903047072878816763185970162621687225869563435573386878583907669011563733168643618352789128636299218231296395259147584792698108747342846648707996729835312840142947933290866473850315049618702082300097408497315274181559156429312139589873905626653442193019934494637727349873590268000310232972649188095871066708363284050125805473268460674073776990421825933573391013679489499796718596049540892830807732785764289662415572490031245165733440474304404939558816003772264647338669748722970632732823004281015923340608742050379101820366533724398153992600930870936883217092196726353704679881846046191111206572777998245576347536736804216294016203826278055188886675541231502462400734557128871929306150531096432373803033800398715296850400610924436571966635711491232259954828501260183780486989765734825758039201810997713638346565938884804139707346314387016174169162697732657006551094589989585970939196554944162121170881771543813669179615860066382366704040273675389000151810291759138097649354378709511800473829174323156732735676361391303232525093182256029632442462559201246749549215372502833304848148124246998557230688885675229712303624466323072712718990039691265772447431184791280683661833490255297909474005300999927655019587310900759320712015272491624890452187866943863261315793978587240444788408633574872194672442438988923819605480448253733986803696514200613524785492157205053908269682473329133367428689196970798632714319979265324370932079304226639616157232455535906307499186148931967067727805270696962427360450809150275601020582470435176459670304902968486556376629710508038933734121198866439419896031591191088439096904082068939191530975369734568800670670932263314153004998033947890667435883460346470243660613800330145412500587862475801886536137248215598104139871010731661617670284356915572667899254403227101733796747513712357623370840481266385699925794349983229754921705196114672026346868272916984186744611945309876702573273093637062065545081343657860576313456520519922973188914456918379971818243714229300631517931519387433710939827011584843291844561345067170509304166665593771689487500717081632606654581604274061147860338659752635748113991097539453242185391431815206670371300956101297060985885515673959591205884795688515001467461063279204933388968037592869159377305046880914511819391489778787026133543283657427983247216692647087209150245147317270125210984132119648866462880770029060013854603202954792402037366212574123618555261521952444788852848676976774497580926400260832974242458023455369249039735406797493318432902344709462839476698707699673130934255010692294833616149168496708242126870888923938819022433686708504359571947575585648656174790344409666383776741381441137936689986537217393103115068969910783132655132498266127181131458589970545813442851976769656458796425037672832264882969639671728852746151419097514940801241811947877026812963894777750392038442957822002233290593721084567593800382644445453853812999822682807617881514019244455688023639744192055335225783351182832485986480850017017653972338351481341172684707680929571403494444092281919152431738041881724417159109707455743498848548803239409244030623286998949312874712696622542140562294223481310248736399973964249173460106105296500433684947065796165583345381538053560448527259809562243230115477292169617262088046220035933711342683226117947952087503961667925857396605866919673557350114737740719334467047798066227234415059608174962551212468566043417161212976289366989601675806127469921390103537440763427769008232634313756796299921979051111934619057048532095108561031110042697257775732491498772854886666180346680292550111588129560520139421768623965059395274243838184300699699908443584345357541342099681670833315078628488635478219091791113757830158568510189396804396584044220522718067511876865185651535314021500710623807838559091743634538190607858694161972476546197351047057679414567185948937949445707133957463573273370200957838346161117973067097038726271522109029911762742219266449613439490296944923702490710735147045220910996624888348454813590367715716104754298028217414293947750980584503576625324385825543438855578004687763747978211591657310743465649171637904704932028676960426299906168933030915125349069160308252246921572681757579200313985550625815047654519785730042112205445009722856563605534111311394378728786033748176253570848464579891491418402221835442897096734918253419328124133466672572246716008167390620917540678022809327401248614296069077632492575656280334488878858778577370287665643466838615554816423375320672641681978221319114097517252732505396599681627191606349107469121892023732502826410461024138354464255925164557649567207654342976527524112528796967306302204573818519684509154172405845316692280158555312701295512447359504014864714831219392577768069079008783300561126573252627800536892782593352864244008081719727589358499716230455764985542818655658658463077796361162575629518066239494696209513138844832068396930968899869471162313143464704377916041449605917959912659182599930271266164525434416478580839449646775486691154610566817582133363859530274426224185720284722897603102058157069276709210765260989857343493514100203709215100531194255882961606933130853322233544898871065616754736546241164746927361808796830961969813419713600117862081689498200096492907212070449290584106691151833722363737253703330014407904645592339208852033351491054221476805107750285352247540564494244257712222416567463502226267001143129110765897317847006480433708248160792493719409041189137107574824600890730434329523700556033651528776109327076726268546484398034270666180553894106952138489955519469372111759231585201423824020241366269409896424515971399119182424282467835900343645235941858585183074719349196651125343159216107259421232988948703236658157080552109843325602914592217313894214994565690709501800594413666796661030129995516238179572967200348568860890154699023808566069467497974162883056743849021355032709462729748231112822608601717215050505702373140495851458849998404466540682845865400908138631405666920630276084272926963979898159275188737314497122152094866398741499451354456022822580506063970807905262980492404532516773012199052672517402984490187493309388526272436014673121358827767884269581771880403391580891565228899504713008241134069265976897320614520934568669108850460245623920106631009681831807229987090423858814878119543821808141783126856328940174058012159773484112484995910168306270233649530153386859525563089584010749318086543218962360588821788168077373978837739675518577724364403471981955086959666600525418971977313196986791982590616226675016484309568841715601697245763347229404787877425614140901712863127137448588933033986951391220600061746015658456691652490235589156924568830682878643028992823422577027185409997811038154765512589110927902875568155097554236517790975656001832693180688651156082788174626543879318336852192198010308180578019775291251583772754768717548495975786785679833976874212094603872146732384999911401409004989630208756149725549420958120949971459881183225937781712200524598343257761430280489423906898286276624567424014865548648719059504843545157128174098045073952193896553088479093709711141107407645112494427136195930509484286390069835944714344614036801584138580262375374465078547325591562813207549325227445456500552678486402705904597356048074598913776602352383481509490292901320341277411825138119411839761612552152699133523581150682675497006330903379453230379748652113091979786871683367443270889075503664628334529715273320628267300010248119103658256451899379731229262736490274113384750359962931080089793222149823916131526907991763608960655516666669601315389883652632181411039866645012996365074499590950277957326923849828747918924383815789818751107681330683230121570556556372699440430597095650084237581809304654407730318416479241972960592287105334187508977967993691886874766382655188700757746375168958975951616293889278362649565036714237440015971079615030363378657814218358688528414599147894984062876031636929645878962928223681488932305927970411672668082128506145214766695477653611154163427317501747940652541238625244475127312868448131293438360814077549113313264792390163560728956803574046005142847404687906648430088887332121479898807965944043040673234398653992851627265920749314516692682952995518572047538806338407848352380602394339170483734422437480219498035697772757163110734190546548503379150874676424622618920739399468111864831963208173850585466646478056777678086756556965281470087829618603165644053786874901507655328123073956847238873220344577163685499951129326671330890380108925983516904100445774603500344049874692919796018136311666944533197579694071423576931621982552141598063020014623103226936875653470333405231723382632516650188349782778235262168919581080432656216207630427269378104616127954635844880232941178365371345402407512624385220297014032517210759017047807025878107785219358788173446506783105812747661048469468051378776919246380798443723877935714641567355375215628620476616325089083209265077295250381783688919252538442870606149470076819657057311965506191142590485357381353955217390842324493017228980337869439482868481587391499732953300278726391387193699754528676400958264086907446785358788354139002719785383190436841518839560363402843854503356915847316561433493061897410540880023039338276706786217577947949474426952451162232053765285532079389715778819709586816657414922036960921439774202885987254183817078835587572123892561359460601066016154930937503020570584177483399512561852442745018141917774771564237312850012113079925754641278846505383259628165244072201992222054849009766042045689351311146811767071568389456218198954475028017290491923199027260216195695178147327655036368111460468166294991608371021012102391391876154759690043814974718460888969958162476586305731371065716090345508164740014524297455053050414940515640699855557073507376184160162540541757297980641825087486201928837738733506906732796657158112453218780925518215688399381973816220818619546267675548708945417975935466369247718977603587722182927628207362762909595725495167947109069425762103312164288920542178707766088724954569934577834398803713555820559058070247515793550782954514315155592445336320322089697820322195022973220079117227121201296657967459161987296427667998065595128826114268432528308188405778465923767914563947596833508384400074047398604285063527388015781349239333786604513002356766017010881386626331761444139641200899085539225990460918883017035597360982580977165529841650314189648208603319909021861354076988325845300609024715722035319629089980352227970033544332579306687925351737171439816822236529752041706387910794516145786065425858538301421570100426606421480622768947243751796663768047640633642362395397827822230524476259806421869704955462045324359104697447989419965691371741868419688071569235307759845038779587585449898951747683737630895549434566192559787519593321702152752149159040701477810186472418707198090313152971112638579359508678985396348695706808712663172486988525641519119348799578939901001334807226606170668658555391457020676986931340661981761428667711636356775291288155305460110380572551350368163350954409673424829073019382963957021561081637626224339382734637430631441121641391071736434363689932543193614956296352455439297948611781218577394508800204310126566486076334090326756422167383875636924128448080927730560171347806241693900893213264235331931210870301990306316418217660684775842499547659474164424219860743994258247268502652412383872362172782075007647401860171390835791222962344199997687361384561681627465086542005174831766334714079115591096578869630701811323968190540698651689282186253152940826225153048198432204477776669203256615586670823219675965835522438492183340856226449053673121050438434285938302378191641242040661593378824735608163514355421642194110183387064871669618630532583551204226008228590248762889260786804633880289750227700599960952353093454656578828103370105653742786038645606407608852009473989092391947407537838489306522734294380783116770611663383545726262479016352040134300014935137927566373130020233590193187609477279089998771841649027999311381096022931916885681295347668454087882960163505151130095155546933451683556463946410814685371100864685168994917762632164124122431670709666206720775738772914275202663168361037736299088796756931759898163882790609439326310395185620923390812858584921210950815107212565961828755439600746548542151968004519374063673217185675750558748022312469694647446987731113077502287453019693030712918375586814748100166782007153499881823174734140892340686881911228995823956114857852964554956682444998432152209596216252521595354474841168271558539962985685979815159697291373403349525628515645379191488267572917816905253810893397779074027866055142680227818001994610673504084387419283466568690044068440779213135913199506860156305284998529521592691415333529031038396571210561797582655933766986852386498826357428463855536916431087013440275111149416162087859209310332116658552696148463428292775440935122126157436054757515468094692435294854617514571277707043297848222765925730222045425023162739601523602335073624627253765125028866701046254023893920657405081352967417400196775863867865349457632401181603096771876893361499365764087609894773471933209945776993325357399491187486407664004550307470097952584117579945811934816797049331797845549499868751066792367315376166583080291350689692898934649038956835951869227940251875531546761595928083753128941289612014995210688024325743596318880750966819244182692831082103206582765022852476533654214709392788674540748976622301210946640216111487221431150423325102589441834297385294920392319202894273643679054946925629730989609902412128087508246710650642580575880186255083956050422361708643301063037534953521360377205371214961947876936318020017178190843199188968505740010173655037238417873818489970476602435854758467497872800000992888677214232579370689080312621600661458443638392939725713508461377193592548227933774538226681082944765871605573598324284819549756949973596722258807543887644119890355474279293493475119210925152037227395057882549439568831251488394620057834179101639831217417244345469492313468729433052817907333153784259419079559305419913570126399707417548924511324255001689362602410423606151649756496943847749904018125815970902737722745714652467766526601902523653453331395304165689691448995024538900697982786678662984299783190260066588066371805951194898437281452480742402829239870756594824953578980831560098316224135005719716915009784134610295270254753343600574544598125761748591820959964984502377826154978299967818937391171823658411123795025348764826174221205942671036512443381856561710123432282896817590555352445981518544556392408149515048835129614747491157837547975930032592367482669913799670993558502710736041784393904919998026921028134653027526250133894995282367479625181088947751076017348503386468352725687039960499717857494221895229974016184992842187357043749696225998541263897856394875793487891631522344284620693419133379220486413031938994712414045707489663116699864580448521530351385886135877546213993645181257841505363841698775988789486955558379431535858542206779648354965219301663668114329518277103074168301595629859789989607796801430222128408798136840856207053412804269874821444089528112899091222479652724089151171870080819465342841370796370857151337340320398725935593762679558630342266610137539619520738749207565187718857899835400110391659342054868577697173280344204513001402186327232219506229579232079783531279140425785326803665004830112959907332754352379052817852442504934261499962833979141422908052966412133568986302261788959185345818566492771447503348014494833355493947744234410059478508565250795237726100484528312293113292267114857397094510027770749871305574681277154365280419658697930880306728088531115933802019444611220916312139026189283061486394826909971788904378236205836272878923958735895545571112923774293968412293279328710591654202690509238869449273149636488802723785045064238566752426346648415993120915279183168698236412079106130319006823615826829566976127336907582375612767712446179810721897741460909106379088987048390912693070265704302398750730731258291291312185871145770035474578300314137529923575853939047411576825958788189989947802197779781691928577920782681642933951960448953818233801558643139428008338135129467505992734476942428008523845709331837715639199901150650186323086198320166003202283095167883067156219783790545414031924938936970788912689597578511607629294779535611702260071473812795252533547231229468506467813408401840304625032735006964125130307209905518666973652293438966676183169165554148498513816946999433806461617837234338202126448350938324174359733363390949627977849228369517188224100032778177657640504645565122441816663338533462782153700611478845395650328817774830595782332349075687026050612008145078540189010525968802400811184587292889389350875438436391633513350061469118232977915845779296814480834441575246786187223780284992094747945524584383642663762200080049256599982581381947423321912583674266349877321186456207866475351882015348634248026719743133339747285879372274196125667340819850392056204046262302805898749411376367079787092152931060549432162908151924644860146717362508155433654179993452410389010237265578971888024481809571647775910717591111658636196471053888578313157844107064912834142230663915475678190206327280294250395217145930209546700997274507127412204786900840097128013002373010389109199201317634878079697229342961078728500603688180672995830389212913092150318401299159577750370369170510741983038759069286330459492952178174766325554495522045147660290807504414831561745380169384299830264234886366798893684759484167822629059714600412986283258201954221130096523163658229651438238085380356844962965559489450549352412180843382476006148745907045242531138838659747564701880267389221601427846004667259333987730405533869460842854636009516456368447867779596460205177221162666772943271221705636636228313033658146177261018006612818523497057885570561172273028017615941224594476062855340706945763205567971638802650289130984836705946681902030573193586810352618681043101111662914563229029069023951114427559115652264319102479451998984091972714305531084126540161245775315388970200781279128954601678868376416741621956043904071483603370320325729512743077467470482125545397259111238311292295238465279472483316292863738378489194003922461922373211277358654877793428581336126299388658507629476117310033158005466105769461797095534605270179591931395308951945761497060353495615390185090936687633249340961235220726910973202249254358644046422144691330773069134240770370768818620124141832162754906059018581867190511895614771920105541657758596310730644076854995078320278413421684531545044663738958353640721508025014979566602198122260180289538051846547335535431061825210185407646087941679668392946366073565459495588792369971886495643302457818408916796782714626064057445620451403760014498934364559614650642435375389217590117186375430700360674748724445510796032566235294030874570834265886242012025451435791312574639939475725627208776841916277708811218383971100260733048658249894666033648499994588764301112291624185927922512319740842655116777638877645106127165419809527903376236829784726267495295767996700332998941389789384115336405940322376357505265584914071489927440833075069002831393036381767650125335507408777918588785813503993634580218462223005003927281626731281650512051953261375357622176665579728102845852676971727919503492342155896484088437933698345080727799950365661838789744870163495985837658040227483287499473624103804330815026041232575183716413408004231100048618130678785122933776271506137830876176375038784058957345542421667860811001438145694510387396559599183032626591460549871889804308708101648065940555814715023336757623606821382563750237830914532005684956516620087284818440325520545858906702971916645891862208438467371126800660616657451559148751164822377289776074830288120944575473100604819878225016723837806183612300746508739542676802413731403757587928635085837340153569315218412689845832722850791329524708807108887999822864425177112717434943985187876544077178373674827889659956305641105369620198346265538219205463934504738533730740426675354957636793061014354992638561996127863758161812455596496477443935815065458768192262292053436950033243681534325152620419197409896529786122114179008260421785388013035018946107185735600211340262648755191848833470662926396649078478485847872998883714979768250517655176081153897005919469941120839706701495087233945787671891505099951659850292573695996692274371352044950683596789611181376841410712018684483450551398338681415875532618238996463029787017006719380855691366207786037738818196105000374082304855820320249819492557744446123307921092539228918699088719829257321913493493461971537821010545056274715969332557423040594304002618138434601733862792002421716544615477072910355018577030479019226399537673046148954048744387589585090676862604801973096307806195119531541482165593728234212361470767749343248268461814635189336750155573218054359223123813788128445260439687791598575967427049003305399631983922802500750696610717301762186163552650882355057908540863775509331570108691824728111320336601295373179353795096309867990812798434454427651917527331221427245513917442313779507473469560075633236071322294665757773289711314528274966278439469586349731160070808175953747041598102060329603262390946154412881788737346855759222305996397587793715413683733651197924567046463945309211336459564164516738580626547901481109382215229622927564963292657338254020108990447963716324783672000343888445393900849701263625675548921413581947958942615015358812556024537346508435888644039196412118910930464171804695680288891274149896180070526674774812632992042168990973753662129681210549558968978284556865489094984381906067774234281347859749467915283629370883202439858700163879846911513001305354156559877536131310842195868509331749732600887057097632710284389520766992685348894487743669994900472589678907355258567926194020493307641083193480098630484077304305851922076433068502493851398739632207458263291668869111018408481830162682093300200044878365603872094043552004484185883967146055647698517528097421539290739753904629058502778640950603783960631744583699252859718503529120561404095880086791662949767786218442963272684336127671914522473686670077659093120586230736813123144278003019922845229668035366622030319347887290732636360509931210329922105628879137394654192926554441627158127410991626946043598495253068623347307612275248718648983384368741850296679869392005558787469943046441875320046562425210768197933360525459524966613132394505581791102702127830109667851903799844509228695338196616425488733926496795327445056026535243116921965134307189535920146274099990249228886787059893499202847885278498887109815176352575301070048589442818089178799958767503821001620687111912909288036242497021106468996887332835473623410746022268229594550994427618471066623670405077112390553752383365746624733846421108109556962626484693025071706787162379530699496100628455100629598911654509623957472611406723412475689029298077788091580942669380979811870659163505457720150308079258204218999390019340092387832759139149289285065588664219178539920788614619579077118249573486997967082789214767784840307579182703549604933765968484023251334689751304291841568993145247574315158643499498522090519161236596554262853931740743347138396778624974532230723467563278605840096052417442521839859085127736330643221888020602010962755794057036250668059454170654709205062290132490056257511205346833464332259045582895678828957978246782611678244789219577123887285317386580582332031659411773645760792808741973052604715945576680165620779913403125429023258662708000597383529119780581779955435548111986698183575749683591247533060493312579005925772242479374088263687853340232228467766177051097524070892214407157663732294077305880829611688050377783689116223896044088204488371198388685473079372060166143438327821522909201847412379411768076351289298511635093930026559975344171610379036779730616460121093210708179541657505155122499677473341528477690832630441929513811723897886895389268626714726187861580381941286509822832407367828017984153479716795965502138900259019144595679629876269483995870820746450864003948372782267345676335045804705478658642282958740045135832974989085663980416788891696341460293395857762623650857452389534283580578610695125869931754192208402290294960804467242265157053529718883627176233153529800912255601871473533453428857637534948071796495847974076746926479438778652849380109480363628593990021804258458006813404188204988812121352571164262042438414753625030820882482073999173724459752681520696157286112596155947337720723472200315925699333457627948078182223259377718208280179392146897485272384600272150264539667789496153065848569431380457179786809985016533652630169440949610463757493308819153639306804717452353847168681185729707781849973468706132257351217706333937987835767734209089748914690168285626704651046687149660031424455547263099036963795693517452863522206198330348381330306740474918055322675741270950476469130724691024639665959106782475035821561447891708067028960095652674632192244458574577370620613853194976219894341510570946295007895479243224186973939474698315692417728092948587012135044822991794056736997222827711178147333359762242927319844183214660339642877750331674138462463140645702300814520525085270524257481649570676486245113430318642050565493853826098308382837730678466743176606985781028182412894035487987011557234245115328174495183766769809275163160875760518482774888191634749911238170632871196684806375538627659259931485985148071080822521624369419016243178756569740412037508146232846416191649781360951448189516209694595187890683031936863984428852856337001979637234118349921980194453201536301901322532923625466953478251827731748502017030520581900067277830621896970976654884574245902561495777929638237384720477969182128610136810690299639483668959370624692019564599850050582063313224255534985502899331277422627219291627022770515510229837297530465081722152124337822255095477398264980478323553674412123885804802728989141979155150810239526903174265026275262891039240696184582091422066587062593887612867780346268957004473755066567719578472576129911818768793411995577882727401790005786181390195517086361659775448984600765208657715961975131889484067077004010230883664149114204002310381612252269788907153532250211443851786132029211892410080835861699350019662471839229032147983858717667778595705276935143415121920336191610332213602722480747161288004303353323676374214589301436907813869757202106222434868271138126294479515101846196697868220322461213041510940610764592216242436375475104382802076769508437705331597838463091966905655449126719346131754659665640701012771647693743041083711565150481123724381897903434916780734091961797912371179191489690597236048145447126013376098873069115482586539861639563204004637466576761124734530973599514949004374380166893761320590732203707267354066389784031326309507627915398528080939279213220827268982539558014825131056746439297618042192458873716310732117020980334889309614157384775827736972815003635749954942932920144665263401065166500281601433192651195748413146676721647714364658926968786591444294076796554015595230490815984267784872705492701998608482610410949755103289212544137833249302073024722566123784241867291998490746249513025994226653450940019718042338083451174817484930448937510158458866239260459798353090627974893610196604813551767076612410839275313000028803076592072524326298217794312779641868405294964082208428124833791977362538591744884798278113938420068040407504326098584352545863786090078417224441426221004761440725434726691434630059477279257902702919689026111022869171551148943092634402992204053445012270806101203360014480957261228160459195209596023325231803724920153952216321805632980774835255941877682124242359407473107744687964903824260762782563823327544035735355748180564197533398953638935025896604720697917972202706634729980431380624867229029032505236252970720607308165645676243571670947404976638069781612022243101193519582501759863810173783142963416684679646374475081149446801550565330330266260215291932860073459749287778423245136287795526474883158468353135632231485124906470000072329100575943923303820602058480581891223933362489148121276488137239998898760824033866016695837707103524200900703555408655771876175393629582879255791838107851262391831036364874932416716965307933208454924528511315833274141245552584024271438171849025551753031789930552783018959187668952686128145538743738558421942552681289152118664467235206974794173526120753909055885900995593808345496417627671945998539749300173086312925775274411805240322317831734237353887333612530441820900357113236370418690682058501185229997084498073774390640674160834108230146040892022505044477499507518839186233989897830558255723753316851693925937522597470310241768020023753353647528561267688103926133789987701623710043332988765121188259837381292088979106775204282374368660417201019611630769112894085428928549808077520497737424173895495232255577196710096416817410032864879163784547606963942888707967352863523813836239869846856075521492708280603394549272692400562885751272093036918711885462452653073256345631211708531836362578110353078485866571238681723403986919490316925798283670802954652939483518302458749767399353389612359130587444405814862602082233728522186981720734540035265290932762678284396599949171211019635483614448011463207962637203906437661560641801189755939880548239478043177239386537301587875249307094680534283219504353095567706364279941492930567136931807621232128284771483591259126064336687216314465918569534291077084412794457970990573445176543459266629591143486059070516258691152124052018555322352658466045042136699958707635722540850820989182200600406585055479808736788820423071798321984291381224327508737427765160400622024721521898369289866517493583967757941372485133904635576807587607709510543875936331514229158278961788913410724723774918740995555085802194817975815817531883527926309840852831771230046601341854530626165885722066700229795250718583839851446830380479145368328368397642875972977663177415174422057860039131354540279466798963684676546293837828122444162931745978191816615565351502912633167032444551740033928094429702413578779360482523845373518886128895047457039869332090501647493890513003749831481149734771528481831015241817847895763739106258772747059929898101949501083458699145348597257439951639760709639993820823248587165154366530038809127550774662511105821073875764715007297354921383676365617220506440708004381284924491909102401741771725026984134840977154216154715180236486276236600634766046998919399582620554094348415096637054337212269102704171135702365932422659496028916019788695352652016128773111869119798123671998491934712295061987236579519614666756189620508492958310730148379837040657971311836071850295720838615273964474970518982436082174746216308003287160565539928200909850433687397818425868477649832055862757569517817505227744066820961784952591781959203235387283231864534461213007397865880172661647424054285542547237281472773942851543302106832046127305472397889799225714478090035565564619895188210541440100490073875525338310144666621948078696578023154799837573092391776618988420386993285613590111662650170981005403255963213609514700566693397358062119582756269565723952618071211807496397566842591402733376487366159548173928308507886589922246943689380597958011625177523043170994865879552857463249133860664250090896519541140082896909713376341805775531356839090041769768740252813702076286409121026817440266265943274443348277615968365851405144463084595153814256248313518701701668558764088755458630891995527816505241417793063447172636146036568572347727668898031422428883268463034377273481871135187931909846164844466837330138330869542784004652877479711742797416493962950086978286552538584269383117110752815289590954838798411331374864213144085015695336218137036473301606399630907623523410261089453487090707932700876148932008701023773948733389978030071564864978510188801432036822377847593813612350499451800684554851926408997804565896634128490554887501642289971132172296548674549344187401363027077823294751746337131957869308077181482675423506338724325456392788105280952581486985202152093689481526592225331944495756487608451973324761820364362921019056758796133010041621382968920437255052424253309708024182827510051358024098587184764224347716218867600696693986515086798272930939912388028940072155389587787494914864129938882911175479531418469755226113206043171531398818943082028790037755669944756830770647734208234028673117126911397626453904248024027658534036382794948741156299769751454818062534324146522275309478288205752562186757364660399628949518404185098952493563316305688480254355544171629539870731994277368041853741046076147247974338688216207738292717519970920347697978751219696426623432503728277465220168738569867467114818380785062472530764402749227321932406516450287862063078085978658301907939620741488032864917135856982491588413393667801784468484967758434245994452867038305120041923283866245288789951755019957960230947074790762040689874463693244874696301052723335808892216365934895861866169014361111741658083524202513723146414574720612615329407477959050582276807569848111017350451739357535943001922634762811057038502055019652742216450421722623108053654809042084884741739730691293653870738948029692707793468627941160404851091959940135915635469789800503411187293089500782208905359317098717755135680659868041177557486660651672337882031930317049733567026072834226294791262531501322731515177791798027931612695051373322306301274661768085147580725288168371620290914223174933706100542768920369195784371116649584399410807167755048162601671859920630451744586934458959165082224110672640455313482778668594016068118564815601982382998625953282031990542374692965971567353824453639366725928932688101446430960133750065402363958390087149926697885626387602943655789899514377024369560119048519222685868585725288728627670222639171344677995504926405426379954220118583317841469076482675400570059667247700782712033712180687252508684511269016817536118617407602079309759956014616324231532918640299291722658006780966159603700949995188574267940756465673523704149656776026221365214069378492748231730921298837646172264508550707428712957008102901848822659313824608942620370854091037488759420711444577282551750733478606674263728583983961103914836919798257546861741744271400241766113943530896843366221967195807834218079176573292740367320595290275435656051005052564532284313700765093478003796752346142761117767716307315575304147428408597368336391762000212860898441855099119361782081773613957108852464090715889188641029819388769108456765219564159285069998310112370991192311106496208176133353105570346982439325071085315466382374179959294903050948355099791459767358734741823842556743207539211390731875337335980570947056224587820107755040964183942214647634223908014968174463534759004497162420677836845376213585592802772361226989736955469041823941571677955213937993201212101241797790444970114685294212657702507782405737109460617332261820228298423074839519100013593386066430180763621420848585983677338742923809997338740856071854610420946671100461289305124026298247511177952357271990988853420920188914583198269541603212569449616898683367811500417360548296272858198856614726217651520550584865089347707740271090338266076359890521906840206743305835909729981350759809524391012794395955800692096043988630984620328427746116660095378901168277636460797156206434858902431066314544030762502616596157485104505825409365254496777370849087133484835324795768557138987670308950447248167875090093888978722054136133496186361518261865388622333293088991873765168254851365982337056402622627385874542410524383497392378928426343453991180241097156948584254965434533840997579898277292255376922371705136213043360456297508517564987262787736321256684523025171684134942279480771025791874885430828230753071827446326399575830035071191287505735992854611812681443200746987768458262476017256062686658108344647768280940265855274394348217533860852858942109012460174194875120915419268204750905261294108858209802732716509179939597441808608876067206388132073668978578089835958792905568992620108113330091794765516369610146505572763037267580028791207459774429886866886056898978507232628167652044018097015226137059928038631031802583071238221376475567475372862963288094759169419677622192673806289681847473123468769460020986549162624848847132751791058206232503732378455261136532546368421492043830505555122659395216986827801076261312139122348148880772787758772001959919534633855444869456209224381296810945958452140944261960721058331410549747603879540141622521068738891424709141893419226533562920068913759605168206198659084873566275616923526123803507028647631987843975171078828859870157131977985580537203364197637914030149774061257851290872232656674149334613854248392301593880090105095891461713686245727540199882492011323791252201462267257252230052915516734022660192911559703436796865291292751279292247945706084990423481431753783042163602153078480733315287742072636237839805075248827099037218883040127933312386513878545375348313890701795616570829946729136760350001669531799581848535724680588950653312114354995381004534516587093371414161076570536155101347365151756433028179230656793359338838553271035160059634890406507864309991429467403729237758639676080016962805507834821411546481770692091760985870882772192351664418141356391305865365529279308053706260253389335118915768071346297240197928445565070146594332329814281296967112878495575456385886231148362834892110825705106280180040422998016902632477232224557040853123318896955280138237694764638932101413676353804267945013891923534495720937042570769830625553019948362652813241143750193237975975530129131355471641217648522770787708633025275178680985397996687991449507453667377433253023805331269862870739511571707197865912709880959301543259217798315783301422260545514267713860377390255582969473809613435796008982368968196753262479496700233995092200399202912698688756925724900298207673652814489040005943043980421777137581243556334909813668940947123558443953946721281731060166501670621595154835021527080825813076324097361998533160924763897654386058133460302531416437441762624018411204792497405895458754634309425106431082782421241267260830367390761782138110894492392211850750864446151087783142892432608571083979104427418226172040927888341374053087796835822034562520889492210674909465767257702419287358567975160659291186246910100957000147284668165670620202504810203590036183289536905982196161545510509934774104049010981693787409004792841721138545400165831090327473509536888930894377587221649927772797276247980204730079650851138340094169446886704431002913451151085446540635008519386616657258737044879479154928216419146832379037296571044437306362751703760135610665254553055566319404060806227907715431416687956795408376805743147682491252120575878140575361236956357894165100022308991451798659863642307838629617876368265901817526513601093849367354313765985346002761743826293930153762829304253158775452256618358838627002651880723171916952779061282931259555407144635315772501669645582286849414250918058836452578698699167805169011600462179448620372498968934763582711270686543237972649176705677550082290210963687126565093746269459558085276499240823314931453726370635874625746690157092610261809689503834100727607057360198786272867628499942164296857156144233295102987552576486429496084287441895522198407184916162999402223471756523680919339152781221926859761999694042424803595198832357983116486324379683972279489471144266419448066452898640865321936599042293762105006571971625167712655198119544406006816157720514360062754043439202413301472754796172779447244080406587840173050746583541176397976590510073880995704499115684026371354059271887313421371624673673805450325197150977089363673375786628377455585201901333363250805297634786664483409611278490605502276876174784418834759698814948031127631692607439533772981017234194978422607583203417801803656269303853704888538534416206700309781989733616523235918634995654398243269146847906620381121579449201492579101369435281073574357231295710014810538664995373871474466850493265604194587087933118944931459334978842598374727064230205029864944979043220214293815948080133374390057650879051479882584340566082083404840685344194359660924540886446348248739261992182718215272244333640332017387392144456337265775088275182903870987092813983186762895932930664643101892586082121092967373583087516912259956561567175837686350051426028006921246957182908084335566858742909823093989717049834493383149461851880698925451571611375429618238685673608022299617088617376173089728129981546092071665002609592099995572861281839443193865475604343509326735710470132050049878895796879577946544166004207810042376773488244752645197012610979440703677276621771829129950193218003847983703454099098446724204948859699521044169861545263591787545494645431773254111448914284667389973262126559328022990954854735509299074185876559665331010022315569879862331115284809135551427326364505982587967093903204094947290594395694870164905467064616659362420296645089097216818012546262504808937938073101263528644446966722160383735284607095123284661623484920295369061973656167422783523507104741335076643477076833131861932027358381645827973802460222854001456511776089820109240031968625098204884683669431625877021641108007566109276628521453340575169217549277525888650293917548136749274093838901396260007366809242419142397873973636604987038201068950983028562205499317013687542286511255054019373448098931898054461136053793270341956184091015578240490103434068958682677761159915019077115375060692550416663482779815394659130987087583292400095338181465689724191967602587514490822284535926523612919976538153121364116802909257302674002206224224611289531530618670870670034467000848091421484380207220241296653133121246861792738361641684348549764131892780201631731652506504123006523806000802792151984700114111771209642801625550125296761479033148271114716935680277241820858734628610501295959804985782882140365112346387837109558627685406449092459999416631244624467726918113781643591012106979161209433721981027588224070777199068661089708770820210329500000260846657952731093818988326683552867151375718515824883438053568635861837327122853173165718969157889325781494076394716937630893583602413861983015831228898573317201492610752413808729255653580529963926596604393342973454961312561329034310125244394317653556346850394545633798692222563022970010760381962944875274668224198293635232019889340772856321912996958610649918428980181921678907256869078146480539969427377773902557722279698760110318759031772641850700197689899802901111558694673528299836913478978178591915812126014368455568342714169092648293602998920122442759089154571773828110684671870447845249054101653921263758019723198204091173671066803167447656264475536056261768793295070338921453167176359710298122908334373125686359917625262397005310785079713736708432141968515837181931851820293376563402998409816715489830016679245512229997969304039159533537761729567037138837364814212904729219767509291793652608091564903320372757574642151126207391586614514768719727877979072425955887821125068022617981850311053688190734745265902576372284797255943236365823634022917700532985414894012046403243968026833461637872728171982410117003041119559210394354669018456537067614662933178676010284114183947481129536902837633656591555991774234041279378678351650926310720769205112897257308237478669353589536094736466031622861746772782503531188467257542920962475354572836114863504583583536764291373581172842430117148772328485240720986742608214262493688123840171605678299483382341236587789791966770601887478068870589603318171720723417922543000247209076480473419821023063962084923295197056926722723138264964821045745979690483960565993192772686991948318259104918914053590308289406997817491262118462021185530447878315726167840395042833310047769524398229348609201162838427374278998577409062858692662306236155063562712376171823550176086888850840795071944507157474155875944980909261885917882960385935112008745452950846855593759108042833801072257316485408255452366207383973353442498603040460864054101087318192610387249618414103938085298131161877145843813126464795144446990054059785875981746143994068098871271154905441702392724741059163326645124229202319505847888274108302091287160685072960025078265411549615364463063795405729879101531852351726291566815590975609413816758091013574635887991729358438609433450371370105977186998017509606429155792414194535262260275517733750408518683391557315856670539066351738763506340117869318863342984782655976238315558838028713932917464358752954678048618226025679680966418127870145907608903244180578424110905412099710131826279932292741456701495087188931346647780451067145280444619162892651985050086970061597407685254758059957689090626862114948451021628383254738584180000747200026486245418028796198258835511991800387093241268245198029095498763821336479305257600168243418449675763964956800200869051539506307597201822169036461371781784276654885664294733642569169847486528727083509819158668414308639145603772040349915013246775838018676920598745007715238384695493959637628311480980361163612440759873808860363818097566825164048880388286979047787871325011188667206045413146758160936607052759142574712603665914668260176166624320125458027888468042389056919483490990608659679460843601543060400644286610328278304318807246183603986527298913025741546763787569436896038150959465305433744966597792619174251769928851344911107232127278893636593042298335785298680403100981314330624531154559352430948481920134337456638549847662848829798440239060736748713958727983964542885448665722612020494007631582730092297846028617505997803172073943998749579782277729478961477618344938063294039238191341609698482670780085208852732143965117205778355925262438435820842646098937553406903687266610376890346609160701838140606502195323951826792653186896012644022924537426833457313450423139569389429445371673110073174760302978233346354555276105009918710829719472607505477595991549623930452761031218295587592295979014434335346601293053194754875512324492637707478248978865850096687063294374421544182528264062766610029551521370023412652383484431646136368630525167360228965775910568209334080680153509603957194075506285102271513810452757303518587702205113075821431004374922334759628049730311798632542472986057974018121070739885116506787087876418449251258920948909307756071305064561027393770659780027400248233467160830837390616672629628664393781164061235250285718884550677736970486213461440947405396068827579897321683056778879842848215120916083148734519132678505260189071470230038672396154358980739882546860110260294485391021653195586580519730426225763057316810214718305017587845684891296592127024315586715772851209042540649914205078092169853742510231566171484945795299666260239381784371142270795648372621555970929419910165058442479413063916728218235521917169405498736472941981078028520070102744298181783881055485347643042395506104267930364516670987112049283249514075447773028474861197833538271646956535664143864487289143514399948707304878247779933824741049877270864475665089365664866487601154696557021645173522994933993251450869994373148116522124246885409748868248863817578590435052108238268924915976365044805455789621608545855490939421171185944956021605872685958005232190956263658695734929860447460625121561423342499634374196949718290142212582076866173565594915114063906798958325167754872865031867516743953042743400862889835483792217036147790465656254156013587170875334917593646823915482044269783782987228800138959157953591100700450050817504914269356281919325336408033432162930862899512890542853407773618178148470615192814947565833656272468684475225991957925834713614663596571888557240413485838411441388360346133563356741692434185971354199621445856902634507595088964814092752472292731256766315267334689946186326074907292001167485388157706780630088457315720455815887569318091749317479725423546535586263261501326031733059190880533341680858274330559871690586514900770954333374201903574052198482392990206140503065142996304656171352057209737405320903085939224108151127714524370793703770433356123159971175017625211834873425549933928407319096911566121936436291338370260925293077247920059706462805372545977302395762365870129310846457829475577797251466160437937049368824842584194381071175883171226339288992482970100441177230331942089470338418672571286628506108906002433554963352542915807812214582097688791456284014767586064323807036024614281016323003011025685864629551005377837592093000674025632924284390127677340935628209708053398931239236676745977659823073111349004244973718712031349375912799090822748316961474922285874614065386321359037631019169257115860578521659879260267360143834540316780434045391678717718326322977932190609039992965574395876987523509505777854807971652301946858843815952351702170110505117591396611614190013532781433113550599108013085887313436012645474876346070167001482931116250178191534273320366071389202061473879604794442395786178092739265690077404375811939373906810495374731189474867398384159014760174146674662253038384763579749289102368389755317650973395291431791134187719690354406485268745167238505115913266111075206535955806043232334489407540460193654767446233866333874743036485664367581351216952714396650189166767305792279113788940139767213311144577123731651658977723299570332018187896470068759499006177666607676225731448647612261807964288578350565965809038049147421935518051222071042050975872066509675870014656603177293813573364522771129450806408023970596634112494988806728608080927871143317233800934388910981506247195057779510457760450360831361207746763880507697122392992647212062903695205846446839138799233177655807573327087810483919851935285844707019052137259494451023919214536593247355425117711761811010935795411633765075702176114533701494337426505455455986862391502898414942512385586539998173262243981703770903615360026295109979111677612529867668112516253181986667375742059687249443710155475782497725366814117142154869664140257310199186497412102554450043774734802665819768304591540414671240516390953791663163738826542052222275815512711984543008241195674660809271486878328993528728885118865799663101792233924669928176773916207073565366286524586432131041445634907853197941902177716424384362180401106271747801797059861231737833697838583854003280652612815757731420909520707961519238522822919044066091485700726351229966126104027599783439495818195297172072831387715032785443486102846283403364644704576220233873980543390833006215868840400345523379630657149292113347858200941527895834523749339238282559328239782760719019449453982457464180361253378823173717194380846002473751294431273646948439675767105972692715427320582508599421613155640437702734421044828696610576700852448419967491975808634621403804518524237928902316932477232160488795652817260468902667904993916533974422240862711038494529543822547502118199003410798413966079350601349560315980893428529547857100896702347336797541934594949292721027462061312682722925058433578778266243018396418146203012912687043116676207156208469364779655751188887527027492200146630898907083579820548579867992445244230571504296278341627486616249866825295895096252527268413722006405565687316785872622307031713009316777132520712285342225857408281359847835294722138831532979691545857146496138714890069915128996191020570541930254448734699703864044366098449258714318308689565065279082685424036308578835701339519651557413619958445401448827817129767244659281143084175995468136171417600654455015583648955651766031312286657158972371337535424333125777632140530155971012745950091430919203783340214546983664114694855222159451941328021498925311196433136771291000193716078826808608551835709476401999392271534041208849033138115958496905424441839796784205475737807893336022117131709188926730079806792786441848118805475920779494307298777374453728166094920333750930829393825439244524844740141273061704440725643860393944401386397980320185274937258082132351793454818389156206371595718712924450056461463020168036654939691851139441759988203341933463977414321421910119662301669143437355822279164340331504849420490257086530880128953053773366802222548980746697789108066827253179397628087415081277223913830870957613597965200075444578068623595206242778786676862916460815000481393062221647670967221638760209587268034156679771019224172040056460699817206754513629175955215588790798104007018764400658057311409383523338535967358024264942793950928718152600084390591049720611310529631259473826797397761922634083381917170263093640585509149370268042291871847439505700589756285976467071696983804860643744955430647306439759575713214629059083898344699577527073020652151860823936129373996695157859220008533420198271807071053956907914273124038156647744691385596363605753715590338962585247361597216212295017432988032563871203217835868249564403741538608201158455100698791788875933093738855301404494622892545297721348707375303647300161760117314212770135666674999341274854598320971093199029086624262069131160255748960969234571148914558208755747952994797088561415919017503331308056796335876388750016977802521186037742536875359677896126812197311153123557828933004680799001007360667550677092464445686269167213301654616234661375688620481886317406155842650639357386433481544377178119432032725359834371627461732138262673433602399055525665091241555784320964948272760246185148880936667290848440165248231586056491322086324207275611795600709605562975168545432183213231746504161364853388906770448010450923401094821771892889436361345073957578302789704648321264473091920931374175159379175812790422537800094396148784615048089200534418010568237596750997150255441516426353469742208177439933179995748741141304284063816995990829816362031898102330715937042529195902663969414869780544724836505085249543393043405841121495103709105239196763029515242158926565084891554350370165299542392127991053512431365375788102404636947229889225649189755871966849918444224876779323116919248436307520964228202010511500973191487314570962662599334080865461781054390850305123115258213422204358316690566447688801373656594811021069977267108878130577979965909700663127466444458113230958541550107312696482710032008100176098949511891159585074111432905885841001600497566097393672568886623880173128269999463669058040527293438360333925117635748373895721619214260460494837924737808751442948101440191741183032380618136560730506317125848896126216564140214152886426856977883760707576672481472844276243483301135050691524824005468276003697535043239105428611102516115276047475341813168227231914053370877557079772491594804351156670382346511568107417000158871866275410050358129911288113553989274536211199472646255216197309251778472718945157878012504641582302987259194160572436092374921515112622437810046688417529852945643583909578178968906034167355188978208065218801715605971865454567038030329928066408714860527869659259269054398958299732464340740764464622682880262045545189043349301344824922304152199882484111544141144925207940144163084111263171627260093151733919924075188610079201715206646667876417072465801185696518762580809673275280864994618486628644936849727716941156141816284239784924447599616450442534493598695690656875023113580926954435912375761481330575422772425376200886049755019824636608368363633131114188939591438321966055375733885851991988315858025516571401664812190115795762913518212430321558150794838837759424696198566461181490046358363107658537332820781837719278819889831857300908326901783669238783307272451234571345391034318564680695670920358058718819161518448917597195992357619435318338067834242033921245833367316612911432317163318750321427838464131225466934340417821646567653400667005784722548952519259111113872274444570014992717298750981992294579641652308696970452156306816428269423973647932361672633099389579053433900990587011318817296398900474316519516001441551951434085594480479996995530607584332005374132852782322566734904864198224029586651911875555977792057510031015284022506912348719853980254476781075677612888397308206286083157956024822518118740963150056434072600434671102555223324073629226221447641046624933129130317801041289547707878403222523976772471477312607690722676172354245599260049025926901728022786170102764326089641121852389931699604570311774552170124828625289517097511531291962571252622663971800183143080519648115263300185393819026532952541916584594898414616929618952684561631237242914882384961464879763145133485358036781596348077665725702701109045157449318557713986803454368934267775682825958945458444629696346211824499293979158228265810939745271943752187091444317310470031433755299042703049834726098128143819603233958674031178217754818171681397792334812662075538496126658688413303756244888218183632292135707525698425725953011302680917808090314333406437345745769107887993473757840527975415355902302804765789664907583125637574774546980101301609053116601879425180624324200123734479801001431684862608633395084435610845729942916083299483619088291925367120536037108866496565848109633077249237995573471988590242794075152226455225676261347141381696982043010557787625909453046397001870970163225435345909302675341775942347588462416141770521088387821718215646068286602122490848049245121598975599257321117547481568751177129027740774529565147199018831801163854738233044882334130546198992719545747406695053249722957897303786816921107547427956401712682257159653368514437184917861656474824422089636766187136493030895472011182339863286238320566783683730477254974459225979901376552761793998110590079645708270926664028534469276229967651752546195634458792812678414849932493142550254214699347725155951149503341970472059232374738826953953459835428824182701749781968323968724040194435031436836761002526388954368073444243611240927761994578424748750060955620842785289428096320556943157437381749098297647515456135872794628609872184875218204382217012582765813418829115735972486476932578988504348336161730170672434464719573747405391154613859813427740780684064707388092254587151444770249119931304742474849630966641878727884098200263786702731535464357512396611413787693432443170182741389896153970693565820824921539193825542083052649191473168650531599790445613115248614390433093984636353371120594567516309587604266924617425653338989063255825815849628967975459059349717727305836370496137802285108085225505719646638931294959257424123163633742779802625246085486596976826191167901771762882600856524335577277756131763864361287090938599369045048471436456399440477738148127888473677357325332794113672228558320929434901783727826602744241395649382728676230067168153449567673566141308119434861896254171757657483714664377118804235361866513398663470295914087299490490126727108901929600833351350238046277647666955547429439144147646383554302679829161739299353825358428147653142807902969560534233388041882751061817427796602883245007841904324380961621895025263657636418904798201768019157260854083674234857755234183448281918062582379923117154294528912025781480091943553342246077621577180483345593283219347011845643922405633546068252857631071810637243347913788234882303966731120673754424445618161977494955236062431105594159259257020564487623826978209488068163511967851738416292402871231523092359368991017789861469382625936114474205680300619264629152227865535238960766191275464893582630993254344897875488557256080241852259466122200018542631111024418932568421245030804705467484177560475072363456347866199720132264091880452890721983212992805717875394017800515389604622827239232282385167034382068602456588357592786863362462969370489846642608461191010791998936040959063478101329438209486801564315521316415499630749281384623177336472256153830230382926998651166155436146189494494497694433875269516130471672534090419266269345801176988645324678825806935224786482645182916488919627565301389178804432190204820096924935317176998761185865786511138625812569134162899691698960085428836129834326044463669107680340255234079308408204677587526540616392329800785473685832362474125191640683130771424784989164881913620998778176248189786290619721378077653828163555485414934766816694732262570240606097999233499141924803166891677558187703805073072378468423986286828639831118099463359510306192827707767645869132226321318870500714051150551318013533276594139512745066076452162770833284405359397223077201392379288686659527118735135390053639743149118418031721612636061700093054759193146826828097141220759624452768913704656690405130735869909321322592318029265347305950417457509539491752169829957045104005336283166183312302123734450127050294162212727785845575900787344793381917056806324968252857027647330198489545206876717881196864117321937829673260554269082725892413322085050413220421179753260990568151509289143502477723355096373460849928392499335854422933650867442560683694682972419928263039685842705978142757349958154697471572112071020049741441642159959327882301745873245785258780878814786343991487602337721743475964747354064675378525589100391492064285354245862431461071441881028485263866785841715180674245719753466853767701260571669688528779679435488448901317816351754141799453810682305131232154381481699475672267643361675207012169808725144311659604321449738295921354740714833477810849819997536383661760827067922155777173167366071835509378380519311447242280877067061501550184764648281346589579614030385065525459517274492813904974119878400024288473611217318118722434260033250468467385497791981579135760000716011835644353486604422135460535206720510678711359943838980392692113253615092267788220023026788328174123951549837601621263912851390157640313824357270985543379988213142409608253685157703289233735143420120960889316785135456626022959249638747779496843284664513270350776777717536379672422516830987040923636860136098563446682881272541709414078909377468178617073733546417165535722222115781133041377724462560991418119712231769546393026679280701978079329664919438150121299497514650265460509070245651021600232560682131909496352322333488270679573438215662076686942104090152596829686843002962811911189959318641926372004031449671407839486376944207642058173469371930901832479392530639139849732951892583533988920666969248320307925134295878762482157636692125216437800169628960735136778609439734396837023459205112935631551268986398298114006750399150753776440773370564143068364273819996910627983299683660807945394073168998021089526567421385938584264069095337852963966879585305152774659051238752151118707756746247943346488188031280190009972097304599569292612903544551676037439379533389708691173319722539500245091114737095389605136052814566605362800621914078421286314317090136216519913369010826976176575203151752258544688524556205222014347247915219062924426517537570290351063275882632813174372219748201078717000358810607708390494563087369461174177754544078929695488883688153295675993812450198349387808497721662606065785463297661103522513002567555840782151722296626560152140381168910019271243890727745969409576183258796970462133762956972982273237830380305849938190345125839865147435274024582031640926310902536255177211467640991714857823285655641730717637826635577835155556819416129845579130217857946839306196521468770207061696162116216250696667164445541164563769318887698396294244542020887253984402599920184950703673809420714621443133390185199927797342215871713512326444279954642940098791322727302911027343337208959814708194842979916359167417475891303559535939674210785174654516954250979534525741136601661167388948308167349184131733574333725940670522374285953165609067068417269122945735847822662916092687871452487395244787536477267372227938238242844211717343083570511992092377148960708640761428899663277297423811328097895586952504509621001527964881260060969154666040404243397795441287628253685098393160379976891786975492022349872867572312404898406099427473886272048647515503514028244683675804880712725342718682727040865118751264480325680649723023569730742399743316463349630552282439061290972755262081820229190547332741727211619152661160019221078012160305384007418665290902940239667621479180139663220452816125260378884391316073007993495557274380888876345669947011125680361076497657598556783529253889597796880390437728245725166782943954682946171219469233406096099950543353620050826468635998464083480630485860429636606391561717544947916921427233316209780440253031620581140127586222696979325859983961447923174536045686918437838089978025204268879359393773092942877395852489327361591998036356751067261972007915479067998485850890010953535270174014952952584358672176896296230690944866283820669747991652473318630152762234735185959309818418094912553362794247954280239500871896946918453280324682819897865845121063580764276171832224809233205416703620802423789044742371935677496060017242727010817097818872194202830464254810040755970804039954895444716166506248572495681181830042241305083341778803860969280243138086412796250799423843736097527808900283301772887409243277872517773982535170536168700617778964851938190200846860318914845434478509320977840020210649721215962429243044140654774138697332807242794167371715905761970001005971377200326860295500328871280739814277201028163506228138060740978784676748368283060920017592159478565223514863063375136795778912310503389796210474264419617998637551779532089601078393210126958319725930988862359146297811980948299004102731405402497284840706383686099758023450615268470531212054154024414121693800275332126802896579282928076747736637371010895448755730031224797591908560849532440443717403926941338575078937606581584782591627390332389305891925002943849866155487199143976612368459043407426618869264584030337211140531003390239519625832216829621834316748127069874626771746060132024146477671189393815575065985700053002169940444000486461595032873002920206564155115486566973747360473609468979359393994512367103750652109379679528616675513114900221526617981112391490191810223464668588434219025601379130475791621157902320735559828871518958207817080576675926544490133804826928058439159291782298244258185378084532612988819213560023995650081152740617227650055844912723995958421100834456761854979149641883556268825595587509644808313690406243656912743782529483826111243931356482299382104108791702504810203787520372246286697956360499053150998034697562811113043123234897603753256255595284355841226549357356684927812962392101241653701343058823872337970294054353115114822747654893738474152604375060627519623531789926285079250154407149712307636278956669251230871934746100924334589339915353824563625325463394732191608652613760731985853726942313002583448238020581512360825442390622909864517738298126416417870424868303364092977331671836910468136394615226616735342006064058425409707262528221069647752317160308786115514612742584842878330205574603401084871343362751309739070095573904136059278111473912985073574710037752469304518291525372132902066739531189141065907347086412164764667414682628305780917018496884860830028194070445121195849619943490578019582745594000207775356509064816764167063510470787480296197460171147119755163418120166344539872112764754307679762856612805645991994497799213278175511560987521282962541370406039780045108859534458728992899079597435924775343680618227296770501842374113716559117530223256327031858684004148036344487410674874856529886884003946590320491395254124208823286796587532767765383368097869156160700668700517618236920619792067549888991586726191050713354208801871226627166782406714868903925479970986126731946146558139589218109399637838533932731031922574310129526044957544439080262137200418309899447694725390725810523726807366859456465514613346715705092433176681968783926581139299318859338251556949786600377168609343530546566172194196211691886291559557330589464055152308046612514703891124054621369988637617916238226206788699242117605293438849822045495184291816290818421138200103901895656035070664633360525373934869671559734249493910577741964971460073433606501271928066284221114331143364484704538823802838397898777023341084678734957542507647811996856025347710336591990740953790295603706055441451998164674644238935249024307608965902351227398524123441279200484150920560660645318309740557888136898093513853040196086740920258260326360901627901421881080697435860017943390257217044943718726279703482541483508478200724026079693785224632806367509958877035144748327217830220657063022862897024184528335979396012283459279347618717591304993425826956549859108887310636342927175410205586433746093968774945020570685833453557793810204404235374694476050574038748274403276254933809299198037848582581648479803662910875579208751706689435568815599002233679326626076928940447617585338461661794370796063091011491401549981033161423417985736376576213168597243891128175463596426903103129644899214118027228356578073904445900459815375637129235269751630834450322235696616185187056510730430005256272033217331583454284643812985586897280812664343840380183708156298401859197456725566269999577061300213144923678567713538867574543386361330383428000769005100514506344011932062275905694527997036310678723975148053472908301323653821120185762029219263859809224792205093283348871020236332485713720467926092844880331695950429920297749580992377382810395848144437689197954687668309890473609753538423824889896482729371970138907342311053442528991103433922249582348005322272557769457137859557728121454204992709533624024127599271241023345827380526515355353232307755133915648517486603136127414983558318034775833891860017836521505810195358307156304889345183414177381385445223754486042317305580913943027611044230300609217447660852611598255587637309138943836094339134251965638389489783245701955707943104102466592161198795437333207876694889273053198075673587559923145918136724477591670312782343909273688637980253006394075081615877825182291933108194068271353447807264469632640516835292595110391888537252186114194526235422007410154598656834944226856487592546328626952641936533212238567625356895664874908700386704857933896452894577303445748175332756334512408171638972637762749008459764693717060242045757675132893955869369260887324577638023707168400800383114861668295396023585585660604998153170075984276096777377969446725886528740630053801427808925582522046141837442547140325589872083995078453965756502938044677674175064127485793203869876838223638643156402590215787292841299521642938651113347122988224074251255818664583882260582066435293570707630229285208185684971025847246566541658402832022625301003022594676699834493484846872181608181352506168121850989814816897528948043102609556848105619282385308128001870953831792391695863125146699159482580013883010951167410575792602432645708813709268542468756716639630446408053020170526566939704726012125489573107940884465332669183954439375781421702274878909289111783772642186984213759182296037559345628546058151907084183314628061328541930981543815556210758915262556421640826116170300830137263100841846217863166099971785257775538713348150674207183547882765296877256869598624631644561828746915028692994552676560234250721862072703893421591661027681701975254958064697029697345232955861683849160367760555929808010401044897316525344208366754264723855328594289523420500042634014443669627081373762606495470025932310721364394251828461674372492627654296818627465286472550807318299285496980348525567510022702450364531236275339187615746498392688881251058408675790422567419867394694542175540430697892798884893149004497770261657844472152231018003192211686966069180353367960893710231063474839909916330469312938654993297554173169934092472904681172799213929680887013817837820665616142547922529623776719912405290965256432479830127064563451899589003102191265757626232705952390032180556973283719379271793324114346430849422807385300144922112257780160526085014331585452132615796918994268147931652921016540549437179891510970575096641960649695448624243124803496420317684069097744042990725978294839647677089998947919830580233879429318916056954974376341304387593629138174506301282428985767571642268923748541710973843530504163509851806334494813574310880284261181010125016979505382670561505357172244687065998508203116349198293760565167992482745468594945277453091815273884879853742850051143397658045949644659166754342268699577134207721894052554356566307255866250008687790766331887498827675711206559271960839303707325134140207580322828139303181907587389709686950262883100795025415140579188374161559036333254824307425045177902713030758857729351443244054349409739433253692162310790117553347591378988973794426014258145075805742440822586296188600358986445387098103430373746452548645130727228822551217994682898056957751921580249502643702178849430676920942092370101233794016901839758878126740214015220153513617974721512774296225976169295234899346575655826458464292112266249922655656976509858890014899434853855037377894457840718411630868676699463791979604264024410169795965766147662544953391304673850427050549531843860427152388784922711593715631146445309337051864235028039831582732200758662599854218099430847844141728633551325083285377924735560844559765425285539761895957205630193788509062036481245024495640156579874187075608078971635716140643471886130772495311148398370704503553567060192796926458635455382149102330855259969094716358775708418274036374397936830786046159188741444474273986123281805245459137089074170789038532703492257452838366143273812158101087224458753204781709052099904519685495668830355981913155596624928524411253758528096752165994320536311587075767932025170317348788358656674201014890724233717456129727781959340370295766481117727327348637395880218998939834543655140800995415967191697355481703928175362895826290796293840151944337320868998840884162720812386310836976601267738868484363187356439132953475259210804012081196326072654177582264003999001591079045125580806120745123364012990816792249611378753425092908804655145597994465052635859243103872477040116826902656803892013983009337616082914709158452116956065096801541029126435263269295689701349539892881740104264466193591898025137323241000414084379580603448024662678391455693195558679318318376659550606250639439904056054610995832313691917843621039153562055288092999099755947999464829531824955877162515874739354309231014020784104392813861966420985805977131257080536876740620411277565114763767005015284065598310422526492980141884307684533643087225485971243255348130626802778488389144445780291639125652068123134126447180358607566863777202997053256588638965420906941155036215937947876824606590195014406938576143191227951348088658970212946918036706950355903053725796858537548109248335812936348896253583528475637763587735138050904100200624225263994939203629205293656516670205345373354168454694989056586892044203574276295483391740046786011981809706575488769192521439534698895165941203610064867751037468639302041511941583670209777684631092734576469416175273220218434890567010483290080146010762354520487992867747061762135286255269645168078774736191271377772175921437233247745075835313372382896734872183063709872703445965720214644011284208803865300835819625527436511945728983372086087247327687563579186830520434385844895388981273735989404275161836240508869647448412661090919339483415051621802842399747122582976481916350852692085945227776348816587023087331742885311762459757572173041690968245695809600985308890389634662356420349719045210106405196136921183031525531842289814335749936381290443881685200996857984026275724051150462742968294591075215841049888924130119141951867718581278048050640923473418450564532262445866193031726327958324671539812257685488850665247383675015160858448290159409737837713795027524358163277366156911774324316891525597640756892609322878303265116280268986693819943565841901038677615490411925437370644371224674747075644496681171040558616662227783127675533968225923953380003501727776297117710169419639295566772211242061162917525977677228343531175646611668906644460690934515490021030013295515573655677063386800923228111141625804479970912032271944211304604845606359857156665306573596236243826888657545323799331251182429817088344140870176102295818063290870477976393133080376681972434200362418128391824635682231570510520846405639117622345352617029566101210144933646425836598224769760269065529226571206016462589581199111776246578418961998800174416201799106318293565688293423348328423597068808749598423254647618426053478963442660814254498601211617413700345690051064447392177942483361021181340064095814357357244316023102012354189073477773317910716844099224841014503225427637354074589627119816594172146233359764175901392530862496941052202791713122564546727324964950541640185819376382474832095607174053065431933545678626840255034830594774879651483986830728938550250080263154033290770839893506911175462046409720161940870902413367016667577229612661094954495569278576584152312167722691346064429750361708324183730978206684230981142343161289294148030972254916910408886226812650345011564994758433761311163345202392764736022855164057099979455782390881630727522417671328149062517532817197469548214144818241877236945588345882845949768531564555723882960184932065015737074044240115048926142996156745893054793715778848893942714481015088921773416055307828170183825870567149774014127128582594902621782327007054795883329492575132052089699733844232971620082208603832757473892579905843291919692669805272346341146094990305498130166629052891224971696293243775543786907088679943195512669589218830217282090013109417904561962819573322411003662650736863987960122131704306933521952952271502475011986774480261941127225997169340139226760948909704664227668925192692539889661296633275965466721418547723869675354446268203987999441741622033449388282336675930897708666056904071877924740597299543993043605911065356452054050371912357660013373918786551660827831585999304731447747222780904792123040745101251851764651202483553734787679880296349274224118170033900734837045209502765004277685185576924841214783094629486646255543801218141076977327644768067727438860560323878483820423701471274953490497538352630645209428865294693573746152862183485599333439179089380056607392616959280500020706234172864265641820141729410442851308565743752322437003300012721276576157274083009014478829250944925980715419448346441222347553664823725719339482805301345834833689406062553351692385277898475501003372598936778194526577683662000977583046625140185115767983892442679193726107705128991331435855739352438090005793038439456749609102627495432889675388371738648161975423876985105451022875782616231166811850090927810088206868479691926657967702907660838538683460267460408692506464624824099985500050638393146158676211382887930145485232796026137240643238547390663205870711549254638057735917596984787892993838233242107528241445553014834742316944820366915860629185461258048847907501087432874155446141023608258008578946597965295850705168413959122037755433417643541428102644427950585960774883922542137786038288518262855055668097622648448740577281371946558763493001828009515498606267317760177860775713381585661337376619608522456663392731394968632733272812532456240587391082168812100507926936114276843113861104846482736514348641942171571305218378541039005587576474575420471705561923509517232796694689139976979703518164915656302598407900179792658609854257469793244282721857224979351219831776840409558543369845281277960741785231719635019719472259985497250661487390736791701668374464895273617197808027879816308504926222090205795615224578082168744433935245485869231324681157407307836393915684466709403370508395029720624415218479098078730169533094372013943780684448912872395601938070324536002824982820569244746451814464908737174103346699804694027044901925855554504671887672752524292183553518745405788948735586403242590460878888603929111855203710206322931915621900798836534950596828978530480039090918869274728520409994952760006910288956083170976606569516750014606459215209935810574762225076292872819498775465092402441263197989767778822196795147239804626411689270323054953241955528000775040705847268806386641173319129716145889526323166838607970745256631794337056358767059563973343874011495624488164948576592547728341365350678488036619590901551036307774114962846444135983518916448251012623178404016777616140632404611091991400153355105688162464636112357270643410004285995242392322094790001985776472620278212997544170080332979468945187030639351723001338581612280082168901968428829681701916336032345198436392024352065666217967757521524897574661853182910925663202938847588976507699268080548534923860329493611648384860301178082579286806758331980915420500075146532302517294380969317723808936733962629429196726370989192009527859407778190736699695518473988681761503384624927361356823496593410016198956506030178200024678063090010105119942773525912722792528187444624155841617355884525809675461296671383166209861768653852976246540004814440170020969633347429207380916366413890002822935525797474824211426999104816471844656284464986888059864921197849112726523134720371181689220811306768783169038794299344887791076417836850385039059470256607090068812700583281496890800414613968217628674839770976118563034022421283082806798963291342807462113897496922962497186684187264709708779801155434466485598422741104611482350569408588184092456136562802437540585611624392174431978415046179983614674538551865137541499967743645498980074359941875218046807278139919372756471139186659886118331551006210728609858657676493976433467270518131979364071391911418032875907507453884710691395091222787301876287842241317790749003111428581244822467607050339598866156360214107994608966262029239600986585117147386662508579544123161767389846322613890863342765938409166761395291535814585848822773555007960793440067648922707108470457697528474721641982141995855033883082672989985134131461257493386363086657118510551431292098304301287626781085254112872458783482918380397023301126364918700973313816795470890142520618989044387244492479809787158952579515043270629395855164582461468348089950077743804462492719317767032317851947942944379899698922849287910593457842986358705222174154170690893568706710112105612608849871693993748617156435208427643125369510202466302900638753403594148828995235662382434955460979758363557120502041372983505195623484042479016802524747181028250784164450923723642734313269714943794722851862339994040994893870092028359029300729006474225987508253591206723595569871182006690246566114128072916583306401506225049333083573832924485597242103641669941468822833589726217490464773818231514936997213704483701638146750478993596991727752631208100850753031686220740237271496427086945046190590214957162475030419324098601539686328513889394199471265983520692820050390677410347510392753104593240263793727206281981989829231690975699230204521131139001611170094663122810250712353455588674015108489580885145839965314120224801600503335631328496389808406275399414530782332413215032871720048225839270680530482980162602234547358197792554757202354008351117612065033448419696553719186140567570822454119139921587518913671756281098769041497627516693275887143322089859713979087077795750780191999062895038033078073993912621751431458963850603319483342851991456538275446732569461096353577370679528510294675665015523792004745938818961922010479701120810134766994428685218123710313325077419335688365467583404616163977220717988428861378748074869705573307146598697908076019291155381919524788416453016922356338475687015929910328293190001802032042822611041511105332002083836034279046390778254246407837666932552117553744242517100761295758402247349970168336702829624265295206018511561527899142667504463851914203737296239293021528733857308853934740807214363170627790185583244971278847079533596455432938795458229224830700402063509174898454448070751232459820195380767556522361507497595129769394592007906390033474579265727273404548353636793245876117106538893830167348785859913528260427422874707416553761464541262213864223423070683851195630361377734096430772568320627480265427489503934935043011930120379733194353975690215314534359147039143957781241675275598477247709587883391342154950525403890782365672323327165565395223663667516175421494821304571927462616694179118913520267198546230692273510904764568457064270156154768073426752412275029262877654878505156379009743094139855141975115174107982046000237118367910390399709698838894980408780986433361334132231446056356589667954800459727501283860626541707926755802644700323767049723566146300814792633149744852072817564698292433484120092713981859255997362271094896087702247967802091870816143747723092262693521276856164916378076125000907291759662352153683567773786547863233591301840558260125833357257453149631995833258181689260936152416789894034752017507255989799071784314476862135573632528279234320354981010328189817795223629979420655761674902251173971662271900885744728839332874733609889279869993328679904936416594990847632182829725525589752511779133498673424504207600450041487646532961212764467919807731351232184407809142807190227677674334009116503148185119878036603229281593104888446364744550649084813405359409022117835345900441173913207594540652316171850807413649744182410015065753135865919631037737862415513358416982677988094295996712226085588828994457848199034466500188113941818799043628398812179398055566776564595858704208465355026812731142239257467010428848351310890415080377602599782338721775902699803110106550367875917258638172277175061694318654996432008787512397639914216910515722399103614834935750626146575616825807466073595661333612390586114116373442886276924923004158876288562347063905260873570443025494053484032962480478629028980619307016103975029900137238842109623971229713899624783462239140666709318070968057694896731849136566377776656273657781980621952611882503410667122218273252583110026891147681621323507600610194116223801887496081578891697991345300360223290981584467596505569047182768471898737039103757030074934596836561478709096985649573999717071039416676195480298412034583718908148369877591709260702754877308559727536279287020063046781389252875836369879991561388174415863280111074698604454174475760770051035485818986729773166306522317378116581712433364777602246235545237029133694668027909015810730343363746298176098146942253767678543993278251970771778627848777147508411998065559498842992232736660099342923774864915686334902729898321819998896458067464006332937447157683796600524836503471649601807417533489941376537416711721899183868376492732965616959942195080209204284709778570464287153836685794519079692417551650888741524818824567923631568468877107931006839829084788743620256300044905118767598143554073180674035648651595589265321766895003779174062643282021591163469352857323853135891745930768306119510388206317460250418971324808419327472036286934696565245741336504355164311232368046379173985687184563262688642377083808674708299272365106904961002312241443440638409338164711592497871959448312678401651589655726833778061204729021350709360843087164208214547292277571576912568547138468414582070790515562075793063084926500910634689687732576135459065016057657445345883865808956907960067725652984147543513684575554185782726265494334497678528801242093002223952907689032398079329000279330247190210025376061233174468807257281665508836208719582802924583997885593640262502471116204422038450780727218047710145670160991162689055171228484342098227977104449460291901372370795733983336145301527918357331262110437300002451999974875877322139406850267374019857329436697581966702245545645055148992192867738491846284100447097369488457516905447831109787724302692674519557677222904917654495554947235630379717806010986625881268282330602126638796247030392089355634938533344439264023594485432798635444725374399524165333176495519400950488421793107088655712838200995329051234951928172043058641634106731519439973431394954749091851043926966831471053355496381001965271365635306185122742568369257559752249899137918471262448709129696042025025354219924086289940100569964557110236949051644724800171827428516737167209749172249078133396304086515200264056733803325795601398556657615364862395181681673613607815987435960755314688608593482143307315721848913750192870337595116823318113537226232661025608729240408057532300162619573814142277876339859223239198175272455291550018179303364168734648509770525085233705272496819564713331693217890795889917666728532318251932626166689992628286864313605343711887200094652570460882555864631040720814834136762934690140260090785520145806406373425373231444068460043232597334024927358520777014125951414360293230600083698688321912828565151791980321755973150983029249127936842484416787353669925414301750843463251245637366814005779934091950083393093961584738476887795464462537347234885802781491017835508359315048159912731822621009280754317630997340021738225242786396265207448386895871600721360017876028357048100215537109371464142113317137395723089998535402325624279371949200562958927708425026633291611258093663878101174722031745903534538789466259201149367657343995912841888367182180332948234091005798255201705481702478043295446011485467334055880556506510920878681569019650495897391981513245222771857257003995846763865001460715391057032752254211400591493924804339863363333262708708539073715094777172795133231144522136797635377389932700775002572781059950875823705030666959323324959155289566856835939613702705811903657616642802966753297801093334653263299074751290257031431298905845552543698777235984490482683324398955008580521348899672627787156715318881136173527499099672883205151369624062437941155951015335980776377508324232072895247156199648855039635157246901753010833889873619229127182028060291221335190518932323918923616393751444214503986588180271304522880409418706407906023873968786719811886623015503613851706835198837574261390737754114895582818722401281286987880065369565740455740455552715538954533097506824093628853104419224268454665127023202660909824972166145330001042529977591989080968842935584055697534660966630674125547673629292647248892733984769696351696283939958720672921560737588271399844015857534019601553899408992435032333417353101359341457123863504461039583197412952036064369968127419027406720600857298518787345930405341302037674156682227898315382681843318325238271788254752646757365203449629536838082622152683925534237457801448458622380744304006340887899011947121811088372942274210534767884987234328702856076692033394769724221771966094751269849878706172073501645016249553047970050240697659766361716119384880345245531136475526382657742945706388223951926464509966081583872657370782047417212791156271249322968393218475960838659719367584020590658429640734145043175526603254782041744081414225064497627159326064130684879800816483840805477073042618937736457390958929988470664009562398400213181282820486854594191424383412950182920398886362791898377836744712298706247012770643815753809702016077187969280951382003019439611580974106081129740580635540232063894343426479130396750157040477552562036270466755348621321777637190547486049493095878025950509968456397300209839247690478173894830511142526012923063727056799898295613372586417976717909485251957512922090404076659604296431927472067736552156390475505586802343056610362538787825277363919514304745377009781637707483854369116827702529432885165313907168111659605889789423761524499955020868896586689385431415109456878505821493630701658646935015123081611673833191276888980750751819526209111096971053447369199760274871245969857112321469641053891056764049451849785064097917836643906902220155353382430263146657444376327605431471700266095027961419237818595866405779144312180780278530139815557849300627887427958323366575347144395187880122921663279350839049041920125008088649055889875763637707120767070881735300748110502606647523585232775762846931151962400916475004916364426756602791433157562267858565548623590718662983392853134645336096121940040201288163716931770905739512256014157459046646508626427537568947597552920156771029932675318583938604394895244440924948765665761897946957499619567228242273577413397476787695047574034867355049355736015947684404195699088479698183686150216422028691037521775489655980013327243202043396293573169837891956628480840161663813329913248558220634069421671495356997091915058976371045214341582033168420237984696014461106820913150298697317055156974723469114702585321048243409549948198613932041782672931353343926443126329937705014416709568159719705333495380394919911159036358684270937617180822936247928337757200415974699491146896092028170260190226195724952090525148622658962637639082094528098929541565287833965427479374331753477537438628251714496812664229397198727377122220874511616951445069808206931728028833809882566715525950770611175506842509706845213108353959159979096338984998381354876890501100919581730026631696237057943801563471367865912746986089667759294767741466620823526881405106008982192876820165533394543308844632802075012278236668250231281916978481911331522894885146890868942991305850550203863141026439943719108442939132883641898558425465817926112223226555702751048887695413303851412430442533191178712715672311031540373437990938560105741363771539920543799840016537990546854533762465623929344979685777260934669007771011336280208378973593593812940141283507774793227749802045619920573135117534638839838253928669123567814851320893071544112698879816239714575708074097913409856003647953130612974145425714234230934177266230892075122845376531859883898738277885972812851416492395552711079877910315861102096965679332469088913467071652034831133012718862122301595625156073026944167089785677157335993916366531784624758947265698672570704032985847301937192002772150530766557986316735600627565946404445421644929499822432684110023624498268167861320696731608651613200893156512212315915756490816674760666296467749492734915995162890733442622534878901659704223025674756581769306832265951067959148687105126216818548997925218715682567879263112573144047064896993768152048188397009247651453687786730473567832538908551026397028138186581677500974438097263522394955205082300651235279754438678941331567547239896393053352076390702222306923052164736297428071364169816700840532075298387834892931214373534065055028163273577641773596631635119141467708624322397381486337966454426843951342070689979258119322838584206586057857105118919332988368077483205799477436165871932391582872159239683595810496493047350504725030560325770066893408355662828421272282676071070652642102018410247179795053142124880116534850831894210067434501507732033112192690021813759270483637260339101913655342078742713465850252150914017640330255599206819559883660130283980246322544708828530335923301617552185383330275525484230990828403906551982699302414592030024564495212897531020218936683163843110517875730726489749735450989714519920141443391337910205965277417459497890201907487010211138617566279727009377518009738325358158731183523951028523456096797360385539907984494164477100286491848054159877231853104516020780375228100351540901648256894954223010674222137455208487484140379765505229128670282007010899934581216067292459214465571873145806264399102605556747402789720193832074554980378869870145460448705447710121156095399514308279788265758627214536326002287016606037375173155713191097665264688627195543287021269268881897361052791787541535999954439090511936439955174503131805223246550400677746073436762568639341100625604490093396490670816512980130326290433291039540858864540939015764860931843213797980740958176312280346804281520055701101932732709364067304967449326412752579505536036586510561896820719826192882364893724860728461855314777139732892998190796633110505290892819094754676291994081225906403129616546427130033559849422170817355655532393752777634937254533419448361198585868659720959545262114085263732937880429406168342958148480077140273988340506366641017037978397226306186838014035879035732967978039769427700169350151435585411051799637314312905584703517753224116803771321182806817781086096896293866690199278724594179758271729806657211125702307703296586828292097482280949410603464229414556672152296780338639241748139548767110575373571917525604799290950912952762222026357806786079096849714344034316464282416604874538125469044625434495455134907023261568904616041563294786084890839103659360006169123694954393921624625349942130251682980016139903318906843452298318297452211516317626275467145498610806170719104867512459878507463624047734304223010480138314015762924502055588892180709505007737698572911015432283316247592021412958554200949237584973666424808314858649748448143533585025591300181726703231011063088315583936437638870276542114972694907519598590427822618782446739853565750505355289083692917197925850742037683897357876486375366275390620032787012554816442805075703367127559336826160949528549458480129462650016232957939925978716152408728085191577176015318275744038120053969584936050657790353621608220025426921520801003752846073927587941166869691563234834243400087157003075324311912136246650325301776531699874411851359572525049766729194109652076629628628683653718708384088706026959855823995051244295636977333008464099957670351594572537443330716089506580459008917291443672662478780730942287195987614578024708646641813847027320125437629419451454053875936567583743782430952718269852367131014868967232259478472819311333568902374296566363830928709597096927649975095231358846775441387709771343640906934245241581222444664710157594345523867541158557720260718998338626973907822370944290737039465337689795694272967355211064828451553621114070983317179656790190231678127773793165708225568733557762501953196531005758298045556869001351720002912171196627847863180993720474271269397689541960887002465769792604358354766187001451293820504481179348869347186225234376681266005989384584115673902701636113652962513441663665194659038545166794845644135995386216556144270858794957892648332522702996998361933146236275405597615627222378428141079233858772855208390333110057019176705254992350379114101847114420649336966396942076360361994883855027982983879592725730239128072673559305331754863110537219850395826369589417430938479649624249850007731715837159232132870948587822109120451579063591954921658766133194454163951456789848544794507730899945483427763610981997981628233769664624908051349515629599694829362746267223341588203958343204165895126020265433470875996991867531616038101074804291558188932379725440642326448017036923238858498883050462190072547731321638738014276459190206829543761114660264787567135267777904727326228911175971071440510405563657465613662076740518678509212896784255986891943679938664107224330768731145969223264673609341735540964302087559619664811204676225582359552501534337249559585468626098129902606411939691114223230485180618985482283846159257013714459528687388268691872838720140954778876294735231240040560322071788821086051060429064239938304711694148411340359613997594216739615739390375064292943172946185261738943484778953207688073163932336682962125991018588023291854852803919944633829384025441790159952534488090614714002355586108278037176516877353221861778718241821306146886903654078305721593392780122297520117237198729135216749419915276936562177145146584968203999771959104381912280479067781009206325807836923015506469497482911793484939444786844171744535479010099792336025544678544332552862760127730090232280029924894225085874151791425739499954246567999801155759001588623539847958716192668222933561292865769976306769607453805739213417206603635920287922150814629505700648093084745743411430118399537617821648200198941269062202856598629804672564695799126200675501382184382619499429655526927545688091241533467701291717666497660413299298811510305690305674337997048143872659318956564355268936091896294137296584323086125254713266305609413464448914442070301045234172020905660213033097267891938447441901309485041639872364091372125761525160078922707707533386957064916283933534810377543009049033752689452062675363730165136830474740308932830790585970519452033168076020716123470792453234539669066691095287160181949635000558150392777427382227054253693064127268489360862365801041623128956365746610282251184977521206855879667600776612394684182571414565874002805232942089212801199706158803803875094909727827872846802746911916118368996352947436672492372449445158416326779249542943326215341949539072923341555580866336099851855656390650235882575176734639087770123846039602543580739848378962222990800093702172036377372460882843855987680933824636556888386631230606542652665246383354218186973475678881832996277648440886645154461247097679163166884583153256378235080857930448865971411285546274757033019819134608291339838288055906006453830993327815593718621461892284573327954225501602792542309924784722927045161331588169711417556302188332326601021058635723459814930954936348603070186843668382573814149452701510979574407682582165396806815984912778960136853531812051624079704701137635039114228090860422220290343049706480362213144128888679865052334241958554686267450149624518775608803587646559510993164334877477464412783601472545830456915128328366053428066010351803321380898330761788646202374374067143454834356273691158283567300620729527185067041324949628777744042215574238890360502121509595945622082660924300046241086159525132561115901000113837787514956905971649747222802336477058526308606773121835687668176081555374823015202601919085580709597329428091631189814203625268414725070640804724829423777902670130062331757744553055360159275835228522989013758920720352261020098005356949955813877557247069317167388194202562795178663060404978587286235687935443856441106839085666827640743940956892248625616719069991292506243700005358009133825178475137829036965514814560331250745379093546078879438382463228044121623852287004065256543178936435154209595000332737990727035176165293266567788248782324349754500622476081530850194953795794504671673779481918553670184766475312828208146029514990051809609940644588396561391604329853327433916756315536650882082444950992568988191524114621126948154279801158503853111080269614298127324957332655414723961761945741655684101363462636463314394094667180912974409892477980205643282940828503888138542953462782354076281250217092682022549150735237078713502867002283575086020604017253145805627197711541801822005598523787533843254040853064994002901653069234312944095300721710185207608436466441288863295423894912695813165101610324353985076614126212076097702085190286392116020860393356908397791026115199731187929364438703597477237897863867406687271301781230539166304993227397972112918986771662523180860288459149420459684992147959581938422714316616316843060195865320741527123608001007433288307754236440537639886365016718606577191452668872236974192873362182281896940011656876399139786775400209559236101304798163921260802255252631895060443135716068279338947677810527573581709994596219352147420905579253798234900517911466302703990292120342934530240698636325811635888922289190445803192619576818634647448632834820793126411835152532155061640675567255523478815501201452600777360526553294093661711859789202337842784380038827995622551868723908824114357053880056921501121085824023040341868803861064635345050527298419908208272866344308538426561933417176171461224538551491085645397709272842881177245656799021105347042663273470085780625787991016673911414565983983239609710540246376636272314731219584146393376421854061006939382594320401651751433495675667790183437436936431101935529468141220904231918055002622612646857553092966298687621492670072843430919054946687157038178575728117799992809871142394685664318761845643143860376500529455594197684283448011254184899481016300137239856621739838842865970224763477569977129573301496679756505165356737234169425112001032882931932082341838741742953359495225956593668848990088773082110780672219835545095285183315873956550634196269398529380327405642569498381679983805857481907117148838553442615058003063674702733595076142256214279500568533766119022484606543067350811558830082344585176655150949286557522944939277138054343285138041003799737534576466921754188187389080831118650880077210424762124525270630903721867087395675663758816625878464076756376117894764417225369845180142295919053984061209356930696760204378528321022619399207739526601417697691791576859326757457855072888388986891631890475543573556950161717915411560701609796351200100330618020819485036503151415530968838532963585162106685178081487791583674323961218653153137575937012443009759880272854239701154550335403273264893843858401482964119723630239625045721601720634101739032899740213378714742641962510618680350285189871247526638023643643343683748841398042834017778174284591019786095887108156079444151816819859864840151532935710685265588659950864810117754312326890491421873428433312258765872605095968290479622175753401757171465435411840882088986246675065341617549304002069511662398702138383546779995627935297686498882292113139529976416326282042515000674846811797585912594468699810785730055779454503923787543953762865059165280426174765199846596794696946280274724147951093479305912816618847785812682833846468347468115428105665730666641166942525233401992140373231545179014075816316534338010959053684789715109212670331699856711404228617381592737749300945896781522770247497380653143260537075061329141107282038351190339831080208293822052328245454496191121424117029629649857751418886073040209324574513318475649810863763017703440141559579970802824874554503708240972024799715510969859140409910176557748718627635014789866307547892480680892482042084520821021323404247229897155090026714470588213403298877222290180023515679677299776783628221533254955349187096422257417611605663105594332210831834916907086441899999248261557723077916241676919958264164412054668080146238507342368405972774549192842407701216559201828701343451559937084291131340068475131051809998488971920313016860177689507236330492509986614946821711679873819544382514377733494863200304941148276123611477754012955651492441480509846166762123205343030680147001913205347964377907570105094673539333729928970920262177690943187179941592651957928406986331237373393947254855801939238353385980445993961016927776670232426964461555210580880933086311082692407365582337850962606016292679125408210691862220396484747349236463580159407618011436990469763929855848099035531512249674418099769608029196929195080614704630979289612906202437515140985405112056222568286739347605626012880416831742135997774399475200650350470939752764847022445301469894709192159462471591245951837053438192640089187686275137018441252248555694082252955206588000074245495221718796789221304744413703901915858275591248180154782363066320279548760092867681349610456373168830219981364211003297874123319952405192463933599245627902751147453403865568306811028673754097415442553332113301823642378228795166233272892951910568698102605390771547789348749831643165433078710546036690875592720801900950379189195454038031578216869849938190900112068569945034518332257890215056324680077629443717113706296653144445958570100186583659674719832789468124366626091218434800857155108069236394006256509511334909174231305308242251373406555867304121031298579963552787897905938112717811785692479549072241511616532070771366385957296386492712033642160676084602541500945124617637508606583734775255653529875968334681046063934683787791193152809979690591820158069953511229452685384063232367394768368651606012117865155880338944820022590104693802020972225683403485141932983062315136982173767943695145845498028374831812001785052516162316620112229511618816100812739253748809233651919255420950294047765478914063006042284337230132491566511331536909229096374652275354868660499762508985429287960104594673362554561573255713328426775699061985420723328246031058973955418458154525517136130151583818506599075585088358527334305629695880195247871221342173835391923078123583907621672685333061785678564653999545827549762376265573600240170653845031693222534483687150941981852543335414448627429158251882730863894483181974917662049809964530273463114496106457323803985321505963052224865316403907249739621659280295767045728684088810344481860390276411357139904068440881553716886181736021085115089667596552655414304997043173967962283651101530571694532174301098206149179811420649108382531252182425483892646866432879570230868928539500671201621430667420500831764790108436356435342845797587091887824449696976173765022235001270444645057910021278535482769756656969332694418811879329924883430285398569743281974528364513421440951051260042846745262119268991507911290298777230133892201763983703993994461203349886761196692740533562771488880052671164133514795005841490426133524987909619267132070779702328974883401718105539630153156340133385622838538627690552220890552066848902207127184876752449720786015789980032266035859880416195991419423478966461425923646567455390478448750803140876298574551945680942523958497595612126811739286293004572715358935871847443424330238655533057180573035442341584478780996485272537472798465945435044346656100885095025217574050731253893083042080110460716759364072934259111319592629144039398594172277979189637852665139599891766001371545884736163113819471275397077398615564601197603601987935512263854438970268281123787331058453607251970832561911400075148314278260774893251246320964618889563012195349164942644530952408495771019221867030796008425228031933453677860165985693052963703726579695884332907804740233221857510292924357170655525311877278544608310765399277230971468438303896398040009943903000254928539773001092101209056732953265045541260222491608518632037221868960063021503607715858257044379163717049220914183550644616853453788191333537229185105564021011619194493821736111843495721282884935927695416649373984540702323597421098527202808987807557749276420926017632028623189703110459532635778052002943335375997725414337073013794614122605388404855604398207527398133607591823775725495659784057276897971027644580049012229231055717199879180470200047254635059338291650940772705907926182044882624737602619990857211288352925441802744515129247396843787409332451384520666137008257815229807725265547370755980382651661179124815674845355405801709504711344386522376857640210031486078982204654863825736549097571044916579361531421657567507388596969873075978435906437656353743283149001892415197862153476072628436873149902202968677458121060072666116721258825361514179591520784697751731543027959297320914506902772950824518341860842073679975130843117259721351675843351902954380853507906671079571631935478744332415858637774638020319298118532761616981964918252759227034789350999821448855523619927973067214164227070358566714465538645116374996544226227702525015895279427843927724872132801756632623594172144027834099800634433896790688622516187339212540386485998804109500327581562976168022720745418899900633294601511427611562819508370331541923502866306592744452496616613609828879707398026705849786386538568111328242202545979278342626738407629844839338520173967412324909842861726543764969449241283643983333426979253362398490467908957060174977783375437192656158060140372905405833898788119208811098415065567767912793862513064320852897973098898259681949413807925521217877709615623793438649465546437227026104199721552157174870268569387046855687067239221641124953226832342701523183700077257675946504750779412528212265352172052833096090112736146421897659712839537632788938938597542546378411578259801176163793173982966066740029445519346225917647876516949165824779728979118322337229564324176761841533957141757616981167534024478119716084154823101681719428994829225555754690561982136929486209443219579799932948883087059992337098245995130498733505013216004254121967730773519031267374041961470594636485687926148720904274758794251438634193783274484250148862524014956131645065744481623454602757635259296883291158773368070927339426690014643705063309561831525684951312323875063934341911518439247708501472376005455467843712217462845123776046528255622118881061305565597294678949559644213393731095410395549646597530777425984517078996090275272076136650218152307703514409788296170873826684689127030150582206203479388306857100780365468294422184131454874332219227291373534592425437169338663578338654317746498152393934164335661631418489611613290797328886872658257385471840260271134696089746419581497367230872193755480325403801626709253711654785908608822994408174026946632753808131784320425309103911492105914827261401441898066095710342447839569864381039871217500914117607734098869362093565453735883555017656599731717558333775601222927220556267257956299888688553547936716391180338323588920739245301165367340804951069478019019622457768557640644313495161751872228630288950053344863938884726357888698298947127926582457136976441797749377845226028442701639682018902486885248683889971807580324081085633422064903804729477455020769549525406782097713525783268225616807208646444052644880408606710396853992005837489236922544729661778382436466057611680718000503521236510923563490433538955263068782682043288007781361102888155314512201703506758949560181565486182044437513936760163791712265752741655119598205700241672884210484430456257513861895891397268322507778255934630818548647113424833731306179320213184009355766509627765212051026468985216657764089577879702739021277429463901457485153863794021265941183492667184816346146607449248716979855561701113324380802834550327119278292542495625118929484812573545415381687840238382087463877952296147719513711858875005374083947057149410067018770752038724530930897477479507131262986201958310719950531752485867178802227863379316429097055225468611838813621789684472757536722003520404187951372672331704293513995435478377242605468842991363380032192178655142191667095540835993229723560567527519063628337495202053604650726122234414728103124553269111097952190148777198321882985404188025696095952359304980454689537226831804481162948637464531910242523140224331359177041736723831970811707022686198572166251169484423190918856237170881062698454964101291687959650705958624381884741600966740785885089880126925962876500510409462034299098949268228609996006830343461441866918226270927531747115711161129479332329556320389453132752220882012133934838155134894134326461518865451384309993665386564486300148367700661564892092401630202349972825220727478207193684397843126583003903688180285706063841979006638821836692814182287835466548353843808940794791882250664314847578229767532818590398599843511453389008359951952136578752252369542127030728228584718090874794964596247527748480645736677934795006840702003012900535249990925798413895851111014205664393321520875224709992447011421310543480323516518963516250996434029913857656083014434837142112182478928908851848350566620314210409375296696512607339403815417255779568752295206325692081037728320129373365363795283518175725564939659363909620242168942037463022481729599248700476867757854950867019411596251779186223507998319643553248491978648206305627869848671951979928882029915753100706388122919479329158687654824628235270254296764472559995792548468347026779247691962230821663264620794630130624932386291042761585600708877474516563268647971088965615468555723283321027174265247651242015380133684288573813513993330987914765857138610435160004697704539172520455325921271341186710017365665708613886180897149007203294271706883172639664099085646336018729880441558731969018358255800241582904388556523272701374766139447909740707924360339416814341591296312376234465498459097544618896342550690784597723559193807641437858698806725185910814601302629351852330837411208883355198746694444452148124037842213769624597878267799334664791931395248105822772763622233890818249175048173461526845819239296307754070764987755340483934159425299039873055051104743708467919129877983247098987168862782196972089319803079355197339513517515596921220775469791618153653178803253571167072178019426464351659035925142544643378549730716829922014680524489997772101249640033577225708893008462052538257691242356201943696823736028195753284776358872493271677023743711807868682311898640861497703659713812167743131500763000970215189667642875310143174407445572908169965762067413436250953138897830635600490144253306447767754871569718460537627220851225529478711176477202829484252101257888411592458439738165280994813703996857709073481790830163979584830329802922278359371981540722732670221387529180991950166618353854663181387304289930505798952094376666602105588074305589541946186044244366051536123314385552028692823624044909054968964293275299089608533247650033669485837174532007950779081112414319309455120581705532501746776459943932575451569547561064971336328712975281208749705673265695186551688471034441426536326061282263432532919102344564330417332476821808845919201888601200045977029742540149570419984471905536834450849791365355827370496215462589108894919426741855801730591090937215864752100483625845133986997342368666736631196379898367947380666636204558134044242084103971771779056184575441222621879628793366005754604589696637975047456873265917904489596027508515650966468508566647370534382718561563399827277110184328798104709203127256412206608661266945347136371373496047847349342577938642740700717976827893241407127466924301565678321654046442908797223275687502940753022877500790392144777365155431677528957023875106399661505939867259327430729814599700798710692713253813640816911063291862107314089619464810711278072608198324548543124512715740813991315412969577282794389644374457853717288941710643437057024466171937677830899235622753704819476176605712975480782197251067026888055584676056379686265920938397399429176246723943766746373473056134624015862742983938949877239312494370871629105799166333752928469922856252753163549800823131519136018847227991980683404849374843883949874955460227214924617087416687314906000490874343034044308351495273122384616043320207316610835309916591845681771479090518955671563739464718644053897317377365056250114756038775677486229339452006033223881506320778756137039547533019524284344699010257721910138536004309431383613106620063780808520404542063293750950027671796634889751191838030850011086033813759296683069115395861905736942234535079487697505234631496414750140144148541541751185727329048341450977128570761283966250068328272430658654763192664100695478453266432757164656019795606133639500424629671048968970932200833966690251288785332510993406203169342200097586162199175451136531188543784822708608388843021221301355900045798044945676209222050656395107617902196392199883903491605866062618176132123593763389994440202504950535314913714905170758042489676948754174438710303144710697435519294714150912523400713929635514318511412482873641335601496657854794354929354766655469988590821212754935662994186504829599932227927935858180439905286791104633617675916598803671666167930498095387573519437198044535339146438173970561357459886631210615699489479655907648313677629258728742560740447881394705885868551457806759063458238913203216403482447750573637165927814847476808831315827084444035661236332219518137762884269738865779656208972656167917371461457510322872454357309643708784489087784742042850072623973482674526152461670622070913270777902476825520420927413599644877516870439616508062336917404609729142246876067945980142628177826152127251164258760971957124382251863685524200420135885342215379080511573213349877318415393924701734090773400555907771904735013153153381003725533177518396473787106432577242959798611752504101156360957665585270376015033932554890853439029734611698619805839566437159973115557721807315809274701691654980867516260126960580608179969252555130723146575564322491658117826567556128507035959855797119985836304813054094589902051675963589929460015064924894014988374078114491272178000123384649808588164780054547826955163723394312196634244656892252227131166660621790676551955330599684637834560996463161877195183970352521509995770561570355770285219962126348633658788558403299004602528372257497949893635143278634410310170200959094378437208693756283958062528620053158145675055965747792441053712595411410764132883320687482895197546632858959606807449910347526002585320426315946302348506908009777841750718915997671161773892806206485979269478783334229592152814320827571435454280747786718710701433499469424038613022049683931561555335814425237155836696858051499790151431756703776670108480651331296812271678791176443910703424126402883505282060614384700840353767117643571003194577178854341927506038543695524472801850065867064881161658073479808926020493320976554717330692588678970301805335101317300753686023622195858977482442183425560631421540505104677839820311959062734747839121215994394342960619699954660538602145720909726426270632806208809795511771683010292427394438882676999783526019710579897443082406885115647875781153275720440656444193152172314167043570948937723345682248714988055590889138925408188779364814831649789987830551870054085913789249581134764808337469891991049678858800831116731109302367814976357596618827490831580382582234080611762103425308757294616974762922839380260627445771636701177005732503339388521573322558262701467316024089101502681802603012690417936840427158892839744828207884379838755868897480142556685643758339946829465309500885357439031005232365992046074244606624602549776871772899638378545409220225611608313075538650596642546804005558443263902172843570009803570266242622134381060414416557584631802966091251545241402759815014467388108689563282611307919334130960436511507312602459620224603308333092360437533633378391744638538235043958239120755093481858475782788412244766099907937574257617851048177631872581429217480085731795963626141565818240707307554136324552494405862301010351852130588928601928897462260762621188839146932766348564061083468481468922773943158646498970627608446484739324751568246518364505880366649359929639080587882007449912702836369127160226948363586265005933448647977114472195508232253857134640110445368783710349570672421029739273904685631619984893412048531797846685801654190575626102941871070318565030561534732770126046047578181824197997645460592050386277526528459822081696816005565823194192010820097138593639082647982475888394425985033597571527160676836753852989013966862595379988495438672341534490459089429482433349185174831328209643372115565943561549924688741867360584378030795702782104207922774536446242288797120218741988288185529348180615646508719354147965132127167046016745354187750362900528234084084017231721939333209979004948959335555677865966569917388752458896273449975169986466747381816780566964026975013585522767496369102947674421853129864117946400943125086726769818574775013429928596973913212395119548909930520984809164614670017224930696318466027877278489762869543059820200026149046349949527857106497239590502312824988363039562257926998849798273842489877566199735662480625979238382819812937387247062190974047846141625055670399601234331935382705505333664546065317638467100514365037025486764049318652460715463012192652843581842017046430068092559484705769882741271303913712070959448200050886286384472246076197757453248585498146956858217784196960607626967635473567875073789218656607377437007944770117453051138496371302947089442971770234929673756642389889808299716796554285020039940353661657528562779334192594839588308757694849740578616286652982113966938158193399271535278841405265937817909968957173574101562898229823056904239071441781091285791760424108078229357989605955895374028215923918771935849742327382073423330038543616807004103463370105847587300647105587572219999651162241245656572660363624681881480741674705546937424783513458271198175330291942012748494372654371055808799448053512125277446375328557707773484084868433632287795576881798976930911371835079669057234336826394985058718775862306251204879751537649479236053887629018828013012741976922152463192771276896286044819629256292081058475008917181946420925833219802033639819858286752334295738367381153363936725800655756441373930979270379285439654855460243717529205183333853204888688505174190096131036205308278125510341205741956950332601309868122163198969216351402861626485643938433634567335126579629456007093842080405163268574883055188778041423625566241926037006204249886750265330850189270527995883644172182034142164528118635826350393035291454271875665560054995253827867906921424766764145817619398819462617461186422740139771276941034947794456914881363917262970499300336816884137042782421308428867491136204932426961482457415457928247460511837213855427262799753752206447251255419705516572994034513963028659580956225369965687213153234545307981942201107223257031708980085130339231219658418229494304960880646342746624601254172115483337172755781155455266134416720715805912436896180349559314265249280558047975628587513094211769862586118842001146581437077185472851844935714247958179493078228646227836552631299541902901744001343141800078156020261497313876448742143202648153153120322238346161069820072870949757392430596907691875616112463712850470067793575202809192981713724805093207513923731682605494293256767298964713926305031799281928397080249039173457342998980258462656654199261248342059797161142982581306718218183630625117912676996232056020983524847877741012295055818465007090082348635642239635954775271686884350727368056839057483279014715639008971714410954863192012281733618671175836583948370042913911801021071957336950542021862046792212267333853161519168874169605278762454781985718097035343565120050082061844277478513766205589526314651182838293744393399415204049374428824508070281167266925396512889715583969851394048458643644837758988626071967070280447695065911316416893246078806448319083086743860049639509557509451038875227123260300065207055214919739222838086837604111478706559927030370826222891799948106693792711313029802249345930845205002859723875475326933430765172489357332040205307789130466857680766090145456168831276326669785344093170807243116435974428727404042664083925805964460051300388531083140857951338210066185894044655413505082468092882760095337207886141357106331372646088020226813302063992527116898854611823202656034474967372089963695702259027014460066026433608211236817238787865444832905700789737934380835443531552513368988344735841206028319716051126473667125493602964448404427187451487650973971207936236889506028738647025543218342905074392451851213002269141322102118039315063643659267618238786395743246632729634866499732281744982118500398752987199723959479805944618038594284008719915323792988026317466870137248681545328502140554760515629942342729628286856299492711979662538740137385329445026173810058958743437195066246231459615939176642373881779643638959655287699916746888036233651861165471778914569478878234901582938758248902884764687646600179244748967609580068500534530885353048992776184533885175257104016756236605972521287693427345045106996912024309837766871922063371326003442042059474438401532257649071245331191345541172044686233586391342314911125625785588396363781866121387623857168103788469899590428501504307056806197782079502194626961127105829125704916477986710137305760974487523619741695853051222769201170592330237861671934834359643107929333428399089867499441376232035372575452474882892664103697878205116462744392849371991166093439920724482784901975434897404926372171589099065936096930797411129835764442576385778742876252363725353915938319396644232475505514094346009595471529777843840537116709550625148168910251909729239355999056352939428068498480927046743535321260379965379100986298770131445999566446233993713794178605827648826166473432709706030651049771775343685584786496989520479575223573600987960239332698514002421055543072289472044471018242958337701115830889997719863953728731140766028611247355911462809803763838801837452413998580413749781326387561710639780983857342275365992204024774673945441939330977494432261729225168685079311107062110572536071814656207662858157224122152261259355446339877617142736750767263577219756335426877251278837788294020959255113427297587844402355072099346084954735423525464197217455696523200949702080186434023919016647501992863786882684716375035007391877305717190936775230117984041163471697801684188880562752219986162975502707397209485426597019430215777077396296556640071028459268405923399028512857655863916455128239752790737574130126453017798919027450169386328151473536370497528752432207273336258659170432091501492945494030971305084868033289313408778689702608309617722244998523716966384623482257581207255734116148457862642311019610451848211048802828848680032090224529610444959152175130796369133002189888568634969680221307629334929017271098067074849019875407338818536992069170148340474587057096969611110767081920443367329453874239234120130924655325326719410615794642032278590489008592160757315008622313763444188346690684338940079776344486542720021226535823951823432467033545178463138744690091377071353879837438383114071891289649907154196209642879873082919803577228297047471331882026048316406780375816270852248138096452761573587736136172905449741284094897667844746435159274054944812326180879879888143400783064012960011645009987526783114817703253309276502291243453939672537241153860287179126778373822575830974111326932131734380412671090297126961754551026372351230975159031449209143313256036916370102686031154309258351822962566429678954562828453467566925462369528370330452738130327298563981848472053628106621558373372600817829662112539908358633608399140743922437765225724299802728782230368382077211162729593671035017756383602038395408536104396187254324966130900469996392289085249795002037172617072648188110204720780721813699463260959427361483301207970848341969360759702167152453151353594324070617545437321956960657646101163273304968060672181487785346945501972024393290929534390973551779822439083715996941668998251584563171427178513994336873984151529560079557766488226668962489228539990616987460292597112011874635230066464487910958110232335826444931017952529138823248744463300598408346993377308102655549958478518084553164353244714225253560450182771160842617367902399617878240027399837261788122462291444619337601800803469599484653358751390159642767446901718712254815166774229204167821348016467201043597539205409810879124495999090876717624686823886417426020463320912494708081394232300301845391245990397497294886589760638464585019452496677641253703574868224163336141946560994010188592716209140621472507405191904826378537690811087567503776965936247259339505467061611102933798403002412013788130916217148910554053101026057141933957913197190559102717001337871430128981810819588682404191425065833562933248465882549568459723008457748313761336422750720466762723226165364035377457744261070414851874710425132567511465185816345388832362350775165882819171102895999213308437373364103382554122819089027541535436128206378753852657861829936663771791096535165342979202719297513261478524222980110944375189537034698428612769202619965015761414727066303973859051881541408723944064523713601616769684271604200434616215481021095880131846817529380972036150994997678043999518172389753193100128743822537821475953116131607847042931248576563520673697161172777694604968633343696804379725950317989858341077714720868564429474693662612364312252301328572563347402151495796221058677270647771937714440813095376931774975913276905646599786889282203133966876491663416404599903333216146107335008625037745586237507362142614508621824617848473682757719868506274431919031192723138409908440979583091633704902903447297800254904893396122096062979466686867178087912456551649525597625229862439426339366985878536263805161599157772800906257312692852594116439768886042464353715533024513599221600303371938135033380853172298313843116826140257302849607831490389824041608377726872162497957979800806164129421619690880620217293724278977350620591813190293498632558944569811948883752518589135926711474150175822610953376514940277905241773080694536854271879349901340953288081676086524262580221424121219971563289697182956211126993403409544406522994692665218860566282801432249426573727815276779599037428554454496112096100946054700736087534588654196010616390658737923780096198594044216198734560620998110180272432306846653681625414826647534519463134422765443487394284473298916293926861003078059854628211211824408180620517743439712431631400345156093445551376447186445795543728105695179834179197695638138230522574509826190342683013036767869910530172376224413450466046688675666433800226854730985851270251942226546229235038279268926930021349303635388491944174052226006296835817424578701105910634784453494764891661444743513961401900739457203738636982472023466295422398829249097622827478877413269918941739607300298645803624780195756028755939577475496288256031399018445109483813734706724059047584025944556894330389101977231008453596853663322398116258462595610379649096988678516903304071794880649015143542957370010714555301626461321504165120669171328531953624844851122207718658806267877452380434001381309189859088867833173864003441011944270850649899148393291581493518763693947240098394655813046116428038724197243298038321487834330200698300764484880844638066522327311471081276052048828154084737922429148839752628926947121510487218332845155620901755663195880517506648170568566952144032546158120297345769574884602566313101562764574229003102307795328032955358157804906603198664243057866474649623220965431360354124020259053442261869624296409345473375965640035743450443164706761023824318634299047492496629335574854920717204705403234001419305276509899789676292789088620955586236654920889114953573201710921536809053492683255712248417086386201920888318009171356252354415197741420259519659754105070948968393236787573377674197620133367483742865861693048838296211238224897720276123466034386369336048792225987864020369857248506415399267815330400773253189134447094859128264226716216937536942259514519864604098740769983447133252857131927229802204601233170664479390481425835327713057110002375509940438168684017127731215464081807905853428689894760635868582828371803014980044842580657090225697961763636433603311831526477715218321701401094320654177813455505324724332742617357912344218079086276717589567155770680275091440018968162584435978249397816784403258933697055776427371146151031536764369454335319602760820551672238703368253125083851964294107536900592335239855085888318981793543024309634989353017576215204933148182938106948491797904918446071898660963589152598338096633271296379746886053841689668457610056852629844605714109978037695129159278348118664516832653385454242862570161091654003205686841293550523357468781259094243086675225762440665247408665485045727932021751587805190258628589927547521260200139720059960280808995641066343331220667539623098141440671193423185498903364763218676440315561083776593724840133240591356059783144795966458624750562830182480814909205183569271769274581240269381454362461957223608923397430244495786002417372775429948002002596166939457899358661246785637021911649273005504742408789322517707544121362588955218392824083360926799003572817636374389734628538521384276717887387651882315919453448778634599077369116863157688737911004060343044489874280766431076699896347239072488357516279690519294798764635535941967345979669960987392916236864225963308423634355802813297524791637009676786526026332643862807943959861529249317656532233202234758692871597905101022588319168724094420414341600579329362952641533182772911474808613680028737896600798301235001224567890238861818926467703233784595774543443680088206078167320099340166443239466384850118534893059202497879862583668537977666265302030402298585800630169842587837205542640482314514059426210561253722030701694475341828974114839327030342384452166959483538424307250213056335782057788955246755012379120355299004308178291555596984090176700630244026261043185307669989004882756345349391508844563347227751852842987264772546791194008746901842382972849167982743882221580689531164117632491163707286588184762001957543103178328870096852020913218422482353124352240891923598252043762771836980175970680603439003738891872394711360933171553634169121040241008521982331901932218438644627225396421677536762568483552303847936011551411145277128519024449087820961262837393485132409737342029142130481705597432413977027331138257313665780495999762602702277227954287960825041795346542005879742718995740837680426845131722526476004776416273725329279906026802516816055204484185727510190444967216151760737645447262263793183518912702593250904511706756087610446776862852085329166708076765447037635571747646627516064761363576872215882488530259993246537666958958609897295966332775953484759820195594150276411235669423803696377464317007442239059228794902304311262165565054628337548640390343791127224698315479519874846268771110457575236200440853726811146694683415860534689719817998437026759899110386669767927146875864539759396563779465587457759595610876869124555680634676735416991474395487621536750385791334942505754522334902509517752178085758098970357590020958727854714084559582534415749678543913524790283896064868650515085400102988618844326603611475697694941721622255560659388712169444442774614324787234216421804106891150235207582737275990184415304585875577931760884366398591487752565215668187801913995814866700584352768560516072231060191072533311390111259179852754248562791919408861509079552461009118927465476647260494238707532207295652946011344883225399271998108869114523235806125385743864347495275199540350013888768958998541041703983407153751400766593746722529108002416531583707217557361577156114840483172152302565171079640661443708965257552220269436854590447375309197716477032935004776905491991933079354220208030552403323072821736312985726447528777972313198749637596953175926166064828510982552279552421052498735978493263006517544106496248339585407253115289309141437493338831397567514396419007675231469949258460693165954880773157817971501232422900923206993766091413784713309562909670300872324502430981716008930508680274707501181847738144219404702630889390666838301794284243374788447659377583749645209441619285962796171990822134760176331467541048193208087244035863579033380049985565749671321623344211720833714387018689105348903922560429243812305290520042623928354204161963577563481180992464908654964915103319568105358607287720151466270926944284949001671275099580323226748603619347708352624076776376159136729769068643205733850220493785035260295821075195341791219637853798386366731557745682744096214762996448819945173664324506656476332047508398343354790526542432738871140730721755391310182039083670642115050805232384004147915061245795425463837124789568898922400671685554240274255136644534535091443903265977138285253856311793556619282851053221415689493179616594446274596915319438918876826052631082667115876295574417215487550655122833936492160087779452849760156693360120055780171410897370808980914657839561987422403957004361152695139134709524970359293808132801172783930035524150234507941733242878381598898564028698253324469907986030471964131231954143355892797252544098145116936287942174426005268815426978491358733055099834764102410563843105803211349835060158704230007985773262344168242376411778139246559287981389207150577111008306392564101154868147831231099745142036205419418851113068817735766467759214565122579361293592259357199658735601164700819232305155445795946499918619159013035614071522395636593036468999524975209188543948773919595615942708835812855596841591028229485264918731433425985115669220114640392439976997783896461384946412850917235738807022884128267596160303144357677296375661532407711033986900154877583416354189423894903699659723585199095996755990053025262433836568273135135397341702719143785342733310335408994258727109271470994255563061212414220662867715229011945860707951914264801434644297589608924413380733668688690220640177685195611997257275876754096003669665681913768609183475819769484898794864123824867299074296837750862917817248080390261808245764109487078930715409599071802248904140357313051445021728371916691011389131822158565362101427714490606377868946448411748527948777944995284688664095162464266138595053799404745646742828739237083284381768205687490229454238314208383868754744346735690141019524138373865542704481083006956753283378973612948006193058859492996758849295493963182484713019515769756385635961689362865636029654129859224176966440581910636097701729697321404927523697285345716442963863794508028816996541230692095149645809713180816566009568164098126528965054572729951645294944756286350809287841012764462518572262260724627476889700533454719605443653895332921492270499674451643894184632451810442643998666936136916616484945875919594449409826809076188228352269462088877589217502712842231996193085148434218510583823611429193178713005839919595075733817890980990743576393114700284847087145094323290699819858293276091002013712369087438341672179422121418922469176261051873131279676313347445927556724465916501133496333773847072594666680937905715947728049375118272006150469858869680721300859935904291692372599889790634763229059938380694581562851158892464356827956492626386521068441074782818506584812804014531516912484478010472324990146527464569592958832410521037936768757561768690624621831309704482737216214603604647978261012393343001193904760182143567055481056586016463028595054256333975122266728511048416291856645668953864070379546897192516027546957548218081808078973373152726110608084666751870964823061511866227182269925660766590929468426198289339650139317868581783979414227762226889022487741415030841073502317224961763687373191721249526503188027823988883760621917664727295334892315034472474621397468521418571353516382257785235673554131201553101250815403323842378928445111105901020799180154034944039106299972999127202992506461103999113096277451041696195803524524046821748030279374697519171474412961618939201144703724357396787064666980444098171544976814252515363604401093323580203424711632670837651741649268801337989838031701382477594754655735871765920634071710804791311712713966185415348987263573243214935598689079444530995786386630305893691541463864894941038244466180453566965439380864884192275193090017353714080438218275725488030642397415014298082687892316381754274915078128296833020331292543281340847863733470734654839531437942805086475998083221715525625028743523957577323765696964104216111749447397035279192333953822062932465658611582100396483411024420231778778364824809221221790747158116723045523188354064971956459837033211907596899072766980008411166323263626774390311395325251938688647786021906392291822234112519142843558328099934967601193229404048391790217946381616832237754779105544897060133481500986114580371550788553200094182379020749761580460615978520490219552842201662673144697457766039917033178781447233735160841368091704207638370042658283075794693405486139413939048895434162993160182229183398933950295112602741214310053535996792891484829787847230614340603676103297173338691168375719776644731517646267869748919514994807172371942791386965857327910733160764755477922111682193410542336751322302681887251578531447449161522697130723578789860209119120205094925332664393286241578647950545812987680465306017385375597724191468680054396402035536865574952945462695194513769306692528522820896695617085624586783238311935697648420677328739066518867631166386641142196059319440153564856002297424273375582248136478936905886678026487299673394829263480965406021135220555202356099086364576659935800395582486128628427569669070865946535640409714026227741186339796729273689541650624696327091320943490303018883632136612592489877605461639506227522101298402851690356823994158574095377490855436838075833948399892653177136291584530797594497584793698412713880468583641044628489461487801920345156231096548986756344120333376651312442593884539956284604607155982578802473231793175975775320041039523562650494514091886384665200976732386409433593153823415450627710664283773835606037499745854369935007456282501367137230275481353462838849341300678613101332603956013344069030378502002964620661180552686432123640872595285970107529342574014489088545213551143904098003000433733040693306537361605473127315166634844413530934848683780995704504485964369738256535556320111279965728317618673230848675618416439019164226661705574569472837866548200864364214652992627725569485345910378679422151854169592507921116105053512160419581593867783958086234105603697382654258800930008286501385379462322226584471403902171840056247113835401634106260482468320756239685602866562145045460440248274459018460238227551715902435353531068982517147064784738695209491481670777374718633886588917426999099868073949129101052495102085675471726942119996322642341363520020314890121711032558024367053387909286325262603742018953461466305069853539584327955198047223095719733551100240838113889696536707673559447311980089079185712600252822859651569389910289452761925730612308495609321868849280832913168518056745012721358178162340219226996864671469555829413340683383554151133501339505160227964831677754706006048495116500646299103276091925387781894974833855317640505174195528708348047700046407713977267643990626286344832898608056401717293717726023202266186102583809300713592324513580581628310536477890206747571426207408034703362567417492680186831731286349384993972656453257295571379666699696737475229438581540996330807520171272340957002906078374426154096274915666320738865892996878715064623376694818340619711848626095643898019275158936985947215975281345298288948280042869924697438445431239315804269566808200086478774001499819791532850492320843533750357023674522169862250600361376469753447022107626354544603383681795277619215524608103162902067492138721362795858246511889411230778815565605411661259673876981994331078035128568563830859624242262837146811669821496740998550848042300829166198465547202013271320853715081149380045189233348426655487190333837324593787911836954524152552705015143082150138924235709745191679261399380314882122556364747240270146963942285707242616683869541713358846792267950466780060467301279872765931588609123440302627314814747411626867162046806964063745046850041033829395764638676496395142353049027866670849208118837926178452686922980604895746379496703844320016768993316282075074599843961723207017785760608657110243584013459089506679697967782772360543367885533548792100114552707057087825156701998020913391086435441247502316076408050036587521893129740743192015761746811695399161765025977949407387991759665426671830955861055601070574241583190683313255781319122741794548681916753049503299403913524677802560402728905215977687912604691077349390690646810983317031941580493432630957783997214740700176611954410372190932444098048679998600085064468607887332567069156884362866893369020987134530692937659881393764127195740820191964204262989186689841064523736439965330284062730948298374771715082260611914496751814752752613259349895733099999853451525561343160951036708688996040778695045396993443110165265935916937318330766539967783711158886661101701076274378055732430632285256399476364314120760160899172124958345478403572434625558986128343956587431195807419051009593628757410658276459799009633642227639189727808267070823478715607798113097301092455078284903060656086123067249196689494436601453680592582377191727561736221194791200650813164266656056850743685406861479064434847054598213681875263203353580057813114028928921587014673335369765224305525243321814497888685541804458917111060101090688594300789997102125352476988343303687449210549034067296849660702071294398899473722179293532356820752778072209249048489683459616381632749278690823640706511804050808179452239747777857843186235188666298465101975962941707266735794394579333925255788505170684012905056391149162277802817655907126673866616251251868439627371280278731889329471395319799612963110373272078940562031226867982248128106310592536632981108565736497821159517761033244150019806471782062926549114564721575360299365633397671752952956607911848597921239177567282034387672416749882099433237914915513828793671929630383062715781422300752131792378561306773189278347470066960565924196298183061494572245616411278508747492768245518417617993218465960083529398765516826921453642364777824360969575025654131767832315833263933859016443819581300425189620840234384703078315443360747226111036546682499380019413301125570190114007764072252009064001839641616933110784097734998010408709368716312255439439917278757684475571737075975775710607805289020255398726346039068911493416305931537084276815299426281864697598682825860368538776825813956171326653396918307174926387325601582655979414426360063201952823632670449875410103781971354866967026934178295414789799836122539854067570361439446112341823653486739778302477436618851153131211102263767553789382659903686337833063955043090407363033080709978034191304843623416188492211383030352514622196473645434495467097806779251594034366079185528237906922945787369541076946948447070588367420459845712358005339276726640609743490845375031442252990766934654792338251960934776865550283139450820362465523583779040820090440430642216044795899193541978423202557430979233993624003409471661811269903852605509448683149562839236723436107649227202759447019029851123702619758237146692660872725426919818318145064848369286200557404646332851817544581407779685216928954495334065910412270503817762433042699119511063927588992134895515187808278457744860257152759333167180699769183061358525886709774584613968143650402780831281043981887057065006471533964275191122872133793146378101960741407395637273809343950176059540594504986903613319631341759318516437732532344529253580203648578832991948594087015977639763979190881539283152492723942059187215099122620551428112927204170996530761027659848825970716082132461391129557648783269442150176748826187577960851965647050845732637314515742809156076671064071913273694213331697806929681385541199402254221595253121593401889123240129110204454663666842441698195105367311294915004074583630103150767811852682588744935188114571472755220243089673930739841681801101638823378625315915509106233191612030499277780031791815793659391807074613739714219221984513713251479931178306043320676671597069243039325983246160386362687518271217564339976642095248419284670758853302024602221592226127538399098951106177230483055753612696332266267144950636906327806419000131562865696270824733527221172497380226640580967842734838201954951914857857673599380983618541249206548931619924653575602434361536890090900735538203664967717633297701252711364565581068187984320460410794047085561737644437933106621101288592461704804579376003972100490573585033914513969851265138451811706669987655805530989287987753260244484978882162458791790137946792777174590420337882220693221055101109995534044952452060960642448832270167092892805475188224637593426724039316900398764287879819080956037800705457889475735085154563804768018252442686625516673375912448909447543559384660398340359441488838369543998613982665749530227290144806141559242981597136992824701057568059888098495548447932397674389405839572638418531780125608130146094584352762719240646765736775502263221602634523271185162332449147420447310896493743842589528041267976273711817728926595866571440518198759282002614663669817342494926461646669299944947464639187571260571137364438193873732854715738325911461947432976520340716336438217800004002470140093411923760395972744719276517944482091935959630968853623591603028508535352904558600755603298424811996750067496511638341194750887632075289237133113121593469944356121270817881411379388962062850821997329610846312716442717524702409941429067071077790210475978105461925097840237736591022604212862650646498580483561520679196868144154303337644365300504376278703877344587136390219146369549689888271556433290557758552681083431742716612166921285526104842547006707421930124790601116800029305427783526298886591207336554667721185233607604729434530501618399331885709279883531108813935312044692707355311513729256863752501500221309279233958042679341583270842977671066872350289851235243680516893823764285612079778638361861966936769009635342032966653688189913482013514735583883771428723860067158036645940456238809183789358891259591930880000471642135977297480363288058680064035768313590373193902128161363379664379858749708721084401818659615057876257728174894199381515185444948801574976701697770872794491021471379158357112068966883324895101227460452241620602311685940546475480101258844234081441551769591991842165497432570921952301780477759700822679917234796537999715382410706061583319171363057097580632765772665904558600750424182379724302299647378220844049838910546618317322283857341762668616376515709179129626454977489396214338781843314466214133396017582072751865738084205565980441159683527667926011201521764575562828871217040087379393318393692426181638567353183947793044021639187432986634525962910857679703456975513696430568038520789496313362346372891078690219695469524722650087068874801577660851726044849566909043944230772878932766876477572461911010054520796900228435143562204082040907429919386459013012633729171939048620123718896463809613094343624907605381270185901215411477361572637840200451830539841668910221477881044400955788285460737861355726385030212838678477548815403315101347183426521864212099571720867291116315844146003494703961236399091266796462892742837591922068478736742227855343687800641856375390665786862813495083625110893420800459502909956262590266838066072243422773046597532275643774293018153334756254368015314687067882913981463852532198861468592506584386257465778081889263774217868444567501629283102550468337916533610832484822565745066115654868651740009230667432672636450258299198963106759551320632081491014953388035681839863061437942532553272999062555561852608749042080659217677184789316513654418704334274550730916484383229712005159199417124461415400260254746035343868782994542546362128741099382744131409342402990067506594632522289424752950968512523820490180812901171715846828402524635700408891077979430277214560037384835396485784560125333334055235169102454598826396804256615016019650065378315931339061202123067804918382493178042151910796108268513587878085015729909333948491644615937932314494399195745226714087218548366510583408525675510107933166324485206289750624604513743909243290372770980065181397036897016453735688570385231710555312214921513138780915217338970337043393045646173133422307512775071795180097650778258636974813149534902183865247557607082568398573483265833461109794469730253271197971363538717900041715722284465698199677814081758347079601686663436245457291788496196010777386731744980115277613432407955459895135173066915508367981686545210765957401619269494277079132356731271947308272038945768680833361356940887793852271166569077475706346200119141055028098936722606543379091377555940933136831138842777772291485137267878918491472596820583551097408252471984267283032842271687330859251585872788377925852303743108879042845214085920953274769514293144800768656386781756583871461708000061002490567358767502307122441717149585114854762043630076456522634518195270098770243254133390413107892797630487090295494629977068075676335722572532000472034357215308091088255749002073075015119378842024681811630892899003917327565559613899078591717504419924289246053168899549074879966632886748187195130197852244831915908118921459119805417279932926833537221034782176722348117466299249608522665942499050980853969531678417492013967640223944083895110723613015871394005571111420873089748704597628508886234989181946806961440522980924989788147733417820234249235376877411677069289352210095624154220195687606619687457971358171295241195030752070744923754998844960561548851796361750353371405243119643690364622136561849535356007219202214670150862032573092785062516388585496170508807572623434419211300151575290243896114474756280429109246061308391991928344010543326477405888306791818076009802998603474713975487217383399972561028688937162690740837830975969602874486940860752875183096195817051923468213179867108024455929636011948941753136090982920446124802143190594320048383170714268631927525492484120245815958602910843539563862980746894730554928748911426332168054728745327932673802253432377306965480732461374981586239914522957900504722523416068145391900799954063018426308147721959292802345976214103731359580157518122744837289402283168051681409161041302360621581673006918566934125700713351755218386041617989315817110904229806062216894997760328035648312287343969701353237318695122656672144171846472038915414224405547056170995017245220800965788254239777486154187808286008297644988423361285952358752415093046595473955043334326912459847327267509889720277109815924687935959377934228660442244771738576532885722453940902727524715478430213355178226623259570739734233078912522301325564129991658888476891084094089266234466315785491699329279011147392596768494362582809401111477131339360223039327381668083309587554644335496090155926365638364075224720565850567458205575775341625104327635517432886934089006589375117090412934073822124997235685685806181361623423035048540810242321315603345842981815753188753547338183499760832313419031520120511753193592276811844224073039946876252052812690992047630987039990311129757149109324027947333839097454897950011987890539805944680808935141279842146414697981123611120955173529231669272682266772404539050227086384056044195535749526639113040860819842237460580560320083471953013619719513042978613027971686652384428577654736283486796239022987972416433885158230704316194001886804320120106580454479603689052464393843323069399187940017846507315948387004056041055951750100290518375190603141068620278757009152033464552799817860314641582799817886854699202052746126154764477981380749492615801779800210478002389831102029820262895322531606706905482823883904514117490411825030602120184373799304073420830737311757939332948781794530808727506845730347901580793005886030643659898400610882698465164457065994509325070144317568828314703497544333652203457046972665959845025003958459368934789821404504780579527441491950720417436878918191373582649096650997787078301555205709935707970382639551266858757259707671021313106151953850952908402105052737452646110012742247073495428673955720786749148611375935996338836837701708353835765897514136340094630953468057695914922657711267151316017718650891909944715578713335860098762966144022698312952749687778470381066144087383243604315567027668767198675930020208158157683652412127016984423410249520862735647323313745665832840863015008052793055028566547305733304308368280162006105086206804266605223671785959098781764944367390915916732151589070631379401564090549474418144745985511454544795677678381078330899208145245990711164587366799169627341262789277050432701920703318466455575359546954370812233918715066304642892833852478023053486345860364113994014863668038088887859021423847852343562164538154871847545524002433895943330451958203357759259529345841504439429245335441147376134427781766254831797189924691353260059706072818495559969716154279477591525811186427467666257361114089288214493649387519427535560019751966778519973709049231569555700969127820901571930294756815746718724331896984876604058767110958154136810197431154177693591157666921137429745299499641170462928183711925471840083934604294380303936607513229761021718356199119901816120106349121726342629666771712471186371200458070042481608557344206045374718157359516241821059761348314834654779417576539931189259019180772842266040945864748749702279192616558611144450538615340615813381573743444557783683118119440472569672305626620581756128064902533566206331264594009906299899418446034269100133264090396592566327143325794286909960659776067887623586365513743807249678461149885534422408762990038308170673450017948838833398740619353576766071528615979891514035923828254721814871728490039032344453333312092593260925330388382979861525658066087076352078904161628919262744215209522426582051303772243567307047578716278460256208575083233406805034405226989677252992564939651158410153099752247810968310510467977882359031263003461480831206848600443770919064526496503182410245637753480672580514942600731009341204528094089152454322969894210238829401837546851123433840334755965627519449179149709737132035465068287678449923088598650835082884531513869829805511946190454896144905960734019086165303733992151126649543148821650073524896107815026317071543683657552496708225132652416908955607201186547649560055847507737819703384805091147724199638184592101565448596789829485072135509283379969209785282800109802073296503578761719491626026248668409976026707391766192009738446613889431257906255157399182542389719587108429949293075223346514071906687021579033881713706340354990709779506891961048844595817559162383914259389866384106544205411920152157331051811728491799220098115016518782228535330180123540433849702831000008698146802666629888860226940589930995592844169928950834515936460883391633106543259316766125354196939053052227382889160216155608801998434803977137763577740628838448325979771552369013509645600720873909568252935332261701915077102607722284212750268938004879835087877307024726515567989835300929682110741442830932116268592700339268157376119513185071215487772885039451306725050170647538434342218074361566885068405084569662605621721265208954651372658494437433422770503053863183666271214160750004061334973419532304229708871339633095767641618784152176918069075829053157548947552469786357873261891009497822548119037895135654808386981136152538646322130789856226667159240411795288963872719607990261519694229030372909068250011255440256748037166485488684366340891103944086529037640523176765843203877436083397190697395951115483055057730573748505566713570291314016193096839286297157995339218619250817298048980899325366823199477993362388821892308498295501134898935659090775417527816001854807194480627935375664138166001932125333242360763440371562885555347775735385011522712960047755043877594493163807329395678463818249752567088917244489973623089650385020134272371469549770863884247539449464694141660101583754971367699471130348530910065255217636916860841316535772998056302597848807558426078584360992221984594434055610684220467186288757262084824069072576883444680717489733423419289938221536042479983403861241073940335417430034827833262009519850052386605168919102515631234611643334972938136195506069854443247144615741274563774355535183667644984271468032779780337392048150300881732567676785081377119955794080621154389073397411152989334586730238793222629979948738305002286511169797727454331489308820829304652938121905373368216966491184097591111829251156102448588239462510496803343909441289112401324621432326945794971503910190384562964802978177185237340213233840222277716499650304250679375517877059801457427617751498459107318372719121802342705801540518420095605003806843106000067695276593478762492829574997461668233128144210674317276589099479955180614226944879587400817310605666306022163797555214736210656221803821150041054249707318938390040003694726882765552513296684917851249808828560433852132808960275940560143934120616197664323583275275806183740482242134578057894832326579524438696048884028864854634770464992034900603803218308186217387999769309864085285789074283153333582826331210415192529071073049203922440742863195039831460358426297408402100618085840127133511174555920733175776453174785578300883686345482825096469866936381986459378755371661258002536227891815427960556032691131206445475100981307046122509531615398661693158307093552679973126594825994007968321679416712679391367288195485540558916070767401082160419575819379738932867181144947036544656647721747704966925304649646945368838871814318634449801063695130429229126024448080340906863096000134090248231478114892567237182002641791530193945901992846548863542789040999214979438324344182380117007320414628990335327694101304299620636836212056716913753176591905694591656301704094886504358419759413357888914093204519840517291412593080414576323666099668851644130668070005723520598382758898102606394711963814667715568454970642102007690928014010243807665807648105930663336851214796326804226625664373071071971129782799610484056660823384991926671742179333983980251551386211607427994300569380676762991459037236702823705494600400000072774092353353877382854892091260041205212155385650187120033805001599167259450018933814618047670113456566466492128421026299085791432771802272387367942795228037388789817734856383199670633650856052661958323687743588635514723198509374305646103101384023243099940256891643809705861907836066181027254207755006152877883406718387611297464054457918101441301221322167584086729714111572040149868853224037269692794908152501098190314407716244170465059754556678594809427606134406277006225399697640867580561510082792710576914412494299147111364177121219443722652378656257264348844738469367984644795290451702450070958810050818880755449817755446568089990615753615924439001646351314464543298701046311811784487883468547136754361031591057407658193810391091395572602188859048841629719426162818633828119921254482390144787919784205185486033415232096181201378661434028765715226386563425460130900148219541789884725963467780488216562748142366062528974418703699940294606202150857069971352621449156726295085600789154571762142490969909496568527735970947527016772420207718014776800039594008735690274020756863542211028484452869368449338130759589310240964742175935518849817652144176452284217678007912953655769355390526687647897532538192951159328452264231941453262718312332854625543314956704820936139445415261027576890153234026276272839422007297946973624911459044887797761208047395730574237249774476811840499126861408796334785915832511927692339546850627490432445305231127531615556637380572099658010632026641466888220316013680671820734238684004543454553276509985412399515863787486551441560578725204471134107022146877252606126833507653865406569471587753093923264797766909615607351633760330548860787719324473932481398393096754094960042450243281564336983185773778525252689718447758694859586663850682838839776596422290296234891648235765422619539159818966293830316119942629811753191533800867874302720080142285823454907819554007467310847974745586857217054963457171983349604819679263434032628197930397039899673499413531453594475684278730591520475074647543964176572270858790160712346111107692298950141983195301885312171376408872861196162906726693141217919187227898625053326754698556882107502824052448570154621707960656992628017015322286658632532612630722703089218945694414298124756878190166165923101352580789367911259720862122207321897620164750906568652656454704938617460863155644945319475269886280015762372031572825919241117634856575811956257567825200072046326398227650342937692441402942926796302185162740903236561347513449694612931481483426772232699538723423468797586182233259600769773308825818637396378975329849865005246106712452577675528005795610267975982628464449320662722491081452538566879650145647559929055243320281612479651155809663108453885795435383507840958430996412902535782807285213279854676948849148205515494795982158829565544950837876957004607226235191097965398634168144718858664907961945877922036211601638066074719935117799793725622411244135042973739217433751649921556592955046085320746182716372928955471429525068422452232507227088668896292612331786549937059505871622699662255804734936582882279387800099367171690153798050717783561119478942159498216835753410773876054448903840893011632146659424238678967749723322028529493489237145231250468627311997634236592502826271386289511081996635605089275063742853532848027777029419005818006686595096442343675574277241457365860773191316599107539625509427053089911280751090523663790587509752637611208756805196334431368679796417054324563404456397967320328084110272738025499159303230336984699403106509892193485828105381189373067885975181579438913749573298134100551769070759627027855898607245350251724969735637071898657862696310655928493429419139398349531406483785309956988067977277089946234134213276772204266589980843605546927222569748100627037930247889966298486617504912571495309237015863794649373690960523173673590734542925412227844093248454302292055215075793738396407714791501545641637066658903793617782715521452305286294742321110223837036234547527374803537742878303761033409911299275585773432679991806925544847896895439314491131507446980223920171106590975005491233854124058654443791709861799557047642169193849257630343486163452731800419155550267005013347414677739419676435061489427819313360067555680619857817379895386300668694265693517007058767079601051819908922342339295365438300846098848637630040017635178777038358375531926957336891142565612264284216537962507300403570642608506779051364422514949672494450109051484824869724966932294871631389234385656152610280761605434756795068065214793326648252630589512779888928755613682641563277670423941258806658789731137305115405508527815293143533780553760647838164545941996168091127431159408027011289015616022508397593191619698101916967514851392138393078555913175662435730518703128380078476877766528369488079996260671723974362748210173385425601129868404461858454504513704066397484338363815000246197826804242882146144558899906355470932278254815145175363579229873793030582638432456229709186888146368812922735872942171017243448711043446079925440125334631503486534929654494344928079576656277134629458764821420039139356943586748806187140051091403588181023911326423116075477456665949126194176618013224993997887524712603573656079948379097329893235869105561263965455661356732686859082842990126856535372366691335650340709020525733749012135160537266594441028922455027212472148162789981280664643972786945856523540400736734113053622404355631741807538017006205630693489759753643323061693413000245640649081967502290264823251975403933405473511013947497883258139279774431322525318666303541250502396096218772050361732409693381133186264253837252983922440448435327912891998342961349813189984199607581261315631105218182204697219401785116787500612185522734627506146450495478840861182433179652421743814590883566196854112554282235452989962359817848371087507995584531183803363796536196582713433267322081963054009723364770523938457571259479949186137380939437630395356105974776034968816087837585332098919336187907334641152572150766186967099721804419773038466005148751714693716738547321439631870349132421006088055302127526202932064865847702700351234429393712868322394890251914958227345419285371742312676860190717996257364330647100613152051448203942801730799654373358455081808408903504624470866762970465318136892707431716478569884328601346910734055457703143373136945503508953357565175787697192860624960482400719466583566706007331371236958526638230922537409767341189429593412287668875264764681110500308459540322667316050520116720619955119245911530325846239405803536963342724617180949127173448832344707063044371827368359447664039367612098927143255091038540272697411940463171643634481479245030591855011836525946096384055616844329881690257163286939113385848712470318717121345252161350654593253556380645587350750652876735772513879930847720388196584435916489151312842291863129206760723674891085340613347739453983540376402886578968507283594733563181964089822487607755473005770477596392148372371217936802957757641165414104536779503140529628287891587453875792124087608930033113186882752423351229524286234537266087190268395888748342471855176849123871077095129165817810850649671061405390300027747924353484155768994295593320978292277928726107500204308361803472749909091148956522431690890614217224287668122967040240957404701957427406980514362018709279035336613114735436447584236896364368238186624597121469723567577414029120723008012849919622807451600656071732610846155625581265931631444208287966724440125344287715826418496116812538745946818218028674839794217454760021042248599435993516597271692286891071672854711256959506059239548928217403561338664095733366679127194615226341034193171315400646718179638892003095129908007732302432591479206351419594463878600718339290329788154472740304527257878792298017800334811071531813383976543112697651129923416613272350884180812032226523325865615790905742903302239120932403875667197505950461376089579999793870660454255758029948126343514854485041818377999180309135890209304088454501013005497457358144492676209028206349419371862930210255563135151548697548244609805652720499280932736489790220863240181471687382665822746184510762221496447894342041944541951273478372804192490979266482875185465308453895959097791842743802731587171221361598059163395226316691534497886307394974744742321607359492326374228831510352623027748920943408056240971773694447664681580192239452027995414458189740671658086448042386669651359392432470485634366395475929867563413036277552770972744776906250903099072246828251024176964635174501370457763834108607044823219497213765973175611706610346565483002132406427737508983791046748867746548536088194375304524200836030427373190073932392802903342309727737574227787990372910610669454987541709820061782039840998242724954797427959465663865522036013175231608124070904825318189243628288069850547003672326775205749261702564821434476744051570792442612900914390795489849099826048360824509188266107578934368363609490276676247627816629700131035602818933090465218220812180300018340100078444207196114674750634383284704385607104836539045503943543503449948878212948512703149381255943416876232583182364468698640368881200014340921089419050354778360104013881161388357176664333349161175278693333154876372906170802748926744079155215912184429735042896990199080134458783224251792531257727460281835393706124576017367749519337560548671463076331847578370387582910666148396862706698430228003293027287730371198715171511415231386068824057603307668401029421024026412702341715933143777246234212780520676445499314778384860431438748652736838619569366449454432736878384628842277054317927113992684397605906765162228431148620262603809535553612500549623726845560973169064182284892002454163287161116044655993916981746560540996810430969648193480320396283351654046484084901647447483154348859628115283221326668105627517808304638954940300907364288632734137197785513689638899771273210899766397402952720834393958603920596213698908541029784722612716881372085824835249652508074772459249312255443078654850417584112134487372604712781817249016164571619510284455875507104012276383072783675111473357577716330446331293541230862295740924349094990973122354485445503226840460440376745684578927846572320414508103437300779377393369763658966318554395375701411957803938932381016809993794564129393034281281506203212872130569419734221701981707368115685244854403174666573457741941356691238215705787073362643820203058186297703356683358876283040030632606015973296061555361377613562343192781469717075604873566188764849854140242270785484720639755126148236950210557233129730769866844721449818848928847897418912857510741737257779042872366116190920184211634961878150496306502044020450984590817092470914476000434618502292246525922728481774536567488853469794834298525136552397398861519001418452853072094807700295440012959524133112948604717725645799342762962159938413244211822159556766437305429808636934423112189319005872304246459623552864157168505498999496235825639723848406534058897030411742628600929338253455857564823621578254589175465995913436324631505244567909800470637533413655169130395775612721737484727164886973856286128018822799803958076267176336289449422059088160592385318060723210469973098863444364999669525433381474493697996866048657138526205710894665733943126794636585262199153359534587013352166027737942830116411842623901262975284746783854034925519656106721001976858749309509482469459827064645697398554795390392246755544016038856161532629917586658260019567664971534962994963287260423337696730347800013572035134227245950401162834532345235618531853320645291450158111957213093858858299409108045753716784629655003909314161089517708405073002169140227872483323130307863127346859179806121447097532664640146900001645866277904680905482623412383288988975390143740734205230643010157838532848953049489159257343629279288060589586501769177554081646410298883754537512837632955736238160416141143744416777721224365427325342824205114484412223649261757543690723830091180714483351899862022759614359670584835557764938851304196914521963426710208383875612236911105571445029211762845094633594416358330983478472445683119204173658832235791701540195062741875245227194498326924032647892138975524528109918346647603916116461627012570928778070115994562098098983410222601542690189922323612963802306945449522730483052008063254735891894080609360218753297780717874818102627874067834442986748631416848962310694883092789635488745036362018704732898123119646300517810180171572784392878696554741598609526790128842398475713765649915782211705374832488005880776745384853788177059020926683409963580551445431472057217880788931354587427535786351000637110549985181011988476013532131170185151676657437478025207501655913918610572095376566277203922328153888691044389796664260448637627414471226641484310260466050483495862254651932138911653237434712935657034134734601488488724070539125671008244085480271746456050287977910344457292976441944482702129388978578932652656155275200435321528702180871238982465622923009045788314649200641183093217959567746335237347877225779622074740068807344816349637175197232528884383509861322357292575384538289144047246387305074396372878272114050147627213708021614464079785118884751788954691137187758671121891866356859606667289202863284211496864298663494243454595618961446437518457074839752964824086211405412372012330822935865625798431998539262539727911744536280275071650445227011603219270609224399683206860793514047695853346311303462536333160627745236753287738957882105594075566285962347045705554463806977939578109924163013974471379294689567324540995217566640775419332128321242656678143118303622590145992678293516187702602845730084437260850044582613365370327789778421203868457791139255984960560077803946914632410298459615595761255866335064470718900572480401273022077681314973870084606552504268938158829716053733513376204169739141900475244197507296546776360987758494581697517379696414812118467332922884760893916853277917893805149761484907820299539706724994535513765565671337265169427246390053531664896722003681618925365221712429944028865664385420274123355648345090220268209905279949846514809517144877661176880040308041142647358135296989354625037627507576246676458369479068396595504074519457568025328934315872104132601480984606888355088192195794482900382629791834237910129364669335085013493095762570531718558060594173149391505296207523889674951318324772895746634985714870717173713207139385606798832429467173029791143024789018691985252971083266793740478461675314617909749824489540782444308502300855991624591240095411637369511151008724188849405211022662092052129845811404812533133497885316437028969296610734299000848864583995957347276697045381683576415169283939484944119679863030708745408713276000859507096649419941938733901061905327396690384392356244168529683625115474082544397591760133118163127123210211442533181716838406094132262826230148265382050780448277903548863254593267083140999880635015560651125218654986734584722684917986414030015456283790310301565463825526365983789690107349254151422487778557354303538919481810200174760471030964275896052633170881804908159994610220633267828669589953622455243057424826362378368630150380417268133752476483117236541497676790886435065155666167259960456617745876691872822540660410609681484092614944689670782696090592247846205908449714254763953209983650058663035461984966532381826137157159136661223390339756121163414629026392988507054503615648018128126052771087192662901774275814335228115702890206432123086809869041959409633875937723087310019069529522568369088671677260469810058341993917809703574961091228429820355678344097487578391587402969179242301155830820963253516897642692646141221794797214551753121604278345653728583695572513288253906551093952940450388282371675531237911113994704751404650190929943167258493659207258185693832783934568677908085706121693066493475182852367085786877314349539277785683629064038648869252285091218561295183842716581824286260167550868556047310967464174349325669935255007227957811272988053193423230613543729326907880329389366089783567016871132157913407732911850610772832893365766801241993234809790693857489339365737873622745584683431411224715769856814157693470036064606422623207315802886974784155017522186784394352716804967045854073327167935628191852997953014377448109847199259872770494759647190393500433232318370409376518673301231960228502041992333916817822039255211692602652761159707451190338989709462198760118822887018973369257177286681495613924717610449087130173254568940006607405176985935603605226433819904790963268518435001366495890401422111369059674753712709577915411756966932608803359366098047686735057548883744283993637358782338250543971644107041219473078167535440801277271136067744611658465491953085426303897431077737164943160492133261902211308109142001963911547192332827513215906106382069741435179298636689600860193772373468565587012762463120506003130551112935281542600171284695271009235277782759692955862550587090595198774440354174729328053460703444590245127799999593356991168513098429347007090777577624121131034545372486191301118351677309745260202281917239308978970098563253042164418926017887755821241460736401780386664252889996864082223859040945776185518470718131563196010683987228525238266797595122377806638122583905940377267539541952512876909988945184639553041187893087070301650045108644450572080192811652378092619108495494823232016987367537225286684285254318192225056468003575983158439861529498296865254320307495529872435872510314479246074918822714546019517396049948241683965994806519809385574021933299548214354079921317395464777817223939664903424934524913225074982684376225038525296258209896325058420622274252088973164498613112789984458747783866552983747897655317890715612327845744074726743557290899576708217739324790261087448883164605232118598939724652669791490783620748009264460119805542601274094682567075100042004986056257165436869581291053186228743851724408239017556259845107736126056088994637111090204019317312199006809936539438480198455205766949161872961488142248006349119651309974758890608360411648656683164657952728828310324753814512508672303499947699652842876262452734149267184046611037032465926407059821189480350244716350318903842559008868605342251766389149533384022871000462900229135916804510572217629100090368073328004860931437521644972234555867342477500281467204401887066506629688373447448307919728166339271002551021886383110012871623765655349058199996481864128850463317408986550183293707618973447518995264137087509294166112642694739505702802889288722340193229821583421548618159186773209694036918242816701084586084142310541868218722142710170406791804752082022723237510269818931633123419280482501750500522225572048744799286346089602132310452199896299656691912951366028550322013013598517486362428305125389099533828399224086050982311580069287340546749016043599794413165265376384862792597492845527100062154627881485000543058210706203627460714911482713831236564567736939663811408013041174057642166753348099186691439397498669344408948717972329469870124951965706109073045404839350288294965164259634251730352640230366408101471718446579213662082059346707445422109951957558995362114226829399992279657815761820581187812807825327958567005036731360728246073837840461471046507924465214360939545935611332446635213346405344639137720141876868527282415758974377340866558289456296404342028780479275047513099899727742509847211417574954932826729037481976421074973189915638247612475305154149361936087241251875136478261244809081304032894479188381943763910429156202577633781115665885249701910641098965265055184777442724818001495633205631097935972363859412389386321982329529031885751361977524462452123479020159715635977608702254382127574877884592039426432314521807674984494107464848414272115697173913066348259913311958379031596358592759480428328371191845458831464722855787518663793003253474918238863038495566863788195463145345354980323029019106736674151656326226225548657244166133978269726899110895034535944697856132775135195869209540586945427624739261525177745835310190654096458489448760071080435140079051202357001993720552315487129659473776927068792919716889397460502547496051512041565382814770255570638858176626010386144443568146806880498178932595472531064895612356622381247663543902891300944491141771919407478640809702870276067077877088429708815748868650593557824022569613375363952698730572821604625201139676292630843170477126539122322022093987282810523852451752410810601779396943292610327656259854983851630127916793622774393523160453479169801324580762608096862960900424028169010308174598877186773719132321299314519219788340449565294279257262509973337641780397270134845429157777041032036581067194780710077203867567905860579275216109989618983097004051695845038342774422449963194280037812578023982211438423349589142146389698571301347590157117149784078591066448821032447653160794872601247530813893850010763396216802506030152413124890962671190400374571939830674060806960647329258790966463429269026094755250084055429212823500150471737664785666446060733782178772700301722068218621292220649982711928506014541363217064004216738531646424900678825736703548091396708492818663246237700233043257629009831329313974086872142406005057883730496927162995702021669272205167144632325187801431570491890656070408847132235723757558234230604785338644178818565521693411130793930893415084395362248978250438536876163831618016347401552223287928037101968980112757002410482879951206777522930479237320780509245469043538173627935245310200089377319934477558573588718942950297829996361527745030752979931397564626498086160814707991383643418095747186580867510347042957025490518506597081587054025885369888269466738398830849905323201906223121400913674608472274370384066338333405403375369662392906046546606007289776203945682623089107789789856140527741783327496989799612206639084499879651319324514107410465868929274229457720342242220078982187480300137352939082957421160902061657854221522334700456780749796987311697689598625434579195514691106625252839756902269386353427518704174809803232337320422034054534525057096396914379325099398631622074376666767177090414911301529362026242203032770642620171701861126716993287818240109425025444615830907721894293893350173308913501781303131262276222310438304192634882483856967754335030038390350757966719569534294230233896903562381468679137096963745733997707645117035850292980847305979690957840268211205728087044452920976238704961109176052984864787914062958766842804241533625999605172830016910719914268405281838623962246897632544082980092607527663171672811326816250798900513920415817780667032163112883584375640501786944251828488220703444026918025762110455140637352290021347330433257081295299176962501775923712335857589848375092024204059900798308871316203074629296285694243087441989272335437762095459766768187031321944676353764014691876125439373092828346598950108643269623202989286346471765647897705624900361949765990232704605770894519977885389153493519097211833310075089812040031776268801055881264586047419596519767932851107504484637140325708339426710681602923525322711569426241359033616962765425491384553054926641660298151947010965031994384870087485090198933724977657677678383343869250196811442868846254764841016843096173069498223672179707220344085318508788820691387219859217982175504403358021432717590385961759629011540510099907521840986535814064806352888509539679985279883017708430705389134547238051089746575499829536439613013350364298334940162283332734052314178039443407258306036342351226863468642264574940626182705009902817937149027497924161203930100162793056023300880858353864919237562659361335526303914831430854384293657165407664154777278350255704229332686254325862548431463817648271251942071691656119500672006028847770969197649557814590697793107176769863128495537561743619285768917753003385787637883911714451570464567399964562686453007382433659753655390951351517611670892370039836514406145899754286330850019009492925167360246894817498709169055252524131939142850249305016485917396108279761721667596509906082607255615934726033011189793354003309197387018337527225694720894481866966571362829656453113250463243622730081360725725006952230432099091090442586403292897058433382778795057898671283066229866725212180801049291951027098822089785085851927669912241444639762231081294379887204631171380639119268323860226810581781799629493798411279798141811672496312241460590214856575909055225467704657308080503034421820950352698698385370056317910087296239807698882627785253965161939482431548180874888648912050828259714722108543808970606145323795462327681828297737259689354587043564180611357401989069040517557185337006481468774652016638646148706378514185541116113269858002497473153669694843907669993568774307422948593559451155640907615884185117340649462940860390127990608715277977937421508704558282539613414953540905587555892426177660026150512159267251673634896563741778984030312835499886884175004331403872021066711453967813811529618723461657379786883837350108547738342722686855333036794567937780267816092257079440043423469910951532623829688166297969304984382920091210835015031802659267290565967571469017358174461069572025152267046867824259195481114771671389666971083145470011993159053591473909036288890050175511917459636529074057353114145358321138970201657936849928510441525683054140544322611783069310147151749456765230438519209579112736292591069362680228750846341417640620747485549665642545558871086509444767012813492104116789810546673570706623594645046250918583984475959601383835014666977997639700651218095302167650047017854355163196096837920662894001310222822567524402190756661608496511319108532553548754991638523624774214631506116556004394916010764243226539481772930289826113703753638425062410738668529747219447588921999012371838481503034774780409676708550168276197963894016232992436345685146917207288504801261029822122344872046117961166237362131631706130600898803661793405824678457551441081242218812357036268880314290338517942828357483425985275119943954986915639532771671634796808597193492565282753823421486216826433539994225920561700737628423034929724282060621649433331890009421169227325144285364862211745366240484953580906108021262065227179243285516607980495040478515122697838453968364466534170563747037863179678949177313199122106798490142376058486053816912857229044458097459681576732644061810641255467410611977645311655669721194360299022373757753157571443731618427492566410009646819127356322818508793207146911553677594919696737783834473037778657388162466816664705285787530282913968697116425731274183697544414056579365619439169527336390112401080987200253285687448367344387053743709918532656455476622713885261701257943404562377146271834312616644825070981938595135103800929207649625564673461814465852123927035613191984594711983990197915646433627121045466203294720319736586772153910109994843762519950785664055222473764729617440023489398315275186249194588323993371511714035786926294609277840256112715402757766302229946677996792510410647972003680187001155048609756564072279270461084220984086112100407361343042788368360048195817114550321488474981179743400508804072783304839832247254518262750532109854956135838608843795159203483914184961904861343280935999614695492407726374903489967988287836848079640580227096203287205708818454559451715610481830029536983765267800657406789602620476864363146605303823391445505454456567533784669799188641559127587081453459336904355419095927316925206161309165755555175375548469746550718426302235708638917876498168841373185521450311917480112483949139834775495163788723098419514380095153111900590112048146595080219326978318561950263317295094336870911864680464580275233604097258657406137036408242529731548303814312147470413264445114251930137850945148747350130601260895315861534807792099063583830473678354122734683631171801353692973137292070380390489745865239807138339732151995797462932550948171789212951985746773857227173975815913897907511839796237921549466687232325528962408850042797400065585432133571488955256309861195002512901108907001215235728675873827260001107419159999671622581879578621913009320512710711610241217591671561529402438733646087184703096352827111945362689695387872137788993098033637394444679457687201631745542377447713150127800994105000684991060530784217839552760101013601589185599438745691629289322223005581961644364422856587391695115745136160410772317604256679944513722775274972786387120204725380893137600784327904738135564148762130617788197712862751096964792778161946612630823778661699455056759863269456495615507783633935242699846444715861580195648783988082631480570305370966473030488413976089229931125125422714001243364526557837404987434303004839893799306393219394877501710757443012280616092276605785658162330443881717299211274952731825588305781924808683625074874483738243379890881985403486473517003291039625391984589746030683940855631002835587617553496956506648188590294166658640782716142046544844815135718707685200246651568712941671737195820772588601521742043921331797464413324303845071108700379978138748713018816530191627066576918509080003850443251240489687522518174802952261516758127142668826011302384969736375892938782258933262902234328998641035345634180297188944695140547870898675142501806568813481979806900272806940118296295345486734698976152618724975315882362758059508657948644072561237996286963940201851050130561808828728469069367865800601520923206520908358098793444118562436316888582179334384501129573525560874442683744310160579537315763189001181437934948435717636668902425876452967506575789395739143601862592862056896808957619222025776267948518097928086085041070737647859756510558515286947585052208175864167266696827049795145946320871241477601855231921409926405049713445463050320440054438428486205297806794879954535003637915803030013324156248587741121135366449115401614548666153697703731315262416118609749200823055830546615800251615438127893340497227344195327405548305171878124552592338460811108117772068744619292015490860735133431426088541484244847611029789426367375443889376552889744543592751155182527814047021537811421054302033343955137854524687985597550150998142999808884574655512180721361849890032960607894198606842462889913325724847593725017108538549949282356957169945472271962587342863038475954204309046379774429929019932975337896102001809132885456545099696428176829724113528934706547572730970021070815088710819355498060240023162513006657210649132710722959116737706628164540486172599098529944840733724790170262584191108337757499139702877817557100877728119748337905833897832279849585229467265953935401720416218863484781735691780398213891899074925398835800350026013047458442660884139333095679259981867464155025720600242985868974390289032737837008403289250301487455447413516553397741204720328113804538606146457595050696139183414772944189032475918076633522337707325272322174406003255320322140724455543829550734010549752782401838250463352406402503847154331605843400214262858449639114316712076281955061456165019901065674824576420760630390027677510565595653013865606714153837416074578437198508837931697846628237769847384371640214281412912425858725816022131391580272326344291784260075219063748867934579400168073321391523521685319250432917078644584255554649794633350937129220251358024816080347638218405478537325441543013805264295772451543551515038775232542108340201961215181146652244955614502865093386574674213711298982700342493601578622254096954067505985206517750099869477165230893464543515441387909659659307981812473181341072005327941494665693952949512110707984734735284323651668009507854765676204148909570282379587320753427871726066476207949116658191686303335383310109927304731055799106504897148900645968581670585010470375754762072709771938643275089758650974952508551792003637852591759226929148474526155459963109972584464157316690585538346383789265296570982344237034338668202674063603509294857681512225483653163024294145974189443418047743065410004182172096369243898508032552972566706925599131806521182749831468394598999927757165946256542446772745229249376938349925076091010692306257439095798260988515189489700066640949817463413455966925050923817451173694520478999842315755402238033512467892836020706347112429480874130052930385610824976649791699662171751322518381974471066930348215861809268108814782888046568402244162135932816400362735038402706841769034013021369213824225971870250313504598951804282826079368549419270276937046074742857020380102381666096758681089041463000466069422698397097836311457567503619690108838149472908191648950798165681568630054024200175650019964105397232780935606917032667173093519907639275738142059887671189839768493899336736438998863497209902401536529634767699250572596333272398522725074592429940008671053990698559180695000634320904101622553297008342988464063551644445063619643327907304707097652133410145094163039882168532746503766747950643838462341825201920235658927783355486668968769146135417252913516356313893776163468583376635158249833586299872037561793374773725818444445766585745038109513233177210335512971916931583590524144580786066985072041356742170704881249228348395301599312159511383316879269394030905497358123227694496462785856400600452512942413128630876839053704994483489134495479323148205044100166182565927288486998596842746832746665651239013012110263320663780170803537958261066379845794477117986595074756777743126488592274100187444816533900065050374344096344505951469761148851088172847220492688381904098660006874172961603805965242092582209517378928607131645633750470005581546740339610566496251797438574604011379906980187821747599037937025361922125291723506325954531491513633041060466926084234755705580407490187198329726130360550957365947035655765598909075245567456006990230732466561261875477176475634330207932131612389983079381450663766759919378871179217044323641703796403464827698665737962314812730298932667176616377976331430594038009017143397237866335103402125539888997575869064330264403763269411253654881280584598313291141938533701057958266753525759062821231387507319481377905365199583927865285362511695010303519887390938391809129365640804509983838092280727324938761264175626984483847411477919480911559492527804900518834635302968315944320242358012933296329641380508890258307845246130658855746907029826514724896929207499154880463278862720452755904889079510494309632451197457658542053626823501476835068533716332325371009582057480608299494908742560415765469794430595174584937232723283738143632596870556287164869097841405316560640298052631498632382214012219528254242744733486557437245312403945157821282940450592856112465903922682822123447527903958659217219891550021753247109946392291135652439393198500141250735463998346158246099272899026423890952675094412486675493987660454410224828950708158562325256401144039563095639046142962758110621194672492434202909462940884977756466923884567726370415559670374588112500205138652633764050709349089466791401788337461342434940557450958251494432800388123375677790759113766230364858298321424024437417834533457528761796987027606322031496822909122056414599311902463753668069436468226110217793130821110034117135315692118177248368157283592248199335030239614825797586090472526006052857338164301570893398930353081646183015194262617286142630864315928483189531206621636721469372149874400317759288430951468240243089458879464706738247151983266788808687567251458225351209399767976143897076692358050504581753048213268540805707484595513923622277924220036006882113108797256763631481568340104010516191960061021242306055276953697827424465294745077640222173777692164587318150719883276548721198025584825979932537546313509323468485166495691293968820981334814111194078007865659355406538527272189303563113206276872702091329334188906371933638903016794049607346860853445322850153017028362510171162208596302896826409141847777520842272366696983390266768476776844981716919085598528070061750053907503256047880624413139385544354545077867479130204041385461477633260081953384861973977875600822860710831462072963631292697823730767025089688569714013148445664100982693877263522661423024708442848757488051954191506884748905398253064392320697511315392197006782830324867283369981803899757626278535197243719633081931539986136126038202782593534700898851457547827786526918280752118768170383848995471718000854487033047019952755698156978255389280210211902098541401839211476500948483524475170016054749104693572067096040360933165508876796033946348552076713424159892748423211815351392766409528898503702619479901659201150982814366165863606841567996554237024276080515315990699434650148235007112419626798986788966174426077647656937256252855037132379305803545779435598788582445320583698119109654437187997996306203088911356634410957927083414673394959127904195549947576543575788128422439077222853749482593314447652194189543772454950649627093877261771510129368821370590574969689390981498082074663882460064477581408639160718065520085174589029290942128982542167534887678414033593624955131379812509791931226871574326207250319173064266784437912061012046948208245217115733221721224121226292891908889457105629661517959379006225908080553088652862074123043655327370743409524948889371562222160185644814279224958554169066812921893495879181650864873751457743846542021090477933922522210187151428459403161359608543323261102713030619433177777443355544212273617659865266755473460241431226332282686124679420792305007203516784640329315183789585320250559595929831349410366471934296373865910137411614842506244126968171151003857479215652664976087725278112297446216339327768171791120248460454378214896151490558415388888431552711983833012386829268167508280638199919065869466353160127556815927173605545748875748254442249912694159975405375500209636858687486145024043737674900514772208465167033985577310465283280220421389065018501403273495932606256438541669081524897415787565472791799500514608743509384148651275065122556160934140838575202625004131480887299229680293166554621073614054713208892106883114622415100965476246519827910588686308340254201409500373955828901796456510994369153747199052010763483741502686065812128558343951564257989471208404710030326011292891846678222034304847139009958915327793377610751577906348806797857256562510117587130967002549095287875843568316711985212248598639804012073592742802557215855440089571778770321340367016038800691164491721011255870913007050151628462049315097696681767227198689715673755558822219059039090952751763184614665157415221294594343235892629602912881127918402348036198237811665155060994265691791756850958839853380212199462852533251102655740650234561451053155334082874024575270071509929595439691667344527425474487156264120860227553863568736887076096487723870583969011433041634299600076852396652261501997909804224647677861742954682550523729900144677142071325384778650932837266370278526489546185735074394346126900452556289501839139100842167134112539133712830247477927410538088179727570267657690678389773455290720678517310695142494041924934378207889687819307656356552906849325854183737175034008836312615145690987844370634385685043501540679157298627109451440293370210475859935581906529577163973163315720908812503759770667735343633213377409142572208851377184415029876885572150940896940780938586078584374452535082980108899593958461795300502439498196876527002788802582181496181751257315515591726538043065882940605347012859199748485603165208654075094505084837448329035383612027084827311535814837962474821331939918626256594918021779943558031242001123778429769375425157001630429659109955172824146149501452921385197400245600003076235224119687341569824692236346893219717565015738490207213512201748165119971202499979755364297549064442999094329064316230444684623295835647581718713369359260756404042410256169065134080539240350864532747746422200158384005501578178648698866831837030233218609442143562096710068257500980923354357304741624959384619907434371573556041822714516298749249899069015756690568277612372703930865350618305164741994442480568128227557773922496794519527405032850230588549933443389008738267528527489238251683728874289609214870967012815069144431404996756659983504587613603489084500141759866169139271688998549874187185688726736710684386566430249849994065973078336919125562072383790057227475907600888630981551364953633152147104924575570027079489488003729381864997680412791694042365031550791152511726596456117581921789155228710779760199545308428230363449167967138291058662184583299883509021511788868162735462444110035830351402954249562828392002357737067780929213214374166738419340327837918814106593068869867010249541225400009696730356320079985603581170951370459841598877348155248462625063739608980755213647013991770950975645955602446116292816746634208060936839520084146055216925135234043361242581332797476892392413502184352320779813126768430507843523269127226930372651872884539044634868260378628569578534549715241248898916571947789400465530759706485061326209278726313036821233572582256987703097466172371433994082417892058119184440583542254062109060880891631241202288413779665765398524936848898728877446828093166404002670123035583227513772275999286094274233391286739774666009187314244496014407331525799187585565665925767290841166878889578737569841996302202375860026884417115205717755347755336957834276200458775404354271227566786143591085541060894772075764055499204986870909027735925857780103713850679071272078588813910276631655471607218990009178583301667521002862101372506202922124208542259111468575805497430657122267209140914130130563035400193916378484244634909602460950530631522709741138454345112146790943927996406208160666097015743279169943907650603797557079563593846056786126891772723772647878460724122180824744876851470559350316224857479344975410468241156067952052021412477858185337511700596993702599800632776285208997659241235819575704015359268492810927538086753587853756975798085160731011294206861084583423840759929001209192296029604744915082844091291455497320227384987813073617143259082053818158867380692206998727964965105740953304294646003625088443040177577549256466849457088430674545158886736952490596289021825408579295542437175957397393798236997963831466761397110206740878841904720126303952746906530440544784206645758777914884920914251392257676446965875764245761951552122785647567904785558899802563167627716044372930167073803686255656276369554918590124122317185459390800298071376455024565615958651973399981125165968923208724466694369286531617130631235296754890258210698488506379517158524499138456392677394534453627333878581980516391824879395708406362417064709599271548996415222180049178054707138580779730025138647514405095423334029906449513099601709997387687109820628910312580607625213340975927355910162312209250324087763233052267444796758958477053290361663843665900057546713055507427328924202241480389929031983931913713920646783920508549511370920761526379743261214096695414871308657745872005955206815457728154912140109307869852411269463010435794022012812289182016197665354684025402689782286532860545170530998385285100304960688981482023684174525934623595402888051702963491525417440816102293420319891152123520563872934955840299987002192407045956742288517082782496268757544365751833049640588195115916670299404584865300498518254379543175092405109999743551593176810104501591839973715684410204599014896651126104553837334937119074019290009650540825140700535340580787709201726832576389267964768051534859846666525736503707418916729878416144969046319609803475617742461785583237631498769846375030066190688492261504823873879796252607857438051763851558166887301220845240953392641371034598820094534296055898550638786497834207430811788409529316986441862130783462365362510768896670387440891963499306777271436994101918666206971123324764974669473363615746100591806071043549683852453192590441985961118526277860593941741325773143297975937773626882132110114487563788806296530867051004862129089877578847097918309154810644245491706302847309269899195622598816125012381961277240035027365315676168971959958827748155963462384789890245272659099131637351307583820919478014572588179805251573566876720937990235630411867038256039772006901577606286373118892019337148458291839094937315615375186884914182011156711832442705311579294902185908300791944757383260258307320594948583032406821501328684654617793814412062480976860996650757502446543609207620230248063831584056630581126975888872455988730597707695316216663730182286686058561763733089873371566208682211745252036413474652765239916157964500815994282169207436818102146874477587715258947008020228234377961664921956805902428803802332278731740456334579834802771819608341923313603982655868839001111709896240536371447416241983443821742861468058252714666995626421760404717887480349515879081401557541165879360904183842080915414121691404854968254767302744634271099260744943314739460923563133270298643692363128782783820237059944092540482180355509282017599197647618485878857075408973231279632476081438632305418132283385656498467504403371183803755207091346040967351153183891301958357558781177430308037259026436944050287507448687617870160954834975740038339295043633546576469657331292238800125063575013327852616546737240145752063878746276445555847955135584333675938028156909409499759499185210303611522010948201955237689571351455599675877742834601046731444015323862543404341306469332568203775756326263191344925704643283558004955902765009217447668317893264240108490942818960352323749596361706147784149720732251768614198258240639581277649166191405714086687023826148300934839394125237273193017087968642465715718186537624626611311815036587796478079852997481581169342408131588860720669395775033163771665555410910574475697735513189715305836087400214011041087293551740083333430389979958159669849617158605732908343205565351688450484104406877425123033379414785793826393024122030732944909886245307655103395115304568947807549603447181790052044786399198729350934652514705133202044234424570533890575003968633205425516547824316454857033805230217482794644438053614424293487313230967959273043931007552576262008052892822865423303020442668226888606592355298053605000866032987705163791754320594289170395763961777694568230688022814061513238362282274944588945389840811281848039855690702535153078553641733545739258700666496355693753497946655100231142057795596827144151161734235608135660483578612774769080539351528786923267509750307388602880146497722727001345472222455238692627700079220615257751823909108749974437357733285282236763964636984513944672642251574281359356512149641249688321520370930401146011448766600229258322000631574499804255638581417097739538452343793204476809495206515980542752621946046128274958802522453567962974256573157010118962528727863580064281076533328913072783285563236427007186855354266900532436332935297897408396632580247740708281110514581413951455042935323917217430836797500625895383256669036232601100477146485548495524454811928558173934770490946551785964140806940372581012991540766418142940683832706134688273258789145473685057183531055657562656707677120512406603431361680760661380660951689937917626107976247093162949996653003172378909132055307521283183024451309425266401191825008899362860768416513138664285373447578821743268288915605177773135993483934237086494193208364387604637614979260537241767659459570790263299366045222733540433658479017113857096591006585919241469310549360880204574412310007472615633812096490446716794040990541635742284033122552083846062723443318003347367910445611425352280220714410432368029069482040209238648613267041720074338489230995489780641725635000843011161017351688955007366891364344982279828878108510031740910469900903671562540708887482678361693417848189246962154344501387013943746999258877880193654740773966251069093744376990726270106713184280432177357605434749406030598434932724749436006339574249261786616805320632823061828924947410315828936967731312112261557480448941320919881044407389391647234013691814612341183528825848241951769521079395427506798073523608831071306335810761102711062563844598603613269364035343925851071087491900973217015844073443382167525945507057402660491946452937650529588587905901392863150595866464432765264773683575142297145474975621112779648335571311550938654721566277152640298750931393829199380624505540321503737919601344247994683948091682723312760385921010725553776085986396417631323170642520565346538597908829065898924524839928259433163833922112128561727693730597766340821542700353182966236122355762255238419399840798984986769022086914396208348310928491113076167361406241534960540197570980368327421397754357378419404839658697714636108802307405680989656979324106727626451844665903793460414099177154532490990098475426614013423876754309952002901083763576643575766116411322014795829432592771610333099358431498421126548061111770283245773011064767625709730603072330348186679554048560031509610315018216382151403832964593277915040687567770858038994902960264728635516730999561559927509984341892190356309798573681700756834602699670841742325892494576854276731724104234787959448961301786463861846081630665648485719569517057527116886846219721185549726698958465083712999544320329487033667451511492461951242941069029893193645860517212842614067344921234295872432860395414490671537300708693039270195894310930722988441646696548296156346746472222285023739906712635677866531511777086993303599310216552895871226871379640675470379918019086159791940944556753612867945973944101354349827551062971778202182139123638697274343132248727486831637751936569673099095428392087224525540688942452040845359416040935131087093367475336729591487433351317381441612399338043394331178678006461646054320875376834850470899889700637674615842289246547985431054365890873106912167432717572896749726687082019897783666553920314582396847362005137715635128182214325845171081214964299981691741282164711555239638795363111758865789843288293708926490558190917179611616233504448031433217485211164585630617246205409305386124654462737754877817358435613191985681439770691923229218703507237663909334904230319652151521394584553966896673943928300929201556488927233310410418714598890389826771661948284159863272064264388952480876223097148624257613508843347760879224626135384779084759327554104660547408488956999901817799008983360484262204068515822674348345222978955180738303557617539259356222843941183082592615377304758132362635297411480571359030023226286286781430212852296067974412700465985886298800992938773261319987533668732785301756768370811677095208430963126681209019843685905231884439342975383604568858757778083198760381935128153783260121311847967585685389540782715997827920189952223894902150469001186682483060492893977431670515320060211199795548110276588877736820507468413097936613094868351420931648954244678529312954392306283833635383678537884987840428737125515718487532688219397266934410005683219000556211752067551815487795794583564222903776901239655269954200037793231012784986977103402392528001714057156577488839577390710250850468275559545639057660458959742694645444068242894208911595583333513585358467620694490708344444778191731987143502285829067660500445567639434503772541661181670041812673778069721567955812058183744372151055790050625153243383478267168018483048365545847562307865173543932397080652961574454231607212851365708909957566300450316497081901185590826797383975087276109238985887924954402032577986245057681785416682323927137140894238670475066098415839746430467218619861410186620331462812118771002543226994696063578049930851582095100082016510484147157152102219279617314794227976938376713978923628184648684148210835646154049103173697611847476545324737970705424122033636197409197024779597252745951525200274176926730667679531504152418429961577407100096990006274881536839829482951136317423625766819634495225880563132650735308311721142643444772621478769909101574641929109509111721270343632937236751823001951784745978363079914065000415536044508146652013050365827863357512019829365443030284743588845114036270918548628711802829511628208023427898098662787712234764085928302400992229908320406076546884147998429895373514567209237002324882161033196755127586442249282420019185179316855549681861340300787358403696105630413513248907717224469218996871382049980681187155733285464079635908655799078199559935323499535806094865063890714670873299650071855407767429890229357506483876747907048443498504251163577468755979298127080210842400085129073015440375441353532240227456877000295088872603317449978327291417535947824178636543651149125857247635256622009632383612621449879320567387820098661515636144226490447913057347000620880587441633456759606710352010371311436207673248733386512121142371314038939103238435856490966446923969123017120210268974028173473423360886489595568531592174220571502998084544436778692957600353698508140004314092633877940016701406640349472602081468382534980171836111753809462868955769633753023205247545464040554294959753339101473470721413500852168038098996594193613454790095418245805669107104661432561439305946932690062508849830348224732963541867875496299257893293625882625369871745193397825759837714757493477254774815093714356322027740912593900459673837187792208123929083831405537831538195679325506635204057284184514694929611465488495573478553638967608002473215421948507743042040018210407054065439196139234093313333733578779559874685220673808438993971971113431926210137516363397541126304782471758367931947578190946423945367682031705420626152576195879833747456583688103823142291322055351132196093124877016718501143622310221135517918772979545124564047771429943550865036114978927357008984675306151100603845352541398036535935284491169541621921693348090585927743232828295004978933665794248637735950536635560082838086714858406205437195062988757776893726458254845092240604184540036110929384730747795004541447442547908094415432292032526534333780773312509200493187356941180897508006098109833590154571364675817865451406110109445801299812891898320927115454524304885389441257910178721162713436783211890846230979732298705384243415145474593102108402069832121193942308245661956351099136569235887075481542149788943230071048685893683156547522142786483620070722250227061396440933440631431885870594520070311658476880176239410683723130369835286146469926576421371834881045803662672033735988625344471890863318756061902258432905142912990755415917759286402959735297960644877894155573505744108029703179067797744005529905080005542491227957521576498979229681212776149945466241756564299628190932779073276155748057221403580916637116712756621486021517878064716805461200353805765070921466029944794396069038750106063888738512485328156685157242998710453237782900138994306711134787372868382431715109216704621479667853700420892163645582575381227915522002262743228142532646988149898367261431518235439741331101478041301278191362856600759774147614515865690127693704079765788375838213921899226348384261757061602074086133464573881914499945223070264339930232663002073086622708843437495713345790160164958251893772065005337224425036113386772409914799396404504335709197700266642585113957188803598666894633787950864107213456302350436343254447073968111323767749750024627655712920711727282445990510450484451036798478376003129282932085589535050172419370677440214792829730236419825052877279967881237225341052238755730400838716098845824275761631643557444143866610801529075751538843580427761516671860118046339746174725163396120254826388540865578643258648643863191973373867975597691911814889137450525006611040711512609586669164165089665889555814999949608813036733701762713834225077210233123419505641775185785183469160884947156724532598722521383107464156160410626997043227216157785539331289135081442836126255700553365765810263619702868374242054028794748025527933151705120849769419150248545595233668584723146156991425621665102302220344453128504371921246415689300342991240399582078834884867084148825299594963740538308257994783988483477042451530998434827260901396219324945859712136686297442229644108059162953360424246983070519923661337944363245535538817513216740585798811992629281046259516285635405095717500233604380433201207718575525843933099696385116031600398247215559025719238984308388608979124890743214012436875093647314144808562018456382912282798856677478253864480203835952791261594143338229036679113938186703659952853614117716941341394433686102212030462924631069471459088878521889461588488882191357830331987005196928842504735151594654866224558397611273610438516466356997922117386071402627581739587350998464352610730017538157452353107624272903341046169710165039062129511480310786895233353705545567450884267039515656603430650837122680505463068960722193090976707982970319030249085972715824376958302962647983729042071007432844085500962062796266352664764582398730738542450449457862955400542955222282737612608700282851079279289884594254073785487572953913107646050229265224647438489390313546412558616963913702220218345960134613298252247875290153866617354856631766572088159033421134603558112122971170770586253359500609505063313964744226214777415398088125787278351967425232652925806480929634141772425297226167172669371681161550861879160694119677147297077627438867246480356690969767751929310111376511124376889122389543162519979397050620192272493275296960049456360157548512130159667981575536520030422024440017021454010115747238493609431479298714827745314762246291582387977668150013081663424760587304049097349235730868842739773688554893641707534216100630957381488596859676601291615124444336234798254604627731444721952164461844916305343034873829559532491131823892277372652627517150916376660999078229135472322888155077450942870929045611411059581455839837957063753775395628536667381446943568175738734743405363904628180293568669121644878787922953370688013925052995353166036346071251231541921478649236514327816809297573126149628005796615614811658039803695219484421011042829399164195278741707641351557795495117007873221565033030027567364502230866013016887281875993600071800928599662984581367106860910887901572399263294971525446465644170813175362370759382227522934378523210199806249434154848152526024310261947518843614426266840509518086603175548590834370255456440041018040778112070829143872842361388579757095939427727588255347228978663794920131566210699101902955139620345434309756257567407939248391698126960692996062166131839339211498884648030808714392710050202616587248490909092745769504562154858835070957628339679941485976400845816047906678559982617793754720241663291797218364980558906008999817526475420276527005741031740638768241438278857216402909256772827172547341903743692056992475539390852995249762968406846886303846293694469183281215424652371624123163381358309571967007010253075563919648147123585478144171896271748073900066141304714136836200604582811776168677695262837199282630162490729146741168768134331486499953487383956529793353195621510178366882742202522202981055573081802253170872427510368861985046364140495654838662588805464959808313731725606045228166061749686631335818241747292043427833561124823800436384891358403861268154210398500056931111568673097294339937059448982253181010001299349384480646004045406199698410850478397910978262043803001409853408170337252101489426191260025595128596959102158415268625028845034518299886192824596930517922262904044827229702065287434481699373750620058930580082335337933884314152398546699701905243315542298707546688631775170001174355790933133703335030563467994139298108742113421490741070031841309692632382125413772837438822243078221463143140659258442450462419303235268254416133656106203642397985082374552707909746578411255382890593034798092046788659376685651899822330253425201798110950717507968996126039421298550322925477184373089689338667032318793877767935840187659345192573974442063787804448572924176189986246219229498154024761098431911403819744690554772282855775824972090556241166196096083576456152916179984481862005584334790948303032113209031352873692471158697046712791092157113317176638191435752184044841335656305484830354773329919712044319482603980244276025791909032482711479277381356641076227269209289787615006009381623016311865585225608986441266195862061630863831163005022794833993138209111390620366084008283255641890462453550233113133793278899757748396114034937831552592320122025199457447250502222258264395977749226671911634206764479003614405566890713074940372152749832957898796717526168730874727123308558449724037128445722507679063103392989965110493132129739012692875318742040274480610971579782040435421368332307005847447156198676217076240353465028474431372095627450738816620596136042743072133859739171426750128154678218115145151102716865864019116514377812501374400750036170976218838174727662952865763584957112335214314534955554028078132245190091013439446528161684371252382230123325786082019313811076835616858221317353336217724949739453308951254512502894649988931623559784459894700610065804505486437012303539000173781778804212542098898115896264639901769462128334132115643372222859711639460671037630231430122521824604922584452532251870617183240832816191917099438207324820536981712166172181775783293212807388703332571875812211378405238821937515262571717693944062854325991243357353353738659067008272205995800267535168495540669528697745867726683951815436299177962665831841548241247915468799288315283649730438125560534361665519912392729942380463202821529241442575791473561460653399450331088465923611722225148294303655396212744516087649336735154300663922050753392410477669265617298903779141953657923334148069114727921473129181486942944248215057524305299026374752249597271077098061493724866554362707586559156869584750502427991519556162906021013191821594893571551679364300965462913511895983084492666605983332921366790010852030516815335996894151163829216148427258269682756799941647724554971366030267376405851779374329195663534994602193763496675388013822183879692447456614295616337748448430803375482992087155634441440811833849809655735793859736067701916008406081179845724844313028847652011038866537199035888522167674576650243803377242831456998255024073653465518427831345047626041146145840179439921837337905714267413269159446991968018429317189871911904551581519025830858597673629584983142467388385641984327997483480170089748477489131151913214559721543702816665432708174172255769845380670564743307083546755330787722063886239903316494319251081764565535597291236495641577035983918765529708309653704733882854538750659934624076851430107196521935223088863437034954191038962324978362945812369480756913718952606992415961788026888133345669533424729840080979450455096892253176851404492589647661008936627952998177775178696934054691466811248758352987666414188206710132344280445880450826815428360726039490954373383451593573306903043555365286822710850260644223198828585777466116310570095715820471915953699549022737303688689973491245621994410764268692024039327382142614364788123527662574810400927736708331529285320321446887011085457468359956794347600862585676198828283730861433945691381532524997216474488741223112752750388253642402288668259069287425638842250895632547381123801646833396930779225595159944670431713963986077830039995125644620861615560904876457572861248661153174049982049329632543692846854396658641821015455478569056885439084051100469176178461126581115221198114715713564677972431301836479123343071509766119512897808560022309368699198765606520586281607701477650312467568883207903881514270694341408635585802972881379308626472250778047409724074599316072659382131146228216594377866210209275318540820498814008236440024563965755546763426740439737364168242639863625067512442796536070353035310562098503539967127152556029636086529207782788513673197860200903565775248529503641226355182048668093788872547349718139557139959395583289087294771896228146698563288418738887197991029737383090286884604477200598357353522866434347650595475312051558634741364627939020662645142183595566632438913065612369025129088235077494930830132670713067488998997048386318757211999541668629032080296402088291749086459826882112797040301753274799891264120559350476592375635852888949634120037313302998326329791845812453417767145780823887891395366986261546195556617506206103465710628874723545017311590552921734560075489183767332452289916968359974074536665431673462886829407514259648416447778410879829857548627340795837520440828911900330529271130182959476209941129546655112187509282317085534383114098063493101195767765236350928221360915328549602206196710730975304544309126831791074430773588794745980765083577555561760390402067434605496750070845001442728767965400085713599565227312338406815339263666032286544179432027638485909386229722460264656127678941847551079889813073992811175908669389286930105387436204780080326135784895269448437549648564664552289805571487410367199315898295085427337647655371950213880559106487855622315237302818837309021058313284049754329499119424840615759286626032808342868583691611676157272155904392807014895670540261946346301356905925528256461874388211658585752512405241337411778644588031895978949456455014394900237476993171600375564567104406643661187167104744891404309268471460412470213047058665864873211529222802611530309963521460101885344786468197626655076182568454649474703190043400910540026924856164176875620926791338884677305845905958286050431179016792521932835900437736447581093489530815388624306765272838205278794181105925220552622783253531826633389696832037523885460168382778151556060456663502147890485808658874551005180660452484281101421931086912149241884124033446673337221409715906119934554206755429655422306729700767440076119045231375825853232207330515719647089564236065283392438202717558934790698907211740056269597819785881843167424207051919895322825531247850714835473336072064079393479316635317029681259362750017524764784858215941320963184766349207167448852211211214805850239233307946726696914693551450416099244635372321360856346626475573496553802106596026771539133502249397904411566975424519358857023521370490560183834539614382787763450769544675201745095094940788693385608680298945134274788259125229725562886180376100522017736028411641928229644886937067350520922685279620434067540024950898365095668801721571147550145895512579294112800094229847028087251851774735718760962508413638786411338328454334902986873566795049962255496469165253364621702866197283720930693408653550542433659375225903379606692522992869415143693419018148523407372948250171114900971656929745229223142519044843165238159847755175947955337434951642352321891716611959351694835416512457556209512894819073852673942785108357335608070464516940457435326844710061444040280228802336268707210450756517174490051988920212787750032658881628714935311851667834439743713082673572077623395636269448502654970579467889621318090621900595111224769669792817106287724102942709213098268450778149144262315376355884857702980422623067783946366787276943038319576822983048388664688610000689034644803829928466260755684848211867607339564421506815711035955622305885451453557048260949467499839462415798593137823657925902908355018416958108723233613752239934384981410984986519576028734610530912625673434279970231521753328323754280896268475983377606109385347358368619392785517631837881555973019558733867528236581735195779530199284411945104676570778555019438659118673645155821585425932688005371350486701012757238188181244862472801403156868322934222288410592814313120211644712990704985020021192002096292328963468389886921802662695917688810412413000970165624266813779039204660172051145049573341850722850704877190482958888432657629433344953190184344416031612631264092040206376559371211996663421267221594400639186039367588314776248126434397086831645370022164118939523987398692342725404785887973082229481355498420218101734695412420826285055880174823403798342518153292489197539412574282713772263387412257076421601715588182121391978830540585626375800550757112313705818026436083425835904198467894091897245014853959588858177713120554240993116953936822113853397890201161062816732725812372338865002804302203507358323485691547917189528191289657929842833700449740750878469921035048634924569926672703134452403990416547780179868506412874217999214299231077935326583831688315683432597253119957259520102777412956229456994989701433991262601234265990390915283731878009898886241948587507679410909593165776922483897493771154120059563966350538863555271100971338319976709956509485644325073340239283213758296857745556350770025124452890039034428301452555663149522289580554408590307415900134104793355538183917955308437482125536353436553486032963698130290311874757139258515253929792751021436171228206892561722391972286875340888592510058089337254566078035559090516809338591266909891732778241494190945424514939402171230401535724438251427501986897720743781284012898176586168167039690598206206603893022482474705097163474425118258673121927842643764664130837432697559018169745260930222866310778914972611203050615308505928398281388521351394313163382811135360452776937122669128940585427494407312758088985243473091471357835874305823572191686199002587838249829600944181377319814902409138200822360472931551404445056640206770281581069186940979652938494907014705494137946690254616287845078781358839350463480287108969292454716813248286753863354659857000501563380220328063884211437330638154876672276000334744478546788603073540755964934187341288154702486249532711859201955791851636449036434887181063133162285948119575079820259316199882985760558812260722523006107695342712586694517822652155437635215691479688603009741345405259807368154000183766903316667746231765852680474480138044376899898323954260488540069425965228561570369373002317159311704859391453096127275152169162367058523479287972704186393737194444234775489706411222590915215655993956085567335839180812706762058638429280515414055599899336500474872460938937183500192447204694070503051678688463483066144267311606115525971835724959352946943656104201856090630545673480321681994927362310782868879919869148515944769574319317912962924818684265836451963714024845235096475378659462585560687966915860567256831947578344811688101268254813995439209458581730088077106482566632045949152032908435060658462023693051250066512729800532008339665603290276100015800980749459706826998364821352450552294355352381864495423784201247859659555614961877026323430669342856393674520430289214190820032472621455391588809582144783889400874031269773507604287926701794830329818813870942801593149335611405783292841720942592245561643551164259553962422689983396642333673960966130890755264765539138213093218881215691044178360085872746797273645885436517681273721367844963385289316308409211039715443565862867929289338662064713592365456309268677114663079938546365404022779978285674200641940473343810399077821349863152137260429848328145282079225387397886446070989478317632425897641180489270697161882582592428067503351676489108828494228210878007060473002193526927152610693010460530017451590796690256552529736364410908648162573191152944687843265203996842453402956986823728585340673893623446773364557380402483116707481125540941862495935620678361773942973737930420698152058143100855702100462410356295916943486082433461185063915672397995857733775614894729582321945187655523991760948768345815353717705822948073646013504310369364938825576381043732910902294021867475670496858976180272840926645614896535517218553870346819773961886401291661234036006572352976851445237311462479131607691484503268730158224436140336162486023067474052320051724468489780863765773574060032232446121606884276046801567553439533008801389662876171516483972048511379934139076007649132005294304902760621429768317309464702158350509071220703044079495871731526529383550898966160916779239769125389359007578522938140176333593065631604005012439135797866657593701755666719329129385404111837314771056844910798195171407569014596780795772324217397165258192943452240074801706936433398812391993967003150739099689121231390439358837322608480517724148906412117111344514323626631072994271117137517615355064412899948107480660775990770974178086587087277790234771401115934525488655030129073676822084300898116007116203944947458754461705263390182421452369405201087619956517963181594352997527762922332143011802942844414604961779125161983820338127480225662949064267042816064152880483024965259844401756273076256144649156168903700196218384473729005755904636839448114137456410191421448108093561306761788448577109385912292656467552538476065679894445664782806344578731151940058866961325554783322101017261090644331061001211016230756535665391047242990339333528657463977697417084866555204144237049430711156304643827477680873763812103299567411518627696260167924564196649931138633056345548417878034163442118153174836008366229578710163649291739941128975882253923649743119282657784636434204416730217405219020278136810003504334649907192063623345757454270746714020917662828746844085501907710802273056892226565333099174025240584474445763545621172435094470467964460820263639852613968670446668461907046492668122367622029170235483114731075535830104384877071845446075464390972670972953793535507660996429924848250011380624611951626934901127249105326966478165838039699325102492113001521235887393640221337181062014128248563283940949660287530267643616022416658594151911211758703957358067774052683962739103316750106422358825404391593614644056144606491721024443689715492176587748923775438358458830688959552675059696034042261961568392441229168676734843052549778831800444566578583259102685531639608343569475978869926118829313861585868264912049900839205784455360093262596599166155143213455663806681868244821786573590069349364174303910205992271624329810753276922843331923105248112503092753811902473668349639811171122358600827603568976306268108946206684075651035651189576875180610793579872769678798925426013535933199680445873236533782303228212659593265175572019759887043831888261233729093806210334585207093713327098242562822232904944863907689576000294990011581950125015073275817296451788206169832845368643946192150081014657064474526423187811823605958802832153414857094116741919281582802366751024715608166996975661757828816010247738839005441226171505694185718437952950790937505300909371380762231267266694597072038949043954578514493315667291859375112898752489031419694340361349516735890769792008109098890632538165680196418818755800427278763289843333865604535806903978249520103970229271676865778041552110849072151164796657720597292224974200899817242026949513925844053875813364651128015675523140543018461721931552127262005964723933176958880500401181369458963707368439416710287440593271563065120109695396639755554900910819970785487152726732441032816067882418489160339270520771164707551650767621722902560071159003663117534188963776295466124592698615092365195236032724497299116272432348674882203797858642053355942111762346426239445236353554127839232993705741128874492986530563822604552180624125198561602787894096943928561352886751930240092610630840876226313138270614950273327917240212748752170693353662586929962254922149022572643619878933074903627543259751248220339109127348524070273401448847229437385854200685804933499097353844260188635154835997825369185701292108848431629330772156289278815412587351594792563777427751498518682421184412056393500562053164932107741112759919525343736052246715765680218228065783958101081094550210122692040415181470336851153391637618736616639098916302580192604382293825805736734868854646485773866939445867971468028378530012728124664921171500913187567009847187746254037082122447212742452351450058544788196694453158640985071182543354651277812847769437209640295851811392014372762909594683852089636560570061097720507762939726674003532726468391014823884280634934743043083009686299886952025970089799058686101853952542699370753036594204800485206721287380601496163746629290124271603941986175555836362611954950741842615579451729572558849051920970611952765638072179736595099081436551590590096257756355549865872105976271430237576557599773387673071886622400973159502526591015067792528959064155870501603207115059130700151274099478947034112068950237537241571164843560601692389607672064309138849372138674366128167117191689769747495258183493785370158582938900036546863188240599169132041125360471163923953442897473208371007761420801409909395211948898001496822245689096286162582111936765677762259975118650235720626674007502284361344178733395917653858972326332267986019590801439181990795730800296528429141717783598215601928038482685441854930439340366192739191182436420574580639300425153798919734957198731180544792451527516111274207088844484722148128021777199083819477587800745536576883756535115804358385314292809971820828135470657248854628998487997135470708593542443095156300019460766267454213602871083419432561202116098252423112838923746303112723527551562754584465876903789344328985436166514026041880978611926915742243956942302302456973928609039981399691534950904098970384506121439262619979757606030278356350745349744525993199246795386310269042332992618984908536686580841612140041599286530237535109058173084705827173696146373045005659545538247000390759566877251016457549953890405904206336207342705028542064322130847941362831217411442350973170731286244358772391483544808676090770314246894692597052559297294145592276876325674152885905596352423959429747425392314064086931351006854046251312657845312868285132161541855891548871401011494944666764129513548583728719749217311223921877339257263359024619528813086374699971616644495752728198365162026856085363829369867848871812499469630295327248815922096068311947381014222004491313291381000498855885135913426687847082196398682653968125390709700553460456087871858168418916898746291932945778765929410943363157584319120440317247732160507851633783497987057613341845140413437267988815870227318448196294768553987115544832666571796883117922269246345114536452514578259350171070166412026785719020943951843863870025830336793152320652338078456852252757401902014026351428809294746510295945921765260801899045355306539443358587173630045103701202922957689076110579038014019331766814298538610006461447828225367553542480364667232425657053422360561597334062248248505300560550318794706861679552955465302696742967160574523575542398542559632923306623192785182454516605243537676512099508383437641320351578530861459594039387822466322779412470259819458036453894966524524140134307172497722801431543987039547951792166922767438896284789884777207407746221942798750149004755194677791866574480396835432562365007471398372785753439261264296353314448856492171580705222927932211146179692930805440057063388303459139841320135758388771167496026006413340201555450520110005609274945239773724744584888651865976358399441344340777519590479434891469353476644811050679313093882762590728247751630309834125831629806702225475641671764862479707674163983827894283180704172444195677781002700353917055237063597066717000004222810509921265224050642309653264939808019244613141488520972846866853236874480008904534762274481762989181814361037128282326614858142174810670999996425966810212311735991820475662407745632145254895846198909121956241761257385943800343782035770519480529681027340101836814801600593136104738376417144390008998557788021471144770503979841578762874016914919116967032578503953554479039467980830010438494003039465658432843127237701880930774729573626882661465483745507130525892188919235908916161245703602175143657414874328757323780771364241904807180455934696038461724846765770791307245619171816001682812202098149632386532616775199478958348805529464735574945565617845203123271178775335329249027827680741472364027629649913917480251635320824884686568861862818946178667951930897127700788188295572842150880787415194255899620466165493479456049949807749472698137951886547567021913310812828902842622576011309129184863600245770238051679565948984709366649718679136798571274307993757424006176844505481361097150153531288710695774722091710294079256040350804270725737337937764430356252509569103953661933469153789843134530027110344986027183036822335566780658303061076965840217141671200329755519186152851374639886231708320375200882422112257331809680873602817392587414212854707035266478107966930977311008017754124801968558908757820564898778871435424602574166203510417291932874748867192654803514664747064777860072109498152128958416686331177818026459074011740284041299725705911666290523505222696558821457343481925072787199831922628327020893854276830514533962867746113427163639145935135389783775444633927176095502482524332417032478708108529544453034958833131584492435162756418872628202373011345139151964798242181613441107257796037877417891606479332699488798844118796995867942902835703523850705195235796452950766649398819361470017345401524101363010118938174558690853923863303246462930069806857706288220605633188618690815929297999592955611212566489286353907525326738632994727245758501422631776623389611023312231988342616776018834948529233941731472880338901029985461640511818087824716253192505716639437184199375228177813521268548085419800358589747745148935863692760030334858047689097026913332694496192162386889635564109869835446975293216854526175971184435879549702559045013482355230021880956084640192278490882103394364412198546966574306264876533020645572041415128689081374649861327509163323482072976486279062815639227879282255881831293180297767417549910831865467746827760007485479866830194996316803168138793785499432486904150590982698980205324546099342015815845928013762872215665323101017925901580938653966193465740375532084419208988956087665403793452396442147900475250578164517338170401586289675272392615685222662498865944140366874201553553885354647312101202163449980193900539649481856617916112926366335630785054860513288556004225416960381557057783594999359668225009597333698100376033312322392073439441044038337531531438626311994474372657470049262318483235084097367900070390392023771509132476278026034972532765832865526371302673269501278122354418974791314520519124367529781328570440951460296668461644232173533255681003600462243143931234126936906889484305251378523532751178868782410447110249745166411814400804738444481362782284446894558599319573293479383206730860615136670268994822943239526976296112446431415553484718488651914212491478514588755431092838977665426514626550646198375693482916983105938815181519658164271301224758822998754970932540046308334921761548508340858704118439751379559521196474973352012514416222544697980636375570378381449196291701201747346315917953380897846302519353175383666906227645516310802365792118374489094825076295063613196047638317874702495668165565436852168044902107016314176633016758001629398418575458236018270628270759512765267464023860797415121745404490926800660932232243992202232979509433316125976444256889892580692747329207288553584702512414108015836268073586095121390327455367937249085494073335392122323440895659449631717221345886308665179783204795628049924662104124358250954702900315139740286359235589086324986076778118799133785377682123354580499097565981131800037383824780198373453307500531938914760612473848960458490947229985393710647935340134022217662503048325506555255361288733902710152737948520990078765859301980929307500760206887830286953038413427500426376505784712633489774153459927289897309932547132932179809050934876509097404205619682264092378841454793576790525179850327298902581690025963367772678780083143522797952097683827104784072922858424935300407775420202439719885325766361493008438835707303445776184556075036328544372381733587398197501453583342203257595442691228247982598774244757846450717654812758458232926140146518181953552702869522873360253372862179853795488670387448943876527386620010646496748202791730608450448279278739591039705280845481901792713708055168320450386359754585909410550105848540986983482342864597096960930678414858349677790547434943042587697386495282706685490147220495301422183556225377677568614860550418895971259143793260291239473708818468085343197744909747831057777038374386464519412794502141134427747623379736654049326897024154706292114844314068746888798632817513538399713666843958188355705796809012890667313036746091726461074368178517073935518419726480898978520006680406979397808363658070942783223054015143456449843078581371118445109908769815541540760121023902815189488106695511382255161649693134137648219196004393003800649903576615901673631971914841152680889022833568462314062751479083973095143251203103498226793957023239163596932255284338452183474806359972124608028515605440910924579672511698398125238168837074355733792033450936365948917527300785655637061712351656834168899982553017021206281680849317837223370554305033954296846296423791082471816742320200653684325680351623840707969529212345110131190965177169656616640691142410400261823559562037188010646306305839684297155582037646532897402528134652545402075533804984619064333879376361727313301336605577056438771137515825615438772643720820773009686276353674668784950649988045563649782870472141665929551309403238977667355093844111948676204369672401870239082137208123686802217589882636767400760255105426707346045563721279178829360915903625740468320488568647436767374578513113040521061452144732705291227427990825641868891033339361959673835968289652157159945775570659368284588221337587054435136358512607090616233167946825402854344974921542540216536067147795783513508668317456851662134586883158781131652807626895132812425864997354832796916703757887050297535882493176192428989795616751807286172308145657889481718312592890871338993262405782427022838989437750008522426298758498351458755315795068494719882914827161481328912503098299552871371009968750271852555966901800042085874207120813872796461130505784153547351610467862613479135701331946637620393135913864429674029922004769407674941602666722867433125706742860567021255027427779314359087440294665669716876836674879556162056248004335690118172992800500695269457082448463489778833791036099264551982888962302217538726418071302976767407636237951553256057793172062778594930180731182264458956748761867030093812124863712231985650472241332095117076540049366896673855185993865080483095915525829936889922169701299357508120456621218103140004953346895512605175613361450055445587910468500849748653902114808764244689789814346421391848933092716669460887688034356074108466593436979436314174689072308943884359450782782319492111647114613400573358219077297799839704157049662880729231242721664524516447093687754619828441916665006152548515355372954964513861472921275957933800445146895715123466951071797348857651784000878440181529524305619776838082388510369354796368408061453364071338616134634208514239929329786146818820530681716153129403549789380773395364461097592645814727827699067524005330183855271916439474725823652106403091984613562166688077041391675415650205467248955441528373291307674633607249832170132184361947567480653812349943472887511232009149344037373749643370330973964964362953575108223783279069926476894562992566703474058800005218856680950839462211412470513231889932478252464868643253389844558847079464890231704668114962724070772668410282898811824853392799488356248516165230987020552958575466887805669238381625740723042827244385857885201615406301382844399805725111768780825867209669071874801090750080925177361046303667437119313272018180201013420884638775901607984721099368418269410828926548361297320027743734240996646144479771641683068417494388472903897994756524967498484348703004812675027670724532268007525266580216770642942961869749712843403438097653825336166795234974889326702046483475785661356981137515992759182536994677851517832929573619148775095771015313469563405199072190859229494784158739369969296255973224411158339295713165397821187558936864830526564232095157329037329740954502351940531319920552203532418520685024081574583284063941613614391941203902480716223356270483958526466846815235695304436386564693039165855386135024432484567283324841899793189771895249477434859166995078012180013742673472377980411776657864657295659214453905759561136793049749544917679141663461635437461715501160924157374229761183753762888882543834293387267175922980299231949484068129334955274174681959483509216349966782490734090896085542672523520478921244383180970013525158510679170916490081212307304494592335989751187114982784377491191457399843330252577812453913123852537171495951476528504049977866825192406823487733121988978016084570075607073105117721144907955021088139100866146488625435606664486520083663848422795753635574608837436479587410349435355548844713908812305156746286643455797771341987741144794532481181900172917139175723180270400747298464413730344761773853734180706593124654933981375421427702329038838787600578647040494015086913841445573403619760797354013624725110300118281118156111100676420583827274502110045088627201990375610108809123138427672473233508028060195327786600967068975882503880367681412876254288902696448315414697508905869635655180941693847491499474679150059093325702057692145002480202166710163218351803775933982385420330418304745088075102523540273754036685016987552125144459516216481069777889546521456372582343264006370023868713977613475030527776190942967403619178336046015198008341786339478718358514885569763026679859975639977662233735965361887985803577344116465278337103466717125251881454368840016467144476270167528257727281417716498365841215299991816930930437608104537967664689987761109586387814809076320862018187123125065595969191775217559367754485938448464551742929843551493916126676108852061848227806552770482889141986448197910164043271847399987174648644322889890299482981557736003050247553503103034075030291211454089498138521485553228268516115060692498197093735690540663544457370960601830592483479835415494416386585768592377302488389239673276353858030088958922871277071265755544626595488773754474754033304727336619439909152908557346816089391369081366959986721349014546386203264921419472447624019986544036334316705735755912356941023032762585893275870292385034640088538354280846981998897935159341977585376472295502364305067551129376694924956202581002602903786706737641559319678753495922804327601864846855551098454444709319540394318422430531623886721252766196018033806904179653451169615428258971796885747848878082207815253406699699139905044490710920618436995047030062731260504130756771282540046832787940659851557547232889036852786167616357494448772983324221720068625703871146826836694602623173003150102446184421389077597242382354684444049769982638135160385423049861635474561940813168272966184374256419288730196177948335492496030261385593883494796103029273316209774085264782001894035733311972631469536458067800154740637882533465759917939490430460229983363436413305259677425632901349008092133179175671233071758264804926699418344849792714649229471529796472107146995277285997609458593579784886518094727397706735714757117350922510544496609855351665005568475809771783613928230110697337760570525753303117478817746930369050801878235725341135708342937071837385464931911153678777737088024290350255522294929339885779574463384271299391369285888089627566839049450986438184415737331620973170525946849551940630010978538232950231021517905732044931750669016494404559090903731759288720339493131500817501512902318013605230508149345481616878375411733870731552683494319980148116873172863715519998144498626896641486963362584108770371004223307565271090184205758149110716536348075597758266616243202508671656474121749098388395897047176513813574665003707336289043113689775179216768138466709909686997180305051470143871473605721576560601956951409475220100216769924087574195530360420379328405368339426622350921315311825700258627753751470736251033813433490341091270492990479533881093135229299125311366708958246380645671511669505240359780516882883827084680549164581122959977511698985924108100381469752466392443237154278508671283134752704640187481346567578846494702872160284273974752745826530630408759346378109849346916276973537999578792635912417678831719833680221594061269288698867688096677489306395537927071990238813513698940642204583650583103429747763302170558910250461977109525448786614084141917670806762962323717706367130510022739552331078934969476486077035893412444307425298449874401382636314294231074899144138381402198731516495481412233505359383425245797507524059442046050258566928327304797219896372889234756600175244215970636646224945392282371861165763631212043948858177307373983053946492283921355412847889770108045911837541077045119127486264151695848937521403995221971472252866718993361189068980464418973928419956253415932254153145260203238910897920992066870211712206065357317447563515623437311752830028252735726382093286515479765191793111545520380229253744576115678614175520230911502097788842222586619749096718727646581459687646602042907827704116795851998549545749865075442697554929338292724429231999044431129715024637530103781072190370872125811981523771241549847556385571473518964953217960318890194909140526925989634598169419560134829477114248309722836464202664637398747886572507658853548160011870920659567963809913268958032386348967477245891248154509170438091796626938394694284492264134508655952921238402524817908383558357847097067191480065619749721177828533932057898286602083877331014051851819319075164707613073581764354142473392063309374604900019728234343530922800800717073240427206170372162785817620455032603169212203556056196928511600261864932560106949885663569046043839051727504983973043559115457691351036631784569562135924185265960600711965588293211572348194230152151654083538052120386652237479122336402831045093987070780233837504203043918097832283360235824202559250389996682452365492988587558106478989795447133513993430543929517149306389488270400299902645087107470147403812730846163486774654957984343977226490607027166682243990143780226002755676727485619769873132528381677121611430313946752546619403972134456072151161018190734518306206833922425836903029197981373347739719901118369210568295490486594371120057282508292037678592637852534936785824976827483405575375953756504621661379816091888654169523227643924341027793066517676715406904073513690618654595670025461145399059288116000208291465434957522955576632819834733400242612577896411659517953959562068141489714032665267183680133866516065579321806942308603048970088431883451254080647312735353291497033731321110364476949025602372246468170882753023936161462324350711873749055593316861144236363107378319256549056868306523083449512114879264995794423150051464003141249705710056993857612621460710594063120997334846736399756637011187897458075677799967675949170334597389005228822731590700377660087299139857662335235223927995858116667835297953441145135228143659985036399351142214174754828990269018916227083211784059781554266052207793162454132057068856015523173137363269751206826478523897743026229383394756491543230691651539213562923265161702959074018155043242940321200113813557503927483312204735176306143681450895740759751081447986099239913753402380889528229632654971608688735033974458371602465505284347841643451925389546968410722842824392357936117548503111914551872594405106112629620574725431432945603903001801195021999807870763399057852675359479422622073067274972207195076518092269069607987076412278793749885009583599493050280401426936393909465003839344043399609197546496355492267310333085678122953687467819857400068645028561992653339120796342051575399553655299822164163600532128990630964819573884260591044478649978068706963572913198212522803505512239948407776069678150189055227942583837266074225810010495317975090149033926083458209674773818269693850800182316818521533040762872202119641250290407734018978497087152660384163952108864868728197558110503805342673235866845887648990692059268518450969280162248464716429780014545577456146641325838641981406576505519070751887744938007071863068475733324545575429395931771011983309230670348264403036953400549612727418527844422784796526146186120186152980731002424232884052355711821263358158072444090003360951320856767449802121740203738971397088601949070784500726962567522447952840671634638443732051539572046676493305202369364797092054802209812273633182504663974408160903619355314424050481670171321523205444519220231005345666040251642072209722194780693565529186796898018561731177224596600690664756236234941521465042300533046430902018570421331988007143324677476578298539748389849289124022905688423857983131023439804889472913163022858179803907426835602706101132926162087919134955615577314200157425450546733050898195121487113701121392345786342236841996624736487777344453241916655558725048731838083289103310544086743326782308409528253948107321218981847119904757143559542770585399158446051582700612536957043335184504007275780382487521836639930246618710129484171391491275561456307230141110718132041798208130688455796534566376709673540210967017996129504988061505625806225871439099698108825870953722330225056369688475415226714124700092433046220064800870337068473386167592839845540162832341902125050356839251158081429421580724204922084941122861799112602520929283033535113317141856913126208726941389298017597245354695668831889972560331375569944473943554583847940530341926003845718679062062832700471328670158750218998507499323302182594952857159176287478265988234698508360491362332119849624740086602299522855330505863465331436249654684820422199256569029521056030188491490491442693024367269400732698213898752390512112676153533824830535511899225257312266682534124650750477235203443824332891212847469341155743902674324168286631442640644754610009548606039887842512082297486705385083584271124357237837248604379669885332178211261659433668397421773211076363723354287254133075751527809803660044370288454518033243067476648997504617834165152075551724589178650834426440507150283417588275938098528916505114070261470091880595607284499746939021120607935480009077347317602474290246361046316791974363242058766057538203976317047797351012913711517217209041202056537574521214032327283516439855229450613239574333387930192273006404940647732561528610870778419982088709437890013818022992060564506127903748039459643928253700851408772829328567150728652473731043103656096487812384463438682292073223516166222194697776907063348695875981116245824795909443003386858224970934503922991466094705989659918828650311761051183705499263135115070480821723711970894884583167663354569635586303734471014731197638029656148541934591747973537686638102572009454715487726536449182643000467054971120780080158388902411658028199777483454975153448032955427812695228812152024586309705195617376157348352945546131973108568216646152208232243095521638265324442149012313150279969173602561926594719647197616307684211196524783254834175047294641641601622922301253833541215284592549747734022436987933366801996080647742697940447248743467207251920799435943907253848858913286934256968684830780276051094647224488665517809973675124715533709136305442209641393040391528553161299910761695193249998358502494849478626642720872425184035006023367051778200602062371956383870963010708863407085294343227122855871613877951055270691004176134453040869249780263631628738394347069499626470070078853322952374124332155848655790323835053332883365751536927429236772000845752020849634445882191624637463901055087260420081487801102383558050247608538655843431676690040263306850522514924030412341682477822484008671684347328508817379816813330291932057415223878839675664760324894739994836891804144679484773037600831523692859845001144415977504029773834410280423370902013763553105117564594615933605422875461345978675400995451850155139145357553762585069692249337951837306592689268962674415055875807821495805258158642754180856814069167519446942899079759484429739217824909748581901568747772596165180079635107346118397976634072540011900375548365622727448290544701661997305892119366837728217294916478891780222654356682178248150292914017839753350238411112676259107638653861936918386605143087485726356916719782025012359551854862664697741825601663986909466147806902260198578582410534233870710243893405184470025772836565109020186406885843589415121951003893070028109606540338091507354566612857231306256406359617290653280929041455020498773896423905118743146732217795359670573539811823309527840804315337376399607617575655287513095264334130319083495047122242663210974111178093259151374783052941598704840578675801722235362495981222099584989244180071226016327436624394617164311888497443619972710577927876876859405860552822823001088669396791183870820687326107143473678947371500075081050381713876417050861977057648019891316881706857601051079181232142795884936786654555648097538850825434770255616555652110818517135229031213391605591518574557152641451126005380095001063386109690655980957033958768524258063725386406015324034847324014818496761554032974435305320499081915348724268216979201476728302436035643612432887621260005489609610112071742021316877367397658942369547174428692727064649105044253907046351125036116560719310412223768605921598553087702006566991461571836172412959213169209091639514498677035465137717681483972268008093759332549735248527709176492653489010368917534968129870712304388507932175315981559492801173587309249368686752225973593997910041640682450946751613655980955018824721898666162810897819196553352209967289107808341453434066141796675954009213535618498695359629178086660230315398807817270940684613580798654795779012973188079965573412677464955707037536653378060572878908093396626120597708597528147264244261032390916445727850974044429559996681115533506757723449995824974164222980982198842672541552844601815259914945763677566382744472433319867082837944245325768255221998980636764425677516184973758028691164653525827622078439370973912561013192308018257419701875505662871247744966014931575312541239017961340163355831303641154150974256632081950772149580291696448197238760022886785482329273624367652257278959933600002952961785958850247383356953186513161016103437656383120061433327193681748506856433037102786250705726057555624651128667696779416977938479505801209019268270454672371758415225213632089988328443666115326261879678951520273105992285269808449164964818687024509334712799829109172315735673208992405577194916565145005944682223463976654428641898340432029675319755993294986704320820251088699990288917894118416753349566547152128092044607866948314310901096407216305451827818725932844183625278416709311465644543141926996809091865825100167715348018845934521253051086598344470810414493456421451994839478524353916027506513570174507540613335859374612294794195340918433582753741793726648277051159126331814349673514315652109237497626748657759460112648198820764586138805986711963926759601742914617816882583459505524967296620157394417368504960729140663617493910312267048664173873071438376929907852876101310108435925860321484476340751968577428717344866104075708926511272784666538890209884904383940133078661269294078259820474397881734891625455850380000059021551039387267463800461785327730483855332066116130323694188268419174349011462868547578887768539141387700688636497271629767977184017449855890028367977210730430512489283938407430932747813677742016621555171500205426157164479406223934296772231728878713105360807625338306612658213465780031748580240822083489833524061776609588975161029624228415729555132574530860349772968280572274460847192280933386417507898430744355187611267750236494770904514029045355729431858142053918289623762759225994601332976317362493567286315862471934435517035314090161832905359183711114491357242173143149333624906155925986195212568081340177066854300466523548853523564376679975677148920079104345981851607840564828832182859576423114748927206369540620767341238115659901385253357256999085446489816524825138157319377071066166008594884459519384754801430453641941213854277897127501296550147753974027716254098126735083690993842849245784201186419717041206887967672399232157753177227175973313240459713495085870753979580597253903792337385805858161051047891869619063446973640063087818406664173794080888506862291373859434003752228679262007366606304819879176278652703851737604920852966345024585339556404568717375718619251665806090685258141276659802538061942783955749744156790711142624508649529742552342072129126502980203560075957157172916570464712928249045610579515345179361018173142367989039450854812088809209584711167371361505611978315022195831164532864668893662894526302810785273905172051428942107860582711427455239937192313818760635122134708488354119211920509394656936528254154487544386907604141426171054826493736266153102808295742753993759049148182256014504564137133491017051399792962041082261489793226966706694991464039925424216440618124832007449868330756941471417394666272511021908127689896308152770234324403692234023476151231780693774724509450352026617063384584483314369786933365307697904215547439336216840133086083208273896101318915099770435392672575323061570710428303895418633671841470384699522787007999354715588316792977316088628894907036317505794194451184380808626335301357545642912994023857302642555001047627111116270006395532927347623641186983723679129905054767167790874125612841054030255066933428353856140240610217220146676921515328887935318544517384922872082264815752478981765885696537259725417960530107394361482249972021127841641079841736607382634696288461552829957425744984597148174449282829120877994331791102863473045109945839410755937799036366182386687056339234718549800385260860287597889807178602909015504235611005134900147208047771436734104297858785088332638421957594112451343497414230437360592284222264306008732694157693632863922692791466304903845449152061865443823519612299001524594696062956104144726588155489742152817687713726795997165479770882699188141178842478078722384213379813320848482906396707444073561864591689991718171074320276491736601790548568584841432222133323262025287704165879355920348531145343669652891895433774416591736069113707723577819729448207559052384468098469546969468835486651743696946178502634918856136951517429030843833658423932162753084271649925083781020704791300252271554677633468769473280008621819439763701410912593526597563219410524559119103616077284173968272034306205620744322074146687078322177499242947807478626625788824093478251266359458811912768703970556867108438144870489443835564196093067509705550339365637307011477179907905066553152890424132181210066405290574168652561582254734448587987516427398033177140777912258107883979456283293665761977223015834626225549552313540521174750641070497783483013891877612826312099265430766142408641615537721758823482758331476028473563333044439606662231404729171759876969019077986529885645919805228979272098690563116691133413650581699845340505800838009468127831671613682373970049284801047924093855284492837136994776885064624662049143176627953318331065207236318438550315249850606606977083352296889303720747952827553013325198513521044804414209797806615320095840582246826990768615035463469047116990133829040809100581192921170194225093997778381361594021060569424089938331466182248452768187183877794456399651569892385135071673768633176162739045983082038481054226470655370776006765833526876937834886006313597138187286223856467689669446394844100437880106621977498757081721277582955754522430337510582185955346033929414393003963464089826129778732878194934600642895850450430793689525908940678746491525357817039538513700612926625146873587359607418131781176710570633326402803012296785754148538308835265803284262449879823727146654889661778547689704138713584957280262745065151127916322389945249788640102781978140565609927517364376749016446725822883708048778108412908497488518067213230638777768961244690209427914878978706292901299023333071504124832012215384958651294755057463106170988648448754404267943747147573201783305703912344033161424898961771501282328907028857190386021006862578699301184551228008170088194999364107116855723045517683326076816412035851102162059394123305256042196204301543806582457306839616517808984809518722211908202958703133025919317995202157383310903958681948598855231068169136905738345687864375128774580867123649134935198297374457749599363910340446142402898236716335780300272505406819371720041377637564650344652300673151974218011090703024105055384090494455832201973569138599348601818420869701605787779248252007167350984510022813769253533367626255389414840525810814471715797768038182144875221196061610380459495330773561275643043710128932184332268741373261465921776047787077831537233900551474135864688710857850625901910668588259490548027616972461095668418629393226017487205280176105401144892206618283528882611669717380841311936608418811522287871574670985674324267208642087253343275587846192830087034883479641215645811558724262916385149475347560689639645642428137051665246404411595147583692053583639054607066881801221875525131424416056253449646491991216206640817231213288144933343036632910001667626258519665323024194165297628721535416575429816238075717694548231021703342580022155370031815358208277461553492701674595980033008567310824207986270254646862534669389841431047739719547188505122123678895911288701163131725951052469233491224861448678748398148438512599230078792649608281036583779979993171981870417552855335715561817822037616117636962480446418661011588541980628760535286453769183160432314777494162085375489003860964085454659158863311284159729668959652711132679382165302961064895107993796548281985872425174895430770484463503651986514811198670551645401220384988781821142682263735473183441737867136234564081563471565889219702536678598274492619189344771912365544579569979538098270357331140181423489325140544824015104968222335342990649155205142016747066069082728111767557240852831577679914971449082591015963750168326964151443451505735366436332179905664446421511626890693353079845055146584622657653224553376773417616183195031713246379076752284399133548192620815759990758556454119554824227412119553987362444611046270789125183580859233831092421926590588305729028544780409813433646679152962606279304563947706577417116733071369992953267868202947525667088235913773219306987673386733545415906583365074644994982450276657118997915868320053336905220252839160432038017306229753660864829330113739027320420812644497311049660620414420874895347904943321556012725262399184107784249911094949986839199090506503634311263476367048375222481134503382277265468419634696617017098675179805534246589890237686838957566651936382220218381429400976740316506305345833077735886986243918578288509886038648095570290912749047408748679747496862253509581139880432183077995914998053116335468764073223789846514159457123055854406111551802499394187380398168136135640472757769101163517256068167389928422510390035965060621158787910973525064747576063040089090956160688677329034365836491698013818217478406899483645103325231507905559249504787891870248446570907110427608917773659055012240029090159951960715749953808246617773060173719950960470003942593939996718583864317331094313761074281952381808750808470510266316119882516084333433538295821540896060737983570462766549552182957713707334151846919322529742780228185242221986790808684058812415115228424115799301609294242054976994748558961733068994767440874230891600574625531988996667285395999535795095100341937873377102596150049493389871755470366569704689766791502920567803886452064676676049759505146044075260398696733272935353740392766652431670649433810666784126862686963703132315208789978228802451307264734868730080537716193636618077529412947676959318409217709056298158941332112422383240684027259122782073690012710125050945635667233182137428322742474359776970625791898449453089136354113513405496068729499842589603099256301916119952408105281147223922774965691286612012323647479529832372110551817914931145308485205792318437787962790995214121103658027877286597616057460818279494795095675453138672565428973371390601637841181376207545897231743872348399923969150498986709940433209945226168893758453077632115096726239430947392391967604070420247008623078486852432607105507692202472292061530461144633580423975330735279087064563484651667121503667639299875047785588603624932737331236097178457476825141222362350550644642435557717830371773568268070943490820080209771097284148272377844758096384889497974528213823740605863908566036156735889592341025030407451479025616261576626093794451817167951822930631238394005724489956939088500908611602468720323003489266245752681122029954938162131060493664890554202338458087110197736195486473950510366491082296435716029382867830517440728808818356752224923792134404269971024695050630160262026711439556009376861557600509204151784059556722661575184252037360443341668519633930053216270587135776433744140486211350484125334422905523642338069663027933342667057586828966252566553466189442015045926938290345475855481250499182422501498297988812767009969898679078824846732311745040541492052360386236663784816294895479939877961891699152048024193517593135822533536778802601655226939483340825009918800195898865839758633836172260197662728237685033388427636877923822663087098206815606111792363166794265367157258439383353681566623430023068117186450676385847915100820113345990829942179584742200863377007192907889850731530729426196687664529259454611623923847808356590568412536449312527711807296987062207554068567182671516285974729458008065337124954795739627244770211943252133776984148777437852199244296967141604933044088517607605384017714151742659643253368267078972637199078345693315670538412004360390143523498822761979234797164566960487924215397035366798903036784169017739892136503139368758748793511807814004462977271537061081924318505571567577276911329794159254356788388922054935903278534145791384811091874430940072264093108931408744886329447451703693915531794239370942213805664301663506401082217534522696374218941498096452128685601120286775561837255626525909027988933502727802755284631683925004825505293209443356974312734648218139232500692961614541004535401138953310525874630558039971805665641768092022675865356014796628751380343590992996713937468561718387207708649723669570504204316142998982065377977947898504613527775371127469979183738531647590323791017158850592368999872333156177166798123691087343007497318175264471789905051574737649679309976108693036690904605133418449540961410552955360624588092789722648194507479915518107339920433727697421883668427951444994679233097726187974069210897277161707072669173132660006939566952664131941851003558922655045834093266649169460805421585703954781507975961874589355965284332227456779674431163981183036049784031782642592299195584742176436007383827628200912898814816669680396845546865226651597166173930577876968776946850327505180932310465458388062801383696426412278499738575996546271007483759257158287717956626854742018361648344261249757947402937956793080187969195059685911042361904544656035128708676463860681426639351127714475021670390825135884529549294591642537361126144807853598133905571977644642286773316111016160378843349446487777898080982714287741806817680108549394374907667201890803338306063677297135203108868906448244490274663342227430583090536698281694303074933262717006425362503971696692347796272297095443464401824017796696462344698859085894326639793853270959195207151165617407943597739293596050992122799450143709671438265726998868607125006426267133538279256025496667373913851054508774411631677637073573134466640252556193428794198699440762694912850543333127395218321124272050167707413687028070596609519038179125780274607120775176927740774394367161038993411896768654140852319480966487103647656635564953348060939685753323137232511293133383604157405455034371001793873150289687873089941834445534533835576600048599312478674900126237985406296574836630913120130870604563856345591199887410461774580022681588214897759863720697361450415674669013506057473673831576322638668696134045144387648573059000728097385522097103005948884931254118327867423545089256919244238232406021136168516970812128337045030936940231850302084257783086825047825752148643713191068212397349495470490258343093819562728528416233892363379606337033050447599963125310236699296525441732703186418581248460774194046009896519518002593840584826854582662453133802409531596067177237625106102790528721484086592951905340033443010056398681603393876121666498855713658809712506725736775687178677703033829098230502149556198922307803523223306798572441013302520319125298728501718732327604072379773238443813309009512041665628545266031326562070796815672988984937349086567919541228983342343173133807696690574161257946818375683183663284455295722844595699496813444169826403036895209772314314824725597607726728998104003035978369764568961040715038162929175183245651575480034947707005860828162753761051485378359602586118889283638168720319518257520368161192619813855835078285976731469577074315040276799478312504986282759812268187042971830961349971796803499258080367155457553367608635718140134065523224441123885991983868574930569563882695714757514556643457199429921161903429120215049004143822330145742729897754770116873437673620426759790578264876432683962590611841627358030495719281943676468209116897941319965816231622795123117443560060403987414709132211979322497247217221342978950954842688634160361264111545340327452305594251335850183580981006786429262544849269824591566601285592939841022688185147981607824242718910847584781142819304694179146434999823547554143522048257092406407424034641525430409442003138812137971964680764633166622901069026207114933574336609866856878459735246027204613085600038024346595430207465839585340193877153859804681918670119480231461327576176977856771384812471183602886718152141435127015751583196404548608013863597993260624437438554577081790961366083616796106255906119729299235141721455342200971616479593161729314292187753536235627807772306217764879369860813542531619398025009814570444563464959381563128411911569955300628299824074554608733682446089301950936356116631803063201340371163128529999605976465309524560126399477604181053436034222623835059510407374213213391057819892721534163367063274244589408663916398447734752894247815990579461886475551097553171239485135783976337835062482730894374355136371107584726654327288206746086777078848033243337171521161753779547535131562360129033512204909083484557316074945166858542492055959452321482142329664412598017310433256854721049311752553646358581305793248489776474337263496597900696940283238466613155111944396872622432643051903178912242318293139914787506234529330859267458540212378690115454064561785280043914502162840484397657561659490870438885877113688971382489257087499146176330814293730555363830809211413358462345487892833612190997318227483873068813036087685344983798215568696565377088051165660975152879626339996279121059497925822578147075507580274991682903122362038013271081205292401230570319649436483218290746558465374034551857432077726443875850112725588272951727502234432568719448325373954470635796471917828459311417251584415037056489327220854464591416087251535456366752668834599046117158909544776130299979531483663451299963684049939047919082757259686496812201055856371473478633451305818581525948897254956615927709796357879195750839235038079461819028794666198922220448546467306533361301407661496467358012263344805240857885015186586028427842101878820671506810370920737101562007389488049389410057830062380917926814147834110792803999535645447408832242555756543764234573525767504340507698719522095279783692119461993828550554212022744723648172757241053500361601053524526535491005436410621847197928034237600119150833728680265736232938490974977873950420557196719380978980830263531872848043802196817334942076712770967687804973372890592874864743665310012730580082574162347559633736831285642375004356920880166182016477198697178369892446475582103534990946563255667679827218381501165894374718674385908157627178218566179907108956046766129969494353418536060697774120005567387879003400550847818311419438732990471540648024684556349774120933530580597724047181039037601998991998498532151381721902008414442026678383774662730249760879824080805990593365830860654307537688537199542429654783956961308088350099683608900371443065506327688061434120218579568251791019638399190917781991872962641627932091797814611054479349065389374285150758530948499601488908407098224491328927749426518503193245792950723140872366659664821808563228056078634341857445942551402398984964234041729138953880921858769695221017480772177402145052718699681509234416428444362483835872668578578107520605671596961596430680407854642721529759290217009771620093426523408952360679540495443292280052116701716204709614153575347033557112031970318474408906356293880314489154050612785677604611001929021175064502871076477299226696545444772035091230739881597367734164451640584352166866689340986140445683547834286347851594194607001474806302247858683368257536224023492506417913155603538935228435577698850664067187291593267511589876298087500862793941648892620808146750204333488693151172431109264590462821147473105686813373107485493166846865053910990269668654957129844677077699680299910327353007197899315049813498233530198031444875655473180465350869782968515609586774649706052993331081107989066178347121864301861522697224433567083229299737042469105714051452259846377680286685325392131617610840138269012151901208839613668942583062613490300857977092388784798857974544146753820694205124698282380133460656559092874890875644122785647880064879340828402538283335622330018006762507815784537916292886200948931015281161914861046250595834903552316849867927782830276489213556373016186759395150707220163494261074545712862203423544458403482429095176634520897827046956080859024061922838926940611690819592995278201606216863033349304383372663470704714913383008057093315534706074387404633377192846635309315809903273768644248605874133445215345902086950102754886696047887605162379010208728374140343121118691849420403007772581345836190168025561356446160432294684179615153213033349439665387613515294790472755755636990034138742294733432688885284018639901163543343734834405024216541642628358139507888099263604340335719429653746421811939102794325832692423765149936261257684352138100087078347339758849321452576574060007859971194528999216293806876721496631466856202174971755646539947454433582797730296414797010808703335079820455044136074627380029507515907758235046827864549371549315983230908401543423346455708883051370490894047402304142639018324976165014963814057444582912471383710565143136189701808971707409662329513033089592957212272270296201991768486693294867475818797148384636923535189267096259486878717464651197790790989353293500950243624221903951804283556146630783330455868870579865459317309034043711715320830387198532258949088049393238626953687148878681485577418242204413771968682298179778008376191111828725650911336981080923305058839698982658527646008029341853735952813038997108846621160115961616063506323595032961658097436339790234142140102958227867986483059150390981041584314389908289537810049421679415223812735338304054465603013675841817618155683746151979695211700760322475310871042218314794448574528055025075136538731132048050532519258855977467592327745153578560594393493835632564050337828839649141772108434887637384867116107027368584346890491651148490335823527725535005842843624574370492135225716341406105821814380945069023181292165253174935319311903083890407877043817271907106450917682157820915896992515266692276460788376102120196270920143091220405104631503292860346154005588535065564572973383697939881228984517985646791799187681101405184690700947653861922037361454878315191573226566033051351085031621408585353759821913832382724761224026331646781190380022133617981761527204234862757305912066270341567281779421729231080724437152503176130131869727873319496502609358255710794342503926490456762707114825235920769020514172376021607727137355929250415096548795148366064732760258037570068131532188218720465153767335764803021770432673433179785091659555193150710302827786214346094811589470329418088998070554126878448894204100778676982645752416260345082855063868351648108141796159845360691565222881554162233502496148300232647471270749061420178142601924857906554036795156575803223972349342774020385661276645427444351915928747474694982853395103669354327069054683473421389416053954081265209913180448154499160327216379776964912184008341896923907032268950272784609602957098187762802963388381578336328020278840362105416213204813002436174938166106938907726858331877719965409029141711902422415106374061137092942672567741000842023206304978662885541145068155320126257082045376402295884322490601147546735841398317051160876030593377392239395497414738638548897359812625452893292640999518421889217831646958253779577983597811605678893244044217080562034219573294847839554650611812391125916651234480892226083128140762286967702901680028989370637002952468687013730128145045696704914723998534143340940899991441949998924191262363206569791181840550152500505451087693670034680749902801445062693773296029414770245806931677659744910294840049866520976130128872251439451511432830640985196455658960374317711217748627338806590815549346685389365912579446749830185671559616926387827802333915071453360535350579855591778786958322310898461415761018092637504682328645443092558315198830017484423706814992703689191892564508814745695808483422971804272788214516863984312420302781156014049461305539721827226246773844243484644285602831177308634007575149038070665231444188286984817598418919075980155408642456425065020461821794207018202697501776133014944522863604137506043908642060890617020703709147405502366140020389165442732041299385592670597150829456714126515660059035359550807606695266527440896939023350056418931350846804442423047991421248099021079327171328782298780745663570776792330719383444671970711850005708280208417792491948206338166413619573997138971364435751456436682590797738262484000516713500563092770379110708773839245667168139565819638275255673519908813284402280892752280592027155307610372529581478704721995775220105786240310870401332871472682761743974928837124324313268346609032695973990102431046579812279107796809741901025443618514678919741373556860280561521594751443136355941465789450768791786426623018092224067054194678252556625765739780187750080819160796930252116782924316454428323020939064473010007607662344605008114166579729968236703748252456168536172436512306027952622803986621943134925823453505697364163151436490789240403074127238533447632501079016798259285130132292273165015666200099187725053491835650418151572860826409885288168208347502621402281847234997996599246682864018492021136292827471013108859277795306279709334109616177122529791424502165329357919757893765661776938007407595384414754160522668244560573776181545744728297439163440394447722537595047117733849231396665839155202547510724632463571950186007796073816198868626379072311720906688025702467211070340847869134432387999173075252953799717533160353308775994594638335026593054930450468147023241937901544025693809516732755858900248588014212502718849984885783495048753702262323627742751814565846239975086818747857905761490009989115999409243302316133360688628060771867950965744078712149826275079576858890365345474834449099797228607983425172803965347774133639953141053792078402381180084865184760956828877285849782676822528838854775113789504287738113823019365250408634787379117033645988803515312347622633463312976393682258505485926880949897992009662612026502791611553382295650127030733156886399140403216403927606512198053786283930454005323117521204791979361201715080816321869354064330163420385258056959385219104756039931293924321276552138101375528915243580576297228213598672507752815432280361356579356113945830315709251993994922935990321968201659798620699885374137892673644768183759691955639462339842663730976378938606236392654633050110895879246346439005006029682934004008955931251610991174243957572219432349087582726574445882807139504825668007456307053408163211592555783266851014014816553130751610284461150256564831552282898979304865770103566943832576077673079238052883362966803693687069397904734089903269738833013206978979144486466771275132693999249271131060034685801330410658678758154002706923279674272259717978279407446928927411622451517414111225619265090152047284783074221335335337485170230948247796826819253413240823348387290332695463726039515613743687859674814105606389541010749044923217889156511416337880040429655842711889012785309448730191574091074362089326799391067533469854138897438123590535688309604919170290268514888807849627207615123486662337974034874520628127365266003080006871928048302607281868503694963712996570950779788991647861497483156639148959686217235892753938774868757395690577650785054620978836625047565208150202126722368575980918295121244442936146985793930964572480431815328900701565154344414682335150468489250236118212447702333323051603240550779341150143861283997460641671749118894129235091109041534385677212269674434137983063467482112951140129636175635994455708548914750271170822527216572653858538910300887882279767285949980742979623834912651873906245767244118993129361438329899832227796042095313489586701814465874646531391356527432156115016659062125768715041068449885774473519701508429441768882372988958859712074716223532374611800674422122523723682976405728938100189240160776970737645587433106477755310260223402720238346073603981103325224083737343961647429132595500843174244753462749725968688903716288278875010679191580084177860565907970536374973209351195793766717021585824692552500261641600719297244048477126370635117739438004303037678025575748597807887434208089369662020058773292540609107809290624480032489477978898732053019805667275730044282342724473117800491761910896661110740731119765503276254432831102676948464843572594206533200543213398499259735253827223744430429787429399919278832470584989385456428539395560455712941375771034232081558719595975265962867171192900782770428852199587480973648943375519549128879116497362193214461537335515200476262018824528057109943960142119464813142314449196028254440447023962739660603986359250527495660321813957195960086586732457733855326096259124666531117065381427382581381192548806369220293378290657773656260250793862613055665141960324431882348237874466468820178154956853910319269538098810938132945070669118984149555303275129684435926146070873063400977641665704441099694671797365667974407936275631463631824401992917961482706851409974404565438077527685070378921509400368373996268747026548050706134454932492724574725029982232009120628511435645632531560889755557142049472087202830693649957792246799977405779893079111302251437072591160599798585864444518949730385732923847873631573711571015175899567641643777709070254317724031166329061625781363372312063226632733271759556543883034084723422675995937342692030173133972774048941619411903030905861016525514411590695547367445074549150132105755585254683835063479663481648598286960835591428933799252434738550230349502455855090567586092553937909155976632102033298378145905433204076798239909274349135020775358911560250905236622703010664440450455198822019831825887017000340027183123166204747519428425525741520825440799530209857599109670433538364250001161342032039689943675004153732686140018679866120153064948574519691562216657589710189653286294583953061625554745334424296696862111906001814643105402459385724749473997415637825077655553568630401655797023242249581266102761945677304524051014735470937320922858536267354874721433992762214039647699344936817914374936588159819533823790892786534487761183317574111945800120265305206861109706845749237302834385622065235957800727888948121454186190876894070181027582090795304929418518032334398833802406238919768208055117100992997450477368568404027377426811914690021855598397920867232133949182832451230066346611731021647523909803810837581181956868792669122517370996603734788136220232025661712754874930292511999033454301855154160471673398591278658890765893173083916094549259355002270707624282393694413884954699670043323436043883451569923148530386508116212964373183243891059860797623260848973892714970398175725157968267389146558667623814936965059490587190758015300922427424635849595361089715961201077347071097861038899887102889394220242631570789208836808843300794647108066806974373683082646310423862517232934450753241343249292052186930654103826357180700622918961187158578529928727799579001780060573641281558748397068757520186156849792231785660843156042858111087484980925026257259104924249317659469290978426804066883116086478787127938417211527344180571898735770234048910068994067397533836989739472920605913944372068035641500519238753599874408059961223439731753721203931176121853485090175379209640753718528308647225204429677249162880876353981810624492697257894283508288123585127121751593360944758540442114738333737959615711818046098726944855980271651619568650750988606407337635094068399259799876775296076358366090687030872500257823527173525562934386478653459259537257607551347605207371347514276271417351409221982252349176943506555738711818393751872967396116920608115506147980285708150245578213217330804816599486899028942787145647038737261926647368142876307018840490623996774667102363307571278215584561585447764498817867183891622379488306296457643167692735417263515170856631854362165265361639748921565921656863481382207142819779166818571671473593451427654794308464039253136428551329838135007581489300544402575472221174015009025904570415088400654450591182432773718897032183677967728492883815669119459483943771894599464649175387802680724497477809583951179850717351158913141129242056074366730074079583083412778750544359059317998175148095427022798640095266457252954927730752642749496304314417006855488271561649294048319719880534660049604397685609609463341491456518013757825104483677212638381075811280725886024134950640664434640946463357802792410687718406311603502838496651030601379760664057695565411777997613472733719946782732712263694027011614454317250301744276994895179431023383553718948159409973782471901818105425846677300105848800865795372168535744931466005775669991229977808770509688366010889941187028305212554080523241814640274495092320124156098876103921909959486467238073555911035091055739214127520837780104031653059095572932592845812146472273542465136177073979116823722646428635488552604455374014024912880389509316424427858732155986529851259331816516517621416606661160628553941998447477849044448872023426623214146425377120452626082737878755070137760777727834994849310639139373340625698463822230086065085452467385979967225112610535308487091859730251336073556302666379031945918907065033867091069692742738639678381207705846183350594255493234389367466390053984208943535622089958392276871432205282724418432951204916621554807114992754362091713401169541964439118375050063257507667978231027877006016193882051112344126542158461687406982996026790497206768312356076296382781630920673105498148651814188879909350191116195488635605553781322348996160369157059499221615363139225266452592215218694256389796049094329034340596327889331271476168225685532006694479841157280625905137235928128639220758188540850517152592620303538353893115358655906348947645752843630506188697076080757189392621426593427384114569946818292406875648541525289403698420396578188702927080083865003077292095369552835937443876509981778777025418740712174465324058698228565102401568769103175245293193859511398779123690966095181413530718801415390298126681581563034576715001721276108857030627034526319308146710757125463899946311576544178625306453761799087378770883916594315071922159290511054871245090100805657485311191879943663311573835114688906559393385324757120928522376286572681695857656753360039303231646769633947885626993067333038262183605666282152091661872107326720941013689310683096533784161724852623418691182872189054863967090202962318357936435172760510235168700572786808715848729613636747393446487652397984753673278007248852295104461772801532374499631534963909212065214681055621181247765682431099962600480622789912033381417158649022480688386160178696722330553278533729316765618980562286527513463237290950098784161241763397353247183693416177541017836711833923505776962390004258756308529443507562299168247976691708971776773998990872611518626394099984173795793567287355186855439652372517360729824926042818320738087566542099182526857877382816209199876447139425831421386404174055515926697972771194581652184410234252545154847675991147606385235779068314638698973068436131047427336789205932542185749737323990979801033458857779381922320180104083695759440684796870936272517368803486599030953257005992705694056376407523810563491273122603388824991737590543264245118110681054187153091535462488669560074148023304990499748304055797673121577055428749106976486359936347419743371087226215039872459842748082320113020237078148190551450202701688135889386088950399679751845525802577153361642372347258339644744705939705367039227006591523571072842058293810283524886847752684792666778202029922163683331116969287944510984839361495750819845861316676324854659524418633509200478242045927085841052189147492661505129963840099101433579855096126742333817146495518627537993996920722466880229730803699451580703609254306348860522062967464460113533517759006885210725335247420478312255932092777227734142152374526754985746088737571341991861081973177366711934808870466304533809043802393476528519172551012680272673387599283242219115233411402136807849628536823306609105454367980954253324020114560124347810265796980085581092186832384691856111519968837880379543013108788007952836867492847077633366824711901221594317381323855148900596881861350939992692309674629116515223108862667248498380537152126430504693367364814862885452517552426909942933503301603187454632544304178720904076941712887928079938250885015796833934151954745824050805214367734761581072456352551634736284727631870433391462448056654685160000623083671905979467314112875707852139952771958108570842070874648670849917037500577997742363143055625357244421677894033629893327430810246595503855542183918263186322421139411922738291535356087876604517752526818065727305341779067337647808573408226490006596198048758888740025100932175631685372954758235298595261233765979425632886148473620721843693715176593982731498829475277878409427792023447531003488168574987219120902980976068952798602863454457274778618890845132148259340168809893050941689564373524837591370983965409939647897858777685131118866204554482048731573808116048256196497476902168716052795765154931919828574469724095648684852769749054656115829419234808336992864899568463824884383687337358527262319292488166945368971888507932555705246535105865348599873851158850757656433395324252871572015031696190298955158232782555812878433343735463879540843777470573654389350924994777995357542569628979087652862434679933579279943891443129818735649245425867933842433848608654660604242511802361238992111128684407426032020684517389443750637928817511293907560201389964142337435507137888820861008366875322377015210633621442090102684434820610614203584719562772691121938693700254653729847727359021245622262905019249101675154840591334759116032954204711192340176220534596267956779224654704132566149919217141135846320813389987416586774141544847053747368042701782876643527544180836122067462644075520511111018898914577734003811549931168657116116978762122081445530115138495198453926780530918178929690260516670045316189386295511153207952144618068531486028322136020807003381948429018575220723193303731160939951008036296926626140551109450240424794354720410902366833105931563913560115301680836611342894864963327508515151234799759990066962684093513815109025949876897883186366332634331681329458792884209478769813475908739117021456440931246289281278523120449320535682940326464241272562777856488527133974896056348105588888624530150130133568929226536081774701907917185291595612775905494885270958994694142404986890407507312939282396456162725582211291219452209615260502776316197307693526834903893745313786809283320092579508056647446494038812764072930725857835046056307472835753086386534490044646900466054436079953296473315656910250127404406013259808563851725763531536996047745972279221435522121092659790023944831086770951893113839028935566081531597597752101596527498532808357769345643046862595219807193781411086927442940155975976827689063429868053394665180457273803035708359384590113825590793415052521756491245957533837651228288604423248841201820926263041129530418261330736969856459205955537330334703028396682458974271893814364616254197573245920423604435976102973159022635656773912338166709061985611894260940413027824349498416341654413580562342593959575641782065014666616288185972992829864961591603240642039059499273744830582419844969923608491105513007739955576051347967441318866499237437503794755925623851151611502151264857972392822924978756753769111083630128405664454575040718299440655644181713616275126473757656448296105849807371933064543187129769655382994462214445579556710626383633870997902145205189831442788924114351801813412758958838829203209508285738824346822514595359466824290876019611515328928020527072531113464983962995789686464402087488620455601417269452772348713760070029954104038059351695688208180513189354155335710272075708379491236600170315545335322773357405336449025113433361952792346725346966771210538774548506634572435258506269893650541287126810563161795974493546430686865636052515593379054687647137232790475207267978664747700240004486462269261306452005763207840164346454091884833222805191830753583747823381683906132153957542362925994198712344353338509210368834611459147351502970648359917956699370645531091882067700550779402466529153804316955050673440755568291432597615234711299604146338875905244875769762540817793376707211988811753057968339357742720993075605949078300089714325586653710424840672006207669886258706701672952706510692838258900893816248526417956101062804066737909308829006091261939307368423594259510241084565874497456811263009431888209368839455783475576726509567781408213791968916634476012679498993835834707615548029343650603619900019240461833432482821249313628947167063465539547518789870514799869454683247830824317313915404353660208941622102954599777146642450116390281339445475949577433083084172905751748840016703708381614669332239494111728564463883848110015473352433872438756944373577829560752133445108295735062195849764346565579453436262517034440035194976900744287092437689825822727245628020341065663666634574966320813905848928185498678390241816962056587683704566653101148307804055917581993816762701599804803693717137341402054523823293035574985605735956527534399586319415190387013769464533007095793053905324693634927545916151139254225588856584732466745418880742714318487384925780978146587148598216528749642654992669435938771200653246079849133762523712750430155070993637340240740456740448281955868074612289428650278532407833818413530129730867074673182129067302571740104052189095083205998022582024546476066493755748847904228245765219097446943498771331757127742969955241870288406898295357441618524421968444810949582129648561971879707693571327735415504084639582443617885972967436437640804938698535923075433741963401916528303723033596421958420954454512143725910361878685578479441164838527119127370664711996714090975747164426133485938795056650214343261197770024383422131403225005883165186144788129040303358320545668348872156151978758398271144372063436602251358056268843393742542474832393992871029062737797971967881447779404934037114281192295718898949131068725657749146894924789854984068507990653658572255948570054781487997510439218915446817831739698427821494822830320320927830349704887223444491678105670351126083287873002291463071298247376783405015408981477678347494425647428352160046829734225155182774343584134749633086339875708557412730534374075072099102206562594155929459436944452157614357055596621456626637080494043678135685865574882205253302460072815041945657242072007830476137207227303705426216890195306675625699599122932871349404055625439029530894403904357976932575887527194239463976585645700935090089075594909842883675793523744231269030240307224018492375612290643747226868678970022264667229978480655093303562707463564363665902783483995895806994165202396908854529477510209682990095295070703203304656794952960187442900500579536164916666024078053743451610919779881314610019379075397240889163768302428984536884245857860223946132743643536711727678711988291994927024556670813603330386700251881229727375168327683207419637096450945138820706332723713309321046779314304873356021045747384765460246200459715859246461351472267550348047837027807260680451856301440721064002906358106689416057480018896291326919776488275876697554889529186038309226273441774242372561293047411533481752047610766367994360038268582346171329837661391594358113582250924618961414992559116790405727817232678116998398557161486764186028251975235466129384804121557303582674288561423545994814568209755393551072120650336368349855067336491768562311476372943597887906537605764234527117857470821207938409270071381783331342529635803227739535608433403343891519192058549792764471653098391736735399487976051682958844791539422377572678260840496609307072520652215294083235316673167066048905346286124919275067538157816620554809738313074692674708740123440977398416099148031255803106269792830870515839401331818871464889926636006225141991759265325612884937969796823399586956948538747359121393059673200458083912925077662533367217968688393811598111045251309731772245674332082745758202453250224672812220492442836058512931226898449627587731234774431649964670293245843911614153738235809184464036173211570188636217932144036631809385936689288635170832108810162836967486486177143115360259389434350389461226651011667688179763314817269601238701783653170811772010450851104058510156336996997977488268635608592605971106006065774598284074908093915304717929212396736585233854793629739754134161727506848762956228258562367332129626877930854944043758598752287244265404497715066972161778872192870586015495653754646344752742457728217715192607490279231643042623789793091304591808067598278344275978096677337558568706777202628991192206455918971005651815581402243805811524559445691597026111226522516803945539653811757294886929280721407825404184743355748589897356275464354819352711732677345811508437370392950751861957823653087282960496425602911368182094378035156041137870560602737592378015705167729245931049191262231081107112778327820507989252837531817672065545316123616225932527920348429399641496970826319542009355661491252978338701433371340221602070136431686282041157226253663062176597562855564208072465959520487239960567707919625600734776602709289837160062791967559648501233140697400245338647480137388886938907481314271123712788311614629939178994543533582958193037446318959132807028998372573652910020302238445455879150191656902587628972962435761370954020476910941900868229084495575520794473374400554959675732463103732754614842951601418735643224937482059714867556416560827147040771108753432740642748207783698746121338124769471739412011880141631967066937560309505397796065140696431548801033367735451436188970578393058337173559226308996834833273037897250418359851242571563286875814087019809989432032071159222308843645779233573959685063537145038640099365462389403586177303964247827081625685313432927945269724150877863747139664706620819886424431966711854414068820922374573769298770429797893359766252150408869358649643134053112528170202644898837225853762426033746962316048137093101009319392710112134738060419085957666110019009867713594527040159299113481437812660760998468084448126209334410570366088426292244524246568839352402992047477470324183782083941439776230199686316804502845567465150109737731220747054275292725470074027193249850688363224674603097397657174406657709515238293162686286643644015280603758482727883554744289486851042739019416244536812050742074520210915351451570709933516517884989521627723503431743540049052049034531523113969133936025869338026182428807145664581553521740217811586140579602992519865397322914132331377939975369253658013265533315772148085257038832093329115491301615648701483316073218591734029019779811796270918894157051000916875442632434153756992028563018176799014642423438411861994477575401882488308537015005843031155391232417070348310634064876228286699930468515057718352055617614417082747444740071244634669292194375037950642190380979804108176325066135764417964776020404279996943685394653594167401889981221856681320397999205144713693909314110843598383623431972604344468880080666911415003954958995913078632218757767480393287399815566886326539374612724772073097802357089067886348927155020881190933223078654322331185087081789725810662538945507994893942342347422803127099535593697840510301571375515537488928826225694022667477562474167473845677957988867330335625986544467607782352660899184461628304015059143303318310051607587659833305487380845065278220005127642245411203440417586057838382097369585472799789943276944921335803393427862818086134943052922674234535619213945853438529772590590406850301019908073419087099646977760541623061346446171646357552509708180320939841086028979334010909669504857667794482121510950989047591525962267157917953699969353092586964505375736977468243557026231492436032770798241729799129979478759606118159284184745537675594841585476520017966551278714790541389504000687183007396993046671248519900151393835797833256181945148619108132446240843061533275832940072892130412049666487550062267954904509266775250046580018537070342450111227808845011137225338407262704516041282382701986968862536281531680124027591695929477726502572477508148712409932524773915481765039251585588292184555236167066474247679418475906800261810740044660828782724125977241172351829729270720135574993172112608083444324541192833932484387387345804652794560576564238219360494359218732761935883456912245158473136929625471646753699530797404911040163054583140835545921186005437975622067610585754935573023481667911262543678319296498725479808388716267882223545667441719206497737348757350890678393114040925129873635704740767813507080907386632448783269412458671485619743214942802662152856269082754924311036972609143461573247068747481412213055936997753753644704440990146959208826138949521946076041562463582671647694848454325458727658637883683742769779557020564173601040826064037930726898778401700317477156875088267966679015763400641135299685499801986030962537341868105359078297117702803622330553873303815699045160819804812934827995153556318208269158196350328649504888959826297096711220560986657238325671263728980290505664089371587651802273487462670092769197967135939271764290160547149185161597409254885379953210991325784829427915028484823692301284764789129852355258022229349739019017547107415086357138122852241256027317067914855233984307405390628982097538804128979857980490789012813601803105160634145719244619530759538916718265085467850634346498731433742055945059175066905944922796949989515352529629426569318513299815704856772019405381714418387332189923654832161465600433011706105703552818568345501436455873790725127502328150293423733244530814817086449579254835871910240065312727005457134582286270505419465167025345805268407148586554261415122630903456288351248566893502233342483652515848365364917673660624795027956065461407671797632999583289701864595339637500188901320119103447406957534706805507378714044600649539302795717631307784622371737457289431795910758060980859887556559325267753996941137934646516844246491021998243308666790875445197059789800442529041920806898181361158831982770413513388639770727204940645923830947136148758580220225320845206677146321504667881410687374432687354488469265227640688314814544458608019247457077647668745595500384123073429008443531503699147025959203073510915609992379764440974245529405828753339447600643493472219239905925106491519854498948914074750668800045732304958113472730388604511250225026212219319345999016985810400469228432816642021098909502972455525604417562705033339491161024165406698312393108270355030022343525774667285305204983990020087114519473414957072067769022608036091587632954774416303948356305410783898424644118573650094107130319649005033966003915843036958928831698921091091414200533832075052548282783839922666112548591509626939926931135743424743330892557593306746033752849449753667366578073150691084181170393721157688151469447443025203318072387523259882101275098514297982705195248620938950147831403529892278692649847440782392467293298429415546522365546888426611226819485441437308069971196920580064105346104620523488024057281769340045787467349930225985461764576289534507354101581377520625461536098986688128444645023232853881428319194557612283712190792586919303682048644907103615717417314150358693904860656429154193769747134459372996256892787652513221546499803612265880545078396879107014430254541534801085720404795497636066181748595882465696860935516259940567561194406423085311808630691510447091740099100307167830713603836540128343367787650842179140435680340720793368851053871456444959742835953636377597577027160604907307529535998202316539337249961291480180983309565217634577266519753446531345377428524230869006173200279691763470826855566047318218673844894256198952648432747874512937423455827942811742079233672456009038505945198270314312060377262427195458865625644961583728459652762188511616243800919264983902372776044659955113734439575252094089413972980531718676174523593186294575444810373424634083256719000116736717565072185794128354348507353302745963494845851515074411324518441083345499340334880797678455370568473920642776429886129095143932121048663997996289580567908404717159642774495631036062074518371091449049976415754595985319641166483063136102335789946154210375218716155646695324653134851749645846030388123860619765388142825394110915689595884589760870779430075619973105554817227704609126207910727551712314752395809756269309402200842667599317016645101672619022675431789779839376900559340958138987153531026986657948153856427978916694798535268548311393611033629345177094363846914062127380923014656409162882923774187053399444475639926821921668227584167865747624986246493262443099588005466574080550501688431383441311806099752045779486299453579028959985100357871857513680092387382570100775456685027540998483905162026003360236172702903555250195007147373378787142359726375311310304740263117068181344330393217079549577571081094237055406247842154355063547829687396444453359160965512103507684445762123757140147045949625804597002426076090415843313642573308008214760656186650797116108119514553264598498176643971594252732752707053407447666841879019980204048766760661386671844700149459852560341104635584217439844861370565673147644839714965202306886332518945705994154464994097033320707982509402756929905996429950864856990546627587905977855611805314856674871196864212679395131747281582587785585381789209479484788190363477859786262577344416907760413899648837710660746768428098200763417871314532268783884812243967469184597185607882653409934216727481031784649741591424377095563038034022182056237792485426255921599548589952547540098660071193518680119069749313741492806015080958897511185781987094604152901416764758284862325861352301308339044661515608865377897733749718940181161857646482975457166391776375833945373851854185051133942088987664865666336534363529259222411691577516472432370813773883836844252921608563960306729793409977167269040235552016403322208720281662060950375649325066987224655869979524749452929613371165759093546148473213058550658477066042413000062941667317717171185216396061233465720365856878432670568424103013899403429316757155442365803569858009008907708982074025368488227766131703845749208113170506322888573852705695873524223289135888721803448573370417714232413018683393233758017341375578041033331836768456381267129626853764856377376205312167349337741983238367227610088050566557102295764054853960110652648173973419105257035769365248416658541805082841878006600332222264860055264283364189730762022867924052275163100802798117687114224335191063085649811069968339927957954280178108702406177974950124801117563746942977589284087323124820678227264850781242883375181012456005751525677827039213021308080273908221864451318726733922731009348678121543226705388865814015898671015269297740399140315457944655801996109097399946481979394764326282835587684085180861202669000200486410771707425708107411477065280112816365926941668197133447800054040223973940060949250295682510588974569004565271725981002311985331732762486826342959604490734303330708238655443614435267364243201195831884848456294027497323697014446536953414980228817920272540117796110123320032246061184667796851445930264968614723400791319069141225078906640785292028601485995383467868133518749622978259069720194341898742807841911428013965846904812625218024801968576573105456668836072579685376619297925894047207063281505506269296201055260579938696418101586931193296512581838315739914370862523008173654190489852443424274928730734852479672259177491111222199420982449310939334749824815068968970040927639923825993644430509734317937625609762129678729560482147047545336896742010034447639402517594953380619049234098855111870623518556213388796549013435707224055318075219829448343512341547579419902519474161564479941622190038376529343419565738128213071997814126199124872588034740568680229135891290272144253886567602338209344967770365984063871080127063732447499416198044521986364419539587278715300335138084059173751920812039620025119932271253804750756960849717477877991674342735967579476653311164951456432866261688787101679553924298712541619467098923549826113249401912446486979023389883231178461395638698180392007104832325120018304486948157713960952617779233902882914626619282456268292181649075939942189295802535104283241654405420456253134450007989537224832062871866709816159561390895546437947469218353180189674745888080314838104739830918698915551867787406731324885480708617840942781646007242782598839869210041890935417787972826288397013988550812054544005233045977532559414718029030816978801390496742993182757345181569297941458458423600090443457500189633925071107394392394482453317738232712740441063248413982277474993067450987831484708705253429139227185032662164744828741267781281592074592675908128098098491632458649512656790914905005170116761932893170990518411715600427758159203736927144844742265206665940633768195767944367382344564915356891516277936282674050881465065984689625380834177219457579368787015106272545107935476937450893820353032977304721994765190560155782528092348230276435516708252232778378655611371387565943605693886826069390197778034945724344052431801221701683636027279134436596693930386280583010565083023858700402425399640059516229118065563518340446279185889085836737550951447687419759274626702595556244502338069347194205053171742651660688609107175171666775694135705384532326663646791190357507718857654483617524763942711278979421339881359183034719261735392290104776221656398278056654603449373614632110499447786219563160656666614404607652810989200754707891890156669608895290417494939553881178427771699326538026503576744193752226671107986645250797684667436564064718189391136484949802837175231677917396484668460609285114482111691140068870988384170361272980368276061804136390228191642466807603492238652978491318535157524771469559869046761140466572899508893339160328752177803701307427216940608413020321055031237155195604133178704914335838444371362180863200937167287753409164394739935460631714097239451680245753005716564470227311462259927117434235812414190024334555259545148804687419431554972467577629197067693287579200949800252527058232207328877503950806798487464111013376487959923036596611110109724677183201241982615739131349825355613696635936928026928892008658671969563452304537277204598747736747684536797858980325269760687311817838319588523243075807947427586555443330302090618630522093545328855583894276234269467017663942132421186955032655467275489044016243722246027118936579472615244547749243457019612252619270384905701811358617368328427026332315873776012346923177921513266858826150237030580711725368375506853841766428265130015885605561868139270818114649130063683906786795087953952109026920119580197475719349126040445947593454237738092324258544215988785840703501404610583929275523166245100646764363734663944599885844566991836753262263400338801335387711838728349016172973669024058861425028664924964967623520040770115324645475144163383916045287413195207328766188394906678087921214724180006258539266038408647292676605185022036351332568298998260307226765134946006011448835892054958157324947595033057614847737185829949798818252076738511904699460492766566335024695527127402448899683312073190982435377324543965951185711767472411074165722919741888597447048876984441345557696524843306481823743994364055161832973307565098165129247537772632651181654144820782082474153024627858238278196416189495810480143782202064191891009568662786945241481986563614520613237449229060056387416682440222093181052924884735258586069743981539732945609932641079644770694825696025116731783185753911273412325828375270993875345163694089880240363318071857072705790099263190635389376031714501136796410288268423983658280680205097954694121669728196082706368019211480759743021386327648257372647797275163719341684269441875735117225622138409528958178357279638717055919490442806238109011598296032679478922339669631235377021011122974869958626450013120382358940061392478206162528541302552247391423389311371087208836102547242582726096062848133309320788398421720686114197734747040894650673313195377749842842481236696575002917293767181841827603953464065335668998523905622806063513769186406093870529250755610214611351195563285704424617458153593632630875463109448277521558427279594951333481907486931222852756798570704542790679431915249520302697513731544767633602584593431618133786194077871972610780776285446544947999967214877789216396390593575801409088631716270356396869466743443632419253971454583766054827943105869003789235829428321471733971040522559948348634290585962736422871188013083851539189791478181170687685887830201282681014411503983062982368851190143967610294942677717257469040355452676151568129738655032424373031432891545072201811376505471309074510977238794002559789455141679742188499771231668206137115974892341974080455000445248906016326568746974063497542164172203284948806535521725737299793293591912880247742262507164612840145535992638840532152937094337252198424523529165847766420381107028135121620948555083396089547179156447491901806172227896777780746501898879612732665822453063026316015088912092626254621741103607214493893541334902067140038775296041782038088134504681714429088477077594566770123438234931877027052602782437577759943098240106046268913239847853548805409910315462677244013565886034370141238295947839350256344714061970256118851347205792209078051668032678074488323400921503686038539525142284258384497933908089253694765885238927663325460287675941035237434716214869185944564520295655335109099284069844203231394177829705423318323162676717501396878573164792654263372021477342378184851293081930146983538028009762769393889571449038517792218619211451541330709729490217166957831000435047642442013095160820730123528103245481951826117056039232041626705802745463485812204631600696719631359542385371481818237104005160616600356476899546854197893077977652610243220983636721690440453239264881564610690110017987355539654860143292936117340200691545631750169641443281097617121442739605125476015118684437293813032757282478604246891631731220719593477242973481608321239238043522989175109609064893000649186207788001690882272219791838406158409838428098965038932564398013505182360656249575962809912003320693986724149009272406661230187230509547237464767633046512658975324121066321488146408018226904635709180642253920881832554620497278054841183433038650671893282958758003476539252161965886080092390365007507722241297813153853687677372387433453591174283024552005255657639384795746598427649820181246403764494687064818176666804788503342427450598818313948247593130587818445398552087611007684095589827004694605421847223708224542771921954050750385329986672904150050915620783838424725725399752875374657583186499587750873798604609165003504205948203360031168882062077344882921087273021396690385403639019263568306252106137238958697602837920755255729705646474193969395597041611940974998149829068501426682063332746126135223793215705343144230620113143474743344866562688390612331260211745084714095058811954080452674848924592872512332633837487951407591316055295149263361135129163034975622742271569904004687002374320114533199191246560245472173245537070787572347306370649063399865763744026456051180058603108158348022617799601619365854370333733563564568452071756461085005250265087364538765431649527877024168372144418325329436111588800387109825013034337152571823057835703210516525638813466873614469781540847105077191125202566715683719583342303081004555811804767075369058266533575332879048655747202234815559360689961222094034061875145680284815294615150889501398488831179520698741504176744382299584702264958663977293001593065526103127266822764910894546052022139200086265049623239237656787870106936646631890975438126291463583618068048882446631051253717203099016532222263007363698081924601209479688625185318857177427893398728820959190092463422140955937897501017354055172322929590812416814126357738863743632358357898924508167719424130194776639424929950405452675812497638715957698449119013755340495466507861699854162372249499232430840126752548925492880112392461108516961568690361930789162599691437554875045831770548476289559121749473879903880868344686567059604240128942981688494253413700449069223551996619255466208326608201137731951557385311245998118247295199562309559955307360096014392259147910274115850816723478017011426119303691599645348475963491597607530355864121450154480482269167732548844801104520962582771799265256243234653569742939511250920483069624532492916292025731583342210007809531884522119024697986603927289850225235048868839034681073990847514621129779455283292806855723005697189216517374446807799770101779191495007908885088747569003107380932483031367372447274266184183826936459010925031735497678104887797201785018747233999089655285927685589264379556777556728900870415305984867172288506420890160445483492571629740203647380029983669964322798740561357502547993495823513178813511812688595109954315512906099072543486844880099883722265948326744026045752973795969169437892671295646615732907421003223292644768929849614629950583349141086249957478595897298612457733011720922683152845235154415776532496828638174503133043223740026398607326716889233527894571556461644217007332163702829085335608843752491433244678955999074489063224621794545496526279096867429702864122315689008299943144116300722876058619728884514455558078552691055220603287681576959850648419077331724842203250748478791165495213305261174012497137407941212310347373171365193380109183335584772357673443239375648712838850837335612942264526176013730686722875598965560862231056113314888352076515051292622292278730357542466572002829651049230985015700978386627982823425375116238369083476718767857136910949670386887513298935246694092209033027879135941960031763947792987895430692998082960709382289696771035060459133874683158877908507131573056587322775470160259830148491457969923384786843239729164013752337812015317166834294202773472389288819026303369511778074754605588438344182264868226451480450420049647332493328301698803123344975519093598968682043211171036364483721096424090634672873270897092978132290777692668032728103205593158005629840035999048101075921609185202504607196239732664571103286621022525295052277969604742314319210115493356128987507355709959068860685498564612802095677152188545159943413701912958937252369439037886240993525304388505541784257667737641321714713285890452930364634402504193712309664378328353449647231919291708904438331170960799017737420827862567842530072682122267048161657698372545174800535884694347447700870794738176201579762420302056053266007161747544340859712954844174633094511418680339954193461873929005579257550711798611878811779057119270782351698335605762396172552391797343698350234315109981499432566549739288586331023737455823745765895508810591563635747367715051402249421031293403724259364665251320758635972855871860194746773928773159843895142610844916211711819311063938282435304751762224405503094729387091024021707089426635490270790215520028015006984003395335857644485747458915174962228199047217074503032578537496003830428648648081477884144864272439405566855711149061740687932042580838159942627256697308157356971682410886163732364997435371797421360929298087230733036298600440466977163534095538825427119077885989805078411435335628631908525184667015168855054924433291637208041542609711817832968753198246161591217493053079461717576388218736419524258834718049179664651179360962709415990314316169637980806490679511303273569364184656101676676540540711252179273213679916723699332313551439009966675329421999359690319728410219348722721290673139290306278476657901386950565743873756815423813233922744946873302181387439090073588876149660381098428309838142839931386572390799478352589447191989750891548928118607324862407033741004393370104919345007180730223994576050700605560713148696109098401280035567536207530528329392956286539226493162154938595511048730935166153520696381173956094748793147850343845911229974486097803499516937160305531005816760905016561262971094325753759405921678337923856842659360890637094824424985016156404581860893358736334768147127034759189601372429580732750632184154633244124132286346755400652830040324489182385818410077158656892052624973096839125476107400822230471784119548968347792483110155870423938625449697101483054755157615917137390421818729224942540630445854419624926816511779741658536579408399151928585708467457601007190412685481760432959946878171910239557251974602774981964091048012098724188842415073684113186873685700183100210099422729758558006718746828245846411746931391439175536207818173808123448620555616531484299241446391073607514675237084408751356737019715923650370302669312211395691101717320225411861033191186417778732649621044816926916222576774332113825036811791195851615886357140283038859622800111817934991483257223092563555856354184883776295390000074156250166100730105778919554497185475267802568733506823890762500067891290796913069334444200233055621774032026422906905189407680268137907309970758697865706414215634257221523965075850262249938238124093725035337363487601755594112089634320824601105022171609546565267198185511086590739770733406094966187582934204179799962109791413835779973087542001672820905336220318974573096122137110922464315843418642114482700214697434346613617328562403846452545439550442874061027027823834858066770516123932449813276365948416331266674652774578088787496808543689013706336893004906784683486921863046980976083715942496416523471938004551726092582190221551758181811892999171810089275939373506984136266603045729851206996448745376784594293940497304631678533878160548335430368879194695138958628277049045370772187144309138096655990277249869564053087662359284144796510615652869158140493487239165658089197492605442474149233393801470353830260094551267030816752169972680032991673908247540580544717486233607286256925000141496971195963048044043094629584031313194825397227997229415785873752596425753014152610183911173537887385146062641844484999371477751930357881534590452511416949755007242749946414278351610111891242577826567941739797602843515448112909369619825564615787216842729956307483454320941812374536379237698497991178462035159330089138109229122367262563562675851803034136860805088605225056840507189352498753678763079193241869763098608643162494206302106107864555610681367398298107721755789344631123639953639100850366187868515632233282125310729679512575829417304731951669527479085977811378651827511949609435794051174853084836635126515587970771093601657031048946655821356533946916929105426906701215316519072242584842412883399091867269296904199709796008028130096486755568625940082741347317366298992184312692301246234039642864359424691009009671547516400273523659258208293073075200216702572565059740974753345820239304315708313095277125243179944565500912049945930227305565011373581966262407532459397689348292788403281475971037030149185221906272342627645355742925069068451839183747673821688857877524388830803707327460007740689689248406797199817445710170955656558789067375860030419769214625569506622970064020420072870332925635816314057733111578941274631184370081383261586460206337018933771542625198253434047237132502486495282378229062167921101294678731032090418902420404063668885148114567256432298096031119713870724104281108888658446692759546139206294671303340041277084571860094354349658999622928243686357990546960210429990933300901300870946669113795940631260451388830280465701415279977235946681553247993239384206882924063829194877973885055529702696725291854358796284941543943409625721421952223200280321301893135116655820024558792834730803006433886001808277002943154862898185418517884213795368200024953101847365554852760392313090383413726247578349728222631332558961598253410029712156199289112711943190546439600245305990164536465555932212468889685317502886043740254781782520884146267703743115936130569547938374714158821107763165395529469421809480393686359475784559346886195582361703450076391001406088595613850120749085593679295952254104339933699102514193233712857150317776567172610420719113837799567325001994231176590595629984386090027309846991259907244164470783841324491231333238013972483370242453020060139793740689572258693191250096900778694252432851900754603714552055184512749631880474297920870716098802235810955605905890878684298681288834419703075293396053019787616672568637295799213428847235616474163186352238031470484116195241947689265091822274460234013351222743433346214582123378816237543426152593430666344796160818946259259758682213118992735329206646170450558350067589285656967363545103786461447741278550967310021430333013756235937637160622158475161096687323887113881886823192833917480517680559789386053175628848416566964804689972047764534278185920537849953049471968363160965458385826780183341645184044942914576348971066675252571297815838524136489544022985103939570936836770896306089319233364436806703404611473780738967561407713033464475062054661442458882598291208840270552872044823234386750436683165313201645766481126546654673908594710208183882342768899829560839527155420788907219503708645582490753242278476620355868905759439269887771171751572748692667782496682266128929384927280502073549290301849929094176842363649816190373709786521259338349431078664512348276856939359370578701031694720986512624250816406969363572463736475389264496270352181694157893873092254286445969381900985185442244961849803396125729557525585846321239351523703114935799473943813796288505787865699464970755894027448539001591200534793414155238183008702328909358882264119490632595511618667252956724234467530376622012673928904393390013823781901623330161812380452067480528433432188530716702414126105303118546656446026797676723421646755228044101489528148117912970461435690997107905026335118937087587514460543466932559153267440417047960676052022275614497173394750522436020784517929381946379245843176557450676411325026547363833369738896005494907853100523838188016286639306819050257893409457987959171542213631774516712328944450935518750627825992610066512292521856865740651622025598876534351176361271780433594190956628037350089538197969869127290995115837481240428065718187390597378717419564616026506572115779399438301073159059862041298401500431659736385547389785189611975646588650098981660082739467511149886307840417370278413844670616205898933307811450737748261703990733670522401240878022025345949644380812450045242415847587961019500556461028814312038532457278764955791745260182321540853305766445245966311321121732826799621691927359034859923312202259447182621073092641285209191869734032628646807287131476271062910921400627533707370043571768654118185291585499305992846878670596279086408027869153200032050573882293542974476517284819891965358656910228146028146565207278359460574214307061567957733144692363566756191878532652513362819830294797605877503404914863267091123588780071532090546110145195364483775835642226604784927687642484957295572427814583264813826703607441621473234695632521725287544535561983021022236733653083920028269718648667561927235878602425573058144413815101321727626584386648547820996199601568935826085705620284494494079308219516673744688942493332231818761444208390936698388395946977453149472782303550134365716455201924181769472181478240191189352918537207576508577856200031641711817329318039739864814993515702106276651161444995574367668908451840079075201531455145938529818076286901508059151327054780803643191465153117896113217933358473114211795220365221132360939012343272282369151509288495380999911419697921433228897605747618545176511453140172379138898217160645657007374623796296463954947520016673168139920988583557085157743704699997027755090891895049403101719930466942518209955139874603870730401724959748533480513399429826009742931295532882129119735780139387279336855094320637687682438036116709246099959433999471147816367051553408174193861812291968117450811117367839791063127195420401568957270258152672855906390980714454111044666515184877922835901589171843735717701883616038120612337382591863202672501353770823577125458722900772641329744014014945904104290895108239706344932310124252549610578892485532684731160794891803619249969463619792651786283514421925919193470968218052613766900469138028518341173170630258899830500152624244024979437857753503799921116990317712548892509734380240706122206617840458744434658029578142049719750718861979481166863475366163837921559075592381631041172524394215095927245652525405905305611629712362275592370839198556660336391033345681669348295121951937495392085184812464312466926514190404541062769923704491498139922161674957537415831235827554307263597095809754853205782636219844631506752821046580527186723069684080452040340964664059601222304440188605167235626769678801504073478875599345723892863608013955922190722579770915475142589827525821791183697209824485860670201045062095330299352735918475922781881217577654236843627270513032531116380153093709828249033522689151063815529729723020627221472726448834580420844879344119836975866220515339130311037580946367809501552006172886741407385512025319921573931655352380100291117436734547794696197412074183502244073452326247696817233320756000259967191407609761866327620801353939563482796701403240022760258070643915710209978183173220307766131954250692428496056013912779368766928903533279308068496810638930251704015426513010326130454265516143856676874603965936901239349791114167103554888105662061643768007213882193686708985306871723411063023312384365897829184921356554807698344321300469943132333420468251103590054704615767347368129628760769328884870020875779465199637756086238178621538666039158999816124280609366136071196308779034063977920580894778160470576422413160629994874573115383304247323945483784364205420454420689168759569698545344279549057864504364334545933364922772089071578641948808345708088029321477259392006222669349330709563876803114536444576299270026893957103079338849638072348127873342933818465838370558539655325076713239966849709644392742876294769760009781674564764524409421630490091098185234220496380753698603642888953490994982732230193348666747592799005601983910793886357312084766107206109935310615047381118440046836456524677704140568142582184007806967409688546689565897621211947498992464016568067193750936545329316440970035102174580825093135051982271681946525848641848928333336703579799201119732973115454097264372101206293974578331064014344492041196169002327869510818977764973125335212751700609704382164737359728814597221475675974707848167050436618387195671067475545648877622023937862533379978084341818964801459562099469966159601144895963419063582156699705905776762509505527861391738043483623211136438360031568194868069281327727243684166548713244289049639941229260093326630642487754880278621881716323497183917375662887061073330924740983671764424404628949261729508631384418740960285617838474841910361976793534744954751970011890127667853503687828966450298109098651783963652107995823219837849055531724276311915414141875593698381552386351596516644244255795020839269705086926308613616992232464605583897077107385925062085873234762344136658433042139520662245990703996909728112383289339802125458895947500218815609730320831889956974786783139155746263425882928724312517838403193022469763926362195675314856167108748434107036963992167209522937633633091083510154595611761271505440149731346317816371166111738581050624103962020543081810397011000800965433589346496489038747290569119044720532138294478308902837664088099982622339569897089454238306133451661020485312492741643702123677004176752372400951693609280788716657833701865479236558804029004503448777881580449393815040967790472034588454921920486128471414553683079900493317768617378156879496904839069411849343900211275930198936504568074198619859155943188760145658330653916769319322295950281052251592605814953397336348939583047496409120253613275982620811964915278919181992018349923470708063356912820269219896707480574629460365374164568135052603567295661334856916757673521398119735823533762825133829969826472319966644375369364437984444051159839039167382458011609254432291754245310277243995525157828973865297496237046169397364100297557850150934873611825145601061140142192603772516745313121336117504451064393076772671176416097884692696555373674704169590273762099482439407249682426343992758971193464313312266203822497506278698592778223781714437073775851567394018372497305212221271638532878707467957907339875633957796561747560687778394754556913459403581959112270419080018357679901686133981850849176196712906469550156312216442971759075781545183033990295963869188428057534928074542992737855698370546082021551216928736945382913077598667339752312287915746099770643437560861125625689708689999914059200736650334563308077534625920718424237755395996954006892984928793472550965813153448457946756848016962244703387001356963087753750720200078318945431645805720521646518188961272635755743194427110224497347955577745582798278971599571382587261947251863157563005601710587603964633694011350628568849895603782847239001275873731200249724245249710173435463490510255157339425430967040191944817602729104339654563561125870051267211974072976544149003179688371053891957557399363074390692465082828074326422356130154880720825712771548538672649148440080358811277352514346687354127275164577425497992003495800804401617062223283353655260354680589743625544040502180173198645073878802761933811998550132515815682390115844730049822753526554518082816221242309836922500522288444181487653589686165377428446455607746112516652580747363055492806580957748367998081569899326433514432321883818727283459315863366165606612571968749730637207078524671030145170970550558216348884554266167405966285238288530124856270063546350253516727524877586304743231419701152984280158899226538437204585797130902417338031978689596500555338137767861314859456362000456276035567503939869031001264822301808956646401442304508442466135924995383940862765009030193493188566156357243317280934752387120975704370492846447945298014337329322999416821221522563244058840454380560602352487976390386448493222373280530484801759659928705410159369347897505786246281637453901129019221354204667700621228830944508020276029398177316248456194723623308307534618117371929451114390033457493749294047328761190260408723584525381170509502637077310372812351129991404992458904181980158132089659719325967725369258052227107465042393975466233428602926317913341471434181073333926471756249371631853276847870800355015586350561554055122659918279449689487722220205763398032100250622932013367731767349139857880567118295251412180060997098701015732201290144335628639923460993299965839970651951075583623968373833428759760982158075090900977690028838860405487234955351673842907009866468731015404394018637924972636999342784586014295824858051963121359901523745579381070511485098414490379737497284777880784698014784996659555155779985487474292066828476297230603971426009078420296907026700728446854592060633840172447146786235272790654535636430833066969817523268498348616120952486592032479297333330072379370679580968072546281718238596326444780305360987051538207276782398654119174021896354005839918629243820307981268855082913393649776881853150451037958327690729648240077131364641958381888328435039178561432782046377991002730422508207830958268684154392416100977796114768749470548946025185585159097843444684550222137174724095351695624985962383202923235080015423780499184474686490515554977259107764182128850539015513979487089466345391794156623724315509118612021385463654097763463064233593204028206543862559195218372014302417874601394837102894004432921473778863496973030908421301040171881190180194335269243202233874129580960797523451181208214478464677172396121112033574748437004648937488838358046630171551400185064914944748384563858706639003364503477728858160073386320292515115215743999848241588262064027111517131639551764019186904331688629941303708827052081573480934898673810388869055428329524179239577708000391872078011180691329013326717100578425050963031374926020306938446377557133079762593346325574560195434305063003431221058196688084463478037735066739527892711299670467608622662400598172423697795275236531456326618654124963347679961591796819214135367960315591411545319205364327246591206323989055606507652059322301342767605719252108900900801738898801935725582254600670560966166479009758340128586800535525797668131225960277295610626245413561197023758408461832208245581568428557906750859109039149516798534935551640261307330278210040162115589596925117335342910752584549204369578339238257263561021233291723281208424877674579158548698581701614918139418899532622018451442496834797544561872034779216776856868087310157047425039174642545111740341341422908614362190158940699763175392421194023137206301323039566032835689854509208907325717066327387054589667607016867060349328425578947062373244402555450040549339774617844063618204605623984952826939464665539370952387533629122539986226196938692669043986785004394381522101018783446710510970354825392659007503087001999284734244902193519500729416745950545529319468992146400692519984318203084130109169484143912328617307850919998954893497263550803665381011859928780410543488768444976113851678447591629545799219490126110706922823153386169051042804922042406958766317018480486863938956224323365441069705805295486608946398830213748318011780900898055304470351727110884783671853248547159078249495849249742048452250924943645612225577165614821254922825344799308820741020229669974568793453690255561581293482679174066074818409901399746478924264007796352857842153084905239054740057696514425386718051492175754393079521789690619598803436715709918934586655587877897852472295678347402806891596393586877838206109858039964450928818470793751512549240314805446621096964720672317984358786379625608111215083964556937631532442643175557697273937379141092690321220819222893869180752021582205141444828954798133282266808983206966429618308756483007524362755650053473322865515663040341078672243424753499639069802531389712117871111861391052138130701126350988388236665450707073169242943601919014932614414715286970566526121878635330865731406604249419096572791784391842164759495159541841711190262238224763427271622282813444262063330181474287092649066320118147128229589544128965707232419758054186899697760631858294766819315675770204248096950310281501183557186577435430198957013604097709269688904704928800079040310269405061455736519439387319512751134306231752195594930487253610585952119233004783454854527223205045007403525609397522317504704180285738605466533647377976085164749015081625268355224597713548458799520510047962476196666653909847019997339749427080363070932799111542019823790430416822372523209763721752868198484111783229990669827984221819319121848095579390880759502929128514533193060617047635269372047986240340313654702812886968011032904748685029915087088517661141992025305955306273979470384172943466351660831664933362390806777075036476018010732228511609348965727677064000826474020251337340934141344932838283244928955753020592074837302523624649942068807367815847396077843022322575421057547782779098915738928054525754224413919528075814838008127859112974125338091249225241317802723159872784059385211152728930028020591096183507361638680507370834426414675386020209452332418917828788599074622875177437807810994720114792051956477510001576545184816002279149327722717024653504912763633586509670074873827199333981991959958750444343836870853550129601307608653397853462803919435817421049350831235542491974723619710109925521485904542763607618550057620648017454718144942698598135977925694342376821163735222605831725983257564310667395428624986105433041736235526825890492417522590384408387407383073513195220781294037671320902870204248427401372944858564547450047699342196381867306721590055124835637863162733385727388571298054474989287694753042266178424144259926491700074553587987206388124849627419575649719705680854768446664818203857292340451295849256867072128247694923189020530018133558469545562201956106764292396345448485408743479163098096463467760554595472187267049435409682026821045908334948889897276069390798654252059527567708777293000135343789449289109010256953430852999508155478304674721775493376534735242242179551626569266411364813067865242644913722970348837119692741074014048182903553199145116531868591181916229876734550972897110557966710402812571456564862308695263355948213683526929674985949920447197467020801171645270717204146537061282444162520777699057954716986661668703979990540237077028480118822116865230941214770150992329055884565265326499821950511843007508793332188301578090064165548105281343247716230461001591508087765733785426216935736350974268733024327783932640016660020578895811692516622443482040855566057052145672591849418718827084870463454570818994657978127760316135410069079194565309095574976988222387933468123310436548426140085964191682750274404923047793368931005789190036925985581774122229029982016109832373850700997439567615028354376242102153917478125068475075927066899172642733356740737277552116145922460225595178195671145688664740620198135526427558239530960959703841442239377780389218062009570565067438561476050968897411446644752985561057986670226093129314052953715274886910540743336543834779180046716613789961370239567603800594625978128853889215661450799039637465976145944733217227306901823150375727265610711181892804246096921128365587594088866639044157446123661363340349333634939854593338116065778626889856516456776363894997700654314902271964465667662037976952947004930445193725631732051843323767805940862921063922653748468659411654499645024650783785960665964220170229003754696705282027436060593085915451112080270678683617244320935921326260031264072726497358835817886519356129858317696577393808044051970137779711958709173945868924374669382525099825913311269757727833838425700357386016246430848733382517280009658808048737730829794629574097436201002218144007589958808767672616709845444842773096740052633566484435818034900446258754878843993238866906232828475168858069192689476192970251513041780823910336032284256795549847675079543409546867627991905747805186839683334951258003620100455396519379574051904649318682937399357881071940922772830253368822961642576819233572455689039026071592973210960913804131680929148130095164231711298881886577081467104374307484021434328320534610342694255710911528689601769899223255046979432364050889175910321922429560139984971370833889077767782541796289813694016695919969931095542242591121234389076048945655921483531820643686666505841417508859610744996217843583319022555565206597713304618547187661863553938260419903035857691708579429884479028294738546857520441614050236616252206485650292500470612013194222869815067807404080668433680925498230925393352298232782427703285009293701130414336679705078213561205864955163290159088751319844590797171883030974263336067920522351708361169509778248647497596135079478215795942185949677969080365269468744002343279324010267900370003284922208520570220677021485116856882147727109618637810749126639077205915710433822340523242562914145845625516700740419433496057003204106416475886534539663833878821884706486405482482391214768343949587272200562187687700449779508299416414164708214721148889173097349295805581361137515824444161839812521051410993059465418621959932082702545608423661636415331545737754302915857907579346813393097561528873864421025176680285127899143577710068834339135485520303209003213944249962166688278776737951137743095906117861413673868170099483088191634641435643014894679957345190741293780072294446377183363015332964551093215625394465828030052438587262348332671073553582781166126169503180061417340209914283386593725149911113952336598225217675222390028490636333662563841835657367670153671766432929502741982592231320697350012379552769607426792694662113056739833258797067917383189092228622579952736770268996163547350538942194623674651226524084478636538523717512613352889401359538025540160272628609234467336381579903336216180372489304182518411286024464981376794336292671708846480104412091764926765952538721013004394851230064871978808106253924927579905393341571574548071070579408423505754487123064076057946028292403008639716806699554584646512592737400534543861914712747079842415069754090189216714552304531618642299673111859185778379360795458328898365268434234426760836259975771953725149375726186487794013924849680800489060110446242371974819907123162688988580951920629283756433753097021624515460710927710970416151874350685149005444769505570099072388722510894010938156803534017620357694430109347500028818110105291588255454011173989372389861988729566483599477369189637441418848718606773108156394977245516402401962425938030432067331482572540023296568849983328370060018130627009118209454506908190645210067026609795851565007736262794778672069974722753516938749395783006065783448732392854043255912397882979150602765691566195705762998662232683120892353965371378256649164151224151463037974781890321670672964533708795995486189045452422766293373058382885779013047625949719639509651280056437835336024721070000397984559956527879770602815190113499592955363539739474384439905925641408669365720365891650004302389674124888701905471684800677848352474774079225664059387126092073166139047574251855537371324061073232948920385448514624343284062315044766775908229136904790172672516865188624180999580594325366823731369609967000425145355810182017858416512993572658259990881113893962964597303159492611453121776462725880728243487356483420939496159328279424951389671399087573045096209775230754384106422658363675078348440712532041147558855686465384318907475582188366851515239660445496145003338963347259411946854412853457461398241815538495687876215960865641423557628487821344873606221105194175767928542749761427815360080506956713506723793454287508545060304863829855029410741282423811668643404226714113484127834108616298699567491541329392798807122209796820381299651206169605304101155096564736782108154649221357313609395522131615784202029424015478029209212455716315085069603936205089119345078877569474450932627449537451028008168668331733853642645580010453806889730264046596825462144856557433160106439233087444287237381406649584024424196620820330368172508820367411107124239564598059291601042765028976110513672964266028402335344703584737405535016693257891325937833265584598475934075188192292055551486444897102099350312099580374689513888108663716705121808748769644573062324299247020946663046069729473431981055555481925855042495455909761667026104603912250705369008444066240381003896871235501564199476534816669382832746994209785392404610471658540872917637692318131541442520743056214857879518162756146314359635241365335014771740477365000027768331569846900588759380312967607353448652407264124339253673802158728529058757261558905461811042661740525911191082628945207508091306449674952063056320737618918547275001575032176102721097538713028056792856080582948132407798930897776658913042399642888325356766117870021322948933469579320991316531461920798041650608033825580515697928547763909952489450442063005209946066092420200194940798945128375067232008177153404672633317477362317398001748254149218064737115858171185072895604876804736646678750615476612753391534853973958305582296489555799193552350767883082781791008107864524805283099809413627672836019223874593822096970050414694117127590975357470535391010558012218841518278633191360108347273917136897808685424916586040836503993915529896176120301940318773389112284129938133498074981451297841189875715670515874256958208098918451053518757210812095923761369107886300359097187011898567651790978234245180051516660182276266656257920954083562330947706821749015080516007663895770593872258398063068645233124929713240937154935172839679562968492774591438248468487471514479691473167532191817424275167282183789245396144871287612658277751593775289544266988222104977495648416459018025659414726503155680467491582643142737853854398382887229596031927118280803764330827670805548009604769234035274641489234139013768565653632630320648936410692490905063831593404572674354266149333463898204387521368199732385336125850446652862392874688625134552283903719207226675882271860440329843841658499662807904774957690732347212240408680158730917531372418352210955475101470806051610394325380031874966163612693914574179112837820786537089156134063391700958522268525967649470095340316816714527178444424622447999259326498858744521626074816999824954943798368718139102910310727267178143640347607017732285890659026415721985689304517336464129199273565388034790543415012731347997861349706279865183315867075780331908262164461694067456511308446333499233898636294777538426495299951314276787781274581873703487361015960907264946992437583230413976869710655806571692666055388881312865636700137827659466950688026026819280449443463168167718943975249916570200576617462599822845652202164063417177695518029652568684789990148649815936153981893795110286269489557746964754488092420337055644709816528525568939453451690506596562666269884643754908249215492785238580545339548905751930610451574261139056667828409482401635439289728701586561844530291232775997568095299168856752688062046155987479151040022645385085501140710245489274919465162629967597552886373464182329357511298654323573675333094592575777649740854725944577695902575227184037909401027556576642470648428582149721164238731946588232144225934196376640525561511882347661059633581962572884693022631578081163203159335499089081702225783704455075847953128297211366244173755609834381848067217998701926808290003778843304698974070894627803704911129710088238034913328276555544118294759597380530760813431889140730600283067795087083472631526527121793198855352425891172670079199485325782663394541480252352746437458483802812740820568654395948014619929968261671325658773156253715579428640566433511393394254926205607765057271216225156342865368688634279888832048767073165429526432059614358852578453257042110742291386946672564030012542598282406775270277185978959184023898163776286798751696824538415381099306928990650865662851249086984949122263892103211548773452769966695704847649006307223679220414200072287940409589744676181174793189284813597553169320117171152091270615943881104452128305846553321159030900265128398881316264878053201354023255157397189072094511224389152591688597533921137370318698664329960350841028953616441850995877075430127393105963303701240775964526614330994486438631973071050899618768683776307906272272103094371368448218785515236442059650492382355075720154387510391508787115414252814139487903643626265683080513379812011881729051941345693561213434525472914818967920618817424751919685813930914886858207370564452360923302823579731348568857925404459218605129449661744521268966482524331633454770848477338415686580052995508095436406997900036076585505600641757593371908015601516472302784357288975238560564172746446156611723519777060419535389997789311430719027143317175403147061330325003491613514482211838379015400967396170009342355966061609293585554788632605124575642002000244301857527807887273429153078029458372561520858996194158102709376923018993844751994381031559305648269342368359573222856214274867236832628336690298385207910668307353306091845813785965630808346574738988398911034092509381225916188044756345296692855796418639451445928347505269431534313742634513767991252646254750616819868951004183570817910159581314175704623067238223472951440218091371758445142365092411611835600593023551406714111567532331311608486261200982193176245466257283920858018918355901516987540823178888491819775515132637885923854946204866614574391644431366494321745591542907378345043393222752236504280175682227382601517257832969675798081653623666594590402050741558274037928397295621261458276737152754052803009290360839652240718668798844148288767163119494659437513804718900626289965348146959868359909104409569514876328116928487316746866890739338736490441885570774493426793875851026071762044869385170852402649900881768982077658332711436304304506821525677453241468292325975859627986963865619011546478017999184217416075397581928262186661639728817309204932361881614413005348511435293770829654198719038552204730940076963214013866710335227190081407394011750911993546435943316479773312296774419858929929891582384438301477379081133793943814331903085147221443302211960722125291230764697052776078018319794407452160568831934036614830117004416807612967133977139763647957670336743738386926878023670712227997680840249941226921308326898455291017971760529819225539841365807185206909065359095921161698471909098002824581526478001717672248693305707468750429043558287741780498443373856528542982832654843679485197720518097207812870601151356537314205279398266954615381543496790700524259751446954242437304723190718855905894789751894150113637498531739484627602601164824512807895295518342634432044914312446154510520967289033461301842832413115477685718048778574038572396007720072338085856027641121477505018528856405698715883150030646414755615408239664052790506170490016445476075545594762046794752317212424921985385740424325185617203054378275137796331223465287489713221288216939912157360543658935211052309653741348529098025775647855269478313838628388946329487153851161692940219307959711172815829243810089279776280400918655011080728891540309080084840207106441077218365354118294832476942980638958911775161137829506198686567530334005712877425339859191126123691218907621719653839388262312494569403798026789889082801422771394448756551762164015427854169439062686288621948102632185810515319720636349639614625475757777058981402443315537400338566424517560335187202052104663621020642512497988700885547637798971025326923604423071477620983580865566526285475312562341588365521225306026181378778941843869593907713864148355709862328099072308979427146197234491170652378747557911184538154338171301979013863448980526705314372718963004145382700761888625993429738449887415047037030594550758060718352758060151042300210157010734318559934413778684827200458665501332746260396205186467821197279448571379951580835809716548229394207078983653645486132189699132460962254850288136033255985640156531028133715551933204218202326904133156854003011352299359931348667854351253706208826844284231720305605846643499054430231971968447494466407629353983724846435661922540715070893795713062646800593935749970720098132773274509495268050455331451484824334640417364558304932798451065479066463827836351572698472538540835941311452928786217781117709653113083767559650567495246539075947255986695531644753466595250951789161632180996442780786931246167170079086617523707624372086825481267828779742481122794971915566388940660329940517166370271444997427326728054342477953732458100647963211419776371719405542467467877822585001072265141051141578436467236598938866158254107058977668750581240517848277343531583372785807201476374962819373818624583549829885915473977497376928408075651161265029864471443541410662906795915913807104279664158386300832467741640689181151841502842293206871564408678448251906132131594737927345693625749191878709751489828015616083126209692866856569994412747978802354755256291287526819657981400763946447312252335631560622722305241593005498502245601713502158341487272517965033355044470838798004866309973222287359415805131034728977261302123191940324770321856790255915966530624256944576087153903473903841637780632644382370053111558262315006275920203231123821352592403722595399223955589844435570640788854873584755810407970642279156092637948558466543010816835239278921174992091396398718973922949108766570031979022020734518971802272264546981695646218976383213734142477983875296274996097715628615007478860597743238989459105761241872839239748011025045182662222186892417723436232193029076430288706839899757193817990954120968057357138934421889029327733658344325157864776174685778674243572083014844250506372920773433295263222386160261281299173465923900114526961685362756871630317310925456471320671704423895426927230705560097061527750175525246271939472755579832426379695455661517712594647471398963457133203798549312851453042666924944244855343028002663417620563735678097685225440721924758171049964071079067237589846799079554019283064730186493637766573465362388179487978689122012039290054610171451392114686995355652798366759591608235676688079134386675305436361389782362467120072674336032581371903226761821109190473193232707320407258108762809286355026521815011660718764169447325722348661003358433651981418557009274345687891638548180036086282350113350588698770796187199295094830944053439212771222408331973653411071646418981609187593636456694097105318752192635086554822450283100855199686901818765035352825799568130948631657140118251467744916513413948651413155076025304490814682669686646024689010404690764001412518254437286826104517601405897268272553232351856572197577468593153234754077951898423473878387907164745736418011610082302730693383556020145602933060326154557437849317257662669743505136105959318073073261575451018950334416506023233363483824036347655246808126873018956402032043141550113454329921137976861511917867462507590608126649977900802999180644710898526064875812199723447239329152620999921169027313051773276667856523178312502071454668172317890024859948258418652443375400419202649805551037488380250649769475890091565923424809348683247650615066513219670556311430590014360517501021968371512787018690107318797682806618179796072942592428006094614853290312888917330773184577266021459096269997749477989534676356899303693122158156358192442024087431451882676097899271265143385699733619063431970774484307481539716036957918937854986451720525753970636452041562426240839893275293584239008063088085951086536322094204654484191272187781099528912752530997379064564016994715517963003601957716675674927268475086199604657614606864821618857780144839466674138759501833310752654715886187199256028584814972147947981498143070680481646094306009538830078620362896640997834930281586581836072228866176550730454946242274622515988311341596364243165283983451271209053537332419866300908039871520241807672838024506368398774457148668418869672166564758334513750259087108425692679489137613567012617126421411027624133861802196373470695614329463157097958313101965296194555804873833687277411563893882612669911146258411702155200925195018341270997156783380966873533263986471348307466367032255867758422877346458851529160893817384654855624422425428070716666831360163100590521559210157716544108950663422011155480908787535628029881806015778341727840234534609958257350014326821423729835424107513894355889004713377983486564373019838843278547352742740907078914233583668947648219386861598632228058415628927232595863136068929087549791669462213364774722555434926997803910145919924999422768997575391900258100248911303597931791940008618002237306822357376316864493344787907234546465959184094701086905027944671248850905015262775624601989238355947754439293132091095742687355685260062829485146205879947656492163295102251783239288217012436084538927819131887532278479701148095452949020189153597398813519387610825591469391104083494560413001379709252024626831758087932511490750016514020984586550154627744616440728450477291176315134045824550959144601139204052946216360873242651309536242569662782896468772472902535745582557657029926533890442035282223469190937838365590818999414806304466022772339449130012275267612604542991423800558340499762824830465918149941812008519323743385617879515914644359723824057657199147966368096410155815791607828364823734359675294678228526938441514510497402541078533312301097423893960547962562341448710370890568358019885058064840592082797571656142629360055094731481352270819729658619901985500421010213863262331804426291979642345341427971321603504725791521437553447337409448672280204872870044390720499017046943526205789941960448386233580378946781442572979392402626484245518582949206428492191189994752975177966197106105560650240767684108719025428948826246487478769370212834166233623864984648645554219924471513699841351691672187389261332654029362374823357666601220301902699977058390082582930972318914736171440304643851529623676738195900157525754301312004735041427944780841118070159282249281277028651175070303224757546566777524924194371980679037679952525340689974193605467521535006446098319691782026329051724921949307811829810984307724130593024549653224899420310527024208439312819630054021818200910565216624654463024014883633477984228496255446341313306362297839942048465395724737760997748683791960502662359060035022860723277113674792957803249467455856714345807879803437095214102365082221629394345256409644079484500739501467427605296123517573031128619919383424110879185963251070936995226061230716404471415554032099385537442509110581557141370220749334999325473461287938832824042883099841669490513812011064637099792467999382538579840509382473202757833448584352628887471574988243883837295080888333349322264680837702148037384845930924962274808423441501609165709648583634060650411824970972740926809738768548745298923183651152541246858111949959504120105246929119377668555732003812041468196661986218955625678968823778269208487264768164082919140333508534670481861511171969585698988698648602578047086243868017761196229310593874509453092405796484437514431374628153382441774836158279968484805308398385441450693571710557466716334151304905922342953123346372781368601439379856247012522653978352692829038246166442622008179034065482048322548167556451279756008443258123276459234020282916424680403622738790744697608043742464015177731748777295585885391951992109972378052764168069564059840784109668396813408839226979025233480601957454157874187680012959437679935891462681301083635295906372015092994263422307157173671557765173372248536385715225771519122929412530278468199514907496660340515359554258353133257618282448694568236088797900876734336277671756440811304850021908788940891344541311043263014227010347672258684405209932126344887714585528924121086804007127067841108166580121064421996789565895438568578945101823333156895146516378828373147735499586741843582675426734363229812646771129277848885323271605513538862020127818348573100328222587845502820970851400937409279035939359263905293205822014114154124235199206841940032005781948411044970571034636013554776475210749565856036222524498754593023395169070701919005220752724608677394218688033073006432618912387352899723182583433898030642555282674791698164548057253097688422936518236598654863374068371440150712075302815812251858614601838159335475636878284330642854016595758503408673239278007825009193246563320194911624838720720790191567933452779934573954249641425806808048471271380978566433101363682483433141367566369997589450051659791952209889803798094108291327835174010375329610710310705780070929678481680083852713833641863111269444965117282394713769615233496445409273441803906897394734341502085736214700695606783756172208001075178739786972176918414896051739184819225702368134229534419770191907979924710119767628014579273380265668315019378046382365359154580698517655355313779019681810357199992960223326255416149015667202732559989932881850871372152291600653821539884079473680866661353140922436668385835123809416003114985025996466857516495302579656884503322297353738509767009661517700548404665131232056105963582743820925698321895691953156417975085299016897958262253120998154747944044096759378186664065880605275535797451620719188737504882789334829026997419267113911608718307210969320359267265562055384760362461951444736666440739467256642113245718395876184282640275206154855502780836724939422046525933785744715009589757523358753159311249567498467117275493929718303496051859548132659139114040730714526701308848319548882733028958592954395340306126308046389773788438088046121714214050097467417621512908578583484356217567173768185912174631864972899724172481179212375167667445736854839657518600685022065925567533379788885186358487100350196958368279057732090604912374675260758443827939247487167492867045885116223055776930347121020790793305392273399337320309366218429774107029383656753196519886798724324301616610418149438888594278513796802188932057418808419440422581194185804321077761694659324661636075006895683055822693455724418075501968394308747992727556852060362355309741532379727568503651857787675084495370208168727896085187924489383495192031558865114523474699815145824412079423374683917481155942501238799620864321413792123835978420731325568715463012836661098893575511014638908840541611576086387805382111129287231655781662844220458578138246063727111868245530738785126196997675043596491236871374623803566476171614642248485840571964398436558154699244433799645828012210339830983197811647939943810575058542250775583719630669704651031543632279299566659110872689348121856329440080066723576178198143038472232278450031277829816176497080497008330269884504966452945902136061653986981460449220108013052564120727507206375202131306840382887355207676887387104251132843187453156646536294402484668261465488814383760026598802080592112318230753956815842829213026782159138659584811253405876837977928382188715917962656675588245522201593787294491357956022223144212673313687529668889332710910466341871547780037481489193945661214614423998850732145311477025072070732887376653378602404701710693276188143452399263767002620740951380168989924844595956481276620171950079118884071540928961616866517197491072571358708370525469073022071840011162841076095115866369835299902668716011480115036799685135915187078804833715933913934173524387479507238214351791478340651053587757904483395675402290387229846435110562629192182298753431092266660774837310412301297034287408863273635947932965204764210687101993504412209767389735839276134300296351402976812596961669722338418541380955719168458799046340351661796984160545141396846276184723560568080324856639348008593667083410906492483161668141297479308179170805109126586939045176333062520049035625530755133940546116147478831102331579643934733154143508135409116450226282485461622808902889353052615518188861556382153220640416254916795333013685725700803089409938704606449084072153433280962927094866149431898965520940845430161418957552807742632085936543704195675466789137331775369752483114306607307294907238108639169584144281791819270408777955860218176725668944732846876117687571600517234012800938399119144045960222733377363043003774602182905409611861945839171238578341909455115622246609233412979135831531772545247464091500487240795943532959827796502867796298222175297618445908764110723439689035583631702951722420757001023766113244705298542288793552748383984231423940508079272730165007621714370105052980838315198707702184477398539814900425995306726646210384168046922556230600862263804938414169499478990632302503516465740559646463268358204203936023296095643871851747555909825680072776000479569213646961951941673282853412084876270088571502701251485054356010144921612907329315348491855249520207764540879518191509656148414424774999367470536179169003022537094011210560938496861980385300541764654034541427031865942203081991147111529716117556136142602077470113299737847817897991063672765005455308828223789849294656542508273712101111631137940253107378100810317830714536652845578185855331845644349748662076918352571288145633492272315439363753764900164410433628632819991697393487672852447717309029041447797542376848465626478419147274602641789004390888482274116742401526818733593434770065663489288202747036883474045573059469901854191687595677318105098992145824811348294024589700755509789732111476865230067175234981494629811956017477036963556800650615619592698322678250867862087448599188855859302264014915620132703431767502432743752669850139463699772226541414234557275346662382227146690298810751481287050383205331110324604632141073398451111377493920638301681120107683025636887704191738335426082220145625596848709886618936919896868505907517347704305116981925503295975514496795194972460513075109826945369034498370991562685930749123113395895298115550806078929488367337239978032154992789299979003014242249221550307507159653032067188984671044696716720314512658942429064569514230861368682430931665670909672611206854593520414667970895532031070081348801553769329067993976883078756363882829439324676269671438633606779335507380308280450430162194976542955202410838980310613698725671150195921532100308325462739515537802832452037107075516438922933292890244781964650781463356989086026448540176195209122764201033753634471755768513004225329667805597469092802607366613410032425299629171668866691056184167990804113349898849650770041909205968075875214559883606476095694764497152638023237742956463140789583378760255154369921838555021404190512484924503664585196096869553295285826810471839524326891275069501610788612511091940071063573473992040531704517384400150424662465991019062021777978130181698407471007430340515957543456428595373663904505905069170480631369986267912518473362962020378119212655553669298761552290153421779702766583858197160297668621362273096162514238674711388988485709629564146282991207188425670214797043255063997308812589516836121280187714533173360601924047353961318014792488237979836270118743106322134937294249216191434180533373105909530642695773156867376091761790456186165057189464055903485507888702012403541546163277207320612541167723489163407902201496460486936058235959220706980454697842805994094701404097322637625761018487361992053977832768905653470301656314401210212918290528633922920227293627760171661314489435134081489209434352325795537045877682483633509795215892046293508308382808220605269472858030086359690290656923632371420600710334247807469350940517824860386521503640326784311334732193839127572895006400311426202635168209623261471250438360509707553600798230953815393206163740056840024887142541472438917444821232322358746197535997683591382781481778661792634041331080974970432438551250703850597808424312807343362403442836586217385932809959850022426042029831367549121089116538282472411097472319377696331914759154775573322172929379093365617167010084446990804556734935589790787909058306645253255404710852418703230754250283268145048377247593797386234632294974906976300271854415479201709782997440904667966161960504076148137796575586929293601704820103001484809680789942953114003959967837482031499752587045573977477715851324249075505499563078761303954336878830986534459750317650842088418095088085722434191443439638900111642128843220005642465865536304854556218677916563124549979070238057233764446137509377114434331623976034483191658509890222562881090102034468480041053184529611344785198189980299909884996356862521606224880414364090106669295248186608437470222650209279849453060796088168250849676417111022550393543529042521988811730318018273819977417259273770070084706182453079957984876869431036012017624362959573335092101819264174803349572682181134435610534582339737737879382379681476351363870851434558493616769492911305771087840703266461134746161118300982219358322775581771717190305548386866730085539604493723698536350041853841422347588182430214687971967188827608570579037629282984554976947569270077979917308414847356733289752807993579647099566229158513263185115838135023407177080223652200500376085930235976547189566523734922717625444861674447087016860449770734089892425738949475486351000110406823145735036088642153515112030730382057210547514505714243517330706243220554013265833342035509685131639018108165682694691092861778860444830651696724277787968563107619521225952481757497417613789687931967331353870338733005289202327351020070418001604323612971354535704824505018218823444075303598081678121374062765484725043929720856817932975147861113933476216770558766714352897632311729705001376185852683680645269770964293340001601691986994537086191421187370349011383372740609316175120199848636029521613004406989048154603972528396015691476837335923431324998343028340479521350746354835412692953709722155446997831295102102543169598221495506584888948622958349172288261531792367779812995195176712332153968093897560380888186850555300260936528472140236959592565980596508376796285361537187109157771748195236431928909619812854791958571311617264150455686730155799974654571328962392476273953554116259798350226728875792390705964539845849268024913117191888880283015579253746804236128702109327483982212023151401812996010956939176966284081083557721334083497207189264808318744103342724812727191674743895043647390358495308828033637121410477003763365927415210174157707290770577958109804089799518155377731810619934762780914559849278395192453269464543875210588747558471519789505751254111691167496832660359293246414171163977775664933048702676909219541098715340688559279445298661991617315108749769388493309225798708005512304021848274603569419855068235885191752611965792567671334498542084743210365533100254364572545713522935683985489111211424177151401214668179452660810074380888169036207349634064907957811472142763358922477168552384229080736085721729640790717754880932892925015469451385434652320451332767249620591842535486489881419070020461874066996945368090629406645296456185383027548847207674819484859329174251897322742708639782688401409344332031655076760505022139363862339523975560784254700692909440778744693129358401393799264276375340903836539747851087045938316938434566246657067194973864883745066994150710555201834961345839489451539061942337942904186631279223253067551108394107349659575152456973825159847391087630459009936045881340674969882796313519000575038178428776702386202826441366587298168295221201689871092876594683549259301127069814820077908062052877603864633050073671598787608001456042896992006893463674283091809863475623240660269796809527559837108864380256404669766856519391373159034921204188646237715765253472873551353139696528283535890537691907781740810311267415391360165795170801046434701828646716610885612967708935876270776004703710765990588808830851064320986840122494461940230287750065067876834509075408562646032434221763102242288897332069825644084207033657928199728427339211833297868016550649324428634530462754249632427025310761975669025750482584630580705215919040460655217006968311561149135030165548915519218398089466554342767058887894529891637212737855032622824169143992086041080478699336206126008390148715694782889937129399390867139034829755295761591226570536030477123629991970588040269733530893484151027256675343540684626830382472374208810056166499218222972376320200767415236177920441776432820083012068633739792895612187709786761763883254629558854260166688935183645102843396101426187711466710320100250068364335388224861806923307960817156404092340832416694532346858443107625826923211920326973643267033870206883433884769123952210303780893013429546442214360873473588272536715005998952179184926573795991548077470020529149055872134515062984623352884785064295415559498100200489617693755970169542964718365383035878917216778348437068661951307248023375029353752302488987980701465922810762122334781545979714452279826768109242764213065931494669950064531880843573924282329075250013273153938386696167004396002334404466654681898136502023461552843905762698448421764992561557222429598611510832396781405754519751618734615172932934196612162617085291312160225702031793901127739849737722435980533369830415507134816258137265052045567124483260657675424412802858766588919255897378681217378547348047256748221218134239667650506367538705335366798235455848393221038549659079660837918072867554177215200030320529061452833777086758754052055949321106882919047011896209590925104788981362718890270708367659566951102521017780033311893479844847256740623908340880473125037350833223207131564738636010140146599594958727304796167027032233531407198469841302627686850237106564530690371072419810407068653559194548158471568116352947502208876419202797286087888121791765922635699473458295154314052228451517807413131288024918167821012725148041061512361588548260023928716196282252243005967396395778752786535117581663997193040861737020247719463601068692048902735499881827832878694153453241552472194110122833549552186961812754914426432428861269614538233412511617215648435277279668921732715529377763568499256151430884046361010383752138229127340529760168617059460527406074448792351863133834911742505368466159354656117787267724346888260323855970519279580957349050812287562861282744471744025773225653809742415963722801920657546762478103220943470543950230000950314686068730925919181882389016441992981315581424291630140865871168237293513442350637345554554233329173780166629906257339208504544849460670017533151698382074654140272574793771469522910942695382906889933580758688656681703794377904999582499050451246882376829711469519589654992605423467666783223277942137369043371440596631484264467746033648279907961176134302160030035637947225633821847438946834323421170676359597755411902319800657061884048744917054964588727513866227266209993453393189778350573900314902212824584895221621108979286490441231982616956052766456791210628754863881587939724412087362104368958856914174264140908292708713513184889713648770327034107673526583790888782079498098039607627819516922390232202367990712589747842689914243023335275178937660071979005785689130382504654836743020183120546301699388710859299310352559569274254002201172034424594857847774246289895636545125611858289046831991878055560603518687796226694570852047069151471370285608889801345290353980228202971433278779586371460603476767789916532473968261013616553473959958384431137205124457360387662065506174095255331869701942845910323322891838251156232430049616427986383281271218043771457921626788090467137779429576994675003169249014349829327824044209702422314145506259309837632306651240053343504998569796230874195309105331729237167860508975152206818248173356584389060898487559031541761791192518879725487269143993659416348269695739598999597841106355792650402992144148222112945052452840288056537497357643692835119607794191657999949205413428171028720763196146543559062835581739941084314281787551220856617291864196480023971128381493944219885033272891527553669450980458531176147662483257291762218163569891208053006202989043226475029830141171432385693037484678533451229867060338296512636027074888971685001948760687968090389577501642964509521842427689672463801409969538734321929144627695626784654805906396077737563704029793334874689147535792148496039290675345430250705196943314317914053468834595630883084585746637150832391354475006278785182374070656703296278834499972517133978133759207225358501853828895831599926608623520651107797969649279838278007110273103382234401370453361036145615202323305366532610137792189130600314844341701444601458802252018840756715065467601796956738536063468521736060150059248327537852833510828794583349939708362598654901195918862445906721671500134768557597746178154585365889787810985604855208894195128307841155585444229876067058002633747446761392933465459825264398889282989991813264745619126192909908343844066997076815176554334556453314555423544985411907086525460082124762413497958107546676744347122332366679855741475860672184049179085617702377780777835450394130478809199156791616639889085052681061121565367327734153901113338780445583709492060306956208231602485269991304508814813234280518319122812566855305534468874740587424448524679466155897312956176859729429802770241467346300530548754931593326383405031753283736366700412325066159332905338466644111416027308979017409723921480313770976165300908985952740031677814336044383334620061536587589872327008848732025910077219936743251774989410045426678435797065414561177598571003820920636179942316162446835434940923688449503881967960473633041522968744545777444588092774931553246906755629162671965175886850079604966722310878740359130806070635667262792848326484079336295594865767300967613882609616301136192872933186934591622146885529708474777835377218879289658354790661184978566701279728365557984105499312897360238728706690857553523702155382378802683777989762887618146726410189806321803510134271933292424585984366656069991316708656160827935306975242411897669128593863687364059925265845719725163438112364992149625533138627477367894883703554049376287730906962105312097030231982850792958482496148062617574298915630388400560494033781630820957623438376900868263032393552157868528344410764187095404828295167945671499043257310599226736074083436150665437358409440643909267191357414194421521627005270758930366095251959409582920445653711386634434549784530805744694653658647991915358179275522707798935712811244278850504249337833285407113157558934235230258986661552369337637062111863594700601266257224079143281318033462512983777944457484576995010066747543845945271272016460911393422780542687017054370648121706395407870492963763413736239356353470683047440563403911645507297322847343343206867185219619708205337253944233871558735848251660969023169751576356960300039866450169820515239108729693566304587126108219069513512793429258409148765229431694070472346766193320752204955858503955161738684732812634991948014935690550494149616841973861760221650911259138575542418910113304687328219518181744979122772443107755314078551376856366464657388754187303028427914379620603729407206992880165297761022051717043644477308057488634088161573362525749233446056347606794844670833503879542853334005827562277873714869325282270177356694736601422689153741924782557174067668128853112222822718697173333225038086888695047552897941500089461384076864147905669829555519383776187210255268988306699953264152464516615204609152178367255837469192335921599129365983106052203466118110196242411119533758840118896342881522295934334985997536134782062088054035465297307148926159858688537638965685484236863532829725958005300490212665089635824561267751596945603830982587403706498689077430583478979979057896246559521486985014609702178055686339014405257129118229663580142796874836652435736883349250535794500255538704056383962916033708155432368908377614973558773083327441760350799368829886598228693766664337539185467866406058349317431969646146459655388767770191574734015631874693816440760989600180531195191130538797168072636794953708916359009490247936038201158925032476331107840242601081061283072675005596025590789091932410436527819122276926762264707930733462813227677870182950979302701175866976887333139760044703362891589957046745235526271141847445163039979003388108614579884372094562902194231549285566718680749875286119409805140816640425761854147454773256453762372162060349551100302624151540961149378486216867081147169794567290539266255406144365439165088882761387993346817777947651084630713333023649890619939413024304390252863340013148878131971413412784219361417759399828441846156670787226382433092434820687374945102107707156567691170395637374781105966402465019025448559929190531352204773865337986476601999593667051452679800979032177677864779785730643587651537739142530632603914634686625775302232791649844793958043014784417281053227921063660952815241699285196446731436292138959091349737383716924504571465363884120670745976469749992832221043963006428416334365567557082054319209502012429646753250049534486201279447897239985335140046656480559180127842617026418352564629300064143194577733387384413494420075210666668452054116553940450054762247482183394194576267996794351358262808100842171166862925875816930820924003726599785830267592700377676896452946774897185039502250636730581590699049191936122971031888593234603128260803478925676875994034669520512137854632379571916562006298042386785672224266595562544274825225991926876704090553629492603570851367364089590441780188184325594428817889955529764201540608749943629304851849927163128136786319743744942658144779723929265702403251022689758450643257990653259703519802815190018896817221138964168031433770793215169644100325746174832291087673722794315579482542182958032580590222236719251562458721712924243837117858981215735104391889232362650428516578847356538826738258575489152031204983893986690677791867717667737807373742391564567896850057607694171432959689644372705235593868150651259268365989272161186753931799159637804164773481609373461468667240386062615063147667980843154498271340080864779545306425165865192776445320791926375466800835408876525203620092722736852678854416400400932172619237806944648702016367205198415810420685790618452217041690812898538152017057089665052172809765442519049839095045823846521440379434504424014612334913138504093056870587124753014320580016434767048149189530366753593443316395134613055318257519643310329192021283000134869433014407780130205760755308636307260888599420800431508617513084909523374445106198275020296211372902821718025944027922682581976972602805919274149756951124433688978239751772375769692811261355975916362037565183612331336608007803697919721346598110312804179317047643126994963200948593531061082745113105473869730818834299361503896541355461680921982053943752195795787704625337078842662707549411023347074868078096906457313194655663262488136046659651464650865713577290040127370118373827160120350116578719876170758889041458243183100350088420438490853394548569309337120358677582330433373009516237741739478643772160314301237543380367879386257319319132525141713861954590026396639633099389907062135032672653431333057258979700513942934725428070079395473008740892788119516282519785597036547416302391638837825123148367445003252281754767559724479231882703724523554510329249552887729294272873989042025121611180859802086222930967932512437737194147724176894007507884455933784856152884062325602806947500075918346826406407426688546002094299618472419503185224366614730769278933109275872094559594778637287840497190849111127589123625595903456052831916999695718442395183708402834394515130735946181775720611752429088670669002921911870232665019436711731040648180715831437863083603503244925464323277496072458610646699043963743697334277348671606518701241690174171148658308758822672420251046491404156389044770418444948969917604360598179995699254663671511186600784232838379039388863466121315670988731958868716868616225280929392396934470670042009952174616092389235225515844736721163647561930960373211431821800764916148275375445138129371609210465848598032065170313153021534851575873064762932661288444428740308411399949161453039221740467229989039656989015403387314682985068411365879226331499657764006390737785712921556631042467311421060456714199158377723967856817569758069182776498262070716616715685149414940149282992796338564768246706367838482953868614660692820397372781736760827600837179976585722879592526485247884968259628968285400231612811210764666329981952284120462474369571963829200786876786764919964181586955441071215743881209219427890035362652559966795846103145495627744923521201914507052169293173375385388386049236799806507302345571665891116114394025286815128215154161798556835498244364274105435832620873573378405101983987844682289829985384862101063859102647504304540770331737527047674359234243505404149123798280426967684131332011988443401498664595866662023244411869868782943952163871826363469449151983969181393339600393917160658886015437740470986268458690543834843108526448329231738258361221209751175904545587900454495112524352256665309092867012419816202484522618082736758039119655374399015685073355759955436241623255197029153198674771554349550543034547656785615904547316955723355664614871402787080052847385609942756931870476047650259080333530984051722510805424338057640670461204733098239821283183397978195435456266668559630916613722414187054368220645788139030508799223137969909033579876075817496248303993794614648670385645183228669657386472617109956194570667365197474888269303664980228822425829438954147461953775364018662559980788953465610245953866343847331806385701444059486390460284592442167896058751852357890299911004143501268279812451557086708862110768627506284040094860858929935461914939805739731380569121157774989961924294933898151828064818766172772734157586016380610292556185012346151779314928259699470000880923598480634825966723435083466722839625366649207591922923957946425661170164901840425565034994923587327504539365423695331117800592660195098868756807889791898172039974257567144345320030231480967547809054114717509839167005578804034837833499530757266612120533804209680378745730291578785260963025860668119988554100629004632571201830174688533841456604954168616804522166899367109396795964739803166927856548582138694817650621449252337323613588756500916487702473069383281081473636593846864675193200471536469746987674876656174682876007350686288718054994703366062956113475741476881039932643843849776982216087818806586015134796793965786090237718296114888722438635572606247574480467811418549550496140110332082559265967287699212798573461761804380944659644513533835902957777921386856124838086225906719759785344531099659174086459817848133608314737944980957099262975380384123219852579873713298284971653488289018080461611734103226294803351138398524516966141020599639189517922106870802981261025560366086419417773862156572654858535656752347523714307213500592308670941233808963376871035404524981619170265690231915004180011578408671910109419694282824067329431608567470786047899856167435459176995678538754327868445058518853606984062483658844687136518705908248409217808905158106491612951120626712490027105435211414463480795442973919470836609331940703452792311748287165079421486925122669273715017748248859019622784617495540294847067369262926452853055358694557150417000006460585717802462626223040411386539377923552002672798662120468075767880830969813893231762155608936390473067837058194808007428239268478358738588319230517804081912306732145204859174097362495227230422607745381625197042983256945550057524486047601503216180025123562399752893460172428950570272104970086794865670422283220978517999049553797977979616691471772952488818562463654420163210443971160306496488783086800008104087474494616340511265275407758360964858185749211791132112918732035306855850525970569720337369732652406891773082783917298136049632862290451396892358359215849743754488171272004450689744095683619115702387850696741609820712871457227286895549962097043100970689878461985790377612789522065687528954165991524347992269517269771030530932680307441973526519924436487754039194854293285372491359164270658103479894885566558363821130606463634948702968687588541773964145082942779801418218362236798970649178040084111824207024833269942805755152056281100238654935288824617829380515476311874543676921508743751853435018215053795045580584715185278933601411204275221634855258555196180683875639527963963089882683140393453920610767250217733335250348860633126381510914513290188546318260452797009032488176229208027607801546276224155466635456805642977833948394694154513685711948623577087859524383455812108679188338556481664398160281552545676249866019188747733666421205498302162728948031145715797156209674128418136476429122581957309735683423276317195452954215702568450479851202213000591257445806058197537685600984515250020101067615317693039934558226782213832516792978697697209832913236694385077865406204720913107833318415704641131097411349737569129419903965501917234582971327577860367632314615796759838350738633008442037311618788643217450984688221860938398818853930129447507430596940339248612895416059538095802539856705307966574599296049795908152509373635861696239199243260399453343879587726248383529420376910435678771403455044938566902551597843555167827414328819072728564318805003274870691535880207085218250908598242778631092362450061384396278342714417295517457726145554325886903050862199948892670823373944551920425406250205803694956905724354474142582865847468550678019642617366781602431507169424305044757605599899821966562929938348819999057359580489657547982566365308864309347631262613269746631124095835306462440889700706016814512993783665428257667750548035521737966660269019869472335053867619510088350500449858928218921448062498204379907885399548949666043533671511733044638004185385674065413068382538128351086771489354081366785971555627539075259722670427143321849490330531861952409447468298073009090989975849958066150172136424799869403377969903969854589001442917070370256890264374888596389483067518356055949893363090337837466399830578930325426907183519156941293127469958322504656320739996832696699653741759645287122779193730304398118357322898783281412014275820770972305563497078063919415769639020452071219066697407851531365221670220020979327950441237107420922234829492605106698280739611740838522305233289339737699032111978176326099442976037366812052750633517424462033133642787909887331187279892859066307785114208791062019204308808878024883401983869417723130853698556639360878503570990542880953192896214015625543560838674640743003363424397274004371566478261664208918466174631549572266658898329766989465728845227063441055971329078728309318851043592996600368759680919014943701528104984436535087626648948309675709527319600244294571040775744369712414601138666399748837385800842688147460596885338302377676000485329328490238435939059751586466990375694510994622675282406915705151094444935563718338269046512623454296692125305019463691881205970049811266623308598235348743606620016194507810192765378862291594816732683023174854636324710266511697228583505604239786229266076962071199843390747036589382288634944420892117139582103595568872518251978315831885623243201426725411786117617369994818997520003201400529327259632687450764812312163542159266834019521563729729663195266989570267031651987865950664146061273343985971202482815817909465537877430660605163258927387024210810708010793721390414448900558825693679504500307009984215480530564549945304478642034911252326880034881365618252271121192523705175911631877896662209157809909972225558234305387019854258288484248012310214664299361930477087186232831686032606092680193811588409151361139191877485727410132006311833680156568054719436449469490493909659123478806280823630909187956393412041955094707882821988781377907737651937442281228708409262043116416459879239117793691923073669993466875807784000983546176260364119200299748829665964336578882221905562215404606397341051193951512019816768712374153436284891781251196352106881772376848062707636100958797235367107244941789477398308040999898970650057053229367063248075184212311954988637688747231183465732205865641528134618160624478907149714469705095125982066412668260774874979527281281677657230637769480354471434485825337652386616340503238768277502369003672682687930953331953576232361551358089706086984871949689833983756200653417267051676205954994006455577985181557586415422127659242638754474451166701118653508855078392049932218063440229013616930761238917968244010782049916466400683514519717217203145086607675880962143233915002842980718769924907714272777481785685070878326686660795803030351801039870957736338538112191533218766936344849342064064783177780909912031752116151947568296065321592230995052718707959317968354988935912983332928425636146034970640529267935988221892938047018260537592828311440540290584992741404994895100520390149671950346618433960530048726000757892363347894816837378958565738713777489601464107106141309775987035947575625534963593742865708229473093916436543330474394093292463296510129448655497160858575000081587505853610326335682910809781797519062996141812943750347797730791188272490311076691427935587936944839922075256843833507183000906938649437067468910242542342803288808834632181464565444941943930919914210266780051934632943028581318530713165681411762040183466202454506718672884143130592675213270878429128094428868005260123664078370444795499554077453179181844182036161731426415621294523221790030240182655547460292486948469690255999409442615886828483213931067214386472189031594730072716252147849537147082164885075404059909266844408251734422316056447905040491421942595995639592434637385999367698731039285458428373501035032793417291213443986838929592766655709370545365230804464275055439684070846007552551120583955249937278826850442434410020538732405554909427530373283585762108866729576889500205538066318414750568496363531556990575358604586410636295950425125156693810407762860933085296884268353356520597203519737260524289920292540681513429305557004092942797277316507496697220403210762764279945796358671478600803470344416514638145825114450276169685577016008358763877698448918056526242550073014743745549311787130236582866280835862462777228260967913795153767044342405990910013771651605990889278106002914940551175929071838711457460240342974863837858466823742709486096391988273442598489791608565887450844752305710326597823976098588766605247482910550578888618625343477580218653072564496654325675173286168748721335474782160615989367527077237824057749893297026589622884308773148373371072778953194041992545861496385256382123458157277421539668162750201037408407347315530761379887080677115982030774667725067925100746389044775022792317189802346493947447496835105757187664279701327142031499859047334763867898125281074293005986017838956885360373204581663517522120374370133486568257093491076255589670680630164255986697814071751131598534652375691045258663517013782778492813596034219484532538844527935339902854086748812009167562187991723346917391853946369526555177374630648815782101106119669164422316888841112546104509061803264514248875423163975011698985211101073163666626641798914477249155447900240285572694437254661631519315611167766776279264630870604111696468494808955916413595130337931297446517177463587620294921200744986912808351802099579867320073052969821483445354087612857803474284883667254519578475337617699335131470364476071688498785599400847289512216581547219401606170463915886833940213733709256862155414242224258176906844921796040812641181697878770785840680426339129810694399780122426118130710875514176010608543682750352262257793349446436867200110757035712868971184516897810323253732311941322240214834775997392168408320247934617047880430151777053934136160148071675094351946224644810262605996676986204248047354427090231097566759491449631581595975666685234902513627896470008704930915253144955636539580822753990388138345752922029976466484521520563931255465143100052487818161378556617753430140636630603137049147690490924602208171637910486169471602944728997364870975868689617642093210049566127137167137831719128984150745787362261619196757446306264261343333014720656277151002623958489986387374275392076333905471238845596694310474069821883630002022233456901149652690799563275768690887918886228025927156847638340714660031620490128497860546257271199066235334919741921640829556482587041632269523424070716790347418011126931355423972299210533275327425350348350441794503357712285957533520705061004549525676968678899990110332732917301719657220436839201372182334035491278162761930566917994301989338658880102829803932751186037295006404574410355175004043749888940272346518242020896333417651014250585337896239191920443084433605553628470395638614213491079703833484099508139934251619263859140790697935947563453798541087533161556463424961641151970182939212693392675663468634660403559607782880366292553767480875322412457766515904582015464368294234906551446375527688760875857210129465784439566391392595948468641902829675623417508731218077414248546436658194014039530893665369993069133751857375370794406991934640918271684780808455176777046276848516001399830897826258825598750765441865870233893059544211449321378703195266681337890984731532123446762067657541019496858041895781634720641267146349641893105133287162917833867722098729309521333078378477989212540251601354269330657595979384911634454779060102175801832427424792284649823330951850790874549675300259234177338557773086115537330821706786911656950102033863946118575289818729144672645080270929882305982414311965276253380272731990364512379164971846682668747559912645837700828912436218400966870202310351000240500764031469901871620757458567050050704194713105269814450344251422506673982237120016094399038915613792591260446684558910368415902595364394595413151392178152444627632168854310015395659326099068089798732719139356463360425658568243320290093973275568265656753108748273761432594258970023299505586890947145629005025198045948309433557214615167504592393540672235700829832059242659360769731680174135037522916425418166327432852389145488639674640245657828719193278470367549046494728521358455392469570129622501814162801643826876781785172623715066845824706496280984169130564061438127523451898210768786015727710981242291269673351882555735501144017671366204592552293772168114514322062406071880633920533595799356138676545554214529462985218024383034988024629003569681424182364090942560732511483971195584081369853172875822348679166111611006240156544051594103345068526271607677054975164210982969705264014669135563428616640632315143368434062709246045075313707362819648654047052863585817696984169756760529980202026256970400781107076376931512034473399714732823060275163628643792379961807116909744962212432768962666773642833197690988917112481891568747592790323787194207797827398596098610782449796552902167201525010268444703705231799939066779326246844125879090406367605363673434008014738486207140029960341030951311342235059586471399324390883681914151072841965867098562631485533206637668088301891664254416104483126999901832228558526746959315623291672090879776015532742988944298870185528525494580624048722294446286124380010292276471138048630001754358325914710902701619659520671406588062280975588882116423680086126201078794287356834599248072990000845272596802387103473127509545061703194039198092179722619942769506593700186667599641554406462887108428781846994125383800677319889139803419044915284511471421128584303133908303857789756098722554697930520944702922433577079936608745415402883057413306853442137875917998008657119731817460629666114824895148905506728323964377396236340258057461084929230957617859426916063584962476089707179829464377650158375624171005137989157272016261722758549782677063644131842729330905740078711178502677939498156721142733389028470075618759127380386099211382847106469902866396607482271059058974688503487393387226447806013470563904718663948381271425199025058628344254828386450092939120652483011806953926701963588214500610783953451243995757399211433246012881091171652438981556789848641508141920809243798628097785078538240607221600950738391228123312123405113147384373979668745483184808601529403376856827816674464357725975453038434474106786332399218806608242766169886319835114918648079199985410808235991332634314672433686564763898708919242516485372871746552426066663470441147077578372438664310255216497089943497517495256558976482367794091586502665738558530034181248361009018285189788352464021227233198572693265540121119107325836109998906289198757204426916444744230209069290560063692213945734215286140522093363641066124203292131794495906493550542504411101460056651186546577528077998360728993296537428809182962584869453792708700118112200375254127457435999622420004687417077300888645320199704174826921921315932210988282407883955982837289448192301282523371613378636251034833155833970481729625376191880477898864278914154879736551901453149103057542172932940491942434776567907884137496138648847215043441950494892200716916098364821490300835227457615252663640538022623609618868189452101805550970195236915708981142837847869170522418174390274434154870697665776446208374185174690096704061455835706479411152221675324321513629232298676270484259780564230217273338776539395297624452477577837995074027568223150814619555884104244396066227298853480073323894329050884765762671971175994713836615898477425003588903479170650622369076594066577741028980254859599810260475210259532571055511710456878456245030863857503574750956087128388703954642525541229563686614806403380005343472488347614067373934239405211868245910060169662563161206972434107546226994448599823240986499762409203611602070110407864181812209247606022927298545087184917085964256848504922090535469388748611593937052761369772852802987397913818596567545328354938954881795151236621035212990271656956865283375952066778173039382320178689489367444764547537406839634273529097981344500907678022373070468668472407062786076169196209715842504730610156395080325524653685929294490101418534521569995937571347265294266866639486837180756384831625939847250717255418476904350987303581007133764123618348549945958759383924757537219788663504152490948771527220496576693960666699209457970213758044765028109880532497979796601845392170247784578954999233936054984518091894318025749874721540583098415805241239778791357695025780549537601339904499672316701545458379466089925675176273018221768534172828075997959724430406322208610294638985800191978563049896390646961553671146714973005390468792419532866975365140298808951987668377333678974666637975405065601743095053594799758852871089167430201365264958612972841776183277713866165343515960351124054357586043113332270930357328493628000662135177510237113411215250219940658839994529182795365231736909245872321252048632866786427942726644011211356151554761200638870103423124647922202530484285349012007649609639163877923629488776988727302208830660094232619137631310481166174904515951152021764553630914529086732515018381625727698108365907706261014245293710812326190787441610200301210219643488469303816289628451492526300513676383986706474100072557237168080813595707785723972000605652836969748322886936875934722893138729809342628750471320673153852797044347163946334419289919386957642949782042676028999827907955993972569636430886003922204587026000849067241899212734462182266725212806966775934345629218758010397741586158910159130954297964886144259373382450176130700852585808499397030003713129683206998167200656004551101547723198836445393270111578523038559303174870560101347288601642129792201653523639368453912168748120238561238119388569928846472271516413973558066384202944809935713478676408560040940568315318678811867417698313514502335934786737538058276020545640156425789408521155900649819136444474833657160442892175066010956801845383002067947070266583709736577008699295107947637460909747072891328327628617939828073332526631895033108683421232320556432938471279196810953067833600481417578380263714110148740430889988849241828144974810702616949245543937148606406996493424315682551825937628302590799958236691261304698899690398570940955440155896817607824286259303102958419557159229670491486258328156977174447743058874788063380973456516010629888510269053289241469845861634418813628168399796142205988528573954738619013387243739916878887665989486304372295324727402156871916190720003144058945026721780723695922076242656779594188912258880877321956322209049100785090255331044211799119316258630849348346898116522392247207039553711494851664962256469485597732797184802608678083310922981574556850863719056718575544399340192145760146739117276709068230740501279186122530795267546441105144970293092462794076082449166798329518046758667430659190515739808884949983253451043923531355001492892875491418469178620340666369979303824363013518625392809464701117303051976821295483058101577304166242435694467150639995400870652208522815992428058186380697189025232551297992035294721791563024121422651414404290040898643560577492805582794276237735877123501428984681933171078726274893349214292354432006730831220528302203132295468590252745104186187308490349745996605301053309078623278007680833929204640089925835595629608689772166531796080605974570080045454669310476263374681829141782506373541268998295917098908250339222438829008954268294582253011164883328948160695244720256943243670288157547072797605534272806870948903636743646920677256282394710561022557793882305769760508284617662748456151095438973866921158160509405860642017600862796665955083309871644209962917407816757417315282273782947899102438590053306988823469447496007480244308441946680220033100525754720410732805841968386856569066280918600374640355326312265710370051015670556641174705522587568184577132795576906613628070763536214819385249025822625094539242561213696203050825785164984829593606977313984967192230778937224146325252406827764869700663032126539260322518903297714895525723162168264044046942358461923425063264871251901482074553553631156560871957125421036720008718210503749695841094160480121850782366489515716035221963265434162096218255316718342860822276039551245175592100189914196798047440282636292926374834305056020217769879237390056982116327378790500033848870084610112446229524610161124308104447481483596734944515683569217862496932285751868298617069933704617307183491285069039645401584509813823320948732575199031819811953022296517305705735086850100505857813042080472609968563460266616499497417812557222444668701772672153995277832259774700116708721546724730007752109981582457968563571597336429170613381760051343641122665702391116660532117060808880423126946339688397238287241524274952296559322244732448574909729768499082305844195645424390709693913995778265617627784053987631628108307453378907519092110728540009661371094437295881707809162839003045767861420068909778458702372430503734329602137575378575683587041658873987666003489523042316928935636381081832568368899820794938935050824763998476584244935736585106478628940698037332758803208731136604594441196331106842628756686066823251722060103425096482283647683629711938736872250780722827942945242213009639132791704048267756537159278360013759127865128454220028527539861432622204245450177675853252378443571792245435690027038480416753254000477774970301303619265424775025124384287023161956643097800062533259560912628351296938663453116741377875601340438284834482521990218310918301919985035338837644381966810597351257965673707200606866919020380476560615431457641127923286050369769400601946295900047833848266029263783117728988677084338056630803255194756769577622857100726764146699614517253125556893006530120200449017967597655081256858823095457239546575387440446992541757651567130823084064197212937511992205689746416732475156981473073313589284884719450927690754089679699440522310788370988380291906564945388908424334140163981556873356634876266179793377215756989914623093675327241953807588921285675333937075378005052308461155520199928794818160736205791556102567041671604095273111328086136011698207418185027837493695448364379299434378025725896304951181143557888646422380531975156130135421701117216416439565024179840597846556822077356633743330448240999603997667452536693714712786761478293261955751578257788104375607226862150461065161370415244622775106813490324173895871237321519237549228926125658659939970414993713898880000717841251086627484775790691506664675496016644774766588007578009766617554568314495310091070091539183557876887880989489315186584349715601355071370584162282268024061854398783362671570772003583899228291526346090189615100640964674743423912908566880707826203824976807628942819134086639247354994062286879314830732474254373037277493029629602869672892146507944439355163707042851050032412703190014069291809806006585111346953269516412309700706629021715624716365733746670762316790241890920973716238393756276982737352047349250741251949112056468961483948990977083434446627132650053721648155864419927693952504918933077961798319344942113497110146837528636604768550222720364383008668901431179644289060089725888712425741675505266360202868069180484787777682269190767635791609976125028443040645513759048772815026145039420774260636875421142517054917701504824045001186038323924624255528689922148044064889847177315659048914459357657603655359846152206966269869975194443635441487241962874322386194225094962126448538959392531240504939001230114024974803953363846669941031246546280434635744436012713038866523666741595536327410728198030102321090100235257665121711744749212163433477725205330012079356743605597799560731312717774067019028979385434058287208110382724852879321658570458845499577151876576824335474830633118349862232931041115336023138726282680034384618465747240864795503208207452609351705218026023177509172777925972100387155924597279068875934358554173807915626266303366431474319374444657378800746161662000304100762533190008800485726918487744577765381960424763218920842925876385481653618994130146679019207636097172877223281616509575688576458588313555411442557434724073539695846373121079544624094514599689308928311377389109627690731418393888821286132797506333917002723632200269756282084340863423369916542500216426952636427449105252194280286217450215559946024645413049454459806873513580022510260623936787804786180851414054692082055815614739395118804787248892329932719110746592982365649811547690140345900077659650860278732494149186457282138156772035194039911560133678510729190920182594626357351110185817446688217483576784867296887599172230632982525225441411284816078425640697781759368663311231626835987517151484598678709403395062946630573301036659177634065304716352493368397713173745128042992119531208028822397944713798425320092265535885410133533959286285116587921638993293707339493412294609041055491638721689785902947202215984247877611705325249038889381793329224926877158077272618185356945640282862312422134862941849491565977794463037292117904953023503036006872154140761861493466732232784433917131286200388238823249105137699901182110365847037854494471803755314450119545192807547489648293718584021771340224631133694047809987594534812906333724869849888552760101966245128310073826591341867380072216070271119561371814370533915699999141508069287345879441064578370009444332733300456613004996708578530705915833268788032222754973090706803713601892464611270533244135086507021299169990335425528008371213593009529728324717409273240195339942505992590686238455277134465206693426203160690656817522469386827183733704004171433159148139371972551145649354887412905494848188171284075598519985092126955737588319620457236530713147048804005500757398541144624576116563049198332904545655865757547605046909461092996825189026211351358803514566014775533080295835693355516055938659046644029273529969543816839458211756896692369975353628972321083801934298573628978693331983063877129287723774573715045374122235803378279934749118838660296446191065992350140984306895029571005523689774276996025305362911703129353881544729798518589881398668155460703466359928349725889638717497515336888289415580082789054504014576424309749872330137003595410585666329463866706268249297011617073445579233959624871580790230475694076694020647966236777072974747024538851680115072510511338019510242729815602545666155443097791282031399198347374071019461650038878365435037014896183074798044888419516102106035118583852303206115153502457918870366985091615078912775577911543072073677835674215559800752600377949354876642648888000309903047500767685541704919093875939001871289757976927565451020603453986145793082401971901400495407186237778212544705915200805714266918817377570951183907448740794161606472068686225358944770777488502644508697457151387286430337563603200491054697382426767331664240661989542238867556711352102332421163520312890008002736375154363494235225087904267030536463804383262934182389942365004328377377730472228813624643806909701814647158041372548083627050879782722731448569954656096848028335190939616777639888410086272199312739325604055818841558482662491720680238699922398974348796720524202710757287263567829157333670378188266529920150073288072321563252088898963757716946100744183275205219972619210533006303176136974550308646576490223240185467535545404805217120105133573756161371078312184193734110903494622179679514272564950101805466576220161859923431662798359949963536692530590490946448035611817601990670085618897281887287886435875221012753244205204149170559755115246017488109412560752670021052035357605582743516230196126077342692013394724146962507050829642324409083719167059831635489459300870377612547691882302393204115395106000455272538378391282232780815741136391252392450925524412269298645969748709880361317211207187987315649799850383248278535292133339049820389790228943291540111273126468516676872066574725472971982542975271952712520584093810102111113001351925801318877957867811640301365785133054905457838942915649470512716940010267746958670814148712814405624599362151528599385218867008242083736764419220170274014405337543605451704764626736287501780304635682432991439938671925334830983892106080377995816192775175003599354530973173944416693890482961140459183131196724969904655925619644625633228628265440236336018127443478582317627534263529289207877622125223182078891408462556665965766665192779302203176018978090239470588612419545604526630206719210697995054108915942469669305364342785182920069670898340847655577301714348228494524165641033584256038625307519580268266789361969286375786200464615334089256206051778473375844092483034260871159275914303426795543226498128348756129466330466796973851767605336586747627691174000820274466680974271959340890978499039809031343035337776511320816370843772834921545249093792045476607424635059445673542354672806400155743816137782299119534495913296444118918322042190814500085431612988329931576219537927403600903843190770882007717421510343568915142844958237869738301681843305973955702424855383314749223593057433331042561336085075372299536735539561179026196807704660660390228977896588268489525140996850474196146594348946880307974491567012323802524909941204390414173621947016252523474005712352882743757498836345320343213348785357268361636376997141837651003675567615829885089012454956178468997465822090646340057581710481721021933600675660068844573006827416146978227679261724884739431326524803513400753452827598401611150711802264782382170816515873915190459262493208529253754235395054289103963621045112868934887295418763078834310713715078736962388330257764425290110452062163321176346298452869664626183140393622671746949406478965132758974654211586682010913681753726024428475352043392236657734265582273688324569758727889387346913184564270902564445355756738314134241917729506319149087949689714874666180941042379138849185593731799092292681325483844561547049307877831081698757458499828562441241405934773622218960631395537918084249730028581203245318298927826723680742136826095733790940666105790646381658116968546370678060010867000972291688449900823777749851086524821143422842723970414220943203568218997010310157390400424726929870688769720200244287166510373978343435197975564047805510527304995534059098124179838435120802876144346478233287206072656482909688025992352554115575836852207962470250195189966151267386533414089965872070318678973986983474274464014824088990714582187074168191301143861492409225232916132821914210065523769257495376830824364588398328668383968985465707663877101802421309910128084319459322878456835651895938903110734919697810402400471342081491550608122193792505211058640728086015968705430546120529587245136632822219999810716345692453610854988136326531879799377034344261151521306034857118078321472335457985891177077770742441047067157432451252533190482717370162449030022755417102694732442534350521336969348677611925105700668547916845442934405581008843407445982414845711308922914741869448850196511805416561653044678529662841911356096958741008570346798492681479659308281733773838685399804499479339437935540921842861174944087510991021266350734150415451376283688792385502836785335970133721508303152378716896621654159079615455860777982282757863102156245711867856584164747693635032807773111308045482412886594531561015795158704951183929439585079147596446155755092764215562987983520837661508221380710970661712374334965585111397422133015313648243128036521742000909407414920378348789099196533530089725049642444979342052079333131471734558504880582669536468588857309809747016643817107447031978213059292505291649166510069795110447660279312137456273142633368363047412377974330631790422758166421678250276119287554907959411704414921331552263993821251871620149019379381955903872871568278098642515636015127412781965982656710555523704428014113776303127207868856914803795598440676866377975481872382378175191439454431381312488254530330862298117479413460148332867531022111714916717479687568838660010097242777555956481298996157507161737584610267416202573670736067444384362870544004119701395703644412410400486902559354791474262060712080967629959232242633513850243435949430908397985912933270855053925660207126699448668827218067091881501362520993738692661324878857130953633438017405705635602171254594763146528029541183690942745852538637451624310854507849015643843617155357063198633604206878016631082770015049678423858478073797599253439717999273655320924263600815048523073202157326566224449158499842851396061438473661261936500941791358384129268304103398136392548977796371035585889086069957667546842392005757702322808037267060178678706181358788402294174646186897620362641509326264076638054298949653459196630029997515740338493626419308825986640962732083521548000906197155522727539401829463948374362601791102623101829814039022232879423219525363357622193755575135875493554693621097543697929319624375263712285820369018443937349703626075262456181285181116850930442342289308364817317534038851643686814650592570973029481819806268108199151134026950865292914238804211476058609463706293101246433746411051841328506021374505024491940716492166850090584146933348792930512774537880203393394452960372238366926615978771765912983189568400132992088381804744134147897140504239311984784946608310881136682936110693333963772106435609170824760965961510338049539646956608568506727625452637315681665942622783269742572552556483282233893361927469910138121298376892246509593253821871141419847653550696691140366034772162152329294769395978809423215500389290895722041352159315651344771402046691765500261789391937585453414164337883016352910962190040627219509867281170641218628890416584516636422652516089160366361526102773067033508339773603252420298346392899544384907661754244308145731688426373692410797097508019430025588373649158888189592516825599697148570959090191084128582224909643408722512220103859567410916876690474160101944925637133323322886911766438043256383733261730032640553856811146851573430996187532399844059866229474273167824537156786823171048398310134930170141242146657104828931179423941053889620901881239857323778340002092207189023171422641278849134267768562486037733526197027164662333554738192171394917870651509514214637861285005270686310424442170296809276506787741769169494074045546446606325332910622678668979196491981486610620931401403129014430893279868655665326741079068608746280645290109567767997157382521736004243842934465242797094472977937044340961213410002971228637309107474606527465109801879091077166272454853321437041054713476963116177258926447839027160600090084399887917397170231429832822511469926887769363521794490829669492072357004515935905852778691117694226925942508939340207743789620586609361113532691982247817404603229038190601134189952868163469390680392885606059758427485849913021372958857415794081604656388522331074764158530319530941281242750538161799700977621583428842057795150133250653795375538578265081992198183056281464920920214429406130688642099992586120111945388056971523972854986964199623928710650082170013110837414811426044458679861125449381866278715956886641242232338645983288834109820486369410270063585673124332914544929921807447733904934142255345929764066798836329556960671710067709952593775554579598632868282505007367700567926617890419652001756361369362688046881350527212471980356195540594292686852999400816146326348151402572665907559879360499023364380699213375335412916140053558839826751811850533244640815083530010158308156073916661928109170972131251848182445360962172134660568639022812995844381514205451861856005680198285767950854891189188249094158136965847578940327639615653139587878313638130460991774844310644813960261178842317200331124834506238803066046935307343006766913499725304714830656936520691681828007568793587359358601662441461489707752973169948606575903323455635780596915693790954118364713549022512584918736686866092239054352210261381764401403682133659595163280659056424638807585205795897057792890467522337959891565572358017887094838486271430768162693296177997675982493033711249522570129594472457452226773141504571515532093991972022828312770820251771946394237919598479747582623050099948151530441910159507613324784279756359671137449094697792083185058458083824033326303290346709751679990245797403917444157292975870212474754029330988791935961360156716983856524373748522280848683504816089124289806726103411389345614123022292211748054645959752168922137681332684588743769483358766305239752012595419591996845187227033542401126910893844632677195837252887305321053983629214034033168031897800066690105605711156591338544744729777172460507897992608161369010403741070137511629222356401757659283055518363864439553180695672195988856044151924667780868485130344810729666052475575650311186007748566744923692801789336143666028899999502095177291333308549709458424565605441217415183325463456614054621865418083286783318819543158932189573598533269762449508890332295972817512580120742791853305788763818447064575056414828108515873888496654622482457531037634688380835134786979794820799170389016162404229781486139002897718994417046098476587821997328118860754814919089840418858137159679339438787675318461642195117501738540650447640427566271693753674140181677972610242027794284644230348370889020184691031485987949616377584178529483299428560859484624254658228289102359545991212355054050883198644365983830254756886502441933556943968202713125298865844517804323943538055090299398572426930525806291708759344069979435712015092092212389144122000669392955153781969386140686965139271620536370660624356778572916321901617409390308759475109895445834833020544813330225314683743343601806611147932054091375756700530487234722352376634274732022050570034053140726312315892086987370158859724399390279631311771634214587856339865241211866126079257527810675827813279255129286619926949514731666300871352978031170067088183164994566609503866055793819574004376824622434064496820191693824974401465795552457641008030085509591847567235356230656818893255171696739221543534667599837745227150912963771438938680395811943641995356856477139648573216517474957838690349308460060898862425727320688452304521710392130040404976702541978526097148551002790221765517139996467450066722467414017026169967518136706815404593331300393062950861608049675816636991588393424114346402894283291377509128431177759200277684750728586984601073057156861560302764018734370142421788564298415006335223409179462630218249169283703552392288930274216492425528616414391084219047098292396918493006165820351866147949185947654582551661843590465394132341143561763476994605627723147311627348569640176257928239584946662231895634708602877125124028990699379439140599542621237269852959747862640562823190122274365076248452714644588544084894935838724127677141340724829231949915272471480023194617046280198584226199012329821025655953759352909502320773032418254989290873395362697640867847583597222729790172226121365322013283763420565962362525434995024754789880059446738128437650213325474346425700555284352251269266041759371348420441381525390281243774502558151564429648106409986996466726314064819170888953678339006749870428519072652643220478304504302900601641197415054659265363828041619112485413199424766999292451855259553898262227842429042559891784078953367184624558964083434537534628486452124633566221305842764324279522550493980641575499147098622027138461868950986566314220127581449606321148745564731452436603675345455039869821506049247059535048655607659327116427491795092944745514299779746067656716732486719744086340284569024478549447465057860253542896929787434301072448461956313184717593209292537565694736441010230900565464083102971244482856108307007335258085274345037095420199927738191902780655142290876836166372456064701508181624603506088702246327393005266740226337958868565694706668547735959534651707434986773430024760699027103858516488301347638736767767326239604744662002074398259672315533443603194420862534436364156581249988515965359954862999586615429110856022901378489932529879200254701342434745729693835220955029972857666769983246124860315452593196829932276239067118401449582807997540937438867989020314873193290498505494237262469398032164720892193083581225243906050592389730483737752422520108419527447712855781500034587434691723181307636039089124538465497599130963080658098296726115823885063642368882799944428893152228670186027287678921086198298483629248627557402318389100138321794598421290658992194105575062825474501220265010488407437453513720684809708330357250984570497869905897280291633367569942597987501702054324595657412345021334234015726222897622875772318922662204914163523733246251627637347416539890358960549297202276972627320309339884141146786351287530679236248652178206604278728918001934214006792190090206607559738093476542460305688882978035321725474122070411265144984183933344169469386261519394857284358365514932904459994901669487388696101172845283743381032979589150564171867561512944026649609619739965971676463967418111869445819810847554143696080084615675355597711029167210506812142932462391352946251390092438399351216366768471465797066948576668551966046952686517952936740438544706515749883368579012178304156459073396083953830519603243549020291638633068260304369718125598040020513395922103864763797460546720887636796110321036302194069369737795676430252478709911429095693697315758827007159787834545424776388744104306882860070677786202191104074036762968923283318192246339078585431954737560927460393289270123667382101439527609791773237025843593547468371161510748211805931865533598459147323632017734649834478730210529945591562972556277052506725347171290326001212545316556628282728197353134186016440618815862344746921398076555366017732462964062719649107588947679378740163259984684418221097277636233537738491838797321503928082009311102212253982501059494094480582353495217970546864974950560075475176005020057969149987104950253740397349486253893083422398358629605487111180136870860531175632452825502227488578642822874429204633327299588250337272482282558301049835373206579100352265158355422466488492023916964485862377813129044702205723211128977890954993460941309271086308062172456070421315709847356832454255373300958395245550029807163015343059731805374167633026951076623748475449167005109316927311973580125383070679628701641671957387491910981256499949588610387850159988526273337609888655146958507485064070294652411334536750873349701189094240841768315101795788980761152685601901538784553632064340715574544655361854732856775223017212729565338737163025772487376781975963321883006631997415713516734552697947732160619645097003041465881961313730935910518134859960220000523751161858403250136657516863919786600984245566973089455758338218932881257730231731806399285550137196345734517006743271518536029944265045720289134900953777815277392812571288020874105679725418161111326849233743641064642670197375374783997675515179783480929272851119082489669271786842141246172017673391510122862785294550877353710061995865208524546145792568907241504618859544531992145962071178923285118003387748173026910526536796281228050225851119426300656112975395652629859275454392207762358403897978665951098093907128499391858078456518669407153018658868967028088059286130413598066001767186629463943070953770275487277881655184759721055235302660020972835013054822122433361037513757886404312181954571365186359370342006039495709769776085532864492497375578206588041429573532615911466533191621649210373939688990485092368071603254599091765127783546010714104771485762234274757242827466821377544215623276630493954105258214541080852275845408862805122882899195903168125067692413194943392245275455225048631986277980376737201104651498561548891026719554128434125717611234078200743344206874404064610137381370587698228824538059070567506572383336020219004071499038701351259029731748595816109726133244701321258706749373058159985508961223501979151893092378642817412731883839424443264590914182750786460323957461758275351073655505916071298162482790579332192221845940009254855520120223534974840818710739411807155978853323986675612852201505576989220379791797264338313193006903955589766448892167565542696165247381454126029339430005393275076412826168395479167446446917515343955389614874286647844136024767500918866439178257734778757290266221953522032395175365493431972845073924320016623903525324675388193934734306846599435546336293290453093272150264429127776857627350405238589803517041088221214491970758646810070381466892504907421215716709062425101309431270755086765013581387991932059394212143282454475189284517818571643403530311063080941436550622902456805730154942589893259256958979915557724266578971671815817502049972330347350569285584401955549400892975319064918712596430780807600243369607878523124253762328255603855772367901999779293841385781253864492434262886041379903171060661677747145383640894421353922037548769926322326946138801001646982625564930316047304195318247734006876763010717524809457816657010052646797794229122823611957271783546443529140258384365811172568548681680418977271190370636913986916407739167275128179361404761482164325473336232027663587179129050909684961807644485754927403376387143557793851378368832790616425185432707078911510311985962079722781034249846387963292781174916264825831219781011724845166103569325333382035115431188396593798650079126472804880494928998725027737500450629883390299424113122858839344794362048289989519587698983141193578652118652793775061826570046514153954911646698686468469192666579725825136726198077587920857302527128770588611821931121230393672688432907145803745442734857969084162312520228329875103735341526353119406347978469637813158088833457251781320607038244494243613044813298173936747619252182083246196174700230282062920470148917390825015921657160956250955789207336352849545221534601391983424804757220300991107801399883370066207532668448731346998733186723858802247574197153815032608152908482622810637463226356333780725395830831156346466479659618843013193666612998852428161815076778753937862520979074215524875745070107035510723236889742699436744825802526124872260063929474845846719679958447753144668458032987511383086451531476937080828919936736148003766051484108164887274034959522365699878287887764537931259447540466575724379001499725479437461444022905049562639612478828185120459112093565930308385415435731844313418733226926572130971562509143638567542610026338858283706144086114668089783532438476995081842239914232465635812539171428025671063125684688373461629229309328339002134874651788270072518988385198035390584302460133988845981971486792418183722542602195105657907287503162243938350195038023734403360961230164706563800584757679530537232947596220596938255494589730028067982567703996046261367477905727522929009435610113196077450533246021674394179606754627210608995255454329401401103569615083814792728098430975745334580409477605896217523507733230226043064011305045493640546122034578191654104706387580800796766598070507205134623039268131477851923273682096464289710153896960973222548939296983520671468044841736384339230066908277473990587030175069754048981127138505876747805623444735529118739848084367997679615546256985707980350133634073702709135877084334745848216047148952016860665316974539546387481393715258438834262906303864575450391378480984797157947057436494749789043408335930126277396300826429302817548607288885095513107944117819999267117228366337884081692604307422985830261002718114278978781155534921912047315613771450346468120983713933628087565890827201639289606651020830162291086055646889334733761634065657586324650077597617431545531707500752698317660169101364525026472409331041644427090373138862040107029620138800365260811792958998321186982303762897300890051815085723837355042782525701565143729086031940580593128404669032910319216612541926846050119150416483816227586565537907296841902903567878427840217205152056637926971311245153323713824395049736310504047228591446914221734404708472678398069722865574567581188882424565416578330566094032978411871385318939150146170940873532312759528143851116473118872183841557226296321580656008551032747265162005897323288888608274488965676193574435644014218090921647641012247954444444119007655753912444160771759584505498895667700207596466420382314745449108749595100606238487631937569100915959028521911832086059872920645987616341676545622735614131868041432377298239256063095334108219436925034319807904077558834936693185026799521358322592180688068370599407699264187016923489064846040272813381608876241266201624198135428180804629107080539208596272568678471790158290715387689164943255204808867617827223170248306470594417877658030909813188247695311750990265581175840031842635830273323957228432888718569037037479889735007364889863368253083721310016841541195459636989137304444292588571498463269839324025992005518376319054915957622966974177162270306431919659890839062750260296418902342987155052577420304318181281655729035309290952980678739308445773284688426417749494377252848356152703948917339610018307047502765324436797609242094841737704228876016366833902397082116742039517771140113524833767681249227030241367367362669291045760010467951209611775672614084186419994715900365930921380197030330138015456973495546772111415303324866307642435255002142172683833619974212337582922541056240857362945025748413501912462591919604153772361078614759485958563146051220555793579793118774154236738671039676977408525624654752670708590424016577213409514327773999741231904560526122245366773578442496583185217103387803879292243408264273085192330346978865472133136209327094432677525767550791674892207927052013154569600298054298775728314220597229760328085842895664754253443505389320643899991710341844971215722976862781756722823807712133182362732355042898575195459560772222392278887939421292404486469672470181156731148802306388690752013679758541093280179451283772985030060086083266530431196691005185862089053154253501062911478882377712248624744398702727376251219173082332937541939807418172850073822274971034292077675759163969989543412419400050276469633955982943385841059059918186712101578653771030276221441703433395874957906293263285864443238025225572866001011630607980765023873577326158129421844031837529178589496592520112107080718545034859971814749454755426562196896881542944423218373499266825350938930680003865176533580379928910546084271250143973416459075841764287261613169258128235918705396077958758299761701835583763227924124292217400717741357512674466782545236313194558880691726217456910514000715400297343992721567707028849061770840402034320503864215182573201980500644362896209190984147761142340333978955056224494243307163717054873807598418208975892174754375111370446721423780285561770718741660467296399853145417591530610868346126060010803205891203548868453643869365989720670208210065190698245260425217318553767070610670485781168235370297086726756612040829688245872478335755425163388175892466101297813900510966966476295631082464430297919778448127976551870660907432254071801790826072406553361279730965203977775404486167085123743168545732308366126778537268213733609896632839192768596595756855909599236784489940414084052420438076978672219754849167737740339940578706107702561800356552490888925503126475197914565999894667970955675096256418930596632645169998411406486671841565770966667325114181999141065140346909158323768015615551550674406541290837152013336359023178076269465110713901160100413678678784316777536459417670939995112582301624537431926059540335828848397748854790116002524993178329184538221180358121497270792611747950172293811012552857539802413640546283200936275647618790533245441301673835827569813336453841031053060183357692930175868908667626410619296632252934276100468999630187479536191742813730029165411175087103870728449049520763346703530579236802339388900641230140071534769156132832390499820972895262067093917936319029527535196626750568724810504880160444303474008986671941016582106042052822615236923009263183644897880979787231954253256037612863433717196388957383918030715702603117872488303817808424171020313304849920653942183095920617929560080122101071730736616103521259613531628658566855694465601084951140649729187694412169351483462278837377455101944402611715756040182197044587310178780339662299777369735801587557820064240766362175607942729005906944304546220338959637082646635129363546335544806732806292433527467880828777274245607637662145394067504987674141449782396083883978894881654006961845238853203733412820564246197656887746222306295529573752905978095100131258296099290121449668661216818614694836533191893767115765715470122628745728654891502590336566262363062751784789987533488079989022819662786643974082307900410288762368162236788883790395034776712467725343662879472151562642193302455586006316480670013293517744575799941479562867819332224515192310679472066367221732927463293474406202537659215332946946209502588421089444807358256491282132758625010266788752540095892875599277834484059270381257892053986869472848114862458210419957243787771500303586670194924561940665238872024740384939353151413871771061424479605263028966767087238039740161914768425662777135983390988170073607278770034198236564141227584029325289174055649862427346631867033702555828803918608692880015345807606022260176845495778649381557204047802865016141841281423977671461394636137502661049024849912970045971918681834263826257942354827008434126584063434375110135145285065200708781509377377258892639771522056340186221710722835027569601663839981284918361290090619552274866943216949158396871836175600538121776426127150820928257274952333196541966995467871321634759062387279026181176908327158504798808613253559484806856556781798081702710287553463193169359067010451949455704770015442670679575805224378514411252687675452012592787870779765417528388365255367915921109751763037287071793231486314624332814502758749515864892568599735607935210168143361855998940416243092598395566082672410257962633991759190820964414663632692477815710955103935371526847729024150898378361807307709095980960811771835300747325013693432671271421773300229825838417055147273915581603944381308898692170721101402652778908405672164631354071683388666546169357071264337145184079303968820485842709646172860695140157508948636649131285743760363233037667287696583038682205802866225583486387352773672310686566064568499425515846129627894466056754341990544847136104684656503894621518455951534941843897850612420303545669851578876957070499302696264360326770708843281328032001339988385122600932097154094251468665746290329131078926291733700146356856130265114919761785102915348433645723447559374432682680373823085842401492477910553137063932136352371472858951621230082985446946342489425921556529222079165836901084377330094511335958715373366301396662369339425681413173195667860166757989202914647738351842216127002943015075143922965369922750444461536415459158393982534216800454814808983788023245311236936107399103132073885224552282706384153593529466634783971026082891048511495668399443542038053143134732122722611419880368305671713149463899258898292264163202003623810613069174059124592287405780682627284290580469621474207608079224863117915809122114206658154627964432009769075040074103170527416382446601357984397055390166150898392696167611940593906700415512271987816700730739641936565957231391181110208423943401625884588922217441919402970902963593820020805769785268692168536075646106452990884104735200101772511540617832652670183000979431613192178692919328265151271799627874735139118784853679788759011074087493152380268119630783702128019346371231248333523343924647841955982403250347828225909380816192761141817664784261010447575398262022794424487431457588283677216395002653539135591178050647995867041784748505581430498598781299768798363075602215613129915050877949177840255385799835705957605070830475720327675468457202803458316992567198090684286734227961581358942672975442074495784615715397875408839455310612333661313235190667364404934143869418805548770364651993604094808560931953485477320890751035933864780981931251740262279307228863206944673050570760591307387448014807724952873697339897085942784596719378839207406387354765807541984385997738233495863945015194955467385730341090830051765833718366897742410180392956700353734209514176718598292604300827828501126924171897696841201551452506457323385932283985142376630942780828670250134073959364727536096362464121237290212559752749847478621730322439240520715006217192781767807709854199205196107790993595461576478138508825904239482639504954189124286270319856976512457737608090102661980028460513430905953340074087663000442981507987077966223483079840799434499946890119420993535476379432474967037292867269561704731767694619071959374685353813200881721995041624985361126992496558275774728336049224622489621699726070227825657283213158456597681415012168134296426778149357333433696569379003018978831078958707531550137622061516287087372891291249135365459225609166059092571472058875800330908103037385946673157200222219356695434437941180767973669990596704269543827708455623992214289536531020753001394484960973445599365018908981766593972205598281928256727423562884567555507296519666429593395623800295318193893609195131792162434077818879397887072750003424428496190681788330923095020161282779481448933424527064691611257449243933445539931618128813556712519575095793250092123006575962198672756973391157640174620005710538128793294588714057117264008534874968965578235190629749381509009390001369513338745611761573476713070732917294148866119069198222001832998552645528064161106766344491686884958536913802998489233825343165170143176554958747173889385595764768281113126851697444666655075318247845202871708155890605515341229623483185207909621906946387279075862745126272970930544427932107115828011292835768415202471246712712965133110205477989492832253729577411471702792035552043718343366791225210395943086063283888910637317214261024536211204268437332479804126380745640474120806793121203784021659754724891599560553026328532982983470530990781846195200222814037225266410058016188031031621297808029855057716788668632383770243090359848679000518813427871132714859580485555045326319233912067146282713475221558097257571271280332433550647363787065126465112536207767919520659592769857923274480730885696223378763141568223261226103750804017406019855422499537034910853555057112786097219069134212929964063820520067100785478956637640143991471564863281373523182378742471697469582326325128195256497005794567729456833498560792199992325815696664993218555967649713891525905163081555262847957651058880333959860758494862933053463273656639223621345231811136214150962117843497931401630256935683262191914393519946767398393325958751930771915469620222623122868881624481643857842762435005204303167567350416557250267034996441018055459610319312162282512192065563708216515906374432010541815314688020718703673217941582108583796666392529819920523103466514683313445399595873506494023035837796201959836028568769535397783585519620662679110461920261260810492821786922807917235513364934382211425807413281593500427149450488023514247045090927545622291156755654416874096648023917748815776479889077655176985522649195603389734286683269311194113419440224021870598658601079758399168944306658664632244942712420311248391801606006691065728939156714962840769631916476997605815792135548348502555912387970587795160369402166142569324632811015148285389143724501254414484233605573069370833668696489433757056832516217945409748566020705226887772236416012208763340855543336063463934497218607576787839601794850644703262643767740300711799558754748522047575453320212631935000607497967189821997454185593538124519422445687629968996667927459789945614979504188912686221443579417183160231143080666653794161662635746040095497710047790217737736445511001010793490650675842801360892473306915837622293793217813282588014999783825260926713079461699095826057928697237990194756255757397950819617767627058123764971751141302927364301813992470762142774359489967634778395499782201466952563390734091157539012876064567643747421791185673816310286572452058808415577366133785189281695861612403573606159434702761863289905144523007705188711030847766590329754773083930878600530056492253053993529407122808021779499959051857155120883584202097020817997448878393429160979421917318787444765791476842125560766566858887735449812785961490986339659224089483828705691828764991950722262153099546802456064655024868556608451289225351060471788532581193761878106778226877271529988702834595949453145339584380911823159404609935010670525744729939267063735917014593756978475192016653166409976215729110626436506889526523848499087274782134902926320484500622407793148465735240440916878255956978543300084218366619716829224744573391340431440053782806707973318958451051951956331246889512297394345146341459377330287203345233810390780031435312742896285769116899465384869399574234105777530838387069848251747380814585756872574835010932337153137927368665288632526970164124379283373340849568549251263779957930046656623622356725736067470710853261851527744082864909009045030525904025604916848826848990614359249256494207358731976835464007225439820708192383511379090189722641093911664743038200771729062462925531284283269579391708519639283556993316366706603776233563765715552997819214397957574672266889632119435595139646155067381207609625164119689457424453949408375015735059661794170699285340027087487627689835465658079277537055269236193757639961656240604650861666263325409681960006222737124701345980723291962792780496242583429282144760323515002049319075463282091146135824910249918442024230754850099372393920527747768101711696735285301387303920008550977229125091131261043117413688424149435513287821362009295200747076568264016876368792161427175951586891338498228562609524462781417053123594161088632985420765082095851443443570870196025887804109192662780341051146300886019550343908532936376029847605816328793274254466412621985853857354462622169023737407552669206804649129749369981422798059948526921022399326797501104271284749321528778732170815211146422628864876111626006300229315851256677534527221054637253782226814805830247604345868203446936035537741485728244302753216967894216483940348140901549673941376636583411252850643600784075684499248922415049178595888170267086220546757126649648238788059216164012835594234087191715487237734422794118580298780405645044433274085557416524201081998908800360644094177864892906351490338258081528971798851669642751527467435783498459846956508015942222383549243633977262094926414040091046310038829292014361530279893916387694876600285220143303350929376725952906617440938952694365784983219227933688878104581747649961635281739243878338348184683561729548721606110080946453126291970663273183051645989836687834094096699130192532402161675849117185612600569399188745639323546372899358079114181952853815789598676676004310046676622306929732364067722105060361123220324916401981501777995408336894101356682604875060283706055683275388334082651968877352850853048813607805182751145396217990127806583440327697362183755409734641506601286296049473505029231451616629586435426881144770282066018111236192285599402687345367875972832673706675534376946041635959290869026775143708116125817658480240717696949141559534156836756432209287583157777409688225395780548625150217783589158552352129265897679057035870361026497105194894444178987086539027356681422276747049071356361332566189889566274543691405145582291908951185655215816109629608678148038646692216104870935281832275979563622988981472604699994160959624388951165596282868208114449782330385262934899508226099992951001752951694083606370760932511954857207658741847553691636263459664773927116807000837688336207576855458657769209247004689160780488470120359792484695097721447414315252558444606204459569895371257020884880134175398691981730444678292686839616924762932249993581674650551187800343388499962944699523884015920214075250374947007995277686647782788851278448839333830479861424916165174828389890269928529064675909801267693109908770123339213551318800773918599541571082870931442526534442738727187165558119738597386720580093521799635615901761400163669130260598768268326430160200340030036133247120296414635043628219911950515771062005248299429926564009933780653832735160558706332350298934406258999151176482807222719495620726000913247078478087771409273057191021707979098492639232982077129340122795552421393375473547500291517410249000088701555258597603356974601251824278244300878276266515924806060842311192014610898641105135929501150204021052737590686874497373432181817760695024602124212998399460187077300657429738666763869568033116206812884172419636602052877930414205394366869697775028592623694010388234224425258179163305635668892888406285057196353253432836438303971625826585720986714144132428954448670242749154808668471371355002382690669211154102375209763339829649917348551871824217757000643915225647791697947263342022547334767565022296662819566846946220665240756914480490804083749346960803173532388653021342145912395453230983127784865472599236290306408775296223895742833714611519147225654859906435037421393216538609735310616384758644143538031562603903081368702183779071273004668234218301359639410102568513761558673943553589936397657108373332635864361442645359441386686667888241527893067791087804037495980141046227679663672378101786341834616602771944678790454366598152075404320617286153188589056523015804180303536294583108670229099859355127721624511234096003070963156870349567111292777133000222716644995775293497216126362860540417376405763688802816749839781032690208357851210438301408375460863564755759614842078753851430032760630934022914773452539474976415527471059556638813060590084843047580484661456604554091226129037949582323588691462912962325294234238771048898830868276474482762317669787825109706528114887485762791884871957712040041568976404095855751133651063844153773625399755749353927469603593140305494856711872876380612055446149893600735929557182755353214696255246279383326360555043480128938666936303033382311201824696205312381056194367355769598503796170669296500630315861310397416572961499301229922789899041830276464488453479205047801014969156965919706113462067214383587592857773629834630377210271762229849917859614533067719809438088355515785947483205033622085851726136735386856679686414849242568661532200352778814930877655615654538046276074771708513068057264238135668823512239459321574169635627493201553390151681407890251145773703745516022879187675060926104993310665116140071672399318859421357441253908298685092644505319347614327237433494259946258352049264498226903212489612790165182139312129511451915603115505132098529116155883188200408472774528628253019827119347213475250965626774343915364106617164672586101768478065707791631495752414146679157676394371034162805245803955115592414762938660207671649752920095192008634797672257910248044635074117880257761128905107653197889367477772330713846784328711723148348358057310059739752192996455416436297195128112621412210714246557761587989155238070721029392702720483593099561559147260479005433541994263333367095319855347704760427702192615362592087951711005612297666268334555401625519454260096303186417166699007869153553197376586393715349161825101583946593402127955156965146369207019227316843824330427974298954122496932353591765513132867392453302172936945172346269166531023976411097722947804199554164219911659146670429000110134763362360875024916257572285360707042603296459348957426748070690285975512753140656169530584829042514540281117468881527390336309563845906533709587067474737278103426046863510102969934557702906204081365025169920799080149333552200194134823758623049016403186550050220612043337966978455985379745471402366838552072545794796168612163684551775414918675404317893749954949558064447495660098707126824380230922009698404517435783788727796491137721872867069886998125938137038434177311255978115529316915226589987481758730375359119299105570725131716668907339842412004298401211754879055192745130060563407700580009368038783864409961839663883879468199441912676203893103741722513234217791077500082719563994036771745160668905668571377152933863173110735642627972335907378629317543399117086301610597381838900219391442731482853859460495766816496625562190141956630279861268105306027303329230208780777307792513319463948165987020516820912897835154277309392075529919398990032168839768517488986069488800271003074627425162120066779310984837088712704537940953358707602568255517212459853936531561844455252210831008989164475943848363072446351902935478813642726034124854851440232276729498582538839767393106985240767992325267610893390907131521507747388935771094087712145150297045500246118668601189806703033674518117609524022860321711812437037212032721292778741014592217957503491825055870839800761508603954005756026237369639531985215251938161168833608517000844703020200967124510511664256660548024876579061367548375745229863133923813807033317382365611931583763867493495178456148331259121248093772397498865785584015828779031980629653378929838203000221755245517486850862665831117091831368498796285255223272115251465591074874406876442170657672277270329101572848895128814931918140281801123031869893545015929753557722206138141383292695049889133326829914518745344936256438546128350351185427452849579881280444314338652186819454029240085505752388257845372121332585482658492318117380063668748205614731670943339987789308970153156716217073814826103214569772627462640313985936563772531380346617945198207137856887847302057840211152175524762514044220333025520333287272758158598878206097964509108696952185840120155671811896254492055742836876765992373249269181145660912222401713638943307634919687656106664390652032357923382101621743289319331313990012943425232790582946993057947698978668693505622599650422440504792916582684690937651094690506058161228189836255648451651751915309828746111678576531349766612303434276359262204941863621777691032967955512306202657112315733021350711497804325868251808802246931303371887941974067609998232208625275083751311040135394652527804431772392375263787881192805276036600502180000497453294857356615368525191037888314258748097256078998494580612990253870254782293951329646778562216146704810158067277920162409437597545603773174975944480386142603439217744228563820055745387612312059017288433747987916767012570561276683964766431646725774557353008036501615989207436840808529706670155988231960496144568071322648044724649071912077495801749627962015945170415146949031165358273972547058493849086789302467606767082505198948960916425784769195577076637830504655360351451133910851102294891919214310451926276269568974993111620903535676874632270215014792971551329665336663167635958549226498163742299122507270770051126409125641787936580460428304589961048950724750121955552305846477891658638807520086053820814729186367650613060218814159119316982987622343156752831435506713345697909479749598191088258741682044937643150145786010605100476354496932973098884647294881543532132663652223706391594349143864258043583077601835206793375979356074356414441809193852266213883735471881176404369656081292962490273978815398844115865131867290496811025783409070815578618241472515373033642482778088914600443812506230652997346029024318264717672931785876402380039435481163550631969316997812160972074776198777159728138212987478353286868950297336052594846862239535141036864539235402737491320897118637793829363555443309487097841408526173835692261959172419596456577655861579442020133558313600755636884717148301681876600248724863790383380103753330303509747639500799052006547427575779156122927663670944784948405060972868494013732967480741369846223970895753029475448023701817161863757955070845123189546613682022833057438724157376468038869071395528606785417063501257125909477592055541274370376898464140769986506616971151737641407629047867252027549953707402747776146375969427473408625169953990544766585969788457131272015364894787464166028595296006226191990912804596546047517469174686644024702550333534916545678746909102645210381046595614160392600233015671548031997322439159460200714758497225646359283275305503892698082036271412118308252107595419568300150513664590487854901322005340256649336799960756777643939770717136350002343534256405292751078504119990618476689026322032674483431206418859926060548236354129303673740674722414289929773767306074689103047478612674176512894791360433626955547601158996556578766424324231501407387673171785551070360647682109965097702399333352707981824618950017984706669596906989913164423427127179688843960971552354180006953138237904950324924661942245414560877469770517478486488352705544674014843701912240033152397653168299428774065655634910581242894467031376887769977959549588951703828477041693322483073006009861119932613000757831495831203524459631758723233632457085706853371513799921028326709418562134603303028245964516277068615565967083879250633850365852864419157543555671431232527265443190634231107584980943273423980579660434640162182163325875994236725186111519021224629306963404523866646665841547260023389273782082462147344249892421935649611588538675883979362351493349759244581782440088889808923915732950184295573390240490176675114234294900518831928467448255300500062703554137401968715927368199689746390278632748457610495752652623676585229416167396410595895364393249013226512144982873735202159787593011865689922144180466385608209295964626512909942306945316333000803814963355709064763390092501522190045389797261849594841746121967845910368605684630938477899179757815438411693109319060584496896916054247147131734267071213877610768843340806716469160173183622662320417100178585210185018789430204224866940777552958276360126955585797151672399225590893571885072366653723713620222948054534148336489226420261125357788019693456426078938281353486328955254165976734534192049555046814177669664956944319892449844095262579248154619471069685401395959972954571841648717288098363668054905566477617485244795297077890329404370816166746561532765545775923994423141390267982421650113305838987209248374773240084793943035851088867281378698709413894135845471554120457719981763331260487750292629422842066401850475935943289069824008493684113684188685432093400399543985483731386526709247709292208618328383532071547037052031014867855785598659336446240114818749699563086811108275866733543307930419040561063194957248901025099355057771013995835166299051326608093409306749999054523151501904539966055375469276531963934022863318760812811696832853841334754854929837814174430382051493667824831375351222460945110748563148049053828650973413784859877708569854978588949142255238247843579627441295687102124361798015144258254760254494186452316379620893143520596179807911198383131679503117470005009646386570731372706613719114866051531823373017697630238347112618133588508058048498522455151471075766914059491737309921288477919989196767153003096417859512099642773677229766157810490794617093383693906210892436992703830312726624357404042565521638014479023754481293850385235069611960016214478335114921122282282752297912479258422672292658388737049821353888990307386456434792892241752541636280151854356294037453985870706050644631840141059752229343708694231936146696541530402895424020278578533893382959458422929853937306700544290674663104719637722773620168822656961938179630866310262945852504526475379125222141795557294041133279992658268222466383395757950098414368491549661837051687237842774710707585434469283308023832045963142434039793586143409213823765429721101545853629145587862394090624189893735570046135987188314933327352141675677921521746887907248221224819705588605641958368478408769740743210485876634363664906888655734197683103966467950716229198946057916291564058803499573561391159404236725249988358236152474623612799030810668848902622639103623104503176199886880907333696667387303824488123185458424258130953648866308407064623547111949025238431905275147407110144069076932523938529005767490412153869999115933520696890973137895052730436470404139873167776225714156255996677249437625761786044854130702751402239376169225092708905031344920141674360415808365717440373752812226484685141227171926069742575241187434623548106871296514199536887232244415924266584214612725477858045882861355154723732791373893246932909989363329999269699081851228014881786693387311992586568869100467372460402317836257933669625498700406714518459471003455422811928287531315537552616057021198151818588959945673415546323552081368799983378332241937474483983773566735130849652088719943907114710802039038554394142054271098018109292956717382533370126426845271657507780788536555133379945224998924410805407492039550626847331829515173605444815138600727860460100180004688351883894329454450498730543467916980246324449391268982700910295490828451449996855708219463546610111345719142585707887345141349289815895812786707544128832605404287621947329510179730988497149931315004996086500313234687430017577261920070292689326874231159383206167782845476756311430389723728855585468764627876238629525236941161349774823341155486181417351794773200277384480190738402989372552204206722383222518290555162704962082512118387940100280414389889002044157916891645719599719948265173048310270106145857369451891381292343163116187132313663933219862741502000703372539029301306331813651010500413896078479205953608582740670408184791830615469115136255947276095480091924491796895869978131185655565539499455312562048016956047600529302197974532938636739022773067552235379458311785661864585262908603727044392870543536101472540544669490699435805225319657833515657921633978715406947345424720887556087348151851112344112585963230330941081808930012244013940376430088463827688509343775187848748143729276022838840466556326812907834911767293560163377842947588250204997080337843082576367054541963192590288844193255971828107950645088062144724888178019075979579457759462421043020537237999450385025092873012891135007595069514122651553957722497736654312742230030816618531725316776007855006781891767847736244438471523986190863108807007880982246875243823435030404037133916754689988312496977522473273880869778127533114104478901184050580595317858998012633515068402384557286240070318489177501587223650852701338148330488338376186395926934205802289802788359211290599759355920168329878304707776390623784973177184112808806184294430196320260863288658858624906300932150446635600966279554147449213284517411171004275246005805452554617316020218720934087770600334779822850706494632939175142944910850382529689773256645666247773433171282412382239215939078023795608386742067580662325287627557387958537040737753333783325303518899362579514508132538747116642510335242776664658758775635810257617523471976519796623407825384898319183511946092243712635754193608685603009962493616689552029492210224707159694671518443956085545516369181747584398108880824779008080850337819005802027689041281426977971066089462196330785303604216926584858254554682950777161536612619195067989730660877038058584191881221438355755607454760226777284007109024309273265560277601618554131634252315394138487541205776881735881200851662603792763078887265900554243837024200015965306389184948721155692696802692081688172052519985500014716053254694586912934705765476191925254424286689549429621882686407653046503612056684228898625576690209012760833634528105178830803173831232085998622849204076883949751074305916042347603509367499878262987503035647124776776863796701674564789481860566291028512795029594278762493016573164740247008046517140152914255983381634701688062552061386717290050353102450930324834124001950437690894564554886681936423547015310257028068125538387748561993382915009288453959942730042202978292812100515467913665394359100102746039488726980833895348807187028643628598548468967081205717076907256362152046241225866821206241023861952957312617493112280567613986740518261439724114742851447668703809024876051348969429869553808062181406119427095487285440243454669932265883138633972956013496525060721291813600669656214945755330975728757113097384260043522649980584352678834328569704639242953459264830010310356127918625338827119538957647402249663674889490714482469610224502099218170387042107603135984271174589247193911071282835779935776618215517639388044304903136681535479289190776485301022828797021838504912902044066725327814547577454003430940466548449032742707529966291792261656781894944386203669439350196633598682210261109419885599413033317443457788786832150109657701587130209901193589315800472195694306613154873041410745197793930463066324477460540673758625698173702834158827903605369946453232794962322203546180553402433689570021580647157065758864802513270303341040931807907591828337869503189444835529210722412991868024902465771969272236184161680111938377467421311932825560807651211113299627532056912397428622530288287359478333338608773505578365191151704763198825623832217866323003802266701165109133755429502682333941081170594036680822031797346753943223228785029867584829766108486115751911871380313179157847579380785852666047687042571749817831802675675452387549007200392143276711137695598698891544849171189120243008354110087489794866868891436215309177325830098006196752429676383866064448574560337167817660085259277814693032667511867142820811260675413918894293629378444885525980699965660642132204242753518410960140109862507241014106850719451891944548760561750067875865541366558445737052502564711000654585144200013163624879996906315681809508926526161220934251176877955105408164136402432668066263647330769588849498997817980943182965548148610754773019870553366153321996388749299722033916830189087457857773844987613278816095284872459357325835647636479785940895565117246838702820275325172395354375420747318752954516293447140410111081373687769929735460285662071898265328317357840519279169915518775503969094736448652651264770542694739425906580441063807730879083032750932940934497394655138613412536989837141739732403001095185350235063208400932852177659592064557765694310743541235945739401868883713500409776754651764261103666838222871726297920940864097152850030338279603500334895694639425345144282162015328459767972229258379504410878560881768741854885391715090035561232853535341507698490243206551446000563190489429016024354262821663000488270180651776661601778809123158042572676258689078250860776616972043245680118275391116263585099356659403108980188770960819278334130633695799858499257159565974286153336972866289391853730073902843345586653041238851524785116659561837718011864156376520584526751912403422577173278667546313455518195551742826429801064439141974605886977175673986145906720702853116098120388587553989143736110666000365665573722392276119646346848436716366411875339855321710154915782805965036613979038945749482395741605564069295091294130505304044358609799894161571437072966552427989520118706030931965712556432035934442848331341595744662112379186296641063417414136867895588698690176343638029656080984609426290325952401670883880383440363319800646060041288132855270214205737190960987850734446473720820428968912283076253367653827769222753810539574136433881978733188691084000164319792120477390238978378805824547152153288440642697532128642412929180874611167928626399086085817113044097587378256756478144562095324506743865487467073222257078002291746049733927324336037373903534477700699231465721197837867535509912708634958097808820457543762492157726421573243801854885002955167890688866581061542172469588534873310034925434590562273450982662762452067952501021987428758709940084689740130261587303859396477240084330022390681645784076772173204535243910943905261613139819892872261166617034646130364007672715944858402004561745223349714946077170652662354342940842134668973762458991168026962684161902631433760901768552017748071782072109079209071926318351223855528443460784099424959517798043672499067228496926724801635011824537107542339153391075897282417972090226624057914362292270737412641367476717724275502054580950311205766705779979726072322828517143230667117748791514437854497382011249618985858947532940862390680263772984341153332999724388684023860530093542072283024996248813167558825152738653059728881932923478434989153966957234528748940632615831231369330760542963022975958702683754849401174141438408474529217783620629541925294974911427636205044784737505129850079243553507614437941853647154104256854536654886175811688487659496440911830715533346113095767496038496438750563936218672196108774834438825917130933079222731966367441068551888378171268108074411933733022215058474147589269425697620923915572715112977711876648464470470142425945449430952404462460269466381298404605026818760714653354730209422888566700519358896408054483274620529252990924102974292353339765231888152769082035085421667996976948773897039129509651875142978063536777915329073801042068632974928139556940926884176827211193160666803688872677710269010471585921202724185303987254702110670956902130011931242513249921192895335847083305240973622653312431863395854001100396937735154402757428993222814602830127116954828476159165981236748510886497962767403727866866782321735113015578119623927209597885453727450081803742954694603081841297036078013836414142327777002003327369950464092842846035391129027865461787883836282361930473397267843150216821223797374811830838034888326223347113469416229390705914518440428522304676882171254825808260294708441611304838204819696658023447843391550509565452310608820866075335113779505056361272585855031110741393965009558492956076046453895575147426342496451764106713473828534530511535174679870212194631557524705704119572899419421681713060692182586444273277885813785463977542783963736917520556874530093036996399122242317655123056425732236826202330433971934442183600053604543818342697879005276258354019244839088464659706400780491930416790628178399871818384043975506891156948788936201083141929656590397517907505882796997108459167831957745510282751842376370790688398883505747401734600867914185965460263283217104889202551875236687995495449612324773481105420740143216991746078373748865713701279698550622453412181533980554900507150909221308042870699515932432878326836082623265127344126702370390565468160437111957447948336381769868384715564505425987851826818208649692015818269638801997015545139892069882120150856385890000696564208283830809385217526125478318840265044424475725196575650292729492472179998865318595741415083188620728895296504462784860467626846232508844987530190473153077368805810237059970360230322705750406191954443249290565017697364820313498521836491208825864778267919701148753782317274093624737364752261510236522408942879920568072876276481113577282171502750187169474721639263653992601454623411299310439227857090203744704087587678091588999940719445561375484013464718270959049780253998667236263959217761092158416147662406147372867002806156741890386608721727466991506671660741232320998346590539435759759546277461605465762123662774425529004515307957598823651492014178641996074109393764875066667172635198649999559683618409962504671485334201719418855477047780401357159089559195536687611717937425524435926818358306027675862718569718350817519870576648635626275564333464489299070347240637808385123760788397792053709339913399483578943596804963535884054209217918156577172241828201640824198752353353988280588930995002604461923018916629242196390237568764654019276122665626537387833830272530230807520617316325733231779505093218067687449015129155991021708596170277697977457645778404713335405016436799359939834088853976338855461902503646692761031190883957686096058216747752764444541622070316033171114409047930311281312612287269446774326651704458587932109897476613746978787756905075912198009605810149363453403301592264636077979950082050283114726531563094396196642373011816599181970126814538755565179272285677787133022040689240973026375783026151542532644756616395957666477851836541653614532974476654582279810412239499157174985146151204793918741348354328747450389316477902182944249848121201944899256232782970227322423345834054741686968396999883705158149928294444283952476334175923108286599531747901517966990264303897492593116768504740526683538644931955472337287238898840278573699899781879525588526913493545040978204226750544653414925340449653610320442957126693581886291057320927475524406321845718316983976338107165022219627960378559701253946431690086378870269907813904813743174348245445957168398588285953235618960169527105787417848361072984887100083878120907057210599382380383703916322300630059450476259208605115257844230414921591301171774244363496167795235639788195922260706155366794900924598632045934971666904865041961871319911024984374200724646799948043656001399692067420899679439180056477273323998896751764800200665984466410315583082116993096977655796537380389583878447454168688855689130152592126776201313296656861949778495990512273948400844253456152076850151619343358950016116262724691232800794588498199722528683360672339129914543510661585855227511418540947053805777482279594324080677185630244463540420336750390040384464264991327021978842105146473508815309566911446494217195425216318931603462595865253875306194970084245964711021248127212363012298353959390943834039415472029461110123274939551439537722811054454290783491560254403080471662566239814088487931445677918529559666207690745681138433445547308552986435294805678846546285546719424917698166660747879848261290802263837922064110083662882163767569277180119140873919891620714460239439729354080078166221953627719293939060642987940075647034351772875914442131206174584632941853906172208959954063314842181551105796800237078615287283941675710634609855015622969819272537456667143506220562650855047478912805837937197245797854699306970239373992951158442254772015522437983845662074368118746703832534106321899938341564639136230763729764787251909154291410426662283239909671730557267016389580946484528615360647145018577770976718610698370926941107546328976226375443160739932409065380385998216894895876012115141332210435138887639860859188057414658325973746544590100162030271631381132814752806936372979953714292007912813353025755241926546648128991788639119918102648684369605673614903967109198753836430190808526945215322472026344488236846967409549389684275684322023352956584285715916804777191420951421517458831160715199259001386345323711647980639888328600904278598702894805440719324848476123596381939860375148890451404677090022613368395602384124547216633114613128431977293664243530794338259439855877634311624825415418949980007482013917431352254324836419830513952872164288308837721055286539208061282220184587955751132213153115728077446930401526642308381419850716334417193742211832902745289952077954169708281393987663591567088522160790345779875601194977775398631887789558669914083011063742050478277111336312603086821240285524175361748518641506175342806197861646517520530948435462601879613014710934613441728903704234585407968748472452818112863667673357073094945880239534405550344186369064648877721734403921623481903550268876080712911580420087971151605625742523190303627652227487986221395834206691502538130728664201584040956188777328431364568502049972926999898785085327620790066792685027578417713114196527391731734401214451130293557225696601391135150827740250333136548643951189981379272213227046662266489829151091781693207206832555214866260810701192757542649723572323679488410141745453885422743946196817295722653723282236209465905846649209326193140258952312185879835218739331814984821147321258326300094648330987074419907467397778794247866048308423471415807793995977938434793226250472031943927086812966509307898968155344005330381231477090328610484795666422882856474230934150144858101769715245816173679409861096378334525135406469527395617309338548633647100402314148930281652872330752981547959577446964878518560261284948199646871041599571297060129862282528988211261394269048693247301258472148098387840815028544241971146135406594749994610016876334835431321931675649282702712527256593991367659543430918282520574947165781055896076673722319854577084560528819440582093280091899363232920064987260431814942644421737955083799499545020137675368371109337470872373326849256651758951781944815085226224488047357447647461701304534764427695975804380927372458934383582975382884440501999819159305269931839073949607406210005108994639426243878316944401271651839180866671598866183349640745733002252726524674196229807371958044096847551517181382895133552447282018408767510061453781445548249199647747708541719625672616092151582987135477868050073403965246413065121648245397627269167162264675290499121534294584449836963986302030059225343965857536622393452642484718665632630663560006757240273737692148956980136771812376068056712270254104899465831868070773656741614358466943498392854678705657417491553699557232748810156617405287180726806945606991157079861974355035512972867007700178892599386739621240649170114309024613185452048220474482878753075959928327165039059992483273591550329520946902223246755744996361511903285171975872970392419999073929539600036993779793798009147305268561629362389814828594631521843103886988843737619773769098223700990185690124802295821899404806178972955630327643552748225787471421877150533230109514088786824915964769069625136527964425564749633298116201879641830181083729088878260233811668832581428666413999572532404544368040515149659271313631718686071103544619355463577876615791885091727250657773046093424123612151958718971177618635433102823250718094290373913941921269250001040248868111378955996043809056258994870150639020370209773125960224427564301560069796610937161005481891517088151295871777487279693255250091283027223601637015298731195009919150764423220233674727118463076739518289916430925242083941199258807662913593400683019225089427931682839631189059191055872399259330027555562433467767276576694816065181368133689425759944446163791323083606816901128521296280664207455505147101940339551148922549310390233409367911341249966937637421080987101344822437319854641265184875933953251926380594359360958289197487338705849484371738297801311009167537038517803563942872691379399484620202930116975734504959142846582333948524957956851144072611556624804376045863049542794484602300035851619361981298513548076563479412330364146304464223776634576603384844849374547529039812506909314476462681478690839751015146127974302401407802359800082221344916402680528588719523635413016708219166883706426260309041647138135149913727728546244924972523725470783946453892751469435430750844936043241209473580150593951895124009629352607254292715596889856360669268884459888944521160021589155835213126047190913918130551501201508074203286676923643548522019646649789427093161646905285019967996167550383781910938414745090735475912472715029668561127572933412551150770111961332635979541814026882040139699320354470509976799406288398950463338651604003150957113050416952789613773465631319174747737463780923464355344030375588245646829823815429145678280693543301597008758519447040930206775890196052885678782514777681976909570161385953564978950579015255717079247479933577449356258282264357314379078008962442481312262156875435738087562963158693350333515676018829250116549624096305413385674506502167947556843641832527549911997902733389162581598298987613233329619919440002902883032867591687429582275405242828727896445781507791224596658051344608739100560849230417154893076454864162289964424318080757648246159191340212622945183719472103680278426196226210420193812660692365037591940382522174901394182903117273071505212262810793986110615226068088924449880234569665488034178946486478148168626560157169099943237470893311641958026876492652375987452011265699177007497430342279688316433089019329431734005350414800954496530359194511651878823477476513255182416955877451607891920349195241047048193171911579110987322259649053844481696687417107674093940874834793577442963602885205521171660753429169629615732288868466161019621372044552483507890685227661230531734137002968161071290418663787729221303442422043636939403235104563165779835446672958463201083776670102216191984543088790420651808258040588749020109295009405521673598133451567277983998085179356779217498098678565402237246082680495206823867270831145088353934475398481564111876678403090896075164129717511744573169298801794796578199877916454492602654242917235241590688428040569557457550113692076565922139954307682956914830571921296352953488625274435210955600487729080764996341490890868321584498460395972632534372885411805428372533143288335682387269330296153428806028508701855869085114836238806214183421905317451447395506816474624440305988417786627735936763222037503498933927261982155126792999404423777048566596853779543510791482686813334529186188128675992393380983103944604021742032974090461378018435243378328385902438817843405862517241887820620413105171716893415797280533996802016073497917828952190159444189606581829065548014583831256555496244762530353232582213669568136546596009398711085747912711487546238566068637778588948473082308531984297021779138700714626441176843644433393125578515554692283886132329759969142054371315118076956126002859818618174627075531085847410098574465562945512051374043604999250604233713494416014305587228952423564961227178476807075566778723301027777474953882512929819738198529943969260533831105495272536081474721594865525855471296218477528569101248020781092877925414125264610654756204698121753286288336075250000813618314036122843902587445708958101677183610596748228252534837034944322708128330290473421760278052530223906723721142087131374761755998858310865909370857740749728101268312113764867775773002479690384429736426342540342399577651246856047063211227445896562192294703955272781355845137154634815390538444294067175472658343365008485853170386200626278671621254584885459908503792281428331925431448843788547253365890547019696931664398522801980403899662011829314653212463357147006413319842268922269124569186718510192093006305712729823673874177776197266547223560279382675160514008627383702277214502818534839773415917983925302676430055256040932055266137064220104826273980775564185581353201399504496856823590405962240565943520190275620558411268851553249234060233598658306504792646454177191535952922870363567155622865069233865781048454050487206455902075905858612580014185472280634228796543539010295269872305490109647194243772439292152869831840106054059294586693853960700036089838323343478821543264115535769601501415381990177239587553297790361694103810489296694857087745404487672578896254875875155361439635237615716513073600552518875081940008243186917978210532564289153541564698104192449567384404323482416447062781352186010957743072474343684863878049902914283540254130612868639862866989989209554736624289241788245186735950889318672280401038054596039448217299563645970556236725943782849602107693938260588978311066593257097238753579095110170610317464739064439859581191430813485288923172123577561098672141931584256016595559236042815183385095874032522909256592674086213273865774654760870625940971062593539302018264304013749182158290550455553120403128946987177184100891894067988418135313801602963860372640317884943845780914344528282849900695321619221532523980608111640691566499875693352324596916695766219098455471021382349773066300678927250868500401741288190751819058088104261160477166988393392739211596388304920554956809034564234046137456066376890837909130635342746698451349259220303149901403050242933335923186829009790483516994641601256898526191124541140931460022210944849337634047317332670666422228215281207174247809923441506543601455283558149326144596898675101810308520536537126379347998010899200959498391525039684459151843200247273821742029392163887254254866657510377465765625371214210633602490648987096605907905675100790630637064476656911292007987779142399106487714381585262525722465816115233911652519370997547305389299482998834804610736726847843085833168110985491968363560503206758978248670591657164561239029545353207543090867293864712256161840281691855637682957496614809511962495218323018600791815500959003231243375828577656513750968471820939300686288807305946708516391285024940905462799518801196244773036918881999176464575941369518262984467223759902013308841882836726534400179204790631062097447373803227352619346222285304352926934612735606612428752562757257185266928484580225368305246426290272627773852612618614207141926905047840734468161705082381661756249224904736432405712116225088189436178484154458489752320048874305505931550104857545896976589380095896324824170362360036269475835095689956339797584489125467435966082237119531955870999359978406660484683911562206708497503253167301421840139441545522543219599113263899367214881677874818924948534274687390443863101110584552868803213087214781561049371582112029913019682790010042421743590909552158935841731462221007336551774420209478852839595338726309993706498939676656823990326786395636553000490319033551955506487661287513394077524262063360686418968755057173139456462076907209155316944719901582671775143993089408771100252775731148325534817925748096607879200104576494844719706254800574536560758898042915631760604457349704216644171545091723458358613087097253866420178841506908908197154548567043577056057282834522267919906230442332421135528314817160996104511805951885485765115882984678130398556404869975323424379061687470823609024184243379930530099293041298298145336470898334593626867784039123516940637094785443057380378025010071331583078709365080101592544366570428242091659942195375346844114930589116175565837943106693649958162613915048455076204512950054666124575668627651876330383268309749111276049964325806463802868734208781111747171340211239596656286212027389043562559658942306407811532878451887519542138522562939217356331921322287930416603087117375439173628341052113741453246705868910539798848128636384405316436480411726974023957797489038736730215263727778120290446226485769267444173123317058621238838496744044690453268250038480423735458897734005952856585804075070374518193183367435940744568701676088553041805893685320230635227413688567800511608815132353597015165402723213282652694685837344451467006646054820168370816580597127925057534025072124473045218676644372254068167779566945814282594945651386581624743691830732361530527746961944801066838767460954440092458812781015725128166159899727161384139000969744414063845193022082719747402743377918698654576929572218450257307882756930527013277092968947344776844358082901016620578555270729281168174383341857913293867277896961821010389916225327970840059646541319210216620882477868369880010317654402095469221471536075679481463406305478527389973552666234993402608863581115411516158306455542469052585282400368215460277516015429196793559490288530923063741659670305486424271072644413414097491646389370359314593788474784863692867209892828965618142079515730174276512026987586338678054488902097758472693546528635034608467358377453765755900913436450791062601140165676357553817464712824658387845391487357759444961247740024043536233836867925595151437803476706617817078779570301056620171808091814425125119085972191707076266578879528199494390880951004278632425922746871906537791672266048238213094756518982757840048416140758332069500001766993266844476657792782458898687977622125027037730956320572269562569371512189761242864802039642515547858376756807810819212073441110601171391663437712400486099156678613749710730026637639946469432283560761178579164449087417296431283854536783761052954040082033503501982959464689858143689685905454473881402961092118869941153281851858160402207338311979336041633490637426549088945691849621609089190155805093255012914700259742119421382888257637345172971380586569627158420387180098660666786423198991768149435859312678297807238838860682610393491078050375341596926890366631774080735962562650692789408620419643995601943880883809516217189639617289691982606132829092335516675288653643997055586015036352111400278764990240925605800749326782132851893642302438256725097145758334832965022932170001788636930828075979406921803316930140116600706075457723925472759101516280344511645126803451404538728710330348045074568980956650811569856353897875255096908427572231252901325444569864669255978774141378802185891903108804954396540103214459351677521770396490739620973641503749475307693704730544706232813517939739285513042977424933583001272719431183022807169085743997028019211865024786246761010492810584881479976851706203375710198567354752632505574177909922885692015569416899353788866395815713882901876185858405075805584403429226594854617734238485010831608134480091729132977222734323661139547037072440553659367766224492863494128123043933676606677831966824050556439909328537562842644335843972055523829692376186953045601760624284174386902280308849224152918257798713307663658236692419250777933802992820831210309289936472592265671971981468780449088054673918123281030999999541221006161935577822976212476652172044666926091433519162391757317535898980725606817513023006620252521836625621519824476681728836235249935151368430376676470278460805037801328112481987317974463263235042094649523465148170670592764535646448374932244776943516856918468989183556190228475182225928609632624562064568984855789461062901280131981267523863011527272619226807803288568513812066062782332048773814774889489623290192388858179333846512554204058831716489535692437682580318847896917571459314813200570795799050150753574465635429455950773237513839916635114154422605838167529871587943762595416204675974582514934032501477373515686048329365021980525230834135410304191372742546220975610044956693353985135563931085166113812656465556110683505582872294619095942641428097240070947917450091170293810280104037639277717263075524218211514528007162723367867574372391258629190531294640419865770339675246930493857839841053022505426634877137360883603206961796950399143750539357497607661612658538668839770336798274747976953951069003417677537007201001924214590307169458712008535207458875317875923337457255188219404036693992744192934472810052121328724976761116048190723840460874132110257012800775287369864907202178298020835631137348012894182751373625466410082847867629968521723451400639322932773179686290679105994140742145133413979545167626369971864095389708797889685256696547064532741557576966064652512418799226030017605769289807565565746679310996811914388454623341926422105154771141033115479745176484081304160426049605330161629533110569585553846463058448571993283045312209655702681302386357712206142245468059309763296126980287009613717229566700189703278071294833006986812661294632954407964968913073784967772135452425749917716952509161177572549117902358619183048658307779921121283716938561146669013417206959608840048270746227008011200278042355829592235084136825780044181946465159151302209983010516734263464037026977435093131361159648033215096494794507963995014652595100676258631868363388281882482183461526278939710694797205566209497014478988878759413823004878154489916987328958574278314550592531362412297026478049507324366986281490994378687812181398760123958908354123140152758927277318175576806084336510412717718307467506561782891461649537719410515333395954880846648038869564775852189363006365597284597170122719211789576288232330457093531303038580631214858215675764482810001654601755812466851566294908696826859284118553416531581304894573097323620339592451093401716639538657195676922457692662003849909288250932213515907705870873057671410497859100728177877696141717649375415603558961279370809726261757580501858913977102217892535318630372762937445957538673852857817864774187870876728394728985338158234244785857531823640429474238774616836377796621133586377901486179268626115018357866969465942565187104858149971627129847498857472075845560464391276842720427341174531707907610839792470064139300493312109486853088448069660214851571848944113222703592045478020187389698292464251070192784771921320885497182504067113729671517558430723583520817499884225117957772891947958576844626509050754125311168384858236133701383586258958291034202106076785801679695068590237858277156367596875791016890925705958280647368424457458415862357552104034068532469198195242772612804945330302590883138253355310849757857420864044962776956156741783823950567637298831473768748585232204082846079937133494910696092191150275035313360246145964141855565614306940972006960689939547071690638257640497971694295414630206395447106466121566732166535098705392360201918575953037038270285080776087013086940901391584098711358249218220588268194441317212699167111292501811376594988886459064089789494620377525716830044692673579205095325055105381992377617776809440667251029738953650440921864876834345920759787238003688325428371945264256389727349278997815188285658581375998893119229382021484987400960836493986788590078406128996472219063593639985218612533622873948879308511437602320153077314662221472918538356153075308398642636689363217751487451409078306867053656315262683521047363035858432011372439966821345059507910224462911886839660533616401713259030053304985712407814215091405458931051951757694761157327783539412883901129233309227759156373122053877948084340974998757912139968537491050339422251582716450140664406119448925901336009109381058704225894982792291609334968456008465650863584602778974861950261825889834629318865219056088190485828920933107920921015980139413672391423617057945815221837601975113971505292366882981416315192198507267452034829324420705537832532521391557215516503888595917997353364991217991527530159165091643795903497129321094900218568671592784394458229158717461016342605791866830023245181105742757795889441487444495731176922757179567860135200648429833876477783550177523925827912802919615905954726792713048901528830196553090134780164925136843558909766913757430784434295574715141670136982937536374902642697008450548180747341854145993363639945099159749089255794655772880312742213595825515257781097241638854847515040418312613423410669025188932034987148804721476286095333549931848101944806848458115321447768237348314528568374575721059597743733933449110169733427084030705870199150050843064609402069914380883343830191935522987491327298368618702751568742055227507835693341376740392181982459496750836064172639874420330758963185192331126559027053868403714060823057264148607449684759877046905382456499116752834374409774834703026201589928874782816786939250965763610379827486779961937051501816959324796029730905839996331129684447238321778334887126439581748340086714412666619816142821054330706764056821862312644814371884647609990206021456487289452222214371141735418057044630335350789516129504622551266418976568746053658742254417196702879136062861774408533180128214700256095144810285725905610392849698215067094554327776514688984204507035039049391621896033781036967271965506250249741464206867590740198823913368857502402816225948661976768754235255725599562380354914368514263536016909507517778385168650474633805152053128720028822323752123690594230135820958196525410633706005041923683228685207525684460332634674599405960295027142174243717972477565828532284317557475225469883493316693201176095619738471957499760203841245764215359246718225012209505545135175104565861095549342651313891237806333090742207012621254745397206475171313306805299420492636094881765917059486790898608697124569112503766337328361603901003892552317613957819405905813400001430369074670204734665570699430551048910599151794185125518237568101392981095742484608807308885683415574672244134189639991647521963591571515843633181980868482047532262940410351786002710067499177824623631131417809351615861440006963213934349063067708872601048610964663941094775242977876461241389367881352621505692327412906445253260772731026697307106963079971084605040858057487300634381131911730948436718574788317299073610082669897784481846727031814328535516725441707154615682060266758213336654288287360140910879214405775402053166384540175268953574769613612508478507679445714249003637534115467414639175215318537055391448676298841563173000580051738124988410590650214827464881484721549340060173962280505425808128264240165485026745963012768945109858828780450811765662160983424631845539929897505970406464203869028615660809112878175896697359182753227253775238763193090219132820910124726326144199903232371718310899347099745480052935109952779203168276214860365649373174856731127691907241537424431330405393364211554328932452391040904208304939211516105721984948991010609773297600581647069861964598889933658258106533031880470628565219147587307734083621260199986669406171856900823246505070455499420236494161673249779489642499775560966896260381065065862919566251193235407206477443215858553774632731147234933940651628057240859312142656634056192482767410124951643545429433563826792358746370087870401356323251345720138378507388023806924472811650820181926467716320560453417021944967438328912556766322339832660785099398221541329531060212222470179303337561300871291764346444689718495571105559506463776849415014104437539766843606875640999650798093435439784747070499388335575396744143890557387459602959334864171570073162862877541942279284022702095469093746317649009918932291128956005309889579861826103713442092590877547010849564129933481961933555333732445924838550251500742303037500847565993666604061121481405307482104730172995038348223450133732925947897747990143083408364844113660462143818646558862994283421918794078998055672847223825913005933059082826042862688536049157334792730542145249327034232815797376693222674505267713397470773889297955355835907489132770938367265131931523431218894495915550249919726172675897054362608391741937153315650910680077803822872950694680422873214773816837402362631171894968325320295647025326244003657030991200148908895421139490038754138211723622977686321865076299640528931079904721760084278774280390480348007084189270798768240830466754216507121279686831879118870020681370898196550752684341727134093186109513027523517594367312386186766601602612054207423781223520349594368444413091597745114604881829661733120870740960200654815164138438873504451351819341301782536763095440223067632749411172683306663134421208765621545071602079911366744445208059216922997943509745499128645038172722690606647945033216929950440561161334121816603383920362046355686483897282494513494090596945499476766648151706236924157389397442962158398254613145870897608949700736843108471098141075229504463299090227983514947116083669501403246926346053191448954486985481433396022364910791166973884166378670765937897795833332513347533541715434393382776205965238489760574562436892868725484106926585263248056367615173977198092648471887846855787057860213150187015633587567315208449529786039680368266078594693054762132859368216546994156797652237113944548617806802830734752460206390338006314244397905256265205625355650171212661298939370978143460992492328548112997340126086010297149378816330428772838769953206280654787901857435707281568625691058480948060109625543169090395656810311406759729357265132864102658490567032677830127801760646441786261899434139761958684555084460410120974880643871309350039110840044451138889988290948068169398659939821989335602841594886794536944201706566073520624534394632182757284580978797333903021181588609203518263800646693779739372060347887045525597862593462368777894028171278022530758901905901606343679465309828312122541254230278590489379976751340620188349026508525138791014218204234265563937909147119516652095857859974698454692449887094163705587833961870741641457195164177976665668792195600202251653944020095396573712993036948797003438336641412137602210019089737573188631590030723686685904699460975347608286403753336074552311044339548783472618768409551552676363317172086218173284994296186353275111891257106313677427466146190667113111493710120732984889455429428975301031640217876193947154184335401349763271050386610781428405486180602250651153886202481950304323100548422845727303157585418294505300262423115518330098003334121146204857260602949137572096707500254906492269847302124100442076115381937930755215025195353280379849700191484184420587311148005438174470436852325693310065921969300739275902173878216276017665251468878260700669106549322384289456772455163809671523378906515984706482284443011279271000585659409989211624737732209751639077246373540525789858508797784616955029937677650194413468087980652095672976230737842249830893728196579333956458948587071982796068578593867297572766213558768262015027683099579433045306954923905917137687342358736914261460430697139761473381095593675787829514168404990262500258776738559571198775506047543901073739848668348800514629933924646734661942616546303932727913498443130865290894208838415979602991044560461458821202176079820488164772917300975792468875351388375143409342369773592787068193741435095418316696359217886659696879984612067597843888095194891007388454880391028601454459057196368484734664955270426160652150021985746009722608299008861414726188266801375628004163873820178226178884001775060653457102564300073905800017338683365962010797508215601174903282493855013990594520260462610294553567694635018736300507838122354415493269982109766978843573414260910895337722210674601295401416933934268770949534396411504628587370984133623720290401445947949715381295314921635038146480049189994538559626049005257348012193955194937225934916223680497474627716084709539877454164630361213504787619717613321173129473608780792291925030555850467548515320362521964139076100199469016816607902777789716226450154842037571867594106259447441593405988333379564268076971367158225279877630964427254049945500960719713386855668814893551203374750120057630596372224893127259598643852341018833312451519209909371109851546173288978900566313452606716437965656931722424070823387000754938689353143741428844117458553367818095720268842902682121101533814282588376355316177954141104565776704136198945829585680529315241071161593361492462946639571938462145509070767530165418783632421237242907140090139333667881718055311753748415855985183308743437795177546607285167582287839153697558550094615882503158132941891457751434285608223655932250132705729903423453369041846198635322433200455002752881642484578876859127306131475059246230180943091414894778198553957451300513965765066682286961986881234455079716873055666099157835743341889575576308446740733300611930605419615342757016435783931460842985387473761466994231520996953646188608696253486410679201889124532321059724574530819845221479034813737994623697465849482236368202365780653180681640548254895624461368440417316613762193386565774353744330771301851891935709442174785980009673033360379832865679712438141542600165458688932356174333751528751735291629476089534811799445398727915713663163798772116541220013397798570551168953472190854664512405339029513984935348375310962056268534225715515567724035964856292606420424776180219996567825105907871949587735484140761515509206257827751783263669420941965220541696945970880095103754532071862650787722005769907983495365042122524731498301564911417237015246292124263419945130840107857784000446622768176184484441769103732254338966703624673277035968155720378672950613625638619267643655717019343526494430562831310632756920153600104479649126565666329081355708807509358395863270458930601486443540231080707691100098297166037224829158891508604661933584825067933344920490774077838119499281956688164159631784235926868763868381011143228599671691162317827165913867017796006577263485766795642462088980245455194385609002014144151917000098561162252263624614628298871248572220428953925963747241104205125861116613326092888652279660679702328368099785334818429767650955527892785209301973312970558409550953240608927799474941313657192748615913712318701320299339585761278018611820565047046088006078233158711609051645228704865389515827675644127977127391277373510335260364625696654794603662554230917281333403922654563723051944547955950687563375865153154165458718100833976404701184159745683787233185288238202500233998327974530366177481281250609712028810132466663511325719965242371894390559502388218258544563406665930831994745374098656101416203482115929275372819230348807053520902317722161289209853490329825850837557411057420307565726594796388276534686368934512646570100411202392747918926753090528117211608414585714867970383080943246128773838500774811227970969155262718279359613734168937920360434098673442461489854518528635130622707575004041235498942305428294703749411660893989342798529203393294045450568485808053056814678730020566357564345514453678485224337678654888899939733315610938712351877682888638234229249785443532611762184370775392125745751998974882816348404312780990180606530755450230646040573254053637759530823299034413325257774037656406958215153825645408104116150102333112273532668485732667063335294234378460021128774757071296853936385404772726369550353713943128857591531634220941544077462789975351231776389308974854895360588721603429600916830887942998424929334141816289256945105004184396854738871173441926916498144804055909208258964906764534298567751996395463533419045489430966375181849233420016489103251117664682423601243057527639761811884149973377502983133975092705254811006843435667449298232842591945405934115091544937556205822174422645864219669700681999980360047999360605862590568343391860908290882716229757605214006481020315343117399606214160172214330957676135357628145373256342132134874079870764618890739170691023701432503106820419444423941211065035913101636315528708624783804425060742242535271035846308483771745562869756210969879958791009573539102849850669133700535856128472373313321642909356741949036005345321645616042405018935887295070984586807453807932789115233010060197188680657980728655431533590014733785087363645520523805015639243979419039385311773812514693884803555076538904368683482855322578274293859318035133692541013985809978887129883615709450064362367143221606303452586343697390506446000765304906095114046495822242229179293936959273989342225034288059607865526224701611871872756469682405719779916848396865741842725748858382071132353166327588715751245465475047700252247862492668512830596562853481759930158421838953742461762214368211711598087326341295433519301745658583440117520168334936381293881188441633614450589457140559218441920343467068358419757716042251027591631506488605008200578604253848658220854930162419191159499325418775646873263030246824320648432894720972318527257916105383755984395853819234997680815985559460842748873477915839519471090536910995172376991140042828697562077762915390362177185914783623321601960259282717038270034797611261078759463062183127571524488253704058783248319738022250452639991921662588114006084942369582158552829269048304989311174315798094713471583920472858928451653124675714106359055609508594072891884156889771754401142843691331340166159016445505423115760962810589412361548931550336711528233509782343397760106593475883174850170729844378735038162776492309537398181151890898485409987630451639345798567076855662115146665436237664065958864514060487398922446920091209267302359044009645568062850195253178422789098376326821706089057487688843770297097559504780872536232670230578253720474816663458395562775143552431536463198742724144242029863347740310636198549141753088501104434151853592631661593869482495285030691241342230518442831730360859415965795950574808535240598217878431852397789168629402629840017294842092499959547487894305756982499514183334350579655674830043025818893558008045814470628013796298391213054891835600399820922502225792861127655914312717357153378195531231335948439684971205229414871134749940031431872545572936040337747090406096349371415503014701535094821624762424961296679922925302146198989135135945356432302400048847294682233929015038370965497864582878015135389099165216612018838905870249527256993414132095760696469974479442172807548800007475720261106825070172136801588284521211851826203119371280591049355204490128789343516991740362408483765196974282902918408326212385484096191390271587543000956752104816938553400236421172134007368270469432345464327121682614113698124464415145298252304803406671202652254696187940928531642115163261120159559316310207450165770109079874924403746016224106814091764642418513540951815888830761579377806038857010966356702483873489958998663933259467238036875433473275120911404920034523820294638053004197567681497287270498529262026140198931276157466300096067971054466584619311035279964792125953799818524936658256507729169457662202054539040612085278151589417417810346456276652386501997939719500625344463546311924099538370926869632086834440507065487430559176856637386425001061039692327154430286661369435011861590912459979137769539127175257948468158043703200963606532865853800922878212823096268730405867712431226688430294892336399526784295251369381724043826834608096883005406997685923975373756463307408959775621886453415982161230976575917726370995160177634811591751042844643578443556045186072078453552491301431023258281216409249192489454494635362146870486689270930764182886264353429266396381416970144208783405723966875108000671424875911744156282264907599445738170347718843725123001667493915570419369054171439019521689471054096570243117028640034431824926376949325129820666660158055971876072060098051694218337419933560582568678556348165581025236879524257898075616584831391528950337915695768612509398081453259339089544259450953838055065360307353440114845751113135747923090626999058672228390820909334146204039405081470946296936801935533359811193879703352539290109290642271029229849388640967548386641404866763317965526898829601510578104065824389780966377256463235841847707556511696897865836052665416252939055902165480288977938988767698394070874426727580972938419534735831563850866927824745731119650313565902945631476047749192657297962657010406900916634173679925310902508491331251869352989669846781330297276544139472134910763829922475269334387219613064344470090567787828186670241133372375646944251594008285488822835901033842908358306053215114474560602941880841435390283635536548785425453429145797894856761440031821577011805289428729358800927331843586847974959087929601451102980234722529656553088435063705740892620755480165794215106700542303024465381097226046482368617063250809866277779815883898000613064693301532218128452214831931945256998103335197428884044489615140252356912719006675593853683569118052932666633527262798606201090071985443990627515694819724980103396337676033308433399738484309413256129326529057590770630621251349913537103658632650540586927612082917718063622359772757753870296998984584671393584001431364291399968910410022156985858405842133542756042795643648034710233903790642923291669793815040303633598712026986057664228444193521007143889878034142240061162415210465970306143422035971434541028669332031892502856286592369017794745595061671939446870624000325610793166388322340884307032865689692268755990891866611480227283343858079007835333468926663398435981660524344979950338084299886852933025038384956238613761520694209340119945972313657480439339568533166072449348553463986558662470375755328798120755205173797273748459693579601589547016911828313892216856499376529201088403856470402538885178642916542560987806861638763367302308099591843999822945200097624154138339662386397687470115055533258195189953088003437309514016126078577913393839275707650850316512144410757847817360640996506605614072285288599814240116285439628175928456559052482775060294975878058585437706491425526820967447264435000848404151482643061903600735707824444752666994338012276191648119534149545892750651243738648872672886519762697334134018143153828384428053429039478463509549327216241524940738819171521521759680483001818088540031704071750362278506794384774491119243972069642806269454854495840362191224992471440350176598167338192303635433038468517798726776823367074210860030419468259420274954144143136035471751262258188983312936380520424991552438423084007016568511182951540980180809376830116016414674817217595867052670375324438964117901649621147506674073388777613484416397157142947212575817977230625056246171391533206639495240448269841024698375163211284571116914521930773983502688021769842533608271567454665951988299926800400813867473836914857639201899186238061524215088857478437117797481364913551720262324242220313709844740914074259108522386469831689952819383253709451488851698673112747788225066528462978171573021851057912700803928689402409073419305294371931650997000882989037572971584017675488281654841122103590972932219076474500843331956267970642183170845732835115399996894060591661102023651706494481731243737374701499568122252712541951110022707025988665289743977989848523166542450868304331300649528175648040603062059730806073099364470709219473528146588583156143506286923953775545793421560613578286834947191719023620559559670682480584678124847309111516735009395006818640540448484843872601192911997092327555011677809720469517024405710795035264858692469519736547389982356213414198451799424615251683098206895794133548781638717913209599631522166883947378479621477620396041247004088371458194019680137885802094318651022357171356816061948251777750737105217794258749586826100822026446950091131785358535342304954641803245698600584710728788970967778097513359928430353288374231222055642401503590748098537954702408082216245328274218959912292788281662439786126014025870623689174647110122229739515736901120838006177866365524736089892884947991244927516278128414692839545179834140302857924199196384123251572885421265562028862186847157299870627888104405674341232712337515036635028770066991044419452470254068924525667305081308073723107241271827702005305111728598890042650583547039339565265363520104325622105862873777489767159800229540700016134877387403495079158848769848875753715070023216994053830482911886060577384272155483422750717568054586914050307796339052148154839333521110902609600611592037396083443986875080031206835356402944032045862336819156878466638339091511728666979117957362002973718801208403102942104931252145134789546478042460867986406877043942857516987785778237333493265890750715666870504008218021594611591670545712628693614383525259579489294534671722299072191727661385214361189799162860331584818563683640340481290670885610198239100362192130818171508530024253486908149374697228287975785526938175172762929765474258831313136824264196830967836546616350040825235161728810459900741644184886383451296143599095763734108125754905648548160209490938296542571897955493558389269570925037823155831238376196909105163483798904824732642415091649415401701318178533024114181092522199297547285044326022947527721341054405025172151898536666668273978645084349167476196090956105939326839622197265081561649019771510706167893239788021564776021759465411607175028639993102882305771924601783092275302361052558712889689638913098064504829712981116371726153606201463130894046976340340513293899292400948259661033442000676408333798015526029681263922628189576133561675053495620725726728340960209106743429965134504321898876817687471261025512847607812320072258926163962845616881203924939473459796108928040485267347989212021616068193505602824995574477475248428770677458746202232241618483283418918756683134440963573362701288408624375172401532010652931865222035927412181316169268598728815308873232334886512727692580371609749979080882142845699054430978080607197743289760644426756073086221342339587610608752925780814888194133702934766301351812192944875469433247755292624568433057318555198578622242884534975709098868479405806586332933878019528242686777151330442067106449925175713824424501234632698366204652194795860500546742253116121369303533858181921359697072751007127319962434800033412243781416255181219842492295714850024567258841602520917954872808410348991886288215566508797177713914680417274543717905624962196190795011819642266561920710985906756741172033329726338546174951935629462265263964911669362046680843085612000607310584706168818566623927033186610887237178895630233933622177206741594603263064168875878223331436792371023225523097365258617784606424413189126055972744667491687722532240997472897300910073825068353181771070451794634795869523517388496139108840147361122802994125417440726946264139662456506809001663237083600576887635836137969411389678664083754285777727923718297432424236484039449845231891980678852129309728228447495478190849755336959454418678150319819704545834186005198742985872976967993112234229610245283953530958974633071748053536456900178210398930840597474035238887711976902791883938289204139120774366041925050327153957835731714178653456940535614934643205386112412387348514345710093123395026251473802330637307100294955895122686419103375410422027881386502713989994963749280288322647270506722810216695389148600987928388019345593006560675248152725021879805142252679451934522987271153470220323482221959514467915974080788407829474943651993055507827699995914211152505358882751723979454138581139630105713214577535703974708234862072015656287301877929656525214950468305496994369930229010893690005329994890786877665415455439981053198048273008519185524118231556151731176802945892601100595644744683003133185736234515863419887284773533073292722156825837335211074374887728235610596863225846891472732583962297764670448950417684319635548605604410176790019888140646061356744220328088475250808065104318789761993380425381892876135512600337435704526442287924440727645408837349312428579449236957979058976904266205669833671772424359205156742535352860159702025614148721090757188650424800183000583627332667442711993926860649197169187482787365671182924092176779351120195888310060293736235359359630506088597892709357136413937000157588934882107529058200662688154429577684077834050607335550144158002051628132744567996450500891649410488482571678305093507013277720998016788459153701842372601351217842035363752810391236194803200169748990119860551273539394259887946589776920528574236505618067704686162954606786635686840850484080662093087448908703890460686615477352707514204982926988218887575198015512998198589952454248574281239172464588009982888933068551983541381068620546874523895820863433132533652534012143685774541566094273699080169911791333269413242916620107543384061410442165677572305730004635318498313361703617478038196547864884718086130451016741247767492239002463392289091630862326212249255889938413063907317056893560325307804387688788051965872956951084735778173982063791778497729293934271650430427303546003553845213416759808062904557687269440242801219878017422115868855490409404307167997699758864134600599251715054255513959286438149731858805600161978926563525434929333555883458056620096476972576850197341940087935964538435917859148196737702014685646624482116467454259757571789564894385423255231633315839075032238806314478027993743109901927633070355707771998502180247403627772771009580514697942142065312902303802543453071896634853746700303072938665749408601025026678383706266932728646593548403386449026900547243712860293474156086446527649876292935359940438645856019443355961589202852368664876133191603985166223440852505453526329268139525588887212739305948059286794614848324125901649444340662785246392078545139874950803399384144488480242180156573109893386180101335646419049185976110285977153930807661726187016025514327014576016963423522646024254044415884784964998604332964863221144067117740055980654418307268804559675456133061249979502202749693480944158596854948778727801043540498475597094467242922256943456849582277450682136938128201236365242236589247746869033411804025223859922927106599536895393626245960248885097961079611088163402335225242567638262249470472035074036156310162739364044344461462417169659012481329166720414477769233728664756034370989662668226597075798210497724514469554438456636064212913513340818464621150939667029624712486736419588160591298024379567368928406267947564415003582717299642944471492936963688415342898948608056823370474046402141594848191021405805806540325028112148644000423630323978264274229736061657147719725920767536528963100076014580229669173475750990205840356828549600516748409483433220829959141056328391988205074615989501861543776081292680590267825818329601983231574700105054125272877561188151488921233666252349103437911977906679089815515700006592211352201192197316288122509567308183142635054691760026309043743851557660313671868116525602425410391027530226480790293297893593537007529472228245128939080388275750513017433841261692830392177104936958741735996172101480383938369872250301730050983699287722895652351132104764216545123378993753130130494513116694893472813611599700220558786633013073748917767785152257639906105755108332138707076244254451284000551570853975791811386618724122632677290441249229506380616798734230315178637187373707806450842344669558564456508820934630829353025001616197183681470136844707597290047848803988776899346291572414803012048560967040981002529776367354206756511172128681470594662021507905570000396276481555502817312871245801765143207554712664749370845809326733242792372079026509809360185672568035077318371789848649966489244355963456402278567702505416404317785424925765030853348826497691350807022138300924408829158930903477580167746592632359998810270815564139930476515457811309971852436940578387515432894799521441585590854319337579962241061544691389442866452318215598926226684036854671350019639686611697416954529307153206518004205938548774033646080290874234073327539286204701589818261493393348637284345126775920184106381353407389672626231393217722099202170145347303169073353640445946540252182876314070158685731827458566362660764841016352982669980662882760127853300122953797441202940341882241961689489954018493054593916677228278094798549591691437258851316493746821123972898958015914808272638017410181284384476555603599676037440852763024568357405844212952431763345051302988302883752003886189216443803009579174667650750160751319810383702275378852228283282131582840008941339997981575546196967232451616106181566277291888272350559805217356869041180229726507428019342289348633849439533515398526433554462759881955019697440950176089536603112864979002279258263443309241124488991606294677759399578116150174071633664685024375035306212333822255436868670360860418350751132144666335742415050019570354782016940428802853723292715868103661794126439370196802539242801201868187959380738180112721922020967451130434961729418163067132260152257766247184918706318428548227135870399372947970995652366960807961484211215948946074485660516066964359924402644803069866842366926032716252205411275241899838921933141952557863697968194172843095792744905929066409912157215898522434121407054642643795970766976007068542174940320036507711457682713358077527211039338984892223378157375784706422739940419744749717365309530630855504360180173605263369458770505976528940383243982447070466848506247393824454079960321871406872388660968986237543289021187052576413283927753382114807242687536239138031601407964931303377064175409766542084178854784485344265968653998626739496460475375306434727350227480480425390613276820924378924573966257150633264517055732457819130535444629183442776076451208624925407195708800867876788067519278240112385766864132520412401160107360736026902961093276571889840952718017486596453120450236037728261769140049190228143816299560664689678344459371832064398600941691003242213475059457269498240407966254334944423835975747221142721737215968648491864829756325847914237903246312137889419272342557201210844257507462907045360810267207869668203332214609245055514745573887137666459664293945615759792613267898981242396250263972933635567700568692925541481455069576798783065511654799267662379927028772435241396742028013344224080737000025869309929035049899551018076757840849782934272783116277828597323356346644720777458572905377252827971364507607805063365193322586662323103905691354053066300095058052858763805322077854280869062249770274136384787601925392644117830398960412557877434843696714009915128772386687595365680272143834835926475393567374173550256832773533390943486110667337679636736256591657532376484616116551288287659677033648986213783310377337170373337786960633837150791471142001277212683570244588807418642705242822871404618541943791772609751972242926557312659148671634345164073095052981274074196337233853380962932510093250610413300637038747675013909627031327477011041025989093337387309624224756902182737223498449928149106132361639486721487647671063593029231070002694145192282125937945930528104215739744913385295269946346824965523852107437825670966231822576275906590398633690902471181839372377240593544914373482194536714338796604863949148159224195257816852212352164783279865252240413607044521213773182643534171364004557967939269334732407976427772054253325308322508268530764704505858342380734000764929608535977118598698595682516635928958428273846414798584404240459104566462701180753640524173690571229095913537322723813538714955175591082150767225725406434264566644904357584838179904006346760902120981422667780232754530004708717307879364349206591911868634275719010713900002231615372927738615238397192235301002563690075347361838825416152322368496711126840083437444847577608232535054930846221082925815350921292812618771195001824129815790396115602763083480544728664818933075354153098176196881033742032331836892231043044489179276109553437236767926693264204268608221919723187724015595273123524131699126727985170215290036199747634793998958145663018998452792792216319949509752165032901163730920158472111647430049630249358265664556088387456516993656686093383660799538679597638885910707195779610314917067462764076898987656897699666733246993638530451133919306936416375884956635750464278299018563989557462089530367766711391775723592535358572626183980628032115472271150887213950134567657815978551890576201093602832706923320473750317459668565394189296177179330577892276309691206459108133154477705618383539743324500829405100172335228893696791265968693250911003487283515593054331572422854962856611817784179960250537361169375578854295865127511569645939039479937921891922369172056227343168399472107495051362331488556222952770917614146665604686300562092834291061814676908573256613482337964611495081124179874034376836327438055549953834565852056657805212171000278417990811038314972247171676102165609214125687036001654468247286710915044727596875363080519973075394313835282911511376687885912836924732038884352626882259082397420993364088296284340527304699289170784621563320572558407493626733699577473868996584385744895353401726911718079487948761165885670598971846144035985843498306582158759837091841238939594006273532344871181274963909847155178679115834877883976788899872403316075419650391314859297442945201893635116647382356483680389935266029702640766649575207759548988829636079630903947378098208298526521786835534798885987777711015572180694567469806882570193968522617105382897871569461757187618361356670400274794622959128971497566202748391171867323826671318193781593642335043464950972066495477027497744827925743265820261714647810785920876005807621817153629793034225037334949105188739637654853880920217479407457532686693540833680091395028728959754344132468605028616702702861624345001528872378182872661214565490119788629752792501682391523904172636781467444554963334373179544797222254314592617625888005247184643889014449210349164958634623351677297365087426450944013284044948381141547097322613893929181254688038485180982098123617642834397231349800299482689722757161134621051959510387438762926821341739342883411234580625475777802823601372885727746133121644773297417454535403356001697212872912391367199746011591404895560233623820780235380418600826338036334429787624211819699549722122996526685088286602118441261646106507194083804965319457731300762404385296044298724503950985331227695148995220242651606261691319572142312150083249621863456510996617587855441263004734251980875373745001231710329597817196368197589836169078905370096589335181081546440321433026632318988770785393365407486921794176113647844715852405504135930456578390530951388154987492555499580165522661225709394822577307135068563430518685651884949225064210104003982032677976443871008882070636864374025855429882910138467764234928017545437874609770160807013253908441072450956206933459363186174433011905215083864457916675882476341579396287836231231213908691045117186894027182120910103799522324298212541610701506838970948501351583487160481281905600838823616520114469027567021765054137541665617030968084316421576436941000369073570799889087190959473541468200389210596690499605275853650070613948181027253065650114880102030723533892790246555020108297447054663963268464668315207605811729692770480006320822212189147168602340440373624215577843587818120665669676191945419796305503351145319029383223532164173012005540260550548314040089279388533889543793371106099695168691199247679351384016604021092472734289634569793005827283786306244827745820529851230027215028080290363356155142154500072747150065787356492032181975190552195765187435827213471200150247521454384652796655418942338409621487435545768132339911593790625004888373108564411675114398795027436131408303261981359240985793162613844623586296488365170481924279107771343821455825213378960867055949393528078898801817386924423088319703155920556525774728812667754174511036604451710986225909894927081365148506763160715450838463476761891783107547488048184180837399853607048393802518001736944298861126550051636399793110442469397170080243601190447537702138071890720346064011537332253620993320638012553447222709407795340788867413146321281317069655935003695651856993799390612617682468649061428957103089607707250623231455770909978493805097731283573157402654194795204700465491212215367811604190472837638374826950089997186504579267020606587945991568965784679383874288166610405419942837492555101992141372515265839262731948912592444198393835766261021728104904403031364886613235801060694910908997679309790532101490378226317742603381481694072462442991778827984665243259003579449583496409515539876099379867607746845001225971223890319822004103783024516923870836371561636548884711699051114507595547280440087545596395409114929172915369535574668579399313734396071440890200635392189115147509426021863809296399863310713172890902551607138211618860331217231798600788466607278308868533574407389516018217917852575830507695555866839687612065524182775463611167582079992361300587922250778703466606489033673554566264104671541458816809162118743372319491120462173135285434848282811573295461116335463214276369071582206785015996336025104758286111090684919077375239276463277683624878977343820591423631010581099218750712880536283415238488932039665884625729314159763881050162942771148492865285583251551112437140592923520271619817553357760152518557756048636180213725262376881541062619577815176915617720201912756612745928772244987566965657817961410683866906776014768045777909083918783458047646419298144128044443372846151795607489517604085552151780962842962551821553153290343838389019556589131543091190689487747076580262066640854709807346698729491891959374698455114708552977697164874380715965722063020529000022377574504673231012427062849687573869210409085757270213099187992760204862533861508590618217565652156495522370647976535565702467967406206997825926577898619614834945284504244281874187489667985022436980299579382468578017962903221161576775689863727923121008365472332613890417666144052721080565309970604380672247305462912501756093592595045211570227012814197495617118032439264410291000558491222931912025009328736636532489452137556425516336524414582534899885720290382486513817132529698079335235681067354132008507193980097179023383826496531277544871202577138082376967050194696442345323508123034774863121797196037564321894771562477461348321786950829334781318199585277591390257947580337551496364477495472380869473245563349346421617050236612325684423443062881238486883064064211852393061465509508083405939699390114229791717063419364589970882045286349918867294969216573083913338170690884685103240937467769404128582147927569015608292054178040968857631103554021896915188388127566799035145741475921372794483620462379911852986762403926160247942288111371077839857918011132363452379750252850988396895201536737839692522972059873304546609786903365473665785848005250319015575813574926310243658010001958875391845880189255248292018172438603828605126179506106492281996307999483148242490895402608849925126071833123870389179754939828615551756748576372986587902770860430215654000885778257412132126045879929018653417489384161452621611656726496696222343390279584393228951966343562611366877052838151243429419511960248854139351073014991567124977043567517221740734546774534647989716976892953840591507729935566358714171533107474974250758974194231272819093795654429004039864970089768836779317920230145742221952083294911421466958960156011321747593848299589439098276569222928561068365862675940499207237789897569130469158343587028238051892720557156819040244620878166978411601949404609730388928744456871249028752305233491982727773990313083089733045804673404230361759469268582600165893831641403696163649077386967926369058107990611854482957615788407440298595326025188178427568443767703508246019334744587815694379948764024197823669577739412452069432790163631104058359199280235855627901510233680930386987636342820877978801523617796622909930764617747807857287329885969385322036558678030587398872059186923032996085618714040859650366509491210889245427115587874628250466602674870079652119524108477169094251574829804352920628184614198986457441665046255015845952839005626000018778951935021951021093302025154773764062932248623250701311744373694725476086067288405806358268556628618149532210027823752565599873534979802434812644647549748469930876294332964410382549528654947522848420413887461544668120700291315353070365171267886086419178678475633329412352253229324018554974075226679067266221154534497911786433783376681337066419147795654902622221088990685976341969578319495498623532821699643300304855859998231993109023242631921498142379064928312177938523308104112132473783194334953220815310041297574439730247207050410970861073270857461950913541413227948534160060131895111960075798858357953111775957567718568615197472984151823756236502802793296921651999535835600633458752199351129856358717810624066687188763526883912341607881551485859100447896572748012902089393639182729663131647362988090776735330989286931206126919799525881975419122183770281307030406782700449496711619779892038284366647410933299260672676401782112780777105469405466412796261687967231413640597919390863811635491043304047026044444117487889879249571810974929121379025204860338325660179186528365540990237703981952951257627755970894178829451228569136300850907981977080067099843056216899657706187989409160024097885811701730614796648584795184449007296085666485107790992706622230581056685418745175538215717041913056020622029115186722239528872019923007237759428011948648752076488643036450393480479856236468772912494845802920173150954213309153904905477160664532424097171208429889370325290823577103037675365857666384413775252372969660878240586408205202097967126191518529617075407926008582456723088722496074899293332982267905116421055428508529767498272707781548277272639800906361765232562920114589469324809259355215329785453441300262791447410104019591178353297428185969320021622005579844725634676882322788998667040420371040661309529810698920119704756438006035779647558577218090314623162300243714563151847078429128671034842730253201548736985206952060937555289332391108620572889200111367418526521694147763918465982683469500152317966415519797899420240659419949371216588421705385033293070573330723984435849154808307956504219566720441427433545281069720099552934499418904702770072589544374605952938640481129240741011993287253888277139940754575669911596905322035763440191658159401612524645091865201660277916062144170982391470600140372760786217925392654506618303916652024513084621011497969576909341073965505539814891313542339022063824550575086434922130004310267216000533570342529095846833799675361183442180293925421687222449678553715474032991986941851061760850413331580585140678693011635682491901481024040068598192381946529991125434240240627606162139101194068280120748511560807374775302442653201665737076745664690579424306129004587437008264276756951901260086932092659600224585818255738473386976754384691628686536032379828163662056109559474038004691733760875563903577791424300494713330157902032481642104089522231455742928710806769699238999056009726333777780498152460990389250266966258922463946682208930428187960885310585260591305104606207960931203445775263013906964042273606408651789880172955354539080142316367489236210595881148938166160049130767570649967489803756567425816985142859161624789694767490110391068319693646517999489265165687462573039400217803504875822193405527481501909033659313870606064043142719126882475615406535565604218165316349416240210392296261510176359444868110926874212413086535071891848932131541052465844790512686500118796953743811781396160532674376429415836643392661211619741428169397020992093864791374956767434425237510322384445556454180742488261088879549987919463500451645591829547101041796068490406023060368539844731832696412928600782131258413120419679472148194757084019656103650447783697668410959982065723771332910349946695091414528505794525164633161742346826756855697133210026771154105955277097769959609018226508668356428460492954398724185570371556961831299672058366480004065239041724843119806127641740459511190272092385168702399194412479218734157441950702090066965267433119046216945355920153447413897669076907753976546130717982330139760904533586454552563099351206981202382057700582903954876645638491364788223606804997944822322631283837797682724588372480885475042801584323112236895000465090145112521315245013001429247019359103896610043777145543425128459660612360488730605250539485394939341984674858518716989382011357006946299502685283621220536730447121707772941892091694151873497623048990058786094719797195682559485286761042771075137884910345684391778439446256774385454497883796293619771815673475991588936364877302314311720083937428305748998099432723029028515078252892223172232889925085250173475081768459639338484291961323787923550787329677498748002008277654139796854786580400053020953875691555279396556720645341227408189434815613101661121915983992196301770662500323408450182210716599997389493572155723209463209062013859529578863436567089477804036307162993368288109859730406458201843338919945359828371700142952811588562081480044931401936989211806101952258637865061718991449851277475029732427246832911542757181780755537493453761282006397709002284936558610759585150018002432566192240201861248537739213974506483326530227267466519446571682041990855589406578828679798189336628160746843477309336771952394178990409690169937095482651038067016951809511363913918067407566292291973307773046192829591852692146439625646594053098479496559540535662505684666305614174234439449883345604412501695182665653362967003569585137877181852108786217343699728490031239328913938372850850307412132676495248565826615589047923002152298791249940001114798112720080069753696336959737188017200921632304684736777069324613466320325763410874182149440502240040508711154521077860426883680121740437212410456667324435085085565975681715248979066297645960103398699800418552722604790790758512153624593052184568104494126338262496725911850310674068207870251951404865888299295684411879457095457796815025667585422275793156026120882914105169043621884681192878803510107704403857721733159054929574541880018840844543044187077310044739695752008618992828261636173875749358788533917750047149307219280730000723485542249504227915355906942473458854210946360803531960857193429044447018918900576345543499573282003425171131666945140607479408889446882715243577985516494485910687887416437525568365549762044024313133281512760207599615236100182048391572979636008709079628730573623489317489761607627720684384180397148489145012520215761191537711050869513459207878497374124213872406162133787457482399239036496904027829830001499202378834941832989323083224995554288925757306574927059581534175409722824267104460738912969522148607032084383867733414696696307448171177728871455128258329419745575881889096825591144673103856069321208678025589696449968786935961529986438613447192229048828852075892055664045697558972085162264609324318252719505552881470387634674658851404787755589639244521959209912526788991257356178531489056813881246589651103713904313267671006518152379394651520986184307360882623312613786903969183909770327334231770601160005253585528827426666553380530709070691776921328158788429756777810716988465953051147654456058061097707624536722881696694291030647833526396780000370231834564886590793557626800259299096763988014630905411539735397375032425882470675999320367624710231937795122229873213296779944907250095039570682901841345026474580976518974521620006318524338874522871710918522927708129916563805926815121091558963341367930264999370540851340755229928771563649522597177154164881207988497334079010962851403026730527436201891098661561382258206216912755280650240243020493124238313368719266005920225296010512705795451801597868308500373007778660474926388199019767259553206506428403571634072414787442240143363545395717892888655077070979587709832770250006110483551942487696909539531740177092814709487646554708028384953049880582023945245396528674267283581821045292155422697315238071873779776194558359784263010070258696390241186510516386847315287563869066996409574025938567396829445495858152616236521923624101148491239494674752440721139839737515928206414619385207219563922638119520143385370914975584079587319278804102470412201467531531521709172370370228165541989309009439848005582638794519301670246647845711987356409430360266981187256967459117197901803061297314453529622877017519869391931582627079337265198146283634090329869387532206850974941436075277758299739544054539040889902682077010709054874659452420814124911609911952165846501284432137001123437671971479773470422357516483376694935794948793733730166287270370111752844153553136045070954251321839494964850673504247586681495115466343726999151351616947926263323854395370472363879502397743204270727713403779343529469471400670773448433327809156355341960122900983042420599380531239795371640465973218877764210435030541920049314555258798006929858741759830148073640178755958803095046498455186598818405146089890957330369923909341449399717250008326094535319037891280708079785899360156799576434003414848788161249232798749583998423008650569169243398247818674174501118002949265616028094590786049549392416673475265334148503777765428165705149184114657190252998350391837124942635269498946131225939385264389743406409668190725562674270516420462756529732980732322496090644135982167033393849101112564001909660516252082778471014201646225210454072953949407048401875808599868586011649216318597453956919251813132298926472237156236386229677122351797797085390082583127804624389273046234067583464788291061317324069394346201811275355319661506000733010458388652794353946293232854476230099072106359562520443599872111690558843425498906905124016358072953587271029823664800510537498358960738190030013189590963687311004643786387442943715911303481478405606510157504763471918732106352952161574843381107314333256463805163722975866421642448497504661634204974606450588177414698772743739057912996102025461342727402103352140444789276736236389056198456787939502390521060080317755398704514808386616534242603844182535739694870811042933078822598972872848016159990663416954163379169010662291041235456644118208662096953561863293876357939436440625488189261305720758837220343409073743707461184733475032629162174929253206383670904117191301072709044570562819447293994218534399943213771054300662927865984631231510840396480229675538423740718360960427855841863861406239647263305683158962467074777164234947762545374764494444490759132905185718548320317254644754017737519690286176211682653485977283598456899480357095665855071242150692360968728485805819817015250650534195057869397388859861071683563796044498762231527625060246403280196207049536716532067965373883321268811004407016907797687138163021178698641097557959176180130499986548926580957152073914875759362170257316243171164838803195533850016780719582813086832132136402113684235567552667325688558926258904315770115538212893467720080768081296598004439866537231885960703407985915313341529369491890851145037450280995770582786367431654019790131294768592375788176155886517799941410695583824390853630814374157257369277518461489130475255019740503609963656127556024788999658656696575300454853402851191330875842499338573869191884306493138225154685060162885193061369174093840489956320890254754992230883914849559381202177088960593487534010209385773411497072821913386341902783436767579632300525299314355817173412738613671558857788427477696155878772553641302750547648386056034206528561199614850265520415356848130940740412964988851649333776330881907806733941278923122816271025841435960410351387493728598613336174032894234749482695443180954604167323356364452421264023329731410885002563457871397686885317383506602934954699306480398069984964729445866364306954585321804461813356965716650349528229421347712155829972838783620145616608192627901195484708568037689571159403630333210158501654203236245422945796620317999307483325047103387305998691583707258321108158784617244437931768161220611326657026454697940816419849867569107159193799829598617978504779435899623552128913273604479017009372536507977284258256127560727133272264637563958648472487104988602024479770329132526608594888832098965937712193667425683567233464176884600205429640580292168876021603756506940916887451896178115375794632177519036318446273116015386273589629897571411534891923244446236197621080803893137925340980576538944173439345804743185308142978333711106988618437913066774397838151785577829498080326445579763350307478618319675146917198960358509167319321974672429880524358809087724316971933492492569532648570299353246501772410120833373223620889137616464228738658176429553903657170759271396483500434882925623569306627923561949432935397694657550686435716520955893339955872001854087439384831431152560496888796476295425820686638009596572665573449325841680685597071837746965967185375525201226517720138066181452450846315008138374247164463705354393731629971894200929817489859329307956002395687814677733780668149058844628190470217561042732965279809122013207453826636466729258724769477440669156972717864797035835278180952184167118444464715953464519108964670110410783931404052090198085357867107225082647452674001175234438131641234269737884822698744793330693156974165750559371562975095206674946255528811420985160286739025612539126964000413221609442396990148055128354191576784647608299173990994902577848959192124474978006866785888013616822539637315348369615897784915169987244247314016462616859436144573389641579827649889803422235952979927236297718295587714297698735432896020254520405676228893289084253424932094022688327178447734315549156182705243694502603393548311651363273674044961292610789386820584938117510556404528985529037752060534008034094922948153362559817145519944372200311361391569620503985740013971546877807071434839261779588769212559716979770736926668439285372612530196627271332542830885068024825171776355634185322866670278074466794589514599327928871541110600100695164321675346259302077007360676028589967872788852587686845374617877197406757643162144032432592830369413171677387097761150692069150424053227705437810687051979983333822756961545267143827727747684887775334151761806222836484374184288823767646749442308940146141621331537630903147066961108351066343926372470514494167645156388758803819149778538518777480140217666907163510910138141377478645135781325379299519062111916358223914184952978659388221351148397413840907935180739417837695171817391279853550015158067642852261800467514646988633550307909903898878119461232426615388617838574081743759772369383831952161957221145590711951366955088590332029974551845740868827477526503308514894146799440731886941512466929734479188958281849146114521303642030679667508648843938788058541859085504365856542470365039791450392545132764593342488211638184183162462237771500724092807092537261466880811559470628774649649919449521197496075120089638503016700885042435047729542299660798228777711650517601116529625739665629208406236195442988828996248376053437353746628631380622516443241985685960124978105756614437002720730952993201706643305126213270911005365819861290176517027406813718992165807321660521403751150592403188792998626674417350769365383364217675138761165045891426820403002591875430992965382214194711343225530343525211348187614397491851426659201578031968765750692187335097359712660847565357186194381222534408220282585584140128328294709614241246153204369231414423900584158533046722271436008572593187590595847614632364765592439312658666436213943758003487043825761932094131836236141637219113676312322953510820243692609255896365012347424144263772695523220943772762515242001317313416767015666327841707744382822856271259236501359264905684634507074761770056607755884718815808509414047330087762825580966919356490320434165893931975706206174760374643239607626327917623003988299136411792864060788232575342204127855370236250502983484252103818288654471664973912538017362533225611920818326158825733112505703652564774487378475853646560670091527634585301875809519687458374154590114142915057464486717156875707853224460133319854661862252382398049036453274796469715961076687628217269779488829508885986022658754357207283796714049911678856548341866190104634025823476679343295917018208780085929689253620689322823526684761418179627006220844987765597864467312930586466398723615385233783725180885296418837839231305848438368875384278150720244769367778709850021312288240814269322991418574918239189161163055475701580496391404297801904784627119555235698943020530249913612889571702701254856993807482679713736150158194841438098300457244480680017525723487433959593194736382094505976557520831433821316157138795701038857575519114834995228542456735881302602071413856068650451320385704197031657403918198113049703555244946765208182141294875560174719178449887463634656963224400713595620172226127079790592483036044757891338044419923907775569011185313799000861319593968497932158762532775343693232947934523059942761889233043885148690504372172202817754766673297235285906095689802389125015450510980100799048911930606158755079257168240738051882795972351132806343111764427831274632920255968798703837955000644349833366013181967906850118001171940727572971640153190516403160052197614190673051548019290797680912925091196693722529108537437425023410570593116935543240422600958779661452534222099343943666180923541213479198664657326474129410046961547624741781972783178212311610851237202870949507904762867918254088336474967364448235785777752100184807830585857654163540293939596552295858025043442961502029057951017878459841840823779653027120721809199921586546368142219525632014611418015328437824674651244247155616189347273406160124365378714128986698619029468148491333723267442123344896810605487861488841207281367423655405293112414233559583455585533570991356126142691386791875126265687531758720582321147775674010302761398693498829873134110895893962007549975005402788129829756813758522455306802864097921197706708549472419840129597457359557687872954643401527824648649704701462241038436627198152416778395809753671153025008053571526075444094545645636389527845515200764645903134765294559145299724816578636850015078847151299492450501343358781786133344522233386887881870596143012556582682971373123436399361100134018269923793027008904388103834542979424481545316820682001427256724841714857540727586631145860093499117863228894989181315699940815927993781287345549739836126077117698653744870025624313996728125913216085559546798581596181057076409012885529406223469438211477584905591705717411458227743688210629309622967225444402074234618231136025408211240334420772868452586106656112211457097704316329636456472121245494854237654079459488420455777642654148265503395862429870955577627410277145962090529823651712678391997349399169558460034730272946803544300165019399881956751830182477819841562099012947435857469420831661812038728792319817195925157213448509198626935190851002024964754129436476149349040847926578087658344648833060114154044735652321998463335175225613164596154887210414076968484658114496927962771401493635925122995636558400722067010449624848571597512851253063018808944224818441636442610961073972800319486626576150459742194900849079064456173337436401802788100289622894420005525179081549661718654379229830675829136711998997657968206934067541173757692178686166127539395008025841532143477658774097163562496941479886061852675587091945750469226598079823501578051016068158702546115950262219451740056005477641532483058453819016291787168971375771580853024035138848152519564739802453961226250596267838874372315717278441376764937829491245490224313622059398656088021994626113319050060799997248877932867390799761694793930227100706065152968814524223092668047670813819124042868746260336309635755441544456469418241046601169705159229134184722920406450434629790222741321807164956868210237931712821126903477454101749531991443817676768537754231104717535811785114125534199029205911847750593510758063842605872221629797194801017759421493635914429845373018915827957106808628025958479880547051208968316005866992082024621438869717697493419411152627969815932146393945879718707630397083907497770051246490076540415344661413931055051997184690812236822053028916990353048071559609470780042268597835570145814288796978297788649441611752626298463393713533106451983016479819697886774437697095919028394072314673322915682940944637784690120321273930319052293619424249123006119769851600037202153189419888635463954291617419268816217373721672733622348892532335318947871499398222806877233273067830805262147955305058329548975539142318064774016780513457454705119613071381519126983951508888502189527179600447271711184303111597797630180296850150190969379778812471317810915093244081936556421599794414968397885948145336839221570579898666253433945378802653996169644882748010918091169746809332056626278194147888562922076968159628623746643170920578295305286989959141553706668737714170101449768574385303004174256415897794842916633320004320868104421552063034345230167242716585121577392364944878506524078479941408250826563503388659746885557316375148285244850719805252611254945518546928969720736900293878556225374843937289648734489166441458240957022659542975002630821270883760293197633798852980373278579461523898291769982363509996295917173988916323929590855236344324591458341141999213378771011387939330032756711207189435609471212276118365174566742335736734513606101589510407571548917086317608473134598258672660241784451984391286823954670683068469381416203420512791536400376683230114720437483720246724355771757993989781955120496262550693235830656558903452439022565690125185819269421313822449229731188791562530269779815171396185474445933292161424911815541197669490947668310017329841966049998942999648652922354530938423312643384989496564086504734265433978013191716804794047403385836722950287421803758553287662272716548268238935011605806440144183118145622085429863171629739474845358682716170213922194916767280167377661200754138750125078878697688005043146341942915762398117391193774786664119181988666426881056325960363094285623472808574205067411650204570607445072632982735171360326133745879862721100174563490835211574196838283102919062530545144051025495037133425479339622065038094807979006638653954626746384741241270393566712383507629740277619289868480087139686324820929997745340334684900637225409747881872777891863592338701514604157427514740244386778968871877709423511703821471510700572181279588820689046071174702075496477371802413108422534752443731977396751124871702817872612923691627735478500258673008786600677732521016307946092784723832615923919979425223069065133742324452299142972579573675500346982156601961796852700862400417736223151696827542868808336964452418202293673434585950607420996690766400772650400476081186080669758395539697060303817586974957061755859641033255818710497440126912409111884799819841438854611154588745642035508848232214142269718209636473103966126492391410260515039755731795258849948375857770440578127049363455609688542682560263618158008929766429424163447865975453035325641952834414058993834441007735454143437202224864842045159647856796937455034842694404422664303398213701980487712876965534516208572404314479803464487147276913959113335488355545303463569206905340995448267069861478599998591458477460773550236495051364092147673872496649226776665691578725688702473555731637251931134426346933425875371492091578402423225893386097673786062597142958619495919363490581416789484771762169343615559640505069365196381832605503467978235492518283981535406585736172441129148244070430677439732851364935454704782379122254289490236635769845310404289150824636430781487620436162571517801233433670695398708277960334112724680986416109685366360977868929540677298184035069336536043227140366872712258016992657529637508780465208048436666412599878983312903292048324300490132634233882499261659549825947252214122170239240595669499314931474829145731503475166935774376936796825851650123697651724526636967363106409015901571181580700489809706723596136397648012771684683048247246789325037442919764941049730071470374419141263946234275539245528065079323152995788155548578023164388369695279949092141636999684304361432590653189569927303221112631155577141739678198908684065334603189107948024291537688391297960800774582263369076442701150513073162757487049705978049817854012073513085528185610267328723220105962853003420663084229114230881461264252104614633577918803305657017969086252878847924218963800457614591620795036189437949995831280136467472726495580309952730253020489587247518837292754329071630970561025531660369562396270877410701561795989030992108571739874297768842272300975242862074871862707582582052366244271979748713832994371383762627669150846938731662107180328428646537579002811734143037445911697570684260673197774031939951226870616514066943128212072409592506194586318991589183440130628126174986979201178908596787699533597635347866041664344230599059795737273968411364817863695682821138126899475371668603367126053178092687388442382354327225431758326168135820376291838430896903500583161501497406700934875862059079475224374173556307393764716724112879627528542816529731547238613856681958173220303906221720654683045633731868977052358073750133630864708400272907258934126255947855734202674015758603937238867264921300836451297764393552611504589839070342422555716329605662562429424112744263327473359055548263181010315452192477633911871387740386266401399644633061686799635848820361856542679512597821142383867161271965165286632370361245160767266269107091509496300278085694939524870387835462471137553522392879773773220831791614569953652302285015752626769483282373855876224596925347079927474672449858428090739155448740750002821345234967371090309779550679153546504326067863728952419334981526177884304133325348195812250022166391212675591633284728392595319068886724449449164254766857330729628388064780947609696923300247564404878009126645900351893892210659613092135031261980678678010750421434807602860925730759746996838732179531021329677111878711225206242522832719156295200345875214774089106452531289663540461016874662276583423495052751601684887058019216028414854895235131593935611313567125143078423523773282148483007705224120341415024014429196864869865143795902063652631540606201115142220333472883659777808281551197702517509416835709296294488435794877556138782502531960980371248122336505463035104899454134729065258661185682657798438391215447757229598191550998876867387509845686536591411373455719286120884987264186771099982708480476572471890963296578780074146017613583236526359080353772935783838914345748125379321485499955023358213732601823409800808595224541682146846901929358801186807514440975370524039289640172039564949306730809139562843100147408511515998622217677400855734261984558356808343943006927848336064583834178685892439927516171877298985212933395170512257131983646628974715413971919698097875092206149310536930624052669390628593089441182017239410288349740079562922007329466624162500135404536608950491056514605881323163637723214747428755516260477052454943771401522405023874594312322239997846698394459093464837777311845876845184863825178457552793525245169089462042337587246074547353611676917265667881768709294664411762688634844846297509906053114601848041807649229721288919439154192361267670748645554268201974316604889746771492814924466193785990888048381694541123862511938457136757262707684199223090650227420972516184657740253637522879035126966270431660279966806721899037667608936758269249468312946862805265161247301504488692244844420169832981333779115343702550302611371771589766683016625703051094623155127480987598056075602372136091311667025631322286453167347535940003724835181995780861667025922714520777140888737727492578862595965534451406710726240026856373872256780384791099133532685914746070000673150658354730688324167167714849627225657544088870314441814507384311008869665889601902199749729697498237311937548894327583261343825846307583731947141437818208727467279435198918522758458863614987470865558455825044023832980678322576309659321952138640930415573819410452427797411609392612445555539677353778582813172546761062468520797824995003765448518672456851379727732629057647244186675723265148734760558421097656090504096244302965067039744525853751776945581396930841860789437973596731472996493291207171658358309299558464555227065144030409511082761783839178897178668526233771808172244485472366274088963918883703504964296704255758100234630457581188104259848557451640681226957667678365152095720346834967254054216784659285443473796110560830569928596280381015000602482041771931043054943234139508260795777833534379950945152433635940706366907300188309751698850451865980177833093840673427384692308106161715818375758463583099995795540865320479076144567505096848498469892309733029413060026737676789445871422682828745573430663731973085607352722655010130177903978042730285960257838483595926932155553476217373101517096604805538899855102396460881533882591010928021011258910457326906888303343503782260254293733134903571078276036699270151997946869426976314684319991651189084720648545646537758771011082713860846098412175163304897541117988838515436162772830413001881630677128939708050408322688853165549015328607513956356825841590611527028972443152680910117251181703120383078116195707640464818460628165400838810997346554705464622497747657722447094033355741571241095752742716679019736027242418290774462374783823039562646702068819106904310246756953223930610835895876690860877658171691516923502353218780639160989391377125053604092073301824376127681729399685120099322633705784550361857730075526378213076474047523405488598827184939672407722982200956117262677678025800330976043494271177587984064580898539470026494575165922554726273006443962875737748286501435774821462801277944368982678075766894461504080269770796967320555202915739170701188053754832572055420939675229570345712504600771076846940996202339216640403002481459327893718282797186454889463565730769185224934496471828191447163104855320921604787180504457791114875886846282663398755225350753078923649390062724303369063207470450402627372532415579044987950660422993995999781534959576738762177434562620376618768859828925146009257416247449181913700337954714177211107884435457576240470788716939560356627768974470303398062776142628335913831979243454013514618279933076939180821372953024503895851991699293431786303927427530608577244522302844370807654549971320272383848258993364466314010013771061747053502184982362753873901849246460919766037103436229014676106454785715565574751855641620081913102707621344276748367420829455347555026636321114484201770246360881017824800989126767392007398801948856113778289131015580295784085516246643087175834206686866821340414322165370146912766819567941431623343229216030395264582235437887078782956766591343340016644620600523909009490439516988325209956633529672516863502146856675179696500755224514535053044506268248246415721217360077004712951053371996370508533654260031090251162345360043782688340367027078359105438973016340413708354224497928352577653470713041831282049012542317778952967599796898962368995647966922766421312093054946954907201057126438404953330537176681100573679347546852658170775623958020305077138502811031730856183265535115881650950037412899300826926994460959575593720496050030109067708716332682252011379046340340498490453047463948593620919119587220796270565047898192910905208198633595137516843077731483040857640547360101741713623627720714055707037101398532093219455003429829863261921126014927602945061795875683980270135587312368142733357823692596634271064600498436021534184755028445123695805984493248864795182594596812263572896456686826046749358490428747184085449416725133805033835994645693120625697578773285444457706098121982585841305949731541104114012880794199054088705493990915539259788788861718717685495121219505722506157390253698118605859584297466975142592611219682738711114497783830612341452009902263930488018381104965357729259092713814699719182390572764159685022343397406572049304626158646618153158005445223053986560454616915621729693070776330042180934112635963189437100127840216387418594987566993894439759100720120518130560431256919983434823587478072776831523831489741168612172565728213353680119456765674834759789114626986874585974284075415830718381140277879213835619412316512941424700909012794801241426432518301094707214542677084605689041307234816680553812338949725300648055902698167910886005250725974731427210327540394821911733475797821451837315408395418646885919873598121881362789377562367267334920191711139793534450467506711802747207477815432881018564886531619911703365087699427432637202244614909368211705909921143105669475091341759353046770150061956525882874167171600930583278884638372857691889273373256657665530778869347733696999653700767085961676270135151508470215974208801669028047117051080128625546277234675122212334035421542704335962196626757654638266017672077483824280986661878093281783252058207688092434825067270128208192535268889136671546472603636274912082234514582979184998368420420198654840513361289299710798929385227692472598329433752142463202118169275884259619128246482546542577042307513123508248832838285445075476298825757619690521244166929574780815516745362562286035566705228377028734904811777694942722478286211997549158310924516612158594463329425118196862039180370188338850441412278234701918049398116443997563224866004144069011950141236597273960092084420645793433499947381456823193300098689104198763972496338286913201812964548619197146508344223075638175356986565984152083720201068213706370922871794727097503171163601952477478248246826211603468939081268103309968144659720682969558141237493264990507214627686948975742710267248639438507062951070711883266512439659580402962404358515854241596041480202628853334380579771579143868595933218719911968330327455297818027890511651299273358069804379109452658291706542556036362531325534905178544838163726383220237266540164109903268367757084226189490534297871651620273315666814909208128505058514724954041936830157635597770177338733582810631315277149704533369605816294590810337535460008419619665674325979953170521083407663348527756609426462039965857422541213567239649071717089753237110441630127603937339156389271194851122910311283619382783670582240316211518903400246546077090882418233592375922996644472523271526008557202914419046534840644619120412522981078354295026536838218289660098748058378956996432827673509913255173838676022563069821657285168102226760006650815240926490492430791936317670044332397121698485261774431808067140106644176722888980269339337594306896255523234305113966420356585067868542721494215191891204427300972936806705429910273792630755277371059198452365202220061916231382825281232816437787533736381052196231362135314560262101508946813310171364156949890330354693451268200880027128446613281308953397360114823225134303353221092112048575294940060385229106403663546258790339023050868191175178789876319732432079040652460324737654854886153392842999420449571870157494620055758964182361038376987694595100935814430270449587551279885129436609865238316916716463762319263046750925979390012767703334335810282025322508221289290207368470493399219921866210006759053593071679298858084740927505578543694628256959233657867984052422601955940652913644166796664095539088020776199197668947899783440602529731348337392372586498844293982461222089599826304312643880502155404589680326151631400646701933083395289990397595387752668401307120026201748126469449440929268861847304460234880684898315731051423130287481639894470554673498187709877393210578706717991902507965561615818571549453482254146525471217906767110233629494404464223710459469272428940688854975065217473126093830694319834872023199599108419254850166722633750822077684082336827536899315978908964945908130265933314936421636757139514572887272756862516797392882501778094306398748586197835995875825079067851448472052325859928777515883952791335875230453770224125433804558650788064037915361818221142830164616178514092740689838126128927570053631427874589227572474641008216560567107465247992448793399907372490281065285490194461524982493176056996437586432178626152623196192323497017293107704228678820913593674729137949531905481982956528917123486330402716565767825216396407678393610183668211155783569199500793271493382102256982791938402473102014165418299865578960771614839309262280958149202144593675818527730196920816508719503589240674452155230161550196583309796717458595277755205877083489703623966046730597358298615755195750211676015331197955313529661068698355434853432290011296018075164092370235484419946919775621180204659763563719944298473808525353301984302815963541273427171913659322261668456545236919617339509069938304164990425803072527381129915756453164693203677853725785767121275971433750167893868835015063923691508836789624850861587500965413736013362697994117462877973472155513974615071747291177580801273083819042311335066882966865103695942040735366780434104226560968068080955646979401626912880633289000526167951223895458208622301960871159678169557888199319662174058147133939785572204985890296027081405646925569440784815505660389687085146379594898020216258013069221431773503850771824489628240052988964882561684837846477032384154088400966860668715132352865651226481513974154397247240057504372310388341141454852195103233699984845019934530123286964745514287744614890759528463497303406659154394954102852747761571362420429873728269799105746761960796451412377316429390123377681972374907120087603336128754333383372845602046307615951176135355820866281976678162432909778842773403345993747418945093715106368126625432234883865828663395846791752377344204062216791099344644094378742516021501132133938699242004594486513431551444844863672822688355132717981508074033570559851373593682277658698909314524802910403990432147165466079936583150631801836152367387941062418352019827944969460622769406632791445257438236345938311638111601912081404731358878704141949859548180951986017620268639143986652534691285278457638082089809085344966597104129035532556403486689940790876088189405629228519534952725070801319324185109263489621114298455626722381044946252207207619494477512066270245878677057352833880457821740705596998578243818064201857689132779270205747068509382921473470701898174047930904882488058771014227462932123787702022370643569190193718089780457171930221727322686311771355100035470354942091520958370814804359585506098922144249958868309131414716932045235064834638150427396711041574800543368112665797035253832812351202996576103315364566563017931570411133709053220737228533322162606084556529747543662249070764980717990775752920833234670005899460088378382203220874830580975874851047304513083493939491067748794760505392568152039029530507779420454654495125729538372961011072645146971426518728219345452875672960773339999301169078233156645526575259115927229265735455429846476567542876075555126949888939497014449265244815014275446899433464647277761888922242913258554879920564731989400704108403395252088550519700292601133711195781806646814503733238906338747624672887441710026085214852535667615981693888803784706888672199923003287696883130883634166742534763930594660454408102046945917634530576427435010290886936435671607771765740194551511386773620367476373516108342155905231398699973636492879139093762900037702779666955766078871301903465683655348822755235388259854318620443220444926490007843668960500091344542308073406163495731769101092124962769065183143602731702508222857156549757049414362553655156252209504808393365438710683584047234977573565531965534787165581196009612617875491546803664330826252515211342141849028536227082091446944302110648642764691257439560698340937960024636447155807387883401112620966843705532664502531450829934235610717640856470103349858078018464464900809929794809293093442470575790903701166070936964245164786039374498578937635180148314832822639798651762018886804137907888492243557259836498735672056530481728513173909072211162641288016044014788859588321457279730765893572500642211774328177447224739937879591676886121254077544690157864233900087004440178193899087989465795607288481523500313749628152881330142222130704679072917019969309357023733929168887193396601760028689320528059002569884310849911843252415372395162440668010480886407639615202738770072883856748698780681516145366295949393597495217031399546159167289149406918465819311802896136868686462859601084849635175412303260888943713031931964478656604755822440281025841287845408719069661395288731207773706765993193697927199786980258571919647930714568190199114900439176765630123876244962028360855710363309835957413952685505792916615853526865284870644630302526348270176745111069061546041871524292225395963049029491186354453929485078352775129994073026664882560559251645800081170102209984180207572274101476121408751668821409783155084852962362244481500863844994399767051816047673759428355194779086538263179414584669130416879553265668845809201140595015435626973188536991604516960290602061483913770064194807345843520621925152173120752152112864162279026834818112485296583605421029081994618056038789904053002052463178511906187476292703792075935753939617696819471825871012057964616345098070022397377172910379936052145545261866954430411153114146500356875038936648729845841466886591955631471997994167807216085270303680973615890160549586345953666742902703324433634741770053944773320318063186617912210709663055763360294499883819821210368612003849787990447460552807998571350271052605617399285064019901132561759274476596136030654679900631756649070052724406633085449387091054389147224075372874695008305444869790172700837216841580119389156888406298669634860571088557171028993350383619348736024346664932021353464230016837338306931252823112117915221643096471469528737735558493666714795428056526782240595159837030826007903409627230986632445953366702288192081067774723264070987586825396731162583953935414008591407987187239479338513456545166666154532786189356414753853213448728926749825125740770679554821568595661575293820371469143249597576659112148532961225434693467642554266560014328239991107216666293652064969350078365131031163995604653633861281794083011736232564521932386908931092420360607041621089710555905970339768840416685186904073452186736660151610489312349770886614967356838823198355357206806663419167889515359025835482664166499836811490465135923459068547361686068001256873056154365080928931121145108152670352003376655259038154217567376291838397437283357792970972610403214614179992954276838912223224044237587394961868382527256319413774759313594071061680380707694739024716683094534611797066025960044458164819482398033973703825934858937820845731747385789731655377533882965328148843200339344387305696261624383129041651987051104303946519668848555355416627640993874023749872033900423831588827541776937203382325424787049501599476617410159910330924561389520511530622366399634444922175546947532586287399849624002839924590022093756719533502737423832962358830615107586790102030290656130908732576236548908671757397039545875833612985212331784099682333464349858797404433120409995872598036583521576417081828708174749960401697854768877450595714039313273550158247821839991624760210592981246622742132996903874579498136001226708418794619299820842832190117097861274244121152783570215391478237273039965179318193387539078538677332704198515130687882594062693801867184177239951859116340020967766849906659209832299391834001688531703316058572625686670991818199561550316852573805152191455477629582105005077101425551485075540064207855881355196095396823318297536625053310553824845920448515312542967693723011010489469560205098301671618649728643849092565196226794728382558439303924161017822916003794373492618030507199087653566552039860622866449525859843086492218266999609452850805349545662239010181962979097960224138480185929161980083074534808264882587378759509284550376253942224494248213111619978679935787468766306482612149582358946810826881680492247517875319117514311486107428238096813550847465280122669204996529051958753225716879142248966855868580857760265794321188826117639616672157088364210013933670855634138452220121637805752175692368105844245120537439954619570464478552903301966178543003623222236092187599925324627313624129992266603241016116910842253953856818479960948755129522332807955637950588098668883109250499494699744168982064499804043103787482813797225783648065817631929933131744499168513876443956346260623751572742461363083231572438500849336267953300116952403963156416849003582956536598890881476999948273032221783476199309488160922360679604513964441586540188119807972360626321101691609170513499965212034752658591650813605527873864524010232041677744857810548494510735370359840544481846550047757389778366349295939907802744163539244062918296203260454137603893206946596855684495039747751862429382005091033169100169307295536204786015398980415517808179140568236149030727791347355308233831168853420431188617202719426329763431471314244201627835960387740997925388680610700077852721166448513804401534659031737117406569589180136342252826085786488941190017437943750529442934414550921555660075012479790980118525816783323050574453778850936464190806091668740583715112133629050410471711536587449159211677015452560486777619615497640859020948724440841081938479095000845636871313753312672918188140712813613425022215290410024826069063369284285560952610647142306650278267286342688976142822237123840842876930736756344184518575348282404374167482918719887556416660348619189642542883216877331015810095535485470353776595837953464536623273209482380761798038539539465091190249184302278052429632699845471554377077471975841835754802703490767242653960498049745371843406806499753366698338396877895267992853112032450107501912632891715324654329376422878383744065604702808443122377019012051716629243852353435358571787309613393901259008402873315693229884210842037123570678295864863908708775801553719856430633489405234486415806123055107341479057350228920022336108966669190800372271688851470227978495567364592909894296983077049985369977191092959941278601880273806816560255409681639708444482967797228692510791867359789716623535024892662083775767118975835467099386529040843728247649273842639883999951728561035230052259693973434546448439082808696547728658582439725906692423710898609373229485827942329232266297977007300517149278415125189196370259613481662350561489463988195362911558363956214294284893801005339701288230117146908164009353494804455555620131591275924277043124371141260633774397872111942369254574964736867607464905558627837329086472132763500007209105513575970678347646574274033495153627639078459414913180272783441915199453987718034896018735473837550836837723407817877860878916835513173962929778823570195690492585378432812968353836795051546464717171488162310434531000219712928082646212540811547662678412946163837580257764171470530152568911949853769302250810484545082550455224644566864061962574449534336140139363765753503472961416158697865038829547075019668164238881987074700630448387213033949818275316602429173856176938590583658668962222067532923182225920909980909476314704326209253439813709312789851941800117138588430854371810773280978178269887767592939603747280586952905219028487784656891492847634701446741944191528142556764339618242622131944202376390407580511851181946476852849247294598686176542027819357167020709991609124934509207533769595729034281533562649451758891727560798147050446558023455127524506906041498213461763686021541362848010284921026855904468280531814428692416515180280708490145867254168880347406508881236589704636127612570863883703713638880793808153610909852736077550905042148519141015742325820944232985364508160277022715644845394614252606379300517901321628225873097068771250341621601325693753927419944189889543283942408114151808337814178549373475066141959516391607761581925771490708542263760063917127357951943664849883730776273378553216909820361261266638051597007475350191376579786410742355563640822230847423641225108813540749039163240157696357649815804716328696909153493804317752361711555446800722662674783966037094852198948518698839492146562783892476119727092398369196163076702033077713113334650269904442443229981939226987554054822642369611999658982071538657047906470153667046501838672622946463168040579267856084817046493762926202132203744255115413211379332109328094498813644108125499740252957056901879515065311523783729730961420685713283151978387082815986826453228692252968949583254401047015678886513368641034286505885325722164109283457999112356381240652589279399301123369492154172602492608575158937785657755797633671395806076620090869072106343324785444297012452784566099751623391546248753088666598904917196062866308294152203097178580503806464480557610570318757247622981948975859421829245046766762116763390492662766870089140257857698087660333412008366197052331511979909897133193973415516826004713193967978235134262812995370006766215176830195012421899551730259272227083362685459580353517428713994294395947245032202558471701404761583209945111375174220385487149568040754637690242802205552246759401468251374232952102914270559464014090487390358542256625889091141233567989091751871502142203323430216722654132694835638390742048568424534011425313041647349418949722036671372680192411018003142701770711967200054620828534223293892167490765701782444387066307908908852192888871963331814765960347710459721772082277805051647855155402223575722148272883779789526146048021327843416726399449838920933624034341554565161499229795491509650417583821340188689057809040775332146311159757336630573184294285209239602586989130261534461215063697789544010635065341690059038879096702276879549124272765991517463047444757123831505433866063519498188770472250608573615518650935379686793974509464097391035648630537994130026837616915876397779241181337862505683712412982112269740986390414811072219055809322286150407147339564662282075109347883644193070807126867550665630439573255770933449999405560930566913406324405494591836480321972696087358292007684287256623142053074792658989438246506903561541168544218286791452924296856068516779205271210100628938903366954327940871000997303740737069000819995990130870286038492476855511989094593632600131735286101361658580218644722529461758201888059012915885609077169326516186838148364908907279500895337872683583483237539735071422618868445251542108917560120874924338291044181478611626759606557018931762688183560116610463147916256202763674117121685585268111668922572709580266267508990156042593644243514858684206407584592268899145733962251024712839086219731591849081618040049850002739620206472810687184438202686490291866061936345020873452251712348338388564861112731232883125799151370816148143035338228582176852921414442098016813495953449791675307145282464607623015198310987144111059943131188537543455235116602896494660438322391770632631129777449876148709398459209067889550211966064988411044218896941386155864440602090880134065760641542102394987089928000497929094793825361952836880680504967291256830827950442870314660453123088748799713846856638394526338239945446074203877960608156652679646750049563965763117844225960965564370972433605016729231380595199358814964746730397487635078769457558449109583150410187660305960432470863067715330957473194688006272881449789368437990515154127233917460897511148044437174067933623811633672074320633798734560140379043105573587675962319293605068071009058153456921464561149442943024424393505173546369613140155083259953838703092681128466904530293579942855899160860725422202274317299454627701407886585268740730861953779864274641064971109805954795156531489986831171684505682076463867391608145515469251928514053878676356927121082226125035080819202735885262040142294841294661590034368633934045491359656418296732827025181624550008921574768374231721223226749176237208312847613107396743090388272563682307855121976883031511828358091437293931133303112100132821425747297547149754446754715340687516900119985473699482971011820361697193390671342698848149786100118197958590727563122425607523244243060905974572474458732969874413940529014209779526652351589649866035481238140268307199624538024474437937861800367121744078198332553931334963986106842300355998009292256438926072603443582072339252876727761421121916829697831327644393022988331671662021132711948719006337318942183719055575518265482803619784788085003967110386857070601816652346234290853441108318889111152826184019120284951406876198938423655660336538989392996248363751660154390263184881617628201675739258143849046232044224732316573321219047726881248888178368148596671625176134583814681728310226474293614748349444414479007422680205027899820924066895988145107437644852922814364544738787748459636995318554505001672313273287882865108281077910260933159521856768544093819763239032943612670894934660915732772294202711484547031857789238607597789028022211463161698859096016412993406336248004945575673131207601542143451736724464496636050035123915910957080726884965096327927733237678518851864096146922718465344219538555412332759919242486290317597920937570574225278817895478019122928205873624415987450297625930164577412430003274295298452311271636999722562110818311102279818074507145223761463031593019921712386691015198546354367279454911858521425723643811438635782383571312487209930980136732109229035069923570545621992553465632373229547572594039624629244687334398066764966665440963101018962756307837725273437491555472876996381477343593987776966455583239319762443639466874261031035668149741417154028265326132201071470069993465198579819658888615962198283930974586568473008678004385499085254967715503112771518093179460389504837300690158353212803320365948370727319414736322525568288323861269786558313033180040117795440607182014603405352365130314003795379738228032933587802984628454672420755667819994594962485964414477783528643572688884633239306650970582197577803657133627990397168078776646706601651173930689643324116978140600930009707681533117541068596301101408332135461993936383753998168796979190926352883633360476216999754052155213783318821367885838183311043232918866568391814672566087413276740316399826267539611757623488496447391360425365639866083498193435245335320291864935595220355741916475572851996522966577978108200018750369641378916025063681656216925826911778853234838411462391493579520756744304438228017543315291463996728915076484053306172876664188327359661943377504481156802798409389840099861539389790259863907694752046313421287638928346945603859441863167947544152147207894438170353056351282392605623219024962283103698944047347488362558582153020324151323321509116397747153256662515337710438572366915845173150664815913706724260536105344080065403455090533000502244039756278248126738323056020818896598858826875811591751740368351231471540756106815623386288579912391094036034361221102160634887449231152018409903393333321777821295327869413498962280415345453584675925865716384974629232031930990433117840365396720875741072339418854943756864660993437737815959827009035262666789027888410728950541030819641407282139376031969540887663368450325694377235646738612679043100082722580921682444069321085349510492722646466006474796899126872800240663424707101536922425711045098415411917547014296542043478622802373950209359441833984441947232009415123254643750303196044780161081187327779240158247908878373802202247689887017716035856607553742718338167000919599596942984589077620100800477076771523855500671300230431586666768963761673463100069836842577668908370806110938425890637276237801917839637048633184900497957242269068852091163486627490493082537191911094449300579609312076484000570061665571731020597673879095342392227114779310921697535858245557006536282492883835987727767063642282765516035573063252572746955644577984003115909429396962295992729626419076595802493178090157440518732598228489656328464734346938600826799501186069883154922103261981705263431250799500333625850507592339892360907635729861995462642584412726471136949614909641977565731641828055521561084099049548269442219436155895630413955744606430855913662067982011477801475687161267843640383207319950718267397733445232645293761531297061271909901805092099731621087880075670885582179478147414545894146029111174744528007992900368858348353689981881205445742562839779653233773378366638731194233361456837092942180240560666705787343001474124025747572048533767265814658730095355011583769671114976663510332717596038686293309765046407095700150225060417072923834498085269658644483858254148604915081945170887900048641531669605603795343570468425126822737510913636499843077917366163912773109431488627536166502282302437977917786744212093276382157321344144968343090752155293149818451446143234532988854594148933956622326783570766668517534021683380255398797071020666441961449110508702299497047137270734803361207853502691926744932970189970368820592793762059784443554340307500086943106902007347362946217067780794323104855992257339602828001622020697218352573516442635104644947922308430327308701061142731968070748508313974085904682674651086612916401977958166645190139904500102522829732213033420602173333169045477247419184933205973712923264493431113923244793993894518119724073971371168489805067680938388842929906667913036790738697310826091284922471257260087404781548359283682485383480176718379552094633761480268405258436026806574318092773679383887929410519063142444129194204428271436854705332025192185871304866679776361250874230374290605333507571234137011513641873565814845734259196333316236073518171254846846957470653973445833210257229967520423089556679937781549893290994657795774225111621618520771369731375277486984251502965366599052483579397472161355020892886688737995602425414753049812596956918635330079736427331525568252919435402969427857604053354705872601296572872219059784305253548267344201190297473169565402114930508682360834426746162459966775048766698092055219844017494689684300064196630070215037093538335684005115886703071523251755060360013269247254427366053202967344589543023599568428194194218552981526042665173981859796433800733509137141990110016799047627393627511687074867410407403630987536564086037783050291708921493075894914462444051089367766574137299957573330328618511275462507851533361323692996060913099982816940928391922145036332927779739616967286642392955789604205212941464345835973378768902711727792455487533452139987195829782446267573883258706584041961620638345064438507604292678672210637296559352644147518117295385762880052710156996682882422590407006755203794387154318949573787163244493616400970048427887790164445970899798330591137704633030033025408462458827963222657709155648928621049571618186841809732682632791597343927810829911642777669080569588984166216054022426485216608377658156943017457249511883220636711630072638101008985560555340884448450056128838438965492881582334448673742497157111614934992447663816175174862992239973714537245551788854032823396820773658192492695561094451106917274052372061970896668431806466974177730410583794301070379703570803058429404895636791712164859124193001616783699764921092345847627676042470506405862340387422145479336005333851608364586102577295123364930632798328182355090690615620051374030843264723460875610304913566789963375991751952943456222100163080637197205622994668231254265518635651804823608350417692461170553871255515663880523451038425860158022490802996839984257688024776863024064703343614322840596875526224869449948150978120863299120172854285655904639375684170257676722354813830052495154039802378298090695834043680350587938168324214445104769570496925617147375068773013462502646757098934332579400677425976922572023923990327314570635827498932563583188283674191569493575919135130416978681771352774021084456378327968709207296562359909429115212653212097695617956877837869686345313441753294728397888311738430081111329314866097816702111769627158809532503431040033479409221377812847108422933394333300939179775904388853177972231456714983533717344701787151958042985712558614553570243400765764033929140173206287795151104531217976058451135622558615063138162741849584768174345984230213812498855757134680868917332989617481901600206212656051611280831826411444760644824887027376780580193251121567207750499477080278733949947692120619732890022470522979655625202973125673578437303574408887029422211217891573805812685166622821332389414890535942307345692539521243896461790088295265890431733074936325848327727198047180316904385830312351767876069392342709301184069337096792385565135344142992333350940056855709657121302125260094936823179369486804380297388470550894411437122649082058526323242464643654213275081815811790367666198832017631711671619314713782851051650635280538770242619161476092760830883346538413072402406943980214486168698473128551009858244379049809518287482256903933789784537506502777435662769581337584060918193254714223461815888849514188373115283748428178628057303605407505005087736594104666850085298579475421920799886826028590984064188159059260361595860765521289813657390133643540527961405738841285609449636063532411670067788875888788291217502607065746314092112854668280916311331924559322640734963489759964582623037030849531510240757397286508721507356386234037842434316557926991344351265075492394996815881990999513318620425510888637820684786262415655227701734427707865615386687862733730690118625481386708486513255218612595772150477564273253746504969308433001452522798976352124622712357681003265903127195098497570573148557264067295391243977166901393307060656180402207863573926117096952189872866864143325333236640443832810680716300062359871389806264514058210788140535973476110205390695607960240336737676966829349680075716510198244991051638784109427598473311501858449270850612438590204078155007566051850552758836600435501618886164400327662695720816208674317983089019333717041031156558424309923370136022740200689485687131361398744344369545100713270362367361775228015276149629770951999179279524347270315833998583140477957097634048133085916823427420436876476321694792257175560431147467990304522908319069229049918086269269879937858863954329369308963932051322617060264804531614462742747582453618719533645785385465014952351216121366312869108416327326859292145648124125070803506306141014733394352841737039622506624583681549951399071178445915921001649915245518222270664288754062620417609278305153232139519406282804583146531486513622797539126333599529730096492456076374864379585156328381447583893922895299554886953899988675834389476198822875273068831224292327110105207129295177159920063177869727568130829565588334436206580297515775870556817005101202900360201726552937840503941624031487876593884508111782364096614958739334719193971560712812695352907181941073129854004199643321858332312208082392901754990014948015413003838254416084405519842038204609825957998364887150199292285257837356825004626871228909762787428723604594053053891003035368554503956861838346335991435828825804946671900868157045143113220694697897497630222678649408828180910369393212716588161780754431772260657563569832089180095974248827009075505394910168989389330308478346698047179283929919523910231041620874159798493668865023867230208443546702135355242420318026522406236887890259540911230690058598141698099852268547608752250888378937564488130629628928603077242153325338729061470546577536914853784934743465117090133547126396771730799684201775315617080399407624917982408037000881156980237852798551941826040059537402949384581729911091204757552584149935115516511147764058602956550130384386019271913586845574016549889724426666928533897138377874767467228454135988993979346807631813768700581500155395984622327204901761882964734680989301938261151387933438193152641708636580342461590019320204992659093644016894390872225723321937546533983915028971360311157741828848710828934232197122524117942291968522116607146194141783793395850421657189194645514967232300785011133063985734691639035994396031792346817013570171033051550646922471658410060376527947567685901286622854748095287091673225138136262749585449198639082109075104242800065993746120840639614151618754136548162025675846465084599270447287493411552762486429036827778186550567371513600017818318247126733232724441782217863317878768644080820348461905012141317419601890601412425740230927232999990903290350519944347883628267714924148996721897538007235114879690586256309869245225130323675579921499648525766893871593973179377069855543117880255931668231454542947033322669946831093343570785862541156013505685061864902278240882067592887229768219529815922615801035915863103051774582645910308006714254776485439987829145036510867742574322236585255008278192226020383506632729157566044680480915786447086460302266984928776372719908901646337061475927734149801209583021903112701679621888036182073723264797981564265843765960794116353162742488764815171405620572007226390410749049074387339676277009663459340251403388745599767999174931876722408644083658502270275851602641926194033665883679460961397406343621858381146482157976408234263681547035150717637259772813775761924515570794135639019991704904928184556188011091579117539597733111487206569770892948130049433728285267697639051132813091940173268810054723173543963066757661001970961737181826215032372960111075042456848098831741703096519629305806499228441343127474626714398725875777343913328467973704470264941619392255800130620304775382476298619682902744583362761097130545189277699894599578620328431675265485676148915202305520007139264686587233763475874712541192701445335478548968094959222820896585541211310437166369347020547835970255331786269182513408019531193139586404819318642835184988418225407274812363411288594027486897606164807049573858760742770187926756468062804336309366023304543511125960769187940081535873511773333013391465348228921316107473774600663630938593130729126462113246672371842391504693597827727355222897615243816380386581615465243820696608613150446466173556346553099831667978682626011581869845739337851416972028569990429963546170447556650897260027634189592083963385686660860516017793478992861635659690152162564761116045492492747794489516793264147148878703292071435057220561672936036594931300590795158363855120800889239065520459386420898086986757523312520386711153229137165164129407511422160118557578876313260132567265621830069032739374130395190792489631046455139233114082951215003131092470237702244002088429731560714848269789323442063372827201611866386686046852590761611130010626479333348487829313950273632478665652746900227047694013700966276788387608358897800719548705807265257144598540569806506592507043506967148688814057415122034269080212758596184239830941335745576332207727334844319851672259307087679869293787237321501966874436931927233825105890196170008042081108254327914609051565611368921131001993212650380968849959684185897980343618124951136869205103156436948154629392828232900549248959891468379236375601766568459731047774287484667098767350890932991430302417307800787543327684987145937911558068165091116671606524029264826131927666505922573878956296224267671329805967280883389105933321498193394201836612796371378221372930369536993726461820736537092164474694489303898356505181737486147709164769547627477750545158519158296373805323824078233250507817126121467654548152878101012724709563637567439863018821678525937248638938363335340804744064303525088378338343395909468180021387779543393976667832123705526427771894760941526827000577712614954410383217340031835897054807594874904066995702663367502524248758838003076551014529916617503166685161738842873201341075978034131115490534682284702905023216666220178989579741095322022014681154489440348536599009092749599194493030459942267005846506624907954565985047643168033618305424895799733567853244743063895825393563593471774822884144728238717577000963281469005396164722649586664885106964320740959461397564762991374945171136516008961327543696122495083124882987101811590441925101204940763244069158013241500551667567587762040829559674561455272556194602696173496934545036822190613695738492742461038275009261237224624685759698235192443685872471931066755368402485767435314663775485300785662213927387611376149165004876709343443221257754380262602937742372213232678741282371615495111451107561596094426516949723359104125426640069683277520932955989066363398605276138992177171068197406936522682983393211169112960486798150596861330885861698071734740358634368895993320560936132418814111373460313161267355138136730538724183961042213592917689002507713071706572644209537302500558361017967018485615654973942970773062393483849987668823201781296747230476452766082521364406100852353996581204215785613734846443648711116503366002686275018933410039287546654681287817162670322841357203864088825254379943276215369111114534510309687409844603707092831432137892796142133878059908289203511243861746730162036653123717370284383349369668123878391751634636899293661429599838741961928646687847913323346273628837190151063136099541883812588959258103468270053512157351998903691924674504456011688054682724773287678427987103170802916638332662526244236061040777319635762061272857564479969567034373918310807052297411732906177676274170055864717869140338878501288727965557855216561918259508829350590862931488578842862854466506630073042951138452332825475792221974359179472942066628021739541093894457808085179659359549630170193355160248776426979125912615423111826163361555059397606900821132587705965054300430247073448947603922634302913251682824165839776149357129344974882508219657372743175167473413800813702051414866615585192430832203585913751714950680018231389289488861800489819147883213650686556084595880325245203554925955584402088623087108922244136785018681584021209708407335128186201389295158576807535544044069373285069295005983318562057349320595562045377258340635764418926204331732412380565548128932667114019372771333154859577641371811695750126967676245612856839834481846665789468618351998806075520433742786943989086169752673931052887341084156643224192972545152143407069998216646479595746623676835357295322259701938501604428068643444175456847604782762398829183356496552317601192524487420698221806528141342246870007001588222422596601033896569446055721612368059934222801848010487176469275408351636971288824313722611389980510116638374126014296988838904327528448022811235264660683002392217075506720136494117702571571056311237877861128895387601752294294507336720426315000863442781103461513276277788780742254185576171752208013228801432622812386070081970920116600063499051433533330778068958563784538995569575823524009400103342404606305146413630895008281418658457354400544542862434218168699431462788848627340769687203993395736477574441343952479037210102560540548177150393521133467747725302104987506089324799530929660188347129150769251880553317710344333371561646234010739211518427904318647864737340444373148957599687217411811969269641708398619233417803510555127390272739987675486970029084672492294050663796640996903202542612823899171368636574786276906335658139771132323278224664443908760104783767260364855149309539478435313721527342648001269084338606330867394416266445362057296739940664813919691951197316172723893491687467140643683877016153303368645305134357704065144668856565157105156233139766423826008803408417481113014722350127631537571895762868453386752326489518187651183065406001502549215156979958377041487209905249724656351833139437488327025883265846241073624275145337908110155300418331076430153881264886474530441198828951190885773241978954587054162055961081609452601106257105210091537260628307932408253932851094838468915852231537555612723711296551161646675230566054019874196625236300228801320877985184647323477539060500786157037258582518840517337116735897317432847314733139796336830500024232030413579152066960430798351076835190174617345096384747778703833273339919760042307512904799364433073763317799517423500143072859191426916504368968966125131247097392462011519269678738653204269053988018693030679421833863832594574033434369017170871756607037604424898264358966312871719900773059628968577072393115736836132458247638836127970573117536778575248697570906394541403377386066377719640610231546868667204217263808983054599581900608680990040167912558162696297165337139597853583446333254034225963425037153748838881950192518898519443229086134210006594203143662483901108799860101286021956749581272866864788655084591316987888214377025846919101051973396290641300521577131409393462761295557233162402403011340783127755098029795178972693055532282465448194872506558921301478620113222446210476885299718239214388455174479346945842758005966570365272044201930333811155998234004989607029917859111972786064120525209320224231421191802646346632781988390784638995384937060916525485419646823638599660168072141686227159739690796056389748186490255603526227425394381936189225518181973696627105657272044022650660764865592720034590779337499645509197219167048076685363819438905178027822392075190976055754018654896756479295775660602887667426861240277803381030180284981677646507682493514993627513439575604280397234162521349285657364935883682866946214536569474598968596537017298833519345748666990697671242147519787916475661621714030221556017235042183914265323814728597180271516130454154223453384749061199120621161705580740974575543208803486949792869959514584003070744425517516681336510883103783843300036639794137783726151778224435554824502336332300996796711061379733870497296000154195498543586317897604167190051237744432381982177165544639024863809500902885550525651529941392323270926573256031082625450924476468825847664464760149751421915238172358196099818004224497310145702148284709241360329762710149031693418127122506658699692126756648980616103005880506075424340855935801333649199125708368525602622566097469075079268886269102346959884159375993139526834692758586397621955256363121813383803685318724352720219935450359545203507384023454931501574398312516715963931638399979283165915627069716977837197453193284341529288538183029724341286063199295617770377771164355167578407961831283711185206842599117241375670624100939873220051678388525922564144267777894716848419820690067757843745819294653617066703200907138241202040281885930123143807397789915446994967901267415418338815060179450217750503919048419428089229947490299127302537387451950780414158233155153429236165829439096019730750787411919339324678427367337851942825309137811598352486927447564463611845789625086708624238569007212613537754856574200910728524938018551953277031315413334307687899104329929338407281585871393447465124520409947868034508230003252356994892284289531681177824968187565192241737218819271159990125085245627358888967865224111509009526623770306099820481924110691336844616073208012154997254881599779992814423822370612593314529608726477577852391531107266563274214318549364321196951800624857954241426129186067301239280113078000445409017569544268797780895130356684814588746520776356129101515687216004669992175793989374552629578055869192901092270786994886422899481211481255462797743555187746718299232095617838079246889238562887717996026312705568429229820071932171402554710726158981657010314928719961088835484095106742949573227298431585284436054813312013168700102845417292766940574509936324845208685718823829582015973500795619595587904529497807919018648245511986460431090104778586195091925693609179683225977030421356209411753196253804658359734717270499510946136813349139808018250961195210167077213668105031059206424073346901921520323409325765914663194461458102287409431551929280356643906816601656632245738802866885278729385351221127682398241293146678664790316817875165076345547500554515231245305092115624649076314758786451915820551856306632721640976124438040620339816657058621706918320591757580722816658645656927703801156318275866692208777378895594323994189264735362396235230454730227514686511180938801677174665881796240741735461348855496552553282889368572045626436993263398176106356626061161662004427533351017101888035379541338930044023271011661639993598247383622781592575861473978433146806995775887460972429719219749219733638635910561077395389384811425332487753895423942373222826262428215524638040077169995279450821871394926596028815376014185193527718387411618275098328306047802380762970273584648226866937704310007913874862940020379867493418125680330487309871851686828916420115065604940052607981399843809867167974655958611358063404875363055539389344801075031789792939446827424533232426102537904588590601838017654698844095706022845034811583013336672786761849242033055010614223947795611412910287471057223106347265904614381831391867129333743556481553436355546635403083644160569510256563265176491683833262537679416804090516128685013337499480169384636546429392597224688035362610241344355518756066921449866738201303100892407049193314647058816070038110500935031235141071103889712106598672657130213292195758754202913545193403860205077461013907168115483247963449552933040781393057741532848990456568794549602928592977861680439731321230032806960712928453574515898049859016126459045867005237219914485753405352012441391225448776012970955259514888447761791559358966654377749912494639038783076223430964655765811585946857123875904396039339809442487515087699944166948184563102757714431743306122861979399058167043970165244506033729991059728920676926908385328980742267544304976729773057642105278584082476581300477882991727752694877692292655453771733087446839590686785756792815979093795032217344372981679421555254234995186522385840901890315507031141552316943819232943007608597557024320211483858389487563234761283093684519712188472428212594595653537554677383123466964662282423144889591010302969851404239535340191952978628230748890454552550360199314914707095580436415021928785147694699895900798236461670730022021435695842421259053052955301149357479061096268364405344766300012305444952671082256766106412976075596307435033426898474325008515324331220569211237986223037826520861778850768271305407029158746688254345474933187002436335319329463231448038567970765958679682310442175485405391375323175363327953398422548110511087112430839003295781637582291542761986028862691079241185349939734065172019525731149651012416130893338457784534597156889488665437471415099828660502392869564745533626148172957503552506320515260371488140368816973073342153780427449119784667211982552646026504335236533264569443538479554083565255796584133947534377201897020663618770038919108220157619766159166207096645732764549927545823901442644357143966397542406330763933267239654699677990096737484402553039938818836354994480370230016907134591132225932544490914027456572246945753782551031883789065049656174439666601135103678149931880734005551145380629099344402328513158430771588778793026890039960348585985559616324748650117972430685501827925580241641431590192883343602468592503066571639837550375728819600964556346774062254217912392717110590638191247747707928938240519914567445015909232105142333406847250483386664721112991929814555194607208895940712350095268085955051598421762924950393222696767200822687539258688008249802590946961512337844351184776783285468145300421719900739695779601012336704718335020265265436236821408982592769216822207815229990098851923601794894614411955960500171791623109438226710456480705251567824322678326030013317298516603852126971253912518499119411656631584280119288474624333516649266492054399558600343791774685169806679347644683563745384947847828851045479582030141757718336879825443687227548494126566102404179733569677320115033790012401287691054661001913370723989573162151014891877036738183240075532185924433531223926641944634448514254913978492663905183340723858291483663950717525625682606783059205305810390088810422168183445484004605964743424392189561317289296688485598028708943968778815200212493005068059321427350952860730120331556174494010450422511152751476553053277633576119035084867440092578507169472558016792918275736236129048763290083974493695157942951490834042444609804656108837707972239296263999749195167535877686753941350354432862790511222733702913736042065782870242204899587599422506556419176481219265859473827397396957789848570160444053164440890487544813204750329770842356499962920567770961656707583006482742714947269054546857060620045882395004676494980170092034878766128569118849945669969928113881414204603715487763658265731628070029541806282617105984672699945244295372981580064245427128775930439225569113586057530754018561471585824000843732172579024308070968255913437692577149283884175453988811775526647814287420026821773267120898862185997517526905429911575608982293135740198213112875259527917540683894599763714072115295869163429202813117063922645983099565076284785115005981918550505384638480464962974797647555909567628799361876631558779687977749443169927168514542432518216084895006817468841504897387380354916534909290060191636731212685895573646732945464192956326922373107544149283974110251958615811418080497969572051442068753417425907456176438290603993057960278645073538604208604548161222629268633065872497181041118784605638190768284944973687746669947905521680373727776977596037874195732728070694789846377059821388861621962445919060259210263992695778889744012772488082277610347608167811775658032885239765733978316242132287643872241913128866450414060558594809215055303284007510317737602042281298257983950967111156889947800871147036023421925849121585356460082700067063623190729140093825541113179591349361891618993322410225055130050541267681250143653609137213179755764615839266462802375403669640218570436316056495962482282858880414747525185741085509408845760291699151889491620959992902577237780145814868549007328066098693531878078143341699497478131191306344343160529793662580965928910119719531741844652165173243814511975886504637384345058423310415662374105844451121238607620104293948194856675707364869776529058875766134661927465441704243783425842917463372579598727425179154110239644296936833534653074319790376694684018533360191299160845627478669831997054391015445120294464683144292702902954429186344202039236318115641941928071095549101810640521929203278814099062993494245722588151097506252970680380925314235039260389383387406578981366872148016436018743540006229687107112619881169595870179556705507535038766013146338589385021618676705797764163562622555144874904547615846729513810033695097897979125794299404438640644475571104422160301763239724554648240414829158054671441265465685583768351076056227676402729877931098115131147476062830033481138971867545653168585072078151655440209492414279048230314405255382138094911841962862437638942871167814125125894649773497132692403955204087223814416947183453914086006679442797102933651510505367625151496054769260330017344233284450062677456328464099435625129127183883877732387949582772581350554512623685891631412921513992534574114460321512653795465336273502991632519096081453552002086990530699722758709944078062188139327541264414435182190480193550303504082352433982933204440237093950569706408045061501109707055657176112177114119457857914815307351006788227955913539017302424216607649812041201120886767763208032283172557311998274705661823333100507694286586390397285844248161997032466048819893864963038403348271226558186281308434508979642287474596768084384681611895572537762220704771664792897657908606191789313242538014305890157035714382610126379569369805296624613309883955658833097188752569618603661857262124726976403042963143939961729189350266393211361862499795776498250832779179015687281361511257829898035559264641456905061651334833707531098573569542356060887603744844532911625552163888502815506223785750194662646011224420416352536911174624839169059905558136562889400133477940533782378111956330761672502337020989117401762660136553010251602957533659337826947321582479082356074506175381129123620481464401332367729789601209500803573241710037490856669524961066862464845633044025026443375640652335581723945779674157692697723388238744902516119207437132735225602996374017634858553917333512651764672915467559474302655939322720927615954360195507263512910763194550347682318372198103184298012119098052433874073746900871185278964614746188603548514263802498554935996464795823991149658605691706003624600062141127395823774324645333918695582605650841404001797174702280494335822122300584973333078818395331694933589952274869590716063360695088647148096572210132076593053951215189503911647777194989945202547529816362265073395069808033469859126186970280482526747507529691292935330673895203474364468347990180685243901760051329438700612818686597549255825016148445327200765074557085342895060405527036108132887581411946709834930526373559435377795605540152301366301352355279974330561421389229602004270807640933371813910034936734158922698909602620871901799640829573762305781813333957373804181923859626230891827472845422421463262941793182884207139935964298744032375043020551035154068199830842156047333040568131562861652303380508148363915315349764925406923916280810173572452472442389213916899954127992339443277333322793602426047121346893868615975489881593442641142258662894038588442069580015029005382057750009400677060167083829667327207550358764419409340612068900652990306007937302412584987275996953994665449490199325704601656148146431661802726379180414601517837110212688786685236097953727725132821783442803202949599876278584860090423999252507190002094765388325246156497558219007785563801804173805550474072309064145212305905400770510441386272046026778588410486036537542194580551853233075527596434126877851680309119483066188363466430846805570776705552566652756338559813109391861318040545774097004371596371144505337331284819005262805466908273284115651851908273557665721808750055409759358490051958377324290056580615361301924619424652541048116857319516466798012312784971806671442481547008805162662824533206907882380773732569094433108291560155506686615084988087210107102871295104860435853014174181619354108573143287650761186403178385114496396489659911329216592712245488495473199788120281256678829661017755397618092809169823610528322126595938414031820716943033958908622737658814072910181830293203840560721990548743036529678917479695872077803789240656598942515428230181701469229412165820155216862656082268094978852377827214143470472440047783871202496092399427476120599754675655562777770075959681530731884279343921343511278742984363390022121661289510375544482686896358554093398462032564976171737907562101419887708086428813680214402550821930542795318294653235858775891920963267190405939456666707320587714966306942482477378330440686324390856713743004780330651686798311762824817459790352149606677900966742058718973982988174502086794661490740706168590184164419537336153006947637710720594264358068498590963440204266556629219856068396655219910321518458794371838979987529384802767530059050641897191995241519355189759731359896845215695982045572079670984379986466670396995151357311690997025015530145451188865066749320379727277259752970534268774854218722658718787117305800530109281875022137855156768822610456532862997987565915196377430556687434302485358063758818945251609713628788861327533515250247481662495988061340420462213470024580634301142587577721420181025829238833479236341599997589730681557925465462344469381445791289421704460210306118648115112081396285126874311193310155490755037800378053345145491515011314802169139296142795040051201511964846959310827184492198020455266682081294908058024226665536331140015303087733046651478240013654526700509877177944993666548344243743225292066145628066704797668484939934213393189375406191490403194866139904288347909127475406896982349173219443225315678632590574690658361220132382371494372818107572716620291163572891095418124667422947012053865161967377679529942189167095785698386726038302459452543543071192045985225431309842097770816446654653908214224806466251828689300439357493675683981716130752931926177688056804098891063038635217203789551777510928242810258785191054905192169742130370835933599333629670811468910155809553611124887364670601614080955797918868740178562322271140006142186684785043171842314412664522299287796559150106798386905907798250396212161158396730756096856013219799380914948014621569599734606775706929160869999772411335960843046152373092891922840133591917021401969831071992734185539101019688248015191505417341097049585020412035093153060238906772639803949765383506352032148606757725954422431804884899710543103771540576292563762557077720241930019039488577072220178393694524813165519584562613683990859080608462148777643974829609625471454542874918148418429920609619019719425461190072119059368752830064173740992470586235032557161305915276477992545392867495414743701375561169325967258549270770460193096119493202584723217649820286689283570981923190856990045011390985160614607879158726939114357512055890927664986277291996618603199286549487516599309963035280183348586264236780734823970019145931217200754782929261810200922531357221011713401112904826835244624092350644948564163186003512662522608255713723183385709049301737199400508392994496967519571188296974779070815678015481834085313126165220109520560162008161542537083315079335161005668900933906519230768542564825156334818780786170864132003465949203946733729135943908942212995557340746008839392016131726820587272237562887725410967836710065374193219488482725497556273511287411443618431217501471161506437722662118547226324428674338150570683356221345166360590087969307306231852947426945896047814348455265922549131960591096388763024522769680649062441246730104607596638416960752703024136809774172489870173369131450382778294792544718549012040288121944588231199991652977986942300650483548358969750005255412554800485770243919331045868799847155357754721629589066644856076013331102816687290780520433105484179237889129976689626970058088958221394147615035763319748822643254134307573633417179163413340154793862636544921689275085221886754441571590215263946743882692237919009004663528686647799120201783543462131460078995937149539892167157167059567886147066504858702249661368882936374351986551985368853167545616262929544012541078404544294410584858502697460823338714975679157716127111239210221773978387726517147981044177703554600407623076588176346835126292578068212120197361847426761180285512088862988776177401009140823611346660263567270270129391310481024288197927798463451792822886578893289128654076323400676952428261519435643685717778879763135973153192513499407855969757522150544862633443075192778757074042659807518485937810706493052498639795491344939565205247031604229333289589230741671391953070772973707652624059004782472913033685658898956434230241880082915891202982090379776312828579100180853296131861933411544586283984681418210594878720313261714294468338513119284632505648811006106319751870839878357046705668084935224665398675136566533578970792465472450072234890023528660898346387103709848325314319455577181358649653420753921878927331070120654933562296291982538673011798539264539990692919195454318714199306208552379412862040429762551687301812886924928645240144671369587991469873272010881021924307190166545733312191682796820246760367453024457455618908605419669023425962325571390671123133458739939922765567168742350791136304148196450362638343385522853420113213940715556352221351380745753653132896828987288309610093529850957311872378254571061221141110527885120329507418187869182871186480643710834051280395275856234633409683003800345429163338366943989388669887817178101953723941359181277572015988548501293959549218798772353145971024332753611217005685685633598941427188360559185948910838794157795472916100835762706371952245652214259216597814049136861283858384956542833535545173185518071725616066786122977570061636793880068768904045872085383528748980139975855658657241606893336111723841578237309031778881362591795910687683051211231596425325611802654364877417063604141763394627495618326452170140200018134838485657715758480551082694476429571325939672726172233033648780608456682906360828160068468939087224853565181427611320532587632573193401687763917725766751106907029290188454561902091335702798677134244479758587061309663393446689049310669210220664659523167305900352055151118403147629637652056490310279071206787247177830834026914838978808887767140223930502589622052166708814570634505118863616170262792878169037400541128205018010455504380425758212661502905728210525420564233802171113279186603840241596314204614333382498256500124463137030363245236975955574922168238659519885003713578397710964966511889869329225255791995560591199497601273389082938935352096280307121248686250306987434159826977513224825776991754966825689005313742036757782603648246276625994503670061057265086660604511571362631425587021693070474453202416567195751647948403025354092565797353808617228343422599516726106848505161411619644127707856413896519920370041199027659639900393155749621425018767355338310598592846429431956235145580297734018833374915016179255218365454647628436036434897422311289779503937273534430240547873157842845690035684032884624671069716052941260641998662935181498565682401607022047327871042902444956959962909907193313665869986892488669453915219604894339835142341108862149512871381102784482443645064553022417828247777494030006323315611912091036427920303036778833600755452981085290492371863433507379772390198964397559396036807909290508467339749088696161945217911166604506740061840526024785446421688917190878503454324166801842601087402479614934572695338223580306229412751286276069336976896798595097334388513011785420287273539722873902085192361509410841570525576822163392691110399393538081786026834469434577071423452076276602928341056394929913086747793687815136955500005552840100812525597783781483840873770079284586250394582105798079419527254866983917452201280241999398762898528135643012121776999035639751863222575376939138762001128775924316633489490110319398607663894441479226386253331414074849280111905867615923146866212356244680824432174486878260814038777661472876872880533739546848297348341081212358902248110292582617330265950208584909443728800699309036071595585722318255668785913927004991709746515459139724871609659345085912904166399565167588133381035672782631475990317587569574029085682832700059842971669485784325476505972800534124963903080391596038164419971593737052599386061064180176908410522452307205804188005380139440170039865713662230856256141904951632619886448362316953284076031366706182497079282866420462343575680791781542595662620139845917941607810436125763488757531558279308607911688441926097214670554359595461283085459675397545309502501922292199621001186776618350003852752857821352591408145791697310069958961775813526958501360013688110104981782143983008101292837933743906977954677519545882463698013445612684624717644597459289902493201552244757333269213285026987342322888275774233610915936713242764237585983721451257517940732751866724030869591405731597915548845636555675809508621070196294718884969956381365188066163767738605333890324941306325508359649053693098731579638761914155943250457511786150355169182678705505969088893809680827199167690236667881782776315749718035868146969893095679741527768168082695652940386020614280888470878129831549031996075406478126282086357769844680188474698414963424234490838887006113924541266536349762496821300070184730719675428431991332796353056979149757546177643885745183038730523106090940056336759864281748731308875356473604280536667435359360302375259473263010754103309706307873719268840608471099264951170615404461368678194413424040662537637356850209823341331163318192268821529881767926915523251616737866889851610231577770952196262864705230319706033856160762059794009081659228216121527044097055023447776383985550902370604945955487215664843430972436063834419935755567961306549634916311877276686069720382076490879625015634375679367580558618439748160484232064291440740335247286917401539418141649700026346101090686805641389987920665400478955640756923169711393882061139964279256035429491042488786325949615880669008883116799710622993832864561031685809359642575012712149830333828135987998285528579541942994773624614259161432475847485030674703253509441442995306054221643335933202812599605471132591960252453477011720829605125027779522892529902997485560285550181513100180208594107930403091342350903556142818747009927220580951456792015232551110449819720598628720769726135927087263145916956546628099881683134437265432870666233029915677580583905351656410070293849849798212467934786294730188578286832524081357139007464261265984621064537406338416639586397470566887942799197283254280504761078638218279929162289033880433952723659859587406538145746754713814161594561395602532298720570537923612330478307395164490548328563156408097235319370988848790383637429796959401226012398747416612302448009379234453239499967204435966768584318018947346498984465742492536953295274841501825192994573392868583405947536822231125675232329113576850256604276980640848853470840220143349226426323720616033574466254111923444607973859620885423219841654476292110194490129059257872020313420164400236308533007504536713159761031890308979538815703111200406938986260088558169485123872613545381801304149028951159984814830974570229667643021173148074475752471748107989291868639202280137385205978927187701810169608366147093458781669663780135110751186180325854137985392593889750647343983992199241338101925259079794538314322703982356352657385218783949677127703768180348416286276126636980042409192310407567448913926721976303469751959289160544598961579277250688146721949409411847825297458783674137100172125808120975730548965554559002693631108503999101989569594053733504482127738676823157850010451183851671390949332183139331216791478289464517604273554337786479997634747083262483798989196179293896518475986088052500970275646427709414675308650854869215429624205267085756054166685916157753769462125778117195168424804188091745076825304431766393092809192671295213723751588260525470947708103721479233243367939349886086404603831730227970805303303635404785039423769257296683568607165151349198674278549987099725665344430051307207382047144220976786786655423481060054203530413631864513623069610690192995116187480963610609545308944686842619414387687605250307225420049452069329032030818737967472267381132224467499856952085592989804594329042862659893063358578622521670000833667747348693316506614968808607887282304808661541398525560075397446472674155308700903753925011433762329255069755916211335308241898357632794525032785487479173073942432304880226619290778183683744301837266058547015760172783494710395749308796677695730736652859698979090221338869613252388521870268690468598734801104933638716105759542231508362920986891387364569953081022840074345454260772473649355418012012619668369371782295093356217183865244241022195841091924210023014179451129514214146540804860864338756595095661995913436851066993248529620399992695301118597991554935414135266622150142547013617100594674705745994291009093026645784301043883131022979718030444847526887658413881194400865269005816639151368374343413648706990297668032838148649851672245539789798983787664922916114657655332601044615334659305384230261035777481301136056848295775703904319467633459523367238301559105525343512019485348756365498018897216899829496302926953818599029166148906436198404553538975573625389375972549412465352898346142522859939604319212620813031067497723168417737036600958001179730973883464054813051060892256809490518502219911142628484485637269746756847380440752819028016327636912878855387257743458212948224622702874240747931200607608333764658637171363337737775154938144635774390821381637619403769870596565064225626120500686182758402654138443544902327551669547064097315538005843425506470209202154416521218786755595620017861150030594022834918676301527340626340383199041909895718611899509121814346661478197243644920818075243004379193160583082476858251116536645247761725692085490377893663558531714528462559009358697733116191185946521453674919394651060829329810620951386636225846262119616584041351438113913338261728235948750896511651019616563425122891280072746027301010151258459237553048183465390708942308948419269737106810296165029330211701451498825660794180863687692923700304922860698903962902291634252218543936623720763599514167054636722288688849298906573202231649261187558707413270602298610223090992026389700258615616754279850203328884578625046370554619177762473234940531905597901236310568814407127955330331399645166319030594022965176796763452574706117620617298183977534601985029801398224955016331948424631652431860766832172389595096215224109560114535133252909763235543455789308063169750988909987533465809614081598235939411326366571199952180198280574960436177557063899555143674571348796785313495526783285709364203035301026642630389552964276728977657582059254689367173172763109158175403288698525395584518509374158213877599997788208074413126404153390744635529562193765133768147910988258560031967827429927896335991081377318513408383720334290152533538455912623148971106603115878742758173508823366526092318594870934251424776129070063802568614542428429300717181360574713995557499366127070014680594219589400527035099176723328968855952009979196913417703085282949473667949169530768207662096112567844819808528318316181050211124291273324149821049621800068927363226673973198293131782087086982247382260449918773531404038750602884424041682158877605032523706756191283256826313867779616701128430224043877628089011688405817291554008044710257515592371291219543124389298372150439924501841027484527603644858901059291258483477189233810380683930013470908661736617931896114729024020133245089359240007532992688636206334507864097364488891517316415617264296660338817461227949474838991102694896252170547950139364769222936450880391464278042129241204212486439440952422838679005971511800474083779596659342684048805004636461570178746435354418348162074190753345799368349201066166667817227728384063819014658116377332834859434383184226906976261040466979474968582310258338445431860534101130661061582212417223924022116636520808262772044323847790487687091154535658947702383403910086501513627311651397616508234801338484804994662144147699484268408050168090499543815230958999246918217451295296792405682738435653195195136008333288529936233048722628547507469648567383835002977768846351390743553819927068022893194885648593479450766880846326603400233759718228671965961239465991339622124485099060152885459965563389084625876874567228336016836126933699510148786122109209831551343757219365741175331014019103469129241013922164494132757102298196164010646934303477710371448873240198369492345558763857698921675777363209446923308246740211786199824815198330847346710867793595231506325633510747107688542695845880502483008614182478570964001973916178960397596756190246078461403076250700668245314519030757707585943527635191115193656300473223605034877080618068548412538911662237272206015872312739211496858090115157952368332275986098513079883801707714250171506658178641069005245157789451683832793619991584980767117700419481030152526714548359630521706089686735740957446649814628071558678003159029728264971192088784302097366511098508111115559611090909907473169233386628171669766819015340234819057360476825838664713301440245168229501342046031187964873262022813369720240829351402056644655945068976119740892222798204883634797243103519309928379005691814879876987857866092700193038764468143632444531747734860752442677420289192047197127839032129668058842331307708747956656001296166293000084146561968246639260378210615931965783993398032337866958865029576234320176307628223902731774739814326326582875423565457825123902813880772216150292349971764260337373801085852158441329295078213311987569797270598139932960226815068614074819046658729175671772119830791305339202992365480822134281040174218526918537948176970479489766400025928608031165410788060728332143520983027471933632721047688416731004158702638589363024472451060113614092805260929423014313110057279898250358935752402206474259715094205861579206219368246167282644529491027297086269854192820611257986308500065023165823199855730557495905016409958677307949879505541236433248920205668989581901350706510752323867937358206169660382349815214274402781763112427820036423833272655524557302976892573337946123350044665660341219162082240722374621064461546893509206053535471409480133982868826522476529755061722900515680587334549429664872744603766265677611939333373355349198487366887319130949019595237652154033922501172327799183281920906317471794311833328742845715311881183406884957966127312915304541723515883027379552206452426076652478663039961885428981364108421383329504170572980326182295579648558853519623416371121037954344167688060586994214498461386260367265826003278491576455566646800225341955657452694814198004024787792922219199614078760315924769534907738668692555867595930593891927205822112114455151284714814352233949318561503276710563041290000039480674723799593499250959228787757220322016584063612343880850230303710240778384651707181387442203380220800210229146019399308384790106389631428374128392189682765867400858880197578729405812679449601905930854977874837657920059139333384965771135545399975435056220577104205362299473431352525743914149827487334780469538068227715974317085609102561942757464891417996058824188042291410854086524995135668914313222319255335026935860011091925143782982729846001470641713310858026224823951851831466380966190362001357180485627847917153423518723164428180336175006754783869530052925076304529541314502931288060996811787132474882174039122782047029584529610221809267085762530169842365334409304625836661158387431130208028620153198158704270234613531151790567698795073368036140095340928906936880918455917175962333165978299957553023137943830565568403846176837269941887988262913230681847903785546474752199853947393446997332949710355807240665235188275088594236056629136100172798469839060366187374544544580572239646375914293148060388912103439066136772872139756004568708217241755785448262930499262327952786784072873460916828887446769078062211912155264713624790488381892130667139790909489746937836164949927718118930859790390977688895421991901998457817221362211489956014367876042227487932258141601741163148797075643816283991119308565960026970702437632562055416303190128534885544464484790092206307766053038466830907265259588516569113448605338564623435035155330434674577049592057141418713541539375181506232726331084517588658289443624301477156094574770598996867726440187941955441561368436440684645894058799304096115732109489748186907676274099871801462460466193967536634481175818476455902866204460956515427864822063933719117195986187844081460356169067051173062949219748734586790793743020813289124500198604109326075925906163025465348761108458490859428663173248714392344121811308413951897165609816510559434675341808842960528158545027345699627806627637899019143504065161744381699821303696139893729258761816377576535578088777544269511395712114302623864480351354680399595721653113828874558618267319867837372066833255060923028003432435267142376244099436327728917379187587164171940613801067956648191009068012970474373426585224033909801127014115172439594738152071490071275116584643791615020864876135204079180003683847414695956486499576534523723450994042967541163965795010308832872524632833036591411069571143989897213743014766059017522019885178233894080614205988124232951204308696072337460289642444300049999542529968034425891232880412470851952486253287464632720080316476687673510377464544777133746274065804786748084269491096980195393966061962608655285786351545070654482411008637362250747793738944461498071389796989491694283218780004759182751618920184203727334771901511865280313311412479063265749900221720849770467695372964282902056729703894879897737603003201365347215383584760881826119859882628264312221654860258200927590273236387459553035588088462737545322612722742118164953643571764765850682252218427080933058093937801626371066868184613824885571664483428452322496295930442624779924807700417023211618394608640964811443931165418416757573669320227446550563007612000922128514799175836707195051098288075939928640765610788978331518997930923446073298790551816180453174190641616146275505971123730778594128245401647975401457562355068238119856423717524386465334415633594431503970367027711323091242904812979173907657929672983599410977116620512030399151985082449204641903858165702712913140843049468961896292345210490108703397884752714690963832155147941483321643650389690028382963571794092775577817310341537302926225608371192451811282785851525821029846314381190783373182249297105765468466153834645969188891588119204352709789969184950877797171179908625655953287152317823160928395452786630513057000468155938141982607824252389259526344611442714512660831284575087994652350042613636963714996570267219700378799525149721817842145347983548915263069780903796642042562467098096352286151849875539890635779155581653611886314547384165704318853084744807014298689187585075973678291349743713007150259789499353804356788508254191104599050259104756762193712823461355086806531754544139615306383141074858327183980537606945933719093986394007114310644752596241386357397726410887240575163081943639571553894022655289488435875479230339222598354027540509132144846727491057487914477406500205326482016707843423229056893115048769107218588972663571514283141188144101241504420613873449233966308527145904360130215750160721866638125484761441490895632215704801385428197486203512632176922117537501297033909667746765870267943845206872068547411334850364930180987847725886878169333704251810693299451393523158612235774311028129355240089749351642679076448938699079039759663169215530090065047342681491312076209188361710236831394674297340222338500176781973575708706967136167373807498009451325364780636274693861401689779407703892605637269115359601074999596278534929078114264560353046479320693746508715941833707485825508448440491879975823956197048069935880975391329001277142782447831106079908142673539234551924133868141849507065031908796346168811569886275043803688878405713869504246347321356522504072158658560103739545545654942811181856909833723471793943394074652051797363262141524429560639565790117749072245314024732454017978620466601352771165609655471033215882468233095768649538323609624615851998534499969256903056396000342834785385985723079749604466145157573787436574944339738185648337757218439915417519265418328021423882055385188228928924575530482939744843575956797771641024037615077752227894189021063466379899967275096240428247627908996359388131754389557320148834753984166540525365179548997895047102079127703380632595006576905365678234789740837159884750633891206615228289607964225160471691818671594854774148283874034278291395827330924151155433788470948038218402811910965528220444055668279492558442181589837428553684505529069787501952192101751221882290950856355369078142124232956963247246496666264344661091641241976481453834018635699977393114169722717804453300580068975265177508682979898636782696389668354780579286255595375979386763451447708068699683787417829888851394268447304239176575936820962412954241873802700725209896989524225169049061924127170787939656175748375876389241202215889358205116638409169555385476123849164317361755241987020067512206178660370705657330408068573210545153840045594530038544169392904772368005867579876522997033614040628542192832626617823873294516479058964529612713029977326078842715805015637243306561666632411157726872699044647640786873789942768087747305977525832589183474787071773257821496851243023161597544707748073345528890290658770548614243740132178253511951286701538057298654287079455272083249110233573669543329888095829647053153520451237530167168207247780885324980716131005898181536227493578869045327066954648763648992536609271822029168352970746908449405271172486461943139093671863737735699968213191135462440666685781144950497247108753738614286561698809001487975641185365973856909548854131586598043594654498584126008137359213681767831303722862979254244501089159213270348332961810848717426229486474475699393352559910115551881624802822026684250551270927938991143121676825309683485286588953485551980321554371464456322894047972459099156714944190965625734226790448677663595429511233901518602006199544349272138476862030441577114204967079672573460307316421516129078446394194471485527199208633640681974554166674743091379749019185483106634369258373205977887789835250676176965015611405329933859878397789160411416363959617354477567041034838652771323085429545699461276845284842324427463331756322129823392871437223738459888544448648395342285456487633131761662027563292844082550139147428201572254742664417775852192976558640346925375274200600069822935409059166650733358832732256554682258446871313481549955002739652704288539157343547695976779620916284797341625737089997189516010331063449272810732536616184380448400926642403186279700237215853517290355871503503228323713555313868626747874298231908347244530074310958964554364446563344642860147657928085960103512984219913206553043774158055817264193620797510075501416784002607051157103173792602746926205122228074110287721609817825380555917917062238228530422510235628431305734928192847468337763019968558900759822506100424352241844820520630362732608820289613830018903940423663104055866400413223417304959395642944749180001110744602333260981824225325757825647109700641912302631889947905773291496651871836127973478365758989421020487926387039882257792346647581812828327484411242675511518519698613673118975219041992384449004037824472293948405720935203544717016332214672577636204972070965917002017234202368384692704825623945493756450781694095674163018992151121111877173872386506802938042004561929996050040436552414343737093174731174917655168426651723916284209244732962530024536173835282008802256357292939676664824020526476398725858046418442372085703288135214412417966025941768467627992228517808462136833461250436084537695734504808137525107450634967128705676806946743309714713202233780816793504802856498592998452439584563101624272560335556702891324269043203135353385750173054156142118189699978027555863074337207102695020723012598536767029957490795977566360493888318206190989760725328115698760760586671737582187030793749175656685998941469634677634051041685380562999481085148436311733532282544780381251600791796352709961920090695024139561936463253039289760337957932917672652964193456564339800908789696014622696915219945935435057954967500862037970637052645317619901103587585132287041303753530589737921721171296723059057000995507104680830399401491717568267435666767432265424438598481923603445703266584038834603571296201461498126661479357521246933336939686112968973559505805529649492632956392006596913730974494891647344211915082611619503368628524509655885907231848051620305255599120576609868869963316012418633338060651691380390204498973620256369070656800562837702584256464197041669512911396242205691189331526621569542468229608761760553288740924741799623117322814802630555648085124859546535972954427097087